44960549661329357021381060383424319623777807317947720797255935719332772127249805717898261771840435666593553871882873284581115251711066030841048462487595882611762057379556373963995748913151238124176481394342624805808935745098528721156902081949501351753395107751258695214592809470784342110275674700565357764850442794446493782685039662471249228062848425968744892531727609572894452242347971796153466883186584888213607785181908222494262951717562217957762617329303185827380284073083618356602663947920347969119209762418721989998942236013456154989077870544255823329663069457643999690031291106391817836007130194783407406816303740264604399777116964180111787229388963154575263974015639711705631098535289262869209747418838391346775926311395300286327024864318855408711654209821773002276787300072501691749597842830869102749389302671231168991327902121538224534111654035757532111046051652636145997926707942222080861385582612291801874686185472991029804298750285440740556056259078726011711325950220106578657376855643573957529151162029995346435335296070534303560830478944380253761783240604143818166662060967903306407898251000221327918950195784316764587192383416029495661881643375449606117675931486158547239919677742792985983025401478934229880532824276137408979937965861036319903179260709606121525987834315891531611805605770859401004323082646625770545393579413697121194092158476237542131995029359052574223710782220094115991453549692279116892523133304942375905986829224815741212408650056738033291472581170996657613048102159070115496533740681981799353629411406676129197143393559760668852261030436068262714858924881349880164445865999795014236125915148505871161922875098264488013363546168474886375057236438042986814585624611670011458510841157531542963034349795343488646323508110685076760631416795255436831576359836121570240825221127419836418895175539404092953999721059005057418825596043143886472922625761357158027907597951050758198481520281257460255015141987039071961831654415226497177496917098683031014174523653430774223962170403476099035133756818757717140543382135245914595775714645949135587500085076664627707589847592956533047166879236608072334609592227368173113355618433367351030397246812548402105245322113206840631130419862058400525210471982552880293511170638060525380986385805603895894532047163388279120972540106630461392560942492987947648868569244051003234567913491726924943930505815378684894164221596378029622552762827310650053265209565180200994108689789518623032132034163193817654693404601031531458516217739804988018496734919416778029980001939854504277169388790500514097172008024205091524804151898399152709167768931071174810585560310885944760910767247052222852180705810207443930745173464523400137278837004941510058225097922978923224256697810849154746076410776531488242882977518339789420898811242955861890100864523607920752952600538803821820774902715484044848908268746544345426049122739052220571145080282319468512707244971895199956493605418910813730175006297415463293431583821717114469068272963032103171510746747030998628265313252210789918665520471837468688576288305841435591206319488897880661336327813502194551736094590314817687986424739375791017364329724322847834173388935618602154991276128327262729289109419273934562384872333700843800536427003999605031016714016322723222292145642327093629571056914076865837778038925548868096330458838106390229303069871911592082610488199711934625802863500643811053589746264607106219803394606105688461297761686401253607750692188994339004135923748772113186848457934300657522327159619132914724518633660723089789877269139372224790107716402264213171404249408147107448008288809460721816952276144737436925608088195512132471538229021830389096302861473135250840302376563840212802310943048726905776387427326716949349143478498955403163321335388267991834306709577096584638648011997896384773661614307067794382063036402866451347103312630108045509498279618647540527912732430637604259568485166770679378418092279941083395972828239466792215744733925970576518637876192826765250177263772815118295405439977858193604194116446681613930873237916654341336622262218683729844629146897308732067730116832881542891549230464685831765853213558384085718342158084198990614473917707977752294291931251404330519599018080334265989042502707600181746410891490092466911942356531831963879701525764863567098448309292615028812273586407223297665099850566503990993420605827143614241863501259378739223852991869904219931813625197682056235277842165039489651038788179278553895195639925315531515929519092766111066668831531343947002693424497392090395036425491388711146858581197748839917039571955660395814742044820221369555402798783768795646004264605310503257381203504189440241508678999943143645786817295010968513645127965217442187725264417686961592235525908227731931772008461653536449856515226696147592341192667237026693332244010295031828672804879857686970330332057791089436771433832882318462286543801609987185135206738418706984022129256969199802983950633840169459591143529880370989301338909775092596053659100378312898862159673015016806007317645866375317952622235844674059845051977235355226499711313327551831590851501124872737411098149895912709498059762026607516785785586244031318095706276841419861902941597867834850214313207716910376886102596488800453106855709169800146290102635678949836557652203100037462854914522613831245009207457348478827552029032503198125955581598590844305580289432638572243621369401397643672880020038687743419085607925437510803316641359863127209930102692827868054153460784062927719693312347313033610890462603231897617825611731088298436676925752577650247698642878214573179707889593982207818585769822617934310681403680695665656043660161486137709430027036009587771957802215196931179708990109097092363196834235712761295603852866025230814156144947475287505958278786480491727175939349270852872406736850640006594764081239488367125596688566432535041340117525245375347688262987947747354910725397184527058756298927139172195020554471023001446464253895568702765639190343127390047222180260516907646789365549121485477337520299860314158502617201953773786267634987405440327451110151416004633736921227587318023271380021989591729662849118472277225612199135114951698692122807922562418975817290242428930038596103904630389130328410349350211421785209304752756217684721042350690536439770981280260124422800729922022398892545041521588236253190789061970432857246834893036332001310232197358986075897301343817654192232186415543986809683807147523619366470266511411368801513615606255895189112437111729336174786605800118207771834559436988953450905201098090318717927915699575857350055146784278177418643593816859621938034825671394184192397861645857166521457965344491667128913702139523731297748483387937159480022293495232951479804774443470842026713646639443633295556036836663572158239099217534310118425258596647049591073559812935139749215367272778469299485939498943281579227572095408007126875535200072327429535493980434355327363584458323675138305165662000944531920975505145859161529452692624322180658348643385382259218124163811840423893691001578483972740582479761213511731874925794913713840226585797104990245166410161861924153790932725752713163390252001452177789769595496703884239326902297062440054699170154276814138218651869495834289828235235639044136381222669720016486183517836219806079009820309280465872041304443304605645959595940786008225179901840669017783121343981600007454513138822464240267262364629230744383521901863729533189705767958016171881416945177168979032701166280368508587425789122727011996101836622523455813974097511471453101228212725013160896094629459245352237417686181749664731167621532000174139336165299752978629543752454160101177970296289725975342055045360505330490206679419734295412708998806407007644484031413891388954270554706401147844300294284147237069503516440968218747241127361301209638198709464580753691651133382088367454512268746069709618171057960894014560956318914277787325436196308107699213363841705060644676828267454550516728580879483028411041019802338712077906682647802568119514863443654644740401594812026961083092623523609139363174471211977891866550462062081662557852390623586369065613900449269638686129491719693562575078120632003079219555509753395858873619875066601067849980463428195373978456033387982563039956438533577299645034967405778201457231864898839985367982958857973660256229866950482521752344480725995080824649002111951594302529557454811161601456206708266121622746165422995712048353935732865920112436842582866288008201123597929958549864636632091426797564845950654579984939083649292097511972250400374961750072392657211857371027354173463701097972656686420583859547050105007619632998285468161226551175681730469177358069254295554332379157660412266312823872169017826256803955573559946610522739670708443153232642639666966728334819528274954266155811287419233426913909245853907853019553338074949298717438420276260306641085334389784099877313997896310945773061925810930906209816031777321736276208824251355253076559415249528091813418564185261661647281213798627400405391848839958388584794524287219641165229801888306497966916318777593147834020371607373073673999302318036649341833431489098413124900886764878624762700532221251234839979560469820878046493391153533163825342078618741562585721057853128752292688922325362302374174281978432935908694960324847744510069775380363640017596944964816623403764175592228599469969353763610605356117495059604219336692910397426688272773749859416958553337784518852514884033082644298123338049364356893650090050301386025938808495356730788516486273438206552297017849091855404032532120279466843565562944950474590394714648060792485327732956549308439589688667279745074221445556971704083807130308962299627520426913195753544831556650623128402124982220877964178093064363791270990631289073136542668946971893844992038014314934017982281803720332564929368210914272908721027539483314652998713484958933456006785993854445469684507143185810103653209738814144262381568796549832609602492356142821793100988162181034445411322065968298746102157309760618827885869472174815363769757335215214217127953480797784388563781936160169867177714676005709956095711882484320017612655437271187448417229354680641629062603864781852602259823823682082428187475956840120632772862576132205000825086764447467564665387801957497548704622609887707412867062147630618404339444706787245654053454221655876909809342856596510858522291747401455645275672957841178305193095547515055705438812483419317717734403105032318471539682873733667525063584968963525583436944551791950486314929542668616322169777081957993182752883309555878430848874074410348926945396474643348193570769223163114370729902615390775516475302073601886319903843999310521288335117349536192566367084048358803990400765663323964517814371449084542615026329417448024030737850293613249097622596422415406539034802093579720707480044050192928737313885535958298003908457411235713422566733956578438677301272793656413410612700081840854930064394457816828207029758665088548733838461677286116750727499546114327864899317281884166267702520941430049839984595833622038949338751797494045720079537654989472270221666145267811275652013220048381312415545820851023341951658346887204619822580630597783294133140761804137237811479865367488818571326448274637239591577646192290289932951005551572093338444141028781799218175489667193703771477687807694734281087560700459147632629797866128239824329439396788797308800104704774125681316271054932832616463133705684821478922538599632309479740682531488550454703926830101879842936719100774620411543345810091024181243511914574052052127054081396139754275367696740762022235960124560352430069526223980935088010713723698434872768979457969091018236175766851556822884902950677954554770889612930336045264198308134165330090603490476018004488991904103382254984896123906820845692461331341567521997649743905741456313638526217983330247763489950379467249201111571718631722728266510402752835721160484753706235308470342312201793493040365964998428359382201193635197299678367595386312065013769117212339983019879304461054036639697961862217005383505578691420232165580808395090502471015864278265584339180361825449934538563188005478771043286433108949063607261839215631640017040601670272525377740711600899141300975629063172304585157495321377453140637695537536746998741012246938165589218329287218808451940182032012182212164222766346217485736654547089928466699637681483134128597258959228512725153743356228020859560822610415627573340724698490423306209341398937842563429869475423728039851581680788540836267461727798108006190048577239649028406565357572135310655171942407707545186683817385252590269387294859742349593732983767588746847425583031198242697460199609177397560638731993744225695162687524393941945137865076045674598632530226991672500902315701829461142174820659306921991825931894568644147574238415199384509889590990195708114994122999353072502378296468400364539210341078525071975488270045406115877242326532486344743280967480017748806132068181944003400698936069743949598831881348426171452617950656551176196701281228612073446083570017711750244770464924987448864064008898554069377805926472649506856175693428355243677815488253582210816661520566457477204103840559719053716405946797681455930137094264586021125130078116871224074156197766934277681225161633301866064371886879797318618613654722435303030032158217694226804796273247639095369627991372800062291401686299802527003956657029972511663216613559944305807879369138670747610323092472082172903900064625892301831253542786010286842867552252228853277808085553655769497825558116764326269057929592499448794245586497844607253883000892983652393772670168775071978973212118356772675039803237941445550005438391592629328580557947611523977444785936763215510214258829593139389967967831918593564034598416556640341101297801739236989120347804155686919756272294911636563582380678195968147251484995428908861987161324000703025006887048193143742794543292900730420268562396960585871402874017045112952918985229049152558629346584118157160925026849941910999470545119640953362826346581358563164738996924350041353862455354043045490973222610933001942302362477228536858529449458935339016575930333984477269582959899214406181760461478736761753588513927636122244833318556661104116481856954632218021556659792938749709665883150612545210307073885816543685055102454819749353031000463417940243673446800571099393133844035034317343118354671681712165420299197578812288224325777628713794270992732092254235723119495469272091761442161685359406654976880298524151434086344974990997880305598931526163955254588501760481228258850952441608689986743589962142654205448236105070762780186068345193068541184794027026408902058309429776919729607600841731509074945200587336272462313290948213201116140896270230603567318245078564125906859456788369388580542731504585057061283245291417036930419974455106076416990647008684323705323160104797052079699859127886898545893007729133015189981094644163631595646059180535501400856932730500723319974554777711170242861832517991963484163936586673316262705224095097802270100301319450313195383580454414766447175927929407237834762060565586970706497405750187476301808061004535374343742446866465706384627543591884497856476640618811687571972675913666050516247826582745011480016890431379795470661907747152385048819754161195646847364068434806224314248608824097372294806601662719839003351890474421194716537008151145533434050030816349567670825328878047978149169028017543149064648081719868669458863632338143662127460328690619071863185949609809160820209375901259857152711870142190888003183838511718231963043002067199454776971601470695555106505380076465044299219918455720929020593157290045310661996026612043009193179147862615206032062943435484061665498674216749376254282691296071802183526289435437676085004653733636872564512673962514432572685389777076317615042129884680184919019326436918761812035594850779305473958583257428838637560336719649628348822120951194564866765361336550515032843813873874036415147857301236847679029210799601503051507100035359847942659184434373291343047063029361356012665080312973300393422226054356313382647027524633413340901604866469839395114256507970214527788515143116360147390308433914721543441609644595456375961501193350019778995405520221572335354122962041696049452889975974380890568167252977683142527983101353926610625916858799857976822530822708931266685565683869432209823291980738368920972260211003589902620060057001411279131816335287124120045210012296753959215036861596952583001531043306971462791778095210154659647734203566491124635799587082576187440311615436862891703908197477410217421167552822055715001484829980814433702943991589912118372194374408945833868054105147841868735632186721680115555036635584361968400240865686069386959461541348850882094632485884299269404736205178251122804816367896839280159633218223047455934964179610146962808051288240873033690424812718630222078318084763378297010660679371040206392516243132620716053127840727636065227602775290172322207495048037880407514918231865018565905950466234754546082742245430303782366290293594127478775227170301349504913611496433425342805874842920687397187191846544848962086039344636602898057588601571491240363530224224065490068149716183224514116205956966707590079635114296730457460837521650219713804406536348913653606792535894337510701668737190137302651194662397423789513934670259556697238199810452853619936551147489810866710869500655479390724092159262813937816748422294318852870200664511572064037097685234928920193895645549264306570383612414955830324230663992130105683851500225074273892901489492354581684444802956423763201951800777672561783761644664221141608125279215639914281071398614939332690225544724597988805254290780454481531042661082598283852972331191867438858440573264756523728567558302743889474152103762361226206617155191923816974471487281702530648896288084878017635878135916600423503371681019041811006647360300469579509900399143218839306142519353654382108680796289898590228090487355046181532798045987246039391391639564532796920462719253370648810746714784849333312197477249571214136798698046614757143315049729886013674418753064024305163233687839248147252414270549122626269408103731276520832330944056973501111774961515503737641014518886326817623171857304867789381542559859938441972581340694340040136149963306011130023606278319141355929428239447099891362908995767644734261417081106517135661808951127420710233256473710324988260451996207474852810602124033764706633321107511181568755294468640268176902961908782283816259875168744986817510891307250458131184053099640855464122117811888955130469155702876578552833702060089603581127719878493113752604583533012497638693166712708239273044809118385884705039599027511227092527199116022436805571319958828075263415643444055541731143834058063086246887573679770287010981087628286810577016763848977856565378713644922906071036574403248232591035866600061532118530494417587922906349695617712404256667477286606124521710297442918396955884909873497610552618393167776061387782282208324007632390011603154179249047878091924387179659268342044706667513018412089616456525385209652009224438167384831012757321995909655915792129760353693023910677903749356679621898602363340069137912562443785118691687561787755323706335216540646410081905061471239366798844287717294245595354092349998541124397338326692413547577053993771985169401817742392542028639344493945725439592344200685091100037292286553390590862845755009901709353543923719335165717410350945618547097725794051825821274628000348305870120551121572961867178113863616090403923218129329546139276099049520928002559948192894121420575894832514799980637089635682010461085598832424966384552989045866823442552352918131086494089865240247319236325334050330428396140537594032846496613153476806433601040943505046578963417859766612157171306413636207671276956445397301884745081510472937774051536251162661280722959357971978374464726526143976939115474030943163008914071391419781730782001551854625675030409699925252424587600898559898302726802978598334648701140941466844610585812947658227827663402455065611244760523178843750063274441106049649528492285042053727531161529891891691846490693824225691072750210047664387397474940563763282204129660050058657410648919880581229432527740678157788845823423665641739213910629626317563430882606384188147392464805969907254255870771822100200529798485741029047319968882640950160759624127546123085950647677822177429844247926778434528466973478032586089593443549065832217958281694621370080643370936951013960666709280026139506149101188963393581363578223692089848122593616832903954068030262448917975815855620836559000672680433660593356558494664146336936121710703418681664329815132451460271414520187673068995284505308013264130200868953486472085743355978344770750496918912401124593957493071490240361253580680864348198654530757902321270605464481444107527414183990982867684121670732933338746478855755048263086459022512792521618345537217550696926836627686390457439411247765386007104119600249291660515580060175126547101851362224843820466032292970149199884047691507455360338720431796193326590682047454600163446027866019965434099211553718100550572031537500103187723006420676010180955807277800166657725759917062942686336079767694619471157867989465667040325175540533731095617048049838782616321987491131438213149233289536334345911632385907498854052585203601907730348568005980320490300651670821267897368484051963483335555115230750353804524521858570469889904926107251134720426615404550776090928031301542402429448811937588272861964489487068950551201348226792910665551148857618765174580501073432291539473596603815977275364126942233267198900354311879591336464808971130346472755450354001877694343608332622693273951533207835668179955729597800617640446477091675689981987990667152035223335263096246774892296936174594770128144616626482258695397085583616002823473373489129067933234931232387848513702171000521592303555380083396147916413974890784122344203219047527823801776152221797252604443895122140630978928817257349155864328265213421255708943750120525872368568088097495912879083555006107794044837023070054860358563795413256233652886280341193385040778877743616197184318391027353697921167547648018557472527523310817017920331674352710781942045214694323686061722021142264953082937601820052898573302780370681800553666583327662973421602726785655790021096580171363617146875330048279225215866446240413710920515267608780251651790172577338122946474625088371608681960384022350799506682271775849955290533195503309706606859030449967925064808371019257742837072160120739693462289496130767025797464160162396599301787572866561763358805335265655608693594499460426739280583656355325016215905486426972410484257656849107200619687934565815989321503046609824149860406991904995037472964516577693856404041104877744578312890910106658224627842718276340725532521894253673278041014915726529065116221912614508219958697732884690450091185131023891230221461908721621083771281345945665737934528727937960134574247343396410119166578240587132124505530629136040399922118360973271216925720673326909966088045918473462962153162904791818274501463084160813500148760837035973221845679930188076224535662869394016540349594619591769778114377282104108382664074724633187899857143078552555949372845622461995071943631150660804018652512802658922646136964358397662925897093801711195729149140300331276832228620877117787072595757770984008957959453941439700458751480098590867451046714839839881107709677825270058492524878821738260406662924593312080105725695659168121038219374514646723616108848547784762999147509529197905172171707298031113337444673689251827621058678088948586841414791502418472424227756182898746688960886305597748251037964521072477989434303999336369830595643195170083541905866266426002982784367820482070406389854803239349070298599157132548025556577452475452631347414855215816772289849778666405862068117904871840237252538212626114010986096800894985762809356888896624874168093020520821193483115551595226273736687095867262172298802223926267257109035781291180811490705475808967847912609468322876276144989513226633408749760854366605472530025144078680059549587775719275476007281035476447707453789456543965768549365366808658343485826478511009222173068404278447571537835000424291765581455207953875653841862818048833948015655062652365517687593529399042087512966967927043907065499180490392620291561770085064395688016251287953614868209834460099030326745092166686564179783637852450990011954859543415962392636734426612891026433165055901234957193654896710155511359629575085501331126686709357539647414814686692010373002398892836201472869200887678971360656424969234203060447843420072532971826127025065433965810924782128130630906862897330995311317911358737902035330048562889759698373032181655876372493750756673294046551256574845107286219737657864350962722056210050467604909969298810327305547927857494227380732193214332209321294916610247114423385656242015727923262780238448806469411242372998932140461931316060821732285619073875857513377390145826533346994930716594612224390504065935322800442978156123036675980917248150630857061228871079345753705264216021221880044267406950718994885315407728944616026705028370482461774265345530368919024948384856364561047549859422896284044888089009358072853764654429540122883695557935387694806483869002549018512420456251330769092902704591365327425036829881395666567522315174135767636238813216146217602449825643018005084802869056154099394914690521847808329304525480891880509843785359118090120191853395026410073847317996197391752923852206239802458433190002984603982006718335384361234611135758600514997616045364829866882612001320776734934853286306812614684688094074029494893518908904588858972240745881489062383764620579653722335891239416962759252567629588072270615451997018802786306353159484905785261785470116942386371561725445698545666370118059864667091306927454738476970095061312449734158336542100828073429010073297099179401077171962799595258773973324435376706018966243900495776416035201268775454570725450223611076729707817416841723877641133207466746028983404065481059286492338648937955187154522155437660643525827082905647832631861398934671600754342624291526597223167329409819084193186529134133819868553161513243603248598996277926176878810252369763772389489380382044105747397094121957944109908546624573772432728437729592267718784513645543888843855718902773054385750408224190830614117501439075627973756918585153497843564796733623989358829760752389053473491562667143342712801708672234497560967216739179244381422275987931854297751240006244756060103357455562358063981685249323703283831611275533490084689087407737308367000274323711791390679333607207529016595403613151565674597652104465961215133344155039628452985428466985419971142080232471140223953808610789580722878962028595466409240362809194861443543160972513463668209444756937836128339419396905833833228180942637275137724167725375279629120408329613819382265208744862966848657430248327735458177708571114305209690983362608103598884475785560821934529144622506700629358183255700219145421870563867219638786139925911596607451343846235286596006671275357266945473553957374654455066939189706605784713208217449863964101848839423163161098160039806628816563504401235650844503170074457876935818072581021242640688333580067275152593008492334973682757627464161787120843503670738264626671859492137591474745854392005932630145427764161588256955678544192227522404861551643595626766911701336759237194346268442160335516093230514578236182687281796926147964573689780314267696039825240907822893463726590091675025183120638149749444677591779948412621528700200654669451926067528892830866203077256683993707913569198686270154921097214636674348677186690085787611815612334261028003658744656500156768532862887961026673604380380908441754722751977257587336364337641929636020380642999815490060980619491179389971750153955323662363486084799041435937931871564877874297031837775166225513038718906448754063983072027438157108999267003357408215375526488723629542317874300448824270213566036617258295244537049953392586876352646809773713062736370819343052483020616396907534886694824768794316663129224201331216174754893711127737449364988328875876297342153319673788527145983756314096523879980529386336674375540209841416672093756404056907110089366854913258422918265918595022634353658943489795519631797740475575855865227817887466487199649227849203273501769749265391255494908153368938362946901852882393189002821315024825337233694155431235294290739018501529814129879103865235161723332367206807542664899985541840472783347761489967403022739636771112507101623040508358324368774680712950842150614059431907761533930107383576684798655986758091257330075929153595414057305661315688366141900664544301921818990431421455321628011892886069472527521510561506744707061904308146763953827171915105089240605535514285194883932032626440164420500821710192870478436340966175858178523652662844145858806294246911179786233603010882356080365127801251175163854973118755825487964292318677470612481398356798229537747075405472499960288125416748178055925875113371258600503543414322786407072399035406071395691497072706912095830083518507272558507046252152543028463869495173317297690202607829928431345116614219516738798915532213363067681335555559319513746302865606067942381701781409953534188133402625199050996516464436224646763304641387565927696031973269519917997266775073827054020320387918404010188760897998736773747377300961458165262271996000917570664164229182542982180206641383520065995923574184989225508693338927244080934909791463566638216152459045820269779178143002054974194433312170273380896822602719707727944015104161348455734249678323476275221988150924516793684416665978916797349696555007935232700217691769296663847342437903625252381159415368011780083771345817272509589159587987679891998286746340256716629714562737685647287941605155244988569678233665253201129524937212979529153915605848779261499531402785656209116708084976557961907521793647129937182528632982823712229666868162876631314085374513161269908439800461971244910563586752296075576985776018251569434778140751858509550866805963932793033945409452211419519527035910225515568095056440944667218725006427873176709092990730290050228274853155445447630059635090525178258642344402738044442628102631092930223233233236034979408005294742852994832853127478459769856358449975103337332973015355776416949729991451316361199610535474026414266125486162356916702838454159257633947825774684150492789264375239890826535632729898435909611035673908670056964053230991589012876987811993434323857515745500748278996378788317294941336529208226718387720603795674421561583025336554346764620687417527193830396947267455820844060355873409512496530058250632181819643768823020008534086046429216472531775366411468286778879385522995888551607495239118378047274629920307019545621503572344375399190040960644232445029176540596099888083157504762460671460597715765262961120210362864439341577662688290685346109877226882977303653532007922258086090005380897939911964391476938778114634599839477075785136776881686266221007063581202373266954402277459870199349225456193701026584439704968066211536563511208673097231228050449215975117043832629637138385781531022299062181290720063291074393893567476719565663606869432909028149240522071111809565349486913613404569180303625427553177522110774314635709827853413845618140511961943569031710639826074008443994930488987420702436630906788018046360367470199117570173736664885972151538097182317401272530128053397328354311134783783281142228603780523293979392814040873766740720679087372709277817478620769795520538221453329702435296299469562516939047676639186012991899787268513463174082661854338720253531659037250787335732690708016411106053974593774640488250127783161007040375700567603659351226683703043174068834818068842675244482702097778403282607403381617016742557858300098329626249839411867332609596368339146954191561165543432606103276860471847320227976018832834996209141422710667397870305826273796320597687721966703321599492256852476841845335873652019601415276232144168014087852378665927402510680581940694553796465512853483366657211657565155348346323807427223200961930478801874451586483477333435551674221495445153193793571116279672674670577129789677458519681105575272272929217430107752339626030157535299166223009788228509697253082302725623546394942368896111880130589278636775673485986643631379837576380298462281464928322993275417016047384571230240635715124718350756019979498698824922202509665298655786051963179696884416763693957105646953243711941194700181826564420769001523939379987011810679979717474850686147664595547991182410321475540283686496745184230459149461278043997896901161325691578919456779237195855843157310463341587467113010943730293913292923657568761337440120580827248375866652261869784845710344472971549424313336499011085294494361509763790644888431106057882513568504460073597380867462686497046336175722554546398454755594479864712499697618685689423339500093877932875474824357109957224394876899320614874638586026936168698544909047584707445843265244830849367545152976614324149585518652945205454585213566228704764864338837130066237891111531817463085280934349773126612319675146294840141636501143971969114267455076830204923715733517298509500836186114313452746903371577623291501912992719530548960559760863107924660639774104895992309416441111538621309359782753664522169006402342872072551539366002603316928566127306994958393884304962538289469522532355274919708256445439295501178008382183224989315730656740812626759637770890398815269806589563185872018062805978167909042232751138458804870301473142111643853212361577350082373594041778480035674787724345404616348905681391370010680834312216616221161553176792978757453040930478414324316488231700401440427720847646299139983029382630091152010841081985393672795523976188136881598754764337813180709378631390188724037515577889969866924504886573342965904569660101806005916414858599621688310284420277851463283381604371264186237418199422761662549998577340014358201343903512007634842793153518941639588184411162778928981994034434321800389046004468475937693837093302914102933408387390668641999301852397130442662841113097733902988357379924296484286803745486821621090495834643715206646932414763637452166358831839691412915174882916966108701387276152558875954591721471535929346515842696877992852279520285114721229470910673697282182048929304773322759407311680521294838205797844501133940969766534159028963673075863010770733439410263503122923652321634201251738955934094630267283488732292390511308491622221826588704992151671508581660174677411611859709431864400309960224754516548799381517079818729555600766425032608515288637615178375546635610021265760487452321467230638596304880822006491843006888866138467341309621298583557701379783067391231994582235794808639221966728405497613642180027721233426959556259430030094685421703158795123515009222621911469380142722122749720267171839040405940243329719018201178524196729593749857556401154908478594215322874658439606686968834636794527216768940239340258230813137074961928469438765168451934269779225781510960375529686223119774601341954066648465999060062421411148392765520849485750778107242454370410808362471747645620531734043081405271809909411835647068212563101521115435222609384597408157769751797210001756674410640478259577005789036424507146444421416536542466858806764782404030623947819991963199589177037220418622772048095686593152595214255883823643993508843670907606250323239204216569402318388094862661118827613113228693505230477331174933973745389444033598107264592229051942904118963939890566523670742449070356186739476692722026734484680410222503879080597586359093060747955182276336423736434315906893828373848511551131039956549722099719925011562875830868169061342459081790289633794342054347761956734155370697971598953229769344132259290756694904984149159993458146096659054819047474067553315897161097996314847274576363884506988367473620841933104851147224529619642745271610139896475113955878945601853714038393181380321155547355943411166606123838047644324556440704023180608940572971782305416769935366487396555572916372803017568006558601722484313104661175150948958241929290968956658488493645023965853027351136058354206052319238397583524672002969505692321697845947293443670039384298652154331589586034744979088740012719410292604414698082417658219505351671374625923704761255998786815206608522423701696618082687905439120413727810383021382093119210047389162644128870406091330425523232240724051787172779207972144888674828438254470351644366074321422827069265262654691996987256385085402648606612358506989132145435327708835714173024244222749294037490907648923559463015081740510162692732049753715646622526507340357597045434585744305846619371771322900187647273323741830889366284711810475301058031353806543395387733991971128057936046940370502554235941651871921348469689171500242352109526413536676188981824623397507683898473200226865940949172436309231665884192100889467493852791796581692114216771393382811897311970520888239649652610972744169654710870483403292335825898400080723801618632456592526067415007711085021836233801994170280735274050224669166220269401878665101916414521021073001362175538562942348374267144907349209071545372882975638799671377169628122185879980081768336193301263714314288848573520768052246022598543834691010885523856777457511009454789872323766147836255819947807375678365359558427518411253602760929514722608478759092545400904653882012021930228598573343332466984132128343402006721968227601156524633519477740205302480503629801222386914802857014881113476461441744568738971131215373596085455564224353204040982349573741188099817185693114422124492820286855740789871387472622300269642547790703922963836917094293308614906913781728670849423302406963812301105898302209445148715361385637694146583142708519451500427494265653950123283958887911240271356190089369493191159522763475607848716690858925187227118665551570680053031888723922651725904365423347824846646057185096903664072211812137234213367769748501059591899362159204631169692685147891834524478218592171008098166094032429782370022338315124040998463798940406640528927673664964868445950923545758265782557833178827403764647361760359360074807004234537132254542067453069398141930316736999788968102936595698933406512330034951245685462476890522106517958005529542381019098397310358262702798972348469107657981571957913127510824754313982109856547245519907242466326601353059134998650317968049289997729041378321469972311173808002029372589009788391490000503218301440745234327535701152276733440288648888536491467970714355184542152065748433418223327995346806639328365321283000035194257963864706956371903995722768968257287614402591106931600135649810563800708519449081604506244845101315828839756743769908771270961819981687781343687201871392868324332036052706702879489357800311892958742715549501430917102074440611115594921460011608070063374893852959421983045134831164435673748218744244113709112475357485771276074312920651483796838774697260186309370006258565473798937225205356996421276104387516988062023132406022124255926440576094552560185391457215419594432858394098931484216250193554024114037462685335212303129348895252004983254749524976971454090052121017719420932517530671347216257528212545318742235549843619074126015104845672596489066695697246865027702950439531695285640745453135536231488310460858301383785418756179910011894346475799645357896673566818426746097933308189480533955430616550665989949024653652255679236054914204612627110598786321903723719381582081072809264380047740830169196850965264567043724294322195890873550792167419775369063040628350297223967810005360598315227584869547090739397334487731288101148710169029761797921165082679327589393925562790782807631053053710594826016519454988426905332936123082106479545216564489354141043685913325357186585142682952035656207977207653472270007041953154169375077473020587095491479005092947087080559584598368185427482776957776326832308028363057975696612189362594042650316550132130247594794254941576090816937383753331303093200176269831795135399738262762418539849501940381472353072639542749232053025850001535670605283950723846144932652644811851926805534375026118657645645888631070320861533870193756326583030980049452246187400793307598302801751463752330210348768269128946289692547996004969774486709245493406709379984948198317423616348007128995317054955218800400373918689482995608383364427737956780668985010855229040957604845302627216409261460649510044895162605372776204513256454325363640524184887604658404657867915999711220928185308995237677948750981758857888270149774666265984615783920275918968781142574062191993545902167049662730687494502116009145854742930617184933829181405007062319298860716743899001203686661827529182890866478416743201806530472601085450448100495656131274460268553900096539343659933836350751538932067665537726601365835775869899111622099993343554530226820721890074536001405984447608129884036729059455513215258511054637345702323583735150248410962816687567710675218915977426931626774722699568735504896051317817897197009447431255265299924396593250978182535276784155963178712975190322608714644979257184219994616006432513467560341844275557723205136258061716619139478951595943317635745365631690242453132740653577254038105112899589190900750085841114592595563945530575358275939658083818797278106127768303594365712640790975393796748886655602684746797503697264856524193799025701457079239923710691741252036598448662242658638221889871574071860705295059190911584003274443581667808427748494794520882034111188433438116995592020658754130764047744597139116137546760402957795063988130585022961419600143786548150134497505837829920127855756199555239569677196940878366771165446176111312793752484285431592011180755932003534965948827273615472641589331144644510267191520788618817398954999078161763839496748742735313149537650611764295448056367729312071813729380715612144450529829307080092819671879210228930100243397137689043311834272014736554625175925015551797884519092048692811475153795031854058828134070818012655153751481244437413144266980635688713260544649607771889943596079044841933402414379517269848969721682459600885257010814671794285696387379720018950770576470302593348048893842298032853988873815981674420665096474362591720144793005282157827469562436307744471308410223104013341142234595159606451805740280475247136390877517068401861387976089032026129946097031677099086242786421361614693291037920429123854012783782499372950466671679997354017748295251140539335827615395176077157544924371870316884380183575717598209365867883104069990398711179104445811296139878333244484776392904958409943791455289581666195634646897426020059149135930920122551935434934250790495108376096909616445652170109074819827406509198706142268008484795617657172273050504621683736093380651124188470021510813682764004097256295982878573690718388596351989181532176479500081591777884600071506178989965408004828559653551009965046872725458741250091435698947001770912454397650298257227955424192691328853475033420164250138808666682691767265249444726715941640134947872547923561380252112826402603989194279593802150854581871342281545751958120909463569971455418693428755995710612729129313684758666413691657444809138039663564170439214861465491893218986639659939225644782548476569988077779759406903776014054469587059590756968349208033458013787693427963852844559012782083806711433749071054070490701412708375365869924127091198021481336663004073293222488298867723688894077967565896779852615825566618194985945795118068135209250978403477703226307699385904608056764246312168260257968732883588658789991853501930702189828356215227903200417931824574642838625274799343411347143322840537755278194039391316298589847931181107768443940398520513204544262112124061105110987045355702327987450588165462546851733350162909528379178830131188294151405235004121381085588410415364743726039586350448195230664034062946638150884978807684263344227292735820805811793573374520833176899913408717062948955768504529911233477947706794950761038364177634417804030072303723892691667419003668367886506653952936385556730892950217465013259665801159658248039031556718664675669851448388318960826467657191797101360591155848205010067435523663766860079861232780649550786895622976407950534497940331484776713486898491385079439795373434517146623080862771422928620659740782555046869841673592544367120514390808145545971961149361119838277640124219901283605054830583855904951689546030096089554652852421782355055143158719631775628749077414079803799194196997660121995578692614385970513224815498641787774081677575891389193303939063334806480824949938657559778639465059804032809168999711454602830032670766493614621696507653449089311790778164599566738637534256038384239749511092614513123339859255091824114701620419115669016264625630752972412826673076683553880947441573421565490453931171772189375342580027579266558782522786897376543671026062225287972771675722191371995266722076339660380035561218989161516148575629862677881073847049491827819690234556480237441653114350762751993086589234904274607946810512892132242937615556173403186123924766170756323598042641771409636053266856526204911539936397122391769174282004483277163062742257187652031487090037853906816357646266324016622136939163198938557978554681713819590138025015932822501089010670836536320094555475404154907056938156832275652056871789868244994691064961077326797158314677479640155049991485156768807029719282653149899583143292064631617830042216856700895485831952161498526623592505470456598598424533666197400248260708633058364441280897652801406943054989641309254377952204561815190159429733981070652293376208043980921914289944277138808679227208587828120724631223057949232836858033230867307106042117347331942661216432061650338546486851009614458209245860826794454970391251890761031276831494454538228765100288750630943113215976715290716466287470590649907366697022903642227462974189011630985839708254017041460264653276864105962080814222642900635823486716704712589139276202055267535469738454988221523202677036685788620512873885982009679432906573808052962117530020578364951263709534364419624372132208849416552346855258037061938164818302748955394461634935043731500026125655743094158416050823513557823764314624774549303667948902889248776968148143451185877455206037683564027738028212793491772195756421503944452507234441948392604649006937952606104181027767659306959475556296491111761494725317785330125107858015778657793295592896079762249844032266409364192010629459359769073105713763151005374724522101397154392583963510862129926476282990517906081517782799913259322221961016863334333608582436661980719914652483904688266478549018335575759569017806262251710961196238150559493196368074508272634513818469959481574197929983676732930019510855910476800854973071020935726351367474896363338477901569182074519562776073480218114759426211095942304214700465078431509156462009474291068986657560597174771124374913415562650427108749666987611265686008147357926832154931129957293722871910739104069775990141990867750997788442014046191702141634637066253523585646612796531725336552103002911979714498534670174761395505528023623050693017156762032712557285824509326981757141236851409253748493973080763847423259546734534374537656155620678180783585519397280902061683938719696770503189167826026413411363595505517803527539390251265951344188157904295243504106664629332234116130487607812530891930738716372608138681348237017063569279927044843074598053634653753766072225063640689054559662413314575756881036751528429797520306943991817372494786702195240616352762816068920561807891446072490571572226623474890337482928912548417785922121104801951841832084654688043939433775101030595582712010035523402196093413092509401511607115282950555139146370469597265796453435904483655033521312149654017250832237079109164042573647301474837391499869988660562385865512244869015897262724186654973229190917195606524623777251107842714650426434628447463658707135226604548097894538569493505575592991566806925423116914033107556447962566082978229824942681117945231149176436953600195614145716611863395505568660165193961415465703276697781608416354327171931938225721486268222481621781088760136410049831604335824627463843721339346304255022824645728839404853592826296514961559137815651845516226586764549079445613549860416069885525511102328444687843769068096479482437254764473412742378691685539548212706008731655003796857518297161578471101408473379121677512115111705312388842923582845023180189349156493165678994791984398807320071961900296285233001537857954617822211922601990761949930819355325994162502115733151029558614827159880108437384105942821719510669720033520102500701057075324451518083656344991111952980785658181313326650359905046100604691197487979184772930230702249526190718894536111323230092155484034768959989145075789773569066105239679058209527633284411168502434883616449659523818671414150364182250653596474550264106864744787356456804656505357492732144181060970319606865024841181690064996424378054349393525604892072873863281053380253023375496024179321975708808837871464263912805293943238031244945146324476849974729574427272904397744080629348175526517228363630105975385108565253936549852532061336056224504279103902573129362867615530446071658801074416142602586784178823661523922971542777291482672065963900350096481733725932773343700866082589120666824561241322064947106740555794657347176374178769370868399383624243107823495398052608964142660503389362980078921771646619376213876202274177734950555440479745359645536148290605198284832058341347771347707226589731863408402960036093985680664024252191138763019098078747132304326143144886065010201816707836491099342593002207670604174781117918329305589845536647276529119480482360229277754207067261987533617000078738859195980931219171644660150754190411937419764401413139789840368472745717345839460115006279038986519410974001715519972547487140579020686564096798948811136944303363623900197146893220700261414481720806255991306469414465383828657915889748196704693786278049976222561253073238361608037634226966120941726133746532384395980684298230528118815161513885092049850608365053884988065454838895901142919721989217190350798154277082288719445019355367591611288672624889756151814278617482096023478758894471424146198301918680848027864260431675792617334534273955827170397281718518480556408902677610471133314283593021668692697852219633776040338901176472959876385947259018361214620509385408980597202776610943637127268360591155429885913143006065031919486339624642765690725044791665490692623646379868150400733941564866997690762673625940966216576408046745220353926826347193916344014368681941943237188779447004420322580473646168316225388335507637265229859202310558058293265125250902620338515760268151855794197802711227657195125828034838658584797001027175269105367576510577782655058263493632339923851062689903443114273600537980686965666053222207271689389815654458175520895705751087608797925702418348330705613718134859864908139756865219706958902436986949109146128577607883479289604636543930649997160668983474923620761728582609257728537943655706211521604385147938931867662310469187002098302670344837453111360929042293031198773140708061733088901537611277410926640592245288497876945889457007662049459201992788946171217895237309430134265732040980938351603790621008730182544691507834399847321364486607390628727272485122826027265719301927640765581409257091012776500269148565884863432748571367915232430713916982968785569337716124039723402779684824169903328795708931055326122152927368329644680778390082179190104558265850990900705240789235551628101571522303160284472479469790510120307923130597880789724473909695394178038082768394349140337550444074156493985167188568242844792877916188683021888064953948194679836198283463215355293949055539446317185986379653817753378933724859512756293553891543838700750114934659241150584267359238566687305933318302370075734408678024838846029652587025209704278438707853275163626034841814309916235935894501555901117786017718571461276407210147611048377466632916929916279254147511390848924338872993689889533214019501260747445944399906063830087740236433203600542907764403818025039755773309309710414176853055724350021728089001447746620722505918872024704284326434719189126551809922380183307398240967928010124380238431776171221799828395135753851614419529655572201447417330250944633311728240536911827774182837043511340193156891058900807521021737403197761762838102622995423554872394994225126379897432405773304474910021929207170838153315157522845327066908210756412098295642867512547399441133250741077017583709260907066038015958410895735743199783694633060088867253509307241653988491954269237431385832789325787690082396350044021513997723272638549353320593002993520143958267725724983847083439474980980918308052216416159740113506596668276502859921031735843368489906484829050005665266159567059420731983587189161317874147076833788392765451261749678145534771528714375694049634808028732523317479413869660600587852448872551431275801541400347707172056296752078920644190147977204390491579907853947249891382997852032622975527979267699068680810216639084438105283944847185350101763846494279274856400815582317862813190987155338448939978326303714239131258762265055947421627320215031233053619978082011535492079342995582007931204744942708080971085024050887371938091528946155097334136944584574660472392560467237479673171976813679293492069848752801443761657181783003411845245897955120909870553197413725109421247287769214824029167431473754064638470253989694884273076646395113402885777387458123698115891077662989680577256790456516792188851422067185442206693820975044532379383359529529205785654183328441371414585153573070343570778770337616876806179559535820218990600609009088941594200431765859807156431590346229067957720727724423289045235161697620442208010353944959829701061133504727738733257685764652500525554212711814548492906869835582669851304293733683206284553178886874683665845011791392393044355331947932928603294731610349285808978900436981431377229524392467505081981361930770040235548615472185256587283121042354410714053532084960337990551849260984609244425321339720095342271286466354819035274823695898571628584888261991509954156563433731188517130384505956640946777615121071218705767612680879013545268749275504136216860589990307498612990587585134974147066875240606793812790989585860150421369026158101095271919520205891520839423456888731516089092978056770094817159188893223389487110049440245648388190484591628278082958922884102678508521938194422527562127744898606256775535629490140892460904675771081894579537135471676555003498471931485921634249689982109111520743357090778133674877234960079888354356188238037126478800394183597760242666970462371967503846292394645971556350079085727741217747331062647814469327408643432612607364997997960537121595731818017993282681898646641808568657543184159836458468569212290425590196786145136066102717598164758687846468268591789304979365956000838939641016072280134166990384336608023301671584610826466505714452899860344861190210691688887402206956996362820613434229469968161001117740369795307144635402153857482296099874155957627925963863685419758929291536743128609284298579083223572353286302359943303069050267676704846920776683715293109769496846053419301475865985091023349657541717337564280846821783642809927027195683367922519218814568529065997976305064529273458265285829486487314454813051201467386933908723571845839160788643475126975995754319735249666950011394966167751382464321288218156467874712464255214403824016923976780609391744037294152014642875653546238433229064657133175243614817434869661484879556636195106890990683225303367627839247819260771779359892196597810808776762176064688006867703439244617815286768222377375531311905077179291969377778969376995343323279292565581614418817490470405715970165624541143726410834409395149431892054834748076112040189227291472775386940286992832209900410236899376660781066015462087996093999844742755402446738770967703622537450293523684740124504866554017428535796636154588103815317770080201085170806383488935793904443796775965782970473241027888906654576121478674946583426828041737601294324156462415859244256558657302786341098959816227753280372091730379869633429095232201611177990120912552623701294467870681455192468600500829988859923856791585225146837571593026076969805028991330980869184109817133082997125664235405114994747874929401328420280060296312198685923033153021732869888992426785136578262488917473802031839940503110118264767318337661640614380643633722647468825209438791022865279257081723558038647708224357981212359188121348849418079095848283442295359478180027082325381336876323063577512301246072421363284276141968826571188148994663453815705066794799141581323069013815372139810232920067716062512693881945456139154213369134847201754654559418216273774143223993967111543955493009046846059413301250369754242014700666357800235479859212608573545612303026900164809416007469812629762721705030001538219622190084816667239823913910184271145550772094348350792699214295407890732669086402958228420979914635326492442333346674982848012737545512973228707305776397368866120347604018685177475390979214721615698818787433018505980531667224533838315164298594273793542276878592030099518355501113550042179410506258708039638216983924449266715682171395503419115412052427891325211978809743440598839699449917254745504722450515016785653825683098464760748169454847600201627993092775075991520767484239506315403249501680482823981643426010165197741773179365278574873065039330533002406697945641737504403151757341254738147156504729508561950431336286452051827826775774415123564782463931171400354111635566720020613746280257174498458219380992503736564235043593261021518074356558347527595081589224077166912358672659794181864247272867088238843715530156635132289074412464057276657750337526498787633221508780912815487011922648810537022015110719224017493352624725934097029515548140271526574563621302143478539726968414849212633490668322641346676773040297491150858490258470569444425566819741779310918488547102096113457102882814321595122792652141164616622900793962261345876167481279647236443672681355392242755433488462520310213317372068642758689149223484525242161398845009566512762465747638602779076260009704442873619043536188068493575649050794288590985331942198126584000098871336613393269756691829089574789683678855068353853318555747260986062545950395032774237225230700216776135994516859695805550301854385828532508042685965105105048122129918075242604022602370691906847760714784788630769485734127187703283095520914600331132629733838744922434128719936910714597518769838030891150536087017774612957971520843681994512542991008716147189372673516844993542608748000849796272310989918454615833405254186093628566771561420276491791843807077569791774058322153218711566042969812941945009057226522735537586985281761858140288739656398373999415342807981307350179990177113948796475528678158820543012557994678937823845428374829014086594746301175707124765276206372819014734747084971368604955947173741794249475536360653173512770091181548501197196106693468847033726915956569489879088533586510343789260527574050460496973630920468920528729374074311587210783125549941570789921196164378731668683870341922342085144294793319676936489875056468558304837150521136462428446440638107613796195769883471059253917783786780021185825080138959256994395043883027404877347590754510845441028954411662104238949320341221782021288826465866860347253176942327696094519329885858351080701462141485814957255034036263769822133212586537136592148297345851942455100203197323253310048173185190532859949989063404190828274453504432298580543644584119012528682845099790608954651026425732867415225051468835735934939814777698990403559174362349097231410779480926532198339532331778905602337493047810335761128659565861452870987408284257069315113255845352941053063100519402116989509562202272602783454655375022448791009075986248859034215011918049996947600756248608117777916269547938901550762782689171307778062595656416618405553371719836613724512942984805705961096815160141026429992227046196968801350882556819451229978350082956930197562238636495133221418257609639872279644308649233221364562165405843647692824325372581539888928021230730221809199807705794190472562640668637610938166969255602655564625016931456143988724459422547338279046562854443949642320948848826996718701687846945011415589314287112252994533653607980919373961480051618442110745452811255941677710708641718233520346575568018285005399582132614612119126388893425261101896065168182473264614333088468015975648809715870224371233452213732144099289812774936032914339445948101235326765836281228777133261625525129887877333990716835288767480530070148603345514893870503041224432007552308434300182909076378667209274491077733803193231038979805969982272756778969288380816305540392135623688472023176287141801537455207919695741327177189539697356743959170758688865953194932522972099609619356569662802578250033911654542033135226615201906048746902753603112289346893478903130083194424706650883097013774087309256136806837058871378410094433256614992947447125175843355137848410041149423070985098339564848502642816384669391945083554745907276276907078176688068121166148587062496201260720846135610283540073746741192044204378740385005456465913077600931284825132020319108043729759682854088697750976296115543624594741066290493355435514242981589769160002644596425063023017948288525612020266163670499739932663574502362917487927043311394992993605492300595796110658614806091071573279074485423181085754740622075444741056025271471028263046517309165645253048598979694655842932108437781209427038508557177130119117470751364282523440943631434996619848845757637149313207365746507010414191746587321840454851010230257140953479048594937856839326719006583408674907109089181683234470987532647850557460694168442983422373853048067539708296533598723102923594144530595503672812015412010710660579248382695058872692203644391471430549174892997008923466412223133142629328208528017267896974628164568582258485996392567841601349922233402369489070847604958564954454034853381555198135653963118033887898256220954240758039122009220363246918607721988159656932098331995913382911759306606914347441347558120300749112322594907689961030792779622301660951365168903973337733232886852557361521630158574344473613442051472004455556286215421767083763639601928496925180456488744611707354249802265855624081711001110286762242937043528239353998583840004312060916556007905451602370547512776613412589363776813339301396876008302059869276189003181472717149320784941198300891346552252704988145848702899427141766080904855639763836443488604304124941121607771579591819892366685032785933471763442190998009903020863701263932342549965672646101743386234968837034505137380724167968516253734314539535930225700937765411214127247908395666580536105364910505504013425514011433966101978442339428591019679322785551421464225072181900226273025524981962476832878909763554090270509843883532975218984581258486949002523353511993146123116821794033516115227813090483186055313661207705286595218416856320465865740833640619639750042251636496636794989431390401285015642493031982634981666488751859297104964705761487052135285023345160512180303973847954973155458140820654646840972830445968555541297595428577373866621966566684995533368766402867906549517463509294220920626269236143343476091749468549307136587397065475163067851809306047703693910455212574682662999401029948175846734504444543229504314106544093556061175201605917210125182099580384799255954899031797876294008031170245342663896702381916037141675623185668064169827295669840578131154009290610415532953663575470646384206262659802510092880799292489620626054475106303444336113307164718544269027621807293895570188094575155252841423106781857675193451462090605165318098975294505334835555021961697781992289506894357711244702755004753485968484494379978076710624889233868662576401273639115659968217140221742933092203713706559571605239838329578919595946850421296240934811635069888267236939727103137518992627646331821430346907110890599707130732905263388700643900726698516908478449617940870644368819183117111920317835467324324811281336036650070154920772620335338607094628821470438721819720378055674999031443702994845791802317340365062218290032858460767925801417217951208200653220921616560599651231169492192521796574637923814769866799217325188569389519303571761028545588204342762391098695913333258528583656179525257319652662698308347629391977950666236728060539086361749860255043741613182318132072031705016645465204784045034268887387236333566360775668375565379567197629664070613242164618961179010277502086885263272841761013122599692881328212431365294365255959475956908062405129666427676920635980576000404062831453038173354813723774718260792731316976714956716259272538959182977635704157341567546033472790787151512246002505216438223442278816374888232106102453390998053020281853925659728135278924482963214000381619392839457906668761661589331719074043063364084468232291877953571788352770345915800848620177531874632259998812879285788206138361014025181978930338629847638970951821660884880723330523263727394781598651201526488832879819666570062280312102203890863856647839596891603623689959296751915509820475539944315230758852593953882117448369920565043588336094283597745246863472814803690285492591849239747844298355013772970958431614488061270611085472044081269993160605544744649148464925162201857440707067205988694761781826277825931137713417646796794732292413041218758631165980482799784365756095213258041955039659431609522827577641219966230257084821309226615279753845381058100826364204464319021945325237479706719515267150181859233534857448567362019796698313929936828768717589937029272346594822074451001623884376553559879370073865037975322731431343931879001005227385997747017341812550148073302368873024595525039654124860750032281719574898889004550640855100267525727062869371010757718086192615952438493085765892100737774252229902112016301493275046730675467161235740961357763286573823004483925072311418219648438271453261929344429453985528607940940611852187483705613342304842668012329595667226662611910320914399184870303148769967599277681023395752083955280417884596514426505692094004060413098977617298955951616401392139595511702162255431914980177542973037359777073532700968904885630637249936930830948276987123321468945364693856371363325146937704680711084332918953397699350349136011897142359021735250923258321558424164796711817218788258842110248651006903937492633475612209711455821157449319599514936114560658507629475457313151880052579302360327204391871955685898476102561713157613264118999565899827758187228146655238959368469627051423696193452282102813116293295369809811820611440190809492176738093956816054048699075073133343188931513522798691969597403296363403079120736297103202671376907034572769987076450465255889252702494189076636287160970234886633132978120859284942420952774926203307242087563124204406001390537726739724963608355022330560614753157770122079839361795506957163306867741508768607632040925757469537274769345524683769255959883105239546559834896279916760871609679111036491501869228380514549608249202083026768691140770338126382670027458965588503721890301655253846136587784429213047332449251275813465116324926146708785708098617697159203760701430171099982200855629702692609677557314892921270095630252921492448483336014103413021245453832199084287824932327302174707910639223997390475571296356213384731735839639711386390829964212634035942835234088991159645913281501572616072391466524301414073398039770598396504676263968561799593905987710201789552080733802656389534213281040509530044399595260502521791436003108253139099024981892080752712204488426737439313825501431296047311208925958680475727565316192414146975074842959202554830492204441461957399308590669439369705036592870830995740126529757185824924495563663209935806011173256002330387414898372444659833492426233349016030787972887652565239413777491053795367919234288057036208399150141770551322041739467983583750470463545609389878861953858897521686388276638492610040935253721100859199889823918478217561498908557850440257501691341445576407217200750681270903477651518767096982961799501186231290859763989359652485641160391825046800149697080674587627859965767046277978433421422072052371323629179579977676579690493783519575437538131327033688656881975673576014625448746300350344073487826515909176063420341198557105255310154936616463669241725931517913234141219405747241126763764033139607885090611359320597349063332612201569767211835911598471697291472993481037955533662284988434760435604414208125823814114924832694239967660213899639846414156183627352960265776233439325982250746705620786397324515488569851527119318569490524320770801564626875906829136608447156697756293114193262940148844153354969942002784095710829927876953370509325375005724274700447613283885534822991753372097623010401418429331649358476170005223016777417079819907858669866496148686185119284743588714313929807832072731799879333714498018619175499301023485037092645168275917072233460243116701634231785364891913914223513759047216340565549072226118571343537231781019742019547125864704853473544783519657059972839352319593971194763394225794547127198545892915267251205925491811912733454545371251160108011189218497080938273854359372032813235749147901603558413726606556789448194165040328851173915743348471236720065696079481147273776819533997650981849196269433175206726960660362337641160615803505622622746863554664515304879117919319614743508519750385136013946153051245508705007820388235759786988459141794402335857519075462757429304466335119978999484884049147557979204589373461904491278798696541116717953252280826402485892668630931951402308747050890915042654445487700660012485856711952225216517092971209122839569303938965418563294674600977781253037006317143607370498896947780962349179475712255419936319656458969681661099308335912227900386775273325002979454492284789758043957399651733449991009959697027129815343969709807556669454003451461579080199018872350454009238300075997864706972073384941706128534155488859080634369089379898518049135821269841639136829177533360596251841327815747702051548091158844097231118831780474714551255483066288662589629506606218776702442466109939505006541980670898148926831436663325958991532985778831744572092298142828142865078601983070805008469343287840219831763422802749975641233374037599210426113390965969315292138840932649189726252805118036871212833509671620662670711691622859789586831709992781477352599243575533717407675459358848335463244256769811501750785879775475372490496201591748061410267746281964173104962168878606699408169389086018460899764035307339577529906164104797880686951743352833183664900919632746965271704638105089609878312968434716012582439892645294000878558880566224706714828553336399042379136827253724981129054968515698627725881352664971255445306138218212485711152967838892470210061794032850657945920078197499505558569452383612114514372723658982848776261001578738270622989752102802545949132585932203118756343452533696295482353072934399405420502588538776569164519708524042642432461481741033294693082713708928486859082993597308912512663094295156462889192455894326446091779499268952095367760862035332902386043184001429657363069961252499746814337057254701781763407424240291825650587714170455754032915862880389061459228818596075355399965075074404102798239874476744907264090586335482020807746857937239431141574176781146978007303582770429782928194992803777763413242484832285359083777260777461273234678759255965760237956768826524561954776431533060204656450952288511609294639581011976990385204063752467365059241474035724150523988504557437211894236341385368764385206049039330353753235100340324316876807910245735232558132996948611288710555989193722511921656312017590099851836087566032769853353226624520382555853285587299757155344138783805574112593505216256075619022399845889654997331525538396649150105778959889484898338485917143071937171136328491682704869621048544857438853682440700961863712633012047896175723059244144343509723555006188846962502597969255577467349848722379852675933518902541409465221209003760961915446976248702743759451726157379560148615286025774055098359736590640784378800733727930373356657113403011470758378141782574531196095344921587934839815663076696824880532325056369450632716568310584590457142781240627481671221670570864207632067621706005959285996961376774048516799234283680878652434940410870790204465196917976383803755351335621507084856709477057639321155411963403936390516871823000715698922820260749561095722751258211977300476220245342829162749305794506140087202225460530342122203666080597633543138974403989716789217029732524711137510953903835983863480917238566319565445639646417976753616047432665897904716847660534173953404161653678157271861612395427543435855621092988058154715424518169613656422699792065344867299459092303103051595757988338711862673304279302036307007164910471134035224169511560823724510558881120771871559124961218844242903896078026073769476391129031121054075536942724455738384137401988450710060421350055323418042122283650805802269254033300506638474814981552666025865526081838079985256449168838061302329067544852176768512295181149916140466319833959981903882688839522906125935289575187111705862569725225107764409869148983270935436098853031807774395879399988027565316720354163176335628466084945119780047679130262681782986997746390648556276978162838763549716774619968458921926495085003784496802951585605714991170207129381024878254588898442764201098745240374480419472980370085228574973725490824313684197096498391549693790766827094195555845174477155598825552729881300685293325835229236848555348731276300371564169885308242708849990658875918348046601556777901519923202440526553616933742311518492145276712003299818145537280834752962000667793656294334241891925214780370338301423224373506008504342685821973528278781013662099822664892223954196815669499379677069366496651123178943356707447579312404112852595579160148341958177041412327167526805269626525832444293872707133663209138238952009452937344763960123317236034548526397067745929678404111099367953835268386436196036009975162400020268351917892853988515790915382507894867756263568791866817770291656967923458494688925524139396612552079444900116360707010502437022739523596423290971204089535985122153896990089595459720428686191611418141869545197795782553969959313877395736937485283590708188241298679588652672238864739849616810429728494487844031946632507154143000133638975189907943671128703949005785021518099418548677621324694967195437477343709988705682878045056237297635978842171876590765899223637589186893632167577187976599929994273865110512473435244343751365139980935474436238966328073292232959017497380917244867776795223978147640117721218472111626475022416255387010078736441297844925351924338288217095319411312485886200514050155977875007345508749852924948184240670783048653556019896727040952330062092405547926110454729631652385184993545297530471299565090346144749666008270893686267674375681984812726653799290033514660234900344833777750787401494763627802519156583208017897453376769456629210558896686772767585816492050057848932961194300092471158728559725801078112461499042806017489428718880044687497291144587280462324000059192970300583982620843531822363204232400297674644359878438002089468925233477761325169825790330052624924161263312400410046292249186813073673100089880756577614583190965989001398093508497879589929297837077381442028914789656917062884093921538273333034304169413821781592216339144521863738821691137623678930230502470346046427492915580217757576520275208666521010951103805861737142752484767820312853519860893782330946383809648754820496562238723758204627890690078563955253150670314034152899670379267309106099239265413508686572204510142718404202587664059984182619582354178477640982178530466091395778853133664437364696515277466186491935960107052432900260083244438407536191217132456336426395397223787763556766051899812299421963311676309557828795932785186027381421306548523500902153182250443308347799668359940040006989614095852987359080966010381270557703265243172106181624525346202957221373369586845366928445020833812910236119038707725498165102871042271683550126152182905470253794568009879751484380106607108589990800148727683814092661736686988874909338547368682070955851090973114170760986841441292566712676909773768467030248844962391577153108365941215178342932068982023031022589321431736585903059057747148771529579552379991090809003101082870471108118043279938870306391783278090084360833105201246125323555263136207169068787772281673349290177566090852405477536130478657171091019145623803747061167122598392857217828806864515424707605013059196939740926774228975333802803274015634677539931713238201799257694508454158477414602522628593716444879678948023544676713316874558472971109681620903866835306678141394912943974191651135562899034335792306740474965862525559602526592980537867484259590562246079868774017321634127920167329786047089738458986712256781444108282780216447678639903235024486008212807014965719010316904765358490865344840861143697771862431704194226415624853092431000027840861928604012332287918512175550220593808772524317767736126375388756610070881061662895444353574156968241363472969706110373668633635861170672650444100511362722760165423234986737847098947258375856980869892704406997393589145104047419216643883965340506827136667879887288851960695194054769248989068161589278724352432312480971558249196582012110617036885900299364779791451839653855775558884554318009832936772174760287199107988927756518158891562045279572836127881836160055799925435822543404476436932124557527296639300109460141722620222431084399360480274328455383409088983139436117940996766596294287800255232311389249979114542857014146558904177939234502476473927126866960009334882332409661978968678229045594513349009423655688694999703960393656239697731029224710436142182735290830425100722844903673211996954325474326136320682170794675521711501331427119365619873900934250838373289896301386097040023729280216623639900631027316765133991207033275799846352182680786450521502072405123367480970418721187734981951079335793761648202178116803710501635532582323026969864548090130066478350240125015777395395611890614347316718399075584353212156865752559269358043780435188540263425924906542036793886678533386676917850153430824590080556579769764945492177814271028970257906843693364090901185344447926706066310135103178028536925255531392109229080846312836286419253456131668033603952254535997087035292041418983823581784328177065837628971794201932211200130712163397892334808916615104917199320864393639659933639541762239393163599016383964991726147761599732025201841619625759170201471991133363325340297193007992961741351171640755507205223901575797558374097821153400157848909309939900216888441381984276931306275406348711977719112934574749399342875886006939747372695819019570745605341517420688397251300405553485565053699167164879256676899250336256804615021017481461768524046158718073184078163945128707041127496501929869650201317787397189227002209903345668442288473252415265899402686903408118473034613198427389347974026391601284065744695935903130681699016537716142946773983293775260037987161297647230844474657714646590091472463267950346657874676995864707573204846503833891658656089067189374359450072218742068922172943933411050032760459971066731729701814393582725755516266411508481078816378009545574134576808189058349426697700529563578929848069262784821853673249775899729371090563741101337561018934745935470435754090294879997967388749641470289992115698100658981622313568328740979033413274310337821292736473460072626387246052605191116964395891032057760522986599234201092381662925309470581159014575628889487637460813171337950166337049522081894588483776363982690295421250831503238880695310563290422684723231436375733096292327841926353630454605570921616252628316743189476336277639244037339793560501301205816691020994978099688508828796380266481219019061875851728290055535435046575758159399141769660287099136482063125594659503862267074937950904991259305961444398144689233596166044063291458866299022842151024281778122123534374349796180234722737140764712651648158503862458250225113765500946457569606389007127491638677691463187363017692577612869426996066535191006393384398615506739562504347685244843976583020804832044859633484683475543645637284818087245981049671633877209588500599802257369728110579995174315802116256712787030136578213652340823127761930716730936029283308218034953829218375025455473005755507183866510741625050067400890691620862013510837240474565890308801122386078403261102022679024064051904151258288842292457788782961978143677899228736175660159677721120141314336263306160755206981840040429057553324605705795913666201698126079275174056893060353289755972192118855854406733689810295125677579302461732452698757613711324680892698341206160506873550934332569333491002106694195634967984163198257387443476710786544103011335479756409752200463806035382931792899028954081773713846872970390295671226010954317426584144002207920577926499802510854011717005422738709662932141018028767158699116149917140307085073364688564892476958420186673320787407952476575856548638284761030831354594127794638507624857010173176647065774401924461036395048074992514573156654752068400657638115779301361411471693706642166506569559571681336308866070311353900476993916240796242825256435169875445744843675347174863636734064001902115379255715313820014887472426967863824492656113635631183137978395434891377018964034154926441128009857438638703470416300625094638841892876763850490921170951135624245160112130105299776642714998812918249705272623221181103577742698331438534986492952621316877834217781620047103788326479684824970497445241717155002566378082652993089619881661119139724078650406814345968562705277222533989847601620756814264318244152463548943910289676940519763566316803869907788818793728287560424221820011171090375699009275529663264460059256364262048108085547831540429643126718380483788514325226846721170433894008908919359471866798133835657091471157303509077241763132907220984678657710035705769606569892273577690048503591859102697869274939318602581508294012165462069895874067705163794389572401524767917767389315736917332395012772621325509231858475423143683456001250512560471666293417450750327054012943173635834079486114023812901268521557510982307512024900272129768224772631749601309788706674677599668423697721691526661055958026487706948911095297929444070817401608609261464656799085211290479378309508619363306271357921851088377396969255963364128073074798070514398110828191374443517828596490058635319036423833075358002785815390024262058452025677070211149828297258056842164302519613672404815360410604798924806953102375365375469569019730173741789707109355378437316374297662811143407737251174366291643246658922625213162783553743759406588939737959628710010191990783678657720709828233263192676828777073417684204555571231268759260841768926390750794310339326843431083762023021159396790064233932472559237081467469006468885705080073863261527771527523920462260237006246855537814944926938719355733221773097575280759485769217354467197178626055618198556127695249712988539605842939933100928436300526908584964609866238466628419015770090553428205034464672294097833640510481222245065795884416350999932479894338832487910290849733991365170665227441328731055772991969037268487739979947584341978090371076269132382230020546899980591423576389336299806965055544008132031458534209024295182387615330642087155688595460494879260132022892899961693126791660111020520341322045024006960591474345090128139227152841058921323153581873441612664172680837303496554246049012794444794132025575948907377192517165145862358038678268491986924819980862005848723009754233540805739198608550826906761285344970971629546699964383955225679474510125040659909184945404959930663608727926318789091538946479344888821361194639218187748678668963147328702096235448182377606426164155118981859351578827700313666359556957626685526099605786181053444546925338762917914418905287521532156004394379672738693864676417196461472550354444794124428587957465791791313846792636026661396859194950218741395698362914129234391144386980957963838642115961885310992523968001201224031634913298803756855272578925309055907545684414205501681167665193781270569005562252566095361516425074187374884613280193920318901811929770548119419032914823805908867583096139469444395599386604250323730210907926249466078751722800261241328497474495568653114975032469536429520796296181521474327117530567727723183650219001767465527014554910266811740377313229515342084669703129556493933035679988572658202479036680527504117744968020691559697657037288352437695150251090345886843433794585171673145629651408121439361784748394890594181866872620216042363478815258745300288961001344321188798788568541748783414719272414497228011896108326907838891208824904145051368290276325216001529707778983116647933507927681949161642752441593522013848445050570690591374623914236839867020556075318327656894667835331003403379362372763904391931960192498287879467421495538077317458585499974876958269481903106118964807764903991758883976596841531055668529306035134348924170679177937872154535641120104517748452637463857428301906955105262229186046240363867320442890070863449179964436483149796376655474259609098854550961663544818267813268257578769900266924235222190720590941751042613438804898572253318735456335192160603955640136096306454478779780460868259808802577229120671802356510547452157972371956838290055703054995042515248258128450458899947648504992917789529568024749454458942846087586146281331943948890204720728889613349769851671623303876481950367066797197669728945499178625832084033174714885619622987212617893525250502927459728110695925877810238260652424205302120995277334229703003467859081256555218623497928272683433210681800496833854449405564326106969636444221010134395173471229433410049368352803577822687717357207031107164487414857501246080766563679637668906050332306376631800584468186172761245820798718303660452096768667076257511481804742420410585709151694729303111052945132212543351408192897228912637244955606970542131234671246179030817892206758835470632166606026731308457772124155518413231962091355453196495913966184817194752065539383393967659474560949282260584926091628635233604632417957574603205362431420591810654624296055335976782407161496212193681277235878546300634217400708459950668109739815996390870089176108483154240096237270250285913867150247572574683179146168586346163145369721742167918799974443859443369923962097377364619840699178189494633787489260208140574034244288645371615826747001652140174392662655841706918678368550723183639523416547371425120642410571441666281367755519220015094784047884737317286966096319286780331402796287239475498522882413188950971304208886480133775039827547963395150386466035739500642509317395518183773520642442619657263259447414385292955519050070967043402143705501560898520826814251439639075794449428591519512551007657893661331274747290996274810148944004273684251950561129157200984737563340511729469840492684317713094877703464322475117783996191921329503895426154274234722914105076480449424990571472202851252256486247086134351707176090996360468135782103517576437848101251452577978060078521107703524365341019910184505456604261522619381096613320890814879104863032900796151734307065991193428692008226287780835907646023460984915865355275058835095066343884717835128589678835388192298291229732057160642099085570902736688612939176044656067788973707610438797085791792356725007228299241461601912765841007744937781922499211769339941409137127981253532273635670999676587886322706050526516650884594785704928307803213394112954378867948096696481121961587002761779090199518688902417970882826747098527974367175152533948081885341186059122809558562364422204410586414127732043233228781128551127356297220180543653602810973234154963214760843368439951008040800397544314613009304441335611133444914605893681880732966426897693648116798398575203803513161309074924593790889332456265225136369548011036323888372042371920312226677315883852896740076004515319476401570261698957144804309971202528104407937130291588254605447066297360130206765082963681732264998031091272165481954091854912033368030596146535980036776540079081591168430660356019309630858481074187841808354940776048969771313134632428065242543637831376708904239911436158360047431986821960473359819234321419761969734336055607222773145092320531309595988036315402930584537268603636034033390104181659218473696466411846860325909910400853382996842201814636709061229743156824099591032182849113303768724354836735398807762892530760206744039416349224322040468078137769776714116319807473272578998699271869864645766201339075385837458417621158934595139550438613851181703102226309908365133561423085043030527405761562177831168993745220706785383874110360851557321995253433105827807293627972397604881042331328154104316626954340066397268673895734760728681135649707694735972986775775343901134011303108382154877407315487180954330626745679926526104545301948578300515839024118806084723903725646692526433683284031962456216981148024307047005877597179729653873275416602557836212050569805096264112498006304505078810631574446338550728584756084549717871431831551547330396835319917398617114314924686326630465615864364539087763511261671785724405647580417020393969039900235100742549277646252491063266892552443538293309348645862206441340116694451996836082902074988264307053573968134537364136231716136315707440491196104591246104196034143522187743576754049471674504187299247088154389743394842454246572496601579858850312211376220668221729221589889383431899666251666994419171677688385514275951638663711211047259510652556413124176763019485885334598492096825388522937462595569907450259572957712084621697152712541843755249022827552138997111316265681912626242352117641098778662418615141205265160330454079245257689744072299236157893461507725105930417307071328685945421369522414036562061924927300216718954927386123689281332647914535383046957378621184057802005247156136888222723830660582865788447845422835214233829468021708052451007665465418856525519647693108821453655178642955087139366840423109662097157660021725637274116480920588934456216742445524823059961200053811401103595766205968090424819561560378704045241436361960286173280827479089294254229354021160789117478199749236134207852076814147124828677070017950254777812592574844866019142624297135221094976173972373813027079981125392905331825763192553727601617060456144420270668179640878678427505472373551992752616851955072252496667407710084689805184358247972156628700222909413951504660410747011799579685808227223343053377704490192798210991940890775509224070083657455625981275750777174099046559687116014216023411772168333673437394013319333475189449179598348248546428483042317111370751371757414102355126051181449854588514663090246582571098859996244666587998634870352401346099751163303631785516372225580870732461203210825052629951744055405319016607714979190639304290716492783615880104628007007241864921308306073007887110153736067502927575527552544285863549830070411721067542390666678949199292609623111035425910607140829384094920163176316453969146654568673312440380967670029005104696636893849462763975840388570651279123613534462375539094008379221420468354477525841638443965986735115365382764667182879385561490493439669510678845524151719616204297970598582311744102791934065760957250736394997515956720836574673120538107783403023433782297154409313090779962257375393110077470365393032726992225911083056745432711600259231470334953851355893591387712176699977478566591228098633744910564576014611295324234392036006721227557345147735463060968803447697727945733261572554003693538893690528819800985181583543151051397264114076558438647138213515208915757367444753834492948034094767480538087501652762683783948378213153696956482822485747132367229861262893863578935899807008200547583173541100316522775345878520420743977134073248403610054293774810006769722905993248336562142438781574800419784456199875020561078156570486237722412470225669061137275104499092449914964986953590115097220802074282666975965092750942073838000410952538851969650947373958477387571316598958856009436461047215032319732219284300366338825087872081466735866788562777941652687872995388728058775522150934208197005076355780514920882119310890397409176764519296051740178228698950741245220376346435712910428777951103803406227681674838243685443722486763343383415633278235826041099142700654668237186704145012707400018708464981328887336305948024479289414133852053252495707525189996430569293177696534420998619997950474488353264711742854662863374761789915000532266679380280863123759788167039989461138423021397801936442528702862209572505368139134290774850732731864929571255192461468072224808277502573451744096103408464431086517016451905136716512967739410122167847898256651760221483783629909769705029209145559512367265909967223770857392893621150260707622946042874271732125718604949004303861935609548181324171543862810892561905386363362582508271627665243734693760457733648645594999624862793645523314202697808213914572459191002226692162815942447299061091010324369439277577404155296104877284119374605296086431709374006021734651885358807281913997727536906291373493360789291983756396212305501324710181294054267165228916800989943804872312600429238241147383968371527939980740989121527218951905904384452706917659999441029324678454956915781478850084805466229300520098768952266781439659201307768962020867644128349128845100707473447573925328973526158120381389611909015847254147481548331493429353140524621436942765166066519025640272942134560799814753077747271543118924116244833152262577119743962388601688489527845999669070831341910326630968911320311209667278664796162342650403806960544923223045562425720600431576360407991876579723634763869699346431152263292016357175293071286743217138795871117513284696779686196399355720709302074909908533214270057510352435830344467804517811181794303889619908906760625175095263489565986997450567362235039434183995915829754451235267774192803350594287184129862295045575399676209051901797326355757565132006112945784025165579712801724007856484815381169243100949340839217062271751598266579971680224317962197202624981486312971099693869575332444795278185988941460159016434506965905410858956030008138671918671812287479454524461475376865001181248186701479386933316719757063791370716088891647010502976075945843902421403020027789947264203034907286301746706781961761369797096226518592090726341910970091146170288640881219417083482929081734080250883610428497038480856300111371594284983237541159323470450452463741161867697817586225522154179052551563413493379493999624952412329311148666968018022981847567553141286809854253399700004110321408800581207505136805510917602292364696676761713821934058684229891347683591167168765866489890244540838134313344971946418076911842831256113676964610231597850658212668786334861887053735997507008447508351060985917308864711523742999646157709886302112455370277009465433763309587146426457269475083748494884679896689949338218043658467373134658778420769457095749379983395097468399094976228068940256196511264714866091917142843834350104341842179860179512767037530242786337546694743079411919282287809186491748829858986143481255209484297456535519837192383098918754842543896621792546316153399092839943122209044285964174458757046432613982973298458361937983984893155547982208143061566141086845370634726715920804489612232217299479465850923651457441155340890143513781397539682624965338026663742709637669493335422881421585621372848621089529306251480182143041706170415029743490650923562054373695866110515160352796567593757401923807048624697405928405761760339419213495297045622634608628968003907397123085868468398104275712594698227721233587660598665341991028236220522916482076832029340721516320026527157496980807901522480268896277166333963296911533104666816362773308608203870500762074510625754836878419577216493075428764504905158453733284576835672561812938981695484078008203830631836202112307926762863782677835822230056505294488926722826878908464596289023380934603397222965241371981781998337699695697862678795592420688905583175390847886908028357182977139105737394494801528714528142215225143617293255310770546794086403254962937575132904118392298456647279606482229228058146675446788888907157188811275197502353408137486338635352110244491980464394519771443174247019780544555654611159002957064506762931779738161527023258010848319495814018405266994863074166442703700417123250848724907349902311541269713816470609399231623202495529165794366210926086674600753353200162701522347091449455505373776641054356991041552996122259298849406076207962088079660089812278700255257705260414798679921010411765148473443186746873831546008312072500498042305908084283321429053740721284714054398043915918501938849499861598182577984316519125320874194335670088075259293784145809966781163955561333431152971050125371778161777293358403424170914018314132512105143480636731754233950758088021675709185377855634784195228332415658819929768046622855586051101068825067614527873081754659920439980515335131140317781486658604324221638736835056772114131905721489144246078344987760999245479364697447411552580425182775807164466465535051371300501846200687162000409745392721174828157466802403568696703788394459559070414104027732145263513047853451781811386421795004196750028566111162868004100454866086627265542973538269535256202542174591594504182152032730012904930859377836273260926985084053869722079360184476042322522370732028158881479263176599110630062336556031949331117687362426735353573880269675217842783162861717530632032844880292796947186971548770781604690320243259337410713638545874225330881556067305082311895348847006608658108456429497348537755114762075465010746152058698859371718211161539474589334350852843458117511775926462810514448822774055142686989065786627736253346633249898508865834226858528948758087648217951057501897341634935190678869359278545259891108196400244789608003836791777079326175965271782028304683761701061561117412959645369984844323239929113722933907918968564653795283670992548727183311035133583659672387592410551846234861151516436184135176847803593004099512004058486973070452631861906032153575411115127548271202707237038355797079853875592429235451290024929015507733234439383999554900266660731707973096449950676320490865822934357701969024025029618440538449950473760192808810958390042107919556525805010004626347371790566241231222662987311254860552472889375486031121733878972207823575455218857899634907964654205386829031658532001215611396214068527800137060419681671962020551983344703878549786596565729067168858641621680775826268692725824982811898132490860238221383689507353492009397213399090532971260484871715065241979995701864494535275743374605132778617665257423339724265531359285488659627505996765578401203690377056523665467189270774481003388617775992761795271077076876477469609224692592195699314397027376223319196453819199942365485139664804196699534063338250671043577768931770379146159619774739534334195287477837000335394652276477701202293631111171069207415875190129741628929778271243700313965703026825802942027301368471620850497804800393404275022668937688904040058647147302278202710366267555463519901213095220865442462210757209295544142156668940768769882017339618340425758517335708084512439498929100087590093462779867473692180141769649504820491318826055670720857400821566212089159503046999867276173661683221995011849444009845740467869013270260721969280437552157279005527274143191633264468089591028816564392738186530881231098329293871767850770695748569066885692424431296515008704566759517259342537857233640247906724630345068621448330302023166318591583734257805468931400894404806616221201306116241521091351303020575119974658284553751115076523423296774945097592849357696343606928710293891340954339010457066444625668189747529376181909628335450424946071732686038902101061570423586965855267871624412297701420739205322824589173728454118640664157836526615894736498553781506505839795561651654723056248000524628512756265257781095393260755662551827741557686253492601420557956068959911702487491134460599603864227835531604054176185626824432524583966904721164366080168339979543199510782529726700968900622994841593641862420968281505322328186848322201568236935100290245344546605833729523192952207442214758296754092537529588636133292191342530472601985879068475369731375457720072420458429399250094604028694500594181423837512825597064995485965758131281228090139391326599516465928909622237906522989267801281820503876527573566014678326063883302533486994876470706856179560712679772476295929554457125195181200303957121204930011098126751715324747149498531261923731518853900572323459798969660529716325638183034604400340844540817601227014711259190261592906065886394660947221707605101216944079695092952652769673387940494382425624763941329742872995798983476982681242133390801071078663649841992281092609187351606642259519287728424247434809414664860545723919958961526552046365375421339564535983983166122011998971679922665361246561807024159308714291685545041301221460911321797542825252588835940333731032807573259651702279866636121498506676379584442545745933968304528768152735712624613719089372944426500507644885034817251702868087048895258117903148575512444993099596881807694862893113174174104437061274568953912674787647274883609050681202553149281900901188155617549356590474363381795419214218905707241276838959098054424678120333545993880270245500861570755599221487837878769615048009018158798475680539103493046247439465288193749178272116531484567209234815028769620527822493045325375342871542130756980139078942047621958320815534479494315561123450153249406825888366533566883100849582930574644592397367624537664766551451877350215662288765772520950289007552833821263031623161792306586630581655907352520889398644671879918566133409930789850128146865952864140091630572080345495792039020903520698801003147974049350023052842314955838932493332803559184760072726985209214782652341347093094204218298237078040692240457615684924924038511970823696853163714999437661465806709872107724225915272247411830645841189757491413861100369136019426557368235637950554217248056371551353587621008148051884077263519358683196536077496033625991679214532355072699114576445802890046777940528990512801658774279116520222981860716029377052960166595304649507521491021100649838049099084912033809139802213962353342268857922627552390218528368409748472839534955082836588825309474191839517776798992393882740071875751469528544603453954704736527616311428839699883968096437531605215684639772567663680603918312946831622725227010073941579475421358153735413690159391467051473598133018172060554558821139371001072377166981765490834970784041388607150179735853080119081534260784724420532048468187801170901211400026545964014183546199662312734305214810324709100111049469001058588434660100660546635624281019606889245466709723664395936642586974848335461268944899287925399398820817807053246139891546847280831395925032726422839493732305225321127400170552074037011569805755868555194241042849492538930673939336661234908927822835786498748553010291733201353589041633563434297305607621542738835559167117131618898352880139394020372373652843808810801802992004075287258661784229251546909120579489875673467062037993786714078104370874371958410812207433264418927492297819511228572424742204724305836417925119358920248544959167694854764809943344610159062111059943976109443059646426694481314171379939599413671428766933643847945329507305331664171505762909607225151695485264621740844487368347469603049859934659009179529154584319233127297236130510241597139017886177851157343293982140158642975524791232180588640270523986751652233018531935395641464551871424296294918097063642753670545269004019925986860770111607598348249138245242230899948102564730634843836376583607073929150012807188874321826958633143922370666430031767871225556854073758419273076602796245696892541586026128118222314353979912793172404731184700142756653922642722602922069626421474742107977429836688118691935314785526390180320573124093778390241820592511436722844503541371041288203455106038774444965447097200833142594150877796047930072178000204136347016307381323415601715459376615328184115486726449155563954256255939918801813187879033352065421053048645829608951576725315400287887243515599447798694204673234698819653626502553465214710572088699372581350421079944540347907489946605084421845882490324635763146719971964473386219516655468808410039483756871909061181693022499936415247688496217105768876659792840574445264709983771368092882076913354078940567299603404478576322471929388932642873701237311874574542243581385510427598210579502253455627488401110315732953332029270106789196470027972249272956152727464734319581126651099516825692373225480174520067118683221731873554435883156934779352795330322274361179942294376011093480018929816511751665145059231366467621665042457534932120441337931907900763317370074886024837194522570819089802900168912350977909673369167366043878096187100911829845404560949041525991203662664084629644738727361751459461277649549542971976872422940746488232753396186736767370188984963074231547760223146953150685996947859220070318932527616629999839307383563596718664419764082333316484017941198422753453227802798902838918440724033809137516113937319837177609580306322439209572755824576164178462370288827393164932682680962764403107359088303957515040703769259822955635401302159144087109712535621108364135933150318842628477003318329408044290966492694822121305172602597367810190024815235273163456660854193937781969753464924456661509747715391070953364255882900457070253650979282827637636831317737153408447787278320788574962143599857442967577589624313228280018459334558466655464424523817915840140864736822953638307411801796214527423451304009954519867583862124968010334975996694115734344113956013144491595955792051220668230864793902348752830355936911728639359162813705890899982785146220523238526114664228738802392742035132260680761679755576937972339438769074439078740478805951589290126600875896619861421777155789021369673364967954770032651637953890365396208965743935674067714724971250835474428793481818033302658097880506419006738850390208660201352575748066745652438628770873384425034326537375618476878758240254217974534277687567156258933650586499190042938613622784269904901688553071140004216278189732418952346629558544388107762608315961599661642593403924451588176401798424641814590128021125953148859372296120259867151604466856293577172762762780109803533899460356479813767341267324780595046356547945972723698479096477837699558741734188077727595799314226281102981282027827835305836662970620121267418065749390065788351940061853456864503659795030853433534873461706897970598647871983498629574099269525538784081007888296212860721831998240499640971323155752745533959974174935115258782529358716753560478450650924673393838998034576954032524451377159193598859649739641093768643486508001876047825507190262640665703707785332522598106070005266539199166337148214688764590216428302203479933793126369311384224727681403350807730388584740339810776635073611845620302610919075701987435621867662410981223612619859455120313384295036397458290190443591183573747213329164424956996255678767416268216860747621765587676913568657276780082336103937840044723904711344034730603296342669773323097775172927009001086047733337035674410547842077152320715530996717324808969376960117169917897217549605447917050462003520307595928902287664077657310914361593716259783544317876337710961939982195378772885964626192931415018699325442928688860925834297838692179977432244764812733783010499530984173285444624006002617375152563040598321090430435085022958513620453461100463796393735521956885520045655616989295289966794224261406087860415211964330831455680115601164482260578017013360201015893209183838288357140088209744288615531731752346415443485915647348035163253885084275172531051548997340074156399436896288388722419880899797311339894050010197682381051777185966048637749203527582428432462643317815461857319218919113599347847821767018300079831696593545323290846778291733937636250352229585064678607701329084205756935311478256742634854748975370853338754898982423960053672091494966534790231282788491159023587375651578642398517504680094799543188878853872494940502692122710080854314267514257725062461241948438333643680892459274467470700058945847078680264483245127758230731245156466995866897842137429242816137169480916603600289296864545982954358695939152746016674286567772960361482500245110217230956710528928878113739879481290082067468035007390132662844681216365825736386498271217117056698213683302853151763610652584076069504356567592992109468463126384063492670198658754774928745264254164149891460987774686790892542627453893898729079433310510896024289793186101525574119103141774951982055295434440553272217029557332698710333076091895465610097737071000326919815552962445917623377782000815259763036622152255887606578666261627327585593833103481478092291296688781892521147156424790564342579985587160101318898994223624826995544644750217423331473896322145145197990190424728750590549140558012851786128462469432969510922902048794161341586532463034412042214089340570043501531091743999787484130231561551974723766670992045162656448668257234896058350651890756821690878937005432716083205882406613671517550115353073893420435896178982981072991188921498775820171783892685995718148738589917546163496647043051717828577151023227101635917251981946907163069908644793899956933949731781890436362511090613125097683777027135219751860606896154186097871309102616701301363441734048172781797642412747296236232636514296096095079703390304127380492067378321205719324267356315057932013270005826023843828461762419669880203649392628200134797352058720481998644295484669667490454138934457185885912306840689699911695182751488339796442669462403466336375544225916172096847144296055911256166932830891012681605891987702777683937102345839669971249439841346125777336482622413030442207930861407229047717383259176861007195023125109375323325182317374952151658015111840459855366835573339129450225629754302724623749959193441994112701033329351569359723079995943981602096658292872409248488722060004487548758290552446627677753271757276464260816590508941980398950736391308893086425368644764944431630313572640144149354036645095471709351447340225399190509675761826149646808334094383079104671444941992552354855330470883285374940973244453723123251932290472689351303656972026570201861595351109309864998690728229947415421753954179040508878543994465427614083717183930362510452162248013607777698367604146006110094417547966566118850290401100659549697342806782212516193115916080179070080017538832115629494585469048847610189921866822783563537006992872873744092816756928474521205408273356766195025707273346135217867343034369590857593322233390026095662559834094831263493911527987341394569825221275131781132570900844352925162085385682121790770156345410896536680397836161187803941488903890240468179862366362961940404939832620962126440848490595823800736001189711727893337916143675095469320485806995085034712764385425386742483556660247781201678655705146677193138346444970445519741901296293288613368042652156978808170707782971012593280370177664895680673830401099217748312686037540179469678945998436973535658264467273052983899369008385610818313039760574266900578890187163794231709359808684730689551204600187680359269968528321772403794244308090109934514959879117557977620984004113241121333305013232283735620659522275157336968185308360142760498128577769556533900778241491926645197228075203186274541352671409725926981350577923639601565435940660227130273934098687334406834328491683950225298422333991087055146851152274730249725576332283683962635337309955981907768036518301748393625044454715456715304580633060539507398462844439621446929353741547396115431759549112151799352512153458803588298782298164281781142690164309358408178432581119394274512785887506154436527521418195714895986102828667883175441500569277657281652920009256918531160571072716356645790066252146437543415937513781869172496578654967600623922006750804180594609780363116559604169376315874179239935567944557820206445012821683647360684261574644773618857121505624889862024780065103188426447168400670652860334197926541520878550954536583606982294756373482027367746059712510996147714892044167593899947949738281062889002008895829602543877138077029556343263091321562826086282621784223924039605357203086475253338192660990533035029163684003937699086579688357484809986246199343120531702802175519313647676492676185884307765637155449197413803639806752297254877329706339311035768390803066907626088988238956520559848942239048863587590966362144812544972207292899124133623312727253530977497181261445717936831554599872648380253701853612218828675182379666411454062200883207839008113199511843097257241401404485729795282502751767689772688644134901712902497437084144750672996590274929247523465382539604517581684132467444514598826348224654721304506079660615605245537442603869832402071819227034132459258319725700334135071335357901770484521680958168865258764447322670725537714126167578131792845486207516721422647047756428914392683356166663907460967577200397677547906922550028145629036270165104164112425084461628947541777184005979169564395298686709952137795547592424587057019940807833303099953604880141021369230171118012463436685066399631377761429280707177118945898130569816255169099177303217851708520493423692124022470238790189842760677436188089417723623683368080567962640821453315162238431227456887216236290141499011856262541200184297647342979191510199531199734303996377969805499910020022812034691587103980866607789514238260980771706881492915604131843852661346040912252780802828029867107495165971576918699114868384634456449601230456044032071883844856609480495108142243735369655570263475606489312294277268579148559892904588094435769554197364290228251868061513906561882536545837858298306291022209533525927522172068147362798466114639541344826123789268997807264067914771309527267487187422666308004176353330635828518055091352282376007220289340714401231060591557907623567857673958489615190505030065760890648483556078326749152590409585944573353662815891938265046176116737682024867828926294936508485483729585120042223863726563961598695541971483012633937256478431888360657122430143811147115206058655618876503955351064747161394023053446448927864317092714011856758742020101906590310684778077782791239676138773366217487860945621491119671267595929069785742458345056714797822920578555310704719103905117650055397454436840782101853644203656270005177994410747139929370425676883805440382498530388886545332011270961362066161403249725345231202705990972433827087427782383138219374171198319744373822417543274382564510535349232393839096227241045045807090748901779527846702863071900325709879446670162389265970475778916519614434435183541928955366547645020770348696133286527607236451568402086233924851063451718605888445817221547912393063087410765631129033485060442469879057280883199929514131088837423698301024546489612557027618020339531977587692405546954040739704382191955560397771742315704992558645782970871172375437814810210304270165857996434415583352139577339851503240609700379375937488557406806324762162051281552371866635389090233690484079579585396434267164643205424699077428423230149313464636926722020269472262945321624738858542475284549469127102200071827456995588982997403846316039879290579627377596096310561628315519408742181650921082841765683143177313029390732496583528162051744167798480023257164020686357973713518552856376960714055188977109489644796536932094860077584847024171746373950935296486479985366978427416904254530573508146739887786005170422191468539466689810517246796981459426611496971468808123061568597512774942439157878738195351167092543102425581660110859324584478055201887566843669682651099032722051373412117859052284510610955542958078426859734441737362703196091035775856191771188505955307715335476150106938481240017015583084656401822199291812501777505575175486312045394996387070208003955412590995874392467492579868361622422563889464780788294206562859654459572067135970911725965880803803619274569684410718598728952383028195535783002197678075227254683664569449002044790719646443006291949656186883867453697976201055804907366030132789725412854431015455366127380077851212487375600963274623916270830229451993112191995586952988968252854440820864966996191186193347412386668465985504153755018150299431720147323493143292811630357251433525059978353193994643757507840771203255108014161144592964040694116665730839873662404537130668228420100160035437004431850963863970716042583195554040475877947821568745428825129401499655184678239599766109636396301776389286230710795999193882270968496570797879101356908438703876177303508000355329277227735160248580898240835211982121178537998605317576460434740825469197359378269176757594011468145999959530848075489724603177850888790649389362758966502039721615048765200537963478987049304363264313619177969205342644646583532176117821817318072755310395177841447624829042924180933258381824305053338623779107299396219064208970160601576195040558067145993602338027809174143338698726687333220177195112739025874150360653563158824281774339296666653942269661963703739120127583020347836871897298579037736552764960027870382158303833397313414339173688741347041237057531532812502388894048314934438058483570205825166508981051247012337723478545947028093427516869942125135789430137401229701089252771904925613396034996381262637985669683788794350807119581749928425447875788608814402130144264712927918210493210052699845903291189397348934306788710113582727020399627429740555062054036323820278727917938990371533432516276748091444594533456944614054499927648712302684236111792846071798988920265178311922756877107937365114576753715761147873433488284380511777914981700178753382376815322346640231375931219380572559955146052074734473789805391075019752204054399090970140087144022977611701784011922237360861514636167998967179239430210747911025668518112635596462352906432090543525084630756915457804132517801772772767927415457967997449924670711690245647794952185793870353203681913265209813731750745964891518503067672309606342548075048034421838899928588955333905965405225796981779041577583877155153378067583902001135396025164901548175748255134787601248451069626024804690269671431015455804729517729959858653123519305278512421819192891467428883525681222571511419086295256639566445350372937156311256204579241625358669684697333107587675067013847238331232365032162077395769862866318990455772587494818272052811490477666851836046040417766781541458872606615203383990122407497704621590953267082085686609015513486323925084391036907188766666294449281835655115556793822366602325078742021614511021430531579240049983165310686136534019070686695097087540283269217946552079440038517593835526193319536205064372477683901396024416278157592260016095556084608137116305333407308400449545648732777769506808960920946075634716500591610560473446760527260307384244960608392419031631417007175744983537796129273869680136377384465480750511705459070126782324588854661327805212675625224569277800132943650767491886168203340102810027239249986727742424320743163615677014916667763434050645765499078326653349068915203737330849573207326444941130075249501899470425467966997128019978926672786620861472269553941019593234859838717129181749290173097971535913503048969163332396251521297535839809022846910852462254039433051459633533381415081395871239623594605907646023279061893148722299180513802920105407310700979981836144556018410392436119891683286429732146915020454228122521301751972933513878196319218443025017238966990694466079723544773581421733868510681703729576762533536456003737067808589962315375993431013566766936816886856059146570146790705713314540688988336043695005437861889027030833792496803407648605923058973695067304047221893953272499280394670739631792039688759299886062124143581719692192614852924184230641535426712396032073372819130993801403268503841460363499123302713663230855830775825306690384934483518103375225271631559423626519673206865908215907954536272557046392237471651247350080734996883045475134789297702148963283321031407628974878561096195078004776844115331825397761153356811666990238540999156950481960408869856108983277551427109925745316012093729234341854258598384445015186208096106840691576762295273738333385317976560094561809190902253416643779404174915551110135058076953749209776967537172218216264548155321090904780227085147203523468571309813047197842313997069214141782708389240041282154533536074821880907188572968981013146926721001329801215913414630948124035695632803215184132884259250841765046361151180278902804512147055096485169860440312314798686620929803740011426544246427774600957093552341280934049147300009365983698003099337884750148612447053475794176739524518426720035374019499143767262119077224264397767864204683500237462271621573045623761967076342532938088157215568930344614968957215574742185974234170137635081323837783928324972669974742044424665005293803144668271877319693976946892133596007850843067609886744667586641646778796860590738366716817931082699228704111217710303557456863045743448024146857782094863294917226538819362891022851019776601369152925344246507176286604611576649058704984224867554788464120706959154205431680801101897169346970589117848103840343377976156112229348042865990117903658949502060285730506821185431837838632543693124913031186312384332109500001131079282225432631981768701864537138857267967092819890926894177237307464965341086075708274592802080566889986046078402634768737109298451917889246611503966868294213716307847098064555561025789207552685272153877407150376790108795944948644960842114143926147545092285443179447075179090515908957566816629968692111018469970942360742929707639636738827594212179529081926370343584000168460309840284939664351119585783642861766561297394056408387044265931857319829729521219309462846484121979488246056596364589376142172476231010091772912604979274185736859521441794642610536380846598248929127778455447005409716115777327402092172064902608327262634485217999432085721189088814214559935216266281362748341338507334184014120322333058724384085344590515349972776423951544105144187701564434044605747394840625973998154323548447568151989792764733558804810316646712829499709353867232624756681285467211091213258419204581207479389570960448144489087254546279407521353721715924364501538502770056948756765088734205402955204925369320357606230164154367833333284194935476408801283431561137305683465249040027476531753716080548916299717689285521173354100850389325976119832046816083515496409116515732930723484593418410649539070629953860640469202522949231796800822834394554013785145886586952945476187693064200242814854787671291842835758760566704238194331005077951019578279285588387793004176427403038264950805434655562514192101621228944130425388851732762020931791142688667703212793947419104897134098964628775793956940874927601641638101023954719932717656997910075847492203356984861270881178364483905583748199749257049805219854334369045993217206338971587557948036652831942809276229201077248900487978949208442259544489156499500027556391551341623440120871635906260999512241823864900001091173181142771678732763256949775241119757612974451495766340547436932798137807545197857569235049269495064256846205323339004804199500047034858235364520036215195033177061622355207294711678104773056209935334591200828660259047147787761418841239442776697762945175727261543448019225114621202282980295797761601943683309103094240313086598743830336489633831295688358724749727060031193842633372583040537407596616301168736461014626835011651009736201782746961551140452755497038698846790515625986526244510394178847286503887486245203893909700487440518126345059934969026377622111912856986635261856967171315910198653895285684282690207386908784806993273770363752400446721553308038070787247762650091776966573603595455737012132622938320911693496292047691047778640561904909397848574737200041297329715548273561561424047299265185937885664000876616834427928954453684056426928613185480327736499766174480565101751647949420731452393162233107831966256082690742980404060900785389084832912249414351434123791469148967026944097245409482999053879585913401683056957723787155637505438062469547546973920288426076591768840045511351708487306196848592805926521487613123287960644415389631371267933112068215047154487202193269680713442981875054275299240369365591077987325163027011856885398590469395254973191869401448876320530646317678528626895201985876544295782818889308559806497152617749440743887407636782559878705834719547025253577403678615684922156954691248470832142388958970293732194860649939846809260535281021250900917875557065759674528119814427879498254908180850998817733937142159413014760745755046809216295154187635757892530957607312155235708199732540531630398413674173360851099392877929746927787410732752339433164616419369283477898693182767136279884323732000865652164186059831031968416029384922381549488320127818038672696628323951973128271144698521674026523086647023174154043612745711868003959916876249500563437849831751005555891653808842866168033261988266962672789893450840614922391252223593990571244130491031218921299122070257653334998977276424935420509386446576297015107730777354183756309221190697635467155618929980255543445712724286574395501161448033885203681913365994472763803202444367577720142881158341591191336014922208937260069614284270349761207341648821986559244359010493690656851335572717728095679859738284834273330690385665887023911312521805101503370940223438161268075888822394108380870631591294646970538875185689251037752505038614466907382076332345028231789952285946480374329143130030889948875986893253322086224005440318590880391994641781044183548145425669754363869790375168990205182674148342563072732003386770415373156498351204068811425768462417961283178159812689734958791191310478355829981217601247882161888260353002298100600187137223872425617944973353848627010403792091035629656691892592047941724194068693155214810154443767984937470919902374776696865497341858076220800608192904780102280324637686670212578319635903167418496931095416632227809444786612871565259780230767783210824439826624007635221417637676569743964749635125124850182390794178640743244832765035283508008982277535637949845428818833802794621889779669760270063094230277424452353985449253023931984717459144343565703391329097076570364353891518449775200221750110941080122604235282478369601050764746350229408883491884346354387861171357750271470717781064897975961343399290966788870860703295118124085097824104511834957157850773006025956182522566806713435087991903762105368167670747992018046016060711941873200880281303133596473786296781764555960330353322498898778902769899437331935929216907224389519453883570295489260564006162905220260979332340911240429486337715904053970574803829071287135477344527389783223806911141926251599662398470806633979625976241226820297649412340598816399112639690609393610894968164610042387637386015441504587597075901065955001578702536017261579711250101301795637861992158328454372724245052652572089489311938407747317273274637058193742123689004159930666323437724338572382962372094621177038822662377831579815647058283989287656531973351244604246896480132333252262657845542904653786128313357609805925037673184828757546374616452643200327332896458418053154074886167170011669793473356690139243459854220184984335505668098853254756947987832358398631944484942788118575927644381562573380053703381042360633018183698584630485449646204243799672472749895754269159471300000440024668505172750849660562193121685866296694926011576050219166651380041923019110718592154327411710667827970408186805161186642783685995855495599308709120950332693969134871481393228493693101879280732892788350157825653259338941092385197298723799078615300740093059291186284304491929164652682528408900667764224816741256092920669727618520553312605866527712054832243155806875123862588665873482698144861692801803407937624080513153916053095829216832209817764498175344689077767442867676128250877580771581439000761694839917126200365246527943186589866036183429440500956824086254805528612895365272403301841965464928458239555234264542091979168533401645313913171107400007460014542500925334208926001559026788330975765924020051120143437384749462135583472181775488053799089577869330019978008812588621839361260574686046917808609672117937205012097215749358136378736695606891989886148523833758594330090404820419837691447635393489636077301391111608554080642190830570559466860787483722980976684624288872090531002864238496743738657530598798660168873765145389583002508509082763507102120317164352012515910576129061480583803909731036625631737607334242297127249778679293872959661183555329131284230399201614280326962468288207548755258072874633772732337140744779827908673311585286154552068578214122340202627488884267613111112655150230392349121513739366081200913199129025453702637268402229005684940606889431289834828567615433800267321329942680943590315259482067938513001211518735402484850597890812272406548667437237775891605160285539186242318704560973600001789184265212968780332400224073745214923147750959786467328196722092292057848918600252009755962739233851336021858219953165304861942290768807936612994116235051072527051432811122176083111030760951257645197212424351833140499484179454901783787299026096401878687984472882567553878963412009885409047658490078065296277151460636096595168910892778310551835445845993568451253563785414057809251225412276377626006185839885843822395569291954232642709694890528923297123380725337200568389615477026723872829691177973914327242906391887635454602670319727255096239034566915671308410339100721385691666131099379735979092232361146347721199249206135054857768237403994764539477419654030644723830450713292526572934746355658167642199342056725223936740005094382197497355782999002668744433134329794586550436560124954760193348826401714958564658036696811183332946268476269544346620310315458095495466984933415287315168165036217740021368721841824944782273078175357529473568497568324305879396139656087119780041669378620796939270739745400901448563910313071298632482168710137922195549798365263129439659903707627923439732834144001128645344325778406340502318663696540714161878551162577220663187003940895188519399704885729784311448040736885102307074238225018365254574317363729445507951779597324457998404965570253433780194208788019232073271000044457252668403010739762348171737760586645174794431354328630831620179758931539686924891526993005915622704245169433747554252269251058103892931121397341298187243643521513570536889022471966979187071093858359729458925392083189006286235260249002008703054551443816116468476399272293531747262412332505459321356106348201112794439715265683871904634080445396287570570719121950699164929390414109938209251560326831915161368027999011651348112446882941236909104589133675779302057025276340759067743985966275551844140576807177376389563654922116997041358533730850806827374598841324506117909039411263541259120661430898869399203113585135770201234285872136644299910466653835412893174922742447822859589311632209713935798339347938661532410612495011675422542449071982360678936577098364953049294509001358538943515727706216703357454787980316863158111843041020796399616114527170718108189719868380850009800809505529242196932619958517459555487692316751681184502389096953560829241280172205603814066421853651576494060460608585143127472927777638631337108981797678350442004413275944836376425347139025456941903633887794695941722973537339732517258777367749739880443882313826695375966348422686103133436322814065293816778668480268476298887175172471689206759029592401617371321413376669960923519950689984186024926617700883493240030828409118028335810147373146013914643127373977653410978165814270578772622303283754388308111396646780467870595047896832465846917254732324081951451451925223676338376982865917583411608756559366744781264722164613362009993751615317554675030722501772141835744027290670212507698185734931603165245301540296967426735826363769912695729720495326475587865005257240029977666634543257861789865833239200287264603279422550298882207246365572553375695924238590961560937348820957709286539578524772736196895917320711185757659878951268321802057067505671468692472947040003203469393622568418246744866049556520194826804898042198078936778653002096042587882390039612912948947239913711111648615696402551124534136307912059716474107763860114777442078711276383303680478291094983449137233458041784697296492023688946734908545317198546088714255565649603453881780200121313393743587557630376240748119101635847427207938460582013393034035619819640993923155901912959265985171835503163535722324802203976599046421281897361457944421367403804390960405748894091690175055935953143287903834552699167582703987095369547281358769506698481230017511383723075616530703998389444764883662797692486356911485942503472349153628672877541946366469549773796869171074248589396199452049336505191091176645907089629469959663514646093739877019025913511693365323796894920498550271515793226855239843668391295325213387392939425802303056785548742800530685991926647751509346930819957656141796554113933830255968365110795260964949299915389926592115707202450492489979752436297280178943662271280780184889769641744540527956258628148974426220295231881955750943098637081172245338400007891775167094546923397084104441893388434570579606681890048014834650120118446798711372361125652295556508723483667377664589193527588805613237298897968258788022488633125025571149698791526570473919445456768133374130981620045555889666683001143530701019705930150707515104907388644292156824225167273528600302319407008820954127855175695973584243488496907857725077650279846910162402437160600752975898142681556572400867143544320915736401612675651102601105183465729788231945420661739933391294900950141985951332562794416753319371597651314448220571744322323869948969453916818164789937340810296521601160382492084826455072016399828946655161589456092028125546971667354440049027001073112417630079738334507504855531515701280491516064461473107641895210122528259428436398135400475047784903809451614478557765753634534973826469755523890886737921023109216397804916027399030849055502736828350708787421154942510743193480772201193710862354748377946452966880063862281411204738872438750104605509151262887313607353300599900418479118236905545950854499803758156643343811076872498267697680816647335390043338476637529645204548050987091391949187040428178683356781351418706938632539626769367398208608129786443605671759956905489998043904196095834289476090678433118200591613766512917881976479128696826453977649939316924330053718626201500519882128784071301051718934675669408538030275287644223195248027989960845463489575597804241025887354752494932181928724421008920306084663709717730651871888593258339954971624674027392192226408435677205056419915041470679113176294348162525224711689793717674316461581648169335797548083399769853751443278073754876705628496273829944436452683336159033140276272865591047603505462254608442453099356988049358830699204283837742606724521422910655469175017028111617155412634374458184280216783056910280178781240540560545649330351166187773648749969007114125802716050229100626616751089636359774534941069987276201052620590092945406363070770136630068526064026842804532080385681567072935317844331493624600735065774409778128879698431390321083887920901737501874282211476551976255036119813890336979634632970351588925916939281725739997917616395177487484403324724726934556142680025262520950899349679163964853501308495647972050542187540950117053324062664758753848317584142769924306260626294986778670092618604698591213205739205385190155833754525832955240539576269720221772527116395509120299915814582437241510221661430394125318904908816987214235739355195730203771582647940436810303697719216030974542451179769059606672366890555485579560062519004552066019225176227161162344381258148856771535029722645315428956898874131474848570030743563202899054267430987555047323740534645028091555188439169780308346197139247347529120297367967286610616447193490546007987380260904589600086697025316545422159321495964446937319798631458823101999822378926066754296892770418583048033770734400947764764762328317810246920218114882222927395866052711086714103813303633763963885219225630835455615152247158147155056556725844583496585788669831965907310071255258294388317293961135221925544115188479318739007354439628976609553911104051224683577544821212546842627405301928414299492895326995770644807121476718003287691526438042846607686412236586804078308864415862565470670133068250895963458323220024511382694852241262922010975787369935295668682790534269998939978662907731230941338417426739750691435365070830123130774664506991917013242653004289847749563216272211844077779628741883564138236184110362171043138924605385079843083826879628160476008683657813769983089677909486286278859385812191689010682041334405892313664985240249668721183573892288075125853837432098552275037849498792673675612936627655975968503686110914491280056502472710950196432769289424963263149203689491544334314677618713923902933468465385610273883011863992155238437030058158628540088470891612612089141557114009850844060335833952500949348260279509935288823871736977179394624232593722841235249755109770327552715961282885004723045008738308377688149833770915761062505799284007816404435712890638151633953721293948932225089820516091118217388624596975442040152077629273229743871089268050720517126900581002991457896687085924462508662104368776548892713146410067403183159270442120764082472753600708040085051846926041313025112969984840461347879023383406578029931942371759675315812736818034660248340898231620150406063948009727624560743332178895204498755662278240633248152727652962464508657597604141345988151502805885197875788589955709829421036635718429076148689546818292052174798620439547732333733089668856841727730952012357399123576469117782842887678499872369392141631394098757809137775553031320648777299317115872815319167650400250080318184842614917349395427170809272565394498755639497001616077011063058216009559021583721917681721860946369724287362789133645752537688196599800676605821876855670645378714083115865268650113579243205524761586307083132893138589068539308317390214280684435984895776972933933886107351201581479315197622732644072773265546995061923336622360405103026116582780009861999442389718892608358249191742658197249362677345007827929707236878047698714781117166026233278827993530868624322828456632503990594694829624476272334818415855637559238104945014126135029101762963160531498872466101548525146472564994554359864874052131443794606434021452210534114248584021598402371914024172113578279088472192671559456593684851817692021166831834443673446122078756579728284318548446362061235862813362262466751904024820686257657955397961243665450827055781768862001530116693602320825007787608324062149351816917148464795770410687634811562173102063108142281118321252421632503220739591582620586925025581965179962421390294709580141695016378409695611921460278114062771118251290806684405661212628180435486246048055610513412213425999095909621290853515945511267067463844609474005061374677097104693856547608987921124745325305142500256417201263559594116336215517298780260943024156157932498207653348067548313303362136204883427611783706634410519442789414009070522532620491014138386830234137337208468616176134132504926025338883964292053435701932715619122427539080169524819441495039083984513910079823322406110804826585888320440937778988171373500292396361236941555025795314398800473908399557707144310550985069012545935835084308478763224425509689103250909254148549409773024048886714867381556098049393298709589047398376503682334616700358679416865541800435754511402869071474206836197401096904908251228080614886347713840641238063437511088211676313718179718224264523177051237358744897150105162925035624103653627977303671605117215428298420580336209273794990858126046805814808312862829918926900633631703510853542262543665518613889370705755431374524057734863969148520692483167118147331987982172070560316757841456083086072503949567141455737286491254830309376521795278984599337390230247695868822831974186892687373935010660551387172745155002002660189070461524614470598979742031689021227529460138620138059601583866961818491279166651290920500084232325771385226035994798568984426769947247959113738720991632537838262883833469350485740416245638003603982955673316364168809062472910086815246319364816026835723320783740080730747934187178940474174965501384479739391196143995086265395476382222963133731560275705672993719509902678409974856467376885200240338160581999426218626972918509155037353603745373644159673263181458664645175402829600536037521825224524207511336794700720034570567498156728864601249779099994408222963274669867755918215483759600930720914544322818539570501376481024925586590345750316047642307753296696412983052378015013555977025262756690677214247311828165134488970314174936629715978203765791428432362866042425009130351886544704977190079050932324745644651684612978702237200047125954980890901924726352115731685923598629233154094676260685313195037957104569533931178924912798127895959596893668881150210757762265649539521874088666677112775287819330425322940302301999912069313936790604225462817762281429461200227088482616731361773772706877989231839276548236003371075145012771569908067041682520847320533146712537289864372347223669269984822181904147631172262780343438492274451635684256670113848715090721745472339531586261447696532133236637132905288760688679299806613413499785301771042830418350849998787189589243327851648051424178869706257919742581424465487088423786260648943449928168213376235763797677325596330372820482933221612236604321545777738613080437250346169479625093362368517316716732986627992670645714096893356681192073625371216323512691432155432360987651010362250368132088450679516519754570913400111003109395174337722469071850026270767227184053166291074121405908158689135281437689254898727401248416148820335062149691094256594508990142055150922389434456894961371616021407610014780162958574245984302576042800276508903445305261976049519010701055992407174024749846861282800618504481025391404442607596111325903019598507986466674355366806067910834995229025993996384672964030614624680977414172013162846324508241376567847097589177305797855274899842297822124481334121185191656754109343220896205220179086455815259796345459136092398243526959949147255211705257547567955367228609278636481504305544481751150854231619896583638491229656605599149406668286141949093168551833427822364478273613338948700742359027947035781536867514844959758264578458124313747566708238118095299162183531676220534112722262253855511405736817272609262210133590611299086036055073808966857973458829875232785212342886451824309541524877626299713834101524069027924570533264979299035371896356743069189864668021152926514551985282166209927209655490270445700862896713118964084709781883050802261687263634860893161315237731408167097160370912650365370009052668692379543868575537563412858109842563262012102242213315824606273761206521965149913844629567438898072905634285498548636007685728757369050943198672820468173734269459589396042440456589738082932963943409808832203420552947239619864027719678292679121560884527598169368952713157334184071974900299097770633055038174408447615733130843922976120439941529795852953911558561135235826094674218080084971796451055594855034880792616641859321309716710838861463422606031190183939988332375494263862844006061690325355750981758345020037951754393981083762109752881843825978085523103978116574066159407505560520876922780963713166685284026119239533618947319365708981338360969195404494961059182144094095949419945796688607314681642311666584718079525304559883660170491930589426522343383559321954794556096245799547715159912845619409013299043320298609925888913390725122673538308863174497123609979532249429043561227249544781377906532095441147516993108155273003755758927692613243255629074831580421807997925709089864410662634754397781999712468772956934934805530116553590305105314520964440624744810996059537827707824381665347800541425249627326298518784792930058653092772605555979448751044418515286237768654690571663617082172188647449295906491408160494532912983589276231383253282145345456521311094839776963495170499455231647496382753552843924963584925632371955982529033976415464955154544954454309251818705655227778586356038621563541713841581375943736806730716613876462021576160785875523655223672254710382896371880853926055344925583340627491551068992879872442025932431381359254665942902100709934182880142540258825445087481133094044694438093617386188020879778698253076502976163265358923460615802857174300114722292333864081424372931914062558738038758769370222091933082763136513236842769199925324819748709736568112274247195998060757850660351602004425883828106574614695446092050195585642675073045293405926917724707610641528785607023701898276217452759107590293096145238993007891038135330208513448983010225871591609720281059098909162059818420160729076040730023377341077595643639216311223496327171919602141858658656299671499143951439668602832894005479895639981847699402977169201775883056630230782356066344079828490942439939804948078346809296279244066666589963744802236254251926664937733651679092361371337737956580503401572919638397342157484315299470006844504798644896010350725111647120584408960492368137439557295184991357579536484151048482514198566747029213231470274419356697940840116255464841097277636244442106173863571521039403982659040037747733723442384128253618659036793853364637888235363541728205315556894423005472299996870070859898611810599743857608711074756670409736755037371832586435603171980238324695587282699755256817433172328193289245501042589189494137328530934816377448365072028464705164885492147715966992656989707364486314106676729629778147874896560742107143891258895567821419553679325570304259808182028397754441932334354189100553840469415233709278630919670151817169860559884253694990810901483528011179057631296965125212910257824877752657922976356164622093017199026635844025308248118080785499263594499241485701373896331300739020583176356865621760671655491975359859839014924533207097144440577450202061142291954588942274891614220604069105327621739711397063100036533865691418547263149153353052869024949808807084333587130664809442677072045538866596829570901215058210941417132119133616872286581004759865424188013955697371329056055890626977319389373412805797180580549050505509834141628755584256338619039920632643347449441964952964193083862573087731865247159192888215994572413008714981742912629119028664640652786924147502414561207707895932109105851011249476765781264112920513882035790912469237623032415021669274352826399450690469697732429672341794081418430995043587138511041064087777174101073762373848534095783068909193675894943588209054408532960383368860758615163761242724673076853660842219421911149179375571829910568864997726127417399942555299026141625746742933059977860264896336619454109819837218919595358223699430111672641572855863086219458208718120615638435752824384617665952203042227182663695692939827595560810500617991915767405795967596436552195002240472597463479146993883312180174252599498206250925763948526818264919463239509757777587505751102494646281820959196823460875270685238370322847408229877667399378069858876359007973288048207716647784478028342981651341883367964396101848692469681590249533737409489946683847725099101534437310416074465108339239222202041181705273310923743899240888600030371039742328340842460631343112774557038412294511626120362495370450535591059394280895885732653188766117677829126419561105676344424109743650454369390919859940062027289819808522660689579450983277326265379037150001159486876513651789549598447762056261840740345483686701223774923214673063274441638316483113617597134072963636421843594043788660448983982949931426012797301031091257513212151459946526675346721255066233636319156148945013030846766502813509623371085130424334301814508410134550741421179090718121099176446237140994527544597580092205866773715753759243903447828905601238965728820817805855275759531853228977097290750595114639175570231959632498647018825768571193394835327684400522055322671708831941772605163780004275982000338275396007700084731692574046915913407804270078620014503602260604209293739775934103720641159283677453876891546509585435378185624406466748500944474937210823003401130036911819174447275723701306062982116668515963830312420372630084836126819391032392742770128607314361127882388677457430560840671996178042762147586201497892628154836868478743954401956403668148294025453688486622432366310611759240697004196883188260499976622404351361940037297383780453573483439817395913596185357888839976299004367901932315662581291894017122536202571531016596602654167546454802527858899245503755103493179609038416911503729290438402773035689913149285826224114913339299408742259556703547136467196528359442087854133148962907625805650723731390343488680864424847663712680828278445078641166313256665407024285530271367696661041270055460456757412190605660113662031068184547874936087505993249132527394245845834345327575044212668077520894522122820695131512959031478841421132357832242180401388018252986250496814649336395773023572347993450965611449844239373653905366830037561433758541294653982958311644520162816559574073753912086833138484068128764196364601635024358759507583484616256833540441300648008366032448868970779409763550360642416339042280181356709058221345558729034623182821033368564930919624374663363326066370345224043453193905857438159014517199373042408245519000315624272241574493386655953031663747159816529206211580632536720442151151080723956415764859076456745253461987964425416336620346720198515795912128630025628988059064447756490174123967399871039225263643068208189996567584001056834437541014423207266844696267797298021615591322742117175971098955631793657528116583921590797531866102454863937305380630721740655964160738740033433482601918018599171931410835624831600097056146077688746246449806528256394284100347677491725739207392826939458356835654739816675916360752700005494735106335390739281033722075565195456262504955047594643018599961820285511114776383387855892563600261481120702570739769289444609197553719413969991264261718191033049905013712641771165954737764815825880361189350897949076587061216596153400232735210062054957308125527819815328638248698341272801485463521994171467719072568010919966862922554652821193989810910367775252098499316801068317927557866836005526681967808705094199787076324583782901375199225440139804027793840990783406928069215938372860004906669093643459120054041529609218101117453230364895016827815203306914917036660691294403859495266512369335614588840401445324219501522155819172305318394403745265729700061910435930262311555893841951641672021693750946333469718286608640970916503637936447935993224077697002660282609434898186577732220691157796301876193551504721072942160849151968876983587376464050327097012564907677186383877557978939279936250070533226145441578950205939871744512942804911381687206338371898137665835301937718154624153657948588785808771721248254111100186491633447406992144375083723253127624477551692969725841400521436586087965578014506042868486035423810171746183639656313506925489594393421787995113750378829413903542391633645440517174051342238417399195472031913802670037779197085338765494212537253786273645107400300341653808493969333330407770658278452732067152349244365188586560187358821180594179283571842453848908588773150769243530852763301853352688414265412038552709820015120221720629739666615555348885317957844151182706645421782829679764617721595206593103895431638767151978788844288653679919895592949541337321595600076397569467147081765073021416895987487959858919612441880330384696452340146521077506537639809637778073159623122324507296596875283498098311353627514255941349944146378426036150402875235688031871906463874305827636364435281726308885923113207144601660770166152710750890227162117266800695325689681269438050408080407905962490678260822315833038719560501085947059786195822565545155584284695582933234046462380022901759987295799185533990911431109828690798573382554890799275407178125418696870951452286424570287009998030832720059922041657098667518714622191271680023778679967490188902025880335602897596694099968082837541180651628773131097316149115241045014164369375472763803525938067240434855996072702802726340629250914940640947429261658625630128338805414296509098687753087686760764151242379258469333788392654037081485974409794304055659925551054239688382940348991287680829286109067303725895447450628049097810859476384059578999009140467169699051627025950704855746047369625991438957528779469635370453633393606487268567263976178879214814888907143416886428831146949436168975755748227342955399986237520323032431397142301906635703918143939366767663592254398822514282824883919497164116296291521249402763034773944235790231616188494528756424223099321064951861620319434761745779689446508165760743879127922643080199091507532584580919812606025580638646819874780369883737657697456468855314631540320707782197573132066177420378518321269273110714131544093734138676638175286886069710563227472096083490031218708091729121030550626522776232497717786641647282536380448999022845151507160429934761617030917817970206996438445602571103850576392578807944921825423661444286507180688959906813925877943129033848641571454287947816259653840890332446364254685102250806413814128837120138689084148869470831769146923620363987267239246822004262194447321952376633964349369749505634798637183615799130008157848133692809102011659120135145194821731846189236633587587968391202907953915650963471043984539688778865529683444326614080699062726525213964506731716044145149207123818486656642385088864492685613372397317014019763847551073365241307514387579074410552723194636100796903757711155777883173157163490545226763790546680874704710971599296843579931401123476730372034111935756611758719194196879540125481685344054764215677768339232964486169438034019390582052521337226701793411070181938409817699008256548734765152266620014174409034065059749003649955069769620162249895410726864396733229419777519804803160882919058175357067928646962554994612625602504246635950828794099288058436574041132272308518688224744141653456710006092044723999978445539876278727376554427667510339016856048531845310320862949993560755275390349689560864288325912947230288470888162540096697761932001334007440133903623806660426321642462334855954080038260104774748896617961191612136222463398735796370098670268058678581492473780762854634215420324745515506398158367488462037358795607809844585338124639663814497260081372665162389688219080790075319044282454090534410446225714759890161255286562003955179811240906946698964344896362294157925071898091931275442950099668295498824674034303946687503690587652430225576346635441827118698937209271584004513132941932537533736545529100835608233444367417420715602202656049298177065520870679645670360023418678742250118496392395735409088115476994797922689259852169754812374818999937563886091846659246520296326719959442844789803767947668362858938582876559514590829262924087256834778711506575450976503080770048751948231912208007251772389383809024972329612744312884614039532216176778361845477455355258505178011223435951056708115027739917537669526554609848686844157175069237672428230875011761061908338947664762497531076327604123893639556872006010423971272433234972328911420936693404298892271861680361591545138083145002210953362623014217252674767620685964853853557951924617289845352709345023738288678347335450480065749191361412311331534665619179246478590863434811233402968633336985215440925715312552366980131909320204258883601458480490157589627197946802154181377310892632066891671865617186447505217548832390976553984408174450551105318074825243932990064236865779779017522385970106222415202113641120823418924655298543977699929064953864612020398598946993510290642354166207022910446424863038230192278415990104168763939196261163440131859749747728111698341363426881527874451330556657775389752221196229097554904652187224383889113834872258752480307526151511327191209080249657347076290639274707686349626422711954257022709900275110985572624136480176993863106198139772387180504013364911914394030688633716996815239832549300959539976946939745534282778968458048935068183499538065309629472778085031235810012275592084589802586417358208097078132396974556292018802637641680622397911873671157379048434132502866088822733381294940207425282576652694479681972616089172260591248423054923569063792136957862012977979065594447667538407337282238931044944704422990159721729473426360204822691011075337047228506475309289693866681430015359524372247806772671469200934868269259302210559586114665939263305716610040621992177596431438697649251529860077940399462087805008389418316771524736057473579069400835015437628452895016953382386489152205525142482386654074455798863196727527034557333071158993490524044604825684538231077028606036892425813676914690558665025438591846812390165712233865539207501175097596688519047825265347194526510738259142583852559698104076847302757538121540166543924868502747156632062269967786332380697467265983822498974319816582281262635228227522433364995730408883107416354901337878142187108406699179870502148620058241423651861674916104802959664892363657113775140576992981879044838921984412283367979102936038317966741694839561381881074607789753704136395608701572599421241288629543765877838780148179578907298337962215532658777834736080434078758447729375739038880402019582199113102859512998709237309997838322631352164844481834830502680386698540465572364346392810389078325975922073663953228414079859619146348826961102889485949445586188402493326725240311225475029694797473738959476937504780118908896573134206997103173049138019620725222362228148591293853714246499852423657004494822951927850030642659386331817313987466368753656458672417821063039336799629493864304615113922082021392096443804089933353622641219477925897578744657717175399755953587871249480229156348199911148544798274896900627347034064720303125643893183216510202490624725626448246996498803182652614598714333270375946948035232473426012586827347769563585163775091031917754301896404572221370454325991405398867259901212079621853070140712006703728583297188669737396469443008548988447765130672503209031795713050639651894160171611638359025793696146647268926749202174360700412863591193318956226135357967920678103034587932250806747956960567270585298177666159500164006749716350357231458241465349608009960857436362742333821605151857812289697857928528732587150303260375317314402042889104134884685022163280458537258920517884951897110083198337313979065551087807845151171542861067661081647049971469795851073643505347269277036711430429400853716177914388874391874253010424509071466130248491504196193779473868130177674824354170618811611827901116768005898743345579241535702759900738345620937324311831570706388937219477217226975135324626810857429103538118552975582574901182726831260990669409566853947244801826928107708419353183212102371411628125833112579659515332745832256788371884617402481042823160914514037073354961323216384313654095194333848096071547759996123521497421989706599500609285781827802352455755688559201834770274570849555467878691116883314973858023211022616746624933382804812019882052419133253310558808198937623107081197972374929089902131995769020177448813878799392464603582225944067088180596189793930106513357078041690798579931802766876684563909033475349863606943536601949193162343070381874538857405558544542694047594620474278232786064563234667731683829928125756563444357242752766322790980220264135730294888472261682032862143697433768294056430703393222404494295317079310456377277413472698146698430160375475450010202366825062695770475707694180099751524627084080819862281164060472471256740284130922406869984629710966415777371976714925899276811326728539479917828913828925318036364315855941736232690011981669885253679538768306070104324455173582033533801997360783674341567551754660723891027569235445521318664824957598180853897563677193790814783592454942827078945941942024889449998682785125545677773945901511587287765471057762139693082357697664036788303052490655821377061434480463641125654194303747169032158602610408426161886467891619857841021768151135173689670238576065415942373029119917394572304223212990358861630855642660018795594800864164436730262716601902667956000930399517893212020255831108068571814178148916615283456895124752092112393074345850190142023033764040212787301202299126456876646381606160177420972421736894979993729721625609885478057019064137868818091310860420662736874879997862941790050330281525652450229861544558788462103506525497081495249049478116691597141663256351038184370943903593471639905157576172401110150583452591662510626892544417489561295198694411577735600624703127425864906068302201781737478546954912558391739845736165614900539217901669302178458744373857515490757897036371331497029876280068031665224892868610075734296585614873317420481141145855572883931275915793893865349543627934743466507454251555518814031624936061929806574903651365064139274894913139682999364272279849074981777962839617339621362649891707278364995427195655241239929215196950274512714779823794277624208357188966796420250261107920026725829366788593493449021160080518676439899338018404586212574745553082975846456756761467426734279757210598986575403980536012774299658378968358848322541951421926824078099132879149332399104058840424282181961275179040654128627026087535320447852118427411333346584946092141739252636387279759360592937653794219272104286790078698456735684864005346609100211567488359344305107541480870969403140010457720726809517839135227758203454598104423942599923706630754503361614979270987887766652096618677116097931292234216221447530025809322568206165706172806216295581191490106371470834662599794425036557937610501019826407212618669624269454846471251231459323986035324894198117826880709242845070444238802634822264067092683473015036739565435555401753043511963596264573748421519021594588032654971784828741870539862314832856673228276404296386790140279112603383140678496930241590727930985927101286550948720728009204356156056981205220773897962683796231987474824396165305972360971812146095612555329659805496342455563793518585956690311725011682787162117136135543214912165393500757906173348450698914184840031875042496204080619216356136376066346209253523953224467114843365675728999678091839358571166812506224776477854765843577357855978291593842317364720235252160934712135755010110680036076294723203822893838767456872541856756709047591987026155172077548362180226612484403067433438949152029911149316456774431542832766914324986416434571577643674288872605228731587248011552830416528490608235898265183981204669953734835966422915274926763123221092357935897923406469267164995088166432208291444826577854377813721092374088953837952650300948826436999055980805303962206781193673828554786460793693707922359478679209506676815659080129899015696173748738954634201155326298912695057680798852143049486258471670083405447887133476326847248502854679744173195900228119218889797292130189445143806970014965741792507681190227194693807477201935831111846441231911130542300732807545004171694221880672195271784952187710231018047139008809240062216804713499373901037115645927798980438283461793135869775533478694453003596598430895142725127856037394396340658170966370450594285163280298579745314412267189160922363469705358676945061568215607111769349999778560545753672194932193891955041927268484375888353868600450869951464241511495003045934961047273827629131379896919884269280789137979066929444757650716162192046421370412105589124663491787608395102550630739090159457590955444060010451921832949746185163785306567409176043011392364794166894035969732037293360736863286247340989973479730058883510331616139920547195565417464207082964432761474828838455995590903821944543741010349750266987845884314141336753805865799711868490178601392776090678318149380407152774780947423089199910432883635812577980306856865736137729862953802188360763283728129425549912357424217521338950875564990067590564137536568707595474859038635533841579115725936119663726964340768884596331704362538161380977766050383377982611364998247100609640107036173121569323264172362825366282606360967907249312943644345484654419380196772796329014522225503084301769768106384501055016713628419664373173853231449425465851930646860369488867774559409442619583661011084484805562872345172303214082845447140615665446032186910175822470123807118438106769811881678328057861430938214330273951142686132596114963136012688973096064979582977494202270921568537893894017825002394188621687298038858954124913235875508382011748142483163182032993341018625768413003224464050466405350925365847601842885449854971204103702920667540149618658641475771389384373469127621754316640390266156021382375091346647531269927226421764977391265818043972685010892929135678416379999154146987459380649606647320586261976410160502974581169728844704759960829087325770327602393631863991839048341987990739853528558675612917785563018185281402361714430383018645124712196115341553268889029583924965082153878958547238557391412888357414000106764731657900457953760345590807550530131374627414966497574669344464259238394660273401091223026460658637232835940517056708156916339782470717007366153186946793571694956903482893511535739604208239209997996450155196989510764742329393858162781409078200418849307470320861649217396523636800592716103865381103848583309605801086185463120170389303243640296491981504059638039704308990803023121312588260621349991055706292383856994187713993952242992182507036399392670508338276076391156056636015116932198284347949068138856897298511222284875017258148826890157488874490454151498284248265594540599169140185744659997464164342740893801313021468041427699979685605114613333603814430814702232064188321270972118345179052513686578327445751770472911990331079190123249772940217404925223236827370312517043071574134947697149201900268910148162085301168350519079263135045090715755895226292459003915119401558224670352097780899201610999215795704957085695323096017701185235753947158378154238680645354705065065557773332531441363996502423038436151768703667483005058800262618036627288463870627680565862597796214511828327541010508238865931416642555414579127736065903919697617615084278673437340029582710947778646278222752826495813037389391528058215235707422909121962836933704521653527882835560643179067784358339228825208977333856056983514280536551622647791631641710447723143917278402951469263605905775354674455338825330025334260676014612825812534898445259377199876043553051483542889476736193921604910000806445812430422962335982616587891817174899793140345037726995316851289881959163772202096532756303414632343134684844730215165514607122440910585626271264884272580838982084729753411104589095264867044398296540574962489746837663475427661401054289780147347870905700509762400679655180947947934252882285746007628973139548397372384727296225543419566624291726864757208949356403322523615756400021921855003428790099746249010981682272685079924388023469159577887131116022890908489905911170185513316356678385064157306419289625901415785597302522525695842373593680395309821659135297938680115983833548239873190908705409255817887630588536913709428507781546626873463520546027219298314840697507031058440616255212918593334379678331953868644514170858771164893426611988788042231827875000707333305261550748377550736724881107804519833341324445585316360396777569118487730377321171742009601352944963953506925912812797670142752633959634326132664399535969934551533806542514866803122398773665760817171052630819386806712631605269994103315732014633044080036719640491147866176970096900076935290362420398541108827467813402157351344279188494569859820276275555175552180973524300261084537509287501750248637094327535376763469063943380546092528198008535153728859640313132975636896670212539787515295039465186599332005535171472535057426845444149619493153820786249167188763980156865384133906641901250843971035409567289578529340977865049536159310713619351905442703000037029177934427028996145694953089339942397519998595576717375929784567525072707123525535877273186247488725814233871684406683922066743991077329127344570416395052242496771515254559557851926949795833411870864349237010603887766464144966426376523259404812926168183712274724531473751071350342261517837727020299655578389180961949840537133898025685478306845499654744106484919883585325905171345320591738687166999895513791246714064109426592414640345916672464667117062380092236046238186524289146299946284528950244481450449216752521495826134773890038968578228760470897055155482151115467644346825643770798946134255614300825528462299229337087781206981460039584490635314016378354531110495556449500048987364653331229160859203710280477618039852453064499115369171644354605688461152046025365709443249824339865565023076686341537935398824335693409005177127071875361183388800777627310295037425121810186464556400790116166191783014966024223504652403848932278507479728556299647131390351565893813728263995329731857991799106561611729488858642281434624753259699459331130554839747917690208576385822737116083060028284598771620505817599905170376864737984488332127378049173130122446453408429711676268880320767005971800943652363221580903593479203663909716963540655127512219401583848055766939658013562395385337320631790455681018265640347419767305238385382469102187352600765730555389077869622234318196325529976558580403125400917940982714194625875646748288224517259666401331863324170697393761486045580679879240658284650611771233925847845007670452274579728707399029266452611967230558258737480913048154470586110185546908203200323438253972753598650279601526740758587531655085841459764122646285661316954300180481877580057191909056571167306946932104914797105994216428437140363753864061862910226947113337774693457490006230140987155792083259268871341706766860943027759107272059752268741773304187724921941955070844040426128141244387389763835625491636470688458891554443298216549920973656201421109004386827324316980652891917195165930763390797516451284432230603160655178760762292968972256286553483986215307060139199124483104975799032600699806921697039299168070888202381110551841029126774418866893492150256824384837092929055144696059211829190605545092548284540835232763484031812406717721889787970131781666950269562291401215262132803812583767682040016980526961892343723599704006773020820119783982405544585890046234214165792896434055281541030166747746028323319306433609459161206357184207837256801261679620246469020304661320928902915005437327396083144461965399996569970183620886576275673683427807062823319113281281100064838723520667641028300713162153869127158930760928460675454208676770014534863981287253418556545868595791758007439947598725017102093811921692937760822075182942409045665923724025002950010113898522072771694744660652328595960570643251527826468067797518107920378194402814387981921090903156282327486585424948701625533208385325734520134232691084807038568808779314886308891514879478433566017347729128851583536039817707363280166919491471538302518655909682491651569168170248565307451634747918563859460129345090121433663041423997991283644031421606153306212083357003496287171550563140455763661263230010904013657607929863268572759912830613942412734248632366127621188664992213522888466531389061582765735880635243462974204106109982034296887891654978298714784221289597847308077965607372717054446911198694578084660539286927169606502162739882507282409590181011301070304740435262486776327313854421667956220106294178437441865311594070040118262647857964652852377451614590767185273546921837061613059421232224149841102719907791936512018477068265327278112236745081120209545173037327297731068288957806716072587786848670167741429151744757326662370754185484464832454380992171436801014329153282882965187144553002481365093030880812988219925477076004773478288510121418990645677803702587321837326680302331637553660814286499934656980890903148921497437602592600503332213196835233014251198694909972519575674297725313084906535010983562600964061260528404578645060059331117830603516877729529795599194658416263450516850423009367658610996761535142688951908164769416315165777257564408657360445062063080106772079368441068694367546013570893422845342853859034754202565503806232987032738816545737671631666913628343536360987548077903575397164541335589564012112794796005811507842646665093094342977950200763172139194905766596556504159942870968955349326727522030160071552227828567516592395450361464757592467042708577693187866186618733348958115338060476569541579351994987889376006375634024908457145248739981805583122360179480090679990268865311636043722167479712379980400162374499305192473423582067160858213826087590211668789266738295334917636374421709051868602285971862691146727617447880908165153638054921016422758989404453958706050841996086872154542700678268850680481248970921765671574493736914470043267311588465807649883357063283962355478730964771573101622065641512135204880565240371573394904542465656506347681765432495489189349461048534596532273353110250166031081764180927921558883528190593217909068324145600496029336196664320360650035805808133216139923964893056746370468758226214727650443482688318404793520891993213227376301090586179680627885939703779261163046956510251301119335488423390302755847052170952513245298305475061208028648043479380637694247097300414940504454964304577808422279748724110924499701239124636685727809756816059132281760076588901425454789329564194774499808102186583189843356124912852082044882781251131301952795487488078814427195568590657881889589757255352471761292425326157552406187994935080919058566612850155781605210713134135874154020721585862823168558676170909161823311051707031188990961552300091321373649029238448739987307686255149261533083401603521489252736195858118275491364231942993814516240550015762155552635925758568690188261596383567647482259592418835284179517576030253717846291493657940541618129743821805028797945111917272351128280256499177569678541231287451636970486821008436722885906423102065667173711476466683111350863449064606265380060364368783932340329309954051218798500583447627214863788802179153910226813781416875540063822227421449404190209760390315676272107920937403562346829151256660013681680906284671507248542893324139783366811200077537399038192147064659123171405063861963776881953004342731687056741742801046075065753762313647762614290292062840639117665894945993947644697388340851755233472023336353922328394992595114761559762970798297712329547170453416343826596752570506597709288016090124035825925080783398822437192625764625902186443239337623056553024993518892995899272724561356081389032551338904705895578729297312728397433876471092823471212483996323780819333358766199358616532965656857650203473993051620239377899339430119271361786319585606840793192369268483329625842421484591126096771044691945473486821437917196209520612279179263214871688082028965235810245217664003986665605713013866496039166931963133493156167647704065445503814941949329153891070969008321863200743845018078243512598339963285155310914203746110942517433127263424036547777926667479613909752027429809152041168567233009060350237883673789894776843442303219498754676778586137919739664255255322345857202011170925015973377572809574753023473331530533692438242364209163682291707399665937367427346330086371878186762039266252904954810730340255374908313336992705996664411695162662887613251084604665964526848634857813404830517785484608166930226641243388936579611170221506693253695641225213627276731811040645919289687991779257900416322257553951057759578003977506495484955680730878348527216544660527528268068456366068292135309070854035252993307990468688260123269260849088923138093485634885345761499091501416052432896436185727813618119052442226845325435150922085470154368273171956801593491846002517165538176618715711873393917577705641611040449943906318958127052618088368953381110092896049233519061798657770056007162969421594130216069310226817288978051722330572000401803401806252704021671746083388545084093067881634879311695193665604663930471473413735907866130074079139381897411554162690636734800476846102199893487606840261467877569405456556178623852869236572101039247080058189380663942092651725401859172370070900321299236382239273317225326577641349778287686020069157890290043010741807826820168660671322572285227498686808068365231574549343387716755479333148728971863396150624003739055335056660824533242920313845618812735218038847139359186619016435619619463572861592110822149600617069602456348547548333748991006276682728060947010409352679416589391264628965995647304541605827515739939123890117159267692921758495868775170566513823237109153815605833590588671456525518789029556871283141434930499755722485203017310997931741428776684176150658747440194282800014685229420623443875162130362715857876040025191283482038589436931430077301087774272097937542612487579860149189261461743308500625876470128020767727176738170132335579613810549296405452756668664680968988618641016621235001627985740655887077829793550468372999518932892987689382604046730404795325684380018319717058912204318506078173399609010475656303342301287256026915598929214170601545361597220375441931603629711828337407953396381737103701614334583737467793235580841381113613668875751590324665572875711470493520244811919151685341290361116285230149389925568737586747581285393424827921790987609911343260423725191635786454230789319059599917468338976340459300202224881272359566133995924922871338556801426892974828523792409556499767441342891214175935867921030078860287059972598489843617530951483758745769097521916001423273858284835532729823741450573555259355531078406661683185817459204513492391186409495715621024363577500640816393324991261198990395421202238035205942774359122203517172192825615971229442231208314328357808012344590695642335493682983489475093877064648597229874025330878986891915662841607193913113225336999867192686802483224563747953833561469914357754904553034673386322128248161162416940180577662302040634341597181248790672340874210456869256948443196740557857726415712120071047730003805146732213442109973948849129135559106000296512918815541867949323558271888577272505281145853612963578545573064716234403620962744928813277720487508973042904600193121592389711918502568181910446429979671609583280135631817229391676344109628743479774486067681693765132635408987531305215490239132029297482165669397786776192450193603000582025402980506442933518788210998389085927046567024522688965051574564563113677788950914489045416370638185666817249401609837215573004172431014795178331179878437267299915966186370637720153248812185052102183011365654727555878673268537655975819733263770876572362466504846944190794649398376155451190171424626603696976466467718769562711525107089244245082158626020691354280160442647256326847473503967027011526394394659542523214481673685356290893093308645103747891691263926359742328541296178209275340542058603399168158259088505103061175707484160966080851567233467910660227677815903588954670542028949807582585944150945804027148676309610808366331173713259110180640065813397197290807284929732338878690500976384167001855794358661637469118575800340353058894592776088474838624313169115921649060910588320557688203680844234456300700957196795179255863161772254407901417130106731434730003001309955819291466213243229033814511069077239410143813833874608115727499587705240640191684551751737005742973930363678149495680376115422559795749736901465071690305584648258688613308816308585851057252578559534472848289871455467929449981054389908611218237128593842434544117036180699258032996281419320209885038998064147883377908798255081884323922272992478448500744518613502219461551400229991203637468324995523239203154534419830202015493897183155711225642629504846763245105030005052429928507169300306867393508763412789878811508878671148853464620445538714891033081313640879591892989768591519919052213805079561595423264559440792148656858090004768772398461819485825721462210781836534807384559697544023731984251724774586807940480025655389499967924039464192512656252692883724365368058780414094349923530263601944821193759177706402053387749209712254033170831880455930854678469860190183837703556573019423360381655291624398499691677265811359925042967192026692600882595523742140881422371423434164896131407625328209342255253814775916666390406927769770288262030902100421673357116548068611264529154462278929526997260744242930127708138817643149393229340323527066650001000090298585844665772323665490893632138164202565473473511723778702336536509766748657788617599493973172678949464865463414442614575118449739283317696135731657103460776330510013703598727320812807655386470924647301925816288267659997260564136085708511643282705560682503178906661383458668176602304436799455412432991278167163600290461488144648700231047861699349128611756667470790942759036860239954009590208997647299820500602644953806413405638364232053611494468919274109783704394272869796289167353361931558264824360549383909623354159987901847721748063340422923954718763441417392232083461977552599317258987230417836612480512032708069215781476205868003030721002260406393142916234880273503745891532123969646290205889456093266066430919690202613867795892531503993612810756099464364436968093391297289872304971757019689672395157330002727445246244447679614321848356393483571496433722475251019156246979517159714311061569221945780503066547696411682044497731338986965897740093229864524838252570011931148826952427960315732890243615702401667135274959976272159464550941966757448888760964158101232798900391488062660894362255083002101906911756433334820617843054669592279949608655050692402664253470830950336321685860917988945851844712177840057190199859321239269132217462768019169600399821560074653153815751835794015531951012675305002774749893836205408272452202404780888970821026432086135298928177538471470221046598125888146791485919419565930246448160723029509200478881990211017152248399726908738917711368836853624769658513333859090681915518502270995840717520997326583709625888850756369251262703611721291193145489844587831930398670508951710175013803695487089662068319203610966704997910001483745058114331184039968641412229397390992411771192475242824674528060058776250409128292580353118530838930217629500354047520930202604194533072776171300678421292151664493906386808798020162074629370323108601818042079905490904763239056693230774434725605949341669949363869733183598785396233742353264305248937567746544506700630334442182756628949195032407079500469050637804608041180403499208375709147263340254509663778327361031720172038729684344601024494675698071096288025041232768484540179360929423271863196638484038658464267727984985062924346966234138528162559983489290738277331439405834742645684186118530687086863583635664887558865595389321940007536614757783200388931701926953795667567423678954006371395343798065224740078230006571597498282472443949649046609441326469560482150868654514120815607511898080226574840075781334990341157072951910678130997848911994681473168467408205855249841115791915686167487635394855652320074387359824922953059682656974392723573568454386092369418629178903951975364850764544192452044808748811545374741737756588381196039875338442500286665165293656804441450492419268703857827330772460051375539287013690330410774048223460389631663841851272705062335721793711575616792584987218550068509176665850486281425587896995809014394568581764180427099494941791128187571042413045835063252961157349251261677132048062252213450834621069046156292619769615097738830690506702965025239298061183147938738927103621010729095314809774598753552635833251202811996816721945974634158851168343868116877519361897880599999061857748108065178160163635632535412416027403703795051472186510681583427454574240299586061414005757853243721882273321444162084528130641884317085611721760607516593132597036403752723879669045293053465904234174064751542315048294174421519056811871042783718032556328154565149776404333246318704355175181211907196217550911944791243529782950727251042138531686001247278062417849169420392822625832745544641058531492587931638134822961880305276671570154092987786214087682771395171823357057097126162713787365865216231298401132412383691289592483665730939917127091980758726925905936873247317193839018208530648634676048053718159027437128754883126281822657715998875466931517094584556863917777274755300639804694582576103330876588654645084059060289399599403517157319027696852572774446435663435572275688148039467252178241458717472919928387539937076751086161350290760954614376597026390939397944679968806916022223814788764759570050563584972127384170296582962315558207826790489399059956480668447721924009053833535980010802316049381105800247934151696135989015428932197029082961934382219558298105716011870567262269022109184410941867436124369635960017286167990933220277341665001747609525913701757625738224864883468430487658054640991653942739798760847206785747064280211690549785302081692867623297024440936541869587828157888579060929064846793140139188602313975015951988354725473812871119577402301727734333158837317167871238499519448284128005096008680160000618027170893374288574813489470385762549468778654406206933737241899185265357991061115701501015426815436446621441699214619768874064666121081519705783270981881391655203775989178043248431040863169975793744231204371489992831401452780476177968402985538189652512744100234600261488871542795654668314175874309253328937661817863737581856269482695322604996871713348031573639178967185958530896157939151179394874735433176643995993235183562303370770182490081733037508921141975205323472120374678544482019573494089673567220443967267211964975189683413665556181882733289592991512678668265573963504523300444123731907796139017310430905383844170801606925401121449242186595793890648540229746010048778962792366375250463641160238948102971979577545802740457750040557685391997426870866518094990450985801502545210546647750891412306965921000913248443448604475968423495274269581752821045989881225518999610274649182374775713945750591105482898877913297486840646554485317386202382434501326851646294041544318221859291551933080375994218470149175013378239776886316238285212699847835066306488369123740922778541586453968647185519716334847295337760213857783463875459400547134714655975203286816444689494626196949728632383349986622627711822667952378116414029431651482890990704966132493022688314975461279448673166919470704968743502098455728513574520725335227342771297171296762738806208595216176715423713633228678268762597286093025025413089682320944150865489357144455316560623683531070016294524102755140932872997456339449243091190719137114132477005036790824727134446793021252172930066150136434783079567117583550734151713063557683804294076022658887052910525442784277225214781633829518863812312708242832412957802268968555569053503355595188658224759660489456831901188667597615170891891743785263926104568571240858965649586609329331320848294189529368939128140124292671437271560651100515643838101973771408400461684350373626747401376766923269532408178205218509508068114790891265370225878104926330160011724533745722767142883508137905346502313125455953988719170102081761743495570921221271456680315713019629876566223932752493353365133753888643085607043309322290405932317786234809227996677437036272570646705512303119192071586339910736777319421237812814288126984950203085602153344199671587633120364278554904163351214325907213484747060882186217889429762064769750586403519595000979582022972212571971680034755691083046414398554648037943419666822710094209483879561491575997650149761467934574507607764684293157097737118371485999251812753747262122173107927912946823744028343622439460469778008614533526156648922623993587373779797185602751829063378319611318303744322227634816724631445510927825312534424969538727986697008832359043205422291662442325429265240218532150668036664502399754913670317927508417218907751136939979841717618499958116517247037105383264285000541496219690952007733103037519503556402490386908717627692532981926103730412271741398015980984577422145960764493837860978218818370861646030477349899660546493290571358753528984122681016713996288054391895036543784289752193541640263081679426549179994017048220689172818319677126282287336283838097115238564751038340691146642901904329828483459438040375000936319908943065126421404020879334547221162082327953614067787417883549611764582722466729519334622270382518886595908182299709760536164862825998754422724723354055158537749116627750977536594499999544396045147233805432565318306993793153757685599978879340673696449459339682334416614402335707583770999300262869366214118719404303699964748773069694290814526431468260263432531945146530561749108683581378624224677071306801330134678721452147673696898781500392490383833975418874282465503982994614979325181100479973390165837657056244085881398754774298123091291469028576659062178449421768523836426877119806527429769672530153669577495786333177384781188779060224892069881019822752401574890857087045272775741847052503599939207315331304772470283819867609537222303036181317584769261124604106403846714381677551899811483323544605995802717097208788538368016531076629180999842085171340820527405440192065983705265229649991891442315515929823082662445507572533456144657316609395779527155686318000383448757027854941179335031406181221134585105591319721777405385889074101758726229246878770242758383283587497546056209113089960635626294675866159802670025612895685155466002426710408006928574374188973327741873565737175660335662692000380556846592878206032018176270249519526698224845265746767282043846672220799661172461303682777207556533450491540953414636255540427993590304658896203206408378724364685929048334386768969588730378940196262322682434122704435822799666935696218414081688377416507705892616669367750311270849179519212682861488725109797899589444735480046803167959138640307907394104969851829642158158410450404932162062301036332867804883823372242068014424811338696901708787252971552942998219794594723569091932169471530889070582044061614300397341116797799242778391972496542751518618676150150925727906778512544011950996369089432082712976886935846790083099561952454460791404336055214370766022564827747990441023773385457338159959624625015276275529811512837866536114845107902871639331431933987034673383707660317685255001872804542146212054108434708833524021224865306741604626744953734632077092091754563904705398370674687070866816543486742184477707920565313540499851136695124326409327557791999566285062828055408965254357382917834472724438890712596073111142020880580448798013533299877760370434826156433899525743875295001993472296854187198028735112754634791107063845424103016262301662346872593635466053345698693112049580216893368412270934864437682795219722093497380750420590490851986132916938283125208757216545972656319034922813037386378047955273045049571594547443856856649697277032138199651896749250008820272130477768138057157710991458162749069025652878947138047627611820928335329659525644086455530378881025401818739735086912996224123172882223447446502244867789590776545694360079934736194267637445056182141673726293651667871584663338523053232920651841556409449547401672234142373224115553323030171044565409221685020624145872309962050083672309483276497194528849195020398480238429339524549869202326971109768001624787772525026241104116895348706806629909481943824041204144729067900609623139250240338814491791916356964403187762794100259159670954995683453650723583066302990268632713925990671842060150482919712450180900757278401241169210429649395053747884699013890576798985955723058044599575755119775244263453950256166038705970974603812423125052079445861672384174324935157662862006758838315117780456197024856497839686842001855603085270061810474775924962760924923687252696669333910170326172208184955399761607246362108468862016103434151577041774293082976933381336454133480454668722167384526732278076190197739068293057509097371900292303683345098388706283796754748381415455844284404603287346229466461354192886755373210550435445686488158579843236001870366647126853936031056713756061542820092401796961490090649635371297349542181943011360253350933387994700635426361294232969401281821286409708380796704283786972572600564294136124778113618099404510091668689438705130080775644063300684673782915615520206724565132886362382253447665991840211710616719164978009717409247449590263297302975298679162066314903442344479522520379519970996813708612212691939053734273256941663376353676023039259690029335872958297451848646814289407172595244863816177941981492729348890164546066276477071738314958255317900774261511961111189914994102312827993661536262247127559576515571111896921440750449529182916172728951202416673909515697115676593118430396011152823778947654147670728725298174593967016233967741346554932283944575037534558332171898664392687425436010762237677474650288237558695708112417289330668427439362875949075200664468400277492195310943622608738442401473707007239508719675413243710253364486850238321485172392015857802430753519086012216728025580983988108244194085592505110235351880641429873126716467786332866319085620349088058439833051725053694851552653943598293327389767374128536149182767376071480938191847706437836193483567374615738756879973257127496216693566471672128923251462107764533849789238755988638536482476755683948802915137379349477582920021256003901163481714230632626498389267141284981285066968631302573352713178044374218617604998052954303525729777568953922450281608482833744187641034510230406200070213341553027665272201898024268107686514419938798267789264606800226464233916382649330816682563977534230269185635457960859258602771526067659011647814206801601142726311497656894777874908466876138688277189106451899166653964690634430488097584959546906119757033924487649089433051973068231065956558483960005073580367200043487448243650871896130168277702231610586978519855417119675538121968916567887461893353285653788766564197237624589029802336744674205091068916002296119143093968295044520033479366181557150178539774039700518666828096882720059200955157940058169015373406996975428183667068808969576625949355841828060162431877104994891637948342292873039009221721635830699440986398603753754197506996346477403515956524414292490664530470191522426439802178368708806703822845452644790527796402506348086145855424604762085271986958980822351532328465173128060439175799356382316921923861648610401940474548262797026317666100014223031047643196795840688996507013879399384676087610617655702552299814098081031957759880582057618924844813754021858347649656752537039261003414061705376063110178005532680513592173342282298352110865980832681911106456718225122228744748879720209023004316738539982809807192676726969108546179064328705375171889097263643289794840807149539122765122173557772621980212029336605742521686965308157325122296881513543089681624259083423454916743570592781421853266479743806331221623347028622344720608260600796023310479822780550676433118514956426331445313422920718136659195332902991385002057174312479230883243616248921803286153661389953601493811472666907993490443392298059074214343497460571800473131620078254150366096497434785261904011612509548985176088891156530525698598081745480988244765936633880760316538034870540718695419527997312203193168289851588405736536309874512827993223925508861605333146397537065537378262757501979670375167597937319926352788311585346204617130246888272906867259738973698907384035102230840918304554758260682451197899719781773618383136784957211553687915805758248905402143286933009281790750926671548052101225921607740702401962665510916238300496422033800324060263888105849306394341326659592549199000948570529020432378628147721976632438782577147191525902943186434666741699907349167737461743881777011763369713511899929066584822910803813174759963663863763989855690993418009684912599237251046268110362038687162121305044129625728228089339043717546025222066584043957163716591200042282143272124516542799206418974112052236563613992199007580492505625539056042413086958837503524370328270560776698645205871827960891708205997606814139412857521521791542063630998365195334850690886590960073227875634605831309174131969269851521219110123881978141151227241015898586743869880370621837818189154854712273331172862974994718890013188311579705567220655121767579462493299392550687221784998773690726689709493530822437783061899308418240353722274437941686567644838382351189859866490292722900440407645067302933034986429642572012187316191323161480309945578645900198267393567285679055208010673819739348863155536887906280048603544647839766458415316040272191850907512010414156819197188511720020629743917820902489910009485477690694465287921537676993419083151047196068070889254105121727506108887154124971864301593830409854370528476749367119008455889325893533066086585391812167584988196717916528586534828222928315609862290794931706513833668067858222876475770518986652156545811719660600423995154120209326689456311017712557957418359198967435128174775359541571397778873783917007692880836169921499587132845393580263132070540486390922996360007380129967822443254939462108854015818617484250417187427670094523631526919127728392480385426006984841589841908402234723531853553423607494251030625286805231252189267502498418826525553402022416340675971045846619324062538832121247851280612803184019146417262757867560373350862338066500203147264895801962533041946740491552556589336281749530400632576568439871091601855526313482198129409091365560587635396057210146306197598966572513038295972264092363254559007631926286229862597585649218041975542839787570789054170474557437980396231769993150621157210398330115401125209773414096194492075862677693090354960297032381190263317906729946300320605014167133640976628514461764543871955514192642261357932040939676812297001125393515382692306891092799415691493225802018031508321714634454871322495238276408718993148826574051394577122876197976536914070764719209153441349567791093058406403175702440768077907647984530779207856518373363443165941237143155484197199931865486582840420451472476710514781362732141964850452680214236723528863089610050815725021527212845300803734392318810933152911554602299700831882627642810597581867573129963558952469892130292809692728415743793327278092108284133465840609134986936096569456060463595281367825433568376831333100666511892074075072238783357587239712242348945021226468558571956701224543137007327480420384667627501276542335850653462771465575094018494580385346748872214270074265973847262719591058147261779218792041403043016634589306204273984792660643832592272092845178372592905173828721159231958344897723719343846671176171017718581206911562909738911113876010097401402379505163917428881577803031828860338495270162136611674992168020912064016069638313505008042547724017018670305768979168415794106760834872656588012281431544106779597506361928332200400652584459776800047153136791982357951970448719597346841000940924253065819227080007772262549678066792052658695410621775563730742624944631541124913476024700475775658374269177463119331962066305915334187098484127051593932233161058359799883317045813283610302126181327281411492682902933794023468576632646325738325684606528729416638616734930194645443502693223218097540636290350939197478325010293619307132003594503216506251228282712738668909878613896473644160002653551989834148301197434125403218014507550606397240038809174265025990032579139720522899370145440487573388986824898191336594719474992894778241302133056242009275070199289515479125825440330103930277964358183332215314340907951974432252671800661324564132587407937667996070085219152198766860737707572657189072962412791250659878163278336576826419558336120371671979089151461029696151832347114374024987239093568626804451290376405747960728162184891667404799656663126654304533337676419320728948109343009778781749910905914048856660535340244897954741086969651200480882362328915730991691315949524641007469737655165403078639404215451211111912070918902518351830902118347359966559609631681899589449130868607556949218211339305163844634632836747921016932956300590897135450249709809246155588914073871842599006566299675194172223219853800637971458385762228900667030844208042773517226244558965591115439239873211503501037495909517636981396278918886861893340500755203727468814734192901570341475390132998732755968989796471584983641119560284753903079291184371891770184808466957677831649949588039200352411524643913319436827831214444123038421675159652218421238997992726244325285573504147850418146130029098839273841774220579600343985523712252683390442414217062200149734817669884695154528616915949929677349757796576437634524108005962425641137873178987207234889542130398054410601829425969845031108796653837096636664983164922199643267422038744008691197215947611177995698525018980734846455273045002091008829576404499090766847074919999040020734941822057921095075513602411995778483101749615221163007217639041019613087730222890327887798593701635169375571934024560231663412718687905477955167399678955908861001856349108130787187585387268843170281543113885718160012217764742768075388410555666796400431373420728444089706697005641033915773541585684492335726871045193500700862228421570258192688928195191351727330952838203492444755776658047655474831107005874913257902142133066617021341215009270591680797959483154913889538914373409315942793370979202758424459427262043605836618465549537021249520274239296370205084285328451121193573277899987825102614696143391953226306206021669435695193428780961884214680650949793581794563315717198131469990159110108890838452199432618767740807712162636705848343520502183800959782612794207970661191298265208288594221884807464363270833322474540260066625359591534838860251333708887131422314359272561080278420351963986178190440138401864418741882152675353697526075226496085712122417441632537333408899743329759202664543643272152951134444861318181109587716189278155613411558968291802635961141054833326790872780080373187642334409343150465912844163388419029489231095498168681332750912817202351567671141693980865854515798493078484386020400069073391374336871016485278228225626769409058445071481277845183291058305702429956453880934277880806138607383465028150773304673856568126969488458496652225765093619237959144994045537152498020910098786702915050753644556182734260969704753738080102490899297429460991428442451758731586374053360005851528294937081872294192704537947008607930572404154188356379492401912734125091711489694874115045196385606413008974030214775148778168299781962022295103362723725302776822058049613277179925914443415182690484705864871053545972824141071951783911179389135359636708173560933373591063479048267430227755596250225756210249022293371239924380210557555517453997745237823743122008116372086451115410739267774810197183669315094674372404203782328387645599495833254939229968060453767401653275477124999073293273920089413622046462120953038298058206421238192440041813474786287892408538065645035430860602212754001164806356802578194884228049302907352696179744824928116367642459707201689355194995253902464858976641390583017355890987173342706876392696885035652943425898319139309149467965219130773406605294908283836563234140239989786286611536953668728108015414409047844952802799874054819723720876866064679399884714503296620854646814834296824964318345899364912211683112565033000304729926728876716215383642368359083304852410619709607581024977249509543276373471955243018779948003618201773013149841300119455110228745037085117505448634556792827686497602301075712517087439434053953734249377655645003908089186458084163499550911162931948556295107143699902195861824294032303622622281894531624695885510155885617259219526685707655854486349213653029989870569098844641353779705055665840688732106029778775417867117505309275010487629656576113663381132844549650406416030617216610995259722231190614681143671572092611158803698899173433197456170143679277100190412020322158372270369142446479498381986673614104481724084271096678867795617611984368781345643115130275202535920647037775616878867534780558004677636970784776698092427491225469675498440165653826841466638764417102484200385113449244592641247119324639475292141543311939689084172150186690768191327673226927872780273834492989777158455410146948236355476132933030696537873222213296701289976912248332068196223579012691656935578768947058964618992433040060454230184229934267231400111352397576056689797077842595046233988907975591958928835023313886181893023646913239143017395778834990736894033531063838690628853606672833539171352252022313885737625462682898425585658736236418093901719027754531481953329407133234006622984185104356092326528849440980687372322604900497784436018335815203093397895003968877417881537005782632352752859325321932921862034323274123008351841522642096773399526938810416790650588168450408575493471369762794994687289314422563872678171368479833451441225883588896411018251700623744066036413760947160354347603018409098734798554780703447011201013474012277878884690455757275242550963256455440246938389158214044058971288078888199109465475133356319031462530859435418308157651097163176815129018426153890571778894204834329027552073047566673609476351316025776068034930746865616031762039585532445061984615939328034618640505227212272236194739256721422620828936322504322993767740389989552550819193118161481429377174184266578098986440050313494628467022380996116209415549106239973297541092171262319708956568863879835406125721746301785053739483356301580713759396682890828268758788936600563291595877537679692941700149534965635580892675650917461521166416615711030327372572771668239111971489662637368957384494655308538943080741060664820127337561493783535582185502063093647039717609249335024854842293029761214909731471525428537861741233646443442265799138593056099335534528657023762470641233683229056229653968997442335161405164954371886838873451285935454490694304261643962348613295860434589003503096300737959822377260704388838865057933679331222750494427191986329546881181862132888785076273037091922338484283918007465204011086309752163775691448818517798473111862035601318723977881152127058060419695289151546993896798550675896651289644213320507139384511150995601216671754567600764956815793239796568548993492119496421538793882545940188379205097001138263135530056528994480845117828027674840251453827910438775680281714616214717643637404772020031499834367466569506754253084211037803515817896461702816945409746641777836761817982983774523978663927866260235522122741205239514542832181495751403311278047682113503037407642857774495722439924671914341506205120100251493179187602704990620669194553323158539481853815365259749111431518575364719529731050464782423089458890470038572133771520827293160846862898191820677678656613670561010836294091180895454491155487561403549791583544148722839849299050894012509011104680198866235165667839485679668895919297757105311768146612488299204191889444987327238225058001668823122323134801824091164495029956256852187802687525033800073856688017673949683388325530579294573466754577090799356882916896454865569091938237645818516886513686124702327397239091003787466371722223562657234145415251195316693891907711046104733757974225526211365789519042100123526851123587207804911677320367511973719657485994518654098555232136963738732692172063249441572092210203018279941225964977518582733683208668257231237122784171309760817689726813742027974889184970585188203681471359021534599827528916828372415885219960781851886024109220297396294050996586131319883914165623691917059400146791878977723345892750738940148517686513666983808123229213622196502425934081066632852577936053813020144986787416548137165836207768904330853245400363525063300981833267973672434100671249213599368462990821290951154550918483071053367524018341815380885890823329392987967288356756710678475122354709237666526883233471153018735486444662736952335726485814887573527441208709067146372281007827486285104624890852631190342173373318715246163966547347253446587833884369203925364506926475796523786324327840711359637607018856509454192514644506486476549288375260381900653055878827928270751454479371389311102614097170414008668653117006351003659836855491875837293645341174217066392868029150442783062986993416744858593396424177031984393662702477998445836719684663109779718192271751771057792735320318439790322917157061164306657908990430506807670537381359868483349389640585365151970768645708491051444249758529686882098730486438986978918285609719549084675542926213183142379539950170170968673509952243743180499400111630948439887255485517805720386475647740119072288411035614125757020584393497607230565146933133912277324486895528332885856098881504582352117805873865550136612074997539030695963463157574643694876374304962551146728468556755625313335357849189225827612193667136584027235822147419653968316427161424697215607844398711675645027539072755183840205625559297551021075451807542734420590573049793673907523341556532222897290427833689409506761458839584011836687179786534465940405981224493954245798160265435287352286022775150185671471831128920533258473115032610149414107745551415373524227691935816633675418599785077968384876252370821103191565560620495519111802917460011440094846584225604282725597518484666043543475132966390957210656235087129006122474410071069117256242076685217752753445684381003933101080031099832844813091539709975766548737610551957974811366250873641727539875548544149955335229494869124208312305222426145548509596897766390037446683087440030207463249604409057137692551680367823025917808983715162180926682794100241473279745252783172865708719105952442539551121485823183494692491870055992341755305668499510704744858553836229268497269626778633135769040856938906637411360925716314274916168455056201067522795320721262489731306680937708278478806785780463703477880202188361456983256820893369208953456625712661006944855606000759718468129888005082787206282177576116347642377782794626764233799696083094977894576876484084716464305974706893588521315249154106482635773329659824720321644533111134115326928234158046201078639056158983094773321277973453597660926965109887356938660013422206271266543339972454277418563789247610118529638953293564530143349795053314248337444396582983059583971246046352524642377279913857103568343528365332018583174628697130425968022676899872957380442344723183412134641260690507865491436879760741341191401990201146629369308669102302317774598400863492146574302743068656647350881295212110001144909099267816206242906004434082839238035759707788849800627826552536537028829437383497398362886758292205950132145208913858719371863565621503236460596439816675676931158224615451640475807194895193315706545179659083220088846065316329143170687349868686879466519628021393869676721439192947951786052964346265785397212244625774830266151889753276634780422791218196432643525819098326109356446762765526510749478998822998866158605038883172631718216640424028142622075248872546187010116349946156801419180810608425194737194587855160651000592508071616471418712120205823051502044210726718035050591363007243460736294068100516758557068121069160622267399229242074269082984688930953122038634165416926359107182245046048303502948803025903771262411705308508150219701066927150427484493876627139731903255264862308062242225607812598654444298374966462260542460914540503072303441570174658933378593335506286032612572834702163028943955778407018083294680492604408411212039468227983124946062006348409070208785857286201756181959128391815789718507427905692561758260251170463690463228693586009365010201972745719466741158203603899778993474244673759008133792274289098693289779619565833817011061903930331656025050098688583523687408258617649038110520052882835456736808420208653293413788981926909631552495487758758031293430578784201320660158650412773132520214489542007158997269171179457689866192556058692449903085349862086893576146037496016086495313808178268524929188601760064082492400547780171174766380500328255477799351210305187340613573013895890166794975808694799261638866740486522514674127474384833251677412773655398430313619163754447314574137204951777497791755869926964011015453405535988400925151683331064020255640235707310569389382427767804370032070783525325778862275739350656971771124055531581834921032515063100697066279360313172101304278690250604973109045174745601788932099121695452735274360130892383305497491167366063627156379718552197081766991643992692260799679341075103223221124911730445202606565816778982483651630108564716767820133002218237884459164684456803612158371936371070620841576316494009239055337773733224174084051456236318091553593183176613132909368879427742544551886858778884608693269265239473368793299702995673892196376121946505341560084267341940020801880498225070061448715174406095853138320046691350441929736645692617350195769880920554710865172141773466703531102905232523100552086811466987654782692189428871767646086146775453895709881318727481772057942129436871725042165635607515880966989611840680893724779772368140698579501264186369640578149859865098433334858220436447490435534311529782591356390873786420833863362744089877451620873331758703773007546443591468421436540172655233519164558083432420597698340831095997056373113368018228620674041761176443824929804192982553560911799931204355429830330125422129159112001834716075928333985476642522519603344718455353565905497484013178841675465138162645439973700645719719104270311518163631534051573280948669599084510492113535792841993739620913493240300277945298942581753700554292919722196784030463698139664484735485296680819576843705298815143196462360049461395707959250021979355748493227749694741257864751109787583589290400419244803857536375716449423017837013286095810186685474972989636561403406357208702063730092245216281955312825224655248585662744838635369743395977199723576872893029515309107535693096952220727704668042773561835119261824131614882440804175523230723949085292514187963722072320393288988862092442028057817905438285564741290761953261665309209931569726735774998153560466621781361132765241600122674001456304953670456961796060508014902266449846686856674063187182366414391214829793224023160861771707871522551084571620517740075150549687696350441850878864139063149872071107304591618225737730912848961727391579936850427646621431326401701684546490306732560296234187208828375379210620122196822864787025666520799621313658294358268284875671290637674529897099794970019041999060709197865978764765937508150963158244615853346728484384894397169806400813585717768932436458839837662077047988594547641210339088526862350116448865498997984130842653803811319185865049827655071225332181918044437279833751024568804558203627930967850046796223417765883059213116243141135374703319073312102168743390110572270258800290616393047761978951403501224979031826973732308540894473373480633804109602494528138290878675787857546409509213227639860899883280035837916222556662809710356847668447094692737096202383731394680859659485991184983047320303985158244967954767469294537176149239529182516633627878213251248340695244624647792767391428893442046142624658009947126179774676537863246986975104581871580922797377796230396234290066217619888601554431533393444613718315149505904930137309657319334000336034238056978153801441476605013321648765368179941889373901510680731304619345306449575366787409898214935692794980146755944838428440042018813511212101189339456125635520152981971166866578011830183380379455571076611981571945105921879629299240041601474566846617290142771715766761259550068596541745166512702689138990397782077775334370949638763582810914918636055460987754598389395431527397416240422441704070502347206065619288852402874300636637963583693577641558570476419836114146258018737897057918573245232734404942425859954481902869683852161126121925412603444261395427187202994735687799275958279681114497959783429365196368242795001472254648762434148286197161086181335530584533851783446992576729238644958840591892016206839261875452019525219670598657861851362614348980250910494024778380357992422067283278641217774436538261851355961325787299640099291486203974593985677369602948726870568171536142142765451602011800743926678405650483428690947857063472227224548410652030252435963509886344592310171159472334013047378166043053135723444428466901313493971110512515374374249230150062629114369336301066921503634646134807022869047432554310600844962552458506382341347676231384250572902858469696592974092930736863654560624140457705184042783358754540407794905138147229076651690405406716340481223107945017261039251684918772861720105604069977036082099111384618163110471897984615313234861177963539451752417078488968912550494673556356141869545772715114635471183143674074066817917105840155963203802234625697419371538622446479476080512731580407068106954590185905128786911258294043440956929515320638298188469276022026095970349852855214384501563923946103805464726569627306183308883988885560689787823761528003284660464841778052839289930617056023236254849383721222669017716303335209979678418554464244067605184351813222928948009613136833658995655521408840102021753761259676685513893673946834468803431329982177413350092094442584793039575155789368082773519009239606432205436251636604943489007778712521735419333607120524785912755353171718705709487566543138506379594833137143257453737360999980889272024073485987546842032050476578114274021630636624703260974231483928211317565898978521501105722388192699861787547470714828399447921803507219272760126563930061146715226151728436194500041844433006448189481992403839676216640871714907409042923542647568170144136609286250714975702729098918169700223786605802435265049072403631205565206296383545531747416950130638055459811980249201943949993641951436728276031196215032823171433391215563476238741812039251432357057014362398112649067997067950523665420864202841573919047961142717194772950999791883221536448164641834993188549946170205242283666723358809610749749170234703902948524047221443312132830821020628312654943522666492232376087961772045458146583541105380934134271784997732403714838059899381584515029026264929427279356146497691336250397694079352313395663105863445158095996289723560985390217119699297801806174701706936461655011938590833796485266312579612696002630239952452924025450493326519987085300262693835484857040143106916263497079817886009788007165428347538934386291461966997568799720109324261986869554062969948307384621856622103327738805952951859232517725762334590473387656937521810460155258839522080528273853592384596189241181668491497179403871224658383501044137700888890075906832181433657170450973720198855413319792522761418491427563834369354213317688680369262943681218693745855656453574011896004835591202895172812251073391318398742036421630323924765441812575715374690794349424622892665307694435277271440695377179582124639519674948751122537947331443413506857731934288143143959574068787041753743999652059858798012636212235705874449131042727151974655948973778126674544176763074482769211972727097414362374134011804702723597202325448598720363828502535638185214051505804734857598213277136818628457019743199982840942695621414879024882419423722495200530575872203259859178269158241423177357192996154113910849555068611038826450276630893970945040016995877526595419742910824086844838130098218554929647685594402041201999539558933581695651774556005926722982072161464807717152385195078827786199450107661685662269582326315758318446672018178795038969646228894162181542188856174687868199281101028097449241625121826979047087481450796706814325769882767944846808598046094381409805481273313650923088619727165622218563652201414047544890715692669224557292617574431587506986609166875276491827215929605055867754880709615793540745062634498167324714195957828647298786368003947035747494629701660568434142456505539958764613077760613489353434112106579486991650412945204263925972484382455101233929313454084865702640934279895094746521261393611222977307807575137229969475472180164008967997497870603485877517796205591470690412960102895901689596444581159144634478706826567894618712222486499921088137393089494850307692309041160046103890155925547308451903307091659597792058916031065650267462321481693013694600648688618675595419203957132606713183485168602788846781889519417782095573705397653082263940255697567880686858133360223010305757674735444081773969495516395630483917108486736471134271361008647137039887573251146123758473297757483882674073697489710866045501909713332075852244457866551932824764559817441346119118482153827756484630010239484680997425556752646164309872579591065894497736706928731388430937614167907853008238141517310883486773987276433502996047133741195073878339739896869531640766153571256174116098333220936256297654772943198823721164158041420524257374731074239190225407839320075730270750721414491021083075109020089160467585325675738253115098003148688831854961697663628295650276938180488486248527080842115278518167376433840786974018702926226535514843772995893000233624071734834177399963800628974803872218074201040415174791061271597195976676693012527644695242506589712145808520667455859911992881588821399820977239160870766398527334729018782786660434043205875740287025080073062438698124871788355396296334531236100146616186520585395857418390059501503824754142901643694917223872808231181586153663057069680594170926269068053098672081985788852373174076779050656855964096444113074652990979189722561019594203651926363833833893704105004617315804094604304886274602876036999001318519346774375406077036960477440768588555926564014194606090370957996519887393858297916289630989460820316199206074484774958230690908855268858708121403248309312281841860936039780785821005366861043529395736517844920215504711224623875730728737069492069382853009081356139589907825990484799164535443639028643483977472244195256150379763507059741061846314828722743770002878991831324165138295396840474783316209299052332952136939257917936718432627854367068686066839238861651989992310072295322888191486744097258812652991268608992191622788845417643857954492838670384561317791484122264535365525551840749818978233168665452844164786519691473469710278851003144786739947116563463906402525115638645269808980321991956346807368645659916616069757544622222536629093231787491088262317885626101883714836732562190166299443134370539350618314118784446366983288752547976190649897520636096544450506045476915033663403597184198396340620288910582063069982687425528496457813978426230463552723408764785588989721965480007963559923656961437393982587512041155108995071608734900939616733976087681565774995989541582459839841625138351633755307943334491507722059235066428730738387532122347128142392455515331222198026151158937315397147280169326580501385224812709598740477475588542224095153661285013192327983028961939669839667765114692680413550949430188023298395643231166053517229684904604392948886765751680197228375093287418985604033024089939909147347023640532350929205649575088221280496639553711650014373073726253214510761943098671683082636935290244717517918234559421771455512212007110484738850365890675384010238247549628618884262709621410263766945682654139660874610133739910071858300144979830820478023604132645858982414883973449579366092962002619552491980658702967968705889401792686533242025596543389805564240065465578583072773737015596799714959103299031362768275490550825599880331858284661677539913399463862678777975789081028504320809892596098097303439953792973755497713029003489677891545748116618394884512951512129014908661976832930816619292727302917489873040573257953358450753942893403988328278411823346823626349948187326044139643678236876728645039519856852681478048240529840711855479258921853238580987561991805878694917887903438466029841271405130072431304221321644534126729565623984473460132122600978221260521854007658185357655636973471922090511711683552297840562280358245781320735573879812910022115046911022815730651166323477221727548321254203048065053133092862670840788126944775323926533273444951518220238865940485467228616827893113110073819769793437424433656964721989829803089552766037997463833797733863203522484172318850162510468858955976104231126919771223869848763345995013263801313195424319847531711311352610823627457478188534843456487684476514995266860373632744820931665220167810278002419532246763979446792395647027518052747687380619298113547963574369809631476505514589944577851741604329098854450556535423480561304556161140117030944706899080334965755371878989929452214545532236337626917475059400430738919564390606189905608778292146950749377478109085153768101947997471174704748900245291490291376355273951733548195787611954330885117064764495571485565681073164188936975820612056776263247435871961364003747987755107502541455310851134489791403107965487107732582957805262350789251612657698886459351570951230055244680883727994981378328864917083626711459244305752929085875663036810761932913038429578761264246787288889822476683512747915474390319412551383788446495073182047794065040344438495137552303270848732385506099966284149338243699676000315678534008083883699765549039328105379812142852146477381680966440112608766969110570043075593623330146274451612508128924277239764632298435980053914249295516365739398597165854088909990045362939318689738259080433758726588732843862615183486672449146010391375584427815776156106052269357582060312740097855097281402038108679538598600077607881478767329313652943456178932055675758586881553968562691209306675715790304088543484786334844372270815793220472664152051812094924955452494540676392978573352776808880171033283485696936708205536209134542932852496474159625491598973861572012827309734830647117642228677392831424657608119969750927364376081354142279116206307610725742263602163002012550335553297359141489070730183100564603365412275207088612560461315784249061837995208773593320504668756738678900265273644651504319229068885968373848281648756159314103346572621132267732656175180455499313902993046465331381415850446945198438042931327384517684556446228839917583987569678109005119102356583181749966619394750078686165672635057635906855091645435498737446815101933828081516921453949957505855691774539570463044433183888726887932392553112465371154359976641157302169371131934181812934942430658974456967754602135014841259614206737770877545992115198001817314663768896525583424820780354881488489061062318809531914261740258864641439407786069534370903164686731284653826833194330503757740491602821405763264667850376363889427985504080241734638802158244525047372280078475639790641021824199193692156888789563712351908112524386098876502966245315218198343445524852872873241076327174027555434216173555045298803988540455403006008234235826142813985101992074488689610148217528332108316000417872879267894534857152668576889272874173949214202896991472806969510152688179321039954915265046492126011129173988757834635571367722356154553777270978779148560609577935613957818511548311847518779394973680078851838600487148458654180099152489850328386698860942745396433907428284956542230096763285146215705493817182364855838578444848665188421473396424968249762540892456236613263352098302845851701292800335857625913365819977358756006874946701039776494410603336153891758548918131988767411872500211632814664700928488167747666845461044927054069110522548672167713483379169058218392597308835577438575177491363862271261472977352830430069773286536829451465278735553508736636393916590970046907074591171976784279932474021901471066521173959224677614910360882445681204775188066694598057778754370397000356889275850652833670693823102429534196351117369240229236570121965808669745327131203656673692291703724043617626396663111723588357863836198364348328161988585177840875909193166980048279750343115916977780112739985275068232988909603694169241995468908126083901449313712997076158598448650188121605710916310518881318759283385651765322767231129187545026862371454180348374632138687390472666049224485845701500198564213487604799082389173121477034844174555945216665144132261081729739881211538352230895238865085989366558816192424462816046032159799934772125826509837160202006080063922560700309982216899356897472356709196343754024298726830070698665718928390769246625172878701776037475945726089615917093689714679255273317377764018833117619572320011451150449724338824471947062855103039876235307773469328411081545154371948212779535284224842589938802421476661240209458429363081586554085959085307599353975361406314290593150804122655433839810763916180606701662854469998460308693561026052859619234128908011405437664850606720781435162081260760948390011336908347149136215033514091964591652461454322127659303101238227771021931305661651879349655957214598802537360180915686568469523503261858422761453874110031233012197005434659380958593367435395653513771578883461680010053734112316817353143093569583746568850471318678820963341732368475035674446409394743648139424690153484271339941597221876060023895174209345810489635875278699453957248832122078727416336064205188125880516958673242959724762700659121585634928485301888889837493948083641278296277124869453081239115659932106808007807487199910923251814781455089549366484945860258635007293292625656952592994368206556057542686661880049994245496014010043538686906826069610759323368352672971155497012932820077231476856487001335997368371747428410595951390284039869743413285535509656404200134360159735433905934279130339578637077731783111087086356897948888621115833586214031593275210271768386397263633795797252545063531909863050311851287706122256308628428654760858647553412285544093752041604557984610388624870914597445434192654934529345127558594461459112845258698060617443748690160255941970789000636706754147906954006594947586724398903906906130583987455896333649974594786348271307380719366639610015193019672117294813279987026672614567876334333802917103057778520224660344202042075750456986133891335422508919288958594806432769003396051484448316321105170440779281570404310869571892981625704952223598919548938923368852261167615797400112255963199829776028599806083528156379414439931727255491806935149275004548755624724043136955511744736098238903734892998308537799668031882394180133900493732994900731024503778635658265261350241083109179993399231036375238012404145820988673286047670959422817209813222930820295661836905409020706713078753959726818483454681182078428181794634076242672435680896884857598593802163080473442913286252089488926881054739684412760187543602338027221253061111466471822263848458502629748200862664216074964166759109491927390202378502094799573691602648964871679379440058506575566016718446274436032358780749087843147075713251109667155667061994818257262822288503738731273083032571338834875255539979548796006480110793571895100113214679312923751944323712378650868865152268523599247947120867656402296387584165545956078708182611400207250441786079180569402248856330464358376995422161256043363414938163995699557577076415775084884014123659776707377285722119958297704586745780154725452036953370727111945853185623641371693740072283593352168562395736223825828754151747139771005973595977563167013722734599238468556263800239075985841498474356097406319644829615592838902090073750116031101365175950642197497880496987433027241622737435355029298137261361358308576479867717029702856129059175220787035101808516245386140777348484591643656476304521979892455512208764517691688160271983236258400636916736410357850919600807970483657864636040479851131530625439425012280242518701589027652996778808599679200072397583816182435443021217869346333303374893162551229489551456997950532201615625598191250118310887427104150788560865643176998089928404537444493646513504604464204249046398647143262697661528844478551734250079541780407545775948652039350970321494396334303048200851515202778662135228676382048324808799056590864988474683609386551335981488997168728303369095004023223383287094065841996185596292049124413767384222690798280942458997417958993999644742169038384005483912840737917809155899836473352346372119531835670334452225900474685095106571195242137415515455620725046919560365680546115578149541276632824522440988476993297792511034206829256428976861800390401778925035611903214637128770572457571614974912120576667976895722504439765652597758300523217984536210506539736300315621236967540865657313502176933183561706957573037508094960079721135576606925257342920543033975812416415760641278698616422745147575371242635506447830738200808645472131005520673035137308449200273181413013738475038185643704434735513393827035623058335316106449137723430580843369044037656831292164542742384592617924379433411829079942029851057821269325884039312473160863211365468231125260490263528389389317277577257219040112024764878480411587403185022565534346160831239827013503648965077952785662445035352376095523435627190394367065435037273533954606571966123416761373970702280205608121461932392133502786663473228522642612044062200993927355252013922840175285908241355015357104438433513049512070408144737015511222017201923508947383850219247387172256817649316793850031526653493499486098244176369080582032651540683636236254722803664626819227323908177503262238209802049958943637932577451404382727269881457625165692364520632779118124810764836595485752693239426392511031407003096694416497961299261252900115150612293837546256147674596824610242542401371975240746818984317672432923604109116802509840214287903301227982503282784832473409369072110784618517324555399440241324306408394696736276958033313552895088584479022718194324405957369832758382784703981124551857151853999745961542842807415382004753979726811690762969723559775064715364549903791075088883361382302671379702742700390899340158497380475043675989749367015987585425277407735072759108254619405356525705339885524580998318621954670954088471666502899816934727874429659667478082056496124044074001267663174138759907041956759150686398860415719141794380093966649183498032417506704999583810615045795797353661537904218222666673672631711792520825987188208410838664482106733468896789387448295884185499664319230979962159738724272375373054914251502865058879339411568586179073869732636415977950672548582745951181354128993482913861529702378315896772385353847648493700398117312420349023276813430306060398427985418382546139583471603926679969260137609537044561003652782954637657093738592465368918930152507876597844472878112171280067659567095606254445641022725941808352440017470238823172735717778594130153474066038862385740706150169045720902846805869763530627881776387576090660710033042571308885660628910084744694087625272769597095938808329285307484785037506995828561850802156559911750411403106365215249155676548573931134222088526173418291852216185984289237097668352830324280885584374766080681539036059000289456229252637052866072046667076957110881562585044191365133723772304832056308242680348485433938310521465264691810174095399994401257652986118816705552321371304410610876584975076410081110801886167788282871147971497291699922353753810748375628391662823063926757474151044600986885237219673201064671846802345444752560290615918156937262004052963338791602673854343081734244762565143085117723882129212263044547479592896420430911079911540255492097919148666225474779533122655145640216690936732584548970635429456199050540264810635972609071638057748166663852787521443923800263875708944033242802234111438314241143293050270030125250056685248280449938177382922975892211790562301360683243280444417350914445079331794978866500361223528378572099416351047363091078810122155800274357481927454549008506376752196632064241068885779169980127207777889964806727378441053818847293286152402562400618073594384659161410345308358581644542767789394504813327330939998460266107113924003616846362748606972284495853127944631320394835530863752369877597408555204620767138158627098817710340354213325877907631958077568850107978065818852914767761150551947709349586116996857996886096261732128615256350672622078853308981907067217524741986655328845055530263497217900214133093712370594542916511356858042144714347329385464044847178867588821741926043604714586249948617976840822126423870816783562075740476872907505178084951869402314239992948531581767298849900969524498401619370484751042836832400781672673657159476600053158644775881826593223256245798659141868358931479164388379694728184287844181511116985696960970693718384361889168843565404634470409764613491538157148584024343453907315511257813670426856616876919766926066517775676866874317541724582425650942875643959624954415610880711970479938226045144497925201006004505020866937735817985737699730462603589211064556333622256595043880227224052452040276369285291417534566784997868383602222266386249827378851815667090008124547941368903939913241057037778724940669073991865287560264240392934795618126195804670505042283134592765141293896172061620349459616624227841578104387752885261097150327727727143522406978663568670352962652414467081685874772189745563565222970334176610091536232816145908756270264690718296136821040334309710138459593596475696347106010154538231460063744756498713464636356799012280142888155957785947073065010602344173711591669525083923774218304756657861559920814103265593479475866352752395787614640714920432291136040210213931567702201258486557370667896119091769281845662359820976879094931804764306033515466617510379622691519206498483571094940616960093688430302139214935423312535102352515175813961283980560106679817655437454552663962035135369548636997876690168984067203267507258015136046151813639082086239581896793968279230012432364234922123824591246576542078676713324028444341552428457217883929104237174194274335460751042587708636046268380149303610664876191990372026781545292597743781600533284568600288023978707229044266000464762839261560595720930761555185910222250619118093867259008335763454782102304872699804311753745005967392007585548091175174535279413527876965480338356392253055390910225357773629775337399719512836186427839892033592067785820020573515477976608309306088640370013516607846892543846975609152239471184879000524330620865663611100035091581575451149256425007377960706060880296150839932562571683559960770028747546474442594932259359817790937455578147946935122683932224203817345859701537173222712696153143585226562492011326409592313032625110062286602321204228416199016488484280810483754549810540423689942483530970071008121934589343514001445886206456038653444924376599254488360597200490458078709296332674335527182381515830169486626232628733243613489872110557392535611498009010004440722283647058652488586562253013830945510348760330621156701418976357868379743913787348943325526746642679970048871479672050484641017439779940522524721918809054041156582461347687190271305784354736382342740726413347014972594345462122368167530645183081854317557701656415318372677874352931955078421847091479626760482886099752847748986237972043729925990174992127585013099469269738772920909767127572179479121212340521621334160431251236194042377878693317697056877096387147769342877891499246012596093080806924926904446610455701969005364428762110755664250495914010275727566471622643849498674739357125154869285391830144977872830822468317607347024897077034461378597908335223554747141122600155978495669104282881884791391318713952274519955284614364942465381286167706765035670315888382675920045143013589942551572296008843065602385530753188681545210547658693340119486567158214755815340102525493072741902654700328075346213945141639441670824548123297182937016060805882304959022991725058994073007575948336773530920063689363658783000240532890572277574380249820447100925795059890093109166609506807341589586005299112318286948349366225112902725906341175828539595646522941253376069518128408611703297532941528976446197537463799786100183345635088412230252311351182945611350751847170902005996838735570945406989646182226281532602805532792479626139684544353968367871083700509702365436568996813425563488437069409601326531422784344122146276296435460366258984997872201255313340587031917355244099332415285276865234216635259384799728693776824617048214717511545536724896870454813376317077992333955104132590111109121383442138965772617147429600431343789447374313691203463732667976640891143455230103865810950075868317653624144618160897810617955852377097719028711847070052400685910546704006477490951644369869916894747864760124876828903745927357012336876662751607617295995672673240487933631961363254027207805446807519458545166868734938586357079261716085430984182759493227127049422238776293463187555193049792054352043005711770712732203244615352246242668471511139859805091701842145179556199177600652347360052818516034169703983889609286014885767858877802789336903540472273307165394735973156969745610077152265762809206798872699359583297043733343553089343066502671777816676179784494663843065622588338985692391762456672375768814289920436292599733324277718269203736026295749453422859539222594690671782233980305432314346896719350859769218858442141191967183679835958103590396963708221634978712395840911321848937546612088836709792173990744963972635409917588269050512185873005350927897032420144157130898857678949141040096201243846389331621791698165253510188946040089347622296266454469107120698848426966710963439258950504158934857763745194654154186499519069260789261275333810714435069414833607170078429304376694119352632358244154289139361767537533296256340747266729226454854638302555044118025099555408173960146964468511848674711308384270048029072094973167285826378157478997957611248560740434929728643397375585404712858919401209875305906693828012456084561285286719836597261253258665607531662737812425444714959872866353331494915197369126280324603999929456429217871559562955059278558981787326038245452787518903384776851747139904067463001901794758818364520609854194696941123757416106951762514539994081373552273443019692596823601271443551832209967267524784354305291679896661723719621500522676380707762056527599083544947755667662465698386605743568643013119201321122913170838486843939632995571747868871951716284693459519823375281142294524781572532892050318130428837320588203120112047008279496437475964879890727328201548533972999795720703328962585757527029314534539375946715449130018735252689108149210093285990214069102907993393170033833631113354403086849547671107599428841034943331158891531777158114719161696225241132957578050659702123169156187873054046171589307166169128038282831147778420014830299197890062851854098904518384793192854184632898321901150484099724595113579038414002587919898741830567353640993940336867624579807898341897023118907877942441388465338777379936806844508194503242861329199128729112008174292177880088928072023748032566750288379137680453378303917975948804207501795783210970217378338517210770273739399136502436928934307726683403263521858018957528367071365757149248619772873127677770968164872115072108233302998483586893756384621698921987812618653536636323911509052876988116196485391113589672749830955299283665288958393672015901412557105573308168443087450022253995691758450678449735435695848222125653196638827064707980064398080937101351437802102229119874709252629802771482974450178004184241243259915780128660842346392127437975677246968392336677901686481333265658989718355129887928145507986981041690950371216872735363132715904839574987968025627260589048314166233918474700531708058943306432242549305442852305472652063935381942276034655440773251510179850780113375156166841503268975551695026013655686929164435110907328127420080363009372049362342599051891886158876171535511668247315132305077121993302875364720889028703362429981125473431358531807638149495310716603619388836450464653891538787009710106708954836024300648940129589455960744383970104128844297765751091121414296069479692729809693252361085012356155612169149098446355985620933879592881921880983655780817020945499028374832615125800118042466574247814116683017145551936418987730730780844047205938084680368238473694916476765663259150628946819220487822487547526903660670332434389775623374733305396635674937261030102704624350332196904817231999227334490759599308139852154777135144098096986305459961400116530874154492039538519044151706250537331239193416010954724036572074010795424798807879794692076684986556985485933320240084633096681753859183979161550004483338235789164029348641910463457264131008035973791442187120538197201897734909607638177080013744891839747710850034957800437099819127183686476998000564430468024609387674001467553739137915103152564986018553185504613333944554371589155270238340150692301363401746364243212588609707386418693277169154806182502072253735336533201458268099261111035635148785059485628589813504854698432600330605713314776914868941858630631257762391981551272775384358899313159599974470781255607315608870140970443272193447975507983578226754172987155539601263629543280244755019027285433286526014396113472098664140806908510028661404094186102629217703528662091558808710996695033542528560428161579865589737931741085666874698842128008045051251796209914396586513218047921997591215404639520711610599154733479264209661957114229247287409462756105737907759474110847287555655195307950509817980846042245888697375931103072698326815059666955371004332643424073197188723013565134699804028912590769430842466120366755087505484849437243917161204290981033408487255059813890524178018193830134677991360298676207303981670334358240404236729069776817478551299584574145044689270741370969755180881828123499766886940391154549163808299548199943464299880756037597165871828289668841071548617264351365355141844459568988246115371053908050624820629051928675038911479045749443088614052978045080911379640020093968111196392372901756432758193066116268445219935737137599815862065667262452598397209579816226635697135633472388615967850079863283947365898818582292325340678672825162442863645266069405904954670813724688009946179571298802194028609655237580018614799244164020757771646918726191968382996799554793807394945018393004451349385781723135780682397513226279299816354999103112967684793830514501298800257247106910594530607979564657488233216672016650640748748389905243222314026576018247741268869559207882363297291448517907674770333074021530816680259440100027393984509057634909873638411722379114055589076726161380106843906327798595480850578372432613231066180367955863862482519445486964882191907130960981461552090013546649475387644284771774718399662119626951643225714538082622862473464401619570751051551260307080989021726671272045279850807895280788367336326841479324391732575251923570406034540516048285334757028128490820385500644498067959137031744956231342786614330350070214630418722509854714648516542834380137238316261932300684582010715497515200708262732355621542302838506697731230301293188200947763971732770358353094271597415675139835011115192163177020485174991905891462247701281163506900290059125960962253502513609295660786120586995561079791870145517501150141252433666373271147940051854731679180533904066506583246733913100182893617813374542882498353470885065233370972837479051625018338374223194994802260967774665339728293325278437986423403991948749309063433899550387306890938205541914315321802231404154504443748034565160267765951417077845474497393503790482106751737108351083454829821080329318376671827239242379832387579221323952000730424656860789235769223576857732849838951827302320398692491657347751031084114333401734858609748487281741124162193725060430922233025679112714461171687412743843463415824470235584882925709622162312296313835744274884119857881976903439950226403963868900851865878002552973821843005651788598291149132867483880455972693446364642311669636526653923830531425681552035617814138566132650566388577520018994803827220818195423601893070826622534210445138043315182500361953765309239374664118048731244562651701938390736239710607739030328975827014457338048429820427850909914949602522632089192379302104264807872651464385230400106455238133302594553752253404418678130952115777319694602133537427289030633053892910974357368886839857985065107235160778527021588429355280444822960545892357000378632552737039412451349470883055819772477412145802535899048193783423277226066651181156482189449344296205926125159880199814369705422820105455165582476715179377790058038677690262179151352022376101678480383472400492623056570232128773808723991329410279477523409664364901028975534318695644962832335987881481433680547558735962876119809074956975290837542940188877637381784483614809803312290982108544524792852156234598040745327595924846145967763512483144345537723803227768027526906581757403677010197195871150680541183426130684894820259945830915734648437961983793671172947565532224000786351794368192380890952994375860302674156386127773155578583557093902340310803811774998732314310835989432132543405043048944170221260698612603155207204336332528769099287667238305148508747811913321603601769352917943140060013423445459552387421174892050291636734506753192822404145243998786193151661473551917350562672832813484776479585731877255112882137851934928670348800634002149322061433672428640142124177944947175575192951406999981633085879315592663126527915580989248771795210420089747774794824544843590222590591830344565286460187820111588209091373949221943240692372047656436902938595561858115078009197526719471885835142886397064650006516355355725546453839893244182721019272735757133416326368809467658871778618588137682926779108059892167217966939399231726332277106029341595445209251712383945794762168432405660596716875931404660140911315240519597626385155529572186399412321953665061346289898027648827937455322350508381965052651049534395239943819611719407062353799304592630055646302802880868116875921919802387264348494302828733945013752111983105767876712596728016179100462352724774070058604460212549354587455997695015932839156036824579824682766469679620195340061981053965880937979178704088243788135474702944756355419313805875316060952606608423975589338165893977247836718219996784153802064862325356079340603555662918007507988616090974336946272784953132772504749406767048211499005613048664891910345176783418142533138825212479820702092248673540026538672254778716088577837558109455441186867149922308232739340191443218300117224358808592396734402397945067555623605234927291290379881463805439513388575548430619397980326000106032788657610822601133719102299534336539344559609596083669879918910335685998575447508638238353467788566825057802737006339667212171028930779010567468808225766264813939507006716988698099843848089430276451576125679280311679103109589664911951495420199201381082568073494282179783900454121473197262590994942438028636213660712853586949321892840317031571884383173499213881349459371845105100257736419412731204411349476316970261430609240860120135288426618709066420880608327327502041053091268180777231025721309950176822368616571953040528629312526224108624600550085292381827841938421049191642216845823190394429693029871304253208322769416951179937441883406186389650910876859988527068658677083712090898865962944031635458479581318078308144219095428409251277264420220572860810765401276091724863862995558098336203254860990215035754537157164691034866885670469727485011538371263988293918606331292540405208984702976207668430668442580271842410285459594793236780356175569900375901667337181619899547867527907091372879825298914619573998498856716231311711950834526327252642018273231161052537556878305949723699189082406063329399796543882497118784760625154029847878348644089645594438785214980978165158194455173360528833083416341451383624749786306171583797314952024153700532369459768415608184667187543927351422661072454097962972835305031248884209237573426751723475881830447459416793923013036657713359706052563728021087463987934565403812198307539594335625752853525923129045577418065633963954411282792191352830436659732877686122243589985827077962461130991768058728779907771233431872164176144941242015148247059282718645371339834258770761997718219567188428203741527293990267024718662880290281960786869722761846387631934440570394547657219295129944893753308064033326087146083494329206562441642345764711104404825209832304246199106583438607425852045266015985079495709723526521598539185107620256537078385978233236495087553975007375645162234478654659962428117334117953126434872376943796156861744307852492437155936525002112100478882487967395134241718931403557602532784127205183124579524163566900015723072604240430686871817353320353152237961004463338817553355955038470922351772497532987839858458650676571955008605102385556646141540140157461661100574836688566258997372403025880144801886111624878119573070180178355838078086804618494897206852961377364371090060486798576661961589664937610046199836921075784941553111574839613541571321456044923367426935409878219349816531238536387323010729102386308981865148714272012082625654650252035896785771171633032931679762098747799550141029950138333843763284684551230308493371184136583793609202315728360915512108527829996284420684197670079937427110381039168206003505071431038026163621945189987386685065185480591034977925430238998668071314528525567496412563691879971639935989147628400765898856949924165535524595764229554477446844335872152841361507602487904685150810188137548973361931768936063640016534032672404767317894692536205964496150220678342017495588392924186646746380346583948601928029973064514805255472181920215237628069136765887516125351421617097931242382809048388971751761225481220777467369748334662747624782543852660408233486448301993862832893389264174362208611290149574767323442131099223343711106029280954434489104344529074405634189205781340371677875416088820238668204308517858278431772472653638350385289899945425155408338917837410993358254474741188206282474318682056784930484290258696240801654986276376347292382511554412754290906648384169817153829788709066820808233953349702530246100552808763828429507286062070998862504498497055900399025770882288727712199946758071155802204426814155003652646943003281607869454114431358825773260639886317502214244659522921465637175290916116630602288355397781692678339796532872335490703013856489727237024262209722536006154670446659606096498371012205614419128462064118580186988090537388267472099209882726691423471118925007026737088200050881644558061159106263209284051082772767479968628783744679592654537874371437745818205401750021439534278723349674009904142381101649370856077142169868224741699006757386891816566581606858731068700784848894628470654404419354727619747573038912203975076866925372116924157055193422957449586000035050804182072457418867507504928718318317713210007313700195780892561258696277785729566954324690878817271895506424087864361275024561553373262313664291015056344496953800201242695678643509802169223032973653330668363784074351614544244404381838508440237421855861469724910553906302629668870976078274595338394214702489545247431585407496427663358001102399798194995419109895787880435314736926605034580849533600373866121582776673899497823278373353613295485423205440578631201728227249649706909972243532624237821148690715237327443671455618124961882918884779697345178863780279416399630833798680710035942242387309209099435899744801685004169416652508066526277156226135399537144256730208443682892357229216370359209042605392540715196190124051722512559232148823279429566160645900728016160667402472325126262935390446887716453928992039165667616803020375929166523794453448435441193116979534690798018670098976511571291116666070335566557688943647857649435208704975524477425761683921654261745082363928286194605006877666608448566353531899084693494212059901224232532540929058247097898833374487731976748538432903540422126321456067836851809359968767047335777331141901398066313826231971664480863796090723809933632515287671970775210806740446653200556976274339239621357541878908484789979205579486123014157480293475127563306891198359755906586642368977938263888400940541664705516332816941534415369999071054844773575214229108769932904755681410248897120098849897353517821308505313923456327272081307983645366605653686033739612818101907416361243206898494009483335914304083497880629103989031669624282157069952074085474864501616129678663096328161358996018442931012886878056171799981940653279923244884169964385826182536099894094781547507720290364791102187996652281024318643327045800749529992101475529442988130966676234864965408338814068415431941167347466164669934399678464469322064267907314347145999280715081924055792416677914917110662227831600151167375262198589705296160113955551637091304435389634800632687269579531923349307752079458113541446448516991981185217742601260287643118279817396641105956001062653799533925561967963397838666222727793034469424628864770166706317549861456974579253513471859345032757641114055209825775630995994365187036128114148058871958816410555300042107165213449661675578324280656019539409296945539480566419852683695402510657589173603093045408729673144628770966931779232726711915737726324700519009335226955601727595653570521925523698633143318687687223631141415670552684082343092186581311605793558276656094804104897858867158269709883645032489962817968259777329304241579899509712411181559972886770162124598126812012422849088956240989956127982237175659491284580198112867742598612424730599420622870689680387423118244710524286938187114271008079609693706833734469243502073239804447405006136550936876647622776225676603825068313066090112190539181037570954637638532129704277062018233131230654528965124558431217858098166130810351478441848183370147245287529410587563191162744841284425878618224125722896813257023098221503088584757300750506452023350848153611089481051828894043615822488891137009434608525265252231404965740647042835889738348298814500040329112220832921041420203199348970199884158588284000986133180749906588967064846817214422148186276767614139376552185474096496325103637579453718261470959693688373754858653311213360950855816764914177585740007014120087866870055520723833811145058498066616243686428179068853792215889669646982544453146724800805498086209605790641806380850020379494344798389680528737055823187152326051699011322787827381666259240533451777392187890469748390527213167827777735668743566666714971335438548114292203448192254744911099911929529790754324536274016085823233210461521375964849074551629117662816710597411550124419280046014687865434337878608879097515276500879444518260395634925723628753657954151965036982204114786757761883686316477393666602398265106827010072525130540529381821777252910712855707798764141498887328619529476170576131881157199991563979299677080944526310807703788416433412186049138562968937509136308393342452004245081866487495182230355832723306517113612909458076720904628096600383421557398121874024232776419288007119206569726175852244089480895948767571648619123641727708230587702928443745445506353976123792744641065306957257094785027311461304597498940560044544139206379314220565480217030778334289292158275125816659387258166575066002963479234765172485385869674752631504851585394936363084857378799405290035759032517715241579244667670705082676362672386560668056427041767736167009761229811990075234554963129294374546084977970319302555019805724772145881883529317605082087467050137196696979542842947453377064470088107486049141465212022254483653749968355716273757251528945312282317924579874147850401320453476001697775263475881482008201559126789912291731803610141178875602608081856304587751888886685628987315865020776195822539225220548523333188258377890628759423672724197706533446470787126969626152909334516600382682926871224280328902953556118757821914247690980416073597829297868523232099625561110896062041081602649831704580899740531229037696797232856262371025240772935496725498695061345158941230216717501834044932316580431613547248853623977471933458060619348009268495798069548488544425966831633329812089701812425211437507404075770880291022616823325301246696471028754607263163183653745385735555297454415492008926095985150505217276234212381578280295279091751231554631665589710587727008767364658407957367559137750334601121942619273509307770466573795459233596654047207057797087585310818146366301233370149348378380870569504037334146873963099621831572632510270413435552282742846446901015572694509347141950937061738441214186205196074293288466178066208300640740618929982472035832953571353104232732711397485024892568589360655705698938092775544571855774192426354850243370030247143078869129144176611078216257453722177052986759141044638974329490267314278634293679333372694068636701059562115285454666566191592124340321531912331335433653500590533361238154144282510329714999318118229256068290219083736538617235822197031019184337580185314489883417627889569451464441200099464587397838202944142769033940819684079646884145264054178192148169673066790033088447282651976020437207698474810711252242246959954049658732575828832622756911313598396817723057804066713014873761208435803306833543480382220608333499773414847465955813694635896345264629393710051011350596019902817882352980502309479326141798485659568142872286366892550333729394945285700337396815336298725511556647828270689867597488949862106882358242228290708538083525780344389377216452167708302020254231681086878083034092844493372912630695993557480725480763533953479561757965988058628262844247835704658487953004694293240468032181415900268375507588561694863694092688806771232379386428293975406581360821771301098107608422611767960285344899723509054962442302994339309185765301673017154652422122173732484287106712589864384747392774668982599444997640790726666824448400285787809759818948499483238159718433449152669416935057029499870239968050134153928119230041810567990999311927975307270477693995417243889447011653330456602191805291127764965912630493616887357769644184489388253135973406434192502185161819958236440458933555490670999841917816327568729619062167381277332907599785207668899119088633215285704956724508423247129437689006850923013796872290266300057816812473471475811273608816401090944808005115581452327093881666136658460904080907474706699441340778065597099094028255431695415027530062899644304108415942532161333044112844683753260812664733617439985178127268269035199850288003977787512658264501196463907815036352291735189582724777508987779175673468713364177268034915970679813264788318773608382811777915339644664529662486236654895502437251471106317788858007014225649253559899557467115517599293430674765454428009068373561324969583576811285907506864145432429885507841051184055209511823606029893875388059482181446344639943501144236548520979353392044667513073059757832328058484646013458309651003206272917483194366179852347087059980126646216730048624007042149192788853693449988520236592004834298151770543457531145600134650022197258267192879536943321687671811498484995424507412046573880799157093089271852444196068030501603298428036425232447463592935173696083396387198317036173317778984344072838630177090542518320774713299796013273995828080808233829219737995250314781332575853797287783090916332679236762107652453736896392227276293026197833275677189168867255311075120378627578355827744402212096766171830305876671120749280282943688331056928723242635150717143428109801729886956825080268724461748761735091779006249086136242595288526926674220143894793207041195912902922137684905450673662552080520802023456948485354043610139176090945503349472632423432576254836568702365189876612148667922424488045737687644078217625715025734931682062833057417637269477363792402816614872996977889418611213650889822427744801483507599468101701853253375527864952239604276167643131189211855366929623902200192093740802337658802526224086950294723392266818703791983466045938538052829761728434935016049546965177805938383063069839360157035917253602150656672183839782171950720011060403506782424269735335296715883220931677547070816439836761907779501078489065638804737233702608102215646514662596325523808674478918415415218343732854715776619148351433289051623132332999613531971610482751357478376726895838928837250417748758771589225834919650192445353421440971656628282046354090802871353312248581264780810479005256441865686094698618234114747086392727066823561631289049787206316853638499914256397632563432785059805354087015929418530842655662742004002659167198178742903605609578923908927111793853141444292081244293802055126487695628439194223277385556873724831395338164047705564945928730827742943767384555918413417330720547471562474823492812499122348734841383514667491466547301185429729032097702352173116508161109708550695757618846484704164803201291043124156997286824661548265969915159749550114288244238555220824987267726741204454586361479372339081290269379503052809140761485104132755597625936408625236604842611994179178860851714091697109862466835302609340770266851583719715297397985221321474874592451563998320269094546419410292111677697158732335415594576398972303079829447030732922839577947778942469936166465425891938550674134537185217783860710362269680132847632914488004070775282703988460343987765237333129134780512176478419093718916607316278336995195038277178427698145102664629759401428501908846778175876269540814994827948278823490727386031818024165024342019430452769367386951396483499506850794979842708501153873520876331926534378677793630468112628720984538240035775665732615426263260007109560735926831728609156145804871528387629897128155486611766505748203418042982853685903441697294560351326257479417132746400262708533640444616999405249251712097699463248229264640513204681690817103471992170019927790702745888086643046077895729510753769014835749771138408756523756595490923808031362013390253664748844773882231709375641577390396837394019040796272487471685437796590370919751727377084417653004723753178870172547437792187180267082142818190881188120672047959052672820590650837148516622356241119372087364323535597775584913234692340272146646619163247418154783191327789877764975090568975131608223391338401391811039204062674418287172476323062625368000842488957055842357607400157722464963305157569897828894809332866723237392369264502956045533114026695705721806534065098094921773256422150171078213766533028929504821657699641991074942622835536920074821646371872893720487919513925282409495840996395622641773561402336702571148573777542391300041357702311355057936426869707119068944578273736065906648437171234017902160960368006611441903292828563447695029954771237127114852821822495527490894678070319701630941572148756408527439676341293519796789477348376599429559242613116274099883617907755840713234527280273855463879985434546566352519995957177343788978183151240047110922993587990558895765479580685226077499370343892529704265214597849910267559099690059125189111047502012735245839704226881470511693188526845063598162646842539584855637533073161426939298548620810038297149054244700181226206279218246668693616501095445296772561241882981963472408402887720412015951941405638245262565021785252955161152780749909062506318671991358768096029559217704262888037459292559445106415594657453467520568513311039910456508209844338773775977255832083627243682262412739420669955267908305171090593046386531606186988930115532060885763690176710974814780913387906147283232148883620206242927761349261570084648939425814222067208643493997683898213403145565746204704882939783864777026308958949742155675754019576879631491214727798893005743802554439727507539089175961888936554637695450090585409246993237811576173758264489462150781452181001477401109928172688915751129575267164380918853908092631565422731021928203631507899073347253759824980010833290020651025754948815090459137958980857743755138935815465878028905167479279579077874363681218993022961358860720692505161779560152406610246267137445935297920522266808754221375332013194743252343715546522351179868270781905599818809135514526200656506681984766052127437697118415246675100300559837262868843317186560420895197296402343353198199848715387865105473804790137578968732083776676531816170121374236609998718770228030502045763982410562897385172861598545186270809905380838333861389894615320315141800335463753757669569513906248297548593605550844751452507554461218691414433721345702775634896695071562283286115616872843332556966885896666642465909864566273965584125667569378311579410809341255859005988087119989103624542316501100645614436540881752781339691836291878356613837737972599036205828565086932010128924166969944792860786737512887253871555521455362182195370318548930135789502723542080303477815836400628954602267081009817952419006320430331622644406292927456920564302361696592202225357321547778955007652464411848083977209942152242422836889342865581309991265578991187779991124329918698385773179196818012667106908361891165731702178368625004036521989984060450165283359640480103210208182703237847753706860573690362749723315028493610779231679584989007371866782380563988567975561749885403395698631154106739716187481243335657663901579740646599473809812657351688485432962980849011090435391808573840528021398947026903288442002510994110089228290904175621914593178439510047320595320404634534867132679281109774803829543991986308092779668355497466277354491952437921874709145587000254890973583525409003395194636550277002066809382803596437343190421179836865787888265698997092613106406833971151170333255411374784728640028907317483237651387768586026820336298055622495052566339644899122620872235766526400370790141302908605851329849055706057738139151775735284801147189107029019271540249646318429301160855463213605852185628183867993031981770253785833157613653145724767969868643537461243988777377495448965015264140385910126940115449585338015958279224049525831959933663871507942970454212372600172726334210416881025768101545898627042134150721669544873740642956292149209694923626925548955282543798450020960806856538788823146483248164311478949287951025098610099264523158817218653767366577318432557395280502417012345655377648340444310566756893379237366280472964525971327035311726595097953201990191615270739914045449797409893520384360696829314645267949754408391929972305983810269510340734929547581395037490851610184319118970054445134987918247510574812261618733582112646063195979552978216918754572234288866802473708230394739186321218250091550753444323760274935228881823155401069462973472340406353636925561574966273629553306769695613704845184946382521241096671311726728907230404961995525858901749791442719331196308473814072323424531102623784540377038711706055506012103823113030840998371758440697747708158267432710574577927459000580476602687365310263193061398660993002005843466368398220370415825949033876332361802057874200869596699423678135481591392068164718417155677979038733797690611710787559453619261314198024952821858680297649357662618445918615095991753558493687013069856374346107114859894769684349919929980581426987946752053669377053302063237496128049400328650535642795766073449106262782776345197140658419094604543997581072516768661708226815065505677020732108547021706539578333988296923092773811866098865959574691062826594165523387359777752757989719627891674455880106912229354908259686067098644661554046110087907259715172141700995225769945470051945754455674370537124582161304533544882253623988976986446045191862870670471372945004294346184789454294245120584026869876694472155488734218798888906141091418076365451579057746160205782177349779660202253026873506656102001917260643275568065983639354688872153190347157589298719702650229239945428405138843969910709956455135697607432257918130748042488450379149422956059652463757204379530196872625875649175463028956017832778290585302904114915971962436242193807495573007214218869752861425713397142677251134936897229054588174528515700364568591856963131860736441640874743635952588934794000446007441488915641652445620957334771085231252806953408138684770943263709865126706865712373490978339299384580546933772673183841747663853730401998555034450777259673001830573525188766543767421603703840463826854490346207948821764044207354167668133900013916816759216303593035107060228054380821758006648143761581427136843528309874350871498656225252649958754280390349846333323782088526695723852761171135786281427110309628220383933032704003717876922645495474187429940935318572756831492417893168537471334522426667727009109353837050613087444431126797493415560512181248075434566845778129940765459959452048526238506106689966562572180491259040198144136418688219300537192220645599583507956234804025169982409273985485201345536732315372817695697886833665919614766641087018758903634660216878878856959510157143461178750429692565850705314210753167219557836596828514026400791687259891237308059268992295281964315552333958672517951026011733190285710342203972417051397931039179446724576724970595451908016485384306971713232716506465761965897457321722417311464782130817571518820963017880100677270644669890771484829602235063453350195958458869625003896854139925383781805943043551691286394480741383306539266867964175809226635016490916114118399662311587674497660037173832429113739222040450107379072174666118475196931912660582669115264504256192290695139914334829618950435645772669013178777963991629016954032241379705244436652848880345757873137087743677427503403934092807202063091733863638768751417786542200320613394843014389295073408200447748063097613435855870052819299462601172465933097304529199467175990851205266451056230260278151042872180318291355011810738167122435552232438690878230845138607496287431635356143504284984658495348969706434815825153541370082053232460490725157846445613206512894244293660025940736831531669744899459720810336208979052354852581820911004861485468596491003621551337974211229563492981250098253180017083423037359926124692100011401759790945926869925820613207446327459804008461764004296241177350106588030037706711809379157397336591552745918526969534731176149439834301160576049951202608282721060265533696201879850336306225956914686659788669041466118833507002015273998553356827431858706102531962198368684821245827342319056646304150705672845555921471882433848740269593079347621317727406233927233683000393115986917861228254105362225990826934781978151922715420968289234990922990016403523321429030768771032203302565681008203919425968494151399453566796294418392173997948948641916218974410348181655435827568629940635828434795049974413019814884569084777086515622713560205576152724171244199663491612202605516948648779677213384431544627194167475819171024167803877884670695344344785149107089068275513996138929850738625087705632519366155901413383139820130492942260608310643007520623623448138245868556522576486208348963306530167208780999792602717748768089787428362920910802083449240923629020074854492954082371677254032426943627171034090282133408898192725283481590806955043492547951351817105003081982379477805117194888394452439184078049013413794207065347689426547599456215937801022962210013854975739647533204614558508118554677378310490577521737664374601612401260201001846113470607956318634608768227462133618295324018757140799789243444337684349120567750109467923075473655334279808961240694374562311330277343741404167175008296691486177903870199157787566533956933075510087210086678202703643990359126821714159115879997468927552548601090698824977822217119471918723034916234318723891005170830218344878499126253438412277748758172078746702054858697280804586088228003691210993505493125957616699697591949116483442507036046016920582324776891670436721932676642658598576923000206737057410782156994378683710062526052696246077183405125424051835649240454671341267562882245484289426318849490260473191459957596258508533793533005840160996051748593411580629167188539061010717380437154158414944545739572762413101797195505284903191505516095616762533768283911733609781716961208571891991150096929427160831145478535008331021141199317428180776250508008764697921070728056940113113039033972038392510523838523763728765497747915746289426644505636126398062896412273041388574735526540353963755966427477288488421242283038520814578592968929506018813530838377636175822931017251452662970907948117948927664863694047356834745983266637398292489432805495192000558735507307950208273758680095734933067085741638118828956736244870232805375527075295523346141049868458280939167733213389364009207774133940560354659220149174175303926382804102056639538232411531912859754179270182556147702001648166272946671040444963664866802536945990995965956226621048856718461252841914727143355372582055700750897963777482820983548014610684013806278560682741393848880361642429407992714891759775387637309056461955243430220527911890391792106681180521467649520996134337970150515768948307874351940561254249269670637430833513673034712529931695150490824105072185972268804492043216826406592932000895882200113610177714953918272135004980061011664553274094887402569445354222626856071688842973161718595971184043983763036219791562868004598530353578850809869065827339645838595427915704818799076995025304464474726179642804562297029799066788571727496641144908860998859695582722166163241410480075919936740509712236703660385121296040106860959116681576031813281407773175922181043890347685910953904822829420358459194082812927523400383613556137908670682927057483324104882802055408003801304447592629353673483315781275141747385483520827182641491742366996946719916189348563880365869493811090510055185126951259820808255740813996958785954361883784258996651173867965253154015559179678122156342695312237985797197712023996108024667318850978691958926072253115744836842284555461239296224295516080387152627965988022175227789871220578180440803702410967830547179210357617379193783760684077799079402440379366152718859147330045564770506104896990275688134275940370354224034568993949303191502101114747000706972015257708615415973637920291129361355205603034996876105263979508556150779713730575586515274080831080381762603500643425384320065699199907129436871524215051392501154756850543589874774034182004847443065628472468982831333627544176454740956525022126960116901285741696838107766196108131496803563580878716533680679289471847813420159372901994944140492273345635204171482974248265835957492957435221182514546747903993675939209684360792530262860222865834843435467437586287671792147532946165916927812445484819442437762035989138651248002200114213979182263484593742489116005580405483580782822882413866813787176951644837709837249690311375876733475493049157194246844650263692014533584458005962751085949339473248943091819549417742481791208713652126128596975521505875680445856689094891953743681265339475397500916087253034403269734594631109606790092866999591397340592273844758753728363306597493614072314470276273481542352880785663524711119287751113773584063167683379306547542374500309479412429052093455326273134388144525956015956838376009734883715208620226113291430568994036134402422334642573414376824395008527051963100081177768985192758447290639003685299195331563462919976746701265798856647169698138826668143040623060368837871727134944954920927308864563742723221815432771749313509145629729064937533047150184189633965701742612633511661047328546014944497467730979545332163234787359247941506176125908637223220029478061294956102627251172751066203627280780110368073682919102858394641294203261915225838128433350835704861503685022820669570569821268777300727343077529687615888537992500632591388093901222386759106982698475587519253842897332551661650630428517130515589115898971860012550063361642179910504492269367025285741751317033472441814062228221124926445020996143565392475981829958028228184023950037622382260188679671599293188579317331867968545180232789909588751990963987736566322550759216132891123718503622818254276671800674189137848836088118629259311923082669249023267682657342569449751352566481499183344981443960447365866665265855442018560632444117642930240752869884878830500489015830789306650376605859019718159290139460867921385001088492903348280385576659736501996363540634470902832489974045995002934055077428609342547688754819674062780778139031310590170164178468468422220233434961308921340696119322309010141185926281367003010862742966419402693024631724356496596735463604379625649789998209173098926662140145682214158183794684972888819297679661003812005118618442500926759813667019294073253805031340521286115420626875133629512803863420548246107855662369462000017293196924348080574844923622996658056572269236927252450820871651862065864021813319621745459960671334162393718866896223990815080903768616361302919220495119697047421527796396807630623601356730135080701979305291390723863707523217449391631846472497835025427919239661913928839049919751925821620719832624234395072259774612704892017415705724828630965659808004436321960862151954671225114406029293119000134015956880285754353950357481372665767100306454729697671389967601440167494958606772286692436173240688229334425065116241138094136090663390738380367797854536328619880136014135387463807214633956984862215734529251495576789344543290164640203823335819903317520439810383098108868640808101789621405626632796329265850583449194096199148075436800736119915358653920971351940603361724205827321112752637661502643469908676965480252663705139163827993629693047479068305791068152269007635137039719610322454027132820714606432332611058988952286086740246852271539886839941680071278529277189481302878594653714523984412500603920717541919867943065698170959650578439004760759850013503940279890367225470592533827311165690846351129861580363159237392061410176304698421290120461819131603559868150790556979894229060155995466445414082007599885480455372455233040197330246392050418608191797159876256002506491937675783615836620113818797411093381513103620668361733001576339932010286573983146850161609474906697905008568797263806019308104183268044038196135655734116007924806377536011816291684651475894552871470764516406059314641283986749624151341934149837698413865096191846269490884477683988029366146386559460459389907280086379607956785729679976228369489142875889794975872992176740473682666589174570528007306881258182543624957438185193369151290603199069927096632192344456543676041159477523677279091751896844103318053525548946178238547524619440429077729452828681176356662831920996912633807666155426129486020830984824381006286852657935714970399408291317368780892260913113599837813076435931167013650401999008597554035893743422342240214995680672561138645213751424208473873122896414246803686613951281109662951105485311243011631421089255856605985925522707925173762007111735596048532217734930069842114481532638010368480516247634305278436479218932921495167970215345328926185060531582977615998970049907880910682291032127650526648247633650772147806657289747812684821731566330580281612449704845688946477311360850054636195328654527482130021221934098713561926955186592978041241415789177278678297496944329056438196371222366195239560092366808875382895718765416366535893376829787454662610685611053556635580614930115462874356525962276725681894292809371100617526331102110693982917700617195639141542335529698304438978118070659488871797104117734650739852908748101216421096965449702039892279112051427805347997162072231666294571618731172827185848790085676870766688819210872579091996572740649331607565749324903527740285964823190448391675361027918974642628689816582495387986861086477766208806187106207009930806978199419130889067735213379687553834185363073082823440507293282796291401538433637443152817123370246157523554464982412456300673812003107227653292100984959187077539856430199743382727901576313307351803045988479759850772608888956633915156486641228120578353339605982342850545419573404256141832517694546512258331870801739566796101927082553074746232063717593285571694203289371420100751567987869472056103641862834345399777694013293958038843316944308241532793574959819668976326542038186138129557914127436785566500800020939768411517203659593562938169335205085670663099612092028802777964025828316796454410066043273199462951277130745158492727012673415500853544603967331610473563485063411938529653452025376203427969734290009311705781719631548450555320371589146149864048291337635369859231909412180297583015359917355883724201974636803485853554041257553307014105851737350836519658510564643634833893228973829324083995184360884619253379230847475779970080855036633158610917772450402328981051049577128094862651607836160761600885184517160761330908807116688082740185970138003118546293850177523918541771085757972255157883201905235396705212173130665126422942167505526226454076659067218692912696975950592266002283312829151962738666798025332020267777536602600735286051463580251249651051101008453090487935752424083578895432046448773361622666810741583275591137547430520260694350441412734373316126287536162343531648646146551096373677914798625032556279100593033581173638906934138999504992454039362579989953101348335770915749610439597555813692733254711171543664600260703797313759767498787332519775327326891716289633130697111742074572849339856580306839244639460463607757567318408344903163668275705397448963847695618219043474868803242685466870116743604658436290075583071285273611613698860081900093294698092917783952949925418471121673419103507082231244182240746698373501824246095066294330241473485304740235765831555105763061966301236002548422753827170079631734378158427093625966759760982606409654038226079573100492654459169516147293336307990720931684373185807046994443750065015529982042298053569104884907279030815300963919862123542899720778390025591166909520597653171461517178939461209977417801989483218027928841431675546439540279886229117375185548015704672275102719937954618827196828444128481413739589773126198002049036473920723786688596209724611729206638463640022103253971536184906671067045572731015221860411520996584714620108212285592851492266008041803127943669860605078540242647166909394750564737825397052247490647996955000906314960214965098529893607339806430860667613394135067403272950148923688468019665509212644273675207017515266628745778984864430373657537626129395493847741271196713004101094592701494284664806444499829449796887256447571168871185712656463147145896222157871658515658084042263861187137357208175287707905171060780437538864195922942932961124006249846612081512718522036860451806277639471104855943317793417836955402650735945082797839971302103190741859058908221883374243969380254764996524348356044536718667574870266903989501829410535790440508009920715212858213963994926482989698138723810025489859529093281535301127831342180346300301884907981779839420444723219458494530464620612678772880612812593236945457531348285290455553053613612218679854201818381978524523585693972989497909256214118047937059662011934967450898968166221857907852548447467029967590059782251023615357663504177821988288855234020376312665816177445168790209612215640456328672784609534910772742406909855992243396847172144102638808165331558344291002301705636147754005135396232150224291757935692638015818563278404931353104465351463569776282728363774363771097792316026457312687772394874078660478134421026303626678145197823486434285575313078267458181386164123412620788243474685797057940471879844811300515645725835159472876940190505660767005924465038742651163158112704888980270312046352308219876065516271143171052266550712724890898063183172359575327852539641936761731004088017676966949770826971115741515068503048943013352251783811208020997547660817250249081832231711952328263143774792827019795213584589213608579886780988427695202702529969839475191578284926549813518787190732707566352866768722869585344474783516629519814467791261729508049168318590176873987479851538676258114237401415021081469823980294602995052955590312529134641735000991552985064479602460586893411166920651524962990299442828616230498419822623939072452743227157173013915086680775885343009021242479481591763327953642563043956559802962280386180825181369238185047183175905577507530473991355745756524235239536394769538987779095376479833567267459901445371457096630225810787689069269878935392747761100062249063008755441865814062007205767132787203565165695453191786843823147786654648962432299105935748713020810412424330383619864916585783329878515222983530347083226991502293194290358659971009602895714095308541881995887410915410068607108841504675155130172954821372493083823238229583969868285808809290433713452396964914205138391323304352773297375220986632913648441524291170097821498534966399122530635629028948535877623985342309805701154731470633552406520553968837425837593356124551911896572103995915797558113756279960490199448133251267410876789143021736471741516307657302101656470611205416793571083321816319010936730595140604870758611985835906797738386359325867311290490353084109632427058319072616971495732672810293048385783988042747386894713170612952416205517507519822911539080512505570352367596283926583149309671770437341159949833955006699869370818257559176634612445656586305688918638703111072935070452789877715400808211021214224393092747220624686728684515698937211617960623957008890400939249105505342129891717687850464843245727822839523230643535726233806110476507108185002374719961879688574316425950507833390945292340629255842221797211949857191266397812277901296811770621012513477998225334777171356501417106055721350756488386252311589173556281052684448484280633765855261481714262709478653350241417252557487456450367756983395970547544884460932965459632028959765841934066613208286536478553683980196660771449999730941227740902904234736091396927036709783658482115423901418676436627348756023834689977394083652089674856905932334272541751253489422964488485614531895166183711320443376215828836006304674850054237342874038310503029037384837862258647035197453554170198292470167862448358025487688271380551077201980894059658553566515108151081240933864117356561707504653616717313886707238373145272135084284749033015101611667295017381423195132327230428392702698674593083746613876069373653493530981067215620950267794939419669575846532761013453251893402068747906768518123535900048944940878322071620373161643469598418911891999716396248866797516100907092187731455475728971601478182868505722233055592061240896526825823105306167030164471859086110484322675396059119806014533373425899101494255447122595674170615265194239722450268981036210074655713549417295859582083379200973122071619545865712363621476889198367912568779674727854922791832035397159574528351200524790332053663467198515379765643634052258359323899616783494701445195550763731051942132381267861989995415011248025399082133378207743438623341890196712516611437864835427566070338954463487907533762430732464123459894516231333207297039752020651043283089165128022610793109948875290516857828778016221416209968251529771011013854109235903154026880278329377542578839310624529908155796740484027438129939678188497865613018374943603224410757866110136271211405819374619258482960872158891607299971892348773637825019933922529387346326120960703443347185392117901099940992633054646300538950006743155246484657458973611758188322670203171576887358012170379470508119893535022243229816287746852283106776561144548390512895798858269421411635067338809561856264010396074923997672826127358787773153185607000240161428437306981540405418906523187219201060185074099668784518995368729152037680795609410579757544493340084020117227945028624265810698698197418575784943015634992804659334013538139298457522693242292371743728788013612971657126982760304914168364501847072472767624852279350113777888701901626800224544237091872548775571696713065503301214481456765978028019564868341179595460728131047936014860040618529511923961081876801363837172148826481746519797310968899957674310282219720280218053830695769934987904936469084714843617137060940486761510688369379698426336430568576985244729353133387643092267797108949435652205672660426619819295210263083589788447346132071206539537712853026720967919867599774698086703666330913262384205601399547421092185207825714511126308403808641999758608814569266231477851027247631431841449631537180861879181113562905320580010287092743433594056416541322898215745770301778438495093523486290598648742060453128035915243096795026322826830619422001833376499679321616129274412171305711629882584750686799359206471316301070839114041990797801333427049251801742772531254188430868806009982511450008262695077111856933479367325224811862116515934552746402604715013177197010238345306013136734288612660540174610100991478832077592476951939103396765418441714756444235248396818555175187217149022279292660656833677107102275509118881635622721750873605769957187947501486225433391478532943605345875560967777468334006128614671501336123625697695457691330406659943658157046562831431853884991376855761721871884911915332052317881203668672376544560633867518007945677387687279625983755839647239744849673318266878758370679099262559247632806984538784404875927732813985983461177744116242524016393273084662642517455337300104783697451567454142839499550089108540400123213034206260692167345594928598526058102669648419489936442529869590609564710861593472828935281410607780081655842790398323213361259182525798824142660693541280173950420481004198481310652049710488410600882397653194061161216336693488901356188927677944188658920117665399821976121649849596252188778640891466176782936101008661588001093279869982329131877210767936786249209413188884031262748943400538461175265652946581989485908744020100897503127830525433893846488199569773413731805153918110578539239371184743555186362127562617055356288338052354714555296894363130894399346849214534326447764558691501813482251323203648470931576040225627019413529499840246232309982056555117767679434144619989894015202936276924265425185522866699286149695320425508519572290321160720869458596091398350889431980277175817239765209463379778623372069706205238403856480762063669037685703541457320203832007631694073385652953630396802355426083115434719423661390201120658577884802573482282911107027324777974331510415839857892310194379222053032285498348593545203123425171616006916479232312223300255952182113931884676730204678968610262657807294983159158635112772071325252448226265096327456529776343982409033962101348977407009494069856940691132861549687598677058790126029989292093726908787072265314994464725926787516028252775133174042519561776593500191558847894502003442894252774567094197794092683800532506118145067291961083410853278332306083482717246652897184162894052191697703175014446511644099139357935817177298585250341875704664746456314498569195379343560244961119211514824641128066019067516256749454380682083206668969350038344345168606980233664882580184212855495284715782916398439538106897692544687452819763293240489707599550540335457705006112576530200644912631294465691671569914015851156560827404362076739273818699371600936042465383540286461326517775255965047029101704859634234792427111015948751922885524664810236658541791127156447624949136584007806923899007136862883512733086533046085020853723233532609107901530662522320876650831917637746297139825941789911384347403299183799362519858891773084325793669123146338085925400627505841851074513178667736682288709898208271959674140705297176413931533766426367797887343357847913710358206849779196107675253971310452998943425417288706718722213231457891143789564107253627775762920325580699629472391962190082881503040939906911424556740724935974272656963757858108073959982472780245588786543893794987603602079499517708591955541304057571379582550345208560227229836554147833340322946259697654039104396635642868287564337077972432289652513271800871895446659680144691524531063448452878022233577894854052062052564414995734871103463513498039853300211326168370598056553043258833006970408687602108069394550316154678377516832272152883472414073879504656032355849351831003098045218834554981491586756460703699855513758819191760683496608372515802083108229720613438366897407207020516544688237574746155711850112225357588889771859572599639848337487808854160244851187075875148181859937899798290994812098230847630230191157275398904907093248875916498514627286388392533452588718701633324635440394241935877817655101237195414044941702227875029743164532565659650845640753067668820038998578742415760964039821557800188070415073992297458007309245428198408950570953229836416068009449671173148562449917270619129192892980312149015501629181612297132455375349307874200132765574910078526294611212351456928215785178651757721040434145294118610805737391082549749246280397845293697545789300442098987440823891467917586895244571666347881365374200913112530775655205821086205348907357424958383222578113485768486806570853001637488500864651992701536030596605126014508438718034604589085038026924338007871602473383036378277868453205946575261756067894074297993401045363220060203695137802209605998072065088313536811659371401467874124097620366880053173596756425758835903992491534807360873188827431058509999854504949687514170366046420906476728276712967946718331139841148386446472786171968228647732889144234597804970702041254020627314829324516377728513211735252693803016219490544261152849060384494820399444740018263916045916229539343491805518631324010664660067796909915396798809700119254521822326600788333393159412871911415396621435717587888886874800987732516843459091159859492223005289632007794987691739046092138858095386781753766181200643833226470940966690751826121000818859585061624527359254335312631693344034110662513868994097657653139539613185851960030543905445709280064006005955968423407248935515450827174976531776324256225813428845803178005398342078739372056423772169650301785341241198457223599125623636452030814503172136192524899765303815711255283928863957911867032734729866113159660190826652801860979589551269558097013405808931182825073748084108193099176953356457797324942942398528980985746355194867888099966226320761809784003270250130747368155160750420075904309003969857943035930994967176786470164030398531195153115634789071789517269165613129535587092159123790960387691926282524475858228005296690004982085803236927188711305399854797250093234453471652873627104621000482263422570666584818700467967577097866267743988935321214925666873300103870187771018902015190938256880719063605263608372562155046175289010590931626460871613641795363782726052171535606506794711367621790726345149154834477308315213494049047717550286734496858381413428556556592833017503699030061575566471134955075818820683810016089082411739679647219099923793719432798361832189982755844859098490661299087734129129810252189055220096017948491839210225900041339022572693077123212085683141285474849960199386504730310817803984952979704434331319359596267429247869321827329965617524142416450577686961656331373185351066169096602788407503691308063321443290241826811288260666561345786720485942725076396340829431008808735075685825176274475854528101193386153213981967780660121923552772489179467040311929257933637352758757962094832625448375550771723460497611050959563910715066546078676813598045334140235107545331280075307334723090824314064586566887931923777134780775224089378392682369890587377106107137718883247471642093148619672821734019719711298216591953787996487764112194169185221776249985080157775436213350523363222272977798632631153493685718512850749130256365857175711798806396670339842763617120993100070321359821813199752069106576577485265255465984321582841259952374439579906547163207654014629803431791175450271317572711479399937455109339084612402409047730633825339875092160317912068142374940391828337245706092542449148524070391603684865242711461207166834362110966390089534805187518057392494820494313065032236042969304627636393622088265125642016514400484666585041356457481625908489458347694023079729021236127693015883555708938722275046224878872848183332665058447936714726234744284147439138333436100031438780672874033493958696386966694392127696705803817023446803408465901089564874539514792227228867242560335623840016637620463309132087098173811688497111499814309239252498627631655513174896472299554510650174509254932320781678000395482363737014492264156115942856834543823922824107119917691326029184212024575160535556396517142456131850802442445075946670905026272261730373551738091033988891489235476019731430414312613769024809178897685099830360207169108469910179077264842780774359035144276061830678740086203189487254669534244170484177340639591431696463506222156631247222405345325614207931884599466695504747805784536768349403262145438678345240949324044535557491878845641981043880353573893183788343567316107108798198792691423516537541219229288437797057174106296639879673813409564920498309838271693334144022451562458018965187890871693150439797558470879832781950953932466858213901584776515208404626823071216038658617778649944500997113888397712596574826537857340195828724194069975184982289294697163789322489765904353925241469181173752518216460147502054160966062772186873890555318565726930209725316614246034812923390928553720463021780419745902006965829982253993468779933137511243933119467315789939502862291504098958021761345506650731172713009773831268970900307285294300432458940794798269292091029095944437332878640385662312235339855947419488751479680875617182657798059064677417803264212626986581086289774902744654480360586223396887491496694370081479793719200215384924123236667121242392874212680199090748790130192050062933281399233321996867951570130305737215764807249566742348429009963276402489223965967936584193555767800826493955472708639934333325164408362735250895721921099263729346551639130267992874260859902753816618970166073086362922441245314577467134705400954845500721284361283894210643298203273518440891745748386198433148702572952919181604608143335235046246475147176239218934826841466249269424569980873830057448639085897729606947648498672450347640321785987312590562291693491483076563417162677587914780427654007034753743705591332918456667948015501251061273201760794292982675922292174012463002589893590014138426412432077151376910647393006921632447183623576087292856318741265243168983797708626573133711757362997604572509830806289603854839329618116114531138627817965822953118917525920875014717545280638525913168042751439515687604470685358991475800714417985113422962192719899905497171388631503482883816701531176937167680306874886195344629226866302022160908919727044825108717293861828460774752427321294507785039823080092506621172342548534222496211619864178569232563633077267974814018731047871809910869522258122962280608621262002479090562144301073158850376977453935079251744386396913330978014206914652914077742724595478428885703523194664034703469732779417115025602573890445514792983918158172904375838334713885400425057654031927675915921225574185958394770058039789508751648808986141778075183035214547151871565211966149774292071626698845250468066404999564481598556288417057797054761018908362591008694125004864846510847762865880834308024162901302075608429916958981150560194321185630302765035479599476474110626788412467890673975777899352586845128174684625325433581194195919091835340467812261285728729252984210992612280922479125906456713621070039686238250946309550598182427210075109765818178341981242495801031781207875967215701758217864044531137595810997478527419531130040104790141931704771099475826222039822626873358761055200592650400740071708959785871216003971116123255688658407678423463377572152733783975243023862919168018498543135635965973817906710908590185077566524780903621631086418706775976105161520744532078303053881760051109086445477899509349343228683768718649770232315317929261191202919079415078892116046826121916473254208411908118882823712769672905526938848423489422204601174873692762545842890885814243610226623471447048581753255498972165836543569793067766341142956056037945685431923743445425754686486207747431869491313707029700811261984610541942527418850440908548040862993660945214444712560251771326266207857373591593556402096517959297538953906990632936948786839278490060178428709804941328745434781025194514903977950031116386659322981866465863196492380814038012292923236627120518795892724863284153830533949240960526022711107022832890350822421587777863036623344425166080952991514387055485120722130234403211880218980279738926939936851767000126800322996269813935970958231079310918939862005372806514779834676425094064382816115874153830766926793588395781150397442005846432197392004878374027555100779008264798503156240827171996937980646114357486472294339672487377901005753784219736131099002188726035160491167786495711573566494179707307457995106803571036961497971767194858915954821210431056733525366751950868350388801038151968218350606396792735019727727405134585392118931548992496613978264398653778937667601577071115862067710928102987426269520900240115752360658272078551883715523252005355065536094030976361307747184763967272800335914443867564747445186749923553830701297633091384226284948832685923905931917385316945420660544112566303692021460925181524124917145915199251113264192171175773250991390968039358786175872347187947215316547574963315407666093079728864489643776158039505319574611121503335740655779958755653972498613235759442999376703881675974156087258911652677079734456758524085183283792171455850187437815155198241445190620782263080185655701918245592440311584692856079731328013209557988982148973220928024107613967745958905454995750275297561081824094182409536400159926551871732559753695044272342066273857730923077433764195392262042675069181757764602357657755770449600817723034321160313274899413985464809761042032951729152471456419961254182068895261937597692060237938193557099055855364588029189879035768193607654480751976493809213287076616563191052679755328593987564538127669506566001429921781027218379871017063256570482910783570420558016266351878636165483611525562771949097194241442831611216807878787641496160255511724848908975881734874014923322380302495411620379161388819228537647007364280349810680859410412265840275899067379117683718865909700496529806889256437890222583986619042279834958428276192625352223116683556224428185450496801862697503931693581951995986032203735940525878966746365504886643328514554222231384958798299544243044669216752264067064377157803601824375814432367563954631282363499581871445533558451573231966253013733485648470955627975556057944370892289671876828041258220941565658105931224154577225912796012776748141698351984535084263691107561412544303740345608430471336407194394700849140349079106963862546628802208133903278453059110387944621853747774863898166091002426992935951481908696453879240862578868067273797053262066078592265870689085298366743229162647939697543099308718284078863202493926262983803009283968434626917933774754589369082139917208507464916445130547529809914135159166966894298045301138305107898492387120749735454326916188829927120904191717748931987172730675987550946007288648456630953560015963885040928098906551703704252446168748342669733839566582027959757738469860877234939938855098601665813266262560689347049363309697233020427739403500210996969965852899227211081762978584747247124396030647603100498511687529989619179620517386623441797334750841416065700181040462605008384467785796251194089431721766656108738998729293164813680537647340751488882012264637531303135345648864651945483516450443285992015873587739169414773369884568821904950597982307589365147438225583445811456773339647919501853343593057997507432139224180465475094538733962071753532980746769616047667800281773823968711390152108810287544771096736828891626343734421790743448472509248982142532819337941420090143426204534894846113232483513613189551061497928926947094148394056662875238724756616345183181857236920035773632956387299701944401149068894089487509338287893317691402223780314898478529137044578551094986748775052029779856644113818013364430910203795951010506892858291572177999950568422031836808513675692644611358662592177971880600478443438885635490668113203575194004722818896028969790353820336398506004849149605338114119797943538823987526512134496476635581573718527227790460596287528562766761316244823113778858769064006543678797203812481513999415393783071646074394290697263419721042317214744208203624782258184989059041175055030873638322181522489342144124059436538375584328844081540745548451055823891726770246148894412409515000665814629736204430505883483312076993729181831154866060611534494467363433239031193547759518754836484608209976545367557817267316874625754154847376778503792957351934339268747111120998399221687154228815869187198955306259840703039565043308880046632814056444095743425012879469499132901765196076574723466964207011693365264955164994976800719608355201581355223233264131217605826065524565994911130301981711048903204729283361847225319792250808548486403382012895591109133869360979880131612615516057962157233868218321364682456482104841426712029107642127618521095064674044215944293232751145676614967281376943023162028893923356253485985021295734373763549883851449947766236242162033408122652205850498066137458429709958885283447740583159068788681451161693101226482003879466057731946365146836208935974760919535305839519941839341130640139035825448748348078261621265781066984069199427965972664054563654781025169542763540557084696512026785020714362924655141830918062259616920900602252369694373159007793178244640177726418525474167078059658810193096823543172244604789633068405549064057720934329679125243012819897156783911152168702061573121216541061529562994923261535130486152921101966500483414787783817271769160171815051962806307836105554696470095702673794731710455171095954357216771125012583453217231924809001385683858764803426051370702468454751279491879125455041812692657005332631469398684136701286666860428220428007981428319495634048959674978650665732207123251214913153379251315871476452489331994207626080644177078790856730742163031139951487031617640315942734218386302721956714834735289954508425950257765585349649070882960831849127413173530656013034891312551952257321283444647571525215553947088719078514352132847552131903853919733612210543418462674244498682493778882717835134887942480121752229226048108519261645792913040456199767593392776657165321890006272963492804986661677305636107890118835298885776572100381669932957512284454977807683972520073136851265772714394730873553198207886859593367318659089069114468003290155334379706349352962871678504527253415939086986977625522696287135394854009323635029233874853913440685860296675995150137329459250677917028145311500289414106058161039692246361630786859284582354558372262017433812659718742615316176722915940649312702141403522667137110121233373742677663907914366618215187241265025560171843671603622022497786812521222415411205653699002048187316651813043076093158682048076959447617068513642784376473995867443803489451308948062340336803486783616762140774878202655209134464227977674241959832686600960892176609910302600640873985135981942517716417727778391938307914625018197180437571547976425300536411049976382340044172797455770943888262730126053079596517344227257426593338847993250646561381536092866808572297307823477728775270463858638693796077538427447308460226067880004977617201782662643656552919002469842982780797185481302818411127438547942574796265858158626767435365624213013207604996463574923963257336651032668700956072457121126423666730025897885948890775219768513078528285402793851642238992344804621818463008205920436175900872336555506267253976857541830423331807641236818119232361025060517096081491591777336404443787971518393650875754025318820056838303370119231321964548314519196116409942591958507181475736135845360607424889739185561401067837503010894593517639036583485530585038925925000437499852597036497878429347469371964552358626584807742736880887556623300191354701341445458685275141214669206888654978362708209144539143935389817909267941905881452218802072661984280241233299614546991456012765936353727594193361470075440504678339548155358554206334811543074252064444323030762105410158279817078816212111568824816351862867321997116970429981316317590123662595869922833048959616882725767713288113388721836483178638341494466636894586165972091687758943022923265866451434930604856866060977815011546675097741580344433753784997927487727187327775647507726679194221730490450664291438907370540019523881789462598726383850098618380957821731958827633248048335379893792755309534016820131199894542933632285441466637894374591029982546630818967604420864977692404724137699771842666584677745805468845897044510271674379644704902273920121016702902629515185792735764279149529567803817677597064284424616118097248902892772912601875866235626636176616063542503464174681585922049068006956909033750885410607080800721451342067960950589766527348327596952818315015148157821669638433405810877583124940191747873611273875348505318712800216231176932627475062213782483539621122283182623100587074198068422046395851252569441851468830369369403899411200027435067865175472723070275645163662026681215218275072030279643279480906014629259390605505984626792069796781653493742726693358460456252518439423623663398021488289599102391785196337457804097341410395062395627878869611097187549522126826496335376323945127461445829508851008486129731728724846226822215114693327948349048453764297493743554320830606428680255098788947888373545691603080901144901932474087217089744651889611141119412601568107815145427746730105374638816254997465757302420545422305860597766104617317218303621962168689658666636945872404449574142708137046262491061160591130324866613414837507052540224809611990532666498034648065482110197788270525124233876112265897216867749029796758782780184238757870801199760807699328787840596293980421047810434764074786891485675420249631719751247523197177205898476824987796276452860897888787162092094903918790173085714066212750296212690460630598803982433742291345655724945979425460654988960809176982198549387793228766089211122773156607600203672417703865436745509867828308411312862051385380342155161208319028317995459848076376439076470716706952905344626084651434342685718017380378058154730114774804168101725012187376035306883898106115918858180129078844736704592481866717946021144241432242326838525560245782962525063752625869628064650856704478652210259606935719483924159577909430937178969330392790009901308372264653198682773656852064386780662084622806950620382302253651654961221418325119107768553371067480074351931438408625138345471680392540643382906644118235444383030990532451842088679067257649795622838722431799382105184959985936880452561302461338078232490974689562964182200248417148213088331268559915213776901551834288153741151079678070933735463829197821364126300444413986685376037062300609280482805373879895480487067419988803445559998338379507832450124092733130149840387701901815679341177736855049451766571413734005890499467485030440161727794761472290081127291510314120544378407681093001913659804750226425428418584354945720586547693053964560197621482917167818666487702810359411874061864346267264588621117356611021410924868839950183718724685138596632220477994170880211777914906929971348712660205049950340403698662149983138046745244249430616102131718349693950575472211746492181836663594061928530875539310035341807425958939330750902395415573191787254280000004567594541875049224467913438351551028190116096180790194763288954861429755317936176074186288400627307148917220748971974757460062256850015516402307382712395719753482547405081063666800283028220035644032161092391901255472533714371097267019725519867037025232422664679284146920509543946215309742192027677645058736682613592522814839965076979061907233521220834826867971381030073554167364484729676053330498108022089859051959309179773797209425996061079716746992140445428952464086551499651714974487430635477920164354246096553249083678467496933699659043734693704566189346431011215211680552748666890127749372246799183209575807310087152964027170440983034911527389666783809511682306426657436851072266921558861267833582291170031324898016093656314242279190750414715428722373326614181111197165070814223751761907937767733603885022263554689923491043726899959170447397074649812336940472294028684309688885659766903890049053221860607143663960665271932445621269555619339291784536938954453391043690391502079521701452253086428362132749763415101384307775979606952351337344505133734027294919367386286084131644091673889959597511073551623419297324533671989069048851221836414024834208881753272716300384943051464235782045696986452968342702197348143422241138904820676430998838816745934739071466405031407201588779913621322046116954173676857850785062689479370409928381114913104097327762456239727570154681531455937212570691571659106715180506576490468422151186199972144617395002146718642521404899071676187430284804860451727022952508486808212921683753921086515081102029048896838702115422879908631560893631955004721427462288081829771343902114948730821946165085359041446177156459825519544821949002502300420172433615198375382041350021781801937427238335803589486381546491270588726954207696934923535216733263103866917885002550170445498377959943077031222975758678045874495804211126085715874578092517356334747481518961024862481220534844675939390962357850524584216194667920266798825118893881370421261771969952332751499035466861355037914818873565033584907616163132090384782370496405736425980853479720287671303753069349670552889131160749132212907235428531238595263035615709636296746815887402030940544580577021469295036509246238486529794929983688753507832066239634990522440703101845149670281000664775739148802016775878669813232190646838374736762950484159352225798207632729507465572810635042562095814040357589448816795211832262445510123647940722515473216167223153334490462844186559774797206218414364888408277286992903916316105397402276357728177060139352155624968467424083800923301259211312449167446372646725194358957187883035431927206665448487390063397865339091343053959767745282652571550534120426688629228000923731873374169080714768021809677259475420202535571457565091413439779477562392579985878909861410705244740360768760682764371794528426203358959541497155624218929927138086163221547471324633977058827244927424814589440411870204432576824810430062995214772165990927802838630808203221535854551053187272404150634416725669515287210143635852470689532143204176585320682485388131790721834091811026340744033318341306802598285887947215594214296741666386804680138021763106860606318323598857246142274483934201251894037074376370559198682889303365780782098265025511920347616442238449127811319084395671876103223607118066192356098585102794639894110758452780389974419808503872822119334528187869514204022444168650326705730945418335397395411841750944652274880257543600758394273575899974122748302720118090282645783692998112795155287123216517010942445845024383597877777626983205241927587454199487253734392149808099630286483902104088434114179239630980694560658929188203214065980920704395330473906300945258894445781092261845257636974539699851394997740296635524784198604244210156036910987006226988189325625286065711673794139540722418581688584205978443108643135299208625613106463419008214371281784008705629748201619299056435080601580238911073468754352574854175638299767836908878804900929860434783505703644314043513262662830206152437654752028495977935807869394765882072605434752259380364860239112659457081281924078419442121135684138337513652740108806500991740596552036786359541688662195793146689840090681763750819664897844083438294020805410468129796322976035661644460498563398949804379127031999802799837975480758892263196289382506908476689739469467335968107121398844536875698676826951065805693357284763032489418267240221868023160084053998979529148297752220067484791012146224340000381319828638494869759827389251027046495943004438762612584596518601981243937020674522835906432771352009579239549756430910238794095581362964562855784406347772674823649736098823531543979724693681384767501276970443461543805044661647207761567189182610433932867513652798609022936746247720116843737458359028384163698230638891122774305226996135768146391520873237061946079677016321095820910516627706693274430344701600298815957746511178146387426747456025693478924009454395691078593277573520656661858364584968090826502357881536472889864022823585456736523790712869210961513846050211023311601716217121305747519042366778819381777628609922336628269462912760272377470422386488910078111618779208353598500136215395993676294684100761997229469916348932609951734971983623414395006183167981404960752384898611197958931216340345296050424242685095367104463624410422262279847849071934019438529768155262704916417422638953560091404576854858008134854615115608805044959353001409858882831781885170844278097674537158541487999643085235445248490485916109226371339975867476042606198897355758205036388436756777975679364842883666274461466059619249096483520218179819813071277988942960577134316759226397864229864184292081288901245778997620984511307886322926700569855444934437237981714060595136696888198415720899651873027994630039155942396040833922346590552561190194663870561031947494916866046433694842406962587672865527620465577605654041261386070211400153174584276539171006976842514400075771041028668825782575873847279081637232886760511018610424954812984725009776172672069452792828618717921951481022074658363294829819868719742387864195703199898476890641663649992446614410966499561139820279772219659915834218122489679140216785891094251698686407826179576432582006651549872394278920546148527454978196716650822824328394283140707383739557065332767571278897123032749397550137511055899986984947288998810185338416772715441520281174657201442825850431558816041435274713912286104369169624910272396027055790385777114936876563228291362849882524920951448955252580757982852666291009820338621381187662232436549520329766272548476910527018183577237808291909105704066878290045969725629528334286153849904432165730727835157481320148313342486694650677839361263898191655596104344911723034564931762512040981538169684544456439631178658130785339288792130349513182487314026591245623062943824411653118128881484297099248355822917302012163607854512648641722489450077002642766499648802037895617862508363878016871817804126470431321113396948066376079155420483390844817349802082553411727253760220768791941797463769652606303895086661686187926854750279689992633738818785272887711413538170797629474660372240746183665636546857989735691761309917479352929727650308035837202905731633988745151842439416943998429848525785579160395199069511176212535468847843944603545173240046525934658359799198049348182203093588461745404302237895431268084640373790249066826121084787600675058679998682534264377811839845069661460926886859466667996416338945076018026651766774766409686289604239705256571242178281990490458936593958360747083817210037750827526085940477370675160357209906363961118487835842285573014065934914376501969552550244686042087273303294401961073367526542163317004752104772538786823097865093420574894525703619130940499570004193711306247405326967710119076503070405521832771908589490651686280269672487851839788445215485438174121402613344146936323053892651610483505674044110184576390258493631842250974326027665117130787082842228384753891456000204706037853515500662975805619820583793703002369078250313756925477858030965998260970796726395150418281119689213806231622590969794274398430070265913503864823550443003897533645626203007319700233158120103739282392569519523213313398202942615122585716447129922280235583578051015521189735845162213566896720419594694133251361429409943251650361758054938913739541160131644122187712651293994684526687430231098032559912926601808002270288822574009573562302186949762663862140254348801077479488346847784977525486279455866266350953802732508344457782789635275028830170704938651982973394962493305925101709088470483040690537239801737369171472446471724338649281699203587653993039143819013739793803546688455909771869113489680677575761559016859867095710594447681034819772835498844745306123178730734218393164349430472782392030928605611414168894451041499935003462747131493768269852489500551089434204539619743619886560853830300903921174777046534503673590391614521714055321211364149156650717450820017732562978568497962280630552574380600926356709944474788208874485465516585663920695301184200194388926298687273024054874322914568798807624636575573954590468371547098178568949360043121924132310978558345096297181867396967217055672129673899703949127299193501634894199343485844121451737653067963953462525400222679639974403970613372219817351153787102878816463623143413622310366629564902793413953385623052793988741149457851175923536560820066945424178267736135357927025353561954483133189826282090725041492858032181508609104015600281988485055598504623252290441621507273934427471026257533006712950752241896990088412332963440754837494435090588349314142803637078055587977271151381322382598647420864133754106860249290717256295015196706667624868583839872820801189233011177260953189169189398759106053881652889614595205380182789432121554136236494935896336131970164870216392580365745094403847404649748472051550321683900549886074424360231620778501384030746935355573926556157608569940728331357524594728510492504125651498976957992527551586467158797466418958398263704309629435072950937389943086037148726019506675973006015871809911538888337271990848137995742516209520945488897239081004682006155113279204433022686674444750833164164487933488040423624937261514783462949492231048462323954862404629208131353204375185131428302187496905918040933756565422626628792878214824325537954032771077740977603399546839405590682715669227516803804914144215779831803677324763741803551637939966352712158522813429830220983518790830041278149942204855319733588644033076316996960625055562739759347929758736271632228084257966257879052689405594570316580648926367794605046551024071320934127845956185162519559040415112921204510759843078309695488712669561597912786666255945971550581426781205817444936512844384117078492850083710303997992499370941169038846549311274419837345460954391203073447318705384809629137831002363117391164479832951244503528866590670468706066535101589845361540610291014048775048595869002801824284588500259898204074765500069304330171963583591404722526492017922708373014193155661994482513922428514293546807826112635572685809109698431235103749533067140892860572435963885040399597443541100181534347805602868983543765831254044321822370239173152771616917478377302883852295104277113449810261436503158517570934006123618867166164775523638939070460586903130537007962126043279118455088359477643076723590994601992871251024003854302004529215910725235485393107388829689912347692745340352019212575178287802724527431882996878747323382468214901710356357142353376748258441026146245076250631348188604971927016729636705154202288816971657820528972321612982522132416450526419123038724709961551209420745291920371328384276079502443157092726419941843041585450023351684950189754654227681737101572112406298750172243311792421908702721283281389418936627352470979610909571081097340176677399700225860202313599740049179469123562085809571433034049361727664004569314317120584651745159950188860404564370251497330717545752382629225666948340922343749875927533112636808834938710051302563276495887899060718642677097916729716508224267376478966025008406613018091849195237660738509017738598262655730073985667742962482720759669290870811313883531286416082859761245219220549971149894313499705005758621427799965118728161349420593859287925192852211469528907791374158934175049728343653501902537247323534210822213065482722210384561748757664240356917825247057239853062894655104676431729705299463824598798716341443160534086058510404261252878491683404146075975323295364655454958430426192858348565974872662075373426631487060040061798182182509314490097993063753738956462480296788867045651895951368577290848976322373521494762172013796705799950502105874561261810953322059143211556727398352902108675389800570733153977512523732238573227821630114169846377758545040480768468118710903082283570182615515592186165277102190902278868913583495935574814214738128347551618753165602183977274440657208596468010022825824171120919159318092074641515529379403939005072980990796886223773435580501148776325226131260030219608242087062816260066724276713813177833929225299299223252693120448740221981605778323415236880651629964762337739134704589333921590933871135382510154069284082981955396988416999971260240632069830854943992276719799938010534690434725052765574967793249441557620854870229135110351004682136108469246782762330769909707132023702309431126741297884919334912927354510826517188028146862062303457704581137788328045267948373053385149603305676185336437098783466609639084756447285619730780116214629650958251942403591128347594011818156127238459044649623800480827259136376096545217348451595448087405695893613252663686839592798214020234630055342508311513985690297547310931823305304618024020687493869566196546043050778218026604791470950277718310008924669866108897826855948683760119658182371248596135138817852520467154071415362601767905349496108983154972145734798182950797025843146623808743971281231043435266037104608177472953021074789979510545081037233496813832510872950396423529150242004374542475523507151444178059209719636846415550834864640908212288106156093700794666304313133756261597592346513252614853376025039365564305631293856268248589566873416875691182565243475218759423003765180227612051174284406692473821587101111850064936468542252284987759528675060493123562362795331781367969084836252530406616278831900306228176563228012894690335053107487107703137005441590677167745814214128932455752742575500711634924979639476038567493595019285592760469949633991090631497093899888389141857963104435700156968414470518064026427929522715211890394340839625681637525687910649931322329163764129585126264274611062953573747921590951535175788486904278097943436378052398779617157483833810882999683903667380694145514636677703356387478705612522386373637205006464347289741308645451304776122067880374550413852124688971075721560854807310133799481686588880407547559670390794106559863257265751765983328100283337824808285860094798570647016930295226173178694251596433496705922719927454367317725020485586581658777965211908068556236964378620209176540207482579707119946570998166121824258824705255985924807030390319316730552128580445389839423007784709654021493756437552953350909972447895044023915905684867840252307096103388941091556543240241105116938810608985492472188034555905153097124917806212640954612333291487182123655616205107031411885503323913462504931812885659335090476627625633461010225308853517085519110577009477892353869315464527797810714487500316379055459650136459622404400775109629311469161886168175457511930674475826760350328924296964347445778351486824975525284450798586710364169149752948439887320187686485758958629797572327853120007886946266670132187389845492823610142780318842627322063689525294251341547603000713704690194498514780266398089304525178493536639637817791225276239610146610432597110849910823200999196809727613871099522978825102423662391333164234794908151730363800970432908538720217926665041780646556907098005129948698732912827365090299976420075513572184969488035694594922791508902662362538336975348024842707900722713538275342814394040971154445124580767589458668261835170749501810662314095422753638789376446071635487511699590784208790666918077124839033666897465812001515143554363715327784057975971815129879651526322452859573696898390751801969203063588506467748998409747810085519003215878158192358922526479751160844380417463118259726009738155165518583480914350248662515922054970370758924260292683468380123739309689189912104332496261805571463100459808147294308819802448632217003155370027096506039074763699460270943286624466839569885674495832698266842903306633082981845659654501713026624161049986495597418070493813745332192638686358678000883513859175363813621741212912419472327133246682952721720815830261728344915754121870387649242782694216365913079091159839127675259943254836994146990741397602387992277178490459139696137335182323680093276554035211566017505041295882112513465852778397210082516096771240930502354784847544336998866694421690730130288894897525532215897887198741560073667621761947462963844288850195532122592551087496352286161847319037075082888350306044594544965954130076761809082490463492402186094871856812417391590429510215589183388916412049000747086402719359228358208725119177328907650114797467269585515807266785732492544256307917143545318893466029411185721100925835929877450162889354689971093014916616452697988941717006297586234285097183659623007650561075905535384799396015549894724798024716836126336911127975849454974222090479126081557440250840775598410021125557216293094976442898942732574130034848540088352791103001491558789625693979303318164799832324685508060505092046307277745371928452877223710489134874625035672432507272823631949737799522304441753708633352565271598661348884213732199724204431166033577852291246193870294722455756062324992433315991051884989106617876316442731467583542421988909589852875092813811349891193133540019464956108553351844556784844119962587456770938060582738310597876511509622394753849603605025763007546743738058988226509685701855888902749127226525177822843783009332971797686671346557051997784450735321444084525318423804671842948423408347427626713989455509271395485861807870044563282035824707394005041544560149061299232017277512986101814447424765753128758365714116174868069817704586454820201330372904511978093432275157902254851410838702780655213058183475043902168331154341108431765634333171503854962951365081678961600642561253483858859824565618382326248032399777626325435837275989506861480170498028540084581098669861552338420442811654784724836821366501348658507210003009941724510824589471974406446826295907529946360963052902276654034524408115834440959553955469245103096404521735382548842122470206862007591088581896806485319311670203896951231090729884198825918103454588207398548635800516994381524570324972691860293878849313294920643351270413883288759071822928502983902720627476679602772144342166497177641157213632203492732388372910808927699185519826774661893428123434397812236838113823221194829016597184847003967468432308161108967546457088848388401461142105331249887290249232246517630070148462154018865154929010178450689813535781313128765880306533221575766983486399956035918493865819399366136406633981999153147673687151730530396034992808763510924657398214999065871449327295828104425156455787918349777469201279236479991699232808430927577868778326974613056027016725217669102117946193752621566038469390681444031361540634704657354637540361594186700349263552626453949400978575898265732247428765425320835673055664891220389394387144059762862332914112650159114104409182137635398670446792553879040553753056961503044196852931395048601555533730765167514470888186373425538620664478374591742935494517245298505185873644592188847873537869861165251370673845094375670445605194113832307514471790702168168698444222401208859868867015326525761014951324507470444767330581101782394140841313411180445054532945494962831107461916756465204137322377477658427964398758495231567740430939070896710154226301293578122770700013598742698048171065833948817230755325378835383261499267265802419546693448089059954623326951195904880969361800448594761479498540687136307919002647931115936650711108628181664477743529799435281036329428087005875565018668690312864373767378574760508151079602726286118014372009051412887946112914528118876069836386406019726363145231216116880874036312639242393122149950334368052614186974994748113301744773394609657605011010567828017797478268437808646809420337749538153290140266427933970488166723009854015462820831366388712129960257621436065761835179402019924688120708160167981397319580252012589249468428893340249483199291784821555584039837794007089827199913362252379749845503440138395639049734789177495536284805908872660008063283434344713755230795992984149224506458277723480583164931229223239023812471330400106294154917988132928282030248882395304073595107751990879606488095477056584830372690509840127360196531487727500191712113516084522595296776719664050994148688306143001826729560118506412118267263160879207955091492677108424660894181232444550073662106302823753071501162700382033931880917213383307382375025533719392083581388045364080540912204229608497198259420688284993083841333072533329349331035719983139527639068543489077528013048597963567601365631402756238219394776975064745466801243775665444015553650322488339234066562269490001860626739163929135024512056652966314638795686190284206251358964580291342559258467935254381966729614536636560021800264350132797511548305626141607800605873653937433380990292278188006737040633899606209220024874365391841703132104756437362467065063036179719843206635434844692636659818877111331451890635367162464563593910549584503776140076513793971202357856814626932504395431951456939819084243473999896995933201468345276376580646354088699115344268917400721242636898689485218605982963379304011913632721478468097777632159259929472135053006741787284458112551661480359298765602038148674493784909039829272298521880633090062321036426738686332013970694470532011838319851135122924073492616001299673150879129226612429022413361368877488496167901870692376056746018363403284083256177917094537890301326841883108136560877039959720578671956941031621011726104048044381556748685238258195086270259335030767260953459900331818299399665538130249385413544121888473623871132415932650594287043623227212701704937711207989424223013610510082566081796025530507941698231981922107772052728004602429784072180563066212880491504968629069948832880439605773504713349181890892101630405222432642753254212459404625857312202454539591169363327413813816624195776399163097906673294850855205592177662138299757607168615504725054159046396238615928937745555416930197453535237742021134414369822852179928625431334064331930647860490338358191182167526256370767377952008956943587017047184598680744453992793417979197642183141090241300273802911810460875214634164421008009864078294922892885635715650487518427002123015540789369048573469525678759486112762254376343363939522040088449286034783141272343121329031847049928606265074611859091076594759474569173118277358404597808026261043306816650392799881019202149822795159761571876376679639977443069565065978415793490081019699500175228202471722402642443304343425576554509855347590615143768862670479665703170480581895532119099609050018922338530996463226432724102806855176061922539433810839537456518313038323694236445197707616858030975664761528067706526475743765597782423142728789117576994942438751891275421942778024001398102138598919271558166034385426689003898509505448860427464795951239666190055426758312683221993188887845232206612403197447102698271261975622472252576590591361607290217952360500253567414580503663619205442048195860897440905773660852566783434781989264540458852011880940002100085611691205736043070391546523380128130760687896051027905213440465239885479255242314907012239438365852026834190818044025659889453290121620221134284385116351168824093051892622778192675328987310240520563665392856040618984655934231073720995496934774515331486760873376719067656256232598558008060501152047447709397928919843913756481919297177765094646559362781786603791661999358842565300624078877651552462482976813563345821633121988932219664156129239106767982621643064548357191735032006155247477545027630890530030131449642637184132561192245800915956053119987588113939304692818548724409317065089505678176666246017513019069850700248180146504992037836179678111939880349597447592370858215923261408218459683755657793389056719156870670994570887513121225173109298198978818977241403186601724118326348005052008756557773863128339810444491908962520611191420534651317454628230756791657392579079116539439162318455951664566653998421977685712482799340756915459576976413132006743308355476118920799535716948170285205787808856457310521143977242865116800904759721255069020635637390291407977951159054052673745443906156287785395400144356601670803961104688904630955505078081295441482878443677936143653492384712976273625920787053284176728587385185518050750950802206405824069410631310824882633198201828334207378645329029266203625232973278476810188785044127706190307539995657413479746911008763731891897432625443490947832822112755199216300603281597766625362180807383128326436735146526789526609345518833886306721579893989880280836638169945694682672889187261451017262394756080970251829956788063017747959454014132810910816307054072187915149980811436628851117244309141560057566419597307146813512952207320534770932335699999463370942297777008879072450351552758376597337878329287719195224889639103301088677611619867213459664785203438253845353952194648715697151717195531220714091574485766445593673252744137421589854890054173013323607236152924357989753736071545041582987471544986311177632770439587269070687897478241591577047404240921643558157300233041458640051451445960077474936785357554168001519040959115816701248932202283461293161125522914162705252340328280842822758252387579854810012635511293698114831898028318904942403994910658248555983684337392960651419000828663872213549983805070271841235847173709712466412876653027442182808107690320794907124658374437930212030895745536392915956976941669502284424559584229527961218380691438614599209227667775141057986053843167752537882530296115638364919264571340476721384202895752268192040205788936819840514693675464691932422269834353366744673935605091246208601003796848173057524208212551316841345291432187021776024967635160408568824989698572598756863584035279046694762085430994427812557271521597759055521920247441290850590231713358088505826316800296720929363725872138533800583183682907464832272909633604078732513698119331922724778764952060501996561627823495031393548184629658872268480531933879509797836929011704997998210656839720160052085255031784740504131538991151901036037154573486988744956425965692763627785668154770243142601211288496698499908784230395649281008510113755919125696000666407222974698107829188828006986570122926655681995469309966708611093363811471243788597313121269274548965767012143952299997959079609400987788419990799975348371871778637478655161343289171464917813058413668724630039165576404605539208147059576028361917430088188627333362260482378225788305928362634364195413472214596315128757659242770919120059740582282535195421394296579343926516659286637024234958017305724284970430453748296436905706562324737928982942637139078350824741211689908081142387612025539810789301210472970184448471153352860234764001400872409034275825232722606038777424918586656106105243528794639703750133534778279952360924273287739909374366571535421147336722072712797006059244472050087561269980791749370625428755855249678810152842974150506390950594786550414920841238161031268026213100311271637067981389735930746671753709530935369625242257026611275559704652941758843018777515975361223333060599462011370707422084048693586095049999969154026935807485631197537264054095308911566087519737124881894173650960084018167654133607995936838942689910180560183002268046767980054464976088736052195567910023256832068819147150705281321028940820408138606397613928409576963750949622418941046477815602742537713986745277188570654258441945917518384544170059722868346797237618057565198827650509243092772511776676865396691088688078548438581743037995625620014540414683024532193595543692399855160803961629870347734174658523194170656096252969992628982798390113778468266257445979998313686522035728175567169697649829012687901334529514983549218303833306580676318481518128283451024111802954020074331926375208006198320324715211055516023318057403961363802066510195868405112800476204099715432961784440699373441528723807827339107588553332434677001061621192123221059746987791120237357739785417537730445254501349773007103765200909016407668544787141446641767480047094026192877326694112308023907250048982710095420448472335351083870592766144529897143144654664565610318145097996435357176397890154395832658718218215893060011205104580824095142109913763983535032471867100065217556946702036408688260255003411848199277787498097042901683013917364477643187382918003634956705999315967198534876328244447490463970040561610145573045294230919608949579965023309582747425920338129184384969559879795595936944685763837037746968743398391423338977556362125206475329454954004830786530778838981755676542704260903875570333640658867495801234400944182481740325701507359449680274739837283249526255647701272812416324961684154111514555695191890773993745718205829224376294227423288291765043843184140880527611143683227504096867932473953502813243052432622272253043345962108875568354715611827126474303153672805815175830893372915184660703682963621631968671770028631596905862554465438862419610214090991746358992390960406405145000586132597783105544705188835114438562991945552454708086997577329178806469708565511886480725598847943825545338160467007913645832563829912759066043011760960330414199585728069899198228080549364742990511835585300339028120673558099496624784536337309978286029439088002364004120473019866161998081713440225465311454022622784084654061246805859323025589741254501743084902406110188149969218320317469680336829638530339591395035175130652053669708992415191020570855139730936481457436648215396938316978192395095737942763476077631368877378667710261107725512981896027545939984030899201098146620445147036475057629644014160253392743164968443952685682458494414061993959930496311109121746177491786772616401111906735806526592451893146472577211391144618269057189284504538813032541035709131265529849668018369028793879552854689473085875856460052923849761984000015381845483943694376842489148540032130397552896366102001050797117324118702691620290086944606671711413195664639660532615485869315825558673585588287179691503208077869973672204649992529305304523207971663568080158364246777790014742973966494884088184096744229658143590496030774305204862298334117422734900291903035729802544763190058735928076153384693772239901708650171054067090468053394223072119054730882029253208765272135492021269822372433370251751401873781382595793170513454500283025690943204845715418998192605750360753641238683394606545097472479276972480734404939737249752792099706674286950262115203004719851559738402172980739085583977458829422779447224773496938362850812174745180780936540592477689758134149434807020192942807916846718885321219002754876109085534662478591526564723592189003052362419234962604062016765025991904127054297930317972238667463122737481995105711326458584662939255900748611330926203200271596353022804798220147435894946714201480734543278408315999712447111601270286310994253622362567850812719705142885392275178416416307213551323842152237924690570690420252606795596377901453202928759981947269256868364886389791315586655587710969514511264464083603521691308635397925120816835320728588627016783853312659337897315784053432223706714335319503693958424213532439650487755989231199811140615662237622670235991848519711659127819962508123006742212634939161578853580691539842090998582929684872321765090455005327761807855200569153781655790925992307106220486649234113956861958474196591245308775465038339533237600910133705847328764676132219017389476010988756820669400473226014834312315481387456054812235357765208196388463234243807231492987395804901846003268819936946398054954698732060827771843050383805516560063132583510494830682141780086143211751366353688952970858007378359257969586010818998656091133422162765458930926378441879366124500038201252536460430412003202706491998821723175910775831293502273086404201276205499592978137905290007187632763194342209300672521392350239101123013779504997679236504184293737835008153333016925005483161902725025909423843719015370202524691824617330848044514654223868150263222812026526191336321938267860459843124413419498446052083792862658007797192906761780702493636538876436743283166972292360606723919158989591487674304339994825184834494109302233286634035908555534497752592343899249716009206102774760542359381697597719577199522819685725787655160828557358034240402592187190943074892626392345516133934128738396870731244636591163158004889222805206194706434849269535234272592609419893616544542701279772902565922956483215232023145995439500753909182797032313249018292038851894537791388985061929360993430821847726259517056937168241465461397067114833750285338755613038964980430462871845117097762146254419733070513666120842668882959843547226651437922499052818207392738030328316813585156378663408977988320127872393385225341161694380214562465018491485594946845854912571209661992896937374350138592355993701279942494093564173524328394696808313263654553914630421144112467478483546012811458706456016411983397077198009014518582763932867280472186977146957468012452447365743128766201010883865620127816136491694538799751910214723082248784472871724260559798316546544862898931423910821234954416763033656823688852258716985400975689146452253867146994861243744998236535098196517596840526667131248817627244768071202683578349815621949385453837863649677354411921891034936853146687431996319771904392988202326920333620926778935611294365143767976219236301047416337810477659096839581930872904788255373721358255115693670069842596693722831682132525476927706542154633881472764555735852779344724031535769563564113783932962138687822216547251125375841489377829956995519235504518774049658976753097380457572394780495270878039509783704853974045700569133428629212695709837014647897849626266255442850935646746357364432059279680151777322389776295766587827929211550994069866091321301564337044798777032566879491855209397389731968185940499198811406730148134328498246305800080857633360410973713611914727963217035133905773908647651014641030659571043347143156442505542526528602241910396922957301132191311805270767566608379032196551327913341156488397352734844286373311252795590099443037249812210702512344766978649406649113710142370829764282921335797146363068995224264162550317865778293775004291093197610511270308761345186068759739981215359556907678908789260256179122105151060777504279782778736230709685974888244689834659534904086678926918218473478251781546284881312112931273536115657899259390082168249621144179526679850691675365160702023468049470250677617735195020703580390705186923322405423040558246847948846937622318859645186579698279321132638600377260676209978525352011982654827497911967313488712152513111352304174858709479780404484237007597680345974405960892812375847398217518036675254056419036863790831409813662456789388213601208376370990145510498725013190174504410395569299489795030741037237282300945477533951740437845904190437369754053860147668454401305827429273167928422490897976470110519383867796860893756158509512527339478628817885392641580970564736577603017716654631037783034208083662773820841787904607331936117922035155142758835077047561954538323937966831067355011677930460781323671893616872963342441959806908395334695767502589124230522105525336038263463046388384761510411674373600370649481862608514796772561956109616251634740666540088318358120298079762954063962173605098288873314094552819551266550791169639830856435730627275434484376835363295168512631344182117329723935270207442765665371131077484070140459515936572973171602597372278159251456067834980800534384569246858776793149461656089541526327551750049513728039165808992075261534656477541809727369713494820088717678131269409690963172904272306288288209958620849625446906770746178649202169304631030301246717105827865788086589907022006761898066624785851723571057800530953350248178547655961483434140319500570908907891011934710878317556929382340558146060285762449727242425508247070910930410456984811004654165701322586273559810140409474756578473887710684151025562723049163721650964333689120286942519965154933417411901669918751309129733871771869571796510339168826107645674386889688394505287911635480620899196367850789908835345632414325704531415302099960655427989398842425781666293274353581436759525897257581786162000978957481700193571833000308099204522792419189246305757990038672841313254556615122334265947822016172760672274656461794999868766125246838150248390793647065557228818200291678721139410166121126466908211017911885253017412027173403650186143352752212633439912505690510951364167759103952140561679403186562264623119404946333446768108774273658774035137142041263221337083143742696446355076618369282741218797198880618801985625920547341818693369741002724299372709510238040107273432045299443602359422934101520399835115735985443532472334186089045594266058071951591783408391241910653631139389717307616479447838430135771266095985498863907056004203770680482636651865985138485503222926667735068127922650998311662386233429944146688030072129067266488385200853221638370954128557173177887187426523762259606245774149122684605387839346420308520352597745317551329456872468608820039596041792577488161893637160926453180349631881019647959595357334014666780727954663724115868217467728161814584386179209090713648283815396535756527442922432880451632229699424246460870695648311980654530888809167193747235735027670650672834626293579724087265528472245200569129890407661276413471651444330659259036257631475707995399397695427213608418395432633238178395896365935342929379540844370258593414615090296535803336336262234546011375763351830759582096720227461200928693973975798172813687264899061161508534764896889890887692506516359363391317765145931603721910888325331222391092656317351058184313672014615286092928594330060400472687702333685422671208739485369603937284998389435671593296512481099634946491313977190290581663237046291487577546043367840452624257467588329864077355387097333476593428472886537121432957193608269418941727953034872194940264027806464050851873125062194869005219909412432881773895049503961653746969218974707838620489364050624814337328291462176971543238018970718654657937047227694215216785671349561744227067661667780425915099048712466311083115385133522741282356101615212727986196333235605209599015346505164495787147729535547571254737508418452062697905902002295010194714701730358100340863622654630609834047575368574316248585210045636861623431037639503562455733917813913112287624887113618521561314072930034842317068630344112082547490742170433256952261727516559143110127879366066965418703289144803429496887235401704628421079186775398569653283791001866719668299085343321094515323002716355527620401273852408562940315658368465512333650401272851408086863038285493066993166094223957231958284750583712256574268956756192834979273138484059462677265929452728269536264787753128013609666817268457295493001318208661309858457333813089161548495373481746603241213417901907207652869941533373502649049632477963656619003814106025575194674522240015459110067990258688226013865787706166456799353044119597052937818013752310437491909978851889047657987072461694520060195257139922103758838091859416299834918651167486928262976065723471049314944447140788847127686457645303087557327124210260045733429883672819658396361468145079381786256455132589601544402022797939776636151544699168091361760787609636353898935170249127523170748901324721035915909627295815092431757478236227872784916526482816552962459495983304376004867839915198962379619147205221288402146440427516572768085457616948889054332220390220694838255688867506064636162829602066385166267508584491385718948661053994940791317340845267228938527696575259816351636728406443910073058649909426365348491982851160641351885363290758552466545031070363556195090037436860285107087730787898037623239678234864182728071883619013698410915714821115034928337893580082100859047644544676650825136896818761801048560635883428140906826104094989661489514238675284917115180532589909162248797404110357686878828005083113763757869232889415401119487609523692640843698149405225996129891479425772068269750674932934813612438988050519138917920667405861021261913462591300230240851177593513437912362700327330801449939800283037746700082696173518793168427137144140579754276042097213470842733394673730515829850411084687675734626338711549793437820993776345741442867341885534559570602314136955352583508462094607657975126252140577364911263005647548628478841786060108562076185566060313724684974819606699295829519294724873884802780576220479250376612430181331519313816629500035987646015277053341304490311677942819379491396863412800804758059480543540874077315896608276667822332243251580726597217597316833823840456273042256046557839694465566539413839017135730907112257269313432712758060000758978198785199651498996037932388484491898255907280202407406548536639869960006379821464267141806046584386508935807527744755987605622608748810167163095031926093773025738908214340541384372128438338515406359781596264193903113546060663680404790641560491045381380288950547299481504821521770112201707378710050908625158962466077517031820696300012556720478607913712375699891633734019223394825306397844827396242901265014786897997874038136486329484007085154652596144382735379615595367054765723003719967617240315405139522923535251432604965360287989668310543322061963462478832913145561052158131455965634158150116219970440336577403864854567679377950678640692238677722190439022161463996169381715971319051395044612426132874427005991149411247685642261821675178114781465961424798936559700647319741504825202416187808765508639939765587197347501077075344226700346773810372247080954460389207174806163938063480390093245029705188559553322481483344986106578445460772100659951141897188287065160386549198615989844194848783734075669193715371050258991537073110444357979375846898733603026169532761857071900760168632088174728500300067306210195353445366320275082006896875214009463736819870392273265035872256114026593572220565512780310519497129759979800667735043998270731394822626559212588727164457927313667490954457049916864627813940515376289547350540091661723157382459305283021854880156350966936822866742275176281956304575456568587707914243112598153053303338431637997605815183415766821701357456484284721249037230752697375163624988879736631861871819496298449211881817436087145599500512703700976313853891055956876616942436458228921172341558728845457106529511248595884145777088413357191971331474389885703554114504135081756990253855580796779843555022380236758639443121667768419760360439034337216127585450355635037921383256575041544401882070350730111717764338808356234792296375740889795235797200832285456374755544418209657407399047273554492077503436144137268762997526298326392203252910537548980781433604916883632818140491293184278793733636853696806333400403594392220902809941713579206513550008207118252307594222529224332125146891976774601539606534955753921358831928561362021052083553638794956271024597135194828885148151086655587035770461288013319717383545158556716630628992469701056550526541175433398249572342778351766040232569826586304964417510870720324003382515705312182561695503313566631120872411309623541146221264808513915592082883265194258196721615065065692753385561587709621671101278849561722280227523198886350066883932913057766567999138691765667715958340411687023059597952488201036382191806542071559002271217632917395388562617589221031995990740517954610070166121533446628791663868401442131035520148466020618308748510023737413108942865862973637332602819477380224664492127363472182785580563600657427961998647988480702648893606152456167948540419454674327484468468205567174760146352714842887885032938339972422681075571929199827340939026739765308142602983409778957281910761006614931939109486818965127377318822974389075033620896131856354981264036653617854483520188632194373852553521993839409932687050201129804260092207990407249272767693611226998026647061773610442341323903600137379634217207650603515864004546263551810309244168774582140889452070240025693667753105848878467452701021229670950666092272858582882396436519092190491770819146208801219611443029491916731521697317872037032746890782933038264495981167162586460179898389275326316353185653812183322696980277733185744407677753858204078738961256976538901736602126241612058865443474748271712119877869548525146749682551394291820732525505518606035589896418316305486953375075092802078332056363045305629833540713902054210040546656025477578122583599981858337504324921303171493777458278953349212847571962043567063741800738103473940163009951105364440698949788977011964192157155881820924629684403726174943577247510735136724036360135988320161738589923650910286600469494230084180984186845602757312339314223767801821400460960885729554774289409158280727874635777124983070684512600648115763954620096344842852854770068316209195667273305586052127637836439887964293701388447152340357231376494394509458935082124190163667819976030932473591789937074805057656549980529737920478174933596101455576743821248889847768358931192014617290541527373115320709775353846960164337457834374542352907206852979019130474418176359920064930493300622979520119115031433721191865711270521644896576273697491225711991070443338628013612896856067302466019115060045865149538623399334385375292106374683293124153538380998147072039813636987718937700646440174384883832027494285310618142520319148382397308450976140994878839840479293190747289877433911728649415228295894275333308415095654419534874793719068609362301879022787149060525063334372876289401568625607058136701856038168729462346011162887072153594970578467518680674330816741651772130695226673908221317078575952759168388134366492450434581357741213636324161607796757712165015454522761835945156609533058460556767395275663349839482605662804402627051853918535286815611470005152000349567332946764356139378152226038333897979878328168001392390173258156648050903858661144950720798680092841528489982077137530137953436013688187229494026090386277998857746716555725076685236708467167723829572198509191897847304922484658824152012217394669030695417458479425765264075368508334305129372587502686718822083739042349355159902248859253519775890438373335591940255481089257762345175518798693129567348624399387066449155016886980828576059781920655200959878289393575511570776903721485502843731445308492319251019627896235534857119932522783969657774080565236063054358098919561564634780086171116348613896910025261210331191743071172116035177483967671096008173190350061850555564032952189319832941196562934619698471390980054705508490876478228053431445833865754221849727202993824033370921925704367150340991617136138287454179389886623517888896228102825494893580773385377470243188196130486018839754396608252677478658517733765457676675654844080129733116936469065976574691999178729144309220220203098315787925463078414541248875476756447281119765962449701178346506729592822093406660195989586959765894845794593746095555388688012330356786432758373604035490050446083104763901267188759572617172012344258555120430529389475392154890566591535353827638059006418676962843972689376620088516982934225492079360495180384026697552676614495349793380537092910194707151008722870261962504340647433019398366762554642740157060306082543678622572495439396892932836560186910638883491360941568449532241273212696603199737301410977322243880824005839488324245951329526548298876864379931496268490617584016756873858170805232308893359180265857614288267081844368245208367453553371532425247825110333388498088672890604400960409964839452129154278352969914726157656882362381968591886038099081450357441143180079265858515598380755266350025593660586550188613114122771141542036429250316521853509336272539269533606216845896676712759058728897015943270881691804593828832346486506768934442050723907386712010333793659512127243894187080381230800483390656773418359067846969849851179033181264137721658637912741852962887216710250391823234468745794885175528145909110742475824574821120309605598990143591662004252828669392857712199089364586793971498751845693140674363276421401594115701358822515617813545636166043222535889964176157869750654986576956144336993662810734315004901834920737447586588663577739096846316692826177905501823563223310103526720062026221460792293382829683298570676602313851863057091125570374948835984236943725355724820395690131357755975646199493257126301368433506459458607858339688708972324776626176332385906438615102851416957747586227628570799016170734257130612854404400231914660165935835552054644351287909963850005998657050874784427744806612829679852605736198904679195979539630179301188798947539081457334127846363791430510567550666875182700577641060647635508263413741507564593401282427965044006402570100309774596497590697700717958424902780258539300557345989279454655814283340202779135358556763577709116764724053292323678723533822602165954859945650490419139130843274837992901437806939263390610277141630388379572566947329667765920802194344370776284763523364122096294185580159163254763878976935080503122759447802801042275181427385128675627283776347103700766682119286986585237378363856446712898473867535106897560318188526236108879774016486700614993748587986320860406766076184027803675439165687344569773030990814867788648892870308086642569358542139457445709089570758472202189723267257310326206505544855888781199274514907804062986627442195773509415417539510902108239173493921509204088048852243359982498580188513500662867172433135318091123728547875241612351434751147300917694517040888793020329066156064164710865608899842182497489040473996300656317015100216306294937475340076775906516238713801948157072527136709793826439071600811575721827845195695715466464373346908784112425454829893084851702810767055686276377160973547577687665662762220657959322621727571376276890923575192735821866843170094214011540761723431119192913380248386844896626957613346272849961818932439299138547171582922065280303230685997649433164516892317633009233434657973170967061605690335904525603157647080914645159047945142815362460602046148860423162002796316493213310807018575461736134273919379003625120462517291523560893158380418428015413838046309182706737689879648261363116234124124542425664739358021385383300790690902593247717087559255232064412271002505323011738163732906153123417748577182731239001015398705421030874819562218164287090240178172829593632263775193482418990124658581659283304199680613104111118362160443710605483135420159510401258632673064650085404252359282411487449159969167036559043679345443495773485361135738596752304851211199149821128671757144581306703540862929555445017838839101333149160598531175932492053093049592409450953483474474159962775236760952575501560231382218274956240396826287944290469697202643961896565763385148231851859480337810575714921692720240886898581243364577538901634166275533556696351506365429754488551472198840955999959483225479377980185141271794569274657590943980696389848905613755865593924932899125222073169128926419999901614159634768138726334930600923347922685327045819137831381189037524074955522988542628742003906012211185992229516593609750643279675305205759563173666141440745325502671512870759365845035829862244288779556247990095317770227277177403162933540496903276622693206094714228295206710981127696623324832655655770724379104084854412488727787274253881772641811663292202084105344456816031573203291137351606200266327049214975654331295763941639422913910867973181650965704934441894491297571607170423627703384101014544624492500454729462438775635868711630100205116112381400905282469603744455910778074943932435265150982855045919846104659085837495328251022163983561136092557644195169373046117353304674900041782661594448701362982043764965285932680254626332205967434153335855799748740330849921531480444500130574486390036924699881167133841916099256015670528872435222936902283325397608870176407552598551451881056097747833863342487820125725667292274971237592746397566948793883286508072483464558374525881455459196949462565282734217130180367029279517081364445057571431502715802427584395709689476680822485528276539012745371513988819234657052381845918415282345066396832224703806659244503530054279961301253563438508249159944253222355340775558977758610040791487153375621038207611991689088087028785142737232092731540682492770441423736547057080930415132078005531636103782470946567429833474072590889282983455246100143976927825959770276498461581228851395970314437211750668880469448704695611414853390858828931751299241349075858166582437007589901961051554675212875017197596034713259152081400752358352550228957122056380463918579477241620592876157112806835942208608418494784789393060859273996385589026077766825159899787324458804640727557085139162908470143048975233096742276041767580476423528563017483547430017235659229427658219206831862146907443516153138292792986981969934975163179241727284074453067408753451299092933692333162770576509594613203384961406620192221011716428553276574638405331556137574210029930500897194365100208452312906787251400047553041725481866199972864428163150181801179856877491031440364442988613423305101368539306074358859986945676014624836953897639189731255971236270759221463372005027722533181393237153377945770507770260649001146747062900798334016607988977725805522459478698207897155284118998687007499602870079793001926770740048370565970357754461846146729366386843267623967695623208958372536883644848457173400339299253649829243919672132902550690237197042520794155853291766077451429927367804612956276903266699631989236816867055858894808760852268879158171271492976555448170840576306976575735688418847050848700777622732518495980749896035015023120711881709875418800546696629803478375297246198118744506595023511870416172822399153029927394638500860471886485942392189125199160834373497360974876387961228932520099051248683688548912850617155489918504826752764881004411925107725720219718491920838191171645366280477107376005117939900732555753291696736639423970701481339296327528155657653541475437617406854550818054217298751488131747936891667145287684543765211122039391311780868644924146127925749272499569007619242813921701872284459888705902253983231367107232234672504400280607056704813687614069665908494364893492048365417017820825561538046639415944362395374410758738229564021089649983740057271190665703735163466724262212833687964824711558070702473457243757518280249427254434236614428235536364095137796261052538583421622673182991829646048498130344206021807148465197664792245624900691576215247572656612527524827731439462259776080115409078898204747840121359682063888072866138736611278963320118684581296801993093740195314609905810210728185744418356243967083170863561102790014508235811002520123367517424286730499326712104681230885398219859587825909266986050359094761061801143547882750461753964558853085533805072999829890594553482318476765319768541035019645017373362067443558692761104601058323456719688934542432440973386924725317035372647279887562023998863605135356346511502252237143664423444042980991450540905081034435076756263333467714450382767997695921905333147675731612224547548063259449116831683198322890717388607969556275608886939179886353654723530270029983827545479208143842312395488494807109848386596038276631999175117326206169100354537445985505651271353090405773162036101089880543943643558275982208941309111666353196779117812210651088282458342718872424217639634718433751709942701905409816230002183357174257506268244992173531408777942648553136280356517647190815526379570260662361587968826218905804762486042510894109442400605652813162668710807779861412009435703576671955464216967670968982741968967868775877075618992703647882796460728532103703895298184899944812612141109976643448891304009864300437874773012524513608536363647812293857724013318602729447453667936491495267411181709495034690236245428058627926470633832622778428782619397384134870872561181401467337992675654265797771148005373998992407390842110372671446368440385442270122396224400947482885976745406325170737094116719845651297303271109143264078464982843547163124787302697166869865616435084673440360323766665666297762431738975868718908011173317095442008629584669532630058874861379251392377263968315879949854689269742789128704862216875264120438870268711953648166775647530302231566522470779921668006586966684713973980466829666090871084950516895077048681780515934833241482926051295674573670286940405291822646166366220125605339418136692087105293487439258575731913017525182764988205834487470151257357520382895252512552369326356807099901984330016642255684537073486798012412193271919618108961720181776740754124457271575933379237143275848365684359756992956752475791609786367543331664346128964808194825105793828886049954133411372965075246237056862946618754980551702994413897787364290467196443103009303214898628885574288681582628976287039626419244444185147745250167823600186530667308361486137787297571944958245734885844034362140472021036817313903931804358170135282119631541016499968497123234493452053296684116879563400896283248678999592278462360555404045327749248562203711598935374124246421446400921722521983618267204141489555087424876821276147175971457748875123069069508224047051833675456163937576924958624205333583846129828850257295497254978000457313185263334251171218555616610550676737421882472720348351419779368408799978411639543241826582180501615152083882099259079012783854267651177140141515573883467129687565567022940945035441800593866852670666015835826502607702781368559829635343338947246253587764448140317743509259111971764820415053811578142305269219431126746435673034544654106697286799785447924962404086794092858925645497746873040852356598844237202685764070722012147864586493975244714773225997509206429549313943333875483273588556708728477158499393104621515828659659569360138603037885707424190202869698944338311511576638779390916912968105496864090164192634722793985405048923544263047681655366800000840070857407822767236532340702879343105952422671328472968537274268619983677563692880275673638988250954210559016104264955893172060374568808940871841398778876192758314975024674126323167012074928261569350110966755845964160510008944583016071476918755090039074108155969686540996721385658504133844185474359832082444388967658364124292860930536110296715507264341423265582425663574585994829809746043560448193290713421905580014709275265103382064727238038104871964221312080445445018141764930664302100303584848931498929289690452997570317563192081671463258382240820636339864984628431292721095453289427604943802056372109780084933589404730526127087986823342003690759472285306071833583514760860096008345817294047082635908021702238875365094510113842543376150047976118660753295976620993626577736426773224544377129867664560771178904146616871152094084402302893821494979477601198108206878358497455969136118613198323711379428837199220527138600071206872255306974832318929705641729543881242982714543617194508645174363046130215639752965106325250015468285881760001907079478489631864936891198060182727888630656598416658201408510950785827035066315009082954296823260180587479064894007654928837674847237641461577332273608413763350332143660791116488225165718397863323659514073895988228992476658497406303177192477453645300477345679130120673214318668188229068493327912461329288136798959561420733419899693426548624986039684710522614368520598790909140691483961261890916403183650162675789374876772742516549937682756108939829526035206840150290594743129310718358269624869233378968711264883022978908112324668157588245176490452544387123154445263559929162585647973015477467434707918647741894199443926990499659812304912258357266466749518592996012814741145704188740190867297025819383042832048011831477316706589907465266191826000926410742656677771272729723487466422634178019770219379884911998163543901475645560913496693842925558464161606050810172806205436817022331253066113388155902456312213501963470696187741321364960993049724374518909219643347789232318206871601292702099562572063234497801355085221361814633690353465922742606809655765089221822183173279736161779508792065135858791592841527924822517873792732757678628471743874986170101845802541877652491210785329783588949950372616765178075362820656120335353914257101724450563042185083758680839350589734921192013771806746940820427721036817230744251325835945395294904833907961105525135241112130268569840271592235473072921327555214858196880372738641569601320118059160088558998900878803583662739788257227044044035519745577343617693687802213140757744976571789445147719437406221318257155244277426204499846416703163346533301217603595790968188315922068548401166969187891566331770393113938780031187469289893008683926539845342709146141685390499247325736879200619368933835463461325948979095775077454908495356491935358943020125144444340407462832292440481495078637714086012579381737643257361591204859363114010434876454541226778542313381399855363234932384603942758337464954499374250902713881103288037211793580250195390747153205455512167589587247630818664961171506290024446852836526899087368215137797351963875384302532976830765000416132021518432524289010566595056944482746788857529020074309890509362579865316260663171701608387043518439499946486425015665795969938359354039698598815568076009201167648301574042835313429960704621246335576115276313069082434374703351567118714898342507727295339461142302723269968728957559356517716518505070730655586128646073860970506644671807076702118912193895758156095412846402593420742703115320758744582568155430779881729888611474503440883120928150460063346666664856237258962700801684631034873305174154229594348970569242286622780868304672493249376193521706599650453235881475510000121648419306129953617120142063919096060562282489494526456164834486829567905868402996835168954550950292257120085157714795607210498593176862075285831372516281531325283654085626005194085230921376785830463486252509046463987104803223178919857226242797080839636893150421026380860387332007355974493276802904825941815015509383279792582448026048691020163920868709512641654842832340422734356247707601696330245321054732650149425557973939481078654754425950912913504202348032814973291540945258965768206065786880599202732131367574382352244929156043839972900294095657756178550224163827927091692035210224106810366935581500773602003505540708584811347182962388685991480864576891425634448157542756286759652476032257256082434853739089849217697719690758150157443838145840442360372070545873396044323368225045644034248935631468596434984170013819608179432787413406974588791602040232627471754003941846793218215331754375596968152172946984580692694990763948606915727588784038163025826574400949578546444883120929923209092845582649697322386490555318522291659489204606855927661321488293820293788684552634711405237586157446772702629276409715744087089954662908524794045197847054890666616648671657169420965601051244167571439768260385638937794039497945897424728603255681673988656416088530266947447959509152318065718808523387106563481517746679750011980385998975657341107899584193669939874187190808051332821949189460558133747978924104479456360244892754930933806616742784198980687461318210664044720653446740387558231098865392735665825760313476229852238615244241167480209423195377238864455248837388785459188143704568032936822678230491578729675704532054494774090236257828145191811893309471976009049138772745525469022423702719808869258969225264446770737961372578433283551775203397145272153564137301561397072689520308612155447163119450566322154720055189006773624187056537061423292590505207709557764301021978443062965364137316481142976093658991791203784473104812715511601804130968930221377781166591583414324356415240875734941559075243581696737459736840342187200434787502648655491609144384047631099748715594037361893773677906739874274873152726803807750841550653560412533198803308574324062910655425552534133170188509818977895178693802046815010329425103304831728136664062819794052347736048367549229381656709154261733758640070000155485275710279446198373320986324505902899249508010455104620159843425781789516073291019502834503761631875740915067947595883048972958499443131179686515992433975271064543143775722172840448283543296219655098657713237531151951320969512095533916287335059965352029041151104299129727440751843204879222391739385176385156900751959814404750924829918290206004309892209114254627758531770447546948642663077513281857332552615704768792036204865019683398747389526675137009184174764386691311408488641257377504300258773148134609686254548797512047610672449087189766755062323730844363270163925102282919636452297620446511939799366097237379660701960084238378139312072528679151445104601087187213871159332832079846376507485227234329060604657709638327279912546382273427005960071488302982809250718165688205801565460686485898684701518532420124108035264699348070306201820360656419914304321652300568200332738420428780060478536557136547556896282368642076158080389292741818622209299438572200231686770866201824904186037922842716810181737936512902013543262109468858339314565458515967087889627297838544136554813472303065241882346102298960951407169904389564801743074059131075431822874294430034862331637653725355104981250075584954623507361544170687355109318174135732233174208961054000397513297214262957162353389242299236914660849095961770404804111594983031589280073896180550591361308883149086200157147999962704979944430466557602966500051675645144665501225789660577731578756491699411416597186863589946235084710027602178432985323200027155493235817184092966938636871955630484939753624065137812420020981334182464281453879874317399798589503987830466608848318996077708467694622847732681760864944903687701572849583852988401350601834107067667910851587330330297892551432669416056885551854765873592353692568629836207131935533754501297472251143723064104294639659398705172247785247620377591695009639054833457590285598571255920374841453355128528108265985614772643059960603938850798464082590612195570919749946639882502426436184182474566376760962750865277122808187481197790805431212735341798873220446576748591675440688916348730471951430023520747752435446981800615318242249573852222141450534432240477213341708076884329870396288370486953665834137969219179915075822854331785845258535065204317185884503150522552308352193421387743939176145513033071871133176594303194524670433332289664857465046021167074904742421599874261024726237602052491100392145958537779092858902224686844283362693933719161605604776411437991031481299319839185667909968265750932542849081614861726105536865900797341345952227706175949740894237144921054137720516942880749899690261351800930716938279165636500190938080903263211365470618459631818930089488046823622853086475570417514273125333888191120867821308565841712693209023195770112337122025699974527491322884193911854823655254991041867922161206073869198177921618722684758907895137456022647011485097201795327727334487546770548722386243608655416467801195905331884079332683898212508841045050029577105148217031147216320419813073525228359645660265392508919786354808912162600466723918247195872420101326351212126509978569242115201277038229532294926791688019329426474001696375781025523143610466886883900674711034244759214047250152904068204687277559287328099491262807157271158006870805709438290791472054838188095528934251481092432295157380347794088656469055089344363136492706914013867364963046038419500959703752522102917715598456610256324997590872962024378688100543771719241930395281279942583499066857530307331893817301939788407274625776497693954007057331169140285213472330843307247409284470208110824353353765641105058362933764048742310617591992044519330799815814233106466652678392519567682974941533967661968859642807430476981876479104713645911317253692090070662931845070109959927597371585192887948281301846217776895337495894419752376226744739399850054511891007340940206434498472724051683870422975439775606609889759013834090167954231155164351264518525719128371070185390609856344933612663705061507763158387696672867261027416288037201332018556521436908350544748406184267631200955736937521911666800228184531617381900979921799511194470250389266992511109072504835224506443608302487215686065874291775012400101685215909799635134635269566723021762918688271909288167762869973589628953174055042810698946726194245031995970294606425623702519143202400963355798730878217125868391140710616249141319924123694290596346676035938411941642708700328763609546790871900554308043907008595869746439629071558937702880841735909636684815291214687595571891975560956860627940847268297172936879563534557533029511347800023052814017316035531468483781730212194802163802508630644661556710233434713360690074465373906482846177776839209825847920315873200636789709139610866945196574726582957579699244643197464598198685497084848847317653464758289315967467115452368582761891012139505673373044143681868520827310063874961437168369615957275122936818408796172612980336368687460821715931544076364761480307407885845529379176459408554846230922036855115453959540004094012372730899449040569455972308009986839235491804501824906083561673133824586771393744640616566097708166353717916312664884022027744420557150908021291248687675942825509485808468753540325923223535392497301915126187417996121249128792599587354117766695982301757565974808573394036442370430611353851416072686789410978308385972618590253147142213117737312375828375618110119770263811464888820708130343561793893068711629432147634828314229824794359976168998568494025246327624486141712464819255144694862915072510306163635497192071571246593645209538671133247684282262405189616133056943911027668567966090887720766030718806358611410476063196743303451307454898840318327167948041329284320218301958229203359571571144087557485523428826691381651933483238744406942862803722094024250841048860887314198602756089020061804561518893619462482518648506889888690082730774196836508716607835323980226244983505958805966081928574604006866894683269587876251760410025413248159092931754132717403082355457413553464701654369941691753814635354910645143800015616346487267591631318031013066589582472159118606347716001003091341532809705393726403992455549265888945501651822076311541770690434588616034015621411798824193277259418079168680448761193782217254612995880758532626019076030673626895607641537197387786061930800456516027502034590147501874367588049251573332930012728279872925884395120341718673753759367690801068690642654514751242087026283244810677764211301625861717934409679547951461356752775837867142104133475596682630889211806952730992043628952602398393324581887577842455292420643766009383971566219940127157811382079282441549078440559813850512909386726534497562359807839087430550488243956872941593016908426509012385803532114267526946546281528191501760469394500716866282664306986895848633184738782501215838810630944281289742522686646545996344968528070907864199115038912303029223118666568704678734588529689959504704163573237774770907609288447682501206387447541381220232756764991421427642584943057970661327770373134284528326804755577381267351844409163616109222391058161386003474954191483548231271225577395064979897314614534742695169340778940663457563974590580956405280498732400294489206552334324829043539284751113050935855162844915255266241007170572111947840939821370637234298845784459513069967770639606842513183496470544993571321844543036665556230619456688864718967601105804745927863571359606984951630804224168906747751209333327464705312999479475863089801089470087298990064095144803002782558715251807982457349709555642932010945552022948708584198208270287766398494633405349686879494117824499479172432595107047518732309064656028737835585084692349264323836322066419968326083866475344280503651822438362188548490754764628981593635701881855088780226403693630579493770066244051015498681001929754277945825538733983064915647923541823085457997806987764507551347342554185328518024273418218895293877560494411670836397075130402757821363823761236443812016072755170927632034143649430287130874748152505844496110987198200174762158900491194203904131375283150926793380355569225955086870271334356500937138882464997021398714766921751179687139884904710564476927351920234635338449836212298122493356123047662485910140533030157260763937389462631427630910971954628049102299265784664065092163220978586930513633563797595854714197341877580991518701443435154320416672506191605847935280172984980354621365471837712989654742947998922664226322105504914934061830723673136915822048357125334070082202071914293980504008942997863953055268580073726248567627009996503870675113692007424572178655520043751111366604949350280891302421464649393548993813648292991870212369955618704920609405214637651790886575149999060241808582790328417355720031683972493191165279114273012975492546991433953253091461416318187271044086702087662519712160256756743158133077713302898744888703246175282026916355041113990550247297979058894747567618472521631238955464471657202976961437573845274884029177807145706645734551555328128602551542235237159579449612113564636637837399290154655030295042849115799562746786073513063348111238635108024232872066919450982598205653491131190312685187618181694029915091681754748835177038687643118212190991032110412965665530935695216941389405007353407377179227764455719745792231653553708627613241315662519373721352661685454357804412526557218775997635261081717916447324179237898866136603608537441829541443375995059559513240209309205478865943554149162716943154891509131303388295946099553853231732173234601739942674575963114601042580627331511452419909272699160886548050439159177662990878516256364355435291258471763228190201454139999193044650507931191057505627818621841574940907176080689263921710939733513542144918161737303421521826235606426860274840014148056163671761137548356973115864190912515929111778650112567000104264784986791515646784314830356758842260828752615013692956834900622614202364215715570229150697560046705554574702489100161289868599984881876723219437433931201488356747104387613262973737902189789958808904941757397904656287937088184117559216774076344641864698039482720812546098293685129542327210554789008592614803522630217063595689075134874318930604811678989132986050320835786978855667936171422316831811321803726935401511420656743895061853481515946122706515183501474348129422164009229128945105431465120838283746779770541522660283027271406353968073655599901008823551125630943347229366308720104929544217023432689025356449822606409055473950619217723933887772258171735090263746568696406829200418212479092341095726480781529597808810017492638226681224497223684446500710267597415900310385655311556003314924480054315359965245898150822297890280418492158464500784212023355268737524943517208460383358385101813875449779466557768564726322588045788265336472007224588670104657338380801597461459246249106283427570449224852701725902075025124502698368490600681257118299716582370237643073041283929623418405949627428974282300487410366221507128476875580504209337093547479271563340658375357516494572597284757633784895563999717525894768633557110090392752005093679666098573295907645226845539576864189477489086894531464319287518841361826958469892163598810122749134025229942286144229322996463460883511174966336526569249922683940777104566269947707953198126349759731973621376965588841355890934078745412005139879179477675482471628394163596075074255868736926081028793694484686590959827297920861992491301823974923562497645285783368095877710811258030531646044187808183383974451706471230829470303248813896455410643908712030253944938913804328508698768823496258347614295862853009937341262554052568960083310248168238076151978480789607773844796053699324703902079883110704550562290372062546481786407405040593718966717373424377030642368001915643441985438531819807571545147295355172373378655284179907574156606032389196557111012151226026611933835836013566136465143791827389760788435918108274360392668089905519889122766502722786041205758610167810748427018372975724056713319496865652480632435594359990157442795064558424974053851293969092836490074719489474969392239574710936283525861987794694899000312296405569523178011716833484284598194745657338375416639591355884457429389404264643085842221041324108024071772198138242657379196396679303877110925542751403690180458903418001986626023898338500737599085493532099269042993096649585327739511930554997034243658034627039214245601661034795892451434828591186246827046364682493355323356659124972139396731357854793344300141503311928135562495703407813132329150152308572355332530136557203386132917602974114136277251435513545411960614278535558278101999224177434338676787706920910720196145890422283041427533159465729337629428236702593310277246293101305216879619121303398681403698102339112959641408939456656471578619934900516017450406102447333141125143964391252485751480996827918402308847655508708421784821652883639085211517127160514444186586329453232030300299922326356564657757808184190875742097335816626332616403634026938227804149627010236131064263534338965543960049937528553592636306056296260227868576226821966345118950957456234593771356070283551976492030785134701669111552119740483880253558843490106189151514355896825670172753241822078844686235535661378407446069487532245103806125874051100309540344874446443375622893311383196015591304689445398362134516987494177628307671089735668686948683137125575334477839830751242321034901202551124011943818428844656223353698608569007333380365783655301285251950798898466407996363261214076417546831115606589817872844871955101005155944591262693590665463950836107866447752011275415040834289020683746878319287119023008776984132438557259590400912314353878234956313183110662738270110467015263843022426110553983676599036875595008806614462829726839528992971992206464354054462607638981181291840274104173303706553261818967918515859679300827854630715511429686080660743720162976895982848531555360628243119282535939147379630860190043594907414114764514567328561286747078003595527321873093628006139755074245580041898387633708445369147779681918727464655727107990637887517551345337141990237438002853393486177029258083561138229098934168335001741147689271837645309255515013857394196391354878166405328907795355002928783789870113248521670002768250934571115646446620689518482937286982365870930258003807005971128137664488241945694703222755648201118952923701150631113154395016318143660348262403609667307901549705182539105852987387844877320560488809678709942000211242059866828056218958084229922381491543470190960086441251383900036768472889883367586793196448701364397940621056974983656128300452026373322074528550433543183070422167676690804783277648078834438236602623753800682437886881736107960929046978673062334729923859094640647235259228862471229084020367999623507652599411298091921899123223483868495675498622918936302281305645288584082043947725812888641928727061716833202811156091697004973568211596446265412248991061499566107942255764524344026513822007887521235277533161450601735811671029569235770118879220315158274360660852926113687271880185227512958924861450622609395828980023089563589803295263857604190749586175308365705393265553376786649278653345569317930601290465472315044133267302169242825592875614622476295294589617324130767621387540326458741070707567136422184658334638086820270693603174812862119168857070606505690917977099760933425135256144425034714821861973580503104017951086357069219619504283847374170960072634909161155691125351513986368302597182085851388688576015638430984479582906122211516903149403291261268764326942294501537620733384072951654839855569127326074778314664135066899177563941701642165760454247286847016100485194206285376526824195535895418144841897404994582532580411916991265937182022414591621935665883770184096706972368510257544786889646555888177664189471475262691163309716388045311787298590949558331645112191404189106201874410075025396281126723110043730833014270807378331600712929477952867688521488281186372023348752772415719931735214735708736509886997489577820786207066028732226757428422152155178374925753890517694540150895002689806637398756358885431749110168821082093585510653525404966978116694740400052750609539330164441599824755184329128660734062943109588290643275695952213094869763944167706491816182958709995910930719981843170981316448162311068756849266660159564313676527023465848416548644451893236556272695325598888139889971551518839892969528496970844072871666078446447698136050939916480007927629403521734585430419215418106936471868069519339088745900373963222836791669037398882393942032884818672437642872604778574145676953314302616814948851599312511163461507543786484034142496417923447840299332895130565809451999642716380906590244463606890815092180675736027107473932480208304283190548726517638898230303569838233642345456969981349545254955603268039112799583028237546429920502902329996658808472961844770768772073837069219687080842105285773384641201572157710710824844043958624816678596489663276160749910562083181068241374873015338050876470280230677838471649412993241035159956116668119560959855554100739472042254885037859638647657163261422923510831453276942356945698880511521809157236437259687468797053254345067935280727055746249751011105136588244687445482425661370854397424663627792785227467260424996618074932107789866626856540059582959993091373242544999504266064360832219292971189465557086189404271512950916550208371689997030934581385636527432903723517139988544455161933880935133472636395471615386101791869054142556118285493802172968980960647023868808700460523561463323590385219509768822461694292438215681522175162862703008837272566250967117228176339884507019142693169402598682975159811181025365218922056265778664285619465643865797369506796791586335920093509035602958518775717693882266169148270487085446614457380541266674312036618861382068252281333868553522302187481885131827252783996329734147532228066546272454104884540891064424964739461834077802456056012867361889148029738540638865926734828163890868099272740605582265875651544184057912963518039280663632382268634518884768139500048833682192625191202249981847192941787355488771279799438359566873408676893604580152299618480426463125766028697594457012791928748964678265576388880821945545158540662788818250157159466168534944167382658294630446976488739843128557663925582895625498717654756615438225336495922482318902960970597597883994149274221348391473688832273184523026056580600156938422146617886731543339815559166877076596143543382409686637640211782596884063267486814673604602803982508325776957585578248875472632748843984011432363086994738203746162477760620609876126625173772881496767378553855713460565005388504862963406845967087521963055929516866203811914442041578842430485372574040661826901911435038596747609219213474635807904198525665747141551443856763975096860121281532807491488167310798017668133408999195353999414361472801759524280940358713143218825939868503795364549055091373584010849377409920457420192913602889097623269546681403132064376644071502055406114466705336394506671555155370210106360516959147519977130924602806579676116625211783871923861338185338036391954064880384520525795299387452818425799808702501663504574871328746963661960618327453303013467824170801167571160891752111535483943429591199214434634844474065910834714097535676175617277903123018210753432443074030298813898869207491575984405947698985747567474126436286330927539563894124762375102292301203198000175485047175570722043004996308531285356528709338126142024866535122606217915877786749134843770864485277437720407671681228986410075509764065266317190563326798719212456765283581248893321178093415813200734093806620982885440041986029570138065427002965952227502490585152061408914694565233891290786588826776105127026803253446694720433937422934307008642818352330057186780281441473201679365993646965570975598936288692031115947684939725986681630416966833548204668915201382164952133242818288253308563543811885310436481182734880314455451219175714434306246800816907789938251068645727370361614960373464346119224528756945407609855517937550796571998439874998777084218176849155979405525685505058295126892336618959682992238311850653524532809895666923175670643568280847441229586564393557126912204702807959893851243695399336708687719423257270427545872780967402014105583250663046681587001124683217705529468301173315679334261488748978804658157310561980034326552966107252508621247007669558376281063078184459065422326640354228431489039550564771824942405452208991749511282536359170733299082987150184418076474966335061325623430696837015059837581712494556419594370389807567731786841462960536435355244226125624216094520471202956243959950821481049997080785149547229401738894712705520319925589807744529687746953779247440601443861155517908928266604016252165144175741281776244896612492455989009948461949512903299051276598126173361302232832821213265705064987193352555142004506866043123845670850288025258502129205693702935494709414839732757895856004784124065430760552273252606419697911811423850935414230225453983630658613175745790847357378787463190554498597395291380738176923449710355498538065169363467833688280457592525432797535011137520526309507829401347446946963490776717745899002175281600229610153853842966139637421419200811995521794698819034418633990581991305932105926479524223162424999284544849937040250852234860806942350391148239010954962607590371289139090579567909262155284845509222454072574668602585475465639081730737034249980357675592986921126162197053919832054546356037211650902461879160332335646825740671688261630866037403035413586280453951891359131293646102142596813156189085132877484291339388008671786997143621978838675500672391733560612069309052011701256105354621759686089776333792510071754032706776908623641150664752735390008149941854735981410248306512396104612232206191228132545790713226349168591322090394154359261386431246627361969097878060464847497305308864565839773679290344168916779335003879717446982641602776437000441369921557638276443634068944611801792116606954664603268493683560499588829426545459824875718141016348271181496548707510092372055587331685761939046741036014873490418352556569645470216716360841294851082449212149377819184048582408544377362681574949603887548718628393118553629744752078246693443831379691677729368880745294434990910558382519822921560110873767370024135623130751520609657593925252571684659694531412656771864561666460355768159369240464292726652124256200299204959828113141485657303202954670633484144682434100026010139561067416119527140480575389068018252136824039404342576870438461001135524587704148377843177738669473369351483702408847166165183682465839806576840745018717887581337397851778820649686479129091331007543280620816924641276827348890796264677233778782430588373919767046259376003032083969311908577885454355589741154839265402167960176565006883896640791967519317783336823499628935382632427812100355265364554620378936293536920956338163382883542453875614995389808210936065986236490223068975035511226936329470037140215199106182976442674840110431418067821695265074809880631895010675594911455769302361166419935957789598685310158331598463117553988702800891352520583497383054967241290711644539351914214374253756605595982005454655793459960973077323054846228216942178311318134586347157808700053940410567872912255977754207379124753798168929793547503358875492126767194578930932474991220418312280900641088913768556519297597636678997618617745004577630335446923865981051210804793196076741125772596715621681005238815452623912674511495698722210469693820808496943505740215216706280324639628970128909114178717654193190389193858240555130097379935081459354712667554349036731308415766462192194092225773146865776000315167379072473569931596578421268001896442312005375497026804939517440086736508003371177737749073477105045409270465163142230923112858207883021654963464086493978312998792149235922493761828402393289440499473963349898084103264963586522139302290346822799001890641342672586642418328274928177087800911436099044825747305800994670562662689687935493267094390876011226990887289788533570334471319175069670603488925786039574877033045919558956153551918992963299144884326048499716849625784713284058103847946786763547620917350586381513186213270190406670452308448956747289494791604099714455083025886813045529245817994776037302465878851499184517630509353362655042945172676307750959316054661853870814825433551658403392923538642266222812948657634536380680420229852253499427791195141931720513977565691252216004790420031384157681403974438288112625608013106482336012486547617334653576566514375492798802734138931127708319957934649748733243170473363242981009696109450226071083070125261357561315011061424587700362460798778247961675853062044770976731620283647045362340158638549213332116104570522955069126292771704750212346194432750346253440748763832431026490863619492367412078762779928264487410555203003185132245919881775230131380152076676515040509553112801210684117499835455638788704285194784768804816219420572914234797490193331461745398100746137812908122347192392601572988468688992387221824766767188114258129484696787431110147162282567669635923822456674034022846559633393939831466499061702362491604969827221829174411220624750943718793021773647648334848403858439790857055374847815748332909421108230529133030280108587340285191602870104384366440079990810014207699940451820395000048475791153625323809722826886372039317747003937038759469039595227576723651883585894615734722467545254952903931283619119423931656800505471055615509490289886741669684181328636163058617444588536726629613689138003190626386466925027359735052989663421929714378150769002415301362273744945321877399402129706996362098969015474573998212716176350560710263590263946624572933417629584677436580247696759183935360947401689240666959002581151992494799921334982598938143438489330212295179106355457020198889484583496255207924744839628643470848468655965922243760553658154506762789956133145565848805141595514876448449321471822272510063499268496374703742884893697483460119947139958020920390483307445465380919053192087661354344561930896101107596407929519427530783644154720263776196874048510700204998510109471597210769724037564414927277794072603057748251527291198329635794912586565994981768287677646296388951830155459538836711877954615222842322445011559691133494061148295039572723854879493507954363151392438008790474424455737360728778107003501873082732472665584323615957591159749301942905935194701504497636652958044028134458450221025642261374652294930051375429945932081835083105475638488907464876177712221312796446336269150288599202722487346833371040181633203818752790523690154658303463896124432107466218654138678057128550111577492694823766745341457570621023325470681212578594821267693577812837480141026398706947467058855529193510745736283772876390649891539756413083386431860646695077340058419142661042800042405344146524483157195881927940253905030557829520918798482183418165031888598703447153929772669381032894037234449125854110171760383653697497705377726434183258347358882564183689438177227046515565697365032941123635073897548680942622164636811346571858255940204019634119055351707428984495037184115148237553789547108508794734684692576155486487317321608252770161593839352211151829375614284051332660849700226437889346157584111822703847911804374287243079721035284946876333630895614912452685061948783688989007933595178108156390961684201542534869194981754096108871591186253381048188405522297978215740027044571808507617768710526997972256233133719370393842768341394516034274294647402517082381815715796081095693865515122959975991259150728918702610545325666849649557757214937265434337014004295788364978873689548181611861588857409158844062397000053796047070553812783290587292233153112630522387135547922586726640683477042922179247082764923599909290780243628816832880894704807814958002347034415829809609409970019774506616496062791184554865308410654255940945935642855190502118104033683125143579058320291749884440382613103555997861586074219073814998916699437689319312344679123410383373815905709374691819887917307269315300437931114654160582508628218104133805911367532423130508752313646349788301747026399182421104874297525769274754311439311833023908653929690672378349694768594683652218319696289675976032701560697139400901137822224768761617625562901467886936216977719506470060230205027822930359748895205413617365615649543999933725310237157596687490115381587793682293818287251008163518456794070398649237368845078168903126343779974281509154412531267199167754542763329741020445356823316460927033022731226300677411769911273705744003914779475799392251959035602938207603299092803078742337979884997998476433159342868412625458131687822498793599797910699786041495196375835610145978267167789534087189803369566386123738212297048275075875914823519727594793799844759159717439133843973126711673447827018920861936303471890826609288814174151030301541448077046256913796680075759037412383954123064561375318953770021647933597666474742485345839398235888118608164346147898115145318948462704418728639668616362214744001744031178367791209127571828103305465857049528051246803141837390430136606845678313865236960283440657999509403717924695743814508977588159924870457645409192444180352764824857437726116674148212786936858163479688653266387741388709321051846407588165115555724610417468344748773262321671938364783230347968604800738039497430165617539030108453353584304373514606936924093396936517826805975052259222650574048522028889472878412790418518750958197850022690503809305427025573495867074932582771165501278181740744270453916413997577183122754436305508181246928877921398354559689136695214682521964157238711066747799130302840281284022544904981527663794690939662309631817585457394226582982414236525787046714645725492261363723738038477249766529952704922457918448627613908581776371906722689932057699585685858415644692425191363789137207601514374361251365064943018157745422766560299893936765385704340243760095221998910772185175777293680429135959077993773437872988637004208437906719865090705383789774830491044197258343173373883807628571259115218171909083455730357884505816140389763074378977863518967583624743833486166604972111974614266434973435493861755606307454509197064078588552772131210845673110247643741564545985774182907627014133357264212831870218835001033617808448567361222473569195814099262261261602270940424790183905050295801654084386432950913888653593225787232417845764066148561636857416114332338342632453697990432838568908317757281199322130327002748489321716075409012331644182465855245117391139219337995781923682795263077108572514326571113807673729009118006720859985037001690927460887084351380956733916399943580351072773169891279440358090098236277440578707526728362332311437699036546228992625567694251768340517304985549103447494348198214393653514903241715064882814826257697482149532604585846035554955946816413803501744826321216458039960941289930438546073997391214912588317929975950091234460246708230852340217120796773883200147057427905365808673588957665599591980413528596069525568443966685094689760762198526916780686660189102842320723092709163785956300877091971434502924376328567187157658078872735611758770651406689873252630234580145251683561142995130128036989044315062544292242278838909283229106327644179039016979328090084271294583882601403410238804392623821345398922124134761320394510306801393614585104646804323556277668895529781926969855536648619003392271683109186909310610797769286095898912328096711371140257927432679928155658827571116923116835525316682307445780055548708345396384300173643239794564059102216002881476968805075789349331961380500451429550603142577490297521226712049552089445516339197251022884604348639847905094704799874394660886348183345515361251719350336484058226419707301242073141657072572261457464911205569600122059489472194114353271824978644920177987769731392206758978026714832682533026136004453054143326785866615003890286588691464268468223584434849463073942136218919480981039937349152819417121045442283024438748754034262305029461468104703092767705329991943290115377872823101463137592624728646676824319908817324146248267253376671152778747004203652442343090029452268808509843834881221034628939636388034530574480633927063468280877675053004847892619090030482875987258736182423650850090486628944308132707765682934209572503364042712947702925874963638483903326541733297010602250019712854421414013451284435204738146617129349892974740978145954518500172192076619325377519731583645889669126934913361075154464129381239599566296205405491980646218721474419765633961602426745016925816772793177078602730283053876145008303441045376343976167459595652892350039881663791193812352137426736784342148161540859335671593820318920748920455806296116620304325526829586807697896292616638906406656842331705699563757149583925998757183875687445367377013462588491306979338070289173989687467983465135145123952860665977958241355989435986167616655023746603354587455771785830359234051438078430996118879164249353190144501691361231892272425128737631239542837063346124987986510903131547915396682264748924875655575863704155497227101980617301826277104730761944364329295628992761425440906655068103410867788247350347081698750350259062248196562088189711050512176214988657427030206889714201217141383657588583320478928712033826820168496934219009240861901948756951395368008402214535073749924028992297607069002422216903073314092989729904789843435955162104090619347986881953404731276384064087890856653020461302249902102524129311881036555441850886137655544250703617978678765048529481551498513543152491458151023673754884777581830161278855768941364859495655607160263340977570637345318945194131649622915227374036017083882766453004318732358592278861350201842904595477485170227961056960395700984181758453987816458341871922826205441858152358694081755266662278302152929509075220468632529273213194021507260065304366646185044526628424228751940948430001836626059638498886880158326428514659372431509897590692739649547157437779696529261493669106896468036812109659574994387678791706026059700048764063388998127098812041951439939732482431754021385367477998444718869984820986341173633893835979451622340992238773308008097621414798771812835170487021075392847139145154312439118030620274806865456472735811352213092039260737872024374328083110759217876642530880291780684965832549364901996558528801648140663630544452855854361492435878584539777419991596427681282720343255131775114666203300925773354740400425678339418109004246133799816624159328088634708685613481786223547442772227587248818200085618799596776551215388530943851987750259106385197469657589317346924134341952353743007838882344512222009642903310607577982255853389287729427301971748599970953377061619579831737587832735438530683449469760699235213827768946642692386106667450584118820760385366366521285843684124466220895171522224928427077807311767452376376084061111235465275506696279083725332661884943612900803562059311331852571302880308881267041680435881694706703709603038635527395470312309199691911042575579562646482778717160491398968135945706282015017139068917779881773558457432535922645262293011036619112728610121448242520688678380130529173671894059288429777545755395621046597336930279288247099399078171564159415576764388223406304110875770969213050105954701893172241099561067607582621173723567650374991612417422002971069348098795740660286782705358799695250624802912908617487511158255312416561353541925266923275016137613130222595594508345163486031253647669721526957914705504717111417126710087404913146818581771298486864875943084449560259633499033688599880364998369185320104487776965602911009971930333169199288664668195947964773120174436460319243089471555585930015750738581153149482536006014306570321645333869282058155165855401664840379079249158561209835524556647954726798907340179078660792702599065182159016902278649171392013645220670335771764420224571862101295197397845329600042326802400975686284951452601776439314003034685091385226875169040341405669353446320792809590182078579352697954113445435733059701695603639458356926161369664720883645698549461275208840770394613197799604230372131200685412200117212312380829975494652412119070310802096306646800401498388876756588953461072339203340019084248280099068738681139656665361664534937553697169414393012629128170068619630999024939898217611206390404065472970398707130913641715887386110408942243300039718915685161214281625251179000588269697475578070604875187753391466761128119958462722429045467069290724410115652993829756868995498143590938971392476969730416962906624068659885421397291915367736681349352572934751675397840436846763324458479399125558524651418849723979034085926388237948949951363856248463548581265035290709856771072681751243435614025976655148048714507857035565200115263237997238633981238098228541887385533287074016388263106984078183356599441401304418092812368335644476295934442339379976001604494954139813332993848374865960781159578842765198599840971505963701160290985008959462863775522387911927840764984539406350372054728413812416132022433117294061874507929423335412182295714698309724294948003721222433401240086053981386095928492859031452460764193022647086631024778192440940952345122130324871041357924951995819022680193827203189563820946339865769256924591824075125755291929364078003209695387635180756953299011875144122636471718300488509057724607870363474222470854167964294083921730011320251263768853620679872073384335076645571208297907018440566943589973932781659920796778102966360702631249474978514309048591031630993673693848847591154841600115729514864870381111117901475893577548628398860643313715215071475587423097202879230610501663813581978010936285990293112364678818090112157359254698368333404508836753978412133113853916564781929823711577116728158015510571544140612400968077990676892731282454374426624107968081155037062275406525946499401741769833550581059072534677381644954572085053495137507752141683830517929147755425995380678476385272460048816045073465986988430628205801986562682088618643573797105440752242987492769385281083507005123870379172769847799514000678731974318972806088989366735778005385518179745590325175273590454853837160921015264769704087758934363158698396004605117126668532549748861003522053672518447070491230171379223065231291171163968897056275218576328461825689322748536718405564042076591415971715860096802421062276793953265456855342407649581929087592077444581297942791163721578801365346357050278493782550901264834875318138063367165521801600989942972779597839587579214778145304995298896202402418620400215737914618323327085844859814043387967121129162079645345525313683471314073467061993228102464395232543530436042559373463226147556233148351453853776244558525763429285773562600557892310657560270351861079941873255825403822637522345778653397203045904955187793087770991129883243064066208111045574130082328736450238028881332188146118294968655754466309755993203238020636238894743889575029286204200962571712295736139668203074070727652017850124359274246695228258731629626604266537505023524189086350136971590584571743939834058753431570569169638719004609467657866835055067751255264078376044492563091716607052190144819005793243760221222668579804142294553513735951768432098139131972409747276160074335442758193710343705465306855506679005920319325029423607251846225336705117769403064490490134884334619382406681913108300903512448071174189353396393039884205180263505894801492948878441933281061176824436858965309827991582303049063634130537847822696934116119343079721820147112533621639012996527610720901721910440606660943124913382537710425361781411415725344509762897845758632560273119182320255117640727075400551640642196208718068360723553981211247886031368285730184942241836895231263179679225294264556341044680594148095140719266208013883837833648164428519570509446732532054523067751024106195128171888467163469701484547103859915838862543349067198594902894272906967141394798945365460580839593798784120129849798159909560190158877227374615808640918000892388648066075158162199623252632417230982658670099304596356186388610348246991375901609628427945536203537042228057457473490988839720535306546849954836828311204073057369350715753175289136160754878644879852842582724496839495979798815807573047253717441271178366412124600616380554917324568951714031633839984252268591431235737442331502010455955496847270360706505902741550977888527676843309177432670095297030079959949247834566894479797103539400559687705709995899651622311940036246345247769066402143555334140842554477634941911748688132095326633067900539770741147426692921579418464743413343469343847120784166116573168239174027453067220152176010134966248248457357520389319362416256551248234730306710936364430304753509204001638524636820746543762594893607530158950766242131913502025008128390089446200315611092744514762901984329839705392752964946384866663584866522367112294594431542944308621095784891305687916257392424872734962824520162984380952156678038365515332710887756891275002882555601502660545658681114498790373571094722079656116792173770361496765419810696626184108681247675513585023341699048387519984217539128453307839196113607964204031513129025192364863174186884076210724787981310120695705125768769402924760217761469094224429144059824342376697887911432111985790512937567054181386517975778426374195238722159679192200155625953116903005186943240246227968059881668973721593829695261432551530770070653290717410503639053210496240375260235329116712307671071947708126105254255202668494586402952289396669398939413525203384044814333273516612607082061298513781981706029475885407129749828549757927408274593483426287920064006075707118214499945430833434585951615360545796543641229885766262932572209228929844469714670756145550916992910022478153297994802825991779404831045046267547469585825663560990599484460361554746259319055891860704569309602099700207821465600767974332481333591331370956923006134289464952400946445672225450233830028979084363544815219972092442983349308346294977189180885700502101489101313854746511128881281164327335905344424676325297520966922147803032586544585240776141292070853071599990633146994236130636077603583545559979982521775040987290788171373391078978397640998520098094433713823772132633812815741140582495814782455794414805964419268388855331353275579950468328792037155093585198170156640227513857564068246344517647041653354253626872187114390571942721194676307149792190119490468161721961555974007760104377048861566418027297655327444199856655935515059910134808815077002679305157425689832262623052953132102493285445082194282389515047626617512169702010293826467856917211516228050525726803221811793237380530259420362171178149360507184155148158325178046443562892606221963973822812406902130188359963210355476494177394164914207787025576707350833770765278125503787418510646710351512157539169169438363896644818703447454043131629348478374016037103769969200533755706517881197412674881653253125453606307836887933420303069258691550220705641288205381439816150507705555972190571677186599706744355735525537203740577732222620856428821780394813053906286498786533626894471082917053658080953582571362135774544396610713018914150904670656036749307435998380478096123411510591658677034244605614676360462685138738845915375631987626258010020116897000194806384189383940985521433435612986087170309878863779103168588050482069618330213231683673223234799480237458536826108470104971787212529696671190327064025275176748226865715971123354258377823780818909931955370982932797341000602104796004067658799433350705144963652809390078323912225565465993986758865113949700363292274300845177268074602512059238109161958285260614793577637004095634516616125576488111233786724908528988626218007917876257792821439351626248523583436496610896108604147574165907143336261361751858027077883369883777482677959659581652876123320495041686125613602109057716883303505512555209229293061123856512187812155677198895098589682080254374557426384196082920956696492919013451620865416072605335416028625916585971670053041356919220963127062242315553336308568550096998017297557745334708972350426395343239800192677624224958252502069311942126590958924400720884926476145936002876189501416617107683584776608269897045079899112051590153200297149618053279782951086878505324241953843093051966755385137412220722538946155353745682902315796000428869426704996899507229023200009678295870404029521651614046440750245077558751057420908810332047100121031447395842160571389882928916484366702000914616237048672781771183964212407716504033518051197277556741190155339068638309710161726255651485549034658050803741297622759386410055702007584086254314909436446018915904136630628440229048455482249035020386477203632398460138307195313605009065638951341649267971036423105139192895820117193672223379247686917648825124105312810845760531101206176127738857957322123290972135670314133199903328224988051927571263423739119531255790468704505639599762089798027960780368327277169007925824313926797370531936887988305468932747693358895568156129663694593226121028670965294967956502840668504119175899380093800134492585560033588878135299266827645543868187254840378242672257266480468736133797950576637714227707311038199759057914629742641297359458527884633091302267944955758750005686383491907078330335643420816037891355093504497507297832572260190000221435139555949303764417366606290131188489659193488787753180629004073851899045001416066902872601319063707206041931347315876936799539378206890493244133947999315608700278616639856778817532718856829289590672255973168785251970950569786181105694216213368093592644911779495796176875473394067707339563548241766519930165049343042451566687125548915457641370583183445614377695619433635744472938571598630434108943728795668989821979379995094944138766561878167734660279573679173399715151493265570787445267674464488904091962027022648357595270725588942697101700325198071251267373451929568367655287634227457366401172692803803447821676761548878658483809951970446259937835552822898838107397407412125235911672051921618714535359394705147153775144218696846945523037184550501466256562278832190777557041360210189272992150408514659969938108510532231300502464801316593276926703197253424975839602969071268904748287401487760771995683925260158325186136039567614121993241965289446235067832887774572667013239121126573237977033087283014942254745798532602364177972602318657681813127269670653096118594395565351241633685641574999222202889882093983374825596098439572098615362010845109195076846005269504115814779544325918401019775343625297420226995420065042911559124770263882056060149202169261871988933577478200853301104224473964441579277881451331549217887507876735009252250139981961103767784197953086383598742126684604226803883174577169519166016732203330530847114304735311084605924529704706220824553896841465886527113636042922389709598171113427551918538983929524093599085601477934594321010044885865775962340627564717360661189861539189735632483402886204764577594764618868301586972774280675087306768932229060008240968034622317833719027837609870538190839462803633705378431638357980187877803371882449319929312808263968803965799234917401232481828054534709430314881450465245725346839577996430328326856594896332029225701872359382029583427967224183833603003531995020014925488097006479950404575424152033940331727326995817209762784031923231712959789940954731016515907453190374444293761757843013093125964260890351514210313386798931605132472603947061664511521531235444019493239663145914156668286383604402591251561595347334049330230962595959240673144854860936304775609322398893432768016036978532183176690706683155395002626839370670987477059280141919763993255300018353762486220721098117605909218844236131928664372125013057262209637912273774922526442303580274466047660043846811563941123080830915335420005913152509594931029653314979963017957527430178390710750727561398820161705967431152391383711665675222573092365270063588126383105320665017740934192978778738959571995996651628828348495354580002008063347224137221003375008433209333646846111193871523369000258999997152287684670304680406060011996024009849925338511884098451034429375854425380453611562467441396575724527892197214593123223582024480122449413776281270051526365885839439871410415338752441975366233441315669218675207947052392813142768846216066026900161432967497795081613657539588509664980346114671698658304243972069599119450893646951333174290552133762192138535645789556129169581680587108179041972597898185102549678753400283670752077500134064784826017610624067021267478242693889220013536269610685121486310437433729255986608736327118862985424429951435269837961023464504956175872496936016376615339725663213748703670177799040597280762449047447949979092727876120742070786187436076317145065934811207699073408563641060906957492013053454382698343719208635042367240117043091031656346399036456750090754288476122154269633387857210860816281939645958665173254273635267492618509221127398624621724856495183161253790225325836466448256632443699735437644021946454779349117855055521385138302975385235544095609427431739392756135332132888297121404311908097812366292726435793634651155059430730736278236139821184105079409349703959428667028148726927712724817649107450408680640326027670116164494497163546184633049451696109842719545977604917909739308886647126602881714012028766680734143543828156562671150736757242414898140013768105918270565604209003182068470290607877779034556172810892078468951072131747897423973750537149584320546615533551072799773406997594675370575999189017536888854167644435591323734622470031865167253668344886659744198649967792868692538360674449936483688002666430053497620277165281244930288733431294200792731088589830628515069897749542037404055371967224278770352489412798148654502461620166683662074245428239203197549236070324236945414386148816669685570145542762071938169304842785874548333894847333078440860178437907351130908852446494377434427138061048643486518814561634795219837604778902655605049341730748558643625600672648155839407833538555295513498852704624825701753489840376094427403189366203378798513748456496644806200914257725975160114592888545410135882044066510177498158407127776722690441969559282597460127749643223507310380176883073404002967493021853978785134883139269213233990863410350728401088703125561124360346367650075954254161878578566701778952102615676412166324490450725815179672481284395125243332156176436067822924462419878362616481984808034291339397913676542612170054762633286908304564798520452463765043699464423157910696158169490019228193129066467646303852056980784765977112058697545370369078544625860244631880234410021516277359685203727565381626905008757448966192386266124471652488896521409060994815969050784855197786044341108389536029240689114013779427491426826227244126309992994037455402414302690751785799133099282643936500878282139110623439679611418916347504717556984053922419518874106526973285758574399536190253519147003265925662081126506806811367781606634085716958509679783333714246081961069726733269231829172624072783202683082717348697707223297614314493730019563204128250982872015284714974116281977086573408258690696774263030825636201316627804138890001191058211410203416562661057251797706057529141938276735955118582338749616147210583970524243144219110885401210150908735277644683273159842889454445342373361997604487838340223384635283179593787235615534045710831327232493821955458091985831163740273995498063441691757257839542333648695784132493883840775829002748289845370157861840142037843581083620089241471133169775998003535074806073782327982768409907090665643946345486862823515170408451247680182428121588675339388581884322946154835988808388481784483307696074665499941400499654955590797098298831906549179450280194147214810323470637521428392551640916196514682633658258498428862720321616448996746648875728368323839460671639852713523015931426528665897748454244614119637887507505713439584809254296501793914362190255414478441340621484165005421476881839372127296951455821485879766774342309767131499033950860590882250805258680729540184724469145028559103901135002689615801809706362900489955693516070288144572613762714418811887883964348094650000184979903967570960660980854288942279772834186577122274915709264961034744194138051942947633511415384471296908410181900019175503750547332528166889014734226518593571552296606622524269615041403095907454511249658306206268424262350098870394051404794859446023357986055796087592368028652816760967500758475617454809269701927572182102656998563168059833042162437338897800869150263957543823070626012207590068326675567105847357135843304077975378755306602542264476614823275514765636281776365692737308507081276705825791207960720457867559615169251783563125919428978723696730231939692642519073736889421924891564775136079244322537540222446846877746268125447816942191195865334357541169368618674300366054923234475265823770137745799410984699298799360476013233425491729444720284118379427879380029935663556851545910792930073619110557375751095054639390080269434579680278876068247315463704306475477056517702714036616403987752438624165047323883861548314155611912528077588336989420018774327666560502260344325412294525028635260200840938601939925785661189571532162683740616918448697441526111386205118261132715388338283680978862330786423448245948808409960471302681423257497341793200841748394856269519107471722889382863566649616709773095829213831592222596499973515204149416392161382732129717878148264640065213191888593219948592619873638934563132530623013099004142068910659996115822399339847194407802537147517502542827038909387459775894367487776499010064577187623468838694158733166953483324757471711759243741595435435110678298557642743906699567538033034327640767733674578038455819983529707643161527461577828509227488934965503922884532884839919923578799047015462884915457647088087707819539929600816622007782634952165264323195672126485183457683769099627337418212228517863731097946444805082520188293148627284592679767132398855820240024880995042975639018483048301360740330301872194766470884869242684763092749504089469644000865742926532533205243624028792261509283319391990190979691383799110633272890919690033333012686591254422565847145980306949836580074264458370016606121711106491703079475864304991707808810942024660988998901193633393051280041116765215448682829050552206818828397875228627630195266786822967563160418300889443577027230563158119113232581128097622750137419907598894486853943924658349967897028203297720825563973194056147110228811728254930065767464589046542182664694178865458036246673037205578423344573711488468118596996241303371011893280848642490616928187314544185106342337366921527974558316167953000671337221543560565383052863927813008545903010768638230574329853520978787125797007587625974638253428937369429058178365790949087935368407232474124746026048099585604646791993991406190921569551515943082300543232774158818775944690903712931106473996209663968192406878104761371153320884960925214555943709390290191104293649918475254678533668024564185690605386952832193978575088490843301261073599835638516897388964519915740875936687994116442168256139006900905207175727838554518607020996739046919437800596070828339890196617754195616831203696778802479569127308888633701613964793237188692434954283116600754841229807610138409356824552390300918831277208762889614938118687579483996287187588845995110564149912693798353584209814066988804647204887597489999794151922234048484695160613826741398012010415440257107239481189174683956848247183748761122876853108660411999302209329651949904620869629532331343961217394383097980839269471218167280434817254994901100991429858158029185588379762829192196872142059696317735020258535100047642125012830866182003657133811246748508545160059085519171743174052370894055356569168572427968571422085521958526616464206259608668886087730312212098127462076868445501672932692655775603435236113906371806920312590384283472436554654356229401160509983376203572098709452412097375997922994098328344380905580456064825431576319528397547870047681716148544360084521030858818498595750827135763831651636977382395512429007928445425285512320726192332809861998638672228200541852734131553247841692241092951113194825397985913433378820914331938591179698936770125860474546868522091641440261790043273145382411341289767470712573092072634526915401205947228099976909859699746042168323538688599630234000745777507917807884604779097683794044526611131493968333607064553851928441629309766431785310285933196907236403881343147964395495639087232973262975434740521909827361019672445616914496722156101552846516178586478932662348462933560862603892997891896016815212277339378783507649240433644478107710308468422163617025797288318140600672862920529450882076443773161158873723191144951555735883656247460361943028324013959355562974711173383889195155198591602117654934424941918586078064051965283314308980864984872157800409417263634700812872015057811532243088740003104696423062922399064646294823510195326497719979032044353153981670813855468976347113333055894731916243553712184546644311660106782210903846297892651466409341737973546360825945472667514933511573480520180197277872342402917243953559185624264690439318867030159876912915180549328660259209916787378203486633493158274991969573856546740608654885099442058003828559529688194460958452834848101299716695695488562109755489189746027597072262443498437168782629443742052570233736162949494933988369495732288787733363906441853750888793172922290447765250309092377899969356574693466578299608625412806525438937575965167563021935570809974806435883779307628080965265358982143373783664323879572324066061465024744553295132323167931667828030659713603427903440018553384040483143671153798016317776376348580294025071823738904085054105624899249329359666076167583262748092057249873047990607351779655378382854811852415941663714786191846566643510185615142835443337249843003273879254049923972034541487034422598540721515780464307116781394487111071546486152307409905788078414468375466761422603590625650145862162060188904747946059063829754119102671455996202278260524938466305317785554192415038515987835649345205252956208259864185403532908164765500617089272859790532203394015354857798539950415203472539999453837440208969012270816304661205946980527109383616110975054808898293465636175886248835714240533880463095720490587796921911418402034994413975145391233941793608195405776054847805238205345459199341954991942837955459678903806067496173422407026301743818958901329218429961801876058617164610061741903144228599653729183303701521319193224225117369313519975200245030144084745171191750868557941978348884143144998968304830570868633001601279777493963387572464574383751713643641568070163451161142600470884293284890579704898130620561288790789551730094004025090198914182836947290596108467987331900109749093426650201198599631137037615972000005211176477268140866756200449581426852078122901498365763058024423444846530652847902023923743022923603936797685824966220693970816311212197549813203643098929683283897977996793349889980865328385418313505218011743032585832468783416202980548773842773129513804286893369796651323958099693769367330716471158610507503528010095087077173007180315673668052044627275802398078785884740249633020951353400630295276040727252461824743426726304131657362685261514821910519402155886426267452015930096096859430725991838489193872416543621390355670176791175687400394432261811450616981684258032362111197580121124066826667108122811896769745784944077493810653815066691017964015083756861648633978607981641272793166191435929074339926631107168867347049054184015999549896378122434313015199449175852671253135930349312946692063967883860272599829102999526628048948349111451970180869074346648962924122690097498833256484910084852326629213841893493449978735094613468609460307640125357195950036778529025019630214818761474303026700370300471312366247501121741880984668354898055793550249340879072781094752348055047470715140891850271753010663564568835980136275416412414677005265974600539971553761102921214141440445441723619207023790740832540380558458634601563167316842395910318079873602453559151515055888183519878139345912948745531292094167056011938521569797205536650420761032410995673796784193230913068413219564755259872059532957587626142439630703635710054883807618711983429271883665686274963538011683886386886177567846131257767027544984239426380082879078427008524854193070814762258297157378171692955654746329428188300779846473974922140561720516141882062692746061647083073357640047757904456041283639152017382041792716957844314574259932143149291582086114952967774304951567615742011050263187538053411658616649823303369917138959417966232214655519920772051667808373978811501502136374283246434464619747205301216839170914990549705935351353935228993143677042924091203078453131279676323923179628548097189490117673028725717921753637021552963227653105712595926343461893737579275533559675553148440838369926055775124846678017589876861327376241021047662140834003850607760407468167144570452327884873922562485818611907940028833027722501159987866633511913043131043034303227278495791205471179122841821318294588645459886303018876665195773003306890244460590374235482376390791676653005823560994800037019316838900939355386377298744737159863055953543767671971124570446012575746531875154196773741179051985358369316377685820559478559675246715991447185441466393856755615478870890518084777188325530633701421808933895989668869151301662782383693890247160606209193458444758525682876459446875876976367743300382750524706327333587116588464783524124004413274409220227714300366656873202769692827582706517874468057949606772507058085181487221055525789635601139347728664802190038818704990801623029998369214941267633918611877406073850966514675176897287335789634162830477786100721215467545874295345213310329677221876963736559518936973620336906045616032500392564317429756888264723459318195381528994893864588830507252221750397711248700229162867708324937326907028721873011630421800067179391129963275911804783890016701325139919644180689782406883759979694159966878454950723343761122526631526741232343658374239321048211806842728851636162823707801956740054849237679245162820870736505019870312533906552654904131874360668452134147746077478393252409242468187165811529602500165445733308315972085994475773352199760068051834935578908045149425633126623446289631933414770180247103944340654848817462943280299607398779921704047214251266909408049908899350091759711471663729258617790495053712491987247929198583731205386458368337512773625653722321457956458990523194399299646986008980051601084572292480820302317344816859811627076000765222207365178887458530269981850221859795588422925258263040609341365674528574817970181964306386266510233514288756117626553441683126127170437222376103416669157287549608123008158917627470338157729335925460305026103772932841093918041114663425124409537299498047350480593071325885874123157327866097672009214171261414804786169642422409692361419459714368257195126687421230282026924552226109267251004957311692765431783094649506048283974423949706328195877010206050494160472496285277935967156095573062208891973879869710357193463993931177698365165642739304784119380644160516749250971655881531606134827708736465258537492694306768304056238554619122342418935587350633416195711392715886325472601918345829811405153444268499116501618874036798761164909318600958822632006449053600707785249494296459077796145406965001564220517016724382866319848753404698085896079369902595470516330952365163123694920565344008745930047377954610033956798311789553727517949104248404393687166712081528859281235339538352436829542305903131652379587908472597050714045274817930650723538984470027688579182027197545787799201075871571452074665792606516061506401627771302151175721869795710171816504582873773645529595693290694840072613313459263394727827120112257706692444478915986097215621537958978431356961391473457237619180323649819961771048943825552012233376357600490297704387873252014610902640574243856883189377433612944749957863359443453434110707853596755660957933547260243506066265318983975552503563940906136375931656481637256624031840665882605533722544785018044808491952178966022555092633998906262074662691296514632007377893794965653843816644095146715969263247695396130594516264774208133943206221556350482529932509073699949050327732760430553649715843439800735653990768263435262050658266155671650234958916514194092269121014572176791986316549452759400564333715502873730799952698234923049971890995834503215021251153741905127842090860283731197689697596391812103818458053966984152210645384926410352873800123921782061657123810656401325906085616703507376737704826673483709703946356026501734766349836666359669285278723116006016426087164035290783326679085990162536097581546067090933741153561078824914768539554725269239219719109113566900126459246745204490812950369058633034640432344118641870243478989295107225687604286816933700282344586363589436555954336013282941756523109859521698474900017759953490268653918229119018937761343000188186579822092277080351620235118350584750415699632493651953146141084550950483132132460262030544657371512500770400778902693932501318071853129550093630522206988638306054528605600385190389434845986374263553165303231232903754340391981180195475393227381678866034546531496844807212017364291335062811319957931129718803453541155199829812991189354910235021088134390426313262243771186563701046554496542325915443476651751298442563623268401986248403322917403183003543867415608914253275744111954889542165943108228790761859779545761800067049401926415481686813368132665046249154269632156234709063332059188437134483020082515219300497210372963964036686647749539061421698151725599116393140356489298877649194171823005252733417564845379996320759620252779469993122538095492424798568097040312910702752017929632034562422217370218624920197249911252494132867024024258355422573226256434618473163857949097820289993682049311543289717063230216057095170324148700332740754274168104299938252501223021809320289210103190352704203599378377533646010668661952640225157979263732585109644461199357416070690251525277117472192158139591560667829530772720683996304261810384172676502033446353826487571990776770848178267251181207672490986874930516675628836054624131485046637484538941377344344974803106536014244496045253590884418267292502002363108923944404332347102409773846604477175386984615424186321269516244512895549659630306333836317883394275598313142463184808714560064915094118992982376710612128045152704252099119748305132033967128746374238659886737068552952857564909992465724332913197317240077933917528633270642072459850821024426382101650413862566326936419314600646914802719656364807160066090588160819939690173277685192647207086472208811618665493822530266322558039954384456165606206841201283156221223610979311299545959903447909938099665066332911732850255618202662859565757978516863156468985281413941569719254984183167352913339864321435788410422602929138022936363073500412785118026766892830314768973227825995920484123374134653042585478449535412117032060967741792171768545038083170371387449703188078265769759734971052271188163734436506958852420331959639698845853311459513979612960144587532249716940872125244900077445422148917215959307657255843216560890066464031458551534950933644280004867602824715249542725717409042537361844338677592843390061453458343766833373328316668657897262293432791515000103608068822669787221372009803051139406706751446594086777614952192382881286929299538492182205608369545836310055212597201094324579779032311476284398180546443255593702094611144035891570528237667238035715845275354357008287473240635911813283809018495529649822624350728053280358753117020994894661621340529195086998672198652166397680572172494915992521196621089118640395551516052773807778560420686648779022793462870667540865353301152528273844172642906868906264070868846273370319814591918938098225329208075917789777922954607942194238213549279859923094320958345810452525201417303216765648562041825213846474599736111648164047140565343890585865140492740191843635091984278448996477849079408521352282379798397135658135946019572065563554257067329481166286846197204265582884382803591694509762213131648252507063908254422991164935744769801878400738111819583766692243467875992351944553913914067536017936279141483564715335037136033734559651464877897725093094330929859749925063214294909908082585877104746720370818051981417208867203077466553765713116628852491948737025851873784599751897843309754588361558261678764589596031020374960215070915104903626433985883821357250069777794212287004122192056903479741633057742473057167061165907128325886379111554392254128141356593064146530849312056824483292284965455886908921662412972123397309168453030449706995549916354650427662237121047849016778560096138568754601877663574452663801360068122516407785369366682024738042835986858815098174178271131326146138842234476128227020308091570892969841753055171139123342222604296299595699502192618417891085778059526158412147634803004022717825299922063026969896537127479299020239183616951485096212140731143068440659823267797223538447383819954622574798508680104251355062423979506233731710938426905416387795186082880119449501311661124533217081182733124755327929811010296893633960297475620163350446583410524304588438068698653214052731506128642243685102289808705849046510204195149744688307104403595054033510196978303709503842595131594994943610368120734053325486638577371504873006481202302957042832435266132604450928576125303836644366398653683719884700457054941445288084380539554885637123518981290941394563958164586654214381645290561320364230938767772102556642916556291527432372574468890984220639661705728494006082554301665202504695887591349433905883810480334685177991683658419801433407817966656422113662675900129454261882161269146939282577621585070511206807012434029122937079197412003374333903319466702017730224263908422322673195611122150604896685158001280399256309791353528448560063718103061742989135712072572335146201786817067338769372334496958426321068424336267860389313567546407667683821427321610518630268799621146964848463290585451770299081738773649887069766869839404959117783110618195458379433694600405115567465231489314840914100740442198048177781562172329549246185870349714863512471482013736344789274429537474757267742591421721381843783868464064882628411368486924713604017072897371108723932881274388047499538933293329747346765899865674029503893110207580991571345040282204060155289927500942277740227797064642141367683685702525836067343272777490812254983852866802176045399869822868316086093225913814869980924419068334059619840905874787529940387483832256828831696082041082081133383966743755323047087831519415049898535430516525278317885771191445886324473486263945495748486509185948295284031055046420361288647927086732004860245122497979533021156336713603183015235631714233654282145741307911754793724672851394924056103104357492717796660714711569292382509141611156372194288752868192347681303518131566789502255906730599451889858318163997772159424664807857136931313413083009911507438433003805951681786804545681834257660173273130070761295648029219447746719063263653051181810372900308166365888243643354278512911416550558223682310445736721859932093749237775070106950016485771776183495964333639129959937544735153595497994995838409217647678559894277195749346427410549157769792019867202164686863262660270507039775446387157765608226985686403693911293098610329214249193102236611810126357595852756094003871075749467955331998381369231333471964347457206287624282067500396401287587427179089382926452831573740448487243702036257090825561271031229046778924847766112933881012952166678383009730669903986822146083444926772462884694815040200103441318061465753864554686486286163712101447351583099904961086644221760486315028751926675447559223107234379495135178365689269729224267518088947479319233393780878928515755087613129163257330935991407195877557916059001304543189841288061928477562191932370276621424205886561461690394554372506150598166528689557653574660806387724896626646456598050727479230430378823912949578212568238429369064743472711236865091065909970756462881227560193583744949508502536249797684881755856897901483404185039906925510058501734279171933536431672046675818318542484610007927679229571457318266630245408358142321365181676844147742139898225868874956305365457320518170113839506918308777947750412039822726893305986275057355901245381460542600239988005301922226346419710643069746945931409632578668542885330408619161999246852315247102893859626245202183459118222568126674808703832219083933847450394532381231496068378435794858101724069052985157329613543667029052511858846847137203424964900882638645674838731067158226943799976757967388571769097710199113171612904310087701090706757009210730438434891574327780643307281918237036798120202619710719910340282264210286639667701694872003043651273919644588495384742293541467733303804560826563314187429882832058594508252290043742259333508898077529182837623700291269679516976983099978736474140688916447535121696342029885733845964094666773378660806274358472787270925580596586986844405363726019684383363075498161459477195377647479506957360083158427823848050725309301482082771467558309716432510552830305283433147569608320316729882693714071354544241668489978360611549177737311398499643378297689548809093996458603251893676435466730319832264351394448118134134409893667102339293259749928892891614618483485388220732298107752353489439837648202333127151176520322320617672360173852637940403638257834893002870309754196875049982571938708153071979456606131189635331504385829269194466345132539785234044820104365923103252326466140429430144122446297608509578287509070789560284809706281807891585429978253947372000924681499164801065363864291313755652139024475750616772889403253783067808624336001425652342596204454764605005742829777264078316221098526894469127390929307598779902543100002324185718821864847471819108162545127409263552328043931309714001767082076227119989786343756532955258179192956668394973153562418856912199132483002108958597642423812615318477454722265730145427876854616074349355435625116026108677831480536219641604868187328874121218530663559246476341496312129434268473917010168318293308942892937726852582426850254958190112046745368860637919466010865310212852928430338877917796740754064777565202653421005868057196390617875020595740613024570826102574551808475482622356844681753644453874892509709047881511107622272495714770568483955195302215911131046868785864629422849661820491450816666506191624581536904191583452916782074938696230888200686377377630946392646163137057782245320961227772967957521849263012817594052210067140359263691551122082241209008096222498998219254740147833175992175838310785464631918599840479027638536050250847311931497928849705195431186790854207840668938958363633664947879276469194235094627006423126141364440105871352755785205797872878524794230648764055352760084052359201048242886413891275834469643699479803399804196966229271131281226427931742193027516194903309019957234825926612051115396706260993079044200571601306527524986365773821755350292806557095504423334999718947388536512765286897009600582704126171555358611736134275985198778977247043578085292036727142291630329409813439843584258251021620276023759654769612906001506091088951799849965530861821078231564551866171056626801710887055745115811732346245168229856855406647773736965466213936252203216584081717315665214029316528289695631458384620958551520293364500167637867439825225657949897192722681753059833447548258274287907077520304363077372941018967514460104826764802251559829322505987089904270834500629110071529578132677069487438060685102662487578594098846242928126952383166362878222136290779971992282413266003875340389787700216993581917318243443484490452829071681222178069565850024993632641138989343716991465403935057818374304728060954249145578911914110174394097516804717731049465388562053420418296073946903800432879177574963974125745531701153264767101420451785044207125860890073441873589839929514655193874989429406706560129485739689188830108179881500159649128088970450944630674960111248772493388234639181800755461426377562033929046732258631065348578078188322244545131437757477490566994875705055859338903311696218777393128986198135373713885860693461189906207523789238662959575991456215618298288796593388616095534736382699631940900056767569363698338626634401124793627218892031967595139406693412799997546719674191658575899890671531371576627782827411920054931275856197296478808189205250570659945390172686772812118241368432671255808344311904400219259602455403970339947732513131653288569014909703439389015322549549024147396609378565406004225836263576397228767934071926269176498635267978171071627541884653738901028650632937731916078678928004861909029686750926576330839679978914215867104685954880529636362359641312376288295989390518520172801193116942608188400131805630321174274315107509961098844456528800041668800657394521294378716450389786871903846418673530420265924372565113113905913523910010231655422974367841444308846885143912157712888446759269422114837213101337719931457116532498514661197885572424928692256358383910388049848128968126127928793113374896522829389581323872030578001598725650359826308262281948892742002697934432148102132338107197937910915270541500222604121257143298503817705565449659348608931700883927112769581980772664402673854279527623775946069610592682741463351805674547892715029198837039212292275599028827927222221798891252910428822337371952715371935338100536113955102419806015963073762198516290354785412005870395735166802121682187224502140450971968067822491848983965163255901166934037738481223796281417676987129661799326229403332344058274448331976874315276427667777376285730805857068488376801588263345708544379834227088819529821795224137012079845148457218386066840583693284799537805983637765874807566207592999893136275320114334733538130067889575458347958561566233496844138262183091534052315110363216785254497058851901179957276052276018257024496525637088035478864413227318806020132215967330475893928711430330597040164535807493816858839208524781494237080697597930175674397004585019449814242841221058035093803377290004474560847721821272745983305341441381189901321591071703379070049064173350876580681703209417315399849841104195362782798855211251429746949388639126273940595041640999101424883792938031939987493213426503971560666191662401493148121774015866928127806606690322245499740380912125395096586897506565904960232236300636244689035299406352090133087093055302422702435517219037240951404257069788399936805565090622021838873905219603546965077869199490254793397610747173417798708118832752365413966843947104845920458018779760949399992720222284831256215458156243719275537091394006928008709617283107121930171592880380380963932036139008588621519002623059347708042115763282998124941432213998205436263015746464336004628069433967754982382680485771951516683269055736403299556511575342895930506752958151166036321533371433322866363502788589223259837126394378178827263425983769514911592679807800030239169960832403284208842002015027635421071297126296894564570950642331206260280804658476527009169722593480929726902551950738257466437912902971080458978271432160389562751095941487698541204530483443072238997606201719933226186752973977520595746544892890363813306051002696063484776333434597160976748859129824140332064091058262528175730567017671156812907067771993350192153775991919905637133275701120410509302723516787553064810818535841516453883991585035363395120625820373931269994218009277152733349931170712187058524044854341520243339810936376299213078608157482649012386940938885584766139720710486178323275773558922470969123496346726215049191039637625650019508150729770839446285929352909021690506825779595568537738496496048591165584275953297281798914853374759889786991227180145681270498130342780159423073076747269710053742498336486541642504417183362651883814576081045084797260243687219677988068876426984845034453868153570043794351225360648650740972613152750305797392595452537706650454871525807655467316949739797975278118390558402538763381745656661719591073817495637529470315478131134687719245601342090222072956541239810128532079678866947355112413215239816842345131374339908770223099521457482263054665797813395640996255638119514465096605554461653376086140077875340084854806160945207800675592468174735442143078761813942089402868230897313406592157955339156357283636141318809321835653222659983358866228016181466632418172730587364326526615270708512520968419883882313123523757053184793959265027512330749900253447739091498193734715780290178441321444453220704838914927718941637275778907347768533131763982172865913677960737660418019144944578508814249858805925458417065688101553276430314138586327059237611120838631396035859036013843243704119043550910090272950173349932279892678074132745217052546359526834891606533376859607666578343411896315992253751686876886651457782275119378790237685062857647702236987214055754276871818916308941497715764123648638281460932317339020906974585846142456544756119849666507073906776416479298197498322854656145060319012301075757435754425903364521415927505550300907811416098783795964162745724051083970342874617289717578343052579808703637031531461028487956391280851804437092312770055712362970906653064680608632198831831259951664145991565706814781182390038763400739796440690680692577529564055908576136066676123494043229312060912990909202784553709407025735662005991524087002872107809348146590629901004635191051030486331507457927854234942971897689213138933232315396691359855889964872484685181229555195108738055141499660333670818038127092936866091343403759696802368624515351163424605856789122983641006314276740679879081460785812406425779105276198195019307366343321635433058099762554004148269857255256824002843067535375199497314739001768867907066363040371647765717822418137579541077350347039223678993970879352440677313159905740077281997979195852560867669480232623174962960729809407790101281207419885838230603465062443026934281413384573487752128610776221253064994483370892430344932195016948988783404812744238443539529934562886186133997952645453036341252631952661202292925849330563966730987430215216595442349870490999648698892347388492688227580428805641603810490341120137722203561827072195130346325571150043885156543657577581096284830121414843349369130580853986036064150052098077540807664418203344950326001276518548255182524153593495083487225270467398879136863619938964080598487550220044121055367102664338468440451599647425769326899169696720659069784597516102963710501863103681323365747204023062110862784362393038062141784807187977173751146836817577528328302935608504942581008456989301642232594752730356703513853709117808542277573973601193508906836265727587626292618847558103571498185980900813075578626143782914393392580216971967808343506581659633579901405406455021217515259258508862556199264291453717527259797641512676964649242361642905338145172070695093005435977866205888215676820259880008474896892360775502910851669775359923480289582326899153901656690209371799195017586713824454116908535252873444784475604201539080501138931264627556071389627232388563846835822261310904814354443980311547089504100400843851424954880907292723193469503208685473757519746913438384625307665872764083015152260163424858144341122707783539037240651423422983195932510205006774011161675473905648680741596742378731087966796695809042379427897127540803887969403858384207372045115949106673066334967137449775346048815701521983245961573847822520607165621181222319513916868501443228106481353074321540816151312908838683974113346769604625515266487814279885127208456485496508295642240523315776756452994267885201074713589996793312863886482131070279012816728389403567409030287156065503048419588699275953302513091192630179636931786601545021263258989426846369690058032395918958988489717832072091986532839878344225464704846971502027667022794859588760767475665159939093200192284166238939548324917037387782073120853799315165858737962346162423178331444766938793722126747773000339174747693662908732232610338320333380131493236040721037565162086265491834569438191958676342246478108560534803041067928880666707791938724884923701629885890631305956751060726302363555627304350232738389211511633399325794392994091497792210467226159613175133374156239811536648189057487486920412030503268997849222763102791031825498515641541257433588863512772231526005951782253365273826421972509039452206800362745964494409244132515229388470722860777845989081276937021283704577938407329761086603882518908601294308949263868525506386627024947099788778562503237159033965598009048713569385940395438934032160575284043920547739714797010565521563993328209084846496906397071116790082108132681935733762330712357092370904407280801126346068515500800971992632357200415702597394673510956015542508816763739775945110148704234212597713558884282815400192918246763104597906765026798158220163147618649023286788542788650923902378990848411223460246976321275734026131501208534277236959429601115814527631100823324449514537332794982504471869514260408110469877166018042591288873508934594082441234658553767297435516682732456696734134201782614933717662389845036248097673717522007219837074900735104402092435182754909799734157901792326732373587637728155185441869901254934469312424621955042161323583623231644192096917173069748909927478498174796627368036392330134734305230400516739578543057222845228506749758231302521586058859384367465194430097371813519268828097543233199082046749681628371411706291457108851899694748089083897268765289537073241490720443265924369713429007539202025965188786192573779089902394657634353484061616058660866487434582346198285937778100943358262801638786219111966074424423571838557249164972312190672499278726831262198420640411139171617962754646076049418956618966767011761303894731467251183094843992517236998209524108166491943741905448732229401772961574346606063262640332139963773790757616987948800887221232804063494607032179123467013579067007820249053229952495046384369820707952396813359933342154764294741939045871911353296280643778766883744593030900476918282551791583665889368044846592369453164282274074758474633389748188525598046511098846581912609203852043180818180478010429517163975415291765801696983647458572955143030284531966061708405932325121447550620797929187404370527129097185639684203334774820096884512517555077117738065086332029109028040169070269518348410836242238062843998009772334085751180509885662681168105672675454054213619403235423625550705750033192198019273700698767628967108137447883819013032955061331295504920669804777952130972750328932668551613131660410284659888852587793322016597797902458031620126097895469450811297704441129318359610032950578370618658886292062281648450805417585080362541784281552927998664827995927290366417795291390087280752973571473389892988890795400548279510946094817008796700743245793855745944378214704531200582028158536963772934011336593383154397703440474307464829752508998260532574692055133064060283410481743244020585058749222279366669669159540874757880493405135794257328342327018327733958543977424087988501747587254683230607048226875314550019637941343498267318683370124172953150060659892513064905925151732409220644044907445251554708950712074588123964735729203037669427015304592172341915718009433655182653942490513606935004632054453493097227954853146125010110281129015170197104346113123798051891817800993586073999549023547694519790893703428957275607489289006108728554348665486177298411694990759817557904879867565946180780551296952785334084559210230046734438699203810886804789745860971208196318056817276640478347098511567839451005510761339967040202566940788672018127507896868845565094650927002445867738633626672311111305527277891566651414814642067694718968892553069498805078760153328758895285399646935115240113951129516587254998156525270187537208427503125836234783860747026600323216551527629620479461207619470485192464325071034765785418548415202244849816600735996685821023707093415935176336538896268542016353189558429609296166635073995498773454885985829635261038169686158561747459918343394806494514219873133362362795311316015094049065390093743376166792877467397053240633981385084365953132933612466182967347942743068944278023709564100951035293082112713424959774356361176218293056369607550485482112830920810885708400928786883721193842390886557906336328742874416029483060585596295258053439303774190899807636032860701698685103653569238380665800346435731333299486923515864769107798661011332536335133792022091178858265296049449530655436130204672193847585990669552299790201032175724325171418529638360254747203900893132601849397127990631539591948896963258066815733279645668763303793329053412062899978979039358332553859593889850844539965697587552165239346062925751081704033865952415775606493735296871019372554691396529484639409398711290186196065618990147294789698158641126448717967563637647964680602561882515679423849149467307952711121307770348639205333941767879488063304168056274894253653149189694009847203670471235964990424026934666200825536740650888314725384849900637897449137702955880195460950918316387561009225434972131991615808279929927792399755849442686744250927516805769884441897230267874385372459637148517740399516152325912695096010167048761569946316371094831033663551245769263921268310939880333692129879940371136719336418230035797074213446712653592561822190122268375171097726217435516079399320340580987577634774989168279431894718495557169836803768195966601755954905180106845720309244751775102950902646992722696589471854376588607794646997902822164845609937963039688541627068091290468471580660888974527466534713769364506411547720093169004697864972646423697708732451444562404272327374904747487763521621254194945396108453754888309363448608212369558769742213246261550466982720093251946901392723008444110609613956408597499045827519668123033238286581545189628722048905344283428140021519674643132900379740371393221014493609013562245030523315190202145129512956417409081944992162738780319259760392647302620276339987497942549343421611618439280595345350052839227495215057804087178348475603410112906653868654740892511609261711809657881812577551202086471013140195245403072424219230216436812817263236769177654235847252877480025039184407772340227763792125627189261855214577279043853261644060706335735960972960644518298349894517698304971830034834027334990124030894751726881955553815758394987466621851329022452386375204827727863386899494720286930046916939949876808007946194765634434257537098870026918749973768208837977846540734139115964546754103815369952336770026097664054746497880886823675933115197901266078998656466069189164805036106140095521900421535458380242552741307099331130034216777342951717474058369331489679322230428541642369201549357602698686513139554263966563161122855733820541078631455266705997569436868070901266331750324330471602568580852305837241939504061380460239806300802692165810857896555935683583240659040447014353097573604083941137041640837503992471133888037865074179125887563293452406905327853453385164861051376178254172635995069024119665899564529146796526490256528845135484818266102646637141124250945757298370606562533138372032647797884930834716383596153562893267815668666135255017160921047603407450835679161155216802585915615179439494142407085653245687679070618666322901676293240069534456398256775827344592948277751097912018084688715609160356354967232638585703687413424288277263979207709529848709236725733473124235710334231574394467125031868341353812837033377444830330257291136963103872653179707760115178151378253814051973066140142937787095690167130293685526973921052301627605922965474306854479145822663222727556986178950858909249926494685123196675499157393055193818219922183766546586259254009752803779026821203730770712543582457238611572706068616777039608679170020088855360484685208128700680663735905385566830282520655961071460306680047632833431069672358878034185973532554109586057472663569890468563981305277409609925315792293220927465402807209829576068062342403054599655488928621264238635519729548796795021252238464802717920323669493805161167983204433422131187559210100454761262390955276976196616394784412381934640355537833276510528672680592974205566422836688131370424399795609140830469751274768425757768786355941196473505410778639331402826860461893695422765278176316831542503111137990077102778646807127899296100969406265881336585465340962508061948407433742972154899060574228193951668452463109911024998638232049465608778941643580198713900859202152771153271712872295353881178117733868159955396695039297981572137561210689155495746546737596571094745170599273132404288411704556382692728270495569416830294948813641531091804670392105866561257667890962512792815335100413011176498408608663932077155813791608400805817147791783685680029788379562566160035004368122897583181123948528760429447832410599555451428703312975147982092398648354413997188859759993701197078507694746523923507415600927860532496052997981782817236099769711575162873920462658991618033604010692138445933587929804528333591450134647747929628045424574007828564310745927353373641776986858891794296228220104599757234598447263370794517963799144938659248308182294503034958600931191703293517591458761957455791338449174148211608678561639154786353432740338287235401442277680135857450958527204052577338554091360798213121815756791590998304552514096562588069287956567417304912480444248983635854978052634385478932465127737521180533207826456357559585468338381571284442410177153176633789827614217744209060371186439414578151635848061542189155532255915322515210843418529628146492803722073093956245267556152981854306603519193273651692469928225071404598112087073863597952943321862749542750062785508521265159264219600894419867649517843142795058849062921096499644460439067462674659803740616127502049995707788977604550412968666571582516740855216508367065398779365587821653230719701771077681269451681672607454264728730230366274753131015178015852537253092560262700020451025528180078415174384642320969907225203751195850286032639403561446214787917565540536236993336786043889267490461519708275123802384186704516605446311802295620321787914449409748019924590528952394268706572844648688203803430329612394529969198255685568305686075146583600631497488298897774560041472589594266087705467391339484945103383730025862652798995986147414020344976138760038070829126269483860526758103901645863345832478173137375104135207680713268717713244346527258824166384236511389662431582512060401024313645133188811994580054610204032414369137026884903610143637628282826393104919601875855402300701499664621452210739939630615031017878173910421334338492557520421954893954071133203345539474476336513372229419070430863618384013949401341640387038989123777938923745901493302125289115654482778582478574585050519589789608967262293350460647169371155333287899060397324251527331253947551980779411306690139600812238888273194295540659540926495703035677866445430307831006237796613024860066803586342546263023156934903662984088843980621932725417289110126415341385210500053380838303308101491719062852695788634933578600951218659521113205559590861378039785949107306646651791552341074505008750064110774400138631738312690174893995442710354466559558996868418923430337446706212669494889607442811780409181276414784599757425809778012181651616690581094453073411590381320343538162889126290265656639640653545762503800941609574712487658144220468506950577378668273053860356294361487495511231001986762330753228293512898481193673572227484176841111146609826883443350432935773716866908726536122175440178543617094250582681946604919486610650756472881310130352518462984444180585254752764860384879038963396019481851758144000824077337006226980877778943801038953142409305889696339403109343981140415566954637013614922866215744117690409723352190427432920921988438629750063042695626986205984004253163835975863546460604273074166313027175788180468325969845675444070329874209645503605599042703732397456423201495607013272360831321173386054599664030357552968700542021575261713105602910235321142991187903375768061767670911157536830685419135058430129435440521146749548295257124298649678308075866164739742818682662244681506638447524861406597357724243296098805444909288895482416159772695984950806198908812878239827880843849745935847587261810033319175941354844517459125070976665653156667268520093445068914222916620742716635332931520551913724939852255967524157200858947659564887506799298321180503586236101500926616902520115843356479966676202212636722476500241704950342986994995685541902226428648024035028936565445869246111205111514026159958252815200852617342729676746478017403899834955076385551690605729688398142604958200041062228113833669792232408614117975728037763508404609521990211951537698809099036399013960312040899260144029885707368967463632710800509734890307767161465759936494451402577935527319479721508199283952329933385156961425264508682930953333266849573129348391080259647174446969409801827935580443977467580632807321406166248355124481137107658163086811525246030259889581203222200082216968931573002037558386498547086439433940014840682074580260341689893519376535572314998402449870638657433404340489135240802054151742619190141830245720112076388578158390146671782778830374347900890076969000305968645665736461488089006327092493324874083315296828000460636331006495765389757755197516010210821061367826850315012648033861866043616999488855331689968476806431703761138634456948478288525826175226088077068817205535682410071401833467155399342074239837297555732359202234554437725743470706199819840133645642316387115391819626204617562171486969336720525495593849197158332255258857325297681967371567522813724577313290162255216706198025387956363580908886291895458669668463037855566111594554840553076696598203068820150863048474523155375674607314002389472762190958359210419540805815572254479708724666889243138283542470490337251184578598988712293255259771010213038943136959721175852350614511751766697403965119637880658620537450848138931480980149725189830981326102716833389257470466908737417267775784373448840990840660975696191472228348348981734327944732313753959434616987585150489594389984903699726987475572992050613145185163537157561235036400616892705994200408937257012887898289046389143527014058501611606193543732975782202156738577885939176344812058127445776271328708455739500429638831449763462798067182240445116182287193983750951445287283898963364227821058278750515207647555166806847477706942483330982664628169223683112968370829082745852957940094676539683308866185211400973045547260984704479532787550063761350931961997125147574236715542315269316192697567054799829607407203314039887763039694212843540825279251116419582733545207858548391387423975826212121020126457995169192339297631484862152718659475458413861344899656469296199443561058044839348457471984279758282349848629812331770149500328165202848151554319073118810618622206443600793588164040504505771067735736268054478151986955511599720163346728220263340818141611635700241305460940790131278827323662045355323208498578327529447788480864377622101399836849587370670212627036217719613955562150838153963337227381415051044584030677988551164505964142900882729219625046766090234743039097601020485381180634346691120450981454512305940124277234626003233436479599655713730887773080915335524254116464455430447347422692028183109082193158489123577000260528212279833110243413944518231854959087779784478973712337205569530211457637229418688638009997163516882595867141768397395628994844625838920905632781672137180167975710178853127590258316595286676719247749227779699983332464625952363696803905810124726300631139932440824745025883878308028832836257298744647710458580443770913167360980817223228301770641246103738646392365066108370325515193541349985393167990741663933368663223807769176788478527906699730358004635320685722146033576371124730556949119329061422494483750903752809751192395489520299825176327341618346087518863903140190558821803013389910881160063974665777025484513567486512414267692715681832168074020775354306685364371315481585295935301310408966476003779927903573614597031174389991337885222155173935272838378863870145108660759311226338476722930720629983211861650804119747137195466801558396621185105835013604936719237741570197530498868287875401206007852980271932859854372862157029653935016945611282481814039357271545010941768277528683623945952047143731089681894592239235401553923287240733509144612420671823958579432616947466292433867418476642153917352932008722202716794227623783341783627548918025338199960532052044331059050639557795707128608212090385998620227432354042125913861322111267168509149325372414111403582175458713287195580074927470413510930335324800532225371681546805579685732962566152249722933239262540420316688872374121232161842031678616602142943928393987028742094800489373508846655461241894015729574876376396071713751199490838198333247662117491282466608700846314917710784230575621464224086109557198310486491609884978692535666286247851519394703340624274725810225982875235016904796546312771384363153513361116592370922964923302960126899864271777624940629588422320726162052654776429001571606777897183987384661789190719841381404771001780740536911643356446994614952081893947254743443843114023537114251866287301290076588346716398640739330289182124975338530859499394535260065614724112396496126325580800894748873406259520186393990734815433495187186239087101908521444656323418259026920789040183220827611567758780071187585991386699948005457324298692263215548470668021527069036215105288753362941612065497328310612998167230366084783935678632034826759978720400802642967229487239969407615915051163620818779640838843424836951466049666034700046445205213927083407972868480007388028969857668793197135905854922825351542586320434007154019239991178226364537708859693045487980293465279931010026493343913316385366592258126930184468387471281136571449656814866020451520591080936795045332340276834501362800750418377723977624380126843293942363356601205572878610324365207227775562864581662989942134175622281936998147621248761620389238129248196812108988029743116138475834163821346061460658087136303513707654183263986479122053202129570083373637811454993718654231724392709422686652586411375098220010256181003380849137288711612863737192599234730641833500984778175656874880719312066147771898533143117745173676811041936458209991165944400875033848912087790187713256225167211191441672726986657356334059945488154180954211750279613536397472442433780173320633259239389806713487210865489069765197776361436746550535960300261343736504430742191808570407160386141035310655480409296486780865858941546294226312617687544300266501289478225099784329763013400994161237422532932408596889157872212809760726879031828439134180930839681387886764197491058090407235330255008743524175858477481358800857049897647384626274658240373363592287650252355900091251860729114352389776201576887484322524570912904990233647479789236124031111616048669117581907474016768123804588762876376814430569317614301752155613631296269169495682683077910197067777572209184916304818463142569680296086547786568200176443158653088586576205651690424307109933363677463428383076095579598064974145901135990006437285892850219066698734905182828890632169477646684322244312591833971225092437550552338117547115885978728934190456684362983134970018783759742912853704452249939800830690579161316577932988170490853241881823539452993795346893987542335234943946100629866031241113781605712842330371965840797290800395034781980300119480355846147447418584778581692251034078551074913679127521914916595195115812391448560878304634199572758679489214126562380450102575865384298277007089332856047763587078065398743930216571510682740528562298729728725626337815741325367753205539522611158557154215934499380427610702147177243055995332109776100514160937648533978058558098408289488660645302470140186848248687770782431098921203461783972845734787913957829135094026285250883525349819642732262855745040847216981384576766528029219673640394143204895168539328724065996789125933651588849762844235732799140769773042346579175309835217896805298177669334610101922074463924653587349234757453764162737110339926053712455382511959073472801417530025526524097111619201724560733655804010282246648285559729260053747726355925849703433107942857245948358567438574298630032087592726267449251315861628897647351013456420901824342044773988743749426507100480054464670421947881309544003423340428445121148745350335258117674202215963110860403147983384353156370512777821839591983561407439814888957708887040401991745765044718183936156012977399021667133090770232876572841226307121325757289297629911078811102719373017794904519975246536125378718143784006875361355225806576798406050879720426766107441870495930187545488548232396117709447287063108744552327923746516787110477146148252060638538301579664968035949484756986373009818148503701513799608446684096362499245636430661272073691337460136653732247329539134177100203739756608172799961020586972045579581143359951535268028469818931437419908904241519869436566963544381376478349949831656655171032715398763421510444831503168869324255691140240790668251536074563937554979003208568889123316632497537004901609088507632770128360358191268977207281836325751253939178527422743138626130464700643865883986393532270787464249046666486848052959622465395563594729510009330708884190679144435657445344260968408000918198587698794509888707038707108014393469423860223497926366623015896278548264574286229992046608578484794710919266965732383561963151606642532358444803866767829245690952947398978741254858002216367279792692877896016569082575178166729665989790505503090431317486677464266549965457397540988346725964558330890604881100444784803165813621462042518208197206380055750758093924481744843012748678748178773802758238530942416223359395146847629491545086916479347102328874997852750149354016802746267445862394426530512695885607535645403335217945717521562683164621292210193587924472937970939589298671039002606865484604984692505807030335939254112929129463135521924077812002281414043935339781004327361183030456105373575227679731005608189643909012705871609787030942679029406626649045549381252637790146720089285038814028923236635009806649695809969165856129712403884006923259788487046873327082653690646861326875983607329391031376393783441294591686166763162530047262609918769844595871869927997912669734090424001629046097085082388908810308478855702318799797371776032453817102373261014634001608276471885708565500947464684966683168844231753890528342667397701383039431266088516455189994257173197522733797428852361199916608452633349942911553655885094205470360206768706838132695245066347981383789790820347401851117994666262865554620532069393300137226762339973689760453111110412872353648452663154462104690246008593744091687932016072576856783093669049323241680427617819573589371326215086106818091028011309528657565908864241086430664864176431397029589001573602777945825019679961855629027108197841697004643656366204500931683954218744601168331908411510178859927425898641150981443486796642510387341133826569549987203236367201576478794092940330241562245661176251921020340371538244602329053445784517687534129859583083873796053758808312555230421558503019745965656004592745974224640941555074906211942084894681572838088181143171139206905319228006523077600159653640744493861944461042863348250438007150541745863040377850777107569523229601382290624024287580666605394827788690266664988023357073322166106491385959109538302308438050354379340687974097939788515543905049372089529238710550033263445816881190577160382272275977634723112603320094117151511429594511945730893830218541415793211957453355500946152642904884377590423694756387772874726488113620727202249421512304940970175537684860300878930883382652334339318520408261726071793994865424911718320754614291948291642305878022570096890951454437366847329748363247491445310719617837195931942847077126600084028372717346664467986809648417617702612237936550317177611009140051524072268344110791436926191738904291603958177804211585725519106924380813241445980390578935280874230052309097228539745599474856723611758124982297843086492038633342913021808089292674874394566892222888935923159745813960209308140029682853353260481291164337338866130589758841101589963648900315701773045406940317883426426081747085468604006379169130647170709574451571078667751221793416058410166049873107571897549641035059732575894424951489220125362181603890910461894305738422591280471882079691317366148466312529770841871389243884545418052671551698248758254879687253816300722365503558059257470999170334687586317564459894082375986896870999783587935688709482525793679366987408638578080432907293356180955536708736608446042521844071690069336754017375130955626307637440177548375132748409062481946221779596102379981804446937584632361357407978901597607758487595654088341619844627318847144203717247873398686598237960399862866604091680221149477710737139630533517839215826635565104903490252276792143488949811609061012581554186217720130829366235633746916754750882543442107962294058727525134600795199930789499540700731355697691419062843786883439129321672378048274701527802885406927851084652305726382745110834064230348928966692256086794823457428010905464718423669711452146185349316075023438708338834945966973317574219010602549813795477061297489334019296826285252079145390418017942667952229143595963357824517977526063613369686775896590208948687904490911215474583434609125712659273392936224247241151144896759232079526260343857238418226480829794274189817831559316977811245859151439459372496929453555268352212095181934115079451012389109910749383878120038408961017519260762724287652291864148880166936638875342380597934138636225976314896488688148258406305339133435368727881941142078802808851521230024491628149392407085520613657032418061879420208430076771162742058321907959542098987940051008120853264889093080376550190048010176101778759616139106312012280570771457390264176719189977828874842220926976659261536652755190075458565973355385515057994878199613798354800202793191776049156732353944168892842312489430775073089724208589304399517482289652608508309673327312120966970173374815087227819714649098151554978898024649749844703677791013299292486881688297606776816862777403578072852444012935836149768164686700326103188288584520955089010648777821190018931626160406446784293870291947627170016432858285186610289800071961042533181910326295599105534990098938782622626567342597826635308039056750232278390388018139352052130321742894306322322858959405791871050975641626586841378937361285276732694056082648177449905106394124504152889510072836630359097182026422130850748125681013072466194365704640586485643298768461527295313626209665494659025948136417930522861137747994934370322797402946222708821650116584686580448832219493001798717972635586739384739021005363368099373917254261085883871232523415463585158515199743228179805399042655451553802701823666752337267369514851909523239735576640108529257062485627001005988622666973998861642987722525389841954477826816994796365265626701644936862995413035857309384395862980637996147709928230858102236932671312039421571094760926423173756563389288489448366832341137210704296933333697700694345048723340030402062997739178922262770480089250869784084984493390053924667609152196500873801914306415645451477879937518981056194643293339324204685847378394896716779673960560682217094707252425412243445736638735381168686750681869992174539130581153148756874411660168464098990312775365092402724274834736748295742138933183933579089850119768706409270876120336798602701394273598118863232456654990256222759278207715071477281739040568636872367571035762689444166284450646290913527662576418792514616751759552364145404230980677748921507890592230291991186712007534353016483737868709139439298317076517526602613134092735607148074750687629822660851251200201534926328354262916703055008668615982504457832961057979515805481519893947202812227635191450764282587604817929749206086201432203020168184936657256204743808461921500437420857511964846987940405354392101830501441292836976556099849729851909953525788647139455309765941185772852130160604578623480167241877162540027810566528810342709987716891428684778636591602480806779538809590416453545182583399693814315208348766910555826284715179586768526499661868633972454381880904280740052862088725543818861568529825720913863910450544783460116457226554885646130084710452226344255207803967713233859937443104622892443423609880777528756014116029432263567604136609168289430775034681124685673423654998863606525061680640710624847945362149049683960220451809665747338326229256889635354802655575931864100969093157222656921357003721372120671233972770024745542199525839377122796706285118102398030661947122725438797392869892425128154149199086032791248819728034490546862686586229367598568198937869458929556760075565335555528496187030692385053029280550804097431097903648710122142302251315610283086006441009738570820920893178514534968068553612491184345567946751081048800633359501740007240776771144322123721837559238742687799153457858326419850060862271994207633177858714242338041571315093268965824008388521920829300457353579578513290477511053485158716296614160199609882194366502683983508631505015040641048673745421565544035467225664341165980139461809476599556808478334246754881326025394289833912718999764499901963550922367810213051764823629042342104853896474819090810742491562262303788252490419322766848297853233501740163881292360650758998196072430837751489540246107754929883401567948720205987781649172130123829018548397111788274038420502897601481421283595731101121555251608040858733024745239159032516011628271422024542086504477472937282999349822919097277056655868070655819026491268392802786912808334622168660181880985282912402851171377664061640081858911769824387737723949925817254444504933740038954023177698344250901994100805383471382677221531550512760547673104897072732472160022713462162378784957914797591396704858261675704097941980652689761040145479922521815936333548917371571663371594021049250045526317529861453539030174623130929535319359493939784736780283291286204523059754042010125686923688383806546832226894945491731620907209487263140020971576143550715308445601700385594976634077780811032503135886035046332409151867539915041247148641991773488533105092869966942312947821481688158271620593663215670018653947483595138839141473203258564622975118017989691013846400248516799401156690154512004468395427516190551905543148150470324448083074200633648886063112670862663728584252501201369723446647613978570163397074944910738116629747990065198495748676327861285342151243111126169509355760910713942507447534486521594307701029047419566583363136883557432876988391874644653272290999772406660622370608871384486400090486263133547577020025965583296225137918675581060709727238971593513765147795233283862942768561636948663680991070588460637786019021423222566776758325921101609311154488096751365649603785267810275539368710751700286292762944387751690398836059787949890345529832884126710727326663567466826965108338707348136481073772376544820604383732161981411711809746039363619641580787053119128950320094459345678098161297626174599902846238397680728855725340810653922976146316848055098746515136422929788387918522380449103932358453980700706622818041761528379690423332361798579569037461241936812326729348818274077290582870790969073939173123114913023651846298346589247554667239216946758631982589776271030471901601808143139583897010663500472223259129640839171481115033342658798437105258942934861101128558686231302099973079524969787417302687772019136533017817986898004207902767972184551835424462086524018864293513002972753015082345990189401445851131866687258499036894053346266554481186657766658403344261973628641715476676699200929924385517422188258356571003586019665978287697445708681762951754885326687393293878265605124549264803672857770082322931297952292946527649102745847731699549263640230037287662468350178567784159164326841796912975239561221263159964064718062075393351853193664093040325630756612853771227700523190682905723337103744800460617681921501601685130839859675880921105571062431134769051873762361815225568494848246934531368377528090158568321659965243007171357989603522382252874663272413022401083792772325693032412554275496237977407582598584553212922623484431372798128714470663473005717135394840223225372496030422604332922527504568317491756713851025969147818364065358713399075592588729113583546931030819379261239134329845037845931361047336085972296180034425499575614690180692769244044993983779314941572670487242717897926972884630690366131684378540537124826845301983804006293589909802775735467172844116937955344252537338848969953267238886199240108163288543885717245787939977267189546700805357445486330110017246059094718689545684417371888519845127798366929233439150885255622236100927307734765038993647170399600259008433376638123512983939070209332769936953184975507141104689413184352632712979147649278917491577158239921976956018092598881771947454461268027898874513287387803020089749136256036884396005345614931431467792032019773405776709476604416707863281815974902435748871582786241348073370093356455967169522666063106847604343068173843639370752796086412088107963894407155374472862172022639343585126826360871528222303258751969385377640702959296782235657598529525450112591480549761262982268184681449250509449040974588548170297105197560653357745823428811569068000522760135454694394766220294058052858651534456891686084473334361749936733883775774406232046710433612632956211639435069537500582597766983449134756061604766291591048826966526204102237695480666343869002314026611828375327527048519219684030096990972536522221938237392215847340953996868982874785290731620481591048614982811698774904831386595844867989670176930033449036043003037457461100801496983374354642520311736713827404621395700696347864035495557511556724795091989936787562481338051484353364649505663634596552809351408314171235211729750103045649945760378914555279627381874398369127848384388003492489548433557745791885559258164218653781240076189371825571551780965076157854144450942476098905242566530515561125970214018364552550499860156323043337112038983161900200375847465749011122629623239824346499556707873433688484671605159537023530880535073725374563962794112642252997859283723137305487906328826395218198928740381915224962216805532245946457199885736570049694883441833079553514662724726875504064840621264222749151747027215562364086108318326871069399323200260479689645630771729663665865770237248780005547755012475232789776012127800373646282999868560719287302888395911022079388573084320273674208900291455481129060499376377845978014747241745632887108657135674437917720775501915621282451436257565742898082968799231481820247371461123404811309552548150798953212609601952268326470907605266530267872243000795892263303122235194648045656208442564835142429465821130241824122557442489791928001409439908747372377423284873744710009366211271070150227363964698172585080602254035354450482772186687249478040872391109682067975778619606729887257929523552259594875609692777584173935189899516840087883340259145168735798115247429976205436125033273975137274267037032531206650883557107284730455420401808359830497234118798139583654146711619490039317383583235783830183237866887619297110629662407386294317431181739378960695119533567740055581266362730772194935836793582775403185340324053740582518005254798720871751074166184377967967331280463040797712447617808010957523893690708847454514976599961727075322280098384990033912717094015538725631564685968210093601246431478168547332490891379657239869852648558223091599779548883618619900141591601352087995738025595344980826766492910185166152145787220325615574252083033432622520378818123269347729234416749261861553810068368208517482833033032838612367289692921465361088342111339509500649314235768190725559990511893524306460968311149437396956993951454523822303737583039833078515679772651859758539816747624035784978979980509741417775909450183807078926980885890435698273323295231946680618353661767544531267604618476661812094077952570095734430827086739229832614140227045998928419621242955345644965462594412000176215830817162875578889853351328048586284695289632013684478902910601626930757357426166539550605005405776254360008571166382020385359897444502352196041696062071804951850176653574619898694322932252123003904284108539237708522327744481751327347859132657357539755858175578740664019849712405349673293621595132003314574301092312079803118629598227451795582926806691137995068891396933359270063480888195100004947021366640376069190996827212897565724938473075084738424547527119169007695575593241557155948709511295486998245507030810683269919910595893963296861669596530147743779567107306452720300169137101237593643549980557469659316344731238739307218803030058394774109991108479070257190733369466690820181185595135153974539019015685917786381845008175169886179892741941178506699255228068505104804600982652981656113017611456503131135067381186122196705545250907961069813186382829366369375692536888365745249648145433613709962950012695962355651987382205432966639408884004029000679756866213779150222182824013317663672702076173271692050020617242893564630594188646526029657638418660240800480950363482962883244694100023392386339471931547219089707764067312389810143515638886808090140795677190142508461526324757339578477936150790145067618213051236200813798990345298093634908499176497869332269915285509198642894741444352879596466497004175684087826342259248378589852023582791377760864874738402709790676001350014321904616412624457183905040859607381542283945229657926323194296169890533771105207944940080438784386014417909533692716248931535588132443948666122213735766571121932393447490717535436103737560635536815387336762782759244113370770060745388527004535637623215258272078477297077926802959139750162178460858622675599323683978902301300766453959660947908289553668865266715796878915995839623761432093052383300654135593462799376895644736858099372486738307744829533567690622192639075867107885699013684769001468875686289580542833658603289929771609914984838891357116493880179598533569925630435568944421367622008670398382340639951441434685399112288103447209185927393929020336417773289322863572182358166503322853321582308196305772262694953773440886093537110410389432034166043131447047876659649561737797773617552832078375265996589570612976083093356122219796847508542152287019642115635466125355011142455137482051198683530347143906303894390713821772956740728757765650549844807013529900611651246738598595838244432671903015280890257314300544471136547516867119469297142392885128992260830645293401197110469605261733217344856566182101357733817054669610509976181350785274623892753793150358552254964116776056538315681412657722954973919941735477843584769577337018561027808485857601992530262674637663489274881480461445509533981225398978344391900373413617735855815246051525062151767704681441842499116080159635759285134217219669181131453252349577174314198393691040164094350206427265496610355032162138156638034237686859371192709506673567024130401088383549315361389663700152529698569270420185822029564530832444682842682856494993193472050595730402076576468383154651508933823435420722538908650663894784288812758496185064921121747118868712289774371080686625452008930602573317301113804350358578433052691337067660615980423975232577635254470643587321676840854272219128349085573166964172927577444410360931269720144456053415036163804119680370179446056869978388921289731434657480860619261429135937821197110087879113878446055088112963693930219471496076593313259861567564313004686932390495118589667747408889745664834331950857405747981642172447656174725630722073982715021117984901114197998135517240671353437463309273658952258338854289040588856616767367096883243457254636307362162051809328772765940913687674201000331442440332586246071533083366130289427617846965556444984318963197504338896073356809590884018704944620151118314688060249536444115422695270157101926165563379289065404609138707293586876563016829862929439365720280975896320814966354433545877485752523737740671933075587754272019328226185273386186197182494681752367724665682801385400959084976236052888367767345933665186423417601640684413995217545569858386947759913361410653706651551507610964524193734244847314216977308430862236807247741316533869125244678888280640053808851488132166352602701894435231735576491455373631389599962399012850635125500876740747017012732729533663776490191947400417262018147209935271258624517982281622242531462250489932381630742743209836835937821099432867854148393468819795493863874625046896440245429991211060153417928666345659390724102934383769791620223392709844694616567182223775665049989959992008763053635739673624701013988403549207087276860001682941803094440406674170349022404012243046547958034327419958725177591168915355203795665062199706238297391850402846921251537397485560856390494073786961302786878202552876181311293878161853200781287154965491565694100647595272388205030113211242991661493493229070982762550989203101136229573719368691972019048382680171301481824960098320304726843470934859414760296499040969682235836581955608926305652974208931177176083007942218132870032713337053663945241293243416719184935782740746606487871631795838126780319381683002167015288092303486587204117026282523377067825140242929727999644254687161763912602780388801321195341991001287714757794145373488958594515504944355068474315925119189220917023276831955863061487473058851906164305656420791524747164115036933998423490974837334646944231114718791567513633247010665452485025120260860325726130733130027938741471368059495833248061999684915035725537682564052913460115624771735932604900468294596053214422394029761515305746566480584928313694641169343130359848576539438467702343977496006606638422477303782742869282491785329781219442783838360006206279192038714992005331301595405403318054752280571872627028262236081883603383541573728633589259275553676732866154776796901960459237210556842724041908396780642304039668486960821981203712796135540609003971042522620427116378409301190822128298495569262231397264043765066377626084728091231712433939487853184119573252701721510304774500322854097517678948420288923419901856010002065105576088123738627495776943810001783771618371691738539861490441762632676568512242272978208235132993713765756167630821590187465107550516218117419470520469767648376603861628403194470654410634573870049152435020021522250903311661746152773093812182148818180791746302039941651364311325075525766286203475851823756462942819763167213887621236833644043880659440256231378085721475251233863421152207784626125498271819092554533704704095937129936413711829514828490728412426676533873017505416762583954552854661543828399024083385790611405893316316939797577369714655550285784599799456717256966104150357593775611130491405229404850846423060797225889818905793908054107978788201790504796833587840879158585989828163464146769459626569513514056931253994237818943418966495001763895285037573287405288752280261248888973920726388761578678030797968448317839760692262292515282701722425849123964934752160357148429401262499624043248470003396207702493363291686943021894091418991023979840820230774432114876873971478897228608681195030892349867005967285399150077696353086945670334012025978083723597119084756343950517300685399715151108150437477525224366625566275629257305046405141478713287932037762944233697755743822732819741466517240494981439714976160424659259019775224242693022663059574529631482897260251008580970799369208246514213418396647841854875037671170783785351413959198561592884973553168355282306688011178003137263611406327382899058929458218431870111445627340760867498095358923634706061394856466586068253848393512551813313509321795170653472070346410513116411502071753354961496432489770009309184524687232339408812601624797685689764260287093294460828544958730668156118821379711073621866489734246706283976597308041654580958845773219484312574750091466391435763984697026455629656572566642127052782852890066800540064365885438191912395736256236582397765896973786323272625878105101999107212201447314181555986676128573180409243970929134985719081768168771681368197287738566406154333420295928668326764963301208578112667200294400618917626173921305218712598661273550393126982721900957534997711477083425810743547965858680798249758914923809310535511342064800948571866132283845314483039159994409696978245682084359559180878537898545193476776563151418775209404358276896972715989285066331549737811356246287910320335584556365320219876222247046704225926161628309939857789883552628627179319339137585019459954636080572791212960308609421746175558924600137714182313961603616142032577821932875992301636813403914930254485000491495920910186583201346503513469040082904871765003835581745347731970335272302098165688834599731645022173477682165380580029738191334307696707609915711052281586078299556493663802497149360373015840502958993742995559655699496876414857473248485690656120783515777391942909568739100046537826639711019686292041132287256302920129264604658703413699456263632864159122266794462216049975232140274295363212899114231776454924924346173729225576093388343651759934363171398011919938209316977223207172406609062307338527705787506097616648166697945655628563339160889166788306749298814078649586749969926643205480033067893297860018600898530782197803967899668608297559053395232815906595241917243787815293396417394832287759034342700177043739526273275800569887186344879234531605064192120820793755443765310805652884381111754604830212256757799190536383117457316462020276981373878879297585515752504827331903552159131337879442014675278054509115497894753189981544045484203565289718272911311900966726670888041337679985269089825260466241938523225143720185210908758847901332099318814341893670934816147486779340801665369718597051080201596374183810461246066335930067387735950925010020342344806894706357968686691426068615207473420487178785672305676071838661289134148447596916432516857375771234173254571485685452072154604613675274305677785100435152223284198324789964071866373290147967655904401671176023990615772863329649709307997495436272852813353178478357240678880295807097272055047719557059146581376447115403734466994665214563748755525526452404316832706954477806955217198191265538058399930073991670382945047770693426381190142454194258833789183757004213744986538176354725074310666903197302115092144542722004016376728327787085983067930674575833291484531254994702808206593744634948356981017047195974298606741029335752020402906964702569796892290275332408635985885487196111320441127660377154328216371827804810180457570251498193288666270219578999080704701272340818536303993133468675879098419532448623152353884660606488115130139898838577794530987006642539325446723847863999421987474931919063200103326955283328680488011322775962070623973308668353256859725651152272125201796300841427559240390412603731883417545164992007420507549700499473357891923019902274988725197054354227085662880210996307737334584275178001266407435466695116153315713239067236187499907345732672702759125123917681214727202079927568741289138690673084333083400409718313390544148559450533896819644425326023777435474350186711086893917047162705776254425564112555597783753656413387460988249619648260874053257787640575210061717201142622911895622332060335105233650359885829186487771471363210917102721923042958791074329896787358226782231464972602805811722127564465937730206973895172977841391490039299584281829980190915504119775998535704578089521237901680560467036216584028988536712848273130758311751946599253449115528251670047751847494618099042722039413318278548417819751499649365732637947254033646557591084557462002149199745069057044056217190679515102027789903616052428932956705009873762330578799283415709757580268201222566262976907331073110178922960582351805712625421841388055068495169446058383993786265483522726261092795816949379430503886045963328393070012586859358700214110409262975612989443203343330726345598285505756117381233317014725018331665879233208460706894967052738014713445044724214957166412858591525400022093425236418253241205310513366745403146707547325034153005461384484229214930713586171652486129933804642185233607761712035378717537191903174487152340613322047256274997727632922320979885448541921706250292998413617745116123261342258861124298927657316833112776357033005656170740175695845005821086233771635570793936688287662912335179662413338213809731964862693991568247620256836734390815796315508923993972999313849240343058112219237524914844707190429515552351749926744918137117867544157330250897590767028811822313382157870254640622636097814861331471589994593326398243756007772265090581748858242013474903104368472895253301702220819051692309082433457786324538142474574132410133579121939390181120944176977439670653270342953549178694225794600659333884110342285119408902794519297464414823804388779605428886457277718563030573373529661176098969185361303672318932596714264570374730185030525661218964600730923034240755288175454711586070086367067648280198221652423228899208010367714967381238431429129371892725825205976485320824246985545896150437117729533172207850964831660962458724166576467653797725160449852130142127451570523828717734372496114953855619840963189106352162059117454003710588074513821522095427632150705158569173427045637098255307641306323206608957075389654331456129648212978390450590594360383968187993047090375022245934565699032862622398057746686293718171484869785470455820770263036920206811234763998201576505365530123544230658534758707106941979211366032569458020637453497595480625536461097335721084946881129623880560214807505305405291931927746808845220055578261456728430213000274208661538133638537620711065835278221685724182169925922075330298768174446435531126531196690475551136591202850645050444620660646045785793142392820607332699515784833889107267172165547243373151395159142729617685025824067476391809518304979048377945349698985368180980748459764848122571066907530203308207676696461389136238134131434912978040907643629611564551096049041990043742973966561499911467252054824464785263269936659577283947230528395717601180755167053198715784850468573981997275915605052056543574380721557426668328067306636749925189723459618739728183594829911098484759327859826558409622982580522737441757390934753578613721050818800990961734252991254312204779671556946723169455284754898303770370350339046045221066897997754941216049081059850700838798191692748094625999178429032697810920822518728685345728892279312227795891885149711080759936052550853644892375395027257024800171391670367636977765566029347893233763249314412433218929522095276598590278441375989811239923083399090963090530747451669237093881974686229917774753284927638828322397364405870594217048317380552414511563539251258584863494130503792827934646269486390248654582929602753371525222692976674641786464634954494716471297670792505198625769203722746524617960036906559209689248502692130704281398532122286865472025659735753814227025391904238498423132235913811148580022965480605444655764105335965531247015309703293255625848809547388479388602291644843515295001901557942701450732512989237386317777632644194812932299095637471168601664171488430719478095331218026683795721611156090822352807695201257953109303266984141775959863899649171960600166697056271294157601295028005842717318511209271119286826692447938503247532421659595419866841224790628365252166434539536995268327020299673097064734286069419777364157663700864917679737404609491267863017208016786256718119190132041532778042772982741081836656337821339651220442486897175093472087970877009984493747197567103161612890621839487628162945979103778867331104671037285974526592027070137147711589729255944074664297037885550052066478950792617791518473759755545331637064475479789345776574072711082724311267954555443484166701622357399534044868579110771257448196302038356026421974181259894542801120767794787620487706340061257250091554202127989542511128791275084017664302384014123692602993087444844488104537409168461076705781781668621787650333720083630475133232494909704559420120957122268162810570533355097644999275733529445530473181079958591689791259564004884690935513576722952079784396621242251069519383168472998523381689049935760590324504752094517399628569481059928637751543530563595833947656239995444440413122001539940626207606293850102816407001370947993204908442764395239742506723315999819870844465741933740226432454451591978732567947458881172988321559876157983310634941312892934558553635336010735786629169324384303171704777107015612474669666057137652008530729504310774898425186874191021460608848712262434126882690725754626873003375883365422316328171110275551784448948605767906770461197739585434741266307999179891189691722799384841869404425227188237982971688645824493680302827140037664431452352230744879068169221578202988238295744120457368374645464833838521144117649411402988147567269105921106330904198404379235878823804353408519264758199290948922715142259273745737866878993587728032877108467993765013644400560954408281606185820179427201507385735151221926094032948379010192621265227127740992077405213367208699980305934364365506646528560240083084605711736767371027105056127513483986087175343753907409208470397943308681163956664603762620532548172052387971116977252448230370417281730624170257733662170415751338909086989863254325503839229427047175267656700970922240840109287072394680332992868906092034515803899957038295830268787682384420629815660619373533613329010662845779498855057516065396442863425458477940519821451345749137430226413447008443565746154192398149008344329231251990299911499168019467115645151648330042136398344820980812476990886835180013898938363520774789098721518179825753226846140253443627182890878080564890805156597560854131232390642865314933472374507241338952415952070258550300977492369484732700293998219063703930144708548808155272561626001312277764804105834792019102848150954957621854705350851574096025223155204217111010044068741212547166486319241646580418912002909611470610077451922202522451086426093329536604309401136838299077259240471525734143433123315548663537777676488510251023198644780223683378288504694708245834858655904676701225936301522987252080719447088084181154667045858171299661497397431335941474383272884455133836730952103330565875686648039198160997639351131577206610435540495542517809087970594542188266090558624682320965162280725466477692050317381231547093469959845723525593431040173077551718257844295139857406643863395836022746264895480572777580566539071709536364362895933305937650693058733004066904169609790701531745250177919688664211637244932113441920552176043296094192718021906030573976688872593608937638657845265731161845325084691554937864964948767933560086279056616673970991381359255090601456198810321445157359149400016803128615653577995829590748154828565143025236234633527604651792905102903430114369088674453005529244527131012433526292541647554778867617856530414012800934637818057276238946595997955404732553028561883822801820912893212340926297166561270708760503717947013676570381036100957795584543649483602903620181728097327917343771265701794806125788522318489571856751768341306006477242752296168658334299495588373035810418727285746889771824036672338001626870631770969741734448634909638820906228705519305831980686667069312998573161752052276673875241521818753990239456911754656977425562042518108934284356917087814424865189669939985436161156710921091090477254814102775161760449622022736624332800989564400156797930515847412556914962783209612410439342715725432292080098556459069488709069730792236316741193470966974202345671251685033146022929183822838425034055173941842227509493856912711392307123260530259723409087587440960068680738747610744306348894182239820075901586532478277472588920009277031795297192295298282445385699031265239377788711009249739796223600376002909588052206231309218176726117966487565001619121124726161118058741625455504397912923149381481533362116818139387058578788909329599885047969789952381954235552468005360781288312327782245096569393957229251446372721431103962563075161231440682018552535588639317869093466653854789812258491289736170610461648395341487778265440297258820235597313821123652684769233544542208411939267929896842821366057680133454233212464558787959393786942493629577057196638674242365116015408729559486541161913684716280557068439939117255708144586312792128718142213043420197685537978840039578365817508155985206713181293044427592707575547976034916323392875103690228423136945824433330353512437411973825177304877724671100096935767607653673586637707634567879196590242109052859432942673890989591567421907833367324344582819593146608124489443742910216242472729275043524060620802170974444816595416715499506210845454970197936523900508875614319823034899490577792245278723530251463085531946919254039056992140035232381388336905155409226647608120057956033939973289855913746807324783779504142879677549445285973613798829551170443817168057198781699493083011186244624142544852440483126584362519640079723781139182308142080766973956237952266938507138379658304942288215039904458334074254900522389962363716453057989296343225855967259714190536641614962958792304713135833217955394176102961406152206047150295415294394228396472218766892483334751832608644264372554233183295683613658656805461974664176541881842471930199118768852828245808448525031633573480359760924068391591763607491618567800951739421577483209999361158198902926807639382731566101221709890976537118950185321067729436067512530158125831800330698943471083699261486748197597716101380099318603746253621579973134306764203352351688904010490401664543884665500479002395342049212111442682157817467371643322092096178951980940018681682053044612125081664030806170880698932477462634851783553289477257034191963382083873284919666756130372261749224630944464013366819519405031870750016998819503136121146531990097505307034118266012159212735692003748203495644918187226157402655987705860173361390157717795104399086988890703387366009267900942563470244211393901534276015760272514426935371222942416132557032362575621579308492062352464874432871808208299987985685919586047723007593460800553166817041179663432646417976908859058446156106138191460494152528917129561767356562575777089689357691579784375453324741259985565599173412119210589470085200482672927558013209494462889687071420645094524648715801047587345951468179954264712391424741894890379196454629358457278843832034583586268368815985853436261495612487441419624066122076646167636539508754741903608849392135914527599594813883206080070092209104461397847893640918242366472453497331015204631625586037435981498648913414636716401279312789566865029421964512701720102951015745623615413101683923037746323315227158104680081950676365439232752323277676674563256132720502772266042332399756902842943112369072602640870183218593198644198792235363958492587302415922388658708740806296622066817280003790620741757713465744593709572644613560642176989812749805711594849881626697093342633895726482415540760955565856844668814723056256444461073985384983771906719347033582924218116024112084585700532959432882568612266954651766181953614558119559988818692381798582350290017505547646850089373626042782859636478779316794293263671046541142164267921357519226599383624786641253647867180071651898578828972181091896724397045684978462079350171878848912591751826834658836662510833442501576702328877533391297599746469151854848920665973507742703446694367109938493813633140394009009964173628156548766865589703745598584868948313156426627491783907617420482954077943696510724094012853639503082747134404962066209410851305025759393141992076002271639302585196044131446537687115029683329436708862267591826885525402459423990249434352523418118229101180630765002195743761446119024123124391827072709898021994439242739249219624922953859027680260150437649385127211029467306699032282918353288821976570681256103149531000744054640991889991060836955013119032597667202086119312020033441628602049159098955416792307790767283212662453293400458019969571475684724642960434272601228342825392857266611535772177434359458088554838497807206602172193230722148644020366651236193628439949848056876020561539869656546122064625422778114780827509695461730884322605405815018439524351131107523637538193004914687494485184195201840763306132744935779720849226877612660298801928780041795708337279452461559795760800940880577251008082070893039025979891372931833365868932799585835460264431908530883686966871322624099208796918371606419111085374687209761993641641481430486715627940295640979371216067936659142411326582690837934520467315666889940546293724854905038909640137884211089090027123355929382764175034615251225280194921221111542928772695691800555017987713574976252251304901909523116085487741460794178450658422742562709678426571859203608860938158958457659136351873074241826961136988095364412155740137597550718798462139259747217167967511946916493762488350253368578725664471509131759849842774946533648432469155207253975453251944488728477518225505056369696997536234720900420442987333996120507825632762229712700427992437768991978124193485275408152748601558859862742462851120493760336378989102693553968670971477753448034227936740841843433693440362623494524887689604658094544882188774368559037193056158465049705910970546354194285558770844553905881156247310983956580288951692071698086684868849797794083956496558056875461393496519008184445099947277664081787206131876564073303461504968090198519909360547241883493639066478201547977385292296168588195973376081957008669928692617552856572934718731306737843919271960087533318482267323143337393664658843527812295992709268570037320070636924199009831699021970479741498510548586315491655391741174060813216681204157261248661178330751993088229857935537647951388405965030177068436061772245468614544079791425150748235028220398612327421092052578547172136860846486894480175835971201570578680562371629377747742335328702498746381441757539756692730018975281760023580930155522050523964601498312301152547724396932624226144336272362876980534568215692755319336905724314853579661123550063994141065014035146109976642613885186172571623121619424624792358128242771545894020442785253085756443959933914487680436273452724872442991442081274275075118078391670881869660948693687353508748558487928729155294662473271363953614284635933594036067557833832372163703551069423400301062331697259259678442919089353132584427957924815473921094795503311354130182808153084748810261490212537813971044970989397581215875164177710685448617979499031617765797142137045874205107748466063186033678708539073189384235619741710967308651874916985211508209668467890663383334936897414164406492647954372990363697820320721886849008847359482169044330138613715435696444864456047845583900001577529458339273810586714126214243160728899630202973723116345240328911722111341048209758482765051146037878741195875163733844626401221540812537132466420486089655436112794056284822793106081445888921909961322100536723936816457074830492024051096098805488243864091867168827779305100144827094114266639955884832840238352831054005560895058684121257800104834554560024832822693994555430897875108028923302725207487598523487817699074886063686504390093734421723810767956925542570333973064436299705264348585291773897925368875751893137658636933440899475231217306788224058387366396739270839554869252182757525272054020374371562947894438197385570858851239021103670900144774005278025125826345577074729087126336065808830058824553363979942192460928359205979587706079641631572140655364850790368030525051028935940607407857442222634408145059021819758215179284684295915561125555036773032597226379155214629538301128384810718208796530615302945717705815479187142043001343348288964452910130892932761934627527512058469530077978887758865075818658912469662702396917393461826628408134235388676674742782106433612948996415977068275343290063135927658395868436844969756649478038207531644313116735709793652679335162131575035746160500169022210658232317380529238064031278688252680005874034956955634591197322525667906084801717500701105289297080146786876437643224301011300625793243242401272722464250714444659632519337091101955264098419871141554992799944409305290821000051115886789803267173717471968482784282083260711484444319786243030813374870320905359633860900112483445153214421710150636089337796083089983978104211231175830944048454428393945919841765848171689518416502326796022412521551128106104596785404582391300217058772961483751071914800878106596602876870421098241668820182851844731873702252786585926080107180258090800034687094888178564723772817322987730768517591071219734958930273745534432077165215250341360133909569051824466538063634616412372284373328928137373099964035771671002493433711058977370765672195993340591963998868873860715006717660793566724613385630776437684561677833780620551286285815463287651799857825744524818795331240715994699116755255557092636562172989035900822333857617042155303545674055444769859966049852326065640536425104096853039956378503973440100712291681861431782404102575017331568693360928177138838109655490811592448652474894288306802851084393326062122123944306026753107052546125166160750118357692511866154508686272562216981615497598626746307808376354152435250097284854351356023752560831063236435150148372580648765188976409781263760655935934410479732665379826213092258992676270472253527927713522260781999368859133739048259516910684216481894629229306761509739553481684698231838134590422770415768248001603082587895944720983070213384163325024103248777851869328728355305629127226027896131545915021066817056750162591580892168977063678435034025579415249116179531644519039233034996531600740382583266658688459332300695837637786978679458004773027880410509545298353675516703330216923865057884773884183369157610726021517218968416987621360630163813099478975417614697594518341625829999676778114847326686448184727442729051862188857069615548401313342507752990637313463471314691513222482676149708852985286932828158152897815467557553248256961714827724865776287839855037631844666776005093744387512316565096144729411992324439020478481428373862070923649140735772762959485207231118303994563109380174900112122519270567349822372080353876095578886038065398421553915946317315248809593197981724138359305221053627724418367979595882417329131676450701854759992168396272654784712235447751640053490939116623303721416864203343829689813790910267360229208920827758920305308121409137689862363558862991626732476818247717228381938093962452845368992168704756140706549022861320124117234796675581007696420592701241445681482610451635360464087113256537149170678908192520922114978580551705852029999154850911279864251926426605465099956460686360690267011601748329781952078799175728749716691721670871992992662791227919129093156311290487968891437094240086489049056117922141840970272970496262496828667552714898534770056446985202106007013194461565616311317294882224318124819462109797245405716108009773845718974560343679495953641869851460917746347120344398980998156456777375525143662352966326513843165251284473189079908172547891530289794225325857877021731025379807610072085311294166985909267354296640937654149861396563899122114092316464197368549437349245054553681684802438568137662698640901505208975466300565993018626703050691009352973129603935964363788613658134529596731422794302086198735850833837582209326934354830576941307370562732021085579461061692080653500905931256783061846330344827357007470197541309786902173576444424892746788068270854707369126377692313818785529983984833766564324061039900035584478814450856138887789269330032834750078900093331711287662254347205792607999257880951219394591304514700873144441418578908302883235767117055310370135648186385012977121161876682714610568159299074888894915454363584558972654964091013942236482847694505892469033410092630885691079354254557475339741361597589845748206524051139777916520664803863331139383772126977199389222481798375600864796640560901922707562492137428177329927490611843829479538362534643213001893123700062786142975428764196311315807515447512553408519880828462760150025048607981357337218594962880138935276906241110884504134371660016918978279709718563030576940093718796290084568160328445811432407671801019719070968720000643069628153597765943499264278305157016728364039206471774251914140248290385372482686758603522264959973467129987641381473285987792504445984162306607974420526730423753951342675944120050288457987181568034026283133616249610419018062705811139914289283754056163437093038225884987878105384682005381861104228261256097171347017210423674212119459826546970409896517146716548188129510477084943147052478513305646453096852703622703712034313629801965354293898859151477537194360065142357174756699259315636476865093705553236928724471012011897198501083684381268275409382166984276968781551854250904044360137497264140996983590552831761044438463589912615099467612674015314062923500178925541532403563791881226050968636334675733875942321882521754538738357663717590237128620365679077471090741008456628673526850300311274985780470597891580043460063689843272062778606126211078935646956334153119598116657787907546440258704210826317473660671450046699966212454919195607405440530665795956432720816964218719344862225528663780529681228116394492864484384330308961865776319726046541996391432887998171260610001924473180747759720280246895516639061678140252278584196543993174051211190851372975338217308162064672959592137474644476235526353822973719438010321680598773464754689718474314095883174464733505983743478770095957791099683534418665300101131405251915905348485398140457075110698554453684530361166174372988760402896341669678843909049260644728879295681286501996522675590770746035465695322870142885795299568491286660618284217437412599728620531820654606185508892126127954020805430367724661828433767652298052584284451852167779687540050310708425014460912409054210114095309773205164679932826155011553244176391839815072798565419102489888272924042163199560775042007723645422269427642694508881542810305011026591932876720527543166061587999132148126098831120070307386959662293076153032470527062691200090656228593690554357833101420990977058366636348645231505564921718559201106663113042910927840691118659594131555180245424101583050557562365052083194457186581584772159506205390680329393491869248612637222757352567931682103295544706156847544161672917311530706274882603613204124404436208675283921503937091898068798532608534009521414445700328192267908764255600009765784215312267194852931647400595288479101550776388907200711188581763913810931618665912764630020986720936542490408572037881882693212908474851863092113486236879264254686488424678027227826235294496481100503648273364350781779389572796704409424716828339773096190796194063973676800951395399555263153402635426057121007059974441188867220725622530500870535420323074922574312043180946243510270690365981661016358973285200350212407905896677376788786949896932259082631415332849049141842471529408970539488060407855411599549435652009778990992604422382279637467457791005384474491639812408224157428060206187364747858771675819285222673947090401403839925668860465789713665347049378506454747893636034869279348544375443490930165399570943425627677971053226610580487666463025993846687466226969775225251315701789538230737183397173864450425674082652421663652234733745908039066555780380494510279315603421439803312285223209808679683592706358700517022931419910133095885101852940378414667672053346143114692797057109723941109327510605547891295732727029544199346984452477306654505417551787266490357168344987638240669064236028403289236143914144699845097762290752594923246945710310488948481067199133020222061692802863009435501027403402273874283952294469720741185148072733433251875120984803005405608278148527881613948995986180510712076434617619009669446802828629951582515230048072393693889896054229686117074267289515674290022736551130260950010875759223774773163991401796764353057052707066179374151690310443433367583954057933438867420222110989918220219537752101324301566114861673585447865669025885778031932631682990589743963276746744439599594215810072971953409341701527720584979920599495305653163195802860797288499743396582905996234357400772103724377083084056634274773874017823407791913982505584188626544241818906716335006309830215165976041274143060450242455549618966634945247436034034905500970703996504685451203410822225573811675666383437024558870193374163699861413090470716404954630554149992433940633320090961783073743356162646973504035789027198055330153231930745182328976886448493605164740835536813253684426949364568119056505572823129838866496796430277859743662422809118011755921593006219998410284140279862590803823350385861514651833916031467553323345254637920587291442436344988080538015753346335107251995177929396963756745317259900879859817983105992353156229616562955763477270571428941001802084188711029636804193676288373285841846574576898139008604131299120163184012298679885517661180931191572645459944597732025382640353233959360084240881645502041704346257539771857852818039072850148474434394000943212935071907093216047621904408648414717399788523256028826741780320688213842814937890473956657451243175191368692243131463229010874168062598057022929875124048897013273258414261855439444558305599091515535140116352471633178020917175890924887242430309186550175550235634233383230088111198476356322460211274656609794118738595179998464576894610446776892091409605623150819024401780650907783467992553797197161553368582314685129231736130717401542774820699006029322877541968448600715132797911118697765469946456299731824707907259165171452456718997860238551033043459692017545293890914866960563075568742782103084799418728733425113932768602062998608127777815435394393550488880166444170755815189079408259469591560021099862764726250201195252112176920640548080833307261768273761216525872622615336547721498732354160287655301117487628236161714289196680378199563645481569769920902730898091412162175634250514017193733638849202742431008079603187611725789528323767562167719941419471179458071467640538943447089664483513484825048336303766042421419885742874651982917729990240405491699578976678446812186054981756442202663190552333298704885646739974184946018719172796460715780245655051464795841230932223712045119876273983501603130202398548214097589172082767427466743694551685079136919433649405855398435269115482242562999014230688044816768068034919868951947399332320387830154491209237131932755439203371270762208786803211102367702801156856117818136137559461726763855733637419187784351019561778674386163835750738744304860156831818890999593579526820857021123119202690413147821245657704004353315692867055064514979674912529000718471495754917102367796786466735015996378257775832579106400775189292708665976210187395742901919886814093845536063487479001045340441943417271336510014825305162726381329549593193541931284066912869843241203088746696543050234759226507054776440124348426545062551161432385149011678708316132452898382195156819486148318340796516337852064167555623758391318917159307003603262150568751537358745009864967786551700458390033735815294787313894492270338094479585533603858770045412036167488812824634946011623632788003756647069527822630982619490295221728794181819842211543608331427688238623986780607883174506099657089839594339118177777508089469039051049529690328535905938657291228917509949367317031772759426050686692214404980807071675437817705779865932979515434847700523411804333309548089203794542288162035434470357128961572161514693981226150819135466394911274407372045055104768106965097359003512902177671781428786669120361810258580574668021387693083922597211663304055153647784431823057290194229166411663144264503245724381876723568291911728988459090462051694165192355201708924627324955324667689574438104160821209936050591393616504395966252133373526427608557476861205087342116830706204946528989517904153738998469135085261091929536149278144945988877093909122347612565416562602741996692404228320981915617062542565303079053577478835216553056545737678133166395180294798667433725045231487675222839664555591993533214206461418290416763559916382572008135402574138963705200511798505613829246032633952718350553240232117512210211856920211857355516416240887171910333747965162673160739823428572149058549473823164183051879185445984554299279331747288218249311577544514924246995578905912852714348357802105721486418638998988845178269304687023164213793893892838523842307101984398479499558176926040097427867126910623155550114314361503911800003573451778363038183344034826833839845116948504454926257459130211104831022080571733699346948007093296505799003337404747417544463684697477196798544932137092960909197197048165188180035817296011270018697026131201459733213980612464838907795995729511021750482055412133543040315939723386377508800979560218491956110039302775545172968327930430795078901007967617125751039207456566873658616324876844438857491704325595971773220188201677937273898556581508752462869761307892994685364302416474281595320101510239570595867770600296579338657897330831728799540234711759633829426569060641379910802469537271399869579661536326999628285815101451531542799908230963841567801077310804263813384334223946639103647136973199006280218490948523305282689430846111811238168660869372016860538659578266276726224304171256898460484685605841958568355446869516183967258417149836165569215985714080728838094839599220850038514833584805869857120387501405469784276962799088179539014818536492531319469519359427704107372068105772401519551323767467552096839065083243528654392781153365437961748250924470742381893596457977060129395239751120179690899715801372255258782295005116855511186310513602303923622744818331804944333102324405899565445268703136829468416570395516439630680350412872376565483585074087976837021040337609192722729741490022081912361303536798569749345041023615612582445222214674565241117921953420830193683515510386164119944421923506250848553426955816316875832673044145302090700543326154893109114910530675347112086450851740558823474655631274741197198822729370291600670842956098061664213200265888979884392898122038424563406392836402844558299652443219035489954324915515107584146029499582588779923583009922057596717274601806009046171161455202733485634608596191869028149209066981025107181883027876122955112787315352302316728425102687263355259441888690758176056588546756777256664465157474792472172650687325418777035372370724480136591846372144816059148762076873402395782259706576755335791247819106846387372221797865065282023682438790321485463533209430675382400190678546214532665679502191243673926672594236593369823193826762531385926120829830342912173666704047423165587920825108215439022740433174941695945992415875367790373062036743954131267188622038541936456683945411665324208831099000750921516244235036496976498849577267629507573600124801797901605591084623197028355874533258893779308299115572249145201786257332141588805262416133289750391452819161029210512722306135479466157457361511931626249791649351747060444140451301174270034804755558435227835655677145564212766326011914658581561130312251313169668627150069813870531998141611910697770945735816863691184191458479149663630880940604520546952402559165147086728528748760184368325527526335503976871507957597747895426215328734442037841175555634093602858651306646296043973991959826434305916984516326250874843265867516770385950956858168765598593932560264372051754990644067250251732899902816585161294544362928833035759574727604062482549956015288435066314336671691437879222127791397119846571320198060237631778209204635846492074532257397681648326932214851534324506454157058503006417839910068388641107542254550526411549146990190482747665834529879043205454432036707182387572533772330545418356863902267622685044448932577982868599563033178109434345670665995602047208966730614045652405703628912236379283639936064195371272643329140132360626935889766884649160371458799249173503929087710448091912163921497651347767330490476904359556201791778438731643350586745006624574199290168055207135388140007007234995943943598026508719338045307108100209418183812509730841001187089487962423668509393202539945255920719955601778452678594096659819359142930083119327840588096887006124371675544337991866784855389395834619090224611794906624313943220142654485802482141704376146734421778084941220770665447037784699389891148448742654947766962685981443266458615060167616067601311934860342202972017196719955720971032281152698773699336701764012072672113098322172236387581668715478801653757188831812984612420521830752431251414714783740346282371663208761316377014927269793451992924026960866405329092239026831741046892651806586752307498680584232377155045477287018720430883716942001652250856591946790411854895380120699442592096200797357974660339072262681594791161017225903405463514799734856707242479127007274503701464150167883274478739430353639863502038182037664609683996077702348161833071750904074654749688905550166041360747352746944112078911502731883016453953061230364827031216316413747979707330258449016578619494203574140354425390472399038628957666720699913153226965604360431894745366414067689227084814530159111797098624419002610601635045774550957656574011109505319670978166566518788422222956953669250314250338792106879435260526740467212623658619791481551769546274253942900031158702244518477588396745684867268094462731754740692832668384130822617931580150773735011688339152779520032126850719855942218574037130235252074861991352765625238280356082870403369138124213055933190106931915156116355783811957433588885182186564957193392567943946708411148912807324319687541791491899359962837912578526192459201802401338759195650833123300030591955395528822690325519631272527401506796571700813567737872855724866107865567553831589797233934543868702839466075333418221959223411293628160326768758944479636322477323134395424773468637073046201284585006406092596726682648483286127978838693881153846651997294411676531355572163518547928631230700944051559169345464849108792126554766476303482533335295247426008669858239781570525397133193642259415413175015785043649531092958196400790559303942367739605060074936184963588025509845936970062147578270832198023345252441821678695405335623873676468645569706877495486312273533845900465590971550126152828563951146836384653587007876590151868022808088007870580597198830088232715605781192378896045259407485074380263816155800414328456605671403899485804596001866624798332566259536546666785453861021904521055185154076128002498261748519984741899532141569379565661142612391772155945919518473665350602770856930174547764089510922043088115435959586904236024806214058118590148058930953707228827698738324761511696682795616617394232512928784031893407685459291668290503614236810724264255419383414697756603371423813219414854166287209652981804541738190626678660293598272367463119224159171248875351832866398160642952347049995722539834509796486425800854620013399445547885114735072641629803549336708788853140742946593030194995201120597944670221160082366387893383224160182557044807932088993153189385625373243286779876498737361918660468239414454386123758672244810421720152564053297153191133345879338235661080703268928760821958289625396221023615336654132201714839034013568651996598710678812857495250961529526968830802669319464629873043200019554056778836112753877625253032003534284551154686776373696545328770180040923213890217865531382602156688792136281456893764646926156697048230320222033810393707039144732519377938244754128508619063633695638499427480283525091599319784176605424064843451653882814870423525492959192722549712359246373469342295123410041670674367162493966160157376408458198854000778081180644814171087600211159519468564932193374838837134980001768610993647989726520891932859125826145976093490454598760040473538498232112430686637098098800449358439234388519340649425360978583591187614535598767780307362680902480257055697992857569941771133232911914768144993597355149368311570316952359835875309023034536727419356210160763440340827045781025586309730145199701899034499310411917536410134977424882847342125128776840587605561221272998225373443281599212619876852497126944547996548299405895393202356922823877357201866246584501618166491702307518336269615058645662444915570762378938009202313694982850894602809207703507650107708674147614560852978238337128069954349796802263861532386082084354473425813255106048849841955463843898596571506590504712893206433811210221481167480363869822494624876907269952604698092814120533920334474786022011943008358284908231086986102536351807730367503862351477779500368958759583806753937776505261657128984966368552228113173716938475024766945983728121000075221917992003742681188381446026090260126730284657858920738482890848119418030571714831372727412984991948981751924220315561722424772672733114980764652328871496811591753456512689678353723044544371635818907593298959193258227786458951129737824137695011615339998353815451295260146061341723133934258902401182161712236447355227942824805644019735087299929313639073839076470906319378463512988332068989822804695243051650768240517366526802465615805315729999268022937685553320914437530358809115796273891471798897789123450151909024663563732918377936399645665666335783903327232516653750448252286100453818697007524458913316072491034668727848266909229637413358789230450615605343721157102979929939612463677358650223634232726359386190410828841065152803781596132961461959703019295438156699283627328360960493199438749851268250604453816085445930283021942335616276989427213448790243009057862681523163899838580855173224364270654721438722336180699605918312804442537089481141406385279713128047077236104453208439820695782505071461317727607143727870329924387769095255159500418450021304720401714351003168748704078384295477644899419647201079426530363429096765230977749560096386692324587386027075271236406653057912372562896345138494806548672156462652117481573073052454082283027288064891411985575670397058592501236681619297224819348415642177658912277803316878561384769631898572149127300241295751783882779993427971220067638814969044245207136192342896550042293957129565561965138456936241436690243256931157787667895427640912375516228080290003851006452255601976542510118691304523021748599890875268433727934230967327999567721781375458414237185453709319757405050846367614891070571203335857388371857918868668838607641915147946886358188018800048041156794157778630569761285688149917038656397909351568233225507534611178023039244990598597474296735051864036389181152775999801063222312726826126391903784718416984400670454287488659796080118419175694712331722366622543878181960742160682493445498027448558593989732706038348665770056952924338826077845440085478175881734231406459440325711189374557954753058702999467998327827893932498028537708508323449846190574067507932796545629088587727021982676965148899638974246079796985601649467988039874162641832850405828336754822369368615166730365742253904577445163197818614348119291949920291014943426221127827396354579648255114452277191444891697933032204658390617845346043906301800682051545607172753674045100850743233888768570242799063363666642608711610979813391660778917808214904662143600168294131276727947655091199565713312861591809076355694726472982526161258662334133228394778617754281551144702870063930105947191152242097285843741074367059216429157237984826345292927507542561736362850220802681885683378026359342451898373213486971718870358051135169011735787530137584502023393108947638257793852682817760928642515554755144489183845518573471457979514913351668853499553533683830077563436713981092697555166633532921914752496523798608914639610745309103188637729076660708042441322443501185849949049352733315932618329424752129028941680988032667448649675621809040131783729019680921189133263898260844273630311026600047679601239340392338277256626550448028233037238875760374977951005324179025916530236409232254590688192117361249201405695136432031975162954916679422088515531103163273531902113239155903134170021018083893987112703120878923470173379377909388048464887999080707402867560786651954941619187228583035798294714997291809199408998512902200546611034723793004556924642468730432965883683007401734228946684146486686768910437240578061694536666926377561660459283713685558801636526187365211324992229082986945802285454296146739053196721670521999122624780714656693211352997758006109624438999246262275432050370970081919846319314309327659693928335238760574454166609013093450512300958834283793816934574241941593269367257708621903606361762077837238389283923147032207692392753245332476870187747411855784856401378508886387842578123536313995681422613996611725010000424530040035179085504359237207261417182816930808411048569580729240164954183836088357557995962610341403944960320114567449553250750806141573860837949439517846595892701636983728748117500839621973818801298586139072959049857808764377583582688599140399632042265586530397789770714706926884231278056537498138902337674170232090051891195734417399756187154784816447966098918030200098835025299243869561343540737030915138722640631789409859333465660161136627060694602930679301875500305161236375404522459486501649619151191491633878617474444256897323861680657546803212279227982331017738419215090758350368012944053566083097502619248186255891645173681395874118453741993318831441126549846622839256798540094464759173015925715602024148772345786425205911566404187251269256749798429319559723272977673101051532875996962444683333284368003444077969148320917054079309203127019730457540080142735991919377653632399054374004412923032125759188536896730035303848634898425772042769028388354436932435357363265924576834290904669027939568077261242474572749930060020592871973992628601559285192330997511981649621287043347847526133362480870274940066523124969855231436409099240103088358681201691394010876391356493359705692717820633585941174744969345865922947170430023575319647378900253671803579280726750072280086268372747866872965809956000716780304520548645225000830182819680549777503678395614247320664590332404305909761818230104402956754339710091008248921294734595813115098426072509883894158585311592832708096586930422964000212415410849912978096807752074950505115553977738814744726910373240662768428568327537082999508688796240285378659419190960984864615007684751357781106725837201857669982512673630102930720600455215470065100885897036381029876725286267469182665474152640463109954657657130401978360715900564834875494961122962256479815166125583833645456100872541523837481696013386644308870827158713953320356881073992692321655562417661353585546647765199656276624708815192986134646846618254271967582132998698699822036863882097692085108760032964976007600344869545532761310865741577329745628699787160125107314189817866275405052768043780871903973252785312749677245728998686786211288359522575260650512801424536130928932975649899631766787719611163694929614991374101259721706047993501472168168240272668161303311870792521279659060709165625590695452035304428046281507466420175083652264803185480292847340080716993008075822513563704756941104108958302233424751262108610647895108904435950006189108916290240643838290892658018693227576319530173054672796695395111600224186131767405789404373607860562221865822479451570674506197648703550242415770860811152245295274557650857147558162019290905160227450031552762979480271016543187329972267998766294600313335802950265804246776713018555806955729719923565391615858550910221533328279550762327445581230539819930561511922419577763387234597104633960669829335344465425154935957922185068879907757547870194890842801981547485858292789627796461200102778452751672756914759248914110684158714024803730688800076599003519302567578031368400017183995905863180854543236367704855882646182704440815314373037401898585381983091954120377831496252598024306225870561516516574890819717211652358779350251223425041765203478170069439945749188521511845673332808864386393899382350880008000316246547199609492377908682310344076359988092554276851468489748054679752143988938132232471951288013344956724875034731559165663394598016199955196849993984336447132217048792202352406026440394315616696548698286481101115267663247364328575353537434821338308775600354158352968748558481380026197867501949640265695214961999423398633519939360200345707148688661349522745534787926614680279054576819230085462168970572537712577899136181709301296622747367581836280989360947190794254696021982372065846119402919415819260983179810972093512111918505425126876603454292552098761701807055573221893412460389973333214905279479108199276189188165376228140747708734012134434183926583263775809376564928538376529837500906582345818019776287736331853106680956508615444405525258552423073945757817031879092577132119535979908701230350388878837739163844248296176956675259683131177035011301048842030068620474399375879167304027803972958939625122353765750413412608119326476310698246745618338101669597618790670476719105421800220204336658856409298221571315822097053583368953069384548614457154207043684830240954425377477399027420243245640666548781524816427341257878658004328349327109998080880921289404344040094507933016320828917741777708246277115708236354031117719703873911160481877240252914450219368852845544066727403611454208287370929994078594730068303686922488516486070011744581605526694339446156766632862261054660677463450499199311739834059884556789320545154673837522468355703536585146347963613543176896492573888115321940658469611106989201121182128623173675513233176696549149318193868869668229589879394611618357003747571352529938011032489750222385767751523477913574484419314662715464171876768939389608359334582838133613625324823031694288696517002646826644705107088097089790318540056476764936262284806566919473353179992441430222188481566109061711732032604337954192283307838066368740118514163334062099475728151095199101287370177503892295325542176534301133711989952057789769245508480765497484046108127105037573948166988060874391206436246350132002126659318070147103883499002544115943685370620821539843996694166522318425863106827513280052446091814781645101613468520926328570171061407427422849665989210691804506852072420815669651344718244816119396109177495213474218916046378568418842218070885205996300233032575972604632785074400532854372660301866303925456888387609570242627138957281487391497528207286931166786064738977057238389200672443046756296087442452115716333429102542945356536228604095332787905490722183938623041302070574985172897163471350712981136163693046343394054747915590049198440122362699600403216675786969250181471961011353880519215633190325340318704452484739708748048532969513166199158200231199084685524204592926706424844722235226756535091760309689129074709066310691748873126408824177996790493993267852389396027139264996128253908681722040811659845630793682581889065540187679466571337466570265478106942593111498462832253226054716575594180167988115507656677560395038195818782098065520674717091491710647303480164914195561898957681185549667417502891439729551082528259182545992949853812064318309172895714941476085674725895389603423923042090342532387513814080944221876721800247605562256426239153966607408148489402197308260245449705782088444938503332596037828188422696473135198650917477073731284942256606176205984887355928953082685251460268926597075699761160292810675847698526697744378032501170046260657257285125192496194614380821043745227709534049652852805979266945732157334075900265085640124321242398101145106049814778167849490564422293151029468465685159105381462075180414056539080833012113946253593722498556172482949310799569608837750389240541337729953759933310641667050268903348865168845664363103541940456456554032651983406140428598811341619851456601200249149825704793293457427037167594760532709959472743878432669156257392311822637811652555610747891952490130237739014215198256446140411372990375299092770785676792090914441562611682841462288874858267346404832620425433698428871335011344246075241367127077912427231951618646362998979051887199802039776840273875331633774949806715000631439170385916589062350352141534393855839402851033044404068114660318844277055675413961083566379685882471633416403227631849334445372713618238530331752787730677538976388011754820557294147719416342374114723726524937784046073808898488676617638787384289640586157724075504318727171269763566033070405397967591607938349244381894481639378855900328095412993005281245846018207197331908040673012019008860727506084786015649294316221928943928879690099871145533529218542474108036176310968529789301417601862597187376146593031838157650034811247180294505281135494832577554465902041261673042948748486310623167321009547002673747478748748770671095508184204156967175967385906017065460589321295076801651387064556339400454332565431049951132559546333381283961059393172049677339358153587394323148156383042735714099504239377268109651606073755282487807709160450627261854856161445251900475057219872519793909854026474755665375406427745070496336700888021599685092370175486759110430911780436732497147661797345246642361959837630016996262233282607983623975568828030325838933956265802599223613243360090762325000496544921282027669927307177483724441457403317594662722721763467963086983218876747044244085218483406011940350982977569813800941943727076390781869456173028815298194555780474257958069831898792904479912247715039703509750291627096898052374001866621961875959224360801791370157043569533732558129090468462823852985475987370576918057568063073511325549411906418843959185047557064188758215178976628653935224880659984752503692361631120627596603156380615054477588511272914124074846771325183636885733209864001303398967130817232785953036484521522001220408461883131306218030748305022845010911355847443978470844961695468019275611532997640753431649561293257919979523272302507950032094579939433280936543006754146092336152515943159086380946458668892184152236145453933806460299110447963437861543600926819075174014263073193560358183617014247585334874729730895933932260162983017014610006427757026383603164400249477345856571144131399328401263004632273715252369791903905562106737090535885055070698686552032261538801768098816994252537485192725254143306621361884454093559760341368249088498708109581413832494967636072051898817836079766684546199577949974895919376076077645205292131549611064403011613507753884626322349514277871903068072362435657107542389515063962176059374961363799574184088392555422596865428004036792959645517869617275774855442459323838012864066291416529711549805961330234907110641061798187015871558009150486091344920947673728315858182575720780781278605618810970907274207230503693473640497244829835537609996265801926431637569589195741340395745174508200303008119059252352094567335839378252768405561325877729288631025631024323406709550175890338231845599666655834070125695537165651366932527204399206083931685715766047102971084606371842630356647626749769976013634886945077234429159393698568318146344786707183607414190757403279399591290861148007694152339627994559831366804677174459957616767681862205254770270797556679512388425533665883957876408520733907866092280133473171460146360156249960634945303004743406871736966560725012265751845504926595252213421744490449830791322989566169832061673762266925176039499529645634486435928148466337595823825430924413738193356316160804700533130287616248530085446950310129036154894428474734439488913235177629354236866694974085995040106535118151025542425287349568636649479984064063636706480440142043323577362079946407560017304414854483365770892809935176860693783374821806025219641832113304459911947830073345588499729788760059659054609361106524792034446801428701058504431778259822433822014808379720973588813403813415886767952896083124657480185936352658738891991533722693412197945186629061233740722344833369310572405736539955434403056853894645411574694664530768146103981257477374061792204176472519866368570596358162713128698936259959322942614948520299072154414599274460664589020100056793194352731062738014058042894832910177934586943132007674451860009730381830656002937808200489042538178121860506864420907009085887560690647434689116843424603927597159999002387937288847173138244537772882140998708606654891369150536221702145725666035040179614266172951276348723349918244133739412081568500911642478771280402628384204008663188767495963181263589570881516684707555496894150471528718927097314333636704185645335950878166029372756453993458985023469073768348395167417803126553728181263494135305329245035285161718742993688430809920260201092901606044579994622812826108116782300935466834484463346994084111649964225595721410041424792543979454471063167397774681880662847171113808205861696690645256805319662634561242596148862367081800091691496719059016893656983142069305710343626729843381037730233170163538064133544231605662906168587318794953699084472563934046006683134822275037165118131610540203673190183946031977398822840354961689152330409536666628230544298388713478792120306258442777152473208803530796029332780880466739160395960748801984757385598530968020550054815527874843367019875922547668919233212866381251951060667215361259034119134800279804808629850493059479493870302792408829257627800921515107739115930985830781152192185961419753119191744338243092414264513029569931566807669862431819723000374312618096062275918755748865163988514246681846007945367123007877785729816484696531695225188784775215716403905902771698464984938643000088990917432570116689314469891583434014957874566933825210953303630015693119893804359497017007085816533523301758254279172121438145266730037231329338438137119639459413614581656373254605502025455300721579733903987409630556557408545741339095622005292424666636630131403741721081829932148222796688052185577124886533597260510529856606246896552033757760393695264757537540275365951750595535212534003263207737973987755665882553840138234834314783518124035300581704777747599323454255167232209142197209661342032778199533689590210114270323971749924399336181086958886131126682992458582561271760066493482608368922125912822264859414203900907372282785667803259019782157309533534410509395862196359777723683767993969511405730837805977173995879405852409033615191059595048852696273869995838475079731723758026456418883339518361746950867044223233561764802937173450771296230800310878271050567619867683399665464698285403591899966794043854047830412229292062253788623247553592808401752009204815627167329600217602315383879111548255967650068529205736219191535502267844110336435406109838568834214747739958299656630436693569606091869740734802069992644691490753692039672177653728372161214581466695922632310162506373323387947077981718706275405627236809474992302728483699404048403354715268051634113436324422632030415104374314369898958183868970790743447001462310690833337486555483246188409458185406576491290256407108080216079822027820635060585066118642790054196676352911222198945899266240692116598388761653723209678536686175916448761439481994649257571927013852431382556746214532380950831155154985512297294370215778050413011181283224482894449059764672207129142003393793583862167291453115695379276771438947001229575076322355827443902476482960688664723733150644634561941355294056594842293229418259177784285852470067144058186230049325851826274751268203257503741625408491831368354517122966961009428408444283652736633366904127014021478200344586277663544485324774965784625551991629267000012122396817278034690281237665037629694686059398026223147566609557661461357766465878485583324351221605573176224456286981864924446417395944254117886194599544429046940444420265295828442206196664234411860908033212396934857139620598247691623173711523531618346750525660872433105092984387263810247484304970569087204549711994255709341356693132891357736501375722927183553316686119793623365496662342523474700796023474038932814765695694128187294111634682166341745077110899877264327468789002328346841778497627168936858212829392694230984246072438262393778846729803814635398135189242336422432939706165614999451050550489128891250294541177765124696554593896338846548502534923665415460447169339920951462383310920300075723450137452251924723501418643168190823374387448478443519122042350282720116537511247428606686027193922307803540681118832990691519753557362061239430180625883735893724815970114218271328619309214930132443359488130773035778430874449833683055594919857050381826901273635122870186154200568606832398461230614320791024633664718164171424807389400874578712369867865869362156587153443585108835720917278164993632523573038031220672571544718968472268628232296771525373485810577911140464400061186260602948122770870929975308638268973242636887293007193409778433399392817376552107060089316583259385887909290135292571221296510052447965268454967442550312779867619533631217554994637167039299440709383075743944907255123656282440504557549608048671305950794074744042862556679799893302186214963040823886969631946028343752963266670505385905795442679230949393187574127796916915945553071268010438753958060794040037102367643803959914415380498567527548907760277696378636888024226570457882773553352590575515999449680858362639888903803037566415337255319363146540048388606367098965839621417526820307399950339399300922579618740277878200968679293850763091051902751554680242053195094303060615612300196551663222994394767966027508089578425548113940614582369257778924394440195008332227054994341635954678498930004087657526812668277189063838802827119231445195815451415013672455751706514903842473980593957353286943138217639445116522095940234979336089148968956824543778513921316819348077114407165129825499599122750044309402140734325225109787599416217743320118234530008357602125668021462891658729866862198406409447948413897846573363150469461753913016017056527423038255239724337642542701376042643982586056217665732080769592066010387385166887883638919339284835829978775978512850293554855876713759189777050260233035446676815843968762558712520632503144125140882604372229012726563046618067325225065280246792361092046330873740979058110356255241729055789844888763096826897046870161604096982532916044402322587160986851913426542491777887026775726527985029450601924360799688116920049907915857450466547860482188418431602751231614171458603086159756970737899369841400528509120674340656694893587896411590810058491500289359866169251282464759760393568076157365023846348696934378978734221453912958834308786711129099776162133443223739616751655567076631979204190876984367298056521779983349826335178783872132429705846526205726564418355913508192056867023831709835208199622703780646467394742705746467470801835694822623370326176144671778702730927468396300190816610194086777599555163961792992879461130590537807554971368875930022340325381515139839680743184626318032280943733746103083422019797572797406975673679695919069553011340687618317386409971893193842047551083971419650092068394047985936144136829589024956915136635208971531489237800892868770512164744503840568821856073289584027472333208183481495980760082065941993574526859730750803745457387220816135450807806505535626607602805287621648401274889936252901266912174166504749630353561335041786689306375904960863139000449370510951006516256487818275880719480957427395971069741713709479614861214509164844861531870045242794384566860026863177232777877646609915931152599133932546480570387024104385731516177342048878778906613987194658463745198281136255984838528662225057593442954849299431895924801071907989838074185404500055582331948132315968077580448306882661902586828326281488536352186239726712230557518431438319095196076669429155588460625018324252781722731245105446748669560238086214284495534758468654819673371540189355992545864900518346956679359380888413061321013019050154172719543400361287469642248197825752373020323995659046756962975014679861537704076518374309468285075469259598794938771491483032172529789613712065941207443500294367655235322315603745162117370423815788156135340466358684420618150487502763719475082463514996797321950853060767190828792672480600430008480819505293956934199423509015297376038204289077590394129206157077786762371374239303520967571424407319383489195361835055083044883723870015202724554504429826820067472297573615011283376339334463296761442357240141192402688459998393114255100556816819678261765486163953296577078564037970680993366825217371331430688679097914172815469006270356286915249420802897661903602480690882816173911907437075600131741760384467781859157717832418059311399835964122776145167358085318650885569398369746828620936425519540122561235320841801484451976143494103560771058353162057629254687491265497337683150489502541229157741229270407435063589259817162336478084439762975623521275998347144301315824923280407604305292344910025546855484373994928708545971791194607530289297517557514196895438679536714425625692313058965285349208115281059191903458545754636183266507467052812010991200324251898987258984908496947351347843321677223600648215887960060230178156144050884498938171190975448232940122758913966979514862861267410346797603194712599987678029334963221561307640830979487720699780840081113069947770854643366655627676144242900228460659788822516223183247917588897836404634931050633190301377999458173151686923252536086018095493021321087601654346933891360251736310446545218346187620920951083140616304338552346650234312711351954420349677819162354825449955564904738311240351839544517105811336089941508258909798032439081270247030292403201126413191326107168555516065486335555937177750483187178665916637863477615182198893766743450555225058702207302392274202074452548060180243522092222336815359340334764633618361948404879002380070130236522255700137069364787002876889116962501965334674858348986566583571513858362528328290867705170603784464771827807496608254823092654422718119477627620267914939868689902494823936911024682764111052871271672465234841328861380415546873605927241885138796019161394505987839843765246958885953438942552348248087317396568134418095358743758323825012297140548669414988913264380054684458367964473556509013700150992197822945739014078254305332164471846249263733445278131684166741903075811994080616264212183456357749088345848921616941364332706620102831080482645769788793969446377556827052522601607600761751649618088663296421178774228137357005738578408215074904258607847864073420019937646226459525264189371342712129526270420344333961520835246858969916436089453844940988920147187034269478377707679769609245952026067744978371326842570572268853557532116958022621174421526739013415087366373446238185470391134882352976360970796202762238881713955757663303202549520066084012119829183830930650942202926850394535036332646612006536199555503359649679412593361759637117574913254464992901957583062594450356316082627313390738661822819570756853798038957594317829708745579723661184173714170936796786182027424989150483289867514753385510594112354143824260029753264503144112919432829147945687875432372197881078335365474440332621846015259138553711457831913363668244609347503419010453998851289760797541790627150611011405201946961135427895910156100178155320786334050039374839903067935307500804655814797803143699252282387677159672078187910584944297536699641066157608425088275575690476286143560349245775603804348688405561540665978408492741557295181139032941277543210747245020956909964188239275458498887942370784518854629199102535716897420412380760813592449597955543135819584301381864957522030067417776147466065469979263615639273730432236290080817726792796428657989467252008595812303273341260382150332594022705452032701866382314143062573922262608617558025823942793693496959812485709963094340117154690878947451157729107674016654140916958119392417909282728834589199072443885080278584217414178660942357027498549164660651736888785958266914392925726987083551842130748778624494712485328314373468821437589336743649197303870906581623495817771089133266930924502573334044231032674433942916812712504615090362815212572832252094322879145876800561558436281963295218240912537028215732359055369690452278994674059988111422655147051801330892912613150177296236244665581058606772560767747921226072571845792509856455785958454380189384562889284412291935342893396360302432839485691246382939095740291403619200548464823431074007519894232579452751371356034983476107217816770826634646950684235639270088512006137527918275272357722081728288284269060058093039298133059167359701090735391640104612074016997932958772064556081760608491883148210970565416580380303476268853986384084814665293771699213094586064515917598750505877254622874888088322316472959448349110679115435608779113847163313320936290801085723229591558040174828000618254522405698842794080877292603987888235822331417288357954107121446298624321993071904194222582443298751307418103773120770185045725416971079085084950955629395078270372823470411923754867903733485741393753150523787794743512906994117780854344214326230138131073017024698292705365637403668393158676319100582949326461997111602693914041917707086649996114484018793275229334787074825868373876255909871482088931662855986179957685090013370510972702496487095242067093042667186160374194972963659924198982839936077153401921378832025558487960276247257725612843342681163055557147271459262624332870728167012648534833015621759698138172594146376317892412755304827922582206271219679474113642851655903840936326583240243854017872505612761061116779939855346145909957418757124056234291947334583842719863208997013035181633812412523907409173858293095100697042435121545706602894863898230642835332150791172033446542498646115434037264640260135146654732518801471797703225932149442022447587573051338021725929147442189844067438881523292578683392316191510275845870684508285825336991259331884417120348434135221001504783311288240824247630363487119277440938135267851294456982588936945817008787856979819852870651579828717123109115903397152188346077113901492036617929632485560747136714661136844042629669924747647980977390464531843484568441305531213432552399718500338917520369180188394403178734215974791762520764522358020881702785168419209796130630884717510410857055724370530769795675814444942849993308061038676855939932240052991304710269474137586952203873866322246997844287015162395743471915665296688317204223120635737819876422261285211245781203609425289671845019712721370658324334351476398032410317086912927719276769151244285949740998610312264947990639462097729161775879624072895756804386883240403517546356835074265728173685523706245817913396293965046082583185364260959585645333910932070119615644398769531971030991254587488511446414558858477640842155070053176782302398339989575612264868074008961312256346281908000479616190641026798480947909402579810465236832314818699481152825205062196104525148163498875098114776762173150293777870519754213733810836753260847435718985491975987041551284681806127391370720026943570208994068001348636172518231667422436459460320856737081657354385663754220175881535524116992128964555126670293466476867323347614286600496909254247760853585120853844554419191334358782066725936425241415492554818444542143831632393223876853666658404599587483407579947942516828782061967711455139799078483226387384025208058489254953458842997707193915757797161142758933631828439258997937888259861774739778957298504814519593736136356378287778565053320345243062629472711618487039971130050402273356895551755129987590883301035984363083858080064205386325615195080077281638048041845477597090272304610267486815909221303378881492013439846191452063642961478598827724742886791171169613657506694825765449327396724736800674356590245446761518520688141655558600677061105052421705740459373633515711174026047418717047554488816039652614627113896682344534486835980105451270110088260309594927722360946128093926976300973816805295609161185426618881579109766865753590946900293449381208743277078528959390993725316075086150870292346394371653433669511927633936254383221130021507810493386068268036364746826233742972655248153313561667934525382334130373039182532302070203020052718793134177098526479424599551907505046180969071138421320221295630465006393056100875470049966823344345859634014078667920197854165263060254647814891437605261408706525702722254205200823924040392508971996095278096476905227530437362521097391297857704270751013310576813222460254479822216502194346283513103230204599795418615828782674129556818445973712605901869842407778363687045417956695278049921492334553022529374723446108095593153881618267729816182716475635405936058276658450185295089647592988646819450674499202636196074244973403922291567106738709156311362693208555030872686508303767329140514458584844610340919068666520740529250968036976135134379325499731220472761701094084770847657709766519897455821380561889183318789749291865453126730038567423508855794579829601315625060515238588668432963654464075567718642277185022182276103770915383727352426613753586539716334745150367398154267552698311933805263500101041051683915590018448585123903143661587405537197876078506992253037065035609954197563032227020992400707808822150048663396059787877693796584715097885610437373629758883048772831460797300973576289018637117635859621971047991627112786365929187797532399513173599936553106569492414153773313341301472143524535977161952150381787120734720773941937118317114036415756666207351140502396461363307205960342027526718664358003283544816613842771720937808997758470968760469279614599645561835296420298696317001374437056901792733122366992179627735291225013727915654018747867690789651217204340210863068066903106273381044435237050748666809595389018725720009172352510959793131873127874562179805029696484926649349501996396713373903980848869332677813389723147374692323077178390526714869839044035572736987941325788955697910954662728953823580405493566881814884611499145042172875519836847277486696526285115901912173552177877902055926660564839323685011036571046193962483566700175645147685207393735545340877215247320341962925603856396021743904491598241398205484558090428702857583105054269889455248150651208003762286791822939128536096060943827981159069116872671202539251860891178080957546867178410890725259056178178717599873599277481227637284512497950825577503457160774682810065508012008914751099210438809577127379491491759297811693827898732367656927614988538690043965776005747771282649573140828584034753036484784683213736007572891983889212702628300019820041131611814022895167269667431968788671746611841335394806213606771746876912261340335218599681623599564251749924795880660593159156792381016236495560029122520857378588749712406741039313459760081204082996340357747298241540344443820926236117004775475204112713609088359863958781701342950770704409987923580820979729797961379644181430788335788229796678811041912961009630062315018095536632308009017444667168029570206842821790475166671847608101594549192217584856288520693625691371301994384633097130607550750965740333827294053225757983161258698926623998070166355404937907689582186581296944263168035258534738086589041035201172970663350959590394889837871723503220279837906613802092326394347919134806359508875079571407763840270838957712339329383807923308411306565916569770139657487379830352802809154167396170869141810263721638489253043117002665956016957533721689384391121028998699003312225177097488925501137292554941990718082681282820903187050011235886876877874900669490840907838856774271924878093577802579373948461506892959616602258145924999060346535545942465757847732654344620009893927760409000272004804423547183276878946115931384755297817449289236992565071693538489819702511080172973223135942431236892190709123158859433812392465567817846821225017613146945590230430126529963843407322513055752578719883865367430641664075664391136652285994485891207805620749267530493440223660880827623553685512750927571146669243944015025767770950213757456418941946167585689525437814775032118542156269439492251715761681073976807931165922144630511451112000684892894882496398375212344335036127227871636147172632504121166481233863882494249069168357729641224597759998165574917231404828606008774003081881696175392455202741099831131494792558692498148819229318574627559440664198017646011495150491180639020397911030730482161423840052127579427047210182788606423887822866952163651193029416034423218633417522499377608499653601159198934501536811346776844919896705336157181400810920940116254208489365697544419358450864388739327793664090035815125359362620955653165943722337122059467835978299699513430340121250448103031223028255911530951541106686730376297183319929872907811881465621848574488479670391234068078639469803261182211676850005566089312406515666974742607408130100053976937895412099342436802406168959660118499094556214220934908137445543241715620245651421111613685770584334552626430889381168980112332413108427051578371849669443052122626287227433533102675781257876752546887668606495950457572462398118744409216324521089709136278633686461713674447568791065377545062254732272684914669126714204550389423350690349553376844694992114275579211936428271980576018509930986863224820637055705772265159757985111270038108223294929884475007961562082275345008105473188184134863267052192762153462378775618832008333409209016490986906036764098349384661730408625296615964746663368212288485786655160217094498376623155922554733833571781825347842428291862421316103406902347196045339352519180461241265264908026201255936882741849947818573432532635428965338649380944894949436519108340162766556867062240820995615926245201189973361235890712228490435187516578204161483865087910188275507089644523964632659912750401014240282858779522935878659986596005777575017762099394011787062324178207735584103566474441610555728469864792344612301579147600707683567133760633291480189598443173116017084391797129149350331409640850704782808667378856543771746628208990541176590512485384534620834146716622191971866516210790333589854470640807452797889570346202600509246984567799778309663792996723744001991072611438080930241134139917926492572160982584856524571069973354891817375887363197420435588040170183497065725516016489986820837928542938170473268654764067697911733838576638627849355226792396848866290370580956986859440838933687600708386964009661150738436371090742485768922411744249601850104786339772884126449792388980660599813606527492870616823611555292160555443876725340707535318243672264589355109664705326345596171002715492883871432683157097740891826720132600545122638399251355011552830855953904496450016563157917001025599243502997733129230902051996297451769999947077888645395763269035800493481556692771369393878470897942202134100356092075864147840517767317859423242682724878612564009268291207266137043850482794875851584010397140101089876284457042134110911124545117487794876789007864589520705255062887108836216430831309276671218951799046249520272037731901317512420933500133545287738645004487826643929185203292803730381174430186220709775263315121723685352100272284776089529210847351387149544384955696905730956505485965854626460840043158611912213894868726796436539898453333318443341836215159787869939318924682496721602504038571179693757796264190565408727943087269936684637694504702701463484821031314600831289506472517142646518109732501675780691573565996432152198647538686419826248774357999693203402173121291544169928785255871138266534290354186149811704470671602536109587148907526517717199506111515198575960289373895454007041437044001826926851298518460133512445812317874572642984366023709007510850203678329105080691191594720140584881606638920526811306440174218972811601978863536679018428411252293664304437962641433120019208955298569471885310574150008868170580682671870430747358476142285021696944314151221935523725042903553150585310418703589681014607630318191439183625811616513116597874248554128288118952247228422163932135837078898178849162240103074798972442519947061035747607388360572512320445931437453466094390459977502942267035597502052885174973940734747991717493364669095392847350107579469542903192844045662032761206152510560737778488104257542123548100628441316913392301647015367168550203084975410274261437125885981162856665893541665007225992230267886157300498413330400231457328853639495338157719653952135003585605976594008176086306972762543318453645948549317170989984052918967673432722215450817191158573045525135388022268148626518232391658646412347150449522583433407977042389443919151282949731687231009742290689097456806433218773969167834545920247730147016811194108590140203193693841058218918589949154325576098644186903718001629295249746382528878561078618482571280581260779328772324592543663253021135122720359091990536706410578271725872647505033081713586190535030969594290909238193622373974510587296469482051768957327655610283842555502510495968014429131713816824501061605053023792629757914650053748791027487266488714379271447814061234461296916967134977715125503747398003510414698507871947754847700209125139064056622051984602892780674806334925425595790752979332569433517524522874745629830637075792042606907144010598324480764952373080697503718837944954949499678934807991594939055090751399028291151629048086793573276695625518043669339697890803792208945160107177540203679697679211043689903746677256187328525246091561898247209722509866773863821368053530068210888696246085832198585935073572169631033341371294119105991493354658181315432256376796874150380416294162826461717302944972552294736792141084057158439323034894060010235466536584434903806091755228091191508550726975282450419933727891079073030940679142469774847192149087063777037606141687673289276786799902471709397592496328343610773033159990460826405699644042519000560362220449052339581187738611401881014999565682751568111682388515848721589403635796594701617548255462098171442757941572461479864323378781816133549182814439218585646129802468967215288525157181871465890088673885355962183655367125413044547745617065189136085016555261294313654707905388109379003310354157352671073566873116497401684697840123990224907741621269488381454449333043706955978740582557771407417354268693387620408067635044912291025024800125225172475248231495047808876037102482010032043029338644203653851091563315252545944490353631958462603591728253372557475459099522632638791135955092877013258908626384824492802677414275523483914245000304847535764227022571050187127098434024476521796401119664819260923655021175153420934455064522236636907603732767260143403379147511845660593075226895147203094892082012538258094922681552232895136944692701846918600855394478702648898397121562406479560877818705548450390969781220598508383557652943039398754016397115103748424621766368947542904047689963289757210478997181091965608236037931634647341500484570858658547141374817754070540454995648214000081646122899785958149464881332471853784342626162392386174836456823621398544661248971098611634535119286197520154816432151085895984294720713328997701792855273074520400142954379864869839068597144367283049355848190919519841259135362452450552500968517543156938685865482168392657943915856052820404247526115223953397698953911214320762908880409797065193122483876012031244598651557531032583867441050474290792917367293696258227839642426907374454288241466366286409156373388542675281863261074637340919564760729072363153900404049706420033664836681896053966342392768012209894737856052275640201032536773889052082019879141689463714587200096008960297380861341215603055377071921050673818506815497014369994644544561760047728822219013959709796549343167184738176739382153902504952232051261186612576826819232186168130360504147881254367503090170895088982316037150817413068575344853863724657640194832288532593504356172060458799149310882562320071623458602185667978160842060239374214008458755252288371984299125878379837868142379322854145796511229083310986202587320499751982574019377694137287029274309238849773524265245222930916043131847916578820096153648883081923216272087612632434638720923924183267401987445109760969343747627597254295480083946482895773342331883751683187166748509353153806839157239928362190585777017191522291326831975212511123915866777460851981558540993856194837559795360730968127982360430700595470348494247883011980978477265435723634965827832456569348814427330367287211997479092328431394998429318873474281515349494689659850585995886261663431373156762986190943743170129202124407279376723719027207489678977289274003920205989951459431469726532137607199232037946356775982503818352387006376300655447527165623523629552439626314252784134933507150717885327844492462772342048412217285922402519952191633929735981532076700760902844382890768707895242503825176031225940048039602393965387518083401932718699882442957158398346926268733063001822580104740230994222341978367132555812402831219635277218053515608168747107556217513519255510351121085314303971002598043926196887626495907484924989005892420653284099908077193390299470953005302898665913317657850896696587278966641521561289311493223960704384800156258542783201089317131629678946343223089884880592487329002288157522472161416652425324483232241955719027807652803830983820005957207280846409924624599387014166294271793511975086846951189552547945635051323125133890055583671930413345447442179717368012444628231876201655367854104325178407933766729667309111291298207893608959116715842291727003515198918850956851998825265113706613777787329904783181666440872421402021051099611189148720487042631761599837420901572250108991126620625167811585526194556271497888502861812965818737484773433741149614488936366284392456195213439616186132236099082368038325141401614871811201196777315064058972694951935676817233376780536578991477838933347342213077908978593949829222002222401653802260753565258824331042301784866838851768544948191868024929110027026207735222474529893724870742800537946559619004478054127856057880010912030231619287581966092008179674215409739697104623189101396547241117444221342973009993706414962081848752348604713519960851861380541741377308651172530596021262715028246697288603145493355090334593491257796227023574194395806888265075257132172134158438413098850076225974057481179662083955068160839330843096921796588657121523927578399852237172451020319663422020322603088974920553704652442616844106145191806061070907654548126782559886090820360587617470460758965158604816493434896691456173689552038304974444256921929079573359263476830455489995441770996551621731557381825930387761238628339177022118472788206923722577229743501957660261814157517689919837095987124117765013206658024889239781960429304734185976836439604149638282896782711651902268281667633552029362225702948807197835573903017333889844994485045740114724139619684181117923493265306715990777778293917517556577370856451168104063330177980900445166935884949086544752036410519409053083100671707562130070548613707468872582554207698355744641247387899100157497059356274441750639305893388646983993015171484000391912969383093776804266955991995340317421790228530947853461828108243356692749899090075842778492762026961581487624815723132758614282013223979219530790463112549092896713047532134159067473762918040885490128079144485861163066941220039715583262918798890455938577226936551493865420290069688611171631111922039079150778731804291292953815003854080407880141275094744705645957711291255617601512706085933702425713796186964427029835342535469800408225166792609301037420471344355008392714262808987473648142112820558987643849995199307986093042122533617383530151285078440976516153528331663461538872918497202645645538519954254800908867801429511989026314640544506994595341406692421393411733737589141532959661723254365802410858406792619666545561892087990163867525523047779956375907167913743411418770563981197271359896962224594199047500235216274449797369862247611177617682655054057038670450717732426598616078107316095643208041720188861080815979207096044553221226029056534246953052328984440824975874611695613029214928469407353237893902571587730912349684270997908222896266358302235789606248959122642998610892780846508198811670595526086139789601314279451225506938376477174556226170724962799092918229231425748031808869814360542516848784581832730905138656155476623114241256653414935675360451728355685115378564623822834197324788462892017796604848237848575271766764591404986260277542480737157978481655580984756401200128948571513324044520722072556023498390835479985197148306230366561896893206259794465052250319397026374069638043298516024871800018440526316328326752064687974306413553347743848488123744108294692202597194618713286811393776589492859751160518721825550570402069772654435600164467936878536951725562236608467813461571500016934648167415326311955058921286746668690054575769267630324227086949464887990976656825923421379998715579362289277856222732058951959355742785986362615165769572300938875173772124461771786215044794347980373781231130868734491428043853451626582912244552413312165090237559736403529254642605704131061038988809339391492513155913987469786980865816561381540689888285094751920376487600200544032947224340177165709159306061346745821579569227401835972288206334849828468233842353093047328816078182020543356601514796476219110118714224455132941937802415324532904815355120113911306049063133345853178931755628459850733703547283250391357550340912569035339580359311190841132166180074666233908858136270996329450125980653786873244786557882008507056376506830178893486540946185750185413933647919295665821350700683334219898411796814875915858237334102184741066243572276417700964032641548685322886044837104016407297720311176483933772741504139236957536280876338574639510422226055331906730196721839036352518440632424779819376651329569378558589134692240106537556327244749729353984595374905938924397883220869884240172611771723707491208484435923264960113555566112816347369032026934135779997786178909653575412805158757683127830192790040723335659951425691183360721359246244566731815094517734478863333503022202343808867869535629451482088971374100089233425589911339541005352227262535653480007410244876901865510153492728475880163774646834696399673796904466253717993428446570280223593950719246109167865283264871345923527036191977511881013142007244536181707936748428062856661124176085055736206518767014122469978524451379789151877007276879540979925029322434907011629081274146524992789695471685529017776040605848990495127641047719413530093175863451938737889803756856964847066473985538912708670789106282321207712133456735189467214186707464989898644855826960456671634769671892948764851351274490893541990249489756232901121557876598922600950979860330953599807357471849326805329910819184694586266807006555643006042518643598095745090877185902442398166282235681833062665159596392685643980500836952504999169293471415603185373678584399012414452369530556331712191146335618475223532640679848115310738465113478039567431986881224857478091069472386663908447433591053722737803364716965410497291502848311253544803111508150210847310992338663876591827175473089561225962496543292393347017781324556371074395655228312880749417826420751080488607550552586296573907698608663311830323155068752319748957857898241373587853217459389255707870797430919413585012532733125983503433017370220588328242723557874442508392401387605322120188487087954265327855387360093350504718267787112823238771456852791975544139179007383777641099088542454967761408268904464212612048116814958344877985039388622164431022151635117494332226952403692021620378828531822409973139328257896614431207595718306831947606042949634385447360798870377087475663753146194741915414805358078032843611078377826765180368311078169202773963965070762646389931184464220614898968867971671931115813048463482333079251650894382172444248389600823258297710670940597089914677352570066530126569084930907240636146579155690414251234458707018636570157637637057717030077135900685939113809762641475650718814745040360888829662623059402830866639294795940838599806262815485199192987337596935353523073578100895212006831606710618770377473416417734976016443376007959771155624878968548097247020849183605292160226893630005866229590642206189591058824692051029485010129128799307021530513734694372990679261814697241284432570088617068292901378941428660316042596568851051030561580048153790168103433974923721324771851658548917732254675564994031686655971653090583517064788783643249855635706098322133738380611680458858582113268514046273057444777851846406317059182409648648990283503756711492006324271792766946808528672029150109043029658880653984872077399569631348460450638542024841922343724379035782653647264183147946332266770529367122577839272554711436067139211162218937466299972367935040280889990238154735876674108871017599630788752478107248250144570570821721838421110314733417026618512498524836423598238461674021522059467743081813757570781233976253367052956957538472788315913210987943496268106823582954823834558119978257170936519515224979729670388660642447762574742160340826083756635177370879013733368637671645421627725854139633833910354951415347035242046523898038821702728959921577830481419947918275440888198735258757477187017525417118848954018352972414387267497471961700143489460096717119504731247622006485534984401088606564014383699900717852898099769157472202154929881379920439858813438320001159873041285940944448620854122867019544135072693696008027240888709671323005461809036989980578590755140671421343686380286858600296637435689313142253870845453752538178928778460709501466190397980249262008494923309284752755870365632622085783946007755726450731145149282075100822230590048277199931759225725301160742947592757437586696427042982149229744954107768302772076723423429689553145323547637591392023503780442177608719098148811849447455344801282215907642087070718496074159687654122553017103923230597860003851175264264160226844939606609031759707424743054320001871362660582531407235314114153607463191760626874782734042896982898285484604677437784464931782299260519802868417791435660915888918714510636513858920595799385169197599237576931438935164515021264752929888418365120721387304879445986182319008842338083761094483461280061425403986690150356689301100911069203346198177008604548244613477100949890171005461520546708837478893446534910512135928554931244163461673953181450469482430931549259073034456605935203984228659074893143169527426600288843231572976635361483498358502459027857163700739323395381953246618997610302773686966873124052293626257650063129087340707686409103605266317130818625906604223239115671196188156640943215567317906350853413534175877296271454758727153159800921979108490052934248727021349218860844264246639972807683119827762621451579593999264780598350943992112987870446428568266492372102294662419087853172410284539403438074348796551224703932557304713728414994434656210187875950202818583563744571536496479481908388243175851591485314272497970755959537491063696216438584114175286876456643789820528915407131469121557341851185380655000412473508765787202629601708730157828626819404620373486109090777401808761161362512891216964416614333688112025196477251025613228702465684397768317758740981549034678279946198001408143769882240975113944377133793916889382237043124948182013061557316887482041306044733606428626040949917697613657239932353684936255371829100581210474667917429964193195437368211945707919205742554735413507884044507144769290906724789039352202587352238883728662113186721789458857082208274813827538639836343928111141674249130079976087601832033519005376694048296911886651274646340446032414893933286155393139411709298913933847477429652508033435173830700030630497703776834052474633022223766399437856351853150956220630425747208199566954495624375445433706743306304149128145884769157603187928257018995976922357687188038610353486452946454524860029301354738905099262148721086505727021775933024306182645693210343772805273346281523231673366391869943545945118733943013976882868006854559583850018063604404672211320076191204691175835232831040217528035227308229757378866354735487604740605723131153069345872949668873123727246108919421963015405164542266940431526353915820413807627686355234438998464484262738861834771990979523553601890125548907032696937920726317200018226967506563698628731112320588410790104487852285795586788824155441045866996449335888652124356924898238443620843488666372293815352242307981737723913258051075186633592201700671440005880215048323248216536417851941967242130506448976465445790549590509800217444140509906130952814902322331458729846222655309845601538316177013507335155399890934227211574632677457032552392739679416529413327509549700676335379980060726631758215246617070599969774375200112200159221644918163850942884866374871992741531978993631179848119918794853262777320896625105806367244035483996243525471015824501943516914085700185598275670423790760761288210713988459747656275194103850733540673805785964505091656194540645799387154157906405055909243286507536347167181054005115959127096345096556968245146152268809857634276607190252158239432428237301895018265413016718614132787612637062181608948812343307655424712898930898123936733718484340575887986015771582100625908965099961439409216479367589933511409325849570370043781341298862644257185256694664661209360147357301630326491577405973715236831399854770589194244363818944570436119284910351676307035434796120008469857309719763004147693275818069464498350727594145708714188984443620833987476329685493672511459438772113198902691695175389361985519472208148893360363659619601085019686944012792914246709048460580624650804585569332666313464073738482678668150796741137226965941423350229395513725427813710148795888084398305003525675896330440864725451772501026627626568730393076491466121088282187017000026751983983389085434148735324653590053988935764291590980428605455968090173843503291185019713101681479699695530191100602959812425540394727745519748734521462458821338290104811699695847783371679477027560505961351182123398918336252854846256539978237426483925808290990213601409068161759441483332921161349834425127986698041684504038083512399558944678708686374480882678498318212788836756936205428251321092763446810624681579268991961343313425322135794304804995291517354278758679405236531807348690983927659256020892449675735877075146739759726698040099221629032721964938456645253839368134940887058007106635719447190263699787135654058852427444874631565518251514923226018365663501570531737202405942404902515057338061746508576158998092251373383728177181082780367424082265254060091042185996186125289451757390122415769342140928820041679732312504811687108695963719056202769368991810161378844929474697538925652905378590983283555026915071705948985950775058923932915993834023287244682768648037668191874697168168198222676327030246828179057697741104765503380756166977411969759441859199305354773122002055517773687507084569598606508323582436149088060623950012173979349198767317273639458001060426479806074534628122422763173868152329999133413993930136234325542880180766286689907909246749067446538253183169360510641927536227531920661248411625897173981254236256273636636449694199481898063317050683079438605700816207824357868179351602808320649301192419935133343000217606446544464791674492419244118456617004441519739490080507863532790606155967536643137603693235849431839438898463990643305221479144917268716960598321750111418894821521910042402205248349989003791733559233305625300555801132010211634809265825977839453822433127306136107797477469008981912952351273460219395879937918813466412129961929917643921551738713510466273347442521871922126179867414138595538860323142636181455927788532222421066604909487108167655808609351378099053744990379583981955956570447767760015673048352382799747438484874002574234626127818039883472626535133316896728611262059920747760579073749182959261107782714201518831100416580317759161686469135790827088123217195598430593258517707702198179343069483876500577108370046006721586997547183170713379651679256708684165605399022375218217734026381150487157228312542825339689351662708588220605713984517021361871491587904876586031908403528158081017508084667892060688654069674430214917329903216516009682398225528611343714981628345752017839194968018144574590410399137635536024440974415480754682268481661697999194749609470795893107447521844520374760133884622795404524321548578144330761737087141489107065284190232237087075592011406069651138052899528737123126308002752168863543698367194690948982759753163328269379094375070120119492857310385470445557668094571860071786200303705256398313573166561205935231449409825060534091573861570041226613409908637720488207843516099146501491127810745700007038598113612922907292096947912542728704023840657888451463224433724250016040623074807311055417303795017055088623573652628829021865962737447774232305350209556917323651404704123064345395280361024778048236279703399259779982935436723473038324475010417761784195573417052004350942156753795791414983766980609492220035250506786991543008295999677416185589849712918187787011873114678721174189876406514399412219728915272961401155281926848905367047459320054009595987423792572057954289623109354049881502315166036783371147079975953087038560033030385135644753425401405971235267680858052045852907823806104459099994570977761915053473364653565824798258120525148487611538637167996996069798803951512532927533285116981550110296127822481335628790112176055186919223699228910166150946416119461997601949649496762358384672157280010495861642025630443369922903356744600085401318385869303502754796623763687797320795557272800877900993402540549518212188430528143609674185111301071252069363702581031670557536905566730189122704963381022269248896352029613255375498853749858917009598480901355580059288320747354157581868236205158405374035013721090167654152867608418547043189779418243135871596526869719131862773090299894071315347773787665424859959181042749529314096794641004181704767293633639537928770366021860165601284639303296041461489567665026549587791868992361107900282254731598271996584677565015297170307941293232216864458836948327419161411252737157861341562585283917904126923324399948501236010110626954318021230436325455009676619610638296144505079592327569607456612542737561452669105755412803190914878224233028892671670031555785784170565416708440383255275632778298998256747741300916125429754239838443370200230353638911435718217440646923448813630366566295152928377091806820823800163615293672176866104016341057944371942087833063686353102856122262062928910600296512300066525348936327987840135054581217166081636885370330399567704304246863512197314955817524620183335330284325185937801858951141222149903297174367384788553822116096137528861805020458488037269279279162818890469521936583229698972760566823331251744930168568277297091204500661686876117390521519541953469171612630319209393030658790730016485596601722043716525986978170936454277037044919586193365858972789487053094118562000700702120189413442009290685530694822815908656193899132020033147111993046288247438666831017039201846437482819627386272195665791858002050683401478142040992838866933406922988338346299823745305922049272083604657872572038953518641438205419901985572972759705823834383846731058104904502265685848488567360799652453890169160070829116624712985859139932053793128033449876462850201183970919172796316844654413519924281732605243597039924619657595356309832202493601101685186321411842504027422749278091277950217868591442016270832800906989779769122663572720129149801272635196973148341325019097057025939927900909495936282719494855891606307631520091848536891954138728030747405526638200633743718163635771020155515792766236113216473173843847965565491738079941365906057963452242907376207431053985680630781021837573259049250910774338940274993664660923371773818219952238777436202397621879802658298337030986747811339413181573557718371667393342188844188091944590189234208143317455119823818543846486606699491844734452384603026368441392863417672777227730449317901787091847722789409607130151327963862905245259174661710046023312639389139017729475640312587164052002103324971261623631611468975471786662091268499591285059507878713652602265456312560839835267211983985905174859554977623786568903451312744679481342442881289744180297842718105008910727209033191876600449182701990915422137185453369390954719646312583613992327518997802519964187625985118054035430241263077815221983163328168762938245950584178127599100127518964244225980214201097432922018722967868320084890302710181918399478940489076388116375806994052479459824067002687210472471212753918970315977051874715480530211436507547478631747871403850350414948872776713695658073367336508307968027549056725535627822454069984018135046080443741616196596643726925723331148778815037043669750707009269942241437492846163874072427250202148201251653699782731900675323262545865464985495406918551675659547803350292211662377341385285963389980820127369854872455576617909515286213151116535637273753598099912193337350481960061885659200546833294866865217328907397469271689526033346319758153084489035756972802890177402352115009311948698466718620664364671915606754256420751681985288636250808729699703625341175542465298518685788378651324020888475057559163865213965864567118807032515616702865351135785222711763249682776297527289769416803052857758720344488703607305323482808885721882185217872666021978930861178811267358537082685594786395528663552541384936570530945485969881605677544003311956664655425382124728862458839442159208526442201866540184614861350708879266118378162318834560941985976944991973599066841335807366860926932122244846859443798447802055822296287323703643241905474853369626994018469665408325374965073705938843223390935545480685474737517659865646723462008192541107514606982630808641068569557145124939483084444986216043343062478215313741709810823633417825297954462523238955172923489093249267587451137565309777883327527395121302505576487528097860114399232842459284031632045750881908623260072468034028723999209670663703667709793730493501444211728058884113079764277707124130308073207955706101775926891795086958920049645681338573212265366977758423816512020461453230695202172834699899361911224879973630637538866480072508911571997368231760257397808209175870302391926144593296414741891325014339972184982182619520725457119684665065732009931416777385167214539121742206272244135361280602704679144376965525381546901179012421003309673114864887471710973735321505338504674185282616256443739195600518073665626743439433267320522438152073645173538502155329522987308160805595629607943958755780985383378359401852639269285910434722251086314543801407864455410872434006599551415172796565509210678571987766553620816672473510816319884150170843232340216783123344509529701951018901134630787322265030200547110726113577741299235522016580462108965753862680004632609584104454061053431707619505927177863309670585130086214289162430488696595987362682481776818517453845173952766927777086271474977604473808755315185110679427995741321335459773503960429511414833424426752229387754974622412887398318508752689862034534719095674178135387412037404074023965939415759726626096939814124891498244326769311913112452313792718148051406011822380173025406969745757502017982400376789704595909966661926126969321048557947261510333481275449546115373772696126333664858493813355179638069439809719624621741325605596460950635191718693950884464341218964529841537108712050150439981895877452635739625365980060551156470089586569614599884973929764160056211717685652315354139660268781862497180758488678260300036258164497786292019694950554685883486629388693744376484449318440220245992804583396784587511308817318006117646572315060764773227701841191289169369663481654967194901558496667237468371985220100843481550494120415052037757154854992013412281130046100741514720661460772574661250178217393625909583082391050549190313922821972151442503359143003694179664973815228055388890573077718481514051835053988547833726742527495214280607640885836724628129723328021522224141226728387079315962020927003905733454124419889721608042050919406319116314458991670214957900787434016078102062734673312003580740334223325210338971728914333464865730841222244599121298977647198746035424805642362580548564507805424093978325318653453689122476244389723029399775045370483144561864567621599917420110874249681973123922977072408128204684120728444227659261271874293042074563652520932065364359342944229951490835142754263335599197906270365700767518165887799657730926211797385797580939098397702632519945033241935501296933779469468077577127247022924713540755546156724122374932292733405840622561402687261021643803357634665163832492006796861278809864951099885458445148510297326305622059785090708829273937237158298776665003859546766414947618148261710352421892582852552712324549059973617503394988000225406022562960277927625590234718853651358945821253172707916454976645977295236936799063439421598367345132925854561117140336626228004833503755500758576223815516704263885739604800336160847342661129505714955748525032394341220990614430712328635744205700384246820456984143182857736054973739903745854707934128086158007996054327150177105990767368729808216432966953208072434394656575104926604365639510640273865607950550205223971774741104003830919164528764467816633375197929600155874484285039541923805913669733077957977422590061447152175831924294418093887448457615368953339852571595117288350556822941929536865552092159183020866427793591226287433511331236509213286430569458463141740268699079015396896869736470013605601598286704008124786109885667798845292912630383665363827405051444351577989096264172641064185098281879977713703391362003326561509617965622847827808321016252219159311371203909641862202355630885939589411297189005391831756844276165794444349037254617488499915725982899571947116479050331700223703080893901259583075954260946914628568693408527427363136913275432709906268165200534812036316228294220437144108561171390261188100152998508503423588480933480839798055798773671702776342037456916334592142302168669261048401906883581092260300518581009910138978989089420868019768970764361170040665314539385550071217374089642238077482609966971184859378699706779624809571233536778602030469394026226140649275010015697219029470303031886059772573567463395872021868834391402752234086000015710936671444153004367483072650554908062493773884227465577816388226068751625996597812562991949270561977130050393933987544109923426466761221223556421642832527071467233783229507191126431656307131892441243017790500154301275618412259894720536875146460380842950076377443568242792603727611318078557289670163480532094669976158481716731690699668865176046379318280096838200021097101232568654744080561865740976542531618014665071697179347715690086176940208692114849012187068489426713648604951761194290363040404477027158916749964775950554225251783436323236659066795438911633447985959183416234630284624551511660370389973061989923883929436804587322233840576031878567466367307567782143691560381467802767870046377288687005321238697910723607890224913649622961599885262042509502304022374739236648561396963393850640760917909175947992130977157938529646435681435949321624390340434705348710498727915148851868125696276576493696785544737820100304306972530851642030965689965974786083334603604166492003229514487395779266124283658454851867493840856276274688863414802297918943500900021143825271880495119391645586493457032440663664016047485631523233863068583340094278973751014735782615807694693123019835183036757248177006124480477619957267911346278058175907198231169688489910948589390348535180844351885743102063343406135090188059776195783820269937184843543623242490727961100578012035054547337175933459009574856544487962031466745656653936378933012880043005614208431182154983180421651056044046727485595302212194548028344073380029820561517509144622534329137482756879227428846875393192786032767647759976201521402576169639223747234151581104771313216960378748912739991282603285040064327232516462958495867344643667163398201483752547712973224755630727660115164648285196213007547645105595836452621576681480774348558789628950276768946894757934383788450425721474794275209063644649931988280241332210950575203329907519890249515957578861755669292475392255792816626531607850196698816647276649625723292749972491382204969092532339863043215132229313888812219552637740378345261083784521656409154458923093375862583670107024317269826315671867481527220929051159903490842611921238607736885026305418991789826031980211966654084074020047376215479572681050294067030872382250575560209723663493937067718310576772825759450292677979970200299355246213882573107212977862773661825129235758544342075072274108035069561810738664354068240273884841651153328178282819629867415985588593013213277635726687785455201126848677934943652535369461486553557349842986037770362910673344832623824777673587397148278234646564359660152681407880116298053838075381407805063502056582712161427412980938979850280440875853799814532197749326494433270163860403757468224969791037900314487320197800578775195654008058928455389598103854322056115431776279468617886773396127837915631867907015241595485450147264117904260053010591883355101533604566732840955055460246278885232569621977827617874033062852596536947189727205015338005853182856042980782805022977134152460661094906809593639971703042588790379338251458502496930817918039431574219402944473379981571847119584393329316289695683027773284289647675778245601445470248313953731433122539970781630163683006405326612007288440785714509848463036380654442903882664199080885532417634369820026838341816328033898153267249377930406220360042958001856750254743958989160167482233523838451262773477066715548526867876287859432762088523547481210578132849546442914608800666797093104233070325071298807312206038368767500573110250028920820645939859300930628491291428114825226719899526185056798319478384326674433230281233619109466400341168083176137736717917089056983732094782762271143902285782755042253463634592710459390420253714609848094717954161358536884424710920073047515123621403976015185638888230242079484313643644864572274842199395211121673930330008991850069800962572660315740056484454907705984261694559334791576363828748536095251382903272014741754594663143566964491387653646077305300985666021980921166920515291278792322215257197055238937819437986897667365596085526912983665366453245243794636740537736685579706710347230615689438269363160670057229463180637424157431549807046000159233255410381960819209117179684001944411195599227824712832487530914467832488420748832452025631302356129494142357101167139952272932571038090730628512790568573447797851113164079578275860090410150958196370954955557571453506746763249018926159326850858005233718554459613779274777399264636436220053979402841707612637046548950558131895159637660067138997505878286685925633935642495122950739065331824439073353707847126927477606655554428043813151860179718864907226472038962163960136166163487151924379014229016252207898784220293269866784893853084199855186509376126038313794718385544739088410281632521097650528696886049339228675717115756239137354107811776900702683847009680664068206217422831510242277448482553852423683981293518702826485063336036087502034213205902088997213058575185670371442349191258064109256325140981803684939070552838494354403817825011451308679819811879640053225048467017525550340403106286726092672283776555359471591769701248838706195982573403898147474422547569518114515033860671904897842625482528410811559540757795454011671392496528924170691005783907188797740104545264464251055716979410304886374512637198921282555678115051305145066805648906050600070472498590365003922461254144906989182468452212955061777072158732394740980736997391824980131319253626556522735656594354462903894982360966494894028722177460397364678452162452698763112122398957351371613904596179066145280416835902387676261395171928958084333141198709959882370674766849444332371339018686863830161649921734426346078173240930381824726181121549855847976788376704563151065990016067345979303919569250481401438198750696957456556238961121028751731154385931906234670794174871718578567396434336185945826129024383623127280817503714511328037478400220662692137914694578665604858813260704841967603437749941614699435911468635087626133300352554161149118711907866806641784646760018843689736603524189441756037110915285833341143260002518469305476230588395210481219868793973071395765519140345985265535899116088756230102885994315335677884509859419453665404794696839638477995744190319345185999754785602253551208446581226363382250731305194418492754847495237162400393113983395806875462130138742939993833803574368584631681369533236324486084548004441210721472173648023081054095568691527145564685034823782272583996128446107037949161323581026831076983806394002589093451853731667165450705026506715302920470071420955923283368551440475648030282763553023681827202240290888115684972504871492881684027654927903688640394075244063720289530529166701622483856657187372301131948219649879579384691567633024322141430372492699825619034351772507635051316239003075267634514452054499304375029144867393419422765448112611726009989825979079296616108330717772295848930196125502677710347777440299030681788998024286220355006328739665970210715705591537234686812217462852056722632689674411840479131634331925583585302070208557860914705234930784058689745917491164441562132919636702952970680788768794209021928232172379884257490527589410391943176257079327442781084975960455837227379011132939323843346184575283767123902453066564752338443936147551609471186372010579273645922423672159138547241170014087679424191393890020555481580673278220897137457930018118587624614274621526560183335525120272259784309467949645753463172970717119393430379775629250875726672037593360609402065802832319885132434717435222607493438114598832391765024026509800866167865400563065297729645515372392717104301107187633653564828601984907710500764974097135553416063686047291134410954117177565514530185389446648660233256338679867784808234433746994845853735882561256916186085118993025369813330198487811143236312563943930315114723066945755665073503006610737851751629250184604946791730236824088772757128263717275013775247316626803634429781946888169389209648843158716659602213485237568022071863291316178531952098482469229217503269533185704761943846080895246465659204191703766390758362841252218456682271947473316804530925916802739757608413372892261778174936094782590888014323388270874897839257465269625219989143603119120525139729405771000130584467192541368704193745594968634634182436075680229849283155298550794253267948444575626071916019822360914905572187204818903824248466696089200630993856031055710627017156489655595160261300226578580274020978089994413055671382241710356494054967830488821134351749665141355650572599083043343631544794789036397818613380850193182715472803958631006861085909223684415981704621579832097702702822244288112385139622472246205977623342611934777327308402240965523158763770201668986627280191613481543118724478075561539124441624244897134185840181395789744476439307941519767808114165389720171185627081145522261345961863705684707721478431815408754984386252105525378713027403794369572814212357232245533065824722377356037953476128104145940400257774756177604687590540033978235146081403352870937501914494819374517505050825549614624256720453232403051293913022233399461551660286991564784740007717397010914485070417369732872975403008653097038170151314739215660744474615360056736166269234975096024126929608403318831505312803632600452829527031892393196289722250734307743295495429292364354130877021736563265163741658078760759894996983431086438149486536983909765796803772840180631483072702829151457633470048769277006895812524700305453651448098699018931952074502389779272069577804369772971954923270958710235738850501148214899811109751532444685601683144533233306129921928283839145172662104446162712943099853225763539059024665806873216516396548186061606774258542585359324911665975638655477188809309013244834108652487761508301344658431560666004841707138140151185470442112395532926826849279469850334593643753599489426614321205651671548556033322439630390936196315190913696834845933935100767761246542357144550890084269957544207292998783746541132545780337603264637267401918302532461471674617200820908486507218492850669177320214901363873976995742058263582060620301654518782081298582661159368011924521571474714302930572022605117413069625175575907021488979675363610066940134798298042842424410410547195000992764530103009819625900276736141056789764199530791386764624545256689810544959572985074032852700229077515240931454858004257304189085374313362371517949737990101348995021712701778830865270304235139532446496600749086560410504615829679368220149990291009604543501247480766872848853840977293884616393095984827156814453378922244641286341186178674471885201493401244918707753116746835222884910718889402108319348778789156547201817177072211957930507638625013101328685468037861040294605131267703853266879617856972169090323056525663122311467996781166092005467944082926308788719382810833187494624835870015632435298126212951618421157191043105684631202486249059961181997177743679174080033919726324369875343239803417442895644658046258658020261023500544706071175228349565757701032305676257444950904663221307587885128911809276953531516634973953705814391969435984534878786152451023123331211917462972100380820157918576574765823857631964779339214597695439302504700998121811325176844933628960291626371049372255751827422128728820543543186776767818059381012542425831447224049519279716828963608748203975956198591546959867988432846914135764637444933956424190934602893845848186399223622338927325695773964589759027607415785131116972902879156532760306434161921874374251072836506206930683554374058743389765447267233941236985771565672569141237749611566633065574881437424973751347459995828284817889361337036994056524464932117733294514338026803837475639528250047988474477870766523646237701401545559534928904757846362686711863417796939340142520321922619379261882422030321894090293937195124402846505383657811851810208705159775348048203743233879161269313578148926767819151287713720925463234291316402743671442941279105194275708888532601451453397929984301481948076006499069571980330219415346162256846135021751069631958866443956312803502560853131992394034918687047797212556109295706518297570357908899990366704090151989695900114019414104223652158556812444736197205259460327606101935395907643867949173264791459012126216467341884934986562782667427778494867573715076310582866718897512474627026754542309348675639081595619282102813257429826096453659404602566986686676601202530784750816617682823684528915172943565082736098394247477541163080888959981138394850932684024702632717118612790624886004651962065022768053470805071101797763838546855903103169384765439308331761692448160173718887763772208065790707449085560543708271889583799407535948084637328514780738772488473249182283189914959595509033452544312795142547323728330464472270584279307261416132725881425838443614374315757278138990491543228562914929054135377994610277536535126290125603009781679994073494159604277496827927556506748451835314355063481500794273926796487908179532872147703253336643948295854267351834426828834796438241142958875456532970635617442809198024723719965562816438708378285868700480164893122499576863135821946827205282702749504148099291358339257712184287738038504716938335306591672548071134584701982676506156203191490000286463566396193856543256966187430058405101188716985793042518354648405222441341156496402891472442550043509309696602593115328328093672726469529922277931036949370211762196184600367624567585821937531033165726290766124218045682069330664369919592405830330176033993041715758288039688362858851995271241896713968325710423905959482914812929302653189721449018102564645520983138262789256793465997269371124160052950106511086351687552345201557447053962677013458615545736898452371507253616361358678222670790592256824974464124208933532569787645663482858386792784114494493203529865619985047889709981872781627430576129153328235694908131065453672301065718200084574448730011246855900009635750499725760713298037242563029944955215424662408205886300183165392444583805206091022521127774008973929718855338599030277942515686007675589747365173023790616144694582485160605374451147062186637993971710791054113050699087170110479970412428694581861081525195478592903735145579562443116130032165337597034797958697950187277563208278837263111070909291274467311424822715612331851569603133503018120286748701947078724670696511684693929977447852352974729939499197084648946688548442401265429474541637579145122149050881617706186452747801258376989019038195338103868372304502786757110739696496265882547551874632276192622058387573775090452674421379660566404644707541206448319465990060978846888973338066219061578767908533146875861791043884765972160123562509170037914566184037400721029499049978012018364036933057359139448105855469695984683569735175168491441657642260107169480741276596850682761363671509184907168993827361778337189751627807890823341496136133359757073665024474804206207589616944710405782546313224357460555012650998842314562265205939685687841750873058647206514327538344762062516991412721627909662062356760776475458696405371994106952507714235549787229938701082681339552059700906267665793738262797511661092379397184567165700205695570440980700623575084495637522541778700138631716036353846154989026098485201183043664534593029980594040525199013194429688936163564792399993659177587937811888240800921522849372464902937367597364582387229653559385487126562024779241660577296568207392949789897268966596369543055387265892612624264799756457128858223531360090802780523214890816703572741264821301192054698901652504192908798436489339196657052553636734717331123902427308449832470032084829027224309026347927463888095897723309502445118377574401878296027783908275958193754008040693657744247936384321217819798758291247896368843173668310175782160252085636638441225155330011777177941091723357988847286987661894295635016513693684289451696813627214024920359336937633434935276499789446179518401454997292105363692719117229662327519385846790347916845866743593896793063250030773190053503801511556516784707259185827076107861296930220820250622947433079451997402188740067161304413589553689787958288491926375171896540167177041664739209332778002767320877373439983815999205784860615510344903443377400700552702758992246814516110057348008975753231819150164922000694897884448621547881986185626453092590962206301662749687666568535803299407901444333988241641983921985264547454099913502796992550854118281199602100060784817888269327577553268091921308615649906173259902113041755680612513057074561206454281441352001006725678094992868880686209061076329235006720339739735136262044967219620882050499699615792522447421946869401781139067305964160546670487225961877793883270908784127974083349803131114881562076597006425271498465407906263007543300595130536543148354199992585230052821892760823629239306150272768731181764301009602470881543302821576820558657651641670562067520713546753509103869453320028040938616753043661187724467747821409464812186020689801833153502924483388552035481793788337885937491173326694270104830942416001981361363579418476784815463621215381366228879983531241932508672395595752968001726775914174838513716701627326007487568111443759664745123156507582934755277167552587664748356070894858500527178452900638900566693865003429558479343294545582433788847409447122311628470646806829553640174933349553126255414340526728301206566285997875486697758555087632116026141187769910277972906610290002840426117628111964278404560321749175167196892398877103200443148815919734188028251471882766236613084965403877205443871279433097035720194176674067466298470790140554154570568933361031793726570121703859575280926394372180033677547957630212570734891380721660906620515066790795744761448662170443267489031811431033073764551597083275112875829753900471505713842257207307081453457593130482612484230532064072952835628717378488078666151540572352639383176149134068148284336717155738657627792593371067051644311239225197080748189412053024654577950556175634781798267784809332597652510878115303915149839607768408089074748428378736136550690010436229916422712435119838137410991681186196964805223854076232534314618906268296987087096860673543010123188364748532900313653135869982464907249099297060587392655396686500369415826757327137311586604763333169061722012766190752095779540044504245671983655174726130729223226156021838184697700512535877959855059119903263375569656316061393532702464957129863090656425984881156111102006144579974807223937312853329360323180376401697047619586075587849831555971825551747053700743185944887244661367498400470964516724185930593906797726606643457316419307619703620467015802377011596260806069594742110155409943542370695949556098501690093054487411890290653983345332961985743834739882733783628128628644259852164751915854800108672613998675536728817128109184935701662855505256910341228997209104259380063770874278082009925225163492989704199325973795094620062455906077675313684633598575172074482274440511717130369363992466077040312197045048319746921533052205761051782293435072416889509794150752790149338605608676514283488758345515349830120553682052396787259461783740955784896467437964970019086374620542363671305767152511807708179977375377244434465684544122844272108766156641899694896571827329418010970274931463521592789780750849101402055904611947531068222973065095396865682708776470391941925398667414955265819463349457427123902199513895957013143157764925472754152112899804762622942195600402254018649831153346978736264794240282666917324430003569450178568555598564833922706397341532557590846710540132409079818157298513763315528260997856802234001992825753844340293602514569298143646774776932459345073320380547662191778423103950799901618765912348813470568430202783622999443604832435673035197574020576335461684367243513400361373723850340375335614723927380789580778220618673691697949738666816107657036297288513667979027290260745298096311977860321342683979089829482033017459994802286885052685152712621798954639191244607843380672575900781637816793224669280343652706945464823522462112958728287500618497678622458009242415980243722592621365619351364402948175753751203654476570000224747509150135757127633786669448861437201766245686987843905722617091385976743238817312679120683107780355050365095942067545306405298527948365862180824555990740195920591370438143191642453363888883883553195465444327344153820874896605492032939020371185091731809313006037101926377826116899803958325322392783754787207848641142766106622363147736403842679952149910371191441170591839312607915244897801044642979688638538597163588382502186957528478648585496248687528895486614299242948902997143598776052300801096726776190952970116085404943504364318555456329535686606904600495697564210790818929572190447939343900345006211449702355905649096198471827185038459741391808432885107631317057582225848565112989749821311656822850923088338884649853044885454500246716713689459396301180510454876446317751774956347313886549978268512141541293717574503725127521486750620893838741740486767892139208169144893833544844656512723489160572017704110881961516538927928613691810440167495029108440460463726875886014626887096113167550678556089444506540840907223364949971763207091669278474904699688094203538745832824746643653928509735977518189951587232786849473502123824389588114127441330705665094587907852975534851491606170402577483405472290956973686291755367890042826268884468570846531678268934796101319309819846255341870156415862012058886195837820554034434354650474370760521891388085797715664708183129571113242799978023451970190834836369144510242455822305349250861004522612224532950592135122637671884922571908615314904122923335828930166362067915674113710379528801228649895727416160578738168163745974841100049637431428191287329589625258591158554693674298621910243097074625396192331267425263028275717771506105927068964014029710359720298540928746396096930828437191574265697554660027982847606244247504501612985386219318323169610212732737458399007110634179604523460281711457738626942737303576411154371076310213185483378791999495845750124473997988519803314438426460140453523645410105560875287730717769779951904610489859205684881144245721214695869508710565875044859712463169569492962358427267015648874429618742290560826549917525356591021637121407983088003740511661263373635020281178398052874319339110843881683130724908064656789774526423419417715112203803215956725183466781319010544843754967678865522658425073566552390921785424482988467528246961817656281824636790095568437867671216352301306807391246901271625227181545645731396032113825721399706713257007167951980480533961438867243342280875134841360278121410298690265771089776971263258308706372463831139966795236026797763240601323952342625724740881558546322845874198898643518749826409606846383753970102019582145140869035785023668154550757171980288551312643517785375714280537970524375452324623943388809556336427140592605769201615681381307021087167838462519096289213387159403303527984729476506860938364346904430133694125039449863563363751070407874378466087488091031082182186294793492779579192279528268405773477523023222309373781751528226504732329641991523405089023450000349950748718663094346851526417444533211392058997092602286564556722932487851456297983107710942830318674778825495437363835005443423002155889358410246938886870471931571962221766044612558950319637994622044511258978421343343212987853829695407881254971367496317783067122217078197028061531337772496013893167699384629130620386854709726427052474256636109020177592985328654197124438284084517668321690188136803076723749539934419748095137325946485344021168415827385960275469771114535944561657446478309443271033358726036735070703981537224032663358702416989372218836159184989820642779353426821505788469616276860308117915702468794147870621829695105029044864353461880499734498951488845300432998468452040443387873229105485973816870521252538348450371657476401578151210978482051974638243226042030825538125081199115778366476788648416512235752295952983859762433414301851494070074347479741061259087034092431728521941148594659831417962750806323269276292938991013421857560265382537070360247622507113309907966934865175281524687907279431626250431797635983053795819483010801669783606377255337330453644615230042154320036727581631313882032197127873441843345489975044407098752595400480385296050423041686535064677395327619686762322566959299723147799427515531267967067688307258092707976465824201673372977215403581250144010950162810431721336278367261244014480821519620970945572197513508838952324037950454942089998174685048081673406530776608274406535178628113743350376103300906390343479709618460465424024157619642642389706828213290358247612385903933677390188562162052100600792022013986731502191056390995941289842609092911101500410238681278455577623912477118922784356204234904001462210237251179809491606526991750210265955532477273847163791114609976748060967778453648988841663185351512118720969783735602591130630131796644662426221608658687467309532418607817334630565881246762919224546320860495274623123718962993830535801173130940778996364378841597747135038100793566055269932412877023759089182871737251857605777760406114590944137102686377727638723346589798899936372660439599426524251185682367587548913462837249681842828812294648988751317769293870635193072714612728562138485613700410634861334896504659953303075364327155289544436791397970875858960329483747509498722006230702754594621164304973718667173297598003266948978223118156822546074326882261000880780588525441981576861951716955506866270954404481079950764852902937148763162011037584486189070337030042915703643063870220431993376611951036302669972853376847215120856173867530995578216725260534078500868600457941988322982036233454763086394214408653770131557814663908658198771613849777769276156036199888708260429387971404692200467609283323663792764017022895731509192054262652035120018179823307129235720825387975360555954048701446426208423050612468995382759676408301649604830591894429544510337385098578063186196325720057338422571733065341429574096962266347276960424828188752849521203817167629581248882107100803452255879916600156070413823978282748893640741388358517973636261427826420254971590663696327001345058835995760889803345142616767360883029024253076148122265547412758540823611801075068553929253882553782402634539364367235746615573059520898332530833426484215529801769619670926309883733713263014591016542749598659097445674112358442199500037390203997827468675363705389899800709811860617340332870432995441526741661469190255219683454170967773609312414426719991907712419428967007228534510962927418286030777948641859409372900564292137059566763421988127825594583767454453549676671958994413524115449342919204166349628064392884924243382688989366290542549438486532653766254286126700744832236584522239615164624314835217297835334749992427139710802489265184544684018096275072367906818123445625978493635281988024387075962144563844995280945588367028066952098514338687339572067398420966678659070517540818195036075577837802510372065330398299113352067985431346326422442911483255107163573145862391272029770535228598627035325030633827571698931178908571959722324882280897934447088557060349741417223617170517534868405836600672341936061097581906595130192580528838064437831492487113119303131632265445316128764775170914642261188219362781375411698842465284095940003591930479226775747376995030800250240127184086857570391996237941421246762521244098370476380357562510652012136241428012576307582228106010744046038728287501371101296454026506933002456292740696057830757485098949869511312393257223776830463311491247673813772712871142151725736812798073086247895583533585894307468331571883913563270151466401836146575232205669513384650797647336678718060503594484363486827810022071850575933132527060348137169147822357386384373018276812366102962592819403113266915106359227148302570486024258003094358740003779151264629783851359959334898668279474413751889810228341857192274675089265608019566191452066278640597037141751815049618460262644689512921612571784272928687775792764517516989350943772762941523491272063462897185291097413677127765892276678546504077948091852612497883891033462210373430306341063985974373424464354187404438755548117399799350203427702760806289177470904672289069710884303710906036378982963993639265241872962897399617162628312654253526957887382767713812248225577343776625865141344631643800377768504073948259934013956140806292478313559253885979510903380333587467614094306196905817063007229276712587550082651718157178399957604063284253072530145760412612718121454673915055879595692259357891951698765694181035971287260078047199278450239336487466981516314807197302272090989093101880135432715892009177424055629759914881178800549374777858756689352228266683437465258843462294498187872345486522514249825359890344704718529228736153946043335794267451338567219919220392435396053864880812279286581286187447599040051037840374795151138392493409666728487348288937361710758500031092770297371679506988513697887257321602757448194947168118310166299168086293074094260437409360056725267942487445105908096039687809537742416930585445196348242013366722791896100550748808598106596502204280729877314076408964386332779284291937490695768452343485445462745480924674093634822070758776483862483388647780687308126364473096840028484877231977702672011155329872580623421845076026351785557707168840493403651760871824351806002352194234448231509730726564827904395389087434069905583799426564327002616694794035342886808580107736043142809939809899347687184940730008260990682546332844339223441945277031698869141347081218728215278575303020413458337008113835371291861833545932270982480518834640932760838158850348768098904079361812552483442051855913258928312650358646513865516943622106636317802715467541916117062211829211124963695209467254804752995988034100735741797283049304520436114068267433300688882335123352758696042758878079902761301277416029379084173277004797336637217509627611456161976008492216050402201551891421278601858140051449745406709527163410832471417650684385711523778550377971043519795106151669463408603822413247412972444679703558855114905770060989191582468820119856632653482081422217996670399555080104068844187132181690959216754653773611721396977494468256360036627761939771836620479549255846848273966283391006214780480728636426515329177690237711677603322421946670183914686109100199293923630498585700972027801549534652715114259295640573764029774432568492092469386866747866525662548261078672088912625200795821859300303937234067493533978706173928347891200217257824482307207884767576098586308467820068113851801895714070149937417444110964149963457603736217448171025734823637916132758956395154352798858609997350760656582512832589409140897674673829774595457703973092072758863816356655723050282413283787438158849622761588626626936727749502514735984226039770050022498632690521132201519303798751324228398152266016480440734216666444332655682485889869193631764510893253249217858911282146568458847504594651860396220893699426824642517679440698281591313706847162066859146022961040772664615307530132958555744070041175220150997364124849913973106193231291428628872231292782634914916973879907664855783299491801129835941543253724054257933863566736256648531968738845083701324289135092819100334845129348710861812800574085170712053199686660112812597821564620522034961086635070875158643755628108027398676554933388359421650448189041377287271847894224756236072039167671178440312794876396071861379370667012071097400465831160482374653002192116849958466912005190248545365031388541032654895545211436958384547941934585130077927409422991870602243099048875709566271294728114328542509447067567044863889732766240794679534034183586361940368888008386807121730025265694397778908085716265523815008107158833117842348494992093559573221849834227573021052009110160510272690755111378865257686773749482422059200563515448945138948394193383500776313114308095554392289462984428657428636071528447284991905184781964459877256043191125124215492501841310989790794960333911135197472186618183166000938925384054755924819782732098720354669751267487615189437968511967712445710030913391906359182326334481711485858966994871378610330411462208125775765715697729222918792443928483750059087553719438449418033192170807046291220261838148386702876958337397770896041889498665922933837931336069648967143613293946926968423566523542776021041465218201033645215027240615723373151366003300961546344213905246346996200459280041861199410382593554328268853302895331410687056290781180860756525881451264272220264945702149706127791322279133100942740779957015817417517439695187692607685997723312280482826582927257111902870816033588816981954267591323672762136977243630117205221360853116099958371387274698956354695399899167572607094693652177747173645822257865464635954266909781825507018215282218571037964035989821070764028484821413792055257654270701569312144030131571775910915179518836264501031813725210674540999835917658472910067159096034485365722359079579357609572494208635020729074263310079554970793525317112579145161268489755762483056995911163621516032293088985679158678746093804825735409895690155760157616272684340998988222323095978507011737728930715552753313571164667510125919723420071007581348499084647688887183246476570905748548586677843622636583941244669128032642753749430857098854850431766208374860185061561823143483653852881178169230174249253013700813866650788014452785710275246116019369654908455584283517360778691802901494453471114566089933041390774591488003208433563268714791906007438416856967677699373510161052154691986968250119733065645378843032458987741005784597860130558384304020348076412970911444097044481601756652497296528047696171610465790382030956944558358749713286887997176102711577784499200996792274996378738579805620351017966965064585787857940009735597725690458985837064435859142605601327419601706693767995565402317527504936937381149757338549144605665010041712924341491420305350910772946992370504643606970733587760442642583625480368714302179637387101626318290514393349329642494771164713325288852697007632071679646214196466522807053824382852098406946366770959536204978889106833195006831298920249893610943945045941894127512037978518155408293825755117793680342029894052699119094039402798663529610843839484699017274737561641414245123785154001765185690726877079821262151361211413499327883168731398202450434563435458327369206865717804210464758123735489793527057149366387591942060314186857392241885430869840910075713606444032323805334142815705971030922189105658683985184069339230116555714559409479377764376990024851454047888942572441516204645382537745074722889922815850780286851448416549096568070253089125347021021963777108953185962492380629039917843696246675877883029218063065912008969868203079190814187884511588944199561717867032634329854721011776629525366936702383532751987606845933267831350589319923507684812481776071426393097455513231197960835510837335424549265684061461891713092415216934444377500044617363529011799851812497390903941179386936817448914261182320752407219971422076311615065664873778559068823121977132702356393704238740709483338907930317057369666488486672226534679891415267263660621254750995822635795334567319845451158172299638935925974120695431563490104181653127926971237124201342418591659491942608808995943277860756594897358281896841127681074372585725661848643809769023847367327961661945080166544617536907931799543646896240812919876223929603564611718595066146579152317981400059685194423366481013916689678075918428392588671280662307348113086359788228147651826695547778110964080774071346516623372028402082704857336266747415941879763893307804481657873168685596292222481238315877497200967284951526322617795278767064118671685139283899083731572806379563263975524744488009063974445488103823466208271000655829233812574780770329841911357712404622753516662640547627335050653631929958214603136445638396610355383514345915228788853183741866074660330414934013270203123350137139356098017767712919873767776826713791536109318180663521214512231753918566785845887688367365710397684745438118885153519309758752223219575534459018912587233441846061259198658781384383014141143969316481714095311372556745161566142969910675210846905058829533829552808191909605807888117750637633857116452512098321677734421375398045408439653287593708474109956378174813955216314679182185886923047612314483248553737937295351367909549464498419668648933285973736212186786698335187678078858358240248860143504365015215673697895797359107875257253790237012668800359323054095775456650969085814408614719013276179680448860451594537868429028911765991845110135096945533015667008854922092978047732115985257231285462837025947842503270842181810653839789570786043249394291373828746666703150672543755993326904382605940205690129571012319098985858217159871492521064488596570790685057916996364117609896827485526682852807527655647668099290745355776024615783259620564388730002874283400685112088156248903617965842928268889209386312797363884713853947361958931518252325107463467565159886471357982393142995959862252613054683296753308181210712429987656124930112231579559033579546824797923439854941770013316160939402247636961829916503712340021738337030897180451139939216858989125801232226401462777360478724653496266970361297859416458159188718232507997204800045992911281696895563081100640367507965046015546015315349890097950064508543899603948268124395574307952367697258503486440783183458903980811025237942825647620409620371320445308633871700549775664082464276155089052913668696673909712419139203960631862324205215755607905306179419532102232494789324181137386816530983020547128578782144201223816954920832935511194248560274516667473739692242922844337543080263959484833047075747727395949724913075171654398916936998180379834199113701826955014903245583961495127953984851778839198549583370000380507211256558269022665792842543691426101406288767479485861089556033039967820964392571277036553417178288022911489973492224105945265381005270395986754862735754000255469039354364025101589989260416669167010501221621681380189357701875584788451917386356676957699843878969569475824993836815308596490414683158548423947849583306255536941607915351643993489515761419634018997371716564228323359807408592424128475982904947223332860517383180658399942793734461596958288024365430906671392387022061085300844098843000825786036695852280590448487575249495565097674068486995210273171812287213685933602999083077909364832533160099850770595994300079846485790822110804531766465183938271080786746392761285065576663453176170242936469546888022427554864052166992127032397830874062258900906508735423995323008490893210735877211691069604691681322324357843835134106085321283377112463409369453669244854578618164061457598483540784703009753118034966454839049697171615630013719050105419023288958208514106188443483533509973787846136041063777916483122570860763125514433694274978413537706567907965017782820340942423235982811493048353996920733903552724350599796730469485831681329733411443891378760538932324203109551771265840858148863731551146252757015338785633743158096418198946376440918269849706987818270445804401152721928768784836452892556479300490720663337768764440038646275274044687397265127146999207035150605964562914786738299811227902608859123306226463933485583913993686007896278224385034744209121662254798318132962015768793432105210415500099408679443632259540076386857052449883382448130672390661294011990427888952641502626229919653693182843878148869831008960647403477846763254215113440862760995733649416694808655168418823024417568063197592007403661817605489037375896112143170935422957713349422891572663713008609252406090463514288866600946053562649169705414638374537510902972834967925246808221521980379124948022133532111090633684747679388660494708196628293342991917761233844581551213791793953418756340919992154093880087339197863725108442850542436919320474479885169251127757580732541369188123869211224231487994966992464764884150321191304492616198035415122120714456853783570613286502043132089334935113324395659847553594161806657995252198920716263854355528448394179237710565610570434382855497134897076913711629799688162381159639549941597284502656165021304663293243802364066260060692058855283462987901647819120004888475995583202392987147120893569338955690723425383595186591416723141973200199800444777584866606217595217309389022171770936658217306130312673116435301957836432469092191107274078868627476501072298194238010130059848389143683995693387463470932046356142874465777050370269228219650328720069205234253901999832009770539414258018724035006330715661088878493302084206446593102212957468521337334477951206725725956983343789129751566649745160289425621009274800671652287686436490096896399340446734070057119146419787779818693833284352234267651743809889303379032408934910646173122838112936061228481052916823238034245639276379782482477984773822904230771457392007599741303218874780706545005407043304239524439560444491635431484353979330781757895053195670744549906972758386110431212042984205717430933742303559278910408896143020982831856067068256337421072984302989752859153775851787046077901772804887181517247579422889638101918784415939542189946993239455783384379439654780994546983810554439385662253346784560568473949979471368029023644147230088121198472847060699929422562410656581905599972519184606071056529717426795616001886109144433321490169218457607902249449863726092782143981802279256928072248161655181958279775913722680074528044800444056056456794386944110837887336527433705966590700118794181840960111709426136450903507196902018871353101113448788337058753485824624899976479119593946262210828103679215901653001793860585731710770913867578258979630989100439730428024813923021846855612842412262424970243230055802416506062877899487490430930735130877930899280992921662005033427932792388918951279702706737045345287210017306837795859672627465496851691140433028886988882397826906037376980046542599208145255104323408669807780213969408120730963379859207556792498616769970826990127759865792278792205224581666973947153255728677984503395591766829239196574326895490740386946711317999545080130778386284470992576937646232737721855138853791978251765786698486690667389389957672959268783331970241691653444162850358408405194132865647893235510434458614526500640228694092603042896147525459351033248685042201035442438396804493031598576480860849784897521221394832418288997983250444258559117356509258389752357906813156185231974833513829489354035719455256146643140975552645882518604131324543617631364058472147800255017851637175910560388816210989101981619252842110627928841271320348437226869330178094259018647960086190810797901314669297512156680657206711809315067870016954528616810382697421618245116114588634343684244367418310192007400212579268203624817744439492071869068818655664549238641238148414633898543586637975053499437346820885278458417108862774088245511606355808775369921014559563737680998084842214017205802220941333671117631303840826143188596954205636070562658926408799053637820722475673868616178905424601095489911450220255991963800820015074997602534860093936004330248700413657057525057780718730076408481480477043416491870654165380985856538498103515820799174375926113258773052574675695914867488008952300190428322330945818014830727011041988086997947489482692416017154138592602551862976461340133582935488574329644486610806101913012431359379859836048154888109001843150312976646843815439014530472197609653144513983705543502784706748244755307310296037487939853155724075115437253891431727642368171683250040968316071633205774903082404739935618776011198923127349200311085144023416379126407729872178246799712852583445639559496876095122623350451814109235003026589218731542257192782978628990367363946398141304221769484166815887239823729794169402717220556325697381588703349868780105996202374288836951229289022848058383927148391437292494515155394994761359725612162201997626457879653065753115989229191329540677968593017501601301744227407738334888732449700365947690931254932394281350945757239704416159434531856763092784556112921353626572994951445602194217337557918252264997120848918886337070894900154567519891711525851450996047185448185108037182068360726254156426753799388277708934148655522450352155376451809370261659479763341636113674175661582640314250150276925957777170627284953365537150723513836881056135237057400775295014344897808225844660087596732361939254916333061589076042809764367885899400642870799666860202324283344115670786005773478166981039188953169510586514995979674601607601609033051111035137477605679372061703806096962544852943794141733404786231896478457577234351692588518576069176177459593316098851721947992352220017227329517900559617090031331178923381910600552368215894731624698653228292717777506065925319809489003663177888949843017003906279681387115736605289355129171549789118276536197082315784565384807222578127230530726971684086556273623598223437572218137458653588595902757791198300312645163496126950092312147165424837573397356949411678298965915201681680382872601246275108552864516144714166288805930074859883639259383589851792465912382692958771351433944431673986475336405102634073727382572867459719966556906957120575392985691208138776302141637077215045707703042624546036563676818585851798221619000900872744443748808421217147165904172224729823057119165066397571870602980145339702027041844824647108050221215968559127708154610157931091450278634257096859703739089273705770133868722344959954131277017873569570685240868179670548374010219397029551690278558367529638302656345472428397947479696607299011703996745818145246781914811167914334720323063702196810752400231504158852572503234603954930378531352027493725562965882550023118644418805011807909138170536544817988692123425678199268208854666589371267715746463655960746587213531077691523284758040097266075911551901751764355358319318931891570581579553998690897013626291141323192850791102604783132354794490763382994003332314131668696747374849137609954624787981843103572318279019964679126887877896025006369890464593736013141372407427308284609396876875755484936468889815534354958963255430562071402434481309106999747121520775225238024012167833451760692671057832177489563706116183587831614906644290755587105937133315924180167569293687141736348691629642584852557838753104366114462140826175072706826324787690067455463186806348027081162062026503052703026041429750413222177536186534806139840612764333567265727829246173576428147244481959116149450068725806002119393988743445098788644923353847388080637986846183966736999704179833958587243692209395349540088871635529680974803693374302574112072126501860255046500542320372924171320066485167169868122845694705573144426610729183016094008575326371800920399006445272352101496579744351312913152080553122112462234114158035776312997120460506071953817028581391315266442146961012949634673983696377112369062658581450074418165610589163007555416500604916220688001810716225753307365476170966010897788987547966582589012876662042585658289248018216035657968353528491537676990973474034707550906284977019934226953492297290639459390007344106893223122125165873965872910197669721417281244462320472504150604818974135174220391413207999148107411703573665542492549084450915117166037578946882143863748297225118646046580081683430290907389376269732522137897226625488648498641712455241025319179731562084610826717986864754703114867762756589391586643513617364747100085230621965641679706103627203132721060344983127848935005027465314590508810578925634556146247561621162999207315707319906164276834999867125420505037416019642376667328692520104439891233088891553999140803127181176854664040331621446091583228831194401065569161692419068587628725298947716031350927939315625293271599697023781256304623038136497272301358922674051636386368163638413780324857802788627540519316311639139545140408255717666139050779799190806387079970110316723324218746216325635672623165248282721697010455677930570162539762012111168593733153701942312513841706173420861168143542726866392886942375972398239101293236020529672670196436716662190006317327964614372601593709033781838195300354129682244779410145216324681697789385463159064733115573449519095051363932665057451150911539977679228650125085722728132506914379261449445722091042243875254623875132362677512320341096175563098739466365550050855727503897669403270194692152055126035493880305598967409033577726899058203365039220741752616175673217517438364103098516383936132816283957482949509068770275753663708328443139733606928505979366841558078157342155280904820933938916967934196649349171074522275274957561482225104074978349858196114258389551268366707458871552577034714899702505752609075092063792202254512041372306711139289106283862017676876146734857941988236401818802793646392936191021565602757001082972496060529765665861775258819887292749902227583927864295126427576319681142569918187910755192358356488683667273045738949078678284975669963902688899939718564893966578899435443672694461971037625658846334804618819320786881249892050413875578074468798687521196063000228182781209624189254894496940974769423055066953820626879649903030829726974803519907478114678984771132672203387197173752966118425962902148927786565689880145565519486347768463085916398007251036080097119249412941243182273648148980490356360670946677646520125902449771592500604298033397660913981710406133767103210235517451146890738105617993140404744190483562327058703711582834763099945197542912317045695238377922007863036648435784597860001914967982766526383965678766535503290589754706865811188954022199909373300957619679422928873118546927182045334791392805554690306086086070403562005283330398145706697443475806299625563237141467604237623601349012272010966891905267447406402301696807310544904374863305531860352488117514968998036816598913886037921933313633621551153651403721837899632600280841984704209221113688863178813470865053021471001504335917219647531633645710577498303419968831920092355353445712067610562446061744925408973995991790822019603289736544133565269510015613705123828261450039026579658299669859220761947528501293161462740359785272588779525698034303509109109628804822483681502245441634095466634553112022830692424297030789122295905708745498342259145065242257159446258705826873485781014485359852353568340758997013225669847446404820854203278889810230044018799340503536941052799345401649407590450438046628973167068951086722327514623674062278483272057983149659697904172630410017610202831379610765004401335107190958826015334334450292958510527503273212588879567884714371077877126461758091634724670764853604831734385591307323265593256691358717276646770245499933321140223916547314663131004449561424668971261580611709692175262456368937821580192623219403438709389692521013986725552095268124494507887418548278576669423548624493609528196427553495856404985658100629851757035464296484072943154914825451559106800438187338002855229559851707328302329343925166357964129862309670051191488930344594477549155304071664768063229222831609797622111390729153332865661136853929903328299904597734429475388794340769981592171311533681404119718555241151582100643085044531304020507357525149682691196738750935129523922421495080942677887874629890336954074941472942271091555259256839457504474256243545513282296755069102756020448177781113002581387548856857242013295459973237870645844622828807099718470501380118747285923128205133855349380911466079233831807606147869422152622143051571715813306520300881533576828201673594547968090745508563614861136120751584775864673704611921351082478038955736962350560658255479700106894411893793406963575333448259117622788654109391096619636678430177066781427764099797917866235981496305059694741824810617647420916339048608066666237565643475606416005096765127730231693136000696871037554506806907707926985019087369986575381522641306386546668246163890184421761220327439116985009990084339984310895234043651283555282480651246452020648850952770146483419746851386544034796689623992014423860889849128659111932064071984851780196781366282088923215681565054573596769233935125551585594316239017668267867842518934568440868452083251872713532302388340354148582103934438869911132290168556637735769432796532896623903830609515087810381306665957098931829296858589765227077582124280634402931536203953761018351341206541232442080056792194220740342696562632565366963032361675279228185117010418125426738468043737494025230518186272562941197912687503960321115731591205539298769503261620894356136694419890982532152221550549643464560626810449204977136052869271947637724738291609038632285406950127592740424566515125766604567458307977817566752617141602227405855563679869797226511475276116596742351234748741574134301848968313753903071316342697355861732573823728858478708637231126188261992073444090585643983222238709647425173716545107860220779196261309596808735269857782419757123056436000285866325724979216817752346671563954716723103202191401942618985399879365020221315234397930965966660127961896887321356359758873667432455163215608550235435247575917841839756378408053074432851637495671838206082201938189545345882147654817244672657934485159364402726459503564920596750627423931103430203645588516987667646903379624209421472981954186699711689315874562805874504425327352845755394728181001905087941556886732745664416259503961734813499102345156247805616722698836271011693968796778589783786032860835877490470716297313443858746791973790394622837268780105257221243136565921348517888656835916500101078366594352481709522031002295104686279937267787275709003759407560161116211298585590522442062879374429179198813501426276802816686420887737205272032043188364063715546841979257424096345977186700366794009089163484970654423403252013276635947309526649288218641488676874056676450177819150470375745939769278129810861468159407981309314474870781220283292983667163208268896670587462344483764806179507109095481554112289362091075710455396734070188993541275978167375077706587634758634747128875537173114847273542705596944273171905921009208286164360078101063278002849492761710555860361485275350067555072966327783103127119993623281271334987736374961515732569585891990601569401222779878945236176489731753162917900237753016023022485335016921678522568531448570068640864470213132358389408175520014117620093134996287945918621675486616235668632587672039754755312634531818505707275516443718294786912441440016656550263713878789942997892381784126235444069385602776154185501655417541397565608013441831230450860805615304882889013995645757156730391264762656307791956657097304054172225652861615150381193521847206477868628534045311071155415415111954750664328224368603913149850910498961303631915695262729021540127240292215498468557653392103858678564285906616927071009958794923731768337012542376438279487910184067160643664084757267659668224614673111693500308332407191267363849812571200390175868457457728266960227159371755777627105392522437172011287474437094136614563191612944808269081919382270733981148880921256464573879795159070947353285971760381308981143035687765521058228322164014487050893071556090027754314645192419224740764610607360438816979403720092347630492969067798808321161342879073356950386301195182680401451335018166261399060883710200054533320886683838946505718759989050272345025594612608640777971194575629849297714082147909890469460486188941857694845373277495032881329242342415007987086673925701078611195566837241380077898175073607218313930828593868246177118503486886588894200481442858479914682369415433970254577510161142344314072875655227728376646795217023249690603609239036223988487238327065350537770011447344128395515677405497210271053148711573133798379505479562365766252436125381482491689215504626597830769834471057847700122139707890853261872361972647378644161733148920408392063876835851893339165049077041209747298442080281627263761229430661428824747480072526897286171685933845080920605879161751467079025876772811976065336725227132983754568824190281984457976596777580562703157145924213382882629099744123707612480131308828352007234477900592979631030498464870926008365176813257013330580709336526169273405725460574584149785394914942081261881552498039080155278434700627485490545761147723328549869341018878679034047465332712156669702184347878887290894526090896703316047696823848384222804244886117449670680494444666102292242604789307979499336335041112765762827736390605320409357338595917070645514931403423108749926680281316039180934129404360019693620375077095891297783367151611919066713871833626676970403994915490779791323315329919515056554858447099279739647501329853069792730171099564067664828108332369672812342274328803787485893311001020932345409521161138177032067216470152950658029848114661633733233290823252087831467652327304479291963549495535963073823728527129611673855662920718951217201347294364556009128820553624040303454452273393918627623826587871630275902699109342291924817516565247915604320596105374516063907933302802790973524690731809200106776831769999903089843797446418855822294151744010351459355782898591947475706771231367630022011331758388305331330459939683324341915061256206815021331232624497432892239948564192522207812498589797939728402349837819993375129556904405584421853005382349155140932968547973799312565011940350908697029443419627636639087267832355031945881182541655998883141495766425779279915332808183866733467197170288871441226867061275522427444329068308445754412919490258866622414324889691172910421516976832226424614566328909100083428685916859179186798005520836275871250705809817010134502184674746431233414832575181841000607759651301747670793217210614362273873871646349609166662180124220359573033101076620606409181360007051608869340256519887675273197035337234681969780283112350026120425958944685023089130383943717314001261940096438271278204581992300760897596662173792609493663162263115170220860403860096398794404049767531854722499445878002519431786555061556812555116192519091017537763446314363288344222178610386295220839930736910891200256601905532136684334795133667914306209185596656220431907400536562035594153353459120565266892069222524126050687968476986231842552371558397403461018905830167271039076146079228857977211117476226141145168145690226648166019605588011513610935758230103352916723378792418920274101218477058385174224753417631651134349269189365409036889588911565406094560209527644017299475389577454460888642613326482932050108831129513023673162056525199207834935724334318916274342954132893305140452991426338488330196637340114697829675332328142697386082563052464235446655834135573416850740047793738611549171992989239992380013955500978184316076172501567592896749869335825910386138586804442170378240512567977003761572065153601209519347700845529532476717924370322585020627343925955523502040544512983325322894786231360545234278814270634204515278800778076130113240903477227644751900014701046877980804773313605879418087804447813542966942840687449799794008369344851774289876286718299462701259842565520006379899983077920614226449200884298485431545734731868655568752092257325181477407747342548903812842774597015152696927389803143971167193243952482191896009201839324022467761814065461991194539685163414300268732137149275721739612393348796223704874243041848895133779151712808100992458748077589317619817367576567660987147897464615083129093308904989571327845556012081904566197691144308229702571831151439424613027341961359519439381247311339806147175556811641309174902729703623794929263810736890681121858785420814636087122416647977793375811175958555887003102970805730321282700774709899643174032185504039771045065388282156707011460335804974972420531264576267859372781084255546329655389860107384805959859589014494623302602761582703967255100387429573332941391078139498960487313742840957275981393739706944842907940661149630415194071512326086651747195425225431702043627780837816544693771852529501083998930354605105717158759500817962744958034527302026168968388003775325225040969161647697660355482771878450916361903684598466267024531608885426027514708421873869479035097425545389719846272828671201884147584074105835660448752329988738706023939863232443980838488446950109346478631299746146436616490487062345536322727747177972387030776973108824207759420274264230911006634748700556729574001384132995732603657076894968536815530699804367173861465941949418877623843312277202909379648104281899657886809084511058148305854956840796646777874072910443497684763039093353087290987473476930209238651242599627833141155732566291362423156797327240214724453432956799916819496984535737747778575029063699855416704619377313546867889314118006575308219313648568689741607854629773116463054976031372323790918681676158663080237408192044549162042763056549696104124590618660858325645824951267775635561901658745241231053908674437242658790593035000010592257494464167746657937020114754936587261253718282844258186655473547313481232939073213577898663206418389463819248909652109648594205590239149756690807182554830045753611666322053200279987415360284576324859311110472371635040735175826194430494094820105128908285902566120064419475525857406863194241712902127125067976866672961664581984203096625288969073845525538477279795959027605363936702533821415537266439048247441970992598817567629980256826521816683302419156638860986242369764456490347423110783042736061919636093840457236412599173139729974195957889454819235767776635431729912096623508221126717141260839033242943609930066457695401155732991863708953645240241014905502989742190104864200816447664359941913082578008239421344831945118909643416384838828268437159438102529184980911624644689607567092343383658012260743888088450198643208670658993717432254145879153382795546990251918056082160864748586058126971985975882472335598679255312203252371011863604270395041528958466553898049207150696407212731187547638019339457825329702619210094540670535346665875685188582249044323092427966686778185317766886066121096730066205053279693279273663834829516409412486834839499339585070718297893869525902057047900525651693473364850651778225484335813610353639190759911112501041185547718385513058124495282793214289037584871507064395064249584050067288426990619135506485298299088404191828641742085933838128786273897857005412518841487379258928136478203679854792906104751850544423447249585511445920807360942703341564494588144841200301293675305156259662084520845613626263854583341666239534855351494685334897469768738201114882818291680621218206752792086295096668473217794907829010806447717071028616238656834157747491049544073474585172449956990824764576754935525474422860483384906229763048909295744880399323170930050919191067620607915364140098293982077773874711865415786587624724736078100236413588404942023655388292369252411227406619551328389240644627203043037504441734525549247753619264488966636343944434424291402918595042124489389537762809303274916743113073794669354712057658113483299718938147385568923688312514192081649907344577162221611227643405789682555480819184482161562852644283193603425044332786598631899384916882973720163871750219508034889988353770412254644768212306372748325217276385638435315190710616070885472000612277965327924641639003412750456267079723135340106921974495325355261384192124577596099557653566893231778821699506361657988568710503938616708893381591361324639147763961457770934781998410778074116526063440482967369786822777423312245458251924843492317354346955566144110534536197893473649178859105208525856253374372152982793500901244148106982455387979428450573423962104376102866338137301924784956900293434803692055616939881043404820012116602389429907093953686859125032369378172151486929503050783977027811844791326974137281915532480923710844947065169499992249372944398879649924515665665542481848914608961059245121263413297966272490696757653482690574679187300184256529460138186412053361972329294030270719356476506813387647371492480090435869771184378878581297989500449010563778051790808735297101860295785414357888810253873069275206814872805232742768444665053636197943237712882172878179329328697330496158384307060248346998972398115935030875487724864962605034530784309455140569346286859312631784150601053645702399599194738694022253797048047764558483454803212843145163417681927717291002943154914936705314224004143300250863996379319620864443625304764402277748277153301598534126509763155909271157488708378255040224216992571099138969013435817389424567936597351814158359356256601223140816165341411438367489302885059752655982028987705618313924051289698209071956473415721720670376903875330837846786084910890877440964830341348887150743500384115850713144406161642179271248664011235646423876775833063880588975766801432098494364261812203619678804996780860308810296946703064997145653795484465384187855453431532143887178191399195757362651868114690820177266745542305390493257253636560637138561611632299546027936928559918856408000501277970881720330529844010163142152620848097919070472597124020033526098489762492527738908265430938762848300668675115594757496356888241223107788394134433444168736807158340646942421552915972079153268938874187819376316930740466184161665911655650118042286095490622510652423324979870404583995604048371514577748947711584395903653941861073694298417219234863748230970933531974617939769321708669506995970927516175872934197088347175154200049098116668030937966044010097645298172339125145554102372674363829427929669069601275803640870584879384759517845633932362387588401049499115163750295264904361191821074612136470012920658453600133071090342840617753184253135814693447041503998950155825884530469157549987966008639381750216548468920772446344646676362945400357421572804964439793386799955340378261613244890403575339967721131017013807944195447232353512846268377382034141834808287184515855406215851749347468276109948677250423245734269919836784922668177629867023969664269592272782867779950952590681573111206894971332998050175011369671671184773019851870336657235992358235578139285681958691196670632474919058682858192591513487668644730819985911984645400421880928595619374386240296464939768010144829220210176472343508022334364405399052801802526983690059913461164528717979493590633924020160849971159784046263398534738766287451609990067957615299680967474031655727936114945009864490703123527512458800416923462801724700218179429776520887322895800686081302607657484244287367375576623197275870042527488336748784138796519290233120351598192094906573247176736955354045171531768669591171929298826462395265589401820153524996075059385250830205997750850147866735836228761602009104900672429030672723228531921073972350270560309450216637568988245996443047357221519638284920914721088154593879936286868912283580202753831844320241275794881979646011282565700989305990326225853269952734394024650187659662415200603905960851227078912189793396302548456133485876273843781361905169861463489761468370458171235584893513343151169471470472618336117560112816383908769923605023718508978789081145709347092703089337490469554459659521537822881710803719006808306523484874623184621291074233355884618804724392474734875322867644561374487355292781216132006100674506298390516557750288003109515058506562241040188727422527179993083686613175312598337521287144098925057981369948566646763732908371801815137510987891978434988990129312214417907417175923668739236722641734541222879179348996702452204130309201211579593717390840223347975572441026754958481341354597856334129293142505241634657438528287650136242257648264570088125261651416534610067522243165828925309315471106694823707177822152540146831161670235540451778164378475825392835259833637541525353377798342323439481102083988650402609658287475540164710261590273201944082205436248128525602715280267740241247958123362082298990608156357446496343311167387677540520038835697097650537804586699982467013866922156323292449185838114749331532549813128407085764449051951346998021493517045026273350580437570866486455931035187682825487972726307236684800815758034667343550068569605913730276568326135540870927742481829889093029081778019103038026470908367260869207701724564140905545838662937645642521539265764817797734132071652102572066098118166386147082898036082743975790884116265524484720211981104960327743782743688009461521919925671244611610188508652861171841697389343103251694961300716296021995743038054756442043540728406640442484617260168763651969201802614808466625102286865440853750279664485110729088119281002764022452265968375718543363556929286169781850886598569684876548336286925280392162756153313019102191766184988053044952988314191215743268821333808750094616435028290320174068286463547671189039209036478151219910220638465577672201489916327500769034505444624701182403384096813789464048843880350000821611758287770362698530871359819733951298053200107836112570071763562434836716011337635411452238885014882644079757126138552871836357339276047401641507305705889721389217547177518126503438249132504680878792700438128714099047536382928158017396627556576800732756020277017192468837098739173123556034846532373829813769222744072864218639771632815961340267434240487874600197022703684859662985393777108137045159401213344222064044705295131996907804257180651414942165776686440667909528558273610939693817788721385429781526090258924970288710080816022346768124007401171673652491990376649015952172862494314683242205896196888773986078810318289301493813670051677935088950884845287615958543978067194898867758096938597068688534033180152438637889951581405811311522395492388071706309402971027421253506773793997495132215948684921101094396047191083679202878292906859437200840989400223611284505414988592424703667282314053216385376142725586601845243371813886495161919541814958741913267807541307179615236370342054215592787519753670830175157479094527723843553278641386358393481507890207117341392606045399249758149489890721772900526895474560714528109735265401729584217430172675951330419978521197599825806642662410255059068103566645262874028397420026514101904300139263347667188178018798707336710227951540815947130820791249458709336272967696227978320013092140504179277555852915091114012771895225898117929027755288515958957146040478200820841753418910151375033508563689656190959379857385257699059410209596047860938833709327335150837088205293354595553942958721082665621204227738695804383225574316787454441902922242008436846608236660672789783662510176853557625345861932579473929909049912060978693511630155320987066544582816948510858352349438428800809625211394755499684786430475920614377553693852365219324362025720031785761913146987729055692912000616155422067049816482276419908719171878241579281144907790400278985171756630683486951257217075836595754933103632468270536691693794614565242105957039781079362307280205629391087652212799812876950369563123043525436215336313975305641940413172296151108645793940393554081580925419030178402968978069909203453355010960886483913758433646456694389835147317348547025796133173261881236820800504159349209477214112145592775904433584078393262211797031128747336501696256122896982009389933384373358770965296196443433874007329489171884599712068627731041150632492043693003529208488644715232439487101718817486824815238369249933786882435441286759533364331721958388906357366268844082029982340795774737351434832712331242313943373810900424000126376580638605056711951065239948004845002834251294362458298728026524737181922079030354280576251174222267651096976128758660426924563143410845685611051851454750194057646708145262451948585395560940208761231796000565543562956474383558426834922489336304551186378881864547944674053815206982636355407470544017953625392343200932384889430792244422026259112001186365246690566547428326140490851026310189021665521017270419256407135868556643275686346641377649960125418867823669585550265453595102389571012586200131080586979154498637974295012759214511010110054975882086905012906647489611298142659876496504775633740577014457012768405171962582212969162720898687915123932580004261223997698631211757135755634003282470462685363462461074364539986090780881871248334629085011498230077425191750424612781290331346638969310604976261559776396401530060511754456152009013265209643200439604408431939852783095263937815460096200603052190648622523123602497627830764198858250000355270911476675387582615551723286484562634273130615152700598516975659326839858147233107784152212973671169094207941797428315900041503003766392337674546255731410460331251854286031456168874597803103342113631377658389651556313852634949380043202421394501182194625636826149019299571216674419440075167842244196764109822977873543033720128240943748489777435330961090148772645438629846242880670612390778934032331664455082655112415124473595183660444228195390143897653789382833133332497504366632574888901839983456945324275511713702312037718815166839624530462525793119233130593710475157513216903655965673557901796591250715527079592782719986698259621000375764162914419935406785990286729482808527756615546911789445080283320129546046725521776668449467154076782889825344151294775530177387097435298419104088388793807134489460905711403142820706480939437229720160138700763263766263899689246278473926291518471520679361312397044546305610024420353197440041250493718915209769348434800532651739539504283371046731025639371047754825693487303060751818328972726229901422042621165653599900449769737681767396019305080780107061882252293250951803899608268506797475014727441820573154046338136552054060793216803004993843790483238220008692750253744864397969491210204625105051439914274391893371642327422229657542820532858304362123654928644024170272493005855297068749312518596268421119220528280860831143991905192924076862675440122778937579567584732207557768433839392771996453745799316696513228754335667162922437823348320860010458718760413905583353868651124255946798889113894718529417608447185473660877411605756312303502121755962779681203629460165300473651918471685189656731482223344606567153477564751279583667304103630074816401622221436329262810068171207236494796786362769810387492963017459543315138135619377535810153719118754461694982572066225211850398000763102530051077136325299416096136924290427247004317837460594650631813103869117758375761402640495725618554775473703552430097477242774190365426008778919166187881294103183782794815762691018676491091410074438230525850858866974518905071913275393452407701407316446684379724363496507922184421908071013782781368342371306303111731150634058817547718936661959653649832766140081773240686983648965285044315650692102383640782981290602302654339225373766703833702221760040956538560391399922239581566903612069036793794567908047739747623090390262351216336799863445150778185602637680471462019699814028465338418490564565703915126885302124907387008412153814771142016249521291791209198974304506807382045508706594034863742581462125780549170254637514233134718556068639963950377100651527413676867681289533283503661580042772360503959449364397824083021310750223143664662736646896675774172448559250228489629478164984716273030576864615810610604626693159002029484065956969798133902999509821512719252483414296313410378572391886525847533550010884009684715033903602087767434607120935202667778193548610112366855323113150927720008919671995827722372148621854662240122567988604793445504363585249173471526728527381609937611019629663987218913593743942077824792826624289826591830182976792885011661576705856713431095057321155537790953716943610784922545566081100414349604701720071431033786777442759652376036040466747962228553443377445291623009150989125930533577575340292418102602451894560684074780964164357326523948236028066788024766905515073279916399609789249196643926710101875431421076922210606214017629382514859798629687766999836131873487007340053461386324099276297354458305062466484746310444488203350831244379527732462275367698546590210316615723264179179924000528352222251588832522715530517478098291997555952951488077282555777917389930060470362907962129644478390135414385821275987891024746791323451888209764256552385473462921095252482285220079468625060653317729584303936345435327339194683931087686586035149440309626306276509033809064083688734763506974958958909549753471430208602598260549008784848390498820999239117615127225814341286802204036184400328804980363625001513238980786370019642653542292069026855581187601431645163908068206879465751137116886216631236785020068747923811002058383601221453833555169505108740142420755165106978572557887099088477942189402942994961875396901058495086143513391833326892406897562236911668049858090604249513337885290171056678958259279257950816771630760618205786131587679404323184812794899227247646491673280371622022349539062368050497391075509927031546706466445026878975523340734275378980350363855250534276725397993813899631059564133182683245332012753848105440367553179166041885450886126888223895505842327185319315868423724208442219672920190394030930063322179798220386726358801815936637978129574943277896426514888252951816631650178787533551738966703089233766045284357986571544772216235353270363672827027951019190404320762046698201858589229637613898122735481331303974595337491844193814675397317944996535333775613267450343125163907745975764563329827722392219426333743078857071959243134046894311623619387161768444007870872835682498479488184009904379730830469136434475284669125242341661844511003604991175643717171007112686984629748891102786483981163201734423475262702598251097201834961012779778603465161771866033248556841140023348155785429956120533989589983845541834418081796104161135848346988770286555267212187271097803354788447073575871207085934674092153530072336170217504938612946826729789928049811676846132617134696679469292533795255565461808405218087535871718280127716840963122245123254802660351994424729198115608437370630682116448064010987129064098563859386229777784719469731330304038258105951319129570073496604738242118965317201470907968738370116833904266542266591862295507024251833894927639101584863058086446190596727236369678850762869474363321573703297640872372392370427847320055610011915215898927225470179687027595820949969223013235137829075641958755343126930093006524066643386918344038594097246038754238135439100903250243700883711720540603287947657831466206970378003752128601001364511054725182551868341049402015045484766508481410376978342226984374589055006900680534411143988542675809130427582937846152233198968262650303071341672755486759313248987311882108411713218213850375720695955768105834329039446285454807353005209709214523907884695834743978019744171825337340228658015596151449818635466472989070019838664463625580100050226651003738146393085569896749076186042771545656443838053477757649157679799329192773979226905097769515763875241296436629146477040080082592180638382994588981852878944565123784188663974908676484182240630907601963179465686043400176203307089126586545429199593311750127518271580317998734535961103568566564810935514206862312666693960655522998860160302384659435509069022490264639250663790026384180023666694551706318473568749448954269480138089574541387281061346625003628456175807368318918168337206803762494767491242252562165730408598466648353651975815520028803841216945873619798283764944238100166411277820660478774825756003183960249220312235890534519432955388109536736254197424598099511452598473245205286518015484610469092478085987943600340645086023791915796899460428305791665462845715354909755700848445577783583197166657933055296054662183963831817639124948151669486114814515093997612224957514812065891796156025648550057943661563174046635819597900441267219330205302042928165109651961189644786986518883944105121080036890306720028345937044302566659271983523388205438319957777925601517715094405604245738234196078775505664458297548411529445514860015442911665237018920528962761203380045359060956337466594437361343781399683170906913694807635063330711443776667864969031988540691567271643181123000362335410241677578397467912640944206046497882244983888883142912353355762089239100872466834268293129561425845287871444589969096667045901710260664954821613453996705439051274962873097882469056834654279144690531861849986806151920928231485374233586061748117103718734110446263359825600126893127393811039807525917547758312819960716634336057074580729453839480668968471116864854915930828140670363851370989697433475164688609451360969944480646920555530205253716084644939485159965170594010328885580379573429939180386078048888356574915599384027364891519153684749152251003664483348274900564188406060629713134271117251463712789006644928112342298172046028674336025030310894764040456025457489834091504327894880360879009234320802188835597480684927439420810330477284464807582620377002292422210102737389496295173740403239746134344188868718516427916968895808310434676903914890787586607641122677268909634900567293544570534922611229099242466465033037871715223814517088938908052114221819867733876663029385925961493662575692892898059064767917113758651204701630210453451082070956387878638430359781256960520233684037908133628505900963724012975989056035744493654856766753056799467874195013208373305691058302827066978556111101812752414074386264717295079070397663169095938840455296514997722877238326700373133540221170109065153927098078141315605365494626677836742592220751833677910991570159497501658576028936990402200112190397189480768960793904188163730138653826173563944000585630852778839673050659619343426264662407160455268182269154812760026635053374122735011058912031897088041583750375737120836542430784839629571949876351753972974628955929935628869163600815172258521716231251666796045128104646029727385694887817677631756408084142653914092085085523136789385634327483765031353723150624547535795997260330264005716449843161156911876692985786919738761917415136767947842657069816824632819445557406787348475182383286997674588553811167895980472179228350903520154023954160193849923124403877803989096685881858494260256732647064244380314404546329557580511164422336070149784806983126647374489681922742336300439773764605876252780236696034880221181519681583347401347816526629570745336247841204788341659230619514762988893537426722106721225018147082083343594366868436759251191539871985016043064844201172637015956319946474188501670073689112932041503892918847267368162254986074497760364184206022836127032545834022931663802046186383174269365115453465368442600090037082808460673112435173120533056475617882140583310002234738590479171197726322757647643280839636469588033325645901562947475356504991707002459213335478796460353185878309170514615906005819340372531208491970228239489149360531462789281993966796566770674047273414579272372303751946427260073203842388690264972644933381021988580921658690279789093988247801710423960276874514641826885201255781667464132075692554599935990651890195802587086828396539156553974661933074883926966958646721932827016785337285383266395768340406878677536932478448436167178559686127987266935712343265517099838131092118076520496114765496151094228026838741603858512169995201939198665285667529183653856149924926134154296050462444996048174302362423712209982238324282274280007468055075416765993197569681394184703540728591431593655382149921768423982467457453606635779153196470436145409189880350914580436330294659368163090955445309463633946358792028533997304157057028096205550703566873363565165173261688913588925308276033345813829584991456742749450344834413094637378316585780135039459365374853790552908209325569914319285208255505935613450114535862321114145165588325501550582828574653662900806805471319683899307723732901264620024824692975486187235008963727663394545936584007589515508032429469214556074020104704575655896780904736340940947353414045695964306659005915920942295924008560599697897856960408753696017628725776454685925197395995782468804396700850317888969728714035778382635026508474081040457588831277157519989514515056008767064820821103084483060041601783551148043816647162072470705655815827778599081875347917293677084800497605520463118176507977467715203787885519610220613319634025194342486966762034958140720646319347856623443701436786309091193683725677530010640076285098916422481954869277321097699109987778433265207200998127865238019243334248533800639587128419462501120185818843679596868274024031076705192357715005883389967955525522692751097442796443084520623683638211510360893726253628299200610262882946361467972152098221240137238964093697046068754667000736741156194457103924415392847383955867597347440629489712420014732094612273593656493148415033374722100084485901858747683499989142240185582689731512221145969592959356719570845956564422926621827513353389001384208880582446095707519923496515572805185844404882816732979147113984737885990545589966984012326705295427237920484021007483653492677180594762034448298652334263994425234181333954777175397652180781694848250491359011899571072593035094140273206720926551881995509348230719935048994183127249857764332591966408986605246508160424138776620718301859075455415485049316461770006759750478684037788598096146688645236459310541726695546377106856342077709638706441649023943070669510809809360237935458315665891827053284497564833589998643418826858069926329393066421226564554257733007890870262567450948748215903170975460744288693790505259509335657295742407872267985384846949216672308156275011072493969145122403350135022846419403945714951945770000107392140526864797694326700907557570216319444950597450618433241081187115149400536716107883453616559899514968920076092385928369488421672912279567830080045323840208130352248601817001189744634559754672145500499809753879585079803320933675032519993664077327954001869993130214979642865931376278985740507950998897069362631523127510405051355658075046241259502426388897931648540207085296491983058607731607638124120136657139193799752227324946653342681870950889319497104198286936797454842235716459920281238742618889608370709189167947264035713617089154862406933903075716084986122091269408407911813524778912752066487253667788012550031100136499366516486708706002166311822917410484966288403587631700870557969085530245129200873626168503827117268408389182010433516780281295543558467244657301577519276825829554311188616455498552778131979875936152353439465071805912901696519517598208668223955493657968303095036589039635328187154430451579918999216866522788295523015916061431790029031397134174359968433405435883386079775547808815950301863661996054788259580820387534037008966324221701950440277963220665452710561703672763276616499150558348546611869589617516353122284128048303054701216191001479145183886881695247882992990673134337380004776010498911423599965783033713362802417233597343181645446110406839919031178943138760729413487322945843506437772742019274108990108616185623024185059967746869695750114067837251605847654950057605897237253301660843453601354855702537660227345828217265827861655370402107075434527483758715999188356077201510424160134727690945560608466695720675334080289802755194011822189470155566258359029417431310457019516326486835859838632425769246438967089494147376439267288369697648685802866726536376735910779686778098593698690724039407084673540905372197529868871494479845870910159990125440755124129743826650455211791611739616608092947114523275124208673555869089941332185429571123613651285900491180990799424140478008740956084220349521487607013915345991771836119169864497754232391185019489573367551845800162442618112446029383080757876046622179370007745277445471639291975815615384857588754449391737532474951226788323584545531533182836165492420375415735911767512148704815466588668019986672909531914293283240756691500723189057082028565320204444754629970010576982930995113726291372371962572861625903587536047615517541028793481300341450458986404355880997826501604686353689860370048661898418885808631166321129372703039741030430477805822543622020169314504854341356632075713078681241179452668738618895808358960193164951123364364019520379664040102063535084085258520995287574027675808192044255941108325112547336132587052385609298040369358296316288757368559864234745966049834008676977332460562317989162144174644620972735166754208576512096304380086898640793981255426380412228400442117906278761548741756733429024454486947713892019686085615777674269859517936857532233697451313309391098041567511634394579055815454104594363040167710485268932088202517488298918406866545205563646297450033341303213366780785160146644766681679591415075688241116293834845896192021777188947233251217323235072908596770561783893801473762266003217649293109828378209350415430147763298511278500677236490832723032217237769083335526374297267489249887783080287171862928874204865700541497483711024451948039493843180383790164386432235623139739384603874897347932039964866785616137175745853250299127988033575761992566542861644699684497684771765168209654564969721227314987810938492146217842124448985839230220410890674899337714380311608764138853888421101317411448916639690680523424354776521872636079883716091215852341899042921696336206387606096883173563079184524184854131873703232132640275401241865456541766901100004209697828747268150879499801956687308506328806946648696624089288886112880952765980038802075203364001583581883082570543934906754905898142997311077121319436778233186076606507716048761668623668200254276610771346319093695111811505672995843303857440949648672336054940735523961178123691588459007171596199976781673917142589311727561270785825422268456787375107323399120432072426051031990618310078093881542555600414821543252889650689275343644199099609496467769352495875640573771640593066539118308994029737234737009502895284992309352353073915143700827824533806565425123100456355263914954671685726707925642375854792017584026709818943906246753633570632694467467138745775683626837603080358835332998586108263086428191320040236560926366268532724881958213667936662219014010497548275267559733389396272204234108506849508628172665390566038633772615956074904963221852630209834473017365132731086922434158566913574734809067834259787776263113567203555992081255822865362718057868892282724925505482501470389037053534777693867121466056036668304588564455331514306400653724474396600451914085472286221174865605807858498893809470568186086106226547373707531270295778385493610646130374250749749473705092776000726385147270478840239879465774681665477627896932016011983241312537787556438390395455877587549852123437157549575121516189290879676299357518147765822674468839727475142923627274243684782136885874686087586723049324585786379590139375439732628260044048982625652833996169756364153450425607248910653986174490942240463369051527434570190475608432192408910575214784390572744160585179921101145484246078431620762271790732859884816142963961419597648660092875147113159099459127392614705841071448199047314963852803774101696050028017498647444939148429437105338998027100060437564383309577170814132728881049283534831788563949494423087087382822465310843299723963583782100262360551453128125696899184411789092104315588781766254426288392245655516774572548339437552125119073651601399277080590593819084756595750731289457108818133645957796031443144551215564172451394527131053131746689976273006688470239089323918976174151977325419806764927728551904835673300420609611653323433098377520612167129683187116974373123115913716854926212098707139795303681628679493872995401621310894443563409557439149511569414463695903795777828793925704773799159957698067890682823853227154772981912962529878220404844716883237903758514156201492610561583946071333561914609443037886196282978096082401181555346658998823448971977342540044288387323186993046453666099180643437762870562297883439887861336238972720951540480823236440391235426570382772440420450893478136508388047782626568694536052615947807229854126827763125425356070120134376967093159315811424274286295034572363443950540864886264126153027004681557297960313108124741167887706823494576844860675167263254810421749373071209180396763943609659196382612664517438726095324548374309620725325566776085555603287790104299532738690372375014754758406897376471429260450340741355288255527001219894612957695550390438218366251068572086712916914567419112121442547019324897086207120165911028001724300481550119563138150176260489007333740680157933800959542794716237315904978782361150783095407815681035245958249190709071331132527475061683639686567799927886235143858080068913666048606139034388173130735871027272772830101467647209365090677339292934080891654863196486815348265862250725045855392238184231506654402903650172882707205106674115715155284004069283621647371185478892918319229801266115410562107678474186229094890573910443335447389277514346975238141473591179475464312700215172651374666344544354035525594168425439759436189865518371370111846813226141139233276022466770718237629225592274711522858130719444135347410963936587348150890462261374573735361716326156399680646759546051768819829079539710554706145788574339881464603434154742464209297968699402161416622253121299954163662725796319693910904683291872759147995751330319129578546754664646579278804287142985069900886870154819811993709862227509645542592006992237212137060306311356317474240197539280070126228849002251108442280559785472749713767858880953042922006817369421622578705779442873653603999553489749494434854793288575367427729676644742006051686711250304191737058169561968425784096515394709590135236141537831170734617791798980965537053974620939604192869056104256327377763773575985552774227272678324821377492075026569971786276223775993774193815705197691581111931011436599732800276682462733660534637371955269493749007261651500492205363615848683344921970920583841587884366200687112180867975772229013175297615634688308407602318206169050657247766166686676321428659633242413429377818463468528881775317793349377576210769108717656770793145591897346868721736783037912063842519028208430472241956198573467812732421599211069949997856436768674221858400723779170926119527114638838051719712408427255765993352115721055039207542690161337449691981882531008609615381919789620934376285126939010544994768575514816021573530479923542952888322199801203703719464220020778169777422649585882875860289906340067734951928125920104416956686935313780871294498708731087961631944915440588605183852991875597002227698171724723745162996945493720230614878160936843613005910399257862165621035509122556999068426926510232973580670116216207375696883392457169689211157997139879165355700845990425647970368091388376396789082988174626966249044528316221538033646838808233535162938555633596083083845953096614810452182145815551219713046021814422701569038849242796898050289834219569937945678472946473083045564252987500354099386121780433633117967420934979438951853493814256898851658487165583291407439191506417345251208419836095124181626904432048602696583144621747117088235691725627481042392275334374738601552858288940512759174754765750955118365818278196605228608323182344555199292843310108316178439423581404889509603862003866674925495459098852458411084073262011777414258006032450870939928910708300198979519004371985261922001358652878088599105552379453881059764253205628983820131678507051217639747589622758729194105919192608287356442051175060532060809260139427581818823445934973020186595210335877750260106356359174768847295553608542638770360173002030208581425214525006545212200370852351915135863147248541569453894816664578036758117273808398267437560230261558931085303207810199603376581051897933270387206790959535805378438304825720113667889194906289382201293886903018841776272825365050268143612060624693617274267019579393627173295274164643984551564527132274615227548138085246448963565035405526352186269641415293547583531258711016692883156985767116877287960146087670534213027178021463696743735004011635809127611322603843059663276228045751915797740782992455757372910681538486938422726379842563735485272256523163554244927963324935486909607006305341073637266831977152811483897719116482285819819160974827339027189372038871296929632151027128746960784555602451327865417502800283124814105378931507639018614560158704788707340127935974281874580808434227977038824063266448885970039086942676877557028332484623037703339490600400331234759704423609973886719062117741246885804923747402644381069558494288876217114721069770418769618899954398260820717488132355472396216415292015375586270206482928364041875152467665772278797107522322831528406462872574078283972355608564838483897648853585151513804115552503365907608761128119919178249180228762441459775095865147284507353943105437688473650724572542333567441640666462497608790904262587090775930709221726077924691593950840442117303583796769580925665469641713200509128931087240666821097962462800596646230123673481735201373382748795184650615316820116610511682856548085460954249600259739713280346151069102320642332303654243727562744447911682680071122268937293666741891741482406340339049081388834685643177301714366347997610521257157698384549189788864422529845387903876355034779258727612900694498381540924128982966129494590114724380600104662193454944864089209976361181027983177019429651072635028756537746001460466252980288660043527164823763670202193338527463467818295616260006154278248998685809180487597790327922347346075492261221831150475732651321032243126387337250530227508381889291680529868719006625799594210403975453766724215549298494681980921184675284088836341713684643011142937566576380125464232029891308905349546020294324017751882482105838667913465250004616257513099322967604549154813689670233707301908701239407532709747103473996595757247126260413317137971870170213940688492941246993717501292491911054806918595863729744636287814695995124527584036313830722514255863490250412184267431691796905325811889775858770593388678316820901459296744858505662590603732220341586689271826193436665976275960545380516127457147990803607634204438709330477445004666302585570390925290292405901435524240023553313019384554991438680663902694520613581267967474541379625174878072256201046754673634568283453532575843505842223610887108398122630181031564715754369772870913727370412872965880848213779820691227758823774134283345511764495406559345870397115123410392591900804645786308963115582207634676867986271330140813900850686585203085957588916979915233274394566521983077829432730815856916257157377177775513164481748305886881969876033144730830193716627189426511285519368119827682868616778773417117323957635351296840854006598613807438960472248078279460130339864366746870155822238932652977509361299574366789683773850636377615419968652890660470687536603982452528450064268578284417468378135987426342585298232902111783343435002381485882655160003542167165238060826958196633603421640818962828853089957048257857305141243091152976701432880754412393183142558913428546006959498614404158928106574218411042080764139143451953463658215106192965449438652797898059037060738922566709162864054829946361691436440849952548615847916438983631072308556174412710952677388979692344565872794263683801015952100920409297736273524923871279710077892583992590492045353087344689076226518123070895413743996789937276155074221009621196836784694865967403936556891549896748285088835619716225285302046603844889737287987489089631507479699640394200053735829574009668544177496439956630857425231180774680580509316265949648745662068570025011111479236654645709430035236053654750984656860369118037483321287056309160461375362282547271305786488434877714037343518070146511065973073472481592574185974260706884880718912528731511412424421408074947883494245978668672467850927669954870767729730327951039081482708814906410337124906714923123979984980659311943337485634962096249807886283056932784919910331997138118991092270618582719037677512070458809969896089821519880105093672701336681160716015906804998148527240576333264754931387218925320953094489504567261584323130651085339554725058172799278443438503167944103922073021009677283369166527907067056008280537386015441997291922920641317607225366794883954980864889114792068064667784318185339930578115521877904700648783030821835921929411192442651919731827905359932369438536595415869758523226424955135277484114932552759149585483572788295625414503343865165651399328308356422567808625160946071655181990854446189699923926179364114392900106416568029619666772321604966429808045040251984489788638489082050824209773188676114475685386560478039949960284324151810459949092634022969973792072195499787724925764579544107418575673023487649411265788107803449537115286522959005054187566484926889845797883030967365650807429796429450157599093570500948251146318036389785598546371735343981153957385593845715994811239465883194548666231093434407868376088325690385502183911179002209759957509235098219919380932633635423515620761215019418859679933396477098244192202103493024204026646657343879402422412598948750530581254075000382064134158163014388254996503380721701742653946597772357805358662608892241842078910186755242272800570514978536201524041999381065904245615837177949572143561166082404196853618834148044940518977457893568353301582079762364683430650854745466377065290177991960692554510870077651133906853806682829721919255454582457318387191633253799472001626610446414291938314075306723204000857686294752438726856360751478070886035944350202847590796883987081452913696950055198015983413023250171030917336793157218458272890731311268425708421975801167042632185108292728079350561801976525844469751149547083762766968766406574433851154992398616392800032521975648345453158036208929903812719560981516396438861771376287791126224586914033828487981899353676649954983108695037503216674928863219264248468440613155814263090105257557313586153527556347979127749230023496140764435789048080581559463149304188585480215329638440233615553594127980136804649572592059724253475700159246798581206955156892593515496351192298239053436115724675398253698961103394878173954711984983734926600354982443660474196831994530062249806741031831912002137520564207010247711864108139701160100259757534285364741132469829743213887624215151828912504243240374833985725940173316338916022235565196417135382060397550799586514908975701991857957988972094873518018572030541974764878901185068039393572903726690037773054805188274776286721636815333656303181662872164275191190462838382669733191870097993197586993276416715783525774575568318830542244339064723327640613887288528699982708676380533936051084542402193947863652144808588025767475241448581041296636072307103608261693077181123630407543237531866575852860766836289991732508331321766916718466523051356997321561289410589338136290513303750167047700898441846544561250480061397523994480611147996463267662427065422904173530311944180617613772432152261885337952066139671145873151502258074216971271543084070832608117489112406352661605849083966235184537415815101946793605637808717216923184548772465112959530311306440896737875295434771874958092911080103675514233613930605404520008802239875274494122974749065778536464244345998737312187712710738519550161734124733488743457160787339705635404619468990490630045669899094705155216663537322672923262762007035632749362022782259843407095819068597390994993491695171568574972768289058166455647447747095603547479718140650372633078781225571181941718985369654675309477551461836270576185118193552984266211238559523918896868723344603974314196147650737818157815459338995677055420806403590264651560973147477015403894267066159074989005697142193118229734097589258016397316804840160020840149439223997922796325220976149150587146178767595231687557992829689129734930748988356987030997493114397345096266105700368129916110316237704956928942214842082320405661516318102372868535877168523905972290420874193933705750906454330664949237566446058352002390294125316554914915298496727329434355654335156083666118412955153606266213175152207470119349496248905094410134606069919429195716393296887142779753600524016134534296317749536225841408306801621186534102294129815467926822305805464485382124407921222471738934342328650181275602393825214703760464103735245578281686272198882037574949724918118892694495883589400039179188342963279929729725318103550198702877480358150295378069436317069174787978782848665906629959453073149890898666418995552377862677566827748797646333971841650013281821135061397856097238034790698526171405798409009565584251339595050635890432602450976427007067648118148069915259087246980215874059925843107394172963976815878577159744362422005905351449940979905683766866582532641254896268623279636360044270871531702881579375260559944802811963888575052294184619584088401069260588738239908133669343455353451763150455112950494409422401486255063402093315434897840335193560385667074832688806745826859704923923999808256557326398143613483405881111419645755036352255080250905730374998596560583689510795125929577263548886351923137621381902669230172087309187966107102848074554178066384817785720987898051724850367945858652393876534184745720405679029501087961093109983809940398204569871536360523253136337500135733170297306475242489273058787416274960523645006814689778643978345934955795963113664807012282591725924189727721767171267451100959695809635340319679985660689587093990694956082875527953346374936639164728205463577620641148151228404437415719560494508033783197536503428565552885964799338971243895887723547335024439929359066855092164148362654453742361344997433792742736447176729308410252256664685316962209629422968765147126383619013192192272263602283306602645003319537422850477315477738140391320289687406488842283446356041492402782803283598416277637909294675440961483222028269608466648415375212798554391379820872777733995940198571112161458031289230264968039884254119930991628053684390061547199092953138896335468975551658021910621792248875874650007168979544009214805237984621843279062822132206282125503470576179971507070110234453820577808022813830230046755894280480447027474860720549203682858227243382947216570724132404489447907755058380430366255658606724156955788357488578925254934517927017381950963864797373161588773973385459854287159770593500182778767861350103668297075567037257199578100794965183050892859242373535079675619514504850916999111375276981751357880052132911925889991047611367318533602335766348538537058461796125124278368279445918384449130032935306631198717846767265976268639635013445233858056411851956786295662588817544337851974377060182055771917080059850340713454449038636145822739923457461644238678168421344765104694476824444349790180852961331586173235519664020611067368489825648978178270448478784148310207307411683338379616204961433740634098536159327035733361748726543397239983627015286812510318114564282709711167730610750279387967204253025633755451151393784164052912651679642696357148312123377088702399233227385791492982019427185828947242287136738935208142484697302792389998125805009248208846265328721258689896296658346344162990032626702288350572168056377535418333191281302331874312886388299004141694860804938890045447689005258777969274667731663225028193796327561903329166131079713363400641067418108747405840594617763598260671850133572823754144271231243721547536650595704328629162897824572202729028361456976929131530811231408658901016361174220023709659824928761999871421127507705117717171254538046591225002585026590196030239933025724898568028795742088115546598691942401984971479477614954753511857717459029664461553884320891335802796559251930246714091414924069130612139723833859450098988841553843079401049963571328824863192682067516321952497160342830398367443835285790607509525722507504037941080057748823939388151338429795829090359953485895878909769362010115738603082252508637523530827070458308440464661280244459873537463356507737195357087381865822048621408659655952687308377850465268814324479108278672412505172830251477859354724195223770935794942974893113917769626535309558256270969623280086856879651591239080943847915041593903495125293135655291255234993395446638117300341262941916634380341707386438185581936492399497867860881683549014862833777603775873219065897827411641921235790911010969673449245786362781831430212571769264423028089445079428533564670052278529394784597658150875968235288681728642513709323354657141757670013410509508707093829253528078899254466566232906107228137748309849258907833863110715588493673759048605929379125966114918857378146727116616618020099719128757351688346175681692070878296548548353566167804481347756408945731470153417493914884602328391893952818372053607048231307450216887979497548316241903535912934144610866276104162406025642477660022581138648346084177281981965107388251772938804399750983095054140185196244113861871790509847804352748331244176872179865602278036806131382627845312331189790547066132714452800981663090584246555644150705391895682042481697306777364929408264582949995191670957306108411957288216129083066621864427925335333386464069842276372236953698748732738182351423244044172068691599256794550644566558265999838120671366191780751534791910929746769978544768132706339660437133704908593641358219150963151425701319740137852771071179116062791750602101213023629407614938200610248368723203887714836526259873713947674977527743363748891058124147692289620376406421002300153091456136413962090541916249517747447288808690618883361003976074793663295827506969091650406518987777400446776682407345573001539544208933091728426451241504139283034259168011108236663025352232177722621874105774063147571244291877591011080210393172799954597677243803319600885645472212894041812221199665542012594718414130704930412786351964245816145908001078188021007727304822456572326044576115322163357649912068581733531591180967033926072366253447933087008300678460342267982869274984974162615251084910929995573888053848727563346587255516211766733671942090395956498321643338443995321453570346129566559263921118016035708147689591232661354920079510360644034694645080066099861465338077022228288918725350936088826163867666798672960286126020290042486810282056236437555655537597585611743101815803162115091721909245288378646918781372925254260074332970202432561798986852430885555125911056905906632700621373315599518922414456657833323352366701825659924739671381975009465820919822113250850711215536611605200597988258475450510743668003270693814685841113999389092291578029317353876862322799299020036568822381720990624592186379411753360767477100704011516721267252664853709798819765932926303722650066428275298703501596881669754828156146676737090462890426671704310332430063675196966698780190274851509574749640077466242804187725439521551947025505790249968653203389612955758456913325253858701940904831342053283556590152073242152834224001948737293578713477321845867583645553037513195719268515208125670946603357312246880552509960290390404975049574745783568792086149469296453942686764371038135265599018340522131386961717769509272562477655882100026250560059382884915643748213593688135324166856231909829737701601578740541062536836180570629121543879812727361099059559122641845653499305383587178525190378866036936643432127511088208599986491354089303787822946968644000002400190693622523697062646371672629811850309355934953838649956850540056152331548575679187482063652281564507592301059574937381045371643523973790463098278228577195619295481908609912386295623355368258199742350354301500918755058816937498096412009433031020065973309995741661496766871302799407018173745258004614001358743082904373391591342020826878615462754854882018702266158318281199683320199821187261168885021123496924133412054981330260599727085667968873222744492861396798004141891178572127306493023733885503687046840895176808217639795549326306084897470620820653664301894939790861811161312328258020931152028987837584653342284154461443699867225847886431582409074721009541751632892126659403586754879182609515715888269795743241845347438439817363937377675427095797405737846131175923304314098139828138663054608865369516586942953677210720756046451257314064665402661276342501922593556202802010393442707550131997018140561390066352241118616017059805759935139831161618829879282580319076824610001973340475999735730789374703649422251971998469565996341860730148766503772250289522529251932163581255628876118393007255104233796342551132629308528741303530774101570572040091130706773089348638231275817152822238542933764627552915769420052810435415150587337032050565415350247125852230868658706918498123222067583257722577105779131044609834807282924743930161149596063002010164324645989607266754397802776745375702686650036731222340991455258064791081405612257402298106141307687804673216520548038985299731102921029419196178868609866673706870633756231121856701892541300578900898796288405989186251043242580578454230500883003966636822794071354669639803520640144893800463398931574464759927971389153125690515937840083472179435788971095788478250385835489287564462284277101148808146787278555001117875646895297008355246185984617227711809893843886282092225765868739333994299530633398134396980377827143346920309438055227237257353046635676095332488587222430067637174358681392108359896945230643665200877467229434557529393082580263997427144087659304791697276341615425205433646008311424489711251843203563108586152874051966939716245675954204278931522441716976358999895410127572923778744279448929176868773720423183237554482107617066491716762068489946951038550970181536695727793045179775608571467255342392165418642838649925665258847817569488411739196175909733217396429163760088822694080843490616075406155334026516581321757256114710278341660061888313611418293530393784336927507027515427966342765705171441977075778504612695593461843681328997246980852547662698181936477902320070967392045623946351301571605119058772471254528696819307634953897161671923890272651263810590698774118262785984886803651091914948968327790031564309381444423471678529939151763749575483319430174623191565210193154018871573793619000701615648111837392612616124306141814499533454541860391050140435616072399923198294195198909548948302532358345652902171851692838318050394319007676618693636005590812513486132403914720561595071920665480844886046528806293411057866694504906572617211017582194097848372886470658065059086239419253324179831614299902199011252977516186884215162923741812795963696903934857864021970224553088270599613322990811503658173123215967188633360496440214350445538038237199040399573276264320036898538630427578606711896617320031857677908177445430332016215488250848627861551681116071969440803123378064872678503709788557086456735732091060446229283379211165667815100909373035618804835677438525562548689683572979845219102055051851752898565217567711485778034496029003329455141134270483724551816447082769041923536624272863986991873193714805856476733203971836464533246878678810587050720972663531699632040011371735922082585437885293335297382367263932444220542923390534210719354044878915856188460767691307802947322098465985864051612227281867860489548021873612164765161104481571657942349025619157742313349212800171139458674209264211055972890464537421159243558152963354260069397430991822230747116046171930782126094326706725766816259492333134649668858334082813562232897689712019661009786121161614417070033401599041534859548348458584868077605437365116792753838217845300457281794601717586331120842378558921974837584673087031113112080090373749244863109738432579872509808269602911688733003306326273582976047019442268453267651320288176659476981367386618350360984775650272746403551014320061473181683473850031765529465446440369984635216769644586392797662824999650357591830274570184634960766273393939990038439658172833544827866828265996148859463934825598793030367625448682027367285245006198887636813738820942233942674164441555884530535399640522431077978495906895004991265105462624965826294260975968859892938496673089419415718300802438555320470540449386377899710313582678940496256956125049892706346522117238094736707209526487236597632220945557295661896137589696525253847702993288559530009089198346956649410911778321590569820972346547697301531536320236866816220004087444206479022328630363201388142687309649008839705430035517908657592109769760256148607618205385269854135677088745154098915078123490938031261761887048930113774060811705426340786597951302419660721753698994316195305277888104497848366812310774645995334139030329606080469404007027887194965140779353700236033712923404707200816028976103594575398816072457919273036558948708605688689422087505380099648358827344094507906897883111632509204448914745409716959546357130577401740154131871436760840029383105671305033791583474732586039593277163494859249485676838336944541569070941320195830024962315633473922409859039924972435522101351825165471266617903092190874435834444280957273772220611866965814617098227940099601784899303586976580522199694582878753546739623255120223608501897389584606866024407914302236485777789530804857097975812568900014796952435979623702741220580957912886171249270993753488132148021069229717530681000118043215711404851803389039594423133429824915760703745434149746242459185801822837321192009470464391676007761188258722826910981858915684130442529045496440801251517195769574460322422132835246676827579732316507898967615168280917075973418704725426640166192345164616160054710731426465602501183762439590915194459162837753344736224005034553664164689796024626944886216595071453279307333250723462807097022492983634813636138323226262208701440164887389025905598258326231725941348706240718037809671263299032396116931132493768112473577175641263243671125373721365954450167022219764691817712505515472070753166329862398965258483527043152892408775539601377693587233539613317285258711959780083761683400251658749450015485561780326193010152617624091393542541611791458292773778136406409046471128427919371274879928309999303359635367546434259720121396973469677504919444281891083152842319796529313572132249547991382132932233655872743763048803427425383770557744987531444372022619348693424453093523545945751691315526369208554348715616666270554886562778202398844748036804893334394195152203619759004605882339699674864149055946843536419336965861021380410627272444620832532590040012390298759413170936279907190154198279516155556714950931304504460520766269178225800129346845817803282246713927492167703586810607613192951147033412280720228825295665027828466332192934936724843336426460892573480002796120621372815787035864956771850444482570408414853757576441776436893328848802303753738213834282697102049962768660094607585922789217217198659254330656002495759296632476230231412829040619609158142394029391321963501591627712626241266203648753723978426250353346205721398943142860362281221942573836284375983688261367692345884133417706110777732983719860152025212212902936142526692907151232961252846976233175541608323009122637624295952392760250444156361412485441207289526585618469279828357809331532476432527262540337304545571145282077706800351010995446152092500092239715863616508465126284193043358714559596857533437783183574363366223587323328087358432711762825130964176024638776238893499807607272034156006249972661138727470578644639485034788722949845620345979645102483450336628174450305403416598713159112609685532012257794504462004905339769913061511999659931484189569423632522942142816963931062468307690435754120004463214382818353639116992614240298098034079917717145629599351056034544420491081473650195423083136855264726670793402446918400771604295531403154455458752813198883114618668695014857327549010626064438964740893025300051000899486238699851943399690283064627251547200817951233115912150248566221734003662477706852511080926597750937025982244679133118486665918881871521074147640217034178163388820090900985581116401153715579268074704053259561430383495544352049188633955316607689082669845496627620765476995799572043068341972348689557062021212989120156145939203666785543682570800822515393763876174658085135464206567851777855447323443843667940049020568927561552114378598989746457490359568109778117210696392461516459221692093778638413459525051719851616311686540057383698897967597798406657756999664170396477502668984745809340242324828314080775562297350311285266970569736429351046821181383114761877687395199697441201145789649246114173457743202611712913749246596847890832868756030821832668903416179978258329193579197947822426475300468720618724067516615885826431210953130191812759364227194057069186043484911394682273644639053225320860443100013532887047596586676279847098740973678984703104159073531186730728637497887722128473146346773274942660496693152301303949345201479624309947654818045818552923116724425003321371638169983829525226127767217443636868326623359052444207007643356529021539513722017115020815131432131944578003683883546398368533128885244714258697134187520543122554104762215394161237789568734920410435004092081664119604993784073168371773612285404096754885197261987280414858543119963843191326986433655148527492588692829391317018725751647588812163757156300092348372334746107450317997993232329220970972563904956353027661781634675119891229600648336753843655709558611737884536487116217518156717787710493273113732618996991280663730558989864354974449146723269368102201201245001546780089528564024715992060154608750604699828353583150419013291246881657928817386573194986342443208834953526234691537624596576264203369201289787966134645928576115223653954524163238748752100703534782672717547399363861421110469202418534942671153966265514222660378235179247060017279281284343965164135411211718198541624214719426119864053219803827369778054997168069809668247081070191182712790388476720001558710810397012292716864671843431975647539440637320811019034467603329699744070952360601075467734640422676475453400424229884779888980924507551968441715853897752849945299878873834018556974194230989294161861378662403627564664240416050771544176215596729722286833941107649663602360095516139972904287622121241691264917288102374949615840250593327688920052030285161481872715016264588965079644615007452338537653757778552356064702642982417842596885213855750734864008779319529255257024285687726593765210543914831180544772001408455704286917638250523350511584988449089976926450737611851875464329915040410037730008549081315782353225937817508230273680961604989312073197290380566403863810765632894924851641032911464263917224012364436716225771129641079839431227816058613627348308304332419709357998430472374742574599004138380080364039554003818199168389660795701148145547976841714973451684679008447964191340599205516472659346264656811093818089491670913957123332117656004066660126343505191711917619819238529153118757249763172534836105567829610762027173561165621850850989437559757024550690591189259220387723630775563482893222546091277870863941505888845910984897698760632257881163517618876792485445280951810340354488315930192002036879675452310442751583076503514699433800761485143204236293753449843980637595298789098151418245459936715320919386437124878833709286151520071555360790572799874914227086019208687212974883383953761096244113903571476930054444173302077821680115543052464054859243709260211011617552576343215598752516826425646804948352139252325634400110019592887072594704723214660053292189955217820822889668628177377665100093786908930353593907398281838162757122853233006320137523796644848105251577597387173396335210751540441628376123231799659609414933613511093237484617367241095941115040948800569512610562610228738120044007370475028362090940733103022099387673987762526466640495223251155248404645910906933295590956157732886942578140740438920949177573223193741811681860692530446019299469573203747209489693915154782982424114345960471488237007273969126560067077573571822661638607704185432212614142642995992519331336173609109220995384585197897366461346262316609469048192566010549317448090917806856893131102589285499738919994707685332576533128266770694373921321465143540262671633885252434612428874196042707267595533261428965122923395024769137483068687173379146396817864334013499858659004480076730748449732925032088859015994303977316294096561085398223477488429280135598555765484020227544359524082894633965298684490224492820909432581438179018175941342036209833726852716347968296225536538205875633894663794044474337175648755946823821645212403379707385930333980009953986609393254951706199985121637358225691559531208373100439487710166816855889595240526664960325733366159163771519129529695620167673830900335202674427060778723146252595866269197639372756803515256984658275724873647929759914509411820277093965560654526495315250838905050519258807339582210634824333244575059506920022180703582674813770144346403684805628539135145952334938391597884557241993978056114169443305552642007866287592095530852831239345267199674217791364635951383658970922273271642402924965126726282779656655642819077106827213025190884757065437863670057180620373864026185771422353717066103825793696895745963760872572731454626324923574492565692793831042637068710479204853346156215593962025267413350144900812792159146388984468952929479664000397324897824262861770052874261321145191720966643094907069598059000547534228172804711261075403423850598744507486726199002691134970480815871413900730539852099132230205134084944229315846747408213941411234462376531989016638366162220783473666358528780364245561421694077996953686084297890903852539623832632492912544062357491070803827123510302489660732963646267849876811129918854577478662120737904916874151781292897074681378966666142406087995435999668986416872174199979246352454218000681088157895760073493536090954866382055474191827940224738349343735492361687118109756304251513599121151090510801351996561137826442941639871467814249215848817183578043392773305518534175212249069442295250688312989493832725470060894239171172754869648112851111596109010837657021556813324361248151349612189580724613989236488460485472182785507734424240750373637650431236108710403554107174972751962570587985957094146778222718517390798675479019856236125286960884337948808285608600342008369745867478744696906708447591687411393999661766230372350588985673861769952354398031128228867282551012577342987193225533181908506490814212417019069027468854707373022886228452525519054529611840564710606943488640937739560697398358677241609583771666556494189328407691744946678047109175789794521988152165894768840619515126867312989176888617078935504714428246889248776826141995738468567898777224651551942672637038166761634823412420525683019368189120701143143302093514336402823628796811594648989897336202742467235150128196106886493291838039075794334699513556501180339628131517639626381654988644527956859676452019274538658137749859943267416855088907513024526339313384778412680165673358095593973735300738285588348576648960967598421611519517711494845749366070035726042131201967496633100783735140283337246423390159510474102818565542639467921642798325403471287768862145908388805479063940118151123330678760207810810810454597179565841845658935306725796814617226827373987796754172405451684430066757747214618354427071969420075008940739010901699998106249989179246821157104608265183460404471019301259726639019188300188855929079024532097365862900079256638510255582122240272028363739280175650057638688530951003951405074249200794360336585854768660196806288392639888044386635925233021821549284078201316402503499119401799202200273182348057559604073594005581799241547711694412106762737324462984641716938208241384814110592958143162606486888393784888845294609734213396681904257962382930976266022966146814139043016440416084166109539105029326341679198087794003233030982750785823446741996048464929600665126274494543735193780163158520597187896863677392311246439587624217987795887602165306651534292393122184064565232753560546314295879048618832253066266617973043999135789040443916450764399071712554386877983958864038586268794077972486503705212163824706397124809244723879905722372975463856889899507636216687087985228755208638716409069827736050582586675348373740369067644414656509918132897100621167562121203386148211101938481993136310307048011944088151202910975266109839790318672603331875562881726449585272795527991013353286258638705415521610850536468043809300367000177280420380616774795458018283482739383875081981903369871936431936989239204486996608693439924373386606327862736003130660484358532156219570608756626338899805068415445877548413411022853875265083183182346811557839658019885856451203620610489195108075323371325123016352387492888926261753253328512682130506046323301435941130128230485239337794575008035967432693071883301750207897089451366790592019746451235708383345311597376078208903895012285082297853193170242842504740677435591303453838708271192063244943326211442412446950651828459733315979539882808951215188307140323076036210626186511095158497012645781756327917291279270843452394111603391223450617513595927500154796941124406837311633684346306333035501782670625894795250512637691359990997923545064428813317971583502809130784080012653710909566083370655333173516181215723856766523750455214220440591945026346079727995497687256311955860984197747179015169526211372838306739886810660685038393127598435390884404663903684920413443546151602131835503260867943596797693683551375359795103538185346500247534804915663758675388024886193751346079425280071327744423868872247964909781394333107852496656899605107716700574623556342422794598129719821353176736343999398498713954511621615291392614824650598175344006571712339124645055867641181527843673919557596459262051047061231768284015083619735639794323004973789904597050174998949561115560985935432722255342237022170649346034071926675086466785797521573215412913531418975826897889917535330146733200294909355386901962715326211599935630134008115916670817675128441948574623779595511846657333948708197198236167136633177160275379673520703822988217554039043309318259049015629659526220247080129384850050245530275732535128095380764124270360410612366134037017159758911949342999299212953510165442621442100486947741201324563307653892111466617069154051477325310361788377799850970121303343790472244245831504182677067867337301359025164206077685164939437492409651939549922340019617776792375816671832690402467450744808727602469861753369125380146078320952700241524997521565460497752987277713887488891912500358986035260173305715471137702932836383829696195552654965231497319529787735440411221579259662879460123694337208040387185720315947081702465778753093825983669325110124288699883813868256570870953976774933810276936314043317508998095643598441750028685931544164781106421360423659902991481559067294333822569220033936957332184962644219408712909081155745270768912415328293097411880518297053059773336566067941944433770687780507168968119147344853228573499224966193444081991468892118233386264268689176647725945324954134737063304407710241995898745289220063882650378211785831937878430154279017319678108771362136697400742499433981897749203126084473275072745176733219093104109710684018622056268314979902507319638665864626213975591708135504454030586049649028621850198320580402591949316389028550650727558150659788704573324240754610840080475260175766589120342231516254861690437118005639676960669885674658506440777138495214815027191480242563970013065612307672297369130964897194279212145697748419585832599335620947813185333584885213036910443894448850371857964316153683991489703261698384336216319808181474567337092822328356045054751150348574910873278739695034191086005684607752178686815759936653719646141710981253795646857014686471335164604816660115212579428310892668889294207819332691132412588116708254088318379178558543816411435115474832576136736349137490937318473513324604287197973074445353938946290278741943930455812863739844949600953527441465923186502177075751270847850326366352840832055547920966497472240582501107963698030812899569759126091961425635265922142650142241761046243992129751724190104858164840462374732891065739505106187622962500094054241056262089777734546600577636389835715467610889949324864413599241965561133623326340049864974509508566712366940536766536284914719539001442823664433323983301107896240107122896223230179182425358169163418345064074242857992329860265904743014680552556135252298369620706532604701558258268598720288305156226485794431489358429581904948463364415631441464906255766945012683966886321296019910146485457636882255907840500757836125290773301592494431877011885090036194991221998883878982557215541146344065633057355977021325793946513956904114674635806189026575737190522490656032101992781549537187586781084238067045147354816695257249435967077398155888628966117061272365181732034914462840567593605320273222889771996735010228911511825728647615354421449294056733819685770960021300964436124758008329205971391025282815437590447404764790555953741820674794966344382167062616187772616920207129255747245372810809186426913088875245922004500540015438753577239770066280280298851062251534588484391469365265776967798374406935124984025227088393148462652042734938777360887216769220638535229929159663303634791794164203126268049289253032952751479334249062603179918847358289466711108799190777509852274958951327076919789812440810690990970037206532775450827843178724995734121647530216576796857685007412447927739636760730267920671417644233127713612235749017889792257114608922375665701995311206818563705124376292734859906986327160948154778468700953023117375776166930682925028630642927336085055191328845706112356384813011887641702105492816409178810229823315763415289072989227756675240194176216324164051531727027651779412116592286795202862489491802425432258294111708607831303144176368991257763050940913797976077673267432587222558422523132393683188060079596402165498792962556574662411031048668510680596627954410818827105082712296788271149532057896900608016357024663977545191550825694751922296876388370611129992837946442020159287617491966466309808004609968217293325461231332527264191044525474007358360338410836629600228758188212728348549146280805203666806821073537112982083134351123224151519478840081739415108883611637839568412751800492000564598012629700546095455745379428035177473876446844616843299718168968949185828126317160777112582452119294013720539175945604558276834328583878264638741881187905177457344615198969540007754060205751072842357379669747725407692107349348600994138945709374783800595528551699910932300438840806602757256761497313864757138084914440941939212565055941493007250486644115054953031455557780553845829963688347848602456957102031240739158223512204869549677326041119998251905839214131616090437711031043925718952807591410311547302456811427490740395656638860115207102272243404637562938042884078355697289631096502078644616849904428551466634220029908205108585485511532877574138940463971609682541970462497518346922975559123481615716865985797772083617161329104256722586080809183648120150644723757290592385741905323225833549372164123992774051120138078597256520358257658516436569805090917403815759972384206202400373977196859963004783662010264130658614053195465497968057426537629040353369408820417844133915538962395135705673300533598108540590848058783863496236069749193351721218208822443067769056823068187942747564845872249797895876134349366333409979205053667988746707566340145322889169889333171304876678393736763170055661731097317974309481934945393060028126683716508363233354303380289647265126978822424824004665940585178968737313313179655524029989863957296726827485211000254914515819981453413059420236240369534744359582169340184189886797932778069598618137832896179513373854880685023688552154230018661449848663541425782554096695974035136114124146470504072508027933448978758958494866154393353624723739134922763756571317671590097294410140448250682503317850542745019191249524252754157475949848288130580218704279812295779535743420807697909613512405160598981472929469550995714087087916448771195176047043486576516709739817697529073044837298931519743549264880801656974291161030767371259995696068675858652999524785979421430888616054843984800711916832663205078538037814439069621371492385066399923800398087833480053362984610657909623453072427325998051539415307073605996039930248179404472980565302246205204326062214255882595119738286260469541964555140469686340209964065917731758453172583339910809518684593633465978867649766713168919647394439610741783628344668753261250174855960514090663448324816555199198385786241523332784952435470382609416694484449423967569193210002928622733958127890317164469494312615778976972969721852614505306278746752591967760910855753889039342738121048116589489559957235205933855410929095145505263714359375130212478854664708073215371247123157513042776426387947169072107412878785530427928911407516411535997459587641223759378885106285715187634708109629271944271922637283067827342349212777383648551060153688343575199936319911987345156866510412354433525161716786546316158984788906586155409247457195234771527267300594967147246378042688140585146375040322568523696796575828688598015914994782205050514741946494331202627691295510602514344401590642081550961228401594450724705581245072019806117374537481186139359026379296573879957887237202146536124148271541482766563909239609201627296952136385123130234756786042569198439726125355366836280356403729957730576856411430486082202303085411097423913048828237418264932397662090733647465807530994560672996160662815093133261131319156335242451245091489539094526946671565585386948534614367850808352425731382623752692690411149873879628303247253205536826217622167234955039409382791142007176989273465380197184574626746189286742802739105533628683906704192842869733797122958423600990582890916169755130963157431183898502288294642658221245423030133641288024729667599084549784957025178807261655055795621121069652391240378438323858439532541707837277648388089899988882653799018117915601578739670168767663273779307362747895827384542128453233877470668836614769388444193078256036817390138988910593746006250591935938404536021297539998996899530532650010629447682490857356951365953005470184472014397091297788236150502269128399203024398292075338734545979643852062084769998676722812796454879942973086093185202782673606353021553877506573869416652404094174145080062944622418344287318529490992286873736417355682902435854537109662968036621577863228760688902993526390033279362464914529258814895491130501802495112853829563198852969568731849920081469444793433450260653924408409796229799691546275987430357483225060412168123050924854854385174989430805173182686056855043542438378359468972015602562710024011272199764740512272511108775409860150067043535026704983625251354125744135197654986278631592571739916577300357705962116265008159482288308685188004046818516082070887379169136684344332763934949490759544981523438178540611811632304195612248724992591904015492329648586236344695627701435106372268862337310366965411076743964386151065223317234140719963969777521533475531480955191242451138446683940115683541465395150134571097171342402688476858083950898254252418690174457719188304567016208831589557202498404124343818119559034754151564361760701084833966360294775654674527658575313071946430800019522187162489086077411474846485602120949554985789347962955323654115165065735070718672730960588785985619380989737062898559215514845895246071628204990931598851725906968381864938126481399709635029286150746920066525982051173157755864788014290415030496798159786146938092087256650060171266925811300066333579750044744225140170179294446150735084997711052827334195202454476252185081328327658570076235795869204051457665300120663030618750852038962632536299220527055702478822274749679539264483750945432597047541571663925392968493289031918009180380690843395449974210895657486793310122055236255770675446621232309345954238689218905088233466953016584967092013054433256790523793272543370772535597926988817131211464411350178549834162896586724736266610286141964805303306459024631171127213046149613084758129562700584327338782350784590334852235149756067297298879063467972516729482999007871131252780158348055954199412562355435509973480357791925179994405382077559726982454903440017241384499173894680859712183904183178703500688136835892021603022482780891503349052815761964339696420859333884334715372691136836780361185816613705641681268668996067610738187089331160026679869974736529045127463063867440447118885995865270846130734035325063851051282659754658681297456352603364336638193808474101686651081487452384675323178826068543379607798941208868376432887112391343879192828515547018382128486834104908653541454552145774532184635436054723623087061725811100863346955332548870385345899313300031784262245320975247401763605475096250975446097864345397916067115404220604686372561042490860890943122191831713163169185383516459006036264483352381496793391350426879156167517706787773927552634677915908807772808691515472159761593087646416612011192648932452124847624937824091555154056445604286069466232107305338556586558752540392146780054100270221871962371349238502959577764475185607859644464774315712488537268439955147991518524432236982525863725406749512862498702395830837826551998449027552564054047652895874338168971050589514928058028802643886871769597695277985696005282543090914435508658925257550407617211304955768056701567074607840875702992464912055685212391691543895307716219607756738942931482724764487843923139464864583514851356413893432039526071813685621822118729777947919429029139001517343237448592949317413236118453615274672070939310833830228699324975484836922554927572877852776007888331269531998711842502629801250172646719785314088442546703438825496771741627583862310222546812044257183466290290408858839738191820957403705010426090364202506454960343687829209688407329059386183671911532060080433422128592969568901255707723711303527357819895392179893363562302129388343694386006480161890329942689858800584251037265294862710467844043067379683986111766933252737491723827566245830334756631115954735906060631484663543161994952845669369819818695864926995399598992567256163650693895015241927526068963168892702640376151859681996846464540527179826340422054694556358277262274974342150819400073228922287076107212374373534689266033002365745366757553244089022561242593675208006698802945663953729680532754670735388918629031031521360914999756778986970721721867509464592445657716406203394966753019866851223585809883907266931584089896906833876896635412594512095811703066044785032421033130619538443955452793098853200827481569162303399595298458083848626671126573284474339458444180930570593343485106646180128158339760288966152161998046021789329838868965279822351991607536256241126811530912293382232402087903516421762347254030267373686014188796777329443090645155149361535857706770538698640607567704542821368940289298237916252932131823500398748064250406398280759170394914492850281930038289565146617170135254417058113920377205013798252894186908375449328625377859966017845448001211666140304221434039530126626722870613727469850484490989967839548503127971771510046499992988678286802203297951849005855211627733797598746297044501455276418602304887056957764868579513046621070287850199063349496899750680323501273128021608167103204735742477535941094502766390048724255720756491410725969043380968998186282720562965289640716938268688295869132507450143610599051820989067253751771788267741389528883996400363645850467459277000797189609823609007147666649758008672324593989438758341922033098074710154418962303914062216738364568313043412668694761586730815277104760941534453967133085537209872392967558421087928093071430058739162479804123852208820954811026767033514107380601576078623431968567343451875317740028600366748107259172502119507370636929495277198396805299480115899998644191454994468603275031850248172016926752944524272085089054904056064719745527730572106641734577719778444429351763331284533872788968687066524224369738041314693850928021293254543495112408784410140050033921951865153774440519167773247130888766325247088739496794212365482515035143333637998656718235349695500434741994227118282399800509524947148972719847995189146733537801193601538397342707053030701762170877842813349717878623244633185322586282707886029856182034703971475356375323358335895173081390471778774702050207283288469127102962109189105650699266927487674163571601682674330636017141558574428551111720109964740690525162846922546390460937703469846176454369903056874020500161349573390017035660303268547602695355592890159788777517071644252192954561359375294644378115549485979078839750046952878549317816177316600408140380703168730806648253698560181412649842329842112840386697394707401392694561654870350619647940577385231631300905722218679072594082956591332748610168255636555589440903908731634207738502460691098067824189531748679619509329050968800186093334235823479566684725637638428249464090337914205732188570987313731510891968166072685604243833138080022107576346249422810969606947539819019569840327422210779322648421600300153020582491627486112553544889055010584335013989349700111131747791547524338484475465531349182925280410395786540670056248843999584708605879030330422467562489625099708838730192852843308908882509154566586289023823492521038726494532881854793818674635741588333423425768762499019160947522945322574811759295648110650410850026929746730618341200037686089540293166516709763826327098447083244333995926780400473867933335426154149491370960015826617831152290921526730604846184637788308932194754578277669742420944834425297513526334819134152845413709628658091448317323749319401570348521772626711142382484833013981294653840608825426612163383012017352848372662167099149126446866518078676875537946077455562074453931403345588512158535542637275391287119782501069125713655786870169820619233832061818831458013431656829511711527278401607860044798571879268386338079432985047822014348953581047751534387861305164104095330605198359697641259475173881040676087108545403736041749156668522974836987598738972615454754677260792566126403906205825238472359553223296682861374597020336761780997131055341992811080643246370654067347205214806065218660094355558163596979798499432438369006269588269684797576951661314310875432492995489826202740584407255606760609811597904926326798021771718049944627386380234912735203277066154689063053810756209553422871419672382438533083202504733203293450190564002705760742881874804788420692530970676970310303519239290837912660157130515300032636037568653927107443568601438837452975290434376552795566166149076553260079033646059668396648416842732906921655350038378815069439289946725501757303274878593452705278438266179200045058649247132437948208815422516393835602873787965821028547672930946016929964114641350159837502782447167534217309850110180828890265601777891510069320064009964202245794211258672809333238711113861510558816589522671298724158967178011040970950209496583170908500733002940203901061040534391253068718705677652925192124758961608832483898642880360615440556038401079954012942536223419982874027181590293559342098660508656273309148080862825142409285862863229325433989796090572213979289240107795650971559019556607258716169767578056024140204099984717260856974034250018691616165579573098581528831153793624430103932138180649912354040439550037513780259663266479868050326608243778576230680538921274144357973754886524151665516782324322845776692551486106853844192640504011262031130624176824839563933385209151949846921188631647306303558923808579047421554488223297501459213320974038357249845419726968688735944445005245809667367206191051609302143876181920774336731191046458942859503041026185359282385288268704728453351736286481734663266232412449287349220335520437539842277599459930309586092726453807852899971723356878658605590892134207278391623618418979794309187368342507646544942243165715996879296884684962503507509990578336027253079241363590431501690377298967021049998788885207686559497974813522753550877492444104804866222852334201763573822169284514793479562257609797804322896396639687952662735201191989584143263932082008217972590692956016537846238351222615779582698483820111198485123903344114912047868858107050704370100255786809444394230459751330079467966888903608595309829705600177157036459669054168142619300240938520246699604949278800244896801461455217501772357839429616824242263560186606395212912179345116596041549238864085489340229615451677752104667066665903950069136916930022668727925806672494941674130936758187956353727235630150115457306934089756790977543551086450568055556945012429915149719247116234938323470220912258472906608055971256036976663645261621362474919598070696384431787821329474000079220700241224953499737109925788835037510437249606985677361914130965085774676991901463859449767937997466017549323752742302908906782932861638348631106873527155012144882682144131199621286912187477823389085607440331538630520061128792541181911890040068675270861598836862644033714858467507721642345456389714422312403187338406067349485504817563519686746733666720623241522523209065057168372343928509271551669704374911166849043434176378591198604743609529758537870371746041052823612220549753231917206611519023586992548048629231673994997219042733884361116122460889345213098124944104214003314391464638503254563125615434142596311421176633301177808646165250398055002150803073288129936121355190875079384957269548728311029998880596901267616341854680638330892723624283002060327748527402645452846956318479287914911978214754481177623622902594322726699821427257531486389984626043997520180237878630024663025721911721212235114379408467623034188339050374900758806602299230661322413242165806725725205766305520732550707742286020896968528055038465870002226533529044869030194547126577051567024402153038415418894628548611123215782961232826806386411232687557891930743520847844053016534554789907433720144375976507084213913066329555525207531386644885552563543029764827666312951465977575412848809351260699288361538832567314666894210383005848252978909129400116274812504512143791478618684402843115081915234544338268668901174087063926130965425310078035565853833400721536540540517317380480518265374560613398465110573062372356231973398505801513298177246554199808474537496503926761629143713833312385646603405179368977771602479668137329314821094991416073361977250775616862171693421686287166632383059798433671687653376452398786462736070584071450221487898645982267778798598651435716631807871493919323287283320300211994542566659250363780154449164098553934286995075513405658275737723958817287729638203821592808734580957488167831873700082767717312278452804705757472898004400550956748719466978648450358261166956362418321034092663465365757816672664302131926046687225583106197576802705670448643158360243118287922415415090701624764453236403103681965306782235383621306414415800958599330424061758354497086015209669924900826825922507445176867141653816860745381775683568143741303597220347645821585942303938593941327601357451240562765866605982103839633231132321401655063178298316558360939067855455327594578408488526113613389093648516723376458557152454520602070419641085759723930082775239185603463314249464022659453938008585049617533445535365227687658159900988309854798419502848606789988208082518385606749675845294935218681595300060207490283964953310719653005029706524622109767396254702397482588537790669381595029040615470714492359448643359279446985633038717177350507399372727550966756675106488782251441365282304216318986006879999771469319127928666012511378572275427822833095545254411046768115370616379861400933995403026954175350476750983284024782599405358163401492653115612973115862601685065449102778195474393166650308453484725235068007931608904149606302759409371776096980583656744363892150066604001446790126100545102215946431028822044038211634896576072985118163984916098877225387600999407318079716053209033389751074981448949120007515911971810640629450557117204569459148854556100899979621229580978233344443744806362530750655128001400999127970260700052515402200433526077869138887788160422128484661434806464989497055453201386926352865173244944722640067410344630853840706068922462951868960666026327556989376097849451919037116915341603832402317532749650043141137021024875680191384501304712252822569782928033840930914299708116754303520166984774786668300995806929450396913145911702611395278994268008502421197797981395101043126387239711438551878911938760322807738607758050344583246889107430565506791769162574024685582121042046204070709765217000639873415640209340314648125643207286365268227558267875750801800520995509864244000440408522629083173083668591429687993365972090114324753444386409646561487298655987516212570606956740661039861952706591682382356906358520229571445437125134240060722357842196814292865593518671626848902332635014288840123823731070472034124501190954668587850156937835887066219958573978624517800216179881293705187610431788139200604535868656031195288671023196193994623263209301734143173860699149803085695851075172272806185482199570019212722299883765127352958178945088281302181324335670574090196952787986796487761924145260495986576088719335359531885190832762346233401034089320183948744828465915542070396718668268870740684841448092611755420690697879698039819420832420043137164068658751529592856738058066733305978881148058400711517539420862371387609008650501519729859927002683868447360884846301304390904580790291340905775570328307841205935583914510521056327695641051392545692626778135877535710256185957658314686319894195616127260802717474298443542645660472987047944340561810921484737665144218702600788219243080403802077216610216917585285574030023407016866586809770459026466589174747595640484685123851881781579160160655165875657057558829588601610598782865201380478722037598968296726225728687366906254519325730167591634044938875405621470686904828692845072395655976878909104505150602655092919503242335719738372500581788057622992195248284218339701006829007785959782113482852588459697206412136019085445175814080964419275967539492514566418141381255532878399222980246683425400272365217296369996029745536722634503593212140726503662254157427198370550075222270759848557544878791977093190170354768991384756433666055338513459028666859760321252342014897078795965715150584892720357389208211558384027302641377465464592315268565414787860130683301982390301480307914941309685171125535876974840570348069092082925080619160600143585841542401506998061176858310885995754668287827149436077994157724561063494619256806516355156626165625693097448560385761446023735696571514213196860598681355884247131392355481069413364234735496649380908454578142995621365391832861602088886379568338083146485160086126583208778388660411206403024083070779775977655852679430860401572149691203974797596134809799287985349443424373020671525197275535536205835700032359676968519582095642777212064349321852973875302172547189544088454744753528522261538044257955787686150581517711002053774503644604286280494383009685801633945489393359591591796309735477067034470782784827449893930757299429151954436962799015299255971629702478734102544232195167478321050742216746165895762543021502811364151634886317269641157276002932046266652222822305368261197933553232368902767367427439928374200351757382225606851055486690549410470543730778183643559044321484254179141346820888957133011524266040187428833831404374889930758671177818144302393906500607693278702219335777525812135101720842254332551030067218524125769388704860576942350389034832420168274824518667679255200023884914858091949994779151843379337665775076841895379287287168781665515190118303976828862137665489643035709198045939031603407374388611668074034410751515658679379165767701496790650847283549011543457109847374526632054724184633066933518132841960097789768237953935323607297797186368362612947567006913732777587652265243369506683491722042803616969290437127755174380002076505715752956527282749190906838636337557097439148170135333226711838617882412262548802526758442121453883407090926470063513816072149716867927334606831879338251262648064265726256851986007132715937411989604656949316438093123256124001548777392367293823764945126423150229946127677435639066676504360501385212924149686397109649125431942540820820678371359877417493766858526985022122094231482313494744665113558195514630140994723531260202232092804355492577628012022180439312074422670717379934489384869561619905763673671100059131508537357592390300871979827495434601582560537818713942689174907449103448112973923869325707190212268831025214361223160403906123074618127675607712688742289928576509836599967731436067976663419493228595433679924353164469734587811342803792267083360956520259532717697628423545000553991995740945500280518589491266458306071141631589544360724256666430092444086403473497840042417170954717158032823773644420523627448392451967887301738414295909102873743142781777912914045558841595842690889345981185149623855571267504925365985751169829822374019942694412875349796913192153933209869368466128252117703830588274124213072984421067503851498423711641277874324831440641444085364710157803416527025555013895908281412581000700324795524625366027879913305244317309074061663290017731046954765887944088519100090104550895064765379364695102101599773406217859394445367235685621714137761088104576623339165659273940151817775695016883316032930578525543323006804268800421067446444265812752606934238401733019279748676246890024621817067267123730325302896909407057241251421478814469029277495565040300027902433895750740274211039382087585015308461736418086346775703786090709189767087200172742915515123509624492864356552734814861561704508670496812129678442440741488261996379644833740386168328682316943960696168256564856647508728586250081718569080910954391264481906514227007142401418573002574268579451150620720104808766796702711370051205704908791778376114512861398739246464346527763634939365868967572952841069176485563770096638354423340105601491123052795090518305733648615703106828357898549133344609561283887665469215903343449755729928698073086578365517370441778800797836896679280986687920673891000312276418450186920612418326808799858315781068827404747803769567593372324626803736168031374173084736526769301562814606789574833478325296580687702277244785943850361823121166568719513899610068141014935738437899135178830401850011354240630431327216057945418841472132345924300616359463949450662972661837313372069588060684410364213509519044351882279813010895369340519302764949112696867467936641198192126307037996192327914527985554634363127153785937056383289417016296182967472623201252079178123906207196281437926889150768443618238419457406732842795514619551099257526329700671661831445089240239824778993888680334880205125409435362841313626458493109342302117255791504689929800441378374160613182248385310919978289820628020831427008765782150878630974889671843706463560507019458565058031300091858643765188388810626952308549069097695091981384792281897401852107575900073267828278339474059259164595269884997233838406365979473373757484280958112912946891147308554168250676040214212211583995827345278284412539747470680432374662107277702244754603752821797131716277437028141895566539430589952828176844448484407620401474077292503030096275327442807294445795774306300256784608598895273757263580939555465239545732879121387039157147588685873229793229301254278643974239192695122308234433553815149316959292573266016018535498699474984589182841102264338669004855661889746600784435934763286149920546769994065510771921128087875197456883014581158949730825665818931337748442285304923391988824821966792985584029332846440217294836704018548942750096919560650665971104357216066933495886036968467626784462934124240113856386585907268209385641630200909701982249778840300287245897010838598807768969408845706982997719013621699463344203267114339827867977683799289323184406471796433322645898374949645543972590206332896204894323744169964857147965362415280866005011127158523329482850531199855862127536982820079674441305060403540711631267094298852415101596908865506116126210793587934929363189586442284399660137246574308983093932582313742899059232165084844766702369261508821626607813348722874337193570746301659992440491233227750210640370812034907955852155508401923127268198991797990166120895465844457944446641618461367477305505292019215968878334573655809545795017751715331860458857269486385905190208571048040377600050724027809488724825367232161156763796439422704540722856908990388123529560384532367397204307107963704520479845705276584967893911872016026388642704905397385700346404597209973817889812626275275629273782849422650292849566801411511049213142523736042535170491726268027836072299532105070072297388202849718142481313761532951912459296472302663790242993524513404243321982645486419004760149385013772004702361907556741942180284089991992912216574630887493124639835841742057882957436389909583705167797567075671218083600707475009012675765665273252937958225047958824393460832340120284949018340823555694551129134718251760554261492504717150040941508899368899603278665494075550460572444600640691663881448291809336129389292030382708654904400907151955982180756427535926976362840888895388173192836273662675491507243453928820642257382016346557655942783320555189868890849802937407727418854635018799757832933603924836536290737130445748950915801672623617249068938825651468786058049344676488264709791540828517262540523213806735527804816433832195524028790828806737241075551466118448156316150757903109333632891140309769622265433736326221804163843475423070598460829810364867086870778346864678070492437607219376925490559572248767347384639623167297394605789431049989808377538604923033490528928634240984796239547731677806420157674814402975258157475815206318816880708804365819674369702787821227080623561926709427658945413899980624782360841748908353268411817317504375463229483458518305040418442581301503470538683502320835853524417291536717749293220992034133652189940958004921177925223811852636615739557927287426430540103531083010169265537962704097153646501903456255835931054856126846393311900359838735849474719690409349092749986533883036306097881198729526261376220112842814286929411545035046649913550544802621903140425290713246141752849497302146978281017495084118409064068706529164833659190131330120036485426679090246474686580311586956603783598782654900750758591565313363985524491747783457057895618720062684855875819973792331480679709652797556644620623567945619286269187947608797596599904659708401219171383100098181558966698326407007867409927890865782841853041304442802835773068078479184113060736019153046018604717194267490095893248077401018118728777035064790910686385175432521661133311292510291634467434264911585711188141285341940712727268338741661857262762734199689657902601180632714047502933141253091553110308756191794171955899488958046316473603147134809377904391043473845738231407008722769492519782583307227981371226467024013373678942928939532332835061882869995669560226670814042912414495783513518383268309924394062108918924218716996302360896919089899652447642237000414163537412700590875732837935937513592454922879232906217087143828464522944639516275598387494752280374412530839679590569578872729468789295075203067784329187547967395966908000601458779864172535512475726688667453028620973500769221594568161546907863458731877897209625247565873658882623527459193349957163904983787516886766886059683001682665577084687630205482094229569858366728941792745855312243511800327707809033015073342626071182455447985729848182120245797665166526345625627004124424933735316103440293526552410787120536564947505737742628958424837009521796249417842136077438174213314301262132193777383037729060291362916780442219819510806523070235289568646024657709567590809416858839101671333432174479535112162227067083431501938333112273745897534303693324286738889998570257681393898789815988116451944171324566022851269225387303112853344164759036827162619354697066589924841810623034777708341717436419593208184119834727892768668668157138914938096430817560959076022959128545109032753764861251663168559401590327284053021578968482605700464797780899833107590551072117613263886919514042486692792547585801271614185112393037891311256321669043998708428074029602219337848599214439092175063241317055187725542183997631352173541392712451212389157276228845926480030530484658497893649293285015866028740813331027734021904591230570344377041097458006560692467226736072878092331631984743836495418418724295404933976842035949132900614930336359804834393725275029358399238744193791326370247102472396187969948663336093740425346437300809867131021532843184902257106407445981334757673130640906694112212513976748048186167168646665992076434409079225696226366156633732746096198063589847955276995741772059570145059060289699227716542514500938029812876940574599454645125294927099374134129305664177496597994698444706920829210924653804882482281439150804915641823937119307988352404859912557450488608641839238785935527160681273436710285801314299074721414033483663710819140493524920644310161213193566908163635157716278442907416648724545656451739970946259206244055937753548305006252827363518866939340013258135310659769194312069897150966389406648895466611787924558704683323852224395809341102232779840942847084974868928367744764399133136390608787221991145011554645503122614841668912386531096445378335831438535973792543879673259945941952784787665601878687439645735746546462365442465650112337050626331951327559332328154326335496313778837781419476455251827083665546270813688808389080857253063378215675744456983220696295467798380396662103072934323310075525987101331877505416220499102584120837019895109648526902365760470840934458728135019434471705012170424107892563887228474961229029537221973869339757188481256906389397275321389982293360203102255459118938456816956730514738948883960383085197796819556782444960213337212731674585866677347269623691590820874312449393989613690774313047143051055781337897370826095270934638702638993508023052196815204815342688904980351309412317234686926782561886588253693820578075703278729043760134999515321900224434448771411370089683578450765849122334848649420925936692744657997929953165373602138309787468799793721815168015399852112467150621544701971397122151017161179848790354066398166847653001778149514539106518540431272996851031342749435367310976397364223006845762961484185566273271484904558292611821780129125633383430250364304909883147946519040385462364765222355354050663748186200215443084831858987064100003260410431886820366147918905142701867494617540663850736070299101151834929443401217848990667660672900418551902369010660791147831245123652737891867096256904167830019309293947705436975163628737097483019464471308206170090683085952635362753918289255945551523888863057043520610046825670873289412015551088064629596077191917344964406488408958263485382967006757347186318608118868556053640365721857567660096766801293029246177222509439537906278199433024107238988308780196109952168851347116265028245481175411584750057106616676357826830355857054825134805498873582173204662041893683469826354247961514560651086103912729468437676864895095574589522393408192356882514929209661674378688514263720559369320677391891804815196406141422116096329825892745163011890588284737345692940556031681850172053608346086585990958206756937208347597137778921030043153651326224654119225097355043509188598202202374880428039495771853992781898176082914236997429651040581316034776646464567489504683662888163274606886319137554252514091871292148913639086743046966195007785179876108409156746610266361769339866923990939061214188856298598027650683552456523710482273827350408661316729450455026240023489390021823850319506058149137987553870951925546657421805680839378357767002422613866796872195298996890829824307773759638740029096429024190288929571561524321359545204392730529155600035153655638630802890257643766126573983448844915384868143703363943037963431389464578474652123585468965867790151723639994053630202973747411764689545157904730903254266518758653266107736582378271106649513903669859457640344331513766748433211750245956927598497078618126475105980585931387380989089995193056398998442866572166730680043188328541297123702371134297078957450922453212814463072271475256940043897651765087317738320382595506884213432140615742560269102326133086593690061516046759546059281911714021440835671418173728846390961035361946565250050959656708365713296926315743088306690952570603047468081343408565189739479375522490057016432366355754768548324847188314219027582909326383616665438983642107617317309752914380617568116385242647731966931747236308223520210837336562836973319043065263625117013525194436108354761728396680102582444894031723399233368082372443991473492020193717042683988583147352119702293433074028239460001402204440373315116456836288275036954590190777719572619150936959864151493540813632580676078890897190223951764543333318223910453193470797353838666381096903307793467363933063051268555059797776827817004466986543448870872840863651713520913113326845925797520185569076833453348113322289466398026793745267233557194053405162026505159755685046238216062627183037864532700773947503733914867469067311847312778561244566323753003187443039530918363109317597603581964947814379298566965549671349346661867170809731758547850969419151622104719895945715706748471578714349283378728117374864467252590642650461387627941597543508031248000508099923270992196624030164439011429955608162635842347871295480982676399999016566766300794082324339681270410517193558528928160681386071257168412579296502411989195659894582282730180506053774109190920860299928009843935959244456118297830057783367645137370095468739685063085089638063375127294958940608543395510106898766221845557814948803381894220415926481314720344946849312110780208433340241201282680875493183821317756568925780192325083449940825812384217233151422216987228199632688405143297510574833176213451559602756894281878507176202513291751356025105830774495749242531383588409552452880499253839437424177466115104148016369788871085600380901892612009887097859811360509127060556380806873610950964559969283892764356131048317332207512633844973061256983395915062933643876210366322335604498607410858912645134607343112587458301460488245162445861070460444041927909490798495751399822464768831097243138086070857169495914234813048584673952419872643868236139409566704735213024821091298603415802944799929245825721043411200640596456489837581325208360398520310288236721476297915749174270559260550748234683816894629307017003330208717058346349877128865951628220528719972344917395066774324566178810558879181695063109464912009121778352845305747862844603646447846200872276683599568549438622429448925535270138530060161591086220692422725147716706548673853434160739211885574273174202805835079562126432756944842147474413143479760142804324783520748844551313431755738804640038387321719720411340573823694717013373558694906693677689303326853379181296287031878621895457523066111667925581510378717634226048809568211904880161720022206987704123777575716295948307132160835733080886073278088532985843482255129778741521083015612099123902212420657954919650507605266438726384897927739139003299270231631141205619152712650513013535890531895827004418654494602404068086222931740456995987459522582317290918314526178850783020849623069837871006151324215369348896893432873144532299454405299035323331938901414265960012802045894230375266075237878862120238025350930218283633963208144737784767662273516990199323765853765430857418653152833381935809422340284729047727993108152804767841513108072659746522386143883628784260336288811937701610759114435214149864248023267541758459804421985107611417921532350362543424845209861604525189841943107096215458921496911308296694871148995501228538003859398450928922799849211636968010472503682359216042662280894821675647773393393097356358785950574582518800158438764563001220662646949669363457956743233135944518837244252417801838462618250949370857635509032456030543892917948504407480613502414321514932618010421153772244312676913116160379069309029086122760267672487924586243069509917412761631901907083992587698812545702464106795403404571122761867050504209178777859041663767176131888027683879408213114498130741591514663022147748347972160522426003931019689087006397885785549486566420659102853257662900519441631690108983433453540303891413937000819186192562013423020271505777591267368861465761180541407561901583459746665201090126957988814165738341666079885169999665044155115609132838837020240179561476331108379563406660595964329169268129099521910675821316265712100121034719336013936570730145403563471390584220361287367806198513121404794047994103457436278879334610186978704608772045816592166768724061499003338427082483613403463596154551436469152945603215960413141165993909495109318082550316609236152360822870228735341451941771576498355489245937035520441757271505296914970997002549961376733633577761678762623475525711335673885544264298203356892543919893346996314898115453400233219871396566823812602320521054098729845953511818107322635093791816489203212313635805220270279883210586511999483270479418858174231748170972732354474269835235882610749133855816430828799425111113657695063249806411870926979487851740631007165775213831750995734917126002233286212592066326067676410481854805900317823686827922447430707361587184366206551025431490266557156428787449651359760157287105750005328907294958541619731061151453142788812117857876042579190511440176122529706464211218531635530387880250363349585734141604552893896137190493232325632901656024839249168795957225739110541416264841743978320223495002715732545904196110989510255728424246172075201975577118740919535572660712466171264253153388827308063147438833163191047983010413566217377004698886714737355539739400906697623727366402962622976201790799435225617322438259435046647038977882038992920888607489183145050364606581648908579152199296085737709027831141664561650635701299595390795996528306740445125895599362529252292218684656052086881585288150656205265799308192564196672313177946398979171354542149450471099016593620591511945649346267006261054901373224995133456602711530363819199842201736480296100934008094194906805509481883072061665012612353163350447991673724082355017466325311741640019538878592068462297667519977706307845879896369272984118826509737835962529534456319840735780281134477493841621880184284324069614020834123871405299453091504611753846063961819265758501171266558043360459476851893370372043985625599670207068677774230608984746073021551502837194854804416691346308308396058114399975289392615421382685362564696732094638793058239279777675836338273209290232087305181137283591799424358335563993640844495444283373953018346752928783674450000969009915395128881549431675776318601688674583215987183559946710556160341831910034911024665472293046367313238667502588650701799679140389118980104308507503483579349871279431728990056647056655654273700055819886467658150808863336924639676870716118708987568782918704696462582147002636139884429587477730990997774889167987874648269958230900274759920981163312135612911226764926775405600110594141407083140214748956228175710837047884002738375869870503291181665800771078882165086838852112360836957589630372069949112157645600667628237201156645898464779758552400127237384773888547602164675378286616211241483552952687929509910517373075937809174105379992592406815462941382727109930938944819879420371654973915159262913090077344927563682889217999354818946166198170633697880996088733388196792692911376321827143126950783353865816035199053300946547964379681748482533835444412601728364999881487225930028008396063541328999817712310812035341377785498431580058751221174603485366190259139854556325896298467304155557525553692881299718746893829320651413510678840797248772063468738371680924787216464453033653897504049067941708657594063720905898073785727866560287467522657161220394642677683158311319355248654360542574632289107218400012007287028984501517016202954301994822086011882511971565354736692290298633647730402691338821565899624172362784707342541418348552750477089527268762961691897200353490510557777320101668776671348931940619206387614853984054020692123604729509505419317278958156082107516883615192086582995797935408844113663909211390112554219066208227370099431871368024649721706645090751589231937909813702492941705173250728351076338562042242067012667309474519872521742319976106269595615473728683643759610897993778807610710556881084133627391197298193369677649384664870060740509882156228578279483352238773015990025065032743378602456010360842389026990293549602223109101772230100805168846541166356985099190915105940982104859544647767126554569784543505216452947795430362099606494494025214939180650408182874530866291383987753995548557723269193374338064516168915548775235187238012408592192879160627416631945025489803476042155052635743657265903745944274725537241333372555424518092065917167717525288231168104628005714447520168675529836904082426167385969641728423258719371963833420105303505124559756910570868945038531960458945236067569758305219560035790757244699213576255356710627456938576616827032839116687240209485415222998966008101210665099352251615262786113117869227563763885279861287034964014291648537949728640328867105868593011822586374657862120461318408868475154797958670191320777601429775689060518142980410135877634329765424987794855949199739925673671145278209333217658932986539429947415757340333515212957630014221854317676040235636553053121693208772587275473189456553232249388437409632617748536497225984142076035258572137460779826674539209679231998820762930919071866516422670406680634041659331178944370150593189653973406911629643395375570585682405554210291967673500082077188915594088384663977999310866660623511251522304193258030673001473259763594956409441647253037481371928597904510350717225808828504215408804481352743744457053066111322211152703875787986425748837721631404956422058716805470641009543027095986455618510673157854947688086187372628332735106453220467340629448019236026899015284701087731984678423295944743832822092690162384916524277441736199176236773856405296960806215535321169513660088537648666664954310186407594632132429881449561342049813565104229837580647835294332231182530101434305548322036709837718369767342723955463941387815449825676563467045883814726164504386831128682747228203435845478549418342143633160989363371209397616970080203912925649150838126918440760130220091987629405276441341855739932794018768365443743411563468238950155588561202620253655795069627204855202000369156771613068579740559789650246698820334528533143007320389513661760433234943066652586234584521883885548975986769895856133255405800885938938485717445536380852193414865935657090631648263804020147309300592663330559754746678007417683969028659990944133358894602203819143661105153387053462748099731798625503155528308844233719489870271454843881598489426270903351904017692826596530798301200905857067201771656268303427926447028899601848640907054340686664946194050935893069530398108901728329356019860748875237672972078573032501595049910035059847496905459646413345577706733129093183441168777825015335503325536296893899817186246453825072207692149923287751083776040884640624458157979243461860707946451644810102903486486147676540009720651245099761414291725068219970188489740757329367125736703089757284329457218661984824110125134793577166901191443587461765891758047530492853927539485942665823312890185435459666286280967637352712894257020700107445087239050522552741487474095570357291948061238349368318659305740504697632796932845518560246153250188050239179522975745554424450868686456940102957548968062323974010522118068455579667768548618641769378932438819438215715300448451563788792076175677411560758046804450694912678100572278186716760014961710592502854420077132196832288655327700840461682390061650927457377791775929089539972403022247871239729729241368435050822892088828296592672690694630740665247377825551460907210777357291120314282744053166312186395104304308503147009371213804925848641462287343374560022763547451726241192381964840670350923279502846737573430714316533417998561435602626170469079671128133542743819046337571670220597106295127972279809987266518666360771434877065996867218982568807456326894327819489198732520492124794547793242966882361768532914612701284924089299171717240728849409458516789180739883779798355129184517973181356803016183739852524803779235248217184291051588804016853796112696677527616839035026567136306463524890523238792765642951448556892801871638460085162745289406819155861022778149094181137291598625801630264114255948910502600614617949108923815513736398234571600355961770912023322954314737568920232431059889589358480730183560015857925595345888785225533806679469065443637388745168254703037708025635634991346167078307965428169120901432017053126340859096002011201130504058797698998061989279091463409841270361153945638021952364089135468282153888848462681331235812525348172260635133610716739073153150895353716576678675015920732548335277306349305020246268725966561203559711171338579485744175495967061370328029838942866411976196241950949083551192747461742231630670961713292996562698956500108425372399071576659364293560993635476828014741160946790721916571654589843109581230601922186097747615703623768057148909460325256781195243454569881567222016148586161216322180885056048076306674950729168553443447046917859134931722641068282157060122962447837030125544937765915900557909123004723001808484282518876065892145327058924258822735414620722280873714788010755978972143093625137587560853232679572478102845704003337280315485317160703899041076268961756564224417455943160361078436800780552215906348377388086327522415365637288939837115757748884050096517200235635439743565960646289878569790647191191572453644024437427160073187136167501736761460684812421512206293338720307908932327774113990917847125603234448758213727272221807510329548213934853845573500231271141389239544492022436133925043543838579284030785065767291561538975979999935152213927410880602683751169942651111865799814082309035509594841642129830934890862176237592182820172039179182018707227979883070424218909333836488279679158347223865758321816903455908883249067155690913984343965161357663515389971719529900171024886940370883802237342784252519967612655329243261737380867549915579539202161679123316991073833567750702058551840554693164718166707325576770764407661401089288302179801179099547444878578295652834542664222961664914721024420977559981044386947816797892417467518878331321251852369032289150819329013846293548465739377396256728856111784503189758368650656137789589189776592600025608390333279398274412302348877074979766587131219413688392465703148107785984233805188638223381281362691251892727943526968554409205059240275502676735543045175196170137428373106283950255448775222311638601082048869869802788044219764159201093147040240981611469662780081166355432615465630445565432904507338623410157718649420400007143565663294606419577814238746633988044445765883512441930289935421342947684113799388058111910615603405118374511798865826247093681515197444091922814742358673055928038910457886561527300341877717769703290868254964519913265573996374101712092355648668840215432660683689295761988647633186547607698310429781631404881438871918050011108759089812104224919227663363274989101611681821499570884637990336759651483616803223089376595500792930547838615291917770766874574523697014447145403400842760807187516250772532760219193038853409637691987122208075646314250289682987720483404265285675859068532359325999013311794155633814678019990464937596496015309075628225701111351330344247412674963223179932690228894561237391560470401465511164932527771095202605076183320881504049796368044535946487562554877907769670127098699433180523217018148917517057205485527309307085960156329410933842164307728385400724542936261502036567309552167170638154915344927137344887674682184907678677237975280342062791166317141036847728217964497547876418558868061538880403882313744158817333344715374020842111566181580531994915643922210369789629015174407041792523992666490960702577481808005164403796122354368096060494920464277410375299896251054919231103987550284587443168059101416343860461483047064299981107812703781835479280264198189414637760872751896008203708745868730595404518770082768055632499704657362942537698212391582583150796983931912736890446217787622179139639937012960368976570565027870121700656127130241010979408299052477726569349726390671564662227549294532276063712403320880222167002276345177271319013896681620518363451814849289489560272011738981626272565714898711914810606382264119705825424959614748021197531940456510726912499868934371224927622384393387556449110411500583110387087628830511294103896857295394213091027289774833168764820844740997145224181600374191426832680332803307898585807350208056343665762819716291987606846526701894234277719013528677939843264805901466985076797542074561157894698209878150641027994109246740148932082440313926523881581021048058623791657618365100724366499758260962074853245061735815745748188946460029394360548457558805667412795771319145030345328879075687473022519662867739205673618615596395220743848062104005840571416377117277335107335266724961999257552342060553798295535664524901866599907286390676015045120833519462979621180317615498978208108261146251321953177933944325229699885399443939855686574350623517768613977093487232787608392809519509864182682945973563716025589195415034307229127133701608265372547375569135901734168670674047633952935003035576397036658907817040787146696313031804246247897038870619831380557137433535492085619168134610476045566469581599238732070209157435436467197474253815894225049885769228163760512125457409378919946916582200671989238986131120038697333034275159149025358010055205254026137480589897861975377906983963240585130885252775092383859280311481777156887501911604138750701865923614593388113665108550461536223268574540332676994763197879254218906162003727286162473489897694513670264979729384628702360206381075506835470670282228677876326176219876777319598906287471263487725329929054277465484360436270406988982597693594627081111078999833259956463657340622957923723817687383326249227357415630592040984616344136672045231459534721877028975843473126906257877559100310727221945799129280254177744521656328063642532606971161749846687395823207223553112551005598184109746561905270751469009310152285211506048925331779610225244001104237476373560909211677743730071470113239025982233330793720226241200736712300139630210554795003155017656961587773086140507405778685189155268719527902004707366923119604901089878613836582845948311583754284265257436996834305152660373317847836157750084713360031549647184917524465055917283030452520578164752340089357075779979395678109454802896642183442399650293526312722243904499006135027764810966867052992967600097088781117714027668219160465766930699535477067127179377297934125214640292397370730865035511255543810352695637053348019573164552986165734677221313031479689572790893294625740050719225099642622847330574444653847483333156229856585492347935819447906219288651772623559297619747243379415947897519185822958808658556000118995196433431652801169015768933790269962494078542976226864841180034555641317768877188948221847305350896145409721539342267065533423762972017740421125542918314640032123904038295098551430515786921748319511913938912401135189105496770918204107812972290976921930749529896552951887619082522228715174124688287815208984302943762584479631475389001171542558460560687025968863819435518055923368783821678323163918602950354476866850144650069730314528538809067996206965985172123265918101554102189050393982657826337047732022080772801048999678507673604973814921611299586222424489455013086757191027045366690622504327808645728543611887644451300980268808802941806964652110890551857869156592372670884796291131584983192434798468241963899009680663652933259281168410211189952720677529433914298205031190171534717272627897855277805226724791420262375043483097905489789779678660915081815822449097509724592332100476862119539415774392703365727333551498211259398933600616328686623383794939446481487254823807657327956642754285791399563379491730024787111373954977677606437070205706128276368746040508395962501013160692924295178952733336088253995043993340063914809053265605247246657461120163760442632412324022070308742742692861955635027152577851415721032896711391005846847638548463477502327723274751166730810154291451067982039785539930429389459294195788470469063365990031685077731995900188680211678223545883628064711738845105771651232732977363345851823592775142196923958598334493032934191957110126530035555346351845916088953560163493756176244351342150902711851932587607178063163717265930553300758840863826309952611307063163449114450494272402771712285955571507338569920750176225394542982741829206050903416888222499815169211975243830113410542066665846453069009309215472091786660480988639137180446926369104544695682218332639864320606702270761895690937653076173609716155592972817081171742312329154828590473049062462216501862127509663958300705264551172668574059023959377647811375751095023937792664432459737704824739345139764852602430950292772064017650307796244160053982239537478636284562873617896371881800796722270079519341972722041558304989214967272016483450214859824468275596378340447976325724639677940222505945757022330398699151157990791718115540459636048284379538897269241364665263520265163071159764911431117130362408593975231679717949437943632080571984236544420315809262957502740841811727960761542799388320104492484286596454620580625018531116481484147463650874251904929211547353916548335095906322099358459164406618989500183027028642154590309804133280574829105038881164255938290220466575353302782626370769539155031390939529556396028501734562780950913126534964684431651583264894579969799018730933011928739940257386241853059722245016133577670779201808034173888460372159349750486427638619754565951501384398865110356216574194741009991438103290455775036210067621665552976320642145415079696563589172307632293086410073102071694899134389754658354997397774651514429669467285748304366634634115396628319843141778699585405521225374047768821949457548921220077679063616837794555291608862722938998900319084771979722882518064252693851915298972168456672545387976468408633065510481008939668393203967904158000026955903532903231986994088984704137440952933582436914505035011607555669841675964151344243928503962531337559635739519832950647482147261029909788027798250243869038426220182482543635295852871863115389188946797329956966244161364821547983444475005288759321095864236240100975870100978367064858197700356684011575048994459607400786477899656012500207227558363841264250191477158969798276512581967252080099106679133083278084031952744764623029682400332084208746171321317088392551254896674682433287901479532736528982076290211568191304852555693516456057231266562146293661717014946168512536228409914609270583139837740566789121889511946028701737790304604325548662246080475821962444859511694008407252635727842347842605859506652591853868991022621688273651370482014027083325640275216730858595440635633621695230053095212571149145862753766096195751302640188330564253132697918228621565720079190157345667565797565673967577488699252283775779224635269397083515101615583667265311505805486093016350977395069464784090986571068977633762863344555139295402812979072679357679618867472510068229623982062710232695533892111991703515619980243391149657902837324277799651182917781168923088911079191252459135605713685043129464818434358275345126879073637956382390176229940958201951515233258240396604241260104469945998266299542555525353910044765825289694065607874888741900994538006599749212227101620836760198587044572874425504655682312282819553872460751309846994753520559852134286301681131849916125364453275253236628172889094201660911013258530930189812546849095044178471473532306539771907865514934609934508691911400110497789680433071399524924447856712808853910408101522870275577229313848664056883193107742135169716224177455251604117424665208685603943781018701159315536720584073857498334524924108975342559928554208969665801588393818312958023965927152131595471494685651169134772056281571001194930692647648265621661416987038562673115391678550900668557023320056121154778524394888193616012185810533817986633201549553173527948342830255911542897713844321623872072820287609917167607526549425711625727052810226718399694347567457023198060416003927093267461005090479339786373404120084477325696004627800468488212783723695017785588295898006064205734076005397175091244963391186644857069126930841250800718212046951032848365207284047332334146858887525424132280332080913467490879358284917447313920697954208061855643918079074936319788241749606748470442207582181845386946915438805272130697748648603785242248577458058998070743279200679044887979301842073096727524725678092862468429146290059315752449379554225898056807781150087843162252161988543929229631235200321005807089037084250293716357011219197934792884978492793216728507052784028590969659449642069277949023589432124174201237685664538349807839856718271612145554160652771532248959276475372646707704368728161781830964476684395835340664669514273784834415557783604837996334435929184744805034891138929457612380939302394669646726382114065716844687226860647404067572085452723767829744989059980683949485424527892932491406763045987503851617212390563179386387144185703420687152605999835933519457412266805028082036795976092933198871544672098697012200651907532594431528757779109097842729618753250961628558936912472268124317330205687715313097868278618611093461890724006160447385300499560485748388958230128897980021906406546469595051074814213881175929931473725124365200898345044820334683964445703675239749865566373500390084004396457004720420697002740450476113837149000847541068236115988949237918886090126453118009844750085784022193859019939935446756349676140484530171268678066046011944478557706879883426400731354634625487551120758408287126325736870711288607812564399201633639545500406484421475554638639238767419043229752599700894654637096113410473216272445222466515119013189467700822260391895626505876750454702633132677167968631061158593950113605967715896032671081211390156069753808421075637273061637902835020461715326692148201862205487505016914455459990180382560915736633567214496262248307873607364890761644047237115085048854361325126579604308368213873803419552561645167326747531979253000426029822210376680653907567471007387615492875040768007563716016146501565232653909670319261984848186211325944038876175019415509967916660616766895135345421338988913456799427194908914763537804603499306791871481923864621873036278619134957074231066139959211647382344106064716364907167138974985373525923167941352250962141702276590986661222668471733965334990570533466242754010804075621638088241261767205906713941175375290910219989562109111526783022104769330375807410681118476110688587906316850384471282812764529953831710189001378269019412705699871995161541162109079090046422879724051282932289944252768589322252564947895024159936262187511191537791129285346632277892973554800578362146157777858245124216293965650195507515979294476553473296930486801177150108401312812548093852209074340172023339322478413789634578134909247958877251708221579051798085148892875181994604058977606313526652862957656150103798635206264576892601706741332976303173915509227823072990613289501418334980851358389965035825563012403840979033691562783967891799220360561097829477203091414090753722838964805047227447167136009215933670222573143821488870593662653224385501108074203262464442173200956719253757506198820311882285564548636211130847010902345102083653268889742000494445761397597704013147834679144209091778281946745609144964098261377223017763593052188615772246151128079575972300227393939374728218210221454572265321250550428986131263826025438897828300177024212989959462307197678552239219543847943655596330088166292791060482533717045551732650072739898969928158607113537246980557951006509516092099265807075207851175109710382243489914706141299194844855607783224921686907276852204266679283370535354304788996853372524879002755666769663719914870514123259134246938941658839478042699350866274398435923456672885561113649436306504961454650464574859037884972319151505381630836273361240394241390160496533676191766452251326614729350207007877065186037037404284439043849447701843837799198085265950972984377898440114134211780642650475250839156584812589058094454748483780865583428459177219192072099333323371805730093968636571857986678249572169177767062882198114464486978107500401241187633972906400798042060105147987514864496741299429157113661338174125741230990177348633742304586214173087957643446268508519726787432255377918388712258735821082251508525992937263314478407303768840558137028328069913212741083097688179959154354969965612381317668399187055864886452620988313694838989799603887717288856623792995244096769885912365261946317107869305836505693774299576490693701040710157409117944136499235174858988735677385986506889998061241707613262550257419450245920974906005630489822954871815606652363564671566429369815945850250645566244915789553512286959776841103947193905018012146961436433130837528667921308179050562377781714918427497342800804112616214847476774086173185906060219997796763874594272589096023013298015817662291625895426558631009831825522399272040505793849805251296408821128561069433691869712268313114139466944497831878824178372397772729832244768286584986387115776126406757901479683522755409991884543478551137336951898202422979272921392860343845533809045454713991769649919317303236178250434886605082528733609324096345659849638809105791503897363073050863332499885886790267438447234764135157941352546153029329195232747965313968595284480334799489052193965394303678473158551704669928046206060562797926749331063882522238201840800166546178992609005558257884383465838899450024032222823447605106334476160711188257458853508076461969044771854099694031947294887424276615479420122359298367138805442726884630115860208483427540892249121361801292501094787707432328969844783768752990782750712043882803235033695954256661011051643911982780885314884757984587493948137572809971114046590270580349350058453608675877683552093934345070218834185133300212772621970248519260502975222551045604601449066311728892773859087985494749923206008634336038485992187758891874269164301920900506192984144079547399098908736918057500922190390496059344666200325049894732801929796241896144011869127100654101323081347863757369419488943239854954496002828792284363824255444319264633323466143203250732990473667659644881084648824773093107780401271474513576740461325392592707951203555884457862749183944355788454297627938946727070647970398201096233743380717932105871559674976071208581371846375206865398285442928301289774390760853501488758853107271549297679543665381921091448139142966867467387625964811332536751281210389223161079307579074605843592553767675480702922703391370260017067146431790634549233317502875186816462397149925111336176301664268373708417986575724453949392116900507865935581043409519231329702782846083801622027264666242620893431377134060888451586163392933172776979296961089758963062350999325284819036518571451745733104304465668336228372676986074908596782934123827243233485503253161679482475062694915743918001441474948794070230621916842452558080575209793194438811030000570323046626378675360915344712838521678524545762646987947178991408751360410691778568769457613523865991655143899215744003975232517413849670228720709646914006568887183228687763129019204811460127985584339690505324909929031807253252406300904156114920707626159357651645100995458610233184767768520954071230930278574021012135296795534984897427370690292775404650311265408502985084704330126612253970529969802160152920913855219324918782790567905405680451030659939137337160492121729815030846526925869469607441980436752851625930866808572674733755215857758635804491261746665245607571591202068663748923005676520038798550303265758172499053996393364113940279163771546079297209990631245565916611779688930273166079521117979250344059109500148162852314467922975095670478199074236424578768005030507940309613613556429614427975960446993460548944026190396808900052329526576080484741195839595109116316415330982057847243328007000476999648172257659700763044614336874038405915172332570731396301019136260778943390999904820011657097500916623716629584211250128342412207886446436048607132923314220316681924130247002246547195110160617505169925306839716596020113635055035509693229463010827208670377407908547258336737792562502217170078395618884661584585358597221412009183555100939326832112678543812075624425059327428349271986273302251576763057685231686723986705600015090607427961774915073838429724728512844148101378189451062995578395297809187988438014922082998635220631631999914394672766271666301495907146269217901208063620447965209003862666448109751266453151892407615241894068832986715283458334781451334413915386297611618103695165280054678100590002520438146992115468068563911271760247980981397995257356935600407977451418889959859035434206869810013472942383922720409090460587383704517121388169355617099476618772368385443186298629936632062725652373418124918292920581583030153626557312133227385991398236158119762101177970910626186879245922125047689688155156541143577147178778506313817735511832784724636864728990606699897097461241845587231594642225772934352664109041712461786726001804249977831126922524035016657020307413859430081570482684532821309459743030652819054335990443487517504307039376217980015503219831745611132525449210492234726128962905730245197119785402671872002245623664413813063904972880683872596863522076046015137206829617409472954017375309156527428953396840695699095534578091625767612699096738867594104865849041790256641716072323791008750425119093991232026863692103605915855513437625443992723814354603644025676520062875258817396215583379774482402245700984714977944261014916127714557987833303172748171957754792203893961243547837971468097778326434622248172894285302343564090659709986442595383078908345592508729242136221586756072633047684645194174632667460185453382535162488540607226944262335413507758103030840226990222143555509198418848904702313258745820700295129658738247100179705834637398863345110785205798130282176342942951646348702180161217906965881616276077876244898502939630549311928744819370368666880063396548708466555462008495161042327085978322401396377357350817518809322635745582616885075737221828412279106100651565264198996707623934571160727887783041729852444494946705180668381144336259521812265063114494986528271074822772618990489798205803834827248314051161256733668384121647975292040054989649823058950777503023087352069718378307171510501713484636453219621471922040474520967321870891324093502618614569422571833633283896917112743399630768891589766062693502868733236465157445551131007514342514335025978338797393596308361009644950193792973949230526050185968396164231410778083854739662241026504325229673138531575813683872754927866379273119498200444285253003893819928743114599940327688157961903326947792782034923381691662574513196932487381789120153934612427029213692076795412887557637075189950945095821730231946928288876610551478315969597922371708876387909121777330300824995969552867708264149524737001105382624280720383872656035857582883972227157015101199842717392853893140484313018087068535837306205199596359776576582057853420269150454648861150680983782146294354907598670184946249781524141158771085691079602007440882217066838282573100590450499978422838307327750815890311159221318784519225395171041965185613217288629189424802645693819927005098497133012359212658851739456253303996128172719808987458130271154361411848614834804979651933016621982039894806462607784410355698839233068791954563478268252327867498957061575926394811754545389043428034434642161890158827489805242889489064422394922236331931018255201621556911718613781583334727410416837781145438597546428535607891394371517782549796335706197138704186973976289560333939411160570036882545183286324896469013334188393975832316775528909904277406593839396110288154373342081202699178273977011052620485546601170580505725001459591382350713200333987168564421843086776806495420779834971680210595343794596283636451658248582099880126422910398890784943956870445066509016597708108498382924457979207550095952494686767595304489151006167288997437453122186169449507064507766502216023208343490934916376889246057301596092610586321860334646845914489228712582501324180006076983604246368798154351671060891770152458546756179023483494924387575440614650246677587479183597884853807170473339453034875253996316912836721385153659523232771761276218039693388333780514143291221699868305739918061778546185540978553980795259637205213376122316112659848250387583438296579512795491328389158529167770383586236988508430475743686196819473021875441965310257934425407777168625271698210162914204489416376514161351750622932420877694865809354910334499468766078158943659968022611210838775270105883707224805842905416308850557535200812919568019266628747376734808227136850881984460975355650465790853621848895124523431557027132835376326883540888474153093670002989278315008855710917331112879365655499074697827036358718745455208140167441447914271882114586294553201012612291028403287929355747284726819853200294324687826246181716148034506736106084177851855499336363539656909121666169774131043544116426063891134943968314505306340098630140454009355262454863558173408649527710071280197460641183142223252269297520540010655961058074356414356172805592715017693692411942539478807155434058913651243848738463590123243964849308579383651395413126364813315122533084022121551581871706224623504991953772509373230564240418108100185000840450049753901224440281642867493234368477447189125634819323712380564294305247019920168530129563938975605126793989112537383247750497280661853887397821106717593836914641500221688079336898422781299070190355273523717110183558062660906890119439854173970967171673693818872538417677144101779636785313149390152082022855490019362963439100086268938808264412537450780861249730179835888920505933806343562806278473876579660123389635831936870364708163499139666000090787561051869916429115405566894401335104319465507735848301843212682039000395231775074579610650308769207457525842313551594198412930511430771583643527421859762392913416119862734618605454855277830688270375738182085054039647039391654658743142699756371581447818340380205771291789822910916784109694316999338082824402159352691701446036289160486476953994956759144081507986666386917069606300835252108454162828509698832888497836835352579538366905208019268653989009991450710282518852093680431678989141978780499383926420736475740361603330426142809460664482023386732369009979295237827906900471646617414530067430998508770235448919583581979225897015024735859889902908740979430629119906108969086043313605404293239325732295304835505006637025127569098752335670399063527473831154933158749451541126760393371661154552740845692548542670751506410410538161258589296966882467773998368100100408536237190043114507441703259578366493029820553648660043923837455967350932312743787823354831562950434953298087827770396827053403602017843649276862049680046122327723812497335927392453678694036562671651016243338700377069010484036770139064319530445575148521713356058706064069157257573558967858079694882695252228631591238072492265722466865270487069116526529910676618256624442651361804052439952773166091549050150529655595168118397794675325328495680637914393870575201781997668468348381027027302118362279667689348902034122577045385681629735834005912735722774658235654608492030581969567378191399758519041302587560092942913594715682005591886385399261475826339756100087714258361178078670812310011697581548723999179849588515007517814186656712007407966422253234347470871961466314169053174788138131877844774065652894085445176537881805384255707273087650423499143832810221734753633088034186711858322670761411290790921585884065908003151455331327196755681399618256490428584389729878124963832108646650779930797718470446262571131800108662926829752300699141318315010152855149730543553338913566804845940900945976510455868295873710994820584560184788744629901196505693499240208817559068040595354693306596432646229125353580758058980758642290934252982800255996233166159052077765887352990914772338714952500020118212843905814420057321827378098184094292545152787897342321894267490368680725178562977829427320675559040058914975188488635398931988963684598310177834435314601506704517060036170008652933384219754946618374507977840475447510966694562905456035960777386513899536975522841329171893892552191088164780326645406404567535809864625997722277956235207647537995856452679089386057455147300093321311312003772195596999622423159009944360319819145003127473329621970570659677092045212386611652518475564189344656928033393016375672942566122839209006297735475179231470377228278166491014381779262854775599613678593217783158229890784755348734338197748453822390181295873104873974965258738286842902974785312018390234251146404726497303466766388707754043161140064289626917171534570047526644061202850812347809107744763740373374438606256336559960914174955795346110819758588488258786291562040187676528062175749435692487333947844338964015400372168333201948244406046822007445322215760117081305689011773575488428722940687963676455901952708463124888268664043500011363208249803342233956107833776394040235273940951916206029999060873021894649491536822517047561256563522292668099673835598421848847780644962722928936819359811173987358149052803298596247544600813595306394876291082160598670703074224356058008067643796800571440289101471705407310668670436362645833220394602814405888446806066392424608087192284096685336525184227267649043603735425995881681013302189818999186492433430459440806595650835219409001572525788615970111199299470118444076632677269343615233358408492115272041660677728042679859715821583962661764035660566608556939905089877978405024857040683655251049772791458108141774724871911941887308606055237284194626404512445933272166104230592120235786181888784638866638136781333253755665364485644146386691852328376189506882038196270382538886005270781279552165355094659009881739338506284355036180726970251015842755664131870277149624885736719418742719121723693669042995542913521293877577336444451751446695782831123390795543949145033567238376678291829411995973346547545967260864472661819639371723300250862855628817999718322599059616511917538420974436109350698931176116594815817453234353050587210265156575290986452579174615292483294315983191869235470929277880561777163965840486024033163364495629536519732405003935976701278527294512454139617329109471177996600868366116679237984147452146800552295123998554813124552112220247157843632885137805777409890378953858140609289656517886383665450947602280443469219665908433578392830662929459109643669022452048885526165995168925359122608655981137907669380449622831147086493136208016707356064907638134852317284389337648765818278135836626698462983311717061595217851635450655778488401380565246684319504796657933955726174250138152276740504123421038531479053056622814363728812915133097320411358088243325739255657001040473232410644655620950709309040461069225065596154571335219136943626345463130392621361252964035947286897822547256295228253360245702411539035989242452492169444840453434922426358686251688189373767512268233769452567007982453343799874599118168976314679325722413824094827725974059814597983817024852962527901646250198643589330197982310323086675856233854174951622179234794836318918703493440881863012412947637347693789079072431909367684521440951807880873931316111222793102325218444860844418724233480145565720696464466170893861126268519755039855946971634842775173587678088107331926585314271626106180049509640195417998413200213365424495049604875811934945523903317821898108908261971269277071818223019358336103856659995792071234901002248135962685789490574246641625780241516735867118231048680584332652741450023069161168554460544938270523335336594495941988185116460225032699424431071033695378568847327759571850261673662874257224386095069480009917280835170253860976548326696486027480365903189158173526402547993234886216362863743492525944565657430719474541040666591858470901437200570691440252335560086197354595274315239014156439092699756862963308989980382806660313131587095684596746684246091930952036867764452288767444905428743353583124957559033763787299103936797202975619201371807654275777061819406206000562616521765594739613514479042870453060530296659481166721648332895322009280200716547077532372178495306848183052941796605526470327994230524507147619494097869185440338057389308302276805797080088847063951269049799872559419054782816950020015653002155880781150394781845107226125556490168128362609250470560441478996708890188721242584702062765849781401061704693388034919882511855867278564815780022705708916035432563288255732106693575934769178582519547587223166673686546743537752149733368489036701973657041277367976175447397532116462422198338058622645191655552894632687769430654749476801770207678397220934664911235878568592512622872175426837869618504601079254367109149730616361223721542525395368735642743949744421007170566232604713052547721608979807995305323907131219285450173380982455013133782351728048842558181246011543163612112659080336883561836148147453298703526867678081287361129433447703585932056077145079073489063552412877367099876187885617435929424150616240567481619611988281584777289693859140739406443274219108856912366250489658240501562171008264685622982030542882252027961746100946591018267689624671749579433269669769302611799619110132872548068401021988168378473828174531475709621095303060375002794817657391567960488387226272902022092609902350930238201639947412637652366254814039969485877032397500920005611840357675858380646993948065361126198057725830328931133720126164910486913046059160959373503525932375338641802170628354204084969685136084691928771054874090800608434419463729129729857376322530468346985583993831764212727077637006464212851959761884214985797652503142717765222011298992261326186308221530330038499210875476941204362736705416211580432733454986212813249045527040901444132465065775987809946847949627671747479864574078296536052403906079309551171735844606976019337869183138476635772338217163487748111412506176473844970879569877973762529365402975970075781354347704735349685319704042266407940982484980882538496906390664321426685658392878355423070463399409960569921415564932978430533674963961327375654123815969230142657506430289985523394480390198582235500803803311010494653403255348281347368249549771417768718488854604535724528661621077044119240762104990838522273913869393977556428157445447996854796207505780996734829403820450938097781473530385658752774523150279890478022558237325364853931809058990031712991240507515926171019439826121090604588468873981129567409374529388884511755818939243333536451224344484555798176559757726503067677447299943643961530324986264640224446550939080448407302470265124785014503827128876836564579324944943322182328751059546317155083839249636787698706760491048205903495309926506496657928369353236785435853019689692939161448725187206281633099942207392531611533063068209612734261309194086433215253363245888683205588252430217331203319338517829801620806446140917171459894170824845297638435082488757568369985105611634301493914727435607937462179221674674728927543065136398011160793800826277337110682416156792260606077558279532912882598097693002962170175182694777666966288648916431841373198028681117347404214448180715221085477549488444201855845894017106551928651150338825290512343479191297880304287424192878227304626940314579401471591002140206021173657700919314775400527933297281079670100567260233141253743078970677187843509692771992620102582043287280291120724011701104483850140995376370037150392636389188556559768984900236128144525766878273652036399419584906860010754362939505197345437140053727297060720727800704217237605116464730720729022937525782827856681782077621621338836013900255333217035158424559875777383404613170055772012669198070897501627555649907274485807846232550866904175670941206248158187172782373575929401576062020823091567016078270887583857446958820130356232046188059843009012167944883859559137229078510633604452019953106013407817421559339637780472454379880351371049347801236611859932403843594667305405271824287415182908173108667884668716819816185470747957546472780474868116354870271746845187591386495209674111878969953188093548796615744700463084204839259649644933164360832258122379888227908066673909490116960522215933852052908889288811897129904767281287157140889162255783891150207794660783101767818734839371240086555250793558009618836187082044877889718834322693945714625941615815387360928745447855759170076360025907507006918890659620851613364208119832298422720723801731242606070318221374822731362277064363714996858898998603239082196684433004688565165184779388970948252291991878726043428514714398396902175112480331760631155015436510743640485641159298668173997288994713530675418432446316301800086663283440645965744330553286251350393198004004896692691965017703533620589631746245518034991967016248618524511431711980068239565965141372472751551120465971417318275606875970823049520356329629208911497057993013880171729870596687627949956821611035193731365251216167345535280071279817773800660383905454134005840226604451600661044107939219147420528154405556724067476918775742795536521841104903526208583257844249489493728662149804592500175413653508827726237584931581811894369707321800367819390827558884744594043437069129369984935490154142389664041313423444286040177888571425685678160305378864951818151618533427937695385678274132454306534028394061055837609904608025370973518209460076607670957856260846835689342375588361378992242449399434483421032527264005823058188252454991891709227110895854389405807226858746871872744082197587047702456795183917052074955450405047632642291065819120293213912673228047787083998335774596622019923436650896391670636654077011296841430702403886920625971629253963319336339769201934232926048819328619019638135560227114077904185415170516410533412090529912556149344470189867408524891266970809876477454532433672592105467797952645147253884957709844567397898267986920865352703159233962178328163713943867756116119993134215063087696628885717062144423492103432415767043670224103735566354950149404326281392430836560476528136394186761535995616801558082390531170232682015314858640284498120969199820029455143513562095012857243382691519663851771681934901664695026089026508786902842883051788017293432928913723238384375243314289144620350852338856291083805698012817060300774580123765869352960084305481022465990595686410924721121871178908716833077100581567865051424894052379665225397605761927211025531429912828239254596423128685531266644408149987208412965774029006612901993790112645375391844101660224234964715525766126336952209161563879274441788984142071486689256934206275874449661860128284864985338361860938126606864885911289332303108190427727804734389861903438672309459177436238509059257352656671959515069916746541679852195146244020055019166793237777102649851219752307151762994769287762964796898702162524204797185758034063160951352715252333114332453473430338965841415033220887532041990479770564239102381494248824006659250933887891542361670326091739831789309127320689821946510983928207598521347130492905093190437623011822330925066180803776839687666853519512396746743784043586503764102573591240012749482138557324455354841179612005207803505733753336516874343888122988745133834079921231960134751598550528566104791092108983673710944623869903837160135766773967333433598447835754632347493224188475033574646744645239007428737662596411152541369633566044830447778598491518227691010986873723295263177293131486436561930252782007208694342436124201123578487599160771796707544845690335828172678973200478311257574072484299140149975530156120915076948567136290868021911066536852037056818103855192242637783735168096014278066487843117802488398858664878575813573877807293512059030098483279429767692060171142934961103038044847053670570851877466192553526228954311078522824308010533668265584392393083683976131200424595635423964891179922495735499365325088386172574394046815240697928654876369793468703188469328116147978151576340594235058610559900217819011798456738561668258429257051304474703936941392369012348610138506540252259560291439405794179389326406852081560438994758103085218126484039490169542291814373855347202130760007751897480202623694815891001267310838702276972676374719544908557262672695655870491076445734613194041823110259329639489689955873885041107357751585895593233408948722094967797487157047775056247913321561481664126530132709424259587741449186525095949181330450956314131436923253619362911310328047191023255848661918492299082496498481118413852573680074023959772888839450824829278831956428425229679794974822478619876042110517059085239815735657717739509851263513488704755514175310230725933243183903865704567790317722969894341371480071394014976842693713574915709080599354470822124742199877260749911534315719840524610150680438004605616052043485343246732395516240637664335453211243681979731756400218571877978077770447657921319450858415055207606353513624762060271594205878779853178804233369401104844125691576440544101869403208966825337744927384645219178723028710044439221384169182707707349787986100150693939872758172762710586234479729706519938244598203058826057738947171394496975700209642443931278424197023247578423501220222977890776683382582807959559028758808763338088880116300805132285234998586208401608001135500529919840006288483067676317896769588167333743857189442497097336072515367956494213183737314884981970763231944058023444818887073524681443050902887719089931208716227629438729270579782022212788496628431192319973681256439745150554859582454017546242433237929807929461929830402040632629938683968479736770556294269341527160155777594186014452242934877555507944529175451692038673926460860804540330892950042127278766698423342703080105957863230961976116524829469436523101715879482776273658226631018832020034722976264839059768076478040663048301399300179000312698848392274118277442973291420032522965982685483755886301372653801064041168814522235813493654095532175674582800056860841292823238753444270973866196815153121359507754671099449209856793767270008594510782741024173315306659535430577194738534831281866664827282574129629903592589192214221966296014187427949027314366617673066032803967676886267526809822005656788359302277595950829716654482776795585212008651040831429318691891667245121672324191648499009910010268697528740855128512026798327056438153249440094089242303951103790007032972389822843236995376135188427308692842344360082144925735341845884064737328978752944402076654956870952093178235459961049399069413862869122571912130737434427795762517506551960760764948517602639342479475634499158608272341565505801512506515134735168486582548700636425949340482548508856207279096435733843464907224303621679404363874630783514150870828910023128104636954913644862972950282462853981940800970692066531967592307030063209720566103349696102175444660987861339491112008463795623529444622767883978933093566092503936690362141179931803708543583735660680992631328413875252277500153212455823499172855987654921221791721409322329987267800282330496645508408059883288297764946940349627237516832329828559980288674478321879816000191978978681383413078585585650832122199139012434820440981709677632211377217827667775527232459412470034353497029861820601816118263615493552572960608443450908850587768633722438621528845128127553455999699322228598744552759631771601778943024927662859436609528310714309220989255324306909193646981610219320076953798838014795916589541190427686310469218861006812595557142925843200425584930397278558271575313640588843342252668787404932207401636400226548808803673624676029897077332384567700479595956357467735203529273779337159716211909386104440993851281152063203011795076038137138168542438631831860969228859683600985082213072620304803984475463919967477261062887685635542776922682508965450151727436529238147656491075571604052781287900330928867495666493041068370794676233227173705443466972995253714523310915976963973455587219420604707407454920792364765056314017276490842049476759144776422946809013554844188550736470876184740455435705838168963076503493005488759743046528348373300226559543320759190852996017692302574290525600382355464079243821609696424778624318512636586925877543997693923706224841310007793291683822736517071088075285138069817573825524193337436885672556752577742016959998147491826559329492436502683642609600008099623718697188813422228592255098922439532349892994970436996004142481549399132533714884273330934381374136097449990373364216932089242841933427213246610500765097922182040453590999177507218194040524395635768794728066425578292650359405794777141549947814800295858407454203626861388690753921955234858888171533210175883841082381527391457411893422806335852187696104696941223270143851098143083412900414311249975538389818884743794422464078807953504215817727833964674107022512872505183259559785569865151274430990288172707817576507660625620658892548006861771648477417571546598417612827115967365219436859324640736026940226575351412881837484939725034808743822470955230935109161157260751573634932980707145670601601041968573139860852876294545168292904530423593712388548809717260349420458242136467407021138214795657901169505216375969812770949014032988928789067345252559501686589983497417523100130489444126128074638156635856829041259938189193898310949410691697635266869821547522320771718938038398649341338387390654486778747731605553326507830463608366277185486497728199984096771798678962342874893536397604071639789540763678575654713514243558021340069750319942405964197222258261602551468448144069525285842745140740751692697149552256087405622011615759276754242538657233273403288028142549661548091945961236910368250070646240325688741514036736514266670535047930281328283936374427234882552561611779284595722497764239592424348779895311202978312325661760239144467933892981163453268231539648632705074431951310253641759532812332758304498884808850401553959231886385042699003196286128584272400635802803858181165254610297403681521610395523156309941751838782200585894257263283183727258774752462706316340334415154325090284386662784737765523395859321972219494824412917228663105223335384948388672631546825566338110814514475876766883986472751525236789158009737381910816306299991407682602201939943441726224844683616134744705684033643019499469659111719324556740141132273016533360951221641997044488434363520476867294041170346866472784617517088709166860521379579215016206166425781401639775401639793395916060389618068765557492413023521107414395040844558591092637016132016058569029333676677597227554911490856953162353911579569291491919419481634766785142829804482175450071275819240046774883033205851099847369117442443880253592277264932841630333907730591725089093528457570376269917355713225748052511654410605434945086359114883418460314880612777204558763257793846230754705649547362083092901561010317668180808717904412815737611938680526895245726307275272046015107596626913832998428511757705437285568235133592004913504325604493265674575699318126135103225948640737067373444284978726723358842865339133710869568357387253025675544039136601248027919195431976756939632703821366358164596005815402480774231833505942294512926788147384437758833869283728682368374034809982414597433150994576293301397652290366349841884299582106931903365900992016151823036919013303861314566886161249075727158066226226629270185112435843217179808988074143220966570831407847251903277264543731387209583763561001853468833022239141388094128857402542681342740939210004316553315321799707930502481836290977105944178650324611585204502915098202568051934063772459636725119841731845111497263598802029637828652912365702768091248723354798552466791092991312311429088064184660460370702977953809523449539719264677275762958487456346877967355652672208424686470095431200942611665648671925459002767234469352702905671212217321998217143120588693963318825342592941880833634853854995617783429118342421415850251168255273734696286867477220411522469107126515341246751794013630175406566789416145830437481451081542773044525711079463065327950319827876230290686132752097374987023264513292574825790271394988260752036188231202106941713158748703732859500810370995090969960322060828381102504139494077239269629567750934108492318414732173149892946023286400151053939846588963456745687761848560487602000292503170327755651535230597849164963423230217717649973874288886279869090095322252292689816406253246812668582810842490389482008024560621471811429080668994435627026539218208125434109323940139198047512469995905391113167486472532288709994339166575635608344719739587688893318719944782638192584645665055940161452925655261478345357805685836199949745883898481835491628525583718111484740367400566546525513905952616631653820238801729837107248533256320980571254595002973376211759415430908644616494343521814273191712853594780987902102533889555417394770276138598866212803120194932991888323173916340120132387653815864861880268743115129143872318130328003393843174041221894585115938500104993508972992838810413896356587758734460059703588373580460199888610739448306976948006346556382402030100775797566923304594998306185111011785610269930889926407388154236539440346518468593570175441527208785480152293899754023430361233166851060600887756316141338675011069172698712589778354417181109052774610473084159573213256786379856002121696997119755442520074428680287797986957763734075157185071216178290463561715839321178898432557152120950679576579812305173332156498222465390015398457055332130292257563044753394292939397615743229549890146558744346537145991057914545765880912619167628243432682855727690477696169730608119955696138988013280196350529305271874617004064533123444837395795141260803788760128502482191200014389372894852342473151971883199116137652674138907409295925976025319065507623067804483897263341450847974171192805392242601915379811495174824920746293688404996228763274723104032374043412015708400772339403337183576109805633889132873046745342188526314600792747362731811724376853328531259555290765190344887201499735637003669668415609560428383072757047186097136970655198199295625517884568650563932550474555740037142427969271160786723988363795651018798849759639199396312728620886231319082166931668585931503136907507445631959728693620566358192454627109034187184302262687172112125699166428749166645837624265570926888881314386180570915570092487991836199903819121423104733722926808698202158091566810525716517175690191562705588645645497122379669987885629310800819064194157370306642048311559567705080259347509370011526937223039974851503746469422523101840697383311219757038940906726408063536989965906270054517689646628145715676045911376055759624530754539999533628287740940711256885453055685262037299168133449243572791098527759580358890179405892037342595549798294552376901103316572358290066852786961170246979378304184751505444548404056136166667274113117668196302218335764683672403031861173667843271705446634626400757669186178500858015711074166556364764123409304591987472068652328420908003387971385948867785271578398744424663782841967479121389577262090331628015249546515673492175386113955432996520733035909744645107026940432804717755564888955440043632363508162524869926132900515824600409973048211543407836917158129618795678044786295268687449921037366119884566504419636084706950652314823799340899582508904213392365602573994754880271256337817690647777068425911848389245066116492669596083030038310584674165083205015356674669752438058612907571311375656569477399191998391878520799645535143334322326039343857943765004873963901268509686406457134752937863147554908518325636525438392075823999821178982244460621078289513852275404673409537599019495761306268922205195255230591163631033119136373273339625735129680330781263396832737697345462274689770243296939751882787018024322660365539766432659553204188917405290233248438523502198149593733130540583531435950821193822197501831348801100849524300430797896706288871808272024327417106733025081588223705905456141394140823179448904913134509525956891857470401953485832144079581637214079330459500156703334050002868516583680509550942487324793875621204827709602883225672827147476819050637734833237202181234426248428563919376954448796153219150226951966966559433512505896470005528875952149156769065756181990555240574878885365820180664075748539170619026126050917393168003651594147365870429769996573918229452675395350498584781186744558834123215734206754835455910937301085072830524130189090392289179560300974992232699634631270382372570102367802188743746894627603701592592236108545062017918014100714697199401857266563610720657280297451068135237332143764666776946115031350551621372572273681890917107467679461150528995167101419385296147453723149031757658857590311952807967024312046452668638458141431500737524079955607973587140022052834190851954357969240743145067898532689052404133371963624520861501109216238946715343953371274160794531067531203529318585048253847062838412436653839297937863175364414109605971216916913473954245749114854040672963354412669964313888632619371959202406332155773971088754508168375238193899793644659566684734477027862989087215018219804315162640070857858193500595788311790354609343753757553984925496627675103403437788486339645478590737626583660350933340879458063966527594644097896065694624159467168301964055974466281036089477251544266067151666544617330669437317639145221532302856198313655532662942788194479416906307113768130332687676039931860636852220334437630095416274163803211731223082086350209152756982302573267565490531842937788241747006380383952940573893657439851207734590856593486972739088493570368801253202422360589874613367957861625335049705618760880222076274946230592531197975494393512419490316843426585127115121875843711358678239409987983635746586319398424485756503616461265555506717738110386982929300803661110508807793574180181756328461661545484075318562118713861757352600538030738257522734699906374431123804718329512208742963098468399401537782811568274539337596963362768924225530743259324536120607186294634394904122944525657998514786359877335860326540619937493153585828359975759827890111973143882764973418103641357183711012139376199146288061370209313370765077292325856479924589742071857929433791599409740477525008035819824875382113080109875476524737495565619651783390920023373649418595134788191448645490736500929180531115266526783886788026751545636808906332614034926272648275155158665839722676546122892453915514468083579900296893227971626342544436802753291943758232266829384004144786085173545929357409605515238592292901498752769243397402547403809135684369348397528954235319445374387517105304456476456574006690101451483745729065651922579940275679117911364648537221212079277757938442141014528627639253975238379644023794020559553919681103146193543995887896233855238456350456955125687308090339068619851507328081853924489760440469144054160890487227533997591469979848221692112079840565537253084782186271960932096252060215419013433957275862973619504397891036288326350200659161087232367084422119612791939480269126461717225497373213994923978911376990234239994154366382425885743863082473312144759668190181581507511460528921400595831470821909273975663535703624997970433090226960075778779188029991061768119783299960446438543528271773983906343882139186265659521480901386302880563090970955548809788254532945690148802771373289618305852826733576361284651122544711252194937236467041971058324373504257436300277761049427529383475636019399317299804419255266080680290200095756862248350361482205107307574215318372877839124185390880993920005850341784015111872686327451521413015444259663137171398759205129255756069077420136506530929689506954036717599788044589593602153048872289948407718413837932750877816067348688519888915033123373883595470882021607236561842453549395633387896734203710312472348829812519247196496210792941574217676969992130312592766893600589404494100082516678357241059236215000958298454581844974816596694281044649804347204682544869599536803390865153627412758288844473425727600193965581599670844216833074094608685529222185964798316138140148743318575545740035654317191364823339184364456247892447898151029771628539284589220803121796184347533245019976780937640613228139206370436074578949173011214096021280522885526076915889105305119098705341118273004578462314843600401769249418682437897520684305653856614876099035947441971676104141924127347979297614921897673673148058333652357190596807907573707879667138188228181269024474415593683173604102598530622843282410495993710699388212425175020839398765416841918381821306723487286238679065950831753187089130068309863655186939459537288058948570381882642102298150386461877491912633253371602729105281341250046286181886825236270136558792266837330932556486396816760482958252911852980969918955892066741814999809149971665656366195631075009221879490044388808096781399247356100678515841141538968969513035600968699394914341016371673672047555950616192169302684301224915326761114317875033636298140373415926328231863600882267569914717307934850581832686785738125801349368902226034824183571517606563490417700118023176740840204212362223460949055002703431764782281636069764687269656840962288241576541171644265788115434738245466541442919080736278129783457365544647373573640173624967081883111774933074457766330208333343706624079667417217438507626143942865578390710939222687442039701280883472577816441374384332662440894896933003868895459002540138324371428598607084076474813179101699935017606323082264804651891744190438749956579305992680723607446573801482331910890375238732796821526108622920177243629232882168391240575546602836346153571386052161289694407965285725814179386283974065295248830430292731054423828845469314856334099304189218198925184143503540640662106869548233387096033483248200212658065068319901323997522421058555515589890346977036085552238081259387319976021799123345663135964415609775855870861803792470516101300652203911166003899353811038836141330416829592115238894288280938114905024662144980813416911104095450005400304775251919615297928544529360060918782121801558481933030701783073966759180011653884034900924061843089959827238683196324883461767311855545243418578848644201718125567595107458163592664583260275013615789613047178709300782240085069794185336162651177619696170772455334426090193721327739621177229654079073881970342455232740863505668361109274953294656525470102645380716919761876541372317378810327748965369005680380449066783551434515042978873936738318077418320635812260350879675474248828223261021280705744358778164329394202498583750696596784655205912894504190164633633498028870012868431298838973196830691800378264250691003444857114254008411829270305937609421530344417132462003827092723822248482839660724397584442660869071592993457621533029767580612879575418815943299752471026873604455972437890237871864464994504409094336306220936641646523871882909188689333772244923835037928282131289929131615039452095207914757887395268358008693209987531633031289850538509556821396925721858329266740171216132176917792605365282425462937040813456298942460668609374311462375708100490474532215183449058879979044192969453918576091228126477125669755876003386405225841905197882625447639513422128023660722411122066472651372200088210417963983959588462347403387582532347665371488658987807650737540042917938170999657111920314496329535181917282329615324161516191716418224147494525255230103073543481017359100275408370403987801860916321907660333692717213985954429558529535236241410820900610642298677175242485847222963286221579095778213261115101835577774787328600427805873047734412187261446626509742665277100538754658592559511545701188626842585179401980719054256109909963802006585755884997937498416710667235952518412164258891117443552613108394557332986979803595616699325537729733200513973207318245144057323651879169264895556116355353260459830657735079133707270585115605316764264956273304471224813646865713854040753599161904226259894471352154913004592295741046219717917796648041488025640802025678081868114121932249427611705389063197028848579886684571446043794429549658819421101608329121686157578604309859636055060451660434816967345070365457226540328008170165290538442553293797014351975019675054323336030903456021722309249671567776941412406814085798136232571763170766100484079273135538215546963703985826835887625189255543532466776160950101574922704819224286710393817915319092619342040076875407229346240553501656893458821485751863921438714567229873971410991654801471856036155295748626699177065574118939293180866602394839781523547925781862123563340450974497698203781951933726167216460880034733016652649988592880425512904596993850650948211019219351567350764424665057287516446884652725369530047621741868761288708629843761546572275415045475730716346592378455832497136141617490016383424699498418846088579993055039018125307259590127242434625747514995852692060409807934490732605436393455565552720952611018794044765385128663870568152364110043081837808377718906713646487215362058001149706924136715101408398762363272298943191983251358124997260645725345157646552285698316867161996349488823214473538071236076674977207697298294686998637365411629089084143774145313337704547740280682981635069715192835547278213574595879430403638830167860110717717394979624205770374936284374008958521962030691065183554114023159415422842441827456009991295202044016955158614602659204800433586734116749964218380691233613188095586095950047481438068228971884609108951182832779298764006095222983173364865218561841375082227827414828148447584096310039379301061986868510097830929309290430860960481367203826039317117903366910681302361777290314177560300055718425074391726913865280677837690050562695516643358981370147505636370816104913001119334762818882339570702133049554001525950379524004114139705214894481079970840913915454981193901016033788729069069901396565826142630364905533680559116092375288289954894029895961610404819867496724600903914894730792774394789514427420220289294701253562073389311241708189125327880665253586932581843016188269869778102716358093050218195774473444013933619069758370046981999023230909773714887270072015520449957213941638518518226715901262949233029243308655219906243513805433692596674268806605382448726937463034136502518829238855128750609455054817966904641186500511430245253706299126333626456954457352377237240885529917823900448420404733233279834266143226569553093746503911725194352997128237285559005774054211752010996837576383065637429483163227325756852915456683392285783249338081095467991877140407787411436114132364963333194060114810316238832031866201203493159614707042562837560502535397698448647303209305912050862110793311237009803576612555291926846992417585501709836256821871281902063188057681265622690470993817928076442707600349566333784077011088612065685842676737399430098229267681468551428835778541187927944761294027860818835774682897778689126076919166355215606950952725961459833952341628199738958758221051550265389276705306442297178880110037108935604432491229411337630823819365792912734408211315739195744992243693713027556800003316775795634557812282007796549021031204577709326932599662115710478504940146990996885765310099423315574263063720318374142356719080409084174196780303497063881556893077480696303220596880597843941247935534713609376638190582485583025024679667426281374204560081095228948870007959937818972065992574078657825607289136944778291968093234663903661595438800957448670347887830763756153811973477800777809393036604104008098360296904240585456742878148876677888656869772121300207695330544927322916494401093253839731543076885977390348394950413645792552050609918355317163977307857240588430370484319374019771499901353271796008805276881549314423403136083568289760084404917305878716821768473122037680753144156993623909624842124029416209486794075021256404111432478360485777246894577939944277734399446273445713221836589490891976747287448129371830643702976548452646857973231680674296994236056711172546815108734132138392287185680261027597991819013725171345318280679866686708842361644671317876713534296255714684422794299593887705856431091998743481880328245850220097339781026332727954395631853423803063974748841656096614671221702161848479407218175930801264978651063934514633986140797994140554091212582117852007379740191805743483438642544333078527690537892207269374429582965127187615209431642780008269523349808470330429120514571206478292449849229094769912728656346104310395798702709261765840077503534500595937325308380533992848971535561073642744573996765869686829610639438582838931438617121113277836334157301146225276310739668008809108035565197373592803163755556476610322497421186391168586538374871517609316663532089281192569125289032178447771498166885353608554152671792639135453018755600371691890578758244214996283618025511586742895976567540894925525516531394145964388268079713103800319506117131249470342836807113184434759178565145069105958546861486733863591403117059896958127289415131895636205352879502728657306182798458560591073136612737913648784837749746116022075739718653589495634662294782159720646871670456660110049140948014248843485254912597303308877896510187784374470312259545132110963498408846099852235723191023280933044312192826467750517955417821390969306757178353834695168919085833529452015174350435107304288484042899401346836872801410250328528793669428072173111899646573431136307003243257309788384355873340972952818558211079941866786067587301251319151528844828316335057104939566946163668153555886522605414669783905976258977712109829641590710269273636523515088945560171149634324281158263276536386102165750165756558680147371492507122732218991460852212979210521734246512113523495562185958630346489078242142246882156985207087942877622609055846043234876325523529880125444318980506639784825917460490151102364883320828834505467257351379852920887589537329019170775376989965382478525711855943403966256627637310924753161711702083031488585563155701863467758824956289427962978379675052455690314952303170404877450388709820845073032802129940979178220894633292867359342033254187548037763477803568805263192015737077654065844761088776557415923149608421789768359574889241080958657834902941860633105490492084243631045131410186630044406970361292452056886016476135193738464955002669923177062150775586852176258792180783218732837484226466224384285218515741703734773104277272532931095332844656492343613812165864776915843446461189890456605350655530777880345726077189497414448792375506611888085534367540341298950866803426383503565289580279098076602187163213877994342511855036111249230238974155240434755208823577119073882163377969752537460494866170758223921175247082309338860541438166988363086818658830140790953364244740153487667880577427269637357425143105293336621724339938009977093021412549930227360893231697117466489886342038992119498605627132664349590839333598985728830006162049585370979289598098681797207995748359655994394031740778695114031351890672430333071235959542162998059282469463029159147388679552373290755548607341019354120709699816919271818443640592803589393580801241975170838674710072918880931916906059246995999217390503152060983371982677833132923261411767425033017513575460974685464749679837170454636719248930145089157588150476699163345997243665531620652582261932210325995802177483615311503766305800069091643197094862556281506557479122867916046593768485919973437122633434767361362505301368318518033012885996058306068645196475119441573140568476715676770500591728512579045439347321435622035237174526222523405429156562280254219515446158806469099905121292320894233353811106484690346774280594731107072490549664264020007440180778537853840684909745948275957948134733954518326808349126385338018397176037858573064224869187717762366153298274152443978512766112077781204542169260015369957537661514037286565945092202867421552532403820652963537197318225298293361997336671683369002491755884881247748385723112469354403967718194403560141419542688883020565936903328474979081741021728062121047686677195362152167114393883125871384479638654991912707873227636212651528741891663700583080178265705431789378997172852353291358541293468679664991173001909527574022924364097667252407455848657488637020311572061622425076497174535435494345324245941302681530253915712704186117645890938607018878245800122761130088566698542876557936681930624871787301587422175459445688777185566051232078191345305911729614184166072174984018380870390878521113728195513244060713907785567478288260331037024066898345393942655635611822459761802493239334613581698292868423580767731493460050606428277198059784117027010896166832805213757103678919702190561375270229990936408877504583544521715477240352901040039894582371415132912401249811507018433686643963122747549942185979534577041413937887807844293575870433039142843355376092707039389280673276478194462352970430136439639465711751380265175342707635779566154232868149700383475571356089732813578956780141831485726730759806550541101473629121682058256639219518711370817016282067427351898509829420937878619803652123051378516282583051798129805193210897467896113729113995621116255242683689705923508203975332118473854499328637280740504614870349235513608096803087286953510704741578555766605715582342483641895025299225101289452476294515797836109700181315647270416868364910192716872507570907819506660173664188726034821610938808860838069897370413059034919296551746420241096300697147762877355773019536463498071550364409830835212101859774627825723693806342993922790506200850384035078178510104978475371989595926838627927946087922253063897757918065592251459639217220773960585499797145524943770020290327160450590333034235594968340888513160916444600841530100164194530418280115952746172944034202019530602930812846102383379373457377629961233748916907087552546332292423283383798785793267143707362097227042137253471928010876625930581892202017020044554202650955864799363919899751532128668450843897699199954747635086225810891082797018909778189488254311039371366111672792909130275106765169494196755406920139439673958832705258255685727298296692102380703030769688684878439747516755001123172964356088823315055084950530272445388045063852565224398195025096922785133429972278539495811523571179267496979347721263789575493354603543884785691117386980999897766569847439044078835185490621640716590571297730516122397479187927107500173867678966807958590912707685472776936170081716508218400750617239886780510974605991689435586824446851186440054262744283159951661855527271545885833453143290443505950965444324003423611557583724276593080800338985925352475806339971839482530933806273253473314473987177364499058978139694624263357660892288460425446852889588065194154955774122940611596576643236142827719616490768521206395949409798438921885057013249093689395184261633292409930617411832776950546023129671430935982281796502031991421382419499728429900148660039067309440521286216471903644951459801618709365035553736844872422329022381084875739365563853599903787635440506472605447328219736762681312835283248818145945199730692014941424924193828231147095040417404705943239651608804157565538575773212486825804932727740580856845137308428009667078043710362883222608621592899197466967685759538110687800051729128898023101918990605268714549281284677663897441800851284357972076278606877639744052978621183227184335942481881411972203307440017415186929748172732519553242105058719344442764883485999225997203307244317144509050188974779111265874091872199227175032701508305580517737496952432259079811110870478330409030926539000789428308547282424584840808419668274052709229106384720933091797284933114823286892706785136851835320266138023144789339835085403016181913930860776836648958995367159707485274229749107091504198261373113317524153918569016048267198725475562807847092749129009831769271230896190961442952372103289109663361737626572373085439198287100901461301248188939451454368956209697415249315448767500572845284724744453206459672739901171641090331376120862963075878853548103665926158063638729928545173952037519042388140451009754965777097833465857483591715859091761202467737917070387761689860824538318640344083409165097284740199169894944328719610424968532921820339759678459215970524945340060755867507556966964805608078383616361017280459451458582916847182161189847436477665969732699212850529067541115405333250728185297111193146849318900202169770180489452128053456336770022772838421456195762557587089509450788637894599125193886937864618993203677791218756420420636256340835649232842351800557047851453779254774955712328108089255588905126896940500886309878841317468777365242068099420372860739375562156003265124791714751352170210078106594026121500211440089009817002596080121864778056308386440460811838065160841500343147840944184221277738779286948039056435300092636232221995536140653016648183145277806348742006004961986759896064368607919744958406286086492126577570851698162401990293650118903146076203339929811057958009641863107186782404748230880243167254039257637460998988049408683415648600753715690509449591536270005746000824093978391619176074181468316674077170131611683195509072006570773726130784213028500853814505941835724626226745272297394318265422599396657998625035900020334336964920211053322724401218042275012114865713574108723647013198556925416911068998507427676299293477931182026834885774662798011923570183875170809677382050756818255365311114663588977948580761383289805371877220127539113025490995304042011132840624134734277717455252315270595483301823087143634201470054963035685337427685657783265869977601091719684993744946138536800359474857701454442632258881357624624255635270818320762527333574301617737563157078510973888897220536917095463554169196231485734798172445868001284230604972800889903237532185498659861087829549956882760398632981066794996593727879249690006842889953015940858693962714852116068574598291657426466781920841378526990163549791899050397718208036281764650283780613761843270970596250806658583818515437804693907306036912793312898326307519473264475149640269014272042305990865568918323948100364220801077765115745094254016484866897081979553071690693182289216293046630835232525692263575626127865137066296121937993860005821451685922971370307843932510179385957752805365794559707663444307494032392664218333584359785309103874687875318731786900798225945583725437748335493259640427469255115713738319938624985671218349440638725418547537646168107561156686426100494394836493762126527047750847752325472583333493749548085202217178417371497556708237676475109022185183086173410520978502932007389638571099962221237299129543506149506363917924025364144902766204210375462153744706269302007568490435412128809382064624542889760753529296279054553426706259627148860742759068487914191713532181710390984014890374608458191443459511033558050751788975051960232809890744541302897990763318099446269643378859245803354260711601056507094389798064412987861707584949951905257060721051954960526257590393068638115906831293404181409789041368340195012653270944355177806648159369415791163179502834371173807434971391693412442658933577201490891961940836187464318336832605298991036308384445083691690187575332743789823396364149303767253588065274763645423819158228459837614847746752115313536819787053953816523692664470870329783610897877492150372710758134710709121018803782023906363830939255618723104392292356330761147293845293188123268404380446612863210233395114388071013967277912697563927521069116774583466969674720641519103865436956660092938241871510685161103222623040569586359456807615871910861995171833288389334603589989401343570948024176331729672469764028728027958949726411122721298872055888232272695809089832332788949292368459870208039436487599123271516340892323518613134611490737999361033055271174102349354503848522123919881539810767604501350701842081059040334141066279552232905131101741842358419746443777360876253414835486137682877775047278882925168498373465556643330744117666481953382942016562348510437403128942359183176494855940159151182980654024011011832727914487972018004263267695879164262805982977047136946936643302747244441915427725986917146635781116513897321264960034509176245001006051122452715612138572750903865903906911396329146237884107737657692735816535915145952884020723079995067352371918425960097784515549881227028265586853844093077709086643546481559901053466023380934370862468477178456648562747708916379628662627486486863152367259171757543966136227124169004457951867045481883443880863582603021434548382542647986484038914184941929381089316743447873592069583944946171978240453825370481218303316002036960759898068872175610187115553930096557754849088155588428319774088031811006116659929355545336048251691566165647124102789084071140089414967150834767239126682896704266194394135927959527821465178890144499835499773212947758134127569276054339733911307624293002726146397413277922246161206446237551976543237078412802939112936914120071235909285958329973702977544315818455491061531679662302365167409097118297900127183947507055003676360793716032073160194918011675288106184558498218041355843416494439204449859989940688067502032630583720854207321427421029537100290747917394544764248663084138651437624814613470726872682366457840348477910208174442813183319261614453009715940838384478693664788607045111025969339076906658972427932251054894529697011307475956775362629751253173780261137517130377334181496302856795248168362316790003832962703910222335272558420784072018115158108091875426492755816128419086690831935076066293528295768220499800164659944840594939244654166138573842953357484814929276060134105349558393887777960111388347468719222667269947235959470367657612729941526065142596029326316287293185624892549538169650194799251765377986147061291015311108884086030966963261021515904381392644840440608901458245338501152924441585841153603323636254040466006261639109517471853533303558902618465954166058428979387245813484628602443439838443748248587034677389446208420956551193530231044605497549598137568948395026264018117979880559943534910429140527174690496288373005205387008661111660948916930085734363991210160850961244028212099448356942946383501696908035148836175653472096335446497350737410611197840010166375888544269704880471889680133181105816626350479312480629440740952982870580456878339762459639494664471443520799131608410909878551925507136254420728011969670250070587684555085970803110820581147753353839428911875786999594113376735172114218865601661276142310766974354743991631222927488952122253218891009684535901721979580305367174465056568893733560531577310452166023795288297522590803923796733297294008803649530572847573890724998251241753984711623573708352851694226787717345464857283832268166863703354161473108521323988434597949804854842767162835563860797739433579925328342468893130969296233941899334199642458589735981839521796258713784808879582944336670855796644447165032578430906290900840424825126208447597635273023497931387659161040010085149717619429614570492797774222304144869530399357627154198097376107201683171347422769962059487156464753438977072229622221568266458864642414995636715083127465368566498582108798344693212217355488492970307146998802916900011637179994261620756705559853787822862929048600573705276275870719049463138258852020864707961897952341972748820922799825207489146227089210240424493160849356420056628156440945389369675887872995864306797640648293006842022757382313317149307539591869447515676731628311369028659005564744980479701407279205608124882940980177320918647280582845497676158725607462885871827204790080233533946610679866568399684708785865406620329241012854513179559804601031177223292839860100855933145496505727881483801083654824512099272979813754891897448728887795297976323125976441094288748365721673380842931580202618085363215158541406606216181738478248086460295580013577320532617279873911973468558615061697843348557024180131715071723653465088882008781574003898643155573422264218673740651332513183177954418677743892475314781667359914788880762536600887918864481389951578359642705704754081754655971492991571853983886121308427798822490013790920616276056214350280140660797201025068926173176715749460224971144709167190416472485042163881515396515905194277638205726955211356216347143969722006824664403873244498536173903291791610878281351482738469127974404403595246766974458641765328733289216605753581497299831654659023042005386427040755788285356626384211125444479872277685950899822722350247532539605249566406873905452434240212800996139003088221307423588608255746391739126728233375279865165996273852410963762563218427729082165323070656166463646934073797893720664498575721135269731482073475106218546221425181750891120153611703221348649315948666216676940166014572817476443089985517999210315315451431057432322683805329715796460378157467280819720352633856792612731348293999442998767436095441663748297410689611480641878556906269694310845171683185175999431332237051312064997395617254068820517839711532445386750547186375893564305039729626378584856448573326160167316082252769372201707777592028453141129085105758501342859241086929363428157586653662722344958281920934490124187185619388272793560813923532009139576633868710528494898967863174503731623995994956563604986300667647793196049073632942910166792965838981060100019164672579313663059220330605819137496234451879611973560893059250268965074886189658399791373118090180809986836842583574578965971962906475380042774566036003108218187978905056941432724519740220133276044081041501516114944449407933115920006009768753712370621465124631555830387054562214364577524932769154877733518033320426340042886635399359238605747259431207749838749856854490966685303824288089747056221871576267376138581308307071651017648913652390898556071215850941521959822429255062714673171194545923025599238826307271875114117931838326380720213670004957421339757463008357067017265972763880546074890786572478673894329347489356907975417351392105153415510411384973388543376401357388179572070626448054898252779250208528559857254937026651408283264146096345198477771977380774607323419172063159143824355550791171834114310238091179491748862883104789406651583013174851029917456160439517877575896244886076022353553867592844938227139589310053429031367134603348606772746678483069858081728970057312575606406554791497735704389123040416329924983359134888732097726933798147516923026014646033143049605835211748179011898033418791223962786593092105893130895562069686870489473019274973856466003892563893795203244405714442932699680440095638607119235673157399259890420183077669201895309474359973300004003417544217365584024687800495651672065173032332057673306482568195201940404336327479373511867274956617466307360832384006034103287813432701223238397766244516430341530065634560539308335240313704327680466992270387431858153919284657287417082002588000086396399390166351356524780694005208803040090190143817104010738654688415564415673146701814228314065639231834592027889458625643510076623195358504340037259607328709506088586510108193126714723926445567441796208825707589373629777591789927400832627431174768036302018006641111558243923308971889070716132043035199274313693721760514441613869151159463065074063046873848396574672511103292212580249339123311362332508911179328402362526798886051827089541499011698001406549080974392366220608573016710283905935883452717015686257538377228007225387601359890734502154291550331913541424943815023606836614133223724019990473535059439142705060398067998868592646699432627248883621953238085474667613546993491584127388174994368560406054429429504858843999308959845961057107474301815202411514534545306653218951082811395333351741940052756113791703089545438224861977585237640647586988711395042629022079110901215189232420270411911086551003009017383910503747098034768011781534706151161905420561090366749897165087005740942062748644529126156969145228311268517313201089925893249902293865590647009008125665573852620699146635018245052494269668531544500317796329349855689571832585287193686944513403402431898731442503425000115965246269675252225236933713047215488944848183229592114886126274723776178693280196184475487899470541976952015596030851083901000966548229771280734703682763466779625836386664272361109365166572194033867885849774468746154135345518138596869378621753930179814329482926768518250294959874488572912131607174409928041767093640404318056128925780321997859783955015596932967692987686847847357447885434116425259938932268912668085725106238096898755702210804847025591379749474973967031291236759722621010930745869486099987424549871231494089283226191650249011690010495918017512269088059587999682327773470383771932060006536604020996084947342957367261714757764552518184454954736104310702079819478069267286317666273659478869688484179621920015289294997187417924250323465757790875571387214762238351984360432553306991815824940157234082186376439534591651584539858818652634161908088219435319220780400059762848374632156607862590632469005456743505628743283178850456808782863048633345242283250522492171090224793139421594201347283252648759875405454645763249252592291456072621537355164331893750032105662091438024590343188427864141562719936292866574293568931039630417381619535960694843313153723883819147268216311416870500841271450224013375580451736093752723206511587970826136199275639353282335665432161300553317348644160909376634013414207185212275836091278176226450281091666765788243462964321741619326192389396337221077612220082816347726581568132947028437941022354591478780771193593467008426858013908339849280564970616796518577550818705981838075111576487278391365752389039755079441580578244544317042126075001785991873901019229762472509696922287535129426683374043473438075438163028529594049666885223609967927120678866706076146069400714680150528329443781945878593520733050639230342199455501560961644429438118987028672681877927643223500326424584675382424948291780657717460345468841771527049293609495315770936039035789295763705333840548705594696497803864082468301657123664041135878502580604212795271755876950858785445577282010723667013586919620224619509375116208045109937058778401381991683988733261465684470004499942269614363642612087815992291002685009338391195169243125950620347312941318154312757862202990072558246912218235187890958725281427353863946943936645122101231328524203066506432013061661080863527788013774914121679530587096914492065726065369052841180120227757993749567934938761494688053690279844853741802360035193149288921739735158472671303773654892951104553046094733612170250852206648946745710230222755454345993948335110111523442303940915437262795464020201239997700967532222596224952245752050805919732394894150713753480983104018194215593900950418015400892850402914347731477976816013522151049977125582181148842117643543549198620088160263072258969197941147085269699115993384466177482178716225175679034454267857260172990643440833710847815371176301964815620347646136021835960008196878641801231355507078668051160870876762162691961416097820223887902639035177946339201728827543106329452474523549887799509301578673228680347309612640088571435733279027899079688128689301356251358458716897692717063611775162650614693806488095987995784886536457543785225340544962935944127948109869233805385347582449956901013180606809150453335853343510275420325345480079510719765059700490848506233306055276659406385234835684506524804492600786378221024386972096973848183031702296142678676748031458591005409167408332481522107510198350634212686170736713262384233414487984715559566145356745429767996531077232792539377449647046516743583254774184899603757590478934020631730520534190459878502839867785211511232900137161390430426469431869056030295678118072950833862276975686421379752573586627120628713030891698328699441025180926569248844967232832982254907099883728886740395090480656116222066026054534876847379952150612442662372252686660316948326994264080332073658507789386581384853962745347374914137656996953932931729135375513898541829001177323288673234681429632353640084038975430750519484856642090574594131997279934197721279896419780996407110829849387096578478452942818855520365533346806922138668463263567755081848897571913136656902685652321446732811313397911159220013368806487346091929165933910377595585393562631380284692224666656463895088931076922945661564068365716145976206205447056435643521521669669680052993457953114970986200919166829735833344779017209119588357025769046296981006428647138508756334420180322713766831709327531196545978241832227373784699996701660144186631839408927826819938272706442989698011096490288397161604159382830089484854690668995628387130292775183086633369423126909680489304448672373966018914725602843270065452946118658926024367305987457385804394368479982310842585434998495690987436535429157014915044223188873351916744487271789125657247286554859136764445925774154158425171500687276330883698388050280808516316261641300502584012972749987775378320378145436832460089993138842347493372091187966369769102369410604118208667224044343170132695585091434804820869352207706989231712125948173749199630611364033871595448028770945994333853040864789155705966963319004480792118290999726435040951383195047071933529757278467634441538664703296868171146193973311210165423942550540109367545127610504850384997000444958340958162634654569552102663843796908760412252474134356873136420147844034246506718471815428112347118321892807703982961932996995091252246476476984089059408180930214521857453320948442972250243857531914745945680791137175706531566203910299742506894010632636220246077447542269288470614231893419046162217119454133080812843136594522202207431581253191405969240697472500982149818850920620658927886787794147610980157967246999612898468687878372925374747773915322557645453905196229879454149002871696115067566127352502634879745860618258025597491637060306132400433429539320357191053751321353370954682400644408772855829187059929131618694319654449869481253873536419011752007528040474319333460285589494562357051934764439471472539172957699931470248944742778214719003842528068649558006244615447020474895210807745691823488112421177207664404308527634874989631316689049370300368284823328364057382681577670249710438412850753647936933973600128587069787990404094244035751017746466685082045990720584930811424049732552642655724511711108174190423861995612164398378039827050636872073950708760760663129260243115272279503304794572980205691111330290548638100003468738332044472216225097782826922692141098170224907818833643797109731904862289993097416485100801392607527707824569846180459179935921356398721543065390222903186822140383747010421579751957761333010533836017180309269890049939241311601368427802528442860968200422698479646482861266201223357561902926651232672694738034158017286380350531838743488955462842140736676749447606821325693435198044472250513425525087894145980742446537170346177809827098901763336084631597091784847410283813915284787169493693353695240560191289018015438926512241832776488116263787545335912195885509140949580712808779415004148961515488025509735017342601160345213816884056682953852119329156416001131022227120036249607803612287756522277095566687692315367682980347276835468982211049295417370979594523704648959327282447037723915620494347932232450932759250488243221641465004157716994392177440527151556796536777389502527359644334921660410488004224777182821037888067107948955307271203150647005797891875790679526133404406581945393602443449679555159123417086105569449174489892687583691683414893549257381097296680499407237835040799276445217000270607423046529845767290186357195397219187338496567653418554553213122711473944647164675910778344634415980855192661487676769870146075288203933297337580779467621153071153649120383331860608827846655808112499286124487531378650866813827153942934910331356131066518463711967471424631162341728057417594552108482359462051349794269025841602794008369297127353492079158234600495195798817456661609137788402230576016485575126238438979298069607381934687764872733977271454410442710183428552805680373703734857702057026480923320888997111917148305758058568426934011923045991371633918658905728783195145034127956300400927688952257408332305905830558807931134794618063687079718636608664785970769951176254547452180156035881026134412847411539822530701911921926813167814164906479554029100918471988478596378354963033394739050855343677574720831183064083053841404859526718082835487679503453029575994150957471123343977707563226928766832573861607951983235225778733832595861643557931654626782905399450809830596276510982801374681663586041723641149098939496675260738253835541148155823733326325399415390167149268843041858030792463915573608695821656587466936373615793375276577170895153263760136786071926717259624187129294800468411718577756452423121635205559653943637190502677026122197833061605457029297731590247221765398065345731552533517585696078892762122558148478742850616217865675597359619004388979330009990665381065496216065639564811618994200842574694821398341036795946636066308343534407932951999345416002797923317901899553776333314970781183197152459894634585766982608243484114817413243019995648640564278012867373796165804399096686236708463607182400983236461436451887799019399430031479896277799194362114938604317749115963943998895456749366315328560572522222528826791549782811625046834200383613040620497510999206112323884596348811287202117451688534152005011033951733144093440811755959888808669134425328553201591180210733981781444785020675432440661165144675410907279859554728847855867622204958086595896788947952219498655208151195319416781552473256345320478790688025849751265261786001759777131964569799361157086868712848519807966905428373275275334333542790736812082268236274046035320842831689820617727316788410511025143539526793389914998781055256457484918800582443708584838060304526932903849017316707757841436680901462490781006129211697755158585128464937998292721395170813118736871873436873536583534644086123499999462334459592637923097702221221857628883719280395258424723988877877213301714436308403701965531663333874548981668546697221813502450311172595110045740941748784188830902681000818421345304548638556003122464336578450353959722671910424476698304785879090888659950153762861737489947219761018928939805409954551951091917729203984648681033877675356356835301103961684273540067474554430063513690555799478651769592092980279156135449270448829063963495100888373863024669127122093367632517727331782693380398710079114310355731644902883576142835476308193993147253347319559637767045549901203919143284209449655739939610341886145666729884357511219339791215483736274679480568325463730397248042429739510058006060127347175365819438925043576614443109480045961508293247221073574821469837946772670822743096205783614525795143596832565146851148749082738090174464967012604121712599242603707545706998050479772124435082596126498490457664061970163043910956406734114339783322568866681941589758109354894180906408298356611925491170614058989310052724569984867007386738714701599184770448531957751233903582389101897010343319371365324465591823883389805656099721415639844528754810320794568491157571358712842470367041202219761199133057446633443901797913715523076264235081220138065762773796402259221182797720285888588176856157620131430880272908506262981857543444121183221438854432749891428188548358814797153165784197635806102748168111055976954351209445256261974953495647153958010045823835114281378622957927023143468254875495444835732199453287267233418025544869563310584263766068966692989664744025184175477878110664002197783432122110797237128093199133927069131870084686346846148166984151017293317915695684444820113958810038868599152881134661690798952441678333107970144979307926106786939411958246534480626112776366801506080274328986293118582893567951756903632145417844627002336005831485235261949212661781669917332164618019034377047921928741520129408445398779349584684290404191514105251040264266112634542766365859559934882112511186355128737755669409129916635649844490405515781628903018731234447404909792537683780725778091772653608544666954176844028256505551479541543225951929540810232286458952856745023870783457702177698573780491719608595479952563254209532763012811350189850496417665185962081392634178011544634827160064074650356636930196902475427423243913068150027993865744037991565086237027564816126821308986220071950145291514367305158812375733073309876988067810322536233947256153739449008540979387250016033057488127242884802531366276077028746138215857234998694123947241022818610775965302839181690586037952193215181923259540767099397184353832714215752770664760935751201814485949466187662965165170565251452768411899980797239898426066489652015864483053206913279470790412340389676301082825227990315551616905877266218847784398333182805049606177600832514513426773030417417168038306958015848124711793851501499247114935185568481343982349063507308035800958032470844580073488872938487275980149209481988349567521420716625224142259485182787462806973402122163677520596493987342498452872569780285101064791243754673542826924303307551493124105378674090575404566369792415035145381304483973522148690256873900881130531041984779068467728816924185726608942462258835850944880038880540560575274964930657201370372717492456492681309044744483462795759840335611010563300730441025183904782215194724189771450912586802200940111075754386500528820550296500855328861834625209892052337309861393596155191025646789042504596094213132310124063025576244104951586492785308143483797046920684911515153872577383622716882687550906289626135863166942378300598147124987180832240973185641725008679347102234541957953450426823525126976172408177234775908441461421153176050100791433237267775498107398534233293215303235234516628185338735799951897832603815155806613481541428297161730215829052463529691192318698855234542202448696119704250329131728502097180705031848630578779708687283134450805696824608678560609758777287321049814917079435147272240526766409211652407757451491313865146030187186042028114315204704526992971579031360697410415299537214849562559881196724060335570434932874476915354853370943569415891457285799200565178037644338139028421939279188919055372245196342166523397066057033948114934941963714526288460276738982146437815138539829908798396009415316086680899737758170299773113701859697069047417755812089411992313269900206590361054379014153930350265011301347800316772768836545965742002320007553950926859624536708640003084059911423205989312855042292108037266325812345331284358138868250917670694286792909963818160076067474093669462933352060302262091954732852429130828594024193072879159135252099526770508968124001501289912392953461359746809131256044546044949293561340115989749549472624436218541608826945874354379430044309752126337499666554582732097325599291591929005006250973595451212719884241063152012353054235698528918654646712074468287223705521446970736060027423355082194178411671505265669883103204668946936841846532925778542503869658358203308539708623427233283230781726462712957802582016130922483906293157742328452316477871888793277468211619427433481607292901330529442667155340035946016385599392502412989750222850581286893947376879257602829566336519541649986621603119084251480627802962608377602874023124055591637924781816284734539591098433427036925433691610682271501580646185934014082385006219622090175503565309645693337262661050388436702028506559315533491170967030229612256781389602174791501726707056946743543165680889493267047127524375708219671699602426844363381395428627763896847962071326638112074058658982123481870880263606767517639798192871813379090155854631631262316280129601671796260427504455960514171538383240850639042549898036969803665823901019351637273167401258932575516385687619042627855884287494769935075127920626541324517865826506458062241592362446467477281024356906617759411269100635261624688773215416015326645668437535556754932161048239784503603242765814754846054453231631498406807312912700199456971347129636379235213410676536515467662999862096443181491793896907434448663036481003902560984074822171384921669803206575600402760117092396830021861122670402203959901882915690810444448137813216120449099690051174469687101258843559314591003227782086113220136350598645558780652731418861275120039950832735024565585737050888263039382309681423373917072290751893244093505987046691718210621575353010912403669334258920701270667663576994323440771459319080891384517749055128257045033117411913206982703905003410548155912490671896926430058111705597160136825020542618249773781658547427799876446211490943948211161505198781093515755043838831769529929520652033145330068315092022364747339822250067320024960827980190774741240449087799214302093682362207682405974257119092324334594364764767856612094110957657751561593650355965267725494625280141166432376851322676864380574514449446298732459794797939682372499415841683832826467076973440674705631246026044835643137364161192299537015045811641510889093418986244384167103423330221397061512026479474475968263145625068739049222121321204039864507976517592324659452284918787947418273646758826379237470951177371140840116469877656099717612814975400999656964308896495475836659462077171479470110982573665837363095199737037396562917612462706755703078316479171340210539579169206173258905605929663683808922446382189232257930257634993465296080444930380855841350129253648560791015891755545192110905796240228397211167456585833835530153812743048521044521487888614122023126463833041775909842676473215583696704925409980112532922703717437698282528264919287370940084929099739221823027293839168930940133381933130405555746948351347858142672479415555942415209817370689036404805025384373898411507870726808754885840930562103260197132368248170859643320675680424840801624909671950039756559822876637645102951668316622118265907672474171894544887395203881897086863199157940870797540627023275101779155433504801373147355397330328969952940498908306453575955085123871006225972800975599822615085315110194047219202515623458442035270796514203835280360620240771270973242013595046714753413298536785928401822429092810858943999354991169253019449015838716121189141398002342594575481591047077843774880314028520259215687280794214889606176378510538488194781498377949605731710992983417873401964970889218061046592766771780090933053199834405179458025716855709534338553476919528408088115073268981560335905989616420104450170973124769927156235944243589557004890953901205885914436688220958980699850237459972304530570804399905919006242398921385482617490951339469421932493465750663337339428608014467982642140713479903362012413587673059498958522201509709628796714497013792513836476551485382804611635071807700946983741825831064055640575697203435750052991955892232288782236325481320157892274037393283318080665188058424708617037445618425124327849877783355680266404503221961928218276083953359342613662256265314956016662541936733530020789173076224066677085707393740927745148396292779797906637640431676298802520974428015816503031077319583857305259895342496767023021221130113912837419715226322689355972836339208920398745575634563471758889190551210468534680117659688665492748996609109880624450221948788224933675002171019260576765453031030956148579633656218435335979778648970607021565995678672518764408932174185517457661236897725688277320023922280251462951674230080590806889243066806236949666648343106952504270084603280548742108488713776076390949194318467218146047791808204775041849236303585194601401952294519228173355654826498831116914553450525337940169635980884936355089005434611939933074447180373928485306493881181077584460394402853509746736562651703622064331964060924155603852893404645390261061642428203669962092322621779694901431840034140258284841415668569442507862555900684602149613326256461267123344856730180855996803579321816415249198038847667772127779862814995205111291747740933922237298449416421903332649149820104938844691745328751169141005156063954189735671093685319474214297746029431631018057441312160510736767958386466504375591357956567772471199489782501680122580046560974809103170807720821932621674362988520275989197893030968970036549892466192229843776847174931188521012346147061856777492103623895833781979668644561180659527467128037150950255651232837274909295774515270205047569808925459294854062066159876487100389998230025521407402250698653362456915698491528289041407533566742449090563670642098177795698594337026104438090778580013941920403186769056248006695105470259452864123557833402182621164767599292072114779884325918190267089703211904785650703964678280722926409214548401966438579872682043757799105042356090246288038943655711779793499107534524555660381307757809121251632570318495729000045071540112709631051129102994359663479448502563623544759951550087004588857250727891608543790650676330783103973433168004784753436459682073699989954596437986651386640639038998972780332511603173200881932320017658570403645871202751500114566557372810370825507780971970542394116252117722099675081751567275761030719735211059071212215884089061117301276029390333470381155160425477346702149005389925776396860466276532341652083638173938992326604977869031267419184563266320058517309948008211929288227723718866376434040126485693859953475500276264431213799734318721654494070683249208037517169895724377182320634233235006390467522183399758829811824291254606099164258529337726535303727730677955526362648988137585297206968902407951328195370358570393178909695265809835240933259339654546468733715815990555908476593742461917022698270709039517509934085591735850903670000092378473712865534380534231048612954460879822096873128358290929757356368134750854482063986329014111418705305824009434374602239362759555166734732473904646164382131728631413673553978015442922671980538426783342102822836660273894979387378680966631991512036369982441896142877768019767972641837223737692458513182976858617215646787101814552413332426839746784579758182457185005131379385609005740620268758036569761153946028111844187160530825294438714530254306269225952792988346823644805012543380031884099332766058009849222107367981603667317247745806644919185030525719306829436384209771563347585122738755193493509471405516104266105042186109456595417646089490385566281685893805329920347816134848804372454428044670366880582080090954959454395464987712773825697559081284840339754450087354093012197017853359755584493000451091584418744789114560384266958217593679261053166595113264271495453423537238270949280884231478305118390365239083231219272900359728888987125428023686483228743614927152206947650450993791160292432638453768355653544902236523077383376942173149799543408277710309754664153500581304364583035176285183730798804076712855818840029642655988015425610138969589256480920178152646147510526551707444696287407520007984253026833917089561166591744599652013253051543363717612299719647551411168958805151074039896767031093280165050753336067038080473287443640434781261027755271707005644190000021558478434807458317841530082104643066632308403794706520219870228191491739284927967708053135993486595886560090527554037098444176360565674924333249941760133414599128329541612884202569431180295846278234923392357029920463294723304312218007082327532192371642025278872140269826241682473927457084369552832508126552049294787843984984730544865720322618627874788264704930888585835430728613700995515894707188598340844867965074489929366171507688306451246886319066897187257158577992576899039619165711372620625235003066716612303143181788045352582744228188485846531527060419154837337365275781491241610696799325100040318773341626364159488868168332372663156338046151213870618413867443925559474252582595481103026407005126769021746152672015820538255411597712228058994506352581379502976062694198656863021610778814169739972640334743192285178342736631944802952071956757416651196556632076738222978230280434625854704186480277434885985951541485127274423500448649652618249329227595400420040375557669518378486838633515792911662496318269143368580484788813391082241142112576457517980803949369615452659841103656406167736215754433444364764597711145072724926882471709659271602847059699006481975149084039135090123680316930999457531250270096331358178446324921325326762218566933978565339130525305123010338309958574292232140106091544140866581131780705987650100293709183525629871665184380892748168521832555887580208271414806102666338834816551074866756984492173575360927910581902732783065044644949895683698269595858434325771036842393462090450182666578394281884820361794111731598967246447463946674005249197637816575865460373685577205364594990882476765611449245253938878292679027256696833137967395545257729175716283213242595010397395581768734480700859667252984605318587368542407027812984950145205365244226432111268650187425796182089972724841038882650684793546079869548580213286874030875319646973377799333123371931571777040364505775100008882701854009456560163562098917479580929729880228357811998067569013601331869582083835017306836265345831005498474819315802808577373229478700832918485593277948330973211780673587025824089912600388497278091675450356150281396355636503000146982152970462717600793700709836012462364681141466872580286983473974660141018729529075434675324310291023645749830344030639828758265529831262534613129300115904728767118568737201576937055517743749072372638660560612364436830554446145834695283759212216926972017150538040254132162451220652707726099508196039205145515726849293314638763142632599569685741668299793866548772039257345892808877057645767901285865634526262229106027351336543609070950382390583320052692522803435596040784579816119330514073683866371465534847169780350687133793923906826662340865268593708994377566573148065024786028830402147563221693405783650059237974435744363338749714269255871445913164423918775952554065325842809756736894338032701110729479183336724532538816432039560260256462134540973182903391361500498622146335264543399137036641772363615408966321048117997742499268573206743761117133732790642538760262946365439083008460102760943666681222059348829892619774746608018420907992589358414442508925301486715600929480943606447108420047276260553742819830171514229898229252586939195981463136655177891167149028127467301460858121961319492812808872684754974775065813045084809228820335420675346291846144780769640071616542625504071816496035408399224067903467605357404511464420321792090591139420842282950543018458359946652932979832219723716471034820473115619523568710312437345613669656456267320132676621724157445702103784780750690012141333257202571960107935197748641863743241326007618642873749193405006802000786429221560969096273605367827791352060516931514233168894215665840606445962814860017531664341777125676847605054759099621117720418562725875876196278345942440815768878503932564415377619491827228744124406725052862312125750360448292425017533814206048396807890440117822401787851539273292605716559844162949997283837678918114335333595965206136127347202765197808522382717448459618233059030462396311801620837006186597334303728663774173222682518376858797985208100585097108099831612008427014606408077310427517742902952462218609494630462801528411945772710725910971073913410087981337165636134225458270570460695307569298424727540774875918149273237692533146709129354817394892247779421713822803632507314841621062574434181241068362878860595785165812636031772991277960174680075435067336532579070843364292560950035293968500690703583813285141841810158666301500340933637252075913500108915403176537155749624564390004049329865432772185172985850256310401713237602602686190269162659034987977400902724220804743837792664481139928148365110701131404609063149656964473208959575111809075078487092977834711625414170503254777183854412732319295857936205918334449788401856462253109401907869334056607669047355194424086914567609196740586193860265658158531673139530546206286830217291535037813130899002802843468027888677667841235329016725922755256908821230177330010680892446298325950708294766048348889372826820755987467592362052779689834718925121924363492990201084045927832920612432215790133519896620897080490559738940430632588196618246671015297103046519473046476040712932342808656425586911680299632242127215942320936584122810974385158686454860128958856373392528599438942681472329880523822241400030790196567340720900371790121988787574727666948844044892756700331901932419723429331687584574393489189831882976631002473929069085746197570987898048356311338840643727880467774570450944867338356773754159999585182566447274254000759480913564137861339821195493721712050772796033376231484773449906198422643758176202413971976295095422375222894682260521749416400927068913390778530532050229705706189947501330698046201638939085674451043403058433754568130692959384560697094052391463477819812984316045828280350712704580359776147240224486688272180287647651754812287664887194932545603393799401557565389039140697132629199428269321289356596549252349591737847585871539518214235150979276702042644699328266511357554162054571972823589138315381906620259968708921546912132483759671965532514488784068828457183794492912414820485245359154809269751262586159014107163780527490003605467068475840126725691920314428806444555754848862339263723208471011597877221251990055694487552214612550632965866450003019018553581164163125703761280482552324747264263766668041776445051138098597839372753966515620904210592611637900110593755016836872440305200290442327788097587713954002269568773385921758391440324344017306278631138918374129856876468489433255920851553291210002129933542538519757223916212733970203528886897150224390216891234725021678338701875250995678881544459532386187498162923642186328537359975960329574830114049209908822023954266812047772420533095641296892291449859591307032548035167738203095244491561071462441410751318066634143750050136177666772401748903004143495570498418736140838861036296511607555367734968877878778022781518681113548778709480397356258662661563558961348868718678330868611621143773830151242861056963351626591818937407859756852167864266696071098200266952742171699248662556456841043805685063137778416988906134948465736810740161677014494686224250828216472275801144619296877543595668937662123412073509273642646932837413420283090779411078361405501350081738327146827063080106804158260937940487469410156623778884794157218707515170106945296536209021074839143518178597098523229027775723798149333536934068827592365982436126351546243656936066499797290598325196235089107671147542734724936163381795314261005225866573400935402974656470615971090991653348119839385806427142677670451239450600407422103808945905598447317676121878096536231772471921486101532246709974886433728356797004008809420093410299508287401387901081477852042372188687196097778352804331203853844092885554572432333160634091595778154894669111004601838745064148894889344986392687343860161274244536053969946595421463712590212145671618275767849116016585201865076688293537385299151976997340889851856224623419122614359735967668233899230495276374120699039221999303205399723595671993485896272635521201845962005507948536248571135235295937542665820097588524629555818206471598571649540357166930249211845943203909383341234186814795711639579834491131617746794785581944462244338982393950999939857439786470015585097707911400929075952431801729852020751276574228959064809097960381806893112865789558900283790739171689486916286623280384350438190389893794259476976015462433139627517450157532030803659736235110966166670875220253685539700420330140324210324220877091057930085778112121018690323859233043118871565981430043896995869624311218273609242314160015638909625476061747037840499082043045908018220729100454031374456202866389925285411514444942024513506620422149850973813104356450657731336194328199786112947560996521228678414656574153967736944457178246209686882953170223330486640836431168226625530668802335944941714086181900765274972780073756621829587770900184491957877305387983381760219103123710616625112543246348560705756675385808142992206061028987187019123617490179079702652961695898056644866131091655240874772907322302837616700501589235432200267366141446233888790755366865762831067065730029189917487104073455410879050717154247888929643290311586401368070214914052983944016141071394918318227879811350060250224112836162736349385569317112434521208377681505062628827757985384231293263980225327249892389799706752088258011881223702613643535337931722247739732899006125925388404102709768888380493073141385476239425059592888969086154882282604959749772790836006683179441844819262383182134790708263778104641412111958594302610606308332511787789932321385064522887445038189869232389442055437585295098725899272386885073526990383749902143440276133812181926846542909996998932942895729826256257483061841730451720647156889412066119524760123834720615458711337658749606550782386700475078638772404085774389626849845992314157054792164187707273790763140792859785563462857184067618246159428692902119912093184616618925976207136989663164381085273405274256256451564374960665985200099740773394487357953542790974020589512707414395555449961166777368150431879227818091015690139438684820480635234959043191426671012157112062808624707635508477741052021625549397245862117467605183913716428106161427246391196449320675414079158264019003331284459468121866543623395610111354295985565483134393916850738889103023905681294981434565730370677913392325908450309844737505529164187851896511142366075087053299548542717189781356906755228400723686545746063058430021223405077920973140007754865166642930221063327325761347522097268581345899148859503327621310527752663419782067318322619109717007794637289774251809330392465448543650447810053475843651609811395740682281817011753270002009701904449867541632584986751002741971840987770848188575092997392348398144040017225140499650364616374634829162375200533187521688327969805162248153310765270501146815964941899113749462052687665879399828916084795408111845732365443305159446087856513082990007695012823540630921365774634239398855469709120176253525959079210205993383257119318781292930037938216939812088953548048897880618497074803357484325558225742376922503895441300912968416149145388683116283250263972783285806028798389082942793567042586798199536505169844010169128058098159429400522457338693986925580619285594818504256174969363750154310790485981350461037601050711588612289850407549964260889033196385420597366182739163799247245394429644875043018008819618664418528028815675855223521497969480579976343671971667500341285510396845607341829805793143923385931766958066722567261599060436401011549675446751965230241680311850434255223470564066479174358400418671803374008495132238061733302053541545435301626504684783125338312387100453588537797270712392620132619708166118939149948954509698308614214366545643195711935213975197085176762957879021790105366257227437701282844119264443754971109997164329063073561990598022531487589563231923803822211942071785582162602973609890865284454229237436707933884292755334860874051924390976907976164273400694470167913410593901166170313391878707610401084646181760059045331462615958562825493199153141939612110609012399550276910364358071414842943396760405540001491036224949876331700821532699647005508956619417121987221324375311162618510479436650410625524361104432372100489068467675713676779038917221580805192840708834738558905481115267658786362562880517177140069311942643665455529719947912163138620654675561018876290570416259337071530089435079285286083814874253256920965711937331915574852644069004964887412384323108522786330600497218009569174804731891589701712987830304914139987092290351496214697695736903185293134742953292944092700107469791392774635865140250659580588943700047888251269429631922684293430515278500060227084418099095855333279275714338806725633950716900604185808241576034402028814134886916867897945614715784390835863461829137831370379576043866630938681137956314443426996801458411773515740732793824675640989362725605691164395328501763435846527751697155252461775314380106874800953998304373604692186598154298974800864849447046690398537407681037934663879895552904374865476878175349369576656075841930906532763125890196930378891071355517553677297802244329978744291721789502705510418644765488802671785740188054903533023182289195278730644746792515328366443410714949601277168294313294055854622165607429445361271624914321883422092262069933011671200108382707234343555009200667302898678105610712559019564221662108502752763900708370127757420783883993646647844496212799593584537727882302177218560217219295362780076340779383392384682449343751074090754473803148235108497180199518478689312679785706493838570501442398822734906428026437155983421991138702844118959149613311000940233789866978070665812732630534441415679798178914350486545405355959770764467006874378761933935565933881853084830922587060896892890925666402002839019646974841319902789762274311752378392023909340598812318871073164501067083939084074478651822145867512902746912868554172702907845565941848775020793664093067536628515861461800607540716020351165290416831812293572736581795972382697542883407034422775937711162130820124538970274786108980284613978638179115461735967554539107264306691155118754542858198417815042533951133922235747625939234538560823528585649037234113147043843884351467280658214524945884061443356368950180198794554816769890824770648733974534757786497472959431066418054510630286386694805654084502860018451060215570415080395652671259584214357687927109478911534601257413416930126467200353440271595737593076783215277051536945537167790401942041911993897330286576188671169367990557590249887641082600561534214453431048839509006752506929429910663600368743152804172236266522948009595361907924467484109166458261887610046102042318147320569720232694000962737911496196963765172413194447581031107177389101458567694878506272317098689560827047541476434218603282744582694969551583767517516694258994835181280106724485155815688124896580551054746117255806329571892674408469751391944092626987381444935541612187610125354748593756246536180743624709792001955992653413121146720099669495142586537687955410280620495496836546566460586719773456070350904647600036678018013239164073369059514483436200646313422280445190676320556301266137432220953738754947315674212643800427831391863169400235415270999126945568697470157838726712101332518094456523546092264709162221854914654572841303981514338884982991133423630710856452223479453748867704394906989980836289621303077717517459525349573382281009795580123685869034540959962374515789953526849885183371716154333567315424768504335515907886562591204200728993456893003943233078405424272279325832654134060098220713147818623287780592593952851854678865158519840277684654355405446392720292954963259113626028672363521627787193989383260203147673389029400028330572787244797203674452799941604623075353773995638487474701367320353676802444727988952810637125053605950361840587824534246970523569141175184256102046641109538930801528957521570945667910704385388576029191986412654671965556396024833882035530711297358350589160372932714678748710500792817306834949623933287977263489866777551144074375447682785758164428353282816043134171812514533842837850124944472129664935865213567600018788901143963306920407279732207984515705554398950595428808582003454880841666757146718969287337276539584779640521213738963485019558103456220060646347209200052036236188755856054346568942261363643202812368640683003332282903456009971219301381456594377172300894898366201512058639709898788981221903202493254180878820631396961527504292768983416296192874860942969072830982794204118280427574385189324188663568059396283160033131898202900840442766460625447470317681747521675153640932983389812958158523691445113484263038819057704930760442671923212469334394602889900186836042869937508533524844601241622428577846220795000849168729102104648752948718397372819593209865180039583414544448145229255197553954804901557715855846234066940053425013549851471735086924842353574414799821271471735337907401722385188572029416766761731327857811835762633429703339720361012008917435485920460319979134052763152528553028593406167772993726487592121429061196785121499222278755373373541288768273135312092436162684371352007904172349100383422443553160756676933012292456041459378156160147276896384729919073690939424740298241352919916824626215813475356318991972888698636912811384213851276367148780541649655953608057068647845553685800839360580202204147314016292958224638026765289589039355201940913669512274014172905052531541090096542583915481547137501951761721442635146949658255911667160040204293135354904883339653343862072772340351842931522528063670335566583855193799305153515474988224608609254341752843260568312627268895963713500710839815831747395026101761133276091375691053990251642223164817865999212767598376145806443726236964453377768486902313043436777405411018697624196080936060360192792509032233319694211849274721801445824979767734136643092464619954423067373661130625280134667990106147792546890827151084870303143863632541231266873164102276622845563157392636310626381442309283212682283574227273431759644364406250759539465204028850705167659972085506200883815750324402717716183134757141987403744949451883406917545854728752975456216330634851527394349705709763324020260609077671816880399585864064718494705773984461505506193943945679323849528332094407604287432986807563477216164524467686477920435471557705028073325125006130033916047409273985105340428809358084101093063505336375584816995206800758664687030454090346682531376867337342503296957438558322884598593663683036801705256424209738947370843516076561008772819241203870342966607564995576535947563682111725016237002572453945355363553235140960669728081014932536498924892912616062996481082791192153851686339697471565972279190669765413644597456706519299780465105116664436024201206869965985304591675168807650985489681208257403544786268497251658105020191610362584156100614520906232279737518610312698204887844558642272461385563689739960825071846739179540141688593889399716302372733223363118441683259771612580212070474378079799956993061967717158838104482940315608448524926717374907528631559045262343047591620955204935381602052676861125322585844321175980951411643951461323318212099172683844481090848926566530547951561922130888514192650618005622995436508344437897893573923264074337934454462803725943147257726240169595618844673852704024086033152917856898289692835815981649260994538352071601724684839320040766338526116279469551307019010677962621190089490648723578336671118085080142412558974899484948423361587710783631156274625069905092302560906948828944324365704616094000010340820653503013269601224153375894203341257429848619799536997439242996297587878950068288529142449639010320542449606516886161679639383935354229200341353776374273600471523524547542810859327834729829509083591243754809664878625532909942065816930613676266022159653273640974081470366251193195181038895960346383599021739499290722429374753493357721909776596067580640933462701194631962508725025110877715485150739271906583158043886336954725415048870824586147214476898772465815523494928284007958882033972453043451249654794250662076029784623590151812203696063288443973941861806649757556754261681169156845362305600367877841408109210795147978557203400823832827117267469848506488925697458191615489358125798975279773174284030137215307950412887366128195605550245035256639055460687645126343155207439154008854421841230215300909331312304488390915676715567579787858036829078025590339293773492704665856284312502147922886899604917973310009388401890400262718876748520899464139088929363196863550089070169002114882888539211729773389690205128211157595728876754123717112314648513825328050264704949478879103949045149483508962641579651063931598141776874867694908360817507078885419333253056719729622397787578469762835535915975697223691826527427687718613880473078980714590002098815439129871753422893423222196480942644585393117711444417485879889168416804575643463871746044215141391844317979413738146446048837139644749016892786512700607121989216842724113891938546464411526860178544354951007885912737055936565766083087722911348365935047876076245824140331678535184982219671118697591653205015045998666526918216682292048204558203301971512246863132072258745186097379594907836453306816313762404838242898002881049175351066189833635687611545680596351083258877664713968467349293085998115786511846088886667459895687120896107795982751590733089634314757042242478060302064610971875744344235980746887354274868918054745003409053715805295346277243690258399444132205242371564567693380876917436474581406160491531362851980978457263668731433880696114962189344788249691516808639144424164638955190531027734231149297416949096151658320674336500463817546095184609247547080515833406077420211949824151686268972874428632851119664390862240856202884050216387529223599771531572155112995077457031341109434495325061706349801600546726017697169097233986167022450910226031419375327243118588966034816698091026369517757597341517394196728177049992973068447482023828517178234424818906874492655143831076314648201122015982303157965215380224142975603842884290714209378014910685893019579464926585089137871490707356216921435421499755659740156254900973348377466542570253702568588893150836426498310001272425140163315106032211667291048336363904976546491200911394776396942556550360935462153431136192325110209014610577777288529765223579281699314871866039103586579610048867391090478987268754954899026621950595477432900955575685437640235955413284042913947382834798415247465668476814410355837480078007995433091030532561740749519273642960331673317288909693475709274587266652174006260418949479454876882203948740185840136133464611720451886831359157884702907229409080647039242960248352969599057858190189389723595459795253041482631350245865470906704358705313750708530512490223786355506214226710689623102460749658802731170872086472048086790100400806384102340869838488221152255167950599114212445682666759648264030520882032656742600038013397583878179232699202759635143638582186130020062846873136686688181306333282128114015500371726655870437745435828290529452763520324147307893945010571007490966712441513333709052317359978207896353211670682653101664274926854797237144491423609436682444224684709654024969214944854541023985154883396807930583297221523269943018561612588134589720327754599376920610560359955323593613347276486788519102507657826651298114856190862861546503144220999045924487448761403841218666790993554484002653584623138052318485738602882731955917806733228270526027118988481789908356793351989501867366882460382736226622195625922812314204763491574070715117903831810982711748005004029742907898937709272012967754046827942050693504538992104829915563317036403766437334060914721902127665608701733046761926321383005323176518393331522137828848854143951459617945297402878132674988003785237997787903016957361827022772492033342817715169821309475407314125994377162024271748229625352861705550260424119733610713936700742745259037154559098692923895263613830534336483816545283189943441450719564981009425957342529208545053427481011269951099969166975959458822488214589284527825121409224582620027194215966096157313518614126017097597457535346805047814179474442845018617593285212740607243083633002862597112535339500204763727229954413705288538653991013349072407755503866935233253445704706084084196350379275384032623619342105062381407629268181482768417542815851645766076530600720948393179734020510838459461926610634962828107226293990922062011817419041387156381393185706278201702787550169087402474740686434300885824161266703909715589586406270166078571551550287482947372260083663875776116605120844088977856314979484624304249073177069338107047324710063405269623206573930012076249068339516768963481589906196114781895153585309615789175144710640766605900800460329518244677340581492942157834966655681037046381145524518554129003708597271668901278209800226386173963389058956870059936807257336598917046864021693611328450975756847934007077647741718093730522482445600896234594662363629795938353292610499784686495134013769748430425868664167082302626919020893160256691200274439038669557254058972832860195729862951117837175119102862194904479978691131289083619415182464171980319271805974485216640858464272421681595112984446258552057402080504659883589153997891696210991565620931380364734080016241297352136555339976987659912916976490540871443922791472979837991574484409224443024633965123435988845442600131810272541243280389871691998029236794760524104130697790997140146316712522180923465534464190440934214410328186158482180014319705010317713621792604877198690945057472709619474808360013978773806789593778195315269614178862491596526292064484211361391470120541548854005533848322415557726002977963114830860663936511528930058211665867633123565351910080148447578282840732599965410167791847367273273804282868351619268663351130146633924924517679532347674992346570901464477588471867067004168529521854895297442052770207428736102340763088043105080280354652973156633870853271476946429464863981949489468036000524102177695347161993305513832730396505339156565416481003532188529483084219494181966794262696868789581158280441199177038600231870082580829028646853192533434451167072744088384044271261890425320194870880030157718698036749865353063416141963190850995373519856177834789361136308819484772198604220494672531288352352402044718345946272219259800382492180826379635847191566994775369278865800294175853637381413766422988261515070572007503370480474045755376762756561553797458155368046910600082490302454954535076963404610824554583705523207203781653511953625380781235282998529470543974431933453699167511515884129967272050830245762497813229196618610391799900339860602799043196224929714060180700437112023856653234196623867731305019050554675247699128900263771578504207067477789407772752438095213450715099464495347362572906313149566389075622940545656988781917925135654882707620661806619280565373447836758465785262485009242258142749951761308100171194266091408124394674062609394498507445384710879369303119567593609218341473159866055133245825949272562226137236356033523760009066690972901276992570702525373585710266089669911041682370071036552167689184939466757571223492034521409878992576761246124229467858159221861063859293765719699362118628048134303449887666833270395857334800559393250037052126361465082054544352855794624231918472654482028492000754938311058123399420032556559972809866739259542571146043678727555012355324114572373352570147095195543289881737872267164573581865542086322809138794761843994131285688018703473639131047040494317311322966067977404693192475396288443117258201263067428750256645478226871940143355231799359915099717386561817399819123999143293434564572116204225247495344581022600440645679555852831655273060582955595956580252185798784671858065243497558628670772191470196397053227083027461053739282085306997221414127764956039032884595281590301428317070679918409743073373964445566796127939380009653495983014322811792190500009875012386645225196762628889007283540564049241632901563708568529261212929890141825848100622598142712182555080383297243316381713026499771431563141015254020844310286974484552090264820771281251813348913127330396935429460909970377437440169810097090520643101607479149017231841802907496769303793090305126582905098358456636742726013338762351603933085511022433838542065836528986155881635050749876257790504260178417854150164040356096491203757665310325227023705031386084585026631714539390245547051671200926527912416291155007304750893420945886161571001862319102249530584443094303768381183928039665837902151816365520945711900332471120337533697457285491418335591330288678914450516782659665241899555332557763880140514582125262472960627680075375237349291847617174926277396450514892433847172714952081455091100300536852354134617250460078144616953641806153362158489792939732278234826085416966317290579221415595931848782764397396014895707611396410316075757293604771489556054040258417170543355982463015035101562124679357301928183660220759124981623951213451253826889871155409874556972905739635552405958489845379313280929710382648044957755923653608077133903419461724560381760961527935688891847755099004295254317768771684197202545133244515425957648435917366890426334020496305980868350352551356064291006055003456417747239817071816915388609878580122760101854465260752911790884282606135743093955820277904401608312144574182345230465745916938602752045330918911332702526566025539644038337303065084832955144549584641097782000223253756533354924567742274149336575404901106705502561637880869153627940836406378096344341883450091914597608332137474307082606501261778227429239725852313980659410302698084250991012051728530364962388989924719802419033046615008077713880035347103541183973446664700467623071261415215324651277238299811623909341706386796714725584864684856411373287095258368297630617812944062991384008996893028934198401839599580816660966295689577813109227383279425358142657803087197349510716288851402398405709289009728475727995681991820000506724470108438847692967272392134280753375702657256898199612667648982898528737520435867207559763364221784590328257368997252319336504321529203614266516207299400370962437767853912276471268445180349640986658380615384323293374643013906577819645953849316325800625278111386715425106932847720996481892789999174832851688674040963784805025374527064318708742195468117581927476085660074040202101464937920219077478172235262828083892114152210721263183929034721788426349923984675579681076053963571748962059793621668505657132595540558618579070428032304120814513576952413553206706292868818182069484810904750444889418606249596279412493370942259634254316066876288924913915759419392788228500716366017754637199090870179780655268274116308955058450908054825741061941544783885085623462723302188808360017918711652616992351691938053966087822258953535656847034676047637055160334439675854517332298585554393987146859960787563322485038862530929562662234967011079417937135949248423997774159461193771488605844606040471360310589630943450519714498406332918637991217024054846790136851625159533353387644116906208582615342537990325478918048262934956293073109406270625070169195121388361620687846910579652032877960398919925803616612569831162395616039195499524065694012554880860305355703015883851651890237701681838828543302545454555452803278903958776515324869269212400315670692830572598161462651202145559037485753174748665489431896662368996225032287950766468965597883558629990381804727035212570264753192561403846936678795871013917143947490541453962013870963866644942848878975035931454221413638586537328365378739328330408107369941321248618829221656630550810696064448469466451755461337735215988707351833636510559835106543214600696411559949059708475677958092926397080861850448659184746731323292865764594576766661893478279239671633301731268148421895557531187720592608917135594521397112053396043257361532315171130709352686571611006383205077713710495192755593786533016443263868998351707419404867734772566589820775544679320023263197326753779729956309478959071591026930006034613590951964193655677874257797491430690630509549201040223060651414410895906801202722106884307917454244883265322160849776357601900631113766058300864335843055263936300101818356315106753978644295408605471172974709068850098957196760128685012579787090046098448896663187787106565162629984178528548249435121527647464829395126605897138414424793124566063793928474681096630380205471102273587020236026490887060485203129780750085282567378716632766157227224683146796875223348193906732672649828969569077521820912773147507068443409338747286530124005913605420066206460035514265089658845548785803632104642025316860666063621479573487630663820422021588817565120565532891253837987659873533434745531064273187953994612216559858929416947483778394440996349308569059093357655595662204508514723225343163790533615111560991931838283874672048509611595932806750933547370683044602396342250669787157338404584642000866416110440412864946879077669248429643066162300212069343722747630926667322364677909860129062274628195444126128253072544233558602679781087223241815367067146987291959893986384531858952974106173379565153419010729850439661713692924926415386393048851917605664306575198850262700567726675958217722511298621338970251794650681279306889096221785592737703676747575952851174797166180026990108105205576149776674805927796577201170482698538765024273983134823982224480251861425917959294719148064267517762601906147903430221484620109846151122915223245365105648582358517220413079094307825926173971393333344577031999421757481343319456733815902111214465832337879721881661715718268717411125428003626743411938726557735626967889875048383215559866978756751174808440836599443190840621233912113244414687814895830561449787747813795810389719211887575422348451458468904418212899539410211783102737019606252960464003005456623532482335556761675458235287837996707117734461627126261383695388261809269442903859216265098486672298431585256493335095797773413690605519876280259642504065112530611165791945395911093376771013185931229998457852101446425816507182798561455223339214728445921800389052472809567905073018362984842824584228598935511333635151016429926450305103749771673057005088320351756106424354464600148133470931218114706994318133157069305945244861122256402965895827576096640233647752250746783208149443536008818775557711880049964175618917636659901183703404743842200216370710090193732508424206329162792461937736567835354970840655049391281385366807881432813361506160784728657230673854403126896017725101726624708481841537931844026704127490191513266387662594096562093411825971374819028310320659248632762323773976034659783993583168289714732009621923006371607060299805931623864432322512398156000127242466605106170076349048841486078127123036038726250362973913232187711955842381116378467676150509457937421738496284149905132591015421596903498913302254505903748248740990887680826470829019542992462783351057050691272559526677936076098518142761406324314991813232706664757982965778930087798840887929242539554177701050154284431147148543023161088416098725748134260460029476279072310681235964160639356897376045801060565295643507645541373791599461526029248488699783089627234196412157784474058077450518851959638029004914974965865833657509179843694293148749473948544452858865851397474567538269188580486784803657963271791038781009544473900058511710272325747338599349438842197524194934867688584446623487947621400205721276295611051939116073920894717538162429322830015905448728077993124034236944710313735187144979293791642311288032508171409007338864471668790661479932635691903656175721575137364896333085729736473427826068944717196952921127997963862547303750418911261666806889136045656654881263420567414677103302328462241455168411052503801914049411737222669506468838698237785049958156804876327090006563816357430844605701571893265141655354672384376208951090403972270244212823600485758348798625182779789766076516290003571064652113177992610136398171495085137710156895993124305645305541917745421611332211232402053878302105710967276774455996145265327041477693245543519322240286854755368239683466892044411532001200837107196970579027986553769781245070110433737097529098822254646064501877109072947368564153335814101330485186970391233814732955711391240349916070237375042795436985412228484733032847621163714292471825681616373791123815633820708969089734104580914639162095784547248409343901969267630388295789804557284072065526496629087879342626480685500733897435657369111167704553048163734962843477923424773006892228282744270507660770833022156837564770768819188991335564696318072045333494421266213070092306858715515671101517505701258196821712322839960845182334367011760158508876289634798852140305546312487672451751051107977092183940722333409472306453153325641715166464402562173097066167637706359665174871305797483070361579289966851683962198335756685569276277627710883347149000963146851552411241290635189422058732496968163387617620546052987851296414898633543976145458014553962418977820652528468922383207343921856914291076728079681892395682627227726028523813306121280497227870519428272093505264609681976400509137121431109158892607907068736543701786328267098729015597318830553078643978088700462781268252209387856590980403530129596341222543978493168732442429276187448894569500265286071664432119811867053561901201754555475296171236470855979547797942685708408744739110162100374740465097560562310819514468934730410843759392215362990208765513220273146600542791348638167340705604142669064065268320182622254774517002260131297159310343728023909328194744351868293388811723758742798329726461971843279128626602605162193676813206428229975386477292417840684150767610655387918377482464654544825082379880429108560403538695269977036522399077377936639229460012942827038799528944094604802112469114747670679048716248035235536119150421203359289642261408412058473740321170633678549900428485115161704686105280324244413899429429790606412929329898760700942645328197110382078538606425129054744706233669129054262989322438938475551691487344647800988796318461027549449630761073260464143066464015168131215046734173120254044105020115239478914375223323813677997678110733451722494082801657689723418492779143931874978121231691758313369949945201436412647433194495278366449606909672150083094086901719545474483590199028998521335464564423759250279083976692317558934239271675013975881705859564479582620554593951636003830024094316278476850861600535843415666238467133508906775965201004748624564896944706537823780238507041942603813805966653991919306059708903201999611982420886759734237182300032709847064765637484118491354049219401035625631131380123305870568198276138164282882232123776060070930711571383869840834818354927678183700213871445872870236021254481110256820796566239947514362871592621500669756561801821791917436288503157478442656489623128704420472618038117485977373357913027507262864416978646494178343062095424504110102707211877375161372296383297706003122657293403028000969167037123556429178377672813244525364711973849787561840748484880940703404204383369650853245528749603717578870452157435737203576703432358377354117842694528200706564888639667150135072422599663165201112793126051360872321034725487519684810552173749736265130040308704264013532142499457354364066296118286915716412535899537027046030569670415037696245421016140294484699441087624177086148214131214764846631216426106577303303813084413529118559194464110458592959261501862172396137023493375874736661348383906980937335383556984161708871682541202735630699153317596499164477908339095343028233114168259847812065617452615820218937470521015099660145072134192202957479179810573858347016863487620093695065466161055500004094028185689074476821015496140289170739210490100495794383750194816872557654560446442647847833617269236105989842084753500838803516456964311982668049162779137214522475684096679437841745677355978825380729642578696623024230304782228887548134579739172566788907925227672128988698355746671294620990570149643007845471618685555559570587594927296932008063175399409789461131469985213914366031084850039567045179703475631216964767004528071159039083124835122742870855444210433177166772716138262139384013956283462768873681036595099028659238775040211359441173550322774110138556819503948115887094421865519669944580786316965321971829566704177949551330009068115875900254970132303087867267591558097080038967055240234221094826729869034529008523960600373378331796347428014894242064033786397530681305551504216288361337011279519891816192287559695217026741134432149557027326367897636203746748482779826829457864362075217156268082814345212786607649260811999105161024411281175293054973537399902138989814253838564764645895755879568105628658089866509502040531343345654450425691723500107285746483940654961296680307353284653308300788634508358354008478498592001605452405674884046732849271300092003113157228947253640983877349943187798891580058074624585403508489876996679462753915911691939812666768751620613430080726709989583305109345705361201511002708517775297981137766220326630722213212559922659943341022077978546977501630232951918289159905231834298290632514300048472415303449229804977714501555193803280764698278349282103985292592228428982329527536898787446223967857155911253019068185143203721661082565408370565936171862283708605981413861937687320470481444195060991946720155812722382595022818979305718474800341016543400317120038924813004411785331919481737564730284538375412442941890189932972361959712663699022550728810541879402771660544146160912115449867288874452907169081827718646723389386889880130924102057147681036745258398668779684307451902363388728393804665931025348528191802193125278032323625469494417087121841355093828950787984478161591338060164686975859400160056941696434955231508633876757972501692815194786167885902978786314566335259670625548783525030579751166339194229631169353340883129695549756177037650915886696709880795597742771320413858506388738059589279360988452796020047486754127919450533918612860312942909118458345453243563956988478185181479935374747577763154333431745543039147132222000152407023445709703274216139718644862366846929555491028581694665883951747271167989146840279604820197563772750251390996834956384921154703089536316324455710114017941722838982630028088302162011663950886272989894065013449757762704713090117851320456749848757454631768840413948207301834057900937624306413966607995547040883573670100900359293814856187376785834132866423847809900201765568561395615549640291889917855521307148707611198537045065686441486742094509747921732623904082476408604950459425468846084992982063661768107561108700160508584897881900559726704206561728301746319155466310307074363037966490937289753174114703189528944059409931305316178655243724277981385665822367791427073883012353087013722137818311990779399502511833190228903503591884996020963926395442051246608347516453321009894190290200685773284647736687920689691125841724128340869826793667288999101047901318258047209643074063913628036087063196740827703927230388753905492155880240280362377943709100085495726911465612955952963627443363027597091733715464568370546045947316741048268620112395883630620094403557986359572743261971895532234138329434300003277209641981648966701745917887419841436507672340526397162979418549472621595389310354051590189642002991922498140499442881404796249118595165664272873488348741797339754732801348559683868012687989380467113285822866403075431775061841234486857052184249443587019700304971517239441504998707146990753395752624178556627256765568546030680905680764548242767825023611768240662792105073752615533615819531198394304650569387960385790177598358384056259144126388909282803644921331141631788383233274696223072124194798649644165701494159526643305170134143190651368285137992081185754881001984239602503685548334935759532701328271446540675668423644571939055743000763418780799029227158519171556989195375097526947871261361231395701001473213196385799083091357049133457894193014433874784888612365289492554380255504685755679313124317493235181407107118231715986696936795858412691901359715977886981835496066510922406795943471624657090652819980785391300595284889502694739701067526370220315529522533625406997909378758354101281204616719648293889355096148016661365224744724064455836016988619607099604415119874136795864320913768669426206587742602558171976882718653615800667329338818183518839408953363637465523599993096515630497254887311639573421354216173280825875912342929561891357218004691129177863656445876071126897662162718241407414907521660768405226013923387018452962038688151121986581589224430809308866570285934462291530151783012137198877396959721135914345984401763196299679147883848149921897928658038444083073465643523566979335794375720402891085213813698058674910541243316270268484872404392583871329880732965759847567968461558396200758689298871194156186666405249861437683871186363930967030152876395826082978204098513216952772596164726686672469604857334746373466905881884136575299870693075514408808685249492873297103017008313542065183341339673112626159023915185335294075493484158435537915361725964939183314310163818359090459829086215220743242868454388027390996728554105362284985912421424733769054299185608002727686069485878990433734979809823097231478449261358992392162554993236735442727793382861062359661742113946879144662266273671331502390051062172288284028407685700940113195040277325441157457759223040469466059927915890976505834494905442883106037381585357453489942517218421193564592067583606922571744114275565468512452364288953773190063624581674674759236659100581855216529721622118361559257603064344875994469565946508045940077550083424446932496003204999838456589226231031270665955521971722646879945991444334294486345427472000123553425435575166692093368975546950883794870738760339677311694340426681211026734326532662036712299473630557773342121891641174630219388208452861788434861236354267968317311748069607204915000967968184760543226276037258168242980737849610949192089512069180435561808939551785032235627813884488979658867222669597519020256578001433007373539932364724760802206040721862211009625922034676524695826462217990796051880846969272205932829486773645516681313703765730233435636958948390158045363351016628593288430085400549299458139798951586747399349312945423979037794005731665687381760224568555498688780488500056253729999574577917096904665031357409098274510541523721286116149119921124634690555802181531370006976861593662382613099576783375932528534315287655754408386529136782155735613756256415945002685401760081716042721535346213357315253235448071705891609235674299580123184186357545925369678617362219209716762990248623788111781345956781152652982346949000691662720910030168184860160329398269689626900004401282792775790011055283797625638945905748982056318063456077895953243663995235326973423632912129499401003606222416269631547733237661941596035548876310141530285846071147180466735837573701160680791714320416504796607152696838024002618239818891573798859955354658199962727337171542440197588486795275390011113491093931965144578195691587045419849728853046012868093014129719480102977531524712577719228680333236114055606066718172288018149021195836618695645624683803572677003037023481152515366732473370979127735402485364480046900891843907238830801737565477564608782536342156432922489509360844982187186244231914886515510487861950399557417477107118074576963852334581770772841355591495606079979263786420996585701706222344092398095217157378332814189229487657742577845515821987065507319357619393248773463141387766672534650741724428230255109906395915257690603994022023242129646546457353660052506845676408085796465669383410425405353513122409078785789447029465091409862724901196460374034122085442880304377099882835772091157769692380633480882215112482248197371505510913073795369612589384824026165759747429991894476395067439992827934595825987089588116707707156017827973265459855717847996266937926285898986459011493298882789541326937974998760040004483350508009990507598849169972350931458307321827363470025463257646056406804652799083900051781384843298970190199664834531397542497057041491249495240842148119666262654518168484095497098269967668594605147512189705167185111892680073607092550372807400944767647423181728616220489992342753569438326620637292266174310613187722419047761769683481541125689696344533881435765717456473966148564868002126480416800202004200094047360598235541318707767491335541126114734496925781828785998340166375359009213561751373958975926829764840784597672971903401124122407380972085180013009989191366954636902321243197383835527337077309402535330678167675246083662504731972772746321567510104597378017347031434366699832582213696239112737157776626365422786538044492118106020967518713641097294012635148693090514305089960726410856981350905010275504341105016516612853405022131675911628916362934723729390184321685062010527805055708232895027394088444350638832717187926206311045049815955134281127342133506939315822520886730667007316166982282209062861713006647523430532053975225338728719400122864210892501473430256684057694730771860004304282896206046688803663922079103249341698533446859710908483999274480351082711976705336498465296956245483854219221667147566932448865846579278325551841645051135563490574152034376315896385633336444143836944409526466183907428865120640225973079356779721091399646595199582699306015100814977126095139424736081962636283960223257537356532915662550955721379386671336904281155551893195636099700440639139170235156194030621532033105882612366306594695175132883066498420671790571878802385968730899830045742207182470532489292496128134758482745447646494010226110766592015146383533231835611655363362036714434807637635886139073093000690919163852718438543891382040112201825043774269857050787535188121903190505242738006773824402017473084510066832784058241768066728569875798009800537366828240303473787983604792188991872737330211135839457411737934175402459933175907126686337114634639432142612809853939299021378092630232667487759913183563548054401877089156945289972813774187151371894855956356442705439053098485217985321929760074522331214102334024516245709938973242658616876873810963775540636406314824132007265142455671094711934775426732744837614829011489304006260574984177157944851616066177123521020484841497416898447975707385146139324300202455212279525323913276208420084104953194626705113724790722780014824592488285509034790532126800766328931316087300432458238224694591177120117615781588330983363482453193396314833190424306826458342590027759826145966563379645035311530161881939261836836293548242056819658572080834220938956736150231244178726774348145178523026587272754017198158852599765258125328168232005429043997161555991983364453529792240314742198325656819372450097634747370917405075595414901412780380567770954073098481784823266587468493435374190849960506998039750686517495856918411859527140366706441279661173661833230639109632035126534964203782357141549085482720083768362293469283256611372117404608789551177919968942501860063505137305572831436740937977478866121154317296715164889335705218872705526948607815995605323036728445683339347136629180090826438947823669115010422214360687258393875646673308118786669953774288003969136435859046700169066268999260058028161737369229731411565641360700301996122623174995731846948935964608747593699864279369513550561774209082826320639167878155637022195425350514429320770087407425343020363939955261410190089386515902280332573305271986931071106417849640615967763920902995178203399917758811034940957874867493588755235954781854270878913696553628383270306371295995442373549975758529408134458826915093528928446871429771588647529715947479741380770748172787656753413726655460461542640629059694643962536940854148902621191595294823080764669208344453961267380091035784015087936051111887257789843611783580210643618516322481295974502922263279043039086824655870700454940537397762254224389452878933069229534967289136562793809761211526021766624844594047539134304035593347032248498579124880212414986560325481891992980241453290950317917779401990818672425414361721525024508137983192885542054543621768037282453000727084128365267403625208496849129388188453827656817500060759049158408591381909921032449178883452412471844432962660448560496274947824180309749892200542770750812669662661843163473318901172065836879755484774771478094936685687901176588920748939566115899568204555452794012897457245051479209020221274537943048192659500360389719929575579199259305560141919558778617133110497356060870775932202513697294456998343396217989986199701168165713141779885968538129695718153731500346725085011233555802626988941308795933540147605228278644152297361787257700987784871630374549759736032266627344347002175031031901040889364058857861788238024862172542788975730923062141325186954149067203921073359079815534901890183082835779279802609769276344849157105106866093964628975500450686915041543381648333291923573843371479443442730187737706297292025288649944582161323599206982871237323836261656738268408500154988738133785749111730394939038185769297696628970559602521312723286844214211493508481571950118829627541445115350415664435711653130173894669180738195462671305459891445083924306088114291100582485588938791922110084576792776165687166845688770853202689238893855285058712028267403497431701718783618896868884123765382836075229543359723499998019096441020745620545596043786843749565280394018892574775720529169926541692005524500204502965723316141207404146340996228628819266581408304052095787537692523506651937071985670798737823205034816985582931812637788244605584831062111264613557548288165119773739598327863169869282209793366220178140671108519146988211418305571844560403174028765111756781913729118548221241493549553186848540495927856576946389681253104123549863858586651791263650541939810058581521624511230190788261823407860814481163356250068050609909343688914423580204580883523648097894821590656155221382550227384713768769632914681477152339680309346946265995346002200819144383280276845248459211380045646798549304961309191353374129500755784586869359222753607278432286126134315614145799092079879013670211413438696028763226188217297038501812983208737317770903559760405887977843784991686236155788329085291767640998422982192221622771162507156406015768753060946265662705144113724966586001662261502517491062894394949267702762947513087472597194982107185875588341081533617749483398399335523848961701770254081766884903914820004179218871302913988829059980033313252215075578395755457103104752858565302453816982686275963095674629485743418798502549064066824378286366701897107865207975475434432634128957942320749220819266116832502586452328513311187231137161685812326886635032279715279717273354125465084928807942926352723397062040230342341038409800779531668702163603820950766182943593584442847524540202027495623611331924760627649944824640737773332764679208904924852040173981848104445544712316762749605160754046516234949128847599615455600579042281013605549364401060986954856934778335620238260033204528202667201258967547990617081857326599023303118163555298615348712721217289836641268733631169650323894191157393118421819739558475695782932648962680319733634394651240805481951180150721501526562611218016634810050264439533149393887164476883345834598107943994913097526962057423143640651761206986057231068747349230705035092341360406363585440621381890236841058900478513116986379275727540903315811486925619266191724845166836385913819709013489072245914379303705743459030841647613375252331334350885546266739142144489198278859153152012072285106483884598281492519716003882098948404545450813045448938866603092143428010966890917566556535201792343230398124007781374623458535025797272398949779650174765528907936042279877334161058456160021966048576939041694839742910891700383801830678440666861962756287300299755339988150510900296310751133454164149276607916160031106295527191977479460422380903126581096081212533268195267487052256535095551803777565055400606643960933021398928588105511737007070848026964839487191485177617573420937938562542622124697949552981308719759158764046892507669788846657502837714832197705566580107734425305409507918118761073800441502943211673699225517230905586316403438521026436443498597101207972993583297760700366143332622604243584437406964538476222109273552769952860825814569191046276166954031104463565441416376339694446424230264228353524397748010263850711728568695672328629334668506049132467007471997690190466221749099356747375918850765924794102391945936818076230624274777713380550896732018088109898658953188053608509365551241948306312550330163058577304462508691195744275660942709971033817766036451062575827254337665530044469397004928475200565462767983339305409538187257304181268607470324758506890453817767850282406083240276806778098971075238215772186451850053377334502069935828566381074552075193707574235144131203955477458582525328732899745453534900967895798837860511600402212318362109427754273869716933777377303894998419711261933153751790369498459507404189433637246707352785830393933510401380014416229100045837037948185398899579138361584101757195708548094341420154188296455906741279818566182691464978540142754397627450165232808855496114020760771967992846170037866390723951785432964759755455915636659172993656181022765227825926735595631994620446057712338230386269600131865904515996634761575241167872340810801159398577739062852596673930678774906905893715128121122806438011479265489553286060342460365280240398900066081815100128820909629758256262230911166535284786154151065529515340347587855228625318367958175663222735746384445886772567652055691137710719245436002152166799425332058693056172005016919598608320564888587491659982704703829109664028354984426520145822220977229175665052998701726061211770257711899494321424137361554248711715647487369150133662711420885213949851064186086607183009033545209054453448937978208675148578840116913869422345367905323886047328217654984569041712079109755594103624565814320807460231622708421678946423009483339150975103460374524505131710629724962256673025980407544635938120582148829983051008500957126885350332611838049460294648672734548959909218701752958418924055680469766270485853334613027621475164122628458076772663875182931572003975232411278435206382539028545879351319139589280019766694360775025924674623897338746219703408693927157350828820425898003857591831601630198070846182361098479855510208815668509903114507310592596019867914884541643322445496200411721458342180351035932561790688102609722896931920593903799903410500330601541047399435222187739116147729678511489361234977083923279689044636836888802135084435931699646816775059709801754969515727502903366993677635472560621098673428131333517126624553471097702417285500121643478498055867809935430615218587843110230633415903660998269820591598202793437777413512903170499794141329153071700430984468850845151057890322741084728108072622209140158963871121120723037799522808973871416069760024019290333189812436542316056363977678392801058659575281622261155196883063179215992698856148744590749403631472136670590242686472038254649920340891830677830839539577152745764929090176884964111154169972722106512152832772877436493122241865693721887598964376389365754886466820506296198551410504390765421187099259090980117477855547189634361625156607434565708913514543803187473441473992880347078442585984920930441684437282380364426682665990291874490665127869087580434259598450872758366813619512686773807449848687904721673738856660836321030608716908634096093728497612759103135597006548612195425018981403738536741037731197250560195133846934882151896700180060307021627207686661040722810852150969579439231386066284398552282471103473698185277335414742911394463178336889958224147812191103766237843767248452840509867932365348861013466514281490278961570838516695943225357331738396961178734154778822569505487828012027767227410359260590651760112730610272774401296938135744152092601777032495266767370303050627520298819563241666332149459576240052713667003070578442328323564915918100699910304872908016695666267003428152749430461479067025459346268143373204295848895233151902257836606534538308364348829530021293364081525659875525869476476978083521118587714113949546745058193026132093415535141584690004474482231631794126771247351039039240723830031057023214982876064372690589450750599001877128109270337606192625253473665910061320529738023479104597985097104646974167604324755903839857971692113395157093611174567787738142922586467994016104987690513735991189713893255351089061927040739614839031192880105842824358786409062521389233539736523267544709469574435780946812380710199493403052952014118202728731516281889725763830051231518812888294217624569204514909727270766546555062712615781837315524587634424180200949428803221267972501241882054942357101733460460379577234013130244522266199482825409290433187814580674231922684421882345767603660271409520946369356333108335979035839556274626160546378311061014966889020795115354804184289621134339489822435153131538388156284120327564072365737510982212215292201998625821210961151038271793633133490411486382760564019023625934873106998443466171222510384284183973981822667337859270892265260934925815966879905348321808650660633405807337203603799301334244990050649614649490574153027340943279229952677901272493225776570416261736887335893565824967469261050456662275192462092598598160442466862362086408602818208296273844745158945763454690493465770898234320587153993737652057111642994035295854465656390182237882048683668619830554945591597887370371933965311823542624761164780383129216228574750006261468104472337359021705170795438655335740117245074726144576858921019825998634237872537624574240805410445505578741698099094143215189156319009153401918643579107595301775945740665114285787987878991465865777136695682739283465305261067558411953268126318937871325906665089142927825617142447731586391865287901385367590161963088024098676831249723481340232545953161738621112525481048702490830930846081832618622708679146724671590983675466314120032129015590884107161549120169996009410863059452738425745002483623889225612681047734302146825054528501734030282503818806795853567957609490985755296726635616245655932922090089370679011389401490210475114768127697406211111920125562402717672709948414368996403706106726023740029604371554245356276295537736241161258726707754199756766540953588743209903853832266686330501007357749881285440629251886096496177427207280463733752177118609669345234239711793906722660096824940939552373055882993817506303457630560224799971862254902437597068242100336705324545071459875107371947161300716544793198387387670814992378407360677130613947120420955913909470682144088594109972169129761321194147337928368279741552655311101915750186884035339980646363433530915331721179647389688047815361798777013691855197098169348207422442357972079511075326353211569012633793868421501108631528519522130633838108514299718086392801946922552552712060370972495984599723926441678089927018305202850001279497090352572099297107041033001821566743849307720993043224447464618956395207633739525554583948876709560736637128520131840726386435089906662567012247188519902921176962472275360894089417180872278546651056626962965111266749602276750123906572957884292587859287863771363493337378611189504750176496073356858533571140039425153954846779289184372152026968354807659765388404183406832360958207243077050201947729426957135590328820806810012565668947360411995334658758253767725109489650670893596325219684107093373643870969929832852373050142200530835833988241840569432486252401431129048754552296150746761541086018813943446821123174291872978705482899777866356940649177647185805291252144043444080147960709012181648750384936893188660463102331660070185701312551626363002438132321133199270938211089071403382045273917305565549341796919083928971538003303733603415643711038514777370564740123294302591614313413567410175279428146456005329590762229047894229723394855128354529001897425901874669441453174319383067231937139271535156806176025469046955265043111721819813072411148770682344610698398706432944483473287360251811154088850421364492358856670868832298942906521545303498164795914926335139587189323531103287965493206484854413918524879272939328718555344930506819391953262854019333313044854999306116421932782706009140138709695612522355013174163300656368157223481006552839929737971420508007167041148840342364119516363346009172790443395212990281256185970136103846565189914233688589610220202144465052900696097460726354471687571976067435226505798296844846166222517390403043156881051469526731293287211202354596028138255010290460283275171661598622962026366919346414919030011030117959505426968534657879490724631645414666678969029608247549302472714236998286353408028142046145373801769044947172954777350261840997722305929449375437434701568555012344767532344713326307200018762724334432839100557457052655752609803581150018600036084994808541495114758160427902989824561152187284848696613442618946622905618981631418977728472690633972435849311188136284402962057506620667794370658809521555588760631860374019706093431577564681754251494961640559465088326668328474190207658000934520890984036651276887988791369848688033702371535900089023346699874502923080534096885602002382255914574256884925011894756615415416735598176015141146045121499394790434252956360645773361705858379686040119071985968912012078004962272062542477082406868544930947541795721014538567559779410476268058453064184273258749396780449801377960385152576409576103881102246157631163868630009246042215381874041593189082250346929121009577940415236419472709159909496273168840100811725071297009889576870063811735159529647831661927435929403073878229156557379932446373995431369771982027753564128893349368344152593616116069810782394644015178467578265048934776198371321357040763009018181833909132876748263059543715636299534300578973785539726894369792710667802670265516283874935146989711478529175055065094244787609343010671563848275463699696306866680053536624452167996309869737842142252194638488796009372790978354646014359587139195212621500769476516271604639083403524915839192615839675619252169788067874266999226080143321562600826105650175008353347022203494906621206716764597561306517467867578529373527284825742250070262568143720020787461024314268573715905766030944116112174654442489439745995309985976686813504467719920446628848774435793389801505268703463227424906262689913002019194145108764242758072748255260811935409621107913285047976641828618973882419390366978979483329784159782163579555939976951234802904849294131022206439030288332048571731706389983546943512359397406069272088997955119432676298683151964895747737616895600648886217624978599333522701697409750115560437317026025963430736106008799008863231053585713049001871017776125885767845331971365253085619707094216868323819432656242441952918567419751927505410088388376663488788107420540569917752675488292172342433789022501377960387208111374285141237607031853466724754776510057028261376098140729542559352760225384551107126628890766428934490874210468906651150863564760251846114278545058591351934348663997370182749959119219154796789448169986466894181784759224591128773131313299526687723528252116072239718337944582329365028012666647505469838790646106796582298648024698256813660069533976203922866178964315453212946020603864827311622087615030783071107719141426657972293500405811022354080641223789137184602714075859660616411840642676311322843875808498820685970224008613585262097093855465110656189578760927511225080604572285315700779496832313156965496820279531993679778164279438061352618829507719625949061244753885664721730842916892852093379604085508759607568035885389221975001681229305255190138419288300199902911532938110817523572132376486429155410846801670133429375561553870998762138221335400434410260710525208122452802421238540839940037014363721789735682469263051680929567305317378884288401242715597300977671196281098328276136183577380345570702469018784261287776857175843355552139266416822364674434656474905253335709222003719803173798415184438088579179127111460542026443426041529540064301661504347859291224441005854592688790874346957087916215770082174124391744171650062333438911558238072502009532258548645391657995119617197305496563340901896246361532375624092798637639684557362898036557309738380842655087940314897372460501973643389495413820297380962216462298974421415039543914869176147562633231180110312218946414820426538363008349816232298412124497546062144373821661201476277633345070289293810035830911652121955917873019282499948196932884188502275317673585762759071301136705313825408186156413403365208708267000403889187796721494118030437448957348013622216777094112543934232363756167201347321904067738724359229820824300777320940035758018805222778515717229420142601025914091646404860176339518116929549420830410956324633241919822006836572511245675527303335445973382587669886301331361672878374306948767039242390710194628271666481513317755492290431261229517453458342448585878161680252105089465266006177371309374082528592699377726009725202940608890448605378030465582398423963451117216198167408138413679179636343613678979544739123247569454345884197441405139916501518297077046756721017852364513529424307219153920605385005512882622309807379927576755902899508128596118774368844733062016125488246992467770054828956332470715209432374619858700406763067992142211711749392969894118056415255865960465479458860902259122356920013155745771649854412939662208057831546899499186607254847606110147235876564994023046265942265149447050856485813685985776898782703336411444743366854363264061021918973140264143071647918333037544545287299612632711647148643420838436323313827938419681836797626199021384583242734406098520180448600689537206917843978656776472879835016562680535717409245443252502644670706233709326911769665678895442754595716643768404416965603408476660995448143399103758183036463726191789025962192900561435303776266294076344837279731552113576321038995084147565625816969424983922770180831300682208011416682598414718514911747427796302261442446752644546408420676011330653509900261168317795281376624959259546479820575152755975214392860702890583047690189513692233175703766922498764217938459742552315794520976487089121644268045994723763452782948570909444722207863841355793194637783219248351819566681168024660571997005408527506480054598500967153743548985115911862830703926887938751748038465467157421119719926104186280123199886514411985574084017290587973261226115886820211598831065270230516455698661967008865327145186265915116835471349140227020844719942147018850101704416251442529084702103010335082996365074460541612905837667718348726042723156438595991527752634202948297988156515732133004472470032106725721925001958405802496873444424356741385167100993113589587627695667330075201223916642544097156349796982752617853449583808941272972031418898006869594063785300398647058423937473878427434509123286557784222725677095969847097652070158940794077901879604632405994444082363567677476045579361625683459622753174248694781483695906447377655576645570009833319326225961350979499695223815374868455267308729626543421957112871219599983640530504364515981310956919062350968877336999533144996739574740824173652001304807604634370965898278018048078018827325679365962022157778877007538809337690208139201051824071926876691606354127868863404238033762597656356272137535571076275087956741070984054828468029993500187550768462069660088688750469256604579995622530731674868972599959195939864899223241142352495050274332365256301370764164669997304846504296006083188742817317727335739746441761593455263818125100697989103602862770578553081306701853350371904777900546622290368036126366318924867662649154183792945852367378120242037254569454016199656152107357645857733411262789361424280051375188374977196790279523587520502790788151020950993594248056491553060922499802286767088163862648635874798184937457715352114728162724646808499727679804929084078187636520316940518257763568888399594708943590554315069397124996553159564107129883403215024388769983530326860411954950044847972335988325207897397308684346588234472202463528229656516640889337850563903049761069138028279764666436967016696913511060743470925464671550408477646990834660567115971882699913927828104327098926526777435785146769175094227766044131230715761655696227762980357602939178669609443355408506135286059812414259264475176843708050700921845824260933090393664906662345418285952793974134115652260233426904076972866111238496430930590846443330150844266618724356376311109148806935733127559773160518850282051175628728888782543945317561924989088239816400514868035533347598750252150472807092683915821815078194122715269517237012629585065300710077814307596673792005424770531238502425917115191503275230335650812236962562951922093676633568505644435947222567891363188064500954221189703772672419006216834148299189478638688018511151601838551913171581004576892953743432609520216829842486219620202501476883997620498132096432192139106617196471274472216043168365168205848769357489261360233794887923414307366764450695569615530027635490674647147010531672066229871634600275035267800455982878349705005497938852407765433583727545926385353330227810563715071009525995146152959517322339871947517888490057892273908276830892475047137768533811669791405288527675091747442761350010147091454793647701555507262030647117846990458871228644291881744209637632880329770055884078677652004558637406006049037777873881399012639840444800449679949495995372928146708992526157275321005133635000113232672441730538660946267892311208313003039659265326377491694384093884186528069720195199777858603263088257577039819500404075362715228262196463171716528055497424961915169619746893830561538287757984928699116444123120482717784653224090547259887190126124223011455564903994290671856175762780869554726342460188842122747771529676715660860161691927792067409784136347001318411301135249017617511635292477284991767338457634916887222527760201812341001479640289385513531757782832258683778540069883921930608430224094235908525523825724079433706027536727564512551857117116185779217300825654789021724613144214509987267727168872700613500466900106754451776572925370925820748343333181767939624615445300783772499174937075415996226614542016077345965375545580847370518895111137234530857426856448169512132371707238487426022606717696735726928708350283582610703661516175829431741215745037716205866355627267004210229388622693681019197446829208248300818381262602074693008541710677879258631504596064495869773912299983447763982948277396044599489033265862740006245228204402207674682930756267375131805749535849622251462120442996616521443179278916300546583954182397617688926201585918686923513986953642796340189902105301175041660302184250109821016507332500161590899452347788950878071206072569880974227410568523224378649931559389421536157440749178415277249076358723977501041042695290691622866046703487867346677086259845650981604568552922196214446837983926833502181227871040986667871721730415273522680711065857011198057993211741706279446829073020968367698027687631230274839987034377782132147291350246900090721036417633709029511943538906113361147506692761545645108258953932926792892557097482919594285771003696438376274884197028650020396802126308972757367407622172311209060045138734840459992176964672613911152133206992030844490165925195371120474909957931909534049965325742605283181010100334595297738394128332373849916590540695822955505424377184516981718201619259772845208605378129005353762429784694895498350930075115384753301997941909683208308398809373625547875148589789379210248725252999899631481299144938221654162187177308043302845245018911044654320883652164320753465681351263600459962559771214006418469674597258356270630258048645122874716144382361922440097053964230658564219199229102782616019845778279234334441473728834037786061472090776824655349275849218286809379317398920966127309266443830122821852996264765694433605370357063195738215250634600760838119501397348825933007978306565328960043312280598535884428328935906300960616669416727115887795486465388181669768709916893213754961727306823077844566996695472465838022714248280409798320775860711812264900204511413924483040829101311826358054115882010516586307304914385198498513449605065703909537330894123192474851219535803597366902744188871266882775546599904566018435139104780128547003077251297691839360269279765691325608427831197069765391155622628290189586739873398444478558280283763554663641768523313220171449596496902907460498215331743892556096762756545845290389141669479732077859474920217356916015137758304477730169738370896739212519901007154619536319824747519638110129382022887375552908412461678901903623562567239207015654472133580744477345922429986166593166188895983622688356984025661017923593728239095169127178120370002150131126606651462324550982475501513890658691639410449965251566651743811485627531514149432273662962685532892708599125332238401912911438975071063870513969169028448834586172615885931797572056107330583067409622487316977756042246885180668024701493612950496579917503938891759287116269863143736448445343813204804295339641128002050717074406271204199676507753495596485124328052841517625520784480823852866554904246805352056805234947500737004153689399961129170603244836100423658433193630931250082242479623168007861980117695257767755739188214611424019461098026253772255298659501007888843891713955156796681453237390460503424440811711705037840276023392063936827455044810325084056175191095650824146916625467192324755296053643563600910464484623072863309265931207691830925317569411313745108207398897770750521092551477497076313204775365695468580212936307133893482238060417597442052766713464448141199232250294476454696819662154903631250390950763554508617018903601893460057264725982134194760129072547172436169317953672323573389634534321537716537617242441157185819508620238862418749683361877580272567005095680030789955914645061494267351809472745683257120971485814815937204258775603563535404369132391647534923356404096294819043880261630740603794194149576739424279632244448148532299783075697249089038130239267740488635515580736020480884402929745177859741106233147718816127998628042894174028335705871226413181434641630794060341653452846020298078448253269675784574939018074347166840543030094390439842053401468603391512449236685711078830722304310568161753878234390007681980895631572244570879218962073204013365486013841212472649270508858484453271937771113781577243177325723799288214806753753533148669875294935869131449842682076892890523612762834513756226686112254738673851400378288490994554185387714836685849286062822722650913991858895351372669809536482869906292696023902936378828751503132944704535683927987232136201250685966023140975915329653810619027960195447979667420551525071554409548806122001916304467380619415856171432799031502358873434903042946715287504405005339045278295892161057944107862824343320156878257442276764575286134523171139745628871982946813795165865338334558810941485969737912780604231830948053398616876709236471833024822023733377167793238300746603434843430586525556487332910413240540073666355282707091104622281287342850676240385238725495641998964039556928642416242076594064409251204614846562159341526367651274043432937038537660062220090215511550282807414226715654999426869587271454248390204452233212691882380804345974230237494530356518061935329937488492005037006825761804173877424968306302896162348272836014638176669469923983544745320385356846681791899644266661365343575375674202850627366195850394394518185010861089408932084996028103203978897230639602141180606029851959291974011101481508258441654367476173811337669855038995678729220436929759432982754568491467661230782617152872414640819918348176365380325163145684122373099391995109242808392709645898710963901996535038100321606833426594887005068971397373736386705585941409674171827253689750944395823678545738440660348554343339953084754397466101800758808459604977166029468514416394061146676721760823473518608175847829448054420380816267218836584365853693448135604172138558178606970968918962657549150479761870220937915624434104207320025424454064730411909377130653736800229861349718986606332938440831702563974616443729694068203690999923381271732686593739478006903163990093437294399892577473230498522738890977950261670721438967282005850915815971306708837979430410294587979832400657754296035735619285415097449546216774491694178865084510781431768858124980885645328939898279878970664293102186751143793275990464495354656766192854416195292281697055540096703670510597118537410716154496913616369862343815561220641622922838888021492764762618903386523584787899174552969513967654959658930754462265668248727090994933353306995741177317493550933104167822481963653423739802547359641789535884693782887622747607055884378598819341776062284415535128854029074237628984773700333255241931486034903539307108360258192740829435356553773718125142055554670570880665718480553114008847518567080122371076857047992679983270560846476923337798603939617361428316106622714858216958740089398743018126704050182462505317970686026778870389040413891481714790608931023302033255705153357392717159810394442150776241384258486826879862853699816764460013717337844329816248463473906813552565301316279387678195838760228974393994002105034102238689469936504606759461674732083155883960878106820133180087743771633668228914557161174470336728104729109168662856236714414748479829235113405590717029571942948680764773345509859017898881672576584875151475489307056498748020790152202708121019817709378638860702164781088084668496411298852837232271879098905945700823374835776095612705701504330606351820712084582169995451391973781525353164358009921321151496580333145463323098540479404788255443725062692244680913762179979705766063779200141824358859547455770595404850918447964968995962567569391308108039712984888409862155612924908697724514607567856824691194785479337889799490792603292043650993047992643348794695270465799400825521892736902760587847527115610341714080279954058879944672888542111536739152761482840669362503068617551317327227404359131690886279974861774052023752906364477528356886923105094391817242438696076993887948332688710228148394022590621616333850092995954388566591012003141961690008604197448876231139909558400508277811051655539565160550958121080746554501552329338327291665433845957557916812164745731567656339468886329137233401424432461617012791447893581618799870522653887903230036318091193608131194784228505007834562792012820223105903885746534083657939964185060627729942561967501475169141795623920960612677522973719434041148984591133282455285075189321600003395780198383560511253694612835165285493000882599450748735496958298294789603120266776382793209311993567731224746885934391478384804501785810228145019759122040871078424188318841496498152015213434800154664799655338815251057088398766189844988727997125092191343559315459396903637632314795839526516168015832498384532939671396271440401773728331938577809671756019853890354030756034988774170956935541296503738040697544511566564245261104826834218939925412885068189743871515836718918495495562102764918553656811249709571850212494409733294929202614790384017371053528786220548181553925238142613860292356630155865342033640447760514428956527421987757894461338952472887329306252248438928549193053191838396743341101706379761842479242447313792643127809627502709143162326474228092503776486329842448099439398157965659187413786732703627364406507167536367152968846214165578137267200675652006101405237827171900656800690363439882382841429282979791163645561089751117331147525818234326668410577754801849009800930255187801377154850212865969706984069900748022975042265936655204218963936746572276327540508584604581326936452612947679131205246713535570298995621440468135632772206681753289939522573548056073482063711636590527783706030768798792103358896899382375824875611266765528383927928484254744217306496665899175754970206491820358383670994964534898138685825027010828384340071370265066623388905205484575578228514055643898978346072474285265447770896624101502472708092351592403797897536004265545755192976883682074465201404418607610621159987555505665759712839554301832343874537212816726005859178202960545238622125379436592499509892004518728244641761974323777250815432166082185471642691660501017946973280864307451044756832373181903034143947392701042930886702591936197806166816941355667349861770133888468747418817759903500934478627906396372175785913558792725502728655795404443235932732846856670550806644825814526759543909856371751781204559582664790835395106331235035481731704914465807565423744386454601835131700541465781591144567634182469901649434005716382155206069679942784481106864155410760936714978492492035366502113665959862687701809660638396295070448615879840302990524121188378463872027992878170682356839548612190234973927995029186685217175997963959016281384984941613522625385696968581442931654347257793781322533090911274866309845000423725226012268359836004281356680311195603477909969492610918005653072855614060571657432457337175550902332490201199402453457060069332972810776978429880790127829846207184255517053088899185868759690272893958397346959390503161998625109483449790048232470182826390066511205404776889042513162756078370305529025576729652958691182462961196055002982468626634624038753581498716922567495894369636525183862303579944459119279402861232842377773242739484295160982914964053847088844601039786202584470809580023261648362888907947917297738741023402802031217772714124429559148640579289521921420064761919672818365705321988369366999584521944869803705922447782725155827792126371870017195672164031241011474577201027674813836264383921407942631268058722616786693912148475077240029880697305909108782549222765371213364259139177302872094340132143491832770701564704913158991682213811692886017430374854241210419076376076485643073988712745567740553656487791447243662730899779883977386555786969383052866696600654633296560737718477699401761993843817496849402102847439095959978425530740265911427680473620651538164276107000904608748001783362645184498648761592290186715565017916371800836262004685470050794297015764631273120049924033885531712839021116818268936618851130868833096962297922031434040659129895188207379324914671000427945198749658986617557857783384269144588880320969218955236786546573445208879347772695650810039308254163409065201035522343489437884516317498325737383852095426745693799942062334099295827767212099124048350262923479309534445583497273853326776956201370327759992384192063891909763566121069667909053812304761247899521235974820672487276285739728589916365705269975811159600504689158722000330417918357943823042423021076382336030392886346564604575324902369155449467192454041552726145878361613837337400329916136405791658295520304131782180259866809880856179297428482722750431634487638188733354519546233275426198264349556737599469179439149555930603873537616913323756059645670298536262794049035037139530118993165467726941587017905700314993816311165589999844798238374740861087303148583097917774737800885534440056245855288425963207544060859279392048726824392120326306138772930610144031911483344869978216177174362501401007314475144476823225201253256427943168505652503424879485230108773548881950701379786422402247583206166405510656446602031062088355817552652216645753025127605098944746900915545515510704634802443727348755240137909402873455181894869856408094842272085228107520743195225894280189113456206785910106774257318366200090453077028477509505031780681920997634764123320910499086537696776073522603784675751994972895564810118650991797973520769101747257668495594604025322250682498836365172427737552686515992152081447548245701400589873611303165630321823571909503302726408102794798582890887649864211657595766552892656323544587977597464774414762598267245121647916996167873025504599131560114719056754933379481105630293274949395261980334154135337880343827019003098369329846961932659344690813123931191895430358983166188216146456162303672227765287999243519759569567445180996360620186101525275396498597077658321087846191611682408104488720899776722096379064079998507401599899389602286272242172811898260197896828917355002141198123511519845336638673105913076924335403120924870089614207375339200049020113902476657095852580058140418551283459706641237016874182294043394184098349162498394509383393914480717133079151474180863584904944541881930005208910946232043935312179095606542411603850758689775905521348363433789109780880300350293876407407406874401750023432629645283059806070974186340108467757953542500766446015508034259605444975195877008718257828751454825087668494384316915003178949449068391156424383737457915562236914441285091734604256368290359008497216377904527313789583371423882171603791304001536336921657564581588670348904280671672738461176528851750761705829590006132547511816190202061940036725945923977932663319489831017762074474258400927325109470394155748087571692525249243727442813436992278549139512936674724865081250608908146083693435211399726463092011153112113493335439242585357123367894522772901891348077236258981038682830847438135967745800054746227641345178363844077377950104280346953895233818516368668112337197009723977648535505444444703481127694480131453452265226243079908055357427218382398151987781108841889033526028626924954687237431575104380927360535835336047723515939884697814179078067236760046121850768579571895234659910562101864719002021773695652342594792902296063610482003254256686407872341805697610518509460766511719195034797916057093702634407632553192017551170625938505647032761623402790374321824896764775500106593002862601795188113224028060622837742826903630831241860702282901779141775591921260432007311062992759101837956521842376681182027903897100682176184062802473925136321245856271725049500307199098350285714305839829153920219435451185785884337749310830751781570430905078409918192122822479943867856844855018854238712370201437026460054049847753151195682584179699176924723244266863990497940356601591940342284785758664989724964464704611392409835400601901378346163057316131603332730108343571785948231649569645215265615378165082798122784560738835682875253192709871547080368611512074740056812107073484578540827807249309426977440160110658447385202654015339073120745352550584434704476252907152177000364991287643246164711663548646017605178481480691726766153396715583053336310469643479660180210323308176427139073192859096646161438385083257112026426552869269217442255874757138859569133121917848424482195992546808910423961929236917487674981834687590541961806369151807161427863325632914711771722752736459134839409683324030594634125011014202444765278984099274198104625603328628209154758091306818650241342178279070553123323318795809808798820535457489434963583789597769127652630440462529961821822990499025741551771454758867454327535477635727563908985764505033027933895772451151229832743210060429704379337803086684574460355045637443684512982822913708449006348814852916273546814369252110727101133782519850949172427037030568106588328533764867224127340891040368367244426903382547095624544175348565672886884515083255063217498700236068809063116386739299834956674267802843116653042585259047267833426578674882257460726425254066601164344532402770929457279812394631491747024683590329070670238440193670212598512488616205637429232362480434286259717278954585996157461845072432170432006579234561439823652457452115348187801453516685706775643074329672708140573736730487416667796900037229528905209107422443478302431416696556137664423369322853111353907244934047181689297182592990910090201161244649833184146517954499504373611794391020706667461029047035381272935960924876022798509242630791918697909208536803828856015960830218446003138108408100539495879447735669982170645971607938993841166306507096296493768611634725053997079066468951557347731601541786658024075522748576834576480380152466529430740697998010448879911705735235966947990486133912694389749321061854071512267755730468561141281299830939654149294137758650312602645941137457585488854614048310932226626518514071001207714761132970695366045329733588708713555060318686423008108847497488651661405015960825638062158743429658220110164285187696263375611077003412633350100838935966607615554276574679817377417068192151280610708844917275454410524779870534522372205462461296710593778591846233493256553749416624373300725641091131025889324439317907289685359157585485559552291547751783997375268030523843355080498000802907317904915923480539830758326351184024680371714272943840949206988507370942081872696541600614822241896270347614943824828250098208632768789516268520434437503102696812233910238819308797961746438294861757897780531436220202548670067386221822648291431940289021122779682178687652475618115000958873159722176392848525118252093051975936017924254029997261565092981402221832586195945226518857675534349947342337903052512805773562700068127671938856060125131688367908405262445054923356365103192419774944545932182658778519349938236753793899472863326215481788047995948742727100006266698339485417765072936167635962731750436113202284646332940286927595753900254521304584265001201902987686590605464505140983032251012570948488863451487703041176900671285149802319977175198612003233597077323744365716373853969267553181643185133269026452654971894802254792016574106023200317956755864439598241851282509069412163096211210148552184071064700668627544937973309788548077726992529720506508213324971121561744227142195492819152700554706975761921123797590141601425634714884187355037661392603488277770232684419778440535414971391663434494944089247341384569848767867053341506529152160868726227728493003713162105918510025587626048408024869634065314661116824840612045128307088031103320746306534843730154929552367956551927344700239697951216154771084835937130433925666399500858855137401987595405892402895088595392706158691565320274870971144094896098392531470952311007614582811417806632981554670318790434186234140422263120612020268582944544054974741030653446327724301767117295702236104305736387693313576717219348613079986110246138154361523209889503862675332037251560635880721833410830938353874728070826181456456414566432641779771075751719172263278924941602934688773891330117039855486498610563765833739363370241458466549767693549029114769647841381243441065069080025197531234714322949938945692378794165500189033283758182333609482560029365174493434160303575412323363799085777708569902935059201158508525317605612070608488456644425753144698392959952001990830839033176895896722637783366216206963447375407687398384038089490616511880524089565069136018387090721766546978784188472604449064782916715515268411246915812966129909716908351529428020057507821364447067978749545272147653891388845712886133752983822065763711110141471310486401425278700037764354063361279175279745932349014569574742041119283420019012785392151053991566619503895356670648763171066196745023465689325726105534088172663914685600901260981282412224844776423672289327840607319878549590708708509487233145473500042582951040750859220168706348397480728040683081190283188118681003251449989861424083992172888445202463972683039300017848239702967828925400808875644999106127730288370767767383268657624255502223539387179796422629064676592559977687322673333574884516905945724662075106561647836066062492953656326034609758477593044640660866301503279434282742196947087375429331992845117894124724966910707407411703360977167552418369825090947575069769234806051617483382190182251673204279099103849690780447859331597245023565972914979911783527624592412029996695883461488554780945864854696076998171866580107570772752980794638685519299505920858234820065756051841744844332605163823550408922473122684237120743255901249188287568368368935406562878605601891895283655876726415314584681208519923219842264851201606769825330944911885320675895419434650925005586984654093877894552847345028123299333598633123060262349211111861422255257524953865443177102944052039897119918309879059563119319055608033869924776004338015481037368892272230552674508529191090724522747076638901014514428742591307539506276706215951734779643021940668127584405891353940426182678070255054913520240994728306436290146041003964274665454786723918407905908986152226085350469280925395875887076322150916512849375294960908275231718658870995879591851496886842603398322572585290394799366958450312547063854094775257157316929287034269780242051397062595684614715506731480690825804396543537256706774045479498991071842672516199846448612785736152166306988044189288018970388768210445208249471909344238530551624983559375516803238282500325405050777727875043821061549675283873463251041823722370810466670479668304355249099012090177527023319942020562970888721198113429123791913803983686619046018536676983212240221677206689562329601250007569453413246285509281218874795253165148729696695617021264343743069881474690962819099366523241057191670256103078779260147851793954961150115063801408872566176103632803564291949258098727009251409432286427054086351317654960880435191596219852378971485850356020075558529038643989758091378435728388923144203709485225681690631212423948657802403310088127682338257443918031215613639906218082649385573448994401825024254560734797610121796690662721493945393644073551548957953703982685933926559856463499569038094135734501903725795376515995749546114210971552276289783113834858101623899988622612988671656179387170418505716040009566945955012293176788700126771644992440483795561176982521563072573907977050282512342999494661162013662069443807912382324829981029303103865921525404438354439279195713270201864729255464558552142107619018295393946435145584631456029972293543766855640222717976541450511958857074450595209095541795436436073841986639853424808660216181885435681533761346997280332362757437948484602972026167569048164881059464978750643168505135317879635940146333428205706946423478294995392438031890098491878044527218276651714751867899361044792875307754220817936569576273493066394834699451269524375645830855581769841063673067065662053740122873801454872480304842948360797310624623822979855430703227772737328592349659928365266544436450079892691832197065562183282165541493174751498900947136340512633656342095664020952717474886988355172793300246728437797821290690942311910041547298150156271651903208187636520170104733270513763904748313409635005325102175814356466416828657049919420213165166527230365074506017304665594370954892688980138041033468435331721503412764954066801124337224569994534083797545260446053960902864749424413282140382592825533010296848216899727938694066023928293759927547289015493834843227950760451077206812710434541587017933565206207532945969497587222592563571409909633825553462306000857212443622234646344454614197365278921149912517953959475887035189785553759011120962106100075945437209470702386340537055485918060341628501509038428310964760889984052960304067191910707953598745752555715127886752432170320131901103953928254046557126880718438090494339599019714452572418189584098339762949334884011214420424716737542057455981092759143149173076532798833942056888991869790011614357056777500812534313951800018282465369595832860854923167038678207826402820715103296640472585867467681217395071694412919919310345955426881343596436064120721523193639872285476647756832714595029609918707592270887278128863755658672192678433424023860625825523435674643939680981173538458208899911349055964900524279619913867664349678846362837039572517450147385709734878339843909797072268082152409161802569517756670839551160238452401213953664012986283138949239560060498649587698110509081363128797749997184893028194415639571792511712025707148000501809287336143555227231358326860287706903822272971606288569326996319417344614858066036104213323130979422296213794921689838059411171359404711980317906995833417332951330862283265293976934198234686428520753410405246831774510719288030573476780860870763496364218376926001305609832488805068641593242903552562467160651404950304292142646685544582898668338888781608930766167653252251489894693098659005682649749783642190810625723266642754574415276311022534910985610822227940982929249883471792423707821730923087022046592552563202029959192507409337312263265184601644284608501183674521289204418524625834684430156748717450102784124579684892934358910924729117048495509732195746195591225370288090904939771003114289776111973077580374667322858975224575791975209431485778849084614569942831263603843320896088997135617267851555661283188447207724575957708694664193477966673601606715954495027426860033882076809803141882673286934948049188529284511859568471118937715824976351006287051964285106942733086737461659316950081612768310176433675069711443281670091718456871736469065883372176802486451744148491402538861911414800562457630912948054895078457514163334866797511367134800621218469683382868198014677477832030692349345350852308203086116186563288905333408796091195264814012935763973980386362009905914107130875302586468310509833839435546145354411135225893892491968926291970146770464592863494192537899727972782967244456951496902299407525787228756623679763880122759461423647914391216432860562428569974021638169926131310403683795136873080841375150782033665838985833634417430813697384069037681921407868598828044482808936175032859870096836136130151646512433841341009100615272119922684310158435884840441754976419164805101011762235122565632017005584428550024823405691511719026249207619893400134565986365048945284704072181329380657190211295155141144171733531821370648535227636593087012459589605668724151430423086379636890379710394041923821212723041752281495843445239165083372121539028927488389483388641116333507045773637059085124860848852805513918279427524110243005765682664015804883949355721605471006608453226116254596846423269718472899648034712697124992277378030605030826765106344829451127842593442578766052572219433755871411462988826438153959426062945876305323140808409003594248302233645273608902284281737086846659860274127663820953039258148727975960561660179111811942177029421016157307488617277147086838300702301747865106575215205456711038208065894582930847111664977111429631208899465650699412779125198568060113227555223339727535457568235834813999461336581724531575142778059302535077333745952240539956066073379828975050295803027357503178503110093356758004838827910710272642601748899269510951204997755217197995165000003563046470009676174730376792896241682604176129253757498083121792557900346271519517499372395943399977551891222056071516284427414171883651870263354269485031265715178450129720043338426244993630501043610686476074467369791080608058667281697778025540586530298033714395653019767481182359667719355506374449030197127497568775495559248358480923847842202502720332421830617600438101027472219819556231280758336988586681926392510109426884097593660526975736361004092043689892843078047028382090340731448016181914329399156672045210653237550885882971728625939200913236852372193794106473880793178374442150504167711347392730284040283898315977221859759960643254752827238092067164137170618420513703876483593780549713118983541072808255147650321072381041767909890937788639399745183215014876990307468191678720202836190341399713884936053472075528747377920451708587619649225986384173392973728737510246676521521685065484357010769054823948828590704289965022375572023803249905405752245945220265362588464820743911252493770043931284185839162399420491782678253128736351002877486358681973852500970504414507638849601283436707459883714984445589748239710010879830117756982744003544106274332342530905643440833493866621942120013662393360107615995680560746383369624195934201496356175297688490128971879407036260347908582998663722962752210742480896334059304242152242919716752235050140965538415769283559465758499823463339692872029494273832508335741945689488150275420785971553945007089683123162248357420544139309004093696349571209736213439270029922868187761308530230068066644750350059248796787500861446442591125975474488895043917307933729353077136710520224378075201724797053076383119475773537289522544857411781185087636172483528057938457089947532671001918909271509628175100098952557746872608350230562612205053059155720745082425417258230709996617644184463536170880039984198103386381564558765428246804904568759933330320453182999279267996588004801988931153511499161562464697085140966812292613049771819687263024991727609976625252344046096298898530174076058792973814735145536254699015741356963101749259696923853917308494224126807214898445484834022304843841220002435010359339376186512223252468722400006204595860483574974015336785333285044893726940144029985002006991091793943741327287863092922326908792392693325340212911366778987764898400596707634084775574217381022105462789528285507148488264694039771652579091441388942623978932791742089986650992413581864842464195672469301845673422103152079495032051521167069928060821127872999983550875783095445571258452064312253457600348959741963119077728266316946627764493137540296632721151278679884755189047620430647844431027412916672267619582375245343694549993212667640034611766189255213822009353484548556767791551308776796650019432566991105750397748243231206598469985945264230116885611382592330381728808307659175660837232453224756549310230695387174066552358838920886673479926401646136245870198861823257084780307880183312601259347672555294567786365545795464515210282984815834971636822465894643873564095946098417205538295438778076175688942217024308397036451958018737318524943848373408917124993006122693388185846768548735881587156043951928705967327229446929103507105621884635146356027656459278273490528468306286255585892050499165884473768633173778373838327119972307192945630728649041640145827522115425435480758889324174888994450916350655204199072584153858352335031567129476082945998408950899831220176554486157839226337757093329174801482766316528465059067687673539867377758600720712011330108796423008526961342942332054511092099702912339910831545863413740443129970464588783015890890269613587936949899719950533810682969662702980013895768646978613928518538793026957103320141751550350113871054028422794417202714062785841130219116503939140902240131662250902383854926483275410138217244937021205788314902370196505821990101614061601227040825769508339799066323836425900080707143176362948247838057547468058964432700077700282810255428516512889402060441478932326675724279381082005874822421944047050210300617712201781372359339306651393808286315558561378898267052306335570355967195093800022392901264185543969459283474400606496916522004986660913536368245713392641449929916312524030739838328678132854744094120457659526468249206200300695439271969308109356576771281767125899899949585489636972283186965756159897493996704887572237927369555524422397133383886067615736015288034596083562603333995216736683355043671729004917263845637866239586444755347372001107636244054793203496706003152451553517860120829374296710230012352834489146323488220606029758808598485021972502120479418863325623357278918508703609929552586770285127041698761482545964653411256955197721795418084144994738369495692077832307353039794089330952747802919449249185792420128764123462452975132395732676298954246283323892381259295233350216315054680234035515407000205392766742750963666928141814178705188967294663248238963190914828984160129897672936483786591256409402677409812144716311458888578551875116627034239973853021251146402824277896329383880865500744872565427128612554763222917605403423091418879553361195610239274421054400615823757717677584107656326698522020490707035383503897255476120030181953245445370072453418126391382588138279601944424070082645140815619589689937057315441783564442976531476341496713177925604808697487773670627442606057688080866855974339955765598591448102578634114382782450876629971343910270319051270010486296470104217710280005537841538788914294685207469309769339939637524605835430029113767943982417679465883308082241574504355539207721367457921194864684628642634322830799206243614479973294286431120805945930059809728032809981266142111249660230718501753560106756877173530721445933450843172411004224105143591610368620548393476832995771249890401719817359234841405006075866899208526474324948114381733568640652252551115255912609263480406813160425038457182198388957780757256884976716955198079739535424362448313331817575822103191526255897707017931578702431867071675519118522724473695997586704080149000769581478552855679079966468040392802566107291944370894476503898481813210358805877716289170655858532693761639590665457175143129412124872952768244511875599131138891231783839264300992092691576988477672610568622016521672132995570040232995864383814464566200796471126521115389559613971680032340982609538761695134240352463026965405641151165542758645901390745357743555334041247363308985001404629448385008843523655118146621748546808183396956118112796239012103533075608456824346026154813441491278690346983152001485452492409404922131574753245967495005889435638348485799423333973048277461310740616092095480046869281087821304422470891119921708302154653853502722548603182637969606403731791155280877871174279328040188692294950096634619944374621308683109344277223348668277859919081148346996603700993904405066370132793033670650092054174188669681530299076577411608946739649509053403314456856671438361018159057766797502119137362845714007799455449559129948519122884741645705958946525499120587720199812130212954917844141298897788628269543029048675687570736744832715066510411859529664525698845634569643249162836071741219692660607182819686400679549390465296866706115316564286673919541251683553001202042528685484492998305349020029346125418835370408461273357910893163704154516408069703411095956024384918633710435577354695879616138371210666149596371393402349518233368985151891959264367450904005018188575506797045335289548908444931242856623516760049141639222625890120542771250081574425529277789610384943857126193917641493276925351043231341972530872670340394094294182894285604417627035838997449738226781041348726179455853935686077269551263772803768399151793133558444870318025821232282676979588593307876068755043411092987140993725163339520459750296620258920789389470779978495718783482652468602821311290729843512942637007122506842396583753681012926864367743306683500287582994137007404075165721399444706553077869942175454578300655165470003620332796318362878841632718829531420725346940692839038684957560247136664929342881736422863930358134518720046157133212312295252256345391258533105417694883587861274834026036394733189002026993977661982296134414634238498992657993318409012019495077833397030997984788262813680278672490551497360593357545372528833340056846585104113360173452466984110435828034922954206480496431456501679083505866068278193923253159704877589954062154453596919191782584333458593080965427336313802404780241838852875866292583332353327408461832710514774090361720834373051489725054647242466526777949492535242618300926210244503328787205789392576816943182405308877335035193464017685827489076323746574273669936131622424176599994005761433474588291364780681094568162218409287310382379964212109740894373919623035735478279314396312504295837936694566476590448834181900205403919925293549242551655970471626780074848658729555520632112976605271763854946000150696402838778148324424699943519961756852599025276030296713685260995276886422375301303270850579456247734270005125242423400948301849947402674561015455513952941451424802288245369930356974170486498734502902677626311512229289003258413901240107822166405106583350037300845881614660875839590431983465957075103963257880521149230529973521736440823486592873601545824827378993223167504614516669306778044533681866222705502022917156198909810690750064313512565437729428916450808408817390442101551335437677486248184067888405498044901775756347816978579113941193496273982539278625499457759095636713230177446967246988650067411560187112935241003539317861364953928899735912444582834089220184773316940054052933871162194150318349629343257078941774946304569878061374000011942553389450142860789922477335628635192917806249909579753259233784462071579371823333125019622207074488587117129465718298464493487163002966945920810574161221140842751388275759214368289790843351417645491530156002017293694608312280578648354907174552273073122203079338709937176638441366284850545483084187807666214459620994425678017398165307922543262298221504750749136382158079834653067966339584936076557714128161525015482940774900515081266977929647336094853246422534121687526808952558978172145480332046900850195165057507673005576187528409170601341416973863258483034296681666633124109824123243140356184349804607421507397029012768085413738083447758515453717214942482904891877038760803512964268715685514338267089176609071869640567302910117535309267133240372007446935635945778386508021773220842913419877439639619029489733144464903964116863861564056576603554063897048055622137853623689766820697035742619256949907646683490031334401361316781168136294588582255934988845156736189016646832819331865982347313601123003256867659492680013584172538621463229411947653726917884418762283372521797555622374048751906976506285206806123591672968322576014495040235901045091159884627909094854538543902536020089434966008988459275017602895273191182616072288312466880876791527818795750357661538213441012941101901069790473601205194506704717189526836142854536839069451519631865995058679543550381229486368576381564192458678945259665097741644565580783445304852376504700480891391996146959409183093758475723514868328838029195919621598172124347327704907248319715848511734979379226291945965829137826241237471575479308422015320453403554098438077046289620415937831919099510527216533910125017177835169969574917137113810960996876889125742665687055944513338131922143697253389248333828174915474263460810446664453688506364005109213569650604786179651267723376734053987642886378066422999663129872190189437152242396441827953439557791645695277878433333804933602923508366241674554295504462352253616947917801083902491890294269366155319864896047840341267812951952001980448013631578401930449207075717279520117888004196171296070012695256468885981631807932270656836963134663660578733069419540539383828078954856903448846438713612883976574254736430858283281918842819870928129633094049248790194511752432483526804024709246324351949509870610412265257318526910454218727075013921540378764896185575757542231235286991743452813080778494533701812516697681063441073612967845727766784687580998423897252565770213670318836313611008018305696733080921605466861155275758274904138828682527010525751478312765499045672402410971127511071978265897515586195313698930277639090116953869853973001450078164783421122882301105678059053526599029498777463454716972025203775746687272684033062093897157238851384317931217412090515101877795448211403538435300254733147735005551773161990398094343490172769574321793219315755059876604358806153662373456775749832899890397958009909350343387089292959616482123777194920037011121207846772114899513132518563688587987707506913985945876080603564651689420179947550199552750096549675981852687880408448236604830709145665045618117810722778267236874676875768057657480586248601755604281749820658934347971697443082822025213417046970494778005468612953019988172691144196569704228776939552742962803425890720735426119517213354094646034305878912731481540422321469383317900071410688049913431901196055372211201155572762967238153071933688494879287605861115250769693394622384371437519970779555974698068435143245549936852976388331989022164072307629748067891874742586116972537458773907722449869026509181978686129374296084760461216187915801433928952971882085066107342674946687960953353004985926761738832622224165420681993405429413314550076813110456871678472106310299864416314472843496338031099957613521424674346275740354580667261211254180932209157287620496042304610667643809144782168050331595482082044255556261924647506640203898949056202933298131283975397544646457058672654692016719940961552917827852823886721648322467937841390369686406021505247042955292117288730366383451785128609426034321969666763986936228868628888393224383637189560113539186271086933611350173723422038032618577038612168316138551199045697300548831751368777572432931012118470353185854061116006589533827593571783510031187799088977200663359468082751413005130178015636417479843131227223631145386849714012503523129920094078623708831415908100443891941232351253113683626786180299470207286201470011660605635429226651679556992224506969484812864317671671379543546187015797658997993633259404953228080642924312667900318735451090602849352831324176975491401798862003878949254349509373450946743418063884960514510809079290464047346845130007378579488945708656594992088642009946523215153279246723351470407462395927551616287973591694563223786753992114191249013628243643493965821506615964679747170856668792622806706568535995213972813801868889417659959556030416991656309229035192977967389459798047621976974290772093973422535541479687335036336542068128113561769084936443199679118499052851302743591670714152615260557924125826069185770292899559901723650448194896569724089985756185664480649040019212811204494108599282921661206777462665111317648997345088999931995912531436977498886620299592174339112775965112677042783421503801371785230273016450998569827840230340631508957618392723083030205074180175676891643988479097294678962339741240882308919429760370771712865387759323617021153315604251555345156473446922491280906318296367861806528164431236551445300392071988867690664616550748814418123807100724399081414013258145972319342914299228728915911453465717622072124310077041892406913732157572630889564873934635651109005480262097093319234229523205637125908421886266889299838514026067470643047677638765214358819472913159626526290497973841452222414269036105713960930009504027208706648380020233719939898497135313848130203941436232375579678298349026669956499980786756707799001454833954472800188451765806722757672916796719128153090392033754709342128541158708426512822672241278503359602364994936526262035632465019232799393602913450545828167735003828810871601221179931806687688749523621877431056969608377163136237376551353958504091870917886399716924855068216226164523109007118433199096831770573137188712886433962463778147663132036690227001354578500849785852337438461538624875734093634523850307974498815321784749266805487186399697933706082639051782905144804074273465301601203380758302578728425025766289603990076642608325611001185107159610824994152618996013945149550210065956382385313688060053450764051915319004309250405222118588888403384499158694160052564272611213048478965596872832140117043735195286490522790924049239640416895715831801495104768147761842823353704357758460142129131394125219184548274859190881091255056321986721734692242187066142899705175230340758054029110269989778508727140880978546262103590548315317059899562479077956130846271589735478092227722811625927869433605369722605162610768359320864602219873169670746596975986302774583757703926443170448722416982213743899152986787217714579052419638243851597724063409728614467445339429462327957855948056490716063748994055113591316318702593634516877091385832860310945507238525779549163148126660579929648792583760846371133799138111713730047550304718358432220392634874924728900489988037887428405139780250455627230805242226088032194158400242553059207177188981555799270530173331978596138472266377864208766443457352836456714353321912056256145504141906484105034121587873707100737981396852252541330678953340914435392159725126897576770702230936226175227340132808440196805490560961398444378277721481909871303888243659588629413943791545439974254894878842002092192747074460285669144079009004236036498712046685716644784028362217557626763782305758804310722368558226690684795458085502098753244279678001587641893397469696905271189261941026984263777724597538583673202783414866998936546069690880706101243326329810205811776492666215588517189327590457277175082671607259407028835940661025385306350427222196523688643717912946931532800488976498671465796207210933375004443699445366488593144608262829342498677606542750365849103402048243801155225110943186425988176258772086723854613462283494450364584859345552553303269419095562762303355406306266186259793386993277418341333040666214430576986137824388919483446751299888279662760518157701833802989490876535320235656955142088199847463612164273097374632586564963546157148188244293815181367678474128585558566785928528602835247119357162827686114097341613709749431869867928591718366598269112071588084600232600584248714185136774742407713622900830754530957555795421038268170537254191968191886970852611804767705872566915433501330220054625049004749164782478445416293020891196122185973718606481412937178655464282186697703079987173220169859414063273074544108065590740231888432449076184929072648415859996544834828964633092575574492273401879432516988849124948353933652720940231187086303228558760625541847586598770029723390580998858041878654785246598653494635852104139828782990415811878838890591715076775055599841687462509704225358835979538723962172087465790813590081101989972262391104983590957619517383410161963883499800446307464613128517573820025132435821085542643076466611479120992148115858758905765660035874661436394048120836934226198706048532729958901298096136304756379565474869435944699041036790677877866761358784891986550967057514047584600059206882056895915923543130476339135726615573293687690175502019394043929748111947477389792492654937566882777166294246945443250954110964899100490081568872674785607007582352133745223941510327338401425825525656822710165002988679491530272347257934470761190069747198220548273625969346932228364340461316192199941186923650421806613072387572395383169304914275073394505489915760304885201415266293516092528082506838882142313861953677035234350614834174883059018981127687032003435057030371188103423728617956977802818769422795245657752096731920675385220947169571556898604082185432586286645417451437007438711504981371583630342349181491117364261984119294594003289034702701628152038141813412606958729986429808587833558152756313134319658193204555545349381481196382007587630003634604470339721237378226233415210043221521649575257409605022992960466918188973377188791290429816648929628013626596289023639128081136957918818012773196633676429073261171989874966394466742957612316153640696764827948245579928671399801118726159898139020402148314617160624709343492859405299725874827116945152781823013560018914398613475529655008755021571896742604364199111110822824287464034107507900438318845866215481496122477887533757990789595503792984781566290201495815111197194017576670883292349046762113140165504952423629647925187521466803602596054165389471534599934580973697792877088435683427154771409266328288202847028697829601333894549765140061850710484308285309377480239700984581520907828383619131761373523711505545741290661875350142739845980508214530693950881931356903897246316426905355725245731088047676653990025678365360949217203675507748335389643062557070824303132272489950349301061316912817540525822474568232381019780278136645152843045667937324576768245967097673935126815504053955741538879509256866154941187972115831368694752029133625415168629739087412701102271236666156096336959868543534299559150575338728707819168052900408259034055194843566715809358563885049306785353162988039492637113764738453298580541080550891433099589821537238901771303692713870893123242854132912377958799963188668205793580522765338890616090035424153685897417135386422645552794930284904304889290790463671420685194035576242643092926458778088996624719798452873641730167459702883208443516133603883428201198863769585382490113974222893196954235585194088566582214460512209691499362639929038135201338688650214485080228310067566282148862985587167095296264690687376741718492820790195863984176704886546152793890747436533715115410661580183535044595522520998197084261298554901984052382272276170806758523955071306809746735010077164316416954552714248506585976325190504954923824474644921203829728593910670347530300909736804443325188514210488728088672225983672874178331511245271771960886388801644096377848249696421801388786109770994107250786664426002349900590902252489540471450920675343657004066318843663189306847500540562733175879929883293273351066653969802412571124771630786384724114618162326504025768382800239248653257522000542052186103228867066596804462346498239539019861401415431982037599094595898982506323796295841899076082640321730132869610361413509412131210956013591306876177086402064995823729695176361561535058279950864122940264310833763338878001133885925893967394960860262646675555118506916868812650354697715520645448907164608081675154593829538011177932622686722187047556020584241703743523936958352661921097442835811204745615103950995909889785753977631446989276734022917416355970407048399457759111985421598511469295066417021416205108555422659144447201362328365374644947596667611116698918099543924644545986792925767090571970907618097270078886844012318362642482629983445693389483929421603835633793396231107873354378955448062585177620639144048150375833409962070174533068769780085711149503616144369122219245486060595419887316952906149297000673480091963259038116793511816180032344139569871126619571435607709650900505723683315756155548310474137235699058130257091889115833156619486778527567814140620202977341518252308062741173149265107842581448510846833958688341996118520403163427121580796298655027574983489527305852584529334334834597061568113800861978585337407542262964978964347106675440962165875033915357741383991663045288050732062196163661172449240919839914396923827972770566294718031603031613783332852030847065016690712319262385265852724826975162767545357278026644177945963772945450640865922678510877492455276142910668591654243509006264290486727632269442834186538701738825763579705787604532446439537850107547516010841917361003163578294419133955290749720994265838485564086721669324309381442404383268223532809723867027984597468840522208574944057476353790141677282575595329210957581437285768710356526426685701865216824473149887793869992612882801522750026534360190009182082815704967758148969105162560820421855410498746502716147952885083497714709066840387954752790991842926061704879852389723366659799990293400039241228914755502315969131490978264240529776407441388745697609284590511567631228846862692341166236936136588343634499274260520482795835286937749617204458652768024894291168580073218899844243986405936791827901310292893610055220298055966639659135421016157849903679172593339983182487935155180147694973374594247674056504361032510825935687012200752439842508473278536405046926373024270303933603572898458786196853757038436937936605466368378298900403402179669613406324870959930622363948277889301848937514788550335369368085586292745665632295854047578590691123539579698681959062386814980638151709384924716436609356120213140009438147535273306275987210476631183453037872560466296397108064455581295087756188957645044241194033780660130394969125028605833730105138820375125297202807107584376527109585650542163486964153885765893971030759455044667793932420330700471700160287604330928898667104374321138960003795959595653535834527407019500369514381548061397273682306689109643905684669543718100771474947236769972693189243158456081986223243568881654773283453731373671271829036494076442024969945511584653304133707428567230993903563219863573994432669419330837303411855444213734951696178910299693598052373043410151244705601430336121460205430145495058814917751085191721791177758593183589982029971404691189355039416647773373857955545245191079321167869304541279029304748711691470168799484595975668807951219268201751424450781179012657668941232622012815418175056389677749225827419698108090768722211350959544922848928664748595608303798348041539988004872334459796237240509017487278283898735029009631449763180125895275271104210939364288057102187953663399819157465630256940795861186275072585294816149914230649847970604635252908569833430923827892284543331894142723572169570066744583946738254023450745357134835729273095157254350019978914647247582339121144838086469603835999992473113330905127075811875597158784610817234153969237155697529144153175657596526232310108622568626766480519430552109737809911119038250721931016141550577632448098931730833747080694344129811150155038145840381327755557087708671705413635293103167778441526020975101926753645361973936092046248814921288520282016836448515182697586348960560252640638924523337796471283024944198075077446531637489287695800127998539082059874968292577609131548176851027598353643300864272768566160191421877951543275472883960059230677992700923294811204486823349795634019888692734893165323121631667332006090964077715132227571854641817719738814979670423109998146999761781702560409445623432409829351712431851791845901277671714286159453999764056207414502444943711346303662995706107714709467879125007487505044820523409391972378048461886973450961125838618693780262752929108170390201716364267279352610740260864777342514674741941540989515455691694706338077382436579103080041621087867589522826332733690042340613097339370156056588079301394110739485817134067680703521572727738093657538819114596525327868510344750206669132650215672537919601161483250264759248401858460320895922468733449569337074235871288371494382078337678388186304125357670845617778050041000982757411306523997511221897851224514574146434816222851495709146261268064348465587298565395590162742853440317796108862211043317259671980922828096641812472250475337948974012288374677334379297657831368963458278633098183901058878081696002670367566417104278858125062614561343090883298710907094186314572284112180138561278628525613520596705729656575207854916469395744679333662325953302752620443320844279021420353465783903347652769740243656520115302641914613334054738913644374653260640369694524549832311869959687824536258544192767008212310420038109970477714633335747392269756348794201631973373776305330767338021697463864067115774406687432368748310658213870279035825745702051212700657175306787764509824102592695657020099829128525798690009140850297345936524428489572683415567626446085635052703023420530566899242617947949619291072620177275863261304795819464398579430443913834544960848702546029279381715206945291655747630319260924035009695841044415902126745930817983377751179571890108396108002061533014152426883051999764057361407071949777701723404258846196472369887517648578844480062442690557784915079640936033099489793922602589123629322572299034395372398003166175844912213028556666888568346143701452310678280141866896853183304584986551350664353265540023455604594354878370825857081356214730739031438272423073113855546222475178772292300894404594300371519315441265729104366373633853559631117422713770005424887449066750501980331336108083530478580885081287885015872912060476103794619152542634206920624544965746493546570322625363186367135417104988357234518846755992341792371849960325548031973157085411409579637755702526015642522449672598071966548171415755317170146937442071111008741966393059279420439258000568311370628803167888835941796136402554954388649144533265580138289791197336639731209018884245150025603184607094011868421567288274990585095008231377762845150225456015650179604348716519262858439173972611280910799622540779022045618881278958357249604026421868285944667486253597374552798749876209219391450451962233440127942033042658424617877041839277651751932122803677212992100572372715202739322522068547195214164532055017271111758820937902552574806488012481760340666910947262149322053717117655594684213808834333151092738869928399082666548403844035590655163770939912003923614136049556962954126075957267029930915490043570571007281397713639333968741202479546853339005691220835184374079773315156901604409432501748040404575848133371888190395852751096703336653875930666955993078145724330383214719529595270362232785627851373997655097285121580871001429342130839442621655534588029088110790106293359462579449660609277290684848063745412048281624482972858339816165081679498106823698434802802395923311393371068273047552791637069271468302675251817854631788271978298523256220901664304002339969860409486072615566214884677087408878539417679017599762028379469911632688177027975952725965460426594871126356933919428577042379390928812307574231164002941828583134805690253955023836422655674985866721366547538543979539934903439096786796328287009670029928255050207991285730740612215353602688634954348457882443463279267846100583358124494003235378607024101927110203679917017262393406484917244965556751539909149334845815841928968283735256976516819661937034688406265981234309330251600437223707262431084754235552285750532886958473258697168854744341049070253340699207511723010570509622904394420478793824299172143315990374852691648007837422106944813110151286006148665978469211165206507229039893124217427844734469586019579350321418824007996687791538388400199823402725330891500877917406555422139678239296433313437630705671228275769912210674563990911441399816607633812247695547567196047141982148595787851235371417469097648700845567049190140854703157362483444174613916138921640764741763244269095738714646554971067592210773042802778614230734120469417082354349613168229306624023816721483100890532016080738777464801119066678460714636932136337044428651460024209905655372270217341556891310582449414650919974770985214981093942004786491675928873814775692662914049066533226366897435652164902905907464618566575517614343390161648997528355182749730468359924629762043149659850345505480862696127324065555220783281367060524587483230844003699705774647100832595045558179446404290688213429986289022199109834840203273612239595076101418327362071228675943580187356874246947837552252642331191538489461005247360939948585755333446525950958574905569719913576858553321890120121758200968283816054079101515784178061775724177321464485563104534573828456976148632435924151665757440122793696878240642654138857318150234006033493853883634755330799108233042567972736401128102699701596684686411619913452921396366307912093646758612800825542605864629466934576924296193224505034599240867566397257431403606027110420087492666968739627107648954467848429339184432800851196773182749398760277103463463186478129199636988796483866808057293164958531029272634569412996870147859353826281264081023711522491907773136537544033222476311223017739902275263457826528015581965967737344767424140715514920468190669507085779740313171702275507678701665807166545600360642689930559811910725909599451763820604735905846105997707528611953878938280460801501571933457409671657292440901946414170693127569435022063519455997288974854752912662660086396449623249132275107382218272492394948076412311687393404990206789645619468066342947117080006417823878988383834283777585370119206950771461362529939954028625207079294118306737324063419254991939365732310193394041524309370981588463482766505339075319633133516348659808736961784508851595040088425414742401654514179615968807325712462016503136851836295275274103468930906659109959753216473361965605752830836943699402306908560526567055326508977410272023675604482423849619721302614595361988911065683617422861147278934125567414736927424328610591405843826860662434153365985711482164752869633138267097925685839958342584476261550075092381949757421184802622511586619495882856726072133845727692256983404928673372365342488405518305758434392239148079250998089628964027973125827036151550491566824610581617077522289915119612249065563077851568450860397332349582214350887721596592903671673034467728592361854421147739946382878115219986624348364945739771005350874891684675581843728914678865607783222573122720766123457023135483908807205263970232593845681591893447427890844256003854626024514895562663397671232355737064932012116675153611427544977675251003436297498510038347972511734883211434033349856136210285328275720533292742740056453487958559302371735274116017915548474157172265007310195015077170023495035283026744544718400231208548401114828678797192641981677865592554571307232506838792528078222639014916389118831539708736730887535682787569439879160578139526673425453935703139267856156164862024381242468554186526189128642935268127743603255278373705432884881846283589943714655723925488538046526160097443903070934398480919330669848763106109442582826778332557837146746586739989974794040395070393555282599351380868157245748555105278388114059030192215894058758191701310077869686231577732278428807406484329250341999578331204342508362775786726612695932763226749461159107744499797110383318686482634329644978994666200188704659434716761996015983633904781246092741540577513725410775943044603618120013560037914905401391755207665758736376204344310309284923856080385025373768261825020804844393894944699757758926188768225225767723334149417399655065212045615203148922204559052736695739707500022956330317279274228149578440285826906348148068811821953503250738993599307201492612214277409043777370881327541274023068934733975614365159555650114933690576839721065841734997748053003089618626090723774953744594240417678134665836155339241416408080273052275264231116284054866605097226249074823650985095645751077693798605600832135188576731776709491637074151918888882800616731385497288127620585578788592549865081823840666151607824596282718684015668235609176666190615570112525157978148347320282962832874258026501967409983278996355872534656800158735785405118400267804735231717025047050949822957321023109790928466110107117782506576438377316629357436554225620708039297706332887828778896858519001133540196400790349702695568594610495236067691913786504213655137507355472050376434443922675699996902113815629665967128734797160481502242210441573687280962652384285204765456346821551496635840955377334885095778777049458534911775174672122516444398728966038330410356221787084137566217090735329636178207706304818827102285726227693775951307327708101662539475007454367526466748692961738567119817909405859102555817202046053125527467094471858081119088311516506725371650748482127880965277060653854750275732198270871402473286827073226256830711453706939007647677359949798521033515869845014932993235128185828144931215604096716905347427051170703306310938298490642667090375316166804264288566225362414010450284916087182521111439590094367734071495566455138513714087478109457448814758371268397614777422448248028436545291390443598645139017854425971816005237030695259938520444759188916351459078491829582516840032832667185463738512309362050638914942002821893499187249276063371593960693463561200366273107274739265466897062995931945142982766814944198289873081497310897502701967769768237454765597899593183176509616465163889904768580169626559083411023261081905898144659821991888749328807883547590741509494101769046278547885854988705777346287549429346150380436835787982602498145001243720219693941770106974820162919888487227076492789904858158493400767111012985082502355069633124163103230935338507459689184840418946024103322785707354726950798209556152686608645396010439353276970976265789612471867055253454584253107383665284429985063945981968030087626352354909580134579816301515218753065228440113840149349043162439771837242923907874136357297968867005405828273036598020353844780029927681886777943041000139320742940844338385486649269160891088912681966617581199687966207241454104586254088574979130412691625827829734792675107255495247731205647957037404022567840383383760801214008775509309246155616197954621666463565002227313914631934882023186928524470897101535473808012580937317073397586243417893079911448330594063040515306525026022917807561808875999109327990164981220703774316264756870639670533635700479542117639041884820015764353110030490836261377923977144765606508468142679530151603005200908314453549935303769241713067578342284657037221243944349016776689793673250472211962062065281487848261140410209011019792793535378083179791781098333684626038655975802677399831740643146334291916484452782434808114328928796920839947044010421055516670452141048369988872780442346263731835285958632245707072450635327313704403883060693030799405969678188456489086096897671253175787890432201264267515599922348599036958570207181090763074148997252149023202296911195994950124076877918806729906780165361502837359679859315813184771506744011202308099599961675927033180887724963437057295234094434085968869584184911053273722570498472494230943860563488312658542538090986502148514495260599535545647764433279875570040945486735866120010965095839852853820442436507200517171635320803813646149017262455039791508875739988564762477604086551694159292701521739141348316509402216966990755282862996737401285673847145642555350730648250924041794214159313054833299939975699805379206200530447743149765490503334513369202059387433490461911277046001105765307822161622901569988511018884099411198815040619928505592669659179752479766974473625610262675573684513090696065944971962091403184085198409297989258600293956172831672059500479848092920474621469542161414204284213690627682995604077856799883334409859823119405311495983646260738775888103739064660743347557666650785831641991221799128441532023276749280987088947102333229168428639061883697265065972006526452939783310282621558460095314055023827970080007607110804922863657580814150199340078318880115601509782628607302510174215388487628116150635721502797096834361641853117303709172167944831265673380423456315769435544965505700071879471088243517622379566567559228337593989542999876547594301741769958566316359437221629384386268085150529521648595168482448630365067224520095882290371235414340406889180139462593311173628819769580458063426589979004199141272755218832191130570195684239806130107371525139694228743070947757945813473573579449988804691943106630609301820630081911348535322773462030838795883999711128656656516346387438664825561098447578062665323996986725338113162880192724446061340453885988875205713069966764603453682284114147683501289816391647549930539961609425162304386646948255092326008979443969583716202639113814949082045086467013148855057847558360179087374184871847065617316744335628441779762221133929459848427532346682819171817986149296537926914831726806734942738129791240315136237200423402173591986926491610060207625970960883339562772047157213598976708711659194084788866355239416614844257516657690215854065494935308268888288156259151231004988079237965101354229736704537424355204858240137744801604594992987720329334877030091102092170640742693133341276573570852468985830961052464349208954858300135674103789801430325843765360542118571600538505796132349722496824909760660215181820402467484731119023407423688080310951414134126306709789019318489396037049655798177630143170168411703580974977822889381723368528761174976440881400091183271811483414558140168049141444777371880015097367233542514855427020889875353331086890638675486676775432369670867878445841288550342769008495335622333824675364558254667794328865203762441543065307098549531034479553212009092459376538657688207511989338830147837180955703695329836177267104752392478706044710703027784070012035056217239824636719493665921245982534134133897521371926656314692470929170702291472726624477287553988020550704633470531092316254618384960325930201903353204274360605209319641981763898365741345039448496964983531690114163665593327786739514545058922551298998364424505861892176936505562411111112883871667089714065404950552210496119383475042438501384212672378113656221791919602672199217946970727913851871316772338541928516195958662938415936749049086383137260488261454705511335003173797630079562392627534784559635973298682617510655071682391976788620935328367261515497248507814543930098573523705641226284988143390160736438670731278365417029613588744438814859096035428766582953488297170897571657199455657318122011623250600956779243427593234487208619545961807522605293642417317807881528569365042243452830732557018855008481321985742721096463759369621299179017778694915571415804334791385944310416540439431961291637815425640578163476893283036357336462453357901768216508077392990548396741063822475860739996709117503995847579479986214797926096855591476910972927976637176671717752912874841080540902370740154492105497686297661501471843686977110957930513292757015147063910774396773228455947742356090710027706135681252513311961098613686198336057334086388522437862596224592735660246834150499316370569291101613787768097907891303768019562072056447020358248692734787618563616519595684107207317557528206049484007676959031609929103802521953461608063453550248089534421307994321340905943444349376401289809121692737110725614629612305976682121771915290402189435113791103208113446834062526703671466833782931213212555373514138204252444610374152290375188036316216346705002089734539190867055595481178949161834780518307147795530016550471608919168268410074784619125147698157524630003042907999147481697229101673505781623795793933490325561821594534964452139070837993904107509468075660855379025661659710853338785592191447283615606124666480689358654070223245328159428430852248198333509785033535679380227624438110074103902573820629224033782766606400044224285964445293320379763769717548878601181280086895089420734753595554618382556717433150585818381762243340686806396959085678962750401016222534861692897246737325660177447760450023517313951144460784418315262504904709551587860607843989926008186690282835939837372888947514709123284352328426028642088861107576855269547338940995644586167656050633033856726014474049187799510653525416684437056098759976198370560100858271521806695217066194104163577010021853828818103892844678874127652285660121316738057129789505139549537413422101189867319119637731903882845041297117377261619403112252030274906886363416704026353696244393273381429296411789322183612283402788892616981423306218322759650069927771871741218832949253113902274868999479598490544086577408940403404977807677818121726371136635331993488535199857268089223173866062964434531775894108437874727840002618922568427149820181513442967087538588954435382749336110418885109906594208149294513019188481020518265853322208769510895634634451030740037996182405280347129927970772786731896282245483475164388462705557047177502694034731564836104387285354424721453700810079213762045346657947546067043142292798578519065174076222608582816033679599212666524871876263919495817951162624900445637362301801546356935085729406646444536114191750102669500876788765347419662314738378076656265366886310223799468007083282317911807635605176647633648660086884575900617384330226920014794611186686628756347589108256843706679314137748518262731871026266409399167246332656816397381486242820878511495289885178740077437123157090839506846179447863606498627487201063220103103081502942024559064209299168798897484188032113635229790952368452524368158371265963650446226594254623920589981439123881966439923899870580885741140487888031591256842847352893527083814142729717086588934280156073358687298634586491546650813399691661932751474565031613268695047893940757858584906132112374339557653616552754449683795354605253678342592597890533578946719352226367944358687836291918912867430385324164251159689411715433398663096358779782792490812187340179586233492742799516868853049490843001791367781689133782466345512268976555917507222880148819343867886908162491051987736384938045440758078521413945554158831441193142264096816960515589375299128568848304243383388109910571034203627136746221545058169538381039658392056522464811343677091037040552345936183984857032211277522802263621295008263323169251745093447782089358981746600514441680067199991706815955237506265411952173567857606475350550947598722158669287299557606184396311040945169022013631991793686683209244547064371460231535027478604863765980032867365219909389139122590188107881864585759526048101160780437697819912238323847338641796195217190722413022800897322171802082106981142004553490126079421817943764605039977328277126188781192763667523137620623197599884287644174769582322480744244981395234095806300044615977546168295086120996689307642085249234825065479467107112241209719769235538274168459718947866340535089833661264563280719442633818922268603857476311484019076992376563350138780844972797489041939352107393437674125260703890744303012868494866174968241735267737198626344362401185724962548267736103552865370852865836734071561116722858509631262777282513672002181203181438167529836212905503431295377839478125913631863977326615966227667768356219359742148715580186047670337530587887004462255493637425325097439631335784946821232071981100951528360707307334725776092612864774964306032544053025786716217590291952937851421585902078570181384639760812694644746459159512798336246040540002840818317510344180372579804860352369100798656852670693350680021219414999400296734364109862454125272622107004698781869472316183400152702287617348520072331405432234929667939320839869551087050241535943949466323608906194694382657811169964135902314797866636662593740289816021159008825481534328736498825912538962306776741312511916716528178796838951001622502524198390488972297129471231435129952910953941070498386901287890234930920295998783012532631210584582805597897572881243183217263916853810068748995819354969853641901867764054073183008493521731391532574942943549868698465367365558593485909008705628452673311895869700435438105092579693894099908307084582648870262727402082873490650916245180668790212407976840765769650890374975737976670320802366066925253958730005651984392729089617520140664732283054919827840974734465472295441749684333442311534277717800060685155187558344043276250908276476935259103116569961796646974217014815191594141637540158696793727905295541864480852607481207767425286728985612362138487689325938806271350563587456060608000152129145632921822708832433761107898373202612206457581039468320813290540523548120386512304653193325382768745366663868380889738450237748571248990175297979890783583730148306132850508188603635050055411192312210585270932342484698458480180344410246237027975698946052145317818160126970791897902199392979740291438329695379283939253162510679802365164449412206064716359276639553817551016821628721616808097560565600318789480044842914869193521188511760863267466949736557442480093945864760394595375989210252881323621391330884190622802828173164964335023464955000181055465374158811651931368319473099092424165097788157690605519392285558859832977190180758464716955492876210221620019351418965689925760296998015649785671788958147123143286633161189872526080184751884305549807171548239692412031314514217447559022008636222369039875795954813482174538092962511060639018398363441436968943528127194704326479608067878289212935005369105917847623296513030871567659724924276015560889757576407233400692231967565782609038548279052022388510920572855383258966011695552588817891869316502510390157097785429226456611816002624354056616083463114080187424897007118597775878240109747293524136109248949056004640408212369812190049547382029453509462316269361524983969314777975544124227780858012323225716228775182629050939318950983000923314539330726969684385415911706116171893549139454018181636484892791974964909571205617722033142358203185968488984683840616340619394729236466930798361528677491245322826916652088426279060596404482205214042277235527394420915685797271410013096021620475035410231991720513147865687064288641268465947468210754882449060943377586217860618982401451156829993347209959578070655409647876995224840277419088624041698118631040734451569731973344686286518457367876874320769746752692139094801195704285686703961301775496612818344495153043251789481474727407347155392336480973547330447927117907372520637276633803679407617070849718052582873484480559077978805452172885448688211717085318233045530260628617055555711981258371448106504346903903771913632024990918591134754999923832681096391202572529456485588000359065476276165424775715074388885455588804275223970174307325331949992569921521843907063015973108062422062839618568070682507490074817799022382151780887446482978007503651817051705677356901643364353330697001883170289092528659887669141788697451412645086449799842344552655604318517346639543362212976272387810937080119913717038651253296797632677030214275978762648213195399228353286816772562736753268785919329265745605098554538972044995417140293357564363161621948215361399023352524327129727489105153909045112712878330475292794888538909054968540304217491460474500008630304126273521235785662365095534993943196289879592302615524225638728198401550529810118474772182692007671829833153253808170637765320564721198273117562608604131679871886517394549401663602251652120530948727387464865107629986928024151510071948534555355898557425534810074772727701462417373712577553764948739040048341669817604397635912484862659800765921044508816349027861917671105753274980632655795052743755308571626364484216840746923040289505847013186880713276924712260767470012973086915262057511296801546299608166975567085177908260121515612645604003412325142660434553101012465597705651926247282099981569105947060162567027797442307882415070573643170069508405787441760254912629778471130718929604415536492209577620240564075198741072049782300693395949211530621813022002816210009986601401492255700828774594519113743630218552508904169064393695571786350261869337899057871319924006178997299008087023156591016845231130330559794115068771797568235896896850986864550133788917262458725444629539351131696416110475284306867580954636839423516523688891899071836916804914505937134398946388355780613630574825539921821550908893830651430431977331632960406137269120193115157047801786696802012354599661668204850712731058562069915938878880293443347063880947441026811114837747309244458648696140060847287893998417630174156295375339597147004935263876596994236283253818681117816370992037583812436569973613178850125668253196949807771396702894633711697866442142317523102266151139032697954774819713742274029559257125363789604669968301080720488630635010608549740838415916323119400966543518706593246751395018379938981175523279597243197706527418988509415892574504756666178418581191089750607228536762088956820743548646756145956261332364422494606146834166959369162831851508136769509307560725886418079153900431927467417449028829371816746611035252991103460871427097578370222535326200940921358972516275274333130461929256645540250589112044183771096209988859113867223134053425019241294310118536332722089157360404521678202304730735610965378245393060866336837122177559516412318299575668548481165330386380110275865701862558675602927630520043289680037295902057342544785357620563669745415494216035402523637307453090874311330747500737008487252839990777038388967707076115909630947090254089608781297380683429763323459349562104939562938002763615477049664789363361907222222325070647302844734653541062509493326417420546694901854040753658992531130132511180957648728493590070571053981430060498894639927251002770155904543549172189475685937260173221409579280668638926250791043088218601796760582704919537984295926629453823532737359297523413437423387579635642658420017210617796197519358278865274699725216676586412025971233967830896733418279545011896759840503240945863332104106979074876816801172343158500402308234972923305376918358572859915910115322285240961614576278751151925031916258624362570858633471968376858821851572281750664164945254289286969462382973852095946339857330815775742129723161837623433690481683600065940734666061140571588008699740418367444698036761787031964025589442680719020674981138359607868749419960968005980414071782774863951790778652675728570990228841165532358541837421164397531568528506314585971588540478193392805565616808247843446300122052144864093922771785234448960413803625171324168811354267148202053825553216064939925543422462302625247481621063656602852755777593440050098949948483943992447826537182824293414971880377145153087674540255386992437139921520132468776761617913086523236332816656911248241042948448760878996935307484078211993951658537291363547056307149057961583213037276139818862049731163039710880129257916413670966635533804063368283656677989596700471151943051318136639981825889964702596342823833746109125421396601942560957891275662956957532419902165980397899895180858324767115656939830619616670209063715381237879241845405160507236492414408536160631026406010569836789047306697378538565083602589912209037172398148866676099489887536420404505252174492522825935548834273257354679286016898102716078774887632287974692492358010151933318003011718000499714498887588660546242925246807269729080724844342255551152302053597092956624722820431237016055978657479357766323926126005526279544021066702289836856392202474942713590013135394311238489218249435077362609584671567422924442197717779784548891264742131203545208615874214286584177915074101130391758434888629409245757826588628567145945847873418158054749484391497980983120730828051957042759900976920413788113168380438778313918389545347343320410961788299645627720083582932068539652046477266378972788897365043179479530319484762918995800049571824519557159290680636668095655537015236532797479110567122984032030506523790965462117098273429858037411971665478666566369799372733162200486539393509547680924293777172219942792028499283031072684509657502795252809394471780380017061166812637421981771654866099560556631045674642824987178110628225070120224034672892743521704063206058678307786079699944385938794696677228388784709377990723086464810085325464456552976097324330756561507420131948253688633617394502246386557658198372792011823029392639893766313705487308048464508089711315292285495268770735962831764244753270693868215240694957830251215816943069020031999508383267039432763130435666552558977834162687899985647469837576109117120675622670666551560159807990317403813159234743327312356349443319828503216069448127478316538749555680712704202933112635827704528292311048080487179761629609222169997767515016904987500308249266584260335676508760117843167589914174972744625660285023903311360027491146511104441790405166417776779392767051124343916368474051130559871101655458342180639407896360127089158852599244659564691613776254269805156005414297008551753162673507218661679596067423801604475243511219639507837036053232834933334674521732725321750055466040958448038248257447534959164904493646985767960797643883780802098215526064167377284078301410862253974938300834598536701138473356731453686837457223293691945688864760670452288984959704430174828557019142224438066494201590724398724087280087389535788949429048712426920997792306727198634493525271562754759727063279765896230022747164200977860609824756780295387184689184195913998837151384283938796865363782118490716427527176740265388540080708872740038341955927238765719669937434510245718447656614408295488829419857936418549321101691835829513898687152679092777405169755798597067025395816630880985006909639272289762323109053086808986761700847725019254588494251976127450929320211444951365460946026670998368515531045626418645400908645194789651701575982932635670870413796937479739714073151868741549092123272966209983788426557260442533100061265206623750381059648593939727909928173763461140475564523041626603710725927418437135044113584269865351285284378376057761268682669748801828894371994930733952605433368239680226366761444954511592297396595360109295832201025021912418126252927728424038629067108384820278977307108977816881780382283173723341788532582842105182848164261134247735526336728265991832407633844002362472607362810835142645012336808864160164747374730641493672491523811312527823600456317609781081586079656987966332940097989352152008229534222659686588185282294070452883749257014052230964730749259820777674549555451476499131523738978061994933049875360728800092372407424095043682873386178192249607315354015078525654060018563673968643894408588333627460038843975201157275288718770932842224501642987484164410025179471027384704329186921851304045515905167072164381732508147052913380979212291318023022062974121314935524040462425851817243693871614807232616875829877093699950033370060257280997614785915026820263238236025074154622629475582085425587283905637320853890252425001839722407213595857308381396894024328810957225699464850178829470439405804720069777308979450216324755855777442013815108121622206904440416416533291190562281235820564941563546234102762410302003492872234214293975246129783113588280864392740671239986520238480282587264340867835118491469778588762470971603919068548930343947855845559398001097954785088985220790932853616012717429201220825456268231590331364996863870779144911460807147907311310749416634434334785472162984328790830238371435869063539183819086960804557617275229073630472798797825480198212205629044881941965734547240894135818975317059553075294437676011836820945476427250783554052565502095304794155038044312888878155207591184357664667799225032745654124227186132337323043227392080148828494418473070283089681884082246849391214492467371269058702315357096787890892367723263831486861922230590041520968630020964852867991640729676628122384084323973459382607957289078137016612217307178462825969167727820991925368244137448961931337831402340382060374447030188040288981952000009110288252694020795432005583242369452261546373419518223973579307923538848873158236419227893503344897066229349398033622878385597313038424979972438094725468420726764352653787270792615725393661464877183766806998435000189159625788560273564634389537424275221248932414279984013070696679436635124442798823899791219368688232547193553904099285067788476621585710019804638084124653526559057906890462837722119865171220465917246747492884176358334184871993889509125423417720179414864346897541200252381778406596838101672753731573660464246875421182580841825977127940453498864468201526898337679888366768478392417266310456196416610393980499738220084354754404613175149236536820880034569661196138303943926218163007213758935677886671538324706157518739194351176477221140296520346225726862666937708844064168333721786504312834790011728297930785721232034811379949829343288609258851466178700820582585055842951811834464050330855811226019717824199804343252670308865476290192762487515770747111030757580068396323948323240734547915342630930560568907339647912641213845706153333814183103958233192624666078586925067967613986815116275703750054231116439936586103811561024162320419223263816380302791447629221692846662921262963700334528353521990855372599212659557479748010809493026787958953857592926407042968315424842425234357720471813108043593439980062335169371286631665573619480004438346927682200406688120701159727349492767426931064730643698087386085533543425219274875293695216962322411017767194459919410440722662643543817180934042309232768501846434431205313230997648147184273485168427023736392439735738073059756439681570662912687225918995487503091678769080973789953452638570180694637326946479192721775478153030371450511078521939095859920507722195086421101856468390138752186373394328712429476211816799623267161903494743451028273299355954745750825053248184007101254325771534363089807354281350275455788325921880951536512751841103075544389339099463597940698660669552790884235691125403991201519251340389765868586410640649878218739009364939751437541532225328053291917713012156159346752832825117828169834261982779526120312212332271997919651625227315405978063472618168691991349971645343105769703947435788272984229882782371027055973365771905455201360340561136294095865823462302577253410986184261895645398485752738431610991054154841729531813936870015108401478131904762341671792969021854921927601981785214986908744163152156187518083603771209977518590061593412239783822247716267832047848313986584344606344181070577667960205326189070814260854408720894164425693165690088618363849004141535073262733890170521071578210941625766414650379842739602280427349182494747937761440397291273418564564181110083931546709845704195902022612513828004217721830303323841561365168864833147812654707529991175441142183843279115742584226077028038416031593348902470613353194156956807102977655190437874065091375888043127279624351619157938330319380647133940566627787452224938868600437618211980908073673941718529867496396976711134492426191177175033960103015921797201048812978161679833724619396352003198615237497422597379957908186225114933955800936918731583557708376312801195862647413857971095048788368316029747705368806792381150806991316887659791111623207490312428724569091184084920630904457658602938964975219602849643054907187603067283451461276981922892659021395764836811541343263546307314821495413246986684946663379606693070198301731482033136224746374339847104900526335463601249388325266166892221652171235513653132202699122784871436043788053233626454857065749345967323162461012678400594320301627297214655086306576150404844895436389318146857151150450240980226258954363946686292203153631458093578770604776226577970379274220639091973026436945768222447247213208291511012917416815901092378621464250236315910317316256248674345171757397915137675859663318080871032831625027500432247252841222269325881008382986811976737839476487862594540469008256173641542417395566778389285981265007539920675818515251566447452297142906602864705232404227886141205205978141968108150329091568001187999331231078795359463404176215700120819809936943832114646937006532154143246566387200557664918639114348800688692101586962927382981866503906823361693073412419089682816546901286577399837965078222634279331916997102237680559755750098889669819641020643757107536152674629107344238754198457178272974717263499698959255456634293039797908032328177034981931015852754034634121339139355034457431900544573792607151688951859172534321213297271610770004071606468029236969225000788994578196614540789184403402196054145934197844760435943884960791078427108681858858691215225585921602425747912941177366604210637904407865950158463207565465388137152761987262963199418210752871576014076648271626190527506800670795938382279718223716008102767809046317478875317095448174275495063002007570275920367483964477650386253267078708157434627014872250443799796492188375051990550679260295209909086734602283190521630049990774643957224609388264718102735995201770155087534754191401944892348205922458951743561925426389836628282970588695905091855933718457095007667235429075552107402254468978621115681119968816499645827804051022637996312130578705965442855112747325782387371566042038210992898155511920231714008260974521005786034207875059720910444384267632106466310043937949693917818229194891939477255584883270659777675214937631951129125981984190314745851635981494902769088700950874586276966886552679843565441592113615125122768650972842413601495078079631459772191503626897540469692491335738492774606519022565750022169556242073106437780033479418359158927874132890506823949130688148465350620408292530673803213116589830624988221686503793954030303817811850104652907167815940962322899340386615860322516403841238136705160619952145538943437096045827408656461188693423349891435558088096997973117233499342077831917232395177200061855685974658586449542860635561156225698624472904971025803260161426656774935902086136931575453474369892862177414659383836772238662052578980435105343272931536254010212222240325919310805422003200946719408550479433422633150569593645909695441689406692936582906849700281859017694514287813945936360262068076449708941170867181997074337620448255311633543154626237276839363240368705478997882895995011712011908922490964488897542694763460365970689186729652127331346598303586254770605804672259102263600978557184756959343986902301213200278280004830663715001655653569302102063048099302509335278652013839213302883659706678764694574836304802694360810144996735149931542711383158569892489787794415816410215875035049537087012440075824597002034773858878735355029717576191552076517948920508996977311323645122933062261650812418176767726318511821779255840555403544402451046535860280122680555220018772034848267852041071785312724251142764301218355065433095231676789553781396383296756875240125776400620623893416425790427615529225707842414253985167220722062891488047344300525174483037234228500927360604280497216609824090280105722251484780999386647165275255435526824056613023474089509419173785520171438108763660403077348191292691724856853811741829067108206699718515852253246800379742998318868425064960263384408299044863343991318274498870887507436802307914016688882965868318869496322687537640977222311887976866600822087469681781311787575019686137881133820848773986461089823352458807711040372179454766720330936482841658478059587830444873752105288153845159231042614975231158609807642281453452048354562618956524015358174405103920267351850321497684847997932211928295543753950462370882883527528899248243070640479877387762738106276756627660108242128208181239264915055211800708188940758875933030894332293410122669265665501937034149982128713383969081733797799951180257904677943505270597248090027362769612183363305658987500452328951633309252295787300878599896528008720041795494330822680528728817233861987484010630730544409422701118542932017765896911902150683421429466691167114444225550476998401507601388252807996110063213212147487206628469385955636495333756827153416347022762678724311257769688456572865631219676609472266373596302431774414504215917204589816410397655316059440049270337911464830985840022177198619629321040706563092502510724675911039679163255999975737957116253619794195409128673641634924776509526421846650190666984528458763015483343351617912118468407863680969397958713166590624370170803444102721403616388018614301615526315655624638919770910900604864102238451463417894683971748073896543418092589331270006066340608283893126694787947089774116991946812411383994376551287366793857384041055445995504048077965603168163202395416069588221121211715419153055013683211282866236816816498273859537796169679495042216055993993480130299006272270225209823712130196752175985259228419386944896200114496120710245207912799499019230465780967112347779212070030371721742332000733757400799615593713386521578359018332899424778285674614826686229830227081996457329607455634442573553197327323954509318783526568838545742491836400362841641254051737243384405930190954155233613802212744544082761915455652911367734108520826042947432885617248367828282139117595771230086679705244895067190578547134147276494233648172953499897082731655223440684343636678724279033977119129604564690513513543683160331901496078209423738969431721813972278434515185769952206688900220924912548576869454713464532324748301210631718958888358632649451458699026448552848195995976865666354774765913099234428387275154908629225589779217777607232886747100739165630737814159756999293722880989634503838386084829074961766540393406095700684469028395024231982667810838640771926323463071392951780788049688305232114683661220893502213185604094291791769855859505765094024485650029404246923492405487615250683472122934497706916237688088168233726925059787819982356464086370913738345310593398311827520355646814340387788928356871131431975962007300060817430675862983395066037824552731634785062330621796959900856601509446668577771900299471762043072859946375039263077087126486229206591204723679382105377936355265414546622904657155271399472634285045470337428570987991361569580947360130066133526859373873175750876302291116886101411746074367721714800249568695441650694282961393215782965940576056256902615479363803313923230261651556054126318520014454729084018692140938890324775537903829888878386307245571272553836227037989314742868277942983763978687256336449067473104185216274157557613264502681328469921771913861129158019015434848626390529238978338788385612781920864845147394227301782468132917289476279673751835025572083456302154282948234930963984416813408218057398226863530227413877053191741314987454506890572202047984904770748290755380217005644144175132224696981982080046864980819117004996942839440118302855006588291647345917858545928923629174051750455868123404053318038479834945448755680436598392924447766737674387843963457710476607094043219795673314183915803535715290095235595827838952395669158161885684222460232244126771545884602234872539948862974084082423059114377115341355339279575609911462580525159906197689781236055272803755519594604885546009751107827740625800738651847453395280805730757102781344965426503475153783135647793353963452594865758456138738616806438932649624977285201874029156057857901534667248956466697808108694536139528929642806873649586893326450705693152998820177758481932696065674059984605317312208015819319156141689437726816437784473829620557293119219087320353143361292264718241410848262709026269744994024093720501445900022391239383657517088245592683497878655471392525575002818439589832285923081396981268820314714273558706917822164623797727847808625827895759362727657736107825880832661848418172607689642281948154442906141955588933485890840560278715906870740595355876880011165789684398337402871701290044505882516817870750267966606846854676812654745486006806628990349761580946504245130077570157543187403237964635890251480574166719144003563575157844287020107050817353562530994784245300433662889020855820436047929842565633169457745374411839292728573508650696035437137362683003714125404102184421918477800569857960632165082956380438370568425497405312724948276418439878947927639305843822309302994102810735128802957854095722918672007881331678662186310170860895385801451344697949461782022516353881798625499519014602291734440114766134849364485416603243828691880497771912143849993439872722622416235718959051304275487972479222045628442453343451505919157245985324017810711426051213640855734536060603637998873654511513855493335430570481035734654364146435048611518889458523425208973496501779094215862493620694303851992872656917119057741225000309267365346949934704389954863502885805271248318040750985267953951095181813114988388256773919164992205186928025277747034946296441360561781841489141257296237339265410060517821341822053098762426918838306549158210356820954976045124454737154243797808424633395418088468852082238148480249825833679235573995942080829769944048199388501454099490021709138652754961254778360381030060667590584333244122218892002197760842494794376778829782002687209987254007203191785365168835508736590741774532567105244033537091343174649531653705318976665473208474895197211477565310747123799597376603334917066649768865564563960637947721112348198969567110096036551383198263914181406666326315528367409585462982339633648782360834755070875139131752074540053155051868069858487537025433704372627721871093423519130349964061535502953691491983880684357027806914935007232078886431350789690698041175790552428699644934362071646658906972026257773481707664378643111778681783172582707480972270611629407262566425873305946892196176761737387832255848127809226930295145298278646050860689072004135315668190244173602819780225453703357575787374501983711345113491067242837924484136608934744862163425119682524716657918283581097796783206219866078717066158668688287288681684746250223946117012397954408562036318235755566208289841907746391599750522147692648054246661392540809241557350633426973478714737523329841769835376563349711298527120241147646236553914313211573502762456527582698552424985609202422616213452739974025509239837112037054974250534351245259702350994289131673030440800003163808569337681326791014160306892993707785913565350718252957527608758963600153895607835540647870227316413584576437393480635242607489620830530960039763860175236493678490571821257037112718068595255784234397983606715003540802623191008900102321956719521554802211312520957522446781294690942278298741385912243245215070569931931959342067580803378491814273171390777880972405763507838095279615414506421048685722828253010897531639236794133378754055080861549592769000344766143166279226618297424862000425573725850616829708951324653034137978143971988430676604770153939347408765340030084801654019920631971673515586635058467913542194679858505564625255991202607417660454200795165543314203610753842749061737344319996427566578519708896957810420548492972549933455674085532638075987848432022657340104563279134789734312590902509161039230122271170800081947913880982111407007847449733728217461140891749252520254616523990673907230207573586126621677447470945079815613039561624027554631605823273203365483363437440490900218497199148113701553527169266836998627511726866669968904783084424444086144328842206371473311466937451303933443295080997108253760047927827691118157179946130529717276367377378541069904688060516163538806434586370798480096095535178065708711390794972384328170903789879287004346007028191171549001699198457621659594679641517525811269444685811038238368355188107811036086607942619644143521851986856162006152104786431725711702037167981282815532465356985242161030757464664820141218408240272425141351124399514518635082030487019361423432590662743621684516064597970150115715195348825237222985683752297117769872474617638606181253767456345502241013585394660359851669276317989364750176816084897848058099087509950654453082664620319991537482537096383602224229866056170243181271722703629655442108175692234279377604981204790483526893725954198632334668668977961493470669980533300745108432678399679685661682335533349031401123701748892972473344062374954985857150857058271338761824961568485574114434190588785393888083383156023703849531990578926347948053343776414585167796683186700864000419152761952492827514366477395276951553798869599409747046150049264017994668624882762767729584742912381162048875451763197979460162552998008029648589059068394224375420257294052814821593929842337831870083784043477048732296505431596595209478029455082893896637007665311529848196202821262779873077739872806749305342066979439692251644945073333637919799512357297883336754894222753059168662183212519937194298023193453277547236707532457463488204443354577575792964367044453661599507849056217850733626779416874834332544420048339457764377123962002603709304311831135580973950648602263472291936242330080546648825886363874016185099542375265638068066618395754737924009142506340132489283101200391993152648300814511217993602573876120419263809823515295681893927991705307868854538597084420140721684323331403862762691741479153397352915327735176418811455357369384837493297213771036984131200206636003094181571658896011754236388462724676813159309610144159813191957861079770530584249938534997664330713027638426037677610495281840557127878703224422840516408415834232392130021693612790986544466793449144492050362251994189897684552549785101421913106901149551154831965471704498137106817665626560605798145335005196356746029038652170461900178464058230806925947082463699399646764545599649972797930741467125196687661672805705269549305710760193876342027384303512401339813160798499533471584923256258008901257599057419839500995638184853527049900501153716412154303607254165298322239589034146762557509957998501634108811274436451690845452751891841219275403244790912298600794578322395320034345086627707880528383892122900722989019168768371795829141831067253235580822661422792228073723368353302626345593752898933421448809087856577651251341349847106014346813621099921925286842666982967625447394954772257896014990219281921382811614884056289659454136874200087115538169874880650731342149006286657966867621345471660856990755843994612697284084918725584612614740902005584213890797071667340810076436961688681066566137129280304989047686988351278990727168161128056991601514071610085375484185127147468914948969604707321413562982721677910569381609855443933337380812429034064799910030713284594524919313632726053469204580872662314020922887288484782510589662742701569825481200383388077137251714434807716536635449667255950214930620260208774564940722659691253610804118281941230791889438461028967736668156434135557772885695724349867849080089599043068356263486541972331435466401598271528838425460808619295776710903891110024882423017926253164412468344288266755056310660156694645043671785013634350051275970065836913832385482154527161000135700201665446854398369274470452497352274085672651158086934609654135617318084583326837469239842761842774464513838463700254752395783637552092330683625069529905349617251722904409937565321442500631554073586056487662283108344526543700265548570860190196782108090978127939261577504372260172619180000528375548947811720524202127671817806398902518769759712401176990100173925849446978320745543860646426691011707902468208778351408575278521369580904859538999725234248397043633317849138922742146274729725885338495203376825809518446574293931823685439769626562330233834983524739842425202932670733739344456343925820401785017380877719543783199117732050477046534520392033067157833625817481346549929612919515978518366905854736867931499674719628110841702984497201863920090983017167275068053035960386299362304501084943362518292355930097323009435856319769905492552513981258419157052791917939671881845754853856251887309929581674330583031389515014920114253782438823506889176903059033114639260650542833172992179558719484407415980774668574274026749367262273675247276427611501255824097319446901436270335234324034549271558734266820012535914201881535645491269390603897775593864318278902872874468526793619819686080275709059008923396601221914382990146183293380748316717565801096696357490912759574832909644682363239918810337511578523842370837297199780323506361814965244047419807255689776067149315091355185705493945933693754614638301720604857321467484361155318956905167610299205789336288868745684377951111501256877241663200280360799713833185268635071017129466395589696699309153416633134745221243941691019373550059685162047003185911113395523823861815985914759291721727935331780875831294896313400146427078055787829662163575721862874298612401216542003778571237692168778633184230386809460199397480953887250768471901056580840271250662181863499697195938078923690686446640007264098375883750585068665619811036399859654559155472403234207295572092180106791327185780853108712044305198295924463938846176038846979403889414431857134693972504621906336139701541597723434850700824529316657577827056898755328048085492220271018415756355550374825866898776276112141548178750474100647483910249498837368312220098212329145804756384097740656498051490655388619324540427440386987732465208451069133535042483072275999162415620927552017264143625042147421274603521652244852420777824545286234593371944596522762408028167324396186665283863565910060058098200526705108765247442049857345505723235538198335249829840752699403770118367688843500614068775251626342745263913449920645786023347310157558131503505632510911288623181680852072900830653958460258086688738502740159112420855165213038862932605409542905071636768541434680583336393206161910424474501118643201231637827411902477648927394354147098814755484334707037890922844668689065343916755319106696450747051519117255725676777324787561121014711412984409804859246672862479615339332306844268598453784701469081212829694521644436700449718736048476367126433983017922668432222169489818465964733562732005414796171596729575330654335317628850181523568438744151063202221250122724225674209668972859708318829580654706349290464400126769819882076735535195321796825141352000255203145408249581983653693078120888377952220215429330054229431226647907927930859316349996441809350599309795444003072698328252745615996156914317456368951135129625473345823066927276728023004227848489621432280144984404709013054328933048649246210382724236366200788281350419041990441478252877864835475231861290938835170797099483934793996092256758283264811393173996806802370883804343183580230615029118892819638543946794194525441008189391588577763066773223770957593588472760914629628886138404135661413733579048269176688029469757259906951181186517121678189485860089872891575752444763496742333521462920726631164431526812949022757211390580035208544998325118584467881206877938049056814259429200894323924776988581850608873042888125990486292768923721507428687707873053649655021411604648575497574517691427559275196857131427533356631960216825113073286605330466152597787349220783632358814681482438307479747279510092362127565104575205429342096946802682106382595615664028087954893928809239921451931516242595579480693541301446332378475643216384189295388732395589978897041407860931939339409030505615246446607638161803104046831138748393174251075220708928326193709917528118197040927967927525821981832806440358856701135082266362600971368094538303711606462827307158370415693836211512496063850565449224665415648511871791439585868168322741303044866220875849708300273322437657083312347013251726319388935337186528460354007291396419901611988833879024389398070108889897031372320606987012081161254283967147551429602266697456782750262905346848323544571882416179654415393357393959496905031663099768374743658046525698837229714428204189049238505714852399257558148147156031752508946762705455580141168839477470362501288792625133342323787226403558828560252483025601608061003015248611484138723704732644558708701911704569847558192201737227509192235265942955178835283217209713419434060952197217618807323452090476550223022631829132623422181389694491350512810201957030291928334922452850826727312197425590190089129700335767915091366686233716480753827099928488727059694949705459944284066029527091784075901788053514844270424769128306388605172248733391530915464516392036077244515099004232769517381509700462576783467554976276859069005714807690056960739474191171584816647961173298171523657512802887881333477216113038443918646240483753946563513548972770140630414892089416339123347534878619999628758773638898032085898694222242332417441677605901923511136340599135542543847725396863789560113967966721186424151435571400407099460033250448863956161140638297045426391508239356009674854081955702807494462965519111911739690863924407089757647214942903036207802123645695188106718060371296342546237814863879109915257029705358240622924550215262970386239776957223841688278609910267801550983328594103434967590559052004817203275311850055592848587709122783558097037447869707342930218331944785241873956604345707013319465785517952191529734449241908510612118328875784346770993427924079875855940888186773989621149144789153716721228159794289770684501963966078297843640594895781100395448261690838313355284551200427614175566646023397331111921219510086205049625633309127658738069778154919696204405807691333223494225059847976354759610545277753500900247328685262098049032743019030684087195447152605579480574811631737050376462367567906059117451946843132301843799750284094226845309026034048553449015727517103251321625421901784397543039415958611942158470685867109980139047869321730815184878918393286344000735518680293205021150043376557788065767949274284119164644192496229262794905390406261226358774573497372381480127029998438591387283247501596296994700151703894518068887785662868932631700314236022155521351223052879797806621506687971724436451013835671663019457464665315802992271374289963966274575947004784019283989047486647885232604573296807077369239150078190923995336136373516287177770323793436161950706782601372343169945756147715420757260487671239958314323762371091233182360756402923949832156925926507620907159715814863678546956686622167678213141438155261340625523089264188900000077850609320379572035681282040283535429672991411857713460339342938039485741241793798656827393450040084811661485041181585885797825761766022979170847774263599268198543245800193251877914436770974373083174366259424491350106519811439242993844405972657859354055361353210278413695702338335420206937410975885068095623574072384382400977934075498234971190149626236712736142795515876219470635480542038867705814112037886433143134057579904838610182487764673880572196376462674524622907958125458884947606088399107836044271804514845071400872132224064099478384498163336664627939083243023429165422794200942495286706982003656064604253244607335089850727248545728739924661880731573562429187668646853549902448735149036068055236124970693250682297795287648823926475176239067150367172637397009813657638011125745039622320833974136321742712962122128295665790248102061678559111114732650874448812690937792167718885055929423576183488997660131418864962979491227411358697712055051384199366976426432562642437128588669808872211820543346183962946439938089368266548983383094518756249080566931670028517030435203643259385721813039135881770993597784231035276369809482944532237738818534247949156654286529486208826993597788426142921600369154740089214548858889056421220365119435152371101145521219666366353462185920963758873968223185235566515302186015297168793445123720240605415406863043438788187538080573190478315767293997175593708996710191135714996365908455234078556754387313190589103622727758810670414488434225069842329314452582592010172374852758681439835918870413346710783234332848283912699248094485461326193281000893480423352624645331475633786088526932824684251314408851489041100414702553584335391043098858216623130612554802959314931248193263858867731446653630105349625530455773413596913029866862693310569937278989290738206530574988894835043846179803673498460757266188426730643519947810682122847894444178674323065645067784581311300771373571670128702040536124381282111075303929446747514932539738279624211860532310618738232025709115329751553491718106882401595392516222047721860956797038769016490390585927892343946427941923591482469319266146294234573411013369349305850271787359032973488472768889144836035729902798692462395679070835449578457169618458777002938570613249912050051344504931695585289547006598696464843226903320642121546907814545740050915673362052093626254107135878234835218816309780300446438023757838367700450464276798474376338580245641898153200037251091652374753229847182523510951332334722291366121065781370135159236421672920586156318454038598150837577419765614298847806349944500793265794341941957417422446609360302810878775301588002370595720500097294915616052314410081827707796807911365711622322053229640161463556482713753489602025679636059938865293401564817914630308111611166079054555686002378781367155641309314340872962295790713856584380085353525956971370523529303922784448760485217150503259221788221527989062772598357678357555450488420624725791579700293430702274998864136738839927741557147772920842953867946610938064275895445282266184580211359362560837847369710747036516011536177796938617237858468157062000076783268137826496001657454437217224541889573783785626179081891398042331711752477630191134140438866411339266112394979511860491551109346434699590573688208263053284384294228688911812072254456292041613073948866847412663913685356553636419680669482567154200359476053712240015031097532323707408310144233954203273123084335612513094856392417442131255648531930469512040388143843162952667832472113551883032851817930118949932164016178591417768290542494654710200309185655149727247826401277053662748445737819742362943682789779340870543457716717841357239225844554990137053364209765588843509493505974548009507457158901419941466353777086750833793453267313306243428273974325226604691475269493031044488761938536080245825219201557346409389571528940918287762892077396766160505059922225418580839107631776890310540381292567797856435429079236168016610387235315941902857522796767528372502734816766851942882218990207773080188050439699088144260380448525863294405457448678759152689934008789092154981393574513702052419209871275609844939233239559325458657098071800055733550613424301374463451739454924231075441653105597128032047388211721099880705377326138017174994370805543588340869053376976448489124504849187277408606077607004398965647158297239849824308429209595825584765190179968277871104637657642162401293144217864741565990459435455698922012296105024389111566300860779941444007357455817362059608521762823159102018665489075687345846202940572046964057975548625832745837063724554908574966629877988610341720360239539618667338868849051509321227150382860607899093718791444776257492775600441732996657644504275642677306480967202004017909742954597842611915343803802306995591789157843653685683720233444916731508622702514465512998990718913323167628943150460910482668659430484571326322896516493079420978247988066842230260033704009202596348356156335965188149884092736019903148842889741392515918265639620008186441973554431412312274338165247088797254732827758914785688794058523780723961439176180756627726212321343005995916647980876376704346113706820337301579483315947047998163400496313934806860034071136493609841034098782517290544876279127116985633790055956372277223849235933505952524641681968011240393743730680832597274606197304689235375776187894573544480080441595503612565411479153431258044404891501219359461611384077740498570063909903928257534628902485231714879896145235909147133423080544781670404889744729812650406804687069935337898081182685552008026705553287868587847977662309842097872127915915001768441603471831625443870431813081973160424488467114064225159289798093058332576984736059744506394941627124749373230951646357323420368304941078687124813140664931326831482384843987316415122083941069345522062149678350171490546136150169725687187586729436913283555244077228893081907936570167622370440517235788849289919239279452920382225288869868227704854862527207978114485406682343121928213769422368650348520163533992543840435797244312916650883042432909654147701843762837513037618288898545440233328667362074754793848941695227657507005889414649580373746837001470265877914581715259052100145986758584366444433373386589610805637630709463274742771960916282239838897755660880614837148242333147007048514235788731509142165657542001958807542693726631946497410968656631001645774378597265295423749328630218525075069673367770919228554483340524530694046321307045819690994270390577800692312451142117207739301163928276032365680651901612123781233422870188213256134500948966968137924509145693799215115502465796670455656868834239601761324406040379657059682185975667382454024232303386131930245715902851735410468612467996649578412960892263784755914334074746320618117446006128617544622448259910324205905837199632551406572772788783607170851547285562421509378408261530680317456034622968419603879884279227122683909168783776032859031698465545184161718919259654165662409122425478852565784845467375071577766937521017142304864206478101449285570550223845875769961104246910843514873363740436078726490459040114620341542532285292511408434063732781463006665222186350597459341660327516785017156071351906993658425327685190464653049627437917136824370316358855997169221653795870654487170819100500641981730261011901205784778612871891143547768144427139630884055416681494907200029843039660162665796162282916408200759050629248820011186263481889207424002892190678413294228609318417742237169573974934744348612859175897276320785144315676247211303347606134012573213670522769624540119560031225528688137860679359981202478112784306502998989800774210220255090256626330674015306190859228082822946304113192041232692004708207163169312998071216905307390775111599355683458277834645964427889776508858265170178672402861928366815927034792494353007221815365302803311850293203532338502944944560275444240218841389259675879764890931667818706976543636414624072217753134892432035329989443230489136937844986834166002922602592241389339202128710613646149928023447289502256656957830959103470497231324192215135204558708526796098913514637784025425130152207128691154259692221385736712862829195752377718899256382570041905540169102131653484102547881438714841606804813141404244116850771791553873083072851370153015623999067619786098285068135699289463424415769804435856906138953353785827689291075583396728713213618130359824675454570336484988262953742364870883305253307013739324967733199466318354879348360737421339475717376257602851365073560579315257173338835392060933231292271652485288802836002825380543125322145728422873945475823824427189652695408256204045658045044866263269077451815815354986203494108048286025940013086699624914424458526684826842118959357044690435414165162607291453153055805956230628833613984346319513685058581617576273181491958354799483472311705329203453010465177661214467971131384316904879782419763773128862898723082827955126523271421974650131341692372731493774237334075374103624032457795302039582319078233545109489486483863971534055483086362612451594487912785482621462066929352343191331620611937481149203195590776226150513630193594433587722455659507421847607335381711597819248102717293069542586570201937744680959498123522185598867697140809554834186120025346656683477069910697961927303303622371081078286501933092437703586785870796273964632877858380822628418214563718330892005732141409460195660908740263706227963214407240893377623741950538353555198969399189764881031240696361788896482515882746644890448335980480119370997951983094477157603807858335310528926605506657947756198182381420651103041908486639337384966725107744835051929405413362113256465990526449799148407265950394888233765475020741229845203945508205286170959667919332278454854436022138919219872512731801439843189234872467114397543861414604154926852106142396330631240950130988049358567456626543486922167972777448523673710301720363120096254456744194063616648525187276313014899354709025031140447427836724595631801263007080557667902830049596777089815318010708733577090777663506204220316027325648213754967388832516197901108104977477396770248185022722295375909365652426877687164839509455586570436448587740348958098565710530748194955211122895587172210836347720247998113072017284300550395794305518911033661525272885357818430305978248263962932272778275557582014490671897679236407632606828975846246094394999642555345263968374326473861004913067360156672393752263120598967695191217809797909720021696530253956617720660748885164311971733907647135449826526823031744833907511311919019095391488141117834906702617021685032399616652527483962024499748368102441392928721249022081910981485484005851575081166086097209195657409839961281188832354031800143433925555964302895694986532068708101660350426005901245003712548471300619654932086759839203527575714415304389744421236787524554123108588452005018264373131621000892783973011991666394072976752699984728492650518605643051951661934245250321105535172162784175824537597699141849863401360595598314044689092926202769886944558948090292259976267761248223735635770730078132591033683728333199588346384116391193770154120785141454818832950128776767549881358551990096900191065556469742902799403765044099746183321158775896191246746576515524000463237469260519196459786072178098692292414164824018709708937189853247551874069687429021491960010478831568951665167251706506274360312406626328982990465000926111845345152884068302316903254013528816085729436516436813691082215269586571733376093266220780831169697195470137303463514737211844063137999158097988244749007553007444035422264525639851177291278709600359531622234051803263774801418854145058202187552887329875872065584540166949300981014021306776422032165263797534045413204141331846837193773472601176684560676941192719209099151376474959179035259669653158384034140905208761875186822631696785886576395713367659999717743779451115892603801538055737445222861216411163839481246112040919533332808989246230438009151700219680034170485314167105961512580360694635053718459767308924746535948637913934090687472669577369255578093933581567341911758722877714380529605441234601943619518509253828957598062470814540673322072223683912891707176383831070638308499235282431216867151238765738365051105227831989074284584075490142593047384093221873141270814175146996711294519914699488005443848453239728947076770414150211081592586868900225775162452271082218553387884932300889525442248031933530823226321179432264138112373116513467552053939142392236662668081451131469378681910404745758096720729338937144985342920707997699642407988268774189284776687256262874374406775383387395002423111004877622497719510713305037197121349563751188908597916032223252391196724891858374950057451708259750145080733594848936920995672728184436021101754526957544702155573692280159684275507980647125462189201388395486152902688762555349756021326530043119408569608998899692079655573791505975825317821315154606481203555579866131339201514175421292519277200016000832050163929423205675731214177232876838972126015846173941776554701559863991459763645453212119673525148425896872316827317735860633019639076900902501304164136611466825793653975165758885917476699836776794341723715652314948967648785866918846962103636990578471209046068063644429441383065877497240741585205866456946613155338556504194507439254761995537962703399519263250580627263059992519610543106939229275670769985538519262562788583761537150928200295686266879614614013989155481819098458350520066517176403204527340631175998491084708343577126399140408288456527940023746414838235499672203251436782903633250212786627653060942213839496026688841317326612170465033187415195022216728777164740960780723694300047489663290040367732077586601089764824315204958462027802334143233498157772695636526353342982180988732765292621100808549094813974131798170912469886737345969721418700490288091736415450905999364949089765518798867292609346036347379745121730070606040687483166765009413919127663166391229626143125739745663465434079379243576967069683171305601140118860011158411544785555722672368476994805406582835672924701015651001875202030336664405592137507192640560895896199351065692404101356786482709555217138308327728183156607420385203396777987776594865290318349461433124515989242868567464767881757066435333378779729560370184955930870965672773202734516726271376595501880937297984471658911310794702137928434511417307833721985907753084082869001568210182681454445265087054601058879900111908876557781445563955370720615670151970441141191923964175533798010599853986503923238843192652761937861440717567771031963623287862474813703574659213477404256321084632232225061888465252212472568784725188549716279605222909462241872989442486277716588765056558682700259556944085648768084462702145985165450949898021772696849872584805281188637083890170631304616984223099588816070538311026183487626462162203236061998382390344575252904835211702224719119572126910274502857493723225753849648349140198099739118625303831851246462005272571793068981846068488916749208040887495031837215169413357134868518021752344248762454502879202789069694862873930241362813648512862140237898952776581833022828431360906918867474532190808199620426209024593714396097616686185432993623082198740406427562102916515879854446592841858365421041715933331390714677314066916628702956639870101112105035253775191003167997673177714285933234579409199853813348309213785114970645108471955246886482943192728981959767233664800834739943401406952054882669915149265263931039956223363004617723550922687763646812406964173210522118167865112645540388285366181767442695935832086582589016390683444564183098499660504714234107030559988098822526483901251910283104996429538107293148956156431371379719142908242075974552425310740934695968509582028906297480932553714377190777247467599907386091925826388816059585603100583530596587215058236030087274686568504042635436894605623590896850456219152887803508826287440453323946787316826382560855700009907774883099431614579997456673034310451029534130904230835646672242340876439994956177621531697557411857109883725533115945682980327704829312156737147102120491069040795640633287382297232111113398577502287918685984240274138377989120900568223157240994818398019664706321381628546755946224163041495330786063749255320211212289402546358462804471362026695304710716087858901057899354252789646298829184756881824928937956763511297683391608385390509867162430839711703962458368135108492071771526161910341568053698273501213388185440492933321890921122526502593169801776678861383010154379920310347244548914920018022292450842936572233503512789960582068729536577147903496474574851892457026422919465152262884450907215439525726745668239960690131019678136889489142746779954563350826007348623461947303960313093436305938129986266380283363818292350138460982673166278144143432770500872318953626068962162846483761729329214664899513154869807968600770110691406237524657208002765621403766803639173621469792952743787681610620267000581029365505868767698249203454139941205647518098757443871000560814434651816520002405765373362464717557694352605381561651488339811285877153426922867837590621841033663069055344632804992311492865653173998289502217162252855659182355274209520240343943836522484516610809584853515514589106342466614543976849186068817163528806285548262396584382121176481776978490432871963471850563320597607366076705895347206021592206187045694671463305545802390974305240460748093989245905380068971027900505583476846753280407447167011717450255745824351233242066616686444692885567072279999782999955826072283910579335107771512935325855993987235561956774692420951761765295023442787008936471982598807251207359454065870065056575262305714304906526607103953636672099964722184423488185680840396022027043510680108838129678146938904589336142271101456827422429629321319330507432800073288299765705830824702474852727185017346404342053433327353152865158701184459184646122538824397669913389559823410414792807440274365863231387092907364794947813784786948808886575533719389787822877552232011804611097498664266731707193293412919787245908309003181157124199590509384772099991466232040823151598243635031161801773787501448712294858862636201744937050692273207148520804089383841447890704990352319356286105737361469254177870050363963297525420064459795699260587172422230225414547171283112492787931788229842288160167922186607181773337543184926887624009740977511197041469680005514662117818141310392893890516662554104045888804987724071095748096994245448077750811182629716646075400043390424659788098338549634365334356832181390970945991912491434950013691386939921257782919135351349560693073698652310112542370593317375665492043302072162132450775213271327747977955104035936034045218423348025599393376723193634096641692095491753420060563311240664357823401371813025744414226666127628683550515925723625095449283460369631598665110719191516414318169593777788028898893816821006280004305544447253739325019703980130528866710788901460638596598712744175984758704341700127787091558081368961246582925691218992278182254824135088197078012204297807182058212202580808880396809844382960032367744926112250819718824748506734784469484842589034233465084505446841353588352154960054684789583022663646108936471283041156841971173164214313409531742293779676395358777094282706805989265652908262337259294464130728685797955665329380502134707511679723441800572411464413848693527847693544889067083049360541814373955965594149312250866337615619382542149652794898605706570204904727195909059969415541738333149836833846802066501368137802520142882216371721683211527592812396560637849492610157910674397275311630154947512228785333725495968887667555733066414860267393024340852051889014156584764366847955049628478470707625054994117563615064805097833153121080109799220577763558449701470600018663586582260010685616769807825351293467884939695396803325698661213352771191733700842656180787670705410429071131816576122236445335411831899576493051448825781991090443524792231200021009853439232144423798672376292864759500977669807605067248840568243543994034882051141186831257928652467280361383336582444032928735829673277645337915867882510008674870919689617446639477206349675520877138136109481268599583347806452974042222890627096948014003532180079368538031850543857961419240507105382459574726073654701194346420115915001544592567704661514876064581949960808157378591159366456401155574496857766074721731208319911938371210220125063087170986146121170150125176754820713244758544143354686912444139985256960227840326892606194914892542687426186464705724616804291263627454885547132988160425462014202182079209686289169307451139494466674486399097582278428519197434884094371428380106984070927493343009910330185593482016419875358554966893227907247175516509340980168644728224443103109708936868832986473398431584377801755307634802235993998493781508745049540702978741939923050505345075634190926756392746605589279959260021557244462125226504154088893293713218059407676424695138906614158513351779546965260242439700341942479312959378424733911510860603010301894360745748537778249810759680655710435378270334659879259740183970886989187712304348789186149206802208447767714525400339540306140851208429753274472607472743343906458023498373472922654006878036202378880484878716584874492874580316276906393317104304065496393080462715358764719858322333494840530502822748228863330626208349148390755205343937217900142185479954268055926618723622744542759213908630688644178306311524636487521066872644302237149898483404654245313295113201295786516321554266662941127358211991978070361644094535897659562089427183542521309271059355170817615863051504229996127602896311343437314614214802117193748794556712591835586937045102769124772501853348332802956483079838361474570410084620162266832445115104450324797814117554203716282543033123386867303035196814773453128110816475767068274718591313804783386949614358664773620517601170994921884500492865924811652326198595552472895876463311830427562442073597473861790539314706267508788332400272141189171830132390512540518670390745048513893896265448379941382244445345275335619749341427298116655943804131700263183561139576160005735363147360619885871335915477251551046536513901004771990578692938001973934829137956954221976699681068116880660151045175379467398908799616185072206739555284060976098831867940838098452399203572352471454762893966105329272814185212771638322841855563836772063695493149583507812933791450198594442495264981859337681185095495242397476360275164794671177525173932857791898403913718215997592475060453657711260767319301000111898082999793953209290285541302560865729119936817043539016030381411007468713854466588944651608223600348450627493215939248947471555701686488907247272460462903263167869586101271888652443874267461790943553432741058348269555260782411884056337721870079976453998423884802438163148337620501651091703310576113535584733048654161170072951110070321213661616744251239376938727901530217922862134870005864721250162148687674448207709243481658215489128148159537397465310502709495110592646995284208418636781091059809483129183831464291132088116774477135661509660650904138152317637560913155639608897650793262549667411245115483697341886683330620369031129264077804820520672683074489864717255039955095303069533133039309796459266634489635890908385992250111127297211794179111692510206997549790528415327364025859569196523400753626281809417570486627431140715705024079521960359216298971620652242358828557157479953165771379843627288735988061169197235879716266753846772843431884468153394458128424623282500504464167870685595116923595615638382359501770291066639854524243545542539408505850827164556531595734725684574441176274871582881399108167438353876783793559089857363065246567014516207887212966522396350375292037468549466915232419091827877655251558071760875169514578693236718517436845613759307795345406879370439788225974417990846710870245195051557101190460643591808604833339165075917559845934108266336560727201881817431946158345210277716336978201229936982692303491986630695147301503152086427122631864619643472684087155133136578588144965880921678610001846438620839388957133394871766106693845170196016721898182925454188280896085690080742782898021423850052926544419070839220121964792382324779573218278014831261915056341083469825676877848995288973341532454917634616984120671218757047766503511129576282271892290668476992883914684916319514207230461350954416476955155719490945069458255761511777045017311943521599430163255228287826748946365174939136203712804418464018954105391951683294063781164994714881178677339703697358071393383429455113716168373538125743153446612822999125389192077494064098559811232032228690385043534921788230865106916137030349540226991117459925465125828044543288123444263157339654387478448632677842904381572334025795639464022989843742560111289665461337196806497637303884613374324975815135223534445784895773859029462535466258009506438208573637542719853925247041517671648329947467134857217072527149411961313151995729656523427803577746764625826377526365259875134315227003879826863317715776964580821931353524389713588916167092546770477149219689558061286711835043848876311606810712229506545283161681768013432296600388274805406226175153666822736944377111160976878017621379167210891067980883705924226572860640486229205898012410375540315037242604138891693586548028838922626650902827046171623687744775407850602326715517480920625242160014706645271930143986502062912791869566332228830302323766650775785531572350911523299467767698937919689367413135998108608136954565270502042809744671520291383151074032199321444582919569594664139450837319479955833177966663336544377768163055446496990530134510596743930067802830632176289969526329795928796714342880409862303516224702000764290301419135564851046641044523779325298534594635717793877022791410830974713910177897466830960393590111686398240188853466322531876122460653798745820216237807161661018490773178411218477118574243992168239438682430434527808453255115246465492656731450143756823326866851825653408994956035642227516994668036621874587495193033334191278876675483792348076464624764600469505144400575458484536436315962223939712290014647871042663910789616213633489208324635221407131221366641838332348622141670380128336497196726269580750855103281304895876753838428200944348767276170393754791782715969525074506599888491540417706174504712085870762907360672922511615111287722700585540169555061713709155987396033343154762760929244050816773633622251756244006252238835288878162377678747323723844576614085192955682786252534430949727861391526751740384460313374631364263836400881206008370595018329414397698507659947795776095969443570790729461448734238895971986319121968006319880727351385374156311900112646635329283456033869805076731393084475581144978257258019753078865150597758624968649903254783811331482073514752435210859134012395379164483618529758966114594725709576163364352216311030884103411376974666719484873471598479576633825636891359330215897548048405734716096695696889323492075298993689252916538970971520104703829441384348423483784231299248033563178659497161143079488528365604905740400060181393495717669827977101548158210608786962253004836312885472560117322834594432500477891860702938210240947017191920622511105267469310376082907535713766418129700265150169628963347124163932645578966383861426092827218731493415385477651535916014083702463076486629045055574424803637212086435806004274884066025272572332092462056998232806965973694733452503759130489573161116691977970112024406008948705034817288064525547082215834765412153276122718736970292207153814233605128678078241646097058191054346853034901392965238131940533755439915703122794355055631609420144358111825770917805975924260899146390420595525222155703439384732473678373756902095360917928542263691069867652499469388567024166326062777123917160065728956823294194766508112562351815797632728908905423433521163687888886916192398712805150568162204013345520773495125007200413243579500329279315124076068535548273459753924390136034690695103525142942752863667788943302606330220387987370601463695678396281086412010535903652986547057115666452374213816990307301272446195906065557716059040040757153621467861767642913872182496042154762314814797920321421069048406179397442833024742398362088867107293382956746078746431284609113719686275406219164711481308814320356063884279037486965065758330636848644237331914257115646822580152867578923165863611049053473516709275758202786532893360189388887946194713244625901700675631982636343329380496696276744440549020767244372749335482925694011441675345676688985090361718518587303875367300090203959741466878252340970412168308273035748862576523355602610261198060462667103050733925127429646277514505768978040989606088166622468386688474508971222913291785619409512983233742782106857599902906137239971421885044166184083939518750285023482808634163723195818047032836330364289828490462451060521199330812608927017936066555570466699366314916288320834413735786038786193453277642410199122873132339866437548024025443277523700371087043333152751808330888842174880488238805349039095830773414311794883343803977294329102890184471314163480763934558078303641389163779268817173106203069341808782608024385200244727125328997973361312292972928413621751170838288538428302945125627423490473372281403610636435557404498519212530725138401941537750150121022184840600585371321290103828742829961191773511232046137563558599258416377719523975267778771406978246416015881574785210325295000719975122033365850575702651272139925699129445357265401549954473001859888598920765529359816259360649427885198384024051656516861148821799918314072988398800131032272465356229876217624510078598232340215382061559710555282404963398150926507156162704624198181158624274143814905054550519134298067206288454546466066667503276894327576001256193483793751750131280144782465619485250737977077008837038976417720956403810753109807826251541486363996880020867779356496623880783790562421742181788719529132773433161983518738921789067260140258707234133992997224142278531448238029125914157372603655376717577181038364265421765830009384873313693640228002779915438545547444252732744859694254526584417588063308183530442135095267595083312888034231515473330666123077333741555230778548230309754901525698956362672761446636253699233574979323113820990794605540754433636581571975456612032692845326944486408530594322155396993800362229360973310079893187532442971204891421333414913070401802913036402354315400225779223558754587522190428125704260700710720029659328309453686783536777183486251138220705370873773013781536450663685837753221151529685703466311411363155202753838361627074052763550859427083475616207105010570369733493621112929996621996657319999427847331605043239731126896700339947481874456703974529161683952209340180927610980812546558350962423516748153612084593025043969497392566608928790132916608795637366428135274935658255375094166520238682512376923149448459859825469378012432887819572937088228599716022244771842977617123531552530577043426088138472836702608476876626179090833221098526844868085179327926351731377188400861660233062396060409379780087658726521315868989256031681336193310959177000046528244966096756351316189161578366840969264812348602571576241993977969664990312418559572559739808973734706134229591090566574622254271631353252375149441658655328452318936430496156434278692824521782300773252625611499442805292046287565700364156087802447485729629963210983077325674827889508337594521405444173747290172371154232040161922535273497148022178268527792812906517443513627432289697158460030530069773729142962869451863491564342690020029854851702147515625790330893811655296494519831171758149022869107144280765085087974934816879855153760268658991177852704302284437428996832824431943165863186363254316218870170407797051481230832684558244666605947605531055642327954101778519071143655069160153498919331065000390367108473654016578882472869155037840100615639218728512065582853383931149676035355749555885038374195370285333256843977334341998262342029091223728286558149342314027103034059961440775358012809230127141517876831329902094758019072204347487816063773514463364613986019058021109688650596446608571152848604717074768298126359973303481383881063325453125409309717959739882845825215538736826386410162729919831453579197632329326329016701988119489266489612004186403542630751255615659761075042313836334934836608981674239520174112304733162057936188850897626733904512599447882858267589049279204350005826407808452402528494541581682707733482548931982718800852989934700965717775064627969406710771206994014045415774662837013311304474439694974643996923066279855914599919856455922695235336225442620529259153166139369352119739555090316861664817011991316269501073247015723369717143080553188855407966275755015828309399789511926372818750675545896012426026548771355788700721398334279594123217961858989399958799759438384686701048527580096155241750002992802888010161633412206645287172284139905214171729828400405644249492752183623319308795323364223063442094163188104739653815732969970882639502522615923000984902577949974163899306494363614376635304331727564558305629054694796120968888296359776296788979436468176266979113372032903708673050022054460808407000391618906607967083525909536294743843231129656612865590515328878967483801415098110260952433608587106678440877995941404720068749244716575799300253979389377978646149225617678069002885380722273123548640319435384933379348829929085303202195732179324260963334772364188370154065177830211903953669274940295862490403938078143460885129827534359553344758581525409837050876808915407514511205953494554711513836389092644174543542566323396651703420783401893221041532961018094918392057710526444016671573783120456690978610758055695903713789535626169762700621071350721989063003137944868704620987217252794047770920569567853973002335815358079435537351243450908498431815810090881057804642090131507620616059624935772411380535678073578703434898488310022832430598193233653973113236835136863566926333577774791788476117839580327660401268261041898197788815128481389668748155624429908033025393202765257483063337370167189854776415127595713912027142847608251537821140975223010780203265509034582117880125516583728164586248619099035563223935252585197645787851378109416571404062180199633240405992743726379245259183674108302870022412221840685445803433861242068776910242665671286447440858852483509591164116946810454171771711489818701252918986933431874292872458895435105162282115976744590059067707958814885032565416088588429775083477272977711474894045350625066122970414560604933223169242631676475247585611859141979235059626710042805480083900163533178290234543806783802795089879762602578712822439309463778254338442296644441812921851571729416852703609550469630401468076479898745860244427649966619671934168156389324227681120403953175987346889646011545721644135974644608909886685224652304152165915731348812939562031674060748481583178783180562785556299188916151332985309286352272403932790654262842321998764665966496951737998692966121264270669051343020546342134066037983271684802518654515185879602916172430637228372045088971927194342975563687398956347473528609846856757554152371682467441519338331645792326572008306865290954310947228803616678440893076414322188015720213302266790407174034408045092404521986141500285311480867138878950977825091269524892690209646492239443550190495584825391849898572043207390826373479717663975632258782668560045940328328050846922874817672873597063186603396107957023754666669505257831252326067914075287216603968040102256713872552638235134098096165772247565087707153703076529187478269088089543317722572146849382824866765413113282047014148284931990644078665680876575977175205343520083373230413123488725313048987274000594627130012287790408004284177406017893354050024883383998952823616216200289672297940343641205105961572318062588413001661902748354440986528169453514021384017686902930671386224898977832132477547690467417847231167346172505161196673042195457713504974242434961026554177602543445321220695156122160247022295922771582713056867481560173060779503113441834141114656917199312187836058551978531331005811134330951321584160754057720165727194936484389928863209750573073066813154751349148959349552780329132099550328988911876396306435194861837700055016071466446388361563211156426279778861324154624137334515040487983955643046069670495686171874957447245914948693500470453190332393663607666618270281931289562962002820911932143604860716811003660541310486245249275408388100822464355632138273274402129267524989765209221432058548901032335989557014001843812065977223744942989795446411486340179019102721289626685517112681233235722470489759822542191898514824723862048277846697987812292053034248464007627114933105253256380673626374602147257829802488713110000042389038410491694353625828006299752279343025353563524577351135092138654448935712912307595869505520350576634849856123620033932193381002571887880876284960910573040409120494777460691180003756310757346003819746722537516164300372659857024262518325439138756488139297815533022107139973063093895596431496022527538820133210523282500508900447440508759736677430671308392765565893276229830572719831630003254238627978002265882639719087095633546331258783316085941686956502993764257117416971789406858561088107987383664224723596609910709180467699297287987674564778244313418681668989148984258486147984423532758931652625267582647019079610827530974343509791604680803618997286229944781501242685881907743381625022092609394002246212408672318802256813890141229087710909379645859273858499609897697084071406254725861806638671428409854892317491806908131761238302899457968017220298826643960968167420481546117343587599382186291852656055392281076903086350770911076634264901827197071406360020182430935491406179083001928686648565981947134217611082592858773029855285180628217897457765029565136489130190606659759536750039039659048942468821866872952280271277130894634446038697233405936237494896366650441934682450630425036848878117371109851135627696637093499623239711213891743729176455274870573532023729209830574134091667309298230547580386448658905060934497262449569662558192923839947078001135839938646801760198815492541487865766335806924801338874166450278915171188300713918751333476538276631874275506066615139691194378979818742269570715699930036128529124533280764879239331619001210152250022530668197184349834593394078103497409792292620645039851191798040250486422911785653166138272458782985053455867833924858405608651998983321367322457419344812654741814098544082161017086717137081710187521045086345145434251717400763089976469256327614578684810316578051307412604334856381638999147562172715337061690145557143287650064958883698857416064177963675446211124916033817236315787620706040835507319294818035595664396538648188557949259062020456640985046024847153483697326749520159373185326797630981849500394158502073970284904097427809402702249052501234325316534600226211576420870649894891470712036780133852340590772907437535007631999332751946598903822122643122948232894224471196522973104413931185567536242032777613242336023195887490505517272518667227802991905394574922889819948318110627362478236211378138812993602679516312451298268010744335689838789358188805550109528883097366173332975136856170147735656458591646133665596974639095220310638990697705859230180213850189906338453074051697721518526474332909272557150595128794475622013950962009429913848520274906072934515479465479824813856146020977824724223507322714753937062277301723822252100405870754543214226978306199773019027049551307541376824733966619094362847483913168176285255408473243019350174756782048329983102448239322968607808997741477270638751058692878551727170874674990861789875974912213462561360397806707574870465637939663754032409172291861800533667106614383817452467165590947053712454242260510646194640325850380448379006939097148016039359321323042831828448413051085941638677591087558740656762372209707694625557327812684797567251941769402369572091702234515285594417929044810503544011228672534070593419869491558431948706786824260626386659169821192454089661636945735678267534846091193410300346327678145214706288514975015939507342645684939570889223194197397478179166160376567125909580334669599887532447350807187094284170103525532848215249314874817992225482273956663235560347739986267839981981777356970457645243819955639812887827714777759755327738747467565372323042522547183094338347158500798094535678147563867392923374210683568797207659649076395077947802444875865665373878583935843662686441352496455976759155317947781025160497071885401442407038398313090583680252936632289996291300328133790668405732207682314183311302132082406695859513905838984164185594685137691004964922480393834534875019951117132125105740751526899526683047852523171293087799678002513139908919369315730706510907155496450740037585628818275700777589722326480167035460733562034479107111978612829865645858731451465701069518358599851660697827634291221334925338159913209890951861435261165566836644103479318384562327320656769730725441572522943203169688214362743233093005183042436453455227059031997204285899773737192646249273733061291490040281798138250397912108274018339841054984026026932060273090344589481872394230991829534773076653699868573643130802510370038295563501026601355410374326655126792704243990250578631172951370223490229216991955481297091535830178432934471935839469923490516956721143141920448769156811429120469887964910534013338878756619480956935780219342007924013649311363803725106478272355921291562294559151985975128933894802008626130373115727615923826027088731272825209595022840754117101180543543117598164675423926177977335503821154948344231997993958827971308293419407712627632941158140845024210188008191027080052962792544918918282834904221866434991051598370408462911184244603462305350930731384724804889542694872101299807624009233980795958551938801634973743111614055315272746500484034245676631558176786675992305433200752465909551965117324206654317114992456201249154794831641408670618215503324328645446239594147543845923507805388350733762137710019955260831011728183572120222586933871901861280835903438931230979608492081469810782660182697697256423297827923697334793616483049487569859372347348891803550505210314552751182900608273659234185146791927722297774553582134273974138609543221745230776967669716508576470551752170052832584051042396055084832119213275997977861505636197172069256089049256171814565009208001722008248016128327231790902331811722451668208601687624666084225992920873578023681516889451589779683294241566126889508456318674405098229771210317828041362820602488093062652643351116541929334809370585448913723119574166420520540943941195474188972299431854443138366372469544104593241509126939531149639309500174086447961267820227391678330320421260674134725898014548330772374538472640782646500746783695347686673350387106639333971814788207376258134608729286263977537726826773679022278260463721124332427759462546096821559974848866064528771342142985580441795849531049048132380310312212998160259950568931261515974594975187285248119644806053337864751624697643080383255789876703012172873661837050393844279921472101434224274760588033808896059200190895718136405924079210455471150836468568436351819298211006754385858537111197368778755078109608128818246350936277278854079701482237348418574804324530190175890900436797559715319725498745757600630458830312282549957875188709595765946205575568701071980749373291039017665734703768285367290987684650656919263688485071903266624262282086582575076396857220144506764465845990288409286571484259150665667391811457531237805585324962946153479449151016798511163639861204467797433867702980980517139519073737894705391802029965678523405833604748046656723694339805458463132216025634176664842640981573938736784082393185250205607862537760016794058867576900801984048722695164217664388601110995466392549819753458411909181901813075061116134949755255057723456794364016416811937758988358703796139964703026741891143111072708281573580444539415262488547520481460176208527555557432668161698708900491111917794227133760769133393249453244440669929042768007336427242437181511257822909466886929356594817419600170419131009795728176579739713012471443727454052747007129996160514971993381821087519568426311891061607048581399523364469876544519890952770815136986219496605764351494942217785011029115856465060808875540308323732307295357750662939805306240620907750101289091946200884008443350750663670786287628749139979935485370456427728563046773644037155299740428731517347916758347873443458544381271298949025553231809313688012570328711344047039578550823744613989070677301364581637798653167537024111925384614695270530403594808687577318700719526328742560123019869326261473056152353713406811301240150879149317537784586512486654807910968268096680254988871661963462846675952789024155211216900160590140530415318410509215987996059910143231836499855608517495296989053061404318405805947641791188640571744992210353403237820378270003396493138820231007506847716422736434096685328472750883587536483469622755532462570761476652936093359098678305718084626108939407915604544472456275689205092471086248826402754429053684059461448854359450559893229230002737996067834661703726477298298539977825810154226539784753070464947068669204234575869980896431613794202854825789027460996021962049217687970593440392345067915784213144314533053160244476476411994560019270912514577705081529784071157366446095678405946838627372360326466713210065288041171428008088195036797029657852068934736304724897733234213711348534733277133902744824216317407665351082378537387152374306494103815580361156336498453904633371233232066044345494850185560098453232208665232250865471295436791901036049709827627435410853619982459259620668517636225863560510253314887363446394277527699572274995698260812235634510263196828555977676574300646345959415263383602566467467228434836416729627786239888739866895820187850308516567367338604756604149530042814145562095246131364090334286209082045839941080868681154517270649064599604633467664923790241074648917250482022926760526057929753194567422803631625656806020538942237290821166879868824652915010858658505806375556973315911245222177689947131752151535712343389386477893978222527887311140403184583846290244524564684588770874660908430046729813542945841983757789642579775011472272034931853620068074334070498481990766509305843527072199075315465407495945943370964717888908955324698829991979740486394915971725889024010989891722773228294070326844868250925373860699597318997926185294859241823458131489673266493234274072973397744969703902021137754469685905764490272149234951587461545836512682387873051109115995316651674248998489985647312835133191570499657454407827789408313901938617129647167496990940302928987499826911405318386369785322571099142509826444211877969841053156535128992064403106501699780083548013216772333205785478264387596694163890952969651699560799440006341917181960493406314243413259434498559433580672536728545371900245588998565817219048024611157572947199346770350617188672494581832366163425476752824258440499934250196156915435428634114150094478655270385303172416367586010741314763080606370975480083205348080794436646868856546287496012279911203385337364136273106773966186384585889705259775461076979357608469559883490636593321741744247126368395885553684119881315906461819025199419739851020204236062235969247458389554125669458449192325836990067711720482360438922571694186418922518027706553617426014733652531467326614049685125730125010787109156288729158879947035019455595300218922510956193003993772827396592829189834545592644562810156358390584190734504901293467637115585886563697594477971542977077410671278833408142343281630474619604251787381386212771162873982097410488006507966862716627267342987599332401993453453963096490435734452159168873171609211644501218968649937260456268246895732764401128443592637595556634428822619246017838728210387052623323273602438147554924952082099395092548389979693307927276473681502341789620584374857561818335921675666315393981288319234949193293636397008083480711741828450400202057303879162133333634506326870973241696304697133434036364882400512782465463021046471513249121993462210282348216210291416928720406914387200625390004577246394713106060165725928543772011794736342292772799105860983699156009631399487264460464335266722974594954683716019264331927558455641366364985527383319178501562564882583265567212126477238707853453020543138163165652187878305247835850018026435235796597654306885568209814661134160576931257653114587708217530878349705031464964122240928802681653256287913253710522161760066480111005149676228887301778284246872845661739126673788435614092994011296851176465924837005988431229420171760311945623070639879334803697255329056424772593664027424351308246275273327794813766083491033705017199661285650953689547286732168308345494570356760692662380444555328528147543230517897326170380784354689105470782524290947400150524581557376239012831648891538034990539314086039140971027799863802518186925183634683611773597947503499552749502183281201351125210277557723769205896373665731055004968106018830346547550770966276098911161773034302090127870029375087341121887457289552807510546253694856304610286788686469623243302787330151806974405174700517307054206949958364263566164436691682690842479443920661818241621778107477607874572314053129569085094098016270483123666645981859448947802151301689245939427128862473597127326349735640432521555339738852061250992469877672933225625694836683254415451708084482196115780780446292096129014904526721741154808664225099214753352680177505749046052473490472900842432157637503579310463555040827454838697390380551012662601694149606090433036817043430557665435396761410163009764884773327070707581921561062372381480184357458888769938901166943534681199030895645961484992291361790845194191997715460015873347377009315153804656369371408659320176224686789888753070549730427317588492170006597822375812775160306494411809288935328735811628981086698690848110357956769891972982746335132010742044827230781993254920337886660317398793868758794361699226024280643542546288921690074506431712507569337869598121930800412642796339197198826162816470255258477983795956580549181274178238502449822679124154994069493087625921138935510665623326784977590832931016137504400119019344665331438527967862882302321242806928914070997259436064935724441097594108773761873057708357528433239511136088104836401701839370725781574963353144044117190929529608325098524255110639665385156897814437001706516874758572094597631953858492263716772779919369917323306276426637616551659183306249688680668540622209670765985611253908965029453408408366907357198418460346433897648600312314022749403810234741135092292628378496876142170741962982967019646533985816968344992535387141261282675826411741298867461799379097480322046689945350401240185213715777781037157858717324039584558106996208654206535313301557049738930034917687717602157917478915141632096217224811872164796740029016548408032470499052526534634270845498245104070552859955453830123909205925449042467185839198759797484230190097501035289015120592292244450879948104344379426436011340575133704270830367085459178081751781556957165084864517172472377033054688526057337160136903854759045000586571893687860452585159788362538284770686721279884469604100202730015423613653867660027378313047652391457013597507928125655978932112387079430762598409721504298358970379872331179383398880831508288732105298269978779077147418314471028707799418255742625300123680907921173133264141342803576099856758694892157664919035462260929321145744708402650547656908777388987450178641684270998365827629894740524429467878000016612967617830803064077925202185851825379711186908629524688143252862209293191924155587119885862840540562906870002589773619417799918850842517054500143646869500468493557957117369437328531533286339476697777167944727839535380038558364529073052674753174790727379933456204090346858347295182977968443506182308447169398780200559434559862131790020529506869289326150689664903302356263036535793502452685325328828410825591931491254647806979192591987709843403443110634036693137883678945587259640224066079824067327815458379136209730350980018329988825059592815959027004678834996714535057513745836528013519804826676095323046604193070251873448075862468831471224631341122091109649715858071632891612445887664871098008841830921452672471135290205927931722596867921778459535389010899658210876414107136353461625706847064692317455888051189834383538339035770131757529329113943334649171637435576204631265071686445459796264826882343181891107087673942658371288354881231698912571758494155342201606321960917447418285887099389949566234777564648105200934943165731522142772687489313701876384420772919167084676969849477387462196013259981248649124318610448408937632087911702779478599816003678786579848394101302893400303374641656385279780397681625056409090177319470403763583891080854856322777025680308068228455999581262295056429717701906414551572564137443154103417511047719546202849664593872220865183344699656877087059331331087217148603606768054498487231607036259619491623509440118117002019511400451311833569561092087158664965891474662635810986436653275309844454447927740024487817875698350235150791282370436615684721378156259579303088950733774220927661916996139922494300960596436044112131887464640068605236404522290794580276292477206295854315984720312364449996689984607637296877478892798852618228355448264870962613500161546605002140365622657513600009236905569307435038455303380781741138967974450552016194583715178021302956606040685240408285333629509142670784870361414722388345632849109619320093244582372808336073656688135786212579524291221592797702878244631472639879910097149830288561691378255247801934515027624526057131639432538201834582840607873744869708678831761694710524427345054535967901969882631931730595937548755156397438352163909435539856542288380323162823126070658600093464253198352460204245086081235161515132862076198027763144276371557235374949906094261845876514787202289282431235141388590861789905899061665868182851985789523413506941700891668010066387448564759564581505052028480994182495811352423504197573943411377302988820416417971721779959791224236716939422098188832103774230734014690275624558190891714222614465962962994579182728010517338405287952307148278402458620295493792723324351939464348052661019115537256618129874115100178653128999058486276820890763733487773896070967008928612654984097106905091586116303647828367242886805406082260707259145723874144826715486731568488525828764260066994783391013461009866030687104344748276402992138058771296071393155421022251830235896809984308619700244846702373730735398397817829627900314239433864460047881851680510722196577360941524892348044465276192849480838215588842147674166190584540633282437787755888837480000436502502036346739973718639984627527225163204794489582758973443183873476319061757548689112474172216619923188606679497712063847513591407175071234570544878405171680185046733443086716672990139015720829346334682039799796009226115064997995705290334839745298145228351229999711028920333700774177327084056513122025153410166721563887651775201155125731285411275256400165720545514157260895268853602854964678582819576568147395748418127937540200435857157304794772910910652915894889018809237660581568395480855510025523438817039330653621063052578124030860610912038617736958230771719563967208659096935114113234523941631160828251685790808564307316091779493473854376076557618576039978437071175957559551122536024773228579546451802503555208857678154080285290930770597254369174578658959969696427649103408739024294674407216988504162616870756078775114833454310113119455665289566132882306117439396275499175310680926753240000065572144164285218682045303704304844276691053504900944671185846168905142524270785545485528524438610639061247085603818904026595155816386274432973273777909366851752239207415906309007715883467467858847182547396521650919826462858821302896122861824959390579097272487002859650730318326918945138016872559754500903325649018230833993888196764265605765569028803339139181862945505913996642971875425146123034429339635285573536069697103999345733095020264162544037703787376384265070492398920226803648938788821905894631671541624928302300502199661544219088064950093481314333851746439420395927361174537408190609662884607176824511116380110654705556940760786144208199689752043217023636826212114544076750873389876163372174541118809910642369474444302030726739334240689800726232547713490497187373094484932765079297924120757377677810681097771419320670621045033188382172586717723208486993034512583579940124818637365353442720414847782991991467012126292996880342395460411031563644599476927185955448341496252805306249120148030024020241527248780407023184250830192657955189143466888671163589397460233405072941211235657430318532987288284129027888779782551794650589253192934559304680777762704115000416460196363380918356336554136751194679527370644672120748983647045338091167608302528411683286728063961036643124956492601205030090931724367788721846904929548350041680189957811093721006185300260068239771178520484019389937629782763994697590836061186731154960472685201184951501173424804003576121119607748159677501513624367673634967851665738383369023216997297964737348874376905635271502296203859637480423169055698743829090297525516546208602338569625832259317182069014376851910437025264818488693431635639390042001050121734310654186475506147019425444894486132995738523515680085197074104352333157087925221621227392761629511395779045657383503787150700504089186337466952438233627556957947615446355965167518498628372011540114178707407402917635317072609424037452354646659500588178589344194606659198131142256401033212042374386451580159318419705042256665319237748990018973679721257750601711679747140741893136836711602938719925516412962253388384981749642414412904933085207027708868136395159857278027040128914849533568671720500634550639046286656654422813508873077588665161244127777411015152800370725662330776646232183938480970186107054785569908280384236175977716163266233174449768519090560943356402938364751416805162956225448574136466128302355124764962835132618192097682808585239477824145544666481988705170148311840287283730328662877437490943271263795959397845048179314441580741253372641725004804047350014054511002039565141516716145517198113551890402541212520464902374508830230526465226620689133885269586364964767755017780571988558950942943601962312511962958816338617282584145765817605066971673076778418574243572490920673375124551953112283578979688740656104419123408568476380562943212613501997248342434207172962956022997932380208955203503134159031644181580384022759491301188753270103429073782649407066431704232239673348026899360809882303591603960352105043941659666308258335095294657061543226896239659889528044664261152907840455503257833455567682725434313483720119775905130710115180114020888780816035352202805596878427513744416859868523175352069373944967312212016210773374074828345366751955669195986183764107601176509830190171174874608859219211033565068792070943349308556636059579235753507738761972544472200561571229265205581520512242634883010580381040754946688221406050958765375531631653320895628779549802796198266227624622806206209770062011510469497802197245712663553011153433140548952849596222844586437602878171093136225299581194859702740241549597041865131109061344407274144208300903517445268456153467987862835837939528810337907806705053335515902732552263397525393400717694773589085939410026854092329706644191179514443784694022442003433529283027963159877765777118126418491774953945093760065369775427911451004069333213763352884286975854537499645555180251341318930832124456604578322019979316904330691293378587359033688463288825694014860005393217788142944144176857959611745669213550209980315736258874182143696472215542087133437597323379825159683242125438115335200862683368235886546702540402227821546287908950348499905685338919149840734439141641729838577044021504250970006481285871827674897721541407676336145156288392265736315185973482521708141926633340713645404982101663888946516162705341005701348168411775199083582317523639092785452870185420857876969779292077923982252400742493830812527395723775157941935306714586297765008652295677165995971817629096680941474480621763902310768584711033508451417780808759884582301350863225211138051428684987682451749102219650857321854892011306987849080275230150353107821213101239648878181684165269728976699990292970185743341297661892609807221371277754184295352383003650102098447632665996966649346846587684991465994857846046207814637389156658684131934521273398086377708033980456364481887003047510459516091337666321906383057532900926882189133622374697308779418274805332232061666177364700787725188384629050170247758933606082979458754400300690513616954351210195569651353567756713543217915931234483588021800295128155326216446365349809352488269621205166676788791548655679395081584349345557235795185366101315568995270682464061096760318802312604827865969311149275955315044565415236650689114245248681518025089891184975081433889303080980555661319702436612136582240236147690354684337449303242410143523535506828075738992330679851563540397978124094803260871351431875854077256219720417667944520682754413055876171196041232989221806129581111236551697624931137926923945587902409874965075697171807224159038807330205546817326781202266081478677368985270614323169002775806484908797611505107035786283111984768537005555799182925708129197042126699270739253242760115136776481158461663174299637551065667866004176008130890421330073960633942709904649613797073211821534377679984347498107837056547713114012156223660447163499844210204557894866087998599225691766186484871633744128985623032986694886227802049110113004413757479048589019758474829812206791476261591594464650302573516767616836734959642875818124330796349831762746451616964662284979431444550758583606522964092405793093514037310594200012091421141187977364688056796080319656444789996760722509391293930900248817797838528857183431186723313052427513989570435238577954947757120309474748520174594098682865659635521576305107497232723048512693167235023504890862871941884199499133328962847987385073258784574755696795872644322811418373843646527437401995078749237711588707762875366761135881390763589042154234123218261696488587379127742973671005286263022210105512259556493479011081952921296352706105675749569496048041702644271894417098843601400508839678309678854648623827192287729551858018234587931423635773291840448628668832364870596974785093575865257177989718520383441268964549113676457818114287776033577672286397714288129718957187667034114535607575046630097598391982697944762846076964094021527318173671861064384380744619096789182688767865516407141473962437906797954230898905098484042429877156556958978213766323798963381159225401590137232737901613575690799086399888146187115796730179139324997019097229089214743154786383507222167733474491426146452563072110909794711179152178645844239971774351397583348238700255380535551085814309969663913171795473445106160673883920663657997322533103811636023278497140142095856018282083407014197757402788305906027522826233761263539153928807348196947041687326831042711252824146185330262759920372675141668167818775727458600039170196405484089191191290384984049406959381686473337335494257092932136470577768194535578308531752204272571917953914426182442752904036024195150864126209095174564917351117455816251010792815359805307275299330783186566857709659730626281279136064853628971986330064881894734865307146244583106606344371517226058874969872330710813924387486984315470758486505370303794975469980493469005051133806910897515531470381554639264523617781556257026771888894910055405285291761717688446830374052774995890878708718749832154685341364717879540088190323391617965673317019822058414337747268884959825817651744638214214413714659174595044712429744586452297296009727524574496060116062298332551571665466245013618834044918446090508901026986875394103475026072504016602305110545029964999847211858230107677068542190674063161094774918573316382130931574131144511503890810770120357486982800868963653718510143918728874875346449170637151065997246834161782980907242502484531652126429294965972543267032181387723896187481498658387116526442586621691204211860719707370815237867881480182278860569286198396692107175019287579400957051448372086048240624698286604574826800996363420621116357940081134189167840289561778200882113664528536340408329782216980376057172899058659704665302746789358158435877767196975959769698711208093256324527950124558071288341560206395628723788778470126977416073353072827141602909011355741701769726338174612879671219205839246321262893013685786435096037567034820669918785728201521441835086740820722769546873045943424215964887823798600535303876012243577969884863401007541157036520752128321282864542722622103901967709410910643511874211138871787816851489398806736928717211999848755122822944887969690034260019542971599719993698910633621339698961569649528915477865307519682689278263164051831475476770733355778840918137637316798542360919244468298703859635919256912994125975693735710859570352251032598827783920196770815295953625954561841228855196309776971641933510968588118055865725569633338490147015248787507750128866579108944550879654193719431384926395815207486974774293383973869661393834278328693085623149805085383536880212436947271100357558524132573441145953729863624052801427016512544540112037406939679697592937984897454266016995101017813562668498844526099705577191822622102910914146774111677744821846081607857849303864592993289335186651747218045495292971857067479439245601388666396961898062668215985568966379451932482505270524526611198225537960062970080188729425920789361131631046376054633183525475033926181358562356786027894272971870952023709019308094306899876040650414862197267110954014386006537452264987525418514414555804971118248583083676665405139156483695034843533674217848971200638709087592809584998114175775022657409802069023338725886292370690033468240799238853132047696676067078057758689759416844621016930099541136862340456765632605219587580789665384062570982244809659907459609230487555390398793669113616189954920606605048223239362398967081463021702829757554052240168574541201267270563216317590181074030275128869048089169008805861848621241500426652320657930098566482041025210046010147213684893644745721166735417590254779610389080810843761180305652855056438514967080664506255975625673121880755442838620519160473368241539183574419652791097081204200200189866096018357176855479082417468930861293774293806590219659934355079234030694425429765771534822874331962869551951041347876147686363443090972954939423566859543730715719954952006872329922936270402886299708361766830780650905970213658570875886529025042199091820953808137742158176147886522788934631397219825220155741224839798684743909729244760941040761148937781638598780980908988922658120940101053393461181786581693820446426353763663738146359961611146389883286930311557901461531770490157666761247870245548098552864491301031857119339950261614726718036726485143972217772539031860158682545178216754466002123857406811252525224915599153601099055206349153559296825930724827211538625062900260758471175534455855516358880607865959643097052839275315663474191552143028632839569124805365924344113235745879786051686088521393470321937179942393793624634854710527349959814910954082500006837479599155735989208957157617796005880577674670729174655474515745887506369536990592702004418111845329114834188175600544347460239801153299588307238983239007327707553994064016971597212558016015219230404914175666977061453674569101436782729284625248271021250865326132421158398169122553567692867447792405336310181265555843384189615080907235256243552404428196558503224667428023986816070332105567096903486050149152048560856930620076551484446777042861977422686186291225444801542175596261135407402655503401503305796561266203147128102728217206667142446556738924514107350170423803050599914337840161292305970626846117426238786089845978054336756938042234186997655074979560817706176747092502876774637515339769357012623764181790181268907926201264219897623414478233533252519992535831801146874836958030233509122293357343532932146266880506062971818141555852308822164156150690370212713617168405485540511608043768043040885222157582217019129485256430476710235752936527131569431259169856042514436842403785907211085437821381825458758035200634506218169394066842494493375055947723328445292980797707787788991994742751877252513844929115538250589169043475056552840459347720404620239782130394410609691989454859880999285830471316228296683823822332494259327259043992304415332035661112431513551414969936711357832501412608687892321908299462907453127477494231442096922410536011224730845125534064702714645501118539194531968348993949740205798744772992652288754224451633556114392249628421910542657653063694920849969588498850660214964203439022959039706592132384136978777205997391664232668334048720226590862641965701094520144135834899199044484519796002434196847579259407732473537378694545645555821028354459536681884482709649109909046204936830764855194063464966570440020524992151803303735497090686346691927811118788591429525551995230135985163784070014666219195029826463913463927070551543445337285298054119174465443119909989503056442183458676436213435349075651556286169751129041388923200498342897853305597990688108008414411920371318301263920320141760848889197652912726559897224149024077416469297747448080456520893320399928491130277967134208665791240128468244307123527533273248821641491982918433071729101028646769149059335384840546997229575674267790414950268859083371321524636952251185004262826217588927456163212363059927279113625940645205135116077547551171348200570533273954293898719419862370184123653731664472310900834228305109453914046183894047771644845360215115542369192014346160180145811254639628255915833510105585703715373387660343020802010998145995226525503434985121787927053222353790703721446186545560617852934575682864162738531877976834624873520388449462148802526498328312696214246196099657627673185220872112387976189421280309440375782947432727628874315059902349372031229434871236262637612066671005055972319221281024849687302672823418914649943474132161209942999776411627456500466115697514826499120584944419598142015518988941806459080496999564539142907219393667027330875190180397903163135282934071583049454865147902608446727397265329641740845071276309312321319463256500665542034415735253716837167135390685527560067760845274982449261081908570009030339849099006803004401895957229484400310349592139949516271809371241439924721663822127042355058737262843137971952444492800130683906054519374087421101272332535137985496783940595386257015087230669056611720974390270375653546950979018202829608541621200211254857624597829851126906396210622012037261919242735665689667913455620106850596464131876509065331534994711393937575028294255384101101755113857818557017098701021538653406958490053114522103329678309541146013948382259278437676178219588473860836799518181918107916391320024139586902286553526824301418061770942627723448691790814266697427225498553325509592234850703652335979461104097403824500249703533736383448647409778510183256898634540381849529500754808099997616984051503034725341721849314428889082940400736235394743036870742280850682592619521953139546601882902607684531104241061015280571285310745376978156595707226794948533256704742352432906086775583149376076809450768533294492403677997627895431316655614271028813123452703766783037160902107606726852027693781053661371427588119473788307248004603478180550437784734917085834950716600088303952421805412069255795053703628988425026235843160726879767411088909082688405629936768358045203797169484446062819686755307473318364854961917633282141969728532842067006807481667729646854469209851117925371119592509555994017214120702528270445727950477498163109532037314328067252981722313957549063992046038974749755038965091495162195906564248766683386644180991187708071551607396005393548967100785910332353997588412339172127528285015344897028217521239968617814895174734948792307739450578476920126126435119537227801018768366282828167810349818832355043607349167503861696844364684318558940998859430854836815558167592663107049583449952049383286603949712522446122152533300877697236159508383665224211389373806678863465032968955512294787741637965428733433680498778960487083613158864017159107624512779378692722278299402127349682881960090458623117482019622308301315145352908904923407538434161859870694995219494902365268688891221209151719894011421399870708798977914480966327792368808389857344129507096712393398198947202429855122831917893422093338035208530781230920276414508694457719174930230454792640679249581231904901740995859562689417029285435044002998035651189305063782650198041043989364374021769152037296324767886101990289274228017415352966486019711241607031708118437903497806878984830660014795304774975874180543551563312980422325626954333865636067402378992931806744602928992915874770558538988825438010006278110797319470597489790746113310847778291067649126443952564625504400841931315626951004008885479407959580502484018111278251454748244193944391401526652206865305719302148786793412009868172513510699782292810406400394570915040165710889733801370794392549207214763607721009908283563856778023279068466155475808658831022655850232140960925740302316739021947530182219359519211153881023480053819546291788679825390441435481251936264954476792805089347590973428556050311748379100288482528407690052574939465576402584992234038051772734683703501463496969344255570882297428608593292200882799310102020115190091232462141301457202237570110530702143691586824594212282868115067706666643297171109083536476250429526995669844515453864834648517684295592772530619155610263324801376051534776004338052579997703421443703770639866384431452308558598746930785980592164549976285073494154612560233892086053954041454477518465257590208979710135789548886558714289084745959603191397413861466764112838971981826659764489939598633748813097340639321395364169391955870724606143419996736091295088286083449864382469581595053771271855084970815163429684136664949474350348991713244576982123004427119643406138090280630483961548600222529718026504547206816980283371955516612956440430019418108976265312365530610032848589656638906922682185260072059866415047993635470091783429015117282275207090110685928986322652338821739549889748971215952586965671050405073500900298042579101199374954262704013715268466398618045084299173257628728291169226364519038855124133994861314013291397666540398800936750853996878531318818376957870006396485190846692479801365703659163558906009705116565608547587812044945092053397011205915567915215465350282419953894556252530863876287413230412088466396818881822324092891975359076411838044654070033582707544642550906582627073752944709519808397318716673649941367548134266230074503125581366960186918710035000255901609275925711727980316049753457545211010671340641979493891207262076617551716652940231629908101369017333120127003267412930788833794265025710640366053160108223372875043623685895357452500906581344925899237220065641360963794258294544862897557636891465694850971112400615198901936064921666251984640791645050092300815117932259136143080640867014033689808857524932147671486305711839828118425706437006321816827965376140325529248993237604636472834952166321568261237618555246158135442565348352544218948815762871329188076734384511282604846774696861797023020666172450213195587224522132825280841775366314513551346555999302815154897571371160739836379630295404136357587700974375393770075268830028882496807743067270017066642656455463624514746328791748480859467949536383808864020741734673976333207278404426553900714157784097898326431289252207160123383507499346690435519738519204753760897702494192372436105689965720335526594704874446291916077708392507390147464362663287530284202706692616464483064275931830800685640088132070432487751899597038559957150428858240619451879974978221045712873689014323177910189939188105499173976882555179359130828103279269187535512701109804248712151923465075564271099184199555183629484444612495149456049280811537441507164118391367898915910988927327310972567873469375443682280847376755175000109131417959819124524175514009324496551039349904836268419993719711255276986010757765649651904570550980366762665470184494037498074520571780556123715074475264750437396543580435511008216806793683496149357777493718066247754005747838025269202040325942032182876586616465733856984782445014690649988551007152948806014283749293611793440773222042147936964046055448843100770929455017948885814644758105060597669205194828340570295679087303025194867960010076675989880892256492183968435152191255531395047597606148622148739809319008726257831368702491406871180363923779231593663405949742747225539936072288500042478798184936682958860643934926497721626523410714380172409922210958734507112037234056729449521610578703689608403723078072458180886050291436346618055036568164037198231117131036374643250734025232920192738800655872613709288674090033996600205809231465925382596968999888079424435295722561374312730246329608426368231201379779522581654599206962618297126381579514528655906114442001041425909820554196913793600849807763193658452054087200832348522133423949068842009847023889537825131435349894990204703147077990778180624797687928194577720257721734428579991560825009691781999912180910058703772317767528650919533325501119836493223143082646353786844473320302206507100126540582744525242865810196934737017553874712920389098885990171500977317230675260396532700638609653002153637888171592085672827562067459217312213219415289849953107187775115769384737968877222668674236100134183949486951237751527647932494486024433592013830704082389134274434518630346859468982662215519995137242569314667739384245945678846555938834168910139304788424227277008734288467276172822493824651072030295083358348355984033316794752787527431524197124062625082424582241687455478263159668643119865120206664836776651607999391290551721520086238076024479052014268304010782039083551603695365310048733644675354371516553604310539575829363069258929093810746044940791156087608315656948354811849927899258739995779961221637291514160739263579521103926746355760683611980992264912882894212708932080405186788020329437487128833186992166532342773599692683110318945538902313679099539477691785949555167939762834485849531929020496704186507924808824525724925818497115863871634064960791502522761637487265229814168822654843736965702507146321301440605040268308831114624168390265527488057971751278317652992995659800349648893102725552352083370591791180016567488859068761497543404909301884447257024424042692618050951740498583940015398839960452874685583610047144195306654820026947745722760862919782969689463540587175023439998728432486123263095523074087316369263115287537098267150131212918249472965308429836626553774371354114865524733194311073175801323316031799249254060839750463496192250516882978582750564135426845589965579553235704412476794458147118323872056211147112930248987016968301614475725473456809566968808883142108892035064479008107984217851356978652994571510018082073581391943552651648425664187838437979026281525246537402808227647785024892233174342526141866632527276575414331422778288549723518435971482992237667436461057892303982712382536462519316567731346356305603888857867189816012540694259531244121888187008183197767921253570487980734896191284484569309587712996797532782990329175932112266022617051472292183955971751235623876396002679823444160144197207611126124386119666521295792702577153405989761438053703875268603838162504598073234588503737969723227176975725128756833600897391137710765750832169614513328685990297731834365459682587674760782199400719981651029203913857740000647878017159781075795580791156541821085905377964798749940783276323116603632663740585850059646698123022896240815259695213319208783806078637944330978484347471262295827853159985472635214783416581318381342047316337081079329460661102577302986262338573251893809360605972008178262702768158721253967102500125572666930834953063676500757082299172562312609750953490534934087449083216542694623250788106522589281152823252139030640844662294479178421119331362082313681271332667361285054655342912773849179281156327440839242011501990213234859846333323856709267629218436558552862117881345763093827996132117336792319077963442355209228654139741024966417282689732750560870282924125419971429485151686214831844279480764225410587950389146595120111577586823437088126585725879714055181465527881162626944277923155600688935842843348873829664049509312706996893898274527921345524516161360417778212350823209537938688796918251009610894079688189506612068909221996166385107780875121703041514398077277039193601544654100504346383706794726206592624358651827566258035654357414074631826685503114360961467526316997755569952062644153983440242569846337199629607371610337180219781589576887997446725158923789967940531491850003608901742355597582901537134161034746923110493205039656789332933608423658633576967571128185043319458846620307882876744186867880899195884823018809600612481428952139312138922546803932895516194490571936072832938734093994335930850986578266302715339514235656592465850425593826386185889776896657693462666532454043011599633407536995032131688136155811770546850791080133925347247902508770882877878923376256779690792274390049643701808413251305888120531847619230679523282948673662128777526460462188605682410719784795608944875998277529039006711396216889266220736885344145923105790823209142066289861075058480889178619372426020165475373375604566798223521120548003808694687695279348939575866180101529966255211922986010987025687405753358568216696609427116773315920438763111025942354573793187343572970966597172289903679512856356113545048237068364081153423383718519766254139078605636066116218846243672173505681331676589423808892141488218316151664653493898614379697189577314483093628064193522441688882400297865544451989009471912642857958374916880722099698034698429165461144359483737779446663603766700783305917860416010653126244639731422153497622324441371848006689025635106233784950389254748767146456617082791082603346870900444403551545828463373901875044701627476207174528379255215218868770806639242745631915483677830807652678382479809223199713503881159639432254219890346970280624264740596531375312919208883127777405355329606552774500343699943568148150546809622587481471414138279799294317885160698875955465072614290790013178186656132593138746557316751960794452520467248601407500585328446856520686665901720638771405955740306952282020893662090605547852512152137684055962068146298982540211826383677686437719543815374154578007543029474794453039368484774361901610400372426146552819606035919802052748562095540426015950732963577387776697410937620461102229482494642302929286382758317187031979752583193532134290171293971026628878365535808524732080204391429727337622424743744259696350903507527938385768642382522664326151164576355360271156696081985469124822593814671969420141171745828774369431952491351941813113704712656109166546216073881290390624185104715402076773044952971807312983860840999202325479213308123792014099174473483406434773614367453828952409133567136235853629550992711002562668218121174633348984469203755700856933129559853043615096250534267704869983296655691774725759493255747479969447565845863534882495292967540318935079706080223589109568841422827134558692073961930819368074577228069895863291313833584107623680074018309996347231159338313244732966997948185447910408285474662905195370293325613752449451887436981257130461445468393290331719961672632193354758182961037264425410698898465149667028948574977753985486201430094816305904834823680958787989027580411134120599372918665016548423992462388200825476518720879068875715615664737049851714589713976825383158724262676174334125758819563789213931848625732139680123460131350592909306867400344234681420072327677495639854006596166512677324230613622389962595282389074219826590616919280570609477586684975814659611385923587511695168763795140309398680371370724480792354875581440667898211260376724250359783116167651438613273411752988118412968024544472243209122358253001110015630450170302156933097138535617195511910139799126549393279569679457660706875263847771089891377398510979956277020193058895575294315833459059507027995227290507376502633925676135143415921958235662501079827992889861938035396486223997817593159061550689231471638713361234793211838336433068958000497770208963707926366801024224636302484377799439285675664003443603756251664970351349786047023899794611050824320020059427626899826798286300360362662539165945368198297586542662266798102648715881413218549832790734137957753304222761715762861706031200957530093295441391400763752675348804907534067709600095921222860474697629116087554555759895645644618703128955308938629655038501885594792631007190374933543899275020959045741172628769437436956081955986036671037286758293148671131214530861434612368384574714300248295527906341861518894891548597264258699589939478467096812033050717375060999275338514869541000453154784498622320383994848386637597315126956496043224180398976846888204545123506690264697116846512755330934196250220752264983656950170206477314264869855329688652068532940170867417349624245227775860256415712015976903532804098794671530265105419569631068362895930322219002487522526171229095259256890710358525384931279345070303290687400845859462743365798923014869513460006569168837715343029661863833625090414183755283115041364083904471238383986847802424416870431523398885106802588982106735122428582307636132866246479481134520799352677565048867291018440114954826502328105584730274006605790517010922809752855769240959834962151683615639508163342123174730290533060548899886758400552249045862677863050191027389137026544490063307559496215781527215262199324634853329323182626324627129888349112775918664657758650690089246770681967269769311881938024145417460811966459882482933217650718311604489563687941625559119067683984512656352335971825973214069262966738152836197517947181754157806191128695118501426925182600343797539768073511230060104755438465748724215278199339092441122817064299132125408258205105687672719464603186108243485463985979897857457725276606119538688559680862651582019895626799394496719847818726163999585406424822945095580759022966068211418113680944565004814651387142030246718230581757842395483454478657904117379797745578456739786299318869214481957999366176192844713516691667551251461923217229391582163130341638604910710605017731039025061656672091986794359079196806592148491465924961741578160314535987476839791961695117464929455599882269128882808219924858732710596767442252599265964929642994248796952827179660866811155298235999171216503186324848450689870223992435788337458090099067383317859620372064461635973660580525290464646733665323610848364550367230537024552747723668454280621943942115194343606502911706757051539387882657737899177601545693507847410951631370624166680712274999415370161018150915159442844454899314682006367145691663449963488901255934441062250486957513603690368887356165726154404519641522952938524646537521257534344859417869094592406420914144313676195902742761007106419602418090542343716153558548511165799743674375018319170602163282714359996713597163772653518082115590252633873212608404180727938034586320548861474305650669523066491598947869635981536646248399885298817218484703918921913300729414080080095667396701864457749072313167183411504206421089804571488564402155854529768885579153251916982413474650330759935394029866529427139840918036272174217923009439533602509790871321794564793227977713914091182209969570274063125980548400951926791712101247548477779220562869293253237711776188401289866570007073098434873479701908828145991273039941283931121776803434257721770570012548522892515259272309097501582834864344556754326326459909806858093349534465180238231926252829420084518675879033250985202452670734369038039810199633600662730296360227835619316207465902869635972022310932356978838762333635437343723451859026278240436805347712122310493291497557827644596631915751538271840896476546721720590829465560658671759584276415879710325206865854151680357789821238482925770368988385404582052526074036892574346989793816795515493983724350424353350897296268037835892465496433588139946634989622929924254715029190285118686063504324678652921869101879866019413853856732018518526986357196663111398691016435788264577727668433751581660223346289430114258812942658932876998232351537541328409882517367234114841165825361734459364025016220676410821935997943435648422306880635641481061163482321913177034129105795244385646622773948377187913025901194858645861637042871360130790557777819847620381822618456924200454846554205945558106094507057047419160515739515578360504207480658501608553814108017058263079922822487765748972624929511084229785973695278952615338345434540558668697090462908150204748515118217062868533307542043918030412445282132249092859219377441876233135571968400845674966950712811139937658650339406378014869875135096807709807799393740024021920369120579733289712994513222872148645791084502074280452433685381057763608146549422357248452052767390600754602096205025718468486367838084625882686968314457675831154566625560022166122182663951692222007199681413248176819150915865790074789210292323735010557609624454861863226991677825418558276879946314328452895753988812103615766425584176465300387004692151690341991262057979778931177269126223722307555517213349023496362217105323243522593890218299353297479702840019478492317037300900382600076874729282081646388124105335366164092725173071114133230490392656565552948511791007771358705623668001247351250251777240530187719450922797655532991451019970811792126184713284249823940900574359329361870857078193046648148997600619182875888445354229989572596425683183194926455459766328139955527882528014135000996339892722048248905037231757130896158427025423200322096224366558696790983245850765219691817526996502794510531414283274285421742880865408393702396015886429394741295590083030362031850798034029453570975681241680852324580718465908766094824388268576486140380900883437988261168101074007827640254521940678722857873676866181806023297923927886661737791065951901247362921348971929373923965053722753423951705710646245216530343380754223239649941560344316034130350557004296716738685100432176304357335096585191822681516738721658100639473496911169247734592477645454674689420419186951619397806479919634724698802068802632587922217704541145173724750617309181172647879904533480699858104932313202419551153557439352039943070024535957622807211477945267451224833613833149947984856537240126181465232155869035873151978201208643022043188883367653050780251092584899716100276248444672366772173002301253228331447214776434856480221652269457571646095721843019144326044012845187679356687584529499109581749877875838821133695741499619994067274534802975241946636010067169442186301972985549995469340253790096220579309279444919257905292102365153086408871711687829797276674885242327861098111108117254039710335632677309603576092052660191297841574869249171806663222315158703167807779512231278528366749304184535105679054204156753354839596342982566129582519006704587036473043907634381350273960582136631405093679334444007141110563891814585296472376743181299602884247161692758494818821319027841396537677539050119907068989390668290267353208547857991336555876815349924574704076819889565749807740907311008756993619433912681921511921632683932107863911503344867282896872084323818143032186437773909604456644178276278236702780174968465876674909831770737869600105949465170115347731023246701998677918282821637877281982987723636391734927837723896404379088043932891049170678157429322375489180282996222471100430008615166748526306778453147826599284901336359945909344550305309098037839897298167756307638672651674330849316643648976409082643549793022876516442569698419578853752046058436177281720408891165309843977531921423725425267358060000863097445555005807214155974294886867072105207174185240378110111372887191274486248216099547533933774742511000403705506273956230292410497924077264871483811314258468484984165572847716938023036023965360231442621438002180881483452107207154910155139503059994795754384876081462611365225748684916863961398210972373925269693578969669776411026267928800434131408265973411895314416113790612056383409457734354699114490178702713337360874538375547944374402410932275481017213115810567119067372939357008243696635965033854388373683166622174401038424293334091282823476699700480459260207215505434395333183690479289537079239174514264209479448272126195380250851443048097844859201189561121853152547546917342071438922409141650736703191336711723455783098018277744611645129211122034418465289181309057932159666117695245313367334943593199378563757007376169609561256457615806913563135141302471429225494277591466427794159570916699923242638731986604678027196952485231918702495364192574889422247554006774950723632690078987422960623378009817342921985631708849286396344378756222823132835349575666009062556822840951613954779502855613471282522031023549008570736522697510044596378262994986869455547180067684469297905025905783784288687348142086251258123291881189758537886309873180414297038710701358680357861244783306827355044528026652429092184354667379658071296586725976562001756691090358834897930140198684738954778785564962035142867585677809862398450554280310832270324171576344594574948940336170878144938914498283542190459555437241164244829837578241601149176705846077647102979217806307235402503427073793348020911769067104222558846961637069355132203220192554240579973703025688588837707328742054201082719324967894768227368997743909107813589333379943153700068166556583858105627721881465766790269814733676208642984165507225889034693737801835686511169734318904522959032976321190885661146015406811055042939728539163157400753384880952127251975996172456832387762751124913140667958268775354892626251742495949763866226724654378054560082897549604184919427854519962344599093633337807282679055988512143180901483486596225444199335097883267107377151055341281309417759405588171647749610076869921155653423674681370267434728683690233520480427018786753151399360726281411935594107662766115697987621200346943705596169813979092482929687438579278619079506507955034511423667146911549254205652387210935175775331316037507246464831313755456930376849624903731234934247656016369309740969144837862248531583956550040196904632124166428739035137742336964942528765163738173741201130828477027654036040668291761764180420084832415421104627540158823482404574738236656793136409760535998175235619775800925437056638718590117281205944111845831182726988011348425857692843071474124572382024835542851199756117181064510217130415081895454016183266552054810560736737136324199809132544196642812589341536632139760587211022047129361458782152709989489786639245269336435858160387280098727720363030162501961969357575616171532012885556210030263480130486497055676902945909894662922490118524173979332460616057032812803722008356901858221709113772016252176274275760008599496544662893405886287873198640381084662150300224393718128105438223328439077991441909892591812055228020073070319279376084785922414198529866313031296361036096776263619909149646832940660766207863382972257488958132135600181727967787087157760735276966594613129188808221268608904090861545587785224037542181636442298669261877779393969616620857274774895980575635398062631444366943969411096026008249004569980956011669338410282863663039205171296394571378053100192809110548822424393420075091876737898764876804044224781793717124082541123102771524553209389739707017174824578552596808448484187716377711248616349842713446753850654584484030890389706172577096928781928954947766756999595548765799604846203633557125587594788387611740444347140872114105762221060206068785947981160612019903756278896920048267347048724938288569515506279047156184331057032077567489070169368688506899494919695375966517291835000698306752586047353647628936579807539698626824733922886069648093492873713095891373355484868040458507334882784507421371424505977947072048517076964396725313801417510072335041742220159053458231966712921460322397998667088204978804234914820798236694875257044677382601491913378670536503247267562214397467952042237411213634334645489076290236550443949441134818455876383839169994760368354969842991982204110228657432628539801306808090289831163243173742592844796347318875384288060630787933874809725031730043182121371007835116423172568754269409888894417574086744168520080363294982954413568177697700235312904886447790329742994973267317569687104914703525933930972322620657793328134722781516456458876269006503753984949162612643102613499266437568863067827425144965174889545164758877507293776130004508136987604110067481555734427195671303021352547570358951495229779747265642356567827905303785131304490960871297404144836020194355698012530428750974956854050123071137708654387103694660288487466298117530173793221476871878371063200159526954373634872620455245941598531704772449377746901759070862697199081572783225921718532654055593653863568907388889504898594018464251627098170645208280900620459949158010320523011728695402715212854420677175839155749654342650153968074504755296597341596613296020602474695889929677095690068513513731287549909612522429419294094437549405472092967402782749187019036010919831330627128652950095130796954444222118794045832590172358480044593957824700153477287846420458437298958245520765571176688426779176478935500647483753449530959240056557086906401861749728029375218299074382665185584907860568609788247736956822745428825642894604610122714054017458226982741048869721114397675348526107670782788528683444386536787041347605831080235761775834000456239210195959469225205506946626088967507994996122442886143576317321709407043578671335394185042518662767683601427809460108589937412471185807453627934464902532720659681190284574658166001399046140589648801541561439138202246651143307383379566348635486030292024313506323967962000330995003567460760068204445121859610327038465144872481753038701913681936965914892326152055596617858476285804387811071141107523159328160440910649976703194091462365717248765470334136451073158818870565082866556990913955712145620824576368970582331169016904153220699319727828843668172285072794721626971766657493513599939524819385156141689570931556560120799750292667032126942563587760194458381456442396947756892483574503343369226204444511096820301867686693904793619546263938218828622429090185596957776189167785295815680366810720691381419001773210144156406053740671927914945486993306139235565814948288883057728208582718694234731732135011755716156094198959654113585332419076586933932400450434341766066371617344792859747070542542819814161028333769905297857022047914248429874985015437286346220519738917466327266589866955077374307962650144146333762749987212653878578380272898565354535096201339494002901623097025297759769004499510156009189518676170874308007898258824695719402559099998065212315268744452124609655995521621852592270145017677606349339958540204078643012251288032774336200867360291634475969717850973781221276014564104439640304947974179171378931968321050441932105457354841263668665667508662553537249126742684080824497413161935495883774829715897260361931266613008610916438214850301310401489233742676164434102985793475563973635120339543069183089424763356659640370768491771903829721848854679575322522961383040084134122554501784342770483357092482110294645143331131483819048253266992051088178514885453284195036508507848173301953404835378770453617161285943256142881634215960744461218690892777014299593134555068858943396861129484635257767871429298200965625765034409859785961115531730505295475412745284786716955746913796381638099485428430192770297027757373670908899503408711882043057515262369262713274977038185547425286831127225002025803215232338760038506677667072407236071755599628480511505407884664520434142175216825753286041084230189312934938841565678324498754177142086444111886492845540652579862388819323327718910232761345681717960762590820789434462693595395856575877879910943056276099263191224987657333675499793250339111832162934418624467876302708311613001329014001269487044806965874977299533378469755329065803916095406436097544575025446084497125662876368098400831503447114022396666647376573462773795268790750718978538880625624337122274426735656175297964829107543077061016761129116308981231043380347577520547793345412711955266888120906592086763173198832187853043956844910245694325177635961665803060944605769815311122192897713815049025513026519042108867950679155522061486815754443187386848123866863096105144733687750251888468599506392085599473990043991235629018948864937270375919536400998104042490645313571497227848540135477361427358986067352659501490948226609291282302473531031575809810525231966783877682215261510340594961138744508884918478335044397938678548872019388180666758463175090783784061024052451265090669425072122912068647546318499218074611339385452176723167370132433738637827123080444828306581597440623154242643909401927100387862680807052830994966915810550630294852304275080185052747081378922286643010973796221529030509675378861806868151795595531716028821113387106590994436486013571776591864548559247004488994442856713319639255024223589070885111869346643599099855382745164058536543912901600712939526307276136969150568549878678989927959279972379766706394669062917006289016045087756899867964264932364452448507392679556253837928077416796870420734207982935582934884991640080841564041272213682049551460389893625011598419115575431453788020662635498385053339722822807345132759876258769486814688237497240976074140194540239604894844898421883400150920402229927005851825293527755003283309751287378391330759934488023544548427462594959160818501154834350525354480625076381389386468591933737610833595377400737778565661595746679702073569515160103118842194744610288218401872021606570569658150250268954650810416025057486164267536431764356099354962876425737070445372439192848778054600555034333619800975541596086149627899484516635670548030764384027291178372785023618910234884469141195771533918847362873508817296791657800233324291309751673906757438037118667989663756424657397925482949648061489236088615897825902456932377797325914125075095387105775172975641161488995640324687940946171377872711016685903428958677137568728444577182213058616690494522624676375972515276483328214291431555389184259241797702254432195762043219030198119146347600656071055228406248825305913299350122563603359055823944637011225847146680629180104711301757524633716749624935612421121482190590416741730180848548129817419618968343538626463649141782552494933801581025719355962002261336380498921797186849967669447502633136162239904819381968754775880795534213938465065111449023974385053866632028786785003666394826447009663190400356475864018374560596010103083092570435711060453481500007144424456147555710685242105955384238495294449145179249003360105150409510628110627309012987213845321112717327944494083149134198326952142727036113757522892465435608183639262640090032057813283841452972489235198450976123068908664273355816072316728936664421810589542309627717895682666944632992195797919681821941193374729947464719490510671088898364620074287233440556022499694124088951425027540118854034502923536798256028156895915779536917727152868117933917828127307798541196904504541994797790982240189857404507893433734121011630859023472177045928686320044077507132870158753373974608126443575988266098642068165984047490689707013052970329518353838125405722543521038175883917913960028136835049007201869309151637481514475902962194864980363089761415797384004895540584643502569016842755570825799285608499427305680376551561725903888327883930202046560163922971051269151285463598870449381801187683449142958630033819844582519019291573790900819197389047653717405389841496082614904097912327951674096773465074586315534533843281230641949897870799843848571076039461661148284040186138475929299097508598016799293750983306932381058754314866111744743309401955341579876546383659040372749133030494821289425808917979521085449574310983647270803390834967165795387038007430873133120754108663171340267672299682243197028336842685094185826283687666707556521902486140080527953460710218594763300917599598623308772323702013269583824328027917525910296180660861083649972435860950332689031795870429684444352752492942859940912589899653833171541187905663936459861099361414846012088334930069558251856432466772756468075752589074356694774266005439050916814052018360017149030698030304316077211435300951336393232552283460455299815967951184618506566836227668601253705926710786093965340794993127209500958020194707369041673204310967790655429168122229189890374545832781521034747516616487188878811966181516631242659055176130749504916890033167672698222467917440027719412418020976804696305793729487900187064940304289772425783023818372967593571115132627404773073532311578830083501360920732924698449377056202155221765595427227451181654982416303495753846671642925939961862125565421934975290466083466578559245252407176383397754384780229609491789297207025050569128447442310822349225028350618518861251149642088454454292069262739143751161919413990982399229204671951776139319423762686216617460213197829644606772948097288639740016237897803302400228195039243516176286299066855683111606691217595130816524782160340759783840290287508196045395591155479240852106373300833948929195963436326286612435965612648989091518584141420001352646571309947701404678985617668491393788514974764171955533478260636052518395347048264280660717254586219753807044812215718489753118432324540947775808821538898815962295656574262376878594617182555976210373350077703523772151619060916120841679019929555478596553341555738243713745413362995689774100509910060182523222123385120569902516724425643229978620563622171011725707858727469348633240796664546185959985564547335129865551923529401128953150941321965599287182139744842726052288837113606605002137889413500357624483189674408295028609224462836898396643875363195583915262916879259691517731279259984164486283726388022717619480471219538893604449122290511730668381817071183925718849765078596135643732382229642296511530624615992633913293375254227875773225254608727074024567670776671332209558745341333996700178119048022682761408366794928217488133956374466222025694496701711818772892509364042815980220690456828607977594001182449309706601683942085568496997287002810408328327360113449600095653267153258857499095458764401091264146416866278709020714131380634241593413540266565243765250906308764403111847368459571574848038918835369458976659824934536386534651447664473322671300654688392684857753979654302676781650387212171364452658706519088489773673398098518255188940768946902403408535808427088300259557254990622410158810119594106907404466866191957567054953314668966718640093340649597219722199716314423555653977324180075585543545077714699363439177867397823478735507172466570694546196763520608223118429200320752514055421804648721667385734157761894838739287714834313909903124035950461727060556857979588805977019898840854945557042835677174681501409168390257305517254958647203246522141489072318454444916680210752160355662603863079556581159581890818171257479714998870746570317090162034023626353574770335962155785165241889907022801375707395481137216183507272142379931589027526408033829693685893277339972931753948490275639156740520988602362372588059506923070635964396453731620515806311325960617542808491610416747292319097376568737532351335382486220465895459090948885819914797713399152721772912753941714577885568663261489998668678814599634042310093746900714578907420226268214697637546385015333779695780612362961653216113504972555621739167770538835034698130503977620583179862962669921707703554668325535844612010854027568818074488892384495550520606608233492281200840498235868364928137770284579915446184617646373185897929151307202398393103979825166538695128762106146510601655801115733258420477776041757026421871627107506631187703316428378982234709144955055782757649456119978406296466713178299506378401405259937950803395187180360209688216328571980532408533779263885515885568885459029136570209326537377232332918842335308688056647528362206196432122644629823385131968181819593355438101978602047500508236955053907553980990897850276544517645446450670975821134408837189069943818537556572456265265166931682236866481081564659032203592108651642772348116071290885535975172980869264604972617318028684486830212513193723007597381523412165350404405231165448329795054802206385932978005415032738159323398965913728974696095301072723632927165378447256897849799772606609371648726886346285650173823254983230049498049114003253168656352063236799514561122473080014241511080002715646066491126020432129194713554798014749629976016923765473852068767023463756943333124764518926488617594480295489033906195365475600067741185831443131029714139509145759349927575424305278745221409570799119289456513880686349381647069451850303169558695326621708803740158512871880151450905823090022032921649895130756156982588456575429648313373194248872515175044762063023509432920179571730492862193558499789019703195004446680763539756607229660517385875370884579968840573874188200761137167731166231696862376447413985290989093559490873061394793396616343754422865673478656955447603326460043172025669133234768251051140433107785539566230524617463526720017568326889083688532882464105415816548308265792918417028861997364169936533850332818636395285785410399315947000664645177021224203261743220062130835099806741178841833911419262641552999167652548538947916224397734315184255408223652787723286867879392199533990753203715325301636420040107879165099895902837989256146891643525926910420468512191407064117424753541038763786952133806866791689307896949773481788178078032314071988756487600164277403191327948763477954205812450790301682340486594829528057194138122868531062168838778360153169407880950586668940971601656745903397807807601905947699447781902313805413383684029044806370772945647550035296611689893624356756123088587671291649985810888814500857735223326764450211710615551798330982145963003435649254143127636918134297312037308953183362701614163968578442701736960311339101498282096194539787027680462032410383014817377845429839426009611319017613024577085383113992212794043463919887942441930565106072978096992405914302732455242394955705137065610475762999771650676246124319711774284576854190113346306710024261810492730342491238667970557587812059508917221971122956686023829288809280482543916289693425115604653625511343027343957114772104318500328971169801041628811585736942651349168022436875447696656567839631793869340068703089566740126230256525673839841137719374040809494039837917369659454438582242984573190979925203800458550092197242749826395872884020834209145487980258044349133953122994827842219307115571926459805040583562351189279949700610277804535111873847676609135761941127082698478866211361792407892173057835371646969480665331764171222961770165197736933543231723833100791845177606064772425853755249804382482610925049593822939644544333844353802274492203949132172240956023449454004563778881998551075786520498415178746531053372074408983290420959368919141192379504226585451233856905736544842251997925807620236090952748475316485461256836023895728951460725640034744011572725704232369681351989696717819292906770321065594028876234217268635642842324222992672775208211983077290172390709746731748054375498320205054069402299753596147361232492435941345310367691208561766157180403637638606466736430220800756511696681747204111180388888178837460488475235509954184634152240886652507788431229417301616833540408869644398308331003652714409010083281236054368838601433864511732261632301075925794414715362453036430894543485339464871618201505740798764712380905860294593057203753273215259764703690005448195436254636859099733960180938385586640871939575268902818957184254812124692112503549335172322672817284794462672800239143069881219791822245485194534557313445973211692623393010770374999131252510337988255736783135255185017592473983612137358591790610030893409903878281276576101853638547681774115919557002432409277337087508887006334240064940746243258094181787364275366436710352869795453395901306257433122895599851117078465793717918740460632691826103363097053124473986040540009719194511852302680184890705054877840411143907274904287576255389461196283714644405515513145404922341588026129106204816477916389800470217456137734293519426167776580461937692117395991786796077391300492904259967088105988889441728708680273965392127599102067617981572089516936920132228753783203336484904499035721967467797088092064843760456716464977186495448426873675621447012992197484116954444584990563837201343052683910593579067983238081432575834903820617858651781843286848159287913305210414904347500781114684929178028195662161404047841744127243925063832264257040096157505584593455107833922578641150305491482925696257750699987930486135345718995980594748584309182424051478095728151372409703931895530536079700781030561499718976571116544555597301375877897782108469123576537405636248202575504922529296260190375672252213098536826690340836549622802475303782685904579602838158793200924186394494893988277783879171539116843174437507054139580140922538545226076098618692727687949270570670669182265769672793637083140247957834476424865140373203042071468993462542103161013820039506962120282449140197371072746076752998640141838157790605626059297904676604571100553095211834291340510571707316906378575216431010191332986065290228751151968223292642591929070592816380166199659651137735775490070239785806057362571487394305275281014907292776265118032597440605085571352345376875741102497274294759954892429389340247069377987727429681825405753697550756531767070499346026127570233176266323538504862538433392710566301282665279243730719546946861650864555140377292389172084260314076653728113091530889950239499439435523816635762251109776355320273270493336233342295332705927881353419154250091857614264706646804284154976443912351997542440069448075329855446814457912716919529670257442550278615390230163853103567162819288945876813875743566851330771168989650262020552584068868798377958949045574767293374491322713209390576805484984137759547764940025503383151821183338572708551918922682720344392551998013727204673069843650279818369646969414229582057865473540279227666373146599227016185413129331306190176480151590585541929650777918556444442455737392954278644147402950949454198110443236758133881285107444396705882063848106764632055299808936223367045518697092124036066545545423840134208125976820688417835334999654784178024787702951845263778470969734124192947415125105249874278259025492611090032242665780043945745874898298446429459249703381844576455583423411381679418147573443827449488511747371889937942600660383089822033244653179099619193903169030450310142367554592457315251572890661483535277230933293435239321595997464441887927922015124921894232186930118102269257370975813620749081698783629850168959700158548893510910446833405550651936340199768320552861652279362358903616893577366838519076301861847910279296965758407201241342579588359953472053029110873005450636914405040166965536916821674519242530982203689235424091475115190112360673489475691485460401218201496320396752949325087723248553628201863099175230058649967037918554386846239209433465465727385815683222077600728323146243068212118410744708624273806041014544318767698920713064821669173982260553189255624338363409346751313993289341517080417967003412267472787890857619172782964656520730963916889269193953904364118803389821681826278129135412667079807960947991924619572090837840524309488253372651253050894993699676634867801492125462471974009651312906755727741403512447749006253338444676501385515533322670572589073310429443060884179222631585208622300589199037826713970182313203325335238438029017226708371276632215558367819558676507802675529723854103787398544075611338311713455346368549036131608563813741210131067704323849386841389222115368713875446669924940856136100174427003364320465569525180109131009058173750720203312239222194635091503692840283660805734308017898540253872041451299286397575811137237572555531062043945500382394248827499611704942598181675101380070668046513991564518735959035167747093510537082323511868503103414859599769947136989977923334954008014506264294371624604303429347340608962119247653631317413101697214266914036650464820623462952277202155452930373995231338238239273613835507407843048796050864356466581366080545113257484257502250194775652820056250615722028922562408520396677389679491884548183276634102473048728598550092378002859185026081764790672086514828531217676193215254298757410834150890515986542400078821380228625469764954531794526607244014365910604628790837878312329639760702539906803449462265848830216141440297034498305660413786798488324671940538999278666310236620831652350829885041935746232181665635931030485123252399626521238247089667686321749711342912383917581200104278751809307408744408978126258408079874256831559884497248857132073762822866470728990424936189849693683751166902720058394514245138738041727259503776570502623619930786247007544502626997282674040402717586238038278454396149836132756464159719489517251643238435171012362304592959164568334294864239444986681839673369369883610726230092813336074198807935792928144109468694360520292306306891617647806036512925526516326111391041560930255614297709797757365472168346183075317348882643008104225883560481933811309690692997248237128788029725248539250156641174502756942433072029595249722457597027285965119372075457926364336977798802505404530159976234932785819996377573505889032631359830362969855132234869739276990675795245484557428609201133096004716229196816897626324648378516557835273024870812269555395020076926535985004946625038495845557621872195797053788378901135282110142657274106269601831421350189018188400630958005169504230569767325925323622477490621068329986822019415381119924682696254449010981095531024710380039860698616054534973051447038388276594436067227616401560048866708995064436135739734391357958400961487107588079280430665269394629489846145376179110612591045478325673991094069982942484062538890958174078407000851878857626343909258648739128229418767836341727731039665579929974312256761658827323586510828003936322936733536796838108193256134188367340186645175537076341179841471586561286920939957198406762845827340764227110157003125030869039189350174013744654779620664703434566881567089956241576922816124497057429755739751936057333048539505734694450856373849061390724853513809818043974897807287277488969582832623117869335697249296852916935377807766768506144154479753296042521553093194614819800032557444236261841399851876036485054796882046730062453484555125961074911613971494822430082360847193331807155590683627611320718027226152229275478085179930133067814285944967219815925221008224357297876666349768061115170861125734298006822341434654748011513187944760502552034524197166729143661978965902437030024864070385357624825063239407231173494993409891232464827051485614006885190422415054798579251269912372242682977784397572945702546702937121816249292531672864063760968189989584681909925941635004097218475558804713495510433776693824948129762174564647880284637415239875575142307342274377933011680609498364560149741528588448473466507563130728463645118273012128228633159816308869911031482679653386892854463793713883884806359444831593206833559018608784373081873414933007859498413391227669654623573534870376217867873018987857288693794881449508672518372181347548105320186480612263342436908515726686292948463566303628851970429757538600171159973317610557203246526288862731564850411580678273139750696372918749721265450466542379706097545068417697984947074369608684849836858575035109589226972529617089489111978269086026829201105958902840745570381562268065913021378263927292651949681859184655974685106669021896666842638507605680383234301920292412734916652838932658377393390589992601191564512489217318055702869094837138454551708434165360864421739557607120105712401006736903310006363135198706032641945751900031472695575786368538235525764033035779889234186940759175686101775657460858200860845644381410069108928596748541025028518729973301495102786889616356932804911799730186220774831442669424900546962720590131649497265501056439767366332253829913900725974164565829417222067251627812249266335389462710233888488012201728204015483269095722790945712017952889298899694870655745361072299437759164817884949336285518309447223196918663372782047884339640808762626673314036879047877290862410532050787470950955084095376674182421328390032035207310610677622206233575574756123700403395691870916801314839638629081008352339950023140952885982042713069546423900504168088566214901623367010531875191278548615857889459334187367729898540766466693757754509738907486703174859025388513715338370605772149254326019146268814603945246120773244943527519029333672514310888158950209455098829300147269498565717241041651148407882492039924510069164049082970299130811431122999235957423557405650738361275291893402052275774946515724911889188788822619500239219400152983955851707605053408104160230463533528424913573767260578900292584085983886379536565083583269808724457015704097044087496244690134681835088038914506722005494081957237912174009709503916965432046947612731737834211353483319951818274369691512736074532645671745917892763195767777971390013302546215422980807920982149861347611419663686721334241985392823846099382592117480727138742041371448730262686654173769350263951522403870536693152651671041930998587446270303150958770428623667821230559851705486138348538731286703527138557193404060673779178363295116126292280909768770105510640019333454128965716091936047893068209296619852805608684665130407815495893985872101179971919392049100618774361777501103829613865727166242230058465998665473052994255924251626996485841142684710288609171391472980029373238179012552434230558546530334517254905315145805547223672298090522867885732907048116237762393010281088651890422304321123626699809467703906137140824179474389043445912191294562465688470350156736595202743930908523336677131333437582184781797445002945547814329296669899311879242457722619608444938389355829382602037865608136677789409380179677300430517474889940237361414572721610304356727898766338650550064985266110280604236940412945483219188070302729089470080788394053847994701945117551713627328009777408068954410964673926116963046300153347126288802285692846902208512679792717142010926171195393823699793825099071114107511147665112773196637790328093546603711783896896434097304004120750568907318359880194450947259128075206812278396476642912720422267928356961257640077596495140655259408632042000890354702615646434338679846381602499187957431745728391176243543038565488462356974092253413591392081235955412694912962439270643667476161552898435953011591984609332723493708788116856378430885159445718008325971720608531222466247147818851406632343258362703646818227932893837595379828061136622685903409649865152520496718962025441108593962622263933141051713722898189911781889215204568426647897342433582686716967694919599847881932185003203937611816842198066028462156310950324567217850245582802222660671474430239771841591952417891461444683690360864269749884951629538237762563272870866209788347551651201522567100728714443358865374377133928804676793893100124850180972370257736304898560154945961901604896485875573319873053481324742471324013290380561224814392851025824444925787100596489203074747498052684570470827121814361646324150027907533131412985513391921654675893635050668142444261502094497606104090398049234470399619079475346147985113959031329644064857021095591806552780587846786211221239674169326609311720202104655490273647663698035501814427961975561299480957221106811165413337822159543115639647282722783752470136351527094688567883644104619561642750508104786549016908559807488976692667344311400364526005427746595451615800459597328547352444705612154657498410000131146547509816871882007081210737926406512522694162314785303756106062827749119017034757570220814808610005852246675640318872584432020855841436166752166607358429517800038323307493118604574508160142418570476857357243907419840824881240302357349982556628191845628852860909890568107115411239884346593947252146781046897417154172308337447335038042713245453941938443835615862227775093338119624011016381195417034829905326963131620730294918830904256433511959723711014569280274696611956517679799752114134620344533850095444499473664878871483006902772608594097403914736218532218375755894086954829913548889892489477617270272142424568253720332771358910713740650416231680477115290538817338902144853676572669799779045298992287390550610621233164620815181511376034627571656004339283292071850178390991423242774129215485666179272375632940027387910972621387281545021099634145900843329519625395767587735471261453457367650167147580004063934015232321019838699370414225933555340459611881188838407265096973760520872677753147343020603425386730966745244598055398364243940177764918211799006298223221443967640291649247500732062565840443157246407995319063879231327145837045739396489370526593660734343568114724260000861776687843879327645883110629861030375961176700281285147515319276944480094874518210861569683977409436949191037592091417648130138064466588602550421438693088081160972792777601920204254392836823540215675626412309025649738078434551042641759737960428847642385797205289805507356409681450230762960949146092461343243289134893321029891630439457318838152637626886403527159215147764859206312910780090868824902129783888462861171361651365781104390578530514120098421602026650649659805492102474713748355121809016683428155505256787812037208591223747284633330146676016844472879813943331715638915106865503708793964708049168917140123675199328200500379199868586393811771046521876370432018129351345212480913762070612045371525691265463143986937824710625356510816566031609442734758722624043845868266689029001662382156826478230912909701263568837139130748471466707482891724835704878228063566764737432697712800741935706422860984468670219496247816275638266610237022562746517943507280046009745063208679652614284551978337644165415729358640953122109580956197509390597222722029898209505628548862267677154769434973314262862427954191247456848479468650384536219440069622010730627612807876070386719696855548017158929202689077111255676788407385707940532870339458737543972822037445222615958208280904073519574087990262171294362355829314329142898100186101590164680206433322872767340082678099164604805742004853099955638090128944614896057548704043636239393325011168133876906728449428609405410311284399707615211469029276692794948912039700450879395470262003108520234569518949846541280985963625556933816508745186414545715317118380037807590740668727091770616128020011426895843306724620447635592972935340803452910995128593073483916003579552768386451663852249429673607222338196123088435212469623798369153467479883108202288871480866377769350228033994414996637248362048028720115959523411681809772770878456388822467497037078131761218340557876728286994709642387533691915983152600143646054360940911504542470596131850744792513111318890223560480254708223428985367045936655456702436836858818568161713841673099442045694954710738096973272755106813820419202814826122660530468381360187454129730786257229578473272646186754715218501418449450489131739945664198511564529775662694468028790726849002222785292208908412376382263051011476742517040134336725831313527173734143804173191750464602996330156150886829305314786181098174347639214965534687936092517434996701210880307297631884297119607607568754243019885687546127056496474646570428463469853686653194868171639165098221050167973308289282550605226936880382195893596751269209906602519178468477742474983096313733771397036248494055175820227597252835110469666589510024375286538710918302978959222480965849874271378187068186636062623866289724081803583838863088511149701583929001719274968856946419702395675588927106643970035131265927319958655524795894926363385767764063133453282636106560566200770894879237429232252584704903864487874685937365855689953751328457124348619532117868759090419101590452256608291210005536997554083309603768084943176885304658051899612692131204504889140900347044424999101857021032729888672417842473045441735078651104382037298963336901850977489500259195510688692238768123514189525375127837248343507994758391155376643974474333534821146791219642106068097551252750901631253539398487357406139723697011421147807088618709688982955804899255353289518287381275193668574957857203423628641887555113826823499238443444445250535792780298023629716018395450066936496919049771148187564323534632323405478135233653583741909148197011719498865075465529897529205124531571593530329240868569280134397476633053966870253864498262413072815839523816068794941091935730565748883063733146143613397025736315637492617976162122967671846656132628690187262787368692503681121531183916763741473761969422425127858944847295755991537574052240200662109538734943081797380985238145769326092165707610827693624419526894098457342755842225820743280303278753358055231472235613472269789367623918461901146293515280756858835805368945056047261354312413762592515421879439104232121745341394728568796053415168220194527954068808663824134858140042060113342077398342442840369697694051985437508672191969157445706665509752604024154366295651807851426457517443431045137421687488332619463793211943543771516941245916385313644409604509380641762496230968218605526140152303232170562595703764692861509853467773884686899705088557604245808030341936600609001927200665395341314561601308420269462477424378973568874993945736061458381733724607262461242132548918347245016127869329006044035301770875434731225544862868109403548016178697320658845970199130947193929032815273825655396143844361669492591438438451665144639128466462832152608844774337595974700575126173650806943956129688715258497088537492405967503781359616244261567431935325034222807229284301847481529312850378098802498796022585067161064517155180938156842562348196844531073428533829987294810286273122959407265303796048023553477348447851855628590223002740860123721927485439286383027799801142997353487487476632622363834506871724681892101823477377196226473738057980818120241046354131433009640454209459787419144519357837053223007462819426932380191050368813188475261773268838883310983228801580423939443663420544830444227793439437515429545530083762547110606198559399678896920823217647869135693323063191232198050442851466088930086868380733736728130425643565058167860963167140481114958595342321386419198960259472338590155699922523122533625098867459169275431244140977713048941850443763927245653904755115244206512178629093715139510278064096969322221115607384037506873995518645965190851808267659592027675083358524622251778982245902321987360823750650503607793881538909922547525706714755754403644690966018307977281013110311754776395094412443347634706441430650239220013023622894619785746203146914262165941378877012119792027753801282869002938022928557091095029789114696149941566984587916150576690279895280814715652683573092532777025720425792342719501832738815721956180194546478448999227967240470549985203876093720013870531421351896896476558319268167517325578155379306262653808334959254602366616008564768298331540449270754355288160695063601396475280097759620515253833620947975099756772305025443320034460339318683122325922188119366493173767584967273741123104972256728256823178726699497150101382357338903240149270763041911891741542440534493905918185081140626301432821375725209292691875754818454246388560135261274749136135050990105200392998551958018196410234135339592089558471423249036057282742799771740950356545506313746747412945699607947442022212990854013995678581586436911987049297932920317524551774638432189989825213964359177168640552096323620476184758474199830354548094218942092358239899157544280318529999565672427602770945483504333685597441833938924047658204155239357045032233133332924837376027742561512712372713253026972435740984028016293459172765767482008864577535954507916014389261969164506568532385125944487770248905512869101773858667832640272612193777853972264667625458287640761980400616324701252247032937831760373831190951871904357306369826570222461290159157768362452561689527428104318676743620582618439080435068045312379510170080346745353236490576800615733708343384496186090529138326527130098869801010717244726949674223604059978249134956302130968280501318560467145632444873697010611227375327903686301011536035438604596994986408990817471147684022889354348619820551956314629869871334567099296334049148723455754276273837515314441759137681628393730173897074729804456663853729195739232704328368973248152471024957773813492710701679128940156922296004609748519372844282403719335374869196378256479716417339514155712288522489277850509124174802203863885058748122129003964339106204860920704230972837865391362248527989769323202404675280271513470700284209124683236922292182458944498892266255134942348044139549788275663676731346964580041482281496899115011890237123944096081174061236535826435792031314804288234969309839792755605977129937360095334404720001650708497480340961459093328799931325121512552429394412313894076785463703493221229545068831376397913231045022144982948264582019799688488400243784007613066529527020781390760367029321662697810897238819305641407403618100259512369459302542353069653220280065774182459305217865493467127300623310471498586326174578089234502870876961473895222262413560992328596106481970179181592105931320618287148125115329778322806910200659740486880465164587207773409931660865079104213210170380739235961888999994560694367158911468434493578713366079646283438466044104062519812138231287823497134227095260570025756947382363654606443853687347087588006946973824957030817555363350994321016346701850887278071964803381637176352954828549552870161926499091778943163889861504951909559785757430648203113237895870444837342893811839881388264572329637512559925822615129970230586136310348407163016905178550856052890594879417400370194776999054314283503675199319158855977536790728290553307619852034315981908013681705270022782299127425448416446555506473065063760861479586001570777377467233470473169307275842033947156345375223331836937275548549088975763613546211936574578052072536329245639230090371129190697649435482914427497060047721915015532447518579992011843399638253851211002149935524493043383397959721213060227507484306083974271568041704542123451424821714059696974833234678863933318079095047426906922788436027730156678913181167659321688470632423753662707238104069537980004529013846927259054662379489605183480581487355354613083211611577185850884425187184562924888079453318257346691095147011835490008827307796373079309167348336112123908620487853316377760657928385617720437219127676519490840631700513797051932341167393041596183449097797509314874460195733942940990041190318184726967245454636295869603146630751093049527139035337536099963957647337881294010488916659531753274220770949081220419001260565739019795701213911257835650435549129199463596186211469972968067797203508805325419806593375880958625338399434517244829308191097817070446245581292941912393230362370860265094435007988053384263452478528876482189614981735293571167936194469198660443021665717467769923415114404410669674672374573378718098624407283058842518909063422588766273854387447858949179731118653808182311520882509010151735823396770904932701607255871714682706880341639944454830404398953918873207753525167690221183469171709566124548591699516510758653345197051108635432735887679992207023135475639767731841374466509804493711840024239753830412477462684110179576318369373381200182287335976384178133309169640904027100737805058515374539676705836594598755975721915550318549282682527217906508996635720063816378626096397516354545524354774564330394390959651866502529271097359510430837941976109599970854512029491199360519258179579392150561795687230171667434680600847962192286708948894473800027595057906229158952146773297108881944960969257752493573382385813788905045656083188325183389472292210741062266952261686545599879751210435155244920850149996698186839526055918382221137765366045123054137772392099439078580829014999086880795089515674917381286847683418359962147155980362787974982786097368404797853078038246677665962073870121893109621220590763519804091846390047106494506795832699510768731032922609002810440995577995427077554545608829421367865972996856692931707703563134439734582833686750461145138427683198026921568297365894214354102537576712649731629419275490386823753518695984413183834072436887368081790563898733514331559520354502355874789736631034783265903924967230806318891776719781743931776022411781156824094662392701186692368374745801162715670442138015147942444362259349811488414468636728784434350215122006142380535609372763564800515893080018758585500218934545183611429902578803745356851672355650457621681040823425192079378077623853986716693857554875034754863430449888192695059415363482434735180367917547046625103953442569187461786341509406171645994404186546130919709512329658938816829726936823318652751929683430007525002430382818719284733928000186384391717597624150082455529074533713876767800123841804570493936956463598603801493961974741622101049759504597852338349731784160890748359666641326712700340988177517465575378751030322438892525661585905643902445355328141157565433804766745322669715649310822245688023856074749176578926429479812290440666951241809889715675429164265942268796184567887809747736262520070091803379661366792816117396140395519902113051719312222002826398217434048503600411390159712254407103752095128560672399966740225378649331085695705740990780203517313859793284021869077628972804320616295202262513388874488394910715681347971289688791679179045974607444843863553947218005951082223845363684289045906559084051423307185647922062248316761589630485144747557046904953904874078911928292348972574287724699038561310471301624324475328454756907814455310703430571835638095926231428077968221697131663717553203988908371988985683513657969649706858887160258222583742668111600575446307349657029774151347573571817360282617926424473959051412519851443253447011729685918857323882896659797001744558197692936237135446170271321636447212671134165670521634340212043235952831972940039920747003982100878351091582679906481830353999215705653443171583532484958302990911494346639505505014030333629267417278823225041262164554493922903786492857262327733858342886983262614521084990442691927975445641020453784190496318625991135475695561462516896124712590326309801008972799403343832249323713260591377590008001328536303437096824164146233188586308693678499156152593589467318032190591600781386184609489916036783250235280832043017537271377386634031346581163673132620776217782641815305350571674221759399720324063376224717362751131302391649311053707509343470054024412533936080182954594245865796263033376433857557942973215956320793750485826255206873605673658708305962092089282333501000597100477652276450271564534869940489022046641239380391613986147713086448903635728212105993785719449464257721273647112327701992469452436204803872211132031388712981645102526964769700164485665927735761749114908711970271365954251813929138512516993117171857622807343535850670558586180131370900149293395496193817482456083048909206604159255929163455519747755207773975848248952112491708983109398657372998855210301038027875332917980781234978896205966001017072873454645265393552606010870495004063755195039642995099104663868044602524402439278446862943972957844835391638964015929255381188145951552063574937279764154749122512733577303985280746356055927330666261751002802952044377576011425473915911883181323731762958642224773888549667210557530468145724015940119567448282693724453907259764278085882784545487664263630744136539070589810864964847622027792620019960264053376935963479896390014076113244066239795813219957359662555988962070831558032010306004493805860510304248769518884294397233796747734053069848867942598503519233001824005223677417772820884185657188514495304850719349776295452573913130971081031987723617067148630830055999649029082359955304239851633567407204159845963321582549268004664652034973192105559553614976040187449182764173549950500150275134841125891891935243843242193861697659490551493765462035868334755596147726853775258745872458422023392047900391456272619388531447712119815437001722488234853082186622251233012470144143276289770094724756061737912914551896218128824925372116908087971647081249426624693325617806497304082633534911826111375207525720591336803827237877330284283345360348075824649889217324337589910112742597213872996185391004027449200964060495535760480492959821772480744903892844961378389920646703120625589728247661059764160092107012316435335389628744556400352379076673595897878978894946925234916325662340493342116859599665826659754255242053830412474247582626742835916076260255848439943923387094294877803193178374095398155790342392459579885369481720862725014142764491973386058018646748913429808712612849026930763709590000072731198010104866481822036951165259489800484464614679516059739048107513463805883883701825650431673510850314049332467910726649847708918987781165209845106302498454992191009052255717973691382385923844128908481124671658406831118095207065041444688885990854137564389475901551470035227444759298333175148525972748152947474413826220232445880207895605418262072365402091946318257806491504369477360198422437639997219335842715513603174803517715608126952119738272665346947646908869773842911301004982637039765337153922278696951938424078517715811866793963402943943178449868480325185321490222215095553653479372108426168233355424332598572783218807741464646219395954515885743726597281383369285510220215159404547878968606422179583518366261988470974368936743216359115803722835808983179008767014553168961323636463335723805520632769373568300678434055340367547449543167865306756948285331247909799771121379460603060117057213569964660080346531757388684218381332454447679145154011460923678290978275908186337364670897313128889639395456787919649736830032067918228224393116618125862059635989932884474107562012773611856642413280094513443792773740769211947638657843621424519647409482000403562122975276772500544325764324500079258900800829164120803737787313963335617999692683906841536717544323515588774121453904981680960667374807844281477420182452953875175979021223002078493115291300118459890889821316869270277807232314849450859056520701879160836001699719379906138361753973233283624179125684247284203892875357063613691308226226898214540541096498512528924254186305148633834470759756849905041492233264657732172616558419884707632407586106668406234262589129058899761290342733744147229463323538242440075172893181402795212076758607009454066506417489628790314142768616132234042067931109910992553214432445729496882133042901324347027016344942227663723321643475528760998580961852776585643801006334581300219341898036656720329853912145939263731819559822154675013427378881680097841260878808360674288594926581589108878582646604236124454287043192876049135447776748540571665967622094599001984563220217526325409197995050692403589337454784676859238714300888389040769788620536202551465022808832870761773708845882056231538567929635107426870438423377319704793204409663632901220483909653608809642089197730223447931857626772066923487454826442611882008308246254843954877685067497024008560042857753048259002508204243481589614402464964534017715639590570557521250218927995689483339430683485494318522803947336837755698016666967046087048043611052303304603851480281984367181918327860532204430456951400149214448965853186379953396271890513548343467009382527429237431202861561636842561947010364816471438831158036662907917655664022067332734081006305868689367263500364070403975237451357599848427245102659835679541939599168400402996326642381414207177403238334168867114121653900967608809076691360856293687941770145067751003267488870887009835140404968653838203262389811776354858833983398742839531401019527487555947407606454718835550857861108714361641650403350060950261735980136561850055995857867450866816387454982686426791107606420710038643249540549694576400500478456559493568619544350219719694882242631573387246925820237578579126008975073422917330347065911622035603359931955436624140138546629024694251251390937248098824974747705726471245354677417058834200089271056988717175056189190583348034742655103365819502809983712270255004249946515012182490837840044582877236711300374711767629776497776080035996358044823585829714020332612517931135959434766292462991052575200496140447830010665141300530623209619201658027507723102012225078294464338420423444529155792682849506159739889184791821095879383734084686434563988853522524042407057380183059004989743203905151400606953188475718873861152572773620582401642057873912459578673042258430458995801329621532270383819401021439583776211240959584480324346182154224225288874025090894773360227869115540925033899414280194599742280675012552788534468169074031151848355950503695582039366697569519119602067864642084574940385056299884091606281915448339130963682333491139204103659692474582504603620604560524731407909083159157719797039473815229956233385378488094175222026431446121330080008968113211323663445806734030155410118150122287740710278167948543675467545372122198375232494219724306877010456294347618612600497241810436227877875001244689711490107947716212464266937339797649447232818919630615308804540758962621025813037207491266085841712339933613146472782799657880779994483609901849378296890763059127976998989429634012572078169420697380730087523681132308081687467287762317412572443377992562716822781778798059357830368215272626207354209767214742849964982056108845208236440681203591348274512346963277987003922157200589755334536723459927353453976461024554751060547184962022202455933930917856973609401424218407219087732676119250631492428153447864795415397885108709183389273056838884164476382968118638418453930078154348080741083159613846970897438265854510601552334499468680551629236541157227464236767177922819232626632136553492772299176473820957757625710914569429274791482408746582071731825190034054397543986038662178375914076842937164164746016902021972962240273906614198063866050910854047556139245481281906347588634390861584296368304042760261031697892223021205733526802702679506721473551924793339824790989974217619436988775349667870950422367667684237178288566656070579566485958356784471259314112811070243298826527511537666675872801679650906144872915271141744953472129613422332623353151168430865828630875136407129092932742423549985793578663212560528437656320288267390764982573169191819606763584541544646556346255986306159709640918611204426448016818097008815925485846321196243641624690397332676256725815568201990169140010129236865824047280947261553541515239358821982665500261068953571154640166231278899482256521735940058597967376505920511514652841866499181172207460224536614730179218376980954001406892885263420248756539996394391457815422442040354222681450563571925350287814380168559946661361138686401307681431618418434663657173955231757310209147571243482609792564313986575271218748074437031534690629668280365344262984978839550187879344008526000030949211695466621156074235185833206620073746050267116208466919094812445386318450737796962180790655258882268321390490725526700216653546310846246041835341341684567273471626116425778436223549877694348265366063440536482132230534263245819700321642906013527297474676740257927682172266879517638273468354534104296877809188392848474829809764627875145212172232419181129948213509098488482357828825781617838989112054208102518119907141918463654596894957215169490904735911264158282581699395142188419620682411264550549304305041944467649533322180134424527472194840043345589558533483448054040281272727608324768430055177800787053564112236840163104099486563455462384933227699574404459022460491643830910152265439406208884440331229466564326073345173740361982305861330383811737392252740960646355821019242701603300768389880055410657282579459925607084978072045725352248758288101143925763702157013324187136779846979138652527600849108467186361449459046708752218189223954185087287782287630909190662514243553563430810927788922268464113447474485224202576011610763269738805874623868190375786403805092689975133046112277966934714743501903167129825643545107197461221572404796495374803294124480379095273609705273332386795056612166978613557271154251032844931123208680053516315574342269317744562894764165997962319256539989083230620392214012921837660806986695734003774343896440609950510365248012797940798379267903707403328256529835285992271598383600893980536348379544162768305225314153127818991869170960608007520567459804010341097038228993851029008693632548203219078138401065334939599983357699687774417563823914590035847548845663525629576455061012212075730003356231831759294852152335460742158295916076040955189576038592992620292101767835366941841953110989711479406199728523404184836278150418056792033231277723258802905859603684130442314581389311978578118893695734699060691198635106013357274245683631842995464581505579036093212437953944780730864125941089709281031548832391740162300752143728107702746719561012072398927912060850079953055261379528619842073273359503386512104784128246547266518164889219756409931164420991973053991186488217091223340972838564423567453883103945013111486174704232962420323434465206313867381912686579219566087309389015059724468855656890108244633246967572483729047351859113874574699354144781146760973603780206135331088440581171019263543380988242405947874498562097343669727268314223015645885612868760147450966081136197489271431152389985647104692775959112527647266499748997902205471066931736419858547901047029822757576602867522944213952720861581715546281598170789166573488722419181883494313275088322462523663214861738294131766809804912149414944032127458125879920074292125078013108227359715948509119071229592053817133104462800493284718235975716201761659968452952701499205162837248407562959121576153448080533545647955082611773524752169889413904410323958583870862661527536728163849170757700056441660647208038076699310724975540951623062903673589154945245850790611061378592731993613620709827494689666681844386110699158912440674989650824345155656572950880815798864116658624481486017371118031499758200367681084283367775850693108998400631618567586125505557261388068403242222714264631227815467386820982844646191504194563953771995107566616265438928882845431466915855221374260257352329377189316721668209671647281803277636524019687996909755056691802774791052817141680956069428575259273840261366830029682219747280868872117821361388151930344796941801771786873961113684783436516047585771561468058965081618990890701533181219499871671595944111567734912365191009161775135851580259879225591268766399943784591458651613882661038964104537988241438222683989545822867420509055831210468610938393597314900860113641236410610973567225796903004971827058018632356374321839490267182580324520319397866187481885435223869770519450223484350344935566118262478746453527136514347384725864400948340855114028212739665672176351872058868435972271635124809212151883766406322298906742248492104655260964524652744009482127109324153502454780871842000892721685600014642306451554080424159775863975702849135228263126793397939744861295934480325463243927264954547642389403344868931287411631025385535838249960195616403200971723089348209966799721655354718794144464123268020783444428400230480393266277051619042106013898013073173487846915963816888401930948648581491881822713280599086218744957870511429588817118296284872890738590307159058273413765491784152704930877043105021072870928169733577244225960921723061867656882546925315295211825554923579682858850980158258343452119680317337513794224169651685358194263168272160242897349094468829124107935403062679053932645729260829718882535734879846359401701773458251312227934542015991195098704964202699785314779178686696115634636877441456693581682150002838316814473464271616307477133595006097295489710362204998271922382793659783501924012139888049726789780377124650958034758775595522191696981743436094709048235661597534846768116996608127944833729820137846062853998556532644115494360246956569774706106870769297431968927495495629471650357970760724631100804397778495194661626767496382579457559985761468817151983929817191871034356310632619584422887816853004088142053381874476733921964934816955361268845473041764939341041245427400945323512139271995945076048285974984029536719785573629260707731901345379860251235147948214669831721889571287480632608231967792977459571737874585462753264987472890313591394121517681069206961367418840990068266519165797362162608386726150076814316488569761323347005970626251015001713125982496714892577250550445512106440660676657285743167936548035655192458358354646163541595372572071657734623849271826130336315336621433970378034240299282302684159698019451877637794456460222725269895231543058051720178102962308276716921122065276203982859698760236427774768442975735981733745573552799589411727175123462750234764019252836905566920284676025171223926303963933082406645301372340928680454788536971169930563469287848700365109504189977472659204325900199373420982516185606353081145298628791853945017628856551519042525367474277716202664770169536290326240340250612418072803286261784100074350076270409937041446915874235060045346841295930210000362526808200479941749042665426261504165110868751782440457319801886413468861763672211434243627184452744939743478974762873778356396480440915457881737756390422880116309950858946133181364178193240021422005282581737057400489207200243266306955906265925663982923651705405739645615342422634156183032375792126815560803242529863610407495590442237530970536652508314219534329964316041791973481022818063475273716452047956048566088587363850102181643322529607973186236466292675112512931616067525393207933072485880879737261719642784577740555894686593219585527747390162785955177311700477529424919657206390288105713491861027004171982746561690783689384549944846759846005492091348663938044998054428565110089797789083956354364684191988281116542212138586343632474693630931144496309921344191300129463894700297774986516349993318693886336631667508239177264841695145817378798804679853806637124966573196952609180786282498663788049029554362314076221342573770814007718315637092077120754848029463951547043481613473776103882329798297912630998844054838075258851083741817527672407939040837378435140327209373101189932790192952506939965476989971523752241347648665679264231601585122164712172169635394832236526717961950982109415526160959014093774977169119850023943336346837850349669143258476005789988791593183111126619282382067188676532982306322557920747411248812124829783095394365318208147894839099917848166178515886222286938497617671971067016540250521077796512214789848135141149783300074654812104842153801178619204323724402152477825067943324133638558560037988928808876227455527859689358412327160435590436808981067550269510868503791840255543536130780155005619871414502732084973579797650986279884826111714730402407807594528900976667172420310112829759132787505522883998559078736943446754113734453499710984072613597900379158424875899028959584158231640743438867691362588760160413694188183743751273336211187428103606462785321046179975292251467311065184426392118642056501230031984938905265277376597178881005498315317379443310894377145697094790080607280653847161384874749589269263045201827785077857513581358586741577597323783922510404247573525179508285716578682340605365268041201114902464395230667611642478266540207896103122544609557953113751568925794163740973816647826852747300754382016405888178833313729504234532372269246913016347596920943610423931139184948286509039184726405592522528083971539573287065900596916852379302772913460283525708577199040475295978385763157407614778193152212655051108238495215633985362994808896320697045450264088166210914535217384764487332120968837796781666948696415343278317746519840224053547568619190444844652405422020457672317591416159566781813381990375262818464815041435905671984682230694942239868171828691230503856850315130326133532950616245604747544551502085996602116043879221764751462823511893280587110611461406676390516360089860110948525625273039241171690831337162511551286667230719356226717815756904591999679521601461012724125548893436514524445053684660554228162247992585675585265747356559819251096035219479938811509335324445397071942537988776075946534689843195935172553484272520088562933264638853617024847037007012466940716382495959786137130077777449636786547222203851902045703902005391176638646431280555447304820507068545200009528704949384575634102030956458622241045326637343775859951646524326421441887509499274276417545655899013259327312611795061070255036307264169000388091218540348597436602726115048328495070610399587951759341316450962890566005582584764846994581455878212695427956692374370562076169360530384953425439446029866499685979399404788019975801466080132597618813845100364333889512104638985465138652884037516967796556403830331445488102674689560267256364302985740033283840511830016793817719745695840066353973043178395120280007889312433872137416305276451778088402005388226359481450075097316333563849613801362759638536916525286142832585302187807612754076350222022520675804240658776411963267709865514577772619207539403043087778978965309758500502003250366605283572564935447787807517334377257713541967298602419116775773096746741714849802028815224429161573013770740892106839871893797088224768402148907662283112030545214873312030924500279671945038976923486251562833862798347082520674581532098736256551517374908843658124497261076400395259951921559344167204970362789588319242827398921391915056864247614608281652588320827298507914829566604666460880953172313903411935349863379543313521170013075338036676347115232982439316538360212566922236102525263315243300256098506169985988183920355405243411770236925864289818929040043950865694189866782015161170710419280861116515559910769972133505221129752465575125533286765905596130673093322272048694820236798992429056272568601241049474276044285718518440035724433658196548566551276730298431280384634870789461496625470577132547930463517175379378357217603209934002991509708002678868529491182418691054502748160516774928579293239223050514936251130529628035013190931214197997067400799357502945003892538960488186673463502097505300186491481079672709265217758220881930104366711815661503303146404523321760509114895012905557644786941109742870444532874246022425283825655738260634593480684895415300116269268484283441627298713250829982904655567353235175819257377734341167265569846162634424694258332476470002984121472342823571698718684200160953694718264845471552745834684046319181396906548471321882976537047635398070513523419832641743251415143081425890563364831845000688498779511011798444789426324273370175322167725573547491544681893659094903832965330588197876157004861058516603498632879691258398439513631170023893511107442942492550534710472525328768948628159019199702975370151455303564559721437841265284448412697682538696448983686101486928932745836889941819506773953488599672448188760549183518058602442650460727194697070157667925834934088612980548959820888525134161138073520300392747914840113692935637404339594765920887574450326657060824350314614623399734845232643788728443411684610967527886720918203280245705874750887160772128779119556823933824402064227630943489859516196023729019710220256865642451833484007526430330265903436407909308437438323738288944287287867290293143586813794251917106979097636876916975759189086081542468074375006224273367442238507769398194804133020014170627011919729944011457107544154075431469176170827279975910584095085751787322430568292642366414735775179628070133992430307830454345485990750071866455744947737913151207528160078180555600046329032966605930657175056776441040022683351308880296663529916577501292574472012943699037389876311211927360033571812916819352293804552794274940350305487706915749712628531128876533218104999815744787164904583275957778594416436399097367660244848920092887314967417982914905234168274988916940686929339081940671627252710944723948587129436083476875126270307718303062552279521779480294280380670700874097657141971332905234863176912358457495477787692346175757964263697687041263923502819401347738279104499189057820589523497250662799378786988568225148662554777886263532804680474348256559207481464528709590852533225954973825295574392259537390300631359203940755453245062488034859137644974724661618168322760152412717012596915308237009769272269754455165354260053395259395607415105159981835864993112347262941176932024553450505316740745964364862736542945660587344191915942466124941115565855662982301051929374646615003535167614814024227366802636144709928515287871785072514082602037864052887157091287100811315613608952407738767160524473220563083708732214822159340323584614264468225960865489652610210916164280026034816160025569586420804073217975218065161191772095329921480267394839400542614079353652257835235348100405219773383545434455406598610841459010090919884996288292784246695891695840483069561989500519783507583676148596518372192041760407228164962615800609125854196896295591927250135732142603814859065227398222024919214779147808942155216185597841253860521998315440654560033835992157349057573332879803492746877199117442189540955986377697326126065942854371420172787278655597770470323724263881956753046336652424836098974628381984730918687992498598568306148707339379309438445017077660794394561552096736626528455539027184055603459411243846621605459542120413764958765535192340729138693839099953671648091086242392944608589288619187689448001897755579552761160319166958298519408538802859102091323485883769127578581872041926323825767337241721719830025591970551373973943611767420169519788132122631290636670050563077094813985884333289041009616270564118943695297102985341684287086936855125903147210755668004498300532483972867607852060402217823099620095942086654469284728479849025709661004289332294809142471086574592452123024194870749633788364331694983525939939564863493737920094395434729212154583686946189296694578119985597323414987588072553382960731328261148473650305687360976091666675307444137691553602531210897559392227393200980044725714391652745299731519828108116787566988211988703939709269536569758458981357275081570035045486100569446168044654195603955900749589104980251346017712423895401176937660539626321831189073633467677783959691494603669754597874178962482189298513500488181827173294629526463870088424034271703334688667669050961437206157187850610342311991894367640932065360477665467245575479789812711139121836054722448341669132640546901242156043306450692178652362488729057884723346073091581679422837116854047023888983114253009791133144821210070546247722264935819051494764748273950616573104107166541893149479822957831897012111661379565928947335233478506690871202616853399893470849892116343015409057027076548801420479190191356307603731309660503551978069145133066321425999162207525852269292320722197248065186642931806737154667663708875900480224794211048391334096795917000644240093245602076348489144396072597005384282456361612911751803272289139993407692794576135966369301377460532835875663554632169908905377229431397910202830447551650567182827647914759554273544319180419254864810191229391958518905943510422280765371989695151685566621591445085735363580187632794618583826668821848756506248524964492019010503051301612686913291189858780411576371653563327471353870019162148960607660342938840659046170084955124377125107415460146488873389348640185270476688283896075106190722209940497965435074587976154573155087338812152004357631689907970233083545150313708183132727468189006033314936231141539449338006594207148307848568222203458014299554746507565383622673601085520404918054335745434173724919589365382332998876718354229272961745038751601947822847863906241010108859412066364285107219809856706823978498142862945089745650952201939886973133625352780673910244672629071713616514455557111879286621206206845221372436777517488900139384637572188466552013401419009921263570904266218773507710863850226610751892140601657831152151269155154617473845027617678410697762369808113296455205730483281208592361983698398435055737870818841881168906940995679796638336686315710353134282760112981835573270585457642973737311251308202241014818613940361390037155324609419187346351622137850658187580371954652549201520748552304424567313046033700844286784184834838300164262169352275380261815151946411166663178599841034331700802885691118915381316746021858453830430005082615625397131802413292339435284909642991903275765675770066616727215119399541157616497189622553913653762407675015751952185184079269101130433026532237559074860534493372040534671070785472643071656121139572669908667034180713616609608379300149832925986506572043558343538243854755869526391678062044035498485045425043453575076020383671975722451999418946392682690527613199222709962525978058432310939956589341619384444705399047639851228180010646230794318367603072607289755191021317623487695665371654956914249698105420382064762887158745347311710773914365434066508274591007988213214116355963434119560253820524990955048152790921436965101495443705684893615209439498446058515599269657086366885451324950669924391093417188043632680004290345122938397726072438786727474847066426914998422711326833447587504154785940957556138926954375715310899116202217482154681285330964678310049118002832456052631606383916827466273588250366163631497701726343975771860479285415849955315704469715423900324183720435090239060528524226165759216539369643819486982229275904954799832483092802857232525080900312567879515234234311876717151196797455883196029555762028705973500936880522648312219991549014056014788080648266634224274222296851900052958112803979093500843839225339110412188805989166527118857997857382188333463910975647111698125651790621189587492602486316793495630355080657036563405874348476647321237338758974523050944027333039171086264560753671498780173520046785526357143394067731648148048886114202973729944847627183965103122330270102379213694772564181260920720841768238836117895932115581182775224777690499309581804896606019387631938293741851408868256158407858022229708270572923523805517477118424700141788695577910913842586358229077601695336758212248084351427580293724104963757860566733686110785890706713501717802894014971904910784224232915833525805026952118624205994757657956460999006838022611354602514963408935022788068690233779869991876956001862478550968115580842437587224215594201231424300472944362488053527229426684760759025083875725063565704821509784527812799972638882039409607888281582084401140135811635614012524388283150592020724718418818844269976623885804187670786234954780114002307293206634653792111971151355761395633110980220422215782030745258074751488159926415614760801183374907218092226123377923351492951686422611492052752892317798308567072677804337336365933740403636613425747651137338210092517143428937314291117736922019159603246022463807030512042932521340859383227375644436903618693466859366055283786119054158762156143667797402151461181562889114549234640477293404657981470480498191589628670955108395662300183362730668279526161559440477351685800995489523933959458837457159551192092928779904811637986129647950385989532082746766122227058930861283980373652051482585837697481478012621256076592928846663675167853866981330997326958019239317101007479683148602981948192821538762619471880137291488786701685851454729268528031739603358763403051025153999811854292999354667392734722846626986332017358774682305780934868801222115166666204620786607888742403903706428011654632611852070693604034761930208150945811923990431713228856695875936556989801706579681349264988893062950728749667934485360250193514340038701313030252301728285318721023035481896117797911337592691801786804015592034441329512629386151101341209462493331913046530908944136929738478854873752254398797405074323652673791994565793892886077839173457897598511244854094816361364462333339890927527871129953281899292453825632253812231073749230730804047202694075845097802800917294235311115698586777946855549539968477477835646371851367781099756211182700670786417035811237161294412671391567911594840791492162252629469907068440059962721065615861460604521913836725519369878734423404919727108503781086552530632004459354817556675542527537547328130805808746216553740904147478979676994160556013611561732333327169173768675452183548684059128255711903983774264077359602591607562203928078989533143199021004117516633596478129029250713432304839618244872977128776278449796930329563869885181030358411957105156749503456845403370442685420585550386964258612339597315756024302404995595475131059654744711550140591098247556896440160966069434568179842075119843866520450564078826110543890824553662566371016691682640166213824074609877999884867117862689514228817832288106222529766772493116130037284307185098068407370833224069124534597723156701699447049108026501537092636949426576957205747282492770936591447756458480274003442640225434605486880620111795545143180914883773090052787806053713523054175205359223075020421597007161226496999836395769865430627973685512052714170602012552428704303913012642349366038573259663733098527143482106398132355271986206632878613145596267187504506088150389526746731995885387426316131285559249068308231633601388383826470635809962887756473107128958855594767039763853094558208813899353108602014997689991456711742878016210003210995456676084689060737362301376885399481635752491969332351181674766484886815981360772204830707978659439542289414509420183747236773969624261872919877821384601600517682976468207948642163160066326400141389862774218287214826790054899758531598725358254225499513288506192837105462568828611497146348002875377814187162414970421585399545734684646382535693445752165091435784063376200201640703486180940832292874683193983334473210687607119716671480432300112759799769891486288980639502712827868692429153127480590742312142085679395922974371954630707119860311804273432419109645095201102707554970183487843650056175464535551788305970102038491929665843641536533608176333511807668858467713207514837858182672693978860825426306901798401679255261580100925512075956487272895135058560148849173872300557528151348684999784336315120703790317333032687597033771163661816326985101888267126538667452322039138401838865808323340176715540096809332260411136208943719149066431288928880956006717609631794212059842533063340157649344380628183810811476025855668359142629092487197969905177931790969824004226412899380303859132479513517719584443820364718048047483934438032488154515914358734482479399312495613579812071758800642284926476581129086757712294679928962069651949174296257966138019224807570693267660088500727117070635185615139899488766979929047861128218096995905274200347733398666615229319424936322920612469563280323933033241571741820116336130590802689856994023807965832772769716520590300318739390949335147581285860101002759173444680833378149381987778389805360344659183727607914831850236352679795572659963792021103267518023441382364209754040560594272458724202400470582990840425421240234930411137768956656335230975279388823522401583460234665542002644685320576817523123582608742954818130023368478827639361877643372615351333545821753926124384764873738504613915622370040805537566620407969309718511382497472658254681961615253111687920430751765034870988653487464028010529004601573979394420318409975172342014053181653916442422739957863912984565367455588100765037344373001407868360512672620460628158149938788598575988644970076958869238819049109632270809458887941638085973798447818137890557682525161180733977078008713563804620112251478321010870477636770798555875923721110116252096587914907886391473643861430453092889637354786994936927255693740730651594747747873365645991795999702110912640471797370844127968587972531736701821605131774560790991582370938789985010858674304581090530161155724151472730780072715247679245700351089194689554478125989196079229365466214474382803647145068247629456595017446462439759656107517713116942921163911789058799846841864835028940342055714619724166227279356639162189069076363421383439504776248596141236702242278737147639399417788795918483924160484947337543560539565165289031229237297956966005765685715857817117862105520266791682897357498334668115450549394220531423691605805962147545097295602265987538541598037642224042494672450021754906787715242952716876247967367251284293761799825832592892883401261844634346461219330292359096958447947314844071605804667845621923073399941530404622831703302350300997955993544791576196228850219404228215019636040780273987945446181286167319968429777418321136253619698259610055429263838551942502191253456803250848673361065181872987544902233520436404338025513591304684458273075750970013063869970175078976274502896534635944871156643180771062722782443754280798548787292447326669283477450676156967546801031297567246499043433189143877338926824632981474940234185116403894811549331822281163821084680727436677885666775362668074838633730473996528670248922387930692720277765708476809622411534881616273077697191475507189525372441964724182376988729973865455679553752362917502560526256812960704090849080698405545093082885263665840117147128569939755021275436271037764952568763244364908350422786627975591353814779381203847935006500089908635284382058635776755556251170407482846937426172364019369537354599995778623725388516611279306036535657770038265729785555383889387277348994867702588279129821216724315139383473275043697793650852903662933512454657688282186414940538574823032918350920950597200558067994148456049069500953079717739864259770146284820361780911890271488119783440587212284612950268288151993141710163510194039466035905175523190127715677283386112579988838766632391842798144253189919836921988678254897643901543938533314732858706961353578854079730709393700788498260439735552364025597655793037257922219296273007728158739039819562064967608204596696488764616576448024291145604030563166719582053725603347586389180294000424002415289355107608101448316656994839950721973917490877344127265147156080190192088314091167611328266129681969164809630358501321672844547278215369563644905105471078916217957435339683865245825003064621929139273089205174446764290893308512758841041666726388705675393554229345427452343443836618618031968597790409696217867910487332218611760057613872341934716073956091101580485313193967927575624281853488334965319436562871796923347855556652032028219756128764072729988841376626063467487588228828323244872701400777407446573971489698038126773611282134634329973459273236935105436348661360594281510412535040131432941732424912611241713296666042292917847397328352761817822967407487432568536153166398588523190456452596740590386881968140025966891383787115803686611736160343170711104627986636137005140092558534799297197586657983645141359685466175266678932760585147238731304211220996173184066161542154425075478552446575727099097598393032041331265014157678912677341575094977880271885870457686816854119245237329193591171843566249611293680659629626283691234837257335257381690042510316493169277203678535152302101391273158521195324706974702053326532497968603353934466475417116662971088488486870913474269674804487952823694726782237438810449866439869255943122329485144977869628818190602136542374853136330276972377141810435663778971701440131051427989435838866757993681332108852792098258420911669670955506784542667174086994759677556828832005860340738945370044292732569223457596809819730121252034140802097384127909325408361958870638802628969663304380953875032691653863848142640831986759887826281816878090423538497388737199742896568427097291799966510352305485339839776508242235549411830498516696096683215589221592554749838257237863234985384282702924704366171847190976604328884893708267977147768219853580522650885305752511810046749651872742796687232898444822894188053368901709937633907762771955150033640161779804671909397902666515778827450192556241032585226010380557253750413298520424099493778611490287998405011566676526799067099892100404821236826747652817616972315356735010732045486664334557042066852418992047618119336865382477048322738137299991721329328492242096811590287241925357671639291175139602934367186406824961344152804568790743316336163182830775918947798137521059592075288330512873009325225015898940267826625683475403194414362752995430253808919190070945737636213036533957046876247991185967489606005503457209174216003897729101884785021161323473333148316294036588757147764713966578475304342787084564486040803148280191409105061332243179991476574387187590210429445831882473024521870394325915783519411181226834500639655705392077994571103970341956135324701179405449049893339002733605043737687402184916154157306372601316770106287577566128552245554787552017475234683497179099761214355666988611230864562036057699982519193224634139591231961291956400337673566629059557340552542052659581752618548323334080887791356251096765876938014871462952377956690217740041338010171347929303465669042652629241239248173562340803594346603722362198860744757611584418806508129537713180473577939115883316404964617713455066836455358804016152333761090112908003565071861074178967029239010015469865508216579022870977815148726709937469920946407159629195521086977658588712621562480267454679599778438364711712665460531699303694442742689643083940422490914713177360745137276809449447741284421005261410967597504823009004225020422677799384981293752338468736486001006602755238609847472878508848750028542945530582924287951324991750479128799124413258844008423535388603357647695979625310049477240232949419631322709698465785483760811107078787845123850907425149485777047585144241374301390491196328089654185541275103916743498388330487216540004605753409527359754184440755435990692254824700202645079072711787105561025841520391025572948194544599154523970093883181734591310449400202510263832346893308090232798259955345255493487711316364397298350098545701793634927069275028219856179892637119001413739449716045438557296094528191904966917354877917517174020603555771903750678961840275361500166196615361967255473307438666622555413576363753166830904679230730700327543497463338235961725325000421569022369585420968485682086080525432871740447251328147632916362272983727176443822922735575925722810517735937740900462071365175813679080323963272712796373163330502205601101109416588938285062051210998076424332829036572152840572271834832302911202698725153691815267990422832565374959637827443035175410788710999298697681794579237529779109115905909630522025213453905596997667147943797344917615556442714768253236635591889610377514560032649525786164465318056532803362028018592784037269275993386206238553449717001654084448988870359821167190171893088078875382516668026573861237915816874336008649343332399225551382056059885561770426176073932317978178486833333834333122249005224128129914403018468043739603884237267238266826969237266190713610083718424052812298584352002941542030141287357496834030364378572713012774235500364551156286145084207496996160826149760582577155259920588054933470734633529173410898346302610238139637232383235910935980624498546301882940076158592830526421774515819807566074019196941591015898367002220430984719288055748869803786772038884759481425008673848476684839344245957016662706449128286254350856807789372997251634741098169411990330265255388697600831506659170041977326015441591250581800878417108434555121930705965325024212796698320829278789310523434916634967768433353841434557432611215298912089866125002632586827063120741898829908098075930636407602006209976910543542347384398722760266437884806304267623877095302925720702000012318247474770915334968833955326585952408928502465912363853698886448584666036392106812827428690370251668138225034692021300017797388295284406586824462218996701289382963084169510011618790123653835563369946260440316003243318093495182952121057159631874093541777104737423248112306723588438055898092134594955027711713213082360106454217255747488708156221409004442083881584830858398396941898079010652676581474096040891926802292437916758711608206736958874414772210818313575499527524670099891098263640923246815883550702905862191695487453401665662735882582460700676628436391629767663045978745671063469940418740328820323786180054549064652028792159085730244426750755199407906624193682293394071801072866218680138430317794656756070736265237253085543584687745141758116856358984308986661288067807351305186974263925269337559799312090376888805128711092308893405634546120459213863603398093009168649516745890863142556847339288230853465935457055188266723705582455462923966612310956750424469288344391602605594890717611606997935219818723848845962325186276380029165044336918499320544165141921009717530924739215888853680164544900873899382135531747809094763330686649161531477852413349155393270945983957558216073704142605335321979769899273690393831450998467601977404330640140756595975626437673990054082824200232344718726055456100744857423702159840096863457496907844357745651604839730841275005107132949291410084044562364404394706291912827157918565319428313439434555248175884168622597582759281464503364657901613369471905612208269326552201713286852426655861786134445809398443367679816859195796526097609382025266574050391113269051359901524871000628780651807497054159978018827090799720944106081209108216206378516013745257117523383677779168715015881940533993216164691479021947740407624814969505841195353540566994623740596666890249842748870642789975207911163120667277927028496922705762292137007603529141535681514263735511162373507191418638046204641671224837708572024452431177143868558481714929947090555626497319809366369351720022182895394410531666329525164712944954798119612528379105069035774470332671486104666028189184515239639392446177096117810254166495619765753184250519866592773723376230035616918838035697643461834854865729901433644823741894191901962956134058001724296312610675707606513599921515842008073530482014359551162569135857520347402784028822163883884955474489689900647306830298282547635270486813083671428264428573077777878533187148974469924754386598709053440112231381480246271772485210096021408510926990100740815082598863133509892525399868222145683256332363139020552607522776421853733489225840718793648260941316494692086738479174553122946823518167187000582161584685775127899107708894547361112311480723276698765003013659115966473687515184441207871945692878083873875195974205909380014692282268292691323078010370576653691607104032755527482268573631923168825099278036282213735505797619163792376548306773816764523538159809120979847675454100015155962498337585149934242270280546354525619608576137491705366038803696405615495026688477821295098649197955771829624167555321948558934937503701359512055196913889338664589657226478383216030876182543150495805121596721954027148966094517728994203037696687308528210868796190925040182674913863034147743054500200925703541484710801763950695594343168719274253398806837504936808245532135515752399105029292921071254362557037221039691051025595486042817311569470130330391565108631492968502066842215204603768480051278731620497807149799088914847215890441244124931265769222134964219819064573651503160872910269094482440800395298765665822832789989361639970317247603255454923010465529875712081798778354789255110688046766047329309183647471393948967549069001183442512832441982551598007509570246754243008904690325040339525685457561060993741979403296401772084627164579447034478051656781875686101584829454364240944153831621535241278319799372044865740892032090947485501726116086807460742894696236457862019563223403239782517231220229436039001339515702935876070331297463952948263369937367833481301438071697444301889457529084397405423719610811437152687431942846410238503985717358219271970813714799128332717500798417068926119686746762015354263173581624591124645139186049570761879266856408450765770469081241279201117505732995106494904945305136262319400062027105817348294215898696359966568646908264806962315835703539316255316792929048767455207698549680944907336888867609209303762055399298301872035052284769920952032433585785248677652716454200657951266370400899244840694672850946386537313712682539222308440604881757267449473747967593195397505446685305724690045843815012619796516518062592542358376548953806227571380003209848899685577076308085291615797161208827691902790533343065647098040005376679899676233271321967450767317737739467354070134794699304785191486578593282120696675706442961835462740154376593998391668051230114692131628639786805110088554183765172725524773970590458278571891771379507728340531734230223097654123135453657059140058332361280843952461916863569321639913804546276127898609394720003308489807276350278319356152671829480491699487966246989422154205271722483609008869026756078324459269592085434876048828195393881101026762304919575299290039187572342609213968711670518309320834777187004509899276104300331382940571649459064444153900434300602691578200900772735618792002739567477430835541123827206048158826896429060719352784465608942619938991138691404442934665844541083507193891998837600713379905600680252861319142471726800217566254578540301992401126059768020162189519902566824766944378500024539491537811910167143641686600924211754898565219116531407715897850480114726095377541695817292076870430968322646175601358211311652403010873949871471298958179912796467793643813501782687554665779341434421673574252778805397132767679396589552086955626058947880174802664576995735513834394385985944986747494007067916099762742164617266864176459799220956575386829537754564083185588183957894198686100461500617778058205521959354925589657886475789996566066616653862053258254624820304773618875771420489471100568541356992590399776330147745298691646244777377005946367636798684159956132705849830545783033829949032411324044518294477366324389912019276693184753014393271265564016889094592712074778959779832236006440733419897642534175483717292511260466513459998920505384637083569535915718623316204558752767261767764072700692580662433072021015040994134333895846721683903372957118874767510710488920571658811877592793853591854079248994821917669650540802271956666927242297016124764804255424836507874738233596496032772409328607026857176033444781449030636156777845052759144080934250649389135529835143483867282752125180564190022609315709377370087632686242352287948765319553151733389604256402937870798772341768650614735325457410131377330606248545986061485222329026379234643171003283435923617761252211900336527699871380342608516987964835489079206310115709624590174181313175581139894566441635244979971892918461895817218349043578268206532798560192925383405687225836643117491401844491361066569129757054153637902187651059254959755688979256538507296871964731874895440845649251760854149679885696433493067366486297038846457226982171021144618853609288050160564381202799549848202928319523398624708956211401000881417223071350421054490721458077749186929942802401987131759153126713347463024980786993007019811336194189117898564156606172697667178470396709188399443969205299146076900292089432337214960672242878948675983996528528858493279489090625812526647910565272434916297304176592829418905027353640784656667575578624609813613793805144159351175428255081837782868430767981936836740672240761207204907897240898465724783368862631530139341867232924880407422504009725144532176363437659029491028404396492640585098893780500660783162695233189476521538243442697832779763099395506290078913554653514945962559140001424481785417063849050137300310970294804198701906838777650674437156519086325542548786612326460772801233409048594759722490023442687430751574608430198853201917526313834277841123735860921129252837685764087492355222612088964969115167695997071130088695251977251999538838762829484788899064637110749387244739204905572282871684106412900533018886073639124248190164179954812624083149095550558225048570172444313925951302193039830673884878898464344919692342172456432172993403963600330065940439069348926865911396421551388410267631016558764507166273449488228746900922198414146131507507843987784943988144707172795283219412609949398661222875548643545438265944259660007818469356128837401843910446749271565896247476493240379053283705948370517125833466225473969595675211888055987508066561600160337303454849115213766907190261994183230838648107785529066439064972074443994148275557189117939175252319378531796929879930550562953313958407068614806382454460572936249580789293444472622970315008185798141196972580927974898421493796140915466567166369694205510556947799887498387052324303991696378739224226814107032608316193403176703920193629070541881935658648582269715510022724848603828895518585176888494739049711357193730875042402207015064896692831170416191940863426642338867374688653944374117106942308377135549044071463942733473999716233104704872763694274593158543747423081676822638232808674088244740262532808994475316708749374573028207561719392394461640967228982506886500411775340384122499937958986128077168577190334648328540153132250107875064723249635535488512522403499912231454140598927328699354472113086694440041304348187484621466259785909078435694333246756549488261947863296092942685476506917683851291891243469682111569145035759644735690633923963891922558759590806652655919158513497320980354714060945160712007725788579279139944502468503003158971600451585264097991733626987704427045138794267050902104901735598564092501508507807848006028948326120250225578628838221845690314889961127214510795455824845590248514830893275820163386525332706577243347184469253762130319938542568193443151785343406791916268796036075927580536369076315915275496691947056513887759418678537147152334280730699412301351101533091319958175648506022907597857662893536540819258266999633511269698689368971289665373780369054377711910809280440894362301505466732453732832393308525981415556372459463690977226284083930606547700215868077902458501801809500210384516558870066324921912579629608302739724616847525697657752091779372106720464127513900997398486973984604608901838613138592724338588276888579479392920534274480162198092186034334275722612232546396875130428270895564866770507308758794695870665766527130801229055801136181582339186284625115801996388040336099023365256757940916974290703795328494381841040679118660993739985657210990678133113973776372928675706925287310869026033642053394751157725241417696170667741985140764463402751109904920753303249495440583523215333942918959533125092594243313305025632707381520134019255056507417984031710116260077666326152649613609071462244582529231887504063388356915018089643056195463885173825452391373875316222213053813788849235253316443825925251737558762015360413698303176915497189553858096360129368015894845997323130312892283824844457454642022133683178258921595567377154513403293415913073453982261068662692085869934664941754406419510623311889184478316457476287011610694513146715024918738028081454290068988326079957083437434149493038131533480375408934314543217016762420424876465046624645196095061279314867240449222806037947536017409618761812017269489818241307997379053490720089947531867771256497955110105665709677030289943798293580468791813391249934801500437265162788221603407300700826875571829582236397546743960142826064644517487456359347356893698982898879217979016468378960880851441447147369978160547112144461131102206972812794632254687564277263992997946963279258490249702115988757949147367197097885643737839565360676484215159822687426648977600776385432462945029881859211150833114024816433956646267509086624761336063806582145829601211115131431264463787427958974735069540068684250255453592011266326654088527781774115347611099899926795535409200634731431955824751485408891372352991685882502108211567927364138290161977296104363030282828209454339164161710682676788798135666235441760001467222134908369365428623948476773034162753671133075338827524095416377292591826469193991016131169042859119940029375247731854770761486577675497719613884198825857050423662709891925669110139878138152617183108086027854613148160199851299499649857123077415580999858695313222151024262232494409482180777609355768182912623461117636795602124461707170902787982972468476801853918240226569110955676722498316356573341905331723226210512555759198674841096731907467129297261081826975140859865504008645686599559102549933093741493563658063308244873032606015302223107444090298575398355851733971337385476695284547289511016995885517226467312780406167754907174998393277643608218163756265759631082103258494079361904560189131888643240338471527314030411462603481059436115571340320715496303102222014696170170559516925517790533418879181650292702020665838288244560684092361630721406662346082234308073309285053222199210281471904241810406642968648353389255909034349115885477461757510283889092192865551204909543024962365622017195273980198887281744014177243609152484931109805868719053493568975518583602835205291322244343574396614902707031810168363510922969454635692845858958630030400030770155820223568098584477275708906662259042072061465393713233804531455094052632119803429994634605250354306818746527418435492325227158864040392589670319213025730662416245371935042157317917551102605209334678080516701788666435391564244931732511517529370668530906107635976933508560391025010468851423545008525458999945980424699327261312930310554812639118945812112921472169879853250817290393689472587511041646192301552727115635454147449174826958250439858280668049512032978456824057177449634352654492779514494976921518886865955753648711453934324219275052013709274038892001977448452502051904662288828834627271354104801695676692177169454756896738473479136637317385069794785775708186424846266251068719309221971424490286392155919736113544873372776656594049896029676586375037274292251271187872644305601283794462454489830618410061409104459423773920313763810850958556797642729999302348199981019958942738095323696634547658211113717165213197904496668411633511887324259081985183907192384418982728934058978857885284712314238219704025063209269387533340715300617003667870724032513696969636953441108142802215680816018264413053144527151689512712905838599582571901054411063702358691100850996224820937408183882444118899003863512143945100616482022798961410013597567880318255381989398775236231006262900593714140755388906012574963802963092046982571745763649206441299206735377547184563059283947169786267828620587901889997380214312811129305295370501763235791605850334166141864189068469534467524300991241258574280120155704781264612528341465011184796661857033540598429434136585284701492442202135579457454828121362221060521385114823158323307599526109550725675746918852156770275991953613600047905071764065214812403934569398777701930676064353856196001631466646857660156833893184920636449866303028931530031929887612359440986919197021162343383802002631823938486622437451991928643033377234164657552491682768906926925328084065351552203166723522114184491670745465337734902912388810923101074201349455717264648082614203748413537544266690231844193187734987951898133143460717852478095210689598085237911460575113454247699088460774909210311102912556843855808233250292361518245598841926875602576041131798308575471745800035571961824335436179090894992596265530000620855912023068666578013328647644997781280708274159539266663950022301746660149424763935359238499451052560832569430019153770940904592902762340703272512770399809370761426969790700614223913376225776866703033599389131665222671138780524923740510386392012752829475837096469125026925041453385732760205175210106732371538251609346768665489327606425864224785056760914399639554190406825177512996959915916934516461064731722013030515409415461135257951714383841344497644188149102062867112273569457517313495447445909099865518495242080830944913379825893323214081669674234510767786499298013025562007604097511903726664660688085790865274142451130182587725331915613790360475146032688831348996729773299887260781014691882777191524399746621804803345894670264295287672710768005198969221157324792745624591181724027854386091037587673541529725785982632477115838381048753378375241094127860806802620980671183122750249636774101288320745172556066490863365527956074136997486995974909980164646002749489423521578354837335803749594986197266956057450853492911548573619303420680676893222863918986256033146607652684124108454408465335437797246462887905396487760957683726234475615148979164420679886033457931262342126929085592566257692248792898447691650134427375224768545275044733854310282577343976505139110617665290299551797352225732797870950282881013740498896205114856991535238411654772950745025555406151628039486558845010810317346126839375353571821341275796188461166749772367968872295454358920897993447870996230592570769995607658022102525080520796415350748752343236598953200153949904450656490905195016880716348144359565068058719420945529007260523268579267321456980665860106511559629239215863634375259273606559329723490045428267014696489838271316254547663512771484365451001149217830952267908105625981670131215147327933980625319105999953672617919060614782882518645410995347690488167983006697779996546156646675441881436814461756247440961556337297143865135763668427989318097500374454529226576562150436020445616024909887824495049768050909129375856509725394680035601536693065472974812399005340526734813465312717956794942980890238626354616383187070595216241190788593537335907935436901593442838126904579775694242632522772167748129060268324820736712562172643862166453600344308927400154372710919744372767331196199648255114524840856983493850915991208759525389195903372160896970532262387958679442279777813592432246568729633399212788593215725426820246531229379025509279705311827312245819374094380854171930332415342494439020960138563576369457194831895763198219728360001969410311890790793657333777683129546281553139837636519342483443548525188556346187905464325204357214021354899401705830185258715120947617074643982148151306953418410893205329888616949247542627629815469924280890962837347109405880705499506666042183962483394571997690037900823978165847382360649841723571153078144206751944407964665851166451943303323846540366228728865392529611924465625072795059956944948203352314526996789770120756940935506470557069901247379591646807613386879908928453537229001686958112558925844657151804708074587695643338244640130651689804908089848621221055116683707685675569400675908025946279591852525421518738165274177805539916630709806513447328607296516046270419688431903858846155549064882925389040552011912679092834785129577087270317269430606432657704142446538994656231971676321720885036487943271880869025108311380117596946557649319941043326648787067642273561680908456035264494312572331624670838763603143701642245292762631880678681251853839941252604294484178817555320751664151567123719121323382212400697997944481299011492251160957145820983057494151765064162248010456572806648685496409353780155937586986709669850450523141104015883142312182969911193766636693987883545366094936629532986657427896781384931505664271722092996844932764406080744971479641533988509637200710677330337644225278144851648961535170779055879767308029962503430564871862420666080912647654389910022559989252906030790023707139721491260669074462730591052278727011012788994823639301158691054967254175170554536411142307469013201184815040772108847053818040059798387846831346658259981772931651299404156184193355822717863710026953445915363737254241341029838753661606788460765263847568365898484073595120817256669024231772149052376313871280955355718777850524067394951698916093102816575617314292381016803885353126943225660652680423740754399000716082772734347108809173421504074355272028877968809795369507779855023259380197265173511716663090695725334539905649632322945770599871766452257480005454722616596409552231481396836801547004333687902072644177940015319958863794441651574818689131002998364169119172093947701800062959979289059717373537688713503033120363791130707453056117856604203944538598367931554706424238748741778229859135391641956620826375635029725203184387082991682178374327389638596015770006238988590227620117687505247641519942217320470012415874507464112395547878395602763059673619786828842043530224230064136355975371378590092168933504268459951560831089385870065287823211440815807559621748515623502061155632329369254804179204038630134566821226863215956848647725149678072189676993847613105304020345823214934285629317404512835436107702071988841303127203862093910791857346702125914424548416171970222805848241556481289789711492985014729953508124526072406078366432937078294835189386571123499326044923456295003479086918940464782485195192784517583889170179778270716875596937035988093616858290201233102086572805727298418129328826380162067870837530002911486638030830761214430317396959319370193868015288141893966307686010117569806622325348359492711313726603931381281562283310634613618946411702156915670991209816529480116193078632193279866823720001609757573421638572332918395606028481595382162247719900016455379202812695688140863593725487707571830300868250626118129339167731941913418042099903032869717132748858493389898405046807624099384776344252948350056833042454530877256724958952628072993402687031602446867998493460907349704122426584748278734304807027915902851828970388396185602636887743366817932222958990821574269517173562004804142088586294037640739519661213962951126591014456570506752543508354305082358984350943630653260098790009489403792568406440608745015135912996918059351508825671738726139955384026136193796747430645009632896759547177477590068312460381425287362388678046558216794208238660208296855588603486426858264690220716853968441804965166767004266755156464914132142939447864603764084685385554467718543986564244654584535498824983790956702098477508672806938818711541247611210504384859126387861699168012013664288701544869756269454153561539306808026813876543368497411791995831941914894883708297180378791830467602306640405373906519420388300336877133176989183882046573635070868454549669113796250646383810711056626313898556702163981995424242314857387650148757522572137271649702207466266296272153551740448055490493315322187229156771707380130600117243218018292946281570670826221928434265812761557141493828159102550465474997233083060853386913566086643259980060353054676935849138137893780736254154035746883754868588855369890966767297231184499228543373707057571261738040821470611923921249370799864085289828549276197591822515331341079075268823704493147409875711049939482275160239709258643182885407241920345275073456133383715964732279660710596020272754646459972290909552608323556048793229921338062732297315614912720088046491638330749415487931211103858438445376325262353852231810093235083738959159238598763296141595207550188748995746265048175471704164396526073178882385811376756064600418217446662429581723346417594298323602904862228140845803080455436901789204402496726668087180748098542334903348585641715712816523225480035309662271756420281098960742133344369313630884333314477078037246288479961132973669007896556084286213480938482709930475648187921500225483415011191847542563631091106426711034930730823077685813279195054791980895270938669962275283683846210498308872728599818569923547645644326705401311120566367691471024228711419214430067926332606363347662047248907748888981867637529473634508559910818213238858471298617469192170724823790585837417442746417108920559598554125619351014481828513948202565312804632142821443973023940647256568126316461834520387187470222682610512621548175191018514231560622959568370619695117985872453678480832258835169989252546082699223386704334148973233562762639066313728733197833622151644425375854682911279432945027157691861172142971948758248034338675406540771698608406317150598091108006965748481518780198713573625436127398941733354146826469836772123813186700040936720077694356000484558387891634322726714154296871358526725237558136985218482976105101056801837442944524657921839592986394606500197120022059810763308388239279478489707375359907736298889585977165375151939912067502267429462982229833020941917792632088383329291191412951751518105944654339402700311093921754825903249144600868121129036915159081439714705375236242056377485086050343368160746225281499925595309745542994166804642106714192776782544829397479637105615245287198846771354850723692031443779470878811946729535625799099648611404323663121957513821457022328013763519936379305647745431160940623508548677893257274276892329001808933895091956647097199003190241726250096232071310597891093847873856858246835989909382844884788296471202515498394433248774951872831285168129612223469465519621235672483233179829434586256873489881280371725008800495547951639167328054768565211149345426672511622896959516203398300649794610279018603823408594821858142359291327344292195771381478587568284154561771177006115957332024563024862852235211365463728073865324103165605398167977388162405614330587627923909884985241034923351114588119273640964076936603930154596773825145852471187013452446467452966685297048252252664706769299093170393560836504741743412941308653537416375062300378810917203294007628478159828086467279419891794818626616928795712499002726966799137489463907540641306660354741308243963129602966936478071140292406511449255117837550263357416363675823072829414333419286220293128590359071451947836632520278840646008198405638705668544033139060523495703141607896524034152194961738148908256830603689956817662558798000253885175806085094710591915984904541021379317907284225900159093548117122442267857153985975526172000871561571080046248944887386888148340537879747221102296155871181722783544508193085150704010236629329962005842268083255232958524857355451351018726903876547320807983303471189441416393769413827522183993223885624582802844774864205281436562699990753461647252276151321932347281469498199226992681588159826315875403619448278264621103273496734172185229950907766237371406313412031716302318846010795103813851619717858588286346918551204104959156256146828248304564789836871012316502343324458063971495377279352387023245573966202968383194296956069224019385546502249865300638184533268029671808279776616579871300959831116156697703980660668903219068035007678365459528498198915060682573220723487870838070744490012362051125972942342758581272981944892316417045590636888248964002214399567251364417852549645482925166538816201497642311650189720797675748773783176528657953787162995026252352853220471277048719609175918377396865549877216337387477939077086129822826355138637551324335353859116880464385533139902309958905130673066569590304527897338659544080880032916067576092036040673144118382166729127502024990815246058325093305089266574722480364322674049397516880661650566061826304307940685792643526888789921334277532722320106407780092375539802206626820508750597756209465294336553646725822399548138392421487146096604072340769678310254826924805983483408865128284649523058240986048945882275072863979364599134401174138222231543608201758595106239726749807656956113469563389640158110184034162890609096310579508220048155094529210005286694930301821858089304354003965517573153023821627130649056153325938979123817749556602259079321914201220536980133176252854746843893107217499332892189911133754380204192181079908901511520903579083609929585285530331361807227795274897520771710421857747209895595337120005722966560682309140699241190213922467570840091224213938269784817458912349145250714661982706035139827011253296908624533424002349546573760633276778553437179095343665006555113673767592264433767958489634329544279175620148516656592562149335876446749440916001049590510497368014543565965790631629407917579771277481177306114491591425957415927491460929507442710067659160840559183069266543287244845662915414096208249022331419977172306422920682916653450054706711447857761673941962967537202453281252243384210301852290127630852938404144316290802783967833306580558599886670434939083177176253376047408229409982610526321979535267186553918466108298537236187720279960165282465769149729466628201692524730506419491972596983217267899033900912642247846356361518370299298644699266025608356537126857831475256294603666656365497731283868957957244403085603719945617758092029053371182084359680917844611799446580702179927935418224017821428725670547764202339935935784566032799665083115407852570746775231824572723076439942300936428515536723773357377883810872551647206672071510017937982265058276201112489263403292972275708078819800324839825348532773085853382006871799913375795341927575544528678037371543089867568479213202282712104594873744876948213486689695711010552599044471937888626478438816740929358105313232081392415630395666636023806340366154587610638238801560267997879162427953347028173319593745532590031849866412408504044435969305556116498464403748070941970002199262877002279435825682860970868246485803725288320386294451571865125783895632920072539820891444137261472382583855333848508244980435049040423241587321445329339447099021487022603550074961387251336325998981392450464384509012909960194199645726701019748315655623080982009780878464542396675096050379626066516742391628257937087029229304410151708516870550984946220051247117971535886449073446271896823496453583711579817367377010487336627777930431530932167395907094288588422498209655629761283819954903955519093547847688098165940727441329511968649578788406286734246467013664536342491443564137694343330238136029856325282442653483320066664828888909833962089133329262167799831735399834523994469034501568683610052721099828770036024840396068998606856664320700719927059389504283483625979385239697917997075520980746366254685817158198167385613393660875787548893281733122142202014385528237389015204651994637587272716102411611220227529235970674654596690867498728918010716003125420737114645906274161228091449544230746676685891359439298430935443613287579690294887525489382070603841555605660710626201520856894644674369462718159057724256892202977071727445085250267520769850146791055311992859619752769547104705409450733806619453417455914345750725683103313553090274922047162419320139324296079412209161547052189774073898510200008414071734329780470001169485120878828606941782581535417285247639234656454123264108419838679771155994769193261768330576407770877145761211157098997074766963330441418679153376147184218914261541261416266803101936132992777556933632289209435505399775239423100507921614198730474517372841561408599734952466367967554399048380649709221789321706864178435598198092084271137839530939563060074044461020308754881764012740610792328849255952735528955618062799066265294090788419019417860130932675746385173741195563815246401662978612317110827401282716995500891395069341497444212221521634196229694280195317687048487354549688140725854477712239441324310133684347268213531194386736255140037205134644937580550113861011673634004954506413383417682161292046907579935694157697708388596344918636601193382023024200494242459878640008737022348725779608965965232942239209685916537865839998272050500302791510471628688163363120907634594853841521738941282214658433026955982262818232444723719644062991806324554775903546263065592746898076356142478062202727857132666953729576056399407120123007869228907130726224014794768241186001726586418422195615270683928864775072968092163182963996051977754178365533776773563324854704458666914880215729299784093086297581929644588221499232890337228962085877426016838658315607111356238837924611163288131062073276263687194837036907293965601027137390961113374173070534679163435260781277653274323280193214875490399059696093111307057693690261503785695930329651413985975812808698892993862356169296790345932257296044863986048472926776654328351026570364696091523079854939723508442956386351253954985260814011376919948983367964076729146798971782909749900658850917279135516451808546529876797241628628034903173401078092440966875476671257409399721934902481632195015995136548131615476250460037253083396274801459421736054493039158375127677534519918640195015782361582759602911584782844017311627332523062156346135530759006424438262685991713105219221958802869251070870346453854690416105906388823625396634639704831987230510164135191884832377096418556974154451223990269406800123323696990150051667999343364865453485912825030144349401335734075828326543575071630917038736931903471840793157074515326525529945402010544817255045486911975501358600061929308302861149885267357784581370717313450822074657781596303759206808197077028853737317838324394749339740767416584058487753242822087113770378236774337368009862027084439960604634421812150909202389232321691670202504765021073448716552957682081858179592545078611561842408341831741954623353080610007235465160736876875500085641520153566492665096394306590442824312862345258468592740593311636456704836678064718688182440763072506974232493058133110655239326530012593128340062247256336726037110662086235305464880425359357537811820461267811832854003514711875872917378066930440095808101698509828875434687007819886440911847936502529231235835728014221811174789061740021665431732025076744748137294826914572486890135396949473252619228886877045381390817129949173523148954514883126975834064070019177148754471749152273985263679773123477414515703711204657130404973720596066677831578598892765910457520483246148999278065623238667642874192688673097148104700310564147697343932333298083537003686409897315827463073898361932580798241166028741961314876325972992695203153823122047919150659949694855293459228311324029907763532740412337967008894222988562781884238245701058606723596822176088553578956301424260744417838125669528124363875158613030226098628336770248323239399106537112903090711763182082227607511253841938440875487009740645546529942007326000192862389320233427934294462083116104576267289189059209942374470936238718391150674713346895711393987395839087576547014370874592209198504156158513524542379654721813147533895075939534367027706957023102429653548984034565107437424121472589166600770789667476660619888497710481120314849782870014893294870908077387254979688560064849824871342939989782570051955081699899010907786453836428503240294412573985251867722837883780146088324170887633198220703680246195178238883554116416344818490957591913894504266097680990460677292644449117362259413386753108950402904328486837682757909247366580259944341074450266494782812721348035504520597424320648633761775030740145902361865091674143530925789125154517412536664246865442476467461440816957286815514397007743939701565884294383491789763310202644987840925185237725819402087841917314397629609390508121212997242069009094911964534032097744153709381157552777774824262391648115200707361345724471643364832702545771168691591689004112939629971122755119970863892685407430093990921872757388051326890566944329116662876554118007200116306372675338849265355718876895927877645505868254828312357403831334046062922879262348441594600381509319163990034927671558578089900033694205740183782428842655903923015592839996398526079784082633849403531866838691319341103277056357829939717030741019668029892762617840939519460750643885890433745026681189740755113211321950853836452801839684222274943825054975020861572761799506128493457208469913449533796611622197682500149377257997832968657879215053397768273242255855690776340361047468008928876024751256631189619383745903381005354637664390295243698986801053781691771173422264989223072862400331312888250127934421761717138569370213150059041115607363001899154086329543199273191030654041096789871452128407445668253229070111322093423390778425551964604669785160386006813992206504068366901769144647514871186827958467316187153967244876461165892477683232610210730232551968817843770733817955578910145699948020673877706483593996251171201657085895320180657546972608358643585101035075495905894933831634264991272353723880709121282121967152317778704707458184804292964208124042151622724137152564220845669794094730611623395383529524087245026715304429702944745081662468297930176921029378976635080138182511707910977631056343367825727580189685945283944022288105419825992346474582356699836747038604889837457982345933772044039401368483810976811063659285697499086903794739174729283393776837566563462662792724751089369178965903128582508814453074695132786468691231499128785857612194285939078458151144786802177665795675483758388756623791406600806763137106712977929695296361378585765669173220226062217344521413925203684024037061867929087945754016616081225697903377692000255666964521044653692691719847090098809665326881173043561744615826918857616797222814020410706991104992808242550395959623905586166084303813565738489846149235786424346373660590454489911465842067145431966304826611226166198402672590962695717704286318834493293031997437507205874975495396539318063421534431674810761625739945981298850780465713782596516692263847204894248595823969375901692975866808454295977342787695241842400363257216134224028558098531115489680803808585340900726309404002691449164646422402182256480564467912655758632748515343457402345118259521259833724275865837292716580214436137493297592723270188959174114368417771464144707072797547194165815972288750661201903646409228645613078485644959410156122263510925330852708503644126516054702290919153663431634570037503571782060887248956542532589576117726862610253848923458905794902548987211866881599668306610505205321354296418170420527794118303384597555562425418571702136079506569115839829412959651897275212927480026210851717401604840455145220055284883596187867725010690653879128987668214241980869400105099490964060584754924575246730825865499970076764379327522049947120396806499172091389987001764605336397999459726422406120812439803060148326269638063440755419646679507601019640305222900990763795888393220090011764186516911241531852968625521861527390774279311749790176353482910772543777091824664663132246967037667149380465678146159782370412681505473428581438294400787345504974786705137171863364900527607793570597673209511012419673663989298166412451536598290583707702524854989870703732777949202321357679751696277888805759209945998210406552592269594995121526940579168687505681262813782383362765286701550548010308570594135465715036745635996036075216591134428893813449013476662093139058771548721586144850831446545847394590096142521744211472407435529672831529840089823946177862460628924879230024890957786176479206171605948399876612561625305229040152162872404791203461322316316994863325240437679757362610847990927582376732786706605596093100216471421865930196790341671628940477290019725698482290292851701350101844070182529251951323881481572336740207943915922138145065950385675912597271480036203259016381864117132797734404290454595644632655413881657605305044335276585961276925031419862596900636637801577242246245815411073948826897369866732552735692383412633660650607713620483423536120656333854203918673260930149312965752314346046981842981895552681349728308978477622989114445928231943144770036258459463106180314876277069724228389809760188579776378688046822029875951577669157992566351843095410479350347528877870627829574714855448036928222010860763838626114127685419809050587533071790862008393015628688813930287080274784970778041865599233979531110949939837541814784551678067976119482322837845874867670498339598996278775834332860489671700294368664417071967654876084176214639046173945522437429324511118305186309622315997204395236385827322684688018579041658175644453045650235285524393189897669022334283565879271028546476063072090310629701944852008435008994922510486471266296073510469095484365222137252413393395480316943445155289748789038599333401896056068626639004786724480238978350855814292832286947759568868013374541528337038741688573006270784791222253201521293990516951786500211282247404624749827124315594820141647713648774344510946720129394982972962482060720026569970302877128994314826007908139453340626989576615239248241997304575425943323772307731392504621398013233182043725617466740074684023215803756803193200731173321507739207346611728259897657316803355077375780112502238726298947960572704325704497874793776449541585609072877373614520006455825482142394719279449364854043007340055824568525010907922343665401671626436684213563785884225358725886713440387880966828690031760177461750263090396660308717125442834278042009039679811699818756636621734940729313111973778496484350652377579619453867276474748544208054428395952097311230355398435286676184632627034271145818020878911839900196695083527946240780930568877826597865944207403459321336859834695012030666057186785860459791073781762211013182166240484768804584531581625214232708850844392950021706357761304628826917077954959260209383165566405645747363242956467011168165932369107570708889259644151481288180469352307070605481543539588027959526419079796070832687316306695039682643081010989230260262132243134624348510037591250699087502241263989743685255962398864567355042964998809456979402704638367825962394799514070723694771224255038703364105564969573070680786830280697065562798238957595573374697017129695425186915105075277034181053473388415174980438857150834907867161642537951282801922170715463069238665456213531235939232708082935235700997050818288720671049992865099869198300247273069773995414293190625551261509675234954391530842506683910279433929680367456312375036825528767792237752748195876637187941900065099412787859297982231369039726948001955223509499752216829063844039190105573995243020341073715988300086809577660703953186075282042923357484866851394411614994313761502322083554633173391769168685920703826043256459049924636651947612136471556526333318828921096131062303766501538025849387413702388567614958230060167816374664842336782096126943931530221030028263422484155546748218412736363325834532398392097881007707979458484225562655823858692625432129205404613852237424082143876644556422762880322696957679138791419864555469019778631711243785038995413721713971631379788591683122710388016845254713290046670019148739377247306413105394800896034497899844086480675644339064886374611975541363457661163511198927812538629703535671403856435176952792671241381181269000677524312389223900954087405453993868492583881549805493306599829321765235988588305988374827757016471470176455484914765409640999970600757961117695875891571449544328872408195990816967165902039843780599849827668355888087908318645390484697124213285901565885474121106977407393744296701631580261651304316229020378257414349604658308549269721453475720318790425254663034842788843115274477299684135179236594707337238324897490883437561438900946744701980430121875516964564577494661663112506352158678264489932875247143916428259856786588051515800890859451197206806032250849841648736799425176175521765988831163906332281788135814122620635217991244251640253669223696060880358306940204395332085982746922553576061461409650847534643691618111544570360095296891579536427108777380074772836819537709572698056741767421089216818379738320148557161763360701056645991253640133574994671521569651183031283202469856989368776626952712865161825084141203385974579268357583661039726627057346303649648879390970780666760890280962352221921285251855919762106699116749205458993912881368022530923865709261499672624691199501871704933114335518369974047724078986261322724586594316359415756535714938664841347791551625275879444982929573563078754680908857583609172772110750376252942249427449151423192530850853624575855522497172829342049519474206166558611081519911339523335854226622558349995128726094226800908069839215145559137196171409952156256710374731058064017535174639803174587978629591058530993356857045496597218505519978816892839125085186952834181769481769184458980652972375646589812889133368315134030473642934821980976890572951146432025387170873413890679169275532867223954629164152111796774345155763403548600907777305283662162299761144169151347110332492546703847605490716971448831748488560295699784052197296288165195213161560438499412268138628326148641083574824398664406076500361266326785544483754615248305322195668638655729402584649155075696491859794178729626011386509964475441313166815206602374396396422919091699181040671889192333952267533891197244632546757938539554097544188051107052192259778632752108516604229394118674269604033316154678712431624040721458334145974295325926401031575792014752703291380621337725846261696587302092090192239422981281736222560955386466336984029988157661615307295699722820388067004710201550177071877856187389160641745218001926712313403407804221516432458563745038156878547826414959749712661308436004184187686593011302791643542130296784624243786987453447250701092958733110293200373950946855226640752878679528385527054402867720386898640033238716314001417011844280815926419524853344777237667470484183005497322890126145098306365531243431734511593079981362129015183933806524156708316143242038552928452589777722913281836868540734616331234117913804356584860625211795298639462444815206470483233083771570855674630335158813497277535676946457675754329149023216678366631689544339645094827058899690336189678979836524649302346754653416426662702812838078082192584057495571788198780056633473108681726928685381604860609743915331661428812429024716180613960082829858472115817088495253738888071317872303815447448943340503346116434385113101588119922262077435390944298370996823977197627951781511771984632535627975561445838861464742615174837473485310955494924225212218359383779447314836805261977004281677502964246983486116767594074913396465944285409071975900534000350536395877448924625334874541639988315236387165324997458729275598475019010872538355144085705499042719063290885668843791663952146117629265102089802633393729009403213212462180358594844988813919571520906426805177709500881994891780989075220017767072737672980803716058950192862089333825046746862111680674306009728931607901729668702764946339708105737487090984447396221391321398972724970154566374292243682576655233308710877573207342946752776743044201330670772122027924363684086424877767224428529330814115964516484256190234435079350973902963469560495272200862819998675924181721463292569836414304281027767947780555654775308935110599165131261753573593145879825304634853923882556313568384821584982049494183967552116948789885181489700978583868183246364144748181206333749975989861605659671060046824752710600183901255792341141990908548779607412052135383193387657948380983164812081741350719436275686901472281777166828493746795867423765874547624508049762829993066714537884406547650283078148929746553665836553545135096467135414895076451037299416770626688626455240120201905750391184575628427923214338390855776848370878346122082305965728643459109038934670544640072738608668779335418187494935698190990189504823397135824624456047600831074879009152235149816601569965842601307710490815523659790898074475419318433898615188655118585883189006733380263675553684154480386110791495765065915174345212503544942765403689898808834158710407965655377056051538813098657206470715955915039851504107898219850602031101996152909067819333323603306887979619836052761296308258156891892446519526510910570705654497221723015146287565220486964418656078725186868904930301512885282161720185395909954724359364551025889897972046281812751937741387938709887003716441132167989266491921191410346663000874857024289790081580120314524671834049613709884559979001061439482349998221265119129730916774381353313546650507540651560465455206876043509082821678346247853406071351740249526693562691073633482174654135865930008583455993389805093373164537771719289267769903899940400116609829821894263154167586259927935048584096304715120604013600775973902740725583323773623940134156366421950933122276480538725087558589355498872877293210372461200393184928184096428460042269260862639411950236861720553850241012994563993074145607761583584711282625542468063083698924877585443881944168200114986360037664112346500581366641026197692077580466108079260731189825730494187028785591204512807376340481973255010532761833529968291789181973002506490323088970187877621922029982182287542614395743542994975413001194452583276085463597296227771771145689436326328589420883288980845928618025377447708678506620480628530759876833289351057024693311881918998536751985383875471243530633396527914968163862889603203638354248492178379403823586989265043875819382896985057393749595889955958331574962186973539702401392460404558993862986672281139383015583413276234327045236791860253855621206677078028298953213182361960312862738946663322122941530259754103557497619650343778346692746313349603416979259544054370020589149823260467290780319060569357701924911220230060920004999162195607644531219497812760881966226719173406394765275813605333782486704462541610170988589452218034194320957494131965256476025865626905187321648812617003911745033592449793027533997879348632887295220543310865988196807446446547300366449555308941363496150611093818660314827109529846189991399638686198955432400664186936209097864487197229056291400688659406566183123835798891519316997919042687364292847251789853792190453882334156528390135957245862855835437391082668535070216810591945325213657691141715265605871395343020733630619934976314638806110774279088326699235364096525282612857039931281899398411106854878737706832261947967571132981799426885661587197037002032048933295520092922758163795166730387415331549077984699936581066478457770141543532296788893146527178432948676797950661703906617801289343240290858254626363331730182747028037890805308717061097747255449221424318666764952303897735091130523987894010809757943662262404163585775076848923726694874137943298536411890726349135635821472745973861731125129257614269273294341827254236375374092973052651866967662514970136563413838544254902098162582439711833138862021990600323574050390557362403050461438335874460105604088387526359136142249346638461949329539031886317793251526937298705247711055159143395381887906134235848257092868131438790271556197867369637126135006849771207311139650475557148344298556550229022881941093779368440235578866748759442671604181514158055593549777392590239082813667380392236627150286912649734251205161208371737435397090121394609925639391248490714006478785542512263595174218187659694181296929455205796200100772781712086306878410046879998345203822662532423260738762434375964142839259082037397042817411948913462074938911376787146081603447913691463065789481552717827019757844998112288997789879738328666213574551278129818140755564714809751792648741507468179694845985888424785618108513637983983263451631972331679236646272278550615090729006462617765347856305279804431694642053879472856779161610303692371178300732963403941255671077441011088758453638536923596291078060677018216879111508901765273796029866786895282744019769417824328642989158730374998127186193491016504335468219455247592366200705688015861522879044529210181165712186603670693830773043522380903796472105427965782359540952659568742952252934073767817381189323637620493900301322929966504723274009718427578566922871277875318065438051653852185214478394140056264436022374223094211416404556593789464038454096252774278817022248633377462265081820463673133030403138548401188859844084306787799027044210052786376233027394181421777706812546837771690315378492196754498758260860639925214752765064222345280304026763704539376793090963546499681683084498182395927035681920407321482110848211967217203707956910972110971344424173021834552706304788728307168356187822252508154359139088689649833101581208201233632362826772322727330667209987978768483587191669655028196544571973671076950586155092217388091624401613876642085130995964997295503832631897924679506117680237936404099366931079708066597953873437246758441440144915374068636781468648578217793366327274379901892528438254325811045531490971158991142581833995010885382206250960470398979175973241138111644479314845859590946635244631526633001551275147099998099801992221368236208156255222305796291255060183583717094285706163818105365941365426390226031937529164563148444071967775294584373681327422422033240809144341799574624781284501350717511094360930327578081074627037787758962322758010670228329920234505727184099253517995521650008599155153405154260366624835897847549884378234458048357635393641358734895439817961684512791176360207821555510263413539407850239852292161162697194251971376448899336589091929003845299341102280209482752983902556397276260419130119140534322059477639053104258579789932574798791236534097909655322076038757398277000057243521661522368926397525267254496576839376234398263284602796360177831321253738276561212496571453022753743489267674914943708776912170086000883816392896070149674245015457395861545006091724761024805357949430644517679931480287804577833973651786749672057405588557790416184173310877851619755808149296085904974858747649783834630505305975544140690535281207730975072169370284014558855037446406490569474248435433665436114109066980305585030092439430525734959594685151434876444515270110943497469602948971917436257772035898601698817125080568349354958628746281830390649949549452537499496798485480853155882722669435937392715526047745665708347848166579328403404138776113717016925347961552571375591998750492458436670434787271013271056992712425759761378390611573052868038854081585455623150555125826603245650080075250899191153949646422456857139772861677818698694924952715740783252878035681771725170939773815586548360453770299556372295218971448932220271767067859755179185163829211372259942908125891209910160369744597310393404494307911188401013799317100886582748299704785199440466523662766425073000642196714671361951722804000622461492214545640781457943346073783642574407159224633463203562651654555081659338584193828035065503586739204263724420291663763281789468928127707865514769204730603584937706857282073958074903803879713872913786189388112640031889851672868960078443071542531356929609711388034140940616712162308551204391705349639878590990262210183268736853798865214377609617863248928177106480976572239958903856873990298897445593416593870601034326261484604017504371029668229322923877653188219777437841600463316010948973639890949047481869914899476304210833923491811003931249600460119874845678554237032187596955547752110550958142642529834275179722653429236176670792513647151751323305168840327418723152274330787217346133813042266350339531779783933918517099608325752571516129108605975680809253538017248474430806799581674420061271788580955901632922965141593387145816976363962410247005619353124678136351534022494594324950138907892360363081950380895611941560722658280508378299598013150899816336394832039907880189786867977276089466129929357808516349736000362171566356914064844272497977564958404352225117896515218857063050665513163353821540920056711939166016217759394649924442629097374239874816254976756259538574498713302654123130708532168079117270265917771827006919437120487613150822391724864470444608771090937419190440016388834834145693303231529343832428349628195210018176014541164725502558496742560625632510579829976271012514972946431709597923661348769276132437562728232870175132378851043712232024301746737638650338163572536786562945959446497866064254136442088619456912456664925388498151573551284981422205681997550137415889949436729663973179959977813628057621762544711410421460792796535316912675388044110210814088078824487407735099327840757866428963747536274748933009082481968984324333691553472107376324284768415750326397598906863667198174037470807682988842869956835605665480071697111946769134621055218196875388521721035113053263193532047869548635281571832553706341235038727652575214109732375665056080039363996877435427644707665334341346744280738977133587294683678054963200054060036693226797221323472870717027736034065658508538871033710960041093038750101190374353532906917785108802542933856727297501829918827018930283453576128126627640037293028291211833105193573173752709573897822112350791710802685607221447481876817299190115367200049160058141594212829908880679315552786231779477450644031368302231292048536621211046175427833459479480998026304648245276896383087667155327229405920938060666865804292542685572177692576853039951190011423089548300411243031263578660214746376926801479853728831292012949582489052154437502051722238713968677212441405860359713672493594868105727445149956895964127874218160867518049344747640826539817854691052871848685921896416249851670211807418702615249207650019634490113928072597006887024663103713480795955588941255411208089624045179156046702170669083841412483094191232826560019794513238570627671328770921471000155495348131330993801179685975734644183644379697661571867855858843968200335239849913247301544544857068542415302625640052438199240438740505364122687946453572886455449041722062800514372432023829248296234046284349392131250555087514659945127756897263192010091018693259093979680390119258484338823041842836982728306679459430681511593993334542313910785072333989418580046764601337819898511353666138619171745690493917165189581906976549361284127927344391890957634445404241283573577947021382118622293853973780999878325565029066367190116489176534510934934970006731199552563662709168212519989521210367715321545090977111645504622736962915200672951734839040210179404781413088184444638331459508341168110942277554564313073249101465152345287664813189930149117141188717809187304932496943893117497742052369723213717586280184548127542783726389465505374527635794884028213062690867785060447417019523067474891680727993835751591565426911760337018951474869471893604862583565242183683554404284131412949914427309965346984267520872649179248014408659239040855877413844767880862031561512058184191670223867359162502850551058825037082606625360086336618647541837284997353935225896866079638290254809672805135177920308316830006293600656516512804707181398845481457681076981322372089144720482772027599203900291452861732288883614513813263503079500044216639715713162234734495221444481724482143570151588623176530519246016384997989747166407255133599068802489111082727967679946832962293657987068928057099698938871554905222849259233956841850945907472029781862445253976442917591994387648716614218270358245732409520774013478921283533531721679877468836725990301829749539332622060925610409580542530871654648590008508342561589920258859862663475156663346714010906703845207207040378010231555642222720020972091961725461088416691623481729180875594795319549074575772318074321441636315735161953455912743524156048724692899761690944489125583899028222515381331374569832923424746963238079941401165089163039280831927797735054004174835339137894696568299263973408342278598240651780693336175403821950260213931541683157031523180371601913034087004890989651954151898699605118921549497244567661751640064604344625272456784964400181750721282130980270787399966324461753561732777202678106856811882510495389337311487379073916913393778196240654053279383781555321236589077396983533805291930221766558991785002821033494678236235598636844030794104335895374265799498839964109286337707033404990266689444873698141894553278670268337582463901578151299379049462881076500764453199548143855360689465086399315879801719222812405699608390956515477836511718603796809946346736657446752721689938710418040473530415894466011970310931651266351620777180397229199257633839482027113654894237676456530928881234040699986272317982054635249628665120438960720142813738202551334009822203380286131558142735087419109038855508930920134593683740140719609711894599482259224294594472976589421032293771373256081105842538902245063739659578201133421223635054459270238369207794871258821406749729684023080984058579209196385584302143169501790856326207664281952810035559732707067887732452506643502179683284651739295301471495690759324650486901423210036518191072810223625280034813901718709467854279845864297706502317728105130870583553265121481348010448409148734795429695027184705662048293667462057592319510736701692439772568113706783097400189376864753964699336356116985731697634951142613309146131316202509903360487829156470446671419003593263300642589064483687095754880744717506212445018711876088589050738640134640202083140828111809661174007535787428345634894324501946111743396577468586163632539068103902709795539215392827262031018344746317811612455403156914474565010995483880785342631375604181383780674889415049936313807710496896330288846158287411093363932226843900364560659729566452452861503831340535376231128404470186363854516478021514597138114786991487930239311688249674082172361377866328908358650412629173825440266377486800167198340192645080378813197338880224198609528072743809667881766717386068017417876203513855332834133784809786792543626465894951494937758300313318746512771124419098083567394798147852342165620600176005948826553371413293752926358247392124645310959397335552575279803559409953564017506321454379932912597665850724875065497807311849564662649916028429395744462845953720228456258176836102154702777110852877149698228797712633953853823906899230544717769993872414266226960715210976583116789153220199088486178115163907678583361830312952777024223205276421135587752339633720492142706040319368700205798348215780859671530257235105875767933003046968692436332226620931206218325626525654745902203979241820373446369966675463750538668433400858654183488867278942049260853157244559488048980822608204477245896523649479405981321400553589806351418363870147694311055077526340354789685710817872406361957429815182070113678433456362893623617712663339276735600534217412219588035703231403483574805661311792705396667049481657946675473093739554362505410411603338384541213274483027821121333813284319995552856336442224393576109384202710047725729370749547787526597356332628560459125412154545361259022560659272194742568615051239091635339414094773492296288292271850285888906118893284653772448607109164823226868231917674898636620180298352010913774281143231134515424484895774898893363596812664308235255917407937415004563541545489479476055378159191839917698916463376517885175820593567350377959307944695517642253109815915314420957777486438333064040945452254810861993880923208076149225260971492126261656593302046944458097933860210589055918851120569032387668042834899695887986864570196077794382507286225872072967541249239656797131316799110295405139029376857717227099019766858720006305873866938691913261144918274183216920834258917770311883295391266242730377573011798037911137653547690089291824830798651515757196809553329216808710140037026700422655571913166548408581087646814323823948670764229020437712784824847686156282875515182115055667689297611651471207061841520889311482453018782060185052106164040039731363200116980997631930677340086790302563018840685546848731499624754925160260799600813184286052806828025150980014167080029691000832822850269943800588656132744075540752294487642173936681055167485160611141910291830012644092233477885209883975881031366216504602250817341596421918616855750727808178397969490720307197572766019425912426250973740802438289713555309508536042977324967171845215521653886353465764532039274282864296470967843712337006805956085268862600453903192422848547259434677235678061564557284103499852518294738681811656280352189688877460175005238631347894292854729589250001088495715480913668744672751980930718308210647282094369219689309226708941776864267417941729530815228493007011222125507681977801392172761211959640083656148521529857689533141066089803886759684505799094173792164039602836395099058811292593024264304948464515829747190290616069929571144833604079311456975875272515259337891397408632047722770264444009873432058303765077700578708895134529082225276160752468454162449645599877110645981178926076565568777191233574256026708850962675815951902525427491954101057986324352019651902115081868441256956577729537096414989282837995256226883978868540121521198835907032212127991956014925776130445627633286977710636297220361285822039396056298769769343743512272450105172865275415785543335468014984405190350246749416551478964247667888333944956706868547368001880252216920474435585062273666591405417830362575562253631449683329836550236276785323936438789167634830955561515315503977935682761884987178650909178327035371544231825921088400048364077580789513121067341604342878133893430980130111518295408339918500183368087588674548491331254007372588630154948906330728442385546210651759763563832541062531755707791321051922647856365802181560904217664381700521357935462980334323351756659946328669007450689027569955786362532763693048454275063160605504425116478436441530171636673921830986311248978618327140986614351581085370760474778759771911948449088636966242749883444376107944735792691384416995870456983638032678837361402876612747524394453498866207732973539351806564481843317890670060120301795416176190152276134821084458772000638372436640597954311780584669112440396021856344151362767236345127492424455124174217269810575681867867104509272742262629582756844532297825113488255544370568935888959373962374849025064080548788441246580231587081384997320003489329317613090754852463376438053559230657869405890104621445259222537886490042533426035786512539201219900613128134442907652937222058668472270438472572038820088991896009500514983766269470325229312429043935827991117384412810747381276403559210809760259548209849128355247416613704914538258801812108882590578177801451584126803958838992221618089571394688140485873923439560977485677752741496844651956752202166396746824352375579391365205664003908375489276577852231934798040218331942175712029121989497225131936826099867130961866446208663707312086079256575087467413986546022041727165808193871214920476664463491813611174093794348075771258311652109547535463111110816749171270251322932916959760354761076837919892853990394654281341743381876761467084389466795017406840450133930935156715129832559750260420481919889663652942739478096062050434942529084363838241959686537033195768409641171278101628871379592521695253347063087924083316657070308054389545385662370272795814416735601652485518278430378047036509245492989285393199323345412823096589524228547957167718926080242199896964288049689133916840701538241079555790941007481216497472605767261821953579180887519858885254176490887891882423030374997603621667239467846001455843880510363084447878529615966403558692538777935908941246349036220626465646980200652559323775100169640907246525359322186034345174629576223400801638693343226694075975448565026154763235292788041253066478092532791864276821366284535823773929934664390906324064137598807019373647672487759673843231157493963077508700035565596598214933622025186469281445178956994938176896007070841096110392560891195916523141845005378499456988932149676149880272781925311779996269738746836133860996930870708092363105481668208642859872334418379736680762265976554443884916873915934703939635791963376304218736821615268161446289896904238462352928289819189345631647129847642617283646343711350503139834274491372536519480542625898586145519543065622983386788345021007719597577502524375112949113012876299356889472972967237159095690964799835020970806845963334298423407235739983372297749595654800110644022882121832336255616846692071626110147484861181329857724401472450982180808586156095046997069992537904117476289586576348809021666059499683698558375723315010804541889364236908912093963683964638620632784954969981099160042390103925997036960323415767858063833500362458060159302492063816393181371445904816224966574507536889006184589620443830398190763687272772377618603938119720397126222755570781028237057921744308946898741452076499493815289457722472402141881577817070736578539176929690379859483600587741940202146854498313528940524312574830002353955851615646708657558270772871354173381981116779166264919444561514608206399377122212191578115183632628847414055303672877958274709450799075425033064231352379254304869576420530978009594092742169704315493422730159297372449748305349377917544556750978302819754237579417023146786425523451194336569379636229836954666211097135099110882201395990801028695833220945794756405102844015203345681445880886968370573713529657543256941735189947342156186211093753312015808613581950660276946810007633634969985731024405045352275055394077236716351381267062690605615689891944942136377349538599749706508026784309466396011931937256142803598609821648332890993366766230035235012738452317673260312336760932460176508703018242093790102462872625072422586329229245616654177609064301737761185246873971923678975361551386692805628996033065958371414986450230966804542040950881061081126695239056269052942248262378711495964230126262864958276848995667967833599120467788671138494097792107035543695130596552005243615153002930870665502204693320832259815046082195552903892893634835172328456362666767764460919553749037408930748681989849406470156727756583034186502023358852499208268306250824357522545206034758750401023708795563092744604838650243585592047152801611371357010180980834794260864221535472238355664701862536890758750555422938060700108819450123585443589694931993377580135825833122104139445768924063077419766380804725897383305508836005192461818811045837577854738984173302409713371611814754866281753034643951662673859243643109808701507814656432852472118870528774713208351273519232009630592810585746786389825738025158434944321944879189141169144995428249459021642447305384261097772900672937056522763517395567525271753000248931370438080601105517018444225318969028675432691519037080526660792296131954886723188072892944526490084362992533326341785024675124126842534881361650805581449259050544169154192629206257824085712191174515915023399920334361608854526939214650169039640417211735462520660724807472418409539205832259132727265888210749736493408020890619776583081017630043959967247444210639441660869046236279869825387844420723727053188277254479017821137228995775179940882031945306967128615025371925851289045974658035712666574314251004168028545912017031730400322609702864129856229501401040587217993750392714227128296156217357875534808506823319343664981701601356968162640204271464206384675882250132913588688613933474921378672360091129838600982262185102526260517725465800522629017087765388331908501178268976685136539707099299234307064016538797452737627132521721725611919601577781931289319695242743146940460070237517184079354866516413877861869029054777366108105364407129908943479534070518207369631278081179015220774055537180291466227085128990381584869668214340754882739400720968570006647656775161476192010728018781565211681541781100387369138941548050830126795106004512855750276122677787438598882247318708931878566937388468156275822428924230095795151000036125105843790062015635390295690103009405837558815962479431806061337984282843887558626170453088776894479452265422253561172501643345526979964644220664049961501506596654529004011549495151896600010305230657093435532858106358526679690563550638061531034666580419070954475922442639742882892514969200343181185814103318397505092790446806472006702079298446987830224705719567668163752185262552974813989541976952364955273117389283201179082420704300010690748771041057599797426711924017261382650014031130052120583500517730828198317225552850259090693220948659011046992304097925627380350344111593251883166243865774820265814000021903621791979275408735043339241278278152663615644981326984448308610770414611751947477224338980653029138934951300218013044987427975721477044308115918068191237103219253510348900404823874132914911567895710247093136674256535711914626554721553306233591255102357388594501302510766074183995305725957999805563669271354030989759754796244616555945656867326450318744389456792051941844492414104206949261598364227999117293561056961111154063091743044285853181679054335658987965126085677327502938527546728565883971122200955188946024439219270865245669979597270330712588626500058785270561906539855275396491183831995662555226573684219536258639036033328469651276525071209308631314818123293939533735337529202169450842119147546672867154588861376828030264070556592154959971442114554754261945285832439264316381393349805008402214765674947716449794792301620495483024673075621641682298010928553826065454092609095830860159524228687570108925034477539883541218014038186729779187571703561181078349174116475579116086486435355142310324541120587594686728795182059765555714099674633396649687793604516772761460692097162634677093691324478132655930809951724503818332777396426097215869533903032613669266398699229162387915733454275936155326000129569013591678525010137009589746147374494957629253977823411675554807339157736515402128436148682819007632105963775914533210799735459169147092158124941199198200852227228159856538540585273744182196983950014312969443064960231236820790417655460209952691047875172440490979898447870803213134107799880791024861140500853862182804224927476175786188210812474401906620611726261498287946366250545209419880150986961246289624135663839026801470548532029366315817167807221762522767839725472892785861935961378954326212592096148312561971175805887170395596525054839675161045429605147394412026439745262185484446396955518266363140204938423175176546847800029964068563516671395425900128484848005804071752404928684616805246258685290372509959838680450807100976137907997751523950336805361251697353530036101800492340910709430422618264130497570742580573612626289149595251389374275225834925232251704774057881875325917932907538337672242414812027753699594521635939114389449703108504216793728267464350111991825713264825075018032037964560431675881056721699338197445989447043291471020279747248221205754381570410951468409981690880684609742948702693915445281525529486348635902221859824499215272392482525925843149062181741313854574527769615359916755739805725793372923145563213683374961678489650253644049663935425260360742892531286225667844236131620638895265802834024727069983535122239933767547635651411692197249336073209931530622646369766539208012451373265391246364793612478657837957374254426815616444885519762444583704116521701643754598065805605879462761148017572378101206083407252971332866806211682237420820050568852810049741129747448326410069471884733476746935779025414708967286662879036758824107335481023007776494538047496888437663310097804400138523696927348108196397817395771987261037393270436754601994815813798174474099598434878923150274569356337928206461809472067395556443271595488911547213771285500881819458734295357939708969669239210597754740029053348722849536749682622811151697777366395752365762032564021329926361262447973399103345380728178039218731557309790390641855101418178566399357950626219538470919791591885878575651469991473859634047634587983597961703315989552368975403351753610657771060896751819727632574161962638825098920542782842066333429674145894319137444515522544918474635110663998738118925948944770426503085763532475470417650959727985808161311506261873761918572276628446672050246613592286955294445531734789512807594855561942491068822035226256819607024051580873752765994922240378829583580369373393053320290920989188238256198266651996990756617454615336185522853727637290055422756111794616226688815378977398494953667579412764437469518515273153048532787812850333053093417667679410152455461008318970928691166853053939589972598867658203986622103900268913445005524387372388126407399100334338162721867555911013215576356632331897545597703492999752579892797231400082625144043904211987618634119635950134952195964631277892647116663003839960787637493233288506810125707013900710662730965751120321639758032571828720874572247472834538281093834193858057534956209025578792636664180912805894701464476928833188733677881821690323179884209285448683306494372050249979395405007601170095238058006474898081421977047920010266734171344566323100989881044189184369448763985363858253416207213959953381457371332736406761198836162619112555253064298577800485984879818305356600043773373737935515085510295743889352012399174232536064446022214297622859383233169482422256919820184439853193901209130057772668962364949813855266392641130564743119562273902984758389727863900219996677672918497860253968089663483483307643063418558205931710960701740774404968851674407986552435215612983356892733369088766077130092639838532506224369020856340824738065801669766356740108501151120439628250518433476633828827844960453615330780480128981276569901170191283005274309689000818633216063916653483595538680041795535128946985756188463907046541023702661400595863773327754136669529958904822550162870060312702985755929623768938976681383611110701092555610703146769340372738414938656032198375626643729621315000291578826165659766251711529902856550099629599465160575320062278842766372924975335710544281495267518943955786769061596112554587312935789260209971518189412759157091045253389316090264886463317996267415999383188429506441419533965623051398921965369026175268705506762004071684354492114763501655454891222750694023117653236439141645778878284771404150891606160358144957941234816715248549817689890398645160091145933784323470235035217571847514855764144142061234764232702848273074072317103122830199728844697969216594177316718202530772861582459068892876975358614838415312179460054656298612146906194513857446709273161962424043215658230015893073299419498287443022613538255383328954345546958479591407605394675211270878802544856655025315349216807794290186971919373942399005189614374299699654315242912486158838541233453283442316865306755399374724955626479470854072879608762227843578721473939465085388932518771419432456222383545893124808504570195112089678912310739891229055218827717040976949064560360752025347671385956227440038956157584702123048807953915651923984097985870671121046435317490597588134920154171638063434100314152899956025419711341674503498370675337347133377125524235361102431215293521831987041285921876495309060894543980284023468024082843434533591910154661999945541776762578338326621618832063524079583415533605510055090818697341976994926002023755608457772209376363030812156917679157225425522684817773794844694244285238091523051500050139030685818248729253295129520634677997360681556661835750286900546512349491689893639314063327349151773459932859639074089715241087442769498345443121157845762489093500319357943622727396669138063087291550658894099582131093572168401513517935128728345771119566726624593078718665538465759244536095949695640520109634339012603614392881084905780570500318881476178573455635298611395031930137119768818913824886719349765439639112389397723898254706034688195618974916891568816075202240030495182693180309236439224428362840808350403968484391916654976109989354508761721543910896027701773731960000948826928267165700226424330059729118299045539451936062044127960529632488829813821032094011438059001906643177198393424115264823834342654264474372595839498072949202173323813863656221847115381468317057306738526636624586753578650510709526994151658171819409397620376392506458026061613033360767755475371429800340140712588287201105458989646265027997170539343000272069248322837182128845640628626541169358928650009942219662552182201125959669361767318404706720374305235836627358285323069237641875899220375916270093866241618130955278370435799917734193245732081152646744295919291160911452214794134999261880039825898837983648956559211467545565609529174349182075656763497533856785691110965252768081126210004670762754480781795999381351241152550140288358678850588493469466711559302815780797386814377170394536107962760730700428479862501256982874248969832680238422941306696152063031937027784453120736984919038514481198617908588225782233112671864144843300045147743592767951912855363011479182741658737265646045057400152298478472869369744326810718710658770226857365472292862151293917271517198966298629105712067654098671356484760109024943252113901171857249961467838238786841125025193205651965261527266799940514626797746470632423302498606302553094164338455196120034570873224937863374648424031313933619145719493308734254574218778416158780345681023311779002112315828680128591304865096055445047240001429276561638071166747429375777255520725339562698648427014697386327216636213578220162278874188417304384291403235965141817421385938339601104434860884547845989889529854707704470971799469080336764227625875590372367690108753750933764143060855736329970414093485424392639526159886605568817797143957584069201558162254392215295245358392147862736492573742737629467085597663128367698695353854983385170848856736470324441125067028458867009162591373500858385908202971396098498092680697221167878415820044076310724032003490548004946870648368051245020350203115272362364501806826952058404784276296721464444247086743271572079302302188115795351340318387985371831554527039112933093140364150927812331869877697442430629786983712993611937411979978482635161952214293778630691262267302635184264157322126946873737956975700155582171591583136117287226160586469263691978410416074784220924707368796310149146655311835082618429448735551732332764496256527409563163340565327888418690591012372077554765259245848284313496703687429240945226040367188486900851695012849396060329494633118498273971742835119914330601712262838876149113673999256186191212093930207495278926117050800833738709589595587739289008154173563751834994168327502406633816437778363513789992617942399733146072565716456693105052983397006923931638866981651641481367392422330421712644517514417959295480016575568938850122890925793822407071203490023550620230692990330577881199773930911394667469867671865757957983809232182650693197692860472803105458329551686125317510307769864030748830792272753290730039136963237801132978884239844429259770646878810540762272685766467345798777814183160084936606796232464762338741947875343679974269697264920134474435627746366618861744933751141110146243266745426155304053505743636289853745245332414312826446490296761912873093186895268648398536914824528775867555943324794240678385142528970299305817730476753195653276188395086454650156222503233193717492850303679290762074924125929419064679396645257375250618426390493388599847459119996412673413840960763485029419571179018853336431185901716848252538518427352929253786758034619267133772760320154710365772643691163681763282795105968538833152647604557502855643763726768906340003002537617014570786039469106248159449734972313449590960120607928264151720194773024699240911078836858121401914465070917309271975321587547946996779536652958664283783057752713236362263927456403803610081763754975602564676599498546045694642319213438094174122083551225278478412747266742687851186741234685287083321740469093461045289942274509010049081911035737241490608768231298407076556306601142007308170741638043940373430185052987425893457032030352100763076990880353771717151906414056531552438454132792489360785948279042117759517690757481609710296020667724553679969657376281732971042477197180590731823535861071232863399949334696837503072840096658370842452145717412933474746157280122908079239163139277572498583631242662967556719071491983708637579044853881695168388337880130567622905517146829721666571754342822239511394978347394606711649902577385038618888556870168307409717605677931911704038569436915940772923551766112695812937769970328049746580615188704810390720251685281549455339106908692391888654425313930585438486503833750690382148013954931935821582870308050124792093509886461057823709795677630680991662153285188983744774513502257690229927892122736440121527138717462385107591422611628075087914121151868537415956081272654732762507998416149086869224189667045453549322188684738136446537958363804005492977188968677318000054165630920822879530426765169022172304873464787796795050765290675391581979094777098217804735115523624017152660054554607913078394695967853503559467751749987683805084417759277724479738186568007641056146628492456269532155647546154938240668055821996032531671647831663688248812498894815143347247128579735244949971778164085914260497586702989048660536413941554402280056192229874475025773368147458824848256586946679958725140094346120510401022335990551177669701228230039205587352054494452298589135707376905637111218681108490900275392161070675825285909923438292531543789791258179798249690736598012074576841325068114018524076253176194476980108350432762706556417121979948552914116323014084187025931853889797782397141264458708177767242738430579467273854106323505994515921124688887885637416544428273859939432289449528487847032972849088678308123857506749403630113765119811477664682044973272883458731053895990028611032121330163873873468486920435396323217013223100584104103393041873570564878079834967855010681396036193582931172026427101062547971167976025528576208193250713663135331505130674940384035471932641800705202996579919733082879068920134373689615734412200200527020982253778568364328576668598584071300448260350265790295854929781719757947357146861476952890203137755989541050694140003581656071689633975407443159205214668508098058443990126248427202741366064825184322709960634538863494906006902379050940581298097268870081511086739929261468163876761180851338514286688307350185691718117983073072304225495382468202186810586842626825534743367557060937153100838424794445693930854545227182725137539620210471123697474730664492969788784479512465048818137420569527906596228054353940944503517397671912796684988704842247482349512386805285561025452325607288682748300868225197158607829688259179767664009264778825525286130319042126353403013325359929980745713708487363248836914465631905765043808390101172944341703341692215829404510949944199361999423451376166985413778069464993418502601147624283034223751007286058730858258511510731488534380158078675260675138320685209512618682525478111764099197163063808869878866676195020453545091141755406104729969026170601515208468824417490556509565775034548150593441459016145111430511530786333615618679219066851131913076857294906229519236953703306939963417522421747859610324477771551599972998876665896912826270236686418921329951857377700536422813279708390284285093369490656174434272206621039487967823347361641310890254650090522271287338382494760662981356838694336194556861671202227391786235328970115471627935767966992533391018724147286981899059243364369465219939870113874963681402980884968048931220520026434985936999503250532328502980369529225653289342234517540674777233929088713446500688036511084367864406507871859026669650162725406747048093363540550768066916343369473844186243377677139213247037928829520695070648232713959824170396568418575042174799599223313578841410346948826903960496346326061382857569197775025690062530034788053118645688830089077258358364805778113840056923230080577719265416096975350897234243713901906105145598331110838128856196635808355935308731655851398825537570851316894711948445781394351006791692352466475461630015116100929834078596290966117365284909305281139512007004954149991956943947980342489250424591837488475416638494326442900396044353162516388664381423879255003274536508073487152948952949487603581481368918943825806128056313661098768425829007724953555880003964452951041827812612499283780711934942410086426188002991590425557262921573237948842365706836371038505117001106380914661011807898007332341234922751271576537131631847210955282263588486925462291036687242466213135824756529947459233067408119228883646351496880674365845621722065095231884125820234312175923386702006932364946067681759914067489428376203725507045741636962150159747489077766790326887968171690476594813384404666618265715836010374252972128612552049042192116800667189923617038797900184862731843648014380855242798487988994731912619669903756531345662507585943836695075212898247958850130400664591828720572009440035519053429504000609206971179681886954236349319378411983849903154631671159780200133160531228423047711871616437048635433817064590395296826487333408504078627174259649953105656436703064497911052203792359840874377497477830092041897344938906113046665952710926935485789293419677553147119686280464649810593977139655277654536835272259897026569113163154542979972156158223994958305604390224682497836790681934304110567593682864657551934500572960092014543591977666384664883496767282957970914828848350178118718117185515460131625859469726440822451009906401651288695115180344775252940347188269925844053737911329826921845346896188641608725805761711294569819004289601635633731199493658043415323657040615807075888525382853769127296111487744835728227359360803777561715626778903752447360179404092085179211821982123409413834599853784132309003788618687070613532141678078697098840748440378604340198274802132101703127876368599443210947653739978467708411957271384520957589794689300694759759118077356915384378544600205368766004360290697948945878141614334865001419762075150414795651930123677259299845709706613828283056361644828060045727178985418020195184464476774592369232816427545738369989860556685756059257109023549399369044699078094842112630562841588614274551245391224072528013570056913498313833076646473196508118433259158814402374836458589539018718241153887806619418869413427951208832355635489721647464573388604413564677476094614077454424067402124662423207035086982291389083751497008390031814544557849850728028399207245676709217600284378899908944227022868631382702654159848865463569553450385297403089987791759429597392213686074684672485782684402241867544592976233720162710415123227581400404046582165497618327098759325249581377745816592526651255106715354942086225224226039217324282527399616291615855372040327103546438000000259708780947555711515983757898506966365512934457054896788055141531830934254962385504791643828444497193922185851389963486602360352342661674906576403221752592929665570530178790981629915182261108271483610067671665806047732076804965348111025250710154017691984370131604972853292435002326673267161443550404267343191701355731905686936118906024530057244929985314925197097782764252310374562455750633430949658558228018506241543935765177704106967237250386799853517148102388970816855570004152541875213707359766912261387227855312509720579130412438598471255477035761444747058648754787315267046720459366405163433916495417139977040190777321616476675595197048075027708088728462316420632521033321864338517571248451035250641223698915145183714425632907712964768485401400560100348019729335680656434321663345462352146173612715721805487679216017830711117396136365176284677184304806056006859274263103197350920158044754658148148362159153569870195656705230668636062744415722030538653917357808171175826571826527200028632280865881244343949691746827223852092212644693953383969961202068614649017510640809236188420357308832772073302653929824855739394697728827400935901290820315777401467041833933847226612964318279125622404615028203101570406453819107842440013035646198894058627472900513545695827633818412227712134349614432741054152198908519785005323714069117259757520604690818485659168485985925037722884472739140986675624416511488607957791555643304162508287755097417076838202225305283252966251787259252641012322607774122849183794988542212868880963164195950551710273948463443220103893639677442869833843913359719395210326918524097765528917930888155903860267020397458916660577345669914735801229224043055347231038001351689316952408349858216124767079619542006847487666270286813099254933533602810579501650597166107737248050491503914045527525104212019421439843104287674643382365789748133556320668451815751836676509749932021953137350257498069027146010348062090223137011387586436959056983737803900369334659876439772347139770290157935401136953270937878540765276954888975337484622040607265549424221548521381762332647671031129593636762097901042195511792279289234954301974126387526270685779688485061985595758238566634770002868035140729013971681958796857958804326936347674723919585733664861843867032628878539305325284829514278964743049531661303130381899190936161814634328695830688297183226614138527269482678929718281921335645002773701735134974767879363265183846717934187696789855643131138344876112348119125080620550150762327373156775398300432639594176822057947390411766910623595685573127528442963163554522760921790804666908762440537665284778381894006708166779325184779930364937625266253213318523403703496203907581261131342594261435314203823911461314154770183349281545357909222027249507365696233174630544779820765350021236661087270651892095436347042368123210114464863000505473521439221927018447217016051761963691166643421877881381271448246118900028836938591783811053353353238991496001947824024712468210271372998894813443428881328771250911647027795935586752835739614027212523036757020958867343875793550293104119815297359823591256765765990381931823083639043723252900908753838646369974228741744094397766698035112305065408104513714894747624597058832166827698779048409877978753018670124489558039101082778645275371446567776797223953339605140603990456590357826162259841033389366108310004969333061174170610679186374191722935758561812496724264567045723527143159470134931014322890240574707613659926203720983965845597711474633032075489575121757882954331597142376523920655512277381005869989671781778458429261648907195602433415663537768348506714870103543580018390462378099160628242340204420207890729730545814007135336379431529998353864729283631263332273732144702053884602829367817105158109425223786394662433009890991737926203292545443795985012051881048970272476578437544475267321910083635940996952205193784482994587692492069437795601496268182262467746473309053686840215735775252645144108050885622437231012873255247600845696278354929487155170742756872840757302864637062300209848924440913591324957191114438341121625062003969924402523122886484891720345856909687260334234535267945008947958069391627700398572128339465622527294092215020526090796914821878937019039698642656291223933738348936663157593081107599500141489746108685371027261062905912220238260089538020742473240559803983693310432900514451751077596492409107441801344144186803308602154094699460857402632264706714932220210904930452127120611674254704086319787750158361989446532081969762518173447784784360134855529505691534414666311136150024233510661549299295319161717850414792724073397223176282159230329086398011475959237836413422376230255128900296689402206078966505654218586336599339781762353183216250705136384788391673172762150758865296731062239230946988855625071032954938371608097376063363665111742888296801085203011467419310408558396752109490590246144499074425859016352000590347932468076088214931937336177981340311883461877073720648493245903498887565869156345406358194458903467352749654165961576320426030922400220138616546299871978176953008752749591578364303983515986089091541445796333799153953343248072669847423397012894629471270549421542863988749005278364622630291129850345697275435708806265303142377455620202462917123481072709581807112521950366624642770177472887041742465631408916790197515512421348841982975570132892805662292406044398964684159772449256216472760574121839802572261452157881587861832657532638846779480597934733673652990535917340498631302015109811004537738443840378299241748963800947907503858178089593369341699191294698734909778354222202887662274883813302920640724745188217374513106215484174153374266140489115813423702715932184716924514999034148842556162559945242885365207583295237292871612200625103630451615035757707522403298202570294815245467918625822685715957359299544459014612466887766743697209676824991452068943394452145407812156193047540989537232429717810190879297536822984214549234859151445615172728057032126881003354014789277929474632697034228565064820258654599192066725719020879428300114368283713328582851698979227270599897388241905273681996608421895176154253861854781246539771777543701979646302567190635057093686709439763309016315960234860859060608375303196728534494472309977563341186248671926673117371706012931590496098409570547046758601112839596793013442546320432366748275437746825621028586885026991296880612537609533087640277581975601591934550054782013176814519087112386793732234547287640741675045894387910391265349751920041035991539281204689559503967959547447347791872182515028623997922525641774050794291285192809938852212760263113802529210098546437277325639438091928652863871650428058845682199845349929315803705384121328151644420210630079667300261842355561430027082760702755941065934195481301861247995600076763437920098150985001487001511984835472950721170265754987544361316022549988833957718828162980109374347729204843671136229805856655277442728255271697876968880704316484477521351246720162433398496507519531171590794742026181115014263867053779516959825615191769082070806456688579490243720805573388120193656576514962659930917894368763257336947747103136881387101549306834026716155450140709317015466751358852905400211443747328182736391867198992672514348548224851403794433177934905904589632182362351047059806066301755997405270058602560599331612194493486868555127812182345261631908211222865081255939824754470771907268280757933714626373000477341474663615479350547764875489516916338314806890710210185032917453350903406899849416278953667710812450527296245712600730187481617502414583090117510326589143355875022408361570136608266934465280100395011093224637919206025614407679298202203834659825116459565216623886977499764505755792999930889944883105845749848719956478176329668203018396709897774738053866816831673888648256810085810050370521062588745818007184607565010062193206035489536218245291950775112867699345168963620433707899869612210092291738217748867864727628503796717128637893463412270830844192063787381219507579218976742741241842881870250561254399092083648186737457848068237903132177321532284319682658070549068052360601865660303268235421737331573826295480460275810426597492419632689674276744969838645323062433681950155163820679636036794549713719171129318710302734801165063161468035306431509659154511680536390355080768419326388440174742216952788655628756547836873166371327211918997977911579530866189318872170674557031062634547141963412172946553381008119579502381324378564811395826360501732348122307823284066878849983477488901655342070955869523215792569892775581486096337393421747608797920571978494586318529178464227854074049800044827943726865149888098690041471276799657639437908322037806206625568702228556246716159039588085965955369344246866176369353549400168364195883421632602283572332091839386000433324762778916174584650754955362430101418774818538910829178649164060006834970097398510162213635101887060562598542659570261977432072181464852709705638404753845868456053040367457720880931089417629914115022696883259919681121858503722621190163644969861490309207889738579147616315548797132724626923638173555799701312495114715758225109789192665929901585934842120872523669153634515118141453119392479690710842318560809358403877872620717181024164181019874603506016645913542698609941823499594796743142532480205874382620168922980321484020535257324201951233398191147269801757240792378642397974586690626050312724066698852207275057158510538197977378021639314086444149459594879627931640290755371967641340455485822295866262972506628120043228748841738198304681534696766110426308980558860364498630392705894270514764314576782517912571933645748319323094704017309518651172234850664053127022685251032146646487799142276842003848077282930413944386438422748781968584498776490395530373238458908331910635114243254489220575485766868070561507092298905206807230285449981811635647575987357956519110238527238958296171857329560506662559089161178725211569785801657639320471196552035905021203282425798864249252577104722377502816328700901773226539145504491017115650678964092264246734858789178373288340298836324992861597692729257583615448970694671847098060149126840719151406443868352723037418606289920864825153451223189130530714929261535168039405833433108951063426166514241804954111385838620836709540653167643370966693825134455533755021735374008492391018769120491255312926496049604103999227873282973943986007509078190523671550823797545773958415554707824970383176072766413021779715314389558504513798420201918171742595999064359565775854004286725631391699432003772732883025007345331963184758813280510391606903449588939784670736369161463451376672016914135565502202568302976360678995172391861050476610896084693708962039137783712176901237741184890208111786556799574034277445977784308271465646495711438802815070419633346154602226057544847628301156990539210155830235208718759149353728803888607371529768486587427464147635161559313115498258582114839872104378498625190783756092958767322918812173934339376401641214428338921500786697161510815690060246093891989431397952517582265542309686603001436579699248527829922086658308219314094588358780771078948774851393965837170120796047604576368120280823172233161604924644654434877264505747325597882064923047435801453049579500848780167519013959565487899624561059286832327479716554365523277123228303659832929966784360113193450889628903316443203375040691545876555112869158318619287292958149177508147057893416616185653690583421289819909313127671201487397668177876499363373837667212915271729143762291149620754573959645660038015839988091741274284683107002471691108240659491531442781791263126972483814228373205325559661993734633326596900119889098533916637601129241296935834109107329125662242594015820217284419493881952223472532542653432103828777347519343648704961997233568157768296012946324808051716612951326619983199703425708386335097418950572969441825654828778397130846153840549539717434283842085372246150323569997566593327217744361791044536842206750045054633303915376493615553234096179319730646204702739273373343028471307011390255052240745366331136759839809136560899720115859058698662515998550959530463664781266507042177140715223928651334870139335347869442261329425660700972060645929989551947328910665372925628927681709489918204072052106828007008217105866099265817590420249136213338182799952209459610163337621908350139095396536686816942470092905871676120334455244345905105270552448342713371079812603030785412401761704946286709952257888174259343221652892937067020454476070291243549504016669584380741803763705157477095281965682364406070782931353773321472656616930065466522460313586220870169612336062828155374260307984864482285043585227286780697055264677429629431129413150397863943472241743757630419777056127185579027587910914489287233756260603989742248864731084273709520968220667640228110122786028058708250819467491261862808505432645964328331039333962774968559496615921976870838919896002814522572058129253575910131426425975872090945829255915048363938094560365667841799553020511695927746656227225350346950367997699110843734069682584618632626501392537131335346314459677601827901270097735936040748068428382901571114798222415378417340291178387535949266848893093038078776934325067253075382231841428256257521160113538058626919385584923332884581366657486479944919684602949060640150470311191219366424115267471513060567919201542382228547236459159457090555493990736003857051486076563842971071422678774517555515076196513705864138668988130119220347074739833023993518993083537985423368542223173369346056539395862701455800641389522104347681860475893111380784187836488514898370924704077379614308440163098010749047596450669334557102710230574424123393691351254218308707091212952114862725948625937227754899829364369276987652779379328043993475552167370548568745397650613245008976740227654767526043796148441822946291564920083710605759612112541020694462585573738818390899583030554568325714182434223127510047382410893663052181490276723269298188015124213124979729724670577446880131949765918169569789112105802297792533726637864140035691985748319788759300795836695635399816762333881069847150346288843775599692008955047242886314592992588408873316299258957897611521110849496331032477440418914619956246828450171759512080127940754858436839810102388021285345459686716074921020613877104919856860084243421214691224975595830475876652547490463314212558352283927065477816931090710473073907239499565747844917834392437394564042335936958017709840233727579904503339443244735553624043917728550668379417162387629976356561620349512872275161859705915834715643263271388425687276044605108953596769992489102117823985462138431096303074870770860582507253547634101530011007434253072135233758072334505099647423486711201542369481405976507644411929395717550306867327247730608929121050562390995470153344905134035542968423326537252041064898657346455511583521007587740785764498317203893832511563306985041549672217797682555231935069649794431961993491365370818571802461726468246977626759181410833902851339108785323626592515344057165003637733489734561014946598520112693658939500598414845366075129991224193363574452864093052568049874876254519863901642833200232733191277219032303716983523523310822836027189664022058982600291906667758440047560596177933829636915386740149109001029390431500221547536353327262655883815264247758797842773800674573363746511425163876930893437985146847496056507890857202642260724147818410735301228577344682901943218320093273222531545568030629185003298680722967027214530894225522605243971570234237422402558577692159846498712397851359699953762740183067171307250063293432148041496634724552944468769229784402195702037027904863243775385601075717436605422738207461673583964193016173527778430337978424981821171183894381481526800446178901201422038706163078181132251262928373715520173759647070533857280038365258958816148847695029001148468247426992732290042679288192218637637509684814370802791218977041202546509295230991370118955544171067690189870809160664574656256424058269523572022210959332514034274997331311377314166247291326288010892978974988684158284991779483827377731558536519664992169141855400151299092596989778615639578115955525347350436565875162569842604047610712196396280135475292545349999647718063576090864553534519452264715720201857064297376000188281980324356006521583813031053251576570455828646880054273134533098754090874668632891790707429579706800387895034699285271176130020359156747555708390132325967669960522227404856622350650929323259273956604980834282039939158629166688724340591309235552963640630942208928829983772256778475937949973664380158949219906477482391258239839661910443324175599397978725209121158684608436512749518942903814935611820791352582333341676116734190427191483512152123718999990900673148714540599966548407242557218045126885062729363732490811277162907287963560376250306629075425320372770650359416409070123559128353011754298903716884064914803548817354607325376966062245218519253362608249638550015157531062611878147272082637610343450050324074572995567762578889663254921052695855332964651765167804959360050072926637371426368090015032402873489507275221830335142203123921680524415584512475138269094194055587566847283237879352197956573265586416589538829126672689689769754698669415668384335549910027132184353243649025175241637012357520792825983581257420130861752556720270627473932868697369459201537605988704959111813855363738395471389813071358633145513852584272434802933843542547457849664984240573516749528081523779802693285541934115533672853393373304924425102681720963785291987492527755469485654801689225786407821039905399591386640669618397730282572462433860532978557829333969384876185112092257598589841920801127594384553990551646804217541509962056581805547406148210747817004825506199905103515667297368066042028085350041841512571378174863749114724897359094344519705938700493928173224631958648191319563944658993839126141830391568331387841126366292930524186048076881772645253326331763306396487565379436110805330474659014887012970574329613654617461182902752078653822489144433284672607587487670359431893296054392320307862773877472924650441144878610780147387956323275917310308909035813993148120956748890510830062296452536425185628681972543736568326123210036113874896584619713628005324923397791209105975403982322863457671207271886292921643854153589153638118273395298542567147405372244268351555475356237670959136014766292808667249737015337965555821233290823120084336300784645591932795170764075268962048995085939619212529554756029832160899317246634951139494733332915894346269012983477051805971762888766544788109006654041242122469868755338508512955676977092335684009863968289531536743641987814734061230110636390481352050140443085725461249069974621017936300361039508071699042745087343656652074117684484050633042478997137361922320141881013454062925571871162614370549210599288030336321306154483478957835571155340951316478317440909603868601974429045088709835468511771662302383868674832637691212927630692043038602348029686132271847406895641100369432639308795528954173715896774229796164284871796794242737011911433499355731636695508963687246054512144754875458196264630314180303313661363006810019059249953829132311628632745456624573055016614289595925729382690498235543303638932052143957517577683849083764478591085579559106927361029939146046316050530562070180579315941233224283484366424994858942303528228105810221970271575132842704171942540060286834197485740248293206454464310013795388539199192731108966060841531950479563598960970030945966748170159853221295880468460522290799225238856609709295525622643146598458366506911116019536844328294019654888965486745516285565825647109925397851591109941927674758084905154389965116341859099485121625814804102596271984441403222494690420402801810897526076092056541195807669645639406363002453909619749247402742051334591152138374536995492081180873235237866916383461960257508384467903368825945879570662609590993834849915987694201527156062132824595273881967884596323431854309866358913972844777256605291423811683738189017616820476407883903121415470667941162784391190741792548204403016370580952653076464562221944079995744409970526671530859614779217057348485124349276198225202080633162795421723522858704089218572863208702472364371588008813261271657094513169423376983285259712477375182012846092837978450462836481010376148177027621971219387897948331587920145803955516754725665453913884122427857560375692936918988527538089630216474896890358888623901248848216585915538057649269776371786591076608337559011647966507179531189229630487372293452282418128299300298399763290222067146957263513971239647351218003575416148095545168130739696098630447287547864240305455432167440424515745473992355564944846234034908605988488645509248245999838960950847320302259295973206329966386147056142930012546781958116548572655248475792928743777209929549708200007292039509160944119332396719815507947542803530395288972062421535641045243225246907537748294280313413398273084434948729748947531772680560677687176678642639180602454141938129675226585454041981296071524680674654248027086432812380282730524535617368916736186124459752981785780461069192232336663077188961241522242164450548932135593843648632943533225212657704623471138658997075537606249986817164993641723696778822260794400326929005057838194875340373147327991193104119104608039327108796888017147098546902424932970100156844745001332219707208893839400099939237189197120842855727510414419996868679930185382942501890367068517215680874697828014885999540432819581308921215616216358181915936942314806988717141431623215760013503285579170486543642894975582189915095067141835771229232007102827896971618061127955903681638638221928458413223390023478961182056682981509370126832729064826315426077477249386204772755166702579605200843781577855346406708822455763613460751058308862200688251768467726621077947671926497944900786952353176617481769194986270148965029254500114142751430979129837851825625075193157903832877360020348330467928960894572141974971833815910233921226421770632964437969857915463759079151695510867520136016191125391754361122156976952996955835082520420724829053933011856138621172214192856765308941795614129184088816821893596144389566687028391146635882257955404858170213636081430727884766385615140969833507184493002719913817838007176723935195069307072194817698987594275331925294835081261479267929750943414410866763899058931961184379619875547923960538188287790556573481504332585106121291018274330817218265731886720229224978178662901096100453588627599999157307284032683292153103427463244004409859516868764991445414425895693209998616321099987927765407882800630878295918270675886647868572927808761931709407224746504193873657377048593706496355185630589481527611771842133273279610420809435158758707251169067069367556728602692576584037662611461508153619337997304482867065478848020173135991893940855577205109006341795795460601488805614168551116236831586380979078101304415931402366102827025766507829541380999575168293423454499142350202508150670240355727754755348900030521668595082139693734105674123392843286722640298594482600535568122361893844261672836608802010703627989232663463033485746122466139111407043548157636321758679635185031358237346232719978934840349977629633717610685060755631214283697116964922409646302372986271004294574925097157186318497449715226705755523202167318498692498385021570597719591899910548501058216979560326407547328346640128998866519977101757262335717237761720192881496306141507462155838836830005219133135802359381935425351500180846885990158957215385396655792918485170788672312564288778332130373359534454019368480293903649305936597742839267028241542025698041736226446990868474313918456439328593761589626446704838016546294536102652244851897119779026644771569009695527437153219006373518527054418161650674333793926856794290532588389062735376044336421560300188191052055215178363300844933186584514332110671438725286782996305603242000799332549442784698484334960346391833560427021779653344203720137540604320859124557393536126436288160051274691207718878081593941942064666890089111671977081906405291013687009451765104503321187862865518759849566720208064592089318759516524108606369461342596170020808351519443495879439956995979894001358143120045115997193963993609634466229899933523025004383074026897043572760751017588743038070881486968890526588894369385551988315102849915009406039383177537741366664475070278680801800287204926908528495139587882705381004156684393547672225418514022755598167585012230894150205235243767618166039447450689816228637884671892746111982295935731940404888761596017561871874068859554867375234220992843222955771577140366322025568167373218284482702581413797185766144908385484970417451917152119213703670674142746943870578372419589398853662394857811983066953870219742676559208763182774710876129635694937665219217157246096907570321776590451136405832145143795916520543672205213603271234060009917075791370552309040466805919618189959655699405984152652746784101189054512603948672065831486136426207937859989788361794550108708562613029388204063789953755840083017835003016369060127078144492267574721604681679452292207350703289225565141283232623099802608325370453851346158380895568108414002251989487151853753270557808664791529769210332475098999397881532305856332413796659172609153700745862775334984020048132419862194519339314296313424178944942762517610653062619704835356455518694528916014215171248606830796129356012451541245486081696314230861672056336600005975993738874818197255500323254306736797929270844388358644504348896604092302489178052735404114401496400395110657506380672710458231874948975092049085025757825283277521327166909946094541239521010107989625332272152024057261177487770797363754414320595406396750488261789753987597318665700763602210575035828130904898333399381199785727525660128520523676057682502416920763569585767164313306353976012834237760097504950052159255628828468113506910248221628000149167093198253806728418946444715085565524929289453815875909203772330028041524113091923609443923802016658279080578886571305331884492999490154347633662539173236008297547040303112651939920505594016480984448120305835412516936330459072711630911914766568734328979411991104346079696290779782484149043232981904654397281805143620540064143973946696298407990934721783489291623001347403822466049355736767301937987249655716440199613837805661717561109458654001103019576562845844736036720685380111708438147962667674316537929739610803941101993092891451442749179621095278553471367973074080103388066725068971714060994254731108403229806991728389328376786782779972222647715618237893091820367446241866506071973340980484120151749046522376028016260333255782618803496540052851370275433803218097907357051200709609439434602859286956299747791717690335807502609018259452448257728308737982734808228432261905498485477052998743289427782041182926667903666050588335789494819535672799833470295819936335375181553267051696383689501122978281137456044323944769559130406058122190865111326580871362249204779862460933056500641841294222135203047330519058356125382664857723082099300717205270522348775683948180317224742612477829362484913258203840418904752841692759653048272465549118446775559011748650708410124981803561980524807350692453935322590448135950157159896164758615985515836225114637710170928252645514518428433668831758456801029163025506095637777065382467910937052598105616369852632298352264394522434947600716001348993224879971101725944987189352060861428934641599972102774827264805742503177097677785248384818532377157640196569550228741038465443346875702313459810743235769581762874464458745449240981053194505880886788915649950139445483915382042679532009444674080404137169984062489125503262553461399377212188587780314659064503946794566837243390149565157867098104451362541637380833875328264619543863493412059586926452018580738257394634431437365722747809036160269576344880781534157855637366740572913465813412242071715603639654052046145675017578094999167406771633996329135457301283595086068099709085501149995691582998183765539124650837507753682013624444781831942015624457704020003002355688707348554818499834853804494715804253544983728422036357373798576423306629967139183835882270680155257561812986307506171597413676176538541412040963823901036571567223782481103540858871290344066058615877424319014503018269692444990711789674307285390005725199341207966955702373232144236071422135937998337290291805920054626566241181930067624974688015227218419059611470829422410603008257158082990849327976997589818984048281374862823984425293021208015571045076485331788651671815773261375384849063285980861527388713605861389963619454385632962173256174601650336481887991302293093358833192500824075438072303571971241869884821886686817384262275242920386407809839443453674102595526438418186509903046284555862177911792328909202898927871947117664889785590511990888366398692317662949858708019234863859454685635582070341938228510584149524815205183535214299253191249879476885796542982531278408480189981691507887668992394484376369798198885409697912389626311234940051258548362716936547709181417895924730833596837095903672658427035482353972249628235490237264051670431550065781021261674553656762477973950449523331964332067815622121864933224601933187785544722444609215160350944251470328977526533661938807608385587693610691240165206815196957383219569835715641442485637070610787963898347234795837550273626156335474891326385525317697648992277219573751053884298051967089606496201661257797765830169412707927122897330695062119488935337725397642501405302503294145039595097813198402292345600538205375843834597832117854695766132234175333579377974243561111899418786470190675404729923833240613532967983586665513878139677835254813244310258485143742285574551089302574551401841075905033307635737148203036037156807235674335922938486646981642596840246587453242848710723137175858595223352469770496123029029106689513520741004039521271632856151195166930063693957663954940087768298599660121914267406138433987438482274765375891837917548795145967387101366304041309268348632977766938335168078431489641561411087646082700376977154764903433255311738555471964901207194260457424784273188569116682811789103221601155552978008479731532643788842515359845762598613386456259189848123770462940984999328012633042234127074826262943604402545048026748747226773732295625525148362695018283862773736758636068903331445678560934488442567872269382376032515575036322013304873373924144653521628699406156536657981382985064991054771879278557086772436841658940863558026719935073574700255577929322565054164929240072319032284188342150410489475694622680259595042122891274484425348405800757656999962219735227195609537052941449837335177826666498813389158135375553354894494639907605457390832973819959525732327744184349017172241361066811768076890669038702154792564298456076436957772744554874266177066324411877301798303626035327868072755913049758775141667268993956501751167884201917513669183197751678204910637781227178569872964467333709826160597365652373038822414929625360179896882367651741296570928211691019469213753106843722934254063063741834875768105731197962109369785179648079172626293086085287690186782191430274808735795139479045215309455647975423837181271287041370741677715779725640806148177340375874891370191330686372469146206349147880681267913377882836686694936296427017411750073302263568024713181399382692831866253558187215810723040761034340546373961545348917642764497859934230955399004475945453785661804626968879238778205173116685727403594192495411466174428669227865826269295938073421071466044067036202922512350968574130889587275260078637585829092120355322333958023001243487057547998547317992734664035435274336013191440474602481057558300529126189767175483974011338000848072829871683371770399686678460759930131783387369194306865447706133468706691237455461238565202204925211604860969958670936571348509303213152357507551559187754818635652809570790387126755488265173367054631677400991529000713331818330679527902108146560835187257710711735928333819095360287262521500978874286344503616464843564290768157674067926886075062197034732488607285271053711688923162388640523011296058479204157827883949476332549680651386505007283528044606166965557070561616568927858726760867539961989701788330564648824308401674658848710094719641215973775293115182341096636368401341999648912320098090344094561856693781898094305226643564789563464764477983124544482934079295726740973921420387950169947658870226267662166931321632834295581272127973336295265027024350586646009884042599332819738577282295436647036796117327297413907342209315579623238403313463708393240814526732749394462589946704988642407254784817098320715546518986323006903542715134894810847334692678650946516942697216137479973552006492234672859791182083449784852899832035058463000380518691351189651750099557487399656481705159532352280889010157253433314651179911342380468773897073930144548034579329506721338402298258944368508415100445924043502961473000535909523733616094654754593863328018713324112875565674825167939912536875495212298600217799822620680617620058069374499220539411496810572588918938551197946300579997140704907251109530563220851741096591758945684143163221289444037578226136237254126153905555543540394435997845354365064725758284667242473395594233278593629526149169029886881015097615705113111649439104264969955836985995584255420076604859887060643275336431509868513649078640624840567710950446893947658082381896730273655150901376380138155383120875111452861613067741381058786867692069002817427062281956066621777908944261094572116931905918995738233847422283218033935359686562003714414924709148097940859105148016855606785696865217864121434037251920498042376786356268577154810412614837843324987947597042940164547626282043712883382621906581926304464092102507978598816709936465324601397639200212814047360290186780587713164826895566124907147156573536689725802262285428626647032422672439763025351276745065573383351585457093530939927807515048182820756272049505051236972398230582167573535061991206544458241529967088742008041329880813252739584184765841770253811097789031989952328073837179486324435785897553877776018308240868844206431821100369481713836716090245055595853636870461357129814302863552297237238062454211608567494973513062770802057288988786457753506677777406126035965799191150443224056102680850979750544218580145957708989186885042043935903237078051918288973058111822792174220372101939211433411753207832297742497239457767137596142387723926861787817048591477266721407362794047609918768534792729961596435365860997155861188582100861225506242894691263923285552596100476478839761209338235581486797762209476551999214384343024404009259293187308922640626337941150348197091386608957360709346967731961772981087214790641140414355088440085584772501160178258995649878318544839838094856817757693572890338759925910006494186768254991581311483125965658467016151208529674699086756882745814174260914584676661625391360923236691684760536038453568122131001987779189945060955503806675980779359642426832067990309040107283963817370091695890359267500321945147940918658389374264646930279630744889990484544957274328562924813145423389568445539416280028832528300076506059412108795458479062819281542285941759388402503858086896132371659785380824099257750144199291146521905510451044618757786590180717549253121663943944175684324968640734944468306513197116165516401204978344721882080900576297570377659572997290946130681529487119934399027713283583091875864533970532774983362792202211317424382811066857010436573996537858073377873942134449745610593585612530305442341873964534626537109059353617145075500752484212828796922379678713079334189059869529858602526004165039439634858134260810029479494597985913804141785436364620531488249766987984561317595253057566918653299345068310913849182219326663240660834439579331093332411923375490020791209801366852438408151273657033525552154175340394431652175327003809377178248957113225240580117056004196662116094043809424588281843351445653307593722901029972465678066097089675820583516544552826375552621640422879649240147386525206516471429122547686534278392210486382560373842704284332456934811081352063379848681573787359306545951952766743309921033340255515689641319118357787935727714003153435418503145196940257593179647613839815120313811230922056901897842580667457819305850355711683330574656925910088069483791701423273841099308359725369010864249894650471367833078250317280515253160542773653765398309437724207781842343364669868970073685751679789657633093088632632598601563882363171127599200314539399933070083846265618799550230827136497970419612716125841265395077586924681608133612410086650093565316785024006154405914136525971636393513135574948683914943846092055795071492358338544840700542962764617889391457372831343972944231119606253515246642816513279896355496659489863284928777993027506894297979767918656914162095034353033006447081805286571048869629180948231999046390969351679690111387695964925231396341299296014426844902312611770337988075435516299233655154549713867989377577167874503082538660085724483671285106614525109430034058569599200349641803577057703866180863513983441350626592277662293453738549352399705124514646162298505047008207364692091752264498179209152192010061965931958782710829216543002772841755919970520408535097662958092199224413769086450233215123657848579742537867329596105657461655272500830879059758406311259619639810256856485415930447204918223838470969129087049751790205643380336570062515838425086875089432229776410564807307593267234497302545907597534858757049298714287528087832260506490173256305031100556686746264417326761038864548141224592060587153114005085927743786417772249200999221842914206301665584192584883746222246542599198990899846078577216920616109178851428210338309408154605314933956853571495745581804759655861615938049328187202392678033912056291557729567785275839816736907866629706376384267299858646509769621929858524650981316148228783094984031085579171339989979401640102071540152139660717889054903439226971095284844348841495638694606168465880697933357595390171293696921871056028385769904167235824036630595308050044145428644794412544412920804641984102327474795086564557520136070446291720291802719697452211440771625033056799836869508650476432934189315857718066645629015553972979393830995317457121216489598625252642526991470448693584545081797768402777462671270384910824930085354054135050740412664827813552146084035668534728687975758537652375823083659127181509565709295891599601818917727887978640379175755722426011914870916423025195444745185967587773756811584660883309421556984162387596345707218366071194564800067636481693291371012649211964633834804780191158686529666600036118229949642616693226766164032309648567681297400289721609653177771789502254966321641901052205770504053980110909895301217920859791771840065472973278115740997263804443780215192591533201928139147429038133753124748467035806826410400850377460555079564868373989394146431258685338196214456549879519395571342262048971486313698206011381266361960702810430043561634171099956592647379111176326584896701200231620794331283854187685422103867481866815442562399854571208680975623283645317871550279597856264277767806716954869463573855689833767725092958889548699984518575616827190097918520975921200203855749293966653866777081838986319313995026195965616800746448785211202748327919859983800671802636056494172095043800190964126245507748595363207506465731928334066670077832115281275522812993951770809392750077041626944617180554364517537697966492797414276503139534087856395530627309615378961792540538720989360900703464715120715423843166264858985938999190812906317351040421519336727671732108665896504742948732618524822655796832060107436458892409711864565783474158538245901249957213847768993133409461596844417783878184461409595607541823925159375819970228319169647408121015183362787247218953355075695717816642035761233076963057956405031452506974643510612808204963469222986576609350448552202598490207721441515553469503372247192185541433297835166297936926727848584654035305148271253017603955675497739074462336832712862384469359665115653537295479532288482078362981476050030540019488467202854198202543979089485626414505494632721872630153055593261819660020120182211300415147054289840799926645397268533827110282479081267910641526157568274763436339738840048006311240159261303614139318688792791262220432767692751109850342660365032509231682749013855832398694230127850567896185132362458019738894734966873734370866210832874971659894180731615245557247207887807485756689186060752665852870835920902801783200550453852905393313342688935629600905856715205994922448494398123751346690620046683720662720576774413644101145005121681744624524268290502856337718283985285669709132923733816305994743283025049813101994259070180540768089056967562062910639090270009714559891298278886564049038103650819697987874764617172976406704613092275999944495260689997387219419663730202532802219449434421319786382150538462938595273276146371388111816581100286277516332739507699709303246873820004161329751753113361214795237358946496321361607086504578797287594328245845545793499390709683029463901637721727763624018364114255130366541561607652104435095624514965138139376018507892836395531991956683908318148898278805988262497116406575583351221868818742083598284903996006743428871355573132182343946172105346758797278215182893226486560257508076315511907097734971831116947072022685289474416056439285334095956711684994504358762584202933090841498816022352395231552991955097399920224930497400085367693975334440070401505605253979512149410585453582166564881605326304212018925707150245942282216287885033112347282595387902805593806725463158592653104407817391875090844843598289715525531350790363817705838292874606538317276920829463455770910759501852136160202581607451023661517287326195862906370803003502090102134437063240974987425391871392418537284653921318159330143827752661074025771657217495916105290843856694837091343757171258525656985820386502024793928681572476204838553083152006694014669461302273259094897664740077066266441802936616995788809964495809880498381581587666930680114997714193633511184811908048123953170430448493624217096387225725125565604930809015023792419543261721176424581321111160069026953829156652712079504714614070973252204535710452155044136202510474430435636268811921423392329172530891830889899552600461423965844319594378427027168653287725496411715265441708979038131767911640814323904347922549549063097502542057838705954531497528408337617535476296990084130573757967799259996446290506716782107431226445844705611892480343788005068880396572673912448716791369182806814384700916551664198844854196062892947303092124360178077998011811718753482067451171862056562887300805227126444523831268065647171209453626042253258722366645886108639319280126979889848879079716307745798928612365593851236753603066898446227120382849636935191576965064848781079630072779874421661505466541353368855724477182074209358607052559663675552597054267480101412113923452485273448380172176447669517766259720735376865606486741540122411629465204465635686692832563640443176243308205860591588849734507876341534145035171878424115947191139551156072839650481317274075463896784282762308895128925819980968961241048964532587906924696961110491255035434825329036640772869044840742774427529740741101645592753610019636135285501286888125097755008663243385162146129720129150173048689626502625129305012925169091060539388549860834406453884536291301023441041765028017411501301671072179339884802434254899369872139538624895551479142550255802522082399152102218399065686108399178738606608510707095517584674944879299838273943819624555280259599522410977583654431099443128307095193522263257257397640923809084868653502422810254340042533183547183782121605978225797888158024670005989592616699312957843416554577776099883272530901206891568174539554539989467447229126536409177605536523824293451224286684867612028546528915270365835793907411701631269216252890341437026531159124908209842136888557607805018273736762316024055506388718285899372282373961689034185475370402471284204352573164100476681723123446394053803701560577844967121686895971457180504197872936197178413753448027867791314676121492040491750871833538257596151027229246158386960268435433290234817623138221012220416050059565684597805286229798473536032795386782333264946049181440154876707676173777817911780568754381858048644749352997770483355184694733537987913857264381703604185311849511652352215933057954372510768120398812756422776576614580298749672039053777475769537844827361237395579074712186034958325534586864797996496235910284490505818799211966306156792530075479602143163199004545369538532456444016022331045408807453717589085327513243647932750151400964769729972271853628151523511464637899007934350683490538032755854442403046582966640670714306704677377044461492961159071362684058686636793091512994521834478735040259550450980599710421341792083671757847264482816879213939337981364045119381531521618667041233180735763178714039772135202161441123440815409128872666410637825029779723392947252675026903755643743290201347396890766551239031706758958601116881230558327042219506615355189754705180328054298939167028229584267517425643080723008601409649511546543366025834219096443229717443171877906827887917318330129847107667683096148505949437087169347959472779111824716689304214777059912822572292407030670224452444081531204027324191988423730405856683335383558601347111734847713265877851861397441879912838268440983051928037390778586071056598167797311460444172444673307678015740975290238647871824469919177543667587186121441968398354720168605604013125153470121376078922891099310467881765468325505927336035548150615478329982436425341588268600625106284416033077146738772203941230774755166175743679296612017655593351427137120979238788025328011576597915020057724463228291285642790723382979865048726038947677291654967185448999808533203726719051037495970212573260661097957516887327426665058985667851851826678852467723266009707957717343815341313929760543006898770086616189901753346007737613417440305612566378413242809752842198249919777143422649656887207453948546495297363164547973196987964110220310816877226173787723005135916598505075620167529798013666319649784839389923963848727710113159863885357773171713164850921800233704882162366520983041425574088032614698179383002394184823321323631127706841959146508396081333010375080380573051095302202535017847756151662265430650999078876344064346737359953610306816115386347435880605102640810711266525900589223685231750407740172111043833826739997202685407669759999292364100013944591800899489427992617806911503987168624353867196963123817531604527113780499125141356242118120816616763253123711973291121312529444789810666093863415519955656689650599542376901698684941700755448795279489459869447854891768830827779664329958894482891484033387680727819872726743302210539278088671094817436196049939263695079689181332830772800004528551686268461714666945939135401476779047598963218363688715471704760018173808915250753272121774895436201964890520723912049359271519947744841386587228826820180274955781243923336112581212413205018700883314309632495728878726949942218096979925150668729968094799206321855321528610778400200614012825330742638577838257357744286617489997354288792980838509617477010486276017161382809805107666163270444941796962088980722545644754863602994556092911379684441958102553525613326811180077396744631719516766320054963615351795397391930704537807785110203565263867438004357071658784801575389377364855197607884347275717658658010831964687205731075042966699611543581234271705707655495315590890192463318203038499995577093448430925320877259434203301211087509015005121885766118414422245523323151965230074262019860607248151619028133042029647324863127300913404654321906946983005552853608223876848140025569395332909460341722363072587854979763774548874569743120588750791818580719539881877735029612181594930014940424197040818621489625922374407033270562367670524637947970591167437085340143303123430404879709469512130217345017128069577902262078260434932607170904634744616764869408930385012661086703574659719705805820964850108728902322449094125731203917318790531871624047810818012791018815507543058214815030334809488513418501419418819069179162983457607488005929054479181000491579342430259238754381016288027957782741731075220531520422542564700945448522321181633516160982438400503905855528897810878096352060801709546143029058491985919253912330355437184194838409124183494344093630856560870174812574439065721037963191347563587956209973003327404122280521503548227925802883359183260313655936684549593305226301933468178332932221928877432096909923312278027944522239638818370272463681773843593460693886428519594447872734223628602290664258791971721072408642861784286072749001531983065579017404780904807690690657441052183588565853975116571672705100550136490542665046078548860035806646715927135228641712426124336065532346971191239902195252804156786397259835090704837784864159508686721366710810620472268485943574329270372645341471303075379891110895708310211132776755739039073448769194390494134539446955772743081189749247729593011867418240585359386109572797181931514073444451984974507957805002845184642177133693186711838047808120982044652644464286811015952846303127916191799851193830992801998528143621865096742292840145247996964194752917305477248021595443612363994987116917087591052540500878447177650442588493852949151878799227831011897667478048819477697651515469195128246991728428780856993547033006987907836957007939604049061640654659045208240154856400778718399493114188518389606311110027379794073434015770826861845573546275678827806326607992819787462727588055259388631039937281239150248857758758603669130817496447696477648671615493738567887248353526493985250943041216848698301148672700206692309839873114957502330884939022633268281399800321425721167157320245208172741925501443233220760231799096918699578918483631098855305943178484802766263327562772936378214772249448131084126564001048912731972225299337150600122738319023922806576493055036908340441339584083847591695960062690743340365833050802718327850783841786161040649528032234653634078109440301337867713270836046127450114309425265489206572943234234621573453842606284713467441896951460223359969102303472283581980767950240125350210865805408138816097232747849851768030675266134069209402654585306563274579235320951231014798749152035481723623139934505485148506733683775034100959954199248282876562159274691869979566711437898718478066971902341649426464213320189021921971661107714211685108526392554269007163013343597995655196719174659733856257106613931646226422372596386351742323388893738962246062907341311914492181430796676172282164276263040984916886182258409048504729895936543008178014424789273268290232429221425455056984366098015848998748449474967371794678893418855934219238096680486230287439108475771053900881310564578701073034300841982529028116480099826959021400656191128654046892945347589604487215738512001094054349581217010923610891680137888724955582181573511442465427377542768403608292785837888954006548164806922099541010557920771045213024278441960698157496114588615438565197182543976257782685660847838361785740438292048510227162666109688817308587387324290059382256377545258889793156653786351371128052299332031569603253538798507050539385122873974904021916968399587847875273658972425527715237048798693900208597867192569633465513543985373185733094677659819721338028267046588197056886630056993552020135327852377763989451489978333614802531766567167764340782766415144248598785384650977993469613219562094216289981707545332479960193881791806661773795335171855868140233464274541458588659983247971136825475761567274524318598896476968775400349913278217209874025268897563258065060609074140791934542140622007869686925055534714409497334913969697882041819487358357701391969727112844307499024650323365222386172081363816627272591920923108927596989255430551011379630319614677951675221265854987799686863787154133937937664099144658759338404614310783341222210241951111144110286130191263024336422204418154210449636000297498734828765653053628729304579806693025998161651811385082018971802871016322716175030094780425119976176751789798475975293624776017652627890313971584249577374070061096657272921081671520705756307160986410084656742230666717680104211065103628803557719840132854736385606686933011378276835934493280708111931397690912035566104778379383855129789705273813839715359485782187509841069275735557543839086371253384244925269565568751629770376418846544486206917485828674897985281593936882926945657606296220048093639474917799850768869296589455262722379985458752603153135787879123559225619075588689588447713440631979086249539087215934079158583418974370420906461454015540666601204744704090353725879540739898904569460513840024375721709983603656220673311737862726415320958009373943175613065031655401142755768757141159458012796127523929007617346028083003241851094208292055273531700435212648915044478789281252630695090510462902949434675235111940154939237168718940862172284767211830655469178426901666179932693048873863292719431257864816281625108712557685746958715596288164875247632057088472081505475426207252048566702459297262555775438112944075216454103919626060720560382414186775751163530986386657015044271197464294335825179127730738875004589005831844320512517872109763641446642226256412866093846095079008270096395417775440499618824275317275968839753923443976650931078639888548346780603626496981716077238578725224343604136000304597081051615807527558995962535032865613706699946216876872083462021202670062637805796937789918227135419973660638759778014329983634756399937704620173911607943651722998182793902319488594673141107341631788632012269400596312871829093342595584907802737393260081091524202681105040657763321075665050336231226042081622370155395917113875092715784669959258146351161280451798430796266585083929821100325031448621823853013900812095721619182551962489362307420389715666419752061646497584749149432248669955560614789942612613835888926115576864902766858702674435731805611148898425403890505874365455401400892485051482606686130538652548410083583948308102197484791770213306484637777364517026661572109593781923120650315439799609521212399096111685879633099829354563167753224888858785960341584500384408856867517580662013564437080525508807068585538209409952522864257167942090355180174773499100788202611998457497672596968892939898858354265678971251013136780590002233157284125355366669780839200881598549075852821641126676385171594377855499396007433421521951288913752683329594768838648091340608938671772555499373159348540288127845956544941945116010724973101002169195623140060730320133409515577292598124103118119991027105334800261330502909296338775616257162184511780597770521326184063846085365047629103560721962772143586527410511979679076142679251833355934760880221756942239638322859509665557846470452892902125539523028074439780347331112921670389201464859769548969311305700840994168487111164650928188398975342795401169584087177706962911148354021089969463578534658745009559670320280708097728978599375064909484144891081177775122289296419187903963758215414169164419544911436434960963015065820962919973151204787210006635567634643669143507339150102326704186634916404685456689849371043443927406117864899122631143914320569724346720870359475698994140849415676837393587225688037386884435496693269862276340180124486677078667236431283697924236007117958564430793373718042524666235933599331496959230977064152952203849131037500461679391381152562486858543307829162268589014177855450004981901753108831737658496765286663721140707281035843455972674386008455550399481294075344583225585254834032714554255443231763439105217865606281472002251589394977729028376630313174983123204559032108749987653573643637522125328179945384698731530179982480684131923983498436305593260574864846509307988456341933720220800694588142937834875218991538661760207873155204490492899787927477571145566588990888971949110265168584945495691872252496051760529749219272037278421822954648182367334745739053101754370176860009340824902282081342891664372788659374894977886549866960999384462143243060696724059109146765139609125263514768812867309117251220916418388404513847616791649072741397562297689876732730612146436365957471452845951625401377129539153698077496295016179192158385971090057810431053644454741436534408925346229569496634039031048510976804488045064140428292017960927773735627323725974161357728212373795882807926842018648156329668830816880860710525121488514957538583911048051744031467114578536837225818269407072481924003083620115804167777601914073428451476024945164950424393340669699655946060927639221951560619934560544088025350829938084184653841336892268337548242606507255254270894084066461145809254643682268002718117212059555599202502507040656826038943341389572671547782795759258401164633028061905136464829738701187890356326621393036085884272672188742572512683532239623957510973523904937891152357769302106089211759021357127402587299404757616581207920820118092413579871418440927182888798670013331259849517188957069854292963141982448457936189119535238478395247429161105269541807096758565772797028364870259226610118609717073881265560975228822812933915744964169035723651543712506850940984383968372977429639357591617685141841351720011464839217178988551378868510486671311667358754051643185224063788389011038456330086485538376146332632516553748270587118670136062022150534930808039115264060543408536920991147542201007874443393483911293669594303624336851486283845808220238819735684071807434755159135467980356015546998298989544721390139569282324962819836828596987232344229371662555992675324344848585745781287765958652125281256884406097387530334719679720389231883520632264698714825258557452185137177839533476072474073834852429358262327937351349812364905062904630356045978212426829258662883134548526013973567341700356448790925389878042803440400307700106131276441729439592359808972182803107245960543192009719152101075777187554412223740033504153429370018467769513856809407338957673310727323514900181114866284919684114555818052529416343889230680868864478595262168117122609995071086517738434133450801779507648518085321888279987636466258167426688744267316535984098972986231405937169100735263122798541083599321250590526142199517651472525441181164252065339365024687480290018070183823195326107977586108277690945399481539621844436415253964769069145379116655987525163823809862239294138846651786333266538457606574051422078293412224007538071658822822644900118291446905524688213916874350972170112753184484868670828679117022867677766685469968894057577932089790697581246439275333621030252426431670905053398506420215244175824292654773733668185891564713874126809112140068966925390950516062278779263649763175203499326585694814980059505284747350429171839093513458920739486454676373395161688245913786489794992216179424419560917627652017875739533471026750436592224327711276264610090845715372365137537622296077196842918849652779061159635597569437458256271736863137694538132231577044341828099725180650902977475419321202702595578362849062928154671036559445746454545766413699154128303288320344333986854414161828130988735021480403052102671053286179147333936572324382663393837887014417653263835387646962683287274921722098314976154624151802917003970226230633949575139874436132407493385843064998899685229625729332142716723876404937426097147929557162443953996760656744100685258994447702856044620010508290722207204597624662184839535705310124393619770685539653222029908266893397493866518746456924575300810627491297396498795335617870665578331932996058880679733275396042356850830931205862178773922015178592554716212321527535583716836819018842662221448597486858537698475373024288392261754943570188188465512110314184780721127098408032720145645866577162971243931525549673563874223219346580484487374522991634793312889503468711717554369575064173942272539226883978800825166207134134589798512534851336275100288168929528157363065069883244503788530562466999366604789241677902847857944912994071714648875309374676711058973119120641448327329102118914823196866983708895751304468682528063680961363212746521976530061324924836995101416479460138803473772283979201942249696250514748539647541738804929998449664955401665318835430169641996392434214535539884460323274371850687774822739346270119970729515483853765179910160887220581965997304787302305149629132449883598937169922747936855390506613243460435304291962513893482017176857132260620848584402791374952353842720371361080816890509451268153280631132108741423749384236702418553749778934861829894015593490564823623190479331313658532574258471509763954329840073324564954357711063765651369285565576299534545802123165539032821425413365199703307447012013374859766854218567459850190156212165416872289015419679396408696113243605932480673451104077815391301875358795413675742411807919956772032006897771981229969647460674542600624659791687300530489397282247420335789042524388003852041494301049406042346184768989623387845045227147423121894997715212730297382652478911772492327008685951175557441540700503786028845512128166049360572827978940664526548476661593458806601817430900242012559367225433098411114770638612455696649528470675399857053456811717755630842735887186324884207143515283816080941945047168820776096467085275417979878602068509667762915420682397971422958123057211904451018662968398235109138059683562365498288369511326358696052023773070387073169953681243744406753293623816103657797721059702450257732578236751604565410373965613996657607526722687120509694159279512716798639272869410316846849643451255329180879531802613982364947864754202277909946593153868428526043683666914055012923092685578373452024217764318517726417610007304191754315434135025117412677410505156718519481070765348818549510591194649673149463903186586244906330273262270246674238423689161828650883041331418719470928483837253633431587423026940073284177141155559727432786165422324528226930424023442015320793702356939473649609050585514764358817458420269432011903406512867415635466155175793487088408651225606283287810525510811549381800258510381606182277570173410481513208555781820109708319712303286869912827015956213682758955292363299902584733579508763516831460773559973287255343034460082870478729193684786141235703237016851971723081798700089031861297656434279766799145682138326896388462837502207393353486725522401224464622537693366705888876226292411903196381376014000999830042743162988796211408175967505137010858518036572836367995299541407919878761263420976005891856834878365455868396083848163698372008294711477556647698642349702421183880320948449983051678479314926136010524262214188766270480751389271123093600187390179352993424086564807035670647125709962552547353669023885467056634543677714346281727989284573373425431357749627246542423690914330027909892616888407771415424380775044313064833596565120758377779039717102571899926598821095137794936184286033829542406840186066968712430176874277117691091331410695692320676084559543138581416601360179246724357533678589757546152379250186230793425493865178039076361861277432774023483300753660102221638229126458064525988718688410852201302106840457496772004559173444078335008409914159954626730183502274623123522323043957676661190716141091750804524030870620278607366875681852211534212877067708364928877516573337264684267730786470807957895960789693494494386435280030962767976979319670148629902921859592724411978021859617765119521805174384491254582229282460916420893518626622562454326999519379697539721007369972161235422223522452914633797814738290249471826479336008745180069988304463536002683372010006465850709898221861375151400146931690463632935085804625712319114753114654513696069675246299325120570920268954257348181902363491653110515945551516889186818618873373158450084346160175819268487612768139687401400446409103969190322327646463511234720995124102729682105339821739973837480410133393131260094807499784944204242091845905586950696586534547333939517157208391029032527807319985457045975456367781559746595079234586156448865964283246373151814593165456998890644731558288090785824512244463879610746457767377187913981084954128079022506528043256999532254702257304780237967852531709923836897033245434803770908378722342563026134698356997754596527873155142798131004823479700506155348473521211404045981363647512139298040094700881468446717574542629683288284102496723441052354111148727452932882067415430004929818011826108283404297395553827543027738181245586616887977979748524316532391095443061618095531757081007345873594553405925773769883806442086967336352094777282457769678375348017747966913744765654303649601386117459858007978685694077264605387413264012101847337109757462436684041688432007011270735321533131828296040880288497544468644479631870485246745119426329844303446193283648249619041545270148454547577746506780813626238628661097018686807867487731460094353179619994503483966868689768784871597656274422879047034695682773272759560740981876012462705560051396940605279017608076506449653341507841918978567574138648325532159408897870313195005418429940240882572431244239167108462913556545437992822722854651995752557681609710066563424812721130224484777833002890765644805560022109532193554000861277066170011557711137529956180359940905611333962033100261093709078005992922086898288934410147691928894134770080973895719657674782207383049494793625840697349645943308388695207671964265887182539831980804230488157480697714924038735086959280934341194462221490337177755479587347278241866027270550280190030331746523694184274747049330305682866459482884942354929506032658592187854831944955834133460741308990544532327397834126503588917945131651294405582662755759475106539919519007647847297093481756187789811225818238990915980968289169136449323270509479581287762640330766314746868849153745995906923928502799038689566498388766974417237404042733863548663855378834468146408344045830683225354164123406538546605820008513595800633058326739172632634430318955448252633556359784792929280128548177483310653739935125422726498069317042034087750239213191689032814106487865216058348965668061927854925006520944067487842582235230187835122545988178851866243242031000638910941686745400480920564049390154373071413992831862018963422464574954781367291413391209871640591100490190010525565529832109282008401894469822199464017950993373867554219929161265441876215867981521267644264054045028751025810037059734228330148795735790392908943716808273854834332121421367850754022343378405779311158151722394866168394770934818218616003151109292641785886522886710620958419712632058726188583353318775256579608199966358041979254587375543145754641983461265534871326831843313018591737108430874400561520848703420081612547675277533200333069995552383155193799810191249439641577423963191412280976873564316976199175572766615644625279331206434003800514629393719113615162426476951295179888139174373839486776880708352676409539253136318728562738291379461210392885484585070049106094681727473683379203945367195672981603733603902296359641140549370079246964263066939230523280042639716939808653157433196668206455431572419348874829048923588752943312459688489933005223853549706662710116784264275778837452022167255900195972945015045325707845922789489181012096361994500313346120898774173169286363652804250195101700864775744297671097172351505638513251268902330929530981504029055443391254301254785886146523150685083177493901172720316444502619948615090993901784430848126581717292601404865229790781902640982157113868338063045439210888609460455064697088811692512021809639077215239551337074436987150888212727317281674154381672653556554678903314372633680136325513027243916686379058985965902987377201707255788886469846198140618659994084429159764013799107849934316318227637113334217145291386342499999043406984614559309325064646467329975114999441698375960019328095171925467672925587983691116309007333884001837129221328369672061489746150396158438005938817217839031116075668984328141354072669985242558894356094946638567671554046116633596003630946476457357699580185139890233374555719051332855783566286630922692970522628844953449531947273549673703042019298784068752899575142686705444223747183919087752827584600493738846933555467249246559778229074084799722352280563634498576877745404821848677545847998193083687856512520615149914588219035139632030507563777076080261544481142198609782536157325684222432060010731213707051866313632507396304579209376688407336298558590606434257672920767302161692947697856528310648727392481822820219260717516561409132692740140172115620741230624564987738091126449524622880395219098483157922731628148609631182699200752812018360720386060608568942447101545220591504944670690870610419344145150808705355724642133959394852402835290459366067555902866190584609588481677099179500917044243923387426163749982066049037438017789356829275101664397982899255761344027386508480663501312898123942839556742718074216039933683118335538001704201877121540517078516524829736282093680628383104968292015697189051526528004583328672692143830691704811101359608148908963902058797224530964171777095758382588912076461011540660830851361977638009879918759460823317888020459597690269256759233728190012396699012115542851224904552268288350348588569384115749704599305821571026675970985813359013833090109476368596427395152675001632040293824924461928399403091019299746455182130232053706045264086528556715073152084638412987317696034462991517632393418778290443026613148351244099504465335813070557595197296375299149791032793428802623342189477888838109607493253789300736159945125147848466694339027099252954635748017405068572683632592338858811089409105205688283688279003745104609154421591824688251782236353312489500518092076210141151949738600441182797149063293614488838010266571828014237933504262918941706906267472728140958252853150357814476452738449189935636909429920483829135988414326079778278909503804092579850278403629395346538258420520236894835154705785907532810237120190085006336325744608302796634516062167281329450280454746832008785921080316285810631142455457487421391590208829912600167834189296645710546033370789399659418527608578226394803802145064671625057238512768659643050177698609809489865129584352866378353548299362737287771433579466166354210330135841692057244121325554680216020546823799597140308174674067488930507051003175698928853632000598653507622634671896799365220846986038865662068395022829093870978422468475898625022610836190991950340550865763180215909633686386419099059459260762928446525330881536709757265275754382624830906629540529468690732191209095277059310763962192489956234247957242644169902824346208841278549547801328560511608089541032195687578976257093866128983242025233954938453576933040901038754478511305338780167191339820419835070641896512640610461703385705669345778378625304919100940130685435223144499501739577307442907074899936323798781206489640757943148667818856780691205674174593012371119990361338967815186708556066850172624109457342590653043910825055041633770021581134555237233378101553203850452376505446100883884103668525294251515141331142324272000747142946749369028297199598465799024334936212319611514359080167979444188725781104057012156256049042225245431990362537202417492842025517572841322289292129171596245617936109121754091861216657243740981429663231784262010754575284467969272432854647448921993756398801753037199089418754272936001217341924066828641402036649946683781811084913471935758666394211600942637623500989693632963689911442273656130825652642328691398190420137612620367804737703415872853256183436938332732947036560102279466927833183454574263836537639015580529557188349678398611928754413084385613624785768298949099942975058949431781799925797673544641741982621303550473385924293232755783903841439042467969322282312153855882273810994494612489058838698082309926614999518362817920318584850122717836543319423811451459101168878767110108379322123451032052417579520541156026243476785915889089260129235824963863273577337195713844028616809869674709767980300096195787574113857251954492961497618651959272561542221579593075848348122868732632827737820219249768025081602271094343126664006571040292806713695100899880419466373625215403243458246571926931467860245156435735254161205321033536528909338321877351283980753789171371697820657403809826946435273820167518816798027271660359081067731906283144247713693421677984994309830425038399590218840936457986333275139585294507435493174787781779798793404671842192963750791834049288059488469145011222449295580926672769941539541221510429904312498266192863987654376819107973417804622079313932572599721671553298760733754802421499017432462042525045190580516603487926652116954247538565891406314923798562360165515955155853836883946816585993736059551202643347564673041463341698463754522273528479802799143756373096146360238345464692323369880039142394605520693322428516932147794660885795789891446949669633689533161353533073204697730547356605884832602493776350556917307369264646766609370191860613158770334362166514657190224455544865926642352436143000094499105161097058306404826030923103900993876977504190395854095329804037903847820380162728818021134741028007619985740355692593114097036033591375997884852741753344756093163340757181977730001018364829209750758487794682324061205646675681604724930922864740873544839858908481891477681482435371689099872794087022423169922505104119114219709076096969549430300734359962931928502980754318606485049713118476728677376005794120450933389054360040655745527072909687239420938898094721089217851833436078343105448360887460402420616810527713753049160184122819016247989545507852150649194070291993918218540325484799834312676621484335445392922854787763056755612139190723863702419528407692184788748294485958459681677865962812289671173081537048425265346670263393443641838327410003772109323597034208684657225630173353312025463216163120451811770226012858862489892683834368537693824240371655724526228014531984814767007373751240125527255755607512256321486952548788071861923966827031652227239613852235685216074466622019020095154853656801877794872414417514333927907782950183129870554013260875885858769220286054191434512484413643805388242089681777411271944977756097882828177984155556525818734346846051266557397481328256089582891501002862713144325240106382071622531817678571274300585975343180121853743883316239577313570718025175951202606139812330264275413984889787883015363153325738103598902533939116210740761423430629830260348016516027452161856440256537967885485916269266739611275365304364594159255329640771794749710766503282742407287745607986807282455677509022754670656099852273496409964120991408368381098513435688521914282110449460482048256042391935890310462599540467064445570645804268450192938038005492625350751865924236530820085470738408172649139736101403025718032236647918705627984186643768344625944533411059857859407496337559222753671223777059888671304427949884954186437155271875136372180505906464423188899045926256709437751018422990004302878184527764595668435595803117671290724906413824116421711564610938155697260661779178800366132528334915612971615105655330879851933411412231556158513683149081124972335606788821722883667304334659347005815911108506532290674531526682818575626868902670439224113768255337484197506423130884359199197392733045176198501965576813875272115900068819342758028769308540981355948299223471974763979799479461603032605926294079307633864346361016310081609385249416674522622177781158463896090017521184879099083047832266275256285239253160573525995699279340768187631856285185499139028569337317117394585247440268658232834960579337195045823430218980728703705989424372002944012124964465757600897569491139600179018284916458294957200574851688954745343857988867080616450819284615152202501142042800092054288920542007891503486873864921262092618430725623203876494324809439790008798834948913656326936904135361445298175634438209287374201671007675329518414709716947325328803878366256071379927192078023232874232823997234833209100483783538291860186757340856640342317211838087477959439559920036302398107147015166741592058312411434452153370468351561138004532524353826686463013761019065706452690737370874000312903324029157631203854934915909011505773723209344934063451450108480933016955450661604012384394881871091952391122500370953688601681991566491509162259619498426959651031209346585035176158319089739989466506955667078968370543424499017159193634788505727784123084321094487822533713392522725952581162781912036259495310624247651334291495001495096522901001701553132869626336607389436947509763979964596855797275035860212359339606280838371340272391252149333321892618315578455387022093353175444244460573768662732013428488412422343422837451697428972370842805609954940216962159628953987065321887071475677192896026143265580578339150237693265524171101188548658213248961237170778397839396458744408946692492738022208592930345053738064186607618975177513834057208967994057979979231927343833153035605461816594151511658821017470656060942391143297636940048630719371404042456944235492318791481508572930701995276378996583571871679357009763392166740592527970221717508799748161632833818143597283330782109159598833264044757899502600768351056379337572331265136245982837656481865495548976524720877771388747309297139792030080752517925169633438529689633451161296322724282084188466356267656792094351430040165047664307460056507373520437269500139406415552677358145269146582094394420471168502823282277542312314246003804390846315123558623064436256360379095221369267921756511634352051115734734332057276731075546185210783053187448898835631902150559383133160181367313833502278956924695523808566305986320665491550888769934131103490594921213791968872021129219113844647189142345366312947271315706482372079747256352439872814917107695948275453951077966912614303182153375023037061538555757931655327273524555334013168256536134007788651727219208010737153909147608240412902890169288477534756749712169308486260396016323513874260842460503043870250243007347748363781777696017884519149605107919729501579208994091827436805507688368994566866250240182153703717232160878391774606013970721059089660369375875712679543167762956631837918472085104057660738320344043090749767822435031331350011884692707998178623402021843507920763310307565319108446098871256479446677026201892119726169358802848216380773958099277808716483464794308955863087796032272332626693342502557637220728461524113101536132922805901581418500276663851548205818972569883344497438064745044184020597963646524853747050204025627928747834416395287277460388204355305641495016759831108840485018784072530992481467077934133060211342265183330932342477623913456822764691119370293774445580320080856947574867694238656348137186662634198924948885614779011379154889868702145447872716238541995878876983124789220555830819106106466369863866200581959857831590964892390600488095160307706237600664049031508175892447436926170001425467061963031955800393156367807208077053789030839258314671216834846022411239192056436624353550825358484587611221091162303229095374881285278227799875550334243355963497279123053598092026310278574965214211338753176734728331306717223254298467432794227603800585350849750855589789467804456684871687975344437647543532898548285145379403674325008331481997952037867683843730101803496695012255300197440965459367609871091900212119757001939079230638615963887801783976382648996348216589662466574970867512461477764461885385228922033524574671584578900041337031665955786844235010245575807402706831919099228986815625030989626012954437547894564999557096667041788758169493241636900500303054410046522143143592385295937918110626166528778068230891910882838541027022205944047412951277544295104047474555871532465437760102218278687643105750824558731096352809130106593618879919806025653797847530327741832199582456286430649509953613463783547926682203232897924875199609859431312790929123251858101752833574371865508547243430850871021501017226625168662347954068561551966165063248556509865488129385706432255885270978655627202466158351708077315413041974852694646786803967386080260933264709341526066774063530010862695946619245216302954184026550440307120940258834603552303177984017694920740874745014179928403859007952729657414182681805613835400073556631845128976542965165632500251854967739893220579022174610318884649719669345756034041162868747033260196261709107130455904496738164305257103952429569106324821536538753770892002789806100488448122488652057547479649770035612438159883486771209707936765475270946931655975267945539868991319366605551521165255543493046240003668899689761007777589609939682526571423622793266855097950216108084128103902816692707837477991021373185967163301619083592775203572177404685856376136721267508259277460946472773875196964811041687148278302090138434428489039191491820900815836775557073877601524866951502819198061342165313948972448699331611113491042341647647229618417221636805459514915934919238962549743484012849595165523313261494956178814173679805305675709645090065319063014380249596093697433450701747568660607210903848140256868548893032006671229910400537648870605686098187705687957590957638623826533187767793220454394243645993561558537990032657990117187759697309118231638967617877727106475557148120398310739092968494208953372914512075308731572744583468845170218020040062696793838812187346985942011809764009888866522024670539176197795648655065356957764958570937415782587210727368671885718088862846712564033634448170815213371167510831805328531627329119236736194928916986664252759233935859926107007132081531694550437276359460014288181512020972337599808220326608930658814352736841128124457878518202865843941923247645087863965302580486019798937314489360051436620950898031525638275274288863054065577203822105250955438011065889373723660615254875340264155061932501133367126617957609364679820788650169999630776289487749664764747756728424957952650755796548422219891215339430791343340030245725528411662945309143778477261048814440886314731087861762946213058622338372130296718462990616537120801906001442535815990621242289886535700011685459166295945634204857088506729853656013372826171125842755385317995489424445967272196097268060848215691060656872864050162858844559627851087250404395995955623228738601568786844566538115260255287883283600884380456873857171231083852497960199123699004362165516726495747546033927098778594038150287944110527938099390092369089767948675325869457645171487872245082985495656786108448995971549092748634153823221565160482118264046522717211121892350896190343233776848259181728403636678189569685220779635605252797602243890882724857764760715211705976872094483799217900004142267360262441044701658978273814371321765285040025659811745386851436733082407801051206947952154709269430681131006743660455047856562805500601708859043462476103269258630329808733857370188677690778430095556587560503472675959927004679677561521488259411289185584035431282845854113639299847283798333835835491015872899254479701220027979543307645962439148760455640856475332774038503549062928117698582732561499353374123240196128722891411954966543038738911597302267153773354342482774486977143829125886551387767820295687990207664006966399283096114578813637134242835649528652028832707086734027382069773359768026382070128798026429804254434776195795351816914038476599111452637230802408651139577647974508079027419000171115002178084632193669325001342368590919907209158592268831804803342991386401054608916794066836304331473154367436880483279942350936200180439822500970392105455931183467663607144212747751122268401763984285706942515251334601478761965769304046628322652198093057352933422647031404358900086534008389929489563299616914251735206807770342873716716791086809815112078787037444246254287539408889457557509520378072013348835047434880218516408369621841769821201613664903776640042704149929880256396462247418039716603591855552069983260035561364148792077727008354695497350378722545207167838969078679801786268404485507162003745947709385672805885606820915289042656302810883058375595112658002189083894574520483154658093969002930756726176935085314189696740036483905114067024573863924862537054890987363813353031224575600285138818909521413120763861718929800909539633328222990883558256505528381041982379211520437898977692388245052969202444306896190173628579021104359139384813527822192385174286638691785495277198786253216731913438365509224545510998640896498645354880041513550872539006983896417367593800916710705682230516642071254087193194060058988423845793463940984990197430293295130258566291737838765968906518753928645384480036452326593007529726917632835965656950605004264133825958115002346029508567528119097390720306409245172101605499143361681816925846629532599338059228868405392126813894586223543508607837396999764899126815027138459960997510258599371393446715740965368669786057065655102547634513222545201969375744361463158997290622507706402940780681361756220628199982886885906509187610622082302852703153200024067792968332436108719571838531733606491307822172882317551830058905577080330220918599172635292461009447784690199666767619412192816842178960849323046132739722242115442069083482391199615936807185434067516402835261988249060241217175698472920445144321175199174460737073763505804442525628249835453440957220468403096111102469647128316677935341534378464655736134476924088310012740015894412309145847149009346802367341665333923671415327432134295496281311416933256887163566313760830514392416263504006558993645481103080956431528768611868340807207635768132310248325253164951923696669450139086325858717835484831497543585409857016369411388344543623406313466061790773986609490211923193881561277949347593674359364344089728483391738144554032513014976413389585159372226166357375324963720769056639172788551571075505277692533807579927581727138625072299994676427544259992023395336436790079589812873177427460707977289499735117169744956116805272435478867848690464878828067591408835297711705731932756634009444261642781566536675464222796471377644002250373779489701102300017014262237712438067860790043194963924336241089090587538990950352750871334703878959996875901278542610741563109728500952440097707710227380363938568072697842901483158811651204419758865228300810789273408038396406456460025947761913994203668693025872383377273261679819730065375967740159313075187128175707909903579647182674464364023104649519016161179340143893844478683569611641684584125941422912408422938786110567321548534151785620123280172969749131374458230915812416255385453859470920825327708654076096967342033673089027132273977445448705956915165652129489348509250627478989135422824207847028465208745603971401875496544914819966477646993436972904502995894618700402289826030385583639745707702816254575507375704914153325351856017234560988434083040603706914451375248654462964111847000608550557671487662649663683675712601484547681801343711924922611293367042186541737746368702488870403710816595102409646673144640692676109668032475216640220425672569344659565978229180907636835273992612777021420152398223502422878704902096131736814508916111047222364351933314206963224773580461854274303859934127420616699989067983487424932598571959419718223616367571002529879968500751065958390203878934011583569497615850063936542597220374371829799956477402115930167825929841550803066954390455098492271511015148128653673640760805923824174536384739856477776908992184866364249018264338573693901127563475195638527627738996612813535768485289149290105174786367403630814255508303482812059521060831706566561147619233087162513858181355247827927595650777021305964200653836477739633163777297469717552222489508835168696966391078520545479537555930322073057789338193422814055647614112975608996170063860573403066643199579427018813166614479653713031810898380808223143211236200840794009049666311328539156069478701387951885691408981432358227077351695593174394970636954880930822619500666100875306476793932346774581567104546101063804417389111378769314150638088562236200247085606132708380447891053873569958125828595227445095516528736922702176731440316939652436922947774091071640256938405674271198204504367974448313006577678259522894810071066482740729096331829695613155083972608368288708992169096990476612050686265824964463293175120598344534286049185208303867642226831847761401754585696138513181849951635620563908624109353085362765152722513777590824822335347018311963707356963909359743534422148183201383981692480040221328991191234144937452731372403187203441093239939489945532536538194666419644207986281108767387610584854722657716485049378256229252118847679768726088352434609327445206818283863814093812305311573614223204300300217346573511712949469465883603796150654851499310437133752497506325228183411861597855351447897143109815731723955352676242209836689167874840561636889146728192616637636972585488897387176272810786532586738351906232111016616801574864104389717405399350969741155627060141499685270034463276680007299374492127295372691970593007227255485716286677633761199749601773098151989682840303927322032310242207236476138340183281469488416197844209273869226168518492246358777842786577656050201326808991903274826512478626538735007972987169414131954150446870681516795104886205497227699192462612815628263812538850396044659233369382943418242717644066241870068368523613703532140303193236413394015097229383400350481947786204306125775313890149254592006592557623420518022031043594730122495534280196793290060508470424327466995726002504939292430641836181831758335523772295543903627062122856786611793762341283038148284376860220821594039774591162455539886913606422219707414024404757559183029428261783028288463983907134155004469133035404959426217019040845794375562962701554504104987520941616349445694514312634275302154901409983808661253922729988741101981807843587778078615771173012423834665288560314713624035055063118710967763343772306289457222081933191290239772801728567248103599596821096886372333203322316047263601853044509614979171207185158684286155954389123964900770074374657372531051789662386236668253040105865069903075630720449949596088770134638828448399810533242793453885497327529946022698098471629092410343981790377653294558022377166018078065677087343790461689050309626410476529851670050186042823353167562863882084789684742892857272393060571785509726194585254958650780694109513677269118466024729674389381154977762815486699451468380231809515631163052428852075519711893202163914077895477355009155796447456336021749613778595928010685478861037814322315742741110469784965917206626949266366264184143337880706452900231108027765479235273271367805741518933107438764275068088977609716605083545195015932688356295811095423094641623461171674513967181732123614713682780298825672772349503559080505769180543894814894128750317460050124258660625279015932801592217393641053005930992777103036163780688288184755772431444521612279055784183803593621187557178322171361352529955464255385390593063152281559866525871880623686979756443215564056338384448722655993741871229017680505240561133470325075194117557943878129306109601666455781161446347186517404072992641985071693650173310835904875465908952139295111609301513080407004003272626721649241043309755063348610886275442390562153834967256020161158109029337462886208806143568181638112929065151113362299695519468866536443838301720970363678592074095804136120191757535964664787368245357713801075987637993372962035166483487980308459003551238286270210500979797833959964724631538544443325034881137226164856703099587321186452637394061320287293665860006975131024457978288454048873079149764150189891073790272661400960729912596546487777143530751071258937195396171446548737385955880384033330932159314714330742809122644614940285970024759400297874765066545082999104864167373084266648087411708843777283496354340048197904402990516706007814160902389253329113779030497902918199838786986243042526567079020747036012437558425075748927703267851725905056661412999366166860921762920094349444476475365963323889529700477266303375450955336469525606577657695882387846131234862820794587106468429103424535882349027246558097053464875098066987115348289069421517880189188613200782058626041867342671876753979291646693336109399040188976719202845879299763197354878736333126543203631912355309225039343861151592108753677899212023374704625483588908511902231625136562113071174731705302799379515763162672576009358429025757697004108040902821198642913554926074741498507997105932691521950988572849527586217399188191047574780856802069330052005770135957778279519134902694997355026006797073218185101337747059612686923007444475431288538541573064231476812053397663809401661573093983687710809972801264402573672771723653634100048453531035870885508226769666612254553700101646854577834454330183120946660314184102889141780706946443665831938115354256761108687876125238027519410415804732139283097361528681814621808708789206686553341324304295143042516561963391482459194570422371610277344834627912206408769274046863906144218141082537999336285965057141936777313979557380762508778861481170171101160650800079998904395754855007277494705852704439929095224404106055308801167962358395592459500520939888569336991051878273892444605794771053394031465293728492696403972174952851354440658742423474029807365189955591244044610390128704587498255781283126519360293546761872315922164504829766576072553504817990296376260380006340665522653669321683488527676641488610589431389618082256142927855886077996697023160211194478391792890774217364984920589816129207677892587385215594059749477772597555235944122860837642835567956170976583777983482214985330923605118693600807976790353755654454644374097381531812360542087386891436056250591014777782658553358322138378149907610183592614874828328190629746862156110832834209170218231917787124802832933259456424896480999734043649564747481450220475375405914198849137343652063286284864330349207011735364286838008071808327435196031319557344771512626945333395525214581568141360376193580128708468994154406005074285101341816602520165910809326449415718835213388079168543168305649469587019925411646792049244817871480519902037736598775484018850775413615394927597749296008839721350614466252391567714540949039399488038300814838937040486041060407065023676375590833936971626686550173649782559329849202304655794944827838022849262447827752298438782566061624595394473034438214217321525607164042036599210564269332910497637813520931072675755062991348682747319813070809436252201918091494414981999231090079109365143426700386498622897499951058442873997679283035421864590393729628831706249487274352967013137388339705253404986481700333851783160411052478908751830406565619645768204760156756134759938313565807859288153758475036439254098890990170636256338713314063695690057355082842006711887756958937167410230519300324624911976023133035565084405400970075840108016893971726802937949377280627138800943637185941898103663031031009347153047265046144381060524977761417175543554128695505802983963376914434316580601098420680611964327661776176392590691437954191139115428741482312441459489376723927428221990102392482289169057286936051578473194865861667485852630677886055757424516530107346138245208656206774464370089480028308981057213048087005154914124496100562573307624158380038964954102050218312749890603492511621966934764538387600075853852875300130725880156164423643499242441025797158831822311330025982142852588635593272455747279998447146888589993380675988617189555740560167489256764809138343915636403764324866061916823460701350889549242571211464738762237609382031273339043520301706627343530459611081755791499718403688320798275150998144099330529163870599037719393999185780027031546808437922210111297590871044246541014930771947175744253402903153534375051931842621232092583360545755061845620624805450429507073316301204352419705277879708536281695123039511113844084426208979858723363883828287993499904669084203165913709851595663863784331694181174004974173282572081390800799291292418718304208219608805529123933804351941418158309006173981538463898969097131984965671622649634626854846770418459228281121310427470108778287562002344857777950965161329731023828856702087586594655846964218623458011204804989685475217179795104641444006628794524851840074695822897392885927368401126584418989860908206917965275414695321403813199477684646151341158684913525561451216540172867282033713377925725954644621262623867468763527199558311227219021917347779240797249539731890488838277238948462241298085629052808019958951204328957273579977596280366023205130592775101370342317891436099707329166761402340128393211714835835259079538495878266945178105234451449505907970294612342051816068249658410873395137559794745083395646126101278020772655630139247514464605215873237004668446306679110243448059972717124445131459495623411538242228443067334021890212723596612858966185040607002091021418154572060094420427144649643751114996509282542691455355598781940374479651607394729875950141180783322182699658520798437920328450413078031285172980976995238299723135266735404806073816426492601914073684252186212910030043576856199208225485475520263865381641042239842358653085729390531150822533714545239838749223764861740179215448582051917289869998094671607659411526269337046745497580132024707592188554855294533053178564901439489975229947100493756741833554845282030307135016992853561973886315105760601411928874181881667823942138898131858080161018741116420068819991635080895415038570900914509524906350326306198820196064324585103138338977138175584083871684605140360984367598889273008887342744218030277879143709504420033966355640815955034772780534066908574628630409740785068812982157259017381592705671091913432458531276511511938484626226241985627020059396396887149616534521701529259446408491344414396461035054861571879132375978772888244985025450583276210815662851200350640767251475064476236184395563766464402016754986930101101657506650230138653823270697127940202544542277645719188478038474178945229071611238639348239949915343595113134338033434705409120358489317964778767065102735129771847580927780451610112327254380859419799475437822591522181478335374390960802203973174267400696015268888086179565803299851943601533379647230312702987586208285323574373527474514960051263542128776008638305075674166783046093763531425126156881598433912122438619528080364541679314069403511061493282192790717960706248415061722833904916408133122581875946943696703020223221945804540388029930943025582470038074004995776655260986023048631770425286455983441041965560755250873138362473580140067419555407898590335601247209827028996471234878947145694331204398436533412053308082998898238963495561556252633113104058259670899296826744120413769766650091935704984164980168153065231047979433696190413215893112941851266322997085953277487990980488388802508103023889132650455321697204695369609847091105446061848243977586335013610822063498546477355338132707982495190640289442913818250799132492849424898929166101146684186626297042188877831375768269921600012586275336263376500371440296131666381843014936435541445643860639482209273803391291766197677440596427326111058405916472860262612999636733378967717618778570164601168896842155312899616525694709379121660555789140665845424624922663411819724678551263358061672719424965259740897698036974717165147529993408353668779038529058355954232445504677924050940564188403188746315290071010781419356461636826039319716020485187757592032609071757441621009189887677187647667244813681604124068721897985566072939933696450021481343698890098314491138568725457612535693736282348457773769441960884962824112955665997207919226923609052070229390736262685807015596883672637857913369128743998261215043639750331442021718979934652495118759098679227136741324800002600568183027202412385715875064606871603296151651050473483670635474694976701478084319488652287900736692772491412942530586207641976013737242319139965804898620210603806087092185735711186118653471177621560506636719816689497805892745780478301739897260159226376258976510794242779555464617473753019138463628556307672335894545523632748504573216954362126611711341970982654715665176367419313995788241181318420872359219925484266213739548892766734956666266991516324052732225853730941698775108938361285350718250308072022438279231932500446703386409204197512371473429964608290160569614264846299621181786090854449071568281993586543868157341668062667588214319527807491705727883957294127795430555183546337015326784758327088737719871132547830015097355225792994381605602494908621011840592435261705711542282898537366522562283042546887975008836562142554789574282968927874633090035664972430509431384269291779522165667398847080607073746071099943865846632053378883116551620035071832609483025308500665066166571625932791655313234501088281466847241882938619023677139737766376668546626425276198008078224563194541746838071265925870373684164633152720779407112323959364764427729527758566520863985316731539370114255551807609144115628301140688417002948410979316850312298428233188128295885328354749469272218169233373833122698968697871881686933251753548137469123390763159394364814419131279709913357908673283295025091304575175083660897931139608735545455108626401909078770360333849710525318242759539021865368999772674782308097072644997203963739282267475783836666634912764944802252596130716714463429925592317452434507634362426215805097139242098317298925802573158499792525234757610688565214330101886596054029345410077159001251641522750317104571083040481011986511618248591021773418790697152773176737454015078132758243425161894225270524920996866742955309990235173029945965844187036101673526125053022033871870339108146471655303308985465087961642525161739473507806947777182934224973527054788432344391301585050464560659259227786612470010797801904028812072269105648944876268382825543362259380649786649471053007042961973956724802527440542509680110070751174989077604570635386387590755236234487615632681772213163584938589950790793774739461034129847044022186965385771379475174079171744266232145769385990591714511024729092100743928988192503042732398789708008114982567783357034642660303888543868576821023510912372681292542176148295523860538078946106030611550612647733071065759551261201475815567993424155370181220627549370394119977201862587861689945196141356170233422792239280942077529098181167420338640852240771681962772209372520934396173527060264544251600876837731919637792607916517244233069019602767187049055700546845966717523159956695560593383891499229080921989123499998436681218373530663555091482174303969172585171619756675699962155982145315914206311256548141176916606015178859940659213157593503466918451801105981237748561751724729527628578349174417422656991161081133032923099740302613136015292312992404464032076858480988389820609329194571358638930924091877581874583012551751038101670152860814131083585329528485872836623577516640741416724544234432364759967975341371073745948722495519272921809377217738510486862038205699953862334179488140501114940717961778824234347040316340696743860338576477995568781113109767855585748983472672461718976769565633095862645973648444337085483741416133978218043788057014366555853756607524586950725807567815928384992461739405802767040963511678250718983740197267618440131617738205882544694540678270823819282148731705256649608809570144761914423576849320383893591920969052470918520668449070638229499386148716590901091224083971677066972868546840420289663159071219417938186579021032342689584931808389894589323111008389224285759839629065624877701612801729905671619499283107818315902367115213399080842249054596933155515610522832449851829888541463245340568687780774566386210934786676229426917842261000291501829086250999078486515388827917153788046003911596931406672045888128325670223413848765384236719721793592924727202026859108228848102985804083690172630799954408301824632762066976894028945609778910067094035948345239852858071482665862058236230250579216665952685464113253446646757920499940196499171417229185139903773574432682766061208964304253719912930128721501398626914487430150862307317004226887256277334029844220341618065566257214721052857720548145289606639323977449766811695902115900781761469135617706555363969669978643700350771824856928983675650729513580848157457705975646552429122051728366888226627790352947067677905464166860911865375719794951277109153433516031224631712067819038602107932628622460776024851547128880170583113622733750610457770471560101790077393632387809599703882740156992271923697516060972422185913180629094118261414574560587063740939309806594944929191783969461398771598126538732216810196646570872410283627750198511533017921418824841360982801210760672459870750151291091164434582321302970075128945806468073147223438082808543452971260195517700130124373571458706307685878074470321072843587710139196435951055485210434483279990048764371080200474226857704886022965775363852393702244608726709421473073869172714378265255085255553962296801623479246134133214198440576108100807367072954430292776263046924926938972151083862619442596701449842943210426095507306718771957819918410638439682451380593431084385162801797201873988184189782277952225811028304187098541294250481690914403922545179092500654141887883369558922175938965836900812238591133272557218806504510584977410064609079118892148224880686364402782298912280652562839431841854497032501797520342975664054552687164540889125021879990649740706960675378030500617411479367833828917471766123001391029593322337508729312888383818951029636410759127107439990234563508050838434618514242765579087719565432915324016892783189451930356601194175491786391245162985377164691933070002176722509213109265353241294170740732185755228990060351977191613941809574288995365917865655183042175949671999955192079335629189811337644884926185013689998963807410194994366897423971347161974009784118976022734899482839925356963631479678165507362773120746504635764312812429062290392259002953518828558856028015765018446280578826762947438009484274453633542170929923097152332824505404409211642471386175534893938098360934474012727025506642788544215290952319157884699989261420956140207710342948140860484267272610262311919892949186666638386978020766906895299988205968582295481473518577329655138522290040011873692753076853009890300591872161236826054056155822062069848997343942479975516549368955469716548658909360035348748880688826707029461594857895392473846359260787768016956908134647847434600897581277391066580099297090236643065890518958164169710777657523970588281503946937540678963545606550294772434949362556017900141045128938786152096796763371870121129500191962527000563193944395142330271281274258904648451393041804406194921918365575902043437066778828899725670994672257038450603761866420084186267368621678236915964084393669969995146006002208311042765023934303268138446483467086496989830372014662805749140089290789975043448761739628893604319918149557246519937492580409068021141925045753080017602286206577536286172147370304678063275044671493520125903767653848128236424015819995390851765585155428758727320910402589990901117362730541651008350077863626288362552504733515928580974510676814403924503899274798103871603183202697493621753969866800844937585243817516572624554661521948287167963620229367169042034084467543177524320545267789163677568706545449066809873390062291225311523364592238736808462551725255553590799001687410197205903100922560467252106148738356200098442199463305177222900462798396916373352861433872026087916381109021402782397626342676001984710978650676797768617925719215385546592584775127217284991699463569038288078606694074126985252749711730427774439864162087243069031837017191448478235688913067920047078795223041963096433760459538534636688580887426386528830037864307296566535607443989580940936006683864451229706865716082791540667862201443646596706808217853513447561501397796199789762637400638500807694169178431496766638693518942558875759008712422448826833837049405338501829409164402052240051421402858455175641723957387716895980894748891667552037266307859340455468927211864119837490617990990903196654667880811742162727521995859922203216019557505800283782887451623567110490319192040629552317776717838003168811713808480726222153070409953731195111617757059399479653363692680168572413498504504128805138465916365907256574559362173331573605123064365358150728914291152703482614065776659271716536084344295368335240478599891272577385459665905629509857268013781147519550976145174095644200548535388102551362797020452550856411721938987872183962715857260644775809164383349416442217191595314546528392073539450851929634791975052375115606586990135168083481552737672402482369423721026698354673130445706247392152245924288173460600830182289599012480908245014543944474517334101167277786965204294144357720862580729389452038777180100451882219460471094910228507275964425072411569109870579316329476658517714484261748488177187774826566012225970692004085618685326608659186772602461086106322866637444176130205856486592118477419880650576010522880330307564997749403914246219468194667131589596730767028819461657900629256473676778062301050147586192506330757787287902687722827671738132193391575770409988712173773120575760985747494920966242571546716779359842727071947868852590358085133258753005449720936152544951835625948743396751566198066702404068238341512599713477983573887197028367584036860339172970083476809302929343365712583819922130482104662061196889435228988482107120956245955671801127429618649768149152790582468768927530690348030282110970569529357616082212065411304517618813702840878773347384538929075832791059298894359503583887456754974054460050566028046703884783376389907759458207251307655310562847402683613341001982729617119975017646709209991555885358554856004103965258434014299809717740173860327779924878257454023604767253705348255559623362993127081434120491740057558330453241095442576239855611938457607341358625121833064815644098626351726940990767437446964425141762591534938273015009867298076228953263000260641227423268239276693589926522242915364983635123191267957663252285209757241698688802742725514619208050237419617996694231703628596341918797357391651579047046435295554389988175670649361572148501289705311842717136100244942375859775524168167614873527719275176700730576837271684121651754503581073538221758549065711306774357866135213891370448926922368055916459607712252888661356520808170088646471471261194378818363120786090074808337036603351263059354359322375223775760325619041911756657320781202275541775357468692310189753377464159705156284819066894571914127233879383614325835255315594344095977842767514893504439943603134634881845625482117944612965384097560354828421583644032116539539955993722169138236710195794827423635392715660701146817489195610675809500043955013342303182208054841858130586315943662731986451205421988099704571938760938488955519670811611372864057026070852509814961829937856998766708022585935899685605008477286151707630578824044245430044277795797881259143175018589705866844652375700584253943043626867221864040758535645676403613338016482453088984005191044826372681579884393352327871837967247080995029652923465507710766956894517268304332883120974401267574086428592434382672748648369533448769751953098247755296756831996467452982043785866910716546610660650574902245232238351766674043588474925651924501355197545264152418239738681934472804030520888911220063886880908392732720486903756160711589907090394573639383544266403810889012465539034641261054262860193460120356564159267595638686482449814577275380249683020130158954868606028944747805449479559479642059208001922514159850399310092828882569205030830783836227395133200595809426125806894761715325605701933046332520047948648134932636003192365574509558849906297031465540493165631546906626213232376663269228013076884475634948917592487760517451348974377731089267486873568915870545889157326578802263147427001256020508789471485761547321188640531611325585365538128218692483871572253539587509503355555644170592750279103234364153891790056348657351338810539190247139130790092972009195766049207957055605979508680584703996128224640569724541878900144888417002511226980051960866859468810885628287635319996967232467035151818811444479279939014548451621003976760301483783949217524109992886243624775280557755367932074545052403245767612221857729809354865344169868999767887825162787619610161799615295807585432386583982677157753501313833640508354050080152713104119818806047532998280010119836053912151969735123701552962338765184603951805961551831854986046169500825204585658425632519054081796203366790258590179435904215531680438962283608525620005271242996758877596207841829136791281037114257050131516813410567046226249885961528620615123029759917784587125228587093335405585813579818139660629382403594395688755372539590580620872753984286370862217825933335211642646200397615590593123935484533723192731873438197335580480029688244528718528606025236528987199054288477150144450480735042687373961985574695902555660089915135066520616984753444311326830388739999329138774475283332811716603849615644698534170891372504671700476066651212266384806055449167420421643042711761062344500579702696105766282342858858403487493823047354909128999720781476451994367186680784001898111236817479770355127938587114266466594324430675513980005028971523625340301918680058797664665678219247386641000236711489496390993133857508909396804502793420781713918990637874781096545507643716147647321906903784245904826949976120567377162430219469556405723532432092523317250686308337974082562761815045845225966692717003542059019727208842862614303273585578048308761117659154285737462020337684082010449962012524260272960839826788650532833281832827367527691994206941385341550082519438469442971983004194165652110853878366288225081298146510036294835330185061233746905655715721246562802763630184497280123058568672593702845695958838172265189978425492954596248742693357504413553240011149301076593293049772928714622396795761085014412727924148907672395180226931319801699362631816840273325498620431895410189854671490116955596541733186482886453337307865211839998903867198033015078836187842649895295934248342520556509183478078701202491629433789163202783085087708962772214405068507752057721285760190370966279181047449209378252866493856144534657690149990252839017510191466620489335177447086822464856715437319542907277543024526147569661976562980041899331938194736020306697005065480225771602598808596484879248382822748548901026888435127192975267147244242612275862727863141743958948501346803080342047437178553547169967016270530891714120235622862720551159580674775521404269190410791751234721696086601855404113119203111287952707339957541055473203094840603530325798248383009111733942237421695391483334771349827007057699491636382020747448981508393099443692845141005147626211839727568752273541287537637061769678043846163807581916701319573252062731558932596188900469101079182595197140112543519864798082913866582065686723297795491312233494490274613882492390348131436066017741307194311793383477710631036177155149565017093840116336357033843057394000026743038795221110442687725186320126606402053582809652588509725159978506351747934947604285317219598152228660163091143461019055337510634446114026041720825420365454875940213244593679313227917049131753785252686347285277374810253146774146699590763895300176676860980491507411586533961841603006034466628445352222691365308078985559151915061490934608905319450404660555504804014536677523535830988579323579436411093476421324748394114372386425991453111169556824863638102852409075146507672855186519205623025715753848955438345020944418379074779630404780037272596092634906463194569598660379685914805782618595192842720407205927847946702469667938021736682059095275679459401325684727420999305409261113417366109290206344760075122987330368492400984529965586915157241294721566939163775723901949523467970359771499891297647485917199496615798517432256899817631469821508472706496189794546271461698901386413860393562596963038033852498676595466095701734756447385040023513409079900366626148998962497455404070305684509162496418166970240780669883126789236633222788005008881934924491020539460713258881027063033384155872473529697747193780135651454176402064330457409197700470147964860954978495723260501055634048531168771127902748777952051936195126593698191599830822798331320609867822227260410162573838838698853940912500977512240525176597480400216795555848590195968986441434666104108144116410347504013931140044578734277428978875464309332272011258544031540789693960886443600752278081707398429686232468483673802342429786795978851226433354016565376741023155519327942338491728324530156820783899398336668771707115627402449577320020954156982764505045653656868658985490572439703082289667007607356077442726911828189094128463945344949592511557934685524974459678299197126766009364716733699270777619346305642241405214450990320692308914899214260140232165306311197351443944172629775094260942412303264675068609919642383851153590806697903449523886110226151558784973291275147376663047267625734020061714140420847586186099555721715293308622236264019581579760604698696320168489184238340767323106079225929151251135963231304564061717785734936055431456756333614734082112802188294093705857628069556895315429747125449400709962303604148926956575902275794832822271406523921774969827144714077934931256602958361930436105593084591882536137208608553471074966437890170314826992271294301822458985992250481918185417526594609940447585954323963509815072886132049814506362889335578687853110794033538003037991089903346852127996732771412597208278598252903980866015682360795989582663713911956345899016688449647031272934501236266060282437475562753974062856771806290157369319656930782610346474753381941955821446148206865877497886377490294566623810986561936179547197980644924647122906909116925676193762877769048159042764471823709431515488810672973365997526085043993617333411460939443120770471332445806608643480721443828850116971222243466130978326146960987966347618496952971476168923069851074456527304146637047443966464671530627752879057619612996690403916891195796524100582314120566139562510557335896938853305718140625384204079819360862454076249864735240614617162971369054723053274977859900911339844039261910534354673160213468538127573925732297518574110236127420253606104395367119327897827871469805757372220429286506655033831216387615878385397968029598546404348360037729511911092584790052144364616558425601256858820657358378241520001294770634492096397469574156450276785354848319569006300494772645622866522530683120244398934929848144258415464879019683672410720123697240637290530253058056855880952864064246148915172752591608168832257762584468676463872545144746316696272890393719058978138875046223129373166048603199192572461799043628067639424175173181269105881706428333999175649964453954876214813585934122528120043810606922238630360104449952887430789459565191481670384386442095382970695947342687370489234833775764692445995765948882047829370163841583864099261526271639153247133234442307344893671821843208589154009739572361900044118009385437773865580286934151703658230875867351540594353134091448178757238286452071011887871685598955262281108451324193611767048085769644890322527806673800732232578765528776684616850084630940707688309696385053840897375413240116032135731884616252487892857070180204107506646977586957180909298487227674797654603707782753196162255122972818712245163573025708812571068039614990282069328273799911558002436674981726931267527392100975433376017558040582184784947016108740408700951173192267665063446137357413149566115598561709820288805761958911599341329021715929039782535810996530930196024198629897490654397964089921050663817563587632083411003286208258661177754472736168788909480058212611537719965051149026593325253457828861028138035173325931296514928849048518220867689915306257206154203504574935164318558928510433369106971651644076695059230020699600141989996886539763961275207665246630394857108464394600359067383900568358446191749890585705642286777537464541471741009573735630833279608882786972517430523693747807201705332043342790715416661458746217018721871200949369934171514299899113098875164818249664362385415590020820961394533421763887484655106479131778677794133870154395396971673402503705434962714956621350880910135901616914413940902375680438842013923168161729066420392572520603649366974177520807350630933694090072710656041909497850054605557051300574579444039211489265062156493890071614681220297283203138807022018209344131538813936032762816669679221985813640090379197509053621564633380259074350227694939746844097596686545942257185370099354864769046111050332875047758196970484456430465487960285100397780970573565436859892347736332039849966242576416331856738267695972607972353841662874183029889344966806615411816084579837362306474529706803785586312949402454732043058452799099696430879863684955484331410740340057028829104746586861608599472542284825784914319399756072174145700710409503494680144747023459756605207011539952006163853329975478079949536280703646649987693751467347047649754562813270035701082228360847498220091109617692295871476021579293284437820672974718859519126658119144208779573227603903743129882265302488728809143315737882179927665490388020955305992203920765760639476312961445458974924856756033053780125309609046864547033693140171362893335056355756759770777238032932588604502616002775089470578386943921266066421223571261592665322924347629507122608997808683281125574310278341569620985274778982910852717218714120330109850768597661519625315020201741558860960365664578572525786439589726713410821462127103438873821720735749555628763494248160935245976030794245451715213285795379453379148265018124614311360495291545471071160568836989937518465779388036884375297643209494666147398553001800892631451628249984011759715747153335496422964135089945454806523671518357512867037901434298884075430808874693051206688573515782753989179618557039920278670458827022471127670322619644930262546195187342725728769540782204954136145267461636144387907353468694206452316034411420339978289053800146916485551236434612751215154627755460183472870504285889862158190369136600606097360752513338312983388613881813717103345505109246334285807901883290316654858353360263557908575876780763169587892699954850924220154090474064737975194769831924864213223499899129430407934148894929717479215238062815375549387057984304392373345981579510943238948298869657158461189550873014934977344972657478280821246608153484919507123224003756925067986999210046689223085426546220999026218195859140252944171103619576335285631880376493525256109454930142560405382906567470777916451304115670024113230015597239653663456578987407007471087847034554940806664202018517438444627957208821550947894895571056030349660835987743442639205986424155072936349101885521262043436243556830318406980673224163639652469132496757165054038007800685255208435694454245455232085644327372240289385892671657737774005825681289780142025007913866040911269642022856532438136014509897286925659352879664399545667446469653507281958167484284732442928320200954817099393781772882333458739878782013946018585695189093585349652143542336604544914502556873823722150992649923385460681972692475101011385363315287972895866245807648876373604582620616880143741185703793135850797363041607612062524758717364114802796509399291473281233798718332346104286718812326272644397636979043074782982805724967094600780667743442719419920828864669540743583765940049896783418373876266860893620106127450554116085365686300946052207012566644601084355667376203379793104160777241578164605303037262342551939221401676897141323798333959331975880060297085204857589763254948893529416409988355722230713238104116912929506358412693783512568454119520136993532469760950822103838473548911350900775262346575974766081119541153000343389060335552190741425671156675512668660432164352353824408102396370881524693233022988213633897311838257839422035426009786128394084913331864532047624626568557922841919494379640476771608271106379510484447416401470990045881134134668443120912009988728942604631134002400884346280235528052599206682944554756711852064345898704499637398165607708096450682151112163065712200656900859229226162998287284153554197308832245856569329891673759235385877424394153611406782407603551058075144127065815071709569433839719021108975136232844762456749760183669180931975712753639504202056985444106855186051748714812499703134751731774045168390638285266740659983327008211789672730336622624969141962541947252321170745777495854150823775499708009755079256398719125549880699410520885955614038841162313695452254042833964613862617156475360758619852916728783699206520026481147167553682246590984839067803728098470387180500231414010396238579796080247064697798724438699428914232863543591462525598451503342113627175206534491849452769925241826499167286647113766968454061590241264067521073954710861765439045433327001372661726778075783705677924886247890457630807655363474121127226143759153561172107100751172318847424067726756785092370338525522916933591535898789592360850304306922432930991501629148417032283286674562319926107511085623211285043282699869978988043654518336885338621570946855459837862064347211617916592478801051211130075978532763470179290530276290831320538764146822578825490350437838093703816383791599647589863512745924869196936593414171368912199139297307266362268755716619909579799750066962026775639939116605123353368491819120803600269676091296485460674164493099521542377335979581818101091268226357976690828183540666603946620834149509575566585198169190115262427849441416680174938981614202538788718407934854820167839365214476746014409162323179738014425437813446000393600417270768833457276860502494108907526633439118768314009529252139724136079000416870138873389553136721594332823688942482142975713395196997330161883878595811007103678687576190357103909409095080426259870034064149755580124175320826683059993936003402385635446817191949385252157767006092214111119142183653606734490916091787436596899464557683587814129639608520587535013524160868397998325987726739807591776238703662781049926951330835092807073482829813451283317727299405365987007036673047945758245002153487166455632896851279367917275846576672386010596714948596640445463669984336800029724517296955394759388842297846818941438841350718342329065207624569268976068782708964831211627069872764675133770089891330094939703648021374467595079520058262469553422882745297068910338300717471581482531988976390722186097816642737150655371656333431214393512593649062626824788011344186998649914524332826889890271312166000530792390640247675351694959629369938882390225866462214062305825070520350728076226856231188718108357575456542610767045184040573347094453339720651916612240396594033087372625715871793733163960722552320231599103878702620990015535047867068547331338983125472319148048711471844635042374124655149954993256156423308969225165024519777481559093193805305424818715484025117000539417733878543375571516052889232672316227402066527234954051715159126787863071548948925653574361851640139594745444629978494549739833076008739439906223419784953729307996507463348225869910261814658567728367766118448355987835638067550611997248586021012194931217112502408107434002425351664327120005609843649260432496554234547403888313228352100315234028725543747762612020172083399175835822989247430182436147172671503093541475270390435638221886772078763128776646962069122251411469720353161433341295465717268266416898965371989615953878869017920385590207617306411795743000853662685796829602549097016793359064157974934457771360034458215227360722690433631757785808308928098459249008355446907152945441605076022754658126728365082218422397790227284146253147290621651467716210056233538599113432339675294213960981264038505414584409951023404909444377055679332653042691969451918151513983901357852910995513695340812084967706603140931880133814875875041864091369948895137102062376150477296255816439600201634798622981693252062302153802066312397429910646828229342633773429392425403932037093546497063369734509009761550698065951759423266134301520499564118302050860490439920481120775663449661877956271372788294768866814098298415236653712048804396076473771305496472015357846870698114967138350926135071523969830946045027175510861780548117927071354240099810922485657213542792912098458499982090020945003152646472468441416213001738936368494759063798281723807178064130546080025093714679586774023222203233479717455606401990441277022396412200313467547381631661286077558354679409747540530609908710053246336367090135592537851075581395690764016104840389500467712266419487656052693131482802930053131529144733299747061348037218189794160822487624002853773810751127917908963981992138384276340586295666616081010642644332779856559241527603761612336154797974178833167429382547095400338506323531959783715397551733814124780755527874992390905665474664279375005798767440826069684995515938204963080963218370765112151839291696064396133960687417171731496635545824665370287083822502242963673742145663335289973360383928961708334456739773155214297361542069572300683281288845114828307093147953941127838587850619553022404523340798562549307752300320822598082619572687287680255305944872296786703231375755563545953273218960738589837504134887853862751860106791704883011236927831697239694588795364527576183643987991016513499778365857530730899563536216966881317203968487223843318591131747950282640599383756252966927469525595517924253351992421375455629964121992346111006053472932693662891167714612656902570126444952224678630933389585889163841562316633197030592127430982428426304908769284830573609554439001607639052135019956630731608960802245221903874676200192482768025600748693486297860405331202345949410890898377495003598935014601773664960087323435038747499657560383768670697023276827948581365320852640943351865084316532628615753778124644049107740870961889253926432548669929653137579686337178803597121311337463206811421992352179876831939682938682190978735462029163490335927383592771091192732968090019706134158536135305245209561020927962007044048647932942062075122509847847164018957305209507830397487468049840648612796611059349642471165280881601758635564671888438507549966270872833567131697664461899411538261300093097161041894856115319727516152131106846209831750613218694249453919204227069232733479135835100208149001145997501698058252809132025876439278965200885252040125849338261652051669397490414462344972427120332815464680484534611492756517437950706030768905406097273772070988088669516076821709823359809739788335194928403240804867544851378521190479478050952016297793068822342773294110172151596103478980348111754678707720663573753964902167550163785771344675094503240460381852443432851382849556942698994850756760709360597778263339482714147042587305311586207019123771638384088107939133657886398255321373021491822780839593283197359027021150864434176301211248655937456546300169950422963508005741593066241260529796934339646913480210437344051639299181744583460930040669910467560151927244957118928186769241330302764654775281899855970490409373950275239924197175129715689973723309340465616699759077951541985113911555126328504397623450544689245178634653422877160923025614359743055461986139675024803019531337257066795805380756226124254275150568357257557209014606210771369125370505009956965570283091951797571149049749455270794124908376101643793402556495287828542199001715772334590305387734864832519299927843928999942694279537340892850150495255218937355338882223769541233715284748114910861534750983565778011454595616672808778043293898768617232643211464886622248198087319464336662974969850900053156141332022089568954569036406363657356484736618192496020805885258302516911545034839703365381788596788366311614509675150941073216989595482590784767095252564363964367117818247729353581844913546761596035282581978731017517519719845649356056892140773273601540347160818893985697702531635194991760798931543268225793344677555224537952005515363611088027750663418389852597322752428203198507072397328347820727030440254139525943178420024870398966853060179696944438046852136326985454878038488725332910389636475265572525995860304737161679665427415120943227615145797588681072366366007690641436762869340690700707777278727665734362677408695457434745407739875787507681976439741166347250108746048782416628520643522075926570808482203785335257013288713728562253081150402209273946730896892579329281455199136129965243252829551966304918204312933620075490786112221107835192809679225812188176978649958619622516566715601428999836283658550928367321427405717668505548443453418324857689186232330176565867165555727138979817522610895276147092044963536834316216904760299598006946785610146245203041758139239576708674229090295418192800948094682322122528882565245808692319075373338776102502896433200346034153746789406877697204621979849530805557754990993468343810819441228124924054628883774085790244684268071402409459263786385516448514716055688089134921269026021718778540022620494949756561311408328837884905391410059886528282219686178860658814213038616175279525437561745892901961664938610595056430722625236010584768196736152217477193194556963438473799041019713155207774199365457663582728799768227644484189277324050161775566284108014038172637622150365757550292983858889529801884561867578189678698687287346296244913409813981889523545175112250187645178740977080361102747786151782239268036364385860130121528703230685961920369697423806765162940054258805897947169238260345924687560853393306178328050521622846396203342894015275086991429417448884449475282219305907120500373482307612050210925434160043007629806558884136035968545445660181885687726154593883182944663050010849637940922307733344418296255551508669026200753110357664244876885682315345067059417451063096512087672885023711293320370523207954407768847474371705555959426124614579110368821455795026470265329556310853198425129677745280245394401404640169557322023123920393290366914133899278957501782568021608750256287443655912040942612218780133115103540038863722809155276950606024703541959747438082197691374090262330442298986593295162854873478230165110457694161769184994571722108195325738481061719810078992626723413741226225809788838699461748252969272023577506152684225952225970323559539673240969355491273978200898052986408524252408176345090669135913343716475394526755349645105898889216771992923908124829952052687499774000177491925928156560873618405158352476367272027785359813517364389467305554146595636092905326827225434595857941383585702667600229632143824352520216727878641954354390391530535517440039795513251185512643083127616862008812632119600430898272042829774164866288598778996603140552240445075061188108580269045264453403772073935464894612260267549957403302891330275838471666329181537430059948638290816921778372553114704996093690714479051007947569909431518210344731793736189843923661482374030274676781780163943697209449707177460138003881721930033154913207411937530860906164495459291212716146892568911157009129022408316224726963472479238916932664383992518099204623106832868629297798773582877367687174815790865162272182857850484869750735125722008421049293373979920627022111880298603808338285789534810484841379844280758340518945759473017737476104568563330957632365616161292982844595205645903676446006544669392014207188378632100322835301537902409439731426893808934329313191210890414329941163436556506325729476744574356792697762248672779769207820411341339405396087010138096253541515363570215074622240938438183788157169086987012718655598089386996034438762187430562078082561821786447636711471914634815309194937264121294337827916114749294094467822619458461161612035482745885779050738062375929812521448627167316499492614401519933235615608640889255088108823499572276455813266685933336954343547428704478858894554531678292209676129797695805853803527560044096366395922287192531419095286482900772371911735693824661270814561354582346766086849463864907873297824370346039479043360239946131196174551768295799508599113255241230134009646932508034287305328316243663920046456394831538132338702944311940323956259114144538027455140471095777148799207349017698051783754332639709511366919263282194657381602296566925646741220411058952778624446734806651029680082117473655068619950695252902627214394511452887950051787827086190027093266140354663153802526658501398340168206922026610917360873968161373967897956195175813409711155112237516184710126405134072111673347703519983221358712032470690533780196347718631846585377771778278936774358800235432890472815268237450076322655404649121881939226227538306223980174939187429165146629434951655848945062397364080092219176745557862485813427634146814464368585978629276536907183224397452585698859737723794826155512286651267257341975520493162781221786856552655890596513691198995618730501832095322348280959400892493205277826531667107023536119445261404634161514721984912159348499942060029063332972420637725935806178325210653811731832872855860956042002003181421309370059394227147146540664120135776171798163307835747701785056302596556254800277107821320583726587867740186944465108541513681206804700053675684747907944677413735469269922059221265699074178940268511146430087210877439349302802016424848747945947032369213068051381259934794232942677540413582047586595631028139617431774639198160656687257794905632776624197179355041803796557318205947506283261158949542666176370924348421182642187780242039897307010099294530867696781662643581259605076353856037663701042645098063664436888875135679094580204043394438140867339706138529183757704350326608836926687193466064425659955562759693822105737953693912860605420988863554813938128060028191752289570905876291839400728344947826190511698664917603523509383745712105571299105102354126843398017108315484444035085060924367091648748556422097095867685410073147534030354581234001849383984250914436247130883053694916610197831907907890571985896830532353307491010483590800349297019844766583775590037336782742413873404178026752602737753156794093835129372976735294353588890311495965932289196634610414696378052181499585867624753731590024768089677753594481932845119576863226873463115574720072458674743590183265386087422854232156892202249663933017696103109676087896718932032419613772085451504762356947371092547916777598414901290487007423522355659988088263474050969581156210325392984345273609515158303016125747635262799949061786738775197198541447228089617383316579461760223284367748935173071039710800011726070280714966402465501829488409166957905803492537093881905902235836398303144316412186807448918676816256943129846672744896038599297284835554199796343677879017168299458044755730557492796014112893243132052377881369200324573308008773616296643311182977990348591811124110836405266589657815585264144343801366042700980033309363356841594778206339818116170119167061474724022055770042562661805239400724297594192997774374136939609075834178025696202946089134534976955312808254663051528604017157180658062130594258401219188368627769920697324567988053102797644335638407994668034098509207171371346922959421940400800907414590553963200968455478891645819833088675970676578372315337612327910831338830994352039895507408964000831642422370047028756903180801904459692580193864395232052230498908844862476509299257688864243133809741716109680283263500422534659515189015122807652004609457542470060398989551947789143220249003342341500231408733499562841820013275331493872603655316845041715071842245300767997196447612596447971940272476994930539962560679114784703201292424327942072481993809125875510864548710446298673996235971286645571143475697072708595018535425845028654251726637952757734647588081196889515110741136853670598207369159446103285321126769995692619964473784603555211915791271581986941197540023497699621107517847453542027907323572724298153804087068551598387681325729406570554572954001238854639466618452616222385326090491910169066690548978762901743509760232501953773127623420092734429640632337714060118518632247797910846167039577973228806596755889511768890434408767382055502722044032280031214443463672454460567784410466504914123272782291833101704334630960429592133616847563288005095551485118652217719971627178890460393343782137262896787891199592372875199374913161678100631035545473043195584306479459197854722626822111131150511086108147514244723151524273516504179339407819618771703775604128024542882886037257105802128585439202367775002453723250804796177458372946853705320975282119116594781757353763379277415000582928472588306697814398084363523645781578042171646162480848116922814717414814232781417994263884519337843979264953973415475220709283243829415369153251718748803007364034513857925039086799024385112372668501306703094384090012818117849066119823661516389384359143973571980181433865276558220791089863222164424074578462872131646963730973770706822028351490998838427669070291710775165282025897847893834635072816292988584628001244387490910628915502525957596917692067005499642895603547811430580922347076110397907271341835990685059569098210253384266941069862636271874707351062294933051102264322628814324710210854840682290451296542518341227324938849153341521573055025339717517254526903898552293892160613747472671685115253146807665915557220810602179217086050776578261630774328621678287995239408604848190981409604065075388352845950714240145006048959394207559412959573897430988933342229822144747822059503874725470758983546852869315543711753779489981013155054673216376755553390533504848189543163225717061635369762250665800273060742397747339648695178467414799828023056528720689068752509447898808599369169544012429975393821294170994133445624546572307696436053097650943455024389872460313691557239112333631069857116627698821511315558559841370188882124384548906425286859925590654200234112759109816651627515018316516721430629929506119958626751714489667308127148504344885062598331263333018275838314822923053458324898464334386203147377298963286262945559385848678884899262869008302916167872828683823310691164712442828140785112073618931490174325759405349064018846626857679873448785739172043427118026398281094548188355947438614918185595421583712462724924334300964444184944949225152406774752828466782924328288080522245920922539414009207597192252375201375318892958822065822903665004823412170182997497288020641676909333983735338190071860018809270163823425041003677520017323583236596146757973913295285809817431988028695953516566052674023734959977668465075905692539748209587736406488519436046454867451615473142718862113071213484834560593565829703234894789014331642896264234363994767876991620386065629066597763851498146154091541177598780359109108789952900868265138991240203007901457543372475359700026525958603586911246787377507754408994203504264328340735157090866071031729904116394389319846278942893193291776889790737423158630612736497898718207150836177925018099708259167273094862179125782027363787337265417318862201109921509842922135622649506452081801029566523282282959827801026285826344801391004871347498643516066786121353016818588982908205997557115938783294494934673661579131550309418102701769388935342672335396527985343131452625261485965951316793505718791382133962113256872414088073989309248595858752831894185327910164926413216501351003783757322332235141153085704903088672573759912689209847351564086427446808261184345363932903121263275220521636605066741102738967776631273739411059510450080098910267738552763692405229910172869458586681291908740950329634250469943450836007915213000777097908759984649867742638099714480321021536201295278836372164268980061257012386077795720845634167633563514368211973284048454079902411208173684577261911855832060237928176428174945301685696946998021568038688749556668255140142387775352406378427520197397939568465625060858297577431279311775596130528042867717746552791099062254557933478464842115020776472808179707601225429157008462846787416152724493916283645473214064135522809799141396240175244360997875571231880740923794181549767300324289785747152036874415912766178711351550079044275559596616924503033320746927716256027647878089712190566486527029399614969962532836215023631732761235320734191692074572973800845787583777214952210823244973404101358280081527872086765458835995260385905093536203542730745674530173985795547634643225374901681392912328217982902098759216046402790127562335380733602425171517813362911466708069160487364727067907413116947342516405555760838693992525713025943557160773405299603158789153651121153109296546306750053830486703752878216910780610523035219302901508619775000399648611867664830539375736159854977430004555825743420142211160692056442369093935347058814639699537832102375489193492784134531729900933524229128324147902043557057150442632455853339066499183681218457259664150269123469327777095884027552741156980626697310313483878067664328113403248508910638188473277286989132189870767564802445584143105082050756059820646202041516734580555079449306425904786834580383421486485867971513884728558326747108457818221518956811689686656209007664257478867333093266374833922781848910519012585066393488424140637087259539496720309270231346416360420305069281698936307367778093055290261445341951980644601263593840790446402911187122310543359410615801207374711874697863636977409009053117231959430528332211022985882618008494514588842270333628376939239052938251719977225976430864968257225015696746260943404407399024261382927244146642995712206476991836312582030494625754172049006019204362843289159417615353373453851203922758337148181735341276217845248909332742703769672369383352632690294092997561569547535715236021851541698814685186837219726528699903034822669475901379181740123714974216724865867471084173667770429383523362514579288983885933101941441255308043913635064027850928626092637437657477829200655274032976736675517081343193520823884092944644356409175922211234575314321429404251135889107911766472085890394185582844852848002224994729667381407784355142165758632812595913634093812677197901006148027270763266804602206952742153010476479388517857766595167711067294981058713825314969882185606320970876947940729628987382284513982629275610357300740845082381899726680978869841642297019676042910097677075402782702247613141474062381834060469742249793602449535359168415321207806074371054365465089712714515647370342238592874948621719728704172523070335586985905101303450305746260271500982129253656887696483201879623868163224627470463157359803706591571795452796948810145302411146109180457729156135706397152832042964811057588516068253374748832232310359865112524459870202072801473732724817731936040407545531277337722418448852548083849045031715225717697489740979468610910972563048429964177908788692907169890917983098545022783361561367344038713154072647085544932080911807836439091816394330537527031333693045239942011949363918568144812011059734761515243787657122019892246643175162709352652203016235433544267272680169822444452484402723269531736010480704578734502302741131014968238587713998162711720665970537637730323252814352306719630529162950922584732234602027337482375326985417796245485422572425100165350259779215248980828343239073557147079183493324134875840940851853627986753401847431220307364670769713086852857469131882559591071266630205511902018729554857404229073351794638243335937284577525366877565331791570622348036665853862638095032027291286938081555862410811762210085408884853368942076252084476795166701085711398427971593293931874930360793075857532274316877520822983482652569933017385008547816878265683282898586781421011263185580107255610560421230173324315417255371161856138522328830579842655607674451353253086196675352306554756679266599079923267524533252515567347478393377089300638924920451502522796048267585742608045774150959075451018013073105937125448813798907538173030330783830171909446271060460808886062101891624242623492756944716372067181732092505791124058752517980408700096501440051688084621087408792492452183846513957546843320802116642376993657216120578203666326457220593584181809769947171993808388507664358170062887112936201859762851081059891460394006687087244640903750795960130430538021980221038824038695766187907244376344765398978173482425810220707359979134338960982286371137527010577008977382753692168815505072633134101497458533683095288662839721988839507553608252759382734852005053601187262445391820890347171757121115267473180652916267283434216276948001784766497445975176497814515597888813414295286793943845381434785545040625368741726115093981264179790213057404777355098462454145209316250666090587108444529210964431805494099500090601221450709494496437110688071405169811020669840596893076251952648040691873442017288342903126019428947145601969675102150995590172114963489645576201761293586902738781468619257980766468928131235648260392591331191577824178019016276528278399002446579693543294011344389223153129435137462183218673600834717156703645344680065052685104289752537979320672760507587655510052093214312467870342214551184986955087279429622400891297761109568411913015660833422308628596773957082176896473320637255125694794451184025393863225832914538864475454832355529694170602232116392425976504971430763126054796926816643870299681226620496285581627559229857688676357865541503865615043962088549105612014510673300532966509720721832068996064899061274072493928672819979108777961651951781759907133308625194253841836323370922199031225821092916558428518378378630077309742954837042196751013061364415028313408163844532557309141323129518097070466514776603402998789706491755402770339027791483235462964447190361930189957998533319618272148813961607062900897924542929873965950303018547345940937294405658111588334193941500858540733310276244571280302007213058452216944644854737173418322027338998173929306272217724247505897687195192068109714592738953545609182819492905361343836346258766337585426193388652056271921326982855303189054477633719692963259472302422079665429113067870005495062286014222041724264787892304591302928944075505039127202044181484535858673796219692201347830719992777235937497609810232415861530550894871365148551428136653884762112440602390111475219160049580177673747492855272217676712286757510701142491971316031308615435844795805018687125105863196148402353460580382636679218100099987868425347055445323395576773125240793451950951155980027609801097184104113232095319114976470963321814418060788499860945764518650517572414654089196956266069628344521162754195465876176607390976310960507772800565796059753314299718684992041283786155833184166087325767923406514137690150811748674798845795275173802545918292216295438951771853139438785677179347880575090542919402756427281699511956328575833606536829020408755503591977956578981540119762382932542103985720864769875932637116895789285252402562412664177269044030647234884346547225146994107195032581845435750581180401048349775494178286638971774985120892941374926198985354141095024015858987483314088026958170954953555409300003995757572135979546806261279185154885495343957205323724514664771073480812288784402433509155663190005130674556418755020010039609175728456242263638951020651740146868582718319467049155137970854010015765077041415796255811318375983039941036498386170795331226758156574615749051448868689604184076334529438422927384803138470317351889915240745967751243209588475996305564777244903642376264671200482520792312980557488340374220781590057072393313458575498385180790491008428508920523781627959810784907330390033397687380659094436404573395303714697287913193197356637005413580432500220822457259148418817531016812123201867285759986548331690466830763555986066308213437827197087315232691923107455055195689846865092827752505463727233665748839656714600023196404241848020904243790819109039276734656377307210902796282087790529117775195831671926149851114793282421648023485481119533113925006967761329147661806744742986097678976535871192884289748597334785710194694899344787379186116642170406782730900393420718999695842671660721140302958389870451690531790347377937884650675821395516981135459988412382541941921564208260704658548468814231159388725559699458988207442717166852929153805435446029928122970230253874327138378741565639998463104940654441024097008886773943885275639438021328476243911620584544987154056858461235488771960713286957357381459784153357319250218313038708860776564977874425574281391871875371558323721255911088019074262888883179424654583301546193381688336458729155540027108750221302359955098894892047196940570833835160744730466464598956412567198060066008718043830008642190743276571378130387657802771806256248911637709340104907553648851925791508849830125739730727801608132493215167624168698329872977824863595404100682077167278397657190053751328777126932596068119185765027289218362328555748578443800283587002130392475665359120161113492101747758608821292240223023355695002843657101206747320632325049980268142980568609827294916429675329973316296187530849409014104932887057071607266849408611541855268498508884902463766185153917889306022228919688576838521787490824999573913404209093431425026578901466076630528366488527950963849903921098714344613257390160192006632158480600438947501147353869028483082410847436844850401787329262533098723869310931096324609303693711177797985899730275593148940046505200441841634268718191641763033919139078096358961156742435627205717890857364297946965239287327338403297765180304543307137578703303257438661991981894051193784948619794382576011904521818340016303557845891391939007243002752359237712067923847881519306483060777540293934713002837936419316548011035359990415041239723886695991094538392358971200250706830493334068721929968706284084542961122720375718173400603469116754976441092394155626393501802090199219422594515314326529416072322996072060294370008560565910561839153630216939162302483352812266625138670867319915209569256553078990295826193581860260814303545902136913868078378619487329810005796711593494209138232274790476787727371005712261030485002474370182646428730732668695466240538326882564350188364121139166971365760087426025385709896767302761528423841176112627201819688059919387282412844783949249514087182664916908228260624087582316540921748096689501579942685876084168809084714850978440170357156962342355738395874505015253249905415579362938583348355544583943960022786043293961734446340388315849516511011693689010272829859045389077340982552454096834890559916450226624672049498400622342714738137519803266216855033751093058724932877318188020399181079475780342665422636426363107253180807956139294254926897058151639353520592979546710516553807920037880619084200441297197505396547984103044883799365916157001248109105007879166764453286205882253557732390050964264752530256690587208337323268621380893638498684733543331956168047530618616091034892722230837866806907307923654341144445897255639915009411631128570853148397875007233304149524329832763918708392097956329201787658077357837503694906379715409688420500373771352788513892502900662764116077022008444950870253996218259569043864497306945763724616929484826839396859807108007081549031120703270530424088302264612128841245535887216228374415733837391047663591065670440534072025728762123865890597197192381426105064023331202232596542677484066244070814726410218094192134253848755578766333322589564229807120738854083144440571901450414621638921011751186038531523747073876297781897906451853457126062488861561880068191810865824045407239601606789685461301178559156172328991776772223352505811242076728575078356769057007179498897556349263194035584862972452919552301170093203760906435350543844686912064621938169300386477429394149303935567880296051954131583893826765998322056992785407642940430055825122231964789970677932481010745900379809316976638464776820619077645383852718977905273869067776341171762377892152288126047048832573096033852445793753122795785427536162521491509864748821442059208579956083578625040603722544259661115692022642376470725675836715419565633648833187740120791650244648608281360913270316616489167283132576927697631507001000165051121741401782187465413545168626246017357394527803942872495924928475626194491471343821382366278611275519884310002734014968687295088974187860213555315111322791604829023130033862494547412541044066597454034040066641536971948211141103355971797062529482308592183626701157066466701145899058427547489250239516325317711239917650183430565019304934832500300434987916447048430763083471442929986827093235486416501839830075302217597767098046068226526105549590890086108213465282661482208689915107077079026710542718598464736704263937697984104119512324749973005360959334558041336496557607106793693152733273305633441692623708395094467218722341238770404826113432448490971351279449592232862438281156085478950650262166260745123988198876829612882454962089932310435905618733524821577576328973773869123123546800684811970427412541496100888402162293225157141374489124763196785326561915374481112154753358357021885499418184879271099257469456316734450858579215747231098899383567970288157299939894442774979852073170911712207999659213445328095571163584260878254265850259480042755321648196013580249634699421329806113368410129456715840703746228723610352152587803386170908769873635499559202663908276104396468930175097858328320219400554745400014355020498258099182985295515755318339902300593193341423723582685821804761584767461910874782748347045406562126832085807428106556202302368714556100493150235905307060709777223777958199634740909074176001660118503757259642044303882448787391811799045726485277370272037020560239183446394000130622530138061611229394585622169000274430580944033963527384546427818215821130368057063504957678517634589842375685908894694482737803562882848493360464207802904833796869836892990678634740302328971158288063873907331369108919986991533382945202692218616993756751704411648576403663665613856517965926391858149925187120331353192938732501295858899129606375749595578329871295655577082521217611503064878296695655291518859727789019399364595156211764738397052372233143408748442416558077410482050742430714043228136392600574949948595300352756865136530552892325356196633468170012486337331004968344759275108048482621469867062495204767232969143438363782104708010213048809953218063241192913701804140142041887788756980264902998690407762702756428387010217601797390402058975597954610492099286169349241731823307674592421772338101557820842139541733306317294639230601431925850937101948111521165265054206665923149160887778559767656847514936517756519899508609119633942832794941112556223393051282328802299132474711884456576560883312155853729758491621706092484504575183290014761523920879220235594889067953608607612943182185465906498583568412259559258748961609029579322376083748459859055167512773560683544886743122531889619755634705345311456783264397273809415249011949219785856057101375239722372877882398790173441775057849763215202790971950045323785933780607196131148606389940321660034748361212923814364258675707970501520221136221585114814062851274088495248534305677947240250382015742686734556640473519077177204358868654475590241575135895212198388384412762301997648824498482818178806802589783764353935958410224511037719830457719281751103351844663214463317092518623574957350427629078918126559030160380191613305356207144073278507778410869458124766655617824851819948861356419343827775279736828877887140476955847403366696186214460149035989261019098731713167461054736337557269123538918617093127967847685514540892543558331270653651920014951340441219317203492699879474174416588010031433589555789918184615014851800313906690921206820756232864828047152267874945145255998676917288212355109294580156669674619511780245309386786105017352569961877611160361907100661461401447265169814440625214248200168919411001978228225901652881778554939521009686476037561777874998500353396684621963489107409326535230132549030829647034962758385907213613025708756690175301474430054544954438178168077507505901560312416097298414055441793773633972523461765149606250014987496900957143554211943357527510071165098227059819158197434238877693757736092587318086877137243269094022020179361574344967164590838495733567756979912237966872114194105292397889247492026328335539969051418869458760569152947404944368813425519680379386748875560736074387420370433625240464870459344006052172868520234253605314287530296558303312782107127192661638469969127522326160177209697681423834468227062782989857877930409707066372347369394562352564192705733992541192006812716588042505742968844886989525716134870242280876214401829729687743357917501598590972137332872179623869141626162293477389245792557803139463369969724238884383028550170277961249185419582890227091931411388975910733479247774668129030710524739102978475024855351391064756331095954060204399691795503770864757377444397627774282820648564383184904059258886580763435047113761834382293829164078095019494061895236548901642326676685465432059980191594212483686347213460161358233058043126224995996267784638541757694252070832235818699500027840574144987856581317449734078437108877358448300776202964575085666175053151039840084918355234879021285310482171742543500510380768467765330689635724132812863390441089391461879051018133380211909837524644507958993635839407585014861901067375020673187224821068635985884350217050226674388836714473289376096401750631690546311692810970469931610165414133528338324249029104499430812665873019228233538113826078621750220858800513093970476472554316642725338999978424259736684693053951443242449679773335656587306588601233497793512545631342472839209305768679663037427627179083107721839179244610584432557240114933278874172392576525802509051818300760067855733098040920008696121439791438462600863981059197366228594516306558319387594992573025545906947361127123439382833456286365448609993009974639970770366869085495789516164804789030186314694184240648345427317629429407834772125550577279154647202804359684016728385543102838434853971708746398799243989991652702522767875631387581524193632374011933638695404140483104443221705074072074595558033664042093609529595014129214209687497712916799700529186001447449997830009754231326769177757397737504749095191137825596145770476681224476283192515476233613744298553329535356407384621939192648900908550147541641728209300719835331057108301237496212715112920013280759121655585546617334023088438043493883658909492195141306871904915047585944250152198728977181859481047100007378229209121423929864408410910797078021481707175490835307201242108521178791136546497816568817766635779869621075106295189356226627584512146939329956021691567076255274342761322588860079877645095682988072036922258393298241050929709946134119501084578611524525266210658543527047397294343220382155077793288379805674416244936499628340456650095048186070837189953325372161163119377833704650785430033603957444825172141588303476661804711898630583407095172524596716015399872577949016787237770879870363628947030721178520239500802014551820762792227536941195849286135223932329426770482744207781437027069191915858850688935762714102799524136122270380355284174318130046911628453842589306669461061023346379795009592600749502024049538904503934677616085074175195814325416922842102199398759192664786246505532428460085345192613368108340698460328980029662169294649461868656976513752302620084374082026067930656004490152397420888334922258852667413058347834378579726633774327721149657203383982454727706453097094106319592773335003382922714791720370368843121579787483495541960963700581862201245275445789661822082031618014583722424590643073633301266702578772679246943882872113293684290945850024990169450244041649147880311011538458465176791790739826094240948158284643125794602902223605620367939472488269272581645015679885934820876278101043902037193440795648205530493704184811209684302047022667534045697031014094778211938971040469867598078429334928224388999750260399678996612650375751292416161911000112275952843222411007793525085033226518768496285742349814253866380098436010023868060929275685247145923821883488331018370446751278277743858286533178041782598591683146251370713845026975218954127391565742787889107663966322348637640915154953506458425118250954966484178488237012100504483390780777997871529150611872174622850545012649280640505361519292619983840141093955285952228344416073731796004116573217655113097337700563092903965477328518796947573505990198089632729306691394538689943303095591853490122017006845632846450031609738942222471622942726131329081092797586643420002144614078372134738965485733267801307019818055713535268344242473632439882067826315966309427878584379131405144527872509185495045853765165669194536125436810025436067209367531956272766044739046211730985202421670664532677753282824262395754768718127186958881331235990243261728508726652903920890150460126113548169458047497251570608947547695418739531822808020672019982635383130952319146353138500232177690221767827956837843000067556080123065475039668931257179192662626532887728113772205020755840456458770274008199390365360764836751402905365550888920749912336404296234714564690267840722102716580859920818283404015276909527101730014510283041239153970122048233251639262895864686425933150461967934660546704226997718525582032836772665351763565702604229133284470015666934673620530539775138806186150355888408907320732769192448807390536246703140197406442532799869755934124766726224521821629562884669402355089321768089969151292123913211324546086211280103065767056068591855575932527459271306798126106760315508821606659068069285872982699963029533138218982677719953937341415367240714652954464376334331376177453483389385277986407601535593279807969357766649680521805323756575612827477648135625921902339618920563049885538608085503409367491679295903040894114465685956306326995359259147187740880892919293143870347073532011770597049469116752446864253768897289816697666578766239267969477021378754043872472336272483524916700269562028193440539276931168957263845031865270320914065411361018483999255783982531403839162853854826546207364366231495225936284251201392776880982603740532761661145196805232447598758692803036161366562423135769039909738135514384786398257941679969626197116518836572480979376004467872532632132072105777555381585761337669364519813901755798868015867492288066449487818218668263373214752957749125406024243983681009678411419327771235340465349438437404206765536291570825845113313181088928946067271560045372296625421336559982908689234230248273893315771398983302754995819581275699469566601744487994875064202298988341956371685059975209940456579634856811903776036079563323106481263173851921845922548163332598512915913897426837845120462430226192034733003349168248675729113359742720340560777002348784860286492173493204800817025317784335850836580290532452289962350964531992695445234695026557679485658471737100210859313938650214640989221832171557955312062738055491495670699484349285534270892907293722822014304497890320393325906060900642757583515411836877723591913019927965732615135167169122158900044469481635902621870195329240480079648142430416298677837133158588711250056597386529498403294240375476431478046417624957224301305447689877525770074144416831719661616017846492660776552766514705196866242917640719580895025152974152257424610026265229575203097663513040906379889667012578746399406767630463836955218884018830323112205008532646436869591727679215310659931277208248234102053345947714765086578623551181051061940976998747529712970929201487409329955439685982278961010857451266852805536963040010548353921937587767552109565298761419852215206895642624788800068342706061621096321367599437787019531434228340322754299265834793189727849647517088950450559613637563440240689448555887995958332763972706171194514077828395241827211507747960456535748925770494133485502181661951613180672783742553891681918216520406543640902685583928969284021104800508887886804206245907614960565994512344076807249590973407866041839870678814964262135888585060041697198958049073646109231011314153428908900565117980540044889927735401699829698571986307880275653550190234682194706954264338027386650912208859586494990140979287453093453542102449672482762302521633119345967636951699287118324665350857204999048951590175759645972260014075316745367736432075351931788119055455841728530977258260363097579415305486133129028117821953330861854423807186645814905456922168789237235247433223163483393016548065810009896814932452604543679365213349883743241891972485373467785890053162620974947067347592409826720033922879910739233771294903502947131312339016037497535735197729088917958613703042110625619732163577761097005522976891900029372064148803182819439953339937533691412863471943563490729241598276620630807318511613615366583418188415456156736954043661122501501426605093468765568810599662290223847126258759966809091892537792745214912088812454506659603400909449171266162077625432505006922914164322852381126460752520638767640927567011019922034707356435608213978331058228795848475298871386200472452451164886481828890402739121124825899244933014048586525137864142328225881717947909415991353396928853219797116573216180608599167556405021467987303232377569278148907221227858145219398625587701498090649923029629211115456124227426597626638509392069121730023345081009163601023222737273054059795522915677882824687746283202409906003462566153981179819045874079612210813016277721087946676631001292368507927744966655007954757852110653540706120388440279042853215923569252804358949431157097293956994075317241374956430847544248511451068497740431965133687590266335891872153978743805530960506274235924426230546210578839874573540875292787894067431309644472053327355266585924786797927362141354450942877601620482666160005494582171625019053701038073898419065349131384981778971168832209022410756080601755241398609099216245181686369235520623566899218427027591198874758950261445461210446512971784700387494617164444941932433397927859959624282600563943932772638659909272989964307274412176125470104894365559197315723948007193544698143620299729845588033828759427690489151445360530118231990446640954146235784484993240926093104002505903789716571164104999009055023998220916402243619133704250643288709764612742296689007998406589594371462878853009403386272701658074867239308156422992854967783275864895905111028417937341534846984878931834783399312905721226669623676197186820991663127768970134028073275511774336471716574886474902159914506146447371723817406220193876724092819308832714689621762076899740083650666645155247947615911201379722701429058052634645381367410598755122901318488151031621822122845463549286501989864147006344157963708216500261462024509538610036321029420413907349306904894650207015833879432482527743636484473562240342808018934053766249356088511646358524235637753345200623292023767630784133206016767942310039357821993065841384277343448344189512803577667812686062834331042205535004326961702433323293884403548938501941552190203117215223481656156364333762941759740937098417429274431186815387941821468110065497568530882323707728958333643751980247198352563053813971671543488799731611513947621935092133698250295052683008880079852891352700557560291501341602939173164794463116501605548314884475561312601909762628138593403033739904104088690698882400979499228969876174557603974996845935053046939798092120031768041432161906666217395463029867984188216194794146256113117397603207542888861086100406689648823630558715485735531426749527767201206149451501811085387315067797175648003452070011517836245420614244666856474366200412721302581128294935096354904382277320763282780773595802129604248416283857144853271521688076345177926818715979430676650139201044814193072615126847539791143836315515478261949611122782393587314551659612706711176800518271547126155958645467332408408136503726911107666546752774076499069596269025937195688231404932427826179909492685188589917155249254320949132897592335435613854317242347360758747487245568051538173712468540794016040901023664842194320914710422459942212319569895406696916719081083217499602330274516299707383161644737708959698525948989966101002580303400822009957591173801055664704188622072938521591613761962274346844602555379585231161680824781412061317075942503788190871577324281292788412278721378850806042266326539801438884950456852401453631114453746549907690355388494399082796768775715070561390519965970594032104718486496868847574589382688005562993266479287080115881537732540775632528274582098633192767842231523815194399901439156715599996178935934312650054013344642892800116115239578374815988999012252946403525098250150924074806836842286372064979299951292535647444315721489362459630123951516820777026685076758942292601035177631315768144312100431662214302717904859307530124018289537042741028895144023775975697615103980503945278801708809966552564778729405799690877326823973243615139594445401781326182418384480360999256334536496511343491580564573847467859424243498857718459369281026963649896989680170491846631750559170707826512805463222293374956045462659403091496162036258935493236023928424916406688668538600581902979897297181055170877664787345937799489572822387360903488284458091997354897098631904973766478479521287973208387420518080371605701541513932357582155326885332321602459570137174137415373805656500752205911479758462090779667699576290854781626953704955575914042526184320527016920359375055961413305219880104574409208744559268984358433663919931571035817912301266959820754349509721334301939792091168917944173427641197020120208528975734254812201159194042576084624965968533675037371081255558293080951670315957764905820204774254126851178497879534779945867878598138486623066080237757667603548837316661824421135167579035185096539591388467017487617451522904590237120724598444299385718113505325471669797065150926872859004775471269528027938204198424899886100323804355737546477335578823285249161724931845220794480645672436699697137587754671351949776554414932194038434415466833507608346878061086101097593794922279146318471190425376624489688982975116660042095870347205730727983495407584291829313928618279744080335328714955329616921497096371772090104054092659217489175191444993609746072690474172955391112549592662202107589788599356130708318163438287832694444231254593923756722432445982288595609324367128601307706015629322918284385486977953204064918172202648092824088087807477977551839684265828552398554032444093005759759307409939870158265452171518849545097557168900061103609166899443070074493945205927808386197130456267370164459879118347511192443081291435583755342035177070183958640126612073781760659780243878278384696052590328029811120407381517049407597776771963968333391673488819433491194887436822376066833083485552506996908673387001280428186695188792398240851866319801030184680535352324876034670514830130514489711782986048519769759332479189457084883831482507159604083365765805915033305839975774272358973096414792258249449247769846990160799715068616224057621204682371388376860686832599404040442590745337774290987475698344132974777883338671156678065048163094699469638902221049333222366951628228623042890936013518609275694433552429613286501368563443099097077891412408667848195318694113897448471796238730628079667888625702391313745797182145360148632671188991901536379014367901378615223015195497011467128949627312515572345744905639050777410937609335719841099493483772603577006879210792204322112152271923374394880103285326854904505298297010190901125231277869168391495654417189523751817837528668731496249599325237733698397440657094441012666712532202398794693296447344758791238249215347291918720554154143855525254608669632382525435055272872681663581986003283923928992625616382441280818331921229698261981752371864912180388316515163838804797469159786695345581226676370028510910391066481455909816266974584814329645041171069477827437843613524513784393624520024125471630017480606270899302798381002942397911583360450515493636449897072005285393652215325780910841552019579698821306170490549956983729901172068391524837934641285940969570600486680360108902313751140590721541982078616152070225215427479897060285317506498888396897347713450129731179626504134614917342043601009929443304182936317211850605187461650717528533463891340487175085454985074501163601784792272242981705795087846089476175912708341529925002386247405653171789444362350409965352357263973027181263694070938489054700916228673338616270109608602301666822148175714671876306563561254070798616845250360099339124447293467521396142638421710179634085884113937884369166911972756690480265215882786138818434393447260209537772525017660692119466268742712187230834831291811268191469198264673543065285771900816059917136062985699396644352157570926480012995034270824750335656420575114409889090868182593657081180371748175010245511895627342372820178519614932585593254530297398493849014939752229159295846854574306902126235958035955427297347873270421869923850275260247343419298347764289651275455909985412504033721152617502787349094398471633920399235992495113445689923263490127715441386729444082554640427231526106315373992838558913067958219513756101751766340449602841346152261342805235401904885568131745033047975104624870489842659986852225537740739023825991932494050812341855267890770718397695983724416717987032789505460858398594533461530221743641683184891639128600776483532543586714907452182840709164744582142896486302247456488671324863622112353824661970088123109966241905564267025802793031697776758913131784035098461582750963394843747135699389439294793673533301312568918877027831010750625927192660681713688345939611627977293719752386528481868350000984876818541461669562141189223752873108961740383674649597015713018615429058370648587217380555798689574838651981364457948010510663319065098217391989710949842935814069763565624253560072836678755598935258953045757547742884379441824997031124518814633379174842244528574243638876106397834638760484803772391976135094787227938539024281478129720992329175025296638149160607524056125363547346835500944251486661746895728162233009088438291411445169209258505659315335082085644980927590004630935632858429682118363131161327314613857839397862940239838263424788765628298179152942544129005857582543357003658014451178642789469800312309829884105493530357497211849852108108223116961717707778067187468016253582159433361212022503214228262887843646293243702350718200359426961773626667590242218401906526120283506630611169306792231376166470086707673510917292961953386962461608825937600688547987476668590693299847153955712135930546724431004257748550022429470605616905946153766442846574268455985034963053393351382636872815524775594308229610833133938900616105573269644567993264146603718581122018757321791840134819224912177725701458810443255482223507218791916296919281577642357460081329759420902642550962356443141896945183351046201471149097244097511250025495141305013352571674116887142908228701130212245779385657132519728696727410134178317645441470804509371775240724404311140270894292706070988446384116168545749509551088232296362108211009811234097581113630446034566025726415687071433166228901437766411066503632395344391161553906790725841419808628393918122835376998630860407289030685984457007063972777405822812462905719425088914476699117255507163843034301350888116308172434028430825457433300767943920689531602402298242967711923769989365451621234828009506056203231314513777381801559863929054787255247341486440087332800554749198449958783217297905985949820954584084176692671451486967981708984285679533089250981906584247859714894556915362430866287079485127765412707362461000574329408163583448847767640313185571483464752312215716736538785801450897604760807167308745922456546845732194552457573979254075804281988261624659403331214252520084288870213663948514747864153530171035142911738547435196112788439997976609819626185513450058764035765706369756267395587609703332964281343074465808672794485994908146943244265457247946210785871019803831228397409552986169326773878574100059065088924806136150679218596198825922941601933742080727074157668460311885083973536266676962326211363688223192862490415436620428530689446702213821972360879866926122314035199931969391395240032354135689758095989150850468135659784426528871353223355384200582410483599534747116731021691240284325947695711236799867702905954810398276058718069791571624973078605320029837704493272432621275668210114574562684401577655546394224183200249219883555296288492770551250897564876592322232090051341145816800401696891612100305110706596644175197654250822017681693675964335167931593202707474189675590128589175069894078482166268821597425757457950667967322225411324594600360356085140207312840707186114317198692795376304929423171308445238345726166600267336243274815103150021814992970275100371368631826799228178450324730424738278347777551887480226596426475738662148106588730156603379653010047605975629355435891783483971620411595168384961346637970056700242041647508781725258719710208332311911656952900519991667280823311286855734467607492794351096387321830655323163974657043148894154990454751837523552758390295493991866700994705619064822206268722953057636383550626594396025191067026961666082871936340160705694526930733467301177411973905309807603818840238002661360078207299894185743237022275956131207269399371770611122369456517882500591374179830539459154957853394797837662088020933650630078025514599625250582190213374822344968258277620034653344548376595744599285426887516444125163671888234551170134439222568030122090056950246995370903779074665173112609632216980567092997815496406062301855679119516111473873747475742074157051480864104883992164730694319581975411527228689503160766663656553601661916916149335927347481923137047489963536771543074900829744066936382686872140263637389424222740298345040028754940193754890722252095873274213029090162907154916651522307188673951141287536861733584814626657630922945361185841248828409953064004434062282350485180212775883795146223735080972586331751395217648025360873534225827123674047794900206206487798735318284919982948110986054972955149133001038466057755861201934745393037929147378068432445256001470844888219708904385539248670774695425449852422700782399357403205994753300871857002734124554092016262248067049491410559874924637213128115571817140735966550715537743034159103398810407991219981852735504151607989957270478174377851623305203509686843084264971835358765424822599669910822315426543982964580053318794327548054793965983760689472009142830393642494038206054399738652003051936003116073553454513577370464338781939385007096962887261400146981267680052709886364668486293403379006043951285221892416838708705136223974285469925281680809682359446866003253449737555695122811342887047511461749232568614428941207278558903499990340807504157033839925071554898292514584916992588954332318581691846666698713644710898787579937528951964532538156943601069933788204927658662652564459721459175587314910715221481888074497186510692700983730198287062066212332714383084003971498408161427892085223341662502845328293236346393058314640970809349506505349179761236212811848811253927554414315948596102804459020521031467012517141912140405285630223992269124031417758333867702786106749781359474916761173917856404182249539802117714508697262489139467834811038463530463869104618113079882451713096484809137534150443756266771329522212722982487931456009435726822468069100450090615675867774054034027660341089794066335029860939565617823888256797590676593611851265184484216999520004229169709357752328894525524683442793382259081561851814532450869100333310669669803539593663316683089283390909037657945504930970782788698611366367685051102220477512900992311628778496449433539386675122667155311233327760639087054522196960483142304215975509501014713513009628118656001029674525774050031965156892469430758152519799914802685193740961539037435934981499858791414721297068896489774409680144364277795064518860288447082603109453594457186662500401897059131180126687577010770613530090516495477263462669530500623600687310437258273110435852144075781175321999558921480732821719270750306894892668153043632550825451929757019370013654978211573797266041421200673903061082220898245954893952497729824320554811248459039901817488259341023920568355930768177139195339204356995204835134188860776280668656830761353464504521896872898962363237044245692796483077774076648536417455942706795021193002953545695266627639110133822846639631655595518045656319282612292792112406458718156903720830068112839159554122982701845894078888241418496476990709304306648787194516797605787538360237545264646983708417389916098452226164513141720964488508526468252831136118046400562514138541644526960665449827728913619477763380827840214472489277039751773827254147056003118076274770233510128922807800023938423096092198964788375866295072787758307738741401211070678173288222099832798254436900243649056441655816900799213097818619885134216037178551732636468404543923657387884737011574138455355373008709076050814133126818929098583350429027170493244834106267079216273141797064227424160522016418730358111317561866036000754051102386463101289840188162940861537806150658979454368422249841024838019195087277723738959443520981830942183547225987101594675074512544607099159051241299293876275488985344542944651106047913183914487295862656429321945479436068420973044854273083848898274532857150792206317795161806583580095925057066828079454441880364429102511590407144399681153388500752665809940319677421868382834704220140655761603743539526929795345810532928200128487580927924479501707552936023421810875594367393219984767383705582470662402768481796195079365275228286074144286793392844176166435197914138601469669353811779285621861143577182808695852692495764587049766347187978549377004660962477643416762116870017585634406513614329315709360275628481909736476174612516989512353765816612659948575642758672243353238628492636387180601737170506560069325591834058398498195784838469083074148246504359626794632318295960033283166963654546682880328608015768180190043013696724813065198731969666897466341643257479225777917335541853697774958080922557671446395553460626829625351820755208300586786949723367973513485825847084469040821572288319975248129672623988076417725951231164749916476552789824931819520965759956751586650285942772267193702619740734677292511415037894397930099606437929873362947878016467617067932992398914460033158461128537404921075305023976639563583352208000735923154786846661447411503732895436683277893973113971754042763606283506939377002568946260463524431960764812583979185840982043136307320316288741492876823745690751137082535276053680744778121886979097799730766223827099574897033312340384481000289026303216948574090908949384114228977891055758606204588433390475004810391392238694359944749331888979637854198697808457318902591128999833829427088775566368191400775941818592352861466168913369674529593957133332756675074402708450179101235503344222635863519082617503730034173155295501285216230139876630613108314312810273977134896809703634748505515411605342986618480468836752695674564155764182569922913034088142133406626414080115431828175010746242768668859463550535509214204058925743675502873043486251053479769906372896197143880423038524792185549658777314296935146347770553913358903629995080511818238276551588150757628360347927995434770234182158961182187044988338144402175944195617383966824837521063144533444948613939347160404807546489234852285516013951218586873474699657814510808364202557063623813111011968879108608639365201289970703145486704430705203788299185607552392891043910105620510724070504677858727769534878478366442825337330691562744670796141292163758340169137723699883628544087111297126336002308302295865558235194392735855456908039745840017425208265991480542572379199060441454226741324639034523475811205113167580478023309393015213853504827147860068108803499827386519581857378764652344271676623784212696584462138307075368913471091069987153472437833359191051325367136686922487827947861537989672624534131568735114750020901423626798051697851301690936376659586110973034090893092671235124695989390074477672367574705037933454674204613206030965450242329888906523133150957013685563009479202471862257451107054639581577916181654426856442985137547299849569594472552823792743488993682135696450992507566274445190308613291185020886223637989983073728106098384644246857881209751611277237967587990757320097699878927499041675191177539473222086954531724212248720295272019209307303960736700041502702055402060988053498298521610874587446598559920180569795089065123575923696981723694259208422940404852244582105620632649913151560912564389609896878762271127128261863485472444820939001696673885667428752678968652676959288712233651002600579827962710939220557435548605128773439948417803333247028971665923929114416982195619448040120423244479739024946334341061614396970131199359588411518095684637570678558780798403020335325526094637127978337303241174597738444092925226642005861794977714137319727897847905030886957877858021088446840113512952528055566160352892450789929881215444355078529779967194114674371923468402990243273330867668629064272547309158998189887530531288025241101030338449730752232787145060364535754422550622253733882118425230613810776483291037775918503979918690323187079732698630932755618667857512716286344693337051766621787347472013464001607443342289130062896173602641739867751866644106911694869516653846479457917865168659362632948700203816786546709777777905974051312265485246345233948203416814586460720865070330359034653865720965511765839229488503781364903656782622847345701830153070568756530206177673002286151068164035516126315447136111588793625504234280649563651367068008713118530307254677902499701829469343904985954902534312876812853139828590779148406571950928215882230151267049040974492468157529361123831826648303180552296486964617629607003341082879321799940487326695463386445575764878235783651739712157816851211085830605564863271596787335035293234026577960879164775874911567329790925438012659481571554871902487255963573735234774868245046434743401441425070928494087699705153638271808509149550724938708319689297658404032253742745713017356030480440318053626982535301311028984295887282259640664685767100334817484982085843356060761074636284647371488388672973432542647090354159865067145235312154125747069034121730857629295806998870144829323416294958098086107816798201761414327023106691257509049870517805899844712415172341107989411561575621976700539312430865614896968138738948389251533065310568604763351201002621331161248574048646135358098463367326134654303963490139054739656459440024453856150098705363494763524276374048517685550704458427689612004974487238209712195535939397701669753899504028991869319558810305911506192295347007767254534188594122436980573040337940645488529044166890935986238918179975823075836427705389445909367528949178754808400397259098576669940189768604794622601273807964905193539111699020550638544213341906197647400813066023538493918830323285545953593972612277510956709931000408487766400555494891182901937577845812510474994202649453508835108423839707833220336014024913402743589209748984441588614250430329608147409876004779845876398917649887552623885158555142918639246282080878694759329697063355068390415800880143061807460431191291880011856014128674884529039822454300403958717157057680928660756331152751534187578958952616201377938492187850208441260816558050481098737439525181346637834320141258412097745655156870101220147786185387507275913298244496276987643672279829861349437739146170912602284216489183575339228707033317916137988562854700832673072099308747154521418755360053862933016148079970271283730556360946517956246263086962185402362474972349806256248811244028445928155221256468960560046113729531990125479463318912864948036443003084219235675985976557881886315945593229489614831180012749874425605551596248617884131412971700736060385056036053073223680236580995445838937754707999143685823131827979929871800177566426318672318978660492482871405182103380162630720419940097783273716756471839562644042141825796785207786028595378365417900725198739796394923109352167501353855096409809504909607718117454796497989655179891838936574831203722702669986573387353990038544990160850925198550419971310175373891293160527826770350375556629488807750823987908808980798179271206052481913192348697070485253355185397941891727242444590994728899043271431483064444537133598735332072483233029112810141815872971767629874641118422338641969830374340663829698038882546775884741042969946089839584750927812619746493235302422411304575054292663404196763342030577352325284189050761109291173791512435447418659688482836387439900040425853406887745655055988358605734790015106042855149017616815135589401518467749828263463712728005043733028132493177016728307225408102807829517418683905455352644489606947368519577135356815337320851764627217424875963548046724849757621564659584489026544333887244871203729861814754931760018925241074421500521601186963824484779718226270543153601712429886220087565815117713482101483389914581097819156916383894164674760832901429132124588376589058143520904007565615042060358045507100783028369879444970712673089180680488457083029909211298907543834674930136516592711607381149862851628059541449140002711131975269661014319142605062163974518439212999928297689013000125726548211961173400744988519761805630082752252320596003511801252722170190054121078848359135280688372029628070552715078530501720428899038459667963803499488165799808447605420957310614616854362453734917829154167565205199094322291059290255965314756651082988314409262544257039477047042894501094125205844089659993702262455073911277505324405946233453497049615694722753758553233514782854260979544889863139503160803231028240815751443177722807530006011869997650533284290225563402614870762720081135545559807836090969572579326099789604366328252874961525843987925952396822699559266309139841629664766571157870546763124115451797417621459943157343446991033378915110322236776971644144943581324171176696631649542310020341210397194306752950157826682549246582721563550271974881861633851898679921266495222275618591586983791688747973991190701249240885001009623759783567382533540258074195520463340979589305329988343844693621199456214422532796597368568948526162324756622373881496919882096921045365585755874245554412426366325708418011506483761872961225617183185002399505725465825499212146435374901146641684961803172011182883999165052236452989948650036955026111355713741137803014056915365628416375277432160442992987563150366707394114147827445023090822123315295476755783261612156616844696390194059602183200958511870574862722080069822276570397893388131102273592685568338624636350331019025750796187930426849818398547432864240872408194715717935891462542395431485528630673528678339845033566366602025491304475982701509686164656271897806463275808031271149846071074977287524300380998637265337841341026837156436195776086771869781072749090873062102156711107785231526928855193867301809925721417406525803974273812517172300214437428252153069042242212939593706505890403818495421035253085281482086372546099210497473383435014293357709056349979789810990870830343035536684980730116345317422395915109613207127836987780997097243520195061313443253038608831017444126766997104954003378192534356611967765610293705187824761474252359005310820204781999257432866135509139906685734423514030876175621528072639193297009939119226874090142068161987249314644499814608086257470785407455540818016909032337100973391941664338902561389129860884609289862820506268172628317527646329600483599221633566857997346410340900564598855355245336261014399590616187407392757965466317284259111821597232335451068496819132847414015642508592225287136409672221458254044279478284285661003781002770610731326789867782655893760574399287631092164183933234267502715600201290407516029913870242082049982355595635584978155974782477343824616430727004623390646914423662768469135105804139599810834966837502282458712456770626770432144149548228329886410144239256626817590926660509043043952138748911993602451324962193546691729118018481709039701220905942349915546348828545286510395722807638316544758321896626263148310542558102297256327527214739334757075342053583331992546833581712239729952308017912801649536583548328755428080910206039238487759967409044597558416544518759035274473663301559849647161124271774057507228848961619369264400940612348277746041225051934390978545130105915700799714432595526318311400373455018935461160842359412861177687421150214656754368157701624773148842173100865821780933836241550710341300198968946011034807479737744443155592992365095399728892530671898684600013604151128615814678305220732768273251050115166684562445117958405274014642494675032583830232042863795974574500269255831328185385632610535909016352554436254207698722235977524343803395892974360326105586753435802640527969638852249293658071270952790148392809528021358618191162035996002507171614274148293303336203757690705069042429752283829021371344130529708217257917202507609422376247311809369856048646924362884959973895722019706066119482979647998535625860692427765929814249307918072603870642050809102125416052158941078378110926117512291118810385039721702887901787411206165203558920386105975241834076638729378694532015610577465760172022081376932647443343449912927134671221509271793733794020432525951117999728827140761159683988035641484701240479448524372065345248909285744139670984754323815687584426197651630166726802955104981282727258256308224448686146466938320043418459440492284290885006740186078466088239240033517884003005904842471902077160071813208207135786580529187572465824168949926327423601830138167750718299373180050214648578947459086282047483950005936248403407504092119431540401382358068952236374649071330576305616371672255505084812066859683064748318327986211546828117569475916747999303002130317136865470071238486025521826552129369705271100958517272087111057003008735043038909662337451059601153538066731002753659152343162935629993694839677723989431658016492525065440721441235491053227820235470357974504671207480337722674457818239176892291478326071322091685997073075693152447113260898057378937951533392362290708921300826283831696896990112495861468707756573141568139902388786585329458673145388455812836021587827659596486061127005904564896091190112039651042825617215349079137400266830300744404280710359746928017547733546639322543720005451195205637447339681658632323139443866948507467231211277162976300809265569564404669788340373616588804730146956166057695505406186578940157381237765649438909366526565309466827409741715769968738202541468016052022869957488021000926592119737498885139108907664013827435452140061233295301134713799309585327106619687093318129309594632482318141297723930609905588221257625504681671571526742645130511302242182894102986048222242896570625769771906238830896041872504187222381631049122856215056469303133778599564456084489853505360353318250487711132094872758650149171654519873442865298888648838561524703470746240452806716151933808899478518564469815697298442546615838314531978039429490935936837568292085883023310729199822519057598871354885406068718797641261408151659731206134729503253136818548372291688811496210835235993156994446675549142113981812586915647438295487351482754748845154579328672619155331699210723157715064635875347759812535382527656483008484546804214004506746610717340895553332324177463548693105864792743422534882856141287928542165813439146928452155308067716925481053068691772922403146270310562839424975073152587520222015047795721300002717685227051285082696365619318832752699300235094363734459560013366840986977581847969338167568493196192639487269328653823595260470864816083594166019690883348337160252866018708787341044575067484276129065055144413903907240855689430697464113989319799308401450635703876571083188034966956419448510976793085787000306614425492054565584689656976452722381851361418821072969150454331960997797052871508099847941798250241054825432884323387070326868401028555443064044140590221643707560671337696292069740510414342319085694283973379536753630379123340990275308840786485837434123689641022162183500754806629952500502902436008039516291879003207149576816040862290345953107100071014114553155403135795369089302403975022838241118739278557279748516961350482064728591423943840666020842301950431463140577138661950969293868377546207568206536454769185085937421345795390929289854809440345387787816149595401364539846631542863729666013392451300596873485622225307501770824885923127253706868841620992519832747844903072446982490517287203112326385623797947216158556167737707179623783900894515603156686993441830184857435239888968376058106764701015982829291792017759039037972777560610857856641836619560991957012092104260657246409521628225093215898839232562934699250316617665237533349739387732954317767606214779827992157874976498629833749122044933108782861934429770798315575091410027036040517050575254593582128336184427991660651869275308919477757502998671613753671625740893425469739425440648930612762471993709714959405556275013648771394007576192475346140947156591015804351793638827877042501070975775006162054265469722033292977244484441993948716126950214021352389438814178067433183031686332445514955516262726698072686250906706880771537742846584828057758863051926525300243675550440300437702740844411676511254604350398068565940317089817140847576724182554466945736678114284299241651356536095274536040177103996375102963435171770157942760735434983004936550796993718948893077655962003784546141793820723016486926057812088520679606362975417200366929847884095745201802639741171273401041426090237972421844999771610391331949167873229816845551324851255047909267242490818951308576348887551531806534560110362759561369655188189962333782690249033909384032546382007195809776712614416081350104140580011089806206805918156988556740465417639536065872849833782710123306349688107385599425972778854023552549042151434723281302623874803743051192190504554196107226974598487456985775737826221926470705051927307517730819866460372291025885046412981405526826789169896744579423961690324453239715118990263615685522828395117672619031821723546468573860068376511452483859742168298760374163642979875524178462081204805356382871470600177554528653459546179182788075704769018065533350762019144553475222349664019370225513103124195287882776343595358713519401043389746918049987523732129074641523269865401843112395951156066595855977374651307757208467678024182403790906802086911726238860639531924332550144108277817307628207714798239414349641260705230259495870995163883660209599396040298967210327586822720871807239524261590141310682840148174734311840685925313021047768811606307312739225782411277298370431768054483907073764193519840635120945900102386484664968632859802142265184328641465780795379428384687245051780470262436282271297173561535207858772169498804786115686318451465043493988347836770284420448795567951087280993017586024166795058589283594094283232270727931261951459877413398033115460167085794119735514399821769295305139357264383332687659297730444333369143816045505219160055816496122340495925521013144831012591306642666870398563370179590625542968818114113160003572639331174682033718319881451299470920158359303733701666765814186535016579626408466830989090288492620132184969613144074308127616040096415818034579728778596237727335186969930663741302317015759121751727116086001304781010032166376146508892235601277133765662133292095243352260107034369912766627083175706114007604072557464958214013139610349125474956620423576414668747423028559299495899385450169141466719080551722252087300700592763265334134188103916987538129825713908000632007794469078294847352612320088087967475498814145073916381765227819564170855777482570927305608704105680080938442577332514926054038381141904951755501526300035858944463696897514741609317865389239618067136991878911367922439794612913200575896578444330702763793499105607896457680076667078246093056359514899506636756924688211131741758813156742417267688250872512345569625608676744583790397785136413360762153406498283605184684192949610145218777660534770333080830678789861172211381431022316121351002074807245351939784299094207497234524123276410205366806525637342832048377116380753302097941906349439991999754141454202847992708046091262178993661338305082168665289677683354542761855295150765758807301949992877889626473153807616215464613134305238314085883407945573717313323119122424710836149723111027548923685104490716066452659399836133348611887178484432060868808847082058722399248393741863929468441198010229516230633911520982324976368045609484807288135434262184929906061316811234492796214862232346695135513345499137081239391852384604819179819406552320478947769283828955241009060692511457428247030053504239414872719876282995656392919524651336483193987345535553477987047250284172392521264367582715831379703203135332459098540523539780106100540784947647651629294666300372095750697419126960334138988552889181706668150534876625603026772980228809757922926898802386372352116957314629045413688319774383517215401869872792133150444259758173089690917185994964018316340957166653440848286825604738509346034951607332143625729930685541267754870402410401557588123293294530041750432681583059476297579228951455305677103401631887110690989550469907134066751943242645865326629481429393089718206316026706371338741988046186617036269326244717642080449627900358561877811727791668977905722117737556761415099523987551118308962635078685520998800078935956815610782199860781699139852349700348467726696832969246960244104700042348078180519094046624392403047504174941361398767331804824308446074417748338304070126900932418376697213415609489607024463288413266354553585207067353101670562501832550633702344424083753342107693908929071382388037956368860294837217644459471300822232993066750266792953876049268183865139925660728817636124943401914049783873777087802801163920789380800638436053261049937090079603266678990681162052678990518777997196506827932012709500639394797047672216420995119443236874846392373628473740358895363892091339747246464297452737774968453475432569437702391224827460624255337544677011140285930175847670738349353964092587275836252906248972756466050376741094166705547971679057520139168828464145901798102044162975799670992699846736177654826934279263056237804647799291673230943525215664928244038007128491757232777105785227600343627151544303099773357793905771148353939432975018774121539490121520845511347103560068530410993725095220596446139629592915999405248334187600915204939347577277528288166056487272942704421500550358448377777352767203697691079542034125959612455667224745194176645519372879952390187605872967386392576944080568016604385387595808488749860976737183114765114520326939385542480014070161897644391356211635590177764798789315193719377385344332215621033556411402658718704309384037407018805261105226274642955961110977506682521185329562795879418256696765180881607941595778153601110868909526540197024834957368541860448886282612070882457984709767585465459620153220856271155507390919496260042009262279661226220916827684223986395216842936428944074760410596147096339138075568546840731427863257678792404841583939315997727836136726554735114741097145409894819709199293586574919914691929408388623228162218157182798017541220246631358997167056355634683918416943790232951779545376564557772561916788787172781402666940905040392825242650189078507192431915339291389798069802405303962718875362334517741882388976082168737308260398331336372148341139489741758340325370266654751988910461931148069422494736327831769082679694985169630183830329588692605511804526528896456041664716838533474276872582355494596642883999613206035967007074420513340061768606151328046313047898571918109654368288264526504000180507286617254887973300895227161373850868721178898000330206241998752767819524480373722761310025342489679257376608586812354833634081139419154209171608952805801686021798741954548757965698482663902227235695707876168195562710597269620413729812574628522636333689479240429879488910370539195406735464599988882118740166618391676019861228153465507675355310694845237343335558472895507283332980440957832461327561914319962502277384498332994213215031644615931924113010131142072930561732098356352242848027408317295764557809612149668080089552857302213200747639643625038961949721593368112411114840027413050106460876926285255140654200849916788303541435153152495463720659838411819809013284961684734856963117891971017183172327594900866051628068720910496683996471641398592502996225699934784749861921348558595442070479355666851242691387105003724279772763458621243247039931265948189975430593437765883648418122022869989131954486214219201085851967172442752616538969371646760629930596369442776413985643472382440024113533068180849060798242068856692636981577308189760791214935663502072080793227909594009415575502909908817142012141650846180356070562717578656898574627268491423887874613488218182868244976129427257952092940934697213925869266344010973384289704844359686732788169395414356039453210146190589552118425690115019924062454430381152732065633501825109586993567622363517715883987822542967500191161046664214980365379804404981165755246559548142539016259058797427015248068287091992429088406843615982510309250539158662170675315522658241817624058061994603433344557269549604936411205688495271392084272433816223442581339412931427873633463526353184475454698541611253905605549976840451446102617313505721586747688302986140177800288991182996559815567989259251296226150235971856723602239092504988221749154153411763357299566365388394978665177957383207723336753142109413035621220268764577927737939125696375086366077513377500375617589585305084520261552655325190407793496670927796995189365252974643819053060549018970764865988088497802822873938437917255676493181867903886642798259241880156006259232017142249484535109048284195360494627353786455649199174233532598339356948737242710562566449552199353581619496469278247759690643716053519376257223174809344899648625536719921347510288157828334285709259289746493039575614150658304508679344101071255328558377721490152185867120195022074587988244093582474756407988420362578089702716641925969988372351337198662484533276759023470757252508138164541490736882241913315958842845015529815775189919286071735224184162924301439212672275656294348944522645440955381721020775343740109517433114786475111640464425902354097685142489978050191792118347736864751632850446683936212530335525090069896834686252103407994546332721797258524017602175133844631865148216752141663560522910845263922433322197461771287993859676232062402971216360625203607180320825880792825471376632418460412439287220799223513260296690449106852830393979943062155924276718141152772810837844996979439075126899929173445184917989530151701097862080892260568383136163975447791192309875357051566241511784971675020415527947418180346127913991437394559952882584073686186695099223107879569889561882019068090730092174691355024305313512879657607483249543870421158160098286791120543484501770387563797544237583221938183509678521269900252411056159107422342153957544127981658350023970033271566509839232633302731178866701818942678035708583984310008833690140631849253592073188087964769024373597229768107803184351798622952287181734762623393291335019530025293710816995330383087752078297674031197180812568469654703261645058180726594627566814100736098304931152140639151049603010409098540274736954122280258898035786188941523822043364286927351195208152495180014379816893694654409027174273163662543079132883859204002264515148373176569837512368327485089153310203660030858832129120771996446554640637715140780177753650456359303927141069435398457754969805709245823164959798923267718818498974489515345341747461790644038099853627488743860696426868304573841629247344435841132237911101271179440600336281570407768713943140137447828641176579631748533963605969594970172455261868773313080179930501485711407234019397359276237521118968828059411691482584554356534131921264912315880282612381188564958004742948722905397652081910942297707868532965828728046784820921446890495910722594051703007424083991713065384865044250024345804367841304171651518742454688357447636470784496804518016956437039524046407459207488137343687400003960487866658117416520030242896745066989232322433725269685994899987157772214927962522519864265522874165778953225660425925960018628457430414939752238505640546090352025216994872214727838637157676584277883330549323196058295509582070505560940049066328235093677842205250737910615646819455275122095644177288465341461271153364089927314131086642361407338698228127102876086269458883504520475388389116872819166344125700935428815782344874595762326080761749613556786935149997411326201246779126000148250652219238901203752346020525683243171482228168884014137657241817449066154406014114854861322175367056408258385523292158577976212421471960950568543285494067408445717848416434557886580788135870048974358971002694165577397999137875425640521416553910023670860725607354809063976303266970922767734247365213599217742545871725232093493513883539367642964236546378479165358129325621757827305044978452362897145157912342091514777158985537839513068122150174907126531175484150252759525964866070031531366160949560349758972319419837652753701460616450147582345127512856555782983923781700573328263618961827916235624650893283218204388052550603870331397990707489321828884796910418790418317359790139272641941825426306313166687282556890765553055296804124021750241966204766851132605483490793868846503113345298853403996041066360879773343596208238441649737959665677199879390279227295820722818038818930909736416995869569332458393475549804907305639073905385557888454584750564650654453120300057281873017165152585058336451143685720428856459008863873368906566962504723803486253585139013590266127221317117100743298694603736570332595396065242312025483427805587515942852243792098438032632377712461697007261595269004140363935861542860065223671486727367550038141984703586036121029678079286606477894083543124449632900561680999926700051606718751050002945814204771372792485015110651194265202137714392184049036998628456674148023828016676441924607996269691130553503585213199409087947747549427930461138162309160714797505810768069430788544166500477453452857203042004733273405582203713158983077052587149939854557844039815358995823784584179329035697731057868637589032831193176279897588267900945210744815698967207469080096119748947471031583802214395852902724709100554134398020422688726937892379718262598768571134663460119939322576848551335369157250707249179948555134583515086797893670205368287151720027694823450094807713355679042317724584345318358354459497560105617534401561959444806078627986677952820048112950646919212157326017723565809070550209279860958122971112145570638475568678040305190940218171273029727097051423825591521702385160530399653620564555063493260858620196034542049694258989423229070742899429344923389257505238539441854817850635174817214080516386628562269319595465138755275851005676937728857608144930261669925668645965265587152135554066623378358772327943565994438907000707621763514259498507240397900646021953688463339389881157529870417202732085693607947113377660499384824307219693759036521877930958690327460026784131579590604643054262785935692043162021335301107410335416337643407294266034166114399406780622712316040469947252622399227887453802758522338437277281181898583475231920660018233546038560679124522964355214502250291669535611869722023128670169925553064834921276800817412002920294141877807021305177404336597057652274913203963285228741808941922935822490667995802904519664559803955081157652791626415343801091498099695904511662244637594447309375460154398995152025335634234973660287740226557198898132817029171012410351943923012000219171919848234890423090832838354624920320819911970552582659856443577416788630057766731561526687909884475049352215310888136693589738104132806693247136497033699790238888347936537187171608435967926833327334069194591647371971061537610361180078007772008565089925915618956055743204498008971955344317818325195376631146017661590795698830352343128334059162707116509780158193601772602184493357847578499710282955298231057375878652191126404123361742590240862175957225682961016381800436042926906295357903274652197853163216653284565538878644303925429739425852331605905912203702737901152501163158205991857759287180033893998105164687385785991093878221085884680914153733749091519569597242702141884085416016726117706180399772824660106498934732792839081723706787422505598894372588639523518476025433037953361224116511036055129725823169412421151532931021668439598779958875409964404217835054045942520488442041399557676483970315400906147675251514278431019336662164984146789210004342885911060905778933826299880823180577312080343848833954025647712531453420225124635698367260765709106015797860611947320304798419052905730481981843325539244921645788547703719677412475274321442210647923697858618185171867223656356378224856736439866507638967688953984997991157210582714872241009656143099896255436983226796216367731265096090150782025854138708538246534387403363311109224935347523442722687772272289926245711489599993929922741034578059658250143330332420192462769420823131691572405337387573208016791098405395499132705272134198359675928563525807497472277367274334087114902882212327437457149026653454853106171666545063513772193969328039263088238956669714410286915957427889718639880660840805028710836418381850974729642731163251768101554593256367368173339441403208054065691650604693782122989883461555081263550023977158192197676585306115912766767299534300917775168100353443889381787217697792389234161611321969294718328912098535142063707476353520527500778257802523891534351828568310750044847251937973627903899469758447338710635861568431105884686030468355853241493297041933705632993362356373476054217704545283687156225278204127713330797757157782268891323495925696265426457562526488229901000660451623412252448821469725148157902889599862716269445276343904735206319341278601545499098446701610269622288573209108238651890394456185531573039461751595564757557957707895147737189045577046342347727398313121401304234136726149115413500741252593653659587031060634555085487848759961506700510600779439511352148398192213218183767051039607774877792432671538229062431853723376429963990002680999897688632400397794298820428409695564503970263880276041590975042221887984990664336643074889122879504230613178835841082783598473504954806321567199215347322870455693513707748234817072335240402251734607598920073525262341596310150394345644786251728380007990540089788178658772397442046627119340004137620060938669670944809345413968856923054311097045793693750593220235615038060045628539959976696633152092380954004117408634632311834895179523660695476697362776127657635220224170650341105897409019198690874911837476438426532186544703454823047909928399402583361630994582976397441778717952609901266227383418374374465721483860508939356431056926218233916646125112376641503084762880863911211710413121118460510287139613543126977662667805880607792820808691412703787098125994277228110882592368228240475581708956882007001420921436601426531869468807464428274198909232840872028882184663503704764288415029718917377524293810853760020654377147312063688209269078585352287566073889963817202462222737376561594765443075266810789993010361214978821984150158730046945660498216235650459420627008788019882021006021344152892927151721598939001016965759108016244537106824672863940365250493907342549586990273895174284504815531346410017240375616888449459888763608858172372449218873725772909908892764093053752781362850617608432889028654179954204974532577559300008012001496515312080212926077467563027949694545287729833231113473036837761589267782494878846937643565093271977349539279834672208807698613962241549539771563423251788100785991058755795567263666122168647998711000398683341577341194684831661995941580182976112840334970157513394721370636477862354409459242504641601825914689834869025547181975118615795737168007431810667677587265747034154755909005833108030273947370845606694410845200379563899014409993817429004005929879351610648726276095269128596639413790703361472412698468609099179638750570785617171749155519841315324941420256693694541204260650083623006959123393485751155383667644184349492080360486685791534065378164089321214231721331443108096095426074970069486330600507983159204609007153513651555942696795068195225570709108008458848145349166069620891710972086779835268596443442154029321164986441377542189197679392861814570599100640843549219468387794791117613511265909980540040173127519274597068938923766405075314925026764463140680236614616940941751311534875174070596428786453384623510262986827937582018174099272259225600575631867689911701634261901653583885867007078439100117007718406845250894622357176245740543403268997648778194038296596312915442469696305223736562711343126322505060085912656231698085223131761843621917224546023327309079011985762526819051142700901788391155362468006798594588781459214803848601142672317998042835523519576242157361777423465963359250375547288539030049225793412380491338054271833743901748635958103540188960641542777975051822204056474040889710859476857839323774000435162513643123318304603188213938363066974211748280638396421167581615606959160825005971746902960248168271722897282692552835195862312674989990988752353560773258062096045227102150230691901472492210296753931599668423120497516381407595726300550607352293837128592051709242960373304203698236433846322067067779865542751742744063407867581755985536938913183487364987042916957129778051183276262869718792366098952214935796031017236248456324816319931956294616570731683712062542387619097473303356925141351959282220945981629029418023638637436675275862108397717034189035321171240590117238934426139686894048160288500346133083751635007614648333203506381386467896636558323305110395129480758366815674395381542818922961167509803496052181634575932950321817236848554865193789113584011581868533488927823233589636589986397138265809681078259046361979093707948253523450871204073926000501239261114596476841237555060115092090020381902980135097987263930174612752895530849828694791417438686206454362957452355024769573255811351914255968722835527188669859253872681010270284038606929931931051221877015932896424037477204086432900706142227523771214450548816625486986394941222993674603050564535780976423995288682945475019536979881240433356089088973755245648023838893960239146911170011855428507438524809034732442065083866367573851136501649587728820042055617494486856247963770872286298376882235356388175828180819325365447391763634078093939997965383186703661225919100405103414126609208632437833998590222215309430969809524980096890753861241822516592806906740599015772053442535437663332707804877255296054341497509004582947526840442514649296038327807464086811816499110941617234263982157508944909756736968892416153767738196641924114595079660533021358131544743238175957648890095096738477057505416905828162143872388000856941812185202195948803150390222777452598489093867605145039369801201971181801413545682283059192133753707871779403573430888316163766631662830254042038794107950183515236193744049347293623991031741821120506991316881386556148844522592222859091024775195264437504701162864572565715301479715215252224397853936409855154075607493041230847979568873198169624156770006998797942217072349977272391894843248422424187041052460289281150729125658062338126027760499587762551381716204156840141045758537321488851035071252667206093994762453428245889583157822066148557655939371585821124867406005901161555636735292548097411670464548649477677874398907145091202955128212125156175170416011630170443592411241023587810339969881219224641355137117605112091546612337670031180651956955108593215605004030656199908103556051213782109229535541573738978353902257612149307432168898422260157571785038064238080132427209463697860564799059209438426751732034116985312576047199638185539806949781304405870006553075457020154058833832162622249492012387877412753840424788139162994675376187247564860826318404547399323238034096457634283432150778019443073342311400781810007058063316815757312405801641244020904459018649572532888037075488641222149550444404458605476737019725377035958447003273719038778172659474177152512415126094716892013593839698229030163521210110821509579788553483026737487283335661828208031064112096408845764826037547826938427985799529699639297377834190719605365334293548386808617376910277524481871133121457921482419203277893764131446476991518403238320169948177624406602992385480813756589573301967470500285971088734843666951910117088793786361976802428031135324613880485595657534119551865321693426640462442004853313982147684033323329167340611296401820608663970264789456815591363232641347110061817869105566741958649863503805250478910058367834493811804239537970148964673560177252261661447908486958129679596888447148549780659227343102049437020088490292406087480143697201645078772039807339608154187001855011434484637212907195189731742971726937509004854098449029103129949300938283906499893146482436889551338996187878634524383871922446801006348579001681227182180841827377003475795546280448228507408263739153368187329930128171631205767562036660015559353111812093730022325655078635575076783806917651826592337840734212677890567770351894438492144767173372413094967742003710895431239071881373230673960604478491640287632055067715932510787543684947538850359906766271709634457022497325512379954419082653033233135854660235546475300297787729961566258425695129725144758584817152177685295855240322514648610430049529884472305531459394917785139362270882307886535013291905366721779417999917488998253550045777567161058457824240309349019566261420203393072604624954308630791020957525739222687994243663176855712165744978176000590643603700507129301140609633960076780945531340204485723026520673524547835179329989776005496447198443285178413312220723564832781954000155580063379619166950757478597220011712899660031495508128450744145682222018674438046409770269063314148566845680357810292263752336188654297470045291523696109241438294651143660320308816065926014908574799303845391622446647182195064680316502926575033059234278337372938360832758043901546813976074239363875829240165403032177045788502896178672885085361788663133785016953418483262110118209535643995418445249887244655333974214663190169003952404997459223925628042202643855617834585712022531908046893852443599135130388359262366535061553631676639563790834488985037407537697936753676635209043838090538269737985672394605237223204270251116571190005064800529996855674741974586186767977232125151421563469980758994256439787973213285827638024043828045374137474832316865744781002953786252491152032666445327037249564859263568799975011374609352313546583008499980561605444204361797414115197639400186983831007131749378810470414747388624156170254821970879753266391838319300193650782869537445905633124800343262946773286274079666705661261594504727911837073606186679984219145181046875115405996509394161809738458563905827119992013338802457176980205723924657123613143825954568393684562861783271694312269838758136701220072872656236456799586933262547272730690941006509405000222378947304267774766571427639139834998746488045683989223029068884535251012703148059087973208707565541094776751716586479871733352104809337239901751092963230120173068861311521649833162805037654827182716394045051637324952292878163092621471969377329515990529049188243677762576991836471386135021285055530267778450863782100723960380635575760337952681257247353760095281223325735762879953856464107040362446831102641562872649110764084084975643897131650034344034716641969502655595488501425112366708349500053639467315565737178410040870075264753580766002403318392666180670684820972753110523720232996676933599816987432214125043486484241598952898099116597244143928120560378243422244515774261982976041411740062294121366585089982773064395742344531159085249016403985319745446509581449865474207083815657732133449515750049738975514702195321510916270599847941003764706204783975473342048793476588438978268030423493418867842050908505854864189639760023325034523473950902778216520591418837472082184383195750468903709216932140609286015593959353542760448251915449950935651886729995760869225769512747649067727870472512125260864779607841918342002633460956270909187966760827590922699748299478375550012979841670293303162480508107101979480691446540069903450793325750210210246329228115372318460075467001179087687000489340056372306847121233848661782337854242792259421979368563804274646824281331786139273590655061261214882156218740446545763436443059487882404346941964546492871732601014937783937522228705106688493912291592706407536772436883331848489881367166647505886783106416957085944074989855686943776842553487486929140925344605951507342255621635003235078866892790086222635167281178097602491311260044209015303455230803643452584025165974832677387828037727360971885672764841459922152440849952761943157668777981493124505259092800674868846607469737322154580052657689962750667520624526190203881013206445671714957333528671897859133881454092489997484967005252922749108609424565182192455569095514277132553413176563303444825739375872534441594989287236563615229888974417790683600398235745445916642771023742834220501421540803402403191097571330023637031475184933524387785122528390407309123666654444291060440534456937785309082639332794060922695229593513814356339393992570767699218777460193831942679448944443541555580012924678327996326599328435870028649416927532818932300465308147637444227792611247789095444144116032439139506716748273270440875581619789648121872524903667714085651366098113480635262324641279647710680419595518635192229210541433707954483763613448450576196831717222539599482422300742849526715924632631497818063461360322009890662414965952627301884018033355566051758694160088648058429571174218459374711614342785828731652913085860876474420677545424181149581926511428215989598599671413184451236542697153803039228528272029012867000675458551059423318022593902987732109657939200811888747828454553764816485821922278784706822301911875217697971972158688767132411553703200166373309097199945169254064494967159486582477275981427955365207319728162161762952297201739825004338837124489043680604040005684027647913400039458347253737458241401475334995788919293647507999375913228629778740595227306008069274648052779934607676083074409052179467010497410792083328519629895000963574205533975929817445945641940683103556201589971259821782694909563568720065309115023080097100772588554980244571386342670939637742477750102234128842810053548708916888344626881836000921608174685000086871583851809385205517370369211611899221983386380994513250493203328419563801896603317647586025081934305713852281182694364844873011186749897314087961156423945289435834364239012114004151671685509950729612079336122611477288402933114977758104651505993290090838579174250934434532326198011250577275082503427837728684875118577873507511792311804391341244407538137633031968071596025170083635529900169941775364466122264552629657650860970685941971128424779194785039669801292619218514880369258907360265640911428441461474617206956390044405566087975233525209185763133296693623589972976270304327382646463461059792106616585142458791906088181763347353381436927624479022914289821363214931146608102711859013385933396983433977355408169563655619902983125566874955812993175208053864595058455207185240917262664176442151404520017084340040442587492698037104904909908172651395309208812818011382117468054680811211934996136916725146408400822589536264875077486657437594900785042093966397939992983971896349623841948286287642220498372430011651225996983536119311204743606301904021030959769130538666492866978000986377976330192878393937828857229727254127641205534587193281310318070642053154463490465141004793626940238541755710060802885573592028233872652918473306018763405290452857920771114821520342063566195408087161026433767255647167409260139405681664130078714042283220874790365362628971039627369159334152599627399053755249140936420368811170642052404509246157742899459509824458265231022874134585712375212867770190581565937625969220176971801317528472207713681374990234030469409355192527746186042105059761289055108964190791493789962515952217806181986151582163198694939865128592971307954696794881615261922943382669635197913723243269339651458036726581591198862637051634935197471079477765749517325317445090702816140984279375287712406931738958671193318823326935579499032037702239437570025885516690520100082081067303007592316788418904494620709471761222753549478216462165436413650007274670217090152149723234158041524176109405633270100838641807700470592016135179608722559247121836891943195148247394616279589183162023353438968041911928000674430656074427536832051067792299882509129139079585728615082997518544051567463514871340521140196702681617295172775003310829845323502042438421851772864844549288412637212076551104114238628350437097152154449706854769966345945737007032167270155556003013409599652768290588655349957647936692258574433305143709268238979332289872253888361709806589091221272156616984192563976370448419629775323156660887096271745897269125891295519989585487757032534663472988011487717718528944215787059436332090485302025373584133706826804095962741633749506335464868136331102594405478108876967127516163493797567130057113952830564036820189729185222506255898870331368256562894751732481152962935747956704740823921824909918104852360950183281916987491544518496286039973272642111304929752941793277522431376402502126023109542963385132779605632255815873762156142863504575508477349907778015589909228469445165768681628802721218194725792406252784620329202662973002297281874196525721069184216069745047497102451316846968500611065386156559078788398326418291257845769336595331428914259159750738635245696327576546829899559949533421027811879194376684667174792354303871835229605789385923646286608025972604068601517247867468317309668424544118951705868773527696791454912347324449627919379171351962872880850606428840969342855801347818038897393224974538857869915906815390223738905356902036998095009608878774584654823577103997559308991912179416202350174126479388552249413367970550853710417621374915403741667401575543415997875910278983936186266227312052897199380411657182832683045658581486661293626395800313384651206159659089499082355644831007392757858247974939554786017720085905172487546571139827081907985097043262882579412523003451167659411789106337323257091752538476475917224012862144891826743074022298208659664079665565979477510070735286995011370222634861338703544055935312382969599068589784500039869310743197396664481801450645345593522396980285530069614363236600628324306493607893246622518750082633524167816530277166237743942345377530593134885696932545948914305322543666753100817380499483010219487616374538994769274431676935809975863841650108290309539470630447486546512880846046907493969752412489688550193243057948832870946884842286293867070162264691376619170152002964389787707439193169336944712728233144891950693422718124918869887703315184964638066610592608767341441836781223212139663446514248494773382749742796642465618634155287249930411263963381335557293240012908562678164169577299343914969702081890180347440612576426315645999953856110987825773568924228397815877824269600240203791926730628687870591618407807914350317298062626256041836723216193311148860021359358012426290394398742371504121151664090042498314416089645393801693237471447014712703601426205783549222983979437600547135343185517832487371838690963286992192099459456678638795962135922208321493155946055363153975903165563450082268070212230586997601224947637008294376833020776090807915732219895508071185583453572618600287776410424827631262884235481464123002718465106251855182336794988694924013948663622850213903999728802849099038159294319929696065641710528846614865395292327169215839696955608135877460475759444382360728259088730769230672620501672942207700396002240098783218091903323504048601410489637776822867992472440247983690448563755711631215837197772935440382434036891530755137116269193787027812087215036042394359780347002416028964082098447746899713949703953315715809632143005688456684150376720249013889659813314202336541182864127068262797989549522954403722216017840218756539221887445330053428132689464906972497627238473719629349259331401073901948869737375803891821566447612623734401139508200888899924090510971787022261206233213762473464017494603030636174056031003794187523732820853405012277105637480287843286844646538499981437517198435117865721930878572507503222413241388048714017428181994321494417668251552884568468107284463647908601015775709447267252969328143703057158504833318781119984417242985514185583743465670366390003695938680074362286334914049592936477384899447399635355145876292240004769687187246904481919409950552091493590694343389317913534661383395878226252232227355476161245372007123579097875990260967606949484510752782533206900797258061031460442417596080258229993550961812423461379052584504556726699119665741315724222337696653831873475438469737841105236214799152847247981827118323314199137001341677280783400537100823586936621392635356159859580333452891210933729970956551304957981331518583315957739221408678679415789129983988453108091836725489916081272704107774385036818197565967648017142914085367550747596411568417146804849031274459767671547167918448197991764663271873655491195997246416465994522287215961974303355702818326033444046804627036156247903415957478087754905164026970600527566477238460939902244527645628300575823703942586813527421918238481897501177980910935280904811676969992392717347557001868590964521356068568586141352892626362161556605601566831128495058489156176747134916095314797070636230253109274001603500128637759671938646292657799188864804071388059503157342037132335449982463517434873250192605223466014237890997940931665144306101266909311667558922681007885835380650045870398936994110525663442353016056997680891798354121207624060309975849235199781551232222092594841932717440562520652408920927587502764786594212472990090268855934608321829333537091251524833247163746436036539609691178319887081533901824193941444397281408693361468508125261148001026876667100384957326947015377292233413822708672586264604731465481629159924987810379178713601585510343294256992732393698522850484519499426004123129119514492152175522189259808745113303472178611080715819441015554900756717830074392804667596711241364081945933514672627845880431961105130466560313236414736709518576101685296571501805993171248141542701214954730171110887567292752135166452943223106972411589410290241074905703169061768534550529206909885429889958695214335743526597276663033403352394052985718107371983530384526327120459911345290408043348579899879697898442564539771132022631150210979496498841588920368289732796925072212525138429328682819039602179377186453670920774768545851149430012309293023732360133150741788043505113263912821575899713206298490860481382996244896169100234903180650114090873077407993432319226472575607840275649267066037273150239999238454917106019688430897293188025981972863910307059203932574361573228852108460163988333321258970177347496755590979196196529299189162456567052515575150486356396028170717711611615448395015664045809743421130877517641930540280045386289671064278606264115854861082983792914295956476889938230326270411808102114649335641283337724260323436827594518720823809768899567379193157012455777021054058421393620175689572642521067281210348749976014999997713166370832965553258716473860328796164522032588993738574278382290477599767019363687660607923161038521688342283397584143269939627775260878009246960520001609057939199309403479914495014732885977544486463880069805878384530291671062057802077395133295768395947589981765732190983624867030190426549612543310832666738317869987768771306089270364570593988901402579918137220398074377350966375341544238200078953641890556934942275028157592854677931179323913822653893260716906438426274547996753074196390439747734229938203777849825051896014346911528964394252250899799569167471237590695980048212835712594152745722759401206361050914100535756363301598770962641553439610856285229757988248894136340619668072135248845182935777503565287324501099910627429470014309819654772497598998902677376878336386479024932510137931451728354428012168165695882899085101729521233141512725798360553441496377280041528623447379137572963122870334002446063579710761919374991103289832352741037336891636677139007979805218345266090945465749429375599422915950036947184289792596905035762223201837624816107911278029504547190176948769326891699199466681980863279867454410338384847105652274724059149840996072086687394621513136545784953907640808925088410888924225042211978343498142348981583545271263395477428714547342306003207640858810522988038774237807887033828542501770636578217433133448480976124497669457545745799132223456952024240529443053791738255089405165524008696614104712196264564994617338813016181347725944340900953578788522126539189671680426571118976916316880611773908554405894194846582553908219924196036824488647684278194990334097584771910222023069102799185980810978444080053041412345114233814265367086048270338961249610282486772150245120234002358075407630160681352053741638952373115769961000912253728835499292028358394628721767176656684042001774397489233321828602768212373845983707345432299502541948982264090138977170463140691788595421891667865172685354260627133525853671920219128432602489711037073827465266033478210288283011451578771236596894800430828172258524441744343275120659906291692684155189117630988393919536786562514553095676436358318534919749362739731556849664511515296005343281997661892657320859282707640776095053403786977059964506480882382491073187297457300812138871409304686123803261506248807141912551893045262751137244121420133525125260000201418181072456902185045239276742380820918691490002188449219357711399027313183843748532474990925561010765131324534059621262169585583134129705361444417818927783559457678813406323334929178731563486727393637825428221796777764315952154124484445218495821438362542418194769175851393696962936716223426785074217763879229902319086517262384565795722083587910570194281283806027476194603160577645373585440407576213339793161486996685960229515026659547923987519445371134698592798341473568140881428621442095405757598796110309627137925233540251115693592961727397810660212414582404827515075196788311613537911541660078564937193081676260334470386619092668561565106970309780374876646816623899553233672960403999386435543088780213223186759392413492647743608923351967169089964046242570907167788770293287856044655599482406041885504805551827782554042907023911513307175408375975425957890415972982338793922488181089510800821026592266017900337953466723362933289724420077128015434930883274705492072487804498803841617305503079629144662221673415555299270595151877058888898798014140808641143892208378110451949458449685293167511020862931744355362834944424608848673449200445308647071179918053826089925563769178830920336630544137486159704382680038298120521116148441616611743246062305934581224799133280194900818357930292178741864742177082716712176329336589985068720518441972827011843344528245552158812909101044950172902231948355501213709383087406362151652177376419653651148863159383375142004987465359625399116470394555686961267735593146326076200121204841297783660028224052142648148320524157028672636195246245932380788409564544708254477044071809394776774818423050696380212807579127702107796732058184677065797021136912113597963973516903678036420210243194670737102907355319939114734906149182359849368712146816356899730075875355620119390514431165873548869226663860781942299399599827172125074444495650568960525665878706880015680877493341518929460051700372514422317902644819269943676903638956466905753180088651304508635936941307844654243449758206297351931062675216252181982588946047995746535894879512787347241626051341838891340625904206136501409772584688808467546378274243186993267903282710635013200880421987955476532118489431088256194814110392248224406253065609168002151717398212426415676097296569319078244142315547681409735385688625186851346858220147104865528508809752862721597405922368298349893464397487651605821822055882939459492866312006394869912319035326725075041882476912765489299663518985918807004320613483793635995960590241198184124326751616080737453405020850384749932746847285034153219484884858863456588487643740865997240865684177532765963123061211993137203805638401010509402018536697764248201821022028761769921548678820071444480242493620196944119979825130737426242600748273875113838047434934918381910670232085919463276403051708668929644910212492724895483922220404385080298153364591484582375836427918122604583566743365560120153765080350014122216424206273658832041024076943909120018713106931376640620509372092644039068015799655281392502542753314491991950699512897274338785986088808352273762738304381837278253896219752952520882565169623411885988114059479771584839359729387691115151539878672091998274543471909871144581338553843955410707548724617841791545640146127768445247197869120267764602437404615022177798446417602740537552620413211419355987916000464540983129726072456748132664516392996561860422360585999699463652544304161054441722161602606045995052087143665223161114885627892336449818355141603167726396589169364814227570381317564141683991494867877140588090081086018092359679176415242644375301853310086845757416751865951411639066532901544742383732782095248809937780527711496376041191017557640054489981241251661983791621610135726158473512795738058411829415090886355602442858554117643764089347102202218305188887208944942041144440395393613508449786160518983187133214617416848714296376149778772098433328644203069544846111945424094323639204701004541927714322451923281499615456520528641207805414788342450463760594687258154020101109441411308788794052451610824577737909377469593235485870219755324549712010623989987922794423128180492897761126423721820519748665373837724395757255779031884411215754515005919543644303492135938031559849140184670008011542042514204736811096980775687676755805361018098077448859969379703824567463329104055172698962872817851519993600963743306564090491869470280177623345741231043720097705910797041353699435843779426563064963693798859432303669560337279616126513930766909313313911574307612254258509061157924935885354515207234995340411393931797603930442186912440117081355023052195482771787664691534574770889831528511072649269968018526362544019478946039346590836497381159803004436081573101719543468939352035568427474834347386945409745028097312231967891155661982460980036112301236051031246459690392790440700255494947370662897894592197740031257365694260626064490080076520354647199503729714991610057035372552941444646056633440879291324447062340460119935774896469703519386412055891813498392299387241185303813359968179978340062179959542577435094982519447297078906549267986976690044175205248708980952232448101318197292644895293695303323053725280901802243004128236635575721936930535679456176401843433378620463257575397360142346422224393275856705220187512755923554445070095173330385065532897051853796725720570771302688011807299084819878467506087829651463364253021971627755007505510864871120956759154738107235672595052409971972329818943492654460135998388604238860774048880490840460283422397114013633635061806847064350311173577578789495153270737084185304950776161078676326658981979270467222095538084777816741703871128196990719795957495275363045299177136992165130953054301966691682671049873777589920881832720936283454486120839980976315342296018122757202572489880498611395848136114425890398460297374379131927244116590091060094309740869335281681203350017309637454418705048032114756361246609545283569818801056066103648406027140258965488104524007289040369824800406854372329852290689531776166969090399274611105928809910146550807937066108864879318984884230429996135719211306666132201469756487749890980600376098412046767193204901841003667415587879302429892016376637628067027194886161470826946816116055040764035847912523553012872297789209423110904108055272421589258690515162581275249202161920161298303336501812539099023912260343191461690998335255212086798178491291279525048256418784436404685775123557487614726110904363332126830833551719255790674025883799775482925602753160388976283266963977210099301300238472097024801084504107014102986478558157721299218233690137628645167080608239742971840312238895518271669023487920988703354178527142607141961383210245488024768891013854806278104214194229232809967245849457011832739342760390222827745535507119897014030835439834708839245740525582501424894138576646219408264639654609279196251366020573532192527632896601512817012250097716188877782512966507279632698398243491820380383656402432114908886062286731901035317754863862749391750299297440437534178807771554038558847617850190401474429409890802633661262043475179196872071380673244251354352606650934443507099915922889573892784241366229674371297803642772178012489690197863249697616582692280745815573462707285329172281559323471329945242361075753546707921533177525015338486480637364004087474865058187201383757367093851579919816426874992940901839618279915039438578657262053885894340203505193344529484952690921256915643264260352542696660140722776498143779623346772585551628714309084934191647375449564925515699837386985780195493014151187734477651345218969697666181321821148978133242199398710652642107803199939394759620684088346310089110670689514582576776926688240716929718085730040192087384266909986201964505019859832486151705798858307008669064386696730601290989960853837928198211846749888920861723878501133972472647592168713111558178422784390226782999323575286961025763497055665246845843284188875546623401792263660191021281538701606408532077705538499134164904703557436376549927350136479615188063273848055690162708071550005790664098670750076298661129578956637556669497894828450741785661185260790914452870478229689660774535050304748625879471554103536954500753848295698747492539655890184028875754195199721202507007010833185713331473106472931342920292306887686607766227417187402101018876459202362569705306408080453157322602094422014376208548536867023865267077096230491040481226506246460356702349491784950191161377911846297689052403663692858423825580155594614157733281392733034070840578011213762674430751200275751275527439444094429467410647462002289498296882194516451804337657762615551201321040576185459636367895059893136226843985856118979510062046004302561711412228371703129711075449816566557296949171841823784787387624993136149300859582493543479721635861926332637546791700896299898029088524097841765521062291678634606216953139196870216824225143414426628534995427784373179006767719100172458741885864698748103265990628676853482890406214717394811970475476594870928756282539126416651515292678526503471315413529598663117834448347908474721895083682081182858323773165016770194191604209989273396257287935801608242839134010031732551289599360517945670660662157002667250887250218237436380544344219471699145529599954413560468873843977189700754109866910036858736865922886139572625489231469449780866300427888443123061862320055182265752779767062067864365580746180224121301096593121535807340047186517302877089652121012730036923783478554429851766199253758911035563635703450129310673623825184592650500003976484860520788586422285712375628488487172843972484484628252758670166984234605403363364259020314261779420759535923570098101249452580501576769965681350053470574035037747424913372860920477357748253380526696362591950517941302724480284190175137517497484008061134787024021964553773092068331048932117914077573803512650782074400596892027630497016627608917718654366459387276745614609002396365440584871380441792534139732922568010663286625107030969288600165110848666111862084383469330529857054060818136490988999591339804953039376626290544802900534395610125661022496634502172444316136989393332250735419091136896449004900199663469949336398401404884792880449097491665590230716252573134528033457066523481096526028440699026141622572190669313452810623459260140751066283152728352305475883976729445549731388855231837574069243028278260774386812265649735604215980492389655323863208076610022016642019202044241080485456129601280335681750221059985918432855913129666414256460686223154693804957899744319669747485300450440365905390656276389973308235486461174632560656849945747857348780384397087345984750702989819078908607778131454614801901070402601755026364490221860466668738148890730572826511516511552238190990118616086678310713403226990011015538011528176198810947912202151498759015285893177207792947782175609559833820992252514116261715815766101679192306370103461374954909161293031780306738488094051575779754186124278621077088728653089006431003402346563403351016697110649716530263574834524441585087072895824322665346923294936175551208586538797997532983620968188304921691783902760560979403268273538829027876696624990704399195346989735258411016185836985509311637988687373825375503122390237469367274951729165850737271726349787420048792191581555679020011510758479891144252418402264221813760373925851331481323221013335582012917840676304310821590539709374955525710804255063712243914657237063148839001432700665869889180265963434283503836109750498722418939450891230032700518678219440552432148002827594140656185112009285751331938794716774137956515460466454496683101804973676473065143009437800015253587629179809803048457142277867442722064933620390050184748353348604649701558941296290368354944068512704926237143154713603240642348232183057624579308354213926870679498261462852822834484652095735976708655685689565548985727636296367318879904742346944976155474189303772335265799238619397923944719152685391947271403031496644908311773357342325077742041166757479083072719727868602882076672804512176055082990576878820214029086023924097597196099439576346217234082413195567251943412362992741911074099469630312261031335316958013702496342789911975169501388620959354859245020324175596096549930224205129186242247112068934218053944931418456920152563181596531700219881579194429593005566953739438013562053733629255451939117064070066915487424182624618004172520754379571926890068421334071222772088974964302012645758111320323660176320889381638995400734375317240407279543477800335569822284661445283197322312842213442310533723460074378989076180530451977567944138052651966812061016337329311347986829776527375863465796633291955463076693480917349237446993879986452499477147486011003734725622278261644524168819599915416135824580789017948957972786700886037297390957887503544293024000957113549626307968560802058952463691167224981542564802027001788130387855704886792270997756534643418524688718637386177108058118173131935072286741013574171189499434799976106318678962275156577087842924934591886562504308147944772990383117990096390862484029539316390667456890973262781570578775716658055397636238142824258534350561180415037230129933761190628526518845576962880222621391074621289630993877394275394321047002442175758038094192613024843520144058027773803950734801032229816326248022383982782633403994603371491147982645076252464306297997043977350541106793630865210242686413315631081625215780697401817606568772526365143012738054069722374821282419364395430406094083340302967824213876119590150834110719752696935430781068236551931330111880592453042639720123800336777521020250589763325723714797502410176715023048529865701112905895866561766300563258431830090600097251060858598022307644291977987997874568244714867962715184010781428762107331211708949619938865752885757517916426432104883972539943728425048942788851010678048432466296683363200816035203187051527619153412988097656400285976318739059393107727990814625937827882289139433805107313207297666980202567041888579449340355224640904831532829056609969670076443086358021970576281672276309897168467140420366138594549930250683400737416198530301380730218405224149007083954630049837294437788284411268192144497247578096512059958046456466888553605293866046193915380456641997025891857863222995681589287038916821720732698987084745984371396923022891692090733455989741118801192437121184916156167580718612588771177022122107487329858404625360329330740346955157410674080508311855556825002032954343472331717278017159067007064600433884836355271837507874662765689508625168050201526279250174568597553419383484328204645795291076285359409460662958746539155015255733253779344924848101969967859374993712733579913561926857168890775703641461855198922156958878466518597505237132176254513697177169748099144897941523553023614841307158685273148458940041237525412975162201123761604040855304914008725580925071114830958709279079155614004489864608795882365350236474522310607338494765548391440272152718516272705182013838766427952273345030802355401976754990530255781138717859161349480246280578218739283332658805426847738700328360943013889507090734047339333994708990955546177274713948819918828056173136676465284816578567696425255290097487412721339030270623338228755813543887546243582908364468024495216851707777345206383259561452728023073254451013254109376405313193003880157714537844397626858138873772591691201465344852943856918361566918937042182642252306274656214980120422244344839366343333508238169305823932090169044025663057925690326660775723448463177409080052513648744821363006375184859488218056657794429207999253513005570168289114284272268800014430787270335100378132447032343006003327112715055403272452863309527202762387308163557561199869198846144753435904822662285738222093276800351159553812280300336916300102048876748950194999596993728351264598069650943724971695987595317031525386919002970380874203861499865163551016104016750121092990464364114176666508841318587425024239344416002594194927851874469164985224327960298035800364865522583580534636501787351292634704507382898773809249877883386706724336718581532311659048892980812091074019058440920888904661724089889660473977241377790193438381933203891164437223485163058776860919998542630507751673190853350568256075748273972885260847415419862856717733400029178020000907067948009150008944226260544527285546228864722433295791666851669059113427153408225751052269022824052516726937328833058793313575141523357057947350396021808773543762776119900598389989492551096382349532136191353568352704278552618094930060771485834444940783428544974962854246570021561675944756879198277604282915880593545502150917972740321567121545980470570328822391585708741493441245448907463438550859378343618730115901330016039139532733630121163686587292324667128759831962322780919965832695606152142420634654116857087045338374219916526730609985482893424159542278766183733658670610498160408043955056438000666390991811848856201191712681980640116491282437055448805164759614163719209979827255442809303444371211446045363892463745866330272640629299437095912562173319218735733222917385308243563156411831616884312162189083037484775458934531447390293401091600930301979008986448697888614520404032166379809756974162234338144353132304094271522510827344666168749118186667152169724306804395530005531481350642215997314961692679451820774424076742409945483324665238682950472615480667966500791037380161499647400395874883850695035660308339183820270789818417844678869809203660581128592560778828458605078862423611997242150650113036735559224830237767990126130010407497433649514155467080094971220335318882967862190442064408698179460427839435672023936906732300871777509531950600437045726112476686944636874046512292366537840563402039321715130614978865201702814223575316299119344866616824808102766011508560507647357229761416731181184864584623815789745125037516340752047431180950241514966397666722821375649772661427431475153039811837854694294194006545247783876583478967840836134671122109165748326329219821102467170191672978483961126275604602424838551233421984927225248475740608641593254689578738107175447809168399394435678252167244487900108242249872282964289653071616759813195779974754951004820118355749749335895575835946563683196291415172436167328035128390480930763874580103289514486441859901259739061313692222061449743322432705827308849931132966094008252073721565775835542952792515532653185272927173156858223782401313854760577131605026097803211715929731916904906884598821779224339958368962553034319899321390956402024960865927383767132470121524892632497178444721669979035891707162801751335586742310623784122464074407473410243017085624159382022776859207609485664304345564976750273072006880890149506509538027404647011227216102880780884181553440810142293333694577889210562122676832514467068146218186340438172302416066002902382214987540955843486810762398846060812226038403799330614112571723383490732863347734925886925819649502086978880928076880442374902338599846226024629827732540256957609432042501011961699632068581535554735227940243087350094582985974720249837733284607454613596980342159619936366777030792849568277781614471836169080927096449662665641350528340058129905275977776773494836289690673960772380101729390235228141133772102517544630151759312275115795946320084302864446368078083606613618319265617257470711926174622622536344760100759525383635026952988319522841896516568853668439293962220844680380300739101667553880784945411081498022800371485229877332955567335306451245818579384925110457585133077335435930407624449494396659059795455314552181241633376587293698525600470425729109391884811718355907769280583212142305991868311606281513095582105812349848776971400544500301741184674772701970988701481880269935292176120336695510568791223461468759298786014740596793351709570193177347712125142075245338962394541295809437993031627674248951015446453485749055757251106039158200133550712844464867706674716438739786697704514394641551612461113194339947840902759877659625028239738214732939021178425927687347746763310006678222046286094812213042686169646238764535492727867664255499104143471357461425172877961600920160368578156050415701467010817172476098482318625766943233438793109068398535582451929152027525195844452406720917908628769505561316871987555740820799810559318870789064287532620004782820877268918688027337518893694767983971682017801687088310627512420275322220417786004970818806297665969825930331609124355322650492902765365657345939694857093376426751687334752415616601886654354220024002047642763045677017031992075310157039893499999175608420045103843068390281048555795279308837931376671569968976607911891358708869882867901411367270529271992344720521696220380513886062066379227160733802075981869225237862592401279761202492893284032707882787802868553928911726424870373861016684051973733484397317051366895609910209046068722621627421094573596525982473674426682601909563313577180338559161221572063110793565430177659357924755475227228899873141491400532761124509198587775006383873870248527663857919630439939559414682918123202240641639954540605722361619160694700734203593108478120389400031316230623549562124419629463610011264410771195202649788400747035099118246877036241227744065776929164140047143482798080466358376590430553516819480837329378732127742482637995741743418776813445180103845426375567585734286857080564207095258373848466147954186560437455854732121588096928380994978746209590753470649024226895817338162951857175673813898425747071469330457611653006044853920375676657962659988322422475879473453215079750690066129578487216670100952111840654740012946690395672708127703192626391992242387037245068977675754993171893598215167250692861973075334386427939803384865401938825496342573202248561958902772059573912961813206470076490888869414523626249064413085239673555884102775481164163698768805811182131009325608176691512694197662879191847498961502997193703963444912993211450677393427407927827729703382390800966744135923378485987497009981743758214425294833726431827159726835294261040737815214285542832241752790909815888033393509033057551208087983225396719997865998548359955853603180879420478518666628123342306414504511159449901975545813007110924799783418256683258147879744047432957980327265921755889507197107676583573099141134803277010129182365612495658391462334584562888708021602910179233124666212987967024111484686633809483680819386813292076757172244849869091935181961575308709572633917406574818242382138044963053098291773029204820773618338286720924669222169070914669432626390656819895119071580831393508524085010243138692659181674812570851372483072872537261671032402174136910071712904989614221091617904691565716205739498503752254100264815663292493487787999166073397853341291212504862908491858619356491944615470348380100904069688364559937011049873575443629334574636456482538525156888593709725110664207483250514281827544709313582350817697865049488119520947091537524557280363871514218850698808135181054570348010083474091983788451583005109164465306912373150919903453953729788442644009493080720384473843492457236313904352781797326652918450291327945799161228647451113268050220976694230840246964165010270819694518612746566440639936133544371352237025590940124138003868373678146109990174461859740482933105402015053047978221750874766525949946678722244697081554309835585418886750901407977448437741166349986715270854947982588642682966203746175831209090312470447028433024813854986601099725674159296811705611187340429851486407334517152070520314816279096178922576678345802975234214451068251335473952777458499724339580757115033879456336471477495650070268985471346648836134445516632954385384353715086226042947673689224820914343212309415624132393560434490728693144967588283055390255732670658210656364630201889875955800718670659648162043569698978281291907569235206235769647531509364488112167160017791348149068382613407130331809367666611451687880604734743207980167295301414479852068653627404035247130096081166392665508978056623411167885709062375328181877488113655469840119308302456260488729292536646263493632550713390396051948160107097778930268487377538310897037858129111760349997815524856687465648825979301464005534877156399425715175923056298800229338203058565383158414444109884314773649833915800151680459192129085913515332817927301411999048717105519249144470923870705296395005623649955332466100289851742138146195450131226110572301376004172986073594104087047517742283011146916481794362906345454273188081548206168821669904708411939385299266965824013373754948478505786996019069195931146240144833421286965845857219098800721175006293820419587817412846748660907442284216392099060257053609975182676873585834616728678653730739735279515412958366502132802786737359071740760112758211581512145749249667022663290776092129888466030516944364232249239716535102786728345990298874538104408046960976429253775696579009634775797083629295617458124088029913613700073391291464600705402811883070289635842122556635307018246455068449769753000029332608465653781318586353335569218448204726496718518376753104309377973745399421087488130204012718456325772940087885161443948398357532749689632631502291945292432310276858922083800246718132960798983846227497830606108294101179386944780175882580312869492927719618575092029767686863596708687442326574796705727586660805419536442713845604410266712761926993657427555659777818569876265351881504776082418804965533812103341561683578785955503260605576791085629845696912702410966028621208105352220496917729856428176911461340750493814155088240732711407032739949563738322164048818882471256641730772080621357386040732355511267586711819706817302092639138903805435613096362466692280284056315344376351865355178962188458078216700673570716079313771656689660315433480830455112896686933199147449076798035831895231068960961187941800915452183489569535358458895288760553578446788981157076855864897862754457485303609066320821550830623259924449337326174651588564563697286584425044075772283326032001960218775497341961522214061454590800076424860974775124658125772631551358675438401156477924587402399105117269392303865669205420591507901720020177730538913771814705358108729062775512165644806913279236559382601501498738062472387278802165800357662949858424744676239665561608608528848265524021639760370851712708607678141372050379012763652759933229648680476582436568563758653368187232882359698004883238775276835771819930081132565275665986462096691520060867925460021095149790586709169761969924265512809407972167428944150041503781059515898795291258361892716876067884718267300563006479398034592639083918997252705786784185595462201668728111127631252325703399926015797866387576520874612223471762496194872164865999061758145158896719328032489130796360919326995445219189555838538681697284534203574778317086111129342898760625946353854742587641160495622483277679918098366660697086302867613628850244613671203283415996021913784769862047442723028433118489467623933688185375128503614851157940080060410987927871570125007845432702025320682434321706452337419901945687918324101597708682559902947201752709908704251727715117255561861237893869183117340870998690997479120377308910226547186793593555877856096863574958360262651368354790449718024917190068664082043764972910705136571405749221349349263583069330319336571168159776859957640110593302568455884083282651521386370382126481524992831814055762534709325723598382337743187667592847876147363041375747030081620544190451725255838503191692635576790941926766384468617595440658166130125727306803552702452325402029676026013244801843921390429358638848257698875785132504208153686518197899705957173693501876731666112122826406026203987122271209578498408280519929166832233972944576670232124152202860642831980166516372003845502660012896691344460661059252464486766855345140850149005379013462322434739229236346921746163009739475203169681682139560781714703445576246564336801175431467295440188115496176928515962843670262892244405176672782451610966019154454101298414977252141446877710861546313492071669915908286646753943817849007084614683704221545867528670595720452035426036248575212082990274699326942800508264689393784836043306169372276034802354062603440587338251009819037123141356220463269716829606086999326545838863937675787781550644653140345753037007416918829605035813281532496963757529509088323850129809481736957357683410221052114171360145586841046532162502862037805020162463740886024600911660420244571727419559183608207656217813979613669129440515204635275277700049180589599911106109232656367161962312020240663623862143414527969763007181523783835986352853089342442904882427293820849573766523556730271623363679732230191838616045124709786370159560661620104846402841993976704810767712045214582716583582136204085831558281448208392464914559917404019003998626741892030249599733755623126667463063260633776478038010439535785268218535995106481830690130384708046424916269213294008635753101252894832366428651251709856759863056383433706312904571530778760939200468422372937056437157575466860877380375734306255129858325413904383163949134043789837795594209234759263953406470657765347469775762596806584015195240180139957249394606352781300129114244485726573228206299534305159388438726106559213987407080875888125321346673687611728256316545956840807132069836980726664960586001720586325068310214185813624147948301740580113899265311292385064761394896655987714834859891172063895724896266894433890196056551645256781591285715125066049916697117551629194302363569536061120254012636661577714786110601124542064265250403793885345352112190748949021514824341031022448199713488751588509873739302159140709617769716983223458506051561691992430432903779428463694789958305897256477853466176913369235382924479733126668049452053613538743641702362395237598040528673154393693757950664441208648127230032212446095680166564549692561105952721812073399908525256268681441727450602710473791924528094512621660913450135322615987276495428230172355795980559806371772255538059931234352897591115924219296554189542605094296765336446110634474716427364288624211641827007489133222138384725782889938101996423643746879559240242426433092703255234520436734251046348584406385864089416126591635652286537824522359820171729833085640701868701851633689266652381177948537524801984808315130721321779475709343831215102116862288468433203049309295669523249121669525742649458415848222786871876624165964941410229195286824234105451426621250530303440927754907645040491294151438725350277639325014825812848085665493352088816700292093449243390085373397900764084227361887748925527224487243070538261131951694641479307443289693192213419584915291392492044067937699313105471170821687863163856346229812211410732329056043488884135458661028792566972123017939149132170430939246622660080750237483998287441471332767164418791593200145503374481290930418140475853408754819941598445607955115629628703168586123664127052015125199270105093680387688259395059955613842269139674039794935015566529835676920845861924204720586205960022361557552581145674388875706789175002551418023415391927307070113108570166528500849769989409604045524894562674833375465465133649486619072611420058914463795911028417103699878757051564026428408642591254634935656504019609246733776962062700967028178496931737907031787368555074229236471547838619057504547879364243657934037510869440456876636141327996296462745696776701418769305600008680688271685299582170620596432264766327365075504590050947970797622398627017338784265470279328713062374990247868187369610568974533670099496889780102490961604463393396044384811117669957633425949596423957894531080374592793841505614743961721523173541586160306582092779068643273287632082829321147192337807779767782013555600040226671973605671824638941623236757151270019209076124757604415178489852579951846261606357488735967351781790946116906535007114180848729851921577485109781012721772298137409906492015001937715169243151649367848868267447266109091320465625710035687408504202656993502139995077310402013623232610216523309980699932665423584086182306747033612211969172294019101864917853200938726038465945398171027626890521432331691481399576792700286523383646386545442373616837003379651491808542302810221374643820117597028121195353530889522467883614501876615121658060418289329860625296902962760164059902222280202600897787114406706317321276745522489860209886584440550809928961310410352292010493702862955942694170300852257144823628769617384268338841722883157223000703088109676061913171969433762603180310362379457332742385168734872187888375422616987875403835034329026001967940628453594442009420719073653555718633510195892131470561222135634847680851162095699719027314889899384655113402281420469616576722623096239444412150958798867737131985115785523686663367591572589709640921520995758818185542138923083022581241640530287473948614375739089408323179285587652624078180218632204235626754499111543586127793034238872950648513092852215720265647459861549744077887592076449001653981562872469621596898767697415006655675380724535098327147077973111984204566535261485630186743720691594427049848239168176399337413621596114063175770276776562011076690404439234009825853337248312136229286382160680505492676342359806961906571734784161104563652456686258640091595789506435985688054601349406742412469485027138073630451846947051323712037371752600228418786524023280831765877377702383459445609384444935102539089298811186535877641696742791010813382766753272732810319214584045816729665607828756543334976150303557322099052701623030854917832433731815770578211836740041185172378300089733344136406471943087889550166564379267839251476453634711642682164517737625318832523026858879937666829894515677971353704331002527968988164130262824023844832454204191157391026324106762944487650627493893686859152788475226796597630899308176500369866451106853240184016979165059748487558005265030248719302958208797739432595823353509535866736822055725975562495753360320191016033712637758844248015170077525359008702314666560919364366078307084202563446357252671985703518341239809805476600678323382437457886085739439718282156181524242994060095135157876196754013753999731521459200751916358450293733061579679452535256409403751817296333636282136527661242352681194977271343420529175340216716497946010732494859181620665852871328914333817932411399863676804409680178166598466464403556199523717162626657016838237883242862906000984235276000304971280794069959292051482378017856793442331954912151756276086417174467488971899119794932172806123804850381170507879275411468014381360015725918736397420717270718279608206125072658760126763008984755329922874983159546389014559872775326747509983489967120960568782363341157651485182498864897936196941198747663236197143326802485103120157195668873382922750315409871677628626782732838610734984504365273758976419003623396011073753258761224931693063918914747424246293053731084518553456653295522635921704511183897418438321195425823913446174154386113225567532289122394313236917143885562480225894716243235248021163455733153435775211268613027994010251147535477499269694141791320563201782429998966061558879062298721278480060165927031180301696555490842782383456859539420679596378986356366725551776235446054194173462207961994584577250054547424189677939771204471855171906542825210099286941638161762393446862974963734372504617039731555604047631721022951736617765868687737529437093361719876034330911351023798977793032725098561851412927469663490056824229694650224311259248819072032257975397917264018186798312652843010812889915420625007810761448224859379774329110993047026553685766866548507236351311234890709176898469523814689602747379325928875702448438729567414186804400797917467024949770850263450089119802717680168854729601184894815513355367647657754274775442940637316199578614162429611560059430704084804231649104612102181066199731753015738149147937522237866250681313193872534194956009755217957542121388216865185520531161524668412466618803668913655683136143764976497147980350237858693380286538765354997763414962316337466912519549900027558488205910064115566959822185991182782141469926680460330576700379699103807729042223137158269990607698316298047177194475581545851771011744184532974341892470466293773929272033813061611417761638462917864295535524944000773145906387664780524962937914950517213218865897845039599253765049111956453369722202594530885171012100180461123995166871746896046210617575040163062087535929361841481374576378884123615540130784335631339040706053391620581092250498382767850037833645397124466842876556873665462993388967840409817636128416388569391874052186123780981678575881176183225801100590806112912786486879765699996965266570479464392358508474577745230446476008570304776335640407738451660298268486455746216811606145626087684749245067082196703075294600598816818987715018356785111876194340921817432512682640832503101205491221185558502094465243375193657179827070604886406881732117376157417751689121894281981600216692624888868590426063847286538558528712896973202622176898244145393784928997041240328960307524180740733350447893566397544871073635271369530300239900035489179198724585969492678779426118196175624867694039808821759059742823917567239495585115101701513906686216199040255324511398429798215663949645867069680157090743902992126386050778297608937456167294157305016223720617454996167285841956609140248495165806662720052482220114127831550712081863520919601723550932719243090121671509386259164114420913224962599701620772067971444089051479368548832531148917246739575297780854345717161027256453155366462181411252380826715255209608780640179087123084925641350534748148719264436745952658057758040338146661549540188799241040760022434818684369259604705352654956719304443119232696821654863425224428425903798357984377254039783871470710960845975090071395621392838628420361638412953563838337428720287222567399792052428289104929821517415234532030538851337192512856752207202515709590998378173336281508840723225068669996595354011353580798979001348503841788215325414497457726016440444588628979580499158082241342975441446104663135487198139343869337359825616659604865797735692330138114096171214595912931973487934440398667670908853338589425231085091644360913365140260304508459621408784091228344471390344930160092654559235804281387843423556868276700038198356434438576019822491242425399615456988661313505407710882372881148530921140365555723109258824911234623937002343578356553289094322030118906812139711683188266246326478206062834213455002347023968302421869447478616485810076946448876847590487851378596212024340531700783338009670750474377474274707607595591649035369249462271841405425530145471267743162314096174070522935181826708946193212497208355275665375091317214303477539527882736891223324792304989706738696105409161047890503295314412247190706953707343379638328059038464307548448230957548339218292007567076616901427187496085800000224955010189514052249218821102268447754061887905006777166968264338819909224604150506954525106258326587684366361853845556733880674680590551783408575469601017974217209681801952201087956757447536183678714588966020891086708201415088323942904990454552729560615314204439849386658047936165191157595732804396486432421635645551852327688327715739496311340218712895238211548385584263439004156617863238429507800974896267239766941069110870117843893363018714241634056516687322535213469294582274080375049166570573803044596121979515168620470222251014030522277212815638724121708824306216750422921251941206916101838155984850972388007702895368010096827484852163913169939445939164502872416894259089859404399885288451631083051492849433338147275467468823072826470919772847824335466558030971661673526347947306039545314785515451834158370285243466061151843914136730017734476988563518571930503472646555651175059528515077848045736116321318539455103724042759813934031640679470847307929751753778753489608804108926727716467710095700808690065548018244402674445559051712841155814530069606369139530566721849753275473965381151547197407417125849948548044888529799070443304425955804568735822549906556567255407368534776952204302821569312725162810074420661429640280421750018453723191045080019757124550029666804989073554191579811818992139118360109099190600669336929432673836708367190299159441093141738381590941084367264684366847961678082157171410066163593408110518863792295738273409627388475476191483241123550077454774951529161508474889068993951207421818274185732677068015734969310895470189756231948064768803558339873059493098488189605493044558426165347431658221019356278029398816162302837091734689349399951436298417117988572193301477366426266561909127014876176450885907332782035062396029140384799364538545639259354174579040905782137975387168552105846701506736772193830541660572466350680048870189612536164563551406784637567247281998354692075239771799558633732081131192367881814432453385821132369444592636297405645017500004352418619709500830845704909587774723336418671757912669236867562763386815399064060528453384697182750724447259366667844773457491304780266089234096293051666953189878227200242737183582478195084005498934422194924410844687604592239175171310838302883649583547447002715147498757827942396690943615090429024752549307791056624398924180730787929795725951839198390069104442901900446638505852586529610962355440013670509925448135385587434086019809428459550744657437240250634366336978017646105386168683347168692609970641986757081125992246015295084596076075053140992202825264222817927378868037804825190295303172759974726812148590218951310709102234527966938403236638912788282897196022914606073364798687005018636483703250282887937607828988565077936639170753058569928071682505478202129792952770354990460974103210867525503105063304031913745523646078122313112186663366727560832057830285287901072425313772740809732532771641329813490405061957270054208188207193579513900481786369666744065930193079282316931604688952252131996996388898986676373364570202047397446204659773746086396450677798666307996441427802204317928810428023714341598625712632309485104583621328580613274787517046372465319956176688797287482006203576817843310203724630349235282458503220409470832114279722015989971731738731977693848702246525818495158958281710822401763136002684927679281572357375856182436014875581295929441016462428239936395127801826485963935465269011812916142768240198093835393762546957365840108681776361479825283755972198784010357770285042651804324777562536852533052171794998874084635621077501918414115166414616722971999191955774925740151496179380684591517461436060019652002622376340702250226541946350178969748145862287981577183936676519692265550911416533138158935712067843060438889215909961116176720552144373092129885341775746617317636319622607120261407432023670134601568675639896682428506829583223400975974805656092773928999099864914324063133048888761768470293983489388548485838065488411700082676791308109193435787736019380080121958479954172769891372929958948106173258992797853948860824438626570969926793889058748043269883147535020012349759910193201070090871624741858116658027946497161026922959084279125808372078182268278729059793833112484088237366640964271157492638783025282318685516982729949181295344195118832639200978104058210049974112440015875501828463656643243976439288768077320281984258701725192662459809788553927096070679156871071014923628977249268091540602143783405975148356424338647749317135167934945611247329586790542402308102235075554864408474030830950205030074560573504765641545329443462502838615931496084603694721663431466971343697841493615862408022628981129744050300223998460881034222039438571891491182069802196939205283328931500592381555512405546317758222758691036826649569500807121470129559515276273218082866199680166285054050527598282873301177639988175208863465866379659990571672442609882173858458150048769238170637147181164664717498682836652600463131532515320504006367864358659655372539924444818355073516956765957223037729582145508577897302277667228124731784359791991274899367724875683339787523909727626860646278933524015774102485413153151248748255226515944054797745121219676687966116821832582967904200492431190500090822367035711341348764480671026162037551829851228730050805778870788963985224244884936440762824025704940947713396158862261971776584798654665464123877056768906612525415957794364278048302609161702032763117187708633952846826456503915647012477545556915257336777611019985302220620826599671741436962644479211436029027475578736497255481788727160355423538104319372104723544146422938399429967793050182902936126085312548839927744163315138747015468104248210898687010282416562023101859116746313409811430082768241477532319625698016785060754737079974994171251880305948489664726694244386693974952965320863872782952082669044718740662901143748857184049832613162379812833589145902265546929233883960113740319415116928851129299412627090064880646520966038631540578483888516816339112579040717425795341831143387682755711002505906652685336667037879682630649132760031487237328269794395557039463699104632918690191466443745761962822376034429272031641577537685700965025516968666878540860753965867162407935095175084730971908889113690604384987545064017538592223969643106171048874612676643065566242971746002098252255123351914908703892929169338577561742098612060345027071879395044214766373894075995640509175080430198464461997736719059154185978701519731648959830887411234308114276593646422901580372355369995287293787458383285483774856863365012254543871224932763402584771544565310929729481082204009754260852256134370279104903541383802403961169170570774575330222108302360222875700521598445383102239851716549259043150014735074940849955247482708907756664549124022631031642992057907870742892920080256764831451965665678708679127764693660342828207309857489309068670691957184894466250672798492114555752111576630956217428411223942655132455821975369490206038170095108565884855374491092370466505684526624750382601865486560508039631139980640557137012041844560637113733043529305533632420488606447009707949844472335682786035654593586345618045295630972203335633164242144319821392588055225901777495358456631527670069048800670114289893950796722434361711189012537217140667047606431100087251476915671902280572683509309482067789583943771197428936000465963789734573917446600267818002010232228395749913522109759166625754304922475434356472596316223238065312644971564262860726453047991221161055433916907917189560482420473778180607386638383041971560812452311113929319308309138046968531178201740052285816669716199279886012145761452253368546534150988860085593693771432628850832429270061354035685551455611997078350314638825293988063099131236336489627193894705498009050302031464487054396389870994117871184965076820854303614854663409108915105410694517574526133759648259165687094394408494181138212944612154432791203168050363240701873023936820614313831226890834281180964015837728172333647651991488014522642292421840481553380453460306265578059535307814549191315824702370243218447696098107039983345946175402697318273998080116813166733374143903340194669312391888845750056495961736662045659335671236933996782494255596918544353933693491439141203173116057946933660337717818222784408873327562723881174529784786324615874928044386510352540537048678701177313058519720313096923926633410870131842059271528694168944438776756870205440771720129657390738154313749147515063503459607679712299979933132721432459542378452976518171050256769936837928211198061475641275777484114329786596165403982198749125364412646532760931364417162534836284570000620877785361216943126836951412168028538181333993802247638022095424166734486229895884469813885503272899994249757216198368410316128141583907152731991614332788100607908309830603570948702934082139660172337005516408055544158863161544817666821046834264015902456634047063978097979869303321448931305929407371639112621403283408987553404074222693496441343330326355158397799088531664284306451664257119967420035012104278774854519772810161993258270229924141843074298548981481039154570249477017896122574260018254629637176164699064598703462877014086989468888857975504459362425945306398491784811414136327810853303933591192418970186449207029144234418086563688594910106549271641000266531130063961140136524746613066832971897034446277819055523319573131937474914825390553242070577293167230805807256339817630404044398934164405506588085218062572701886168372344759253344397993717131328583586820758743297356397043658198361674697439171587101742406333781181741188652657565771172292875276983992987075499587392350441534595927784961048616046253407109954929379616342089300991568900397534560386482584018972313013939212827459020331018634837051423816476396503636835588661875060986042643465846450636619785303139398914388124308037140586509426949963732029584400235517188680387106154982926624724642497251380725054248575344553356759126474567007150005767510456510447494403695381437246755608922746429943588661909709801930462783445778793478065134948112811044537395789644998947242245847371549768316383182427700388412218635197837964630505474979179712432094274606756461210704708554595813755744660609349044043142259288773164004376067243147788264938134678210504346137299486757255050427651469206038326628903341747086253750970759388588333477097639977486520822549133971010482128192292536471609003851245345002694643128816068878515473365744046629947741304872803953032073558640223956747579052436834858493859150935220164073076459802457778759542638483473424444886885584026534726397190827564023560420901265268181430412734146688153630440678779186488799080655683231173618237413648537561329011292126255315979143593023276875408298562603824999490268440106967322823428637087526135614038946589310618376797133431445200980245732766785290356431089863198599464537507766069344136352377379690098792736522754293552977038773388903885320064469780830591288951527541980893233709873250093894838876919269596145327432788432914248767410263117000228187018594901327848426163456485917094247089262124032665102424080167919284810950899745036446615580662120827515635440082772812955649620764474313053559069464603292133945303281825837584155804321739758164320524089820303336973792308588952016560756008440459504323596922960299985037727544336914033263830276743048670473961153425696353516042131449702525477348593619446664964884784615143672758079173891264972287213202211082632388417998489841458465571124909980121664991341706553158929332159749944367914435910774923593503532009574223283338994885082575450061497627964568635376966643593807571682849810250065712785885043761876004679235191425142570944680501559200714029590690390405316520752887819977456400750828837369401997668542195774725663131639097452638810117766987245322884394561295435888658746947620782880247402244280435569469998607517827563773041710377649714245344621502085710539869920287132085893030041389809422133131605390016847375451063011656878365020407408120410240103824613344826041544493968203950330555824400387662340459377057234054568014285979502106663645797953394879964874369148262891804472581463514724263975638558108289628897741799697442925848516131595774845875467303084618357830945291790747545720452767790229538153095319567748939077439853950204251332360307670760941208415861406427165043175202215599268792804620801834673775459570208393379338085527369021292155620993502169119667196137251588708559857068970431293030008113574930966715413763029795386752256641831577040310139598429340915989515049943990591412345232680228548419799266487310312557303772078371993183321656358622020245359342375547215537797289021948419191570993398982252035140628646030465612391927743490649502308047900169907880957634601743207934693214801632762525056124328669491836210779948717889962636650294477950276605532447645828357083655209336317978481357351490563905989883621505730406355058098081572436949632974979125169400229309605910748536522893993213896199269389867589792932113790887594673976344109723922024105854727737723573950585797850747385368345530334080989748524994391667795397866371717850104131850936223914209232389773539950971996198909761011794452209248625068862209843266150231231756650224852764720344563774231194057258242816672442801757106751457370924744372349506061934291914396422886898433543989132808428580455267152604223083423086491218970072168563975461806046477409283792186337309522025131309523381838818908453338028437674334255747639240474897776553790958978557535581935487846189240405494673934653572535838078888430655346357033714250320274810628831784341660557854400306699813928703416513887697132472257448302205102658206856179887571272996407436294345872971323434088508177175879161788337006833666269986129511213640760870224665889276128113105677903911399648325946300923140489735755502894061493155676852889575314666297885102923072683006641494088717614803734164352663740633181463322010303512174984932568235706095250557722012570758370771883595177561927205978966344950477086062778100301004760700763682038195878452394809637364316911912128272608102709123014457154813203080676431049639159138573573739516848167967157214283963170575366755625759036145699435683984020856090362528698657834404805857671847164076007916535141422815621012864359398947793890481798954404427752401614777614926474903538610440216244167111447478793653508739896738390697750798077298905114518952748475523486284225006857013383692355504546977208275968086875451586349735913855995334970766815850127264422345934660340329799331544333216099927467258410925450833611957482660097592952117719260772702054309461138760962023463567045493674442668308569983089065791881258380140356364829992492150333285985103826417173122744554163235229118440664038713581743611886651383413694073895950601935757553077327252850272123957730174150439390690926515553745864741500931202658338442945798476077736881972753229278543269036260832613224397830162366550825694618415988284287755698572908263737267876791538640971113974988235421335690647180760953914834318872428235977906252366303442285479233104316264105002647091672094975790213582831506920113599081554759526825823399272013250875096191399573355888376741243128703665500739559200727560764189587802214921424243632298924151230033387130477509599647667702687625958840040510658843217797926532178976995314751806726813023547764702912081726164492668540521086804756752869972941806751505506093970875444569901205332693593784190497586134189426351278476322488045634531883904940340499587680761874828031162716619634146332788781051839887360012191411637685581217198755762259693474509864619062707226020634754250576946231038521433869356456297500860755473380798727207039143333666367134698263468202848779281325473114073127884216313353968496648674630299878400150178640967300835967626877833692794133027329460210729882324676870897426722033781512914377269920250590073379970209060406907017179443646870221309358900656709119367533086242740379372197035283208066573203253564867011399834355097410784796789114713960804310458973560105295661231718787991437496442902828587519962813368074697925460101004670593478559898620148844238541941507029015511332060034825109449990068021797140044481570315344794097358169746078353172560631681151326197258947498857969943177876843984638405470082798260399403256064411944384687924589532979428816379715285534055067561208718215336477376932098985607334936940259418070801814152033372871467668996108764555390593808407945144261365853636765566853043928585152090235518223196208701859267186113150584761679854788816787641694638726305531626691500082457767585909530075837566523454990325104435990630265282362117780026033645495125058612826832283343100585302987451476066740500076648471103246879152944550228858586270648848924416556348498547916664754839696947512594356856617389431636768801684650412086994798378506105037175872956862537512751299339864557446642801244933437878413891778836500590585456376286927565188507167767933975772372256736473916793133893911475489710323749338416902413673504225529241662633548089926883885584980527614755600971699143883745924146820198425736267740161680421208856704630336827907570458734893229140294407880359868880375149874238547767754114401507033408550500398082154372071198111281880123970662907072064104604403043468204338000259532844713445738480741942768804092035723302713446062529868922483586893505160209787422189802986606979471287220054930591864043609380063397584976618896843544058310534783265973778076333197747062692468352654390254774200439333350105045096591947920044181906522166166247163987654593040028271326337063971203632556623748813977708531496211824799042296262840753686574602916892294123524718253895871594283056728864462841910468113552426922513043044746554360971793446359447686941619170453908399622313304223767643014625328234116439859875532036226665716456871433569687569758094589044158483159015901214689244055208840151670857479767397240231985813327901442606351570337002295204129587041053722475437725722310121989901017394213772611580865802995589798581682089844389585987151501889885127310540214794828276614830604508252917544111985993865223238600839055158037540138960120974870616203001380733336753447559206556768949354165746312561347646841766841883995356112692669112574086963504626658088202106993606223993436545716513626951493508459060559788469747123879402759342748168902548594949748024471693716033788904846366461007332242084731993294536942128586732910858462361377004005882080592669265883002865108691987158454560727854197144371886206806625711261837910013507409136181564630123797532259910479212231080498425820212109331816322140987535849158389834197578437483588336083241272075635076355616060720373476872781569336471821334957676613799720072903753160621184342389464993641424138384566660206717188387817192789782676639530415565625158654148238399946590610009725409192695115895272883144082961015294952902041162448211809193715647125619265233757363953882175560869684004139254561131550801838204335534648927111703029918699074842640155178343874580300585384923909523913446137855516599331930669421811838904888433261992554782816149623298885958925918807382331989802438516824488762145446987975106482307588781540656497665901166586728214548206469325343658072726132063101461771476714219991011000450867916990432779016410152570814325964802761880117847419036886782023179966105735012047931224432009376076253985289972818386000376684076554099775294907930327652341869476216736959357048984822397795755149960017315712355476924212615965077298917302207939799445130866672877280830095991677395061999415687500904146077348489719064511176892159854616040173690386791366825325050664897162504847413599644245218846860804725431986408576046786642917501342489488827490791357870680217788584749061690119026565441727317495605525563908597505130329543907671725818972015243307391652448732282263690508464731632546031557230316234602005926718480340159859541932957721425726057284624716065272085286455704279767937562596439568760025076303344626248648618952942788919273638885321647725721803968138954783324384618478823174526907753543149912921266868704388802520828457398448785919594624907357013657646836391954073138085845128461730654404269362526096345123591127543783848729501675589915527419060693843704423034143543450602902240420533753812135469041389959030048431769514764867930506141536788384641159724321791718404052837580629142186805801089080127773310687713039041673488417391892671599458188386618514608120056108900642625779233635366561094052308051483111163021820348678482977424943467109840727438414707176255386516118774755429857626174505043845783273475946824675445854326984975847836011851471225265746343284107703722011323173678114775018766176282736235679950877195313566002076835627158472276539390576776523019447891353653979271507836240108458977431838328074866433926199943614888055417407152585650071393602508739173495498478111878837727970303652600819476675620977971084884158008179771641256937997493022315095821974270803648197113780177464882799554957288498024151011828100155544693316287362136499763036134565832528715794983549953765943506611211221989256683553767211798451657530714461387965991930720147515215183861749783931111700850931834118501402035161122658853931638907803911929306001529063674190831945497994226850426068523420723055537419215578775309012652821493718209856386576343834648808165347826477063717060059221464388553965718862313879343797130116532753450254206726429489349742510766410968589619910844574759485904993863882569262398595628012465735696711119326767301785706543222742235093280518188734048055540374005277667182008220872267943341310943934828883657969216724548589931030028955952508773177720256318781624651739773534466751714636934501450655153438262972884750014049219140954838412423592460974850891990973995320064570607180821990478809752526344910230382915417540903197394580983055565437954142550589571920527815937409919424575262366460617763913672056144759655670174856542707796136953299881528161643405709956701301482471398756004187969795644323334948181152301878032886903939948206151014660161166895604532806561023735866218193169084195007792668992555889576854204223360140538986696154653098316364394187213554741078249666673983808980328852398773990366906807571041960253288417363412086244344951094295893725802070298005011632137934094634844075275955565597343445500716295672901915679799479067430067364005921887704946098039244280845041752677746165890594730535168686621465566426496785603234778978206670371756355110266977654244144098415065789050720530281423856694381880913976522484300707700721398270527583736526353151442198361598317221889377880042943252533071043871993565155291972088889718181168988790832375552580750608953535655130130515287669758198052192485719053126856814835686705169559547519179124366793234927230708130021732741279774218557497660276502410956698720959045339362241875490106258237522931854409490302507471481096461803678242092291645680053540510506286224996725097661893388720017505566233771502756240261031486856056587712143283970054384756829974052684992356654416287472743062529375271263797559314552772704974067493866509396737528970825405020536790966149053185106202028909830065559873947332401555330397919675757992656655744714349641962974318052990957644190451321699444765349688270100882427547034352179135401747299137615124328763505715869625513651228629287576233872527190175004268963927616323148014382678880652127683125077898982805116357770538168333904694298839392645986927612651119362870602301751864085920690927233346823488417953095725967939685067438438471742616024350360604280023320601715750979754352970094686901579950267093147678239791020898349210221387421028267645954731398729423429513537303708828343060241435316601753556138545266781332143956930417633152937430567696869847025562774225967466067548310527737928698828019714946641811683332290929693477641134137681652453206447612502650488511673421400058515885003438757408306565896557217358530806493016704678817014779066982928020410327401185840244500088108067173525305134427756694274057417744578728056588109939004567660826814143556969650098455175802998537388832303197032068415388345819081518327611415440871963693444746170909931850131980578629801732951930489862672846041045060216886667191795788080909815116116977016533616800797713678409901379557234256291204744942235201536490513936130388543340196514592765539763864140971382753460447436205201408914633917901791471148840774926530834471762987161763087148829263310514036941918609544004835549023289483133137279804411866150564581625776794522772754977234667904175530525451274527356015010850360176287088501612740399731399537667730175319597726780518591907484491912364384496727813520592989912807895209044518173712647113527330304135384455972920704165714921652424414524955034617094647721748681925177088220953523245021473914896674425156343482005115802623345495308168883401417796007954253810648049944994422971545693117876445139771625538719191662424702834057161074934972229334845917464556482305917564578670599581011987341031029428069155641187420873571459099463411676982537454719708813704327793209443939708488101156149375484941118956770015981257970579234303270798378446210462047441579513841792526534328446531655176559563878788898988959299191090252539133701802115859586484484113404906239043502057235828549031930988314441170927034993906643999506508166325668469504406947628449123201760993669578003486693583923682311599495595982890496292773674179423977800132709227862985542321465544051077509425341185315189787970788392060708140713277178308244251848999583358929980753702788867309005332427601580006294713103782302343596305794376888854104772638431594041301514914066333564837309664122336996886643287587066791231838837036598147355374921941922119904191194942632875034951025386557522237359410525682629454220535213571140566589547729655007928207251085744480249816760102172901238092229674150864295331600037109370284200354272764969299806259958116655213845685699714774326613529729550182394733057542583196597821375799346298097840520749113459305710960660890494362409422796791770000412296972622325256818282542797044159045642352215212756386793132131634535656680575930764210785409787352979358102753723266399858863019878262255766057301519733890562693720943409568615907578943819344344407468223101736820448352562008025141907183643940470711295162320588796426398886590245133136192690365019053588691115831444297654810441295060989467795491986151419414664112288074723624528291082951941859470546292056760213528202689536549532618143420765868393677874234456090662941276432220531950280596760114944582090381098704804339038811080112017898173139436820414206102641260822895985384565787793886116438364518054571463335844046597673518117003286548757938492077779520667279834474878191384149982338579601594977007002793354145717452858930600431193629190667797764500133347638014506270208467444529949079545787391573126849221203120240883250029340633095047070713214396883588055289594972791105535915012224580499603482067944335049436714629460479701547706412306571850029462188699665172813782595853182802866282341813125930336396994576645590428323662617682610729111961342166086473542585650704051594858420076606113546298545263811512059682296893284663474608247736243460595102314078452511089350569978166529853506862883158618889565162885384169699184485361605641270368822206896568134465136227066054438400820890659314729815027909095110044578689195825149665296400144214170111982360389805072795004415312034630283638317751914272871984911497527534260335326763950917633278314980340051463695381782065908674608414158396812378070011625247778561268260774959534060491504875299208343804128840652391735504796965668879685743622512041470927191750608091528448317405949512755693543419447124909443043789686214366102926988369882858759511013444486871548073372910673721881679683910056114923663305599292880206086611232169890035147805634461503629612057551146591829851262368610301753697915620125620721349361869275944311143980949077643652049611156228986561554294703443208651058881154812332486532946851619293877048734196596827305970895818126292272361998959239417184379955175380939024063803403862533362927892374567331289605331919543615206840326935100817631565752633536943491751613635498986977160311539538836485907101618433822459130025484179277463804795259820581998790532958829102469480838969355268665124240745213077618953467564890482710846077142219082940436028690799471907466245275509051740811757143328722982845173726269572466159108442571524892505129389759662663991720142764787027976106528055729663282789608215618225367578673158051417842053726424704618587154204333728423884774182574584009252772639507322813895806851900370282796762191028371176941318951288334633000920252388086095545498304311450847374668369104304108047443113465719901975465054687495356880517937049901166126459390320145934069238452555255767383572780492645467827445417504362599940500830795792799289227424661406173444195255955710805036507249774382517104693498607233393579956313294849993344271409501578252942144378471106713096394598130563425053223032276608121360081499221220061983064280399763579771557173031374446379085196104868589675874137936639790089342742503220513238558150120068046762958066515930137841769857206409461680623633491502556323788582671603941729215603997342278895166497344516224478109662699654476134437694614844996672616962392758639923480694248983055969074942178644800833767767999399313693755688429587949386084986017561946225922084806937302848538817696040777343628936768069600705812226888365635855359645520106456021462988823136964715313352435604036491994873616622439749299781280859126041699680252024503746693437203864198322628553570783774522839133182531981274595815511095990718358060766515730650683985141940253208720098752752512210731714347037598502892504771422906974798816060055114332334903906202288246946312533844188702038613581913105627958981951547759072160156128144856785261415839777409481745930008105272734444275163438765903822387936014314761382701291350557209111502929711294196717369662755269195721764511281354064031816141320203961710563470442780502620207533373160342115341173472019934139872019229412170469311201958865757283757126445913652196124445500519672871586505150169741372940070523209886349534905300955980152688766096253925244368181223050737637038941078710372058808283173536464651079537043462802398264960878118403962881374818028060469407292060695631671820310025139401450957529286340359936313794632050492190963012924608895835804682425888538670727329104266978706044668797013933367618035881846304459330399642932215427478590167016935506402043745456929094872487572251168652821059400143797732781060016566050118879044606677519296362534915347497241749884164086636213503252918445373942966223882688604599201566768086000421216364768339021574645312244217504272072114093748619091911119025495616092905121440657276062118760160398553133964135563983166749832268834957336139752404594098801560715273246607666909119664113993362655791914409337051401251625595617106544462124969015796698141581083599922743532805882907063619900412328830482425842277822711199007338168612532539311564020263712519685115723448534194358107400548664343062820566506586879228065051342806251468329079988088244736882270309748525827404536108167300044429515614358064988045990653418558228956041495523483982759000720100649166748368291714945835870701463430087293655097030103428218051186380186468810515915092890371470992908988667930150829230735347183602842712255715698575850768420066552770444090636175316457942650349814817791631174150572699904521160373605893318903095881526189530166316287514725895226124730053103195810030419154652198778249475534080158323599449997056669252914583634351805289780210037416881857828185631896506535627716686564606246905210741798084860778466722082381788339093597650981819323425097156778768405421078197973347878810480710898875770296867738252540419391553593612039922622546152232400205453734203198355333111796223907525703628834984531702002519294561364342293698403473791125083233491393308288415215522514610247852274416406872887740428059629813469607538717631166333815801380554485937430444193075879193970208218657235331752177510800570882972639190590454025699711865817426334563243327388719478066905907629834559478128556327721833367872881150058906913164459968777879833649739980698107953440537133042687762360312951257291296692182386760324418646927875159229330899407812479717197463831804790517413004438191113292027233692688613211963575677233197627705745791885759567915842888758185357434414081467896173664162602313873814138222755064998681675449296120993677818238489028566191676466757998295668284261154553520114404934176240100813600748206889623033385300708188237266985870835565754864202533856674744247259634708494117255961615781224123468764748688834670395692765490048875032887567905709459490174393398625439011537726574410734344936526895757177548023778060396651036550598484029678905046169562800641601871012556482019280676015321378997554247913171805041049618595321952967430933358271578353500040264664130158789903520011803951131737479260366265925041640189245908609609335574804470382249462118977379616070748414932615069541334570157858210870900252096567765702403363362142459143073470710304717217436605298051976914672757525783433847526687151164466251352383283408902552401769820268000850316756800338628503103325580938114077384620219629907700258110944996595060816239115952513296433273664900662291347931241152924110854481446446198590453257049616194689147293732603175139327544222530079966485290967076068424761074416121151816239985066486185741559065009070572830867858437106835001918345918371690445552979909199849452491404067564431957497052453775317586142347522189187356113232320233258175468968471039125652616826293852934155543774655737916447524322867608478660604549668662641097637111260919931639752524647828144804152953348026898958664435867351725670216943078214901029883120406713466877387570205150294443505331556361969304229965283285116501421822068317507189160476283832370549060380345196217912636892061532834780184228460943401239152045506440371760179631131279166398881387986485780849822946112634996260813916445543955496437724911893230506806882977788842643203723560433324267100699193864398786667094733944116121328644068564977822383863053838826078076716398676283147130660709407294095198835590332480347247060030885561862536059003603580953025429993477126813119483831444853833476414377588035366994293030962913468451230049820145393647641793578226995899318214986500466659492712929805899504138217675571972778452883458004835249434399434965133983925050390369795453003214145305210825618389692132514881871320014749723416367443579708955298682201235021322884295577563708721418706118710766041496821938578138545653146644169912193553001139396292572409009032810280423118514594158129112738341620375748465164192533301716427179226404650758264754026531278927567068787085527195350433885569430654567295606696835737449659072934947794511881854362261075308388879085712702169116813673906346973083469595098979488712304333283662859439487097351551607668051253830015257529428273460354480919846878142755870797194850675867019919413932063031349961478967603728394738937351952576439687259430169704548515228708642854525330251057043051614366164519818838019529666331060958463324091125718950296465050463763181444958099673480896707499724659552688417779306364063267699382525582024952551555535806460636851659869829599862443766582808097956316353233839102698291373848219156873065288442053942366456030600971202793627166723501327884306738932428283541611786034820640034281737903296226250052847159180610324544335666469079077353926097027571302173922238547719753294949009018311269973690252077793358570374907789959037339022191899055170853438641155626498014232474036892364390929675151386461802590228489302313667790885341428335531789199126756464991524412048250785262668748359191722104266879596118344112974779964097459436261710043387576756418836385819758165947154025001650592693961149319824514711797383536708451820180467048419236583476512893939456843853644878381575745477601299781989804778601583604457291724195217761457037475267408449601923643011020019496964738705041505639084298400831663031727685232686422740405897367376875994974559907769462476544705378861176677271977393886186197759126672541977297572235441530402326433703146611777266103669764634372626914584022922642846054366684278330593213937941156641391821022851632957638867194467703392263448031366913593047581611471142159783602389101998605674659599438195576753444566217264703251132032106554682012001272674174720270572583672404246492626093226880255343800334016393666555925034452202036898123482260968436217378301018548698076585627533322448393374423241152991848094606263232358680522591754757924335074548458086621332277335173090790614108216077226297346685061033032843894916888412455022813344459663932743471745027291936988293243960816421477163835501377991339859040815523041480999085000924584097400079124215522466856531161531400405007130051339172632797181991757969823693089564315845153910399287506228068615271718511810203712712899649453175980398137910252979721155162294743861603854004904002843075882839166586363749890006939024199512576122358657826562328961314976556058937663999548412184327566742545374429662756122238033477799493880942144307346557209897489978067606968206120351179864726979599907447340052035906235657256916804180909529045791750605638164406051681610709468666461893540933422310076347237961289758063378855972814377547036538178914758583660700459919213727079099769913676402132228343851034520854354353422902321493343088493324886418573315962246029329313215753808451622655070532957342204901106254796157280036225887006650383048036920417479023580262860155553632261241195141342677324240783732716067022978113176100609278835840682615487383950700195883244679430500174541287517484173524157199997012752105797378770339025555763622794075223067230793376545838147558824520448251904380875456706892281762303316447355694434011881344503375625120692295422506176566756130112325101206693096078635350276085732219940419670233753133906395840137841912705665185605262344405868076679012508471034761859794903217016667840114958625431848969475723219277079000836522115103468842915773218818262902099190131300244291693255159050937052709254531915764247384447717343091127311128408707140592872724578001136925025524131157011847375893199790124772725735118808779898902030852318435130648872442398522208750511096282231278063707260913975638223919261352634888118982307084374565597137963943586491619827898683923848665766201488433555725847467484389344943714648463992943501411731147570009276222053002259017529598914588821210718968828403364758042659315309744262905496919883181327410642995717116610049143580349532503086712256531252128156402656490115258452060577713049260508007823657522142474786526140300306901410909271707174131126185550952414833469793369917496645797871636253753577684153692106545798777470050770261958835957677754769967294784711605644631509791973191484356654353461410783148229802720332600409112766287118535073365815032903094084232956921113768988537781916347592880635461813505779482632274782807697404993877775473255528915232117907590976215897113921014569580833479604599876473472262110752232547648609096567892080124763009359456192383472479267549511432078675882343436905789275969323625955332928361378327663560030640859890257239991675795635630252783957385915495186385351325393594638958365147466418825929334767080908171077147045653280341585141496359313849588356817614287373826571561779745862933221718666716278543799595955432993372157800441720892004017140561774454828826954033820741291657657655354817739494073433566261481302244267412651839125105174096811921181899341191946318089095979348675515350684077821215497938712259310401199872180219775501837396451971133768792627273480774501913156332354293416737438325110540769411601743213601354518857854445678945470890561161041069176790001630741380973577044196066618695937904375650096797784929989726621787116070922232256764964246402117608750479737618161023869535024601701571622227775996832128911708666716292899315023533061114725020063769433187268850796047093466033698631638185995638434312066842666571192193789917328922026304557844246795718064216268974857127281515983940612206369441054304788267918010431105786856648081899339533492381029284269555995771348454692855467816454811566886738351977518841407324684934113257292546812925426955984472323136605832015341232211342727476129830189372308028515912379113560478726375507139146419105457205609297603243579004057581591415504011214452910708899287760666788893879189885459282388825457587384482252922245620969501315493076277894598047908288216099699660864515081392411683968938880183559972919141883166584540590806959410394190964471470092361318862870551447403214383283701747671882697497377093898173050352612911488352895530510853287760124582648533051423264962202670621728301618089547167688570692584818352067315305610120701377693870033146765455649236405608231921948068113289622965657108510978449071433469343301745913740306822158921002232767743546185327111973393664760445818026223061695800255663306460357377241883409892278150346132693529644685954021072849146060050297548100566979142150486742648045616864240289180098944415685184762878688750497196873020976989927035561240114748639774726045733492737229596363139161729740210445884424908140651897049711448506154076823591056291440711256376013100197790036430504914627565110289159851953377904327204367610063892453223754823951743999556774530261785939836188516626018085326501168778572895968384263293968988478518039806629962815219489321754432720973892765168602184968234349804262042107607489208525247022541982153198027784858635057941967213840380058837093506868033347714623895472296201652972162890612722704378285721739475532474853466342089444753021655902081500422329117045494067429891840664282214044840691955186777840453334570404680656909964146901999459689831938932811570680302895305656041260367743878404196531324956942847877229601568428101666979910407674979918364145722030780687152689585961940098312993014733070068816232758945290401659399060515589192376623724618529793203177022366994810650349492448385534831317737806894720770429892785781790935300832495547811571644687882979881362772048340115677237855063709490300402519665608654617013150221118351527127174143394293996658137138032498259642117888207727177337718202250315063379461917162335075011753400115131275574230030652526692248542949898264093882888764012749457795950784277855224976240405189032235314572694479068628061773145456455772269552932586482820385381055389762250985035652919900541030258976935039059240398354023871237729502134393193823192931327174706561654878843942494321075911566958506371778716047892114411363861874052285797777696346483848091358508500427223644708381462569162803561817574247864320743057312819235409732645244076130445608707872359681372790367598634801464852140097491202487900690916282464403864242635472121415682739113819378640237882661868329592423628078922179240130236422563096826645886177764997295966338571451012932936956925818979425069096110301968326028134227094672538071161576141876450458493411899295001195519451765420526665211319529358435559390072096847392939498443291420094452600938572356154120188141353382940909353976815554356918058807886882915850613813256249380053655540766064544578177848533852962126530363149198511950287131107292287583492922819289609764254713394571484430942298297436642550438020579834326324205830662618494672893594809122706194427848597582017481303424156662115435614070770878780773537093580609341078382093693636750786853908683010057664885740891224853765188709880803570998479890394022390902885819829002965402292118285306075298800264340006154680750165999608064192081440214777497436715307257368364145442441793653103345654165398321324314673320076759886858787119855563592307164509429833133796402552234559185440786285468040343045215286843701239384514203973845328809743040952922906471288347052115167105121685645713637967279346670495237589107559230862537619098877438031962593750759350983021484567829237294896044099392304402341131693231231857334764618178990033914592053585325096845923621136881502720129230333807660236052170184947433905077444068747497078873138462975648270868635921039966062149072842735612599318915650315366510853470374403856149278066933917642749128414451894164633949797144666395572284833505900042132157358446482378867028917419039503532469254586828913238864807225441228447856939273033923176065719228761441871155088996094197110637359040302281971379212003804913904937119992749910855925996029669087606653919041614898997447867339802926890802129946616239242981008147697496769089652065898588029437865795456669728891433687674682127758140429544337689606540197724433465410692991375129369744027540631685893901347203175757533328386222773385861450398027881669801017089575560167412965359067922253905895155645673051425878739977153076753142091606187316609842098178632376725493149202873759455476216062900956640562460622050232236911745582125916464690773977913496148682122888174648745836866147767085411885175948247720246923991373377962951371937716961049790581254276214678008795049826783032463600481228961988997509207095978609383043616800319728587713253870200531298828690399315701623446148447934677127967146030085235950749918497965112062621000824742141460252942207507822211793858358969761710483936119878987863658930214101085513943655182554313032480779122683348175745448078701029068725470809635181242821039358870383579358991873274142102360238724367496673859728787711273138795752175166936701556522100810711500377346175475938837732068436923479495249460932520103443577269746427776449871601022448502321538409033883047629185636492061204866782381841689584343077634603131438117478804591263009899115194878419083545247384054289488718364672329109378712146485620628026152718303649436987418654701285344228589741790084346208500707455131618177106280872075440478027668870325539760450683821232689622708485076870894477305415985660493064137958214664294018241663446094363052197873207012400309562832074911804528345428230150851463900669990604994607035742898924667731749461778986430331892794332308562021404936913676530686567221584682192502051294244029717044139757241770588724294016985983269545398161441771695884832996124776097715896245679944735540865012893448592091465842948089459925450266829125873678390254835766546033201749028888777038660098699646980326224283809124878042491657963494621525039807383524937069959228064835378308801431590827100026813881400536940754532651418031491870778908242127720455096814797209015874087518021275280001833217200494159016523339560047238891305955101551899889609013407259757608871962708484868380719344220486286858248785790421968132721714190737888075075225429761388872903061945403774852395622362702811352242447126828938136767657697873628512346486838747621005890488217219436707944603423177583865052970184000237004369885244465864768648882921502510158218137522526418392294134428034364704047647854331203508480705849457465619398151263498343209994764369079065536421049050954235455331748989730985626214013111932510738861488221821515257236274153189593135430813234189254596410403133128600348888621624027544323253973993010854153012595407459718314837593828184116519485264048346764132164735179734662283926532085172321709025966148726603733164533183731162118587479419948029486478157978061737069873046127388685015396009462765583823936593028147457597344227228732768207798453888300370728773590195054645897241143824224954677812311709055449039296555813093596901552974256287019840933684098874876471630404386047790540484378627369237524066397770541781494358317444740599833955014912235975113966467215425582324818618166309632309815023252240896343001455711405875556822219654447264341324287412105710333266858909202330998456502011456452351007654155894244950103931291138592668490572428019002515552286226165526936479493301096471734360621766481693472148922716390317063299472261058426418661936539045877781988694029571402513870829638813860867843012729411956584030498631615222053147185052367188234937370441398195827402335730529920020165464049975366986028435963507224827481136837013843059086112322290214940658009703019368366796210140504549126993926580830081985259577206182108757368495203026583670604773443209710899262492199826817212389043858679979728271123867084066234440778526043750283766232936480674311216825502768954405655730114763910742853770864519765064081015286650630760385039465030358086993807319495625239236604179893893082630144997474427447646346425002889896376277124790481434597384218230827889531335748569696940524947598658651986201836872147357847664923935478334558091161991731019851901297503326212905341789011391557147533171037775790565126949072375533206600210548046787122959389493232601503976343403964646694196705790711973772266445153468310544290873790427572250043342390495645009973072961537882450995402058283644376031461665472207344783235343767755397830541007916041084594466455320430065742729545585814683638111482121981059224859593227522017960112419010458565450823439377212727927040311415245607592944210871037996937758491808007123574904605334012568788103119373428494918872729095920442032143946131589138297401958343944263279514414502014623218189840863256327064261818018372627004317781495764147928606647355515330061697214287640158070278932315749276889948402815230818361912628402077633616722311231999694276141335706584285477293213517083296714695338208674373275203381765342435568345012496453844638509033198731254089856966851415210252989070187559430627884179519477770654353405696355606321013510828996185947130951454719467079231961882647905969655246660954895342525719559229302802182898466909504411889165776721188913107083012677055233469628836995852480916477820812392595734017476770486284110748500134966837890551516115220123699151438161202076268522458156983711134252236793316956195365922014124572897427289464037650780093276697004009052766541682549111187477241119369841580236049513034159412135508857735931118704355837472144962145505589977075400442363777433087210529690538253619768250210745099215918898046795757051886953855368259116893058058215247097300566038522303899734034894149345294107143788490357945459202016350835584139801746728295581769420724831838667014382760787917978968256026639706871743667048410167457345458320432623205609536084236616401894216890279046255033436115766828645655304917352525935944439740314461605590627219431297234376744181513356607827562733596904554488335030090991063166569798069021528189457470618630469169603010533321433077278324716838682327785921339635736902198013610304633050814378513990077422135520641962109106828262765188960812606129987497907444662402526514323801907742086422961645130125444461921640741028643814623197678542171185653678031938768230105394571787231270674904083848258044000873879407063290979812046953569434366918508469580175006516343848749863328463720150858546926117810620355666456751856070643889780867133602607478613656576103381152688442202278400333068904818236713768661581293304640035042555589213187486028716469560825245420881602214256558039414690711597154449302274088897253410326665364936126306858454295138995311458076715492830557553145668899063304191872131884582681659031214608286082645845769893371310765820392433888671087423730003174387470604649186349107298628981562519780294061126911500712150531380709748789709807939501047239391790303771867713355309604334258502867733199400865684543059925785179087146751587902328333254924703609860356341428198083691650221642866368731580368469559771637993272978255492867594966029383989336119967538560594366087192644817638716808277524379809377733348499466396540695376273370506324419657355589352170271015283341179552421696316080666120396639308619338468928547705781370699025717811422491161890061036340964869571114896081167894008375846768264972663859980477912156278313049488951904296448883302892791397388709078100138271436368242676428085586964066094174420383548566050701879022061037672255785582391368653073977621506002754900128433079370362141473966389700347262018206891045752960505761925820495546987047067425921964923703839253028540019952423099646584096261371119962472165606695497669648787048604351015142571332535705404656951227293647868560149248874338591502043871164961246755695540283577917223541086472334144912514096440677968277883809510410266323287753053454644995920300657534431821357496581498531380171219063761264592434848840108863465027309094446450589801827896591040178461045124469935550988755473579900124491316188209912421264291838548109473199373413542122477134648368943941517015698395160438043707572154087891273841944008633972222619979986354974145037939169467055489318991315713077428485729364447028815582586118056157553009941674609712671403314281992576248731944793011656481906373141848579502406337045187060228781691916102967508723267840331560403211162589088712990668414857678773753842150579736424842059972380938010554783261958762422706525197884870101340678276923749360649047466794338628940702577166860504320792524715182152141089685239889526026232600687228177347145457607491491716844411932364305992850386790764039616796087708946921203457283482183380073192167524711464679264581811800533467546523831304257809317380251209217715115551702959971064615397747982667314835156532838401531594816341365374844548358923798223087942759527637976761796860747007384342168954926964489812264551052811753108706626495361068894196029796021788671705766864742906609812824862177296594772622079284555955119561938894768557121057709897608947426238990328198740400209424305055732547883110510643949457822352516201708147774997373254465590121424919746616042548025420364603785706019021360309594963638204025174471931438062374732593522228037362778599840665513024855788089248255821337630263406732621820164507591764795809228353790789767636184397140176024594984428802517736138720923048040150250359551485447100958207228434680272510649287235321332656686156011078292893660196079830087278234794449944274115588751961576196863109101520588954749179247750560683915291784767967594757252256357581052319259513679100167301007379217349064565625778611201722692875009200080958708420982491486506480345326519243620825213393418271077289392057639540701738217729467046332027720618642139026539098647300443280378819422667252254549267824445085877693462645033504841643085451978939867823090352789712957997354721405272980431252146512292134649003375365554972473458329881327131870450555559745704723759902746434880583152964522058260845548272845516971244202272657961247650846642635194900461697146136417317269616450875353300215861365890858467199119418786309015582894902236205210543466622379643071675557238283399800900583069792374654623780338475998609974446904474374105983333478792179821273981689781834506811167120431929549618452557589957986784251482217058719300047846491980499371139827014809555196882819585442530867726954650277382871236458486145197171432643679715501214016874888554630441920476661984693483715546722093826107446921668620574744542635064119297775840213864759325506913033630988520905494959891132630253748054079455573849496734853793641104753458732892328825490738925054759584853131618004699184612471618083147066532262057007156976278407666750683609915946849699718077419949411296071055670198601212142150590156620374234565900711011048711829448874161758102519796417768922393809369289337345786325381048434968068632932176409863403256035022795796360035107442661984097586300107198890649018263937550501810148788926917959590206408929210966096136605639431797645672383406931067166356303936324468541835699984028923376576456264611598332806130848998760304251812566425137665602192148715320422368717753976830369993900735842199628482047043254577273170990622759533340982767779526684310726017473020588131398567927173920281493453046367709674327171108637289280507090740139487507954301627979783628266406845881328817737857067884111023502054403912170886438298579746528459001934252289742768619820943826344264722123228748052396486512215543062570833217268423927168286959881217116137284562115363753543833801605862294797253342130029446644374422220156381248209228744809774124524869408916623267718138050793449236259379938395828695732899063513631469086491994154969881788403450604776017579855345481867472920163802058135636843057220703154654812368198355330653000395510740252398897746390113375029623156129648032316831187411426775168329907521365232992889450567344795686795054620251570844673206813423239751578414868198766576225524865092415892684755663732805504939684993997197014762382175938298783290138439663904610846918070729939936415953824126718047984273187722465158249320981461577532557971209054927224204137238806910168021954330630235985628360416873171835727572043784833831122288663304769817513336406718653305929842564291246591353636637854283006967217945616511426199191315168298234662665976644256278597232334314737410738702845910627955950949149877089815407308341627272447676747831140336781582297721645855629014111822899861622930547700131591452502096112515423421393201293552832997450077918983851255591461385685908311496876026961547888641026428128447944835792824227648832621159881096698841428557526787874604929345087317142032754520897399614451471893220565202134731234252312941582639046790857846605928510014665269995803840107562368645078177576060933764722185335985019292294066568693983278216755789721487402948934768036970319951201534496790640566196496207249213020678258662843207126062963766579247294047806444402889906970245728622321929241545101034592257364662264092567301500935114311188217476248600847924073253850679045347267591211768601961124232751973641649500462549479927725481716633886278400782773846864423610359501131570118480583398892870936669564580510244335931285972352461194086195185694332591875710842872004762488814807852752279508002944812279641985306499777571789890867833524023413221215441396548990147447176961635419834598060149654213944776315512468779251088463444256170147951405361071498579199964498544191746718312247624490430024394142783861270950554664388611906169111645299173179407018078831531480526450615808765080419726334767126134088104249666264954253526598163979633539320602171504290905052807857966795590649855329815507675731492709226620749150251947988965097932743432996168471134047726214961516608898767944618194818316666043445847411730870180852563093223572119039842323507684956959385167500603619413330554155019201550759157742459669488333853779572511933984958958938891870893842186709265888679173725668011033948878608928634170200563836712953688463312372239087900536207010070075068161469981475219830418752199279557215704564707244303048560108740549850967922126585960808237617450742422888265888303092543902121019306544427679538437529839190983560556176230481074067711245022948369124621780193501264526346796358728362380837455019775383312762470373845694618132913624344434811075508030364201615157954795803805911916202819507315324325141778043293749102471150734314014249148428748680336840240729763302451004033242343179783537196865604096841744314344385764331362849998689790384510967380504081668965427042292763295731107663450307992980242378292025728524311658494821108787178716630050485444258983584610487822468795813434007947182715313577335046182104411723473108241373224279778895010636450730220194517426016212834402681851317265971159972812411745552053464769609444807164716766998462399920637854046865555460002223797371852204132609839196722653327869224008948131931200224010956888081787563630124999691936911887021464692710860605955529018360523391322809174025871985752486073273331372710550289043247586061882085521431252373817493995894893792798398077760199310631593433264966820623242933527419176099118250386543305221349716172465352398014459865418820258923820588477121147138964922651599679661768504388924013731322459240429014353862206637488687342394918137440032727772714246587610824003698302270956930426508555598001299534707927235733717603689648439362919442188336157563523971098549880250142875953284858828076390797533732119571740089372109824990010187502542832887204480650968096046756529689447381826544618186230191813524169927876196746945660974454213715463362210465704128947379888548504232894240397274549489160142312599704091672054095887984349337523182406237153731200441745913722528240836560761377503445510989381027885661161256881480347674475208270134935620550557460318771029703177030873051358316387018315783044080469712339670399512677835168753244564181742885442934261108330469892741559245839321981955610018478062340275988790621614909946054900682478771196905917023278151655959149414204552529027638276996926731334454593173650754800525855180333510886062111203418295745373331586286962805416123445473336652805597177021785436730532435222974755874833427809266298534778726297413063982473335751408888006141260716072325742443834118428987052310845048901745967998786726887940688470208898137494031478912919021407826950938062062103568514638372427125657992489688635567333594632150482169833191099459942877874406529835644848945059993468984453884742803039857798762338852574472026840384183186900242123075159926553233897415548690434697129313962032185288639670543431699295533739413854394415975471731568522396306108394415830019696871191710384538087606571227283277012665546099529279490934129697050205953890563713316144731530125353514752724182464152961926620237385223423799238045297762445935230885699106167542273968667290988494643251551768059667063615406477863128877866737136707513806448321979012029935189260648350589591095956815033486554437058695115049003607263508523991030704307826570429204765603395468597836797800534449058587601800682768932687434120750078201418242807329035596410880794325187855043558392970959255937536412274189817459574754705638135954844594022809090910137406132684899214709902140643697442267179783390393339401269814121083245154712059169618916235576978773936514669902401332169868550028154833137009057967147055539513983666789069854775145160781131909753197138414199249896472220136421538347597447798642070832425063057094500118154287866222879202115262220192958153656586205781890926303468244123907539248284859209998516447365613742028911866193791164768777817758105902945794843634278046550925626244273813021089232824206993414324398796273505300526004081210826455150506069594646153377746387129290773790794440606951473782502610317481640102000776939927134323484869903724693309467658898807137152531342831340013785253479713211667499978209817061311895122464723810045937427040059573009753271617457021586262136655353778046679422558859888512912733297751058408010999590081489419317372495602728343728423598410944582597259425242319917446006251541923016519920203110910601002626273162249385693277277715016333735351154549030689944426492924269845900753599406331811487896421051569022240537906118779373855576614375593272967926614651416062122986396287995483818569881578538622914158357049780874984526785653160270093234915811377231136012974093176935489134685317520744995438371174109543986838642092275487397574348602305614785654931635320156561771120769186650874998786063446091207813655842493585379198157041983374195745826775011290923912006578647633645503705347918127048474242997955140850771529323581284909996309695279769651402283802160951510153166063276180475162254497787704874726587819418189433455408873276036499195966596530178382856453327371555549310316449780019528671812622162716381254471607973579469573591076006605299317194789910969426606576502981420466195515033924924916450074082937528606172957478837694813606049814498690157920650355116346618835779173409424528012231457583327505197039467075382598520710892873936348085480124321592536335974505197541902437390890788611696455488299220637698478405846737412737966174227821719496139009767031512457748508157403290146034063818667447452113150039565781415451208899010991812440786276524172996156027126472153196410832169061265605299176777621420682810629439685239206586578600372455361802027483436979556873434648631176976096324747437723928036830793515973501085616999043768129352561973738407392906357836620256919356180962715830070533957070770554600732765441343653206406049343078604805954851598638136582708895316022614890703107507991667768259624529324181909948009558757178959370170650340857341412833096682357213266015150348004494538398994997429033371407403139104134975477155844896866549949530022252760994104024710895143248648438015376029637186312828398803410802294368586501337055853787705322134442820470013966927892692090086177632372851007731295976664351198707428819108030083101974476421095316928445913018352581616753639595395668405795042484190524075336262919643927630874961959289303022628317082736468967357977600135013802976931611586835611695788523288747671965444357375254973481712331548847512439763890448824240145980980965706887904132403152431309461112371744093842695237752678396021036421941585561063047861136208373800430481681168052187862236737250186356735142042883101716140472884701898249633793806927151287031280214871587320563796562272181694837204579576238804043637058314793978082621090404847045319976109793154156461348840730178152979858857554417197234668314441861353606607455050332724378794031791400028029505375993864683115677014135369295767267359680057905074979466550288815819889173443714110394158712437849550025407498247842728586942176353909954777260542134450877972507438916609051575200908325974006637747815311609763392049047035807861321838535233001000206813581781910151756084513629918536971639105528602689246414240157923629021696366306611866231378297037847420845792798536429504789853958652648750262038771084174639564881209171234168830645418537114136077976969644949877158493370353654357453602711662481345865069787339285847369284181142824887536557431056042243501350655060006400351493686991681704390759378557691714703770606258051471842161503135105004443980930501027760155185913359860533245998670513914516570736538836374434190121490428785850254650072871913308593650745335135877188301548741610777656595205913212438450412939686005307223551579418488810792894912446578433171740727681133743981151710420682485332588892145472181140746120143537354621202304811618206617697008277822892241231077044394789243069540357082723053671665268303286169939299254692532418111821689119953163435577791858605554356219437189454234026341884925376126317053236041189866829958965546248943420093956173581058444986972128616305222987330421736027221302890797976116492018457739996640642141939053572335103981653777804632082015926607621890964774967565605810904614652241220630263115407660454099161292023446663601479255583987866874893253173096874795513353668141242640289792803499661740816248154273260226931115027475877840193844777092107096874605537578710032859398314016346109232816176752327727076509721130841853595411707923876853131755429796084834111003850618202934813602519319859139454256066612069079126399522539802214500307586749481775536657282766254520956970105708436047421863267031292765302632169571025345845220777849889851246069823135648122473497168801442272288630571319551880629156049286159935715373776533509393214582521607057022895054903525716233518102062889190097881180150470662099403135237764864090487870310058638135716292351956273881610579333824271153369511805126212598398176249186437973473112289465922696922433239087473810108983117298788618890536519683146438543255805486339468591895475004092984668960369189700220051684300974591032265658551892928572310758794558854811100273372293231978999565398673746198335315232253294152924195071846444706212800938829626663917918179870461419137490861687626784758926809036914251831726982780231449991795698627300835134677306615610211713526376345716714722863618061679650929340766183725848848760075616362264410961096621539807301591747522575619594852655113556480829996042307638760630391619766036246168989256664061364808210690480544117856051305756361006478680126546759432022341520805259690700010487118875540231757523152388549047831490936803555111669167596545829131893435182748646301847358286865938649822392458872721233009871091774585252010461527887201722254908313617391354857473658757776113167109239141014487682433426057659874126395369628226444498354208266181888550300539545144258194197942722805585226277034061341885768719384532859832736606515790015220720376711365629333404667816735757543416416954971116296176147327294859221661624156055310237536687665111236595903974383581086329804347008088652126293501595380475067445338236339387839331236255800831279762647258573541276217228692588635522313245020592767244836774519107738548672081694781959429522068465857702247470282878855137192078607445636253847802445365505196034648068649364279867807011283404711923103537034184984795222005712064222458118493017371654884274857262823851481801093666225103494573500107798322436218494680906716564016360952759424960604000196758807624406299526703205231362350566634933763121043405883172643344771731817828290797458129646691750604019504844309553589620048624158249008173403586814735454252170080569614744528880159666019560028525928233381453168235589744677770873763298752525109278668873872800006451077602455565903872964277438760975846989312754486428221419874301472551699638256574115660424808935245326485800975726016621906426831505834073944669095941806274801272518161946472432304088486997538719899589632665254321824235889234378398883428313212521883252925701414922091388331788310258832880404936033853825700929731158087127232070616780102340393848710366584716266611808142734013141090560154307796500344800436541889905708559578572646777099748231396283069027603356083851542805843909608248045494091513216305055917667979912562765830927591263173724395550689580071582460578892527637957099918616419023263823412266212648966326919534502072719217450749626979931908842665599333748379978535610350090696108745377229704531788571626328182337640752641575961318082332272179919018622517654280236046878290506476138363141784540490137570569960074529681013971573533235325070485226199383970528324958676897384673585065739140676078812127464715871902624972410188051604045457236932417232585019310575842796092671548626642430804090256312289279952442019042843735882752427764209366514230515997369987392415002008850451410906490062667529195198207962995413357816528860724253177338551673347375161868795618907564381211785990175635080620710947213629319182568299654948379754834863456559214556616810343325581468342794835259436588769685616535634242630834210074376652253672303671599516522748860421881748810239078836393229363314247488748936578341775798231394036159883157229373614966093722484650520505587649049687719444516122986215139346689026342844723636141046589768500345244873196309906705583337577153033117408971644709909959880751530113454053795917089417250590930606849155084956124116460198272155358967129310026619294584461295690241077941746973796255809966225447672062579178801735286255988383199454924890244379548871263563018099180236363867390360996526957412080857453850351828442391423688875818574134699738434586465548938535059023350175567961492816072854722798570082872416674655521446791071046646218668956189156550262398951297792442304370693599814974669240419585460256570716022630685072118447685307884559443939906397154535907764191496601588565469660197017273670855895100682716414822003561072318817843444224089793739859317716350010964018179527752166934060532217197122487143053814111979696456243445382584747887390887058295811085907192817274625033777639701114251818284033099397338609721855663338794881380818821099886301052313767157913414102953244720525847377484679019273645470489944608075109602462269157283247859626783914166398155924506579663043860240117395928890308239929542389482730985361528763667432641044523484405158254758165446969693865722240763164733034886571222171807299257885991134188711673809587153721123350182886338749443949899484498581931700270935351684210556891761737686757155525204053121939804513836414867144463172793233120166972521059020972892608148803155980931220843194168313549062935202801828760006232865082353331786645290899857383880430727371940462613566350729157332782164006431998897135909690598961794080130972779310227963353331477214069982983363696731215214566636265672078426711262715192074705263196272495197007722275843328406529650457322813698947721524184032688968452489616344153378433030603038893258451902746201997873458712275693183954062192293304179192190572667400285990275969877556034498741401643199072590556603882191580601753799053755472042070533587738098504411300999892294688426805421068345274695017231963538380036519438370838089706419494648118026983505459923156524103508776162320574358219463731908450283174832572974176440216949710447103894466730118083343200145571828691302430333794402343432899385437546927469800144041563162928785638827419662635592946602202615261932725479547750864483542050261654897176793015827152084879902668893423670225682318579202164558482280263480500298501086891661246764743464743609413364198882093391458523881947370329516268041853957757431205457939222903514644513892505098754984898280456111928584957518775507992743029762781923900282299344779640158145141049266436737085919939061077907847368599900724129469440439541666157814240440068241639991479383744933685434179381948682045344839784887194231725831607069509181554895373005333401291515579013628700836558500915673510961520868659511866212206103900868672559926807615938163804983644870754730097966327811733713077683499876588166271545204791559752737736071114181922003099622489921642048348642341900810667237602284242812219880818000093286426001205716343918093937964966610508704380748895004102628187250945873863620153067658907171060010771660268724039190021380947088596985795126688409093914691217059154229591741935926652735437624538051812547816155785848245649926984574918189911618705006386556229344902991634192878570331515532617597964969494079590102062089226185732489451666264048274791615469797407125989392469305453914544683063642389750202435831560113785649563689784233051454130692938354311631808565644095802816225630012912314645644024711699361406420121147768479659559270568100622596431129190581096429899701371309452481000082091717460724661463585670392342551394313510833471427240591580874280168463627640144406010975849324330075218788802370326072680598958597766501665350837129730056994714998846174795586172364412239190368634066506259935327390004613187857212037723809154973260383584655094822248548535432225123636683156010113829834448444240975362844705629861813381182157720181944023040420834157023028718190843764542966453944780948806538902537489581066460120035026231394781166828989425834365553888625398475802644967387002955269226392799585281200996084789159913365779638909342050054373372217779735438612084402486623040743751997078118184881512030685390197724018258697239570076218333579709954662909981758002341107773896645015950021956248286804956561644747951659519312203937538120513356665389297526151996484272832280194383363727730678593673515567036115449390196182114922504798625069653909390991078066478764436689297268063168980655397829927070154014564334552539017879764343451022580318686268945415024152553335871470541737830891027378830520885227914720546967602494930816857141337930392821646051292322036777290510546787561948718156672340973648016210352995757667762819294420547803676373942933606131477881759024586755620775858022711229612471756431290315745510340423325216717041928952191677902090016191727440636474460396921837321334639452415937625310261553968413539896934302594190201798697008598044955756085727302666177762919213696716286500742541844001146447061858816342065956640470896606920655135889115382302151277880693495759289779455862235012036647633988237498564052586761433659148630898675441669257223539316810213416686120539380070133899609804872235204615449912347619769266128896882377777674217098322212067894329939066431341668757054219430774673985188370879512028972303278861194120105761194008473520221648242257252325883850208735753810570738911462216217309112268843496659798210801968606621493411368091265469307781324426129254907794339535385024535462191563943436355144382470431626820497485787466386594816612059141450719017303484119527422163950590187277334819286970250178111761202306847103757822147273972519718434892512016918400067990724767472866756138079923077605650636374238769656079576147957747032775468595552702546552826746300268424120852522459120940486518780365044600810387985068748752680451825986861607163395887958038786110951669804639103841270766530090341119398740314674895096303649743113797108262998809982291152567287341139538065595222639184132322793688947399179072758336528173327203030997920446330013985720460558317535875311622943156751335025574847760102230782518989421079462582836221486173812941826274027984899492464052190295142466082535522288815380533100844921805435228240306871276920462865924319328968594235925158519692225172689838228207603472372155677249727559655503020915738148082657366794171871492741509096328194718870150247903592368317205393056077110242561877798575194730410244379075519579207023466246497645923740154460586760725847224095036386606179567497070367439193485706978018360814988890179254533814086241489025782072079746785273236676445285348167163483201534030550159709660793490157667532376749271852895061667377569206793904268973330839146543412377060879892082346655753322773024555176806399971721901766540826042069859538475288904576345604262697108378965011376339574690797519968186914702576058645123006261311934030136461112864502945024454310613962440191293150068133565186434993467928714267166825743033577646052672112600118129841359738887729365080079580277876601072746585124697383999409287830305497613306888952231607422267471933719603587792961421774368860919346765831767998813217650744142891570957998550793635000915201279260711719163520678987100478838679317110842340385333126815600498472930774036289089137285148214991252076943825921229121754330335545383516321402423371568021017608701447656267014052908698030626057963019835316504955538423127864776642852632764449695661447323171714803261424705154173344197642496970963614939259301452132108747333026300925459666765632398828437452469438694720287662075410537696933138069390913480380758348392500708101893572437023114167466116709398234547005316504871350272463728153223158363219515213075971390922248188032253626848157072687484090297800146475160655293508785566749428995359711236165390163288405014382202265955923812423382795940702936100631136027440272831144325079030117846816571850947538344327658727911895296194279045600938077343944536521978602694516946891845207379969204008733636722511891907090613068175330850790363990544408343234761226426577171202736814730095609112125056688918398403987672486611139729856985696297529007032287090587203469765962993905138370581739617358753247941783693656250559975335590380244965629015560093770890253020373267585252653909660288138281527134019705806062044462879306180363564061091067228675481111028211616984607313130763185247965560070025904560866763987513990977861174060645696784441138701734250185881702591024007119315594969016696230683344246957829169927211926313043085053698263802988048239064053565340329626726873018268951611906300743046007152486593218661183153359729727303351113727086656155128880184401853553720418866255677877104807054104140643492909236543661755517695258782642373122089964638720514519382816045967226423367246101558494332367282985993067790942622437568967649709808446770092325538795222812160119883675964863466616497665935430600000465164547624972213959110413474782170798762448496181387889850338339660767707841758596126950572023069743435725471732484153489545889293682391500069017361845754250689472919933644016290045587480936652555621305372771433245007869817156835745181220972023559474119105018932121222188876290873000441415448806789317106491583346226488055812550350367762777081174110747509748343481748775748835538663949732961405824950951835684174222711515323390698297622556414650551149447695115724058085057340633994552131000426037720883471375353819125020742905619125630634778903044467516188993042586011886615167529517546644745725593995837085468030759550811093800899083812074338636660988539625844895038173607965538553182925808525609564005158081658059155470332463874885418593137913902118394767990071153813500263047157147424498557449527588249095916719900420396176559407730500796036677710031138246108175122845662273232246333604728188900108051517210212933238942842558108911900704482854226274699734628797569460858601945225284940354674366433498725375286557028546518333598522376670670654411451324181191308745894759990113620829460969912196929138893629454257565592663780409025398806386703162356711971238487788428724863118649007889251500817366771979688397631837119390342063108089891732277172832661044864387820049678493631146322643312802124911988277863516683438335121420315583026021461120494360760960769389923735951047965834243378438431983909494566297338963440696978053842554915390542530449252505607555712170652090256907663314436934886194491071169644407065627779421959507282106257427845419595111331598017317869377924013483434040240504453393125773503935822991321730853932526820913014423257394647333754848512367848714751088143415971164147239705783522502135669308625119155830252846410115776603068263208381711648969329494331500200371456611106845049084151154028950159461831568915698399303532286647677266955449482610742484559771909187550475699515618621775976578572917369538850470736482192468257535348162517591055228037054905782759075135482665023291574916094911813197705794697679668922888728099465966532246639054778952247017162403767851232124216550902286409538604499897259748632339732999689207292606385262927620549778074580791265988759377591614636060461355917391487632980281574405693249968915765942654777194235152306036924172265261132674086798128098876551123880097254207761676965827346881077197830745321520400935513210647067063527023327560738948161711345374621090128452673590895437688091575200278254378494357992205904621008943075022608146228652701349431333826878867689678812562299664170172421328527366439326413259666580841772142030834272762927183203960901678580454526004851458852623338982118040382922680356492621074724687763125051197470329574022056377132067686983372550792665105315197504239185669267125467431545709788773902586150809213257604350203482422823473536518458071854261584030630605211697089467684457575890825639437088873534470758520149531314270552737578436843044986975057113541523473213537554595049987969971366816582484389189019169412353401397515272880382978749459405561576410696015745484050842387459845036185610526661118270685504076969371269446967697354451263196690579695047201075708853328904155468160056184996535853090862863738124815160033977369631760961475351653736741366620502372366892994201173299082036661089489732070825122456956266535537550622828101773243444515588692345489485580717740901928440882913449668587596444978256901195106446743773124788586718298776199223551133657542001711937699971656406596379553440702186607892637732477577536158358018802933388890448051588395738743848149933231065844547470442331888942959565939228257467683213785321690553202841813381414419870357150823105018161000660565120003713528542137400090442416824423587179204098412096575522429593698901677664933341551906580237041216319505616314384919978026892561096898472621245818148793915613847930054972327941350233269015753796790949579625733396654108011163121882052707151697421030551570260449550151013120356678802557178590197602910101042797343125450692215938800819539608110539759140498587628334354457639239309187044142143240461032990782702487660595641099553236581484609526776216233491136100710412348439855253767136566864427963840832639973827353947443331963262565448515058074620947991907109885168687336440040484930291466423028849910227538849016026012950405376069682939970149590501483934345036627474853974068745975614672677198267195747489215996679512556997054258247718193253385623794039500814446869297927956626809573189100081292267825720348832788006342936059875813082150897627470510107600842868442042937636922545712860835718282284668346838079634610132835219636986101752830248903627397357030674351471928847416441843907628469701542286768517592323631749966578715573522783985183112287946828535402782539362541314667734866315340021089589527816009220643267515807184210766018018972082337599286438712703389490973595637382094112101266449935979039582841287611927106310033295646946642116268221066391360356034382505849217083910154730932981488483031829883273137529543932326252769478803997463389914653901548407929407550063673798728221206535591516338082497419401713067049074558476833403548654158662330872387657887031035812825070175441578521060424112550953338813427779431836024509061712592201805754078176873392257489223559284513251650292605674224087006917159928348442222737303619227147920479146141636607858179467179370526629443848652084546598788281477150901679595686605078472114142800678347823241863490381203152540099427028701656777497886229441046971382882563216102274022167450796930883363198636685114769714892733139531263948391045801802118998804611666659558907351309324585817739010022762391728904742331409373384718971443424784834476948452170706563469271820990398196326128968132671190554539625275942388976475974054999946576649476049117422145058786072704770121628877213356912044511220491434476740248643410874411941577356628247811158200390300570056063957755573646220815743898415009128374910250684235919485515238560201229211577681802589886373845956152899541157987417588914064860173472736857458970713998760603168686008394638132400590516416746452090386539284827629511934779163770356283696152153621560576946552678246128413719513801308609667831428159321785996076331718325364610904507569408282488330798118012230415210261344825835031021830796658695821450323635448663112967776928990466063400177696333769260741276553756957999444320709611867919511576995151482364682236132178868459504427218500460571906335545085489018466094542852307828412403133516843223173220260173112069726468183808362650945539338387290560103470978011546363823746097083386596134432343873227754386428818455557180538446468206279005112644088357137934870950003355306983620435413504493794735602367286150230127880758868819517399755040996218978227331209003847585870092219776477341024327465498279935782965756977016398588760121952893045222654131099146298244116837020933393946477370351352518408732403578563736221064798276232383563933660358042668016079411708641087724839782193728644589076055300677387565812583013533399777266563397258235093963853910251037511078847576670492525045597783943658580676237048916714925266643950348758836432787129214266127349762463660075651016686249787687042137399513274441861854552807845788175428056829345550632485083565109234241335863924669363218112490096518958969727409503974759472576441750532350598020554326269258200627095122411932799048741074676372829539474547653156766813351521650162611277463589497356404319633841547416243402204356841278587835451668917861760863834316167517838132122618669251473264254833401473527097481058693085035612286382994735917146601205258470327644168153919586029586277745641048348969733427340686766096687939572568501229665752173166472800213854163411417303221610490112004636327353161669790725473177033015917549089852214585667531659476821421435143908376605382919147500386928550313573015118053367684416683274601677830614736827228648237736320264925369540482537586764832550622174577066920088008437489676281850650113615195498691950831613917098676987135139625840258735871893067354267800715901932662144584098883928073972910431952080103925290436430691527132462566254533648277896173711613481733912045875320739316187503145192692779255314953835256358998172614692602947951683827261101324021547657466801477157344125743825200377672066347567546879452689206730135523125503606923696462963967626144618206838869497888005124805310222098900250165282381675560840867949216353034876743531107020409647093334044003004274955695692789543773296682115813507906514991401295727060387285915904901739023163892614964734901243566428894544445559691347518497413343310537061459606664119621754588486038028034659630015636951670376476607165854777571073040656544614116653268032975029355607679961692848667071734470328219784259752084507411242983792404115858449126811324786603611128287852556230722646954798913682916493365369316235861718076647834472557960700610018597845249280168304238782613576463033313052166790967728806901850250121271010478956367898722676995863947075141650187544545757887091998108674719933565652819491851630354722604861283603432708504922029967752634131203118094772735378939217699809970358365748507448119809881053012673371189113542833444319101369842297072192979693178350147223064073185594186931847157825720138104071852204250488137286793453049336648794869112806244042915594648195211571505658570762520312411675926717399082902581839542402124251129034695127434584557841389012031039955605959188694169732091992113728297327291604775521845481357161095063602521215770719794460769258089948777185393076487034180752987274291108669043887567244007082222701891973891465646916245234387700947916249249087852715509807577716241189530990014237238840015980768674343635604881514032119821906565590970364291935759280257022518206777181675801278972317830668080937747948161609805232816236187027021231555319367668961762528047204653371297036407028698651271785350880838297278540556143022076043353073807905153262905404977928999328643769425894017441588086198067156670251737138329319584813717807735043234553891169139966256730601108154108132128801345100568189476496475554511339645748697583019874693140184186246753154894227897959907261017734567383130067739869836748350949269631291954237825727981440903642271967233464642772939849668298663893459505091116225332134488545101983979399640867026096111814205153941452913245020899741418888781166495865147032810029469946906386213589646071040820215682176641024263895480428453762541379010508224333408581604780141175518231103695193949221445274036851998720325992826952324755191626754080391831623536317654387654368518858088217684730017957993167377392696081567612791238709336595527527587279979266188272435422937284512287519918012100974937620402626570081824296424884479202259556970747954736975549685181957446500071758557647841673836343344662746502523722136080192178654202927398966150591211692643334109026925962028752029030614631163673450654900042946228096549799040393509189035789114116308182116175109347138130015439478445954857295935869863867948884490017479203346499380457888026975852506090587164291804911153086277763780579728742188362524309487609142866831254850844780305242186507434534257084926577216097904585047349902806984577844923134585028216284773466204739913218831490647727185788955685047941198212186043019769911571385276352477973179358561870131588724653295366086516099969562143948455289277122283289437728964724297278954685138788062464042239777537438880205659056880763941665556053902262477122437779553213319239802473473855007977972586133482940094890694022342446267653072622338054647366267153983129489752219730243848373623120485198534850355077314302748917901589011057425720981884629039124778840859714314243902521597792641756640465981243328287335005826087578515636334733783081343893680079032227886186640823673937065564885817488191434254939247789436071519853526745743227429867771968889324738191452051274949370445103743919243344500205650043884419784551203765337093179698901247742068153217610241288683240462963939757459037050132590727271703602977700683670069162917430949302942990327191636991038289277821196457093085828841240652335646357539109185065545548217497437559009361749545400249560471794228801199026453928172684850046280978097099707215717913593327924799002186987042991727455987227163423454472802512418178610708642662963096301825684884763335516650315432920333078334962950176286547056172930152911050608538437881755475888337395507896610734186198987912495146683355204450533034335176178265783295462499763609282035341774931171366477367569427845026519794063437218923762644233842780032842322183451541015247265731459602627133135859921966941424434939494715537342163185970101036681558930254511339604906716864733268553612653133712908921356104337724338685665931020647991615018109106342616320169916402905117633119327068465344628505034602095826594066107257912301000411045356243803803406024127388235094484067484461820527418863034895174365148636223938493898073686045575105302421971687927090062767570977893847662994414797748517075167731026398090419571846382923173930914645396676668121344162058292171018352767024730629237405037683131692652029713773076014045095400149136204368101902775855921561955121414635895160208000258084348551394151058487408057007635092034642458107214078294246296627931295694962442525137704853157236945901281365584652130898642587655670196326822169211688363415659025963419192324169581386189753773531316404154418227971411353133841767853881233425515537100443608959181589006263469911366491915755807745177380080078165023019838848307995069623101611406093239824932324931899326660438214221902896033057174632410357884497155889670022908446243356933085017010004524114433512567961857142371984793077684879810316779900082242682072364690629054660313559419136152502939466296259534914854735589600613992448498292233135484886269332742685839090307993033021015537784054122226063246171741432891753035794593361445800999268873688945977594436021441627676153877187620944705453930086186393447594450906662585564500953993735352196201879542941384024362240553175098203068760505411431766442172395004970212090965785573295896086942352648927008150189849666098459877098558783703965653537727476718658792127468183119175697343457806389468652474848700753167648518651375385154951083584819758912396007171069738686288824967711068743071250963485220919232353618827806529221027701036879658012974719240117346157166441585166889647255311440489990575110316888079017287234934871214511718002144322446652278403164677871519442849683267178291398575778748057864258655587740718683776455079073042389879960778643407762448161201747036605973951229344654902704761276609067942986122139348161787926667435998333960489314678044261564901944648975063136864202830731951359469282997850878760163347955589762397935124098114245616150736686423592290350332334323333641312652546194265938813035221374993966039575293278005239729528442519508886174951508364664911735598939790102058790826475879236208518241919169519075403159247718119287004950271091184695525248032441821706028999464192416251585409052055967346234090020581652894904492099056963845382599872156664696250230930252618882688536548313307642844161227439800578768625086809832035674572842604931704922012816692823592239904778290515059575548862880668273585920845823079984472583261089449610783163134623724067019552694925972960485576800255167809900556004065229703991012341195129107490593816331078460724031443737647281737637400857436227800760597167346880249007443857224259741222080539169558404646685215254502953386441365436390762899818448257524082875028548349999975664559075014278693027918635895785512442650593840950784434337882578676273353001141499032143177931619104705334303149975396496067625262999863901439739641145496328536267258237149558057905110108453080200936727913105959044462577999928269043865938191174467210905038242850313628334333781746639014976988430129564529596502713465881146860295876282995155452389370993309731437632098990500060077657554091652395074083651412996562848499953981918903233354873343246068117594229601082664065152410098959832138400718314063636785509901626818505013920831387726626729963484607957380868902410747332429863580913216969642797248536445784361526544547600699154677230439287885398820236180261486686315865644806745965336093644755978814341589522404365389971040946883006385803883639929619109251389557704877130730482886034507268722681606919263133536077225326685689749111423603048755288263633979034230348673216339708879050789356560304313788130715334752576390422985589300304085007353827191060607390423399267614995506681275487444377575304472847714038505442308177136149235378547121906819814929571886494655098600461876469069198997397384474537042492623357834048555887838296147740442031795411716521095762615906519625279845477902514620019294479416272837054127982664180400168357511880190966848784286511837874494601295601663877031390921960363724450146275258275510548526876529619768611834751941635364719150168584438676382436458158653282979555041321010224149947374357392551469826145988389389473856350064866280231328943179084303940010046133239943874709985085845968682429827905124957153810950263838047741492742473976247081818275819613703868430774791263757694524672300862090976102206857111952930792119126497278320245995604582887941894346754698941991392668099705578890633110634527307209310360455461784451245060692248716067404956871850215729530044464649223815223101926978267571216066845697173799417252158811414062757657139502651787853236958028941155025819201550443311449142705405431749930122040275762819362225084703663857448610434365219369208653857164285608093374000401247239471397108470879564661011485574366813395785642546116052302504728218906476034264493613356683547960748715896611285708746889659279896983205246702980205868416388311562747328681972472916052023183686392995193058072812013132780631569625795715650251081481169790079462033193871813168618819662178877515435666651203061231929975411152300600112411156542575518631736659836530825808439077083098736730169354663104189964757568665010510564718533961010582632936720131710040065848051743240291056481627877675494972857348841254071192513959267866360763038478958644779225656748456981276995528966234694272388070992632930352411377631033997571446935947598370531068066427215767165259572020603025939583976560271278986991465749537790067042591184746854942195175175020285847623967282597040945126799207815810375704601716554341504035588185440204148445091321053592625258184341924549199524022040507932094586348966986378771256090884831290386880177629441585635841443302060633824481871046379300209455930906813282133664684420173096679672566117512354712908163872180929780509234486137322499415328409528017503994588478874091529452106528970032804135631673638457800387960692266428209070411772753401215365419153989598755444043060723361727740907510183058179439777657642073679586511043443521995373471990849372468160860473167327365480995609181864745342667718001450779073135465540033052560279861257978933929331081618536184991560378900518609086717584912271537213837121206069238016958491980651195153265013573570839865390984746394770477943335832677628716411278353620170609952827191736385698982884631209894588309628228900459954570986318145516953923473038805941037641702767006524550712443251661338551706140020833130463617606811258586288241219874575799121808626125106295869784375464519299244777590201983866915422906420289668059506558074903011458401292769992754382997727093844944705883591115914510206889145769481582108056638737312926465391319702400454989464095837690336752239705752701312655808959557010893313945383842431192432834685021139462028532391433586572314550014477113105168282999636994306436577923093343031839944875574054652539636620582284834928309114589963671298211392760680127897924264882044930930593744465256225204230399849719915391273986964013600818650084557521000336279866904757625538356943559500792876681849851945548413672628574732027853732932722658992889787642429680158156280941095804641646139609526816142162445822483870542296688985661017658888181058413067899422063264384347310022308006301375402450189865604448515275696441058001433352393683109648296329383438936728544495371172643509645726815565704051075413837867576271412893921357256851190106829722086616320928045588533670042137060970764002209469543659073764466910251417546964735896790384408432203105773240769220601766989826208262627104853871002672145998904932635726955063940651023195670653140040612880784451902125965818699072419804392908124928636435739954747464728355361732926540223356283487606010773684204678492547486300106367518997368843150984171195964816195059534323726725541787216775237114320852668093163258227034158155712334530598584407582116003904653517987823792763982544308265564582256721299794386511262545259496756029435249629397025207957207589716553377620551999234439692651272811658024337073915243593168811693468377675385497270657278881519332991206830310229712428467031909674901629168214723164913365634031913523622831114103159350238670063111676979648476255097365538524868608174398377970638965385253059054002915016412403715033177004280721902621668073358031518276780134314332260540082642093180751036370262562554549607501815581063804329027723489920082307267699925641655072528037613504218245178911178281260379369103139368484101606624443167469842999174081757941733162228682613644079245721720888052939497334666414970570062083292823395925063007840092115639238576023946849386641057783261166126140947058300170520666266322367393640949226180571517743628138179410041914196519189894956962948659161589740934987328688228267407641297816881888971548857696933754824317741705352043714073933502860633054489332683833510503224030972212271510738301639189864794363426187151081678055735603209241447870636821836390262137443662129449438504955858246838863755120128226633097857353716198948253633278272569070206908444388513874579264861532163004954168871095836557875249442959022797792125207957163321884873989057685126302221426030852455836975435635724287423670745107174890918616018596347242156280601344583622142511052923953894383835909135093070955696246111316350244809999920950935897366907283671628866908886249665193712216477560502480098681209982754353443459041585724147363569053659365908232852341298529985121147480452742895462626142394421862882736911907560390752560910791216272476117043956699788103218486842925559643374844416053894299890311167197812442649462159577313681452788738303639237502549781777653918551901007147765818567602855504525579180588390623856265021694814636877139941181936599013759102624816805464930766579082454824084975655024203204342519307421921663682717167140784219751435975666623289447558734191177356566445935739445133986614218102130313947691006824187018990267798575037557647839853101720940958165036848018354462118554672865678270189166414402622238451362036206987275032431915218031332992799423736896614425390099889214068383839039446408696008853956333874994448191514347169964801939852289399969326513669496502213390907690070154033004943027791602293309968774035309752139379016256573271622034851818259462999596323604247298312525378746633250414833988241978416829130819475267139020802719049294496847233679467973081117732209447868577198736318573600565909475999109745944211699233339279558114169269862491908202374540896573125408932771752117329565744851994749296503362993810820631866177005760164859873744757809107755617561916183431023185483859955848255626413949183245998370824530979687264462611113356429268966917053602511887365920545038693350895214575378004213391012921821920051059964017904096558944864444112946580772745644368692831102831394468641179677170480016709834114946832730172319805127877451083980154653270568621123471938155743839489488037397816449673719299557047370273236810427354095177941255209408949260040507789414861992837192863772446527179432850445969579842716806275777668831811749019413587261136620716761760701784115964077336389480398201562299841309115679444386658950231159821023855680985048866103612891895814208036652715677170211177100613421915976778557682718294387182565351184532869030569926049351228894310808776048364917181771116523372206098558238947829108074740840555825320235061711784523631374102434952060230056749413471481389659400888542403045652733909353241919395483830508463730568336717175272702496574583636209263564527363439141562461867544271805388325667619721358006513730286102108076373849937092048114033941339200884972677063672479891989069724099249833883803549151959546197758734712648028538130632018680557144225268119648082437188460652321725236688096329249102273111935807602231150234262652646116295423909509798489282692137740194405039234608222247885236388836238116424709613373663026067940202880764127973083164042103694152973707110195085743320799146749143565154411153131818006386014235649977824375742250897412821569806731823190178279626756027574320739086433649767783391957326478193807637846731915643740831218474310972879007002310754765475279733595924048079341659401637352167270197083834100401966133811311939758259973218432411354815840963509100252718655611329669776644871021347996020351855286053340559298880943042177146970132986074197037955333484405679356813494304246081804894640926123839529265033018000812170888696907967767921601956781630087946623919570580230182288816119774198646524661622635215111903607941197422634528097724647364599229553361573350943001343038561903587448420953920323511489872216333866071262999687209466966172413830278287094891608248582503011880317000679838128122472117740134634316244048138539226229123111275404869053324364063742398990014342798468450422848235778983596941518590343236355657808740411537069251771535437644245994235365289877595984694034266003259951376561800785141795807662901738016471542858131340626601110701183831883795684320358076275886680161707551238212389037994930187500332209403094436319729617107194195182947268297003554320554110322428950200752452667104997991101198646499664443151700771576116287734986552110776255529476516892849451672803819517912465592551299816648669779295442836826281243567295041140942789996481502003194532294384532984936144147049293177392859864701266564587987073823427037152458842945275899259803847732661152933035812033774559994114769100734080190713108219232970915936379784047739594773173115467107733706521755570282389775691059446758793749218706283454097823585103183097452838015494098110173383550090782552595241509109366995897171179399492623171235664664655432825710670907472605048867160253600792130232656049094743327292803492083722142536480041710259969044518696809941657679609630675247159794337858662605227578659464221629816831413598790413466205978533490307075576710176862785692977067857949752092569747797873599776777541821809791457462536741643987955671104673116290596175850304354281579305876208578046514783440313434194730949477942134609041562333174649007222383023764239193738790864361246997938251262846044913955949764701997260003424833732903432056920100109458904342745899068738511622531366386858217257627117221758925916018622718223862462904305542088908636570663940066864202271175131422746544700019804434604861123319991039497774767637262189143832035975303409677192114638209391851887705699674234359448208626233530221464505628067664779406916031418135954601292046202126119108284296965888217748201549647719920512985418167754770303654646152797655486517496228020289918164597653912395443041280797294638438017645078115783111787371587510565225464820534865337873571097008548212999841157067290688244918657358901763326576512074979385245905958626663178683745844225440147011927087517072040664736725569979062276236894653375261677279474375066407866985169754211340903044019793882134918691849925258607148295096219826597862518350282925309328397379356353584994394894779284682955892514754549084984146793982730040780577364000276591453354463173346387050656972650988656085659138762343712556266926594816695172366475803576593374408023068324119441909167624020359571484801583633676639280028841603913981991409595569243791898082615025475112867571241763137894304496272068464252565070334207876554806821219803849898640006423279402816534911618099676971353257609392331156213165027380586492451013888458495604233037034414248849585425825294033153182334899494602571613520560019754577977343628068380427142741241427464824688287464162412005743911428593124599896026549984973917569769752543043694360976119124140915311127554550051842462292980730061565299119455406430371175374950500423603302704286994875135200983177387058864017059359674702465418374486172889746543977599516845092423404892874333326191264428716289095602144974145867414720446930438309340195201115533185128629549922783786467595116995033800514766938194117740806665807457256010690386351763663220602642262027303189649915250910197023384651651313363813959142484870101768018185339947569799412471754268389098688198596318481239196480894489188887971703524841151020484943657976206989903669743322498550995851093892611767744850003285404536185482664662954116133347913979955785423768125912295187379097059735575450700697277318392486866619013483748617823835163489235327820290361067784682400928076907199974937227767659158391687320857666444266727410576139136690705946242100556513574674520812691027461219844194477321390907324132414986984282252453988272383292698924828114993060481963283106008369183467396892263671821226886605371022271039873573592078875483223272039689308524493953699930888135853458255821004375987961461015558240240756945619193076366851408522338647707573352039310716373223891514172849393349576665211303670104711018717373421120940701656775064787599681654457056570597382163145973945859524672462960684482979999166577144987750001228427586420242585425473400664308274050376174038187620570625626868055972942490091097831963692559265477216799560841863377710700114729562311130596930154788895023182365349973686598411256693516561772320680407442243212593390708774433679916081298320738531320574008016238659512991248156873018739472123939604164913511137438276666242393690608761860381176090657893775981418497806419972824824626431723497978904458983616919316139510282988789502212190815208556539152571661784009288249341330534782347068079264659507430317972787994615891381212183827319379456946998642769163317889968080371788184602049867233396745043478731222804495230967910000467624885465899987182312861207317161138583362288312747979600793608248096315277691680067829546264964082761491693114328239378386071599078514268218877538677203379100588450135002043381187636635772992403100033392272685705166385697060811149567805601013217061137064576777185028904697914121441451956280155791271824967715863813432451589928683781422221040996130841557883552902807426684149404431634713189507928360414479547389519261712743103607552118034684104068527338516446970438334724500081810793093906216788078687186668366391605740930308182184486604829767889168403747015276950174587543770823126586291674323861595482852779126778648724745124028519669275948474833724923187697068425141977120840044050997749048157803068665256388539105052725173107450480514075890613068067244753110010015800380531456530413937946455855326540466920552142703784456902098852534529207850364026130943723152481015651313966785062719920351048150186641635117252322640647922258429890047425898031218231482095109677158583718961322441421136032183941072404412344093759144201286874767099110727617439939558249329642704869083649264347223142437606692908154773634719366273556689298163435435628705244193955495614137460187999246178141795022390511141330362506202861020717954005757487435674377061415157232796221584247801002155540893046074017089351936914584294083551975526279033324105106473856108628778806033282707783219165398344962106637338926382142678105440686195054911724733977120857455414631858552808740439538601591748274972446190394989539974093055279532072803405239487077972839757964657002236690948776301102904002413658822700938079020406116321077679626786971740415370524585417589075018623394434897568076849191135061798895832365279680257978022000074662577970661090846866105409350759129743435192872438317898770369542752275582280332315977161983510970287623921679386562950118696705863998578270342485971956673901635819841630005666047709279154921540423284478266869310736521422928691034069611743361652724206045608423254711224924711286588718643475485498348900361717567371728385819689489971900446841421943613171288327730060411483565017212836784715066168995518542079480203228527988773284717811594098510080560399323318517064744417347804910797988911551165422800534927865638921687332489185972393848664511207128497950481170793211408613565679866927231715275242501592689384065361564342712758589419218665303102722324912376069852288993233725984916726680631550683827510386259077181476988986789864108692721118971068599288176244033809533539015280263901782542777012183210144247209188738473626820278696465314802312431294844716575632696059322304330133044139956720474148853263714601474320307715428459088771836031038938794693095659283345453687331780901463286892480348172694512673122948507277327041777300789216214197290128147530165096735988585041848914344412399011747672723665365818686849339006833968103800240408236756377569155523506562166123498155511896816265014557929039265865128094808323422651860907994598622039967895207488736558698318474249119226420672470333787957620063817072542131258955287865124431880121370027545582868945278994334006237388313595970337107622222588899567964983612917532185700556692070733256372681686278679144811027576138104684205467997032948308095965021251105197713990803800272850595678060985529310288951022432465007123702819298901461039450250128929066597424643443905089446884761480552846246711174711210130619224119786241850533989287328297684985339378975808583852623855248182256984204515056168774828764313922739674607806071793165558352328834387139793542372467271714051621329447440504190502696950400649769591232871661336178794259539944944902346156453505536879878850732921903885365995232901811393137506769089109467185706482026328762946094673978283562610830607439058938272532775810611218556483503988141516526486356364871165689653107372030322579128752939307717769672659161943050610815000245101845273015400780636139388178107803612593898779682686782737988019414114003856358870504935704477261901601345564676384514271915348582044166324249937919304924060530694147088362490133666503286680996203216516822528021788459005473738216398030137598186301944327034755180818375221639221234042090896501036477130508422593831802704239322817125018622666490119831840273058792528848164015624843454099642309641317077236962358572018265905328219761125483879712071540426716951612895876515648576110646268070062613412262087971397481578223250249069689686294248304777014439540867006110721302552335703755007154157123090378472106992071492181657489342350226323688864188717284400792605886298780522518967980846152686672108751932437005366813157920300909912220595957377258035145417657066863842080891326779849558038986233545193465745352891266205995446942073412194285324415528714551403094371392978790422212140475989451096344613003164061540587609269273323061471436461118755745606818001342396687556131608659971473833788287065915992001466134525116782448530303779986218335798685822071098367945874262266037234664663308505412392728919886474452076153365265161704033775918847241259526440046588184940759340760307341845318843126745746908273287162130090474091681872262408723480832532375256290201361950826368824412914921964935257354221933645838967609262979305937878874263170152297847657811750311258041272160426295261196667140122438252989924836986339114013268212963106767570841319962958287776580780577712786392268728565072664556974591232745825772280738271875489179386674369251197737019902643776715341083960896719118286710911948988204742191990126417017556696098492717192334255531077836196821347894449446264596865283105484836034777549119379746573438915131448502139849850925479165125091259971376313422277991929784143359662248359430691292904430657350830071203785218189431278513507771074988901695654371079385544791702455094222181825263766547041841415075907629518502542007649221068350248424694112956708530781657447474646388801224502033477842543312933661357960209786411634564198048981791732944951382948377127557484772074258948417699645699627905760434405388352585684813613705650927590389506775685350772508260470182365161054657390119981632284603775114126202120401021689891507497062061138306778270467326388177417923210512472838061065027848676934378674738857635354133212478028129066886010418911541133428352883315877533922245003000518420186931171297144654814405417427338732676337456480319653573897371625295447789920138925431784094905757248103299642540023748904200077150908281659097473104364485788355582357279345142240613816313444996299209203293093228031479418530541314117136142484325477283021304673303728496829993822629074113153710951129441321922886150028327699615643489183589385580684933402984049768204756478897402709014847229951419195414182036860866037376691164773126776017730923876440188139808904186809402444759029430814686353890466546906513166993779581369938746619271055041644500828824937897914316313950324259860009048733189213201151292581850079574477830098388755163705347090593166578044933480455764391226913003470817328441383712085963291178590167291057365340393777537708090623339903645955170321618008976305579483502897950046353361032297674067852247902088352800816243429766156825225041239023461089712059600639682022024062230995450477561958903191836118673438307040099843680171536164256639402077776026465136515945380056670875059392983958138909644885037367806747561111848694044707633057936565365297822359806278771256242916473654083918614204480509123371152089700026009585955122740146023147230821670220841693381243113321258016717674624165934371430572783536810786056241734967045335548643302177190989995758590223517573584995289587880604170802538679416186278970981879504690426203979779832516254739992680304216164047571550036278528666893503227381822722407522456827564556102478288186489746560570382612261685900930990119116227805660316434358073304051237072535834817329532697783866392503435506066495960485659152531853635094077040813185256330703451370957371439402793585008758798350799175949824869414700820229715541700986709103593587224401478732126640078141685689008619787042774589068871594386228265528524698474514505485556382133785757381182323648944476489127349167590796607336633996907757758091473535856156946559939146655368909196184959452507540729524371114878819811625645189430488321278154927433220000415931932774501477874851287384361311198328465388394793960896101902183113584525217197035141888420042427806714595936503522597289112733774260244238743220245255534436223454093475669256094360254356920936060924960553234934997737435476098362620277060846164298213956379167393026589473085270480609070230195819978780529904619648409101907909747710895422746668099121072908517286620838245793553729120631214991937176266986755251301753479510085685828650607266736011886070127311922966133425563372097085872144095695305380496979276985516630466810778592896735219041936491541658555935484558377771710202050618033660822586312500669883503993496311035659165173737686511810709540795633723519111236697439954588752591460721159246850892483906123925793477817634175317183663237996485769088009487421120346666318709987520505771310234535986525854398228017604742296376840214871796818945261231681966808057777817210296254932338891568351056016006859676032656997439443153070133159497831083348266486597163309339970524630436251291636236185786659549069758670854874371596348329034956684313376442144690047195281094751194218777878444160700666623521045420683983347949759341928996007131006083711057170561373053043560852092053558033864858540954576855729582946515579462657525069412471195206575076563642206661014080893700774637765648549217956640472622900228942957247313004875982990202530028387351251099996030786715314671837037155261265985173162725771252352018921886371839779001931861965280068160746265857478970950064405076026688140883629023339235500269976839519610581753624078664933941587225662258352721135339522054246380122848437649982753766556948027505604513288344512357333604711480283483316323938071252739622818024936865706927828566735518121329881648096873893821685738290721506997812546168468824719116018595457607052908504753354719895382346021931056972288435915260593393856560333322824820515380427091167224779086219182785939071832554878241868541494879161755951567231358575274885149795506813060022844765369107981305846672426491964829115191912811841614119716107201931351072750960425756347231143360104261846827375651815035089023223855019989589518627617920485764252884748327339028624428260764088874098676087044633424451408521684434319915827033043411112694978545650809076167519081025962848062620365283668468934157939068398243587008248284418528958125194251221930727956954066970336975969615696836717759086913481214126572627046242291655181316276519034213925258723747747012989929262672547850115257602993783443517256656077334419159166228949021524676742558345175200438288504567103324290446897024304438320468373969735404531514187623483611381249407146073978583139945886007745358054000233141477426746837458922423379795341693711341064702207316546885361752902714906005287929944325664717508006541938401806014049447470812291353462880420616308912088419591569487872165147545832851381367584173046053509549706696532837775861746545054770041881935171432130161838029694250988083575979749448522233658601742873001588260682984138882071225008372803748256621069375412348049016758318904868104769928364461262355202930686055991071268807998344486001004760665797780238360409597619916415555890857868733738309063737276349909321754162149802117829157060725373254307703198586633611729544248476926486856676095744691209697290511946888800861408070355367758933531021020984567150147639450176318284245432497448982936939306802408097874765444889662538301842973446063586986089680726824171179695589841532076928122292396271828462587744216389093688891418964072674407400496770019558629194095020243432183767627769123259173326165940685331141768718034072968090665344857430917127549419515201654593609951915052119233156282642936503246347733808532941341043490122189013599502925285433661487274850213777936692451638276214510302121434921712770877348495490089135089953438650908454761621117970211673873337713349775684443110888513791285957431760973677557127123255147310794548412507811767552872637928646319141977443113990293477697396725558992501408648539697707119983857794514715402609805838286711339414018842634993451273575221312044244797573686979296194527324216767505303383886780828611392538224346905600515302329646400167486709603299341822112430991016710096528525434453348754571177075503880320818795257379531882869464779281549534902198235826782556886961778116334307746542096166514423817924408584083640821681278771975850751844385385097779374316989336012890000113396676109006403814724157420112606709431880089132325641635489073572907473441018056190810014395647477404158067478830378126334833774668309916034035245225890964721026806142525306505408660031152497654825656629182575055533874351381402310342515223882349586233529239680067941774670461176165623445228974777698859530414249504386298696538813945889702005166238454915706333168724712401717453326079635864983676762060957193079653863785054469664375125654944520077033151488439048302400577674554508258564994368488529407529223979451818833766643326556586381672363537767140028298589700314677894295146124294359265676355111604023866506054694156683927238357357933341902777592336221157093406788772255500922533617261021305337282974869106210726173253810989373345096363962349486487964773797170784969872581681240781159626874257079680764730571979049911979435390535979077466947353222765670826544300042306743698853346744763760228872923639746105753215173579533912850719154989274306465965139961725526681842385260671347485671641351721541976651342275226373538239880074859046351581697418608043403140371316157170371145358873154634120047823423432859460286466770586530739560616752730015381650788186325766181625663069782526833726000134830809517995663316868970800600958114343167083923996674201132968536242364771396548209492637022475088107585766210498453285046906483492203031710579339133777017763830427945556539260039996896486792302324270656919546694945262710927401494961836645401834999351908458872898436105899170197163457626748694797475942779196415483735507722901672322794313492275581533651819694369423470268270035233538351972066492903303568098546136147326255811501762215101617736018030676769282464072643674797985422545019896787676557850278099487999857839523932821613864974815627073042799797266553752998298219890703758725298800328054735401517315860797303110553904435705859391191281333249378969087826961344218768247968281479746078337422464396611275661599074426752134396749537606892014086122255037217764251317009753534946209620277427650172419025300409399854955776108503695595667763912038980343646215395429678179287153496396146026181292713594354927876741261537696072614277298654325345753078568929840870132372613696520528275942018127113204085234763821709887798274831718454114724408490200387170473667853042895787508906291500359715825501889898752122572056507573476563236677399355303182965497956516665089754960500080699956295664019675318248256766724619132602843261862036670917937419061506125851913290416248937524450855638694694230602224068495060448130549248709103134758103222392874245048635759103591587283364239893995448345982987150196461640038902889543344953059942119343147458383639264717097213929892837364854880638194561205238313412194796617368409765567622609793094628344863221052671346137901495906393137503612562340301936834429889357969134510231780139097274384314765609660612389023571453080003018247937081830061476013289804227791774560097899505362967645388096187769419689343284856121135637787494714855232602423243878526541970920991173193692498395519696368204661365266697983775188633825046427997210007303248318398002083563215415163976210355185024425264698095043158135534279368779742499362905536155287301873050534890334961326888921003623814285711416677075493040275733260929130455845193704762345150093005913684463864967114793794362889438140124231953080102425702446994504914534078508720549061628531200249381660813548385170337363422440311523761607426215985185116960180346193776003244476317435387173622245474805664683579266243969235319462008150126173882080669942151070553634844746006306971768920405239692609816490003304969114678288778687914965664086869763796054963306168504639634214077702059476427029429179646979869035558637547737010515282098174369171487397232391767420698604442642282787017197392026708209931628702421845633945954044340015007724992331557212267581780001294023453857015906690135366438550899707779932819671184625865943855204926399584217331726292058889866043548836866469226546772673071832475559394446830634516961008213214756499113922844817011677909567527878478560428393165221614815651788824772607440512038516819034279062559707428283077814023071318008368989956583176516533044666050441390608824959860770112467839495235935142438371483752854893575789861484949183651902268101047298868088203771355843814845465321089512100736918914660145189052152587411767435408131023631419727452020849229464080765768271925484853883429718112036879344210101624862411825542677950121491943637875185204003583952906210970599725561894440642545685917435344218796143080843615446340342439118609961603882473412162797316160371248971737257696081476042562042656342853851269708413205620417681611488378509416356868018125754691751986017912522886621030804714861933383317474448312385755891919318066350795262859708401519210729609066827001116097838479411381339742067621949901157342883220996204546070576295233344340157113896386543972898456478882473878628933414879175414991198753860025905014440407707547450823349289411674377754029931163097470719124883056473801763059399276088270879685453874344225962102385640071729792895474027011931389372411418876895745895818916179661295797736301886370559948658388485505310146323080434498790845573279277528365736009759605122754620571932656847161200969667073863561193000457209459253538404576568860821538161699811758386549453416556203185162826551401983855705162276746704808421764086099157311175096079464085532230358509409603481271033056041532359357615048484860103419842238690503638359064920153987198242494607002229269642145882075684864319327588875291173338083350276077779223742255734301881801142178948799379202999152250808777610068323398860918732658401830633622824425504967688028561367539487440979580381366613206769384384989502056807190149769921531540702874534338756012188161092021149206103513588670435988109131988147034095071800503232118516055449376897389286495670374414512871614029298177677652098666171764427268069630679457996714962210336437641060833328916630839142420409556457032080095570063598386667086381759812358674484495294069784118084282721001893717200891571793577717507869706675103337288496591652359471043407452145965298331633834217183428871152711382167124150019785902378481384614150984964393291739114044360078811990268417757011752060094420129739851681262004364140663664846605044910336327057478701637777108446320008798744724443615396398005705708680225431836816664403385813922660447241174462643015159245568851302949654350118672199436754330730221471745702434589492825239349652713276356899622873091778886180084703744874163238895180490722847606809078396405960745877838051414703289100345239883028637522046196073918072805665314411660325886032510692811120044886033809097131857956068492226055305203027303228690952095767053804133420176305676651609356904256162157849925836395962161981901909181636500739600432292103011187902052296890069371283821029559242579433241297818393115272522084360986434116074197709717616147923081179690958611093642564519420903013099502886168974493785773702531100508224811291796328575412422818737983436483405475924149019750687492338399257236421892241536747418151528367536176667667898272294198439957671075214056674400840881586046893516605416801415552978831636180661162593735042684810840452395808886714448121759657794788685917204410718982922890237742449427019944729320115847715082312320119887926878847615679682306839846334006880508862655463120243468681052691716024452232339654856542016215679054002230879544204427267802805592641635500643663503768562382046898464852867803229239005419621917189332269408419333704092169140739261877234393148049688008244633927824671013253403780813879184501246957742903875754894823891207625875240295005832403586373238190394028124196827749609813297291212415244809629705268713332765287100142752408173182794224607084217562885889222329755649703327659024369458322971722457089698803114016702218382874935424826099325628651144683612895553156441434708960977832838606036939889619221546381593836237116558066187325365338867809667914201664312480165621866850406450847858654123275084445827435973865756644774546515285612790658956783360212008107191462818161011630177662060893740656631068033091940880486126811966745923481707346116586842563954596488402182109153116059646898643596109079652392515437076032579663138856030352663126401600324544408494556610555369882263265470273962556467545794471598779920127043983772334231613823944279796506338069072255856290681045421953396634235017467767482115065807698624423649903800651481814820888311908478741155597872750655977184118103111438483721569932708938668874196639240595508602359699780877549368777208150935487599250161101859737783580349006862341901522534831847843174378397437102193185927575950353151126378217089552010322804481162736389618403232969684165400103103087498439224406220519515103910738711721248787336578597727173710068609481662551781831473872039842328931977291997189555343086969236483083251101232967182650627482369726667966923364623614119825082530056951441584661794487988231408453045643276686939330530448891538647300349547978852678835412894868022992258228768574278375909169374409534967295368417474505686697592099534768372552536532860842948234113482145166227452229415889732779285651564884550258754611732036529973720662019858251546527986569384932879519161849626073041879970950345044444384157616869325671867295465449737651162347633114826637802485687750023211898164758877227483634940046765302988826917340439250898811917067461617173843188168980318462993556870312708061147020994171831173327253004742051939152046803358026048702941072189534138712280744562777515726559523387850730871043823074466609394790735559857601648318384019800189513468554468745045220962599312861377212511368565674816177869374516218109445073212085588293669648272034249100858100597856355859313722678103731044462470480426121245714209841846738175563878599531153572401648843214264432470607105028860161617998369128955275702489739465764211148718777392295321889553645685490035252220922480240046848784414153647306444092381738228383625612814728092075771392379288825002570359674433391868809374148162836288378493091767191093453885470707112236836301620738005244181057031225772125501014336084707458583417834825834412324116441966501784849444254980696251159448286280571715858979253849969112905840332624493567344403993052119153183905829252760374641644115864418540160465247752531667261635624069468628772111893266073990804894207412801597839208936495213756866926624400971442941256646320342269684016645710395598854178705986425067954420308746720525704993269988105951378558856527215840302774290996175052489207665921984924422836026956693834445460908967849919533096051263405488919187767731135095579526522508415598702534241124887613884860582471234902914919705592267186230483680326058033084274315902377046121084438508647882135460736993403175481290499146505252247302737704118468016507711582311115768561295878218945435191313847263567737684136625096275716629783941483454384495044143448050095496469942784215851253182607685947792606446308510358127522642248985008953715447567680061680560643639916159171355146543278268113092472298437316840806187134111900866617527566988540426351418292195905615364357937117361863596088564277722987837960144721569937315806016212742725921733447535803794650875213497127853122940740794933236392812128739341752048511033905582385390234633078081769852249706568866913163780224899840971613866105226838351213801118913876244383804934360939792266728740834288811128405739178536161878290991195950665456583091130082130705096155624857808032919552544805661841518768243754239653306439394511073803406141807493317105971784784195226379026571748400760089729965547042477740477612793630345672547687557555886869152889028005329946770476850134173469004536573964197461567701136217856000687252366156363034633567982906300588222930971907741250235496806074126206525033840882780874431425902929519525304538008999829642208837428050258203345106831387053475061300317284130356250385642144919405691052704594657392039636066770033979485904124148329778704208455855787770191773367751285629313861810977388237009182449635445230673360497177549977250430202778492321974331850952102860325446578346500957222031542466524215038416692532673501729741915929245873453096576529472048694927417257079618849570201149946629865144804430808109836192211300235126449515358322268533720331943239669927513830756729962152482794760266755742820867536737313731003105456950084487098400694495079278756541611925911912304328950634211904279305208862227703573201429068063406368264014656922134692819004204138479656982426251819943547023175672607051199823362000376333929978255573779043888145564746213290451196305802396930290620031836575243253719692465928971126554730432886411082173953717493958507227826458928048075496291637277423625353437116940086014698863702345781215700880743155467523987786250236654420482350990728562911395718635648339985124947930810877289870162443584504453556886938357101415579978101167030971827958608912727019740695583381365648637043774164428141488719093744477496964021617315181054300018777208807749273337388406882677559931466086056427084473521116515426553242886654047710244062539694024687268159392007174390759132871709698999145531406305292147967203306214460762836994361871618719553208233863635950020790122357433415273536365750894994627026751830755288555570816811036158185363619206095974368952501227563482571034799562556375543999513265901667588616040012389089325489583418740000558837774661735263502994862577871183043728930132686615286076991862973927477883996176126223864356904263578595706300943191222996651714100475132909929331966412734062099406859764404223903985058309979673125555973184131518692499382842182959077464405052131223059627634552435348233845603992746337732491499108326022095833936892603120920708644404610182256960697636607620023988288518386533117810831630508720318268812984852818378000330961755447808365197133468464171050088757845566599175444900743888733882504158879415698963463894501626085953975935996907956477379919148853689026052278026388029158561036042903188667745069552321046458369259130861219515499149082109510074349422857080606243337534841008663865497407387576794560686540654745422381348622912992330689807569723139472633871558255174217340922166393525229718365237735074947148107756445381188584483703297774212247972631763846517896267241993115264038569771614197435436436139274321951587406758439772724279984780543291516267348091529680475172836095711336756361196491493412506697535558847381440601977724444176866071019397110971158799112373190576632560956975478661792287573454048421971846931325098396443559697088515364383744194234226524323197809071369541468550440335487246997080207127996799657626546127472873062965424270794464976656732415421389552735321869176563310316511730838685167688542578741076889690600498045016686310624466850153557233798278976932558189354440185354723516572579962346896277057055050504256193895748771183781653539771423545393547857614524966808537522768020573711203139016328404776286043502723397210248393545284124636613185031704417976295509055857802482086413778499922488809891356452476456015557804197660966345758463121625889171825992601267718453880885851922930512428556055228686239705743607579264691310290452950384510101388300607033250241414092088398218384261568280297389928069849510794565400832568338537213316335471616757564110048527705870411040275246717973277945232948695089989794595904053822794740912353662234496246737127256013641047042544765653832367944226794075494844932093566152413688500889424712195085444292507068965389005266037532447077059234575881660474022147883238605869625948034868437061230569877228930602798764658055837792766911625598990694586285941624747808670203458335070647988191194812624309618590711677937261279411915057269642629509224822081415178228852114962454563510962741803619777643157874426560823989343608518392771422074239801003631983035261477784477261367391370313230207856803309325143904907483854670872704230027825177621742632646432809360769583360269819760039822365462292544084960990562057404313097055116745027342046524170285726804353477091814925247471536722453720718116206271658686491152722758239516504238829565522301452932800752936461297152900867906640265078260746466428433224107078724215389801036840874344769406922914790742433849989837386823981558692626194160087174388491534250401336125027221780270985007833071886905176120665016430963352555622417905933329506245279044783935654935587562213483310885808134697274775723939350961786072126283238168399807919900271770688936725187112133319278658943320726997411272495734331902924776520922885183700925642067581700997497501485807123919328100932299107595458362998502681708275912235324300702755834631861307057901309317929821946662336089322213234386387182545526744977684741584424220048748758655323410964733918872158588071708445270448264377551125012504931245125197510361308823452886722664973574263270331281457015636845059983286386822850308415298163329009446205927046848803084366643607189796561962631036577742062173461888855762227379959949032533462305386151377272132246816583728911293064006809708653725406913155724926355356061510825387214422374639381790182882814907956295485084540185283763534678727329250247296801970054043313275118632066734189189077611761756698154911320626381340328667189093106084152716886599251180214221799036101155724893067502792239739506568936719155028080366814511319222604314468764775060735434294486158832173444125922424788588918961036041715210420910694763029002648514108019382311440477457516458286011351992346153179278596300830014534907389346829251651628409507250109338656720528357370178719926320734091275653249325491350883567012222653593826552652961743279022426983960409552487858415912086211588258334225052542875724918637925979716205798546365482903550483504626362298060602826420707451723943629964990045747896766383422332997235600611898931853279200760517715761037808588689671489324060176677796064514843570602520797786508001638800974997411150478420552212233924063582108803519228289965500747661692844388195260932780975480674581936517639979487548962802390044630739872243312409105322148564888475734199752203280173833853492064791623593497848257699664801470918528476275592865488974403724360573904406450566438809720671713954494180332183754860312910333411146117403431904853605243948391875585934826618928715091920507803092587259720852738515842713916228269836829277207218320346987552154876836884155856533079781520184721380155895926694422599292409818283121989834441150054056555501891288660045107264464886498711280863286434326211881572793328848080643934838532045893689895666643973182691371816964442719996235091263361116257297328754490360568704956594473651130147265463680380457238986107423092025679056097176138554554096825358478518926984645317123016354808133745401257614711029560139035262963077533933443000601121699924277095066003460756410508088104809249663471489118237314402638368428637486086700482485439369001270680668450951403824481667539656940163749175651217740709160425773020625121980140059841637584513159203364348820404142292486955669508310218722938838136919052878914526850478409087275896131170643927858249262566338273857693723649694255285217231058236334296800932932840522213420426258251964387325995026671863465879491311382859380881085734507311500764350205204213883027429792446222935006096435914462275230594848716478834144363232529237000106940549732126894867912023657358697818909232246383876712805454453256211565008775157595161769700273450503263641441095747976934463470371221236863907929545872740536054004996007157024539155206958663458697537240332223961586347088968243392262124354727718431308310597993170241535629025233827666507471553040684427113408614440219951854819533611226862569934419315053101859510577664647855760363535801126054664591235170794019320562426361550416464781242975012350352318110054887335237397463695679921469443737809039622705978416126649022461938917927201428443305985198951808633147705759537161075061501707146115554847730000119140591454951295924092367110800479081912534987372155056964025375673122710295279243770518502400797188178902620220387152220804032264604929234324768665663203854865998055981556786952110605456747446624966126804718995662097509246823421943480600803651889029197911383985387031823502849137644142266099886487403723924029958780958035229848837499721316808703340593944226223392675080358779112641639725885016403771567030143190436647878655062300009684340528911867739767940725478641535755738618153382610248911932821433876768153842709804170382068863333946691784383028518359501079970915596350943001163225275154290928852613927003742214789404255301462233208396066341261865364575303256379275153872684776194540137944075715864075424104859073531084049717358414767622809105754884849059883683645163197716868544517288960888234757065124230698122045673117040105131062060836873428500917099164209421817497398275914543950631330648131261358424765351611853578602227326406701064976050617142318192550112978680518660749015889567584634369915414444799159755907875432025115828511317693543728209633833911893734054515532419892610966133622163421404960381648742806596893373603088007164037192229259189875808447488294980678678134068457839445120957645412018752817354331574844662670211453389797724521296082481909631370668901526328345019257716701935035330711144676080602143675111045314883103577910850654265206156211367855569687152052354200752536830380133126105610488036709271325488900741684005194131341052420158925816353356305254387292135553877285427280684360253060775422232034325709061612519366096155549805632822052990259029018858182291548479515718895655197151642596069644564623294068942312260835505102224298005965660750466298446867842238954431560200441503625415321903292204508566539011262724489519937589797997645553512788197213555604077919942537887952780910800883665799599397023256954655033316570178699789393608521385332694761505091788399390228851792810336532307934272502786723525274739435735740745087298070973796684131438497026037140737512005741190592771548334589667949453567274095188953982013930954292057380878795999425676212860650864519779453451174970540079979475777057412070670140623933536087676994868351268724847771123890151506758482309195413805693170186951689083507328081120211626296551871330270905534639471230861264562400221306311118684401353236819053980213505332889187860613674589090919508913913100842805163981427922221704703348746194457972420208945414711110661986835222803087900730908008786704172036329794552155622082794463672347495658860547762674324750763805624686276047306462559642223096407586914583679098551611751901091342899713818224299188099338460973641095348188301130929444567619164896488136129924173071701294129200461151665000362927875335718792950802399697676882626272617710657469182321296109928159599994316773472036062570528150138486504470669370835089003719105372066417390139657379478651766001568099854200855818679635668011015355507023702419219576063223740797703353619831587446627218156960038593191151916115282496645003887160851920054179856287228963618879402443318142006569585278137631792106451434865770889357547121537883176925115281305602129010475957265381968819768897594103845539075323992741665381394238874881261428761131088162222972500943209112441736494795097309415427102448339322295430209749566735707669642881100924145086114992778215146550603747911630902485641855703205321417485281791390080990311644941029418136676953097277645039244928101282913581719218476044153468217404797711021150439938009428219883523642605782722600186220470741854482673802175384002027411739617132141406865288462468946983886565007758217883328093805410316100215634273937709025066616792519519322720274334693040318590558168467807913071773277240334009641936126413097500435825585229204640770088664923614234112220885591957373924923844844169087170092297452296544110745107157431321117754418634280441115937542650643297133715344810271184935135685620435780745203638559273410481864220224264574230466735486836058094672123326675302691203407484954525907698322164599073428663874663659505210292771494512332469933620756762610576830929725811884397986438664320232457848389115797703163719500619995910428346540636042490134694615846588383478877552266809896260752057851799094208581407245655191392797300520650520581813352113505346922944634499079598982197727475978024048136079438663046332293047250047681882441252649523725688152202769364844064083554230343266669842019590441097379795697584989015476759986226486423406820023748087141304960928064000355058060708227567659518481960619773415716083584320161251969923121811624885313865108008429361916432202661259310752711668558890509872917875116504271448657774243171565698051875005934633753160703568517224274150154449944004153547673841653170059824474668994769585400468867991370305538107390737716332704385433721742492224350035100209524601450798855856725855069664338974950018607809129821383921981817290025623532992550837227365452399224773285501530145474284137153351454701668972941329479078655916265776494344352999323942485484078060026898230521028441917492132568266492762262593101166073571956395625474014852011514356387143569092402684858992231811487341466632992882112243507508627155069321832547925768796209611413206736963107681845070436438167544236222479351190899192036130580264320000930852561979496621540929287225729443848611294746158696022586527063822219800919618951638088236597591996894145386075177446316092358585398313957380824882079298794604454277666764149246385875814013809030479749042277303995185012441080003554100364809613338716975097543805414679284111939322827316894944741855833068333078537363752589282719422438648194468469364820214042912679913542475360738170277586334709030515856123913499981500840991510069247864403135798593920490049255667143452994912643333209899602068797524974354364957246085105354906354902885111536115392639869288514818159839642301495747169347311324705026511511550763869611665611858814168418381881290528759314775815163881555635340180564297402508971307936884674132228467070908305648724889030348012095870948801754938471950551520211963619542054438872603774113398490689826929316267057316603749195788598668968121013457176710057340152661512211885218184569027276305060515851122880905796039020677242420084311914913269156859220931519652419348024890422613482560191371709910616629929307053245609329260625231499687650391113515784174055903085856119917136792242106712733099698799410409933740401289797270664807873331458126858483586393896260070534302742162741753850818970559821783770485494341147002023842434798152601646905801891762332221348645914105230542000513934353476719765925796615018834363292894295096881718821815483547746306987528159119634132484338520706135552865558921519914713036199698966553602347377956531089141568155821718278938969177774848807607792512252864360391110605614716579744739386350244864404392801314138084533484661061108507741087024321708201803564695231246384063947635770454561414979167773288713912657980922303106458533073064953110941735502974173474497570310496946207804523225856461933288225504309403757373133569431446241166962944872408595307677543443297082369668092287103129493632145323414149958266939993435362966444378813522569301545169274136110143164780524749579365394586967440597830223215278189668130565521795766480554035701981950032970781588349231630947691289756574557231623583270758418558653710226547275727967769766685199949545436921220088628603692348177744384023617692355125555198726503961745495330799309955111171735526179151552508152349939510183963953591143359894902784223238137107721055317088169937848056914101921703382247638626206362991730399645779200780265330089561631998545749269070325452909615506997653471403471748293156611915611111276353678895556051936003061328635037583432331280299941288970408298196102074254249101784955990839713235984704708837510727681859144780933724573409159753806001486500015669430555680440620571937449715758304794867215493291287438688489720180108794366039164772006134551037339355681766894852745237226685710665602775653077117806108754436731859429023485986972306940984166823915895171241379993440179284364335889772906348739309878829510198985542852170671633598612601047669000172265690315096695219702485893132356432407343432090104337013258453055116000504318736685293955753874029219711453452854601753298765199499184970880137614188857189029928316801810190162725708747227604043658578159777868023823821379888201307378792800697336325775387854615856975152485808128765497445456519890037034458677869641012436930797382237662012457256737001713173327837061618478824411343649291361368346516167181745878853717570462044615859539724482490357371762742260883046929665230843772631172046149816725611639916751529110799963599199174913546546297774050811217336649983333481045997966496605264032382940735983813772124811683200472273267767753397369796752843058524950706800037096156523722980973509280507728535359549661982423363434616673238529013710114345662576420532360500245199937732323185884332983968355352294525905737898005267008449126639466511115946830492949473851104300475785520737780818649527482001446360684535427426748711341900837766885915714422263900506100918401823199043066209866410738292201908406835855826798676298002719386582936639607050165454894172583101504138406958012712508546270756871082375078858171357984927522649179985949622250654754840577109067923748580244840285733429989243546357574660438848166501264173700862192650400111203870251957497094051350823520115499932729762470883850895361532005296649655038974902856062132518853925770926607514821326889890587195826184934041622013636405749257796967641306535591973836926275838908679232936854653879377544862312206737672700998111043278196915943576782123100296726379005702786863408000786582513149838363340123850793123046404536697564150062670756809678223285411994775254182672132392610779976525894268921573870253280710641774731331126932637452199027885451327197945225685465674901284109477449228614647734853121789941535466991941310105328718342833629335248655228309754780340950135996932016225184595753045265402383786549644228503866898455311251799155350375185768715071728648392724000977316729978731444064345944785224137300128459728056437296947910108296637857934077280655169575590578071646195917109753316792884100569337118580940607954088460538390410084255765255025578118617907707453702322652708521099143836973552394138094067811777315154084955561400698079620573817379722712488822758650389731948381967664255412113810309813034317049497304713763162207713677366688120694979713065214567475688321757429554543802543712209485442453881205450452218668295345313329487888309768136452359945219538771954650185471912043526504359339761115048933537807504083032283446497486159434924310127789922528563597563728854463936733925389671662660256408816822835779100736813617102850955018857096061454013877158951663452460373233978081026805706256487364716116595067011372369318530651293839710499092679830690649871822390876194231497232553743081282552175376706125536082085555957033100797218762167605992532251915026956012700805633623496298673324786556487735940085682638940252057332733205515627337681438832689706892045887950215273812186296087931640324693008746437170808343336788097862306032378921715346359823905923072058446315018524173916430778439754894404077015474990339027510930199936089997274457316627494268722197543435564469686079558291473564612380656052291874967538470191485347178349190993600990464433364909136533001993419317540112011962440339659280285901715538242750613082338870542871621790606464395218147017882893777141575335350015348474548970933539172998933856012750347047165300769931467459378752455985382252330924826909977882931585014466042542573982000892666712040687665464538587466348447482767567589955036849688047681780520165563310055742868998547327011266571530157535577090985296368807864640215753463619433178337232888067216602395033152863857466808338107575807376938876236240046772013626611387695696341535241355858017814422537969507068855776731852024214663368504116364186920008702450435457427609414609477334604544475481829585738099773206168793498078193008891127234945739000147323608333843090499019197776089305207948913407004284075620469051596425339925087726417135877344270145339617801658228661934004358046505515862521779143497457211533282616148042147728070669152266560963098561264091978023693300919750650752780323696124831558080730513359122349878238237319674642228279960316015902823583900591360236551182688373117240159091204089089921902288888194638617895743796038933794359801296549250493268409072299533195764586129135822527344143696644771129668863209127214984493159254845844548740933853039800609112905139271466337449167004046566067319084963141462880065582253335929254388770279550954568688943997505862260281794851395257828383638477846265337799443692792913201318000629486577720815149344020313293761288912576796284591713435389113051729939426045696856635327069503599248384027495328783002217680377182158441947437110707895222499459666845907247560219310302667122382287565930403966801747399705566286006618558221769988833232816910780692010837430189355746909973270357128511404498804213650620801252905303181882253567859266527095927945600692357904165674514191365058743524334380265691487351596261680258424720638602361603037652386270716923808626174911174955482358359239893120680139622803883560544989987102677005246667584825549419525692321712152473126352523216934959130795324843201954598943329061682873309150780402608055013372252174028850256939559800663456060745628465783360205462810538233066921752948041038483546447097890099015839571033700174908259171910494115510767999267893354164754882800467213560793423736724935790621030588928879812716307883842083923111809429385773528657254325177293504326098740868082394881124205803210412239514186288369431494446238620914825013945054836952181784967350332849545957732887687735734138019871087722430046906448071106216224257425581650698072858717933941950715921323531316079476403242684196086365980999074373167184283168731911171828408713073286264811452198233176825471775803382015701937040924508259201565951002167115456289350141692645289605210521867102269828933777558962110100139980172463311905539352883453963217915072603209915038961087530150774645246333373413163671231727627711707523140135653824588576492625226530855442440002274445073719775783269332618497139645435487590338346098916613090991011300287925634955493183957138380949879000285983563037058211013678799344297190750812641106765292895253673122388156091791572756282070026823320437869234366201542295098790086907176164123765762213147950457209867915708146818562872154664712171800910651152092570525851732820348258891979359610900860110613915617719860715579105735590504399507624159244262126900406352614829855973680692754236966955125797103963354064697756619893958870763716110489598184543462697163647783190602480580220191315385376313529322223495852411276701688503766512471249033654262123816413095518353101900885769418504911480011929812244162649162761852376247679181345755956573554042061137135900377629954802687568423612105179028937573497637775394863944716251012042961959572218830215395711272867775288515211593379785152294112950602987355313377226296981143383098096468851979430755621583206324356593658794168700809228606880965368626867320980452400747262199644863263189591289865863057368146271822046603877426823522156958384438740070435760073498276269466452617560828863492523860933935881588536731162504470908124591216163444257978315803343622046771425639340182466977730030252803109733947843109830015582629216102534848764991555813241573120585242794769554378501797705291160190372597225285736043034313836129275285403408885490873282145700753880388391368466242092692464481199011092407081788729207302007307116289106301389958887197310398368658700885281921359904791506458485819410777770650403119270843121789824571711493400701173545430618907037970337666486890487932891722747439813048052044681214473940554068791756902451050675189372584459813221763950769957552254751953720675520650311468842884832007268891062116032067087378499192179734036145508778035744310455556970017302553759491221250382102832380251699402712696119655079263432173900049898812916743651303399777884242974771349975717364158711973765354341314170730548161609300428987309933141872626887680761434966267401737043059228679200468430404094109767879635990074097504314897501434492520841856285441524265730828712539126733254142884209352275851644463578987253952939492318611476534103283858236398084115282686026893656991512392315775901210301685495917138433763202720064821265681999110635971138108499283459813618865632096496670902835599271879049780339751601576615599549853227309508216167239531190035743869041200278629440364276958071919860522122158209573267963204403295669526590306753855552589317593847421901190635762651706495404633678196627973362844255886795138375575836811876611057996317634069210468597809193491853185835787791063512004155813921641130711609785784904602708730044734491933565616981104889999881542184522656771457971953488735642097400835410453911301594992067731015943852162145180888516818820674846017031489691268920330055359819355077675472682383693399933700820157099190750085567683021826401781839538593301572351411701521234766530748264546301696646979355863399511933098035306418184354927604123671266971562107435017419535289853665463428965171462512941016528467782941542121632617783953543424009838557260421639715585543347291329425293859865112706775759601136313879884222591239115851112410046138713719740097777650024566672797792785238143701721673290739210289089191326824562713692662266180456106191884205537770045127802417109489359145210520897693248588021896508402356298411124802784273376647677916675417373358477621989308509254748281612431745995425192959474192055965661437671626613480708582217762293548427980541496644493962827899637832282152239037699738705962542927793684660279508500740534929930179620946938345038863818607960111549208994412856945924605166357162924097051143194462475878393382402793578651676524191028142839284549342249618177000077402094816159272573959572004486692474696257738134500296279346945927013411504292985497770575513013267873175753807741767182399666701499602785272786004630467855659154891087179226396043398662996417998167103038496615629419327753494397004589123314980638254104994329761464492142970308501314500168420017134572010814370928649377592310232466996796445815326230568781688528820867633810773712342301457555319439492788248175318647716118500369354715984492125454053736686901998500878251130297201848393694454063695297743638274736491431010150750979230590380910244449697176621193188870791359767519746633214957718172813081688202475800860608127586077611577442170324598481665401759125524833320703321468749290555627871571682946711122201923136461257897735701010777898306824804515093435367879688068386375355953661888124226405911777073709413586052882767729209746571902218042965741586813715267098173994912543096663961162711641098546686167826600846268317318372569943120693077815637265908986727633389585359678374092618840586065791313580939102730658899480338901626250664917889049088104295250484632829435739885330789746297826838215689091791941750646533766228403189158003758079462219454750987584061483654437899434284622554837953816379754042341610024708210414590469015924118464925529620928046392858463323796458782019857771678302272391492658521960702038327679901094266074228104571167627787555382907503794358307602184840578385741655168447665786604041759040318869279700364231377301406732711826358208030551152492427733917442396406515849878810510055885043156747063195050564858637821560393905601672570455771681863297353634422050333419074695570749536783756002786278136897885616292207635676620153094967364958812330330968241657651466885193039532685894728214748856835240014573645863852314455293534324890729298468469615143022096638513887790419876801428042823441535379474400811788617688486548107890966334890427561762993457280401508744971485364528942354157015136801058935601136654097696623739536625524721159365818166640640280290506513828280422777217659631975176812269737592365618141470448496457143634859051502920569131694458604063301870135717184926148080303045469558763284672090548259061441717301042940507612920491766016898310875078597736541936028652459346933430294347080087803142147646653559580149639063676038168989537873167802399295604417002334008246278763658392541714497639093722190825861590758284179869835037782791256825278013466286689046059563950474989909089535305785682130245041771841664366541386862812396043231426319677879281694675772771683556906552566473587627074388790095725126381388466477624312446040728359562083913837238312065883446244198080484714054684970741407300716906406030440429253337364177565639902879893488160407968973361916246924206002942228324766336652302763027413116317911187527633206245369375042707584252266012575608105760590004898817919379327334317787597119366481933253003441200462199546823432313535937359070130990274725806096592367567379642479043804353199643753134001285098914128379551114057835936067784856770410062891204915486958718527527562728236966450799895305505629596601427247790930379754793395788904350485003408702918679485073842511955052961314751879501682860088912143810227835192338309109023599253741238041691794119912176172155612428812664593119366649174671784453054633512384734071577164041190690883505964465882891476005858924989115743569136134144665370007428506612719450054485011707250633748092900198403846681753872786394918086874615954570469712577015587633507143636505861252983288455045069999659372067106168714614816633365803754852668986807781552767614396147939708652550497200475959554294683267173337600842213892958363149085113419384822452960064549722997494364083299442552135700831013152273629145549867191487307110856149003692410356214862993532745804075934929012671860314709659965752360901831487017860363539443141537642290422602081226168200761735494870865792647988198780263397727075902976549641914663208670699962488398256151948120608301926568697974070006060180484773226785134816472432541345919683506193592623628466184820120740187893442570766362006750500776747409730047976283773659824016930372682051819501589915334094284586288846048196334162649589402481072825570066561497619483372151087986541737368172940010703807920863958453422700483850688832200871046511745177992007425948645370297365059435947989915506887548008079144362689744729691836396055710577850571872925629602513473988918951982450369365374840758308335381721663654222423694974937301324112448088813994583740938870066647834402478640594112042000455844893570781699448432677721383580739998176697438029776665666721130672042028116787733861837320131914432386661441876131163733071165130615355892792363171102158684522458805961934729479000810931715648717696723550476936236840194542462155647565135512329167437260443690461613844253156979424301191474497828833954804152047507159747657017259654885098883907524546941846120486998862854130822198630517729528252142975519960495535094036662289874744063745488069816347285488646309618092329151377074295497168856750597064580733615290260103558952763360645652545790718039646978366747850097730486864513012855737351806068251654315384574321893067834545601048288981523768112278285797071228628397886625673647284679115419019508459710842104468721590983136415826818006362726961056256896085045608652272347732606411334820034191440533645602283597952880894962151442324086083238512446258041228725834508320649327008246747142302908221581653792268252215484800106687315969608683982725615908819098774154497862984038512258509827069510267884585346012201842156320844388413714901223143247396232294369947888095114242019659669266358162348398119438499049031748994704747003308500863366588020740620186401195395318697245144891511253359517150334424444355786278937431114307754095647567719963302642281895483340931331052116467519730796032412572590096907499869858188418729675100637354097685764679248677159696291203447190189149036494939700969854657616365057623167464092416618240919596530120831107548699488028691133744213428279254400150823797794391661825445276704016955284727861616389816105326303921780115504192059114525081198260406342823938836592880996851496323730582964254590693211457805976754385825305082511484394732214929342995978979372842408848359624568598462436253320228892895733058770540194128039859096666430363267152023524279167494836739586889878636243372716673898752239174745424740882264107727055694938028959379715658723601561213778991892610270397423859230755062125678044317207426498494317370838808644580625506594243631263102644037728077569241357538417994677084905614815624418330047845892794895023570859959007697856864199585041730562103038643232428636269828550878181670817372440363196002846597290224767986887834819089368756709260145072840809832474741917149347593305816715949898961928907210801135140451885873441618284519485128107789515418681728710582319198844396264416527559226503815955321868436862897258941860939731036699232138068314590605201801198000653436460357723807390973162877596539884382218178102979485778166241409764533340923234079494005194233084923453494971807840862038768584738363798463055949898027176180356498381421201868041402470225403450286953437565833594015457849488061025189092697314710920966616672493146142520292829991908712235058213214082079959367184182676492254268839072080362901856125034263708298512269667041057299469980515358211134737395584339086688854488948230121931131263147040942274770531499216500402303602297974276488254864123750445609072502049845355214649524765230263339974765676072050826748477977792045183018982576580400384298733272830008914749901280561251638075843856189969701241617889991099775932738989595946357902528969943830677913273784374092174863674310377615881476431066142237679623305115623174798048277283210796014773464838347163344170751504211889820806564792129071042214480109541655038944815647373351831816679285024852944879635066645489772057766522194638931999813412798429600172461720042764539327500438753815028693895602779500334703944549894113152147095694266617881536936010472499141400535955492422522257178560495684929575937826956479673009900995994342772213931470645016431589446366898895531111330490940749646682669518691316438279080988228207392942636014166245123693260348315135872373618059486084232963142770665517556516439520909173113680061013048348552719038583070133488636146094311140028083455159262003785974946576671392823520657723162185496437164713046706131608641028486198765423046168366238032971411104306712474183724048635619866011808085719817162772989989165290607245987726189629073723768097630581096669841259493225777176151163694367166240629121943619475290901833021120399233846659864251734036299974969062605363928076202047222445327527882425752041709351513518872862797457634473240454385127950387429308478650461778041103528516564931538191483967315169132508950639764668561400105699389188182306605019800460020767827063098132371964239084926625410763409219342354908799518513005764191239613304375859533075445550118518646739088921709675319870870270718877924047929537076101876305215174690916288263905379014639805509384597830617890453273208126968645721899849309574582737970540790434557535090881532606497429757159368020485386502494151637793268326977581654097526379886225333585446936688742005356100790215746284295616797521692037127461809910605558345565454643314584585795574055655723304747867659464735639617859792666502744824938321318317588619658683075718594647271711937699665501156847658336141399665132689258832433897168946805180829526158041623572357179884205441993473905811023902126116642742258839747267903743967229363157275320803802225134753752910188917534899068134111385119887503162833411288807224936320522184694250013037404093129629978503005201556746030279488544978064691721337051561190866032922601935504653831352643795707632394125425098792189480154730099754829365390245822394512646008207345163834963433546261102255260618321625607039957467601812878723794077820609970403020345085354202493484565699401248178630120824848471459875820415781328105667163054764095423438002455228350325239246363059573863331321324699130918521360238816907662833203054014615833718969512939146280264920460215032000617258373608813065641573602623524928198491647503596964004119985819630175335459365269963149104365430716644918480849636392776841629494601130045461168761042962058359182820199644124236589157738887005479589533750734648911817565331500773047163896387383991306689432162838291906491998252412065916452954564075523914933710917272195294505488842389278944052985574456153562541517392826473201315758640474613172379799093190368498187125496948180665542265500552773888186273535205387483612829412634646741368759532702894246310906464211551776247320084575502299916181398352260727790897609092917048541124858817704135821263295133561399546218060875101181329859237416827914367552459483761697062677142100537327909984698292698047646034750456155535728279709900636076309328109371464429359886198387989901084843082813541299497508838134408576691751128124361987564348949319559346043768220345985605449295166929140981660114313522269122574204782817011934279999296763899966674003168327636404530504135681990695362015420548363426844159722169270722085340197144843257179390035650047738381832300950866780507934271985072201130483249542965491022886345423966213535833565867544700633370166400236121883768293733746464152388747545673000027882649015043034550017928704163933930983519937940817238903110510353839893003155521734246329946271202591253709435861782809466786872952086106395610806553931178601975900530037605054207555728611741283060649074466877761785902638817382874276683983018473846939167394952896485054336173435502984500157784509587155415506035657994643333667777272026924321216631494948783520355411314738663386304313930969086843970074283934000732085810458554491387091884740845865025336995662469607788447476578826384861079411373452939790282270394696869563291971113087656371676700945770615214827751609370101991323910129132149904142323276916236997828685074106159060664367783017366784526975268829442437562172611223668447087790077243015960946555604860087171925074419423488593291134519668999853595569923206704226233639008728655558391053980841558410914320834853460649904241673059316718787454410215971105303864364843155142086857417464932790300663511935116128904517139695789171378325868428321792510800557304393438758456447279400716280879408345129726852817459659571725903224246376539775272155352511568271045688129391013196326758245020370903191065479930009677502768155659104197437350533031264233361527528070991839272774834049609571745050148468127818818774343617789656901978971411790319280445989324468340604445233105534715039804998676579466019237323713799282345652941876910662219967917165567740654519184306575448324415535564713710540891134362313338505720464886562704081446997292440910575522139125041634876346250273249133623295343732819769882201622692393477914044440206760685957174321091478385603032788524375720659999497090802443612492103764775086532512685737140652073350786428781761604701791822257932785211109341822628656311288804984207495048353406505198907724947320805049323252045831142860517741077871005297933156164716335813626090291621921771292210300911890925955752406080771500433254070745820904026587502084974056580702173216830719617237871516788383142491264500771137223833100642894535399461561273565984359122445199760677985134196037052957685146303374482115418603586726344360155652971482964307569423549902996157342377632658614971656491512612151958990071222498829001461214820542328451681713315039798610828873551977443796789096130209163184059259674841898712122512825689874167542495536833682266172153266500569149708490796727559610559164015725680989049653579764422196761484964686381309699924189683570116187013325148914622902032608247850092116167649017096961765922884843201018330425448428241755562125290139436942432029717518638538952537673450209432115541928788131624535577544680426497776411384118020935126250129239065540883403165482014783961611688844331826142326892538208934363870915576714352570728800818817248692630551857027823952427511498532099710476787644245082798500740700684476947685079866461412652627210697758131982045777283575079621752978236572542189902984257006061425180379946234477154530757773198157187989553667690567562029119193041773610436676241553080237590174559077722023502058705478171349606967818900446413823218053899639937175112003951776917794564575569899316071185516610320514773651281058547339183375473701284676532978356754434879428895003060659999206997359320139339987066558319838538639008567305537918238733698234466754795122516638648336962293126941051613051518058477098644824229516801309123082350147729746785284861444439624602326119649093414169761001534948904755189952621316258986898299389073438790738452480043132989337216997480422323581191383833211984588147558386956904727337772629973659399152875604704515583077156282650276137852897438718715757416481202099673968086541657092834813333577365568159735773186066630916864666357738236544461428885616182359757745651168272556585215951054479952972470006162397642439095979322209633763443034083597593822717343321101376311720063973081972771905215644290158573648641640737808963339461823932387917301789066438417612625976030733968067053266756932620467117550024868608557398125746383557601322823127633687223599985305768587192644738757360002143779429114107046667210209417374673358840128808311965114092698129541258024527186702020231454547466869886131450507404308376127225908413521194537024858783929293968312915507033551657288530337452832521870975850697526699605685020831400514397472091989379612341773005068154174327956758776541562456877932226036586964305384029503486889616180865151838137722617941908829243869238059139389874614210845538942126567273836420170601172143737872149538430128943269039868257596676460664704249938530915700258636329328765417774922324892413218813395564597826153907172814882393554663353847782823999561701822296830116710003640733139647854378248184198235957507340989595092082416662380384139168636117540929928496770870201266017397574638226108404705513293637147464064066538790103613023296940105923746501203233249591191111790638032647036960367187308176957045236549845176182512810622293316625022883279319109527654912484378436573750858088411605171734590922386305715323724678191008810730433359888631312284049365282581428387878245912604103690771295074956985463603828028127144378560724605403756304205542752686205769177181270928007270465147078047730922514776522135717469817009301790691246106914118553656115064719241170613561765744986739273375545073297443853146464901283411524639046106443163246267310339521628567629791325060530940123451725735277814961403903146268926190096165275794961676856951191441909618374995593714476857836640002786672126931864096762677640610894712530098468007568099492749249051645654964442369716313025572842387688265163347978904658733960251426191637067832530314041646154414054592225853412787145681619771381950179134211652661840944873591251793526398246191412979940931633380848616666819909939668312734773262801992576562646264270103808845692505063573797134077960706948651984043154435059572273263500234077961043779235976932854585328871186268530008932014061141506697934241844648951318917308790649938579710801992531519922842445768462290573717171562389470630785519477864003443105132890550012750390146730360760513963387269792359992934356011631287217045381565486474529834871099174943609050148294687763558365268633734483448804137586673143127955353846330683258891328904656719245590453375957870217688892102951801225088288377025547991476045047489662031784965956627346871765112397656972755767217961704319305950461194971761904050553339019404193866160980830293656288854817369036013620421376870364312616990314914243850921742030913520425143415058249921343803390751566599466406756317726497849277902427875723986667495418479650133457992712433602617269582675568825636124717827828804475939525389002289790142006714565619716049261961406938134959095855543209075044105799750291299585440008402977687840260188916346464616693948890047233484764472044591227800228560841061123870905730282757832776324276036765482984987384728406804783587891212268945472992944263738460259032936526975346875224560779304200221965593202904258120280862224182044325038762312992348889248996298968016416741249064797171844852750739199922972479202575561811549781172096214203574603158616579593681346338969148973840656468997040872753481122683000105038690347012542026385106594532356962749615069410710811681020728660862211197666345992752533775921967478794413321640798977693313140791738761058877607722386864068819646196061339676569656123414098645179307313465840717979738015225704149660556414496724474882465928297613681151856700506215388095100314021841631364145977252459185685627829258414234670705015411285791649766791947859982386574441678590683017245937613490675858538122508392192823436391107636941348052328442524493938162803385611760907293739367947993273141946568574768545921670323555061279923407050249538273597924857832343699629524046065130945053225030855549958880120270104594752994370744383128331631736727708586177727950066792825030434109846094594269452650140138190453147974639555625030414779162436305021485985438708605828784018677620559821008941638050210640670412461753234511248433797530440939068730486539608132208210580609682820294371812154417206070515654466415058207734176164928040237269243523354310731745387769582615260721598312016466301714901582730746017412453131841729102737960445400531098192685843533560728616980228650242771949153624628147463459284436446251599859106527986153002534288436577041262671744481026663597932681550001590636368306001040105074239367171439275912560354033412777653868705737783530632118002940576375889406288220440476041272499266156456740214972146667461830119713441930191671110625240518894687653276291937412727325167069257461411343033678946825715064137663682523358075960477705654310982909381709184466824801749577496621870021680430921039691418697034652285201504296373653628941455976447699281628464869518337330542512576354135895660209010421451170961569845976511261752186600131013668155044417684869006432871333607317389379213407613696614109968882575140684373640868967936059670350467929863982661036398854269810082223793381284515973253389125875796376482702981705054783134044122410535835462131535615325457165941591233126219741958747443726052241994649616271809203659504198038389004830858471356316847874890804247057893080014259551427730982617722982750966859720453483344388773868848851638260985522889693917051577557823916106666403059513747699611761074750661446586653517536713067158754456564888885148526022983887296757120709907207343811343164739932310335608800544278416822943939489722604606404012724154752267271282697393546514941305929283272062145833017156737030799306557463061829651067661945325155236997227146828755856087064856180925331257189689467732584222544629491557071445750582624630595378933336724960578445601901998675610533072406039372675265377467132029898531983389248932991643267923096951562541726058185054434004796091686631686541412726522899089076719023756882665087210215320322221685914900740568048606305172418286174023248155653171144367089261210612973719138769656526801711329190220539766897377567576127309962961471678020542664725920469905049314784850165042084683111279777742676917520592617507905904573782786758510509315311447906812790442521216799695799352329750737181233024992199174142305297945969870818559559977677037336930725776331618125098133776804364266024671364971151234626764052728641059997655421302761570389420659221290362181781068472551398328934039971023268131057375503815428415782296667927236113441629471042937754936362622362003568585584023804194247706580060921104503669762257736169192031456741922437023767692862672421008536415255623394230634132788735435429887811009434561373220399734022103821785897525551561394445302787771264885286536316043600835664661426051658335114794595606479154904875149541784747665926497820275951823362820813656096949650717837307539209725486584018950015845516658326035736675784548316217423649047580297157672837383421849050628897999270302294900012506078256032876993051750156673140278588289717992735124925757210812319129224775790646564176772415194302868751818264367114160421894630281942052962650844048146245549358126759832962321228111750244376094544298888661566972094438026055303405780784154765939203788950720319232975144288972704652180244545176192449976990443545486966141721911260564328743703699710882277803809175190679263774340430652480387212485652253293678547877989192625736732693025604468064653417625755561746055143978164846622032397888787638693452956048052522750524814924147565436828402372876940703843501680252377268878796575426805926780064693218691938516249216650797176047719757071999465384221478042365339056425933955944434840610993720592545883120479799280326015852289495766741269074059629860920717044191981555433856436028108562372443697219328310074629228266518234674101102820989079434518974154085539925333519238746405038130384484882926095589090202962166354523989951653687423125245588284010259801786997520178727768287136463130841916308613175934423911850137245352939063715014049040397326913390698385061115812765743690407918487776848024045383915785892127138270904372548922789746547041876816463722832060794673883750880117833004011465330367075149887232388875596626586024554653757827492772086205245919064569392527641496119712859237939637683258715462315304386712192426658329499498609606086158572506954171147834968491330684350008007888244110067610441968094448018434427276090814002369823740810745188251997815727885259768989058165546019679559120931469863189203627411626794623701503414193372177143214486254867280361969134786938783769993936413990234285987967053554006207006853347279788110944546463459007063895782598857629927741382859321466662182260980541483809885020912527902543581024493402351151029993463766210566387658784213709076753195019411393492442648478991734524642166456716458731410236580657813859799362627247682326786532837304747784576116918042252038301135503341022460040964454176659899245121981411127567216690863722788156398882493939583578930814594547399563517021949756465235575230231564267653661148806656310634177184606249936512199516453386891184171307520451715796585446199270038577726813287731760300318128535650696270887216122210643740218517356559816003631601343230709350065165631136831139137367356752910346133863679488055636879251534205894620366848327341353657032718880090937983892653593798488891320742773509635062159251457072058079663966605759043210137802361802918392459099127002941995640096588134857801812956345338035351315226891418853672453230409719188172175339744400700361221552868890271630080165078106121232611130793540929393466321557221054433754956423296072810077177961746023096946485280555680283823125839564361639889675526052028842906115724736335854490758431937903859174696970335343347007390225801276552234784972824889016169709167998811859671712739814708716908440330177473654259275265112327195034553649589230940461065253455297139951085581260957461434208757032296451722128365749576071434761623324849629671621246361683864192349523033557789300468746863963133579614176565890255663500424760950489223224762847263657839336215387575126289324548373075211830766590863753385047173332178089227180632080943126064697142070810227115303741119970517513868199490427865369494432651556239979669905200576379528272872095387820884234377798177433591863480367745054586230940948567126155279462060648175299024923929802332278158045131959723596900473849834477131807344641594074425037460904998556966110399581378471154872241476203975407222395855172504964782027611135973078681059258204852367026954810173269221610910111568421634518754568813918401105057147118740623679023193118651043876400223924208363933925452398246528064723617908297307422612429176043484113206711225790760133055058257432119641570306094794421843668436601150338964711670216835075871820980348889035275814060559978304659003114618338671325848132390572641506787793675906798452932006294080177737612522546727558928685672645012529073396160846653949465668415982037263661166364257902547994283492844958005273717045333690041961336949807102428840261789158408392658210310754581255512065647804611064195546498685803782199789139059194001841061930298605999488904052998512019967944763562142278952552337540225107360782165807401726549751589709802296832153351592839702340398495672596620019157520845293559674322661293976014440260937908388307964010171235130139034309439921209725341286719401716606148659878189514822836263182548167186578539600149795215163192633847658839006195772576132217642275526559116283603734225396469831235549332080559648746790189310722276648203547415561021053956572937018297233098191926000721268794921360067351341829134678187449724525840845719302021961605620660881357752164176121835302735956254386805134410325983776097251236853588797676016902530080772734039835763104095835196281221325794854918189963633688751266608281071560091339119620725581562840698978486847363224821875406555380029057614124461085922955650745547612732960546393486084325720243517654185183665150074732623738833458710602919928782084605031773718600003804891309465034019339760354476790208926230456690189876085628233766302369095043235152842251861190085562443525192430172300663592606860626784009722450817947040875777346009817686210883308361462325448991684873634511813031822778319130115804522188949886634280806882412759274931491155973893431433266586155776603813018984755213387167170905555792812752414795798731456013724585045602095537750004110250089403061333227352347695145428431569852853087578856757408618736633174844952266957174421246473775721202050427057593496541362321389430874456431483232179871262398302759375198535812952541574822626226498168169337750638989810391503811890411070677329245423564881845033389267505096109577153472651894322841222860451599369035211910223559825338459416744281093087597907268417072505519995926793103266021448344017582580160670712335382680896552883086902683935855774228632252815852631344706587986636235050138443426507287314406775272559729701562430874220142569100239892651958612790260298483122656476130613520834564296413972850939246312789346902539506555199797364171740474981697559434511263376765156048597989027426437459527901214417224036404689668160059946720022635560379353530925487674670060051984596979648658310130299036478135339163269849085729022544945523283544464221356411894813278675289697739771538598287721001938712912745270173251572550493040928965190027963076515278235080126072021763524457059921289465602682837824405738222921177129034967622289352251807940772563159361224631129792210826549935715047664855383661397216249526322721714191415032699585968255664432464064085645629215951020866982977997965321415816969807381074321154532566344904745018584207886586251171823420892619480452207565341120329247527062608656908223536763222901764461476722627519681758325509186340807632327655576210143067809583510453299618746499347899395448833446284397489595928869377397187499790045179466070209879843554844306250868655882159918660783739663684653526275751493664771430432782241646096295468383962977219981301006740518915904081172269010104013871885231219329917396384654282094404598578723004820893810020449030106622421263174737096553363048740788861107352976574100844369201312389334235734808851420540313567925022202013411391420163253973937308340008339968526986294118206108297174821044686945324940291242687506996286512358613517864793218744613617814470278823474378813179379645151759846119896807175150481942350819998083244774807533381879214243581114409469368361459839332466107350303900055863386947145182654638977218099623228704912065488897975259546810689009051826646543523005264413853398440036132989242887462743462144471448347085773481155917561933412462106645790375247226954638564892068380094067821367784822503180527732810127483383641914655233700796109172602279108992387495348972598385657384557013864784023049636216732569999304299525609546931904537596716299223397860342181624750116135488553456909239734976058839082436701170779818505831874378600298432662568499795755314964109975425881173236914574612803898091033504993720465844826355698550089755545010987140187227321233793496544134469923510252517993492254855397205774497199260750906013740898224317975934923983168248266166087669535383871990082844977111829956574804535230599401262627545059886275233471184278155203341714688941650175931333988640738003202954249957875912590728383935710068104956116464818220065025467093763665064471052502010643851630528423429496386405951055349078774153982387792059864081288478130494415945456793171406664702971272090439329526455903997106786345926197694242629665309145332234597096318930837965339429465738082194995598760201922781128607933941054216887748925496217255844843080586482953094488562356279626679833037171330004081346112617612554495062407782592565602029805338496936543386646518126209550005401633734195989627884416784435450979486086218194550575961528123076328252520549934539901921628241305294535956355943445820612070139412497641921332455317664583310773235676185246598422786996110085306271179122800440655534543324850280903643133641932055559656393657101350874136950963499475827156852316480281689042831448311477286742027288486118969227739550224343743612132928236551844420086909203471556314751346749093837217655119093448578333418584680788281537272550858584326195545714745728426948683994857985719866390272468447219157859537892351404944627374935217889014451567978987967409960034912378154353498701088130702425218993403440104760301818365948850849615441768002344591234195292934088987805489150412120983146933334919811674772133850656202428303502071466310613108961025200749121373294955549275630671205229465506160044797609856808995557866286560992683593612067709489910291840570558053385490997016024774461049189243261915385000093481872792272277077907904190706465856993453422738967765498576750368742461126671164358437687585826698712212915365881039291764059385503613339685202699319898572274048947982329464000320755580478966283578975420414756696110746758328565652250112243117393453312735357444610947196139359476652289637192497384287567051424105928961501788514451378376421488399549933943342811310489169311300495542373645773926175517525648475668116426704737299037094042308070513826930655873235747521972912586728828802639388085522562815905342267941027470336465911703795942910203276818010956184243313104388661610410606116202711923291300224495348380640050624221345882073494170336359454681653154474128495814269470774516302053045590619996900699409147344864924507400690356093602703931628021160190840162074333924266942767162266088133045360873724314810613680803024762887885881712054643799878139939425862257414188963805062478063521378105467264906023819327278742622844017205559165965993037891742053704616025860259800900070280383350793300329360178247655338771300090619062989693700910737082104291266487585805438855009766890907103185201316266969523297877473728519788181905641899647692372639149639276707082974556592587501510378636504731443210281080613717725698912152773824596269826983577233870608055418459494856445407663237188248084416638665189061394023488449065997744320110533401998781573404203353366365147389227001630693082172607370406494802888226705707912891339371581596630218013860270727142457906902849785776306507707706883208829797706543024927512199227945826802046295109101864205359939970697707449297160200382581183851761342083493136130685520105312643729079476393499650343737252906574239073925608162386303145190970858648894610181679686948634995392948033460481276414493534642881240991773409349688931413587678893590051895536674493970377976190815152614873958640737069000104522831114194655622711080119364637450149534368590152332701518154364587539329011261911537761881118107548886270801125111965483793067854107163197055089757658082143902308400359644204516337983817521115640161570418493700588779493351727527129774911492231019343472759340159366529761716072706951238201182425525822398195869305888858966298910865361921402965583374676872292574943347085519756161934157421742323723225042308010584396941761796955881837153806034007857670022107706095361866797084620574618938475317814439010874921667909529639711865526998585301165440727607444737752981225256329394083040033100146594406125634905891795649721645978106799284278074524075462657993821242827372444401252232575754687723275131751799012215702934136920070104560919789193736432433779343262396637511757695719773039004936644325498882837914616725337480269644860160852302092334987139485049347889951892257106255140565259170740550488383609642558261710232664884631626556920668250754723111083176514745527279621602902150353769632494103227746934468492208732750654051982303917521855142779742565601120720277346805193369500132479115745668943730201584597877597603466723016664782623890447902609253066770312341720404091348388322750328138974900954657973207728362064659069659555018346436762615008921510524502747120367699850394245713473574698489523300572914289493504202239206684552012420004156050061489510258164552440307193950088153923564166526701315762499106739338485469228455482615430271821606011060523473914628803094028755877275143404206698965709880475422215150365669452722281227470289487398755269942750058838019298313068390066315971210712150666404764584635576421161100913068451489161579780884770585234525590039310539143181791689804797047109044526581521578021920434683703717147269965560465845766236672583824210716562959393249799748443867424628606801883101977431222608885145739243881414312785084481286143471594148262415825172590292946990501327094651203244490505382471864967158321126037971691325437309033500830545016468597109082401115493495713686559254831305293188231908279002237688140618406460882075174683348226051427392154317738954846755962810199464005324094340876225644628985699556553208411759892643261568218978683463209403654455630583635719800256303659297885274623140811952946889560501692078561964434468488030137827157522774719931862531889302649483474074189285141843176360105840909876085674025608061119860552562864915509647090635857863678788895603562205902793363374791541248099897624078276814045810998983973018531935401741942790305525872265255558892774697422499486668669566674178555477074566120971940848419916955348738261850803545324514345657776604444291596165486912371347045088673747343983124479376068296482757094292332559390508581651865876745855029616198234170522653208395114039332988240085835086884024365634177122241980598750277721142121942598077377762241332134437143115636960540318677080531806148351068466197969135780465597870658778485746265698482029767612710950127708769803700055113290018180922838337420192725224727590959878797603213406074564651304986075469389453394796568510708998842188283594662575866365231584817306825089839819470231543475189356553720721232854534215780843295977939236188248978241196501461867942237785350042586452201123786847303305596977647415835489071341131362416420415147563014872799323836789370969615618034092056558464377433904958824074332020251807221408649460235624079859040868890447890375209828418299872378750252250312520145973726617136514178292452846876511060993772328365599943354404535798017516227932726284629253231526125541765540928686129077702824509007379283776702236970011858693169488235038691287631877262166813874353162037822253398119189888993245194804762545389672308464765622833494866601962764862922001154114844519289307431289665912435647737840056244548127698017796060021103815307772851374326519104972631390811802275255256802155310550887376102804912829776605015976442977107969169433438933222548546054392933931720385547192177843765694744135992241584405604402880965451001771429877353133362234059684988513976129543360589465250256701660061173916213742185684456138379113071109859241385533068321345886897000297712328910449794145876552835928572982847732874170282270611174202542827748671437843922350585408275187160250667048014306372652082167201166085475757642221935407638421847356226481322375418765449465476968155756397647230131189346347606258275417676124800458664415990477213223889578623963296141032972863699843287492836610314559082669093260192182520933626800625826105535803198910727372354026854883246050331615692928120639089790062792830743936595993292088522302731527291300287485604670398279236541166758998502510276609194617856535337321795198367864021794848786905598762240204014282779026050963802551786856434131240422286662202539705364877807054992028381482467611015727409714574687546355070167589640737150901892030743322898985951013732619288513151515241143542510731400137318773704987311376787337031879274324719966189086460761189701574167318084917093829641695490016184878154103515720664913067634018272683171296688006664817321005700351745326722618375715166496346705202222866064261888666499247076062757151212360245980870744517645709845370600903359104121484963090636175303142215606817198285515215587669259773429329876260538666255227860585771138185304204776049623922022809970836353570973394551810514816096646999755238453580167776222609400865102216588400299636949193956550617144488589105707619696488861939778103365824168345566155928860942858703805888335765955578396975760548238697580592540120637401218867958298857464041150500062939831346044442035455223125328943326842504602476850636160181582945909496694581699653591030131272871849877279548052473284345909002721283942513433519749615237876673711613969385120037788964121015654783967389552863439691099070045303280736676730516254693170306302863711755618561024315822615345524241196067689439055570628682442247146873304054356912140833421014520387468845737510995504684925399464324713236478832296972160079760301054260029378671635065418507034788304787472311762384615257627729802680059368826022444360198229884855737003818562192356529414535039255020864194197400992835379057233221833335080727040818892142307867850253805285341854060694701922013807416057571027272653089167420908027212101251146951049239723810310874287111048465332261860036182129034116187013962504008342247677437441588488964820986233228198181124020075536602561480671412590233955979793120527113357634653663864911606206221609193351271755593579019723545695316353835939886423200066854848399481062832820232382595208724468512964284517624072566487546370972655547109825806118587268214992895516516462249687605128416359379300204655268486563944854049488089053918181690039994454808316601405281747160134253919978754296928702868145615304943498760015150423159128175812027514256577192618923651846133900259506196393660507410036611150391567581114490869550326593495950798263591489214831344374640080174460615994346403736409061403729843443379187810176607636109093494444173621536551082301346954999513303104835511092323872198767626253000488656602944509216827430595157424776118004385545516105876088751371552064367660544720362212067210335217010929591837682446137721606105351241670912715439358102918035952701909798083213976896112214823171668482649726010331559450327712900615568884460608702169269967670617229623991414348250315270253466087766267537908039520466571357719468356879584648345888971045630801296640595424897755509557177567714706073529932141811138480596862732901365543764583438086732450065932518502650700570953191146985497023796202454011262777089820725673274671457396541494746651954096484041150241001212776188375930583640187910695881129193813531347808326523202943040209129092878537203526437406670106630864902387323939573431663893291293638954952466127524085719616208826042907159535275867381653245798872115374110179712522210312927666784586107170346866614367625119703908214860794561100730755063013959222646283906014370002283859236986895784896949296803271111495769947951447623505113077017937870830782343736415333971782937716492325571809456264221601957081028758705982881677888718515599568764042086010670899845740837919144023067981672015190980598870594583892960390906018708109594060033197359040430590582536219957220450950153721636695869141511584142975666510217452455033031617127421726313503534010111526372357537494675458823175447144374976546892989818157445199576333442190150207708731336877581219732455427563329568012574988408544883887987129121703201342585638082951020815913075454381916266336778999684967469612158237451758308195356454043154530538165671721496384360446064687366378837140970413748875655616317766810041282032498240855981631446939695704333059192688620838264698563933599585028669605024090622575618068442990506226122093976887323918348384959866134460527339791065201146300559482716878529195728743040177843784866206011443941849180956308052895266222850777631373982227206151885451785770567330451402743976968038331357487057560005115448404151809504262058561197838522396492248344274984695491979324925367388421893418105732566480221840320299435836080992657189134687340018629864286455064943243263814577939851186109080069926961706232114628563895335641919742466127026512105174740320079880146977426587354210263307386205371286774185331816645560650049238591386769594655435867028372569310866707286847499055964198318512807308578533911359106003614695114750050233711575113751865967629928468572229229994199641610114768827726216893071830733538433784544838184284819279423032421413953782182531442573875029729654363076477316153588702030669823059462980486221040582157269298809245264049514575784995680539306622967022795627638388274787857672750883002587702288239822063232148609487225752474591259961073393846327525950806912696285985885109647442914301085667750460966499602736486232948493913399796241435611591610063367028773284484924996720296575200649799652299970360072166849598545492034612745073966775627413939809592992975480830372210830568876724720330380974429193854112995741481317752670050652090666646139525533442754599713999403587076116755383573229179261757736800045492961165499827106303260636128398802006942552634021657303471373801124718660195366288598828210274850354384875910743397555091818783024763382360343881721971160623227243428407319191004925560543778134962403111213237781465220590254889385384026922271502702355264620760286281713024812434045426540230113126156653862168851275467113853755076143574205200992331770459582661143210463348125899005139606755333459447735667837905482078125090235087642151330377226762027876747012133280224568123290418837611004936448360487448214152432515026915076274023896988837881655905642168647931173681359282052743727935983669325751463524655125603926473728522333905051304654733261370799196213949171344283465742281743712508769837540020523722558427885685118446717618188384058544201128574036161562128441385130053527921996815117598080581312384523915084540051697406849941487642788021540281296617026104942305145963881483751422642793527439583569978504252530768550185677473447488141139774072347537598538841791936263722759911957538108507422809039834536402814441239826340803000148170369144341691279535059316059440562318602009866583482110280955015189939845326979517954941703292352013114562592536731925975251137173997961670694859833280391892610983647521770490823345075132821189401400408649063752767626045138616882243675488285384376829838180839340414440547237726012161959983667343455584552200200385876823843782455638354250662347910626734482525616239550691021684931825107392663630604918451452661792246383078364753602756143942618174257755103231163998179011820952734547253813070417274083322718427494117781331919538519202298247256229775048190259167419164378163871398391890556195168547636218122649853079988083400214851137970539495990255576836423788471657117037667622065973964336403825797193331287530505627754774171746181357282507867704783477771692051145027623507225236311415905796413306370971257889446851721068816320606143486356231682117591066496251910322680196378202867508111160638717707335070037437758915612645342385117747439453309507413849316483180421212266459608285846996668250706939657049632276356455972001925867721878861206114793360608090370088076689619283469762004239927201257616426218616174864500774879691318178606003056086370173751723142186881714655735372003633012439031963482944628440903167418043748554669062641648540267159142082723379411783176309954794538308724690090235456977401820888971046638223714215550613312014053643050563802756653624799534272521009237343145677664287989203905877761800968955005025484219605005254838994279439646312889880444872690632822134667341846884486942889356084108508493072931676716429095216966535139845546300841422000936356845736388442857619986877280571774994571400763187385013278606437600071796562658156650955968552696231808069662321533376016501609107579592596181218914211683974400777312310171391976339457233444547513274276118372517826103616745637390933970910921532479996637381489709699631308812851138794616798273015435324687496215444938934611716276886928274726993303744354272919145694872094060354286010523247530465842653963194163695072639482118421519556847916390298291775709452751903403220148705641630412027439510995016043217868382389592020825984364615194554923569214834224950024969580868607116774291553472329209167766214770700966410891443408390431087179789145856084049830891536320867745761374353549863388605234690466614931307347829193072432649836096320452506695139300043993735504099659866388946615460184961131451507141042448719941645681585699176252629786065178631652425711292155470846137060335331413775179973718646150214255309439679227946001541466091362805158172495135395919518696917514796917513081171175380371658979765097705285667174378812113045352953706550796563705711059486168236146141120159445536014526713847188976848925408083852157513721293723953633475425986786289264330847743242637240276189535624754928790230172263558764964785451065372069331781131077782514814452978333012704307511889320012507798935913020335819969588431681571326456028088700897076511566719224342946986271118645553143568753868590019815989064219548088319611126258978681989890824126956377709327237066118585794957822530763553571455715841706211706696001691407143012006392522168027800618687812069671466958405540815739520848682727508831254234746348223014874170486525160637737035230534590339614736262403153432380938245684743925729722098914380173039513291939389186938988639307520806782059011843492829150455365236111785814855085969122672958026018147447117173245604072286043839972048568053542884495632827206908630209420666327075818405246409461179214036651576988798691392433518788122029935709873845117091487843145070447499636033910286715458790090287392634104393073945674725354920250128021687595345867050759878645271757539830378005731887498345092874044574446776457404004208335179318297253829440663699568945460240499206802591149878022057227412723128974959508730822946758192451654462550801687118496928450974272060788567324688216747668750115632802355882771672217794061963636320128107040925394786748244895141192009377406050380044508807616527974077575673875503767310680185190556634947145361482617576773028709574809241956298713603771390593192574490169200568721910490354280739814512576064109881936139280500138000817547708480039077414944180304117117618543775503733697275526910302048406284622724706840824231965897526343512454279963527045721510817925725404521861498781770695879277472591502415659155209447581476387122083806888437476591941448992853709001876338647103118509605968630342701457057673300878865725295443349235874887379866874663391316982552953583364984177123528282287228706682085833684173542259461581503099623608236338452441583869483473948781069205370706545595108598288329355281172276336603328055828404215862144508327522012637952205766742209902855240997655508764830486864089932659642629736594207717679656514612289878452163917411336702361218677266080071432155169074410165550220337257143694587701690217226244215982700527090668649637016067523834300905607203548505530880851265050294559094380839994704177552086690042068416979805573698268033784456720457547339867844532975768814511630885052555217041444593555963193805135787499489166535856359126894614119668296208516489184467196353430630376534037882430031670195192706499659273913614837807095439533836225427623016659615276286346157531090263391330441402857156791577631617986396895623772061633309595985777609294902040494652406227298354945974418503778648785450748135162548501675783242672848948368868079403513943171023256027728434451971052592666519992490074184785669544106538740650540417904415116295627326952724115423965516997901483526247735740273704023127802776161356051529122182368742208352149454920889901882484158602180052788717336131865054578351430875855346304884644999764992883225690342105996254873708706013235431064341310217402925531711685888095473835043423587208413792497681191040066730895219338034585033675234006742975822445381340870034073830557724193422756014735337619529965540470193415538785855892342406291784042461373475808838072405897339750555782821054265048885711142324120129981048505103419206002775401555615858031252275587624108714968022651939097948484511454928617933520462272168692282624775710997914037352785455349411684565767840987977598826351763565949193642672690014619515016930483395261002984113327714789764551725202523045178598908673728132549379303865456385439902615665262366963235868917659394707960236448091138093566861031590465791629107284844789721299299455042328030858618108676254257650825382939349499783537758799266379317197190685759313783237518827599164831088454047799715107097899485094459474165184101078685338474611636873223723980659087180133892408243459619078555019241214909977226057333766959093600777652513627199535428818972697277454297521373668602739285580552633521090800128984914193860429605497282295731315293249508332085321661279361593947745800195072804222092637642032636518892990345705899466028369989023669239598034592242053398667993092059873596050561637010583500124326260850059696574293869584897871924368272095645640574768264190913549091312038180592262825585305754841507765579670104837538655539346059382655212364957064256414181774718861315795082527786777354306408098735175820736074619702463247358487212248444587868200280999837195462882263838519231757489033773379425285831536766226355038886765454859520443838097560158888035722402588004084410164948060192185411521688834483063228595170961450696726041971058399088282678127492745731621627707428462694646567056771461872543352050077001992887167662439177547719668161118848920264481362057362933814689476844978723743651111413388784710210368568395072217315167352879247690050663770278203031515691036014167431614181604038233390462747887647961088913389094350219585627206899834836509998452598636983577732385313729450493346049056607839036643713684256595295483786171389618759657458863274449800581133763903902045180294521914844087828280715101732598760960017522483463450105601104058372739581455325587578503344486613136920750612077963815186828739842190481555903736189216810219352618537478883877645613254618877281471082640501706776982922885779776499992995102777575822394665956170216621415891220079954599741957008960993690295689252137941352484647003023814600572423390616630815734181785145158624662290715581182040801981835894456171654112540694012074679804274137012414754603495184305955819785094873133496072142881812982533626565384924592946200496981760178399972666509540290547578059762446532033463589468839946583966945650037533755444855382296775908033415618479636567801270610972417744710162516603497819445922289578856623368382448451958252647909220204039952346369777419558780845767037085828950530313188933596107167555665413951439365946246762447335056208124411965196432604594704509969456561825190405534075722200817799816801350782660078580426180302449469664658698245872407940791418346806983318603770404370854510614009077519997784234916897014582091325386462086421913524968409853584035674276920534900710683399528752307015200618848261776415403967280620330036299224095084981308978599346719640382200517905492602755195415655268596723248662119552677272671456094763181853773098072132712675481967971804540888141542552114747626886593278109812369676063146877359980820361221205999931463997497400009673727063738906733786527332882673955968660605789903697368702915229800819397291605510460537399468137142972983285173615664719004810679211468830783508914548947686492977706064136931020779586569353693686673108274230400201567255489707798562924544050752606286611694869735676104211395568743416423154308138282904946724849569699027417633531834282061403737531080782475844000788318090720868722611200727249738491751213838959674657234225101328788240512406760417456216827365114950502890210095181987218057881366057919082598228969405662927967722480857360866475310669178393177287992985090695236589238143317998370684171852235407136285526732281126482497608468215301220064681375189418252670233401982472320807986213926847099808359486058954628851583002398726931964634463059085407197878322164112829901589209245685350564148311489233991649196459450643255975048686578891825283469167114532417299024997101447201732676024438145833860715027538257469685689075752713142972022243326071775323174749391250223057859484105682937223154342172226177449737338825324172628551555019921845421824426092446351655516876120923786332273910085607230186320748937225325329979568014509584127720330012764840287321499985527546008028677035188457871013941232345534441909571315682322823094470489317506950863425483655014057614368484597334818509922574954872687798333920238192711944057077819910082218824037832551473037051310472027486910312301901371783088725900082850909021500870070231143888044067310269631260355877550713715069656593502899765828593455509300283934972000193603169903233922294781634394091583624529194496607713548325756774228198337297721683642692153676725348114607970069214829202755977991262442041670530187375967106408597337148765047734171823100223114696697651713807412457286714720658123354084721434801657722206670125041450613000248358243963032501510590008033153445225786730800743688030207716559503125114482524466536925971573890806388964401108284733220554922939342859726990638129024425412017290974386303589649315935944782676141993458493547777867356530157178666116183005984946863158952010912193268116581369095939719156008544614964943286391435560135822037117074712401599246242971002443407994068456510440188205052263558120349938825543276636434360025642522669805101314827866207619308130454007834389538251390164706513677815949559232489408169421707141484372949172378892811412223250412193966855535928409413184337735359637048092793367688462404790908379486578632120289072914042567661787138360946328881349869615172242729765003566419329973926707863274901318535776062689445981989824583173333994565203608141296691372588685842804927130955978963704914484872630985605521007225589286036550073996748458475723502035216018111002747499618249411912493326469018496601461747309947401880005269266247878373335541156449798475456716283150905492176377460495283862039244914156481271987173531048797901112238558036509566228492235563726357426841908890547650880631097495339845795209989828714084968710175213461671290668056647650918266563926414291225020855734265133350262453427810528872573917176859555673549764699367449767377989961111392526778326599973301841772990687155649023291260403593188721798309894124396794323330956526428098051073157956141197852856601901931225076638528030169088964561563972430169931114112906258683102366044048118450509613829247819119425472633506394493066803429652422554590293563068344043285309359897391645351998613102826102480625530174192043072417734203562866610656526136528166709442674833901090244753068196445882632407422757245433202019947908459282015763099022911725039518280219485504204557744602275292590099522207622601385287256432279648099235091159592505757001157725175442799434842383741166171713537189901588081060757350081878731572999642493919141278304562253894321295125536061625964678649566732863084276169654178506743098498127926963778984900276114045576415392983007561095236869671432802460599006577626252880813630969363692725333366519047732379055784226346151266862517678207087737980902743504363698584965334696956163159669581279180073638318905090917678295635437674352292070761752229074814474774425701188643730074163197929979249219735260846985606590266459942149352278821014629886682325053663585428949416983101955014381117684104025754310413986155218083188376371533996060524987345668354295071797597044717100070122668209212068478372764066127614408008114713779207396039702677528630304467283261710803062725864006246729763389785805037236823555936252625983196608925124349405386152905280927620601383435945868300490139825456452237691027660833502200628279779952820285620265340771495294595294937612552117913211602109417664512927939463629208639738817083928351506137799016300462680433813954136529066529288545155427728275294900191702378005077956817823890914081187603366695312261452503820736274555459718642026539943007020084503122163655712813657816262146430691401755718555909566308723728342296098338169220369027378183097237849262265459750293581785814866726680007867484440142188482024353443866091851711137695613282661658904393263260151847118678771986337932389259772703654618521170276617109160505081314296333253157802428738876993096565722902440078764703958786194888305953800153207868760269249901832287970781574708405683379659775604081341968646293662508768810819060352925148042148000692018881754235929928696485825736089603905346620089517591513960233806876279839662233993691023086184574562235610462545723519211107088185655642923807944585243753384304831661146515461989242405145056056141736472711986447519253435908826753749322058991551151906549652163905505631058819442972114676586494519661207636922799967173500009475092619265961020314518983859454002828883127850074830942936221561663804279359543952931735126041317237382123825253039274980335072428366447245076550478921101941457422413115102753946962364704500191719475215266502283942638838429803368069677938506370650396345887212004949629254226283275394452633198586051270055936507175114046711309664396294680818854243405655558663255154139506981846534323124633119863787235620011818124905586070405528057568402035814762950301381675994416566942664215674531817297291249551894101688930766901893658366313210486730653115029748622527758957860643668207781726470736564408487594697690121497791556796793847968777321069859536876511640668269755304188455160733794122518491629961355416865485564886250551844476455531054712628383755745946492849060590705791190811819949323425426204191337692344714664896005639507346239163498194042781603988135054181029315454497054333378673548015348277120951752334769289661688848612732515420160479889307442638968531385963338768878677610751782230464173766068354524114606728024749315175951064355540586683099496018530657817432672485547575682338551591150571862279818896931660077555814461920480669773668405113447033887920243859843856389212496650244788220175160868973702938230179399904176850659075623763358642673495018013057705891004901871803733415961971718851349122591932933213124511434866908705690920873892721767615274897944283938444894912376272098523843002176250029241437885932274019997818876128412988253840798110813881143457639443928420449903138401975138509785653597531744146707912185430560773180725818360922164912535049990355566422241357585392841807302781076744102628692345777016962119539778056609728568771779563063913172246320059950804284747476391969308298471550090106667732634516504783749213304407823665791049594642254473668757259931722192748977919591646065888125232035051183549166437221188567233602743206707597804117434149738914292893293902266822177551148711633876361243258514459942960871739620816695775603588573485818541703857654767878832820939227473915383461868131737907602432052946235390803906743784688419678903775099985867676365711407031821293710641453095311538648865676620816111653149936071711016967210172058739078382664014138822548570115824926760545408555079037867275222427056643672624011619740262113605556049321914161765854730544527658993774837259057440199386305364161587901118647502467860893151744374480965394211952283985431937032545920516034357089695393167200525949238541074106731515078261162420364891796056001155916546189049990330866735400852068120824322626529949156194914733083345560403804093236508105095676994379552615996190643035031348744917305332010416846545663226848242967995141919748148627594180590809569574007245319667118346854535409361848442137211003442681446623296265277860969400200050840103618541995962922368147772643679708653432412043874910516282453973148410614110013972440457721796864842763633725603980306286561757092351202928424403073190480188715729189244997395342209202147717485115644783318760813634733106043654031821945354223304499882637519329787707377840854796528435685903357699476956871344311204415056433441509360954856486828096923835511096912058734713009034991204221544177692283014781831933332216584966272345071289258527239491598081217249307268802818949374547126571555568344256907580610922992801494870270105547276018990270227831722434248776307406355033502536527497498201726672962200293087431609234725618582657456064616163360796944582442770765365393494676981016130354042357156449801184707476845363447930450161239049819424952383844711884651748193771949812833917538887120834613833194708418003696463506032865846633995954045188414872921460649014785698740359042199095549609458536538192871562109454764988283278012068806502946535867979302814676736726097483734372875712815555349207733079106232813473078640860813807906233181484270539738114030524665131492336263712173804017096208316446248432714741302191819269007490249584873372909313919664048819783707490995898396993144052451874278112140931637429516355870209036160654755541851678568238495939167240858681113537867254335183539693993103719091455167852656949523793404576532013978554672379015289434995854715375927363371257868945229656112171515621624332226310216692850585800851549574366164641154023169444299408450167884690466653062395000212418829567624506067569720997446426511033103767319370509145554137405851581024830461635276218345347087519992670195149309962886571110869533686694986700878853663809929529882914552892685203875615563862028863891394068441242664602687223255725860556571030532026343527277467571516381515912670192672656886354994652384081229209868647672455110630286205103365673231537803314562687517686971953347826974266712649507112298185305889878650478325076374646860028163576458431072473861959951397016153191078017280671141130956007420409154069981422215744492976117410606106904750316341234778238038392927873451444385234184947103242158005093313371459482583833672395498833274064061664311913479716128658178089262113768834216706552667501811142479160441395158976390412935971389192103585640786703609837757942426600814217434252291988011431132177177291266816723014858295042267973580140406745214532774962379303044229245615003916000438610872571066780516947047741395056512080942311959073856692747894014551586505104417816340375060319122789959347567240354062583165077901142780740083031417219782796102316393589035243248917762768687922765085690833871065578280978665830226528226235499299707245568035582674273892994258024907673569361051841401700880158716175475347608193927299624627001411578469800551710688464330554880080065404217351903440686933293027723572338673787361640705847785398045647295045587933843063372511211630080835714953402571366936203397177988310443177090149485760364280628800184162994360904533942171970116763028886424069588665441799548989637513910064589928811205769020683740373426096647449145766424086057623836075893394900470853061907179417877249791764793382684449665308120034650112178066059983627343024145267224528784930864043516989334915474592011780781697719063439533987929956258139292454898970999175191166571358194888458195685283099796722822537252272782492771217609817452240717970603497240201495533470513418356970136967266638498996599446232392013363759980843791310906972046476420559872720489637463272227884890445894591928243925660728722414188126997854230250612515799200287222623793009998884258683484067294166022331038122922670157446232572112735571876343267297505263633765009519518591972038195247214917629822116789888583950699080136922135785582675581025194880364975110960150491511258092251397024357368964644946982509053043863669300016053095224117911259637314919903238099579576016551526182449960843894249672878330237539688314406967695538045608371571681381152908021913854720923625685309279206501863560157783392716646018255993303261036016054275761748143830411838298159189769822839643573498467167288461582680375588378743313583503420534095456026133089960433689957905846222440999298449936266855182398830131836323490074766073725296508511256366948758373354457796138310726246196573893730527200206008357372816484731108399184760344985637275891632570558116024490143166335148433992760602803906430600240361818875804371255971581302605354371545846149987398482417505395342734667934532303431235462648284175586730380032046118637628005810559962849178885936020159304007965873201277534092935013080647856888715868348335413908087863317000338231481268065235126946147789134689037392109782802629753251185975499718812322776258845061211772112380047660419634211964532325932798541075767394114814688870623006315812708892893063285996093591967178051361359413152343852115037026119665193918828410161855771290969571259860320529093914042230836449913522610036600846565370763245121110772293527838665618355382754978293562447513215100256397388563509752010218524508261011339710591870386125680858562236213427963528992227630489694072809118506866892864119632703492442669001471580384447899546584828897639340920281911440446725321104089517619668202288159431872430252648970653328651515729417629692263888330160055904361526388673024431855506648005591381522076218083956099460148912943242473258017456470597754001561557679126161572212129910997762329172946733116981443513089166026960167579729228003548919638811302614132889411871173260134394266275612006988159201936692080231481496288200478295973008367977288440421882714989178800998082205053522990855366241254119221685583801995451890679267267329725418019324929526636738743031493581124473742270456053311929562526611035641235417060961063246737989517038512973429639658392897141296352951992955151701541046007686659608223500045727200729043713201778930757022699644304010122772337108234801858039974415235016963792107973930553162479114327975531522751614760315424359729395050996015973695886951804409582528189875311672142777760388565010307496373983358706230013612662372828054447844685241444204057155933099435216107766848394041322205014142697803258690203067538934688231762333347105476131903999527476553884579228341147229579659819880858903598117343196056279532579953652740224519046906106033967856135745892944119241740397175781519976726941971982963480628157174856250381461832399569111764469626485114049861521944652139955758558683544308176971754609426206890925326766348378882609489960498808409338471983323364353128336821288446667708781597752257981375381273818275483133064387740559846933599511268182866948778909768566281668028475461715674025404893880637974158043871940682564539418096165055846067070132111233518808112902350969936605937611550931395403048089472240656952619595770322305065038598817218919953251242031399066500801806676970323008063949524289848602841697598538571850074009551098608412830099064512545803114399718314543332853776394652821852484929586150363510035906265313607288951574501663040379803327578970638275107258810222950101414192005151112497595427273325042732976689545797564976944995567585582782054519773289767531397231021916273868473118521438095141183721815514046481061412931664619845927868095064998851847381450196516350663557001470951965137778449545273227058514356000052508307921466987689850167877538542097750901009380475581005168900087046675792548117127692300136465263650348571923715692193061770969961210147193329498767500949913228349081270607833218600456718228013805424782805155204496576288173294765719276391071978463949947030574788557542137852259803070346245124111624374265652573123946580154394767660148301618031714140309783699218032848879091237727497574580368000497398183486102085501167270059446040595840429467756644746331531532412802563507866242375641251735890762771538252362640174813063134763318584490730684074866095814979353640919675255275652389563221058098505531618521108026562129929663455823600624908257486978267367627639550727141701596707550842526928839748643579167494440645491503389514857101847555557258747737387107144632500082280966123863769254989039769493811603127152975801155253427045508852862335909416024907309916481005167361688366873039077746143148011691998289593184600290069552235722076090647820714921080440381840260282150866982332445366609929451954191443695082507025804524953865606007604163940096918347071442115596966447905739681951402228185579428985965019575398393426283062386783106256279641341254517562643652090315507183455204362454214143042786831937825819398667325921691983256812392474421530064065255295686330894640991458512501736748840605288839331437274627227817325970847204687682883341977636303709530692373561857984829266950266040303018712524504475251501387243227672931278298201012130971075160100686174466082852759353712293407774796553821525697404243439769756132365711832538977427890144201470145713284127085757786834110504916541930726860803932345421877625304780907761227753240244467748213051154991587403358154663423741943110424950928211361524402518468626292805890244006648716246592051591128815249401354249529734980470767143748429744283398599481338110624908146128294511909259183740439737755871722908239442868522781384617244572995327373266125143391124699641890951245435449618415398370766265583565092575500915527204799435637862285772967420620502492181981847514316441768099442093296220372318861338367140808168695708226806022517263086398694234031572356332302880552193544556237942109979269262867174076687546219490125631197738314287681058346812041925820141198930759641244745811660859382876890661987453080020157559844485085111928528394159212698287461257112551778844796419522531918999688596676196446408224548807575981360190912678118793842431320407118725910474559714997887430115720956368873179712511675855992662390673880384918401237157749193354746940801711905361004308440107427532601338804539791609969194198514915987602234229265637749878109240259376386683776687014258808365497177127727244147458498514611169820186441734984408043913115346844547672451621735723061312839681032723803761144497096372378397240148017935135111311795151309534978804369517631311108739822065098651045161139203376403396571359869405474502016000610152173390436871480242206368317835378588059913299274226253067532903611666726635515938082253305849723984010472020518521286791165706344022272231212725621611313863796921545372892038946511130162551573445394565055196364390600963963932225619865941165592539546279122553211471747163281686365310055006210326727503771682881136746036574348662828641451542864150457192179910004634377676507942367866753593275189737357393150251008159861141132036922208343705547589031576683598124022133560944355414793330934775807238644325260002438775555161436852467594197430219168410608574326241679563299313021260864393551154232775292938732432643576772291710751995023572285322715976930353687111676917194513952243886722666215817744373311272579434331628953223616158936922369655779399705868931803381130134011695844096700504390696015148425196351572206108297915915645631879404377304123488517376197540668402391862615436092994433001717030845279624186739368194666314769571483207866067040937315184077626135907958545255617645539227424719696515507132168791186693073882520650040132979134003713031898672005177919179560621201742369140305150433916669331142298084453318605344242678199203456030075892610702880933157855095879687845379516583193639528833935801601201715641197912432925268387835809074992849261282608555225917275621724124674132242298586756154182062802928869444469908293956873079715259145928167293038615966884720699231870378997713303517237881455310335769860289235022868114407964381985582391790523987968762732375031245157903958575152916600281445232867115451535409302320225943772587330567277979777460927511674333676619387357037479073571740993655571115817758598659418509913507649397350508549170327977697522706495204462307429333060937542470604698493814370615023330773487500773007299019375969348669027837906435500848059406327790188512462729369138139109093815576305253960398383914603968459102809796718771537000642489737001428834542925477333356300324079214271817431325676090783415000219877278844856017664990890156025926914923521498580387490726127293688701808452278847186101217678601214454950852797292027931813510310670313365665312231171891239929331283144340725759030842675304750086913240723962038139052503806341505426999442847356635412864296717749969359017212114726514527913764763598737844679488553773355295401315478431429791391818430830978198575778966552978474964247449256727946447902037527209002430306659078056647579630938249770225101926792131303538073969103193922229283101034417279731659952864225387965429167930017568334983645157352311341433788175910284835003959023846336068459801874959828460442441322659363538960605622932064133610492610422265776913210874293169688865083059756231122864985199267097483203068326291109205155288106844245811913169549698175907816617503229453040482296332535653995213052308274015760991242940662819019934607641132108229418763178138563507467006066163629460282383121278150500828511947015268785389293717387079483352300128986301768486864854912776952716533755652527108705915783446554950300537981300239876520583873769262270625171005840741227311007748481166545784840525123857433935594212217550345946060067376526795235175810616936493882572070342005483165118254887179580851640773461552781654298641277152341361296657004165915879753574327450921532684395740315858257225315305238529538122333207791632447640894346045484202498505142071572845483848672681893314707759876108087403566640120364975045362784631255116506926765445532358735534785460024181936414080994673645108030669198640067402860739471710922284867824820438335227366688272873825786568837421591554378929843960398964977215026480778279047368166464303358289783058522100540385041866683528722523043768348059732375800499301355625956725610804206902450647687784521232231863892966242007541750583229717626702389702682818188310104724800275053523899531802790821324908914998741480390472837579710451568694152005410072072119391246187762700695472307950290054807989111351456801261542702141943760816239400435088310507831357796693970713047351727062484761678979477405638556944138234762567009303399574352721387311506231856318260655858369339758689346050470101476132601244039284584733624849501322101824316688931452246981140187890292055577791929408140708034455027555849633562439787838762506520972527749231219533292370740274713177138614978509710598188273312602536009279412723052385321127907810152083821751791314409969061912888632276301184459541914839277916658875714560177114732756500935965409599982852912678146256992498921459889144744326407190225127793733818487961038040057908195818176436882619697097786095681248468658263021990087555313846429327004670543605375162276581758456050420579580855325597104202256283053529827468459493494480877005558513934926762991408321366989260631739663714574334340311041366212115374434650961755675753873952713453763678298751250094240338397946716979021473132629929797075947407827594030911818127928706316873552460189059825638442444671361090431346741692325513311801981631888332329132220367005267128989712449946242283704096551145537636140052882848440439936862615818239965330231119385722685035751717266576996495312854065852580207967780804372305496231688354352656837068595932137836816895706557599212510930925416461977513937942433515253591571981309713740494915801193473038809550947970422309213686355245877803014906425591544294153705727993903093565014641340402788189490380775320381018475916432659801218417770433529884058165647237370467092585572042699131392053464522667295427806614126865646634613089625944559016697078762184687903801589883059552561632901506614515366267395552590267889737169476766436519396026739739243144816679676984934020352657853648325097811344849143580621783141597238858550032074971295823000958308573664584227424498640269237189677901558258940701540515074725732148578854438186267588386329468875436757741799982280275545644142969838213416877659232822041281450470312362411991238919437359872434037760072868302262603729382010099114470053117029485303568448217914662982054779945286287092629578618869689559409216506516827627148836240064922823667394343864181001687925335976508676071882879722255226373935677367890854442943050118835786586327030128565803439029654231820887146339839228060709017402008486013260753073639172323760066007109958752762526857209060912446337157890823965322391631462610942348019288369848950934834059554544954133271420879342525853216248883097567947124256234084479951658943695519688339808205266797683588860077754363588480483931978738351320821283318871333136747130386967239498950254355826531873789965381640032697226038102587270765468204933000042425126283523204065486182840849054355188914594010163415009910853637695439632469909337572680349004650685666700766647469554816984818031777551438027275541384223054836753741443278992033483268256091087271777558726972062306041442613292857449526091401547331767881974425470319080157165145144143487001282388151089486249787480133354794729032603568299539052992009800312286764370219246134328020526805557042130056871023995785341670192925018079892031126628178584057634751458784433549807624468415194105092263677418549737291762637230835783730701527699107277921758936212600420322480818567759534284857804560296905758050226675539274532512584508272469328354216160153651432494294114107108416371130656543134267195361412389428407455970553041589034960683101883963088915410387403339023776355584939352675677486531404697643116536001497877631438638371361663943729784140355003534895991883847981798943070424792281719543940156387036262803227633095472040129316703557166919238503423649522855895707743697573969921169344323618210775461418543623960157988434427899683462148462278127588661040242274953017993175703087201256845082666799701891113968093317090337510665592272239429265733852984270645244624717846795346667757147455019941956631879530408878623924206963002709988995242015110833353513943125226169989700368066730321633102440262574775611017899204228904734272387281859048664953111076648494484773419454184604650372118569363477913266941122170465626934526985951025490277783432395492866177871792387939044002843522285872967389994858877293279527467248141640662014333351789554561257448733002456799370810741710485507122468283520660139382724406433856682553716404980761696544061783903395496926846375280975548203241939101810635544982807124446269955940759513148770024924022790618049502622957099775215667790451429291142786672887192841066083566762786375579279345041881469360796267277015093588089595297045312352200282720271028964348512615538417047414460752314413232944053273737675597546952348979423707754394097122151719840635966408476612663317193096190956953544281850171273845299567158861446266896167984206643613953434429031271589393704752673504228341305701316031810851193032052659932826156813878394519514960268418892627238616834879776349008712157626424947141050635435207424414897613148328962775660112461825513242550245046058514364789042319277105692590709429653773601342022036736601539755128473183296986225627964096470197061474064803543795470875942630486421476915697587264240159107167340221854196432195674776424360115942109109485178905612945412062018395039908345316415052638539877522279013114967057236674343276988453175838750102383668463348125113160888776253142470672891674472056718876046598856824997678538327815974609061744784708484629210470726352355625016113797826534603193905774658368143825662338691339362153123147348012976898489817168928395401419656070806605283644840888719021712026790404953704487857138303244093872010385298329179117652541222187225069371348714506403198911024845958835529871431295714840189462983527967633519731133656064462625769769303021612906274548002894936609491645538557084539813388272261616856575114695226740514363100741005274679504041538216392635120266070118735768564884064536692467706414884838205758439970656398811455196306192632088188446547213696993531145682576885997877709347729398273711212841493844942160401965228599658725837722202748988630449628504026539148413615380586001197675914602565123080740495735507017144967517803482432910453675227095633373509557025731231974821550289998046069478800920993397518954142528461465577253605789662341845761337060811997084662456165182847807644466021965495325524235503630838050449211748092566100463485675748287630448357614223944488686821516065434446957967073779367256724654440568869682946740515191809388346679518835542570082679945249597776989646332849052404116215130085214269847359666649041741424462297660645967506993282677125862489194331390149593923870890369388351701176768809440992118302830094609595342502502169721516165080706241648356311055690593497611525772898803499003196496168496072466351026985066576454051818071636209165739379361123438499531054008971388455513820240413400460598501421625978904433478133476753489622006151248783467020302733112245708792086610949793849429773314548721306270556363577358643708521085190203160771515857727947061170144998986179977029183517077971625057473699368385178821032440340576739428197002773238923463243720383175231720073435692890103352070208659052746899039411703260148461161271201509455767254579676216423422814841320180017610553026438716065619965103596868272076084695411601504804269672746415841902758459847413892745485523463768698650956544534471242788993968822107152622444433481440364388289485167407729246084792012589644058755830179401183512711316644451209503331522379205144162528268130072574920299182572354208458755516814060309059872855016185997588857282805666905050804805201171989122663817469169588629838432403508799328139360410359800847637281896897673605067472260700922452667003712441200648257229647519319944269689629492269894567956449445234397190966866745818223182829914355594634480804750374504126379348888587524340964255296038774640035876903634451075893984162680815141384537205247509534327721397638202030376637271190913415483737487249570528141712903453784933798398600118070712444656927977597557474027404062754333976212613346471019928894000905324492084708181924035817607137782456415100720226826785599171291110195411054995405673136161292788006004965672322418298928008209324833204170773113510396667998072314898931546798631617095439853671984900439805217250343557795246640937120866189192504250899735561680936500012404262018662153842339508961310924426153809192990880927729743542964083156242938245129803480662287120669392039540231159844652006742121455367645867915414952862488304029462335405496974706591959012583371421115520125093120481851604371075231075760074185588551143078247584635403427943255074413618801939986507085895654105218796270650774049943565822161141147603099049483761645404076975781062559662932401507159203092435764429746158358086263849260327307969037097073701830902607118346966995830993482739305231634966695308396722172549130310336592700569911402967298479122310592116891105420315471152767740947266637266509508494020586945876775359680062237921466484053602144332525669707005210881799317511194201650112886019260259717070448543449410670717795446082407586833093522744090717527898982516411676831525996368784957885415342168221090104560380305009439769430151876564900407864121859253691927850522535899726636444240852890810535295955436256901079596983679481611012624845922041189807843967075358519388698017255777502325396598247287772536400131408427022337749476241544766000360184102864680100352611429539579790868026624409740344694997763981548642702211692075497866402886129340733222527544970892439554854660315460622283780147875616298094105097927203375619759783461341803958188330783101934427490183514577479505750931349800638397511881192818722884671680872288972084561034218232818191571494572501163089137449966112683697534106405621026096273285229098149194882187917942991266337591974768536240418050051582637540180362636379225527934805934316326465057336688705242998420781353147180579309103008920432241966872054798235584882688325398600862290670152942830691684827601055557342597828351075357911511030522781260294329784922315649063433209174907429579391828680808153666077258014204513646101994380808775130722895936983871575270641981556445691527127926949215467433481807833500432090816428348075377350244915118035660152496527667822290340044305367511739958204866058355233976213172709293198589389953854704216970368090249101927035227668404437583262971011511024656799969273295442539992084616471001206172959940783520773689606664732122086150115158092062423410385492763496306174350091276781026176108595302655112845638368343342058557111742442500267699715794759034844139429935677488719629180942147845746620935468420075146093337872212270083963426750290984867578741071859850859354634596884420067841105065083724439169090213074295896953248296308602987879517638135860245471207494513670269607814838612358984509279869122615102928609051242428731748627724308290877691828569910994362819212285874968853906385576841178727187672324068341496865130556603073433393307441186927759239433595880969389473589737142556850922834457688718001116107372657936867396742368997360949404731610719514292429501915461640389026726478280438414882815752496964622100159913608709909651802215214211985051169190694477390673853278149367367810877194609190267697087882203191702531851934886865000934587542486400008306848395562110410916388494321663429152672055161379429116421575171021097822449877644776708260665689489602589878076904339962009435811366716545874609288646698911891472424363920717981556767798224224142228808826518899226924890337194731916844338199147472619886069633171526312518582938510426560298633880758000693918049944594493240791685209151693539133083593539993514416526577172303489920421426703793876309863395989529395678769445351339170702897500781949605503398596381696759267435564489272009926071578672752717865127879786383639727702188127144119781455487462898467769720617213944289606784307981890207543233282957207582616364846190863488690912158970188114856413943289111794201878972364589861065794980656079579759655591557088712453367073689030367153128250374563748905808335903127479234277727058074375354647996558142897222366587629737257636533697084289886234910572906494614654201476409482491774096951131399308318030334790765784211220455853767114520339086517529177666388116470159770769302477890192553321127467544639648253761007465182917287167934525586676018543983019906184642094812453194277212949561781295242517830906042566711901280329816524510419642743600375887462453544609104483485758877598778459936637407250727112277777573894412977757211886844938739242057188212324936787622052588543563615309168497030015592288293926096254061304227161770266534102699459508043705148159570276155763702809138593191621801379417129605785751850460620966082303592373236119769142158469725208222657092064666835352844789564962491955608101878713631318628089436076862846046874008788882215315502299359323396976706966911347024132957291190428987865074133256562247493644785159078814854596856075966233076640714495818155302857059067556969670247398179262570761780280647278662262279762897290107609120841561190362114193153272294892682085185558292351686346963076205630839635061151642786676717756868263941714448310627063702240702726974747988262789011514907972687406841589293895392360163231737829864698258723974113878040241714138210602382648152471982718556250155417057628116006580530301296585063936107951412832258746396025963685334254926624873510318000297749047490759366995387263367835652493902044933549946613872660599304712182473411998944058949913526174224248794511429344202348802829799487363734912011867372774419306933747089657919368821401824859099533979030327476146279220794196632861112388226516082281233465903665557773081206035306794938640474690308537311634925590146434671481187590122081581989863971471061795592557243757733934214327919390880837649126598687267292096893152304026352665032999800850307446072798848810208775967880166468265238456854982975930406204570397165571380355699519405925110594454355618630005797992682739983506382062591329894721280401911418115905880484389234208875632859082151850137613287071886272480532757585533052324973786099010147188009982047227651591433353954688738163389460869849221480785909958285448008131934984471760765168561405830674695763789724178557958219183887193236315059454918355348002835126131312402210686776536380118817122948094569068231739036534808109664325010810164648677340869417342070388081892936601895130124293794019987807872075898066693852073713736201513626324170228119148407853469650270092356601782853647665899282482711342669399806587648132846651311351928453192713516100618891391453844626771636080472655416938881171559674588426285945149818890601911180762900424123745080113079400219205691441464443626730775283581039093125775830711169492695498997787329226169652710470554987957477581926194181263931392430229580597394243558804659749949044741103236612528635731716051347433974909529105191599601559932460472325370566642719375946527036828855079199764933999541105288507970242447482165443835695591458275340645495339379625331276322206178911792985669235355746418085343891641003318991178589105012772066568492626403982839145614857911114438127267904992871950130862056079193251350443418860390128899016442902077161415790426996165833407783903625200228075510581050526254731152485387341575629167516318813226944491998118657728476721553288493149823607082484756128979651926902435045729770901156822988360508272255902761397868181181811762488214595206389263677610526972532369200022360641904468151438327115927322999753296382020589284998029747380792052771933590847380966101697514781037445964549444077363509918474470489078995943104801200721817608973637128785211922355743498147011772541915242935066293388809228913909196399273407082183129290148355667063709087724967070907368827505582203417183837566472075491988201788696145160383137025216410819251149884501674990246558287119916570183683882505360539162399722251760434511680112980271651437081583863710566946296764031497227462080257435418863737721612524467954644447271905912352750990872558741970789337772470715682083918450752624458786670337518583926359272236367951260881751147509767793084404480247255303597828088802194160458192855503050174432886343513807272929073619694942842570460752907756205677282359054789205761915661548985497000157720580551018657850272726093828859718162221400862908697189488225047365554482849822322524488892624056403289060542898282852796211471779488942025768657701438452740599878268671602975574521018520656132553300975985120337467807700478768672205855177898157681694006953652750818333443110985553560542398788306612095043455937073443632100772140994148789763722188376043408554555994818021370193156543261882414046314572405575521305689896930353149391262017851472334266638385482152747644573006315931558663930403695586588087831448238493061331443213232307087171432071207052318470690637855821817727510100635987832106253304317538519320354816770726735667524714096758409064666260712586364989452241895123186438188704964150341038355122998378732025129377056656157733141098322684615584498452108068321278468969391126845617271238419014058098545304244434954940339279681923051623919895605886839809729020887799388244897074291820371699487222030836721028592906149091628271102638157978532404668863738626977852422045747856196237052311982079489900242002773069973893426175116471067815670307184662838628116087285789888943550207966184925412928943265031878909278476719725926380565440895311040684946953417984323050075967443149986060258563324620883503214138506420204074967682414830808877901555212106326873371128128338696619913765970330859443852814327991730316639033665904819811143167879429242766866096185548879983174557461611696381965783694604687386967597162350091323544208230361714479406098326395492902274960929546168620762798446296701859190609756208679847374160245246786690227664911952952370361496134116680158282269699182720323321538856650908246396344727397234207454590508724691597608489173405873060081123972102747109860957071467810301471669319736363657315138110163381724631724695959232911867107331755962906157525154635031739392056269158436741035090937269166832110725334638473268363537492652002050112502757328662145012096640925742514206796035826772450214932540450162630365019597834477148890944165224058872753248831048232794270224453159399109620421383071937108023080989284513028472268060857228811576838509019719780888890751341699078786943157892031377875983017353586817965937343242312412604526768881001723438827478251682788215619595255183515402557124896073597531454876109119996492404896001160964487617303154766552790883318550121089642992711510807854446961961344116289292160195961327759098162056577799660298699028506042768065917491579146683449849710195808625551142418793779827176831094603089296981491900490704252269532534487365216208466194868356589545085688016326407956203702970270801726751475450886961612610336358361286524474029036445437355022608673225446485251209933935621796689605080440142704653699848184176279854958602529702486866949809071191716535975088396800691524238162181258268324863789138220888982295047568446845450460307404525390707718490723046627622073728822917962188754756214624853328743660118383692213151527010316837672167019038173258659231347485493483043685738261479960177861357993953422273485843162811563778348309870840027263284311338929459030902699812944145568942046250297765587097609288977050590036273561375447847065126611845550483594937251198608880294620015823130677024133746841948244159181433855519323247927730620426628799717432365898054580954770393755227714619492360043010444741680616396092857441767891032606370549501973674288711377984155011224384637394323912037284756779141810837819340552162354670799463794897912370442744638464195751782547313480804048896183100114275403711782601620508654736224700714947161792677288210968347916677126173841321969956639658817064345807122180128011764587666300847462380390194864740034016418560511109262663260285631978343302300487323276601997216053206077770362064240102505121764341049337672464034921566408884973942087772376531856311066319632586207951906901748397030195413735062934131460799453688243958261192567491862834740216177501364806689270107845410888452640374947519936930108245077707652467692850331743999146748350746593849060050045677678524578548956290013060124170387114385872584307261725878223512612630296492690086809384914618777915670051133581298112094446714903735715038639864258261845713314018798201965624197598825804893567946211785727855670418205920990558000559062965449998003156971062143456627324472180460884935142132501496672095903748692099517776701047615348167691864792332719694303427093676864513370175158417723181569250529423564157603493130556948749977654444977292032931419518247785358304612098002735532237495536111907912664920050304821097049965340382308756095621562082984459836269583724113735414254978461906370848310440939568104772496125897007151110602947859544204701019158397736756049086997075778059964274616710575036964418493507236389126531116257561378503090221131528415461428154626451549709096166384600712620646262097737644790048277948469655778957960912369461532334677369236316140098813079256151687030946163143128937779797738002572242184578123167968798432267057834370956602292469108205149848007842034502511486243693750736617738226516540890315255396351625342706699050166893956172330899119822255006726028584293954757047322253791854851699961895340520524842365027819348728068466508590747964320832503021662461190640832146323796320336549966724696122794769615686751524462404615338074255611905425590861203206565849789464790088278175087245204317465552123145345358443219979756355314169753681928616332719150861432519503663303102623681257840307217880584055716078845934998004794959503950949627861831593131697490198956112361796437238107934981400009149908245831647444166425251286702321618390921744643311239166436774341769000999496276429615724223030293158804663332961539826945608629296289249137635198127706755822280743644054763731559847328016261163091217201815295506476625187467652171938863683892386286009771083950076840128340599384537844892257503973062886540367654172008393873431894113562677399866701339084383841881304137926123105863827247105130895289290146898567571841814849233252555483598711392315760666051631195105113455280594878890559014953770672356242718605096257225353174013775017074383227571864216941507793210358699640193129902541964405957217605176718246780374243824321843961852540872674187897046290890343528731307750277455528330633805079189811521350516510735913525419707874674643820714372071327106265441750153869677053272148682109087924033569322553392247507214124805757824259391517272092775359882487315505920035908319094466396277673194420691942189376811849345544408086678373218861449412996915574049215845974102292412588049858407936047242690435842659373054048574320403922643018194177039861994122150918526905464226192782968516164449113708645955591548762925333333264800227133023695915869146449715852956304937189808657228582327175943502108146265602062923416878330141576581011130261213799644877309339613840635909520685073078966788023765102116915664894669277072842791960850669469594454587401290648875805229754340506257726165123547414911805088214181639357213383184999828854516244552818848407537298440777012785911675823372956192685568776644222687551986671267284670774107177271993707478892894720341727644604816431301575203454566316554444239292378663654568768966597014596385024171459613594835849098351190623715650890578079317760402954434127171883768632893273782444172542001359390566349367720261989040454582746167657114511263086631335573759646229496684859482417306467929788640440983662268514180401277481411110800781098660804376858614834286235653720884200995436144756045854251272866898575246691377822982109567861122764340981450857342873552071748869199965677784777440030899322413979473827283446554315774239173114411850975722070726992888312427292400058750945391382929149896401482980576260047147211646965609492276229661829883139366599873458400809696125728662920994586938190024362366062672650665438820691039019630284503474197296848766995847608126599666395519237029389096199920040487175478480476907477229151098783937426435611188533641240226226938171129610863698208776307600900017657607054962037104369187855396887061452207730401215422889808737412578264871775386152216290233988925143558977601672718387844825409458604105177111640115035488475868325248897033336600908197343501367286459466389551223100545320254346629975033640528232366020195258805687144934636819636168388321837733810441013227695400548421119894663919049283456303384105064098250196325667973770328876222457260072348989897786030337951369845711719271565765437290988446910650677064640392657688205401325720651200340042537858996726270552838560016403581972713190133191079044325841385472412364301088085557235210999315186020470343242025414520215649881723049445831725046537990102350523016978291030119433926322068047611088719129079558954623176159264898900411611739442182156459157646259256387146996485541073715982961586889414215102927596763907549083019836063349391341146830895736011044969432366575901135940731790871437936483950505818113714144386648156305997652556281024529174759515661262584433526047512499462588203686732139283802987071914183252609384323729046527764784674719320634308385274181151817428441454029493086167502362527477350208710093948451097556292618017131842602319910086573994029029926375987091107494106527563011745191949220770204753973966185752024263907078715536521945734195556682038288553193750129983593014202767758458326285982818652163985241778099775167826320818487905950967586857012474501858605809581507215293249656604590021329817610228935911279406544443402458619949790468663066905485612737337975088261080501248391762913031318548799886923918433791217235246137587795566411736034029243025551051381606804013545328518066126385709100146674034297203206202152852693241359182409310634916858351513049932659070607860647368607872911764286037721255517496502436946438924301941166611068840339441819610695803807304774502341197644052040484884304008882770553941860645533340075653540076488364537904925860052897615648889403650404843124246472473929497103370994927037427283561689884866954996610016033854109420139021294930520050813044369512127900378739519558417692999521750134644631324894687214099627709235639840901627180897317863694271785209535154874462244692992744241894362376159720873626244140771562681909521599693087871900630978438166493011483269355217777323358841297955144008596614804472736629964849139121975901108944682007917158871047477052900174651081769800563947975604491464907022639960982983970316424723351190981954963892119504010312270818818698577675958625153876046699472282655255646468165730047411360796769620437696600667929037535815584600964867794202848870406232809018783782069054981947566181491538077986823729545959420974324835147887266150683041352116489895650298526007982740296894498318870244456772818114917492578277338028059096310455103111964772427205295117437826610801313441511825841494182023148409994057451621563108366098966696572469595077324111284148681273747483950297810355760001867148974489727363860325412139083637218371072714341214179285184250920234544622444663184710990962641726139336503036975114153455247569489286025769001130330818047425429847262847109078908057639422067770656287279427878799232559179125240272016657327702909378689668369050916152265479712858511204930417071736929759952949399291071636073444691833521288263885365168116359850173626302226774176386530206203078318848941681463073514280992872642233768025642060626437059993280002437841760446902068722178985785333844869078017244581081005495377047484886050998779715618013859320984353594129903282295819484988303365099326563331957174384311887670622550213613647829266613128399579283642064380922007197513936193238518567581678726269860159992711115255811976274932875011315706987944547765588183075815194490313172528204924583832102729433418994270638834713867575166537451699448526454311316944958740688804312628484591861653600587203414406869083555378580442785520722264243629045558591112359356557287106758846547714138140585913088094898170260338106423726427543002650084931323195491752652469454477684245385531109202822775862421556445726959102121499300873685033615146459348435148506308532698441230514468463712453472574287536928969043355997844748115736936960344403801970187072227877272849729174181655751189073465211141896613117690443298758434349604125876462907755359370730012657861248203715391272182673945759875761791431337219711444592943643524514778548187601789145691630797711591692659340747831169855746552946108649861074677504543102307048241432221888909304979718401339413511870735995007153892723665308956542590704917716607152820274627815348217306254371697801036433481906709560867215673503457402288989903669519900575817175332553050207189483438774437331869166666295000004877299907623726174070112860947490135925273610379497656039268145703681575769909821490455331204029444183238689357315647135388057238701670829103246833000493480042564465591698491292518113106596743693823531759114637112993320772912834912864844748065203329410257684162033991144287006054627840319096717020839807974668188893941189502710465402238063386225440516107759746346267700148739177084075459689367076872701844768893215950406904272768264846027080500129938403415069199483156675758852695276902796301154739461747735516119539829831472767065069182151045818411693538050048395634779348292535463688560010989455210970936475874104539428434929169446986911309223127623497042328131265645173100743403947578715610788854363387579241336875841416149004500094502104829268232311036318828092856458015381819097089569756390460307445583009605223769885199757019146152150486004434407009624774191415442232738794623053977238993404630904010228203949068817302259693036360133299721495424355513604008931260164400419615162483614386032260830461578204889543879522412227215266124505857765534455667823501394848226635008220587891692308133658991326301710154420935715772433088961431515806555480401500008212489519510348821813656133567283284453221202380211210999199859122624375226405829261720221618096153277620705535285378586078640947642833939603465854623653618688678452755555602239681174931828073791052000389151832132742637230987123038841045108056980613713706858036634659363551512232811887208281927126817331902938389165721999500209417348940619373584585055940206651004671841837566248651759439746401124259885620641857454037753514716694329650082735843302100312961439247879169208503414269433879821798803619122728592551516942880811603392810754785103658569793844916982103404525983856763134999993644286135367860104599028242776848279987705134603278941033312775753435583726317300496529168133311580662124349568409404514549433942403443161872333471191263169307098673681445448668117744682626157389427425662609793663914217458464205164690552867971647330281603789893399954277112310521470999663362235192484638053289186634220789072741706162192679556402391471718894239935971524839742991799643806302695319803151994864490186796228471072254089004157602838465820397140922613287294338972258139132162332876045703925643182849376578260004870308133248883853004691001839551894522450103617770709883557088156122042422842550814680511112512460816958568094146096677557025905521219178702879112365111432851113697802359143898663368279872574710584779149724143573407461973725514497467441917002083184092932807073142197222827002592890511996900371936342758837089236333752527049020430179211234295162206393939975779773544618093417736248798433503006128694238726097609503792541400671774464752585285415400802621157502840599399158692616640061016336891444586253774181176200622349886723650940898530358716873243039961434895748974584831832265312304540019867523835286873740473650322371286837728728646150406547158335077044769311533188245276940014552133508230809504448350455762632834748101668125057917508061204321977945227616684488371947996939113021945456913778713001365745676617435078981255863585158535559227795510395808720033244944038250550883005892169589552284415429866958481947097713171582066185813203549510763808579233187846890097827212068195397958911846846434083978303791700877698162905604190422912746507086034771720384084822674210943008615425962421872920101737898752851417139227284056056772456854434517127445033930843717061333930238556721864548596053835275367173522274665486415159054388504267585951382974866560124277313964316976159360698876100716266902328391864744935416969806220931185029367406938307884038082057374676287645507069240264506891627108899541515066861275345395175965629726934221462195745556286632424845300128872374331489282568594945875200547411360640190147227679665638808786180825831489243883860917532063138931994863250330709820854926628059268552864035030700535814127048987246463138702939277511774867462761540367794908834251908113689561286890720165357078228270186182289250775445849844453582509241746505003519938632648861965949448942001269968362198752492537643532794928687884108274491298317620155061136688120319466755547878544817286581806390289158527257416446965704781243819168754186324907979700454510360472817435691584897545167633213107839397733734692657929290708865246127714027486133276167058330151644356137342265959856183009647209486294591916417600902064470424374415172274153213140158269057784684545079212570947736453741702934861572142340214257328533929074859538033292156827021571538846358553130074556634369278403848411839572363772462957368853644522461048001709717824256497892272594481880943759063597886516222319848893637492341284674816146760383758182993279139793432332595116891165495592274566068327730663123876650696679821525367786849334290686354851150908193522239253269591232421157330603810931409289273282433792757730618740608321603833535696840152824979737174413451977062056544795828239118622066126263909936708713518989139410422007855019330312724299537180025166240631728590893189217101193806933049242052535739215832046144741840440226075330756694446801727880486751814707918834408349759073449276849493056240756805233695921577148696365408115450177920620535827820818582097447674780905310731686087712830414379926347941499182940843151797116273492156236080300837446984212097440438625904768985158542477398191640927553917307414857598498177800785623165314553314771686007071259570434114718893287388869917077356690548327830122296501865361841030543937800998498456104574667127931621854963573493257762115378574175697392367367188820223075582209327636272724063110995915499075726306848073045378263521737009919424396795809655979195871388439450040252323085463379481899255301139222514027010405877671965399197434125325928145634039452690126645751856432096316223263164394626506257534890755243794699842289135058313471508939464081596284225137930634534952742681168709159128483697361915194590472458787338013950827074905713264864876932746729235140632416260785607985249696477920318583301974662652453273283191660796864011484791766416641278798025891124359001956885202107202110904465164198838257225529399300695798588897403077140124382400234194547820321018236173532290817083755509959878374498227692186960160358052295827919694803595015727410443171884713269580474058080803954350448251383147380264538005238298974171234105020676680205385034291988267373444644695111152233922391982862488226292328008604234694305051095459276194406741152716024950009342110549124203736565038739742843629556626651468758643063563414214948310225351432048055421337868300970570564723297468368637656725478460201131507838732491769915144551321733337377886944595796225368677507007098189204441897761797797637768269317200214900203726259316043838520275123684791041506288647103602940090124136469083728511192593456281528332124382857540613311466922508205614750055607608267166602680722872514282478151986326479641015156331002262482830987824445701665263158828596604466678381549723136281019307033129828075378108423711068091330184945509677633859310972763893324515644313916433089170800564890400441515906933213283811520769399140108669241009529578372900224208634288522111363737263622304603433026543783238145624613820711226623932798817638191276910517460830970583159129182453681092412674315876766661415092977614188192756998631640606607554884302020102008927280369558909321524840892054489011742222838425058355534226531873374646174317446623065166846642478158630057509862443947999081926868333031562226950439492302846918569287610965215584945289210504795738468246516306404471787625147261746755275777198568586650616942662621236037145388628950450128758322832134428652624512097000851119051327074672966550573772872813291600390109883356709090435550362201781161658733886415093784031440134661054601783808428012225555447663650128491982977673504981843869138422197755118271582035275469865320100904827490182532799026231419338242833882064292039949573167404940088066739868915348692688518901773763978703692315208231300941887060048595560898493204104215890157015193317468861488115611133107021427010174119134260454211298529354639443132506534658094473777066820804428626293121243762075453699220549266699814035119269401854660598100017999726607111978617166003589209406809094750084130385200428624084018631492666379966748242323918459816100128246684143033190615785326108254952454144495860369183533735164532513689863295933683546955776929156330747957535454676374156516019204597115596475088673142693758982693375150356958919496111392210497798408714294251538511219613184257863324103230866277183337456793084833913902090588865909126213365695954782606621905849585709386683075720919273557273557293233802929866652156159443325088739581483410718328463871891166733960457160890046789875958862976749623740892129133744161597248820672902316000925606236700990836909889326588140977981439078022378574702125836686337196790235317126561637509785525313642673795223018923748686443849504998920978844918656583831369082369084087510023830127983679321327951106617856931700018920306729577416014578376626518254831521349722145967155299066133488975091117679200583972123858763383661639544989063509118173673713886960494532476971459247200525591379435315169218217131103294293516507194286702082262878944568848639416938026245724134233476288671878401013384789264468060549650254479767249128987344928355417167332368439683646038589793904890993347505638533988219177498237584376940051783052203177523773956906690658885597852944558062474915275359592588209309125220288740907794935075453220795239304339179497676258514262808371927805642998510198560060575181381603820251997898883098087623802510142323102784956353039481592386573293628026399818175946038777538867661498684983349791270338464538050939903288127255768576069852099991454587681151256321559659640561476759609003845718280688752643850178694182792421695945309075509269760281197245403472969182942419987415798901338193466056006541227098825022462844338332976397806074876438959135389072078314980639937191397773382521941065461596617241736417082723903332544548981941529121272692085560736492819361750080123826440567216812610401160438971877565719353969714640907564267477832535139069652655346374398197698373840160808401435831608601320455753940599262107378141356650382625015170935006328064498284988491630522286261367896978656775882450339686573687940190092701683349408174435474161588514130605082864471792445820408560233216961959040286145194608821705453674390482149076180901714506852707820866655760077415913780734605788548835383058725693977522754821884818748943433256159252314430582624701454499808781451946319049797339207993662767980106945329596045167222914662045980536385599257554942884157579209079562275433193999512383247589650898093144059427497063316755419234901599304126452837971053398815774493448992691753544620978891642639486544838087067347975979204744807933471562009354286262873126765333683860211467905183264376397135340569952211269132392610022092561851890492805325989404164482916582862619329388028802047999787060923323061693766097691070728819497833207331214249710863616571738626861732155687343526284887644743588681724461701910212760498232252530277204182648812969430022933871626519274804730841623223652924872935551904814336889275335859810435127736951585852223769239715320267484420640894509802676783728699082505142926661715482577042182700167148806992812573111577629971117341970175900858188011733458742567968930788129374447634328909579914987007136850128971505592373290219093437223398237395621912078687010367487729704704221504924888829750570575641712456040064044816485267708321201547045590873801980242992955042425185208435259192163319429147869768569139214319359016400795551645204692136548266769210833519528789344107139897213546361764511678282546905266276024033359833270775568591700143827028638370928629661873028172910368512713540466704615151141041493274456608617112266764875645439420971068110855008240251737856399579955696404411077694199282003812655352636473632046309225492376100672435552408053615160646864702328857484176198205344431317812507335782132269722312673807506105622207448918720732084115740553292405851752291766655564122404333027674263442155130057024867177755447370364653185015538091266334743798293976932376333715928700782156374098848416248140604332260796940625469235087915066497703139827792953978375531102959483437450633714290779175322895584279786498619819754721418865140950437154948182955237575520506659151683842002457164124838779196179681312011852932087867163022430660088747742516214637483665016088512059807963498572108699476193999740533378105063565088888153389421240238699513220361198692200116505460890560995479718687849269705653114267064191540138518322036970073667291466487748190182469110705609140314514202760786539801867725803132402177623095100949700776686844787655182712618015601925340131858311656016398583216942120454530946908664570480621777445872286237563233252189609398923253453036417697027761600057916228347289086578006617011935954156625436328770551759602423146588695263853265907752719539423298464043277204846834786679976639781401258528498956955521441044473074774008552188404190370265917915513341543847426414511246012777670238220774383928933957172321824492569223343694194723068893431391991995386170367170919536451946799341693096158947018249985674667703902190443338470973897614392612241891678138101223349106533168189454664637413591999206652457800139388394205034575161045300027769679044338784119237503140542200060709564909772231924074964679592604675452753203679407595869729644215805729074743369417714101520144516651172397105186467062382227236016811219754259717496408769386799163209493539127142089258151412077246145172340683272460324649077998121979740556815764690703381030506746795499227792700626558721468812806155298531342033859320055747445387964952252988138331635474624881132922455271257798076593605257937131343499519948301197622294528442096518706540256931308562600372696757109317726486096005087461105929980885368531915069648290380155014629678794423395597556977801918479379629270571003846665836003954142959989025213934239871605886608089874148464431227193228172654590062131688095127996777454809856092224452894289736831747194427093018765582567163663985541400269740038742663691804277251323828072273576370819461566199279814126691554273970397294711174328334149781138297246681666605359479228635900022122143547295467615948940425899338000233930983850119371677148153538262334946377377184854451883358754890399487808845319972939520157703349442176216614772672480702286643848760536611085897457677155094166904467317051584694389126367344754545730386279811903357792681339094300219964125934555782904161941632242567798752424127966541206462651863872112749616066093409427739001646091513634989583491039369003373954880424006067740893329098373922381352895725977787314777350706931097711358721241490732741061044051032218143388328994656425717334499765284150933775740058932778147087172577354589285913625852977488761320295508859183243425937271659333916525026870295315262468948976584638476332064202303305139849936991798127009279944177980229478109069875658273396077770396009690108586358270534595871880163231932413529322543418020444785726037342492448235652382220862266714541595265351649829203472658708373424183362217623361495803327801362654679003549161321252193729513117260908818719547761411455104402799812542807786154583681678946770366706327261711200035722971880710820851530089031428733860118210044232267096579339808012291995875648196667117267896826281965024323299619132657750285699052649576405822819481870584553896856685644221667587089316653525284550257774335835981256046311090663035854929221561513045572848949503789375824286350939565668550366297712681477924044501257085608926939054865077014883130501652757356230310470292987838350213194953740972470308770207797215981597589122552667846095088972289471535446328471404222201760369017390033629106148799002790967298483108989802984425365264269181477234765817514614871182961924291371790454712258897167576997481152690614251692125158591429121001989383365166918059086595088882884576933780815346057371059104030268444655050009921969279534814330133782737603585737406298430238434887039188146188438059972007963296584178045376437617384495696358351078456596041014747018301769489606117249944091290892880205619785507612066223420376013100542565838260305069314727819950812390132806555459133530544160469943270347815111869276695790754161873300708793892408538248758569868022259463125279690113191528145792356102315644331797424727498699321060425121581264028970550510649008638926509712863467693127224056780896609852339408767918384170177768626124647259120727174868441505969590598290105484803512218777908161357631212236478789112008013556384837145176397863331890895064312361453716066562964081341717522622371006137313178027573304279590283965350934741695960140023556306051103057845099771110817242256955178882801890173813487384790674008005613669612575174126025301601690832924862216338929659131134483779780588139150445558380951460858334894649201884012925808673640204649777981081693336602981625443437763529080873727944213127999146118153743831624537968745051915025998662388422624754715358209058170117170729569429932987909029230591071402373051334800561100333281761149871832362863556134089100578492862952057613530396379478128054045315066432894206819854244158708955342588070460178880836299380634041044585855763609868680720901688521774368285818202684990989167925136595463061750842767664608094964738133897086038651076346251012303802154869073034006795766077281546315961389619644056205445845841982454087840863067164098723149686498569101909742620264245088628077598834301459412527302064393865655604366830050764370713969418611345052712575489221916138772678765647888264024915265171952496859357657038147555488862363426785312252144595409118958088833367384682340612552361534380243303112802946341661420628857932669303754885970869117536224392696850572632038921194185232664898710450638932657343309764508341645620686112606440148226122632174325280224164154502643095331349285635547091904989566608644633513225971566529427233491736231061587482931268194033641841068682172139237312319417323363445810315854017032231739378380961631605503414310648035910883482800755521218265058866596131727662547729277100368564738632325618347992316931420580345436741299751487065725168937897573243358778733486829314659438706878208684052459401799135470857316915370756285890864484064687663816124135437523858508417091291914817245306661400308911995925764762227355612287821728513433070651377158685197774552276749834314878965120492442574883586182585505515026278481457429094374777511439678023397853901621220935762992291668444365709322651423836341823991882724934044800722772196857796028873204235376905468163022855626663929606103083655993757854314273984187799980550859549465623067012416206072457755597301322486030983020673883936918741938130266984897666350607070431889193008941810340041954664981597859934396692887372309352321859160777609206278874790599938566003949314214855962883055392870153692091210290965750637173891639429666781476791348132125022747515634843488510257347512734340915523974046318390203721229660316240898242457468965380010725100439980419981148780058059170689735654579324541484691710912486312488834877624511332107207406797169366411686363669092332921405300779505374744811051982429738558351659841607580857070008067261325084358869358075383140755122357286591196174730983565097355704566536965060677027586735008912089220033706380363478444567934184622360682220470775434144100259374308123203279083287258167488708407360720808409831601616980333184520153768956909819353560595795647627629275370892396531512459674168954768967100536372075307873238464312144318226407699511628223606868195975835197600145588514370264871305596698575962519274589747148074377639679791263468891984675370564821689810239514301022504020701765759499213361868214516243721199403039651454982026853018940891483433173606607229239260627426064142528117979366712026188687221963610433640847205438804978739919712128886566946898768648660674820994488136994677046243232005537778379173963495688766777856696658115857667299093395668101561188018560315194440760941871521241181254028685103430517435803732799844234165927820868702480946700483688993598753168121655808016142100563432095049950261660103496045965099060534628244640117726458155376042110648954376149191715648433632371763245563880587822097302557049252256324145426218654833344733862760299069324211700842406396104129774852149000037545442516733970859054815532840308097422170676793847972284642722851102765472794055162070747184066073022969093857147843639178589086841676691317006174009371876970220576628436661584010385961588231174660694265640880555478965647692873606551674548752099316013208526327625658771228327359970789744808296808097233495275442561961457725823506912975982704982287451665146325010484075889098948756118525692550719440758130912586690950029758939212875205220732339942312321591280684099035829564444961924085157999045742048677288815912721986210435025201955317472243721135653847349033201710359895847172360643199376633570359301413524895250033360579738608727659725720390536188595180815061771266164617230231348477995269443774839236988224312098139961211669797271710040175878760182224976798664234287131845641407765267443531604954496259105825534860051536989643978433947223417730938805688964746913361571999568748104501224334143495703147581091458783237713680475551140633225874292720721577752866390526414569122057343881386123551772696531560440094524312435182124961550208633000804338178166809202471428199785719900779756789145477193992356229154531574585883100849498024860036455558205557317953423479397125055860711158112355313835564116763088309880382484730365087922564518324684787002217532921306713594590441611498604804103708931905495057564288690545085374711258808510644676499055665797106133405107848773778890036241011965820843412309300157227693309078849212006340917208605674973196926631683477180234592398899800701574668211860657190276606224844683568444793285122756235869207693896290825131126838942010066177226411454075614933356110350523717263284929553700487943746240960521991239068792661446641047652694473800899898325700971465678134795198252004350595506559007149670740574846638046056253235100782265989944908120849649795773312317931289593645519007422017302535182153635614245223862655616834400076991628248514381394177348763626138665802615936109351603069923340603258888992055646839497811942180138854597685840703358496050839669485194612166645802480879517129756236969485068988618798561312275197932694071504426351816454298106346674749247533883248227755387740749519555497144111297014426589391283517937982712140829448287983187730845742246994189312972790857499469105319173193160406559197979881611596575407219711621220804895124166484356428555898200530285328774699436702655001780025973668118684786048243606908581924629888101305854842194318410712663894063250314821210117877761938617405295560207592161802459804899253866496180832473301592798679231327314182208580371261567924258621788752336030472146624797613409715563948195849464450027745077920954035077455357490539621887470515789591441359054317204355830798011754858040459106879463102163705776413331001573451565418196645490774229636790398253531727114633916411561249127019039403966804231212886014619670394030650986839900203086671234945712503430660021016981409406253577347812069107356579824559726134925728743382394781038225920628752471023438154572492575285771441159736124355325423929651631947468628310650746911512134925262354303666455070769322628772799474346530526047023127896153307497645857170408946926683979056331528925540940054620729904776147215278110296137297549143541512237163378214377927834545400541021030027172867802039769217087720733464093621860733760367392885917863614456496722460124620553835239190495751036928041534037197486031765199174318226478804740589270150654715129224195677735536424932645365951599202068883192084172262190627725032670535892821168784120669848876301803976701621561208812576329300409215973066065118645290826111525074562915225431315311184005178556930183905476529157839860761389141652502536281078604445077183587568159701825188929589355891651969849221037676900967364239245971531882540702576332379141039225936937210968746076735299944791051198149972939880012745223810093344361220528847605006146830887291726743014868598639696295905057362372589009404205680723914202948866663752332893593180331720606858571414788365513546125460469632812226834801354250391726568833830432849691747020535292618088643765966338115130644836664093554430545052737498132446426734164428478580281571044738327666935140146060011134034008392328802838711168394238037001161058917284286815431396478678201809370998036173649525553222667974700760086064885971465179059978153787935444290231483110665197619198764761206539099475773589641805723935125777575209309400703664363124800096117451434130891649973776809692904545909291358846398477609848769084914452136364685478439623445268255646898213337420675489353851111394664463573881452570236946306654119057313997040646099441521637233756891927872995401911135625305201782825326135024118143833012824852930530877553226129245956987379080362355645661264811329266108758663596541459605874573372629890233734399200271704703787941086614146767047477952695942522194501049498837615219376310384684314356805291559014148724894952203148748307366447937158916223201677138079924622267439535955038330859868852662602549853091033679092925756678364046905851502143551557924979956261598941465552860691835190004449962559674142546583143782899552739315455335306806257103912670969583092512543639009701842099596635151769326836994511761000726218478517808455013463347130916011299567888109908220458399388265769889275329403962024188805577518883508717491849699548384416010482247959217752404523845848108199876552596776560723283830273778824608915907688425872154561537523040983349544699098851844243803797479540839621122507756934409714540239166949417093382546399130422909408949131240990792268795933489840431836391198380667457692263020148204547307149784413891700035093210709207353157596002056221928458648758579703157192308021050291796945757673357175949880118728152413312379721663585799470348381988911606382078052523187011346238449368906978015246871095320522803153688973454778021691979300861535264754363721769140141847650406206587162993853544342243886546926406183315531588747071119187101112931303223471352009753047911717310021796810342103411607060594009643097758843908690434906176599148389255415066198525590467600322381974149369293368401547749500420894814892248037540350078284864783879765305498907034634028088931547646673104321473122611352314382043714213205108984294465357455169301795144840162128225290212501706619525763614639641759185261598564108617757687788221481183391242951946194822478020347976008630130575881295462979577057860500984078034906001619943589139542937825824384554100455876742141573741221697612774543006385960499262241480437388469141936655221586292326485393789721324187855148063655617658667852134443975837577596758360636710150024337202587144880955591661859618262441490957455822168871400629298170684379383904877988930821267646249071815722460775186819213312513985000824037892266503941537653655533596855845671411188257317222001822435658178081596184622020099616470015301321385133363881959716382953989439539335834898735910647464479773305723298074390508480758877044086941497161423468650063457567834412163868244366044710527590280919142482159990656786506793412615114687340087145625324965864748784280071426222713340113592985631644669210549021596381647688075886062163271174273636612995429018569093781985996889910825268535036826741100020199360092957026311064384225568754449314317086806678646769308435500952603596911310068678045328476821041976736443189585673129873933925407004189988911639089873008927437765092499224474171581792438675018122431748582879260326013119833408289907539776095296562086684795800162223971523962088592151810430450716839275593523833227706872219634781062901727302273356820681482345600603584666952433481012948829804805997027460064724323962174842821801577276497111774645958330276984794197572025174203071643179333615833622686058016010421511793527200241818417910485708140208054445717681883581585866500934858380766651412316246689461583884744152393108123531023071949540934736890561222904260225964121271096474697059862769312480049787062553133651510768415431036359396613841635881799555547362171778668455721036998551973129008823430397298617731421820064824153926569874185379346504374365822034147906523711203104155018540876835094063444347769091822182879871383355830456259690959076754978270805285837788195739270663246895228987536542288949558348328530016207266586000211065967763050949363958885006930019916043984484521087245341391622432695914958630342189898316786839332403859543294499491998049381424089133156278000690389467776657237209771170699760967355858903639409037124537678694288913268202779227431630116002426118432562164780417823371915173918181624690707186109207996933402994767129728733960534268017992402950031907509990557852943310345419937324408933862589645532164267607338506596593291079052324348689145354902103168655595638538437217149958194105650037751651794324689604998732598847324793851606044316729077877082527477060844176466945551733048178294529223851677712092329569912611480818450891739811018609234178278205993172058893218853949711980911623505456870808772515722938627697491999283156150671452971122985666638286557478894912299296015731203357031411427021369689888434890310318401131318984695661219571792083292029451836871483239560870903490481255352595459706780350957984491749061241034360788337161471311041323491485608600995422153700119947891463001807616031459773461671888313930830138260419165075324428544385148283570576269171586255029195250329396933657488333975087397709630783514866514063576672564753679833810032555973830373109328188915735739840451253661149860968778015150821941750256198841520454744096527222990075385069498984052708620801489092136741569250692286201764490001725232721951904320405129375581779427280405871338418142379893633536596561803612855898520104123380251500014473571404776718890401502246379503155622003334652632611286719607920941649929343982609978821454901507617014345690402776342887531109377880497397170391930713746494821162378358924755583202540511148536042607120217240893278142788218774067342002760570759622705303672871029723527214515676721930809935083823680311534010816520420291030000487657581763605401959841306184100270846017358744862814485728079386994108298583256728894423307755470189422294490294831371147628656519138524410332964309908488626038043875531520230640489034033308314289399575695377103355014874468768021376988587934460633285016818698603819748288299797431776172523707354769550675554732148079253072254972897017045336508492026363555418902705077987758143973220912141410183994525613693369469985089702156316332897570258821311109179441608270715928168645450965552857450454252074281602077722638920890740928458261849107473813993313612442263846235961562961066372691646520651858064148307356918901315155557705559555237095946450560042345748096766995960752249393312340137123492725697571733352268087814360340413677879518909838746366690198568860353054168052685040365476728063206025414043730315545392587720350775840573633295362025331059566808549278555105511745534516360241871410035607594329061932993282520728654706007840981229319996904845614940552111637237487985993465706951835862040175399095393738548014461668159530011272786778844526313559412024447504200649853466052964436224523675296609940419333744327501847772844976015695919243353917052168984273826438617417975165631216115240508829159703289229525204666612834617505862173817429250363042638868197383297014904358019997496467772708710391373350615277069396529238421813388204359691283036764815764047712539092419596490770784781808963320682265745406083120243544483670353880497111142281511689631674003407684367417477303624203508707106389461225292024162496862422442272889205726309397698247005541325674997891366396290058374778439191936441783256013362084437747181643484135128445514145625312704014844156707487758403994134503616269201421081127422240746867691996685696305831226443031025396493706490761619232205319076971704452015483143846155735923625156423256272148199130192449452905422484309289730563888738157638429278067853630187397592101483328898005771071442405210984773197388676436403161377308899764983613918816751839352996995748079341400882465012721699892623386539070535965665742203351567705621634518052589369209326950172712463995478247351736540174586776325735958578211406426414493143201753194039523959590299870104645275420195719401885768833802871833320174389296445306256014352526239137003296774789980250026640652895602256197802464732345587610946304473739949300629224893257087994259586802057711044393205731134205461804779596013059299606398070499139780664527441667292473920553645254506491438154147777394176500211167750663053515530627976973094099554235894421445124016469776436507587408009976030608716873607721481858274512598648959493111252337213448331866488509571006295912815150199890675437890676991740578689813275145705596990045576099695820612770672379180622222621771205909852775213900777862832432400094980088801013053617045162121282216273060610351033015520290868072678237087793849347740904080784824600844487661540569545516770477162833637658954720617360889655433577019087387902242071886883568504927224944721246359295919108514121906760068699036997517699318164024506165033002906165765998244884394321313794260401163478701426889277872316047340241320489285731182045621031110814994607468599590904153039769400539701653538105862474150238236142537805208907323347185139673084369976421999081794475950899369342811044746973687235376133641228497400215940077336537060829940012639355657652276202589966501456494172542799676936522113746971004006180012203792567333542175471773857577086717172091688235939441230243266047492396012212581996350392433422307147071682942202395339973730759522823063568387849317196987385896340465954997373801274931427973674548858306573833663023699507426237442908773928479157169377606108143812045640263584781476772403694033665400814874350801579684893751482941074706596010220210062407353061797723040424198392603977244005084330166917493460022967983199934583024134051050361010350024309871185914792092437270297788236121916322381277511751505077433510597919064934854458186278986697445965388180492933448802585816974381711712595989071665555562329241834882395486877404863489073841532181739162612925104475802918990081362796533677986165240293418207866171696545551356193370068572355269630177925177484817406374150089445720327332655371055459390738309851446647719426709999217705986538111645888078947463825462951281275164094043474190356150431876149643313257733063180446274880693068146656964576037855291561878006622830289380327845067134253206432696809725911894775446613920607360157583670727512149480589592362055056114775395324874616484611848758095384165254258242331133407517974609794230096995659598654564984933934417527092894441697764838339721377097867067393451416130216777447906662618752072479395022406294864858094539598522958414423988986111145178448243146552350849432700275923902236744048108154222583406860716729246897749182171327649649179028496969680301590238683839558290608604875379464043126142202852425130559801773613869751045376906468360828170477401753321737076676599130089347011388741849666357594840092962577903027385995764359043893269953727588287140338313660000667930820548812327129623585041264880126236646306961699706827314277274641337602011854168836353846477714234691958138783967292266922383968372070783875825656691932852282460118266222875698706774805605891520674993383346326931514853273493673690872549165831653002702301626175166403267153719656591254850373742095525662839191798088336997396341224308611966147652680321149883283745765127936774247040504230001365202839630179077873154712452782300905146609122457316082759928233440150598305106461705894082267867096173677837316816089473179614904854070795359442526073355284721985737064697020927695820012085381315165136648992179088487832464737189935003578343162315933221596878917347607758070253237835740392239868135879812701271215027604613218036506177514616771342067674040714542076573352816890256566588320215724625265654073337662547898212411952584860636954428749738806145924185316141508363881255607203146996524760655861917363901630965047858201264611663896516203260760605846870117248611823228811057775233590838684857206441906294030874486381288106946983362021743498313514837835224800484997237513064615561167784488403400672189285443826064883523762910354754526467827856212527842985695693137589672699111175499829363734375253276941675690759424497341234243524774465003105862874363820854502963069742831301860370881396631413771064047564143864851029416552956786314157647913568154839061361553705155708994606411173255768230216979853045311118295633865112187433205543498856282602078029638380523961003951359591703439315752500448486231020126795081415446542393047748254312896029908006399277080767161442953301420308335749192250179925876260622909443749398519606702475995240668568749677299501870188936461318779470875932417253334382794904580493229751788137447010287112486488241820514016184244192714965667633935088167098692524762517519285915601629440722859704097038307072385949124391036430373508072498155673459021666111531985344086175804731085431066759695407528652201757505937819545004557263769252608387808390858955199797183013317642775846707393576598284665182002005672918822010416278189004431378592492344551909360791602476245086997034437648884949058358947146817605168030283635907171872059244477497011221631180926800291966780511699295697967435624740800583118763243539858526964198495141910907061233209049766697447636244146552861372473703004706941536915350207307354695847836504443209814678290184942139930970883298005148395517511918120469763900760159817105343812874399076293285622466123465496619814605206387321537649277621322139798078497168030676848730273777299931360357535423282760816931538963206963225409150268144263852923868850133500554815593967646647451829133749435243556640700623783398965999570999437949278306261437482991049861896897034893459282834918016901633019773381489829742516976995863371900793935672732641605307820132866667257472421844815673853588371707922203023201960814653600348272203106375722665214977996885035858044959000918763139136776461339548227302226910646541846797928091769840899200239163575498603204133483496092916161240710692624670338097589895576265905740993568903830453149805471203866047620149633691960402188007709386468308340856014843884857423571042536972442021187976994757404036999815017142899807996250538947633304753585517369298938166200019330405887322351835149842009981658718068464165021708619346099771767791373730093754901349026358698353715883579191689034926503483877253524817810039298310851174387828184241833610710008234324374873963586626990014372873001201044457134803146268733572054610186697919884674126023132101592336183854091360245586042087611266891536879729361864100139299586630042642192552783168145048401940182030446538706405759193025852394150727591641608511337251195417398336345702678926555174420867464296869385554188744763283383698914591696169640861698426435266503180659418485849727443346711304624257335130049596284920397361793560792329703702992334810855962459274503493025947123429099455778686137785279841714093731493788143450330143656393357264476405248281217566000503886775235797812260900204413342141990138897485697769192771515723177870984763562018443734499224961882154464823518627564040438009256797295981289965889493514632017031986573316954954830123807855955093141404398780345233859817281296868992874899212139136838212063276693877743831158701234267277588214880576693549435676848591276058182124259987656416763763624292229540139494324222158486808916512608937510881236622724432038264635676027578151534266633712894052043215487107363576351039825302001244078820871279476177211842949224168654523236034708036933699870504309866611951672281229398607549635780877497104281028801789526043884274127418104381288680506681172470339289636607706080242816227149611613418512502365150604777226389550013843597080266410893764969966212247254729545150225526920572120243781755611091017734212059852179089147222845112777394220941769793720584487527229109040765595793291301089441938892449829553587739942934177916752464916277349479408922696751729554625163404826621863257722466984547213426240559637029345891005065021351997395488629746641240226774751574759431034694723845757016762765280758267632203319895602035247647431601377954413631400686577965883230908830418795523986242341289145116461090004648974773674720769021263789528466707036431332573897348241442258197162475462516798057107056174510106765747101341526159000890420226310569770974703310613734292533597713068938968376948751810454791534356205950110970963627350608360134391509868376347948142001172546849823092708390345028700876441985074899301710839556711567187418043383082762609024168550118561758590454886196245449449530565472428130275198922784475739596277964980254516667024569357184143625781566307625316758190195654399064227487117181712174967186350286193237196105066144631949578483967179236395226405488846491644473217139757918809479064100333941433798297578568095112821493786910965642769889107633479622533360085662293706243605260810384284755818303463112096252226353321113304384893557182753236857174903273619633333305564750939313600739121158132893634346912997820836204416224795977697153491603129254074640626504493068699443551274912040221549081952839528440014917578985791548649424706415199203716797862808608810315470181334621162317551778527965941746338752190349815711872300793606994817958579383254779448621862219657366519037608078499909697323076937377606865454267069476146085837511702440355042742753132536641483158216957730201663200710259981604079318871474412198340000679607450757084651462423285727056745168889178889598834903574590546454534404596459358524580207330938615311322712587999029591732749353770160202186587554832600744278556938853746679138569773822056765216647401361086120804893674656108740061816262458711040804429898379963688636567204732627442461356520020868549004843197993277406351003677639380208364826382169974891087341550532012709716884895951507861186534149260921698703075255890304979521269827842732349628155712917716350572211551850201983091383343866717407228060752389226969637260467461736129830139512973135055795919058251382413356314112097068199398415589108054520447554134480044270154022573821158925846430151668698319642257511542392767404221182537415247315456839918158205907708429816833305593302725444079248936401655535987095846199499869571678356339286347498845399246251585575593560085225728875026990066500431316395493401052236408511198745830138533711412047959616703429173975820021832492270949235596378967501646245913986419249982655421313238477816882999972982269913290448381808062024434427352331869552713494823992113690100955806289717298323633674508337269902258217702639121916933776791731912628661265843688063627360150587847203791019014290545576320789261079051286767917215395172785562060875380587762367112076105932350837214324107759478385139695927597092316873954942251398665113276780549363640089169234188098205931072270612990035749681402469040278099319268831961133605495859657597664992747154917863433616844292492960152733970996110866613773997144302392125242778149523000144016080635233960917909736521804107632032969256723928250821760211745828244834922888055727803044815197406601379550930215163491790615487876088566961613689643644302475291898883790872906942721422587385885028319819501438829805384600965471484090610582949452241728238021212453385239451706814504214915358290489623279673135105862004461226918736219460572840558274305483054265880761636491173956540306942676769959428435606755108901923093307958173888303602789629055434654687984850337724230513312945944027412560161423693502610103366947648455296341466851711717482888659760171210081195278231692658625204632011438109236283278688160008591961069360840672232755886024326796984727567333147476899700429331243167272366673150058349987222020085124260867828923735469302410325044604960246156613690470736297090141993395642054350494821258873670124456617810313723471749304319535693484196712705065468122687583144241182992922195252268598981689783237934624414671590602181969844134773017540420659541846717769814295299913184276479649653414240945691479354478276003615550302034263311743597363380921368008700912519170198243531788718631326873333087514286295774950319991415853571027110126781762834425464281335129138386580607952294793970838507406011983621251660258372786327713930461385730615619530784098532687915704071320494762079559701746676717862579477122413651618795758851539011726626613449031600820617081946389955446390036199150071914453917103142621882684591668627174580890421623642382837520339064787327170401495496542317985084230587890336180013901617569325200474546052938789672753668271218071107742853937204829500383723426843248426124089278139257931113413882091822806705335227358623754253887196623386596991987145962905097638221654131688349112868871303305260719353934807756813590762958804481489951052488741982928340321262596342113867650640193440321351774009107056111857064126913142940960306771069481119222077050927936726220355215815363702078695922732456991430242090726818674402646995527140508496115064911160608539847772768579953988354653204953621214968538813231082653737013334057687974032601625303856471396478699267760052306879909804839242835281016214336826562029413575235789423952226159817546348921808220223989708737995621379021381882425798904891994165351284022187188428287539526530435829529905731836534695364959438578339502347112648315739672671595840252878632045398420374961948472744982653168402135232261970867899989966322932031897656730716135221979561127547620937303316242943925842497735143144783308978214261820143640656967139021228325479423652816665261563494608004790684797599650692792136228803563407757221080504328877237783443690884770128968361162968560519942796035449208265065875833124186886858135776714687490471273962015719104471953402209688405377124188671873127029169117683371284962408302352669271912876554786955657833027368782803363871720997477278781212589323108834691336694816713703480106901153734170949364767600910713341802258204316951526174524573183339771558637028162265858654287208888422378455129047683365972712794370198333413542321478338998223986346661115630017721476985495994425182059728934985520095109894631912013487764191508855375678253354663379529816260518324115356249408703953875512053750153913374411904407775302673617929176326818615043456185743689571261956931915624775335774925747217842066613978902912464249546334802124247885337796140613079651784296275293477366103050687509182484518184536514434184800639738385446048647331079578365882560095699011257121055200533017090149438358365150920012737107839079960378893820522215245336019105083575691973524204577303476353295777499839737591201626224937566900718757115800271607508307702063839680765605836783351702469932675395367318196421464350953230223769816916081946792136125930268270770184286751623725391441335425521054348070872868818087205928817647781521115703645207728521184402786944842130118871982488813706060642146002116797733371767912910098515178532023950031924361083055463726181783829584905524759877829207033116648234497102346528248515803515590434729660117834637465077414769059460549664735846251090973304421172137600477886667742072914438846192302280672099764252421359791869405235925658121550036233141116641674467022180753102151646250876064322086991358951580595398613076160038809010919504463546044636797587890552584308971557449045338389980648331948145758335266624914814756674816147876354237052368157782062006324885002855170469399400782098743511322187016952349413389934415869963205516600668862761982825293152903410080174798053690282682691739846435374400865830333373869892770720568818500761343963252114752047046252641936655382066070103970522627626033158371715131340233872979873540205456246094505756190129394637800931659141839782674052539937959636243057841403628252581840280078382079309849871817577523337267248472344944536757168951777001706402297218041890845540342922607854103157389183407049231695274487369927952136298558660473398796870930125898205816298933084937021102118554928030278495811051542325255316554071363974466590721458440501299391737839177486955248641095640854264479842169398696674595947198801576988996874757355312689434777908627020614939597801294544594708130251402404026918287853364098412453061092878193097185571719946527729089583533286847890299719339848750520269030036401205311724680880402367804532850537966258284875900948845578074097626757380029645018729840151287549850282159556037704436667273542883054917592056192768612126893551957851916164224395678463365699184255811346576939256626089816096798031930971244988279128652588934178985235792991683974061701503309367777471248742543369556979339627857387525869893255312334604421443129577782685465581980050310115685234030451630609357304566492693102780461204057736457857078974294467675226258113963393197329266520542190594387378677463278257913771834911695292087978636326553662395018665415377368270218471605056650669937260492008650081170682722416111602757908078490341005960664621849706379374945478644413540842647345543883243560501691512464808368770142427574860800038553197631973357749974768653890665475770972803859186190433416603513631696956544215304250551045736859455204028453388672208449157031134846665829952909760302599167096214622622829059745983207806244278543284682732936150979810525387190447436297179884846573998886644507044390947333481639666577278843401610385515161475158151384231151240958481906026604086584623284824521598637797466869325607349550349908928728813605937904893159169254323514588765580887951439781341216961216299219161227042941621931992694742842371517882497623910649004637140763078764523369600239286201620096185930674366366229996442874290557121277136125804939335375725569137119035721573949229578881860836604711487552536729106036932283600714676368725679616036173724898099984384798525363364242923780840302040197934163788786779992626117425121812384376887081709205892152661353821265539332589010825841764464847298058046870902032436045383438098485602670104791330149649036631071469865940158417513294736894253921305573866037738219101776272212400617201085451400955373488645666166532979487593366867800758004051692433695278138300829918333156785920674196902532531656180418203077648699630228740849714364834541422805953523738420415222069736618685015433180827301446795318267219442741790427009693154122645551796477204601086450924532737396282905206317719422634594768504725819021555844986677077739605765072376594782753880548496501330030854356856003796667904627804992277595688942472784091610242484424110143148580828793699028307133283975938619663436039994866462809969851043148105891422891946746787037317054154270328708658705691846036373010269088777909575866786974733875813785007773859483781552832165635813274660934874656666647629034034435730903673136696125345983667220866396500378936820796943359196834916837738872124564017671124203310092631824744490250396749281022288000021147601264819897386916492197627909424767988076310902422663534625192537339395217408017544666096218131135808118572597509941564568249510625430641426700227713855750388164909826481558215297584432589900716793795155506637410490251462508537030507905546952691042454872308730566860471959041899253645613217567763309348414344758168759661236283571311164644030688367137426742009117682195288807062579701927694239203774672982796946451422118681529862878231286726941478246931187524559255625560627879086748841957653789391595058869451543132517825603625751539634181890610918312316168814715225556785440855980698525009291143570699599986129984317559042944854770530355658970940208705443544411710847862957097553507659559197702920749217673564868298473209367493556932145731793895546417673465251503028117011489535784431594245464509383577922997890366957254610256070894983887175562680537581154472137885695793092704689690816128653129603730380855590818463111039117125046171330584742604587040758782575073324710058902904880183729427793033433921195663528165057053002184959071116448638241671229733294303968054621155093352692502785859838666046342302008533896090341361664241248212339928437651828374753004746141319015974719913159189975580666624639208915583500703885444774689732106163209633727975054027633703303599822100360071104459549275122528768706746658228785745541074000817912301670953821096003142930646915228088203496313100104117791658409893231061576986397829326857814220238165907062751502738941926109488332355745577579245652549468908902448740970641479633354206515751456859884803054289945030312280489485137242023482316739130133621659902176124997540687999072380521182016979511273056978617655736757391435968689648385051737758086331208707775237129127142320409773258574757773238517689786461512457999443743003152805822495258667626575787258020511795046648554099195482142722505075019938225801454026320760463170851402440167882872031374617233966388280979461341437437174529360569227959057093970961140999975133336948203240544534311592657541924725392056957680108191158446885774315054396359986040231395200263624914779837865751219273109710714721397135554759561541583704958515008686042048641140699428123176552491969465177331239455511197738767532960323090251165543887306750959425965640104739923762549378074909217411116733221949598412929035118997925124971230370061195343860760295078691429220974958125224727727666505405901814456284668826940856762775815319470022561904432421674923341017229092010678897172776659341126844698609263722892179309498520416038996250857226655996646528322525873019568798050939283301987316787517234295542948157072377780064931026487565384916658682044304806405332857648770569778145477109287884439550948242206864466867838053567446174315331233804598406768244858403191239611810593361415387085270146918081275866090614013617797116774018032965692682139926515159808120426241080074830521805843676887442575259340632740056483382251339088799511690115011797487194603345724567358551110054570383892187113896739588955093857849073698788299205198134628960873747054482540260661462645602467847759491082970113100037515046506008649790297642876843134793080743858066210771440784920732833464760770890278307493632279542909138362807585640721584679877950081775043701255804255787780334370105989692896870828153822268709347397488089813833300794655931386335542249376501028125438702362369135829504116592607639769979970251379026682804776076653905077802170934583736768544906387950951943648697373222586700677773380892057417037016756287054720341137356168134092585705728370423636288073344324060782426528222677142245111053675039648791957763403558100862312747505591182325376805638477133705952831009468674063675502774126175089132519077111435291740657633447673237005490894535924456046384744531704584005411340180720342516641694695136940454665933386737250329883078406074529730602039276924285931728456024195387326001486651560384626861257134132107106699516747002236489700061808444256011658090079356978604790387645542869694008508553805880572619352631034720703144328704233600757839959278442382953450949817186220096442120139141580291753135991612748699490402441595248695246680027633306386362682228527275529918700786365412235097895267669793517018570359836645680524596869667917806756052729102597704322966403130858244164397685307172449904612829015183155054782475389024970040143947887971663710950720700232266535145733928474252437510682744956641427781151805549687596627619874301699824234536518492949392228485058717585653673650459202029336697904806698409721608465345195865569039359360163150045124882799634672487565765627787080434878762972777311758213276093292842364816304545700502605815615210352916067574122823092415282100975734960046242614813748309758681922982134967617658294420885947782444856296371901857560326792647546008116510535195028950621240645374726559237408427876730153060854943723064468078392034662985912641461815833211440080357414447040633486250331528992483486713016983760164722195091573149796430948383565395870313004206170775527767849918699908632039324417378151750432434953120918785916725053138864657595070619541075038033143848066282033148205073987584701587593971841942977515059585535977417320475333121455613982263067791754210931059409870067322867848684706255553551723153746494688105087474236388318396423501223876295211417928969782509707553665496520164746105394661868151066278743990008580212221783890798652146299778837149587252802153344117092385732713957031875422344377171800058196601835623240409550114652148533533608611548686227457769116011921602860530658753739605582924903776531594338671877741037959282741210427679847011888680754716858093774963321079413931018255667735040248388877159462292214112040700565471010285234919891328275580671289989857642442887017342668151050545055737703297693576721666232906256751915360931518463199249563091156855106714438361230597266592954069484531467473428114899772254623673185374210245444597006197052561680766577519052664778271450009294262425068664474716046252667248097712052437890893364001577095820852768518312591083823798502436031050345219323966090348274225758074222450245165709512350725804282819452618105616474728606174519566471737635317762496037404178633528035681134753067189083707122730071624445463139043052300824300262803827345535275187791032822663824313297608220343063690381234904797518567409022880208535283582978859911895554590482980002887019401390388804943638694368385972959913841684670528707600910764229312715478378628261488117302482175452387099682556228164586261704585652846906988632976595157782935466475924963629009658482706372313362427378256075462167170413286477155265773257012961031177373303119250154404360131310904508758022116993308013193690956754624498865266834233313698311562358102218092833354578691452220201723708481562227353872162865404217868987432081120001981074560798952723296176925269481414609831521663703118746964661388295530229431212332251144334365660082847757555618775711207195797590984238773686133972127528680250931910348250500446893394064773103171938219360887413044786035929647954168656604120736422941789363271895456397396465890042688744027284442306785054726619737887411699232016009625530525810109809595860423899807610928352550577287678533420530386655095700034713365060864327215406917787177597643568199719344338085960145139197742704435348626511888366330483661231848150891476908083012156728984205448166574666817025216594988232835817759104641923265840591326769072076909614981215097681576304707776236956499508704583884841570643049492004982568662662043202969458336074058562345551397536289012381050296473607687522088922636500801075647954115637823820948965388113123374385657927139647331109476483092846845072156929770052971170871424843421992381831631153080033278038158475046823301112367493276739680024611131257216157378708413474483821449658272947056983400911275332973885695076376936061092632355734195111349056876736247078130457628981020087273173854615629839321982745751864183167858804605769441057151220811094431266527087263783091078536156421844999949091476702337513016854499449595292441555171987771408141093976522119111447056693826533923860861450867707994322112614185789339630120586495020462870951776485949765075291976892198815994774310640423561402051216699563827376712761655256659227683806831637821212825244134686140721834829679495750545630495388246204552446687685970431946680300570448674591343480700809219830340346981187761174448577098753571404278449883102780870675324168499290643472557383637036036517677595360209824019252765411240766544264358617676406257816941467043026953438976180092048766246481377645898460492323240079938785254358740958644983261979135715029139225804705240365845872506460397049372235069683604397362572267798405297780931914502010255113260856031892554463364262621539937990211142788753115138905845753421749173310330028827413651186390823656496647133687168642732008045551021506634685106211048244460085294536303488601251910231413296213168452354654960267750524599628947474351974110473118697619381111781953566982332650058245181786138551862614594233880056978601826285321940070272613276188128630179941605327615169076418934721768677668501793762276653971669657192376565388335763932653187409389006129994365856434587435846685565064527513969294241726905000032093252714608761977086131003217170146916483333338995012205529148893241018321799635607252799525514707196086833560858293539232528780133363222117060291574647204764851032586630870977030780698075454550220219814314076134121580851939416808998241558573015073809929019450461620838790667496810882473227042956182669785225311186455552896577048041755234075725683801441585759260957840991864743924362777977383862111159626795448941280787599743515115395144528593672052156238302607111358032549736927399882174854594200086941829496676213619318560116866990359891330765882054650179460980651727890035810199195173278115741718085734418245812904867466700396872487091216545279968755561622105959189463521665922434227092839831622049040347416996156702598871279685693847721310093786674474446247498725542275099450492507384137447569681433394529857499017371435108864825739970988818822558706058552282215775296841743530635155922663323542516910177853281603593928536289186422313044982742350164124397706939174168413365082077435358267163125884347851737331773528487883323394241133100717051255595267909462031118351568533317632465585428133309171355572850550071073111783050603601150291735244943886895516210159686401629554259350992780244824673875668691273562989280120170074896829963408077481893958652301540128693868104620586385394431625303905519917384445421038347575694484270895421121389203888022532567173017531720836276658251230639552760387184214173048930158347601871296413545611254525093731192675012492971196751922852947616498833853639402075848472625241147111357769600067220377392656265809257298496934413549166753848936021663055650816417116471555416939970001384574111028659839187186436534851518147999529099244144545966477728821832390114253204959866132612844617578026351558115538956581679798354838751053449703516691629962547667150926321995393440606857632707475676286256930574424303680946230821992470296743611614625656081135112706677581093559298911549471607611651611275880601084227931802176517909208976954319778451683392425568767076180293018598938244406885037565640954436752249679450400978896549021118774804834473116456335611038491163764887452885543530197390784136899210088237412285098863719074951222288122397712812151373528861710893258540003769328782087620401834376317950971729655871571786812345939634969714648227764125620030214227347639338707248501194207971443974305252869309074736641865961930512700119200907690456614709178717896375194408858031822670181670652470980622219587299396794044169724891183047805672861669320284846255089215495388374554312316358311920794565787463216823961425404215477290948143731353806989262703584886513518158069712933663643334551444209116842367333057696402367270828250350113774084692356561211431091113179881100310998178083363413457095634014674142975653759736631791994207876838324508672470653815458014768856661539510803960788581157668975848954745095446761881756308162495245165182774521101072854982903951509208306011855451880136346747931446166436122590980129600390438239617601397138987599204361288168118821632441099692733739366905017309228138071374012066786243127596584455877157302099509619494334624317730523834391397669863430444659435704788795179125987719711375898159992894399271774123318693094435859489874344290523930148292118911140254225871609401532159713755427582308580214569209428448628430058173123050829505737398105341842325365237175877833096799678629103533584332571166030615215405614590159890295730661902557871497041803532813775760210503500336466112179826725806763082754841760466608143493783055515153380663018571078364025384650214705810546531473249684855504595273740339683466160096821211370594304919139696217365185477203376150439273263114788555432169055000465280414703273072076076102812860798088939511734350728344410525926166391971107799401555191804307710777580857499458451639917700377932863556837424221961068051961541820641791996076355572025826544163713385508368784964674044914133092000200299725515058598864894050791555511695129626234870751545904479719069278110502523115460029934382669285390690401732423029229363772438538144386078096963999045300791927674280315004882781239928945415706567757772126475351708667305382166299575347515936380677884046265753666975112315346618506401736032839836633255170460592681776963829382981598412583293766714009473333868819192941564430218938332829391729487332999418782654193933042569274690880214188274807420647143864856648519603675197410707932268817049942206543650698873862192726362913154054012787916166545141617066753917983831607391489330590289083355300876048828036823624885932753497029138685126448366704843186282586241357182445649756437576261353903457573867521136606217228058185482230888060869322482148602455162420763167673559940600449468637580618548922073144300169904374663702127133198186060724819249591083312790873218976338088427718666280636809233844263125481516307628757544304673944109660507965388279652755269290623937242427927175523826014171009504142169649785790771492590223462602816019405863166278252951363464015318983580705109047596750562680574978903375879493102710823043242573918842226697602479741701482087781940291850723251278137298193160873135912538994417743922745074634659427891763766194822354223285795991744890485068299857558649801951169917824708845489164321337625998633763932248992031498040473214326287358620004083231657758544490514868602607883396849843899294887032332500747652824910490166117546656119903772575655549542885992894814690305051878970594346771719859169094990110866540148664045432109468656118113774353503469680073748068877796235716630611182930467070473052496337658665307144772415072217165489024762506033849211670568707078414855059217671133202024747944742110269457952661366606649017179028508497680166476628775398832258235796493793046326620319379238186107165865235533968137769738173772456145309119172487623790233247442489090239191742590426909853210586378510414777621728829013990538447198610727011166723968478244440001583092156830221637950937679127321609261036721636152942290682688273706358666001675309170830447481964579080015838124760181601349943150194870414869582792026145451800492930879919889681452458357726513626740003341547067375440782632493493942432284435641060074624079574835560815739608026943735934831498667670263848082229079548921755817344867682104398725322568844798467328659228597019851665484500687566860056202913176559310732548287167442377253096172968495320522713666654234509157632991517920825030796139022906596309444431852939044987677469523625471721705790805563244009095977343649149018123566094897925752601446601220077960116019618206591026183288575595535931213849344317979359099294657130897293409214436854758436432308124844994055742439111562777516773409122249516345982468223169907806538639025518724588648494292282797314661964374830133578054090624404820918606638493072266416825079733818289631619983708550428882243084933167261975056474012643789702276653530221764397033306764623406592820841343990096301009496446154821283756206562451625487409757208130600545808589844902877115770362790142396127232404485629203873653354064586894819463517112068761266628071166812267725372026473897137263270882184927573360507254462515728733085655675129610647499565899457995633867140422835095738293899441537420586951556452774581957553693933682126939337066312505160439038945324437165030157611521470148714429822859322662486938653970690567461340069754705103287294311334789316708313688212268046419145827318198140356747232731414153554253775398431432055900614684408486576005785020927609334277975836175431257062596512688843271162646438359818227699492155807703118298294780144640075059387754572030952779807813000639750272637459840744040918460180130517752101573063151485252523121405865569858047886644373154076330531550403749265474677971154399634528549774843064106137107138309691044328582599087736110173209492980190262004409227961472174178559153893549921868973690229659670604394864038188155386531744509311735654376839776302597612201533799790064347229576792003145431600952447134030742877664709268270999506597646961372668408138440409351909727818667283833315698322024785700679966600255354803095921575389326644487257540570265060000942669034415264852941443372622487975156510443163541897757523310752049496626286175034296666838902892928842534491546335678907332159672448756063555606106074989217832751598717566824506130003209241274915945260568729175074050297385327187468555577245005116310586429360930611354081201808989614196068308874204384238204050203870548874141020144371768503773594063794336714115394020395313394208785563811811814369446783895767319870459867679904776954563963153569973179334787225790362253208637024876129150592898001577828380477932171114708425378569350485476227317854430764765391722661851773814789270845713288442060565963685551041745201923623560448194457559622186949747319287098016223235302177057235733195887221467371784991220843868168377760087476143955109124829534893953127644933277504008431168600572959314897947869944747905679516739045096251070810624715619751400228925800577180295708155109508602907415535872305801876770063825416582575017058174652743190197649794180818849646356912211368317662199660265501288149020154844247418230627113548767960933239579467041454714268241128651369475990154334864302213220859855029423800063716169090653787695674896461991852933419438425255808653694672883925343540603976474942669145830088747104330168726534166855211413338119237506467423892726093018376706771360555471848035381418937191821222510803690064730447927762808199533691457285664774347867547559109739366610812272959342278684995768043697495660957549969049496778877303349219926807438219301667895180757819144387653664992508186585547618131803137937353407380134436181803416395245594416267038860051705206066071757083155331976653463961760658783343409365386038411419337238360277414246678098663619456004425467186541454121930731582900269810815652389069996364350769856710238555775100163931293032291630469900544269449612238331349602520082158611034511257832798202650145077192686331555771948028150463747779309027712673929432340428494841072589897911108746014384690811527484989151214110946963013922327080418310866781363983941080290190290818988643068967597002532745553287686047906589204243104643466097577950464583750278008285510653660595875458169221790218912519813576365684703143665121114857210254528422655100847934708241268231477980203293881405845531625271433651866510628547020684630731578675909467763315426678311102736086296065015792282272346243559173606657067369581559606091051166786653142969359491608869395847753572456982070431822248682629373423346815640472522925814419812028038974176155078637026070344111245581286448664396806365197697999448736369001078520786480261690354058563056087552178747007405936657740166723506460482063286109035220924772518874762577934585902015934715368408650706592749425367397411169095653591267071829948716725589920735501975010417245392443760176091973543890445975413058695747006447817633196187729556009909343501177379866601093244019741842045635914360577919888610741682562285429396114558656172248355420758722978553450713788169889471493592317801590809138885874101980558358393933582284420016896238770715330498273193542202377373519072621365839717436931971442667617010469391340012638196246453901392568464465471000373916816443544292989747019168227359970092287599480699871801862484328079071544776776575598934028296333954640037182992165608902116534902611402742515326785277063530090597389718773098006657520291721148530290555546315475211924995735154499665027598376758509183005136319617640888501173278493935459382165543477825870358754719294105399413866396105297375842208500627603543737392671368605475823903971552470785804144410670989689396939539689617587346795019125168488240007864718812777042840344081797734835685825125480104507912925844771933288499879365805227281162965464563398198598664949034827801182803290792919948722547995700159433919885048707323840968957947608527117929134354979414852367678673469027892392007921730969399140792323012692164068037809736197327397305887661311698708851095303678847244799098888841443993602521251930870015171709178308570102509579135215907054536145338605009577208996844576989427872540695630304866694212406436954062286629658931226130641742758599016063799067754873656533262779315188076596636678089211557091045024481666567950694324838830726946534213884483977967249451514079281373037715384087824513542531906729171224468747677291196415016962553471820213855674680143951841130271496179902377006286718236837624193796193177038268469850377744147268985086324909866940955928747233878041586024632502033438164404293590344005947659658169192334917512402784595495069859977223681689905370085856634714776833495769672627110853728187697885107067717497289670540045322092464812198191417251436793184487175771714933242645740168978278073772008593945780675814957335735001028212477517041707287442601623193725949464720576159341838963287618590966428594049470266353579753878415492995384962969495930132755872608959070608737232892829969771374065117802352080079211487377928864027122930147679861103425260653627793541045916555629247628320335316640826215349630432966556997635186181815045597305896037190795277252541335969186000570723873475846870303368115081536479844503633382108211904975285068405475985686848994939619228001353039648701050112097725063986677074619572211958089497016455077743796910537933833683205622729232540940998817849257524707929188488910166261542588946289674413150070707547749817082787482467796331073808068224551930953596912148043502306295582512493573477918797349268702920639891331589156345443807635779735741158336211966383569156526546728844059730759006365955359357783659865403308328917295845206133514307526712586010421900428031881076446338571253947005966530469435240291113925198970260435148437201708428453441153461141059831009110089293474025327490883996427776060363964762776700575618501113875117851226427570438611239352299796687986153485918202115555833020687529869598886055498203079294571946464832864006862083809602596788212361957184757286023082350061302574421933874070427116927199443822257540131645940097747068213645971116717296678961143083304577901004128453766222295265797241033956182322933572065412031829440138138073957767011961267940185167108628153712767269317822643150947195408503241234500276840464445291571922366247369564170934716006432601933769630328950229883226461434848632555486273065221533311498501202387653747258766665467200501189451870443371037733227746207681496074638863476309955087754048748015796688323803924898051265958980568071339650735492632170432902852252734008139239039115430305331131159394187924796907946623002835373697117273907304627530329593567435535642953477713351506902249158290630508861869828244140741886796546643336350174820201385290522011225366161372513740054179980518817628675437325961841552595656557397207263693512708038885133427557770968951145413621087097714440772131845528043935068021703752486928704231042196095166467177777895328177617785128057263212221601457906715803411268070664267630947541627328264321150387450467765444961789966689232095952428526497480819321687629690729936207981450657558269973192130285317659475634435932392295317327950311825036652782485036301099492190771675710804491082465080527206313455205076398027034115896390818354724521592901954641337381639374105234958176845335329596496973015966889652672175114457383724033319194562743425639607327278498368436730531538877436148524827673665857851709043884562104325772394963330810463036175837389847364548665596312891995178087825422879976388534139024232116924613648355294118417976911969534165216403827403787365275444385599581612887720697691599347109836017461407908595900260307178614804011614319669395588196785068481244969349494487008207217864810546767739625470491407899842450852466914270681663728450928319505102270312366254031306146739248073722737557837440559986204036508895243862816479318075729235757522138650186452358310281462679415853118375297718842290261649327376499023880415487111211014897160986459918939794287870259075723927873970207128817888393431098325839258079287466331240634568369714990117135398924642238439957305625372261772908518654305380708443146716562939040551503614907714244818644695864842228377070300380972420506215262590740243765617903345962070788277120402171413579927250635743948863343881403064383596310963678092685171775179019416934791082776019364159891055471808533872571911550175025127294535547407942443946303872071728235987310634257618306005934000196619415920103203220835202629310672606103160931282029515908829521682357900707298659767728656956323935889835030810052404517165454703854611958794121311088974149080145031542467377794824559854461981783301528709462039035651876775474064563514075247583181197707170420771007268344864451039021087112944696140159572497359339279431052194349087250014936973533164142779849648089418553907909399496710861111385395499315244545262519130936001264052179396370414422253491030674773453653598604494268393715365626113742792867893271710099401571699693794827750073435664758511301549554641421853585367065379768030836807425038954909365940766754152329604511837049249319413592183636266715377958502560764614422328422391278068025357104875641562048901436739665403805785125539390372157568051693549941608227836086301487545419211908043597260196618493894069749128417885523087249797426943712684867557441203933803123496108086371275366864084557412524557507064541497947455901964279581798353136651326648044783169339800366875585091108112079407802703399618591952047775287356377173077553770070594700173872980172983959981333261401445528153364857976593622173273357437514002273488617565944418846767002877390983603047210481225516931655122276842106270724038185666245494353459822581178488804173884391722915792545967821906737022921429274564853948032293855842344748100357150045208871818386296777333376146453894183469629592246868399725083081893747023404854481735649294924919721345418623910979900204870282052834819587349713626208697550180907586630683449930358417096735706389303141002226244186632456838738469855079049868104150842363260013204331223023582532558340104711347591329951195389822330540832016756682324377034210792064471660035260534746213120697999243002432826000067975060996306877566482890398430949916672533035650509300800363797738581938672043500543534261083001165454115472217435220685583775463973981874627699148147832095320932198865600537151581204940740213882290695026633209845268477371837729160399049317940148267134188024889654550482177398376500726576587589825624286403662011460342899329451620355218488898012149933990703966117595705803308111760058076694003629355162036199090911098079528421467451967380675665925354424130220506255236083817606399418445323555325146952386090540249744203956681479673461709486829645888304815812204495634853340549169838520568236752635430913851978800861079016223838263628808550829844384337600932976300094753072089613764896277336805983816208085586085436295483731089923365440974239754488468078106999970771525400028937581986854200183534149467132251976739200438457659259221895983525680073281659133736018265975025923703297833566313238028771796762562086983748868855469516327102899506995171704252943684467460176860055878991379235228087214767663749012615660952245818493478372537797043626572294945192613610785319425056254642802529995459959102241597826524407545704961410316318526424566307576282765222182071587234265259063506585027980712834561987687672996321828473704189734003859532433490536190787217442310245381966220582440701010594115674849030303732759325474746023395210550766200948731734254988709155008384200850468895496556936054680194998887693608596831705903617234155849276631247547334260827605611289143552092378945657448223372866368877346464701937341815367247899568545626569340012891047923700681439663612891618597495935455475521283143587915434074925541238020822444672983899647151785540193912674746713856824594003527611773351561808656480697543143313687593903626974857999034499635912193799487342121788829019890234820994876665797925764718449416423866535696021749399945576432463960492762098601967107691566292539039468636090714337920914790922850128809923198383971222204291903772230119050395577106128202923758662773301060310531415112812755851371838309844472320280559118034348159486358515618567268624696088431521218545792625259716206328129784942710792189854823122259675543714946472411944842730656782535693293518623770849183715322701363712196559120850222662227381047598629453125610864570389496680194640529294884422258619835313906590774687716577603036327093229707000649498931554808593591017252046038492848857293238020256953812479857686422018973606284162858363808270245743819228741794043820032547692016283435367212450995198095213997596482192695086481240610587162081230705731051224324024682636442502390767504668062531417598516197343767552973267633343574965117704352665010450492912176242567831931261198441879097013454947676048010466094538517581313588765356591890968711080295979593783615063634606602958776943072807309480341717762605559142343538665134472131453923209525407215979401137465412872344578856037350417836257444626650520106122767931688220788975486618411600592912370188921803569952328705648956165834162155632996269235668676082870348439497075810445452625896457460194754819475652721204875136561309744310206249991376255741125855037383973388497806298567168785115481478901767327803097703637711398218811443455359631207774819341862154193918322336429004366402710150086767121687063783974771305324705181466699066605226747407915763567194341409766538573985001277587757285320999275507652883537808331048596374623663815291655209519841032510713174727184292286317632069306444276563225362882638550154225260598399093705622968781695627947919213036934464134621280423866670342786937017430575887588640507637830437147750487024501090210964068957708745592316389099583495323239499060425975490452685505744561352202946128846077254284753620190794796062592448168606524217111774740529381269533208684478823498919360410920866720126374416303353003601908329363134350010315255210727107113928584249654997499177697054142962136087867589397315859612879453470505650609367385468424419717863957597431529027459678953515438002016346700994583600256757034759345577835065790967013940159203990153587955041329433768589844149565926709294650162894577256625466358121883346831459233235925575191305884876759873055501595438884131445017635957077164396522674762139104381541484997325699096958346435977328438615691715953964904979317585441937306256653797255201391610755106128308839532768946596618560051459506419829810382394299974287664786459142713922477353949349377443464818927447073556843465646171426044143905195573199426236753231416765106269531610839364803562797445186967472684883987349655594604469129413865265145986555306206477834752556042766291375873982389455323068457725631953461191534904060099862268350399226084837636864197607782604902449921682096406967394932663300928812815837501861871067547471059202084838212417931535397230962851393539217704990471449006390249903618595207180136477720574383862323562945627012444794634129866276915911146043722935118663651794518129527434836140868599466090687170068969661813531434278672958975960259620720724002050777174147532869354407388151221690346197126253485283879741371303563971847850980623172827182332807020167164676907601227722490371179798301051394976089799648715551683299487687573268308287370877949017977750375901412776231295438101363677839547536278053690436456296253765544964651965305138173927976729366590830719803265680020448384889305497511743561852877555826653971097789325546805001244612860469748192859345272221991094654284778269323926966910353953778233700050258348792927077644576481442707555069555663164568619381980943036173874148547976051994320522679082693306291715820254801771908068157180047860267711001803198525971545951953864340302929868780023822781079406482428096124161275119761782277317359185342083565701696224916498505875835062222569030351168643740724222951417126445429637259107525083804761501605596765290351175022014419988657718469132208361902013945959799110171540317712893860876481467749977687930665796334296592791115163060421191469605478824877184153115630118520137399786948853441158419222572765260857613166563023026778848139620912843643754343280493347152867056007461655431836416646281762734987956746067266937000535494153583066754065574168019117974614587016206033305011547752450687593720415864551119266344340866417957122949206309731445331532512860029981722109069278585233398028126622515143415760326219142054312581091303016283209211854723766648251330071463989392518988607053264042940228030069003387554992556013689543330523268894022332567698325498930718439265455673947999398177747815182915240051651030162205727410381801158706818368238067746709417977462190904199809363289518729249969968269927658326612153577627431208287713050313843392663036599244266861126913567114882964903668374307916140340476849256492610737836555454946132268937384575647379891045248478564524849593201794242339363199977754567288190798231515820993107743711252497455542553143829389731679768049278684576506727140039197424324868321627395343741449737161563261473152701614668507643695349981668108418553772064858723759838251864163752662839972302946819648177750760676136181561522506626549609210999517977698530131744984135460217580738832941445135536890223617958326415722618786853137855845100055521660651600505947232285161307780792556362193359964040743016134831079150704265867453828777029089692021201665514964512646122574973360855628455545166974552165294934272400621557634350412963351163604716910489706222122051213049032828179876178367422830420684793678908460536099602140058485023866755328041468783674221197459118792479184625738836347441777156611499137661892008765085781218838774305466571097236796554553585314720547812039295468442905852931392182987679197955765427367379626686796800879880091770997630147677434035667552807094921711099897098151095566037173805402939374591248061694721357819888416138671507212984632856887061349497658943503233014875877138502761614895860560802419584290430233976812302915850969449993874962618010883943172728021776799422119631972298294681043560634101104711059068637394609674330483002361280705923235295096415255302312412267147740033022219325588235640218030684933826548671180086399051257297057181199785319071058302860038224502499900683131417414311120567284946140769809163923269263325247213779395667771436861946487128722079726975813494157485776606721228896669776778334027261014330912187780428093494602222134770885997817078905517283953384146663661497336076205427887133550630585826165862588097441050863472889663655732605778671534899230061833996973124352962486020150394771093149927382833980879576250397285494595876330804884505582096199401579900338408953716235562872414041770976900777383995560530908701497467337777321539784317053381815048482681070169680172670347069213283785843189163726011953384152956886901655295435700916650733258172939761575679201349437862626375772732628319463627205507325196662224897238281853427296861995776257438693833899924446244898188590623478095858636038646582065245556496231618500116687882389645943000278546688984980774506862577536941965704423365245970239080653419009397031500282189676878013903108668225332976386531082109384829138111077658881091192635126982172052022929723030606300303817253296076533735029464177004540693157084430485227775271077800868782238215492542993573939237428414730205568574324523163140908951298140418321180537726363996278770510843269837069273753954641766072692002673406130541532427659920062421840244573357327655810078595790072217968797640637970376791477131179349918942938362927112489345691254286844682067909038216238363389530459966195203300564828682399003754197539443754538587023260943365657369339587339495512213341795371981695348507941690338690367194211708249007894900548509522376459766842538326763875069505050619405951735738459119796954417661134229779942196405043592092681019061131962896533883263244203656732602672646243244057835570821950575781106332571554448828280865815752546705306936028670519655945934373436787491241335345922863763870547920301389668841150063500436437352655887546693625773990337908149558764572395877353274852886684977880095420353001623294497559701647141171047487839588298883084429648913096008854021412469375270906184404804401536513093250693314394626801572910733613993236934135418047645373943889526139312171885743847745617791316316968475517107953559462691378453928066483966814728525914621210271627160204157126665232466016114602370953908766858502123599237374469014984421240093757572929081163773285416032085692327358989416228295455770062444653491329346862062830022220073199064766167174457877609996670957390084566830478347222419230962983775876170458864617261336613367832880282017625992461242331612650986196205022734233522026266791470612911537590591124043672347479669648110584893433892292808012380411839666107031671145325390150134282410370336663454512218774066749531134210620113453345411721626105497080437810431688378708323113198835995089432597581295010372795694217204459189395325928218483655661452354760628723498512180704871999769628947613250939771586065396687767111153436150327633592396271983137927884996422859225697942502142489722642254914255935432643523368839612226691505371010704858944454364779689541465745816667750843176688559631794348062699218623907671636075941287712527637150779489855377220145455276769927124823337412768140729210727076333830606434902989551430315399649866915771822189681404947514253726879165769134784124714186345407653429414348599747383886947986333398143553344231819442157576142632355128685133738038544359650658750958811371892588976839506385514457433667745258995320033115873794639727142097578703233441862029792008600515905682440307808559288641944626106428916828616484128800122063513377990190270937648893830616771487173320139165970290600447557756336075433906537379571399733198191460936377033110227011264028292537740510437927694759020093023651245619496638562160463575253619718584031547050136321036016353905329690381897903952976376378415551325798767111726387144876599232124508926008169871127635593601244222611204583668679956843955143306646225022604657748097220707085582300945691066696537312171392555788762963275448039460029330851978502499617396540127276798042132498979987987900147172118772783691462204969303939424187034738082537453873556081861094489760601804731188680972264655036947952957081331209298460823917354277337022017848101103735874136492690165436570558092420510540136465556749629624996090002079848271547838703362277153999643288605235794503218582913601140304843884150132315157509232863123735870451537837871735946646079751571462063014394603012004987813910179284837099731358013322961592046053068966785117278277533263419959188504655605245293703134062279004378335079104724538590451725706537161489316092162486908340021524965454810804914893621104833918915539823323953771896420579601023402664833082855752274464157304692145521362213004182117876829920649932979262195609685167039359245668165198376432040963902719828594865413475983258034190981985259524015201619329376070288365168897920983528610240992685685249365413440127081939894980589130394836015148446478489690402419874580283382434711197346851741067677981901273031457465978548511893510130340625633730265702170742667109515908680285199812359197115716931638547558140399264253069944153399354446552888053619848594055558445212611428608159411632056325866187522323307235833497089918906770062748241177592740378085634315038200582363189491126879741458241905356507628070420307486689330262809954416699622425338675268086621664710547978859970672367573601274969239200117350809606922408544956481853261919457028908823806354428056356841272348737159586813161817868484319634433681903923097078260979771160327972133407339089271635974260806834997744652122786598347425198493818806862271013771634141475980208233834536794100375710069902614833934552920309119386277421332812366437601622288032256516759781579311243055750123924409457859238548784244803441979577734643160798741612927557340322474984281094291922256161700953864533164178361155798867726188077961587525929467130914512683061836510531758278593040513624255802910131887048232796664275288297735010747671207627414466454675586584421130551174760624831754215044784238263920727992951615119009186143980279496393085586990006816949413056863605117485123661123365663534757679221783173363875370655894356711182699765717821749367880226542748099069256941351885072437824037455429390132414069658518098273579408861849196958932653913875859359477845122644256935462852879964897707025196340622613336983333133295291361629962976433715148178751829850675603777186361020234077678344778363926571257437116293584543926282002858664743665400579630149862056568175755766080774397061441194633818299556988304062217807643332350416287149482985078564034482382273783707910877486797883062304342963473237259689644936249741294047792914213483398567827729221220070057206238472323453655599213910004765875916830227063928224030010738395156852387813732673855057215157255627500199829897865941231952610585497514774441131800004078902217342112896918685878145125484029387331542301409481418683222413345379008177461064570845820106963482639089042701782154333464387201744822721304125409918884316293241588467239552084642049551469946851015272178596691615712271991587836688943727270780453619954528191614650504547300980021157598359607393819515154079071539346732472979721390628157143627842073671446516481732677404272130254538003436197962732458300154566598183485056469951217198611502816053159949282380498615450878766090799765631660061710608995865414697392260660943980914148123296167332028393644212800207389774341061925321009672894828770526660247877971268385144735838418383720711843373055155040730952657533933330465987060994531715752803089477986166892590444143210264031134908588306742925327997918078113711039027641599956317502583717344407443016744118944260506189597246125679103822509633961948401328870055069707238015453819280378175869095020308446689315745933664193540648765819054997195273427344857778579470968916930477065012699410113889738246347794564362844620761396413697205191845607623050501690991201677997157680805809320061585369462280535574143566811592518522519298046562271328704459725174129128417387962249730257983961284423074018276227967405649874855609465654303723714629416806920972025931171128788886310772266660231490408882639833536241320399076610137635855226253906946755970755309692613797007918838016556536349626402383874425882111192430209919452243534559756917805443343127358419694147883406611884428791005945850109908178705583364243988471217490538693131308294602400008772816407540775915871293568504553650591001210380404129980738663197397530152247019703162707450530126753644716595437823967077723765225098507385679781625093538520715155010046164803013887502583922621510151289429460352127887519088647520282202172980698381183402606028262646003576669005164087112964393883430019323041253699887276391205294528708471881262350059955709185646466045755541333488474081221147066252803875923789092620110305795833797099895757829888270869336157943035310539574007790745032573099469196749371596343134827042988376338927457880679627278857509898318864700889478727789626264078573262352083972025927281071584129810934983148572033752831970438374656157738264984191845171314669552681490673041129356170477302392155493011666737577599152949639363451369922997441081322079752157812328268666181187490507663750944667415971610812269591519063197000361745673816995004778241099128053762836471489842633781671965608200188680705296807110133549839092612316799152484027041410780801042964374310400182215861174502279990381806990977257347154746521581643902997446769738044558092404551207874619186346287706771154960911371129145572214567215472694532730131670049290701460985962060297308226832618224893923425601555000318771591870624395878411347990823002666458741661366572440657070087823922579287513475303031092327759877952917597400030100060476126475185934919584565913932837945087602252462806137831549754207904658240867470439250616443300779644576935542606585623122980221585212014723536724100643720837610183330322272207603009738481524437107535029850243319498277837015148430058260009206588818987699620517505462028210664371773333193213204645595991559165550537305071641739226037243599061094839634252551204215039160926150309635519284706484119222678199091121421618558452279816169069466468894143089111483042487248253246185468846257842849432393199562309283658949763848987964367254820557165635550081389805730659796507343173977196078801458400032558019860821424314593166494835201529248851525021902758263414129597281570357267774521096811345701174763743624132048652622795417731880870901435112570220134593931599077271684401500986213267092510707125604286328458319653046366808702319792209493223012947331471937411796383506873152750540196124992307597836275606103091206441251219656966360601841290303584276326907103515097307964375681758194408675722028156821219510766708817453338641901264586173852542665119730581401426862678486640185541377932990003907146041341130412552107174142131465219420379317977669439484260509712002432681130409864812460345546948518666710286020687885408332590137747636273412862051358817227650291104321166266050721364585406032506911450953644934952843633801689975079776807034810109440353648134689744532567342305659630305887004425036522879472854926374992858713839298331504185553217346731851724536702417005567718979285618532094007402263831900101895003137948228751474918263979631072078752464591300911084907498391144265207607739015719686583051517847458041065489897608108483840289839529245922420464187518553120643691573457191869066042241266092149374411296358609413612511799278870899513658168351655628663888633798795333044360128007402022988754800942884230660907119512390569065802148265476025809628074928177024361909067348043895919778155666730419372676238069407208305398827432688997692055613416584476814688186793027784415806839412787654975673307066393132669960166269126324251441880771348936803400604610979532696313010680475051482540809504902093433683867946587728772385796505314040219814470551821141921923738959161709062590593180757080681705943764354557340072624624516758776800625961674320779550455072197340880733063826283603818739891975934549879964625577308003042609373221200079245859508673937669170656468382792460806872437163585519588933986590863171116939474237820243011755673860135132765610609561332369060234186426688002134900618351448735898764814415508832766136316213567048945517737177285342439640883327265221306487069930176301825625653237218940984487884399709533495406160343306744309983462656729026983133383173444089599365582651373446545288198896956223835506235843578478682992873793173462955781881083584093453470344802329987727288511398914938217302206286112041203647114996323565845593533227762925695977605124044878650398502564906186585177463769900029362604484040883326745067029553513101869581110297228057281538280602005205861453797849586577882963394375935963805267053360993514298544894874233903476971798605024119972243266338761204206073012567835749281975413243447732083228356167538610259506161882617672979280796864675051115799516041468548532073278147526477580500582510466018378526229353274263268225495498893193259913254587736373000749827253782637934122324789936158086626185177237684586675441934637602492444323803216266836212908960310634575367368684294484653429334543383991819277436547513862889737349630527228191788863364304672437720932134343137371308579721098286088220931077062941198291670942792475939468664199210409555702346944397582928913236326248350243994990055505960862201181681192884578500434146207784790998870479971489548091262886513842094972648211566566181902749820099740810293285327210026251227896696812761044124208593756513197334160530924980864677974098844809937069229743245495143649741702297432764349470442523457442007593472404305249332445336013411502619564764974807305237611007707957077197753141423171478104765031295364905918528933916362410468380436640665376912329913923200251998722248207929826666059245137162418154516709085637695881287471583504844985953668087094019929867217630589473875313590792766121988288234616117617316812194727121639441126132388781960807214107587973988754300178057564702770472289743511698702529419809271906097790684848626563462730094124036169750975275423547292469353869696903350434974087943622445180041882072296081340453757290616861218284078264794706190312612703072047800323061750007315099587292134558260234616462607921881349929368851850808192877475201710896852256871711441270691253498267438595597377788738724640204643629051578176677169944326498788248412200530523226454819204723725683541467172716425093183248211403721785403170826807894389458507226725340960960144949785803571336070255326735385625275981979266456427490342752442682207961380495570737490229610853953623295560508779750622008856366944241360028926231152809344031064596873290864197018509843296864098314468745999203574645714190098644480913139978135707268627440946654111652285375917068606703397507503891826610944257734803426180516515258582589473441374304993804431496555195458624505379166178410551383219225551889741585523339058398369197375441510361305950972162125411331743090864809268383665188836956709327068228946136552131190838773210373133843256363532513656781770928449708719948718812981551258572489716941484018119882700570398227093681119535432310780749669487980610329736493326086398230154576812299894286199766069734829592109690755901397438558556380632793603099350003853132004188227887333511024179935788094692339387179875226947839667969253750338933690532074733534387212819362198179917368528134136256091110390969033570159821561549262113613667659145340325123005417099838131510789746630657358782768013522393492097380196154741344837189051364271824713104588629059729956000019802584046684119966599084821436422811598829546966995834681630091411950587096112564390501705492350085357943470063264534984326424470847027650863379738746685343131988717566613264827502324692123753240831636903169952185924118642138505900533368296771606535888373972398783033532156699676983552897880440063594799563010264245548883562168676794776245615454537909620940097642045623351757938720498601757321951815215956610635082801095431329037698828515569684460179500112849272829365403684704467822238062820327188107735092832665298460729620545505298354792955666306382939504556875977085249006871731989605285896920879765367500299484061831583073166304146669127564418089240572046515413496833025966657602157021734679237334813170488716087198208549395996876263390894951109954484640061157214315657564804108864772430304890848476995484790291805572044247620829741863528194989120414935098882191483502655896857385008375483848757332385393495549169137699106312850442624236414898108612261282610652720546563930261579496185547228346724482485838443847634627793405249572295110488065430947620770897235681818099979279230190304430506488648943920278448223970740021522964727878858219830399325489412541128986422947609067913755818974078097763248865779751694815592273089823212708233358195630283197760116454658972524670046585592193991469330938085693112522657325702267023160758110175755139894873933946075907925401835733305538389002221499409005662446858934064860326441956129199796942834079813130958217261815134157411532337262396171650310921198464218807184140281705470223483150069705947291457570666940720957720145208246429279489680169614493452534596512002171396368255289749438976574417193088725986830772731444360367082359852971572766675177192405133442796080898616025783917560171682572367361978752740999334390528814309104395841130011153199646062403186660964036722829375446732072607350811185661582081681140221635787555752980586576987015379973987354786680794362651896923375203559979848804174911994029798134478436453207044643983346297950714665145463527342954193028092932414703357645740281125759005923690793998776446064353455269194466259829788409312543876995948382815214671061036894276418243031689983386662012129721275713352590782348289124514313984674641464308690890695838255157512905198012182186058748730444113443023154002593886985500429315484462032620991283341469342189755583574250457546419247445011252190822499175152261591123536140332500230469188909026951091692412875127416479226144728768952020270780342129802484888142642001006270398002961763527137488927676899065142112497256591316086180408333370607287279713230423157851840943940638785831907175896643726152781685395470570580513425487469480108290700878258446385149816572226443860645076579681198860458519797098317405243250230379107317374721092599865058069497953982699933721262744828853025985214971100416195453598712031139980974364658062855459968447827156427109344360229148269703042040795248249552342941334150279481782712271517668097178085870033954271067491676774090601774898204606020143653524647294259951243963502830779347969713190433484736618513793801933361753939857303957597742614668050741236984224488430655859800400376184476671025247217153178615958462595940080006062008780700448608536263758013508645526605177281655684958873761099461576464862659663694780323364547663858146970803583154250051335050915479852262645614492103161199612885413412851799086175424818675392204437899031670054783969375786913725545244854617571855102307558051761858702620789221732715079085710897591574282886834685914015179998967601519833244950783635121836287738193013607516693978566004653892786705052476495342980481177800648719090583791152966038006832829132883918925680501464755085711929426767296728260006209755844426959236755144670171759279241725678868005871657889280020212124078666829956354909635991450516403776700382231440399904656560629069964318419377114132437071535167196439549006372252924890028195209577580597784776311548398467326592820533922669452835461386167283866330964529714245793686187016961227537281219840763215647154169137964937682944283541028677042960320072907564575478353934192723296477091680601766004684706856367727145272635545338016419497756554663272102982338233924383185592984900041621063195064238702080269545184966430924754176284547388286856195065761446677503102170936109902318554911883088693686000749278194486278212238580492505003902339146828785599807987625363280205865464148615797297486356212743212944967937524064190002126388865898718848656178709816903877857124078193168656492125010815477392099055289222160168402049303884394088832235867012641736966782456524526293088006665832149950097931955786762784698128455191625831003479790061361331966322747911599623395001735219178807030652459395132786879556388671859879930860728305332898624006570916804195147789681910214345285170877254818000702028503938974441216921051937963392704453736669793565156107802733385895010830765148768912949074686614083929943889255631005942487609670334827238656507781221753999547786514949155556994601593743251376339464010486335432244903679366178547927969446500142673071438448728636174306461128938597018505962451604585754244097615302121830058765573182241989259976631523786684849060284113762188835837946772500559554918649215158324091440952212698420317422896194390626684193309900773258527253194061483754482117874154025447284898267303767331397771471307417710335841014959749883160991244544139432237401253884790575099477292480833945594110338469558312862129931254206102357971482279459454698315808728239460381791406284473185486973423311953253049368981106889796856929270771111345742845209711998650850769251140036407274533371624720991121027612126927099705209965157982330950584362861299850766084685753279637351508530199511166913560081454462177465817749960498677814434416459088825724068167218142769551778410737496543213605217089580797361726772105196165575768165277465747563794478229211664171974664336469887897042093934736591218029640386739806899651733783322516903459783303355018037524229550739295654512263582474046559216516978435099105067986065304517603272456423777538867204945528683996485161716253225845239590716799696258808687398709038039038737021853431415657448091899279684309537824981959892887236387612803047496136760510894385855913218648154591985431600785929399126841464554207309355919252251176620516352898695188876845183096398232926240558375223955074682200259729655984546955727844679314153793282950078550349003559034262441944247379919988427418438851268902074213448283970498048667745061744316704175379445169757107509337611165549631526480936510878449254776721604894624081814464959171294548339227633982690663223081559720623168269771313104473044901538714140380946163388463103849109773039443289652617461653282346459785884820223950229718244096076328548701581784285429998448481015326625989759851091497430228136646150739077607244900222632360921847238706303536715296579205433954386791790508270743954608820117788380485448064735189386401381978641507602141845419552794779924220189817695051508400358641916329856127734312029206620221309815486075227671585331400766774855334675438811727000585903786237851077658225603254246339555509837656660310052325980028892133937534923098808154872812519389183514145373134018494900884899987493747237350684162468761981280597963925419497110368567548225090552429065429704534078769228904903520947587780631535157863820795241002484620010918560512511035918562547567722003485339811129379224711692590485661366675777183899283607728777690982035953751680298557507477839999737072582589756162369161348453103002436793497002688566116646208432268976825379213320885147789916594794495463870383557427986078088034240069238139979378067596957722778352853538485615397668376690258142832145465923819128655912410780795361967229243958666092065155350419777909354699373573506881298116198082288374659956987941692034429385779419159800476827406186802403857220648177239598864273638598371899260066009237092117670706215343640549395447615289342666013359990616614528848777756393285951351903799107100260952424448043617720312652225952634693097062872646618897796283084377665748214551117044883749190659645758900961615864204607818218530961524478036786001189080381488916359114195543073281178795434027478204130470641557494025860006021403011698174135543797353202322080974583923036680619363120139977266808156712985645943113095626228374119161126040007940158336009377412131209432354735707577439437581756895435772489151629940207822014573159774696747003595884401935617744560022278529308935426385631331945106969647647210673915820469359698112976005357949452280905657068080965301799699261849518839278521343573541171665940487825922945873495340023648995433685342849295787415346073449904512925731172428977470355928750138952302677795347791740159541346655813918780191402357814464266876434340576527392208040554047060912927406367933831332938264652027065726145997791704965780752693658720223682716100250605614090804247302794932869281489110560632974289148674363111652766011533906408214881380570863820331660785191716045511205329366934037702350340601722006869350518182636562658360246152060538612132816429769324852411269174510512215692342786486441443750739557307944219100874373162047324108973219861991287386837300184283884941228297814038320362535395468263532615730348383981117938754584163813989678336179868966081028873738459077512417163877915232072286269526250046341720499779655191741453893579960778806361006856954469621083215764882589819903803332330877332299382809441319429522680444257801492448595855594681264837371144730345696132510296385264955262994337629088354301646256636593871327832349216085082255310397579745121619704119507744846033716351020471797059378826839404316746699880586766610902771419409684228707822912373912686972563420621326426331152473627815384648675352091961568854661235029031724532324365228507686818269360047954618039295426947924114706509771991678955760311813407908534232926189078731191741832923337023270352794453115332986324263216034179659090222340969624654140607891979614647954463287071718772065034639143345716615144280396920501308142950779026132546886664312609958947399306116966341114463867867372401801697909674824520276045169706489465991328762734541668527006142078570384168194545104238205042767772961910141163865661529427499936456717379394799535293038708281335754667637265585658071927863430870067975908759100013092350385545339388968351098389711273824914715272191069737003822564514137211023369765317335690495395552555698148148525673551077964439953948753894048284224576969111394971882360005028842013652795768539357591194432100560789724377454533575595610985056410338769808508241375616244988868008531432968295335180751153349203896966547769008336653868325284238707342101807002735545738209149325314610813141708869077898538337786064420844677012716335911920717208229621362771289899096880848056880684412144767539226424219373125918814609007657616045646347521292808825381775228503111674844763572173501782860583846962037909977010730242181717291825609898931643576848654561016070071726733072560582547050594148051029593367540393737981159756840990157434021617787469875302841993434181367630003124398064947229132244659390267510034348138967113203441025883245210149218224005762773411143869355532487105866142453541657564396239009699502668095799212955745685686986654907833277080030529099181145225693560010026049295966220577502175661556796359627973725681078539335742582537479938299597825959795916809544174362312435254004361909265629176523351132831551167920768284670194337507875560334284233922361168553934784345707014038365121020341975132603745117389802118643316525720808997358030954065609258265746681216343704270515856554959275727112622229349470447482465211028885733039902040054468664041128654879363675396298275333726248468380628705606811231583108029668487149022679046245337901707182182606229877414298298264361534332554236971518204074909048959920249141562044384602995941706572450580510316245434619314505796505264456975616396014727770340485432427062264944992942484045959330975238139943470644360435092418292424115075110991026713979983862374568268407686007161210597947875141735481410990814393866373096869717142175505991743992532681181116344367079092764935901977556152488094133446231467596964306130485369573367256227312440501218406812907795540908374671248669016833891669371802028919903186447272810954388866274842559552660362447639430336662192797087545064107825663768837032597639405654588055339260613219795191079754193501033730276826810455168940427219106088242944860660508970383654208393927958862147620254655568362901336507893239359569062300036274543744251046216003023294774589358639734942385272635005780516763169993389016473154492914146040086050474146604006139662182218143209784638509605529894945816905481673592576106027641673103507361573182368177538146722086481680667213105938070607382142715548197596618158819569385654159717739473319979787281723941559728600256401301922151600406518123539971813478078692535110204512790687473167509550336296467069843349935765281549889154488523603488629804011945883487488429087571242749657271416394782098145636648863555217103623600021775658611067349091449607259687618491033960045180061870255683443114026449768433637854911556990623659559490742297685940054817349790236523506491445539225326156877147146659537533040593195823011772908347622880525724865118987330617862885548071828733873798646592717852366974870330479322909565318985943154408146574466380895338071892968336910188609597516732906999028230610548326178514521926066461344889099726005899020999588325247100723885318303010344613496840065561994846001873127212300143218385531722105853466886948114173800166491401945848692345366669126284232098360246903223581508737712296564344082400581292612179180403961503954483999174208962907134213609352224416572571522773964349456421549681938808386793693739390845575552221686725697286644477620206181298849026134272134048839247029782368803464801827118667694673319769707055153656915085413454568105108593974561779397218109346901463434739685809774385026711184410370270951636985806050518684903328195943886306128047163967974245189927689941439950173010562249469048144653781553593377329531875243908828697318746921507966981508923098001802189294665190972752789550404307728344886934141861547223733346867710761369284573314799367963383505424674664709600550284512230896890745044932771676353871367798914810150640776072953126694261554249674030460233952528747280776644824794358639043589462667268236735729019874042711837704862069721066787870056374908053068513267581702498217521952226984151884065883177311916691215055048043238960129889014811149514492111176810314546654299720180627107618452668144253050688935554699751030818930880985815946719365965844839305721928145023462485120892690960477124832031446897859930946526412980614552675157437161887165926835101825998850808492768905971879997999424733891555924643330549753757160109741337372382720082512662227334823886510951459352527127333509019380519898984303223401518494507151088903803428924545938706977285742991546442983095590570695889546102244164658607134794478629021764403691762203791705804189962181432927048122475434306942834130338801696732488162498536853997879237297361453522386631325680420405792812301837305091185953297261225209502574772674576607263548146984668313631410326386322502124605306065158174163206923988397563148559670374734434890059041176162137098991139205067576699180201548555169313084373695667506828071097645075320740180199420680950714092899152393434871634924328293283483973323159195880271396512516263818620481263917451504029632439064739616986565309000998737730195046448794477925592094281067350097814360899341626770767573502503126562234965596492721852085259477834248475117936499643505476602809190165135077397829685686207803678698000765196478222388754223713977315338169544084753433288851621985584108976726113192728470572163312849633044768905071579759155213249165053277020450267353588263849373435467378356839275801075459568211169874692970900584787803668998143462596995876885047388949774771509450609370918446787917373576053993190244767456657630520977215491066120725356226118499092468038846050931463028810902617374143458598172175344020409327002218732148133466653693278550473106509828727994364579837455475834371314065212603681295116414099352543068921590222543759537536882336615738487850795052354779975464816093003351115254948798751156091324742691759755166590826786639104020732089225207393868075145947214036424487620320525771490356228788399695863141146286950790914644058507938833182255070015622122639656431549781413630194296390177487444363755819089446708625083060765691514647277417555254680049298082250409450824519018873276423010213915597516029949471021814653936595826879740386239512447817954787464950503368310459053832543504970028212817217080749118031113969001068918263487930319836001068312791237584986931281633460842175551055426266049486324978343802053112706858151588046989103472869427125125318884855721521529235210635049568384982464531542870696553323570405347290298674966867571975490968597282123946966717344223303910543657508569170091184019784222460568574552386451658060232683624310303578181866448298219623905050904224079195596134422478998292406085244267915150613740871696274442403862331734027227429995291757150356443434579423747235052524831752832303324819637919195062683009964857339880033518032651907569089630432752232278337249010956711479860865071353018353447117336261881726239650521245671823922946206069949673256889720935703833357244424048226402949392065700641906156923555067207299265174827416387006497383345303693774503020750346584306469771725481160947942918699369237961789019484722773359030611414011837131267784892401666615796044244710362639703910455091346523101718589481531654024127045073027714618853576482872217843569256449128647563580513426147736685434494043621366092017796531260817207966772277266789207702701260737268030000697642275699616190270010976705484492360462051560495598526704208553558230917918142499996913179618450565128633132242105997767335211076714548263837277572585546300782903736200673987134809002348097874520552438816992252660832342925237552589308370190688693093103116143106132321515792738368079267718585258935149819813172927478853400118433057388680787993406088772894481090230319744132605821607155599396128876489036974482802104518477318886913428295854702289295149743600988098776851997783689370501878203161150235666787081524857192249994398177043258674410859285531492166319931851711702694327841437683378287019784222194799608248874499630182276918572446315016220779667651092413986801198549877714382616386772104870184133581112066407762176141380426931753675814879842667056795069563247417824886021675354398618108877884187769356215378004780421584691067895703269553189979329758981632790222579908310900114673728562898850912062236562158118023229560335473215559565801266912157213595969602207379039096920767178430265452005458078387003260254857958294827591132166925690557077991284998437195032037353709613897280861791650253447674363657888232500733033723972687429359321783682784952743992321367182187905332805632190747257230492702516237907293403075301678616918104139325333895304641246049632748943222316048922267173772847519058175430079923023511601737976746496947449034117250084946826189126469876353332783551456325749151277651096588769250225348098903417238087050650706367632200269499612921926873201701808216395325399521317174607126014576804035982193366343452233813703821146726635167271047063497588893039336877021697064304576434997198927792834181216162148905996935737800819260533071879459307654046999122684007402802637379003845631380538578187693561626276094639169841408086930808174790058086887641049886760581125500617828396675693698711817148479113700426117497724499306642478881236727196422683292736183901470330004886999955169368832039187761225014303875437785881994461023631396766969068052542677994315140955096908590085937152802114794366503581238814595592950031117221403058966827146115113435236600953470573786874299525280689469684074368112363038508317496778426940703157641159944788022548366828448808509056871124853617302634777640998823835038153302167741551348320813249391869995974792415547275279174762303904370920785551708013647490774258977705950308055362699880101981276632066977761628633704915147862102210702540460700063270364689423364196335163222032124481046657734060397836384162458828689241669619695761816225918896675930981072617420246720899636009545978814443871375711810200936605704327460955201534186396189886546568371019339981399728938846826260288883781621263597331355160753727002637825878159899006613954595574801744966870062561900902587932480080533555326003929791200929822094452303921227996039672240303991981443064101106778698375620680582013112179281952552754041451798793557067843986442318295703170997952438579478608522760618044917249213336750960166008097391801603310562915231534642627674281974714176744876329101686782747000365917796200280205832750082323029506239664055057714717292482161954797542465993667380041366383552037786818842159098339372760028962064814097829811866382982968910160328942146919993411272114451722800702068132154527273291691635731447607874181935881641285131469964387728024274691324965924067166966785157090887739057329338857094879902843301669706596366468707889972026886154250532052016638120164818471388898318398940490343509974082385501470999913401867848438267365501367236462357702178095946769050900720030453213702749810262297575190875864388935731697004694815368211774122001017456400910970096423775030160660706618666610937226812780782428767260740017164902478436358064416800166595294622665179829390342287408949448249923832830981801068456732790995329398634717848169583541882712650906788389032000365298684381626184496497814152794814363001682981604437387450820002747095206003626672973320157997004078346768639114421416583921481803680011609254201626901959614411055402948829931984183133266219183897570977712538736721197536450504188701553200425591090654003402200115805262381666729806747976224166542671310240778562566410234173811230264748878741409706139525702227975072111734306681484141564278297494734328867925385938954223503455985854495490991406944087460984456008942085914081730568592560448518911123150276755278636269932529318483046336648779461680372956496441066972251179668510496706102345315301403846199218468580854824968543639208782600374300705235728940102647123338494173698458634039598414744814866345628750103983986927358521441312104847658887423156190337291274196014877389834639385359913991766051543052064480717980819713190612363772249096953537495779332157604931981573084200415735295670088128917982046719063978483810958436449251053212997243939830227653938085879316887114553465722301124821267924496639638676327624333651809995808010389005218047639122366155708081336020456129637368405195614512356843170944881039801238168647608202019070124582666774245041792275349854138474907555753871222049248017865077573405843983053678448390323719549743644444282963226253028612411323532419676849421447019150813426193029781910640851050488436900519225120110215998663995754628679239931171326349514836277352269546846470124829909722777933437628684915265099283554567034072711927955852403361291443938386701710700113307570221888872772954507955409410282244017014121988882881458040099372953669729172688024575953214570852317761876676040253688577419827212538472397000492853889145246509057310864907819177320235479545381985165262082306368967991582953546827856628400316038580733318494844169675033212725463252786242485746659943081774988454755687430994387183578077676336372198573174895938478514803690105115021901631175761967703336003975803973817926343621596932936982014717127773412732240845974152347195048820886989818031639962190374618891815207524841819209566220676987238604763661472652153151513736121075909292620222228649994425764091687411823175377671392550282828016994366168136368181517778546986615183289415831223687761668362368171903046241273775482553996278586775614200721896214243025360050299750885326400474780391973636576186433541503804682787595014525956601782657619885369802194193407182195075005783596569253151014672979132581239737977256155287701025898615481583750520823589697854196536023109766169458591950168115517131836627693142170693699522505405680307781262713345358089264624906395094728457898781244379356160105036612996114391513976949430064524759784114220293088506303023569986213351200467922452435563638699687366194012898903097167846378241289688479743698676582647912171402866265680381656757875346820496305051416684940985373658851464636053348362131694093260867807657777251715344520092352599051620116939227545818693756457441871818375603272596191040200797219048694153541512933244376817684153706803997388545060298795998941810879014264944577426400225246142209838774679757058772742917635322886306066404543407175571538479722625591880584531415774890857131759445818507551156340403693016526200514852872438668439137502475075203192379311938913603309321527163810308457875513521887215710928349936814972142797600373353472485003987342342538060880096856587071218065787251838099997048931741290796223691838566275047490404023821746859587437759763928419557081249488586088565618631741986072211096550671891975090788043201788370824739888102810351198584498071269029295140602954735482227088803531194869962428867574364720653543541539811507158183294310332459613704850521010794260850514262458739728325728968968121848908153861851901028148693884607899759602982062704500126381796651764140422883358869262790625081455038953623821500658250017253881856564385054837330902864213454352126598091377621314215172304398196410663609819067724259068601120687648447092465554659369210745609148447325831753467759195294110428393932362552393815148256631311877163949632122059870502420771359572085550070420672289341501562023389739990243920044769562455519043753594338645112496220972948157865792949128826533120725862611214967486400559249008759190198444766878653035098914622547615721155378361723822253219176835392742038940433279860438299129168833612883736120422434307063849384421341325547996444621254150080970833142632501659210092263289518231639146421153766261256862992330821397545886383330267117455416071390353369029144517663288667944794781381620273238827698440606487355806982788098337495939240977145647855844928066684905158544077189503592877105041071596972548863633769763126762311516000477535678180774313617778824555926604144648836471947226875624384315610597938501015282185135559147745671575026925359238302934040223703970771206222585105302086807317435413734390882889102751568983411077979490754839199504058206021416518878380069580232152056478671416527797987894104796898052192419016433366719423039573687491169273304325024687507034697385485482318298352339684553512449071819626630219602963841737914882565727412436867292341654433491709047982555033908992608831558487965866127228682370951336718704028108454487312047945600877973832446563937425196507914139879025738358037548790119076214200646564163411503716105851816655220151092051778577435731119711121337484167671463246555953818645741031912437766290844175563326718412396934012579810057783222004942767260097549293680398742894901788092931025478511868997539209503967833590694615117399738863441636013142854703755557398612422853424222986268134879228282478359905357069726061522439443296955602956792980091398484858058705279421434509765827245637457827130840454859887180408255797693575082994701417772878912568000979451668756347135831600578148407553972445877985237003361105725381714135386770181211933811818425175629986596246736148714546897313577382959977165403206406618570428274881385379393916508685058552716945544967071981714376051862168101978762931005086020139289845315622854622949464036451228020257697551353923011863374221434607852884740065305327930013141744093213063073484883513915064682619423831449052435409967023999055695988809602038005141708438670268388766663000675221891535159701127471294179399446455028772103317828621752059465980551516597286674792882266123617287868979835104447777403511121546741332625996871958580440816251116050038962053926172494881907630138175232027341699255460351486255331945495321862334773028437684880335080465234270293514635199155632637383502408321554931404875619270338083158746533745717746300833688211796878265663403980116766731521400240168755180342869786519294591928317848294868682046408668555359341339637619117744266066407628775738726925802667489837269772969447591392648084336725974438109807354822874415415782891697925854911800541155699051088946119094434240658515952063949813681781650999072518003071658065112070369733089553274462743079306508055021856327228643179482190855869843505458487382835325211345387384251025225585816665339963717631192055135869775890445244653760826178200719217416782421321732498901297840779547345263411349514867486834102651969956535128433975217107824094931377433947825505931178022462171229620889686357048701167586978107962850132340080393951539679122039408461917071942908117532539283722585615977746549169227697602115173048039485768163308675326614863384891694308698265292867769313870026041841079040775311589210018480640745133963421754459936244229807876229904347371711624921174407690721921758066941712909314158248342023367756511884527106692778417376505256831758844762711438253165415655094773978126294194768474984579004071619392367724018034707731302392125347000126779357299646603550157842568102481232305808943351073188311429286804714802769930435791316841794815495324495344902508557335582163827413269657454908073341654359125816998089269134109280784665291644031171233876258686000409585044164190533321200009144085229444521703807242171581448088234853044658530566244337615404078940369646762244090260091771659133390854660050112326364990970335978297891411251353088894606629085375312562877508866229765735659070952036790144283047901783221771646402647672820646660013665301316115243450945625062464514789007187632199428743006284406138451837131112725492728579527976835930045632366995647593567346316527633394008312263794926356131764676363540417121891633190118299812332080967481363644189760605634520527778355824869002066318528656628607712436632498168134786671875110722614569569242012201250224876053736370067890929576967295853510290461317481548948034817608235016473409604682967334754850043347292431779825391294882598812193122301340065287999637239996244594042582304634420302533738823423540271044351899217686380516789420074188925700738055342304432570271681452457454343427177426619833927272411079786872989553424482313716464138388221135557248198713715779858251702705782445203129306067866919269958121678686015249739666240867658472466993230025951371233817881107449279528711651706608542962456486304879964602545342343310731516417144438941752288040337321557041416142438995727738294210270030290492693591864106217909124273659501520554364287752873620732467125192197066606039130837102411546478416558238058756277136522784755826880490054025803376986222323993552915072801495959618462003859919958106235497845264511457431551172680541709656516923703995326261744067825893384887604089615893177354015427309864479902907884536591450505952961855276202689183176272713665197386449793237289471098964263873653631417012015352960473908054410394341790925642838633294666572663422257336192814054584452938737813638290502308677231538490223195882252572778170242431890295539202940306873716947324999323543829444494895997891571961961310541430084670110473317348393688089019984319815389551117716006244657927526023901907583439657148233930856954128862706600804400383187593637941096327890905967718221325027618166615374547334049071575939383658989458214395238755618338928896849635591610655382511321513486669837680057163313206776666420579505441318182700311852992302886745119432257464905485892549321540997276540061289709665031142663359591103686890306895197967404994172703660364571070778854439755049404089907998239789947034585231978631339984036022176511326221427667828937460236542663700615995520025525479740084360249125555353970262819599272165368103242405455417939361298740799177158360747992884222883949678613525945436133412254960648004846231186847136802921609913192241258897041556801862198400228523771838795703771536641284545335694160405992783845242233612218078432604017761839752219700198384092481830370665276425369836255646328334651462864611034120662330199511091553700871838576198877556377334415048791284015952040615622058985485198217859764088795871495045484106747276474183647338118215772298234045465187867480749890580873927938045472863255274155614054008175830475134202009239728736369160437377971260843480071490581419021421860016710286986014990709039751893032190394443564810707781904890036548090579421289629000292366275556976526282985951730143792100111004747115220362496451822535844974679573553868852061050739686590758634165406049391039103165487624834955837228090501322936806689775970588896948225093851764009964773964405041694177226140495951635611257702450909093575080116156191320266639893836161959064746145432946293884152285412183846022764944332234347719649411604443483566671007274183231121900905667087172423901565665751548907985659411375177612929706785264726166020101399584249430952712722026239999717181254805743359746351378305904827997660262578835380624469410168231598863991319174017876711337354692728946804034387756109077389929588608286603376472500151108834717769963705720661972443953925049839528776530628499250011430162652846737567213107259388502433563277257535130388460758370434697437218832383100274480837470737101893404899601625518260760878597134526810672824352375543192083696382795614134158523285907616472048198384639228694677107743812230092215105335744687929739067105601417749700817854444205567928098348263871737839106054363158520895119049549127232779212688435410859457308912014146506098263796933275246546417642816186599904391733017705390824885727969407099448503706857036625585766946387172042256280333965938033637174596698064699964441085371379802820088964739546442295266849331279846849837883106036679755744258222364583909942636368058339213007190015237818178801942833156155690536788095298515103760297769715281972519599045851133380867926924255251849693339623677859649854731714118331261473452077301303048503609945203744434872056522724200164389360715891159618690461116692000515856981116564141341103184199161219847196120291159359627491674128062256482853214581434565351300641955175064708233727167066163386888749297819021539236366520187358306455206667164301151298036636826272035038848045205064867198513249751928915009517595092892722887049498756149287430056934366065081137051159480411757590838470490619437433895060572493722805008403119789892814492075703307589526461113323833690753172840546655723210657037652804884593170009019941126632946605201421248196008349188029101012197247441098099713634526833808266859014615674210481135491042855441143759253786150485685062824466415600035086662528003738200003945953741098922823914264760036779480970593283760823115385610700851490344674241996299696831760477984823921182709266196845429796434709122129908070193821091758109575778012152911546929361404356394167834330397997497084781584944759339851890144775987888028454618590999886893900783649278613787375972390835138340265930821097516389361758014329913242640088687651261825730025779019451789728020703007173877327507094985386417594437167836914800985689232016261908620415792930038691373102067376733614643533280241046651557091713403864616183993663963411212789629923045114863405891439696361148719650231102292110083734858189523609864292934655221192208197204938842172701347878247345766850146810882352589169003895413355366665634292834788102782940490485367800341594203337013634345169258820724122464128397342355182733816351982250741259138291468791470470674954537640372200406812964867167333256620583081063358082198803362789307478578361516406451742513856566552150484225986633115251779828350135335079319436774046440625078947452146354753470410173868170288932109534831119223456154790359964878757342896915264324930085596444837417122448028688191133017700243955411764082970122428027310365433800007159110125137679519415127383034468330484844909312626930955859315839231579517476833450905702435478973834736737664000099445512595136496589232740052462513354153288359077423064476211266522464414727269112226577307130209613121214014302584600367676651292911437709094070958889567164111086801384700730273986788349848646361684190497356941246934795768550252415874571681882209064192821400536761270369398320405713913306807067772567877985729364297294147089678483455193120724493693379741703722051075927692081275144222593996801020119243651636594646359079605102012888122065043978775739297816510694924955028363572778390033871379629828831371002074941619152647843338312530834237581824757631023067028002923523748086062167658847671021120039305531883679642333892092864061213569015565751888421599921278513641526165533455650450244966519293862594045244725724574173541979588918740789352006831431333047462367732898549378625436761347397363659405266248643237678928443070638798237862084536524797371743162961004296252642553881126174829324656610907496046905682273111245363451483912486727817277955300398583799655310888735627985646088266090043799134381561604752998331885319454426220945079362308808156364452422705502302015560856086209025223668765376786327019329659801504307533168310302385549794049259955524005707397196147015003945230560881145594857835818573455074012608375237461900700618046556290952820218902277816813850868979747303043170367539525959852432868926093217045426634216357100097914909017981328185504682579413230065404594792052144901978535002389623079500731450006529783786471888737022973636462544554269100733645840669872966922755639130370817788168811014811906976676908784060174404294623353404196499735887374093097700695459458143556130208609391774379670533024579152568925680636646646016203893978076118683594044409605999707460849063352774708897622426306615953475645412309391615358561605812067663730775964996120766789647757125559866904981458122075993760363592894278780438158080857340458292742756087991641444075530423557710350906301464570610917115575553477971406398173507420712798380344112061366466592087181682788615013758374716647673844145436178329364579492958490851723677122177554063378538759514335766440522585345134416309805494905851176599928667144204979665059316839552277061389878950568057999597459456957403586429629299529671230767353834671462721815375749597030265107966298425006733760531854048783041599552045498171829488730988641895140249093579587825193398627555674312857868374707282326012087592844841186215411569458265443554615705055590351483827801172125678820685367508960917110375713386648927769099578675359415092726904947203615080899372904222049495435393660451830845701061439424838297952818701647570759089099132117242535445190795861885395143353785065868689411971263148698457185442092647613383418271384490147641681085431140585071740716434489670705572840852625906073717106638319914786291326059139542991908588114902942897670763886092752952429162851878699567927600374224985143731556330067702644420415698560173817857672046746293432689572922494394432917042049473693986283231363782223168171291993900229003582885199933885506032498786475157949019557018916125925482540522846428901720613327460624584603526166948374181649569805618661565297750296113595812082232641632313898863176239819220415271763320595860887515297271215671085682483961132780255185208043105032324775193059680524272013871450752199651410295826466845872789244010512043369494179766972057035202970063268495596656540349563875461573274765019052307495070803564366068462532917401804392524572691418480924156717500794019556242650036839460730361250202348277815519233781136597262237023789414374767992696765195036483675399087211841768826997934502167266936936740951637722397034743375132955355220120490763607823322944756459937748255431158094480411733185893643657743039062393345019802144213037858284900637721778392467358983141848945416264291921821987884058594089485598735582193834227804524349013029785109627263511748412297161315344844167885200309692563487561943075453523717065995964324235274094975018867141112568599140267007510061316420757607150705836915748666638822181440242810452536654792449149029231196911453051545347774652669011967292663673669111735516725976236447581176928972057091990223692234907551666494829939696401883126486771601230211073654411052583006323058140923387214075401400778517859601876470866448274372501523426974612214947460134805653833620513727305475006085064735075286885947866668883535608200910932617317075299913297407598037572493125480292774142005252954283596411067550938954635274686306092162457509480029383911388450088936913983788719348787426607057120300438346271882640317094296518931158116906628178823795581158135547724817680708346240573031105244988846294095817465790667808191010517772330512126201361866832466989831449715996217140468079738770496262108417687081299954040908594360358106008888467210357154438930088731374886245616300189825418238576564320425572925094804222472728201727503846503715049623547673633935566248898160623736168569405325919744355159211887897040903785562316559934336028354831124936872091318021485851167183799006513209995791821239341096068743787765510432310855031194898623513483991129910183794745762921453225750233131245181934333434445269373619512716207306714437560241155709183539583765093947178012273523121371648081223511140120643930781918648039937633990383218533079773857116975657131908102548919655888903361059551895248037745618523652268009009484835030427277534045480491511169266477769398868852388974190005474227103629438492223960026785074835348633652930087822789941368031365475487014688829764620601832639252968246002904262553479982114823197015879515527763895357611887352574621401499667317963650585535779418987429410476277737692918035491063543231141429918598500019187598232078622389454357956577946820342443561357108013094872936283786315998725516657718814139699619932687079181929451446641632832701431076541358822685272972091513562569829503617432258665393976688922910918944815171549024937397575148388758700803167952540520906148225876276491103711877936419024029425329917813822126906548807237696707612690301184914324911937926986845566204956923288998296375351205386538855088804388700093826587521766758264837490968784185867910102258730318781523063103107420693016697095189151256412094871045275528086441205572738086603660739449463715105620401419800544016198531649364883620904129900184694033832883767520237354463483620159588669902034931851644643550314199556012770111822426703357098085575151926347012859220116157426063105968994197699497162314161384672601439830271705728120917630922936933019604900604314355080618592047580232559007109195056582347663045836534630047771009267015798101473534262171999289910791013062932493600018367652528806536779699973753589262258536758064951442594250102943397028149309780990392087974747757124590746971713870441845568610042662326465872021412792820929870199104733623542529804839785336643306260001396590359355629567665980486923988262684441983148056115944333034299976682153726817835046929180707458771181357060716059992934707268874052947354850994766268954218495942648332735736422523436942215778149478563046244906836156385191666671698806793510972652559257038340276750844868797183693324200826618261111917633679851637067830531289878909800051642010384388405170971327336087823398985676724974523362009604765616295455152531219941776979367550647973533307192798609463915173311245976744978551391380363487670638142568723240307802924668919455294513070494216825765689336184581280366162268691477684554242288430958514065329025267810273936059211459292926677918071117527042843355896328678773222834766379208975008379456526023619650848382854269467021793918153109005313533181891586204836935964997120789305600921876855453908214453862459522275108022096603125751934918364094450496519504993203503542769792801994109331726594805520069679944531967049317482789027022649660031186350130812061401677564053216889345064549458576444635823081646964470303969526065385450493885193376380851953556679815679435743913101689167197403882869372251462507468805847724946290602110884273592517160930958153917068676622777154324072667928096889366965173716959807732990856353979468998776804666159345239344597624101687670972029970829296189412842811652421571334183617522541610624217789578352529361115017555100597766650202691462532225316959536468308598382737079157453501719443500079347974769232994201208915005197676990597764814328615799410163681238053153068327981435899302050194657233704706649170983404414163654962015484070825734319055683484763981606590160091179928557775704907023270826690409416506988835033988699046403096819386367270760573112268311362143194739278871682156367013819683133371757693668982136398656260241380466391526498624194004140805036182704469615609563092830216055775766638559953385613581699656112594169573485426337301728419261866032741323885040106281743714748295890978059257231549474125831991613000094296791084499086529519956310691368771993320940413606282323985413947246808204261993393553800138147200216793378061456779840426630448905171780387521601769441964805765315552867433540907765617287139330163144955974318659910040823851818713654665359824697586166870239014835039367489113260570508669689304798817862857566902529711363015386215973603132733048927141392487836922636542026179499427006102403869014247493217856963339284507022149516303312597885623775123992962728794132108229337670055938588924523080570604990687993596873280512373749112184627790220006689179394997692689941620769723048480333182850419265374232541323540396880793522338887773858677061223754255811702494607512212035444101721957850823620108523607093228289227795167089399289402578492937163007183465727203171967768555352733490672723893415458222625155886831141615823581524068918481696125685304631488248820642019788168006962670145052549147425095619338318957104080473650657182851997975445785942498849789842435476482173792089157620553727141137439275902187155385623823355767875318482133942826444527635710070636501355880014301228657542118617821643540840106945628351846335635794775302310661103842938405784799582356272915210088405271088733378493908831571485609585503405356623364624796824355132818812478318744302559162120222702217894843498327795834536527968557745722083949726845115311216195504020291957245709069525640833971803417161574495415248912190024961349232087792623416219087545606536843197801741212197320881365124708874749611296118239836013747090797608881086409727550102265663818372251232675095533146155942164183731397087932894696736856985482407124831794746037727402947192189896766577136200450783668666290298372035125312522255598220812425162588513022361671434964196303901235094718272058192402203198045641301989500749733008289873128952462088615465180946327506160670938592763112691174866247670339695590367797572375440524885117736987844365154681603746529631090181008333094666700407204100420491437381562692123090358197512323684067531721144257690960424760334649941717978409665268958897261577433687550858647688275070040740311197988271909323749044917347088381888293799196158817225100850303292141601008406857337407340548454777927551565171769890002965256498395297289326712094311057779496848445365672013712195976009178686920848659282874810102072945516897328733331672992874475600616984150071287418284472782138439574469970948622820270144758284531817960411741015802681552174691588827686622400038862978215414463865832562888586653105025065295225957876903540038437765133714872214755510457097562578229962588922499355076602191305581376237071784767253852425923614909912755131905915957222860475416073939678282146699199701964891678835066028006173517260457983056807502507135615121107869577214560763282370465586142987149162712196559149008176851659723509082337806447661381157409280399176430241455115761131241862761073821088038186484663665561897579018022696629905098681489677514922459972351483571408374939070132597045501389764692385882654334510562199646259009228929806563433590599020589358247745743683511962126164346937838640673843477508839478438131143466011051362663824785988596626999477340628640233248953976705417893258111866955838526071929775573556895021709534378893001302686940303895252237044684393548767616617839574569340650305845049944264912099433166538419617886768445453159765416812994224877927848285387839411218934550415503948147327007308736284307144368108381715955335650418790952986361544450654356262364148871410182459351485457590287454597031261002726430980941952496084640859141120176638190692949271792793377081931165090509031820825179786856914931714855838745526381475254499156499319973963451071063678603872471778376009392636057976734891746821935342045825239501530071069779981412199848433574723637558242429645376501524803889408776585536203815988520269947917900148169467043208445325204648115284602081705496186377120576837473192037685960422636113535462784375266588754428954257885528244226945517246319323291162333476412318009572468443939479375341481152501401470174724014477980237893776908159570423608359023979773243818034601351110596772950747914753289378609302703417040779248771941851703488207834232239896271302698584128799573808668363911324661582548799437035957788375650048550909057854412606858381397707737823333026690038758529860272569401109098296797621477909624489199855066751644873774809130170275906499935214586857695596396783556503919260475388735677694508053443170776968243582321904436485889249476312972951534475792840772802806022354996451160112695806372964665562527262640009133240399162160342687565056829601715649740712934010445896128941649524037989508474164890322281099774978943713104711157917904180407129027928126423020106301901123583317440604025073993869405459229234092066298400388369815890946455556008175899399743173843921270945958097072347546180725998208667486592170858635520934748340239733582585899232463349778934484590896990709040936883799202194151394555049404581111033617497725176909683936936112895052507909294302778415355449017436770285855879028837126107910602551610504416734152885237161911991534819420724100975094548225646731946803341693302410360010621053640751690096583033616950206726464050594199266378544392395655207196953535390897942669395193217061583460690872567817808942076854467390828906385380090984483262194150847161988431301984092274024306369727540716197116017180060738147942929607805034658979096378949925602998428115268238399302930349525860483584381427349836117611757491426168538615550514352762605636240032793378547986375596811074634280940441157277969675098429834068865288723300890492501453033249893589142769164684165450061617030211567634031474247578175982278599156811066374062037076882937017595727166134644214201621309528395603532322745631873254453214113164507624780514309604860988176654072062817135274892637724053820085842599889022933488125997454399792630499636793583213849481612690265378835690674707685356868230450623777562667668573480149020973441435748985796049716776573574271993436638047373138922236729908307182103360877301617425259132208946713454944246515189421615453824201555950200561874011916416260024863535074325215073883328164404853636287778769786237056235179743716133648586681799085205819868001202290260647580378948315611418048753995436495481678863857865956608712454809167448890290408554792612339860431589238603742734485666135753234763411422144661792889444510989308525042135285507295106852650460342815577493442973598618559300841828906995510633517458633664756554014002627113594795733206964415453758378959368744982423054130868200654724326732977664132799068467292122991372356785972536329279709632741806231891916357560590507256419490319871379944622271553609520553403331034353497652336233294647227767323874765620202640130714140152979856263968554287007886519714547672742649803986169046153804480852161615037167069719130976303622153709444392096676626785462988260536311411059639520611023306516536732209716020115988309554320961969042356628941948220331110007891405535086590939228079788137976087225303694691761622396969911031509640432403368622952809585726499568138389790851496054480326229987513940253554656575971245479325446039045970369629344504935084540353270345280312602723452919964910088345896033794398517728611186168616533802675836371483610952436632545908111316983494323912715575741064608675235614835013222770714990212729626852659505827219286528744341217848640627117487763774551251020896276713016539385744179345155921238373773321460318560320367920211803192784405468556580072135338286279029358550753198080099430029467634117661183097147250633160699410821158517748543377169060766210062399446047489187145429567750085234641733406801492301278672610444724613811418155646583527882417194780437346352147044311719008898449037815572624093144100563592397381058886224946169535051159611893226540877634780550893015873515825250396758813542560058273471907766667481697740261878161342753616849626080150417800372019280720418185121061953025312243236241856083832582315864190916951009134280599132024931409370686981463623399032487715448054239943384722819226625632536837521633889956154674850735473221790077873183260451856336718321240150899434854889922769755745502701472087559333022734776343517020566584088632967740216422603264645329108758466778985228414654365973878476495238615265166583982808043957259912455008655905863949298042619252219835704576658377200138415543633814623902129974369733998303078899410335172775214281234162226579609243223233549666336706490004674546314465310863060740480733808645077126773227775540550389487431126243377364879086689389873726377118544815128418938882854973600364656552325760400183308185944718071131752096208443569169771465153917619364700974413321678289822622798646635867726403883244287052853555158449528630525498868835019065653381567486162553302098451233846228619031779170011438878827958753160848456758835883737392213688499559992161038651488064107750603883451979679605046429788378236468589164632765081125618270719707503113656290104909822587527027139838756119042013080015056836342777500567053319137366496447079660049849838380073231800879466175399556923305380892195097869871056977793874277203237985143340281919688906690394288409102415486134239836480598642099698485566304495565016990816337176949617464695879279189190406848489828734710475489428186242325887685768487893000597235299288011688992046919699262726142198763062998024328653834407117475175977689744148524941400333475642076385215245718176572998103852508131604718052993981351132606290109723172583421264624316605881254757025587138963073190602270151244442554949828345977355346334459668838976436082626046223359842441600048582466902130156736633051357298780828523428806019697325979477459606582159324754935409935948245790623817084784700724394425734406843162887659135245197368904108128884423000579862033409445954652246636514065139696020725611144479717694075747068458610755132806288030248317953004488660319919614668283877112965631563925935569836638867251337299043935900127534320112101286649191214547648827493142774260508501515091517633999532150090969314604802542538425115136791978133139253063914037327128963214394333935579100904653952398762536784418236630059848080224978545754402971068897944401539444504354846673401203150579326012249814040520115770883510117376861452376739124777239223404001645039649484654623849854961305268827639264692114460281379284028728085493672740877413521745086685489278789929986406347720663104652843495635261804454904750578017688872829345482948879138561340246055714706346199123470006241270739268304314733815626568906143975655156597590772915100684277778633093392422847375162972877525216977039951498973961375621020257676200330497446682852894834679177242161010270684164415299309513686509425589726593624335687148053374340302969087654073240957816002617204461830758451756602336277706038572496927607257333763142326642454229557559706427069100538311388938039217536890977944065862422811928225429320256087487137749168772015925438545416679392773548209727983148503741803488265476226926191612684680994483055561037575913608777564439759875615390991052366902594844917331147105615634515882821868520119826835955942436156141542418824540746351757995393130658520009654222392109665509200418501168615799563153367740512003792055048657998632721486352725796682899184933337466235201180064199428503436496665971356823757599492246547623776212426861856626507696287956563437074546213666140060358567802399269241547006980203057296227535844434136398909038045427670886653190384716667603151595041603900693571558109990544999918581738846339778006182291550855719295911727772081819574488817552966024885366069818175523051382778033140183075865937141798398095695560022445958589544015527042179903172953655291177365330371428903613318164185484809903977084914257919685016630219745889304305236085377664230466634677476680375217432027765760681272616087748787639096130789153001137678833883732229698102644682190440070515649461621603733995506827116608259708855479014750995190922502106512466975805744054738416626699808075120520441392581674069911681558451967398393895448784233424915048943042903910116463740021209536126230697902164510374522145076464914015730912294321278520019859870722946997730428547499797954595068104947424653454031103229728354888038401979645751417970365068042132150372721637087434020223752326413711926276657558912334169670742821979936503577974153367153722636906475063072516574896152230366339965807117893202263194044957511533191965863426211845543320012808091757939031981110977530581310807870151192570731016481615721080749303427536099503289626406893765437766179165701671015826794750486418858822012646229134059896246236736143333539307314475219795390330176604369463036458079866732812057924946388544511013053563475514201256909805772853739004892526361603366987618374865345191081147437718552453594618058403335565432683999931447629070748395798477828427516775029773057781757016564768742091692163963292650408619456735911967664929925131385924054926198175838974781679208790600526851431029438075303752324875418766222889232855514513540271587179098720996915495936194922119856121429430935874298240778180037859390032700745553756409886877366568881298828857942602259680456975110415927612478325702710528466016746310687350583447792131044256702172379437002287066846564645811695202899788452890568688248806631655368888202285836350851997026707238423947535813673483810513903251807615827742606362578103485315320975131210569766067812679281461867045542598943178928516919751039313207179462717380264511513961747528902194129298523170127652507906693223930533120685671916986293411510289832345058917115637004699560431846338515865365548352056650717672273692968472802932750819167594161307542457245371364276456899017107768852231988494050849627585384866794813225573111846324778491993026429160785078882818891564284346786286569033245170353931663229299341367167120631627815407115141765814475760276115268271231500379234033930436010836269614006247855219605395991788952510587081460122825518376648165393079993927123582224874888499987503902579294933350077815202740007451892937736185777282029932772741383251699981400271554074110757721484188541320701934063899019300472668287102491083231286143571175676821146304701415459965291925449858321076829224119565430343254218896713111355316268437149758235984712921590822333027535306061908946250689367137593230925528580622001272664335851514932825292873625856589814904907603262144725052764372580334512149269658143163609497965254315129613312412212381808432905727374784980705000000373137308604052257728930520353548919879487790354932430196617669195779725168000733706169240029246432672866961785204630333016424819809249995284634248369763860195667038994850698624991539010058903553551371827332251943667868914272613305487572488189474452596415967898695265491420810393168904620895394950887224337858315256029782781039439393160252786364033677202864730072718322826851778444478880963069818090779768172283663269542189456908492878601629526794302143679211523620085788180202189996408688472938594199896916174448146083359289973618467845523593115562990047296896302575281592068629261841796925789549052059478140506886306950062627514631067716744010122863269892545232805082144006393785002360106744397030149311269043132796063283623174408872133048813344522344854958148317003153530999863676938269928637169727086078580001176538861757988100838134329941822862445015090015519563059696317199494795177155881624286037384310993627335897805785516655594130805087693697060677920709676208175586026264160542335418321159234274515521232163259058961730191281474526957489271139721220020513132899601602963148277933193287168137882748909789778794031595934394770076638118514358799964452325472169820977710309500784647414736734419903393593863325911879557177148142417168192792315678370803323931898437390198421261573138425713768799316869650244570847892579511698674503146004233582551741076601042109749008059211866384156153375528965350155885333034898524434174690415838585326630907267600833272745601794288002605117732430152599064797300391501243908126744601628599935013999232900543132813783294807705202741924155619011513155521201796874230243868117965829174324055401188604917185149745139154938864647922601266117263114709450044797049454418224879651391621019148087036035526897507078413581228550539586542735930309768164252434554898754101905483328668068762630946170797165372549529582048884988350543778111573541833645331918096654258110572074651091702013998123765032425891244694400036602938738807231850165575425951095899965635416208734456907526025419197306212857047031549948135185538957397179058175992335829794317867884864187240630958226399132094255107767692492621844500310600901301958712751178397618629020303618448812684550070021547669087970578411897233907168947927432612730245215292567682940709988369085415060820549097778769933386815739690968222683111094242437803948851304206108065162159082054986766993321602455790926538398772912604755785398141257741437422665952763213088816501705478748161156007037324210673438569903432819623089686455825516919792641965249719596598977539114736020284364445362150823210566733704084098200153687989059977983611969460584458199841360613416140141110895754819477440949523386470126523163722415742465574953096928625612938228665214936344604181187476358746433047359739538114173919706433050004721317957319705139465062104276421950828407267605714875074366481650411119310195264525067265999057581297807421826613324825151399817461792687013726067231750382527895088325101967182014153684919810976475323329658983952999828440426391622713382993014718985415752085281173879948782083225747383319465472835031695855568763964380375295282278164539104441095618639306474352278923883189567581754351225976509458090825134365010040326439112024042703845892658474774321835671598725777137305822710615504461759958188116894675626224578391024264372432827609896524140265179243680453499659605464877858116131945957648396546087160088629852742056758289968482206358717233830932219247304919609557571707519392476200453785904010034449772839148578915501892359434239657823188029411438706370569216704685320618739046571359469922807932694232108889944425446890041430868735964977908027445737040487259511175258221466486420798761764464080204552096581383666738905908059176654210529209699223392348881647396146592320659519614173015204103950498823879560493840770781814093042108394427396414013152031823021605540541172853488434025519488492418758085827136993684365497572832115889299875175655773821607592522277384681131645428782670132055454511553131544804929752644010180363349257553567593330846507811396173028607160172947415609123604503179841902720822721889944849716395791892319655835006697926564160975062367307733940408956706999524796512186476628582060248035925841784225421934395879921693454973354364164143355202043765783838113605657350832786210010302086532311980685041289204335235848171475832080862186401410936303522249570150192233369353238899910698151771615908190260203365956756707535874244052361700899703618980394917227703953877963678288149260216478586244119083292371043976067183074562986668471696306493991871338292288980187819566312688994756269512055176419557590047426221756898361830150572978541818929879570773445507261548973295833098721526430260288459332312193585596582067459262825691394569906752766533963712039070349568339724867005630928785325073331879941389176527359595479584990220043206397586706094612659327790774589310389113001895641879206236447686350895190500401088260736142022933131969239678631249569884963495797245812462174407423616235566400054734924150404306115773537092259072925540247252972748771098278688034203023391365456456057881407285467496009498018092827225924342432837813141387660989532825678293793782024131244155946413568771585620970573168119428606382667337994097885676932157277118914839582884060821284598614242544894912786913070719294348217321388288084810106676182611140788996003659121781642616763886940026469114626620576969286639810558661222712486970651740134764930227528539720363036956605702721417207169888185250657274459429427141874875164191999369531822564523572771831939144843103788719321990868771896903151916261612816827068622884686822882823442502307409374431025535101482920099191669381144965708810154516953520252667780192531885801164733890578527357221531028577601114964101371683796313328739048770061860429732593495761850283579683952401889654875084036979894358427674429681112143243783035521462339591947986164012491027140704771208907217901131061469761173981002170004689892549776117069544519409273433938354479079493454744681449339275562675008029968337140578922671335307719587415695806092430739584600585929328586848450572030846096690646701350918045550581822220813969473905956351341417787404649810374645567565463646129801957454330315672200268905857629802343442047788049044791210173389490348364573091327726899632905062062388287788996948442311366620823339644925581194589957070006864643415769146830948691785852270874893144225552249724856920880318338530280640468705240860710387550964992077501056216600278015321521648429442031567405552410729493396267874063019656426549699929805342197752831792620814115046373702770383042997187835938958103586459201323432473546892046938889113376174236721116288926161649889392705835833498918835429434737480687926970281940048838609074570364630668934256958293751209571589923852527519273197558238850532917967202366277546030450010323957535764203386267563192673403855338966062102512068576288098289051310379606726231461959095402919659274426596255556634642710715546820366994402401491241521029419217959923625627816822495075456285192601881869079742631955838854701487650738025812721656531481686752693205906452195938225334022460845632232794559510495477792895587822187259715643635225925572415690246792133500447657183935638563667472986382624162762326920877464049033932202382634831044936749485802802601841709104328493249338939634484302164425066064921124977288973980050374783858446717490155271847486098642540315066982765394295664659937495939636191923796093575649561643982982859990707866785278955865999015838483492289918492335433586440558546140007112763718084911318075739569655210424750366010426169517541300364027301545609743588704124483220355262363894090675092140421828580501541684468696535786859729272580163842641101357365609359160509679570210844926458907678294957326052102795307746010847911096431421072282111819950946946742564015610239635736026838568858279167123399246601676123521913432687132220818049699169415329722375345709851637528757931718059293381233766131622704715521120348392229140644371110597157871364269068807997106702127567926361518187714820572455209730524204767543978399342877059050719342092106661387902571445640353372457556581455965302600868268085852949152636615853848044747112666499392642196077400984323046653390487314767873435166191375875295039326767559140204848895121314296596951514848269135227650934034643194263272837908729281294152137986847767363275702509896228980986357046408233048188153188450203787051956159794502661247986440046153201304544033989989158231193865446166751039068966289232656630845842354183117753732283053164112564111445790403668268789561938062409656821011291212290227206253728045693705032380675751046575862955211144876780420653561437011032746820319525137917084362202389408539086979337373024735206480437418094435887049768519434882966541891058323082346402565785249633772223741232633475941522670002161863240913828548008527868047851953128853721811693296728715194732879522630162027180272212249139480708905484002400885497989641094512538548285885704510254664571570956721295954051451580977840698041588970686224327812072101660449616991180866539083180946487599206320741953124212094407646961178542286342384179690362181071301474305028767634265908723640933367348740978459249556206682301986608626273656023325587201503388024929958098396648411298436933540928354054249934821635248927390695852940381121963455412732429704264539158921600335095470971456202344754790549331398394748790998883581095725273727834103466252771348119292266513420520944518638356334878986895951314844451337626751677095998323413064324520915431437974875234628678804962569763068305116030942636972686698680936032284444380325696887819306131776111151824590399220606515807487568435299542037282787716170025936455818438713129922962204576943700346891873720487002669958057695027216349647772156739004141116123605213675919999750238385126030249206944784966522306039031017554435076310335726226810950910576326343346763901365954664930116088842268689708171864589263658179051530592373161242729395911241505514708168253562467152896477637118900371663080482397128023153791021326863573133936581158759403645455277104341024714688806239370178731735503321745028209717301231046734856212495162942391644154958504765597815242667050784505541022152561216806584036154884437726020627453045185000734060380905689221147473677361549734655350663545828823324326072066944700766103901913961952284040910312412592937755137979634061111950958939510414631667360670677564462830379121918426965925912080569645448019296280771293290989226690157062936966273870599299006555116651279958886051624177730705876078677370242117319911268686819276345839075277006872724646536301763222420052940723692951894181918876950693004145994403119692090380290729120852341485641906749765370300043514822070364425965542695487849476523025558221189341034612911493346033573124399288492039950707219288969177063306973176323633796873950984419009376038999434096643313786619468384164883262139019914972913593021057679481816039875078320792186690154081264720132456618034924808256476544113852882756745331541237511692764623789219959234438417091115815042329655786741373079251422544946339674263074017563207126145925094956887595687014539536555532532911388527806039889765342157393459116499758217771836935874772501665089825722092260086434858943542098082600131035114098437627557729915918941785993034956868675733305262134643206017001905691659784439689342327490470282568356425135538565644397036808101753571148839710096421711599798054155233230389874754542292267341912874283765590291238200425762525278264684982698045868503238067390261847254250772403513688702757460043852226403266828146534537901330344513608517919670123926512395211912143515566014214741360278109734256893299993973825733731129632610523724777870660549914501502003255882910374416656740349857910767741789407086466661766443421808047623563066523354486842953689834195623283163133183303972054530116532680074611505673409874033650820114011617124089547942942460087703026372211010404136613990546983276793307503084235157939125581287365367509597582411376613205490693996667919369438147123359310920254581739860060745064577126278541577986347765688320000478747300694737832482730744143158606414943963090011120082723102881336347928481023209335127856536267167524093875370034221847419018383887714259854918077430049271497047499634927765926705691614789377519806368986109254678009227228609830716724185319963701027638457715182231331973682906358844059701486113208759284137705356211277974907238446925819277654257809451152208661304085330665054859253660300624776767568349024103257739584067845765691590772317223024467195602211406673406113974615350907038018399091904978684126537601440552468252628262917125220520043052600803173601951204386927466244447324928144760768976759130708083808492149771022365142213002497403554967471831636560537371461097231993801102434163490887647222236897679673001071439145263392144862180860457557804740821906183286753076239924573604327937060714284110455197991934504566113461326102435204548637276517656967750759465253948832010876212742694162120569621222203786292449378651351182556757981516546860582152992164393437461448699811674281557542856637663880785239563332865293473447412940772084114967434430977643428262536645065994425054941232793833493309622018486209024555701669483514127417713817737906382990287838191889013407079161721013915275940080521032434293114236121005943112317023652177468836150018411242365116494681061207460167247972098744045212514523918625024234445117844528757227606517996160145183195314182386603512295754059055679117915450685890210339889216182780971046659408377034621893052947175144051662787908356171949471175128633162385727889980277660113099097445391597496851602055362650732057376691446138240268379213728270799578750030104078317211827131058639192331239964276933638729550551392665215527947204938629362231682351890555462388677358575720743213638319283506526827253910447852443769373287938467778924385857201297045078726542250421048534307412030377884314333449583751547580739669730324204728543154052839318837181448408556192298592453573347055369653444885797127536200327442376684588627239752412633254935355100482993429734678285189291761298170255183642600347994839793639376060707781345374954010184527966836202796143402513746426316069373521190835224185100181777395972533036542943326898750588409653358882461638932571212412254455390389198341351794994232596307482252983643246452413985206015583427835559238500524856612979832149916540106527469104597048352423475152619111888915949751311903534042155505548923739921909974415758380004441471002515240908487198909800899553413906600540471666546590560481878922778276989213190501472901822924062919178510671779032819165447880048977524260329578857825557455240833929507758373887519965604958260548516038282396478514952143388888457959013470122349453843442758508633868056903084124749965141432010849665826556126000779652136365608431302049952399112690992324317745229179128908396966064063836519381061084038712959781749856943577810912089332217470770221374321580432555909684749299068885982017128269847740455801958177541868820519318059604137110904588804673185966117383837646404732580078597537791341430057334537118919419027063836632466333903024414934521765448277920115136284829545894620293479800046454427867174999253540315147478795846217238732428588617029676414239461226813875903441591862106709900321356767244817356995684416537014136010083868886267199838034914660934628547447516987209319112088897139138074173170986405828748715377004513157648367408597544731098732164358109378547378812441659745872892614981753695649527816096444710916500514343628779322034892459267495404707281110059511957454099220926022593555001828285545654770899647426571168973921008545145163101801185783283554364049375418029928718024585014315998238516435388257323609679233345468253128572444740841312264671509390923380267736931341882808359752454206275440754213106003319022938808787585680790138997598042843251341203329565043316522685961951232804893670191235683607565952433630432748857602587128617799163679413702585034174350754503528403840268740982980575953934335308754500722535008155791979704766834654058868859262534735526505329116324043546824448125517706854745644701384835718663175884662392726205813824895680754861496239666894849657601658892593835061062577837222622948830936514414606808592581627015589930217329863648916267078762995090370943392381472834120097811678808617816379127231382000101678274547757896753503860009689687974244260404665904343201361872801887636718270791585135092879879216799647993035122376772020654012760768926439846891073824260286389642659336360777587548578549425052882583312135430091792901371523373881027061337879778597354635114779980782205200059417021268172246848832228692023908323792512998295632372250547334665945607769890312467682942383364946533026910748202842778393104111438259650255563453899401062581433916327893256194124279525829762852169983781947307053933646269148909427623510286741571141572827151277292598410220859392384092834339702221250159999343153132895904355697922576507208723913214536576872803071158548207327455680572610612754391829392048393294506315617844832319679713952128119089123473248224988968899245815987642491847384571504431422109048701810189554242572740237324598301225374546364680602951331065434474025252574637483048682436898268546513036662180482113557307883429721563795202368654281817598964510231815871513361880679909709711730978159247085346175797677568004717156415656372879519265004856733475596572833127687454225006731459693765979627236694078227219867978950204719639998008477235966245429270547929982411988272560636361893344837857760695177210109081070099022195096767201123662750569187081979967508428206330965005474595476787549749243915402108033054941133798300469040886062124287020978265143495644843451894664101225728257528084267860204415641535719606825631179097222596318925406497267342757373422462450894499874532819258120179335477884607373122383494551715572308840633980128094050263124383043509485319399762999860772342182959527141896752905912169218748669458434554233753439401204842203914871604580503399988645326943558083731171094461001279524771531947704149488711523928286047879781178364859410179060875224465853002351486233948588914931099567607081170572097210559061763102109425981519167227603149023231192041346758634043249154938129703930898740906880440187400092824972596393554395709690116075622310325310499213646515913619158791936960163918439521917608766367645244036076724051322181031007794745992701724666177909664032568329264631841511017015314638379942198505502132073186514699540408197638357354429559571499457302769317674265408357167211770065197902670207950634409102580324404837396722020988644246682925351586847884457069161822560166934252948507069127416088014990630510845587385571000019427027940935479553048240396204762838880192371835377678008862489390619549814018037955563737267798719771745575622769502008501627082472828058993481461445160865092933213898033968966684627839327274547333207600505855606793436652565770375137475487281926614132945535110215747012378068213293650291749746370386937569300245489454118541861664288069983124535329606048752741394842793415524371365882895227953529064905892937421164582896535040464645265355030017256466593149210436982612448931992478016967358321949332087754744817548413392765561392646926431862338716392334444728948429327317425082205460185908845301939233560058674546705152291566614297988905919333620148754986449899557860868723234228060755059583145146135939199667947996903344083527010521206318127796036568584729251961119742492141265084507878004220338339735330894922040416928568003631071172272504785253757766727756019942213501296626649124935469013916488802476328977922691047160103356781489550229498168570229068061497579507186815409766048621017109875497294417832648480589144624828745536657656859221382593934426021180218815248590227740902388570681482728919543395949303779943239846566171968379130536397802374534517649305575398526291647182306394918782439076976258806326083944386003250729363522190962824504575777044582088026817684156253083868439512788155116147468528952143291756479089235850759343417831133419155947046712917165930811937987940581937015189156916959706550642790442929932854373307028291161182581475559603937610540690466715515173906309079110518468026981892031990606823077722163906004371245032173757655067012548729874079283668190631812055084084824767178462930648825800608631542717799204858508844471682989857237533192651508256849862927955728132467467081002251259001269598609468559314296470333841734471672285388096621432832235643221698751163424416409351367421770529180743843684281471366406746821102856184127665864096650992945060367427682713030595120411762599181303945920167847546382815239651928407454193690353461919257635903677560145053873370554605767050665216778493904887799560467290499063332773625392367784878573234060910844944807312430330589578502516363874337954106733605681075415592773939593928365948123949075651983291525326630101140422926231495612664724109602986190019705180718249724734807175786407256420232191089038297765697353710103493293051645129228411657757265692377799650033017426516635268750797268295736927284185257901270566701323835389605589754840989867249108215772060433311504100177682215835839882205478659067042413173082588927768492710048914145456025376522111467403211339868045506176944306573524667874172916119762978841440337895651992333941772836222549370582341430833508916173791117201921651739835623657048421863850000410633997147842332165343301961560433647153680689530776826120030541052671217229947666514790736475334746350461024433381110286577223009179169086753287182048846543484525690038723946777752696808787752442901792296279541666005638362536309815322822491408757741631813753088577180000959705912945873291902002193431843790569700950269593499714244598430291348147186084612576424313807716339252662556800219183167709428641144236407000306100021438631805060897117040264509036088849632176243441717666343134751678384832357995042654555243669146613156217102357064671016355513734513082101171820797002554283698864618388716610439475114599178046578235038696575508807386279925051175155492971808815178906775290355790979832227390208706316528397306917817706217822529959788247560156777512448576403858628619834983909660679949532718663580853797755463980882047070403164256460111040366327088563587670959813493367790035623734495911995124983434539326658470267682007332344607533301445811006006360069145332285911737176255349863386124928384687775513117879053141041755060709046250285596736030546501435699161843221370057808643250913171148935493219649934461716944408193882677084093251439175706102757305205621936866384151827645248703243696235985771574638380798443335641113201147551867015693368022376951782252232888991261067301785397606740209662237773211146927204753312673899478558014372391123124742492426131946065388845225651347053780219597751647070035245089045288039552913193678027684100801842127629092252997608013646804507123803841532715355548316261015524014066326692424669543678239175405824660459721861983529170032300593503607599459350887180701450052765265783068889523988656148245758549786327185135892328509996986484190353211081794093222344369531827788900488754494720254157281653857314635403699916985432333970879373124710766754317756125310765446233274164418124560873255521268372522722866306854584420785242385822103292780422933108123205288576570943648478020966379119458231620851497582543410481865054793001224701882251449109904339745149701848305097077198443983112275815142162284824871700192233010824890006585958879918873515410296855514979215217488095748922554310926250628469491411008210069754282302842472040380285031029437524853291652966151825326670151219198826267351672092480907942039507385904648596416511113582322880512273450527633938843997301381698579068483260494227405242545044045883859416749296252211507592095816978143844423971943576450585070717597448256738845531788987987048022604603490014095665821306646869370583789379607020979245689233689822465631945989783988677902522338795525134898781551325153250880257713893511879766560898144140931414405056943816943728661361643475836130189147637881981291328632788557535590249328999272067986958624658343830896909715371055288903883916726132368137522706794204738736362698884333056107341038680559773145625723720350873415646435773898048497381743238216594276607735726749003385736768632529609725532462041331714396816392507901415558774128596603596787284884226878742503778784386247460599663000458320306110617001358126648505845162568671108933387119026736891416927971157243115500474327972813699659783945859325303838545472014737642255380835744882819857568676725482772487277003848973333050144306292773433643513333992757248098655845895870278230693541265218791894693175169017083166133920107555154113547428052228565219635318929562835685659059316711254956068670105843108431270134048569897084803505046590996334314127875422227310526117421168808952625797004305505864947967829830353917636218720046936490035877022840124324949725494475597154176723521108058610217398725582217070584991245666532907633142427754751689324717845245153149271298611146997123861063914440170267028478805057189369284621227919165536856196865421334595954037106398284239161798936767431954815234174557533674164365785641167534702934140454440905030347430066618064948691471691701572568121954747992037843358047280968910452708383927095724514527181550027624477638228125317011072316961529234727414392869724170109122668243372688596386728843499456299286365378683200520170436832237372145056098093150922808089941607711293517823399713373395874135634104037850906703209565210069898617731829931875704042021875795389318267322497752490131330876645361056708815500558437642758871527151285092014945570036743154146303360701423342399345074387577624826776558909773543110244344697334683409006766323403240914149636558287746570164585498462754462066638946316136808891316823404525705549680964637478707148011938313122337508456812011842917738215423036506470299537888950156055984195003485142161620185361683286652563592085201648809879439701356993310557300173206513353939974890801758629959780005750900194578003075261887344934894078145272449322698460150396030975044131979682770618142702390922214019220100458789873266534639212488442978312968770740334289189370544793675601156145081759387899887767420148668236478339231576717611707741499618820421785178794577950196154163273224485711983923872229990754440170578384635932038354097975667324575631443074528158237630487890370567121353434476015202528893325254300186251521682420970647181687853648590862822011588741507510885843075447427646493562226739143530418785494537832123519356220382521356074697447323287204441309121741291133350118705338449349491960803316963041710549053009476225004951558823516114154796433591020932309021147728299180200449824187633046525521252242013259324173072403506032662962691881641750172817535522809403908144572897542874611142013070958727798835311818276315004260813746875331793841891349374594465269041584251407706449773290509554138608988275862273046743516553986475048460419507582521170322000909235330000565552610358468140689354401844951113538601291767338535859501992305452922677094193979123503211564959739051787532196922446280631112604115317258535795644573037748279724943345626365598224330828564784954758695109271625714191507430646380099748868912860566505492128050224187109789368810328987217580985046065107702526458341162347930554117159837220467068681762227353536880007195242217016764924100449173609170656326164306751549133839687853627655513348945166584259562176304995294571217022624253684619490308345024971403290615873523687989891086432318342113732208981733581307814357646201964693185660399155955210642139926108720836249980553627020511474840406034452571251351430788781226121899150463523615070606195501008924345116245249377592228811075842402137715240994031231920863534229756178935891472016918657579911087151245628751615234233362054589442213627230608269624761239909612751644004544689461328571775208178038497680743579092261387900799178062794810386682050859971691061310176591996026003138025094961454212555018996940927959488909257126661969252763995481008599950120929196973260974910014184316126290809163014198895435421576794984657601765060443040993965756269880362058382602121935941460159038559811957656697411422585801295994384961046565465819626347102092525189039114335807472825948144970486707270756469165481734444754837128987684550140566950056792479686102951761541403460931175418631998982506761165449715002508888621612904293500218388365106723715370162214865666976284110562657451798034360780164166289581914085120167110474963683620278796237264628993495865124655341782147140618554149047651942202018363998871619358242798573877009892790138411138835022494441066851576346633345656469708682641827616601172835551488290303223596135457334798550234213506404429223349225708836146087465634215800583882227603837775173942945883585380853630334236432503379861857740497441155375207811042440924931543557008976482109715859759761027172818347934484383639779983525834644129743484296429205202506141506363406084688137274842624596979156236112424466782653464492918698939776400393510418780777945848881955971325159523041836533412909056931867843027161348352868421661841156646165590555626094691430089984463108752854639687654869515492845897060208126461246380834232191660134716206506106682182139624309721862714629564241998881274181423759960861235814832236164613174355989783893629524907742420340331698895262346218066610066611473869052767895606198503968518927273494747584871142015439205630209703774060264024417175145692745587667187751982882968937665982647960626631075808665918467367525419753060006165300296227731323886548207122236007859024609691474681206367936129305593842631767125632970969998499116280507563547504923637616103660922821834921840285900796046821741165514790405591654296774437496748611936471048800798108442258150692033371618229958032578866761919718795696520235291904333789507613476137823653779876507042212144300505411745598684344039001167466909327576174653248561105165452486649015060238134915787087916608396093859817963281936582872971979180327909759318430130371351641982042191661410162046350777543301081677421361175155926887980260069279400991111283448784418565061738168968854625112624023196530735734223835573338911940778939448656382776919864192668954004482932508511216552661403170143646376812319319062693780162299309029769451327855502438780035782763617789410432462936250968152398513115443060250653118351502688464938751523051261753309672387262818379110963511560643740622265280580936869125153469843854948436180469036071369598796713791413590519834071990642424357652674130274087267859391171683570869007080040485427075192227176927101340414523067920216359571914081149031193381096034829383743732278562362048134516140168635706747236805480505368181334644311061080046313460193463942612487741126293461463524297729577050431792953465658679592171221153630984468316589743831126225869132988013467284740347908595414264001121062456603258369544729080929589600538751560961991051410209498739766105012074022468319491260176390032575812627277195643727032002519708450781897490525462215075566869034133228247680834647478532832375501606932786405461176813872645921283056986741400199300382612053425917967038866853178172725348839241919861616012565771787810767131413729090060448967874113776485109695053641605212751774686275878043580683730627000001262790792283550922879767735569092375035079115619914327947364868941733896804135581663222948319812233322573025938733750493526636640933954043084055378381133338401142922540857013910408256125914915669705299643747695919693130414567986175363360667020714745791690058872586346902042590800126860581848297156491722718605571774016508604069616721273196502007790578292823313232200875138524654325686886649822899227203362105730396122366763863262288531861280867225192509649571366835398094854330038919951348719702759957728914492634192893045341640596976612056563617988619456328423679394495903419638679870637878251543633329057542303444161422319036286039617526955236752849236250318185134015252767708889221769985904572103761768560996956075574631650417513739705809513220463770672119303292907313861185241213992035882779173399951209733910001787475988279654892071571474261587942322915685619844348999750461444821017775398002739623611799040025849940402939626953645326951018316745477655015890034059351992824830461795850721354225922340759626282733070986423625790344911057617842793620495245619059905915465622609887537025228675119352855210970168369604780513915584303910749705709812700558777300387242944958089303775214648214553672420582809425393361002629420451214586274526288905159111067382864921325639209242603550513921542752592162200411697260221902601906747360179822238790391903493373433135820350075261362324192856549017655710505632525260255703741730391141053883930485838520239072081259904996717184654970256653664598443701594448542141907601080987698202118866965596644093943798416461329585958768844914164124116229676484030625937794941274858027740686048505882993275908444945704098105969909091483506710116565395573903554817820768517700142424447718283028048257487971726432471014074283234852062876421490339956684086020563836575936264122312220445750064615632966139250339995278358054380931258888239974653207718169992072324438679348459296838313664481359337551609999145483084320884710733030897418811606914247641940018712638209928487616413375701305242989401711122950468403614624971806595299377066449322805917607725939059191710037174735195529285039876476712241036924916230880408226192933154085940718432706693131679729348796734327577821816372448688701329238562196988666599261200084019807838437478395551096523203782309284741740270592059067592688314420631908250466463600909973938243178567196499959967674721794048214720291070927930863715886100659731588299176608224761499648698037628164894953604285740597453037793460886210021418172104879960733638314007659336992486620214577927554724579526210202177359113469834763906026847207554253059973478888258124051167502992510050291175441610974636082779888599821373008699247079426195558703925635239443931116389191397305992823687685247217284871211974958160146035910158199140065447223982110759559063192149968343271137223224447893626267059665279934937614661546441831857958141905299204988125336243704958409708045123538752849470102626370665176269233687225056383791071969353809809014413029009968937176979693130015589806693008084750781501566480175263022045574204091497960893209676039694256812419112709737770818172500050231490025153658222420069007698954613427533665258521478901749602477521990078767965729966343629848474848057547553993146267674461189027010249200347328818167019452190872478164142786630921947959527761407443215474268510874108032993156056669533216021220807379518725217574183005226495474470238186606727867779494513101897750471992475278488902827629618220482461092954597819700569671286963019505432910680523520730027459364440386729132013251361186600446219008118366793056992041016121555717115732486526130201838690133223762709028979640674683767804068356596216121230808722032854046743283513578470212948844321236716762069159870346758527162671476602968299140791340175251991193435621281416190859477810205851338394584674493576821056505587496348075595663103432641806978725835030220440085554601028685085721404435240261834274423435722843760063116203546523986164464765595918519281205666607676354349085028633308989217345714488018266411113367772607891026438575186270739119030024754054632340395978085780286246052106757019289949805344319599728110596243053835030551122438272631003210336404519516149775342835316796068014305885249373248177267178791530740822484325562797988897515882415389864719426493695857066772408762067009759034026519398835286185326355262484071519080981958501065487681909449656862592395572735768601814592730517729964791875823983719270758650717019274756288761928288343213753977002030374189124130691375318627302611185717633328543118160560476238014528555015245457578150553029020181490046659500806367093042761233860160472442968024167456611473872320299389358639314963242892237817704905654629153473606602176659265670242107893297435067849292018074064587456635384758834939205692140108649907629665754937619569996185695017795946977743143349843852772021695221145453824528447905669898251198112881850111839958804444110778067163617794908402713421037922804961777527174623905235515962886144511246216255162071121700729205487282989360023798764631339812455075217700117096021636198714940479399628442597765626132113310201626567801732162726221021386441897277778985738241316898495231090397004828429320968356406512659263434216609143604676264734460644136062844074420681572486850202592123735421414363165138223446331817454609682757883612340765590156808901319729903834208527789751136175260642278049868906709012761474997346967768564163572224738426114660010594253907376757713107571245738907678604518619784591971464343043367404410576017746621690885517515540578618499473112706235394494265367444416433248790297820527311533407457952417058051138472527389934810795500161054115657057030830303776935783880346401362151184666310649693109793587019788670578777264234983627416959549854055568165993819984309016364140992850791801231589900906875794342206604745055304049273428631012750491063112539755806423573948897650159206208659006360412800940536293682413335610403547123494769487957748911278458362495256611051555944996875239865565230846829647284299584678409591694604818778723177008405778314419232544146004318063056398483955031292215395417037097691909958319111149251783732081766910639548081591195992100391084937780374285772693989380284526716544115915474713163509885708339881907840764754195142948883024744167552499528075394632792366223497927468743999855575163434197283032214591616470846155566342039809256768557722739736597647727481018373943690030675846268309076955810872364219940264432644744195525762087449016407885724879715323555831214180308972052551413000502370247302590767563356152654458199546959313450379624877546019741265239558439900727977760717882912290843265420074613422847427381745351648086691800803183363180435673765274148595174829329952950851457894506156126936833599728763063194957846055891273490341327154904405715447840873917372997233474939410874776776329269026800885476995613034071893920245192526743353072560659314245105816829934052260739922178473724601483707127242837058173685829594186935196938846107987171898254097732368387453431393845613151591447975541787853111680901254060276578856558703996845812076413671721218793717478302782565060488641895245818949948516316817414387103528693972191817205146198647575564440633895720006085274213171686140883783832837873303506998745162943197293154923298690382802454431510447415843570734568627279340263477706822636069392050688107001271919659295668921997357346486403164253022117928200239832283967097480193903635877346341588636561436003158574449676131950571387782718434009653440317684547313612908540307126708812826071580065509349059350376225987952160813015099667414404437366607862414613353813246587272864922960793005757239219411077834017608552010310652596738755343307957333861368655178742197736116690221998076295305988447649130276902226714519228793095458332684390150361242106864009163363473684903615202447851606820965351206719721542505310123027941239368262119713063973877451026678582284953144662297118419092047244287694171609289897224158068050241590303458207924380722822197482601526806303344061092768285476957025771300396419856322435310406224360828732137695211666528275465754640121910548140920198745908460940829159586439612066040364380588094689864214942383825326425559203465346690356010316046995566486746857247022041120096174637641979404329186887357596097531146288750448007487320753544079921261546420797068280316235530239439001317968717859741259532324370500692304651629830466180372831746157124075007799432476853861920058029386809991996293200062192622728753166274790700487923091578752321000177846478523284731696823343198235157410019469741794182021300063301340289437372272589349670647969302736768058837069117750123140257146567376586175876286190907835145102184483728656278080451225816228559078273598397650530676829804123881673541982336093063222884388009291750727533732058958206145050633869040857063727250414145743100420710675548934212693817371363813027040506153135564325757587577321908904119036095993605211536656076711497263006893739632774895311723585274715951615991008472864791291252992378747435741720610574652888232299712873999358271547555042626012615459513182797426293791700358870966158174305086757312595441838576582079036604749747198424178507927835353762228829214239843153903912135978930460100989286617030383894575929898935874481650840645890360496163528093992956684824892121420036180064123294633124354450035837350400128857241917362136472749583878497663773685450032282662688162520191532775450798783186098153300581691016758792922899725174164035298982911880447944149974589066154074525543308934032276878917975121293966279468971555286207584446618116322246179123273152030526314988834461694079135408429581645559928348185421558492353875197889032057443052028999941443560291576889379468875214526081536624115225793844529828233811078277754140432081007188603717161191953317113902437521184422865491632822083592159956077807422810028656578874252641015334991678592571908854346795978485696209263140785456987921655663436541894045036482122347334331931065723286261186675241752667372529987440987765491255434801484274294347091515980993874261226912199192301876173255924865589298614878485349375394819401070309546618109147786927076140553494511416589257702074328548452489744563764522951206583112400620745884572553807310111965886776014918504769069705086066227761134504480365433281065951794116242652401025199990513698267941792080994689281272549927022877197435487555586448447515926399750606786148811506858824261285116303169603223379146075361033774578100748797840282841648886992165544152441673944082122028181348396669786184331834511447060770636286844305262587408174211166495867535694312311399076889841895162929605576758823855354444826837779329149052848402276576867870608043065608862590963708210883527179178268769619907529414234056511538462619800483385431444428771267903568769683949673226675832151334588787964573739377708097624946026052470151458864146288902868607743540673565382898241997002633969290732457098109513387650998771636543141651349370971817219695799230678399229526974462890046692485032333665386166404063048456561594415113990634010209209125974277133467692234469240039596944476693100702310871489585576084300630068039099031305857702005337397425529220200938481476808364190184068592518166666018264064601904516267399311558771118794287347599827186198270780288138468400531982949096274926642714431084616020405172546316761909471808927520928086407519114960242300275963521533565710885441981503070241840906689100894984028258298299870491107341571428300351419312086940041599751609912817111520728514057738062060098090948272186040858614986969829297649085861090935356418912917207531940732043615932539302363822774859780552593691393910449878677564495041372027300096005738516857104988849375408492227056841822519583100894435214261111248999022313298985527309071639600712347387286079643200593376452020141786581894570222901693712862506360479832827724153064827010773000232999105415960479997269168668945490244682201972210372143946816322802151341611751361077972120013880096039262125071443360894135973849195748248674010830939364683680986749017691798756699629324924935371128847751236309314797607222557871485035827983640120381882270706851351827876048969634670031204121197353041530444817335940407821766651918269509884633743371329322429909662697481684958694763496016701868945321705801690687253614233570863220180435789860006424639152460890227736785990705670418856929768471643178138572814654737384492555898771155184019732318575282974839120300758584207161554309190454385009768135981093605249864929411661753316788520436690249659205598824114295311910157761631833099854246000590051646721870815992515661923922401246697385461781965253232060896525782212367266684100276046296746195884640162950182438457129183691063730142749135719728880012657101440129164123649135265269225161866727212721541292194986673977089133370359020349771598788576736301750179157247201817758324732233688743237805172550220882865274340523620070157127526196330827568776333289632421981889050699071392749986111052163047915170029132065827259563219877304833907758303224055108479847358475352910072733169781470110624035842894275063203595220768214991753548126526204872385289876803209139818796448937995103856071052426320547443255655607513947720813791105408933569936479181623810485212490171841864323124112423273461589257203104446645611043878299397973493365272429230179766262441261934700742751819302331199210786367737425128878486312208048528925395003259673980591133533523801066935618524523309200698097056940100649293624312779099197101170698890247202939796276766601653863091913225500874874843546420709641111978961818363048493836216895681567498152602143949921743582892621788213335307232423690409074536794497902964323174837888622556472917008609089106857971831804244862827693978233031594495409163407306950433115916859208590373862265210494059608498592997316124723917713267331342553000798811853929336525375321556179060799737443947727137652893822641213350671105474563846955253709546087541794986254259253685012235065343761262235230589812665906976834182389892878930156840019883605042447256633972427963701974881253316787846697130967345313988232409674920013449614071239493193849412013827312473991729639323395476575579903135637953812592263427196757426651703491531772125891456321628588582151296715706121182037829650827307636598282158730931114332671283451819166223668770569090119193970104826057580483232232675356453065356525506286504722176828398206169307465453028587397453078870059525533205611710418358889805567173669370999956543849599185023540371425548296422554121032878567551846207039854270751033032442743406146305442884378471529247885014682246365815509304493120223058103091478167289947402949551291588817854133290538894095908316464442238914226068303001184474118810470506354156458550480825264813592505337514640673008310767158964648417809180016504684929691741714331699810069209409408055768467608666788066119121292925735461019433077022117836998881900848375025891574501440142743297698759973880114500688525579052153869295899529332125764916532073348165768763582878746183181722748194323625377517307561509872318450070717625738526899404645007243867689010923762069171543841750207616729003126574531481636612666241620960159855510368017124156866923484227970784561727382881423229978263327457066452073589701395332886039621983147799811930127155331852345936418054148683662789306744005061215043832124770614662939457739880592559714566758985822132468212008879602024896234336393048030950859096904707165930761178126757384705918649654598510813884035930406663292438987952014963331337143389997601350669343975724484725434474490504018625474684300442649219653371635872536615963945513480291368013581047433072750298960479913830298284165648976515398267323611991374223733128849013875356905950829071652529054643344894795161169145246921345941259013565839481107381482628158110541885108347336962391850543683671282213043070588445626989572155762893110343786156778637664574521728463844634573063657578054226983366026952640372170257986608252588187498711949520544252323324201107804355222584150645067934095949337014261256275253153335518022110285934978048514043425545075843483837837439438022592722088671738920455783834077801113763021028324282006195753232477354581250248988714676925978263931269486892719324880888255061297298618611531525406791021496140652150174618016980442746790987563398471212805660051798260883428982204479668497110111009591567222895699728603706275273831219836169007992454447561148679448107362014464670927059837394975899344980199742327370911931902889751246819728196415140567669584172600705892618370311230258004003983829280812014413909482041244407945325390122967728357114180004427122916805295442210016970411870919820934905081375761893312559562567424268865413626792368045747643107778999753190980374458750651583462542582381314157605922138056255906228939432759875997538430293270032394798055321609630080550192757719353909235358219857771973820379618367251545108123347101164787621378159199284192083806316434653784087473266517096191534274138721632731352641723300284731689571654624202663349709423615267132824538514773323268630328126453773923673579408941337633390409003737760683077055912864045803414405532757085408221116221961206343701792502669179379454062834623881547218434414856394477565091592807983092210758647696531893127063819388615140795242512086600107981503212721708619828065679226238705306527713430822522001095483869805603134952273885349702175405231586672439973629405276261096888895032923190637580762781529116174792257786066923961155799064859273646879713525372950933443313589040835179933585347027605643854832820326201875559012817580233633773891602300650923621314529259507520491041855416131980585015878490260980670487309661922016029369886244714186884086206547635355048992543746971101078872031904449440174253336617780898255903539369150644330020985812622435986119418257476949211646914244291604119991012210619786107212088023618639562634192798574461342401747237603813591821154568904248790918441763595968799261050524125728720334847738817124655029927601458245134257549944549556725389098740160498305307670571777827913821133029985509620926224543800009172330129286334445697553524352552438646350481682235151194576459159740131293493832433852957282464851432184454605631529830192236558330445549496878302836032692034000175579571294726928100464887693230593166227341844013973689038737288492675151158216133081022760989018474960998000963077661879879959746911007664256449457288456951797624488103630910887198583393816595806330413744658559581721087801164044184849698337329135998301693479476421300712972976057609537685956295316266451173390255244278288140742684249069214392636372937052955622058972196350865389074958044704067461167568759183644130912863275015514907312536342547699429178381761516439024726074014790139042467310850983389785118253985512918375601488613895699046624665231242976349529002270660012609042605503320343439484313240619295268058548800304614760359037561131504973423553527900735622189135806154139267638218861594002730502590555328551476543285572132524206148836756326419920909818784787307786008229749218520427332602078144370418549062638079598892843666934343760205056822858097221481209440831811212659999829811382076157296683149604584411753722177288551168978753063277821909630674839978886325156956642318187819833830983597652352732760665787890514528763366723552532610644631581395970499208269033742097554703098794085889772834719979017544216762671803960435997253529715630341633744236317867702328302183807715450313614162069883950617542918782672736540103459096262758307559272128117182899733827027182675209193144079970981910173261096452008212004190394733721745047485639977860354452860628258921994535606794153594228612795961849344525315864991701500144641032148908503263392429626772405884661910500363323657056838884223359295455422839964280837874274211020259881600537422888928813281163331167696007896692671819285958595821226166966270939010269068076526384231696460375355177104640822472220869274212470932075835212038726646892181462400752406104970641707693764983590941351159921335913478569730673167136333504876838852817529529633911260103627844854656196412671562477467092580814219621983589270615527989540259686294975013168281323679177884565076591393523003635703142662349161447780409215542286136249415240790841363645512456829001027633731042666677284568840310464102501219705157018506084679912780831698698938482148899683965920112574518997792939438313637013715850463207107488407376800601749275912194908075990809298745065820349755963327375163973882339253758464764791111022261456284932791419797805353826355837581304536029940487202408157615789135644796482923107286031859682972120292733189160184540998395190396790335025945527750276031454467787930034743836272287536199181415582481650001178199149413450510405780257321976277078100097448780103501096521138912694904297055039631356804453631508844153228751353978637223537249613523522217606097737699051572669619819594437700322093903541279505310143306787949199198646005155665138343706781691772275861473446921457813329853511887197770121285167926067579315227970639414370990039186434911970533870338592198716460076632074878335299089865771475279280421631406459184656536568673952265036723654148139221336582043228828574505285535988029191945757594896386617960772169223319809577617248214940935978762474650365825382049404693352572793765303769232863255980246068952930512491880186249953943336231485945634181207685892130088887068678984912125928441797783024386714872896525498668702737410529455718661917091195499881772651587069247819193199158075994081705984348988788137128466628254761212829449683514695100690867110230978644554700256437380456605468873724267124525349546328337793480160170520055049596423799433654516024040804424901595810186937078824557675085221370242451215553757499660746166496250020525844826634618819476633247747047791323183701545532011520102547761243284458796278902164419085523017038749125207499368081376772652620595557709813416262401723538951163573617537976675825622872865473149922060041529555479821208257054565124655496420570132058972039352538993406203443217388274649275568792616392257065547511988440870905340103576926878583091413122697381879685275468009142317292064401827408590746749796635608416273552402851022295055215184023172426020889199731878346836495578401456438661167958048060860809503587010340614451972591740373507375432983362689019851724357402759441697071326186621033770142248934240065166425898299394675948395793014854286492914336701616150538657820552620249886923962642532362492273143975302989880361202116932658018811399978125462452031867246846031703460637985128080778981470435773049568368054214714681321455193823056049040281526557190970774174096341362119689335524639083121813210406514518736096969256719157895326219051955679466301150979396859800750264594893711085900034518707919239911498781442406144917768951448092490423935300554579008369743845962527410751250931265762262930940703074943595224695650916489303603798611676242638382903836691351947704861627448246418603996172526611770674778653773220471027420222809887709100089608021586022708615697692706541201204377178104361351488549123450056564471551145944767463539786303137149120687283986405938357582046764232825556161616426793875853774954184901100105875641030410035759074751123300213268972855838730785215166705282335441207912451534807429386316399064961565931691956022768721974067509126997760821469884399403445018990843397094939091956159764531558888342145100382897114877878738254113017939941015311866184580909870941070163587846641949324509153111688843041205704101759568581930578834690416322909424700429296006149229621523772128275452110081998457291696925652614464163212284036060735005247102239468566083803592762601543067778982291985234805888545509153084856109265605158888490831308929814711277294270045887338738097119091269595724262265639318095541824814780657781602895037267632454831482541860568813159811870152294917995800092921674774795896686574147290526805267662503052583152264409820700978591938880442703620161421096057461132487680725264882602055002896333110548603005616767178189049742533860912449967521528172495413511438223579753373093001692084885353950337689679122907650812171568377760120016502292002236449550445539058043858969951594707329234785041857637595559814477829063098955075962726902737683474138866310667045280815252619593199625257204696040031630059853231050611057543000016233318595875085369558937849897609856099395750350086022303721634735581434498073329644011797230973832372088060167121425601663045987785693423674056326285902251428629469958877583897692970707155824549104762826692836491490526071951804988042307431495792560824727419616307221373041087622460988234966010709824764696912519322367795390860201578388394454884003228189378474898589781308100244164684443926058488405413014699325993606367238717337802176243148855004205380243855817606518333163496029455174574528475938973543115279690177474106575240571198402488742328259117645297874313504345115486092302254586243886149370304814272654989995628173698562941146243519337264021641611376344728267579944980044554068006117355378181635506596652747620505997718199364201368706391245616779850610709807718486733048948137315159210956291786795875007654206157298159341346720754877306487983385002786840693059068172376966936747562805363279261029073568025834489379274398370710466708885589360274663798382567535633521135826661540907166126796008686372122616240014382663877194350291124917181316944266118013010658309743776397591666948820247235882749273173179751706826361601400198483162411141195466350866187516057239499349032571878257310542127969191117712052129080009024873061219473157682617195603038191327642356998398174619969831219267738134876437442580873779849066834696958071288653139436827979468354803499003816311698078302009441941922560359916871473780001635376977975775917390162374466974699156335041671414763887978507220291837363858446382487571328073709778658181665273759001207707603534458670268078110574957504991390176371585134752444820485342007510680879864515888815494861234808356997709793818288735405946218957943965424937143205791233714583114325873192108058861702394773797278303334631613093028094337651598506897657576493313379431845849531122991858923351507914315350689664307710697830039815160038902976351393345293842849522698711483978955148963367052544185352102280754731975117734978846577752451905075808149718216089398192976267939780794340852148149119753133211028467626308666957382756819385089318814776342065730380028674002432053346874949442098233471287233414915962491790922743187449827343669213842739984373369674861852833952715770256732160471333070191809208875883388690467893995139412942752305109674210463097810970961022849020781045850371919900293130969513594102941106994588897345085685173356632471320765586824334868348643305183675191822954000534590952696312736599957613835869970597977661617313686687825534785971394029480199636833790226995630468383615934304175467825744984790874663629419239095383603122561339179775486274264820563436263494307997896287536397459596888220508501896094263814030585893217894233129624186005726611931988169140527820014754799448973259882665945900008111382949577010332066536459944240900837150797754002282684284654685199145799152033990012515850269707877359505815933324726316011841916629629866213522268321088031553425265235510183129362183582478161322936878073533025283061784585214198731492924750836719461549645124983089454294586782710082997008299631723624434405324999167647223641596149820198314486984056928656989316960171737190359078104307314984845515972308414794148126270598457731057918802767936882189437850088847166471494018963214731540120800755269712472004508898322309347239089492129406161247835979364430315288708687896962506033600799394919896366049559585189716555880762340552006526387451540849815199549581575903209076635589032369435852244816908475043538502149456691866573839221640881878213165433709967448522610756120160070893547888598294935027341540261947137748752572370292940343849638305267041622376543529276385190235475057402069657938910080518773088749974967015038888887314483358837924958114489797578980542040740769491196615829468557540293303045695312460380677925829205360144939060608418820709179784109048094329599561917017877300634612936401257585346291188893889484970100162407905161357389952161861361372825723889179654955113263751084931191289252235150222619843296152037538025886783709986305842056487563831864421181571619762875513847631908202517345821943143366413090373112118810247084483781950106818068512656426433400802407591346227670304790900021828925034751650731305333946256568873973028150030197843211518376520821762744133704837110201601047103256596099179708570249691986976911360286540819513452771762123971121844565763998559251652643907308325856899807708859329552872400499980667067057039965188838975122811595001451488921575641540125898172887831048332783988677476864840067402967029151754901435947508578549318663803162599447937348536461035215216280474090072253993408447156237487152689251302827147998665282426596448434552826773660976969601483807225843924367160034512695345447826078287687573637859531625662803289089614082921847542388565485327384719683082128475506316403116243665063203779416405086282890219197784319978730236035345493691739633694340757361846597512144341610357947753011333875566879743475175265546362106273712348652904781354098649471441427463378688153122705478611094693219602652339182951792439424247577865868110027526429768910139992412674114851432597158814286949384465690589129362154202719176988675438786232009606717386591387008795454056846245497659874539531035702680772594243918290348297425617113639705756071269059670340476958994577975633130807330285611344625187923153808443756956985344127397933734985282541258165107711479455767158584651877397738627365416068562476199369620374104315718126446415626334494797421328648492105683493313584453600988453158068118020453143689335611024239295692858710911590077479862496369099543583557205236235953647397748693030470259991389116878725372848876185253837951935071751716697105747614967372200162120514242139073494469340897727773799754088948489617351578707426898449202971159596680049452480244247216476589887784454094240982333167442479508997237039418567483314313962960945522214267416886088627042008863465632042514279728992314789728909240471293821930564745519696466166716930136556102999649270276423320127709237586851339678165698803584269567789148351268113232977208144333506221893102141281988512185674879707823300091450612324132154932854079536584031121177715658514875883949423133034449541830039647359484399076377632535213918998135048194122249806914894884882954267779263302371403766387384443546052591592377083354709987729867637394523456241201249935610309047574429737053726377450619252229908813804987134534712005855620677641351872992104014390400387953349475471098871967963110879588792306344115657407643795118628842426919367366747213689638596797917303709650114054374448761735980923957072267026743665785161238825379785789847115154498435603045126338580203596192509408224238861471798647957185477089509819693276993478504635683370501513777293856255548933384389798512142371120572252848218925324641877309041189272976424726525922166081472436891457489596404963486844448257950868774414230643464766975874403228777470190827788417061520176679551524358152777661616473827632750189068686242616717959308739788715967048515366841299979319255146653563502080042983924756774367555414173266513230669505319194009296793515713383188179777107573081854679466343069938899191823815140698170922619807614697675759206456863109843908642336750155838730635598061250602355851126678073850502147899933620612031363392846015233441608765749122317886589503155151236342654850532070940434148375546359007600163633568785126284317037400275411567791773937185170911282217942041830715584903266938845908803503507707749830214327148808421108829803354556073707231268680907111428582070770470050640483093367631848399672751775611790844494790602124617113132460189234735153409186157484581765855861778334672273345600360412285533045870547844685323423340090485933347169999015990415742678203662304284486681739533133233482456389922134920833728774960060893076253367837953483082046208705776238056431095696235074083099110237153418707700874177609442790712095347255573783743453298514990220985744316173701553682430545104751696393041652362118382399761953058557049662288444806938239106065383061461310502196041316607709005609895572129914859382895601810494673322932876560554399186648333159922971107858997795851705499102030954391088251410776664317416824279019400739757728856709590827900813212433157982618033008787398288216349099585857759807305462001839349156690873600211416962031503401379858872999789117435662367563337533543965095377618227818175114895700047700201933661845994224848415874883431310553607775378074103767412702585020324878272161031030630835041824248858659355023764524822902860355778590125295027607050877441440006662445304599978441041652928057923768332800231995361910546781714071478493973863305499573794415104521662116102190260712889356188912018921774266936988376863752498795661761561978288524587634964763424314984721730932815251413013187656129296597707650178166611471951233255545102721538966038098507850890471943931011717306419161831470984382993993338047694902232129138494374930543011735238007539776443470282588036453335295226246881859456363012354126353351918732926655088280185152568628106776539134450448136509991791828417521278772006344948836073890603798944095485237990771461009879499748918735529286138991751646447989806803382172278582501404752225392973441859943620667059332807773589937597102313216390156949771649611511846349913622704283082130965724956528142142146518718676589937022576066407995035786705887825980549262391678788421093866966338443487673533967637419743487029072623085523150581159443572477117738473933555964317226324822155904262676130481292655855485004758063594677649651831797396635285225147014760924982180305854202228323196411076764506158934898656893385014642557919863722159953015665695628841176855929869338643507493572520398433540543139025323424108200641593661270174973750425459268286535979880723316655414816766686670692566559769402207374797310979950838695795047338626986244774492194218841628096718103535082270093023149198099197774762587322583947950137874299014612245035927922973474403285753831401965488417373402028427113483023262321580331982392911830811770899149097649869016258425837836608222146211855084613625260731285388645058973466512686357150671896313807114384112009722617377351005818532800920935200737091331367532622786684139280116759190757383581567978796269428762520569974212326989306252439191636428779867155750213365286653735196257191031428502251050783423842155559940240650799615324113603369882865388021801443642940564777693967455068292859507588242662606215567844326305673838526558807231946178441263911308266467786078659401862833826392381476690445991366300613320937963275039174102847730664127493387917284389527416311987384876382823874955255685512214740638928232500421685747770687233509807181121245766858853534463821325306656403362071863565554026423112730845398351436186779278378061446804896526160294794675150921247418146492100882978617766903811769647305561320187895096971174402870187573918411666224022345476477255372080013056383354347812020264341573762451179923756874086597849437831459738713937377103608661562790735763490433119592251831362923521058793169454588063019121126816707857551785477415943957892303663930253332999170301406866050271849390173257460110299541206157084605072917632932981901772076200153283483377705430776487026244077511185656264066084489654043918724042792186917411815346300800217643602476554331367388981520770666153946778270739206626305184055839317387406003315451651876872913738528106696041953078906705370004685812936515766729380910662663422664683850794011295102534627375666673390712449457335987320934111845162203551737642990961110020309951870818790627050292696325313857790821818231279715752798792591269734895904094557289581257192720898031055982655856360127958266797645457344334382648029053528882378150456241678529119901130797531541970692127908260375175946995307536658096507471756763037203806490682563850437434654413433705098336898599084533028945685302095207373301866866972864604225727578697065138551645382607713991234652795108979143446894238760176127395708295684911304126589099949122219925965863498293745709287072712183073588433018654548902638609265322881694441063636694784304885581043541133122913529967647248506738404314649768701160616268223812185496896594800926769719615783656128869731893501264124075109273240522557538905533233467755986838613548495404827782974571119375573094345576839790349884901547563214565522859230934517462210587830712798552999729312459597680474660662164871355966339303856694946336359544154434242490353077208591615491265883495378230352972645996930298811030919958390203828618567752501064217327205062357293142276795624501367450110097245950678326684126858227578365011447120494088036264778989520803031284018078639185878483904169752696269409102004892465263745700540828043350481136564322021407825752074498241319033716132228580472182318237329307436744714872541119218122958542798917481286283677068528518713321605519462063031767915193413750895154183404310668050815706464979398977391440831058707899628135621760927596811195666570666171887355869154263395414122167253697663366353700342748674874887909891239951758716920314984970075219423277689681096472778804872194581214883356052933002336279441696648705922955709341519901102349960804258236894029758589122140092009201852692942195785376661222241900967407858307920565437579283574588040919456159753775083785697294511160609853449946058906068524749666552717597867334343785133468587105765403993313986610662250618614605456684225422073403878280512909500434385064438276733713148604419425065289050517689250541588287656898091990841472966061076550189131822891195481705894203710632223722996525912214706897134646483500142036566736895164278325126439793409324236397060948707365026313340091199637533603661856542820623599279767071189372102941532657696138355944086334065891417373818890574206628756783750329583445023079447110269698130144936592256921902828934101522615907521083836217785172387791042936070706296569655865575942229243277968483146215797871452527526393047083644145772619394623616524569351949191523955112403089439326176666532142467763485019830775267667427394765841228494358688136391907282924652161647114765443244438126219695560953625456959737258361778816372814827825948117853551660683613627059769985947101477573973715053944286554012468622738824337345850445218860846846072134234299661954483550534874148823289796237517060910882529234871733168003438310569634608805471091970617734099801885652601457412365860378145181914642144774889435091042760647578598169442598321049634294648552879518678214276102278983361561945077747910263455220218262171354422975802241826605570888754710605692956807389659586087198940122025313401822657350598517389156703212961982765378977776129174779650486509635271695457200161371201713460288200956262260484459812595316459545467444975804449225538284465014314225110597198493684317111505339882932206524180262267498948981440055571777626073180039863760693884399650656330483152234107942669539336230674514970266737903140681081781666042019833206839764917739521519739482436563496385377718375605723063863802227339942673047054459350245460654846219204168684214502398146060987919044629314479783807580257425217123897215027003028923855055534611050304440071131430224630983935507155757918712765633018868658329642528508710380587572991241270784466458671849746189821268388805776948768817832111662484397323078392987912811181245580800440035649464889096281649612319966436562938681854255456690924925360671463021851161910114734124849464120395087649822090619586340752592471546020718743575123504215273881195145379404093380851172789755879530309826681064929473195435798404965569914174561101335976290139595916367569371455742749288156625648370823042450245132476393507020392227107068953839144849268062352323758407046879329528776452121356577974162148339892687430924366809359181760196242097978725946832896751130236404392379839411268153844443170445197572286566779149460794252463444130546758367516052062856254581785017097299349818887015378699304512102093401094553341308085160831940116051154685207902603564412123348265899944002692463327864841905586240326261976671475278007810171003438235191752251372569653501571640456026559567976314204376869661746531179157552818422912904412341096022369729987699358474051726239155950236230815184526317762169270242088943070455475097995102144113892405550622003840998777944531041258370485049015187914284345864873095766150799723611181957125375803064436235776928304233126221052027935852709919991619906583123558356621088652655721422124936738594364158595120911007978183681091320792734518868498412277447830413143626788846918694318830461680464673681364635228725910784655223184984940486134564611130589002665761290759585870166226243448256713592029558677747704746960577442590637444188638729356161190492906971439062228760033518197185270102263300656481883492866798334362953696390451744084742723327070127727856012846335289492125565703250993035722778350041656131569670536805902087586085864102817106951628696152024662358652052983912978917927487831212436835497390975197502461290089445388233291653886876181708927608392072661478347682588472881177181850125078953679194531517789595027398672201384218012583041897899266904061361730727146854904990855616061597379428771352513538131624802021009849649769466911040866924512962429476267767379899181041884981016673668846166018759017338940487154894723403572733450740965649848975833042206505799152115539887244380015356063176758733096283897279195755074162602824893922578340124734602645358403478867683754320908842023902399461195712522195715563778476929601667555690770820946017702018426225862949060892735173284791990525062714218898768658632492983762922332119057384510298993804647829131696417243538745986019268008457094879493445906788053028976022475240214038164209905748709549288801774073613303633189848539672699911052054046933139243959825031103644038392761749299883840718741472899913673194628021873916167451829963483278201738750392992262580090860911060608860922948217629484541786887230452854917811658872900900621591109537899064706639139396568730414048187614486140915041612330696193498556764060152268817715260127557490355880810495856402311242093468061360634527590394440631761058271097345364738902152046724078350063637254139259874124854196467057497670062447002268076291442212147188097217054901814764565574689040887008517958790973523560126538611633328681644637091410494114941779421749510138163766628300428774284941333126981038235416335553397836132382871106013388644366863605040810819243917826145265825947353066669640684312581980207110439337723967621975514459055895841081821367994349492778188837987177219905195222621710668061794463127168002244011385590159906910831617285230380602143525158009139550999600109842945237787960346875008510914586207194054821221091698405916420504934734861186956965289144102523586293626745073309464225261146636266805750740887418536204376092845767921670653160409502206004059724808526256107418295533205551360155216639396689816339540769902314646048152079009949740781123046540047276290776813302885157682082468613708796098811101267970241387348861633295082716005949288045028305367871839623942206964880014212302085719081967955347984474523952797194743829612008692724408836096480452518398558190299766409678427146829821081385209580710936363234955457959182719831073682461345601796018557337294275493093510227276481158456277867094122663446458946759159813529949396758743622642502427497609479297882579810439018639045002654167841195384926074537656382126101245146464095366561699853691362770761455420910553546441957299295760532735943016144642788124554512281882655254237948474565578874802798987550496619730982637316211843647428796296079578313942749220322540551099494484221344821712848351411460059135276949366664422955027391189106537720346682581239599380630134207782362710581504455748981637527590270885945727935727855450288526824880828888027888010257838113538616813121369945366773008897742144554693690183618637910786933341776617624771980119936493016520682880776500053647043520659474710114455953526076248158075491915956968217436282281193807053220008868817055623188055561758433982356936664323851818734833818352148322707976820274455660166462757387036451277827879866754939497919239800493095986714439664445186226684282477596907461499471567483907638813537608006530332861627395925752758201366288390409226070424600926791767678519877326271767250201821130495262455892177802011872117959399221516940560929101703941631643453000164815988708067288686102448408056313499121904836070239758997051475566409361596328475113853052044511503813592045350726584680723662145083327282173303120830433228777853813796280463020842487130808353320955974519158270796309130429185131548702751451143257774724985535511892064029108043250456844310311110015098166653003131062407976568061807197277285354517212912038420386393734707175860225455623960029455853905807324836388259945655590249496082291726629122293784141164821352045737670344079528435525275722979982696428076723621926456020334519645891192330495755490537878001961213181033683089503493843357764704738154215457007308543656057033651908738764326803356448498544382446853359984097998905133753900070015639547364443142300786718649810432240452833827894856538399215377312432615493855414376031422123647868339710317259131842384213054652107764950756740974106903266120087903008153284601105698215953561059193520345162817466250980063732366726534413354456076070580038301694155607468195745258649185106405057379993485664623763009699501610356908054843726996519634428310704760734586390164373811915788411922047380505854194824690960200378258839134859273389050573559281610276890866211538314211678638458513456618783259613602666373848518303324201472584037793548730372664799943341721269865686734815875086852386534549686628435849911336092283652279778132944617003613257405081982964535322942734200079213814934731351738181687938000937274500270140984734406360499968937223120342253540239603678994200208867182895814058079251115656000224883678302373372342116534432691627777454654991853667722830331105974916824428820204657290900814856711569002279952307911590086520659685359994170115485310837398600004985863866602445021949730052134915198378104353875999474869358040294325064117692736116724046649439625203232128136697445248225185563656520785097805778300415441341187069648982827728624434084767149300516780392552710649082473196432668463400989675124898211320017176739408189567742621831343828620890357682955603917308000846894605431276503821169274394834874639318792676629722791297951319716345477502675972707244235616507798651003266428179864740579649426768288238090286619676346734744917868824965255263401657136908034832652994380728111276306072884458421296080075701658926255804209851987753185888893659459713247736644266618854929509026092915411950691618777159071786494491610839675366111485847748221067910229693854728822093923874237047434135701304680578966222058928115420172865315052022740162595035689389931330164872093115548827159313944296555229302439664486566006897631642670033504991431870049042018565657919731878940341320163815710116541217778238666087535570550111388130822994124922253785366202439507349356998720387483651816670002988183220665831530327942370435509937184472769697530293439293367006553711513987299423220469097060473077877380398644124888761644030660676272454937058570378072697606259778301543649903132457759188781118038599181563693501909673416988704810975889809489951375077414821568208415789968207392769080799623017988323355946076335378763809133823811082539737231575299638580348684054160985849420807235839248040384945063594294569075366249919319910853698983416168484073026378786274929571561663291118020814895064695961020758895096833043040443729209084535387010401535555823627513591889735215529378896678341004521256963184558032260982760194756234728072095037058609230385269561557918973960023357053105213075826871639771363915124305294746761257694700590370573632160612697404191806701042914284997301150715771195907332077464158693705348227992001373466608679597773368312034775965400677824292756245020093270521908065192328409790771778728116576592843703917885311223915803364123496530889894879209058742551703258434220502161790235478454170132236465206416159530454407798277577532160796029115752402626839723244527834960076170354283405663029120612623300591459821159368350745837615239199423027327584669279842200169179002590652129163986830800257935155299488857653008112566522936808366754763632236835330738454900773054575200018693627004020139371939574388002423308232093340182383919208999641712621858697393983406564878038759133245336140550335800275300464026696514170300476147066208658350910231698650724471752786155661710138203238546301305321156727841249773365357921453010574625484889644589119007342341117548062782739777504649943061241630254603872854928296010598188413411378095634851032169732899280312541020849920903924150910216178326611796285201700507760002911900635705895371037167303281365214789587475095861257651142275694122708002145431106084746518480746986864083101494311304101366379378975906693399302275902534923754776520729578227819347120722776815727590095741234720539104597369974170528134354372018719845506399570602864784616643088621724453674603725408587216270514212611130122535792949851469958530929204552465094079319541270907230796244814388468763535474295229092739319952040410645465986231027537544237113812524197284295777860665546572242020153838289520721329258818518138615944506127842862109971172133545093082442454400414854341809840079584127118246484846711199846118850018126741409791979733855775302488940202588044402808401574188672778386915151128292864273138700127476050890651478442811167117184938321448727453383049506493085914888940966378102166364918864044701556778781130273116183463037244021512241309961760741603013519759057045429878956691274529171312682886514907652023864348931376931369349602403303456011045679286967385334432868375974168661875838548394389817496156571427835551259744362376500323298742547987021449563850939353737799264241407123732159715961462641051665534873671980930061797834951194517429130260134005645639702013059964417509931036590916288058778926802040949198094400330952522556613981273823734513975786277205773445932777453197765290096282578826937700091765342603158706531396506676522935360830436827560504988521754040826802045825559991593498926316685177878553967226773906789560034348369759493088505140038840343478760898167393077442702512926022457604351625995447369879032061870217896904996806573233337317476927146907784762406307608389362861599698027516793413953647103135184421944727022739641956256116404064221921940742800708172478396808719469147323520700847015328940861729742448883409569076262239710424806219140520260192039761778596323488069660391098119509552534167186926320799285308940092270295577960547249979540465384777833032496600619827853787085434330046643615891260036755788954625985354214337860608160003148072184514972593716059897133572093124594370967437394971461495410932177908570191625765350987794669015899261680530934354927317646902495966169239497724304273273574428849587109385904172036786122545582623685296986514488869744257809721226704707362977668926388324495856897974283544871425465406932715865594467689098893969908392444986082885960779785633831778675083156395712390290273094255681323581463889787896537347456765189126646983053661290896591419977689005840729024469238259997255155362250830834294200484105762517366461826063115547269530673652005844788365994443185715185923742123275309329411144271769090389686154988835639609759727947999554672337044892529048625966546481247253213634790607369498534789344437583714245254704764866388892031250225615286259820310173330098988163764146826180979357659436462845522694446190745942719311666998732813527801685655779876167546410684424870798074327618993408782490968764076264556677542376676274675458175292171012014231810403494089512060718426105433235478266275337174373178541999248602716546919949513602720544025228668459507701977033327304278518107566493017743400326726635530032255819036525089572980965519428730830786893666972983187392261523110682823166417774638358046644593861254025623718727614979132488149787520029743787491706561276246141696851996144029300116144982403235171445640993422469309592017725624980913758778820023210595389470276776317093655558871661827453263657284024254654171522553092318289037343816100316496819877393132646424633531521483021406425130237810074682877726904129128000023050693743410355291863566060879168607108173784486433822231827949940280763585954721639675456182292479988290963195239705986689102522083169645933233338531786333666415018380180227838038936437485512659073008730698670147324449937114662827474006180520435129164589987730932354688876948039574662586145152087054625162083059300561485090779058131736277099807436606133958657457338451270411639833671510336993726747212264855508113690800871186238922365556340226870559024411880069624426222174380105663049584336592042726365240946649344187764552782883873816609372827872564673889760523532431443851186735816690821680081074159289648415214618593625916163438011694645054487490239945771731979333002474163016574599953727023683460986011191662405127997403926474649742195741246639110180755705928654021801859739268466571742998170160115374188542683080532320677472622066704176734532508801872669793945457745194756770226344582726258340720258525051724908237128292164272262445829157769394188893859235251186932420693514892070280894840732871550099351120560047567792446562247183248148374743571819509525990057924166431266122661870485252903814150189340562472109458453689994349966591489659447116324439798577129799767340752687107225398018449643964852302542081670954437698404051940592585213444887204103299441324311401542349749302750638503991764253041355692519995324247965479986599634422627524666229715651953608182045860702561692000588973014000786390346533168242551683069860429961411050123673816909848241004825325699969797192640225973129869688036111207416696436733082949495065715908568362319416144825087264606399190098305406749908893011838147026152695029496235331672645024278151099388753918709528855643670215439140721374071640615774007769488823654345777248127710069752520645989750951547727603750227488496027404119817261860277242753628517010422027853066077352860620631975297652115940635840823980769822095281416936772890993498660121826611680618755632324166473381429460102773029806500753635451222240726290249686629052507346692352056765863181906009208308583482816106693051422748322989765036332657429546918739704709312992784509281827398919563823532975887211752556960434002515768652440672380750176617948264535268552530524583629324165236136237608314992942214630461099174426116036509155611170064665686152726830602644509799766342854825956556400481725372406433164321937744757939598895369004341715544618119815968120091100651473818000280812881017122389174984771936155425955471766825957452763383680604783155453298444305314397029741360656303930414261403151621087256495127619056794155744453857243675654392389541402379754137954727990035580055479449468389131581989332468040097841588129932406608666523249279870111862988990497025430674880534025410408641978979230431743095206424475282618491855343920220936995383151653683639496234365342120594616083165034034637203552311255997685058191273707253684818147520471912698154140458431840216432715597008869238304314094369261048746404097879231686026732427596997659354062581221143337534122749575729059225932766052656724984105817291075154390400756197957598049700854918158041754840553467134093339218229066112999862109833029013220622013886104640170493573382577976789001791822502548806135858206364103725794718712115983570446411966780620060130751113925620348140107200535166451039379852439429198271958360493046414114539999815436739444523008063927887464416594334342075953580875245905890701508303809453346790661564049699301817735293056537569815711054186679031951522597003387783415660049835930911041043891241089166811861945387700311228581770845785038733166087293120039762962520880008051338285254014762629976696369375662466180726179382826725234613421280059408292387438067718934457238582062265272323858287371003012820255384511373120764550580818637251629967573607544591582650716684061494254210225753574172773395402089243350951681887968219447273655810834456407695047563696570820936165650793513229321081122312643120300772702145548310042279099053746654389387151380126424877733401995163485835018368496472911326060745633714137872566688758241616900010039769634615967951817189168812833048131092931399838504015583380550234131935792266240632947615590306386038873999287647977691409512105253035955415737696609171119964788598689169545956942474822741506390381788858001309126575845477311526343608796909156999789766761458306868123928017729390912100756311160842855999658503309444026906158995812737665964629895405256146400666160126405198348469966998008570994854721514679338650728524899061302618625292913930756751242840707999788505892628877645111276472687947270007200343615916546233728729895478987013684339654574487440372634873550600620731341723382798241142162911942027069969907828644164505931532750090257820356285154366669855555623156644486662041808914668293965511188408910227243563460901967720169570386025574996725876641550752085957586672786062784429142557723733073664478399541844154194500140640943126045483207408630037168371816986913728224772405822991179484487004273044377691195211127998150163432055120197464890866581901614964911672095250232603787916289660669124011052969193425035113401702725278100546820406383839121828307337881492474519037152432593718587238010030011396238289539930946303261248158004783610344370452379342558356052525045897057239779189081569679994209021241347580814466480491802300225987553423916381575908819724360555362666952400869991062992665274652699259632328321390604845930905948999117735503903214456845354179278173474200790330071472418056077109086436162658254161822194363503508357086770086973585238447720122247074340376271720923483660983864735808468752695776532152209199462933016769867816469136021912086274154724557117697295237614660606628365975579969009938158045979574250918765700303964243233068763232310468534406697394745479179025721899250998647745792121871551950291570160475385090398743471562598121769781226273981248925381528082450887585876717960338764917758066246880131319197876979869725398204091261691094254399925998683021067269835035404074281681109306537604319088438693478354764485139405346705230085849425256510024903815690863157270477156783341749705298434175172993516997846725151907276114570501851939652264757586335220932006752425533803042309636379936103942630943692104963193037952884489393759825876608931658378123720736353555775829384057059525426810597640900005133250735961092173099236813103585851758841514752507078228518273992830008947158721541152225531450529385773811624683975474965351761231835544477132133710181330006200341487391004794437202859996458462995018706136585289937665489343552254146667872126083361673181625389618587971314849414406759912836610730327652609891754615790146993913025037722298621410517399457947735874809288662040084137484529652227152298525888261614922672369556657618405205904784292903722764337230687376130560991552274399748314316658694041544664286165252168569800396211260757618204784036989355495907295889111133097518194967273816513577101526355986153961142819000312576214780269193023255065762771231019370588898577029338734911501071913008286828808235714936934983236158199833868542951390680871439478696055485387720033838323527827722487812120126774064863186672696200085197370361262093208124403530471281667664573498045304952676141412976726382637618065011383650474264026471920774734452020935583239924260142481579515959239481854481681805811886845071399708635219963437134190924646872323289920452518576309646216570747865214050956720081784142621213668119766833287301758693510363946776867085168129472788087118484975843929170729972192714709744248658852990970767829595407874590233858986569210582198678500110853702531751535511887264695827858081790766817747653789815609142668976957376063872467277419537415221000961294646825090845363321636008402618055271698805685560972751067304793461541520721068757826551482838126139289211278321144709478075422878739503591528763568526344885463197697530765472596618390505042455848795571953331061542104423145692821592926303997334181261586172701992502747442556058773048514593905608413684133840404834782218792365244568329299450689571905065607119902913113219230335027046941748644710482531166180756138685262344493081687386814674448878167087222578720005406784877201544700918472957459371976420864312588905275576720503759645909026212712639746952748882749713815762788709834781853933038585029900566132970744029514252108039931465824438697977342299389334320809195471172921216953167453023572904318803009978722574039984857908481237981506565256993424407601583738253243043896853063717662913408201306922710905354163336731913474979912153373930324989962593066317171792645203572293568495703682766760410723569645831969345270557196521307708192282343900221786627592904410089498667976563663746320238890120781396122401110356494312652368828892444831461644286522702758277325269171338151795399918193107362806860166253364645186537467358664250026661541460524705804749294289418284279680455238342074167656623229426678597812256216183355174901373005229215813047097425025413814572937429305033100851995404721959221630834419905308452105164934163477773888174806707167639916382750344414922204544818898944016671258075390680015245280738726830018529314583482815050098472777500006227202227795929110154531449943923378363208352621473844115419232401671617519185123888963534814495681946525683176005175322814373447011509043140100767892153090396191109180566385740691358131224064236368678480334489576395328303066533245919484694447495772133747545589472191999571602308295738192018292464935558907449822406037856078199115815897112717828659159084186924364055800212188174165624808760352334152901395978524321225142802580172329183039238359543811586323104806807878463350795365542631942295514635175328670615329111137340186628475252901020337791335212590551819088098063540734756317528043758853133964249270592770409113181580983912092678433528914918698781051325729236571551912668996512569326464275836299754084075575118494443975057347926828355057396113552090750823371723904411737341500542129082727117643742040887933334745418049809191117920468142158128011056948461385765874978430753857020084449329551265785332399365001892034558470401832876560604943783491906170344705723940239194703491780487515258976797239933515442258469406444718793896652685206187398975857900226928734306782267280164540429806768682142471601542535308111376801765331362872147568996897466959239057311129216272278728675091989340192254238530012328034665847613449924947384197148772660166026160144800614425000805381166669578236178016249061283796878715555861108353503952203849267971277419402924203301860392479855783225659886288156491650607205185863693992848964664547762057331342508314809102554545956783928372540328562234220295534086888756159202100961503359533699310372467515032997694433130884922994048066008700100121257741398947492733619655434952248729904387417668076793914554288395539746867907251315518965097578937173124474863144538642686993984622610427394118590957000274382792589925519817599563908155078391061512623844735842633565870497567157853155613501546409775545466323376659394465755106130679852539306986095071081289583267532814756935518659818019421174600442622031583538694432097692453038162506896518049649122437741460643836446433964648242616067426842266651275616588731387286885230227684026635628904759897292577834686889686075977759360269180840143196184674586055398600851193591794498322847002448595431825250962323690726808604912794454235658031003390803367018597815242599742699664337870722829523963915900932910087143417895049443237403651043239515350300055436136187719490123428972112957959041586444810226990547434037812102773909390791107567289456769837584924985900240092179230300527795781530771600179103931654862775432314177501689073356402692380819790027897277703946497937712358058082334952092517261071704082834750165542585942540206082109673646230333811365946013508394644916750649351393575658829756720472183112174586175110052149768721911544349542432716084139429797295071006530619600538435180014946022763557620229530779555222662824931385325233750211876055136861680262242618457227195794640168648023162612908565145992690510150273812128178587804139292092108601918595233563559694085645084723070254286901088604427641876682538047875126011608964776722636148640260735488259998965267867537104781803239620529931216071240165371784477381295760127804565078495476859736953384627217501231413844192040196472816876345207523508712638832557298464274072268017457078744425342337775759606112265636337682265127901930584351732283586094598512612538109716150032391730685939559321980110025462397625492081016163941297596634216983825989363439360252379287705527181913858237993328734273956235976863851871405503026419519165727527872182717615949694021014107639485751999521178383409375926229544717799224647242766569064462310317280162957068253335386683182825585139906026532295975802238352034506629270019724950325604729233851167037872876189636860395818140072982081978036354191985917082529681695268818735725181162122563864838293536308927384881573084620659701617645170663272381999184283458179833899434196029114300076383170624847637016583974598625498849327660279169094886331360555468837693684939838061925338799956008742489488606919357404704764303504386411627123195848988772181480085609485075975045721007683414105452057981853849020803568929403001048538575666882092475324698018304149201579131679188774997813880369687827975747366701594153507592743428641581302938478163950090125637196989410325435633271884940412030235547690438497377900242465737675121950608177280175906467183940005237089456501374735273762873551474849049710300858994710697340707907706826503427777624604525698076030836491276297050023219817492317762672251476204466373609853813578795294134853104071448553898816096457050754048160405852507808435337502441471020050282098777575995531704980958159874843762885089770620285688818871819083171075501764363146586166268434445009829834440519410821809610707275978935462604906185829276463190411406824678491587889485902947123365237705497210980895231288534761142951021157310416426777700324326487009306259402851950512855547634621826282398982036034852455004137915716060302219371059748332841856514638662285536622293707792569497169254279095076938110501331729398969875501810728487853085790377277890420783080287460620983338742625390355285336383277451869676986739127790401551089976735208964559428685096249087051272544904693462241951164881085935726709161222638196867291349250334536849597738380216337975663635383597398270585666768316168109813848517653900791860391111328989406767464283994468266539850757888653876274620426117923577008542000015663396523742179432917760951839354726022371710743808421416933835292289941008002009990933511415081293828776446682358719289175451755408508939961349515992142563906220620269944216870521797433413733185748092462142853286240052245561004256317119644945864625840595870698217943704474524308757712736522563380082390812315305627231781249852165634806049715665457670969932004975828609489330353555850112028333920013215978582368768577680793889746174229311426163862657318966793507201808490596016050559850409224570560222120727168754434205578217085120411507472611021770248345793259798634202880842740050137888476780187244758343418452950468906599419875898614563075835440980991315728368024689939423519090131842991610169547046182144288135570074333366974857996709958640829867608822762612418511007215233783046215581074817903488835653067124076695457120539015508638870515391140576214609468875784667679524542961859314571357430508336577745391611584534927059109907933987129842195937212050186135042728772442149143107815848438642604960985200897123484679616210575501144805708478494428762523959605462095027514962041720872609982706843321183096723159515631301719805246581697676254882263274192507129055403286648983247170528867909635002915270357943135033195599883909323754566037178854721664202511502031029018954815666034964699652049617694945334143622964709665458841602528565544244008780440146830804038885126560176307528732084449039564646508036331265868668098982048060359584414487442460112154137897212790877203065972790810044112669317797375913716128589864909916562655826173368335862450409741368431895163786246337026120963751805982901569025360351519694031745169424535016306704733746058748328283606612350646478577818708412151874746120084235902308828245584124617950045461033684951809613488667205179029830417316256881249694939327558337860381476178135274276287584740615560829565403223699202877850646146783436358146509498917651209451455385934791770404208062548324410854163117294627821373845165245611295229577001781461542322173707913527926281886459270480684062801052833931342732589885675709003785708932521412899645511974996403654865360233149961454167674288115570852071417527629939588049473336754744822222694697170602407695915758354202553451890303676139527047733318253573730404508974120343476373058620788353921386259059639976049902944479110727276921715774429059572837830124351700214149883207737867386107490871033498127606486831174369709043782466441621427934992205121732447739958685431631690029799808699708635154848964458990974760619003467744736983460774136764454708325332110932222234974677231969213635601746388865302936934599629031226523116396746952116079294972451111144921359645248646237495142742989448066888665934189096458635510420474851738652239580959730412601160238820517079583102289034173783279816574644873712961605478454152714343694756292035930456669912498654564036387216152582379054524885987093966415231480515661864783299184752063747972924706967584883982243489245213333708518945098117364717715563782608217006730205111445478425216695832492513309564424724286819133526665060806784371715954223393804917410660513847721530424389174049333795724408748663055778398586208576320394062285144160715026465614872512014014298911590394171985233074731954302072753694601318342969339458152608066229492098918291847252407952284617538943147216415142021516334176784996160084591503795337392426924383956885920198005421542961548107929216344912278855761380919289983604282475883204996467714382253124266092292681427372766369121529627688226215788371686868280836248173675769293709171280097998705225404549118772224533052440061750815070477170414946107084147471809927909843252952394058547105245147933324317131776332772123131492606030069939667631530778766111877372990559469522364438219111104981482291296345023571970661298907497936346161326212522547528791505486440602786718524256771687295902645508396696387631360344591284644574301782578394787860268430463685291961557806446653331340636477687374515964683261173014216456580176675637638074891077942445907557570948165667473764210815523468229887846078018888120562523860562975082938732763010153874979592300256772032666737705282165976281276578559448744803753141040746881905495395344016508141255186603672344514021004500156920541562823236331200178420056247965891590775295331159022488244775160008898286598237717701363294931697902033549684495068496522513910982155560067977569195710928102402715121360245840734326369034260010333597355548025327233977597221744101960723982922983597162003757367001186827767532758539373721726847955507195532835676189300420243298244068321389081702657491335707744450289067450567099654547703927892712238229373900341819185264638892659095557164700132991758321192765013676106210970818216532648567507834781834187761677326108512575595155274426278196384237798584298486175388816751688840711369313510121632522988925929685327565772389981263525532590470310186394556082116389204884710481001545330788106103387383311843946828873120429110196529957420476715365010823244247556774540847384361839423958418711911209217310897034649356334344468145022830797392459548332688082720903048284032239667573328493095434324055404158077024820542554158060864800538429460677949480785568968914846239856368205634693949381073422250744940753120484105721431805788771464101196309380830200394131949519715628962063456347659776254825367199213440095762535307671503290676378130713654543131240796793024872406860410822506907299470892843325791095607442639224917048522790541499352813928116000199328170171496749196242917162721103082237551945260897287439348941893323805525487789596850262175710945879844928165740240045589771902504472866631366372303467398623895051145949677954209824806292880464512715651894293226896104000098091822100027879412636751453684649296991354449797289194069906746221082982510022317173764262808143087910567918475532975743717896558700688618132963999572313404808086720059304436905899516282087305794239138508134807348552979324477675363671871798832581560670668481463151984565350796765655885783757683246745902796546974486384000261932630392374779631563722614173006257565047477841396676516615291442921404562551126997737450460662853823028420530672081589658101984908600108916416157138054158237935795081093353364152428666103956290975924307054887094082934280899807676785960408681166769115371738522448512262906590789207844181557887036081803654217405015524889591373971779424527210563712203329064503261541675874865399615200582558315049083259068040835336631081254985548348664238944428309385909939138211544854503523336828138873978578246238482848295954262480600657743180288083792315724817734500221753326009928611312733992895270317233540215235577102233373621107259333428735968107909110687920331252332452181680629292475059490677458362444904819485461254746622911485714657731356860258583109777764582292429244670512638373019262035282257457044847870983097796431558190942980901529906296714636176500656305266727660283060596732074799640363245810835545696357952798110981334771099137884785935954416663940958089409973256201410993733710518632431172456289002368060367194811556923898588688994061165853443425050357150711098966334417040186579245111168477929157969841627780169677315904668930889670214913788389318600904486189992583541283991586195453045579319530293858545168353196818059876235521175895715149609971028587086599079433052556801464994431707017659773333040477713330341002657776899655903202658665759500542095015133244807316114524829620714396694198078611120262273610757868290995395392495620762834388484727519637135974238715257519197361532754252190779847386634852215996740005505683836480096692071555744448916711807013963475075076862538882446191211449952360553952850617685685077756432620066532347610256953844677424077980768364463848702578975752373220669549671655920481223931533691041459454064025178327476221395537270580804218530778030268481764395159848540426249694460878167011775226293576327077212132550449689279885632376749908785462388891956411418691843951171090110937283655856812217547650445687324382612298480289828444841280634614702404817654713758878675676230814375591353006744246038260675992601658376348963973614413893720082790142763568593927398371346838630427644148757798620222555267521902656255404509969871729200081998833319154225894952052860105241927930776616822264196268761694058377373369092030826539740733629921793719642543040925050869145956339462124604851320109416228913996009407391237213821796482916991434267719085986707575986170541629208181152407727284362442969250353496298115384104904157747895128306018567445753355792502068656524095113379871983450666022788613137602617961081612764001638565809192566601550059648654534207883280258622714671555111098468769644607232743892903975400780655158324998432253229367343241772074466044179233230115537845208040429073367827049096340765981179740389036816055882219767453326581961542511556338111699432097258494013189496701580748326118434353979307102703616487395100085298760506106372978691714169161821850572732413504888723219946730819276014160445999915208142900047920017811763782506528934193464877616256607337795154561170243529262138101350737884037814262305847061426720043406052295673712811907401599588564372089011226519896859685479042284828173986927936406797578730683017021440271456491669538688261520006458607492681943070636883309812691379707967156799713163067999192000983175867746362914094360809938321069727065682388010404394588084583414201532156419162787307681430985123944927159785468951158180104428417378866443818467924463480243201710566526029185653352887912436860754430807298794161348385391740480489181374723719744370111727378796763218190545927246332061058005269341399071441963332619770666330492143874878151216580394022979770114667410693087728159942253805308541279800734834335068035481339943715416748252763354525805477019349472437158532278221159296251994053824575360129909314641049059368707651806986871165114923550321185176999424776616100963345905310250713798625083830444925856906702816169105587074088387023389177850189092475436167013288093784706673872192946371499587139461720036295707149304732538311802102882032474627483091132690470311815526651766758702815138093954684620498636976342232628094028438802604839483168858145478533877702749193262308519650182274978843958086815960219571197751362057786528574099275893708815212292052879880198701449441504369188078914662336465815372362886985079890703900232796213224134248721118246012091713925478748968984140159862161733796801906378126069141941251707632713169613878524421846538620467176716275263713122273758731191477241164061044372484517464524110572200112046679507101088060545103071636685456841023882384814902500983400342331438505596558225035703303882855831494391365274127288696404188045158841633335814357857697967951117431737662496000771639279068708210658806920273569113247630231191602385118490956232399476110002193136321050424497740203875561769839774135943705440632847975125105387871546821646538378685718869106117890215728599798471230882873216992788572514341715164061263604815068783418003325371779663356382386632870517382684521835618862750549794917489468644542955213019237739732790279082595471608417352936112025223065657951223847060931979138498386425151743540481831864504183242908922799466836283846145202530831181624210796213086127973825767546234810898543975417529072563748309834825818163279039997084683201966436770223476238877019631403521197780293687290140767683131841792502509621041605488896507419652095128395198742479064426508615127428850940702019029936528667662509946684989193013591824982632166337635340632293346310648840715075867532642307287410964414269960833471908779175188677956478030064737135184407565114553999893700314437912960705092273881580562705850339857762824120041258713988664646807835818537203189864210239018229308851301106457894873441211976665543880188780716861749216761440105037965934937825611175415325218293345782448410165168900442546369819202348409454794123137834811340909266632103022881448067348466417628806672588617251583755759698958901195231404089418387395443818637643319424579086300705463649821251050164612182243566784680685624668632934831959727440193954746755565604155856924241878802133997060636126870865453146465483828800601846267858704725390916640117852663132832587886410790046107844495274244750047729972272345626856734248529190360665346230462126999565947364349431297983946127552334892288315750078455148461559037261411409433465864467748305655483042310551913759360740636425485774889924809938649562357934469352416265737210997063331916563426301627014104953911927554906710182803618150536361749436369454564308891760588196573256808260349570516397802601595359657224514399860425740509213513170967579089903761787507137329119568817985995296304335145539490102851907950035167197543217839357247461769207468570589144366810579058797769889135052012169465118109902240579299868394433586844382609450980078649568275189670077649645514042376548078045929677741877055981035359806734053762004003974000482161238127384858045799364533242951659259524342126536091234970643571099399687108915260236058040564620055356448265610526746984854578585607366746363112082043745781314842987896011502891504590955542839948257197363987057463169000388221567288877622868067165120006749897177915270245649342679116909267141129145412281297298597080365857298069866094450599949701138535461999331153630149141343105445681914434445433911670661994334822293472994172784252728151516507529885448952066824174826968018421187606038689338456766919733175377660741210418049793977487149507303465645672232230630782547502526640287261035212525634421769141208557521358099798915355748334874432225666381947304785353628786017307435622798117346657229947067006922670149891042263441696330273789528131961156988683949162531139806079118095835639115759290200909006722233820199215016359545723426033412349051703402249849474148853979329296918420887381263475613491387068459198457711284809817616283651452721047005170128410071618427323072252481134536531296585037010921967348933461110740454368198815926057397175477253983108383754572270852016978213892470163478072401489618766849845935394259030714943892060148172283619020745329590744613293298136505878299315705077644722673372779492407219910068601857904701376037834349498234811762155696645434283175535420264906305527937890280319738221745539085484742310662118876225619216130771983380635072580300661766631980452906325238114301490365823452397865994782395407887639448321088166323376190985292565295783630318318605221300073023543688943097691030822412483255385440403085650545725274704770427654622474242793346842850847498370717021252732462126421745708921980517920933951202618814295825380981447307462853291876080947263565693837907230334628958646972796709641490228930708375386321949285198913295731031471579470888585686187026307123974660412979430224107853519123724128977229185846452741054989738843424274421614864559478837176452584533072757198568975810046164582911421452324722577982921361292743270209213827518055985274062221233685226565182183351772175907777986243217985721726158009815642502321520609419030597429955204301028491946966135390836695865999160482594979020118024395352622466616406260140077022348917552858075614141500235935495036290943103372343921256062550598058833563498542912718006976226453819040969493846793300017875758689009411652715159645463593280337150303201139114619470246376357775134850459331628792042164484538657674006116353208006656432264718199277609177562685034347329761942714455223180272092400875268888000036885073281137290614587615673261988608613238555499407440316347095873125796465509821595363498115537980211191993342668066938001131279447506806740907779106535121835158614529655910150620689226795234465446197032472217717722676391835650114584319368451334846385140263265603124707555183341226887374455311508053878745550034795923216561799716892205498181221244606256910373082992169003713871065145993747180421180911769164543875430969831695422518669495061655288809656445667317167566095570139167514177345898726812755033772558067140907259108635550589440846727861045697004925977211659649995589363594215823579235411478831334737265968108949765195767007868384236523311030341737057901864897129683477276228768329591172371585401039272461026069067118790059623718842856992404178105588625203287798845316106571013060046796377489869380769576893673192988144569889001925540093208672853271112005298866898105735493737160891494957140200891398060516553358664093929683772578223160371239478852882266366919411148669138215598044244136175422700110713383398476053421475761371827720683686698511018644545351189360315293715898532387732031671783629174781719752181577495202698851284884978260433343757716377328791833799145958000712707430746130039036431126178052056196163838509715009781244354392720511200038462183490400161227184155727094792331613786370465252460991668838053858709935480839113504563680204922685727525291283427675949710501047621658981030950936628013965729338984153505472290864489542457822907386982729281036652602833217714493634463284346485857820598462367593243034481113963485298213312493426312275856127773390566281698071624558674213753056250118112200207813731405889856777742394085165513044951453483227758867341577588612644234999699037119882831786826006493875289358397706572207520832493614360249522006712418082278822881874546981269433355895519012083568925206380987996799176720943174125970621210349195930158164629770061500722543448845248464366526376456032521625860938949556102802776336342804763426812632127916098115616354610363223056565260344790552013357237152840470651313049806825315029030018252268961866355743800810318662334073578499580924247584185040319766685007175284711733589413036107476507325316258599815502655101444817031345537731865398741174657097179588034569452326878855970764900273512822379655591841234540509447521565526152725443896935326773754510729959055947011308470608269399853821526196703772243382106371801771755263204709099013531088023236352864415212937778048792807394233460512651108988636078113352583675563258219475305665827352769771796077912302341305721535258607196118484847239523932567986292906511380868972705611051596446898690982446961196542784903947859544112328587560443629453068045615450389914363284772101144477057668299882843040514740650993922291431449517811426266006402561592687190820461102311015271337347229161517296031310907056773188816068131476369740391281043930920200548545878314574597618746086212394879785301512387368028358494925351963459914985094578363294747752619018935845585273953023450489227335549836539565165504772343272358728559955770914917982241141632347828182290425375884624947506649463312581844296840224335027303688012347002966151149921933647220599499704746585602773835271137389654406885513135839352362232765184694352547306295873168692561062367741644060416288060081532678892388596137627225832134257214118854057284957693982034145517039422221887315591833187241127062051730554191710409625738010136281722200499938037824115869270509360227835345810351956052587881294897986993400732786689871160785867668658601871586638204380640498569762372479423399383431783010728040551729373602418349205880017281008675869669425087541837335313203391467603405227273917551601466887784606220839091082341855676790802607873998923643636512208137500266452909870271174492791636485156755325169543181035193073896334853918611626247741734241981655538029675075420824919127336986852526610080535078129710255534248966550365732277968711741610451164323420643871350231947580100460619989991021125860734961931404527256037308349638412535766120467547746767343419557196836351744414629687433539457743449709120898826755093892655117447481319770555818539228235619677227761329499715313303044608756409107293134569495966002800435184455995359184575167706908284174198150429500425477409254078183915369735079226217306298630788668923461357906909438724466437153152910187599354083985883670445671365432567827463766172399474380998101105370428740229177260353549577119805711610086991937979147469304826909732777012520352665601112732395311341363144485777541002874546978676774306280316544101054075369290375224927214238385435482255161508765145604941725091355190475800771584047713573013974934343702243591835535650548640450898638031311676244394581388483984781258889255627255423603054134418737579625854979834201385454766171421265525069139624273282953432824761077806199862742602645957947726175459865892261558679443773065181824053065440798274680775729917771052521237120490125901339109289218244649596796154039232836693327389615577807346983089687929643279901778079399534478072489797205954098679397981507685721981047097670076595527939255911462185991499198043675061648062143486781768630406474275264479415758010468609887335410816931831925339311926265052200223329744314147177065221950609793697471704901487583909089262960820688662129558791060508250456308255764396108400421556162396130450202008370274122994197468782487647591943661314842685645700374620927849394784174268724779205904665555400987247007323106223723344748525168534495113952697693561451399499102629977290280018083613099187609778720757513430442068766540031383485665590198464956225538944858784063766474894240250896305305451462754936891843033115603596348127779882313375537653689177163102502957338551915531012122809191838818825652132139165468119116660488540449929419307028502215188712355266872278618518446346945926922560617068902754125703662901411226336283280780312781495111947663653404253854825470600838334853269168713870927893260815576501287666885292581117548678512363383615142213338999413277999313453055108964273591178282619736411709040379254797239202086305297261231635795970976732545887900060293654034457976380546916574167304147930298685323220148630645389162971410294412057406614372783744394558894493654040957304205402854198161323165352932566342509077030719953553868646992292119646245318170480343218726275713422426791110023296850607250705585832504047748448052811298589382136073317954066916248880395571600616736658542549495597762682795120561252678622905969641675057899957947628235264325538530869757072562623321277550305280960127328122764093163572598551970270783676288351552780624321423706111689633831555575821019892426498130836923618187891784856182116143197927372900563774935281981347104997260059602993212018170563673121141506646765682217229060898308254506529986834125189345662910345088843659406496591562183009105049953082195036190086529465509411948303753922485027931040348092745409260525040520034034172528316225078400228130025748064060787770271047791651949152005211986993007191226685679296096342486972483959629267612895138864688251692741047959875019171318956628832035061714456278255886187127398442076605406293660838428592881113892572496023861417791436403653918044616830730420329097699994211509580950356295778142892338749203575797873008365851122691593652115497307158499404697467291310591360018560837859204020669586494898392088912120203868701814465436089029382240825320318546094408500133944247297226308430206882451925591096677916200206399810635711145747036597615128248973762941687999017665100914711858614311611060938079469083110129332497287187370865279250510868900479498842713723370656614040666988915910574147296169300451838030788724605253193616746051751719170072576305164818244469512850406107225748913985599831122068707699564911028623004856941953139138222123279513225994028027360432403632225099897129838798422258956272601387026173951909197006836367328757310533211787406786766405162793370800666862329999837584842278890762106611752229853922773716345889404224054348783568289779005101332952747028403225897749821866198650762843883942365556514921525085958567195275803020701860123380607302168429880030894003851267582886509007701753749158727916980705275958212071756181062766153058192348103406314397453597947288277885467865426257778188293244127627894997713510142661839278910814335794031225962177083543494606101195077811872762077500688754271250212641841937723421361700870676276169884669032134071012349368291319123773440008902324582517476796741837918609877574287854949406619212784889326140575464874245698306520380969645571091325492615738965219746493260307118370921361531949415992504586034716679190166918769830645173013891530587430198357224213284257626056232268779792899278512447880905694463642862734034184726339989189563391126317529845101960502419803394435021735830309445730387482649348456583981987673894256604659008771926762158591887865380188050760687053852461895836253312473221870303944923774755201842731719864996572076697044119954725302643882865124815598877713138238047747322290343220560387831777762127382633417354606338805536520512974695149806616340546521627476326704184072056090938233402113298470406341454815782229189870097622438095511894003467130973615060493996558682287370002319856875045020491027285745013160671277942941871653687362513184980813761105731676295578800103740614996413128960098762353608219690564566360206790177706072433515865427613809159212233178378091875733889519962314784774115827289108059265579508030052551878199919642185186066740625185896564872207749664216889345070925568015498476965788670579510244528119662817013732065504056463903256001983632601823175943994828286452394240827495615987073730051080305744287948650588698298699515862594776762121627824175123099625515508279016078506384876262596741683973728574449125021564674786799794441559599793012822095306678653910455657765556802102745977540676225987524454578789262015800525211668562164292670492098620902296443615273474284950172097142148319580145947720959737541115881634062807558847363701576554414593245988620744524473984010016501264170878464778774438295625751212235410945430461042928145507040304086937440204006468745497916794896862446678787252801755396929543263084146583719642319653841663469110846406349143997821562277028113077578985376021201595594853772402803309553766479617173816716999274448270087552817255429825401128684482753139782104626906370325629442663881065268207211791872515229094910874962736592425828356496363091564294425085970371928214605406026314490275061157198723215347524028896240035303535007386473380317307785524242655854584912592906943367340724538335785732753793470248041123007419442465141480032163733468636822580811595158095468975882950685720720067856145665530946027510099553803240797172605261929496071167237254725996274426988574575127270185221487602821577764877309725022009931099139186091863205379297843929306374460537684102800017198443018966219884592666026745320027693098398728659502732477756838085121579751748103661424799722010512301934418972872978909419412850991868140058972759955144427228261666375119512993488875448799002890347067141762054122218915037561069364089601226672681681879275361710945330498299809143404650951398120315991043863394992160231836189461745434652356509036770878271730883386843542430028117847411946347364024873256109168913469115637613358364303495692958670621044603794028902305542412275119525751489777332545311158735511890813577514237862326112065531312031441870014541773172943774733342876808496779381495525313274490088974281029876816034555536137996792738430812403981328090087713452784944483696127212516923143979514004185521209284595046671316945226767874722048927283895485817227794214682146781246058885742636164850008401111409752748544240546500568069680345614899967050551885268515526199655590608206173880138211070723910896986393466162035422848616222671839515326295264573887532686869322304461073177149765822173245063431505086211129490563402799065275927176838272195180394576037263930004364229179338645395653539989585232760204568083416151667755351633907276749582896579862809055811941352767038858802860555213339769184817616428325945403964376944394233395166339834702505669181864006081986556477942977336135410910013987019062618584698722717619661607545337499625025365271046049312073632976403878378872745181958068889657689260545434239637719175520020505378825673023965453080565564511412264472594054157812378975272168975486112710710713338966586647100840125194247617240902110676582567220807094863206302013599521227807665457050378143155860921539145277906696531055436354966949876822447152337689978256805925124891911869330565007388997570914413486587111972179630294228745800146991803138933689139674689231158845220007436134751372409613323854693053993299982490178649203451607663040705793847160143257771288917918123279282354539914131409965404696468927448260317522366465180590162877407332256509944874302242868998778390948429811003564851888083579777208420077651998102360547067520918084449577904007746944910741031503110494955615563552899705843354422450192767283276832002497130028861204586441015768234760275534772643650036614507635934390113324987672027932162340850159355229549220834562361778099477137608687795630950823067431685098285061801607521432004248643995410590212242480305965461254703225316396191608866989262419955819874486283116270950962128438775369954446732411196833199971921181487692655988580652170543297153941190041591652470510631664916242043377335209896572741215906802002350680584608117150292234935911144698187263364594394546989411722960438522726000091491401555003763009730742402073413101415344827639747469414306949259824037363187290395350663912879420230229060462603271237259703698443047882899323830976990175332606330568751684621931148818590812797989842013914514123924938176429302720322640996755092356832945659143561068920118698102862463764607417535981679320731501884888080248650261829592059839780181469336091364593592004836064425466602967080270321374643799988375576191985380448457221087350218190357443630177560404705940151350096200326244341824696809146380024590455409305063244519600079907283945615287478238536078663913461193713916236195094116088791121239725876360156620461350521290191089208214514575228541194181199583757069042709599259009267434882060192964661110902126864562689664878018454555287006091692582601397439909478354316675729801077472289746035988202749550732662486810817664098153889410692827012196918634310264944628750454911193207586498766220153866192355921794251328630954443830955401956032776783590102675437349006575933121787952697172836540585062391086094298961205850937818746730272150910627816085740999527707428199858960123057259215009486270736176825582302614331937738881707055177700011526785273239784301925119185849571255835019023915462763936973465542869361077696330870555461421604307970218710707604248920525421857576803524058288160697585660468435727651895656419937612586651770346103192624237892328389822828816051060949357801331478844106608801082642807312564070404057693852594135412660588593428936367001735623956218160663983395657544554476991240662629188681278596566900857842570425215582784112742162108228381569561372081490421973647598689330158071407205422416406966990305253828199608536219033899508808593506302217109815720309727742278451397906846718567290091930319926540928061666163313035568669003368172153414562912121847670537165904192081890095866587341426370011118081730236059468569089032567915407955352246169078154664754916986958068655227415782064336986645787469796433091704088091068289052022888037893769707680730595550294230711877374169673367705092241053416616864700132226724009840891776833338868607375228100856711133610506162229674951215077921120995930723706318199302386813612992936033236870284175235034133178128964196643846852232088113245501308015235085674897732516478709406497359741366756504628536238342017536035756365212199441989837032966375632500497428230109113435644060322086787565031368030796530715085250975330816579284882261549567326977793243856905088392180594230927580583624992338215333325806090940817211229589551622126977233346619524637679310044954364691405579517845779184619651014030064030099368435800760377914758123258717806161191096350664076230129140866565616755172022649977245414336471447733880509433598932542555376568059229926189780884840716909780746732529935812683576003866108886923114396162976015115657504063824668247214254786033458877021720398332198912396535165598162488984897165217309202932134854961937836932901768677775574668187313508049064384678272526054419473216819483633262582194059084163404172818933833361122430671073911789069528871330474705604934914696570338432168784312700724181471586027412868481030713457105049839023565693675781826658579759728997832214176613598624197313599887829283705865184742524731555311745157627234754943576602107479434840543417850031504917681056702263480895978049340052352928278532788346369955726940789471388905580801144867982094602171204726711995280005555914379711507188526822899326052277232796239753658928781804161730559285859132938493625492478115870377426501772192748931858271324135976073344143324070910802306569541835004769424364247463263365331299884012325954538960858716326531342962449854404016205162058680985133553082690836082158928050892924644282666493924829063724138410330199542653102961662967092845247518811317988760770701359594354725070531199826700697883276531122055148708164728608917009629789189173666907174788531163089425213875609592567235341573400946702096349942966727586633024554894633422292998442958267659620326275592320108671882979865343619132793247861578279969669195240852605787376929492039250032770468227721459059579191316942163429253041342522470658073655425106943608891765587176406364659887337366737354615909575250386876145349692530140715443642721286276365281417069884718113412393505681589999678527096825934689916987791448663199950735236432064135550697575716965090121441849081039230226373112138512871655198518316195821688612409731733824982372781515862368369778825715250790164125948501079822796207984803774455505215583999369222586856047336928718692997919204230747802269598021233232297669536726055353450213132958797482810398845170034212996853439978754953101139681073537671510381328284416780968778907547509385037728362990567393261839984387176940803591986808023010409865349892548103699697728847220053266085515826798970743384533310240672257472592360574347926833806032407482293898844970305674886283877053117643191833324202965572292291905895014361261486370067061424586864655845329346345813756667367230259058525119168236725781268618162400892257862384779815807815853770544734202231377856445197927427515665333372925842951738292571767146953816055880316664979187765063615711907817903400093833870091622072985821236949271050010446330017192412257809406984716471752728779410385115619606931739079950507827899635282130619901273962820080502263509201008947848151496299291779291905420870391867616843120309039021556885479825832844712794170800078138168367073772481561563723989969231748361826998739104561711891491590508725809999357619132212629296080523967494434090935120872160619045207911617001233181833965008575377935593599699234026663997249594982503321251046025344177989057584632545975423866529310766400034949180988287235062402980504398209776084696678308607635514383832544372877753929822542605174704438580649474653597611810379088527364844783240486668789096423179139197549983868436312352190324727131421155453531785952828670157145396125348276660199045621707886235511444537189377124993743631795590737343460530173918836432750574309714881241722291706658754009336984437381618527104008924589995167283439313385110444736954438713297985301117411544584075993851612258726673984265477886059862995821088099107030936304848277261865341440491283463171629610071310829066680854509555681266076949314188929188890646596826393451397959793854212778857662644790876835956384576597718050152252352457866222147810083405411250951139846337792757258206225744899469891816339539754996285472798301449089889451532536654919371434557778474967902986554028479714871462946716445501183066810369181133064007703236241532344123768664509367793131067615441694157778978849330167259942625636837340093688433352772969285893661987265148764177135012998022116267989483098482723510571781217250489728998781258952617036232222068769109164067326386814519846944638574650522761169669270885437017615160790210537524269275193823599748618041234273774435473132922873232210432780431045705797893913890286531544052090102983985374938883821102429171407098782090237772297139103040256026617123449484955561780700619934369241813333418642568724843116660846103139495918985336177699263292543471438993925699378894476772006283102043407473087257343113859115293886388845755288243479628447510822780780509309259743743512437910165046544241835659411007303833122827981651709801543035393974249097945226620460419748618433534125191901755969921085467277444502952801872074824090413066196700156730381049333839472327345412165718473635660999532162510094750098417152149872529232995300490919758209048117580806007011938927074802938133079957102156197057297039211121687564969230984443693699485570727075586334353187974560338066396465738373149389005885185873971426323112207317838215212319194009498855795080384902854767073155212215865626237099063902145599050664264592349148845788614018055135186211663758931968179152733326138685592580662529254263504758680207248958750787052734154140381934170363178833773069047178488420638115220155157828045792540409452888747284064900332214966084734359168849652923495210483720204504209053812004697038381330599410731893248521915592699480449658675206131791650371727634827039080664580750123482003214310805225742294541678865462440232688857384882406791397826069848786866907171919332538019091508419585870929024362244958892932530347402542695066757873331030975012595253318841384083588494007116929408310980169775816709746657840423601521449504848300385360620607203850734553601915793370409739243665263453146701854073051921537196251722851241478003341813425588320673141224116985663855734738724840342514260678017130711287942719750793524483667045584049511830281355796938420035299746270783223486484059848528698102122484934187928848259940855179178824986810781006440857177557227799345002775119807027416349817451080795925597641090787958458529512346993293107123396907684516328468761170060297556604017031189144998277402236111824598213882186001430595340997972909044925959717446374933463050108266636840339226399895579157269953672075235597864155177410276445029258427350073665558091503477741504178811216851341726659382121492334008585530867717853290220931181899397057483474056801636757668006051596000260408901170465773427952923785857164267044660408655442665002145218491593751440317220278001830974458298744847416427417146169773034183793575461847583442109048050605467198974381991551466605115493015000685117628029748057536948127239180091050164839402534276802293791951709280128370933247869406742509865780562092333808720248397367371899954735686643773658935721422716862338136138205019442429317571331477054012052868442069752213819745948293144419326979186133666782054090919169311405150642607886770573306708370476865328072071434537684318085497634738939088379023946391894181047396347064269688236241329883818068772656534249097405094947302616510308137395247799923714679210201965130204608101978581076210780711549391143760635589797159746977718832851859289322359068256240277769122788269842811773502511498986921889428453014378109468408626515090821304322796181825995433903717410099529216916133544894245259677161290132157332931519822140579093603738184092589700033913966933714435638132831110592444863096772398983527876290074052445791945272697067414167345438269750508105165255446194356430699231393423613521651783175967175105349857412938746611540250238770165435500553712156980303502071638965520392849738848437780116142572120209033920697391888443627125882476639786161212303701419152532599714599890233471975142576559499714967132859623586052742508040737210380490034290150022705640508722237755315909734877380318637895895545492756094603416330632506597159572953461029474956476184989073418365031868491200925868044663267557732298235459471175323418303035228601667162119056298800399134512043359197668750975486126030821604565481571429270368078536640017095984717727617845233556875657673560083092469931782675892940714990387780629401614245389065931725217786837294336727662141035698374927877971949624852862801210036128061678838419963253750329364375950391754820037610210869625126494368855044122536905501986590883616237667429041358811121391691572341537611372735239256358124117760573045159881939937464425825843352697804826374725211244194736216134294426194752922607185893009934804257171433444937412187389018999216724230734658630481745386216958096028362698222440925640082892137332038177888481282998545541280339015415701753064890560998454494081327633404392090270392409455099688226059452303116003966978392655585796086165058643595879146687368398805348171465949051894972553862131444830155863157853735253210634628935656524844953604835378872889453706489113597267587512573601286022210692344671487335866084015186043063369339029215764686377117638900884655105604412671232725147588428049602673224106929513205413761912793769913816785367392333238097687876782584209538230541178389952583915897279111216996348002692536606091500590257603274250625384247298651627304443595560386436073980463390530103232547515232094135044847813266361255849452199468755249724852482018791792961284270445431277851513676008979456492484970276860466271993678044611211913270251887237740438606236785391897198543893280116444844508518960689987795451296504166741488935328543775961829564943781107200749624919374930614691248060160484885072968569984297932133705137779419688776627539369316373790645396992179650698013069460511531994603062853280631096817829801609573756378739632585313167566067955229263499017617514104098512970641557776644062212029367917006265440954366027725161046939823296517292672557343353737057978081669871220562899397241423569307300154236242566615586306209583164679655214364170078390440161495333003333865147790668805505934481806602264569031959293030360890741209179720033916826382834116090463003785475147718808271723716236843911231024281566260887964038552912559498175769377185972653774498051593857473277783480253563834871374963096523607872105541617102833320053031380069700726821012784372948311487470728333102722282056793390602004605767784335859979033011076625024719252462697063297893364924125543012909734416220373993594383858620167175575499055394084410569402703468730785416317870130257803114209172283557469278292076943471530455072249651949711292216123549085517856674654241639912083230882550379625625325126387366725954971614518487230600116589505447421252424814501775791581338602249496986287215381793559219567609947420726270541375489365380341267765914857843609562150759401076829789509856927671057293594328377432399295785418920027026656601161481012264071084571521602558148559513989733226405588144864282412966670724451699284489816716598659590855354054734163596968003470573113281730627776186451282454860696656993749088080416490659258292100044693111386443295055930500004397691240904570277887079552256809370476378663783934233582196815807895781054014688539855000172614824062596640639072664393648679469476419353270988313945563649216359023622368344694209503247776054491112635728863397369909620253817755324227033666507807939736521446964762170661744847139650097884497342867967329435390338024823595087251397887002320683374771426635407916116774000729298188163184471842874224857195105843800628797780815580968421196085307189613395469198049453724843116171318855932108611660771566721889548352887339458753528128888883267656766723737187576207774911288111792388834678230826236656769326266760403023496366140350081148910981347855953492644690893006108004627336082298370192065416098882035423988098908563635053689334935236473933667516926061545218140787134172422549757144464195838647493796081118147592359167216903998386655682008434218580475242656219830309859127240196977292822642082885668086246713699954919843974932142407689005624471932943727988182188138210866578362296686842416298438683027031980727009093196527098587104067262164609884782494921042973919946388320418257081812743306550462771869489255089162735449548279930360369116238100711892436626074548618758599744380705104712892565940539972891985094487746996242728721829855763912096975453135123425049688451459237635530038003259129126715639080605156816178566084625790733954313739522261145312760261105293945321011357853255533194049552394233611941877099819854414888684788671987883269275015891250852703191635539723945667636404253164362718536540027313318326943639202207032627775889226202727895763079335592411968407967240428411081663976842143175723815094785586547466518524083068966848651681103760991596588467886728136512271408302780243323836040554392184084904991810090430287096627790925105886659293331246698110301529223072199918654260537356437957150612556904332122207466888195409591951961458426839621272043109578312773501288344965122740072191033764334032755128462475644031308044495806609914952881983362368096785662338176612102699344903164703587249952140949638795072686559607252672871435421716546179675008742206624156916546042253858763361177314764711739164861785748515234079403908117113943844264898553752122617078715332686895458168100820998961284508184834779017573474156665445374289441060464797391243896151690919693827721036061944469106858620692725788323745908690647430518533574851746070966008633893206107008015725959349595854108748609364838193921124043333644265450281570317167788723654529128104269881198119590042894748438249085069560436828253306565599948585611911065855049373839282972244747537534935207327281969836091920220679457755828149309187164177024837846875331974246784725057968794549967835485775113073557048865747528149147924812394736677490152097210749968930673768127000917194431734449186813186746104001035709372455026438089968089654838137143143769773737077489336888910258941855405020870231231193482643918996496494700594718946547931586631761596167090752951247041622573356531890818763657484154396507358109448776989302080332593581273274071746584063476900735469427358191456208991560359353232245859809903859058576020561206503968779110648960439639562761448450071177662533183527161818748650234426583922873196535505630820445045143461089512501203068925915206437449103653638510724928212725357507116923680743418244156762365726430970813750774690736391738254566668818945822851579352643367808333084047462471914100917840560707256694522768963366359106968437366760648418250763527735763891357772739406812895226588081461575187971555082068167336440474908705210321308864444356840535124815896875944890507447656963939380618143243484544943545500346259864898589518306811271463640499032482108055760941106242594366354466533914665978916760662981757624632837240033823940009977683858864132598163563495164943762633021926744215417009007978616812657505819041461778629729330736857942428824313795337532438133701029162836819901281734637813263344697742414251410137167212362876486191499884028068430486704665048525238437113825898193196616475040997349368772135981229921956934820168916820257904893645301125730929456862518274897821664306503467103388289749729975169691611815126460577067350850989776476131133767037637305769824369973642490976217711727248037336057502744932321006416666872761033501168115816250307957570412736119874989035688240343533945472172210481711619506505205486614972070743966850115901201133445398418184285078811859378964923257315112070010143160375326969944507163631250470112542383667126986412244030712837811638164140187070120788147773516496066383256061611083728629532761372911806893480812413220056806512072044525824072027789740094472447901367043436266971720051221633169573441654856732430059427416538367197102614490485534269991639878503261598216652387408661507942031442790328049163086424015252190716935099921266749398863262066328022184250609251141623564618446010603268328449894426576262976881616970933862334795135694587749563205614108070199067355524425794158749717634394373355006183241532718091480374606297268628702732114085503884967771945493323429316613864332918527565383779726335318538002334257749372906949645380337208368231264907814027512112149565948538271808119853981022220821817941785281903526447100447015007279514284958776262712120813726415582464777082932242739530574852959588315466835612928476764106485393447213870013027527456144314212332324897651174478276741604057763107965471298043239142705676467096868000100739278820192589794715205359787061734537200298520644363023914979034302736585042439092337887979687266951769789305723244909319396746940831161677073952729660176940266309637227678188567247947540415468357555177454617694478649709178731625644163156718956956251626246623128008686306400940052953056682448278988339358943997542612912367853722871170074980806206674818571161784646238480725603243013772129418759268175964491280310719350892702060053305637240482909783507655950472146828962328829740673928419291515146632151093526942264848687379877985771096126619634717967543080786153904311940413579754313199123222058301053002751037397832687907295859022798142640845005662555716108984982346053763163422050237509211078632832149383780770687067753650699312563520801017300264795324772408357656237530933889566006952350303992609190574247703862914986867131806125745807995412343663292907464106336128945072192218486575899000365653914730655162139161689065161166087427562543080944247458138603084909869386582239437153242780651884931578455922624618995940939983299691125291670736145352885635410847639212703999726903620023025268344647232003575662145334208328367531494424427583541861282215046764154895398949245447674928422349611627916722232447676571293230247196467261662025630124130072318635247747919081977154058252897814324253313128423329478656329417194086308470430604522829611131910127726681044158362297448048531045804955525810599833707660851535666800331659102334098110318504853695818372023622742950457135783708828487174586559403658632272801578336983123885519799365058521396635276253754572200581749415881022477803333134988306013767714117806844889268516182264603817483729811307077055364344982775625148820252388550205906748265873312030645288866112660423191119712139319316553907779496666138903889896099077373451967945534777078369755738668519540212435582067599079014397015297154299192614994511022929287751029222967577015038252747032345695588007164713970678775489569897618543202389700687207461294788060876544564993882543959760753688651987321679064861778813927064543801413489260403656072119957414523092396790060780899019170808132864974813376848565554896248044072005647749168736304221449948624746706279381711381681254966674482446290194160764865435507442803737614728947534587675756469460613851241740864811776882853821483482880208373172645323637438606685985201950488683071510414208306321267260224994975672326126841593208152013837635429493805920247772879569511611516277565143622522575607278003748055766427945376354494184431268673122846709736561086761397091196804998547311946927466890529250738116070048797418488019980033997611927908020229511715920400133179842753511067015945731570625615330417524536101294416002906551903117836980337244979273422007368797442565421320953365085285769746955615009747032255641900178597469213641143156262062890584735596633764304364675018188050673267273307491649225897183900114014806157619260084635508443417069166525875603201221581851370145014968531530957812615650161067167331092176860344049288491594463120673068299240013185754826263628945886700556581402666537978349550270336032416353433646926740704404928833373576570944565290773067571636302605565997246915775882824218889399773611496830517259170387082118229684381192917813005309929711603613531490892381710699690009688273498951468195816354383227103776042029815352602672863570053721713305317115429481410988783523752463190633424833367593792858396799395664459871495286453374012483300980236873789063278042659189480301098566786095315799337407059174213428290479926087676496838742859574799622052003769062616817807736560640823887564367734885025132996660536971880751378672356570997835737193549800007976744930648966413279724703821382286638563852579789630059919396128141995497586567000545999194910401103685358556055546929797681543660045173232457021137730951122668013380239499078314038286132974404890093393990232550799455612015982574440407939045553471484380214668899350666639129763790701455656048316987704376102827461048328048613018195154127902895470024500645718204097887661451193485098186757318055036692912528995517386029811247520359337186897624055277074451563279530622942674014777880557791121860846785535850482803648039772138264562064256473793789639671424019233795941453233292466959261620427183051819913043452488392989283559993278562284869708403009567519517279612060770484595371830629677127320521393930338723927609573105719610642159395724697521371031028915662415796818249597210263256867857710992545936622765689724770688717536412661174656078152155572852061524031814540281659523759179613116581206059361543397584008952883489879171075345931415948733168581008495207446028460676848380448073458484646784751116775971667697067763457538609302489722359414012060062479210922369356748294977613408964942289774264948993349449230211518721460930719778275354778139015818262899149136948552003030167322744003632649452133418939821191948499678043527582948793359754811648643041000367838907526277354942582081670068947419651345472533669670636254874714868776991342144897452535867178012160246911697626105794742685445738425680511334698560721567525383740718963880704174827205439038657101124427099802654353634452003309904641055223961951121628784528303296219293969047509849860982425116329658666731603312091679775031863510006132907089711737452347308987738812274312489467659267667015670079994181787347713732722416921577098608017581618897857884685454477920185816321628005040370670150057934269003779483450516470757743402519906612669208553525839605842929304881886540757991272826892092012389682255055232705517287351293353692093189888152445039776107564913232422033494582621080499192412216166710046145357718581145925739299794427408451319879173049296844169645963221658349141724275486774739386379848896851228863441660187276092706637520905870037612851775376743696840756163653098679079119370204909566096867190935324249927973852754068143483356343231760958970756840933708288731877169685587057609450557677379126119247062502111110723160002850896174570399479795590250004245518411517810575614516785302905550740531891255199905786852783275271428625076681934859472590382209367362186403630702739987765658204497371594807943003462649758430796747487990424311317311865005131107024222125011878175861100252960497349924283944893914352386055662460042110245004845274550498725690671707382044972972032572923721126634493260045523449068455345375608250481397932721395514851691433003182046957552222227174325308972032101216973834718256217715213437642770151806635255209018645549565185290636163566680443494018235529628937397896532520160734381543910494441172294501128232910067935762581120997065260920636413087113655437087239849260600098911076801117794233469618914190794982417349007171316900587979580982742009412054542238146934594870007920375111604698631915157708366448119319731163329089914466217782425585441077808111113130280809535043170619502384691892293631619756928934547821286340048889263455789371571483767721822163512083231460162748703395232555767260844963988502729136959157940249921203345512785153970612054684751387040581851490745573643705458483454116574639930884636379559664794957344291570550804943314168177342677562958056070516067226253175412133898816540924757605925526913902298695156258645655586774877222948030644549716647436872359297832254852018008437374373805918262287386990855040600530996184893632132992461062527046894375727694233925632339971511742348558068048267681254559861547608576530125770170363663677145268457637922347181711128845812932078582057521768607131688846536461706924132420813312023258515728106269345661086051623944288412186053123628309151796509529206963295197146574515600079941547503576921203067601885374898031637725484479853074524224084505718058711840925607015333832749985989389235720346716603592082776720934438821669092906930428913155814873281915353061364046261631126146660952291627226825688429086980402687007257860144312730035260540477189768432072236611419088272341023551981697790627611054677186942880920689910401471163369113492696754015046080432535036524191780443551377011555543742663759099094737433764212960690814616380912277218238083406831061346934380292080856210385673329744779101841948227834115290693526766790276146835806370181318654022311900095231117182385679714453143839313256637244307484941792577094567530139095601366046404852020828982372093691902645790601300371917942121415075914137788955850295890013867286688599387588144032504125585697289757130677700380124390637285431393201490813164122963062835125121200192490455316523757126150322742011515557458803756372704838267257832636773037973717883578962649418679463178263150198634120825697035746240681259002782129624769102381198067079833823148256968023232364414951868642899603920137604004020644944720828500470878623725486707167283649780405407850186845126420304979329399123746872392234596692097138913285558775980115755075573093754849221560181896042964108875381489517938331617542606396676364491446307533674113217090237605155204163770399959648457527078422658174683449668305253107390672447069438772827041190141196012599249920385234047919953477726133278132582182609506471846718647123321485659799663181794796411322932957531018226457883595661911406407969850002724088592461306390689080147306180446462249907894504635658413722635302009202860229765482308508755476496873828541775605791846165030329810325612204437351063843382931078406528982505593429378368183641763480817734854488410033399274384630407912224402898766086131318466719815826189044161927283325845004188949965594090063164869855305628761513123781698956559704466519526944103466651529671320835609290086665671238902644500384723941856716944487537541872011239321008034805253560640396743141383691518483799927973226642029718409608065938531622166371893445499483253060241218886053516001695388823978696612179105590023815645837335306056870241158041932865700501353392400529839773073195003009374707430266172407237116902873000302482046366126977890949333702712983102540442513860538460162357076826298309586675413431411738377653139634350350085990069200073612661538125033025804180564101059843904349930745372134134603494317685765846238106922530247863228122284209244773734408439439273842674394371667849505778222352710838116358589105108039779737753225585259818281883942957734822196473713989232287718527244921465402115304996224691716788010879919832967465290956164708047817878343810688159052430172534538439087479516632874001264452655978985745540000021646999863042022011065246493718422223448159601432093187657352718559094708417418232232361062045196590403632798100905115316548406434700954284636610492978806985686219843306534438733573709331379961258349233885767064703157921677105673123307701702743961615654981264887886629088726857823355000991031640035289658748268162784682929516520927428277444165473422165096967352636222303692184631695429638140910173247806060288585531538432659810017293597247579847042257784126516101061233507345864991622269435477034152236743935335168425909659827784176136336591947196721331762173822316972331187609474465404108742645266638165435365353292961819016035242687473728299537845094954336143156574330841317378710159585960326427415555886786937479901123897176472553647590687942403534979912340962673980154763995820708630180806064136059832587107869448248915371125697704475352203975854722023452719901633719467740390869940205377630866155679077963673344589100131955346757459083728480029734657193365820245061149909872994477177232353101676149837415446307818502422426612773299000963018740165808144301865108900363238761878687337778907993522567569020720183534494750770106466051545925347464320757256963957531198543682206655624907843466013355698856781409733418418178926940910057406523680502546134106115937624540757538038171464827642579231628050461108003370383909093379209910586437207114342130724374000594095157953359961705582017465099402500182054111082158971825503351220063568289281810146132431602276891611493373063591990596414074269730294231270608431406371510628983542872902453528035848887094005425457791166630963203930987408756081402826415242461606736564410808192817809807248477414306711110800853845183263856997053045504923509234466677930300524269400717653714017765673134069968650676034507150442188894219875285235934982773330417053723860153146087624958602218902511530603398575511604123331720910354065405123218892093956998427146737007024265823592370100736075540318641176963247787461636171035755454229738073861592284662623826577312821469671575073886420829475760206472494804875736975123351220847203578612427266115619993053825122142747922176383576446210843855219628904507484452221394035492049178924292058340024667994816901437740731344605973453655852194202126589490800323202288692716628844662840743322685818944612161601729091584894856604855230991631300807184039964212950934813289339410919427157962219450683636504355287625372672326426490842403487280015028557710511343977579245659596587149260380800873551818975656723376141909933405231586527285871231513327331419429409047599248030121994251982010156949050059925523409686078909583202144537076270318242165849691285021364502953631800652997584059386447302295024497491853958049820450773082596652355303087840426036754577934943780190583760506381238139568823268220113062640985636543147645731125980429580093015401506304882243968543099169478722458199605515095880851693523847539376509499888752978331629737862730543040095860595525028921388069394234862002060312151280927703774043360663376936716844559329847645314475054153082111717679214919022809751899935166706847836450855857650359899667825126913454300495463416086847375904966618094424132522611595246050192906877192383991870621589741078991131792864795090479612660469511359147418492050448709410423599004721841213867166353543981830280370587367508111594711996446825531863741305958235568993957447729651526692704470948260601735033674793210076985371544975442154987554123271835697965737560228488737742925376612916633049173586457310624268706981597618898149305055051522379078466489173383020883392485945662816204688714610519508682957027406536539619988968348464841753068715281811810547975651770762604913368570996240466222760362839589476883070227764951878432843000278741259666031255658744822538132263179981077456860036735102374964297619679106531666740782348585244410780149306974111704642121935822201603537198060867526489017538631117912225850880787205511958377438768982459484164743562559292369668941573502681038766415717790559490920463509254904139583279426856659270598514755723505428989489458589572400000072645941318927666447659601194010142017885855645082378668175360075186093904774678797742779525639179490503540553025138512570177504018120896159147473140577905673438118079553884063979133817499650081091364677735855193272082316832913948796389602840466244682453934198402570599768249113587098890719708394183304742132148068904198280327204562161054113983028853901972683863367749805842365801332195104341922603581844916627760371589591999955308695701307621613153727266218556921298995536614303708860970486610239450452710365336700784822760707340031818163310032870807882929476224329965940974931823088956177884387491160776050869784915018740118421121696771138570433714832630028708883728705261364010899107735929326580513378503594930495375004487036752341646544228724660958254078523007406662146434500757942613109064522708550403463358303799298990735863286715380814511858682673141478572183409632850424955907244794585908507591519309303554689323863534451479065751912388424418121001984683896682895050741151688816494379238045631534585562498373985794139744545866701727282754159574279057121263534278298011796477606342383569213023341876869909867493814869807981197434270688937173084484180062680235377756742443443524918915854382606151625470387432385129445458577889345312344628258767338564085090534604960285260991913000582681468149136041127117848205753441840337262587677897431703645839139665201927917559132098995229465866715667793424994687126895167063778454491122748218196188091965883897189124562247258589064007152967193926307769955202547149619331731448373266192051230304907227062253561411836369426705080022150526787361701203240931619303262748236917564353752206133019625359615538200478009749718894218483149912637709695530304021750170657223272482860915482337530237447948415594079113592010627437538117223523961841389287108160181960018517892899896316620317278805902516328426218358130252484017805217265638169204651553641109012522786442372147083753506263725147470458812238884911839333778032199500793534439739592145165322146941609152869699173634526883843333799565316389950718187332320004119409436044038584055064649121575303341458119491040681980786655402287575666578138807310764408916873051778990623274116512786095808102934687445354404409468222343929283685361925167276526923280192456120458212807577026266153958807930534068486716022185624673825457806053468747169427081738416534205638954031055891858516756901453476457970021783551437650889372789822940212974771231185560893818799557668429756555488041410348955206894827382296011271857221376001142845558629636605455596655796896624555054653119067615918517656945114797036370355279269278448786441419462676658381078357870806708547836492736680112508588591875491608667870930565504166178472529487919545517509082668589841839728013640312046400264717268099794710266121047406603373247646904317298126739921674438431647302687409239726083467792094941530663541756453696814373745231265599179977536433635976565333762462947639830815044992085055663086372177637428846530708488763651215561937280376371704432223633674379380436012121132978627380508711452470920534255659321485178036370642711621153002118244551574949608759707032139161943837577328636153556408845082751538221389929491147547277567606243611343067421142363277313795711888284700593304113895938198112016376573450996851371285593475675602891046085258626944657799734790765717648591339668495136100971761499024042269924394219191901621323798872195341845181314972008687280140605930943287073555359006439520578202035369249271952431792961386598111606865993376919932868049802167335701433089545848118264450259739911379367473982249949158433514548702828564333224530074799700529638610156658848135086838027497498426575667679967213512941048175895591913739355232813889216648629302046048446618654103591421874826994830336539001884773558522748326335159195756394254633174250800790522424430817402094037645278886781594967130877158648198681675654390783770663324686446833687563262559220252913288873276341884712126082226758850677919633460148133678716873602748249914848300320416878714541952516669658103970351323087712630769096220030674887489364531947952880178723171680810879164639278736901035062809358156791933091703147486205339961498490425555066417049976578688722957838215234932875480127754475924993829414910057367174937525467195527499215283015809448102039016936322705551204322793543515997047999267100423227313472021340046387485619303128420036430960225904830436963303495655265792434127796805816889010448509363809244389895621370076188158282674720826621415110307726093590396711087574238307142213825774493499140976331293889467648511253486987585121244140030956835253111228796978967101873294323562424180121213208019563077384437857931239473152916382761769114511926111480603891449303945848179644898821675037592276307594099050423369189970131021867396476561206504685185245208963690431696755824681178825045045510441643862928198119005928787807690905914630414592029417336676253281261424126864020697679421434294230356980096005390480407385008733803065990824333968643631244284696421058383559892691180516259928529916561374479909592766578972732979234783178009642103762408822399453679893095216175671953072857221479349845000519819950939264789412706947450611221319836830564884529389096309290357982317722532701393842789538706321044549173231829688476498723372031085703615266137176414601148050865356465136302384862657846016118704109442957110287923794639179824708777308184799905300467272524565074310101516151754979275308267289914174227674579058339782145174283738044769336737367389986167909929324999820175001708506031646642827994394369480074117144590793750927074363310471623605515558843667419979261610889038406607416273003136810653962134376614393577533314060746332836803827279162763159771766468348846238710826701697407352734029483182662644606122564182885946482263147968151616679890267246872648163786275819161370469575297590171461234855467093074319437327345337357771290507470652311013663264481512313142439924207380881534878958353781715345156184681025568136711959847260029545708909830806614248533361368240990561398166819785786886114184781503094981867723467431626491922341705102037119188326128118346163962966514511793165258592163849302806462043091035333229199958010193206710588465559079332086195752706096775517122504766193133222800772701661587261321508377005565849647562350011902924623453729669113798550579949619214305169731788183026722403776204753919808464358775266097211909790859609070189909464661453456169981024301838571617282930286223516091580882684719892944551452638625314150821412163279513194187104006576796670818092380419335801628846707118187290919217774519541378767768611686314967718504858039778078766153945782383460877168205402458046151954502489041992888773359602182162285293702514592097913687716011183330425459151879267074946018491206584008808755104875997259299844501743273303703142920695680311486763049269622719200525593354027540246091857225965637911437049405922475912948150834648936144403983350089828773799159151338493751742112186099908125465407211639846142885085653614051858868517309897888052923200675712679227916143505546461210522227341257461226249760650209781939744190360364633028457583329715576542224144263603727362282256499938309526670131735925343050358834621927914436022093221629716686233443995463500519140989709494956008794491936413849855769181517914882741225338642218345036658024686408738926389616661830463228966058692940444088636500848169458031198389615183665185616533134090479896820947722257626382997785523228526770212608112840274959162820841037483764840141055240252335367284567753880472862130863984641192741951752336222948733520483283270050169199209484500408773394098059798471740141230894304342243132005550653980876308627341951133122084340126248571410310347974934997465317720099500842892510316845598100276154757533030836449396847601716607327795946897064914913161092798673071362229476526305554991939261641927762575957595159346325921858028709115373437260372410053429413307368303875433943980583232969710444065564010001246997615729534287395464546730953304970947252660867833502717946829725973087147557448307230110595773744522346177733540567984932700839619951946880490559092791580766647184047578245033774527096364308406257369414761075714068024250929705779252952135625021528163134063263634693279404100863155833143386223755722600931904636355833886533998523994503735611969571053713286930744887802222993189688112090834304578865283314374113458281565316654267725317586318589854480928326025921438377941397841712014806645313445012839771772983286030130991946897860913415450187766160396389869680949391560164235756079539064245283869674839488028663159918784215540664001411505796463145149830720391369659138340845098547875966386878329034557767787076642529696357603713171013917199413025970897297349529561714722795821877987534165701502479125393231377433794066730727198691169308987596255103916341136214308471266162319462135952567902075937874770342205348040073841107002593268849068689807276888178289101897619948663268756083686400400665040485996608403760017836762201396624565255754600872012117661438351076483917507499234130707769374701873229290454435001281723967469169225604088417888632176976411636481665383825920778131900168533205959942395126993120419837912786983871055462188125863257421263128639768108428263690931506432427002110668103506234118737110404844135490581634728795598331428901223738678709999897382786557586009410637363421780228977017220626503854499120521763895332617486197822109655934236419137614636153003431673497071982487993763560251663312174816693095069959645995597527489053424404639507232784854225735176778126957961276258592875862119422810041200169365442675256961607847910918340703007006744605155175544655845453030799415627190302686446705942592518793648566514754072021007756581685814784410629776222248259924471318042405659335874038415682139738928433764466137644311640188714397865935954420964837258440664393496221567983514160109405363107713406021464382553000845687758293793135282362179511957748126627364931149304826382794567308709222652347850883664945214483250777681652667347280849040875341619832295036750857207947690796715549874331778785756114430332446411094515748536187679651193021424632857254362813378946093439483237178109932051367921566300153611480191639086375388462246518903956752862312227611875953927589935331867888542152318482477195086473536467335339267416214502767427889836104464012678433344651981743022035893599742508053316217788387859881645071471367019286538535025785324964633246923184074811193392609376710973871683794375013706084706980751975757968081131492272507528062561109387728722978035570305626812160630137665917176901396071177826657043015672170343322971289316374584966421270315149807417436281782359871509242126845380030376124986716501974337088780601395275893849961274311796157088756645186531799894824580773362349866773170603717283194269815577052843038808441171965180668375457337507493153702034197018936454122240698336681014460389637182461665432814536221679085382137390106267608548017962981882436227100008568695694205883176970343585123130381229339932828354147874465650142443623013756328804830692242070437579963440482388547202045135037737332931652698804271219689583510557929623598669467120945776593050015059070402367065978431271679936742929735430925976324957265134864130385912103710871935738663587760657043243380940081707260358043290097182180747473817047077378257432967688836021016841985310741410871670942451694897520118853750995603740664233453091827438163672965345346295336236100638230137879075940604120714365156331874294871865422137349224985816398666718183273423305183520010268965825469881758582151591478379842605837881296966369486161769333248665372978184925344580385668447249600096418575472148698785242773894579669913202060151669766914433417221004722742698624819480495271192343022106799773453960940479064935050158270542400968165049026103342222767219945522423317771670279182115625168219936287398321314892603085450064789546907193413448943837970211811789245975167024148520277437324708949126042933871440573868636437198396955920103904579857160794498836501552758783608301069594862054452334887585191744255440851220481752941377704779708324206696263239890430304862284303266273112838092550546540852214325524325698357160748804242803558611554890369503105526750364790019180864384024044801420209823059496482039698349990696396679537116547240569643851193022452435933054185055900284694753858241964927236075006890701845800184492958657628341063116829883017790743765024970881945672725003530274343057955509667820771496816530903869262008102050171051193699536137549423210019627440431170165535149284691183357257161830927072577990638163438312635626147684622821023914663674170995327880877762133134423726007172806554778949543322652337505640265255284635834406124578148342079202065307379990910551923769319515578742587821352623224305581304265209435856456389148329000130444894867986739871282220431805773493600343021934277522339656260358709100481801230710100660873795449620672180128869675475039867889611356199282273496809102225435409408105304321293383459717919620520237234136599229590344611889622529397932502150800673129562499532102472992464942388441999712708150945578657739913587548803955030347965364825535156714918303765234323876549029925596407002515958415937245402207652246456133967612029395743488692648429790978361079420879874528508531642791657504662476706228488963050624237925264637037443743420726546943172034462418496462733890150634375585015992706420816921929923292212962518982777036505434612350599959230814020917541977106881313780549589956811150103989180957164279815241634357752421284735869226990650427777289976798848152706797168632154197115581440044196468807439504746060768260006327697776369180191385190331496363525241000982934748571767295476983975986645393865596436547870359931813745208981796927715258048878124581855089934859559794607362992210383098086282612595088959322544934677744063128256172908380249135100590264244547099047104688265504673007163159700218124730184339839857312128270468917164270703093139778382495055015358699303198099995776021458369490465271025844584254282031240318815382181729317314356212152452182299830154983559727055500674625580905837996986309316486372192800108024967359813157433344192100591761745512875621703645097680298795706970533667435774796046148050637263433740530508186618972875460667853011193506153467627323131579987214717763875395339123290930293689679253117805356670233216214000049049362303166353032351683723218494887692026153361134301642820710435985589986741326728260828008237021939911619599324084044500492737695727789516766998495334312139384603061702604472195675838815396228717804440366124754064995563337753204186194312161988611192551828633227862614331058265657997257817934439196726114469710199971913287415569781446164104148370258866938770573926386140820177114252560831931167555580312115716099515593405216491426044736960507656221295267373188981644567892867985124733704298890342761270805631044255079400026701455216697216609723644150874632078218694909966540177096908602124918114306153229393933738050926653936877520510117426475621811283278879733124398592281579236263324131174076675469429245152584046802724150460843354539817262224998897409785016560108827103702803190702709337290589827386137851904107881010681036438582601803507385301460753390425863217018404026244403492449699857386818377285220229793198076354837167904103582543368244523292174326806035855696603086534298605772544792025014231382929747975718907490708261284156275379248946864817187982558442560782473972055818827557628882513159585309063134080009021921229325930319903641257610167348183501791454361766637424643596246018822237920514868559637180517722853860017977987253018211415284490880616666960293404449745745788803247676690628474145939811822557086565899602046406776938571771071020256307522195370322733993317115096830488505563349442765175029591229506816753121930030372349181850015399585199230427987603313957961237457302981463704017610533588179189935567668723198650049796411047405989165621041110586812989972471716245824476986259100887814706958246438643979344444497676674708923786034308008216107576062276541209052836554232568142285516696300345345958005105986281935088757979227966705605777354348958333136651976718348924513507794368841227826417124178936834241298568066531278797177666296458618177383624074643224860689746081734281950613739417618759966526040400249289907412598709777767526022422345151173116430181271330609121370413481399191805002885833829492015443433727159623402792489141454385602325773714085147307600394213224921918269394529107473696287128455194179581774620149659664041486940951925004330015648424596705833530868148340414828216389253298704258212650693156667235472393387918552145962465785138063429802387435402990392485335828144110015810731475357873648871789482416450797897111342068609333681633864338115845856896344441572014296106257522873991191653921415534221881544406145206776631142473831612820948218202300393536179988419690779071478342559428318595979903410561306897514296851200160004717775570392986760104495991849509432060784628320799506191089652414973883207410472753464423560515680746722575200081060548145620064853600318229503350558544631969062016195258954218490229844865986954326607798891184911184872990220388937292424323802415927223696055086419724712306517450094368238413048338135535722503470097880981288486279964261302537593781292960382900688327459834556721006264275256299110261929311893677952238668468218832497114471085079883154054841396790854041028811984421250482803986029293534741891242321523846648074886183230679480604477783190311253705504216949528775426567087194278372364152140777702927424088035409460720076501013294887178259864534264908432078968181813009954593321487955060968338340981975392983004512947464612065797516306113566894709039277329079847626446225040750012736226692672614821292116337777979066530177699588116843108420848901909739348808919471038493080369870588404622738176739549215419860593286323820218286763527087836514634928739452578570925577336613545447087009389848144331116859061221252846667994013452339300406384244692890684403993040433524398984179209098734914815985725735300714628893786513527322062120077256582776992169932562210999568938989966188735115861511875861626518155466709565630121100540026732751652150802037497258917726485692424762236920587373570298929523970270707015289154262068469405806278057171884091730986120479816354284964911637138502966067672423805106477419649423937985959216305979852532425963389904338559995808146644804564461129978808888130011823198909977282534585823355611717067991675564632508220896602059733059622649378860646445524742640783132668348406089872290629791901043294976669384945608646100118347757106051998604414886026589821044696062755872597128727112267866736776362587195173597428349688677739016094463931093577214243558447672809725853116459419673054191475156159440246956664100915875958773716062401817642174549880231012753791777825624750234746741642548784801289009652922395465095629427456747961123181570958045113042486549685639215447365265473923829689888544312630281697062919440561939446520241614570789656349556511870042688736437185826699063453208462745991899778106555961859511957682553801225218485795219769806706784283746341605882060342155075198320282275618446415555384915143099393284580773973958975279083797411964523860418472109953002028662660864051153877882298226866216698308324107521747078496612027640912933814780033554848548065254478102239877021468376226182912829534942425345778785026977036233118005003677240293020427377564506337582181178408960027409086053104778012631885809127514077300680054800334109263000044817631846412366051892410462433627428919357644725822740448168795528314379260796759048404099003731938380433748257651106173637718547506644844015551365978128617112725548220869481714331681723551856340359738876339955842834030221375110347714207240930389663163508457097420610146466681824523302825218877800587036246968573687238373019621933053367364754725578654117597637017427875390759721132617592363223527236624153813260871008276424211063122448030751159775120444370250757532527883071054047892196618638956645068078953594306010490917097264514820663228817355499047641713820135611021275252117767508861482590043780698611238931769021618798816761903670042059671471003989641728616255193809183276482143122562507025854801024773700596094796863615110190124934673438678106854213238011380818791855519827727757720482448275191492370379691214270951400176844338090019965767385033636765147094266166568608079550392106420353518235061122818833320275817409887389278230573676994298868477377728852588492383073671358935198076067549835450237886275923669489206714202899586048682499697827287428695169562897123729127255591070322405168347926962105540228736513539675800716408568351591693449786775912099521569558130235614472576938642646270974826941442511044085743065242970734276222199379969148812828969546729952441256392608038738431795274761485310606099386895679090283200856976517675566035524551423409271690211811100013270656642681173811122574343180495350667752825863146251642006069434111443655914406186207060852385695335850618101565548073473872888519238026225200162236126554828368152552151606141115536349019261483251203784135086302888920826478848093139245873667771755971193991173852543091288878654175012470389955502638186831905556470312230871236506474487692126065080829486391080700332079794048121747850397194493503399348820553478246407607988688292180289017927403040384835897754078799231847373185479710483792218638463202397554812137902838831953940716329025430422185301404721437778803797903006148824211187385874146142838130913099486243315733484666616432717835372601502242219028387317829734163847900544473185768450943847436531548848948296447201922973618753977266444142132098953304632073806534643325193271149073954899631082637540265001241432079785609039776508184230254662545813804886434275377030210869808855839475348986593341939673634771279177049501633082767676687785954909034917927981853617859219430529614078254810233111631513745246208701767802528909480887229308323795663614489372379345166744285353644154080293348725258342180330395536333389522257898796100920976275998791491625432204678109089614198069799678297032242312525845571280668174291575493127494029736194005135994950518480038057684711300046700001947306151817970988678552189783515363635457765180268340907784200834966591300586698526705877067559667691882420959606850073913507319744175542414984998643176955301293521116239885962369744212532512034966427310117343379857409876937505991279840661526796113139795589827994895454518171762550438283214725594817202123687527612731879574679752293861911020904632026416233683292717414466407408743708375588961681147574262487065318866351151330487165073593464432379386086965839570777904243364473658667332217933180971351886659739049001711687639689895265869982715554115486565413736845485419168253858220044033210185096979464401410286382118894641726299191576436715287753766517613062060714600770202850653460484658888697071217814567304705119997388386059783377302631829626448673346601487430715930100815473685522596594463395871092368780695988865590035546732757736870772460001444831816697728426114040536246831107427858301939780300338383683465799520918336056250135735085424948335855723624811281155024536768603859479640312572224094485356968529289900964864703416190783291788159266680609591557299983005011478460604729102903867896613331727087293336837049852304967816315717404122230970187606899386251472454072055999017095605224442338711622709646219331985919189150637773667485596934373673870660974167559952614969637075299280640365788570898049741950939312542147499114421263041073815127660860453457691897653028164495187398858654453560303884745260155173371698995892677889424924034932523924620517516688172390807220685087874581109948241899857179363837779158756050205306898483057442256031052921931144607261889139115828402914602315089969595845184819198351815160900738826062085842127528880292528696068830348548743017910253438941287595030160021797372936483164982550049735896928467501133572397692271338677053433130819622215799823787479886309263222851461734546484644081403638716497665678267733520748137119100064616531473866293545061429375033761006719190060148631173822956634427953936784173372040827383633364001228038831600821903403497445640892781867651821867911452917874266071864996207753754298888353820084662239679118563938851491650008972988349897041758963267580351663566965844683598840588544920886575186617056546549869852446853421986483126940367056706339414818120451180228516580424383581098843009309916953198308824905248290149633480466484130950525136654253199780940067774053518034690044654799671333034179039872761927894167113974749198237549965343616005348037633257904014025388078219928998216131447409489297548734085235266917191646143925086261120841597628837655741472174352390172438919328577629137895399612869325367966729042542492602863477988828330720128555703210070271381067497240537868363842651103334905489735558031951097008221451638333604948984554499160360333470282521616383503502808494541585920170100457096468579493851655074520926131380092600138722471117077024833334305391566082690841765666734864532016874066869891793504462015809088417116375347561121487794869874255023994184367200816670894505703379243759289728930791899587754942471762849034876811011359784806104668641772637268408914995134889144597502787463876390293212646441038407719895042135585926854369380079423792259247011511519173321426072947461171658122157884804844169808205964651289515380744339164058426145544120191421939606546282601673537466402027196779822891010880619242078789481240725101321338626971109756025115180722834758941856373074140724837305014057785603501765129399830087272837262225969383287804326901126528584049065137763408830896531842919479150842992716708129828350137153249009023911032016163477148903246475492352378388058033249341855170649839362427748053714579997597290922518673702302948870939076594516383669422952465756845268829195968629100251439326363663254265705258944422021784610857809898253305868975535389754252435142245071796883377399024043267398090214703449629617928182891217598891960850815957947059307323804558460733942625329560819705789838213861343632217564081002744245606658859922616764228360608555707174358003173281428139685614184006967946342047186885083204598299711642263884761945369074238860882945652511983428801303009641100913267076572044345204950665262771286022237246834537019384282866990853165873657368206872921513184572141413984122534719999748760275171219400743699450213956365228454087552359493723083351802343938361622399944501514426276166159597816800668393558983428406606628081741842322396249521180000555556454152898746666573879155534442959372397510530883079217482260856491159792260657760174881432268454343959254371513542264749154400292481912279841100250228847854755857043563426585398261633152144111278330157916857428792700722122652136205886818670996062248094818886636241693833975969587906491907199575464358287886109830585837921620145314668178840854137845108743260901281024655021242929006496960036420729149973651096211030464044242422902931390173755199398654993250521407866931849020978321377831296536806575760431518314187691355333274307337336524316569138445238609263874300800397024484870830923886468498035210294742446272571408519251734450187440018380262063893659934480036462424188310497485673751334748126620688497781552397870287999154875486142543517223422002427529053694924078608885291309614650816135077611854889936543489653066996225119103163483554112603109826322630191547575245104427846573045610031954242730585683243048756843667795509820766467300256051745873736588860904258331396905519524811624797711367412140405500335594171324845805068681001738078582162794062610201968385418098736015775374047380494684741987027899415200260820048405071466596715504002455204285885188447640543461418065156160857206158195054263989385562034520379897601067071105145722055208092397451003082981377609718049255795780997120487283988121279016296495044291571656326142921341759260194438289847008081901341819197477226632141072817790066768036110461263206013868117198018757733596986322657981516554088980078144559922059628548682218809974320996794123710825170143910940140515129106184093807079795587470292975144248929447210928262025091474262956465171868856424730741275024071564531792835235374192503546608942053932837707739956121741209327142159539573589738204050742837222495981107562525235374615403611017240875652373543354579139566692157664889731864208345961816809207813153164498796703593510421401409532353933438257498037236203458336712827202157475079610192288580151647683403211203230680384561365134525842737891669958599220133218493906695857112075188566573509344750384350031283868310191683428862907540069680229336422329321020065627686662770179533714676454486336368045791175275214731279481000459882950003280341983619687255682401634424681754910642848674617621479396599559709174039074329635376489093676729499488442885320020469759270260412824137487620362610982073679604858537537643812197078310568340068551407764867082324819925926185008733553722103356633690832049536953931318806954674544873955464478104547536544196134699246708939455483957069577982043977114230214441587807761150133576708388073772130602362535200342662882194514026029855629497704213928338982764712087332752662589995595946421569885419052491249658955529311673000415858321710207944596535689985992088672462206183507089544254341573202856127658160705945233986020460843275079405059956611270057640207843390368553950764032031434033686503670697209971310499565310607881704541020180771005737871470693145812254118458803367682394701332061345001771054357069074332917529147070442798610249406061565740202282668452697569751462359458760656386019179223356817062403439425465528876704927448877035155128837568833784892726046922564751781287100976376221875054279853510410977549643049589932999372470000219517083949576777829306829287881155431152340199721306351391516254812459870802892838113506542668183604926714416218826628281037297309552748801425638549902341346458563288076535124907140119242296466184225394848126956132252451106145058512019156389549568319813912830914036828185967658537978161867739040464353908630596127102621505307240593940088209500507315740153161342256969231146225639498394684059564220230552952885053442527012760598017624126004568111358133861399992643652883785523330350669809243455824988635939715053482821195822904393555205183784923768201186633634971033144580851916958743588685095009726208598595574782045567704546493536547182300925260542450837783129464018946939115952341850424911300291285694968116967756772910024623016475103755035047655990481445739260614592847724450401835105089199378559210270729226805739764897857016958685679967827691336182579040447583361192552802989454581477152581083483564300924252638008022383416148292780312160697131582689078137806590993790912953093845531547384426889511864908984950574103282527628940587558910450488147252590783768306425891537014675563931418100934574008090203510952530964134274010588756210241802272725970756045888625747771915124026647040990285163836782566816303130880576040768991239900598143708021589655783159579420767461053711475044120076202258962378450838650041567722496242922424336016263837387740558673617762446634358593150682965166164497565434051600474487096168837239468271115690172639816023132504189954780625675973259144007151166107207471148723748020042644865303533150587004084163795639037327843611163703721539101530438617748804135344013141070045174183649063269493228729412744901583618780468151126155475446375003869891309909201513513292584126447006688851821314543886217794016915691294281533869888056285489026783317248321915062449017037187194795147099269746800199421765479003297426547753551892659609101026744045612567007627578526116449712823082131130359141438693733070095792760128288936731398261424359286543714865165825771968082551885633400458686318730323760351007064089619530475585221909736733593479888018671853247550776459457349070600794404334263245762613340362626064321615816214665744604756424863565011838573417156955007965706049512504309676284076112585693785928362132806365387346364784097102708932886083970550336516503926472194218364067754421988141983888031141650069408530166570502717445627470445308023487757380814035111153187740466123519786521284403801174734704593480119375005680489151300982992366205034486556616933935287838597946581339645690881957649395030933613202558631505171694922595693353085106981094043948848288666716583999198107368777575639064911262025398592364032040105215940610600427149569760325398472606412159235933781911380777345090432700440446422674373998064439326364940431335517097498992199469882339280610549853337201304396334791366328739572888302713195318794632361876701553433862762331709585640418882278698390229599941488235388073189297927616910223924525715398702833426270847864325204556562420959661123062112979968460051717683032082039416678248548864224052611966982181724922759370730851281748574853432110083823548355841388495753205527395904687492388686931530395422619772714482699169673780142541515883629476616917238384405294013221787403374400010634339350773909949471898203698964208384218980135277376286851373776625039123821389099026173325996715499171747797213653934538169027102388989984587719794316045828016686295420032080050062083187267603249203554001242321407082889459793738647396333929975951246077776265737736898577728438011400098685814138389226964469125989851696044886744029052255523658656361450187570603931634788963912624952427439255433201083536415406375598629728385275739923392694423980066182079576298280150463853719265525887886087043293880879791665252304768334791349710396012208443011237998350197874181240334204588116895790509308628748596944924224526145842212568055732121954100693813727025474960674837125285489984071992892812808719372022147672004673177842287340064811696483593907911332521470571960349188572058740701945468187974543877413105172848389322347712807340648860404567635698833702021492901570023768093191172782731355933675896256795205462379063327296838469444442121795915213767907686528639812558606950752265203023324178213493665672618023287455743825030113774154775517222186316110070016968457780124209514273182232451767747155855325581007210009575515280226984241369516611281472105630058522555195263772771844333006385836265953490470695678263260716073997419919010699340765232087056460064358350761713269865453976698906274904805541740661193707652766131183892973917359016268548087181329811475553272988137437938926055541801360568401422019517958987127400885303853911524577839556298514672722930677800297647697990464158976327914939364837872734429989426874411525367684545577442262251070058347325792321180254788122039183340920712498550408022851451991456371965477028699481263205278217109157982297854210835938735348435524134864073589774549608663455207461404336394897836519380353207944557270819980910606816420494308564278259412680551161981625880070890942101703787342951818738583621754387308232491410403419996187419419160447235053621570722160315655987901064722724495406859791830280585084384445478260140995143293255985090617419787326017926226417288712417863783867655108313392250893023880101157150715090439559062268512462005241242230142182774248158884148111264767578068113953768813588461901500622938735389731653949249409332629310916978212742611004800817660092494106753957590550298239406223865137987835798507313466049326000637769512920747232096080138864048281087825383730878002084472679424720629841457314387185836598031393927910914180971298216145550692157258662628099394750405655034298440744911936487948943670038660986195076150610825785937879874093072367442913638362834651234522191423971521403878767578587373545432991255898938398835013186999090270206008651945040380718388400519327516420191332264566168431827655830663285220704124459998921536268294444128955880042827949858891046438424399944698866781813984364702872009713019617093499422339973523688047161273904831458880345503753875854262941591768677718979338886157331249769474636265511547359404758824512594951565071915314987634675873010219566421377582313578765228043703577652728440137646637361657500046261423806210190698241591329611390863825746933267658494845908821683937406106927970925833032462914149201455653059373872349344648382739237227014913261494502667199199682666212023481970113479943756862523380243358066909696849282449989418528290036716047782082227120866380784324856638611831256182578093943214482824861027831186686554623800305927018408744127805735450068767465407239187763765474397281156102311514140191426931594915540242541763101250099276557391975814620839053097174186668706641125565814274244652743927663599617500703216820248036987466492328645285531567996748543651991288379511664885442836642392922417257704186950134744872457411814179246084820160926917452272475228612969224519264024601300634401855589080184656205292289455723585888452272052248948698908052675791976104222364845527927247262489953466311889776984893177965855764365173392114244388830756540280483325174061399358509980559251137904419087129307148045014193038510341721506938379274083265929466081090326804685903492270344501204811765067727486027981194075939062454092663113919017382735718360609205668835952582021185438814303345227218700677203790756234292713881796988277460102514579115429046865972196164292544816702918687208654319338747355729260152363679804182223981750778595274842235252927132253781110697420806934611456586099907692873970464183132947905360976012418496272319821096042804720517554077491497131209019561379755513319651281745731372532673829387859358088433572961410007789656595259503683049505584661749119359436467960322992067421902868443696789932195849296253886680068510708567758631022650910483951029579279545719896820386098935434871400872142337216005984812652199831838770744916457325272909260974080824327729590247927308070566289844136463678587614971278088625328813450405999238003069319280251951194599699594787792599241313327872589108055007266353553378995651120802285607083289750136550807162079218074285091904245327093261980984358899872596991528358520395978438119851974389398816063854392273206985333325592487792410814881010068690660776783659741440848396592409316153421658869302936499506664103698087150465954207922564306832137166956873685563299615237339520455059068621545482214814630994559777404856772603298152875221882908859227255467720760554451590087072796281951496287766592681499021174808603750382769091329596457557315321400594059609542804752571214996133138184045277753082557912140479807685702408784707549139532654563572938113871842928639031405136966143027422764961553100397878907541350600659853826823682073527913364141181054181886546534572674195546921128383878830464345291929782709058017413158207100448227495651091173149795497383074964630353688417083417910093490191190837129322770011558405372967841111181274734099782292620124970899737171302529289690000560437932704226194105275624623204415411679002094121178566396798372155484767975938286769458742726040195753961509683490962142070291457183253562431224971623520746925335326326519059323233845755042686666633880362852376647309862627994150448582868685272189904340018193361775615859627726370456488580114362751726457948630989505342584448439025332510267568307191839798186629563111186997432255730128384281727414382015862006323985097203911376335422952161490583589535645220231101332556909743934252888613553869338495802771840214844830247629007408920706031728458047800975538105423330298203281539769123947395788970032019753414362449197783474267131997873849689378437716407974660021632150096741070205767490461848064820980416033754461304994741655253773723308596408191087216212989325066626179167148728616575553618202645965510222467719595098266847893070542836805255975376466770071022484956650022698904600165836354223763705495504096150119492982199966718278624366284975428451415425058432080883972920454901217204096929849916758792808338142859817885710224838171042201708573002317540639906306054865629770006282509989804318307027916017325252548374003526442769423143845711271635098487580161047601754666311637855058514816317011852181667667662124646224977453657062386993828985191533382895343257322321784312606844822925250197462264314880170617768338460796537577162681557772200713644938226137603270966210379568081723240312225727699130888886232733155164697086957538299236352477140686986809051868589764997464476963547843643381854139839576157991689040162119714210081854009024946787361732945237800064135345278360010118113581513686878070419552387119823366589673395425415578533935628228885570112440908900858878602761815581691941954165994810232081722593909107973415330859559544143554076045556659891320807738611777836599238323940260294835074536327544085180887113773328779702724899843219504740341953413165625998896605818447006706565288916350397745033936782809321837585659713369806701387355842707015741681907274578176104033323510106634869161818342185754712408195091461327214514411965328083961849128636734854487381953336531995494339638143456846874742098150478712494418998863360444508643956889249931247286389871401930783451308736244081616622719324579313980074390610884548693011947412989577293470413829277244054229442922672838245981739852557813721973788639294811007097834894818464464084664888655269546417389363936639078980485142616712930344048231498829527140750788654536267188912087486635987733462457206391922372959221066320755889019795313647542532593837311002293668702568271718313077229062605840932017781890186455512897735734470504385654012687614074796591364192407113147177420063407471816212064143505111674649152626337123067618716173976154266420835418957681951258679369984222871738454351705413536700519664073175743339120345213147571163404181262865235781551629696704733375461257366195464696999689235775908686867414426126731053335909167258041344964151537748935615015450210060683818791286592063738076893581889247425733239595365592919425586181076083913902048448077852207766548421493446778532522262542335489978014292032900165532115306947651861232057080712099870438676801731535416619467954671484375582288415226142489260368954171747364808851841318951940289974734893119412328871143275814498865647771694054952467042641955315674614806200172325884896574806627310404816248700280798138088829751921013007029979040050187135478103549236481041620373247609426267637894229267986155248360074353526413774383264301800282898486465356576418934226788931730490266558246133186868629939837874944741084645640877436289909654819594908078631064441768657320118026666445777410798064744726799109980918515168216321099243862114189833600875723418965164467722564129034124817415332780045319873183316903351675675649617897878477883361362256379913056433661925441544707240131387750666678027081809183418967368585577327764667558731323739436933731703428285182231604246783777370502442242977244084807126280679069224877870409547108379385647773300815703531820622525143654806022376862188244779806388139642930885165152688435110118618684536841995683490648245436757888619088785783210515134653837420604931620161186841590234111556976810050112797599109974642678416657636921606181573412974667668069433099768987271331754856598161214690165284563365774294706217957484844449563993548831995568478447214409054748618836552607902367380141606427598051771954371574133605725152193878448727131056327933458272186657722271308074884232445597311292268329791375214541240462515345517930793468764462494877477152332332091966060962960435486580597324799637868723966769003278077991073514957841135203626556527515876012643659184789926303035051755836933215073366456118010648860791535259157155781559514736478005158338565657243634405543100990834193794911099852434653424284901105273746838364610430677585357711689463095856865542279244456845698723446505839614374835122412208429971266737610861878968441535501711473063023809515977034991277983011174004149413257290823404106088005327972785790055592135397801996380055557909613062035422344316978905767502947546485384250696476262235437687103374067195847689425314277642773999262785406459484397993266714535935758681825911748942583938132824334480180646033359205574514523520925831731543899420299372164443700619979982479502061804741214510516243238939739420766318458672130710166468588681587553453166710302143238529714678829069641642203406031303371385120395797007111279065845168660494943436265898026845081731274110357267577445977033371162057221957042754491804540833972738427488721099330658232304072309648385595596985201674592609751030003728467821266019112084062209393157665688685612740894329862112509537985721339353427119900960272714123064579592550067852483371673629766435643054474261551076652404651373420405447717800430607470691267650553297750031834113388526660424537233872877126994981260892120291888244713107561487988504922985827062747575619858713502145524234740378430239203987037817081494473835574753488584338663514440494987970258203806528233316422101190731255689120879965787433044236892974370369015835048167182020486113903581525935416775097766970362672476424937803981450838749368475033873428675662991143162124689550127485615859433656127737529994730637234925047957065947056478476809531489705202239518054283593031983893035437823128163253174628113958652294848341058523906698947487178509291065090637483304069570218921333955670538599765352028189711905623000210397977760875572179887903331291273473756128520926020511681677997221057176104793751420286355598659673536088432072475051046131422725202536373607913014369827760791391870660607919309515032692536073494808943564874171309134100861118034238096931807648874788119632257664953705373587648609830369270751875952835807715194293900587688938968125705395315010253499727416648807933296667866525992656222406179767736669446820283926129707013778142251638344472827799201529760888014009031086562702132037195589264998759013972010649783745100050236328260273868818957432904512290740837491430322260299183924417865689241452260802694960115973249781353341364833552582454900709836074448206986406062715406342305610958120944397017195608105794583454906973469364136578693969626815655679224137748537911681042792455853346934921111978817690497640238921207026113180376723458780266396633952926123008363623913646307079645627790173480227705167455275808643307540621097626151205069787422247478574117135784998259111621277246590874824949840105439985198249588686430936591416204123967276600625084343909345565512678229908034715217728896504402604243938477307932499817350232386225838527712709251601021497838859443810511636437218237987265050013711567280901612121215857509195003957094136119146905704327679242921268566597680007523489441871919358753777279882827625816686268838986565785919572714832891653741899790501046434769751927354650734025796629857804903076379701297856950195704437750745928115940730858025124089405785058369289372255674897099357179748945537382214477544238679642853367078036206618539761028328321722307008889900438722501483693334661546486098337549626983259869751534451349613289071769824234695987483895559927973369584396719866568880823311007410211344992723379059586093866346925208099909135265313366620617032828102930438629430628483725766590392173888041071023084433790121463999581563527421193410714718290019580675395266297199171552826161509757556631584681284705329980449363749111367642861973738706019975222123000601894020908854906631783521586637486264173668227890410671803955902547696022790148621307775304540395155571122118386458142158088962981620577802645623850355073858937508121380869574095211547866395098714086492416414483304282258405004548158099476828295176695191351548974354081924681301993335948790660611248220941190233211305900502775779592635135458384168845886577359192123853608868566476765767064969185635390272854834487195863690649839193409490028423049221451874761955256094336092478446510252439508844442636704399860402504628536719051886892662478674267951609014953219220210858479739760497146162771091325150781804194407823180517758243720824424406659285689277676431437986942473081443982625240818353139858234532579552166499989164473430953534555996219724379780156411572761146190048648090684836232286945564509778007929128971724384349333489301663963418847456587109143141473362838089052926348218557527278940126689139981420526073681384729328182753338745666331279443641542169296481503483006861693806305969822723486547453310631648905564503887312540389111329594642803318477358006915003445423880978636356164756144115027971231637482405940475297510967314028685465471005091027674286444213284718686454376602928438396172652027008609374350779811414337471143549642667427198422832961669229063706686461789852722335547563778278408886894121774713701943070521834836013755302873119872623805588657841978942551828694518924968617684644439302149145277018664478492341594984650833476685155622769472832861764664066067797767872505250259958874507571037211417895681316395568808512817624814839289664254789695884889780015793173289574908996259552466173556968359215927878358776337212807583360861254643107768609401244348942723322944063932840389553747308791126392667245057232612993892051041435123620578077662640886054891731318336198770781913461664563729304226764984310998870581432755971555298618415021190334820097656951510099054498366664532931918310924231070036499886705967423726853685010978758913563056918460541339328563317368278097542617468023680077597986649250083467663029525127704691330896325370844360442700843941863526756971975962120722895633375510725010731030931844399007274261776792185401828276384245850712853180146704958122980808346770792611075045731348222656880818907710949060708019630489663772578357452146298218675256273734969177143285656260206169571781181007537649500550337710921676540517756858082257272776944059701936213121516288318512956566023457946529531621088457608089126383823162696151553865062469738883460049731901806895258552249283666739122867651696902705069633282734764242431798661007432005150752501624689206161532433853269895147011484325076265720967138841616504173239902033767781714889054184098918716578498281821691661346679993427431375194215100883241032857078684432356457885040830340099145040904240224477314149544737897672102572137887566552102881899191440350885862027320686125029764505109344214888703300618101941034309217139820507342913184960397489233730987043826348513094640739755905291140132003374951450971645880288231764673534385877346811709725303891471286694060226343529576846205857769080567804476123340891141247410520007034816983335082935803332409671264216938213793004485993231298773784573475414280979859206199644877107004551554905089105611535620027558378525495129783420343341578696830216660702571877859681260009922459828857274164040928295827720194177822213823046275901417126371588784999304793305147839032762509889106553174068870789506780860639491659062578491194077445049855260850373100955482859810970314183523617351649769772370635306683605942800475225240305641764500627544160420337894091742782241563799128367681860426754083916384059409374108992484950358635029488371898879017513694634802161236309041239443648579165751574899434758793204806396618146444527753463883161302052205860154892136458001049712937012109700220951187463804950027017517182093083178865732594390604305896068810819013703212858523328402221122859094704240237728218719057868533780127699510261209792200912492702639671867297817025555129864302842925900134919456225485283225225521149081290839424161491998914577999997296402536649483187921686951662980008969630171662958526211810672170558164802898592063674481779073506097153836472841499566950472779595515676277577569988613055826879460698585550878237292961790833814586285229718367081209790598104815959864333298838532316095071573204090350730446754741374111080431490405519518307064569262303353938262996957788923255375510838587845088301630014918966999493127363645436870612616899151357047043900971410263299033267045237233807058115421205508305125836979447608179246162566452417842355863232913352752497066967884525016000843102285465259399975466822869480231772771022564599630101183747116046281834050446691718484527771037900426159466454452684527348604193877177957287902791163504947927736615567796728302390237115646308357967799606884191530295225527159911143150513529703569564817023409856928631189151349412318456201727723676958134115589617638829802355836828067230054939480246184589747917327664812011987477281501229716512715610611850988595950260753961965119986851994901800493700395901150931534676576733479371668234758127774170926890171307480491054262101566345506980927491789794078810549509393652522975127005383965483257188429071141684381151244076860040982780290151020762083784206242294986463443371452133149684910035596752151290273590136590377961227798137007520482396902828886521843336192913757543464263327236281713108735486783402864916774663899242004639376318867578537244702542146344967125875260866934494878752133534395730710127918632317599174422269897282913779702315125969545874512983568634847898911440524511154308056998862211978084043956955389178445618867929717273166521944569355310668614025029983768319731693515005516708589723139979207181025741799341180088444998573171494231593315025170967778912754260994226083156799440433179341533956632930699191459152124560859016028749972032966502268882959971570214657701154318744222414385129891971711004901309634455143965149233566204116881603291501215710340272457915946397745545101167250457392045028754121878345020761394020898571557503096104301875937014534506030513284783422518003294720562404756341247577746429721535753870158010385156596571922163638797400080709035958864562458450516467800241297312511373379913378203235826583363456389577868300155843159038096317623891379844477293526100038546985792622347279928941004209861535336442634151652239799868208533350444297017148441308707450278286854764655199112858651381267638523797115794045464891509111292841042416952413498524536135457888851119765927067838690371544352922506735890007632424064794505020782497092184709394271152113464759883523168795652637908959791267571418957386193796719637792438063417137368215409677764727504768099848612169183790474316694857322779991572044603200146268683414336873352458892975165749631303733472324820433505007259397465549862104486588481919912754952650171320764065929531288564141602000492506922215685135038104137713821547841824855424375298003795697068698962505877302772763544903545417929367402861028169866473945828655002666377342896856635906464551957342524488452066908922884012333738821304302259601219621802405642259704454341667426564776933235095130421093351506065314610310738049307318180427224912657814745972874550512209461836817633524914398656590066193059601166200673972125586907354501750260675368814497576149577767098106095604927074087077480771960719052450939464450544016520172440474009854988687365165814356965667401459738006390940858766139541178118592880010137991599992153322412428650410573085286416638073952111784669689480461931014508937037561001189172935663324360562685080886476247997747702624466441800699472345057369434360856133718091846693387763683491104969378529826222396409252175210878666886420440373437279009895390725813157286954133361728822384070589326901553662569354035114292738078890138255756112697143012012862863868215380994299148306319916767248628527336858585077021220571556039478096261371290052808991138972017464650666268017303625948196290542204565652776504579341278526795141321983591311904563896566203697566243632775220686292877489254805576315985794142224487286229740905070466923848366541088617898621018932609600082406483686293895980361570137949998357773392415941389569006922016798652462486892572850238372488442684202058277040093870123542850488637791976827112065632213789410875817447611355405631091375004557517202613070812370272871960460826810982343349559680647317232374984662562882698375340713284794333917152854519539432562037601398516571919232268323278372524584316702882170184416152203327775160307437614292440684489968841876249939993871562960999276845128890081855953806073321488394652470418378318098439975967795339911924972790737213403512982641477286502070958648659850941643659602466772821012990654926612555243519598306729937337727795390314072935878394648870943223950369824251784210125284147203883214920676501170196648814998835845733720504178908113815481200936852500156008672681163680027904656856886218581392045243846176172647322000964932919079316400662677336701140699670493124474831410620259291143953753037465085509475590871266345894272237182657637790309889890230434682782235617912632743429696315395069498480968292263201410816561142265594559664740954107196038005663595178970625469403952389645038371817586779153356420466141129460553966509266619894895511544928697706912241873412482823405866776283337408285499806500956409957729304122929309566434055333113911108427502549139846478795486533804680683074939794226259446895230442985958604826920474472686998806229324140882370874375993470397055085895604530705329736954168497051984821941745231093887485540757263765209819809522114542025205876912377103284238253647552546915193359755793302328728654659009815613246751481585503362455450045208266288807668943328312274300164284424335521651480203400920023904788115372781364517693985906385417416493866633758883807806464071364552847177071011211794704827096840021710945004746390353014949061048367464328081474037066212094850325821083023492388920504923222002611575103703182157500860214288648005404597262792520900332249646946990754470886122765142131836983388383909696496042400479654785940243848919317170098061036875753651748130959003519629051704305323839335411774966362756469038911267669265998850001921317340900744144202575686997975490322044105878738351678845854392661723733273907696878877864560304791611112057641321753511107670049337137483473108139066656793503927993931058663198931467469034464239002396487835646335350121595308745206217362777570126122770587039500243906294045152698856266072343631638883505552894378570134763234245957215319857287129325832142834555437088591488728712919383201420389348243238219103831971957344397192944003376991708758133848424611757670549264021622046514958882570747750522876251952474152488168847593244135928092596563377301379118183401631373790419563551437937946788252684935807201930937739989455879943568503557920030110161904173086000430746249783134204980262748960583296643686635098996711132113000681297365865256697360282718038573461239332909723069767255424153235884295333762109040054590642136260611811140523872871957894009449131758453698291166731727662960672505633535030683026383640910497273786534555617123819642326010326060382157974218739002020625359027733279755747075179335536372028760893834038213801349283102005540016293949100325495242214944009187391287967950793876761148133400147186873465610681632840627023448807453783713068115594667311524972320791451594190322830364389149772302100527427161591486380479216664756942533013549997592275607478399815050279212346701455808130623609484520867223343387891805831346775491623285617582845026619945811563846163699991402183627924455377709229786558769839863504459029619143234335439797312687090536332496828028974579275506235396967237436879415128112421373723020735378325412464634141860442340064115136146611762507652291568442180058004617460800565509961612865509067785585334765241495910897577841860196258388114392678992030739215459792306741848572181016323366417641127555706291561131087392334142068150962760005853718682212207551668564448705237828419861027631105304306715490166025824909568716708188322807148898647819690282661488950747358870548362809066112988613371406089531026336952615734897744000066137694691763259670673550887890400825054475665320525218387654611366652064178329745811561507143835785026400627121891713534718545858611757807550493207497906296999857525563495906342735522467356174214084025925781363947847711404197457164674007114564613881654110004991971033489751586732922676821611777787531361098928619611620427217850680564930847797808515868254213661281957793958789525898135034800699910182180065966501699034670121605315892382414652428861692773908244579075960483131549016904110130035205842924474925253336494167592558509334926684329508535217053913545328143687568258398415008614437609493452638748052812585468782603046461769045417520292513006599781318080595191234144509216747676654649109020501183034810477978671771814343085862411037800826254617735930830170784853813243892780674211775890383358206972268943306492880267277423575158560841254584667012501831220941889772823201612898632223447215987058256380714202443391372305714415543390954645219997472864008503186880401459269955654725158982688443656993857514372512105374247995426715789701172188556848044070005501052212340833533531297923060028596469566869108063334534746444770801132084525325187059747629667213458630148106994368286471259271804079294876021409012346833121459358350461355023062185994274979478302635283761720249913723620234708741322879272535308444959118395600753889658927631536896221857682196480485545263760597632784356784963467168799274282754990082921157857775752661645667619193115253994778480645132140411340543295803172273351142750872934041145239215554147339151109660967143113243166704955002859738509067049846850714595469229881922111688107234253560647450928125704372700802833190592043901178207979309368255070205239184612932890024233129837543661011896659766888070678736392738840591452142344942495912589210162666889323553357519926770913166295446935503380061532341702362395269583541688956128260128073455501400845790528389066418064969424966123954086782415944308671053711653807700586982937279167906365648389672750254609599885657322710230741103323410324273732113504451445560989206202030431043819938421550105402486906328157344577639418955831543825607371104324488050588107981805146311357946185178452451158040888125219464837200241363016232136594547489665892776097622390829310864285698524806586509710168977163038555380356828861993668194676090136458562662164627521988114608510116754937987411632989761225976317972025703665604356987843101205479800939494825952926734253696622970141234388587753712316440747539567055165184951465944471590759847992374044965800561177511720032232890027545722084825069177241600981723731327173745347846009309760333243951464814516395041659799651139535617585434373486102761384246068002697352195547592010164852961180513962972207647767435679800788725340139812800569056421205914713937644832524251201620558230398220909560237191281026805971883850656704621835423007328099700771265235864718097008428279185515953336091082012375232460761228661884438453814534815368567181011337733605809962006712995845819838054144125357657849084401037133732707228603159326739206866791025247275806030014985127097063457520962251033873462926156752319221273494986316515350086445997272563415410429965230631438105943822692655994455990914086426296696603430907845188862406515934705400302797163958269781103597499705824764122865852375359315817797695926449201814932325552015131737143564243830782006189052642253926195643548844119489505494717572040115058732807317108989546775151222515834274360793001328115832518737622149185690870246209893616455835065284656998501429838738652960620266287136021766779018607849219788592582989105217118268999281281266808706687162714271047237006544001617268820140650499086966121723875280044535514191724672063876053395842787723881500202694750283256556003355952348721035073301168386727542216797869741721705435110793696399487377144379221731104328914805010497482398675614974944581640541601163910497507440360935805116900449938945970006131359901165645348099317007007610925031749034931375296384910854314056640416921946189930657312366459536623540640416332091449066737471537711645093145002626483250718242987227327783963927910653564020706417490604249902983561880541458533760450109410580258789289286647155544191758148056526117190157689407727900401435485353344734784662847172545269955749151104812747935038869412525019118202891469107886544895993641926815383895459361093130041785475597461678375566784648051412478364121860384520591397500571932170139810231808433138088505668742340553311657963614276570076762147576872931077743074541586586245260884699697137579699746242442384929556963366122485281898629895603803971698405987704974814598297566030564642875398651823110512144763878409037550098566196440046710317439783950401002983258953051870152418864676701099083839645411534658840767864458613049385642171121750588717713884131120895436398370530807641459783422631653075763865543682578113445966826724990124149844794844535450056219440279525652891144721532571062050732889196637317687682062976126471751188245393549300071222723223533474420065814220981040970251310299005102636318545894030678951535440403518207001651704446730310366808161908142394911287814064291236439432496311560505882397642864489670837997343296065809361952105176539510083182071505862880445973760182692087163984648724639898556589960817555264241872046982565075150513106834737458992470218217809881771057014513031617234067174605587174103695685881201535679537684478326655933256763450109228311325521129550765769711661304293680036235643486245634068944402978032703773267581138886527543049719013991492177353174045661945169154605111341796299136553555773987142004244740563132546733691277217824267547234154255478685088082985543396269613291360092494216876682970877408020629051362771650747243972558017213936474518178373142123793014102809271552142373024447684651464177544049405127554851367292177151784934222753676351624410738407696266825289806196338330751646978654424167248869754647598420551653870292371322782898162272696099022450033672307470352598071674601650926303398490377047642740580327848916916582059462483735253023910744284814832882410142791778155663495659049558553887216525639231938561697961184900074252931622720811754934280166740752604834231050254157085257780922764933695292775079950724922145539578474782219330070134753659958065296535561916106197721081033358502694797528227620535004908523596522951319750463624072743023616781683813435160605126618943722929707265168324180734356040135625319030607378112960252518869739818443655755137750177986336769985447782433683575875726458243743670294156994242794320190256988782463593704511570273356671915017747728082365015815192434532202995287790039327003469588563405882795971457896924056516635916550754773542534770126991036674499199557917699412166903271990976904038301365433234237916323524353522510631241103508779185426469889081328540308846484757060787555277368121449386350299025083393902740894060840103195960765242391950719855478153414572777535497583829553062332270525498052508789382354176158307030586486538237746407296261970870115554732189358031915048769295580118420769772475097295299989089213249969552479332742154783870941908024839293228161885303366277020661757411842142459953990403843191218069517542954118084661003844254124939498073966734152557344538072675304948433625240516913471576036447478703824056164103254255793880153194321053780838178663326659086485078387015483228447758736635214570100914635095205414220452879233396984420436808215825681925947302308150276123435582909320802049411096494565447660731328917071222486282735258631582735139835047079422112316019077596322075990461813351138318191135143463445859270905459459060047277702102070453279422424444583929056749438780085660078021835205826719104205400971923401482985208212031754852020051248898778064078253459118836189884304914780476647037633173603988808269707884531014260709186941053426551389678203962719875940332727960899023929084746602122868202879865510080315901896845554186135358282249840092197703054460541819057487310263788279694004579523971465717802579742428989988474400277735690779755395437586357131287258338400686085570974830497650354216487767469292993837281621914673790139736081935534604277975305192474568525656021481798753474050695868572501440607646216529726253854260995738780636009753437494837339271868844279537658420838092164248258548482734021144009055217362669928197100829118129736994916509384912721393646998334818535629077599124377749936723515561813054228377426501149656596752265038566664148033844302610810248818666082784758696288793462941192924941001361295976954770087224286132238296839803020138249259588400804126870645538277368590976856480290266621287385583371439188737366620383741884254763720525359828503300446513400144021703657889663012726380550085830883545526202647103022521606808743138812973627247295876455725966091405666448997902760696885748294365873364676852704464547745523066033350134539659237257415905079731861818044363711656199627605365920654986877088854346388477221831247227823798498741777059924626342792761945187918345025780906007121484190531444989801747804390324448213377733207857406420813980274484661786333444317224441970950728287824296887973931928300199268733653355423745993447924408185729112566156804700634852804599315068929144786401644002678147278289542181234726787642743487463482445449643785608495106167525240109693995556949534857700400667929609727560069514832329060616617311058921251377133661136618435745055112273221111090052810396821420757564506312284854504380573688774976350295853711700518849987572008269427435087572662403273603157495965468671233480317873927631587712949562437952375485829508788509575916960577657917895491301818411256070533792812054732958883264249591466030427824658391644314265118252981191800313917062144922044390634055941565338003833515877089366589875732010219408516163645905004866764717149300000206245859533428017520719685317888440418657644874451941113729833020318276195021439989242551096084324320675186489867660577737569601415741641463471012456556644112549255967718976840358324705920084498850622006868502706487303168122000080343735268051793128470549786456640084952877085543691897243106674441729772854860938287637055399829776947256795817814557112189644517512739689416130649607482075548149915853943429636419007710192281051212075185411158663459235392552988153161636014782159057998828581846248891062368847939839942735194550294440856806202999635640211084056797601230601724752453262433985693385397795548631151350522315873067912695299381506269513595832856700414145990019094990244431448602305873917001619356225810161359710462776431130964929391779059592220381159378035911576704397700932273100834536080354819882371253376739954513367483002301532725046240987570848261366217364992854864560732452486454833229686884340628815777354336193829425483853472508646139927997543567525391600799911094587313482927748730167703684822831158261646713606901893040749302956092298106002858794289536697331005322681613785020630892169567736590733470449004938675295197894290569255934364672157738783465284763470391187313554760235190024146267606271608819075091063380839273756440801620094100273983631452010382791887824542636032805301175837510626055725009575504699002112077598670966961457866638968001235447740267566298301290408255957675420383701513077679458618224427717490140288663142067669123847533747244806459618635795703671754448252208476926609046448422074818609709636146396573493304981490307907616703779894574403233091661558196159509495409544828916133967469807738570691798323879299904491138647798590086309207004595814195723948815858338920619335804098846317696848802678699026304702831252751565299958972703519135880862640755975843359209980135332667368387691449477400329102494752841648999127619150769978741882919150343472301058944321721696781729967813791322138213934683869983788411440211327195534994209763188394072835096150309113055878472631305883907608043750879395043356870047906512256896005068513170236889916121544032417369433317605403296508156969719866077883571260744580029539935705942644616445377905846600211158916406387647582861012978157038841181769375672271749636250346543922581660149236407814714324860101815823321878164635449401881743982218087299248380294131559920833419751092956749652001428616625758463144478475368694507206197887077562850827874310894175746352692805428508529909716717217715984980068425054568709755227912061298916098466608394083724284704776846872767440102824647524978089598834620806671568799295586969974093030321480395268798565532633816659798764199054126428058364931035547907460361982704087230731957501754665442925975873920374087266109437768197480406550118171077095828288907126102028106922364475621274680088159897499630156062533627064875342191175560846166192988006745710380623776152221205041504054245661516266761840774873121084599509226250028998883669750407545077814292970762554141164583401504800792539386517722451211072267458380948794137494893005410078605408540249227229940964386224335599634050645331370271479438906677673792854577716843071686428174248662540482314970746793982129256849080221020666157930713880052713023244201700312272495805124409504432549392064504986533955124382780809041383235365296467672959585036955015437146068688570522531893517693347127730712865429110076335459793996614760150965130044968254407196010124037533339281803942062120992510710271783504821154611291912663034494906686084754122258768137408081205027508215596561769272339050302574952562137277671222671006524542301204307112052663885870445531038375041154415782866517450517410795694835928753324961672493726050175017833175470463402928478851716472602794825109628517199053224796565011614286469458394760032190573543001720015242148829788091252681993243398940998115108635492956767406010813544326895725540822062238852880657658042765347018303650168267696076924882271836169379955267590431616155681432478326929612850292826217770997242331046737401064388147147926921097990206480550800997397150271225241350679425284058321335081455484260103322647842370475997374072073105556113818482835966125841875761859614168355568017279230408267934977396173980484564377074510698788649266158661994430297383034735077587374287880188580364213652487297340621779148747054986129967545083014947657470936151923542099608033248820273765176837785050107165177237767536082543995587803534056067581336031158449071112754179690488509142147921418091341102721761940779700756073340901837288684320993859076951262625690378809041593344625836766604978307017496852144192762250014832758938156876195638708810764622914754447083269468582817678342446293654683478640540103161814522344890205894068962432591376383732054074722512309359186551510739217184115331888657644305345651475018512373559455762790644010863978870100708437847226794990492846657056385367720954609141462787257764263308199231529785303344423920026157638299757116850344226597016185772695804847018816469817944079361217989268804487322508673939956721412035673290873252923899029691610555571931609295693329164355255782469133630436877165745330116406460288271573009888992692192175725077849991676336985145032936808894471478247319603957183851128994494793527613861073561793228488445800427536364349885660436201800013819318534678639263703412242134250644602837755850497643464515810936230055242758803368728348940992400629890351237196748399346170753847085340695045288289053079551926485986718950503441396438513948717446554081635373005003697197930820189998026150704066901910905611365847816601039359262171276764752647254403813491536021243128448958993005140491148926056068070351855996165001565879396376095519226918627046038275607987769876418800756327433029751962473013568348190738689157492697907681053265919566285718006928204346823264068757208753758282056008961819429759240341497309669990450720588508524100295469470202219213159472507350048787436886293768420661016495248280924686510591462080241860300898257162044101832146124202780933607007313839137397260225910179700924095546614602767370669765462337856788384663798477314116391153811874364290059095733616208816563282155328287229885801036088424415694770366756009646684731980937214692402409630710304965828628818369582627608662961494715207778379425242041007100106292510363187721733780867530382894676743259612909802886964417446098471088574183920695403338485759081302007088860702430343789568466381969303009013519929329134802642863476231639568391594904566522979461231847007339734068462426295372078996784942773603606322063844193775257668883606540602335652877442078404743369721638003653656464788314442383556378747503334685139966904739962563401101324737021140190569166678397723645378858252502979209983153563767220584432465252982513749157582869592333946346655917331907933662398574596209199442563577685577372608116398782263085189038422909277093444217239898337829202218759101152225406182582502937219509762035890199783954197678735989096936300286065515069034619355916543543469215530165973204603375953731254687113311958812065976380102769813705482931282608959899534715379535760809070199929599039594954624968190230707286437578713844177370563012036324013451495890327700291818990899415102942898506509828586028833044747722779674935749105468107244681266962723464579517780131834225904880733818640882151132375003122778626071124841301837592286898808281192394885994560480488153564920285797127421590971729752417716085092269514738749593514435079747158386672702522068337935433281267625395708638405841080894939710838682318829891890809395594642181584830091997998595004829462304289788294528759459711854420096593271451769312224528750655844201505960580059303254595438722399904565656888543010076599908387779720600725503794514018758767648222714724068197783366327720848177451298987917082087213455902781356545746276668319125625819908274072203748083201317147403323704340253967882807460775088331277576712116143543960833681574324340459949008195366509848623796466425368016878867491345365018638767059772892779999860922250047230297265085491328039039072057177652904851553316298194783012678935366067279893522410312824369627696310832985035706240068315177800139512144165761513959323123415945411131386398931299435093214347572685469321583086841094392583918192500335546445320502588613692279800297361560662565432270401699049092933546280528614981615521577952948462960228096805615035338480428293785880416010257916158450165211933211616702490432618659749774962779801747732884197357387979050344103972137112012665978330552192604906711519808192341043542386411564183580552011680172783637759681889653991320462735160730300109328235610145528140699619507335269389060594509781018356985944526480211642561800981639060864131668209258163448327677952261427828202496124761541129119120909460943923053596260144771598505923684041421974151126945140373916632437380697885964284740649692299654582164163023440158302894545783383233069781373536233974313021180979394011570598605563197854536003239554825433451834887084843553053862132879814790959876268495502652976763184599428672849934500382263020959283091890529481381033648934572855803511751808146632456791634657367273876911201507515433762889273214452788863494218304604705030915941055981423745873480868034726694985679755663349614762289037775351267163697785514450121155105627473200049768084441377155390675253990296921420320893019262470594639502521152566797959544450964695611121926499698592045634670407141562993063208851010067623414062573695328982442127822756654113661672249110065400914040387271187030311621656702157575735180057419693671163347228067427839020331606526258385757595771922588784212128390905825789440108170215575106481916541700332814723672983496459334596324796669475762674976487823380419431996616783140816732471796370952786243370462845831232372535208627241242559199569862899782736574336641499208481393716312464584713763654350174933331091616838195298549337372738042216090285784937848778978661719081568238574464102116506735716204314826595281926534141561251972298940545126080640253403146337661014266806037023677841571942529994659441288061637831239526161064044733252118553700896918263404703558927842296910176455052747574601646847021170998463948807309466866692806987183500478281250284445701545727038006487122801904415129704460807604312464785295281062613545668720171783960509115831394064321361219753043831762128792963006406573751405166698906742602279516105780895236976792499504738380411027519104212888186016072266085450754265961467981706757442137902364366913044836478595611623344788106148778621990909682681147122702764425912493709993506823621590849460037685286606930326524534510749308767966096700768132709472978293478641150340377308340632336299016517363660727942186784083796011788298035617944033025333795698266220923855794676703682868349000082534519225970443582508620459996942131850701241121173546595268398936562313888284997303817551067586903800718890900569376520546618460726777659568063065310247050528827586277110413776468754838860952257824622383856101429126219827212997213608557467315879542012784358011406781743528717196154331717745462631120746813970112324863388698173233581740866441507435679638682993976740663161979743079262783570190194489894204098787355899999312653190673548199618711303910269267520219049636463491884783489310266542792578039687734160587557831943144378015335287756693971320893833057505241185437172735880186854784464513152534894731576249173730359414486658724179734363930370198715304597793677475651675071400334698323572735109192800213763155418593891481596642121279611319781994241497076229256381467065306408073730091555236024418395165836029953119923602934864400794708595844575825881967550886411639590793821137236364193871023414668205071405289436009766949282912262393987977497775496947975451803128217799029061487558048989355150450589925126233111672278750779316734035683508537326659681307141897369157109654629524220539427978218174423922756994006382008453292749732871892705844267579558123427414182900145689287112595430351363922533210088243448474307674708842711753511039266970778132947213191431127845560139374145026157228187557508056922732594273113652839895311917455438378389868834035107370746088400590277804502968224917629920235802993508466285257432499344015994836742322832455578080788616986134419605660487753454299331325263170207727266498837377316506590478521660769875401636916640004988494269865569199020442893189642499186260100668856295165912238441307829728342474916602168549469165659105122626874525886262265693908418256339193299098089444848979142461393784725862682161007234945046481389977698312707907638744101419324754701385381967239749665349596308898305466646015845364686036949742261732955824163688998648024108544590900039725723020881129385075963753028356770487658480562911907860865986999848028284516169952967129253461016366533947671362506132377983000810566626991133373286042290999905727013131753229814410228021351366137540184321352084853012829516507703971832858854442952896980061939222178826664757192583216880000810226650127693784640893996518361623578930297560526816129833827917174009396334199244735850733621838948799940195553108488414553703406641907567206203907258778829095748375153276495739936591363751740476128284370742996805134289148726314842003717411646360352623648917095067628646768339141207020146661252873659323336671405820590398834347085323046763661028340159251479966695122740245691111716156835281206761868780614751958296264148603621229845580081990220936190232952019438492950447173634227092949045482390076953912264840218593492576978094459608650165160756795507458648449020434581128206607294381071783869084175925222452014093463051856905731243094656888505508717765309362475094340693333912034307180057394002517545490877609490532339152416008112590207906479484509776178852055495276139220095902849338305373264762688010388573071086436163268617760454637352885966069584937701277079398154782951494843400689361328167151290912821153831629573310615939156828340929069871154699915903765776541576112786871318889320846236316895411978723062047738885361266502959638065231173433683540875040437064345172708488243497907846137348029956513189770695992749659941657303980820048933996141128336828847254944006043871078334864743573400539934425116253491188316274855521319198926904819017706445144531239926276225651264327840124645533330011171461228338203779932588651977920165773420343951183877384171971675816226049824325115503053492617925453212284953306316351308390591220261722837918417145966590203713216113971749461131962941107154438817559060368002403605165088176250137121486541301084372880763808594568914634285279834338157720275351213955670495237114670975503494564583872929871324412482919279234054706175569830626268076911219932364421815644154357023613027830994537918500615331588701295243899229889482653232564567663250420863183367842790657098504933355561006813572434644539239323694549969487823945197109804327681369382110910772190427652341068346282852714570315001594558195356682189585327960427258687643792878059449627272020637901035177250416144553619261809086700002905670439975867472023931875933781149727179191907524739691506485493176433657523531438078743735222911885783783813948310862521939170046967840125780162874656538951207660328292904934591181623804707144963109702756391451797323721640093499915436039216308150686612618132775077435027051555708364819411009150204280129378858169027374821076868201816387749427328984399195715507853279421105088128327323307867165527519418803975889274620871780617778775082941489628782052284603549523312734589394223323089000904036021404249569368082799697525737530488456719660867381428016334580217579964128886711316296707231158211682788672241161240576488250311048926944978585727826200510093108425750003517332648456664484075324989661292629646199927561538032630848374003605560197947431711209800965533063363418693659838940491243893729120822322248795595022864696824834572704207086243626956869251225663003133620197318921707617287015721757957503490701499140433293784158354152475552655633554769699176100630814196281859111994417456484416857621135259415577684393801008982148626578760519695629585486755231373197849687924067965231346157318000697521029244824714970014690223649548957755290661754984994405069598704726800308942299992446297593931972767543238185401525451373815688929853913419235782689235187292565582170817996498225943350498225165492706430641265328890139062806993363143461250092189430385532299722083358590032321672381701557467200647373677099346364104114219071583481228129578028524514816295592018436780425323439096909647910980357111729096336852647477746950996380203273718168438156256747662706090144403277336397717841042281808187929375483883771738113278907518350735079403223189557950112403373703357778318355085220029723707923762010728873390869549790844222938148187477002663101628913772929045594077151709612181631294496388144754443161841423000826373566602570590774340038116898112010797044876325524866402364406204613195814907022921665315995746980080541589700738254472317494795122131415033608897047884815255361070469823109577931220278374221956327930508738901494976306636258348478239575484974980741496721023142519785178142243147206539885207911861528077116273475012793218521148632497834403159208407878610599730409480538277779618756265687765591809865929387831961075202719288765543867336644779312273709785913285531499569048681935882580821190745238385892304070593695937995986992930166771719275621520746282385997620257577967369105142368232845072275990831059286149932232340193431906304602303653448586170989155696832292051049509149060909500366036146460532104140438649875021920400369090790549064655760659334155070109963617620699746452933076234652040225791706144755655312610890269403392840191092750038555433897324832867327388825040242317218521016351769042081387815493780644037446583879985572891563458764734898513494207198443319119409728291153218660756831041658275061958668549428519910854769328843306328550090021403400527684919861224714773018367806590729084482002986970636620305710116754592504855764127222836112983949337213267713210544864069253815590537321875580600830283976212523437416148642499979384362847048667871233234072025895785991181427286058018561822323052662267070154158290389357481875343883865400124119085002847442119180797969497872094392298650876983902799284173920267304440743112856506341191710713291923302530185249589542022619407798354042133558574693281594942024654623624105299731053661690918625010374606318068369227859507861482493059801248003965880150236391829118235056444824173310263697015905324308832130517804038204095912954905084247175173731294119102884648115764494254016828500983531804700418164191401059388493100406707253810501500023884256037736370791409150745699332895813073197606265568447266665862120856935586444279826939115380706799658443093307711553553509891994686005612473425547644139979293688472187295582527834378690936097214335647155856031712354440181582138038852845511914040776825055747751062755312802718057571796529085996833743091307351335172799669632946498564230701683002067728479646303589456367296079415898770226253140620587285492073847138623223051989469534722417741369660217513535059765695818936241711155458231253350113172703410161395969604566437020989907229676484572779289499154405160232666396517805174182692635330704571388501422390046524099584255739212779665745606922777148699571446168004495795305900066808263707025045816657456974857860553042112912131316647111865086643305914631623551925022371989285118579238559093398622765976660554122859883497120694948884395620601144494220631875329804545180960395336027323650477141098902410252148456958879877417965918209229172799011218014593507352780183876978779149198779224918182696147323245909635954353139230011538054808335216298637174829678497368906460909458347131736751966658545523821083424434508382314747335885221704702609058306788782230129699676113205112401538807150605587928545373434045908652081114424409657093213615709582274811464718671931303357263153364306335440023822879937778039405007609827944931120141510853636159438244538425633150927201980023092537674145232988241836624670556411313011795273797626148627037859207390820652701570896625060694044870155086388702762200083704198431344716797627784665296897276021215290318832728478210787080783159276336304575104478767295082005289601795170463782716220582217580821752403790648045972480015155250583214006269633583886054369171797893727312741520340224559197477700262409927935686812468020544775961578378037177978896299082855823288306843066553806881237989438467430663072223900235805020567237967707403032542369904387807217410410672480742004877269062351229310932570893384933901866950387392133995914487367101863182077681150254858504576447718799941620453549833484667245138827994946703816146183782839071591895650918900603465789604332676728165655774927264572652807213854946317198343341185060518772355510229018091212749153695770176181947631019806229450418131552828603341133937925569421778093356957899923930323288223171829455313439729322771777706920375516639781112386231980575345726515178014829928373359045953509570811650374693989148515724013633167606291013847697144134254635141973104417877360284194184464556303383532838842187158689666008050982095178612282455752876322609133614790589651560577177056614494153223994787609466423924386227823051340909631010073915164133439302345805182495734332645953044944103812755387561072169169311606971178661290541286543429126215025845992008873586676377052588901882739288854226332834356346769876501412947964198070877729359763243387651455644657282424985482365743760084709419385601465725484825010414847368583999539068500980802191366160105192078426254749490265196914168979346387211835608778914621167518286141362640418191244562810444355203213919954250624662577562745307035874283471039797110370895436927805448823274928573246338976850060746917206660729445784497215472919676377915862136230126908765352744672388184623507238765451422032232491582326077267769812394939992657204431573918929249457423237022618499426112135518695206693097152021568427806084380061554726172606285573270052096699884683230520821356087076172406449613383930284968712136793502301225912738614742284284403563774943597136916745189978615760875694023500859406272751541788244515519007042512907920835429860308120354423790591059614312843465365901440729926044835464262618597141905383125641842211980741353004114594900355200506128952987881212741888044375812692978544160211403728346485296374843216594990459589642585724327573941375196599507337296843873500590105139553495659377474074413389506304955253508701740015056975350776098562263775963747368153308668946409978074717854099052041371118775103774970034643227074085059101542801896083360822372844052980179579528616911453104133292958802431185587777939922611252717418392716394061004234147399370523424473731421203222454339748565856490815486742690482020923686147737899222875185109197458505176962750773443438649607551312569821897492237023793481471917910320352137467632176817946756271078064308970620860765421274771001796892381193668154180943398471063463472435660915707415781976983469163938276478125244143162363277343640758120847692706491000156896008648677648936841283717591526635626807527036023268240869743174696552511910866394280118040370518193037036249799724257966915318337467728431792138781312285043824398393484542647623865439746985411282803239034103610451378205741101356326407786867318901639304132124566120934122448986718417374608285060997291788493180250011386618285479771818117002944657256133755623111901122378620099717438932922231826619631913098104523608320338799191996643289107539086379091127737057302277405089737560168006510411602073108518879825264438594236002330521290930337794644765262293186077495992077933416781262261465204209638446799697821820770736917064707545916880699612281654479737055011780153629866123940508028428687263053077529868808430424198632741209433757503666249932059449562452570654131060228603002786473098687283631759641694549012102314105180897318554773297403129435075996822858993455974927269622947505998790668824334802172289964217843851562380038324007115954306899996872630632681761096627007456189656618765822435510331753776904611053265393209398680577053209156504671427998466260159778514383784936088045140269841436944891530681529690925040006084879929618683418605613418934461531355646354012073222082089900845035940927089465883338092928161348768389286433602071223042327566915507510172985167616990454622289887259150777461845054947248579010665327103091372267574246489342783718615414496477223935194500746416198076680908918592181400881291830318020438626952450199358205618146496732814863756058365053799872280708628345196248200095775892441357044068107331937690137464253147830309551960203547107088909655658279039688631684117208165290124411762221827005726522502462645679563057977240630541126526051095050811205385836884795655219642685536082028796755804006207229592483090212274196735025807093447489663707889847028843755389887491191201057144235539449876060614398639867192938273602424046998153773624190393754254737932605387511355258619586003444845854198776049572233847655831447873777193572864999431955681709901741934359205273265038441670472571301074885980556545466508346781303830128115944986633035244191734087223512063611512347505893364702223806992577557532017827549073768777349385963558780172436610151704222670268508941105917746433967856677125153444415259428752141214279749091589556997996842663389811988801917340554835080061091120473855932576326779000810836204502160363581161371619954938859809276501761630936524979590092561855335522031623326776580296481559848643792350324933428109244995697899158821850248904650709179117317494901271920195253053172525692064418983437292015428708270941146448878096700736783957379025700254282351525910285317679191026724401556601807369561777310524420371054206548920121442240713941270792759542129139011714093374141513265634577903661939859264062244900478891707882403350713945302267535582244272623139224810895695899077155863524281666941855656462730923380660933807772173897442238731823960828342643074245107236736679115173237600319644775245056729340616191568962735940136159781501286116390632834250932334415600127277015669815832108622746268651561328065429549891133875621141914219559282096423992321364660297969639751977844209514355546399105783063625831413723027643461534899873140734771888837633914031215520666377308961522338781193051707600745723962412889488348405738779306957703893203006805752500421352580298201599927029031873895972366238951069590252435644748879339944648888403903370108271245039454726447180770254500002789477856349081338586755965529222071485509165768569148127542487926332334510298074071234061326955582385296270023127501357350383245287946731706871704145007930863141286437364820652678286294305020020883666744915741027324572446553630225445697433781239061234312480894792957011082855402008897167295680465313581112162784120416553286882191898590300169181133112551822389624715876625100615470693216566255669073223814109941200807161313431982981046731050484002883870926806643089125649981013909212977133643233466268211031802718716933964362303327083476469810640337485520956209086894982218974175401023416042079229741652412912107813901952332181566812405780406608914425774584317915755615511436985968455103531003156521461281856523272974410061876016607300021480030323052936159882912695603993784801803635636976637895664917120753621726453082289275673056632782410875223223047072329178919625838836751190311270707510220170059076862964399903668969207802413633470737439469797595177012046285720219481200558976078864467959669443126407597864484373438051922960390524828290427971130631643882154198516319629467160657127852738905906852633067679614949969010500488485638607377494097172339268049491426880549264054936884914315639959053466210567011332662612397472080488309219224774474549511130770546972981918756293816975545427239974565646753022636219197877902813063287099339394315923014285698492612500689033568494403365123386489467405207505341886491345418998062671191587525362000210029182576537801529231458717574603314351329248943407556810143885699174598879331408457609011451952904315203733680529453967111897698500813167347553887362784272760082424445622475149994851311713179598672832899135209614866847210965187680715619133411059582707285096443483221968195560185089653042890175578428989951960735755766405250488919662091539138996370301657193292350464230036722370734769930873670103345962957049137158549362660069699041578601599957499802081253287169998275763649346000315391024728171305255803669643297641767812215289140372661874994747944778063186246769569937759171242239445927078027876524393303074741356817756370403058957674303583668922196919416431074030872049986120813365304844092730602496437642827477477721923074293019936953893061612451977593708966766714792821891019060465334679121368064595498912565646562585279932163991722242115618852073148166717422869442121317430350772865413700406251484491071115585445344398893794013138277193641248075380221364984216970842005070444479727038933055769479311739849141555902848720576623473967550276777288789367625478704608818537014343373713713951986974902182751654621342829857369020775776914615122456077137581891983524323214642569331396520004114314549775050052915459900204549411520621442867632056763954668733971194619888642624775642773970100970390752244970123360713056082810929065514830789104984256003991136527447494396805198361099575298942041523912518855677931565250825234326873802056881526446394674754548404356060576254964116601684530053900068987140524967332063889802592652942805954177461168489682795424402029260989532509254180131396013175713199540444164921577746349678898847443527934889144659178942827291603016062007073744959788059088631876411270044150156051339279399323376345576998101036661317759080378121776374828865689611974077989175020849282883554489771860786928705785264237954078751051322807338867694588910915452926515576138547940974791200192005926420622822866251828706960766211299551397251771120879952334971826019400948153616535457398717049981747918315527314858781369167059409876306281998716100960781194968849065284850119374717481777660274626204722730358797579765594571296911406181222072647125467200544427746514813062013116603478283519439217989998031605049131680692430348173838620996296880803400681235098154102736146051267141645435709443977830432718632481864675902066675548923812014939819627888176887134783323147612291897109276737751349126786738849482652447795000209745803225825490971552077146572375417764372818464079413175186788726297824488510667646348017850862537559339548648432838866461122377368263537070292920954158300241771866972259517039499980568734908804308070838842371398670570410977626375357488703946844528418387967839296023125793344587997828921388307395782630475143492883793274508355500724730757620979995466151928218804178996999529066325627387721408683354926925454336775733812013656746316293718130219729781278852902036405804125697094930295844160033226162093198510417490290118709552692538416381529898502212349594025602823302296234994824634846462680054795571133447340798591742680108512708454799498986496718507969757330619067836684682839003611047071905301844282869385585347935845567074609263344252953397993793216347340073906282759238681976191956282223546416908836231597953703823799403529567582015430467452227942622454099660541213134622220282398151340811871819085184774126792854636152403155702160598348507290800346669714902915095070720682829288420068473468620757791158751961931981623004579121793289754466598485088566070263464583974457993151519062870993609877087953458710144737657548755855863838175353205675264032982431694548128091769690233636006098279504285177863268466713202688246381746729678595038190322833873931755478160524380532946101339350737304543081912802153424719239169699636710171139032008722647507953191319223339138755947924913402874920195687650254218082710993987352933294508691393480910416549109577331317015762169472990062420651207840120889777878400261886483169049601430847469926132460594326626991399210113886736680839172753079064353011320665739139846635839194516091991689264021871878077114065451891255930924516683115829774380812586093424486820329218048964230176313379019233372249522434019822747815038251262611016391914704926681915544875320528621442435417723190618773857994463526850870218840775341014806637140312748159547283077052834823064704495678071835980371716710655368256319581098239139170408937734943706403639491084896866279151766864257545709909125233067362054156150828337271671729368169205876806657513077001441891035362477197831006490778201912842949514148192228783364055226743013161199284143261309664624095351566693713789326828203584712734541783864602936826250442067114781584763693841252735222796078511252769752562056893696872053534702747488926942497770308179157955967997460258797396045198203214026598142010965238296349284521450059548420733031793642061861112024400496338388846878492387451339014944113312820077544584519191911922095684475268677922064078820374816581908202825340802133146973848459994135268850083301783087466581325725277153191983423639422747836306971377208276823099593178595458333663961097395085489602917419631689566395480123851444439994978070649097730658432612997615542147092248903632246238545032847699618854070332664985688746966868134267981411797448827120497607225846256928510693845605947020737938266614763500978326199181841708037998959931052997168845750724494069486981398995435822649276259156098483022728888533043962758183447045414322289588400056044737385303555620676247420595750245256600351391945333375030293372823722791939753300289510275599676113525080399142940610051716655365134311086706422067209857154813630500378936256573380963784616607361024689294046003822380425633379147835037118421307117019269990350893912909657948166614933568753071138163617850108482658862700029018406830295854862469906642627956817781750405251610586479189079350109001223678113848847292250892299603896144597959847304339227355681026241774311784529928717220856727854350995891636569429075930651695401221625002466939345700869460530304528211008589991971054838738158800086882325557638784882697245035457953120141241606145575078749943928452600289848661210030346663251177650697987306331938176872833357445139367193817440791952757611250773434449284392812720144975087340723564352726502262390538069053758013631481421024914132741662015786384640575887604912630682382021511490918421954554717773149165727589694355925236690616782931211224060306368046405412731044105217699582737476855021196066613487140126836058815951481280942131535661137724203899956587735054681319989452049314632130572741778807394203787606773745421919710749085802495085172063576155970161052203670666639414237318983700088404200099164967249259502656977938270356477159883485807719851188589817752705374680794686869979781815871032482721236048333099824564954132171327824487658809523761330626197059982857316746270165701438060960255876747267774047844357959736469837056573898648043360495808754261325140208715139848930858837769410093686151005920680439993455152275578958008457418129403963904992291047327378831813434325723298917043867199761337628847232835531893035514632015516389946052970073611972108373175353628522245835627850765024669632382487767656394524190489021027981769156985955807344146179993935713128649532741700176328799033916619238226795249340640516045135774365730869250022986703341842248044383484131851079621760957150187436457580437045594223411699957861615248090114701815137146067938359933493354992696762802316040878289860806703407649461805291689335347938269576962942164678612987083902125076576384437492823989150550451806934902217498632748790247659895608797165045315132391434111816072678430099074388830042588195822060882869283001940149560851764570542773971170285142622901745923159491215877895863340410188216286665641610297251792671227462788915020244790536546328255047346025222363851274043666363231673172674005260175779443256165797838851724123639298239093486723525684446612154862893926574399654248078274119376095346976004179004355217334480141873680995119942571741318584273560614455961532446557097984200094626384561353020265527618259285449460932358721357647426692593647668713349864299996720487795738561527493852876303324742806866145666434436895251892560606488915711637416913591138803148691824465038337206408550586656145318606170206496448639261544133252640216492551901598509613114209384188086911306328771049148150202417427330422740706133429324893210838373693851349386887558095402049904967148108814073769423741220398481528871283557417114503853585724605185322744536324593086522221811147607324583015014950586104615130926757886357553213804613618198768295555337280388583177170686141880259178746239184743789296966901374455456919534381288270082957395189333635119646025005446522433793791765209857306965301210564111227432435423665644699227581643476567490155482216928760431473688786972175892278190536971670438814948911994738924489766885137535476670240424939347673347785678088527341354900426313357163440197546086739644378459119313346644683535907646532534968168260836346179311324446848692946194282108761501087376794055939516593520631244853544022608148963211023311322824135745021921055273415120371128367046169265334913724931234454011464154486312904311621359694909614231204941017955913480585750678805681878184236306928973848454458704363028634518021860795879995022537071715299087727261915958634985967117197832314287798530870148384509088644220553635109723177625088076265235237208645532540322103460416846661989496564937045584664193716776736488942233009196320499627096653225541994156266435665689057731177346496503247059820794733932326620074381782447635816780009929018552847366863145588675209842414434702586964292309504247379457634283636205753683041197507203823539127513763135528664965948757919889974894120702733773168296562356943933983086547201501657382779097827818306088956533269468237799922411514540083941668030037976549388833455512648129331125114733505925703069726974944359691533060590256620828322978801470760175951724562342842623284435776646082858083546227501283918592477667675824390235872129858304695847639548509032648069600477345179351040268964975807392815133416659062539336669404757593789393032447850146588050148911363215191563391647671477118626511261874746000885644330505500469664969546094222854734779564857408965833882976319342399609404752561615111292074165895069146167643384242481636559843198494568846105195615318984603900937978375425611785870850658991864661993902179994917671223043378981588455225357696757635133827716862102964763104629473379924320935650410867264827925803928147890975497251513237676510015110037887770357775445321829352701047643107526530887768014051985513999480517849571056222221906365824057625570606301111204348343417911268446380700152818650533808061387413250369821734877172174848366692232392269658416446414042577911445204720406792160182005199830318597564972383303495628579762133754882754219815977894778083910208349727453462085201050299613870654428313840888470544422863472499758254570828482392599744496391794285836895646397075065938342467992740721135558632197720027564167103348615388117259476277275680977926948462048114586045378801190915180036179795530293879583326233141633977465931171902372530662566436749648885910439189279662256024520038126396369239715036248395654889226011578475379731189178402574716786807737572303320478131328490079462144278351565345791562325854179330689109427172558223193960074432728970231928351806562396723168564718334270121225085069162506070062691113468586886224436523228487613634413981234747609370556853127635475864975029635454572563964868491126117122910328785150970889469307872120811461640077195867358138341052176886896263481275990152695415152737684314571690716811916062678398047328959957163637472949841280541766921602770246470083038472232858184044769893669265894084103389768084594183270237490770700420979972370946493370327659498773074740995359370600187450249265377105201243592211190857822975562858268027896048149058669406159872237473930034904063768192872263345419244732304179774470686872187560073224590516266694393074131567803498320876270501419072884927667035041742324899591993001502672858472522824498857348969145576043179951787300479787166552309170895462863520267520798828699605155505376101250693407798530121024973834467012227972783953900000909212993257056312211645837216382390892767094229428209922615863715422292868290586682337773556340009601704085085059007148439832553216629006222507240663201713027437334343501421961993363861467678793956535976665344704460799843051177311418391177851484735670944312157882413243979882360988096247444249432152447000405435235562771827718487328321873655312592752368826976369583462968056170887267214357879598124892425025896187777289696643123015782904969675887826954138939718671986656199770199222371999051751014370008764566920646122447123878859316379004070074520169251135103352455230039833966550122485504302403210036055728475362513739363329958767002072349990281075643519319186526758821103203842194620402910074037577022934511166450212765979270478765120755548525708891723471020469123628298832168715405206654124999226554730757430640717241987392863482455174555732350060122511359056537121772066336455774985334285137577506640237169183965884225174534813097452609515097826026900231717054465721375213435129743692201077434043617498153406740491717777009940064422435573392377961367503876614049632366838739187366055952214355600677858424544799145346103799992508623233821317518229902548497382530804898249501995580595958445787794724084608973234158422226787588391527465209875771018803194243616368194630891423961154646438274181231935234460821731005237128711214068077635135167703473574374383122224180174452277955221438322217784663490564295164891743047932613400010115488076200344547373046776419744111468679872704781207632634002872206517121377595280905181825423526763490151575610535047851365494207625172762703040369764468480163521699004494829964629382902336562381710426015187936966874068120960786940825356257922274609720279364435765872602909311000668374209953387734961035529527985018308602131351317886731630152325644213784445821473110556000852198961346397893671161713599370401515109814316992956878558461696441247527703484021778193950588295735490816759594772497932423426068744608624456117250940989133278789809354429968850724385498795371027231916476020706784936887515777454415742976457492405953230429295929122998300077673121178238730257327543275283805329803850381096555420637206753146847177015373157947235964300417860789353367947461270210233444018354759914253521387303901576702677895791310260715441098514453243482110938205779546601599072275830339049830999040941520673983519727363107218055925600736999907446997933034767325679857240247710446798427288699028619304760284749943303549490469492439575430042866098089925176748414194432055842643549249322957231613291431417732901401400009046785891281333377322997089437046910000725678739920344902218857509378998954139096807991068859687535927247636863761425194033806042126590840381652322988600266939626530450648030845333542204891875743814576265344391811208087376901787499331759385863559767657714787103652137594571682120082677884845533994872070291612599399865651278740593013772696416273163621110823174258330103156461575835412180600115816431878129860887324407127285666603675572914097586994189970918831082185610380119664657511847908307807493863084403969199311333901267026359170744695056056028261058632569489589177626954505682754853234322582149022395485139486668287029741516891322493364596864187230979830027551752477094757582684791611710185801909149635962757273972809256278548061844731642711111157580050120187824046080625960889667963901947462379104313927552058793092334873521876972474042149561611903392524637023586275231517886827182826579696414604397937375116232871982854172753604907522013323521188203360631059940038985357458586369942203256702765422939921916287985234956868125003384851700268260574292293648837628532662706732704482571149988417316008451336973318252459473466676017038840094147916594070500902596544798180733725136609620011784986823108968204140489786355863014857092013420926227373291958955283852782785810875860622609620848454292002227768668817319243797332634798594845806894735631161786194525736100435612549866916867348747580782328632070601786643617954582193857152485190425356739352676138033183601746805030082945334762407670192562132541877422457370245850840523032057329590362472849725721390485571660443376597970329914735988298609542700775401518528281117327025267696883378155270377142320711161268802834856137186908087085655258051418019095166032308239815509465402776900607102922242197444429349381763844831954854012727330401246994493319295349569074432162232005921744651615046491815328090086320674000339651612754147773168499011481840161367458865902557701966908640995192943585189958088800452438402988312252057209934986648252780504183379169323041935684314555378610978995048226367586195203052291356231044982203180886481144152573735404264013547279061438533976588765348611689235746050012353754698074389072135288374642537345890593219340439889382167078054484836224235340506054978085963950585983651432690338025816758771101123874332589169724500213668533950047696864148641535654039720816544127540352758853163550010104130318572819738314413609645205566129390897957747625767439231934733248037682665225159999501573549113819427681417497671526721212905830954658713977156425784835104870678745871497557418405014768599588662649703572733430306745766932387044487973907230268284023281112365103218127707737236048089622930310340057976320218590417392993950643004698205062468848691068443423702707480055974431102682618316470884976073921722076601527731651522233431665646938683271555461818299818396873710217068605178816176275159989617127916673844253779701456569297662435169127481014678948127310398669384639634532036290873176230540684235698668552882016046171000344931022580998068321059661236105004031851135896731979804672976165677428088411779056284562952866199976559336207230879935295681066076039108318602019565387329675843479571576414739954951545767980204878986473325918736299956096457321258211377746617051840718229206809353188088633730539637582159971526178628474672240932798789692644794377016452744526991668131781239675353339176052927139974256653004922153512605675583967132271812325825224505372547882307710316913849264497366438174975934524131397822718085261044399655524466952933236949850572968015016731943571655733614912376048774512689868235919902933378425826640361864609880431724892853693381426406991716000696217292382208648041148472080274340876728099362894308603753030363256553767177764340246056780588772131318651033521379983412219225741452109240812146700534920332061750795266163946823747367791866040542766076735433200334834296641718315393452743820567976539479044398597316757198451578414422573434830654551889297570853176426508741344460832789163368135695278090274149669155637911461381171683175542828202816980956755466693506570651598598796462392101673654887183419192722254716707699122980157983127512133222291622191820707347126943733821127502403353130218931050310292690384320169144517760687467595282684011422448066136382155131156402431362921823907206519388183559891496659903299373252793029623436953767449367629833051712179224660240571769116136610783014209519140270532310820135259175594244937640763621601904345734105289052818562250346924342834534310846641251272535192251855451432712658398045416135925812209666108123054680445814186206812607372415468451789548189980560285969122160917422386168442166888970583785253501182269552403709557237111759539436714515855712281584511574969752047230490206531735250492958075189622893334493137175464050017848744971526488753208222252376978362530352097044763255241092179910763942766537466310432057153356256512322179121409632400714757761931753346742611546571428334634118248233898500738963207624006817269115896046382179620765541586817368883520583661298171188509474049837463281939653356495951274085763596720548566321014776316320089091547301833791230487172324767765061668738661405219107909680448625949997630160983778066495079674119094148757907167559955289988121579111049126331935437542358835842989787382006632462631046876532641554756803981583492021404410322600276737440561416131438823483873374885736878566316945704605774044652052307796396471084728977601843728045495500504413099200466799285530416681922550038820272678338216497083137602063343161116131944668412500226715566257842370380430691480383836504832365696737325091462258163690448614403076282099745567241538320515739414684587930285720471649381363227181771082822663258963758530623564505951475027567088473434446111612987371185709032404190964284996787095170439957491609080177001639161074006297748183654781134401875944207721147621203467377950719669744383366021810452683745072500342011251123915803634162820961283396673388185706335450961102911795774690501681913644210499409079871274824002910211218702796210706216650148085925511857137148278050591618857343926025289809915583083289197176559478679774459983877006045436204254882824953053639550808131762648411184198179532474393533152066477915886515952019726528840618839120479982626920388517648507189624384343041997255414942808172680555708381534550720290117021676213757256666633626305934464988870422599215785755685626365951558206130684661157296701645482869486049041366017816902135622110345753327013276276614845776103212737862410606052070166924977844931046388128828490486145282849993211879073851290677275264492420806273853437563893247972821976456256812790441674228786049773327363637999358278069175128786463276619935363009195675086147522222448637281681349439403900008443265364493823970110692222775122496715871888806790611426342338663984977109860879357899330933232097924498984695386560633644371890311942855136968083892115403237903183946301448067212270389840604742375974651318708646615755277315375357545854482659689922735493161854524316546861409294602573088398331050838333685189445017933357478560063669959504408203390342222679458540663842590255587252679507771518526018641720480172084027286015336968505051470422527715937965073797033390850510118958443791026215024956301842307476481586884165951598798589314813702861519094427155030114681731989405729162803435671432601780915630512074349550139424364366301199689538021097896672574389684096081019901344120826810091933966176294198575847946534633159513095040637595001753347711743305207644143690612488105121686155934419326654281481457041792582179259375356868391375973274057209773571781234494950926479280383639252106175895675656384853467682831982040549073888493964645135107464991461834003405592443919352037163150615296299372114968122920891920458075785611785961465214980684556394654269451798195427249497969986259091338203405977920780583665676027252822983376337342326568862927158690492972358631870266361157966371594907359960694442610685074766257788404766974664835055362568061425136172415060731401633617444058491104625536123820942685819491142123299881332600571952101409077327726741833451654683488381114705690115671003894853947897090801899388948261790385635304006261628532292375610026738108630462210584459944869847183759194517033371426092516007120862797310543166857816330157266878910246989715071074755899566819829677815802607326549511451432096011475405665362868234806604235357457663488516900008514529826686807227815432501080230690871689320113949498632377705646434344537029133232314104459106649428348240396269806201223998757593500123641577525812900523368765098092260653025895501452281818948018381552748108293192862674285711012117789696879209954262388286718329337825124022005247490207006820720531843580138165028309924295466999777988500811201065848928590890938358597034480418823070375384344858859168431619042655415766913818397991222073968881104981194262129863200441940733252097050178785656512504463690191675336631911649477098294936663146624377908184552615056828171528887652686323695583214263670246334487839989982582625081370301676557304878221356632504797813018602958645536076067801029027121225309209006937956366712106009877737785439724944347026818299144532020044928905692660155822387924672186000989867556015116129104743251009875597126294096451301437327642891815885805769805683421004765386954942771782945514179479525215490786558574843814271138647112077352316004912961522912682352545872294462512156341964733207072751108635297666355080567635309983242776814223175645672684829249202581112101205504732542497606599548919462565015644547867775040869989605213836415310573853247497894491429682542456858093161681575121052998029698751823082974799266413664789263328375495267208205812800820150500441622002198002832809905392460608192130658033742861733660838066040314276411283714808350168878813362525973842648918703638183132982057318463662198465216397430480952712621560293095111765201590363719673535691767720430571118009224604419700193007586787211167552099790786734188552356446279803892756490209260453821218734906800055720979010963398920345621538470729765786740960450039234135831446113684747478868137026539620908652522250402312745213348141247986450171457268850124752074954701665820107619074045291489046075749611642079412152864959032274028164575566238856293016376046287224253388956532987748846669423825483351292675253845309409228747148073170237881398584378341095805752419534342895358463925349865151511965809432767464983099750583569769608849388880327598538783389728626313407988302175966807509996110099296532134608742488211729588680996465729400361451046271663546680187223754904386745187830695994450136655041067984077986140775816984903258344529614514002085861489022365126505578574885560379421092071062223434562902031874707394584474339420194184803727790765484585205453732242835384360518454810532248933004984227965854521524290834507433052329175041035258073822686545760632340758648811007975652376373746907642935858186213432070959230848763814652022218424139855169176479431992546910810208598431717352389938857524664848763185597546759541526045507921152065322496345920912093607898059611626161740452260724482118618267378509189087760537004389284028905236828837511401816633364002159460091789887473967206268017028215591280172051163957479480505485482759043495107123101043408471150419618650849641738465031666600488698827597506274934640557369776801320154816843439940990247097705869008628251802918789784174949813088765983941825155577097983377723759777259225095193403321684142973518303942800170499128082986604761943532554970014208431724135076974853734798908541387065636586775202935808125705643521001696736512227532876546625321759328542385146617253871808123311346057498274267955935067841908918278946067449496070032350730635351354068724724066895852051724031947609569352297109280054796901314894301136033634211947201461600797051504797169072725444471608438719772447247464194462859549486312372090879722048476263225823931804367352435080829212519130068235418083381482332154188152345016761172982052678863544767502736770698639781643216339872679551488835339966671088074600491331984206981058231192350067101143995350517344031513117890814465679972119443875628816430614104551905407339735699748302611402282574266809800829594781240432753019078593442964924797060966436264735042249871938833925327487171441229361053364845012671090978563536956260098895224446357351098346964594239401093572156803523304849727995130456739858249539059734962588206990240313136796090054462431762867951592399913187915443874896299534538590414258644902656819871506910747837752060076280301190801932214996456415012989426405225187339709777755450197535006530795284053137832175800378414010849601727985552332905754479412978896528656145475533094974178958245971610349903831315641526731217230485413433872523865575088638127349663110175567284717235740203319986143418414185797339843279258044196323405474147358532902591041691643459418230407907697166170843728006845608300844103466803226231329778548172640053913184586303588852880555361840787419973616643572189331455308812828451269726170894887040574816594876493311149223549619709405340080506025261156326651858708851477124750663843101946543697314022973929090008639729175999914894020946106438250495810958739046943755966795417886752492085222464051678756963240488879437602413438976341589073945653674841473937949657515252247668552721839223010728734335158524322893651687600644145946160689117774133996579401283442956812914913667655665365042086829758843029361666359709129736972739488316741310579427397422977633962385525944540619948251032876291649034499705211762315945845921686421147241800771716028188375318283432773036802974439289509914045444087403778048307992562392870523628158464512441109827741327902985476573307155271004411931564617991824385512871699325604969612796015324744600756058930380300976412831118620727429988763336273188722563171741755017515516589123188527277969456235477579825711228942621942834329731577578510556548305730094973124529207935900404084750242384430659625972478237993464245016343117307901658864558600517938444485671156474335278561190491445354984603032202946104939797633177988530544375628169387078479310918908668808736138931264644415111230748242179515623790612839512913697182081534642828969508690506934697515617395571753714002949669291737653955665028390630175616214356582710815246633470345117786003760285342374585039848945805688523023861032732035244620515848484851200660693240788378112897390841956397710227806681343920410763757330817854819199339814506410257739888538181180684780600434896344266090185802113810334387040618851247585375520643307076133846515075386504556510735604989544685374164951619004311895415445383966736379890686208899766215877865823329085730836986313967661338083467028781782996393857376407240343682643011489915782047844550377933097144198483795980559473083509825538013364160438235246343579943447977603776349091255205840226167127775274358222132128721898306397305933626459511191627302136585999236370453408322799245407276813631232277267690338930135739339753867105788145877549687120858259770623639067655020604590923569528297638892521580004626605520019322244647636806122165684575924858415805568733081213435488339114447360913878603323491575402389397565114993775986544162547376507277798085504825263650462142578587355925314072587358979312538844298536849927678499251753045506104160801038671749198461676144803078378714307411218168079377992739436381636101704568450417627634997210875417486781115187717694256049893753038952201140420587739121691891177816589735631357448755424955429447541691122319445094332894716487986205398548721872316241663937461762186170213412032205108516180440992620950771029068159243276298032419668684279142043077868832655175578349496967381330160152573011126309084253138802561910268860417860683810562553061392190556623088931972136620102793304842608159584173435068449907865724512350549347978087387590996265535558686968011385189479784365073546199552043099114100831433380678836235699888992585750379614682086717391265563914856893542572098200299002918477999535839975507676375093585079731407802185389567053852182891665775248434214255618852701201631420812637541101183296558018697192554407125787603004416784052060977002268866844806341077325457965956131850561296884735101125460255879721183576139456018661674942575032400622359791410287599067487246035833611367347847788712523493727568161792796249159265543810445856862927241343050413616663382846776018203233518071254301808039273820073912515483324376835680618765405775722692715822265602165856773783404508604067460543476115917176315936650037476343489232710029673877794390348817966393146098878292049704418024061383529146571621906450101764381954482347577386798848453971461326903490488151820192782325671729620717068254497937516789193293105403186319999093371693812288486469216882689357440739632143963540674557846819969919557074291054691028362408822725010254579684538820582162077417344283905320835174728289153813885270817682951915650684285265751245876055542847533415709873169684626218809117008976340710840381518948936551458294850620718520697899002315460987403033368167261776727995326416500462362331033980283086494121677226777347971192212215397985065554136741471738771593013484542049423262841463690505212876767062970725623929458362389960773538669856573483343766716666732408658835283570183672941764972587132350754622814741958512551464653752134901515138278498192769468928020351566162695838889695687489395287404792519359133067111400203435729002008318575190907486884082647656578968413541362533877371158995801988508757277663996450536942343035884734148135900351315402910405759615439953660773889082360566455622997868777206927287354680008642180235691595882898228298127319011406806062082804540985550797381714794226361051300371651934576009468001797642165397821242766587113769197742060401964938183728745236156897977766100707774399450821835979876268855254404391126738219210115217340774074083909601643115825160673753761590862747956582023034101894212667925419119512414654054991067438442487851860575585930367141204436423856558968829899724103813129880236742272690332846697065588096917054544764981676853309088525428127238033475035973736930599574028912239272290212896731165510348033030188791252908976953323978769413818480365604564863850744984811980930791002748928167182535620711002169606315020823914330428074295918911229740722691977639712854279355941220902644134275305695636512544955725920273193762719451436980496141169604901149989972553743570306021758731784915917765256654021092480811545775176624286508686123443379401797527267290898160237589348133584221836346480640388379528459115829891729156668862924167625520733311127912505327474690893922085032630144845609835679259340913257090899126457374691545797449226421895527128156798260119788515536702947113712072650061262682512956080828955365430054592699276623203101925210097334385470632119042886239456470515336001285515763085732833021484178701918837371166994625196118600626505102314931678033807285393338754080775134078002732367301006636647344977877492212389474814778326787019610017046411568530863228422709513499449669714358350254315009340272164118990447108076013055973894455043224615501052493192587277069721647727696415145500420280030905719262492704729690145977321969872596248026842492126063003326376668316660877004735874498814431119448377431461795992233305424322522139931510331044809427174417823756920964528250493027660542711259668013044011275081958416437819481651608708641259359056635585492108770797971480578238206393455904712204043895157697847028218271375133357063237296539114010316834807777825910539336739370950403394803434760076168413954148917457244430350452654630393571684460985305950019932513164336988477993810824453688883150151523815255517044490764681577526027712761066825592833092112399852921753300711974555992956266675669872812930403986571537734655879058594697340086400784923052520851407586955442538290785836604527521643636878792328524189098680382572123574785580476395431317218480950071529711774472890730541427729061540866676442153002593714025276743347079147556324459470535222489602651885368885213161928526340913300229780919974411346100330425472231545679402544812749788955185505212289040932787721159203391850863186268497498595846766518926784563368504665014871062658080299208517212532369464847200574932980628256514644375467507123645965055411596315696190537642949980449175515579966858224723978137975116420696940784931556354896004398741119086108219084467084552088292032470512606197497057722668016074665449492732395120695848288665740419735490499501559519994550463182777062001955803405546854076399105582346983785989926900535224284118399739451835597572574372750652111929931598283254885107567007016092732318672325673821982139094590801971239412959372608888285949520775895022785212650014040331416216704767857455814995255440443937373826622317353478430283348421641891029811214477524180257297044726646226124384491638820716801616960553822577093349137292567423105722780089790465955161554914767912606938827578876096527823870478498643860774174890675845032611221659786264309631167248361501001626367750547162606051657584474938517644695905505323806966032264098891835085483942451848250910160969495020447035117461257655735169617441019374047332363950103340976629572219220609495747840432784445209422491732819934279808444091228472601358200649008616486609955520309779877233982415750383662092428424132097959001423236841709547048232736100907653881484311951062763280488409206602334502373894120757514763612365400998805605425588270067457591746658384987436611057199397201193779656364436168770968575016604923480861693652243383043977931680241847618203539257107546351548259901359939428248258870135332308229722763806083040425553284606096310959290500568179065255883970144722204207759287143972001204838850641780538190636894303541714237038105901028364571496501394883395973299256904463485293890134937988296816995191189907062516875185890032380331631541187390583162564300280306060423795289374271090706031646833673695912893006327102450864288327655534403872118762287062434466354161567344719721392460012855643647865006525606986119352853427450493860665160738641663765566661396616169961329371938789089973538464225309610232283996840506969472863471815899782050832811191345325640355761479985786145750163524895825952251469954691862170966919733609276727835213936801252852873538051998665307729673173645028627124996366648783207345758285370397083725726808501962719694418365960160904598525290637462351874934450012003351295699442008494378589746679085645577968262613783152761278627208388793155712634444804910947105007452233018295247689399327171196746258542858431546425272915788043370566899869855388565102946464419866103688829925010760619339872141815953202203947765411038894347235719128250107464719047387389111839948614120660707565465330311911061113809939757570462402520766583422404715597345000551683277436473408055672594704053252136016676143167759944628716169865997498468233792829342619876891021695491935704447455028038826824293074313910841476746653683658724614425122641868617810813295887527042321504622388831925611437128262470005531329550517787396933443862894424894387563704439609569581470637810806554126707136448575358922728666981403020079529220328592579363339125320157323300846213547342019762541368503323235550865718835891362004250592030080258573443524605016407495248401696206210527122882258807660716852364064083714539350663011082803674787346777221782260383449245282082998249523769284049210164308916517704559054083435189764827239073626726384584794551399455809510261728870459606012519427254187918626838956288114290948773021778580141364639260102088890009947520416916904114029007934052335384674512345041291796666966542880769160865777573474426500535699066721905207414605359350366381030859205277592053708066507892130637367961098025644560909342200676011463407596739474368141428822669745548490438242097756369603091184823331470961830818737155815327446766749279442253469072711281947027184086525441358040284525892813285610878249561698742970683264666972584713187885886928766375804788102746164655083979288407097960071155936580519886114715664061796686918894783249215048275025521942118810141137914752673110162136253064266757455521521004353706526350539832103711941953228367191415374657740188064331959900492258186843664246812921879510232424988932546742742514596148263535258612455368033205452865278302794471444377958655804077010637871847941855639292052583374243972936930289552427259829573484107019766287791970856982585321258196065894680898964252480733781746097672682174205255322872509275891899098709510546551746393376900662759369856433438972348516170001601854615100543033881891780487132290691126893451810374164798282404950059766730876257456464000852279618948573347663711043602595138282430176890402236255340486894931154697136309932532391345886791925965306076910214416261440291712523209742360506726208256078237016570890172728313265052701938199079301464323786130432335882204489970917418422087329804133498850962097438833583457479898406979106134734990907747957739249700815156644779592863105507309620090839660602560514848687757115014782524835713430171157433918085682199491439199414277888184744024937580028870040238619400234966173059028274521305162616293665032324619094241993356059779341121750315896899528942449395568375447453432177725683726636025924834335022338279215617507684955309362195545969304135698749488797024214845252396550905759288344809223835308973747945990703395140203652924060789296704162152246235637658072504641875897968585369078525966427262536217304676797909824666100554919293947500140273104379787714509196339203469905879799931481414510948682927611092636547078692555782565978787220543306070607399650855789195268604522213778540445366931477804502521304771162770032873122945940197680195984506586204879289253791575477205000003966998698718878768872273409184880602891833105283214985446451477317023047034562897861640178644542649701832826711431925509647430633177642537410577629796292856655016084211549858815605581559344800644432302852812101171156972476209870671255791234702387667199299287330777592653035335324263528773715961522191244254135534593965828267606398715730434464980188831822676603978589461254350143715468436297286095568719681127142889052443733471569347754698394147252153904090239051835855718589880777674326133478470313371613853439995386895331966332923477226934291955350625955215545425487180943434807248743689957152630018183918326168745676377834890698569649674823254639128775477879635419025155381237032219530724708278671581987150077237822413435472671682820799479480288647125047202195399230048200847432293323270173644009440515830259896378002476186759612992428543833351317467790999506578184826644388526918174930573278266093442820235891361491456841030856256366448913363902689513790543632270169328562949042499401992864961925604826799150329071079273499055190067388013377050674328136972687438182330867023745674084174868790304843318771037859025323445476812370147950098346803588469620206576210550329261305658809438445885476642015447616306497934824413528068271740706566710167066060961802330104755749618484188429945021462606862549792974225759106514260105071632315780472838683866104146596242392051335357872045302614467602110715030611332356277849606208841551318090826344079914045536291924420388865341013877932408785705588805002477170595850160019237949015093364685121447234844963989116173320785921598419061991268029717538714907399509150351951722436373738502603556268962624532839583417841092152121111307669919964346687671772613964596529299077228109742129886010161928368125960978703189161340105547268248036536461948525841590325718920679280756754829796995887901288104220786209333684473598007453067073809832410652017388820268955639438002077269480942942967566216048822027612889329523139876308031930385818831587958313461732746406271049287640866192241517226906222523032652115451830101161683655470632679666646531005603533577285618424534888794956448589114302436318382080257678538882322417776957659048226923874672762774222050219511893167584496805176929007476048323217490171736146858429310127771820809245246088958477223764368141119981699986405430834016920259501516487855930633423238477206087482236264076375367147611158053018105527183929284560809682886621242730277590246608711024644485962175433760587429929436401308599991934283507861596105187781199698962204064618084325574619282052943712348232505567011475281635674980411700658263019406306982247383530908397531195191404147702468383068678570388016336605697534489754945906677437776466442398219208183166977019718730348872600799286658103384042750015035050375946341044478737771799901146625566581736914814780565238397427056301341314941323698012589966562353535598216475244586074892857259277836628983431898358648080323802001216083141974916119217512159295935032157003426540220179281489278693985857097399177010569993635086806079563944414834594455658523083980972781117822971862682386121077883039304794251444481499011718414937544839153064686248967127658257530283996518763211852239878343142412619424439816163964652289494229658174340445036948490435826304809534866255689699544784211062256161121640830692893206048844036978696632726573801688506083926626345488777681752519913992867735823219616503998738000039030468611787650895351908862744187728862132258865322576293860571260043394625339658948038324062022056186674518557272049131058698922309421927136756034648305077598726393201342760853449785288947205885579602425262623343185980917822756187188736868242454565435420328013360818058019704440186770436309379787357723082057230824468189734468282832750438076019947369289203767297333922588333632240616567428519030811301837942975745907359342908656943907891719823716244601159834954571375238748974976240455811434314702700273442940713479565473501540070154523876907293868610305788000418109300186371572829733397742437753423109961225935958183744147526196006157135343838079020461877116904345968898517449312040954112101268624654794287088417301741802890669715243234910261508684409919465208214098910250097706573471449799504883215762758515273874572428913549397762671276623167614872619019080300832727161365816214706503829567530696153176908251651574795657151881669041453321724179602603459690370661150412367483737322317409377749263829976876345882288209716906602270698135261469896823717874778428908108162111410163691309086417962733392532157161528267633865214777171373638129959324885764861823436841258634667778887330974339903029706085678884998630605331794903488023924469134046604204055519108996624243690236427510477376616419076372587331367791571846866972766460253889552168480226527334770680422590527773105102551643875880779634446243686213232896394515829397686156418495986881897133455297441617098216914861280423331413588546752585899913358833181210092325935116751470094335566841936645009906588861907496648159683354801521513241642991147708733854203114286378497461848281207401316623845314518902999580903481400781512675166307908216110267187461557833660880412871737395042909909478230382042992097258039812306516053316730885811871421904772901976823922116962810790265968958122224843463573945074153721360025762741216533309444862940795596833225444933151403362777448058423193507629944561383828812652408940947082491343648182161516907616175116241469022079624185495548917899764641063409754389900933467667654143074717899687835739308324192900445975924049781047479143758697883075886461347531337179508769002618952222583212587894179026636505371808539192763252045970927243609302537553648792985803756516250119600018016464326623845614355477835897779919963181944984109709623706448115992066423610063459112777819738095149565261640536221369517745741983530049606656252716838757237716356452948057000396747533965591642370366804240177189555436079477923247035859200323893161274039450376095497885852054853480451486015057792165023125531364528627709246690490911014514837760559771473356161222448529873437154746419184038953300377378851783191355970467089586586167812390741890025189292372692408494401634538303236061186542199842337861258384187715400618379529703654556190070699454949593888198269598563402934014416101931437868445164479954356687556574930269552060738438176537122961792247601985847155522323166175410515877453309875668170600839307190736944294000393973062056289879149690968854719055217133224558868608889385168794471181171106404597926955746376308454371553599440718033378772165074535252390646676855028445652510777058240979725014775814021869800716499751083362785191385361489133375657465199532447146765586641697914401605422326783764172188433197959076997503881886044393364758087055407263952229447317573985747693788787346045405891848046069512101557302473195080704985735389707807725479183499424183131631974199075789754186006598985895493362761527370527783234368065161252022789213287952514696060782650407560986514873647232662521722216298692936110993121770132702226216749886393869872130127300749676684629331299105497688278803813012548216004621703347182179130391608019532001002313978040573324853275068426611406777941899719128668426722206329256743535186999802512169518005420335597710178523592180783637365923513532555411212150347066297546750024232581946591335968702725684663946776800301995735046379969940950543076507030145303335244360248727321006419410609349972037406872849302925872359146410733421662852925794324077160377759463787497987212249807764117320410401409100395388201454154582203064140844383956085931820944241218241287819020442655873629180462558785581086540014942656075312260329343473013095448352868065796768063062700855452793622018716643029508860385909715671363266264583621025260941096291532751655064124232246543012156476390462421612837819273689341992816964632066285817082350922483611860028109930957795734222040054282123469813701572207443943045072613338736181823343430030931156862540738383188035165367213607510256630814027568648676975447841160028802428697848117208554667977477986158997018933435372387691052952299436550080986338506444882997553003254766946872863433291984285046344482596301295809993893452019321138831802192782780719247549758149784802663627892932764484261955494948962837414845235081312051419732865710671746408133422564071957805116049848519674264222223984654787314083743024444061587229295624003060054888103868498109187064126231862834509509887424378077490962916898601693259556294593547117139363622834418568034926118204951649115197628221618878782026475093052367657984103334506841963216281389980918279555841338107134410659080447155644789305510311956567913268668179128342558016358947383021746687877609294823727913598893818968438297795191361313569798973892212064486784427296902507422685791665284567559904268968082705511151407488760241291584919819550624558520921126236744865964816203513485471899722482158500455165975465099653051256918653872035472412984475754477933903858985375759959109723799052228981447807079246627285120054598130867028758401337730467326477129137095558421615608204753231121580195636445230754715692259867264327902873557324877599041409499652538695806669779492154039413308100394356387184549015685784410592718265575311494710340162887036809792622409924611656784111092519766649503720231864580653236424049571865500182413633762968098227137569629637984424721752227656517163060239263645944005165876485262129026803826428126991438796763729616906234103653956125626260019741425686027545952967474953263364955985699207660012233423045689192582272262924820291796173514241883330344442659990536682526401045254953599489528968831384313312935387735518604785863986806916790505403328353118222664286809085614077972886225800549310210425286125913302129431843802236620940774424610483653213420147573936361671861397066238636519623467471302477055229168072791913724992399027331008671455550178334239801572400820541120609749383119516997434354498278183919777194755643541968311002733517320782676286325855296706389005026132677360584999874690103352918800292348656430366149697563296734475224508574530607081725711810452379780824053009969711800344309922228879323714609988843073987188640726078575587018832151972227157010686891204452334599945922872728629136008284455116219713162691325704177086809371321503819774777328673357290361773937546129018422491938540354461927520988029248519983248547405897791007506325905032693835968047879985525852501890417356173447847144363371095850921597237156091988605067429927038070903339633924425886190542263023306634976313647631147338508533832769028192650952535752645440696525199617507668912839663937095305250560549878625954786376089376848970963622875196580727839808272072307390796531180957235930742494862516122528733889333809603477955947387333250809507099787918926467809502305731759952949271573157998557951941962881693054043087479000943184844148875709360723337151590696276636942378275187744188430889187460670356566245684242359050518358118538587305145749359472040941202549837042699652214597035088375421034667676964369980981371571670596467588875543051509775878460909183682773304637075313946957298342620786981162250034850211624329963019240263996638030334472587913332103335848901128557273510993248295230888341281641028235154371818110567176304858835003449195434319664627185062894314670596440300599276916965113952161701460008651791101135927949059120246835522478296293921839276416873070969699954190096434608884265612632626690317192014440383989390967268907959237723348679948232911300668035278969307108412018826605109106269265930250399773408163366684275172527737347601213786336062999522307722284579215163513444281854165599753248479029439457617586997222287719053918024247347776266035213396437312536697643976314663730569061532570979434170801286002476853785022813635495384705826998102330958654433641969962249540302772878710952046528114409287161562583853795661108126437626941468111820614080842988787337092028771532186401788221050404089499072045188934645704434211596945553201483819075885178396990594261510033453710978407378753651952952965565181556183886021777902156879207193717928247359904154409232457142284873960348943059834090437172116089534833761996391370996931352416813636049162292377988828669692486979830121546208542855411154735148833449033672620744848738890218426393137073539725125607045803873635395007618783655339745867561386075730504663243832576501133843262814712095777541160628677477505478756121587414906311190516826522920010136042747803665484381663498600611864201527493293956145492163757072762900834175862485082910312219946461023301915921526129517996000872449311236168198143058769383605734434659568431865032432062856962551403685194081303478747077686346498707369695646610152669766233299327409176725189471176862404467659384053999569088550394975271736899237998847001810953122031486168340976421843607265663125478861511621143073011289889985281669757221133120662326323288519136298608630316682160663008673123777750736159471014838689906188152205406770890227480852253868122637559750733317532832704466218217588099706948440471904920805687860901698735028219194108333517866901972647049899533773856870632609954415372843423799252917771611282522056090436641438475267888770308803653338059796295577770864858688569225056999604925640210929197022530701099143989676521072809345271384224980768713404764954045357030388133870009014234868449441925801839400599780213108303935821021248019367570391179210954047574926727447764822784108950950475782948139193907306310512039231562400583953460900984472557776767029495933015931750100177673232178991039037995566503173643750563790720182186763881420832384923502759305937131239483167566235436804676580546155464392680799915547510453686410438910391865823657847530453111322696839720936632005808449800460567270414664176715108646660599655357919910159336013156141601969374570399823678859613906043941519032418557454109039626409399378409723162014073960216431508598923644169554957457152545151169237899773710793503693786589637185916756949470344567860011900790568703174081598644646233368073162614527806360179353882775025486380929148857687752106344863327782567124614895422435172760113395494177390498775582813228719700899235585018379589687934465106185054255981651645216126282842142957285836247360504491602608223795070561646654551853728502983006670738561561933906466071737243458484766907751331699147511877475562999884047723512498275217241267059922561970458220796304658772006977627046328750583961515670023173916004924268038776276568512538786663854711372590961596976098918576909466846693508254916049757774923284134494974443817418901011487435729776141725160390387026370214969100516711920469365922013263953439384479234789684086385862220215806289084566344244170772037755149068779344227003247626648428135506177633073663045616512617471507205167762878890905975807225282228002532166369629779772511000153344534450996901542742913646108359745376606601202553494672061579787163175246763620870562990639614057895178120496166415163605752760672365844099977210182920415284525975846841862836440888699581477786386028492869519489131928313689214934211287285176895320049522564036573013492314927526993593433217487654256107410707426227753810460956372860471764356725780925208246983461731682289899102854910915346652279787029566341066517008554718532620726005719467573922755430760303461397801825133978657036889393598767589831045731161537040303160416085422763959358958230004034029518485217103535328682194837834643431572241358692988990073832175043476054372125173395498480849981466153672735215179008725889533300287942079426097750007480226855436958502410561153305263853566311192545919504991433595450120624517072157399316279531739688557016004166219025338487785305571080517805371541348362621081187777417235228644590109990618756760387748334674312505532972324939627722155226368075134300322942510701490002434356239513814977138077987634287702106344677103668310640777918909750394072677899215053127136296764737366118727009408113782320331123517316420312661047577601313960329480975762243925589334156307951055999958365734478709252403049069065422982090679137630760702463285896028046376417605275141229951449706493335258199605765798423596910382551278293678723851360846176000822594461088829730534321587501608712261607946794906823080674983513586123479839437675761402780680720649493827263780981270102863779093549391189788637703400390722416518588584205360443812590787124228436027484825188283362784782988653272977983532987672361145541174620497952070758335737900664514309350907408583455529663485306358214358013241915400716251896764489764425330451587713114784220810823733321967490973491849353348717596941585550439578655072564465831097078004069431658875204439406653852911008246735921882578011283993305846802454402889790491781522304426936168097377190334193417424550808880722016049802687289172931440328143154196140833519341897075627888231302045198989801496331826249001071487047600296503379503859013536449934559178901897702064035683445453234756521755492096570352528549601600630072294776962700143643695195358534823308155243867564621867572032236248209069710906359075414903368358216477736750135547330856430930269653694747453888645658178065800546937467359727659390275111310412741559642244070037489279365779510627980983662639530962756803979783942652921897286283162341362802365461296222253944456289771268997659518150329163530466122364679572476148737244699768512554359397590603582650006010228380996873012873085885698907726811681271198035293117460151836565392061175096887211375866601866684017074451361461602019499025991884470650524880526108272905348039646536664872038876167635849587252161986075972165857544422603847633795827910738551575347967737443895026150322404237053877665240938589642569763689957967737679310588043748185235136196735805826586099131200142916286410999243823695209854372851206294205146468108513242079038335008529964885369164936157789948570933228933120133055768268875283279699543606885888700058745028460840651690724856662818148209725217898638048051761261498343110169974571198654709892879488784295832844176366066621767652574197313212153690779196949763720376018800187302805686176523793415291979570653625398978699780184541426339927691163597094729752629868688338859670672109538674974165806687404326225827561234935229318531129716813719259175132376789761108305270816644495292130905448886208877346323108195039064192276796331680852994729806517508172427033567577611986199047686936151892615031494933849328564028780089096943721472065836112564669804212584234109951908492808633534536256193495385769042729250977764981547139483907552117948438857423452818666620437734922270537773286264760829288762637832741630646331469171180807297580267004615400630858421386036303152098779970708289917474189124221430324280913059785905337553992698822909200512303009437288103093270924547683442403120959367628963432950380075698643700812280625410197174030747526949790696305595085733132456107628042521782887624756245800822099935596549068277202876534917827396442115028278131477771371956448839597265287928427707596856559787341715384239929739124406981590597482177028317912791254678926945187703803530675914636573466669744926825304600258574250567761713957055976448304624259004607140899175727848456566195981966197688813161946557697044047174145320031234084817851711097552912889702624399654907076631341104721631561524173856366077694148395517015434436668922645797865790212645808170224060170240544282461737879870057660017815188771254453388522222906603083432191079556742101348612459475333946132623917165910296503927142073371975028510965660033004681054746513908703949953301795655178319140942730948687231584221400919205056241437649674606701444464966995620177775920618822995083402881069350173045632957190006875925589399816641290312461390664992896344167603691339183600726345445689767247811336071853291137805829354395699350936657049502584886098016235885193081062265532577886034228433695661934829085588137595240484508943920735363779871578492223454755904569020276594507901452950483399205165892343248920833860303686306733995575712160238153312987339395542768987906976293962261988292140582833094818989895694407777190673570563085317687721231329694437819449017575255762538632545649893894720612427626607242688339883237162723956910100851329878731254032295588855046192580224441141166001333956820294050906183451446050081291100415863475464273442606500087572342750076634929564282526820045215877021557860385749986404682549806449965047947433021908062218065499761576633882856442413165541854104987186197712457510617685999143595398876352299366149533909772708821555951765393834310909742641294440637159355527578236899902199289636094921942498714605950563996219854663323343841364779156928373911140218977372314971796832743645565515573932390306607234979258577463246239447433954335360440262120038174573751904135029443474702474696502192646731457435063255106012280833223397507125846137615864420327281913514340038289397781218138956263910384364226819095136854719214543309652243548729750330169216293692843402039047100356668616371571180321624504387178150957994922057327525504178177752377659557656466311227721042035697162905282505202726336808485235301073199985997949436815821908511819115325263179598735520571833428716040983157939299054469062087371707402892734630725767725738558928487615271976105301232865183635044795372428783280728360323514843872416055683813392815273540785967242815933406404911257928854978501376965603862027003685348135359948270685590514883557358823354409406595455546285063826662626725434967848022807102484065057857122678279189813006076002284159580512822758219942194271606567584048260465709522836605303744392417428508037498061879967448423716336048168855481380015962005949927601453108796071039925778788680814454928210307527391244023441844614700707806690543302930815090536506762728666500896928758646751264555104877321169676213985913708011328600134868647042856586335936250572030535969245259843973103348472213317618633979594598120272653866367729440279656111530908874595344743443498853797978953751476422833566488531777005372085244075087426491868580316180393372565121473892673366341737245953064202567036374636626280676994770995003004306135413026730298524260612504337878128679008040876809912590537039618122426851155123064719139969600302857235984896359398694641113153175010747077197547332353792903410313369376169827321455058286858755293525919721066983620043204285035154266710418824022733323258573410636839737041815335717404969475652134810143926534911094102144395255956280326752424464912428773920787330096039302349766151596563290742187418198724299059848492924299036421196937005500811226258654262167674548692583150855558558376767829650548193537984594564593599327795801386099663984634415714351885544960107110075367081912811194584210766902493457428466565350568032029713114945081453816165564657791396149920181264641421970069654945949320873717703494818963864671739558117590434895478020560665502525516402143991746844522674649574768401697043772962844502170558237186707188613388011140893009023806510892059840061149557005458737780656756024146259919691352565346351015469854584538374217241183115980057224297683790409031661707773557720569004720199901556148807246071810223741836344938126570924860656993333600393013254469389868590305895619221596248268806571211914385984341928122117243468071940182332021645833302587659583610886653754236945119981049224862971086581662056120439164846822895723289139973493845779751197315987682056339585194243008373320434381630545112051015480611262221574931626759228715556329784447476300304243973826189917154061862801188891075921597227687371790197286642821716723823685716783983140256027764743664166385957238236024203284935132793187200492684261073374677043066639810119629257026410564915489224992623117727209091854197102874067309267722411323413611351847506520162049974222270092228663795237105562928488878247627047021655802331647643514559727390881777963421948221712942095932259938319618169406532588389782657327331205600881708048409711149666174218089057485837304519812619768843966247014240219831366303076491512425361369634512002822972788207275514238075519277450152755501149227427842531089500008232514965954109646766803328991017470362817039869206749455115659292212175479785736406072397062066289457135236578457884618711250615254030305991689363183737073747848407656842060489741215029193482709282919207529155721599699701492324949400937972383315011335988916346757749389466085201900479449443504626743200939153497723403418627137285344231483487403411578849631615357091631530583202730039705946435361328095061541361178614811040668204748508071686894106123375985252459383003649501746669929055940057782263747364026868095423571090473300474113464904974533122658501139934738972761595173721405296478105403321300522119769143904191125721685632552248070321247208046680398786139698812752469197405903712338051467318291509372082024849768796360785900354218199029488346901740384871208061153986439121641571521831723413552811737414794830395179091377979677058537489974915025857393266429442595205865984101325180056424042481028919176423388989761922800209423574930620022769356767478970035431649192659383901231703747470490745058222334570580017287494374673054436280603085531556872531981967926533542833224023791440494320024625722371784887282449713929184017344619927167157042611357469966217736189942477785402440261810677120873211724470729791045982812945705480727606185825938583643860922965425227106788607248766198553058369211455291089717727289742659439706716090716974594034663714564251879026545475883236232039530990104433159786513201502305872948092693636466817615731090519771528203919469897560052801395054061604956976378137836017187902907926528469838096682380351196407486022379774736935455476332233035258317663873395638546631050311578516080433615682281448531688298919261705083822487276000668169752325412024831685193962342891868479593401117797752106752323210372593917712885398759603539100996293730850098008288344198661166075908972041267142773193371173204125196324905481749134063702467093721472368594521346498101593701259279227628255769878939173159064585957019689949134109640853417589841902939911003908340259298722814885354306545946181382038300764502445163201725858344021603792973420778221736544591294704395260176849166109868758951084930403140381265038228242660307487711853348757752042279163792842665885899336670116968901106512455233618662330375012287129899038640579016917403087651046070230584912674047562678140931452288628810013063654356673471930103097637923941574025857629477252976035382560742653658451276283872289273858408738593363772091763296509230088696485185570466396911622279392906238300976675446810081465225535324324331093477426029131897485812461525462953909902265672512426147299705872709510495361038393960916830740507779868003381999745359202912926015093807604795191869396697306341350079117318909841342604472962805558086396165060599894116436343072443807148908706366977300040208369495793020502542255635058349093023530101903670218527699071442067875062372341737770363833491682877074069659242145438686092988001166578219850664009147841314204774114392728478897258628884887926823068127518229638767219417686523447726479444305858520721134179927472910225270150173957283940214928177358495195192638584806419578788070098399077015231315264681272974263929219436402992295615821054462768043317504083516607641439796289936518409749235831599555357388810857938596019561991901951555902873791135242248327700167887040379369341008363534658571524790058849268496105908017262246114393680625919089144750232677444837587170667138995426102855836237334337140480176789310336810434858176336392142682909435941820861212686441073840883515183564982680371330541327311240541318188410762531878565745280325187917149163515242098397488471126703289500162141509597208280054874748804570242167299576551069727630807077745029611055310453539992554816428962765532249844511882530968794128179101889401169342054249718116959845766392690470780298997949805829967177119378394018850858214679173742098686306671414969257417847462818495845904796240999743921243590893191288051778696348869902864048492001939583041096112143053298559429235399374911127828547829748058098607806005660697153498388893659762405829997005547136657483580030802923920095494030010207559907578071786981756297780481985859925771519082011472634250364323339539518863124466424833778828606458968632798743604605925598967720820352750932826799364954044010043714622992350973268229501645637670497645165044325758863343718917272197358116029665448723900136404229449697817518166230094160356910969695672828188506613227007885803460136709258115817179975863475898047270998646061473728833103623169076909133468303814407281123634803896135480298051338184654419823622922969776570364385389972244865575781329743212050567869063110860713976162490890801862016968086508284780676283320797924481848031756997344574041232209851191569141798763919366336004263361398994206815385491421910055111187607171495105498943769437946503086279724422734467820224360926007000563366071699901348046711926376289544240851782673976811431896746033541448718196875607729081442542470251481749518294919008013197668696054839431808477919794448331481614813222019689533968801752634414042459201826830780878919298611000770331496252503462989790175899472681846143809050384984796671282791433504774510679435872539716254970676683905160155208962198908401553442280489562532587534593267995238037022428288445094902439674056073872321334911269060571556556638803524650820051059324495820917365643879863773186267965348326206953541148438778510062880256287779514186874446152871926967035917086598243537714474411991707258164139596388340169761983160293893084231145657777834113135711135821269402481923048552147767907900286472370103783105065453471857522655058322496157585764725697011798501189773371397007451218981572186241615995114183842193636964036978402719299581496914826655875088079269309274842066341124608664874829877497973493050643223955521369066174361126978213045752124205721647738889549663398133809582196284520702930607296304936591625672123128065788423338028069427418442228420085844008922712643533162435687175658765173401931701471727341993878013222387051962997203773725092596230065426670257373791995704417632848474654049647141301860450467649913418457024829854821300273217869837488118333861359379996231940501846319282366045725393453894581369058369589966079082033830286596611460933401821743545918061161218671223188680124237083621905459552130125131164116258835487556135803826082785810590556059933811471840530264010752979796579816284117867065484534201457364897244924153730873887774676017000870898305184112423975974207621025378854736314697444579161704915965896730187692520712401055705242673241166301257352625821571805392588306670004860755668044643574176131927544500710995703103961842339105801949970749043215745496630581509038866574264820941452170421437103726662242365840109474623955928767337747124070047420552387031018385264161630129520437716690272229052991160537695403275345953648474506814448631610843071497609631532124982169917316712588221034096020366642247410294554413705989293972252840402454960229738804837149472237033568303628998502602638001654698396593834624697793586288660696299503539690389403941990480175395766310919864394329023175596449902323128468056529776825461948661112167725210155438504332826337241064621680858107464709045907545038280274260080249186720064625790768936819606436347935743921652557305186720597779940327785039720740101368352552718358410882179888495638912417138229644088182776186227260254163816350283673633840808087586536827666337096638485709920219075268620661681282838584886442616979260152420517618947415774757339416342465499023381761296236800043341429773639380437998978009884654179840594298558701719971779894403445409575136796566951349104208658293517248891907033902970459384861763677115024866755164398015633347218522297870874326242695793031480589422239202925045440226029576024789704180032997459720050145348323378968050119018508319599442207139949836993403589046446402017299673316548251377252582174035433465942667119238573748208527265734490241026757578310400282708591554671966158744900835930775300268987838273342720635948366000439538349221911504384803050654955940436568726204944955025148968699741828353831426131211126847041679961008417488056980557911831715981721371402620772883762039378471949186121136984284523000168714114189770898864571819998574195323582566172453612974306065690455851806146486078326073807828470736137900315571340178233526990455470767345940751615353086321133234873380641224825775477518896609358404313141320428332749687642589893754152811074577584257934711478521106054461637937184399692781749917871196871080573408423730472717008366380264893449801181532799547807159323780095233661164326933841009566144229836729002657488383946420985112354783865721253043657559426953290887840934752490456983404236948333317156673412594110640813330616726586544370295706122678816702941943121469337201169306977147627988749813015082339243701277697579538838228657180413735573856890387618966836420559530119245240654768901057228805217919000004228326269060980441965476673163611085046948586824012282211229327060631577345459035850890662001322039091079615091987207429838856234313678715534477518420589346522626711835136897049052977804225062438633351535158049882317335652192296481229106185300941956198382963240281772594513493569926964085235752990420876968370346761448001907115343553643116199328145036176948392265138577308717876825385337654828932088110859158113740107106127089153285308694590529215637061261208638836881800226045464291487073417316864069753170604676121049532428403303851413700630999904382732865261905318427275930088111065141346149153406339035726774880376618393527060859064579887874436249955189598880144639986070083274996615014794255489926613707885037742466708216684044610289472247370135420476291442268033877086163593164207268270564125999281844767784838624483348589793471773418900698406446932290198662832680913699485996104589778791249580660062369075835013751173652340093142916467787171600622148504357526036928879807731281368574127866281730171178831584551882357332599119400317241004870431184265751357307114182342008486330345982497204465704124077444969129434371232601843572790585873945837938150983386328190717185076120187562134379380830073429195231687709627658067224550864837979974891259307685711426571364033546966921512988964625958192157354476657660718693944527630646339668470865098475661188642268637858551618583869403876578114483232726682534968405662490775344770997100272343816425440977794709599097206924215621811216473743606213205429618919223342253756716481510260797489937190726061601929384136423863458773764326052863110081256455597016304829602025655822004783240088860549477479544264294230961090339893807787188734075230347684525707172754977044667903256076409452578572838795732339391699409138880879383367918734744902162493865174226483152302446082452510736080064064718453439283401294486727866144415614246090162531462199736260254380169525727985138367545553849427558118004852778071153119217709030689314898593796200335043558506193794812848468521103199533652985102834810357913126573732002476642844485983812243760294954191196760777230630820962778091950688503769950232112868861945278008891306648532653106876010265141891948008153571827842126736482954915156462679413320025236777964203466921025298151684813093777850391058138794640571199327196107443719550416010209916145233540611085383752040700950972288152112872118091136422660183696478889118615347611588261162805701733127044053668436274842463738965584748932162687220359762393550020429913517704369899127487535185247897797894402305638117174033551341244995606588750678674053981022386879564332590315809185049604617944524082274200190448434997482395335733651791325213107413511072323163489734248717895324875708885159869423471042132782164241478582882732670476523580467505571195715387811693352993497798000269037392017364313039285901817225424561923410367405200534191781539549156571521222635480159893546883807135780498683149902111514432329185325890751364476270689089418096405580902380668343200407534177156382761098767354147260899913629681649947379267778336975723648075502240625773730436898862939162771734841717727087340655611444890555140638451090387295094934714574142373326201691958971142754056284896348829429285236279739976829402798750485037319297413860379691903252478357179345797549994241526102184517997233192873404023903791002367616517756549554441573243803451713155633690487505316625127355060392186768366398985871272938815297383703257791214120883929453145219916139710545222975679096161033475578729526902990622728041829381061940518319990304784211154629404864669065501847483498130976012151619302730745163393127121623363703366867550559725457642304651062398868475207603135367589108521600844972030114545531655809426606481223265733230692544309730095472751270565587417684573021057690100792716109899048186966144241636060788146178787547899275279488075045345549469992226912153030663098337337276320459632918495737237875110558123844093025704414948804672435715660584145462715915421372135973872290060951104366313579021954925181297285282352235152597244471560250207853252522957690454930956791805149090756800109013370601210158416817421780135036600225160354109115067535743594049422496827659229626403221013346522202016930019159313774422093848063389532296063450862295930863508877490929220795628659281685391148625939564523712434983721150369916639648610120263631652556795014134742739999290112882990159005218472225512574407507038662019684243608671608420805679976912500477420971491777838006273727114528395074805178121644460701043375095643836357747627324401113581842160890882252588186283816953899749887263952102306899769343226872816783969609006486184863504265940001593526606094662268205656900159390785938315027954943842073712895285849274962483460326968516157278786654972088147772518012200278300028600913403082369050119586547294366312227401046497484690593057723899389354146235980459348048861114746337739513485568233180836779426821955389501018474467285010229574697364554438086598108543361248348241863529300965320392923713813890760075146523567536665640179390847503325401056198939115270236966954078867462160851465239280860862200407052992176961686672575043755345433624293075326036501890149551565233720426217917103040943643944756478840165698305168274395249540945171714942608378463623844637817618501859142812383595562015358510108716953261331369549231632278720129439249643554446705735119880612080085862592418746751819098347245827214612589431874636796354400531969101381290618557105202926844044922631167523195577322086393900431318638181887499158386241353340876752445998641093042044256872920651322390194845788854815611410278558052165628703623268500557894397547000607579050143185538051527951861885704269617097006957602580304600654762763527134530310123449382892799630477103685813324977618668075775371799829206860129396241062952731247721376735300260673057268129361197563214565760184507015683694854741671007195378567335715883506751226657371741916757074749854185235643704366507398933875248074304873197811474968472583419376017708108852120437921211142152407593740776746415512528865927386455072543716096395821460118216510019064418003317693194105062547738141300473829487942730504552235488086778049316683389471924520187065839999254168706245077000750338750202468072135916680828315711850297021947134460421416671720325994181952997389090433023204008274914989043721473105633032910877857849480947186113293473567581969176554182496010132417374306621099461350866432758054761141779385120257940632471026156384189957108162391054606668776781328331139971875406069758326747977549416679368775789854192701879283760489264606562476127630933405645135657470668089176451844954751714074506859252429618600601854892606402451121333473534577803481362449479233674108695052615743221967714957701496843206840605821197225475786969803799923886954419944401370870046600228216855499147274467281509228217100996459097709583433902861384556070949407342084929495550057114589477658077258650692855897304629735634802614188879181903262241991882765601248163123593490339035606680869321279909884924370528022887526353681238644535627669746963950590169395703926870145703032794782436980504347929927478895145340178385006931286110971192087069433956488098235065213959310780217363834293462769221692842987486004478806557555540620287517176173742524150991863033679571381066557965553217235745129396786679585107171938048325985239931209607383193929726032206571672928992354414889731862741941862964099103894134339054524860845928401527455446590952138998491918586380166740813378671468936316928697449585324575308657890974905768798748588920885524604215184572038533910112376758356644389026118171851030687856281090923530309243040189326194801276648011715525207578082869617831911943841619328761168234855250917115170715516266705170636927409822505896659742394264413542929914563129322817971332873645728828330116368277563466061108735503552598586861928541784909110487016566001141895860785581078528865858321103287417486993430508898388458623839326329053322261237249933139946412453409945498961726934666401340575421019590608736303601615727474428849136379573976181828840726595728129866215301826228318436123453471609093973480855761905287928138171669349425729597047784736766153786266890490244477410455449473131161883742158176505618417041121486271707310035911600050787057584040988932085734663482370163405731653902816908689665413691237274993570443247714167481759943345034062071672984670745043691112867131571449299298363598598713031917726792717530250930731798258549291502302736357383949261342479327561638031003439418726646905017589038518726533007295013344674428391487728385401908981454952206794565571551414707076411782264630768951503460302175152848725834092360683387326081240711693242516475807541767005274031957522219104194805996421453244352368678045427922471265675019874328530424955650943747623529472200053126172989314515310095087866557312626982993272720030383364530729745411486021621733393569968964319995798270417783340737854199974176796974487336835953491781984436656246938376701823681976239259395685148972502890310880447363305628210507237722327599295215318246284494419579440829487520993394335486334964490693450078389951528109019943948162860607647136048998397883777687639158034907223380576255247005144736657118815995856779366760811084384082345488418533723497870174770814418037703922386039097073227675026678391775885533341187424759341145951626464788828168788501195023916209908020084577501005640573417745097627727675259005540370435098103731425552209331748969560695915957253800407804965805212803619277985979984737970843024976379639910781489882293343471490969754967749331182401033505530005227135595820098253529302383552968697074716437363481037550345338368269390106777962828177302463929680282080670995665459694608385776233283870730273098925659548543729705455950879260262602331358345314912948988816773879367956479300977373323764609506726959226187274036623454814161259134800703349178009964550035799306098522069072207466258085910919465790396570604441324787841843828903893537367230743803928950251340906764433580347325617797791387707938950722102194079106459844509299171030880592082461385107968847612055178322187287198611065677332930439110966688414069779317575260871484039899564236424276610235541628167470158595799790027885094932237228897724035883176247020062436239370979730761513413304302898238447357246926692892631557604859715679290314523423877737684964689538139005015663719584641774548208352857760478047664029635863455495674105064305227832200880597311736697266449083952709042290729925177856868500246454165954109373106936117654635297893759131344082667380915657083464627732228971978364455864034025776521006711248823783633066463461291011493571789549720579017398095828550059969077040420896078076297010507391806536958396051889928806306548935500051122079584268953193146361909708255832079645362021052368602487460632729452751072312176935259371233995758700011727776198203808731715043976307922038337863184791557524478038391685156311282061402948898053048664751070918792852664043910923845843640838073110142759593342621163182887527535390526764239003668042977695671772242245304752566759615148489845379637794981086223171110265351543731796543880024448668514119387088211914158308127222527078321984476697653530025642494453592559282498584882937244861366408650363842878264218316529589415059365395832537560235661422666147793796888678178319894782127585196244918818093078607292998255076913532621311677303740307647903385605606317727555075170455367673664428072511154529233927868892712575495988760435093193926055940077439448348044248002103784883364019870901796781832874351005930550204251738941383496563339771907266746374109741488032264611497886962621611650012542356502038329354748036672293786133534221342104497192583018278421595738453324905168241327946586347152160205061814106339905323533484628818037865022000651914869586987018210895711974446538654808957935798418430226187673138234521401424306897345827615463909618700344266190715021180259857014706887088306718819141175475570425965493573185876413855197819817756360320146848656696511294281817614091359624102017917377048060835593377289141010430383077250305166066656101068103250684533327637375687751796506330353882053969178913925522648083152917404987136799023470650871242883587628289095467177295507117891942286551415200593926625583096584922190136216960532154049258346673461963380068525616296074015364995488257814947934840282310270635803568632454858369782715494995701602459152567688680587834092033714696399418684946329050281021585903968283349910709810113219060567125251357708493242641902846052018910753259459091553916440309543511227016044001955052749501111133563988116774147942029982582446101611944861341556058376153384614716258643917027493282697856043125291318548821923901597636070058248016543521200016929230206087196443654736485690351149114054143733751825816464861583379525576013094934121548235836228192492382196694946599383553317423796493746169424070128576274423967532270062760148861008793787631043185935279189161500232618934223143347425281827210776294747527393861873112036612627154087856962573233953568937257769301567104838538307860620928280533635716595782632929860012362727553539219954382473688840186590620211515731728060274599092198223128956247798503941399781831570217090604309112749167913203480803536275903911991877290672994143849300906579126495612648452319924723598387490082733303507962312768889514814100814198223106135211458035720739084845337310583633713228300360030891953528265880308943921653827003178860843880427647410045155546379301195896787530078660318905586174864207987432514773659985236372903187508904012054216509124052195890021191242780673061905951335202691652097781287829185889367398904634280436233910250500230370234035628472088449645766904517192526129296089644308336037005927691991534984758739897164480153555161985813520886051080852849226282360938031358753428711534043951952733086013098345459453367191231197362521481608128520860040582560150196313257104668108572348207329215502216519007578451989535162539463817194686983512134000119802574980320182106561569783585521389409341555848762721100822925598516009071236307806838623569972246860859947763292674411416347526832458417718121860468111658851648031558544620712687208483199143419517824526162078976581350876071751988734515860961542492986832695049529071557707293491951570030554023933817064347078999797672058247540847622866389626124212935114084581984663782317138083995235047515864801868678308936897962067650694563963893365701995142739346286560787306023710639641704480001835910151767398211890357597713937495460922020283172269708690099296366512610975296537039648401408828946615936795468750580394397910863127159739424622577842847725150867976626051839529795869071632385916424258405245903175789164789388573743845785143283778949829448875323737629160186149922188941267871715245687536176612127771741480651693639676125194514029338207457096293312046919823604294896725729942449510111691454251568545928006322400846495161498528984767686294030651371568686477235227349925673848472793052606818498465408657805314151601886648246901231921537300709652104989740980369275829105333493721509065714708879957040797843491937604075231036658378799676946008869150044842737467797966378876731883477766554780147747753171488331396481772784635394665119274474407579187424772813837623426035761130864252481655577027364131747580929745663562630545569070183380396809559125919268515394389952582469827234007495277780629229356475066263061360931789045574078345470338932941945049971493885684106869336990744948084802579078467993701764017564035766619771350561854304662134841383799017577018197398281377947186942130947136383003895920799121047275471018447766074207509298809879200743439347886007607919646242939459770515455514588453969551098720531398836583157259595462705976271913011344782415545234098400354376328318481983817543241047666715512454619358028651493036498994926484445029610230213717859212327351176238445141621863682650324974108716760066609700772899062441723142052987953796764390295407969510117434663694169442863190795983035182437164335518679886294263701059233828653791305763367352930951449932876397800113950427241846319676593209860443160294097616499878502427551015025535670210884479598642185125771730689135535255103084758399810137461262637639211349914209896083025497394486411823014480116358034449444271715956267353739918451735771296906838334082974981203358607731907817885549595111894757068081231557506552889186873357945835112866647818200607190453205763644627765736118040731546544981450162307547496207699978947499951892321769352436222387173185427442546857798832015370710940416183686074597931308963010154083139431325748678297367619121756570555134906100944920186482708112922244381322121363530137411313740661520393657061303346002865430018897377872615921162221027521365986548072523560784840115741304914117369335815580804550653343310216028535780070261563653725328678879198622990298313214237622277995368651227892475438538705383005034408059477881972513828184491510028474739655595284828322023586643602981770174079789126591442099249899783450212375334685899411996879686015643164391966052517060972184759771892619864799808805170799533178290774957963331709278508400720698112207744972657244835013496745988376771922954885086639462035272113645282883268286078403541945559751245283854693107654619914705327230498792832393415315649360749042210281960135006812225933174636670894843308892984256083751058496763520642155343060979331060335205549498864946471321853762397266488142001270125808085276014663970834007200555241079997115303459715024683329808893864549299122793439103557251506475522579380440286621114610561930662009973752128555111486791962712840330639194067101347918984270793966502359096653955822199604422436347148736483005306812015918955012235149706092342647860325658735797430345558563534803199829481950854015542883690583267066745756116262117538096772747003332803385334744946103900673792132575934814522965783557633511530578262684013901402895399461374025267795068418107253531726059548046726027010664267227545399277894103800520131448341388590372497079903906081729696016722932680059202358496687047272551445872861214845311143719026075321808047850963627585761098615686322699692438393782227361894188684910952322946142793767346645424075620867667751901022640518039248939140390740556405685873644290812336802954237303675385005565428496023244741556109511786350518387983096122558033707413533471793248755298209193787179816807880468711426704402160151683932586624766503991508114436411435993532037054262619053498865036489469350925535528218630304073574177808379149344434382112606171275835958647116750164994068339998924225716738364376433880739800344812231037724850586730880475649258096632983649002189978044893008179415365157247913620988876221880711828848354462935538279294448865284237694178554584939262793735109286405313028583117267747367444643468489718871573678489289403577478559713983437286354033695377861727618690582031003432837576839941669274684632646258857237953385239086017771703740870351905818106283384870513727642393340527798839482649346371310360688091254933101165864738701944652317269022094048994878978126542169708599814476411471777228812986233894409012983144218564452101975993448878932934026099628985293302213379007294392054837240176614033636138894374701230288485650968180779765512484600596149023621257581689092880911963786800329337678469816598636745518814286548315182224961401421853062277837446257595281248765077658992003457000911341854737144061331394065033051384415797337603999735710654535860119290089640064073726787510837648817036885415765897979813616964875563550232978263559416506233008004750776948271602865385854428654016052156316898447455792841084472744599485468469997076952763200047823811476630865625434333504852186853601912653057432591302897093703884781962376464819224847847561933856747323478044179533731215544203766715751967804343241026065278648458020788269376059784059926671527584992724945388496295468069572655209004035643832850229285039014551800181035308111881549930424450890748354698201599697520900238626264928557611370374380076036914184131033010367019305974812693972121004834395591273872668084863758818147451455065052705252547752057501122796152776042715537389853865428254005288028412960921344595388070964708277663261584698735123439744005745082932226998413017160164259759644437644931801150328080746968196941767940700881046169711990627915267056006816929983505721663091206943128813840147517870118735563659130703290374201311471901551687919256831483738960889570059805310824920974547158613974758598953243053439779122742876902842669471996939679802009425128588192597057320051321669493567810642424719217458263840739722464957864952926720468520415474276723250169202048319224406603583639914788883010607962125002107925701297141993630903417953123853224349312734501632377124879785873881707480357739813234153559360113552190624965092979749620952218839060324891592185198101777518661355161006611722545468079060322386444705628015442497090238498197129883184099355713504976274330089970608048322863388707861406829935056539102264699228099044368087217166726042109777733091641412562034934681166533279435992633754701070053296840024030627133499007518040711476992934760366008844615480690560158109495032572949858995178552577026078307184972322516850650869155972032827002869121774135680358552114474456431887156507857041558071614811030352578618129093559817970696611048178336080417378372174803262172409319482979461319147590494874901704993366180733122347976036940728688635550442774783459055034726776610284096879585284772627344586591335500880988006229992372350473543903086893734190384984497563852184827761644285270821216954228123595059666733655710725004055295091537413697637104588143767750978183372969260270901288985525077396690958799383020644224526615349283835889201435962418715779969514759187133945927136990412525995305874802360685216544389659967579436299388418721650702702665720393402594506449209822783560741066829716449449854500328160797532932900926490831197300072033777669515840020773950568160031734001064688337470714986118333385839322597121459466372497385355021917769162199420886121437790159016319180889342088693835922659918090382615749364624174594369179964315830174142793151452814047679849096503050943803216945836979138539948347901913545990090557622402388427201179558580216955518002719473387940884435956067722297233410540435619539285344527492312322767011575881382645285264566357341770103627721061924668363931386775034347872731829994181436566725170230851856905067778273618282542874439655077617350078774664761375493105895559929643261386542733226319722358022242552417910014033809221459689176421962751957136765264795117432599698380515435865106385419107311073564382198899410490255669432780264236665528262200791785141451820739753096052875787536029175520994791784099138320358907978004149732211178268680777338324974367771179623277231994260599137036630327399256137021110428156678412506766303986231247758762476992716736502911574998561008554245354298964090830780045822451342791539697997959725962019269788119261429449497093024771237860023033895040880989889811318231058694798021508804153470249391232877097953981453175391878673830609029073521402722535842437019641682060680224860310226685756533152512935980005169381479063037601241589648495433331530787085547319756763816129719493892821774811495275059956796172422045440810176802443510012433910031917375941332822873461475133189055357237785328531425528327979683344051737862976718225446283025121294308494099344811474650648954001337045920344136659652675562650295163030905655364397724602510715577347226606958734428947211721790028816526694523347702505156463336098998762652557617226002429327274149754487279756667178687488021424937392478840072475990349953323898557114944340644243309558810873483557907896756789804328442291583759156448689876207729575731635157005291501772402003191099837066473431673834629196159228659592169150729839105468125344684118468783262866138439564154694528313585132359840343539261237331947411374318476122221629341828623060464749523342520793828012266389207777013549984866639369270695699995386795434006246014404491026046772485038357549949345994541072617430272929853143185189791564586777304975510023172674484133068013790384703399072138029484161562204488097602646131769908562740292487619608413351645227448057281650565415881061755629541920699832809279565498499380304227138872922381796666453950799758628234530877900800672497802198206026493390565989076236605963329948985542550426590079988682702594087454062514983274618333944729034640607167993533406049827463383313761676140988985378394531971125464187681010744072342048441923086883407540308608996404648786790796630433294731368438204161861921273162097581509400108309498333489568208413418516683880328225094344202284318129763204090795053357963711952024757895655643638463366958986408521106026560807010193722934484279564783272566076139768493212960583317275626873095875129576336164904964111272178536254431288965841885248383343259974204260197530552022105454180796511325343776649947683738685984970002037679043011178257156423658264742365476528569864188479857483288909024956859925219235790413214429988333076406362007623224499296459653070370292587112820750721269688953295404951588618047935857397507382045747095261266601190456204365376904759902643371368314138611765907026844158252049364696254537810441974454098597208362198708530953380016788491346088043219834768500638552492321159620718373535397316486032733801938187067864993440130575474529020664404152732134523527264143736986817914017966674760127620034997013004254936721402581676984938972531768505556205644704515402470963446620473865390661771822602041727014243843182844057786608461005088135219731997060821250563590067041159794225349242929089601410042242257443477901726741585712041227631715796684422223315759314703735569094539961555930006393489054195094889538795140508856915058491161081462294146615530043517329149920229089335270422519277511564070575203119961581167580250377358799997153459479279765238560049787887838062102721387281832314547033464493510635444584841780030476163990349543834157537191320890906245992240340520573879627610746167477521997949042091320800915491674181563429368424638288370484363104967520973133232954370743924704950257293676066462777463875821392381941912228592370165567682800091618259691429384476687191553574879659022439099436336481514585956921001559190719952708490507439445165481193497805137615671243365060164806623757840346019702858110763123074866387761628495378067437145600353956153501827198012946426217907274059778711109096307355817894206246373733846407025942694236985033299080063470418846020927886674911964474804257407110007729453910053608705147629060939844371853370855893899331413038953100104713915187434397375677316309599321980591219743854390940230560842117210261470483600757617550196691088891126489803245643966887273379473172481293761326006236144041080142819414094480412322343882442000549689545974635794588783097593108808753702032889473003993605162755172532739605410513542893469497833203791822300034712093200007130891317422604246591101281319494133768310060298323936306461871779065517012424215936545866171244585083172973935060949419917149069009416446509376944399071866211330204487334098265659751703457497577011949105684650597433331364625653197500557865551789347679576805207627090006372903389926642539689471225898844656983965508787662029230490838094766840692731961857388191556923046837293319803114001219876254850752794721120689228664920879024876471189366569147472450714693310614520501774880400393633319597498073397242591764573871207387217805085465211148927524109402622270609994591224671338849179331248442586950484027783357466771315068803762416437827818251457189632373490282631405168944036209445990896142724539979258338597431654673785293887593110442204365611006527449191319735537173075808776431553771176623832644264003050832351503489084903603883316058258951428263733691450750093179790425227706263520694287566555018028745833507594058754844902095292727668408067556290735722522945297427802036548951105311859544183816469726120350084476980153660223203302417073853740648711795987878407794289083011273347558953575793413291847210231417475270612478613165308484285528528469719872613060707626975465286081559410536128753785898745188306809515562483118228784826162170025403628564335729749475667248468496265394257568319421588706042697686737522368082877199782151913596770200971813075836408076359094568199765025609454913185516510365786747725295203507659288112820426205552265794487464677582947019793247534276719811938440297817031914898056861315075409206119850273674613439372224983680787901212442215507747999310815258854057463718362149197241261576681375574166278800691365828094928790570816658650368671812058231071218895123135728764740729860492861662465508484948580980377224742855740791700415245857707261101795636377524593528158471922686364924236355310007784180021369191626528646785334771013411449638206594836581553407009665871267464445744782132102228098124986836624530034367508301655571208716077120610395317609294892532304106694405286451309212957287359328051634517243687025316212063170775981568164018912824168450164019344721111073346716382195706545812170304071825935252496590738775310770893519206296349031245845874478338453072002972698681125372613770200706272095105359274308287061737490977722562540368352008730463976913862686027373600278227788565780707169212958743401116977815938291792078496277250046821548504425076290000987203015389893993541676037063979531977439409078026003393212931636736818796867493855390955262688183134953225834920685071354097082609537282710954857890232803245047157411751418863064856499860509025631554951934910856721176770378389905814422398151280050910014469220546868188949050401805127970850112079245271449675349746938864425500081229632895145465148238651965422929218392200720201186706358219311404216877141108640254631184766739174336392671257553221893731300382304791898093608048734843441967801953303429464919419924962417657068055699717856471175284665748320547903946239003644996207239829998653555746038993769853448038344925966608599591764575531413840764038159637443774868888548718227852786917850067303223672306234018423947682994594437519757678735371373331304203441283885227188148735550478007315283481333074779421063579972558522262639305489258517232251880666447945608998937857241187495954087659387388285248962657466364971902891019969376231506780803547924651483326757487963027118834260447154370351830352670678454100071403948640701233860362940674350569235620460192949732552219305502928981909066314448499758216290776088289555257360144767497505042409110364268434005212394722876318092476461103166917075499932725557878270416470205824036228526335035081706147974561933039200306269140651236138009144004493637315304905820113645251323070802413503705535563072179486340104460821120726072395943904690107465569515240925566843241299440350302984855369177606018942925922095767760293606718342860216693565215461252640633322869491003834510178251215803107895297027255439386007658155247725748066056792573887158834421612370335192955551391530640768462137129736277505619460424579529188549209953305136866997736587542639250900504823659036548217995688446873858475431141539093964170687950318639304260193680853844316945401152780146085812977342708721983206665442660359343968421625433769519116942794477121823271207322309677501150176238426141355008052916236098328420449696162601224791055243096130083853165799608557288029383212089711451355858476997807352662927787132924046508121483989242350471857338298098550427942991647259576466832035576443239370198039698360285634108679056894911137948240408658345962664892003701148340797973909393979646996828161560011151744862346063132728624072781623080271783224300535481512318610673417242090234470653626136744610427883580691974584321246683247464348504494730257396068323775275544996517219465400422445733258850489344391600462040522843048507180952819620929873544722573409750330516154731678420577030665244703968252995500392054890770904594761609035751488116875365473525919939463970153789050139449518090860685141655264487421926721771715597834665633327749634042191702428942430860435428604751687302789283016893225048665655039652212458597384718725224375800673745710656579816253700997622197364701785580657262693660573680187605408863287678431434884187797437981276352618253594136728442685371690201592481672298162331154085179661110685794299623396863067100914430340917203736674879775848249635535764551759884345850983518834506418678349129730391557464754444287790995406261161810059688426522823009314779209789232402440128908363587678297569242088248830292965236308064676439330201338416229475614442543529820170782887909774786724814839014731363936276023352125458161807684109960998300980029535542930759488995604565333158863795251854352942753787078121095343982099613541858810335469791862046414918862273498958303210078525978030012880209385285568709094654098135902066818987932135285630163209949212313275942897461664716428839480530977013330675620496947967328177102355203762345343012386454535234099917814076384916865041562138726103742568039863549912709981232502585042341265266622172794165402303818459194592970820874402189015376696661736817833329328998878266233333090064820488177538231834394974857206538282963064167391841538337173682689969462901262601671650142123841148135563699897784514145547826932326909246415928118244887080850907007871320173324190297049584994034233918991410141322085179785484551542346451151531261450390698638922651735848972635430955664756463710662609894742629185623869678138407125365093034812624548029753905016900841997309245838134441234729441695847547157990899274463521690029516573426798543619972531945873908247903258560129320654929234770206024359853932028575250124263585093056972123432530369129066400604025804253281839618907890458420754445920549879451369525127867740714546227055111708276243129869708520080795100980202073831829479774217464773579791983664905477322764297790927682303090568583663547314518710994159451273862766992526880516757831627809096560490942032661441500458096256073505039256954991700832766662508895705841602552433333750326531517141815179497690427241022093970864307907724842276767453271177070930025503973088134138935838522667317567436722594840731632139375060297529983951073900798891494291384631909480548460252912182223624199229259134789985001841337461565562745310935494217511971062481369198468564088275958684159059047206922471415139095662428453862014230882474496867639993585258953725873862503791298018818152394952381796473563784729729657136132252797719536095083767138362253766426986777822222191777661785882946843614591687545592765944967591587410561624627742507362098004735220563404327793237576935687937111131978620970968172580107910576234516261179640053290559004581980819653737509284784737175752096414541981220428491971522837513458440850022212974960046174769938223370138053350012348608802151345310956862998714708602594479155029180782006053901868075980011527374659615858943190108114429086884580990017701808661792860928182987232791636721436944380523266061778914857344686575899639843377223444401067804301861328547232415160536662657048774324057164975014800333471214033063240246922488280754722779994277935265117737264162266319059380947684052474755520995429230336633131954374643843183511374108892740904495923012075084044731126306834458764168595573499179696479388985370005587463940069627857058833482328055889300535709793930024467797802002724983263912392228496280119483998235840163615996243287332977156546117966515633375391583849193686780595008009070705143220094698043490158512972389955110172295305088854390979199260957825956824392529181963601690743359498837210896300850975997334542301418742697185692946715817961401674802228765892644363070876921211547365929226139609581880621767155930826550617353126117270113176130702051586643966976579728933902584254101775745255466782605938093747513255001604285219207502119537344397308559608909267427871027517353410240068841384590051232762643516193190208598313959024376263979904650347048365684845027558869182021607662768851142461337025873452974822981370455618848308020219555594605792018062207612419401360691238795823139216459368760516257800045544641986937692380465966102111861519348200356686580185162837599334489154109374155519157289545589756255510500781914748990895509815834649112518128623911128328366108774016946593546322142491710591473449171846568930979970021193232021231970531511057017164582324408618282664509897444349150401602834036211906799533800090468037420284369758525565350428955393265122896527651295584540670298298004555225534496702702186006269313013445777524167006560709467350983302964560652197658925659363026087712537243576818760097368399064724011999805212715983530238249094905017583108090746046373711246865635411585197851849090226836641523568259006584364781836224972403358389893025965893694565548337576558384288464771732214991037057320329016941147185366999445592665704476595503235941721835040398371173859522166763111939968680241790350008244115904167332814536152635597387934222414571253170788733572238172194897223809539299981396232114825376421654094055042223627371525678407413708333638700148292709786533640137789265586192428466440702813198777820513160321076265118200401003875452135690529502230644595325020288843667538595479694286603181452340679618134430497889029150277493181341878789975120558602845687681562176907133181898685452683987835719845735638020775472080945976963795079183835014892341331584690015370749307538060092096205412437030475995993907035894379146750261374270912639133268100395631314037965164309827145129376674497542233393729515315921480112658031933112119790785466161015673221936941396560117666881180487373281544471046023602408622365162446787139078245825810917110941059301699694471720763760205698939327721222588627431488228776900727644948349173051275881283944370279739572348219823651695798685686968388486635927233251290718006990927305885508465199887354580967412212511982812487094829823252141908110885759181956630393599443061865930057623107389951461277087323674648908036235549492791262222077084549794837853316590677890767936160162540393576895110996273696407925477080285644442845135576460768313898687841624019306522475553852400539367377922955660324962306327406382513786523077877588897268885937966042112534616015832659372919920521699557264671477056056852377456309127047863959047789738920723530677486255434354828830616115309599523609986431702080424111831444880899711914214964522875326470822103155445245311116208309103105907065451735866200047459153254258447557200870659146562903312302588458925959853711459362477483964580516612638721519958631801320842686283407263316131539517483856194303658880396371928237393028980554344561824191335739081049621093328453649452666451259857125878914688508351451770790740944227417741174807521434050060305859116640809770511032576743914404762445544261466997173732121604330320518066030028764278205566790843482518969489668679826694245131135441867240457752829987854199539995756665278043076386005691602818013141281254352724089678747765591634622639248913463083930581565816403121971145599058371673568354447362941303362511156043227361310280535660111833718855967246316749523902993377505087256258671428773283344977888968113736517134917468741374046917895939244561818566747082168430657040824129268807320151063753822747151636208187531283807402866040189488238121893507310580133987099121681818476322153507053752376341884083531361265443567487891634823004813983463138834028169971942786350195773312552122852383198782365245310885037168550132304573567423811973030534509974181076916815441164890273976798691673240758487340355874868335826049050163815186114236343713394794527262569620048651195322374701527869612792847284361772438358018877903938659152896216456666293809463157882011086600477304592779226594867442013173646583929076627736024580348257581796735464082710907521065537720451845125247505153017430567460283417797541548487330578918335967131705791017983874480531050094284011332171027966076651810546573663195767585752428027598357031127717170250145348360163998128523823509303387727080971137916734841415989691795121898523121730585933608158224082170361988400951362888531698345219424773038556995113149685873674435564161589688678486578996270363621050837474922152091204461745881488734850394405519610083232038001675005172302168885616740400980738411017521553814856569962437672987626771752482367858201769919358720094871473384472551832335188756816638861765895610620424169424913710928075848664285163000029454921168100689736572751427708030401588934889509830153649891554954644791607865244669367650661213106264787613032224156554895952665606607188756655376724982653154074512194043097412882711744974382167260923810694076884619185608531782896265257713018210102151611988700366334171376579232787849187342279306032242765297552400338302970748627508046364911916358717622637953615984116136986789026794058917696472757775357975986289469160887788294677856648616159415041311447880671503544748937998914122638074400257679455334481595115603209056861631205072846110842629469544272303884920503986213185441610003182252407743008493557161808225207708953768639895566618440839221346530893889713481736280028153241682670121732286832057187126329080150481791588855867787031041900975347703514529470695185569994072197341198905156476992923322582437794191401352741866058095438713693818767112411499525172510480711446555530991121883077162173802234548311834513426882249494973314514995278484235670976094546886541817932618595203077692576351952534131558829496091281323763401545798550532363821043266268171430537800977150946747865568114994776734888363344028402555998040297249517617258448096124449734010837899057068872970119590570781551848734712031124071209965527399856502638475531465292164482872308672317022407416351979887653575847595029728548548876527801249199081921469859448065879490462400271757349774401867235430178175548520541807095164778136562260702416743372938785814517669101665082420894583286717983676695050255112001479510418445953480440674175934180926509776542256053530459654644506969102553439347556161996715900512649344916131594420481030192047704941346640854947324135181256998261394973133870118116714990550587166433428154867591840965088262665447810765543388967349568044649802213161296434651864808776349800854625427864633120732177504674317360048471952543495230860254507056360074873767469069501469589521826441534250095583859615300060787651453067649438083170729951733108339040057267797275530995886537661765433864830273273989430401852318269736538518091091884721642024919586648877633302809051573308182866097006644839207167829822602132064715059558603260659632081877824136164143200791789052424278687858545654984796487365219761220444208443151772426447395684783884666702014187930535433859780727745974884450102781972867520439196132318970215082253323911939332017153247766923940415613606047744503329728987054584545211757712785220645267691422589625563496717723171427610215541171317187506612033472824663335419479428022563350248256014398612130680795944857852979894095349617840907972252486182829112278408794372430933849125419620983195794536395230255576809085032315763489497611849188111098429738082214471859413242705609954241684186281713915033715298329202332943413033744294100105978815777365157815533979414147152612642203638142419746380798412613464742154091718216564282373893624680294443051820464369362501204416915889361412446865773380777605947943434525192522607515282092658881088200997200309775761226803455403368793188293834826361475656332042562434274508643321773070026316672148766614440651203401689577900365459600907155087506163093121997833035279656970440582168647968204583787727167295179892946077186989769612583330640586919803881152106824028346894271381998658528030668323873895232387057245079963123182837309975547110632318764275719242093679606467476244002814089020591617002092442841272389645811915957806923526848017296356108329809425530318417368060968977834953665859139512069829582922826431332335175765239372689010465115153787951039352547932533337740766195867514434925138271549373941492315929607829124404065451909275510257466158875121620112133354812102801251284171590702345066557108143987934673544077174448708422842572564699456657681900799060733797955923096436812914531054858710542205550340675783420731091033083924547732248431921389487206511096534388096815797049412609344732466475297598086431829330179479141290523514067170146767027611726631069720211505961396620484995279247080504625233073221997605247803922124577924711386055459739080048094325905490193298203058663540271251628742689921361785141885411581423901693852541206492406032556108752932953230340263407684171850743114979872564675989794871991073221288693742316637411470916563357074960324777579717101597172898298380756810850493364371983562860593268833183825042348934223082525623733256563809827786630886037237317782770380812917424044368589695008892846432141177131166479073574626526347143825706522147763325812388418428928513027702510188843249636610181201956892151186644674807065656177272383133716845821657532184873528255630400118887673487835457714657592116444876030919625278143428491643534104660450014030238831608235532951288530423390341176861584479459075032169479900057824999743326850414160764280723381394985295771830641678295067051806369280565392658884490785899029738145166914124333948120753698026000964657915288390581469259201917828383658824644727598914035723450500991369322628570897127531051016471157702932175282834207740003517377502875206990258798730224761190958378948356973415238234977339506482145551813735829859325459887505678318670515358843293589416722373617763840828338996226880981370386944381286620975309597082891591917018518565953098297867398259310733752628346626706781500581957829460812047624007016859698158089507920685562274822309196365530932663275543197223189562212752704987795693286962934461680000303210481616005949904126789822850049996125549323754003205321309037271464608983754439064123887791385255200117500459362323682695136858630927104786929767426710582895874322952272264043229717700726342940703535123958695551733338843139862272459976612852008060273812942788092197866315007503075204716429068379792277124246488526055116747866162044985856250864715231457068623708676967859841667325839791430451728501935646389148793165333466841487258529534935797422414701670173982128845400689063387536849467902444617391137081707748943007708261122294210904270377572939004632087044318545352458328467799058571145943658018040363460962968830329046915223849796190724809904467165969518585913763397125784777622584622228624330162173085516256877233928138741628017697335908623141790821800757369446352242576620728187371691045393042853877143828960011552758009525639882753634487911671026217046470278928914352567673322362703664289740247953101109953429590336005354678429218777249261111270745273625011671527036470540567989055574861443624782743806487938587253737559876286197889349626609758289214113101354975204783973673588310269380760345707348196281545083012925973929747016050618989324023741109725582952499267538827763678577653802306538125660945694355243019572869110190817526057903228640509990421571990465041905287251460929342693020035263362548561910250458840878316781967588225730538634161067473843944820587517503519809937812494960030724019094874003409878214224362273645536640162588615753396461937439771746531662275373359521965989251481226372264010226708216123102299396224215957779419720328629994036374717316676995230913992952817234049852480001119768093218636685634475991065337704558068977922333123238660293742519931311542311520356296204621165424559154177361633878921042459785455048295624593267187370393342227902342295175908090584831905560138597608050116996292748223492095096067570849491040829239838788428716765951028131336573077067016186946022920477885272724677862539794905024120512478148017888876862501373853141393839339535977137677546196263634197228844821251523668925718833181775242757410443116472581622716601653474448885111124875273637992127515396984914696184306659273730449114225634513396796926495957889858229850516628447505013215836949358019171239499407152898878967842288985555623553158676511135077021411074714465105082948757856561319868277988270071561845002660710672037091616910266922018530778268293508703774802105798705288823873275188917062184726333709216352794702616087277371318921525699155632515017977086994768295672384559635303700842028590989127887411917784406945478481916523414245160098061643646470975095941299636804196068161763875005634877456159629508421008875033853192114824970583215983249557986535548633969774489176756620974418505001807837763941853047503134931994164786840051003856945330934126879286401598418138194577399083627779572000952112832698803990012603305113019696572668235294487591251760864228444658490050749628597028284753238061645111666024681198494960624071276766599643978684239563600642962257154010571293390714294241509817497367376967953089748961478694732623104174819811995686330511474444029665609016799135035933904104189573733083853686957489510440645403169145487981222428191386889739033488152916902536572708889966831184337857036821469582455139079595791417148921475694541120042407493475607565035901260445059501878632007621155405618243870465511305712149343866166269277538607238134698882684144719911795318777692657152560377136990112242775139048319928197282238800285360070943438787964625014751157756715761412990888807351833761405988248700607879480799079118130494628987348124868953043496234858874197205457669927831856109120729460750055540306435358835119660394777132233291233891331836022821415120571874069410160002962122336519326440540786090042161583162244322706765772750100039227587852346134419844907641086948133605719847089229003039415019722491233267088208270064952145628880422125540760805309169896945280372279763506072641667612746163207494033383123171241821594284649855657580326732148130976914548739521754237785462414117804478973708305585848011533954261078685249665061310964928638973597081092871835372414023805218600777439106854402796815419323185354224739281195046086152673377884064127167775107291871677077970039484887396639061366076734261007194091704815593513639484730588632109040225164800559263572599473958787331623745770323951884655914826717460870320682518136605354675533938224064680180800761959517366845727463441161208267121983268242889384096904612731368653456885455909180863185231562161553767438093594053956118864039841431533520115921921437306976292696277206762687700081471226654796645856246287094794237058532884105769140506390785461131541952655471453062842184143973506876766141979959311760111973885816877038845724243922761506442814898542424617169984132565638223959363682307424594347436453708681245358744109265152442353774184844187638694054308114451585493460713649880280616447875768676454151295740070066506535468176278183856976819698920800294050291073608274156027975395547043519645329448353850906098433873976715194484703863497581657551286196595684863960729656654837711878055302276736376937081317647019200538311497306539667736595571401816800757910243699674005498037356125468754998761999138089215290829458925944240162071503228537981385704633507874202718202701144093580479538356554949124457314336966183405186961814445842177255237215605760207664667885635845492039948008267415873342180070341823324098387853377934041931462776752116129297759750169670873052005835669840752241540536631267871928813862920251989420326190649605507803099926886745791174539432492922610513238468310775589848901591055326185549520131057696830605681962523536051871204036822645148505460687587557914209048507580807868302262772998262634580452120932211194702804182526293715772283359865604171611391603343334709781937608548443847098621183567198901789453094192116783451751083131714246263136398913127418294670025704045321236179568462564714870133693488338841641850238837093502952415579702590337233270901901925121601810378082497062191207499856216722436473200417426377144474725250967002040530557457190965095151055436926167640834171701450904401427208257282373667642035662381715543380583840704286403171637830047394376757196474603735254933079942558990736692908961940151810771954804287415168083147203820925206912617722275277893585683069230058338852296524024450224053279841631315932229899038868028123796783780134959109699795353575683146688351806786765641311613012316394016729415745282828407299040848684084978569233870513179489545425262966072576190227483566036451217106895443184541318518542844611905047994031644877902774488660446537462620959655358918944825048631536477915702929863009475627404065856546777173906857121168134923136491189618191848236674039178991379166373891788191867066099618582693606933050771309196077425287450448989552128232909117895110539333573322747110768719323220119681454859831988504027342604661453261212667855377082744206806992828982259338273155351693592801334244304891666030043686527783006280949948547181809116808410489610168122816640768930446394467697662238104016648717962722124620888206220140712143452393533878424317354739735510987786494792808089209759918288752391364150916170633288865084515865982720265134639036549837096302189787679699785538153112855402165289570235488334678689885575070727441858230679429780439603621385139912443986683214395743354462807640744589969670629537162763437430286254275209798165098533548487926604516162701025003007621787684628419475268325610131355932769790398458367355044436534970242475091127516514296437080920675281994694051753334911948091592168791891580915782167217413904721232433555512499583505301757466579508379173348555277900957758162492796772559326848588713613811117311685402389262168274572430874463508452813640524390405720459502432787444339005005456766805350875157022988383653407610785147932801104520742988964818787248859717654004243104291081650567696648894163161706351982302506801018738689412538185707132879287355542544302869993937215369882351439149967512981840743619353886857367634648843844027899336949655711423666196031074278058921005148669499000163995595555569018328971178466692877850383275141652103756319866729356016319172770277418291533154690195123195204932749957224370762814507236967911006099496724650811178206628617906091764727999756007197312704966464234733033790813753778870122608839170602984104289625354552961096429525672167836173877989502981440683051871316511584389252467764452722782459718638043488372332760852457391390521035362790049704927577575124838588929572918683656832930818729714562425617645384345468262456884218106964604269826939536305238577367377759966664134277834152996637267537643273500445542875736180138457719050231551216460695372714548825535458981986613369697498424277745620381683058685556268256914455004553344273636888394485874977167887648284863392218378868575813026054402687052843468514281068347453657723014056781530492972057683080164618565491691573229184883653087025828045593462609829970760421897315399555205225913242803607892452602758082811415244980124437958245372590424173400185356521571317801352277479964349825902643641796425539409922870489384382637605269679989499241399588047726046868318017199785976090049482753047635197942948079586116067636077820581991954936777543306842687038857319194460031491760847268820743003218449204869035994956896510307294219068627091696751594060920839333741917228194644260047216856429001109978773282015453458190021924265185806651624354862132930686143948092071549290353563131867694566430993109857703631965715209154632538992601303727348701991349680619483823275831290542118145519415107860174083294375541449768171752931425330983427891428738894625986372707549544193384398867365305436229171311056098056816329971641998351789199258817061304595001742938664830593946534644368249418074312525016351538791337584617858450576410537039634292222434824153426687970727219199417700253212775172463170582768058532587417304293911406079497389580311387158589456597976133846559688237251435372971451417386022460324014549827732566989415655368786419939385639108345308916945985962745861759266970157350916590610824793040612969941757511118734537098188886919231829892348864690645896393363312914353775420425594298743362003021862297698944994867567661031706896046875588548269523258284303550634988633835782947075180296214882624000947252763843305630108060329181718634212964847005483683682121798822410141738360080699153435445441826791536321938013414963346010954915612362828445916752313361418764681921726713562173716923939422219186170093795155808999679231467857170455599542568974737867607261913406769472631083694563969047831925928854026119413009593434627847656988694374857120800770950327231601140239484335830481296024164005611300465308231903083419881116674092803688419271174125363338494558030376782829873117028443257602235031268452256202141003664388254681131137856185577042270570274507450026511709047176474088541887840361911559392264860678316555526856236964339490401120633513867475000347725088059480647927557683612995610143712765347348368381419978298450701404029592336571863532173081605063665155854294354312912686544400012590217427623147192024748906317622550878475642536456191246317135647182670776087734478504889999982212446541032267855648722232660884090593955127953775365877341625650070878620426992314398528935751150317863701341223268620175067666153580052860035849925913269598130118131289307196444061077364568127404216934688543179884722651671755204623216176668372538132016956855083796988806020860155851279074158051457047625177372537751840722759609392392917282807675709798438666634038687093824960948453525145982132900745194568149403776982613064343956255759525738434583540757970058561099179548633622681660145796497528680877411267728636496764143606775478481279522934121461336583004937301564436231251386291984199539360672339396316647990187276805963934294048415979332690965550503445864236684161078003070258657265101546184007199418513097657895596444892176096482065667566605690693268322213938750916679389997657779699248583318330870140615711057042598544655371093358577309308412707016680007469703739627570372694526731040592624387229282084591906316292865442797395266052475605089732285749587693469825315835180038543099647858070810291846071423022350842558568192037715334552781367316363375758266431109132946688540547239347648575000115211137592331463200605700053295056915121354860563979405223832362849251950582457131566311814373541872322024212455567593137541267627664820765520115061263700887988599874135511422935306887843041422336733610478637184413479145427962431035841110946167554329858514578448971732706595743785463483891574102856381237067165906044113528931306857702521211523173251470265213438275459023868646247457487384216084804627510657906493350132947341470230328394665813515314177380363193780901868219870734525713009780545299856775529843785995390357781136651141661333812240115500449490482114165520142776013844010412040874307506992692349311086753049031171695997819538302428983556282577665164629071004587762744170830550819322915088929980682111558229753875120190037283778045382561639991497034082864118796293552148448610281263914173323660501533297675643003799168219193797776974593995687956555043548939666344002819112381488823572849067724207023546698915012211968826059658071746862597114434233482105118466491026828215608670332689662691284962792354984225273591049333793315780682828543029239716977744005892435390917059713806723384189396779653925081394010876787372783262306900621832631440480419441841778103242970333640265959794070246399555617451859913080973236785674983510006126287022516543585586324958794671068905009496039809781690292998063374411453318195729398603323340191847918890445986435671331931763857901357222524128728514386513811246381169218148271774506662395266974617432726604110000999713914036678486401418287698866239741008985640539055479922934992770147361433085077760865395804227976420565789488173142296580645565329632342356692780278469071296704766914838671646854258390695596216204795132814038940406040836441448876528488696027602993526172214029640384279822928713824396885475350058751541083914775085353691458601354486302939800963339883875520639302746191830684407328116455897511767863569889961846746757091539651231289362825681115486216955803101524401455242551042197457847131682351472346575206093900224310640343253406983193924262294751386208046711159414037697116602332600186913121321361490270498021220273827960652180411430711752959769060529875715589564275270389553025483070407742758319091828716767921615519014002166534666851611828451962545549102127139119268665591260318641593566486109960603994750645396727058837576390053587833486465532882518605711144599626666501155546184837069030281513318083721975086748245594295804255701154097839850222298898137366438735329318318439300584365198421412630589714954140669529436801501413599835247242594887647658884054567414397960501761866777041114772014987737528988713777685269864363587600053934336455084109270005700493907481158155940055297983703507153886129865939754915559479793238590818089713096056152703540814129765326498027264437619112380843240426723974352508426894880322358878279805245024276813311779863785907715997455359268358643953739410887061726512173307389076158031649352686952270186393899176987413103115764646189278759343064594198367711705377283143039932856302740414882776601373022810461532792494457373268355313293282685681223731756202299316790204132211811791694956632546096562403100602728780101527011358771515992876753732228199521738178174049916426381838736283974572275491610599271061282103025565729034643816460556307061063523285095410700048092953272490933652570845028280535070118562114471449376881873663266937842297203458701258227783450679936674094506671247288794053166487226682594799832452461536113415947872632202382485744366473723193821345010009833781436309273194405743935678510119342084150713936331555352176328732199942706934335160525782760266635332283016161654279408288369061580654078066266760121613397170505046773894540707265333630714557378303670588316599851520100076625595401490376834523555231723567428459686428161854221596027876722171257753628067601761029951804412054462588837535470837019040964239232290330510259798550280425719287488827482128711092387565470339885039977797976318710289259624168414144745964066551277209147463271805192725438696368347289686620940545548047452842867290569831049207096610929502173390968187416234845376194503557673778424477911067322205152060449798319135250820250695851249794105881715280844856103484527237611728045518368350356875176883869228778617810169401935642486739837714412705233504870242741253331945105149175037731555664459787556833094536518951173899689952671118646478062494840984905565458348537247760192319391432704146130867051570958569278076326389820760997295410893594074963309935639563131945857039143902184379178953603246405505393689981181406833036748430687499017297699124826767488365904722888290198805286126197085195333347163978353286931377018291282244079299247032651637697261115643365533348555932953399519513940290758224988736838875920266797251430776921945198053703134609746892363229399003382580572549213365893291078768838512103994880300696112437679943117609082530936306797466327507915675190023618198642571486984406244217736339121287194624868988389823452166345749334943484382830648578437128383520665479548622728569587030240708513061013376864614739935395099208432077401778983673135555509122200950824689160793265342265486101932598810457454493930705239341919926385423143493460871489972339095004560549418493345768881927780339393320983028129057282160462028113472227502175015348568233847151017405988859936761754201214398900688941131736631825018669473070711477033724545384008511480157462932859491457327387174074093865043440317010071178879278834503381809574388962916199240375512232678839567859431224855504673252163752008394658446886774945579271859668204848073258413276190937295238725369829456947630941726327251224410722828662854801428666914022912713411529262940029390063734808506525744150869291006689145290369631503022252086756401560055702773429060750434082727807746516340082473428712546193622478157584316785514398062438638375644653642335759232613285096009438474902619357575046872059187583986280869280313534240648553660879457210196670031973206038243928928686735936747142680557437918427184670460920728988423261544146438526940566854648527514151019184670842740450605012420305565295769455667157498088479772831420017845024040676229653217492731719819065787626664150786503507504936090507534048908161255654495097983590537418450944442245278215810676842216740493012690462227177870452821527292134215394446217258114886299987955357820158671020041155775978049000576089832618548880126190540707699870965235785168926486220743109467479664524546109735396386505010601921219069720365225037753053935977199298542866396736342934658460629682962010743865469460435936158865607137298678395657369723279211299469944084419421861001895992761495554721210876192598682746270176547193724769918989047491704647510248732456316111220129131380318647531954294484347865133526690212430656737161388972312489703574209236056761668055762515206827046601917543428896960545112767345342155189829661234631073673654638303318089404746804524849746813086736577539911880465223095450541930492962717655931770956713173097603544145819497708200249833229809425567885714707113063922536870375918568347920625887120042099451176001717220467530669952401543413835113187508777489400945749040384074617990764566937825143199155792682848927633594357691885196910147916515034949178803068521666810410981806821236419505110745128929546242740343838826036891815307558611279448546302257007449446120311945864047742889457778733436484462217378606431271118352072037115209069913740269127636807310347720365817477577144278317285559286337430695158153224055756443669461738284156940742779247705049228390042877117237934278636724089688922276223936617247006946993656841925670760850700719144109651055151181935460542098629071211613813852982913193749873130882251907878426104053680369311922605570949631327205832429849257586988956210976659033710982634310772523707077996006506520809109229234582160686645905680407555602286158926891127734684227799380293385354625956233907576843268682035273027872040444030218371978183361341716812129853029486778841500434714704479957131035752507818613365214428076900861552993761281534474167502288830092092403220946317738868213400084545537861141185788830483501945166049590393348009898272186354768643148164162606809419623703636140035692963510631290817217076885834363814938869606317533908403061638079480908560046805245317877585904177892910020803676411825049342923865211841776571387215651259396899496023738041308001504947430870613951237978885150241256672678901403475276313634072992584114323394756376631793735811199797129266670710021838890482963065033947971191092158298066623908671408252494858663598351066263042197655933558991362737329935212601615569475075423444915106193993092290870804774573092925603666770108961925527798604297914210004229239216003644676660550130833765745545793117784433205876907120624082217361180153702761365315680878531842578471587134454238370405265414060497647630824210408375046123518484831655973257190409651315702539248162165148765137028284672832247541615694586528672066726086216650995215719179115179671661266917635757369325546648225658223161786459463162121427653386888556886512023978967408111800688932999735010999827370780161541051835422342083744888926468808026430368798691012023293853261104388571135419448097650884706871464802431358131566667914573416894929420613199707832859981768466802195417496878980686089639206174744247164301131136482659580492923012125581732545546968292339279851928269059574670427068589785526331733495617864660232991438170553563747831261763875410585629251757369992441142667407650925985661789796964846191334449944107882289670952935977857825010965345436623666058842948535466179793391080026956345935246845701352751721461011016134128259641729012548528594983061252467096379320246578795702704377452594050741051462582937940052536812698078242652258502729871246254162683697317385842564743504903888217942701007093876931396598281844640025144673902212709270205963125095676855555187607573748200520910082249382862627616197104054013039610761111085750162792396922181882775737077061400915294770582436448039650270532479812228361648515727140286651318772656148403192285339039123857762214561811562235869615196897450389363973282003078526862126495388788337086853939483125568014839326863269295776666335253197308798179777074888364060499527406711920466806581202213866253577514590677640940954174591152302942249613707587018366996630112901164732818074587109000750326754493458133468033517010899486941650107997906122126520186952008529022143400433581007085766701113445873015909816181580878610752906617840030575411921347447957439000361950189830170413996828905251859885034695696418463450597865527770771429657873142923952243477101530505193117473709273430950325022691332723760451536958962868326674317100728410883549460379846607379670998746949624669919607082999425638127858422418267745247715215001676533871501678186334135979541444590448577407510533319829363905617127575289533450171949052718119138323994419831276821302219562294093551318391039456521378949705345899678521231884132381905124173477370841075265866123874312318090519351340085795285314220914680304328526770025876101944556228854436089728096084060656655937839830684130385073221875004559580887207952192290699244957652134470773468064899832569252849087598383461034882520226808320184889648207662029654888426091193891587708315710900936726442033869289054676736064281751555038431765781024062088295167354932495933382178784911417699124190391483780494405943557192615934099536384846073880284379364158128473404359198139912560394509545082565139426706545947159415089058440954420308620711348753803570039882677149343841582387116319159258669238735602391075060353010435778314132586078631427749522319960225430901148931064188980021249638570669350119318801609914915050573129807115252604880104180965080033393170502026398454692284605280341968896087125330593213169276264002162691374644330246839529550320986353595043081753144305865574456723451140529231489443662644692377829836264159433413904661586710849441745293848106156552366771413475056772481845941306797302672164566160690755217877275483055912161202006310077030555594291199650574182505524840783199738048596589764208318924052595964532204835280193775483332191106604716390440130791973482434806991651171531210490881792919372400548200334512660656839105245365910789045409393549410486540666700123584253533249417305004850216494948482419416685355040857156462408312768013404854796160119256010394554091634115555123473591213990777268999570349887393761620215640834082410920573884456203565296728438855673980113140267459250544098825146072034006103099230825111374841513798767706058441748850593280744908332360967499308049843210911637525741197553252781367144492181517581925872135440167414659077617583300162775015035970973157181013533296064415816602307046204139561869627196389761555051299436095378622293274418338029142507749622268605158805520631328696913989808784450001534758638828963488874493063358650546997488995338737073437582078265406490901373727392505266268846673390123781889832647277231755272669296963452127223196789217755996099549848565419315153007812456305327348014392695273059165546176705578107349076003476615033444017989798657347633334494942769075667007220606176884925169960256173086345361455862085668973058028668134109704892597749764763229149571664329995375994977836575323540264568942275668178682460065179514129586003993752915262239247525965582599823741383018541990676641712283412620646735372000065238214817819595722238645455199927029547050500569096422842200163971019524243216345498274787262809365192397272353364192057542098325294953262362040095744246297916531437059425788061336897710634245162409353412936795832706467469877858116451241679001689370807260762125735740049450595427852579750440380622631725046061412390512016788119260406676686379303497659335136689079463396284672968423205301694297505036875246822029726310431593158434244707486217372808894572223547744552602675220093102420282835799664832852334515209892151363345717329255437545902625735192481925850930649005980217806789548946624031741354507717123206820913198917211939154761367093462309207967175334674870215980969385351710030281809515882753545282465116395171480963130271391145682884880369326226219061337258234656023029697365825280776539410201721513223847631043063263124351722040241330315510618601712474535375292565467668392142967910023815639707843905786928129960107728971462311446318267567568282823184397311793523138536210123119948382700162167514046242218344803974884865159848393892966725836303944655936619235965405622839259335477320914635233454031996921805869203636457485851485546662217067385456679384292107347815217298040809679084319402131437885428174210269277748660178636657766416885380711239709427994742742657406218812743391356093192164549968080256803200411562298861629463228707448906090769970288358050614042910855456851632973411840708246486563443425285899604061059734623671090778470965296353523519356758626648895400921094741384508174883916896306417625449450631812963533564510060080843220200071870054970419169116961681703147443211589160640735410558439184671043955972377869423437929706144173959540066531450614243377751206989989804981790649381321783020383745181451598017718594981368655410439496688015043263617012468245040179762520703796374890047659332364322248279512971230335685942151203234813751555218149145817994357899991531840112764288149757732749653865883536895976993175254263367472276592545567839099998577181121716530225026391820049042661902809781158812072569386062843104531575501802325998138339281293244766380955147100104586000218401627206926733023193855772198558223126128645183935518032784060825367827627626753044926876820645839925819937879915243623653794213714087525187197867879997601549886971704504168604804520921873355416769218598593373603061396134328316767903744246234332154629927590017455287623028789648015731524301082090263318056506506011556339050755237944649798105278309110818334187938328456227080180996490082562795188081768046250696690412175279170964259782265657117411641942350246644478696876432860478164977957622942738479118944824785535345939343191838081454017047326416783416554080292406912472381530031741093548363467336411827123624275151502321651041324454476660691177041186669191504588432192436775762811113877976424759606006394289099117648006121896255709094481869179205008828149195202768448290889430947306861484618420049381902611857981296223758195375259675553377356029984122319701191137058896503234731251028792414937808512383349622963969660931421938799063231791046581889091989823921035858416307159908355295253482640239094389136855807872423721642497917169399138921192215146420634614593304188810650645731105749663891967327919291922452592555293807537363794217894626719152633180039341400694196225182741657353010382699421556492788171338955537756929232972338816064912642567905918584684934837707432879940602430485731119619661549971990228630961986906981578638480137529780512891300019765821388114754792321645660462749498007289674161383218714918204074395598731561671317022551136706436141566796400564837096356424137339237920272762949585015120922198016841706855364943555589751005141738622366439241226429512872770704550787079616372371736758362846463879452281750145824885248292792325678974565161496291219284733285926665095693406837729672442743105152486053493572725205872457291226421739927810633836697739281720056824901659782838668096632582982398581361285657524318133336990635293200447053250888055740151340049462265689522379530275988927794659500632453237456791775920865616299340270465011526203474617960832688971690480550104381385519889452958331345660737914345733068266014672641370001983896091119257371710487229063231535252671038952786734334285963272550584564425737548193493844515859435635025870949527841729985525934372837859016338974712938015371181418136151676076072199442214960364587749270523827180596275809214605385779356756032601611378727536344739494513306980503195044431945196952562011789316673263642988430685522190633898327660758799806073056100215692160205703373125918451968126414369523962413109254797775813936171519685007978897740235402858212413304417876499427122845634827026151347920444346873924204647865126123546791822845734531917269745709131853482653656001329360987658289276810162405531833631017031962916641501719515934799370065108397188028558650879791973607720071443330705124421568004327285388829147378748907019103271655818935488595084073318881447696826939329339527659178870445161381760765552038499851352431603059849163833371446682481612448169782143499843819191581191148010033718018500875739228763169602267035681028295481010464174807408086478578245675202951639752487689049782406245544278287197085043233759971105471625081867225297668887999761575389219792556132447742572489639798850384976795188659091965999025889433110237461460063137218451425162452469467413737752677947539478046437632583601667450445245062159219404481829661162132943553719921016374540837383629700956710925945470381414615739432341565779114679695039460067756124138554976471786789628576613251567575501483198189791839135518018594818941330296863881994905000470432440367085457480306668931098073637570593644710861314206561337534701971716464920559855079514395618643404905833506022445098856969755085558307609657131546756220309467723450330258819639926069282792989452934102256890085624035804389679438307556289554719794341517257830260685289773677157615689002463617211049017942970582797711989983082493808793622292418610658351220140357669529171319659148987779767929727168267916095933398008373357606899475336441785154825956945268721481078285251075234864139179970020689526930150286388114669819102821353542088987490135610665165741453955357798953938918376470717715526857121428834429319990485140202502084370106264751290275033706579599601788368853160034765583748378225549545460656805329553723177051937956281941502813817014655283719722644542789598512030033093596789317408859916026315239694262779417527861315425135145330178422137932059760457168889343893879683167299206407453528727425983188560387704999863179784839663044260167147950855146646545798061420177024024513665921131092007340867489217434791958973169249832367467479810369560713587761491860560254076032296646987361042788145832348423063897214546204247635465102138488123482950487231561706697834945570765490674627865017503999691715198822114990297742979005096565956043587637775277891502908185921599923752101944229978205601381931835751960278902017662856743983400920662485811892237820576627971828659674382366214316752903307570039954147323149421317318874415848431916551595763976050140144102721073691737752344794566087230991370780287465155237755720538674911001263315177155156279180843612738843979170703171787397128360063483013314191089163938053316347576163519228413317088851271387202269805923819019376015957994582217538824747695886785947513667390256773322267222877054008230484156537100150360430136240324136121348109755336300539546088691574114952049798709413685338308887690701976927207127595136338963161769450049729377167610622396843337154452395280968001638412161737470930260960481866763693436690411321043879967447150453081575759159109290326731610992736659193737206676770182558583542756602832482320513765726714517855014663220121155857253379093386008174381486147928008649638936335452901442938716637437653089028238617164606765074359158301064591032443787749745041496565230814938667503800461025872285026019997042472904847098857539680655968917826631400020349465945849137238649300252537265591067508218523254729480403224580321785551818447197718465922312048698334574585116150326070909452010079052363768479786783998790222144002341987322155678468989004900993334357134376941322159952484422427235535844449336490692937858421197197979255606792482617744176467495205715626348630546050765856893209438739864016579493588461671858488955809387706242747631156892811858182214985324843125028196288440995815647081081540053310277809293279454415087448523417941858289247552192321710729978188601095522822323982472157992744456465277176155651620278808871015142581912563106906096864869141594747274630382851173135742343331988776719896664914407068346528280609619485893886733264003619874788019986052407577672549364598220489144397829309407451970734173214762758454878558942514953701824824226648660940570747505491793797875409308062685347933070364561553047464058378621530100707145035336450061383158354608928033608759237656289385692700424043939300904669024369477789764753223098043400555182632281507656633185825907026959775737628122500907751011573059791056936915375542558875427029493922436017380265273066640801695844605986360932565188798429091446158929766963737478721028598941276188416317653125637202957687258893657162381698667605037864263619079351704916457835037349712733280849118813721022219910024916608228044330566658078638794030650145930801783401820347505729734530267488619043296857638493548886223526439478082106233629380365791841504560216075793631611009935274146408933821051323193564052356880671772615738377956334216578496318093267279539524044347072265460660457093275010041304662916151452260436869301906032951615581021300377193620890154386227874552983769545527532935626347376371116107251917086545395811557040235646912288911985274694056312595301529813302033373586607594836919961049487216114111171271047607998624970032947593451985263138312332505372897090972579794916966803694284059772693787884739910078605698931731619117225179089368210796894657002453999818301454558147285632119012460718977520362568561843750153252125227476377679161208771614104599893659945516761638077234818032121375382920765562449423388966700605039953349403772762355799500650597426741349854902553703597260659066442523303993185704853139006204533830297247557591020388970343460187554678770992797999868282364782586589838246514114635678269540109274658830666083621467182435352355678359009496023838811577894410049072918811211299016573121441915948415581251142639524770487069247470470265468926641346209814379145246809071857489458783080281960431386842174911563453936992323227284393849218985959057389760864392287078695886137696294217955030896775267783960681746859852385946522665389550540530628596987961912854272105452436538323714037044009800378925084955529309439347388479328681582880548362334565510641838388822441537365455803847159959976958875279982333560402635955027284440337224784237806286658228286691107133581423830486594004840100955404558430371667838560364185543229642526085405544152370392560055253958442469800816437151507672094999686336702165309956358835830681566860779730435676387437504251809142672751026377194397073868001610553663380646889909262584170141976986271616106877680902681074743891038861577804226366826595036944887590708716625988369232102606759976074408360869295767958771997513234736106632722277078357740655071947784429031411736181580689071906169112469443373994757546805213257435777426923072489307870284163301950349843588256664446790205390459312732013467638896552306725071527490024241909812158492528853535409982660865635538701422101991727494833901876114155841442924546148981825364570681526656701381328395822925428391011416310062592968466068484438358255512240279719786537529681079678410180677947388091253278358198561780410556576333675067537936659900079527943477222001090056512870562734189522866312880885124961889462748348616973848520555830197015609214537295279360985006371118765672387683226626327283681182513458076501322137700596939540389941578650215407943099852343243601240901937085638628626091114242098389155241156911798129588428643265569857737111995070323679641573244836071656042606806346412432555931576684137013780822854009513388690752401840917287365920725145620200532762004454791178219984645657302621030181156281091714748917339883642686024964513950274995620437225494071208344007445906924274368617182630765946453455828330338241106197100704098131436406681674107430300703383499010432764442485195868477923507447786682774787017722701722806118537270351425605695093723745545027654571511966520115578886016576686053024078330743824465871212758125428627443114157178616909599949082024123971284048495145802837552454845030216116230648894365196050766435729434905197704435534386331458562654093326678881872756993378071305629605892058199382871614731911204902777089957981720593917848845621841141075829507698481825779791554205004262650570456476596258240664373585396172794168460644199586391808287204134681631400012666987062655717832099625929487070927255262414407041770803291253804695710062710351360893196853805949262369829156395872284234215906664194746962705487842502651193011360273074158583514281403425665166650110742262720933639672607036280848161447892787463127255177218118515121622862072484874073957444670562444924328488553682201471179703763148273209121002834159714046997398432824367583368065529956575921606240263169851720906008317671840132039732526645216396306335668875236008534301920890795496795208013646879463524392486430613112699579337192805167224788887899819134836695041079254211567464879299681126793571248725403711271888024548241007904099779551826534393633991385831909982389556911914221170266427859019440459696413374923206065648126984890309744633538211439011613770522066353605106031075690311638259370055154076657546731109188763979199121930947886235879922420079071107638473324453672535978203206260323174980360681626766377110413349105961520020379948825207427412443956515025662900658979113457707419579285604484121642285889914963342411139572700646381525566283795625735154863592836854841354206717258395510454411491460516587883335587589012689858918110712535776238708703404197160853866745227150703577754133311125840349799773375911097264256951262395790311676348295895814725522156840904532712719865090040414753356378566890173061328703970526733870721703558191666799050180596248562953179976038726162453603139424093017163750472935081174839735762673146645210288194229142623705028349176959869033071005442111755981402025198793301448176713468266012659439628854118146652620844795864380255675381505678686346621832663791236290790263785567487195074176968298324989811914779712997104602046207142902886820193013121386177925924281905758686312744020614727021308814282988688940882639251284506802153640584906393016398999605237008013767105589515181850924369166904408695016474059663143905223175520970580277516317278369234341662578393360943415194741689815277686432680048535754447053484757771475606578638973600470900748762204956753135971213194185908454837991274354499687741972930081354272011573791599548853479099122273091166661085183274961904786168782835297171261670974065370879930591141685574408359162258740624819279151825490347675780266203483753603656304186870648455789031533730186210275197764368329284285588106951516082954259149232327017503550206375313316736332011129934373307476235963992688486773031951401234904635097817735564105256155375548519803750620289331995019214772458305215243197631975673625576287073906248203213900160499160193624903873852972489484090544613885997326995612273546447818148316763012742206610145293162095861460228194648725567229687039559278572031068382049213293554868152408975929726623360419602644689293076666497393896741649973976469340681327086591844015253688583980832280834809590214516941438307586931265075910739756335657856403135013324827843579025561996743883325270896096424150350053295147412758673049746109392738328876344815603425044152818611356446310981061145704201799256290638651655825782305256532260786687133037461424996498424022860897496682803499186582709308141056488054618954086932105865846371019894997234693744544741063519769731440338656329229010501691650391989256949490746562141759094431879244676206628791040127741773401256339491883902374235889174889331750493994753675244896178723383465620843063445266186602089416228432070290035615723862594324506603445415956061157800326911964990451994006927470836261509963357294764208846865330987257065221231514281916460230350064847228834538102096109826193675691673609502749916296439822165757776132622040892984346532780141481403627060595571391962671946212476878238747129626119027285007260407362566268476193761322721313149567829461425479646652894849176361149632223345552394961130846763647906558820447534044212707490613490640489710086019601963872204646850927169509915342697503689105764583972448084348036901314007353566296405971402052961013964042186577972760400523914775347024597557848101099461677609520096464588091619643565030035096671168570669933769574518754445697233820608662719553445666992873721615352366504072392604457209972269752864337307573557680448599171492850010747335589605151733382454380611305019981327133310831508804062167311358266702557694106089474488289424779177750452220325148310848013686224552115897134278304840084350863124238339176050631623702285360216155040737941165079098270557506733491980508107708842328988682498777581016498797101222740460619006731378762559878933461157511596168349017749516775261533141775883590702434681547214813140202219819992782889657208908447329054021819920134848482185370342429011943619392846411832550314829780882698286940226707658817563678947640876345088369342198707135542878715178595777351163066503903626519734607269941770138729439647868041559833411893398102933676662447350162589011584380176224493349606856756732688750081874704594231311637224629733105901287502172325995486683676170915401572478894295556351336950151018905613183668097533182666933844882369563887392524148986096375518560403608479728350012455718687980518726820210188917728328393837789312653681146280801686370917810403567332348678396402688860880025176340522747047097438293227157470877650907469468449999245759399397579015599983738818164354715190079713139608572324137788742800878797258015330885043722872045361308574460755106647833808816251144459142733888363862000541150886479516470689165268336900307536470485102419066770053568880836238484508312957988189265810784987983202559853003134869306578296001318101026811041915795354865526103963338741120790108383320870817699614144757898115356587523038204861530762809642930639351250049322683345185034855584942042313645869362635000625274515653149388261451825002012236838667138546042959405486081246786880240252586485610158711041756016856108081848896333203434877746966787308156623635603717526315004552648980003480359464690696209024382621533024446696067261304093234027683606014617777109443371318234063974746569722926803501164350610235973498700190257868150753558351469692248368899902966462058235447406257567108718203495187336073409891584584666725939613475320600156987247564509460352488618948370842994247335900387342552905886941809563006394339698442324485292527840359965629078650947606162011376571294980950176783087018634235755709237835162077231535855835829637009368923263070920894217109155488772455496278962693239301880790737662934332827353591232607817752030527362854817729467982881399392922859774310907680127572741375854987693040869314717190547891025327502847337832904908788191810671472402107647881437965361556592682214546432058329738644020558626034500228877739213398049898865389785960978946638716446322172531270313376933684481221463256204600274577913025864579765886822265585018735363700608332288374194263642791493689727142617335651615513408499975352895375354507278251668423675888807493279533157344169145353498549215794169174123459091383916718940114597390179563309529963835023813925296085563275718945403779561678681710719204807535562970399996774171749264767449049610717759563450640161526971083899681135597295545579289280702675700970369216650016600816999655162793338452830397532847252105698851880560257701619517175390172810063973795052892168578831572653709635356056580482131968219725366868518793413399533900267183004067940162675608140597636304913017426893487143146197764429985561210667657381137262715110625877797260032969151797511965366458648565961035802261291772404758705085198444092031275603435673049284466622844338517774519123680432669066513478649187853359931783813850480806248736085679627597878459319284159468375076870416450323246526816776156596991637947634924025201257439981570082231457997132745916036468602454988183569925596000456130591738134954936290974036273737577845088999034828674106835751715271089965380683716791664603342426664610011305809824220603269904102617331585013760265545546244945925066934575886873499286614592465824234836270386057144209095648525922777291824371458596375538053827949853478088062687919767771646542594726900246415251640747219044992700115800288731190865141024051967506567502864808002347993726296107186506636834016217207687952049146069650844665964066989276420110751255738062166756852577141376759789693192073053054769299305222055292391544419962600704973316700770795366851056869101444078196929379922003303948679250138954701688297146042048072633119637627271215059142791051981161900431547591055611709536881210529800645659505084676161370233098407907269688248596158261994408544119951163568098251429291688659729118539630733475106681442169056857271880637966573202344984512521804191109196419974437445706386683693899194579794207604957844083568573905750303840517675127095420586432532795822486756187335453683386244550545610199532584818273599440577362273524912952502795423899945864468352945983361758128828487323251508919708841732566566500768641327127123648289795738826044078878706391546425106796206682561406831530309358047507759308829470001917850216963974226513072041847107266532461206228673884998255210556402493601184526915149598125224874512432499918078150581603905116996721923581059194410293743506835238077276106058190167823479518661399698918953862818589477862220200396339331830852013615391636010902715220887655142468655126242996858903998509207871297908371333976092676232857708961865484234682777805533797597716733114490656938069469616862061938424653817789034427189278723550242151271517800389104114487518015539736989583165908312914987935071424386707058596400055624975405330552828679777341541813745321696722298914233449803914636026930392083218960890733923976863340748598609927910686855422859048626011493942900883814397847094573825104039545578865828912336784211385936076177770334793129729327175026221032625824246773601448047533287183251538648120294090236266689103933029802044353035066883109965451663735618491785133337404835208758189189547471850080317490275239238820856093473450396138970899174830372935825254441175473525289803622167012504698882776056419761702208169346328157307349415059392011171827469324754271968047464290789629138338365717969488951725397626908590910516582934245788700749352953975334414303222106234399935725590278695134169258145178253184298651697376481675221941595834194605119392241496136905951479085343018013998173086280773568679968397482745076061296995000063932685462730031858719898336377392464956501169316028420469007347354933201081678058988407447483546291471847174492155291571712445055668361536455185848895824576638566277209106754489457261994436962643926371624279065652865694773177908641454850341824058540353180173004251704764619392114085397170446172587639396950092332848476024635942839760875119286746536060953312650823888697208133196239386741632772435353715118909408383888527058977966653766782044985457781600525058647669690194838984927046081347555579243352061651903562484724214169169153667956435262982642798153397082267331734617870629033347849720155840983563049803190284258498588322841288526223033983789045391242083690008184973706769991420254011564238486450492235515416051929250305586336735918909120126520486826356568010161946839041668412836208256891759679552254421016993498423209881062100344471529350011519985425413211713126862883009669769697846088309587394246365709339740091252692734329595648108179466090302012074142117574496411452289643289412395484286326290620814750193791601739130669465359530718356070999781391201166993170400599098884538593593239345744169076229207842974318444738900318712937673728325189030692098066782149957458848742107774225609619529957507118727774237094395101303025961703698105592471131142084491867807361208750438057019189258006491093081691791848083829453674342867466198835773582991046580368324493599038154584967053153433437738140465419741536254709668903361999105449440383119290671832997456416243569461911685632403307233466608873897129606593463785248927996012698107374812519304834149094962346604568682083482657244250319362662788390615192853032436879816910975473045766820797783411593854006229434906795765563846634260536172949755544781673591681646222625570982553099464554076817411719786817739293177075555079442865074690954595637431120155695275495743296050960857935977780089695029680271547214580936781586980819920717065620862395973098430357944379991925250378316037446713308513330975804981769636536319247394839564016635904859298753007110262241104200803018338550904533225247024862878491682506947734122355995178920647490755498798732488053436648769724880682165283849640192005490902849109739101422135058589923607399222998975691103499921410114431465899527783784104889797804897091257514022094709800626990392134278839565649411412765044981542024674728781825453282301662512514856811265185045110106168551387030761731445883116617483832460415230008160320363786288093324419634424604192465863267556411427883141100159436340577984729128376169315932519646006108936911746298154196018880990503734204490414699053756595581278987907510811078276761195468083044425783992533513924250871492137266301751151076104622177550871033459558883758099862113308016115344029009957332690985705484195297687757538788745819877348860557189554205863077452504250627286228804798503646278096041551325059563369095450785606419511010933249798309854436759898804844726894391962400510539940563787588956104161882788256091174904423340830691702740147868724331872221028639125015460691586508260559994120451696625619499694812243176306396461424093836840573245879817662809102931985885844858434570591305399738428791625000796052811948130851294266240999219341390611917006080515763446130179774446870446297652788953605419876827612642369032877446209202211495564188604876033788198523929766211210816972931000548603376802166759131254484752424244631274544402501592642814372469110065497813438303544405244703376493162613958141639021564798265401082284396301417699330412402816250267611832028031136029296935547115624486083363505121870697376631650485359672466706170050620918759564332677833169880914330530745303246000207729735744513167513760864300113386329131777560067509097343395901761079537718701371630784806560642715024128302099105995724458756213563172419936604949379065606225777449879696661338834420604404406473609000024086773660284374566532865101691119271221339861753885101868677762276300189894896777312800079081579047058239527885857260309344112605982711559759386339365656776031116499540424734374682338025845323624801658378780724271055266359793718520670899940961616488622732719556036254989442333403469972815639934145336692681720410035591012447760922173793125332152579235827009109690235874446091805470395523256201160615714600818496620817377706513529363755312339676985816289183025402623192067967316775708020648611064628443857624854329587293278549226177228685437716652589647708489515726762268784735947161605169360488476341786858426602904911914256722089198801053383916716262627674277434622837894668626745193503585703421723352651951705844898242221979454301169217200518019922733242952185518415893379872214307788975821739048433988919289692307443799962702259628753272809549259365060809782994009029380563172924261706072277604674726634074835570297613563023937329654693606707334306559636758099754382272503726618431119294345562524764491568144820728787383029798183503608118796347666862002974477856014025203591462724870576304908688314054686974482307432880169555699778082448843768655374109760683598082952940549672421403650655290142437844522781321611940534301666299831331047010573860549503097615903487378197528023858757477088747851876408861180028235833507272041198203238695701318096679401031266867367488484443557679220449173826256650872500569629402557140242251044989472334192095740230913010155774565748103684758029364144783557116977135735998522640785925004415537767137595921982254912479448998192386811106768522640535920462459437618151473048051885432697597766924327432386678626445130944615844981585997877957131949574993896697131069226228476349435380568487851787296927919600653332412691160751623275572404982689416367152433481148577777367396138447687154782229333239088991578955391442940531237991424694516524986802437313136260527559588556677037984945377570909446754818158804232626137715561861374115414831957545813074014004963132084432944988775657560988265303278025934549893452781083323786733254810715841472088918910187584884566662853527812083979541374170268088784169388839379431653926981015301030009808468230221662090735584659133411827707127926589276775233599317007903503658840387707809306691908256600383379628076604443154849359213573424924822650109250854318908793094821290380078108928147521992954902696968256696435502943668480143866525447523327431556483520648606005249071874841068885318757969939228501453099996679001138403683507724821470029645110651787944664638510547185940645221641884147890457886693910576608811964586403705442444468228385698647872014011090060067929513677674902362867093234938049699677821135021585582026199156074537116505068965531227447340016252640409726420767167133536958681732285426811148192368124608658120701205157621454849101273425746485214352941537699555189809910462284218785599981023094694485771063085507738786988800762365778820400511340461384550857816194617652201497317537911956477360453474438830487997662595299279936995475167451974140717901043336778977755025790479837356220836782504994865157041823480192017902130980134611854516113343734771879769534608733446814427068919897503688562021923524305486479448599536153093759790649579216244676754180511347869696155549108492242382143684274844833010518205657819125122286568579575099518567997127968165245671338051394821411190297820565573897065926039308887898064157488717176194670415614813792265344538809813425352380514623021503321978479410211384706166185926301675219680583825985394292825034324020983134896959405355308737357085490246139721102569268392121023097026023341298267371626992362765309411410591781391648226258376690300089189673659824766616957415605054097915965714507659742250464894731961037108737938588521006081630799711919113665603849874383546517040857761683215469319459777274948853626020030054351004561104497049525951682525002709574464954444984079701342785011710506417590164232452100951738815780056797850199721385805436400471038267365866578249401794008722189115301142248424551038801803079125815339184088648714290175470841499489183195158417444922861045051772575179863906723226625796518795988446985492888875103657001436981863382903042753957336037694655522783447697561412023928929632220537604865809977564958758386635138329441092594850195482780492211664546620815541950506329170741802349768248017767705534312488171049065106316858738406618607554963194551126187984048111166588025558024443587800685495931448150127942929655512353411322001479913231036048690722944835767483282887890059790829141557138848726391549698403510909664511875711753645240347218246114858476551420479485676661980374415668265924819409442353563052682073704198242546423110230695689564485288721251941691139203241895513735573791858464705300051023530568663744620168937245641510325768897148825141363531699002358627260202644625338774231391604729057937762833869766795020535037925195870382252020213814035005784390698384683091355253070423257353201806453709870367540513328022952651507108215766646040209223913975228365008435964404750923681518496922235912965413428259438751598420960834388251157317621843223715113639247155928597215262560037940244082668886864795451627352498175456616944991016248978761586242982558632814249015930959960514621131909339883935374764031826092202662617056036001487996916369826252369343521854153755443341249436632315132318893023272471870595032842511300002768593782196472023192611729112253906008721629219367907053926064049247972646382988060733024805688539922113439211537582101469088987501149099456518033488610825394719751874155937891673983786686618258852786558117612199695038126241734477781353026357955724749546949996768358252213730431840294781278640961215062398364412728777026201753808551560484194481192122029818415849273779351434595355978966456943997961029615530548939345170433332641530039052931826433579251875406128449242220958477895108962629840214068562477676957330039949303246218363096550758623797172456665701288706410649058409738557151409915874176518943931543696515593800929910458726348768513166906981352637050291519984490259247873448661709585512049323872071491691311723043338393256484353238308976465519276909700657427952449892427482361478651564027365354496049341459186694444384031214816654442352535426143968907305226430431720662312373377030223969691204178947202245485694474671392419424370730281757348492275992802007291379560329477263242790801059110600321188362319248829654741445935189418134923638674892493744708606130272390147826715793326853231683298029367986318084753934732681494635007397152291446425635023695147382882072591140124346408373324518815988726294668792143060127737903787286090598279094033790136095554272729951733637819969200159207642365248429649559468617517763044555884272746627433147875196438413132837139481613793686260692826154664499565036914881960258493717448250189490405535562194795139170745711300365239836669618223075356262146146123013386454583412426209899185041934530177936195472667843744897643888144194847336365361628989652116206814481409858419491895185818128669128113403028477036848225141915565972401813601007684426005032289524783158611439380661902155679092609441603659861640196665401674498250667782619928370290786000126798323379125035508365908932588191478242237655801603737359316921535234547396937621804520963725773118787003674928601785156568850553283003277580241022224590247620366385945633262677507992979758215837699043945061795571298069730057310855541652475954344482981065314964867895313117760471157982406831149326191138531767210195733243836680932327522316244885594681934073857692614350739611169044155043428629093348708596799627879167008324999625871430064560653016097258544112068620948942537509082784154486956375003166954806736818111536805842964963862158478141822628082480105001587200842966086822932275828605012113111705851386990996823915583558481227089294753053392076465991228824223680304003669373189161209058630434805714200108336779517907218910701537736360143622357541511432360748185538936488016255604541997729051973944559455802480294390654681487975026402047678262214082343180133087242812802006198905335172261445112278462991991534280002707588962570814923694765023790067809955002580197889286963848466162679827539654165383150593537089568084770511174082789152704715280960893047999148260999624180666997439316986978339636311594451290382883114049701076071124006598997629294603312698537083002562146751309020583824618941622011643791579659234529752484735879638359612610822306920959871886709207091020438382824561652601550337440178303654313857857651851311335897631079860444517455752368214531299129328485184704951110948528019787525363151836457142847200981204243103674545906436969252923794854430340315741105200260633773493699189529600359439526025181233298406712634373810189282375769022277012833847642589516902238822361331626300465727478853462487066874452729035672105264632913793439821727841759641508810941051745696279546104363348611573448607076436939573941451498602705176874992042874926625020784727806485177860203433587406231066806436337618680772578536750645142452545100530443345297922603674513747181621664414012404941277177022461151419107058381418756325436795879902311848375946727823127182128771174411826640382976368135513396203898390255231293336832494082437130834003414787248739849713835824685071527376068256777182535242822178427758461768349364005768323235304528503126931562277403066235614931386132526149906498975102567686707160892122999800617981204581149273995060635644323824519015104441576006828102954230336421440762660837211911857318566318095895737692648293099892663191882004129627551477199549500378301114407642690528319283758592406133670549469429392515218928693497576773909530531112676241197847396303108184336244519799344548349581102785968801776209039541068266898268675544289505125282689858432862694845201165999931222504711680181249339592622631673232009849601892128840902282989298257291175052550763676727802648882361703873673550547631384228323579949546097456696999494927696816319608405986903078905037355572364292524082743662490295131001181849167919256424394534592183122256588553839140580705243875416763690532044653024329075788917822445865740431517869326766742559228905861404047968129651982945881196967458913768511307647048634640069311915128832028624663098730988897474983344035188992796488914401654850949009338786669067263838139094954700896165071410918394753833632367732296560581101123098236272260199165154132154140422014206169297942634523156609166351638952108811806753004732243730241909917666299914212346046903786172660287502860541804483144365142310520985204678865295520066342260290079022751694987599029269762239452598819662265008498353285981295150887842467059676552821795211123005318559058623890948741234542144582176513153256563131648585948094006655206248497421203584136095857315528322882901917540126102698748209540670627198384260107978490497287969933840529077185829134646833317476229333499971903593094592341275164928688055205121268543979043068773803299025491091606218351680767130710697235976152225722575461797047266542760371388481081610295179091316802790629806213402412174588407407968657719880441091473557696386047754512806245058018575820446906072612387667635668439289324130150981255644504458500853158860414978375636474398333118389617048822703001198600297401872876104218421242185270991166181772489393355395027233577044562360512433526303320380834301524634304718462211162977463734967058761869817256509064978655346316415997402752299568899934880851359034900071068254213585428522357244200465717481017478618645694697276196021305818813982999462684473721678359722538583575752278212303798238959226329268043352186365889904389356878918879030942325515178117849118284513420822775497270979151174641553557684615640862820899126359317667132922165966618506074333187447437517348561838384794095957001061618675669111237178839038152694893223811270275747388295926766833438230239366642272188395420253745658640776682225342716798739762874870735331813059429762308425653903404274690605035504719872464177756585172174512197648742678222095258867076685850644505475177998627765756596802136734129747623790322126038083873809214548382320257014002885858069430360436250741306438229311255767985150120375713757009912887035786706013255408334654785060688065327806244851337294419309483620778655833591736342485760205173212468752892407308515687199434876499215942200265132096440105704516011304918260346576201232441011235723542653534679566948533118549705960497481727599998742539317552190140356383516669320245116503155912370860155001605472147902143149592939463887813943146488458446658848832316561763541890080931064536926484001206348610626420973581461648810169592461140632362690577887723950860318182535287689464877559868415801567828064388270782882490932778739943133083853396139150124928393763638609311114480987498399963895011548433063518889808256977026053548492306213123007986049272186510508701659486913207453925383695759539374183373668706352943784771359818161772998813615048160065269128712052293180781426122645217676222937031121075068905511080530391305193146607946245889343758553332313753953382983975112570470930847890203662276782971600200540788758710052004673484014497928306855858965067119480535714104777321296804753910562960886382392428985508482825140523845768477281949683213892441020916402897363950116217307787261400466229725843320220258078954322226276756872513961393138175063261304460664273179611172281588849690098597445296267729836203918777072167727902072215098193496953151072802936133593100304533727558427500630644839273968823762943202183140760657952861821325403884120429319524878712484112910274093112821405543837655411076291189309660419762652655489553208939639320860101166659848390500066230071155536842843139075296162293521237810601933399403642504519154668740665948857653068832075963061601390197123901228666884140099738528428647357368589769267507697679985311134190444851469302422244475406770979780103174557976182660940364331428289444386623120396152426307693029997670906423988138709090551682508222388567019051434881084993202286271227317568633132198533545319854932912078088990237494062891861739119964240402710387787039060127891479463328749338421576061182103975695346744522914013165376703258411830049480476119455589371115721374981446467085622473430861957377171870293787759177710462822376388353218850601345013143626740337387275336499970808199556437724085052727131599057227160740484973355264903405503401358645098628277527369976068288444507873331955468108770242399151211038522528970007445053586452763044005899748405207280458777175794504179253363851954104775587331818141339817305701408987515900597332722765873557573039100465362252668369230103117813216860460132164120771420390545163251045313327201693764806506812569786744873594164839872161152040339605696380398132411485821617388592183251550293239403844332333365395778695262488683483824253284772538489021554321305468763063926731317571631413415792774854029385366973821622677888937706516754596457784672555298798204738174840627844011221165486475353363324044741685942880876130898211919647834313284645404994455045260134025261062420983633538704665708278117497718113072848973197739544862681357369674659557778429949767372181149806386687145768958333511225883145793314226127433681560757583922588679663050434666321660591198665475339855472986472289980838182354671064945032320440328560686561014315590799461415707043099212629712825468523481516687395624987397943243224372125224130768253326990137296289358829365847706709427799779937200803406911553661173140110644627100694008389957210095244422919496797320752276683979652040661649159867917948852078279169346889876478269391244824787532634571047047579286469198685795238233221841296058430927384414384988655889695687864041170602528934991264983443161574962460912741179402227525907664471491859049774028090123941201577269850811248363571610915609293367514091990796483481606945077338219089558128149077864171239300203339836211005961617211387578402490705598181167622339685074090439241832137157440843831712619902901844754297458273458857918634567556118220105920787150628842546835886407307060213097966695792233109023837779591770599635339814164474932106982039637888482883172221895970733842908728401012245081936334388462854995622017344118496886760873141442681161261536137296362670052254725909158939542440335030016426111571805645659680182649612273439677281657885389708555699923316738431379335271997384440460456270014281764046113208468051818991689385818428654213945794452492569120760192638477629068881092725267886815511844933603812965459763972652009569944523103717390298354116845129962606832834452487153737939612865873987320659906639010427897197520212033379971046623509341634744570982110479141848649561511174719700101821088565391908276963093317835498089211809614463837985139086585087331279090775475241876103191774973211390308885352322163266611685152975776742440343989764188145761802945657838433147776101912892691953647351488985898494884083533039260387766677272872738499137362006250562129612870847600807045168373882810145375818698878324829325960713144905473689937649844029424420035687048542112110029340979693515545110887089271962729273102941272396179546802994171045316466568773412931283019297086260864184334459989989198963326656815585853206582038726722684079141409837502004252073519638264040768018370342168917631604325715262622962176660555177269445343085156867125673860483835310120406463004686655914215487670722162731550291897757925263542773671069620459445579774402559608504970763793138637864517129052588638056832192558663227461425553062308454660178677693426154149758346808995955780880795980553052329476580097192448191990297628508443505348384061955259444189828213936162030481207254284241126169907062403609656251781727060176082864219103445521365103663080850904027280051672852841891858058328146426743568593222647332955689688179414728559500416668501063307930960640586329301061116502032525219905184249167977526980167224209218624220283300400842000124138608041927068460380084110764438311842544322627995600117794653751981916292197221321201146153931690527480956597701139135106481654952255245578589964314504115111639178609897111818749936941942348745021487943609141461758290996573076103433845040549594353416259830557912470535045094832310186647829815600388263047711827298441643539413072161958349694767892366992677494090252676079102420676339375818792868273571988756172733162340467599887534760283150140847357343026979515749566138588117061238506884645293503206044361439016485865575939366718833944727956371613544141000325749402742765414350562229355258651011314292601753517704775881613651998943161388849486836791255356436762499429346740021943082331296913143341862728452707356162012213801569528649865571160859885846148918067300008327507061332894740340761674802974647291536015922372679656180763659955121244184840018960673752254413034342591801043255216368965291340965832049569855218029590411811530037761201345402746861621640327209698314659832972968690334984151153074861211281127231990728631426199596958907054153903115881564909347260746843646569624146553095246726385546026044204716722028327963487945281803076323405560705629500251736243347381601719183385255565029223832087314387911379987711381834180238786809059227286598577039997454294763229589621304577622096738633247143124043896366883473877640381565443238698721983650382335087298557574452858701533008953936476905309611958951952393536007203533161244005673336279680578185680300274029061960773486675051100600796312074018415500642437872812191490842355724255260558007162564980888758396877063626301643003358711515048538710361951385731246913449621329999756931901597910560736600008573261992342380785931910673779471595260435325052442122502405227646130173052434769714450308743533783186226782066432172347637053525004616728364007628409244576170292395915554369940012795840577901291347395400248062663490255199462484202559494675262817969445126614061361830249672622124773350643511364797418800893943874150681843389212183934846182079304594053203474301841797426547440539834213530362997056226486896921725310480100411764223514622169106847953948012252041133381743714417815599219487126490996523982458143083496558619427394573014013099386312835301524301846520668099724935380240869534446260817937512377597249460863442713078905060308627411634296752273877870187634983329451434447890417317397044005433594236365470822840830093157815476780394014193169014067369600878722851821320780833385532086557275674057320564122469705616703989599913130993442280913538743023800397692753415769364497161018854270677567288464740324707552667034093534161789041410958273554410118121696654132708625868565861637026125844846242276374985422332810990241062895782138172186352602088436856541801308084711563198555434725400597843678669667515980511462121274018138578247060250258266385904442393416456414887519539631319075789092219712597766644362267304440670741219695884154895864418444594437476940900161498339828640667450681298917858529402787248524027841574098550709753524204271651013967605514409706605483422739721824346144557999194770942088827516141634715561190317245377822975284085537245369307573790642885334649572032196311939314336367560055342808815705980888442649530770682156275462475364553256168892168482905345702172119851584733538934524819066613586472335835213572933676150932630420087222504025035767863565715065738430862928040300504619750623132213240580853133100376894273426831491162657741618758846975473713944243466065217809495990246217863976918325882048224684814156708870617373673141630284482610038255252656662085009797153021502952114164845930187416258510053794570641848812647007261925526679605062271183959129627644012820730464946538457515541334046060987683964023919989283730865695431830043369580986006268002016466304856509034296142607680755596742076002459617808135833242873864627539458500751193818047113593169102139123243465325158767908995379075621650323005837613391047258024250008097490985937350673800105634469919364671449730442197661201188965078234372516396195327355170551750989139923941065147346359055591069833361783290495165729281409542258622821125917692160209123360159693203248841313537653619252426428825621978256809632823138860689210105704851355705715895932030502263516282963765005872333604648917404811542211170989745653809194486505303053495605814427899343559373378879006756495553569862594851067954533836100465442954463719594158475956557023866854379471004034240608210173655925279727420689098460493871838918946347534984531532334565003354653960948002982506499634220134326662150896722817574968192892329626404598541828552661243747833928524506907461461614995204823562086303172526890808815425955957156213039163166556504176335891242987940468003747584591594322412982288051318537630038849804834300402635852008356883676086607788143827008453398946759228048684367008542377995405825358567236738635166909655801063404174174652177657446118841421688157589951907125825077722943198403197070520306167413382016729081750950000753226041940916313037325543584645316633019731804784709533180592231513345494134137344796943104651775732281337414826205439351550656434092670543270166314826493894000343516248791981259107666107296328719385177915184736536775261667646530809272528846525729992814054728866211291716857997134022492643806974462108842808665076336381865373668600212999131295780284916636221964416186872714241300886053189003544758453670514467342187870805750476298216928591740150542544765780196702350142869330828053884744127779080441236273983333216565695003175969753582178228702211971310709915995091665668001155530267911167572790374634197610772403210442714202170798230174873165076273988766949054288320746680398866037589079097231784710237048557809407657065103077056731715515320273598646267914032118727643990875316273738317538537341330294606567475481083924884962692002010772116856751569835598356491735389534838410887265580655551636929095938613573786093056519672562688318802375374151299210441024943164729821068136213970730745835608401654258564911009036954617497975159449986382684218807168190191782221734039966642703761153407263309743372869877109961535668870481131776307262816466366857878515009608504244808886865016525714590763443921809371081326462308214056702473080691219595168443030396687153175027270199647613811645412293403053476364985474980897131837463602649336053904804376634653113246573266252326164797814577157956994898288496844840420076630213855279197206305439296894682052893559460431677363113308099132918725244981557219539565410835739409217281314033926609524341058219631217716920449368396286378907423443763549532468866691991321371049908946096171677093116639971907212869944806921040436057956938234570655713522134772763249013000788103354784082089798398860478602601154330972032306587752291897515985246625518977228638737012502195364143580003483549582623877827949235673066145874421590691865519437281387956521214332930233188317378821668259406740229631853748092803096502279957591987148436816841722315077287904344896723051040794124532833298351233196683007054070970502563455687919037592759354278546376550649665212046792187264734876231434835353111560890158400335699229458020104703106673258054315334829450823224103966156223544785899812539907151725519948646848936103535782358468297316600731747185767227981936390178642632008405738042760086222868683521068760549402347238858268260586033261217011821146359402689295975870906536278520026349084320629983036640888900112024165993749692221073082218608022056891772185944028588643787977331409266835615311478207285846140920531954856899181252497131603152701602607576171157018543875515321510703228195683423459457458311552322095103254035270603781968572000564393411055077427585480891536500918472517032832654853290243251298058486723079855550388978114293436548336902902474766709143626714770249987926738465808234584554932979851004956104955523716606473924796008594004615361146924677781615030474280952186745490857568708383252438317424151606584623627364717444834856524985698126755578045361357168537113726022561823755754087141253829666136678293740193812975510978454256555982333317416887220968440747692793075886868875319905037838213151092427095004253326669821822898211295462871035974203735263045114836662234725845728256211578553947609941699570108509441103459652010758425209375022530940176285485678947876594845418836872082851402584061527868962375212877963943661728324288584823874490288546072510002196985762577980785321560552732366287875676643019798459904267213788121582667760467806248243439317580853409758949297426289369890140373334117880434343252493710306251030217789855173970569477932274706784537494973030495297688655440548369501161841662166205115490215394619403256213092050360349858091770979656067295882261661240795862179376896223458671098762788776286510958490172449129503988806212989166601825485080984168268588176095518938692243118136544562238942303876240826468443517257922244648874396655055328952815186789972701388306014629267380109639280028255623097096654441716852053219344081064553404128270271611842751265590166053666952724053187112499748857927841787276954316480493355530094424008992556888976872831302704868715533598309022264021944980078966855764207773171989323637089900453155876483846316010688924425406631213431710023791086065849798538879918535146679630690922152039766664449817638691756522242989151348463107671179077188306692472881858345718401385524416063690469062536742101960038945500596986169223069564545044232702518124692578919729000932918805710363621634659665295082733136488655374517907411792390594218573094776143773613220953087905660114875724883045383611047029053083300228582249916966860253418924006683719732908602681026227456379291432895933585436894803373939544936116261167011129779551642414919291130770545119300755549495672308949796628818111189369102612992034290929518396103852874570185264212000375689213287998068902183736637358079522725840942505875815615173815722021326519751191937343618522351150752299944979168634955466991937223375119652979304348771084322636267252504192113511803914313617468928763680581085999486038110903282384090989731055212366921396825491635303845279557410979918697342845495685642024547311987244707420614596754390974963847243317657696995624561933422009320603566461221336626094807625816720854618686801693559532406643685554474331552913517119575471827120541602683316856415264651091043128745008495354328354249146271216350605631962186176386594639502060004308460865959819123428526982167294997207274637414574765967204385437102710065767541381243168069070768759303299111519503536972783295655772935217201900040909174726515614739617520561101384214126819606931522939428287001381356264985561828053556773958378874390376091798678189168575326001304592050950213650861140875384327429006915616542841266025784598775857270637205524766345035156227982658089515020477133694505130197821309710383515892387182723400884174963612766343564506303108902921916710444465023474733340899870824420013120552907740741231772039365449526239537259604186098998100711879679581325261134956509198678185784252318534771633250531031830848232698119516283651351882920091678432510100237874551845780512052829245488712922248218325331756940531056118511735664972961234047477675534907174302308602274612943807678626634476300951306231070224817199224748515035364163661587281341210303625970609265423436354052781728325640173441167453433482951457147366859142805633105298438335272402184820028034188714792546419719703660627454770503956714324812832708827315900599570978452276477436851400821926622256807138736620233729692472219454807924220503112740463132153979351343145065687321595828337419968423245752183763158723014278183728445119666364817350800002429482346585720495498257573682872984223351824785380812862916000128516833284432007628911112055949655308301636742044206142354056344924061493605612654396121543478657287957912619459561679489446593958936929365889577156167631511385422056314772502831737176621230942575883843117660043528942240768732037853259219191774199478529783300703968174205544046648530587329644077750553281273822405771692609972325935305969004609117892182236354686006047489759838143513410982486138740275024593342563464740081518908082303810457324630820002773926847881288945569106851749008056054621141866485122107065208150109025140678956225510578222173645823324319633654992934896716119143097469744355304840298797991290845197247130894087511051505653041465508248674540466041636897829105551684696590390281373617652765878872568994150032132250825630187633893866230198988456450477934693500377255651773924981679020999476254379084100315773400183913979381982419252407285034354946416433767701211873730477748029869315899058891750371913192545647024239162413499083206317046652802980224703678650726218357587969567743298151621647129228337354073182850374761424653510416511093914650594411013639725785742006629525637154626796124328162980544480332009846160263452289471837796816359223717063625645989777392333628444484015378983860783924393196622659123058157760869283744306552204884088377912128275532526284940215702733944920938871145366601062398381367026638374597228064841197683398366291959685300026491679467767299139561651607762781652138724350219619099751456572094256790706989470720884200631176001931685305168384785476879903867220849467117755286869002667346428890182093937348634150997527859870147710259175586642097778096653992170134645641617451513308944336537325900699385632802704941346965389607691051174834963914203103714082084779378559778652120607492374282018692421896336323852920166115676787124049485653248178979120165015602118858731925495778314794720532355092600163482312607772567601416051594460967525569584773637906991207933807611907673616903767646114542129891278712085109893913247793266275557719304396854492077189918693432695603814517771022454911294535474734488560124730473066286643560874381778493156963153791995652906914935119852113551830385511436992320072061190974151197731480485203593531916429786550076926978644336348184781124981359405971722895894212220994618226238639514930899132175041844497327634899502062540148408472015380407185994557984559942873987657809026194691607230491196411516452232865275311194478736908822329041026067707276229813409550237764467510931004123600018272123198654602083702115610162988373345117616245249839312670031782438104089432516412640124540373653748242851757724197460754264831191258887331543102181134093354349100598145051735947536630776801417293249474458416361963297453768133798078297192512041596004461819459042317100630848486175446330958206225490202912605654306233868770323083190702465040369597939722928826022170404287703562233486170024701466572370319837353242245508398931781748687918323648716789553890717828313038496241560015450276652572197628769562172903087258175401470554667181596006834850564457663410237952562203538651995912813148695930890766928821620411884540038050744399244552886479778482467141408445807517839335286740274494421161345184335893364964678631111568766715991532507213878680110984903278097135273013481568679734233560894508676915090326803784771713408041384018656227235823113883782434614726950361286259775592812276718977873476305148424848366144659140392192253236940024253878021689099566951455675059584558254927151169792865344366928903665196867128183940731317871362787584684366143770192189880370906922170667978830830772066710435572197625524423316130790374063184967487192471548547644518913666130032956400899203008928891794387851348861636770290391974364284478371612785268487658745769400989564051039140680443166571036220705005461871855636781825219260393933046410360411875684636609749309148326588366163774398588032041238310048843918583299928591224996377004996839855049599491302377593215106299095060891265556746072471773472368066171632298561681121054094517284092958585187019573031811126693194766235966076755384393190688672272279572986850312446936496002658526163160435337549177854971343891425182756056180095897496390818259390365224735652045740920558375392910518815362601676662800565114573397829206399078280260883319365387743954399624949974134518286504017331904991872535651554423406992230014483765562141992898757139079271353211415589941597624664716609510919811672430208798012845984972022505184244005047866148968953235156725990991156284443014875321478737150757734657141947589048738106003453300464947184295290705699459657375465827026068111971378845177651108087348117162629685615693346636693549033848225938434022555793448844670091960197410942107735989140560767445213375712832493113702086794811272112986293983187589649493766834385979453461528603944781651316755672270234927787614947578688503269726728875263184337857901242298480597172662443624449691550118491276845953248495078929793582549534907789946825373168001890446521959780714490584323038884631572088351272659282510788575447110233328380849434555951509105921690899545306140965037761265191673740543630537702421919424736583407454296583154594693177537501452570064590838451480136298820857603608749731445381421233286224842320889463906474119471741367899222945660468906377317751060928599575479751938618498447172940730789452932566194520665222491226324120162514615272216068468362491805888409179613442677978334802628273493232977536406772282744307367274363513814016544823439163570349506291117305834572785067403422790705420735592290518012593973993721544090109197010806141141720761422845763330166109208404448761006385730544223229389376350108979640868089155312146745215260023865551580581882580316381299487771743672735879572196439899975028146065792041571110609659347985331732183908982759939206143005362745027466085832083436626064804200538052136614149686869246057257473871822638506354095526520645532005869698351297383137694538893514845603420584638772063317743950997592343557794156379890359235094354896970586085615982526553697683993740134758876729024240078343189433607073968771625463830074564451053006325291183951684613589730397940361380689275497598068020673975836317171854861188656818770773118673272345088381119568895053538420873840977420343187136205976317142572535105648780096661663446603127548942785016175602614583211735389214035110139581722420160149604898999057451273450824458902300398718828877877748985185890342191852921432350201454042550860926707865803926611056468330933381330866699832643166739405401691659331126229323140825171712228817060139229704959379348293240141486833409984443977590968254376211160970670023704385668244178580646412206269745746714349671950260511381733643128548222283229572340599942996955637496770670028034464734478020615577536854748482727023279805130388956757494833586136751970899933095963567741235513010102874210913151641344513600128123957980646987598802893277001809878615801142129125566253040426310940577003515737292845810380223879549115655592007811264066772468680900754346884450152703943071618841639397112027454780747342863649434219689569200999491861039716353786501244861105335525807893856795380653131483153057031612620718869852767165284874038381799207479370530166897546863644170243609766867336084991508581836768511569600445995000186417678164599748500481831065413338132825529123627084701481114895503067033888121443056117533351344644205538459193731143758750559624444993278394126568607118117009044631681454410390359170114501352578444002678361364553696536036209433426993511672862734311871345792617114490931703841555945425825816058121586301765658477245228314391765699463486838443445719143736851535649789345035668711309971842044302477323691443635988082232441630505976351737499780836928485738347396185674925766190228543946744050429966509838355786821647971640736634311221309827360717053279765877410479686313706354728156567285860967461642339981844387526908797488417333747130758104756559337437796191990589186922924270490047225075001577467231042142633679364284919473044284453474176503141372365938518890513415375955475810597072270172954972393438969660708948793748925077849590623461401237872540431975478553417423099192301446236518803059494814544028366168975857146338854743321946744715033398232661954289522850299628490268153442005456831668562774638939018438567174958530721838771470426204777989598774279605903926877729878533455385929130250489519883191527735313670832210461947697034486759720259146602140691479106814276771811943423188870589068949599611874850716796889157348539061130310454599668605422454525973463221150035201736595082267709915823614205298491780455557300066314390047420105261778130328539874200396255791297428582197625805802111066347940251512800249277400091535911904754798567280365471718744212443300388871807778557583915336172927166069287346933414786957457506392047031051188913982907822944489182548451903921902606432581007475793479413812752815289521587287624644285433560328147260753421929825558087858652523847091200284347026226309272466847381361201380098321521092117292077868594985656728174424566466456925289073572361706873882547950115527433217109263233331659130674056610287659061032200551347041075131530907930380113078108147191658380880747680786190789957936278420289440944837191601394338184550120370083656476271946723733681889359480276709859019582880939004560812602029461521237921053521450816811534884195177658179305592389315733335105630158472177881538644036785812871569349022181564641814330857058367141142663099135750247581337249253296647558040307399120670614884230460475216068000827432461203591682616683339963626002283375849720067417512938308122161002283340820627073879849101216420710609222620293266956010693579007522496701397052610212787642007241202266916738320361199379337941412284262395238525822508821023068669514952752072609478295887755976312944833068170399934474793101951753847543052561381371447606890819088951697510912689210159771302902762439939598645956944757252455282500969035777855259381733888860336939320281798903533826285045989734882650824453210074922954216285417520991857691147771465023568851623076477649201363875755187530812264306328914624810495493206795052812780636363594453548497169329715218419904813818824664334103687932021336552936025160268292394905134724376034858841338023566554068250980841916842475345778032201378279623862537325172560622639652984872958809920928085194031872694818092073326064549586593544518889780294497683105457654885131196210957360594761646518925446797425970933151875138229267512251175980529665406288325025183535578261481647941407217850686581482567685660589884850529557962296318031996045331494585871219349675592795445738095399898257546184269587688709105491530468166141354769646900122553532830239533830023321282998977126849313041978462880704050772072602459958952995208274053097409291215984410284008379843905568200364825756782861411649095591365352409528548120408151633523378610823421978242729500449440505243792694467568565469184348214082471713109294475377204951559418902133792193408192538036856549943203342020532841182932084466407127794493840058807728682744605989280569252843540948422100525410097366664009878153743251403031219460506035083486944862183141252184440345335222597651640471378685536314323003914014863146970104342501319948109627694658841450015199946829930205630301647443262423533384067725060555098315005602898705673256417963944254833098121838870665859619766553774884011391081358932856687099134065710014086232297010990792303079761566483957925475237849638179473447065683580095729698020424725548548788679902804927030435902830382599265902522022520064492360522555670719846372378307966958603965104768584926550974030098729609982350644369442467823428422246856097408761630647272790563031580102271879147897088597832042538485005533084654557272182388055465154331706746823165506109175523106173630795182173586115660864964839807771980399895302651960097059514573311762382107901694918092375720704093673997382203506534336785676013415674629632697751974329204380973167633459403952711220043654982474458550029404650784703610246462717747977505292982382861139275392805869067970526573436073443642437048820600565007530278936995973900230953570703762485236975760994046915310372119645524731406039098910704145547804631693352177256598378647743681185614468341331870494049683000197722525934456928932888752756875629553918649702058162868652475037469617720164902723860219459147251856690289631588128786338714133418939401252052742070704612314806084228026730536639634287510099922228016570287677331139494198808774629822012412916447947823553406942186417771621054694775942214227321241421448864481854274407926349610474713238657802411905754498942441915080069118847520044561150914037856032275728480030562545066272943810265874135168623342934720543513661206272543138695441028473100015922226949646592721607695039176570597857675111993417824857522664572834183556553313402078482407908870742081553454266534298722240386453068962118985616247445324509840990711601854668123400847968204223160457137432925842261895913181874444871536012997152903411208706298752812917401450168272803255400787794746411169835543693357034326401393539008969802187525673510352747733956383791498827072692298996216874642846565065169097370328025331757510095305219411986918230063016538693317472709293289072579169197871381374199852228441678079809441502629672842019672486039507761733677080369239251690559212357990286762724579780465118460067162960695395078784540909564237714818375753295643230407933520448628671653760597332302702779907889735402891047595518942522294462068604041647766831792776318115066094308421540259355719732855129570178589164738114371803490004174416651489552737573339929453531235125610116319757735842962371999350798769195085416747164488952095190577036296470181103302603388396868705372730190953956146718202210360631952381761408168709541564492129540336219994546753132188065814363670085571760591091851524429410916462691250099518535719158855370276961786379307654203239239045717610185538094419719913813001724470318741706257841877543790530560221996084217844296391995743306407552615193772413110687715019294602729850540872483271149753559697779761052340116869025680187085080762476322944627491765255318438477413132561246665772108384062060040399214963404498817850840150268322957614510274207516493536704988609467515135137093730471681595190548189632846914267045786144370601673832242803964447526467114529151640088703852514174263671766476693232565534165251441659549603376089972636868769572237124618431947069055741192455236918416561146037757518827045903122652075375831732568748059786711007911827355193650965254621153483289962106338099549910293331089707022515370090293306778045104043785737643834866893057807294573190608385340085912212913276460473142412275472233283395507661695008081171742615868047101811980279631747288658730433315707365531032012490854525845583546557565043895694904106839963915974416091502116163811613832680648504059288920498596920082615916509952138095632795504516105267244527736713211369258983324346958715926057467614450535602822619206512955223409779828655538868594128236416090958871539679700534229913805417300936432450451339618562527817832985637351385927258114866130927087611972324245613156806227299048171598964231191765362285339127546798036966820295208024663432722184673154800778352184050528781905620893982977809068051027485338407682348649412792969299004341414021290005632029120274098320279850097676579272504191528476747782829118396840983538198489203816101353826652521343689278251653318498491629045703710950191960407322336405985456122595516487526380980597643088599031447901944353549508714366880393493785805271807961474356749861184497412119872295518813831851967769551038437334343577467357615763448728841429842843527995323532273559005302396245995997607684440831755336924723006635262993461380925730499326978165969615845194093496738119926715428685718175293184254265045803890367643938260621802532097100162404340221082076612502585721988545989427460338523256230490420669926982060355119056678137628111451999213401031611075429446623206562372336078151238865616390592815350885308596572269631316469534596696687647383617090168902738820248832836491175341163091830026279539036201021433565591131397095786903774708289478355905883892665824778699000005735567886126669347122402029160424118774860546710209279320092593586945725681803856324825512669042501470350105644859356970534336683545586867826864841015773016585010854711368028850822272525925041210070109021382489225020984773474798106590923782578254001644140517546720883518770465534146095970862320621812155975368537856156093077425461089818118647450856447100592240993358389347765536584939671911134257933032773667178735688572682539229881352284825158519291876110769594794905170733716912684846728591779081856500350827608499846617955373345842457971459692386922373552056593626402648877523188641063813798791693419169923249376422349740359139706626582597497007470296128053226001161169363173024304680301817875294277577323962923736089207101237303050634291387751258673232665265744360590370166565866413860853949029614341293689880154708892729706380082978190549490379584724264706370312370315894486293921248770492537365813462823956665339315824964256143290913523277280485173341271730839157625304524717388967241036498975548886909341929873411771891144804050193987583591420609165448512740584578255038556263568540870945886044121760883036946199658850613511991246905799270260116309959043057465691622854848000328808991667171396464753232155697747441775376048527914715119241097892858010409097699902053158023260574608432718830602062246837159310665114724345128171548636647983522336536008672205035997907796208848672009667040711440259247377540200482527179067007023503793580877790162021686745085667521375191053494081151282476678009824034411265784187368657663273460179201411884826584208027115901399366907803137130287805040657912309450026039915760079674688119043384065008552997452650831363912199255752268045421638456715427195445514502904577809503222744114114170010581989631090454282438252191871184355241789254616423229290611838233500407570242105611379239789770701088092099273308542968356819754577133910794538610132683526943355875870419924145449935689685956738677031305323050820403977700496442610425545726557198330739866639506209476919821723231016358724174261734971759133890998607597422893853828741228925950187409449829369624952875089777154645841087693107864179507949435442083663123052095014955692565197825760455558782532173235290174302539877548341542592657939364002824784099940339282543325409987376872600489596414802713607912453829266148680526207222748171509451559572302705104611762122746776656451070736726125137003897400819624500863511083120062112763529911293364265772240686955337733413094473129045067762865663014844281545170420514377020737295229939318556410571318688294125772947267815505072713963500372282749414786574847889244408165232123410398884549103311030809052948179838059431150573548068588913427812931777774909805250999274921215721981000350913005756731790323616673517459674292084745997946458242561327257286011274251204588499000113863569135068105575363170447398431286903470643636473240571269091485361611605235437198117186426452259376076995675387509628565955628409148208821993693100175445075677047050990383332271358608580126867157830598397292039177930663473618995787971147437197860889878528806248963315161205991870658741743705341389308411451265235207618653887099035691544033158578772435607889617728377402279865444821566664957052192285053630861522903133214738535505720030766730562069287337531829713420521851804815577316116412840720478789419902145263194238430712368254975235036365274975664071289057737948070248163374828258316108772639088173217686050981833339075534409480307034421819409243109008836175784266622006704655160233181304617641017097143348428285653045882505255989015899467869827480234605928644445229370495854581287048103525344701766689973237548142937876757837354911785578201986315949691923410368424567877600616275770261179711893327792653863378445199581740922281741931356780890479371360010428936993001439998908239623228530809812503555616110681273948621776994854812409062141637980259991067847437775963868043413615906129068497771949091693375591764415884430541077100005436784764405499717600957164483170871556527449396494630342436985197058286685018825240530636491656950212476605427211202110062993877864364621748958237171295884947532650611493543724800943839715960052170344955840078185235934373818293780472192227749033477613192666019344972345558952949046367915437533374497270716001437617433991946795525221886832004864029202033807475667974495201508461440501466455059432711536189245948190881573170613831486502206902708503425675197899680565975628754682275084569578445044973982185655871038109041428926453881012870220021577175892480009013776285092897268773097400943629316558788544056710035836755308661543800679254565548686513110274412685596831246726186299684982594707744647301872465885500126559738235757790850399418855359729421174868004014897063157917964574871623477187853851435996953437533720649085286977187351766625089908948789568639970949747015960660197481948950180043745306443068484776497534431494337814158871461006504472346086292144451832962270250951968063631391309594148022252729628317461526626410633623348496849310717831869486584637647818851405885402852438511372646894210590021798303541185548485764388544083833678375589030869826873149432095362742822741619333125525331502058954790517451631918599485301385137479261295671812325262096743239877331700419395399361508448583254411045114465714499165372873413832147099706043644765767557826872897577421729777533250985613684528768336385714964770990639258307540383363105553675421213467388031553666065171921887621299306140087730961326197335187051177394526897355927474445805952042085948659100401208223649768903813640164358905575769080189680627204737425841362881918347857249433788780049200139605318114987915004231897946266006073682048616126552192941708693820904146404972015743574845066708156565605056421433122891942867777651678747155008773300575059869882221599063595402960961598098636285949447578744903684061642019662784391360995791344083689849520964435690289313531392233760059631775066680737421276045056547272313008331205850935130532918091407447858922519051829149124717468182893092165274384140136808609431718719968440029979185618943550575816494618596907402435315433268605721691055989940569177427088469753323217096998178099556425717215407853291659391110374062446594089771170521293070906131141856972415010893255083977764394295719692948439698871112041542694908081749033000694734545928983244634788110045117658968431971148616002135799914547958435525768969800939602370559722748829524212361665315609180493984977187540005198515349376635535965445132470277659330557685795072771366080736392302429453620385638785260572336847610873145276587528202600029206852521868977861268073460305447061495650531403702805376688710426076866834443650217333059775489727170302972216666543767979987205839872051504082156942797642053579864146306131820353441969572976305834285432728339001783410421304595977935547664401112892864778649391903799858481683843488415309355702274604931996840069924142268837192628157387544518895769173397461753740946321722686225134180203988906518467025728742539983946874774135344469414353684340249317498464343843147843024426518769580150009521487151619495663806616654597209618707122750866952604118368771166320163927624850556882171877349287495013269922304813407178773830208046068213517010043108855796339273880817849026925959714703228596429454460952566148926034155265556421354705013292577830966222186427268882349138331949754019189394713164792643631777095937904141532844226992956706067585258519275988115016026569322517061104992019273240479154717577085566974149603183946264906850521532828338128239099318387384074695891186788385166498963880062460429551089464023210769448829406605797518707853346858483166319088008985688086404115195816028097684089382894189506840481886003947640694283707917172124111884724334061018652155776152362091166159480431801623458098129643529020611767738717562525336496260724823990756093498557052154457255822448993436851591497278256613841342924873868268735643034171830887416697415773788869795230965326901665967208258166996677059264047646304354359521808799831850148537557239322545849310143712818458927080634309050865774592769470691000330680995566613012017902058076928432164771813119843483227008412760314556472306763121874511015447220307342231456863773780436413464666576761870460039234443204669088145324115123088664895427304647504529290711438246425647781334885386262839672113179893291974529737292285089962731515169684507655606213588685330015561167509065122471985039405401041918175301112532659462803657933752991856069380014702547379847430643087781456186922270856419005688580665410244206360757769335575587269103952848612737283493926426434393699676157011391538008343385866418320564322586357313149320748379110858311529824764115678723933374922303253786706154583455973227298397797540606632355356748217579165465163233635213558538525516570326429626987640394807835300755449537338987150584755432320975148198371252315634001585249132944432091180877805091788358181718398050016944412452363844727252403692116558049800843077681320967553493958478202096874195676938379457437157313547906772199905323127784452930781828673459551353323546872862840987538900441086612211943984221334997962923280468620006269174118175293250714806909152088817327589126952653214967389567686185737282620421223570467577478999059003456213835098795547393637236289226802385034155352006642980957155998472504223049407846647354840897728858451037758157606340335495698890237739313283370722502419784492639116307533984916390882928979317072825984408659452875323142348706411326905468743166156421117830464226634145316507665121678195276807600135176911784090182274902958784499231070913500240273189060452594601615203628034342972262750285555195461057528946584219923576107924037633220536129215083917329608188877813889872668042181932347564502178024711179726325950783899790575926110302404279381064078138718861721142160807230419323314600016167146715005058465634206526390487173711027766188542768538670528479734810047838531125593491023411873778951776477857924090121674057369876858370223071059292343212491961348800251279766425305673073645294692360779005993809728825574834053757935305843810565357277910443804251890831823781572658639575025026800355702667459946280961336309080606808719392068979938537779911736077063456736450580642593622435244407766092653089482464411113172737806193120156307896516541839198267043942738047414005734248599508820104281565938557268692247487597696481198823644230749902924834391209504004658314461934788496801710978561316086124662240635323437739364449180690726150549571972238919960910252503243158662669859771814561416414035822803746070092704221691615974737718326454712741814369975644228989598114940519334423248672180720240350592579899810058042193257006664350977995960694896161178118508355373636220219745710221491268930325259922578621477411532049643220007263511134810679266790777944244496028759159138216020512257865817164093713068368377369206676207785607215569361826591311627875700656368944194961525908714814583649888459198014747792817013832299932776190534178824165095305303267019041098881418732392889978324512328857042922291667230958736447818964050426439546811738825624503278684787465584363819568029454047286927793137661010196551594656400916053453689169301560648002954667659159379757060927989643743369333027229480229087528844023514330970071134415195639982852430473464066308187363807575149150475432508997272838188737827471614649252443418059742158054648803144862732944375733457288192472672103999375349030850467018496689871711698971196686130566051668239292144619947719377718155899745901983933882945998050912920723339794261851432491900683322956109571428346490139993678910029997619270363859965993280798618704655145280180789177749132360845787551022230690270160873455703781119987216724627825200325594033286750124275417997818593921879891339243648868516050520625594413474519600828233919007862272533672321042979099692559808854819725020763878481097306276430623248494961321425252869850962141898667423828352677895069148206557709330336533293417512841272507946023968033841841394028594473561342654963797346638049718202314401683361845152640281135967483497192521222365619565168585142813391444365927635556510192628158348557782516666106228552848995901820906904910856592837008875157801384506387889073329515772813454184016137650835310530675177599651923906132652003563197778115604063549643781797991141257405700381777546198666753376704773154632534792056914068787598124249529200641369765780440269888172830838391988348416364380442638913095856541986474040904187497687216675708496736561926532140114325947762883811967701447239730652210265906440941572867376563065383219591748493444553884382416881872008830246124001959426011240864560226172425333444827770273593957610217046446145626234967327065864600539458916232827659288846057816710842503679784917271096917188824409093528597739189781954782260007528033615855786109285897997224753368908949506482597473064701436591962411749485363325978138026948068578029337732216116589554363538152746444938777107917409997738882560912107840995149406468886040515295711031919034996007170873048170994376511319379569790910139456565071760709589958844251105057794188825264985854931214734179228941713635722719542423961474313156306627529647772228194338628431300972603664322334082962672207239059891764782959703950810240947163023944205315136247805192862954595068902572921734082015017662334402698738356521215818957595149380467070312302622527018079366060229286316971779277746928260949302338403365080888991756401255158819224908971937751875941809474952408527808499765316100771961905449523344730860282386628452988332277410922071127987735450154779388438370351372329769745535096174778042020807004494348613778141098498881745565004473796430434154536891884399177138506264556754271061913490770819749492121987070827172259686900873806018287701467388730124995671658560068623477305644136105558974607298060224185383522443091799043764497265349918209721632213064028642459176117759393018716720368382153646606857649259327207788285491169793996166244129330501018172941285470127358719939679466368749265631809516413800743623919641144102754313177897798601233167922859501357841238382803897191853262856194629493954552828519374183060408721883012817191568292036007680434898420153720684881216505811325321702707007913293171112329038542446866235822483234580985097732972015551403346827165314007028701081024272606420227860899024895805938484504689728429809046682276473786101144298074859693938239655471866714109593968675124382452014350645449495825026457566812646480331041535343169352777007306906237814911492163921745407520423847083745216128840925697784307399297155426880088925364318662456368737850093889654578025519651527686336596821918887175539329146750854293215888640676815432355594881997926217884255458491628829976475926229801432155533177309677180542848516562957449557641101930112836405297667039845639960883063594448742404155966519103545055615755501995018590697422095972092050442258931869774925185127498872528178566128535891107284579662999442050653435925528714035033101175219307798476404675308407858762508037568636497190799412668582762635258125134616865897991627848606898758066132365977123226118080939768448460963545617851763897780018582630696995289079677084067454465861203339177029799743649000067172511936995220609847487464096274488224690564165579311343580727144577732101008861617676917012347919378273444650033551395232464744754118680382387038586197517405333015399435381637374584406608628912405411204112604249726403087380501763613758212904664089892153059230755123162255426456887990931648928201977338889910654826679494856407498119403264457079920350301690627957336819078676472502991039587403143431393493994004178077248218033645642982237468291766709386137307838786877983889782622195866585717300836647538852525608953826832813418549885595215301141784025814465201033249403353586038669657290057171046938477343153641395319841997679625898873387090496463689567275608428105851125192807363366318248980963916301906713706243570805811040548273306549972038925779450447105140853585954358832799896990325363177447021566094391928755752413636699677513828561487648402195843851537891968660797395721540138979846783409484957107638372019892817031041752837958909589121798260152525712770624103328471272640874636391401755477276350436248888222247244075600084420452490064932540475033022737304778649381001822915343807033458006683717939719328896540947286057232230616417582953446828125793299405325577746810811199355433423237099432534142183274709506296406009209289460165477650179337507919919936490563438890597334430595766872233436759421552189796488660530856311258874746387224879356453967330037207609409173403341101937609060369899177886861816527904738129749082835211408987882873552279524206947959359331459636042341003266133031484797847087505189345935053600607649503718451434534478687216948772477147082185165037043569670981501718378441358920884740721439901669911305948101790663343198879163366301777650101655922147657704595211223529003224926452697532614862839351216434285983052942022656806728879517455568060223729283463583096656193439940623037800625544583383755694387077577928200870981139103896095191629278140622438658114535638569060371519315782928366561787944512898060283569397404333449575001888874431184713095876161625395959881099399671516789376393404054969742836586564170889872780025849668284895927794610022351948432120914394310401650906501000632547153581116231796253874528563947140229606345402984431246746624737500940908652640932104047705451871587082719178342090034722036475284037431093536657696826239942590067035957854944453890978244091109742444832099077798249081412402607520808166794899150112174021273791646954361954745303516219477920047373393807905148766502545536799447329097224754404970142441837157895572785130816236298705719029195581187728640807742379242314461365597505614265616076923948784298534187891854615194838302350081205163070952137856089230925778224185083893767174157909325352685341506286783932724222692806535180336602362673088100818990995429642729166284876384241233067001655202511633204716842812794418821247869776291879266221248809648637579130867688092355035833239345045215126799149632606504921322153483903041107024007790841807540804395618466400502990035300412426224272253700699297415805024505925273526684435171421302032238847156501200710958930077137186438249537605163863078285697846015676415995075214133825462930101777390178759881356159348157905254714943630573712798521161212842467761324362621568698900387314984820125448440229483590517376289602992640529423636560551563400507053170501317862569068472542378164939004664315356128034860576904521923798593943275186408648255086473632916660461929895022639305769067339160726201654416969783565387149129794645115257724716054503030328317491547767004110881187579453706041530118054751149687467754887282580950242989073588497847554472655721189677871844743557755367475225147980713652450153681062860963027157716186507229094266638950406803181017501420513861519411002120747986409627884127848824478743392571637472842995577426609743206347938183232172822160517338323183334897589480790210075958638194134810728978370723759159225807387807308805068425782627555988445829727987705531319237624422868633065974431995058654554596024173820244112169247853934943164364360346897121339204356728846166649986428988705778250287743358236828455367424540122235261203057423575766540828028813360636342336438463081217611826207231294364194029484673598437927049712189761083679506830666376950300290493110251723176285090814366801991012630007595149304102479303934467006421862135304576548642959940598240765021748903064187052260107047968874162910671055142990920637309325884725463888599188287866396014195318423634240232751577732526844683547871934178404816343298886025286715359029528709463147639587284929897544125096531977130709787050091635886627292706978882955941078073096276322912033748871302309978881678863445826953881100071688100177962895994608080583258800524367339556121813979739597749166064450648149504577689479258486114819147956750772120620845606876887542378939610309299826690547712953503457254986873818086994796157003432884685942592051615768620375804782789129280461702013088522087469531744417620781894825549590869901283327378535832784785502754521864626041441624816111464582002597103121398565805731478063291370227832634511549954509377933051449450671280555705314296308573829486442569155759645530590393483743415990466871112754694844177957833113060159096242759884568643396696144039888264567860353268499697925497156193889937891891579895936197570028510621747457357708122030720977903556579180898513139731671562047066837819141185263415874786880618153992842536683235756936794660148431420525000887212078028661206292398202636456602976174020545356791144058895658813243726247241976968519709431447067506808367316171464103523723205487572015377545122896841418378713563325389844476351627143504082623278341892607102601758909346640618149981141174171420475330846308742380599041660335082958802404858277151951214945519580100505444537582052306124790033758379534815266475847535835525102847417921108641551555801460427478342505714433940918625364073796294524759822800741215611243455463299465221465552558882692069157577933885132931038650047726820693946545530740848627249038774497356997949762797403977822845308279104584966575567346059212895736459347940442398433278042228487982192258501806655278088314958390034911658115539433124531611274200692292117081518981439371652021227032089283543237311524348950731089763332744186565205300381555925378154032171793432981700020991640127600920965331979182291479024229988490131643309288180898664837618485941473260021296348233083923289704964550907931235489126440669103645971106051183819426932152465073190023403114636534696476515621048540812779470846693925917385103080997463152664358291582197925610154875004424857934827831209833916118644975639952392538797334880399035604406043890099472564447131182915217426994729217104508174590719724657808342012804833744278790834579280897105295538386577355604711018306170975248021674414440149190200690955413406408810260921080587485025919090680447382303283533360177768722416632460169154861931873307964315214785616508565749281123245605051128980288386354768811268485996419423918086094447600457436161149626072727025839910679424638538407833779845981965539020794438568472581176818646103508565476958748478582508926776450584332237408332716052689332910205944434532154049626067537127333040466459658201279816192684467750923385981295371016870050684351021504022088302953364722501317776607714300948507078122351233288559215815430522420199480578446016206674243363036047984378162390889429538475053806650657216134232825435654081615640690030297941817332696391653794606715092714310108246334073719914069749179428956029335572051249324868503213858970219170370394571738093535959489876965879832880300350943758235931029016167930774993903363982589726852730752928238786564503765846327558614057614312463919905810669079193032353045989702815458657619099282644858010143611976930127449902205307936371784796222531105815999193819417506643050642895978917011909438949192578966098361517781357805241785797653810081436487388559122619117204297177031276638754404573246855745874129879510702439001928997861384014934780298952387554286832417680380033239244294382088485879509941861673242450932290518057757318861115018289440998989443701897734960742561981272947072059033724474180802736141260368516094250550442381655248012443573803200076989124017947901031566760216522442659873134169534646880297281514273016659700356949189174491540402300638608558700419395412147897193273766148508677490379397772119318536386723603110013254861413941479615063388701727917789082170793778419634137644338443083009470460382818074128085641917039885619675124639982713500685691327578098208098971236079972571293054871618055945297374309109510106569634260045879209877548053027417937912261312169256584560635469787453149953517013821386585114942427644025130770116961047578435066528417951217364798427609562124625634850627232061228268169174074681247413922323957609927770861235722746787821077054801799635338190219372702037288627269251938971679982980654556720320735526808579773289798070992037104610882600225858226878376861622666963381243817475009014859776030896196870139624744385539826911421207069660839976421402164014914132528604373498949307336952144276162142256631741709170881026649369820139017727402498803237494580445675278975124661807760753249764794473798494226253194520509708327678248962821615567244622354314605290331725033094170946815112521773212354303463285670441302790134030135708736776024843586541081228827756293443842400476843642365526878015136702509997199834428335386524713583474028560824535399225570681949018516434571600751591286485088086058001545397724364804966889567514535456874040451216756333555613452320049825768985820251828696011097519707219251449380785346536911514215229244891274376465342965480215141950322604331349582332199924396957190338073147273542431309608580709458678343759641949143584885549099599704316993549305902685739821179309107608960825146189631231204290420417421525879690991861988359651627777228914230846647913222569927164248161239700499614220875664244724136253481309456515023503471943731262974641111339147546592113985904850498146904497852424410894645031874152823398445337207650220752757745594315243460039762921141032394022817079874662594431461298005306533840804804113257733602610487101069668538709769770924185280665820829451367400605208371310652202910816264901067104860348827520029467386762004326322154270455167351334330703513963656220600587929703127404047432782744704410731136991712674248776824694178354551154145436576282544232308895778146740158435621874253796232306550351569114950763924678138881380812949117575693904811996616280105217224177966311328278485579652168288237757860421397556764748054519685852692397777743787653421533337541761917391675973002398583496026327673913342916783044997613403043155541481740347497605101996657774111850818512373091040077117221655880913084129219092786466591689091438382624356468836119630616527925194761174665870577204878865868837582125262018400706054917025302190375570372549349033356667338986631475485734671534028612728062055566224702467240812229977217315184168188590971914763619266235646803792008485275679985368498999856425242301637699387454361634300672955454211649790944104775275381743089757310831094943124173805329582776951941818999766973558844035806710419012425308119557563720122686011170858360575915792699011613788307234401769085663597640009663938299929716158732835212243371140256700837769115960879625320040548245885162971739796362779971721134486369796706353502898619395365722687414554481984164130933743374077215414969615619721668720203068772678391270614521913290542989544575229260809419995886391765975422758250421048748540452950967146996249657003856496242966878044983068923341587106845094395140040368654032023664917657846486485871915359685488073662397092219491309409992589896005356423754174317511747191078927461462460749436674519181722379832417966705049193179824571233573598566055958053183265340398373877955229114819743044264617288691458921921843395420272460540622589626880958902422265168648788949257496124383039152267064403710460363601405565656285513345098932559879970558281994464646354329266960805711444434786646992729805921146338303380080065669298401959288311511866116820260661020000205573105995412058510852873068324582395680031103570697468901786123319963534145858337640736081644170225275187201455556465931048944767979613087841988985010326106269166228884931630069098125408555113169809552254636322082152754768969851335314049754816691770468261186957306547679760606582523645688838937792641978610676891321832148200394929542697906395935051844821530527909706333514806669958854862076308321659996736092856682990265264864868463371840632244167358356334088472466022762044733001961961505524192175444989113465804363215052065914610692317217291531466824286639777066739742813271993786169173788675399200530578443878285651490340928621288871036543772035258415691480738756063233843250311528114113221662046342116083345610724759155408838290047875271537204291873870772823299343405351877170701648026273095943362724537762515168670605942842664894712678303965273946730944078450882591715376404044988387380512904883833099931988526179475670119360408214605924190677211746002670664989775859965277340385029133598241979799368359241888044261993726402865437648186367925759274000170785205657973646007824649206494559529401343152633454459193218103291087334741528205911406827227546621479731500674823466192775336583803633400614919078571380809594360988087092738078542802548838191797949354306545136629737960741060832037462010631914851619373355596726838257960340414112650971597307440504532805399390215729137715013734507288112237860807804494537732754616811604802107937726513217787933168406841736436760773386940393232673711056337000228905131694441475075432592515591018425210572072334908404031471370748882951672357255682373549754138363054775297040833154148056030501450082311901943051646808590113753665974587756365593306255194920134512742983566428331762876402962463216164722074902436461166941789143330719747352399793969279661335833622850879661195348173628014692671059829482117181612267023898631770758478462146512787887808689159089381106965231352802768784190057643155132265068470151914448025654470802892405377352442171956455189405454523906095807536056533702321251772195893269141446533524405946951704643617686359682114936463638786960739222518214544131839808064197536762139752985472620724491341497749552340874168174472195701722385324191782608607178716315358325063027633224821951145996443204607977351280295811261422960873787786947128889698781442863045680898917593977101205324472464873657124353736171045352195989549492474862891602350980648700062293178427937139038630332033200265858501142117391606172326211483554299753696440891754532620435124064213830250646465166546169022188824713344602772308621771462933203457962679552294434026664194562240144033159321142471345409143986833476386393240645603884631338680753460437826882391209420266644893533997651321269615664547529689104185508296051486564115432091998890259871573544739297576598776831560402400690717453398315935981079568220771074427105431595690139384478447784187702817741955784606140645128821913776762386818093915979568302519724597025814075666893951527456481816720111955425957492087253281378837946854381060647307185215376779899854116952935776308333395494404212392184861939584916963904924619926251920415569071268467944569214599325865833506833794284215712635598100119259016388190688824579320083877809255508780804601633651360729941277631306638078658197167231867421103338540970326935472925840486755371515848820014274294292191001915014586595141074540970123790543851464566414658354207671051994607565381484741449956434455900412601893416478967952486705679535615773639644692432428356755523941754070898512261170647234022604380036211394837613647622442582216187578867168352334429303756239533071293473940969335026696521638229658559453456072792696714406170634005683477426159854613024391515489104174806539292017123633692563136490954614127822210942802634791273358775196512987727974314747686848080374641295826026475320655267371447475471915319275938412632167817844121020740921324991229456469507574608791800535037995899394948520630780235541331068962672017269921301208519449561388840872546726966332534235052691379683642075998631966398892266996829212168102724675357979872738416857904833953858104442740848863475811742765613576870736644055099530026010892677327706406264596503814081637005562555670661461963258255782914970029889565444416872521452907049775790546814114168636186013939750340592125590303787239521671492930927899089015789340430134667823251086815737153224900582435756575912355060700786492805860661043355162385944559389594749907318465099912916819495219660301705162945411523511810548851921280625043007941524499562653381943486164697088978119061977270356384415964343065262474729171967689955028962466180295440938826560115776748520624167908568454769999049530428237773316775735737358117316848718441175337135566870895938937793562976273171188813980793264839469098452828298152107433807029342951646670732025514034333273433493690566567290519261161592275124948260632105410606081253343277855188608689181104657403097249099928700897923645050936605826658680796966027596803163256758875455369148638893010795535287572929235134399261153956463385466207140928215882376441350585623964090156875519552929254514249238850259959629321851350693006286846782386598491555524161143276068449848976774158136028618316133819727085729906913538850906629429128686784718777861029064036796037099206854172896697935881358501822491002670747021847989916542451187594164274278920438263637181419775627505555891895740127915250275443251674117675467117566172871471577765349790921163089084113597993064439954594261401795600750551950880766264764643474304222058240261388641136688522961632969520383359670590859460290690883528927730961358920839064380051654708867257623218113262336030192535731410439738275827971756290146121089964634409967138714327144997584906769248766397936233555221138949083052418416818724402658080179636193266802662825743692163160696548798139903080275349211445530003139117063245043716101072403544710007947169580200175197443584741189962390802662357602587758207816929947312834020293299745911050512599178958613798558354057575280677127919337736512946666002372855749874012927501245251659611784466669709060248190810170043280586221948113386881454513882287069226460321551741744341418862907104370818971450475799545651604951784804562183771982782082336165689704368276515391621054418770466335928725613251212795548511791438927933458488197913727977170762267028471699126254311289050872945916338159346837993070668240685864923015223150742443125606931456240405844837490599327610734229302783851599167287319953073312132407004031694081670067649269307689177699834994051569641508502509454994984473042574557851147708652867448571983036019166870795666064194970276764859552071673830998727070889364636742711491660429731578354356531021741141639320000767258618090947581915371507102404056507785419983703528175146038794919850589046290139269984051443383101984001651637127224630684508003330101093622202524201204574151350591165559938409974692278548469942396341839059627561608712235328062391629759568540251728157891261722819918613667693025624250610006957087753701204682148734165546144866049687166287581922686606653652907616405088901962025500857631003587843536458179173579621587655337507720875917760328288196821882309530487005594395210890941700300861292796782295816499491063141163990116259015295520198434679580247327719153867822159695642039405715365896179989799516349862417579797315936027449884470162304586925855638133154172721992193462225398737246349942462490824960441133336032635935853191949158254328477695219872953234403232241188527006223947209796029194428597131522187154383128538602892318034997224919936332588378498605340866444716930232740415887345805908127990975472778810462068046501634978084665174658346315805106387552982192727117178843638479367328180824189176491625322240221006471893880303448518255592691553450412248060974513913963251841371382747945723317867984749344876727536943030466044172774873813211117193260549064726130026837881170680277152131667575567825568719354261717897528080029193613781129967346262254573750989353673706223024908500283681088155451887619733335087754415255729852018072079080645949556441043774832304462501138105925569506232568958673739577911381577833722931879113549065905963124772449415686699635145998486328103316719101556112216493203059416237446854340718827052329623141174086788626969033744056725298307547756405590878054122386516983808353790700451019129864025385544695406471721428923448359545484621609431192767610455031049142356027291137370641722492902750069164037992645010900246616731645919481692784991697556300584495194285153834636169508711706345924993134893936682945245545408447937334434034968062064744630624988433683298360827435166586872298425694391712899711455846566616376123083345567666591712336532423516073824359774866069514691732637850989375538565382169487622812420977367135451865999118807433158895438451875148237004659269521318078331176497853331613175367668986903076288078656109227995111863417484720586394421178379443338734521414395056994015700284859351990581952603456618087497632425135924013522687763606147748936817642765529659271814483697500867139147665094689601304525811252391141551299315079084115842726385878543442191626263441548331067192984345552062509003176119877380185647498533874044569005061374739683673971528357748760147476635943461748593021765289128560704675280896390060476009660719144572824061920083529759415279356461233957995456142450587468687548206814344451614407858443273213280071359611667863571144425191039486212374620745891602347989568421668829528229023464828321832235812636217697410036807699872231707929600474847268247476754667464384020162342345114319116536245192511954064992837884125094937960062415911152607828846727633961148917499649144504384313978336147635164474801718881125034364987470821957549939187102709730840030988931419410003161301985717577723715669611652937611886380371759291114804475651488764543604595467370061846753668885415952970739502181419244800740190432584766831525134354266244097263657739530229870435959162645821735330191377192247623258966639728609249169709158627387611699931108592831087236259546878178657597142356206506169729766954891377743947858305908811333186498592385358227152068328869887771205074287212151164655614799317958920784101940002045274578459686107623736958519078293572792408370210520798797828323071154162630712481766755751933250695792254406714558209847363636947158375019627028490155075420479391870267218898118314943249308585726839175663124227184332500058122502781647789432764175035842175202690769312991533666383740543073642149528400186656355370660394698877755028109492656680184207808225533184966540324064515395866847740267319819873898654923413544707697577059890981697233577249821247196785408191948239806343810231566062823393159835346987582359024553316413694154860399237595492494352133541985753784935291952171309764311482337774193997858292097893836600436208751891346611734970501940918227091298934480150032316329863037224680668349331775070959624889432073445893052963868893830241309507795255898205435047203232738527345437366745834334385314837708405397333620823148332743302956140520524652630199865474451608437849482040007665103977004993698276852210001590442007770629651310877079553294479807026617457381637857853056544336772273567084697065014283704101944802934345324345657908988791805696958181538702087569832991672914839190932628877881466262639307986339330712132484849267698192751221466755290564052878935143688262185050674478037556530305269342644862484320708033239918883241091705773409509729639063865235602830974775499830875895670734104892277861369501835176576674664205218714894817230155705248853928557866058415115312029463513450635097832493013405251759420285361483337244498134386807001427892228203588964460694676975488303451870754663897146536536119065582135919066594595496278901870300308518957236110211793889242985954266694452587925777118493289003221277249415107843404074022038176043385478082765453460636438986134028239830765037482057448430796995677945800521861772091446018026632200994763573323267315645334729670887958574559766254421029382425558114394210376070160290076393212441757798509005692738280044641482281096890866524019130357733074438440736966074087276725155339052742220529619447237462292855590954444138129035145897987167467167403308226412298669053790529647661783461309972763152043299046302407588829765854473031098670591103090266108415434897043041423518499015043268986496582367426397797193399913641272472937923539513404985295441565138902271050854506349977587724044051598098432604503085383877691966740849363373246545448672939393190867048358166683041175923190543826781185964578426414413203855411168259748605255393535952148429919518263547073353816765000544350603073376680759530528622734118223436120771226246243978494603841828282716933116043452626481293474882843943901226740681252693556125295564742193131835106978803461788659378012894160448787290221021538157624563750655047832446348524503087010166965606288987581016974163495796387472163026248656422293213099738493780887028816441401903780779216374475641715540763430128539677295326932907101192731384214946905080218520143254942962209152692100350099859196829206324447339898479008846179777626174353376764928021585476031615825480862804258948633875444500071591536189182114045133428483507446416924660085153419287261480806895635238086857174921873473224131758776377808132724687074884967690121779691049766147328526101039525217139184686579967665683065015925740136588542193024735984827080881219939883083229208528806655512036844767276332246077368526896739328174044641007926691021344384844336992561242729450638940053201970776801587863868279400605544425661028993595001097600993994844285893250482455618045230171907311091855325492070482409654791070197367530241752704394505063791922486838004793683494971519572010586119275938445503815666711979922215092133178836437609483255231240174998322961946234762912318346697887179211541781310398587336238084803165388479422587101961324553545414650641390423084392680058129237152796581951103291173468954678028869432863594313868955728299004211291055400408672132568516295383238269927242257086821311051812504767283420085330283014340147822415666889455553484807143627519248433777259138305393894282702422248090959792179603960126018754262564117612878153779693114693275012332994208087183716718276205807402738631974662791223222931333880687144420971327161476351309502659890486070749014604542998156893789354450442291708590628257584439267715906773524284282357119677276689087606901308342155145805656362790593912034978122702341819528486378289575425055681247195866924172512541104110666962507835723237466493086385866315382195839488220949834433893830369896692330639863388931503600554528233141693149138231808003038069920449833050300699927253494897067189367393937616141312428062582945101486638092127516731421787672731684315565252867912913036991456482501632210223036261356949760038472201470714373747113476888852738091172064052909871839881950884325700185502907786475343805127067056658286961519797817162795740865052149608769042316930956890295804896008201174120640185857738479186682573213628406750195791695768358903300963434360503232330785528639596989825959075877664710167308493616084345270420038337729259382047604303229774655633921300201816309067159854344210807670700683365169325256635681474231963948641413474910549116555741020075527329357905647774520128461439541871448120162169795516521527649526225031448337716231968980612443942764079675779672007772684600804267808899256582580203761067259884436311463129567501077329005659355901473532828403570330236210178334114228418363426561587910744167647414865959785906221325204788810983082408430507639243000804524816621445997469428796538173580080146073989442483234666018717819113153067704662659605147965201759962509778344923747233073887050753914330186390627839533920600920114959393919992183469360119101390302811441111080862514100637041882968827006963718153779325684056733648187619640948113880276648866767354846472777602301023421652170515962947409592878712722125347899906364489522721641348806958613658572715072808639565743399439251416015164637601526722832942410568439293556005906355040664921910195878939141300010310742422614259299392525910139969990647550745033676052168438760487568568437065728653153791402116395967776833196008736820373049472310360869136900986597373825055087806499633745199891719431615993235156672678221147546399859568815904468344909553352524577793651304045978131425044085912569598722664575564238461584707204881729909505266194049701427084159614313003981796144352100293340945391711639896952537373851530399928212366614410201194963914256371769982312626697349718168551158576463081842717071859190876754602322111927859181257124351167339905274015143773837815375885365557900987538374474286961635959352046772096645432345332319632646236896031569450140450774977218223294826427469183114830797728312813156595701137774953844505247095211786989041647651428742703068441099801902382716557853254273772840377616297138062728671186477222300584100979280629350314869088902368916722595367290025829514588564949412700526954170540486924289685093765789401289804314973650326721806886444778132654645187688374152682605139092203365289686390909284300943277616190223612005967340054768201547707122940818673984890344359978841533930491124996538315621842740328288763359145736299342020384844891633854492674398206903495649030067422697570785580938767981123489500497530338327729555782121025750670730349278130894694953017037014694733706400072259246072876993638768782093657615891568491467139970499038055839437011846955258350862544385526954687327523916436948712413315766506588637575186861754408094111902272293634104722729478389068266386388801159068034390701909796567844848801980915877133017372450703213736794601997739298622347691023304976464191280668796067738771813679017945335096064556816934769472291952727071809806655198870672652665501077876865853696893660862487903540458719633081777940191107626368752605647228183757978712607896807668710102749506228549040015182150828880386205336036260645695500034172534035296332450870733412298479669307160595122860706846676490217354986036333788495552623283551068657552055413468022192754291620728012225658324293441197687852216260878340660064096076777513588514205188541725541322002534857977525747413820431093342252315633239185043966201206042551852226844479911400445467800581578027497239940650789564460736138594133609764185109143840428159251992117045159439642248529868242479153942187604934770749122257046347093556080072840690907009974323285320962556334341313804109034789375941604772736517350844992658919681324472124172156441749504019878518343936660047681788578838643939881258382522299690085546657990109614175758235242950900866349247592986323239071263361914423104280967792049071814852538242480631872950314857241014718174946975426586469519120662424965829305348227586995974836179418748969023737196794541261198480690701655707011872512995332369985892288228046433380814532871784808126186429277417679850067647408826610670435408531638273363866163350027769612305767250294348500742306627913266359816569050615037471823205524590893242656884545148278151697723587677146885509584204391623693649210668106043302839561031329540804958060796935411541370759407781377827602598743933952156644421753180528352212211498382063923197655725537810954438235402036037885963383582720726239775263544535688562037497187372306972185080400461549653534063238650505792650402246863203642910496628138017437515023117730726736206259187937811639266073428717089735203331320147594066268842284106395737023801082774532944555792321567817695685525625780585956687043160320061137811480848349767965986381044051848642310110773366223524626954735429857781765172807881950330231305874200161036365945609933112224800010020921725551196693975886295479264288605447334793842079901218956367382386669962374264606114642368851482074446462675895200427812800420524909697740182265371686533027453567771579132805241590461837265749332408986320020327261402498571697139577077439990526138427315343926838187090790696746803344136282872278323296135046406915230164075288313806798004191011029896578964812465598577068128738530756926754102988013954358510603332363384223346612130626131491478524970879879766337655220917270669732190207638291821067399696230748163279184475626846729246201982071250866690926073773154192130754587014723357453064254161852132949467949387163154910241751000640392021819381041136228947245041506880617935555249063584345551159238850923693930610179595986516418344584814511853177337511374569028997084538409090873184595385995032214659495128834270472412732021079322707281127667075618086683268780927476513561156415323767137910691573772852304449015334003356709150552872398123623941921186293860211994425686569497388886664806733749050046533197211438826332375348894530120352432436693449938277382473560855169056928082012081577325026273845778413512320258833191085481555114734258288672998026572813549338238569205337669985104935016122732440857875086564507091458782968843393556643644512774162006105594617327557463562830553302717750839096572164677228547610839755804116974592378166006855819346524257894438019279561317948928000213306398964275846226108173121377681301910610606738947932356944758612542952069979126440743718523800143161509539068982327952694705123491538410847263164893264692228469501771241861869824921303121554236864365648687201779405414939644280642089396117227577554969045017408114266822289257003037548744302328371532090515550006687813782358220361956074524673735294529981989319289424830897369715955440838498373618469844877226639381342676308904378148281319179794456511721514230052865843088037231084607205843607755148988361461517950300588741300336244375654977926020002458130718940660881719780044282888487719646401744225264537143730242852325546460677476858872446641635118230675754427149378260831840333893966948528927840852063335841550305218108526924123557381371335986354790793657285695164710359249781140755458455358841800500765157655395718018081854632119553184239076108244932189379289618400450906185460846739983513864264265571084790066841510079367147326400600204536226198887491696979161041038390035474129716838486123331149891400709654646707239579509064947244690329052547744082365715274839172338809633542961320892339190105946169017122883100072932656623144111126407625865404377781564561890209150348779351932457319542087548067470797842294609775093759678975678341803388428170145695974157093254846671168417941809033338503958906677190821455213843433439338978322137329591453978153506947904824539473534497665654892271942406437761573385691597676572394047439512572795742025565291494502722888699083812428404915470388473275012702579571397141230845410030760160541513199468340402926826248692659769301442590752342714531816541282104245132497769053071022628593744766916004623972942891187089544526087724634294679701107500424460050668934570307864309444262157224507578816979175528651175156710679510822589209199113240283122823330879821604082632293114801456107733735374643178570823456483122512810712006795126772987089365674543888027963986152011503592817543650128174032149763635238531162635248005352695725236232251360140553727059464875403653032904580548224609411977060999735912194760381453216006307126012438752536808823110218644634122061095212871780606972960838228512031388057638529151968007258138248205597395399230283113682355002659770024731162194079712237443788771145624782131134057472186622679676102084693233666077201861058091191925967288389391062123058828517413760595168589047938162603660271107690076272773279097520711666539366968322529408396154305763109204530424656444478653664034088555342655136880627587368309380814025480417311633219607163725204718863473063401249017147459700117981357734403032808761918349558411480087532329140014495957233258410982952865765523221196747268299649283713753977699695544160035926022876348295309134781392430842613403924302266883675413946370607179195792783076335630153199609737469663987699988980713465520073869333515949506357987883732503179848911660907781208546886641585475011577776866380753940776947217215699638286882368372805259886326917344110915793408988270852545588606442194543380263759888727259011084756306301655304950258794757155698076009841673272962939908542375019369005547690198241211755519794394664800098159122619263006820180771919489484516540359867494977462026506371868957136880073942289087255698065934125389761696748086378305941056503447786328049948952501841504558987380746103682773851048255537142861905209468121166045572316320512203048450245061642956310472141334376288466270885603708252291660872464264647702856256731236112234195696376785058491510269487022305955590623530938311084118057239247798561794705718378776615734590017955987358644762175353348163730939019991569415887918518518058446556431433356522984848585844806294693575610356664481050919684153952691907303059323250970449484678876454605901380664685535614471455720254186304066422842804239943718728500919944818696737723380610169532822573523469156408786696353631686019298773041083214742580217581002784679683289629542747715278936219434830724749667788787530094158265814311292061964195676737346886964233907076310162210528759038300099340289947696026422232405447649829812955809356354963688317672638460671128054970247295627869392612175539947661347033061474571627372004979350241012474136955348268225485943527059681425218017933844669073298694019848779653482345148769295319367959088273281347611707916049576441027393658513699713321434163836387187834694135207102582265084883358791662723486575537480206506631987805759254498259648949700242394125985029945672593093061303588112073521020933965817788873061848794136064649358171129472060352609099497231908087633675940101600847298369118782722869307495873663324696977133913712620625802120802783766709239060139614915597903122222884644452184547769750763895025467581041743965841458441654725371681455366918134830707232111431807808841925073227769902293603040483507270944806663160128155981846831411989986183501579479061681569975229915443229997111403907593274339824019073825261756520961125580383741326949818520330550030150330488838008630009546261863919492215955460446342959171158545007288947959620888237342552255694910842957442352723135294490117148593787807623488433920416558693783403081690705020625714855856880389395969379316635013207842303969255744744024479310390722738867765265240494877945915821960819479525045860145515281166473846945226182033521597923223633207636222438238576645187064706441986799288990206446561637876204555742941554130593549945498666822380223554258584943548177898318825446128625250924775648200698635481902685413242833953432704151862254153557552965254099810707777264946659457195209373247944797714831502041855450438901633956749590041516510779725877192142576946956449574206073997074170697694377297858135642479518407621714370995944565278055447288668682903976482087899079547287726724589294127275691619446902929400619734462706109113712616841517268238995396199630628503398956313879063299129851704486631668909561473617136129394017816831630237716910771516122185058379873071136825189374139298872855450176648520245855199677316788740870276043102086203843714046285542314847341316398599809099850820689651869251193328746694232774747327373475709411182266778061636180990097017286449537201747387911817035287332673470899231252502584228385199420429954065491126806369665861110926837248356010120628631417720652440440189239355395235991272300966895404190657672113488161611540218566119608290495302784900586640577295026360725734503548339623304373779712209049147607436633745005240121619590263984995969993968909424458324141359916490972132040534810401153367941073404512357654812023819114125228150369494570486355405771987703287272369797689978754150815482447731119961366381248972089710497018860743959304945928991721198833494050292239163517738145593332434540339748438010165249789027894264132045926912552783569101293864710155965355025335460266424884944882542084579699661713708790626116221845580401187848586276324043674389957358125435680498996347814432305493634110772320626884032651611990623821141604249676405551569934293944062415485245698415993523695620126545686333287350724954410450952847354914629495258217384698526236115417197020040865734013386641501478198204428490731413685529334686620010948656585297607132361461059994599708484659880079153622576412136136435866326596455264723336147333490940534683605613415639567730821523673823655726107128388153745955971747335263873782277063570354707448459429143303141044056390400327003961837786431409090019903675048950336521101433040070937457287360074554493660921619548849327301793848377928899589731340299267359444563398181930345977637264869174324912491424925595745291096398878184154326789891502416494701562268104996314507295538894280253182351381078097525355664786952763270746518047619706046970451369044190342532714250689336668647137434283374725208100086246329114394854908541195210048552627095753021227559765380495121242090197287274414877383640358394802039433999113766069786046415798151903937351718632346377326221623132124543773491332384597632122974722414339844161738144624654374338226711621663711711852546668708709695663369074272419654983631441186699795594590573567255915467586456630922681573430782742284938104494707891569683075585745230381377333650996115978235694641304196812736114067959236814039466845503305847549616428937673037041602756001394066427800177524119187991999638384729828855030799530283921354300785469776987963345327600095290957022747315898319744493580153710044024620256801157540316710958111208847730981170393166916507616644066582520482016495152573697901756822201256212355971238427652793492118983128849628944804274678351809380678915017603940214416704124357881847616577127798954142764272738696476531039957229115867683924777856632294451425044446783064760321786494637013397531608137804763621496860395101615503134872813143022444122383409783293186405814077887819459004685309042571682848865096947898697058724819984384643159740045979334714733878937863811515199073572159498331141136783380465147310866769193731534904714082681779638745523723813711301554645609032340829451209529496504227088542656746423625555469147307294372810106278885963480766564671047581701894203751173033158233427437780020834744798722190685922638499490566353067036875376929542309854985307386296990972127055718161916259078517915911046433819172577779447373422436821299333894310980241954963415183030300214918333957528988380353737120567623514925991800067591562646487519950448370112073434071061246426642347986500155209195716377685394493811236330488578877870204340676878124702311768979944486235246500202054248981105684604545849886275890705329951254887288588438144661846877475942352277550299129649154702975487736053576881631890249906498163349890436190730003596306597868136306613337085682729984948359563856222742913602152205235253005456869525451627771968554119608896733138392806320566494644379641471181750009437394753162793270595514571752026556223327238956650306661638154687149917422841588590650263611782783207091844841282520937465038471531517713723920696690774376302773819476466787169044166510352007404944575758101969800236505511914350478146701135966296497504443640315105256450391956344114782244358939412511603435539182439580378764364355634924516817365588337670290373321864643541713035028232013315893462701295683240759812634735392491900727924219001108738553509326854208576705291978339473466649908162068088221221223538679632414707583257230178737228491837685745228615524879135582974564364034614996872005949925205163141893833267074779024086009064031878939904103107808981985767828259210889462310926231957161096341488632065333823911388829050969895979311991301350165620584555636107655348274573156145907002794472341099963980283977178401623152137847965060288647594311011562100030660522409066929692549645457671982019976981247321746994872954099236183060875524983347264996490645259902536524833497094980893429518101125257294147133915564612575797025761479498128934164433451897071658040797342273496924170759413249646765572403705129599332426761267676827281531484164204984855071068754035895953977655611718630589077285223753327751961201711553117691712067430670361929867887943309079348187322688594795609991485322195485148649567422630217151584398147917830568563241290455687013394996092343833107807397501694746012908689794600984471453347694998076030116206134005223865854506216555408726036120027946476374225675305705079497761310467275543933878289560428218077206194223862044781490822618945127977857155347736496265200488474321819730110010264576805034953065230867101507620740527956721558191722591553033911858599324007870156907877440195775526639039286243556048341553723938448412784785980733958595185103007493774633021956055934298650880779418503491392406713028867279894763467723279265034976959117695570530143424501450483143570052613208419691283660402536330634770590595699503657151970618274320796954117602136849933885260344074997335038965801372045499138957823511098100547590960547124761619363718992519333204022973637141721931062416858218610985418060770229767927562982955919921779709628486638122288931346105052320196841834638721440533270381728575746619115012408248194866629511302621931146718879574018450127367110483067799840502598807485887119707910338098026359235539392651850873873269567992999844404121603534961018726879123626729487658658228851552784287248385526259387220461984723162728864826105002025051307869622841032121383199938967495041370823123031180968090628603469239762861475415600565985395479542783245228228882570032631902337070852075745360655293818422188095546976637730004085915109570648895772354058877198969977211170430885099388144166179199428444514382389539959059449779210419130221835268265508915258956321055436658625279808843231051682513001745927637874723893232673345240985042816256817038008382140455601958002021313968789248913586918244228447374155430605529569019167751196447217726082761666925930558091054559580126196579355774420670002677713837750290833551663341164247369253181291139452317777482181434942000780159917178099804249965108388355206948175622226469261158299288035688529914068552904435870392634790617189323507421577237632631602412959502712888155366564038907472436467167709144508025813012715769334668860009602978388078748464460695672835961254399130108001634129395864025625408346259557364503184331209358485553206613312647378285393386323056314033253680097661003925142931042049238383756440895461247579256420935212432562866271453476572112590747705656775193814075193973468635499588494579509247830115385861522880376915901063705619260246515539691264753507706877011677020423508573918632867214717798021912596431462425399060985320070136794597457629235237709717657390224704421384446960697131641370050333822178121798459768826592634720602959298781355737627073988599004944475561397803824539897232401996781974847901777143118545130547719699185664324013131490520331753477163165757387314758876434646664545598786201481259563458171795468289674837189956143614827450589927448780390932430508059659576241720527450388297023468997145166133715459033550882501972436148212220963876084234986336589991497873532843854371006770969283719295119136648073452984957603442892950472336581678177766171409496623468177261504383848968823250411704239696812203748326023430224274998198811250123262278386364569443208280688193064910495785495170692934684590010796912090665344062148859638108020790159775278605476343711216052276510644944951382200897848640834469410821763381262299233090186922712382756872844675639694349149287458982265764102242620049531820450852741805642481624363151996993455270526433892295460043499758376967212645910327684860205243582823668191766625073530731276340694460850635921235179092449051693903245385721606870454455742190961100410243941487441490511209430531481332894668394095073248205536611856352527373733497868933814499051511382467463841259958570898537731742421824040260818494401052216172790340817551996412426783411575362452081974930380656245395738973466965534994642864144857291167428909936106810138839707671441296259571670430085573624272356350787516251541115343721543309264743790521624387644420461634293033540381828454422386585432879363947431789323867546871856783886264038576807396743069279411736663907906099306442227916952329776076598824063695321761824099598565401893733452209708296560929944084598262432966291169127261353297297733169662557708318768425371745276191793629458615415936269009850379394388234160345279613471907814196934788800666134005231571691061065540140964441913495603199705382214063039691100575676501100677567437265096080555824653281972540683746555763282322572552508424386355130505002680915755432260104622064271524383850781820907531641950808639968290554941998408832871584983860188819143594022353816689585911474099138439710271510251749577823384378319097291391605922182642594764713624132842232605174979753949384730839172048892957180809249956775252825520467501205535434160830360200277370770693936255828868047349719958044652690256320579985555202084812210891514581500861010795379857960970298879716681716524798666659885112407114584638030514687971210006293141395810576054886146779157549062558967484354683396400755618983088961232954834132189132500522375968431912564973732806421782109906277352745765687924067860106358352258605668494194101524430051154472495351067517499358560481254562088284330202483747670004273268631981127448601923987304781871658285211237823611980469812588590866974640528424362059784819235846490316720800545475848525378728959076232754673312274947095209572626339995595790298888794864422288992341966225918898885946971965913585725991383933627554198456619394126843108283640241231252630985619623141827978279147876646529733939689968601735279337470475639432525314507999414104834476197421843866326627970328991183275123086666423061077799658309504744911406832597789780124923477996659860686717212264506614486627495985953723252618533513144654518971055703118320475761213263189954087899543605481425481548796771187925232935176174222228089341961085608158516067014732009119634273936597228047125210135318343921039002922599563428719374680935698648837951477387705203431958219465442728600751656917575029642424685881467335924342390533282334353534541737141761335145954998506115052982899961817263157384270138154616343588208161244876608647333054583720083083542595337948128534376202999615775705248370994591398961822948196483415101499261407634977354868790516755356225537787882029584575304331069199502948402627031783857443521504623145157474016996289104427331145501359911066113483629626295778522048913588240964883690494374248597230780930115914660326832852915628432722090826370726727799510491022658754166466566710388334820961421328692896356262953593086899403264760687387114228987132191900066622298144270650154497672388496297923159588423311549255424260365077446355951630670455918892642655514217580439735029172601837321434305917678627297663836293348347663147622333465175278521402571185081512258532278307347893723965002610920218450457465959859704967324603778955008325737079403291781308734132350471507155992179268222205402531772083313248763479998653834354081928403010993785326331311886995627691301472541834337004575180495334756932796231316395569767542051529483191758378188819018105124522722350468007619337264169703512519946089163406623139961489249571243821435119355506068278136750309914913099308458580157428500597895836115450033516425104712456541273562403982700032181675867653374147394945752779308644298250349289667058751688522092502621535892645873595293348304061964835641530837906496742669565018177143297242670797963206131988580107483336934584182625352279605378876031571076220074581683054005838071141394748310780889728533634396000861700522886591648106146719342446574681922613961244004144737550858772217047699098873691752878066497811215461908312395437250035408539705364252770073566138386541263836635167545322200186936746610168744690900319297910662156678537342643720513518044127198801441314667296742951061747140440586924879412476381860008682631394890694356556303434001275002517893359292408943396190387960120349547394321252742177358825091899531363840790163512458076614732947340718428538276203957238522794298649191064653051862049075095519213378754712861919875133174885515659833952242323773904515925981487543342235649051106185304623679708404599070935079874848699612165192177794206172493879285251628244946412669569164428947190393900934223299222669286319984758535511698770488587712419885019856175954927814256459403107295216935129635348860399227309585730503281710389535903921574120301142601418919928758660359649448381878047523439965867472568239971201938566490880958492781151812463301611595508380065180409558106176079558488211108636100758472997835613473435834823622239648980024289670596227233564094164780559723037878352758518096387782771850119545457399853080699531575536640328178010177978228029917271180377289394246333515789700038270183851942622533012345279125389850206350724420599274785455671945544924193528877028675092404682319067098130488123049449482736392647393256102176895298093292608226819989619605792830932729803820139822802396598710707862119987630668554295553667178001533999494505152019285534840028553816654526179672432426804774593653962384775858130079631499533932388124792386722060905126666228354075393977276262098141630569704670028108023158665979340794379500602319739201494181253904476519568787082366035160148118306620939682816092253988579350011323704430170261268621479870659219963486576328837189763020355787065057200075689441730648900019849577358295458854468389337194307559052053396499719168729521321407989935482133597623522215183701376881027038468617175330484871828942293382720470499548260477813422757467359581088916511023659479454646811551241231368667010938434310720430016487055103463044718160805220758874783112789969421960043143049907614191403638021484255560768378914442285283381348062636596245764778755308680751352496612390235892526501938682075131996449963614430085449990270051411680783110796473338430841871276344120874441116677028162397945554938662906573393449419963705194693650457060797418090714233836091501210119812500705215964466764800700005895317982793609384228873028125453642218744293270604896025588412338410795255328813799229323655863964148844690226596008083344476380147753530485345929401775191382761669670955915230396766482581325916479340727200958690361993111472781073763781734621934124025814376121206892694564396310699628125847179344127109712704073880656695577514069785700070552965599755361377670481341540477276185259229297869442495677840293264254274383671624831131037905912022316350712340614327066436798555261237315860293616217424497184612792520329082282931708807977547722433589330707486803645727945404339625804333642218153119447693537255251425984868981537526334660458463943532967305400599347629794802139315828795226895774747273118618849664633437880948015896703048990604064902051192801702097659534679867179072115191943443332046873998627733462421703659523527521490824964520044803731151293509691424144286869827517788851163290203054463323825213841015682589621971851775729794127240202608789664204570386653268287357057790675989887605084704239214888894939705509215328430220711068048277630313960680144760748017114098687055835955496661946731527979109490294322577558435405604573897657617121656872905711173074978405895649175247136073989998517503115781725169425778016255501834935681081410166989401656188642046813211400817618304690358300882590572850676901629421907454247509138524860272898227185409835712370396041871063065924086599622492818696084851085995282075603523085300626525400019443316961843443674160035620812995931386013644248509605067698599275797761938096193241197567215986232396319825428492329434604860591679164419111239464291026181505784702124103973805583245338298267947039053134831854590997686010505373899023240504864426695300750230707448113917751456459688059933940005656427753941483355552200756893314922113902006014969148723291385484638098285130311330168203638272192079985655667196101774259052441977059797966863109896321606026414709953491853073277280931977143404304245341013385260255109307621981831789057535636178389151358243924448204476011881985591233399798483030897071990049655281578364035122411099904539460887319355690617336398581524178991426918506400921977895037864766928477295533646464104394587791333552896160456914940766507559915264586548568775988553043237719657139294531106993298500224198989395348128576051472369291260610051833295669503906043580122108948812193467379337811923495472795550880404270044856417629202422479193851910188051782518232643958158792536993765900976784192255434763509959003042526424570992644401435566703898886170239130728046480267138600184408970263232235726112744166114547398141925490078941355356251435429462467350235300603369485812577678511280176915059357378768879780370005093722896395606631190836103082597567430553166744607280264048756234089180480660181414748109016196760084381791938471898390731217621611670741150999001102571561760382365587469891171112592747791344950814846843015417788261191839767199562284335480704259158651253531037100522020199869017909347725798393061906562592687994570603289321235362263513778547760024273328503964581858694033602050431529663183370827548786659638170613571239200298636800664739469793152431309701446499009579421644790239592453540291068817272545184876917338822036976658880126967268183590192213567563351169409416796959510451711712158103811339763375324366947507031895123286677486201619301014578224790123367886949055104764453048174984372605322622549761561085345219898706475868798683176486984013773269267432081434383414943947514166174670284175967820044794540339100490244073435241271114769838763727165890280191647613177848441141564893301111783710779678564365353301057254387099658362977112985740994074581560954308376470218482230320838196479334453712306244340477917901900667130514064760539795924468419123223606638149769154142048217286613345984585983754430883058575342005341245023989089642833297894320873162864502379912461460353054547108476752998819013806624240307651522902798403460038515969192280974684948631937561181265850527184247389706179576645407933257565655279485961117196440454815591301392323436028784632073278419278618134372259815144158164343351165057749599585396559254606814469278982998777716892901346250975377814963921205572070901747665604210682655813015508853216244221726604973263480719298851651678713351371459628444000518695669166052430689638152876178288331403785144174829384002215340071763676598270143771624885851540834961624069061260071545398403885976135296807785870018585922031611589403522794510727471745367935365605440796162214943806980842811864996644516139765144554144332485383817246641069743750186136782219135613504317253167828799023508121653523248957553829178552242319336136597569382725978590492140262782003973649739955037448342718940967508540975623807521425467632298155993114703548678631258537322536294441301804112303457480989229870064775388835507827772503634680922389054271185328137616072947005962835437768794291113195812789529600723261480836057116921785610068673357182715542738943712289177333764607154208601228948343852172906397337975920142131603536119643514378043035580303216094903344060658557986797228454603015336260824140243316290647411721483516902784721754362521340407429657614693478192412338742410489185237874296762258874588514586668426824111986055089602869889843316976392005061270825209655654948129476713781893246192126728276582137814779352457368337691536650859798428668349768578798314373308421525799598313870451513018205050572808726840287620209883566545377287595349018860278311521116714094183726450362349258284385217926739062123383794513733794870301376400349306093600391298513247381327096445791757175498790398188484766148558181013085856056626132247936917607643164998512106786883941483378878623916251121978547903233940254069998790813017147202659236598900357703515930222007285648310755376074125085359452848478551922826969904147800396868038501772575424527760264976538605595146802714103572406194646270494620852420632219552187353448624649733697166072311670219688908347858708294780230591264606690693131522251428246667431233795772615945186637099769039763756522525967039949339447487825174737731571457159885722304589050081307381754542753483108062088655627537518540455158428459286068483117636212245381581199398100462588405602221564403624705379043425425026693899955889951686472935444010752955020002199886875451457029847859029434883093791955195673962920129861531216162986819446321129021601343476588176530575074979936484298774574235077115256681448761506397465897682807335859624372393703282910643593972491292899949365111703252394853365379729487497563309732179623861632542952011372639633835650577772163021915200886528130279117995502094218374891686316895809063987723251769523764158883203208854708120929502546731527200918465559341653597385914178454680436082113156384023421404012479870299692134838771788656894453457099931728452739932658231219570252024294885957748380519504074442819158225195630990314966662157979284458610058928630040520921548105821108959780144503278925711461224608618972484047629035642497354964598352351909972082254524498757642218829399089753743449283954119469713814712413172423715808210635000250586868106431816722733586067116254622874383866869333486178896503786227983458643793643711312950249551014812053771320582316327731649638697193320730528451226004158462522929667640900523838861926684341350683820472834470016602478761974774328903478767537684149702467980216464773268362859314261228261504980245274355239239393649190201651411899113031572894246947609373776184187665148712463955027618113569639532236893330125567864461242119391005957435001944153674836722367671496107482259307229533264997547664280749605955352721057440550718187311195921088355172871111054957829630607655626714441841831823009473638155084897726021225158457146120505255903469792092937730610691245425879195803631022547359962497232240234915001518052996356355461351640977509489904071497398004690122330039702518780211897559287907499645821255512190599586416566357952745944045024067983115276910651988142564426447290684256686447870482875970281696799556309178339136823300023978053064283414751842350247004532301871069661978449886189510824766992937300449863089227811629099506246861745484694617524849053107535285167750556630499526201131875476297174771007148718879218210313459768541772503040800820865167531904297227019541599896667979701092316689867644156329763251398316791068831289847118435171442362968958344376676749570694334519873876315341926346132963064158159387540667681707183793752078467023529126549874229634868790685771320132398906546581504771301435535568644605711424793002617736648279096855481935806024228191368534646178659311907566785471349177129484314001903071973847902346503975244973429514589784853690161665476000611123532714837248875621847897699839369816417155331890058897834183902654740960067637002286728905180051508593304812012467600765345246970235559163641333979267935168923413951756007799940925172205933406060834705182260627796934194881826036542470084521102546015377283007357550073507669670996741845549989241345025115531853617923716217913524789828867391288760052739911429106829714655518612986741415435599232162814835582506790508321988291558850151536260247453852888686625601892143119172893033541793854559589892364554293473852312733544098894442349450706325508778164201209237607847423207843892339267055789931817671932586012164748018204342618149640440872678864900028197701897101359211626398014007449396144264452921266338884670571319218236980343223426602951684894815309201429036595574442521583387768532360884243522273716969955658693090499866823326788065673961935481049179770372379581255764579783396721824969996740995189672931979644539327551055541207593939151540726211717995583558945344835398167830125755946140092516766284131241978615390931409301691853551186854133662216959620781765786562941304366544522516425474495579174954572320507378210409931739763408894620635754305377210640287819888719948408538309660671441884611711451041820918825493612348028307623215261354358305507922545956347718268615020461775956671612613472428771862201238297036996036265011759187391490277258956558949418381218950861220475248152922901831593928780705441364925945993084578063340381089056971794980671951117362485262433121316874803250961082033090252648666487202194641937570247325238756169050174123888647740358686890703291738473607951234464967747843871256137677380683326914750624625694014938154106102738124997346761988120678020450356595716103651007006230443642949682036521836932864241278143191481625043252876790270153114375520404649219362592352530839496263937067056310666507894075761001147399241761265617853706149806016228395965658434099849162149184004248114155711574899186686445107968505365198991087580924017164983425000789139530143691927577410465201254992521015613730774940859881692531445092945679086293904060142285987043259032825465807817039311133331929509450623589916057532090140408031329326006701666841985772089070822572254061435269347946501571583435184606229204196805749826179278685612359712007296183693693395111614643595768453498876842552805742132362674264974303822303947799626527615714014283025714834795465621390541517880873874106926786723993914388838700716085794564742496246246086284569701728638212631760125831302022985446866151174212731616303517014019995705443186305970938194252003497114351301427871871682914470800848787358392312423476845364302482629789432201616349399922088364355835746745628286917856556759751993429339598797776319262601276660769327717600647515981249354513651836149661767367273129354625060605050367427986946546974968868823907477526713707333196409346874481816092755134408202922563707559364119253329640880163314838962850021558166454571561877016991349914702287445095621029932266204905318653192579437282085600949259518472505084436708499889120241423245638890066991898595997586206978554054733866290841145180548693226735205485262459961040034927888154954184309276536636120451275680908784708977853466970227893136589454444804389599554885283031535513232000866693077947496254764443535577368426042989597393794230316744668220070031306798376003635956965334559492591114355485454693818556284779637123185487443448919659571348984805122796169110026274624462411375786407180159948932705473392754328507657677166432329887005541357668119730300748005757982285127255146427831363097249187558873834180658792558868342814291176287875957719507135633501804042551824133954201760856515087038946941740638587357326701158370372218827852841931630194727833852746898345227497315148296581729205510458354508519853375089180217804118177654080270009363581032118631251516645139016848581331152968609647842526167697120402800178119097164047046263487722973851750893253642056324363280396484756138429612995974754154455946257723263870234181229265909785071015230939401068817092002252856210888820477909971343590363695969111558080800178317012105920350178771891273289157914062187154527112637255629706132313663588729582796155642178121836233783443360478353673770830618970377960782278200169462288091893241227017015035027367708050719083819816354371076623122679831474693286330182321965212273597016157882958735783473797372098466422355559610689517880189526223801497077721001565990723752110294850951274133766267072926673201224745990656922165194511794613786964457645810959836526351125133429764980372803575115169171976780420504657782852689884470369664598865905520849708462736172952136545871210919804972099392248135415176996746355047749401598200946490667047525122157085576105215817366907561357896545485641609236961738076186379223947649724102791883828839029237291500074160844741165221252201781889829307024816538232997108961891455867583117766831345319572923145511874278625431165807682696914532258614592463428890063472813893603816626896102940767618004440667885358467032737302803277858773721730620158032545798901174178043262612171503682923324597078303220598918568697975593384284607524095305196705032011347763867165226973618645615838639485669691705939922993318480119670474514611583089616898986156120651918522968405159960128338108197920593700795293044528728464533469413273912326708417970590233887880955628536724357311924054718458755226000689504532674598918510716919782797367435356828464957182263626440580105098880344641291440659635124683734489224401577457450979618218544761585842622212217317999110902037842723682755813801147450816485077838912799185502443272526130884715278066461259892051257462463931575675590755295331222086104411029019578956390698140712890080126352222577194095486779135400692312756392804026482009497228376582625119321844699717737506534336571306494812813460074679304395148006370889488234744422056193199337321106261524107556309514623553300506292124328398302688425788661839909307437411111823916657537297201685752509872748584324580822981728106861839503837173116769740277361261091997428547987397499741146434648148182923934918209244734621022751754838755346347401390129651804682188589093352812822110350335904667493700970879492181860626990300485280321296892859163998312023822515944288432664629072916184447119785594151652346971302251959592051694454612436545211589852738602135044027046598168964035276392785817968414314114510832074561732495066958189444743628897566526514066829837534293829588346454788494799792924750136988296900767854128193832488717508101489130256866386470207748645188781899979517927606885664583537313269736465721409010139836405953900076567591840006176841526395779897498630469164950450529329640934598634481822730555785416490215340578431170541795484202056496306448312961891253014565733841293104805632531448995213635107108422612866454341276743150744255744042267415142126547247798115768327270143492802931999991215296566312201968199862297373813914295846565902198629690434604884593771935006827203579232637218810596574129970738826981858592694928396110408189397321109341844283602239677303741229990249282633594921745104191450668071865606045563517168322822870281182881455596756392165702740891464025308081818612968910756364255494158621284347991359194803824715412594317100924443298817220925052506200026965130321618483966635365828882843080206990718868657446583628265984684785434751433912925427962987146028911515183470411562709291678771358852218112146493076223353395155114372458987704821192788778567336906456612580659208734808124995034782180426365556377409855258594363187545685820231397952370852208623484458380800992809917161076852902898002467604573259855001479293538934842528271851104238767028747752332435271403738843266159914535226322471825419135882527794591802513141072243790370313562694847704301314129227707996509893157472914830353751114365955104445129797780477726621757691692999757341652499629908315521512548797095541712826779975263027951041539251051121615761103096893867489623024950662768081282213754425736780418486132977904538405101105703689159338450010914342511199524456584347234507180700272329885994991234882022403517526255573080608350653242492894094536671214180450153221373286062469926814455747844461500839482401401922454958781010807043796579165283333553742267296787300091155431959385496198369672882022286155007015666066522230490563211199380351737221210718000505037242365481326670341162454136361847088575561440798732103061354375803992374404603019837640582819043064707439777667502619243314742383104111457436945437687321061292148250118065931963509065095919805265641140867446184391191607025348974008722585776362406709582825812882678451827368932265010526005876653426906814594935976316967160333006091006922959511577163467895126713601988091923017205732603998110094040031597718109952585206193513928193515353193385023890452488643492237316311317783492404699558416710336746955675419663945368704114205753965684752765704382560683508664625792351390125740871827450686433806661833971393392385407529294828135471277831963976616413974952642332032001042963693319133610484735215035562704436960894662490001471367209507532701963707921234049387001156022374692121434133213690965487443569186115377437036198899756837904480179344692242289434015256187145325830032754086765524644342176942578518801006546943634071183761137723172457175360080121913165168790029656847794158052312688466600441289760810337296620942386922469771670292595169333675689493496806982950891714533067952037990045952646147919621656299101154710940458936225066883314626078649214990643468585449440700506039913220648425612519467962646979868593002041264214416156524175778005397492348301977837001310943439340702983865562335745870185009647726264049653801228972376319900798844496354332131396113644770337317276287663071188364394764986459544649034784181140644322720578330793198229375648441791426643137650368545286699360274016786728347056600326690170633460679871875284775606770750716698726185175099681501234126280164132665139053391408697460380705074915199236307734462928066502068205467861687046655672801524843441218844420632412153130944823027245978828648018749369447879374793600711477972720108255269199602444866395768622459119012216562947698959410223878521112710690312093488457625921417846514249814072477235451602117727214612619674535681132659596698060020072992412908039513535358393624699403826540462461744545981007250828627767955910119863609662290308095423967399114069128370930791740288852663003255825137689198717175668431915156695789236719815410920829960022677321071630257412463438929067552782478374945769826513603945183570646707982133161482333445058973616668689552275565899333088372570575378073398007837361627793381348342249118185380994753373458547164120000444719950991007775612653025236017458885372693063326002150567520773155727294033672532466130622393889704751659230276364493956629768707269161492013044097264398396896071902221522819208089679254033323142422007039942141318062920584913277700119833666998173567628119987402946480123786958728151879022774512099213061671295622185413827730789473180176678819495085904805388425936469499225828219361208247201121953425825547014578043040006593266777998375728392223898495861569028897150723053540347370494001580918782609278151237429437084284541689815223484831796721922337995060821246188964511201757748701821221222700863128830756259362650161243633149379923574410198667387160886036931686261796520578230609720982792534713933725637807816925490291090217789675252863192553592690988017912360580001119022744424462656388524282063410235886632440123143824106640208882447861422869658402578095620905422009624798655811022164809788589114057238889350996199506795531439865786947945848710029808004518012535110927331894506286812928195928067896484914792021680812872292021475336513312180976067362161549670820973545338451579902479816005939944211493546697097828736991199433399916225635663486714233498889220648909780724203149536324236466567166401869236623300115766001807027136603352792754318714850209455496203280939669339202722830564784630610154272899404387990835412283879713549681540727356522411418480554673136971453922147649973578141501518590549445432952591405819400086798462718133156702350229998077317063470301725043380535918717131921355935708583411563514943715894960859288057191447967222973051219009320195145257167385260828056261259153867841160331027765377523705268336721141420766989216927964461809971565515749505700520690145925388407298087981380942818949166147804161164419070127436843405178221031586351620969834177370050807179391149557229993232420031501371414869513087585564447971747967217054996951477596066929780292516711906076019507175275675268108443151473386797033063486125394218853560924064401558392333052155051163291704370721587446472419945460338660768103079858766474839244609885461962278950050779309273849781615810978938615906913610862929551384291204560825934527978290160101137141856036997926675315770529379649213335343195747627930758055090502751379347966081692694772316347014168131289183435391601222619317058700090774977213217387505836798164749562795526734206087512518118294841889169906899432518363905667111409955748539967632723475678108981323044501016213140797832762771075587979990330377874167900526028683717075263632004386247035745308503587774293731414272378814540342959847120335856717815620356413051322271480070756810751487502314744675790381589870543504664932177325141862314756327961762432233992066344901890059698740262056493027504207449846897146823747369166663201323542291601297555198699460155185583737417960004552665279466108677501149415446690298867398055551094243122081733431916881472102210824959305163916714280891790031017146367159334750694723978085978398088315620850950244001486988576461445537493655703360227230887327378290154854994801925285456755378736388035438358718822118730843496960776236406956643448548125924452407744219749981807533042674521534178126736497869298926340079294116488630757178599547644422497052695327336177701613076822521604578691777949902826440498110476057875035626443338905428703092891046381354373789703263843586234916236560915934269443467911839870167614627690256999865178038417947712677458490066529965737999589581487098455212126664275968928007117643359480665940045565271213880546643491306928323611544325507602845342825802087362635166225228090394141976769629661178786745304291530406765932016601391860584808480730082840326377817193475157999626959118695584081507045117192715913379798293552881951856008648078843318444311299966892695622134550176324418626540595660442625626749087286774050906668834920587912693873733241655112309313214310137796183875404556756656195601320224527799249929524334221464708687149512543256624422526818144288081359947446592858464222409549427851468367923499871466539405888475177308560976303427472206501535942593462528733176894666790709558424830822304677043542006961717601370693673166028627737962618399859015157622473406124230040940077608352231102682457475698890833233098724201947342287213495865552336236678117055856642592951386231229567251207937668259641025318706949372648045568572811324647543489291917738674109789648172180891495145086926225203843826347792356601083919118574536153187671233450458023192117615440829786469300744242076851047379807068308582281842208210496629396177913165219723824985414308725280156872297656384200015189015562208775480801693364448648374707108620399710565707957465773857691274331967004371850419980312238465688843278220466481581299679766414925876883271856053913561029681947697521543909201129623257967961102762511183243927536266987083910904924528071931680451311539782097804271951586520802907202409656430601064650494355883965900369050895548922774027022803242138964819535073982721985126454543673887385136790216702615856878809942539772238776669490774809271026713489606351068849828907457168050845372503087462249809160627083769595895227535561725433191708680702234310380504423662533652324759671404628992092711085538834229746361988031770372244460387728077485469600485228896387114127297738529788809154888661822078614410790590524176868719666414206264748457278312676898587395224514290354892126196686067579058428795230608236303078385677790936315262584956365945068307088587307976881860289647069750005840327677708228648859712713269711505858732555102006863125367459663269601040238612303604661095306984559652582721225376645789805542124934728038899827339429783969281625600481565917529969322219722246344683774317076411280784287801492198353715002262683756335325767669845294979867111949653705551488468967871511708247539846874729027349393831461806091838002091083121064750130872692662512001931013423571704863417989163481527254081453144915276423560476112579443501855317867040331027246712507585961629180885485230572925555465523250015349771439657299009889414752224633976612637564383827905133133658373338315743365713306978624060383635718716170682760701687010977993071370164668050890196106672067800760977638779113399466582064726653142613018622681979762515958539872142583470095163904899667122040385836126814351300464648924931807302425016439855140041547969735335363960861024766636943194216937589810921699183027146324343245577418120838485824995898583670284340974365986380599588757047575759754393757752002642272880686579897023728718391444198318665802940127617681654312805477429487086628976657004502313128601541571640781282575689295587474070512667098568520858701752736418783787337793910591273220002850163314203169221258602804524337951717674467559214630145321907555408510737968029017536251859163363902570522049974656319154736722058849351798664773145377928848316323989231169384771197046453675215063759465651840988773877550718343180838528051306113083964675474508290490201529044268218424573734369683097678690172911234228028777451511910616205350311152392489779026886363225829934732106970527387889866946020523565311488003694894065065377757736229420017668751560753680430294191343238572809607123203528500316995654549098546663693439277142883677418610928672098445476118194275014917701526978373279930201506365236110912855251911863898900217576494929251573221970186271864764342286825945800086736276124228676115699395536201947794516861121498602907698796992490253531570655358252622381277550700876089080979664427670405838237259898006629187055111466764068793464636383943127818695898500284621153357467697001245643003054199154824820201579517699911190100016777698103878348896234783675785501479245048862368657140638754627623914646722661036082948859325950898609276919708405861419276925154026173157861641803906419488320193096841853425058769701824255535367581186204771480005503759329154585329158537285954886858007413228516780322411090331199703865803764313477012041433389756814311946245040168408626518500311116981527311102505050224764960900511581566746096638397991992045304405887347358463297393793553027913808304089731010780608194216146892431037920381342468230912749178261793756834533983787782810305408020751527774765492820843274245773399228694940965442997326265901229071620229708240683321894834556679645179581229206859948637485980846541835310512305375175219204909214294420817306950531545466768960996958707663577997542012005669733175210217360047558756464967646240546707175060135442409092741376636570806474800393448735381785630509221564470219715704980028622004831404020196621031902898226970355422665214177765232024075951053956585240872051484380202921036259308384266878315620363267139006300368609931752319413577412141069251716770577457214041198349953686952746572750248536895719336113779829227676893044813234752696412788530723324665974864386597612766756058727767087336232497843896743364499662934532075345020979629624082963100525486238195507859976697824863198779915097374150660682474805508708678496628587116583404237339685746783991385064463446043987371160952591748278330809375243766134224334057560141794315789327115578828126583751021322016060480800449687541902838886271024209362821311789494076679510736410753802196160736482933919015976111204132901373610212819223636812528486425087525990847299987866767165413671246911598579160975127181918761655785705054743010096504151050901634709174542647478836172748578085196054139793083408101894265879398960138358563938479443707557689035005129575873580917417232340814396757145850145044741746841147970391392074553753895770344825022359241108793171898964257264316159348070448637448515127097304230997665124675196869874044295234071893236618768148941071440480219291204249518821048239362921583355549118244508784546898530556948673808560842668816979565535145894271871579923041061916162626570196430591275814519738626492899477493057676055474795161069177261038237508773897627194797234806538716832110502567357024853737475178457948438077786911745749949071908733326614488701874094272634141098693764870195911630788699558725343983405767065992604831153753412388027069804270844227522774281725612918976688557343568841608761284494433550687009219292536116489118745122915864334375952787771306817279709414047529483341070017194507525387983395828216913269128961482000814304296871509187068818976793087336854423256717237197193386911779338249535090561705653258014096106415319980600579436236950797630168611165652095783348986740912580661341736280821019403306341586953342626935567190938693440118097897509877416858132798295242937956717933232004820557747728129268417715040194925428530384149766794778190808926973788239347857812448144464826779939310793493304702519122424613381207199139332194970699986830282469544663437329865743427169179892332341280792314547681242311716315173740717371941194661856041799330166549842638029905899031318534993309994683862989367242919708665935625600434206358000042801209357707172719125547033990997407008401293778137102375711597346524331786323576768832975419398208735597907386565576252760453247821110218751805605014002352075891923229881343670932132852135785315397864886467006745641881175660236968811016686221655488882688497346296588676168683511736640419698996204000521632240884404227340997263302827633879730756441158751867505277105943404652193144777625361198154046091502670204255128397618975393872335585640090784531541600629233272073234322137455528722702171349233577452502145905074730324147176304357111434032270005710924393363629642554791285557115907583389312719900926813814406064003128443895530648253324398474014642448478178750199977017049073565648753156770218543652628609080092139164366321957844353442773057663091245319299130451935913127757094712251755049746184986359914367420846871134768814681913649855403417001110610091697660743433416063078168600576903399862932723312545722411563101115032615572038594187318459635892425934729638739855319228434910275031499412864906263451320825875275275442800792185168404969237729495167797208858790894056358719614888655348394537976838924868173872394484240059004489968842565878609085159125408963085462483439286724477060888476064667994165781011580518450794129078856743778773501009954680056360114600333355117284760986696593815130496514755770088567611069841067701105430345879531886648056832003014350289384279889503043848423671395644207186095667475016008708921970120748560970911150615307312663216272923456622156564002994814264450662879800001451161413333390967330754443108161702192797181714732166174290361112999406700939617962367603553995661853754167887188786283711148009086554868763285288692409858259722817968012195290319891702616258833179443060211973276449398325883077476881353515459592751237698813642295157008492972609627375985969603132758462171982233459100387607671393480513376428699618505353656465212421382454790576684226740327875319171910970667013452012628413187010768758220521205734853503603574191466649576745998444645346312994124597081732598407384419419671429798255750512654853461174021187942764476740137426947586453360096141541071155773532207165773581404211765079885484664013928401252251381219080139620034314859946788203489658212977534886725144229933629683336816354679604350401620139221351220769130178602622063414797781150981575889664311020404900748598141033036575838620031131980930415723957561480287567272845320939022886663504317410195203246804485789310351903850829352687978539659656321431445180467537820415222025169608598383850539602841914861149072231034263749385589268710990053628293443659993463899968928954834454117571638875210363244982308874142103327949128399493666973050817735833064825865366906958320308640673151281066706041553384509842980715677309683588135665217612209847320271051164673554632189856093833674411063279919725484130373768763805806686743019896727042726823232096137533206739909488809503356019922627763560095243196634336400020013292433960701504119281891228020819533935820842954477349120853411188846444961554526331734167445055095286408854579312587758051068055355403714962130941647662795145444754732171311164919503567748782215902638908752747778551204730822756339008166899090672623930114208032318479720511062865312604445785996429277366588404063484875374441134729380931147731384295934168011380661045890587402403172884960588465656590074156890962842026398741172666727603077677321109562942185942178324135289880869757060032294082181976736949947588702887736324558305492619785439424930363026631324549698758210524064756919670960351998701487933091038871373355923956925487602931254775109310515303496498999184529277139336526293519826255977313998212063525811016667163653284957384941967836522727376932739292832522719609646443047964414952570257053544865931805697119906846593345834648536856646692192874047977442956078081829892147206692069431874655386538839951299812821697522433980464751724481328151379306546911573175087138313440710344478441532201572513715048573689551365935104041905807918712631608475586239407999391254104226293936352107476844016470919504539117766117499692485085243714753843810678351223466963655806738857072020973447969010408342139605374471044772526822203076315624466078694991027603758671183470908740158490245607715668737283199103803501052498621750472448131839445746203250600442023238327019567449633639979675543062403547751394443964209871573285974991833337210756564919474025500649662125412253080333179117122319388216324322555353211123448873763694798656534814017627064938240528555609414717491738172185086339969843414377286994060756037651650647169159035395928177064862149658329876141824090492089947097791875709502248751144249050744061136684503493377917286554266191501204792975592996587193559289229826062498401243810055593223958636206779508536438862378088658594297187784323875772881788620898542944019421405272249345271534526012254202871752767282955160052919872158064146829710246756009063340604606249475940161044458315218911912123602340385937263644904633223048812644115395208902404139998155968816294073399360017541308461675866280953553586617467831500008460135383105530187853820885576180059829909591217666706069296471738334652294065785033827049076408777471375386727792903614757406014750531794071687024577133988848795256017868640958509369984801260871281520806666980837566032150234446246627359845229935661697530582007863650074801058152905978830036541357385370643931062557324109204617229525142480934518954110353059896082841147066032966212611254625567834946210955498660783462747552825880549321799249336122970701455662836312170661212454817652709365727000924244495519273879015543760539322304590966655107407358337115230758376765232556285963249616132110759397417137430942931045644221360306631270032867094338734134306215313185009529017495989883969330228517076275116366613239889172742119526123470131592214951776934716798650514572494762938939612011429973368351638793686900891608914344151433448831907111299736391109705307613264877679654922565833220842620758344659301636336487072080707637557860555686127416363403845650480772129647258829170552685984114050625239330931839302969654921742040379452805622316064526828950382502622089689943247110798324746865615747830314909937462620177710435443562290477144603437335325802306607953294819198604701434759741503261387614513291416848289571118435794676755100927243964390440803923544022783249062393097552054998868202773642027233012127798739426913315414441737300385841695205877985267267989112617318812143994752690881522007310343905774242085576397558552281026950889933146511796976646401989989577477946420206733439585006091247378768667956691936108670089088324000659254118006285674711616903551499498722205782768958442286432146956023092270909204724974947570858368497566508544111617918343778348459719933503553735107825297070975048083185407070915226210651074984634334382822131511930995886068359786646253791818290561316924183363785880679161735603861557093051985246049907609225392656025706699412113511448496115776431651527583622546602531623729188067092395277898358725679203119675605727443122785112942131904088491718319269137250056492716765464274410972729141042734840893296923455108624919137457449114760181726345344277863174279792387861030166856887763170419796611545953221334138942014176076400380229923569411687485089155673871346699766381234955933583374543898104965540544063889907421895207010904979976940633666666300588166490226145197734948488156686244978998728419519210253852193913681581678528612928991378147976140530634982994790759721024737305932872691796487051150960415456313188653074594598045405957284096696642619567533891188617392137406062970194747851774097887755794132817486522373158569746203814688773714145126088204604878423777959065368848718652732792107776819889892189776455065924932049341393105673881405075355106815227990243524383024362821263547221869130809870072091451024785202572230930228387979895409615624538531557245708415228463662486197440799018834115001577523089883531538915563486764998829675537625644641661708173226344457318604495722244754374029381928435536095633206222780512511704117569939500893897860645273198128561205370404739783956477257965396815720148737458705672109740369664274029405706452752510046845455936742458846936011183953879459956234643069215959628723241774690997215694291132929878342771101281381350419068078374221899884968282860449491151989011044617185999466237270362308459875596259061306051156896641241527539846209202232220994556870562524910182867987256965430212251665355587524310774104059732104784963875982879756892092760999439464147475263863780393375280758262722219927369417774682581086765818367959398146832029621841221960138803210124543257572418680186260914334910202014712750810406721062316215916139298967234106321401686426753848498664629128248805536708363044113437039249507361834991209662147752034150156936378467571881517009359078090723020222690776586722001133454069985674104945412616063634202383225418518923168207007066413894794457143144492409102063984379263214091910116282306742642036806757588702751423015821805628546651849523912948975638658473823294401586294789734491346931387473251253240837132039021892971720226049010145893711897451328278441312331978078299045850404598556670285515467096382765402356202234465892494711206920235763475066051481363406208611761634356359395759745586853456478418865134199456222380912307844243363771319573926212189584719761550717672718449173564408697253073469524893163405913225842756767990831892355421052254396358813527111523505715779936689128793428285527913420852594915412757670256625759494870103506792799996490060170133712814635139753727798619568156994118111159800931429448135063143940234002040151022448521073099022924470294645284259029408485526153704577894571793940777496733180515520125248800005588594082467780173118756054659831624929215856590934709692283429928304106056879236085468890156272121687853772405290275237867209634636176599464885826956149150961730397508195751117443262420070157678894820503777173764102921405431993181369571538535328216972533413406364433283585966494481027110294573142926019776363637384843726421146391481435887376118488313873297746439593488518844427196129286399995040213662712747891737425601483317685512615577740564037812792787072792205659652441380228192683615513631141613708771655063745007309481872082736401479733183470974942103472122062587207163248836842029654826803015239807303789545013904259451276719368631365088782468856702289576872918899522836197819314036489755170892911450058477872173741584225489339294482031048815798818666186078797472207460097301206625255642275327352555538041950239922277222511187053574065662628042789356719168710205251430603988908684335020765200814999575405065913718289915456925237704686027749979833869673469622862079556667441159709756384429122039789542404756600897833233284818931623325635635834463076500711982261734324919700216867781480242053728615031676094155540866952372028636255621493194376703131911550619112880317501220445621842590684985657426588420339699288141283553471175945027649750590322724929695196376384576148347703890976547778599993733613555219202103224393899299786087389047263984014517391324127914038755418942781720084513029620168301849661485049736455619484806014715144598431932850580062813779934077538574921189061369650117739881773281831219832377977012683421689409878026871381116011143500817367133305888679664632041590426980973387962127189566567533544211703321561414116729112848729019037939549575721067594483410005707024491527681181851390843548515116349779105506981076297104422174452521265038752260268737628554110116407155002652778680378347536961841908642551225587909801957168886842421919497781261929346966716947896052974494670459770827327024949715452306197018870750692992401679468324421909019756830981125484101736087071579990564799983551009457744605902711214507978651436278830781794174755578004970139337019528449919099014013138485350956585055137505918299416515843777460591266677591825390081774001224724226028990186282155059637281237566709924176291516772519758888904843052336591637750549033662280007661255363446119319693599231479207925428530344377946427741135549860150394521481101642506744455205821770097317267136238147181654549987068712665206125460722241529640595006357717851827075258271090492355869293575084547761588867549108951844517282773808910799913182303885039521536282839965286524098482939603683090043257434094162978899871011384371501384039988450482967024712858474692585127828143390727868607951069078437173819635787710950572386115669956774273767759084008387990380675497674552552589767237939043309876221222128149901779536675356106261361196890163326723793000968895818742593795056058993682349431867788160948531439828041037033127508370312458593401279986866631198034489180560641667248694738670052631510888362799891672289251653733070491127863321740566377984111350507425143009267390687487489727571559692379480132654421418094953437780782515561934618611970726385136687335718560655583285740879025593794165295033414651964664080966708644599976045222294661315630057794704563032589331847760819186269474390081482301596175858291819928882208990710301359056546359487897463007934310932750840216621977116433948529861415894892846995947816226671383379147316602491897076125979366522194352926181219459673862118481366007167476899409717887290934835566401866252025553449860553926613543542487333719368410179616188564031510527385843603368713783486554720374178640531793383505136076671297191020619129992723508498093872740754401182158702836030719438256061488634705932770208236730281870242984887729138566879557234920046935006832787487787783868887173174250937843108433895134558499905110287274508181335393401476240542792531623346850306207852574184848771978329253411976351542453116099798997579436321771403523613225440917258630400406815101761857500083158995370432485824509334252215347914843097259658138057596855850735159607991406723963677029952999783897034280478274463553956245650520690796907118782717322072057895171240613507308427225552109952100157773710128658893824289659769495611698986565118625886701556317976671466648326847362498505630388721772528623823197251552552328881819857317976179696001371085792502501581766499421560327812902178893495197117039155359854673864302200250523756294500427291293459258384914303192498068340479126892906616548563913910992088054544012010262264170912335759207368530881711036157563039955628652761933432578510893694950838098937039747968876674444294637662884767658416899847358286834099034149988076213614609116476411092074678458364365198636921109071214816854023740025408786688102165899572199562833346890476672265527581323190178807222978162349223686788153872816514031991347087231417832638595915746250925955598988846348622404652474028407125766705772232804892673601369246451061858995822865214015051482521071535847936964183388945822737563076329192388590665327577804971892945470559405554862837442250393327460923868818496172818388439709244809205864445670068546886436010892759774007396602097944604661347603079470339551684436544857805560397492636255357073963102307334019057875102636362615144005783961612054634634839793950599658161258856208217186834282659030714627295468391175842642772723328767098884656279230023053861880240766305293511239786878016371681157117942759556774344290838322788119207311892520536876973514305175015244949914715601911172630724812962490379775451076412701082143773197014582551022839243516064715489663041433312137910285065421223483400747291950804198948869088322483544957298452122978407890243978576342275944418055213089333068123018578243561078935594654330598260776104860658944092276643540712989127364115866710448057640017554923011395535673606411689163476040552736588011334246361044227707016537178148950461244105217544796398142077285709573939454878385479416167496334168861778653953642756463228041605290337408801745581106565824660758803004676006600705737184011033048863089058189226653123928681098252012263888419707760342784734629163914300738402284518092006892982548063547141744436188121215256667963375152936358810116791139198837349613344488428061948977962704098896552820972770643894345880486745362762870815414438646724065777234400789240823697988852922476051802994723115988530473780946179219874502523155405793190261793731980454849467668117985794953103091515788920907615989231430897909170262662745772751837758844492498520090568400065737129785086397884786174373811472884441880536206933123667280811596687688882637905854280590587353552472119140292221908795220734731044247926045265333703115086616172323150874789066318164380738313383461557636583008535568432355204827844483661876330305177464212042516771091043372053903434720434621491286551253170163254506034945113274620067644849580036223915088914349092146387948917287685069974333032841415465265036407970358437084477475432719647488597250040825762725284956083096147773037594311600331585439296715072284187389074830747493886588379252834365836971224018214604075769019913039232820931268693672779904609927191997502433698773893713801115727750220722481930465679913346950345777313395304435046028792057191958590967651522975516681446826895943972569769353869027571002304180227438693088266085297658101550080510949425116272876986671896807213010823536409903894912207450542523790412719657432499140683686103492686566178760973219492369375783465971525889351870061380606186498376855170826657751674645609659551556107904344448525681163924649451098728396679065109033055917740766718971339862054015695517882443832684566682426173305937919790555133280636589231645282813066202541366790375469334156965452494843422766073790393584334023202215464984470156697403447846035316311428974318260085685690549234777914585818080979320003820424176079910185063531037279674043787833965699597254660361851626394168484734564589435633839875716912139306245202633936038255314265505273138275923234055427936240111560580443893878548093913033262576473621920372116976388644822058183285504161429194868778508760136536905128612471614278799395962123740420110507267799787900467717317152990275129913078172324332835971241312282369823348003397851816664784113651933452488863730774884240817982932287626967833317742587109872242092808250382002601609964216548202631987960062214582388320552104755726207287716682920321581456902533897742739710126054915714967299919204844055727259697341036249384454428439192295883425587982657185081520636549150300592128842898596138997632469230186044078057011956902674919091744959985847147059191228703336316621135634015511414988739255848445643134932005033113406728052723266321407483094322769295008833754612554744606312217185620757391764200278352596594458659815636876643804544973332464022658717133926162591810769488017943322427290610400983010681321018592241078702800736617205215217711111904496898844957711065898974585245731906134969212197630930513192295878149337695892876481742177087317749160891363652772415927493160978861280058359898624652574317271989030355788168420578560116057370283332968766320674332130656339677577265616727509128561648235036446582216469839461308237925147908036795552716943308977385888815649248736230303980995091041434834054417480077188533047869308354374828201547322495075450350843104918315852015383012510265532898799071344418377624528819960533357535108830669642761412104516821192832967540749412573151286416269783956215425276835794440844279013172080545138014343524752321189482712107994483565199457889096593154634593415864349800891504172864842213854406201986595968535910016219586775447475617530678772932186016490600248028276946238135786551841905721271011896968577002879679822725022630518861019458242648532507814530851528358310860070330366218660195635007155712569895298065286111689558077714503196929098355584590480905464867644330956260581071548188001935109557649685506667630346203517233835444877482161911682052660794385757213882521741659780998378566139770708879129576389812755845329270462566212764422002349549621906507952555842858078657336781839767773509631565427491543992814588344734524875437365517471521480394138235673463561245022416194363301471521930363920926650285189373161026654752911240968122195572286117611756808053171506681339606141299079519874636743499348454267821324708158391082366972399945308301544583815139749286827383581821997229344261833997866856230063034379346816510929730684783346179926672154157276422727138083217747085690154517612675349127348281775024567181171906699885198851291809667170358961118405260923609716489952817784148387755706826380208888206526922947333925032160121298880448796427227694580299657251796081118535784567257542280323826517874933251318458864903719656636902769807805295116620112803299597450356811298294456228596312631419355514210842955785397693178584403562284353549331439645024577565915766088204100527272260214657762917312261415912611732360342661171913389556812389422669359451336105181657412972326701738920975372150827398963725307753656193702301548418212040841693499887301477770722053681035040621564554918341453389857089157169889309938549419831561807239301088761618030828461887305828483872569270405442345797751150019133653225337326906443296307730149323270349697499698062003083683193171750597283883668141928678597640161118311073518511684702767972976643490653484412342424870373183201461693129321812203065930727459729273912128410833587031960751991497850324632025520160658498546393818704695128829328791114658116216616447841469569813819086755223998732256962542599814086067250946346554449185384793277077556334146143493449264376228382786295976968554492074499330525657190333982497649071794890371237419824023554745894558643964403286354328278368828096192813348590596334210407346211578297099370209212057801237437842169334373482578415909496723850899792814830140604425475901936744977635834389893744809378483049882896503317488295847685682258500729318179692026629835054861925118577319995947482768723105390824889644904656964426135027825291282514636153884223416558945438977823963942811126218049041891429171477022834559831620803869555959855398331852643232168143555115932424854758118770498246311565418973519597603577960602336604004073491897975104397701132684619058120819587921755395561837778450854369620987982030758849290715414512186508904330189242002221103820896584686847572789452751030960772425357627951771212270395066308906581742259833855020866173583489528678159110642831401587638385283380407457171685945015473529515462302191401641732128600780395760233903781326384854274164518139188723781710656634100762014660099223041245991593578186021715751820354943640990033759542399729030660649538597054181474089644031255828622113362034288154862863315050849033702893221732191512154687865702508580213590936910372576450589370135613771371469913256319147280396414903392173846732299722913432378827071160151244762788650052905893975061727545835877404497685473333152424046230646702055687263922190235027726160719843707186597223140628101822205726227802512983858838055511077362378044253636536198424013186532723065891807868198923108773855205608543174739725532530043365333678354162583892067319565640056391739195570576816862009450353157820584384786406839107434853881864796195381425052014400100752411777160444505366797339709469833873058077009780659969233928167200955199628712312123149841036091346719837208866672963755282129174875349060589193413412398348732829396521438602252348915497680297363280965747769688431979379813258692621579814786826795964909665936327013210647506979361198829176167542891269792421874904634185930134199693912096010334724489604444966052645151554190322785095247743522036900985668300255208754137316264516990240219828493642062347911722504280204913505745522928280533813671912588816025031914870729712326654968861277646912535616752397972246811126903504508439413444804920466151946735489923773294085528078307375335458993861250246456225189459424344863172335531028930609228137608762655367933205132918934890746888951774870093876939051924827960990066259270589837748312888795155184195616963995064563657661825487175424982396712001239717800244644304807120880382745464699164273292124840511109844401029927141662539432680436494558183282773746234363983501720201072347636766991303107453615481653137803774406877552465189153106617581376480826931040216216986208997157184976269549422337362803799668402420028047614425149525690510626749421939569273067107101679764751371581887204728209787280401642987975471172896809620363937932882482871071716028185877344524150187626598032043346480056264625622637449047298670158049200393100307298925034472485745233051735604848473917220349612854442588168221254275852637397688486965502022712663567364447369742003586262446372899288955792141107705293090721536093126688908705504368979574935548224168128538844604105331220786741794157302060738679891298662823699380767728089945539464465728250489901240663512163313789397742901120108107794448980828931802028355831295355553739203184288574246823306475180993689085010366674690068477342844360499429623723135023827989985116810868090064589502221448860260579056626610096649089236812835085832029661680583652754496325087878510605403766259328280729257700376685061116308103895663064331644957080544676109561202410026722603875124100704169162443223527179265328458961236722535706170722657600505302976232278158942016261746667625481403549850432566703184752273212248131255795523931328890946883648646366935380875926758652335292818820269594446388621340230119428237688505794181045863839933479788408961900942678980930978540722356643869323425009216196161665019427508235769122404225811526083015816240017033224154275040587726213915914131332177998205175150837688612106026796276090900570784865651695762072060095185657172532888148120224436325078685683683802771726040933166766867113563507388126252030226158192409839781557154210155926555741350822825908299297809488950370113033147383074315051575813333330824391330154504590958047624586403436538348309849400150822755086226845577920120845150045801049084270333559620629616609218010624688950451465744601291735142935653106552731014597156583433271135350531968479925641274244199497377031228073545583943501112411007246940892287266161624475775528519052684737106474413416410113419568748993082950299673830649515632828577173572994376142392234869185431637048913742264716936860342602981906977357873380897379815353211201976105832271858007531704353285959127201033374925732620083308417555201262560054425706687095680977269087591629563702134966993213757355845147413015224570338205945178752965400961360366371764133892334960151761975476733839584782384524680301849572056940955562709455244311939045129962958542327430799967499879772717310584368791752015575567669965727990245455755688679534429794752078778466709061666750569075543959435681771560001017688751937375146382737357707717449944177134157339171269889460506656898631891473804125697442617985261324891187180934612201733960923879529925470406331236978464941947640630608191907500694879909745971633460844166899985537946253373793255422726887836970070573859864624462412113811839368628147687749401724180908067962323702559163840559034822249748516105069683366766977518431539912851229542209180275674936542962840582555977833682412739151835606655261317610161583792664855501164827522950797127276999250873461215458805826118392403229641087027726009393418615946546073880556499948517789616820683510522726831404856807996853806783607100832890225440581773865055978496189653306240832266794041498686606582050286433747864430433021417680831681049653354341280068056171799375731591122146491064346238614458405119644340625467056014707644380775667202985832011472014807139812382995941981020418721083169203422998482343330962210491656992408983253087269668565967218398494438643223731897311634747621214700679406158193537689726145816666658916112030578249056390623379497631050456636053979164914054954254482378850194769939726045006173260220192886127976124316102725941979057986483838861589369783955463767002278557134073780406967038877348207796711907323330691136672095035744432788623600925810078900472121279532231748419466586179031300499990762211247933214282827227578634931285124846468201568552693746794359607599113236525279552631844447672358938008836584674482213315078540065085259960018829611307609405152588873543883710965479519851578767541248929281407278144397287692420069593919348070081978614061212268519368276049129903867945264833156367862794413722435939107856779934143334410918043878713203742200437662302826316785595585671878886933658946385776423833863036574663131203714488570603916227016445041430579937929210989705255369201392305550873499227456014031323343135252673790438335466617812354491168444030161265994731944212414142762981847167353889565722697745916804260444753379677947091234669924985350236619793677250667838598549887267849070519504104072651550279377599101400837308187207470195283125406380695813174586976274055405541526635810650948064858755334253407311195777552148193701916866420727235690034719583005306639339956550119872162469337278011538266435361360800832278116031435003830219704783221053671766631527885433802916839916156213056695214141162468472364524088614463245446021330582624206609397377566086952165195736611477614664138338668609216614247287903308276534229143291443921165779242841501141942167562456298351438647378911603815294130914809119368740344823295300974547564784510787530415806649653282173614658471890116247637042807086886287600276805189014817463920264640741878397494487482851854216709743233435962609129950970496268166992198899683272673558728403609753236666362614907701563866355526556642912745111054422174978920995516335379626345226001723170749219642657243962485196425406299580375621926075269097015812729818962444298598142160240050228165063473448018699468549737245749437954974292415191890631135142254628884897415915275926537990210826334145294882678364263677912936887642391965868968887274117726729310485359761727002085220929545024707259999506121673444545489040706090108340030802620671669465504657501056520673215849277563371249333310632597666733423947452066349608673766409767699654455592958592597549441789579877630836333545153946527052460192780897049442649513253594290342345664833315475985657058717888380387261233690130151554773158525241739867125123578553028947702717097401534257980977388334535096844734853807428544818909450446042132626471832696401990369145302153151139957171519296369295231568112291732160524594948879687825599524987863584987482973155583491382322045585737145890457193628359594128752866029667174735090385810777657604520130349573455859497859899682870306430615749942655846298246744697988039662848102114616120532852134884741817141577150283503978939600424181206598713627039708097795010288457121216786757194832987633461829356569746731601986690358752297298770266911093200605913439802229195123021925554952951203403173867330173028999733794008592043016489466341112849657315860599769894611241481611102562706140386831168118288538336323205695915108514403021125850225146745200336566415256093242619227061448938625221589696202761775169641574202043389813393898090483781190524390016196453747995085832553981009321135573872224237378083324314535792782742110508455921945718598157670004291263646137927033688608079768611125754809230807993591174938344046303022282214490742489935850885141686666192140381661998911263959706179317176485984072538639480000194547543171509734677060652290158524864236164006357479106993065178810012981136611387348174103887138551760339612317284913128496724374862114214533221579745652389142009904715333275878635708337101177508353797166118099300484918735095214096247413447578427366768185629593963534775788481330578836457325192171533110851697833820949720483864225275530080445201187052748050345335652923688764866626001206190705363322401888217279743438325246454926268441088065071308345115969837589908722597515652934236620057101320238150433485853835708427131862020698976226414860174521192104568668480604525551042524338202323691554760108190303585432117682022114014333240748404581557438689533352875782885384733684745050762363325139624782347996434190297176332615652187325843187505646035756478212628804498081492778628756488422936647876223990372135075288631107075136160915134347968438530167088786152959145387024297853300882096609510662497030956965844931172177578265960588264968958707954154614270664504948118817581189620893327816793507865264384241578579342163518066731033842683570518570835619066571459997311242261365790796740537673184977411558464599838158050366544649819116642954927753104916682688835771363150110865355949114802512356187136275541278084611058289351554131270777958462592714868781811667197099941538259034824920871426437929359255383761878747375805000434171778552549728497724722729211186001796902457117386427341271665659131987559224917536556924500184732773688674150196714256912191957042923138345226954938189395468136366129627492160282585716487684423029211234440730364150877825779620806622838051673839949132978587160633075825915798395073488488480980067593796433302385367115528869340833780493431589645218277723536830406671624674098023890994066314485670864848413712518537357691083973764694166131648367779084871453168755031457420878096515226731505451867447047188415618738201153936360749704445406980507526286258982219166629320628905243011887938998362644179996748518945769507445276821289120563893571653285212693124482512439472488818100076968114627354728328579775523922392735789736961453559820497739397059086056040443615479409096038753368875861729224131649457614259493510905324059448014099416556634614840512457473988820619732832795107760546887031201864389772013786887073194372215038487240443045456580939661407827900824561636811598652352297030686970393811798039964259153277621622248296259344855924575312000365660749967106700996379268546656415024385311029755129643482184147295154257250380548575374981492463513210924811812206125068598877893841591123236903665842072457371179748873070259739189210912304752129849544668055219357161756260061332660711431736267845013684167728494479650395115621134034273729012616088708200647111109204761118449847483411327430629019196700376588684603530284958279857131396250415121654691781643386059072949773275070499600648144639027303533807885258638221974143178188860705508288953579271696750254547322911587063843126599881089242363283721987898157061423292053556459809126970920145892126734916780592112905029759920376970274371281118369093847360195588730430297834142365021172992435227241573232870254930402479376282944597206116896954581647061218662225542830132949053068889382309970972812331121988676772268496281412600934163255370169264309633844520538866217571110016275243972272457962638047232008362141654441393740502519337331583008764439031405626688568057934325594300262336802289771479898511763953892431240539220063756561851146526402675632267516334379926258235421103845002255973845507451750116645059629977836544907920251195977098617085861623059252947814251523908674043605810320605061523887911502316857779744229458335738796862107230535796076667528806077073940127416101233921366320285504462791009938902511887482323365981779084881696938364435241033038317505354990394738920716322178938009388673834615121671882692131267519294762090452955410041640185043073323824965432641667535598073129269373559534695496520101082191315517044667251246892846741800785820282805247082032906645595243201336477478436765704655573056205814761203432090455333483575670863066164835725995438363589581816827636266396887936556046171413804360454905537525641667303959925515312485588849429149247778639533064555920137472340465927697104558874840763071263307486297166909320822182984409583902476605065086750453334398418357921916037956737134225918028525210763414498877347421386511423267679519008714067714468524311981312187563727939183152136848509895974463067944762004136342600490076270448928904201872877491884956326384448952912591622815417739823710614477805784739204926245369845644568948013232786046360589281443938421468367193754826539560653358287650709471168866107658457900396000535413333682025161082843308403468079540085952140594107489049134446792923023145327350619919885034722285792266919996992879467484259773780482419189041635141691323212036612741202865224431332017126533719363597526552388078641460997630660641669265486301285861060340053020854614730477201559151351377331560383476898682649193998015875793384312193660929388156761170962633647296399770324777338911953208668810203151376474621568254794179025392594206241145981073864954148907123063667823788234000725695034423493757577474706317227342375461412585900834689471360652421002789631931601577292804648478275225506294887949169722666716521706266172687439346347438891696653969113313486775843302320021852748360040809190654043293783847817610218653572353395465904204201797753013513571492798363130986844853815287779939366879485690805862282978166776990250308865246031863861864794565496631241974294320862145102319555649218136855095382948139903136935143941920564604795618236362420409931502181494879085871641034515603188793788816422668744148088881330893709197375874370083452353536118617846617465098426604549909323825779334795110730636800250279165665104263117071280970247332133532217267140365650442684189341857253385165894151756310773677823069126612725813964251991795135559891812331921993589122533163457481645278305373932021889422253732013297638671265198508569862266607208574186587036584405687301431920186770967324586368537636556689578311720712308937399693144144160571010286708774168966615055068703975788234030630755776480019922280243848003859558642902456507304546898113539843239054376428759375142347827094744178518318475998831650824614561248484995912498825733467116554093622801420499572723944235024244053223616826079532699953257541832524255128725018774531540220243044280421129732733708392910089520251043103275959040221237466061020509064795056967325558395491808954997237419226005815737045998961575095517059205328458716938049903360929910015743623992455152424246855015845701550540444387842788766055013870956158260729480454974562152998538659216917506238050516623799356773365499867725967406079174963500834588206520463844107015738550626598375362418892420229126908515554093221207566960724195399546951613111265555498622525991835701479112290386374983681642936607426838462998488917556050006280840239837379438603369497893532036262496055499817460463984795496628660709806340150330658089444865106126098847317074841104376923904910892880170197418226978674045115972163212448785568010529831967409762855382941941963905872095928210566837548380163609265441232839343081668105710398805126286770040124437635805345344903141685987714634713095666001851693341514134547857765946821108714610941909656421365267542802950695850207839547916823635649605933700907038814764940962475286612050627397676115200290819527583181164914106044513343793348933040316037590335276673145769316416657005181484502522377763830130530938203025237302158636826811562437941652581958694502448795694867148558209695428179481383280391136316151446992389280094795765161709898012942168787716997302545416894581925224494733107519725238799852480809713350918732273506629167545554173709931751532009790661107764983215790593522228849844346733867792439288392918468192841679112972538721175497593268122478250872433511799243704231343763721934982278559067980028796264480386507621014280931467844676521851643918865006120495691281117142278501634620906663801575849876072627727551390480401328685410055487788939164633662879492670472111337013133254341132824846483288762090258008948009870258942421454218758479324052792754984542420041582638754081968335593080052862784453408174329404563602886049626826591393438026021397703904679195387476179002053812047046429534649053016756012767838860167676012218509291103602770753702537313359560235510537602911735214721393889988737878712528235850355719081672761843741649978243454583580635133583032103819068029653637841680593517447833268921985729788309018533832433985549493923726095869994598626564263217008389040611115355177098859072713857565978099883612952981243437993182319637280802080001077984745019881143703689922926740702304882666588764865858909247624549839313598472101566723409639591547974822440656004282037243219770493097530825128039482437153577204015308026644044923972113694328264233322964283447379326188357870812577810461886335788892794460505306090566002883047281207919679488150322583190311475366032923978607336238870973420019683732434260400310436716798120130842114448636336220549961321278866758437758474400202598931651072907630339628104611003318234906717475510541092936687755420338079360597991267628310531074857795914037747504760761963870947947398844193218729608527635756152241455346275204923263271368331025376092195054606029015479549009054490316572181455850011679287701340090512949837674588708018234463434218185147297820074779448823103928256961138686193418676948051427607712293426150396165778850337532045280178768105018754660040953280529541285869888439966294527807862043310845833299959708882718798016481679105258652705227015422162546561830192951578776833613176153161425423931993811668577139333031136589443862841479180624240671984389391990931894474556193855622011234703035970222672799394605573955463404608058185147473792351349673562402863655857989930221102141025027099021524912850549908543459283107273172324417746876125246812994862193616411924658931535630076096808170497179981241853195251904825079887738050594616130425193331650729908364288742135898748415549344099501131506167446375994741169062914356718457778182362715434563883655461538074708440282946943803195051846357074072988179207714445756660947201052330923277502293656717396263910447052716932378172865304912244288964690010688041919373522317574978723260224700038167444409102720601340368876594669065084487554580540414247785827000665409923836498606753193309820859953245844381826188426918154169654765302022686504490314542357734098796371854391149595925588644095590275316312936790265301519001923048777332383783790434940138404568248012463250311055848821744888705664576285261485024038308701191408015624654588501539233191195475082611911686850881325706916423144182152466138096043261519124142452827795835307984618081216465105460018364252723420841086744096556469485463866091926638322847203879653041723263750687141342279771274064437351280704889496996177027834176214133414613873602774390273904674635240940243127954622561302012453193954337142362126015886651941906054345951626600617289609581142864814486343409489394821238771402607832971942576028388192891200684628165289793812990283546951352718635299685565115611531325373441006340637590097748117187342392286111069472195492651290765280959735537586293534092094981961279532984943601846379366449603334585634180475053921565294296517503075677644000851401788280255229281901282181048677022252345098040206832451630821943244524856604144874770914402631215661882770923380329464562960535445582734253611081034007298943233226294708108880539556909567303252574491145441243443325129153042862916785651506492794158114859825185386671400533553040471271654343710674394993099082230345701317282762834952984971463773679104716492952689677908494659038600790991200963295787617178736302270140218059480140297015932282164574175707521270334766416165902002853053035213149709978268064829773054205198154597129077418812800663739122701935463401253753949328692314186152798054286989565265926840488420167938683535585382689203840014910378327506530216787102286933411574215772982524589374976462946205746543341766125496210365034264756473622602741163721206326728323437776625727324187390241343145596367527272663553859441102740161520000064834754632961668417593782836162423476562798251737392829254599621251046308205523907930016916720995597974556428031581546758229555918925100540567886269968856987555396613521671703228011650435850988592113229687302884926937618974254090119343273215658222505583173326416687091641837767234955386811932067123214046435176984149505725788424759291785182559747419110794143054841800171096374119279018239527084013255148393733222633223920264260204984084290315747137263072045640005640087805112625304429449398403449860121086068900877704016029838670214035007975222429647138903075226066322567457905903307544004332131062353613940127777840670650064200908563549062304872378169907643076832996389513654795071771202453398385102848694344427675852147419797437520011847444322962629398730063379552456504260502657141354514449326458725305804575463852089306443375628299625190937802324893092979203941734008693771401529004191847824679471962750091922891505735265291178353423230228565402003364079751889140371999513819247252152352684318043408504085788392248994179369916754236695394717317359275792014111518694087242732754447060678015082040982355183757170302571990178635904760755256359886635842380618318818743813220603659889143434496783852652639778067603431439566729467085615766787985795045920838447024058021108058361992332258454049572441308958668591912951973557160774449727691939170937933954415489397442240809950597439139476651217430352372788891363023765150721567891758550871917120079276643725152430911676222352007679571104410175909506930251745849075793856153405039206541091080058253358438641086428535469318486880616562952405072780557146069869374009092369528463402382156207951161210890980517350357848928961929491623696696979907135056278953969962658671988615180204787651027242793556599772513658741375792299848066513927726304644130129465750308402080932833259327019100711475559062757877655551446255642995415955053357026654200777827621351457040092415646253779399170466691168880933537366425734210677409121034961325734076638409198469604500105758578841240158928947742005081560023569151046014729519027865789884443523363873220729853879706449331210175391172543956878589683849889969031601437577215319265716346571963988921503375145705782353695301842921248403994428820451923715630866113874089040753727951293810645884849849574659447370455368457434056805584533963617084831403349534137837224924373948898764381327713281338062475769208880494473295046378463063484641837210267161474336224708822361797928341225493342010511919160790074306512045712166648251536951387091358268849095462060841781695316009803114279180741058966454221688563569856220050633165076907506363156026205916904596059839576781172919996491122424240029906155865026837232479369719606539699385440653573440823680188946558138316563201020853370106646544798348871830445332161857639856068769949350851114210841998228800977955391257226717901979846676634062561249155089127865289613114513723157914188853105335274773171662953657797730479523205700005052405257570940717683456061841843707831052261298354041239232276677797869016479402830507514606251982736074572103232795486765738721387302311293400248387385906988190301510776877094232074410845584231156179318345808249038090986575417341262576715394508192290498542556763477027084174147409422453703250576912042361717206795212533027233130055012044952353784930161861199797853014843713158613342134169434574960211448084112805510961132099755064358314375795496711923190768040246991317938840863747695543300883664826633162792207436366268775105795857710884868062684955672881470263042156426492452296558352944714681316268644044396418347358836950325069917668692808115673154894107601087464314247813847497509152663419664513537911289557467343359716301017829271440813439647965381575494623104301670789301528062815196059417373956578558515642613957436197670602495036545160128328484994354784743990144138224794105461786747271141757891716511309180804096329579512101129604415775087719058292037666144078034918038617005661600356467146425008404525566425733738198174976934904729501815870034785103234983088214019526313729884061353242848151881900061895775826696014296378355860747939487034548272773418482100869119856267851906873466476833924180009640667527155336789193886737458621860812583205624361039050031143684817437664270079510587325577909299431133666203934669528715816023410916705138649985486313329504707436866635155337874710088377079231728367471232298433558692231545878561325309178341730907874688379765149100621614861909294527344278168273421497049975047734710355278761246173801794023616767922062871708951945366502701800107243318994165555216608776232031471902948443312860587959441649447079795188444745411567635718731982285482325104802696803988960205835501588690333619605247384054722567392426024369549278988680729677464071531407257504017792589427758428621464728756863394731918687069417359223616849469124952547139313218325343040822381085605379821061629548457450133143479061007393339172276594091005446238986682170811877135642780112234366668735194856467603342368231730758450142473157985432940487702003190641490994913359251661254375898031318256975928334210855715507077376614467481201980335107516187044682479901676149084134668422565675978309161765989883317441190917648639382118015498960333110884247437607711888203665572274137892489260471069541024768676558628126371737128063557964905801294842377413299081978606165839178074818553079236054917396651408644344362744320204308275452266687282046272715728012467449205894007791210743872633842099018497303564615529137463718817819591345142140616579236037939284471841503812318222542171558877409705153712577511921283778240094334987436281304483228857645307666991788874475521340602811171838115689939280932480683322494520175144707029844089366614567495069005409845834651324602035911333917005496256332300033508434688007393737531558437753286696770189082699956694836386393057768536646699741801994048167452567806773858424661738698535565265922852111069844252965386338259426030363152659918438458452480210797932960173292261090067505754913915985530051277045724838742830028416432610803086286596519374591254027495205740191331627420442822308531472485729119739419164323136944458327942938479911392137688295929320238358964879663862351746899427449500082762077784960696568188629894174921781537401708272032255339141999064893167050214277689682016089126517831286042835917570787667582084359786027362230709047035927493769742931827295738609168100824080428746512277783877846877136208003821569075330569092131037139933678513466068732183612841580150738618439160837042556716553904957570106098350741703951525050185464366415754545276779469875984907928774479324036043683589427052290343931019479612982090651940691257730483063754308949031951281215139721584039641761382950586013518639619998294909308905415422250396877625651286215417968338256884118717993987827092148512775706843269050654927235553358264542253018520731699523843345582569127954185606504218511525153892049061289421751951708203039869727284692357585335726375474668698400484070533983112280024493251141357571229221219663354275466782043370746946460216901897128100327065466962544842926155175717263395732547573708327458795061983779300075077870267193308677344523721530425774145436524832590872932509088728691688746061418811709625303073020233397368569588385721477634568153383378650493424843851016324126484459994489754146310815725641573665411291441714802230494738750238818411796040771900352639526495655553235513611893837646959630515671579137223519358001604935829498602911792007122359214914589600728686524771220863502900918401445868349520041192533117840990615574754911739963560044141239133525900864454814881623773667830383063152767486519374755275890998490462261967866121091466675919395270367082319096823312937342407537723148671277528882918947654034945607696248047820328529593258466323091827203463462233910219371145034840026187113701201189853481421554682542842235447590470078273454252240058732268171831291811822062178236056903339440677570016789275555347798288375129331788453100966838943704852382133617229062004383015706508783735222253500312871917709476948084006514156570434253135321420069925469436185511794958335504218485132602108391886113288446556388313186507316144610394641663335671444988364177135606608562079365237875027637429020105401435014545225341806719785741580067286108485780128822511791329277108354571110769894378082633686184697289706533524383111379217011301330736170670440759811852669938378217299572406086485003071699744606699409690176179880012680367339477837005629350943829154574209996287700441247502363982751456428006490889959769442393845941604266207821070900546563097209321524144055366220179484546330184332852607719156477509995261257865432798371836033307490687166860889969734618794256253215078337343253113609783925391432998682818965813487724479192235492359938779049302246401327314669797773077381011784179334829335970679597031015690789701566284014347988936780966388337529811549280416091675542083134092231186205654841855204421024554161086787133450642252535855727208826549718041519342120058038554964617261488231212944842662486463881216115306944540149827222628465557656926761980279101040512261221640442439174657872286464685867243630162813680976517415816009869124804550609499824948669529232790299350605209189183861452535113584836857105233583658336171608803230235398882220927429588191530083039419784224379634281936016340159656256575870752569512201232147810991734071891467697456944906337206891038648426380411196218151848476071402983841492581121703589547179487823048723054382074976447172256842381394045619232341929712057121217315300700823021623745890183721054952358137133705451040284988550044543407557650383871213574863078538792762063082473534610118501180290075319644431552955515106615147243789843274158394036220584315953366297698048372139380416453215930806428336553701201757018780603133331502129235595974575416078340267111611471217147357450346899999846729907893216584393380218839438247846458573155841955492577681921072493362961881810683938078313409871272551914377044349009524803817574900492338086605292795230490829389072862998684490635231809219458316311503060705072993473989112584918484742914826190723454556777176130660364591363253145021348856937318592509408877854299295211203554589405283889873107323326387181720034699824748002295491156603736478406214636611732103160836063544731384277758215946623152326443577270376181986537559673037491338601784119249050150347103236516491307883552230826866654465040275559772595446208438649314602514739849412199074768457753338327333496686787399613597724869507439593511560098842634246802923544312661800377931893746050913966183471280543469926892138648482486292572887327683277476954205513576449377509974268560230374445227148613243972971090848432539766210796930542967670456589711913635486520078915815430271075840524701202930877275803122766968165043450444861910123808956061341776291191200586769463269457016206403663413824511975269968192573735529607421748173296312944603868872457203574048989806453917310529367410198209631612714718993707156361393166449824655105842460612079320743852145008178067830020728024023097681936598928496982735539118751939562472980748082967901181207707239495059355470181993718257197536969150237543237052933303351058614232652512307980816118877972543697428542196552123359466562866015519951838773945700945032486420478645936568500503664148084211691810948419191292183410196749526787612276541704747294481749586241784782357378386713475423768507717773209853718754514441183287647234914064628760370479275403091266186672931115681754661184520989085017765941189281420157426321598944485499658977964003922819518031849171807894587226651296025124596147933594955808167579435452336304815640017255527930405431936574197788479951845223212295554970533953403515339071400612907767428693535993700419167424927494050196319760344063854676833524510602720046557431808774951493020636132474679177164275523353680190537875298316456562484190602861329946215315365518697579155975882895396985975724432069273625339380008754196032341788755506839448043281464046159869205139854232526482851888718088609963058503893691897962461844027425855997022912983482726049712808959425531261819337300690660058256933753757809110128275923769584203976538801718108884160502982604480039826437732138347180777987876420017967311807844265884478076195710532982421855106926131647675254863847298141401262315019393888901424698954116336753938101052435135614072482681418654627312364742400984475794539492076893757451480847512529345252982108484283010831606645171240371853430152138366437118113667342535842697960302581170223227256128690282555839853486187322564211157613280476191823481281911697972966308108592336277457641870323217621006943957561263351367814494633895526347497966906015382514370443519966452349224475409073391601253963261203724681363258453048567521389469054556073515139974442347220138173063713965522563026665946857382216575548231225380878235759017903343395456088543785038556842981593953093552256451975837149168155014781845991835560899419675346336258865539260134818119061629039811113271928707361561009081074365432901454518087296473836390736072811634337869227484995021198544798063629479243623105696760074488433476992129798689990027441033016979553214917116481823485248331736121104246093966486720511060104781104157995169391985728499842209803437730826731169937309798832071818102472273987226811349873905696843081401850382127271550463805003985078010304816021087047169427750313580816907738232847213084251496236738163085121638849000529947904606460788016404514471423984442054353375251208070114038278883922205316414046811535134336418938687328267182122078747144721905559747822823440658376988669746207005983614421801664163643351218635911087394005023401036681655934650576608769509346006057597966984017097028149394057066249404632950485045186330877834331056914889759141010697277331651974828077981523986550378392043341712457578324823503232471588740933856540048850865703267194771855714264987288398783605212596202172023265465852515410399829222499435431081326566709190010395241714929836555418202861606362885380827873179439577870813353741727364605211000988464824677634161108891310712604209788418511362229215156599174653522279813433506048465302781406618990363567364861557972288232745914103949147723717735427879803515994455112681447886613887153509532313725606936497395034279789510491991890609969554252780225046530341222998822078332736063474760257274905713633683774846976095201332905059132155210622773641186570898318262714786483257241574135738800127312529939333990347825246771130223637742132734725591003829018728667462131229642712099907640060057874638425586618223176982820997166816498239180008004825187081359447510501335842688482731989299902164541393082828914316798906552455591946022779852217946367454800407801733137952239639824545087097517384138210144956915347781360982590205088132770058795542715098391278738531394642903879609025770402658939110381017776018434446442587059262203345392543137753901428224399163960764895484116999837871147164485216407003835818011608983596289283732485531266601093020596077549922943493495296387376037961444140891655500737993541135267276154121704777237372721827720777791749083096697912681732868910952599194377541828861117412805587747565626916123453604881925141097158749150073379312699595582601536449545725295032761463299893311686047918223524965297962967899404861594737600738663891735054078513077010481857286246875076790219816042369272442282188397761789400583989989106391315991970344590394496406395510679901375350285921619761996948343451194040470914998042893001793379467398438800160196045226957659801216178837952699988814053305438542456012930430965632341758183609421188083709962604270599093089778927803798768712528606292866780358046371075948565942888072545863726482146497603039832166967390249122274003806732463956583992339446141544247085354490592628801245980381507704531988338779954915939194886950631392829735977049254814602462394669941742986023104248447513587808965194716534141461742502028405610091528079378200584057492218990492465711758089903321236306514859343288474777291923773116078769182976823518239940200194812168076553343081432094730381073592883519229918760547402891405281541589327517174063799002737806092454930582081405996710010291179173815690956221357745855729828030285493432421323190474111708079458992518860777783927402086721611822064194846132064993428537444095540202476895422395354828691481412022659634901071370261467996573209634359303321913387604334927054833853384939226654205984270464652335670076393601178088455190989030271699712981495785589240212294441955402412998088548635390913719390083332523432829230422437607043276970711417455488894395244843943084962410850479362784714364246301396537827277107653181360692099374209458752440278714680950489620232006641892633923283818899345320529504874173582363592430085718640177420903668523052568457578704421576158164409772815927486885403889834166841432173679982439112249362473402979124879110108741406717401542782558403816560962774138187126784168838439308610217820596627002407410787727968394280104444293054740773365080766915136036405737118811708734757246389207252542674156615102418280593947314852080738896689638234846446877584995879295202938857813755585509737515900353650393875305042835404906980914055258990718642676693146056299580553949950416594747901063786718059791781594866597108082320680307355508529688683182719968587109376096423548997203890220655582200213010423364645924299362861724371305750160279629186486966905831203432562969401757689258676504549686241097953161023350904622924422598315675451237379399634082027296158961956145814514667763928753723083403447015926832478107007373164136854513192917879696986406768623730758524658504311794349658708434515181309678937312048028054593878850373459694096660928167041012962578013630185093915407917011666730318446609287464955631322200018310171045957789548519683297450840130603117071342218068360763943674724560811593672649568032374487437013107567715360827678136701200715086701945069842428905330616153456976570858248336124782523782450573480891655776217525585767871663074138099150257116318912038863401661038738727185460579284668384026704498608062610912221749222277146997144393881801209764669207055394446628986034280282717229827154329839158650587038067493533560256816156091376232095750256771044521554864680994931199772617816056221949206030921063402127698021425686057995947391649442554558403446668444706096016439903203675624509118684631597978962845317093699937086316042027964538559062946335384471840315868134513517287149052220982656169993956282178337446880644673019935458293866117867576908478378769557202734813833462569306990621961725104048618390210078688976243176240852343896279593125690447270465533479151868613902943694350383961791031819402579061585851893426946803748712464264245422159736382500007693146687913304740660849205173610634916956631717354167263411442813099649577655760381253504720122246514439315559187729431542257640729691650952400672244489108205092122153619872572505615062786179711085332758756109327585003927446771481266703877619589647836245230285916541056004591664395607997447105788022829392512044971944076606548257900060370734515386539265932443798716660345274381326353831290344112757494027263979170622129808614170571049323009251918574020809097141071553338828422952539057808918207740012757009306149861384723610967102472868315574965355017013963582525058408451603015916410198512740890077378483905755185835434695033675431870050228124964588847038419463097654862756657051187460350290170640022592054227890207255003821027342355371130632919253031896872612200189059738007082171888032874845492770102071596874067526368099100763022444948299506761182069011643479259985753551133863086646158142471338271308774961949487209819408412815441338693373010838140083465920601196015032242116770768852410004684430779597565933891264430687215458239289208552951811325564546974736993369565240480246175957114008198807189707737209984135910762546884575018543346288621250850970785119553535538606851855021875306453755652068972185830351089936688125298001030042504103985537361134146757649308820005117764627855129725714360970062873747073476020378296001230039962579761622441289529922751049776400140297648703201027125907740128498747307029793177198394988158879730191815490433834873447035601197993233876360142355689684723630508943192031334269400433003356311766761803873192762893850676028890496548861326102779580041006990888122373233892793934050304512787798532116744060382521609475981953499273295592732457695634858431353070766773270528849613286839270579364659993635411536771482579504800787111224085342879893149478975324055804061845169553425270762796541367520989914986010141474408974314541141670743608475490732417566181766789603085037659895284862501243315739191091979128975055219963178550148837460408880188363732570314294244021673193713013884777016069890206697192364711024075473874768720353704666592892789820242015589755606414380310942161126065784148596825325596802056392933614557896885869385443840309466208678747246881662851739421974924456389446468508989628639403247640918964479668458422670797072004106802548423516387881130500132483654010556170076725612914416575362814217876348924981860633324274378240200045395543080495598011634375920359086761488012532275316535451100591534750829191907214302665979372292256594966626429130383902791787566139715541170550043022885191238705294051151446639180698373400368602599994217391531485760066606504242699044795427817375526342398705722844733883542887103677324291042365519275309393221446950095026124768786797761750308981375884095707870305084685743860052787820566634449524677131203576375096299541381260552550339775708612323011161242677908466795225225158651689633313900283168752111731313096593769334251659641819139884503334158499032314023011590871463049114893488934253341462933328471702018355976005292593140026349485487741013544398638589728951125030142089708256316813654101935240272284218709923879986643388696533100490897395769022437753024119547682990515090666884349598488766787705585174364437082102030728327702815787086858944205264088812202286285010701590891844505764311317626825424012497670944568571271351698406766922346721355542261445521427469595753108544732073858375963801563278268051569650787744303012217042654085807583584985444660383210461435304340181185300481830809540865687673979138853194315982856859847716788860137116448352067018822929767743376287024275628627518423390893813832965780200250998799908071900498596033294885992684661882230427317921185059910780631792126874285392610031495947581959127056453736671608394026017871951616590626299243770577818572975699114660646410228568702533870995670150345956132167775864354024681303290272504292340889692070908445197645239592466203289092882955151236992914380180447666313480652253902312981614682492215552001351425369282052261424008264064446229613064893157702886085123801520879669898013290957153770126202136597507640187856822254484493785635580626594114830404389716199544537863518754638823475757348687933959902316391610477886315861572059680215727941843748239162577531401122788148437497103760800721951682982448920353796735089885174488350883058653357132599473926840339623707058872280908712397760785782305896012015284700595364376768322139325637195829751943818662907498764432727153341579737888377133137911452771047891700437029113978744369138286779931292941895271010624342596303874164984072304278172019900987721012917414017623650382190393791586250018071115161690642118256114153450824411689388000814704258239068196082051204638146994657322176480894008938841101095895176612077955092649526249943931791846222858405595328415682119352028419564167820879351787710047366466162800037842958127066874340234156363687598049230952103646565754175482889127702652180786571873005230070910489813399739332717531081105516312721160126267928077916252072701457973121453248278418237335389185904931013719749001350728236399103568262122968716475616029553965340874025105964224425897405472777343343486402204316326703360289006203258088738960444014415898051858895576923551015582433901841218345534945547768066022402068969536432283713567446413471965707296644242939529386722998178621163914518526923621552077372288845875306952186104482263516808042672082939817488976352270198218153517013642113070876104775857531027878700707403768221479851068800728673745785800506834698317506336946239615612193856545150958373600821215033664131680625468735169548358216337776908632755375145458160337795911821648058723259396048487678947354612362850131899511085073291579407584069910471113531412728419783536378575791601008560327339749651419906647671981829681330019761511739214150901920300804574460695547516885972097834399237039251701893336850599796612048584924135348266878875450361017638559818011482341313884758044394458752208168166987763257632768827192851618199949538402927638360085380899738571796643007195562173493783995212470322541333547728407963716558969955524438797489756488360361036352574385818233190836853182901407090428582630642251438641901705564509850097608351686077754530552248305385520488566703144123738234883356285246342442360210698650080275684040203430639078399403013340848041758067555112074621211989344044033996576858244192183545025359888866336129799713999576332896471651721046862696890421464546815320513841164647122253302525211211463681072021297937249666190843425665196138008080647350608927726788597227285791480053408924265369827280965567994194032447222670766352556713555584271724772285095304982419637466893584198283866614813293493749854502758617627241210005722005163987108507184413787120947326090669194948498269944646945252194680151716184403790848891278623410788496475106617252893771543813483643250647294311920133936405438210380174718571746502257761070971232587564423806310123787895121116840863074693967160231959848503535013559558972700605247305649143369599746480282044317226846056403006110381639689110086891556007611286483038313813318323203648728624607242343868052748216356672156529637739153816666877789848047061346557248676860158551777945447471529001110056611926165696532729979652817688839454263372658910908525269566832994915502072386374935273511822459873758976583739598411269935352831998717312100015114653062118469522661566285915091940774733588575696720424404840353385920432567256428354660019368205937328513555795066201688153109969072910003140057491116606014339899371214898767269735030292137556217760074579450312999110733045407204991514720418530129485554592425293688802678480821573297707706181662731198978843671511670309749123872008985311791471687842730462016296826370386790659411693411361915724088770864953453644733244740768871460131996473968439399947576409049868095874058526294788449107243963132328433155361662953794480588527134605776643144262395667127557930258274025516448738577369994117751270733204715121833159465289228270053670107481546812066582557872706372773043860881562576139596103013305071853005983805943565622759414761023937381775789601149783030451014209467733137003141904329721666067604882282612708259400843730956057692945952004887758808769977075715751419783331010520224609354853035397412748151684685158448765419104873218926082161631002870223309250264707591192669918878827391334953718897903964156629687622323072818954449432100802349997470138921718554486802905324157273199397362757343820941737143981428364556699713492610898492275107162107407514213065936380584984871201727379444094441909783424661661914929028461589969179871051001596934281849028159366174384832511469951164034966722729950754179155283689019168521967761188615626229663162874877023075688990519695738302138997072892879906357315858445826374580708039620915333677377651974478948858335884345357282897561013685870885919987889884658720494100288117675586936584832353544246333213684504921592966090393544031753032738340147843608822377072537163437225626135681745106580072351209471110074846571556615472010218420352209447750355006561551135662131931093070787538315762631751697694335475557619059307580903664369809669246698999547710673706637175910404361941659523023897586915304128898604223826526066684530689968563791338447965341305422691011617716169805597782796712731271339143584363266255243291569762806023324899734576588242995954873823042243697662743145459576137609053536995578118591144446491888523770720545451643737626223362654921757415152871921010804485064562822743416195954253849945741765368453346995983905676885637287872622554006920018184062057584021475154094880780620781286285595888393032679571748845698807261322287208841139301416813272471413114251533994540321420902629932599775039601558110864722271088814223513529649440903729555935576010338506869218266044361023667634057481599895310288133828969103581024022163110566150571605891064943683130512274345723785525344439445236051185838365966801023292458175909368347375160282705389026962432327846890381093133728385166610730694829105905638328722583936947909447995336815357666299045549149477829658499255047034918417484409491373302880551920108343734270939142954133132450302787808793315006533727826114080956348246231911752946065582658871911679440469118483490730546701696996523426073994433159469016535918059458612526579298910602939844723618546238080164748345489276635114733453639415744528676255570400849954740338310427642847901433831782774560290634449457359043291888136253932956421254717294875790933033015869656647884195834167971738606672176498229154859823097428516736620403147462138570222541714120815415987703773887095019433387338405923541997230990348128691296402714432252171470730479490448764054808288550104466044860435657189127232589117008772484598936818345152560080575194500797030828590726068783387248179005442694892949267301799125974434424306125772939821216045102102910500045921476894907596093503408122514162722578282297154681332886031694462096287214656770385036654226364707782017199296728698571693710984266243324225981361278186589353277877034825352056807431381114976863943322421815534959199117642720323839149000619130976844922379623824441906572332214417730525321129664181632549343550780796584107655598313056849224380569347755838903131409192344906646803349951255434721498020418161693914076234763800176573007163088137568227442677487168331015146225601285052450512140749148128129539753318630794058146076353054851206297672027265525923137511220236815209976393388252479424741621884435242970488590737471638700423351011236975833104724598869858108615682429308322616992488211936731743832039693745988688735578533222945907648365191094465049126601344070062730578305768849149317695167815336098333021306430445185278289019300086955897738810449608645644053435176976200497562803295874426455603861383675214000642885371654834408322113964516850165771439597015799661841840437120068617771984719602848213671240290195496905959346464308618787552297960403261494295167868264949947657047693840281308302471565269402261743044144808495540352588617967535955737794239800507012295844794657633169865947415079196418011368949036139925544779827762590949920557903275191220557814609190607344363210402035967248148148574498202921739039964146657571410921422463968598623970978184696700945506465480468474296183458068341986426033503439583885337528504900839906086852573454755638054712932293964765253300574596463212442355737356893836432823876375306102032452899727640730384440098671993174484940239845465610501696707619115679453211027036987379311361545385903470096071041973106726729047671350560683143271203511154262230015436005422302906072130435860819793398147494757908079688455322019504958785204339703128560982010914446959748550996004538861223715574239306982080387946028341467227875022568330369493421995260838636413585426130958528937614881755342674757922742819803134038952120353953953994667477516086320730285547300159669385156405916053312815271365261785353729867500637903728449129240194385757270766643358308591574086589753827728793092841824054836062785859985598867328913629720048099749833584294795772571693178595812726433256253012651055800772609440441551653602673098858476126877204638653936471422704529268887191967532428277383639305489654199850470617652712022581373634683823849967709397849558587445386414470973497050692482659149179989781894107677235236125099319300131541869931779668852697549364796183522282454452494331176027259188700173444421964095570559618003474414912756916309595294789272254669027010998181777353233789136161492916558555834174372361576002027723608123362611693782765476081830233575727767902362862288747701779425533931923366804680721758368601110726939246929277418149771923228369161278386726256406474924282582308349424575132813430637866548148052883189381866334146610187846958674042174615946842106692806191247118218342807801590360751053235047109979762031455821644443804272987621563642928930265587285326194220023450349310493565656703025363461810811697401184734429195055267599836619266453578952026553085863364596649255462241881734359791755557068596306799479210378084737721713098746597669348264235782556371594334112812477501911711699829321589446474629528774409052734666909704088744221219289105768966855107004118385584323986715412262864584523162621924579464868587406537391134336405359741486597940615127643935739995686647239187916782823636147036582870749776104463880864606655538642978012276650615889962902510867501470208013610832708415677058260801897325686794901661295464683055930369275327713260224054790459245709568953452502849298021128456065410949949873557063915929149772808523824191470636730529162827981480732541687860298265586198862836650887035098345454030049068111342735749734343382144644644298491909265569918403311989467632851903594255013943567977575769676661795995260543570120960378971670385069873651009202811874607499436896003560895121094020148359757476854156454094151006574755834483681675462386974731001915641958572271742754606417466932142983443296722673923743954078081477028363756335115975741742363827244065008446335037901956579895852374995700002722929839833947136035500037743780102695974808164815749643427556277008751562151201634187129828665995351633084536073892203757078144014405328157726112268769312989919849160831236639589537929460717048164329825242836683757131994711007096047745427941882473384326889231829806225868740801221437846535542191116230293409625704626768139654848835927144772252845512231086094743840024168123158935945771569452537708161139099404224943486166283598492073189411075510152838933645723541885790587039484699482839324366647591777086404372831922360029012366667871439873627376750815231191356462037403302564441262758034014639094431381839985894381569388580520770096489820245780712415200004575074707307053195691895395478580459065295240770672169686595571328561176665731062675431068354411228343468647995907389957257798217040189734701880627463919152014252161672454901262838218172443892677001133619989734593502272978622615943513175823232229433533074059379818821321683162270924577169825458166306111523652095771007600781316074494795727539745762446813184719867809504830511174736440710145857577687980809171325090475471292422838489092641995393522392271754473414347465164425758102699564362794105435313100811942313985842233674036396571946940586331745613389351730045523464706011920734726904063450269580863780601050665265275341966682477055070025914452270592963367455246558932314067268272502459740397369349879088892882291395523534061341104855983794307024480597505337449467771931618460313216593530043963240008725722793755376084359033462099553958144750846266083529577434183157702588368661797974054229045227630394000869613932370519808992688770448415841056077483791980209017015552082183912787108413216797774355618110329070577197209142803638991294484670249662308682131829998892090257162937393443559507841203013962593697107941026800117338311864544839998043431801928346433212107818071950414709383452691364066559538907715957737335292644972205406796605872917329160165241615934228716380606045633221206437016479422797171770718290897087149726723425361210645454610083219387574733381991840571180557407782410498308429902515438454198150595699910605762401289474789761623629328694952714182245249671890063201453787740558271848656330243952812928575143992559514694818903782074883971669219394781746820726883683610952021225630601316000020724579785167978094898155131970237675848362121699834750607003062390176094855575275127628592403851121354710526402286355527068579313964377227020380561725671629581861584036873274886725335004163555674879151812232067932354972602362430038074341763425065480902973665639143299717217466760486079914280940066791140743051794091885650291326946200029929822510542141310226512781478233573367940825925637863834516825551407730125411415432253328296095766263703676706650591492990853859086428691808063858284881908568817419110542360392403781701606570992226652793112376809754084902962941129120321355926995693571449689823961334338448347748004144412106875392327983810015387931133791139931742869033916665278118039284542699757722570847359969747865782260969933522971596435517091066261108415767136154192790115423548062564982747757085634031726789828417640881940415136783309951317222655992559785251519522770674234559702069538300500380902700877954280408788353475279972712848416625028915516336202223023471956832352112870180243498710684399734836834302622605913369916987640521084266793931692404416703718673942480890607218193917855827906450993798089040781186812828757270467794871764814919820099726138920916942643097005943120583727818257990278998055770817422838239762889204862577865529886929080095083232039936118754331146008428855617507202693934439299545944887196232687872931023810994668033319137584482270664242765706013247006823752862257893858832086006605156880972074706009479534568317134547421414496056945298330523048917588863000003661818980276331443572675851828533645049668080097375434218331076733736933978500849994537059925104285334193602156342537196659676982340516149368269190070658972398137891050470643621619393093861648851104512319077267403901619701568334930967471165953289055581063253304200569082390257034272915145113098307921383762095038100009938224564017364836362659297570631357205286901546673621369432573291883168699380871220221743254312930222389864884915726478600970697274035817149854880774473928026646723957584008803692989351945197379046368861395359166364949461004146449644778624440807237936847328769907628860671149037219658627784028502691249352523989212204219965332800112222664568540106548404623423062030923095310414043917329276484768437251678759895248337314661271271849324128652385919830338025878798951393275352099897928554472440181965114892194985106950357172609423020417097302240195636270130776426640638420591661619466720431959953102796314208021817775265970141702187684667931526846374232254901730339553976786028746198817355037122130519399570111779913208524008207063635374747023001556839508413830486629553454946498720084317720712853955986918499791893810616991138590368726505471253875245732006642435743551149387818899654149333572772410785524125723012112470514763839045196699014056953912010704599334109071734950411596253988061115716148252809966202381901040866326558815175228818701358647130748390930603738924449093442099176443976363780776369661499620403235874998942565984478030424536377286014107565050303797757153489326208189997918708306309345787929793263094496560931096048505067364834415650373468013041417901964451141287317074918389111525806059678962818922033390996769271998743921733369956263639139100019322023616574019792356079216774924713677111942239369755798765881456242740994102392850573322278420227041610932985615554373215052893291930891164663312278221876167045168657870253602701085426319172608136527942407610218274478260396503403105846926745151005814195828760354979873862340817048699578847799726551010867964980476716375626519342401051983750496566862794243510338522451158064279219274889891527142396959030369895363343068109259615042456619823185413072161308309516587330254622817045108860401771082478614677775567753361254039112086113537276622063979475198309462090204830967808520047992280729377172386145264686228567337601106813178839184585983250576968881676866479897158318877580205434279288761825553673216800933538128805506319664166191443500044546698813696379861241281528468151477526707357448599971175383600469411574775349472023784106966849039926873965803757712774633355772911833956845660322660279352553971551701820926389922219122396215528132542698369013571716577833063581366922895105865430908635239752114393590579175949095740775808618637344308304473212900613863898750177038393019864280233799509779256365956891396015560416327566286802435536789424238887873741345121447150495080441743677987416873402302656252830967248744909836202047151218810589351241946610568814212683369754394375552139841543766661518585030883517669319037870832793638463189796765979567046815775625483415664624939480802863117062854524463624055519563698804326212376144793527007863234861007529351032708379904508127139086903377795756154364777971297956541213504371216580503739711896308523467176465739912920921800680515162883248119952323079636388180483963897681575565980548773221311858363261203854932930089305497475761376341835116053394289906499631480328492565106235340845026411506514029471880629432329379796960964327658414752127421782479758451650510367601246947408846920244372408932877648069687198860886489043711119708995499435345483296064633533295708665095600630470055097704161389890849250818490807922763262090632280857597487477593841757636023137255744864965782713931322237803991816448871006089443298836734665902946479963497578303262740327887989477055588459759296967861012155988225535316749484798110671707279342836031491484937379917155780895866154459557230604953726000667516245306431109314751320514601101822202518641977898615232311577448304827946385404408134637974461378011683187185070446650506618318927887336732413518192826983924887832862472141737820552413507256867506534794885473980194231577615323889451450686669330919070108744877155857427326342293110043576801424067602709567992947119437185100970073346534176495604873596683271867285301272631151842027425961519800332365321631252852927519107732641426215790486903662547058568000659391902278992522354938735396009243105800350265013907372798876826635705394752127667230217447022711606313968996276231418911668873099451969583433894156140580543986680682854362152958019299645865316382159114267077113394570924797678902796494535121273356337229911400453127816795064036363085701209637912231718102397049224522326745027280027040986969457896409448776810450916325249826889838422084433713242779697721863231779910168239739169910096519021911510612204124767314423941950420528254040145772084969408219057307260173457381547996859598585176046779873026466006833987280307698314276998882407385580073931416479286359002960362309638221620720718341439797460411365641363372098643264947645959873152129997723799487353495752777340583306162567838888256646596516684035779951609676832402219590913590944624284551150172037568672338276029517376323039325798583732680839374243149096478887395458715405891520252973867820984585185696183817693649993084178633519207551043275377522963807619366757385317731175473178075827853947960877460988106030506200690280270913702220011299918671141844387184537195091256613194058758814836108316505455810082862884425845149489488750621254958907910192088183774861009733586698608772300307382492141644606854916020446005326091796273985696493978777979518962750642723258929231960149347663602579943868183114827943254049804976704784821899191567736253015002455547168224145243100903840445647488361654451358043819562104840819545486551246603447390654987271457982332497706343809088518276909433895839967234845346697819169099843792189016805585086462120231441520369933152547896002444541914820621564982517103383290384472864890327267927074783647508004799841135209733391333618594795678820029136125159905402717951139546397029062766106734705847821047422472101186850861633651443078275560326603507790589305752439441971003414275688913669571819999100632080610776967521670333020377123660233603520967156124756773180390183055330965978089139066478848321132572953935533574020042044707946128020924951126643496965367116230768656527057365078598937556922872422660878014380210957753464988885774556668541868972983243585749634659714977299295519878996457027880447947314954765270713657496088058017740515575689643046795417013356319305820032011038996178745456148084137210550341376120202547393039774239647665395859244942059200202957650134450681283433494178268572326849920562501830174208751431713275822956757327965086973441265352908432129082602619311576886434640774707308018499676149374747442492065366691052776925261890241042186510935031894832178140143785756160395031917710953035783691665582736397126239545632719354527324219789488849539910430857624706882841050112495879517410603347769928414071072999549430989469771042788798582491694153483834997282665806103950461462875064761191518437749528493207529378867438615996203997290851284889627735838345602790730002530805802732332231899906258558047872929986182630882227415854753588693833094890326166017831214669426007652008254533669345719314185335489596995495724343474300828938434236442319295897632101439413648451000298519144083240405357397553293332703869150378602433018571324280438619737421536178175617735124261648980425668231083537861643573838787741897262341024675216500859922564528386366562415284454719940571728982235198523224429301752148099226353953647904626392008327414219812959665574444569335333949743979678993539504089570339036618928238329470828581130320695080228734491797572110040308231691479433243966035089411762008864170904676207743568716637508310737777741912194651779162303220020553574805678180241413783677857485569994604975530577741995741819104630127120562457979097028315944012011545107367909684517848585550007178324625071568526314703142911308800618380090121067645174627651879738810686478060912475842207730112073420913499822207657616723978096735215827709643082415898133062435347967689831434540952776992793108949970700016436669222098054108021121556734534795851250698603629313278355938208908435805374330699470237330115753780385270845087116506289593435627542688546953763796835581416463888579744723819824985953871904571070599509899239550104602281408748732390380517630049107358015675530947173033331856856849047529153266797343243676087189289185605699302733044235574554718382956974793605524862772236744238825425177649081056598875547767571548968751335812400416953595476868517384084249536964579676468438051888414279934606236196671892450055999937474671913736093504883029546204783810246256872219443697854991729342140779838133948747010059837995712966327919446116351502661970345624694527003279106124146209235071584997135007470307033380357348132737603078922968675881236988283201320693885524851203838477972153387096562859818548934579120816866909683922239333084155504481748098905756567555737426576266031428363043522486118801047710579256356336681324317148393964208863846006702718089972327701218384360347021748311973943670634449418643164922419049367742116230116969348996368447905493391428687412671612877485935580281207030699721684346481015254180121741428717498860698340807965489377632064851211551551312943773766235318960334440575894513854232896933866723686975099013364882278734954777793804590604093239097446276917957047067871155183019439047060276155669773972245723284962690859136539362292550060880494777857692355069189593972585692051072936263142791781875022362893680303007754315568869726715657073581139872165850598522506463184511423506413831703901173460120414778056356228458481233439752873835794481747290238598296967045185328040774632551679653659397785400059433330248010272820502653188662001904385382998695726711229661410358644824381274749341132788287746087119775775919720260560659351442066113661701899785358087614087658799311920719934993845238242963614657934749714563423315310101442714009953764031484376065169390567091957809831660718703032025747579989295196752430307225654143311745297057812841151843619634230414751530738561756385944497486599675867511624492998669882695429236277335311794967691501512334112188208180831091580302808529460868583239359946709473627152183918928485248992952783730279144347041673303469981138995125413488423233306857202459790165008290920605897161892377113479790622628294711178159802328961048689727437177426116942788593898441653053498858635953627635650074615406901603198596420529292216349227779631699889731044117510084110961887182015790897040729768209028576676935309929697090190582218909758446916029098276018829299407938085274443996314076699714767589469775249291286613465455455062907273968826280747775705481295260934990672064477615997022130076519349856434764774726276494813136889422883849058429439917846666672164210767734686101940032660468057255640364500497315069057649478383626453853630038846948843474682779506022981185320280317761271905946639936594155496931132878620884728276316754644798713499325568232109244368760236969110267861549798328108748697444937509313568418959057330682351962584578559975164393854323492669954856273741598624660597573256832650139191133086375673636788593005808746687556248522294372334022298300490394705051104586185340825973362140459706049104707708794243009028351715118272567826891838589672385724598222917404722053860096563870688710058758807229703812516894703094250544567095553694157724385677998548110610701820703208155418872754597306435648988367437323808261802256220484422536111102939973226852310446151936031675882587210278226248035583386238804777683950265254216809401528038502755762141961405701477092430670440839996102618426415911362169516949878378833864157166230411660025062445598453029869492805753834113872222055922176836358229451352993648917383399232582351009346971472080562873364528929791869102645290083329495836475435965943796970956533070277701964865868351171437342615077062869752458345974641867333424343447976354892379497938936345885716961738790238534527332150915422867085874014455351706605270112743140443547949551414488290093782520301494438230584391484487136839480610701540723561487122586393247134672946830251315044969358370137452541000133012341932695381542258192760020640907230115665583520981701659829535217504457788217863091433810085218436057936113428376581373306100774982633137810610863008865081114782827882203007815716076296362430679255787787898262338852267774578239139140992775759942313028213823978213425214758238302626804758915318675522596072701941852124918034261964503802460653248583716212590398937112150213288031119199959007353211974594468296506254094322456099702383107040869983217743454762948205760987210853134036074374612634791362717638445120761568829032880716443125618914866268644178192158713993004151123595857135113865388294244847632158325927754131647269897138120601950642227054142425289990098912555757510306409680067424825844828518217712646289626812555496443660057312377864070249283017222200378387181077214811443248241573227271477183259469211842110540410042373322130107385869767576063624359206509404389571163941205293621775236397077088469376850186390831259362468495995844427534629332380098337294291111277045046264174766438722092120447554888731312380687730964799002655808422163237741824895935883393888436403889536938842642786704367842072115670766336388623312772965808812545106266751482050411208070454905349961018623972228876472443751638215649816770915394835190701900061058952791296653682605827649995323839888847773822772735858105088631127672724916290351506868872206843792874900088873424405617140762778640110358397223137661883427150262198748197604574235971366875629836434014791438482413813006211991295231693409976934222504020652066235185283158175980604759013654538064764646505823407490457614484883731946570686640790632944401397867289826978613157509571285378769416701777544545309756231568730226289172538710217018426676541122755325406492060803466247769932827916472179093997218195248966013231039701536442362149720012811381496338239125619362333923304309799493723716618704373205325768424833529277940165159651614651983765755758512685313183353843345692221384764406062770293682078788550826589325963875776671858472352161215451717080009890535220272396179773354307547257084810692516654377247420089488900823951643074278121837612476905017972147306238266965589005432014366229058214345056993981083903993780185332472447761072663927347278132824162227139604539656973429456459459879270464136216329549496585681600666464822612267441174388951415713315864206849781315262766650796170585932321897687676501516295733717223608488653122669589714476262235569405122105942586205654245102210802923921548221008896853387610818389065485491599898884844734967089101798701418012411325785823948753295687217733722626465804817394613172845906802428035543165731157816317467982942305446265193851707393170388986142403730969532770266995212472954993497530671611107573339346407331290556228815837017015993638092714549562680255022169654682316121894398436574342199450567859709958645854238543869028234201583783507480343006572335542480576976095875770628483180004083691368148101625915215911535059008193474081578125116263373022961248264385898287809576969996475646052691038476587940125789503816036969951106570280153219247570161555968459405962798664910467925789574435313372535339473323002263741787219440953572617338844885080553996804649973128703297568788634404933543852713087516856802457512370550677916165849087208017539590350874874396634613033080775344382177151492142839566776781978698900565035166333887771046986730113092840192340701575616530462122651156081736324197562507715225503524307259462060468974095535622508893824664848284246885180920595810797081949940476374028315955263589069053237752851422932194628076769887919499046627282838520334401542536162983270439531632412982264053145506512881236757844188481141379080444524033155374945147680536765142274975097185497599199011445831393952711640888380758863407938792710789758770618353233281868719330324306693540351656544672484913599527286704988909767476101283772061300992539431612772447690290377375272159720592556428181282048846994691275307909240690621858330428924831672059738390996545769818062870892956193524191770764251741363205620013964666965201700341619343967579476772322135336887554044065577133287749788922149540932763985670972804267333522776193663702274887925233653842322551021353824641114680415908203172010452257715405540360783749043998804454520441870421202337779623302472139567699627995169144305483147661069081866227303820046312472104371467077976387250742940781832450580745104677090773142189332355340079570852909194654919989546186054617591968929570343217235598201921777631992572979149883082098056007462090295307952947443058489689066391960349493894804542488301126745771844008853011056644575247931123630375921012104260710311793642936249491379838286643448516905260277707709714400202869977900433236522510214681835561344271359107185035948229620819766935221734522961311180478070591858523824813902778804921998431174340196870615780875389031986754894182727173467935641715341348673478147948711703438804072809710788125505841003762825777291504501411365968832039344411736115103923162266543409409154346256213884283862250251914397936723409464917266049959760817890870111843945341395119199251536903001247441772133971694983689523628253543974096586913302661755225573266324490272594660033719427065640621418693639124088443788207157669066716992979035003433074716093594533569624710500475214912719019432417405912969734372251693124684878576237564192118279770200179284609123239720418149221162371821151239497854782187304587634903311126765253869671777575938386247452074981094552607729934887678491056472452591454203791219254487485361365381684100401865596641662565489735379380618351138218706178463748427265320964394685883365787337627473683544297307483531329836207608136298265945827292689191471454541932100519438474101782954717232697926663621948737511633658758661222771704243956874416694585417993560180113325130192976411040614373998998816442499642942897560353758413043708521047968825992409455584558701052971580580192890233804782246920510420938736409828844530116684278707462065440584235868416694197147325772615527791035727619356976440108147114072183937571807850161511122268328022670039732656228461864876407869330355128235500195442543406385923732890161687049161730685252027372097221952082094687081467752496652204880716267025047363885334475536295328034154463265984640381597987823683420572258766065205602695961464751472387237597750349041222406183731422499550665589350772044135332273734099223875195308724245957270007533707423819245698351304229986457368963296102763016385875745702200315819880277027534902222183937917788527292225910481654839643882895658498339660932071984561452060835223711526501473204120695366442307501701371972621033044461764829678118947261492692650796318660659588501655478340001928882087063648612080936799512267082549469878532539704350510290962927420672726534014210770002516252509215143743472570606097398008506695643491200429656340742581610449352580247148680818646922049706557772985715697001380259162917229068452470511828650676504280716132809724618813710077587131236136221579703554834066314070088697178047041997826174749868401254587675182183054662763971830993395986615617721406662558488850161384601604804770132799292148966983002928209351564542578741571266359427742515259731734604772419237590558433357560166120120997606605389413308592885751117925269339883262958984467542891258257987665179212756511092153675870855919350598511167873561771446679763467162094214381369879764330974205133790965584393603537627784788765254400674491192343403141134971408675188881348397600478345125126241616897335984286481122378641694067374082517869562001676760831410136025827218228736923835184768415127063305362705490634812079758959164707997524123422988072295857573109336893805623084343457762033952324238144106435152078337508239474978176596611229304186774203323952941715471912038872179960696323347329460167762488541953181113085680873666804358726190435755905622241941439976632892862606563943370315412018671252341475699274177003306403808828615522693989600611527921893960943907961275373195003408734208812391714349388691602218364428217814976882761586850426727923471216771165560616901980555256380065846123821451444972370145849683286889297786893083864231965711126457481206475051454079865290123678876688451116826566204167411373494923766847398123214404343131052888640806077647083425450183017756668498807849844383108180755253273255796388334832497167285602688228810448214861228754117125729123230552840687551148969234894321832546552291038204740521602888797001358808796275432818931901696852847151452341199145203819173280903933007878612974195675887721058157211635986438217017591911378361595195140348921563092196746088930164551992580914654092638058715775236472443096985844605677050331724471352507166330613175524532312430973628915236652313704349481491066000777706847694711184905572332466232088911068571689434195834633745584603983591100756445306957840437527998114399436888757031077112040947069013912228032908108539095104042945329514874945219034659300033385167708647284699721406511184288083060024855431495622127872174612490117660202810437072370463705478666292484181432828107225805304055232807102836984682566777726478731082001614732598467608843375313697005570182900808735107075180617604220546257231024216625501089695904917675405447777068008013995747747358528698345017828384794252257698994783384775287403331837173659465484086799217415447778686184312406501790534116979682969797774360750765701491883095322504359539012150260705908735828848222815872987111529488290872290355166181655073215146519855891636413235737598011115413817969222941325523970295921500382190651120516606258963748289650843565403440232911552009533199448326485230845902757373104714297722305397774815554202872145153000797609934276937120237243082773762193219167989034928617577056718400756509334028891508680704957077089553904029247447091823870384377055671335116316368553046311767365177078718581829343750082576023163098969301330935867352701767177469687043470499781144551597565193084066977787915837559807215804365392315152309153575654322812615284546109453390815428563524111751634048797869367282885744972885226133746500891866297205138755014431620101423022771584111553651644206455535233955125730602461582750054394022276663642321220363495487532270794639275022883080494618413783721119917498307922731689614102933168704968113331691211260918043044358428483204253016753049303880742094796513222267584104890426231929567718254996186083779649433489730190647469947241107893645716929728323445436167629654849111839967275289997469999115442096281490653643679315725522772956390975288684621785051893917145551990547104283107930108513243209291676261782811204683024645754676226669035913381232053029694897782440766841201551162221233013796028169214323854143665571590027445758978209646979124202397376029395745537649098732212852253864049537579485004159164988470112573895633804363045232581186489099212377020642524071631014630985477826478419303995144914432162362055800190015138821870439299453550705545530581721610415752450691704719303322418519502012830103398188970379168693165628408791460707607608211151859566001020373655807033880839336544765469840522435359374238116142612249042708952668797937725791891169657520627111003025359356700504715520517819821864516408134753970885076597353968177488939619207198886925883147192628114667043270892015756767296513276893980908657206460537363424273085705921497088865369127767748019601015113726857269566442287113304876507120583894113774769796825170111519344442315608188881676624117126080760580286058273918183476392102649492388380981375334009046652639907496807587987454895187528504542355016553177539094042256836943972540636419971135267800577881866408307365468370162638932568387123932809017424040313785318031336198825079657309292271627571865374467659293146702748025446918176243887764482659497722348893407977605844172291654632817512747348119882069924354826957784952518590741271733886403378942465849357566317719995461829449006019041726259879643704276162232417702335196852306097771169948109212436181555872775970673970595203886356709518448599382114421058869090186888178862122100367716423141992909184239637999013651670147692152385751848546534566412383349946790718119254749528977727996601313810418283769232381204613088597912241500772290602038878197369107406355121144531776130561233227733936727296659230237392862714149700160271945777268300370799401473630877075548351305183873732363714505240147135479354025957274471750400838000371414625558157311165791018032494920954760607699513964649509056267629471261215025226323885045246240608485290395104074727494578108280581944596592366515545696081652308022373955785303189765344389445093298534813457145479093637986844753293697862991993685717842267435589568372337816065710972277028949514195169018971535307920589579590293453698677801812661793706681312283172151050589328523721270076913618008938291211369338885883002062240185506205408984727667645289825713219225879054499621717886420955238774610969418167275621610400105709907593252067412340504053114873671027004097328577107910177051207786469423437187396882419653693244350629683989576767496919798676864308423756405609141074919478822283939278323370479647381590630544028531094853040496306749448445106477059979269650891334723888593273832285623628753270282936628922208433205999068841380397219387999931610953689747244241346299057855673233650191860683752249203707211735034232863103008266872810808459202341529089335314149371477143740840318673390157465165867648385844838989359672256180855179467310290528937408555740751531170463982734698831557909468577757480839073767041633469296241826884027295526457275728071369609657128436836671207388225967145062597189642673876712346069806491471298338728188549489010562478796584804490283346541833702621292023410873323070641559020376364831471878090804808604790885900754075789880614155656076320796735558440553247064039882235960175621484908794507468185038608127905056555107250200666458060259378643279524519182248690658642169621466330918512491372372444948552295390278108525233815421683843211620287848000148329120894239782346481938142923644321425769000522846017986254655307350877373850844460212174850831921068023402000195331526896202692463445526802303559836733996532247703953113390018083697128744566294779577019855258109023127783478837301105059525453626054650572873030238839277269514310290778776133111310866848690079229246681195929465158698066489934255486025814253431487369333500749061118421780311939828374547558126494026997918861268682216656578512103631554054946234149621963655788184906921793648616464278055071377050723884214322248065181077947867964334923516876308143426608424175223197849576492260372140767164164186739456413592270286392909598873672779584583457265653316047650369832797828038209938306045232563889206181275578286683531106440240264624605147172900086129881300242275881646046828203134519267705106297120492004063608889890724219246932813595499710072398066470329579102711712739377425725540567303357854474824321862991036118130032082430870512559923057987837878337197405660646345581343245165915410723471699572151406643827440782284950462717743251782217998153779489262067599360782691624274183010698019502750605291752297907365129210918066457341156746747411247960324404220460141696739876497007029767231746776646230813947488308248672307261802583102198749159623060896292378298572555580284315192042897877811730586446582581921423669344503502884535173096284899628765704662988965599979284408318113475187723204614036478590920973439068618406388942147775718620433095957415886517401089112648518585180500275420346178586137079200214094477798705038732384528348377082895721499038486302451545483895502601778576544921199319925820838735238073813401500152885926633152970865897508651246953318547943205742664868826598524230037650102228347770781740532294644203474826268496621159339399095288732393016672093991588876048140629371356355173427261278916804975936278798550703349056029185301323722963295022053842850740978428576863620097874817680144312030446597332186329692955688701283820390873694809854951968437071268850570160706459508874177066147421948120324220277468476544881497846404805552676122250721401607386354556159423733051804056659892007730945229031860117409010278821430790812037201698887086291490682800202098155816391270322946434008953794592280338999572745019552541004304510399718797414163522055842072422240744704655646707562986637645972516457367997397592863512390502396090901871812093506106655016211828805913283311353753023308317093275242190686340122229695655592388810586052248309192981542174106680902438023191264345920471841424810502456380671063970461650527980711625407785665325050395126756691239150604983331305142845063916102064819649313946817964988676880916885705011956616302582513337418457167946597995980153745460027337648834158357649091025405739202375248226538267850909120494527680234299013209912180955332621386616179031735916989258954056661480871170276072259614586112149618018051351883236277195139129716502094629202990097492882145402042054247357880365330818079848758150260620019097810015002953759556616608083329502700761582560622751173037009338326527925881932489681343614336993169377138199214884704259409709773598557347592160364063207193222919556252645074502208089883142088400029002926876145772144711597863115647293533693629524171035821360116364551360387651347327688445449723348047128503227748708184146414769673275617926760132155415718152739994217539652018759621709240718866973311934387503427897269509334686441481181753878318215331703384865493500228160360174153052332578720658536806875065089365264418915137793902866956611234843910418044294294807967926351642117662658056245044305036490771879419843456062084765223510438954893217497830396873659794857569056496259521265291176340775850842738882007325159873047818870392478083942277327644671687840397672758029007528526606471536723189659919790040021551047154858530952426070031317842256808176963761536162486876041970080349158106909784115960987945696453897711728368879011134660431287342121855170586025505406337756490202453736898154807651022080322247432323775866960577009516461858592574488427774722423610382678863122441524820259492115838214346483722621971359813244983823416910476726755139557989482976811969606239919593129130191789243242649241460752889548635593288545110123569304791612500229485504224504937999650935354490011374145444994722408552774897219354500988058884292005380866836161152615909169070108570272648532262437687062412012402043753729345999414749550126224536313662509826396301872603792273648076744977960181022505103432797129430143395013668213954007162483166927492608594447725181757955554838883774921974250071230515536064966669633055672434619553750330376151035112984696448718983334249051442588060310053819896913932341206683722016060718136307391779822697764104271910729719875370426980010956036185595908746071171326102922365884311913759399699163783212309741013756510554638977642921941947969487857021614661348508648887654445233722494573678687146599665745304825062530428506916823946116160927062461381155153259105005303983431570306202097594620939166964000963504973550834253351767256220270933335243258096750601680655586531633806395612836954873663609687627127366467978276065717973016061630778765282056681942515334188667562218303149136380504190334023112597934667022027220225419291492280065254397222908198681689346802846027339004698173393053433534387102982830313125280550907951199525910777457268895945367216669148528241223173417363909309336937217320206652649098273510406064655019197784540991394337362725087779100716057499610244978255919743924180194456788343656526803642518644557460009979966640510350446337593165792562801194264150303144236144585582909127342468858612719989417953626201004308425585245433561637252304128741623983346236650649975444031879282533461396334528100283836244777040841873960249203011076241257977140405098956191325334498124759981100132561552240203939869787542634638822852967953108345641372385571363146235301168755686817766065481331397219183356428472527198760431559151811036618593185571628907090168730846352624548882657025315690453251255534576663822810902750936971735116343222627817597767938824250053848957129746239154554831641318748816733236163865979237819882850971205702969199580471332200922120083777567684730295673316353223035381303049947421868257097914840527363179278462407179942297040914172582108842617927853112939370868927268647940903614353890062504123114075851206341798467080609033458388146831659987847322898175701777126962958409835288145290993949052629967321380828581000922515062075839569675970196472197045035581367923519292949961576272481612123980557222913605911499799468300894683709664322879774433621323931398150647915934075652020799094825338642853163854248444305388661248054800055363744186374570608290072881590252329657126106222737570967519199287789540672466787584272112741916815310458085569701878438206195961765209199240628850408893591450756496545948040788444748131542950887001156833047235083742844323118771221307424046286071421963336718964563897868024329569538315853995517786980900262110429180800814424032961933090523374379334373737658261237522466595991161352635305946770560786545421816539066269165779226533122765491894841746551560894071806302324360803890666458769059290133015946357706079644854013860638257016275445065338243051808034099256528920733950143467873603541494070257820029386900244078205393695861348858421049763455828524706506321470574366350141573275874164993618696299241803221119730777187168295305450838912362461464995487029416146711227862876614135291874724988967081093609354285022897966654861054494158903866445924375147412605199283341874984503940158991335486946809235770659752145600319927095958187975802494897228716605300454350420878611990533527014169220082846944574676461944862200393283512868035217651710181899749025407656381993128040187977209597567627643822569061889505427241185408510771029149117826373581912850578079671850760829089536301985262224089484269032251905764047404196582090101315097037903143613025652627332355001412700858906162566916148986232574783112193177051441338771710073064921128511367490356231440269431956813160334961418223817525791466064854317754364355247554610712048918392064761481749888341311270797538064011464623212765476395675264707844963152708279831223248348472229429285085503343485975306745870544081387850763699931964480082086173388691306335455522230529690724554235599385308253740291235538280832484737887024805840997838473127195596369957581619698840203959779280965439065060268038986590532952585001914648018974383304804831115551192554681647600841228528855646363167371637142362556695441191961901941910630959456861535602370872408026415910099652889749444710996368467275836940632772420638384019205740640443196508080179495069584317829038052340689407495103551969397305158821927878115041494668798666372931957599844804363479601801425227603061178139474928560025823049608207286980607758369487975254000498466115165034247414137706971333229004425217638924308242062060948675772068118964034713893579273495910248724620007597774860923762167900143584965416587322656936120516765698441871559376838440033318548004866947520977591381545424603656403108423470777262153666376116275650226793088072665711869450024507792225894389837266108934420283201014815712182008894552250541201863366948562761490741382830948141109068721841477018751285411614667266252098695143974098328817022680944754936171679765270939938955651890856249654872815461212300054131723468159982399464408900084502284084614837574775090150462614734473758362243420554909958375610265177614997808360781740220409927651195177572791925292538772271838929837432507231977914511516171694314567926747761721319590068282117244647649357328184415484579297706675004961730588322689922211267750133165408632414761455795875759178206714912339587821779148635306332513906574185168692799856353128508857971185871573322581281471902235217384149377538258136407943797595253738088297869295666991451497850886366179440983231421030989367307498473846209149801522575698858672804396036536663147574494510866521774391606366420066664188872127580037671187363446204324033242097447267085216974202378829888807411531653560772351492428786216887385271161116649247573951520816262830064036625325466310581742212092243885680049183664570289585930550454198270911850080654073511673538061724793937051925136413453964261871476267856712998270895577212226879400225215620864377487053412444315277935757757138216441481322862664909457696908090852781392140793714834315423595575673841113072267535707021004318391202546523974261529744710950610287316579594895658096454181157213232044943656841930522080259176944944232537024439955318208283459568480371101166043746410121030253677691456907443500509364649466540071200937880616695865096600985149302423720633803136528493188511388493496024202428266093207156391895252944333386707935103763546297914525872722587479283440671932101671399409386156515271419339699724391938409329895706960922145446309077001362549986603723455880598051350192594444020158796628781638129625736164869974315196381460806814500982467455178066637714477707537201899354194634006980992022677333200034690094600047162036300478213507081528064355698316181710013005976255543907549803975516361739316059972777373394210095929811607198739186617042763128021991797277259760370884579363101015409379669004294529615657883912995355467195472231710414490610598198546589543340282840815744420440194531975448865975435496547283616035859529444603047673508940468455834633645300222376526168875831725650096746176104970334142491942866051392091924703791296084454098623085647802466585445957747706560657881630900421584853723572874757346253907394016145735529193505438852965703203515661026491131063563690538770309765911855815428021089991439271928207991062612447051905437813442988148776001605306812081780425196803775046001839786955018439369995295647345346997904080702486030950038217835905252801542729790414939362457362814101584021632611385236304628921518822106762631359579342473712553607555545028204835053808789518086454951812120133690589397149197908507575117640591950872404253622516833784061392247265859531862223025030631797847293338970628147598110579027291994622700231659325986038236097870826089591103127637003866750777867960812265656806502120304241248784343046995955468016451268886573017269181396479310661703809929282530797173442238429344924098786873409296077413720128567699728456822382918985963575778966620863310956579820736537079854172709586042653058849602661780094952913738340733284473101805398836091933057800332105837089370336788274265730436137024800509111352978353188505024130209957780586968705048561120668464804703838933127383634833665823488602185461144179886947385773860905415575067700313242927433199229053418399040464426820948513121393247770795194994672788518471346721032137865911078668656980630135824438793183543727046475839678845628611207741101683456778863990712815791414407618253732040873460842967355978913169164610278236957283125501896944107866847896482219926556572771302538315419558158581321696327738431138552791248447682506288028649290075374838428485384902418857317091794142590923723562770019688420828014710296221439438413476559818874241947142383753645630940727274852041501488233725543727775591807148341085021280430598375109467378377034713012758937840102380849008650996001187616151766881658255422383963319836648988842556282024037331220079697122340422636679619739511578608451275425629596241905656800126191326898264643629037216009253010181595882427960658666223598404291884988918456503616088134566563080862165251778536498490884721217225614028720581735996577138652103299757044211833805664643708449107763329908202599847886016766601179410426764622521871257781698274272183865311022445578398195119110342507547117240111602642656730380063300310281500249363140305973492858378663995638463310539346445767912523222025202615847321965353030901398439811243305410155830994389450220185615635799181342502166466944662790627562479957748989625118670462871684963792185146641329058240468089768308542976878076870588160643774180472202820354703823655152857150486505163971972528744085324790810466344234413121923497921730482275952323079381633937861984082061444934759469344293170818374157290979418462163627122089093728263344548921559489154326157027078454229784813554953002863049121290016004242043486031382172423916597413702782179000742114617055720586829305124434277265037873808183803472297588386490380523303164813211041433793289154660118287265356814810864658159795178601484394025326728696709485332698879815524376187447514329136358751369142129477873329648064880787798131732380412407329349393092809033310723649828169423626289533034193075948043330162836337842857214831871539187280338085392795936881318115512814249979564791969599913020739829910295985437001137334778633020306572341856941479038808434211456135188207420113031357439363658253667467776826193533731241934125863614612708761000286630313575697294976419858830639230546941789791347102356556555726385126648805195922794449100520266723913051968132810060054979669400511718076820882080580751391673367285714614363679590938530773856047538523092971763838204976242488177676572645387053794101851414325497319901442211036445928400794608131404078381468000923045051439515252831736288175618498672169133961056426877015109696348995445307547731429932939162917151205729496913597865246517652524011921958450344007667517860292314248897904513580933510899301401503652617113982901719113870102033023994305838184252370592837236461543109581443013776765150433960044942726531502425719337642688467764997130061533115711209770468462170403495160246406020875161575614941180603447845559637228105931632407612389328316619681726078881102692858667877920274755490102573922643445116942929826958189080144620455986209023175480449901734956522440114229600919656004355780616419229476684296098760691533680648534972661844769810602692667081694664451937840697307372400595487253666399072489220755779801917171536334590810745309483571728012357263453795453111352739462817514371628650574823771546083403584664895011389752583240115185525849012060151276792090734618318276936274719309812844443162079304712209778634059558328056621843277496215364699510360510563381463595034736258110176740275606952544342200929150608075126586280310195955731219208969116658814818905215397588932057990084724659823194688113841278438245107076677939641408441878324621192425951449872390971952668549784935400641358960277302815080215162175559015667964301591748812558672889878924354680456941015446026215986221128229223920458031300749781193420454556140098364765038716318592111802442035453999298177048793334669705630149186480961827349991833928876619691244789753612246645797481778737522531967585694321943634615200398297428497371411441364637145359537917123745096390541542234329502119246799863456715155968233522320140766738742656520617726163720199569298781806872736996350239672208171547752316449855533686978731163148706490103013977577343834404475300826618139007782361063875758640107446919748744113019421251579109078428539849768989688358964536634400908498291127593493304648033543128621405412382366126946940552702317105041118284957339003757865454274731484839856431640451098568834461777755111190873965310782858123085823463331934022999037083007907316402994956534559869035894872140317299175472391451285948574077248317216508767726938154282577304586912117663743775148843578159684741916715138364944258862081151227135505280601125991398529770162081367494817938588810133378824065984918458155004676479451908478876971511135018889112343675022501903749771451190371333681252732805341657353000589797208419909100394827353692363973156928079660398122811314126337149782320680071351154422703897253277053626667236416010055599373924595816103997399312649233421907989661580364909078506147560513113444114567809305796182146090440717598170129445293440616568751539399886943264218362006723712181436568504434343781858851402879552869947777977183370381230500282768475647446289130109925723655331480535670425982868643107307120742249331511733877807484625730531816359080937801514321091933111471023055225940418328133486767868922985471407465793804130282196242648972448924984103421915110744974399938553393304441880186069521662510529205857305383686933687430137290947244304505120801567702794648284069064292353903472627411821199235515556155625198102168771024542591451873589169856170430589896774145645628669761347740345036139371898245951390976386753003224404495090793358841911748817715496594817910153180915510054109771997040180802491098512871733554572813584915576515349670098372980363432486524183580836007801782085441172560149682889852481320869636614353060616041887322622731361384569007744110923777574015283823562135331766579768805705238659728427287182695141544477693880340195762296811206259709867076648425052382600879311400456880467680919666063239307559012771549880034237315685730387301320763732656567064016178658571179931736849343363444703853597282108114861834951624866538744697362265123428142317195615472404034420420489704357735356838850928862478919678182694650463691188538858060614443237288049210034818118627052571759896797706317375780765371781194660864510671678079246472049772788749441406152851794674029757020616082225299928978834195039468407169522684372600066647400018699986674878430457964879429148600648196022828972418671087923108558588333837444188721738565805326360834906974310949237434554319513701286019479049345866673835505883339994483693303824901188747271317126519021900280031235387790570930255942435190042737165714161845309252641226875576137591614669993623706254636483322855414070579856082562137684523518630384355091127407420134837863454379584532658654130436815758532533296828339368169888611045402754585902953763649428295169454352745224712361083194014552968182436335210326147659855926241759948209389252043534839343367735023148446747229668228419045956518211228497028108707950902502096652587216959664585492903969645938486307983369835677325643155359183735376963887671528978122639155155096340142456039834916482091921908828968394187271687064556675156250409116432335898404143217162942958919891847526893793886251086477097207693993065711759864114463141430110697118750176199993948975066672160517747225443864750469412834470197224906173103723530580295592378943376897018005689921878857225694400029694701937179563594994948184286349084835774584596762973857742627875630436199849030242242869155016208584174132330225180856743413818006236076869625197624775160894009911384604696250040967017506440140128631692851446725675789767958546920250701729953996500838678668191177211801110371887085854283957787089197241550138455251610940996510085236502490478070266845667245728272882479943521100446775231737073997363895833904128952428382549882675558688830789762685941026906313415006977820873613065630660516219963664735070402361843184528545498293537661293483531910437120048604207826397064034750517275105855725641552158740333539783275910400190267879142424768933723553365765388121960476917936700614800682988719653779696072774331824386643999547781829564510222394018344494055068461250745593738566141266135693751389519011908928063668453819069387589556192868480624336839906594784462451046538146739379080742974062693909071536493452816556919367100224254893458929549567213868154263417146462573728260347463237658416331542419797619561059344724354727567201409754778493203959964107342896094779564144613540262884208734557679201527827551937375223318846413358367620091046338788285416785878358009621167333670647228949528364920117801032121303624956576978760699146352879763723572668004922271932350805684521257963582393390505326325776968440658845719185628060497551805094667736441344656686929165720717345495601197357217616104320804375697724267803386964117373460505641558206439364172477636838091133971915759607319002665756974235954156204964116350955961029103304307831547634120812394429467987856689745459252932065561273505735877493866305561269044903604300627098068225668702349545578910834395038242808238448771547711377402583789071867028942294772656862873174189850316496076574426326858056707417353833225886276739390461063529939715915460313344438125520005198862094071664926033262693589509106883553783592139058962300575215700875562234628211156987259485323032008657747670423542187978366716930394004155358933909169326092780853318376782224037293487186174346582050854237797330635130313621945397436757618444618809938317274864156454599964169152298104492352998047011391882550442252019338026659434531077088603661352891673385729702905449990482913810051024594457689786729355788576794969139954521180905042278954126648160545225304872248410101858776335064661565665059858238782693429934707173344764736236904492659959195621559046409586439314181834066748847064160193335897041593015558562809225805817036167867995620792418107571199228531083551937631917184626284275364911240741701863219217544474556523590174739743746084543880491154432877257710667595558673096992628299668290464693469424752674850492000256866841427666884466596970866426031310319444609335333228772333836135206394192150092992048611908515686079418086940722654797177558903577711784438817667815912949174831790876527820280024405265183515879692713365385932489022175400695168554336424762627649340930002020226591349873431737884152943596690330291770982496995121318861062674300112474231603703273760513808953787117435399807630612530913266396104161974131679009144512742486823049375831575293051934810139371407169185770431366866270356612299720574299345758363654933807647064946976408263927208831538817734316702984012208917872821853588418334808503942205636661735639313017129401674334662187922653339476325697529328923192814452035777600447778235357992551417262041268528510179462501428570881425066637368482039105871645056740419374483384335125529060626004701103046362427751882751974625634713774314072972677126012993836855520391682970491596954033263943259743585000057289653434307003571013594957391269259154578136479163779874158661317547477355930020554493321836251239787865030229784392955644066297157397633888435964126548818676530300045686713212797553518103215494321451508187497466340872258282722699289337207928972967249884430027454908012477204762869355858352254981240711243644889670393035757942673393392508696337965249709467551710126047995949537108914307747650723462683192314255164838205760501731802674845293888927061776782220533512325046094438577687950173590963791546322067580887808319198445648366250185029700425970279364410624335525506849137665462065560316702337931631360792839083042119029639633694431605367827166116573843302932484427211919887548420350803870155727456250755217509594484442037753925473965477431048223925063419204409800245460039269328887786135268273061791523049514973181112126397417017994259961483670149129502359493582031403030731435028732332905243410295402288942192476676380228418058648703826694117793942717843891826933099680188379289845555232869415869799771781893105713811013563251677382903489116900375376838300404845276755088418734280332945130653288158935777133941726565260639854821938407624712488017675785799822177248401359368689547922164558830042774600017686267569623167214945307921141840421325919308874439625527607185383283659340937306908290544266069963180776863078162584214619634823288558240306423551782594088408333370439124255088970253709859119689588019721141515532066285095096679081065978361406298798316964987913735633410496765846425623205851253710133269845878443318873931666925956999886585350267007148642967436778267983052676531225992342371429184048707066806225551686156794852595731626909001024933976985853340406533451876542967995547628150068529839861359280852113845264905144899335063943494458453116611457133299688821591730402577544424442483877761906044298264767847087906783306299713167536675793208420932297332824371629942556895124069882396842385192857452864769389120646870681678304704972277594852616284705334843592685677663430698859812711885691353450084255851718433831474409762541678883839151258414440083525904702637265651642973746648604835226371464107514818374985648311530579272206018064349940479255884375427747642500522214722559258838323514752198619562751098877869592280239516877434708050787504607169890619319821048477647273676852346016969757549904980156164671262810220513510893582471697784251269152389127630736539296345141962970640157521783783555847541912765345961275414242292865196693184160364408238409262828507529619690847645768068633636588527690256120509559375117144274010927401617887555449589781078454219245118991259505627667695587871385973306003326264751507265698512923034030660356109787130607166951253617356477588749141329503097831714336128742531942323533621173601010129890509692555927823554638991129072622574431114242079485369429205988934376184359163291433736667548843707161368549962987520275196618400847483048608800263602917221421549105605552605636433710339863850110492857736173144052494966553615110197919096223990968823635524737842848691514512223792983814233718415341919156143394624596882237024091160700716974387011056672274286757634897335433517962883467924803597793189072132476461740283026237963538918652083803859127825535948444076066166739452413959689454657726233670607627854398791175793832693187670799861365143901189952082963988571723460436202493831282233629723014831004916885215071695574129890985180543521782282077477007735471995558842491810799926219211962597448868809087197390340234096089107594317983472693755023113706212511042489533071247189369023421012423159355864002659145920859879770923888644464043029766631742283773436836371255765576710256553740721644205979715577353719521584098266451056837621875568427981298464231604361863797373505759729575772175093533822807790583621956877319024525113765525690881841737972207541674903586305820952284834701415519131824351598504071983621098627357845334651937743641159189012524489266056745443393103466985643846081929172338054786289616813326784696123999465795514584572104661557111257327129854266041696848650786792004634515156899828780983406906901305336519427387745176535052729125557237426899104933140338790915883431538608898386246849824115274250799134143674680399668141004996366295825360373027135260536575250361633298675798721361341656020103700719943247375900355648349459200982012424264300004824538090441270380529535690913502917347075001156428550913427776224591746367346890561853054356942077500477993861138679308475156116428566665138228809201099360625310631080620257402581319792212087907308273416778070358546678239835544948299272529570698110178289623767677098865041080364402969057528109072822095608319931958537757757249789442252225001338765918038994219361180581189311475546689833315361208043268968594199567496052557148116318153360712899094747986498389934750332116730559056587690210911961343641739000255052652879447931283674949694925683039157097563525823046063822268886449859302064449725040327161011786908726813729410513844143902967510755489802090736205548881154210534903260287014205076754223103892121947466845466554478463545237833066328404780095728607223173096238442253007530295577487237020803296623068481218220286221490432498500294337693832168756098408562505379790567702735402971673148838709239294946316041824272766304814322772674292203837679157089722189800787591404157757269323970214655698253103949507939474189517989328807203902623012896212010224617351212565827583097743955967822200240774171520328092783483442806068024909941994487101587992419158287132776042061093883140127087238207731569178391568250224880299338413534692444674870703447572181167685643792076385478511815463532371713316676819595682910282527918878829674162149677134568130211230810370895748409459215092286387940106150519867669239190468368732886776122376138565999614152385793437077286017443780443959305824542337321807792602205385039946383262366989505066386847613274402470264180029118532179522654285809090226312549278744664986579096560221134102266340354851518800624146772011775676751067034473256397817219464004796529629679305085879771045192458153472146709477589608250544553618085029780843577622682058588365321818003412428164198017794751346197519929050979451370718629717767696993561406237890983260736978799079259067602620157777353428452310425587303098334070469393397076274089982202915595097540703276840061322369690001392823579170033655559671010235568641172071465845137955331883202128072839855393732036727832075768729755943210586027816373646010839352801424810630515581383877968845412514085992783559862863958465863748590278173274306161262898943432330219884108721395192258752539809188849548802801099566909928358587574585717018728486114352939205341770983589075775018736278728969684672354254375303046017594752521701046611281658134704464086703159516014905194737974087262024942492706623770575719867807665171815481197986653577611754436643892144492621765724933757588040346932909784988416996465171620567686120491661990992310644822031941414916856389718654018160354030249051797900705180527140396055461309420978053231301709899166885141658234555830174788329997478467860276701639878969967024378168129786522442258209853115720800791704905459322352574713870365572215848073712762750594265792650224876378672935053788224394584334434802188987257283408250679005397153605508194560643218022515519333065043034207464607817589019159597117250386210008454143121440664968048684918565071451340951571210628790982439773042431940518342578784089814019433417987303169384988379143769381878878180779101370055637054123133283398308269661162278557028857542862577159796886704409469348318325972946761766847786447625032786124688774317829453161812775457162429046870526885243646795983396672627942077306112646860436286484198055493554500888665065297736334840478584665586906394359424495286301627641036253914826967608951741801639353942925979586242749635537867274591523569621539656232987990004901935172229736644493574283230898864909884760032512114504743283200099381732655091428577227215394707569340473583221043192975298569925867258511040949094566733008093051414311899561423717148434568047472694252288355850321187526104230918417359983026567077040611488712125114855007526991573841792371006662504776870480219836619716452165353795339821081893617118109097360547121144116637774355258933775374347530372510107071125425749746844016685831096136137595927972063603413123866472680462384697075141211727622946343147077438654032670191919649715551579314155651659548721661144324063454283173579083400344429764456916470006487049163701217372912869564402190507343958539351277629134966345252666697972327350682212966844856810079064889959417362720395680488061111760491196672513237537559687599758444691954229939107899845267605665005952662118204181760825903523152563583093118594704162302163936613362622526931359536982185242580978532070561708989593205853741639127996580187317872564134664607622243831697870080510228709041346018235040311894613243665975437594148195547771293990529637047771087235509338547879379048468265420878423508221833302008055457108489950241807859222619562742843217217531910884678202584481217399252827460099635033543141914024480925274461034297660340339444415673548193653138952409170056967327621901385855860247917530718006192744080817586325672067009986321626059327185293270725858954097011277419989612207541941567533674376872192066770585931271665547609146074458048981938116220458402591406686929346444775404502028181212393282848336348920855066754186353242270048251658122160947232048102583738687214420321722221793624765961061313923667428019110168204928127158346243991527778033890484722146678924229935417399800064436113147442337377238218934125984262691555242972411790700998658485780557930877836028514186687975632526524138054417447655519206700091962783847331013333609426078468946879342951707182706109501833599036332776795180783133322296740680747995232813295116544572168455091442289390797743561711868194876453380525210207181629363359176393509380944030845101489776344293748050570710079315716668897127553316769990332362097784396605445821935105996433317620237157113790868353481888578205323854895111396338665928521432961794665063803934469476295688149271709384794524113803075983179637919183714503867484329132488736730276178220962799616720337165251371618942472471065177144374076862870841729160256397609356325512799458962637916579468035542619774506314180956274372400697050726443068109047066345959659523241695396491354876113625028738638564766950869666407507436007891876623096852536746914564906025162001332706452282522450751242658006057234080932632893621807106654698836916294761273442725057348328942154652775068422866829216639255753136280431907190437752325792301644390534476619513280284980216839374506075653327649113186346086040657244758411513955292196546698531458077316963220239605716696816398467261035707216226539218334001125548702010840271823094045803187099017083102177080122740904549497984052703412289050869143556960982125892634858928289383686616284160229638749526512478026348390791239651064541885349240133103302934016425105057197681316302006021687233132386850347296673867091451051131111652355702454280626501167451588724819259200309549876577717536016271353844038060176722501416341545938880130097815821158117398101392818419133610973701748958166850061441634873552863343390270510531016981996113869669128070893861080349344663423011406638058524788070833059603643024652493958799650874231428382818459754090720132843478020087346053962311217638509743945800992668199304403304861679375095937496694219703521792027144768020224248858639502670402630451687766806000959662947738017932010979317934775427486588237532097671337186153251447547082282533070153091390526890373010048218160244878026457997205864871310064800267087190954004726855632206977817252113044393400412713827516914899602251672428546801360534892773525192391547683673968943479232187932060724674836053911215283432091498774366153368339381674227715448691169319846481379302905832128143436329213161682433549756014644808452319091848863224356935865958601111484756431258847034354687070933045732791976274125492891797307989862628536914654590805617705590862648446137043607706670115571259112509160483678826335284272416956185756350538938291996426064619115757891948977263635766734455458822760273465506090452765611432020108518662579990311064102671684627243394750251989958837430271980324710618838691266986600682237366472497052152904871201640719307483325089188176619888224650814451655422366322899666190095142167125225490166089720600850821408683388354706754746003027728972826894437644274600080676197198370076773991163608183493300494211708091560148100429889295771819589949665262263212281558991151632926121804387603352208584198986977192414558720623783579927852016811676393490602089135829193454778326809965063331311421712584856090360586309419241249243592947036145266747862914418467433237839711179606493566360928309027876006807390073349009227889309919375502790726997055697904015335190384335726630242950624029769209671514684574688240234067621333938050407374052212288361165170506135835384925381562402739941102142747271304050882068703493820231301454508867243259336556778373188907875834629224539387659525589406157435609165794737369061965325136493547562582634131077192035481814338122143875443688606023696317439687770558760654965861469225525541181378971091504250305790015818071869534043581866335291770885772687677717915731578790483337624957661575396483767349801414768560664148191047016731956031665472785990784276803201662155343240988615695137402109304314063199490187721245008456394875225733602795709893605947219350233655935931681996801690706552256547770650640918624357589715423901365695420843313580205491917899587037306006157127408774623950059546508268400770214580433272347054441253760125978906025690591820249159101852575581701455330455083875979426186900059949123252575302470405733358954314134129097747115297477752120623925594230412847016993767970577093627764957871381888739889937366523462417561265313395057918837062404287051548567822574399600952802061166722790233207690877301091615972481107142201938626309418744897276591472731551897620301890426127386341765316548093715968404948586403231738818307431614909460564158285647414959442630102800498024735586184381730833009572407510842745865055283306662109668203261142410863398451754676572768750252891689219287948301301392575247033099788134345740135969047336070336955242856533394114219298973356671670221883063783117041295196212041819621348076418384686064220142580619104116650749640729975727271267195459385693715942953764546061292999994624991661349059967736921157426446467352226538422602155888564823963353307154132525247586781936583838572760561590383271758023788638063650655951156641186694808052668527873408196552639275348197925351209582053566786732261488142966336363389462361612559760652718865386518424145613402817939627089625607006497326047128500599832040889965112660409634899884857803502905995786237297243193927680125219654348376161255184660542075470608543303927396760337790409898622556596359951756362216266005756511079975478039030565150495915725895067092631798900478340690801139481675479031294547084681392473616510816891213927759957725626403919406488407000244696134723729237982875494358570707506407612017373814406788581282938667968263030415981275143263484854180683572985305532458913007337637211236771165888920922039934476499422143711027782947455503800085874713260145951807573503560175052400304909039021164252850511813578776595444351388644828184046294668145344074080310201726113573829726927003934169161924642354743227206294891372878519367171612302000145448108248034347565480949683641725233921255223346611303652405199406828202300733023654291167699120741794651805392464410470499247774309751726370746304577563246248160671414426528404552818224413062149860315203460166512680004349510303590155890976029520619337442486118736496954814695535252285530161098629689694472579905278466083194691628893386031506826665385371332538197773224468539227647926357431362728668426552659939988454721804269884301106550807186513373276135555108352291303091935332269187851945310402119978170931280712725578264281124907973447505386676655840413134178413833343681859998386020956437281283820260795848923542817547445920250856084417887208749509073888204280769769915772338614714701547351300833676071776824929841044153751122974860839563796297516753068118382895416257780012130946538204384534440715841339009209219499369109617647976557305677516077510378661804500321184635823332966703889404267130370877228043737886572917225687630535502832636914128614590320884351149297575291674696965098802590235540343077073440274436226766274687371804993915636149500000493913960559875164116410531474601887146094686807086080603022127357896181957172257244865241712783144834622423373933050176784336377590597845970537056887814204262159240677992806182859489474971284890354794556110219886263704992933494807448187245166305267236839109161131445254076244510207736857670990927391886571400991564893605142838258306567537683313897290263253149576742540219613310280723295242893684021133258418253785678029977203524264261866513580070218942912224204065650138213029660132466691120898047869648946008511758429477908148099574728021458949668447387395357104898399199210866347583571145395649140201372901554947296425394910109021655717179471106577784690652864799586694352787603304738391175606109474180675370411143742218495380921444145670093586672027628943158169561733648869917273696389940723733481622560674945703553865845156257128399509497982097763505106583058104437408577480492351504264869739017293910417998701784980740582485280114370123315058171439746098730055100934412607130935955898757104006568593498252196922003296702413126927536779954366674054760046298173535497903135834497671559571012430030534116270474872675062893565822831806992429485998152992178797599075744624695794769719117948730380889590649802162122245140548823038320682922318455489376089806406120981198579582310847307875804566490970948675452061914307861886365314676322152093602552322345304088271743568068802620218001182990956575647651343845957256649088745353705506220269060472343685616081391495248567896644674016904525884326789913354898524636136419594556250158521960338212714616837943248806252499142106358909279533786523685723896558220412554525172672952170389342904284686457042725720554620258918441698768714540256395171334016545627622671583586270987796239045432054301287410551611986492464126338680905585204510547328642553359521638831940619146586298593563078514272934888902670784985983697689189049162599228266672572505543240455869908833239389392199644426243763416359779145203794017356303367640481348874293128354266133425720834201208572567189461606432114907106114484327364878108051265765088979095499271038264235582887188400376639083811691842560907775243904420133733646891847746538539822096657297818211036409255814137321255019145066772610891121134645239008686018927594854698162776488410580457871674615896480703625156576044607823354611529775137098390103981787524911610159753651321144833736297759990473132512934242928920285762225661621855635416640060563613656805923754096037505466209942466753649524017387601066965156975085857480620829290490710412749055424552550329263628641121923841570065954552929060424098870102554470033729359826051792998957516078318158549225196646866766248726911174563698810852333388736026805564319719078272918284294545950875566980604982909175292396213276526995536035786577156167816919786962888675916877161540757295411979479155351578091100998728934411434676385424972059994470378140526269144763022008341404698304585006047275213041491662115614417929188589588425197742752631356884896361405293639152286074707824410818294705671930731805922384620006296556085447067378125843260231997226395514062932069444033132016167169627480092275461849880942273226874034537744341140518864816189953978600960561740906514836838175519288641271881170023883645354611680904567075497180548701656032579907505183767467660925555155666049768767388433335672534846873003142512961892645312661119590848184623315285623642186957338508738646841722774855113332141835107423064574205120249649217179240684116942921910917704283582670332258458679534940400893909280184084679978891672484943740889892398364274771925231834539215371666720396239755863847176468331384791367881109209712795721068841941750988003204599911504343799564389997036606454628481043009899963412448748651315893269962089905389098583584078285465531326195268572562886678569098448160515180359529769457879000419663215732756959053492382649773067601182991592738026075397707719716709523989943057803672616622001905806235120977160108004154556598249357866442429530273181307392862437571022294376496005718115327195295545398737928937870540503070654797680627989584431157456213738273797167912683210475336832171764033406303428891189435704206039789316995280540169587937527762654049129570968816760111417491974090585000904100840220840057697504596026201014555699857352065897963629334823418231137152634658797044094040268460272687940680444174181390770515487435195225593552635646475649190332921039615304672643882305527848038480985152104238322200431689510580154238199884886599591643122302628312416903328771210153552057179719660227924863492262951783089313691586455367349598958979352030043628286163834021797506270928191879620429963418081185942577129578876675633120776271442208510405578917717128843809400679470479886805175223605943815518346250521479244513591139729865150863709562432200582194641420323300602881313987122182933478502887272245817391606452693392448470462713488841391686762059714471428616134697316132296312322765831119180116604984482865470974329411358613833475268084594185289093323938680880220250832729191546448647584393979291586328213886876496957654332600080933427547036637420507205365599082489144565804294870614323777257050271906000871816819441777994793853946298721938721314386394243433769414063334518661539779353393813478542838074993576688597130286009543202789285563902631726871495679761029643693440202199671229992792939861675307932181800121756011692617333625074008131827322072262733034011774250668937556883116552790756512926396910485344695335746557633490932848652425969783534603398899300126244371364264924720877406092896250693660580831262136463097802851563076838730209797603844541813266701166540764002438236329582487771882312603864908698426343308903656713870552892704268312217026699162364812225231871924616350637662703870832402454563591784750465458301495256806848973713068355086640850905345454351088230770321682661071451140482393031712744965770504222568088400870434579406907454140484816132227367212178808382145776346910494566569690659730121543594660931171754112183750582566853250136657955927536639357135183660626713750173076815068198011851573680045765127586807296993931652615974104054602412122487523904234746325869869180320995035877239018998521027503158340608624713139898855550639668581339271990061591355518341010861419021800708035772141392205949229284188785100574131880697338943478715145648148999994210361809008426655361817521199402878188087524294296223574537566966560592338682924771652520677420174780704406191793939186946092335960627370543533249598182515014305337785818285778529828464760094407350924550596173439539251015502585501862443393578792037775495691097457768365472048879963683209936266395289402445985323670650177509912069574251077836606425124283299007686684267779804872592076262758434190562764051895837225968459630454550192579850902962090917394053862457678319456938935566185382851846438004565684542315198530468753944494352960804465128815371292290960414815432905907700229252683891395811534557092616803150992194099424298358225127164314129920760801174415824781895183668283313600317044063753654537618343009134321577568079228238750652157040457476126564899624457108980962773044681426092259590765431221344909875242829231218782376166822045554556885033479613273342601593163314026871232890910318164615241224738124392252761653261332020257492554482354159147500025379540755463977931633874485224461872010318792924855203731578784522106054131909163637931128980306589387575084870294069988370712500056709321057092412689905814757397879489350168608433230818904879041777942413649274331440842665568308994847304835334326124995576183745657264915117355721643271505607087145075177874153548687643093456453854788384589641850085197148382823378851465983498301030882154540820315571732959099881778008489486605942410932318034446391801225597061968235739828557863448487987479224957862904367714619849273262396791575616885274455556105470293115283854615072149671566430304026361408089990915110017426452463656304304305643794766658010205040583715161486550546274618994075745589525496742669182100242677194001447238588956278944161485026375207697203007197692379917621134477039492583355763384186826195552425857343742671126399550623005967659711895127104030085808944211466713544746215734967603869832664134359622237357546158497515418061175323022617396966310687896705508842230857841687614369160990330979639681648346931080865070869361134044598071230937235649507907058572545844805821924937544071175481752511079732807203807470328309080587449909636721679766784238708487160934351254584856802461586658917467359608207198913172498852741701951773252887738985352441381499041590015427496990966697315991173534105818109827959956453107768020783620462885121104086169028163475550925366845564725953860638177521459536997355824505600393433577270496645900937625257071631401240176611502984646135918161792620169135967811336923010571429373441660389528709047728752311331828446380200230947204024286272166530251514320465337296825542831404224194683560854534715745754869606386208979185606933133015015869837530468918664181375724791710040529757409719414196806589091109522723927621041213141721045622188969967018348330863735263407825643992412262111846231925950127635391735301377085831441014567081917353090123908192371006974870018336639225929609401129240344627235525876526785165070177256759727194680898978075976458716994769667406519823857327199724220977330194587065324367432393749395501268534293047777024659428902965543089378764402168563287757822590180737011130598325484567595259261627899682163195825404198214316419625833102614745642213592093108319429991629961146014759113773360140623624224097175357629500238093566586853744558856362702840846677871985759684388983918210165852977612869414323575039133841371382403849576169341107554333351628735663602571101958523304247521587422174821626198412528850956161040263259077984307983722664702742305211864611423079158771243707825579250617242588715840243226662966369983489374206963104822765620016770322653433945745578501112031678604510544261543840835886430860309725570789140120953540153608155976724362828120598232225498255231716750557929033141029063570106782707858352398569807860493043941317452702791335278906958553394623971770688706802660210247934344240108312862956915797530960414863047737354893664157355227896172112253726401947462434210623154933949888102586783960662009702698274085037827829263428769783749608535653123204122498522027796360804800634527917930304110606385501532698129639034026159030560299215811277964813041121536344154903328593900952948273982320109789977261614661159714456436920219141156436012321330014536643575814397958083177802920673199650796478177346107460864592348761682627847463223642949634391893425054564909417273404062300932994254422610264375317037651614478042722405983811242512708180467921646235581250011793541136234748045369425101064417336354004741908373049091159691800180899154516137774717807356523243832178921770647110756389972167883617406281245597342062751478550379563375800171729018769849253270033207449366845270059319762429199871294432728255460356500379305583789460092762906113381030871351756962680446370309875353342499187720476804814410275478091613539525379940899068915429324079960691236907462233256313384708884738782517641054272029779496985733882330301279246633595107750899905575576474724568978985567409262112382582268873552770669193559067383041960204898947900970128613319075694200348860082914235388262332619800873123596825059234761916603707738922744682388574432498659760650688926958999955364307842621180000085226984549409257332599981480546259634494460816305957608487618361815105690482280428709696577218917770159475598170481178470341224136385337671317105131034834516819158430454185459881069039739366517799815973851157886135066661909267612899330774912260965905865173792533744340793048086196776427190457574741775766796253739678278039213149164869613581427182657513306844222769650062866869883598824415621999886495250492788691965512050267615344406296801418876325198979445547456834449878135286348138139179042648021962618785880839780235229325245192738577180717874988845617506284172520589349148129490188087669642354804863677308593157736920312869493258457585793439142177172411721144888486847743953217709105949217909049692558121562221755076319645460078453837528417762274784074614147630420597870539229983807957323017787397502071564509948322826285034594282155657154804215932268353658405105854767778616699378686862157749839221900380658494676206152620177633206876552965643727217093905024552400530201136635726095727154246566511314214710095199533727549793868640965511284989180216209533154371556190458092940787763959481260300459686584466124189453057208184732106609884100386085233549974145345247146033380837395755339959569190279066817141134512021225559701329245969280107917219574197939140448198309926964675175329985935810509507749430566086387969486698550558882293849274462406508140483259511535035178851580331951212958481220666078224316915370849246137934336313431623878209335827844316835955733253921314933207596713136473719543117462748038324882699330020603652473226323063509969341082074454156603513229818928191481110610678779790971833705703491802666850025501857741388298944282835324384471389798093508225500344906799591157854284750692233464477087434324545679783975320379311696581349865456942938114649789581254477362978885196382230119885164077181821045439581678369685177025050568366611951546859194570534324374026419701963729080338538767164385745248743471734985256654767067735569536537980460028080357095358025326361564530178273342102698559903047840503715439130633757469910437246956665624695634623502109820700060685246703484053372140367470583484019464829915989735859750466989237652179787029203615371241342631759531238985118145228280303436221878659205939650890925742788038382622614544035332272439642139628574689239029514543184004444424529726591445744161435982471402351715936241230912632649762525032251605623388324974128158489610039960985469889482956355999733974034849924212407785003051794935851408989205758369910133083152998250484211817447055964115596598077046341670160893796852229604416331955116260690933088265911993730491322477303242208415762775421153619792217908433941279325317993752619558795501412000778896724644678014589000693704945249826771447425123229644732989829396717168879441518288856874876624541171126533593669060500692105411371389135215577920917209533434067980479620670050272314935853958818883348558382701039183606642120677763599469187859845661495262116822663874120126403942874664156215680239437572777383689737503641041320735495605992185015883045187703958924909908268906379057178481388990698482859090812867029712008718472676228418346689210845909415380434761781741045692620688236765719614469422441719794806446075683692279759943880926172993210308925038727876467846066988730343886541713778759536674729746467799016893381385594518159484735780554007167602019315610513952089230020019754105741092918106246616660839378420326349409460680202907594408055782155290688345688152032216103451303767863226292667197339803658403290732328672345145149208632965285203137625188448613841395533976270061687339930150474927246948105079977114172845543806297018012794158939889585150965481005930424439081307158063411793413513890354817798012648195663300227325460513775828052132767114406829497415068617408090087323709216625092422915742417843869373799298088688264319010897944636931713483131043280726234911347273587506308302368566311197280309084233544370817364735892771609943401865089965495808918212826809169868350054998741133831443228866204629917333980464463407980398470503262794469357109990739201828659985316307482805003335784349181217253142840789765928839417669384223153212386510854310733164123770615601813747316567728208225325922625123107566244668231295582847082052868919948179520050832426315289491998321722807962578271600238674056611511076658245729787962035379473090427726325003819412114541187710780323680759877651238610247046547635303631376609013305997788508626147950902850712974235131243547867698079297998099615438835362656135358775786944865927044702478178279679642629422750341714331713874526010769897086667632273757865659161160294009977034998743854369699590336268332918422369431621255795989353570153086919358003347400187313897080375832485119550195123834895172476946153435425635753058597011636411427537117169547762287523712524618864351256331931404883052713976624296597805370976721008182677872857923435352307642511845078455270764889086037476214110172721054743674394184090219111700238361518071951109923839527298817663107045263922551466568648623090886536835867049858408101293940339700047302799186116357252533450196295138299959873894912422725167204107379239711650302778424924258629562798968878090593234886281129009412857685499129336202812892811362077482066223443870884439262512742947471478561621382162491405823373679215881871953824538451311506637664921025978806559053617774455706732585654990232166594808220346467561338227815652991387385211285984523870216035914822402570841410354718891027594912135264164910546053541417193104646988541118410721494248153267045728946822357483373990836869587773116119875981319344037740951048483332983530734471057790971070097385105417790834180207846392794891066251525608528364972521104288489840628010585037385580579665510981038997309054170570800851974556878164167370547950235350801305376362093611386565663606429157397362670673014752393086244738398007698766246326979717867502835892903791650605796538992233798720914097301683827549615846061989671722675318157604663729736014389945709726561034059015269241325889920905840354881201272120448761595716438470051645224910107191030821108078786588142310507767385605824848074016491414756298495188941369357991574754172189772896033973838018732490219702990128200530697124931537909157510375125810710134960681132203120912088631793130995365723103297680780290166721182200777612290895946170752203287792414788406285355704725545199324284813524813799743247705765784381322696621635065830548660862936060357895861981223925700320875303135734988792919255820746380572008021629714944361012905889383027546997521426663324642078245208607160730643287341363322497952796448984696504661382006728963471102031124476627682902411345673376738645285765392432148426260528322795944936120612624763084426742019867200525101999452215044240898197081599144829475793024125758396547431596397407742655020558857409826016500940302213423627593219886783707371913381674816907472912178315853408901246963431392422933697999178742203924531248535336675068756429780109401734363235632979715432666962063886742439525495114482954091319366897686152017675396817530410041711898072747899531121200572352926774095851902708165756294648303213254664770242532601528395894794217340592017760869469329937357943196851596613351693598588099234669859949470868328723765245641444439708267908942974537796176830248891583453236329162627582274093285090192342093992384622638919344403187673575489704040503336123643949830732119853267077524732578546360211816146257322656505663178982105394906556337927955300969293523650377374582510956335899185228944556374551339389855035542044713419612272370190080282949179443777911165945516743448100650946487651465346456604052242203131008207729661590220059854801724927092315682349083354920618521866083494151342434702381515558783792423950938293406101418086614298305143027807178384994631252563320508640247890941747992279037693778373038884377265850962560280567058013353177936755942845071721913823937943188614684170805121366290046464029354280502671145938504941582888106091608418966005163574698074311768332915007983861534735215643001202439133718306810080240256409365441875323633132981503104762139065731091908927278781453399358903464631598754031307283298982650128996545786810172044823428129151249339426015313187419768764443635847417712440777066070027140210091516073343370175855253494809320499025103286003151005212255484340349986544805662521316184220849891069977970304282706230687832063596741744012449294860874328466585390498724965999707942514088195835623425931135359990907252701624330681705940900064419645809734436431725691486944344724122601411783794640031612585952211030759108286811913322390602318525133137465092648976490186848878924201034705823090191115091304606518316795727801770905367924032994545883818830396448410345828207276422226603199951296139658536874954662956827554266157871887001842971145061811181160786623343052880224494040261209780120317379616494270913113816863560292954573896874445823606046586885428800429018191669747583296025190264925210414760784010398120085175302209036100193001401639803383085509331350701688117399315730519492057033444711003663858868782746063208599687864126734522129476019472853679202079813648384301303854903537034969022131591735397073033342479213215487597638919970742031553237042175264812675035654214360034547070945111768833445573802784350030292953763638371926342246776680112696004920802575600387660511538531625986708844415039513140879211462400711031331443960065979882147563657511266784965146963535992265239937922128428437023823374376780921026703579786582796436478629020343979481323878369293058736672559219480759750496396039285382729266069110829147902090007110197080599407709651626478584259959438392249253514371162599408362867129858696763301594818151729484441382181754289569851860766831224621997163924194825098316422879182343824360694185013836904098184131273688671617005863045613710648886334068809555280733542197858741925756808854901485658595693867560908566266467278024560989710120933402428410372714209241818330590535633518230660351947579542669641899560953082326628769772139487280319488996658394682156907265961888249063757507160275433334125851538080947007569183098612747552526250320933160073589561436261181151772231383846326139512695689312832803750396616618141023004308852285732179902214477336408067790367162537874282023825579901208424751906961762239125243019009367197219663028150906688534460879710864023732016125892788183780016665546161168147178631039795130665837472810433023246853690181773615970949714817973758639744464339859636295965008324584456879114382162448641664900666931925439836555934921816298682848259789543005001406537853255091119746232382635162722970861568819584488074106565328482358307077249923593832123111801332112484687072611225919289536784924739125374023401249290611872905759784633618166831865829993132942307290580610128286911928070355658864198157979318448152310040207885356616879844711970576373096334160660474468667842459081559460180764743079122236258459798473142241336974447967384173626463206868175679668285965416183021966642072848200922859750403735049764924046939204506981221530522500050832773703323735699698762885902542814715215631544796624577680627367878720964815716672372980930286731871236622331321799770100505986200976900070313315030371673242691833382187617385573695692960913816952552449979435232124827249568824084294381472337665247121785192897133331950653762699978718592907185105602290423089422860845051225500014260764543979754929664083105797251498080007245919626303873042982192627190658047519464644568764418572437261508205871287043732451687616919184358436419659861475021218812493219007735705735765171432531499434432718632000676195780049058575944186208261095461725692948550888953844534922842524089407402258535848701582666668958513870414176210912722491051407748101408948995996826735706609360459062168346695377046528920671084490174589109664649487935723954676308693273784359516297663687739337699288266438453130733515200258469497284560789103592149976128976410949683518420590745781643274536191526222084307987449183534322124497227389787056540007019216806926695514071226097142268144019961179664911775979710833119244316479940524172251055176634643313653551563558156116765124364707460326075288089167125672043687323417386512060487740646298217293646004789238944579440491516363980307225388259153403221193687445356081086458170853976185249947566325141529822574087775225643497320509220905304982129058885173313545869843372915613917182367043864794549961079960407014360083060517378486975676729469136202017836755325650355923378502299817003431016664315872122923886234609758393586729523111435269624194317617748875614592447636124519472239511111666900585452281065224195957771895817496578707982700833536956239235288893700475095656699146684931199993234858942907452248548272058509384008079353612892867807978347895586401820563175002288659895704417551296680899681138393712835994607032934769911710893155767072306687816126921953672167064829261052768558997999502428094107824977436422422153143553291430756130794198427258689128516508015832822945739014103891223880599114270947341984794614489248074258113865094684418936304424737098636938548521943614088010334369334392754890354088383411092088511595579295478788284484077392843165429476030020702900312757371251065282300250834143579985752322428402419540561748297786677495819463248657020103597628101859067312824154724861876202198185053229719890792192092150611736564168009487666338408838928753375073416236193773539986795317890444300745878612953457706507285427446395104384396023482366069054872142859102434514287364939636185594149463880679573062148142588414053391825182672832117461845557887186573336193654365057445852939228334630658845297052384565881584629422807998115667071884325941847606890688359997070293934752765582565604505354379234597772273542464329093125174849981721607144342512946368263145130459716718536566882611830844450666237906111193904724532710023701121794667720984956251819083016873864949829102204220720945217511887170464093591146838606948084280728084352416163805827867226749977062763362845374144665551464815404132427219671518355812668237992803160278571787508737256318553179274887183836116841386212695860290045301271208321683871690211852616922537332021692986390681627578796757154000284279683039199616586673760585648493879206731237020157805433240046623350151414213326825689654114622814793405538589487318986132958742312485658045598216641170119776115301743779603477113842352576485715864413983242492740251288718057631121265168931184206289764768988154036924150476131113926614247001865384840926134091210526628401376193307688671501457344249558221530616756246988452863040240459193292703777506639620375114607050623698337968363241013438267680294650307216718439729828597496609940948319954962190717699260802494057930667170398213429094029553413695809114537155440293883326068090457851132037575018697898618672074150346219158636732840056964513685195148389971681354867343656242998584542946769658270175041886771353621145821824299284622045953736745210462035019711132800659683391568420337735945891546324986567799891058638739833776370312511084827954267895695046742002863478477976478402268467885012262882194445359711878827894269607609877689700829464945384649776919990690973694751421019642176450163650672349887812344159182486269438671856073885124607333245775837375856280214848403092833392473957731523970597479338849113523774821303926388035166602020881284267842210383789124339714589448104087823551603579809175821978412438425800464124157973919119560752636366227816823965568027244428161542626827423451792856535584882197876956916019010670628806703297310763364389070335725503735529146353071626987418530576176463116619096847238031439602654103446230846453593829942974012014622033648010555530141447086355714820783379488250875225855790378203069761497698194423682890782883863928809011130678838281073868237813443111737188750339113039283185764382099720150404690996277651403293368763683218995702122059062466678375907583970189028932952860078686155297511371272213953919085367644943833309423682295478552952685990113858866987491686577399323775225675733165039473929930218404902513406258306480555960098354823888087444210882750313991606149039567794079558366470660523660094464928958612627779820230507722393854196590549602803426700210568234165324899732575379909294109451975870669045281524909228267098570140416209997999920647107009412051555617492649729045491279205833635910856880498265212548935160728490024758477477272408338124954822456114351217984904279376461399222212097391841968938551362908204277605310373981164943688043527534834492878946888320366289768942527192453711952839748614813993107053481511328940303898886484959985303593001872493385734428534064210379532250152752497479748671481139717215642353161096821700593860963880592406222329617575330703597246843011122137018812715823307609649031461157289406144596389716938879215915460394537609017373424546700178252149036902709260391999393247378045801565706004366536268989821586599691973776158318250044624949090406707370606603666195058271556301409210572916117633478584796382644266412114802626893205111053474230597177893027169990616238293038295102412307402533510167077355966445710536531508776002723256345099769906203648466959143539046507304567549762342623845448307741721850610935699516847197303056456245175104356799187983402393403278026408724125308120249097535140542401262738852741140845387947413030785365886312820970851743295584907621387317724223899091516035864973466114219500551291771478166870409690074228569436156953985571734552201267749227783313938711799993478610690199516587922292077258526404990830123639186217943574224749134533879136661823307148892769627290961957188085246520637187531868931433919375972489072684354260297790911128160585971249518791554235402147656122051044959614247735037259518867907727269220520509774058254127774398915840804392938000370979012453878056504993938027312695762566091416162894699493579705708528349906347902019873795341860446780249049000394442673506929200626838250499327074199125173597880126435622797586634462351042535665202626020039540795502271038732095356149632283878028591078300779435723914054084207728292537584170120555137809608076729696198262309835923377993200550150713686033450928601051679942615823842751576600285575536415624101957007704018101237917688417093870526432258409204336099765016422023167061342659352582727550227693088881573071077383184655826067531918412404132360564781406669073805551374081758941264679055416146840887562111942941221550210467716036575788239110517873198802999807010431587768873793930515652354058090715278402941467395304379776317584306609908684104605398567621045765739548402699467541364553484136285976316431786984925172334115318000341292875856771205729514816123628335088304456546977924934521918896314114749553279861550299863765064945944991609277434417654966581003201929697732377149366204906607341492692390394072299735870614547534749346925023346974287023770238264496450987094572061317669640268942326110390871816809622027718878177653536834516006151313211394267372807492306755504059542725389961046109087561279579001874186323436373626996204612365701698533216273271401568893341222992333135811999349284952897638360233478350672591405779514233456690160630540329460784245684122989331869881412417393334552580253326825665943909041093212259653673992864645131875731538673915377860197395353183359754330798657954935894649637123844263591297876187134464929313285810539823714148005772915911588894256805489889732528398781421326533125573966509780099155689602552231777499561553472325437108048577036670783858925926082934283416794608136094037665583332762905865081868708305364784746957050004104537240168627467923419498323898063477750380116345592770983140368657725674875989992325380551063961430983391375276026656547956207792409506121227335269075090537664118964427276496800749466168975628587477556039741107547776313834913457105449310663853218300808191884867319397902353706297875969494513840762488480208881529417881176214101322415616230255520997659321738661919568214233520953838270582796468246122709038075217960427528039254961071498370936869382770677341627680026646601944351466147650436852953572841469008826301507318544113883911303477424366959816790491444341358976355103426200477977648605024492291647200089638183499973077833967654698023158766407645250654534250190336686803087863558504086747502078408393157029161283222368539396854270808264504004121274554868571426457192941946195449144984200391832994554308884464037908786464236249226691319867875657814257928322831274150685317276420317074425018069949106233190845906818423314308871482003790355089379668821273716664267655704314566499472317897156190623635282808551054705684317612480712074763699837578086141004349064423438925453304210777232387242655472777932527782684937648796793088741568381480643720708640625306533873919275629621033443781588534934294160066892105336665189024315976791289401393235390671309705394252294030398894360493847588092084666765790585545719206868147930405565553150024516148398073438372260924829656942480538092479273358895708127920399487678647611139340768397223396789445374436714172664068025545492289505506288331476147558870639932214709422642353014994430223687761067162145552631552084417794245113253128814705615875770354482857364451814714733294808336532916150514759246240499803183199087593559920921027618575254067406057978709615901983621857106200970755447044602658976250474873439906462228044392187154815473049890284675895392559356061095169069190420284196676698783434739830233519399021553472736751521800048622861788532625714032863129107868838698300938432398003719424326525573313133606296716401453854726752159298770699143909979682822063987574108061702800735684155356038109484229616360359280474072197185959562154141986176881202679321116322173129711736788801218453008945380288293526126209677721819788662608169565778365880547516542602017649553825512406063878222797916782520389398545684742096366420355360808816628714161989594818520541366509881861838979064827729849509846553430188830612268337840165381061683590503802842676643442344562773930294990639082875432741007873717904486535461831567118270644604326788309172265223628735854820465369815204597197086500284706650197272804939413937534215920772781019344398821576734581682702282856703813616119444407940477971459520552983805212705946988852562618575656647453735847115932918069022519530763472920021584708003436706591066957536341751621128738804767738710649124675415196360804025151196405091859908822091329789903005656599189345446883094821187206520685679892126233568744564794782861288226119745178650049042363108944693778804652819706313157083277563152696599988231902713361320830816984462721268767836477674732484138350516498028546344449451264420834175741908554950988408694419926764333053189368492420678097231477571325986481125855248409294701920054599114198931130404641394880874072751817085579382173846173283424418255525465709447573372661988486941688502225868668819842492686331067453437891748710534649021427138442054314426399310079372770259458125334312947409534691881160097475039906426673474874338811128770801970834505134520350364939821159156455034457489807015366519909224080072174135877912757646932197027404621825639171944630000085682093278086618086787538977076462984664285398636297128435626876202572884911369335883944343960161215421721526300437327833740951376163661463484967529148474732588314186106763095895485362987141614915607028013607370232550103096099935739068485464587844983434122883657480125694326947184445388944074591638825818194698372706484068673355875700807342812110116151209697345101521262582984379916089461180855676422003705117512028480857750136187847620101688215145742479336355259212084886625457107455256598997190983862504800569234411250275518863841632604139789687097870184721041132737516866077417430953737139110346362423616096328132666694152091197119439405183663990977383175957283974769026265794450707552967680309613940786637354136988346155372296143236163802628773041842589660246524151266756331968538969527373223352914302849125336072862728039742495357606954487263020590666368808234768622153771450772137294417670283611216326074433222489034853061647341491293307709440507552362979771172894080628275936759934867989224671754908979452302368831870407507670826972351377022459503297559812170158670787032337598690617868387826170050493743614440246190373395126360770772967635230828184344953733505199061655343864669614400808242800587577710201831621305340412543417810445323092164308265184381368035539917021454802545925405856355934594150457196645782197404790097971983747944053254069767656798497693183811895990089006956066386261978299760412318106780176054496055611000321919355777097154858762090720345526748597218066682675183778036251550476880917555014115276941137563942746618521676471776278590526345587212993343734050452940819700307495405765323847776399121874335965191474903945366741558446548600834599169935142770274128596715442618974667424541985982551341716380590322561267576571376888546089059717686068450311919476262249185346998162683533864057395394509244534329057686304180591471801178692197549512254163167886305909972611489746514983186637419785672268052481451923874736455714168899207196048403192023931012481066858462906438730359060563569803227001944925266350068845625245247027674145680880258609071047674554059227759397059764482863045062942404812654775672845109001122467409483787141053992005385861237503115913976116163419155314394916878133405654903585243812768469403047991135727873787822214696605335089395144989240907816347668119425170438517922213207515971726582775486281525947498874450664115908813816006249359082114095892166723408154858243126714068117797517530369499932936778958954208986392577427200052359767121800390691738276316386034031221530870761887867044191827452479811858193786539897494131578072735289232204357465674528737388760538895029292542766793685956301794330010363854511098564251507700098761282831040615519191804907874214224031016830567311752134057461132980017468949847816556773230029308526181071820700332910611519164856488155442399039979714416939868202594952533705364152657732035811556604614522012402622873437879416695522640263218688237746979144728069540084513299521973492609296047373521034466753634619363022870459996967825862961349268243283520330124511414373010719494311557316732022707575742829839358571032040765384932461709946838647776314436391899543173537555847728142756137461317035023290420778128572135654226008071173431178412334858152439726306203723079319850571148351505555064680711871708575159047275106930620151841651080803410677721558102920070330197563228973708770643356057265202786991250151420661290330076366626635937896386991030761677853523786663704970377964503688663013594380494705587589601538136644721395965825192834591778580089235287796786055187437165161464806686450178512834358136334074487286414271225401672502048196528635212629789825302687220446378688621419681173781867800324003219776588030561624759903405651027369379567716079782422466613174421486178959113457914113408626027056793028224545776612388021689382726811407034252521256594578728504157902645675112997994073247238637429597654563128214637740055807489340965948105372509118028906567574692349054563152983326191275581107006471349803097835103756207622103871480904117493223709948341020499328698099542751751442711085488990235398554596559417209841229520743098192008672337417116766956851397604578562071665438162235614005653369455956124028785090769893402189436742064569108825237952768617666808253215785705160953597500156951237366547091321107533553585868451231362533532926439296136627116633120077153310257868366773580756851452837361635547809364138367783373743996925894098762716559825775293587562154743500463165963747056782924065372441215671254235968774302116571052170344407147043915989327907556380316158673313325290951930192658376981032481282367122258021118970420403835955165285427783830736183858349671614264675885243139090213446490698331024094628204976695796144404044234551615989307066221647736905326151733534827571030609938612928944811577004766614837506780264526840790677286461728149617666068802550669866199285789599707912267614956739129258748580579673776122214905311233897157785811903748557469671691602341127458616203850340581085313330113681661750158793633116330448629015882636529584628954343802772441162684282197400152708952888713901966687837593751560104837521057621425657944198340590291716738501610459058387699361846324805180609420385071499198038683806083664459311543459196568233319341359435116297105997051922481197004771911166943691540376727950854052574486013723931867923895321402367272098469164240122630537622297351002189550477377273044408685729821733225063866961661663986755999868287049158392142799105037697195291520019515957333990442554467479747521914738697382195062134007289397989497163337085853862625761572568622515868666692275553171237153308326014531838343036518875061170556946286789968481817502662189338396580188015039836272692985263867874063929235982177864314756489380193759352815261640809988637163517003962607772879435933231765746732808739259038901820938521648963913726351020761107168353559362879841692539402871063649997871937773557771528901512981615379277231624002595625664298629667533229217652134250688884713770542887970796831800427151063995111928551617095754531988086680360171552465003050505631366515175979850296228176209356750221489643990907643907076274960944669285196478826142201819293132668135090517512088637614999442549778269376890916403911855061144188610342456857243980876462084381155012241773910885130900222494280425967283281483429066419344656707975121098582769935966185803983167423578426114657812200516677431018724244680065378286157796686447202537004650555289646732881664943956450876744864366654064332659191115079517390844581240684933624284916073388523335732478843175553371280543390328318698638572943810126347308294627998055538678023213490610743467445580092193694131271255437588104834425018759429926567393385803547626354668510110553139227621488728708721263630856876704589288067555839144038635843076465691234236874172047540618452775236852450495461341723293266150536389317683140488583257020252153320693214722372471750321318145155125857178279717743511338225264435199574963514957464786634873585282171507941967896369352546024540330415511227530390010967744573900116800973159861636232535052661942745069271365045047952188285280823862739232820471954545350488689083388291505832306212939245507603142898657899762712873472962616141507029421665039495254501667533162965745193519466533514305469860750745595979240422794385027584682055472655316582393864833668961650673504605249467237937631098092446888242837633515187672036262091077875006409259088855992489124770400659814639344167071151353795204440887248063827842450410309567346460113322946890063601749149273062322683379601774358480676413932549337218263866129257260991154361819940911023051110270274764457979543322064839073316403920412533342903194590492892033034539976096406318040433082698300893800349263372737647606386823405314509079869778903445505044365502709428165344856778085028839460059874378535422154586569937138319687022929632681353312354635374943489689523776990326520403001230142007243376007964060733385067061311643097275943445796709324135352496294724550389064654795450674212249173678038918985138697717064105795802104045019910142455027473339941889345703639052993632457795951855540675529709804709489682946527623605258788478106967324065701184575188719321480427697156720189075998514285423746918062373619621428402815850468061169067531002588882638058278541970670146427341841155614982985522857158689440421545083651697445983635064047203869326829320855252406877449863969945614198362446587671406008426256927336447029466585743461604949062693775754980303073830112252370090241573204540179628038113126119479358443118000742691445114269326646755657464082928754996816854678713462840915890795056817608400541304366342838274836494710383489913497241363766659532811599483234161839633241143649247349469799122774667249847857155202066277542448654733498743246872287622276322328356591235427690414196424399573881615969850439124024186851810524013163310285936990530506921983951060381895189078999708156147561798070248839949160276606340633481592436797006361195279611801787503938610159956654372386491930539201754142378714307742293197902435891712040356744279238473397451826317523582705702744357529622747416239784357228067240583780820388473309873339889840324572848344847894119572188808348663638157159445901487828367453651069712389349981854930281395729397241429841245699950984429628105035531197127331974724691879683493490521507701021833739751337041728571237404568598529915743626149576588373556102985414654861215169273849815720632000291538397596901381009266824513722275338563161813714120034265799768476456641021534556420048987709623946821612084792578812485741752243381324530448662237250954900334718340445928308715638937331282489018054336513614646516826389122390442673283395880859315542504035429912115221687044510814521661478260193515995030256424391922561583999057360558528891473070880960687773466216829801766136482495132139154648533951336740931472569774349409435411467488101252834351786069673696407339710408703620132006511466035622993114470561723481346903489344334998193810799545555795062382542965957048770189009325517594869048755512703929130669097912156746178983998653082541399606329671771414123126466853095738644416186902272430714385193157853589924888481564568513119389450038670157866828448118435700680170712177889057796527008558521967609950002666307991793473083749407400798703321801537197036204081266498336263835406511365122561307323358512105063015795768326185692107813497500158776349294503682698276554767625823321142522853091316017304240009557875989247901259024494251299666733633583204031973039851563624607844046662482358774420570269405033878697620910974775405701361320517377544996023283818056427696528392365710350029720634716705324018059234838773556607415136900372166478684303410897961707150579067142829501026655718287426421378060055580491749752158287846259342531728365324356568597718986286088149097430603755735786592167975885495252575504516370207288307143307856770869521445236917600899624289825363449353920096521899150126391209658753153573313232215342236569344047531252939828064896279899971554994682060308326865210253394763032342264633887761473680577468752578667955758748940469040765981084266111736425162233637809346591700895089630015847358644812134093166520366103803934702302584359097509902638472111174348290938758102225966285757456210692853214736186724908439529106684928003910029566200585771864746521608081188458396725489998669947524134531016959415878047621873491649206715986497267228225897685308652034949171770690906755311688814982731299186594449083778241479291014451982432336075296765260460499400622174631214959799322392725628977415192943031824460580560216013621622110640888741222494089545818339705121442912997545532178844953577264266096984949244654707300588634840155086485537652508422792196701756760872865719487315390772807025047390691958000024511897556164963008143526029525925351461219057012125727610336905089584955815136670593697272439819790571134912526024275634738751217973603485118371675971131441916421964701709806222609229120613056000313466396380144945283572542821673237767301398312963424502395733424026223813124979126306630599498118030416426633862249912867926731966137192893535123383848402896140763337419012565494691454820635458340293169189754882650440832142245441173557155121407100281048117404814138983027126938226200835135223253388931734724312818908246703185567376852125288241621516799890905354199944394359927830267575961748204779601085391535031131274858226716056752461236648007757413086261872170626669834830360558677285818579744493877849668360298351125294640517699619720832747126881213234173764331250174477668762220575421469614123260301887529194571930699400899879883471553508838174932782912129820065384862545359402226918622429097786945136169472340982698299859330985658929218040983600304868496426694930917075329803025417462621441916205941518780256684911132477760809157682954783639941498928940521375822734496696646331241785259367194989645139276485823790688433188488990980548869566484474972944450730625086853255772209128098454888691886320335336206727209140837782489838148192756259356041289954926108756028507648226956134245798117998236121292736840946009053733164882368032486793186381467664565511186692115351938996536969655711423669494755610738804157853477560586702466653995701398269288359197984005990248763207173876995710843768996727632440375986209579211642460434800981129291926093186390935129346845460884032434543518625299896114734583746566268088831669849789429593433569900177942729672675694300686456591994853875149193400237881833516905855307059071477233189457092303834813346062828454903390425839613738957525965836716767649897588161413921490051795126227527328302012110677586724078274669699770561463747026473084741410730488582544229225131672137142008596867388933306465705168407762057707153063690348578470763115350695707581475070310134092991645253229110405781997078051777846033061973088770835013692170733331595462289390784475691473493302164896239077407552669900654072088694842797753807279652675542891413997125999302234244096008409127565188695511103125167714814521827238406920161970758523032269892196021621022997555907576302547782508795975274681948865412281530221021844173976633982927878076408902993440923287688261019881294730890173783467851592850581559145049054753831773836166747739488343133835523043037257717561175112986779683298422089836358560257983460386131960456574255027130373201543335542975096767114098375758247571462462789502821103417318625160568809798914647831597681360236036867934110049065423470817722493173506416831448454144487352899165367095770625237717290261164876320473531404024606624615026008232490603318015041121455708862419882858415633457983467683743057077714415835889200037510126575361165467668307036928896189813023186350791142398923152770792069350497059035377633946444925969965923177481617779156942725918183522800985534361224976332238568298174914884545219997673822346411377049645861814927361548947689713991357831141142599855020515696067416624453125118180609327199030988162497579289033398193165697354511906462596295997457336213318362124110598114088713853775334699709781383485962299651597420850272916074935410862011589697117867441994906589955437144709120877861490083757423378273774335263229326190328053868151498667531102947945340966268911934724492210121691896508967299366274820787883860273038435048895092929245662262329254055554132024438579232546475307974306059134879066790333124601396105064059122265197681912750357010614925512444847522673068901587375461499289131423450024192571570700817591899966658236497921452250726974803503125403737555025152841839719708561655270773456753312946021494657814927418099656315775122808430245910965942292949000060899320287788668234162980356359270272444164886093139307611147230843882525013921905165328517245861617374842787862184938562354305402548218482928413455108484122114225998662849455800574704391255580244382821451648076031841050999468792187593600003815995208906859680471068419622261292840479053245244346304885288088803437911270486484522494163505460151158949412092712609610611024656078195357350361176553946789349507512645098643862735492818908319416514284905622221815025559366228082746565279926266555659172713171258462112969582595234748164129985017102676468579852004989445432650835403518046596758959265610234603160919806344923796700122394999371835542909207786265080424687466528775753639180992610606270001604140132886309194616174334151289952220626504588461913580884049454951623049024622019520555453139254909554039572387430201951252903531993558689172884591111435061501217594749032534141699482143499008211224796972280242459855083867798553773030451763897986989455622587299265120850032252839775261727825102973994185594287383444698431609103423061228659215867984334233292190948883810237033985660818048113797094001214650099519191753966743019281873763007156047432678850741008786959555523453541423771767525776569388834803148764241547520271784382408464429338963179699531917940539335593574012480330994204791490208953490043399062510713977768075751518857386022013448640887332900692322202929133280518518801142429138184196154211065927547565414645016393512471023910581027501986535909050856580560559976863510356840117034524145616006371887033331291749004117188430470228149746596355392421149605580400063570441941861060926143763572678804925859413036384142683300473846660015558778399247299035103591913459143902399125559708393808639996124517046630378279439248834224893819741153344625313549123933629461990662976683733757394396605045646132651554773846715368732058446350619426188577521014239492083542255107548969230279316005641778270445831483723663278165443708991636097926516698700784859247005971931109174799927160460418291128485973414678236707027225764340406314201815924784226981368281924832725832095312892396062705222607517021237754841708300645666985764515584599038431196867547922302806429410600294435870869704784323879480186730484455663914164438112735656507895151514810987561975589037141069090479330685968952734503449459745627017970798930259499480271739201135031288407802752381447532077452249339876265114442944252776774859454533790973603001761937866111599978485009791570767179648127510873253563607950859074523264887559892016233703988086327136498565902989393886679740308708326967336275220537906740604726433338001061341631464417915100875354504787513519867238377483637608804932797901419306526050848513082695403112834777558482003168603244966539751331938542103254986826544975465599779195390225164634883221341327314346545928555188696562484407469527126317090304627722229453707530227633550423092317620057883016067016158192156193030464326296244177500324571794654285483316932451251573072604948684236730954098933663757335740335549869425205334935062003321846710618914709335196496487381710994577126209880974454635359978258415375578428760560837673280958638794599454481656976085602664210950074640884917240078936765877494327766298682875283169801225504294991015649507843637457373213924081289795194890681994286805959372443367548553959671655057268987227145219439362128253832592124354405134612725655984753602373027870602019379815058974273061203582767132967933475488330468787176862921699448830091172190635630128388377706726839079706957287654891968033660948077114626929519545990611550238179484863273242114721518241881652794407333137588764269896953572339017997247536161344056452216351156512826389382100428527589616322602045694383691834762168892525843463123662329430482167251969317026313651665083805158424675400146708273899172160780032608412538869704857112217035111801052180255911739811618462090680916633485890405393268270870965202876219264911108678083790645705043241030826852236888975983509948849430850055490714857878480326223919548117608315571174689785825013420494087767380264803962366015919849748742470091225668042834347018575146545433163238580369254352017420825959604865464648859441646087685278985945642934267970344198996269187056879631208600475556782452216996361404421982909201955436117777429346964564823146535566466707640443367920968598670612034116976984857063132960258780039627328326081927293292767844847617079423288342184478469180078937740709680710332077972723094409037247747793937726599432511355031920001820481864652812547194876262207727065277856912258774270964496396379065779189084209892312650887690633424260978654064308138511001222869271022345146948706995720309309750251079047104636264419913843084524048863989804597799736140728276452530186039428278703899604304881119543793784048356350425843891547182188779220561447660596107798460478059475241100261503598496554520664230536004498483729865488170456518391065613313858977276884068048250600245623494381427211816869162095878575742909352581577084959357260022043097627722052650299054702451268203022159042762300309057254636906408983326938776579689941221107405604115529903372800425832377476527220951370544859528355095655578391785583077296269443955189495037950517662886359711452246775366530784062324253118219137595124878535155198068253121894521505492713804831395437600299455034131397916943605001561428605857404299637218806342579922063769920400320184563828493100615802746123981774905175918515090726637010996766436827495009407220507703530632068850473380931313691994819012482602549550954885139999814207653117680598623608587669278221046394205008213296676279667326628959001824243031022849464569811043018088991872705224266102005478158658515431183379059606677937891612463566252147312639665476302992457056729206670269180735839097407623434910667326177665658879303975549437329756912144922065156884353261115495606107771477679837121422878555132796926456594421155646896855981688326483310112589997803895304921591099441164379261733937089272924654716109392173230938845571626288562442758965085978165360940550701580866271774717039925959573117718005655274030405692559803249315571139878860781158710253013417167615965664809977249775122103751339848680434859107571920002964345335502075388347728345958494360653426005966660965858843668670098783248189946232066158423287752822751372800288291099405550362250851949789668038367252989547913410808782428467899439746133116449886016731622903105953040836294992967182489067653529924916467084200258689411913930523192102647005993593488848215063216238919156794979666884427885411544683166765162647974440418530863248196392006565602259297577757397809272289504612523178689606563885958533283362748900048161395833598856960668962977900949404995360633582944069845966550766190203885897197042544773719029224004275273906690822522265348456356310764905980989302309670582005778400253352480088626110274168591727483827780113920135720665004486202427973754449819152803464664191728673131891023195354212238014557321945801590873665918687244977502372663853858936851056105024879795943566492970393543265688713329604029865907595549490150305746023267960984816859099607470259593829859976087026590135657004203236983287451188272691695368525028818488486504298647584348456920570097410849282714808644644544886113107050388915256502065527692426731299779079615582241699061635096592314393054889264031669524579523338389657709278723138291226798584151368067927565461421777684410613513022662053065844088319532862082020565076408882504273801496617078099886525288638134811088295889508004350872187001443391006874786698633860834228446352376936223912090498250808698986491819548698785876058434899016817606993554917288092857781504081841313955270595760127399142560620666819503854526564937375262583823012477199727571420112616092130890874622233000847619909047953285659345493443763400717671469242457831067666052514762310205863205628661093930863005222227835659328233215525365214684273311870723226649470259139764485634422171034476850849410991322961028954901573216806175827950313342790010745363647843104302126313627906673893274045351300616401926174615764756952137802198957209403394975549666941251222355701915274965602767202022494605690128517193102024888043268092515471890590984104732824257466332342014430205803179892736337902976861756873922194387269209718533862025413458260315899495944963836681753455812446307506935448348482288921539326897506362545351078100004075380253042252724149749202319480188544627488300065868848070733734416922666072259245057838026287957990828566976250655789423947263202417968221349792713456899884703908513942863259965465162657875883368258651409310230208436322198937259408359686462034754774066883305835932000564052402236109394609830391080659267150836997819224877284445687897208746393746095694023161714915606304435495715747233795401534519109658611708004763366727652476308453116347816618797705455698515499742099972357835719646275937892036876556649929512901003912857612477240533963089536195967274055785927783418556060102370378808212839482596286740066677772449949094052692701113007935373409543518725578698243090595387297164929946673926241906529227477731137601429437123972833244140713423702324251803757113967749785648078521414938880980448205547791631062817354701904442465661877668199561252672485554020561872551536681964583269011650392127988449578212566099976920200837413990074664325411687941784355602648264677307948971441172957066340079437808316707457162477954739477980186845532513205279518735503846916126585516858769119193739210477698360073197292032180440009759864837432944370828687805195856640175220792133146327211866771578886950688655839931547514230863795646562701633418917888194220608633897176148842596349754212150972916583683906811581812563869986918521015257351331450702363388885938546330440255498128339832751762751970210690564653524042031862574872530765808190382770794461693970129223919528160534913137677651665750365733114748634516969991856629562910464972840856471990261755986922289137681006740570881162046597739976353327583221725916839714524303838901474804744988902534630246189804343116820819931012901544655519743374031019591783414894953134008863519543634450127912595411403469055903931482671384459468124463628776936166202110252244697223653497212110841448679519172210532740528851414601968712645737337256595562625577201200868795759658300420581899341751917692133480773694779691891558406505711278278344915731911083067223653040293799811617131844385902664622061563196005317512971050288916143283982877132940917427622905041033165438922640583290021327134602470749982311463670292628103752683937639531969272096086377369659525730407997879515076696810444993539144108298381925576119473504054417859728965303835219046161466468693921108003404267713191528052512499468533014284082172728279695396805764614960654484208935017447200144477150789272513615152729950940491889914820365950552083115251031141549556520593956422097151021930950440948410722527209168714010823385869720976164202362970028129838371950338735588393442477377014779385600236184541248325489826107950777791716965593110607928095673495770896302673693634739305328029527220037958873302838489828377893592753816967931982574142629757517326449855511008296208604457706139706307730687081004547483826918116370186857890442009454777094465762873759066289355967501663978847958685321086564545647354196910024813935764737944461384118653189972317702288981435292577968744240834159974230119511667446290911402408508154858862202245292251075147191300466012227077962501852786736135649888108926133709279875669593198086114404377012636302359170237537958897586902345076778226598296698909647808678348713486020705899156278896844540942498395750368791897311671422163536668573928586292462077335696357643251593375573337011987143665905058882107051320376635940434762076502833703026025597864338997956747317109707379560961435580547959637514290082687483465980196039616044000746719595574335006177337692476583725367555942375313995099697405932306021839657467449040763271869193070521211599991668343922566791392994868872611498841346123441862350920631659536492569811650615820949364106132843326813127244208186616878731510522735951969142732433720021081743272144740229215388898924177287528363370386812400563416491011910147471413187224334538388910984156422835180107295795422208598683642314181356027442547572626794861525804425097981225856970984763340970696837587845853182892536474908648539504512086266980716765822325570144406166799307940264797854979822620031179214744003577600150697114915644717723617209771179455930357515338093319740869996037410205185201496852105627338948255292084975086434397689840144208089523116664145192348419293473778826457858738225378174403937901172691199210066228033078061884100449660169890894977622086870695354914889204552091923884406437773724123195087050221498984975326926140978753424314410212358646461953525408088537415282954856212014615476543264569771904002589763964301608885212054264569416724105998279607144268139010663155506615420471625385686454712857490930487841217082009141652590521276687246660520803216010247824363443336631502289132981962659100450427454060211321347201206559131051369075268320288615069209943711769883072698129377785177947356866722136015035093628525327324597726098112474280397928355947031298438296297934774653261863319355868243257898143521573340025577914940820085837863244064874784745034302053191923221168025333939558668895952946012591279617210150057757424796767931336982500756964341313903288179085756886315787204834574688795582022515796707076504607261119559214444903302214563702385463442429534755230004616612201091082416142788595954835668285163333231278710518139623606112832935296126256630111755973164449751370693450396062172096014459940510708286002817695034449711298024159258433979189793183392013811617394607617374730925561122478619254691280105387796363589427930572758993521438627160891486517535743975717336909510132917774899100093142985607584768390509357580521342893050607977572447286860990416662621044178623716705606257846769295007710208686381932998398385775658165384725516315742898095146892412855635029284967383280096971194779057712147251042965741984951853506129221939400374644608403236218580881462067046877445602667377267800516141158534747370996498605389671767662036768686774814928686189605446022645297537243366822490395605524486383865931328915820661944769338862344922542477775292630903769948526511910382243666282846748196470711504641301431554231025884753804854256179831179862806210005104233301029210735546731749358004111942726992703944615202585046460512701406696330141733297832017153350614449044727430891914586378947037949284220628533444950440395163025598215266537611227367311268816951124711037011487927083781637785577493168339325194497893418287306336442557523814376442170614698717253579471210793321147995802947160564806979639371275039146281372696843501435385010676844372503082880028760033264827757092415966813555775844918879879611461017478320738292165665428328075086535458994063513811232813398203892295529535510505545560329729322833584094655151370634539869948107014301325054127459862491239553485666778285242158230569431517441164675023841171888614474855748302795142614399682278741893568761969626789614885738781219461948429777583406413962253731691274267517168949913418369838752908820810357284015370869278832452235551201231238089841788310998610285698612498706849671189900021227728252298308516194075957725368750798573335241774131004459332340005632309375573511322821030993103300492485863247551668081367194564830792017306533541738733792999226136303503439204923859550129906143784371526410668573534557080746047699169889801592620556351531093033887298129735892784192348304728364917452261723202197143494956042618793720598133525167453886981396591032506995427677938144607577027261940555838882230102886122017993062475627816306470635796389503285786445926812913972684098525011575323138927105146344345784122201555203062154532828805553096994206117363431924408258554642585743225099908054899034084433859543446144946633277456618391566179946621678222265819205329220220192157136999635707466700963833587664949329858299955211250361968647182368793016906023238181449851673526755192561068189271675341495516174445907652390192436282481055848868831621488962296175851386330429270991423794987396786033730271851909938786766885350575177706388384954544112352971248662065123371386959548178179845044277306576341076462038412475867012232445717034150131431518676197056485366158815490630998091331877048985907606144287828855310381560557235727255778951941780673483053136323052441762476771278419615598290747756056877454714298760083803527005695906313501969473230078494072776077607910073039755817112163040964959252896138776599380389961295519251423052766388377042277458455122336702726393920793112045801142031819221787350961597749446500291336064470533794561317801168975154998029342226581882694270022187858219681710158107579995590490880955777710730608449250496724696915106941433625655787775101566752781186734894637199031123385771033880571517753831739956762753920187523417024248774075363768988183828874471165322642193866655892080727358448526182841043875387151885627168623257521448067730215321854774420657569036727189683191338114352319733199826625365109126719131822355914933866824790526672213693276212131363558244081338697840309308613850436901798028440900664393724635597642673436412226994743441814474586468003616114368796801498395034020294574277258204096189753427124816281543802594506778112460036789545730295317292701727600902208609332771826364156023547696284947419430663472664248282724330752691903872367572485978495608176674231237870962081202251534110428753571152690188056719931033677814499106357736557033225256388122642460672385184282223695354041537381655220274784484816968837416663422328993972109095674114490126795156716024827819703192491962377426275036739880242719035141110615693652631833263324644816603729905880610325812759992449544302416842806026780788499089027688071657455333441953076953218443132690086112305858788939469962349059890216799225207535609534566299454858204467991006618619034215106169839084497536098846469920038175234799689477908846653517874190331084980218718295364257144383723813839965504044894194053544555080743470002693778125331608035669988750446042654486324929203433054833585112603779388152192358898923073008475182905486810687350624169285906882140761527059291749927294102072565958898021309576266183881754938929996759033425000744940779822026695743295300973760671648445388316650889084610816979200939586677298358457000323076266305891682035963141791986720004266505822210280285381743292738920168128762649681689091610687137995435919785953135920785149640007965191936923538372530856320400308930741875365591008685498184177275494487270804081039631840688558233876538105013565229935789195058056081006228821990181251376774269412972929317829654455652352104799899280378828185620397424943715764639134750054429628050785441693597570670959795299249926538347038311876608225201200655311002631391882006755101868167323988510109622226394471907619077744159187318207338830453327403000930121680468430559477090942388839128613834558642691772636316694185725888122331633505682328120060403094055686495794787707873648655144943206748553855660590513633416280615708450602871611884023931005290881175719620379296974207266297581766781451440599330763649446589073780811727839949067433582402489957687744591264877396676280385046551012374824075858789318342215392324811739593057361132848203576239516179999674953496629525383303025263177255996492017382757155936417599090998218293495792773700168941250211831661369192795438314688314365166513237814841167218144779169615197474610674303752920428290108885800615897378853089591164621949031592775858532943665570476805615498522867557573169850930627008223777029851185981647896240531873983567234549382068349319873285938748136994070969979109863482930559695279389218691699971815999124250204251310712186860101293280723298662034540018640892716633331446655687969042214421221983276720407618985451155285838315552658325183974421782728699826398274680416114858511369495891205782204600547982656186705927996116798476327827072823988273999287012311029140195185168253340588613293134323375609520636374550537148372569606834553169423216212274192126962938951008042938123857149060393128932401299442675395867854607999365697578225862547083697194195510455142241030295457609238984725944967454031339272212454668807827824999423608156901117468928186901351133609384656018237832566473933775764416827182383356582957471922282722558062643427402358667952934991447361038366772880870259429157931140121005940405184408734922258839663421581530659296485612442547935140160949680941944063855408165477722137594185820947418777148896998880963911094472260170495767277276730312674429307325093053032995131078371274192522757827683707474745184367079457586153968367669606842901506875930506580584172213637136643563503118622462877280273830224371529643744715769713164687682970329034399045165963557441296032192401004791763491587893441851638708270579032027317284610022246063013850101437782198235652765606450550253776191683660627526809996769976673828992766366089124114437878270605752314133712951071050392010592391454128262475780550638834235488094084301127422314490342331581026814727117470390850132153083195161345357258412000425061599037203795330756079325172158756015636462827286643467557020051832020063852370967409989315653048650645770669941683555669757185549702629987614114870875875170590836396421713620439143190518303688583804191021484016773044514862844324009679132187554444906740990199891216420956929875941555302407929982894226408054702631849709453756730409940815815989065822007640572174289426985056172004307284919308463409042180505879166106617073781023997339993798698476058180216477281204474888266095812762960557261038811868938657857126770342665101243680904629003697634204610950068421727839849097160212534460196636276192772200908679327670430301694109620886164008683969981082666165336340550132894309624370513643641419925606426929585891225045838335881024335334586298106829298693382200378053444660943252995493208612141132455988008204490663802813294014801522462098107532581819945721802400839059395927331852835611490866559467146170693767421705096465851200654708404247864840597100549901078869597253340629731957595937828946188192428098083856001707944308553503635012545080516188369580721987595968990519716421287824891144795844806246486486076542047747639988799220884129976357207339661459134313242983961078479080641079964565927836256705578907337555021788961800621337414741856181685530358573309441258161314307666120604799802473436044461285978270081348278545583641888207962404827814685805083570590145810921972531798882318755203742178500400260785031473331274956998978657255627481492705337354737868734577852885564097477095335347885192157329361688317063853623566316767908354433942950323141027735900044049762593475100427441456768101560146256278695454264493099047318906829619078820130225891784760486887475598135940901283267654620805236026539230191627567442330726541371888891144128154647141835253758739193433867356416098781983466865529033949691979034601719936523986936010061583263042203870863735873177403715867392796227099704398097947639101575075318421465664307232960091559099850404504265190162316662400037421959805746611922279863914574906597230609769142614783743637706907332094449550071975970947031523578911097925007538714740264207147274327086078540459460176418613161721871935622355466729758022204563542666519292284314984574473819543306873073502172530874114237474610938769106148222757529206120509847232173875048547696480975706391696583539610843082664974357310064738708974620207320397685483151403458822402103952368116397031689010359743487832333295835705194736362273223839219354252715720550255058930266869819059429957168615261530476483108997896019189875845467844489498092898364777016664581219155598709808394669157452697075505381989400120002733384947548869845260601129026390920879317181199516693920853269749939423075966943485269699435333265106217825194045852709528751077072809549773488562063085196102676156724520764078986114511322467511643454492754606962198964386336274653604194667742331351669559039274473029087917055837702389774857570019281930465771654072521098895881836725884370661015989523349822314004459404402081709118579274155682451707604783617449703453755233062424596307857501114273025374623249007344334177910521552614097300526308649568444152919935932023317885160253892326826404616359612050783512278508671543848873617979364239725422000472870834231831731498928327100312549593607997402739221128927059898655931576399921441057936797895831020653502733281509261607019453992734756869205998868185773021710169666635092701932522053162239380538188729178867056167553395207276406751908696560510918240916344526216571755832847493728490210015984988378719778640879674621527370183177170184811577387062767549252536067481900631645846953535620047823330872914254003403192708544615457426635229003903222668619469347853981643049633183590732127398007997238333772372035980891111511245282557573134427396705730507289900823605337867090241724265669460499848939190328437906723758245049415181823638309704372727627270467888328320661014369114683924606197112424851873612233486316981446316017040166381076223581280188934496504025039825421154025524439861214105629679849519214102035810759616787203178789589935242333224269973380641893055843282702774441271118723519390970773364712780878552575823015451076942589554890051934586017943148247380853468585340532962645938127689438325723292172464456883691024191668018877501371534260659648922022308358910982243438483974048008425754135512011992634401451377790275104562706903943717663057241635606479360727868128455277502456100877450050778557837793380192347570624918199565782274511571042381584675180287397147678649595756335192414553755835473768800549275815951309313598649726525837720600798652191557019061023050473964111502760294554964182410277509402184414532969539639420953899676317985548527655745958688420839776069777840795705275676052823322483548364401580795806875960282798323879616530361382711211774366967575789726757783804462979996972634196991778904846949863409753868126200508446301617457084520242544877448448763744058070668177265086896452701481148336855924368464570100396445280822896326644955335299022018708900471935354860607576834042222392456807859513379443807022346064183839354435952897293122194413666812237965815800187553638333347597319361949157876574426621475240900356105809025884164248576701872927844428864623343924597075321252531309071564599524175212716867833289647435330637771065730701860274708015423722914614360946110215165884747280028284646928153301519107533927609150952075187191498264661797315510127150722183373325225748145884414532615780928198643633786219329380329767490262880833508904779422495950080668056861087455522101604306006684644933705804317176753012277695119657632955442214156597232051908991322683143869987525276320883201721574141813990036088462289344769845834996005856004304217053641338787975332336299611853983395824515105722854764289297945599676836152274719750385022600948581976237257648977641597858020200393610595732989853185568181653097455967204814330744944079785790647896734418476993329334441996791924350841129105149975931322993022759576803453503478265764829662239596048344508417744054931127055612217045882055245237228576956730680225203465350403891555466702243511032597843515370838760653614743959328196011259417643704122032143567945588203327789986736209751472837761605939791642581206695193803354850925723940443589204584882169085434262873950521476248779715473401892753227948398897733152157587392382191326716096056279979955576123587927442157880495400120765483012126466773036406311100215948947911591620701392733313622619037949437421599267577131682990056857590110353932558946398858511599963709122430610067665403909960307577865406541714489939495086868063914942365308066796580235776197010135212146869546607955706927461897397099366567482551161412886761733525716435335674740012600300140034143262295615901412613668512660052379746273430354518122099505837775274699082421578513073392679114806387137258405875452104451304858402126239895492575113228113036723951075003104637708569307963024068601197891172175082549928574042875114724974467531664489121655604214489479620728843009496248849519307978006326717127493411659718629250955124587553340852144769796730725597524869590987670157227683478545713336645866283632162151373658902524124623266160490042933860249423159414513778000418379581676595996155233278281212970375868012296963941581722416703431306656754212246234762571937298110200541638284275435041910381052971599645300244788656552303898726052096219379100801352709139080826237527104727940586482770214638170048155272643503349952039183431285400973452026500249092397412010144791554404505167842504735231497148788375783199283176731245831639235615578103917628912529694320303289983346365519059366846042616998571790419774834454896064916430535748556204076135748462607165524511077532977481724426861837171015154881810439316502007261496993175739815164244876924923928479086565201916333546027963770958517102883608091438230855936422384745824461059115006093927343201935220362339726162904716240781193443032944899480282928645551870465042546872560319245219860166094238882593828812151367284911690989415356446815041232069380727896199030657578936536623214081330469509462013546565917252084165840132480201944003005197575633461614654118009082081119392784672838624670487840899795060882072625437904925505327534647677845898078666371808456534385644435287259550794223798993761249703358223864878979820471103345503009899493752361252363458295193288583025692968329508626584420385410848407436568697897540959534028903312430765519956985586370028110479054379351842143595642850706121784775969813165474226782000624669359558861590604937209873130334941579669166598117891701831305218260370040184128384604791519945138746424812687879780604247188807847679467342574044967907437101734769314742643992275350773795953929250140682999416436154503981882601533634987925200169134797292772232108286642344089950002995190638702756215222854503462302076751893266818215274987549971869057482942180597595108955530372657964649198809642528702524702278374676063857326294567539358314629301605191372126447636017243748883244079979589539723880508956589780440849909647774034689309091720019210847240415013343341578594558991088823681860556124334032225988269639495784688730214093049160905194874015783704805580391244506738987806916864307210136552101153637530788153228355198781921340495122437110559566130091819323199279078542414045652149584561965600878404363991515561788523523615394936167088531372979511501886454101796118755739629568642357561006374477425947943065716493442393741721910395868904008993652808354316450788220514266563815709921730301715655751181899428355881298317939298037153097886864954005087863457346922650803044200210603828569099448640651245982472059401204461055563985281035490987884432565463885728674519312218661091664161217216467405852482168738241398356145609110039054216417551475983181605854005965534391505096464507911152403411596145995092244677013767972327304610106886183522675346217476571923897791474377450341770001641790312693141405650345969666568624537758561066019228794716171229645076825416985324074153742114198514476012454565541677339341410067303773664325393717529706958731163865298162126152300280434818399005855813059582193306628158457151443188593182898290915529510458468503606624810018137620355159218125896442638005357712892156664970076255012136579596834982212204467852573047115679448735335288242918717701012625453056314999808794001754121302165896916822702543490469870368252232660108525121485306012137676580534027962111633113613137331722936519620132135248101371521165304786776940386623453124401794278387658791461747892168590708188189288430362282769668834139426522309034653944400036812629650052919201525235947092182967812989546572468845531121629165831420967460913928959676449453655348599056544612277664227734453223895430740192466162961516320889747675432207720991974483331292586830351679799485339256427283443571680133139186487287691836000389626136253995022832736978361245245781529221750864851786485742578288865979997089162664093569958171502255555225972063046226731167648136178605073761804100552435308082458324604943330489692785268638675167288753174621632099085377684559300728956812552802400335058614453045649637370507670129610915430926000054195744984637246278486593996782505957270392050223403424701721131467634447441604772024748691128186331442194678065459044760388351768108882684546605566954753237071995868541842376057450688683495071857835612011665028184285858718851603399138307830679424152538064661191954070241527876028939701110704129804080018817408125412315326744619588509469568458584291014573711968856681491428835847802354590642732127687593663200817461148907014657836571399272675088679302711697346339684443534043029273615857798631400707350550234438158941068411897131946222848114211009247452792683662504215517309431061187402757655530595755724210614041697202182138390358043651873482137619890067449401747346774792250197361583321645064193799566203443016707045354554202031040567790566543165002841148099749105779136605298940591899949692204504374204455579271795459632671214124196627560580556129844015985515846775118078821588169744131144099695379371374071170055426301466607897072680796555654695754081524813319970589089763961771837530946689252807922982997798144983866383286123529192812047786412202188927010767488820994788132063816641016325984134892669816123722683539514127250944457413862777887359989046638581775310103291110832795469170964486970823261704458731797646867524535802247315660826723092363629703100681593608707773552475437134517645973623169426937212221439726814741554672783184709159133577809701867729343459387093836823445612326467366156184565870141917609461507811449662806207094325211167482671178666403562401299685172722763946116662462731442821259837202274909388069084504885727820331776086175476285634503407836992987882746919169405109624941081363709909904941210061425412649000191568779532915767841205797675951024175630659458388492746066246354763918269834465692482259192675644400844756848398480134275654204833090874340121543706801615263745188197433399439052286562684786666351229960637709345522312317644697721001637383146354443366466716236909836959021270206676336397513235812365856379659626750936256674731726510293226164860595517710919396946072468289907386861453513626933644831581222306844336483366131934881563176267582886746949965255576063673663188834770131629995714885654752230094245562732881512091691376061135442307977536509225016035899637226309764803504404933794453372566019655067788037292350802451744523671256476457031381861543916699077462435722971415864639843264848759990239316851873362447941797612474078612515485225517673197215796066587116544770573737403228424935570715520802829867696182951991023591884004886476816367909800756566075954919823405352478138383275390672988635807551383250581702379882389895315018673314231782259801294291074857798731994383850280001225346744662382735316944695256904473791525634654070327052723884986643809590602547075717602325585433149049657016670010003845235615681916292687156298051437663531190788882947405836261664088930165495165347382667201392847145678297625526510078091882439995664188814685313895121391024492919602089421332922296243248735048952023665088734087453251913897998529741094509900698977611575753950210926973224158220528671716113575186920592625628856568592471118922268413084092229967041274256121609699737800721432593598557232002489011591613476141260841068948481053369829395306660784935550313190270726939765049090844555150559450637924547458671724532032766599027020209032827526192887143057627571297279975922510262652460469445307653542221177032304975815849697796521581806564089227340257995731247865311188693027145176730750639652055570619664559669538696361332765843120180833099794768775568686131107963273244253112686169439237428490598898746527029951709606650243282406715555137761881715127363365263530554689909836572209524012814814476012551629923622390974400602173746342814008167492163389793745159009817081604710995179193022480966720126114767170947039566737001713652853615092320064329181105514646234860310540996177336432158134615750257115180087671797383142587544293842419924725132269641133463396301304606056116390340863339994447177418254849386168267118896847708654289909351281307438160603010088793580144541981539940804520225244904124413701789554518383790226038526388596988380174956525310247681549185382654340203982786504699448711158662027090106342473434299093071370801814934167965229724870321298781459438670678153357047494124608191482118687743668590992690923509774158302999764584365983514714450431417761179830529617336893687360341831185275183922666563939600454920921592208361154304009310608894825850874726896820292952357331806949961356535131248290047305579402017294893678934988943091584733005269760217903780778202240538140883316967954091799340294495163775456992543736200899764728800593714908731002827800983414411168818273232750579811335058354400622523039049367225540067425645872014564542971046349344724301046607793775149752622896256625599506444248265298305704023234228366974494193868801944280578992121628886250373910803874745128516388131270476712322640214757125400539886513666754282849454965227721854775099456442114705255475697714593459144680714588388079464603473948202494022999491688861690550938763204153240058475221198513280044363255731836469936967955088527168439379400497614960692536701872074943615264114764770502118184158707521969444886239065544891267579315376888444885882926461520868673482927364955635487595536159623234023223772513281636769823035140640675021997104479833103708527229836832902256838327067424398338987121109139182931666667545419969449054881092787254182941451662267275647473712195266213934823624596341961304294031406007001876314184000336623402346671722270881580568772084208298423785892284803568715161732406184772505881946775581523680401508147775344511775725874789792062357661291917985301197033710629152860238494206831927656472822721359187143138105484585676947349086209376724758513928017225553291324609183236926309770283793361556571017200858466868568227791377458634970872878909876909181483538572142166185333236475910265035344046375769792099305049213125577990215650225062571072122571347682767230992110388629639483663595056472342061174103941718140424717893446951281169354883374069415857366930159523457647932202329631699717679578682432108687310432308880321999499609856822920847747138376278678395425265191379893393397227061208866445365666592788212218635226640071217545830496829176016401600388310685860631368246826169370281019468155257755390537720459012517449800972640298749015530772291045406575289081711000285963594301134958215620446829495175843986790341645390426422535337301883155092781045399535581646710443995425318104058591526354089152853588356222443588909437394280756932487952664778526626884707100618680191929007076580270939261856396082748327722444617622280211166260817974564981600592992793935028500820335219345253891583685106480155709133568238459889821284182288931080565908247298514241577781669984677170824928295971770315611728315947760553498547970953108914824711484875535383129492016761939353592645365156549345483382114368872109681109012418851715004739190471199645270075054272539787735252155456434121515667272888822454219784059974470122780323953094063335958529325614672360237473161815630815550120999790482031933296073160992273668668234684546716916693878169050473059278901178742347138660389526832849780451296019562440496108485479704020529134998411769886563072380016446806522090358837588524754523188235907490163577362707994273721957352414499523415590265260325122030377198764540726630462109476588045659392001097485169273373457085073317935815383991162132496948858523390917811931164705615203415314734213156069166228367348925981372319666787110542713885610881955755931628410472461206738554776397050379570558279026576542709501038946179953003909704384927431213353176520572928813627981572350958283552381438474295857378670929333958310342667097768314320063644676782946011354607524721760749421809796241164167461562326874538626105757271381676509145868191937211993524413468801785135262539411072722381794865165266277205378065626452082568199161145613604026743447577556500903478692523964039886543203537081105121719370884323102323388950466451275365027092070105476944565151151014366812264859144583291666760474370398909988737267551961443653243926730773539718533189432981218417808765960931036993635011063941532945149756874346768077232776898832496286436365911686134620499163665978287155287338779740772537365945489774238570097947448525033255460948984613792762965035344507899567803157703980958332311091226601846173634745680040493004106123424372185071192685763225364203750456771251460552910735886270195779569510337707148442908781763756582989580545663304476579263638877939744971829689248659082265576298169655576068701232471060784793898282697604676533641295133663146790256788311034057264942759733656828240346340239028016842767529361189415639913661892333070638787254294040132226285335677963977334019866143934549399728587278265796515714229928606356675118247570911445836197878684447773709280792874933011454684754494062655388744729875438517324573308945815837305761557487549420134404551778910973693672476918232103863758417653020578581687975596134821380381075490265812009100470789108326192458647563690650075174177979231714602604165839480376007219597908552036957019164818263561311393824640295581391713693538385651522709194868779018331047361422267074775219052128495883117678808089510310111749452329197581042496306467856514880786755500002984814334077543036132634718062059431779776591043531462799609284310355972960854249575564833659097367270708668579968848302797956489796394395293533236483203828386642398790374801483847968234278991729561479435786472796676286540093362915795397677566752081948551781456926687257720429030535334188494912383282718239249317510417944794223808535014492746724072773915360961035228966795391820802372882166863286450661615330398878112950454996516503345409380193591976045785541089839226081834011543685310474595694006640027154697944449208030935906405395625346029056583821239258578103734311961793313981785522750242940335388260126905544851774473512611904240476180835531153202859778061256095029431966434773345868638044038874740946799316954371799171579377451281071536666407351759827640747560870785602768364491276410242793504527717461111174371996669697481807465530409493384662345377182758458052687245478787071368587229578265199129899732184700025853962196126655843206560047916768804720790997178656889127117245605812973269051412235016423675753782899841287120743379704637800979489681304584317697441518306107928113068167783342548657882470026668030515826813857138492903712702110174636463856823004434927531569906996760715132359513223870376051838835811211915467709440944592221263088681365325497436276726217133100409084348113367260060993461612656941167900561029077978379720890952790806441046013176512426337272578922776579189954619640298686787759575749096821966427300392417868994346115446261949456699989138327156392279361510222098127974946342712537153602507146716304476285004430594641839039381740290936007516329920075601273765311414815218866821864168885077559610340802466664700290366379925951424086905302487949963488258636664712651745063322438194619777973956821785803304455924694492410104042227693386975440487794701022918487776796475696467795071524525438539762363937659118532738320195325696932264956847841173555400306938040161748413246320617951142912667567666793616108109878734926062234049461525640237762655211955255920045445365107205315164134854328660323510737170480715726736111805530234145310996477135254141642690254381262662112385556773747919864699867634048465965773617743714104333037489692153593872104942575233427828970074340709638752338453087989082734434873108487209885523589477071908192740052357721959429831095061146116038576642625583227211267110037030043777221338180496523210350560467867242602071380261414237030912917319156882474043786272657669177731391756448963926609460325799684280968469587309621038989146087475641341545198922722567424413196141841804777626576021811433182079711205264629602912058757600157305188341373512808979001146802961652646247872572656269762932150049137356024477690019426353380547816361793792111131452391476362526566925131326496901679057636492623298664698759901955537175730182780545661937567516326453518228243669618054165334027914107181546596777065872070353833262682396219940519161058367632138160824111741326857053597305679871663249535799558840214825695988104304219599146573062629439633685016308007376028217585611005330282710715705860044057789104263173039708981209911631017935585773214511909636575736211152500305348863579293929685001593394387606727942206837777339508867237679556501918868608095893382099391120752964433922928213597713706918496252099391655735528629416043861627186592255995203596071313473054241693708346853846599109593467860227659374568102844742886173880102236286584224540395521245842395286334327235353592165894496120976601105607456576785433159794467323050541509316698507835873948561327707342703513704766369563024814044952361233158614474832706828590656473305981051803822130964842189601039851298315647669205129147440988858439377936942529241413932916739299752186570009322510231556571660189611892058648917904316474657863549862009028925000112194685495473746923576501322244029866894317752662929901111229554687025739149203725164119953154132012227768820109793071890386379218619220034205884356398654238307188953542578854517617327791160182908688287074582878612621093707037020655286147872170093601844726002348259172893909970677983261711319341529031337728364677748222253623631639940367174412851978172462740890223277693146477144194028967900339774117967627016871326501944377187704356689684238307560205192829041909460328534425633656624436690069314215394498348798033237035258602232211061916723951632824948135963169550576546102309191460172932493114205244493309982845872898980919730416119504506888481626112717188446788994499877582464877325670987102356161829813249532140484062985791281234114569564794455682036280021505697734581673334433180174088627555911907629355006343856663649310569766746461335172973252489758874044821495507469807679945143576661357008349182178622940485866990865371937918478234629076214699642295396484824718379956634167846510986776035499601599545192853990804978589318279800317532075935825310455053240006727182855748020655357520214196321852129531425241285562470314944871505699739331828906980771326537666561724166348391446376559031327453580051983420807159653567291337494931748091332339155763562600186457573339137756364479196807223418469341892200565780641926066562852741454120109013725518470536855408680082353516956926284214088690801863562801631042077617232477942219292631726812304278905002137535104189865773106490387810566039425122397714438000609554697390153919720620312597601609692690743727882079250660377321983937062001888947278258486533497839714470359856917829893552086271450167913569302331445394123446672941288051657315875128403904544109748636645433139262400729674233738486442006429251180508498620007912464671673864198436903019986773345450424835182689436646237541520148596832634753954584449137869116104465855018183370102420106869864934823360918677335003811554658998527005167711441996812590659809033445905118258684944971228125670461031849564836886815077154791011761550010086130269115265687348548159731912553631782748669433104636040632679353898243407485476500632587370884180701926024466731924637017799224055149102060437949690026633059430701936024786253224261753528449847858856589100073198376826227933787506095306720154480068328530895298052472746192514113542649791822555161391734766504558913839415683369746543699462644703312453214127260197752739220436250698554967869716058171771071871730889978910512616783542218418938017245811967684482245005787737630486322214619050239049364552782188485093733847478260290507644891212293949144891274045419469133886980706065831826196512831266046314721070781276737095119251345951932780271707441104397879573145253139922061983328257475803134211480079150344475218090400845930174601471628694155372376764800499474622255525193977097976910641253829327282607518596169164317919752441930966058954814459561041712716271571746440977966254298847589736287184784284858550892798424163426108437904660719825584599294554647371680738592375024077955272092482581406190545414887335122930745758337797443560792427506333481596941233769014977538517256872857103770514084589941324069453756584549598516948499285574103624337230226765342711148269358467119368307293628549364046217928739491070303484372111135288549525696233344591831907430807052210107784096358380065547060760616022917322305987381763935986301129100592982606260932192909363151383731315241248478659049054369607759904145983779914884387956193258345141260700878884361365207836840400095551464582336370754808072811120198867057041355994999715266465888188416849111088580161270838967656144873605276280593102885806845550875496993868789242881995959245008163045240650552974380382701730267071544296777879274227893940515727814478981417500061167216450916440712108254014634755330585489900545893053998569526058789356255486352747853167254139798503172248980021083124401600286388208708393257877423827073671643452975391438445807237659978380989516392115317744051709353357745733080673403331892814805184146713585022645809176477439146436515579863236359651882963589204050726903154188386836748680280675317740717616751136797611665339610476080949475109422083187236436095911279350286780791296770107205347589064832594994863964884042121960093792845745233153871101534752878542270657532535002820419808197646257284238373486158838519559985472478844726713605063555160112067826585260837715448072246920472554065731441002635028718499722223038705667077365722331975482120807839703246745882559745357242533744489754574052512747390895589144285426104381645225705848107369469577172801403055034122852344135155641487069691186725122092862225077287287220846573965956710208761554139011954009825631446758840783190488065048394286117709169299709304752602692926390703662004732062864689783423755545010153245570712466684674729765411516992279759544819076964209493448412524617402205177265062157707527695312081056402477257605164188021950557622950823724914558247306059622175184587356275732750138274437520204296955094563090192028445912940569527238044209565563314242149104584725926164852533407403511221350294060246180178344389332438627499053901289956090343779146857312498058629998149105223451660881350130368723677361000268736412626268428649026491191968724877298305264198780484271421458784539273144376070891722960825396436870996931158355859496847560770753134284472875859305662156350930872867666053976268237391758142523218839939187555970879382055290070877071599535480576192070013672091303840871831958664907534570948153277129732487617468714721352406939124027260870069661148433100648316136228323693049349894812669049161353092131207232130662035064876756998833992566086359233620361932899675707483705697364516283743971896904951792721338119107804640970937027722487643237624839135587352588347998849600641808717059010180215126255587274297171260382140835081183867187755307515792779531181940227633576473693622968985063387668240631356668853045334105911923461237768395429897707737123450761671134632350183117811848057482700676831832391104499828098575311941325870318545431134129650921818667573473983221406431614598533917138571439364049200978756137517285080355412677027781243809828972114684414288416104479595043033571111424584896956995147217999828069188861702940148277496872007499624834503549304408377886924540494265535661455111977471995598510412837685016807018530703610971693694040834922573839843760748694669340854880244743438803672452548385999884294576516965435033132554168694438442439601120392473330864175884295984813679763781705848039195978381241994077438325628900324969650368107807375379323405722751933541380335938215276649688636103927975734156758421363337838181842341937653320096936617407181864544647281824117195436307400705817478554666735185717422075199180827272962853561445037462623873592978379323960816166556605535546857781534985793766354335564802691419625935865158362092073383940726971946347972773107898120187180876741940384218119779689327251058475208457189576743353589962582027063680827306287848821538304115565542170029984630801724967207158694964902526317186754676772528639536779493441663693696287253379599519838730662959897040557217024977647120415030721394746947850288819788564661886545251186649860881533914547302942896827973158699302100767884246643788968144469417082030974815456919874370187911115240659410761195515259725421335705488348236269069690475484107503316072448281026174419496486050159977613566822514140783477825018618339295927721143217911275644433105520156604983572815134678563006575081371406298265664709540904030121792726377469240660131217295867828352451656355679997991664253460675314221421224097354512307879679545388097037370210897915876729993670821275501617046967874373437408325009954622661824669416224235946137390951248636682494542017251270690509782549650159169384183564906211890614839868402477785852182703693716236130605902814550451668041887690646456967779452732463934788400266295390198731931801255938225566473175868211874854302828845139745577905990570890988306620115940149383241602758169597683101674877148157711663103205836606544286235513315517505923191750603077387216209304091674712109624424249448333393459928854928030669693701845607219319678321269811262682418094214861050454144405787940714546750406494985395103580208332056003000568577942660005885075332931703967688944733222349751921443156221653468251697132694371461964278589262103491254207044832295114995864618395420815992282417518068790798238453736989278789968735496354548717151318294062441747018226037128450365569576243788958126466067858003902025028872988461774527726867725310061045990902321819442553525992496412424123722553152059058310755858326797310596139284538658554160898846941965933916102494254435886093317879403509316325037667349225292783588549162085469517049604454649316081558630416907769817962096890428468205036493366054847884398746893575795425883666863522928715126444412339210813885835271838666243509709493004953570084584510092705586946021091134879887177497307460910721491841580701633782091876847198883716097238419895464654802779239921987041949934406214297508401930042853657617081634744492673190637378964950835555727223121732908531846246635621704903341145884445980207735967819065231279133084687046715342900186275509544027000872211064028391342641344115740664702187204155505303484133879271597510910298616840021810566824497967009830442775230074647098046742091785844414922363592772490607260543483926433076983710586589063139162759918400679852541665668796017865413498179773947869319408195408307109023790033545731148727565370678393353026858032785261083659263722047883351433805898531216106221863598789090373958201989154604471365236102584156887228300119892771819081789268543770778768429137747834392476180139445390561865891498387055605167677323189183813946939893513435787467858005061854583528462855850447040353425969427982887565704742186411846438226798553928064056316411823787971222553528385654410757996274185693898005111514601037159626116478207260635242446696971392654712391246906509835145890831430437538943525308977005329121372581304407248032907876374650909194534365612514069532263209221008278989561488773037918751987104856767355892684894069574004529949839047941906609557551532434195905402211600980745120223548650808641409093331774414120551311335719601337089536009368429750803375701506229777574320895491293378878861707971856534331557353491093356056720209429651389794095074022141812626481836560875208040460871811638509539712318385118124408740096002563756988740263901979768847595420909167217798927502637169819624592272875549047867556496086399389439733706650770052967361175655713674288336452404417925632873083999457914973021861309411357560121177568078459631651869547009916008525160670674942801546240993221078927383678126407648469554635485490308866926387688306760837955682697814075107482316730049611865030421560067110916098022091236240729635545262798809276465654668218633134022922321814931890825285062724559866833583755689764090654538690259197859721137480546025448845683893646367053538407398993432969505334339805702219208816240344155614412457996899445594271502914480504673333651771150459496564821435384566956868175394396621428307646445097791749909567470698266988857320346068499892557725407454245225143183001629042175316805513884142950370629183020285214196477265491983334106376078743009891788231925376064617611571242832595672598494376085845456544082425156846230129713742735387854806811884564185945344217150402288008915415477775965428496311691546656044221385995188600183523588993084187657865836878040120314824076415488093807894566589244990983333387267857236028339718473073935776769374937321021775959465272873774255534853510439216139541361852924039643657695857309877645850495721699739965805551325074468225140158350695396193697486732631512765909322277030971396308851323491906733722824560431524714198242041792655641814255985580160822756953662350388778762274441254429385703220556212287442726552628002883362170826692057516353346396962671202624486174563205483540733689404888823429457441155182931663762569771250754781344974329405465057704665781343801395060231777691721026526709163536104809986646113564730335910579133435928089787853981189770269997350573117427765799986263640209876028513171089287641576858151359445593661908187250706263472945560836912697385114880808598356066233482606117880888139962109224771054726483899834162470431914495297683532421620228026750645894219053650920876172368559213514324631436350325645365003749043599316804190918525892325388870616304120851540990965558252290943342646443828878025521476831511785054603227122640622641420229797309623511590564951116814762560468373474619711208613751111937589532233739356933836063635932064980676904217990893364415621382838447800679929149052118386600128113879246651498479122007427743502508305526717079715740688386349003129149679338001416588061353570117658035308018782560177279367603138439592154687831726609610819956581123701288711348008355372692671272870522719344632755756796025784009508443155915784487538980411632862120665895811197737828691885601011696649901851761075214111157214113195718985770089013916398887547650319585516958114724315498681532922062063299697232317626329873921424216489403281867547127169992207210004224013900967834187719999922905750559011283992595507957840177157231547935447441779624035524983266116214780528398045192288604763507510159420691508597802708324724544257433699340395435832133813582108842845785446108378760511454238082193818120998500742442906525444325915247805352201940217560899330371556225574394125914984603293337571169798934349419362531424911995271015273679575429072275874526615154641699635152526300896122249677894175912657996090930189076307915077128289257939551115690171249655227011843726026150226629384870662766489756080949845607903636017360654781525333657424585531865342995147715886869709242827112716212983034111003776918830351566875104149168786934371983370780295867922787897644685579221835370013510595134670595498074719981308210575694068996904425383478438813504638114372389494694308173360009389354417364175258666628594226255326707062734869238329342907663404304998154183168993048568804869973055078568175829577426998783219354068156011393842014600286865824032914804717957634882440346257676717336659840774454010496369840373184329885951836919298921876395660926981750745062097889662138446370975160641541324566961135276780520755168169733095801050393895507835542076262193922913841492131438647029131974581701113209679011407526509321762398210684389281359877144517031833752969085858188282932593961527100029956613899982080337676402709640439777048884041581093967956148419559916185158534602901614538387186812222505631059740504986705032110493669716818227871352216980989385525604070864659672814341436855701917755166863025624676408153199361584556707352899827013922161831467558222228711447406025060485625769449982219819658916060168332046596378255487389668986862562910519118522005807923040676474427994335930683932606330898216954890724493780271440238056050159210321890935479428457217607183825960373442359628721419255968191357969501407086664021877982530003090115870513554668788530090109774913555229662264825128791460454490989916485138459262878410976777680766976615786567562004300745949740995378841444915499189950848765994063722167725337570404888041750229749731741122211414478444528140360627768142777222729354502415766002783054358949151393040224343382955917049762361906623787166606937176824281252178258467439827735862595523357035736852605952616879272563789645743999920666725619238939477674908779879133592796361782423446556456618824278058216950929364099232755020162277204848872315920640493517208458489500996834740983283925654242062256432472265735081873167218451345732024423448165749173666781008002288414191314851502025733794860998626339840355398949191131784533760642326429860911902806590776292657906568444091908269546050626913724711585366978287646162268838611567641991244855413118222184463782236655395764743295710098769165243759011961492258208176787271656949700335964714648943908554556731076896837225341820158016397914102364816210505946709822072173243998133568619148619537152543734712608251931803291256881787828926191463207642692958890668859637646244468537556338267713214709515335097713817619710057557609875087676784437181073279776877615950063867538915563186597562811447177518329882724047054688373828674462843292915497996585854933439295113441372895934507469409957965872291109922621999824819323351244578507013968906864196445911614106166867314950210419850988067307227037817417168086465998104529661180344429650450913819982138346648867949593318811685951292300906146976995346394969408103099041608354572864528503312296972274331714394574991771488165880194053087464841945783534449013894169727306926235383234093507417602398007650946358000898081912866168751848545578129486275884961357430437493679613414151179943674261297649682987473703670871870814591007204109414446425962071872698070477881828188324978118112954077460981584510528595615198190832738541411659592060179916450438893541821336777657297994394091306660456281754975289135576280176224715206006067089547920775834299166997267854623699444064236372754515971701108233564286954799555613786163885553981125723781464318492099715337018960940638593190726153345832378326364509870098774513700717499066526149184592119894329133881849461610780072353250109926576288354876257202363150123751754712641860582068524541230019639476578310608554595550263630899082935561871994894818766415350664901522302220755196474993863366788909965311141147047417094473825190074503875932120030143918098499712119263878964367817594294474223705590932152419562789972394995358431413161006075843876551290834585762252131945084048611034825004091982857134444147971732778443091273560569495671959555009783462782625252727898122789912154685021015379751353209680576651187630262055361033161405889700150955103223878820214504516329508934430902423276122060305924574711555707448464587205332650407810981156837085260885837002044379330892834456373092489072020591234778370622682431852976022288330081579615342012145025360500012790160494612879322410380140316840966511530383506133558565765569918292481274253922216574710965536729662918275926683522145514636192644361437062276843400652257562906729068837895044841236653542278366663658846302403914059688141944267608574769008160211758172253364616153756824243435572523338663960056068680465958626467940412818577284295234919278990976979442826573564027650403793363148947734046069970080118747625403569622902662209422084160395107190639466984651908902392159953262920147094469030337806151881567002782148281819942815680316544059071998688691570926908034039033612046259084511994893245935305618333240088637794250099173296198341440441542395664181357163156252233762679342260437237674122222651070838612254800675665101142287895995898964511492694814766661016306280416214302149575992636968471902276473712171704633872087588570073668785579676848708494205660103196688073868787689680084231704601065179424748031902881140865829153087919619965051416370934502152449471233826303999697326964810669826176422397989544138914043951454189310209854841217200895712326535118081744678995837087503761731048932647605225373357524100895364205290275853871338213980533833315630181086429755059205681087009583704614555505618658058532462549862818788399889088191742290129167176784763714401114417648593118395532867878717784874245735185302446864706118645403186491199805305738412367641314432483636152501508435439991772129655695250343636793428885545756274242003116081147526067325097725677574153434428243382363228480194624329586981983802982216602417800913855483961068396997865548191571135575422523558619294616793191029577363873246334715851718932583020995714734963788615219248455293159668279005257075773516594737434198133620811818019883201164279243891996901663342579469377402207987867944898948805717433651960214014237949158909894619411506211478141182848286648705803835386747655231734097914743440980440538559720682392517529550255123846598760428779965219650056469689483125386025025132098095125906598263077390512588826580708342622280716778227708058312205614317418980496031376590598010820242275691285000126752940680126392926954956494412307305055972869891088902790150261511087973526136208852761225855072801277869081842369173290309087958871536680800650157492485378796736936453746990234550777230741936395622835372225448903001778751581018223665391713686978194554462348397752140014682470817240933778018873090536871896676728971592714396262420967879360447366206273659369227288530601031166182414284561533505845445885875683951556128689133873803866989042539189666998572714065089014747889047860122148986568943129725681662231494351869805447235250518428192992791155499480507538415553805343322562574671532950974019608100059265427657831054106784322787456564900250290879439087155680669037306502097447083934048453184564294166929815051249042722388295994090061106316009032262679925173357796964233920171192342052068254156281231239156667941291419814224975545233927003502190825723669096597376820531864425749910557908897490412154591423131151310079444196416334214649757930720638630521911496542398884027477397049712995319350497102435205247959631971135756731176060187374371344043859075136136667639694701683595744490549291571021903236819018916946688140140927158094938378246642933733649731677639145937774766976497322821219315119461359334058422255671672400426183561770301607215287358487179200341371011548149362459339138459868860231970730803930142973131539154926044100793303057228301661541787755052306361164773583830240898997966799893886951374037127909245666020093724530974380001350105241523131353165499501818607239702736129969312444370608716104699993245825527914769453335008734098638874594331430898256839393105132582432777688307759081236278271832924668462858350870700345230902191971935597962129362096030669751631983872729366265663025656775879105196206900318445400317688466307444757188096058951015085519200047884545348158674563849406970122211062915730706874607613812572728799618460023922632513367499663405451015223566347693680897218882058219899407467163116363577325867458705174289042589032245257932714724245284874876331286785937380268965360711952417566017441384426010141069535345512252966056125655381046586924221757283995616065301276065023065979482979683657793700274346120525487746937222271986468255473397770289521258988542511648339992115235811692506116979016552381239249296823297249478980694541863614895123090962055965770621773499703614633754952591629600337910820261792903169988739082818181941366728570145214293956386039280019077614948457493048468405467798924107147421092961603910218719153575097282260321981077737244330635178578010102845896027413797817280974510285182632613325566691931710282518035763088035562099390596702527794889495098538347439517129145661934055370165727404790331485848681288140509206861848395354086453855676969399058760271603122001920461781818899684611247955420358990611125135294234625506175373109567169779569168085866986755269059995417315576862545521103195845165052850285023103471850763646575799995280614950330482087847271081988071226627580983409925343494689663015416718129846281759525335794627692998186152600191260475420618112942530651156616268163855396440546526672848773403981203390189448871191321593469317411857544279490531517476981147630225808434446230139605468965432932445718830264010000757453971861937598550743609529313285262588683085988548463245692687501043629094813500900524447693042179221215976215752500459920030410428933052780645754485118238562347137217549383024871457476549745860709235249520704688114471780755411182000131820390303930354966152316378937184599126686774527413735464004779551185055738408792775403648020816989496704995435175522001053067696993771120394050981669002428471575224371042278959253418107104626609631168911111462057948047357799562041649094190496891647685268750707166030454705541478728445447575730436122783924658585052891675966664430637683461973360458344195422971981092237588969228958257122798061160847552745365109478209599026764185558843397888657678840788886157373670627863799235724870105559354772586065657053641359501455360441953651414100629146170982465979404152387158560592854578964879311803738577944894208734934095860984568232937989224887568626863820814751664866912745961351849196182318458046329652149461639594823838306604406433133386307091787319174785266414519058548127715266881675304988758743554202135433327103155478638219287741968611294463864908647404095787210479052125909122281113976871591751521644476719489689748552441605311447769704769882625027022236688842988114410633537431789185805270218322160288635852607996031220734303038847455136459733425660685771189500417308933244632846663227775335693941772383707890589703044102656838416707837943900834115480345383451073810202208432028444703886723976287002950467129886294787600490455948596514695029409025321565389117559793206444355435329802013474261407884808913683775765793727340817182759058522485087499650039115301663833568951414404984153127189993172246368463252908829092230352046343128571955947846626211765555684480014626441308958127558333631986705942858146131561281198898299079655036648920671240671181365340802543552834856067782192850551550715736737493070333886696010867282837940851292587610294253207911495886198844627253679821228021640879974563113801717740388711283661912488122040229111418954776495469053062279442676182422594306319469620401272072115378955346391246103315725117463960519105275467621249790398734342097971475853747741482273907973913938374038829889347347337852115801082116147057317531772002844771286986494334765201601925181706188471436729851471649543454051939207067430567304755238632386083228189784144510430698047338306774939456092838015537281415566664722218590985345617193996995482012522885744289147582069783610262235669442368947685473366415053438739662331638782822764956224712240831817573973112753882499587871731667704363180384150606654711149980758791248430019986785251105431617961559791250283150900790211564655891313713582138953189884359768074564726484627691042670364530444533707448058695837236008190167400098084833260277385720371962310937696500237393989083434176063279049140180872657140830639020740014401099618616420622183346564044158098163340187832516001293642088147937304495617570074644346239740420036152002196710328451205913616469290431970849813263915652156731096115504300231866794641802483240643738623997830867518113946434168960776260450012959724038036476539217088812894533550166475312785304785633582731739777056337949950138388566510113179584154671380791411325239560876636841507180946624491709997561255150034409013052149879378762766397983037093224035499494218162799139916311497950082950832858311875028901175984316867683994732126415664540054805275189983644270201990438519055921845975754224581526112002442207572834209709615974409061626283326759569148716292707657278090771159546254604851008351916940389472195398312966508628618891559180018048905878198665794139848435634241100233715640624253650972483109254608241280680916885234645895703578745533519055969250710953472507689338894014847526931137538645054659664257242814621963751510548790121162404064055842517822271329070602864026803999513664949857497540766033713111226951439789641700616231041139276988891760882954575685449380318071312456101872146934771579768789464160958371880557947420171813987577731267884373707298655054299528793913506228368750323905146546019113051084010904352448406045128390044380156537631233636572552380526455841285757581460765583600055554723875878806797786930840427623452131297404156605867281587780409376679293616225091251927571316235371291889850801941572690071748377694753313463158456076464161764212771439466591156437983808763815638958038030191543534034077796430583194317923909130609557654079266259608166301210648798143281095125563829210798131175107141520583640922268069860807838096422864946358254252608443246601179445096300642135001388414431056023137566933518835159554609525273925456291897884208042486397921964632499953784890059948925834525313356243507343714738575457015700282440754190013217358501721799693423692398262287990392264419944936499577471770195451088700652211332481862783565625369564724084988516216934485021785900647397616038252716263465958003093947638548620432201424808075909291306415256138202001154908220877683246836517247385530134517705728861159866867135836069665658529605552400563959369258485409192799307357219675690487334572595397865735923128080726668601201500516367103729818052011115806771595983710891284799465668588580303480464585868245756989214847111563692271389223699802137872964538476926808188218593647948759119597300613310899304741286151912219309895865252630985523763150836417431629331246562021569608857131891707706914016006669883922569379471540776394582390993014981362288799026396475559369873147060085422244766177696643588445172438583472537092780791025798861501936037921501540727887798283567299896071749326560554592591361079346222889253396838024509923534648941574971617017738681127829336092801373982246773499902905029342300905438130188297869983026482677115533568814178051055630437728283042436204432839818870041471541916743494945910586763280254017238297632239500616232241484659353512049214748314509294930115354872197800264577420507618303645632636571352154927443410944263977393719249255038395240174555441784686233990775540614678961601005843417148294873692135787125220345698383356033101606254983293761747312440682125812589848279869095635877423042322355309598628497946582370444608615368433397952881390698735530030273900913376701507782303850088588429229460674446829545297876413823199944474797770701707455570381631902117247001458967639154908523987041445673576448453419472779048132079687718236114285434942438333253728444900267999260927810698934193735199050469114678013649048297291624699386820314757442365562595069782753632053630811162971250630183984732309701349464063914351926185966603337906595744346246218154401121129930672214977680826157509239566162859806057164742084771604530352572155480841315682316059297180600995835286107907299524687106388425436825443731884035268981069910440020087849343145327846670908185123763720414581277654240273546508771638435503667384669005738822091831358453139296017455015978379322071930548716237257840232979424418559709909840804401826955227967572568280769733285696380001499953785379704908179046218659670866005018479349246113069414212565250450454135693750683033241864800384165389080878289831051195487706819031832968137649947499530073189257323335033966259506406444338432450614985833840439732221941242330742102839719524517276929260172929536757885203329345828153230372356760794829957618460606237507617073294525184371969605154179754746489796708117287991508365569563258848890951700388069784293863262961078020862292876529700965372202233666129669177976377190042841159494151116234714522010597310782852731665841331216044787819508780856220943971023871710684561119047327184425056036957803231755077667494203893919170641976851674293600586315577015860167691108633884521414366890486311657286247127889682509206551102953238026945284173488874334926941537793650057378575213501308211667575899411920315116251950685303774352010039952625062034523211288940013759332530715873863327158712179799115617155412828891023397426591891878890815564352101050732503600085334594210380582703928314095229874744875032176621229952483256605491938532873503536487381945787527783890605779139428313175000277504786580996221847797994775916847323121015497824197326215125224167404087402311741923902852358225158560707307964572339700149663016555972749854784208119559364434970941254034557430090434054854241496265655819080581943400564184433148396409875222987041909735417194617700542716937724844131538219159119277895700216393576820582472102577640631040574038906641214527834009159982819316597553096594030736420761833476106534360708941689043851829056278198445920394862828742178934581618269249673811185134957361873276621633199807471497130915238707672295832834845075108303293354340050072379609206575031123368368400570736320046204533424277509945751437458492679288265163635761970823163277717712528628508572996298530007259772442819448528777047248898095953407442695289912044822588195312529173830367174120605642615229541511445710129878109817760281455947451476360798386519878165173634174762104552142548167771542185890454895652339638063745367717891517768916171840950349677335992618706489950381860454598127873247446229339425630605896277992677571850429230726426713311123327626497258843965321279880034793098076738927307111965324257665153277113304887171584833677395364019984783741630204067138934072906174817762615857424268695548521248226147479100747226123855360367016679059762287955537967745164629812966220415572277114987085310260263209048698739641409812126280084127239369760079957953460663900856468458555358863230174494012108980631831171646643701896288394752627780539335983133781947850979578969937195913034796894579600838980787713781817057271900751713314267388890314029361219479471934292715175710288871511591779592157842321189847468782917512596794363200043091060483020987916472230810565931110536866968549195996988622000054930543066483447103599414275066959449489762804834634574242398201763369557501834224064621096136588990487135426673183283088988763294711518207922105316481045323903797123161762590800727298260570407024238335243165228137927829526668638891631193526513442575361065111457925631677565807879098980321342320556503498167140057219562267339777885297473012662988272379124256912472802132456987548588698335648286597194284612397392705314349166957484743508870019475967161570765717915405327910347633819910035806761586152410269597366254417972672922480921438558065605344065698707456760580644443984049154938286500785787716412538546908889298152168837550323530031835760406178509183725911436213478887701956479312055987863036306035344201985566968399057554840506524094919631145666465106868963723364388284617505154638504234925560366313412450344939171412514270798727915164408620177065440591759083891199523254938856575859243422533015130338323517669450187679640424129012548481169890900044896031815575417485225723011873818848357502570591182655288786977687170965041524735547213343190625567493077258738222693615470201049936034611513448525318879575550815977327029015295955520698028842600895252269142113921362146917657175607894483048229224899973602628345309264462119052094963856353689312167272386834007198835344790864010387217520593369591767288015165715143443304158870414512792539190245108420426601600489647051292046019317414044349097649947449267291171887018753323057922317030504126962549390995208778345355153012464620710606922101844698117806972797271841615150607059833603640797350007896117586855792025140524709553775632890499130903901421317466832978458214018058466241516570173418784451837441165476624940721851734722782080395664087701305122673750629761765540305465828269744567809680934124341240186890967333353544322006995626805703102941653665788846247756879640958026063027067610380030945921758238383991195197593796729291773288814280248148831202936489273682390570361220594829633744996310999318365195392548303037432187092549814538445946561409764596749341419165606419741438169535296389873403371645532778262609101242105104474411393652617116977930198040255402307693354928456288666037814018965877171208572632849791046464877855952911231240360208475382374568717359822383886468973796268586028168995250745138257820229573843818022178869802585989510435891414368802300296055282089180372402679985185674894602193160604880941087911086397765374791763267713218744690567470856746581460532985274037194223315524793705803736056001337062416839862043821861645711269902616837440082632295244820291978731402531329980139223808308251252132055878209435317561560791331564364951305868042221133648260730793520737167397908364820756847914772285766368591768941409980466411060440172306205957512433902472072725155511720650876726562592582499270219716702374773922857722656226107838350272243874693822428076321925933223409565676048102765458978313751506140485385810286081811060302614465951548423125804286137086111338238108072860197106352308688199097921336516428261188037141530484601211711124600857516799859575866391682260803302552278234098232597898792762374076031793374270570771264728179259878118548502285745047743712138051729996257776714185946424706657638117749849914363400333923467197729341486380217588485255886519336629628287852910042344314798853660461296689279653192466637246657679519639879958485904668439730728955340568305972935998082232392443845052326661337132927197499867418597576787846811255606555625920758351193855407908679597384171667178333978654371852881785618406118130076139278565527875126478698919923233883552198054851017170412030129293507007339887885470663172984497991308379355409145426704282589941798364325603685425190515382684228376981371759428474677672053497010594793599298981267564449566184113755248492593479067878732620845443985046651078565390569819647591280073944554454404152648670927310497923116539097585407563124030236513511906795693546186209563430736523905327841885347854097721918068625783533265471909161607324844697809989486534943600952507464226365478690077395851687913863849001051228695304270140178087105005094645350966860971271287965939841027954145768654200695244132525749372712213278647576804895433108517845401966934258330446780391689225087742671122359703207892386099555323392673042217000715234763855166510754775234787807644973730355075240850388827886696361030585910690834576904049012984918920618893289216156559526071727528539047424956219035763511842967170959038721906779781715981771434799176085499305033275301365095950966571183314171830882715802571611436192156966710393848108394394415070619941928136818772681480084445058300500896468438847755471765537441412926650245182754785535682438848470896570156448064125612821969263341267136964874984549806986738547332018556989748529613196155073372809567236848966197542965804240612949050507619459623987284957860771092444324936139742172522502256522207997529848899314116475323085667611160545840916632121165581435090051128523417477925213617334654453498751530653532762483336398300222067053383970745497729095207882521638327818518951340518152132401992403326533562690262223967714610969036388279963710135067110792690959875214744397481624845940676499386237301367778244318418811689874206806556535055816551510477546880465399273396716602996633119065631602323797516838820218992668058099920585787460654486146958915077508466603337744489751224035540111581791934416558949387162019680236649623867086198242158525205064916071505994517055540438600188327564774511010879996754497027540037008718158024883381706489401365504388212567535058329004594218167107842687905819950566667599177327168136737659884984556722894476351057167871764266048872174897204356501560446825579664745102038362936251152909769456539161577878320902655401710641776920033740272607538041799504492429462063472230427731084040162921157602556447077737702466251797976193321544596354030253375354218101700705695942015335044719531806336692743152090835452799450326736485328451250226156376339541150524556388893097071396321194243597878924649231227474506179637037035244031957804527958414677237658009975003113275326040996691989418236222085951678170751555721402456918643679508999825475145138236828966631973029657993754867752727771308418509128172942408849386667814937569611015813281128179524994183551352602069091459855797674065447407967427982976327203757509122452178648279015482856353218347435174436032644134966787798813512763525727585610752160248129247790214682114812328428811004815056147339762629709920543480219135969853155599198083040912294511741831179477153305974948404167570793954757768938033714321107455835186997347084463098552421995930011937860940888955886901663333368513260139143259371207370178784745404842892894857587491657629680298230545967493867692740330632225325580708617012641770172272373367652543059443601493715266173834978424806590847018732363204296824135657023521062771427239731228503979384128243433946220355437653257547789508941516438865223008188838119994858913720475274481035485140123852885228070540174254506975529618088560894693672575914805586641476964699007433098635799656944969412232144599587597598793585522372510131432592122794151800707421196273779594290903022799427762233550074607916790205178995657747487685585184601324992406815319213092061284280548562488125168829458717188811767507238788116690109681257073042947433520686936061208421561627108862546559594207914167027609100028191568568461153314167100764794732151536270587673769412915505714411698093908814001869269408853037344169065121432777457803298989688189541954754139937390518633092438201064281040819223543060212970532036308708073162908557052396636867065269092646734202356714517885468242322695685277057768491919784051245391605191256903724949797185372269161476169803910958276600057378592468562582040335950392609339298234238460002183904556132953832640122436909371658838808256650342941723521345583816626215319818460595696726781984216610931493886087999487536900109325575964688503916595843835546192611714133974989285076831630909968904880642877963956747582502835125523123852926512745311646486945764485176568921244708640774079026445041507364162571840820195590426423144901365206776585421736570818560616575302127325403600735654197500048236870191714909353498252802059257335092420926191347809361401122397477361151048463620035366897034947262838037147782688963759116609250423114998691051326492005554490134549154928826232169453389131542442250255246727806564331224358876667312001724374788432557745247607783092506708195296582391074256990913014713333026090267978004214817345494215597422284302954760093061138790582045611275780423214481600056307874064021146275533050103648198682256009097353322395884825127116320917108342421550767512210116111798230906257592611894175952352986091421637062296052086442623592443752105359253530014198493290076736389367033993782192512040219330178798640092393093227610165665229270680809501539310514856849177399821690939954078427975253312672622176434203323681007481918461451795388377033635885258829730686589742849050157787398985849091620096785253774375035200151981050656612567573880950590493888873730124822411373219821860912971022004294249553968652161957160203303184037610933134249012220718686417567268783659673396248994788420352550680673572768022849137339271408928058024217230864193654672182546086789037708732505146573006828918631953255764950799603588799093619770665346584366373027266195250268188514862203481620537181128816039652867183095989269214438115849170283766774939003553994676589988776937417740319037232486963408415950530424108558999714609594291863104700813638858521257694001508633403419594843433137620381786230849123461901604823851391001989050440782058571431990628580084625096120334191823814510443507306122842200208118166904306675654534290622651510475203752210095928534298654701437650292291189599472446402111604520117745448862418997012707773331127893293882270986417798070566783970336128283878886020502322608111353803712098040344609271248328015200601522607691318670326201654542374441036158162125095963428642039559850415153953456282582309201193172323803493604124053895274665162337560921069177490033377831153536999341594654707807478323229222344767379554149184958120414133025093893131948019553175297773742576898608053913682606796516424374057206963634705660023719147998732533488277571488671033720241844712363862835887284835773553962330388261236611352320264283193362753292514942169951067573911074069927376951434471983452033437312818134845915171489927020611457067563578390173246840168968774474940426692330123133492402714535900169206619550220115216154471436978971277859587299493193172082583753472350594354466835921433281948331063071477196788562296577088208453669974185243795291513532874145791935603222359900829713771340023580892992770126526605257943076397426906183167548010123849824634544618887048279373958371856107577275536860071366232305471021699522971451073341367161405966178380896417758492799214537396488814896246549619601636099822529670623132121514130332941198220279559189329974758758824042970741086980190991256024941534769702998348381327389376870070825405469572962750930745751842406801772438671095416104529362893886127701659747441571772877857254098531130798871571079315908737000857464788739838359369988136092767408435804912786760082406769429906446684083095945648297027858663427561899310764202083587874589892765805176091693000677315482376026989474961280262863589422297685898924240020863182745600860315671726125388832533599147950261366454123180849767687309826230079925210037822436020118437858273190010028727298334972478665955453045531926518414658714599252363531433904945910698519415517144152877018876855605176403379119003676965415678264617782439909031610465466133047762794112329941038288415474011747030863023305527779608554350133714145814936655467290775176375981712623263614866170912148879706358183905447673185875752656772693792763779266819276055052558226672580444603262459300891622180345854037491620987377439609991140097759605568203676604750743934647531298664946835541672059315240752342023041119567174296789654548692268734400421263208264912382936858187654380316772598268092148600972335537388382601284004707901482447663307306879621056672845645328891975820115425031776910688515752282693500890931977819198830597622417592909807805572351975837049430554407560511036947751548649482778363078048171213849686613253727124627553575112112359884119415814333601456991541924539144643611108042004905982580127823690775704045029005572874940456351732966899529145189671050740117728701375385221230964706681820828036952074704139501592295642268326218877538686615275893149640688100699679686086064152217839636425199062257813123003578943458697202704467964265270415396570256043847847228719382646980880815380372134098526182446619815146821788314178086931969525061394490752055418949684407234382091976596169880775300403534988022217003262414232734477144020190274940648156029950871829274360816251972221635438648830230876469997599528314313966710272667281699045906392240801748951073959858202749992793277270370657457308200162364086768342592355451994462040896082510023764432537660075696413752895390614531288266392872218848149156108624108892986120621949054074701255775332701643970621585830395029279368437337873252682993837974875794424511735201072150520814371687232463662869687185031500720905992030425951997349984883645768020333619041736995555646071263790711442533291924292879309935133878403099042342958014171379023234320802993882888221438489119556397833479151117155647789519995952798130816759609073489136040041637791095436071847640131294297216790656068209750382274761455956446392743877056877119770897933670132021429539136203924474423599046006660760566478002797294389227379325104160167404542939114618191265703220716332920497149597643914976963608950160211602929303628675324073880687793039028280116948280845862747577553697831762184333964347183927435409343014284732108038841840039996075722172278040097588012224678335226484900048330121679213507843066264997834596138129052361500954769065396899390253952753457194356213305545520330526591849341077719353855258199798793800412740384182173759503701273477553773956374872934506539529647975070777265149767200527704663039931458613061474760827174641379869638491580692774954460483877076707182565228778565244974952046918616273024712762993098491728907063119070260435871498892527250356911632527385555997266987396716801588670903990913226947415766915889467510704312405231264695389459867066176854286117478086040009025454831655318867431439666765428453112296828164269024282837002479349257186876716729877231589199390716083105116648731666241907965512967270756368533749917408632013231993771070392269442448441390262510117113278677777266423548345641490065161684019638759788630758673289560921931102285078039539190313230342518616058712081473183452331088716362750840597209528583667611545399349703731203734823396031883092324723068510740938643634521526983092781757445316063374613252523631413919462955949504844108727640300344920501777420730550129803108143748247842859038934333571369828566117790287795447005394900464938676992982934205741973290508921118054018498512913337552809696125122902718387413767663204643889503237653560805926766268401240971218516183717358289615949087706424372644761719794131779656869770683355551785854968451439727581173921554905305870995927485595699057867910134098454713998630612890318680702319335476360400191310314022156584699945611843212024623920365379747343600841785574539090591219926518036025926245724337363922248229103163881056246245667852740854268261022136474316799091765385479858470368084803036811006890828172641106470937528231160345138618444070679799737892091672847920326443626850849577273416899141907422047859853347384612257680265608160256866653686831800919084782877040149193459577571940298622557326426171170523986112116781261413548529632020941141673833040116792267312429499783907798162495146073921730459443247341068949637170326793405153726685449698981324357041675884164469170112818187464102631490967804272444413848868625389426462841189149990307601592356668162321468605820048713882491783754657575134402872173056440045413150499632620094668629453070442808641138555771434465786271023035502325089020923054010989454994432426179605632562918616074312086656110362198422868447354145163370199850935431385056180592244802349836055789183581953768793774509813205852339167675121290174425696169091665493885734899054953337471138680414501552984095618341717189577397859812676898944444557966433061972964035142599197672663695952607205797656412950027609553078363853199355963900660427960004227329635268925317104184108526468565017779088582092909698207585656677554020985978947033301788507337813393887696555573527244130143752316441544809437661208919475359019715340419763551978434633165305967731220517602409370193520911865096112177392670247209985544629572654898580715221709245155323928822944344746228300936171322926328760238362994422825323179864911475915335588672446451211466601088106464228262452241613739095380136034715719478690519460594119143711785681620008532656975640914278317150718268529424383421588122066694092698060923548477292616909568479070422703193570528650385496279620753588514491534893802128098111022173744457506579636705496594628306619590834154086749597522826525881348626863136354222650915909154892895246047814208802843555566084772248233027040453336891539718645071798255854578868549311230012164727757391566226693543787502761016734089089301344505758100990668738989894157253685940798763040229563068937191994119889441934276314373087874305829799491741051408439732170385108142535176033627220200524849708329357780752273142784311215583742053110210573250368330303817622289453886502151930240755351771407282269170674329515997906569949792836799116057065166797064413830591310643518422611321314488112626829786050521919190339911341840647400776819619712319644271400289641631119549304702826149506116229471570586803752598223215417961968871306380582580567736954709162799562514120139144523824048078992169057806665403994869737565751606115712156303401999150489113861524742349178388448914411899151702589123399756833324879974540063468372718564035037337929413382691206132980583977955534086526693266716376741768872428666214884653552473595874391324896997981594907373446441916292385595613745527334842887339656905703033395761374679977074879810561605460005008220682105638570960602724310900556444602478104395998487596977579965194632950932090246109124466960392107207321504201838254547016962136191214548466357757923208571779264964487607965010369623321119159435589543156857456405219417468805127048086354150934172940736555371689998926196470956383996171953395162537611947892155834334604880515013215806326150387083076856516849321315041882929587058009848139822389400595810821926567646568894076295423894117905779684993083416063639255731609075398028119522263510547025333955418834267922263792523648043515936664197010278913928356126915545927093294032668071686818750792859876687649663381287807580749588279606851098096505716853800188545306156212402052010387453079257791385809084717853203134673817583272157341807434879004039014459912261832912827303153571337426679053407997817389780241901527024708497809125312123562645036049833834601958489655806349311336824634277316094424775313050475424102326409319372987383482886549510135460911676378314903115187102998450007366469929985208010522501938191820819239328994875893120607010550016296994628805286178788157017472202582826534460373875225720696009812948786090205448046651987631592299763184882664527615363163486112550859346446440523519993995615810507730263899005034048566627447536952833932774941792031704995897926206426176657724743605007955669870851173369026588549300135537136055805471279686641883855152913122163073329641866667704451644918362484843916214222197530195853174636555693631097273840151640861884061674926268972433391652267248878737659883222754626079651845672055043207101447771159074734526731565488367054696701525738175390596463170074047621982790570827737115707173014155239424057504665128241245462550094661797935574010395987899409231019366902322987933151630312006991214776922860880601690802905902615732205832210037582484809729533096784441911703161673481172223599279941651528304240523943796039308251928508152910689904496748586456046187773994630362598117720089759598429544237470323378583545780421505322447172823794824844197804059716299495496906472325800076174405452284000101478158597976362759913712880268034042022090007319678603038968477567981692138436853888836008729734240245243198530038682159298116515876183893108993226815665521791671206592181624169313697980426880337165858088006038066490330326692318855783907485720294603262363726442865202405289160130348365493255517197589819563542007017593073328020390116369220170628350721158083725095975510399551718754095569122036688628216023380950412504385056383603461763679338472226465304526784587124212426173501917282179795245078327196160696387744666066028338696974975864501265922114480852196856171692802999045101208985687508851845110078711671439490302191874044511125343939377310088456031787743682884750664035919151347080772350727581303529254719428945081768567915535025766686817558473648453825810120900212986406351598832699851206443903088239260006670788349769281763966311293998628806640471062443022794307369550662808580397862651532031253667521910589762529623921929567994207634391657178979354317695914937355092684527287783299239885969365617788458314578693301138293863145946945834796062658539252281880408436250210314903635985812452165754223776693875800095150799067234396711888074530180917341884216995385139633562340068580554050879992407294206074808930601741225649541772836182664971785554260819574304448750088095961104132694572673155019173690312856140979452811609852493225790690825729116654884188065075933979462395850066620670415550325928246144369617256175137031658963534075113504998873915770039194700110074254795340163361520425728586971938424421130081305457251340539380565359143528937025551005103051299291717675879670122976790146783296017393088419355925123268057119269950453715880907750525857359484221299247842374548667584271802867735218619476757292591533274954407078075961880308520617723558866517535292230446701503674110073845324757251477780423129759587100656774369088951029315999747804763140893315074941996374824404548285416141292500500406550647104062142057260392272527306719143624430909663126031972637686017874947720140583949298911160031383611848684428308542467378711177477167012909636182916188367476111121310925615660049616803821215006733182335679771843460145296625150853103625936560275269127522923523373395089339625915050226682929161212950549983837416567505627542084808456737441807494795120948088313485307133271263048269875066075797206440036539535448469224569499533901247977339916281941563333177991158159712538147298834526135164308339914540014064318317025105397132942163478960565737574404257818472652565392900468939350350519954349410550677108313523066411314189447328703650891357348340996434387289546794424729593538129284189853625954666858988773839515489003084606585604024847437679967723632624653692444750907555949756919007523740888132893419611105817105024103741446339607017760358128982921969523021305578551915516154653160135683536699129342456788997319271359052591162832996933902692465269777709372063149647921521162399798112655911730472698331827754051562287723046557415453057658859445109355988432881687344384267218479850958167971868591889442682818020835401383005847134079418331404008351523634927614961619864728998585008405007850740202032979757796374006950470460051826725888686261003270768280912591319316322747604225161087504615946047946504048176258431644673459109566527515588291779999250119942697920244800451625057009833603959231183658610273449139039084647548670972887796906365316391843781738635800713986365216525919534375646250369933075983088643256052420200258864049928298224413079766954052493738714765227269374977529393203405275342171432494687457516736831437143667248804106931405311423616692914849772365986107082819293804132944710913877072398268869395862235655204231978522379806821484335695994335374669301277375972045098229266470322345307873183335791880253526762525901072333491428396891487021127343195349105962260446023972671965635741362767579803455191439316347697231598714241323685835353728744908327415513582894157164426520495960532555546360484847690319812506726403322574637019686201372550390892914612854809298926480128776890441084550049710711385684549386894147822439570451997074698055178821818365493737596693789805038867000845795965478571838675007782822565525361798175121042941552474733933268743901096993488459649242589613228733055888897448401591482921781610825369932929627556365979074839150889810371568754987800485089279614709363238490027794640141961042692346374042050186206437150853033363790632841796081332584880534674798456444274089427155335923890400684299552239027404150007620695392108246638027037052381913192438211198265629371788391260147960394932152047976580394228789041826006551250698115527717774567146705308664713334820284960845802319011186297827301511767498142059647974254477131669101066218987628757492830634554809384682628036631889657936290932239325972167708473128542168591259066923021913821568255789656549281202096657246666842645961819643875882887345502568288473063356574891165705454457102504080238833169103321649200032716236570323046720382164882317149764201469085235337363898584367050251261031585405053252587686683926527297625940666197523463700889215307188742000060583355793105599578231092995601872275894367035586819438039234208341678189367127684253221172223396201172954552625296741911204717492208892501122820248022593492766880372326137785680722284660093550658583040874364955229923669188407862681575459625113315543085210314260678792760222806287701003035915247156700716853410760746355580581512603742334265243782356878104175410249045964758739035894103225283229137469455161279371456201579754502715636286360632382393549581026104690378742410957716010874940264244952719853539821817206099616724767480232979692514915803431016326639531881159974836713812516945793895227885197952688288660978034237667617418159333371618183022198010458342220406347347863964419692688880545545968198079948796814521816401406081700280870745895524023162576751985828742349899917100671047000476442968616394758190170319366080757779718991851406081170880367790301592224408044565819395796604961516637422601484711863431258725397610228715933853515362022886739839792866387340145083909675101054945545540985194210271704620270675281592568747643260318911643792589262033561151931201134579273804718591899948349605194250097954911040748038755603434377510560957273993900301971207902035819154812769249579047291640008794958902683426722379237969422954307940162062917767361942563692090015360708285948531390308332143289020206170329516673019799391523034768958850246964086800461882100810521005817303934752922303159269473197310535640440442475789312762136852473457144214578843289739136156687949392143998425441078655005740992134903134072304325039769327868721169085357725369368187672988539137450211565164119368131581389276012385486405617863201571389371996325795219576892721815845597276211119544495840798661135053613263168945175195218291727712228671327502994133167296462677871566062794107501726666266704774680632264017863789865750805676440365546135139660915587894559374662876086994569885759462447859622485504635027188813107357351697350628988367031400393281332344891814786116139527742960114730851866579801262607827338829661624833394821773008405390865498371786822197882812334973955396713472783956214342387676638336257133345974729679762434265824756097878901387292023668372230587206588798536748558502016541423388934444882708944765920926810630214828362922557295935283451003719408908465697337211912462825930358075600147293690493143225595914963134643298538847163034663730343983693563407341041829773964067329509496456411010101388003521715562539243400618045952575930751576017338771831580037796166945371066482402212431785217997956769769570191902029623596195050921963245640768191293154073772457911496761073556979259630521287014903459671168304925177851885732698129629609027405192722816628560696490517084199473179827386103240463379835491294911698401251421785732771005305949716906905476971098404242348081274399542035487224516997590650485070834802439091102407572486522103837599432589003596385658936469971300308774429813821231575295256706913806579846112040522959712523072967772673195406916202554885528179436521540353331131253096036664842616437104350774159864998400996541219796095502789476712775794561532235235834258488352859792174786778643264874346627719516518110144769386779570899095977279476618067089302141281032185102918546091237889363455388975828660048927682075394431651136858755515544043639347142646447120053387972208456253335452949866971995533477271473711657843213485389406925337980323406375452463973571346156689237453584963580660392996152390383948845003948460632018326736873775979680425145573161756629278519393340704033458792756764060360989221259378885195387310423731270952461390735840543668724590684182656356808256096366153649251668577190033531923575930208462437227187333429620567411429224603158147329942309060763418456605844330354624824291404635077010579161534802475013005640808276123579191210633838351380711688062385231138414124002741963176175856025812791736861465969974043384709869757651593108149940790583245238537099978676182660363373085084235522951989975358404972073678076141365885540911240815336684601879873576277120899032385199193948095125695410589187406990907933431164409044277514471096412244576959997011091541989677604164300819125195040873488295705440725678991831060826429288120065028051512195155455057316078653866525364380319146138702680973465047897564244171150852352754645248205268946545033185531929400015774924176026374295400076090938695992499011464963080002642142075902100351688946129551934694959484174235144363625973003286330612255571891836224924970714132668298134987439501753851295346309981546969896044409928416572930620711560530110562914875464923226781997632069706722066054871040662596746698498111488742574269488527370907846678263796103125945613130996612016784482281640724548576236835358712451999261550577585574629123944791949528064796775381035644240537229019724728014477033646600232727872717301437645671317395985792785542035307046397987860445982516551738230460504984021628307609496385271840699321397834430095536652710850376755904492254363863042723914682275896387063715890647705017398957216070414698951600591453584083387391871805592048862811019995883747416493900526610736904741753772268455517720987905656361274958846803704614340445450831542039501522555184797847709218756928998072595104540449515393185382264031902389917887637744839789244473458843401050979530488367317760122582357081655982792218775008365855413550853094316964569814360456497848139794644734003250951814166927772486610435986157366380284176266231592255311255579171297884058936193786183749860396817369169915681066824516168990795455257123014223960580869759992668914550965820661037365294601934388410306414612653307614025975187140432163032380039194774502163663827329427426114798638146657020062529807956414545080878478984821315349458615112536930122716318005057133407241439583503372235697417131467198132705551322550801889318178650633036400708601848208086546535036427568766048429183976704182763846872521833413240603645653303862445709623475258896739864555048938895492941389975967866512662454290681024345837759924571007579355338145492085968751684651752985656122911916024413526657995127634970377463048804996987156315500190965100097725295853912142074814763747260110212523821556531881801476024243505097949673802330518570703021815673250499931546156796092496299749363020933978418264194068970017275712443514151332738223517133883491468901963535163579743837289883077867108266829097408734951896862356288945520484236975346430215123230775988674284165786662538705073817476904838651682687394062321233642682191531149686859976045591131088619486998242168238379131616984726327361379930967062881061156116150018752036784571609887148917175529384680119777297145083467976092820660604506539707390796020557418955026875096855348885976370378546890782023337630182037361492707792118001365016594040527849089363724080423884722439840797578546739093590421293945356969288759882664467001930936445077002353044739554400468088176441757881015224666721326291750043886062938413295420215490872831279691080914473812549758506347498128515115514123512454284487993680635360635216729133761132208129825920176427789497525577178383558744201864548195323298456864132279497980800129508302967980874575017621644906195386329900673517049637886987516097095796037647362872076551642415768138256728338211904491601512389035719640828449566635487466058208885858830898573329055660625416251682484660341919510328889869144837031153258320374590854979870766511928741139000512608788661275355697468210227061003357564083593489717652922305933988724363481468363359412091009668902947223261291782467448153046713168858168024321696331475893807031805626740088098613940316303203318996334183415311823482202743446377390170622853472197680626935436466666024504111812197069433129733930095240667828631411849866870850110155209830184052892768798722264283421248903955641650671745378199797746543213557392104264667702757187340054075081237820207241162779998045329066875538449329901043306131496855442286776412626904786269771276904315804797299361531989136152058123339605480469941904576357762304145959878704527413385849622067483861765326918735761097551460878166190955296276383535746467052491205101161659545410102631244036584388623539253866211807778768170651286066884626928438710216286901548888942770404717331931957488137929046719147485757434256639403274876202266656543194003552096745920516649657546598061137195694284579111718666825432241247837586822606140759153618243484623730666888997546218589699110433982862498100335907813905176543877669977442136327600411370646547581441892751887070897068361863087755509392022935882960310546712975997061962613594123967189717905822514166604945943424606990583694417462272304838296162592286602628172103966609733360028250013350897639569121448273982728922281811292745222854891401694210587055953230014852137260490786154988250181423164432634035119630995769093728511014741451752968429525603271250237366803287546556296975695140254317240746553491353196340541148834192181160020399029804466767403592479962463844635654652085845115218405763068292892308018630399953478905353096825792694843818193730134629616516884030480129810894973043228448229274171559132010382460552899720729196883452253126287214720646151757440248364412745384253493829798440874552865588983015702930429430808637447011993030797595382093354600705216119757152263456632778510742454139442073936425315797955369509099849020613495427347049234616480545314317231605238068846954098817633044228627382019263564797018671141411473131850970894666311689285664919360766837993549315857131738774102844662845473031515043216142140373081217183865791935402360915314816333694272685097161515523333527150492466878451001309099671728352278962382426959635404481699947730905585490725300174933759844140785363674705405230745365739953707621601792177319595978618306792182614151085111236660040624240833647889051368898474872649029553468076308329068814930791221820877477657081794551946560909839471789744984606486686569726394816389197871646790429139338750485735127697994303510382115475450486592582135461066952118680538021190590142535789598758317736318257748973381127798701470505372729223672727380277923330809643247568032105920175135350019940196260196664281060026005895046748659320274811073946055510959976721186632543304308464198031082864167622782254844512821279525180736742631135849914150665226525702375726727592803985691981262724644072314146410868367829070494976956973027142807190426437057754017279255223486801704239066920913721989187976633421454621926656443677833453138948376219363270698828755265055689711584188943497136252483110253181016368355052049554219964278250320695232281267134341614044625187611057295267062852571227862813545755926460067899441361776402385775188422276746924336641833062034288718874323562252889241025148456630727520493043142691506926760983775384590229963535787409001303346533193635741549141365456299704805052301806884332154320888964132746241257566305843869029737497571659813111870263644415351052522917071644560365279703379913687254860376816102864774787504809884384898347338535773265193303484698892197221516486045652210869581905161027875695090051708052889204854902533623410819671412197140321644851227564300188137781942723316889163226124110806645110955473776192181063764749136260531064663979121021869780000057630600482991495117319525729246899685869925574854796050064902466552627590270201521248112057553069562173276468569868602072266174847282230094447679991434453727317916826600191281507771522302262822021075844057812335679273152393669657232956734327821826779639510535288975261843231153825968915436807794361443572214498957086460154084373760666012428587014855869543193996268433891895999270637924168637007764197820084249008604980029067285650924871084322516717409063125911807746599279831042416155968059685245182235526757484633569870689984418194509855974849169995557161266708090785536065060558157123280736332084461030987148626629280180073180824864382240683242583565065482928526833729475667966581262071535316167428487481811671895776591940806630103067150546144782990417148572949663859734938910914643723716867805485589443515200016463759105882084651574333728431262061905067432012882935900144745618664574001353048122157493802551931405635627619269999678140423135981830116510163514436553424656142198965398224606238600577320544092860876076771535878583298542738296917503116818810297250708428306408278918175223321123765793595877601419938767789196110984816822035139480065637251811878005097726778676289346167229733461090250801482975326853154309459921622825267956058523472536907449579795121852376132110214400281180621546712642404219648970308197019244737601880489827631676877917949968845066991541016128535457592510195000780146358597063310659189529338184934565373252348566936686035657411039076827119426899474717334060428999017315041735238292587309548852373846306079270749619215286967521050434286139890862902775273310096212915449454628261251574902330342994697470992589933246445353652151715627348079161848816567895420330165111693358583474966216357735742929673250229646225834826790636644338024418586696575889099633569351043384610193482533216167893644537319663181799300661822288227234746411335970175070167935193365344309247446782197572326961579609539223763563855487733208391356271747827534695471876066493487372019549816474601495254746714762869461741845135380576624867198817507760099742736697889822997342180344973414150431819072774485209827314165424149122216976948932376613297371210439029423948103061710196818172376567995773253909483537675651707182248218596508071453171127038626883207080845086346882162135780172264657668599791224341976631530108946341727419751754593147438460194784597532487774426005283154304276880184794721637336810810796595398455135702436055858810678057242719905182948856860276719199902720498587030501816935306167157475947414640213549632697635268390024479677439419999192994494814950926593567259701754955297938907614000847417353854493404232662865051305639259284141893747318555752225004265365943346429408414643814612292391456644451167300348960225174276384968338137267364596527944897159837613219452697850964309897220689703055557682940074790579460870370271505736727914863305327381904802407791804501043113541366990584534765484410854904244245006169617075285612503403516109680484384936630374337370671366813800015818060390972965152087206491766908766309289756603796151262514145595644810836015850943134297143489895075898319808712716088189275046117738120812376438846828214527434162051556414040216689022557800989889757454957428817094609199126081293100138910793045642716641113470935199926655106455750396687311383968213176082455557827988828163790610479142857292586356133059811348248259288812542438005175466085147581783963819455124316909607759863757997419210024833017830632333795247097603118268269632588697982021524686057600258886632159907737985558466977827207851275185897299596746421519640489747719376874373458912318966264234988526417899866357603469902080910496320782040285124106501281619475342888957111691121057051909288321462220788319935140150016183803740239428225414107468399080026536321973632484862192146192798476346018197697661050022399157859164448892005065516355479139726851327028709360689082017249023428900073539921411977335183653036381152777660527841593028863707728424543244379807150369549277445746960140641210783107502709844272828578053005267088311961496393937141932672583655583927917642071117423740010677454844909216331288786912113301124260650502557152496505219791764120273615069592925188618411125494190888487451828414836140627266118021612226586913516901881252569537967327588210218033222168158035723612536091508955160505243464403170679681376889494188792127080423039718140820803976447004878251191321401241660414126247840894058713369165696384229036458975968761020517731324600562021269489945699469343059295843207684586890953303028846527294242322384612771710049053048348805609127824760216490763728755199368643787035553331127848675424739140997676900890920126374419953634457732234442393189587613841236563073133474577074869369891914238670652089379798594448799251395811616685726587354287782152070143634336602694720726437317236507344279959579272111828116070940384148464501189263155691766302783372426134244081337177598803367025338494327432336721258576506501355326274248260645515502768793652956753876310892636764674199046681426792050851052493887151154128662325811430039389141714531422375747126168793948584002065325492341196394417534588818329989010176561510902742690145058221476951057025617758662662672713896527053612613941976221969109317093507124020816731402773423595553520577899462530695818496020739823397706342230911522319281127372194552783248337729742309670599564125019851728036221991258106185192948878164024908921955224926411155670693905556071836720004987987490106647978330549647246492512616445494489094514133317522569550288059621125813548186921144069717170577538699516837830542411379213614155583906854828638019968416226732722538866974047331801106716057448748919088586768595814259726147069179168888891186502730865317692904327413829319947348677713542383519173236683454932210040979917858621053799547621071212861112457727338430555689050163386386020597065340814566472646982474799165068947404381476921195914577081490143182288071010831553691612435649646394532495070302482178645701095408307576030933580074311400339205592931133649475840233071639062951518131065217447644617147565311146425426696594864123445396224724763556091056710374724478492161271613182006826245725098493383299643295962199467737397335745047681080864706882025761784029386457603131018859278801170468428932774177232380547767074066511552044880104186197636433402347015719671252883084050313731149286073198413890578943323263804926329966871424622375833630754621099638057920999702895920595078269663541733019152983129864468670313773297590549645570654743409095791912772244752244191287009630489910773629989093851276302637693649053577659118056154359542194819051885847675743650295670750866065640877749774065550380326416655926732301872700785321461899676473181086735039597700762881970986210935976602021810810791412157344628665417204175480224193954175408480254927900901773074923087825412717255939602901578856236527723168518238290632013049184223709507668428212602588632515553872966868498948992095731988396680076777091641909749935942487619772883511366224506344235546688428178947902087533838884151086416768273245154831841811367044236619169624900245917670639868240777739202392502311496819421482860174659985418489482625692419228681312159217006512351180556467684209361341330754522400156013813665562124854062147814036796189051810815051186635777795562000956937096040597920819160946999167790936459564788664805831780688072649712554760779058849535627589553975434725523457393756891513864792918540922692509214455515624794206221724494312915144691897932148058041658514960168815386636618795325269980526057205370494341204670790755791707740833984560212550421476335271233088174813092953305292790529818363351688136869396098731473826008578779537639647760136918742484880325622082768652991121035342583315572570969470083832993106857386251901242083139560682392857038351308236326720737930146955238324418614599606855049811445710777094709039449778621276273073537815752883626264221802126833488010592149755471609595213847756551106827278854643208539380380809876425606571225665954941537491016915080218658198311664406058747833115401965894175098147675723136040208183816993603819435063922061460322436174204183793161618091770105391874162273813103686238124739894272257498887754189818255644621035004334872892646107331952130831447899170541929624542862761683220033004759031199776884030230863662123327706122630149534832609764309618238534155084695600524014153761045883766331822313271204137514205936946737262955464082300508473214934583597744339298974956561714396517077431130976021063571786906252228071125297893126122537337324522603078996494152200736518987637487267417682085884369923385777245661564529075328404725488358325050431280316657608671297882472074604374994607984412736958929097336268095031624684274189883828217292409500082017823898821879640839083471311164959105737711494582698624203005076481070696568038785531964123164141871950591068789281425314186752580100960698050765450277827228280855632595375642291753822593030045046485108201656704160578013522816359982024714554061292154863836840427568971197336179459861802885510005850765962092143263965822428027945503703982730678241294461108761476023200312296816620950715690561726849865147175767992258542054629549645189455453758577358362357717829376140261686488122170820498098730489214109412547804418475326122774340378770508878566134565506153974149137419946502363621352719771548005818612248152316727980474166024786800947977488875132160780651296058211815733920465494469574863808427567088557659523325825346016820006249138086534656675674924958274781805917904728258127471689369422158695239083986601786765577740779417171043771072386125298840841526317476517518657693378587416549706666794097229693863605703863718893563990463643344454612766815652698216261768439011050809265423959478811246377086242662101583598229989404621036806274286597455194330783657927705125314837892545490073042072375791548853323584680225737273029935999652580847850789942214315095327612692291238204026610041833484609156778997224083547710139934420062088306782616426756651554123280506384560256019141065338018701203245651181385660098190699436505429586922020791010389102570351312612091454923662601903676768753207830733612398074612457891774676798301833102815323745747658324089228759775879618363340128712241164673919543460385076849935573790012208088565962787201460802447349341188003136742041068562628997857113132899827153321958260763065086663756042896768743988813978977718031162592765605773239063294916546841822218463596874214407606506245102673919791621514586989584794490073879223208004072425877221308097422284889090258938139711117009422409447404035615121449027564436527283359925671408804519282570468445337545693798486195571207214558533318465264618049071931877845051462048797494885965713547823638359882311782685366380503209332372188070674281957275164454142954980894617471401038820142268208800671807388703920179644045641886976668643564565804644865651093407070652241567781237188187265721839175873809643390603302624447250523745542620377619997371010842957232779044513124778796525790472109546708573765322415067303643708125530286601569660758429147281686213684485093542538641636810009307093897015865038297169132422826347153708142172999455145628975241114303034797813075793058699274537219567623333165383858649643226224783792278985385080278990580451240468419477095805143160959482625926733070639543275581850075235932638543519091767150484930786344913636773478617632034681969984423472499493600824679763644654772548921114745630518581659317052098652039208926673459132570959737447985263844958094300733509333839044496177108980523639644425849252818601641702631833087971906108414410573488689461985325460839171557992499507861587968073133030237651655711471392520208565383459052644060688292317667845495201025116944807094665852410674892982861219038755285636986954845924523572727889248644379319950558507814342735754372600510110007249192960960866556881776770871045050765304882984080222200134358233726268175203442089851665262279444705207264962955112482059203551313413968481348375599279136811348437280148838489655537574021507093613621942073945433780003723209018423079060065631647531584955787802205225188686218801496198330738513027027943789684423263428809382971954785255644372376427026503393943806971356118189922402891469882309415337438245716902395223750691108503442899214120634255367161415027350165378123421805648516244604791013109976520366189566949965198599135008804877772926647574183988868124717286601455602645956016159984634400933584541723599569028325452961045038101895233762046027585052187049469097893036712974016026933175198490604435179286025202712936715656293770752623893731121875026756348572982494902769483227999654996241363237779363186162823965239859083236047875709590640209635470666921236374879751786504489770738514653655550353938487880278253732288929923997050172445851522595153228697359116211920690502317971658318014383767885353861356347767050820736258484480584320193126257480843097091170172525365234051759362938396185937904585041919107938862168950773952590175036653862295043705483235551584812578172932599862114908010833967475673333642993981340802648536683648387552430591334258635926131488699666501009393589931838940555969558552599678506774761782565258448708378406489449810897204448704004763043781984671937519822293835749424101511540902356638686294262403467569782355991896546414047027015045879633126380951639943343135911964065996606891337513221807888703208200520009356158065084596662290952599168662524896475789772178976577251664221456837433292578173946405076445160048792611016875607210938193143791572536607702864616902971102190727094193836333647967061244854169843937333385913912119812613567091233638128036107882697036209770160426637350412933256448773519167665362624779929485733298171537078145466065334954240678448157588172168802197965295200586798105229799191857269704063310552619894138323632041378346671393397232975642266571051402389900083608796515159491122258547032055635307980483477367948402685656822900635484593181378453935104789382943343516972766519878430990115017189545161955044600187994495581213533295599905932834200957932573360493268393649614767179994925393933183496477443478212754010412669747115813906381517258128574775925406097076916811725328056273076056182900940082691443980651638253104008724399342111787852214783814306531438779339226284444997064064042997165236741325662825775207080631112692050426579186763440460284110052167742171088841323514601602162406287478717890194911240480846143458021343286970660891532280612489104091811759411046575260723409145743005619771428230571272701127976690347032958743863233934688182570079034899281683914636129195329665763721155463036822530379122605388249316942289752400917487321867130938500175350668220113822432283915116169354007713677095830369970492340049670383356590608594605320124472304621681622673946860029442603528981651884795265437396188163775286882339982270514856634000238554101754876690353787130430833655558917935558118021561619048396079236671313340525800207424990906147262977010102004747720304296655706500518231890067621783540822487969462498887703495693028671131320629740674996379073756531708463793397792734215611055825820014731699642969916137382374200004862782380107335691779214601300195736947074335803776926289072812999936236578893886672035983323830329761883582740897143088087733177629830403554319290990557504236322970126965165810178214158979316540831160176472898728825284624071508471235165422048585643945567643427625004115234040532267784660228029361509794725895512732357822652988825713098277587024267646814930966774546109272810070704976208384037334884134824155762895398223708565329580334382801720962841590680220572037610059832931882674317384533859837464214831092310188963335884732662798125318763975003136120327754045400584182703059836332768979095926187601922823558046607825998623420375394525019005385217740995353547804079103970532752886874991241836593725237513710576396257399934372741677327400563591688704795947080397585144227345094164097821192822546554917807649981184625850773495164214429309021134754122067295923583171320584224304559101498685241735964931893512713615766667521733258519743852823663449788031520504619332869441621602822982310335683111337275548716967079197982867474757249411460151360938137074980456905240821244326754583609218420341315603896456185976886447670734812399202056642795711485551035994857186124279013609193316388275409645163012570298769977341666811243782905867247039532684957610823885161245280727113408750152365386676929158308362732024397722444089220764012206057321070946972813380568952394090099666364811706369704021896029650288223099204641731162380774092861217967874582800404530047207291265636857058813193683911027593923957982873894067487087100683790096797759137150802734698902820519313785493936711138721655533919426451226967806989614137351566216032605589330090121480288011241920111735235163447411695541386272464219063793882030412575692327736496846753238237282913083178983812418448109280442236664740391835303452761276620641968950449231077770005442177431338736895130585728421479412147913940830521626409243251497324759370232130631284801122004635720758180575352476172526764029056668032873132589714698508256427523686320572303821653737643463344566798051760212833675447472924727660204817442158262214481071930486708577758205918060679562281517493096543734158299830605482707713175202040650010471159450718212839404882408201901308485285812951370013283855998325554599140142519152420621162030908484495163300975093587384586423495977926264756778464216598622755295626697920168974503940301156609892598223138827766230471337389302975240265065415476959663847650494906020201664304474611036642357238611867406451293739264824543398507074783158590096399578989026478041236797454557619267321995488379973001853444830530683306974159080469216275412588692280617705536961900782617392947529363562654175316692915011036923802474534723774327788773756570760058008439657501183011125413728238796207315738786770694864200175535337066359668184364001514485056625979781192746490221971122173658016273908782616123457796689790541981766522732915416773700738999374480261261624855618072295197715073232123178189993440548354034736508912565498369416704050875886589574841643792265705657727959606863185328954059827242901985224778897797322387519112899404779788336366697260007984806728501508698683427265668585566774016419946873522584799252573645093251211218953848569555694671993386556707389075590068533913827712821904642914221825800389927127966880398154019435374815866558825734462510563054178790711347745300760671533263467492103286667531661918349085522257667051423914351433663376669624127445779311169346505968199510029104296221918224196092574165760656615026965324231790482434529349174741481972305414534559104889189532891488741485346692556426509040075735153740721713902720409241854114853609807921798402320878830461374321131788787252134573489399779258567649302029343585338489120685319192614055695186092902235871850635369694592334343510730763685339928850536593332752566083814757766095699215618140394920069417909535165829911153170136062450060646287739085508129623322796298316449603392688943341001737821144081746727562178987642312567181488091383934497389787071353025905778779763279757176199901161201565665169114417321460652433913068716580934605610238258468930400907417221450828513424370979808761050394814409775837380685458045300333515874325659817780123159103132316278015637899288795405517208073551850046770193037541063780782275931841389327905061085354685109765216051611092693725094137241001825175615453875042762617781401156581450630486432553577381046878749730667288811836056041255347212823571836097390423097344386471824378469586540052417643393239309803324702890604784711862939517643849675343572865086924070652007048800703640264446005503607179959723348573427631135712990241278030742457102508350449812124956540523914382231245284587353986628780357077608878852737592538720684915467603421156689794918405471296859864894552059623838635582185120058876677793473135889734104181137071280482548127903544020479505283074480416457046436152739845628622841963035891351088651909243040829951608065012730185113289086590901072619897724932113137294608292435046498608054553948400158018419556011156044616829658055067161899306278840295567666354428027211221035745426736338178951220973112803120152328326197162663681041921238595480386247129631782155266493108788640555780606868799314932892668154441595913698758426375045796341872808242450798240725221070568113690239822471083339422476258127896157859514144460942947729200724238485219102808821156657677013889459255429314387773681046222009964285008266249931387082548155379994918693605744428923560584169101267553410526524729997295869932892334565737973655438500437763819877318707660264870254476632239089389172067968411793944089387106579645023488718899495560847674343017928925983943877183026231504620693581573869540378440810078965810281407979066866414432113602595561959307683024964397603439169313755357789173843801678846757916482570047820633852139615424199566012107524497110394703327034968261388733504507481341842796367599397679185981107058858191502772169891521151579838278045877379857048138755043875105656136234701996207980463770380910423473770409565067087076419670208494955148247753206443043360468052247713763846736037361051831070916240474819619953478767546795690428413634268253155685113139723462887408611555920127973087352302834353674861508971154705627927041399889739959867339766512138912079212087154891479149015265548274143688583561647114533758372027180985863158867202626239610706301995410910011490841141139370490947916214261443575159728027682185756149117162632307958233583789394537836871796128928394196791936762120203853202916834246545120184996926170843007159502649175393621809231248332341833455959948768476384095900080623040702362176875458043974205632833025830320881549554588633752070660000095855246491164896644757542239791267009316822087409485762711526936420636364194963462102186246517825919639480036075568749904894745846911762507987482422214397734451021316424537933884229946235805183997723380950336351058744414782695355401690075117374905282514457903208183835241200381991338269392649663052083197624999783684740984578245983981529815969022778567837473531029425326828786304747725820295696053758379784882968646998548566086723201014409448641169066083781209858188679703435009051745620601770205674134705516150091313460370585613597486265506648308122711650678784289745803263965347843872524357002546456623060873341662027862367100662162594880003784485428588475376937489681883672428083935706859702742819656502639218801622677954993750830685072177995166411144855088898324471738632682961749483199153938280423876816244841457111547032264699401082683206284737833691323218924981405019786312438611025955736703048866484007295978787935776274766748709899554093519269537584399680608708429109206045044433525627514162112794176969375549753783611841233743942375084545432723669289838385959000548039060966704953895220510043458928111251351017040705937603249036576520221038384781696502394328771820318724763755599379158670503087754564325096165368170389607912907372062478351089678110274381564591884151068980593180664700524804339526167098499268893437602318833331623801976668821042019566252428844958517585513735208370630674139364866279462582391657374832022975597945303053520598672836518650510080708854243714181495960934441424596314780543076700048645340583383961654712642803106330365397272795129102817650584312912690341716612307210846767708121608322823008448924601342007491176734068120241792756119366760263811998077520139625708611761732199761147932174454623678471806363007422262693028886463047787868049742406137227576084754939296350080116180977618148885779442192324286874278267400289113919542129994702372891515462474308566911607142899365735046145155557892111530563724679310547041111436462560611254649761215955737805386487368783741046063026764335196085131255452661858856565742582864650982016640932185341380160601800227423127370948506087359409255230165294666881017238613188887000564991470023222612676045727990661928448653620136992873044416524357452396370898555019729894224727620139052891638521475894189756409881679832054026255387948809157143723545907124276522625031089439545926935146908424134197308549705516582109494136561024379837508365143044893801558886774609426614533830314993511173026245048483701933812600702440728893511481221606067324981240794985382495963814523425980604017529530211721390222061193409498800269426450468312088879833794626141850135054996854996300904228742915691466545568252264263873562512963705804656026468961182061709841394797601563896459082430647764479232609027889592446524094455917777443204645803116391096239102871808149004030003253480312956790008806948771078363657128577786880233703361322702834712331090969426756798787769118389241647451099054898190456844739614807488902161598259934005411118643624818155039735289598657213943059026256485643733724751399331521284292360810604561909216843172722538969778513947821342852679173209823356546192724233389512907376201564057468733076286240479584599287616399336753203710919811733277304249622887679531470857046886534952791330467316034655093771189318691239185721487708796099957949769227441995277746985529046042841761604419284057880636613188648031220141780213473575102739083866511509169005502050231432465803105180563004343581356880739912880659634646257427971360906026637557398054373323114608077807730154260337861631797280074399615460240058946209327179196563823027217837336615653116221519538109348410996004476013799996750067653261103641336123709207567813117667721188675883914618779275015643637252575935328266694328744872769850731550422834315427976687953773870645035058306761962252342172961236531668850607736218018211260385725068942959567864848277525764449484422180292954559315573202608702401719216159319590578429664774047166749999292609225607678576560150747093692548283413949074401409596482235088966213938914484839953979598838110734520575132494467089262655612984194759197040353734779881178120329818806429790915579144915625468852919391321653336556688072598315950573377720914684741633195610894828103662076971346537720752780541218634175412637865043787110825142156372641314385290776593346953528508948055257860591206694994949547301804352924462500499817391281056171890351511404067416055273499192256521664001440172070990448648982345188214206650399594684293105517678738682028932981768864252173454995862651236256193502710421836308656755489345438946363253791688561171460176897633058186149658708969132827514932553202370320047399761400390169157446610060071567308899581240958266088970598686721904400952579370570899628881103375760391011581862216603808841230830057531346116764795004516968714824700255225887371116095815133282210436253065946863069741513232459722727879224262415658817337629921279241159971391118119621626729612338577405828143286873255455162021195311881050275514836780739735956517039384137471569129475445004931162068634984125818692813931630950893062368005378550041792954457583376367280154917391610486155290267695901721108160134896911538171374657376722720425788249536719636961090134771786160753730415051523657907926425443114708278582510345099358365594722631143638217312894666432889170498151480201181836092203645733088056306458413147338983903245124135066781046901974922810325328925989420802709994134657031236080130256358251484992466540043880359205274686518133862829545879722201746694136336451129951250200243402595821644917864002766709763128870692938936955166578310492029369664300891723078754911226901729684116001121919564633119105094640451304133223445420384831118965280394311222597244744210120351958024970549572976230899230079732378243366461362282792838521270361303140163665050366143858841547243367988498552228779314927303908917993373572508477344537823481597552149407119425047899664271375066029123496154899324103219682360446282651465643290268731935150050147730087113732951383797140313584542191685839798561968707293258570619789938838483648373351871294558593271043502126887268765515705029614187260321060515520409344060937065607556826654298231784164171969592357477560103115815381783239795310625289408279149960333978615993021393451997446207318012342168783044872720571372870226343203901353609168969055898272188564380087379178174463175903162228469023116578198854281462898359313097010439164105785780031445375125542090450272247284251234311008233181755629136773675239862240479290651344362287219533717855496119970183245028465380505012863196608504882749245706039702780346788807943738930054295544586895452001204444460024985650754149525178753670515635483873599403263667730507534702485791752048016737863087832237305853158403872227611114919135791384361889470799866038505863054498729001473998938688925462542669235734639601069563972624757856717446655939680964089564374095744072009727256084746611957711658619530615026180588741717902208114052512496517950052037173922743914165096730551292516815860964171563152348030225684496864957943929406083089681022942357077289447901532668424079392105424121881138194428334547581167018227766668026161884073723866298860245317326623568608873867618157965403106906103513355817731069799110064677263599056582957336301340087779421625400762924368643690403549482945042160837060831575532414983640539666556461413014443529875243261249742901110000079219556122620348849942518791779475384112256314743475044747442035266485390607754023603466479688002262695307454382243383868924023362957525498782672361078757459796309370229676352781279064668696116042582247294249323900008939212460466189391922139886951771477670655307328443602417710460440206461838410427626879711836639839887646436607053131181143110292221519748339886272077523065658398821891147202497839991620668592067170149863095872719013954590240892559550352623027147540628813125940105787514273093558265226053465176650713500241524512240286781372961051228676322555816957503898615648471507181245438834235266270104247250998265210908173904780831160807780552874481281164574748434950713936416648894043290214485025725880273613267445348444151572585031366413671401238882245132535511518064633111380915546719416871418622135155500265981159858625406079158886785715243153713456042631141890040243885426261427431393938937573794694752840233975414787409494160045253315422544464522143729046179709860978793223705724343847941643999720382540486752841776964942430799358441277277802870847295412390286871983972384920072405485783822255458699141790913317439978563954493883652573405521540742998054512461747039067870813271037495371999992711086417290317752171710884472476007774859021577071389953114144832133330809308618051142105030286873086533275412617740810065485309380639207759630535308314197699301056159818832756702192524821006253977217602053471431443793071015334833003773310550144054781823632815629373251178963019187730279018648746415005048878926900938021596232413566703995490135671819649536630873210220649705225013353627881511420076381620069332438966555274093531076620100055809938614738195412393008752169743071558257276529576210259416150803183318068607036607027667799249307479783714537571728187619929819831775701298245367163627968813699250272209358886679892528841666409236509879336881547977854479671940060489917822770927027844145343963146019440468842024483337423831721712844116934993785664120768262056564521788490704064943096588255927204092525938559064275448012711947407716721437250608781466086030292675568125751185829480313769890386048875227804932798717359192654043240905850686142335169573241021495154994280879078017719925702182563878324464217170118442659748629003450524177685726373108866468365411817867781059400963185653818128339682672710446339095697353589402011164805480839375042927402018833828876046629368582210462970751978360972414057147325987562025463218445074168478383571091281261844891553161972996305947393006502584200417386198207453612566403308701772781254947038450695086760978014940334878026840611091315174678457667435990646319220771038688189752204930260586059882051061338899336113006202378516419344740608982149785181907917172096734292713445351811697544098519202186167524151207261802425129379213273891430420498404418559828962039940318382542310599056056853769054431039419586823306257708075408360025324905742704439988589864099441709511165521436072262909733316123951994785624957877642815617670161467727647793153740770620581185622335934688719103182533012582967925854010629350139703314467796220844347761370470719835538586891550179753799669112855431740205242191177050828947723624971960539100334098998749113553584347032052753522173900069789824986349126980699193376157025219864339436567977899959112658821450664203763527003514435347211056170570638102960318273514436275487133139552490177713941388532721614300380347072501589640605188937654522030729015534654111792986823257496947190996825070464021828922255731230630949446635437885791104333806265630873246609060393134120766607066140885438465260419927507706676574304257462035885273621318618221474804545171760877440114899428129298055745644144757705763797344933725913036631963812456087223270158809724993589996904889732516164345252641492024517851725182023153383179973034635191286738411362633468311659949300893052231733905797782031767330524028961860703078977552992659246388158276738101110426520444753688169750336314591121753218842139512771807062213093870390599667392692831118276904221005469515134483470002135072556393080346860156056675984662289176856654418133223789607424454913115352398170343584010912476669650241014881096784557383919979092186574240304075605542808152794144878186057256920502198535397775655684440247431552297873225708531768698631272761502661793747761113814792408770806910567537952433259590067370889756815276459714178183946915103473978853374393488355226711150988635228694421562226763437978876563460357262504124929085031362883075141363369734473412694182064114807441548075124517941407441369510676589258879597913387054821851884512306758444727891357919902313640546603147054965857564180710631489649842845720198839404185537279313663533737751529831779394423749139252376745368469632323825240866782320227710994700104012837807889366644774952353800525581239613294391295086823501915732728922537351085370263444331240027002671309341739740987571269905408908011727710394967521343197935901165048119190651049066366678116332396928241309878561232651306344521413114140746329478226046060266425793298787537454894911436107028281600295258131419960849680341546889729961573469556351162123149193413074937942955556323798515562818107468728649265610100242140828920523936605565278251424330863582800949370221358579589281819479519651189008038482770581922854414471118388719082996046809921963708159236860315805788609666164515029396631389795528599713173899883877483651055303182388232789913327417710408408567189000102185626283889929549555543728881415185108573902018489574318721457661730679712765235008334976919161513583200013611564757474558010021757233440420751025196772225976381615228311401612597336443294025581685568419095507285322704123765746547288669321106974511166368382244583011296462720377240158789717946202643384047651905069330332969496567616485072072554156157454569724897866425553323801912985768852440853672824004710782016043208003449996138531759171545179450329452192940267212921180033017809737290061308302990116283166149458590704985659991487675347987771946252856670973658569907840540965931270445698491299289955452570193094793099078010980239709391506268397890330949942477868937045205385380233352557378004546553238646779383195800631102451997805998748885345019389839983776667720400535853313465128810293047890139663265986003229787963456589213799879956693147870586096410544562649966831647242971142545015525752540388464532188736747696591406218215208589120378389437479914377045695731408162789709085537744037965375407500135092888062388931669687142228008921262119095254634209997278872102731211017204062473545027166695426270992632677231675011379821015449448137022862652516721500321847681067789558194939378871637650027279910868897746186043714823266098402410993170961811871521292054917741699607182858489585547269487139002511379542966892919596814254038925629301548390529699477617063217056380311673468880175466076794332249748132433459326954747231019044651257821528062243284199564296945584872006006543404860324296250241503922359734992037562014266068995660375578767528764185664442387448998353514510965003838462481317084568679865735098128688640087342318731404100653902756019893292038469435555898572896192314621924267879546556560548849455951578136060608662671368946623982395386589850409338025092256147584910360847196962401226268028755967814855887601433272220092260486039843087559577370763283080981349929096346263457826089091172725705556186389138567518607965165137707568761876016103365510214902922310754681258124280163022212177528999526512035292197676042151641587300084382563249319327483690591301664160268391509497321311938714175146913077566264631773007576637643294585254397036674798319849283911147891169238970667272628377986646229630694360792825822571517309091285203787349132113207643922084719294230333926409524830459346422526352188199600545216325476649721594071369408800592373083915758809036118261089779039794256599213214987344986880719963836544965634191955502828185328204919564938579877596349526262151444213499835774378744258517611599693336595128991501549365082883391627683636301795497000415485812523520117469201782292292004260033520681813621921115583597209847532876876416262173156910596811057380570079159032562978100184995568371579159239420789502834017619529947092986845760237851041756833879444845685384901814672551034687109485187663954279886663902994853292574983123050808675670393611988768956903765862814670434056875204545756287340228689595067010807207604231637075694509014899051265879916827535123440252955178985091046716249191815253506478825485280187480456757891751446467467204014929011073515606816563982886760214278943393282301650098421695470513604493132143541670391688909041343868104261060765092856052464797199668165266164300118393121176398489859779232547876928351589171250585591994225352228300824985158170921762157120045096290167113524576708441906958995358737660127618752295099862412311232560850856789363782035782016262894163610503733641894245668450218207234170572469209231769253019441611250347804149944335485602288160004224490336921383710390026466523820603558735049269198206790891822650364080462437331783966772182444738980157365597965213798654801157217422027004229247791313061621413443752121165929033337059780282997226347987640226592414799673779261908711313283960967610675796374221222830831126614764244135048055972269836561247188240176701152890732323859253860199296400161208153017350484498834810614513860416783784743483752960997093536014114871705654173287979274730594686594679096713691615669479533225749814371751654835222599449028151829456839735920071570460787787079613567146813226687688505039775866749520896337602667311137243578399799972289657063086198248546153609202923950216997579345700692611631376578722771330061707928794707108889621805014951083411077219249390921496632638246629445658233324379060906436271556776711562075201862492923531760321691600095683062645933158837828691608287800570151162614048573545162225974011488244417814871828253839082151310738321100954217872030112121389569176444466571264758294191237067455690743067406583464680751971722462426898489040124761510490583037567556293544264162692580486624075692138072875260265115259483407081830148731821920079223944242659579723115863819172227646187122908950918090966676294879897618142001923112644129512760232851619648510651062987961143247842232690570267579404420058094473051098924135839841531752472614901031276409346057927983398456634540012723176359158474321081376232179322342876817977942972701118121888467454628156810536046221593209622158687067870552864739107330747815127717832573807858883138681687047472047439986337141306713749484039456834844868478822353212908844790429603896347353064172910485608194284323573852077194492198940597447377824597040844893188523925446351915976138657357087745098672872709380640340909129495177518491193648541761202908056576111574759314521471078518588216733663579880516039850614457433686538927386653735818910435979754991320835829498384675819142852591934115964432374269802013809745242761353959728198210977230430200664772448058818913737934546949618196153074407303805090105574255259145919540477368524984310348869632510652949042609883456702914551112501018239157191401757698309286859988850260354329885986707074340972330498866848384990399311708795863984038865480422912062392060785172870716448007798477664233210625557566537300742953309090531240930583107133179506288246129136105963483485158879041103382365337527488350782509176204382838058716999993193983092106291117846215573096911629537435966554702590728641195135086439710458920054206071895830236751520805160368131514264636731431878341109768404962608615691156732037997883561993143625574986128739533624833274556012572442729444989767425574969898546559777189218265832585788613881193713115141186483213438205227398947757367377694597877666239927653915079909367576319112867848144581806805263611410582742372596654173393677521096593270098011621128868905322716735364668046346539927497444901481267814269449899503786638895298948066189471900942044346134148375410803605356559522111533644964801612533742401673044558215913952408619530235754028142780915694615769117131608252647172909153867775811266167503653231194199031086048757535612056459652397010575293061617718485960504414428928234035723219939012333074075111063916604433211333184685122521861646047720268388878221391045593278869630523603167239043308409602846397825835958288340384523393106409543068540819376521650907881067047263421290160075682392255554983688415210153880141574235454758642626105036276499432969887336185609010263260039473462765202152475529108390481759671464400999260630293061811556434492768726033869497930887099378596419420320263759787897947916559403829126329896999903276892794925250788553900899337377097035866380057445889411144976130691390196475781964522844500077302199068602308722357461261451245127414377946614998004430128705961578834762652692874954389198772504645210713173592959266708683931123487022543141736715711371811550510372051120429819906936824479500774275137256121704097903768734378730816416170119977012249355647988280055281003899568778902459407069470446599938603201921459518532703438817872817907964531478095622317384131105464063184070925497211998247277415445095318191954106121299269393791926770816716970219574921369735846374019502022404180943890747975880181340772485154673914963065333478014943691141304294185296071476951397489489348753030352314856243364302661756889173138172630762413003884770523119304302372529017658811916865294856908220400658931008611937991311042764647482170559385065686477168070554142433755769806621155945590971115029391241268833950475562062859050463641790263865303159296306043113364603315575453575223113426909850868303640133731646362537547809183351367866161715552484486503065891976895025554161050106772551890130298669715955914142354411949929370531074580830579825111378986929759560548922270168465201493884889268149933295872410066389348950860728931176058385608656262507614604996747088268514134533238042034756205531295744953643954382300117658819733471821128561232665148341753269052427707566667951872402043930267536275182519653397932330807041002791293472447702807895818232974249977671666570573764437978341582403298109152301997577775660395508747559605126856640150109647162911114037553380205850013898556138433741180490009885730439172229671182000308027267399522837431503298767957522110220363469441986199159261458841596823835544589617121590558284807577480450553322025670374476635503786201967286128081273728050439031722349521107282705764351761560029468532638688358598822185812399599950588906860761481260947941687448623817741645952751016509037655139185744493331623977258312122301478274474415303946988074298977476901839771221092175537168204279123351193407793144468588057979491885181586561770914494892734286972304164986980038592016963321213384267536865177688056774578283294097927705119610768521926808809433415515178306950758587225591149452218208710166016246556826656138977255902613826097740929122814966915349483191846576277605929431848372799971659271860728355731598589083133161885272011956141037182023037443867303849464407117902233171937501577953112036984001544814418885356012769868051662284450163445335672155133593083954521242241346966259214220611110283510253736697680351843841818215288251891143209847729239416410900845375842636589586416648612167556043974035366442915627609526067639154097375483063201828789860865143020610486745150573619959685010189343247913689841051143181499633775826941393772804989999360979796251895097267573724113936244071885167694027928864900055333995591486382384760586063759748005337135132849088173393469685749089452302789185201468940997836991429072369122486528974787539559723540760860725978048671967046298518305422434221326177819418975993860852079316486357248224517157842082140822970858916505929582220425120749531357237099484414961018515542806112524468100715463552579278286290537114616349519088959723336908317816833305780155561022767858346648161727667604806593992375572683737361483317608215425287358990046501868967650450388685256417674971914978315773211411969172510546281993108209839481642021164297634580476538928263112459151462641140079908448837039958475282923098270383351663851654617401865615703273610006153541264504843471924321704644326972558179179904268574675458417977068526062226369260350629333320441077380533427154731608176786872189566360511130568920214431034530849195660651222465312725596030339534271138790397609702329663907398794140749791250388166186839643214675535410662009041150809775241557018852941050604015267870034460266969468505334048242375645223358206497740500864140224466247319325593129265809104006393472115043733661153926503911656991307281880965112035595618882101125549328659244214243437300389812528651648546747690957151171576567563136194637652943819613092978440392753226644499265852965556308013809005952087448359694169311826312767352358478050164768028358289008725564411915906803575439979101512133819587745054402003412738419281732239328041171763838003533368336112007257936051532675231578536569877460098567295417880863981204692769777140662230815066633417208777520781404409498520064219773290097122260941787339871002874293419158364927078153304158976341638785756737073162932437570850305891973962491537196545912233865224007161180315960385062864323287711146249200396944687123026843094591219204530717676156180024352168146923543569034045247924970841184253599475533340994379721447902626129274239865059411290366728373513607984898743337561752418017929994233333692698322826127063932189115370292809119213323854222275869969878248692005090392106112685227795016678450069094029324988840154010499203461907135325371315990423332846155965835287017261434942601779373432480445367776555479677778707081150726893392014332311965407996374307257606459576876792666749071510114894217666396193883028126744818430832557571996451474039377297900931693784787205697884785501072519906987439649748587792149149386341721923893930522272459226021047657374799623069422194504525354163848943808462560593163897702495924653715441806476856778915954786920671155743401334664103411911700456508980620254961363305699780909578392485988801289553711939853831574194917461252055006699439853390246052865894194651253888214771348490011673582108415403487569118659396458507068374373727415634866018968955391816085050708894269984766538080909203975426292956534230102255527796675765161719218518904452267484543850010149819632647741945870343347629439410034908139604135943080867987759484555517419069880000469555681748342547616995625884336086283364213343574119657255063520212218072237036368606569387062541416417915283454868402993116774154826933688136104901803682533323830184389592905976397834617270098012632437267261967944318246088897597470176476344818673067182121711276594837818855295526288613705750225517180629288890567540024136754446988205888511264677315488431487489238537352993544205170555191651813965483186943501850354385229601188934857079800387605927274468333637856369763988096806921493694405123754750924085892713801897727481923216078099525062516501424303953942276168303298658990827764774466723698126179923305578164187182077947978375225060951235434048539186563540378884385368845306412144676971406356582130176331922246098903311057294024197437278101692254331187014628080954287688549307990436642185820385383221447122365859758007552461285350518371213140895429894292434822101041493437819951034832707138834132992197920749729449611442171121781247130111521876131456245106287791015901718959753534915648455619411280180277363663714267659541102756918793084394374252995988369813849955149182979584947673747850950983523890369282572572396788055653875244950844172991638856933963738618720717753195001931444502643558227937510238067686679561005945439093938393348315823692405998666892093499339640203772439921348861013396371467323548976477315940789261981212351301149772305744431328839605903462707454597186419595890832391079753260716902139571674937429332471917003346569345849683330554018413736820161485345557096706823841111495859224496888041158792100098337750778307673519860702163310244376675175928262242538661845835999149670524823629129148784421990162268887877761088546409008582099781034295817900935015156785190822145459651216501510619985929959906061767641819544783159042028729992883267332121667543776061412501588365032580551731741497161074132942964304140294480371730381081912922184748388934323117916611167052044447306020456646200022474761086293032339543132404513514486503562208369811430234524619290153401602316389303148892009986449144217938283918125215198709310475580102043176314046624435443192888461943247618601821172264409162643263214049542966855273748287516587521337613214874379709673227700570262412566126115134074520413887070869803366799590275280958335191594710801248535589570216063815372772998438693185255758372801670293669858586519496562967075540032961665961329139845268340886812487961322278695775231689807719231418493062071042914716869766571319867941664592223733427821911554860335267469746038477509130508098792952404150111878648875995678386226758985413787754686331175689777007924351271438836688593311211845676911058445122166412943251179996872578035820010082220652967958799027497035023285514660270323166797419422269334442353892905512686837104139386236875043817404211195222796909522731477954687453170210969600556485466134973676005486532378147331319458619633040847195461261725988530396355342221263450849904718219805178082207997044358493310956063757599405423256336314981787674763037483756911707492715004665027728180316114997996890984562974003680374195993165548133823456216889208686392400238802810112014143985775477342009717044235925383625768743854349238533138016983607211672430321449184699381930313685923838387982437847558086491928190125725641116649280344672385820655681836991244456497929101035763992103348020431654373674646542017046119554753141575955302909468801583887964532450547446082436571006470169193890518329821408082544015195217361409275273717556159865362725357472330367883187379934301610343914979612960151485310309064052245281756007090949060226388177706400493090324115140369298440095466868194225623366606504661938711509740417399955402595677046855371054113696236559802310850953843831274826250012936190316370257900119900049343194922675780476276539623582630786707396002452650747640254569333472009195232499227261205216858912157006808286882958264854943725634126310671813123068718766958502943396218622793028908038244765850015496578624436737812162325287626248957663613770570080316248133639202773689230074766142589364695263968888606598247178009275009857116731379473810579302505808738909396104638831947802529717340290774878814565255791418699485543685484937533066481996075394240242199474185732041393847091210990424016917034796197806673229765736377108000134667162165123942570663213095989620647820162964007171237678200690362027322970108324125400398777146082932385140550127279331408434215018636570194157840004999686241107969709135313939079094506651245208856947686489988966047248750635505846037265627149681719346217804794958454865965211588074342376368888657991259343035027749724043502234514141509551773967597893380787496535913764146371223569281537815423080913968414770640989477796886491817346514266552590663534407277714953720438434755283158607099500845776238667153055932450962860532134459536064372529964753365314558778131441019134038929594916453348974305717201337917342785566091528532283393674115573559235078734238213551112773165431031715214950922080888289477401687965472644052969035659312254309782159213880464511561402924828724600399078813608001151439155805161909174199310485232806590668727410283287340461726997153189569172394745345009668520305036938016764189949640542570433439137042333100171040649469751424668195886463273972930581094287808920201065870268904205554125529104775005640718988113606358877936545842983969828852987433164539675072342433033175093091392208480210914832199356422402758249908025669445771787906920621132299380115528872052335853202111259054163627807119931631935590851589298756770759338356982094403057272733866787849374976783867617395534039160649152485707868213978980743028702090378505748870461160961786115942757228049435534366845190235426337277892221311709874736563138931770377632011816414801702687709226195341204744755639729068492476401210186171509621884139601155881820437779671122284278876662915509087681524764471999849778728572178312981302154046985701401636463439895334480338524402312937186604721816403085656122165530116149795884627328361815154551072874115974662000858242674473837929552351634555400662913533461389151415975132921253639247952242939953358846438222697719844024791275073210250083425407067135925589128365982666807517227666949880991238597237850462840964581544501137975620999814628631405483977427212800111161157345039290660153866551911250632073668926508063561359240908090866851385624889159588224564538086503835222756128729752527118072169550971684461074877377318474810387694522466666859350419977428838249830199956150848145764614764850240461985831653066048128749428658748204163090234420206043394433323014196031754361834530039375306522891098156318738584922253987160166281269179176377972081101773120333337055165534726252392152073629776466516853996353045613523708325259741852931225643181527730999621550046364035174557964596267453420825334800156939541287202504249865580057453271491590981722989579844006930637134884398675822133481448469003039570390847262335291291481265423145546869277326855356422228435864914085705554287872338046850800378083236495284936966937366122142441554866862219345735692405692935516820400213500583419219005053018107692466079924384463527557185666566366632853245223209355841534104735599862943441402538140438042041367032300395909340331755272942535854674506905442983582888482148943343572543232430013488455481045162368758095004878603062822033167311325197783842236693141875289137434761963519033399267181161480823219375016500444046344489491918305490880460777800355266117533368429311878730427813644231422258087543320608504582271464944399968080983071762715907557840991362370595211202597019575424274469197970246814853509466530310169656166800751881471152936687204270922962995727108656055218562300611872174762706413329819224304118751630017249721162027403367747972606911304242546651510761980783105133435961732928332238752084302501195632204252113672506050895607969969684932961432513209704931818640680922100051111077696942749980694207288379927211484658960105037512958546210423803376736864173151619990613048008746630770333804936562694380426169625055051726255792414364053978298852505940282305599626465337994795185045113802329776375866881532519417227827859441534219214806141743474870258191288409306709080352452756559601521142167242592571280900129544141073535785583517839041417721068344342478222784171527185895460385462031751353512587713614776724681061710045792456440993610595898680829514975062471113094443765873228323880335144414703106285018528992120942654249585362493040612143860604608748544440911737064175758517581742636499692380406189253271542284494533452643023983736890450785789135826847220111937368252183797494876788388493709645694423810131413198670313368221070273739923964061265424952575465761933789843967550916016683527119608784480895882112372154425967658580442008015075260329633675807490680524503896368369394369353672172261355195412472264342016563719376049147729971247387981934704682600572742352758826719295304148673401573154247305981138928262920879877460188939865701463071912372608703483371563608704874955035995737411088008793595534837444271500946928077609418771506699549823938190004402249929522680161496087236868843698191622569881812120545259151070174844648754337830714799173929373241443804167910338273423203590669180620810380026207615073163370682902560387445714486186809578701194738814384053477028713991785186852788943058326260261589723861037120658898959057978551242767862911414636806721930970650183721023067198863548710572219623862129370928783113053738136183256741071865489788409002103852452849744613672645203195828057972097680665896523073984461132293230269586471691845377759949970825477889282486826779881974864343529117678094847803519526664005711563011837883676588749025974592192788081689648971251535079373969391718547569399801147960968362516262278219767244623938676461544723723585499467380286483873604358617414380101428766105631665466968546328117204254102066440371235939918100521379489880049009968874905784484244111071935905379214065370591440737541327336174293622153086483943369505359876052457361136167459054606075486233163424514808491077385381032881938492349923625335291853571326627109319868727096189357821276232149096770359958811268677087743927514495744891760040688586569960081684709574283874148741208115609925854763467498075795056224926187862581132277638635282747283034111588747683433666682283254376769878325880075566548331598643794582960064196986812989662025396852604469075269023147747140542880646383663726963421576371490994970398668147941852817841109913131025739198250233290987764191951900977900038041014070072211993669998412371591415270196811784406524372398712600236159501250320439575619651690972293221035354139627365502248434808562932257741585336377162369351748360660092958280590048824381421693226163395102608226068735586649188281716767977150593525454559693611993915851388554227366026034192800090160350189469179969587458343587836109111788496067393856154007600092326509828529292355183093225457428355782211980172466243293544244118514798302504514965291523824347221453535143602213790011676028254580889461629435269818833302867011096537461376062236045430549123263352701525204484173479393586080034719375910519989420965356321947457106307313362221150782461352658635885102362761647067220603730359092662274020126824956247101180247996404094374505173936694249413936288500581787622700927458378854065872257919135729150302785818481708960112440720075563113093648117170443462134472167120954167858871613215980738302027581005390459874628620910853428898177538143545848434541634980654160273927954661090709333486708429364500804325169033245759071407361371214073833239557391848030582324596229790594598948703126708843935646521386006219547513610384610454461434617871677784095226297617018868422378331017144950355657159029390064644051525173343990856128083909181679777193397969513103489913554893440864980652097026644874644016491676435981118445416826401013315248368412463768423556165118787034500160528042006293720978240875690677087365934491153306318118216044333725608884415446329143162062715478051491048222980942488627854510790133479902172743221498465558198452132809110644602875246816651401258046895515855918971202516286459974365421328242370598360573074663369951092698235212372051858039370344841586965611077589948941631161382081709528497970766513343753540273903512953044699756479327088498057066455847846334101522330961718846140967375354538371770030356410329796254323686665649683578471236610286561951316765870299282544512645274648493184043741690472673419687750021498324838576470247415809557490107826415354602551432106099591838462463035121580929361871901384331256269319234589834361361791482639910201672230500734053713449558889272357755624927566054653328558805691960020885289294431748676188342797236680407285050336352302106849397289665932262816756208925240881501018301942997366498449538595795920833952151769753634008834351612118325929713538332439944166285583589504708149365894219602722036344482331728881088452561625847986470370768897221187554504944817284208510811250419961825154332758881741718419562327686637887198452337507755804527399648767669413163769431001265113923349252677270198191541992267366966124875617681639225627891306609326331056445991738863651629057780219252292189049640594541217314320866249294623026301473689741823672538553779078272487703231374377133466470942882797743840511585999738894124839769170992432428308198164010520238362707493878977279135916337276971387288964761257316369398433330642910814789816670231558008226044594227993772717981548799123563017333173662093131651173884773349419227071963094747924575118427224336374381946831767890516422290792783721955282980313220920653350979823098800086818910357805617154428763155005717540175853229092790312244117539762725450199822516419923313046971657613435218425666548570234830296089582278954548784808664236628732185676962221246761540378758533217272006839403500740373785078361849236460450081153575516179546316864147694604221037496646544270117904110081770241772583408784412521930836172408357471195445969178085754368571546201552030856243708811607405598916053718657800515101308620468720786662296894482935051736433775837031350366557392940051191730156560815632708423329527539338602616591488998714601773555563883862416651219287771602384540639872420073546320247003745933833652309394305125514225368688461228328653648368416879362301007649203137140819823304436019140402643230345657259897955712029472790562535705136907471555664180458884326293639590420489596493656964542941584435236967281078076322504150939623393596899023996110988334836499173582478578382809248001170908818066870723410822262552189092194139447789290401989082418114634272773296184592245895605197829648444407546164809523651682010842099813080464160846626225734176142802236194604747614361527940008656174084750507750410683569412898009204342832642085048330201197963355692570276327856594087577547492627916261323769923722129087859775689007159283726487015820609416126460684278989744690988499407784271263898466025556311299181782571759512174630296099666542871234538678655742241691056514965436312675964742242386367318329102917954178398386824104649635799157938290207811134368776725254458447414515506662555422777584349086502708310413960001258871826037534409415862536515120534955360982287035531068002897128655042211129689416418464309361764636532472212562933109085756514873050683785869388370204747433098930909521283858357686755314954137863772658668223883481889605932308138143640195041520616969541417462201955955648694307306697007114702316514555128548007568134007110044200568508565092592290251819499646213374036704454123942279945258572871256183253819991410813916808492263907324093728988067959395228022347706305946984201137735787969258873354063359091565286994326151691374784652112772531535678211265696634080101368792120725717824447291457744034161668647467021783346826861608222558906434621674707842101480271035763367939335327751237920777974159586289811779698566825989457509917566695467515845498341527572261549608380664875674256764815993435003285602962216358195911905203271696103032620768839045666545244381358011244029010007143144463645759684654754146039779541107819916823536498944490085047392424466244103279591422374527082968592735820729973522382273310080264611681185410914534764961924903350868958313552720377941424881263644728199638994560263270096896064058779442186256363175091716090959058914615918231387383158703828183970820601515188996576583180068797044304227573429236060867483288153808812480167454673471558617299296655441294543147478676884061240182063682112998772215696896890498020757920279474720027021944259127279839693356349387371896022511448897258174722442379612926820561716558016227890549986956404691364607550993975840428829649777733375852101493423531176370780609941903816809748148234614237183268067148873856861583530148751013741147769207011478628600082138245160684482258876287451157457770084216845538157515786363863903946165170690673220132508439044397019851100501330148779342965378916087882306236639214865131619118290618461159940556488748723289577869008364860124177171136291408218125425584524181158286238049975112984047765150772193176897366255107067951423569345838242417067916406735544048817834560541636877885670589739736957023975402095972007268090372626693270045413282706205041657695889896175961242274600993896185240851747140137400524215844461389180881989385042433812400841988611891347813362255568797089166490114283492859382980931533459755765509345472033851366291956680382991199992501971449245636659851879041322469076742674449155363321264692606578948008107845107571359663769262835132503845262416206106694581305565747608651393782971939311627484199675170542946205535560919464092537307559572633673820293215613973517747158344775923990483770412059144055733000315376208242116581614179747657996804072989959409844378616062673303118667185603693382298164820137025967152679029445526415514282425491482796839662199938209470338783924917423974479642540266015949789505616964357334759474601191974696995919064930357332901014838908919810284425669544786795100345098000531360165033710130999710561543920863056428499800081846149303215718443410224183395069848606212533152760572583034301857753058264082842770414104776387251969634154857740343884576812584542472450047533430515549372612417801129532656788008572285782565671836834867825207860975507882819946313657494442248033464319252696462416724090261113149618423735589484566808802342259592823275542580531603740446700444786022212124307260077790100621012901240803570480736842743892658341611743122926970282360294550838531696811103196244633943032476489315813845921924658643213579002919735994219576344689646538027957664562048608988374835136654728889956990204471841683853734362498266192892434321342110683936911921827796334798705313344108982356256068880773749876959988162649254295712415782280956717425033895845597242306022575420732409431018828096285506248007387407683413677517041645081659751570464936269816952913698472088517968336739136748359951086372407007494817404021314531861544059401452725980921791439632582973814605628842932443149025754442467819640869201498937404842424586603707544457931370365019821569199360500614797544635739036730656809692176866537933319575099356098711702094575038276965930920612213126673352834160531824672922728548834912472457541935085920505110273478288923762714385833747636082770593761419507831401906427632599169246244336382872895196521846189609033570491564036305163832422097504233951044094778142428351862627023680746938832799568062811903891053474209360395181672397348949846586879855434690574401536499162441089386372132693911356434675105240097022477638550426663159679969913271321907637261978006104292031585602697198436468168114192890261825363565568531911809390217449851989959704134744263705494046120393628124407432352890977753475072975108283999799243191154361180901979129324959605381166095758972874100772541745497311228809738279175936786347129218579634246791380384678857502010091731259915776184691457545627581478155064050349829982625037719241114811905588285886764846035867037202057879946569077890418576583266921578751728006195606807705657398737466703336649712055187816470251656759154382081210995210980389417367075371724008483394063373308738610305777478620868162119916435085606627646094700134555208551193321291889377054788821762528118489606681899688655480621343315634615740781483440161545251043479156075970144131004621193001510480643715354344472483202894878006858269703152983496149260053818767904058867699734376150460724848786438818592647625132819146529424666876534188670161637122495104818478010430495117635395524256054006074027511187340146907260392714162213002764595695325975016059962853146289359457902277174072547205946117955642067445213583655639282036336821257524893783922923981902015541158242939774527053480319723880284966195971116669226069260937617901247597161083182020844560790451208627868284936804316465301456128604913410075422727636589151578330889972247761960673438816630101363903162378088376934069646088185246022056044696278099194394916615742350505148026561286508026270273193550998478100092856843452256185616166573054540705941449244791473842100213556226525636905963276831159203898439865896471903904326210196042777661914476307669532106734411736759042151015525507119576732351956184855432819373463025577943620595572906402213264414760888932766703749241292634947181616336724603666824190463730529705226145112849160815677880322882941990216894668962065052012120032552158519539428265704934568662637598808001891058032079222052611415284927952313093848972073861185475226597161360444197822622485475955830414993640832104484556038313407885655514040948739073879487281662424566099240913884698549096274246857189576353542729411594852122117591312404933223223766455796893671400865611543756999559877668098408064309691848611898528297549813157716009013347635270098449941289593630973527917194205814795358644412295995604629074272841137974985368881831041551498652955759831072795852837617759743573733453897821693496182721883955209464124942314087820288784432968528524009927034751559162380637351009906210356061896693495684201738264611369583381150157330498222573974755410667071399842885814311319003105181786481946456832187840573348506504201741859266438797323448477992998448477263019481954506917557521645434628752268826304827718141067327922532089448974651592923294254590918872355792190801547191786967098332768035629299824311323734907487715847555260920290031210638142615107709072664246748998506346199819923609329276543825026820680143095549597786249533167619975984897741017108178541786272175603759993914544129501624795886448430232184940311296143861685214076725142160408178866989439472136769019355014893594282692065278335463225903565185835651084300736842173405973141636220383386831802530531620168859380214636308928208224461387884098407461223784464245349204230695502243579156621195471241157895366965447029003412508263649572466009410197474822509201122620739435458858449409594817827174881640013192286259439154222112346984580619048265174362484553070908621216476279861114742469310557033010468606493471620980736051524340887433405811948045865616627996228433758840596288363331060950051507553885531326723423525733568603458883357098245427570876030887862593455070841478533211750011802811622203233684067263915525518066179097019120766850826447781551449248294405703027504066677575240316767956833947049609799050241516882356657400400686492488702427247368572081922212936993637992719576271901416483509966455429767331473926485274749192092528321156888358904969374503781386968882261146062788413578598200984680333977559579765716997947109985909531390796081482792571853843711009379322503429807482583867426573200444253961681378302688718855822371701379658274246862407733365431630614334515611901246891974433996872344939648935605848986313402346099773078913600649588499070904174845004941706735949173524510135167691070516893702242325188668566380260631658415077379133279720443158690599498989839985904853915026755004297859705295405402946858432832795492214542995241316728023272625584845367225401431346335816998375702574350577685469172296273578417797897950926872251983995223940662993454493680551051742249218386453747578066146471447626041077148925401313232444423073139058833317850336752814073773701500255330064766558317185681355357152837314357563443570741988132760740055757832616240248607181559695687613897230653490770563751467326995961530672874365078457126573166672589508491845792510617696632623187550754306882760396985194188924577161789925791038513465757489451163433843612414101272814952657630511746639486511350742228923626392490899813629248147444509302828203931785041104044623992574737731410294865556855922553985174298288214699178627212213383292751343880195116189512867018106930920966771294686966021358663859420026396099377318868751643014525267177110435141349454856971059451610128225754590986272857941683568904845415040106264704700307821306668865584445590195052279603851210947188077614806272818753595248315363635957816321714803371319129346926944379137477889193563107348065619890761948980276734514966374953167078465151249276607764088447718435887032919033303185565984788579489610082263649909334960493342834619779881612562029441459278002482644134682692300002813983171689887137883324622082498529611896789761949016559284879184781636209304987582617346896454804643935721085030677570874178555329887803051446298439027731705319662773453690684785522948429359516865776235853178622843562479093123650780441588573764639335437166966852911099711909482948066394853235023871878121470224652375742455145202717816403124645602750815479181071006264322655809931017407524524903676677282536559183804362853683772378446254288235275043356421473274090621311991303426184000156051974337910449697351142480275625980348890098791590302673805515656791184859187192259765778233726946032409949613542804982988836994945471751416401445560734186794495282676474836944804669970240398709381250819959002720331456313766124145078719724663461584842876720782900902228389884286187436003377715241637147110453704686100274914866985661840919137233936393780043080112580244544966959784233570216849391735302467021607669925021906614308550699038569480922337647786511496274978408993935219453788730003427211505866986542881181541684602989914542131574896937770696590218408611214601092982634928282297570818795099296774034377345182407336448850938913841941409570644822028330269366899023822492830554679757917408336634636676310096045837091388951200086643070658711098824746970496109275919861496383590944564498712446030359286835504331508224496209050621464249386553495145658540618894312736481867381703202472411894984272390110906679726700395200968080148588863134743899584135126324635502558217532243286011357004390717541496928090989617175158174226159765041498890025529531851458301320697674760999911846149379136277479077080166384667388256128010763231617263993555234899370372259085206173856414476810686493877624335810653595934960084250519360718831082254032479465821128423468980419128500476328455520952584072603072861282556554328455498246804448833893568036682327552236323272867008004023190153224082996780699574575122177288558025211211429263477415163867977762459328157347325225492047148287061526118808969199551207229402765415965937766410237611469176691449627817483750266695441623070169096023791850654465239314832417412284995811647976532759791458199989633494489631947599078707223545842116152523462449922083599038229851369473347426985022870186439625900316606159139737017281890404949066793365982652842781995757710606171316390094958095093370017674872090787995522772685686922037886180861378610572402614778312603470280183002656041456781926881502761925165220860848685155323491486298502620197947976986758087232055013208602225217852114572068637007674930550372127408981884506194506276478811581540884567748307722597660550042785401582456247919045581325966510187475201287259562109095516668219571242101708699688184456127949520056067439731092755709990804926566337539922868075168775270153069458717867072570724882421533684123026072075264048938922416467855445270023434522934499749600309394728834268004894213635281541086337466357694629080432104748249797260974247226887059362540104764930926505145318794620252790530019264616863194907132373477100599311019548870245314502396243986120897271067262525945309441272503881426731530562977045925595330271588597073099874147961368172950751406318655850605782108906431006986615130845595716708890497861948432416313538338980738435671611864224577894997308689549081873969969164506997735147692707820408881635027457169992088408762880632011677908298697928146087185002391059026393467806603797013655080647165437157559893040028208668711333535162350766031383443736018288623204391848178984566409114288249178325603630418905965621569909032678212000279853431736405464045165556602857939194227421058494917471502672908605622079502791579420569766130418676720481692311341335848711778389787160500220950104420578413972061305777425261449598972673085144854340883051882845757652773942156880005712075036302024074293456616703560809081794897698416206817436067486804688824199743006521651548884745584138124252336481039148982623706583386460950087353853477065388521894793143036018844633428128757328165325303042613350484684732533895243222573745944381918897667789483334995591922325001327685023072401682977096789315619672918226720199035932019106078817220174231296810450997108830974185075874255577764560262843582306714876632917691044960068464654401460642927076090354289428206706924792204019277402041094333493009362753729205858638999142538855440624033948065627789728068760536965954010066454777967085908014883427931412789878324281490858601265782683984842184188809143742601731924030293775316438344081400758096822734234273500030655879482376855390151858877030610121675019879259630103302113745464906533339519080910206428986983812382334282408394119252593115175243183521742859576647649463041174681775579091009401750958107859169005389233578761450760123945409298479410490505602550307827771135478461352706898084905282278998841992629693916676006843982029833530566663369255971276829213904448099272029203846152426410864041918553203539441568397160734759770316326690819771083929895105595379726203205002031396408279043243206059752393556353331168305020233525243630469366007047074987180269028499506259683964247106063722600831071390592913697598698572729880012196587133098869922615691977888741241895636811434831881006617956444163349484580620376634528345636937999704525385318952163317827597125234521652301686660744152096888848948749782126875186771905359795953121055559039069946313085657933916710642679314358853895846332297052355561130239033931987436587197969070362332365372768885696242918384636353117618701217191685470557076184736940996492695175004567031990988866383837012365191222247805695006309819624824112865089287639128370610518712867291479852295996295038334016645897102255852858066056626951119025353954366768766546180787076378878787199996675715292173149401087869388806959859353883244794288693623506706875507150769458234235134284330724669249727336393198485988745929129493399333663705893555133956038929741820711898593144271469213352829772615020749461154557930518005202367161698918142483343306772944295659494555180485164522904100945872788454729869202907414866776621154994478269626342233785621403102050596805095151549986665206034479764229698483022754637692145142527046761272936484390230871530582830242497188702354160559321017307586993479846627918183090938223259424516088252235503270908913270982054618025087740415410006323230793816254632569394549151715430124854547723956136350899599330702578399077743196821799150923677756659015989641573786893290718971265688230679926979008949951476821754338712291829058232443071365080520842091916526604818846052339859149949591159055438860847365128824728365820866474330293613861353252961282134699680529631659491377852368014401397586757175819404659552148403030484528318542734794996118373239613978406556640019803557792114324092156612552808107326897607196826936177508115351499235973974300560853440868783084279859479077504213820721352075012015890654111917163596500494986686282816922409899404743484225541167073893197288175577313853914236210361803120746422381649684749032928723886974963796062703926856574680124144339979693605167209579686944301305376896915986096878125244161390098148033362986893684531655758320948731201208279886759841784154520757248711102916689302945201075557514796068629209970400661713213589590977900347349707752524285157854996396147688041698268520222146715809395813277454652447615854156291005014742628713129611493896637480910676890739529629570909129160317876794296247952695141679096073687309222145959242971976802925757120316323985173562560400893047145119908717403359957513706682768796163727451083851953213953901644418814925665530169427813158059483397354170692768575167158887979760452117250462089120288374225193018901025942214091541494718459150807798195366375343659798902053490479299141866763745382006755928531932652763457471952841439121904364720738907775765490435645867173751276825640210405012076524310003205432661888351824447629261033692070110707665747975234499825948031843760828565662782788209111756785766728022188904049618159669916424122952713999085163729059093062010286815580158993975183011904218771951675627688009609215330017927032198125898350057188282722399223016343351706317470421905580740543773265098009944487167321231483804724147408392437804135654434945137728191260144406251383705043058597285961474942188406550495050233908152124828656011434629538491686034473641854805850920987542773313354150159545449443446066010377611850728578174522401274914717337046165790603664827570138046390929048158287224603407919168577785234177266723593483049917428719889899879866762289007717925536812466632502973541940131879924798078103900005301736002019406894088918438942803950064260774858719886282700215960631343479794456835606279490497350216233817861450667212644835454372956572814437018883374245247250781866949557348318510945198278439561465813016073116853726838495591167862076061433599773801509906103753510392374850688588436687818230562680638164951602595964172066468268083618058658130348571519834710456053081253420101586732959045371985499943533133252682966146933853833070810195076299067632100975829526915390556115155532216430918818525320485675838569778361335977659013857214668953944152990788197625791668668927689371994371420763834639693271765998555609899571213774458319447217893653270211239567428498634544722570772006817683058783651965430905518360092922851091855811105123171071161675626327274461504691148171446262398503023682566312948601715491008205892631803768444118941134782126654865718562160160893472503374006835536876120618642574290649302276599242783976844939945374642252382086899261294045243890353558014707210535871105847364217389545839271800172942533188710754026239558781843563452509784876511089395980751158833468498346262422877333866109453509187798237531186353234384512253201042192557813950241767185729315629885160234938079359632548115350677123739177254228157278487268266102944267884067955856365315725642911469848373117536982663327552124937223811593835437291983703986471815865579474075665098657126320422007562981952205277118722418605803453750456492382021403315013611512586567094203822948606648665834308256879819833851261745787032061607740306007442324453628749115168820194747381349133647629869199482415540108689340968848591349673413708169801491240746096391098303314377850642021953475152029308432117785907169706348755163950693256782843774180864015767577265063365693474096848615089992997927038420120148717727332366797509417420383656413248897498015557131548461906782684788205644895384909294452275381667063212981187886556516296478529864926676467199197825060964829542341115752500743887968698815153637291644107466617427448435726241880846586783158431428242370554967967978253857050821383381755707131084293820756564724074567234665895955122570566019644931584595862138854667312842047090331181396014360045737135434425056071266304741300447501236285374966520970077701599154141097984828173808198508658120942629291744285223938228538892555128096497004131155602063818531462800093166197202943069695767643920417421153360375508672252265737814218345587365564203281308852793107670806857819129135360063665213846979963133478607051641384962686678222477350886400177821085396898995770391802529785479231047517851063961157074769439556353479660826297504543597401459662023555566170375727460119835214201303040298527570021961977694684986588481897002051452629979217335954410226587406074436359341701153831652856624838169390934354254911350662867274897970098062888230505332856012531462252829071022476706181308294992559040681307015395055394139927602925561654052581981982146965192171606228632475484039533687891576497519301196943716757751686185348108910657493339487260094762199108488765205718071040182537399525937240686604677163769446406201402121431160314267715104932808037163672379341210369862432801209043056946935363092689066162015438273361449444403514121697147652478412849425012028569479486178765077849506730000931899189163140384575680352145762474341720901886195058519852570501568985188082997977202629811296762902777431063695562557676557165025778162748398178004361633805167914427221156933051941515653551227845268331492088387270833574505162698689487588899874047488068969381387932526596295723131587857131586268613140512192094988778012793717209397673451218889642961310260729105890786692378921661108026933851785562764487313832354346124789381457745569917260035229118559557895255550347075021094054891247189129879283520914901385778181771801093976481142704013950521075733182061636216338164555638199046996411076957850143049551521896435171742420302287432056739477630595020592017342850770010981424923575197182113245311257387932713354797301608186637361078945619954274089960489498382387428600831375373384847906094221903041965854775527568808371544713743947888383386958301427285641470947451659437280438209957149291691583303885401247553577959021695126928639675426665715465319121005629942391378515116499177212343525858627599879030783290615684744601715250279015325216040843356752363061398478246081099194265516566346276732975235164489724674682007345121863893377763983914554614235090937011055808910107397228054268087491480036175817560555148791521449154960886463361529932122221022892833392949785243040922887720848665161780310366138032705490926299434016324110546079743863790682733318414963885406428837281337398288050929148957128456021594220736757937020515430360577212383712531065409531868800647666333442392770011118666711582512858671515381666173115526797449863658345110650467011238297146933213404833092607940398659125868589980550647477267366108670902219920873162231524249368866587658386910904018435133967338208422036441180613987915147393468486632462230430481297190669057130799089328728327667881514689400914712318049570393953199643713380323163826746013615167017879741143077751803920935267280942205974595252286706781845617675518190287365456826590476083894652750005615092822887753442591399027302341482994189829175344437531328162150656532349572630620477497209289336243530656053365458183688031580219229990757672402010865224802969056890535118537776397110899692390512522128691997942188758315108737171008590932074323094082567891771145463917025463940136114245428212619388882176121697056647914954080214183777329262234317225895052736001607341725954469207385099965318631064687788394864017025928615007525924951295261074159536037938669632793106623896891806030139294502632890998314326645388346180579275443542279521335780454748762514224835067919055263965857240771711049991856529636702054342565196285794102634418566509440219104694542616139839732527689701324547442119257036327121101957244783577623533333676985074887307215542198742520639227685808183715331825395689549724089324786398732855347156751389255958741809643643347282010476006572845970519319916235512171378706513184221995751113391164209898012890111405310901096222583459611529102514318806043332542022982847792631175224551780598693339772382244608020284233378028169662820915765335561437594240919859258845295493884544403340397035510461357918394031063360560961160901686009162321309604635158924151090832396009578457134040078019814049249104664196854147395289797117384719062381307104435848906406708874878725200329159909959547915005883978647276925305809591158809138168775332582228054471876171344435839604674484861345218958896350620534189112633975796612596894267423489439227240976716928256785358254600374193225933217254263958058621906895609720799701787175957120460239437234085941213950054747878001550023298729028798629226569183282312376537749712391233793023989172058841823354292016928311159713164838987380658030749906859910912568956900222283467479347140711917407463502845894664557112962665749540475204788827833067890077114569039704495653524586710640985043456767162009309812687883346748766011091629129928365782053017645969505991557501577374906897757251615662497446775199107545510306478666529875049806744273430117081071069928779732209711815266835612113912907009555810125008151153032603574305251333193375334217474651397772693681187316391295174276231399972120882256101049851878297944543516380392604121066180819344666190337466294923315838799138532590618094321178362963866600883871867414868066688656921888343984636952702198421243269547344724588324336641370807690836791273378764132420466062089732350245190549727349615243953765875148709926202266425912690541034918685421106605042502485349909795323553586316699143473719572170009362450536792917209755907749976109429670626928441995258369781851632276117410567663655532533396206846787230716761051632621359726907145567972483722122248990601198099771432266711964272421224805016751669112795517920811392948801747933884559522484957508510777796239005607610107397109208134883863448995868124328120440314299386483287557641310240084061414495712093726393949015849450972769603412365118058319979986930567240520093201550882109986428144245767639806712304044607662335695118412395995816562063244671833952841844244422454534092018099328022103735577025600057793404170560285469873352269860879123095506020142750288436692419834180676469569972012253338716433745835366286725797275080819783908518334262570197281789254772852546304147436696712014543256120530821669136116034870472163582034767879244165601316417533279749644777393482287367552637896439794629488020465807365593432211730636971911617292817495089485005758216031583891196662053043537059650193025010331748003386529834220466381881666291324494674343393749480085458401753021397376925097703711466622784605014361262129867743658481547780782332012250458970613322839131680702886344301072185028318390787591563139058618755528596947235121337093960494231946570290735339501970458092778416556445761605258605609921413644374116994212301928418453064028865264180094298840059585866170843543506392759774517382621816274863989435423794564395249173797504227152584575068463860553681995197470801838299993019600963745357447879687319055120655981993078443787654334944780750219897216033935697875070383987404323110354680353305593874082963793051517390861236611695841890135193845386915571286448907930528642341946834341430164423200766451149379567863924943262990386112816450873770621930220900365504535113591298340774066422187631825148180748309325547395649951105140819212605395451937432018759558305082226163689734583628643604034337982208924389229591780116591329215695022078892423636848322052058906917982364594123263898526163829165093804354609474475648256307208011833560904812534977543844449321105115887594024209884102928682000879377434282705599797462870070685653544149840187948399014659664498641097328231188430684180480779671116417099391901244549189564490480075276269831348973192337807556577749239791167662963805632251238121790617463500954614876108568718798030944787214965465311721764499321666509980138135655958619842790165003319808512090646886980833340288228552540591764843404753506250305141349116797187687940618388851378533038397102546731995101065934510398855815400444253643149418460200472793092120943464239447189118429121288538910952706772981174309217842219357915839955598335704737382878319182802473497084245384584145931376085478761823854524713061522697163526152602822352639539769452716930504798239019168720231192719834282277690152985712027072869087969282484108292827887586719157605542114732192466284703088274117640646705848307875315504821392224024784701553831886098645515388681241770169395071984383201368883863036508524064266643352177381554073084434630603038000216292025210476291452308589795558707332086931592775841333769766687752402549169211877468117718254464971193382711156223233504930143658110628438490179878409341200857420963701411056375538054424827791697690250142357104029112280824743900106753854141629411934123757054789640300735138094815981442866170055038897843173232740261939063600873610771440895639880091672367141543389207104263174485689061260705292925566703580756862027522120595984995194185428714009050787969266946289692758737451859182878989717750672995795489384708015513252393510999818358245802956255118434317976077722286325346960280517359201110081397328213549786102428751615336109817072320267838570500069961205711270519201833094969042658266684114093871831267955402206815986252685555782586807905259296829159376513055486095054386896452324678464050491768716320008166375559143675511047126099655847781824319362516616329843329731022068135540445943389369443653238974216871638418592340605391440552062618589506618763943768911960376240283518544631203153284399633036012345576665841102043936666341473839135165886608930593023481637646944212578843066765649062752700976466965552901051731572684677588461122042245403414642115583942500794635843124451698905264238774084585768777581043526461054969362153332216258143286415601008492234567601000792415338158695262954996606531824381742137524240779658219654980580065897817758905575550233955902207695688963588215031399773768989587693864269381189270074136873583387685073802924365417151343323445221519865190961879719200619578092425651366750901653415449837736118033807816105977320015109896411725434106730261693464874872975164221669386350900008789623946423043202935065572841841351255363746644640287407291728660484581766901900407530309763070414634191934787036733090105890921154341944707862508161115871328965404322087892557127828379777501600277779436872235299564516320283435050918088386577465811414791371467616630224650271772015310686980536168120497898702178763572470814210391003251134516262073285102049228604881497800991757922959780350778441190254774567801760783786643992016928591245171947251256650195772159487084410657721133171250587886896312645669093890231087116333011753350402773036964791302066839879237811384129457320015423669507334585306067506474891879902580168083813772938571666434316661032777401087777141827399937412995676987004783985032289813724948071248559205921107517644415842150399636119840614072919337181194985981285552536825939884310903358952772181929390535590480400108884498282288177976576313219342334179608996778862888073818317197258627330045969664203269543209532949089520672375738843232556387528189709097129465190120796250167557464202575599823514634792937093826447007963029401251047441784643389743597501300369383977044677599403561558473112438257894375683748892308516241431472607612399354778670613313791025606496623446751452244061013342893366250953277300141084059235463156164470396734417192265811871625010895485961462585387863255676866368783298448907950640391798462164240915660920131456436361239304135867846066491268822365828494196208503762121350180933891051640298350085365633473782340616810228953211172491622407491036157077402862993271912193482303194074537001150368385941297993363215436251234178049943189216414302301684456051005779826796048524913979117066387592698564684315776977282912258781446036719944133687991611493236163862639228636071949043304078645517872390435724688497395320334930285901550956333574688509702053160227653187371712539094850880994077833313297687260600740492913922141904577274905126933757874389682479049148243696676608519406442343339612051455833810435231514842700700882551906668729514305758866455600046118456222243783621311592218607001905141964039291870041122476770684042577595890213188278275595388839672680418238988362162562326967943724395788021592647941511095607288288694710452984656350204732914209032029276470608586416005378204527913068201966350367574893472785890072556023329911418115751870367236102433529711791612812545090941851537999251000289003640267615690246500297562846948304222168740436812720250397117054842264529436743257584082706701906099591168945717073931653887499514532769809386965269714811971751077002955437069388649909821344823144446097667067824208578414958519638404493922256054484291052973384237791631687758410479931311987965565271442951550853812695285402490200496402254235919424488483055576203534205298677568564885782098586318885793113980212765700592163873832492689531827766432181834420557252015838617404707216264257217814600132787589486178364307797253764171155328817809584337801681643814437806572209249653410397657721238135691030723169848487687638092561364055411904634127642320857536998480159072592613319825864833813276224874520890880136220901662662536060037130162562335734083289379422978126825106838958376860499805141246525486621512194584648959608324492924988469385909992654638179751890567040753555451332092468178774047251036579839207889689341355697051392964879769903692859472997444927005331811396546132982863545798479042267435787775006123137724860643467353092013575229767327106747803187053933663713287558521897024652244093480125503891339264959538788767190162434642726912309898013902535356757486113556892199666509558142534032068496783888590144569285673498774652216332341277671676180491067163051163764565055791522810472841371450439039104342278891556678817145723951928237415140466327520110558710823323229403610927033373991802087078596815190489927100249073553514381885093018967608611056389218144124142890818358953057035747059667503493965601030346957627932720162193788871762685769450842119509762883595593218376116992539661500385651337499497676698877373083044557313985715726539121758896288956880048729064971589950837922150189408039101993387406169530375689045991978557870335520440021638325243196000425638147894703984424693788843338816426882947313889748681589560805836741500761159789522364832951054580110916864261862939601879208294654952970533887658573733697393265509749345743127650593494593036319163478708078361741588010845369908005598906724203781752672013361924335866036479895050036427668778775057464044278360620454789732946862170182087308071752821332848752699178576372472072345043072565775576656032689683412850327461957080596853204373956078583442324546491985872540060798747373559210654929317584474574361426530734887420172383181577252907661519336011386108797033668558940622911669693362308288747553612624548863336185482837376594976050886430021706600192737582205226284590720262372881815568276374140688902347432606801281685807026682110262016387313280155844213537507340429480849891036211853976194419054910196957255944186274365966011559572712578747869294978666045102671079871717554411426463535567118623726305915510188600984115813247970882575789287059556551284742749484904582619591887996338493798606124654499011920578822735383325657407231366183234010698799198931922728053853784475052376734753528126531388168404172141739278892661136373683500611785828281957655703281386364421247492479481139815877226632922894512832109615444896516665512150085374736322899966125388653666477040699068566818465132502908901194347571005364253333278675134486953137873312965301260413433358539407883001738732852685465671912147936188447697323333554570805049794502810954244155135730220248960424259948806305104295148472288361706767183950824400696924319415121524006054510009246793781254084398953224483692501285152797489435836695139323732225690723273854388197884211146037830142759166857940033681162980335210235327096678529962080967005997780398835055680619348291297401261943750930757070460099049407518484774392723588081744939919530412448212957093026104239069570583640198610190433581542251397324365177117289630706907947166856638023641490545118577587840939555970088375071700599865937542669624705656221423357007174638206871964688491671857765463942871695796887068932576101546216437128136179667808450877406338709654860141479995771358496438804388387866471009000923261744138221738790626905919908482394030126425420972807355420994173685058290966788222046792818835123152329899309459524027567307722891426367613781315829027626166785873344495309158124738846240257900321889277673592084485105161195076080212194058886558951378611443797928956418226271147065922001775791459107040694050357262851746989666131560801402308285994229926474907740336662134433288670337719650231694657271778768946256936406004284192963510294042472850404203394971747196328870811121150184399422092128037865088058450841360378342553156796006672316084308827258334334042305948573000551558942524035124934746166994562093984996764587629463002057481396098129667183411471808352077414169823027454276446702678752758441815385621960405529117242830339412244450913575197614468967490544847977965122170797515069440981967424600432391603999918003600411995071954101487919335045379648843348360287162162921247754731067001917294608233164477859101008262535100378620914405030748129710107704319938384892998520731432554364107120445504046987400289469450353951711595010164203511597382205227762760179025031785638493551529272101943206046838918136189317969193577822672428640604816760858039304560222282801750098089527198847659003569884980538037969079701728123455472119605295992308704871014329334172671444343426306015268205846803939273842166817855654295056900875384617858467183190905443845391302071414583402667794143606395975148488900086366365770605611025668350395043999747543677275729839004026153884064138105672860607270196202952794955310658499458698949607886434753225176160074098278854398011988028012953734568352211181033337145217039943138399690147935032997969717926195692186452897268427843711455381180236572600502227438249403445274755471494698346727673216554518062541414930302202065368518439298331735823484817583346323911947126972705194078909093987034163305811687854784997733613557467987427183097176549749116768981335897341501407278522873855498672661942993484253429804703423370260534395098089615911851699367490921725755078972619562515810441498519222109152456600422497723589105117781511575141837681324116257875377246330616454891038442790736242920381600535181137949511046495413980152202240565324357985388033239170920735177544081633589000964686642971649143854522586792217627976392488046520823683801834978272072187257392044716324595901887051684627526470598156822779577999734217891299826005872972696455623811059677890211354064022481675055845943439893255202756035661650560887975495631979032501121110149463131515128518783158520457308250670720369200933739135086827579016337370027495093951272561283431670580909613243901480293623492175274251052691611402573742691989320431184845507265553786089024602822615116063297866146927911165072944293669423066613432325543917606673769112393052109670466692835802876737769316860688210133262895924153280374200008958935717448508658184564679727734335623472149722495886083629108284281780047192600431134269888468191571208916238972816611441052923087386379565601563878579933743449837007151177438194648646206905285037106582612857290179890596343024806216998780377089372445855969633044643852986751379182552984872803876279132366583132512412198576941138070277514879878830984884570054915952376946364262269432465295621636858185075695122821086181296117441009262410436582923372634686824540136051784495282823059342425479127036380102901748941660653096088408404682777823508182344635178940528761275894414684637463712593832726678360338612873622476252905396285589361087844811355982461294875061170511414468438147988860808403801137288161970895809389158066950468379815731291363468779485652760374790121084560103856826939942835119999059192026878689524211269103214637356428674217373074107324850909149249084003144171267760570010295215408458465167884661616038716292584524153366372963729719795941797036409647005201876906977712741456756593028415711002805641733657316034853531673637281218197195048025684161391437603523668987237216403385240805489068921377444714046384152475824072528752441649764863167472515098831813993977047470916911872131558668870754379637449678900503515462765848999957968000988341701281928951435861126680138766718447338559205735331599829187372661726513794007945592906487521121741158564773988975423087011475293204108444852552299925722895663870967687946595756063127365842724597188115886495865092776924133353975253992906580589635459321393470135219545519997140049727623537481831234430793350446320973137375551400666347153562097074234928711835730969698956781117245921749738885821228723448685821637006471589721636600826435111321815961301332450404185155635673178914634898369140121088656652648995589351782734443281908143120963416551680658690127665786805483388536102128344841437817810312287964835935996946780276219879811785737241894281377898287458677871252034340282898178626036076638029330969807274352613615069735170262936309059982284982758631275633337593089963515214075796989464688029403052595453391170805925689660475320466008988103997585111783906757284237413975824063230805464848967633425032713570107565598397113153228384441734270426030520705477264466619770316512134750260425531190542882158953661657906668163449138005105833653222477731504916039579191079465046190375719994161509537057737044763031518153128039926701887718630184184497120278177029531777829202628758210793635567238211454290728726644215591226337169340740914859224300473416885484935715262827677356296457905714405927953230926432213185022307521589659028615266357598155672731021051835519132081056255958430519036482730908599535074780614905339470248717370306235500591207726224015334369585204012427780475746908087179451496781595178973693602748028369677301138113936462730542395874132400480606963319012917708373529491927357732922401875119228856624751101953415276032041027073957011276782516877543324073709109523793212398831251277627006741042652684123277481735973885718819410310975530186702923230771534266019192832567951625700352527685302112884684378683503798878354244447911547978440822857293613283716731016422665719897055823991182484511397551316505886442352646254149063807050655538352955774573477685579687132616002717902943680452872181786784665033850572937154946019439268197720665720716995114487260963284132059853992349764070681886675600318624112548322345027002444002399683678000128773602588385364088592348795121483382129801874137254158868412109703022767123884933844715711487726752731019835316159557999413320425202516217679604553574936215258095744006268690157697808026426178957112522899490925789085190913787644630446547903798536967377742001128388303871840105317458647039300579854900825081757193713820493312445076065788068414108300108716512811557642149163639978290850899552181339055553114473995011627538555435888189374863416218943376333070029878440665031842624427252295190588672790138493128131696287549345240462131617729904241091316715826395014002106467150418601839334002592905115531582266737579020715666030711597091834998024432255897303651932749344334506962386772018122842875631875818449575873145666144667071889642340902641211559904119334709407235994905465821658768556027508117545757448250880038764155313176901529909247151739290732536437118234288839505005754749942957364573089515708490153672819636717483980917992547907780562014006361839707765696178942862119939015044190403944675113529332447245206291646025723603893762835112781459933112260017292163082863301865058223866901641034091505347838029385148757160180917713925541683385804771238561373898352472308817506321541823321328252115832280021312224728584439755154498792625011902547303635885713181390201250035914724961891092601028476232705771154642919511872390925161861557072763321406863422941394294332793726510830846592469595988180738008337404042683441049460413358607266814582482201710489566234779246074788347544595811332560910383317555899811440840523863521999463850275480770568571743060451196393466255769127584494067810433169728348097395825870792230389784829552236249032892352439543878942178493944324714298320046802379265612353961343639751012175547866098991692258712063360064717638310726706523724030805705844679953634212615732032536082493071794186301485966541612696401501389083394051708704407411079777836878801524730126053351006623863006834353123268790862520084810008744159935900422768359556314887918457307657361885471669965412221687387362853529643358102633974736721183050037773002430765708765234874780822572909900936459700742401494758394698330046767385136955456799546006876234088851212347742136295387182767783456324971545757220680574840754846146083234831485036001641912453873886828996658030346637574257910913624010269654011593850783419285388203728799886452370661811509272999345993718879761668321813907056676270068890717652007025546734018537312284400704395086346430296020279025688457268397045448088892688814479959004539177966921896096309016710634826793599631260061638006603089000240098980885692166203832586224811102845608524324397376897288195949870318505375404232168271795751259505879974080028302691897873107901302152712067182256460126383808163483543790524988046963436011907941260625040023108468093701853660459339927236299002393927816417239224133384841506070491197045061742474144145526649691468517599358494828990869339070493770951666788835594784951808432980139271394379750622268920357774926019336963093584072262452237189602048448885412391938954183648951262628608101544192580279757444028209047136760504882347093306573453106472803482130438882274150870571165045649856747635031547673736150862574097249127988772718924827448295282974898006443416177523169271473411961995653743354878957982167203193080953416624607153472665139762263642591065954570824939960283942736231897207511240291109622062474230616741007938005200801936397680550238096991876738262823836681679205124834441841460678373666349476766504185064391175798909079878297291963831283931597271025541390708226724637564399732274026738448870753956740596070205221880815491334982491385591757615438984068698941709415690776125625299782180373889380666907846863047578673718974605972462984162870392787841884355131193187969388046139035580155094553185451498789666454794026712491029457753633207389850373691847848302525439136015385126357751263973742051963623618902343175579150592930015251413419252109461118255493955053620942275527324508329690271686988208601227799677399533724649779385336134457422952572400774128365422861757712581187084156316317982955890689416068143962578401402143187251398960840834623852762941565884511884655632559939742500529872012223171507313228323757473055276903947645534881956119060804350760763017385162517073093039954944714363426047230518166323396385793134652726149309921208850333489105155159456248221750645531592036541896459282789233023980944859828336330022851505194034035263401892494922430454514489707696837491147364826486748145540876941206950831529015755623225053617455770190812471044841875928199977336264045496978965992308787601587144643905134801385243705171249880909912321598652902801881786145832864566961230288764230728800209626342671436166252237115886546243028570734938836837027987216606697908548698094000766938688076090150427690202449925164871640705758765116930639363057747125163348605990008796572639323003433786020946009116322590415642779251312875747722933648236751008502968149146769243851750216431075266441319540246905788804132399860306570871311818002165930264882052144810991660037572055997913506377268850085670430020091157864365238613040103311370711708960120887230267752531070227475459675627537115849538294625695128209434221837891556724166604693523120902112652983712374997789927050002357325369771453670464337123890122800168013404191363102143514857563813163186941496593556860780767949285633959796083200771790484337471603311933547501085594882278524040795798474724694267634881165717173197390784985056153456088813006334171184000150080671626176135654715931714439570688270534670124438403643556934487339522843830040892520714992282259976806565816952409169721127809215636488675281343821809925883236502675763351874327330212761545970523736964716328539519660005354650845112865939768487147540440195742684793518732043829620842676738814463259750597125394897366618214554928443828277059477089119425154570075028395856157457668702096794159266974816459279554654884403385795604959273973158244806805060831187920623137943807540967815214279206836452428140905328650700994542949317751643853062458138874721924086403807115536178077751935425508222284422501597442071860624412269895889630374406491687119338032906877944925912431273170569978159743557377428944128984900255856041217181260951592898105307791067980945320756528190137625326705849661589475187921914570798353375635204024002365304007038572069203971624050364473302930881920707963898237905997242187358623691151701588167304339330690974748642125011897746275061573560990567944195243707933509886865637576535204330827745214278998719191979851095266650857542318865074435603361259792847124988465495774810011554897186901385398926865990728847284251544629086105004446938969122241910033348836012170214742348985136851885190443935766586620677091826716679864702499974261818060780011231600908359223199303764360723650631741378293424418006231067139292360744340173717923796113346728142410595217999331359293632449639539116726543238436885735423486027884754540026326509588041538043890517591186241939887535213755609748566137649327974448036701205101766930710518254475230422349687648236422197738895534745686504433883850476409316966167025538894930363880993921698781265522220246888668391531373706317629566915089913751312012686422132460548282970728078391675548838825008110639064076051799544552011204621332534393651949929450746500814348564666662568187801178077392624528899732166040579928144040186673639340283616130201620645831718508354771062372632260265299599709367401710073642762557552831337542238923683886417653766885069174390821392659237387745779427574339600350697080693199171199728282035958085765351768288358294492460742033554033776756888133717730206783217261639816438335472696344112122372906254896654310526747698040038776129166114127740641782599365113221293608166309610406294714918466365810310555495574412699640652225813415551443714041278679119427174216298769410206416771720476418044412977850876781807184372225586167382596394040210509579610324468659597635915973625366303697247142661319216349456217275103540796180663309176706241705381128291203693479738878499896342249236851583519449498525268683766813403345696862044651101609299244264881931106372957033813028038163568711626050343914617985270952384712566040444914885855741481209107319660692563282144767063043317935649652365239337642116805527740645433774862327176498585032210009843152621753746694689574974023219927022537465369218327650837046802750463605763305070122748233343910006838381167983749503529545767263911720379896484463107398379701000367454401717293053815602409371739952181471499388571179688267047980177381529004541325788409945572435477587621182717201012672044375445209104591049378717841024721560736499657528072750569939512533513111431364484070105947847556625937072724852086356862505629162862194447774719642242956209567869395633433112442038124162649214067154978914057805163434333835074084788801543910332913252395260480051120654492610073114941640304414416275894058820780969010920359584098743929233421580070937101630558038719578738829519243657536744953675869426584018735150040496719963801603016021086868294724886625595412299597171640049312661749346026541700409223570933367176445986236275076199017860864153618202143785706738023245968292916407075569088453541384853704813613881859940388865964210676336650386090134363544601381999769556153775562670614396354621662067224263490765822081850640379388583463992179546806116984727898615920854626335939852854516470460310581917584390649550988914046612072313389497079181070843674376551516313618175599777690661909193231891265989849670290877138457450097778077537438934604876142956915655829632548957573740070629622905855816400297644987380183061074305368770726731254633163946449187942960362804426349527406694551996953678798914598197574565960795453551973628983640812067804254186746398991073561839391572722874230748691039354816123440585915844231229556244200309792701362520768064945756554310485286179830851732214547433723531060098913025708911388466323883609408526663531201273917611992254970220067343173297194414750542768434649039500859699467590391228669107473164288546364074396043040383593346407323637739222692599916631225210982027969016253544024957388892239503117031634692434969681972101182367073921972943239879321858334152396972916324596801045170460199369803301852352054934529738344097332416956860319307278965681932222087672502185596663776267864864449765968574601805044176133707270566210077067315162300197805184071988016076078360275134207680989767795377286991444684077101019814739765290680136012672780161424970283799534913967202012658659996505924286241506569888200388854267520191008235920481937513769572487694341201106111831533864615148748186403827092322360983641520287180125100877909821765422721902148068341813281379255673282204841365261917655392749643419741116934090388532078551233434531920046686777822483660061908698126756763728475512973454072136186878408156725838049484201857351497691899756507579643037292684298609053220864595879649354962944386539539589725595567772683827725719510490193879468828452470723134513935927022000533525598202433513946240421660925341686669004704864944413679035846909669736463598232167441029882730915865438400148129913917401836723932868523402769034118763082355700730372023971378528068882971543415000479265604800515162839334838077373511694009110945873647374920667482006844262013867823001988628586602693323829552139213611287956966811092885034000418289934522090133800853011399249183550073820732452574916933435837680155157473539515333102701307194449029818456398949166924241421831979196232482886297236153327161120379087254369571980936774426311901383041246034090289907184538594996003888361240058241265332466055212025885965663331488339620859673101903928638869708321929928148065178657476946222078002644372520413880296311228314730522138222144377080831544657647993547005423290916832075503271311937013550868791022714971202537629150048304816555679216963129513112078912237357731962147613223055326392485867591157457563779463971950728681556165847739002637854059398054717544878365651255900282828040639374868758505971846468164918968494263510117461108876972862560688811695901975942898614161671834275417236573182572721841486684370319476169963789033220842837885840374260907517356057380562128809530406685999316658835233654392157631002638996495631372385396603335587706284370942600750797127884661537844941061362529771915461377303215130619367863662686314262547753296382727448142163022502546762147999231514641584611357007564260961628903535924748101105210978006861136296597083601970365600479195295276963626302560211753539810974271109750934241416180226603541441778427488889946057324629143960381421433995111126276975793712186504982325534887872726420268568357004270009540096417915737745731878560908054728907714750894801354492863080753278596626827032086165773629995094116209106354799315533607387245732557771878596584468241423906624958868278305822318162746005593470747772062300135389459889973028856982615960546844006681378481535280795704124206040378042059078249400734202015550027648961711852711082020901017980430166519275872129013682640955666474085013780331183176579403690864189647119479563497731519818603189851396068201039132262127609361251286262451085773804286331233965076430969299988040622540854400970102161299604157492107598456719882315653888922214412042596784875252631482241244790491482366046617116361462108968004842440274335326101755657653248226729160578475733139724096615506955017304722344136658932715545025510712308488691297609846920627908738793435655540458723149598786791062198651209112188883811504460758327472355474901698234868926348287509360762729782405027924428814435759740759668383491492342719581231288038219465188032811701353630253577077826439206339561690933309642527801702264152614373389755499692983993255162068672862738131512312515103942298428770075362196366649383506066541964153150960564882830360113537700261814929168774078769403910939993340305099422685867004541730913334154056632284726296491301524100571287145133542842569007990417468337746041867036129859113246321153342888202587846068253211438075245796893471172812924172636436855932339430706153166736783825698882414804753998126387412696137502987052763981793481707785498858165899145497738038313717713342498525270356763207573295030255430432200301486002207593531821756052208931553495416082518558375910590250721218577354127365507457986619086090556365291919834304290075636056308622652865872115325419610117711228408261694313914024717016303405457925797996737942086911803040574706182406522545254826365584047966588034645831295423181680160247314714831996671673099062672324591971842553262579325858576936858146471957906724433545340313526203908845032688645844005053671306732841193991352198899907201649923048166239617580153361143384265506273973458290248737598531182885111655430340655088683511162628922992644379079017318077074731262035600112720386944987848199372706803691355852261001914160192290981939730655679520416728678260839606114041964757865284457383529819986542089467666746296875557675727240720540050856843732952324735936370912787499942407148266697211895131139745301458041284508226666096709634371556268558624924977959785745518593958331391351548812972199655072737238541012718846377502147059122927918146828814191076076996999433169289453771441326123635092887870355676242528492916268723598402296323242411648131783073931715873614264990744491076603741367046926522113574769785421470332554392477619676799513231772238967511010858322394133512441703843931426196705254719481896442249444330071501093002553535044571641160618656144536414887464520954823306803990420061045921317463081233811521066857972995019119759874203988379845674478502825068916285126163450009926565449016837572554011738270325463565846618216169132589344415474997154330043672227194189512637043872366564596067776539680494985580607458056786661474272745155623079636944284588408642902003335966482256885144713783558306505769556277890097842773571450704969087604378092088390197690633899747451165486702135919381958163283526744755111026616641064480890207209638115355149517292299282122498607145234537216579342516001994786193751994932987980465393815877767781563829686370440902766972050979582373566285686841327999525325814501090536181100623716302679191452175634260190506854111302600839953387628684319930831098857335863248952211558618346547489100975858285943517197177829600676910883434102726654547056162164446378042724409510378722234058586356670258134008483488933131968869791133732964957967617974397198958686845464518802745504329749105531530355870140492558122663101907889748101871468169613568540074439097334394375095871561005675608106617906155931103997544471397513015921207445685329189485104104620400048000683095377353443763209278708456700094091573075387677546251816275750451394517796038724525512508457009548305894714092893650731736135002030375952645406609386692901169107557665116625017385929908872394649860563919626183332727356104795991675724272930352076592837388408841029517983852907430085396480845450146561771328184481926039983781347170177297712901870986118894316581870264404128144060314395509935128929150411228967641181892286892005655483979329275160439710540411165468219454790502559089133096551720362713589018225777767095155898224735881859955408533340286550389263249919436641566631224003693500554384944521643160794277661132363018369378832179278634981200996037007400325515280018860822431458514720305082240555842669334982806471801691914805639634583134375305883785121797205034051222138981676662507155125962885972316421845702616493854746712293840820432557176978620427916427470167576283084841251292374303440551422741706795286956394276387533096825934146736786451409058210158247216999530697927039716412082073990040350272387723065055054641696477369497558738262694980694328895402640561315043765375925186236751143168306057514540001224245960127099886051534517997330115957725699279150408835571592304517691779243918962243521271636021500156039122019517666966425851991110430765469454426953980665921628692238166610921161094790118556810485430998501061127818544908845606258577900700889404035528911277330485649029891087403170592517740768455360405293588810930529023977155214731773410217874864678125682048589747841410478973504609578166660850750531846588878543211041221078650972322244523494010320872826421547480831636033269168330734331889965782920215567875045816680977186548382453612834504173500808313718328991059474236363697213096929276641627706309860300894452125241308718691437056445760638980352635507142015021400901211040245939792903561677404540303972651490425322860853709035895016490471124100186472523299976328179850308705895133949515714431010451222370443916525432073037965392290929164118973257513699504222790221419894144162618591141159142371475705536212892050296481255422899484082109891894128821040204300876208960557324319316258608059231424479514479504243322650816201742920050541009067294473172723901654862096379682869797605891479349463422003576354772840991302428543366266225851337929342150483412215482802775867476964236557058735341915944963400590502929196562436032794185525663237148112884141746480218761985082328350233616055886811491606626470418920860937982463499326368645831979508040962703832492506639839145473104571044349841077972369815839402084918599404455713629146644195271261631926361372467251625136530931951687788440194716183809301444940729350977454215765445743182541098427888616157559074375124927200459153471089187793661766716519743126848414031493359109054100207959749349988557702145311871817570324180997251889540799008973102563875449265159772697628868990623411153012678495228462880198536845205085427996285343159478817385010137830686421239150453301619948104353424323449570137017944933422720032079174506565262863973328536557631738939540818540789556934532848532262926184807705742536473556808312608058886878034675229451425240728833965063659287568207473171921629663344613129764958319408460871257490436075773280760598703568161121834638232905316194610796208489057510614380717620647860296821527590599296269846117362836033678726264270085386611488335859014993104056916899578798057304895786594991424839222633652495798997029685716155090730118815458700943617951121062366214072511946493352554754583052219282661343247446150461531787828248425260267195879144931583045100738397792032587937889545378309121517018613333429350205980120701472184263061565555638511501597885786465114421972592682811432291946662302856532776428852462761181314017808816135584540837548121717617470738705660889852726838456233313456762276192456755447289193859063773248966225903832927336194557533934455772234930881608708947034345776804751718615713097938746947273166902020405433471279941557144380691007988510981237860422851483529624424652042390438158338280491239635960967813814924379494793034413373014293266099511740747811168631411273116609364015215851239197665390861608045913468395290952917794106806944292366352538510755963365942373054911806639690577857367806316755560845999198091390568483808356423437114449075199200607803793914466900032192315822741269306640731287774711578877223801224525504357344520091844409167298936777566383605785311670780495885656234656263075737177797744606405618870403267784681122885375963040865179057328650804976960461414275500565879026964228137622948876147657223433276318920330062935064949076011336765892584191329333030290248833487711654028621005866303695234888842335587850681768817887953466310385368390865757388555411492216268391107953895587260640917838142417310553142080463087601897744198912571465401526329213349879940966390852198097878985425946009535567711486998733631460979983846234798140875314916143689171449834764838674174638391059627865593676685368231902614011597306348792054718131245767087761601763599370065751495591904164935656609300721078252109903671734373465228008341938516172295172072805849698239325734058408386983291333568258425332835846743375816453454732584092414258379593132330369434417900108867777642214761583177466814919671290471365464061653382337208686090626167142048440156711710865857698367497511780368029743609164715240183340401996444978025895556051670864823341358840972518981825032681731545398536707880213867291099816882125612955812678417824675281191550700995106310982913678985118263998578062384380929782414359188606752829434727423590576142934708529131127513863577013795178329226698707479845153166943360502696476051728552363065786714915456208408695356108784682085557942879724567204302438142216007847256437121240526469795230748892154423930943173202466948281255426859234930733485079714726090954505463743271020064405156659676526728091616274321961684866262542938823909132096990475205359141716927151280973810143536501981192696447288183364979168451772717093661416188540589241365949913659042579730507188027370519386135743399441170633021339532663758494761641981764916519902519572024763151278819831255082253928340752768282742040138002569061876057773389858882436508255570591695487176455032921525176847577724523767548030253043761965447679705416958257666819836471402854307440646812391576144003436483757271700006346629667230457170690633727152957709960756629935740000528182063045279665301459473302197217920594939171486308211854745330250388742975243532200655127614318013608905757403487964681137939494044528440887213990354115132565007100805321601053992494368342934649467422331389788256701557660702258585144083580902704121277654660741499017527562264645287717478077146216199426170135158361531341709707958094154532049873970713124557120312129058623599350948831201207827849480161588283304382434006688955280054080108050128340373735718012638200624794787945773683754858666462875583720381513514284720867010789552827009219179976532246309221781600626081158968228426526660110010071028810806956443384656474980794770985987862380702195706837535200700516474898324146463101236002768453640364172375890578450073017248054095480679926492852394866244597688753838093519909289897134309251316831384526850532338472284090134441522983375808042724354084790477521240392450248429169350116497307354764566052139881128964998122848892278766268021877645351943351938970117559698884693958050420853903694340657747773217771592493126258482127890512300628198808648987952764236676643576617012635312478861466796770181382292647041242301307517462487507891193835271507872143313645114572649684771691867653029770691151269395120012063988688888638012509582820674944780937561980568096631559444946664348272809992990148319349034945477005091794087135735888551917125466007710349466753560940729208084590720993829092894321622854899736736365517458802133623685625329342221416069762164933515850706045888585899183109000323407843290035068547049377156655337030491875892327159190527009292088904642892276064780928438688846797337602299102483666568800790298692339326046140674899519145841632493666840242521644199117144624022163439066937574761515463410361818408910637425709062232886672859075020957041627988262160539899547472601995997647491151441157462756418939155207539575733891719500760151090930528345528436074447023419935378872428091100723625922724839095815053002069036741950584018848761098303714130469356404749173123647379083527830761398387597537882597078826791296790574349880562097879822763512996864509687333827187617621827974226247952960410636835902089928303497503003536058028856706898606398841593447157539662479982550643195188548110029901869770339443519542147253200051178195577436805245584525254985776427203554452042694374144324395995602322316408842363637148436989053422432845738733091710615716116940505482436360985521314282307524073412183328103098838141340755450532492470194552248136243428577102788093227474711479330910060505999317389594488372239787249105026911790774646309157798247731661750150104306871336032488926472281965911124274287153744111448782023751833773972357581287868176955417143987926379799721046301309823721320309496171202518717880723941007656996226890448460302794552581240734680388704680293288615201644356360179472304134365362517982273073101445746113813383348650008536887869120487457064985314952757235736582835044268210828430235196254737589933684750329342709940535207189532158577420816705369802600533131615583659026050580168143905485718141871145251758279014700484785372104286490317342952740335179861488248309219981996605839038102831688952406259179315577000576620782985436916009590552678501177439206254027839396330388593315968303848912486236014304162581693422713262918979988373206091461868818364494643458073340685690011340448223532654328573198940752412775057571382457289284620856055243663578106314000278917904520769917294638622294879856178656140772956002232115855800609488316392964040365355054522929525779744879207803719415937571310718549183755859541573064230592865915635284729495660845869293106142560482519324926911613944395987394517458812361267105590226198575324961870474294329225306273400479849155744841490244370469753441187717224440590641942256526438213143336676214458372027424248481652670331009715821445440854073093389776829772803775549525201916381747691981778331634013062517317737416394749877097731677195104416399748024184013835149192363779321823038476942750254392577116600161082645022483034496617961119149633138031297145265608663092274402355328399320595107289878579338987344583796413304614519514848552312638858207181947088678317259184314220488359263306309692601676523725333541039635050105530063629136016041665776397445954781397240271014688916765084755228899353099224299394260282019521774101426618520305914589954163490740620003886383515806559162737728151021950416935538798655244440329515293749558075799035943293560030756803512896193242992191056653606256200612327545734784454047893289006394476344471664448186387294096736179084923343927931909780430003902391105281077364488224838493577717352428938261406699232582076832715849692174990940794325979886899924987914018587564747966292772451903816557327512552861871883091633152519401993027164176460472085306235376765335488702084597066607710446272243936247850640622060823917936773321468810225074442079575531731267170055406312638031115789559222619315149656743514594360392588936560839083586109058317718671487481192527715940970985748249395553211234042650094775130313314852877748620084841421084549168821494500040322203609744917313806333474792552876497408739233033471612192982969522919696970093541350462896790116565806908884123205002560776213004810593266195701710755186856473139706355200482335796890486125157596394601055856224361703819571503461805700928250699714241223579027304604258136174260136253501811322919471379559361808719503739073530505558736781942174824788158174084365895879596343234285896834196901076064459640894857038095168245021262058340374916790628641588331422071867784120229326235429593216454076730207637562599086139143885856745645479926886465211651291849828249506691554002829268585681800280180361732022547625352277728162187988353460911773310625786843981676560720711590384761342316745605128240159668940293239571278091089994370332330970854187207487214945068885001524501518190625620097832886229346245877770619367385700808285788479454752118929564476144659962769474103536982915670445927784574731800196569679686976877147529153690224734374322097060974112198584122751575866292443079275985297438949730377706685700081627009666889402541034490937545385333401823963772167153705868254766256643293701952974705444660591463063179100312325905044976250382377845539394887738104693608824256029476529002711903601239291700294120578867197016334354765105775453346998211890854531706399168816250124716970105725584752964996731054584664259681677097464529291244060060808666433190207975670668198078894189970747802765567937098416500954566513098026490469375202362470776395553136458923468455815776459383710610298488534021016595603301231006749064564326185344662127243275627321507259796603773161982554594891353964267617239078691602339501986661558515024014218268983880485153079379478773005101982238173110151574408086568555362120744176199919982575789844519196495552541350892123132841993057594176951841643914628540338616427828597263505366575087854050437569191156354717518342876308383129473147351716694717106722672530919213154106323797541912312821208088085645546558108711931934682440776575127994962270271054744332740279190926342213434947780319727409843649951515916400888807835338675975518372373057160787179409149139928344765213701263835896253734253164874606292760757315643068537890543470457622238946840237365279970256547139143176609324756138748100434011839152453528197623162567610305825652795547498905243290547987759889533121314542712909019382443454454800854038106888200511092788570055606886211907108447887097848528225069658549753677165943558188474423732697917775667977799279786007303411457388882761016770573258485741487398172443203845620866017047947825913307284073185511330913743036998387459931119917123513594595643926523191387262810156532550385163970267368341566802743930998495456449130204621631950200543189709262201200480934780427717661041442492258057160396085132084506604271355677144798625813492812010757369235511204894887357409894843225819586819791521819679566438821979092925545289507896291833044659093038363560546341296053958537625659940409766728545398897379002419394133402310154468158783319981863903601090258702411938536703492090978586278713271005144044056503969101850634135307119669711350069360737725141226924329535079180893451536252156195966652017217384653811702733691692962170561956652041545040291266625350802570521204632850063525572540753807622618372998978784238918025615590678577877318156130891515334349060772959330362678865749371865656799653964381648900142216251802492295985855611047982085653023808501668385558114992783183487135954129878579739454968022922436380924110458473542319747508535547218133648065320882953818740976218362659098117961292455754065569441518678014020291000811735027845814467689205749471791285648848224215299206308782194383123753395416326776495603670457412831226689467254338064416930914525897555001308519361982067697492877120326943711802617320671293498166737941928702186413999766488840132853794597148885425421576584431757365552279693633754981681254835505672036267130405429951721224967172369022674888689804760249500026120524457048825867994385121837101917999443523289015625818342906781280075972847020560987595702587249592415172642857005544160149678806813469113999851582771623172900658974772574256590981228843036659245863559731630073045178995849644480431658887633171464209058936516387399284922146112087198917380576517208866622110695777842903878481582223333073756915600436092498696107564094150700226819534535545568079706677843281601892767369523983230177871709463397543066711312730272840827067313992270624973582023793429982167517479145070114453847586479498943955216098180154182490157206214181505934793712281647917038136881719406093473867687635313333985812450854859209695955302023755195367488667521884445163010057170770828183055862406048460444428212067568199493589982907417702739930122932877217431277313602093616214249018134649407558454642494799360667184637924315939704985197393855491725107249323413894243133756959092555675000274360703807227552386211035286959877448997007987606645261401941197454873806942002222940318184594253186521497545437970470108033978938002552534801508163472346918686745377954346140263356980013395193308358907273306587533717509708726396469832618232428242049411919551155945366279095523957455204263168458028975119804941865298745538897991354568610091512689115879042691450888673884110240278782362612297617667798714819148322665563218286200000349539059829807061533070855133177359291287527069294024367414072099756739564111522824034844199696742521686981629738056053983942590769869409152632446839264304406981343225049934321634315520093379900296965446433241918522456951731703711730156940899108891115661158581863186160225448383903945162504408829084755302049064388422240029191684435662074511525009021176395207766610929829100605354764019533135563251884306238297658663334464369031597515197825613670928908515380206590400344897507762660652571994441883136251201350250407409728353046134568955322742962418518842850659439486905194235218921012969106081984696857257341349272336045314486927951633055232002574421687459452087152227673426546099257118468186693764675424185504309195811751883011232868318653740581264600635930408553856123838393249695170717807329288629722366733211980347423637786473421072970910728389845426364560013417397279920767783045704000039639532189046580460887591408356925959275989820774669682024524225547502086620942808231963030382152714954153430841381884035231918827873924056895333497025943347911384804990794852347069362922219093605778188770252081249379304538585415736780864328542552324473085941173636327000214748666582107038321378143750551101732054018018236642516659710815124952688981725719655940951044651728579851486567594145286532778357975181555475441284761711323009875943918812070620633997665656798072979070400376708903799384570564673298409792166087791314014481519892702393423216595314328497406940288682072136958984581755196654283310324444478858102708264056387356420655708466438786806445000047394962162391188515598770612942425135210031414418243921444382501614139384070644240495009787890096739424598592106152503556113446448467217863550969077674137737458281683575643128933117846225631224228867127129525901876158901047432079256496137145918770652769469022695337181914556535021715121212993630673940632140891046700127220775340007046098181394859715933945463085217560661424408653718399518913961128573983759197347375706059929824334278168148091300015731849491174287729082989998754590731503541529486081391916298300858907688502288006283843418916593620220020122970340887372518185494466638254542114166321023914463288558004724362364924518122444067970530455078812006703365384069249376257454907579528970665609587854876537432955534978070955044657100008775570321051714893150483493318119998345381990682723397442430476222716253306510805068445764875754611367314377803703967954273224949799279639394849988720965985445472264072286856754977944728203038900762699568409175383768552470112801850954497231098565133508277460295477159365246319066894979738392752797818243647565077064445876241242562647055873781601220542684985856035667311169836840737350970123697459206152339360601487623639537691974906722433752152725747186193418797860270701556234548782700162604915227481739024743637164601113740007224874126415169684358068782531473898702740390410689336565941055406720116473081444797548721525379321419735615523437508830359193356104134345793898379519676612335465901575223342741577057460543757043603803671984904900762689878123377615294924768865502200105011390015361176545363893096849677637668117898068580222015991231050233141504348283792813130012635011185750268343638980189359461633399823806506195268906098969020378862755770594249857705939018238135124108177333659834471790409952899722730820426197328285035581412827463889831362109564680781554358800589913876736207595827165011466643114747447882577320196717220046982458376162688393580744998826734798933963536813181153289891250121901289323251382831608288270602708407587350552441515735909043792499848530354713492965717319490702314372252993159028213658519408560672202699918957122509685068807043421010184239493219497824625332234035936074981184530044037297834888878402662300018565143459931313964200268332279699372155700024727046109371641523264974234107662779498023261970749711443230738117411184231573610393316258600740304677973023073124562067039906785771319231629639777797684764308803371615626533348823436645082699192661448840981522473905012879890100017348903607237022528562711191502002242283426871126762896578367363248092944155383433602103669901658332773721478359683686807515089324665724038770841273677460807500199407719110751689280669845313573204584077981544347111839667695542830421697471486143618296915268381082741957808764460312732753746227894960126078410369996213086211785437476207416214610164053557795527019392896275558747189074834511361183426830978429853222718374346373655622233549087751646736001489950016912168384088760779453311413063425038005923333886839141622634383907455259009943647602418015213547435082092954013313334037425994262404030820710634054286336720228334195902938131968650466555045710303267635194081892561982741445329164893124595226119814298614232873228430336550161295561588500191420488785223199804105523276629119881534687085217383829201451630640297649651166615966799433889969349228564811800647031393539006731405530482922897945162514160964666838997248991403129675722322576750030245836834367726250216794747968424161357647892460399335286074866314630026661714729393923333463252925273179751154651395781907524923941974566683979345729612846606821083709713118541569693901182334335321795890861783893569827308301518529868587032487999588221718819298378635838639779483710880672664586239501542905420618707955540923398926509189157387199505817878740617170921973268657234706542732078773359552689264486875381060003300115997368694133879015658427120385660863817050732247375866921069242020848257857410267450915763701152063552482301433504210652942123844614277357140381070071130443027527431724682161227066714258840054888549547009682647087818034405886408131982362302610858231583017245551526946827605134964537833087059038216275991177667405177493383237259969693459560938170662927291213083238343749493598270564830143774870902902917944893994095236127041909399792610860514507477952964541273080332166395324008404494053296257027085306200916841960524306642378718945026630519535497942792491679297510520412206699846781933875485666328129545097074062534707152376336829762457782542356240862114437373797882748281786634047020771769270722183632055732718219421490430526337125215131737232585223212698844696191134873505964699609147604280495262187782582941456854735871935039938642222929480576607065189996614099449114905776598264703151361680975165923395575938595646006725402379534489510288309738133315989359864800550703926547877023014285881802180100131162304827932822338961852642076273101251592062466200034391642755597644496670555508295346518509235003364993444072607168795165093146554221313432101641509070423734014335758115661349279470744206351730806130452818799676628783335651025864115146886468076684625731897184647202239474467345008012571033420350632186873272005755123955085530114857872661082388618712658147349035298192320045717896519437068872992233132825648360003701392650058707806897691557670525298918358650401707781231957999403990064479574389218715174835500693095486037469294102883059353926147396032275091862395065288423670908870765222511833254125736752031215470027772253900826341697682351007277894353820039786945256669681255568361800553046561627847206943032416820804803892941101793469589426229982179167491763987457313496619529778458198766487134526040159031346875137141246941474529535278814684247375022440806987198676140098759110599611530803255295751395253133482801047739644918388913681261773425483852547441336604243050840621417006299978483565142271773610369584947894586913759777133895845005136056979653881290476058478295674948474256259282851577750861669950803054632764986162687364989012765558886828287718732404219482793856584558693061527205754526852563866945382183454663150159753054956734271549801530840202883752503485386567719693220158456944374015335278539125096754006756734547256385744065531494224401780530009449929598592232140900326660629023225650657790022080049147214171439501335380367833651373238805399615124371695085070731034042730917976560699330447042055719723559293380492388224129080882510623174573735801361132544556373419565815755610966749367382100320224661639591643103293012290424665639569845303795897840137309208115490048966881146076413678988842676274349580779483197136139048855951724285766513140029297601239783263393586628599486933547535274579896818966672693082270749639630077728040897693292150604470318191662251838448918677552646532785582499495196020983553433276290450223274404475382062877880932197236770528949587840178132597396996440146511638319031209921712070524787429952167254733560175285090688623523222691447981713993262218344243180523043464610552734864731930141743359862247446682793574938648721507550390002181029914504975691914302759162148292436197277715513196914012591350895775937521131421987389687487707089635218943354352699426627743985363641702940636245141070786741716933999346458836580027095929527877102685400735658015656143482854737793073748973626027052746536748868668509463955740464436703210990409586366081505615883942897598758818116895012449261700360844612534500816781532692083984596505200605434849883413823672942008988268311154558464598879516766013718781797743783484135326285621524612406641226705749047318081005984157883094483517041774453640955080797777275157890319092918916466241572484802166189238478091938224457207447592923148261452962942861648578669644859669220186216967344218236053426223802644323176639992899054041081541755296580211009905359554949239491352680773279901201397018946125914320065469083763192223057260974501466687152149512183535090003155518513150320060449988491027374294353299788240348684135519224301299248734949011234815475848127311476107098731199044711347866828767984049472834345831668017302959003476589669065318441363437388465586100147130951095099706475022495542586983092674034621157325444475311546047763990763097706209310822462654365376661401233629436540808227512979706115845813791009947713508605435095024510733576640049013595829941782536712609888453865181399065937101977964260760030730904194336038350696117445072559778804058214359628256349449984471634055711977425465057387106619270428050195797034845097788467482944387854756073120370966196951962901507798586072950617664593294105214459438888667374628894907198519930761166439173347732817076842364514807400212468917728435993285598236046898237714684237458671327516252807691418427480928072177694684902135379582642274927798190758528622955372729725772419571957943153592188975881486647134842465535685515684973870387667750120126957034385666413500360630332617325837894470616879058211850739177662461180415916951950855745198694268434193327837941284366031086741708256911928922034755734525287233422944145831118492972923990230615941639555694622559873291869843560842259432755864508015081007719319825616761802727236285793286204636846583660758751741279596971674736744343697020482385740959728951948397010978309011790747190009514711138101663879168631537586260043532077630736060032886433914750390479065716381381151729282704295918695786682125769893434017357802538336874860485143716136578960985176942787691666650800057900917553202713640543054205061615050373033375560852027038448303508869548409383778793609471337346154621980218135358710199892239526410253222455892446159662729670607219804818407628479257571886153328038815431298898109338636747088863526674442059283722069704879695513518190467446269597824051114957908299080555760945623340807554634840228351794469892356744603160546906529155039726232541131080806400211971155310454782546804812188154837275940488469414468951890670258711258382601566452959856032995852943429763793207696592217711906051710129365019374756611135496184774535783488444622949094153719901685149023298709756825146531385225298056161206357683007342837564403485510423711291728891920363923488534880181041383786004568275724479153086055004852071831556712315790481554251431394746629090483014588972426926443723430710429853014931211951141619828177614017572874223970484733741211842171517316329359250842048350775509015353556230988665449560555455421782396507813927540405680964980286289645725382463823763623068072093565273016123871172634017509628403178585708659016128764298239648358599468981362315228974647106025846402925265564553146442405028203081971226463869784924932835276857881817240225585526233068549925159535560262970892285929031295100639465912421885253597079710117591543966020213159440509322768793271260098557922468432587106792475146127155087795127927774628400423721889238089867403547604808969338007528508456580071309033898528545864091185470517329104188202250409379372348832575853561367843190811142255596204016153809911462149705544657516277098534994894921286141011205234635747606255676371370956869556182764673532560480073800009255004703726151355735216255209725295895061216909184704343192703742581076230838878528942707364699737167091587490120440712173698458342812052554355343451270014243056603100201707570142698853098150968245443510908879430111150121796807607688559067973123844855127357593220129624085729690123334477845987382606871041180122142197047326342024774967310238817071098994157157152977416783940152578541998192792418380224538239896427777735269835217693822469217824434846744354185970304998387783665142591723660283301937349121541086662871200687434548153233692745535029123287526161535168758123821801621399823394854867614905138037917401644603366759433745951521543573562073152587965629310075178167366877426675249545201228943716549770440861223735718849726437201795267716511068916263516957696225101451903285853817885458921922361576488473157924640080916338730556513685145723450992405927021130880683218396527333658284427614870797292299009815568690033262550655399323179310054460915862484208469906325720078447921863430210685381329577748173773603063731576802033512360731081703355835644204968057527937604575854384399907668255065963797086113829325652368427988089282170197863508891848110090024267702529821084855876684628730122399911002376050221509982752356639656897479090390123088541084904439146711604561897602879350051316063489441052643034707900946095051217540689571065905842470366747135504754292818469848957529400521232982044715623511073018189776431786845859436650407860954036927649962840908369659260525264282038155634884769624652708772539385429410167313625652472082029633496676263128547836927448051844456079108640732839507043449978316041182380439327161045591700368569444169836411302093761893688632614128837465622875589301315945165324453979413413180710134224251199341623125093178034443260886873367211336065946673809380080476246621688289748798209038430860124360281143085361045229721040688857174723881024482490279177861779054719930257194323559957729877508035042994947743396250812613949352857762052873964344661574571498905672656000336081916777378334095314095330356417917282625586473951780110366028075979820137341092194131624655264312148490012333309420200750160379014959838580590782865122871940644962495113041337940930729845574726360219641203151364058470211657902746335247848026748244947800960708854686555179429066472646454754052586765425146534641556739711031147543620516207297012283179465190682256393608516401480773797229926881034602667744363702668600635928120688901819409058126045868457134702962310724730559183440465332008061147065932009581493144662795350575128962964759181657322829170461293836136145105155289149399865328286855745230473228449304218607811126382532420535511939254490939321128217976104760770917728292942746237163606281962723051921796240492080407936226763955498033349880471258146445581043239144271916402619455309756356076718651920504649030740750914058429702010980754473041347961505099787765280705641871216961677718485467578232634684085250417406197506354964220839213055310210947046364884469865061652651618825459934544476187024545926540467391750698025030030645326174062617680498984462200674865137072169278088167958509144620270889909675867238962959602044080418726661922675883315619978987045207354941796002639539555509199729288603814821089578603541085591164930133429491266873882524911780964500981205399812526281889644854770753421851121047293582997849302952243257500896926103662724050294135826146920433536119268426619136165445201115603496899006881504577222789640193372439294478965122834342228694185757427995285915629327874426137803253694734018639589501852671871337120814067899817318327274241032838035385096041849075677265711619757572700487751941186187100460089371472205697153718576568782805179455170534316801412656586615074885654738356433427168135358530193714201247225551991216514812132245378174915566202229739022892562582493603061969242515676650788333802845823710766711113079644624677070301488165752100003193024182795496380836782272813131018403181858002507038094211963215137699598099552088076646940286159358076560032019718777923571105883060865068545855018197346007504456571160378078001110510162102925219171988934911848772131636886084430618089054458768544205054193780649311809253506473167072931000021990971361673873555492900333313513736158814465871643312163784258542868624109197423074592428959596853226024257112738686190463726862388200040077732821487876200603214035615917996288106657660422051899155706082709656333453336054546163772105754147317882814439254967211913307305170209725557324949094446053994532651781623110354338956384387694550954959222161522128490832186241825920960744916807548886972049318849570477937273508534689814364863755948966488112805522745542937457589475009522409036584349506851551748096997875423428725867886861572749745584533567536395637810939198775457788782949167318042747389332995295141642510303973279378751608990958515385682765823401952730716634572586374524788119720874054982047410717340080280212779536594884311766985057928075739107870937076186212914349728335829206817718995083603051787389512712336011157217496261069770380626541249914265288881984091944446063117718686970292956503433874771585590269311612348902538594642313151959057059564010334242252007603065535722710497099853876353257682682054132369919203195501176988519681543054943265146789284845772492341797238632724028056337391226266097740127316106609840433503261382140071977139014182214783577723829473081998811464619006928713852807633844421962460951424223303414500730307974863538786313624369407640041518722501284675558928685558081279249888826039882997483524371003545266566809196580620946470453182344139777200949254021146341363852846423225431621709816701286557099262134935242041795436140434329452638285060330576038899690384921921261588707681786240701491326213614540213837674304425578670348319022253373279349695181053541608098014870928743891564501670873686674432639790413312125843063639765438425051161686518936241683993806407543962555023945475567585341062208599164191046852467666288167239214290047546762013522132729355453960468155393138100899089832539374119675874709509456509839553169912003050024213202906583468093344449737849639636788116784146298361643109623418013960190875560179473365573386354266417281021992603583129132575488156408079448461908126183299224441407566337364224364281419262250376500925139083120412797122558107168009124289885590952280456966077058133705524249957872492007645363856871697445856059227851541739437927065079269974257489549860845868245755172536803585655172389537016589534866349841339404536256405834804790971600065934350648054446320523169923307337170329296359238374537084584350285133005514521870444919999231305970226576450326564112710060772239419521748434912623430246143846062210843150041264370062819688410375148115053830465308749743751293886979359895168306642765277225931150142806800747460532285250725896388018112066920770580788993286243249001338661266404316023446873272619756136274063438473194264287928124964881586150705283810693665919253455795150891090325415840168376948471090970620472989010663919489829066113199350214634897843713533475100488349116314933316835040582803341039777946490189043669769622925209397982963436951682863446006214761930268697511619607058979987119584054210087436692573669533854034291704902471962729162085644680541177512349302205257308845169007619548731867592724612611981726952915443523878650465858112103127992620062893129163356693000969438229101070592346742435754368236471713594631731968048890985079762565725387292002105189695924386164327793320622311321881319125902908336277537545614261310651320416192478324981645821584250112176329437663628168496926267497577923163018043802832018666648380165114582247184304213618983772407270475446715906931417518698030111025531151379850259007640055669387596934307293049504939776021748069064302081847937009148270618354220771881184847072766575997131606471585116486299655184909584077574145738138616406143782118359073140897636120807052732642825101154484121145106741202942647616896935927081868384252394831777449256460227345767898750681612471360620750884210488067583260380234233210436285810009306578930575746996327808674049750910986871842215315599488786714110658721134149679531511213882944282907916980961450318335715449492204517359518520435240100047036407906739119419661109513468938614937367302843175888612295767998929248879950560020172826138673903133400556970208203071154998945588997389743012222628789704139803152942830040594592412444435423739232225775503694373549763380933435811377667686318120163031083954605389114998076749629030938700066939443145220046275922992007200354608437544833589230774118679280140979054898810715716745853982840754532131941556237881892710392292286921013765867774134451233094132107415985444337632019772296241511289801099718409989576810208918941203647598730816250777237286387862253078241073722318347157589966691822022584651008843679401729055414309912449195459364537028495946727052419889934757780998555308124765702222247290098117158521274200294996681550108074711747374474093900001958703666631548775812042118713607337999724430448140481840569016967961284383845866249036443325153345747999975331217506386358254859953724454876192629982728942517830450165267748831862058399954933508623739080288437875899936632288982948581081119378953225458309723963608434603296933986212786959937913289879995975780915654277161417278270704018665545715349321440154724215224667035349715306136050773419515642514201412821701239332044522764774474273628041698090512866100861902165697254793948744528833171767139613376405630299081525127558216639255051894920975763455446740227111278669261900626007697424696812932361150832227082847667493236497869952724533951715089136984374686840463475935543120921974632566461683515849257880427186101565023788090629228262446219997333952182550891301586998552057093023940469397069881116618880330689808842591112566707952665960071646023077019707577890445654176408615875286236731855240600700239539796372302475404485890751749072811536045003382379871849601318703915077365382212833255941225020036001268196306247131563080017194774208030544003676765662241364461489965423583298611822739183674592448827239862899059586923508112723428821196723065468863970303644019211937614821630863122443092711473970208658141411851789910910928189485854056929096404904798037397509235020499653654014025551004292321265152888221481059275267133777423186200457998567449285712162668408006547735855908985131603642562075271631137085765964757976871488134196931843368569154004320461073105121972206155358936250913085406953937054207794488416714755349488987306037276020793228204499885606640641356178988600881013208246727466648110298995769127842018373322725949225377802680141850115178172397938917536671704569223556686197308293490390458248073703096830919532402809888905287027992592397593897025018680671951029165361784493493881015554850426550800667275914539682707172172874512045566243188811460288253039492436205980361152761383713015137441366597468036611115461865217988257723683856240504785114239966842111930451645750677381150944077797360256550030762672875448098590443767834898321791315284132512195811840531219099057950392065830946742235318642304366192839300443484028158395083195136914396692225188535340314872139833819766570704975611337496775954790510172755001834862179225067294348815135748652459675864366209202137925099182834793242910767491173229323745272740462790722023800573825253824809846657717540168124838622258319148958048986059225018245828815437862214729508587421543267366251803188164843484787696698019060938005230932219601306737435749719047992477152720797476577414649764775661430017153432587306881169680022006058182703402266116430669969724039597103104050653120014030951197922765823440262025715642966787488176192597249359045885586159094670070391100332838551048497572623641315766302869718311023940869659266241935151596769599336103095841448453850767050821162058664896824051196808862093977168687734897280354176788100913191592715949513658138038066211163579032744025212626789590171875920646777268799899252315475797990096001434293071835033672240995845630052499640631619017321002723375351066221716332748940080879633509304488953914952788835895764341956437018438586228282452312541152662724801265447929586606773836561691845234413418824898530459682395857643161611907008776348837742112700676901834421199290887620915321977696991573911482981888999253575745110202826279554712966575817467904579116259621876517464629011651207933778938941613301299893366318545575942666918262587664626026100840182167494721368241301168075572521212135387922370631683166259132868947722814411666392802835286469407207890319354041915230903446985561254685071904351244276811808389663163413209732088345019368953787133500280831891204800070673224977814958246510763398316383442863915668855765897994338671071426614483628576606631851169556677476349551462844393625866043115367935843446164272107249514338769225126148137267547419910605780196913284420500393007291726726932476381544464561718716982274981930737850469694989152195556028874767300481872852275298473845607134574929837600328022987629647211792094302538596679828644426685336884986727073926236997476969125246545387510664300263574930014084218877926209116340418999885628547522141511015451918388279101672760280555574307328516110395157355983494534453135777839906591612179994026618283390312790677996817830936069891037980407620090258550881602113073968386924126683204842228026581693949944408518952474859820037148635983742290600549973666433106996251355409392982652287298441874900834357096903929146537465192094970831478088995743314968909589218332402627436193247452559664457068942265230645216152493290300226546620995301404680351919730081785532634643457394077354174904595390429034764003464562693636235120385323061521856604665955675016406512996723399377495529865612975604866124858764300131291033090393053039130005965213663806689314716963196355390672710425872000049636793894508367024159174520619162023590713401884809597811139996339363194030902299655568449913108736115093603638082622719249818497436441373841865179791396043603089963857493754989369051291856705646123267520289902257690347427305930988625796143295431734495836519028203089797941658872114886780032152113626730998807923020488385180126940079540951216649655635400656079131461410349829272236774065865541971267069915332432350211358198755305577649308940451973264988713583377482948475874350236847878864700609962176515456689991488007490829536843922242428655355655410378977527532382729201196692259213027075524001364678642415392394903946216663253145077251560878013112507804402725219660677692492439164044358690038489045385217227603591673817108815395813458045735731069110102786430756673933736509470123487213409071779495154580373960590850261416314952020842891816934157787195218081513420351185105972609337668037445199046477771542643604047378135854004191719100716554511683363215924864910926540281263236751393892292331413475569774204350431990048066357542301041091336531450863591697231002156614921292545542509400492368827370844872534641424707250889262198896137917684402540417730295857115818693699005350486478894298035062489182959073977474353266264382759012053969463935751884106298277345965190743985862033883219383135338830102435339565347011427559999547052604379105765670792427488426654445141459870913412518181002250717467258886179664503598773075750233004236633873708891889615070824737453799689293874932135775964370725905040591826195352910874309224213986186587094063093300123517730469520765343328114397140601291733740956736489836701168114831760810153873701177785526370382866149696276165453994434886703464368869748699772937343806253059754437251551708527951706454719975989058302141165158950113876541869162593080644277905890428843072876555169201206633045173722811192045336279471921917899731335078448172581739752262857383716534606671786247026551489600605347538524421842798470456621069616300170126321710506804205108023538888629111723054917645705551282026611881342881487403145078786321914662990180320379908803688491888925690370866531988007232849307638379870695166490054073935590340986575582266612648162854043423125311539530934631853505473788889939115164756282532068882140644880122496635034842617180613215575081185222269764819857744295124401905807161050213591949818537824402905678248614798564082036215682217200257769550498232850191210338205824584500136418053178602991995494698161217019258404974061766258768666407224463088556178636441065438229614362322451587191260284938943333582754046883169970918553121687529048770235607821990154342842871865495645346466951375386897555628436962040548713322187210358612502658532848752280290403417062838569563259282691521482131575384260008587910769500163027532459411652816266563315358634237472279333114645958413675536033914970440876643393118420948126402000528939856002594733644542857585610720134012964280103037442969927142421103677533075608535244309940965215634527921149038314793574984292224353338770612980855467578244831411805941902127316422711313951289329397351639273750971082292355389614288904825955964867470508053977217142530925665835714406146149549582539073715124540546182050826358204788298037630047126629542710124429764286736208898774385005782419178233933168288674991912478434260091566153991510466474800878192633219444030966553751588928948162800808386342932203134515066300542915499443669588876927952406641109269993240473706051285326349964863152962237246528155309113333402074664664736215500322748970138442835943036579255599856787261357658614153313122230031489583764561642967628917923827811547957312559143214324176493525660895693480558060547950711732297199432355826023147343787060129740853559142328613173309752510651499485601998353330678466842811027944609291975458442915290561849348747716804488883999678633364909666412502646962448417683930079342344984669570614377468500834992536719362763493054535232756960955374610984982448229782696851450488129319351247151414702208882404514861866021678851834071755954179298353095706435909260383160804235791848548613305706221871908982435108879094920200530129046725246899028941983217473189532948678903077422932863803901497386201234339780608417218333050873778099433637632063547297894619661030267000983359208570227798086566523404776157158543067948137606087174188082517135661330816276070241814511597030528536054415057315216449524022119709105156000606119009741449887674598671559080371553432878630341889310254328437991905058321839612303299918065932971731047345725088797372942929538147419442555937753450550675791238118255968581873198539733052017381566434162490598531213879612307334488674291310946487310632498697129735727409183447592418027039848015421770079392045191245529458751919641340210901941422332593398036574967635520636339567170250884707367268973571461036375941116711731600148642107414184350456783448706094482533528375141372197181793573571797289501622526798829952059991030913252875446943356036006199158398280256232056571816972516868922699495771145795646830180982114796379762985914315470884403117092862095561339158329935343213759453379428713665885448037376557741655341948434005597723778528047058584079667217394308204271856742791177981215565130862489656167401837176505874466101922330234213529368312777058854063652801228368722012721800391158003369852460276227693845756003683059589207031927060481605773270941463031725472281512207849535510825482899747667405070089768594861007772212747020703946606405929839060271828668114084987526326829709339971066940231559468860750441704654995863648622827100489861414318648972124985885322982534629690168970007235521204226497611820198113287982977219399673146125330608546479044475698375293019643858596541087248338038098853993287848157583253480970518067669916566277233582335666450997496590587150078335272852880564420563076376055818576517519021665628360235091736942477706482264175630040156709782595966158229437275886498176839824478287718801825762108403694323671587259261822906367841267575322596141632049478174497269346843941842003396196537705807409598383657644466552306329345008847725860040952896004910116033220737020568394090957526684810631580909831054717906531440684907030784632273721304822674517238558342114533446361353844777936699459042399353231522822753439206497267437126169338557935115078090256040851179765185819643867383755999990821087147296493560252489931569021300992928608370566773969371290538694469218424350202534395286930039257064978511339939414147533535978889170665325039589255191593566576284011276733652998565284055235652439509524649648998088957902779841210403579399511162454589701894772068096037068302241351110988734064533057786453424186453239868479220914532777542963327779652073586992019074873326765963310135509133233028037143359104091994901543474264208754511537642402163809800435469718144075340956385342538594024274618325701241204493032186228643624228264163461754270847501361738664883013892282018629344979490634043159872480384361975408216264065200681337517173913977390848742539258014483100469816333489781802204452682316861343096705730589414145272236790792674562364668238267134136353462194904064957132722502496409746838787836538101091758559096495559690698218483387983935333398212871804095308853948462371839845794224523805516168191617671843310533415592264897279773579438034446717651945449219457960427531212754153546756134991985765581368498667946664658265441285601707822020406400321828139471292650420632101517995922697339079829172472963009010035762589292529085329294274982882891821924984039115279005027212867948945869697782421406227788053547851624704705964827478927626588833740236328562169780838249157045296064383780112344306441483816808675994529546506141366652196336536075506502767364288495199442811215167722273912410258128395005615792503452194977907334175703282545955420434268196945065775716868623123553418786223701860017971451870588746567195544288173447295840555347566062295976521823563802289582531126070200860248108748381807073766485039751348602593818300157202153234905592361561728227092198912402027312987637511244494965521445043663227644344398825029620439953686156839927144445405428572299364577439193067348381050777723390741105124663081621377962187717947738858190724880306260205071083331839155131200241007524860773818789078619977147948454450790212446252588597519830485920861100740509650560573049661775976998325309907001151219657931090574737914583955792284890377697874705823386137098637884699819833929480391215318780007428870014416226012144807408568306631809554773229674901528073596773626785157293549680275215140648199021863952562040100298791202416860238502287974784119293075030904314738844255567158595582081565889032057842296204440010599353415810384243506954381437166705880201175741444179921694269251502677665872187215515976691149138225716061195860354893062107548853953965926499158786042522686550835971142157593184563603781284314792700449265861518518806810900802935120590841589372912169132091575837330317062718782268591334345926356036608613915119462923545428927108632048667789860557079327897679492660379854232881341720344263244235552299722212543325503845215311504512374619601718235341259792902452978360728201787181720398870657698408044407097911571084294523050949202690006415801403528659147484489610281527104435199272555180116960841524364928194875723470176798192146410479441100745402771602725975240465639551649511305752130424855477928197056961214075969548260811172603820651627424698805263280395019082646101935326752857399461218451792977168468459860373937796207603384457087966837359880825773616251708545715389706082092740205197809171007806729155974384619653687936662848515236028403134176998798040020861521606985705911872799395708505698271808929050606864065024890770634885653631733190230686590718313936253472626437131318109756479391700087760351941343624062250662306153084705271123376217374769870960197376819327018627000647898541182543333586473634503745336881145803497020836197788249853011590186654340978752710779530815702448928996207211729564992405019181099404625458526512215758542951370298267120704927105525790948640777412885073791091233241898880107513636406429140154657310018681029461499726151066881620854990882942388267388040538233760561167276221690057016322727705291025353882032562266711863871290582591881759681914245847607248989694737778840218547028229054315943629661663889128316662056790716201248204058740862475162610760753725875923142504656748928465347761992745608997795901043748092869680051457690093493827723489110552044462847092596077604590102991669699578642682904559639018199640380699720991839448075196379343795307096286867550016344528273500067923560662649746544473203104029183381242982684972700582994473137202592537563225364539834750092965134790091316248675129582533401470190973164569881700900423019382802533710964257020796423729920769706846809855697209728608016175794817959974259893278322320806149022587629310985810777139405426991157842293400323249217123329247411361769570185397656086489388585036577408385039926338838715646526701715415241363653976698731678884868135877219873572653566569463092690912773791278799686814901125381704769591510790121597431726724479540455572216597609081381052426565339300232697585954518891924754682890924519134783503825343435821209507777186755131337692682121725474562428821408730532338296816681405909546293319269691427015592452611196643002639354410373487278987955217799249347233711344065070920894145923129271742502145874719328602914481062346783315813429309888267513749024982851230006438653385707521218012073237858154967515940542943583253343546689806897115669857171614193440325746864359454610921899470123746044565596749042863919481976081261306026887556512959011974853409980681175050086879724462535948887496326103560414264272817461436708816115014314725030894792631850207920558614785435439008127007886617836413987142683163135626455642879652541519968687381254356720965744682747277321909918148456059585612033878770577539500273809611017094507277965916215420955594939735702125489004575805297074093232464194788865499387536860809485692743226258343949560096316586063160718908321160515590464808243747164712203498118529360839119131127036409705636976356530452713579314300219126919622174214084185952669567766851512671034480342629857034038890166092690857533472927683166238851137818699051007063717786702228064721497246654929701795975309118094700704816367050567916481359797085289686555838453441423441759292131807748448242554241807758112445695254367548205277479978346554105480738698605016796331725811298421591573271977811999956510532912622503353798347020301389031125443951220417839342495585730181047569287322282802673925183085792540847542117754583229246634164913410548686801072678835211860884370869661360156522487367609383552410622026707648135074545504640822669514250100662183154580951444222006953808043938458355095067709569794305132025312890881138707465532068663513073601703547483509111808162921962277102249041444126258532694781113732307297848186130974596148006849203357568140775050790277746402638905253936234505789659745590525469178526683201663772895867290187709930173533101466670747706189098789256747107350068204465770658924323572791682209949485229850937405216000766185051756367856516790110756464869467332274670897895556543266187083330853283406061098331583501117571121131234562023624066850740541443097388980441085693955586266803050411634127380384607305383093807593516490913574842258107727355033204911623834873534631596384382573064944479687329703472205307060448278133320107322573993434433671997112308882803690962324010783002843366292538533865791321485632096811737198322440187090204241907112542977282338367527699075925328400783017429746772045442886219970881347032971357711550136621370684435459145730338320336758447087599192273700125737197434561749859988651402000601606628756999955033512541478248738124545814741318592450800528295293275111338948439128609463277325393159837999068963427493825724676405541110121367095635650772869825314535362237803305014414180908578359282931357640400298494814437505361524199558077302509522515472652634100719822056873691284026447330383358716504023504686659959420186799561755038880794613165802514871404791906652636285531144133180215543748335756001841712739146362589647384145555381574967767273745814307381334199651135907428803356977566901434926779509611595158265192848819064754505811239035784082322719307096809958314208119352404997599745481512905888876385267919434019675557553397305237502190691372986036284895063507629949233882706701178823558905096186786586184686915076696367885784699239758232758695611385391751501850822855477181298774418744696446083263257419330036578833270603931001335276007306138778549146179296955636046922993914519891697412764349162226044238163936618022610182739135334375601132432087831052712545519751928910480417007066141959476708533151741257341909385126238814642130456387390803154114043614301829559159326115025391773768947869413345206436463509670289358632443200817474986553512294526131735064536716334318143562472798139806636591044089746850917170530707698958130490273197635747772232204009762716883456615023778891531952674024669060491302547133953921716225256401266031851449612517828972428967818630581214779887493558588880467302657449118803873587285762094380180449327264603313986199685913923225618834382137076354830557372661580284489829203355893592797935284454427851500540101962128404139740333402193068002491508469035012773408910033183549867549749163843367165437683722428345830857682582722771600768560006840788741909728573493213191083727548898915358871244074081760057724571269230900194385667516581844333512645090660701840305228569182590190372755021258857932212611140751302766426775007025943900883213220411398574167917818644153102987785201093761409416636599680278333658869043969888866370575283233774906549788727520908072461987978350358932990652577863002091989737217207043199809112161480308642917035984400227650174992012064272206502925700627303911318364631036035394711530655781202300490073444028822115646476260424054370866110196819045141000470136216459304346436220115104752549172852017696273550471856934127434814485482667612278158293621279832239536221041701637365677150373107327521646373576714121122798634121853261912685451355250143230282675464628354473772405194418633222780756081207989191643540169784909893887529423856533253893913505413647134200615484568282502878985053584404275484013126186214479771616788045826121456233110674642809096674592660022775839412971916704208894723989876458761371957958936296786524175241710455283901516693281625701664693608423135339336663669919214544150209419175642021072347273110971555317322332834326255807688375160942179136212558029076116127886972069380781188749529077548858532080803253963572699751063107261667633062114664320609415341969848030129182109737050353311850959036930471518217943164688078921740755033054373111197624629794975362917144454322166269758037649189373501332855480306133471039844129673735835247221796861802717733589042676891573321285408658858775616770939032187158635536212158783996269194127237232060245770130041610675122829431752725713488829596963590970447486913058305270506616077329379259237608784845150942812622628501994186053250670420678336275905403165710818459200662796335694782976883987446819911658117785076643270119136506385794549854368304194028565121454908056215734123532306661967603274987025558189460152638646305107271183465201218562816269383481615741040229667016094555691164056465594141902500381453541806640247863108214788961664738388867034492967410580714829483641724065312261769168850983526968280775275892587375650208785765502018918946272718851723356912391441504127985163081139788422332795303848589334179986551988162897035430432370633000087725939083841193355727944428385845543169012677706644717289207716032519871901342884656527973246492646963019348906948222053496901804331708800721589727452416046214060410151316849457264708652681228732971797660943120973529933022414129670283607660401756755624957113442629642514408147819277811248523901744021219910848528777482710779319758480333262262009889583961617689856996480774846631481811335891498962823962471665872085435241448205918767627269870702602739135404526682825619715677625439384488072969196765652770650314957280124245544247343407161890425982928786831573614815525582052272097427999864635000264719682365052042650610140961587158354093759953114503897909971751675785261028678584487315609019324499909413518869340754764782990982945555134696349431854458446744073049152596741326138220504982680757696804351504401265502205844323666544087526653741308033404175921844485016506935225239549820144307279691283618808780794353154973103457470275654705840235870676445739827508916994950384970266097785116373199490872125197527105330872528756546666727403582803952244991337905874682264224332610739636430179991491234761441090573509998885918231769181309055301260396103465536362778711600956195756676495617362491902126591193443343404378685700039967739823618792115190157382007642410228228676402691343949855919165158506619032228924447678924693155226993930453313425671163504387884502753111988994880186265269073859682349027149056458665406194846854234010025241610514629863863136371657393478686447279419175852142899616257301920001402508879561401334304284909516317687480234330173749560855488191529936792295291502035971356282533515333225492381465011638517809109519619030243404767395042817630853261365520296229432165801719229056586501393930041099436582975229840131542169801968105176383297418711014834603202346042885042249581734192185389329522708028386377203860133865789073425514420035237291697683246948288210932892060726862701253562730140924953264115851518262381592550199313646808419347181394688747894692669488990662791614699793508353302408868067443511209013254622248628097659984404179405613613556036577486554489925512873470893109925301873266563975994088902118992707647187562777780539107695830209421671327349189226405605791761247756473955201201274088911647927144780454388459322830416013701322422816197474997277719495463313521643622173407727180997508361158626098387494489392780783267545198267418684791893568303426443045450999325788948594453088310945116609735286184296531447605686458589942160849618466333226311329820860918565498492933340270980088748392620090374692775963240308288349635775730160541610143489367091205532993447263421474463376489543194371870480719057128746167127840611980657398636472445788159218396949998872076432777481610482886963161360774338136743952115888027954477799019556627329963854305757773177103182416681461833703068465165111805443399831388735922685432039851043939111778912373613659434953030529970564126550356391884992739831526545840558620759591441531644262270339083216865781458800839496122969357807756550246197486667476252615251191237011327587623313611582093093221087734357121884580638550360774988263931406353532933953817979850010311630905414738950012637227522002049651938816005007744351751529963221760735168208420012181893923965856613815738178385717852842229770587000979288865933915251272351959029088244775377819327287106692756443329398031908016378517428051993280223467916504517904601096193831120811918677276067534505035067791260761079966484770997736827713742974399919924548657778034404148020855710479350871704075725534685337782668073206465386305556199677221570393434773319188150143009632061710459441886771738746985653677616029837125994918211715769417026514026400498538442867939922636019120432327600432063124342047546185041791362875378222434916177768351573641253032459488112541997213243416398886590759788343569608331479511005964492658256500043368071574390793104269801876432610077443857890649820671777775005283363696138511440105606024461032450399242728903969798130983482782554913644997080566249571052750122903076818993676067113258287340603535729504382563159802673580558235398033901348309215106938422314996300192518089237434493091445653303085243484840640294644886111263893774553675646398123705437801785302428292403382598073782711075329742297358780584089548848856233670358969458640677989914646451762456053016911376125703611177476042919336000940315829923544098263247614003919326903806618402701899500828334873729912521813030775040994595223367179266234263872310873122358814132262021704137643476388923921562567985693179322086900928686348599462956387876713722517942992109827043116824391396295176529305502916777735909094864308970179187849513926452883192325233768871578042312921855485468876428175479892126206300773546033773269488996523663498589817404033668855958977930864158599321977282227939384836840039119270416950831103840272718258943769665589373326122887752150281082123391585099094351103923573518484995820235797480399218139945111470973783551021514107324837043849172276362502044465364408983467981650490829920728108115984150891521675959745542414953187853494456516939337440881847369062294597746765388107512465253169419105226797976292350088031196579390997369185451976603019924686368840307908094750384340734932597076589486731543748439604711943117663856466724461211464238837135477180894523625796822315270505143039436664251278168825298419093153945685359117807429887966014257006667162918206108617000428897402693171968010740544402294529426049158534449229691448521569194452273560265258787859079175270191311506303966731467637509414376501709869506000143707180798832454369526707516629757935780213313259050725717834823323002553658317250944187289453940941504185015859579411281636070242198324827912554991765179048707742583643848778771146967132342811376187340363212201402827465013088558655893455153132939763234438505735863593101443361050473246547528850264396905099864734366072670012515652568353222285561959942041062788080516791254396210169772485109425615293155374337036524585972516681246455955015081198654980747397418019306354532472538615757477802755765512486059555181441785634295252558830146069895985208179988556728062312399911395495236857463111916140108223570511470799972186827476954392931554384110729375652189259902836245514953882189318375662432097876899393570643567779660718761558484263028296763473019847808242737771624380201784005839174789418233372779041761446335224321841285815347107081646443989035802743319486450923936681992540379883649447090362520725741252773080586456356437787823144254919479670930790743782443341036549731028601984542852020135310189113376877202738037442731564300230399643679420129959098544440640788228344437901792927572969143941506226795270415585070175267170998666652302077668169019788082501635994240825156830653922737642366034513789266552345103434915776847780955702218047155049437758940162113189163307658105048049764578191259124577585014869244867234662782338753053037053464290161124505253350711590819162317610650290081044891844248589304436576861141166397889537836696551496115996427705942955944243877395077664643132526591225711954208522131376118265513178972891305944656080565887807648324196282038875672419754659075921828925287958210392588344461513274878807089769562696627217075260937120918763594426886567553672997624092890175733908328156683759105449027569660467156315476921049365756428153615394062776215621563504030078883688284883844157848239479163849307421360147901100343677560831019918270043546515228617887384883966745329652227154530226916962511992734531536986591408800291153961866899883937382052903604098976886703122384009291967264783591631606141652239471312475785978308649678812932922066582294672372240593239238617108284429660338981348306776127399837364538721012484324044241903377138163313271576244370805791180845105624691838484518973400311472871233905336206830074872049669579917506817295391219898378117555888631217636084533310968263283392711282128291995720668410808526901087048674269059635831869531167167901343220030312160688019881623234857719490688539416059106687862102918797379568175940126321650685780393225445059609915145130440023037622688947849924155153433281010841190863269083398305930424654752957794370595426338428229639524960464643594797801151264535311948122581213305343931239172418035692826342872442744118697830474661869068125712002988714093799019087514309312498981513810998071437268300814164230471070885435234864739039070219135189838354504825176412025794860641990717428885755085166043358681822192759720045016407873134202931198041914260539181876065555648187052107570477402812097726106543166507771898654087316562712579265390178211267203610892021289450748917051320988775122762019742098562155045290940167067830155226851285194703431244745652754068093239925690617619086957317208788605930886168357113193116327038057405448546624784417998200658521673239468634139851031425757854729389119108501906868680887164539478258217480588417570074690604135625443755082731592601218921295693901553451788171055096613028110226150764291884240106035604556606461057061647257085604761848315834673845554264978508469420609042457673912072201389198373723998758188623299916668616639914821046726458569029195168792342387181030341692999968271867618826214152974942901821803032160725550871317414931597812005678898482042511373005740146359685776530801314505480374839994987936481594695879913172330132868733011210798706961691899454220927491612225176562754105280690466777957461323899096238129941248125328432431620793398123087189691340147662052018948062429549144544590970837161023131174192432054063470672126235047220646876069847849453179788519288229291218082455459775242483578657329473740854263084825071714320094662022457452429199894337375668150926920635924356534821751471434323216949938905134239640368823255961753776590497969418923850579412457976577649848775017970595900116493772195980028055909395495558213913092294505176115255127320061862523255421793419332472527122977481286193521558598655700619964694556160337850566859232551775802695346616112452461131412248544559656183120366172954305589276652100834451210156870427030205163385590507901345358275296250419499651773527492524835391471881855781285180552356520880708650222159202294070786223424509187781802651900308329742731164308512054174639420309811611453165022048462091536621908645218341076483611509859253446069282245704624732657795970089647922066100466427088823081952728612637054631136728244850290391491214012947641460267601227252041311092593198341048345748574786111874711379466107958090417065457498042263411814935791276012503303252677034696596511588560123905149872196967657228686802488440045553451825349909266911338060602538685435451922650064243536866664887673063208017898383856975469385519042943877961496700937866990671852840508321263192215695536180406452367367294774899454191556862910639148540190382220070452416091612182109471308444512080065857315541733810272883453682257518048774359534769327568951429901581181352183831519287872921122901987654324232549481554427260456179440605471704222320815381995326533925861409275315832278687682786888380274929927145762534903926116099846761687461526298001223804440056263269485432443210103315490159278755480638880690831566073089841360183209852983699499686679453648424093655172737231606814573995032586112520754607854714305932768030779821673254345922001056347226448198924870275559020850744860596888255471476857790859142224605227239689277659488890717092736791623263885546127152471899377108555531847028949337895693004712876854056279739038489398794790627696230016747634953747594027341131148614724442274472651207211052514766930937162810823919812847181325476488467731898793067121763368187596661333959336383600347913190616719060559644725368093183547797120576803284807047717944388925844405613284908821327834105161673474614961721430786177014972784228346425854968901956163063711829796106607745081909571485543480810874929750551584122917731047286470262853025605396493202672986988783833719239939128566574141008262623485115163096458678447523277981528351870060656742812820889582168159027918540758286276147706190927094982830398511165350151249587675321223747396817205938464978543833620513634074017336427866427993133943722632747911688750342511184903572137342532570652996631975455885180432512097346248553001184874036858539532567642289977606422851929696286268987393860806172160728870863285624438622872218672902625479546611276138001982164312669264593131632151054107008591242468102339897551236403901634423306596729135013625972094313805759366582937467882740358438725354678686444836531475065519575299102758532775984815260148841147299180967037139121824694781256878665185482291256681534011285301665126357326563552657885782767654735760910332261929094605653035813652979833411872727583061174167994737218516808405721653099402285473853413318309345558282378517776732789818303989246284277657557545363823549500754929156615631043556235384055052593045687322429885735834075956105734211441407070779278809559894720681561275008051376487917482109423443600787022234704994728381094887145355057602777537703215111810156073375365500707683046007399030518167114897183680489058279510929535879278812595264651753167684360036481255385231661688367701420805256060895661437097548550291688267614399596813520662978648798617050680790522010376963246150652635583124356674754882478064236809210096097652080369415008568323065994576074021632053513819601122218643408917342086448193999114497497248329441284366373361425383262927030434459457724288433384945768903853851301174117537456451108158824808667743385071996899180627631764961207667638221305336211694727421739356594277312443578659415162782583743496947038580843782711216852724251059121807781279445801667933863824228460951467313784127534641297489919910910272768648020467543773438248344178947124657706310093697604894881632518616091780032964380296202225203292202322402843538450417314762307325579299411621179663201787184860894867094178571575055464791451590616706962289991702787409010938963548353682783488183988765810589211575834514286771070092434940091243542077380255404494583501984794731331126988828812327962014196640359459923677973479230565765776906867191580618866174129459981317569158990463949333425819836028537630093179825523609381412048714628847109140326247518430018837032253854491876359720403766308200458064854454369100864973159533458531986737560935901802907762159468549696856144270818046621285000156156667844243275481393731882001220536169710042642532926451140495247656953671312303765424585899837938227227361081764285641222454561588590445847122579654772323794343326006777203993346125516383907285292125082761595098171076487094824115577809433882968481502846493842865914830984227297523420474690422281072463151983889126560518872404323808280578252474806934541749241174600404070543739944987681693803515679743104255690382562325769291020413827407812210326523230811239975876043472297551569320728956909641174265710726829296363744552598795579692616608056785279490923216908686197179644710645763761471964918988899690618581268700417706591299383098067687691011362732151592920215610013518838678925839808507255054342399656941977586530060113829339636163227857802155508441667817221034516779267226881826625187948520064799561188972093916402959841262930805862633981620832109758342350574629580796706357318676163558620258353585944871525703241626382807601216314456943899020242825024224640106505569599065262992615892489284357291970103389114585641006993432212614023489425471276679766930714924194495857955732797930339844838810842120603308035405634891214951670266193936975930082241592166967465254852219900766393148655686397150609174216757952659014797127630492649627021054519825161844917182216776597302738794660976114109751570033500142031225860647446057220230579340660522437632170170764168576284570642178680820190495390862081153640122035107307883541769553132703721877741034176692310286753076041659279483609856223275818596396259841955499025566570759681527727149125871404474434681178938458996265733133188795491598411943573563847439027615825527458767650564820290950043219505766868741644326388029760950732157110908448221412079458463467530415071007647106436265586489022502183979446079444275611178153322432450561299925429362605562848250334831483388122218277150114152490463611301318169853917734301465325698296967096332915399291170540460248696133301997340502640623435093485716742110588912721212425159008854471134007175806273500609793877017510470288684322667543804356823227981671128968766547883751623846254657366201714929055243974870803724099519287603441558951863269059972184296105417357203613295179994750041814519383678085971406926037380430752841877634168160726477829566902034985245980741184689957016643583148477952354219188189531023088536572064273510589583903018582775585718802980077799732346626340440017647984827021931844016654552813822038142439244684627950618723649421662052016855222490506131259325130291380899617446281984243415816669918832582848326336454178814623003948079065302616212058793896065182818565428268575430205871302654685510679378278582367758335570930690268092686333168144980096416407922597337553476497080950959288686185642060602197758944233292669180511885183682876698615585773278171907669550016911128201045133102155526338089482853851766778764500553026677156493696495960730509611441522686133043522689578475042605602687066139014978105749747388700641517713386218806781916068703995734291381866338034640300500762893135123333118575229092475930697615441732317251048691947585788348424130034198082748561222787352981441652649825610990784741275553651457403979952297155583524488845303676270850838126013415614783391348679679665361204884808963406040476255633759127179590382972518723893555667797565868808841392907868720324763418524049261287103176400541995834568696861765970526964173529834205394604090405427570731727490612342640677759317824056063383770929243680648981918709427396684662984683572503664685645436542894402754941926425409763779274754884409688840507837974666709896145593498029815650624269279389539789166491974300067364317176278504016939260882339087034907064934387332256844108691772579521378025862598452838030226109913565410395850762754949450336274774754536933278483445978623888423322220863643366118569462357050931323853053412126657135926733452383196786707957593548092725631386546112007583234335717902209113600363388741657161316690458647312194916002801127570209413262962510249813731996328302283107821352868375949167550082342691302461445109311155360534188814093075488231970192734832986751967807010840877706096193828709049267967062492214456593655683668510440636054725645288146506699202174136879448834548296673254210259248107006989956383496548082178037762497272878849254108513185353009159915063319879908884356049003364063247271214099788476186195688096803193310963602953747384562927314752221149194349922434660386735100674849278542289826723486721738624443984995525156427820367095511552796978568691635588111699971962147213059802280742487605178933252591362306372936571593587704101918159432600814698879979177898154670099170858689930839997380627274829549480843383771859764457349287945767101211502217696927804597603461289287309395809798322303588637704976456071368409745843015440782458775427334337986759412666748878045405052778694314570208048742524821415956614563302211310140663991228339955994490521613047471097766766691056731728342915988316908961447393932229466527714893353040816792918058777999670486743960592629364190135769111604430738063418242952656313147712076445022062281109502138349495453847706214148334347580087120660449866846261238036364888948529143608880201202175936688572101142691900544169309422695724369471879322506040103270529688022869021785327557066369145179726531510508540461652155964123463881278357121717578459114610323856795763108182230891058406102436508341705966533177158739085078833609717852074337888987592992182968643409443439652166457576125460519655396360710616508002570242347986841041115094540256994957379686811049884474271321347841471920183812255292017157228027129256732428588195033182257414455140955640203485574677215305998819832346740994285797048451481352509474577173127965788903941634716431788985034397344615106603370722382378332321152960593160203385490251412037075859373843058066949516846025765501112049055321101487903789813422063043972884155127049633627157922632383331587916916146408096287805517515652933367604419943315494670789727762960427023294253870345636026458134034448062490741992603113554277131458715559127902246817595128910675568944778622396244944676033675501974013065721101257458404104510787726348535179364405955419427635593680908606251416650132330562180703339152876287452259297219864051386251080574306533780860889360793705644830304666256717160885418644730469686972741476393607613364435245602538000131039861818399161250916782496522801978761765575577278504587425064654452844346048262619094396251388271197655952133404505398821248068979998715212920273580514287012764326975837027853474824404560403060922429247273899512000877931448107451217391835837289727203479901429240418069128800395707398155574969117992333944076289268694831786433566529925420348301911747922066469951649339329035814601612837516684944775226899057695637630625553773337629311208354370692588954420909398950549312298255989154341241481295472880028056769523924210444785980690594277639492572828687600490543683427197266184307280074994920071524341929368780560942255607290149150523292667563191066037342173381150646793432655579471884598555646947972666763753176437484373881936531981280159424831172166905336806314522637913899369561192081052776194821370115468411160067960195046560995684754956196177875854612308231932210403050008955519095260157847758766543525490146263270726999558140934268133364810530259203028219664795505910423935952284203832235621951182827313214829040327090032823392920021139933763158457565091454548337708270469519462727400220364827085446809991466478112387036946902960874172802375597778992607245945329551321696292504875686850136525350190081195531678793403519940689112025673134643762833384821304154935688687588675010492784110042938730914874406688356444141177521050552701164143872503961711408527085083106282223879591973795088704261604419544484939515527455333500196352184591995015130500205811701828443185744507849684536330871055066535676967104218358942941473457259091397329535154062133347311054035049444006748794293066026827092224212012052959852596969419874248145141081841996771012513555398586110333793928555649262341337207601312564913667040905852226346992191252303610348964816982654806004077534299955467146098594346622550056773015431931188315638234274312290631964946902620332890826707924035318656722893926961073783591464148268688231189517601031798896537832504362783158422698898587858318785113093192236380549499814066462093319078498018277848443690527814453334584635769269335109533146233521464354414191649237528039771216763824753322990721802519215652062486379344572441443039439042975537938121159263245570113554857334711956527818624954206278288761831770708287010190777869407163212231987890402572872218198827705059093958401412549905229646418902723396111059476239282382458739832455779643377084026924121432559744620368467871045951693799173227859834210593711917626106669942375655233660787003718478413937759455070276423109879967012413016117113774128574591339147265171762434759386202886135437678452988398002697732521741477388688963620048199777851801357328826329540502521412724518803540208593267798750294927212387628093027585996103549100707946554917539490708822175996830173429841616757493743552198558731770922481052607574039214819859945945980425510873360913290293270030218820288843990210146246137453018722492202061294546577401699078713129106237676558275895677440567277725335730733445608746672379069787365942265885918995458259431203329669999990513826255720611858645482399708946051019850779801073258195755047522083213345110065989328526579642767159581960983305649001216275422712102364075820893280639694611033357367562429339112440105962668006241129639763816581841829475581474846442404504147720303051791576297232719654534418030946983100392215973923222839912462599832540716230395764212049071752211461874919308828839910665941561600583265422023242495197786106250228799336460480076538791040400562784605285550049817681861441771117005763290756289564875805678316499061340107543224666088295502449303596912307065266286088522244842701109279901731744666113932067182393971941096859700661390250880557254852753721289405182397469799479301850685537340046971924211300916494450198270096447492898173526807295880842225095022699718859664198280980211880564128637790351911859284789630756486571163240541007005034712090321143417436516692292220117868395109701116171993788849027174868454792357066079393346284339824218342194433656762988709457608307008409138620702054928811495730863752617950582775747905914603478243389628531164169853082712547270376695254061033061047014945776650980523584677708972819995930488984806069881877949329553230857149251313447971175074621694273017158280026832741586681950067576453741240987224557790924178569975327775416500412281583762264474914003255334837412195184538907166623335070505608326744414621569292228854114922804030311968003431771668311767251555849856496531730923340224670747392470201449416590108158373730923340628385188924922826200116026340997877332793910109267078070172327270632953642684532406981469241868346458642467347310152806530282897841674611603438352587264029595513158523854175412211262674125371909729580802932579666096533862312303824164651365035671572267323581622467194293132332335442235822281292310913571263796465653300997790169320694262237039072023330189477404530811727876150512099062907300800623041887406388957321402854901777611411404055355246082502092580032629073517179208892130196670329019174434154975922795402269915003554124044765351823199011118742474717174880178048740270437012054320200490185739673691573924506184872138917875151851736232985064117613007250541976227033407232699963256925584099712334251115826884381519168375195381590408421480229172716863494081681472066178902721951838315361422354791334934554207726983728278635187988933881702601005197949883057237404598094246990762144856663813912036622621316068672807271414284181765845952874666071723498176243407528522315234801481606368685625361965985944125575378289938779183747257548583484104348164355329938555247018338955364396711866247449112258558593388057531545310074509166215740381570422596010262642344181167714717754016539280752263779301629296625970942859890701374386376997559308147091577088590529675436641710458709109919482568371881264327447181799071674685479967616679401179835671990013790953330701362971198447079621037108001123388438468754674535169409685114499211537673350742261853937166641464572228703286889957989143753567245824267000944751230172513482282615421790913950646724605400508868805497207202054170797535005505778334362013052196142318465140189175630910358260046176828117269391708654274598422685165819253324487313349180864522982340933152099866118360886797725997005620406076918061602527974299994026310025697239274855474550900282837492420294723624381658676246722909424929268684634062327989846272576870223320775308522099699756003310544575644005149865895065705054949254283443828491274004883648233337520682284632951782540129163209547651936520572824341507656869123146823698221077306830449332760230961458731894000657703283794429265040946276532321904683858118986877783281807720324018491507805280448007728422757545116336033017616932302557606627575989497569136190473685789999111555587031858863727616656148189821758450593297662902316149013285652883927529635541044355221910304876926160830880565390939702369286751465958952846918917665426646558082891644115699926082100538662178618092623336193754195590360249394688956598760251334149343014535556376188386519569467130263011303710523376153691708919482761168609723721774912917468771111557716316448400709848021422233087327543216342088980778146308561820970216140851278411793542251640591085387851249936030857816741930495882890834865721006154621285336357617971358032238875345514130203255231601478389927876569142516706570627058991034510475836860443267974796077534264204055827029791039731729201318824125300841172227804444372181318677462694294683861505141159620815705413348756343410527148421468548874916160034135231880867801836612562193728051806188254124116052488497174395708230373512481960255829341738258118711522598010474451063334551386531626601179602223550549754607629492799656919111069165883542620604735581392096740312141359755509538427635321852543211367546351039553721669345519180924016033126983344975105013449483148166074642480063790108269774188426876100847885493929647784327861515823462606291140756717738240911938208183266695407843584936665519560259341754481837673361342985010137747321161790314955350111068335531722824688547527547553063683725646681668276477275092107973895374725255787411635799256348321093062870126164568618884555227855440945474948584335742621252946911144952513755328809091210733893581745665909391896806415268365097396634962124264659421602055470161198579839809650995375412151426002561367104574318222319080572167932668323206679850092053954042714075727642762416342283685292431140645900087986498510149052710394735196175979880996274235861573442216022242950071438277300969435669579336910003064330526418250007158304359506045389660751557953429922465907211715935077283515536869739303229022552664708954288959688886035432167899262964529738785546167781974965347154178091182482145606409999985014119283492186778258133589608344429321356069437572490112797616522982954567295930847199809231812688487819030827100673058747309422190612546958556933939695864182189220508297041487672051193003290487942025405638830829310405190512711635177906622805434709488951701729253036781819296126396806778479587611986751906987843467758473327213469582288588440796209901145074740346133408976935149658768264014268119979900743112880456089986723084658606377058409398205446942240125305269136905114262143135248502916153200162522297409981835298683431810922412639350099584365994073167587950342828192315551025900073448152539917818518928355906307233659947924245526930713594572819355705955868753446346084551941170552707240123660398300926696742411064325204044020593665834988152586529791422573513635235321397842185196780765072640709893613593820598929727190184900884314617156338948041325901666324517365331207560057875441379090759232278141616105755168470557115171709570743206283199460000374695578372119544218134322005594087731973348618198612633829335032304780010865878449456166054796790638873420564749195364750512135080085928390063798984136598198007784910462039561468573723176877466214223774074258053310058262747938888457785466301557335465472999027745547793458642850290896481592681875671191207666276365062163370245570862370937003550742731657570033293518553157085917546556251707152255562681620333156790060313500835430001590395087726109847024884304139536493034184527353511205630011630322565830893580397279473042281685997296127297943025578633974933437478134455873938114825844923507049821851424682538551968436525522110973098935016342420754193155981670458258326258392700663744575326519750522675951547932909712704108755307685246876016946993285805596944914751691547685625144569945063160124441191082562684233262307717687074565274410121755258772095139582440025941407784983044040694958188347063816507526362577214887508834614373435042224121911180765722297759658258730420792345857551453305539092934956883336285887786097765972531334350683479353029900475328914984431329890607294875809097756330544981985059553277615652767897588322702262172188822914849082187727290816364676783021680343241400199659853264337310872119145486588473188996638124740592078163574757660726691457486207681435376743697536286537450620325757109098184055722340008756742596508404515974487274120759379417428683412963427322751955119346551520108375601672866891131395032071094444610834806726214543602985833946942976946968616737296246088252185905032011532697993759946301596190257834757720764625533904403402840117778759267256571719581301514869418816153830962263971664426725099725030734172079056655190029310994829766100925332367871642495707612491943603681429982303763734514456690058412054922306691196579930750828526605929629893624612136220672608364189271901573120975986413832040237291510214746041995921526785636800371230338490967314548997805431590343743208429600668099663928948216342428699439816802732776663766728167857229695974195612979690728618502419853990657496598352611699122066219733081991779247885337077243699490333941499911201394424903489859872463711690515063570893967830668726013285187996114714545127068330989544512439006744449109729499385856013146421102174815099075792666316118758465278937824412440920881446297187584201383510703015118594549632870612057453952229592152780967608560624725544670618948187174667640646958869978042015587174894719226608093457560735880131565997518277649347210374313100933468105932427754999225265899010050599812168548967027494148363933514823040993717384719463270077944718784568362443602617288776742439793339392862180345351424339088345880296257215884581841816637718851790275359983119127268317522146178358805873896035154469219904187364333161084367204899307102356149791219927386096284679699202754177925638390835907531539580287854038182574079018739142172844838251442541395700355442938694412977549950409325677273318420313130653889110470288109297062637367780918351076319166248209540621858444961943917496867697279937035103173291139904769710427408605776868123404653061503774825265057155499493553544224797402006029911345455602621818730233210036793352104219540347083593523215218039965475187583211973926936021788821558874545120280867695305898623468353949489509553551395090516744168302016570839921010802857619167144908600836923285989854578946988585722510880571649884941735914105997030974494431331730695124303742538614040109559069947449655841387562076551542946355073870764790585665816532239367381284502154420903071139763977363510833671312809916745416553901865713475717176807111865082061601975388649400435713984984028608920299453138457668916260065974832667115929112025993645583810666279624577390949677493736040878921462775028868551375388880533206663207950014395608264567104590660266804490537939073661365272186970824601784157723020927897356236208007616078501965833770126340120581112970010358774199235634333518419727034053561226276875993090948761564621994943845203657364909820048929661742018691083057086055861719877346361783565272375467375864550457629403365525927553414011224899441907317212014406446803336212537412918649344735312538311785797753627048225600320116021188111916150703733712313141028951038344614563236889946206670939794583098625060568223672087650764375514319815830719469351023238543096841808567413135690790781885432284721866945532771705167703666658254945464392036181192951514163432214973630907503438532743503757729793412781503990323115432243878800829024909243900717034197603737651349222309986272985035837303607276635613181535226476792480668453521856777145379135216761676809600119605275071337339613537390028884623828913263183572179542649609322580931765989516428412207439231098058297347273641567816957958386292591558534344741400581761070402579392749965211407391041198037154285445045007815020606261756244794820730189642677200721435519808019546845839573682271707772227270398482748589365904125194697758812572960826942500528514187111411962153719495841179300350012081497769416987859621084526305310051969786779365701483852567769947157749975179269334777507400278286039590900070493368936965602247507247397901554819797392355706279640617248667221693441574908021359703859595445453575977701511720504121317999296275399360408500612654744262382047789948141938392439042331446655436138960455242412614336758502363654712490045220486665862626622063629863884679182724364333193225221024633302135620934830989378237432203193011792898864199615832323714000736449811879462422846167114973519154638568235676719858706030519991769157691991826070859617999342528741610984881142124422496794933978560846646111681301489914529906725953685768895053540939700834574710395127648223242643612702874208768908849002586171876816323356274621084203725879346302194354231951343825250975252678339497363975291186937805653534388870633891528006137086999030409769856364766020751858406864636510993485055298241529817109667301490724853358773291568650411813655091438595092894123869434149474575233229383699278430207934834300542193663781804247342952594632610262439841460673865800699482012818181703398469844382171270841417818820463551734386990314830872157229562420376768203622294747950859612749433347434579608689845342490775849041698333605616240681407732709952126721040289347907807093473920860232627136983108743556220309275235331593977558445123346399744818979913149564980679549348931925968623216640359402090475316892854396211822556383495200311045574564603953703444175893585446413411438457794045901289484353263994648255889761412937607129371102446123498027331035218552284645375016862990441186651852802266222870555498092671487185985310162117875533718380626668646442140572202342610339844177535165525847947648609453011775574248562926638236235769763939166773581608813349718524553701411649922334015768059403120192589333252314199893957931730491892152953982035830065211416157983195129544733103999932435012404346378479213162057874929477784907403118468646310225792225486806781646987424395764908795859551563647581121864623188709930840985626856691218511441326440721513328630048464834819683627485130909945068345019177463250654380064102419685074647858288806791275281730848922311662221743380427501345919556828897983915695034051449335370999416750298733882790465771696088665769167307287775545805815692334805401902158514444828927572914324207982326853025572178174225252965845494018279982137682103605711241002313248545729550057675033445618752028117031610569982935399934721203474477968782777327583250757255468542138850063982105810284545007546665892322790465143398275728640221010958857008098483656207673682203457608908839665067594458653371069513072342939982811675192618655939516213431933260903979804714678597209059257394764810246435068728381778025753725875914497700627373337186660115500565072722225737485903197579488278480043101890884288053391549033851354546016971028490805463915202087549448963776545408095090074716934822887447982737142624505872210974536730398342852574792078529856171767978993700337191799753126141731592147473763755902332037869807561628034585320105231604832245959762086667229804495620711698517233370781931873220079151757718042884348457841117955120948795884340735354121465848743327244913147739681178760831177857675972045280861116135326244064820175142531774492158584355788700925400247913993063306005059584889731539283863906546093684838630372389473916999577728368362165475857647170230248674318703887202150969488397536209335551362418206677356220702123862811554494904007846191378033913460965723939542780539725446491876986256087255477360806399053348689907891972983257121657994402828316354540490042569218297714594645853293913799917934697861724208958065054420680836602316115442765194172287155576249269960601503358477753049136551416054176794470147162888893907497667126465589672040155663274219569295207236323695381829177311816912532156355497905685809388775191929926631203691655837315951264503809793140612630015404491217919591194440383415232274015194025022113328824836342760235189044718109506469596551177035789649254951987462786530917597385517733242647993362303353864415120881010525623993300656689140925956775293178636099394147984451757129629910981729455309081736496472487118031167679980507650851152437936883180841027285224516496012936516822574068594569172652071089524250490773570548417654458031387436013027619385989106160327916172054623999622449547308841775143077415126466540269701759010963514011110198770217350348432526148183517707777031714956176760367917182091680509728869664203808080776160007187361899089472619166617496873625398321110485740711351897200587469370759886542585249171530878793988782194754473969443955689271656214380761882227656594250030012483790700106082891029201805670802117756750743217117513140589405569879226338016569040416338407898741157223192603028840547049567751371768612061276073239988742134735881472732950291037347627319217626571715516451654470290904285930608383181566030905494547033999073877326572996383454170354615739390685917660957604548484224804652654564830685370505871994616513992356869323301468767894534829685014681982384137968413126997824836253102288234431900554141435457594887457878527140788524107523302691520564148942200151696225711394891970125875987919637584937313286650071333857700795403398677160638433038452204107968686248769345564556615387129154957755516659720151887420047787719856628493383624757192902298105525441682963420591273281839229854288710690850056856423534519478525733818101740117940165754181828584106817152744792213670031878305621610835031497886450113924006474285246804249556565411702637959575861760937142358999041719538433971106101601379650745551033419363754512510568125635330261088766514804305736814602481503285980662402128502348127537080364188399292304717823156524462291688700058182922638979197624175581062778871278422960463682695188509722013021797311737927098682908586486807427799043755956918667262905197600849580608470172540431864956705228838173919125698313830024205587033587605669401226396405770130096704678504775335306518195218675388028500980226139649930341683040704144300253569698846767684824334482592700092273410519308830826876714291187051457857021134107947873974170964431292383136594789979882433300941700286556000218025295800126438768260349850567786033613846012522132674915306622636734635628885794732389804091918804965256926176392717313085444540784621991206262435035528103084548067124646382051056606736207017750924780076197402751972204640275107596936173295736328769245331248907252474038798174230035652171514734660896554694849055445972371983115976791718895222069403788769035980270961707550464298123889480238079091254767118468972382218306591338473095905022655220304329210579814220508276655251395022165161834059434207999614287989631681364715024775669651344014956146408287726871576817955385041670554303357065114142303027915161481438657123456323169802511785023566638060387548203634800472257884515997007595268405816197023334211273344049500438294538702879632880430186611791334633610202657658382042206290767598985089813673376773228237844653272311362221546149157874450425481072526514876182560550423184530486424557595964170094277248388752523620512911070241043161060031328857708759906780240165500828302653016357518243928085193178626605410359912839361562925128006548606127803513032556303968334946567618049798565337774813720023721283644317540906227678686156462138434136021218892018115952757078184253257934030459453345431131586965331057918775121085232874555356292320467141010657367079508425259236899790965441782833541434096612156279399184145436590191198681681696153406380659355301539626803149210587845570450007183570828963035235195534122915010336071601864085874485395133949251886491930838151817050862219631649260709507894008144729472195557032278550453319466770438428906272074249774952638500174015762943295274070435768239857917762427924585888649379500246554439821195047450708199508264092134753629453819010586536966220550368582355576910013080521052035601232192960360923402086087922568127261048925194071107652689420283785793172272278228577002364174239538901224401821229494768996930753103077840510898657648149925366959091658157904242005561843503334543304992943062537247738745647418251771782511922793175786519900498898839623588014346763184949450649617471676315894439543343463075113961656500043804020086706534561337344003819137462894064052319123744531885546260787864227400574409018548287896557077117089141489540722455645343203541182573549298444562271787495325741242150398462218482474145004873865899456349845665001484271028822115879130925414248074024866863217672845307760909328055827724581422731902778697812532570314427432834017275391778000890283475367111199170259192387789697206164627659567526434905237151520702332026008313753663351992242058098801702294552854887267917767688583950572878383390932989458152126985508064472955264452088387606409311423960310487568804143230670090238658252807100577297865689674319934583336279768120053979573419405598466097420877788848662591804138066436479122050879633263321202806174051246489268563350704232563035000887363032590811214267005837745593799968419556644684218562941756217406822602702827139189825499957445204383910176600929528721840330043102402009249645967831946963782267404449094212965693815275440726463111342521083368090914074340330498037545936920393136611532518207851130680072573276225236057349659883118047006696907656975447114683350660504683985054653052234711095575811730484500012475417200069191673094566377158451016944273425884341318917604354297981805512671043708463305007779638136788966370308782670620184258442095963976411639579773514376533594352362129521919913914141179389572821094897695362210125598005374322206773120034835540403984460767799831400873176418261396878934641293120093145359364542886062585234740615560124517335175369748165713559706735751390216983400497397054006945632917288481932533766555481372606754513091746802969702902703129163869188833339714945423708337196622510470659263076591600666058276403395507468530710126482002809074435908337913152026775375965351186723193658918222178267502016022694303172288805944573367404975284092512514635573649934543209105565739078452530750986056846562505722151488656385645485683364702437153202966356433116546629822563516251422836465902908935429864088742302188036468881855994208130925271539771332855421277158075784578519658341014570347173817405549975319302894204026296406422210726892473335304379174432133455311838624252876493436903166749489035375442105791227198304066139248819325464086693328817968669627035491752585266754873339923811097103767870647684676112981326548194967322695224478763356369353203819225453961458191743734392285420095468664314356550151981716989014575324447568810840718054929573028530745290317402741362895104522215700736608498992013880809481419849204956251494656089833192689706183661780583064423285619128456236524005323809941583890313541845747001648763935413471336151723214910314799416060304551585146425580496684897712497503881521079996206909327821478573631421513378508980207829181602088728924437876590649898386651907806353400337922863735887501965152033554972203833583500753177175470491612105087277920265604455154486558344759782831644133832620273467059704202465636891150942368631006145866034711603245117406582667265888895509857329103183127111587005889502420307844986833194677065844114906716943502626849927993666524444433586627222143604480883446792607715972464400826664899177837696909728600768811416243271908916464884694589648179529751916989620350082774570274404673502044809318222293200603472178904959564128794674587977715880734463611895853887237293818746165637649573573966032983880923329411336765671188634063512395859085330211591553682479177863720634214555437638410929986336415444788274930151843335471207473384923720055091996227024819476101682484066116862853545804958985799895545977031405105450341579552195559761718405995656279225375209803751198605201578391068626802201950387048556568666633188572169143660847672505363327631512818762811428555160704023937039495424045690129174810733390758765080845276856799097941902480078850566376737837029544424056558235113672640447024229719265458826826265067533189072895804136006043828204872912647650146292341100629979424493243609970090028254712714506315865706445496183772857118993770154751315623153039561359864226476419352636981535225097477718547327218882288539206360602545973274341956449164253152802826453549871607161623862957669457774366722111612612121366898954703916467596685280943729430825550925971328021544656447760170543343365109167587813346744013424537665876196351329782600978563689902191671191646153700783932598800132638462633752685748063039196544690431836886630355559893771174642059064939160777009433084888494605151339749321908943766700835190783713580580379642283558951696185685632915698863088285989987053215677010086496653707431086463244914428339847932847140591128043565027699925944855133189878344515601432637982333336759727906454915143187018844730115453316726438118040928383196320162300943389005874748922109415512671331416986312484018282228054661454417302891432112302772322099701565409667209808499068117988753435866128801023625027849018900435559963626495421007965207579338506202955991814430676425423383764316438840130966928748183245334607328829669787788779620829783814025666619362645897454768785810295899748763700094616928273193212592719949539870980274529313683718723110913745380867379374933773078783968936877730646514089066575054513664936332801255454040053618721811757809242829203440322836917930780715598044177593166925454037707817621485357774516943922634932834807321286941298988801234529665900486652520121605526961368794133634692403754298520961045323848105210167360962071795537973764335104569032410114620001595731646852518955296153829949860680726338692665450810885123004461159905027149894220363068125123614825446239922293446341843098797158487663748923527271291040570123564755013938699497946576138451165539010921076837929915807413126734417694975468123398018527425900543810503361290067451179774719587917862205722296841307122037671223501602919699635886791073287331795032638322105436738663746808937829696663923543659410525821799284305691713621782702325426500806306671578382470331894466095697328545580653395825323469594526894818156594966214088814935673714247759436209724617513417303923310217667949657356112071357033980713389625508164454907452495766216005916826573275534722229102705746261903532389197387653737230306638696677295956597577441822131165987913911411994200649136316848711583358294360604250943617282864878729335670060753220844259075408787963234635331650778833416085817508426871444375204939498099339513003670903498164122470207340087680467673904991594156410749985457209633004945984058630893557690913703953090276944589204103168908812955408488120187513658037890297695498391690185765209143164956780041959840808821328396361782204222159302316796844800357411326293155909857992770899154136262095430015791450564723760637779588864040512464239370538953064948020363251009482937895485588469258928483612030867670852475207613614600400549113330612319829836390417130695705960307536926503381838116347495625163620571246731655092747404022291590462994037853448456787999971946703804242144441107102118667834992009598183590444585146361750438783909225506540569223507762096880128527981390368421364816806993482145419466153138032735360008352010958635741898462612524223813325089217579650921818197701143392408407756412146855981642306020936033925385692944584291578940014305228909312684351972006744718122869332406344399224184504166041965087935141440818481426437180649266649680039437301576249212511057301559705275809752264166683578739006604474650955019694689886621576574097973165850057286735403095821548998220796087514764836750296409779097991795858116582352082470011069243473342259582355682116591126140646568453013037612634235376588025428295240429387752182690763068535474821607477503424278048622021042926233715843800217958351125022330463935278714820130525897524730314660808714113813074420679566207223915701105146325349383055296105191686718932148358250613608834666175247806067050516631736607075892316936759346162626630337227343075420372800793165057477874352106051589238872779398370949604775523459521261956629532678868780440592329547440545282678854769236008687600893962841969875094771573216385570362665008773387975952686266110237430665062157961797585354897298860794462977129732431204206748038022840583776214851958067338823518013943553069823312839666987297734926420603032086360573413674093925825639412910808493882493569306305512963628960815006384608335162795536397861870675446316237696383237724295981885412700514065175600639939317154002548521675141347335158785704975123090162409475084567987367581247017397858491942649885036190797136938812200555432597819929139879849343449770854827186280264723883442271813155393280955858283882615606982367638384164142375523211803851640773987022948832724160323232113124540715762755057274641274542811732440640589490822023545492978809369292742386788540398029379739518931742167940526874670921395305256532113083640786159291158152135347110884572053739313132450498956376244478355853157490867176663983560033458767013623437466528778602252879108117304156506235119030416899981164183568801962424614292603156761009824527667475542305699201441592427304577494127333318357089797242878109911521185376709735156339502463512176039478682934572330592046406701158547509603128008990826553375309031840957144311254656637099846155404585684673278577684488306217343413174682891493356080889844336902197803698190900479634030586949505936522974017866285888270175553322597008687144472026277098997080554960658565908402760048366652703683912040808656653715380277340901285733969519797675340583551107779654415330985787389145341548535366943827280209257975709776686149563528538978245089496025257917313779739533566163522791197792624528172938848680048456179295277172734541883207957016500086219742275659370383952447363735487565428880854122838445137850641808521973044720367166012311867356201268744622045816107407845468430551024814582277965275852431714658216322342784998114117282595640708300075075093445124805293354762161951160212859533412362677710591271102297094668669709420139945850265874482157370684411096285847342083201629316850265566600459327695298676400099225094243566172456635517773245554053612343689605228025003429916977025222570594502874900880881841440255222640878347519223343753683823654228114536014113356875597857029214597258151425521429685876045615044670167288691639628983425339299170177576757527494547015373521964039774188691294509005836203642596517516056619455413414444214603305376634421174791763110319763688729323771367601510929125715915100530285176931298169495148510735242296137890027362045419279653480573584415490111572183565771594102062297633201677474236121123434987283780466540591698987846873823126126909646483368085214316677247594701733141259982867261370171483889422394637398623658315458376524293224936979030935332695591487837548550024829369071632518885683299435313911577121569887420313907457051098617939855264312119566274093343175296073334247387775741148424897665634415421644842945361160914309169750013272816333562844507099735703675951900869883316656823679675637636342586384652582575188602690815920077059972264602718534116601661546994280546859549646102992799749643967237533367953389759253605036789399576401711577315741887566872693442769707776076984751113673880246843228609548343665631875946779584757328408074219842497711742994888607706406551731473844484379290532409280059261972462160607335955684784447505191939657778454533188417714546547009457799227158198517557788007280772220325105754711372932866270126088484067883955462521310909994710623717183000807523929596090579646811005600192056310690826141669435700496646229535781824294628713208872292054790131109777000872871245874146167481640380675533477430353659833499256973933498463822245772822820708399212170672254693001816502172055870107453317109323649119353695330738182709313077314750474243735914099519783065456047915196836168627326780308522211101541312620356527887245440424297865378636950235963677834394394968098147140048796143309116007626084333651325276334694242777668011726647394821882052351332752407794261376481682205845276703251616947705319172650961070638787993420985279051421527771885231296307093522194794449294567720470680563435157803588659853909121576856401314285470292250005516074953139408819866108975353292180304292056310599435519969521871725461508485187255092076001343800120856564455504805258333212337525800661957249536416382935124862242125819404161540886488194740680953237243976272940116841527833630632172114329559046389632658037979874519247453635477285759519856643062090301616319880308075852439173025001409278976137692193079385973575430339318585780744648944673630219845366724163141394322013641687264042991841426789697497897730193477180985389642891019739560213579276047792472563799263273975331705197218372295301191107412570092136833864253026904241727531242119912384739523071091498449823254543846948758011201264756252250473994188688869062882860626483307455881760808070048547000124094992943645626265516702057244831048303722105361746374268194934082900824923040185598081257768560026163025543335309792249433545313895064661002223947393681857615541751431451888449421373870640119049019446828166911837806399697455054416366660284130584068972392567838681310672850044699628877382630582155645858434985513937852071413768724349539660285880824360626622706947347584896896797550436738804055454730000066143226040757629928417989816344841322617308470712677498819718128761036855564165024795504677898206368224722734214812828844327239787075259146218383055220207948412138105001015213619917929849443032663171938496093061577427641082428139258034966260100548639191142269135930558900332610458544653326856228094575564679907391831907350370539906870106181562969002684158051121956506832727957284002314388511551226482904954424303470996124517563398220826414960455356798708474233444767011025908325310218633799770864902485388942639568703692427301232637572597049210493660052905965129071181267373238795014998354936452316253088145159464452111342598990566241074645659533979176683571032335295983083109445855601851836984955650338550823901936744842332216373120022941309342717548640819999982470861306410025942132738425555595867818644539137760335419918708584716260782190505514306565491390563145952785526795984210402900558031105389619068517972541773460840342891828531725559970433733761762414252186657348350059137621530514702719334692487891946331373915522016027999082430034345444055003866887312755094062547254083512591538096632150959190887389875356142132708097817495170610369088702370104840508253304352738456257622818445490586307027482820766176837159490596210427900637596167605619163180493173267213536318769091649447811587371743217122993726885943356989830895379270316272068009337209658951332123914599710255117682996070363186199815886382860856533407684682126785838793198707098615600101795022003453211916116308073532535969808419307085648412651061591279045392659516529595781977529470238812089023266873079421031614996511824258208281510598241675243500975774281963782305557746540136899121615883680624083144810106004405217594635496850483709204063803300964253505789936202508732828632520881504151844807177228235010541023932259182620182305412072408563103287777388200257587360315087315649732788764610364126858741800409953385212208450068759052038416792675791274849527165189255840498399384955927809007474124943458898820971067146361302710782637647752924089521342289973518358142686864432386160900499615280578739167629783153341933210085564310410096969938327452772832662990722451258883389426004465718831972878293849552251049745464033425513384730276015831238898104382439178998798049198131370365038128794985894382207980027524783071543333117716847134532102563235221343062298216217846141317001511970479953128293333578773369924771044812375410435100633998412049914169242094174845145570155383079185882649655695483842357061712750176651107929042381693913347778111601688874116629550203807824085091371210617428618184348344937163080253626343481385490751804946107752215638403665086409473104518647938221758666501496529892709111210673506128357590083631864666882434611472366536803699345083666189083371812699411881160686422021613669646367804739331947323155433277482549470799380461341068710502397241336735706361048777257905966355000016019698425996212957171843692389414661535772540053954605934080336635296172027793458970968972177986610234482689628084763442284151289674566352304167864772606258139967001060604553215199044602316862609315570645401016941395083013129545106675956731802120822126695289762815874306170191438984987544922122052461807403624475016666671601866544199527589013994627012130095523692079207105427247363081754710289638904619967001151209044482576875364891810652158514333382561035224478731136566210838199542776134605635918453875716758953898217193788535711456057343735005345776095418594045445639756447138314156249765933939241088955345673875774789788808723189016021253369585557535313403373246394714062370445419282894352166141964200013082203363640948634179273672542873493412924121261281199025106320176389874276648402079437868614980398001281058691561242644701809537748915688305430651792385182384892191038238154650160891077063491344941910729872498262902341212764368407750550670700657753663785671277474100413234887815421349602108250223648961247339958859827303345501777302013371518313684006785326256159085795828988935156782631664379925805456214054146793585167366687906901630119431032996123688227137284922310762878680435614274077483483569725450712062776749354865653074496538189213771668226093406100373963563293165438069351017619393854122042689540411039146799591605742169936473140374000907618842779998264704294382639402982433933867692782686954018981009427782637159318962482272390480648054088970864285529142864242384358887825022815038482253102977808745103712012808296000506155044499430704172808802591683167842496157465790703012348302158030452217819652814918902045717117295223639663774960483239812115234512021184267910913150536459984447165919592977803904440174083758858785806762705096034350315498068047448841042285719300068998654422872394170713732140153028976782178100779736709281933884713970861418139167652732459070279186192324603476731647711715487676727616823031270774389364814281191152520233081929626715188341416839523006342866671993680783132482875584159346176109859984130662001813099298692147045216573306621047487702766782101321044633028430066198938923527278753938396068569570033478847005659117001175780824076588226181619415689423422264565754708445071498648224718761033907976759030833652349184268832133852938384458445968436302561379135801554652569824793880575388497268960321492580734951810640247283935333209849284715609136787569322621946089219489045807361195864440042356777854113867542704500428080841840904660825090906272797827267699096147278534608589609163601685492876008577118483212397972920289292155278403556287077723163175857912346907950324771082665264994654564016429417725691832974127141534083676936671022838643603609382562135525277567906156828856258037536810466589476063550855477736474287958069998425919440581556317020121170307199327300722975603404529991273756350495915141081229250593915371265139155326062727342733306273618140666164425399764491193599249623867527370490787456789131984732526089920202451718362829144222635079122399938785172400590214150381241333906819861014257001483467998765927793949043399737331637042265619537567792830418682739128824352838851294860605385047832064633722047346281797108595802043547206667821159363560830787337478241607068863645687002979177133765941599161657975057679798561290334863583107171826582002073242863401329444141761694138447777900974946852897376208904462364840268644131723743977591310883622232757629716494612903231791339618686893677911226051695765609947481144944086022438343025952820406796501537736603211959836985175086923099025228748518871531747822090178742586954515917395956654104905505258862380977395530789764945764202331676047286290622257772640866222548459294400042095935760971569676391536119025256942823079533131904627605623741402600743086930978200896758421870790719112452515987017886414574107364770719555244454664733789840643878739094974355046056414391815974974548420580330568421672768824624017811710007735626109724859534928040598877223224523668612010989434344573270462997536084178288389939782566798104773942564835092260382373950530242799681899909876218884684004107357587215692513120952771102028144815776177827184151311852849420220146599546816175203172592504905136247103891527500177072740890244762554977519170623675721281580641838017325330478712114122552872147552114571439288918013212073204363736708857955435867995824783541538682249240190245214262688472451717269247519518952937186138842613835047104796738649047840278649890657276665628786474446414052413503003938659080358524658032709512451139562182928589245110575724077917340935393499573951145768401567422817239099568401101139329059977753447253015563358037846281403282565273702959836032567314157461470563684969366420623691504991946426038421878702045990020661979829361282711984547064639660896431835880154264927984417725274776544278055760749109015587950252101003508772146474128981572759498309985330338047420088348891811481041826246000226541043786701401574834128563853156547700252072660097710982999476060095985323818638701227653816368127810913587645721482478224928867163649786296486828062392164854613427063399120030239051140331663602495481679604085316684688004721427978105299751882865791184102750217838678149466080546260830979214357376946261585568034188362989012279014777547766101242833895890247855074480440067521384440674436403344871790842743677678278283003453785168880591293053200768315336411994299221420948648881102055674335505745674167036290093772025322117580855638951607305922986972451487410526361059453937658635921738256754567108388771176422358833747739309033948475113361665217504301328849405963985884798046955171746058427745520843864887612098572945896872479293393557881390390345635317445575216968841162354568413444503313163234114309042561082030038929178717560971817547301189916459588383951299965571533985080838799505192104194291362909428302670327081252516769180612845564509546580615544080680577106082039568412851397688718905972452315712373314666078274684455989003398570668977297693991231859914648885951283682147180163072900566121241477875012579696506521882434665966650115406596617577267437350980589993011985197595757711692266822712754945948000967690681770150941985902964648108509970232506954580251386180859704251055655296186551584002703149593148129427118921415701658610427586927652695278095433976421964344241424034904201043194908097813185977321713726186376817533859266619673523306679552712483375944550173407497492605646383082297538673420033976487161945171601941554377620906976366863166780702890679860715849122359793250881114400578233928927214094494157145954115842731352403732497763788700585516349226659553595208749106326785501571909326863983814139087495606138843308681680740595297728995419481934915629094305765980841307899080455214500667780141309423381849031579895851337548626296181496814828758283379405284824797400924386397638244604195783555414762062361500621546174915976175866063439920520188705038261708305939450643745065285621011254609915542080519327923033134965949751026197052270370059870228963677587077109673310797418476965758272392352180846555042176513418418133221665000250041106508056550552885938511549537451566104905283221304036209626446766374844947369591945016361535825208730385607079154813846597182690972127302094010721603103842929459773023515603340845787677820839959400125689503710389293422189734633546235209201665324211155776028150136031276242412804074138353125388790129880040514908073693513842507497919998728398454015807232308619674872390567553074053626748746823710955690561162493944082684866135680434764580756694813867751451972067880959305471543157118325756247215862215844146775820812850279782194328309633655624484647736050192413744384383101807563452780881030143053834179171578970419698944059534051788120460831166494591230979487293131933021503339296559127256553122528891128318274026016185509527329718076354849566619664581673073477322874377748756049064422704529824821537962288556396767370650739339026337186847096493899687783153688488171066705254459299863851853978299156787743844326705168993552734454146035359731203510836666904946833107145915764510227040313232533269653363585552331768388448292455384774456362120274326394799435652577349825301661020282653526204889496205100802886542184063802107501912805381102814365461503368333510915660563344779722051026655814739256714225087931640029825244030677018940320868525350706339129576895582831556557848587554313742725770990267420133146961621672145312795781231464881719082805364124051628374609085152387013331071826998156354074847319334993761721115114617929289199729371901390834946262196288893472344822355636499662358324852483521008398062782905430512591470805123953396329146628691821520678926548607465572098381865929680239320882690871509611645506717266633451946591797678250663128468081623174606940034093320732904908001406679325817014167176874674652876149646763681740880881404857411901094245890416935822523208326066419710186671649101004626307589900398168211668345716882278410177619283556017724592782485736290923038825776506923831999204408344510115495968186098010244767616405806624525246103148145174843416871903563504277080189960295004918988718114719345373045334005142446992470034596077036855957857461673845271717251431672295806168473753799625773770676559993396209422465109099140148318703963425285527924559544625077967733979151704323707892169316209774701416675824674347188800579004981052010354849537966467487342027334877817556381063294449440397423749829323979088130056595402087895645814522477573433384742780777519982864361442639757044704512624704051545741606411495759932677807078284373602747737567161173538323594791635197265598876915787596607315367093003489987509878303761792458400814835461054639721620021948044834153329933958807947542784725877839365342272888204902866528391986276293977316425481613376851365819955805228104919047436957761532552501092888455350335619303144440720176647220304608242715575285674811947462913482788486505424183330874392823519047012371006516668501385861770345155552268086785244286213743388458020202565007284768087612471127201146380535815299174907818505907301693143094944761736315584184549922449805105664092674221260313567049270929436077910194289257200228510687346927540980335311137967317806363967138244659133336822512979484020797323763680126195338604306228217020522098497650012313613632170925201678895470046758418069451801540707556835685308086926648631106792073098878228396867805176001117655131463552134706647322192940808848343755945032176212406814382668393527808345319519609708962279238869183404235901409551382935197382471248389055492544949361068073066716482469378399559720645056129410999033105832330824058670126096002352241633100515370602302563771172020739137093474388452050672330593788413633485494285651931236054139604771090533879292077597264025425601832946013211066903135316396381938999091186024898994879809859149226284607680624182051038478519823670918834326672081457473859137817250401405881377018995848535905627733697089322545053937032841066827291649938166504179143789501533404700093260899035514535371904261178122828702784027332143711723363218174345681286252680457142386116785291640151280268792342680802178824873231308219028377100355814837038729745801010315366795190519646370713269982904314595754645519725968151809088121125871120453751825403559786578028710984373675055668427353968455046612867601178542455236868369348996052078800095352696123121296631353927298317995911714066330557662903146436615446328619333296716810536102093277117041230548382017010687375222027841538988636133698916936355694915325536552145522540038305459983636460354035757508726441019675777819976052771506438592108996166384732263252555856214373078506968361633392665874399259206449057692823804709033319174790809229397157263846425267830109389582276744298281757867147372899116763037288117708263860418176049967287692854532369558076056287404662436911444817437992860499958801831813450368819581539502416291702736401361362236103550173231462319211420450973240221632507558341307997158910217992851985473290708521567472575109185143848533067629571826773752362675393943331408466964282058726742947968229390264021365470574587893095246405648969331637252580255777237125427018603435329738655980460494490163981640827590854062580597541997025992389875383432820485213360889685666507032091651587359871692465205623836729857725534576593473849985883749048381650484641660748382232376174151366393793558423145471339521746720565281405157705925941555473851200937171820861600828197135023545110918261610508690442160193237602898536184602598030037635202991132685616728025942546118003041746210560246793561944213007439809293786382478803783824497248038614146105051925757313654524381015651660699911736959549317512042620417012838613034329112064567665129899408683871153207223050982646756044029631872360716319790972333906580480229117433506792157868488562238042498280277378566407721454918607920541144692453674137981283319062605393158146863078669335311781003649538024676194801412556017018829499440392784242886042885122041510642811374548501596046851144380317118201785171025789082797004184687399843480606971219045073412681251923991267079064787831271069837124049496312267887678667297348137733496550068317830756576790401296386022790223219837651422873317486491543746425377634566007628298440634478120220421263035933305326218697743369047228142693464835515651361312519174648985032383477184519860842241607113981955950493176747607381229373374990638004244884019746404475137754851208624987414194986979946264586888327923626889913896301347559800598438304016859647026672176065274000105810397076037522143308854477856411498383277756639193065113281167529129921434613350072089178830712664121057013442552755986593122684001876505084230357755593179633964636230692318321376116543943344160509984189562050351514626505672081805609667844076931895146024644113699840711057707586737880598026609824712489282068268366453451123349162774494817031479112448849489270443588526525016262274216318052003779353986857460239817104869154992313880324645908231202128985870443397392317459248993988007937704359020563616542736872288979457041362091844426762261597282546772985334318980378238589235127987612074093693695448608196181546415486020751156527386421749065534748387110573515267927209735018349476247729189083555862726623808918286651999533464211997457524627363979744119854689180964255622419683448588774026502359426669133668623204874589998867728183519742511324563812490106029387326534696096380756392899657477173489674547051816670955437635705405195987243087266324182555821091681865476834825828471036196923571279334735640721879072745550709137192099434629229150445389908310951357194106941166721295599459305412919216127571368105830179473665174635641590643595746269905447840195826392748809858312937043823574899226004540272617373314933304512777155213392195948699820474836289792941633823508839039498079548184234483299696998286121483448247616002902477340620216021948479874129809063554859059363853468603473304270791524647501761391687090823361078179930511633523391479952699159670439899502007962068051242091322345738098675275337042554558748182687598516250178747964414612205429104959045139761201047480164882644484180214900836226506570077005158917473680619696755191374650959448339555708757832588433892923331741437699341656174559751319611216293993512605866278282608215064773411773355464004291508376399386650767096517865818354723968860680681919246620959395629749393053283201076114871178118305382713160108826767827783494973836349706027754665454700680264161375178571225756707320252088218577520975364224475578276593825293582118556716176287638823956031609626936289604735368025462265040151209084921814922378491382381295646144760107543662810024180075069989551829619151344346594462494831302069900863513666058415992681513334715481199254003146503329039988089278740037886777727778662343172838478934131774669683553788310214060910834452751065430109455157031188221869393937434560571834323453529482534154231013261797865235768185391459583966086419420357355212587753048428708369911859970650261299638697489781235664696643741929238732622713315445896160323388662430419761776626218767733850838163348312186911905677750379429786142659991808136445914663481149846644968222266500123302333473088903139753863477462321292581466757313142508273122493668224656941358887740309860647274884104652029310904156307659243910272808158865856690046358121107678545008667363919256032916134737304353633079449613718578485109262881666839449019299361538371150279350080337837361685460324774214617564665486760061473823011189655304557903941534696943259669240776849866535778918673732347118594300456451268949343553843497518253166141060129246797334922045668593311352800100657788088812575407050018130340643156891494480223284960799464698604286929040636754757796803540403593094689170486871938652564596005602503732967130016392610412285844549787380683155816471499950600674953603117241326334239339935998406521937094132286891781174682137928501085404397827977440052037927384293657671966589040143357324431241620241125293908942394127200512854890944755676061410630160449544437916679418007212998300324839436701644565185528081229333284610523813518237232702533916417499569860619512179816091614707353727553075385956483313759117710340277654458759477215489363583079576593318104143567105874081190195201879355699315041131601252568919127369373005486238344844082544998927019337781401285193885534584136112984232051062060919407208231574774908146945236600879664689105150379161952780025576431796331645098830379221500348256684030613331055046791292756309803815559194526194073720004672498515044234776270790323016410993351559170002646023826934296025814879876127198806801090864869394352222156481605870676424024693403731599136290283192316057025852907794791530159450746258426997778967233609789252697833192247050316140315896728910362794760423641552506509908557566647482197495111103456984592571413439102613180462898068188746601523404663516108538680516772628660152139468240979212907581915790017830843735192973890433247546791126031785406358457245898985975767663257782801587224785664323965682619867409494466641383032308343826171775999815564396090022095764589845594312938684175496932060276525923874421809680900383000379518115663775054102366529398557757468491709504480686773231207666662071532960959852775647965122824516146536669350356507989404288856802953310859251921313051151744004453483216837614026165270582158758417210815571116308057223656788092150633865958799067584700086609042409942666063420668890218770183179481528442873532078406785519040068907529450051582999641802319329118074963948042969139323256182209380223945431013641152901141983263348851637520763907405711366963419530821582104282928663888956216070683451039728092611054141566205389940402618627051153902429723809354355043085298445724482013054631565490139075743294200126488801248037125104647658926991588011976249610001093745658238578758162767628048429110131848549760360221375557812307834584704002124943100824539692775188446108021165604739719173937825676463784793454759969289056920267010394867615474955601295268494432181141826368667169915220011165322510730380623599019903293354004511894773182897727174533920514075032924806334282512718945031108231276950375609268927334992812680709752982663985877812606870736543434754277259594813480738384132258375193184378498174659457632760483367417904073352637906854570238879639200571704838536966743855118868781787739336404324319432192919879305210920012119174381244871404973696622364170199633499440828640478297079023300793749579527032937168227790055765116539808848917521105975307983383435259274211311789173590123208797056389454515597180133243657249628659053435635474765864095521940233092202705124505818172333487845575166787306626311269511724269639223507790365043287731470256106634537355388325526171476998835341878997481843577696755747806444933282899645069955137324728614912474061154885360146891850469469797351740249286209896889047012752479576253569207824255866893021810332535165454429366389445632172012388749262230000987557981313863877319648222527745033768520420737578048280781158715296333830397950285042652067396726563740584980822672406843471311473686290313285170782863415125710593131581778092181149421150666104164788982691965518467716795466765832451944151365868489282280716208644569046313562913272647634512140148844522468558936649850908846143642412877808823349217232087807008981372465041929643696969127492725068463752864079816406661612853219198518408841421407003025524720672661161430365272356667391720304441816583072926556926508467624972502300095056811658279004263925824020020011253738787777117277384909631454518346817745205959265250883205760152799875212560653548446255929284402595978153661377705463653534264937791497861220763863480968745083158946963839276304604157659314555714315491275171592175869145577589655292848839748525308804648581214297451037795566203239808047485923098854682556631071742280215549035921640464316654631433971327973216013460064925997954320101314252842242463314154767520514898041027664385267353695215457455604262745340522814045990950981406000838859586336076710291240567904462227412985958630479527596530369448546494356782247786525184881838298951369118047770190348975605902275028670924592865307290327601164935583704716969317974536398152968590944891854244587091264311035010763146730321580473056672736038186910955413241646999236235970408966964149064509440783650455208440063023768393292352328739618922823410309937717685941457896409367089954805053196144406307736464722054004178716747907153437935121545130168169990527467999373934817740345715058468601129962185651421597531198681977818735899884678101495616396345982230894908632970642766916268042353707047958423567035712139671623065789414198891181926903231799197688600302314133436388512350769695567800812805550094567804270614438156693641100489657148339958599905062275427281607458961255110865970847058584433568917780211497905263804494351943017201232270206030871793342315392666310461844027727556318316828495326251572671437662538341563226372258145225952596120690884065027009002653978544393689449610975933324465550609280852390646761300752617787947614487320926824568624959898769982895054669291306182977325006196665876008066806786734717550783513497199249688503671384793962211367799570208432705765386331828439751603476202604398343787853676953897647194868001709292246450782878793634760218636143374595327733465847689409431194430480072782965626570353566003228069248757356042360968322629992089879623423406815710668541745443429636848167648415319315793390979318724742016209995280764308080874912080990122239133184743099856164918509935523075357296114102544976583540407221465466359738612737364928000381983967668515484395047448380623856847924453328322350567547283878359708427400831694923759016337520222803602390931932677703817136786537690615219711465738397024462763364083841037803091339059927816041379088630811123618421449173769437575904469884396403458918596964138956418970844456812710674189477440034518492914966736652527332835660347680844061664324872901657291090985131876493718049246858924265666466910443284214446559971835787899486503690412587377013294354761990435343824633740194076247069179765844223893636523395991920883169088814140687011646624435378740195882907182770973599200179067770134386488601476330626000059651513625635778238152769351168695568777861133700029050204784543654250263591867916273070258510280279941531361563113305464234687434991623642301404299821570640955519083950285721088320018611098923543002557636852055847686191853003511987888574445908188024153967940674965234672424892900954714538760760934014077331373034830091600928167795718646428754612233187244015351503591308074106208058178159571842877555397394091369071902818741919150268106708975370736604726973163048406285670507565545356920705735635768173358410466609795104155343343472928336814046287992394053438254697742464790223690281349514312649820846452870176512549936694462277990820971943283013989142078890507215790154527306882825209944162886537057670481210795943206773283743395834467226963239922137511148629622677389923850515328205519221175110289283316703428127148995773013919892843935926109393417840933936585284772445455539981298437073016073342305596392445923189792493384480814655519555349715056209036781493055200067240098348465927098280583966877756313813476682785007144013669978191706039377384084091218221736289688578674389722516862265333699974521114199328869748209383324091322165456246550027808366435662294250026703525435887743137505047580746156198467141451589794277145089257132295488966053922186977653491378678212277523784760784136227797392131886460082935686466484943517458748877169615247825577716028498662721266776940477650375266850515091608244494226346888833672445841577494586068741212674398681979117295099318740371508903718068835917183149683324992850853581940514487505185406881970856590741546810254245113365071421819013346849182220762237555315229407611688346170069014563110874370979426023162632065881292528015780243494594807742946568328033793121289116829162568346262345647357612263632983564046754179322320864171629324570834727560523564464737200664751301923114830473069510369651936507575168349214341236621771634467101334929927414845654046376180811130426080316191025501562837545403296560948860631377489524313453128876806353272704080665466599080618041574916579653038070292284875435700880068168760382959692607135909374269084565056593008691884818198878995951378400680137610332798336524754067457592780283278218963975800805502866423788442662838305052464925570891391277865213317214016087259293457586035655407177759296005030815825571217186273877225588752348384987089085763129878098642070935566030963627687075279287671025469832603552704804688793257499429228347481832880546996102017240800833753827631196702778633804090842484311418890679872754595533523917736558067006410554197900375133249736459144669099056319783468725815796058056073428771666052855919888727559059472262543563220289891841074054430714260333980004891590492960595499260848593462326038596034695524788822533593969152183168841694920162150466167202143906327557241391467954225563865799663621483467232869472082328433353553691051823877798284361983733112442358940625064133802971134404711302146855801811873877385302559804454036552346146413889550072202130205136984838112808462132062058926325047584695770917373732573530004078437564890206096810699146129426298642561042843954343793793011568562477112208482868820945270648970500068917955763448896288277306076941783840528814743482280448953451243127479525259545889088154119899891707695069631668271234256931349481854286740341726811692563875115601963331928232805996246684795917369276788217868531095299456779933098897649546323532869633105235159889604354860512489379287840106150930608794981575251383323685091868304469553253054974099853621070453101534307790503497171851051592968982157491180453532832891988394923373503094619750136111716920962823383903065124730312018543231436885188632587901017259533058472100537006389165837950976640802189950354877367660337246437037187187846867783945612935257626202677475618727656545602723270450345892010584143239047513409003174069089506443359255146017392089347890505082189633227342505737891990142187111294438544287660015996157759959917008272014090471412085196982591003014347004133119815420526176878052241121921519589871927443833516648190946244939374001175405981320309943401520717151719935189539555964067728770455346153316023291296804096921311002131782851180952517326106880857438614879737884930683779787836512863881013093347907288402450667754645213051007473140438729854832088410817800189115687946805147450277438228917051865276343909363081024436181733483268419592436565679725184385646736847920614621462910324880816898813424377091489975903552202875832142552028621201943647851550453576788722800629610704636290865019527639460313713948510203121554975936768292683688828329964906265485585475644685587796194458653844609584609493547109578161237927681709727228274014340365308126758234083346742451493703270038234489180618902096302544063159121657525928362325992801942261869941214123912819311384030973255709012958644154996980683090319376378591154505052396272259187117314742680602293705822747320045285227488795657379536027406234432343288562345665474584381464062285092813046822411379160518993987227246610012037968501222666896707150440082604381989240468968605337479085079391514734197793408569666806920837894757428966896849634132360808826779891721252830880487805564817430931874447903737472521951431247002708814136684935937761492405595573401967135117904434109638225940057191212333282008661993063750728312311366130397963743955868536516797045103009923930191119845997795994669047016357592694800026937329853523853781538898433826942691136527813483946954217887628332538368184899124956346286616093746345030928049356069950684399952379206638629336876887287590011196981107043317098762374996806986679064451582274289329197256901184511340993904151312573560126134800624779037511142652267163670001385313700827004672232491076913379264206452590954654074798941007047026966946628548341941143069299385815309821572530185707591576479354774303357294256149618040635021967790957793017745500490647973226155815379941607026140574423962238322368441752134089291726104211551041558821328532646274047665653762690561979105318645018678142036195208556239101606514441236103555190953077587799752292964147242731302777871428990520254706245362982867618143900327343341394450225571535271458445195748469563019572749021137192973333479959443112907982350728094924568697272342433995249257610769637462861249121514509224556758049077267072739678131897452699053902582597295854546503037541925614900085810179942787687247951208533977626992845088760368713961740914469231979976579915267949023594752170737346159509496804284919721462968856871379270253646110373362886699703677488242251869799651492786042059869070524393695699718158251037115727329194220385427301184367976362342852359114807750759137240171918301501614110638109219087350398279084124586217559842622072594623142636473506474519418773529955232279802140421538480265106105044880914569037896348950789401297044612573876446339702250988089895191496464248730212171737816579227176262938797006533584495416643371019798052731158565340435066587030436691391581780869896336353501455170142796321034919930249634188120452337604172572328574209578053543141797067443783284828788418514622179820790398210862065046059820925125651948936045692120855916331573387407766716907601520092367210740802720457128473868456756080969702107063305679495519858520994112932827389841216690566254984001564170599057004573686216747601579374771327683526468801633644904415852823963353541164225022000784115862766944898999526699669603797789927686864272094593732461901574824794816684808973569453212060306420302062999172538743302548520812360605824619969216165552913241776429595608853188150093088233344926364325419752717181498648405492851210597613191042621158003699546658382420749193002146866384864862402161819094278203443198847176709931425865189123758582571619356948645767052089798754739932619371667592773567037647413461011698374966775618229022341522476708003485507206349839730078590420571899991505351287515258695418558772627514907105490703632797710351914236064441442334981759631745283589046199412213023752526980419294903945239930709130821633206742192402316713620026967859982071469779603692571529317231812174190463794082419205018480370679090916240908257960693269607353190342222823535597277824284380463602238862541211733976989791375889937712389852407218469166529345036913101064444225193065791730989863017718467193763369983050530348610072192719550154138292406976017524770125075858414616248894203593933473288120110332467467806034615646205816827524862012182124498857253688443730275705372159035938330575971505159686385415307254205628758844511166950941598801405091264276383649048074316093530772560481561631694731000929567680216952891471464678300753832780768252321287217458688340445625542969495442894701055345417375921785731024110184765719941392498970777363685388516384042176261034142614990536656667397916979216721868360316967191624339343320925855680931482272772826563858593196431791230362670416217525498581395384848439440196805419024332720138057097635554999078625885031554823850802490206804506771781125750211305363992098710180222369513780290812649915640840877587605231354284905980317986823484557598292967976580476636377137321699911921167339543859002560716793998613698065839927016466748810046310239219336901253637605648146734287113252847363388023915826257016331864399428263675796578135518281852339783928954509164914214520258960001725768081551028151228486314763538272093273100607681837444899690064049216842776455154949623733348881241049712188391662645299557279937522375593620894152031516501409576005694816241035056333038138418061178334194736684575257701602120088026471607299728201125322199838977490894762132140975909355544996373313419975524359275989849192975384302243904411289364052948854435224858059357073908769145590261272240206727243611806894484921322224110004985014927414855207633640827959709101838198751584986356453237255073219311896724334081206072991314341364978014148510288776915018700691368382844791377258130324979449866750582129400754780967690361731773955808582386883553234537144566078151609415906660304806797477470482984179089581069709401899697678778240218756299264353536097215744079197652765890879153297366519413830718542455269363754626911117792773697393119797416147408023380659195687149093087710861901791232839080009117301606704846346687070213182565185550529639082847148135643562013132668267550320886838734016541568882624081217242719704456027000467547674546950736622289815244994218539508655705937785683844305245084033180902182456767597700645551405513294529650606704348336996826908732092252548316652186286369530546199755709563339258711538607928603653466171696655224547686927327886687425745840016603501928650429655621112454027548762282536945507944593026483298377093526367130409609101743820209630023484181919762183221669751376678521963852661840081372473151034532192335623709192372379301222423823794663869131522163505773877179339907132478279648753305444593928819755829363146627619800235014955550728578474050585094427550317365231280329847318001952017714728577120779535288993096956399867499060039876150779194918758411756936829645422995256776448126320177486743706023476086586858894029241962978843360443997384383449275776724193001477978195883700749526057043172769755448771141104188587458298888163248629525616590079673857184692959836297994565814428719300577552485683646340699631747772895391940627945484172052263386328332159569300681123890382927528763037048358060669398501070816226261124214991992672492848756498539130874747180450170184718319652747465334524459833658326470981327312471114136663376766967111766877182171893360992201397290138693678224624377943321978276284437922769036767631878364829970231300319793014722998756735360689783535684344044712428807013909328590588713627863447298710836256047128443206212533358161057945920816593664748670653768495113018412628336203435829058141429804260844417549413922520030361545598242114754883434923541858153184299328480819718244043530318539174508769221696238474879037182889550221444000946780204976522206604683419154590158797994030633177012342009879204709603690016118174147187044205362255453429810929706909322062427785243159506610131822037527143656024961450419749624003504249456048641790711369646948014659504511698835076207426746750859019386843159277139042164196760563578545902785815530744128182747650023046743249685883815536129588879023770508081199256238554774114893004477646837950024633569526460362215774647267404285548382782096776889182766452883035369487345215092307204647625712037130141448243717852990508890456544738259514673943102520095596925839906005973282053153699774053008799394084942406966627657170141959515927029711247025738733268895177552108121823458394346983557304164161811303382748082193199913365783480494589795133714486916360576518144933238159956959885269430849748439107140657283972302002619958422747521179287501453435503994947451610518293799419841715694989662275628841755766237738371404759471558157772211729008294663420799770618664897914688609803525703014668494313628953012465420991298493189221713053677528029049045712622489311121881749642413364255636958166814233492856737161431183021431688100093587458229064212387722511698664425919697408815242494567893399696012884965487437332964835897466892418120029910025495358562668625005503791441640100950223784285657070943309435825654927797421064497808807408879990545913093952128894353798878537646567477104415703526026384033508511539392110570076177936449968879455738051204304790887342121675625340163252827636275145638025668415128002760750433846717080752656974981135350717593260476186584593641847980382533667577843644082107584447843505521129056621763893691322328501011996466994923954957408827672172161249456825349659334284858475441437314471474726649393224449088055537990101660957010962337718595872728514577094158026167492749473771967959073968574530214120775749055491180357163849056001055397857116335639725625293734121003197699759240342790259625925550889348610343879814361227044613848415994983010659687284503237714214522469777730479193224098924232871588814345009002722734743147965100099909733727914736160896503955879787201415236640037658977659492077463853746610317871278394937299223496266300410762994697385149099832916576940170973074225606624159935766578765513541660016958547229532356316418672245555706354761436346352122782928490938556633143097192956905444069042236145422171988151557079517061195888014862380482459045317330682865691804091963523146671210431914220843203916293767493382460220896574112513376165239115207637144455362897487666421261526938118694924279304538734266172303830312648317169811828243812999790272934156347725760494167501389267215212507896640513732856315583087990174290142835192178236675014033130797095535109613916589040066532413760328100500682654016936617159237447368548199804927353299454660676660760074199290616341996583107300305303204670645720673787297900295740911407683140252814671951011957740917068202939391094489008412402031942903974268307763414818478619001534266236762651035650561939252463007870869388654910094774623911064094021061752533123078002622717369397334645568324287224931844126908112192729394575261756318193191837148181783332893618764863111272847384227236714954062505523547877909231006493779577987500714971009384528188003745099003735238400168619194213915160765857599887762931443840038183636951913464146367508900786938454639565096373067262420305231023115416324854555781595085487799787004216996916347944110050483897753855131862077131748644981985886599063533429890760382793341321073678198134597273816277911339582351587810451231812567314641285101105097922858444225875796628023301219557319259825223845669040158563339342468399207547086426913411623460655153800566256195875228901973045610106903553010675869774305567288593638414959013701951366857480884893962365500379279482188925444240595611672724489297456771215837310007412399963994558977579998690170814580385551687489021825803622216288573648013127005584269650781226039311011290625888800186716978029487431165254182889696323648863117670089786617444064718658816057507291875055651661773587149019111145479002303159889707956817246299354418038408873471484799694218740909346435895146192023879328716468087177813057394864610513344907771399202127285012279987065542097707421849053390451613544184892202808891060235739369858697437060299438864076123481031318901251707133905901962390262694987058250106249995620519347794295180162303935706443887790566619402136064970769369733508356000009091204169454141925474238428063296757463076745339853485901141068482906901553061756258608153960392600558116711731154927976236804782373329857540552256208871898686102174732810429138503044706966429566808104522308483631434384976031636896646430048909979734211657710911987091781481398291069295697691360731911128436314940421321374419528308667845510567062520619145373986414275645456142745869954750485295603884086634251774983618952056773568389089765808882407164839089272510952981457347021811958572220705297052484812320495486292881782340514286424124960621032917069998835587824253878532325056444801283086868129941750083022315084771602682013617654401472138341806375361489180455483936732179075786326185042187311980639795542505817267779428070612688046311713105350334565354699370227137226185575910417784023080387432751903254132885038754745141816347504771620065756887994386427021096964147776450926778755101470716072111832098681448044378660600873368112913819117468192898203538272678767862867796439247106278841817063941433204881686487279083508047161354606383253606783429468713816729085797309014519702411881559924976693369211752383951754756951458114299700662005140071955821890443956277211952643257291842738698421559589519703008162454966078097230054690992608449483192036160644081832627742681293035767776458868782372364643582348951381008671382014920637138939135383229654661949171647564305547298812136973575789070918489089939071147727572950770596821010135986945493809904143461970242644024488969615440352806330135386497378296758853102490327585556865865507433382967236762307627773790497436143849155747529064235913619345510956573950666570460889623522281936123303051956906362428764374242459880587201504375393988377890939173852165458766405893325419510928078978549403119221082658660189544407501500706057204731697049272043051375898806658994151024957514344950711180353715120652353683023260958076921505007148520145687631186244181869316447460986008180416877602551517200523559281979975342996741325682669212624093546136308734728906000180052804613359276903758819108224871170069466128998456428419078444922469215198903613900432584007970507313212458300331728876208277165681964437440381604246841776037162799655545289679200910801077018482279963047013290388514389498463104505311124655613781055993554973918798532290148860983603599061153249838249653475522852772312517377701400894600358220229764686790492106646076052219999722761510846877189671891704121703360620981141710665664113903619848632428662117734369793721079416813874585963651310358172012803793592533573714878308435334154184876154958609709704072474970087328963951061821271523869981748286224764485797965876982174948247847810688153379474126224509886842605507352487926427578312285800316032564176595127766217247872816867246676438370005058311429565738501088205240042862099096857815404406422519605586107456808536890484594597268651471088223764358436336998374500378538787880417161362582126341473904160011018322977478231490892059408250025314462405462371988444570238461500752911386911845848862461021935138706232235664689318328217837842219742915432668212132483516059260752525618976269264398970634445366848250916942372355922333431647068183618799989095029276574482800756828392237810721201354599014445539233587281687707280622845142919742380199040562975107433859526143561360220599462588738101510578534611915186397944700945800389001632018543372950511982527570112205274343559506532337705207127890927171923127250903985722361696390633784942261234972918220460797959629608369247068514041380770064059852723828377467071662169408986580942581487137594062808598373148989304681970909499092522732082570701519231186031968402690125952856547832038006231454053571428786485030334387435105547331174971384616313750275699227294166228516110906498106442711080231421870337486556500567184123877817988147621040656681262696133410732137336892829934252778319821689441528103528508263021805938619792538505415416104994040943954467850974355337469621987619284734905532379947924952628522460877517809725739818929308232352733549484961219108934149859281915549610609729952535075141714179221296018964657253656240820573916452051321358077002283980380594494283040329586170030194569392794979517108484215365749005720175538710517321277493596306008686399777203763016567802608267430019468039070756708131318017868622448336561929079910606505924833891427706574295972984141444963271503981083264307397483013185089054998958889327218946664512809798659164300071005732820399176724102240194768642661580556150811050939262573623051380382664530825233491806992724862559686597208511647782653553570053007038324060111515336339520228411914017676244409133179937706152813403721088106714333726709102599757967580186212187299290215204414217951395753720343903118385979273640276833180768120345637276985666406179211724487855432884647054378263691350072101770396099321585538629485369152706175209964818328607481878144538684901353736958498985569344893657826210339271657050055026822960677487275068989291506586679768886671198331268094841252210557904695624401378082980005914927781678943016853801722525853245721732891443838950683049416507933175877966504219936816824641821765176776011532690232141314158499406448738540253539579328090472406222589043131340973201635334862377159372343081490212738786678293757021648951301222234014118590285415352651520366560572409390392860006738439914008769904113718432036046557307133006412260719969164853105649613368076963426557725203061906878863572963735022063289417806221001048088199653207932808376654579105244782543753019643416809525387276326727898650042340979838470070024255713579717304038803372918299231573833352873826965897358346622310672427177782373095435048670439440072644537961089458882214646734092590285976940251647687113342071714942961924295073968815626302465356434753601957627591083560039650643190010550580770274796339192802606250765661766976739417755772276520085198741087221516826457499656363440989474468552537812196867520423038257612444631633783825815364695359519322635095094134800736029301537284512369285209432142950611729682004574260847011919920374030592989022418702470656998488101747096468206671344801756539248296112948190992655355650779652134583732161651121571525029024766257312386223159876312813567959279120259723154240309722095714717296206509517256060460723397820349457830236497202512751451743862943591154988781152506862813465611268141779899051580458700196105262176929252812436931786133615912247393079963611532189684707772154508684634964009132015738991754057911501202246683591156690356915390701005096705697225339438247368826986190032876301266410905376730841566383527563532582446195624042351894492722847941734645194459848591723279259209767705875206949972622506330097916114444444665230577360318460517289501977461006175710972707749706754795009536764907958597517598855742402088576095272915373017642753410600818653600996674979102428100206442560921891558391909787910121437533738359451054255624166425763165602789135539584235661940337207373500956974564219863284150745070662064681716134263897124347022701571758924568864218969290792422998178094196786620692910611802644692872736595832306883228896662180593615451025713930792118180489973785332098251834662161449558427349022919020571045351970489340222880534476032513249383435087991730182976400060968584586740613886233256735026653676037640377637209979494129053987659596081169491686788134364926979401590127225891591234575622988337314636148466762824937778002958043489703450884647751656516483846606154589713271905849433147747865353205024225599214248598788146529210736523738409395203772872619265848282028995046284056963138461027578325543784765161231374426446235590074855959826016507984406217761189037059487640176084791165575037205582125845683491138354790910803219446047667860690772412506420659196902406817041397080409090760223241744563585924349874498871316371477937417084746915153468391182234390101779435840473527475701970477005428177064847622390278134755239375306265851938022195542950078349086855897917791721387561233462967423909290957753880202633007502154902698691471232593120300209528597335943947702129000417021137682904708726522957106294151425154363817867718613061091493575911575823110615390363682092944615797009930795968936860837497105544445298539425869658736258670980613719295118376030159934156939300297904197891976520880601719491856398039431754421352544747902269503262810801116766002933478629155621644279660141602655963349564907625492368994148057792670556156543037688969506814200526313293772441832841313096291334537995301844195866609725085810501274843863051175206674045162030528328840616717492055430163724884857568316452442657466510093412459064712170210875401776647824535350982611822851745430359968214918158684366824102739054519531398585836334881044287713307024329374545770279935060205945336146013711991528684701382482373764767853594534175464111108576053403273595438344674143253880553847531442208593047163125302890152780830541219763743817036052565442377276901526943542386346292962822202409920864584137789010162630297924023621833848120419676958207486704513719941646135933842764038130609092094584761374346095038252664264575695396689432337725165007793036763211622277433319239252533377710286990412420403030042668188985743658472007530422196937096664979918566641668169927217763337627391844322790647481930022968746402117263382299557044725434903603005094762932378570140987645854428472770656953379061017665369265764610489641544211582739662546207113817946970591421287314663424794351362840686998668284252764189319317172296893898863178888833645635900103286721918812686939394506276210384204700882454603257748976793384013659607636730299257551190780066706080588922496864671706583588164931723526448651187438370264272038125782106994582757789027051657058553737336193486420605272671495459726074795415408122495941462008011155470822363117350803073695805986868028335631441704588250352963954204932586986783482579912576003118149614015763480291149928430283724865647967006475514259176817489328502013190890688102158352902805985546584559331888287694877649612879985102296672303088524355154658550991355645321428467299412046083272209396842100193158874310673575715554350684853138504879539801147467458664264412100025081329181833625211271127881728670575474702053142969226568497444091479695496798088719731772581954462921526594650505126057408195742287657574875766745826627373906634645696440290320891202786638872710143682213219498523473130807509961843553401562780464644582400225956595911973077744579720348724505314256282228629262716844484767926857669704911232157281717662148441176061544102506241052758334167343770173512426397685103430402610513951916472602907279209517306687624207838159002153936245003937811385238767329739009815685302448884945491371386373675056104535352241975295511063873976007427268520124241899088245585004819187668336379338056262169648748061946352811804413802043939872308681894211027678119387885859613745186083002271147944039899392166612844476502308399950628134491242545497657036225300804931712322987978832501618060505564672419144695813430619528640329656630487452679241176718841864975596988261145160306325317309606231308353027197931531043799691302483830226330902804581457608766475809425222317583274965732995938162504869914518779704532506820471606841634523698503318923213378237969119040896286334474274455380962730668464267506425753128176831482558569489460783354871985571479905559329175953641067862283605638238564244734340194758226587775629180961079001283327285031879862122792678756384212486674667957795998126898629845875456329559745976816611354924324743082878060123663278534954828652527757352425125678798358837086993257989500918586618984651867648977869445717903831467789949175028948854378440528027426222542199500995796200534606893521429059926663713827897831806966346780424424759411445198054799282443208560397134153878718040168098280247741964170155501421884914857677024575126926733829546131233018822228754275268075381576227797839930343658173524474651493505146857132874682985991968531238324564286103970954668975579349029499582551273327312088969460402698871142858644501574215510725753786179507867767687846042550937913409908840173913275428067789382351808646790999430543632962377425376943070932444494554172419844802145773411942256052673972012575511502836556446537190904842696809508927638461314086331561005849932156185515070097527154356484829981315856976588826825935455401524976090275964210396371158412733088758588032006874611484593498674011878079771331200135180366374896674528450382105632321621149023317966542371009662584643495120810581877528115253533731531080068469501289790245550973366204153287255452694322875457015964297463500085972191718716189313629770006621759636038968100712200796655093567274196579019256873099654113772594115418974310378495171478121615699163287870672030341191467406992352485869045173486234185965766830866094034280164242706553931049852855985476592988013740160232131866251640844093201348083399962059300274760102091649224805522795182905416297692955713504019297751722018516681893051643629376990488130045918117607792050618934397718639528124913083383339647995072262743757493484155240719054246523273506157589344284500419228077143410228184875058129094384307529287770704631066710695249989173026611433659546522941929765142376374180194288949868514291917873231734585850725175779415748559017079155377856802863719301550549185933885163346003873414395025922993436573049322518594572961695353640220638623780541640527471463935291160616481861783724013929052392259443410860565904462844293804311014690159996098927251818700728315751522778020941591708600048069353744410251544035807676842463813802953766971702663225464868978029107631460313948012866914007227827728304504255147688719746013682438972272653041842999117403483047814507217729355691401057814518210932524164490288599477657729107975099022116111024610073714241043961965835594061315317195426555065217882004972323426917343355637963047461796938806699199461881167955897938440833998471233878809706036669624176371255986871346846454400878327393590818350636734630444984651036026674552522987380213231152828503619970639338945684092447007145189354514920460823949462369611889754399853223050707559313927454067376918841832982537820601179779483494197462366554240023559231043804530117504776718581590313158678211571730047625295143921405959969465552693533948553769217514060831826516596967472927139157323185462638145487783381148964891738963480766532500543032024412749197169063554664823075700010777530510167571815150209498214840393278950399977175164023085907683171330556560353351727599623505991536237488441946287690939321800599827033725468403137662325334593811165173258417251923000951621262281223747331783053429621421483535715767065424159411164995247971361417366246768181977299320929152045901492206676128387687913177520905699631697114478921588982329023939496114949188675163123715567746189099043006160601359956943938970396152365241795785686150274785804828820942635769004915001529408092802839729381920442984302940868220161884611936054486406344887658633817919114095505633645447679789686424653979031466625552027146965317386992679151756931420339431594660118984947484163945226839642678580608278779973397918036297297676923366090523339698722693022767789335796945622236111020371419469716103310815524500516975234524584491853875932569034009900676620328575313578403060410555752757836218428684457812637883877639684300038474959949629050109500996650771928359423992126988869589028939913538451438455247945027748887423566457736652190391884968061599261507948748416985113775503665597179779247891586028439755273004712111598881905086703429213341935888151255108368364041500298155546058176739777002350700770808634261252691996384250339818860863501898664225013640674196273716693651378073181963837782457610508194666484462853850194757201150806336904013771931759224274203470850437370510122201776026158071449163807098655350291974624717134091967435348242644343701239075670383410391856708112278897055187436040902600716740831448349342688672303739702146342278713122290335345358160553178444859575202624846973269563587999828490207492593754249878866488751151599611795122584169020717741573071207875046001714242370846868573515646497355607853211272458694375423208093104619459982086977703961405134841908606904581061485151603714073216070427622428906595220535466981738145532566941551604630226315190534268298527476719456997880206939142402045513450048209784208602892976440348064205008008560888359193372623757295040743447900757505256912299690465920743751140705011826962007979946516294487599678562077687545567824997929227824749760592902501275646526162186965739530575873237938174666197678432419247802876531624868625967583917358669777444269485111429540164086108523626674334383620526209545873242565258211801112913810845382171421273705882803596628794320753565784046328653589640439373507460229815490030858829344198874312586820061639821534054729872201759600467443400787430820810338619331101992945998023026704979930332238632009823329053134585147588918510785164118288577915849686434785222626425365752452930974563607447314831922529707885008339173878710545649695429329235330136913350866071676906980390245070594701534067048472401631435863835232800252632710940535428354042523813979664845871884733571965122135023201632834929750579831351932018088802490134512739930047822789895222328111777792677501226933852916747990391092362093173201034612348645276961658211380512248468526967553613548143195781137884218552912331594223339654892777166701165397559980343657027454393592672695084751223253615532205347799800021749163879590450318112689404956225710262772234577362961678649723242964933807174469314210096643939485329415926641534018575538313582785860080429808552722767998692789704333498111156395324029267869234355939512591387737109276390425502944848359699770650345869099954571732399290397936649759570615531268460450008553337776720232576441554111111872691670721853395700027560108087416089410223510341369892029818777262975798021362902834168881621156561702645723893798527482412831229961443312590934549278350630615415236353808977348137948757436981095788141123610845514883654772473335702465464293398111813236463516262781662986639719632051625854421503059841566798107681943871245511566155447753168222313304609664934377204110696723946604435194340131971890006463858448806894841915650530192771122979012866154741291108062337164952328568394276943861134855029806581651286525958584150663230516160685614912562317153217011938271068508687469070492760845551041539787002044759871026031910679218190523565950743826124132727340099715711371750349689564063981119183381907943014879776879417791218898429141732266774601476120725622445278576843831708519576718189370186427924772122632276174178513000547565731442024450640972372165882482933641533648687541920547737997281750093102100332518835313583001264973246008039284512724464653313787234782923422206219816179312489150241283210518570404425902798709964665696550394489588771906131001688147079649771943996645209610428618496870501546877446207982896085836459253867706875723909294911729908922698856202560766069090417404844280220338501595976544524042637983503692734052649687677327332842479797131014176006414297400022749003301590914004197639644954479134208622472351403690693423820419295236839892526349001150379570218330962171872400938975745837205799939003080405969005709581839271961642728690862196329729046072685091893873396210792809579716413090767458540182650345473945631789588863085612184286786906204301576439273177182174423278881815708373029233324954417589144321868860021317577066234218537997298850711159793446964609428213098814983087499514129203526313347844764916450443970253817071902008000656255750194094680190207921536051798717439800147233880374099638354810922867950551649334706941336762745842203354230793763373301486609079252553977309354734359686956226413125112689402325576564794876781589460420812192925978116442321189697793455601846783731679257681281786914175399140525148630972098278052655860338437659047169336439415569509631265976971591316935386296521421994527958511562662121395456398280503538698309218769002193379848568235174913397115423306001272249659557630894958065993215580505047581378151686352546231183674996306733503106124496380407185782074489781685164248077221914930415535926475613520866444544923862975091975796282746943854109229940521923583109359941927564909342880457071048042998241833586581252125264180544019926672210576295312604447115200883066168691624618574531974708054589833939540442991961528460457551693765599613951908570256699093068927052755129518573568600442701978480574186047319010955652335461766981935908576447108233084804321229350085110263068442308307179046208975178656654634746048692204231928289001098908455749037508254759248953571922991467158290975383148190358138127516003489764845451508805981887145120999563322045587611934599924422206141008593304380774977608669214855082492491465726970184881160712282234205293679908041335685930242739989397170573610174219161848848586662698829854634003010864171445053582433737772447484895772404001047702211990362075796613109319063588903138429755805097741409480951968735617488991674595252263889834827551617919245184757137225766114455143019700306427710818479806744902761104653397812068579997255727619977764585013936666715251014151688355213974499063327977309036905753555812914410848841496695640376960976702267018645183184051797754450065754327423253246549970769675301352531936278292201799135418272486418353435417985857206116556234677988253845146252109196445780295464196574413978273410852916702604795118169329627581891158092622683329395330756193006884293690075200455276161648408960056751673022507086311565905276543501030399827290034991106444509970455689912956681449180943473750601995110868063278961038882235131754146827654729826688842037630323257232450286993042090396137940844988605596546663220013577572540570417529120315415914092418213562864452206797342519998815911131409913002475305506799626687426752685427891196174442733686750264186954772147387323076073796040443733712963064549737713517203097515622358912692444444232374508155004342218996105488581433471497015770446567991907978422806983006787512978751644294083363903741658737377387940799888828299076336196081729984892901097731926723091254852185655198113631307236901962622216043367246993525449514136165195043281261223341553940189955336921213970003096407986145385225938692199873819107669820422403608120971498096872753576723460087147422551491269645850834606584295044278136631162156511204145190624074085776524489674494509216804993530602128681347771701883998749005405291884902763732426252472677584723686742709022275889819618498736157711410914911200214363425735653435705990951388439777243197744182704241898721666508477208451854768493230655380693200426245232940435614214461570428113137478639139178135284896264469701647273039455540703255789441333801632182544299691880257156200435192260262640649335603328815291801062026119290168809560074531119245905411199308415479035111110086089156859712730236718955936959041284757074076934454167908455155131801564019354505869150909990494545155518005199219919012518729323852143071711008007444604710196730616251561217292205843407779858191073613415736183247798973681907847181637690136389624048235250826076033534521879289635368809941894789906759140088176081532267749981987633819974598086881966572622112767374931459075254380681415110523060191672156415024988894629657248865198237856197853711656274668471237384663512120743569322385104665562207166277819233755251189801261235138407438314060961991787469503023250657617926679269382981309682259597768125002562196159252978897183672466985838810278214939171825498900088279321858391716622955951745592979215698406687613720057628724071906247397093978693430811937807723933479053584218731217210435613219539393254154008925701089002772809267511045961955494755328754891111455164782812098363533400436460011092073775523109040939062354520846521006944401146320544863229943445162313083261224389633253964532912104885075249081822848065650289677301350986539399063369235922685323637829731944916007309790985793988220350784480191846063605613227984389760873786714950342551818807654448079120684489095463696053685715532502177256033141280635014695880084937538980395056700197681911183149665242618899460121874710070867102323742868945010478300089570050763540664807132584018507390030962849125330439321754323759441895584676109986476031511736206348838308016399309311973024163579123318901099620188005527933915108594780324417454636724477049357019710181943210946446002245503560767682702755575824494174671414428573220492266164916020190571978527804759590950624185490715326902004549233047187700115669821836755976288017805693780461796891819970302744480195199915856854196819367331456199728081619774968063084660845754300797127076640824918946368384356880375009942218036935167256577730239226449208641240430126650435415068073617810490053021580137241162978429502948920462079862383551314789150460677747097545852610161167486136950561121430897837912586956802441621788257536772594965174060332030718120364016675224195404101806912827383404017658949105998938140142230486028743819020831111865234972937549079221151524414795785996727138485626530807313893603511455247444364174303615225899833554436173606324703768483593596943698861097448760698090661609227993619011929909750549899969614110226852273609058371459296925503549362307458630958288969265153936219071801073536614164272245300962014440354507759412887618191651842817441895574147645538786623278362805479426555198677600639974299968033514028615100953562219852586634331927411781420875960676651633116367022110525178519578638140077194972231731289022437080770890509460526917364712500514153543989106245010614261733050956581216228692237280681707135685151316637682570063483556753746325243903061161144956985057480521369501117827287249230459205066276238024933358678107896930540400445071588994411652676549429996735523504100760754303559695268563775863529312589309551796462675622478059602095275191689533263469220004713644120070266134243402297560610471157294354958985879518006441735844398007412313464147825473529773375651660282537937787419648446559298004443731350658616271699696195881571913878408699509916466887402261664653962738388499606822451783030397583367986742818608021873249900574002323544631411193542103396412753348239280742283160933181772963408496319352897689657746096687370822433583681493020952291161616181016881462442565574887084292941748701459138441697063114113476047766901386886331802073693396424612439836343751889389323564291733705492817535369893518286233072856053895560754948106476364907502027889567302981570646342439596291498045655569505497276627411116670091909991867701736632402908810999010418211910429294046816559456059459467540976286427873523789881011981462864701537222251376567368966508719884418664797751726380450013745167688378899177589167712892042744549493122746920037499084089679206736823785949198079980070655846323635582037154913212454964104127685418675829117201660690401665438377355364776297648960769429735060052158901532161761318220272090075733855591936793034299271747236834815785749326715925203625972969613622093465104005633905225743905769784828148500175415360477569429286408359014256175567622143227725673930989949928077987460423709277591462116747926283581156045115419560428206942340395967622730552329802820445156717051493764530224638870198277834093402467734158930704923568405868333285143850637117903080513709131792448338176912289902965031526810307167399706763026748562179989112932852865692766649369753552814512923118742922263148731038021849233013037271049186601905654228184466402529439812352138761438031558476098545598884270356362490677874975540134954017842982967873484178014516888917600604448352992333957264690532957941363515082305571145699666140732614982926423614760494097666824314736420519946785226348472921738946429623779726717013281447133743917887018269404729938254649155297053762287727299410638007380450324648871961035525244853030604885229010682351855378688786025998565007779936471376881731098762843626129813406901048331994791259301489957693202878445250435871860365758336562336132060030647524679710622864696696947903575080983291738655071626464992928260356125116319956805916075194404192624343215222421395314610740360861049274627500130763173266430598979749854141663187424551833058605319161086065468213797995416282006885839129804673189129287726207713068824934608158309483087316666668063884504927955717489220076581483361239923733427731558047693726422180199342630201911917921919064436827431431216474890746577069288407038702083689569595732794141694061588944515913806616654735502277396737619539570382619586257046277060667498860876606839458084474201322860732344898784824210381545078499135077374192563252963762609181677824190458202168006131197953503638629546693503849643667895123028131477950792637378269029659668261338230043188368955596227550510531654675858036923771197600694914110388073233346568966169960367263400268819208708248441929604069218826253955229741050319225198038723528430373864372955854640169331156604221986376493623921812070995448065992154193466172870243080257765877688893601247997528655051163179373322546525871977162574201400979424276100972846732366251397648119065326644919921553823711537869726945454985082352620844494927626418438510041440933219422231471051023120506837378662334473595398625700464472384705724895398190106362178472002051671682702301105616959852594752610304218707955241318820158231918657205747359024356680682173175979017487237996127200890281979092161000883305846004053550632365100237554800582803863088472648164979823527955469710177119174420386974649155738276835913967264385516434758862395735067901785504023716718297197679920462835162606762166224595288364667614410619019396771236472913346316527074177272503194313404039043589314971776898030651640077741285027242410654728711549416069106788038909826166858896547084507515944883548687083964385336405641218637839841304644468632320675533154652111845661279773635243034417386162429718314085443630997392195490752103055660530282097461612010893476810273415807267122841930827787027003772658097470579773606862991705962484627070266430202010605814739992903839499395739149088269435040498809341261235450584432468627958582147378512351470932295172449986759087451831246858637534229960433277068264861894431912199893099653268903051825682611151574749698464722139483423784855366747731880813896676952285894626840586110646845696011979742938124993623750475142354220601918373988773298453230180424130907048467823679556277670236652336843306470834827138271688353360798845110332653732025338850877935264089006592121149757267901269983461631463568821673636042521489730590971304310188301111173447731665443998334608008235043635921603755137785987517907038609045862136808945509014755522109633194283444949287322326015672716028457236473167506895226363008927704007935759809087816592690184367401339273753383088965041978548510556357383091914204041141401657010416946551113589962674786013591276028024306597939069180798901618150102817833070141857333029769846329143760892610068727517941180528920972893521986247942383782536158795619543180396492184320393053849491702471300895661672157927619755624610077308238774908360432039405310714479771473012253991999456210613554957181229049598752267532873779102149952313997510892205658653717030495484014931498868050732833228915812498304956031112521155592594393388999383338435605499700934159494767594872690064478912953656049815917800955547159266943181735712695465047332267964354891172340786261459044912041357947598172836600374785154418751589961999491225435390432692715019364618865976418598482767857484283286469824731099505939444465382230309051132787005710284193330720095343799109298301625981070399877090763233558185932591274672547281355256359372319808101619956633749309863257752663519719981607282281855070662326434646949239381028285308384071351965483179873706710729681351185157695996478110015291324515722037545398342062625093063019549296935739898600204772792897481238029586936044854209595830350270057669371548687456339700465203571179714323159009950150275829951122867278074605615097414761259301968718325235561710483145079762097218771875382633424669178717392164288345114888006199953795289969479629260324028795387029898057791621856586763230746651121350611617343081778250851589764142426383386941365984648989127883015937670021919597534709043792875852297555215619300397901973338457962594470356783135994893658430501500177520240894851020969008708637724688433066498793558128920375878443350338379193594584609616281189520941308028914682436766922907139885044625257654764577388672557180563670432143311578066025502275013202437384293980878945559834712042643456822176247884664291430862106414527829866106364464542618873705986236202128785374569196264495113735490256536196629045175173218220501097610215205693245027570227001598965657241399214842843729388058530082715604709345276731809252659821788678162640662506908547915124234676959726833081536767751218025314534900997437716755664746301324882493978773463382359679167982156156111220092083912399413637460645571347669020110275657968711627488744267989328668999858023383611738835731192067493979715042332422210800611631452654641144441851259128157867867390910740135922802957596044357642529384671237367727979605880346005529114071912593950766045885744751071768300779703382353544280856818573074408906639770511156408106341041930347473940409122752502563765866787936142045555867048357831358923175022960225726083390408840822920022776131378196128537173461572157814466250741151586396893330818824337385468579709315071366182073219579329448710523976512820464297385873165715964203351002140676050527026407846535355383873548255831864601522555841519594051033409199009903732774370806868751600802366974237389834458256621631892903137878931362925599839794258057374709440814059643688303955933491815364745753702413083343327033076397342907930060279870037747827089226410680043270656680845586591605258974697151487338005207153732480893965658866137856878663110969882523125382807311677971251072437982781253515058690722518515020738223047489378615125025743354273541890257663890411003412318810327379187949331715365285269119512858872745892437572965325655401268292355322453158907606545346395760094654649985162102742127258789365377119578363541235803536109056299354207732593292394989867244895398649755271677357265234474849619850488410170950850849959929392667764007647687225786781221626943556641919617625913529573658895134922416601153082856946621140262767270180274097221268422972137850258717607795273474772768288882077539036198192232197455466718825369373640674151718634328613930306231134903773836149073956958969276568605036404077780846863450200021479101615478381413137336398980258645216626650839840132304803998755440853340642955756210047526878310268281931040035936641467852083316892618498588048533305705298031774388083403932549010146835559485705412599576293700375418672684908500840022728050528606392237280174840110468759254327901181636362321931194221544032329578046864228229251020858569717413213942270320344531502716483833873446426185133556572439293847438615753833542702587616823873584623158613559873686353323033348760969484437967121458441565637021634020003386894314019725413679086067898306626288920139621413448628102749054131101912190724094596620927829585191827952375156718687077851170544665466185418601830363765342472547398924252376225894849744064740674659368309577368179818308443949252951699252693543737314998832989902667856096220773334738361603192204992994390074181384934421303044551525758587116622625839231745109446857503632472903356660718554369759875183267245676555539384040540880781997019669106226612686239470658127501270017407339496320299208809269573570256711412572182272372827257700138470849348110570954220005025258102638646822120776170315660625960067547498661137273507374468849362108656083066161814326533365982504163613591573616474883230425608243954773671882359499098438270273917040354906678738996547074942761115786301197873384415476250369882656515055699468665254259811678150541674722130977473023263177267301825175364839692854235898436175347905750757874578559736344214997910103317586137195892597366808106073347598817234800710562808225808812185167156795095555833363032003903141450254615256224218064133051044677057295364812300298345526279385731029298586074395524426474831050610735465762444796212845413096105302063251257610701883880990103507126171750738712812166360766128429664711477035064539973109288893148557708054976127109620368425236926064064810533094724972998676308087629605508540758151131611759675678356712343310263474178958576685630963923933894079297848838588724918278983543400843845568732517248553626436537131374050765187602782642116231549786329746213049021211687559226983525046053585967511542070438864723549033169168275511563794742489783284461553762966290729527081202606739920588167674579196380799162419744914454121224694178783651632562255315797923953032304909206742870935694419303718319012081949318428499181729458800814906566487667683058606024555149357528254682739024730243386742014151749761283938813659014199769598937575571074645337920299416105876465441593920486588737655481635131391192809878348314155519196490466130678781836671056697401392530130241001918143841293645339162301718953862475917159360224051818557912637065069844230834682789383741055540591811152097971098641390740921959373060274155425046428353649426197646593454517834473185823364388009852083441717968995422905287886235666667875720990682545827788701591970978719833223969055291006094478999883891788357812562686323918035813981255435705473440109442362072529756820726135267076732046502782288090509279569932193837282146843244165518325843829210581225132102890138485942379096884325622210691474357372555939699743370648635209437135109612247724325009539034841653327001774475519916771616877098056612407888697549767078468651425942367685630183508136481335655825136295713178404571172610558924631994533554035398914538853207939574049456206580073654022973624144529733702871280501200188046615283429964997848344473424085005313269733267962408783436644112061003877676748573029909767969323487487439960126734749642349859854110329530315524133092085706588384847901354638316478854609092371303853016687793498249446066481505411011065582814794101320179250954774586776526856238881386937616805238919665702890958254208079706966461414485350656781177704785867857886693386820729564638689704079063080432352866254387755015933700306163618824873569707735079718771405971403232478691241801641165970126981761738926236948916193092982963026769469858889861676253474279094176278791939589125844764650074237145314234336411119915322905759326282951171101903210539323883189085950149527191364464572006863791530076656621358250661836329055566278227870695183356760833422037049684017960238355305299198045520092079216301549193862297942282364276165268979646280955036548952592814572943504088790128726538492993845955393987936443843865238019209447406388715194616145309024644326080453065929658002071961459369807588179928813821172145472888536566273606185087509386249023074414787226692362755010066811391864248442921845195032928672436911927194539804773942543367607847618445761643447450905789293973510249220133827202119444501165999317329300654240750597939066523569453462878389543824368388962921502402508930276456450659791136256980583726584650714741313441207825466155001331056080896418770077997804292269581000649840619692302981296923611875394647155354356461732089360403295793613302809378834262487716512104447729210311672430900240127461251089135827836373156582378909545743002857219798955883890660792193648960592343181138423715186266196688048282366967188680452350648255501416295433686574284913664650976580732484448727016532231409208498267750022159255150775339017983253353009023939134426871919063937294969871224063165022824859398807257014637301645385231029276114777057175084872129229900247797845446499195782502346989802312645062330969558593697401711454856427235179301161083833668431666977417598940118793178584809604287910079596478355043454731883545161950012420507770180755020879126543517819313558763093491660305704899021368370583126634067968129302156871400252871008392035830451556343964394269491168316114365112287968179190642659289342825458863932453854621537085262567748114000069559938867925535106209413131274417608671565354827638753845423589442869270558115129036933396662121588357761067877628709897309655682992910902595293943736114650070219482911656595804926272632816317802973868057467304378770713357187110633000179058338621460487486858472210938137588864489247547157188762392884174537047268309542147229075744413024376378221879077035268139744497593113917525221422216527078319530016313320619151705994922163571539108679513590930916831437605764650743048589973272993797714128840144760560365909614495441036355494091783029401312195799184177666914702337782697396127371783637124544301766355491412707511805012427287584424872164848286563381578423947964452289927818754588135587745736204106927318573783852428756404519904844211820040233909766102538371780359498395642239008085806004154626040957851104990055479026443625153802789137783843093564024168493164996491807038072914665057716381343921180497548812243965566167168719644696302301445540167254572304951062320997732935227502884197003168284742337790065062628941753028612092646270683898747088372113016915996168780173067535325465793366885735450496374830857152430550070805238684141795782337809691767114723519851251327841242396962556368984777896986595456067245298627892032317386460881039399893404126906796489111477070047705006777444453253555988196415389807640107666486050388602472163736593173125070799916190193866199172080137652585465124806123035828921056950671733866107489769079560150007759072878757409339156641681969492287067946774185330954321941074451454065274672130774307119939523760240614217117817458117515079760374465971916431523872071257682888186655835242757462910399698055539192446167446607980304221455345153666511089314294298286011210948868977284104781154252442011954782917430724198717887857126945175837724217378287523870044639153285195787792538936655213723024538436482308039908565542166998490434659090941559511024612822963243367953876980186184148486910990111015936414775262566926199028153839780135715761088621232915865127710180770988197777153935447649820980825842668399194536451090020759742022536037057955624994328141848277874812551818669644998011635308238363342084190383557991070952247460223867648718465880872783764347675622186501524375864655597565288428713866137532854527747300128765442063549669597436913104251904965910168530992411517567915536211818037717047445013772763441266276564442991538126896280234340264411327959373239631260810950662495126301066795968461691399085390925972915131606799365489462380131787341338031399671728455874070229750898980721605842502899030479403394640023449068747377308569155633242698684702297519347036345422431055889836529896530484423281014591399153596993157285349160484357126320041916611829436334133271897921550610140047082797884758057341342907859837802485122866390186281836596216057823306855701826786659269995044577838169896610755412514563636136435107730497374918118654855935716943021229591145387922854410586311842642674379445432370970302056768545332485016347846750198226863677447256011380367645183112933987479215285474121767222183970062538637274055692261478829968270275427641513294828396752783318532463816784164400600746201020329594466109522470388565891069660535029234326323907860192325479969492816499404777336729331892454881898313901178989714965696802838038412978452021834557901784047212158903093296087949277056199082833325933417694044939311059295500826853001260340571012335653327201702941803803836981654701584649300462127309765354213424166754632661037749983170467599744546660291505723066451544084947426963541100938021558385349587200540660223458931008073788393764380428520765388295784501157896975558624895902729971575594699814074069779714157066008114876514921381587638757544147572277774395631731065169028663615664469903278365445009409064659666301574066888045684580085210170840635153496011333807847501841684167003513291675521375123144163874302148799024950128369134879971341438968618924282112483913112835438099064481469303166010529109238420169356894056055284843700645704310024506307821933996701803631399208395628308491779951464371678446221008649018995523861794919022067211161337140472027000560303759966034661670438102719226327733968805831760057014876152736693562770297936368286559023157479451219886838102989631951286037785081891948888084610346504870125915969922709091121966709895732761261393511493072799263526652193798039430325118761935610041392033468622658294168007355333024511783572911874742612255679343962995269960098692396648380698655228742170885562747081026285219040102939304971803801219991364060648852394295446466228950120252376973151789812327515562740851971608815582932878854267647858160326797967668456590757174820592285183387609257680780150041100394008114600060140937232382582000450002683157131673166196362512968569999996973825879500930173595741394886090804436449949215135632697712076572323148140261218301312703652897346709339655788966403246759623699863790303606013023491409943038309892514804675753286847376468021957381835951274864136067624186247819616625151448449395729862279388805511788150549769518706434238127714569868518401960788129284291963038107901770315854372735010899439831872455627288013330034903002315277692482239642640197398269635085275821432401509261671448668512577762895336876777573086657483575042917040935850125482908307542987607856739101261444184410025673077613643680821842924389171849723371091246770147885061540208443191091475416068270875719409838613826620691978711447873463111873100607035584562212286222010255789447215664423981119920771834830829501227977767827908032540830222379100363281310918906779004043606311291980134072570981370529430028287863921666500855510045398057578861503332602455591756978754751913857584896626178545925375873851578078390063351022330514308338500374196419357172683293773957805116888327398927216567737137539322341835342135585381469610365749719402839137464858653861949696584624469585782252440477859662395915823704941656564690690514700151746285199617854934815668954175050716757268039298297326369609188316502651787745275909159764758287800320355942060760854036233074618748411321218689910784238020958538152355875475109354026791165932198015609915008296433028233181363047281707806533156185046763380284784334375520399998485523507035044878335451549830713216794376982349879574906113130631648301535524386605509541298647622355869143790973016377253182716594751434916504400816431600171570655117330482828381418558782938275994476487376053077202954778408492699787826808512171873333810595499766133578304763557829722499572890004612906530152111633137905615982867824659666751824367463030302164366564481741535706652787273260994852950357020292967548216208432277074721367136033141282717629340644621141913012586123958162403920712026858619381537185225900046386064702417975291726942938375723063166457496472751244556463220065016122605254478512617488402365595894037427460337687085397103664293209692728235515135990460089648183870785095222952638760361105040019517471698420192393289507632906745534657500089911095657217425963849507327065536599722275228488817457471365520851807215289108482584344650405638774982826421308561544457122234859341123277918424904082672637408969393769402182601205564931707460264856183042562929330460418168336730488751550894550184026287631007670484024305086116135361585050362309254253278097358432646975806154760417437909372338984961654531965406883515030167367837456083891393104451646341900273070411447107969718850805201469680063048824927219565218502077543520901353646647649388207738951988393014658667480135915049491399014148661126020038943076990394048892774480935861274523250958658787055859362028440197004603964721120081536065471886725514392103808112518200418231632540441970367724662720896227841224439464616119301791302490011254321306652397603688036653689391020960028107921071697732713896379989447901431759401494583416296444283994753255973332856434108703874779884783800414516937126911485851519109232808087340947517444081770686757362915774405839736081309880965242604402469910391724891096910019720567013940915775486394913554194970190063744645157956375484283298813433135807089842461405223142730853630192563845909902085699756772466629811465403377238421340830866755527181713359910826951005285352171764128932479007285253739145376878157104885409669120443926997228969138018186224260743907292055458696629558655306274292983658608185850379436297591666422306866155469353431170268182291617625864208904173252950840051687405227249018597063661874891903017754646750577650106419906720097079832517587400741139696619993458103992132719384074465120940143697777199094015855215459681595624726625957990762034167099333740449603529786413757720010729602941578613078541804498343528920311984902613519851589748078135003480499025926223224449216290855426161076260964680711128178103854363278543872393910131019276255836117384945147273586621637137253822803155447907240273626355134990886430780245808662946776424636883361307644688510351454472420092054266908499395446228156249344301419915728661354623820015750940822448811187948282600337322843207195213512164954103524965832879051172145983072517085746271314067838847709158843915881497650396044106964561741900183808646464357728562902133197402710879913055530672737735572733508972219439719266213540835546347672217175542636207949052487161022106861250083955712406322680812398005909875334506864344035104991992505366231184079540370350291191037079427613351051151804792556098043063918422089549285869576302785764618863858589350748270717318082044754782148844422051838964615967992800305867377614663935821338320873202524010210728880614441871655004935024412901271231403617794773262098088422970294969400862316141538393900631233072921822933090288395039799300693522710896615370431455275050762354074429317851118640935779928717737916345519144859572669686270913349511501207171974788274129432758950885566602265318022583743056907961085372030991517157673303655465196603032813980654307160893779568339735399512489190047849447712976414541852533863173440834646310850844683031251868121372081892509996454688640573658022101050692175025172769329373423119975386632571351834645903639885043185117309942335470848889851170449585873134627954166983070328611787889447073369239772939411319306579706063257107056570844682829028398039537517070540653618538329969772490577634917997200041065686382755537826840661049961671199993932584529086042286913542355171963319566662992385067847264570185023394093436967606415940438000358175761996677086825335651631033527510784613260048130335044736841229506176578251895009953866336407626749110912106781570378757127472221423539884666679855901027311961220376484544160309979308877385931676633162613019883282087571747519674531448102690457008066636614189583895616500085567480297316457317483008863964263123317799945850192746977544611867599113051293635383421000690010509367173919615915712883055727214645958459905221378139414670644140331476289993515998282118013685215237938504693940025370994623537569805912018242765999339887135919771192582289713354714435422856500010380265475563194287316375170607068601784003324442984003958925086294153149071236301601420114846712584918614282398038688896444836893060301498666190506612672167606676944313379055293772086883698947736943941155469163000435500527141429882679306329898565628148131214213454587922306566144601491885052791742068731659505139750078948030804506348761459092411119547933425226484558671736542457974185385712803231241264465177185126846010244599426247351482560790523040530877152694383908008832786791823309789808683296856622034699845330182448078271274438413341654778476280949542893327879083612462428832754039595257511216251241729586654641830442852875981770118024997930587401151682155283152943402899489343819042386965850314159236605206071246952795497342339384823207533000450759041236116006167800657047857070923571171270135720979565177296651472422167333809710268281515360291180974905746496625746631372504211147229165709232158415855290118186029300894306134213614285430124725750011746883088728407303753410484368197346706817070082355804299319671358830478334949726615023443883158168607795462058452961165549793347823416299722076496741544871846144166097778724818455789791670321102640826388612823620647110720562213884080079815168735119005113406541571046253578685770321938399494274022707463245178410465465012473320043278086771999260330707372554495667130199069375381312013664773441757917998148546898999831880358530225563716846665891935154595886380220186860553548457685702228898433276082867862408857898243034278689145007835568347789177583001318303303179627214043405748687397922338056183850051310651978780155900885099074628062834837616139534187116326494069343255677999091720361484752258841272985237692915628890138010763854565181346281052696226164615341218073831320473081843834296119626777796015300912759920773766822425659689562690557347973237386760859303567066007779448578497253192442975510594704272912622793057803096328654811141653886339554718254136371807504714308167889628421819853229179401511093891538447966967451333521740921291227508593503011179225744577159487008856827986479206909422575911642306645140516813774413028763008517205886504699832151983924788787122561475777954057186490192869380361050527323671881455868518726449939957106614302956805820616789251693723967388051299701266837473131374630408123102199724246482060218313229241780208241028710854043500687698782195509345334916318860092669677078485919052790333178154816358906965009738104054129772877236784761619197118266841118937113224449156064966420834829346795405703143715686990551215958512153905541910228039216904536093750447169886321267319275501916433533538919536153517594719328440392267173491623710212184504757609564543530472532734727169972061424686615393073144960579512262821213483040817101702776237102937206552982854617584053043445981290964834110774135803593401210921109555155012850476775738255256414563468348151685179331852247680336957592426872260003311987570511498500658737399200034178719649042067897651002377814407109088946812932231338189679590921630854629171541149871906009514550077262160962895779440723868160934747859091547927148700617718504266703966625994454594006251336283025497096140575288391160454421279307384683961329345950740849113197137998011971001362781153265865637159033357492699056643329105310154587453879069701530346360719898971366301722464365954834462548091666575295461273704131606546448527626850467911066096860614330089299466397001139506970985257328704616797758914230675889969297965574534796884978399713825446148918835568141052270829909801139097189263662443563375633871097724169324680541815677055994915322971628600713182575195278796794345760796566709903165472813555942501832417580043439793471402734806028170172715081672703524186694955071740556980351231061574960183180577114434421055078844623582541629749793641599264689610383597477232012184046207058532366172822223216820524914411784649114946073457674435150872570004405646648171349452723501417579276686868916118899117777000062117673320348226425190115727380549472659258157744898758297218705154008087802322621359734662930646270100364487604179794531051029833325421836705723117906688908257865113173001968971656783670761539963384809501861784597516222698989847086115401109941874054477174517271273367021672330626389206502280626548198587424707109510527594377300825589838901575940250282040783802229103336781028159366734006493664742016937916477376124555310462303636398416812109698643142061325891966667397112865826967772158688963382040547611433220552101792231717043315189887080310952906317147738972218521759478605793297663498102223558560922055646607695477641282461684076256012504601247157371722663123076210053655277400837777742905708444547593946276257408855629952610367116377823136057642784418554616610760049662792829301828237672580700951845988342140423519936032204861925101781871017099668740545742571825841868980076176841440067397346299147225563267691708013268056411284703409059577595087221287156908503255905101785189623164560082519181449013280837652910170847998570104584829887737434139241614033335405417808177779760866265139056550331020191641029328663647853292350339815678196931566799427109484299065824781514780473866520750294690968166451240926580505664002680633813156971488853783461489562362669085019281921129428959554396790286647395448941840444237277186248956509611177027007519803438514338040230566696759892462223451531719407801553345928531678064247085214765464687416632129703910953867245762916211085202786943341482464111785137921808104698555970527365805019041876893947874483714130006123576979325968013636633098274760961548157692054354374739680088248326885656015370704189170665568858132716849049660044727209076759453742128877379261296648685508641227796945666562557201941907357995105399117164911461806803518572225865711022064308675300818178832174621129743376286336188297149892551423636360849681401045267699824445328374356457221410347273571885869249237961301317449585604026927809174974810329314458858405002856505224929091332985191389793048585195254644916590196144077273531069944409291616354226117344855690490225853143879558617368349684762781994478797965874999240540791372562293330554447901594248056685416514709719103325867263481820924405255848135551823330717829374763418105579212987607613327235891672154477540723759653049857323232710634290698480466297550462021190484340028775088652862438694720627317263374839935210778591993438771192887553598143313629052852419884257232056421241563763562629058976187603105919283738730527160677571610479492591505187058126612040184023583270723847368695136241879933884355606272638761576967375629434516665671699778041860681705580519862592623639653681076289443015994046317678625277304969914365700500244088932497343895675103863196113563054318368911478320781434977717211846471408309927176759444298847548847798346927387604620306637265858053242047201678127264028879463891332065481388967990643509590574863364232787792804546192365422935180028242648382430925668530641992214025422605104760774637375821729015473139135139606392342843272372262987716226601726259043919657158134948754218501123232587280628123215246125110812736610237085647136705878771888728580910602036473224061123799902469273253416490779849349787928242084955714418344007673244640157772373157692022090250831645838718919935325847509142983842722629600597141799193120293205181724406017647491282687816342381718345473716247074751993297117860848702275276993489432503939858681289733119673692606034346042036229462425413361567528918002707040178992302237869115147043952809044130666772617416801853219037773053677176330159008201271145705037305981538737931917837248532536746786713336053609558538136126583556153183058451841290345285500143967514918793989856888224807746239408326756999271296178207962816348068446866043184967277157901069162261429192574456175462066692637578157690008559374942149270180633322893689999052474941068015013752481331242384443851223521251307731260032322927133169870850789782236566984018932275198612659429436592515486966381798709902266872554083221586788264175065203288259878156156301975498073864092603126793148161399047113224984497827693547758341503683621213617329352947056858027358051477957299801275689106947016594135890948124187743171964778965051971097781070480285503426137148520332610436647360977902885008767183617523466370319393869119382453568421616830396669926693214673193386337283266110122270259952836625907406148828994157704536241626500370506672143346159412467040693804305836434616485876655467077689359968199222848288070096417628284556483648055478226098809473688941822023347609982380108339140928867734605237059976454347208459603907050844256594922418269616890300751635620420121342159070677132260864306027963753549339235964050136631518609208237413744448256906436453440263127467147373551099117966221212196618391767590147151932154529961967003051864102343860542234448463542561728764745116544033598750371528692040254575258576498616665759311336683495029440070602685523759359116482564999323413886706318359889152164742933972818632752719768821015951078084477138407870911851901674794150780785276721972527103588053140998841199599471576427819289096176520992512424368290042555251892974753225934681242624027799849514104982940314410417438537935852305816446897778637717027347454027411862763938857735206809514804594520895749507528407430030051143627053008572744122325520347311414341147104583168242199314698392162355347332481158878059176844506940255724259563855594573351624889814818736156654338434979727869115262527516356440583112500471458100599435123413525709069219287857414491961936702961075500196490904638044411941947770215358724095733068034454369223334390231968833279788358736653827322312021066518894389108669443598754845355222246716805116905818331852177060546262245538935542624510028216524738212829681341841068305949044922848327035369987745326196722357412840830265563015370259269565102569205276874463281477484104689003846221291983825001376339733895598107265551206664388473430047310520911167731177005208972393620209426178062339386578540274949693157762232112901286127135919860586394497641497871609992172319050814086744788545945961208809430017897578428027881006946209339724816247491420083958889869807650324200304069022043679617601217218667458665560212549757972332436875342624665546100681040284752198389741240352667466231361336336847520990200998026138536535996483391952701505867118529178387023674838918057420363578561272738552935281714725601603815969478733227295450993521541133237340000253153307246815449487410765750693766754421589829236469674906884117280248473751486030928031105228301784835456486553584774787317526119654947158722555414534229315455520584970530166458431351084009333829323912712102484831390986906882864278991894660501140452598691390771912565272171840169902765990177440103607693454029158994633442152957710478410833062443659645028033144026431856401985168506602161751924036777366176217656291375395620481590272667943708785265899636518037452669140483602050509378355734491318185293841461137456446879768811108494856366702974826045267594900923719594435324669454754290295225580261052967334622584248704925273457924834785621237361483528659851221942603009335211529082448994145290048913123959924196842744789988241397224686538148227817120577810941304378206571305430406747991319928619898335060696069617331457341229440678637738781821871200673634004035386429438041346747916859133628393922915804633939818875644655525639775677569379213199096511780339658188088277514014331077231222673123586941878568549639616684046933063187486993793489298731497709024939729535813371067573538709217153253443357665964081669764486992288991783139324067769862794301755514183516993370087460151538908550527750040767616095357503174348189440363333728067252128858047434481752702195741187891567264034708279274447507704587764094151321322021240586976116095123190719476128779712244264449047044763856053199566310225224065557766953053716804171486811580157036885106934810809822191404871638066872010446243683207939585768199000097856215138697285280668030571505131873060252225655957674506865945519363123395237780323051240898068916809497196640976481120225979652960367738902358941656785893877669173871531861297843035833094741475873708725682747008677915908413731900418272361940707020584979611692228558134966567781722331059250831065579178587226903134111682638441690235261383048446543931554676192879408506422636096426762414424623100177368405129637536453849488175515997569622394808190457567786554397810280484960923929618771943088488425498385159907912291842309475831407522585377249751040227707456755247733037758027668944295243955735235522501487476532702329602452541766912718349127142231221690359699114661093586390015312327632004197059111655288416268893830716475894396935273647723056512120560945524813067060173710398977288947225418262851792555521940899882383354500413879052770061131672538272056122485692381161984404797646034118488621321796798879376082592577820720486930982388437033477737660923564545298781686582569229454525550778758129646497760629509248014365625545191871456195976156658870984643720167635009808219202228912010201705550263032866375311948005325651761925981748487777741594540935464434928208934541348528949274206914874989620394656805525553862207116265149576360653673774914049741875779478410059393323986538866515959425554897902400245978149907165327187359112200753849823952128569375436774135864763856510758351796321984890860148988614405500492772621192480782012916879943803402902209127277555720715880151129901980694433257062040705589070103908403796570713588246697172792165958384601149632897262497148016194848663579305079220693653485458057224452369361284154352190680544472738104606038489431866618919851893978706240573789576353837422310964570799529379911201971033076772096463563180358336296179902805184433016023337486851431177139862081410941156169691390979701398078298892498699710267895243237383356878785997811869564026475208524109873905446820995399891670283813004302292491727494972910051662724489770761951141038218729441904296857267802680676854697263245593655642057085627566256301898966076139307781865146815501654209600359867705430596733513798337951682573200047787676601344264885234876412041214024725158892375173599759706467543675768180308225935311158071563952129746487885709719561087514840134048849192357411643769721770741377921084418397652874074670104028051935002139158314102479576886477715294588151257888928690027630772224458821133524315362805437734548754305907064435711935699466347214538037551861683275717869381279549925070066546187674143478291151621478115526096199504102882096245060768754518908753787388477174065295439842202949388776737114843537533079128667589584480356992722706145662007862509166607820870397013985312266167816160281305313406291814947269809597508936454283615244538213494458840083371412976367740387512682625302962743392417387973842979297967231292430998469471091010160232327530178598565451518003068791716466700852536433615166096367196444930723037049950187406012589573132809191278747191328496744816793495041419159455111380411493008526576256178968815230918603382408340274110270014070290044344056808544888353836206634228629618193485510467322885253802024529704463446869816854979986654304698709906413647079668537293555682310841204837986259962203204115281610994349191663748979227825959963999614317787662038137240444049708731708690549634784250171575328442231095242484880460445164410685953335915001510832734349581592571931802241607378612151729334209180043529091442181316813364056245872624827591442673207906051119843014266827996575889009174071981594502827810172150215966249510519177221670910283929733550322518701821172422131657987517457937642964253689542883109192726497685701881402115614711736267791002056020250501265320298631769027061287465859970636580752211997196237208376036864999198763457871671578733669850607504576995262406448552507503989256716278933517098019011043833046516749888920785784077822176096166807513004632586266330087543222829767767855932401186808481989143254611262426781362788753386621215301707798720392882073321806163189354942027203916410551448877919611928147775409365293317747085798831429889296459871481930843747411740897439859203173981583860025859308396285980729107234996674573925303185256313721950554365661021551068046102067745526312806948343575088289019294782350348587829397832212908673447966917881991171575629176867889204985852540517921240009558697829913255595003054615038225654919969685984773681789002267656870757958698532497598958446725441202617350909131374794712541631721368303370946072318586778876110831732410176660241397252059743432383710107875945754756511887337187733320493662807281291716395918471750393795936273519344638946851829866835726846105938161438797671284573422875215988710125491285780547457134909470147624947077284851659456634637544193314545941468613568599226236956356702238899651747508326369775045373093725550948931910700080033538656219539711406371694154860714035799640744249241885713109642329911781012285351092956870415107459682229138269893066871466882850907408202808625956372741211122691089767364098984361888260235232816897903548950833294099157685214462323537492795565348851214547040027775802653112804915040818963909267350383567590261867684447022957578102171632792497235137292705279236472985894346157320908177078252388975994491004728168123971752491280505770599858806037301555074025440533986599675306544860987959371611656101538508221550525377234634068072539347703426178480026381059442170790627288118482169917123671013548460910216663681911178052120700210726926065350991735478211505723561581434347843351703843231330097799463084222115026539873878102541523732161368772885670525652884423866918518200582984089182090160844251339861651488937425903386994542758206297473028837592152072047131005888301169841786996344969531047754047065623029297322330363232533603371830174013742122358070269505579641164225344364898346527899392136299033344439457470346746412750622142228580882209135968847789952851981761450907342382113685018971791368789963474271305334865389044518989866105849201635146956346852589818681291024772555905775909087883251801585732251853688254725565566421566746919305399655373228625821147215604017119397492406690939075956794137443006914562462847535749866956969543932226666904536521029387605147597829115837037392966761648507854841776375659002916548079119054785228496789971493433322356262089444683220621377020209810245621609258570754561350409945443103355679221401947184291882410080781380469986456236042307660249677844903660919665290247563737368258163099162835714395053716339954377525336117937450457783827009697424290779502504183712536874140004407436315596970974611184949939527006454632155322411536734695141507879113853395373716878115741610352422724147810627434080940150470386858091677512977630546121390331593101516642481120719331854302015831763427344666363851047089263142852544100387674816418061200757225305467055463689468791239660938238425313671494485984936448758795227454998645494561115085919875610397641115781115081293713674411153441809806124251700836224272663578753801550689404052648292932583211745353718770287161627029021193270196070877280871498150208930924212071129977848492927518218982751436771600025763733854886568243207564505565338298660738845269662717333148687684706518634570871886115827932911700969135962235869600166991191914132922881287063192268643130942207363129961742600987873339206377178397266582055334191495056134781608211019032783656210624095854396969660067515914398138020414082808412225885344030362494583682366366106408833381359061731488213200050119691593978924313307082220370241998941925802288562291088014407505698816777657482343596297239853010814617063848042675435172369772892060326239603285894784029714837821335843336051638366406993353988347273332407320967337740848447192565575100720716273369520332717986007482154540623503933106964492994517621137420228872400148136849533468562363248854321574000935052182220673092942729421071371648795916813156022328574580616420306322299269517406508494710199284033710526724045079595686956447043959449849077527018035454077745450496039744581044169718341090383636926012461618951736084503268002899881388928942848261967310902215942484983883667808289267413277992796053505252443856298319331890118252617036194699743566773243991801121540339603467221484851441993170194622577115437096658406540395584021512978791895362581774525259531587955475712643599215751635851174707910767284807868360933932025196021554811469585731595099853374700999559540184359884740028954288002788338123866317429066344396941802971287748243460871406040693499423106803293871773338739230981664732522296478686271785390810214592552566584647306321231044202350217057003215380859935173412593859628556490683426677000380999573543143233179799060602580238089542360219174541177407222242609926735618291614563892747506843988636714456280112540331221912159411123749673587347100681600641165885798317164706742938636259319206976118060222840418620603170944494351751776708855730561299049241500248401559125600493454709034585754849294008870081650172240624815724131911857833509540726044522176267074543789223179325062934764149387965696170530757009619398404732700607651730792566321242449516901118753789114189602085623249909632042314270348156579618817433797164792606719701845095189700282434986601622259270209212681067647122017581260054282446463528495677735309825808727298872861162039506403914862899890544351317508831744651596194611229724018057438938926200460998343815582216470943779577477887888805553827044473243728656299279126760877947076439136895621508918400094703365889145898290149255182217517415515498027239061464067473931827534718826640417444567252902286242736202285543808614571850275494551658481019412821854365043822757464508608331680970464783159323873628442885986314354485680652873677990792839607418816938954125869953733837403178354818198755512656768433723285464983222062622407145265757591432176447210433738720894859967885701924697593548238462002296798601007106818867326467857977768709951357830326708203725009403204359443637818623190269284046480226215419216572688932377134410986984786951262795950332771561777053850428515676853895425361550577422870485158350779885558610314106221365635342366333494652269161899350835399071869002814522068672736918425607372683506124254190968636496876767419718517396722480541935134233055176079361957637658978822670622705888259030934770384571066091120946695556343253989296908035914234543598195140517161581313567310644068887685478100939832746204899464375873715905909969208490690075661458137998592965393404410839397719519787023600942204971302423516363469382756743432692264349631860484461686396023566523541067602388902962961465856236359656945915455467167003692247888963774919885158740820300274658862278042743849525693971983946180921205416625834006481452876668599022179204529184797955875403051912365285849906430474862894846203753669361089820973255987177889614756587658738532644019330987984023629758265348562557836526080214198709510023439706064409173738212003713288509653796595700652411991254117942745012297154074205467552696677150291232124587277729842275673327811286999784825859807061228313849422516546569952286686166154418195620609005089172260489258287433564444003045619145757120346763494942091740194951766702795780331654393200062355701748460807250412925708144966486224941317995068184539614487684496220272628974635817585959802904464457056743971898555141148713058211116022745138919772209936782960500215714699446704670640416260159398876664265505322916900377846816111636751250537240053659479038644173348639998445434044462574396991123933793228705730940230021682792864545644065899238796961597637421512780760614563022021956607730018677143495556157192890684538331920629959005495664457406543167488422803193384147130552297982455626250909877875439914060732751141359977416575471018286853992702278109018320945451080561633140452514615647034570350668526284400342909835585750806046542788241440159166750361312280470055191661158003392282736975698522985747709317379077842947992183292740403170206679600236065268340748526715662962570753682371928338581590023577784849348860988597391725743640788366488028596159312883786158187902009889078756395546578543563366226027647991642594294881806775162849933134922633862890155465123015558638363920952003034592173577735507886211485341936718730128963863216765607452772219570454573311082217928507841845372400155240916826166958198581083785413426178170535870528222816567392085715944228340858824811104857796321291890192184457732023569426104892294127497633668794464855728308502332782680577331018322193119786702338714643561489943261115748897062823578573243394071067531755916854196281720831271341218701487356754539871787704282607143389963280805758078543746360343012227607940898381968868980762753556049925953030699236555613745223348943466819791515986635203325426952941179055298452389359659356743660814346312595926397533418701951484048498155038247725255185709371303903468420481315390794174071272267318445691089196267599787017749382859803923937752826591308609293644706873503485525200148734037639920976561524841415147118882610291639340177890090692038288433497066053133011722702880055954075020951847590806980224086891104890523846810514695147674185011580179149346164924119360893007659717237445508757503585720525997306026855410989569641890890929592048094009773174283559826138635600184321280981354436786013190598245556682112751916939210519064029703100463793790316343628271555359603719506330351105077886639230844135875873861774767150705938269549872542786529824238026466111834918174549651915810418892977433999283390762753641492111894298580188718219231448832315303360232282093676475749683276094246814870157623666200246168906447910323993983291594906173075027042155002525169619860553384236069520463382878393404946498130810173748967202568983299609737727344701727350189129592497062266012443679996045962538817443896477761421580749033428498693117360043855138075715156578053135441884927628232856951540370029037048437194105908985718396407657980365722254933378228840071949688732146876814191185391214197575140443349770867522836243253517956993760588577636338533699031690192294048501942884676682093936384761630546036286650832082094378120603227692335578761816924103626529447387022734514828358464720147980405133841971385023464303972186663980976180522394991721150728494035405787496243588008705212536677830473310316123558332164605966395067409919099962850727327700799702621967451509851513596112731287333740949506974388507015414569098223569744811202872998005837916400157252741885563318859089985883248345902422051222291067156265547860798686382160561929839991104702678664980473083917579222747315948607009320979209328220028276961509964157447221018574186862318513139397974623659582829778235251427691639084221462008213602235104302275228691164032078475211220682060236044638894990066487218974011184567939005433606377753370058230610461251405312131218145425715056152000825467731727388510770338905085866744449705514093373255362286308365361854029763681278574980688074856557442013179413351803141587218341763720344851929515440241623348293057541287801666133365809848312377806231232742524166505913703535951719541673582944930598099097667325310763833543302195968004814166145764185122248087467016112420150485269967603016405085046905400458109128839503399733314829453313571136967398360085439434745136443264730463828281772367445871337590493657205386843421583699881036354544213852712624356418809921549169882300871457518910607853160632510883045540083802875193921423456959271570177299176162508976888533565500967491243214457199666264527094390774606856689044310087842412107774377715795643602837959521136629909388167259741581365885460156117022409451537184659869096777087377478166736062497569589166965590038408356012576325786485870068873901419749489921401280049617816304364983003808987132122489534579658266399368211510407864592935530291262068018706964037336363487183319256177422145774408151958406544042625394030523835477469281781813560085552133461353344323605695084629036330642595669267053447546471220138084743116941879795307876513802022649714489220465410703631148792483290080447811170538208839998930113416004112460132439349151318282148189215743700735344314625123362652618002170243422181044513701841659479509089331318308098354280037731483602457039574051002831692919868232634214585385796507608419874547409123809777414694269539602756486415574101535334294752671268331006629610830411432187911274995334956638234580915738908239144991188603932774687169319844850101573319337611565633603590122551464608889384095284537478838623497940219572047117465539296543374969493135961445558808773741430054231309833786980710732478347446596701822065838142424794803075371656159880345059222262181558361347942911878977145128822808507852251773074254454820630793872190808575486694402658332889570651236962541342336198496074058560241114820184959719542780925246409219381206287620916046782552247769744391922100733097747246814031969905049200456261328956376890034566380517920305069708686329914637329671203080336105065065076070861901349417483003224223100006382964624046278189871936042559386262739346275285729162331605614548507290882384640104691648976673011001918209987938411662963988825176606394497209266282140922784425066784704773918693447831270551785772592599429776306573643767588549784344230066332053858504021288405690306294551821518861305842475846949968531694925019628450002427020035392619090289345293604614758971872052336755907770510247316563665996811398256462456867613164430562270853854803025638847269523749870344607145219774765900184787770027588954806555460175734834543339920981021996072392936079863872624326997512901970639692997102299660627775946423877330572666640350805555367207715244006646561086513379169842453585940528284671178615644531768473902182806149804468520964926809468548274598831983365415403221376135764484350723548578935825654321390552438337067516261622118011899835357529088473248207617236986331629461397331078563332477061620558705666495423443348235175438997945227341807599383343568912615366655547011729244032615480818643788083793294620644854897025315560682759101623706671181340453172677091382067295447991348109984105124113035256319975247253308859449116611098126935564453282623650787030702441265334306926142377667299508457600811877191360587289677321873481011038816248489757838794406172399339693190743123307730563838020757270716043492591626149602440729856842946983620822330196261326021000556437294302380018285991293863008747061358163955963676646356692562339572477044420900376659869430355311894304953867839104038230607528138215668031456297208569649179874121932485057806615556405283065160984881633876237369261598810210874202408333521467242307299220779944982748849779126940326248110318920607041656953439441216401357467144328523543798339054261755050364343807408895839723498678968518815679319441507306068422050635703077463492478804973195308097788302320453638952202079395771859620514038562585365987982288735874824526539774127925079732977964532238522900019783980268606521532037826697722260932421186428566229920299010928332902165318676570068206487298467376274274405392096516556444332316121870427091375896571309564761759930187749760002330046097165559484284074351857157997730754411331221545141381923331353477965478118550948157427485309774631544558650849069397455436492300886753660349214219048526276670195336572266392682067548037223447602803103207045897918936898380792484273256911392744427812209407937600080878963252821182113759013931581198553693668340760018252711149080166966891802415220381340247928431376474009812790809300480686491934639182708977621410320379893872546668234813129171879985486062981188942748775683771610995534320732823470006839107958921618800348260616402953869558761021484575471513026819829445916886174464241683087038140395604970262557617112955862299881394023676182581300784348993126357443349409794777991854754389112286325310131610147754433343840795470036015642152647078660017033949420774052647338598985276113419183379503290802835913539055335041324849489713960908037327793374280638221232420907099873557722519791842294229009706318913499218377713320649825661969273592949237332191546265708226693582025471103889183467722132445901862503230778346696066712652768414826433544115441026876884638722474813079550655515771517174219376695850655001732146392605800599923635776410106382988214533110425252860523350483082207638392892303034811608674499171319361890497096323937001040566788471549672631815872488864476391707613750109690367679237457700912211206500154304165970105320217505519233619433110594084306895848719861585004934248056591266757454385876529036304681820235763850375673630970161863247233853990818746094605352747313774606795996047661429540679932673479796584592438758847566855223120658507594141629372019745763464094214577083943460042853109343159999896395277976367174100900469378567278614525832040072398037502937899627404517001183075731652447094476496630772385039614915882161133246861592528334912118959828339137659193781216589350874942668132357051083550023903803526781030917339682533309167678229018911649810670213920812542235540951351661152836823477289001487456010015154032588915419301827496022872026833001862554725380064732049025249971734676444603192493705390727546481279211243740379595502539671674908820087774577366983427380967420064552863568144603041068594659708489176330126949241996002546440315870933048659735503341068827587862533018765529967693143594756800471394119572667900804757031519213930168358970363762554762024687538636890162603152937407372119333629519474309683617604573299218007679394194293998053997481829220831989863986628113091138509645293934005869107875645369287229154653253994404617539215520068311018102058492560214960659156959810392001620143242472683283220014753675361794728787284018017459693047776312008610808635931894021987893881745802891118846768714814778424328595604568957827572511990270754852688566200968152296147547388091276958415187005535690665706096663389675684405314919307049014915210548996954046920025564511565192425395687418843478852106739399530783460552423917322243871956968099534334790136828164015691017735357326556269778311944054395792582121474134010417082533296975013980498676695446444028537019147818689694978560893135921586160801382286282461070705460878234028399004146427394354522550689514809018098760574679653909640864048129256629114725382849503512742297826932152557567937090297053428799097775360471305362860622870214005557695989751293509069004465728884788185883272298306754690884278969249255394796736101194856192980008885271049380715005255608124112241179710273269271591982696478999530427299768004225467375751200866018511484091314971617968022554134625445368961846693315048485776412971658376358404268170861086864602225397380958060194244792770810337158923430076078058282148444255103515433179578530731102085187202704333430038775233291645281099624888914099855343269492821232379109408432573844390725350209641887051684538706069484339711608490422625330247675958361964350513872519848813246229077345624656377136613600592052046021042484676702868223624364514991009488945596992128741395739786589338062647217933571244638540787989728110862177371643001628553827311755745282013002194829828876168294224902418482116722710554212146834621673036360883989546794734650251881127610607515220762539921243432010350903256718351960580929780720170086891591856979815748317919200084238392322503779585099788266906817468961915523107937613091367479194053016756688968190539661098385612729323333237701731208739938531205979352827625467631393738288910204217073445743367750642865617411388601615546932885159639089246230557716211283668281245101075894638887645699815131911243530300703243474847830257214642638628517233183585416473630764736007421794280914961772400788807294056385627302540858876109916881009754212696544092024816423469428993504582039165649928096986848666983374872568428237067878107612250377338664461014392181278704022188892966451951177184313759565006666442332889160906928612612339650851371340710086935306561049548711388688850662776907745370062870648630395142123808068881961475026112465872619904590551165051274823108907322177278136282220991548990351192242290472383393533283787726469886094260167597748285120925988497234241711423209227188568011290575319361228881753040834682529406778361684032609393549148030100572544978761823976898915701222559982630357319762037402755920234838616159719914967979125866969465851497165037243751007739258889141463784196281276993358707501736705866150383719474128505123367622981493962824513481432624429872165012993766794224898209836225497121226563527550045902096391424411765386235372438256477089708384420032989228974999069495983942520837983242609039978610865651295408277292569113298131081514531912414766414136793649782643480710858104586504650149430444861712590205985360047794137137892087729514735295406664070826837177115482263065274414817523730267757764329048768335311852265444391228447272117248388959929185219447545621942781669090968659435169110169697940405134009666714161577223747232339454862167436393718743274971951760771491578304181609276138161194122985776712675949349779921858369839109081398612542812648923059335323507487815419824648345556551083254942233284319768872793497093119326584103664607287533664236271036408111632917498331694503811630752631882679174979981208174912640015669209565397588164939816286105126628036318553660197364054774770347146968355649473873983976263390489839591237595141837880474569307732828086897340386492893550073060481889892236062624353038642791355710873354298003040948683385503800593227083565063726198467081203846179695288184144203465678406992524281034854301509010072764972788145536353703747228729406823866937349915771907294620811274781480535025543568576749018612699843498505112814470612794250707382808318642065887621462147317206773341304788447743861287166480207928151062556860060159695383810648882883888001668931698102922918998345386762188588702870505836025768066803337033992009944889377764296343712597135778729533503299950239080697775116769561842107428998860779161822914307913191871098533723080937589758479158586492042171934926938394695128504429669313738849361678956594743933307052018995222225419003185873293918778761551906260510826534186680495171862917366791277681209703907993265668014786342397070370889055307677268670767913113843579783572093784324947643480076524669902901028935506654051083772859440920654844765528963399353886047158217754463096312073749745709322581157887502926453679752987350589912065499568830154178685378838393117994758434257391471951033400682047219752886915011706118383779500689802342405581632803745411067735386950435279794929372235217782251559893152508092422601703638175517938612532122726860801550216855562300351364005180367139912768287094000443114834534207820729926260458199901672890087896295354252381857106172726141733756518211593443605710633746775555006029882408655726295558273120336157264705471343838620156469048850604387546396990319200430512898784270534575717991872818128419004784010737530989762942319601440734178487575693790321481394870885122147979056122115191232111787728224421162143297693042814741676763027236771410863428140301744957973709471851579048198749445323962979160960061271246283716367053671614019392787628266452884918226395018853635819751099030950584563038771960109524381377132219299994468377786193053035354093985149719068657698597237257204071270522344538716644331468170851677430264730340935434482332330201493266536217584203097776348708993847647707538981094860679175937583982055350037202797713510890170415938486161285820362494546471441422643674098246091247225317036543073588821446764187472857862858937722957620517970554136176886141839117095487909632006501015764454558848050905762694807041511389939514079815996367854390170217074429947863432451370830590929830403569476229987112491600566605714239349621190738866971920411269753181383072200514557284614099339593055146275898974072206315387773190911995938632134123287750773826061232879089435854283216473494447058445122694861340166524893706147915922996689767127905048153166614156628991962469602316641797493966129328763441469501339096217176503700830679332137352616729893990236086037818758852533785623871416852210065538395138898148130957354988917168836788868967385790483227009965957218602335929332998140885503634244434814539779234752851280095746048763444068018164109406474388912210971558830441095982612436132143992607620049182649015320403848380467739506385733972446643699285218133197026473813599868650818123805787321237394642280615274382144482268556070237756770483758146121754713581273885166907958239463014321306095081165977211977182675193117867075552654719492933359064688283633278666977800181343362451720507841870497450295361415619436302895987393876012346509448121856682267909297264911789291002983203112841217353921476234838346252862415910903126697448840499441350201021468248005324562972855699510710575328870701896868257223665805876294583790815291801096939821838604136261391330413355468282074177742502515683024863884613865212505453001061550918707178143064919567332751485714017692517441518487070635655956279854330647591886967001337473332943158516191316944389827880061192918969633002131065571210963634907283967603903670227776371758418790211848561468118763631537147790694025593013767711867189668158571642753423457263205279133370119758812767245034212610175728349432600590575829306451526563307567617120908233467648493282738257718383835635514928120299060356678818004896985359478707088111494570046221824547314351746177777210458082839339851213544759549006921073790380898938180359818720193313344018199464510876032177349122409862058756385852316391762395254176725171974383363010671311001320048320741552123229507415707818432573048651952964819710790913548100145368480830116572843331834714983161313622286555470972671885814992153929051001876420433752536977220847901530529329975660095752403865847804340189416323622821417816361725189124208573460631976233419707996531583918327204456883303612047319874045057636858185166221459526899525686042148395808755614047244059388731462085964509758103395233859879363176348371834337190846972261689464446094590965533021479080738116287950146749312020606289432702376121009252323423759275493994388455569065054567076761318098998667980518335658191650211072684520489857455193357190672526287812046686454197462423795050914595060672524355087080082685268976296582874115825374602098389474124525796493525002381147061854483409551230821249972608565463802784055229826304795752413947979931980344126293877679621539805702403845684488426999827903101759402706939408990108077546546378687145796464642665510239429393299012044668185818894747529378864414467148599440459660953499408831869170548024958080568969304577813440693268744258971125675567856564462887392684568959262805178197239778716407935609870276565538909123875130528922108505353506979770090640145743488137101687084518040835847631621401285450899056369730160062107084403076365848139891142424477032568436769131701170360467864102362900807947605785196172206766485583982777823706995287309830588873448555803801796808176847539622123259055967005504084276607356249142115376607247973510328864888887679289923181153000377428060873668963645522281950018424131131064052696907956309895658782370857530391334743925518713939436749012188919028987617208863439979448317178989044006265144534406508819369787882059963077120253857826722462655888202839704669440459355960262284772331158962454548011484572801829108532972249381744276381481697151310244635116198727881814302505129984369495346785007007087292029582174741080116759264615119461865534573220747316161241445828829914300230232611931537064140490965709632937158973092113292218355831698255331855545093106300324545498437229712382967945178598473517889666675149867363388141459439594976512562211880094891836952486426720015789775655606231645964177708262562960938366122523932656379660391688404368766174507514025801291951226474681020800646815245120153460731516328499088215889605278108304095292430190875700822270869026448413701622534053968185679797498346118973067401498933294217196890796240317133572901414021952435553332191379803738319369648899026946184440037187457384999333123895682468524168169140456846130977010975362363233004892376463099104557097091732644046052839363204993820760863142859285887654655462969127054649313692180040859032760876101458951237891463572485901794725564871686787984610739801044064515344523902035858382752011248801111856538019675995880372644861401767994244563516000617033545007741288251725565797225190206841833683287439718572425710527325086716373148445063994922588753323210784048283758890447387711255219812201926132593387141764392894027266325841723279790469801237902292924017299498587358885801866510969400957490699941124714616000487074798087290094020934948047317785728453753827953923052011424963351858701424357630588998089358504059333801758581572798628953915350188109324064871280470489790791474083778797079135946847500369925969206410354487891723479525549570672646700281885480537865839817675571325058502868627632210266841127629855332167576474932296428639869658588859460448949088615726994525059639832286539093284929560720329802856780701034472942998365475483812960958650855972980154668709333651390449903443620713556237641434895426367911182726482416467615954218335943148514477553012711598370444511837512911561127700527339149267810729099047185733969190735201049945762422777824099547517326138463890770461329186533498433878687840140580974551834859003235297036771356311518993578104703794338267010055221691401242596884389245029124550040442762577126219964371794080191404008154984026311818517424575128614700130800051913300168466388330830412415962337940440404292221380793657438204839621777762732843635254940528220402818342151425398310284440887043967035253340082306706983754237760250999611996396775115007610055281523372605526964543707791760660940506924691503209290960163001038110844872269824608404217925314511717201562356528659753990777602701183687893907613985225023433270527669931397953155814538397972279822912958779031696863165690563434717126670698937589917763857320259850039167127813030342957421270540474214473645931019079649185136662677914837400622805893343279242601435201850755770435022149041089666447033378433810925006011019875146024403324893830950509131450017749484649345196275760971512015378442403468574020873425952742477753801062647680263866319758576728541115492557172392520263979242354642377107008452147837071165874426497672870915555599072470111176417738773405670025365043065898826720887318260239489357139371128509308990593153558122337011369434950436573597098675466974283195085320359635069745227251381784897464712724779280619471531730188815581089198924876114382735181784173734296038283283278091941720954862351052981169795307692655611084816385387597379468000238407324092186360001019575672466811752215129515211043144211344182922734684507027944221249290393760772961055919712674071240344434073569098418695483996309379036942796437013957958318096198788561292782660025369429653471800866220271911647206301056279080772856114029282327159004511458662321847008512212655616173174442394019989368921399163127672807061048142152104429578286310734679597994815111315963736666953171449562506684993194777682929993311000963290391303207727262959891318801397628528014240601513080515136242185562463900174256998091529146983801507199236651574620967298925596187315102516629382186896373726972859198428494067780330271445538212985004778202527217947614772948778575941686673661894162043714953105712259084111854333136220132208908931619698168693439652872111373954811695035515594302417246116297448545260461312767020342347211916203843741683299081590510730981627797982146660276528265867053154158948638881737397544740950381995333406845455797041924325894885600594056279541509891667235934897269338752231249521878265079134570567150158582275734592862756308140544486918953303171335779843829028337042177790391330367013909092083158082029201284999793712593767164383858744864488142316813182364200906269919647650297073828883223192616434932696216749095925607812943851962132343887043447895074581280612118856140228233452386889183037478710189834838128581305032161302341156913561774100656945054812123949886917116014645769685382082746430166784208413037956981592265899738929141873462444002706436323834426476556985816178136674020993587193170133988439434860522873772822565021104801426797132284844934844608904201930585614211204163708970229353216778065084427923186454322867401669840435819940151730079136038427995798270656096661232846822914767698089198651673850954951301198358388288406996354419266795016444360332711219475285983718726064922074142152476915946567685884263404618937164557757160270607781586348575558995707985841174314697110961199963744215841930871510189030791493869511828687596871249328090089260544173317505600323842661849720820042704365940621914792898525968675624343473330017909218825646908342025033424854743941551124677127917380108174777001304897370450949592717047260596388441336547148942578650635224544984166018658523006895937648352811340227004567575183185759903501559724331405342048164925737534004695087552222889310458722509887621652814052519549889183968126208267564836734428112341133949791739807607816375820676214967761263478979444351339204022555457389975037116779370574401743029491085533699979074411598251840541511415935244678525983384797461895110435020251208050878142536758341984070380147395643203674485517458235575935431739617156676264061342999633057149108618168432732792725239852266695023013754407874048374462283934375791549905916296551681905283699841905140376078521557593985576732524707437381835913537114472452714497920493379292009628053203094646017742751204901162580441072521220286776131897743258460101038357846416327823024622376143270300598958303233789963277803688489165452253440626844980331141832489149185438375385458265502451975394508932900584955701785937300294153080492442222753779327605178368232546004616977799801889608647684584279848663691498542086571574519663810643215811453367755333503013029587649070606507884603481477294066001027754966437990186581014377500494998276736360524403903225563000179742888534346440796196755867032852080942854359934555984049275250169167796335513791832047716046554982190872046296093078885234411597223694516476485743947512240600340783311474847834475625556926674800933754351759797642117407901514626923497973541441878116960739845779685782427725263740251370094166847780166411796540590154590421094263124754914186682372543183712471516843026697592139109384379953613534096583512733636782707038561661097651716454906569730867454287997397477453595458888282109083190236821468472245371495420900701910788229375037263511119362401845562826381543276110250718221869056107467927175499709800403191025032919760127813197839055014637301665590322948647388119592429689611078681130689053070999959081483006455921311291765610906831537387352039057402784299456852530995254224496410009161883649251383818710830341619806282538522163942956445445546761440110841977069052939824194230897686868024150306484934830114694602396138320793813230128710824247350387329882969046276187918163982428781704635488691639654116967608446718320041301299357042551586192630271306294543960677069368014239671751774911392876360941846760025545266958536568217723766674036134349895283096428489594217149234663160956392666333537455608460466334930520753874377153325941989617821736047580235954252750097692270997013221704337089659650496696863243237975800836153980986871563272185560802563141895532062179091564939372933987858848857102312402884809274994060488070871141201732828546128667618777666152204966448361061963707853733548438075969077873708756049125194203669793551856520184690562820641816429273140204142408182190513432016865884918984466242975279299970728583051011456292565141160357913147304656338152615941217884769548362303315898498949774379443317051240199731341435802430239650424069485504469527002066968380224056311196529092912060430702493876043431733518179882345981613791488610394870344250044239811217033734012905025628584974689681131855784904036814772626065540146667249780255107926179986866155062891643876583390783581588974763271477811446756403721311329806814752125352353324640855467022886816004687826093891145130843903739768332666006279356035984827821227423456781894859825479604020394852583542600947228799326941763901095572268144058337439613099731837432789811516770042397348250388560045897862095147035220266854481981371545374508919223899511075272582749893587386551597370040311964659748935863427599767046747438145506573017619900089736189396278763282110562844274187840128278832462822698869327309832725182914199421220362100142278078529107607485418249424803882203227989649070768681337066873653423555779125666844308609882232371034919101565378786465566944103482047828789865486730069867342930022925753401902135386159702436657856726113722412493028477436354205620624226307160818509158172518431273628580810439864467595229850072304269261942858622782571398152363528280865858150200875864603643370970139086186416706047236827380680466992716361100874428302463082604306170134768172783761564232039127519679352873212519468010609212182178055290237187614753279974986008419927731557010740008124228962939338913693565143908125964458580358933914250758765803390609066948282631013502936985032871772926985001760348630606267886439236988850432797581070594416357678132142068248233881580027152155304394153579450989008928441290179222743038530584669905862658075064957062104345614281925987120955434044775402341839601750951180941975726487528198455352498802609995027278852842680652135365821120926854852655958245287006700205922903475183577801647609837305971560815485759888396010524393314801547355165017177117435434347266898535223851920041293285420888597345340993196171451569076645732573489301148949228830376366067985403418189697089105452983368787641610052535391445068419403378347150416803645452189155902122242758105131137315453355334186869983236460726878891511598292829282685301487400540082707038285006970280786040408308959477215345251169948211099889170361109047313015652983627964272721266125991564239428429147082564967475949741702451320574679241297593465816583188607618615297979906142482430302224593598746628614915973990852245011386666736629540082313670913361852474794062256918076616476782499041365130182518930345879308366653378689393976710841426974883002866615809402630005873015771152493443035584600468678919093913912040074509700168656372313452546125592068053120617692126424161430762742983995857626534335596190415021331557191226772876340918772998116262721909251097932495714401864917823939602045926868028855749669898115665972657846644218720507557225534758672326766879143118789928070699082609980568678104333065941661651517887139586539983396013146847357307434430112990924789587250092935875891392555961764163778004742424742168164435867253384387879784475259824209093728397629429186677650710033289692723120545962329641170065102167192195079202100435446877818701426050370863256889760930272738307427106970923542687070982896602548962139490759479128054540313644010340613543675742284679660712566958455781465969638093464075051868931828391200486141921043381296094754883075558586097512772888546426443303390295737796456778807385685840095459949829246032284011897310917650049594341103265398960379056213800983871047697384211230664023526897711306189956333531458040223175830494142352590608021896119004083849759800468784863561536475989428590205500226505820507609890098408833300175360782849624816112920975430154175854066961121909270219455276535636270414232431945370138895658053397999756847554529986898888921901223090284333139349605269388656646340125592340674235510279514546808819413661617344225785526674906578443983377523976682399351620981275529974364250612276402075498004427045951128085763194028641683169364083829744293510441954755680211557171357076599252142532963731303135568682626343500547190143586189250854541397705170502806560462173602542871091391589007547976724490223540255255853821498425590552598580022156517225427734568942174941896784651646796284811337881098469385351263597166077842505553429944516306638610766945790771981994146103805261323173169850353010797031585144289653491373654729994601808976316301327381365505071772517070978551374058039202683229511497958242069256310537323163200012168777971718608344492047693290467597520527160172932951251752223731896541837095381041388192018834112519327419974812782767509187549170674562596153233105185241257252260788348180312549054337274951115303201613356214012085712889421727537583967161396240831513073737791199923186061983902511405618953176948701249425351992736818914664199824839502017689244265658057613561907899611878646415095003413639735350461323742309434506471618303881031042812957039206086301741935394036785252279838031435921520256735106120921974500370465381897689216761946391905907035969085780793751448401017823216193570784217902302737607628329868455408030422685906852652870373931449696810541246363183642946026845579601328590255214379282451506819978208228334747624350655979385176307361639036749758142208274896549750217020811605103790482572759579338106194485831773333587242818445688064351293190603615159578587138120177106662078090582433908836200076918032146864088102744268936995277242452296986530306363680494004222140994189080043419251861013227182531110655224866047186578362763613063558163022407654631630637136324275182999222150040095846448278041753186908558492032743444237646538848237104092023120416589737136404892251835042936984498886887983300544011223023624347412191098661552645222466788698149829996900121591999768905041926095510681497668708149063145861345685800548852764745704722215696019218185693631051515706057282851357758843504848029831470824821803876246193072000976144156073479583718996793943347116900728830822451887060467575768736252034231423546574698106094319295465296984803168681849262710740429221619480748307482291234915317656785406446803502981642271347332455559655273149856998413650592012784454125437346778328795588989752829587249826314437648776594837340509929894155724007225163543057895332809627002973631695877785407281914171227338464125929875980857647406039409779826078549498271466775009109531688335403239657078664030350090950859846016698308348903682597267812248130868520450956160251215294030063504262820800045313162792645959871823860442167153300938850152125796828150571274964278003958685229681799693419340352229892039824807132060751136355714829803538369417028854962045397067643481991147590170159617608105934739878224255827590758595843991438197342536997832005892280633342172449646060844201444396705715690228100800261949545043504825030364540390616294492785313111014913884336127575661446726698128153949560614860671443279966125820073553121966517308915516292062623667432138057555782958139353505759440247934319456309248241648095816797205012684817293919416980656153002761523144037319765425573302406946294341845639109711932130270546106669168606790356963653126100549441444627605869971079789718762008453609208775239851190264185227451472820330427010496301013439415866114311635831103425874634721089453397529205851167416516060510852424386724749622953037086869876081816517500239257798830607179550344516083168767042088823585538352445670313665525527769009810500095699687967126808917595132774739469834533892141691056718824489349446526374603259493109030869147764838937090913536965537867290232115989682244963174028495980631692195271190478887394507916933453286090260688091987866241036526083613104815297221489584407153411511397996088409104586925639632514219418084076812346327401279247220503082578652813666352076274451005315007526433403626876685138152856487884131995752169701653095116091525042877491058660485361013263366636510554348188086949827244717225338151179141405648204489345831392505455567898236532814336239981504262049340926701715585940642445279150335498593674282176318479731348575132189875553798694120759774921040564973683252732660301579418387900029631642974516126138848298121194621438096106251205982192616045388158688701565789618995164259448753966071812041949816148796174218003716179384243266467961733534053019651237587069068270656462615509397879405211651646856200704405219453900212084423349504773866228504436939123907725273237468453855084004200358876134706827870954714028229559515486517202662475431811624842806943940422658494372293332384029119999058034165240768056924181189639681816691852926597902349695917255557741577563349036268922698303468155428621804219214620470485497928736146829392129141528353210792081917724198136385776615024888708391618672151865645308420370472637343863328687199738161276306911954755114025712546816755722129433063136349328842927906739191403091369514802022776110600159954081803581574517499014488092136207302518709919670942619380569540834041347438701957369354339342481348594597946704089935875478495608205583007822938048112257437698456092782598980383627659356678309173852245082681823474667025396181317010575980574156805394023925136322291916202964946822549893967288946280644038753666449200373198463145582110981740434577058939015551776308486377415708331761102869088867244573823362387736878649545266961240610952752011048540029292531414409356942003730996834357477143271587977211108073518979197245145919915606168208953580032183086162911382736579262985883187579472618474336046955652927579363215763352585673217476533697706719037109813972188475197586624585983582631369069515846566444239804673629755964703644483707545086145395175206912559701207064185041017742187407901681181453736804858192434469574841653310298288895356802743473815616097606489432516616254032579382838592570865846603874168220293799763502709201519826271077197845645835134602743443587863402459939876797636858635291071163889073994815733317498127280816158546527263876411932028844264917684999755383972240702378186052275217555731649116372885245661580709546114419320832294167989682597550927648541643811156499565689702966573911808429243514708294942726008992613191024968901361093505772141977978224886029656438848277517723340383898320416940432367137071865292039907699281239427361642966890468537040306718318389640386229341997255399982527040926655621976074367410475612158215997062402906008671999838077368691454129645262755235394720024217358652548555883839832229483397674894746500351168015417173074309736319910283198157961123845797185473912167993108365157454583650924359588768689621119808802755854258278843177780171940973810601360881236836807720094719243903166700253928373871254507157794363201660068474409051363122774589158876480574154347668667238608900992214583214627642508218270444619068405180667872381023131915253175539554057262846506934603426151698453474310603745152199908417558436079057565447819638252241229513017120984726347284180941640224267959729244942259431992318737706921562037268697654601405049819748704771344351407632958724222574997123590867107276744274616012894792657523420456454500843239716838148373725386927481467079902839091532787740438881205276988520313783195683892599044296291060638954500627783442551873076662636471719284158705889716749523594291181253902759964240386507209242853687753266825566601447628850261126122275965655217390436411120340823989171757360043235324293622163430127345691465091714413542581319459493860514995985154735607404306020761562605428069021102972089457990399918511872864300165620958133393533592122932134783576772971051152637497857050149164067753450482425257907706257963360641533578723992039138219565941721960583267971778454679798046325269725186442628801279890673371367692021988314557019229782334894653558862019211496012579375575637507850333836321648014283915190924561673895311592318726222113768042479187861491915064210858019451959186511310644751915553460029633012581361704852003402250435329247566184384663717413977697483768591252740500271588538539376348978869458605884451164095454569882484398143271580653240386029659773619407650540213513961441436849544161105287453341363507591400916453493860492654507451359337309180833998408494871738318663367716313601213352536300362561492251535858430066541182274199436145563113821083802644116833550444900274463289135867267256067973077858300659261844852239394056387404337432291548370359570421446282989663942766948711760873265757967336687733459882386658820864008827324136199586017916539627683010819558075856326743220261332840273809511544443984651433747485794697138842996052386383945762050143644348066898566874361194417706004717070657931341250521226919473892724502550807912176903647170198857421287481164519879050501307574169296610505936296940310119580765155597088929502157629861616263487795112325137894687578542103257462662305435614664485632820674875048293420068285417678624429847101655196804538375542694908926839488061007288482694350193392448453880039292833054988975812663257562649230663150514349161101426309633330023817293317946720829226943136314130876499116215241604791413811749812491331113300826513454496490269088367722351815059582313062136685019468229867904974513901776039900248190631947354131824740188144619597971067250482454196029189807885558973614449860393953856752318147286540142945106955740233139058440155567855455213776462886010031026111692047789179085271985400969314746395264160944014543056864210549853620415136601839491145775795204806794078000727031603131848180775808195234121652292436334305004270762622561686981970116168551830446310128301961119008177359580585276342443900010452122156396837226929788942746340651490502229758605402755564544750149511088348108396124957943684398700570492613412977461090050587638538866348583966999268243957412457283647819448052780667916950237206426095497660430229069306743102725157176438847812509221577846549484624387610175823113177220928933713550286221641840681719439870794558334019531711680432906530526147848136299766788787675157308695423619564376157982145437703557608682554585150736082581161697198841939252166517886086757490184107347055427569199307816826775125950755396589435062005145347727991563428953965906948723367176409769265347803896663993194606949162577979334513187908574728931564580460622955097747369368820181683699461625963035831937437493717701926385667399849542141404604681599627757611840438512373283866133355996826210321540821522898319596055288362014396073290004250779320100233806973108180190896768326682019961684944331602811837311711639149967588456154960396137951904593399721273493627829748122233669922118857565155321901774955252229180890580640663507988074863455534379758883691939439516194453283040010216837949652602080219962807814374417907201042624954008974114081342514852216088585132439358955915635478741949644858206417600049726391252370553125336957699428961869861681862254027794348760426955086799659482575661566968518341326824647121613233745458102575874747662426158543323392590573977551481097251911012589561735018974233027699161501200865628073098087758473580435866636635180525122577903121584327530272253680736269657981063687408833881422303385401609008589054627273941987775343665670567358148062397349661816881055729992551544610100243254988539686556828875047613069137506984267213062586636459075910779158667857048099631181637317576182808030088932386997168596476936498674978987426627690293177610853261659651320328056765295310014470201159685551383063688794257772944228599753313734570038825656238874964576558010181358217755137973415447176323635209904409714803879820199847072577615290218625986987459495372854565744263497778653332217121288828018944496310636066263524057866040408276909601247358457366497870664764816573086867692687433067097616398626299397486680017276006721270047044840052094555913815776854783518678158752195916359792803176829297927883560231968321788568862047115002836364359832397219531169852637177283057950745805211851379835267804570769860637930660264785491204001044511771361109006707330619514844977053861532586308277169633336128754127071342444100297961004689885163224769920284353375627277089945214399306738613151122876969366915996935403178313264527999348291805250805578972241634347743626980293520502731536043742791047689231078461544827476406976322452605613723031120719607199669362683812461149568437720449559011377843440957753162220950007085134210631097510771591328155609692301209517043284204202791459297220939536693844307255637390740326031882585996082218116592129881885502434874770268998704260340955849440648396705523485671176332890737047893105454967533163045995509102394149988093258673496260380230370246982910668481631324784798359128665545723396377194008729296296848970594080864894429103883718861261957072941776642000052423523899412296312848136786204195963592463570800633630191716460244830940074900111994031024534270913456156684520633668985378327921011259350579987103761746900302002532142114992104659410881914014586075424759486269214799709929071184002510673667613944031483904249004286859043036674010995941245294553303815083014033564685595861202974098611216569249829981345061636131691166312848874405482603253052754587625342016541090341694246487732476402998561819148724444332782797470316047935955943658593737053197342686505240350412424839087188902259813644813736742694683055249119900863467791790480375859243210005993513507125935522451820052103396528825922935556100043903635868486575486946803490967939080567348029129305446898878368379366218602324787422689633773873478567334449791746600471909666359127245354077617858201790208009976703955265143883852749858996787549614542998188302792059705073644838992477038368909855775910443920891114939179531366405242268548268289791510535643144987068214372187124030809380027336779601423725433233566534380033887953685398432358754581371860892788242541707987826115894196863322786539366183475731258357741715320146969388657830332941391777722358330012938433467689375874062772702966478446625644146555645337717294306396645949774755487383454517186553249076122406050822712576686653056927804633036627694687605437559347082434066651465345740388385393196105568491928001360547618355126343273823173302719579846483502979024927985058645357205386566146481698975005187333709138216694891342451525446738763089110073326323256718867861360524027142227222112689963904234402996855774970464314345721057285262457121744002911782666033983278301427073187868574641598327938953059364684275168671139576499230356770705062725946679748191156589412980059755133474214464205355003828881173639639136367669551132923839076567231938508583563170299300130856980073655218161855926717502357897606968313806254207255820992766431740874458903017396357141821122475451597039315942477007598602040838481219418592926163811143469280453260845535132234726053677610697617853127873322751536380656351577092336304236378387429329868492929909131673006502472687387639693388162612347435184990646600989502461259243885644774783884320129339236997034384309235241526171351444378341169586377625435908700928013386789579279555915780539091028179875516864088722043109141984445431284708015848343289929155777873698814397417667986683562094009524270942799581545242597130448494870538924752105976781490274593172905887742930423242265821279981082771525155988863416433031136454777710889706986905856355387788867481145797198546404884836452494210200215035320048924174731093657891607460472127536930796616760499735989930252450429350677486125068613750474509033086987175460065645224784795726154664792861756855710179054444908658036990129159104647993681730726693276945016858815442453120866377870192812252816487081220149683413552038704398816653326837674308274768625045459167317442074304162561857334232394644852456083870691597364465979287991953131001824151163225984861359996665644822434844460492373836319591926048271259815364930986548880973780556947119506663084767986284920135647026171251095499716244248394752648456713923673939692620385282491666392749943640739894261354666942951087178262282228399406194982241833673865903815281562874634118168995684452135115652813373664554529493732113116403596608867952993999917827554871589703730421733924441582284586940460790842788112969058160967654866298470690696203774430370076646167593479953146764989330147094363610479934308190924031838788350477623471978823029008468674082564245926408143936321450938732748147882877682148316311603481965198958641230932891272319613439138736810663691809112312854198221370180438038613796764312409674043100255889350320032989469893779995489185239221534453052849904374482454361155770340859099594921709696922884438957663593964059745162841002089503122499481451632112033356540290704533304690443587627199267705121041007693610196848103634629816779835013404506604611089027271268669525864037671866010330135697718304182578986627240400270446299087887030479042242013788938885746989961550318745160594672372538087822221464091187458777047455317994473580341667062085642045808406607638028366844197938241598154518364029108775285276436292785072282976575381480472235971623456312976105631897188627259684882303955957787983876502851534272497319061395728085999383776181190119298195573907834437577611860828764027412945070651076253128650691940118942900852490720418713216308042852832502201015192153799515240644231570656091939573054108690395173448005514743480353906281008369825316668820997419700406986163721255733383039720703834710063005439532240791286950872400927339340518572531466132916666004408295014488986954396878906200790783477264981584666934782454653034373003039064095486819235945670913369043788878605982629259860710570602241122987618465234479322784469463919279570877770750797056066856816800214909611802413995943129250906188581956596713755820100780572015514148092439545292887453453162968041177169383875483708891734817035071365939464178936477328520615444381588474226450239818917157666853363006805144996154768124547570427382479466246989459227816975500269240372810947984507698389669420217104119349103196791427290856679616831531756154434680222203197350349122934341757190404408670842202809822824062254870873760106391867942293906179088735316129505545512005615397123085843933620198456031945609258450574672984410064536375229760286939495922697192836251161805567687435280034731342341230177465110229019990176254061849099325617339083206990628398074400175022424214569235652393177448226760007483730530568000292465848767514757933749862680184993190164025653790935381581329109795525429641695711397816678065643831385154935902287592871394223442853753639982864502094661171346872482647361523272561639908857264412222800837380495706645065585699371307400759973875843383087676406469477152349678731519717018128547188101757269975880742664489206242669024283766633313799329049164181147661851739083725946182206533738885910388165043612762673907929375992301817220529240863745349932352930527075612321696372388012286312913301509322222601688507203571991015291375057674567530358737902651565831450444068311437773076164848544572521366521943391040363384448671301148479551475008919192994516518211727498045710508762715224075111056491519897083634984033702239905655700677425014086352185325837060312459264714647462328065608497679741653236181317521658022707224818902529416108024590799165662709721163481888434958893854129204534249528684630026754157836459867281627941579645188448624317598351802815453321615201148844407661051706888453053998340545643846804572030089564665856832963098905874978147136725599085164100082392087264879917117656041128801284901677711954921007918434802030044681533760011914008464061486677505499451845851997266318243880272612213797654562945582948174526065053474503713738569269081248790561172976947424739397088711585902794800589591669275761951799957046193518344669268998074605214559452922462220505557154492834907788838847913037691948534272036707620728723167932852263572514793979911551799840974203249283540720502733286571024068616421657756039008165970689693729767423726710827417655496167762204020097239487861339917586960071934688975490822142251771703758470014815033474644201453167388233924890209677254266997858942368403068602155910236049620355381223512940684414035301841220079787872915679273651145769875903553625737214621697115784097534525364979364858800499958832903953796018937116455668979001110187691423675129588987507266764585315066245777247949038923041830113602559107781162287111976269578850526333340292587696119468527795142880929859975720580472525205321660554112515281048818799504408944159007666959706144771381593160132942905877377190032566889661027286191721493023806722635231389399649645183878579141025300769040972800505688361293312148867342499546867093874884520853874346206778675406991577567040149854137152336682170888764236601161789307940975410738667714284864597333097212397623642316204080964751578059894793010216776060135108030741568453677557228508306385933150879143736901442122039788066849888749222836842549019148181954987379747966041133646847629164175623940482573883725761206266534773895437344575431377383128874769701068600761956457696030770068609665652460241470057095428298827688080858982692161989824170156254733031852647706724159091000487181925723890788932432401671826825916905329593881800207884172109879821742997387879853676775739609170111921300394118409253758331527237397573392014214837987783674877406805795026628253961381597052169680988214327883521176246977503007489006507536528979710742601568374828083668646791915620937322575870476448981141660641415991387783833837963458604412226910670926408962412720232091898151558114759951185353959003056644937748496197370762106560530362452446488163507440097793373401775241394006266067529953367582376940253058443630129590989056916513324912380900528521005226409399415442972651550651671552972697623930196146111310116068534057508907539756718787221060048001887211908251427122335729327960809562655470582516512162192659851731212077081483975914062908383450733605383210404610082015205718141886629221932573982483798712685213078575704390553570786867713866835660859241897613007627005580542886806149398498045600599513832282371914242864737886772837709996167101138774033240083202954123459431553330519624505234959412793293893710035711076128595482736212226486469712512909883765520980398193658363455898765537115199600402625233183842162305575619312455736181095626165920356907718994515803596557614926453787698776239223178687472418003474568660581230516050982898315394428283096975659306779610958519869589466333462164683344098269986901275367509060259996671218227030093368124087616506902794778150379646075769343909956940038267537979445705996839690309931379124658303304713925054232409194167628884650096134587641177007613967514552121426106885374061734565275434389810563534957185492024237829450320216188248092903096980742628180094479023498533588034595980781401689652247101575670257878598941476210905965661523014780091350615482064066394522102461280122550521341743279708702051730485539850103804124004408342249628791377181524906815398470296869492677860580445032253829546979146829339233140457030523010190525687048643715612773548404087146866989293405632203008775727110422824687050251779448973150497888192286667529814988666644155016780871034315083726022704634720507478874065902394791112310682703161092108051212719350236145075026587394722190526926815341986833016104551418149012541104335013761867987474111916080031275946362433072586039320012509432967648835956657196568386242478152806656073501327212842887426093605229201037337006896086080505632774951695078256878791405142398561450670116549427698055864283012189158097810167910968722327510071263762682391196809459289715768870114894076838523249725314904198044829128010350522649356473685709685569587010948850286738805157538070271113947301506282604588920854420402716891097743985146015258253005581969882144751582322270228879671504101737869959695085687043976567561775815575547149317628239872901858941415064375872990200772104216889534031286788333795102684395794501383468672277068836963229034620134610746141441623085152102468571008122681204680095064349771976106986368032542087382801714373433941034651666983393219286277471171404699154185792860644007268296860870316047220263552987538218746277815258366205983963569962593175667495396607328794375796019050234692628735127441230674427854506578410693682138924575830148848289747792033862607631931365354925568483564546849789153764960717471151265016517646348804831345541733935663883333755122432339754753119089668395306775743086308976191274194758686873302551057897338323274287075321520034658362142743417240071126126631467332385873545754113148442560795575970055519228144758880372137342634831371601477376348775539141946693522764254429788780773942656841434385696912727633718244283247800427593316650338108935760252860492965778495026263496490513179492197670349307038023969541617707721636296408678338399611216345496450891688449917681804331741613917123058483503229353933585186316019452468056650540911987491975947958113673513405518226666036859657102971695070467227570898370232122622103989913830307025086205651102209101951764797112086574424539835627209607096098948414893749639931676803921570107940602568231673752773749311951396021673740562448135398238208452882756085009705432308642483499762159618566275682300233358897170510243868524760849861483238550466594867533798524136726953191453546086790207420246542520699289799569706133687521082112243980464021521024225353035473354283477563726026001142028205616951116269633518119287811376088888452056269412826283252716006146706726477288150226286806388717922403319809317487511957048976336100446035521300279208728333055543456862394921044788631923955940134783510397989264236133937702458775063058826772455501216790949019141090819200656800151786670991984033793895429288851202486223504480511414428770975889148426499455231845132677713551018411490676161096263906442033741713265680683376994279743713461699178401189848453450849518392891097483448471653374232974572332925294005509031364530174551853107891765263998276173381150657158758299241465756053881230105195049511300394530230599594305968167177034774551645205401179923051866948216113242327523380520703460347458648309962650246999084330619478580841220806160125193201896365290292383205790660640182195930972968256544249606588880620319890210291112381305019930486315291985488162800567009458106460838801350704655523115190106297149648272496060427112932174056361466915521232761604100230997172668057940687655453288128674204837574658451979950418788582004807596397524681643797892528557747423837432311405100013544484372613581363067562358114546835788294639191504620597169152000913423209083713892118138150190668259679578574217979673548889837980595054752212562348871164070663139845089430297930605974433894972680816647903455955579252302269624777814774510927025676907360011629617977048775888823324163104685012564609399216540496933395417972107880907070436786450082061763478073026448121456866102820726750348140595214404712759517140219587454519188861037872729740330416003927336291622888581373903603628846674394070157288233200033142134996333917836629416045958057637170983783658053018113482642814375563737534415615406565084716263264682543837420827412022691399594073513274128889133867994810661483895980400490892645833041647310495271777629752350208620124117909681126480924315746172754870348153206199053306727414680436533695046562493503826601027753354528815202436693576201007535719723542255482912054718338577257657628458874809015164588368792257448483923522828880648313332556703828445033946986100227850203223274058472863716433632850354483385308051172658260104349648722657635747893247565770486758916309189092289680129789708550472845067544894423924738040382164941103070242299629259983807744967598341492415111292190440911788614406350669309779576217522571331844558169267353344472330196955056666461492535285702212144857149468010111639738401330745348153321368665880065205126798553533038866965345964729386577597180048058772041151656418744639706214767277966797311436487786781070950891027391660708449782102566458089328437020419112205069051210865042131901264550477649815345845072609001976259247692759991219960411481054105907892453618693358873730064703220338584876556401059548022290277772355052709271406434432282269086519901483648187011250789831070565978243659509633705059829903774159335441964110830383987886142024056698083925272889368125308232152260277137021800205018478382695933769380910352783076483207176931168130618773817636001857289737289239767635700643958107042625347650500275954528102463470308034404676006973538454951065193727597360888542720419984956567510398418033053685312268005273826514010955106335632694845122504342303453887145410407001210149049876372184310932439580490259967132418399524738499241190442515744476086000735069273087475003022025377276924061515020516512377305298301492568867875437143077146885166559297983325860915024218707164481894390304037319932504241670645021531474093019001533751700036886954591579589739506169022284276751017961580783467660635349903515098619278530423599967693793032755905895969385345387609327667501288242370450299438835822481420824845788702638697663629310345144924118724668277093226627123657082540847477610283291773620721425975296426546647604663689279958954969028500979365718062886399997365245439547060870065190652330249457953142678173633559769858507822086990660855088616097694412554734397079042105257300261776658658604369742610864609808009113853574091081777475525809241995774272535112937214376337473093543464353545305666935513556454009985469416010210540163686450336965102264714428486201222922718017230057470966658465877092424334696831930932846920271120690624648547141019532889381568430893142589355520031848338095465601654201594472413082209234653786943255863276849928355191431465290267485140108917909626295579187836692546445957629531678790353251094479599075874267282865959922598061708511484710851325972674954733408439508461292710142680870137370052388747932172875297386977625158642030681364126550617242115388227033444746294198083966145769576926037527705767344642617111207992121407894410535402875279100164091123250098558546824927439086469433813341520005749991206874849196389401795962709103579870455539670229766740294088667880702978038528777445158310810189992334751208287149063165941071193356701972243946380211570226418983519011902190926937405106512613598885610368216297575326446116843727456573235323936165739224117425033561742102575161394047283686879669735489504607994599069795302585259931839988766801139020475322237519628297158683415329808590434322453726045168593629671725112350831833610719207761187912830398524799641774060370554478542735546183157009084575000250255966733221544946225658112297533063931437604473742081789072727428487719230684958153559096961456841133093713988417512432678040449825645054080060488997416364479805715241994984398856282423290589243714771898972940779092947295212389673206700767365170367279402666120687913367088079105315411195941319228542776966251203826838223428055498855845132738414592205131258402021099204029852719740372847973411401266310180302956774314477119902890396683928635492410531909675257170037569227679200835208220687609681440710518631483747279190555269028572227142271390918462309612644606959352023082612980466006683880705203259906090797828861750242919936352207883990791969215433782226229361817195832392332953169335891510201218803214113240014078489357049239845224444811946251396345290457627214093759310573729282479758566903438086845135408532327525133247628572017463252340163537521425157704960299514443398802839066195794272764548945831120695012169634942689453998350793520787575657514823168880739357087183145228896439726199386841190658055984844864691791603982053725884613647650087692652613473643003371347880017600054330099750130534781043124231009416765941741765618979881425014807488750394204575583969242251300124514482401858085705125473867322214114914987564436613964441606361840700666000422682748193981892574440569540432128274866065914996491267989443606225061294779286172737288861607235694501458294604665333048113716072928384014322644757119212903931455092000154158027512363888222304742950461087855610556040951203981846453951106911420967819081732747630350353895260588084076753363770247273783233102469359477227684400546219218080742516278782355507347787675702888873371097422788231244021584466617363274422261220458270023989386173150368621060688534059178536820486975901623600469709431811516182063282817905617529479058202788579382414856495687193102864665558785447305615805397741345564310868840350407090542740510915660682535393760450893937129030382609283329083715887186799956815616470096940763273182260248132980499968593245504686247320464530195885346307077016535914336618124602948632347682377072265082439268186042617871894237693600881088241959742172624299440977194535439650628268348556764818409370741004341943307792916559954174077607358606763207231615833724033367209552731910816318518351568561191346516361245566126521869072985153140855784860767848794763374094142007749890364402598805081281343328184237535724032730438364888339009829324013907889921963516961119351986218407619209467556383795516323663175999861887661239978864147057123338285982098527859888801455477460724401787493605736592536044432221402963352261569035319189079163854892599209536034982838124032592560680505418794733300220524319595768446693159505954721379821568265873756982816023695407714812283428559765047229970091106018377424199139360761374890266589611803474253438388223574898190928247411356726081558209781117554239258465060830444879776270080457765907705164046715374861925262462724862566035021259417139717460565323920387598354602005448046308296328340344992225859757173610901191929995379632853155764116374734066997065002303891934564715806321715891826352359852838710361868253465088244156660374658630536619869128308828050759168783801979474930732444852032631124956285992387225817500283685129583972564731060386551186510759873433116259560916941861635278201399153881896125750269289769022295658386567289756346807589489474644834235313028976479099194634197437662003597367947325304557341083294919205942940495103092318800599278487123475345333598945692766607871076591738501588751222773309809711260891369258660248019577862132841964063517702640352328381567216550623977752416816271460775648157113065530434239981238165984043459931537487925952017974406301194271221955665655312203875834982601733722406021534528395329520772490297825200104370179128557587032367947025553287372480243802897961474779414861640141731128167372495202689062189530910058695996622574012670519144684336794910762397898159672583922157354747018515690410993557317749188071415468573901161874542866141627306507634000076625402728845349529126620557029982897903151025352421734458717531499892431695029743950975763462840618889040240887171066774238136893284983557794075868527125307739050411220368960404013804859939655819357264672184566482835381852773968933279401728350121038063621880494854799558115574917500891307725859828973852994533160181335162038239982920444445932706127055984659255611560592018036503346221457152785927771583490951467414659621951685186953558185344143472805998886872987078559215115807098996311562640126520414304505421073680652996266103386276145130907773273864902372712045158042427938163419204448706294251322998364933254080427087340638629798267638938593596559390685680712607837071106763670854117539355518026752940649588032166191709879266723747069342350544865438195733131515149014556211197390638057622704680493628475468829248491656383296349776754746797859464398922733548969882180117279700836974753410289143244833118369090010438696976898822803051246505556016576852043411915425734317950000740805979812479991324995979651568709925927148507316249736417937465305822886056005997075158058578897459586385880705449345538425229459386293862824112925591350422236242448365410269003755167473493236224539915123899485595359845647356673739779540936911187730861506128421108093391919277988969951504113087837660193244270601864180516440066733190970354546290698833624185812679616080057369993176841198387721607227562029789954321434347702658133634027175339098788598902662256783282298614208490927412060778452374668404205103811537244671429601450377552558051321608086708542933201382983357745636900022252553117055229983592842480676189052714025195936327069269599533849296463511365743393071412282550108738045194446792120465393216041404431439227945294970065647154099073371661051739508058083025673983035116276105817879802489579952859684205640703567681709164882119201210841895418475690101906752885025638978296710071893541956518503548358345810466487108779558454359389130110318994804286221282106570131119430008638470647706269195227931072956668877230203061759695190721395817707021960343631177026005904403315706030264004192567373047323376069551100060598050727025045414054052962257315973867178295636588661214968724223456459444503857178933412997290609680386874525472114341661651835319785361851059371414495903824580069009794081617774255248294736538187305907889300726854128118112485601774591093532757380853514384108662978490457315582196366872300654421599040555513588443725590209556400069122148570634746912814260050508360912215601513486543866204059685456160361091884478101384034277155279737010693607545687626008772897428709237098266932142110712965761443558063867833780995255216043190889656702729082792372955517777861601789665216857394659267447070553255504494028799363462517486497353920401061811148714105079540996766463357356034280676396952748223197191139120671229723158367750979391214176031270915495950417960988759082658134913182398764890821646905910210352769802124645395217328908017664614537575760727021241029787065427262060483428662953085159656348507641451019351819686545931533194803970399348892920916193882174518876817709763835976049125476432904722006270725697915205774025077897774788649336261533263747248922826202111109045577959590644801375041078587284198382393253611211475674854313423749915821851775948996666004320696976132364114187344157104228599606087907629083666595335845810107517283512330719100448860483306266156211995520177952925297852792361556974433297167709554368625860253582983110213612083380518936246003552713887802715997227693684941399228850564536610374626808690971332329063478345818737999829775504093111007597927207932121431821782475549792350074114623282029799669059414764881137046631648430722872301855120351845057156721300676369456760061528593888221928892708741148701785991200846330509651577328233843840680299747766865331363314250461841487818262461861797393048384887621890797161900098029833123997628650440612497045350971356511391817267633697996109619563902012696979928352495466832719163942714349829142614518662374449799767933934421568670002466296077858388558781337752317076932006679309636981320423261342454183938111973840319490271713415316955866423820764495893960530738382352099322253634257024278674704920359739859042813521447599888453171592747653925513588862497169739179969248760588811581390796373175696127445377880645505256213560641027588393303396314765769997652186010634780995625926091993560280855847275634800954724089052914083052249327123371547254217514726668778543541438594755913026252753053924783765093870143150980229820987392663192145782635888597812963870804822431631573161257131241039624701913315780955291664789079876392582851343626918634232024498008215655705115751090756236073743250981794330412061214702193284373019182846247374115866920200969027204798345760616535228491224647469992626833184746316938254698272313592359950993420017809745231786594899937724728339531217551878144045900553973908737616490330901496373573650861774198669755226546821198131514033842055427706748505812107232617859305728340940923443288991792370851742170124942797901403301960098689743067343044608834416707994881864344850540131423396973368238602391772394817831145428145991632464032166332709442921457385985883663954788749471965603599969699565072947347004938271816923191020641014267412839278581077061489492140169022653303898324022389169594414943715607329118742238548342698391142662778683744079914583921861157031586289838417055080402993797727903613814961177939974097183536478856281082776381881606694811085487000254502294575085983985215757711108080217088142748946694714196537021906718062470716068983009595673473753757179083771458841618430792213663004493584964430218701121901374547335034168168723199817453848249729794875955160213165823527753036865604146082796785686807510147944866939791397021056971009330463863538310412254869006649415193878560409806079804262736182891168727080457463692508996208870678139049048773752343069788592927974627491863695225153686526385743121554636582704705822328995367109319547224790415000232638785601607795237739136911997806134339114298954118646558706670688017745404516691005406801194946164937925945003610326288018808793752869371546853031585585677394868200219932041548572713578453462127605220722316044660176174992406235453565616335844143895708586626164633158078239148899380463572195054149793845438809856311654122368948872903312678264016227170181444723565538643253757788323855613915834009378807254030405927332766088453201585978614547814001535658350292084211840267631646756078895439182767241421202907661867258716634689352087574559937111711231875000823683444520546425796392854683490215311547626735890115746440677334294682623742930767689654639733517385599950625809873217481040873172626050652528258278682295386897733548483690920565808962228786135311863616044082466384819023101959953599349699079418468676257314275947399297795394201356421629149435127263281767858782497967043269531040840784004585806014861927733943568660005028984968352162355831962193038825137074584966676920899744388638642672688451049640802888523410814389455125617197858002900299406145934593056544398281508967368642202489933792821363797167573922249506012739572725717669362442788686719360734242470092300564328213513064791710212438491033013328077868933323222815785818538033387292902424290372680642705940781123157335833909449445350743015802849114753657608673472948470222536549698584055489228918283429293858967400494090156130475805713460401946704635647248739075441972077979003586336366455822346026052426738481274727260579547565724062399073700819240867287476886854026888633978260710631663241677835998757593893207076791041413434158274764838220259806087165769055497697260246223712057224671034154269250540275872669898698026134449593425256053987509091524202027215919903202612154804101119709983789548789309131173387345318589632982923115410889889653696174360611922357269842242147388070009259071139066466556553454380482211552969615862765443579698252998681215448991958150305329878122661806660770622137236788886532241145362741758161671969775896857508482463580015192820467294029402095515036287163185219910051922028706302995989144372954826023218812115161284658155767020026165352821547916475207202373504283144786442984514537321117217199750883248207344054083839013211711838755103824228494346354350811104881262175612858595150908891998931991894275247418154190896220907747998663722172149476298629195041438995219265710774907399443877864304275581816949017983663567291305486893894820165806682013501505643338306612811598509748204181977426201692983629051802304299780527604584610789784548904652742363644531440151292826660276591696765313494939033246820087288946891911153515392586601243453014310970053460626784201791112103284704052142721150237452229991125236422148825090002381121388117981484268099433978777010077348649566271707991715931815168291884535327271738673248593321106385968272827064063192180959889951496990987625536866561876120291916011388971633963960715256678025571088078276938879310519052592772717693095148294088533007532346891838478454197301377324858325772450567761660020519070809377787696642517321329781818309324996747899921438530902884009227113263630098249998116056683452110407193660454058596847926110310951908304442296821840094727833734906632760654875300806036269827753704563759892520574239898243624291329756480095358555314546966314352195467806387896135903645905748665544015504656739424120877499081189321946172349112358830110171658353187341756417823548014151626498393387609932374034009468519992437706367265972379115237751639682632394040738483133176607811999915605068725698200338211026439485758704065892231196624631767536178363823848556035164757247764710093137178070017564488030958111979164080424800309854803027749285683626715631562391883853407597178579462455578065554948988138642777092928725662071194373313256236647949120941156596759970321221002246207268755641538551217925381677820012742840627871586384602609470191447277824247060585272375217275906027745138062616007908604498918866787989525870833003663686382384185460756963865248316347494475472742202796963680016997899002700296537652617902314771944695212713522058470627456401040107129622185297916292657578334400726957908897325786304907805700551055423327986299903906930886819145448707699179357399407118340672658375240486373518213560607631762035224646160081634810052635621192974759483573401001817377974098008634045612846962857534071896059986188500032606296153407843554323705324235451000286754651253603186927564630458273484676465291862973208771622579329654043825081960002027107679165396143181263130756914989441988615110257019485694966936601149650888716288193609755244583496644541939385564611949889787472833132831568244577624655555768539266776120753237298934910193068543483623068343636709996718335319797389696073053776355806503283809567277635428153079147875825939634677028957028866620120195483690962290639147253027367279493134411166711751968901236749081971467908860100309279834873079687430838610843224453658548266463559903544398047821396050587794883646415288003641972734524496517555905835018820291122249907947664931617686065370349681977819280831603347869433807888859940120550487020783713239796744511213551399743044528777604199748355072332449821308089265979268376025911007424129995409092486051748967058759136056410849380789430622958105921573527931760517034268704813909840975176074218716422170989557046786658685428398193742917903917049954953377206474980550102199900133106778833037317840338790408395042117354799348816416214794337081257260409351139006771194945132887133546616350704466283069798967370065687524987424256169425071962239814703950589297578338523817730194681904829378466357736391606374510679343458716645471618369198634682675830965650684944153829072695437192732948482312349119218452629917822475863883304208580907998104624070295818181561144922207730228872270519042983682197058046273215462443736097631193797252350821845872687199469132884659403616344256003858420143918872405056531740890455056683513462576589248627474465186737067823196421105185592034680066847552965568277141165603416226045166273731646777017416475304635469499586546576133537274669410418184254444489314702308891058881313693743460729908266191673130907882170168874063398799550118083147980845333739484022341218277297377787012631515663554113108793719785409756966089062858267050351398739418442321773203167974339434799714610275088933888896662768645930990128213698439918929284091336245651467134833550529807414847406799287156566274299752304664253568004118761464978393796835505667507740879146996954520581253732424380614117917507082112983580865872583294429404331704437922470229675951016991641798853363229971822125616803613337461538592209186016572034970472590703126608344081306383457893678772048062501690577359225833248867996635307410136785042274754143245575297443888149352150882704307750763230809937134437414136872681589133259352032496678561252368417340986177764568520137810774560385294275664865663011790674336432097669931569346610738833841963516210606918129842652359085952102653296671137475425014126002463967839587538198722136189605984253846697079784649249137489104043681372247665938326423685873279777834182756260342577475267433783830088732545048710556419028381311795127846414204892233041385655090690627903559402318256055178940011140192247950319983370145277631452565705360287660696299264750957560468698288943043484070966774846286846460897716033414552986267649645812216583516662130300297011109976492025467724358688738655199966048151772288729721536940672710666139059797465569379517196519467705851301669586816479297734194805226500312893641536166972378988503310120587648233511031367681475022211899886302152793262811174722072507747689702699433752203494447303059348912406896326385587710015125484120767488496688793160791536543806613210759098262493195193526456250479168936752078856802516505629686977531565314867195303721015589067687391223333482898877555276090473567621372487405825187681301995308344117080630899716486856587351178175978545469378353826402773594773285064223999150713530929457893761647804706218983102600948797311548746092852107051773517893724118942111334661376866727590102762314927082820256462564666460889755259127739081288183632279334817051148103419783957509637524102733691069445189546377045501506550168278684329046126098764813928658386645291577427740709608921010422196174914424989385282784905460488562000723736302058120856517916637631356821975527458896274403024379916226796532047085250540102887376361628660089290666934173148358433920600833038352011346258526817733986127576400598142383024587759237253184306711282576001490900742644150972105117652156126521799202860549678667722068336788793112179486552644826886049369607401083134253807583077507534696039517131211383165452123504657354947506856942008569883034435160923089173830819366572277814400673916419576977088508769302249586071575840690234527245024614435932601350233623145244885717023167260671735613315514376484955442853307573016136025511561166547973408949308636681712911293758307374686177322037404826560489703259393302730925768705615566656298030092747796582986640606832418318471520164139438907441734661306969840241307487187308451545600141092639612613415628468262765684316737773325717918264355781324255671165932340017205423568104072568428201796961258169630864275629277675593630781042823898745423357893362169069819093970193021090669531707269912840209583184267077628067227072238949755920117681244392161998210106429227400869421351164144352744017785465782460681066946396762302266401805342392304679926120660290255769035603343611701000150899731401325492661103693164550333875127575430184957148818716619732118936863184376841072578253278500365675314674300153568404361788514838040945258278894684627619746719413922971626477615034655399991690871165191205545247650556699920303601936973383612348549339562181030187294223258828460192506791881094324406441952358805250679837524223526531975582930725114090296596561021554116346326462541200522351158767067291798167394511310988668043926784304481306417218592009293577739295914933762127349991224553743596947947230832689412660153541721170788619811200906321818889457761489550453316563679026758751184753085699787777043061633100704736049933473967753729339128024103154705439497618845247419994987921891225323003109812220315177642605920917541769548696291506963563798582606554925971608329020750009781013625175412228560361686129726161727470771726287197671640534071344453377887501779898473668269915085646106252706941460230867179442320835730673306420398743644944955464833435557902774924569893823484385829246660532677722682363548932752232058732406613503636932397881548218261616572720658479960129952087072478216461594504791064962982076209467666228587644799210897666865577593521699577641201575947536261322683569403081768188540302018038790756175655546527068948858933209306864366235121494927702892359298809862435502093609571373831131148477163864904490598422548651721333955266369599175774374785034755107140702672940519938188165422559863896524785861986155296241216362511505426355857968086526908831013779940085698846957521693106437998256655656460488502521419194213532390351392914147243128547239583622899211789426878319195442060256224440331806389460427774295608561490483040462136224160257509375345360813624969870480213374749301211952894490713324561183870575456642070741114715812188488918724606213309681714330753507676367223199078254668753184993991452708462449040542587294291359619498238084354934196018632918354738012241026631572812611620055899439514049935336095444339033498547391196935896280063773259076807431851707800018455473837314722667677866359668388002580796148661043549340196826655744301340286080367756846251217549030206203541663101381852664525481705952076729658146885009261427349783551805721439409872315639091958508982387042893546406220506368866485558182664317035761625643754066631627021714227826460467703468398397834270463163015826584148836601383680021994508635537682478714850551982252251669921880361518115605317909288083842916535133070790841387764175118311407078045475219264374305446567708080979813982990227835598895680798745819303737674241102643898593201184076364865777176773151549460755870595323012698850345307102620047384804880290100593587091772447809535342691829985690289245706961851023994999861641440213192205947601418814816709419696830440667714428811268530006104366425034837292160115627166345745608766349127040280171389368164725825536548716034605723841568827341045160709716649853451648515256348166743620278281917710998499484701950525043029899401360927553609132200963966739813120429856532464054939661889130798673991201855008041782597494213032544823304368307992701879902874011355207912218084288436646350055782554867314402402190438416783987333518725169259313751456182153685183327164315993931332917573101941937899285433691122270796834651244631789945622575882981710463409438714767459553571307919432442429561279765239793510041349583123011085440354239228654432121843405082531585720376290379376345829992729580340899468395571814133748483732790135493794387650259921277270059330320380224824948965527920571056532325616940645641795775371371795233858970357161307149775690138299734161239603668001473374934799962691344498339816781449280287926873787961126908639295851526760984756353953956783963096494184907026448388777320266117569031023217551658647406583774770638832575861302184756665639047466965463525269889459777610752261521415130351734587863113222043705224151914088338844235046000479141542962938659631221017259650227732671747194829843441671574076285262923224131487307751676913165401534215100707403019510068093152046918704629764502912141306428017560820512738488599016824207315013036183664681762477864477947859943429952337439643441912223242750417899584566286095907512561665007793917871244711127668104401082272546106541808834733256196250462563914853344128452811888642245260854220472237298909589945029954564673919497726311273187126802708790088587713817934009780502048456455059731463290247332721828478856464454077567563048079819416849571879967900245838454920939605960334242319319657546873549732881985838478889030957021923616706407977666428676610885895744414276549923001638569001760212600198627764631659522473373984077570522718409235286861798761502885866383757665872152439113276994818354099065455909869922146355301012216537473333317362349804991515589678860036796945332049685982306366936001865335933681209901525781215716725837882175416593668605504374079783950586318949115785953992419074741194210717356585071540092083994694889987386709846436828700830044284496682236477920476809198611871412306090823025988941996094319392660308990914313451887306215054759469675118672666724155201402915240999375730810707528169081521712172214620686311273585409208719311091832520793284144206339062794387172075510741840388531186267450123036079491224881465156515390222377312411027982490125021010804619352328413135338252424775849286317920965464940482185578632023037402359853707928039583514622828252420776681841179712226190525114369827404070249065518848207339211113429875043926593218261472978785897377674674475925283855623890747341928005639044074281242059312733527373933328093247538151476497139981978416007419166008176165785623203984399106039106515224593351087881596214154436730160499591069726854137876204181652439632507466146767212368309027592562007535827962361473072618117378065356644896835228912875840389742497591261761364282308361741073469767971798124527979376843153194617072167170239472963137807142663316255767454581422386683813625825223378599710166442403314773519726544988821027226127278147380829963459669387785005344888430213286416687620175272736685919590913427873607107270712257303296172426839913723236473632517735802972789560159386005760468148307459884112354713437409850176389586318504593554175257466215842727376622908958474587455933370350815057729873777987219745358645113920836982296517582559313730962164907052442419779972472087031277390359175226404980481811955234041499957976114117499619206364313917884476842629851826690838808317499181456999475363888173659596275390304307416679840617183858324697400663870110353296750040552520865484076769223187054584448744959320489055494345412400603610986984997425382815493569069846575670972687415849912034277285565876087558818571169661322088092879064267177939231599786497859815110602047059742453059969186692381274092511074751913083830921077799766906015308886524138870854393090209169083020122735889419610898282093206301968720535071302125152905806103087656525515974935374414886329251643846919062873613255849695038921657992967980597902568384090494899309829052922672874814591475202855607725575216182235753000008901532801388006647296952175402519997840468714245221700946429550629384584015275313356878222133483145067795810126578881407006155789082290299515748611255157485786412387939823944069691267557537147853394357517417809251200069636858986128439835832514631891806474836575461414890257843553890000364118434509498171305483224385751233969092948526952020536571788112169746472009564974053061086414120613518303525038512175560003971007344079583895738380469679155276627509197667937968418356341102359111332674216852629610348569178248143917619904198156973767134452621120856765818949420915655206907405248344131888878257814192663636423257747846947110203467265584461808160676496451357396637446379840545009164592152053218713289589457134366511086420341454375124961765632223403837327983327999189600676758149300352545307056754004457773004294511525734317627007188218373906303158044536837805720711688471424576244067820516067936388980673857387673089865179611756891760397359605392156847635859578493800882352001298447742789674474409978521292090422924577532367939933149262829263373326109490473621485897262604518315872138643813749788290274578949604458794926989639829420750375534529744629629599550299208684950976406408236881728106637351869360340210852554943140994856897618697018246915268798671613971407537129262962374708043637753930567336000356584851091256795328800319401938997492910980301214219556669552113570457574752461281699370650107038226475140375579322483048513339586078895827783312068216073125801698129604593964606009660914569073763225100416142096538267871657810373856403426233771305670373686930579350715243188158486193873552259313397738644982544371602640545690766733648190275397543209448741528200349724664766294671145742657245057002652238136342511337302571059988657813631120729345665331956264478906996502616178509941370627384295347272002773408193252305914628837383810051673521673914086977175337877188935217887783295268623929708492830237420891540546812141001686017974448228590721423993065746617694886939122206391341409180579213621052959060711963864464210407400534014328002065663886607850487784907424130525930432073188957707325852746468544536171186334576779691186691764127297247535341130866344359458094534453547855245315931751397546109259338875964131320051576232080828627308177794318378653574585738749537246065856682698085185184596276012093655145443466209923227593139927727888044456874016370581823203299438415030332780062460251777717604703674601484421454293503562842764584167517432074333808970654293657841934154780333663719230621776264253181551084723359270194231965171414285843360801100423240001697184063947762638966324659783773910363684496740191461203572511987193452709249120580260435860363327835559336408412862608988263283003164994328179945261141537649013130524089980700516530163837910660355016868266152332033767829573999953363772966935735026828810197481836077575342761899940048521707709152145964620553270248521503146849039787157658007337380764034418200983017627897375280390599069235840329168404350346320174926443034614124202888345937950401936437837032215141177916427392043212987556629982504182399120756121885001335786889069241738410922805357340577670347240162538035332471315462538522741489284921992625472137621219453483861470946859846566269023635797570058375461928388694993939961542014433457929395560191933003580123760593585113492572892168044553574953906104970322330689467716356293630589615266380158128698725924571420880721093012470533536572967793827794087900671010213369045362641704778380171687186718482905256231626789002286232851875423041948941398398195051205383904086198959595204527788975610447692381785510923504140877597380208698483945517787639829227312263965907382552076527888825663267238219069024992404923354967040107451889743707626794322338334105244578907737400921941577916231363915229331458753555274263731576239027915120743683299278310484429289466571287104197246285218952029995900371263172848762406511157585981527495128339033896885654522808897431115699988773130875655425753582788651529533414527352060827191355978355211976853384525634110897743567084248240020744422222138299423490416872914428648831332750803614866029000506157279083396499590893407725529986269765683646499671770128924992753233854784415447558857028751308560944045874528476357325080651184345254762810032221293528245480971475629654997352253891684116691305224778820796645752635034912622170881069707532972674760057671267538077547180206537748753560900966154199276974978817375083293011464107470401047452261381675287684126111076257188159477116257444842569749575134511525796029933198899711678272723200699292960812332557258793906106607353340086179311107248429572580056539958953681803518161351095942809390387647799514538397241747550277817589372192355276003116158232190059544266858017948661853033391966822199570443944325491145930550134399564713068753181372736718510033076564578510248579673994459868597306691307885094018185221180908199627426761199112182080755300267814107138548728778260540091230833747647079477381588171184093836879606170842130400624287753299228996259536575114696020735850562891734089476790907674658684921314229790334108369564201098564895180168066063384047986283532639941978865040536532023416268294828846166553882405247862101729401479375907574293503203302353624875205741455217808915533294930171475355023488283377323284102711397938382774226195731506796466194884232505836607856140467634045818696997502785606573836657719688359163526385653692506143271102935196413926586238150855316516039569933979683634128652779072500465085429954856813612533967953869701213444837781676575888918755424123852995838761420578090656233022259109887994363729543641965992952316065334411438687150458401989989843023935890254576715515730053719633015005274413510294246084865786592470677315451430448936610688205590046509426590240098866125624678028611420418905305649927860581485241843988480612064278854781421998893234396682462579012532812364140908321871683926187443191326279393416201880362516888443305208457463680464641237078978069172403955924492574292633143175318546907088424752412224045075639202770229471118504858323920895183570570074782007498099795388014766504728915489001609318780941840198830499077633389711011589645425801719862123490733233692681882717303750133100396107865850593762442179970851025757867636925598967642335717909911374008818263204299841876714384319823534404929710668717410074487531487956189665930732051296687659687394017053272037430949278520311706357937686961551491461257930781823116553006750056114556462679828800226194390897114630384515868702327357865369198384302380305768975796776756867661690669380149093597303328481318702865563285721239875878538705450005827433680250972287815010357156339206844013069866258026162999532921232595298391988098577219024075768829632768953106732374891771972539850432251354598114125366010849991637975587891057030643209429787609917779239898258222614476188212191568193510055608742386530197429425648935549275574671583829711866019939391111909336685348049952909120101871813457537669732636773523069020825617486365841213546535803546994885671461561879110269331687255675483127363734027116325866189267571166984137839150778456478007452979747104620919104217992316309421033689791928283097875136121887905484495599580398081046973300809685264002123713721324688148616156530531162970580401042361401796459071215822786791923366757486151516332810229457430877990141393804042320241427102420203098926383493312536248903586802733514042301459057295775231268079175518298899822035146166404880417165884062144182801725945491433965837953291736356229634808377841217740071383138890362992268876719636856529828843660451364687848611077367359843542344751543706299950300851806840869105557414316044226950054837300510805514629637202265208160888945651133102734220904072190226756924843328037177999527427144856082681933931555201754414473341116218836710106877279869978342116527095549376284302723969008572919649283361255172913518684588595389553507603848870792002964324199791355116565613122327560512797113885513692769925251296616799259313746408183078747519873790377566685230724386481728798162636076314172648554053344747611981476962318518224115427488214437594578530174945267290876800684355863291676580564685858421986063875632028312534200938166783196392330149041443884429397543646086500784275042913000204657162859789229018604230216553819473679900542021154802397978733597628717054464238067554269114152521818722962311332392573695752274686507937590872408570966478803038210000240441211942290480997766350311860746661448638765130408083048345812958304947040590015099129019779336757271389768307193622851214374217716544065068985490920980193766526280898300060006788577230950306614614599154099470119344981029845548248198301443714112126958451166694823021300078156044533951777053227366898314538717948199609181425683656712456302413190560464841470733757120785572983989775134624484864302279338862050646160120720912297767898567358383940738052518441993593425917626342800863858099191354067837036720967872064161872863262464972936751802533433025692915332392654927181471127312978581264477311093236714671014412433267452022725314870980793870723376463185148812365446873421785418903413514956436896145588298754062871199089613241989842352510994970368794648611432861668237211143511058934337700734009716587736169796153152052104227495664177564331138371547066436800091755262039567121336463090024520014242703764143527978442074870583870784424855306964023303542604343572522108741177967245398431123939910949229826445161755662169228236907739497082189291101350689413155294992810597906658809415258829002662429329059029479310604342510524875988033829220460789451706039664490815414546154688719931135582375347393663234114526727967142153891289140070520415815478618289639009186627557477341904684757662291175125557212307934002770786222147520136606307097016650210168497902657654052834855581976925699072241836980076291840277948604368515518376568170269441433147257891125217869718655888773232792443999310631457269073493744204893110442007335217638071643327165491870572655745242932756726487099803639590831953627286739374319905436442493816886291745944752546325677894434101049192672699573068239833245806691951144551009633159483582234877928970964468550098175574063936365215815345351319929012686948586321959562217782292990349548558767999017244526564928722926330469682047101760042814067207371882995053349419333417104464845119245085304720220322423072254289023209968890638656538675236900651220498183834009690110242980543827851561555061656357213490425274656270856976405384753856024932946299527099449698162766623060125322927839340050723965127169826870150954869512914377677287744770511866213917481075985536128162181617565177352964463094089629993966005127682090153293169366089839299147235517988899308436208443239490818041769969229627744458423094258442263257488618350035934123097849907739882009819247808603463281819227902317066479281640824626824832699544257630321215229051118376948271846419901459678562860028626759624063182465536545751630950465580613415439377441565348425193359416862357382475446505227751557722308667307479631498840213929244917315931412106826273976898090282908619591881333961821902952936521800010466722879866667325283821636522642992123891922963349448314091861103749769630287492336699483973898007946281049169829787885809853070869146526470360286528237238252845356677447375260679680269524632659587528040587625918373791255656249468747095067245817341698994275662259187919992903744905307366217124798384178963424922385040541517614284425972437352337381954408438861932241244304588363347236329897160230642439330322753767947227646633299966663596789664425207260765269796467124475134934053869850711898833949332883503209704017465888466815259022740618106993419557040569850325762073015642591961002256079213242442672488311753953577244972149273360345308996423251252171148790389266726019812178011411950419602890057613893132064781801638115193157665223306557871949799553092768475484661113308479362927057240492065289769943320530585686194476219408681606291923156351986268746342018328724130366782180445025250090107416811776541383875915397455342688000500921871150970242476875349793795622442584034522511312069370671988906322848396141594935943502985982966695995407251048292683001674990294836292806753942088037246841554101500312567949815769029590306684390944151861663871827213193387721012255914092656699200548330753375399250155008433416581484111485494037185673972390906658930140875950882399650414327677932194601265798167007954863253987974505850870528025971841734987200322333272846413761725540315797333239533778325010950474107799698498668934358455353530046691176022402141083644116560553909198144912142406794542528366885534737676348729171985887248327892812800827847475809357984940073923201593471981728251621918273354110779710386402261652996381022275494171704727034304130260447098195143642389624678045470428168674537386539951178902728666441706435123700379971095100267728496194848974500047505101767380418920135008276649129973809088840040204678801418036853287378879757436614438267742230099943926879448584183094559569075623768104445222562552439041053425089350773920476365016108278090602490247728874745061426512220013039490637729071101042863316190920325092178538181704601972369592971031604260958266589629994876528214362559581541341619256043728798410934837639854085940488026908848388768837652668787413747533708081282217311438780079288654565378954542766560524774077947346996614277407632977655487818194260670019586222412428195333859700071024583570457657380969294022741789381594311217093388274862725651122802933973101964498894565917824205362187041416603495975985924375480257403407958186009541107823582873387267126377490454420495540934239718532150491135455968526794455534810381965744341376379863024381660302809456892450402976150924122762201362699486670484175581541181543251181952918271837088987044162360016834723671696939813995008670440359450107834168898878384983308794122907804553234250604195867362587457988795681918919299940585671888673904634456155602670447698773033557902445331757759315422672707015740672099481387256385620416425249143557570345706345691733510606834917154612652926675698152976859745978380850689831502793333055049454345235426423790982416270399224426878207688698085925367437124025603309952604877469653872562195853290572902316364729568593377419142283894459304528071918922039413643313744136453980464614400492950636971369174426493451779872590197930791156617207486057417736663606799815189951376175340734808706046783122770417916632430822378792518334533869505306234731565165696975971462108649672253658612728434627213568533398735635476712381748150746415181349841704782860294343185611800599305713783393003953436775819149305170950054315726749514152626582866479882596810203817985915152379187586969843729115161596407156530247302463787641908858131564162320238286849288492533203864144567291962588422413579937178672047285099498815853372476910626279837486195584454008177189805270210988389556998686541579936995735190153422305316135378022359996358687821786200117317196801126227487726747391160986764273175502021007661858259183681743144009568931864263880444022286039922567635506027784431849423242069651758353107089130508042265295645398993579072593464071115852918051523035535699437964824927287519450550004206103252452180478567258228862727034820791928207745280717052160429206508875627282562642642200158512849049650408324569597194385475435833571972934216877828445014346751028695058577323426062090181738676365744724042476329133375927282468803071438467053049936151751840851037025063802272751153022750338984891452107531460595512235250660502132518449481499533837124550196882851908604085480198255015318971279041891890311576508047368939895261249326054271741301788400253595754972239487396623573918042631459171905614102239578029355620495478548396679717361611803632461708769506536640965424192798869104166862667978920232089385500871456920507798984748341223600622819266732030866132396929989549937402877242438812625173602025645013730596985080755399795107630863879078026583242013795501066690561068694459675996980808415675480810635045573483085875309685081679446845353063281718564967722823035023208656601580633552964100383839466423596176295090560241104788235320511025324251855487721469258713044836770819345698978771150966113825065730982629525083143023594516701024156309402888838057300226900954678294921723647575073727630699110997913953131526968757917988836827784467973120096207008457484383896834519858538914698166710450562283963328515797140353468495905676476049220646235181630013896774991208259109078032138289196794900585586675338317988949372490385776831223060860186003693125413280703229894724986563105319640403331159465259894856002369870375909525351411208832943339170990164601881697823118533293247085215419969871255421591627930760293475637344310327274098530573809084942128840914016791996322705792482078791786490476557909356444603148032115288312228100859954087701769243224324310220621550042908214768051195014173381504935849856234175211512939341238512365608154283117206851007228357580497667314555098483123083792340192071031226699241981896127074697929546330580005273512038726459856437104940175879346877837824974783439685262484441368452528193763366744379532356277585576227148263843124165748480188323223551280615061235273251482633312436794175569976471328465094696366486586324897950042317696421493288351565905782643691593662281457976988606105141066999550809470519653418906257577482785848840991577612426665313586900905015451871327939447082866571272953106567316358692694105040066522168639058604402597958304014720610338322793716227703722255875517552909179385828510668624817097790099270029716384580618916780566237558601716427556623359412403999347545239723624631612759255796816926421651249774039010772223666994188143594920596351966786687930446445666631422858488931165362857049216873168124275125799580949659688691646310366658627494517618426839293071239072538353309680878980743106365113648510163977807100120606856714259622233341896331504633963478288892011407759313391516054941332954436080476931656081601447742447183141083365841471868505317479035174517677916854655270671603711577467603450560225010465325200712620999373402851288205535353966043165723141993723650073247115032683956523598935866374961123811137552053335566401957292154312433011782523908328780128197138354944147255156034076095868319277420087202963863571904388981990368327146152365244144268552409706929560255824371637268688163808390342319048165141969956154275085972967727926445702692509582579991097528492220654539309052372823040475135256558261435863326627127942620681374336989971201678430080898942745668654109280118247796049479198425910467647653646545704616980550655097690374863184227711701231920431181495397228869652968605549236221852748248897127495365743553101515647011804736618850549538925779799046526258935647040528880883324500327868687255357271832032857766584561596489456214277066804280058091372835194047676767978900283057705700409804413263642890555992717806822983630406899534725954065594899785370841414360906985667227778285587827138255900323979072098268458166342734753002596081664609409441704708881555820197544773974517369206706078996048629467695162073058905832814916409933763616644397795801195069468048255636811466441810958284328316223742044177789224821109763878900358073783704961651008754758771936609826471793791156914159972296642601279769292055001576994135774538488566590991498332735627811418419470842126167872978186992218485965138853512278281726818520933655621208728314526464409328194925556192189254217516832235309732207199940754765066065839930144625436950483538050241929017479338517695359424411419954078856091938516125182864594527573485709048942554208155758905452264935582076072799262451415599884486483201599096036539468845781671904082470987558322585916651826378336797197474061085694775545122471351950739310171360221202092016042321061898437533345649775336870066769642097852456522201091223081114402153435049950812829719578013822448226047151641523473263883213691160822242736961944632700788843840768563388565498185371551143076993717550919154022012048298169464767843891057929238770943529110296238727397397502675268460515926204629360330393060329162139283109965969380053147455088636468746289205845910228884709886980317794492760194202100467184154970484247711157466343667221102697207198775808506812842495424377040558205962307311692404271069066434484358695123263017652201092855386801840211379256653071031001947983290387139341986868637296304672979040573741896994701143046406645587826386231459134221003110720751805831480912961786480742294090100773414905636151298708751329294137942669775489724462713112864439055726840900240464454464708368497060274314914403304460075519491613808533399586572009277078285337270754866661416199026424013507743846238104184142386308850032633681219905879016901556526492545951770618836196089933900650933915778507858395050017341250442875239982533670597264539819686559101930531771153119471564443431370702436549864980502615226482833636665303915298838588928242571502770177141669610197584769670642875899604000867973631195423205894204032436414854105770256714547023317041951492913279266918744491980789946114050792360039723714304273317312191287212629348706086689442228231321853590713934428608298920045641750426440512434900969365890345905939118448876554853077655126800879666807686418178580301502564328486018200939531288219545546899435428233754993976918983883711406751757965425176551974570475932691265502160080691125531212505454039500430739963479719109659430742202470337774599074535508474644118658945189725246217899192505138864589383394620627836873522512122291714533211580295355030282973813195724034716554339630940682906511259509380970838542768995871469012421737390420492852491077785016821808104574348923699379415853235393246359294670094734804598407411409085441149346886048921343716695649196383768692981166695845142479377558961189946506386819315333466996904002097763160153252071003813665312239592280404552499224937656217103634235139173510654590518325439944655404245223782174949636334491670448569387410246910426242655046896185000814874202928721139290172545848226602391062359473657307693578173339713737023271999977830016603620667309265891491236473473475600987545754008504969555474406793446568908917897031744659626291445963109558620623217602714856053794816872739451786796010261384470971280366196367268696114858338302042629203348900138387324165549550906403922007759762168841188510483927592677176075137933397950709618322771705269361609331957170882015496555165443634325789594621149790964796031783046270860419863291019612167501738867342078361421731567431093541342956725694591223949819071136069009962676137388074606636023661160410625387206018020226060476914959436702913120783374178888197746831421109607967136008685832314271760915570349141217274846023160012906904843959133241156694336905661691602148260729604690142005611398640603214419552394279937291799768843012925122843561818570911167043388786494617968322436358463308323038634168730204777892934180542738397281849683937163778281847310557476917241814878633906060173119159629311867471418005232758888668632938005764454521611268227566630486016634536574296640284392166108662951200582747003949188683813638003358585090851015338853248598573127795187677793393683850417906174412666269675378473998608576210138388745662849117719402750372846427086237556573417689094526882598005022228454709365951276079876380593623895579962868855966803007139150789941027776427518677236012531006136652124400656765448092469181034922963115692346423773560413011925783849501538227045819727492404754756328894031014361488749148774159875599437834352658157423642175946382141054778039074134710678396607471893357141183032526527288224483778810798817967833081568369611042724713015736521796762427071644833834443373910694240376748574550658858209319808554088691668457984156296435295844711392936139887837216501051218833287243748496322676198453573529854572273844074786009019214863220580957286744097461176211838679770947246997317489149243339385406847747289880962807069994908922404405835147668235697016127326174496539214097554822211991557709015991429819972148793710222801577560346798147604273465191442101410298199536121080827449931460741906471107203821189466893556484562030054939002589012111658527152576902820505038026496429140933396230463469847273030006997336102921601244151026748277112083572849324615777360851417458945716561244893479636525187772705682385734722741355388868833486443019905049953415883686050648074019925468083067200236891311128936510270050986534966241068449908924720249411400056343139932534161892241406666775407654835826846975510384112415105896763033313547218576157132450176178318907429977905149903655192496824507989792027920100735814767099771777353424066664073643516232892546948764113199841872615696199541119116501592984789389204470032824654922427406767720452253992208131415305873926254210950263882483460998907799624251277659645780518968656085664964767788579865157300234150790254508717012176630409621850128940091102321006513912846756447654091280363862991551442487311437132159276377761155423353093418732101983175286014149434478603799971034822955089715440341025323528513831136389646691825161739766033788231557054836340769425891164171501440726255379370280758851009337901956665962690865545488903888995825671155927009049924887150390611218318401639400806038617579048982325834129674716156215291929840612971446637436023351491462650310174568238708313692073458172399165404821230514319439435114382602685611537628144990906381593999673349245019542937921761017791487993988102823797569809343268860425706324088028023916322816347821088454532450161067518756656554300906736670251570144974158488003317803466985691650293923899005458215151194776586626823908315568630965773231843423825453110867410931402277874756405184205950673919898827051855279121056816327812755494957377429733901478776408461549830246904971328315910495326182889720316336806013123628362445159002388436626419112284755504099949144497934803502445211041482587419014758273134476308661746829072566087468666052109130760852436708228474527402628565534104246337719154090756314031461430707553823693727996974354337492547681432431718257654423155651613948202610447280037761620819068835961412656453181331470573639386807412601561440948929035280371601593504242646823250866732165815311121557435294871439461081716483450965761086118471414320543988263462500712248148286504161076808539850272593876209842518386232393391428832281978910863285631306195526829151213813051027758488987305757019197809848562716793916683615662789185216916029841562302269312555647836276973382268665924380925096466641063254640508953583639038905377712362732328649528679425669120666096344178222066550668713751651076815475977367636034763043085894384610003910773442617251648144832251956574727015840405418196312952260859404860165120569606644711146781035380491629547742793434205150245794138366876964826173717393175418128651978674646291070943747729313676903256552555959898818949949643111854041127193963917013205034469222478295236993682966924185510672100386703202196491706929207022454180350759436960943253509396065920360247372592618665740670559081274068803292683552402679349139929633272272838700013225578874175034834764127397690756428375808361151622479613095030023986105535835322474699338023462035299988688902986399458695317985118390608571434168492054471462102203967021086121011041094113993098680727730638044797657939045587010110083260125752203614196347503149062544611658603742995966300038457920097681072849839025384806945174790043708894691513129415105260165319843324060891339991656187820771325323888387113147787095170910396606456961450999244552890341407950524213959788187759738879674022223600240338138904902798284152930482978142115036709196961218803841589454759213191895851328902786730170788519761673536946145981547562287856650381626588922554879391917521811893292858071645761643009034728919372977311109782752074199915307577605138052612634829112983129138056273985685812798655340269053172488846424903483890349824690812239362358236950834592673203325959279359582152117222191300736146906089853846447296294506921836197659817862602771605932818054069533789315188919095728319565765024046913074005190826805426589562818899816218332751214378742971804444105186144050856147198575681713708542618397637525624784895778949935679871100464152977597401607746421149243313389439544061163894274958295269760651349765129800481843463219976894021609015117592497404158318194891801772452475701496372121492233710593587687423245295471437153835557409894250767219095673685492366124668840972158556202949338161231124958336814981102124496343473154699637652318172506387913882181841170282767868688365178608128875286232353756163586946042937848322546824213590281962397088859990569378354000617132309944295246853130317432031332419725767520220644508005478900414067583323369621653383464018120738304326498111264027015535907777968110615425943577534884023061805308694731598356294338792525136352014661909495835472526069464676203629929851752476048131061809513710674737191381381465348087596603322273069991023134755219987397116379625411368472933491875772938001879471958477149151284422963962814192887100986034541388686891310464327410111597688025167674232544408747237290532665460369712050120795079573335771694702318235314703823457819262490306675482412419858234503617684548160333093647279358648264677142081506585056431409457063395556362792616160761736049425384423621384157086588362624820768939298901478136233842196980249416286352411581629614166192408781773928790877938466525007938435022513504561139399777131867868267160467862038439750546199877841325879122277428847698237337211144998524032943096329423667505270877358760053808480676903004416901164666397389821477350969524257728286565121772691043889369559546383877820187833487936902815401535337229026811086655588593273782249985793944979758218238542024216861934318595437877195419728090721417161162690294237731886000194598099775310937700525847334095815747605248977323068028955456808386985500096377799128402549118312867973958430155736308121798326628542684050546262858925719572190336407835298024332880923004328781564124948949014504485356453585383597234756482763637293751024758450006573679159304277033500094800742537632049004704034020617115998859720769649087858760616444527442653841511925877779470245729799930069733579569482908560771103482909438289529014979673931560674927472843962313086120945140196314549546247089305957840664769836524368225306103343058392097830392868427005491178557641208336933495238658938815196869052893263465394217027667269874785672274408701977030923245681168889592505882848412726338282752133208798628818544147706417434112388264141786438168643766958749345844996138139749645349780582536481128481947245109228692205223971126577478546360775609871829037678592532015280286134170805079428380770165194193897759591515074572155588730725285644539049227008334508558105030396898329320565981689492214893523205690787376530720487808744297557117874318788093915546463894521653125132662240574427875297135669844430663799407021762874387601034497802586125197541706958452995064472753143060645733180373196338346161474307513192228972210271486715087191155488400959166499570961530820413057301946583485640249627890086849684240870128692364145638627007004013910653833551883509902158049822532113611565716939467884081285963149728520385474012355015953743144846683270956089224754248427006824967962761658242211444612429553368353749064585200759062913518316769419906467512377183143203079709112786667069788651467001922730355029224246484469723188358738236294701135457787345452212463368207216706645119752273124172561701590602483452853054072615506235400280991088690021324163125556022379656436092721197185217774223023864706996541697844098258114876406686238678577652951269866929077186985386294710158551110599475618254610125606992762638212892669318316285889405605548905640307959018476684120623446475900468865266005184161106283813909476919233191045139753485499057402894511664497855650119954884059424150540373726896130503824764486794580447758272529721502902686086266800670783821661338056935056559217465046362881820190114572910116894136265964718300285657983919775663840167312732605970363444358322758408205683726519519466867234838425267322395161889124372896812315342813251040436214082880200072821858662914192311424631863034494829981306244477522624149219695569244170896893457643480251268360206359429797020069732748180822263025206500418952236189456518563649334846885650864670995499081739586439289234922413562725643387807367798418492531007208600482272804340607116598276638239967989791174780975852780006381344310740022345513187651120119629370685363646872418918180310094918704487032720073653322592023227813205535310496809750254699682138921027613957771112523345434431031355443918777349227012899014744679224004270102189906802432330366289523372869546781018101200383042000485237101936095602440307674195030218198743904257031588813587027807183280958947189084099250345561560236502741188153898490091470969846474765765833754607452175302042844344304462246793624954855693796524128394917851346248461574481439939505461615101257186363859990534504976094617013936675571887582078931447266325995324653159332096794008695358664377002208257842992911522250797084106593953209396937481918460681548851413237465355115729003057952142084470487633270529290437905174427932519484214900015004984153079397570512844622638930041251465688730329093919457251441170064947146927464945959885447618184459790295089563651397605973379936457001700425744624762265903727707285940564549950339563884947947748461695426127916469293375765111231418820902381398214725290491076797408936082603097770680777336461967368740034870378633413418420364085841055887022029122381384002685480266830085571706724978407829731113877118692951364405742542182421969785200601978003799719658553583472333373945757454415218543057299307665494002661172650654497867056367953516928072129694882570818712208361331406697674186036564629161232112796427673474089397397884120783953058215143825846226829639680600009978463044461131955559108957129044638171408916321287504839692357798818163155137656005786615101656023114267923788198780117430669459856957856235357790924283495675351287504700835809860877355185859512842774939367892898594955204663895471062007209763884768322341906727740646179801409724042617914147671394424093442118721760247998403500214594030686615950660546057718772658992019090538046568685832600991073323068079773742259471011104766587169904634198314472001845389819883971034057024028434474925764225928028391791485318911699146752967639459713803245655144562967634605438294093044575627474174087860936739387514481581003748932926844584465679688059792285370295648192040391386985764509136865939785041109265599298289327304401218452021150707886124124124348513421071756732180488211630979516972332575578607707549967890924456683822298394389390200678245786456337741928739541641638176069315168207429712320852594102894311188182016853601807045273639016584312186800466790092864206985823863495980403849263799392486511249117756415739680488834803186644276264498599146040088186747233025763663558900450592813377946684703658544932560069200231521116454866019032878383014300303548171089947296763152259804628006407644406007232826063365267722665333324176966255081427719008628297577273729993886062165373080348577396970130256909373807882983711833560435561553574649940155864099837312076601091511790005352538623711439339214025204605149911555242120547584595306803889534006398808343836850372937995166366352717399454273169606249204728884964843121985388342994851641290839017982124546328260635787899958300443114808582022508882868468964784372778193508601196647732567606935247365444984030504125591991216347326273664265127189611001462120639045535174949009259914893447977468234871133949767846728276690828301035414476399924204741131285008200519925059263100382394411188449680139957885512962667518684968503945784755001423770657797429727101131857648099892891671005321081239523867039995591125422148138122672642411931506396045067165543657940665546206679703731638384262679212560086079817480121471676953913941467846839861583601108761371034082787398841706733751310898991698892992723053806582682467130383914541055786433556296877960848586649107515125821006172983041493380508614418852213683638375206638892460662508579976074640106461457056186822787089361957492679943397050553033914298123258898992915752995608013809593789090795876176986013536938172563855877864808348059570523782721351023770009955902981653208194503191252826205889390618106927130466360376967638149680124027468540306297088052297073428717584772789103507600253662866026587607877019954791785000167877984058165619660123891918480074464296406080582017718041462538402878443542482251429716167698377081776512201696710713122407132493678537548280599609359213807644536809517237899274161026022375772252743206243861688079674989784862226943062713868376303042391430219028951562894980089610449194059344877696887907063863070871456777199230818127552495536328113614249143707206560280922200976000616871762022316248019403680184326187015923089556925720460144388682960437386567872340162364335102232201027453391913283712927807169513981899110016821896934723631922688114633237000155900255494875020911686000512601324251238443225515526611850557529347605972619392006114306695387863177508048265976448746831484342534537463871391009158285250217812950532827359757754046231638288644464742170354139988885614758982021649302580194774593646700143508241132375402715730561403343315097666633102680123758222890105053990059680147960869102291884423231884641602322615422388757384476607920269887444584880399564433082566077238311839941675309182594305567465890051375702744197848080338885032251014855922070463260061677399272894648863004507765996398698302432749500862569409503343497668190355616588441724390759150273499019600491165524381653514714141113536737773604846708032235619016781507790425501980305484850627066711200195141982064427071379523865370756066057300675599941435007790303169039857168350554728489199424894196832198288879210236415856615485421147207683193779081243615547644742244297036922816665165231877960118901687788733499809075235640776324463635504748039061854231188460079084317560323943829097123106546570457407203385924395998174710288714531704396674950711482959709772102583597595988129572532987294644360765256544052404005591221020901601207278146492934170827185015620452789422161758453534057026765548925644231554762699749768450796063753500216486243110920281320179231738147203502288110002115002658023672758255926567204152000800843055859353399202005066094938431782488168562467725849184532053095566762902725549074967151249989507651122635685454913133690112235917563724567481575625747176079522081561279865921537700520749159860859261304760145059575548056723484629311356842209938677216139132946801581168182035964314966105405360840013075184171146153153849757278080432941636443280055172540630328267950350450690099677442391141061630930964877363572234674369575407773961737345588648026018869388397134331206144910720960697956374592597247007934929707893931292927057309157036985778363607301545402001378421126007264476903862211243806415877172391229614276977816479901920567881704488293307063990559555241429288849568339669352589871743722042403569955478390629979317380736820842978463546505862883186222935756384529527565140532580040896079217073481150772267804171427553420106338347002594270488852949381844488347682579955740006882893352299494666570487589770729983615154625989067072244250486923440623552880411174116908416629361622808524165950697347728991307031667812012217799145110895228361114736755181955191234784406191414401881778418079028852660630946733767987175137940946270710358767740710721725818007732967203965583212730596959723355014785272796201523003827397476040396408894972816102378438489632472442450143262867193170778116302183624721744443309431831732997792836074824125436777596490708504121434006490832201706425327253113542999977940018894882446187734717201003005102048259957159136179699675445243136829714016267303408458566906703033577981033848372095817454789959492697288945067244539894889995742283345426788951908466849491205181328162802401206819663044726780835751597574939170552831944887372972614099850992207211234886491135421159414305880550792516763024577157013656429165795631601906141995166551126470098094523193544243412777156876422816437622128020669200165470248227503267684731915069565063545337014145152157254994707754785169215858835111106867414383016390407465921305959507130078703743939544255165618416701967388603073427990294652340838457668300389004166848491155597709749825097638832379151762911212535153924508672384043865129866647967863790012527531170115550063618497494020965124484998579382485829648096736405575642577251495424397802778153558627963507059852188239176227297076288772637003035016208902927395906717199649553293447275744410731632022099733551994939957488678088494874004845348290057888265503134048269850905876480452260675159601656495398819238513878042330510193008228712063464155134278905996213889734232144016300985509434943654475688801732794317757437621859568061837716389295210700981369836915641286658123618111729381152485197108665603780634584175224883027550014165051301228710646449205162173223982392153944912702291781693849274965562499659663950034757021464605504904774955218736614453217162028959231617664114244043753529676132872375918902499243339896233697472916908427955927992163553028258631361472257587722450621770108115959468108765113165869211741784200488402567949088417261217420270970854860310331774080026757939967078671404368645466924224043587399215052500198327671489099876402716974598363572694067939867655519123657719281137091498459569280708017954552001169217144526357592620391080986445398895902835789669702828993665306547112582026841146492602521379006724025126342789565497903828567416361174143282538380075677458644965228951864870867954269904929762590324015009263394997588957958963567481862155848943604900123005444390299467543992059402335539448786852467600190489643509007165232039569902651390050865050613257841611360174433760917948237915090309729017541501721593984068760230526166675610161919463440511346361165247265788314419676549299905415238718133692736071045959140336189131674576639718248912747626197240033112998227725703079775246778856173978383790861708980001636315062961855439786545128826593278700267758484212828893725132105956203635654795372131833929777333815682103720762134368784063826631594750725122474100022958171389523735839690662593695109870636755536249363695476923296487721966572957540252771235503750330568362344640626155119582088560816643492412174296399058412195051793764106240698601674314337577271419545218684947645701226940758067060480205854747627816253060073259619481593732327417170618381333338655707081055906092356619750270294620486353952588258987118302548197495360088924094019307433372646226844644593060432081464338358565213605039120113635504901549238418587054347116901156709543118982639495469214513860230219878346374508813102016462683389882810131077925411894318320739942966965278377366709362262695729689895627283961966103345469401929835305645709124641372794143419243379057053632639913786429257405723651644076629093794453685180277645158065026508547018730866960326529486056438926689504108552580357364725405073838657725147629945682263362758913100414909072715060776142227941521786434207602652981633384364346699335508199745376704053733651915524881809873610885396838079885922558714513881074745745886409401393088668788504299766200024797969240376401468186200711368701236709380968476743293125996026316445923819524665101966947902849162495406695187692420167418195374670814877621255883954820237745193794323538845979791604450448044908492799463476985807201185543027281595497731579865178753789895673220647861068873568565348557227753891285516452386194408120826562373918172424748867682147981159190941575386431266359786706206001796108496460915569556607889057630858448795174304477174739363712186976552652513265097444603015940233934046733057755233925551995026583864685044618654496947518751460455520716606583613217818871006971313172584932592303053681906855581381784444946335403643088352420601687011937452101444353714315375064482959408177005037963009949151584657070877538621601558913306596032961289907544458742049827835624641917797825575654366171557024624658624758273865259410022731382612196119757526908582964282298020282868310689079455581668703316362186484521589982543185011793763998797518320475231522099974219638828951377441993503825976211922658366431421869572914680475842321720505853310191044067924621781269877476274510062298356493229122643144720422010584514222774234565837694566579986331006210709285124185345423970736602327869980210018439300797272493422713238602494860975725887912863479900177007948914732970241088710854505915969107778241802217468935458562123075268270612739629763774917392268006842250541165766274647198381264855992283468559829324507602619717783281400123300770810650750319245603071348348701730042868916676344855054188917878931865895383754751031608006953488520094462568209798063434816271126911582436570362201766271826245998465984243791711985428588905172135303715255912946725026354486387004080548200435637368232277789320521413081919503769056358111055436209772874301986165990779265121547078864179505550629516194268813191792774661090594813350616703030262332657124910698031896179895724597198770147337246796447581917594917916534918211596552850154095238870353276739889977795086962437868537577074185358589855114517571944142167385772569179210635631389653074155049596604452013594069976402990207253839582726096041546574282458959759032732863376922016773658519356707403767302574666028305583687332006155710969249154315176542158524443873529395379330716690066147583325973438407257082492632540020544093707359565666825144034961306734501218857515331257241601289145802816191593363626997509567897393613886656950160289924533726252130784814861312789738399351492783823942190614969349971257618606677590261285418759077304503087467588574392137548457105436048758666827886927538715993095171033533224007677393785802543086677109024403497901098148186567012820992491518221137118367734355767283846190351816474564349736370556462314103427792522773652096584069123562461074904412923789979695199142417539401476404487147995390826240006219283164633314973373230899150253326866477858032026866203056960098965766155581152181897378859937735084001088361597051642317751122504914212268103763712802063848228889746656662450263868062034892909967273565095836817897272270295400487703709361940315599835113945698313009662157762646626274723524403294534366025908645661797680994378527637659399937442078682093086950802437459793038044417087552139793468070636819306709741014359812675151797553551342555352762804358649100732549793075669497922161949766847143271461172569680559423415197485703348004668622117788888814168528771740371763236136235472774193912984378835036084056863595497928496208066714635473138668918496995218901333711775669380239015927434585565335161409739929186475890948470076846599807331351021907002505310198610197221212447149805024447639375256438479857797055855563447503968821121107201185822957923727952401887902666091993736731981468361253906708911318361447890432970935177293561487989078910556292344100176271281428562328322189178304886592575570479115472077723160581197718417688878251742229570969982741702835214731773263716628523781304207890762061687440178358370973263445551301226791611624369985705734379875174335871444852508784594032816044818345119784303217376913516302061449788537995444789058632415603675130772744058212531099888382368913331258195737136211922173949858267779139145564969312436483771787178988301261459596431408588785048770504092084829259691479876939354768635676816836771571366452895304023072001512377847977685918393517195507744772137082814792583275688940001321028965973968474357363504480407651549379820203052476435094247141385976223965364362199002676007744159800694999809320071617802179850283748802929526001044996982788215216051092542085424679297308446097429902829990669959390804431928030261345038030115446836384452377066104173852653515493065363434634558930092461499368742760708661067607870893267231773818712160338462540386824212514772348316847968915637293634400617628625813283869389028427973263053180413368539318088854629684967318253568238021370999672948058312491825236291170205730623916509643909068545551352846381473673820458420648429929674735328602770034438549711419009865355591663114803046909589004721824351336711810342026215795847558351887452344248492155253980159477994582006859536224522708849280352793923513351320121791683262151939318879314715191264711149106447254003540937541645465071239871070417788688145061615677342480907627028365640353444702025726064527335691735194095087965004853518338144623451164513720680500561307992229211393873174027397014980694671386211803362014495685792874421609315160622670745995134497543678631560555784081029930683351859235176721503865874892678195665827696469839726594231295892592543156388607983250711956994767652849529382530164922068996743507530944888578663447121841315815658974487669271659853695616421826256793358972778554534157872800788362638689692856989071150031967807773315705717555128252217585387573790090383537369894310599101660252673790214722817116376081584296129939340918932602188690533837405605995277012267079218049315750645427180668885732860199234261362380215821510210975456846529336222500922237202764447917500741952545110896531055071190675246201817804101236951413558630038037143745836123236787221597472055044349514366292135549949810235360365153828720434631820564840363009148428429574014494092005843504384037403362500160441709722631315400208862160042786131895013618715034476828458590217398205152478022568081387419305653939641644807800605503938844256721659686541711906156639796516900958681509752695296069619739116320143614933276424213249842824049594900732821400592359166434907266529527990909160915942640905911884454416562505906263717630729342271072627728023565781294250946219290751932908909079588714327669152739039463030648577288821943474568630052770824590010949650781435978040425837687601536146611267899812951070130481769874469578204347357908000025027706528347745272717494430952718763644395916884261140127006405501072303345546493213598003402258335618079734499817599013543610800347092343393209265721553675018435073796024444349612292314705126199932811446765476432947941049061126907675615432799713509419974070585770707466721907366170348913513111742763963421327147241745211010947261367266371040918300073779319682087357232900988877607297289344279210152548478286583600120500591945177846611295127113597620922370053174496096658191933554989913751077641604572930653483508664062250312262179825418533121543175949826174053786410827051519541008879696210469121853825377783021481552627290097126599775598291796744712719295663396288104969370283585083913376040162183462905504754511299973891825354684144378146567855165523022886935337045731319699587307349083397267702477871328139172822879493372270099504335568320685054871793716167213682044794415807621976398000165122170134646682624182952621217055971445844752593056708285411355282456376079053505790755896846565326230738748178219383632248857056976217208779517261607697362664499367619471814298469458290138632432444016730335510113210046536379013260366127800561458190225526250677787834706251485929749821432463485803124825564588474403560505655752935024375403022707640897979434313977327552410271222690375251445104747845895143340529749259446110341788083008767962163296051034219587830845557246694300224972247739884036333490114189009961742114817159920293032288140296120565119671971331316368456153009162387324411005778423923785746102878924288691120022562125686494219551192009397946734646831777521778494696216489107537387169724698686522497832117620408546376930058468057246603485698388266625776799063404660596581880812838350657706238220458314170718083984048704420920464597178875089562140762725125993991305756603421220701551237413007574522197545076101535752046634094693431867213981945620090103351812624183277755963169749981363964127062637478354729676035163227064760977207315916768579133873265549628230641085826743427144283251566953019249629425351578679051964177263570524916109935429114713452082446536377725298074782135764049244028340129990160485613686938175614534566720106423771108273230021189902783668556712513951584804123917216070471120116713917652983070543946756974467787703421668438838322740585766168678972242681430902745088212011926861161602566979337308145100755287095928551920919360272392299001830607534160071909938917659873229418571425686968182780571339053867947084467253909242048114905790689978746893144333705630367568478753202538260914712371424315221411841861317339778655228039825759726402077039828526189417430151502435044489115555034791853855294526579751598153602930588609024683691679692062936004583302571870027562284090966672114825225186266581596483950929911249383746884623675094119678469235085982110010840626230127341772504282182158186549744843701840942239116909343378292783310756832392943734638838488882875176604390612534451303784179610116362415674008480460951543926604726279113904529027076976456975733056550358856174964850522980821675899658582078150323457176558940958871214509257833107284042780544981347529135753240862938988027614782987172489251393837357178439165730881340380027981495346936325272816229148091962694467545776013702467856256503527724391023429386673232239107374430529082381173686089814430944972779362936192539219444790388406123035871262133080838366648710557203841225346478719582048344440845714834352987697503093011074615282383072251431376175173819456980306257834065461661952708106150777948035695994062794230829504884790484553876128872286795148045280714424827091822914453584862955011542877338132374236477954024607448501229905146624286621631569725311063808717754002024278593748109152856413257010003507767931946842609803871038600460160501236788076044647449670678485023188885995279013533231318478125151564976826609789475921632911722912710794947112223485723101133602105357087305873647123305376030260287914284321734696719779420477724672209359857835562892698637790028723983123340987936140272466852986985545022238970155636874891505334607767908342186159180968230267043939455211236529480785753902052822118853902279579649755454584615290127481013079164104828159086614725294057434309278609067234477553623752564638017525254730877335496743575283928022778372675418589276894258576762215649756603023926033323942471880952587064362150689953376566585634109023049128234462271602223779065220259018075082116429954107401544503472994431161148060450340794228169860405362382102685510124101852200565713291815298471327252953213479163612122637651345457951690585460690277604985108576733800495985912225717317131234317158104932595099841892449875415150000762666225348473113055612131716113915273085350375663204038377503945016161322929650796516959341980282812820934081433006611426498687986249584215134618161228226091670623025622874381783274475568141322935029297160758128680637597764222278235992731013634843106798557719623180588184732305555767027906786558343157164123891173441103270373297522124395653564377664829290489659217279987994257095103725686787006731749615626884928582078614553704864222507078272079771041212664930812810200347865348745967742626598911854483172120094211290233881186268152912196571128923250482541090519720315001870452796851141359261453084723171971438036728142779307357549137772265591336014057900287708779081138835624061286914175493629790378051950101789445471036570090955027920636897666181182731273357610678212152187824343192487484670529574723221365491121417581049942382958602102972824924452199709132989081441278050330769956959654493590384867043141059133523929304259434560730937778136959226577730529263738462220526565876306926771921655872203065620081471108448831306793913730843743485329704751945210685293111606524135590789603601573284193044305121704585178689452698167953377659469450838355798523014681608431493360761511949148568482207572325046499260492132984289473771632390125778315784243137650658741654673976667812725195004726533338192333854231607768238372888361241089764992503569595837691090212635716247030398569214786258850965125641206945582115262335034435402211761304597943933976095011153174696947137430893156249225140606905337304826283751293039476356018516547663687279391911706035006235677771473224657877389433660156115149599125847574800071620489412215714358099562713906531782786721581852501583943244741637756559623517033678546958327518325271177987943805998253708159729903802700905718661979201171126937440949765565597571906016736273066078538697763221322961839970537970578841172371224909740623967031171866267669065930625448887408896611780660083886015247137560175274990664021335492993121203239257878330241080016217776926195252475471157136989283384976675514508638002195909328158334896714777527976072948814298530697595792845791745300966724003726049067998909511923922474552186108806015144540687996427252006004936303750677272987190415867940219130894586504265197629373977900118502255629704751261089885299377416026483626839664972106627450532839067499193466640996805129202832497839287823682935539282553251641150265250666651246239572018583929148689741797561924546119733393657240513530693514924623352984438937997662757483553575895118844841721178350910490107315302120819823105881546800124076440680064790579906803947912625034141799273808022458630669012068863181795964705711613459352357837621147404027819344509019033093331063585302268250696788238556392370517204346020379999016603327500752406782537235744328799756716870139612749184093943362432724928964769631407299180391170471636430645054114560395202566528413739854652524689486130853622297842893160547141568916664085155220306000372385355311263977463056710360596022165600805066886193076971604176828020544519050193398800253033690684620500667388529065275108965602419760237109086656680849651757509521496082960908740494197372170355377962492832471521875152413684650507593731240743775754994539686596460854397418993884825131887806638645578802236918948566710300790970550759227934544482316950338695396512085095885242011106729545685710770230876672302253086304108187936602784169677382821471738254950931604545188015831032782574698184098370440140073168850623179425678284316529052098764773434412050921601135477097092725297803706343982148811184925563135022316514635149842207333580598607125023428373092391634084647364612930010453131937058683242072122534081909720455913673428604554338931329239957541947015433647848984187267579130696657680156358017218174992929942731549882607632269943104475721103280221675091315870903740620326238419968506889603481945711407007751586847860837234127380611502971791574972460296608263860186847499769466076516865228467271312561341250897243299814750495497975256773557249759894116980734653949568971905001980516603383476752642479762647989676620713447607913291202305891604034019744302740426302082485664903029310715223991765479258388244014123513821124674980603833965216831797465959048474391617351456432848522451708853299537129017454984473231796845735555553096453672293683470274539939298871923958852952019667737160481635933555246464068983189406175257945952084211906201409065247340786192147529607374881708650916004833472788353578087999790324502719811675734107260448638402472498549904188291443918827753165074391627294948178675560931900251822971405526045597229756611717244497766892410005864281282336310604479419277901777172208401027257822318867484371984417217064692398102331148579315760224163999426302464138780839381511320866548507929780734780115191024605888255043854861513387996510483285001900597111946327164463193722116269432791168015023287321867779705162082404216082055881854317161052193610665785154703497586410511267263774418089355595768115222348221150770193479623745272401279197663291690089654566379786750541507101635427505007834564368720556174260146517396166836142341543334920895962857868758359161127477810325328023196476465015272423791970825832698515664915939665142257744236951812419867969736242137454024673048786173623063091225751940827775008072511701609575322213636611297327191077022898074329456593276128897443441504172798788553378316781426489416147208550017373615423635460440454481161587607674986290144023660030413992773078617088095804331407531687209919743860484195252904241422890814509671943744527353995693829616746754621138984595071968688442360487471479058538185828106636475178995097617627096770936322615076693602536945491259180770891591941283251554917044607538951936300587690237597136372890574226623132049149731017224520928087010980703034844257020394990719085414200520648871076991681151750049355155809267966087918373855756010399982046270119513448082904661646282985810499352054887298839477095118196093110761941690035200426963491143826715874442320371398606767173223590974315333756495861056843206816306010631989039484162517088048485021980692415545586185231325135302798825150518938036914201731864512033585608328986605999790637734317411394066177370879700926211451845911610957068798708589788625582966739622546330610730178016898998786169389983821836437509029777177149505759503228662568160552355230060205660534256859274426009385563704651435916487495957821300673961319012272961424457645676425136559793954451637151195765071861595646835434913602376753216486917399502038498663264553825509466258687869574893067806664011315557470814105661110240498856538986499548954086199838593574967453823602557137093970564383327939282172734344660564636549068677336888555891402254826398110807164830393294959781895826943446918292470977895288419896175827823517244208187661909224492374099655755570147537253940195270885879610294351597990620747695944839297182604409325958705973187789185921582738564809774934363125001995437335701879963968093715476617605714940956295280535234552304681807378511079171433056581609364004110531841857995651475095869286270591922404468247090662261558195260154427610980583837194913938829720789704646843384582839699201400806243900992516925550863845794560045238496283037954998532418322107344355041379223856267944238803934590350441383357285496116130919724744722202906770992467957457561677645719275586117217961947435358467344847885171065401195420223513501062344626970449184764394079179754265541647269215945236564324353385224202073807429964445313280573059099860360433433044505048254279409116372823260956881191673442094274640948637931787748141194258218850964991950007621438014267430014452687880782591516471063712835098242322079123078653401910635075440912679079962358010841737158838694846869841518723408460128221061619092688685158676287279218573963154770174188505204791632069099895834040013331383675737796744960657880815970194485616209853134014789960669156408912381219658307428420652085539789084469856328962044491732115833599669720964301068512017326348005982176304155015009346617716230539112782168467875148722833840209269130153615811040464175151450745563219152502623044831761866555632904946927629116628678006106052203182497851296139144572104991521991509846666498141567283284270966048684946921903315554649845694490300415842629211673631017315659847717575507078637746445135695492475256034515496754350213164467201120096397714784974827514149586463989780401776975348491340027095689577797964591223827159840312751386026974026699558944771728506987041801869857767927891812340662864867760468418996935883647879071642831058918912474290369639181217226384377292475177270634610485420122819664618381086981550196643481866411051869930321987057300620896714931421532961134232669242857809407980657372934929695248150187283496022162326453646870958977528880192974202052295965926503522491448777524970000661334093560535319013208610401765541167063857390414398283242030143458854987782190515360377444466051887677631620392341527165383390945998804768012701621138364779570752978990568461830601218041329149231862115535257177912188245583894765745296602348703636145510012656725531669063606278910123734464658974490700983722083799657779688107664813592194746871153584969134742734055581077332789973822930937029970557822541618074022513225888619678387335121146563954283201874851317484398101446787941865606288595832792113326251411437312728924060207376908798685790219166971909185457329099940456969334430438218873289969349239625805063276701492697651558163413660141901018545303221378774951555504695403243138346180774368035946704294073042866085790629896083285276052915644972951955312889798869144865747089317773777846439179974953920080337403479587738765008418110845069940731399590188784988837211921408291568372697751836110981780154855021320145704143473868969962220976558719204265612442361235550322399232203763612000588169896158693625186105352059701130274856562155914911479912836729161383736951430547249976139939842546960491933146726337086859328618079815278061037375094454707883089606721498663701691969037423357263180511195519332581588735031216278050455137824688362441190562159786520927141516181093752486247600478779981600555688050206603906886138279341305897271229469307692112980978018941186918601580845915885969727029814091525333845590655557116615058126975492240050436229332465149560490645555677623303472503041864954062940827933121971032563044437241780280919585821311989309465754619982160831961534150659187188125090955710571924821884509190242373450453897645079624185295157897946427547937530322843932339276634114032944997992782972492147241147808928995837176750912639949321923101198460858568769571557859273465384319744462918522303934799312938045870650773904287086440988465485670112390549074720711982413270938198939318185462365220909162243802611170850797773230478261970908696284254058783555542680373529800540678307536699896816763557843206013302831784766217271987768634331578198849860044385739277998517570723734474433485080818453472392883327415658103338347210770838334634504044123721020319347286944242103908251691834748976853128488317992467717903261961348706757181774091513177297862360137058448488051651542494706661974201996068602088013856973429319882595850141217048182341308289369341281051965736354446463635675843704048834240035088125597888229604619283648238991028525766940113449553968803953370436483094564681198627319174868902899720533863338469332497114669459464549671031950130190270391078093501685880703442619478192261558515557594600656281598767308418250173664926516824147045307565828071831154856283211538090616711288330295372321158283868305496477957458031066374702366051142035189729223904151016869833614467298594188984301800703900858798891150714046790979264934315166869836513172479563552478053001638552417766422311728469699827541888133002485802042217720437474372815788941283091475441566476661937040846516752428587430500093020392675520442313896560739792131417058288333576521688678885790300040737786774811690836302508663898287801821021707445403013347567954434432445349819804823153518336441171423698888108475794597075429653190677760793021244048236703999007636265724243686686954243704407659621885729494553441036309546895456602782433907666716981323203937947164924522570384719260040945131169749265576922673813141103111764166392185850518676808450611612104627856120696549966154566206212820684799776966996200453142735122889871167609685559408749992471083825398133618313239483323341590042477502579390887459179653166559724216089599040456278909420659422762606655812783667262969679149423179374473514559399669882623794929752839381483200734632072321009210213436420823254328376011365265653850241146671816704087494318013954396499482644508912905952182647093256377125079130816864233232406262988016576094496192013961453854295409581292153795508485518974932556183727124267117737329206489732536295119184343555980371267719707120461835610850618196609813883090109805611970307705808998475846413520176830214258568094245701088240126608448739034335610171765153716855502798883604918826635856327027189777045290549442753039775850809417195174149606013685612943987435868256527210031604866097250507941714108871533684547519603047210297654887030207346281802949396579039997047031548020768460410317075522029585175321496179606122712139541447709668837053197683171563842133684908476264222087058027000368436508724154786788613616000144348184197339417992022725251385529807999599093672808874383790825280988223488906816224632717167397190324057988347623672224002467501639005543283746255863309323512158895450864942781841689186341988117419723703701669618041944396461400902495282019196186047316361743405080127203835755361496656486638564465667240244976971000156257969197486005953364567523267360448940915845370878320488955456196936585077855731491360359934433641535474099276355772037762249136856306946075710805944606466047759868605180582456883151958070505713877775530470581429858243533425814786544865494124746130751756430369479605706009093053724597142298004566978862524972965759131193591754034747906751066943960114905999163691309285900079172499354140437669235848612236809020285673181691817890840532544626692784563080038093971786094899966058012190126546643576213901729092491245868241763263025732268934023703789775360752076606437773203136866498688938991197460973829878191279753297844476629458561210851934203171419948237184093084672694766670602512971862735905088480806055465081660460751661429512208027220426278720274129985720654568345576265293363093623605527132251495386927013758899308721316024877011081446129942658755363929773325925559081360268107838388312889537929328833138567083177506484012874084627128551507579100688224361330868271327224483925661755402261454297786897452399048516154140614513413151607820069823704108412144055537104645073169755045175500294044253568303401256093432280506671559470428658640261491643035252395418472885042496286355875211561012237847575403663912539761440757949355354862819280181782267921907873932439003861577020375673379812932769486560507717294978732226248298452583292536616526544630992060506394590897335496283035523571356235892832099620635097285304438783056014709497038016095713617925778184646718229585411110813293711302055576379763678152986988124856012840278390801419039701395578927717859098111250550188409151551984757024403688847902093926654979222488752224517618397777510920262430403437459587685678323511950361767102493249768595394783467901485806553087717277004693167423339213237839519745342171764734004011123504264189638694443128735363988207194037842774233836740843074416081619806520891722361133428579205560042441557656737546041361199714906931861368969524865633498244508487910924391320790894886301543960531364231918789061774111219575001248802311793905521501268412902356218061219849737420568921118062588931050809798739971851628865793394176090974638688384928266164220348244821800565629150135433868614427506900003804563322475752031315029823650503944724128427090973064170900650296306002174293329710574267694537272273647679184936475773467946555176357656629015983702017542013603879953341386866523316420043790797077482007303847505976470122851315483880822010045689269205163214336554020909920524699978494714827834591452948012383058514966809443509966780447843834695846553220528349455395209644311851154070652964053512486370400478212000937926325166517438959668506724096165987384914945869667648008775014166625353613755990116356367906059307641537894642738288185424461501191422271376030406566175737354123497697152791523533389435813067729700295712024732484918592162743589447174454054037824896946680225410981798051265273399074479050666928925735575126223160529778897267116785320093834494283532566094644245469053361772874625152840917290366638762534932026710123976754668106846806563297478161165309457999603813653677617022394490630622979128660404219855980319781030059676882050205081209437617097389562009291094189016916165054196329115670701190653737526500544924139243031244024611021838544037254163070741642507036036332082308732572039960620189673288236732229309147663157472670325424910067005690252597239869593749326333501924893253718891640442030810229340497346868586545091797072423604848661370134086031220505782631034951197758275676196946515700347491585558883172726637438091258653783156069236761086845414161121340997188805705956352039483731277303971765399203583733394473756508373149443951970245829372789283306556562673817015102968238842946051947069743696847805927309385806610379834051256497368638413720682141552768130978986139309622010345703436093358285853046387910795262984183285339068378118448179122370247426015709741500864852797695086240792322356882439022091757529245732010623913950328476800910420985472541807797240989879160973965464353806610600484389405150847111962223156084691314167994283031079484264880356894887271687958324551101620017364160009259668041809125523517371239507128857303828922429434671180299533604935133799909413296397326815821991212043676100978047493209988170229243332328254722946392393489156379342780525144401880808303275845537524978972659381487780442898356791608401012107514468005017980335504809890624664166370443856378432917061914441987357605331319101159055272618496965490790765186819281831589342629805165716015158054253358642089182551833935572732409516804111730608654582070757834108043984278536271182971186955161915653521061504387029118513374349839062706922430252651640787609410460907360566447777519168208997914642836899412072804626982507195742585874076317870096436646952570576725486246400383930529929327685155925662391834233792615697860064300440445798795980585498891336975223371753898467087622832129718292695291756225834512810514277592033384314378380117836459516315608276639349595957256158450521924346278833935002012845441613040178457765972336213365644063358754666546313387735365628550691012412025026218525317035474565998008484470484519663369714186301819041984245229494738540048540955595977289123479332015295070253188278298006986779097505229925275233527388167232001164286102030855777285437015833316022192520319327037521608499877992158417633441545821092065659243302773325425215831502666333309143971012794206394527427762483128094870411096221877100878102778340872983126014942441257697669045709792093351001797462008343055730080956200554782712134230771591981828167235463350055612341765127259861736946826076641381436132379118934182494697646337159394459293851446567189985261678252688975643415407003911011197346634745621703730454276500372288417370994312474373644707270243966601594210713471845837977326023274942272639009463050125721099929580535263163319580672030650949978172867322788777073229006121384865740448461189984564383982548049514690790920950093599766295876013637169315487569322699436305418737186256128656286816364611990800236961881149046922814497804405765225669375631687773173573134135371911159471423699827221765259054514257940622501757078908979984037210305537096786165734500674491088041148761099844445342876856703831286855812339589247598556936116172094246976321238743901104003529682581152787929551616900279154586184673507853759168906635418552712219104407832348300863461833073472581988098469727219371643207952550987274855835954162246067603119257573298515946278906662639166870623092370402421616306853992061980348539940117656791072386331975560829228788420355350860781407427710954812610417603784480131135184762456417645324205915420596547015674237906375222665637865926902752981373174599612543265987141502714747459325287644713080545604904172472656746577891798924350993554123970479926385434274683786997288142072122260124977185302664277359659305298418779449406420579224603993029008774683838654112039064845218057128625409198356481882087667671988269426561274751883202699475954993816734843196538763413855679744026887172761890424447985340996027742029262431745284782021045476682295133455292262930500576598040089639488373941117515458499892945603141003749409801733499132438383079645436132859276294656521808257236801157060517220590102734837217784218423091794593155610849810309541028475730653763647422942669765813953865115346615737344633799543080103988700695243046283508649847848677386359401217646012454785956345690581208428922223547769617658916484586157426461860835540986456311244872831715814243252770591906433764615939250821399746266515502977114585381155425898569832880241404673587502753388744691536517329580205835389438884771706143646430471818669160841578152930412800397540306026245229691175740775917794133276658652195692950668267080624717450735970284262144584874886879971634744554099544395031914781204851142114395870489810668433672032092506319745092733452309515166963938420194569980203619226791154384688315487189529339322968191693400515552730233058605370753195496014486759549616804020606142695240532738918643284784323443719667689615675154970400573838601753356065944155195694417761219114784670825617170627506064709612682131528221819323020158105467940467129235582637039670250853553214823382399646924370881700061144599880794903644769281187729471833955661397161932854015117161636300403236669515687626335425203450943701619406923077786566306343138520442748060207578306573860849305856944123466301810977650887283363156753351687712587071411579689864720321287269184091849435653753308407480937583223590321695336643730181379139270655091286167370106441249202507997742338364894202054499743757703559938347343651866236892680870986413741513616153204291950310017949764918442633459961645196543408375711979440081578510548248561954915237686379293534916113456203810812205032522275192790446970892561208478832222948774702991151407904848639997144008227062824202513639831230272430180875814942484115300799610151281355050093229518729233585349802747488656657117660650549161065847838608593481441000391174203431898386631880073542545741011416667695702469916586413145116274875914896258926368088821740037558992026600838465301994915762305142807494930931573083008499113221358222354503266515935133798972973452601590854923720617061193910614210045016228415548357172713680125657595334120399597268940684167445275301265407914474240541618728244407322163780948981846424568860867836721787383204140933947531994676186462038308020010309217413997182031004620479787276292523306423594834476354414972021784238294395261723277820932460456886839489224493478522116297740413610672464679940318083456977231288397018966739519029992657719170334874479671041895383998364409408728227403746449333064915076009616866317713251432883270798298375174467125190044045982834949127207627093979710907050091250977290551346470370329182637157028846718081876751406470612651563515430764477634394250555340377208683748754486842111161354594750584650752324236794883572291060956909920435622461638152004388814613575315751171966809627371936341076623918037305918002926337040269427846320451932619877876828662815143236586652771074402176660742526061706771353146400811170641035198229637793295820722667564674955060022150291020855991831690297050840292880356802030187125768882449015260211924594170205023121822656206896857947590316410774728575294975726348088165545521101628999036679800556399644562049685338858591506923417210487444270557870506662524103861388214438108420431348439686834411392605961421598306922518136351062815432730784269573164758597014171330122811861359660111246789491493339958841820646791254006511588062426986232001327211717878889147906293272977983811766507536876689096844992720348659256050071135932723273934703595833264020354455898164047525028445753733040262928225305976558776987363669602592540543734475497002026027804401249277320588914671684351854578109273548426914877065319704070095505770212753933841972082888707483418435289670233978019758019232225937929664106539008419282776699090545585066966021965600857523236454851656469878837610859442685018411854045363277833743359572226598648549264514161204987867415075503136835058994154682034754250313489860534944094969516058617459972434742460249210078391533812071438684038269848512289191304750194127212001520098120082042491650741262783523647192709949191508804572587971714677871474762974042608074350487457987680796396536997892256556805705237089104591928720821913160247457835397181167711045756537550484993048154567229117338421041014015364367943670778574845779520008868219116043219219164046092275074435593341939602497065556222360216736478932414865712084453481337004618919625145795625935185781316235830997540236822946108403131915718182421361383316002565265511391678733334613511481154205720846708579796253080210114306014504237722708291065751715323081881685194769377152328792618173084097201973200494575251608293624948335057434973783811927504932499787669948861721047562237590179856414930437684306809822914653835210664443568910575277890316564182464873992112107629061573543654583452793155853930229189381742770664735083651485158880648932542206423096499702991861432558543528914130180302283336829066126962149037743155790692071555893971024790843580910691126608372681421612965761839106695919009173585599008930404979827303485583997342871850952901431626325025753871009761056427660096728143229925715114024512091577889792266725302652871201030528402941944274963682995177171218625675664151051357930727511390771779166735800807128932293729265196137923776794316426536739992336980984328192107119216843190520169712135778834474101082324504233155851764558825116443791555582163136552747010668097233187902587059890539807092500959727253014531946084179514444696107581780887830935452962721528777415568334241360029910291288655302235167425678372133475218722321444409584385853128529822059170090989292932731357468008441119920026639277463991790881910520177143240313971863037714864177197540331588137498646681100395516835535704299521191625053948676274306496046838276701642082808321391838565753882576141114632725803786351628755886609759280921340571378216327699003796403198234273204517103858121750253282633738443433084337489965891509307193251140814194393933553542879805137903511783234561174067824274612261966244751739540452884797194683423288660089747575698494269968333958587992748831504535762545415588242110451799991331076688416007680436845230848960928958791636950937030829929720148887404890292921840589073823850485249145684409757861503764244439806966522355344682205408038354340440721075694905539423786152077436720867072950376085547984487048514246981175942877831392518115962686733970339805778997907513101322113118113207944808508309670835553424533766894955408056198391613936840954403263961143335035494745031632966309066044014386605849739046568488433107971996390873951407903162296352406900962597298930366681724493260941378868143959718373436497636891586694004873588378177888618612248633227304402414102228471764691326848694272388087956024415179174236476621564453655357943772481281809233965349461205274839519244809909174842376725958924353991825236345995674043603166050873277229240968652089427154144743524714889860900217473243574113266455767718656998090091956393170285159069037649659955788077561096251621763248752460113758331962400625023531211573345514393684343119966729838984906338203818915432896836037528277351020072985407591602070977554690267220116099670106388376531684783036535076558740871116380928971647785822223892548267146834147775509147762451744609599689623861740833361304086981483499862741473826991739480619053498543199141849438845270793683396041804023463080989188254056510213795660644935871260668147931973701370504849614912885571110477256848620331830020232590729796361609602991190869853220826621078507002574212183876906953581922655195889688996293694798288147668616363733070097550762889641037726287521412950868386225650351061904168236321994866020146892228593869787452757064721864425646326806435449148933699565073637124415147690440612814424072360818743645599861910244298397671015159560888173126995536422949446789202030810496747730834517466222699904689259015988449596271221329156171944945221557626814367753833552648649077487930365610641059269460653316247849690627511859935951636126740414970012587915659686918645946012936922676893938381697482670596969932242813155652164204588911890528937493252465112418001517570275743052700199608704374304337567114847490954894481768318942808831960314765948371961794466304375308797144807145062980205612682609165590617992035151307430924398968935662870803687069457525114779972357205584246080722012314612576894364544898057656115230640354030413732404898883699330346989708551305059242504961665224182651659205820644120246053647374250356961866832867913371791514057363017215141471872518383462074743481280852130204030660246272204909829169645012174481734546226993556189132166817052141141154015897048647300853057967030507669207213551682993556236498711095301496324924301278437087406995391359739192290334766214414059687972585096807665809478638675295713965279856971616282281810892637482287766806153979339914584536008592531252362045021066885210219558970473294401051904197285056350443864632285537484902283308347620418048654342014969673201369644827387281735681142998953109790185992542655891841561012873540176955563725652132182978984279481207459849968057142039321078620343364443807229513146391907049619547514881747093395046299289973633894827639522220775705688490910403835566864205053383836794187823422148231918655081760727690987376637453638459132823385791966900331862876939356407683119693484466497964289623224050780869518172598982018183357047442838053915257515312425778103488341272989619920470962177865991567101591340193891323821806410882571469657817316185532158136820602995988443485733961157882570265689081944489501180247070485676468030874150342559764351948521743443021437189820360407749874531156442340443420143143789049185317922440039348257994987672317588873107094454667039873205452693706252783257638790430179447278441366322452706185065479364493944368422087842848399323685150630565169029010084570630336729893444071597321813414416087485649792256499564091031809022764182868597727186062935556215751491893006166375933999680390840664034590110681298989056098245545841973417284230047153837483532373727734867837656628954341059235670535789929405227033639968112028015471613854423946933117847405186249105787271572356300401862055888944165454010226261176018388336759248418177224968868221545661798130794438602315719899822859336256184596798846480643085184499425201620825189546882508350014069994787435954326921850098823920477817112607221594109109640977456775188675016986106307393341456914822765716649367103977863765352137435215713298262222829934019498370398962083569433598881725124412131955232519812804410854613232827608208791074790822506479772501151836312145263486350204900052828613386313759526571136275902403367755166862497459934067228020830688951290021931093971140238437944668673950781161969202256781182655356333107305339363633011612329459200294768201323949188441495181097556309449812323487427457466502718788816905133877040855331255213720835142119335951184651455016091391807305739103028325778873759542004326030888970631346069621245899243080965330743465236411854377988990807212000187449213514534650550282536735724652484892405045117415383574234170381670917832452726328795794390076571520352201944429438411250236066821536972549721051987935423911062346013536609466052859858866813639924159105289599504527368321586660835310959152823986485434678804957714015003774624336313516910794495875629306815144036771526708411826625095923730704498512870082235447656237911251669580507774472574545058457119446323253196041597176099669661193327253796191393207633786903895511856682762889666891533641395478426000749634144943760252478671025036465146145202727610527661446518478905107176221422023959526082695554913064777163989335567767209916447086674492414284546667369019324550420410712797026029058905545531969574462926705595548754974270996217981885358395194387137041150526927930985044971420029045018413182947424006599527323109269951455730296568424785030019471727785140023159030271843914453319889765874052919662114815764110811617364623250480374720986324908151932307245685583196514658562305833891487001324388588245308424817427050062428366972575425526058199708906300553271121392933115212518180000761229110065684037916548356224891736038456655124111708867558832877816942051936595546989143335977636748326279253104625054531240370026861281730112016598161683041600918738687698468296592053168818998761707912712853876507154310779525006156723451765298620121811985912112317898243562082332222311043830029189937656309905363768522482318861686381180684856671466957228657843992133511509983615656872476082238478218698283174513890699828488293749607903700495671789452335185159473113058344490769663811111874673376910400517878135021602752777140655886395431693121368735639985050965763635632249351254829439289681471234177693965587541955606515693826680055574963562960934040252127247773254227308906262519665927816860672757064692488257620123001846026069508544485224137244720880192821737348003057389559077177996066752605621640917907100270035110644384199904302101264214925464311862656689610908759442102793415637440110309924465322308549151239933166993123291785817886308039712572765215054425815230535526617071011423014860685261266062277523710039986463123656473625462944765328519393934881515580343550300386024083965025273555368900531068491031311115467319450154485398248200279077631392780261553028148619228603554677183121259883249240151359733919139530419640036769736299221986351702963839115369867861243906232691218992440116453358937334057755664759724840212058801972791062430667502472393440072514943583794456204500841784463167551071905429119238629117566526643239968328104091171161301624759653644103226366769670535207472615138732445920932388550030331714184198816410826524506887559033250225016320366530204273370925044486600710194936423866286606018256344725228626310470365238288328416936198897305186191288710764561112073573571440901119594643151996605915335696312249580919990363757842019545383007035784214209308370479288691845232876134857458246111053222696285740740643876601673385413648461852434144035821839763532565841456651427523228604038340788074209894178111116558553356989356123670038383281313365820075829899440050587312539419035473086363004155461235737332709377856060935329659046894563526535002130533083145602349672944724732685781170262892983084991115208180687951935124848944280217076309554887085904885419370667650204268981396594429065282693116439950011560550378619358169613259807572476153641836866673046796845996137706607075585808797199129224292216859842832471205316281828516509636586488046086778894053996747870515648601090426431874102430100042546361736573726591806308762845108411725420642355413496412876891093738160262081138231220823763737412364233623501651730369987981600877699789294106753897316958864789640643937774884580704962431910011578097985321513504667645968215908816220745908915671359175697347209937785923848903206646152295881260122768308162857261033309846227425341794462326020702918048698316998936382501158351170198835853510193457704058014927458947497589976333720511648994686198718613112029731476569937107516939222394733915891269756902293706885393391753428888387399090682903754284902865478631493339933263514101223485113368833633065447882621086791125995281483369619908410744769436588943441750562865052740644871147423387257591245726341444929296678595443075347220467383729295180827736739139762443616374142542852161485092663356043481940260926946651125242471576489260959144114264243257763508669201319207509538279312031300617289913626671968216011926807673747831337057694567641659900173375674229341253577052352879570434224367912730305324064284801808355804166666528362650658837150006362455608263247568475247213696096912652383559348252304828921255458670672212348441986451887324839504650662443133574630236495696144144964195774522907155513186339678296723490001026733185635056068939755984170702149852807655808059181386005068634942208235740584703513040626693913830649380061294679479356600937164558527197457578372206471395171882433677251746031167839498299676891519248693032483352980916678307434697496895471623984843604132983791172535595217747133516150755537153034888736478030498542129236088943582521343451767795414028521756368786832489796133854090118163843549403848728577915119788980418988080887637299056519861725249759061281538371814456347192645247140762725501981910376578884689346093656618136942171828546550041949205949629432063235619019010323428335297542551637772598807131870178996834891630581725549523810131982669388449245799011914610984373828342830995022889299214143151858143876113957286825834955229572038114667763534476777482132855175780601438514349850210111923985978056899632979541472894118359210462490076536450360218745281899254175672906438821861035983822828715298196820343932632826339391218873986515685088748348242028764489385832404853132556752987735225101155892170696216357057923671856873654494303765537944004821822552259319902746229462139901574266457579122998842585255665548518575810995772004825142235540389247822854646118443837117595891136107194379142158535510642718096008904143380499084003228526670067527637648758794518217344755521653259782801827294296509581912550132280011924737964509057316846113360512998144051639083457703557544418512793757302396094123815049991431784205982072114514167313803298155231131192857344783366183885762373557130195989412544212122637754317969209847656052654555683758060833172732493265599727255100712046727557852699908450653089373693668284457283753182310845948282919268117650258108685409093245943981970053252150989052964051825178487297423954845834007939353654664301212115578732636681637019001667887061064326287842991875115396238503358640306167046879335466096935402424409399425906132255204820650885814619482114654377597711595441422547323303854133009493663178079906521004041736720852308113415984567431399175589216172128419036577042145915149992916534652737702898357935084053303575521964051458485811912946061480056304700711266869253985146293466511656133221420858806654968647937319849826041588219280170462282137392150132353138145789067145373000278272309216505130910257289227545613390972182658245826319827300726295416093345863887877418646642470314922753439423227844470188809252375252046645730249564127132039632061582732994922071015062670494943712796635513562910472687303831177551920355187282679338308338313566911878453647405131819763801907963354258794694135110065211979878505063615649248824791667203703971080461603799663904341511808440428485396769085951301837097490211950467508579152242520083401572369672916392373556623067390112650741886216820340895027278055250366685495206042572925325387195329212304325158108700144666584308095574947427378274279859510339470998151733273774245049993153660529262321149013705241037183934866499138174961005546817303587894018349813499727385633377614231332454967230398733809328092936871344268366903078722661432160080294007067446528029551791967579332553090427194454827487619666858923436418203893089522213707355492750229288912257077691919264690489932484661215844765051171078450019818915744969565900420889903606705542155086938134557584232458528815688780019212284984074031101535411215450888367529431879701191508340054634863096688107283770744465981325659587065464942807360436189298462864930888676102877340769978002612407095286464478993932368520089079628621144021590176676215914011724791076753790132069489159286814231778017379655454486726408681482919862312018692153023963906842656500595103983272458987713322191642458755497931515034685423157945229403150850234588843775007872805802224202233775149776491776340139493675753308761719671805204880022415437741437409116696495790360379001766986642622279987623377669811767268149068454808874081803493647252425488409901171987037043750710167614464911534380570064547529255100012634791466910860444777536713270533890114659707320949883105601881548543151306690281992552293852881930806745929139553129837509137665524281440752496407807594392203454837425469786828144980806107858108938928327156526243690402313968439079101298486090769413091865527180575949675080133265472854631619610005128593512611692758908820344870395981416784221565663651103707333243303110464318362145747824760431803295755605867828457877134524562422257765540828427119964678913643286395880298151629030791878434379145022134081642012377375689314422553976321732158507734223930431694640040435146571924446531740265242252636996527966581409696968713571235807603471196406302786543414403300610423409183379485698991253758565263921030247367889434689670039553429829763336242129789216953642336716933577357516647475407520118987394829228857989479127506376473227384952745243300642100661768938802633418892828988376279540045778176560439673325844385645168222691701128325081593046116991737524632994161493142527051858337095139420737693095440323342990002886784169763854184351551671403411339271076226122799204939911792913105734253981858514584305936187812182422881748770369162834121849774233009287425002359087438194589188867738995018393720722072875743543761864674791177518065151255327333646181843453343630227856405745938520810141881454524109873364403594390877056923264277227191492124027023014201002670001517960709476043550694752513545694644354474850998419369731968278035468872615927349136689757318650084277428027448918504266115213621606756013250514163659999849683224447616116239438010491379920491413059573520161956890536918442468272203105650069593211261782838912845966890011989070339366314630540261599648867785708500998244305802384661846924562397581137541476132485949201857195122504212274644843472411682459690362199247842017455960387071806014902587650258940922065358807118436549298040719505184178892428784223412705779582872214933603296654010019178859033786430861152454532271361051267823308940435175274272132582862325691761824303593541113038681657376405021996543593177026856891900205588754234506166291126745496070615585468245878829848955560817737705755758765329150696249050065065987090127066060869970251489142492558899913406777677400454289431437228200473848073336079571864547464914505436706293465612485245529090983764568747909464985163523027160583102999339989496284613916213754918342934320908616316944437512528836592541722009146407550814568762809343226452373209813277337936344262026505566993475310123288362078824013038362797587993275778371546256990735399245552478605242928040946138443524722038346523005423283553264584555044444076304896755195014000936784815989667928351856956776440984130880203143434257007460266000134449373154640302941373083865186611859364626528450156218289886498191749096085514177694357903628603369815642365788177072537447074452100015606856106542157472365068418009460557698011742255496127669240430228072657477960971613887452175610420117116084724717370311450410462838355328075197216542815936754818120010683313660775165718417498155872629968610810804587825695176049933183440920105255655558129658555278747423978340877363995369808440544082281021655914620320637124138646360132461876496354282891328152141896378813923192872503515349394111763163239953352887335592588523815963724511499702067612829144646579536879459425388293185646441389572416902562645236254487539272225318036549298156038947173114609755846698849161953453117621967714238374690264649792402220088589539400955951839281740112488394810796849679574004045566824465681078961910999177536883682206527546275597380502143367032832048137980869775740184927176941527832374257918177112589062491668456824642054698896393531265917688818759393305886335209440739006050324376576101300738481346138166824884748505890406574566984090485989498224355145303777614129852708582564463837481939193696633231877978028064416434145192696221526480438309470151435450830547085025179674038587115633852772505761433229928443460126806489013949996061721750012415908762749764647503070426105389680158073268026302705487527682064702464551676526906707321073439494495734074763915109922849638540130976405727371734049895361862327461178130644913721864463757061007889360209268616893109613077877938839458697369472977386365108570438336265028129473774408586302219853351577644458895122769488038269746951870756020988597485547552797562155243320963812723075335521631909074028890650224948369281799264301338160760973679733785676861864161289052670386409990009816059987782462400979162694437834958864011551024361075202863876081120326790113858473724466213446064838022709700611452346826781535684883689906593132160119594688812960116958378887474098272758042451602816968141336758640126932953400594216251321795313175495689051022206589699253877096956877967738208602491722236134337366343056634822314579817571591505131777027679484245501027826100624250194264329646160484654135625307828148254115969211024030879672689005024341424169992075736243402646987375701502086540118077599248309821554827115358000169973767990236055444144677813104701742605587817869551645085216027754682895671685799339400760135274994244189150400225040926639173537004738255380738392711768024385082939036487546264012420466719485041781840093911013594461581320001219047410262666874336850871779964129131735939805024250440586235173007276651737768098187307435491840115440725660448355246195046295243603994569863642888070632735487638850357609604857554646536292056564501488389183711450333092515148032591091196965867934702299990089239781059771050229810190854083505773032347719481240773170413565208013673474321316863170083480887403140890506790434794872500390599266925252017338349195291300445449716297139814041973762164515453883999753633713653275969145587911278983134543472927980607457792649882385988332575237074805749185191584073450491686335660482121987610086026997245677502045628303461260923784010546326792342888499371336991421202523960802610595625100164259682823153351726741072861164615464092934067193213697563964332698429096639598899800979054759798255856056546853121600405242574439213259865245852575264167191509046990456731547947916548939993591858661303282889894947460357780821188190529706474846120058408760361136757773582533461420854243740267814828815091667149660178361203799363086134072550503633560962608033860255498192311076331101010450841629296598115872236723925662848939341348075496913907826218288155875816115331463333085796949856710554531612761777856138713597409892590957247190670753193908067849856460576465443094694459868037763954075190949948887072322178204888273985399528622434892060774969272253470816215758056335689390694264439095854831837639564528326570312834738499123519717901709787095537018562439121732232617676300241107395952803598647588354370025085239619295392668933455083193797479200361537502756245682160004258604470169611575463138738464380519207225421879793410769845883682205001728127539751759846035706314895013165279182323916971530098827113114645318428921828444290445468840883105661418467700606248237462438883918044385179993232837261150010190479341953980978080488492474044546046305058841029047868055560546231460748900230024255918443921873206893862247385709573061954214283663480557275191350277882160125273518910567514509726097470407574694190568526181544117286074375008408910332448198141313793581659557880185198657972086064064284838339110468569179267978125723393815214545966333192161166989113612809882596735156342066068774362873539192152432652271026064974445629874275698291864232090965642587529466730930586525231744173202755743243444048797494713992509977407601882125633838609870418328452563522877180046197533559724402886315089057478519955497015010632200556483795484670914293504305607080709565039060704075764405908755145422030215600302894709174738860889141213641885290199847051262235841472373517642961372887806814337015512758297729094153087222367973495099235728603333335863366584047675214945386180284824199715137195329355828234649121979929035905683631635752135045405184021015056044933049375434863632854030356553885231613766142465430575000950677118145091849978623936014829531519391472304118862753461994769415116231186052424479803178826272080341816059613353191307672416392323042227085830862444768127320070417172414000330583587123947390983547148216768109310712618879823872912072832115064649253512597142271091612578105818188891107880195737866676688481745669429659515083858736268714940989300687450169008451377163844906656862874390128937754487862112695619837756379506446437910437127333316787537648266161918214436072795252756767947778914151880202593391134064272152429697145855110675379889484630718705211915656940408428506706104911423315590734248862509245753764264147007454485528695483106946413683357595331678574820197832111711093142752694423355301573936604439283788696374700665136915105665956008284048029327678433461893402579632615893541237640513423928596518486421323144968449399727390147253296877506807934955037648100705211093168833579467813238515478153120329039696699132130513920532180706726568990523020569007830036478045069076614567254146238669347048300196009332821636900490247330012533402757497185706606049271318262648568591918939761776490917405787855941551930001440833151096583455165505416658753986553291713416992726877869683731317052270841402239783015364445139501945151216882714947989539047037777080664948246857215756724516827743967382435344841967273119850770477719864336719169496595711656129727858015123348979097317425527042364359305413706196883873306505644794421443821068909836834250401931276816431463401567717156086657699705700013751956360158064028445074562505616159488219741396563291417207832352524487621761052940728496966347304087706410901800806640775518515792477497450063870144968262342737979745696389272251469134971739200376818626968816874747486675222000710033579528120533486260603955989294707481010940568873869274027835277868060531718743185445670521256041291147756633813298584660417424077734908006454044090090517985730517784183466454212154705782545790318335090939738116416193872642863972683845471536107454657822718467455111168323346863458481159532596295074328455667646009045580891110752985962001275084674502620816302710870423843037677627128825757288745055557481907126841452661741047764353579869015425110940981492142365416754825654119893450111730877090489099822162035508467785216521802370209922444847353583103496360776394517096614882494345611051668104497341719300826012826549346218336270661035839575826396388285593572972236305434579206701182593572823317906681588714604687367705835559534510792826470272524133090743039671785900954441321419218712635694779246180818251651473986573748216925722914379407024613327361883864744483387901929996127390144696892635240666482392637407476742414275060611320793497801744775228701660845167627736764621455233066237267045994392334575692596774382737487659407217879794103574308551809321893902522486338105438648498263589951627685448824678047087718205089538537918163506065894954552061869673842755027464590727768163038982551195680181403689231661588506360265209791210276802736764350289360065583888627033044727896583302696082504097609474130158572885651259633091743712853762191867995429507550287174452651675605944891906042453322084173111361948926008479653127070332747506860425421799548436137511973982806668084724051049167511816158922248005274743592218781650936540134270936669802153986374450666663342066316841556367097900554087668572089676777364983847021230140838349721626297993401618182537199195655480722655865430327674491873099494467804927151348114999640659293528856540158474866780523417681937058074782136076807751887648249720373431055711270983573974516119118869204776450624397886883524843362506689305577399226242085666742169358883698813587449510560266281267814304356429609456209855758344431628329799949362805975341599821893322326568059521480283056587970264404823055800279412539010438273805768295470268512292390050905589866175365298182775673605733134874233285597476063259853565617899275244129953121870518147720971567737700953755862517486149123324023559375268560836648997485983462730670489244972794313856807783922179768624354455838531606090244977283922554903600309052574139905972300531850916683383669488860171645942353106834130830034378325003784141998137656998100127833869729363442626459470257245624229870479922656478960599059652842049868701284632012489013769058894728832745939845452919698942847062380803015391684301089644291019823777985686635380907732569934783648136293317676363119221857184028853490409331955404360379723834523550484156595255652968014294442962881492815039071898485414180006128904258823470123907733277036568699257422749480931149244397115834706279297683736390468577152420703620622042796187096196001807470235731748265045519482060659474512377294875669746802019691795333314028555312588863788418236562714475947756085290219093057889084323570005991802853966811109497379398517008452166759145547491520573604887727974999583645368545234952330131882804176253609589076687012682203374586916770657735394676176662159729464052170514397752617171933512602272171299428560191821487312011831565534568868869678574028192183744679040512708892759907592316646975014410312754512216534112743093159504669107110015365624805158556586419213698716144990120014300954531108962865575913897606149334423556351180902037665357552129131952022432704133199578573527888640004077487233384880581128084554041631983473931591457081573184720341352035893140899802977723553336273341507452873561694903670025667125213316406620478830906669850663063216241532668005660993480776746479365207881045551647554899506485619050709118528569443933663010304198666566135214287373440815503410544603060459231258218586994428650634979589158308272821401336571150419302322316568765517787823313724709696682159758057538310677403016312097423622928990699296096856130525673134302857459330443902867977194267129409412173267847834546800737460457433381226675567668558782257081466716193637181805326257228545140379292390118182935015038046358592626956496945157400753080998979212672035603190080834896157328981078788091832606703789124822710864428543507251836091272999668698679448891047045488252507562040676584480715635783986004781452349620832943349298703359640747289818845844674252259535175027317834626697797055438493449552363540223862775047830274278245766919932876493165928048160504087814568684797049929303362602811230038527726723228810707864874626966713358125162981889262415006835188594417624723620459371644400534515736693522557208852447679732091203903032178712178189403591534370054661826252025425537074403243450251673956022347065895231645034912056406405600639026415869273951559314105067188593767311959883389838533903740540801954382974115950541198661400772234794817693845042353900806374885365888517745813399793038872701178647445623567439038242624384463009230252341388512851383392628652961867002528054753682449330994864831796397318924717395529842782109040415002389807089750319289858273399720489876551467305654663757358786013142783164085031629917003685292446533907434694677627829943286475346724454301418673692444346135349342372646705251524350142603360850762128989992803630134921633224667195108642018426610069858223765809917465865612445682647982107711571521703131922415855036942100727795952214315220980323367999712334341705819562086206761156957899210591635648214458837601712197820207293123798317427255510700263201548650705512569719428806861146660766556160834124097054623742414134692351874605906700567316190102667271779631841991652145057600695430445740055998952662696398025322686536395882316637605436425798787651946612005934479341723592657485725322982240439394061219744613599072866905789996331844165259827451771929410221907629112269188247895098168883108994751232247538786954344362074821559848361948888670178670282759361481709881663360743766784255677367059780179533150219824281343575047909796866021188062376796094516523405274803709110986228859527703337363677326507904630374866169482677045672622278965659665817106195253885862225454260724988879606136969020296449526999986506227336497597131009946142521771857673668427887716629955203214232614701114659828345942546259255699364814925565889005392920478595861723856179832688744567674936863241033956847491594374916922472253465439835598009808260464270723709807105636307994215167930319215992162610252071329277954893101179632871420078128265787817957447107007452077510723269383825629245280630239938744201536794927944052496957582898799269146937066221356209213180993016785152878609040336915171604323553300044827628587023708527785318339086253716784523844195792934347310604780602345204982249213486441420020007352332294013594984289068013313051265926623305312438454961170146158588834214020913113646134109870747498521927730359112511253478912494715581558939512273123681274866683493523385480891321702753498437499329351969395743840069867694811514855556950004356338128593034666476103533144023008825662992741254805513894331216649647834905607776990140947556828414706987472659322036020912178708888954065323633679070466668018339869397136554043716004733230706944839074914724692532202285658874497575983654833875207492354676975888046860647477659997853946267194864512473168124807056863851670994566705927957561118376347504875227443281966591062820193159225735885834386701716336230265436024498605026440473714015701254912491663718255651942906375678161844536388787927323903832315762854851240268422106362652234437850137092128785468212353214029193776137010345038328743171758387405807414176431607016423774551111431589366234748034552981893305165081764071147382436827759405307885599366445056727390595682300246848745207460573619139872112657228888536016040109299294117186077723626342786458604744492835598461317123101650297901092313341775496820895456884695331120492138597880130693098183995800168143834590877583454862706477872672072100121689782629923484110265254543691652187728688065191984191921497908967411460892567837302420227409024885289429555627910536266098106796908288744618649629851890380877680635479386832315657430879866896953149733431337626097121297225169487854379405283261808200566159089799301448374981015008573218781067186964495866641301515559748581156597227773532421079728154939162247967516917142826627736951060652145587362916764963981853557040154793036924726184920264851082385439690132034889223786521401639421486374625174372561779222796726655093083762224059197154744771614168977088307805577050218122687204499236820649102147173896034642556553149372660156903618672141571537823192973207144171191124172097505322903649761623251000690324721302549271047540133901625991460385142760876573825208433344247547746190786423300508391107122774115806180678099500101688638081006082270308914949948534793484697544931535135164972152590431362658331626493326759397226803711845385099584758839209753670440204001089382480809946358220262508348662955031456774791760189887421297916203051868281592933956514735730468623135787410014214118861319899646092765723793091184840308173166238162078498305526228627844240646135058202592479042413559971302943156570283772881183428316026138080526079163776468406741759690580058980025179676500895101459559991449304302196607617989021450073293402407426794016941810962500093087398688686935553513554203047099764656993434933371924134547460045662891393332454854873769537751743445438181999162466074871962735315385970818973222056248737691743556341654769349492159959866148876696929738895050874596379759733949493065216045316550118876086426779349586221208286890752131881779968629025137376360823844434458749670089607432692836898798621124374859349500459038741125300021596845168130162346421872446171551050861554966826552696795104768231514726729571224970788240267564878053538860543616967047648919580059672922316959868506468136246641169119637674253532453419071906248168287544627199715162450915675484778419881204461841876240595616626071462297497644699037326915836959552895327922914818052587278149977596171842005852378280791951211133478263719268771983230470942946430475032252354581532041413379394919453121161992988230991557558245187506239941180323820995223530484091727228609734956790714614207298386339673001762866907535616009661331679057209688304644320742796045385295606274568894663118798136165439413659558122872987101848462508767762292687971045401315490934340819843188674366089227167177389306206413245805545266338316288051117465907811691486669108263700307653748521011924096940329177789670157195538172821295268684245316471776539830371511655108292460270969723850448742462193875343815916213814171163252339362861122013516192722641120902072505450017456887711424393064966515832749202836242578672544030830443630148290817109845740388120138108051160050572050570378909872969526512966743512495235233118730403811832950493102088637302526359281159484825863245084944435977884530068623114600034183271144344383861163480205693475185271778677106568851759374885490215987867141089982474727294482790794981095200738618343579066608364050492230089766021637988022615718615834751447007978903973002455281580201813512088580356789119297715590268853016488938659137138546619370916577660286569694839184884898545528567317097367596108132276929617778714349873152062100238390558388482357683271590858541459762907711939486416200982857409941020243951592709213722384060182870295741619010440609682652517031690639903051761236068162899466433883192311478120663585824311517477604581760970998322204546438672164843742496798969264281312965255322587720306529024837366686731438322638417952447078301124892718685162627097944166840209895663923386753687894251675963441703377549970066599091987604524079906413935988861717175445342279520494436162796297046288629348491699996193644400457230984749947963753726641861415483082547570968407582090794293980081547009017832414871414090065467478796939086381073968332248278719237459253733441611938429401394913956005426212293638691284119340914013243518087263734120782593778027605414608700733666113246053726862431223932653031602510964798304723167557828443141048023254346440447291151583009037892446354605818132259910769128701027680032336826710251397571736661776200215450393597132264844390473613606207671464551159659210504655565095657160282410310576846562922677399618999448395295227701832608520122175920991846024232389245120189083926252670827152902898868536883280502235938535901266606261459193925260736897875312655987335333065253011479696733724470973022937032056517336472870044451840809800021173526960433637203053362565788331920459463030876198266824471665708755358777663591964513811775906139472537766873510459830264127574716967003328152832621144915786673562029239596731906566621333774796093265562507607813387916162036347543503383493448917567252065802763497916196508119383313029211013885311458321004723957659231866274899671201959942269335645489130984933570299173896099198037984931390101705829826595108821040066232077229322993606038877197971324400989396254631952224541728830362400234213801511952526807573437921442582314014825892044222967194452528868587566289411932685432587868895195178824510556310260219483972657582782065955409619083563622738368184810126209774376053239912538737913647185845985841179208501161416189884909878415804880198283566972188170290500209065904225989944706135440011668444618143775659558061593940175798809789242049601993558589682300748645465766638448878337635387594382326481143810298955422568368080789489078314044574063863400158270433859323818178762783401740092731198907656014626096088492084681471963894078907307346363795205664690567669774025043945876359272821309912271482192948201848706982440897074158054745535491253715496391846392601715184184702096976156154889558590374549848341769740187878388818656053058908076904007868507160887852287307045229078142608390324361767559950792862310434803905288027712756532995084157638515727375283408329473328758539648926708887716648424965888874860708239293641331326350297639020785261633192572706746449480486199668077154213513537515155367605470743497157609769021645625654741827801505862607948873535404337129087891379523793624602167710270053332112740415016961668913300245696333350743091978568896551341961027169537430624365667620574253412758208883789366396061436214075468497534904334607105543368246702825351986416386013664874715918537170073539002633153592457031290844043953885338577141965765550252612048436787964764792185059286981964910418301635787881976310417843840160198935574669268296012920929467973318876614698591085509775375220492700723071185433426534137261532407620894042068198733404569152991413880066566577867249625850922716939390843782326227222479268846823286169521702318265204663727640370471471899814803737498058459676980048729232270953904609689138961393514876816503656569826231073944354246349737163944988340860339084253640260994641479729945663472214149460167196144246336730802523258113735381510233555733862815373023585756909532739413948027836363041339764879782711464511415815784691816679808355833391922055704430855539651069703329961671357209912567105518269154690310414205449487782545449045125378379575579663526221216484763384720778374263783661252251752847650325694659560376051759494852896659992062913800117579832950928400952303468888409910261841725955945753890155454948713524202875275128245609767244753632830801852492529577907789792772159018682188756470089889331645528707241195518172555748437545164625932154498044008836774427080057886483871686939428653819963221282850243562935789580443463171257948543951214895009590970922000034692350000942245940820504286600800167576783503254246139059912473267361616366937754134388403967840966629946118704320583427340954008591317045418564765906834127538845794893069681703577171118190036221102559635119463337131125555144657617931230985043976001453369826182838671386375368875903362796889741618383173808182033985461135941667116721847239739493700850133402630215592989653852793013374612705728959468047633500634534534516143348521129440330161744749871128598198285783756100703943368944753464164441040396600791396457600129484361620215437367016220884983607251863743286925387800200886852584429626341809961131104353005571377021270453178976579830734034423831649599167341135703428836595221490530851968547829888308937049871817859980437758785191164985111271941647816730782601654774174259248525308446387686049035206680280349066932451385661398696730682039611704172473226406636638478088299128037199644011774244184756468489165641377874636563690944448487902093165936454370362184423233129886490318890451907504248924092859876611507395440960369058959520302321087807919124527766091644581337887167372977438813554171277114646676855798020773112657772468644096506726082510051317431403315693609273842544995966355850113037642478449986885980421293523083829985872371472595582601153700686654155887171855017642482892233054372192004936582854699901996148906707472370096895372799349050737754442885207643489983811609671526170519375702170925739482946621938206671004862820226487565831825381661785850814804442939322203061521234360028354379752037577011657661520344112980189756200418870952940997782780496221155086046614304270507485212696494172879786925999566696020701480802565853460418703356390086025788782397453639534738405720957695374338741798564995913761072797229320259897922521930876133433406649807880650329928499308279594106889224539768944593558868333863193476838579409152357426304758423935808160728056998104385014766190744577458938354624789683194166473986509682580008975669105548348148924035458383504201184575968040672530909554253683735249761266314864949863635284052338102940019310823022887878884556557403602072892643314437540352849879240722405718733432253031200991556040181098780268864855133948436215164985106326890274485263111919493993150652153084379356891172200136330832009097125750286576096138225981418764005231643221500017651198661643002644798357577461537730507589124778099032495272640922124063454254976865317064035532943718084513244143503895358642380116401465879924835850314329542445184154649873378255783621468076643829449787294684193671640148870314404901925775229517787247386097418374310123743584664166114393097537600421345836213112503851046129112223423036365219370619511028652146708993114172314221927593719092090810737460453082272642507582378168037078228658793241965295587895679422540422666841399039740832553351176956397377851656505588344193241189838356752708776568784603524172629683368877422198337911792534259606185459498804570767172169778006209954149150497895316414832096998766684262047536405259686968216896191545575050946986851695457339547515865291308141795497359225587462786449568259089489674140566181798120713491751872411810621628182451288247991667584086547949541648511432771731523808549301175730602229430681277873495008330347853018678817432604785837232529527252566278063754019791227274475077080222577821384780245646446364855187908828556477481530610304449122706958093866799008368631005721069389737649572691339253118267780576527437832096206383270650281897357665416429873201804012481152484037464879852244835365378842020108750769156073262097156281070956759058487911974449737821364804544025917269851766448175018994863186833699638804311370044052133320075558971428553407104528168663572473200447689471223611328820414768537759676370063470605668451874361097813519182764837184719685771008066825716546482706139525563244440169777154789639850787122873955825346627439742854524719044692539337049700927583487457209797997685061972152273824071554527213248169725964358104490277820445104385117274757949220683533175132439904925056674603129528567035507259688285775288883123971730135282009751007114598631609664809397338126864407520555766322364826803504828308936276358786665323698041723750267127149633444274103032369513206276654731567194923055627047670348386530368289090697714535036381623045354007766078224490274169089155178392125001706778868301997298416210037723407528211813655433670254317417282904941296876842577197404094103512979858055267825836004945780833809822315950734671450532792647948032562101751613681513661341471343027455369551013953776137096709164203461956075530131481414692534213569460725134744344547412092115735476797629642649673336807969198300496744612962619393926338654987935490127748958137721678210568390570153910029807298768258078029318624776498402706278572824005816411074317295381748009653648366837066332441270528147942859571847433117920565500184419560179682016408157309640542312211165096590373560033347120029393256808176111048833278976734100309892516174113040810816344704436186556309143205594255143280227511272509066889172990503308911986250106818778452274694178248589641095714143701625805979903769512640133032833727767285249387324518735001192849994615578854545530589272913765308520464433231095710179676408072632555816638595944320457376115521352649536977705362016815966704617273423671536535156122400903467655493930196426587740894775309707154508232751122146167366299924459412945980380040087352311925488325976861703978660175729890740679574169724177807334696865381758740471349826173338728966006150148031091802420628954650201780781828685895498084501056448810526019130659373293119439610194995117978737802231056298474446579937736041006191502453405893106775819222466206412952252548372812176405660389671543976407077142242938756753022335901278038176871073815145856183294553424449188786447708116007308519693621681000529665272575944736903238543075552830873698666243600478597816208460363762597711935982563171756860411152509598406303213207707510222968483778814269641315537591787239602981820762575241079155194811920060978463078005152888617106937824325059819862233236268455012134776532571150513692595411878781332000368764068213993400556951778883170881953229021159569588150058491918847741589530054961803182949794880379626479693582605158727969735548250993588960785465905475663887315948499975347494805382874513296233418739589068291424556570561186758658722856542226300797957228755319897399583700966997356465593776678027095818570009995005774578399276419556253521351645398406322422120638518962650089832619829807256153773140401066258739848500393666768476183753857149524848974014539333491189228112042246496523206069405227636027437818062076321105186422931836663073471003139385203975026840030027058496622944746488955554619186888628796641450669741766628884697772382540563068426059182758428576736641903175118911688895209382089622908862270270374437240019381963146933147467026859954837923467469900330387277782911447666598766170430808921682069444892426123883804205257348424200742980118887239952745937808223034478718980567744645284491003212144050969219956312927995700593361110066853419624086471505845865329888343779238704786692421974126798504485414388840538295132853579447428434980314944025986281932215026935886785874480690557626419370520583704411144634956218191890506736847195820500888370995981906540735985189679355527667726958564662036928806360414899946205129235987536513000158738454327741921515557876649299416535325630398401458224957232816261451117685341387922585978394349831622407348125467272530971254483281544495240451204080538166044251258627595330007702533231269998737063570528440058124256228126293379595989315798213813403793333738972302115820674323892805213242000698232666552603910131737283425409444813627813836677834172516970884878189179923764796396107574973470844396674707684048903884234961819737250448589622440293129124122555903840475883181665611951774404417941807611294568152206861032447343238483696401263270321021420332321932968880270090865415901506383605041505094028318307055764505967407185830822209979921711034400174891381842557009529175851451717497359303589288850156716811955713847653813274597735599106144554273755122584325026738695564643478222945354059649851634855393822053440011369037569256891820977108215890752324400370371092913416340211883120725879581236439586443271573771411480264902235925489587262867833600282144508165458823710271511172328220354090397567445692256186218767583867818366720780025585198121169436803360716554263276225614074853859592153991506147554465035440263696953212362686134241353282718136529245152729938582236751399951531927437983039189372742258560493851082588045359305619621486346321938338275117554264302582390563116375695312907347764723592893892599828070416495609525542936682996605616927098479923775672509058409263516148418870850924647829794222342180411943137841589019602229225177091851098111224832377161743177769625052212840263952739016281038372485682511151189915261676405396419811944351646490929063517486956887622691838793726327716351717787839529779760167983527849119792050225539324589284073835877339591089295976212141491525179313315568508033100159703052011321182627017413088690635888613171247270351707494333389055137268670503280773506490563739921411408318777399670948650344149633647477284717819176276500402776381549267277767291944298032755115732099236813692160250422532905035610517956184117499149552477085794661620150301529473025200429919366765230566535885404562173882679571173621652366399461097774050030178344965315710614704929307612953424348421078784590474040873402813933894148774732826852574277541230380086437877381562504043234882362979646359250932626170579432493138661417691454122850475625201448727658748711199028202316837586558595345837734695336211800462129484683967744461742465875285507138196633526750913468753394843239439619451144824997424401610187298080281932991778012700387868891029641252457509820093193948489411413097346744819897785505105185086262036553153333666008995919507738249594621486645766798087645295764026996985918782251910619017926652556075350878225333121537675970966134604987982612475454536122528832188297203815951517201428769281558966139008386111743986397137634116500402820322315229396933186087457791467486913159963340360674631143226146330324490295053247388989112077003081782330851675656724057552602679470286998349014158711387813034482760614758675178304178014635611810478248913674449096432060350462770660741756003943052838586268566203511102412285007477685231600746680022437318131054983111957712106037553063353835833722874568080559273061222155994332780511574721132189756272260129717699870111968282647225566497444078768945996757848654753059115217652074437263407227863999595464826309838718201777770179677247807862627295818089613744227502698576349858990669478100876147489631525854848386839307424866686149075030153599117541709250965206793335981857669918446577473140088907036022827931835448425233095691670439332827444626552810846173302822659698128501600107377606917480664197409894580951169305615694212749485368903114661213412963758259558088814270670812569805307770090162397650167891402537539829646173768647145594243034831987257436688558680296704808511384681000070557181746914059326816552034984598075148599818515353016177908761413807990931991971428888284814353709024923867255003470354745148785817289754961712570816466568414146888001507207855740074195115534957988802235822429506016186554960181055860920720570458497916682581358830901426873889034266420366326155533089142342304678698763503824781594365598340679595740054589539673925542040549918443508008593104682934329425869801837234908373044898310078059165056968717125131527599917360121900781521604340027676173692247146249441771014635594412459194132882896939405381015228364006019117413925081524853354551137853477582501289481843108076010726778130460074855333813382846706036221054982030317220799600320478203735830238374530515976311391536935166298191673388596496956768495583467731359097748362501451241301845914673601921344260711986185437823611888274541088476945976830039272492187083565584196879960202350958846854746823239589095679977314267214835104215680408086402306357180175496723911669736350117740362239195859172599459187004310615903108276115168395439999611609625975622543484863282220647833911021582301218315652848615767171456540739118864319095038503833819345578730773279328251895062504034289983326650735372024488450111097540917738491891586874971490040553861096544737858957380102123064517405111030151263461811422599591977035361452395563410599947153692619947859834755594148093377051232243963543204664111978224849315388829202724033767827152826088191886996397245547672335130595983764316505251632865876205211898531511159697283438889534537893372835763161261867792838893711656585525848888849754448642320857455884926750559054961038165254222584913440052087965119075084376845425104295121706529758211577523451093280339952268798954034727458505691558829072945667443356273302112284994789371584313692658558734155899273497972993350075662715383626287798258872313559065439089116697425760540066016464217974807051544225114206059077788566101258577131711820785933652699684875775134667968898542747811307030824751358296524733515200981197281107293456144509235427264855754640267553517378585000600687390344486545810221115430219667062364358404906287802396096993523030487076979975460405515027563144784827612926236175183219867173748693105721591024561491291909424001205549467046489532296118143899856574568674497023154096809427768715860437694335447474169960839543644049598707968591213211178763731545547953978898923683100950576234018815979545141719082580183841618884108151788351292862546496665260046629795055955791068071591489956967550990009747834484915716441991216155096910476438332655886156907209973591866209677816268637050802945938214322642257369095442867627328187824155454845340829428591469778779879250611139662589945377176574028574517793944163062216505012893931246930833976776484434591925833409501853211168578225405584690919389313931896761480658870668207883499327319494506961949985085121683983584540417315593888619375078082650676284876480192270444363167582403868458695573677427571353560059049279963903473464032976077242326550143278857763003680936444698094838120925064281812612420104416122367060881707493232688279606442336962854419543134617547446719648538302874985447028764738485676423379937474503873923183937635124874608110305525883992669144408472095726827488184005420767920828944725178210279350781278739031695032273440678054020159566965541776044540426198192871938918917455991737122411930266720092992193857305335837445573764707914902698479131870592006375089436176907231664738719863111241284423726287779681241764744228396599025916569427513558914301976219189210441230645664791886738236783872094568239605239649755492596120390982354804787287398932221418443141291695941612688898724455207089859224743588825190084758174480799742477421445260497977309418632658459770409924250689799512457445315991010014438344031593582297802227538371496996100528464693573846147932310202166480347230912469135386567119566233337361455537335743510198509829224624655131105639123012745171640044651565538658775776819023393045716961861032203867200371870307229371027226466603122245512008324457073066491581829555830919955223352215954648321707231004712258165770473610202818649648996919125276895739821723576747583831772303613571149522483247835819644132381696220406539935396664829829863075968139155395651137396215357015005190196027401872175380365811320283855734568050984849917755694049183962630287595697369312773351804043208844694580017591191692666071924097092236200374137338863207425214784831139552729837774933442860780778204945032315884309149022833166396880245208858447688148368827860242614339871224872775753464319141484689313717358562865601624616988112185619186051376222878569955379978817915268505905585470258641961735510881883017431769749560010202176242481127955979327686989317947431564233095563501290341874766803561578354485757462856893177638678541023317344786845883367195379692518681943244726322237949164104438279852459628477467553385368753758893613891349189890356110604770384536523004215191909519099035959418436969873335435635098901592383402633394049856293422341028810528222302805323254520822473761254697773063970003253045990583210650150013444989029909142484501187599939314938591675579725377876458267683379812584191123457806996123647117560783457133077922413992644856013220974884391536525596652471996510274266163034705203931965483544188809398463895345163775447087926509533496696327050155585631369658443160800343489495285104694156204025440974904146519386828794767790273372572273863600506260751605921991361753828602799635137748231208209746167991766308172882791806181122154932923970349564591788382442475581968154452791747833938796793673128205594634061389305375430771952528850587307536303918435735283475184011384078925010868892495722495192374463194275436392537928372180238999187464856783400875937228411475155972684917114014613356135621430630271852581828580203099854147327438578780951016984649600442670999257371154076295169386856975989402067932055565168354579902849624947941410430335824173825539619703014940598831858275902502005347204587903422425979568381272546001895154675936004520047984234672443588817010659812347354874198599006043901437470946643828651241483424364073405330124935451735894500810982806468182196757537338029047553754314918779618302421789808588453092415656178836342929905089034953759124545736036670297128182584244375168344837418212947117091769234946542705196169223795851297527122199437470762841760759175609883335191419837702891114656839477236191026754597604633432988604224861162480486966260479183132892354075899572591288437735718749133887702152245670722985527319366310182435367539770886864650018827350055630333388964662967629822944515673177850286071282632707878025048372897165716293912932606115674412372051115478725533265215613968020775693833678888790115203026470130999994342017595084665544358369464194450370937745938359567162829020876568906668820603448312124881014043526910805396194333241200356318178545267789628996808036713340234116580810462642381674735048229760048166688902784917217151241731914191476825255703692320419934013139800718748128833303850598388174637231774075399402712178621882874303749373613764859099382658012323810246126283987142141706805612032773710828051341345422079836392963684390526832479983012286531402182693140476800577584894273244600336892484042798422709135945147627031432485665045647251912733582462655102173514613734861879771827995373068495108464120795851398510624883768307254878500238598976450582250652046943360913035224341178843629392317544519583014653005611917797547060974295600132253547308115054404997753056518218019951510490617740619355028276143729453809035040384800134160609402990815293026203152201653784873990603018071787948914740348660400197451250625169638986857400944014598166101231285351362378171432537514941781728520178757467443772077741107316468192828204473593957777407047201707220110512900377026762993433337697879437980739252780718868474571985601408928923580033623240293282582138952635321711376411771833143757138658517813266166654242063486833747204101860769653465866926743243769686266636573688080856092946195023687357631224794419265507032464815518519312206988485806367206214310291549119646941588795852712936279233274894174392151037646957782983676428469698363394282556562400695877867057065329124379550247267182476646736898452752585832050328795465696406465033537950157735879850391748894926195935983605541041819627119880317835079123024005066667781084951743303506420135476878743594971953948163763873931238435398035820206662225124192007515219503941119831013844648751145049099444937387874535645133597280808586781730881552739881911902385684261962485755326563529948952332939212291602132877680040893461852061483805531037727448647991685237202602468059717162341880630575895549489705709642547948954653843335237348677247794013748697893847941885254362807793085401013894252492035415558669262465941262312219303291290516090118345120805815611740883497837990271680565775535057461973406719287225338875075076741186153602448779827968966399841394805899323149437059054409866679441279310785308773818564139229070989672770802476049051714226294707508420940933834523397460218700556318456678609742214545651610900369751164476701721117260952299920331036345197405517595335769232832605799298774885524682818852525242440376943915738803795451331076283719377864873211629501572057145651384372387965087018815568340662503863311748250593417163030630820864570784399522561642857681967630951719415670800170924059905676786763917039385263832735513225671056436331101563773457472133313174669091233070570660007321412863915393858144357691654589896518215727597174840904563171221599922996333310697251995720048203713436316849857602471227773972407850014290683944412610678000099235860760360634704522937193405894775668171878301565839462032051022289074376963667551208909579081013512112674756544327009278040640224224095252689785687971385602922527242246912307162773220099906559046508013872991293300097160309196551045003014859879512805661668649611726278153892544434780845037312608968544073112129667216498215706075420539863915563078801270190819844666146443282803547473623542470395923446509052366450837155573199819605309939857083614993603528963320927630574522650786026771571740006315245755531960635752980433594088817555795722464701118389063545953719075811198540961621415031462005326148436689460563441435068361617573583964255705142194855008311058968616052520893302622954400610021188730001059651266238369446796370400655158463148464839476932178448314423365317176407041462522774359698807208102733285486060997874311851330816837171138977990757143271332663443183093709307333892847048654602311402405564107321562413430952153648007195815922457669048442185061469675022915573106395878172506389056740626386097412236317007899749594795729956654882222394863168100953106756502606214330554599484172292708732124295492513759552233342839896189854314892513975099762705915334166813514365638011843773654268688170075263885654673206379180272354789476457149844012369310155653095277755138617783002427857530852685747894846611293005208928869685443872984549509443150429948123289790384873794384559600788398183348295960741398670961296294546570009689680049939731466201600767897128527950485615723659072645316508178507284258583592616252969551763715074832895725546907195012248451369104289056267985045773096222200485682539230614813741667620834059207486823840780753524202850838786888661220771776996195866957676172187771937566885795134370172818941153398979648715553602100825214738469809257725743566548063853343606993553708166951936255284675935706329569499099265870411803109880348195112516211114536849008799694121584384826654513693431987960204575633722603955708905052070598989444172757488699880766618523266609102213990581617284577537210521537618220809808245261713374719419826331720515015948668547220429071643556696674552121265037191970439163369358349223122654978279947761458756451153243255760047022250634500675991164701327145561665065587145179675678297316668709364387193740978685810464798427206894652354185281662348175948603392184104802516400360051000621474773847200265369805742831698789656091585005443550582156042943930327293892201619870777447376245017409790605748969128637104407900516274952682114938005914167920961082622124923759669973767221162250419613215406133319881636582459157366252085057536496994897438067147931897923813518215642889654515408167105747629071570814840710371983897059735383973677039751862095494791217823191908108464676798748533594879178972374168172740958074037638081361091678192245112543505958383635536047662429009739844801215215781707744157566802115748751777531941983423048349654664490157113797076131391694726992935722917232634897604368858643557763981247151439611781353502157557841634318603518312095416880677704921922379841362790469724866821324829081571879384509681369673133576233562729736670542111946760500216136815525984257988490804584838989467922891276916855456043519163588504283941191956878697255896172779868987114110067817668806022295396330884938541280829683641161149241076028760860019109287208700649894011463043884382320008593677224733187358931138569297031425104678271834917347193484623508113581943238404960871846719703144741321558706309732309052304823813456571916951791060149333158137942428332506328929241386031963086055732801590653355398094735798664456761516038753578927242014734726682549645535201887864348991418998943580009074326580779782086045249797399170669222140323846580407093773096473662676786104395722216244633378404378553128505095608197091836107086361632804324119347587514966537351716841929676884369927860320257932795184030559346400088199897690940027629839960303134145978016750682631175603990630251316433759601177487171689685514868743782335218543049506539943504797109134470036992652940825129633965363699866828416205930724607321177281260962841126847999564672215049602905726981839588806370565290204329683999420995033580960921264761528211508210172872099931484937610321855792336673152400238877413360977643771792482033299470222975107356565746813185926257255616832066869353189266224260879093947475738550455405772824377822447621675080057747081320656458144660884281201580995008423166284073466427353490377157687144390607149086390291039092586670755481652623086509475143116530698592057016597527823067167218657368637147918811389240452958451781929654824914291311968628344872853221901548756364299882702108665513521017250944450424878897027704684650418147203973150639788349367681455885133540147294077122353136235251996445784220302545126320041575713609694164627425679045496275305064017463248443494995215017420814070611633058718392962368152016642671698705113630695761435046110320819250943465037413028410689753577612289087151723014301408027355375237683654384344277059905705072780861003346329381212355313600502586823912521414269608060301990550308690821041908210964592303691541755550937875626067096451366016578877115733522211295368572805804398428805074003544095723366953095641505250299596238075866584898411541099208504807573748310118606768768104020079737004338964863141650315699530802668667090913978067785587266027078014312061012418788336101325925227343179352105327875720364026963504648113995320009739289048388216217338823157119773225991323817716085921613085385999345196529075161952586132349659671636672363031398807844547898351887090196990638712194062924723572697138978493266340259458764293000471398542583523797792130588886510414580123956000075737302922249679319043285123032554007924420162577021672259403676677624846379029208066415399854561613788453212546166326619000202775959127774065948987496169813681396756590704426483905128733787680201988118588901044573118756889164973508049757684225070343718915676721756074910157731331295587605042852649520454832152194762809413698928821067554182975085875287775197435104928737632995460465042898796816184118114591751110478166132450244638280491083137099923607891898628989442152244107898966538421417093570159792783884182931556170481204868353012123376454104134226816558931423074516056574541285459760831641584853474911094388907994850782422843204376968919081545636443796789272791801587326901026781703950887613495186737693654847943908209604177549549856415851321664423883175229435897044828253773746451766627401802483427151928573985101726242026298322731649359771266393806917927571194673035763123113149690802628883544143327890712073556262499264101191658229976086635444396535433378412260137561437229364282182492989119682357795910244924431783563809231565521244937463699102067366284956744321161722381623788500773587701951789605089720993161730036989378224501893270251323627439258119435485126809382273585997092129686396860405048975779657258694996943240751287268715691697084747612903070913253391278858698401949854352703412678395002527008265050275987414078629975669159962433366942121622369997724925795910619870080456501700461620120245536934839626294851216439175675329706786595769849188662488050133831413860560284192091043155688709224090149055322782965977823084038220481076573262266380959269832040029537650173993175316105725568045881479099527287650317105280297800112608026418626747936600455712697495163996656653671983171883420349812403117421107625286723139739867497458377216983518543046371037539784356756806475928906774907770388576611973051477114974086227723531945567521932088986529796512955814352010608097897115799046444962876829170111868269029846932019728744843699448735989927601120040965951847486812291222669861278088258328059816345481863799241795927759912213329543339401081465210765605011562336347739817371925364432925759695389834927589926264809942253291439852186683599481395183266972711099357292916806589738555304521564700112573483849270718539757049697589332190022393526341884044854203023946502901358270421748967368672042706948035620330550985663984778638789761284553423690349612488409200642724835412645261764449229705272215155032472968401395706190457252829408804561994141243821604161924570959006017518704771495103627223254900947825811300659364881653263777319625990273703621633553678224931353633636322561024710290803186677388468946335757796585442705880961473582505283426939387376500547106324984474744886178343560682511452689307174040947150182369068258086738837535948431963272940857979682502699135440721058583103514908328483224528086953963434898399390660141924145720430562995377100837514111586146139008350278326367155509337652571639231309092348703077812054198947361172548942064169190198256064042715097259249952835181490931958212979738461265080679928785694853536591236663944737296974978286383162691645261642728093113271625078217180055748083504602800251289896757785589875204075137472721459897695113469000175765663794559810169074852624586536998857805219217936524648192665565306792347558327699530415832373207763886204734630500123689243382237718460386604304344024810347337313371228602068192376716473772599850823446858587431839791483301444987272951117404352829362154578803549025940777824576239130243714996166980195616421999506701207433783264621549997222557430755213614057509517110609548624105265213333551014417834526131693078783934360214822789015168390270473071765409321534686189308825325104213078863887313210784026644846591001679162965349317120628539829780148722350001077750576663695179774517203341025266048213527354496908433335385779112575260737355480904110393949593933943684976060716314558262538986942583323545673834615119062192258188027277460989696821168813996682585133120527992892819165297305660821403856082463750562801233458064032808783652628222096034498176394021869223343775071258879263899625707858339702020920777661551546289312706851243605162768261699081223482302613812467077646417671839393812423268647928792819605901516190746024819258424016378793589849326568425460959383888169171210637513362091519741748468970875163021010125491213010250040648153230378108885760870480632679548056805697193139220850917573969859617541761625571466998201341326174985830128822641240125207669062907037785920265834538743030265836690904258426123746165518812016948200572914802440122969882588738188198493875708760831367840365917608794459811201228138081349170539050101563757020689049121069888164435525465007118199404238325652548147109957237636828143801383877462482869002775638671374300784441808357679654942426082604323450126123413438249565498653288422434393010636387108339121134183637298580307488165514484904610835910200123478290723254909986908503538464829670341108477617065549839503073371977124644679493823423279254676957188539403974447326434766099276982366672200303875657566028212419829537123078707267549482245443406822565963698109684342130820367173273544710495481968357488345411850028998492376798546843396166170634661702691833908075193324525782280838859685275583961472533494256861078160187089404015538890410990451575536747688216164406493389982566664337562928317965933084543470953085189186248760528146415212641829426878324086074363112459781254048637065123637470513486592826521771518033478772085805819044755236448959836858479811130514960700080000969792606183348965754077703837559253129381181553106162227015389886022817517662974670271904213981772254908851643759002998624551659497816849834816612367033393933960585814778708890347669230311318053285878248884323263336828156393019423720315355111976083439204738107290993443072645632751668833570623035583402723486172764533904876431796685687936792841040828500722189279289475122693777343654638819678668717649880809624037854371101465351463124908021056343020634381040262393080673197401726999754651026199634608909544561588580034176727952950136206610010959304057427796539570050251855548484816479084524889362141853103816305839691436083181619946864933213138158119993132503670903820258239225927234752241536491334636179643340793681826759755148648055106523900979684324062398300057597129497035668638974290582617424469816528992678239799328572136939898932782362718561694443051340538941188038122608452178992170561631387064655292234072356272732522249083516920033035229526974271408305261367119385670594493689989025422990106980428958891155585292323026623386805450028680406354053361627377581488439730237655992328731609118319673551011766246794836027171230713274957737756384252068968428214028693702803398883900527491655166515412072230226325763509205004751705379251650657602468153064283641848995491336857547568180169644785535184582479940163976267182937190210856352720910882558415950967612747722049278744423320123076072189869065231860726991618100613534434191393414020059578684778145400491804290632670650136870793955922076243692730305722679690784830956754436312638542726696892607390307785711678208230416554703229328238767119051414897158595565836752995984943522306962977086159930685149333591995034997541457764194894957831552015293278085145856651743258240672236015480030530808083960175371536763253841752268098633161749825034856927825067879413586144997968180555985892422065265043685639338957277405209954310612484595194774806502023559742993857913769965896277420199334957491838203932577508479199042922998753055869183145753557663891576859917375391477643456270719200627753562461238216124855119195879626754825388900235350797886377743871619983327072617498218585490973589486403572041703627094176214848837402649372856599948607518936164552985775197187413897477538609487282252591879070513899097238274314987972475127075426793495133466878379834545547917066512316758062093227601685447960334719308365886555506943459838800243341259201894503019963853816195482010075100036383019990072941936999426469079211023845763393527535826226622265442041522343048512540544693845668731456344166022033416280780898919683680705933700857072803536856713656312035036286408878060940204098426485454978965162281123429348727312906020550324938879719589734407059055881842582430943238468510236694417785790441751640438936264820101279524538679298791895933088579485978490841294945335054972922988584849507934794311290135386104954476195039476095918633663470922029937112936345959945227922736650255751852454265853466061300923478105269940060657214339190309217382731199998160282546735178810674404934622347096871964683688956122061540415947420299133373969772279477075947043527817219752547487935455189318316045983539040626316213163579951878167207494337750590638394256551107464188915995627707474905052560058588715791200439228444021474350620948423616662343392888734908024591247145801810159257790243934041912994216847837275304313626429056872720259194901627080051072367787414181230344850029423847485067681480026746610306267677167357337590117515752865798128467691508329268930590777333407588272603549898004703887645253136725037198653206449749465938110987994615826908677700107082097680165470207242860374966953620709517029161090024145983637897057278068489750237960047122020132492082734728540055114907280417366979446450048857715149783634544632232394151032168505758810485690775544011546630287108059532050380181563491953933814328684773646059981010428127412322985718130738534273738830097527456690985609718266273365653151379167816425449995048591127069653738992757712169635785836589430167473056133733985446705829084146083122977323932562966675001595257794072693937741911638658063528690869180204257535259793331392733633035722162165478204238410954430033833981002238984717738390001381996191209080688895188878424931353813318753116707881003916867492261429637023156588422621675159842867230243819716594089201550040647868630570309444012967236753746142638117204292347921543128018921205132263454763397041790761289075974840984373505007948435340276314617553973844269629337978167002917883351005871058889068401463028397568729022350333982659052424280946387693986014990641011677574512167406514413673811944758803284041634543249321533859660858847021597793801796259716160362883214707843176509852721251988690466692252170518312623235340043255656154541578272891969745710419119007009908355243113295771801468139857593991890269586491749078767604879229416828986939057289217300408052898814450300802132862531983259872390917498821085269349469323310065627109018439774636461744788754367893747921981124237526564329189909551826924084839686480495835329039992514639286085933947529462742899018466312244957355342027574376185979970755437460689776282182305607772958082321648231458700566387807785575433474972936517430839058959746481499296510996516366686943176193776378423944444867092844057258121329446065991237472343247705681700070677718140410423199909144331501129169377172172874371299850845405572063011628201680749887863052813179526064843940753903956006344734699679360108057802180805361817131835877683547118837290701763701336842713900330239414946380575701394018318322866963405469275783572105729986320132316593497157693116761452579162960533029423451506744682887491062454385386481281006160662697002102604985927014536764091231429362030816500063049275292259134460932451821147494736277359858940060576990240811540758999268935713425619336192699734327013424363984027415076782471703727374074848183276723568229502304399626315128489278258731570881520284030247176904438512850620742904301470434702859079640177887797841699461817894618756988744418544568920792279021396011311493601662361111111352772031007018573392848336249432326042163325644829992948358208180691261666166831541814679284124594337047011231778741486160981692319667684738322530537717730384297800891582920389541795527545458218933643726148364490675341711203092539883382247960283432268764757968012440604191553205975520604024141187122249601501854083730518583654928925281145741349579431961207427690153851269419649055449298968590334152348107084881082719915212709161438672751141637658624471426233437829756416879155101930478193040385064784062435293838350143523212785161027254510755163572810180269705388754313235075928378127673058369121641029934604014589980550490771970695751972435027624146352129622551901306789321562435722756086538050013326506512141409783607839259775647684092233087325685756264282633065030087634180867456360933181804398830122876009039516993008947212822086325385648438481710673463754925348776398040946532479349066644924035648606239320366064419228494216727307209278057855781351731484046335414895623998026920792184264352558438888391026846456416472797812853919217201551643326039821174988908682670598007422389527928738314693203353995320086693135173920511603778612598977904809671756302802746552822274758876337366659593115920931243201130174036646334155625492473879075713405774068488873174003194778802019901930502633616428554797061084220981273492752053746889786499998879305606058493070381333762707898051710049576505105239622783507581473945843766006030392328929051725263334869077436889917279299447750904705630992255886689818923159938428157876921755161934750908797690627697226137693138612891458348372955507630138205841072029443198136909299105948838623791916344796802224833186904788135754337908342051356811972537183493923072370974583172798596795207031427437911948520165752794326240036929750415580465291510168077557313488161985609566735918745792212159769544843775974246217936430393043346080730507517120096181593184638169211647399904623096095644886339614273671405834581793633529852308481363246998894563099017429800634407959124959986465230989022773386812091103113339683758995478725429927132326002956262346134884089249954491667123881188561619688338808814143190606652256162470778187439828318234926251786786970309997445863897784317855124525381883187008041035592513141762719745208662595936661760411103196431491187403167406396989220477432783413938647117487034962272835263128479872113319295064031445586589866813513648270204444985847087922157482351293215930028003484001628954590476027691305536773453308530072193569329804520569156255034532786562257504567925270873482025274333115294397047000022127444175773274767083738677189183480067755004095207774418862999277157787824273274676056607377910262730023463678953007373720976227357450366740311834404538541508631877247821868766368074039115847067002088984516377041091545049750768045857983352218545928249083415048779449605091631418179462181562933292575130471693574395358108714808552025805070662754167018362652295882001869343847718616233292984989086064970206795359607910930276909560479866186183561256075249483192507297315234423164197138867873783981577910776331863891881439777209830829272853696236750173980477230455369370892367825148329154588991648448236562725198626555284161474777781757554417130565297728752472759171202223177204800015105070836214705032194839128750162435741360605376104387912074912513325885381920098133605002986114776680596319555257367502879000061439684990582243309622764637381083204144661971357728185573224547524435090576601050776849551131380770029036584613517776508080459676118378764701438967881291410261156869104473637811786329979628051230670809443227064164487711079388177757882099219939922387083670714530538481813644567796346597619328733625248075533594781123174981765563833502587179990868731589402241050758277517413662763955009905411895828321161286417202450003488667880924622805768481767425076953499989836272350081506376848769298116403492971053112860370777052413218357340175562311288509285862738065246009292631491666936890604862415589283492889927592409620732715530322777628929623057849746107042108962299622184669158737201895139275701844066752665940147224435175608186908605922625028208316845378644655208188753833860901118551782233816054619482928900627004536065543080109109549260072101859428968468837982125240266533467101541921174053509603255382566721636957260097434769099479242373901782178303995656022481724194314501803861241702592039764707630776337903868240241450003650776981883528737428362936553027200607182208623057090004314503968840664569868153525054414520984582549230725363467625985480205172451052296426299570346743185409354200337456081785211374788298465498664965343133203628263234083638039544410790983639708760838613671515920872816418793821151199432307339071204299789517163830110609026094848012778978686409125912545214615698386829532141111870264102285502440258643185019991689928876705287047475912115165710526396667938838386091844510413456382382308088789748248609689976808430896018394585985282123508094361626268447021615291932006320370194436732008866536837518437544588259308116438846115776258910822083738841212601352991030469232991324813086918690761141084711885138688800901634561072855946335193425479314054388184860645850040392667602897524851983835316450702818962697580782537368449308649478676880985909509534559934887992148794062161656790993681498957358748560414981741771713447741803070081475830188473367672177260941190587923539562640519300601723640526583645029010030248267841394487007649517946821859192255974377142892581417359852838127038060764023383973984815934547179733216589046147264797759327208874707612784898423264605258949647201464986952629638026443582062822654201547288738097138726495056385554521170009036724204974712509311853221836781116606560401967608905209215738811197894575272080008424784941618617564730393789397793423838090775927593187208512737739689368788641912956477432814088092970829317624634770723461802823895485303550262192968926301987689107181609298618708966802248997912412244201893845354580235505430683183138721902768711492235306869226067579836332335502289476999731725384263633116405610739677816829397613772987109317066238084246769178306815826134403769970853561388572269655068826006553569761037027716123804926887127285746207602923146709230336344272623197072175593816447800763464511390337085928976029562365468606465292058587776740963380174271416158909226429334448994850818445919094536875132901913947585500891444257193315475299646312396433667138083579906189758234721461380201000933273706208077070638352627462307453117655069802536256039695166752550757194727121403616826152364294285826951008898195395825320501407314897241406544400834559978491369274307345864787580517293478242118566521089079041983948949727102215462618727229752801433775607701313565106819100652004594421891791988649766249481224153284030571562138165749087627275134831735355263022884072684910485721359592807887111863215819390097016979704006495200426649526639328390951936468308854187007517441556826387576972724955054207228421371381779027418919841800048799238884302283529625688803888601885675872267115391918440433776512858103416653140457022967356802970704044538612196707794567890740898445715033182914070266517904578665229065333474838599289019834404526914268821186218270169223084824342326752277780356964807065753250116752411195101265840650886545023113463776093095013396941363120561740122644524538521967492813396322009303140970469107100058985414908057147319607481453480454271223238193217918167118647517749175563290080100621699270069482828194813094469632398205782964496525269059379455017395096322927318328413234100157472443716799831340151336393918559755987562761105704307283665993099005663175888468848278541977044930457285628654590334734432668782368125957602395882652791040923796742860400966279489190207011370905209620933031539267837563714591487667873833266366782505615639319301685958331014963903392204211321743392349488553790805597578069969766537672588807461390060788236510355439300489903887164099242957911840282983689436821471337486693568540657697920675474663069866748834732349562410086252055844200912207897698372737851127866115744676721794843001580178431539970809601342048622109968184336001637380102755654300674875475523311079852047211216307932348687870330673122351677091226870019149534726034864853254640312369818068741734363101743806597691141879135973640420982899234282742483683950030748446495405310968329144878433088508847209583311652432628765044717974145545633238284765783302435900978799471357100207928389478359460065923588474305476493248109583387029032908666179155618883299595323516392483516684687450430217115239357929442737521368546634731644289550055029543908634581369422043864649141451016474334358540056836690249112557660548570288650694299596009961435382231819182682351039488337459274790750184815279261048978195089601853402707932070556236922343459509216923294767712700865654076963381800892477107813258844340064598489010519682248085062573413335975986802687368684673374889850684029127507479554074772257220210830634857956925628901923965636624971931173561594063363357546573982882219434449581575850691315679114873936176351927964299819566250454863862434591541901083040482906513650701997014465462593964773646649374810179979611407560605997552689146323963265906757205682906980812702777473457316765509878788236809200294292065234469175343851364507011316835426738159098710447361680700892530088037434442028641657331111825336273313518819823485124249585457067961381637239025256368766097052235159968820923934625376856737099750823740556349864071259233364212963507684357063224050099372733949815449468650272930052051606358327160735963091803500698948122702388084071393452950812500282446806059687196653056775840537355444461297410734740141776969734695540289772010737336370781736433074159811396783283857773951745028037766266409209641527694880386007962858411427010321852789410258618276672654525665655801530747330645374691179318520970239527961565981241963363880623298338551333813931721903048724543131741579353035256631387291616428890080550774163950698813624689441407308683701597976454506007900592043901425996337704544697186349190945638315574622353502801595242216945054353787500914824680636223863829169755805463604226678134451304605635527820804536185979850858665771972586825682848104162925925653301655523779593123680123740722155468578346032441495203652733069043713154156601291280377554282803149228692530902740263488283422626949876153104319624303281391681413152233193284518508948932711637625210008529359474983199666924305629519823324743216284321362391979959616144130544949092895136927562320516491065813616176146353091144789809712291185909936275409608354407412538947838571449292679849582647520210413404459830366311047350975326974759089913271858262101025782503960213917000764551347263169006130642788695931658561347894655697216036163451875059305021590850672216069893157771080745422495009101418232116069056714981959698915652063054524962777814194534653260232798149218448677710186353188946704867783600325953633994076170457799149090661976616697259276208146079768219375038010115241980748126474745320753001968415367871679454138909417411869576845669337820613629259351753590354521923390941948940430086728460139546777925463893370549773954015997863360778098954594532792314408249667357755515365569605483788454858182339335564261287025477365986462566073603336830686216637107044014905457884440324399692642900930844188152183141010354944101301263537963471344935453982431841449843851750834856371139588510673748594658845249212751235455535076377900365894230377455270433492080750459049562761261271698367062039149500825701682944579812830016030525123005479155953732007374549327393317362525143260272158174009948300143877615392247199989436419603405851804200795712168995015103448297241777195960791402012819147309384517583247304272065390106000301248552811074000272651480993708107572228778198992750239022202746406735199605834011770780790694809619654283704529634532580196757596222398973162638325282548413164211827469172557004109389227671924014661462108195862182150433659205839913386452130584569525457090117490276470707292614541843535645946431841869751055995357136482432046388862329983228143086837644845910260433500356871252951982279068559934630588591103101520169682465597745047017132896749853099269744569466013273491300548910664170612247945942051319387575361435976508823791190895592445048621349317688713307878025048030981693655932045878862676898639460168213301651110743255780311543272327045193431811671612265238881892275588847212693994181044954432079408244439914129603300147955239233582861309984112832923469077252757925073034952751484760720411555019380785794628819162142632701254942370943043395051394396907190237113070005181876861764773241831800122314674909619189730124374340676357803783323093022299195282413913825268158693067727143104920998793476305625362998093270369123160205850711792666115761124432146344158912504344413589494394671130117267473841870470488664490405893306955764329156542498317677212819891423684810722619619613110799787097827841637632117971569218261945326483860183873263375421717802467174641556915991108008557390739749700843773689171561935383643093225115627926428912675546958171137398913644032276161628371630725628088315623203873899487504039705648957772446432085809762195077335058785708602821390077211436396113656599424214862620957596568808130713340027880141365392052428573426214511837813549926281384905316079334685510487194079948071022995505583522335639224118387234922702280797643786248005775743130622725086620436511278840146629908756417563744394809339212589960277150348901221196645309918515669922551635354353179714931924413687056076007363305971763200897786087224699985073669770013543621022948931211997993233246792035519286093562597831215003303239729851119696970718157099250821001163474487357792645377472229372089638350347506601093121001117411810424592195774566784192898039288958694051266028795551400297001690231621181557863302093305493929732702158270732053617487414955367055802847766058092423865804827217828165388597994211739716655209614969049027671132607884409351916414241910838113151073852799298246099403064805562332598450558719839595196214116738009050440201742782886788430807275835698347687826688760040446684976038001242921352001646775918558832554953730501143664408287579805982562620129896235078977647331945649779667904514549214937319659816209428569636745454531646380972482316825387369345365827045940691095434251257287431247474928696157088076792628560746368653690961417098483351070071012414345541030010961791909737661937602121685308414054976872442007943848185329920996420925131140552399006794900994380013127487079049296714654325403506498781121694001628054249400305680405259163035703322955309706503903777597723498591017305713174167035193592814153508443547562159647090461269414361018303478441496479595761995192233225634235053360943395471801001139852923322726158895261174393080598325330869108937529381263023651623025162141005555142038551644499536506646618481908396999758464241599943458363336780021290941337492210923008197424605123445717518134085995526773589156255592046682545403441316111362781836814979053982931743318197324203959577325514200574621755151733629911440219769145642938634391682779049412266197410358318434957230058463889158586819141033898568453347913226507612292275588506929348058650328078287269297957027975182141959669029897138347648516325423602841137930848818861880287683175233549315267150405347985261703157404888626977778905360969821959001711887309700338160246001334117484903109231518923447655163621768488239790066982266131876057108607434749862153316997266766270979487628432554036986974352119391469543432078864913938642284131519121532252597034756105679091587229895313193015988903959381051088123472240627293017129904566543230716931821843309845507053093954570549984062444540478017992146932553654900172064993237581603666697802806116678780781237743264683695355522431645936016774496101119211295716391744452714762902196596304033596935167773337885948056345368446227068184218919207806356810258886865801226557189520291838158509566306012633492142823250219013693553592182677433368483210322054151544520907825108654188568445931793579004936732670869001393891758274797972796971370148281098176964487927586147215942886845479590809941458440951218149494535809773675933610457713664338245505249458065660266260929383877350789942964493050342684642289639003751711295707370857799217658788972451403068356683821543675444066686766679561734083540235658076036563505238399745672064444204862451384702946834833533998841936292122452809855425539617212775988150347023188190923556101472857951404807252679577561617180409948075693739761453774119939073574520373447087092206714284575264129939306422938975372610757476859289401068000043040138636800709206824200032494124706750341471162263397427266861844795343822066936613207868442389375989123738562144060049494985396371301152054812050779778353756467356237083843099853639753497811927856817063255672092175083588731188034405349997762666821647117504875349389390201930532590345851985758398028955600125300383311151545019605983266830527977763641638718867553613787690850066068016274738301366476669991111708014828867394791460723325688569589040808572915370966086969373881941699219841962848387556239415230027900094281613699889818994365777928906624462943436517001934383602633359449279440752667061819985099892810594859490254619828319265817167697887606251099288985169820243887275304063952986251966273604993628809533940844343395318681048554686335272320831934228127215993678343311882306284336514939582286103572894076318269399868217141300582772878080452123915505008520889794801947518103083901232205005388910207208515100506014441553652225868582548193785332820463276722825414928211400188079007059587207193552133391048689164304611622019645030007107888412345484822039169521896987575975088920709587056288068082106011538948449669290205709351213121447530206628259757066628975064714562252530961485119384479027843145788149821771489689620864080390243292624552343909320268672313507594935472447476534466042621941428995809539565581920075609796545804335981392128183866215294431159994363729524169381609667260673880212536663666141370327231670212356042224353189441797719174885181075323180049581077718456533574795121700146070227669303818689084914292892277728409450231235676623336929599220110457266266431025955989688790231865615196774008493124005269821666291892893346665874578311385721461561766775760140494372314585009255425424210752306540780619113724577105225755449975809770793452544955631688260634707389770173008866600489703409779814903343178837156333813815086998050185974471406754156881577148990277534072368040997132856441071898640146605918830190611906302233917975792051077406775773221746212014308037782450116932006621226297724945378280343981265473145301771247386947344568314988927144997942053561686986739917236991075240008773755205386963167531468622045339248426758829377053313703624184081833654909633905824558015738523571482970056571326396395559418134647515319327483917324376560125408407793615006119267404286362202743598677055888569186332021301306566962576859646698080943002602225089654078938663976169169820324773641634758518055609725194817655841786477815889001404981331267719860320331405314897156350978582681257843337311814052339541441575662712815949106026601010058900079785975887585825718091603106882579177321490801781560315688582502966444184609190553395899929241315130863619663936031235027445691570439643120011392145514193842528911004870888733417991564011070336840530096990196563877416745813007610885204759751538611234973162083208778604492947129425360897152008788773783522501574536161631379459865620571457286460009498144610220841276399650352604361226890351916372586328501676703263838144225539001283934609862830594029148601282987412022656944276441791934363740287294754357704490376878007201749691699720725632046725212444049402301188147088149909007752552994110428936538486882017392177062828916170284747542995946143035031425428131199845726592708131777627789013555965835262695165788956402022838343353474678596360686909371110411826949319540191974702506389999914549446461168172835817828182189026127572038706554531595330806550556201377718441663031008260810346005644280634513892988211025801910971063662632774210271502232156502580819076616025600510302129675215197043460040559588098400937128905670131584546135355631418783070258489981677718748576177175403969038436550153279276006288743161660175797454888882874321568543502491171747126311075950785652903838196135912062608453262218127421377138275843472833905881012153876762632685860560151802484386752846211591127946234061450253497632865944033225047614126223349933174694601426930597198416516655626591099677070496403480001202387673971120406340606027238119621565421922927095664741300688977878398653398960042175097737842508111729145663042613583179258849490573608946101061967070664636820233337204271493911071266632130931733584240633448407804587798106947734592935491852352885038956845157543202363438779642036924784749317860812008234047633686399721513810531046823086379007246652474361853614361360664343683023630166620418682154366941784105556510638740861785223889458747128713238260771515084756620549551750135077269285481804412084773384330253925010997982387326695308389958146984163496973795769970151415255702901920835969452948443105081251697558347256932014433991276168527226325738662646081018589866681434543917477980033913744959374958935715558836762558864909212037711213636790877767149254314606230713335086921765989741900976404092746919149378618282882810570705207652921343575162817686845219243592480607351606791746274348008529609783586819233161578299849418655840261970546794682457848000665225710867404286271304292861755694254117948005588440948055776728499342371196442606652914888845041079189821896494680119298031106388266645232362605155784828655221396064439966590537982700748376403404984408164772167173772994576399669757362879701231520927094283706736518483404589765927554005730570226167090935361411737277660965094381804866558811552493466885006449734169698061367258466095298107577219202071507171313620612078736055836474762022016279107397688587062032744170554690514399031348735550541631960889540891702175215006543958773695740319767378031574069639832188765386782549974862099290436334144989237253004357216476523630865216852809788554757909355073739708204870307413512378380583253274471629277101344392323097421514484506944943747505167917265949174501450967802332996067392478304189904900516504450233546578047026182093201183816554915464871431904757443998604761706680853010768776674503320241046861712989734388211779865320442922793535050716355809720240087416938945587776674852591970745004682941906624859429994199874921640023015054532162840926713945782238384178635122886224285522631820315009520424399544553711737728986469367268091054326720425478842726896839581933874805308109563623289886282681254406421274197736786419417364409729184890603492646045185498356351672462249186064589589933183451294470953877005891902610513956727451202329195183979621888390920683058230785944129982196014969232569439876896007375962052427219967528986757032545813753797651088757470644212739393369274335669266638397827480917409642539394170408227475493747934765487501913991130459111597045360923559042681077863288667639966092276782090608623252816734234652504932087068569447731444002294823640501279366877326198005806052447510359766017305095749495043854568730807155414377102332792231490793691884847753012285414600639794419482757941514762306643943866284561070053997412478921731758941246224910629497165764620692880447083630667693311930879273928426783436763660051202501665330594481306284021429722059245547902078703048756454808887021526748956478733518891015560954811230357563512188412748467235030435645831854969846768118035711558109296978928229068015750521211625591296982423100665547196320637459043326634753022120571919595661709968154858038708890077369811147077523002490463683192106023950003431424770498686655585452378353756765698805874240899376533084613189760866647790465019855749254559571837924339013720457790232622127194369316618344482901326249019154201562143360746781084631183460895269812266852070407889670800296243840747691968437651193663800159723830990477341014917477093304645594463580407176153929607829665744028959448117654689192962612674423284365630041346739292342765098423186294500646861066379919755267166268174206911366672784837391373296333437207349024451565776531000023624042537258186936337513459161933783112064764358770106441897431758328083770042458136408035869126823451363627437225418825067251328509166186423870904842699559622614740592005945404694092065840335024488916889388573126867854189485686577310570262331622354454345883443037448887225015585119607470846761241273888288103668350982419620165896741348852608197298312634985939946324989411992870964498247857612282339768039389885249267892946319265277345893717867755303416481882996634600757625126798224939902428329521313589475426041650976856923397344822157358243686796580989674524776149570016183802424688399680435675400930589182706421943379610135266285409243138510161424744086788104251285583049686133375983222542472293313013535289132009195100132686902696933052068404046935966221072044664434441045432508561999993838801957633609558770399829819456454459592130745765426204130978778556542479220997731944814056667715715980027077599672304468157649047749166431060605629106695594942185872378413494632263339202043282478423373861761067891471612801177138426788295237620225915099954262034726154212486486005292689000749830616931846427293383349004029535689053501171747515585863931314268247247798306699584201589147562162745092259751853738911392611535602249890195231259971983891691774985559254208742980963964059901676005686282714222887560902552879914480426164124789534694936365048013907059200948851279531500765326389720308238056659800405638439295917314237657813420903573920320874232493235769772539582835876676004543193856554909595082495206030820625285948554838434106245379255856519709027374862465129929951997884120331092138597043751523388353598792111797343107263498041552573838025327686842994854106841017649822023164463077225574293734924159190756975721089706379204719843001985403850396197248188408837112184103366771322150929013267219212455055998394165898524924383026537336832860370199632852365597175080821671916231856279397596127138784701113114854748721857132961087021736861072170247838237319160439655430599522073311948721543587357920114279388535703079417330947883742413915489326986489824113959843180978329160378244332563356396882316831645478718031981779694194496453531316626732998765563524010402320284187225414535674229402654674036692711425372474416896812963173876985342929230774308703702061780152204242108281328739793323452695902805514760390696392618977630279836263455188707194091143202521010515405458614615807477561606926379728168292281898753000523960254292162025892700840129675579582716892213907148009227906364183767278036279314920568404941622232868945173788205246034701431308460461723602578565723107195069214825700298369500712225697249781943330151403514084219334485455609677731424135827327629785695744613407326198591929908073033282301976987577738604649742582582781669326185378083516782593218126980563754149825500388562406763223262982292851293349017084979039453293331447739041400896385138901504714579936594222125718775715063107287293431895349570424645131475987633383750797122124952006799766892325582282125360865942290582709133508396100591028246012346281964139360710938901446088287815135993191660507499961337591748060143112792504005656221344852167638451013437108411778094099567089839530024201939693550648318460774913178051901274858807494353039927642891592234890664712515095928755662491774072584093624909176383858524546271752218343096059062228987186009708604566791342978524921091761026956071204628890029850787488571432665178205358433550701609216519840923796975321544378548428491009261559407945653139507228256799995625891217990581948562785867023674381817151712225403939475455086124861391827407785790204950558943088088195206018024034150052314332405696414202942288988955887440453821104083333538356138518288101777855959904866140197014405618067216290039637009284548365011676232467506613948137488458351459824149809762396412790026528286585405539763749808316715322817711180561561122471932289695244783354129533913633103275995997141918245644325048730714536245270479721353264293683615061358426518320292809532339573900292940655928454772931293834554887478374332876446851706426990550338043842666287694062441036095878423674553115198060806147933077377274103440530823721041205322037123985359399040824964321855659465457683218129820888640479754718401469942691118633992997757644893746124592771170669663794797469727762005996870050797031206504509186479417171315644457401875942642366262567779368563827252222713209975095102838080314259695211551494590335053843828556973535318242494117803183529807483991204838160179545556236834837996920722016238896545729932671841071081328906585034198642698627473078447724956863995276943596863229241701303738796500701022431990106141033610287246735868912147969775176473402440024529540364921332406646619962098824824084632296370843991953980586451041720157228987819780601972048424325875808467054643702120064456597892603893429111981922006047309256749749965380270907608576399298715125480684795412124297999163693494275763388071687761257861923266391077763521467524843540710941656763285816563281818985154117914567313058127093808953891989613774329126478861035111505623985019136854618648488955363736340680677856635908193706859486859911550116591717493965398330678914318984589058448208580854036704644119883680232076957181742654533435882478987927310580494086476284781537062030300145060606737770148419661086970188082298006950977238524043249762569839263640088911370994719097603998321294622094998626834455609568310501319339285525781448730044082377685980105626224410411786772820032133328822403005838617772749171672592680334434480739348956386451970009381478363241070891601386272576187930736704187422269361024252863251166634639369538500991648163501118280694936170625987915126105205775517726613429063739483176208731851949324916800451303560579002474687166049056772935456238345135470827122382224545687442935025014051852202993298884939657189559229596478399271816790613299024747060027385884575092764221425661982103117546320419538601747142442004800233967685979818973267090712742266511809896674561501144602352709827324871362794382478527718205465946385534671553643029029405724415855940727007845912170999096355199622025899377665303023275908665982757149725795654187998399891930349232545323264643094070152779482102194721873564869013117674320882751044213473196346819805728853114868013331497216679314707840189077554515284839026500942103339246575782937732773773586794814261743004477904337401684951967938290815073185952764489817655273591252023649914775197038253721107067223695836776113852130111147693644932206548081584756990055931326622008842217754715438598366021962644743981208357042124827194739096489434860812146150500431668348770172484734847452492876592249817459058272149091340222976931650795065851917340759583673987615238101188274427993483187309303403585256119793709554161040231835401108195748809950842665223790278066789831976528824072232106387498314297109335615495393589031454154502839720484634346771078133610724652137882073238015358056928987274658204882835562163955316096264473385221196906489833129370480082908810057430199604750645423888210503119889138067327647821065292665325243038790052921751495104620918907869427388166392172319052695473620612954919675263246344171601674786071700672843618114352747483465175234298372153902837774452137980582650807682467642892280843000514647358712582162922433210354513838391380751960461944719232610443051155623092940799392715968771770756496829838441144608319585934725476021541235553131169900926676450803554963742660451551343844674913900558594940408520290799151031333623278115049024736204650429202737721856689970553011442743137271696905822960760471029623949224243259633851848753012280370325711939473469639210367142944542384636060825142298067999657722762338623514746912269446483151190087809621746576544887886906629793652152370708672019426769918803222914034922129571917565720300771419679485475971595707767681243110229733831334483662870126584190865875069797639405627945112608224432222843599253466504253953774098333123047591610937585325287385034877605956840142252632442098846277161168125828276921459454083615225718811766117379252012795854700096808798453206038185187407637221647640764888032043641863094165428266483109856685073706468710927063701154982063179558289382200137497953116241830173445792662556022349092883643689140794045950769354453433354848333175202540041558166966369887740169769323629091636644102382907893602683807203599920898276159137019749817353938988794339529542968034139497843730837257185820469627283022624182698831149053887231975571627315427649918310088111688065065547394383926660708502476561115906970306487540513059411898282642298277517573314024540068304779622683135581360612370419980897076899236758276248700399335684842845783369883654335301531651123888223336791989256676884202304832689589398330532796769135983640516398775955926902422545564253809395106492261498963584088218024657244482163822476967144513131180336659570733530549300927277635251822215759563499332463227795903221747390724794200609377228915591898875889298360229800555928969482904779430978357959995286425264508684001494704221813917327442825744013980477318949902175321546404013356453650456086511660804241219515021197603163223595110817826853438487785834101100299529936427858621353974074648676385504418518456363922594836518481324299157212537371668675102820116865520882278663321022645978486392933730123317444745208635885765139887171588532796509688356966490993109708898267193002475559745602314313467226078761773792351921063945450532208944538599653305258309920430822874271145420643286938955355009013413021746904736362182259827117436543559877294147145515668777530162573312990924626521753000350389817529833771121439375405795552516930498750118814739174186875748994214731910159224805149241304470328904283371428164389089061792923620129383938173691490618320737261423619931706857182260249378797448771240107735457372557756639380571250672142366425522158789386222813405701398189511598737410665133837569814553183806543031980253901193855473815427597546242968419737392026336620479553291051822248243124462896847709776209891023604217840787913856131376080843145813566148057225335327485831585470860836079293281608064313712395786237522283557138099430839346694109063054949529008424149133913758304428215162542719716080069532004178468748168479151609586782710134754848681919324350237063561486074948940276655711233210139109530919511229051929771916337334313980189372486148334629215189676905207402379819328377752415208049959325920443218854549644656212610463057013149171128303038349226412958172317489059090353570756452672124391377461002515964566951218421317173196323681687347756202567420066526206157664218066166931531445355413482443595053097623568181757043108520105199181962032303283442363135513283065610017515662169283040404890010182193862368255851732321404518705625597616509599200765468438582009717088046015761061590287150018828451033433389557284466287899484753829481908853187785524250445677832505772296845305427658516490296280854796897826445916148192975457827563765533825260452979159505461353020721536535119113421897971659445853980439087996838088154838472491717173592173274221099605115517894074834282709939242362365980713499236803170368083179600684268030256860441997222904964313582458300617220103141284476076202647481462260770543563126452001311993186330042752403642307703675762105131510359711642367849734463963825458606241150622048317965328476495576086172618774492008076051097929216767824717876452793814538996851419125061868253350096936863780284675002833880254741615769224152449010090908444718873232481036535999163817024724396388437410327223341851368171086576138236459729213138846983409842062576696860379691404387647813734113459632470771904696643286669154315348030661911377795252722124524624273392268951176586351525598750498133481838358395884039786256936203089126516165238138016990631340970597428194394955633629640118102634375004131409436142793031238118895596909766778940038545335538528601168768813647959816612820293919763179924274644735121409760212779108579508028082245853258775094926524517470538424525176739136544766491224308315719158028430793708947517822867072959861380317662864226807768312835818152342757603186551427693782020775384150383192366825621778952439030591214195061104517358128813792465690240931986726831275492400466855761019797009378435101019830743947866912565006008809199803893251322041813389480691185844443530945298789862015292530484149518311653260274486755475195580259941369676339148320735521328638268975881539637358683079517395177595653488726093804866451270103950296057858405558312074577399603129379973968459658412240889871647226143983893669364043393889021412976746141954065441033400920070733374843263721076697551561462357112487352778760700614538335791085965826799895149836158760064241662314997150096190342177342638922658376909811280927062720221162075021710624834292923201680782098818314979794413642947339055411264425001809178998092535518905288575279965438924711669402337066181639209237364235163608845075186961953122585977666316690282662672513878292013326901009942116590159807936446694568529909418348082419054415903208895639509682266571094360439893835530322920436535245204546994141469097716216491939840626608789422448357747601988666336874854611676564088120676143278696777024346217075041905145445707526617515333888648477210244991089446083668344916233409977396574712208974575180958126751745763108083464623000483997862833912442260257628141558906039157612274185650657181771691795441253088701611130009490991705696045325312557932904852439265949198915162238571083651615291598811716605118518518604003411211412273219664312973775301537054421834320407824036058347693435664012300934893876308700647541514949429966519913293474885680852036546279339621871996085363104512276504556351598324252522162002355155052653816890255721588275914165341090602121635256424611962360465831389951035886877565589295674845863850061079526037433593524019948812248539496560195817464238939230968111463537500189649893540194769175530918860933925511980382874725911593136775425358897270967963935039993711925923536407269712831749348108628450395060206517565931307299898524687259719489986460548925634624099591790124244145302748423237808386195237637279646608143974129187393136433192241769748637062545303207435767631393128793602204840555009548333875483486361706313368743104072604998816645369859768699673233053579461657135194748470873339490542658586296784328094635692172190899863194803402834544853696681003323429236344332125104258505739701029296902355222369550591505581715773501912443649144747756762612831600371104376892422754935542793959171440636081973691371924597744645091582973144076228345489472971724573477891031319689863626131171824092238944666013071881095003522141211158652103203186230585503726680500032436075335455314535311245413628079594355885293384849128587924742130506537084992967490170073509694255072835505786192781285298945662343783621804136980236481056525258557024223608599637418649313970863301366085123470842202269736147022025925431627381139447971970866185235122883508619305068631276350461542524096910449245282952469609879273500770903425850251142982640701829086670223210694946279376375875262091928655689261495960310298304992661426912339139815143738827845455721380844872856597715539801202600096746648765873073707138747573817514080857628780457734733162884696679845447937006750360166982120691105453475087668986202463933492256608708115380468521556417186192577104122756965812191801680919116708879300865861110503220010217125108011794320780970330620487765505816697934991629663934465135237365370099717497573054791239121154708669563410563884494259705655389398101692086884566657648769483222063075110655558982680893323716882610692124954631452013583292537325651918344574816719823648184009317195684385658826477382437775041388238961453068223994258953911198498557462913689952656378339275742307401994163796923170811599836999457857883806884222203099758523452534581135444932772767936907674004810708631463878277900118480379683047655986422396220306007007077872991971395588456692611615078400695023382107203612112973853395573186561375820244160989076943244904284072842745693335487654284041821506948090396246945500003956640987800443591393236411402566261298021012154666955759717807189106526621665720339404147683200674113049499027643127532115063058613690726068598706018468411823729887828728386649270756119218662090127323300277622807102921922484917474043740341820625892790116323631530840371464033485179109463894042243338655804107785272246616797388367732045420244265774753253148050723421802703780725112968732724731073785479176766644467453595729262137248691998056017713351205018164819319819570994293286398742270523455698913620854353615801287964255367817234375364159562595665652360877649626212958356402186208436719833008563386612269676024019930909761998012877260714858216136200351520974526132166010794916380500355026304205612654558801709660660318592066880753557547234498033143809317145509121245797661668886792464674700289972284284481293914129593427579269631985306882085453040080789643183875766090441705318660121868079879961557261480929923377629959616432506776671825645045284820822289301610018007871352922204636750381526165045459428099931769137844259719546979365741861626505659759440933729570973952487441765448729856662974748368851546413957104689966721958114013621240304363075385873475187119226152487089552642713009853401322630753354097319854677711657215373150329904101530345303433048221314409215871713573726905959474977316729492222347115132076130339525000976011570445737722795252943197208919386429823631773610883997238459408336915597096499798238168363254428522667831789951078908750695415678072009718457460637134296357550868203851902569781239540705919491678878959080120227222599927660914035207881778326363604982754454117978405819838670522571101162950781896764070018241738384870336238009621320022334680903625990212860791682222038894142540830591911769207135837751983759770832510761864846029540018922521918970229699922117470075651832372412838366685850108036648798637869080099619458698977067203721020740956419339645115229648290927656477871625462649470116584868615488979758517896501432723537535232713214131692960835785264130757957369915463057942709750402340982390371171271112577258231818498703941481735013783237640061095083967174315948878140617191789015922678979616095963697827895524920355957497689438522674269834065133307118529787885130543385713602806462011500937265426654754433751081065822644313989712237810439186953729890154668420519510293861774178065238903227632577082706903544775100600513591528062806959645443515689232636125702401320011107933418581425601354755035196910961065548534568340113215237743714689994734358958088978487086085424770046188405110857811330960302581658197499511637886691692213640011720644643042213511856204084652211845042895030194311106767079268579672719151221749950979412326217235446083450671696438837536535365649886208169381497717797967722522445988798987093475780024407190313876949454399846793451310557620342827674534297297598987206461116379676851018521613274446675784177817052591559505756369466330010002847574144844172177624608122536372073649302468484347495000100490704793738604899139651000740149064083990125377036284621891586202189759483083747356134469476384015298246806378890794320956846076046727569499298210554514902708102556213152717725362065506818826754112700058247233887806989046345963510796955812752323484248358465760937754851410646137533756809965683140205838522684336966903223828917862439447831496961552715657138429802613000809837486240244705153346509607764880899887317776289359946100542006728069844779662489370329871700974982619918293890906856532430868794175658291900495449461320153989667239699897047787818669340446367806605651136178151219840261563637597752589746799055876012768367973362470045947344388325613598293620979506960530225351755830264031699873315397919661659721127045092716580405990649370265066655072006536207915188848065586186968012582909478644067740700121897126467017262726572834498313455128318300269453549762208004348630940787948219332331550719682093509498042837921410114276628609038696498995045056557404186267961835844167194900857591145812544931560708512242879911491949338022940275836320581588881531675184535257597816977347827642403123027039173353806266067964861557702651999779489519038765376201208239987143729854495399989050320592624773669698076687162826765844595737019223271873245216209114200973210357434112044335761346081144659691403049333134834524633785293267449463644373280642371242385486485794140471937460656778570995284677818219277681948943842190933460969321962153023302651237562275148646738731341527428301620127782952165839006575287661149412494246376208145280746391496700210139016227303912222189288973767687680731061915377071060258010016014775343523255510590008467152444637639445625034664179271123249995046526981449141617801849436304659293824580682341028895634270758642500133203852753088253419121595342127055881143363227810410033710524673866802067805280456583525026657527149564988588259466004877801394073056165374271287912852407268568496948167073081992355148474482149660828470100898607649728815033154657314561851649453199224540161810076980770640074420874566447275376686777735491896275314887668839134307340013250626886886525410479944539663831993835516465833045330811666729160042019430558055784736504265122871184864199642316648495036238808878194333060932755241924730269425291865369367044021792417605021871190803561036084303781964800721169846552052152187217833863520510613687948661200301478326029957981042145194635054557174774290458994173636306405984762440576957463509577411344200007414590506810570574812126491328958758219527575313828938230591701456582861978721603016233143025155668549305088601952015114535059937246356050798178314906350422554427057366035095185304398205248008861243326279295198430317098419733953764359766307211133506048521606543214762236064455589662178714574679093867433849969500141647786993782900367339833926293551611082665934824439029722262715044749561763772891684084910361693581295601964684018409574798309663487389319003498805337014684707849541195115743395589853140106518022843201789150852268316882086381419812071918198267341277222180725947310397698196953973873503883335434442768548323030585898921193016689531649226247254005578382647462786912705675957035694721919714404569221118401691971540725253290199459803801189767615754773603393552151238173061431478105298504857754255049448362902171971385524711321354150211960003820487781927898513182643243989878187504099323765429502790380595787861013520510985659219388368268148015853171236482132123221551588492427335676061629620726888681424184192210147443730474725868610829760323564778726823265589833859358118732982416877508740360560894313619710569368220428459918076732416432672286603478940316253617436152282025102594320472195037974394365140929859786149909059624963187294609616752257620614356044301508425522527097743392451501380269460101866754363343353353390860386369029347339043152102026031905495827822080378695465637420230110251215664259761005275144975193718806371760088521194293242561989092591360661806957895274796309999620343021069901637602228788057755577323523302108238072081969130798593896599184749322626315426851745313733540585019539124915232248736319537004158765417021327454962342248657421976141145265970418750318738681301513162994620136769135915239629681654958698617210188271913336338808504519941591310633982104568696544189533721990947286621825815230574302544364552115814357150142982426847644845503185218719612169851711863581104108773758495772444634100376201606238621402662613507949091662373846580719547431045475362801239584471683504299399869708754936100014057497539167180528580830131455833283096493122428973422205411682986648749713353078711039795941355485556738437373586838535752618407441327404646760778282706224910744512622171890134576420724429590904017416543818844697780721867995355771419657540963525532637567278206024001531676414770550519056971803300479036319939917466253271155436018850199511248487985723258831607330527652236922138312301414840054034667166433984042112113895607843557587931740997825606986663667405106116473224142414001498095212135138339280556128556421617128619339713430803627726818830698957290155590624813720171541991885789419534784260351494038615704189027346453807720044236619177987462681523775714085870907069644080882358401809153314708679186246724411580088187363609013477576559668655646008431132108433761102998832720731900295773599571609492653128503413589618449804263098705140529865962290801767762570366785016588773355731324917887599464541743738401640568333647136964948538420236451173810259243752766124555664683475930988493698273621009884040097852771447621398765280312479633853657919385379830642187565998367781219433785983344628982279183855403922468465232549340816998873659642014906355436512721829366431733072987730527486923012409912350495591035222544424594658293873719550499948575841052620968093075236850713320517178522451993645965828276081632473176669174851971918244676567874255228203239845498094285228169964147998338460842662409377277092227476927612298196188125104331854131258201693797778653753934152506631817858075790682622995338210044187082693638416424726392328895061605817921225623469198864798323057523884730669976180385265257392377572248808432425302058226644239540446012522788325077648122624924315924072530144878090636128382968905140316695531404493562768703058247239721311166807319223515418338450851544324716146993134985290995357858705206613880427404275267087289593252630688691374870606835713382224019326576028230282943955250313440986475832473603010712523695966214682949806489506295517153847100872446037646998236724151379152085922798623318526686162277763227981064054375785074454971850403829255942954557677528394503726132221746203415288604743911839988605151241552210241752305676819437239229770665356208356285474563635993644372535019893950411170718512533228260005261861120895674871686233815425304815898518013418164914221656906296988404497147212727450647155882485381566453672280126043291251386399690435887784884981804238200728249909266455985756510125837333738816942999344585257114390287624131584904036969742530613990874665573927530203804853017343234454388560503954838758338376962621418778026023190386730075468531776019617980409646284318718072335695197933579832854147839649945948802481301130080532203629457173022330630223885424461444634950825860841604506475009575942247856841908637420791681857671317412549491480647454520414963366013645975874455198317566290549464017439763550578363508875191039877547568622557339614592596565713106380493488707127406288780482834530540872303875584209391647460444699267070822020731256264143138807746422522132548369467748298412514241607832824490182465868544484833128467457083989281853037140282879377407671143703499515113035522056400790142654230784060129555690492763366194465386560505052650849483167053792452787586338760609630368861096763266130889744551909968572783646060168614807656558754269488732929474094822343618596211992979286307958656912704515536221562089898727446977409975428581230283840277077891455826657781268885304134644333020281859207334610110366815403889035882212387442419486780536320464496572674071966941551881954085768784238687976332823882574718240348899187714583074705983693991731771072810205024017246897058954383950878358436952392447429803384857947488779935266336895616238859164759174055570857332218128004700853685006189701059098191184197603315399361123086848985231304121259454209001933624725563906960592206356781482909032747494015497333352757743769489599834942223004137816076533914833048924915436417443262903010599617132666199586853682746369968548002911056698047298347254212246548555551634225335911946734338070984413553271087606940904577755025980765579892230919715031431382297585429992706143304535396422484243274948656713764302899039871652039940232494905277865176169459274399027471336731714765684973327173276785094899005763031084141247936850614520678359992807555642756438040839682566101348535431852375717307107542131761155936922811798078956790584301424233757581462956141708404188874803051335857092220439869690907467709816877927341709773292345004110954468563743826455127624996422788264339431088884344741551247379193299679624257837688080518472635850371110068945179684923992854893947327794217005078877102361302172675136686926150844538455922519799233284000607881328393303023696172934874620340273626723531786769105579080918736515996887508388100785525699444941609598352793524079636960271547485982833651467411044225531086939520910746190758633329439985039082924420444579206910782610180692563724878593595112624038402073761679089304698024621768275013292427697554117454561116909477505857251631887820958606731474808836713143855240185231012191289748133680058656180294564067317130232742138190833488753000309397491920455345961403868841077361727362811757101660044149240641038721659270430355906959726542457003914243266942097570469900498397514738988051274787549567736660304104747231082812686092398438262659895248516076350839853594243787832636120304156223521831518944783131274573801378844505045600455367664329119980703957414430039514210485016901026693201077416245345930626274729622350255306625343481473727789275859298839071245600299872490001527420176498152793783589105457223268023174468984420565080574232825520526575209050647933747446642983496240445367477242451324354540832491620966438044829254665537293677443555252943259917810512068709000559453962002378227696191496585602299414615006945407443116233876572383446996024712268417549062290589231491409407123393185306332439069081771066094905469418951392369824616978695921487591819416038856536452382372716032838688925024900871958050368583399589841007824900529628096523558575868506509258865284231444263611295738037543839401033629092375046800033569466304700012078797686305073332871986655012840838408005116929639810862375524325474979584534052739121392646762721326866320149522481266757924246647025846223934920694392189483200423258162924420928315318105804338406147667974661648086917560754466204619757088334608237125290902589904809268570131644529663128075466267858036934187055363286857759518036181790296767820459533829275019006580604151073502868812652249003459408916772542663489208895588087236956747960777230491470108525768214801739977059507821478852452026257712155578229645025809537983494471275047334406041195381364868705858686037267189086522152009109127000205516462610755329579395903640805821970904896436233389227442485063323248882987769861369625372738400506015225424751637832251322796453019288671222267970473653456421792382245184723769368839857236054986249639960926395446138411608949700694700414022591040274040164222620747126166153503478480630627838009002682513466147297471451155987189209353993942092156695278505339867543058078493725843740784512439923085257913133534650306736581092771871799345798132352498115462943386047928620199531107050712998600977368207958915354954436783532647990096717232385788065804399620717960244497317378273037073362085736807209704034475317171223939859527773585324493725516363097508466901190836785457770137530409442665983034295132584413773225721639516142388157415351961820239728383819287664067003517070120158929434018377963255523075245961807300904381449671591175847475927644328628984059319529423247162001890398867797643982062688707552419627944751535230486292719380844820844724412048480574627540597262875751224728279254937333461303902251774824692373166002819507535456835969964304353259914687813103971067054475645598115865916117530889350445244287407721924686225905285293021829904028963964176415044309377363113506788283426181215162799037506518403664800083827291044979323782547596186896888102154235651265778548700472432415950908501843046950635289568500717257996254376770261148383329144941086519363793237853227711899036819711971204975628229861458476352873814557527109267152441743312013375153067662964532313330403563182734799876242599402790782409173886861499967132243832790892283575292106278734592272718493590147485234952876346810543337844138488190253662992869355577201048996923276446041450454189446426687447052838274978076639334114904315979511425060431107732613044486917787176321093736708127037658483416307406544713942739058593334977501677805775309554208972634425239164999785910372304416163351472214630494563173833644179811943543837831429365148050155583035086690218493985253704495772590520865121326940675704968788474575501881637850549043720101877290349540385963642647184280579169461412225339320908890749958703375879471295753835056392737459704291208183658308433806871356640382530130554560902305909031656094498332309037697923836407152896311062077076662098667337849333042272075854296894325156801365403865727582134738423778539284740450952005905410845768120497590201650629744839730457891288790429762388554526620337348413784338918838024308778969804473443560130707366172094002066470630892463388949675793880298509926606813320967402831873101349660124614721622659114355919020728198409813805358288521198025338214189675438588602311184858044948494106850576110687890539179600425556979741174566539370165510669602312207815938456035423224697760685369924394625911529978183293025437186161727738124729782091663720477859877226223227638590228984603912176484455593226551843004546748722846348262695325624762022112511522111541944162991436964366821892414494048055485249804238569199104050459267032323103239175683756418255384027335027924824647857878509733210880126392178739789080551889515608838022831626121903871576184006841193874937745649483247423233996624695795127597725375236981648746838117479420399560062446203590320435459425617567192533493599657153815550697178419181950419346048646748096325550131103700042515647627919393044383986272975203770050024270521804214547564691968004035752273963187847516447689250577392389963250576475335082059832486127651899967306126448425982892589378941529134269004425902955554145821566462117484733913976241600790691933723259655974688899984505312786858088855938064161839862492862097529309051821130355350687417973416149097171647928721768468041075852759093314566042121117984595919040834646275954985796989412775081406895472977598027171775126917843796074317104670374479063113772966345005663621028391335212098826540699212237235172670857853457202185693309510054583480274067844121493971085251314630571989860713298183324551331803147382419487497028872184128943613451539336623356188698446092232961700792947690954334562172135199617423475369403566678169581481184458641799845416711968712292313476701835857703173008169831376974221331923744430356099330840148254805045170424110467379024792190652376680177568739003067164084633593850357627185184094885613999924474902316740078115958182832193740330022288329014338049815363059077545511854096970297983041140393899238637382757278464657104685768530075884253053018462504042360481560819934677422266164078632731449965851557246809802743746755438621711355444053141984509572898984811706457867892274910142645670729007816105755276296925222825310298037315300745950931645675475366929820398173402394382709290721804582959162914731485185791491250396394647963655591185820910515835360394964882360989482666397370015963965013925942695386374248974833051849692583410854576671439448311431656322820892492497723434458964182678921427411029575380505844718546756309972365146491049005716106827759192431196670481695127777843724172192594843755811637479469786360107746740971144651925238639451300972317424849286187168668776682405342288488902366356520187891184885621549143114489361289915415305352831753138763801760282226934347979873072671580255679085616194252328480784503098687447886672007003676371063206311654169423344129390006519626508638089099779649422162858132591534114869182115631857230855325920990452434708340211701038156102928158452635822348994427468326693569213768512015279153333791530518119006611079791561733952986307435071861024774818405303663413653963242491149667769330939446389260397387808290949346070511962998154605486385582508293968079802959796497011387420200643592022469320008421547740938784025961798645162362263156307541269032007016591650525990900284914684527130957938153669142905018720788301150974722532020660322144080743406297304570857909033804478081257876130810343855677951184895068268919100188657214759037627250808459397527571099423529286722831403704535262794871402225551433459952585943657266866184699676904296505410302090892417625445701781518544419379796686130816079913335568934493585033763326200968340334307226853889466901996015313121047544136310261142514917336650330428148580014763785314526022812662626021125329016981226128224963762627794422759216632485185564906491982800180113632258179079564294202417680993658013033989403858569626370277006353768071164567008130704639670494592968593048229279489413631438366480935917187614147696080060168794856403243012062899410863425879144531910844257039887945282136127110356888597898568164065349571949230595810246628940396914123971038975052080083041317167578421606692763506634390503511818732799456921508513464100918717814330798158148108877442952522754351661048238222745399993271042704535710152973924100314914422401989795433572845454620339830761463895562968457557338358762041373486512497395861475940621821398145939614671979681127624895071268171612937898792459148862517977419978550730921785844992406105373448763089886344428655814174355835229831224405573518561234648858487413077035460024983544212043543398454511962094012111930301161874410345511822816741753626547371769281541226636518097527657669439862307051970699101412270691945036773243337179205746676778500600290024874405509782423527198381809311513476211545629625152521714828250964474827908368373952217790962345254231809176475793479437044508775473971307923859513322736773014591544553511117446594166541559528638945848912624593793083191198253263954866833759969361147654154033308994286305137366399629395733806907474606530246595280389090688489128104211017753580872815609623434256003882570063858419948983634041925675757954623247147847859770605586899386844690218086528363701236839970499885383305764168665908892002901542808837635314405119037973246786183823240514984374028794358252454832727302333656049637156406929813153188719698054538312878596812782501777237734994453051534987992664439046375661922738185501481855002235624385739653742601361513581083287756284794449116625595247519768161386182416424587535941483016672097487188550263925249894689993147783787812315555425653860554451177598628167745791218456384221301819224506546393111574008547089956689389520641198340813221536696617291535362770423087628656794433305388827689853548689683504557770528448313563021049774417271248643307357522968763856536704604105383351602533906655439961432617242794409710635604109956913066300727217309351134472809092342132435785225504712202275139485107392713359418333548238169209713030319938600053324407155736666505236876694986765732442615418550188388861455800913574513095663470118224025161441500184795355726630614845976294252103270446871554435865949903304130196687220726073574751318026910758538140771294155943050547458384311116888610720050679920269436512157870565525656679957140202907907625742880689256239442319592887944458813525366812329792217161240780210835576632420091221985127341041004452872907683012333294587475632519682863189282530614034855114245141953958790820169986784225004323232817569045202710842421193731379699003123095908334778358676786737856640788783386941980008823430223012138799028880082286316733000241176988240233018997122177091771886687104551336699073443126371406302827304282230373348847888951038302354716414509597131138078035983707702791684915351798440035907715022820777438841490910230617994455339148816454333300148445206759575441349139459248537482728014514824062436414343429625020778586699582272184628417532206536987259783516269778174672068077632464904542476413585200944507775800948332779407884381647612103921270089015596146296010424751133141399240131342487460859615033983943302393273032938858836212146261089289445150087046413966355889944760149883935752447115877326596932918813440637908863109697540129162513964080293383829130037871350019076292718341825641271171061773012558895129431729934503065709415187859520621432514453562722968806054726833821566595061142923793926872585378689973688323518706550553765234971435044417196218434875375785799130675192595175697153029480337595639407507651554681898519272841328622430221691635565656454962923763735949634817351847680696546120013462059758558069353510923203931330652538677833692040781014251997509503757552771942332283824402764042029795688378154229054334207468950242547921321789458332984204134607093098790284862595755960240212727765138758452638798395128862497766250815796673031982490007572568243150816259759111725218157227385822881349828322785270867613107974573008802387917645356552141600764337374371628403288093614287275800874896974327212110087961377468012056248052848302972722629411580339275059772349560534917035834760468069824483335546527817705492017710796423258048186454325746853625983055143060825520777991000102796075980785321856855356858058851669527463981405771194301169791981060295823963963444699194710219900812545738484032585565565327553124268948986694726094604784636948027837509156226092152436184824927513746497707976192626619236395698348637559129250582214453556727509299343549567335938700023374554849179964928553785589548888287600223152878350447337793607349691071041603464289604019487249182262323939532776024479731908307602585594573690906668737258361546470129976183340000953078063765210168586863111772558325105143583398384193832430463093723614415062784869996888588508512930410799686917045352912685428717090596888399833094362557689052766324200427920933805316923259589555148842449905156778876647763376809762044416646448809888575866629983561707960848890733936203686392459889176443440078284082548922918485770124726282072780826896274149508044338047231093845081964218830419367138070368218868503192873034492470046487681459995372919800324684591131605415381744852722198920153616036467618035104161767982070936346513621088968812748779061638251833757135132749878516146158684438019185682345426442322581037109701285231444942060761106754182213960469481482704279759533714766769917863537488171069713403172447002607340425658314766984158753615376895380912813925572351866782285900573745767321840848357272136820339229453975437462585313776600404545757793708301609851111793437884636325844172857469937022402953054883968458704111392507943303122106180516670747982964058525837459577558601475281269653873081785622983648081425007324526147511141862854354756531794123788928712874549070800945304194955784996752379952581480798233373721938497092515895047101912051354642249092418155558646732148789729787550310893043220649743673240103046090657691424555554790738392670253381466864793814603220081744709668944934163104989207738240480411850491653423867236546680914531582582147045368908511570567519061050760772051974301515916727072803236221084726150654213661538291264966288534719248141770214917654507522894342614769492775893202109169053394509627309302907588218540868109249042567778926598474899525758476425590979518588823724576140806736828451101014632928692286725197900161824162365741664266591447165439575844129472765757387586430401630667752692742916678451935757757209557162822711488862564915335915849140113194643210626917074121722896544801132112890792541876328537008868225491378618448993847120661407435669606249337966329212698462368302488537932994319591364005295628355099814939568530694099393544109575108594817724462340336390563796511630160213212607474173811407304524906193340120514442428463663701654646047027821638313987754604947666935122144807876706814298560086835815750978812165504464755261764534664375788579618691181619397552464845547791784605812224627446904545706694088596336058048797884630624187522344746933774652792773018246977598462187673826065093906416600344714606949351632505045297121330653492234244466556057149723486581317119209162313847937793578267053940736952034141758114505512584270464108593825438142029810424229810130093156352147809061687967201651186910088082524010673876648400299912015308333238694259863033049002700293755100731619773678115252616541154135697795160784833182705875067365023594695878658761858647437001760372484553526054830195901452428679191751825912674767607675126975280212055638181651834945872257596972111953027592197562868487967133141316183056450601522360298128129088587404590338831398890339917988096710766593351569900449091464629753454728638490234595302832359306379944273630259558367728460186496262386560145525254314865275518878114499457893090766557651564754798939473602106715433147369113695503230145621796640373461437284876158979255938682390310950702318101118878794803907911621437226102789725630187045854007063526211155708126245640550285744332330016148029048156931027910667817814277041912772994076628529881296456324775932878974323287374688698070435834304425304904515378020763441474490264768926241639857116531320974051487230223399016141090312876212416295937905243970959670191345587756747231812991663009507856319124135716074116053914871979604276876740948594316263686297189034900634642863088967626254540496936780041273833288725193626891903676221227526427213016720494650466915158034684774308431575047432318787909920121733458471608789660933238162402263910350535949616691086475417242713282907176575846474963152010271072378924476372089045999811308325463375485208316706521279915639269286817716372132243415187538807367998759925698424568798962631514540932536508958002780781150045788049304636480896535417777102825224099759779652995889423740491494439421125990687400449212176814938020583631551134600177562843145356133433415261984806572058125510306561348627756666421974034324003762599068042008314357778883456567585495233740399225950747706487785531301512536347583959196800532340452340148275132216024893396122240761706467097169525770772691684710649854196478729457326831676411483550591682589245766137894336032197343611154075096397330927186358012233455122788590468004134420016986589710295340767954687870227505493307592842675582002146561698401292174524477382396026848700229645829853107520527146793005147306159872669389965929980279676980714087565104695698106791053422917522041422632974450598900187230047599187149052291657298539028821664762712234967962913004359174783917586861812225240822945301431037279313067822558522440209428177675932533694638562163936947831681233910910811648574445966094927026688029503977123712566812453651669109907392295556411284631514363978843035450425306309604443796330330855180709308134774459957462251410959177186723862415766509130725473876681785217135271548615126973853690161199687187259197010583316161212609431175284454666332666376744561075106011341070510709788831901526291858833836786582476845891649008786262345205197793706513353456539970005195431293714893734982526155329062670914482896696759589992702465162742778430038608889338963304353556738553065737862576534866215759393367241221069875611214359632007077557978210092746372714034710370945872659696418162603214221983066523418334987903974090786091984548289402222002521588679161507816547607783279645287258115902724205891560473786422583904569897740983904567411433402391957608916165590997742711379018059985285425075442750937200198904891726847607104367169620037258869138279038817785109765451399195312245519173079950677383921661805687660659628363899870034642557709781729276120141509820167253187731250366190699912908098092781215366309169252526210750903190518954272191972818308620988319179594842264908490671108377782103740712150512593448110126843438749337015870289608683843023862497712996247584625957170560983132330444788639236493061651917230239640910898044396890628650721295982799984709514648555511279485682935046500955065230369563415419311260259526487273729986667353351433468545191293234544815738419601143168531568846069046735599658785189013123055516390499167455707095841332441678581414131841944416597755532078206367086470558286058568904215864756013593031201525270367097161270656243927757901494335363097233163707041256884888807961521512967888533587469179482757830693477501052535268671198233269163711519322214611136612545562101442386196833209790579595959586848502636476411978757720137310149810716309121292353035578144601010317620985637575843912538397695059699874914353598392769978644818171641259951777203836083197764517878955665738630706703815866808122060538748560587638146387835071518062718730274242584067416962074336496682717388774898564569601225510827404733579716089002515240582838691256417760484531473597308534568549011569609288819062901434728459508855428295714565177479697306133189126684132602418539323886434192901347269585702901882667912989770432108852819774667787622809044779575576703445694521551028656086655422791120247824932773713707347899189526504998033643048219024346504490393012704979674026111124603298979133973433505755734758138050928324213643044159162843218296554523523001409801281774793189533885940873595616356407678037949900617441858822181025618363579144182694935362761633711155333824222733824203183753087736740369521058263451539569596128973257871748249147693246943481774716275023230132740998459704315504216654772768509525176536650066979646486480493441696799873034072545939941892038531854565753503233360894018398690742170449797416379360841862796024186824544550659886798203831140709024919852930638627993087906174516642107625200548560279823101048977371349174771571056551528159964204965154528118554225542751458279046571323650654271912104203420267578851240966498203064580552827355032380921274158296584390575026937232247213141607993309995440725684664048882936651016031636916122490623642110746883333340510991440168122319980711491766877631474518732811896977092918605001911183368360104534742161821739282543614861842856142576700504470628062515422549952238683556287376370546315553061317934958251233982923050778749397646913617018891038718826251723818938105085518888665673228997353490008661442939499314053244615574857747350539482232253723024602561508714553066488657572834235788120722655052989125342270488519009106710534185998521972527372529121876217327961186621584050712996721661018948967257819214883299777946623930796693493816450845622255016282510872408669965898868594332347268460222411873283476453934173344940544781765540360455493582324188857051784220042875294913671948696345143701540833686074072351970778482023314797456445483998732175499578063448766199333612571580892391143702219124309543963318610976995171070043492106615744471586619963345453688955424654427240702773138507212841327614816937272014778918900569291172097405952789604952454901652115238783859846216800469783687429608236989159948427064237150799944220925849710703709371457177283226666152381873004822387469492778847194346525008089425744588813687078120931412200765813053483446754897121645888248214029688626556784372786543079739534457737071008471785393913579544613015889314297983261336545208388893218545147584470515478581642531889116900984080205667187616893116374620257161435716692222836314859735447228621643765040035946146567091394896256909915138171141040388934619232081229598219572226722126363571648376309171412316766191747065888732417169432393799285155429286106867487642501448239451781371338849498340241159737795364814087988260839492036087213471366044613473929662162183501201244589176258308351222413712719635991544903958354762814022606935052307212960910662096127530805940761685007416428142407237312223542229645982121483733147771651117955029256963324930397805669169644397237509849968368181835431471944103883551124759336288379166888995988369888992055831944610758475377942574359464164358779236485827385371181575608775393679308301884747629794449565038921869111452851638633056265647675273754140210919480542261144901844241011877325635631347709461049350806547118246841234271177502056805046839018170652022666900623692738007544007791802965843670082610790475927291851862527723815179232918961361457738042225063509530738998204333808854975698160821507178194139407863471504465978726538328515026134980634838945426935993972206654545422958366358210912386911018916242597270725211710844691421226902961727016133293895828120017689394201796012709114621879745655454851860712694853327230496077309953198253765634244085898347243647312358012908041050654087946037321543126771179546718645656544306856676085464074016341849663666619377224495982910760114423738696324214390774107541147180408282048164898060535332281132637357259920015338097888512228390323267371045567631299322249670776502384532027976880421921874250614033678211811752480422028909875569016526463887990771774864047442744888527015038549169886431838540718547252317247933455502696388772752697951248716923338003443833523872388817428289392721646752540110255329458177584202647313495698250281640115038006661008012403553365586189452455894074884389119148648544574446133126817602379841228949759098242840694156911827728598773266900418844532941961677484013439880182495335225553948904384040649890727122587095730851076845029367891316297532400359082692293659902537260868023781887034766502212008844574355112107228307397020896777689882575816311012006346033356357301377471031489899524570921978460117455381667797766634088954686332547248665361545096498622080430338853634616383026197046237241285681196446134699187372192054993493232239790706658901956736752516764854877755479896971821066838286452997231370506504282807795733582625714459530464283208329430486928527817530234304830499418881001477389429518941721586122701285180869579343124405451926524528705860778259744621598039022413589136351840726677890947253122764808062946764323539749106696579931057909036037057501623050495157217398732758908822879940947652101630127978312523769613547400247599065331743448508079171055933691468461165971016275836412428035334525426947878769904141375002884045917467606356665516544671676952240567829991600205664369785886215675356492845353327204854696948108724995489141564874649889722701165480987593188651598237342535671445125390411813405842108607393261541805065766006061160915735545432519366270992732067559191507103111484419551929470434510488196781557598734867985962925169146634385926692178902061013230089421143341520874365378671276319178421688851971043679403855796175608999286395733933689900668497172666418791727056079824881582013940286674297825352521816959382934779561672316472030938107207485113393545577737315245542620383039868260000073323676810419916513408594658720685139134142395578849056488099557660700068230722274434274329831896580703672592106709573933668238314932026334244618103187433232633704029626059928378990737969023929264195498403695733362067967692573395526903047176361013206379324144489620786316676175046435332028772050450017618815390189796064623753147948857904978135136768395342712526830027228463191011732651383243190341998529814741626855099706375591464478434503319610080738887989846737049899083743909125929244920558503244268066389948218930241666346250883705276649867152322676544691623889309132579888722274499535780664673082643155140311003008558192343824177184130626300730657936851995386983917006644331522827710836298207141146832057997425101108182313915773352383239040150421064809419808489918172435459204184302508048625727213413133917253384913746080463420998701179048886241653566786247462733313639649615947991840372596539773303197418319118427210102373398547257222542464597919376344730353278569066081212186208261615472800755387056821215459024820885619078434246580819582184126277932488592594862576797921916831345195357450117194836247556956974412218073726369793758072615656770352652698973584109732627150428717372991354954661621689493299290045287255347029335965683933159862401832677676686224224256371396158755971454527259241039869389831054605784860545498206706719782465107141011999923918189276073230284261281766263400550725035348988515976596186760744580511986589270210271202288917202535040769969728523078751475411034629162030575758104996838309558256573221515194706057338025973300147427032330775803425074024652807086766418418429488052169884476910355854563016071133893223334047902124249508271835047954672122140350893413197645512854645385029579883756334873563423619385850906508641851690544008178030644006265287660632999021865579825227463521867218105563883193340077542128403365484054257058782968678203664928385016551646519347032549150398255837680517963206112729151378026649317199323084468603420613956493745177221308887252358838474726819807639486094560814141019824973539932041882984483868730877511549881465982625177147951062163537333959145048812613703170263212857279631558088751444818942337787770146322292300742758244684321544865376521764009030759353850522458615812693657019805471936836472340466744152689846701763596671781202794485238165263239722831506468580847058502564034172158027929858141878406966967472638445533501390831378100007845512501446840959506031551142377561618263873570245049134748231885241307867887881791471686986645624378539209446167774528425708771626131757671203751651054881335101408528159847262113231181090316210813721940567849273876773607481498241765534482709582066657899590697453218567036214144196716649767900345564907749411785626711348780187813711965948301554734186454439915983699404671651368246364761135415959640377557594399239460222831403190651054489387823027026126164498554748004320090606016868964842874547717988149032271078061800029133256944345277996759434592753764050913172227161261581260486625204949979670148092771152613357971676218371486708155518111850274249956843989578877879345078688737116116531401661677951500065746823513760592502784316256823662933849269583998978954788190958419686501680757220948263521022114822383496851108349819181773025515016953454624951512984922549503306046924582185509397991077429076072933777663137959620566852646073662786503332460328487417876329326163506180252051396572328755983535518040044697011409565401216387835651416774378125670126076154821411892478371242862243253928971413446039556101212815552315631967357272136963850216854153326119012477181676962524066220411159746827184480236909355422031817675415017917070882538010681574424772539707135798546162303122894221974206221734274559575362487018786797039322819305681010497185081962383069982169048608436353008148127483502763973304836837163670382857891173703828357641105394936236108723275068000694923147871332243497535475616004534340230664301258057104965109681871071900477744980819726451852316365151597530338899505850974055133486079471741841542190074322675154602442740704006564308625246351016497076391896235986026004001618876572945801306154517618529843045882073833957515210551710531375881419790372165437643173882715124189465346475352657059587256485732536166352297171482993752621186932448586409557212750818923961983861544643256908163559730502938848570507235725106951752678269352537247454051443677253576527619721711255650272983564890340488728721059515966033409688028126791925406152452416218718580890364462774092552624852860832392547627274440993511713589782856146202483214002197512872716449488025761057812969458633854407808144088978685131956266380966667242098372854668268418456082655383521506399757180085421956730985299729327366469379961741456996925934585711912588651991823778825672009251810921528306136070135965590886293677237653660058577801965999279565660677512218331372982430243303100664902901905024025709723698841041924091261864570649250031556166787156632734783408719801747861598214971915844538418162719692599251032130533009238347141837279214798301216345616523275786349970678745454685097210811418911193361295515459220135171251034498682245062613383088285498977525763288757189067467090406140008353083269406221289507517714113836691122588301598839855455839390412652711220182068125605084913617600441348214435538047984125264996635243353954966051846464686629007619507706707335599798464215699223195305085186986776876410521531229782691850879305510597439093801462840299528754095765361342249956162897494548147415431816570679064618656852189247884052773108031678347669941775472543883246533147562998201207713461522601079104734054909290068066005112017420096311247543722581612149794342565844085288682155412017954698981081059476814401515484599820955700624671391911932265484165210339277219551447399382731266220138834751877034328869933621036636694906241724692452565650244117429206354623174227505091791854126532903957624047274832316873248841736753913231114122036892068996126659686966374683297273420370784076923255499852060627272950592541159048048584634340615479240944793018149782860209550964872490654555865242435012447025846615145444305521613619029162645525853282492311451239492396649145391493043859917708040768793180822014247517315169358572849702817634948751014275868347663881127367416833395158484763198333928245085438341244713088841764103942343702343886095932196997076313617193222694115084779222561983710292053482075280754215103098566068323827196240705300752167109035777389399090719894341454483627518276868541566243039829352859111635895651896607443143249106918397930608555517631123018073893630223386454264653671657102304940024260629841462321138669129515026685562460876355787398974656059055605950261761161606870283797462763433326967459507886557342952758469171655506017605527566779919934230573206410398769208896143129094480072985359861966769307430849437378441503607430742571177812455450199791148331907792990998839692524825878252032505339522875774689779935158094693756823479346344124028413681254503797267580251564394372090297605481106353971209647452604142856198423969787519955314461584444581350367278677425764213445708798387276454756774770392507429307110777848844950953824767899906374604013599719195984527986621290437369212411584594418425537055634722819406686105338576969309553402288513701081860918773935491545094926136132706878526304620084613904953830772679349209368486772069390413565011443244389530113728361263832606174114035788612926213540169276880761485446562407381069443697076019009001092797266294371716704431723355389019266610186891106965134525883950829285545351914753395736016844390709875195083925249584323130806582122933234198557051632308861785447759437685763858434108655396128837572540792973166111240952049406963363248136203760570641552410376805924402761483055386412694435883562575792797749589697524983440551503921586022729528431969591966570437600041016566471383890981779639165953750593743210738073877159279056913452145963027377232251509517233133056554059819509768736256014975871307115512096984707790751596168205298848136691771891630589010608725061465329149702385927859739376496494718317221490759794695438751469448881704975224430113059287652344716707525589060779578002025531468170842231973939458273283942775418114382204220956810915453685456040543498492295683647381042292153819623254484562819326805999310325334544598297401017611492892524837885633067435833054223951703575184792184243464536646564675152758276899128239536422087339201622171467171997908195932284436625529438440259377718743061972751851253774961627683640162452621932439668663019671850790839621172465080428866191046145081861748433336347958062153230269259809182469327863165260339689126840000746318580088086644537666592264691497727683446993656219157131247013101616926283211852027983089327438610945328241112861445443443429133935037636867031160652052232246333429749705250447438099905477723222190147458308337167711681902399362975724977212135901895230614678126074843771708864302813722453505177309331917224239448291368207588344706694871235931441511593650077527608085960170248655412423662938515834326781279507079816969768147070337764404852270463384092078951037299002530247332089261070185167746892423450972846272205727672640279149051373420693327598377271677472667837658067935739985502704620418740854048484559021558227709856588761765215312443965278945061472282166613278698352692081730964641750878187504002058041104841627157262673462345500844199345596272436042586954953517730741406376577534595419853738306948945376203019886675312777418361435501922865941268324086542224740039481676257765491591620875315474536014387779568392045894674257387796081718263309068380023571685986620965119858609003036243722468285013876017975051721302384837714822189881319435426409112472372058111137347534894316139760361191737777673225958289046919606809677649366905916576471746513381429683645931192372426397591107202609923195263070763392769492457517670789412043213817324320099703887753758003046439099607737418611111494997292049801141580076024853129593155271272633470596315807337460241153345155483201637702967345537140801776599080753833702655850885488126573436312968880289804618113735474737687489797722234160561976095714900153113040689596066998537204050643269272035889789106903640180532536987827196887059791346477535414039583625614393867011361503853597285761759141486665571921679875305327476119065939252201610484776153372167000557273435899223245052665303776800163675957112242607987129699719778200138827519146047121289975975510165446140624070313174921400825084462085052945048459375124182187226178302495008302372468074918171010554245657943117520098149646976862431807070022004665272850380636813060988109985004268302828112346342449556143398860474526412005748536214196100026480368587277001597013204899478880134928746999771680028949560335511928882552982375736883690715512431918813004795777972248940831578881995067231455177769706690502828579638373739176978570193485796536118445989304130124099387463716379696919951964802103321223096025443887209860359465999943268091883160458963393429472264905568456686846393975578500268990734184948161232060237306897005732443051236335545163985426387322543858348196422698507407982857815249025503859491203486741504405382599704151201678665700260088610608693329019370531623015540457873958877968613288671010024654307924715545791596874821424721377242633400621536088128564427676051081260005789967902915613357842598326052609094710281074147322940099676782014691467686049760117055382892578978163244398134548479561228188754244157052463920220835012713972230035683889536077997289690116204570755404349953703910841747352057754207724642853362182244362723168060932719928936444352870622031098982781985062955893492643944083533400725457379224497548084365897415715613386623665203319314449831277775829495775139456129476661752663859421157736273940283335430417574547914399009619161629769043947462351570678886922330971074240505949603666040265095258424725831192698018655850952038679655602111171026977551982901075087026726659452541157547309089823945286303724008226360821593478883132839443586228828207832201067915204652355418871076360887495857200862362391666853876937510610400114147798016295996871383124191364211636714426999386878168336031215040430376769741690751395199399381586089795493367171380471139563273702855536552781413113357111776112327581555083861730480476636734256087321846362437222219643296980221518154869882428863610417661845812123773535037085097162795437751906412964643491236572650044076268436138493416014093487600850959348957674329825439822975234680875581729998853967880607882040369451356736481574809665210915190952920786681534837954631922458696866683192552842913032473045508999322655797579368927058793113484526118696390036017230780645141756660939623040661732424034518216759537211800555641640316342194336187522903199584351407477111993062572874977284539006119436475216069498458897664335270738091218074269274750932262307990042101160889413571350268947942824971132264576734982315126799481262307433815880296433049278888483158604819069896469855163551374645034087023625297792503605628346767537581153899884148707466966980651670843119446993251092803690087510678654877238705293524383428364613369169608690341144008930875975096003982359516758055838676034964677230013527750334592461793286660460622702854718599710211271431972377756749186217778197385843954832254966564917731419766418023787323227452468406830964039279656209052916853003041099807570119026071352968475073242728112997437636570676209446648916436475222756195189007801595256567013461552512544807198413467737112039452925450270193906947646726415752391652375554449936303658392538800415374933641809337177331726453327722526124743266584664818485200606813615404222639043940532786331678308579220598967175493306221299071348666405489685799251204136328302072305608014449681814249932491918627326196092139712853568190065181119708109605089692872489049768175587899929776390784663117203683570845243815869213433699899169436865344030448637190537540535493311752254622129944759155831081450306920530745742060071922211659781923449399334107500460488478616467303975491376853346383587666632854656617441003608637037036180681634197418203870033219907270232282339150363626878981850673272047551499238832560524699780536792843023945698453137760593319918305985469515786339755909536306408865527651755386553824017069554207719142482561175684177770914102405054101571686997402256461033158844089654615269872140990614214119262388912906864501450163055702011501578487714680036018903220115261012947140401841741361299560522180004776884794485049057808032878256109422667878582438932029984199426800758754958061590832879903756982431671401419635354713215197703208215669284228828451066040651595578885932356185767727402183880318895284805706986495055640481015813520844970374229682280596872862968888209695367563162789972461145075393334585939091911496138819051508235464327014328710491211013869188213867548236444407653627250179994993527644149392974115740069069693890027953131925800516270613039811092577717151769921518404746456178447499529787331579959350581732752668665832918913106857925967493174971417172190369348547096539555429085709164137722989318606315202611874297780019013822192826785156775780257413135510263902808587282866800575380489516072785094355819726377902897111466546408682232147065307373874431418526710774472065916860288196540201910470647625423487155293663389556073223862006908028291108359872048953346947196185611637364098701419916004174924940647194614331239862656818686624635169440598428974975875043441402592744454190300435939998231863464000095801555877782667241953573798214010464245162017805862629709532400331106735434182928595290242563087874098160717984113502122437011554310472479921583080492316234129899759677323533723327864522260266882956577887475014045076291980283089686162626929085802869223095590213579928820241795746556965868509769952221585713621587420631913324487927378080465936112566359333520806784060697080830950681362815902160171992668480912008354966718732762750167013312502793945739593898155971662769030863905699829444507731386777895641299653128986569808892216491567212877862770005235960352155154377722004034466558438813702972013650949064199864713648450607448850889433149392662950153912616534899088779317239232698680346163483288706981987271318147446010577548235133712491903252123973489172021565170893737540408181816996808099957565448030242988289939134260022805388665037096682007307840657238192268741546409752284759996520655598323562089385335938342270800679431219456104465028241818349084932623238268330868789520711967757838793503985840885833359566068444592619109920153584540574133228862031345614148620485338115303231349582589217627321061698124571932154585922578979781667978782273101049888334629416935282454590859031181372548469947214347501325699244440073409114719796461360785323995380103065295649076114560845263888941824042963864777993475847815851251155526575885332979860336894001949901777294871303447578047490606366761872393866514218514327114779734039775516528080444176206092038605503431927435370462817467489745403915384976236624915965524566425626436453213973351753379496661989654821646865130419095642840491407750748673867592593814646721929028744107093859554127508195446569623611773681658158600425628929224664011951103187756018330033603520375037524656798152844511157137715157872331368295592523263744300315908910370484096430704202627251021427343067662114770172243499389025064627174151661065678349233236809707614942277869953780247477196839059225157692472067320542782661211450345891604128685213996353894458522131363565144862960744742173994619392428534305692733085335724817837467456090314412324756860735576819124932045862985879432198950228370455156907153364977077894585105420728739633675252258424313734643843546414006485589886549320849792671233428720053413937933901020228634417631028433521422987458174682510181347401211016747991740346687872174730299357802664676028560341269709218229163822774772029628702785267972980314584294301663147784651919585680581166247453567850577452320145380751705275117254020386074638417775114456750629636183068790621790229645439491949323755562646374695719294249501704914406715682342073070898337746949245284753820800940892755554290009999896412334429141429451378613367007028651096550700029196441197432551147806013611728496982904950544606193340429238588282770922957653528823024464347409532934639382612371644569696461944450360873091086574132420421971214898635882742376750848768721408334962014198300915807550163291844204697227920362283779775830761569694298854090755504423501768540407269030078119696056662605804951574743526168489213638292030665223695507502437788070158902197600079522727334723913314081953346296653381190839044223960898764997718456111917716944970127510694986822730296650419506841362998691176974862566560937765646141913481698612993411038741236221826105406706634343758091829412963173704765684485724471846547692812073711675562085290188997422178233964841773259333316109541108646215808878480567259081921125609974467922450673703324471804051934471351709518547466627663736493256856692251583479646572060283380917832921167985645633672244412992280398711863697618249299936346216306632276994163496461232060502027441345628708755243822629946800672443270101292170068012542700641027776077306545194683756323194139423290105373224241993658952717842720335462248562506527034333061641463889720179425628257793111828568295775170465394445754174609815473452748519976068862408616449842775425814640932474570007742595662299776719230992167227484235986904236133112165709722453836248251435106483918473167540847671571047104169183732508873481674469632820133292539012027222679011978021921580205458392620733135596035946484933496685307228342400854680765586768826725332693687783673092874736364552459236795012788589996601473214741848677359518491492373534147396168980359544269303568073296888378643102515883156780396467561237361017934037024984767714781884760352217202627615100239892206275401280398434911775885162716258957088568589352327737700715521032198719464542860503472291988633780845220381650097549663851876865914501716583567131006990289587844620523878060680530614968820226162247913735044314303945884486143715276652403957650097671375627958782823137875638620924151315051848659930150292391352638915216550366347427450126004223990903798734370491560866553137579040788931227659998227315457925163456244909247621961544553957103198798687653841750629455358948656496849683483365393678358484312278219371335966788801727219562071152094698081235755447711572679743519238825362498895371215695233629887243954612325706264966294736300695092564407851319154454342534056156748029999121935457547818593753602030695170990308987838501225654680546692450902892908821172066291963005288147788977118103930357287451833362821220644055599210591478041723552293495622906990454593873423184544158942919424147933413148633069488720740408155694186162984676182073191060604596285591184706450566756439136620190251409766736021423062317013448969459538112839271999785487118726453629632321215169069388586440667068937884331724363474848024035722064637310009612598969911460391465762620910609695848197099945749902466177415333287192290861146928484421391167229927122756421996210487376553532678867962156734603473377004262756406090427049789409707199261934940679904733247857343683104826265931387170691802036408685031362970645845760200849027036834774195674071858097432266224901719685325819547315641102795082807972012336635082730811825001020980175398914303763620976497391576664405226980565356038066746017827070346096754841719096618706633200768865030633529619698934140879284280590911754393574100282672212581967510421712891996098314673443671977561936488355492275112395788200989027033238167311740830497280731100596353916051466830541300734895874553209529760212303661752451852663345025056006998176398869640888974514858645941226673665189889922164466279908916296767505870561087382427307878787628324465310575138152932560902951326483106501339188164540284999262633106595315188677684671347275988284555542736539519209337479629390358159128465868216712224891474599281066647912087040067849343974045302338237170907628921341076133994001257322630336218034963205295798917553359815790289392961579584329830414463150117675323040026076977449715072341020400210289333633478835044173645691608459539921160123376113280355989610036486786168011186343695455027086266478483610113113155833246462404537241414411078995706448463520041870475465787712314845570311978637047061435189896813069105855227304832695957288623653425638245333728307118245677365278165804914777057664755103276616529820984165831230219236071362944619188134835323413884549910921187491082873081113394838855657482856081211128831046384689915683887383239534377889248806289918249869716351803948250446247021265197401877885470137750652427985271822603224453319725785496394610651155123417147839458976090655151816680267323655610694908836805497378410818223979321446980208916984624076945119956723563851686016874718018762897197868619088285683641072044602420136580781806874391100041484775449133039497503030164779632689191929280267792606610223883459191770446445860872764953815020383426344567220740311582271589521732095328979990917492203851517603305468360164238196762048041505729205004716245233508157025655010496957920469227687418838250237402294499128370447574460460151589225541764018797518617501863686908969263513512678319667304237669315521707430409515280208923766922661240051669104859352075351688505306513818437236258618667814118984980180294152595083740336102796201131371326146233961842655205847116933838819991604915605201717910984759293920920910750957471554537758929064868101591542174063628151756034588196281201311283009155935832202115401252620403563694585513390715716688718474531340827165368180339585093502286615802796703790176355098024040214066992635166921589600496450930057051698534156908761295817600033958199175705896465463247767094953972171149548058705945168405444857325950133874001800374881006111322754471789778906129731808163560315636223143524706058598075444454620676476642182775430574105744948478652115269794715879724211676482415883017327311316788347583744382477667837938210140261825958156646837811606732821738374365702572433782600610644457275304613352214280925880458759697367126052482571290714093773326379749369328431688744824096794492946365014029521801663819853478232242919831828578151355566901112909168527313785009705545184366893508342150858561158409126442463181797555295095887629414254474853645008650213455501566932973828860708772019471195294339606585660938372969785692040676741660914999687736816341490157148819648691564109079357095664252998364728944870133621024334075451777639528490488342277108037857195947973855944400476948782318996102572395155934763441790809938241255732618754736007974235174982370362714133735903730225169127307075720678990214426119986050076774388164608077203048963883373443503482030238847786967906267862529172844500771541588365473376403973176914104131309374298675171318510425824930296466176266857357006565051288161968066440053762582207964054916930017720796340201468869659690211345407513542652651993972375466692186838927026106230491364284437660524107466249153983980850236376562480625596003201802771053211649571314289403006867645976991097190085355768325374922355053074732036355525362237207630564557650178660011867170875026477994493646349745398837240442534126253572331063570899332190256361984090946345307396257505342602565787653358631644687435611514182140772934254824002057845039150122890737317849596549655259380036044136120885957382758444976986743880917516444562981711922365050740281592059795376740310933722942405604987171066467138548813180585655013050790141144082465755599867488463353709499951389993601570384255887756256218495905835475390246980153855204901205975932004676825268053463782237597866024417889275691350509455622733632617216572443436110295385654441180591751090582419296974525281769294442553554638911739532742139549371219636106034494225067786870937799896950001225108301278407880302371508094994652212767542313652979913386228186407635140712969768813476374662561355858351524601889274112698494441799211233660031057226893448904686978699712299812681776642543824965905901187417044392951511386714948640263020565470330688237746952956765221864406100249184374822551743603074174446999313029568258605417671694555144980078002499596228813817365743646797844786184309515046956283382539967709868372171952961658168207465424132928750020687481821746043191159145407766208277256752427344017825625741691546183463742838020465706951299915919378603664873516179936757084389804423400054135699668699893398536362513040711139435660918630435408502234103229307265075657701779493126098624626367094775533220450604462969461594139466091930456576488457008647237336578426399770784298710926446226462159137656712139041037450432470512135231752248697264823687495669440355427561241024938469969419868042914248386959660948410210167119660274897679597680347594870969239797498158235217753548465265793012242057418125176834713145447292380109458595967718259561201707729770069782266926122840598663739057255055149322678257077969729705549544515434740223255902411079042096290326941677422610081331066170039603847038879036879482773867833960950982901111730810648174794984714325308043532792513871584256033167219439704332507310310713368446954371604185353256688820901281708565348497890050171127559158321791858764714902363995866262499123290794920597636186507573803959112552262845916603161344459325323954533893189279243601843478218396823958064487192096208478186666205323610303616424896559080383578198904205236064103133856905774872861125930154149958980358579939468412811800905509063404116829482907706514708463591666034808961178360975940180336530238753167493402598072046258426438245457928370339617483690010025835751424473675070080418806768442618130504523017281765254655320176160821147125331079552013328998360060927413440441466696250812301278543800468769970363416664035314344904387163358086647227557001531194635521832143711949341095083248595872312106029729888719118942915668177725615458858940392492449835040420478869790737910450710697144473577811102575197639276204260260117047375334668737215951008136662873437621566870573108316542702054540707187997765694024649064718697186893146288505826475053056477922935932971131085435750364538829538387164371665164236784573278503024272011675094479767912050978729857393466370448272950241026726321942660613076135014845671267504054566994328313133805969414583698318161927466186002311138790280279124541525900925586092034046157804958224513100795841669901989430074437345157284816377315240061044206125895561694841734809096475942354886449438626071672231076185546781335053929163741982484823341971378332922891076696017598260466699174205719246734497879877283694187560471867715839085661132403644605882775766106855270890220407618191755574936761514675681559286618218986256442803309377476704032569432084601275092766057845496761749591138676331041487018808750172027149745775602856412410722155091368422176194262698206316636977989557557033712890936662625296260257199154048860913194889319984804800368406564909863651042516514595612945613412234039950478450985063485998920038083623982468746250040997907948766596783458165386589821467431242650015747187104262931172276094085092733494953455258368932147096403197084300935369981302062907015266423231526302199739585189265251381592035420485643821574715149604554614430499626515114788288044812281736480798022929939793806106295046537025470314596066906833183185248169300742982621565511356885204906302291045743967026998429801336104526682655210643376474626910133992654304780861745766409567758981112594276952107762013939358844257188007314330302826207635815711851624796622924695002923101353663777994568776940178058455662776375517233269437214681298156651765012929526428578598130896095652415087792248820649335943158863607101971896989094979499022683677494805670014636678581650336293619051421813624846854417871735222850653172176201699025270946705382311082724248839054322603375176855191706932148876283030924377884647179733080403070373887700346125768805584328360921420124113978783178106586334323529859825565930306544860369517827779199323667475184575988027610024876350540511713328125503042971894644080170574615872598887007914387317238332225573350084058381872897947394745173828522590603916157176667728502213484415159381375278439541174714503292466921017697497126226620151048253136240507600584276934989690556245211788283522910599858951775617623630032081571154351268731587223349102736425195138425596454430658461461388877182730571432014574527095460880797612073085832366497125985130896653480572718277390448000700392649614224744735150832339165665414058436671698018665856353668199485214610118955695010809834967922984318103139879101316390280997181582868555022267002934967193486493432740763626619420938631291214682173083808367325208314506345393896445690979561892884328012761793840044013095267094555451288164989828388518299565915992658798705228395445297551538422642576443364053297970565036682699074511108285488997472024826188788079233011681019563624321659918964890692578814045949008774982043263612301463576602935444761744777514311424416903283495026682773674955524875017886111863109069522155591675985706645088671719317068460481823196614714619553783229151657280947419975376999648981816950150263953514899539210555172755102528060232803791914173224862391313829760571423902034302904755627231978563825868281012528970249246426341705447782731960039949324612041902290757529526835222546013826208499155112988485174220469640896255082440104169868979390862159995497386258593486228147972703301685733736437721046312463278757269981095404066657686231405903843622278113806124636653153271821849774827588659222614311610355079338484335998130682472194131107179783539863235301856721426675640712888853120638431703202607072690732516418079829735619111473362001097894718548893030562987449532272271061993645241467438593943030874566171103728639094598892717921851193261621221083634210126154454865311180752775816508428919794334311734814424245769831614382106684810169872504438983072772486687391457742843235325639467027993617257869675211199613575996182264641090112360940593844685203109646637457160107015471179660737931871645849968141463465327188388301313370034369770849984181239888763883644755533412044104188656380380532237032317591016756963233148098111492733413498087100139968277847087912968208141662584675231947973371648420655055910658711018317515514138624062054384165968412402937406129295693261703861123092948775084048116254112656379564410337081941908102856703632292222217556079794058685728073523257945858388145141578859954223728778023626051171302667312286576337171944774973177922352500296524959756853911474007351807526489401785958012849203048938310568058961470129700334088365451021173621778079090284782343240593320339337624915100375804398441612454084217812745719308949282175149318175919245976732698982145740219343026394170891189102811625613335869215879205536254059551659461398854927690232051777152949679119298760637737496934691466298783222004709726440378739429949915892398449420407463548787046315770534905222080835387349495895005373525108070262780482354831486462443305464183243987609761352392495051929670158427879977299796867247659812763115097224000501836879108192533240488986464762507215506944125511836110522753466445295841968194463474076279925824018232706438202138402222777057494338980347404243341091804792255531088551699107849442670464087491391627586698141477076776720501913948301197640070153953348010792341043894634939431155656364586537488167201236000491024457111320051925234539794474398809854831361320988634736255304923971659439912696306139586722688285291702615830226662092130814688538487671351625857515500545669659492273485208785788163658486528176623796175756743764809026367525863309056301157344002357183551537916854834487528438439681787358516972731291086958350766314223082086943504905892755502756621516062958423385590039438372543656892659364533379921317425143275776894552914065762098327967475657279692557819896677233191300730970337962340901110350568072781878451321983457657804936496266546783107373999632443499408410953239201083563068454235764073068123389129652316836226714435249858436135200083463712853010190675832769917343866591013030901224642330683927480982207239308738958249081661014769548335288553121066618923742586353969077038291627867017682120895050077343445031580384292173312567214004945063665780704408888667968344951152002997030431854025140915698244905640160698047877982450118592841587987975066087520581101414378175644670878668359992486653340144237262910504619586379623491661958000765930490754553990552013106754905909952663170519560578910062174851183822544162833479918741569155265919895913405628206303311259434706652697681971143656489232085345592839410004914334930767815696744788453136726136719781683857179236042182058879832030379548394011246673582889449054320608462259679624207500329977484660578426712007246180202614145472574963124771147200890339412767370332015900037966589344631440063411076611281996480107856129396537626181659398563290259514428734677179915528137907785084930388243916676052572614517050814261093429622794838162062035505058556306783207397617555273779695566504638075202450892847916996525866893165811323520485888124355846677378198415672091502644312535652475190117947422985527976014343872223539562312725590308606750502241009091432365123077005091973807119073393718806798126872093336330344647613455953645250683226317050854954879542804576215533302658829181105120602988877907220595852113307167715096859742009609817019613842222512663926314777036187379176472770546769252520903090316944190489125914484885690248856422563826909074290635486501997631091986105943118569077933901706268276028773746548031939425160280547640008191956403220385954622381449872257794198519366909185852932017482163770045440469187767844432181447946046298090624913239940771961381439697264475720978920783671714255377630012555201354111587162885065514207440502537587010407222486024131306374199752956333298009789760435020341316163889650633244551556308289538333518178253979304979123290359503501767684683307250445643234257226960317140307280843465150993288536691647663490174973167725502620763188587937632057266929284235874206518130083309861150144867770950668732284844338147992776903984358676791564742607318651615186700257255879538036162629882040827942616188562728837696407567592311241621177789714214546420498768247878608725219271974832228743922295052746534435761531120613812096816840550142001928957837283034272344304486643527615213087344131783932991611169493146534709125477297380888065713943697130060496657858077033262836804209999741309402339150417750738084411793131179863093237539055155818413698749357148709144564444962456551434105266009851296957474337079137042721260928262353340761010366887669019859197156879623962188246670551011772025188029773994348098699556754557606706276154719641102641672873798509171534285757621871330467157542501696054364800584946658419145196231658694757466994117814532462817948670596060783544151810383234628645639821242345836957050417683955782795056390020925599066583126466415127917535570468308529899471118318951533000694390318192893103883698536563813987903478695316217097983722987246825637352836571116444513073333351162905927346451774224717105729315414970149053970188695178916662727193544437067777010786261728731613615892147669837114390351995844090707774316936128784275934880827100260248779803376044731481610152089205547450908567987447876144487564920449145628880908160265986883984941786387982793306089523447437199905927514532399515172142781084711151722222718207178965084524072467866507637130902513064505297022812417988846066337459496136633829943484546726756519582934422730898949229321084930749703827873331615737084137416508216160936802197373350716126043169074851465491817968139420798705747868290306491619729631121524703732662422246998399631695989761035171178220930664471818527413313599201609590419394344017880111040981807122905982983408773803859057872775192742752265457707417761125947688350245155297584037278728356472607186611485612256588931917930803978290914442827038446075995515046590308433458392383161913376481043829126405889399308676880882141310367191904963301019168163343457856221774788785179310781980698781946693873508070189587990847243700358366631348980353104104594892278561468164088606303903784679577124915905809714446506098312030513985431917425826871293676926443048617463536973308206643339425388034791528151355376555487912189918792530525199353785105700448072775592252781647604100471680249563923821646086011194273714687370603962367560232384812323289922923572843768639283298047921855782802422502619036643456430572381866154700483714289533633942021810605408723505637021587621262933094849409158845880712935030707261133719103952342655911330029928695390157862237454459362461233438077673685433918613600044570660965632473552774653399557893759194233923062566840022188460770241232026425019611797058827095409673395545096064383973919231487518179920389468229375089448507459501389251729735221850086377997208479870797363272992621134904589459578538848370033605114714804813012704104868330125280899583707350662238682671496196057820775220301633030653564196479306753387968469580513932187918416502034893011308622348109124074184667066983397451345462179707173218230146523416995980480350603758045725052472451955332955775771488546825727232216865529494551283429816713038037853211936057275828439096473790992719649364885662496466406950155199590791646612337644770402493124903801813773080288093478819663191447378415573901227490621734758357342252097116234294597307622778232821720498791521705475301692483879215330501786154103161566053683414644960479394682878036836656721938656085845619064035479119948012924970160875011028595665826308854935362740052261230216614855043905447063872816469111401890047590151526507510058140764518852574695700010472408269426064254104484758381599204722433025396790121365669209290414831479847997416758808432237923426263381609981414970288399788513252106396151381697494366862173615481826827634024718521327752462995245557865695391033180694458655459582909854668627657741874877552532085029359248484114826219423120767449461374725274308444175789679714132982735009329384665173463972672602779172234456700956240508049386441500932551806891072705457052613221194606836071070999192136538450086306283139688672303835428197514739081049504852933040935107243816261434728816830753392114093370124172719375868396034662489535858194160632681541668175006675905197157842005772676082460546120543661612538131880393319507178973605293008476111829563417232583794323393753087365293450831324389364431333855790164405790657516293764708189721921330151030604029030536517296232240892321204226509142726096106740172784357540159453287176884719723554062502453307652198517280985864058561084720086065184588739368298315054797432011874674567879565970097967229253014991837339361494264829122758615306759304931435498338031624925855218339875032734434193710401920722459691309992229972018417213173166984289351980331703542294880779740798524406075033655710606788604754504311746833348367257424052404636833884122737598652447666256203082174875609452231302318756331413889639657430829998748517786368840053599537969736814583730139925931383067374775828140723606847937814218965442648127499180487208001905713249657830130204057126208198555389213240173567486762556976025136758547880918429748814011283339027230313998551810143019313221534383511838753300524198231838415603566997457888257036582643044194063349345768451441819891271163345226797528635817278753709566622407713212222982506577832225630947140609305705062838980658988363427270933317041238414471146689412032529278615077655842550115056984271532363407232893030302641144654446468503187530048083891863283645250135301416172269280358758450594710322021328268337359171768256216805520433064665646389926031083083554293979753601444483232804623890893322588051450647199322396745585511899181834358753879657416506122441245477681616528421864106618340092747471106398860814353364211974139860332367920815918407952733277107896615612128211185433151129127893506186855377050955518251371492006423281541175631450936452227633233081926078029257104661274592289330336091552144677314390989926280315019557899826657833748603875710417085199379940736722347214731655996457618462521003125663116462584470494704156267935556303099856272248967389837344366323699712267624761986827524834823222677495987212405674450055549916467402486919593094405461842118064913325254056419018563966988629824018026122057870807110961518707447986555753028681412819300849839245179217595488650821702099094161847256398758051676016151505938374184656003410061218239549922256875491102134391797618465571784381451695430292644003458367544306110540906409893475887734039098945322861487520331102718016211999720917927849167038006377580776602157948861810407309679788109970308623419566095565616686729405271715580128987510039022936043946076671510932540484438336740021285617757797680216960900625688462705340942733306602514088520124708642924397307932570249337299299611409215409580559490311801564692649851638864767440497174768103142277653158171531048688801260029821402283797855347288591281115570624651476271415237597967931802419076357637056084683118787852646711203684512563810745072012571864524081528985637036295682229967731106625798923665705948206716404782440241239009572614576403130812423617988978904550528500236078407407665292384575858353189197986749913886381420965787060673609806852187128195799081605570707917762728165789879691448974349411337726308518753625689006524001444281568231551221911720856473945430798727119821802238225445796291962819051453274649627945244053123383605664112707384412835244066377974728727625542500075568731661181089106266397834173160030913445562586923524723586292264705830086457816145110838025681002865336232478660411104769571344136388822407360961250997693591917381801948004258022771975226606160234918137235352854260002276821970529792575123074202235442801881376578037241225919774034679290745212816440198864522116241272891244279248101883952768024597764702081081669080980225421247564982135743245976765366351569347583466824129107174734673098362845107965562936236173798804333365236823627286279904019941428767881482079368319830986516172576796240227834881506704484091983018091908957025044431953399015296778408026308225036797101738916656122654758612535213154646393274411397809026911603175422085755229436373498517931464358371710382720685446458762094086266692696756833328838791321463163267975604674881936443856831851347469590147388514512950360338051986604409276212101615503421621407113617778388061276080671581590797467020732844021841233117432786639290758902853705537754596907625088750118220917686367347825576963091095838433070090956110675255787389728225807619543111029180124239015920283316609609757362073566640679793245899535054392799230475913575905792666725101031264830842067561019723714697670927322831610494431831730128046036192647181983487075344898568443179388697380781617258712922256422872450141540465631397069032562234061773204338158121434020646850328068346982051411547359326165352500826156817026340065708591476556843446053647660423684384989570684257033511490270763881042918713767129514259208700115590536168862292405377486159328015355014946651262882136837324390207942365690898107714252139477603429462998159526876815702311444076135117866706943969290479102625979727996860472473279199671224537985665746759539431834594047446126322005369589601811660463505070149548322580858533015111299962451211212129187128736666955171154758736356128301046839902719554243069314292269362505818601068802467238169358490588491101675837638755297756785086176701521471555307272823602808457777135805316953138848576243048729393689045260430032709234708699175967581782710110604391713328190330800379264092800511659929885336558462916560738938333462158096859086283742929304180908278095821729693562292337222274763135951922775566882091692974003660086358967911728367731168319635837650650010255597542718360137520597500673207811942750698445586280066368444134425568305678485483707514906312520930858153969807420412024174569776755982043253112967110652122244667450939020732557285348643339380413297276196491377114594922188674253211310593636694706013862019465215513761912314760066773126461652426723251396281000735302560532831086513136738057739242130570852581864747786742375143320909095304499600769776347551000906351247382456857708801001921709766471713706698787343247774168425007591142173289965798168628959239252620662105341791424911177921020972766289002467527367776860147489104146338386209376083905451451649185645478604684720312173876064986538919483233594082525819317291855414379269670925251260519373916687947056984294209954267747130564667767249503869133939375127971199571222943256815901478817758976122544357515235454684519495355349330482170688686374366369565642314281762014777969464217469201106948189346690753291041538864975316714893828114768948935319311970130067908278002598012548230311263533977576526365668684603290870218347567224405852549496625480185016634569435120361992031905050605399069426256029990498010224184230010682313035442243308828697359259095730742148223936904718723607616743123861992305764537802476824069486562314333223040786212024919716768815917143530920507331928125713277804470320688710639062280544571870441232935120002241481749032136239964924908283809116132497979102112431446691304012864790742703728082309892912277389769374558949353553709210493256157203961653246418735400767340391876817713644251409732422364767038795103834419043332454996481450343842070946091471535494234927902610071791354342754977743820553692763143125806342590218741738060055421710471413216438758349099578569301098348920729231172909014674776271574434639209377653561752471498486410795181925114788023280611949590650949778714354598184569512910944676802940869537761440249252365271842132907216465655214988114455356163436310641718857605694812485405021279877823408271986119096770632817318943605355201027887756572559388889421208493962663561405678347908876409046166968823687986151253081104872748262142585803624898325956306608917655292767213673330356648401904717831923194050514191332200174696004855791462125408116776637644109633710053796065380147277744943116348337092023501746057319635249027842090965925225520847288437791409562470925248879124738978606930108339595712631454915548787649814529850586597955588825485577863923923997944596303744509877896626296431385857022641267331474213622460907942269159105611751640101765065244184863979006820125368201395867071634620670961022320004236559811791631575153584142550890385998965921991819716883950739727548479773945861127414900405512051795955810620661623061886559653861323852826390999246034309205785274483060247739732103985795567002224810405658800256161112289053750164393761112857234752605874264585539932068468497751601272930794741812465052354746052132437208944706090232870373485104935262548238049157311763155352550995246074662536368423296026526908317724670601427825410450386353941666715115825278421261381595175600259760250570978089540145530850083146725672235819904449506759386108652945729652220394182365984832633329270211219310023221392982987731140661471764707831962203039022824393118926235462416176469010663896719239967306419743509130735545250648329947235489670075497649941742886147810118339316984371956524411423432660473462542432848091301512872072161132450029983377094339882284854393869648653350767369931787650639720910037203242288640270550882607695826471976700985719847435779561605271788302193901431834835685417962378762609461627967224084798992453777821180941646837446910203348347366693013259925680169468466633795687741366118559521521235308131672018363923458240704136534068291401552656501207105321041326074780783378289849540502987088379019722828919349533929989215030900254414160747944463711201291320173409223547600697873723184804980255403016959172121693853288960797730413973470404925267648958467555567723867357361363122972187565211738950236299088908544464343894033076432031979668986174214641896628159787918906471325135362099454767548494356844900807465313119990637573581624433681417599618174395399112771451527689915056337283684410385769902828042786385499836658619008415511965463426902011251633905226983394831097167287324531808431722139600865304665710714498952801660518010200653740673446799716982230678040245844027456257495464810522748488564088617225860263909270449870326466075055736379120910543018377490436332730214741845214251000450375140389646185573224063629961446596437518264844498982867826494246353459918258664787589373062595859878832398858134499102547447703843063284399758099871433110928954721422757718028388427369770269740046417984839995259203190145606069118228721567438251371735658893045950399621457712872022854892408342742687290678592576478055442654596496133975010174254834481013025954298588532771528978381050829546855076814841346503125552977836092534010565624370975494925608657592298839558954967987064972250958072384552964610287237271090665412076813363329648231188736756271012249837305078731706716711444346368259470929994342674892167302426466686146968168742129161355037404430274149096845805483257744320435071525171399512779842825656196046170536296965850142327265437743423142511284712834161123436089342099138360551771090316805407439572634015897961162252571517150141035495887209222039440511045830459177340779462419323700652356066875812006595665068140316524725389532647877306789383969940993145981749709476963926737874674998683335392667847626283299819570692585830449302003644139652673757304809402340232568952889688365858570420100481693752073111040515600554867099377961632890397639073461472630918081894157834731420272781890414972031891928613701245071236600017542731401078470756745804912493888341971265979430757431210669231651361220857234110152470361550954647795458266427258927027940007327495337652724126659379097567287149874874640307411452721247019759828981235801354195336802011362869835119875876454998316637250351111175205133408069749649870875528532492754332115223553371687140428400612067104834295261763259993662415979194019709628938111755005937670658970201597078360966893222254937501844068156350509938472045120877043346238889138359592306499335507213945021070527317458542291982694090774970957264060067386787079789467055489094864372166537191466916635587775845761191737663269206018652708619234745667666661891329050932605469848312515687462908684843043774493553958610832108551266529230327332978211910592767153581912953110560209299934144289346302814711014931917082749084823442232942694099350334129474196688566343154654181301520878153044701711395744390687925833533705835321362383761167794385478324598526673889263970902009580670781098046474007172365350494431725664365661695063897904491034842641532647020687853189384814955207642039263568059985068250431423225664077552504179814684642591353104591808463102496632953437853467736827524038118215570244716038752082745917188209637464950820567642440269864731782676225645181968116967385764315478256077548788450679295115884207800381265031631130678099455834376835634285689901534920173594642098737028109931793110866600502771625162438748267218701814905981679933304748420326514762141874180558836990088266448101145954342882726899248804639225016514665307148890555223871295207687800857031698592381522879790289576955771480905883624112343384219228726340708355585739092971886757318285016364935137950106286746952973035146676936341147676543444870756473681161917171375876385534984654173736581985406791449064707294537249906839426943942192604775396464460173702905720069983870574661363213376140512812188360176006819068518803083023424370784969956261430162426966481370034092586205943769544096738406097419014716864672905207384291702446627480739972017152525966333535072675116247271262321250628729599824900999732617293235209329425537629945051099160501446532103882579093407916372414277929505375617117794780558603244853765594311807609674414010087958557580227719135018906084877007149345383878477714153305088940052043465192934892887054138377435519626719112865433894532667671490206088921656472354568230742405385193947286564268989008230614869324362687062352885577261183637912438074662386892043652870352545240249361238908907561509653309413832447696431302466779773985480680340731947611121495480159139171279330003241110855070641672168039260314740910959844084602545444189881157453602854770532732952857773016564557114245345725929030863458077015596787224155473736001133937944829374142461254958881951464887104917793314561183581679928473396655346184602877093517960718157080985438889262194242741540121119769213079401441769288456301403850631481052271997251281538101135180693628478127141791927053433067291371570505714493575105664604097170498545860564289408347984985958191740339698707369008818201001020241893367500889210662777329479748578701338799295339893438615234952350647510725598330413579342586047022716462264070782275150451549792453991617904116454356294503616961802458419666504656752174817058380678810667486154080281904797781030153822760351184434669324935332799522281656738670946434347774408024265371305440018586444659203185164183964449987408156999711533422604368460145354804953220379040066007594487638660819088180415457660711324413126555712515164865933556409037993181792811487078485773620692709588729943100642434457985072383520757067963496869583172021472861577823133970732498816194286095768010203762555622515908131674853112873903489598799586985156703462095276734264980567881784063602108227880272776575219299097401680509927957654394372907547358544656428191925041873871968060575899987574795212827084372722871750835890024672051894342242564209210583557561699230356509975819196917841566267729108663390226812371600573875367473071778390336658621086197062972237843125810375974835512227821413896954717577684349397543263854506598516176868865035262308616714151789871524447508326777821077315618170425931267866328798979064678820665540133429045309022620585007785816493485555583946732506003986416142294306741967499498626018853743993934650972908104387431335611207799760355574934133846172405208700154853884874638999507370245527924110885893610227216228996808349785906570179857659007436340345452124419079369330155709955176574283750471377870218453880378396781735014057894419606554657752644985899892550838644212419352480279440605710359831546373309859041477984839599185689727758368110604538002901496234164970479746809099851159011832080645826302721531435329312672863174230698087930205497915622700472566980222653198421411120813896156057867740568123372710777238787946794419421481309907949028431236952357034010877720232136341230225690589182276652898920146827624181313729359824919334038784953381591407011302389047185054316507095773853022425724055202147837085264756217573526476570402946508190768464291084856075359049841206666104040180818399591906697971046837805211821451236340080017259840763501161810471776025637260153499920989231490809571467903939895675144010915198632265742444756589257417643683749046119699190178774179331571919958099892451119776574619607433762733091035775060340831601474386237372973260813051389514044185995505383831298525359177394309008162624386517035053391972013250579802267697203824728283772837374256613577767526318530507864311932703489558595678355758393025047734444083288034941004833361980868663347578735037658501003716487796438391919712152444415693798280747085904708189512840039409644121777466845471640877990001348890395476742199022633055315402106124830263705629770275297393031855990868360058873889175195928376360442980535727365226548318800600071200300582544820689651378748219417330683413038543939268768312715442934813532315384176727135425418835718294991289345348696366129635648088909133760353136519800032691816913736035718659847800381833844255116093461196861680858846720342221501793925241180891739964322576061220724668394584558078653547425857128393673154324515969117899793626934022358256547058766030261270055357207879138011076043560557496601766349184426975275901270040570645823136932013622435216701599081508369451514351988014611567084248706547100259004055089029893740100619947931287970015755711213159626153326880765119489862507638769994903412343566392985180067911672556425657221678917572071209144204506931151042932149513852521591662375089488230482003290676409257449682115888984832098075583350786466048392208097439930345924623488555011897396501683376426661030513776922449681599200253559185605409614644863459901214320231603394981077578096095721635605404911361713649606397749125738276880190186113540506034552787337128502417282054699161821126094037000663879459734869442177258574688738769027465654677960949270460306739076113107454528341577697961540367398449420911692691862905498777102730531758516820681206327332459534142865561810129830363501262651881480775661198500755203170372860377720410693326340128640420337839576897678773405222776913591244827442816011011141225607839639826051610952980048311577455856593820320664056624360523125313116018616858011716140018689698074281712805714295959453964925000701152458302419750815581989377657139169524271996908672476834884029955184789564091981721592906745647765408067970314876209650966562893153960525082430452899977385161347743004214214676158944173464286759302868512969783428494633905843172271074855120708377406906825622669859953580664139392767950502570825970124613336003672265693816522687292800648577919067421603928783988123725614034315918986689367505050741082173893731087291988056437418418454217797885369791516704930814448492855690307993196470892656804961973290245818630956869283104568590501810293396683507632375680047326245020110119710589926513782234904194961278068621155231174282212061492322221914091080351438703287062821931773955410992563462193933654265526268784230295310640204746536922500838652552526183769846062751147884097166129606524509792443156443738513335507178050966237751335573710104174585869874492678554885698229568308224177065423904096729111077638029997090820906604554085272572631862701308965272228091528425033846791766063541091070857397964853470437690373645786137173521497067057007923553110471232231154094301281966150206595687304523721514550587980067766105309904557671713226830874646331319442734955191759477218855761368556370209099536995212489155724620231059391611357238754071767998732839495448168491807488689676964269228266591566783899942434937810573516031083329666399460693341416364033464125870843316191042089738591886304233704371195536068045467574035102740326948324217874185571130423879881303649757953211490019231315849591899330861859367660390465989394050822519293903590224267487543476844298023242968783943639753016197113219968641592149599536339788584553576771392733428673825052497262676549405888113711464913600405848250472382036457118299904992221191342593240656184538075217671828090506832452904266146265987356207548759677205064020671886195733223144195993136428717191346827104042070191499490156293459235957369830932421286593881897829267124338417398177249976322486331538910518210283237049875813578324395322561005150878252558586552115278693307893178592535970711082485495984119697277747299157050578955191166803457480127642934773839087036318848964026347891873431112023839491861251466855141973321967011521190503985007098894559577144559134330513317249974192035759847851200891369109116851532593117036617782609457627288101320729454397009327595325010310547141439164741245771455316232414834144308523853398566296890487281858211804227849283472531913456253441865683602107826485941515766282684637917083102440294824232464176896402486538860735943291971394032453275994502792770710504113946895650436402697486350431272142103768033473075722562329701917747352179464642303145225750450188117211085969644431226687605333538860401341324706531557556643342521130298613067113510327008136246258880919949592418431976892366096737919194411820085086446883696231709989277913635054106626564875714305187719941663859649457397736230579396599228595927039740132717574472458179296148557003113538435069951246724133940191962745375923114994272886235248250972573563006121192657594534955992178566436957487365523962964759411220693485379869430897331161154020075339619516807679352049790977061268151792935918938368106355439324671917733260048520638974933116210368809460193022265662953913315545304022707299611792824700232008703604381805856604624436746072167471031145205520280027772179094766311755171822187773418791747418615683853341416958540517369699842806489815630876439754647716048252179809682655267682365850556090586724744501277501795560953708908759564315132206284043820916690555662740904602316155670609672101141418073249845912827256490372495406247799275436222062633769223003080146362409433427587625459529341715823855684636852852676819707047658795975935592576724246651712666259178954649345620827342093161763347826841442081949013423178287928179633165219829512716281314718527714966932590663653261860972600393200008268580286756705728194870729816826855856296243385695233866963575438000281616179976904787132669714251473939010582415591112474921747381212376807595224219375571924726130598859792686304785821855900432479341196223343208960865135077544973862986993834614054305789842869393059789534384243621280733244037847705597697017123718991293932609961700008971140041266164442170640497064660834648069925962415142546852012573188086375237839887533089197242956497289630908653445643388667647340216176000049089698073200633420686039530492414801996400586106698062881399029684637372646503355955783320365044666840176310368220448085360436130117173285122389264791859195307562960141599920386883786793242376303579228150253325345493309451086551646452590678111521451319453972878855778919896324537520260677167892828938652984839961526545797401315126983023177115160022315577056377357206202246257121047690425022309633492919771383614047001568796869636241628002345234017870818532716630215221774821614812591999106206228282120344979459210525591073321140923426502441631225834142533535032394075302608239267203663930169469134117540566679864756148917749605269655232602358414834244894889679896438681992430877255505330290324593175957970009769094202726845586500283252814045323813196397506841537121692138469487671517295633152218961121604326543180763824701275836263022076820517857108472208928343992514239406315493509871080327391183819997087539238287052430082817267965618850106910269615277017657366399728711547929964540345385983208095618994648120172372802921800240194782312799594975865918700366462282661317971860361000582799172755565741378161899727422538878298971329116399062784910987896289039300744799679080659229804162215882182120094593334653191601175006145097983504558314849704117509139831321047456612472470903526255791359671656905834446316560242185067270305553297011146006769531594446639426819854961488400776944720079164998731967756973568700335020222906733892216575628940886279761180276653832933111996311326962626038255384770406445863325599376520592256627250954952876570188639966325604369230942752039538047028856965115152839921086752900945230026877955073143901916067631570639753725272713229276436407631349677605537161727642887870964497859001320835637529202976121506009444030142876814605867681856160066712496652232175695629708294578093833025815540453056209617085874172654825384722114874114074581978551438003279304074744638461222946226977268669115902806107596456234330943345153957952220267808751160614007840138812916465679200203607465244042452433610288663055109360607835596657885726340381269015361240254555013737233518970888458872881804256824015768650079162962632494338334269019309415415567546300311176027612711621571180067735526492558295299110399583139268600195256913293834152665354067254706517794647585894082238668399107344298064096907989082846945468747249306334616183837212259204829073937341870533687129905534853859857070243868712714251285780357005009992613285761992343366090217257817962170811361606210337582051897203838800784186906679255251460865077600841665686308508634469035439526910081190155718232297710432818058502705232360228693094374838546357671546012359156389615602103359310203069474580797434394521442746773679503744970789165719350970867673418133030709066804016789421694116878060586201890171807472891010297644708411684934336586037588102666487679486730069186076364899655036659225366356175070563098300366406051204683539546914457399746935749375032314916488483546753013140959463998951153606504925872309773090685882885307584043047465628120644459687845631129255242289026955781171258052548174307608242482770875807949143151265295393119905125549101172894185435126462329214559729353676124210478834253822424442939376841085382143270086039219642890013522018745157771367160594073847427758771826839798609051301653069260950274643444905333956691999060833075115432564139298860680317199974544778342861661451201355844275837019029247519102154673377204158951677323601234597016460472277362212329396931064352293966293745055660891813694917939518684681154690010656094855845544298524806539541231471974889848326666128717925408394800078311000656414807817972014613895915813006837299124659601664847425748504594071336526674564144241579679254911236964917555848854491683344228740346136096579921990318229519454250291426095180444815262973372178368340604200648244105490850723232391966500348075673917589565593598443074359571348217738411413585877234237903484707320500252778890484676375680267057692527756538952255960146494030054054882849490243656656457234298823280214653121457556769737539069588947636967271206140664259529469780590498474156882230889044320322206569688758035805543466210586220202022959850540334972513473301006208689274458610995138069459529738593737439760619295588296926243571180931973389400226350220778381511712190020408630789764819501542198600552899164960292160288111285554758536744863282471888909713549995132737861215583954466729062691566046449208621749576010922859536117770518959560653546540797391479815420776436051459279191190248121328233677079836626316676647260100865515914136333290537282060771285662204596534849454158505188635293992467554855880995771194966975244602843517987000692136169221125086688707807808439422903231239673924643508310094691060623136223226008045600008650387798544326519501504312739513316974108402490873587008741612603905023466485290423263341485795967126013163416998043119623988345432903705715560732787010284716308320551079171391557316676965144595593772189490073861282030185037753327770130334052002374494658735644138642178797719728734643132515899606448483012454627665459874987804768199917583796622460859478262765422867139454373637782368760502858658021952358941463645198957410293436731114280531565730820552402202897142372451412142972237096022346842280327050626110684510931849233327979321298873626694582492665842646914565902820074334483587327813019829909642760811742234370474947626994388706031941416054388862386992334246455915079524441838992070242116013122657540092871442696474667303337146148997325194203572663523614535032422607593976165467871499884497931053285551371071997024858767565013438529755998548798034981659248230159293268772830501345281698561742880076057424667993372737683606289268147825550188851821532605667736197587216803356197588372471754602123398918230457286788829730761400804394358622591584456611983268402057802745656667160257705737182116487918058703739350036707030445964128167485694597390823257992972169450564616179711467301470630511405484726574046036207004880056103553419745728446093058696759069773885215029958943513523118594170017712637452514753278180418802197204048570784548706334088354575707508350972886025499472823804351680053741890927180304347170385204555644122833500397489802219468130507137165967128127678193844931480682871083945239744491676366498626954943365579707869780364449590390024340382496848694869203982116606163637684673226861781198275640153906600583322369330904595497746570567269513467058987888279239100071694254347480017607599379354648483125741628645635616657027193914364845885800001530919268432245718753614778895524184779409038806645795781860838215570516036145020407088005232120540655177821594293200536654482097470059231665608917568638298325291213544382721234427643142995166712684673663374715711071532356204944504240070510457009495779323028352340777944438074278611224968074469535106004685252679911306519886369595982758877953646413234967021091985704971163689990616454694005703200923593828021251151608733056692567614652350990847611566520461477484672539998299806953431315268938862361076497091915171282971141564220908715616006149748642261132597585294339195172692318963944564481907924227146553145948013434264472991331659834244715819764933205794242063480265227534920749557689031858106024741094778370033934271819748150459778195349344671878113801047417154975902634459385042184016496697634411340304936016666626397157558841641162440703443532753717716688575100402425756589851914855903595273029302122469587899553269581586623263458676097376204414639190747370882296844211726321027085560121881580657601121857796958881833248941112826813253288067686403824066589478530990832522169619116322001375416371205167699990286336157493743247126856110484616594799314150594696995663225928147169070311137413672556412439800465692462480861143072025754413839134731622728964315729682545227964260376552938990378795024195235656334975982297719964850434514058446936105239654679928701626447702177732062229460704607135725143893205291577892900911464392888450010947612081296603714482995212107616520418052000368553490572163896226498506785819323730138873968459917048403972394438247296765312121859205990523248719602489865314671898764382112940879704510525547669218621430079045977850496655837623218480336506534448848523861088194268859548002354531882450788438839193210799732888579411782208747736691660346201908876287847619258852176556539707589825988547494330075051245232588959722659978103204345872568133437760949569691138639778181140274035611604160812783000198449202341228431312042733958307648280301985032323526755923382404874724193307782127608072590557258727937233401464252729612610171136577887856489458181790048506851716904852365586712016778008027488293495383158944968278780266495320622694914210290157245258302774376080505207559257849758161675662524928232358733530857472781158943863862776610047874810906280882893423390335250734282321695674024798215418909130784663980252363906691577162597209192886968881604828729064109846053971768359717529934860133006461865960438793874229207812162441700609772848043655780222404823399035650333847976421430195890725815582188672142562752994460686451291734777051051860839588415169372461714064333368801658146876273629484214664293102130453104658709698571610701960453169490778222601122334445836874861263164754262812260607258025350475430985230140618232572549383196310388936421096524866996586583837389202629887075606498612730980151297584765236213001034730098690642044182393923790447282725223111903768655648757993351593123170762865142842392959906532918515700385985937623009633782747191654357869907485442267678175716597165110325532013426052613263849462527088426309804507633657536067939790222005763173374550720457919175239753949453605185322495170449993427365195972894099355285849003919358792482441475339160584354657667610248397554129022811376111375522136077554054078360336055250099414520264834120209829183662799532670803314363923673755140541208463321115821004721669344039241173152208584870970847056770680344444555004221838622590624141628130520819643143958629825139234139283798188579613833595377467300260115820844577675560098003306027516439171490088791719699465271818680999734016912236232157896702019454719783688045374440447153041706991180642627604114114459020447005007388347370726356156018052169235107640621152553509298736459240764217141887859696481348238193837787219284001464278041342299245074580681678702239348147763670398929730520545643293136035045022500006907796910965829693842401940564444805065152446903962116576754366598105573324086786729209455636450468428818507089297220884073608710773706087324295761363907582592488657815950096106772972063616769056665762168124564736677965082086068136820749746126178254325409440300146922897018522309366730424213976475574516738526477611910198654304883336732053030146009961349371930632885425234337102721845943705513471212629171967272505597522910162647157924815792585997393707282114184562703537321253976826936386245217310038169391490388478696688697103505866997049530220338120133033073017588160408576583147031375047400350405815955021086709831747019010825282416926511206168195173644750486531475964033860518262276696562860428519118040283412873530463934581416205437935176023080760980263607477642609880770992808578656312284897073379285829453587429151237528348410551422472677779129435899017279006627339783861230102577648633236233011132720662674316029909582220107445290553024054629199805250135726521314252541330012471514234597124015632193272901613325799856246907160783933632865971747754088577734639579598883685053549355572892984057687244544169056426876624359358648684558884142425071436854989609233913107414057062213541931588236424769230285507320305997080489982880003495233065377777580608239310692092250851094371837118641663225338707287748031972877175335976342631534505502109888063911613932615690142084504780201201491711629898930182303072076544775263062992588239060055584667154608114361337724425574075750891667646097751902664081535240458547376942125522387646147352854542014777520616598724563118353382616433507716710655607960820710447374915460663517217314214909748430176215920616671600758189279378187206340599587790814761343093685989650866315233500450422363579059756339052873476627014258558870986869920675158888714210468649572004305143800510370768236193338922745258740015131862760315650659534332932516101343637654690461735845169604745160036700178571898025254550261935827624619443411998470677595554418425642102854196470581669370597707498570706556300027001382672024824500633408890331449785171386372683538700114033235598641773911684115746279869012540832075612957420870088485434975047621789877935909825814737412470874503204038198131199441837938633748421603286334251385137367556073537493655158286751375501866347297854290800586935350718193811575855135352975102826433207335837343986794952311183792421801279333910812530586722371683036270048485767240829982314995202233067355719672428079671233556973553915633526501717261956580792772239588852316828273273415442459618811466030138468962150866713704445904257007870383815997997725347092581940374975748174336018838910734005589082711527675264468346212142009753650176380268965238613154550978894641548494033620923500476774866302914655803980258169855334172998668404073931491709210319775549733472613965647411978952610474921772751464780608218975659893862618463912045680548889801463701511962157127491144256545852654438404101941263649255572295905541040210987496858464177626843236613457388101310637661321438313636399616607866601262096154309304884866051072396902198217151995887055502514061485790670422586024771354334172473699083633785386852595757285866825994320379338516789556212029318763807968157503603169243637300092926696528652574470209674395368706922916650403310818244874520296226996021410307270464307768587790235802624958070150946572025464316639737484907031233719309780625259265303314221705399995740719631375140407890846119559642348754245816030661161541987124024134921777271984426281525367046163126447010804059459712489634197293404661240264999127190610347232780152931780906329814504040282399725292379992815334869108626797432012913930785074949961566986039751288181408643098594949582460279405682217614000539847061746613374855730205449658272516894723173074643698914867598651711576256030361639107305553557220128569395654055242821655889411580746387053627157610042003026804442095083691784103745693749558371909503307866563805167252608590389474280841989644714665466896316979009412222407677503810161975876365232130291193487092835594616729440927405384801228430569336655593340858781256579860819044330982027669357879695455912261387775552694157973499314029357588703681906519585519474566398130496977655288109595354175725661186953796871954141255207069656404001138128513252240603002582311235655951219566625959022145759120745395275180318980699306568851141713078971310740477481278763359817679604078726880988082827170337467125775453368950274330395573484894824920605392736669424466902623326560890208062223432686394211070198596473018703663582904366844858033711914447368675559132964782775895302967522353441778068870641499110364286482958892592868722958139183053427018395174489785124895607835533631617046683732686019534515273336889749049627999846756782350898123393031382693359813078341948932067516750317778164447535647631216740225517249098450688043999787140278785396182766230466308883195185910400552957458893276573499988911806978753608021517655531456406432079977233878498960083401902051424307288868308653850008096264203583460319000310112701028795929996583887194618014138954900986805811016992043106653993109757644857229974547094239260163179037880692150873597785833502923924240429853781267925291680292407113685297422657154095848818465246219731203384074072304166586384724408923676020145427648080228359377930869703989652858844951143272904695167424373376036138155461111756894946859354652492273629856124499179674246281770809611951978237150958221891423857883638547129418275155806634458218384203394428106534813545930729099987518801635086479358463864523453338662908901255733838998016773190557494463859091489212551414447560369180937788155401184205008948119961015804086672777210244235810158311039915824300359612485088195088599763309454614034404919356574058775800477782528983665231918081746405535219500139405502432607098807337295102809343180495475184279261243454992678825113243079472517032108381193892794005279150750750400114874721190264810508143726531764217915889321656861980155999173114141710751401934793500726640050642904038794293867796706912958373302174849198432087817127498982470472063578012638216589120657496954915756354204137265266583885489292048437439946212303487417098355703339881878914740217519038875832580031165582430135437662946711816358496360452495730011367606951799448210264016667834061434327230119481901411256250228126595806114186360595267720155476660831415675215181844679146218583945705650589167341541007941136113430921231116195903842831394327361739271320980143963204283826272790388507752917689906078521241023626183753438625465094143451158166132687697911071485010950023433115480431441516542936336734665395481090214486360029655123778620261537671424084101568362101698238553615281001138863667295774518959310277928193665383826063837141744903222000498612335880952505957373274592067024464454886304953305013502652914547343723517174395177799560678203148949108995939238038185929927529733521996042634736639048161221534324980207119794808297649187003830381057328567419498502594899358551950452040853777476283794848773322373468005479809652050358648809999520362341311758820314729467522111898478506074727942381437358849435587252440872903367968755563609750809158632148687865479504800751652884300132600152537108656770485785659182225089595620976296575766817178849744756660629325915009072025116086129784543230897930930024294738021972647293009616741011332549295104757743317732824472711218317559741105796978991749925748247813289963005021357389992791108397234117292438635449804587331593907358614787607426124077540115025328526995293703821594874720491327037789940583834920347892908956186953843849441337242239625967570370179649535651384401644373288898658161435245707154271405084263277445353323062339157260252937251419539191240746477168282958673675752918826666820504653923951230031827421771525314664938062894581287104286830178675296804440503959363272420751093552039792025950107458597560754371457987399836094067646010504515765075593380691296513798834688906187477767383781736169714627730994524450715148684867085275417982269453608964092332783440687057925143855077948395374310793635593983825025527389697195315033647765341782612668942863057824508589415347242889804404552379365027934704041883077360827315271993003609923725483984879782046323709610569134190773117386947097741475058913244256388026724177685891304839911981884152301809836174621125076477703156735289088094772072659275795331331285897362523878941902441035127455125158324423974285990711674632299241613013822041432660596492879716610654832456156582254674862881939554673932848564612260228125140262170536739547062035185257414966928233733851848904165146116984652777386934734369640873384687786815285037689953996051458822414454186722953203334648839412681535990763915079745544764259030770666036523339916791364832882259273682359182035363526507762827813094681029712542767661319171762014516189272774680970972218336556041515210467399529761111834703978033992910618711036851028331658903592780559438947352985015770319163106856657556678903226898860199856416190042709864753147205705221773463687813210797813317951066576007844727213668818097152078272072808778569241783231777335556949788067910357054367249808760682885570277789184922180797194091127333214507601696777291430719761609247475414930079932851673211420523707337928160914221865508249966397396961329389775997126436789416861135295439088627479265079996601325392683888667327209481908816266600409782872513967338742312471956595126249195822778473500922756918027283709073081689430979127865641329699627380107469373602241803638514601999723052807635593648598599620901312092603507757208127805428291134185650258921824496853967290514897198495929366313467456811511220168396445986151102489588002126213261522006896774369111272268463933054206839084662459672791729146044242013589419388043435421660861255573289533579629809727807476214205712584406574301335746914068311139665069524490353870550727995685857615361605830069758858817816916967759647737804540046756487712419902665645149943955366604221007633697306476885175406736416450481204244772999893009634915688921691581246886065766423091138855023569458966201877757978956909047413310587967849645946120732953839423615196743682999877505623438871260836361183118800449858656204248399425146867153260185665445386866009921810174336534546230988039298757768053374098804816936523353869694246928393644168427179801921156077713178062338922413645811707223388062690257854414525302473989234254725255921862918157333324294910255427703994594006931349096738008100456005249304181407954618396617085003168672622283253816273386605652984747766440690483528769228850335861110683293903155070876846867657966734656597323757846048617887288566185775954015714381070162618949651110788898876667313221245711123645801523411766363260350397906867650174825054164776728369301447524720898666847418231274629613243823380954723741946101154200949681117462472685328866884304735357111659131962810466228132204125437259629208499290974686411660232413420658640147382798616435885921747880708353193611922025884404494552490714949081859333887544061952014560722994475101218506932637964364803721586964077982238724495787453195294247914183164969782675892862053414051305090294522558855861223083666752289512052333375149394184126449009654202547558142252783085830304005065951432298917992718942292610895636165580102032262447432667074884933115850598607351448104306664835999202509409802356745077400902475172230096222316192499534955090101014252243182135634662668754124490924504090273143631628983835895200813484689508877548188980045355073155663145667182524990822235190030477178943438801272031321297248696131709667737239665986839561859549030221037185858628575062326274963589907329787651060220192995322576365482688332721072244550360677278106130567231643977434262166987887045677778486361926300339486944860931838925700302175086001739229422522135677749343794230380984579670722223758964535412892487389555348019265519574988843287514164704352120589791334568467344804881960343538141508103160559070791774920198210055975795998443432626486609269996991204278091577693280423763427088901450009232055081008227151457671956960942571488046921869671143460200125902810375458155062176657064188284652044324536643225147863799472419457548023148037506132420834503111366254297312497781254449800824412145500442775662699882407278892955224037795412971293296948485539545883029452733628554624372412233709894114475113446784406685290473399446404999664227368077676562233716759614859163114642064588559739669188135733693363342866731036602806488064394032706111910902278194407602297804824881860406553592904415628591263417833643809999011789549737717644532404788469410199042376158990135556737554343970061028879515508631029097804897385061815639901691914726479677939217787634727534100219472834076831455523924250531092671331339843072106576827280842087788354587385358797520874049041375263714515389461325068283399188363232549869110009254118234000374301369196974268170420494522374792917791091011004934659717938392270744390889354125375901895294590770431944605683720015745842553705224090813025555580728845274183484223732899061588797618686246294848481738386226974029966642713651630428397006220803562775851605564421764982133733483293025159565206349516833729647103897022557508302867892686356306908355068707610978896369784722417496179586388496860828332644828211423177881023188225507374458677185945904350529571542024296020193433095742324997844853863637608796732964786946610154006070541805804417057984347619797817355070415387190815376360279358805966208140396123139818568686787895571161094405572264944794838308584614388561597915702225128486263144000867812257728606565659698517249086220186855740238528671184554959805407470302195378841211565435608627919865495093202992925029864259685919928296516834424145976441546326534623612069779119022473885651062241176716030036827707252390266959049759353649872660358746765907694226772785693677195793755240609307847212972802941034669938788178685139678501175054862560229596078326962056243668733533217421294176570520350147190136714930311264004419041265403663302892876561065783534864544398333232013929846049455814123781631640855095918846173546406113648440300852993116213616332181711336975743286805801744777563910903510962897968524900169594323742222161466275265298302755139184139037039127884753749595966084240282538667002397517855262779879178271686781248010439354833930882376505516870840739341132347605665566939583448361906605527621325889726601408585993283972104128529722441809142171657435980348758125146574505641553520388124417412251782805107605947280563674844869207493755074750605903637844646167808625163205379605957620911375274513639583261879959213051365298300358443254229892392830326493973151835035623635987283807626539950691584732530196700884344351805402506991134749967051889565136289633754570225797969118155203951847962668131210363887713684134190333368321241293892184449595131160311317277527224016361580720120097744631856996455002518668020913980839271258147535876150246152110415410683255460792106150087148607410225314766045265283815469070601364298238231305597380171638976838284387478657905703252239348458382137303172002607396705557250511756588858557133914935392188102610222108791928830361465983135077254621132576355091605531653740457086888458278936202821729565064891596746720155068869312305565944525747529046204711786248458227240200008549952371779095520407483650619969645196199467620550078066022779489658772236602047989286135267393345930413052998947845986994700004676108427079154874952501563267378916650820195604799978502582090789299181282075827338832892124823894176343241547280769794810784371445775805750688502612148699619873137018987995052985668044857774010866860948088616931685789790411073609013906742890606831077882733224092062485506108715660235263044579120096065255269609137335914287222866251501271677880599674723060156946354230617949331236172203604279016503677813267335528625054974663866317542284718433258386172884633888140800216720020136214839806342239670431795943463440778934443233513918868976531670387172544392885240587172535989449015648734575085821838065895192809871192818298291705943955177475381953254764294731739786898777940527797464381645928112941757275519820112347589510196865752162973378865999626398146223879204679300527767874807151561459985807182738760104711211841978051492045726960637499634862432161293110818664523239486844044563632397052163204763250040433089298763668019989271797790699825722462064450456735164578768531182082401978029797082472393104144698588042664235574445765850362823533330173767933942838699164502653745452803245590288411398880510936291871131605045454070199672598954592465538140341300989089364830637697958484778627925997862247425953108650881740411448404522397580263383266373074159438401318796316141157433005370791059524356826958130429544840327410668070914713701926692936817614629370242590988624753433632037734353691988434226814648424814458914724860736574868283175259665485714955515292847830877817133970843946430351593954509849427732486920168698040247132228383456862845333741339904271076703808648222140263289302770140719015102402562696338104428791677192478595088157512131389965131548946505026663835460561048703256321523399607797763289109545970285184948798969977134347960849030002061996354732027976894233783263524147758318745646071215704780269868926524922790836640411619189167743654936369920097146923185747175563802974995160736953303751766929010581584504637293042278895938699820767187195944068746421159161166386580542525712616717615657855822080537389117917205713983991162894844486634122772645178119494183250215858744671762503606219759999581218909027953546144691236404741342779710947522865476775359943536907912678732035660825430698924789191146527090951680270742367852872015650487078714200673494168686884755563622345714398654002084048767408746873116406540618199634452741716068750987664810748212774886977709927906577374212087881942126677517479181912740869401491899473539222717459898146962831043615958313538488861746917799349068366573099170659718946102624569284141336042405663141814536072690979266418074730308960985871615719236261775164976768622575325640602252697525396406376945910822377813984636597200549471483634297576028238791806243554499125555733571605992124585441844333396046989437012288411376415927657659263730523625063932071386965102464362973360955806159306092323695378446316122466142361871251654339519476282143123504996094340746550766399485083152381257124470970830467968245797502661361972626950566851027180889507535427832928100369052281601346443461075441968354507072348708109310529195426088376420797823917300424166054703944730037261316410264138637191710906834014258964006361372226592798008431669749969497843536247982406585939401180989590851493912893325188436231813216710496017256442021007116322224443703327881224356118707560795136893249851811612387120426465217338075396696620860908944300995505033421300116042839822526466759878659276513545465335942989342075234828079417895292415408012721273511042710131175722816381687776673302444293875476082695046654833345101929964004112371090170671370520767852318032114373996621454048534409732357406812366806741814808258083246846687581287282620821623980272472481238083402694068869470573796808513470067293214287463192962106832154467735235182888124844046949356350420466312400868766678774169380803897913440574895309414945513485116448264512191060107885130554745275449575831357316097479174329507045351330415757106461482876800684259053042011447800897336091671424484907049189966731502995047614232685376795342433904428020584476340738014609917923538889075975594194653823643103699257381668202645073813975909318782191168537675709325624287922849574888555033608978614402037643997206611126434495943924580696869375480741410979847323905011234647299877968774722304670279569101494834855935402725569730469663871634750325713566156308049441394515707707621108004783307898996422500174327810282432521981969023333739870718293319881712270878377114486210014065344917552542313213921760389070012165103328874293208443675254704713670156595007795420536719611538674325878787569078807951326230059449020589402208772161762645009143813332964422122809816616478564703070128638282259950343772595282891440169289039032614880292239465093320891074111136831844089428955483323954752729887835542276557783661087090193716825672024392811680253212919097863510748678761608339894090917634842939196749303392106084487353411915267252057300887651681156306110681816057343811100895518128282966260731470685058018540360363830042367751110487308781537736557720785589828019828411018578048469107416694757178421902450234328583566285258918220665869039619145588748628720802523473217591445972172101676172142192625072866744093609107352340664542502635788243424361092500333611279535590636210820202970859495325291253899558524764641635186450786866169117971799312998685343157990862807589535717344782091031989897105080705618318587495320303534184397206690666416756112584764608357289315183810165600677426500167107811990384326751127664531572649480794791646919552858919353012978686256639006359904891703691638385582982110245509093733121188284863903272715147925789894646269940672707189818725980946483876658234680292298638060694845031624343975890646642062787946622206476402175302534422696438092174025330482552664802364185926385040819359429679664012057466498042089925972413626988058763606772443656149824714872305649256229388086333249854500146904625231169655518990637119699167760050341730153521969025703898903544459550935892037480010651454998498745486186316956399947161692567654856722242468271899269067665058499840372730843035801990928321676186736134174507534364555909476534736852089113979939905141303562669786730574805250269847845067305391315084112175468146666175998948854669224226418589479696711395149420388802179374732878702004731903231988282670061959071518763025790569490485060710379298182449494688467197592915638596024935461148251726356289086127943434833532845384968780008373228620407551999918109712988155584071209340743019250127255289926441762794603498080146984767089204645769159332771092224548737415472114348241670893767171535664567986239773845503613271804705587702037622055180252055964817477298975412171833725209871673073114355670199766786889343395105956686848513417518196328519158679117219642710804444992671149568392061340348159449913885399511462471587949385236431049176979499491772516931484511405398170891247710035297730831471574258612542488289490541492025689689339829994078480975892662181323934699024151316645180736114960483627963685980023931370520854607815980558425472905685537347788436339175642707169413412493928383791210804570524874593626232517292049463509568985408136756502354631307620206034330672531399768462737012608819348989365521662201828471696795615210359794092735693928280172644860619207459776048392833245466036829300411467502430981057190753168094158998636544602011692685489823706866620913924700481637263200057360126827096645302741658987536900600493989587517140049935115237891525065393992477143215807276888859655924605481833912393505220658610164597324149267509627580046911793423212962499633355380918686369763376282897137528740799908984432927105236849394982170529662692204342291205449338415407792290414985748390940407080010462186727521564214884825214689786298717565182720719323772670066436859629965095856191312768141582625926012712447031733771719260749682791787323423666807215313948542576395892661467742433464162678081793998527622033129151891708343522924633765912944978633608121689069629347934910680133361727729265750623099635752752672309134243850908818366799323072169733047834528154771260928769258481503185858812835446559432188841348387621511996622511300860565438292857445132501701502697426594002263268426701072058030874427016782859096049807606623407881385850714258849612037777356404767749211152319932562492740256106015984070975086757114354211847940438215360039136838795901718262962859980495340263109380891304280558829491436050347505481030519694035604349055002706769774797357193144510481316923199083044011169929249021308109184292916100847314342555676421271666781685145306689196900687985893058051635518245358710071813962731040345155106526148765604141078704233417256408143805967634939328017583557357635729569760022118542002935508631672526629841397779575408058436261537384525701047721068310283435738299155015053308801051186794094878249492485687260435891505846555546495965545444303254118600930013163749436926088952885593182277174749681620237937598800907780167869547066240889930304213309181586965364635043483000273593618467151218352099053174496673583674131007492390557423262054145771608047181313589318539668953849263964528837406900238195262679924801619040591628860049266642065181596263915440777227017768947759686816791277770777420163863653998740859900578892180131421247056794888143072068248400048248631511077981709088553783303311843229732270930947933334345290237833367669189511455910648105981605198163953829756404270546210226193636422944611654374651668180677153983874259178891213690695408425014844800879284219836220968222123855698767153990986265551044778231581437598954660863030056815637025009406524255654748004130082468285456107598331946137570179160059621683967521832923373372296836714834435412936974528004027341295355528952597630749764715165906679734819048770551745457383894497216497123498458802826392318487470156276024680280917725846559485662588669411002548085464938245064948682885536392877528422269737836981936786650619190149502837062691105427059986333537130949866701273835724010450244797132340953467974550667289576790118575587338545986243764678829283717949870031396855288501038667827556177058039458894805055393979461280901469033061123396861801582534759997440384237635648606183062359805956601538206695906244402881228356090074930086991654299942216252138429248981285659234474150023473490045442227028293963393728062534811103637090767428531887286028462946264075067997906248731025920874793118901168919994964737990984360555316789329922957763762819728343390926490815461242414424919609461893997406848894223314544082309060314591569120447807367590547718488862031783647996967195719799805668714186783452039839382074898421828476730652648089777775230195068542819683845751043293545955371724661490864612064087827236132688820606819919930391045032631257396570335183223087172257476957555661296200257262743810679025817028541700586418854586635466724464345595485466347502293071996393416940671085279672113210914462069352161550253300964329172517164371150723172043300289150832905240448898877126475381214034646825692604862822747510419334269074009468705193616044679157608941704481827349987097287938176613492142991094109592249288206215469809368751564508343221353962198877546596629894237550018611223154253858370606266606100896273780660067196007161154806547970228776103408684066830132157623123826836926017548732265906114946008213450064655394327967928690983159773993646014662890688377383380353734213307762687350655548150883259600579957914893333955817853486307856930035753077010263014723428555768395112515857021863576552674775390994937052190278017048312800781064369139674021121521381160104568550570312306254286627696593132704083099389392194225929238929759260373509330284460643038797546304473017790010646299254653737941132411623805786897351667553201697167818607854552626597064928665563295664906633499226002443633296883241053439626213428058654118000961235315456405610025138025553177655327089717291566809901218867251645311180453230001078375699012956528243949762915807732246477470806053725683300560024288842537103669781745273247676527644701547027007315310567267231075950482421376633419297229026131194503224864845192382827707078053715379142487961895722510630666933081728866444572619364479726846636798813661913868506022406150217830244642130703546564858244355410225776003499465290626596864258950260786042891878564539396634496732487001003003179640238800942992861426369397475670032624230344515380217446278550184736804888653176578435222678907389804259287727105397587314107771113976307363467838868428207328293894689605015809875193254885122149703659082809411708246836522407628462619082597217667137458998021488777655979409989678450692289257750816890810868230829764968731396577209225597049345043140270550654717970221944923240631878014364870127079169531861282830563170609522752265464829237139457900087152877816160031093960607914767409649457900534869755442114889456884755649035539876922495372441579676022279094109235808758398357906539680193168611771999795881239454566985524210637808668482297996222620942782817411174046012010813078945353419411270259574627289409131762822272848036843566465738565280078735670524459444590180929339884870502968695453187122168222272360597359019524738191886577645124234041138504396528159483066289110433151833622322442097460585854397242679749755996325945739884815648696485535178231417311640753631351815612158346295451714873169184253191497601379429287781362739533525523178304550585176438423117547138586592161581790717853080265789851931073323085459637145694409388811929041755501326038734627589256336438226361998656504280593749853605160689272118272677168391975243309985944285439387518740132108494683260233881404662598160904089189694062981681445785935617822356266500223218742855193579784239793669880974569021735260655712764582445678593318269179211144479516954417323765822248915526812005691936546379938913955364508585225894003203808591802946754720416635355843645855219120850615438500757208876650130545220560375873582411334187470045574156259950098082349889084817880888596077598086275972888528163123806305572774623223388000122155189161479859239771005489864373208257198712146569040553575733394405643218958401220338266708486336237903824306604298964458592782020372779642254031056316138534385074638023037737144526999049160948094210839786126880651600656497155425779631180358818355024397815934476286871075083383902078567095578614822023541078407627362441612979062043675078083830369259023754849465289652318091049508016113227995591997058520972060708073558238105155475713105655991176889962224424181808970305539993408111887877649181968330868716881787271889488130640817279876309706129973264280191342920860184698790595527300523194772747942727173467761665926547722296847395929833004187876575624731183609112518193360718389202163987135919366729240663997604807044926312020570151523387845714481366301937040060248555746444995407465955932062631718971724731610477392215595624193638370473747090074759309581040397691142154756145679207943758054459486659082614127534207946369318153048214007480015098009661775998119798120950080654048675637696815957555351461480303602524188263400479683871548543929787561259678685690616102997815492444293916184139660562694436751829200921839546401590568603088433903094142246852756332376190157492136534604903932470429486781644832282256994769018158072582260898635057962574822385241784735487711125383711007079178534168424945642584271357726262489630023560281170137692528518115047922132990733423818846215553839869011506327739549099892632763735422762012071633003529826909084354490839252450836403152612392279856435975872968514021311670896171813689721341778065990753198051245520989933609719677019398438758290963428345308657024852124393291593505199666918218992274937004782113415845269567436555275704793346998961410398204492859771087917613543650460549974493034975342135742175828849384127395543736491178379439019498648595345459585058437358586406562462603249996611026322721773826648521860098843855160791675637919615779669510495918450532854804967245426035560805480432755508966242645462623103944284068464245963111492297622650084803912045817568431252974107679110807117691455006578138597904404126322497348543470621985842976735765404010727075566981963598030539813927817833816295457389411704846547337092234576817067485002823702440526712781033003746460877766040571114675211371805760868376373714067668899059587962778805633870723384007168871230754273159098460748099650318354991286858409018193711211481874701859101793420804510485420019135964997239138950244306377436784299030450498580433485591039482815671585526059047349273420487504921482340931263275130287821118527016214944342186966039552561889792667004575979650552958891593486194009644538358277458821538127983579070852136588668422425343869571370432720650718056464700737511317411378095066760359222921312699311861609644031110746591327909149028027364099990709419215826616243341648705945652020480855689701489625222940064328658867056611699180677765974386999537964351584688630355894767899072621507226212262312813490295306817366112982185767742237668556319171254876185333437249637963217481592486741525264999800451323004700532542529994302159725243237556167479866670422573103815058385554605368498845452679404422286442979706432323929403672509071958284912986598484782090789676547171087164061326011177723949362665846773563643027346292186297228841541214889419893816844365046669564550531731412288212996144004524847913250920543961733201576718947459360441976445864670585940483793677037158612440511053689260077720313981211758380977751360471248878695383272018994324844704763937894353860493197794326593492634029388287863615407426540603177133146360371697880892325101942682805126828793437874650831730686672129035393552420662180933327672983433925894003029647640341352688194466566555477313897526533267844106664245845360156168207290647628456913968225926186613488361309035501129415635276339828352320042599196850135775611156151137443539709844925356497671274139061225589819556791245426399944232912353680510512955878057789812901296402438566826596875235429895254922581264355288594661586137815329479391204438399725493721359396783342531001683661239001578247140411031873174940788254299470680483901979944400915093024972573992204791040021118235212692690009869214449933521272730293778411518864184791670743134166915658062314078093114905506836299909566494052793756686953348470068146856825451955823381316539688528558390169796043713001663709434025208512535059743304215247832507222621554376929349943490451932985701367835908945973657972606369904096425700577232639418312269914980000692708933565866970629363966617669332845222644545556687105082956067272089164635755159998559398860199070544015955961037229184366830309901579116641090530108754367654868315249560633459469271927484951229352933457026422652742275362225431012633153107320931694904913326975789391380591733943209574873716376588470331069593867049995971885812748141239772782158981223020215282588624624877336105549340784043680636845381070979044561250392105603944106460689959869804074729099050296765236663909064706303305400350893809719128211365073013155014028271947226117200796632368737967820677410704642596111652149750185440452444686706000396352623278794226572047302362522884997592171614403289355866331647960466854998561246683528260268383994084040650997314218429810609986377815539092746019866803858423583002850064501548306870339134744091817923811416317993147655398250725613729612519103901255128771592473363330795887728219538894150215077212173117381197249474920044587504786756512746537915547106489954576252153926010211649964693899479224157069251896387622476883648247654862234291958636001330699952972766310730434620725844228313100593926736522022975596720005048671936026773889963171534330212513246130993743918584181587125253515406729444997590382607416354205926170519285236535585358757616341490648847626808504356045136986362720585166931406285388338253948974924622042943202811698547359329857945980717063427848819651462267460103720633944801104046841847426276135470931880325814272655895402712435577475955077523467167499097467889201669443775961858147090675321656047569748298627856907686984070969570532943320489110866414376036386967527373166071959739840758294541846038709561220351920278011957932050771944160787550077965098905648084934018601937372168064149252845087096817619287492289141928426826587005805010051101057388118827650894565998420093809344612742710287969843015566324275587807033978417785521406754924176287709277703276442991698994140320130868813526596366977286219182722453370902845689253267888718217496947930155731924330129399742725901543798335980946067947149664328848296425902167568689835091840113141377846130596694785332582366018595309585385193308924674429348489710404570264936114751461002413210512479950374032436604477470851749861770042936268065013444223129674895676267349375464872439685177248491355516688066050705339584908056489959208096062269998573908405587218694415604081895283534049057646390992016608627973642203589089019602060449582248772161438872955123023058618816502689544504191870271720298303868888062498696996560242866556428471705001634379276413558577895889888320187395343053065852189887714532189036898095661684254293886910903599821545198742455467598844550996417169828344943327638842681071120428294551017864009157860208867780822590915003385706833521965686557783316893103278430955782638224177774904241315600746324255270710479281717036715006315665494618840647813274914165531105675062665052371695306798766270624592680819711350619744859623408550068603704684212106176557209359878206868334506181929770794931444812399062109660281359970239815456772010667683186224389190781769845493970018097385652120550717003347964414715319614571725789107251056186185432692087444311415167931192693672677059928574789736883448933061848886369178072642712602960805507213381638715072081156660347117864908082306183492914611853859908638209573190748867339821208867110030477756982972199732883128269432865356808708643183313195466726310931418536790940802813714507089141422558849787797426460316848887416812092826733970231094110522177687274265190353421722013224345357561823163861973006918090718267844432650536694687292121892676330025669252930340566092435553054618016374881286197575804934831153005446594756066062121911345448234822642143533148875940388484340158590396699454036726014751037929203355021578655002286155460624462801147824550225820584611147691889242013345022152066259972213093381706133561933847666302024792573119673418912485444215274982835415032458197349111272805983260105067255421190329071906857781740574254578148146885472835387555670613040420550465076669310289730618837395742364590797815785583877089865268631756725276047169037632528008981046246377264102143432545784358318469802240492669960651533081721001935797676442468699980092848931841844671740549248071123578728825228657946493221113977893421279177814824879517473461322013379708418347547733470166044617829336595439314070195453580960015174251146004947491450876145978358115163142128754585506242320778948459540758515237330243680241427104918900968017571292202489686524701438314496577732530612587653930309135368640317215351353543233325986196517479484866238744971689413195215156462855230739314657988418051072383247399625865166073974361503357665517371566078982011360550145780730683924440016455560941232030204896168936704789501836462199685330216229867135288286896001025182023283082159974092856958110436414614232232402693534102884453265461705340026071025591218992064373783303657372309941082227457992205689214780128381428747252629272346412218218280712328891387238858884701971516236152297272580183876829572199790469047391942239457718362482713068438983591390970688879426925409207025455422006168707749208710591280759733632382544767215861652657294021512622918190827893729935628101969805575582758674227955086237173615295233890093710341081415178506122767048013040310131411281312623710821612664405754318179851960833577316533992527681723226380929459051856395249802405712606742221221271280610021645964379694295838634720283870235068808592705282277495977180647079192040075791077025931972520226525192713172210894046306067131731839747339912833165185886129626979171522176648502120970042828816239660831712267299931496317372648409523533056757545341278551478906546779008160507753316740284640545561513234648478859592383623654419342215699059569859543484574947192303177443514778696361505202738254856058305591216268905053512050802615215897581279472491848682530474990758924070141639347261237614229122800146753896806582805570578089470364074087943584155168836441212446792359729501089922700057471779315451809810601359587842075478380337867570264372979227470085929533110851268773805800960212898077953831001751603093687968380655122920680690683392535640818744617020669832900436813922788360803852920456215239685337094356443119821908191158506356074099914924847723065675175473661759827028748379017653603353502012332306899205575209721773687738523412007657989327127241190475117721949946059392773619701573362696975829139770897474491947976233580449799042175273332515458121141376304415440199690529708907121990971011147592999439295458880481460621049306284395027234915373212750704596025522405162702284209944946447058589594755657468247874807509344416337221382275760852152513949112002651939176080746728721206374954188967900295817220230520552435032356046087728296895774196233269508596126844903720741922037688823120855808417493252339365807519221216184306903572505813608079319865204917377999751520857985014482684820750481648799401883427963771533602187201934227570846800540866173899633520171446436041202873239276234450840726274996651792545989822721487629702741403128665046089280283464997977409630093311296235445086139910801543923755213511515055254826924115455886293420576349351858505984106915801970265575729185555361781843550552857194789429368465403209189514620659989519875655700059062276874140724309591761225611469013648821224514835377192397368953031294095092026177967198063495351414423876966029684787598767297318537803447616065503855109538212099486265824632463484195734473892095796331445863800153423833675120266865917997974392645440172890382870113947375633196310668372357162008991150660947094848180191515601810443415144648417639830229579778099617116631585373556201325925892823596003404256160042162078295686053567893512140639639844371848647979051666078320903572356670016734974458327637850348167913502324166347435861041079468119250827878026567110277255641465414774812396244768529480773770163343563053339132682736003251516868284984610113062568087334533565201964737926271701900347859138123633461888355288383518043665659355376150215274828215080300063666398550847239520509165508615191190490036725930365959311909344884387236090228940017367712068535432252921272933111474790411327107674295217581123865207822304047394724268881366391736218856140846529799248056284535174508769984469448557351960726211773132836341092889203639156954078544533729443490536744625768110271376312934918965484406930133225864581965232838598724499373496100439994851593533033043850679760857357498223178200533764194296759779613206545954310967388457001128449079277940082183569406524642067525787390491107763861749155275914155548009180549783905153447783841636290394916993372849201235904422212935940254690906178447039464080042190751799061691349134358052018299517410460519757555154243841583373487438704792652510444772922305830032995641060509703141310701348832696388136860166114244136958040837781900479199990297532469857921529836768082142666808011120728332460282496548320973486221694330584027721140941536587991311890779666662061530239249630469579978226715712295319427402973718473011386559543259012160718575742617316656637772197409466087110968955951322360063893769430797687575108260232790473910296158242770390503201818061957819200147471548415450630716566568680179094292401717683749276423678615976323397280361057811721398302394985448914919107686749020383147995160227432864010681658466154326468183829252481368882784332572422108085882372134781433212837679846231013290699581067097677368688048250509610574777271931282677033838768377911908162941764522210255780363629265480200303730236904629114046012470986096146502204036920127507288112088444961105742541011467217044049526451080851686342644619481974101752107975041806040622414097112705352323988660522132506048149108152877762529133923242642555183462743997852077938111410278806190794484303819691325425669924953955157847900119365160586696606206435192828417073526658589423667042612835633823935979158525018757404968611794824904815701562376566879769614949415289926868212558210855045673846236971503836188555877845421747751659579368075996576477179080280294972411097068992850060504534283901895376944008988949084742633843551308330451488661258267837170995904840585123890333312573529726335263327804310474778375353396715563829059817458625369468848219320933147324334700465448283491788048699830874311280958448129207397248308828591657368853676171834006554474312167545317167871114857371753075413482925549892589557429508155579039970297152830902777794873043741651648797098668072376171178555578518326236904904885942078961595569435656740132311334699882688316264718998014538204155161106703952171612641360399707609335689551212076950109354096247628413327459800814525332080852348262610894360144219829011536539224953171959191047909839402075144503810020656963213962849487494532322324735329457896427629265497353271258656673812045984641198871126801429514581490509259615738899658170441495429439558787832091890635549258961208283160767386342687796920063925260128436050012781653221570347212471260692608571290648607832098232396352626958811921995617270405730334708691264014128260110600946407470539476912754110075599531038001226687534750107408627631317471659437244660077710667743420289981482574295223701739073248551631568195067846427686087633954970808850986636740768986304867365535583556547102844939777698471720282914805468113483538822177865395347151445061803455973833440358247835085261544651613057606905549311440687155956767030662080866258968941754186410304112798266749253737047384600667732584962583357497387068990890903702978830084324361555812586320572643029963058672326756475773483447765492835130175928438328442405048278428751717173112339425327487210859390295006758997681659125703944420990104618729858054917035363592717211070035766692977107234325802897413611450746958920572456336347117523791691446504752642043600680556327597271376660354757525940624393577313083200201280084652548279276714907278356285569328948868828269255476580794303673355689354479399441433179131098146997245691613229899546633838587727034062701717134896877419742452314340834241952268751617154428406808285928344955013561143858908942788522955074194881983080668783778108342981538924909258257038029655673278164471486909804022807149058406025353514566177275041583893650968209246926505491398314987946237389777212337090899438442575685927867489647928525151619632425014405013867857640017827926451212240731764085774410588467565392510269115233307688793500354770464394983252140630942542071393475646104052351024750829400978134937763210982653550594284035931645591561787623460871833165457924570369878515193719899922146359771703360106093440695340539441043163156734066436497756510963923724005940730385945983224474057891808147701318715140534615966472140957959017039909076848274326053692126712630213886849446739664305539949088097360817237978097667949075487435581594910222151615794219168585690380754904284896167735967880774205192091681997522130728710584832865867502809153642429024968979311607888812230242552111259443487825849589971992846309457899243947035025959463021242826069475534394908077211060024481446754058468210516238961832766745159658871094722847677246511120769616299020345858789301011613623109709997586552850924761235128163027012598102338233273368284828850454508246552174105729571137626391362473204683846467857788510111214271680448686446044275533627375613544918165107955082824137795900987314865190023650017831193957036791255427858153602459570296819732343795991722824863366022950525174022378781949961783142176297142270135383292543767658423832926811432910596613125331141337709021955573024491282779168407743438278558090815043187072446709173698068892998059135165485552023690845511378146451981606503944803994125478237330133926690119202028871863962144145002344679988959893870970351322097745555977290978723277212832904325758950868334389159391770104608430549812306638109429485868158185587486718508968939806285074578113478132359959506589869649367869805543442044193399294625371360905691505085748290643153932930883844178104366670353737128562068932240820048566248153950288382123809194756882925516431201777549574053254533858636381777542708904450040989102633400617267084100863319627245988911518102196734292178745726345733193594619460753197061920535538013400229314261292003148708982700511616524053301260113054710748558580725407378341525199591328763329934260651294105166260380074290985076066621163628128409627613890481017267572850909628264236043602488129393152960859317324930591540169177433776866412321721520560741519629883227087660842471010722778957367392963819247658324763517170409833234872931106079240592790375082814244634649048035714493775565982993410171168925339385655935779458365823906670470013949210107460562412694126826079655725144678209562528215012141168962190264720272545808926920760635089797931566504180231140047015719246783425285834567806684968447593153051775285681821129162932781377713275735014988168220423192956868925402987098220834922829211967855839837044330599088295700447024558603145792094320757272656920177860800626649826431758316478410431713244227239030583198296289414951088375932386853241447590555832025256428077447064089837713457485288763768723998960826023801980986019509653708170366892700051956998659270154747892062591269756457115956059512851822465122296810048170981353892332586441374961145816113557577525163123221233923583865435459449234860215502475215087225997724972424623091071796802974599911490631925031341637496467399388940711554247519651359656474070361890876995293208841831941141721127617589091869032991056673764782459422860926392985778652634888150199423961147320138641982469587044212184596980527931067387455472059391459106600920142691227004692693509487217145956836583015583150730427889140072911796634604470823006334022066679869856472454904223689235918430147843016532180368676137309494465792716152450062243617932381731129884535254692898774792276982689016064449179619591954639427196140137637997805723429324258926164153528925856001470242597912636602019595830091768862579260330740131523032662595077926217043255252631184502488851825215635142028419482107147977219799386650498507225024072754876152041690007878401537584995947851925485842100855468819204797303457689823415145992358883750192829162018895552858637340942308244608055174505182313835248897016116446315236602298952514015904955956020395817937294589603514851593350290562153241834868647193530057872841993431791381834597448698754483688342830787288548135718678138775600508670466801740737744500308477714561660809588444340916813625609285218653513686564041956589275767355105652983721079089843034897636720580331242598569214896902882333172655042508746455067969753714142528122183001313234435327602734953038902838283958136998131835446976356461038376662992820008177065682536882305616439331695441318063799092322501864227949771166825018147276616203285986817530142541092058585157674029389855525324808146238159889043331833942205076156950475793605378862430573914609615213155467653800546932663307173944569277524371563772518629076758196381541515777211246673688712278692087016006301391495144475345068164731152429518964076425789078015782459088333728649960683237181239461329551726212517474228762045987685614004516135842832804643265938999844681403406797105943266859315738483058604079569055337732468295796516915091417296314586319432055454956995814249014806255046726363291311569616079509957492490332456660890843042796842033902920668891485657421738909213126383165649816962393634710849880745503726866798857632581590012082071562201443052909412714015708774938573366385006072191310334687400854005620711029934478289194910971838664531699157706055899239620970329326166032662515031348212794910934221353068051162366765925403714479737806139538037545453449412340007032007717387513507873484534446158596880643824083634351371300987208083957776797265462186120542647692822071123810081867241165238766379508861126003449630741754154049906987391302472573979174256437944190672677815536487885678446652266151545869698328063150466909544173278937506962903713695521376620501603556192759476695957471076527429045118381662023695877478365735947773672509561354659217187278885352458014596098952132781379414479217089902832157675697584870158127651503966444656450370955265467510077162666770400645348289254612028073127489914105552016647664251584449532524162989479780523236183007964151549640011319469368645078742880784668318969529465843146061239878239347414337191226839675583381790755958389236418489650100032610696211487391220773832903646368406363132181236898256407766134967518186799260918079806757160646849184082528626523787310190032989509006934939592114906709573831280934956594006388177054866053533983210852129783486116129428580126362269717355098973640127392096919825131518616993681242093972483461379020100744478594485185035261294699591435096004225029823001629124778223931250406696199541742902086733585131641481331690400689128012908741948971113328487758665119847066329293187290534372315877221020368576549329230071635406204051672180986044486507806150323116827279698362022831569525589522872050995255468565546791491964300603153086818321229400509572786494365572094929343194291825878244677118612175521705839920015221405826409950944553173451126788128315998490074207670997866471913149657033536700119377729379351205843388419624372438253201570143386151482205858891647496638580143915481398993669616449424746978532235833489642717887930026546918627020094992450160191546326734804540668812368392483734519395872335471339352978884281522908519255826395996086969126771919344579603497459695692296940888923343215120031004191629799167260933140321127091968442953786911964045973635683133721805561559550660874505863560529905971515084570401257121335264848117289508909248510450048845990801374584320021252533708214317973938087039752899646981727555901856634863725791872995950258641405168190628516179113659640925116554924006851090244122512278925938504094273659860587352737651136225514406460510676172770015233608357830454701361787381133604841966875161474241988249881329676716257610807377330962196330380789927449706893090016724409908613958278461454497873693966164203222233299645205049571195922767924660701008381569983135196218910502817399394480242361142665362429201746056577801893442753052288019460437883674114421939942289436430953821183885495373771944970989117321087224697858741697233965554407599079350645750908060281713409711287979811370523770186882116188736001482649616034099728088154263184165491184090996579463275303902748144464881133813310653126762287027894811604635917513886743840285815588121370842760578427652656381893406820729784750154665244263780848564901888850613952936915504877638469643604865371757969657409563718136135836175537315194417432213049792320239154888677583094778752301695866631663958188627729469441045547604824831827611696544514005594702097165100218804522669500801189532422089767402523662746550516876428771008970213916678202233178744137571012841990447019165182048004032182526211264503133191935270909130806476539835037016916944988288908497299441986930879532845572037356192194763068162927335856666152146221169325532368575862554228419334586480092976356395475977963370282680677513862437861210406879482930945777667681214973827060815285593008520880427215043355575908192427214800825353307654559211664227479841830602936791420516532516239473076781031922651975464110369558185704494150808101722688300232997302645971046801477785679294558512002332284236895186212618766896711528720918565199759170071188562234394365498232343776082912742494079021798784718563252026084865165710133612401235638105543969628363858892192297111504219892949653157440211806648936208932650028031513671712198632019909243210381147217190224917872220282688939992890407732095258203955380643383012697487525379705634959872186970274440352955895298656654966683992338277583792064883143296360093584213585564772201655231623944677720195063076367988182904617679811806335922591733153503310739708870865527075682008342988656146603891882866834523953028504431160973163152661161068029704836546989964099429782324005286781447580933224997337441681929226078918638256420940378898233534538388706740053592897322748026630648326083972367345234795948988113898752570553331295128114033585876959959994549355965921542026871858129072133571241961535837583628428944093943266653149169143203028860538831295128543265611060477455064515919788513721930835183683364168035373305829990310737773820049000157107940090894083874728364847275630247107341403608125189589216106850346460833782658065007657260020249164033646570390184235662407965682729886125665041886697320107827640406709959946665479815271250982947266913078084131028448195660003348640972347043997951904313940560963688023254251217613672321225586227672183787631616831778483092506985333132200773941545258066842584616789863821502696371905629629767708372315067862896984168338995882811416792595283238363930195857295538936397499096112407457489637561692522022004249719086549607453257535153895979452853818263748643947205220407902353216183064828899688461095851636729952089678428141818604620599847130037733107567846925828387934776262468586748259431815982919277492036415736728531071818040495827680729594319422040516808554775729082685357269200694663381203631025137960133520119682905403986359940386219840571952094899738975244629539060029352104611814873306513145458813565803268924174697519111244635719942752945564667263462589125857192304518857100416350783921116178921664300209516930283736836355170471698368174925628472229175916117188170220661792732338315477533283507499572425396004015614662222318998603296977373599912156253370328635503214018956731704602953254046789325309064209111786766906791011394690768523075210687401484971550620743847933856137408982664780789415048953586770463604134899828991967984112288960649788380485633461823218701553788064882147518464922022864510594737936153919023075944889427981284966714633295252914726226843678483130828664364880607339595929141902494747968413248692525732477136346432361244351518550425922007357182709660537523240667142489953501655623037249144137306811025047376214836831693417649182707138274493628769966116691048324469127116674400890773253347455740028437532003905576681870456268223302576092495665906212099247190843718153174330001067367263612080772272337126588690067467107097928464832555594832149693681707988215372065945691770381225130064421587513085917723259188256355404530625650223842276301734355919664016722422634909052797870462740084971656794789598818311808965820659685201226054055252894045419740039760094450587834869674993433381685691624938136668561387083299025973752775351040352492045949836032481901334857933945123826739898025783878237449032268111705046886998581575318024204640125414801017851477917900618272641903060470895222906772263088767234186441355423842945338116073027390863472683611428749026774997793051798639487653107663165580988944753074415293892740982277731056279951823749689722075822733917964595292852265365188812460833592545409169048536153981099757811872877932943797054286601157109663820235891060771287862716579382067442996032538925767322438604367466610859030759391388738977142463275214015410258313104599227957836117032527520519991915971907569914626805392485932400797809760833627477134820621520446431343053637324586729106372360528093931334907120651911327752955014018169328403569045691315700608401763639303450285309167609069043239161591413868763841865142694674713023870026264813896881778248321417283557709357237771745268090962147878238385218980519448125663303360416620301554350708295334199254349837211100436804511815004458940741113031081084652532547029914338219158412078545894944402180124045759982877746549390671538974717939437650822534021697276457836852795617125490974252472133356252877853688976488227750801598461081795944028837110230370776753772702047880232203248978066787074916211193520765633368067729350023510367809011356801748990476488943130041314218091362549016679889142841167711861756809351855779081162650599398254323524273207565634041186264114109607553373625218202170593074111313880868941841906243052351799785969042072496376512669567659046875374143053511696644458436974566793185819046315535735165134571084375104005833665050805002224348458129503470640767351033848678676026857577250432838432490868874352986435759332199289180220311458562154934443435359800958952648713135076533491065627470532631467721021898774619444658371150257585894347255139913010507014897277900555367889219611539627683599591816873278836743620750249336649841464125191418368509976909848837424373478606311689063266116708240405334547904473677499487400444441374344052743523055609783339041268189089665869436587523007261543634895959978834317400561751509988475387466833254030418584274564294223890226431687562608308850976856905126055797664877178710613477895257654099632328983819393977706634518869863869555389629869959461873623966008143698737966063995478269048502607858443845101146093339194140738935368699760330760136646600231637081734502222174951168028180696641634323529155459815026222137769379319003050748463428168539786013300177269460084917557885336729448467230601374568096049801203639705898084806752865107390004552950938769933317396043526132914501079495460986777825233574797251611076996066633091235682223952647400136758958515736194167335473815593180389237265958492076531891947431393813584061278345680030585288690216296077315265944760939985850896517449105761576286380571693889213516671576405947455834252647640937719206224526432699533891212428809958327337258799077430253388746255674322031873184229607171246310051648924261325183410410155926966392968079248557964592035072172655338232096474341821195286471407791980955551385389451630954783071164768234251998674613968992536788167247508582916428318729318025968838254643581696129105314898423555796317943452048942887278724381070027548119969692491798660398447116023974211727413773458404034328309343922897048830741295203438770058214904284461444134291081496512267688072551920034009915029824222985532343833493340612953997478667715401708804878618652452218071667172730824470860961295428972218592887080436701617769254048364018352354276383687068472408987170860868917494757345927239827428916732169334038622040259010613159843172817882086182793074457762785404499251147123106581913231700789210107211788127631159131910897077860915996185897631957650098050443994031508787856189715099550036144750313953691495303997865242218968367092690521384926326056250466301718449906312665968692922742364436117763159738699172186327908724073568702406278836243918006701138555413119836103056037987307208624341896181563257443090047153588678927779231335267709815591464402174495198358375705416899384946812298223414651918296595085050778716733272959975407205698623627336264622305079372701217389632041392246408245344441500669608758337392833876510659877792745036605662713236762024525383212672448776719087779611748088205615993452848868743168052978416171321123121479492024629694065515159000878178787660385192993066817920124613634254825123630912661826999756419229693282079850019757116662019641613603561058575369959731775116065892837192445238568918393584770151985789326201153825828246305304162451459636948150655930943269813865682640000081084235109343998215826798669886708452352571812750273037381302936890723581948779738697413944459236368564657551697736556691941920172575385938097067535874843817753557539799557898196457382759958323885496026630546653738037336664137673689713351421972814630122151173007756216834366804696226687065708366279997452777717153626802260918534299244643160127978954073556096816148920549220448629114672627282246313344522551412220360333724499445105503508273163655581349903467286092849655162418471061446904072650300595601782791903800664728173366520207714756305147638779369769215557143761996504831906480473667873688439493687226810701770636129887928977251271317911285943210146866203473952057893363830222924139222721026666517555832390221781465136472073256532818938784251587524956762627310551632462293755169124684656715454268576031040061833636604324100053291159358736925001891401185789081239477999721282678521152488356599836859571178804729949330266325502684099022740610681884777676804246313239385330784401148776358120929943882098393522336859062435858133797924834090353487002633826046294573754835759351245057847374434628560732124723285436207162698626887725939699728656837709587708694414151141782421164628795431823985929231738893869395447364849139550904920731093690077998770956547109060650992482900314718152885593718773650331204615543303360213196645383079128776468362223808765377754816726119336524706731457247130301595642161844763188265205684971904646977558349935699914035437664233557861018610888448710283350523818380560442053990876659598080430446152624679704888515066323513317100311239026871507099175528603996932029175087531920004538136033867082304085461415477149038017811351200630788857988399310938449523944793317344962413635851647177044492128445766455630675818642305175092961866966301365468439355614158440354501678635782963587620499559298482176887139516044450582557779649250381101456338598064358629379704220677246995117793122049598031901080009997352904518751993319277826483823503961846627530148594181499495007009722947431576519660358064729584511038302569371414403861778890129229699940763207802436158392577141414551331632308783502903059468043941142902927587530213296532261639482136257622109266745655937724361358052021302368916395825819717483883861002262511703136801497670342081196963959997836787117234162646094148036200414251737360662622994096093056659724838502741501852235277886797888049702095707164479292778283650755686290866648987157012321176332127740419061687661762726067661146624735604144226488157842528627702922670324913501883576969940710863782048507344497765865942767483581808792995897666007890558838580058725451699613728667054474279429205074020751773839784015197858763593623409574109515444432596922029571618074004250286674673807807559770738072666465892167552377016841145727220081962968238941775137776520074733104086945840653835608393239605410381134599920887124885941962238857780779041068436318052224313587992863837077176442715038183018365938925345626352648089885819402267821752365050742863262241548630897210007179067129628964886357431857141253820819742697013742402514113718474683035910767485283387986483815222331932974168019566968172413378317529449751172658195855154474945890809560008532417605398692936403662082241578764920840037566550692169266988752597557332914028364199778500742223106518589279131013043915379222052412490574147417581732812591247175688526191925907464364825603906625185272344258100572670731079211800978591055372950344647996141145846037667874230025788261299695063016899588379768317570796476315872308597154667293823240030901046773693348612912739322746507633384644599800544756175840681323225535855544446543947903425785148350088025895624031119862507736577818794493303471147959316593480369946768025241354945634248829716195277105258713309630268854732025400622527856159961259414098229320143917589174210513352049835236961245679800519489130666762060901182359331860061878420513097466157335472445095079072018814417772861169697082347353335054976718527342701632435418881600212075186383223274212369548648197814874719734020088519770021613885005980536469847234833387015592008218954561537161647727992616498010516718026971357660727536182144887552192881972807128495692286918424113047263115807305186424105592300751952306179610935736730013047664594736375730510212857635554109610743216828680254955225262459037020263662314135161138097283360380451394123203123818642451376518446415210602752037678530170389429946687862375987352649387322985120293970138732252582281070070407012957005938036716147989794197078525478197414250672135217177957511131917991709619274701307265403528315136727435199807060751996092137236499652520637615268364236247733892566973781387664298650534422638419560898178375242753999689056161417697269203261718379068347904323795070675971543216544785201244753668019875970742576738075942037358884295317819617745112042456916993115929932211190199240605758294699235941073590068803404413260427275963951036470323327041213948361610829151443245277699816615763996266423461017718019996076172341391416515529345271309977660801888602508700336110468512304162230560990360220099988611946663759068144476427228425640269934402337888855196891029675615278380178611227746794658433420273297487533242109384452657788140120715528749519776336109110986073202209779477988308230627599466544261056968416904073593796702160243751631307126017515541708825865097935864821558212546197887491608894456064421982870456030925773969130565467293723973494048520547758696575146353128436780084989089685582099160269528999790110652751124313446481781987400097198929341064785073176091668687373935996540688053622157699644852757870877665636368504410205719590549024552044222934736360350321484273568025351440318616082739081484690259750837126600863227167581860593972947211002074142641644710204655170681746401478354064536949091488412355339290513759874462880557611568590034481154516815996075758227465365769424699263188068840862775923679957598495486792355655478468835886441118214822884932807010650421133454039951145312615174770716277584497260247318252376574408348661414672893855688924474257847571549883120640942504087406016216826833530328841739793213149777920962160569455325090264985174765094818885901385682532127707611162667508573080975006049760744349040098664682671963671370743296597952649183763607590150774771881338242714029481247512816711536845750556809716303896620931823061030888803131649396559018013670691938046647574317092036941078999207836239277095114015785681744758837673919329070902741809420748339270058596629566031985787353419374794349745304326542956259736726141155170521758782350746940413496067234488101030919019762838085275376372534678033235516932432581972392242670598700895173998049860497178039924044113140028207232735918245637721709860464834556328539557194920746832017193958403162172333670405707316213306468683586121252888115997939341793533020988436898192583716999261696584309149703837750860234027789875134231816764712865860233597591354505597325193222931683134505127831640186253935036038084342167395311672584640890163717432466878565602127802450190899494542329844959380428344444308445992948516872359478469975383412185183363300345678008378218199134468295776713922416467959466661079515647784797966461491184761573757509477165471023010796513650494628136442027175785151002839760623172497089750665049837013951648668957098831684628131154451401115820853036501307213479556173163439190484599109910973048393565155010638400119870123073496632113605517949852181173495553414112692602213140264831600786880242577180322597991413522968552833525193300269205348438266528815347980693073187425927730567973244352744306822951388502080071879630297811318616809270569555024697293418006527051048864397484142396495421917857288254375732249825289694657292514452031584187855719525887224108568802315131121733340756673884287355587546356102980746982377685750893831895778105342347275061917961027364186940392297292827230900929410624359235783807979780234485146510914593658809330195977424829451804984665884632546132853663034287963431059871471628539556657455066736203169357748418169819540415267261772409072187878773076063608659944101196737894471072535644957989263074225260608497846774840881915133966038739400238395807119425842187525476530674789218945159105465719725868303035223563259449689444236500884634505889543726748179050316828304108037077276109370467640891143734923127717042345164582294133303044162320783235071582581412893800170561702611637852090639008940711206426299381128555287151964247143512012581085623907668422333775535590967066862726358849230255027069232798990803135601231149767241205385095585797891228306780640286574229593568071689179543956567755485074853638847244338703228149382148034913287343629157603258450608916116578485174846997987343326345237469778276288321128544954677082500697104621018670182398874943126124699320267383558185232373980253838599307953116338440602511523828805901048302102605942297346361810303139603041281821111647171834825211756431662712341062419324039605810794916727987457054714244750377524876347898482907674936469080902619628851906864437836681005018581500904337954358346724903620353682014227347018686533178004182789850646835655233218031311080301146301380338533170057822302800619669631729100349761813011025619620277563618290510204362426866845438643850175768544052729362238800855509526591347609215043348804443150950682361704624435714300414832472451308334735145988795159395234107960841880836571627158287164578333188992893093323066833461197672749713704000653591911735133828904353899594113752378468910906822535032402631841993500301981992134869284323994354060857946248314871399620165382772798161134924019034512069596685302704972905068432649864164002058648513510365470709639491580232982381689941296141011520360659014697115714890042136827863835865352281577947008234429817225493268740318772483790504697874236667187648248695430060784182194618947219489559215048062420409722433709917581148689067554192187237027547043932471399354818799261235278319996742457705721435523065149909587267263823461723287505865130490743738862294172069441841993396749758743903578132204502273816630092675936684922414709713462031890811162427707782357740336404535613111918794281868367220159980289635958937466389377157856963192178999097502913014674959073125594379438142433967676495666969658370605953272422470140013255846874167532954804895818893770150120428838625317917591493218401536340431853352465434745569891616902588143964923678720437366376508136942211581943878730903679354024147048276681993277531124553136099843375948665485376664327258625058988867780998856691385826684918373109782397656287281579633994787894791446071788489898108114551162308451633870647276227312682757367352207906201328511698765490729018672954567548119382360673322353465375760130463715876399570670364197900184316733964376644646846753674304250808527523969396039379855662031720824923738341541379830678593839080412412953460446929289187833305039186975995706347177609855788621207412093357901486823503808861952845354880867561073517841550950586874905655069026955039098670832783098144047860943922494896511866806583719000442591989438835045122889537964444778960687796247559054313127428148222904599973895294529866472419680443277453889363782013528495771469026782892852124139898402726645219201814739419119412528444298375691965692275017857221821919506179674917379723169340960366294157273858149397548989789397547619669260238620063248945337382619038727702400572637760292491719355114763860517366529780541781697344155994519093397555429586896711786165699836846276863771232494908598723484790849865071280473068159248779662964442487445113132264345677913359429151219039438484084388205122853741253811630694204724819072173318279999462055999707477017387525802735987829098150388825636402588215363254291438861259199299104638561839536929286259702198789969555453932851074961884286453040342009071869522920611612575288184728405388801111198566849737688896620352340342461590204212028466379344798225106551044661796463800472044242735954451182982872155393553055224841128965591487782909158173511221252595363116301795138274855591823095738339892236953408016618835033189204681455327133837643973046391801050148762240939826655459791452433790623161776218586919076677616322731246646491973502147052674625639166647535909977737005552556075734439046259656128481217996319401650043365699892319727336392222123765742076641768583081052994238876554898664105094323190821023044302401391358970462263937588101456327692525128025214806388589895896504913347236910914395366110313986726557406671846651687402551944348520111621377543637552159690792365097198230103188144576497392849377355853841400852715568206398752521768136725041971594787562537563906599857683372926820563968262568420384644763968684553128056490287783031103008785641872048099491559614344082807220189193185632489992194192835040413362051897509397052002254607816153839311586553643411708919787483921430150721240501552664207693550852836773413979979867250550385014890162338744787235826493428369081999829938386982682230430686094036784083933628381528145305688662835565594881979992732291221962070974667912275987175282187470313590666527511929387572141478221496712415960901765297374856980820829232603249631461793149264105078202731197317253490603140029538170416209525625387828825752671449787603991160924551871892455163322814990245092258373675203041117873532525066676200494036333775061249201808307101112357890345834795932297653330321049760393808769731017464677450078453079898099050049491966002690631000132292689278713598795982004190201703221195918805089898484837493524759482128834891081826939475447265742716063413766681312616869194636305497660531138412692569463447421576211985176133938709380379198348689904191044845846763421523473999030583026818461746931998264904100693439405038837258686788547208915035965198683655456236839184174278297990337218637582956020175923111134925187114028581083804459110253251511688773509789878258510671315773271145114730765322398769861560206925610076669878838030644292959145895177218492828980746537708335993111395816812111198002658484078462715547687027815143283799407893606741962764723776245289751242608701555971419182952701746319630025561625723336891091901687421704245988243064571188172847438607240558028356339307997807018860387761207478089350377313399766722342144937185166283978310800316521051141430695778410418868896266523126709370293480332722311351698327229656664048423479157429362473649511483560536382826278414254991935096309455854390809710744371108856826218532781682074159008940445620173649494540412931037656174947202444895497264949695996760469344303946803738589268041938454173501927937330435835755850116975178870903735280125828117694060167526426888177592718025947229724109187847410198589056591264183344983673330448615994082063905001742470792381663658932935069489216159962221233653457276401578754177819185182794707173460274621518776577594955057236525673777496571661701331758752460317893855217193772538895516363187500688939295807053192723238889422754266080244930157888506123532288125067786271946442375445365161200225722128875855149483398300851100721896707138164535017669442096412958703425609463100876711896913363619405231795025476255129235038277021972852288391547858827862052724978965896968590667903640875455159979758038188723251712111885390558001013802438187988686422007723702433299893745763819934961194625021503918726022858100269304957820399363386605346690993326357000745949362263005397641230389776516369661389501002563294394927182385390861476157716113581595419059787302111336163942192492452892190494704292361674313980858462565418405854499268886491767405173763403703698916149122867300506659624622935505383859151233738384479490740559417158830531277338287520582401840017361628176401623657140619604072709853067332435119033928736601684446711814078330708583388559837839654985834332448952887463928628851317914354571055709763356340877185645959475591723573972886313739273683475650135312228250874488010047061777418430584552536435464352112327404011546900511064471461909056696119695461161680680377480286845043070344808431715411904385451254996651471402353653560287745701859202011027854631199636356368786655817991134295427600481222252265308607587810710054619270644986659555102602330404105922982001377327995032305090846847426955361253171031970925408396367917528180195047815773646604204489403666967051942959195955320200617249419997849587883205533757015322451362464812205358561627292394731808507955551792541068519204164728406968899380803806952893719831125195676938243431011067706906779331237940123132789889790379029226744466061907126285950280767930453862059733125123391192795551556550512932689448231698961711108099711815951342662971835537922130670390990477659173313314976369491993522413683137117267607998560911380571198922232324966571740687058831341767307019930577922200538459250526667089740351313133704310093320964466603185898275191555642316988102346624746040445881523870587236835681380389489492846678484962314727463892084747988872437962447593238342880285587635663568739908801845123365381186052926334053218114460545587134325368448933624573135708859108570028729343915855405326123460734548482364040449069752357764343616791585560957081699278537892934196309502890960430946890251959975727687010957103928797257611162973214695409378436265307104168918834780330637317567600034050405763505616855538348469621476752724158149587877688154432929658749008700555995306834769650771471360066154524936771596261906166796698671900550505295100423441063040850258726919038525593233761756329859199010155840574420928948319513970471858899004576319970114164495824856364558568031080179918623059044881995596924062820431868750292902474166238308048006908474254008886095481296812959835633067760677117527657853745026654055758838417578926931128595249957052651689859941920654289140534067351989327115307839281292559443512818606600920091142499662895303801895665081307490981766143977232174678214279367087242347539558094681181266804211922749251706005881500923843461417756955383667922027535739902561617886996513188457516570393890329988283904579904977999665786570411117300827911702184149398897210977493330297644238277758981810094073462343637631331756944313986882317297468332437051785605870958897846312498103364250126842836261632631259262957297126398535143954567977933761329629360536608984255557912112099846981290602185853908275253850475824531142795256007254931091358230408731306187289616594610135476854616930570010348423044995453112352284798113177610248208844479230810341267432937433870659169226158912083803979451577403492074786997461829998565598688590105197043811599821831347059594582017941515016812235336497832647952745818088499465521671627690273305850075697797255581384893992991950283846249085508019507852612163302011131906231983530359041919614304503117256282758407296188805687700042841501495097930207153286691830155614587345947455603077225468021488859391826847993946449545424211363848154067393014152341764494159650888360227074058905123039439884868527961351605781002929895977152413090292091826081336112645729802451014597977804863641758987072776120853862983499498564649085844221618484128940555040704458438244504513138030169950957939569925360424029071269980464864561805937519638655098901474269038294851807989396961897464167460570820444158697242423808746866125143355567852372992464274469282840451810354372163368476901566922041138128934185433832193841726105790725999368817161397593505927489533489307435901216687942104191180940842554937246562170366329185172968043542867255982029360242417242506109526480977427815127456941981608156073274837377080318277545034618163607295374432542979343557880824283229075172866844316356738053925018907616173849776124078935990842546545067495008257743665756005696216339111058920870601994108121131301424388801934612814681847971301266915707449359038177797708753076200334580928744388784702355952685213215485547107819629873911450671105526180645647113699863801145073504528510028596780058630071801273739120368107516279084625638208119690681397033375442098478832819651835793073210585224618678432580158814431260043824655236035074983393558144765771194772384421023368789606345045151335360025889945696151742605413975496213298137100466314226812136446962627075216032647524699783522843475907718906384686533390734903871239595675938711521217406679864892476355332963930970668652428122011904738652378894433773117498006823835499607503103472719072581034677256433074055137637952592361868831288318478272317147888560430969511523970474562590324832262221889355730686111105307596011193571037204119417568240796371771838984202248889534995736932535643996808917510509099537735513517936101126705674922217446487710692703925631634267137439811899187958830320240607098348471130463436041529437849807924194569319113579085466492680449491811250353876965460523236286979816488589183853466953876003225066129870877917795757276393605867982303825076901474144683315350313143408900939753927598647073649178573467148207845547888172821388671001119550419354518247673524031705971982283439496354146660713584308966569713377527381623842233491268662421803582571799287302456865366709530417035102363232119084697354780057443028685152132881286892624663322716520154153770189443602318076736153225494142794360839740298638722087439269181674517215065518612401669948137939614881598366675247873508240678707508657346053657378261323128509434243117160892144731033726348138465979234900883203295306791962494780579483821513715858832803630432948237990127350069194095025475858939070602829528179105832317458502999011362269226599148185388308685916624527231081063842141075732836152424482674800555988914687199136542596471972555570495412756135425950461148768815594350232776070552336252092120115844984253500215099095161669251340858480277816869302393160266733974754303698873699205869105903874860591456600327294837668059892690844313706676426098282009771009975098249376659139230529206168805926771475314529697312633563758335308979994558520114042810257709392222158241312207843220596849883500483519131561534500596708904006007882414549725041915188345320910425868297715711434009743608727477617868278468301381669118474111172169504413246035844989890908326442238656711329637206011636245044590128515954533542907793324650085889046465154496139330428647477812453318278105621407570415256766550824850698255641230420697386978749072191396640448881189872912879125369331863052572584498181024584469182664647027770629893919363580057796136731338436461748302047818918168434353621077156304907985647192965199101929547823921948983879234944242535524113854097751320549709270821671662419001977618054316083716763039125124436414328783418390653909636637698660895492111010182815813553040786856447557415597298567612852016460718709805850317707048708090912146984041169971064381383046969842541077923101870174035788813917970934263974691104943143658104708045393479873172589677038222332863593759251686783438508704143924255320662193545530915240732665245769143533764335957171477663932342363429544353664066361610245369640195663586439530214950507220844677259670283945897048501010334663235840412420808049894555779589544927962800827673065001780991337383979145322131287616177420068536885324882493437506110343853975859537385708957075503209571450762277645240141367474147857320527718269120865796505786804678235064472524627831883770556324635684764754080925796432853028985297549576388623589415725226558961686163538106809015884059427361022968546954245393469312812274664331908862419887183230130991523550114845483672177284221774810254509342224930622193468198189482589608863851695740412208518252916126538505114800129326830864878733797363895507086917867004758152468227846646828224254554126001989611965735175705562371372687059677469805931465810240481310357448362369999718894595452659838506977743452674762510668841282721954107180017685809670356476813154035791143563636106530911685628300387601504081538866846690382724541216354930250968720700981200168873465285479178916015302050410281794029169563446982799314986874028317773713786975352390528399682687541101622405146406949145847086392285035662167004557932554010297682126910917098457744188770048661759945542542948781724281880730702125998206755986270724390471154453603882952503921617297985024780825803901585533788470286451752794133752831885359450984141246766030209433725272169784324486707373171604281125926448247201537559654576245267095970728797812133274992979056057162024772889751570849760035621972867506826138299887076843129660523496720426828006122820152967756460423275588454448867355641213856518463033211812479278386056610757489867049992975927910451343030444255374765294734897024425127765917312452525133642345234803026256186313607331177732324276456910703998016610777119642897228108691315924376713636588760201155696531989782669509849434494843103409900188890016057676106137330046448222225250042295155964405302305148631048362296659637330724073006759666474136735401510876095060823168118505219205349203378728744471405169509596377824531852834444828089186273334513700380420425363502289688284440126274187525002065073777787645939966243139426074221011335842072796850562944785283817864120167819175143608986624533764639323153636690818525339379391874390835396051740152462994249761230442131899162298171193661293132325488865511329450742671272629811141997647191003354358095131262594701924776752530844198361217060856574737590176452152589682231400630084006193488315793786952663253474089860006106661693232616031596980295722591368416087238553284748310656128381980495806265165807268382823511561957634975082450847886684077896966268327083481944388006596320685226071359534200709638996498660675469765361472946886981625264394530685138839310869825270034286834286993719128196917314972614627579326442023601960348803502271654776510304712785233228149987905237220579953387408688795646851137729305064316009979714364057685805363629183895872251290986673954869574038131724364115985672072764246693415542515316905117382079693143619349020730099667508975498300535149975816473715208285250780399698836634493587329245478164014005830257817504473132589814863086621845932425822683079543216365370894276153732093538120490033283402261603778695517622610812708721365158166313890144392364032699420245691162965053650299969280854456199439476199467749947413598667804591249247160242585370745885021794814072030328227375773468916814783388206042230163323790011253669299780138370272397069700180458091396439958190787385964604431987998788539559116905111077051559692267513770352758466104289928871049713921885247830594739408458925833787893170331887196464745692059115156507093230801979599021612293679443051447571127480044344724176666864968712126132259101992554493526491219236960537727601706301548405569658751154941959898357886483159056776461953611259795306219239580821646867630839260266861487431770548196841604352495792268718543735528976828027859481861206642947945367778205341042367663557059502381366791910854729843426115744906277433437187509728108269687567089403487398422978276932961472826850198633106066736902938069583786982552403987884080998726992670787463863274094710701238029213962074162093322544968543243308026260705406572445608130627215357732661271792957119353320888917792468541570836340548105667496197590459982915280265096242600184779990784243749511483659750464894798853610267622060629299363779540444749295362595614491450360784252009413529520377868018577992887103643617571245213892157350377518230300220941204525315129871470841951177765537538356021752627039793078031236844560506800095029472310304339048168502522766552388007693412140880911462271186983385392574477760479942797909354937491968037851479085350529792281141804506148667675072706459777178709504906354340780903004141596863517159257230947951700100176709967215708003694762087214499028043266978311847310850317143851903965514027162099833282093339942187582019640510486874678825639682130007984719192433601478036580793689907241556725394065502020546370449713163677979933651384533532496624121348026398204896410391311305126599947387484423703727004586721865768501291590992868556563200155920253196419264715975897315223172848331983480619998413251021800051348082512477537389765507852418503056013649472099866127679438934714445031051575111822574964476158911800111118072951151709870146478177874754728577339527264940634027696044700353692762408742359411330562396133944322711715184404853637918948731428413774291568730470298859403472966021906784900222946523882506142798059187028042739765780470325140590495128726569366217913465381069256805162974267946179890883432453178825232001343800114346185275056302648626338525745129464218913873225137770744565425314562526901888527051462794467043269401713085125161168616949143552580880081196415844792172919989924023085561588697918320832873925432871000586323244718735858558274067384049674059097249705389651212066310336149049563770303691053428871376057104139371490020650087326226736312043842067945885805706405647618527004082085013063903476412244345235827594541434420527665503087670667847105835938145430842127838475046741853877293944105280972400765368607330968927606240317477037590724976439557188298044884351138798540899388501120206964586279429946518113342896227306269536598010940068054961958891995539890752884742691890144879432412961302869996984858064601310334411970834053593423894410715557131955947911126789246887150882733779512780021876364831551542200207966544714570688014838383705722052560339635434039911078418016492017150884454088426298004470304516851316685430752935472941514462426246269328612449218041563626110412419997968504951388270542412131205442812658745356364808857045049559509168734397818077425067883163794720710869494840486130385170577670613344059218143662864159948509681631724640213630885893256646804206148201091688406100956208776869802243415081472936972471459919338189394089531027985923804345550810061047948277556262151707159649325335173973938877786591096587793691697005171259290461823034014035676217643628416144247131308509333239236935402199989817683399366799274610972210127822933003603960504698396648485941141548351930958263126550421309408510891916454857910852869599696809879118168642589661870138137702312078810859356840067547590312523352130055584342783266231219232535110846623645639542924022324096883637136999718475046533246863827526382183293554589984082103109734496485406516499657477145601566117097783647850586073333121999176650695250404843597702219382395933779326464934134081983600463616830692831377574422508491908813901578350059040303728001018715213237762332098989845737898930950765540797324105568564442746128364552755237915744888989253458816517469314781107426730341129812180532134298268042924481966835110898645472989433312870469714591363787102168756148521718134981348851220082104162233816692401979726111412052169436967385124188039206773734169599852195421981179201091744494919785162253020864286012692547955681917136741718424513871236205461122035628889812681356627794504897611121667950535700599507228552055468517920556282156773683004838915662885067582922565412012097648023664672929460608122361506043625248675836263204220763387384410872887738076869139859566501152544929937381392971789763952254797687294164323830746221169135422200835738201016304839877754132576724038874145915105904028100973486568008202156459429332589778397671774235635621227406033519000476137542895119873646185191036229503781772764972386646285699481412662988625872385998711699817506230719153546460265881019345467539624959622376718195455112483275465172119026658425470298670994239646851948898904887786837140917520139249935256159745587755413818507598680238413423060220712265449638816507227573724278752980867637498144086598947612025097240931627663694302553236423022466236571849835994208131886430047631954164002137875673844572762168359266135377907453625878599659075196978250376153184194030668635282772795978851173384288626188849386857200288323577507936581699358746640077791934973439309828490712078968601916106076131599993944629727201031672294105836433215833959596716465431539076457511537498829181461638235090355476596485720527610311895507781844992292165145879824021242410280510747124503155950130529879509043386124791319912169499637196860753505898253974663115243133435962873971639648065080934164849582302649689103418961272811477748119884634575481570939500518015008678146347124043452012943574621805501869818862111776445353381511096944836324222373718906779239420122770722520478810987097849483572796347805562051273057039684115065755639659060195495340841250499101712535670062811171830288744680692181311883616668901776235699555698344652024543088500840005655421041767327786880593004202222405485857214317260142472220364467128632867768425223816126415271471813373807537764050909521067932917319293921968700804299858536178109422737262038560917818818855388129220803662614243599816454881631978278601378667814954426657713278932939136982753770903605622388114428222308747338975990476095962470708422162881814119089641935569852044851924589963734700049720902094064473376866420087635197736740107607116409432859724025241115861724882471043806526040004434549466189081509042312491736745776441198228310695409586329465574515306733342605869117991333499803891977398638178812881748365299593917417041249241617817202019240680614163082844043527982164565365612129902086370803910604983215258207772830926140648670869212360766182004314265666026073034907038419860616368861214948971948848856704466340403004992238633657198463241924695242838332461560148379423880647112114855000154893099842708220767603445874883050355751823865625309414403875225733089464362219059579674010784652250718752075375004494834165371338533136900999923531356102173019263293369844449623757218614395867996322475899121060201362966539989314379664691687025203896227014343481740838781717823912459505993553000100960747745320425991958281544009561726819545837103682189027220294920174189136042244616617181743457585484047266172588215878714269556401979011332983148463777494580561988390215577536974849884888574240288626400056284043534966975300470878940597082002891475138674914322276700941991602723899657784768481295535770644728646706663163765245227791268018772732605518532199852302808040479184815210205694768984806668492002078777527395186205642142071648475777606747976448367068422541461569510914392647069364059428650226100068332639084679421625555871676487668191145676316605648685334689218277332575638132124965268706144583095194463374571413962168072089424168083305266462012171853663462697710922075227091866727346434528593376960272714496470987143644019067280501098294715320280920724340261432716371328893541072074871136737841771706150975413415841107283273692445283587130945054631550185533489134620512312984630162134219499093206494671864464641428147673819833200445434075278635343529840586802477190565745597559723456023677748233374571704594329327935925458005661354868234632020496005922963819144133608355875326593438282668384435290504663190070530532599778972458719847307831397140600708084946417943750074670484054747176364369426331936729515654358324862138014456162218697681293194090094536373562674309119831141308966826045916137070341301712568148445515296344880787965907505732393419290680873381316909301481762143577620575755224030145767739759186538811792540539692789046115774666137917857879570442753256587554230641565057266183454957522922492925165007575883381203712106003057723902823938100064011045891011464840305197137013000658546526283599307118973736727054955069797148849279106574834579081874609695914866620517774532351384989499139560761670456510799684820568504611526376134601395918150221765881643138291320771205207523624933190055497617530764770080191163987615514460482784958117076879098700311921570741012165253577516413170628941035735376898185473197771526881346820874023702490791191958295947165168724465767458339720697603453654507545360187222072863220069188035177383272633334929554725220800969929416642954962020079842861856119883374278935202176943408215430922296621364655992655617024969910724263501112225852847632235337121632762725752920140413857487667052892133185829805814309066718554372943093510392159572053210582969275574129466429012260577252457349313873506993706620971002775620470495574435406331732761747502034595479906346344493879828620405364920336434982769090442146909389694495981530805669151159960830560030261231732523215688339033059876019985773309670240794571506187385357431065813824080608439991713336128688471824389380038308318020885892409327329769126777869208930792363991940353194243683055853154537356549488567800118946774389697910336598808767497224169969381725482669990481884356527917636458337225377206215769081439796844456702192675073550936068387513664977005975160675100364253961823596394871401215876976728012281777235981658980415456464840259321375798098815267266898453824022240332469185572325465194497599542981110578739711498733595359159710890207790061753862724167677345454822715624526301482560786040082438415548718726443410779553124533418709419380252062155268304530738756115344789780136173226489392588174438682137316825934964498037073978917220114223065238804110982290531030937501437655892252413316969786382829491289750325883424547859285215652442552875248939536994596915969415043747407628651512798379780940664295270058242537136837894237780660376583784159844451361136892770040546533337089180411687182155075931206277714954700259985136300740362914023730442851074248417040916853084718326713339916146933639420987518729257052023448705250322547471537367881353678295010810369868495767586114749328031695881708312781550797040342027385307451190610498630526781407377734370236728885099347069876201347307111218781137759893796701653386806897558087339440977887356493824181885689286431430055253793922566238901399331169629928350327961751937206622317292110186444693544133543714517794828644527316171988544151665773179113023376227058879705466428059982142999975750770632862366344238241098352306929782760901643313575214231438549642727255855965347789661050838689868560615502397234875180297120184518174870010195819862090695695971451793216645507822675528145757886116581871599076831099670349491819006955414667707334440312572726587897086992082439849088641476412406945885738008564581296965492875113273891638437658758084909244614627893963836340915297725141332300257703785621158952291589650689130140639012940705255000562894749847769193682544166563734253939508332896055685751329447645112358629869128675785580307634080337412423376238095317523503865422852137369349498274950701711278483654528136762630979924555359445925794545601601561420372146428964380016906621733297193283492480217925885050810860975410733903831142239046959443118557956819557961989235186611836215710474610043478681214163024476761276911647398554190080214042960104461712692074737388813899987231638868639374487716299222559284754847967633630865246421722214949405917652557631215307764005922552067837298840499583504938495362178221348932621568459642726090115112560692658873857047032033777947052038176587719143024950777055602437949728119739680312478321941044176599328427475003277081978403357239495188740494868244935281001461422173033473149811015659614123438284983088255622836920463171373082709740076780828203011622628439845893584501088234507436220157393030771959086595458908187217186901748495683720895345761311868644728391189655901416145889433901288164641323898509810589530211821974061422007121238485612167469935934985922300286936558879361194675566706763535239125163965139454991812059498714931224039228847778258996779523603061501087514888660475661956613353052149436798710436557464056581985123472029898124343273946461439488379419038116755883106217498544465186497550122756321259025521090261378407107010995272115671988705854100836336720163870875216040740928182773878616757333436580441095990154635439289633095640098193649147258548620174072251641633169949506206270605371751151661789961208755010637406764983958526138729732370195298326817447537609243393260619787795846048351461872805540287207874334738156491172388004474088652128522520014443688290193760817075963949435601386365409889946858404817296949071546295936951031149428930662993295541210883858985364726514226092392648230642752528027151539911498862843980663213704381434475654853178885929741034020034910173363056171396097142896021966722915142430437153284531828285183714887407313811078620422444826347404711360017117818597705897936556759941283641732910018716905319006025110948193299817654253510186136079022481471739425087517265780272770460742088325849901021600016465614137855274259834327253252146520110574457859233712205080867139321022008292372011676497031825076241393417119801306314530190296336611946596033382337389307744509724683429874792920173765143649032565954852288072676386218185825624915310313313932996992406353114954832058452362345117254344485160582155896550538123342591758056536727883430761925645813120879571718135875339779098543556285355211088859114399782737628170436364901571053241835312597102868933511938915758062808506106613381680647329717712116723236123184330731730083779410000138436694516900687621695382510251418923335293831767399490256806402718355104441708164542108905609281839984128064923348795480276850787698187426888080001927112276562708060399331807177727505532020311084506931280297707150582532555164688262112321583158026913635425092994276332284580926705414005691049312593388442930683675933781693657632432104404761543889894512752908403042323653909801684585593415918399525979182993559949598537637689777133705465537013299619211936510620579037492427947101759149511761577260977440526482546878664437570760811368213319172160076181083293866247000857394816381321687316519777133119629838973887430243631316048681629696140461166203398541282708723738532870750809547840605691874305901610409466327798782789180017874339929776991230490020033426697913204263558914614018770159380598294135015174077257788105515129762895150474744600660844014586366430200241478872864034357581851757160878826089181054011640691941541333579468035993720802324632011864974900477643519280603058199257948249757453621470012531241045355943902166453091464605077183237185237425335426780406363911595393901673463425418630727970974973577337033705013901606310769408908989576142729421118686511135754159482703800498331746805254075704550669306808384114071163570943344501929601479778764626898221176816933091789795442598215055997014607739965128301318234632962971040945786377965350141125984565837195324931439605577807314323121508434811048860868580651313287241936058810989763658587582007609141786172793354736785714130475829879503141281540316429350913266063190880609126463916745754967124470682171323080066784014545261425109698673347041257547999193305793119269663938471465491392098971560464434934715029857197793179691955034379480084348077604399404289284761180479963357780676898635502963137777894688074158027734205800642942099538767057180405834784162994315770737165690892359719141058040243417612650396346784161817952948132200951244435761370224211817036803892616953345970171573095334499021201850997425120355841680667392410563060718366506252763656122031522854389976830930156735036485814702383571318056358586589935613735753168639672233946051128464202837446114611966508102092760977225628284669910548377289152600365452729473472625175664216917309121206525144651968506016395854390050350407006424954050375207365032448999027724975736896075378794310889112472724103961216058977372805605865718556328451290031608180786611026728420427089148023120424008292639771735165508535400053223285280768389559097403230285561075853423969931836561806007865485594257896740194768846590581115734367762252244917943318700397165873560232229139773682590033303530076832398386226273039544789416541437107985440837557033616726999456529067878906732331875238408021920040452588307660125986238585557619423738417443943262435347174405474371786976983885395492051776928988256453985611992818222931757602528526770976864727718442118637201606260745463795088590210276605114044017260249917199512022620130279456191584213924656760618886556441648567248728627784868730402996746777779865586331047718753085893354824999676690881845357883583338944048606422368268769618328122456522213168899142689280594404469170222530423432739124796364763238385567654802549078156046569677867184149860697790758654829790044509770169082230823121225473366027535132850575032937200806961708363303863134103866820084806110716882034758954541652428055355130597271742478324797569380835365447798014474163402745164295382771960171209651210119900577848573331855559330082355939468375288034888674933906376772148261993056371430449685731991685984677711379278514441394076072006127940105706386156171030652147348835066740521193038244447430585350924857078666507845974704609916839500114278469435211660121556547176360279452778520182780328649337850202304821994117926943438287716128461160635501986293022908062448729799413271042238440619256764931195493913792270367011941726857733634651158045378425581961155195037684318134065813744781330237593017651230891647756140604189494083931170260706669076091619445369843874141547601236872933099160719105656055577947180686203382397066785284211924103850873981179820424893311008576110303110605302268552135059738638802896051662876612223757479831671345069755899294361833528210118592951948106089382873030809950176102875770366867895184951655716759868176323174726323670973284760527817294878082537467297884530705266969218647387884054765422806903553130534528508043622907419576805948183041510632405792874208545441012184364422963336143153033994118636820135496945900558940390558621853541709531509098164527278795009405792547895744212857043187825805444619387356669084753319659594144822605780103741942560638596739183869871704941523394894304679827891420862697514928128293215631943363491509631725843123688445148113367373711476197406133259430384985396456306013776346327438943403979774494756990027990926430339686077252663229823330373481479823894725373684326289763815984772642691178816166229079285457749527515106693464637074781730562670715042196250850408450372316239504278930887695355924523701667066842488535330318567672912534110439949056123372855884462171038410850403143274403038021178609963796610530457223140661399408145675974352686009031704100712914694684820967200720860161896936754540530828314137148358106529391396651437104182691138021760207969400278130429091257386006513321011519655458058792827986945226751393892648965728390174004450934600381710084124095012009309418094196422406803321225181390236064367811649793599594740402028133910643051932215490933037338573587186713704774583430533328671364802763817223481012497001640064995515507074609181235663944099263498313711403189017698243379581031499278528685957792677047887928444635779219167806983488826550016289046308750656585066189371375738586831794417145764309586104394586225332447944353346209236232284276173706105639640039700038083771902451073958885317920242984552516335928255641231925096636332608395283120699762879131505650744118153229537229760220754464790322679205234771270564348695518504643514729998429797622504857777100892849716648155062514170441061128175610795352520531044720894392864540305615173100807921427160122957036268190571738050362865763532375192940708214447867280604706532830773045540526200777302551132881226874330386992529620748353961697408241168237644347416663436602991422204420561766582344107425563142210659146117552420955710061639343387873481917818458908960306904104225449871008660672473461473127859583906854698046970849068078210778740949908703480014921097538869951485374931703100178201161653154097751511047164181933940437503488478518035855005022561273038901446711485286339399935925360286315204346204955916541946156776670620760589670929941603801310501449075729500007767534637585568260613340721607216059307334021380055377238456770571463788755872792822970313159840279077714220043180601108165133011775298609326805754263711736737561195586648671524122326961961445406047096497161919129993469854230976050930035802639508969491737398571269733234932917640404411162831213105880272811336093447636132066855243032947115332152970211794488541388844504135963535985127675434274452828209886922384485083208201068723337126295504341575281511627496059691487868633159224085266122984041603643710868902269558008362812827528690000960186340278019982451894467810178898015156590205527705667495311389489588415884650461248595713537670700768206689840052189721831016637451706204521847928775454055296206711544838422917626037825167035786549812326037400342178242496995883654157418295537441661339390093189343332215874167474227875818230215190862496210769152773299256707862095890950606591659192198443108029520863878757791493708890256701058543525535466118606405586529592016692989020746956102660688978142598234365137133223673510736783757770334232539217380426920654092298757912203371727288001224933112284753396027501230171627547611460597359763051117259477060820880687285053921288595452133694807145296705980708352379626312142959359754141431260362459519501456776798541295677866084854064025742875118681149683792568019996450485739378532742500990448599618531557599777989252813994061622724342402397516028038026886170279953182841762166018659167678457956359238480890369966996568265141490140408477793415875952549288537011504565344868161297560729542764927731269314697161640304377447374492105507726828247651812463679045818693706914342573195981894663734880697927517495473136208394535216130329591961683260124139012237234774463925536635283515462050158663767785075342369717072704214481273713316157152272516956418680465173952796977518118098715445478236074235862116935412614717324716537466806421296838067469066306724472889628032687393732516331982530731434268306431215303907462279903371076519481327447841643119464917324937231770487549365835906815899301240148545558299602595679689684551777850607444677133040235346467380960577816616767052497362350757563041549569420494318458130415278920977979961940404500051791677259420546912532207351021733782726327418979880871924256939173612048294029215499851580032827213292628386911943430955510067236783692581862155936433606003138562797265752881357325119387012151138345189514179240134898590561177292408476269202157300665605824418410528859809345886543894990236297083783338740751347905602232790218333599585816043366599713197508204822166545589930154027994191843599171481103507283859595356796426270789072304786182491978178457117028977358959035874130735832785199402801014856449406614316418766186633752819981709853478483730112401995092736216359541467638302854404019264010368089972084457764650430830744899136497717213208347024455594291827131069672465583202543788471592169201390533961377359880571942807868582678141449459396957608425170422391137339021677716462508026873615170420435797397121356788393248593827433704931612466506102078701786248959162576228477324373213520185812507485454033271829746416738324895504340290447009189413892360981697298830728163396908643762730904433245896565983944441771412112522382985596871418908552369564812856931983242676147765340695681435804915356494592331172559435215454188581720106560820836865467624704361606319668426900235454758575851232087788049984261236167808914235332050961409410267840371566379816192880633202059059990766345691587560898591891583191472637920308887290628298641787252905194595829247470893812417009910663086430550231131159086356949340755759818369686816657114146329958388184983391231323597125980191338366162136618797179903387702289746789946991504092299079875640523457342869923855332094218158611889702462103680189573184730607037097927795908308227198609551044304090289682387277590148449760947197835592625277504103074679608361004223940605083656107189651306616619446347044668863914158241145507606556636059044075940067225905460085487229387317413293207454876642055845752527623451689162901924862691222905233879736620198232822397603609057573679348902118301541795101778202282137202498568210559555041997893183241150011222828733876838969100863350221391731971745851363884381242770420577259986318836393203445732180718976441922006679634115307252370835778929061305479450821949732054685391665022045784545205900580661804058120920586019475058892269884124034897084251288595205047350110061677065015564994555575258968197425177212675720381340474424753652754614179275424530557525093448165406156594859608926070157739728285013124266750500603200848452980446286359727321623156090708761528394033694125408688519481022581136152249054145323032628050649814337888421779936104090551830942226002217791772589176629092915841761551743490709195660911228365073133164612748818965814879556839036273954210746785004356657437261998516930853568828245196429942716898985603096254536929401652751524573243172664754551536943390842701396967409365237395369869608608614498896357805541257270415873722360326214940104119185444053142330005086568539976621522512420087805774221201646353528370062656288953018551569302317323872229232719952183786034062592275667934529190146748719566430376615829569532250293517197478267713408834273672469673748355840006229186121771561936194884531304045280692794608864920329157212704037660927877566050650702400369150608896602708848513515991505058711687738208384756817422660768887865620615134136114068099172590593609948889547979023003762279784437171986838822695749397489436214963694418468078567811122488233258234079602897816511440327022058332295471340247320574402435215390712912155201574453735874654556236171474449800304566833242637598141717537331596259845589801303442718611843750160583600611607413838113064751462465172312002605058537448792231713441247295543099512610145461319090359788069755522973014489613553601083262382733445166022672447927385623314310393673552636570669896697208563381072656937158581776558757473881826289053483721596711095112558330717396716059859589952713545195463065591833211012657442003503053670943556455853735942189847919637383602399670913707896370712693585545068030849067351724215838647268324822770589536130547676790116350129815469072925281674187118483461058943868928130929247170646475964627000633328552480155689613982948131339923187173527365475862595128306153649631176141662488161335803447487033438819639078634863887785719646255869247113126831325780634776812531063773466337295727808580312071893404655908726060239934297264416829045554653583223687037795480126224709067154166759071784517408920744037692512124623026831912416130286606012190851625076597035621302498620076173576494763836503857933479920873973238657682115322205368602491055584957289157963961089400434483554535138529826891248516094061077217878350255781844354865455369953690613796413545404808208271228594746491343732501443670764364091018014086848553466410830761350516518150473017409334941328456893308856445507177466483634547569438313467182003289605298798497853999677470007061201483989146998155920679734896405787715923209374009996497825190976915714921170662397752524177360632165102280493499000251500445815529453769239330914302200870053250046646318969272121048546324477572351023509589091027830388954480650898599090831881070892330876228530487565493739930866925604181512162847660681225306057813896425927749946694681592666134634418817950790728024367088274741856342737094396372616344222579812721140777726919252178047719572094602738773016983974215429467896197678295974447931830154585388780945506211318984584959951540595103579148375208512704224854311002673032773456052183001155155952478000248016641247784361452386117086564221894926477982838356589733800980197012438195697183538920401502579549167362669434091658512575079899606727280949202216798331646606160562157551448696093961116399040673157774431927074702495845200080646422759010845627351710192294720577883563283333079099649926275646549804994273782526334083175760862283556590733483334247672920070487363832420187296283054958245614662312125804775543062001919139670399954014118221235479716354431951733608813872900806084326995450330004301978028805812907209220392887980145811565315402330102628755797547360556305485166714507734003019494038172777466688997007198015560086504349734036040297329667800978397768274656704270856126490137803554398963222673227212597908244051857342152417193438088665086970551616168099118685978577808354577007392292773765238943736861177762565276308711497101823487576424557460711292030748470867242030781634086923198383030438854636297743994400299753344685081423528987689284006419937344741876429220719838975556189417175384445286564610435709063328479565551447624479776404380680011497582040948135254619194165600221310154365863897578526185857050089436038083772917503198259011325584701842979655806607813649974308233563188029057482227250480604604994171239265609225718223863084295696002585983111218219093857351332914098778148875266746917635386639930380407449085624707246499087458771987038768111662846800956444067260519436908532620574139924094069141871415158794291001182258203555733450484106286965223494611525958521224525657787611096981228390233015279345350913833512450731868855176151540977904163938063811541077665324629595449202976460828960277009700527250937100293000776889758246928681999079744041521961609444889258314592768624741601803571978552146271023992434699565061874232830499143952951652690849032399960822308495091211380055105863658879977914367355948770266629367957449286843461541708786603320516669375354629878264502113037388572765467806442168453942771565248740353255258417681979735613239303598564869470216460714672369453832390310014159581911832486078310578637037813025184915989164658912521682990222216274152581751784114210869304344008556895638979130543857557411809680810131241409580802229659132894161367246241258728499892133471126096145202755682354772936368008572788222692798295231031618462961212089196519040781280584699525781899794395474724512384112154167025991654796134036341834121959547957335480204603510583218747164261402745289167331159141449385381567126876705408189207698404452690723346772397085171388171790012294063737627019907134602201962769700506611417653454080542690092798071705832333024177492471506150344902543960711374049759841935804944711328554061131233368601039121267164178470773081888796655988266344085572181211710274065701971951782580847972995003444905608784139340849423758937206210549214501480340743226947510544973894377370676023649452372874834181134546972491519387290098051747338605165095235862063588142323601875054062596817960407698676138133816064733545936318488966783577098943039420025149660444793350800524770438374326253899510156784831260635879021965210996523689418405933366027861710993192849439180689027256672272024092386369241316934551616526451836329715574337199950848760353715900803552309588681517026565236906061785216123081244917873765441138758152875835890543656542307833601052245516505061711399781905035106720784563168598872480505369069965058884994777272603114790592892309006799307301649318237179168408010453461256686792758066762449951377577041322739162520205278966983221447253204105264721477577476871779288597486808295879387888981602332654688630400236809418155686865153979258906486087592807112881156541180077517333671404276510002948934379359313081838331712444638769538125705456151438229080872770196188647616896461281284479497122263762455883753928219046786945585165541912261294448886038587897075184231846602193773692753976558768296716142426067544265797967825541949823674206625637179186412942556988258421672587602455675850113177630938558543454620039289381126708151727188774771439478407404374751606709033935797058882569289053177424314932855927495807190363514329217752826465365435575473328607338184269158696073728219476007625227352395592454676020378877221127357388262020907007846818589810825176869748486991037796049808280273352974131556157279307341164583110149892754361634185156743139566388187093211447547171271115656437938560893843593466389327014727491955732353174853391323930235872002707910386084559889638133290628438474431523162291706675088445308345338749876009658335390927075373045113628348571264422248794811692866399161801778781930546242496416221148706609426869822999265094305130144554940304038728273492459204925713700496382547795052284337985558688900455758510669878517488022059290431619820683779644231356429685962516430572980979825810671236445133599146331545131062129462223439265577249084302624988917729992512164504196966921204557111734217196249113420903614547080672468967703106028172768788539401867252074053227619130065353500563467822402112268799367310448759299582695914062346844897890536735049715631507135357051257022437665471060262958010601116105481988069089129888820129848610653098864752639070887369082312560126010080274984714467269911364961336033694125759883571059047082019640197747026762400324606857736620204122901477879012785623645360200109612568245299443655449724420666233043136834959562367277056231176932022420848347045297943881555224137878082484538481629358327841872988554593653951444102130237494898467742010477177863344513779276111920121495537114443505205263761463246442703977803228995246362983277797663237914436472659384819841698390178460038430076611111020958756358075545486115896414371516893853341842637695180635691751996555794696258080483909180980272424911682062585661102769173596203490797862995495728327971629100283348548437847844885122067159591967482476858281462963261081701285655904669277619162313302473574627903516555593062175389159966210451749488166362373962964136600665610095225246982990410907597743200278492432569576101022210054052167764610061129264205982398340126290060785064947357927828039104132398007621034763037101142417173328701041334576718600193438100863156350122686734011326673070666457707856492379522588926132538171907198129468513028384028388269289679468816162422362421124735239531572004321220935768812332151945876226204397376841714578084776765648729204583090646858916328352581439179146091327973506413874019499850765763007415879199670369353855218135880504739343765688504021415559159544365903086402490110723194466930868317285845580584614856253252255207284090925047984248993371352478796479007124396711787419929010793038774222793955740528191094689980705525746305953912287489146757963935576796721110163301666148756421964272095938133027736806143092305630671776418841066650986143518847901544603871280955276971683822612295870924582637935544097583153081725411001562399304228197149475309019066083830874265072505734201002744704386295807650449859350341886239212127049403808386403662767913903633206103477176799674813508989776682968724301074646726561802007104586389696803171823275125506537065147183792620148116580537584731123743877509265988872904014792693246405617769034364372551026752846286173849335238676125851240292995286167942180546223547406945910219944449273166793186523752922084349920261482393873703862030091710490838034063903774513792315249429936991689211149408032101390251660272372158074213189000295020258558454686830387044748385497484251555848373533868135987231188026718162408466149599336717495854748711790269579504090280573680894293158553022686246555523373992194976432247992223684469736734602698669614922395819727822126306655871829046517458263630506015549919561499006672245028375652219649459753173810851825126103362430696870403621713612498464849754447305915947864772179608628392556198116975686526323678380288352012908144238734065748926762707963292590394769847888647410725925236878095223653968000380769153054248196206997417210734135662810279960182864817675996678918240799957871623347059436531322571991706934747748283083996255693759092736919167631924841321270724720574930356526087329915421704762770771410112423797344281223648822451196512680316726935708352162106735581374273394565354625028168051235265920188905915782914721540928131615791462566474947069803328946509074766549906007924555533354237682496094961521559255853683705323655862116604385959407664342797482191547885508424640133125911797252554461328005805048315752588784490113256559515960313312466199214155277642446330699042596571471313542249965206145543975602207896732569401039373769473380078396794332703894045237277776548352183260169903225590877262556074610588899113718391610283517823815867359197400327727691663997815697199124634964122577540003958382056428286611880414126485803937397577293279748732235933417637810201676960339763593238875734337143028614879244327419956473218242068246232430350147026142146753540936942017495702732712722262756556703320523168423557559334120175460858111986294319959135609743306977175146557491640168828369138119957629825388505965912451150837053893693089936141727287974392247959367266861425454859317826316682413918485392231980521548632668465267964779491530344582131192827415271218988463032545492890622379345554840313135927890664492145488984434203379686259141101049541456526375085925624041066447325247014245332498991622224180865126285373830555988856275547072690307069777735709462799960963293997253373910836694208479114654101575068577963173024779954147911760722182906736785052256331350412653116905569002971189536318813019188351275472291127777197495636860891811071044577955141560651006261165191697052057555941885309352259531216054124203614614618279195388827673056028913692155953782087943753659398006699773404473883763504543703909025192798345984749711963227523883796145614348334709733978155794878529672884751141287947165727522708360072190010996171017280975907807381359217933936058927930139214513375094749150037177954957632141085352385364421172423016649180266667802542916479205006751332020055421440290696008020262866894158750624916278384661537495422888784747961208410650894649643987231659862451539411696606018648131103598454837393243448097181813628795145933304556516296173120280441121712818351037105257710651539423900898829006675315978587287089414796957567295440338586093639849847499550979756384887692554084609858228087260727159046532305173516653341991541773543185084965435284914636429367340686404155189226961021884699164158059575492156916664665672816592926604622301737562954140094309316358626802726107444479730078381468521900478290812849832056558594974774404128010722374215944898673421375471821990620383820538624223110872644515930011672971197524616942332725124423073451480809372697794145132136208494212637990036334566980027645594835480749952566136152796387090285332886653095351570594582053079033439375864871553860364365938655987552869695702395470899218354388580831227952679761891832493717984308250706312496252597118738236782086850501067761736481655051223862297888296998488171695637984156255327439139443552152987392094588874645196724846332469174609391187445876289236363556722603143223977093367205210744936145898040428921679174396301539558219426786379238214194402619449030843874212112635921033555330024361671608548009919375522358939010361038603506912089457005929742976326353880886760876236587000769696742585170443165029820126686161243466499153145603599171522344914177533453405415333479561799025468426344512054936506377866651365188515608292885397538210845966335694695481702719015151219530927605509147398958236703363136522890738189223843532962085214772156629311449438513059225580665598090348548054144817227541523495614361741551810407969041221820849927059163579494354792380728272068530395662392691257711060637883895325606411713314222769528374503997815295815685475267828913483924763278599598304700687237043244967654234459229314069208426294921223153877804509197509853166577246205448468355413874002519036441117763235371967049589364141559959933312086386911400506621615279766416287980202605297183593156673583792614008426893797496491998247603862476905832853863535583595480269321383732697514577321903361026086079746063433907766930508975465522155728138777181830729354347350178618480092870925246720076457740667792158784445290770860754385261915215508499461096125624256157503218406330331874750706768364530126089681543271692832579753718074575073138260317036506259303700030843164411642790410266634868639598803085575791845660378202707878150948341265791438531084591057144813192693453269470331434419074310565974405348438117843585489658356840814695068037842407535877437312845720851966163461098725532313029092485455166718312516192870724234519159523394680495338687674307633519357838836535702335336044391198133149999416160902834463722408803403508860279198731135185165560331652293700640465870664958860825055079489106287179005798957475692953768721157285799040779278582961749340660007266300714177101586190186864508292715484175764051752040993882384888669896019778958005449131842032751901811547995339150007899166850562926986028490389696980575761660545859722021682534652243917268074583933265361406237666811959684714765618068787202734993277352943277694913980554947025188615947713596306382757837630003700977409753884189775287380853342163002101498964290090468352205678522629547498962882087697659853308051433399765188095779119985187025309522989014677699119468818153990037341160476058992241183052342788104858388676137651525372233351170591167995630179372279067805265355781447305100610584254136992345388743447835653911518844257449144731173347381477980212720090727842310968354150275178986604689504763403528774715119054554561024168746140237833198512152089053673404080745302119238625066847217900681666100344900706245973188321710612594440136159193019353216865284523207033773933129534934391209269952254811943535338937547350908773189919019085220043287637334418151278897805494669783713148976864295600352662143773067354779080916742089301105212680936548260586757588735697330214135687665990253523928186011181060871948977079548512475148989801823485321992339903935719484014378740109180509852876582048688880626727200129108863337053090938974003054854978406509093603617103756312560036370012353138176349897007247445984800093363638687311293277426061695686708472241479699715865195829204623811787448280848425568716764058521348737509033732017012952112986812008631173255933467446722824360335979610818731619437500396355603596472285639110144673857376847717947105048439688999535011109057831370191714607930429255911254529013637228355996240850860476975544953092109911719479781533131704024152963688408803469193958932661366767262253352402895604628568366041944029548077570271028134706946109930387871559573615095856758382278913298518968575960882684657564059418707499242904442165234979465954733953491218192851850987524111823470551047646599468843356235293047195733370530589759274889447441869041387837243279407166028867350353435362802432644289921674853331743924916670568244657554245270377519309409906291412049771017309234903100504603161455180573631822872503213575645193285119741225956850962668259445201372898208872855073919261462515739573266819790267221963813555824992733646965150307425593076864599171272145757675607218322188598061212582084864385911292595503808652732311401488863501429863859292262155293753694882431121048977381586890525069434160382076371573280337838328386426282065486871011798922382383625345862769645930038703658392443336122246488136975980518263215480578367528975655254786816326356500305839069688160599074337611725753266245982588155177051081185104561429955970639867423704620987913302442861086385252861193688413515062325741751383695505436647439306175327094511675422717620143177727892623892655471359924705878027880563613477363649789085461340480740984450283471458124387563078550430110584396530347981946746741216449753562475305986149272750482032385423431978458200762629998404462439411115485293796262398926690037395307601737686199958479083251807324358357093147021379472338924831922873708366644248224897502481811224435925705708458412468793010642535634344248391116299820448135561603248027652291636374235368743345454190240437584533734728083705916451482082178640401450497501316878410511322692964506759630527551027318170256082776489812852181639540338291299574887785530109069130327001420871716711191817879385664615162113874194136071436787975722006674245258902513293643140682547854054913324658505289202133702376600429561170442973660038401100731369443111404582834063549895342838938783989678385017485997096990839143516797992981440340659913729520370582959346296091631422761868478302750996246079572707308551367907472012669941014434871536357286416836924309723710435701278819700663228579964847937387566366271903663726402971169978345700955742102296957048753155456264607018635206009322969251045753615111171613848705154192067042088453055198188033586744449974265397395176391930860563997558956846980907340037794399687703665829684051896682105734311835708125570429299272620655230881296969293140852713795361418210955286979636780649102950459003674108201604252507937531468909634763816373726943089948281091871093292273365386044117965101500723786178660559582781654410474600552928457131985326469674792130701976629319792351832983261417687483483215757750618831457325666525127160326052321958809940863348360227320981666274271735054089910126978335610916567270006332383795017944232936579121954395293685737998699031224409101752988598459068217665555162349332372393799264967462196683415232277094199172984725385635526397304965530892336464841882678221324222582023604570690614089242389383158999733087455861813213646285701003924240017288631544497869498425435144588815621190163814003859583512722141510946583347703829452321255394227642102225097356994052937513487345035701967336831195084779280272723512487194595871224254853811123380347348302806098363102258391557565020990973403034906479239113331135882233915687577733340298578916210368622790035018922621584618897630933117981432561076089053779658789785269025167653242460911437480634417050709072090687743327537446707595338474625900018092797411227479222117583387805204256367676816338749695894043317720814482619081504815770901137455816986509552225562518729951322033874991943245247667907999494942074503846983547895150622806598708815708222633575866523825050476797307363255954827236205462461730299343980347428311285970930127868205536831249472789588240005691741540026705853523620523209590278080585647336376454328083438432217385259366479242311445771730786652029763046589906595054542440242505604505810194790223622719968177933095965934767389415464446241809812023996036635221752856624799288959479436705473811594347719297914883728021148877800310319877894653524392209258566493571610100875609798920207865331520974953206981642193698533993594315176435379765535917956307830461832852370847269338276253199136871194235241399464916144104404065424871080701256445435632880286733519583709502374814527601124751590100820306272222901367341091106901646829959279530028726172034082218958465414152922291239427414017609676045514178749611214170413705703822895360802538360450070103320349639329900570805681705888616767841286747345284672495671717796421671008608766093581828538086731658383628306793140287465024161068962118366693794258285162210226223428808542064663139128011069153971308507906372697496608503612066583517475906774798682482554822158635172455100143073076341593412763932517184853100159864335864128929175642585054724183992177411123131387620604901796724676002158160629445296797545443944350543919791531467319192912268741269658702154286573018397053890190677973120571862774915117822203594346498595849565679168714676155054740312555302985012285738634658741297440331679634348029642760833263160686822913336284935656811991269748501964840011105414527830456077946354008284022556546233020678138349929485552695823370568556784098979971612301658997505553628378518296497530390982050103176225418794955057881167006030068166584406752500115450648842999797033195936926398796051595481563257409521536009658137392478471737023147091258159280718469646868461501778191404882438232721496965756768527717782490379974871405588782762957332762194814776564329676406351557659337959856935564522527831689017214262362194483341251966660543340304087571035371896397346485817111803642352901805844969196269822071820685054749119250480060059608532322405198663920350825713398862250620034175621279916700104613635069572498833345758952953598418877097536467492684227948032894886535513284962861620692070541600540975458518515082428394090328988569056309598294533362944434877214839146681676932937361251657333045959096683425627672405063992553643410771170188202785815242680497874523788856116260440340357167202658011527322570517926587390774733667905557357316563002298388268497633310297183731997532729392176168461663565481895119409320060362028362465093347608514369451476470125965076197623530783666117513163501157920070968158384406734236461772292415958225399595145732678067096322078718260875187347195009245647779927193396587803159564120333352309927515846117785454361980375322257217429077888268793003170148349447676879741111755058961659581967061510932898857431706852097148968270631880780501834060221840474510036500431660345653376721047161825136238330559438649019502491257708407643496414267526707389603788146913333463926132510770389103936720293821023705862660002084186494134056764820524007687081525060051566827466161835508167790063522439270348379175946001948653503132390315072576834768794121247308075107231987325736417318871754129707335054979013457132176376386788471256991588374091307573277413810407646930889017902100337310522926172855979473953710408665898340812873867472870419569175949326772987304210841760094575562148657279041104538459957926328515875171745045185229641393158642795774384996868511925918562089127392146165637587071494165027197202143724235882738432089706989918498686275389822251537795358971989184071067006872208864139215367945303539589807093850869892244393402003618602582473138951669910572195028690276226303011705013036314176455000574411457402767875233005531302884451328292598690971896818193281133690946225660144210248223816408207198145600220343125448756953690057197638686165496168414565644201732435361233597187962084144472405063072578538366130071093799819809078035291638351682511611740038550841504514318810637015914169109185596964003640411376200278837429259037650250801058689174415706325349527124185179845784327444947183311237402622469696760480676731822191349201055931158837471099021790898872742446137915826790228650605622215983009022471395749804757116765715481945380746808487142975492985417966783509668144915291922025796919833974657538863936140362580534774211206569597490448753746210413337292133459338252683060134654383623191081529187042315029674678499816919090125462897375138128572406755158742335669751210550099401264006839702380897013737062123972524398893507685152050167256039208425471468426433708671551154718655302875573537736619365835310748835307164588371395893515640964678278023225035658345970103900450627457237792083046873466218558000974554813664379076578259680757227004293704283154262854468946712443083438290907546645732976045731090462064267370337076032138002811065624460642283283779932178831236466721237856330679488349963967484330832752544322999835349838980949404472887213757580858012719356145887742486441169486546156774783483049199768520546570667152504842710475176680954668459598884189271012225171929363103651346169126120294801392931046697223378678662524162379586217699117594776970096191327750652812418295496492510816120141720741656710195492410080075391741144677326088892490488420992416612159916370831320062823708607401039722458958195915993278045231914986005761172172219174524970387192833343965330979356806195062680227316651629809129049208945218658790615556127799658395322446071001669934162023792692061186169566692807191288189702042202903950356521639411282864218155333636815445317500948654421839607292257100240066872138225171794533149592018586818815623285322086725181293481933433163639140909819622057336923713946936284384114926271690025127365286420834540273322882975363944256726241678470400118662775134742722992487369466465360736296331043074336205937681068096347349456610855527595969521830273755475406583443073066871736847816134185278131914481705859416878359633453940988720984413453327870115767091238285537902943839899484736616790844233247789371819102804121008491905099969114722347591465577750199546536030890155230125762540873385136810864152116388724238681445339352894911713209688339539220819262183626188687338858777067611134546745001304878823910065227355476445442184777568662709110290800314881518404093693966744485098938872345049987971313771563117902119604915103721639953627381684828675771700184602234352178122381514738020410898158737723613807227688861348829435490052325868332197916532194217325212113011888551526623822956679808994762828911005480558751548086119745995273234190876300637701318850359872000861749464868419617611083828256611094895578694610235538050015240514497490158132938552234042999155642970358857248830688800366909346614061083435883080449868438760638896518234595651712963684491304989126144285369214766871506755289151730252321774570836859377774874014628098581473848867527707280822357115841029750348080212912436243545216383385255777789660846485691349540592900071773554030342260636196448554891402182549569902182999858224377744684963026169004024409898850986221637192942464408935196419244427214096361897090691611900428347767016659602574053594411322437433912884602179164840066866836214390465301551646252326141226336574045489639484570399623200407475072317073172848435024849898513088756750953842539218194683257799536913380010047869317727070735152388145798478257039876562519288709828828675979704421803827878182205292200668024812510117749493485603036372040504977257750503336933270833876460617676308015422885852566641498926203617380846329635516388822751540877811450305717957074324290705901563789982938548465552455284884067648806941916015685050339972836103971795285319322473492741055374596809521149335812977492496130893663486734300340746128033030526745990815734145177937501689969649326381685646049298363927186396072171963663132411921015838314750200060937340729276331728909741378549981709264663125390049007978842329903763737987921994471699969600724656586475549858400175477432575313816267927996499866435073375083058977694868215071260632947023192871337155841840358252057796007128014813016052071532630504690891264674984060285757968227279120257668266997961098584528378095400007419403632788394458893622819684818735694421307012799581351269933917991029956838549057329531449350268641501116900779242002996285390668211340762516574216669525457930016386376381440996772686894257395422694227952233167900206566497852326802755919461559976108503733155424487106184624043172059263552359184074959364833041912891295463892374689922107645656928002620959392349649967178226112212694668143896192876833641306140001822124374301768617768378071157735231738362114751718101708650202492112528478411269607041791158915130617196268476942319320328522515308020870892807564975356013144978254060482023936794963251541964210033786185355509738922006171463258862872044589135667897053659366456122614906257463545947430400892849129972399472384764214089457052294763426434840917232181438143809905872960263805742427523124363707784454556024961324599530584070577881395163949319097444851659360928532340718273337501091214126486022476448199736238145373782689333013253273472220241112235308383486072341491188426399412573738196469477864179551179594768772564168012229808005847834986476855439975702921893616732461976331333525805586246519973437421639167028421925192784066552384825087257534071195201408252938656738581423624454144958221671640600482786659578207161993431848641560552894032286286907954731775629497324628937462030914255671930622723622642174729286678932556554668193936065458014887988979369774864480391476927759551474988839436041712004300396874906504324349024400523607137734310057243314592582985011540525074306650895902333690932741981909495079907571826789769911113833824340844841547025831080322753149468044519945959710378544601196000044401904509311039837858343561852524157014340281855852566735930635069324154895825514367194417737295514793367553965118632305867602560187095474264103020609231824390259180645215725023956528804878136808521003301156752681353099619779761436820778547381473595787975955545578265610293888697054557170826280909200087713976183593757107010656825035561643227604639733464082836356478301646245562591663653627950246781255488890545965298257466921028750221244950853064891048620514307267408789015053737821608779128390808348013211595662239412223894125576948155357704688624147443145549862055385725380923767799873859953460281401186868743645284324503870740802008070970955116061426949565309664345726917666409880322827477109819166775534848864690000399942153594929323937922240388676298328234495030267306109544975500714242309233432005215556253007780083654749750128237457267403684958313485950608966266607957463147737037809231357068796718212112623677079792661168326006500738570261892927078479139628218645419280616546332727515990608419019846755894086126984435152149994297528656033037080934858478642103825268906187149682167422510988197524830837294818747843482456301307276468734107452325873584931371464769619767327948174290958081690735997869711047658414834038152159097725464246369534440354332516744108572706114240732039731767681162320983137775289650105348946347812716139234797773298350437286184189599427506225970941936795132761466059644806951739138451077028808311574887603964997464591294676590707028687861164769336055420518028852058003226725964052709620559181887835950120755204586037527666466402877512552063781093431128332128572671028398259022121563534802475665081463011987678937194162707039183656438939030495428398485510805872629953817339424461361849909633758876338089894524140271652844158347758964507448379920625513878701584338937517557541624315255434468593931663034505988125040138021966845431053220374655878772363648569182541245515365815736685592125155851964823034398914986401484639572856737491771250351865466307378937113110387086169647392359813929065353640407377024632315187793755913023978093305410322310759306231033214486395966622913330679511220394781037935905962228395183687975051950546589054289477701135566665706267116067344336885258107519645322597280333231780998036115811103341811911773792978890624923135639524828839314376972256556660290766166803649859157648489282300731144400230867589086895949908170347356957012251619709853690261338485409840756945236987871775109380700420766729348774441954577560049596227963604111365874792462515834521661152468610064019650656892501877696799110023424090004469459597368876333851368920373800812334096781376234802187616016039888128194837702592730013771137090882667865629762775932438306203901133844667903603119313498966580315900363588255001464998516083323755509189688590096603493094088129173133314426950871746837387704499670160956709375571856017494448027283455171475159520779894334608688041624269922437753482837538378194114432380568424280289979473912610475954773245562421484334289553209674961697246059241124375908541038932093360253619082518204314811034494502674078941368301074386916671797692679826614671070075868595008304500249691791042887009125600650673717101977118203645404066864865463379120780445283985424658399510867070254368953442902162966910041136472191967501804227294423058594779226198821448334339584916388683965788592735937182784628417884387102715281054037872042137107716644859130634786885525413375864769344916876785631686465517971843879254835715252336201249556156403858792046596183993266195402818687670433237533894678676897596800834988691476137202221294447636035723945420570999357787132799202481624288941808904432668932403710736076989525520728977062747472659649080790134885839825338770602665594345363306661679740794454067738421267415740204791258379052873147945541452817888189932072637908206218650154247965690386930496806255226231978230498869358129672697507620902544693558502876475599862800168663366112321660528535024772338086615088702403551837117189237084266498355099559257811398893855425538098687695041116702818461050123379765092134611372422977311643365214547514437723887913119035706963803436241327923014892769439070885734625660601201600286379974523880983098384566674696702606794418063903176071889995214228821844781477698199685033895728893427366161088220946302594816340241650412008938278576080360999045787400826363455193688282730341099211731022257526145154684067723215816220057715523166504070084961671113503102794328541380478356281499724259256336822108932533037360738668876083784990996014238587325933264979629421891867455720539134196778742076395115695360982748195765576274575262008943297964046409953645070924567500811215966529461479436456865039759684360220279438808803565274338336424023558399588969611170745373427614189685195384648154636621035884452315494524930539515497237579722357170150198309118167689933510134506107666783569815563843398771518369038616099989786462737396262673294673751632840573164388141727778464313376285169560858981812878553714944115668175395789134268761252019899803601849863022669214148662879271692722849356274486887082489869712212999843869648232094464479653690745828007921340643568223975752828995456108950304664480685700412613887790894765825771373743360387957623945026748795563021876224128459810845410700869092483422312271055411784751199122705710195372852173873035428103885837346111738960999930091088669586226523115051073522636658746398149992298645802616668068322783576921446289371531079709072364807755012016062008180306335407922108047641736229108752867289800040750360790524876471221176122526238603621396055540334718358282330418095718251642950506965750915161779401239169756908258778775731093348841289046431357144325663345958628567884531651830596206229606928622251493965246919668526910637452175536959683138739965562908831370993623768710646150385358343604888116996785093588222042719223437481004104726769433795206648049611126977488384674153569958492216632640993745905426426555356624819605862487273095621934650976619828587838712777530540585626163230028701640122364145238434852438377871706453642215327757502429128675213027117031123424419722234965263251460448060944667385186872300716334084689680623418033576950022547835524708687118882261796386909187133752923700307532012233646144915627377187246243082513370038565302567025900259188096338293201071214655208305706098273685474859237518959149793768862255578136046967836099155275362820995874448079074001078533762919882057765343295388399209812746596812840198832017929527879846225793799700115935379086429288068260445421093367475354933906577367491497705906741685616929944603526964107270988914688868242014520738228955986271194241358645843751368653735500221912002960400307079076880770151007985821061332941832943669452237676548709092153967998242182421557124715215671987278553923712413972093599643732097023640278171369498982673996511860945822849273814040197453322748982537513437047914602570096284546301048021627121401563824594350737014560925986565243889968633371775691416443125615239918841636267122255570510847627531505166110673689830036786254447001531774053954838844618922991849368714097931008395003273829642881895264281224374506802917191567970458019412502735317548275167930914311790844641036924185362736465928474432330353140699912087310337083875707500539159557447784142013135506712863295324990149123224194892335129411574019210174474917821487176427739090155915249698992618585765726323286758049608010186168486644583869039494373703110883866668865376522731297476545231877854803479666358546468847023947851672423199564429219715312087337791253661915493402288506836829237202044880843003909505342346025360622550902829530193788707951464474273669161589480221309632041545338626596030943874758010377665633705872763564130688392994702253826731420063369450133266314716831733115599510027536732628932098676401371990352455627911199181327086615305400902527505978247924980030046818200374979768026274573686986579160148900962464197397776512653304507722542002555686731681129388598254782737057821774682681869687825280854620551743153678175575928812908605356844299425114309994026051029469565473484058805676915361212712496384163745826544843017474872912783787692155683826516622438770674084276594663276849855315286005359867414615545552698671535164670253939613084114468892747368051329228758460318967686460974669098741583316245624599607175359544355154221691100483235240438428693925389331474784600268036664832627742743285530621764248058209660627243728580533534830148513733096874373979272998476689883943064199444411884582449376474843764003607933483289017982953274220925240044298228015413921223754166267457479009593159313046960636311006501690117742446007807300866730679471540593692263605934135843386132019474133037258145315225375642228144427541158737708770620396903700221662637716824700942581873047175282519129862793587740779975742622142081733182274396681583102170038399032937441019959016206673991491268343008055672254983463190362947716100602100781708563394515052117163012790885531485241816236504319659944507646938224451227666007531760896655827756354983810122001077041169840700136289248750782291975389185412959562316785328989550240883801570316811710883942732788920921038370752342347950082764057297964678246680888411806418469209055540710596904788670564658362324464326583984122414723528417765687037140768674205012526835178650180575138074206232355329325468968521935815164286937993852547468609516928513830777699393225162580730078628373900556321034253135317971607494623755083947879393890453223539157875314388661439085333214911199009442493126509296376550947395034415550377518625488492356176398155929990458400380047184938458730830200736664673776358215349972919770613935956752878042106832713016631867627274550696690046909103164786275373934156228780999623483990972848599184467297991491915602780030727768288679525255604083785236355842419811950417681324705449923069163197419139669443502323666730359456259914319069849794461920964761254894246831129767867983074689606361528873921713422167743655232296415914394209918463135049138135322634038800283042578565986708716349226426866082323403148737001919247601543091531128884360948923199410320408821339919066317629640441995470416452106050321676654485826338464957122096885055873320590287820615573877501356247791685645363656589100448934551363711732775451167344317913775447285524621883442336793783924648259247853360912884107220033445215129894597583392410910319416968489438006271421920492580724587030007606281593868080835033724827980204554034761473675313041287075077512535054367825186194564113711498145597946598893164161205748743303730445838658001220105808532158404219432099001287534660990536534450098618622314109819445358536510567752440472188386929597137126547623532009387807713955409961237122953402480210886026465150294859935523477802868966210535266100837442068483012324854336142628537731096190871910615027868713098342650897913869276423320953933519107092436296734498717220599236341115950161179456872837942568949098452361722899554537912380893435528749464191688888612414414988626350213386869025652207898126776345022817816621909672480195296380962255598860319887151530714122809388354196465479603583193972045567702645311231768162249299228361729521018419979000951100477112946678860440383583591643866402412731264806370607187875711092816587288313334214907069630209953346042135822649731408605597099095802028679825595244945704488024078371952631742299402008336449281778357927212662027045434369657351779479166677758032438167167896018362352954318317941716890228898661324231933324839534633574494486609958569780055834672552826949093909472086063227991667837657468433383796968494615635315163906735065152902983996751703284659956321994539801994078828015731573194576509852060719695047670441069066969365275994324825699244319273208484324670216020782098161054094727928942511014329816258183351450463056199025338919895412073518117064436247219425995357620359203609673236281684085846604006711893588564869597767442169306798671506126825536158961983397096213184602928721614906739153652336399989394015409497612751291492640198726734423044755208459363069089251919202322340496165974117639811749728640834491390705510144386754928063203595358874956081145631888288716267564623791923447360858307236931332249761983456075675984413945080186337168938380533374134253343539945424515101140476215681721007397267051250048074593506201569500729519289399665191599625584584565939237265156473289287633980227246818976749266149697212450097380010120423323177620316082104884415495696008894471341498891093792662617508200402230640636729554613343685440084854227100037698544814971964161165314819926608444562177891489506921934149666183898987644675075205719486476631200809726055996337130594977096988230695852155093720272030069072483513732190263124703865965402467332309451618303194941916189678407993156046014753103522767875367417371475097336479440045306122210543021463515574526469211938408403194928859690616099100352256514390585067210256091172308846412578099881418643651420098613920990680526125081924599154822326893113342317522653251156574229434537655772980330312219071522440499960195426314296956372410029859410625789510389270268676924432016585691507632652425082907443163814643511761206868122802287931414868190065707453129146434885383140872063663133947567510944697004471138266714949591972049937108232989452212890658806664157927338000435546302663727968610430116386373847245248668411468041375564409275270014753499559499320450247460661456274705194413498962042444732734209173102235399224632508258512041592205724061448613835527090948763686745919703122754007517576809238670100309199278708197363271063150279438063498411686652882469262913279417919842456169334916064400236289368758845027030008127657726477563466269247862453959788831315469374702064801723764111019613557687266796754922872140133078894300897426080130585944002177580490513456694755395794138526630094832816846078835439178064553244171878987953252858394527245614435988101058086296459465421556589963378568060973017964122256565281717438820693066089977086049791461829237082966088795492540903629101732081455093658606700917868772990009768142096566434441927977694539991969543033732387220410983469090421529061990917155100371009181706040806797782171305426773199609847390237821756530585948384010589046997103900364781116945060492504148216448487049791107725260341126526074948885418222646352811291224829783423855898770972619637181559681321208730504615040339979080679643853848987956641415837083973374901567743419770726072480026826209701384044436248831907363490435796555264087617466322333115428306595425122965699421870030446370427551453717405097035155683708802446085638537233453134584391800029175997794090440718091734421180168113849825152324199422964184384185308524040064012606707036865760528468845385938839608604177655517124733650112360062120868024342557941588548121593516304683058897550625932262081605143155247566453684441367915943412447649356778262798891090721246247614541303610469345955264690344128856040835690842779835537199302032823666746573658599499263604845881535846078657140734075846476598042897872954260109380271001039441920110259473694337095133903660566510369943657476718224216191678374703641227763019970013608385571178613404268608622039723886273229732431112989889049880512767577810757323578091946134449800024113039694802035112137625928015705479081258305222850723266968840724458091506946819376013596437305734890115564325420441427840977832560581114845772382829937001202863064463858272114772145299208829867945868083790616522862073623766380869528713094766808589623762108785287027950007526631443696109975775138877493439969825642553996201671942111007697672390833229690225946670899529938383778069939438677740682867654084866394861940399062522598314209391590061050255230243841883360583176743743063637404237891591058662543344702866456968231091625320910070002035274678710530081248509771004615402476188647745190012781245270162929678258650458549213182995109495291477810853403507555044433899160385187895714584552719925477086351780271241297059299309470352032521043145075672193027597405059345878414187175071497082498886725089003882677754499246938548444634775284146135046927940753401737517020561692494721734664788723824678154975078515894243115336578261683844157059054157392387350244183101197906094270277544355232240067788213555350736490361944226166125116388040149341299778710920823207258669083126739754756158592086422384099915234931271823168694016630029803647627540647537618451843326443780825089143123945872018371049029216930373939557367576968210803754850275237525257195917233564781079101970373460143455762080990467477143346051973329071136077775632864834940004867487019198575477806469405224864174419732040122470358819832388233384212489869763669492278028372711330423650306701731544739835680634712482615467851690290950628837970027949053013247163297366876358032344677206548844145441580730079325877187994028884791848782483464923879309196310895823271882612302356262480287347113016375290453733950997045327888209468174810539469090885761793897804835121446199200476644659359540975043583195864236613836659642349501626141969416559265754869234065006238994592742877176443679699276182765023840869528402158550658548922556559237915288004970986976064873352016492626826401322302763904923510526517759481498881809377848813281659580122100327456633472189504824494954765835617124393641995438344990394985798332144659422573948735944088930228960330866062082755213157376449288213286931929401271330337656438119099016003876581217308529341908403422173285006652424691214656758443414398058890477615777343781095930977707176652909552419602534464736247316949561626367505773010779689630563207249161273943938064148485771070563832005415492467881956703231338453332358552813780111109696459941901052778272734545448473367911471668658838297231327599450923981409354257332519921782561475746072177103934005228279716521685499473995318484902272756329739542773665157548886228869769686094011715105798591256017074884806844324368694603513286484651386825464465874416568066786408879723560737799276713650097475362444023040627817312915771443709030555393750588334911523848302037045997323086539065099716715209302405845745434648342146342420412509063442691470885506365781957457066617128399575852448679350165633960076128730895141682433276805194900828359763860357959991411161096585938933006193322928681046764549906939388921251238664522479624191980626014803037535163753613430482099288364017544022943939926347860812653169190706815775895381769149261374154093034834422891617081866267784303688694069519211316964202511993598622907509972902698116959946900961409701645433945753650523562747409551048880413400344742795096759095513459173699763656658754452936354558727923883370340684249140740527901372220460063190394656473101024291692566971375960526484116245734268657033530153089175060313998968716539044207478677696003253702597545417226342637580798981505802150372853241777764318551542394849851325823661939132330229683116134165809588642964795371508523935171551811654880839837087592610444368076970436544054670571783650064357718959476490079852318961592023378818714769031706928228246851602727077457561486300095111565917644246079933760658973914703641558618907483556345793141635809174017381511852420497659971145077865525351000208745788152165144935584519738291965973127026248294177403533864613605622659746689868725349897675143229623185942336550378358000160744196944407689118687235899640178620367241412476191062177670292081024583249941023376190188518109383134500914547254224018753688707346455241020907190267775610899063709873551284872853463050015187022186172173096577956966070672644486248088642527653945616002736093917543792758000943593046285020387762996480252147945824767453404818116655724251693764305350353211800281273595222818870758711204341274297569581644563545718472672667574252945587024891195522424504428143731772405867603681473552438476626103432303776248737160843603356612723499764822915843483788575641078374874466779561500374069569626483111499325960481978659109541371966150160440626714196326659955949023492380067733738703883927810552215638993720578104741898844301652571901194842909259062919625383702653218857569042794106936821465788117479393665433482978782866709200955750921185132893455998414399955108015220374379069756415179383553341169481631944731927338656888956219832626974219156048488562231926250971658555295614518827452042058669524342681415280774236098144289127400483866155871914285734254891639531412876826603359717700329691631516981007503532192047093965403780119787764731309542105811578387494638985657053770083066755033813595737064289424482523137803607542930841470160876138660867296605728611904360844395739258648950856843720046015093821255049315092745579280007138312491833515249381699184037971554721280502085789312725120924207488761608662396459275558078976596766563774232227712227349732094523490505481333656159827470185838925318765586869619855895173180028185716915219943167216968743595846790946329065760498032061173318799231372130767930875294335332725044058576229284511879672571718824334477371966708647305641618458296161037112872636368658596915281883725791872494424644445833060184745706369015929916590480176505394896675178344407102312318828712918270633466807160677132323512566005630067920225704850621288316231141480761568705568346779901146843235836710941042818134756457678901245930637503068237267890880580087099123395432886637092322225101553151094038792368068876724372983870791844597128776108834719819563186739621776022277455264310885093705413174547730976099839660860408241329006366623589081581780238906523108166485530932084148453310044100547931839841466070592445436331396711548317075067427816851236521942385540488470448519061394919742624891862268743568485872701768081888737284363126437182792970291614903247061111437346601035282198574136126716091143142244231268748719324480703853146533787311687114591431694911722901153540429167916483287446494050281381489302339200029486462193938431432172997013618010894735919111715258711997486943596529180506402297253199212604771690420223562012363788944439391112272351640967532888572625368021599347406514781273593582461759860504085590408698850479329815160697718015261278123116352249587915728215139245026253967093119147545762470584691505385177002817896057775143602056843338271391718977582931719967539032915851177315997781319287137315144694580816081654878595631248369941574349240211740223667648003024708568527762707710775996131420604081424464921305211087606335595650209918947485793294539445551431113184779547216680560239557890821227892168685452382701108473988608980381895226954468577834732456436759702435491143609423149807664426648984415551181810781345883913647995814441266760823982181266142414811225844057404566537589452327684268802211389537263336623773408320036564795695365294156748091257234908656737534458228377382907395401566346599270167415485232376258282009692577639096709411332753387833731241032981032148070511616579654040461269381543385461301607371147403664954292072267291711896553854688442737382243972522468946650809501769305056839098815622462675470139854963216110976125052136034294888643603610240315817787793452611019643236632813401565034631611970507012728103176035080507805425854017536625238829593359977825410640445404919725422622130066613673246777673162146683406033886651008004659470460708090401447063845630869871328106089647374190529690778752644068879222569593288841658806425250830114503828035793833442574815374387722735706921227779659346056201675703999011124307483342847660663897507225649669832477709853686414836739337380459319313855981612460647578402359660422427955441571305330002823330838621069054604207883354310533740275304262255791822163978840627276015704360469601056345031821077272212288891704971719255414472596176312206535668766504363860029935521020339767635388061185597549729497507183464757637960174785529550214766667972365614746656703101362699841223079396646233708522030291997479770091518134818311514364705489574253155546463665006977044604856144720093722190729943362291485493314350512319516279768733091832202194226718990497733198046977880345105707348155895227015780670692565643086894589363266367251065850626996692978304223536922496178214034317332951843628106924783979893608336140738432685750220010634998182139585039103521027233580964920138540141239397076229507078729099917041842407353193414327025022587771890974418196606408855894758717852582469809852807611521617120462293253152516042083670083283147659946819679784098282282423548441995661081212523520705100111765537465581100601792953648712000092054336438953557571053762657763670796093800070278678140921577527724115339352499139408099737419149819525417760565652287446282862163000969733654595658288689604334843464447748483284640218180811529934498528801501484472999407403534570743090114797066782221867532757406516214909902223095634053837680898625590346647245049338499771115222288907890165114759657053790989273928091892624291976601906349370366095573034507442678849568807046508962860206936149329946467726833303291546290201961831071208662689653208294670721318845169525495018310719242092874730910827769095855634930705357257694371517638864310620333201352355752174682352768132862426801183084958926320292054231200799993233491448660042649716224277410294655478251361811199713260739199398196238706269629513539543881252273711191703363153877495242988986388368887353354870924003518278254292758164679868121461642408170109608572586215234631142549543637590245500871361665168118148909689700141115577819354276289981962154435213503840900391364708010985099312409771581681012860391717597004892854627702220525939444027531599256243236880794551977276233352126159487993514951803362130098998444232804473303108719547415987395380386945510150557140284531894094492101489545318489417307841268569136252046717226499046849566978776267753259347995973002551642828830171174807481560874227726299469672061782079087083566575624135160105216055042496824766070507784312746691576050568747035714098448961922044652819190822550848188794143856914014260884439242436774502985076720973226529489299422699230378904973315788370125572736376316609958090544477228698820776233336938886435652767337072210513364878129848841994332199224834721068373166062636419750747681196204515833979140541111526034186637867198706402028897759156888744495014909878479160706909544959101283519021382224826682543893705667622474107370881197382741810301618040574181460734948681738746754884596851014525781397510557105194527722515408991655417935173028003077653839384629351354487973186922241854604924918945485387185122533944456578905470482722661726271241453135935450912237113618930432685644712118720408189769322935544889675309668309539428254423474871154048190848013337820661850140003613316770881128937891251327628516564215209716064611387161144065148889006681770055849071339160242431985160501577252214293475559803095236869307746566443327934681639122624006082140138151267751856400747239065220461793905111514435974264254915665593563875137206382078069362139154187978202567563704661494198287705226782563412586206114811719111795593761274584429423826690635827116392846101787476204466250586500477484438922486719556234826404637847147633292972317384286851396448722126534050380754006819211856524043506887938723618259685923093618397402956125565819596662718826856013720860953225743954506579098660021293107610096752912924961675529308324421923001617290341786886052084198064790999517371271184785391212613340335934442870713817941647219703667094872713897993234109046037975528554196579653081069998427469113491190272397357056481213792625779774719292800002920537052035805697953836163783127671940162840242493285549951035451501452447310189153325728236488642081993406949084260394971253154866511061951404065080058843229792508081744616139248829367014637369063195939993547580064704391185074920595808029432265574811427814505949421137345977551272672240923632163027316576488294535073739424434953338829037340242585022816292340747395291558190209608288306853190632920581131549317172802607513856014088164261654836635840212603024924010979553375531467523758951133094539730307894428882781346155923163500813054843716941303076019211230439843088815122481950611078624412785061216977059219273737896765608051120557365781339277546126765295554777994346939405379601568809792851561873657271319197442273981366226931660149121208332613891382365465169043054323346530934269366675174106205504556551380193873962999631697791829192286212147478038139646328905093130481907644053477002810776900042025228917038237407734947826003998705490498151655911555803406911775638513276562522678923062162485119057415672852229824921744957403975569857745825951798968442063227324195712453875268469575857849437111455022740131993668675952958014758682415671507378659534271007581782162678627495588425203685811455116348062154081475010103793776291530508350306996066279131413096361053003039847697588193229298613286745614334774583345559842681410457070432007305717562113201477669966873504411780407267454684985234552801339996676299987115087742482622328324081700489721122750230349847166935738344928664020631897006074465266050621996492554950854601726581124762632098181432586661524688551961372276742207353182879248754351219172274346658764536443516139782570908820480574884050163034801390976503451153537889531124158404446271196806687108303094088380062247463707156592813505551307111379170024480259892301365942036450871360800327370208903783969059878388812634229907384878728611189770524146083200514333959281267072349065138696223234260581911838567027429680669419939462459120016403581570412904465532023388407070973931138629898597888664114959635219045959456784778387706886796982756275247831009341446695701498605126823905599831146944020374346354494146831180511394075479978846602852732016065090629738701732325848064283111413397337225785012576122376114834365500443725248701423731693251979844281418458576318288054174864966750440454357006896688182828291863465272791885077854345265994488935661126253764201960994004904564087190332321924260963677122029486830941008211336086759527028607365595849087065860846835702710919635262048632841022048926668018610302272642151960829878975783515326885677675241374453484005306067798626562239305378453869193022991375830130106038489997842628905683764506933955508292998838303880234300465982977261571775509213445908032735049454373355314989137216595481755355814073509436155389464486802978590951581044555014327789247050340075321884748617594955890474942592807512486009982227537553774696857377527140012073596297281862274954163881144732937593812738890243634926269642852548550033243646091500404643411792060810466440141270865504341555604471559076444250689246318585190598283245195386907769620845344123893767157131098588168373391093314798531504569984490793699008664895752960614862234615794467938330506470103697438231181679066656514914415224132616544190497425460584639291981575023210888416503944963212613846058667674606569994948231200739635018695445719889442385580064588608141889392704957808053573383025642576175517519781476132008170010038882634850670024144844061805578160279911826607871469750596114260528396943467956108351833834583520952939745547031125242856737144306304376532632347554337538850954374432546024631212618948245151225124840721420636918813833718459834042229630713002304558480331908271003458030237479031325580708376645560776620318230009563012451825458513675718226276258138877872210694323012839522815570483707679172283225427867480544363155955085738579102442250493232819392092443532300280247446536594271244217283056779259263311306300131674094495551542277776517470348786027858619420471406843071118692574717829666974699001476720642231246478511267402833904827185498161801451240437019674423040201380750906320072426285916682369451719529775720179245852814112624065578128454444605587050177398793163865018825973987775860243431968270912779951650670469296083751247551422080721719962243914845691878969302452927146705847160584099228672396933854314930363314449273122698078311414248168680532272659653333521618463910601426023617552242624977167696277948929546920876353752198385368182196090724481533187637767507735528463679999053791468408074078268971959112834409112711265942404068104137278482765452941898597574529923964963634210882846732800933760989089392285192209935529341782855812853146906800083629863512581063535564520184771568708555643882361642222460423287906829753546269106181429278089590540417203693695395006506064654749384327469115764292129081020445329941166662332802407406276175519955048093278820074355854673854348635817910133352283507684575187226329012056547950120512991538402419809117164550406554527371098182743968222205701225954002499328627721780277557999494922297133006369959066157240358323958927395388344455085408810071750512180888360899280710901474146907396482756105460656767157919080284053991417263362556588688508956057228580544782589757908892264988588985582597610075729785914079518508671380622599161651769758202684044539599463677412064116259438647964298618834626067729664535127510365495072964458655529952187383704541628513560738325932967540119098860360557611140268238852642989398491506265943869238850235273116089391960310451912105876693913859457723020943518021733679942768003530055588262041290712656434121798038934366655082242588647999850211600940598112535805769434510385329700767555343779490342069504027058985337325842292353780952442432591732777986544317144757488974875288556146259065733790801273990011477455076521131665867350236087399308039006503538730024270411819205103946548094654439807670571498129228093075906552859269947301868936842365697402715872549296617224009136552541221686032609953567123218954724375465383381648995129379594126283778268980498365518929357938085987014738726959518777596418328738168148985929095722911039770933052380277192077427543453529686629792605032043588397276812123229875213949374820776604528595816410843168620468286539898951335619023911773382778500832380987026496411608943709078721840649312284544655499284755928698689706721232998325130892348422154480460872605121389932214856483282601063232485470019288771863867350458381908914781563176471289467547978304816818581693475879247179407161809415278542527683940537285967824516452977181538330028511305486524129828991359793056505162063279469905420353694052472063486167690062340874060825393528537259299308464288885451106839331352995695532698273569684438237363804571766120265676644728634553212013056425904468282942963820180996558785548091015067704206571854076103791369206715054670865986801636470717101788418587166292211924150329802895758789875499368449698664295055582687204465449572455398038643892754156112523165156663093933569924629732719745422767754738885138683590842610901390114374327267803784605805511501964912613678052226141551887996002154618570153254523759951047525445488104602621070094896230903190647131830741651579683272995028613613749882900504216671821888631519973386468365779781396864749047947770148643891745107054351358985938639869858632619105670043181972307892228961149949392065637091041112924844023319418007618215388872601235238312887279171114400703530927109344076565712744168965497253284589486040296146607300010505904235868129184800503007229475796925977592473742481162521940376664880084424703421730095771693849097246219270915271528002150060419163999255294147750137338174755425703743367195123222210727733779305635625274778247841775831565324752051446528259155070392024282971698647334720085109627095626008537011034152670432398559477348335273629201927492724532144893309814392937283512892277363754632929525976766845587601840206331847161754413729634529885694860049348047139052942913109316878503964401331118262151467401890737970553332099885136675051100210555240839023632125446888419402663625362348693318243941410301801395621106825208459433863021314225283896329209561027934888628530513574885477992091501289192256863168835883792524975640492662841885098303714345384796233687858976182038419548270386830827867900623146222679671000319407955673949569624202856300699814329176110041681884179393384685918149483359214774645336832146491068652805954822831109020652377330325123660371492327697058566550529726647656701464738615479502262284992869865264050189362202282229183071220530040104723628660217734644146332914687203159420787445431580499155143917009093445343516825692511932559881017836207927446375665746515977666035527563026001590480294648455575046049637577861028007988690696130444292427488011660276346949767543743384844585829670538823094467587844948257383358880962900226143486775134938234793618474063097781504814005567276819621921302770904038080040744963103301264578832290095125929841331083544606633991784049375198364871457085050495654968418406017026515024123722163664539882842015708854067576092256203422050428377487112809000717637373295067064084817522860168150358417421119864153629409672026992973622169888290215854185884734898639002911991578585817974562016467970863622180274068516638213433285868487841376587966600136728385726643993788631493500027497811885236039213914312416344081578203643031900244878691706285750734524719331118082833204630820191758810031140426023219312303718769896803254978234688991860636075603349679342473920870693871475588748175405368343697655936872232859046733925952390123011489653247887124289666680703595252853265296865773039156943113598078918531834393444121537350168741566855399065743105506965560562219120826247921627316160889158773001438515907797258075412894490124326359508638697325359216785746314300633589375730647065174743016050615548096273206985864827319815122454919349178879510823400018460490828174391797791131854121602580344092149060515358887486767056573107847080714062827843823997394084904767398241263749510663121417300559976221341045814976111711576613746087245329877880948219161111870919430588980167685217028811280565271020542841101123951880710334635766475377628732675057515503481063023285780693975589734637747065916268617458238792518731926585989795653310466449905920783029381882605384446393201338539004889962445891668243459849591097323000779578156749459230369822532484812595566429371780069911465881067895395288817396266487511749006978317783290763289241246869744176585508544436694581393936391689613957100733860201170175827467782122091793541202810693200279888389791172019268108066177732126733545656987366214635445202429807339212008051166479897515926454086282317439968881716869952106263400194139197369008779928186750079113870934270094056048488223960366864873448935222756529613988642992963019134661607752860714371586884029951938173796494070243821256656414174055962165287749493702640859346294659442880593008427568915507301422089830947111812178599992583929550740215505057720668320556135027086813492039737828726373216418800686934948623942937638814999518467458659746531780993339521760856791240449043503563613233615107605872683908125922063827056067120415778913791969181795194977939703530833287096783475844067704218586127524569783989075596046372536896625229033634713287203364156204690069675202520071133903415682939826513573252956309929887372165957817433904934333612769304632993543338103605452654179150577388913016640267410342532481295881251465393840868054209559967435541831968236880697571616034373526142485041837051152788787075678171324778620885993825513677606725952923819331887518515494076632102413218957056543733989260689260643151674378585543357762201575736726452514229008383003144490937254888459974352475320441108905535867476109571432001385825403170719641346494531883059715118163100671816469975135327151163636926991175463802863116278861203872181592552810602257449619366333482543981060298237068629430907927252744546574928224837121367323149802591734705533837115182679410752989311584860407598564589680780153524275455643215986574842830017962771998095045436016469611548020886553677314346816301318487820031790997149489053852712552738286492619852272003112224457343207130718781284518985132728297924600072886363702084501765473080334277791483690593967196582742648967719656652939644520280717859069755573226132505189422781044959578666952999042229888860059246821564943550524961588948071648695148518186609864118723006222807603144401154526853738278346759459373328766913367972147721263689099769984267807702556842692489365340437312488344344131638969224594385403351204250097571544734644365749463017605829291616663908361456071033719962713337330767775480544328947667850733546834265150771425205005343755697986457211251161519961616611752741702277399679648011057722355474570485385724009509954862291936957742280046931135823012951988564410457817792811343584476923782624913741587987849313983881572213097327007606233093485519709372317211364032264305733808117940327971261806592434785615253454862968946253009341004086473911870169001797238673087601608986227474937894379177724716987475763459343178187625685330407473466136377652857234114940401834823346965630982075290555102216680731326259667332754538867335721324806170319461819033734161109117166478863893160601939918685136472494279359431809636533026871855041782476421647116125364630413420106844872241428872991140966020093786030734993090798825753062485040004639336053408941568238693017035649484739639316257069998530896771279532436373881312280102034887894258392991474002475038993680696645629614781860667521653519058927040598991561645734670575361187892869067066588971156989937756250062368150894248099346825455531217200575576694344428571267862060659659063398036914684631189846282305260271527151761248009089619926483623472270982708157485616274989179419062502303987884458629394733910995135064528535428435446054569751057348535218402768202955509978596370228444826120142987409370949799085861460164809574188919410423353449196645469648869165697578913920893195348304540988599901768383156979251163055610489325705165332497343422050236845141122364815355432190805607719219487813657975778413295550870928091538595902551326995726807188275174990700613904484999753996192179153344168105964245604723474264716276399294033211281833209242266140098530026496201589414756656430101650915776390487724233808373519553369847196572256698661935653599542043047674638858358500206807198230503890276620602403045985548327096301643749466423228581833184217877188593409140870651909686992435896249811235510739677078432376109571411596857232853806595161515034717025583545830925829092186606103146341733939113275520547316331936764072340786497052766412185539555536380167337405145552515524847560350765572111424318623988948838207651353996902025015345578312503924370008009694779300449216925982354886024138370023002098263887543502994714207175936314636176866519783409044294756483886138308803052701106553337057117710949046260488194271285476037076883967972086135253760833285124307137363519666442946114198713261635225069951954842866162856762169385041908124282184191798507032080874480683253155907353081270270085614016325437020072079357543333012273021315293301826952357084986131796807875641737469627595309340534393603177129871377940912378634619941885003428113172665426998109091138666507057675003693240505419354668382978358722368199036397585723335016250868236274996369476018893090200492641700627872501693708648704123206299201483262971899869435635008842221788166084372914002747678162197056917282629594359960884316190903761937295125570512167075603576645138892107232965922568864008129424213346776717716541287504158084472321541830780435239600811529050378837945661396180097729863691109742125758802343018669121822420570961244578940659898177634905085153817296914065201542175662797219610881507665323179365275903318516522630289848857478712615463918729901436858410739422167493117820927141191736691935743810117266526240884952247887470975246869356062992382732166370526156655078561238788438971369426751135726251997473906225857342090781499634440805032589237232339872178036571064960334720552491293472441349515263357748063903847105132266121289739556653819040173745206534817774040468750043821161558199034549283919985465342259428314639110770952869425177076887235211258897740634807682597118071946751986333124892376602450892929156900993443309839792230097352354232464013884281051869512461341338522368438496494627169692372472204660471481929793972646036515457007446024689342338219200418917713501189612313388697598073765767963889385383541851983627459321901553588301903628688331052250069590539871571192136064574810857382593731769084810986870502125781271182894773452514649969104912671052986792856125333459150960592255129028105386993065707126547160815066537825227835394426220736607078204954560862033680832800969127664084618838555927322267545788345014852883570637083414958371331694697057358077594668583870090729582916854185697957722651922554844712453057173296435187569436100642665113491615427053648525554951973459842725829132204054713552465986934230783311685182530073189485396531061915250527471789662077323813711080660522553137113225464037512203525770122281362386018458196141211395144170325894196158549972277329539743836408691431388277647985595837498112527888153828463966067627698140918565480370158961734593670022352667874253007887266008673354728726419391452338659649476960900897518234959830792674634330160579781365429397440928895124853630235803067732051684998410343341984389815859508688982406667734980726062321980996180146182662894391322521695187956053214192278046510111883580653667231348696497829411688571167613712747131464324738028005150268452634444048066745244104095032644977145006633909614428049919696434012799898222133209498591833219004217493198860359729744648662142928987553341060861845087734301581679685188198787576271468780911614825089251369722254979770950261450352128730501492546540857292683649852185033865510055609674499313764404838049623552418883271323622525049668186277462802997196591453652331907772536110660134376737305901165936602259782613834817968836296227438429217247858738189569495448311624586540146263613261005655451014834492674811976039904959219756686448079886586828890752981477402708336257927873776895277631638012873082202501028096504414672135863415726817635884093942530102972839273709498828987551411068605129893318460286043318599384035540726028782488432703485959213047840530738491943261976123716645192823874094652624163659063240565789399054434126518804963069086581347498389788488252438789181610084965237737748365056882555143208399457055636622983589033956256503620830114839938109482641748125458300017544321238639061219880645177206610523734437699926028900523913583730593096824686259298417084701742190618109015747682196709323032002963804577753125080955104580053360100999600395811133767538178382509018264666249435112308041363697224229419435016587428333665365338209838960886197702490387005820945245926688434365945174453024684627826184203210317025993660666852302478118130024369653345735767172525274825574885753006091269452043163215540678215572580293627539678716015422013665186029393229537857187380726309221938122932179220431865254270327630430866697684728128524844405376917608929845085547986095090856796232927737166106949924630675783492824547181351753974543952648379860621628795462495378317831512461655580864040675680492084085753134573550340119042821781556339028171646818923668872184269496733651452838357811441298114275422138902115249532530821979980397570514806933305463029175031739867359878026716285121794758342167767285231609579799502918605110672624972445144807499491649613993443952683310491392678166833856151532818034682632587767981203293283396599183691963923635486331462425621486788773081994624915819248717052005419052844171011248544779712217856047086257933996765359698928610784977446828250951298866842338226984260799036025968974481695181443749321406703087514972359787834009828483815488556531992358548485241082383711969360107523525918431747834176142741512837090282886893738594856212805621272973847905617444705467731630766692994036310936388335458977003359342720169965347501516912079947592340008486110262821683258096611958525977059803292921966370552728119081301717440878218776467090002047627605923251439063724902683646852262811378905674913737634989221952977969305781449236330197387430603162255969234911331581266847968419326860393319501223260266743276790557581410826543884871232801901205725103945115451627085356522222741205098377998576067202551581155016835105501510864643966768224344357856082281074731555249426386366939465016923539973124416040591779219377481925811440513947121793728661578357608162905731953267158374487686177376592891034096770136261796156620764851888391749613362737479799391536395794664212996634765073779289763934633676187227521065531674315918276357525093730674049069536007936943046665733623425732396410420908006417450655140045882381482436826156925190456484757569841110305714755920831778527702963489314805274258163227807920813897077320736967064360711319128913899115544892806010909972094771973937350574884603234681171201832409696691482505058701095966392552435214348420760475721228536099442601825397699513610028533247539086602750898854912107698709356542249707664971714984254481819430071834275113775342619521428128280909195568537348117855658830898380443821037858823546731698423305568748448490177360795892236674053234469511739067822266236608633831820358373364385892362183429104709667286765887389613032194035001480299034784794260122897067375415334183529355954247222827081378713863481204607334414198524184762805086736889075406926541051478070919390051163597502928809376763625182568988411857335920206500166429586597229729503698866145278206889577825354161451998987883165026349684932481595674823629617375207147236098186933122304905918015281359990538268958933650044819111542962409841998180285709910721392836736457339070929162576631289447435580819928259273367723984977068119997317789288740595909660372847348448368179437500589917988050312562531838366544371604088501201751506262321277073415260897768203179351959742361957137850849698396828566895787957186307334153947517448778644094093423068710722438353808082346832699060437753925488218260795924664977282178310244500598671322743534707608961698493311339266586575714476849198308556803585725944308618053295151296247128903676406152441193985692777941485806426668394638571324261692667872474682974514675505422588922259365172017688239486989198205030130806107547344885149525429307323817977062155062755261745759745948714151007362467477957502727960581057002299927269735222080016180721702652165412874058024829000451780518648712325271551252626300408176454740365042581235061240695437687210855271382380285707813458378758639741977393003818700414787862156358752099180814135734267046067747853665827911658795928869301649846552121341201379565380973130768878267537055827810602863118489712204788797389274778088545012501480738718024767217536176202615440258829088829616593627554355685323490375708480569812101697500396000631906714489693574611818719741242424615982437278936984796602887206297113420322683409116190433641681037160325033978382726828871145824751340094622687585600523883414676620331235443073108698722237795133637355827563911090350274917011058598137177091145627546267377135370717597272829893895719634697581132295179001602127490198320764735821902087545849987617096370661603664812164104155578854632751700247462908190359852806413327598884809057202553550984174588128173377492237050493894138706923048916641554125486542846321580552026931959466944208150839624267746977448910170329755728737547394907168824892698625711477329243077959192560598950691475835330475642492107160084629828498942272919377369387982961409171558186055688510507977227442114740794368136198263426456579610856328460888902755863086238965844826001640027735443178830574162934842437664821509043227568180290613000276140217570370485451423434232482280407746434528907608188644179481612267839108923286147677156993656116221788439659518934462015524520591246582474347133904285435833217671031827555157581912523145965970526792112038553239247315751464224043235945365136297855293096202777930327853039458874574083157330463089513176632021444741450147804535498893885619178916126671002124620831829177152054308338162163523849473672392369182962215635276386776933972892349663740888518501933356619381419245818875652325613563498267246064686699688236446952409286890638181096252904967661916957553573350230146151406362417948399761879956361616217034614538962162692091494276695598541132627631252296925449071506190235073397460601396306194214332519019688707637860599677833161785774446620498050600564748620685369284676873769227624043681598166814328814344569394278458708448447006085195424712647052987119092893528802321994232250292356935241957054457563498015594071584275948252288637227769768241420145142854898616565732524007969637465962475775861555268455757635423161081507717864672844911207716611589106643307226099216912717525892704616257634431834445504018389812018039202200854547390180212416768295025376855456625188540630393051386684811500906645758636120227223882731394727915576649824965288205728793963958118054984634252691962680381674794852324015529658024186770504333388071404093890927724272639302324555807348090315132843160407161870679059208302403881293400887368600052381639231020023235729100638861269771969773632150337815571103872644001384680032734775033836084437367900909469985917192643282955173100613356778574002910654358026294551490590823464152166619589609209345010433902958093490582620430448921752839867880440132618293623244475652394769622545320528049824714415283401210770044908518636503513596657065844854549030201080815720320512527884910163682916292096348782476680597859076441180044965471247882929891243454882396471846139148249889915311079682594436695695399313044907605654256161513794495519723051088504783262553225473297153139114299089430804173982335637854068389484521970073101613011127878811703331683895514055699784895244958944525869600469521576335649534225034981250364908708776309618771017925529506848581906038563432858581934200368174855616508200183237648897139547885975850791104689492887773056982094523403865728128322493074799363645854053837373810223681908560198494203542908622168560451431393104171370456126258466376790209057660499478318041400457758639552137135262386617422342692277813524926703798481615179126691765698885372662711330191204749008653770912571547702902830130789415605104468481212889778560945123204680178330158176175039664496591488109391219589766858299433920463209319551920945819959896848314604473335617227481539135877824214175898140731702583929594701907427952237576629689620978593675120564621789413816554666152909488374670270296303466314242680562864133479904863296508665225894656569070808079837544832626071847305468081671292438383127852953719511658768524912802239544380822749044108399310322506040199545245120455223630919938214886918667369385692571869964069673627783567038766995957629230592409673307853793279267066697495271061801799591410534631525262175162955909318428227914046159503897026356385390388292287511543075470549868657891183984563033596926356494118840646901145453179955067087469138317792153164623775542515823583922946752048538402505675970094348605815436618594075916576534892430256377919682950485478170602824419425565785785362485185713256758066178984253132511051419474011064316241581576831273531601839862263316455157319896197938107360554530776427642976276119110921467976751403372252392448592160449059348782798582938639858960407653505730437331635524527147746543150789199409260097420851395482372253200453250611097177602113160874829765600122386646653613080793363910348438068977067074923078364817487613310112021053260619923686300110300198074355479624164187881696639766440719162459195767496634570959336471219048990275400699985690317300717048790344963375340904893001443144938710361205319550238977410092174773462816738983048484734819973573979820180498333628315214424138772923519377321510401782124294732736051656833153030487186593247227456136850792632959333734196464783199813640162447237616082011578243952715608731143186549869115121110037651756726868788462610483622490693333465945025952631958433344000829462624043982385244141192045367182535578616551649828635445426490667580174488671496298284986795199437625000515791837102712809572274161572911025554501122017944076299196173931624225062522860680904008671678730088872258069437198964614811272522834614512546085191027055246600340048054768023087739906681418151783243749049791739480587350592774351642577787166536793414792363072091504710881767102119449900526044718251744026218904246829013331255642792404136243735932770292334201852466971059465406916952562609017172803331326989439575776405427572614970579763991289029941968801773511858482136754184799218134207021341827134193258202423625672551496733424268616189831432112837577464222919395814947083871734488804079407878202273812388831020413064855942610704378895027954631252420042348395128804137584883857401953855955338968104270929229164957843661141109566120490765978193368182182229815273623099510292561920695132351776353996560487733927118707035994098353038180972366499287976826643370949022909156516636788938801528563205388129053984227961869471597392003502175132256269395656631486781364014698824050311067396146962079146846637447454612117140634541631326739293979496793932489874328113957101677406002400428104631414316219751307449996347824262288557160046792109159862004008012359758648927669139997516543963070008655427432452164412330873214709405455625673288567781514982208015250698004486458305282309345315336135756422791119165191298321604114199538430499642805675976929466335024095559513937264577102740733971159088785966517256026858444685075045892412036232088327850277571594705422280559236277384717826054573507200448801301187206748732519091437804293260751211038433069891329967492881394566356491073525470076824597053430738133782309656662755265000304510096994807496113598638295291105010112675428007295043775956980950706966215144803524536761538892693189852209010920408202380703699689824295248357868953773659320888786000928981732281851166228354232976075746264829153662672020333910721056057394808228081228321671839300482440682371676895219065494214255400754791545631326326005407741760047528097180683720606469727110149522823579135120474149657871097977238540903543620942677021182539189020656924285054839040465524847446581938280345109673587844651846909325407883476136324587326219723764472466260107797303201015164513070442322225014783932835506554793107326543988041459935442235660995697544897556344387526329817082065685283568151381685588417202572822053049015770978334417772073931177312709137606040567870024312504867061819397245517719523567113501593588878950780232579325634849883867794309979568302853801565994483621492651659232331213703451263066709640999901608695079278411958450588875825123488155463015578924157343000290965178038050267397686888655529279900512199403404070733960836396406864604471752305799516698289234026744754088846846369773208797910733340179102338403851384016046631404667120546794624670783709747272100100819646722268938997190485384456511881539992154602915049003701793499372921883000226235414010544547226046724083544322773048123322263314867966388584760273283006334933748570332453315682159977845222830455001392560574890025030485167560795626824810597568623548999954742745400583732782902812538478524937379770684220714534566964166337321736104800213125596347614252259274861339742325912503468398317725726564906457287958963775167193849590498901112019861491153111202323616409575897652378240948651689603507212762260203989480974601160794831262108372307023757382561289076706857507919476497788561703647494558090351994005766424614382966630484113182803544373062659562825399281947559009671415984161430758775258980762638058027757250452316890918172452408611278910719698532354715513567641944041597766715731394464063343817173887058807871884595181629604971690474346783305126859959493638770960605314756233093037492224900656122670879405826760513909742320736765686426920416010250437595280502642085805426786520927019310400038733841994962774608998850053008606679784400283490738064523500216258245443341184159691845950399295795568228716883353168819254464683562654789095903880754716161648651526285995515878846044738958763816467923495892586883704630799793099764636342337716187622782344149739218952909929745867378859167525754158794624062132022223610956616271197469905646604069863708312902171329499619601345259508123928455756305353358262927447540065509611603537193344878711879376900887554005100872614254527143134393320041320096310004727811957969038953046563564497397669259873114416795794649451273986698636594006665801038152558560639519642044416942798073068547233532581161431934381901360999309635456006931078869898216255741439799322625936725880021541446802015503708908579615311799662202600615652691429170969041863490688729288679479897566264728047544147555001153809466292570271034572912142807385586465436760450026477592491125080004120957580215859190511901514483973771108711631301272347365834053008775275233424182465338490385286853463294192661589064090433022474182517344317942871495516483586793503818301372737203906582087439133191581566428749535010139212265206191697098438679300126966266923180416669435933155404970975125337016989793617873865199573933957707175461472818385382782804865743151630167378476636099985712506982247791944545751006066279307436197481689257295092947568711525384565921170366785735914766758956447289497516459959949454991808396841661947798343974480967512472396369671731319994970874145629996186061863061169384858458518642811681731569314575661630805847352040675994004378548707317059632518763040326467312039451711859946523041435604414533852266621888414727093067733219678922210768287512158168075373317833717940044770489721163467396822433141010379529411170448277490782541061757497264704149257169797783391765655040804457847716363482476243542462524128315975330466575806067230050961755707475345244829492458795181185624501224444790792610034065864132868481304579083589462829315929763590588026636319625239331320386223524802160025812022650287877368187326142523248312947836701324785800334454784674260728733802660591156511671653959792515338489974607487473453498976531833141682916364583210541114731535360809217715458403644749324876794291924944718533743798928210409983089347783219415595893719363079707205877788651914621803826101446700198433037159486315568286522503494246140846993670288366179152250630279452788853575685775531694742176081433418294571181033008206202952104670415943393289073614012658961151881573391132025812302189704147748935211421003309979152862142909840998910972382464579695458657059473774363823916932255775201502733837510657771058027867026806533122982358654240903133911385929714833617930474293023405878169235836070556985098696888376342330553538728169937642933609075058246071588892754017465012077936967668241837490297757383244128505349837460152411933562417893992004514100457612086610767336205929894988158710736192275452408161209672905422249314315315601957565494959690704137530652739992855130143314848843877241749851750608754773390624159904892524242981530489810398758750385652524229869214145820545054935075657449239343698231293962479027826104822318045047515875622240707023924815037278723257417073474939807613237037876873201434818260691361477703940877180765589856943124340651641494392478951330046565014095258182755335517241306500829190889382173315893201063944315492170052976002718764973987440843421186020265870903277991881606887219071201651394885015615333974497310997969800953932673686100393161906575564453425346548566966135589737446289147239598680522559502204404081887535380166972804469271335707704568901757974810334786088510022032926151669435895609248260446935675222613573379936880082411581587593855084455508437942299490799302058613243458086181123197682097566089016295692382389169342501455956227205545263080359248496015310764335441685036569798548690994922925750798930680572557086182674936493627165245518820228738206516008630065515338040466917487345285705310031174880628705231008290171055159706239775436781624988786265920588812567259310647586741378645296451422021782237722657352810682193635326118725536554437620409883747868148752177086999429418368784932142333476383592222592392593336359339721818540503704611117823862998028451019320485803396392368765308381348122215915619875004142262335295366341390114266803863379430363928612150573973094744880160523232204716892039168706362233211416607452264484551329845291123552257573374473222505723682895181866305770539542125019260711057654697179380647215250911699948547551514562341091862965427129837611574388351672519107185694417367312616689361546344349234093914588676545537550819492770391423905765143159776127898792512767686925766582782059767071839098905006655066454225226249627320811410438818759640340592295751686856781279359618302902370535997399839401418230803923832145851887879025818055910257251106233172010069388009794047139310690256676238112410477967257045983535295639645325721472974572954364527375051181362949972303967042765132428094199788948020907566589369619431243999588532470040397445725213756039175322963292562887213124997619422285337235846898104495007145552293111065019667359524591949554505739134629423289569457024847751498503413192748149722484325044754288450041054638803251662609284639023524131188804089572549720069806328772291464338721706952888830436022554186891839672675943453352972344326539247903318035306532326957623701630574693925635658815133639744753570793373484426075748094170893132941851709323065245792598997313115506789678702913229871631221469808882436461980241742679004227689337235655261628637224148149004181307420161963421070976999686801999784812430064956642569407870395097530117538994401900444958352965517512744149008705264801922239227626010027877153912430862351016868866465944045751867731631650557462750944129969543268003463116611949474106366595520080227343427058448600747088839235348992494259958234253627265732046896865307008840819157089520590466740813907192505378471057772117168461571947377404512836501905211006112860956844321490802928161947380776960934219489484696430626506958168851437168223905986724872493245639065062700888245248947971306710675252183241981328812857724760137108681004923363713412283909553224346340890478100919607325180441196463986005105629161258261392145720736285330612397685102445853782274384328714372824777132072609274562565804477841024111551990936327907442476035920435068123884955299979833739133850560337964827127918237512971917273257711854862352937800639917771137510253510649782723472926021332937958695187723089505078855394974814005066710333054615719369740463182328416391734012265419060720717516464606823567837155343386169599524009366094766599869865574749027429871427886638529223105106628303216112373225879720727103893500374001779709334103255356616269078778742577801181680982882831837238691069982308662289442990980055535611327789940912500314711796306552606322467323094255616741002307421211559583870326340664658461623167557183417395461084583472385081654120492975129568005040816976516050830724459408452475432749078456221907192749768970101434218053962355614689254914189915487258244352522241604666004452713765874157090023631244108149331756485637396681519738795992072583286083349697327159563881707762586660879867609705842284401064543990130803967643000267966115279081929993977868817472404776124688863073835365255063809005560223828708636487254373393437498168365369193126591699706023774493133260992159128189637631498180289210688830410855252913562115067608489214075032468269068997459956366753793811622657262649858312422986608740277511051599973892123370506754318217990086654479255137415143744296713199255423345364075773280723371721291743605638587444877824248592203412338768889666716258592742181520959260787049675816099705288244850030361395113742174793103528609547647244878703961229837563732638964776697821154400339265239474104882642260194437196933068729432808132334635673312683729920142936864019577804567193523957074943389289204474862606500238433838226499740736409923596188272307977882468784793357558534393016141659037469596125002738503928888789638543039990239562294962318623247213185834940881481012391427151511975614701063424185585058565412620504931738159972188158154960087914095790796995776822261338448979693251076675379469497382788254817139478422659391339428523937764434972658849910004659603671182140972583825341890161094771651663388456097353553719107343687136883673947395999450647675659565079302782493509803953630372474523351786286763825063064176402435963456171392704515977972341211660158918562191501363539135926358397391767221706199578316107079488848595375356176644709429889454474759473021336978571251671594931762468724712872926073246550215559192382180993454977129273312840799341949325854857837387934732173318271124102086445542845196106679608485270160080952264760685220145483028742146343731038119768582333566525194943398753221348074780266571300944872193183670281873005252744668227631291762706709849550416308371762019231311119981509538641983919402066072736348953288610809966799041448118525277685881925726763558975749261823941246493366282874910197466448773897313014501371533739045220340487925102913312156044502432278456739249860359963346314619812775334016271893557212813782624873076276868667553001255450620831312741591151031565027110906465531281350826412571839139145181320502598409275603022216344038249386479268150399354316220943684826211491935857660553819060978737897442928017014371795895622749733151593585550047110555305773182712210269025334638791819180615270367801790888548673137308698599942020512924942104844450390135335477968195015991858189254736637744526984094311005736480920164819003797653951134009029202765676827399276609233571632998931123825881381256055941015539204205896603276090121325540168214667178456838094333869637470037667764640154790712218958723151849672454031825748492815950244776157112009575076885587379263156158202737944464321499910659302871851095902088445935030697847639229830704781458051507389275190762732010306740901478392518837304172651127715992995631109898992799676007567497284263742512281292158627454828512016078831913694398228111721581935010592434119671848716529015490435312200327067718971697957845000524576254779848101862430531778590161969701079632678265949548224461925227470161012817244923194142308423666411721715212666746139157774939036109043153382908672933832935441797055929181267892026036984506611947908283309667764622178107707405504703248255382708225320086127768001419347746505919719863100736533539080798180021479289958646829478844524063588333593339803872362730080787024595136776221770658948608531806991197392709798396262137338511454351961922250512690819595208864744969755061036256759851705480719538595985185978749725544789622789081463219106509764806275036796591642550487590896485104078211231462997497155633770155735188329995311914322971595969697270183806841173252304828437568889200418704357124515030605495090043648278765315628675393301901978842068370757914556443853666448107067370930998325994915435307918696606937957771291721375331172187993962206750567174100018543034597993158432797005321948566319529064022445390287270231730869277550044275463140943300597777991814512122493519587111502284940772054958080741909786834621015822640303886968824245781248840403955348061467519154995319509474301595854737037996717187927530220808029096296194285152916687956339807324756083832648597286849539574034189497263810240069377512193968934729706628263499849019827904336207517000413992727102508744950254422981956790133104889033749216442859201748291440188786972358866156889099453830252978018675586579084267748401229787346962345950183007567216179521581348444757327501893652708946809548342890077562219379780267107839658367833792021710200973521918229830257591341778563625898816122077017414229948025735875496872275595395366147135325398348898523402509519725774801363178979413569658774019892492645944023060534653212242741484854919193143450452238835841081117490227395466721194384532960906545320895577385327514086570822624680775461801872651929059993909770500493308121770362614802557684485460803501459031095596909454681890503362186938546733749105376935107520771704712394076193897267454077133135924248537251081571175434034718615500193234961205372787519151396403606593490945138728884010486895394437697814726273881388182132330147993827296036897234171973900390564657591422032337912830271627653098397954856934889304785532247985557113638315452605193160943891489686322920543731714020949777509893253105558232425234360011024093989621064964889718288675073822283168723537771340300020865855500673590257604642321121187089993697718574756204983218300183192599264774423587737257430521934294375616087088233795109275878353063639799233363377867454822377524676600905063877621783199928487338907131251200436719458176377730544043510274782157409021332120624817999676723677392846344442306934990234313706144298491409261226764272288245571818858382941087087272908707155541886212279843789792346466099086121989995003298900858412867264483447952148493979116551803670795803720004836614056788715470054550322552541839845041136563124766107291710957345050385039214754973753516744377346745339216065601873470820033795294920226408643947111917741158480095040613299530013693665135118290459337611889890369954339682522733023460184609494075052458776947810542131580149136422973292044884749131178343285727044535398668801924146677316125744432190630530563162544629814531154794301519139299901392088983883628703182611507862960043717152370025973256045571057134512880484410616996345609013034454296562133959017401955821474879666198722040946593975399757323783849753680055501006876475337335724879216944771061897403610720140512903225121476733775048597747383740666092070233653620026310968983352007153199000732971882484455975202306735011114449023632685179962470878983938912595915789286782125749128940116740180924457619500326645811952083600443233211238574106609322302053170823526783674450262986640412036193564953083375564104792881800871326398837146930304780646768067167676186126675812753834774982528185720592783229215158624900960969789511747331383313054941579669653261978416873656523969434861312739340849343339181304580456291861098500327106632005638359794479338458705524408039367085396276032454925829857778938078762562139243902698420285176510474103856998412772755766444604485016561877706883992222503136536368858474297759712064630960271387585236761329535942956180186996006831245703154746315974308438497654475466521612058796916776295638177622293565420852347211185737749750441875804155222539322509904355956530666393771445267272277853129924441230830206630899525575240617748168814316191319109612449254071830050970989414644395828905743990014782004357921056344780593518532550257168080339862550406230181392224390915447392704565227765086145454539072395304734560154936040341348248495460028254263383779407583194676470987196634456089273096791182372072581644744268674019036729924603867384022732333007795650395359477148464114247326581164403140110677176115609922828648447887973487082637470211609273391029298284557424520858833530516948195437324323888248721959869755374783082390670820740385858970458432753550318383220304474355519248770918200456994337125794905383100472449876569004724777851576920286578185531056086764789158723761898810600344961675518037794940616283300110334931390947882385526703315559029051164346559041171363441522985565754145150085709120241223421427462860293532800914275550428610735011527980941102369016624417051365414659358340135960902363058353034888346972351980125410737274347536989188277823641483752498591172742368264292863079593508772082414259268753330866751624827071255267861267951518747480868012859779761001795470996197389905930509317339416174447517387295338725190778307959282937011407732627829518607167181903493908661353959659399658844582351237269129501903770819146567844392715514667375508092804228768803769992309503475204344618190428286916339172459667705459669881605801736799845808489108500044586938235380951477838178976190878837340970061853999180595588171916253928986593028182891899214034415065522507003103378464862203000885022257635294931245330423954970466610216907580341975646155990467142240284694543611827845856530967758499386988025000147252536664909897402918287425148942922164827041439753120327859361446676522274705623056890044805666236008624188059717469934048606273341064832059711294396235388893821272868331599793198719800493149611298751790783368152123420100157944603506254043345812030938328170479129366079298335837950037886199064022393968971065940564625911371398407471660311189167751442934939452943583279380530429619853536845760545385457894626148258484081434513964673681113151010707115300515613979133562762180409529492595996170448211056892802764270749877298773808730981559276008432403413676227796006949095161239690032481409855385193863167688934657471590599807523403534377923002869546087460049120825455526638854553225517786293136344941014218279452784511765243889553988170039808215374416437573882188103887935771458267079846871154284575057970697536002748321237542849293198441006900123817155539949023244536359833664843786814368186013430685031519746065697054702551239467571565784011734449581064897865948112541026223740154826066013277218679180846049846431613460519506333557347455762911416923431247578948858585595854820648116221665820582176359335740298572330849679793158676794407707724304750397652688654976705904418834819640381979842772715524311788179382111204998951399093452588512086519157357361027227319218502155191781520461434415140563644624435346212124155546639143133352449950698989121352189527012868367744433608884661359398191285088749014950293407874658481689311017673060763816412643444356247352953693773390148611771556064680715347145802628630565056450308179009996556116082514852111190524392825946758172944968629967457895336661829711974677253580086204398565992544561798687258161454882889337685001472500554956560882948488796092667312445819250898332399410949170247026900638120882224527461507404385319576040970656374598013977505755844892000340874848581591753616713615809495626120292008807221560649742748860996297389731975191042429831700763465495757596740530490705016888504656014689539965662527345025517440844638487426809753761258410264987215162047245448732138758789754325034651084628694990198044819261988028492081269775653917849623534401953604533634593961314149227915260763072556925434731867603353784395998348975045440489215506782428976774011750004608153732779051492656636953301966633922738978068819824019579379016844109669869584498535225197542043115420256672014827685520500566930510897689422473367377455233289696211373990442812085840203689980896318397277021327821937477812939867005470922254560929699980147610129115088654088042055211826528736729737745894736401451292535459324823163379849315080212933537825486473269029267268396700332110738134204381706874985976019374676878899989689731071902110750038569502873398903629495742694376357367521555320783829004230563960628972436704730482780606524155594504811416507693398968082959469685511919519250549645269163719473346673769657541434096749777565146337327472640636114037724136043759204542507615852177750078330823506483927062644878586757531702894690619595184757884070778488804430166034719770942307863748191991345771866409642295361206502481966022362300736293792763888439289537774303319297297962906041609130413729061078821705285430553255302649082587535117522191264322120149876083026056023184897752432986668851162507881463540146155587372141095899228840058980209290034534069846828802436046389795072057218210965407978963283770464115927069302344495288487507794782005214685846579731290317237411675708340248959614766319959511622337685157495443165717033474551000809314594533455478117378032030456871337349352996006227741698564846453179423324294417154389499626510170442215123959177517143507876303927616814201065441819976393559349176837849109477854186172995330727693452261417156363320020124947994157932437745084754622887191232059153220543537266837297131052489624466618533623370808887739139425715148030483150084480216026565834700266807994213976932360709699284811665854823914543630699405855647559011560393171496915239456751733492816598768485677564743165177192267001920177728419846280272304263732624365287635686733004734762215281887444042678531430089029036383246766175654063183992677203652698839247884670782935023965485240667999078226609331419379343897001162457654542624855981373166235711223166299557867784117216982162387256987837361437456502442248670846545174131119320026287779482751698361638321415134936145450229372847075044697774887394752806033859334440041210191958424126025184039394405946316260030301721311924188719138284082975925633040536685551863436949468066547845971625827880496332985377526512265759254574441033791760266806960535787741551492409424343253539850793216542586409396388061670799473510635189775680981375246772540266392297673024625015998432631734461110239346978010624621377730252704288187374161024904000007751910936269669906212175693757653060642936640049034996281542086957599288885884323066903086586451057324984155110282947435122639156730369081658255995646969704184723049182398346551550967116830918264355896619308186010420701760727175811649643477177672857328741693546716175959810312189093243658384035897614328733368742238581795425111111898417089941644891001560098900459487483165565229429900769494929292328920543341103683493379231322021800356463679339763102514190402401300455320356439036324988305711853129909732408569469098981821731073291862698007717777891336441882245283283211607254448673997574366548863758263917153916928073204186665910433877322389964742892734444924729731557033332060173171570689801356806079834962782577606067775156084480007323991918942234023304477647138208634416982675244693363642218593205680170099926452709395866140304030975830571175493456021358857124683050696727603296846204682662295644144906357241370443917591884605645236572243860374855997255617952515503960351523095630055389806919357915890679903709592621337525036216844537143528640272146759541099904303648159908118890407745290722118329414168262485904472744710145748390883567385587239883302455444584200224325110596268424046675250411999304513656448882317838309175157243456111180910779986866629748370836485570652068744625674144299250837087985021375764071400908852350770450792781216194575886337907644549504630821637203019653070502314517475944132819562884946469281730410180864991872365978156353670495046977506960122392030814632701512108635853854734701139174146094731936344712884095419485676249572453718257938784606527567853711162558049139220305951479774409464258802340413101789660974383866782519860316669483983885339908295191974705343132292857075204144483428762804007195175673878337652314793273808342527099539244589662774307254747541956250909716340410556860604007117987946101671627863445236349079800747501064586815588515947608755197104171679521105471291887007046168104447862408482632076831740863123635709188661611144982697269943504365390069614638007787304719860643671908056623833103179832899622078100795159430229987017582256929421962805205498351324404178064494787963486712022716546304597399795936958149992561238431416608169311935264965764614800804806166587445956039723780253723524212580998377873491579664222349192243814205666139719973469431895665049729227698890713287410474439667412649296287464125622251103167483641267626149157873190780499246985451255947875144999457302398253826503992948896895315295746908920883067386012676481057204034220208234682227193127472523384342005828045676029159155990467399924093822802735621700064251904468859776833676861816068695648647987299519582747177351363607694098209940499964157027971172141879351012012051322679809052917489726751000915576565731180705103447979356518331375022617155628035571815350295526350227968615750956381107321491563163244215345803383817193334696532736891830157304144270150796567907939143661827502658817243860602883453024284004563173646612745350513821555820378446029232101520112797908049049689557525344171968975106231240647071951744281234325032262013774614252970082526440879079882135302103193836018986528139103457102762704756190227781697291335416939710380463983385880470755399891732247678265520218609031772254655022012470750069565337190437176156343325070163306617221682437316513965092732909185464271999231329262999136939591868159190915127596174439098907399366194031082159661099839232805324126429795467483299182706551363898457047800484629601694444070114315656976728770857435871040817994467311915336965576225391306000799610791661408192958865779966557322279254072155947387028233919548586737747911550167931620519212209805764129284565633896520534458697516815479734924932180086777447156230303401316673140076352041549025602424453015052080908334333366721247446844360848101199211178646495828810381873390495679480763103483016221343408782174024719612959478190563245235792649246641256448846641536498115514088589278665745574249911785240336830505954735386760092202855587954043113302781466568628795900767048576200577320882484039038252480539904097272506911371951372729589149122393770084289772246466108139857446435062856386774236268906095050500831110728990662962780826913621451615632858808482059517448989713695119315281784493855065700800588125095338212348292481550130730356156202350731583196059244813944687593253244442698712860211221237217402080800858191768014805601918445322277693029733413049165561362310009601869672965812691755222638779189044580102844208809529621194314256971968380546252085438730248884578901833438169271160649145102969793353859012046644156434118176226939560769109722750893462524934107518601300785969523780975990532839201854829974897949232802820828001245606398277983673099253731317092438454258079905696161284207383271026079819976010737876673449750639690790898247646102609664933294118415367285896465997517528087125317632574999771640777071614588458877691343237088681567590247642063915556621201193359410248366415410493549118399619240255895972130295204754731036831115371561155594321838740444140649199606571646731249194305036332297208850749089359660682872417148282836914380220090061913981941922093602011769917025498017544669211017206858877781730631789147539692307827477187226408737653608357056225237849850180920079424913017614533401171516473008626504506512578277205553434236822853390200467887766222300006535957233109965859724997257899113890954243114450332330439239703468671097392790737787621563543381281807972120695114920903476043158127936240605490072233252632363948489175737291849709211643087086534334778706113594192549113984873071234532405374082219367308294584341806503351501811425051832997451675236017827629101808371463682192696248416399804957868769973123575963216992685853435368879019747087564217489839599029588852399880766056856907188881411157126177158797266907405260878140778478193586937292593987488888481778338067587646629879112112625119034133118152670645601188032716232232928375222715524290555722922269384207006872681656907252624862207979730944780905387805864478665478078061380617251708236693715376131914628220905836604199609411161340475430022520844981907258411764963452946338060811988817372364539264789908849021601629546805092549273552569961183390884043211923371337497711268418939150584716455479638170499215264628644605352304473451565047428688982924480386894278294136230732500723576244948398432995593701871715872431919824400367030613949414578259267149009180724025235852686131678581082081139150588493401757081194156050925743150856252812542645293590076359806303993326605984545087366577369730666398524541605349967769911184809437215777084593644532144644893288262488845595860923574061634055546172094981341357843760559859755196420477518030424188890747396504785683247734288865617410044663516707454748483620277390908305397022411704447036024729738948944409370472973215385888197319322396256670820295121825134979476752186389164498540007674860897791935973666396173512406808137621842553924460884658029919611579044504482621331051846145522824660323985558652757532704663956157949769977706287726148688805278573468072016447803813123149898846520638290872080857642873735465964341095942695166277145159570027598470580339743364708130959576783230554523614777606387701880922288666237037196750762618604825357371230627536430245623653652580276237898810656816910292632194637902235369216345411082841149179034614806608562981445188637239700112771288139239044954846963894259736548450087621872651787480540980710201609561904391375569306292544388779878632750861557348012813068505972670162696376976638156749631509609721121739836657764262256758059127644441687788482949943778807030879588762976144585264422195323836033190167411005821601345954324390369628292091219887326376648100430787935887338838774294569102054499389434665044579103806372782703779683337575278146671342326536769429783843919897521619538539754375908838004562864852294683224940759930964259001384171690188317328070883013689459091253682641072748942774466298385912630655758096990482342317261274060464598535669997344488706874636626787332210411755952692930462259619571473386512398805411739183412466636347666865501044423801267127236539565859109752092148032959935919565675064566643511495740870321602142583810658975109606817235815999682499013325814509586629665292567798822241754284059382698742130774260280800264446741962798766016529762572789308618382363117586161269009229465294999380634638409983305767960992957023875438314916504315719405505867356991584841023988129342776709719656306110922553015787224517186532646435909323163715753223019785807732426850276923921666058550567184776034324895908726205436896769971207867356180892436742008176501763355986787226500944569392154635516031677716497508154558009843096285406033859419176231481716381674370528893526745366566868753284637774350078509823073430006353121386447931690975935889935303478725698239586984786929409443100989038155241284122774492729080992060654135160697129920058774405435435491963634736640980372462381886708348173510211003493106937872764634029729415668412522703901152218195856489425182932192029590858813943414672919428996829679923467544145595964392557237198461052727939919571284447878992164627383255681632342732624992527531738122594428286073139942353775928126230867481436207875794061882688270035014786889425180636735537039467413505048754120537090378437011821163130122985989435692565950613075269872627623600065149544490055688802993509952178945571406594412723597981134229359032637757398530368385823761426679862078664391174516745933892915596264837921701477737368306652601566845947347502357280085239910914371726377389358804674451454004242748977803853125997145350277994886841827853857213151025646922841939907588485412147812787175335494630601909852587393123579138567556411856066436418052720582880868264902731796356990571621122652734415668196909567842441244677535077399539803933692660845924328847029265690374582237720776827693402781947290721332115906948875501515576597329453897860224532712020780099510643772156764629599066702757127854915082804893752932117431866698199687683096168373265078202630590282837095304164586498639093953377576142162728485319079108540344970185115209180583874949867119573992285130012879170031972351521592012924872529981664324614262371841720124509508177976021054237969320701644452323638919450789262853220759493537695295916253429952181707756502403727518004159898271598896869098976184976170715214390822739949446889381695603685223389282258816568294631180451183053608025264836497889223199248986505075995970038135895409553769674958977921657363405735797609397306106180972294675573676573647159410850462461734407840798782548116486670699966935773703807186167064199114769564787250893338984415945652266881385005081197632011058913355770014037301973248086446196904274215489454159989912783535950947280563371812685511613876151046090527314030393705332093770734237837502804096887746669355365498616512771100463319859919217207847655736999524975313304215622239088587038063448214178944420859013269624662827178025331663339031572368465869674251795209857858908492298340764619362471485574575429444797132224366740220369374544224122925313871855867298562881802399392617838885183554498034235983519053924033682992784111382734186605606188038713398425088242471354830881034852011711665948264217925240824831618420196358585438429110387736101565470406967961411528636136269168481709163555317834614434137098674986001838581753871923946834815159954127984410039311634754233967223360123407999361868575383413731314733420774724456247296103380973675379908794536005106227454941818908039308003932207614805785097604926975638364206421025709465309035560416811085427395845307592708825580998607429078252936388504137731766981822382742482790733595514611633682772854487281671938080253651463541418759005109723990108492747191972515905253250809211851620201993167633931276544768170818186705008399049358509490020485000295165619368715486294562306589170333736123809913802023894429894890363487992257733241971074413416247176800220084385538908469469561144874824615880694675891845987152143392367275481653561867814231111098237738383690470415737647498134778858400633169109961007649039563570281673232450110993459542032087662966049773262698933083389154065001936853685836253070697584346242747121414876421347580328212505220501689020093235597076154291837063942527864310711595237440217217782821549156431518908618413134487979709850523338945719734089524705773232438184668221250846625456637340967517010492793722846765178120720213824754580185028006036970729071074454077028392040805821559588223082804569013010967780039115613794409604911911616952915626375882144710446426364290016456400794009743645595822487848860830197727845175364759682332091221301643313975152030351506699645263280422812985003794949121351342052827515636098763556365332228256110158479928794693528501907156440164595294854839690159682464358904408995426932114478801366092362351384939313210303767219567941961501953213024806754401296928747246390851703632951943490512429934393935186548242160777473331048929030045372045662158859088381943903184456473153099952354019666646904422616916241143124185876692122314789791427241712395316766880426294200938814276253341520715182161336843454613835117096624090081074402927028922692159490065501985096812724178241108462706290812851909083588311867029193297486363334765581759515060462283083659524352303855866275973719925830780381920924973967345044284749479612359366205233433972329824027830944186074640312443830787858735174902457853095524480425503655818796345069569505597134984449404463610060170236494958153852734718040445059940705460652167915156528486302756956663409343438043536763935376918420334875980671329095129717781231566146805040486779682945064805763278128285184871414257525466786227943474008322630529277226676115807187962961759930664147988954891629210414772557900437583098613318767693215246448042025035682571445825781853489647470156583579309518700926120436212727921288725816859875841241684933129858124996444903605650779815773928798502515356708712271580456931353986999005949894045552146958145961405488912045414937492776659116898054929967991451333710661858631375213670324045003328107184260846493032243600738817111653532599038757452283845730402625592824395749147766386723057806770727051042299476086565686805745246297559670947263801446635691455142693517960444726400006767209680617231419942296649788303371613730666453336584709271544566111654249185377161743956728781029225132696784742612430035615909679970408548354019857228660094475625492468955749078555438819611009102530074726448670811097812430132127049123349603934099789937555725231710078533291562941639392440732336551734938382449977624948041653231327812269360323775557701653532774569251987045060440734540909737089729241510724925127449835358474918119586475606354780996998178773341975224732193096211753848095792487410017421964342787527373871086369603309386710244267915010327631171871316638729351228292594219604418610527782541941808808328582439726446368881472448575051512779870057215916235855701696397723524002898419964287309823598038041121818470155602537338292454125689435829465924791509511642483816738992686877165539358967805137411334618087487140397419470706910766400545168803699402875233582960592284242822572782236746508071802317448526436803505123329597149940314488164969286258098321196081960635448585202027526738193485061431325814440303206056157985247673229685652357518204635125727307399154010584646458480052160282808040197767043822375291153612477138329863854605531669346436210771940018299510106735918795275317159804761067499666368881158108598597800482208573399060283082064059871435822833810749408359584588917078391178216353490996354429444365868626881062662995329766155589290227055749220702742102838875398531593631230651327470791792713980918449201486114521896614329417463387669651244410758881097977807722277285010997377939692284259037939837221682266728697980122133997583465811194539713030249463793618496475621184132768803551437807676692804582424901726145274233852628980982496498816623358905107532835911536761068005487887230561235029915022355590929452740960842057148321476196808452261181960954260338750831685299265625929712938105308746401813101506967745270653844919907823176141399697085021589286205809082917953438005138574287547638525421173739433513993584867957674445142492762460649802393714944986592289132526108227093488544159186489443670143005369701376065994568115747968146143337078439154912018102326994088597205011564924556096973968336278139883770483401749817896144356298839448788403284191672633005921168269954787329286216907882081884091821899768487495422663962657856054970897093135758328195831145866298141426148169527603287608426540449715900172926464653383022002284770181775355183408757235260737400033487421942874584516304600777743043027853734614320749494752326817373658629210394495555439499762373929047842766184469494670672265148383956823764711891621540077451590428770634785773054717804993137163925417183939640870887661676622974271908419068775745491023676743387885422631990419719901507799204414264184340989782237291490352467639577277723365282103827484430980331959436164728501017327302045275119756597624652769634407942407680135555639276499025950822868742661807581440792925452366509051510542096254552975785650454744435125696219452476127102860543424985352384865453285228235161357242087093131027622361243860625572837441431329229024053163417691158794625083125550600378154546084863750792466710270386207631613737506257569652823747923842075710558776397574131412933631974973541722342800727082078968850211370272852433495809808048558168001796988013599351270379061958961315513359462463613940707752963658376279220353338274176769377345116586925820093439142769011502290859527953633346842597682771350201363398658701909520913010169681730320291184225924470797577375011320697135859757198782259068485992614795650775899676035458580434959177547258105566333087891070582721276523238823948534326676592703802522720670415179455346648225400834965822579742932025707660854221693986588346210914327396196083409104864207490642928040317946749371617828183495937367992048777191864850747424073705513792011344723078556652352450403464466467748066472250331499796251867532098185218309050740187836313750363476081635548690958584307453225904042754634872334255530014040356876127897732872519323697826512447159232499721341881708661702077630667488691109937087254461328183441603443336075726558880678167316164832125258312298164242538459854539222314858249261652214016054023829459266997669762551126903595390918125456445242386173495087392241337103314165528876734909436424489836114119692289687689921778455105005223237973217690401235660186145280094130356384902108767265030235314315735289634043199670828062184490757151688737777416410892708851880080234442669813839091166881038440945856007262169190546647044557474104787015050868787199846942139859663442979232933626930199932399360282710177474656163535270077392772746925211904941916633139301922233898225052695521504832757618066453151672451380480619333018625125779948619607488972552314913143659880566008648403475028608233141573258008791993995775194103811346422085339609306005699169420616918561443739027686729719689511283259817476469912394300786089157644716843922662034881379719758235889648982485003979556087946693263455224766832895651168365280837200843218997872575605971697592855768624744486564289032584668951187394657386251452391670137443051640301103723810284659640423370683295022929181711394875693583403105896773775075701557150619353778543238945452326829122302838498725899411746523465621518523407856760282989234127108795884823890523669501513870707500505454733558853056244834795154823362886360272841070252643613783322880293381675200513134647367941972680428601507618402257561509603353187713566333640093534959586274462685001906987196434952045860173620146132625664994286561185421027559064737731937547551737370102197650500252278740075531196303112668275646335190640501744677955436752376601230028373836356626531441109819063393437562614729241545728520870337397115013539002720896496068664837812022521336953101285291455871714479399580473528646832261470387343465302294307814183114593832595779558568340596000413595118990907574637458858260719695018486016354444808259978320043332315433372109661438400517669485782304759273536700513876668419345348535477220516427699511958267910763759327229670264245537430535278061774355870909258599339630666787609637915025301887148364408596999519871617762293451086245889010857544121576497893597038739467534765050431288007288563924153338932931177758043359463360351695612825613455671738317806686059306377926711060072001450331809732718717996625749563191717762622859746723698509132078401655413427734664182703206915710711510364174852165276995589814115347623535578851664193298700439661391522123719322833718180818944245824734366370313553908013863348338868001581586909561116999246961067837308139460385406340458642589514148591471824712978688175596992760685308126284891949456275006781193315049601394489222930514698738716450020925823502910716855598942104367644496595851709386389765032111723989579406014059735819900478248522646394877666692427420645507397289892946565773931090753174385683963099375652987962807045447184282566928987526644432011630825340575835806524985525917562315940298679215918798216118327882932860154537816260042364791676405348379402602016209478134712770829719496718120131540660275984033233030689536955150404937790017407927796536629704830191142754461306723496377333269718649701468924410110645591310939694140336531834253589419075491594971102128439533841863361052565066659787956692620225745027974789913477147048586342161656115134261682033644620628186529519163674147400719586845598248250761837002922564580389605934968420911232472705974158873819810854082480625287960718894678460709694930791484758947775108919298551475809929924426396674369341082952780742156773085639813355082540029740971580810721049553016551219371435992227394303748899011035307815159257673758510343042454732823517088751319019185652505925602895028305245746171720017781615573794070460113960978453191435598334558443401256476136714123052127521072811036745796912170266176280421422716072529823181326447594904895375094783357734294205096183076442911479488638703197406586913844350548887526850413513695882743125789693405225743859389527133476728274916842579076111809772532633789433020260655520089023558436155798370162682325825564042909675745162709795412804510808977650023099274294112054374115255117038216145820031582629900188778326959285787249900992304065848187556591007258654160032072193728613828679750116372380742741340561504192133718184664349528693077851341817067269645627564135173400655067853540423505431063176244546268455935544986982526588165966909823602609473433650643499806261806361691184551419228908307275372557046420324499309402584982720810572073698352082837605443043771794455749634348969433629349386880768565283745754441656952736028238253039997047050800173511486123651739633069265895473622216969285776366252044622672347657402921848443753616908757949733934950205258826844441392037485678097436377972922450596179677034075644015720641588176763433873354014297212288666734125272424708119547866353510744157307029455012206394608804336676691936514392305341805742207735603204617836682948733620878369718436667856759558519164455540440455966944203107544480314778728356159944411252580394621364628428385319741838449425755855014789970372568098955683386853279326414703411732029686867170316072658115366200653317396159205657694572765561535705516259703888209000019365535120382117114881745983624577430824106690408150738599443314564673441377851812323981440252150234530849425481161061637324188245704261954160400370455246534798846487085415443964903034680302452446565485234204543324402872456270106241296539132323780154071718139832259691836314666852780079101455951915490933428254204676483824446033622345926881321031588816391205602721457521830050607034150249092635716606798895531781559597997568565517774685349821170602626051003795715637938106393197474701100688405259486435975860530810624639649786642589215963908412151039553999844213750219229821825659128854448361347114015122899268764682631236124406806171163847335482348524052052247012763614275111376409485650002359397153965280616027485713526456636182705372464037024661552332324699209783672697303973426713323126311937736726850480373808834719956697757904499019542492357663083235699808164557365605003680269254757933810195545027061547528443079286059666579155447404970279776262972193857292161619146683375447101514086318745845575601712423452563174422273583748989604216005094271082377862104037482153607920086115434772994791879244021691116275346439224843441246152221987843836082260588430664383856994101141867808932703214699249521416874948004769346257802145804352369381604898894186166196743230365342629670040078288288265647310080289080895451940805934723515110059672871947178739441682542670158017521706562688906194769364722568109023389447049839463444123456197782073062605058001001413377660496010911189190289743542538167722613832092072173769279548243618954498683307426541583669309135801825283761766536079784133330727124313807702717354222155765900708952341730870000913408023132267067835908222797617173671133394585712000729307401210667954711993141349262223443937882368437594978749910971633054334214809071156587672292557955800256536497748449955561099266532994026240123122332717931521196011461253591198446159503187172483674976138426251119949314411694992049996524454654190002551259251892108193233859664038715954930259932369637757380704075574514651612144127389338374737849094297255330626486349297016739240926572171251182883432259639517668086769341018817579954648926203119723580370065958371793237653178216986796039973708854909261808854617375081478490591291050489697490303192450033241739447521599610710039750843686195171892637740464314808098645740373951672939870375171771073589798356068602449331768406413241439170249688540348092433116626779921978851956899484505278190650615916945353773747954609506764250048059303264612005343915465750526329954778520207879370238923500435473628131128467438103144362276687444900424512547883365823430972247410452827574193093765616428186189849218562899627902845090719383884591879522481114330206991050985007906607975969262385712817588876064354666097271774316441461056970182293445318511152519835990785068196989697989345443297195113351915529221923024990972064466889134850845723519258476280905191887657275296677185442500176919690656867063951939610923336732198333532406967758867803036278962361472909679229518651551169364182183308174308413747665955743479559190012128189345894143690739530532739895986670155194515648477807624444761087689956026885609890174144572248515896299041143884714456067184413270888124644291818962059821613468619126340183330211692410833823731873428533382628556632273476186355845013977778557297618739488598877824837541779709347702525703522423511232993639860868007697562406270189426805869076920218413630512267271731216731795953716945930914100362995706055481721249654156498918903028563500682349524438823231794244848062131850043597539737141427843798259350915933233551075694759245191436651650399678559096831129772750188518591010327554567698405882093872503905492078111311541788085476564468006214043266840882227236704339788003957027499031877348313076763674429294144190583500432672688178730701819872261311673346784709900401168559545272785176995706267836120276700871974799892151834011956913846941253367863629642772821931222827010481124183331957113444074016486677118479672165950775192864697228261925177373782144740257226530118812143567101493510643025557398427449367093168194923134953806730420385952018521948403964137499608296044299886392819657723983705200132993792883589376856785513121470873079281192575742921015821617540177779492746695418156902458602075811629710045280745527730189858997173651911719981724230471233489373103230945705626480682873794103170068642753339765305257232536950042772864444069197702481760776254822323829207535169013178226816610838763382639569076145779779441655954285458940203991851178022066184235127841493197520072554354741338382732365862288591685194550358433592054910122608889836114255592438063495417352424754320993564803414044180981068180462813671081245401054151279913274800210699667195630964029427322708077253681318101710465561296884052479984979260988158977021367133742120952166793984741477484295446201578667012263317827134614007310766998678102416519094110169229626643249274631807121858260320018805258692700784362485141873819378496238938443681444176349924461397935767502717924332003064752455669086155193318952936200191155130725702175042169530017833901262138465465457661976097520184187651335676238033445176975246359406742845864315122609810186236749337287551740938098533702803798439728059094012347763354521241166429101269130413068633390109260002990073969138324910265694126945410107261884832489729635413556270923481892605367465139875121038071283374266864003905441959073474549238588425511488539102602182807881162990668274732167161443219045650401670193092854832046153957299051558563669200384242546840243582298951671155162021631560225963801124260827828594489364258458028370051206973636170303012249419534204676900622361461370035621625362364963695572904161612108767317122780370758040294536938587849860058128852460922006272323525650781854962001260170703092587613784528251658655632643625364327814681550423051907217866863974079221678649261533016630881283783190570905536337511852286258492150462403465794322467586365502202045776382097240553628090696976036896178372550921119467205700654106652286175654036749021932900007151496214260013091238027956230175762544351102856177362911855918965484430211790251686371053542820081796744465727270060958236411536523446861718869677426866842808040160634863706634568098799466936574267193291019046381027227864932837426383558491225987958814301519662880999859586318712681999693885179330368302154893757044274374194239488412641062955603859291699698448466155211779879915522613441473358248478332125707282477394487799249805420638033139876730643023022393022188966229462229980472765446418581210166032536600963148721781553605580623726465731176147996045153740722362348098362635803370501821499489310545720657458340103405818533494381310830614075048860467555388026468797500952697850171512068231699940464742320542770608513408911594022729320923303514085857558222771202482798287040060114935458541456514872469711803928707239004812409237272438043454982877091730732039589098470454505144546648057463929966475257099146199068744058322553666471468892006675273934311838149920950262929276340306326142669736009574390068842797362241799370032697540409259572087023143036866856274492228597073974891421850473085290525973934504975342405005171580396713632271360822757701440494584275383491294493260439766857986195709881356634904410697170938152392717522751630968756793976266312826526261730411865963939765676985572291889492488672091760240588725649512060139114711803765462208204377565208913350760316199401253863716367144465507031128362530460082351381055777652720611281110037999272215010641464400645961724400688137131581307968639732720258649356502714128970380764274956832906329181709426486978209389697375755456661975216880238243059983926327136249645192890407409151670396476362337007925221003748284967722742488651964190816674478737131789284661388112814332970231311617152481245421419997017298592096543638203339348899581452548473454911183630710347013642004541335291948238637647815258152478645368318288012500782096688707782802479923897647288617053796483513421316964330609357734589274047023440070845665720039176999721540051258980999872129168134312859284255924632787571143663546815375622681893782829132746821933100076752322618556184888053492464444822342146988073739876182887290598267534586548935302058986665954386476157328182728780402845094010951160312244879257017388221620753614216567922078904923759561943994575979678534578368989357847950522201792554631958370520025288778175997000536919821380019648724121679882166168716014443477300878567581244097125355584914976909533960845747343191768038465885842508299867358516752710638944178605404375955745378275693204048678141560905285949840270513121739683737684086771213880854927148498248667103737880025444422622782875867700062074658171899478468201351949019685926004428777685662230778997091512355250201316357171808734239531904005415731615158565482762376982506329891057033503870396218887776278190057356541693200020666317161209700013816806513010088814516279664659078753706424320593785803616127346079718072495505191069442774049106325589288352484093946440620409961438460858020245403305233307344515140127794509267151414314888265901119198253162147237491117659087521956731062858954336031033061292576197077475083070368582998683189877158803596038622484689052851560425980140351008417463287793051483571674756005682792181687080206735696562107947258616076549140064326358286527901529604411506952325454868569970600313860282146777815403678183660693602019531442377047507140149895207677199412137458873008678185698195633092252135112480692926027589041537927859559177479883996790281181509777288518760121363859560713841767162655933013928054881502886057982729008118637489560159210688956930343942381012851509462315726439733264283431917921487882191734042628586402150349833878307350156039553986399656804152201658588790322965830717063833627895913603874125209291113941734429296526958177239578496125720352456967904267837453390301867176583752809879867702564197651108955111609975194628006098386642558917325873387114796825763525647184982841667809256457120053340119214086268110721885106404959635616386011793771879252236428638331087603802050942369706982701946743006271202750832615135291658599148670841410860049348394075861240299127637559140837151443524711672006061508868726746112370186640465909932403657242530560854039415257279296339402448427753705256802436046669877854869287429372115098883037246619309969569789713504720463931242285067441866293492139267305501085097586701193939406844078645624072508201252176206399647494816677825802253109437838187942323951436809753604666771556437887825446746850581185463589344921919979892552271131279727859386330385604081142150470765366409895226057581632776391846908960531822385568360744678305709900898472886539643561480530517183265899656540826462604868849695585170337628956895133260747658750730184055017520121718434033033409798178844729949186964388464883004823096384013200816202476683659638606486641464915630637786910206865405793554488065005555958966623592570576805416375569097577264095624044651761927165297129467319344546258939257477709727125672684789103871100013607066086825400812773934634436426915869900066841073227363497771530828697567394422445818006574346467550363481307147618543280797439416402790214739734077186898170055355288554190091812207411054120844467315948815785115329036507604844889860805789208787064234248231425795932848230562424282776102943125379935354128482321644623007566786581066148279831906325280970672411325247809761953369289406317359691892104922666101303707057848039162146706045517782100908884686414004375233738267900016727403274678327867593220704783081569240986794398740823327877001506907718738636106270459721205766456026418398643934634633538745210320797098727394826763600917927688598360976164885877109941117173087491896651360347138207034991961979318396522365827440955113845026634515549059867984052987268704990663942281771286807546021732447776042921585536972607397398634212192152334481876107093255833787156738230274448977199705853679238431442973237711702724923241354151034309381352807026484802492888782377538709868246610391660931209460755483484993066453807933238862517809556003519070407044574816384248187419999851664580302552496781122880070327184013314173240615878039048040140878317584923191798764911723033417759462202914540999296162822983619411598346226029179779701383942123687571897051960782546522835225163764243726022860553001442785954493500849098498420054528442208491786129126154495754281074348088186915021038228840424464688118348914259251944500338346680670655471231989175386846634653258345198672053153253677278812827106306192117068299674150275644635966057437085398335924699367010146641536312242222544090834667184633882045719893665159689449266922195173870194414527948710624982000272596739571497995475647848217930467609628450685799064705035207135910205559636839875217410639832237159619078973935920832480418174686865130292199083266128051201100123812211959904414265805549510840255084371996856095393582228415365610248611479047729051574372531778540872290117934224622472068333665747622631717447337458476570680717299949829390272306758222720447637055827357831508561454882848022562786198088616946551066069304897200550338968653355814754333328907801189894261084344099605156551746837033559677910142242241463810172421227888308876258395352856474677924902624579416679192686616337245553448101102667281917450190507031272418165701054161151238235800387288218831682488122445041995897286991179653956386911385367215413858180008317967011805378516928459157372956294633717708307797540922992728451300307384509765688561073542180814905301587585567657480618260540255269208870777261358588390151301026903695600122231421624541620586979222412642895970817066403714468815446781862335196451153693187552784255692612737629890413310744314541924224324890860741188334006373659190367901809601100439806124456136802115705642372714627542759947548702857941596054292857970392351712037640964364659283560237396586804645740350674379456110857388365715815192277383310424956014060622014413696989054033970867296169240776533091529870571666046669975651387331537155673880637402554094919595967205626879176990481381524216038306988634439434633906511135801813138783409820331069069583428681858010930967139521206241648436511082350630288551154564991864651594554958125225080953794511794971231073446784337398558165732887672431714651436356985883524751073662966269864825150049172447031289298416307848201061511546912973769444876865126189397129453961151812000500046648462607317239181607565541781575325613276769129986125428435826505061256277372884599597872740271079656454682875572937765170114261804170433198007229191308999861772610590493869161139328248176024929196555969225674316872216949961357750785201220949429646617483222256998340718934124839211025161199366590346304284780153066300657141096216166976548014809899728346436834642770845117196740066113120551392762814990319168033319264709242998264967990658687837296853532742888090516988647404419182470609338515343564404136105954448031915055984112951785336393779846755003550725161829553482289174725373382718027003467409906000039208380846491224669512427228301757513707082968549605212211290750681295728184942029761872455554886008476134260436638027106057798362069090215462690737750812966925176612211872739685844677733402797802918662032098528441860971914333216109559421313762386709719945724656123550116013476614376728734362165018804784504923168216492523251931852428461897029101539923689307622593269461629841553378459932805430344870940055124736121290656383912180520152280924435099089742746797875957945779668762435345383255987791753680256332727747457568679172916334170371981118923079853707971606442444116538696177278374178367818593397397871266963796965278218769035294009433610596033148446899043142827964951610519365477721705741995982539681332622924155185203602171147668456243460299996270690911729898540185864102255635094221972413863556833305944723883248532706519712876555561566951718315902910646036397721959756716729093732996117603747563096713125977051734799054572681665391054872419154927140351072079140358042918453406068132785878372784220581369781407439170526250272404119495842072661713541268033625188716075558345057726594725232208891966197094239920039277341034504338760393776324269802184767447372616103009185576889818880957672848351736553972718910073031306870084151119973327924200660947827811756478991012988869462679910097376669242885062921961285014207337026173111886318548563482095944816630695799835430591407294583607133022837974861440896134011278869715268862476887706784306266335759244721069728676488569315821998258634404095304657664553103178197734741219801459596512070192501381371258772283947302864895919342928375391714933744566740685184797069392790243712965329881225300150465984375605798226211150121957228350982375483059311322410705753660322816729383745185784313211413329534322007019217213216488778252313929244880161258340121217407632976662844677558580898104000562876024254865511152989343861707989750397477667190226491872576239245129661094501284642420052482558565841440338883236543268235369714065664663782814112044948839442447596148642779627995895694598008275122220356861854752563664658427364780340035755265150672813189225509591250433869500900982128490905488172340457410380647254576470592862847554892286005937073350519882453952195085798518992402778561363231515678334945372326197729604025873389080426687556908235389423233825052484539575511568331580857801777070318813686195496922738872613933172636545087495520603021076862797738359337545836334308827646542721867540869891980444310638091279815302444905516133615637974989691210389842609669730830781059155722661220681987154897486278730026340721922294967024952582663475975173793284253830958352360552906091403868166305230699908568559784863940975568689618060660493795948167792075835083100963377557981894078755218087467685135596715616569509504338136978544892248958248517240460298862994869458734137924371616742456550006821471877754730237068123944105111563016209444584913276054950550686298779288739049380784830231963061581898705709500570874476584770612238098942193331610761429195229296798613258460168418436846385943971084565565844409377037764064042546419101280369553700008431752022182788486380582332178911129007701163554607557850483167153189629823670547397392063315029342307810299808883324494199990449257201441375838997979678031137655342532015153199086456665496822403547855317020641011625225914079914355841752747341646081099834095894246466960956737443570187259835322406805041931691617797678465329979777624977378005522445042896455324799368593270375577636129869258804667762066651014346783370150567582679149449428375097666803104536207454385203783773233623144288147188906465893905491241015748816964932506433089487807723707045086069981125579922927957139077186916901718029009833328631016199572447894728803738421713951663466153222253473857703857648999979101351646161842148040030814334970248958068996752987834100411860539313070541945254286723604725074478952585313570489924545066721837759718131483974740393608081910508134381488779255700167318998599624896516414786298128223981346668421067944401059232655016783563492197703490188465629377296951373166491919710278731205017602919355161963467725345637077296636382086991274615909955810625268946845346570005087285755533672887367250571383071672597723083565089340153989488156805026124372016930528383158052936552280929401189055761447751206245493264896141599503035646713863494715473042655355643066247926406483294000893623963034857177780915800135949517485142386299538823847797579146391709608877470203889422058738606798885751593731807586039007235072231146350032982028105028139163107463154119970469668331437816636480476495363537670197931809326446876717697784025665537766249131785485069793019251088619827472645786786647070136758888308706985575422472446107967725147853980030841227355939620170377285672703388235335752700751109945172147380812181011912752823576978940534628987981581260898287656833383122407745240191214174897932893970993336684961114743510783342680898484279465782776870755040535539952576499903391264570378977084388207947802186784638021547055816367651875152718243042704926215212036592034419813553179306145165418603278829533046419211274758260830443465726550363291817108866155712626605172817056766161831311117627450924767769290886279569203839431336925907581374422257105576479665436262158599838355530193142108512948943512294023425618846469511521153443592408793006094191639748019062682775753285139233549295944967455100486064295741850619287152309251713943291150948403318907404194389106501522813884635014001626268517684727016793347532154926480900276201079499698650911227889752741448535604972128179837042496240421196486695883469094760360160507132371585017942548694648609823081664675880719370694809752048208276114071689378360797389154999263959936534006076927147341282729889542436446217666545003957211329184381781550424758001154586987454657272313896479902430362352773265987363158767174892836038221933368918952595608750399317454721648556064329579776579693160312349855196539003418490392722954556738805185574188141504665767370912849913751844770597451654800917699771767159125598069656511153491245982130098584553018411579872433590655433528441529948267459064403855236548922393104741784987661254132696212638775075871996728233298299095704548121164972719744834099677656226753401956714560127873712247665719454879357096409418486007864331038947094546284579234905995466325171837836606250260078001694096899263613647090557110157254855606600485001502959335062208990639891017641215571378030140996142122131350828138471115569283343182653583877049150657020593478860796775100032982606861273878824828723850461528696506392227330665948433856242195953315580563467824798273151779431982213260812505588703017404995419905758644863405873548693014751629381001652376363569353579554682905143239730446442161902386341995984406114440550806387122404375330135968551690237292619037929026226555479295936960618823195770954196358842080742539862217421851755164298822096164457730239540821314497035566238569048737567528324070353393355061882603274004623246523113668918156845173739992576677337542569678778147176068296598145542220647915302463246709251213445560459113800366059982936385822286570506598189868534654149397175046205004803303653788369175546835898453890788519758260862186148774885175024903461202693043384351888576152598341170188954506203570441667544795621690146638093803987130423694152721698806674828982547774602294472953128982305219534193037885319946962363410038372140799710075079545041890044379204404781773956357512033320741090131887033408615670642885529556756844492165211452755078544243354160465846484943167263309208937068656254727429906314991442334955084971271102395810221012246469694459709517401414903415209448250490723001826413958969504270516950801035801698489026826336429811173405902116636074479462440021613341262241641844721371815709513514889602788938100536258385386984629147680763959163907779932034484134543726831147519285382694623945458634323617591066257150662183172806683776378500637165664196675335536619398711815256625355662019147586594945450281366903249180467605274939445286566557998314210243012233169951912578455170626533526304370515765607801037104092541760346159804094343502643677780028202138621074441196900372372255867816341010158134397073626137890249385033816481961534041057921627886787720255798443537666125892207674984732914974321984804260223382260656045834728235287090335247493201863302249825011876030117095453285510160159698362446069275512004169550398112174722144620537752222018449928655202022644208960364964849645143453074182235562393287242756709886550861474270212023972593434251640896437263157366198897353380148227759929762915795404685229074290931875899516561544716225137213208269942902824236963848596506837706364822730769961314113754681340239189836874005629441587178774747512315293142699823395951088731025366932665712844834198519972023951725021690721516508526050332404954019506019691876959166362391095412365347151306466845168250043256971113836812861314005680794303296658126382375833425044177614071074094955635863617094687219918892500524802019895544854772545886337577674921712678341053561539377156996139217644614788665934205926756899548192697402901365745799328802976033078669619876373561726200659108056317174323637192457825400063729503578450232666595877986645170015657432171582573054075624021413153675860334151870782635924278954978245626851892111169203950196673605391530438321157798117847837670464374444052562374263895838913732717119295250715620183155641709087600957773844179122960961996644312649485656058835130417451874840320031078442311776724992029059687867498902853934661301835375443531748098531488412497937939516826666484246143095619625562967780873579645207574736665394882487160217224753572769998648994945586893573967199141440590024091015952442867272433660668014360323809222787488628342734237837468075306753674119770834401448017236698200545192979259964878933860176699155309419395110710113992983551248539674658911193779385795069336247025106476291960492854973260606761304799222071638842455875786490248885503561245050220864635498546835014432279587817288808105914465606304042918029890979069233010226750866162876654439741898310131505943171588927753763181543184158770353771468568947950384156236535841442467936001406422355215373986748640850623256838365144723652038810597894464265280728856998967278680968041880409209130532368977989129884266469201550115746042629824396261390924645282007621620776665829528623742429640625534990518425082542010553868009965591473273217871095756179056558170594510627770337771913864630393018502374056504362173152867127942936472584613822895387519801629628268032072486866742511055858233454472752707708442073254931753641323263209965808651520417639652494511086173685154122878634808327360660059015676404586587567119482988888026091437777577986620176236924851223543708200231948512292356659669619995398492425686398683501279569559535005051203013111155237408009156147700854084630762930567169667992011405482830677946981775353437233065017137307530869333187611725421074593681005661786501098261374372265303455012046243410231244314734116425985212992434582484680259896207628210680256015409804566207265550558222638026083732380879813248790663677768197153337457099576219805265000148640146665839110143561175751393060633959338052040559028797018039609632047341577579468289729009803970148202968156566507695783245032088863192855046035945867247605492023143625603170780174044756450393404440522702159152791004397094241150435615987280318731968865230705906892369531379115562358648290045816024604250813166897409824016624441243010380067944609578963812286437590209719538488576579469680194162616732177736692886034422591464477122791653602320217248560038071273327062864745815951692714370271798917376731209806695378957593315284161823436483713411480273741069456318520101270756505342247544644500968420001956375406453644963388382988023970807284759265756623389249841949930463392222622602587901635215248383102640659679027728885418701810718771869382059369624365967872826920335766965159459644387943193680344100235168468425111818853611226119178735198076019418056201269837868837985115458808909616057449115790074708793333448859076369244163354689294709413140058466082915546184505204141669269853961205303320371998651563578431193010167422730367603714929287425381376713511718368471008020093926787874455264040886698546964341190681533509881700555822343693924867000914699611225315884190483414685563798293030457570441217808349198449032400220405938190427137289350692000230878283042612612373023053398119519381970791386879956101071606517936309952800204424678764366662084370597484898640329442582007720549331882840950204581353557439734969196340827685024390039008693424069057918805014044587887468401294850256931290637320770566022235850384497962587467614533901615104036512530188015589093871549224683368881820435652259574249527696649712430201049888486953206615990485790289494622631608994146553800360323814291123533343877712352256357793052232613230523049751848174225860680175155433049604978860762131151271498047844861271520576153300898008014810864324073610468678693308185448110834782615098314990565979209694563498147172982585636926514816218773829639145401158924360143087273948139012489055834430465811126329794121904114763193048743197825336081225123897337570656235230464129207096018387468085687984332083258323768797766497993979135172941131457632588812133247476046972648344953928646114644580331113799043829887851863789295357910264545354711318823609472991532768366907142536143476392475904958729750340349720145302437711906221798284450293779325223294168938796373379648631077125057582010472505555457528298207525263399280228337940044009851878349788613436906618954142886611343123107389716125753908385417708658976966976495793393822912989877764166808542151940277387490805423681436298142459770717389856748946963734351454673539430325079173490086602172029928421394853905771818856964475875713307106458961188242795231618346881294432946601230776994344775399886244499032107416298333874875999021508624372229617190487771899913953540793377035261220761278076790059091159935792617736247060342620271111103708183039804479102076981209837361693535349763768971412358049573482516198069272191214627267726544255506098899800210129278546573100640530755955885584232751853002533902131816746514430411705072883277719335616889907003993602347528973629442096719466129673753705720626231439105594685867194002078957941818433152004829774155373030680083685830325774425143449961205250193869451315505260268976116959302050032140717172286961335766620833689228851342525827346022205029654591537232196934096266548912532676608392454485173808542423692743532769112094236212111136394994514470248772984920002439572146966676505008922445949613602612320803223354948458736389595696236545806556856285454641619531982886951215999455677258897009927835275195869506615986126050327919091800160810552950612253893748551628439781087826612127032195276366017469686550904240076419172595561282207381978361237519514978967810284768726925650843158359831076065866845966231080793962256878676225785198409616861822586858099171248574386377641209879455799251825265349830915869225472601077122632349265712532724790257413721039805620796725395806976771480804618004016709612376853867497760892654075213065274245112078710754020004090666786456908312467502382234531812727498395383053019752825587405628887400916562540684808377791517511677306669911826654734857710048789756959195360218820899326321490958132832186014713515979724873392843713511399519234046643566752604985126386026785589703608308791990854892349826415063444345119290428426452150950296340807144257448051714540176878400918431527564122335845282879486928333974331060987475764813983386632860271312816203847842924998773016137037701892822282750340746812879705374137053145128541503906816246103124962021329579707474046512179518339108288906435999163056208231708497533385305922068150738274544316980661178074306651089677870822531098635419587597666344311446980881341880663317803283361998584853851200031763103065770943629267572953135353430964031045754664125663209084378795083750585127928168119393172718050076565989547842410989581269548832320081920735392585211644557818362481027717664700137580732891414014853546746717459953736051015948023691392393464045630629363278637769669688799245217925222821915459393166782679587992216657148654054559136171958624058200133770903096309569651532033280456605277382913369499940176203344663130868300754542629899777773101045156491374463859927106607286453357436192499430302390663817329258428409202801368067965994397914637438612795458108056866483341893873042018152701802441911839322601045259255858226514102218695230326511546846104785326000311570928956413079294219212425314007684755469901145645566580266755933049251453945996272664900877832872524410499182099647244229730084769986728000014164398339017252875842001990975411372979687654642548535514808720499367426897687121168261421390938134062875500942322543878712151004979451896963723185997073586434420050572950721239134757689577221894075492777611813762868793456402888021617304736793904547787392358619517898468542392522104120409354220492456340407843820932303340552160074208027334336018036623478359104885086481875283774442783167797698441945691168768794317765515602818013769473147880899074844828390175016870761552318344802675761495039817336245455111708268818368883003696690009460892167325701739546752100031074701226264820237521302348594263966678189645924295659157677561431978664602858205461497592265322923239661821071176400491522228160799296417578690163738377647434720481600587455043900021761601821769901982151594990685795445914134862563790090090763846202606661856574298128596322749242684417524403996307833550163678715619250334855889247519339472730245323801110818344358891117485325874490804140560250352485396998153955322056370137913811340830424398340192235739755137756996379061257231311338163672294483901737129621858453891996647685022976486877970755571545103609849951648091623760084723702450673990560267460684087121404294748815659975014509595808435155896353277111989875791890870955850430403307047236320579215275474227597539042055571819089893599871797333382766981751247075401744611079134919610869270917086332662919663643018391456468828672832192181370733346407105734912446955425611452432743099781107869486151604373295693709041471629472500587146358760429987247443065724491194568016645384989954453025372950951534326688478815886751093460926224043900512759987482709799860917557631668893075371965723100436558641673004339707841874693934803554547094640081992261470215938812620316682531477354105103964514397814400194518070464787560083139938594595400602141284865777986882648541220682785118440950743740311524789252874483156474834893243275467646762365056799506243887711006504246287625304921565517120088619091127524901192177632559765936651889136078533293268729246803630526157241441946033629838453410252077825455360749710578435522708298968743055254475946622694210349783385295803093808263254166162589599048017070184112962688603248892563200138043347398701121410846988523282344833396712496718820702163771208318722619855240218865770590136646420652178371408815768076932315639488087087157936393512214459654942219228315723532420932208090290920070727553832887588172524778733697360593331417974143408790740451940670865729309597025548368018580757451760104310263719695468414523581726645288028553397588134224087980091094682278606779340026623336309457008951344094389961693866863021973924571334033849114467709295292865422028663353709322241629182767840784508817705318403062305523209103296132461600194742081935443505469703604126330561950725103232842624202839927051767025980774141559166695383520048795366983613257411268023210453563212532287095414651257521731345527052902917374805457563809065614064415306314031992994433223433650630221002753559162069449434387916166346289694403840870027904678729545613202786544188683292952246579780601398080823167464543324053077326150927808070403779592056390818846268313872386802948839819818292164735106563145706296929383434578179958442159394681011258337886893055818248607169570246741128446483553006069971289967089086772576896080429182916041436518353385911886625872889912578393956522881203438179217986214405777998678464914269933132319714805772064502053582746163344684488023393505241723104674772406656812349542581676165827502217733816801553570166928805552619081509041047631617482162168464839294382431720089166106117674608911744879258530349825220307078024587779224192443813225835340649121324029894106168919803589737037609097896535529102428250628348767114469513272309142696855806807333091708863047495580860728365840276711515069868950786500996704256692628050875697733928038744224504216856632054400687627449745170137278773673383821599830213583309725500691763672370740181464589779888348665489690147862731394856697717518862403832537699334628319895247780329593910430458349948842225190234474112428839210510342171898283874447272892068291616790188489723072382669324897614918346127140345094750497518989061620049531965077087360009382061838699257075445816049151155496316388160327722066201988948143128724959740493197147789025670545622601738579856341529007553209599255537835589130597047486960559554840106184639168004158069624590984548195288520184322483947759418912586578841332817496727342413021481368394865845953653898487106578386533265939761194215179107548137091862365721566441518333120393416591915490811451267076889057512685291098074232812374905691009315598173687961826910832626095198580551167058733609394821193128992485929558830239412643054144607319608050251991387171862163995756296696047969512634321727972643448828642781199610757857305938988699611839510150128407667549175767743341328868231073232775989946988708099390989495222069824282831617987398119649554855419626251790434679339716472301950487912981451028664099527458016621514515833942594414982254697763950204253428996299150486304217572125358420734676542072302787262551989211348949342616088684224751401189400689475400820191111105061290806947840116499536186766698811435828834885506933825548395401050427352375930827602752480384722504388215364048041747797454122142657383236126618970970022183704845707950439591614027576363798286596941999125350270303530378156453833733091217391512080414824294222354547166225022995708755769828042026522954264391086187663959419780176827331794669952981903420499269200581812162713922239294871269539680733915087041198468035577050097728141555272386277130941168735633364365640583696473783944896134053976668628198283184620284260039773334894309651432776204529895298792817789886923421923956778327106590779784898609855843876725114986894123097068788877871148266160979213056369661328802856538294115969801081228004810637211008388861475875965926598010357672647909521972888706776173863349188018054223288811136306563095973735558916685782797799755575994648565145380555146955650462789126757039565582761537911051325680792363334343873271329778749633918822726266427150779450329331953053737874884593286428066680619404416580147670611900997408987682751364243787001393197412209334206632647965741089134439734560745531225597536397826303699105397313096094998723116398077103303131339394623315882115680804299500134160565894075916714506823445863807705481566379801993975398792088523863930085871947142472701658075785760984446391356216652118908457075467630661509061319014610883205412588596378632888441635091077635146129486655642262674040615110523878096699538912231471853566183669800076594050599013107926468960905809409594494613792038370806478188828468314876877156828023104183954234129088756739786676249641518570360809928644595797450040222710402597832183700928657426747722798074610333900206828587507354588465181753928810934690017844358155130864257346543563066296089206046162259094920196223077416100372572970080034167318582566742600999154183185110922804504132789272033518168104348966094477713436044485197414183814739209552120804649078636077768114887426883241220694721780264019594494648690984738208752877621532794523425403168873763718497033955030838479651636851338033084019520091946307811779391858255455093624702196458109522048824066300394816641419837622448997286497556195679897087037600622865484382708737972384676138494090012946847242645021991123141813674122767312199163252007341518103113571558923404154063488166348916811633883878826843419742107268189509593314653459218216196656347196718351445941893907891411495415928976398282580132635242567672414159607876604116150084783626252137477278389463119444896976586315724317844736619322588070518440434622261375077832843926531904824935308095602421583222317433530971582518041981301204112347882323391557293231202758405193677044951809402733962644257694581555421445553471396471900398628312581161705697689247940268993270989280826825498048433495590699400088194059488808656775555238385395800464755934149958332561595135075506412638070421262004434978079795836062060772187653670418203724382341255531846798316392194989133738333893552411998667545695316231079450208338256933328629933849279173259561133718251407245734203614002117979095195362421133902443107318664322188586044435701599495484442384737862366287836203032660457803036468443349535646802232728951123169532826300506333618020294707596546810637440331382251521925025482596457399472875903397953261716905919325182704943916945429688070070278656732839493672273468752387504737900248331692613676802340041035875855276190938445543295380426028772417386309485481665955608737277724754042737163706477333599164002240969631046340908155455569022511394656418919658729143906542953785376877774026704763649217075159272338237137277805474256361638992285392460102181764956467523266336062259161101859686136799395882994513868624602957401300590032729101346828333607233714320614897586628889564277121190614443999672232203383364369198850963648560555817998521809336617244271181460082066382716968176835958568257135084633669243386031218809986619175882808265872015754605615118314976109802536234265435290396273914701834235452827490314206710767446711919882905428184685989237346208909562864809605855807025061171334822631282502443635831320286682829844277560051457187266990750894029759085516642411715155043768494398138189541298189386681006697726146434121637593447142890031756652909236420500829197183059338829585514502165307572187060739464996590933552518471925580744979780649821657764732997235468777892844077114180016859816938402341424480445289651940575862185139330823558733671179067903000222829637397203674990752079581329713503955068573138637986841685775957977762225834248601515726231864115700607540969926182010886408820238646210959937767076221987765872912209156694519289020498513170823821650574239031631580324291104630812585907141949655700552551927067682422063506824556176738934910462844720313994269525941726032508320396717673182748181831957960392768185850779918816923330301047663371580620093378239462474115452969163475380391963797114507832399765024915884108483851885090951976304184498483845855689323170445006137252174139065261695490459889499300051368980500092680790033344788507150816737463301247116619449355370004001037911846263203792615449583116992242874778730315442019582906476195498052526191297782593164273829867838617208388265231590176383174716462628907762795105336463536875852195691984292264547514943366257269477200054846067883348822865303986853755891605481169018430885658565555506152787470902215655465027621688408327978941961743616482372668650376076176403435927419068571093964610077123623866588816351775832176274243358870138266802403711906324391831153443827405086658353637488849370621534375797332990084543412359979938616023883730237495122103070799502094414484119167208528729611566092245256250153466446533994412447284601199937281829923423864400902230894877529145353819683407006011034134505151805493779383655111242797254314594612957521737311048053546663822379560878758689549227522528097284404161070291693082178322508279374923618512952935673029134516074923542839816779720253231609768318322108639799719276924717564110593649888304349393929637426288275877641928467504992757607369640685141715561327569150919057232153644738954269058548963907828546819194793115674146121954135640588363180159110834315833846321858256516702102024904380024446634508602542556459176003901601953795503217573646843979850367951029048162889352741261503476078968690769505839820820338277070841352891945581615619888805592522777710440631107386484866292059110182718707994928202067128791189019054180152139953271898225943998600646382374886451763175224504296231506090571246652306570001373883495547333898560535410834643222623409015596078100884382282701899986464889800781778874449590745929406580070979575567725222199759612749291476600365456227108676942996978511971853755557417227611769622616074568837737271111814119755760737357282206751181177076754139806412029436088315623646506776851986843272236780919158095872830601795244773778478462643777289256705253385344328123836391806837187539418258531254408456746185708005796403757344871461610210027340159782924129521603632847063780852123188986214812820034512527125172454362220463457652511116319942953955400183745844123613063642294023717807692439690211310866869097722820154421718798668851941446755967951133793742884700721254683200731384741938953608364430947737915130220480359213159532383837781642361248117471962082773577543796924549673293647264927969660832602948998626542081466751459720345044488407447224314522221634248150514438492044967732649720040820313491530910576643438807917331292855194557934838566349235483723741738051660702147015333395630673177473863362421951235519122613167031203713083021920851187184734743667570847150525012870074340336095410680179342530513096580955007803898103117416963824276569292704061725718278871829939005930630913762265244621272157470880359742285175048054398789720306274577597103985802888455803080525823711193588719531896879683034973238243420176620173584888556222325553856049589940436357860004494543811399072023005192907051533034762674425100215791147280366954178998692296375272667034502262316276547986619582047444934850945433282732810634468088460622445573866722005916498758943387669927618753561136455705436154246096588360595688970339767397562316813253484796366296290305448571921941595447335900348787809091802877157927362407904160753637637741624145794114669050852302595088765372099137858175733762280078309038556375301570218676445608441338595457998499864247459900229926309089781565827108060116798291957113961702260751554207384864721123912601807145832484670954899528533461284763215227645772410791454496441628465934645269698951873028824147927477701557326266534955019678308257027189411580585192208271540113490904848406835954284666984978330021335575936377836482877254202309080448678959557634126455029288797444620394543763808416696500662626027877487339878654610833347106869726524655307395588073564660630141759740360816385332029532071796673891941000395655826218474471315605923466264670577294430661118239019174087209957699511499638025038178464403019352606789572244321280778618383308098493090946827223391622478364422903004828894326034712945903957830491942390959157959769946717369025525365177643761231526938817549503804125904233463331643448369871717676756889933632783453914228375319028856342974417002926754074735278059894177503768097632415154630798869899958316865870737901208851400878466171105488124767950279255457039212538907989850732684699423809148049221804085460260629755594675143905669774630516454806722998549715734785994707361807309851841054777772668317840006162414080553918859300931153369098778279970564267708321441593216182440048358132460839880704069137316194561798032208552004121198339214586488500438373284913119255574999727225298665613056393080802806942997663579594220527253053430051811612981160119008368292605547833971396428916792541401151988254195878821614050273919259860057092948473906271751162007724084100536561127815763486946269303623383544590511925608782037976478133517325906309443271397951083437630798118115515844701127223686867998180400806528752104456013465498788718952844442843511339939230190453454720691237615247836604891990904302958083634984101804982096547344820012790015331584702104549897094548754624141901861184137860475648797085588621462244558204465860066162368400402178803836084143157973876719970562932549036461485637683442917007153881402827772948818986934915092836937395015373312274032301375659006181340476978973940670581132863211891111521564280991849332048061151743738180440864128499829289691806005900997596317603286779967462951238147040195879127582658711621879972005300217621739268428054547032795901891117105933484927856912536376592565636553945631355297652929470321349783958969168693671637943083258098442550249824551680530284884153067263879896722769983519697114611764189827368725422619499076209403443265666413814002204098730671407418894628951636477599318881279310948042146552088542453527895832196123994701025360012060193060604871043184081152833458605776989576982493862525435987758733886964750736842022805537037459120693213366148864687556532767999779913443881136549599056426492640189957168626247116971796162585132096439228627387504365712016269380371430630999213609461632089629090167962111317658807572471873678708023377822529819569269267554844237273295212755628394953510437886941029004890985153264608848685725262557238186848716654532698614495061787188894509846710915335982833050779806141377299789875667688460371930030002032598746521397260173483444994585110726562942978163616834854179767441518582329548478873369654954551007216529132306610499393290960190681714397777571887725479369778226024338666012918878652154033499953883353935463058116344472128371105065094115507404578401174025756436926313233667990130420222163294445272682983288427300314975125176558197659419543853888195510809882793671585172851252433731784176568703156813155174896285394198233581636172142889039356949367527834404160778681730902868650482112586792939127088583900778599897704806575607363210668916084396087094480688856229252904037905614545921339135271081114893059736563391488329954388754029726434370596654404699517131955452047712856255262173412363320135264373203545100731496436937525663102820922640419026891676931094798542182691098046847080385914254070905830347541643858555952337271075520205720692483341797572716608207112226300222132688311377024124612342608814973599574961942792375727294927140721880305844658870720005553394306185949557272184285418391648387304669665987981291590246248294073122561795188994922435198010624040007746479873448870115020038460196434699777994644798639749176673195512292209682593871159251618890567829775388164023537689562094435980324516063914718048073986595821528289635339464186029799553357866047411644436359363744326124402976639903416688828906713604523562361531034852918567477349430962622496831084357442171620797687443731665879029237805689050488240421241339850631196616255356877270253709486916932217955793406412288884559126058330112252218710552540028778439992090925238486765605850919301827237225353226792252000028231663360594927874047809104801006668077130687270170360896470705465514631360241996089507846852037102294355233272994772237700676550067282838933049314651684306684245862811205396274822286531119720418554313385912262966861661008465926018225390223696527621777888514678078735785626909421382361051793594622969861844787708373826901368910779394066704598573571685846499917777302957832430884732094079588006228718385181348064424633537193729783931005160151009103136520984398369194469833146549947753698705821587046773193358070514802295015911485418417679723725111609657395126368460685758493717226827964601148304567868970623965708443813796330004966128755581893124919788384039467358804286347709351688385373394702911794308222297445184485052046856353960673254044519663236636511509845656687104480342210640248401826770475171462848401948231098042086228287147266890630071416933600205679327605228971052104118402572652260849624075283262935169611423662873910962627350171874923995459320664227006472291793058728915007257072749708252773217204826352858765150515563536790422298617520373440016590373398006172260408007250387880341296545530046249576840381836234877862235355873804950718975815113797357226153472566807537770826495946140764922855008982492931501345122273095365472214587394969822586667265559290196678927377516513961485108009789505479138523558869956876530150177821556937959021161031390116659894303637661574663269417905626771263594637230800420724938467562186885234651807293797724350103238720433266333590861157407371282818874267283419226091608324219087429260954333958681311828878916443700866939172490982097804436920945535993734236490657793218026798903381942036198603297226421559243824462197910897249082530754169774331705419175941712757464677640157951362624815463701607629329332167614010604225302598857508670387904551492173098867177067565382826715346839744858696317811701432727830216258969095824973376232537374099270285467034099402073961883894063393974569460807677015167832981636438990168571512879444072434110574858350856047998474950062789136853183831172236669044652758425080962700424692226506952226566780516513974398458967555435557028248621750327784259621164679955820142644750322887814540563824933050528901646363401102171676120925593811478560971128713372633289255921753600258244397749755036097820058484131461009924391600201345624695305865977306178551874957815110389307066538276269544868161856086008948639120793226991126189162352401364360434631714780706107976779364056552934757644956753558836843892636455528639868032570212907245106355833078351731023635011729755620960299366103731336724374061883206946397873002250628844634999415315526538608979466801182236031067242891922295256208647244470900863978254032099512948807242507001708045258169187731462532064434843413118664407078072854963372516519029141599478402053805711174586725353161753219508707464756260323990429644542462798880925298158283865556223863004023751216958001766769058210803414948567693089716576243467545266729154708603326785565546357664175835505637357567307356184783654782247589397420745651991209546454490185964664512186835695972372924632640371116468262554292620103536636512692728228559329789027447124867108546466340225071212223046776157208688063148341234342558633941709708307078175696027736757968705831593936931082042482635006325284551081631858865316811194159041636113704025071747319964518843874612692337314343696543895416654551101886463601741385393742024461775721646179925036314085689768038133707279978393137615986809981832508654557039548616560706141734374376470907553608161893415650395913874283290870208189529511681114336526005365449027313476843911406616704223883236199177180272264977220940274797045640879351315965106768127941571073294784013791152191128942943953342350990574288062612783053010250561252179927898331534178208142240163085351181549811532066766540820941481184094342488704011868801579177136391612079794862558367325346596290086903534943956331299653199382756953094101695282210211080807900928529518112515240508682134033009539783423484475335944354597206480376865971515487233782671941610376715139413121780618053373411938705944844534551767223703004982061795692583453085225308274957798567169139259135060655638066862818215580959780899558107542075756120047601252867291410507184859168378098062268939175167336956560888513232909072989954476888043493105828230190709461054453397907135225041530950530451003308352254632364813301971050511772795568286248257008486331754313846054963783897298568485183338511020694807053502840097075825055065629550697289258267925481095604175138992322149236782407794523081761720429656790761348483797436136407159182631964901517372147502892541969305469016746462078487774133174920789123921142538809743184134197256361681076811836932579422372705936748680541869055740541071358280190011495404684586939527349977573506002590368668711021367642773093368181054291601926020209992475504606541462006429680084888998899911867204485797164075012614507377653664396831939752045386053802910599391859299081258819542431674843620224144025132500354446974438686121308449636903599663258059158636140920752138429415810153835090899952885151258116770204347142681323238877464226882601161180990240966185259740548938951835846276966599849726919891821700308703105395034892214084995842104233712914566507732416447695982894083329864027968454646250298853594425342222687199613448191907965738229331523371883971432288253666543198276100656780910612864785937689381786133745264449735415168009828615169461628941119358856297754747193284729646270569236858098811166639488307815075725093721891363339131035068841992678883177203291087922102917441494627883097625721692144030296540189706557125498944501164466304033295697731122405838984956703448509017056850619418969229936977555475908434913153696590177706745045580904182042281417682046561588380402195312764776804694536661102202298279375839987898993724015132943373487273133783451785618481097039796709702022417672182397630025347840177450379344596711111006633923297901000163518653319034803989739632338905885913360132186485289435234723606966458348870934760860875739412620358385011391206032249713490003555381419934341042710532178245325776035736082421718807007054286516962991727783480199638087249566797417578972494782905962181177220767762474695313416384653274478759636482676705516000840189658186451993520590214201183997738173537877704138022772843788432453669774185281267140229167154850572949925974912990860978002110982672503422931322330857220405922819825164173883845101064643968675263791269290997923983085700901652741689474109254560142527950443525209720705452420006785646862479265769270978328608890690196156930054777594989864513791436667895278459922917029486309576903732256295039973610809333693648519700478496285944577621123667644084412384647801254779224135005773646754917583153560970875523001972223730974072848874749947584759545303458765848890984920379769413928634362513234443708594871191969911978412078079099224097284583349281380645589366395705240605047474643792051886079506512255352453224915489337603627852605071195629075839898098779637973690288862389299057105274618485824727415306282100544825596366133937421297082464530494709040634755850412954349116990514928433683559661272286549144137575899970268529153097795555684884319917775721503159535361162521770811190878197155691230261602529545689943443292913577797367018172104442774715741843627316659013542457266184837058707242384113586531070118969772567731147076888025744863141741915545998959309574888243729185092668182212836623887557920570947868066555442119108851653639974667688336119354750673259171359564977758867312433703306202435540842917086407880579936557649577679922295507189982073478446660787571808280758923931523895749227837327364884284365188647399749416285833740328326922501038898435566491613175431999617179399597573753261139592414485822968765833294856317002824621303402493021056199769787960922658064857588426608168743198099817200560690409315012184167365797552277861279701952654365868320914841769839534083936018212299998020385634976810884347019735857684704801813412380698647757391191013720165098463868744093315765519988170086390531282740219928798757776191824642678614465409534000318427340666541118004571872435219289906211023033325340985485077878887325721288327948249869028793033068333731134406802878987233479615756867706754101591822376971470690210492837405120884945393858426599067917481396793249216668594919697899939377186731900453061672506085342549679451810369498958709633894022991514646202968999038522100938713586051969529299972548160804875375614372755879746114873949282342053883305397238966871133503691795278118670747716551915927378309242470812830365894263842427221663007651742659246992585708357570100220221113746850891789116804111299649405260752942859487485097355141106108370365925816842647192210968517645616603336911454198863894385052576153663813674460651877703001662428276419854936821236112344593064128796889940595901137304214948803168339138534453993427648495109927223619137174904076723787015494089382074523947133946933258508501909412990852288738027485594743434057490245126123936327769277686211756111637514083816824120436731735982271392587329072866549337568919007940021267140559075915531546936323069294374239063349448031620286175800783145727786956352952304862440843226124381659969626290880543744808363312742456869879811626474993920372836868414752459737076595444605131252505689631771044810077596846982342734709301595462699061657095349918754947638594062857360845857436634657834145969788593257883012101837158959759189405703487459575331157254952995048406040504750808861702198990151284364012842101831205124606717254409512626224857683194217630456818055455487620794336157136118387691008022829594166258015125802873121615073537702591503932164997970644092417276573839250028243089100085458311538328494947524517484396212579738950749706025890722443029687691778040747574703023476320010548724843933377548814475303761667309011366168718082428996326392783355285358957218618986645846466448952753054995573074960424444388553471709581627377080116237200685562308317827531027580591470653896364959371538368709930169895656628539558789980526050729218939425642869365358220978574627660901807176079113246754980794597107931170855140637165090208635984276628271861266739471245841120105600211507164205631665969933146245766270734402334184416954910037830664364751339155159230661718421831809046103902726408035807087645260483377163966408276810413462434382910245115868455535604070019338972551181563561780149508646333652916870236024931579727012054926062173827349164678514586367177246084934856453259006104996151490033520780141505334149971883630114189051869696971473552181643154533219044425857703894514005217404909616051625578449832017811207807773280461653767491539015752613041425021543791789657200051277221447930798452252624130311937040381382271595860972636401093234446108071703947498641014891372026804684603950802005324610279137816347688350805569055956276061823951328939493913522113433214260381188689890775256653423204592155690163971843937919913069952660071585781361201538660543873656627612542500117752600312875458504450560962614473828610668185420007250678151603092600153066342450482969740214787170539438571846600545441388047129912192280586710785954474731773068527618213872038109345172483633434252275350333268390155884802318406492189244279578217187993525059490184815338789466811785649242036589840479990475232181692081923893101284900459663786733094079897596289028011031675416691670426396667368875012557333239693433754278814160581519294966948987054563302843373147485331705406709147568653744781950188944721706574307781235730486712250682214371288269607491799363933895113917431693756589050849226939528524946714284021105174223902966651983784613193389475204764890225876619330224985761553010322963407663121799112115788082483817546361429977062950997858588073945700841675493770357370126264682460740197977938012820662569690246807031538327448490097970655616266558099653270751324362642040293336240809613440862409554045554407487324383838094042902584481389278080031570285505851762745149711863132271662430002142452141014379226440614354371978784742668396277218690722787715778868368666553592272620593819994083630134986661597454030622723277260815873768586753923379708223475749188359200350773455701236450200650795670002854694965267677621982379200521932317546097420539605343153117612364367749856601866405616959266217560133889766570864718965484599312847454458902804924855935198295592629184162282174710314848118821376451429552361025362140282791215149450255036079766721607960738709944669317014051091726646648265503670367681695683124406003040893723387889633846035331712153915855490761343108967691048578913288598481104831922413744205384149016135356642414761496391866731176535823562607479789802584805620740593547405778039273050541438072075858622466904003478029834334080491598953433255252524400782408679545770526626753889090198822877115167037666074794912086236485401748658221294412280057898859608003258065276966780738725200740316001350572943337056167335606724663086139941375143438194377351999127911019080110612406021083453481972089148501014888324260340681109448943188309163732540847875941313019075763180103689537417026264126063848515786436175761396055821372195796527782830322838614466626834075441073724772880473838938385839427368810578220234363757705694933182989511205235041368478859991408751947839317740294240426883151600369856876914412556092728785987236974880447168298651014388959226690724683250542400752105698346083219689281282030774161660234412170724156635306468275772970270311439473964475873039080772460729459306457871683479604865977694810474915195420522036789490164596608361455762394260532295969762187002838239734529851037628882610990785322026919823520739039428562678226994240428849417172723493078426787160229073635416766802304347575474485906830689344797469218048735548316025264626180767908535152057044458450465304870738939235537191668660466741530117974303100767188109711408413796942940482648147012427338301380122041434851824156406759536612446728924477445686571502564315924470047199992435187078165401805174576029527419666220020906482124935618760469962544022324959487467357020024743715318023275848725887272942146526100762232662271649392826233125727298485915223957406164640162188122691129440440463069181124839230760006286616177068952461719115800215640344737480333151042900041569550979294427326267765980834471507271135375704893750952969442379858103107824567506596217381760353140695302644375303903260706650915877945856675836524129752378679992670580681667466158613649141847144683625701769108615898543385131278359501098446868795358021848292740124918140877970675314668861473680825331218235547492190555992170200547010870216760648622629666018162976314323273006128417020006981156608230121159038569911673003200325719146398994579441955927535427122155867777766397526270044207938657692577121709715581447501003582692373786880462371549664944933405190023531928296243698500734174940708043914650684303934006620065277630153609852982587631504675823403068370283286983927434834422556224347864664599313233477880780309086769985820292909959825671162612298480045885736348830920622142783325390116011808334973974629003916383879533176392594095202254163705026733586189314047559163642783727083165054408400854277943225837140859342805531858389903284782529536137435321229577694744337426280528576801639162367985659830780019563993558596585099973361372837810419853134754832079290653956231785914986843744332727536775802948014769952821018386707229780916548591612057766982494760911945557130773076740548813736925149919415244593722085881877854811148690356696311107262344463574830790663050005566559972558137761984770830848901165855004799179456599167773725187623892668365449321582658342522628997757497458456409601952291533841629150995195634167885530258807480668335890314377299241489021156714236377007665016706838278451519508044354912473857310538646270651939314605480133854835950140728832236567202304910813767668607489149213190800928631666085895757143050561802091675214773816833251775256366831380487765150411218143214799004043661552104081736589655034014064705045535582187776945644072121749883606506388241146704046430251190016218090824217983222101687483951233111792916054754074097297195090179798483195410416213685175379594698833770076596731130908038323830039006538504872639843097045260595101445036043949947640320146268160232851407253704034975531153868876188857706513493267912807490322754789891720836656716539927768571814648181535811832976738646849610940086211174100287414780683914529491533393118432944230030562441761334271922953169288942199506791374057153236048511686283048332627884881091819857765256424551461136019920016364503376692845157902192420333203341321571913600038956241574307646403193977293235916154607973500574886850230091586367282889550122385575666180091752738634916215436666399262951441732137777939687578082336416358308977382622275920586918544631736549193021057170615457221521584258901941202928177963035078100693997336749994038449988116336626638540851983325528935307458397883084369170917852892286369184361566644769421755975549720076082403367246472676019387180084524112044631115771718380104221682933511631742608982618015588293895594261281315099986906631247813423019942189641362859241512942137194277474083665552625579389013804096159744839919478101407362713665896652973089990299681837529837641416523821216832847876903247433449875733338125124046788819198327624463848628425034558986430562768144572940197082051680997286156132095852461835081154797911565468811891900666802879950694472348153512810503398399804834932857702709338521844476779091504245328135127797276565426477891425955702727136399760037137764875568362815504942307815491589254492760623780889502573755067083459904433786481856737327205642653481760346913583307238771854946284545184858617883756283436645002832726130727343497655191185211520544145498405286777390279856432480671481551877265705703614414724677104994052927038857489437050972855487158237455266021887833670825481540065621814723966717050367938400865406808332953579931719401989211792846309385823461155092473445400727926832342511150913273328336065821031810821563083521294063026333588432461075676747719569256613427974100726657230469201678895562127810859623477230868783593738383123673580892630063157500709225095564297045692874170474056249673197683200258678268743956593976258501725397839546580295024062141277753645012840971006414458067637805235122040677002409633770676949315595896818702022242564545881202696083386757919135600178452947040673730317317261265953671042445361595788374781729498382688232048297361539008816606471424233009497197809444264842482443373780532463545208923432555181232691929775064965484525195508545635556235908117548596056398632604179386458831111876860197756181292478041769005171473185121114911028319040200003923177864363535254412932190157883316192794304539060100676815566701596240639294039844009923513092430812815955040146755193780847507539783812039529390231433586615933807774849583165041522672571891992527494299523524761553553438079914449538470158537805494748320269231103872598537732673987109836829488776733602852937463586071922163092775762906802920826061668038594523705633533833141451811838068596728202076442276680408923013187677623644236289650023021814512405927591835072684950123715207420813436014352655668162522355377392610147519137274812523589263137025252546519722699186050242116692337536937339061050313703887497081978276200339897111106619478067310303814764803796810292376835275170936457714704251795888365089195680464827382493853282528586963667907272779561696236661517351975361619275588691515605402628609043065883493277317693326648507902584186787398704490803608698813544134699920051972447790814957015601018047944668835171320884053963317596590399925197967448629727315418783907607497457147603955172897300120259803453014967233766468435252626784422056276433105461158058027650680254636270138486235863869554950512737546467711502323868875784262448459241698552721376639435503807632621762260016170436487355213912314017681237295135835968478323135126246288695313315031246316432754565975355569864596475092303415474035461660596912952828730103226654499185311453589182178346092206020103713126779486255908984731327076712046609870178187911198003444917765730734601624153905753051398358132549331816855203919210226751866003238072517885321798646977320398664080696847264525457286413213828061900704089484445537368184734631139507738940232974590026494333746218253599029972644136320460205663945612439811764138450126559068945628039500432740981096673009609107741807884346242155662583816484773676187102368067921738143785335813717445751269771402440449811083096082611471144085367531814865738330485784831149672766729381211492378139403003928856086488532721245219975717411448786196689286150932220497305569591785638320898329398946633141765678413682396693038199632918025519922696719908844099242290435738427702799421245347554017276576748282143159886801825159609310998852817952214682790196678499669635385339891357003819356728136380716874535992783584708298334527309422400314326090280032730506795412917673030098305762499650426773407526900667209799251268021687904486164026881467958536294568604904933381488508564269364596613823832106838259781011893053531753296212744661749723167386943800935392411862212219665899793047378391964417370580554951149216747745736867447577258119346007040126941332381928666545004464151517504193250991483107067062100270171232371100903562764774134968411299686542314825156609207304826238926826127737965058245710152134144345250726576302269986675062651582415732946684924372411601827062788634166322134468227269870352741896875084873574810914727326936581749621328902897569683818615930783779623666485600313308524455562425090456181278517715703158341636926331285801552260216861546111518712877567608236923940301038469170752858003965470522935362316517687143448496272429965995303204864552780174846421676915058376097485448590120674230980040014934496553211586235989254999340426032775667651725769336106702576431519222914792969160656183899533707920957928608764497610852516705943217601234251286720859159110238043342891858795593450173238207949523493711049188908940661152712537394468533731616783240408475286508993665213599054229564667521271595948659902834135274470293735647211649264440757617893605115811506512928002574761881114294326342762245743451969100260758444092387311836222008543578980701485248120294405928185949371861492246927792882206722733424254334994054058217408279270300541886135455626597975079768159197310027902405980532940196065906959995305936734765576605797716365494831952164828147374814819344586006128695705019476069526960536104966870647444813358915853034930828398339902735367909124303630789887568821976844893642851496799928860057459982825180825813640895230491372300152375666504441870779661773030499203170425493588870795831238731468666150235899220449837404687690521771254467889890884008371320607715506927730138889619287604035577967162373697915834638883537555281512106807801861644515730759977500618821104385871737020450464463555752448585940260468764638289222648904888065120918500856966326317909988648448309476983567006812545661877695198725218968365709255925177099828348021535632443801139306682138255296563985116769075075552279121432456111891973259030397187524364973402255839621549893809701529839066662358768780155374265492506455261305294258214606034668228764389170603952897408817565910576657222974553281288884590439691101809342932920552428770068390197940063294880078524513182601249292232046843637993247111462917424329141527698504506803620978679597656327463681560453183619491182947839081784631908929158241479345441401978536322322740095298188636770150323424225889982418208461343880989242020964171871746376936110854044087731989771911451568884712908785684349479136393362626291101552463852977670682217815042729264714126245371045566376676668983678994201473281293706773012428625371981152404213918532624258172533833209280292747116952391032551535892847004499881797815840205173671419954101259318282633343847909783834205078712133441837436871102272112616924207453867709576338679608962771442995913889018411399446664427931077645878827305788090739041293124886624898792320669985837914167145391737707611980077097985765162660143385222782581446926190304960521056538987702584362037807638658421838043349625598056315486209440483624504635925432896144551800003832065755269223962428367262398403305685007753617271197781483281911670788647652747726935342910386391004513431594353536580434546433154829663942010258890206170506868696161382421011206643493115936399944953487111581931831410663543517988677282610741213037086616449295653971982225360221362300016863792085753660293877460306330297973509661161388800163597915267840496385788677449149677572778417820575929264829984717862839860185301797825718855999714348929570454423273542070652985217440178986260761174693571769393131225522917875397697638092200330430943853019771923318330452616808315320534280132038626683146536194256240658924911913861289058780931610555829045443343557215419109242346472712353313587069548051721841406691874171299457354983145441148793290270784161491624582323551437115899284310628797728171954397769019725928540034303590546053284225844887722297342549123645957005550966144627746525546911777430914682947396968183202938089283966210423253013322400132554127183819358343173674248825501607351937706575552295812326178782741868204167819014927323507398990809621673530386215448186839086301684843470096298927758665374429159295388531261110017315367338329761983514738741110896664574268149022600850089051977700117057040490282532987225470260189228900622582284730483977004431008249158006574368439698166112482905386946443863836918328863313385527327521007426850796130459367651518395753658493257569995872426264408593002943348686232310113655997069031965779273675540498560607649348692310410526357012639599372134951506561128808672622186870930648781893221537287554391070841005825090294976945580550030710264525632346886442142865723764107326700979015961434410641306940465405536525645991278284376592413068247678738818845276381907531524494995873393226805840257032365072567643221290664433180964983054147318372352131417354789639740771581296171371541869240155153042834636018375236050601515138640131102607712034866287738935635958586840208853735562212324768272219327072114595782789487898152822698184177463829163213799754495028291805278573014287654406226279471257232337153357537538025946972428979183346494728245522434926995640316523465145378613611522898011513192799979620609223776145877996338908224982174729980070664509916713040480607600698149937520322056624443838499374671754539509396330187267407374203406240461426278845611928061057322383043933239183887375842304573519991672337252341160604570402973445841647482953820557860773884888496978726947961476715748123404682302613393357502067177837490153180316993176122385481969952780460168219995240785007327299690684603787856141171486378252319384684062550120822529917059584959677936304350253053758575341755869734993630880903101405628106667714131842006152525182799796721328660867173969508182709531150607941000178353336581536189142661918890544793985793826539979407683077222035890299863442756000130525259287698436788327606373966457514042900713325494768582174967846694929083953552087393040627168906902169458553811420227443984755644081363946430376820205743675254233823807833157467239015362722800147306220300941633248824520605384210142211915154960142277576750886456293134745222860944630017574522757890878755732849038225942311101952496627413499852607323705707936662900107883115415648478886403203041874084205534234463535377220697369675232075184039995618966855239895960222767219992169631511663648155090921199118613094752387914529697142222700133944953312897736671740125515049948029655576904517007259358574486734707264736243948274127772679993530668083967476127694163552409767204579161132096905954692235649146643304588553919270358509145917977689053320287245872096677262366408993271093343936551335198714117095066095323272388382989989569720693953332247490488765440617187493726764383794181214900749975159835397785209507694482833039132846071803846880080579878603504236433729845995520342090703307239239085299598859895604634725755976952942931816104844538772982072425444931280919683394300865394638377321984020974457777991129958466839118107459453278897462534750440028864696497599718760422643393171528114119343876791153218033827582784649444003991817878584064233985723144806695085574183130687878506721433255593497076900308532883215707362318517041302324135262533734902881656451690528709000332292014167151486881805104955837826914695272755015293828921024156004667049590665224144658320114601436150041795132235904460944108894404280284463457886030400155925894211102759482568205131692351274612435675291176435509564855341478031712518832925675767849495237766524659135601331443936035048057229541718614575980203267328937249001227282065161116940108959662288544504554565151964467222718997876971926310053864391114976436839385688255360070880594664191724626907786003788654041730240800433116632370845097980027455195158265651987459065845134702650175705000306241867768671416249147418300116318781562985123567729337871441517795258201151758583398148429635090971992790239266891046744506065667020992151225576022005201009918095836202564612347638785510960433308377797103252037816128240690784453618126047725134832494207202632514603433826032147035610116208201447814644456316688901766966332601182149907826825248348200095615013922795113446437754904614325315743026929022014385401443579836643173246128527634293718039156392852370393427560583749070851071690143763239686716027395479369973080694942047639965318736271039602164991670537410495849290770005008424282666170232391487671166329572737398388639634627212912393582757358969390926351841995405507370238862733342200632099841483368033956363741117254317625655672988529033229750515623129907526249927388137335293231494221405917570828825914338227563797984839572700155145492505357423348302470397185879789713703395251212719319214626219323885154932373574159075661956412646158764494899466367919595769181413259211206044126547394635252074845166229999432661901627465809882314900652477972937006138512243528366311529520040433770335077478750852323692489797030881201841911995186114274274727135616217458877489629117286896777168174710119637443176294871464203116576909789993891137726494589672536386442035167761587107412485013805673604998946682767164331919987587630441483889846303059894291570420715297941137313288233519705488433001188992801537536214414775716617807331428733221114818372193648942655243242695920597014567996768933054018046615261224482450058191034773872201711211330701330162855976416410872158631931650109414466450560801152113903203854886739691739504927928946159356469891605153102138195326188268644827600598331098601174938380570685888559985137074965668964081129133173038308498456939596996678914716623916445964201396933054281362062768912916036047043710749178613033500999197113600841014228521548719630244638590252398338442518271245930359885434762820298147111654072261989445053048859896126758069435206322367486109664585904798789553389560908428868543894445161682079182958700276503569003955608262870809215194444241883496001131869470324325799569544403043642591921042155590451841105486773776268257417097952042259200881960044502454543838641232597679620657992050996457527428659306293350612446027194305818971436552315924073697924159493473867905747493695398031067234241937527361768530193902542227384290479512481599217850299308867789002628977888810563916746195008058719451339492733830982190913768219805606022944114139779164602986595295468511006526073574689481130838132958065972542385215658043073154048803046166182342489212180888642377669377355766787403593499081415713825712351457520846079774843160274545779636897709152995915031091998979450203330537189990520652005910904636171900704015622603799388364096642783285464757135463490168979747928585918395135545262802329439427914357579786805481930548750620642171260314785638344069310376523052495715895515490851944632353395952052929680010469593943072470600582390476012944925502276544852973010184798701407416866633538034266185832106511006790785218765340051867245925669745924674534923020188855975015032772903779480952625427282275836330683559865303684589803673613710513315624936137118062142286549002513311991459384578532328795987230860266788704669323685690293227465650942119151242003424700262271211394685183386666185654760694227372982091460812995914714208994667894828732706967957203310152327517396207685179604031656888883110842244258417999809475978704773471657445153670667485989670081537058354720785756838813822095074414913395874518832065332307182211656766991608260680356567534076190274135382218359681591723332150315633203842996621130073285567103585591286624933312883054067990548474234799804185348567936821978629451313104198288523707971694529482128299637390343402750145947157790537811216358260573671940247816254500259811020713453479532314983058721549805184390226209331318530309605610151160292913999417429333132051857069726920790624273187177478782076439391410732842400252513068345241655799259968425088417569258558857882441718324572687731651435427758944557457914304535955307670368335844130463744083419300102762330241930399052562457215715978159741010104814240678682981726830582964295138370615549678166480891366490236529316242577251214457015604641808694747405292271014751927115079259532967882023505261099154426466586190303352235254299370345706374111160786842107921022551978371741515384735166330913591651022126292524026796507626985340486860172297928273437852906915252646309396382137127034935846199834002947490080066716797775408759317972489482230717983630812107787508887816150356704682273213360879503534045553119776399902863915799178445555010629744292146442498656016338633672142222196722376535615671992280267502259157900527579888900563723155838921761972058205313987607698437565154474716497408450064147559741416599321857142586385533068747918027298048206757095916200332528722862863417618907694670127704080000552407585599179529486888082080045623416643350446912409245191465783337079422171525814908013004715941761106775757740331146993172514174129371765490159937404871506914489349966551083297349659204076874841669641299010417764661780159149078131970623764191677829959352161797678451195937629715366692356748724802329925859006768380962362165242482879252434462767785522698135320165380547224303183295836887595005726382927241967268730408929273704638537586208984375373782736177443979319241359911957975662974349926579512401893997345511947270021705060395329560197307988007908185582791292794749556191728248377979236548994184084119502924026172674701061947479841418060923096195663634757975595784606443357506319283879398317101503063674072589563259403291677032943345050297071177001585210722672944756201362280994735514382283686761738607391434070601009904895929278749820506188273403881181961896557286990632037614824413300036826900130259368995852986871914642415059667157554713780596393668125973153331840737061627133133164258111636298740443677028329437617470803931221159665009807598657150040713466917363365968971226276862807922187586123762918866414691671513307045721455216777237770185776289834397484215421678097052375046835940255614768291195555112633554606582684188420023110628455037959911934725220333315357462059782106606054989958363884143513407296794449004749001466595093140629398002547378717557855214251322572632318141485610958928479141322976089205420146972717094394137450361785854364058210373840931116009353006108773740773668244361221331464386558327913671135121867322661603118276318958236364096641967382698541903543712695094847494858060087335924889596591704311072069458018160569796870664953842922173000855920034833025143633560827559360884719959930733696754059706764779157884050197795325033852467249493125827502030005861620319415100032345698657971809802850849160972077524865242946661997355848845147168470092100046471618649927289080236685629082157197320725763511161845981645143715011097501463118661547666706254135716257454395037291869086174663647218199037474108983322932616200406256014634579981975250227836831758134932421590225691029510626366126143248993018349438196223661621733302004056997487168710003327146600104367882450145353708028768463648891718440333384742360325305062708164577708770673703060603912728241907157066695424993486887624334672548396006612342589405084686826450654768264055848528980678030149355619919459941824768309134738337627473585478022043158589540864595069654887388901461920630706206720978997885006880675046590271296409904045354142714663506479304413867441697862691339928060378025954864572898034731848061991290612286474412118065548520044602640058784335403649251193429733168536379542673912951260672754454680164988567078972016649557937912516630636594229244316603772718744714610167556417095523676734312080144938383114808123306406555634802855925872695226134993402391659599306504209528635207161700949512528057014747337408747364323994438747272347210791086309959220860908139119386311304014633927594751158675387506438225164480063984638913476729877643312533936546261104506707995796122445085494469548287038916599190737298613913871846955950840295605130111526209197766382797407385757750565855704225804229818398769953926957300015917107537548447774915317258793966447306611447879219532153870597666465714226520496306851514589710054101968982702363779185871109982427908648239856269210717918486986146538792877657728633625322978577341097665373495130425737033880883123001945073084542780684549736954310731297311707170277065286057987516146588572665982404928561323263884030049782597819114488143695051012789758642493529881349391065001309472308974403347647350454335253303187857781539772953216483896606697295603445656295506539401308043886465086072641187464424032774939547747806988593399379544948577395205909698268835189553331280312557978456938140940024011880308767773811662007006190231528179121451251585450552288537703500856461152024919060881180561096074758697060629372916659919504506116130406263550447277209461553445493887831681586642554136056085954660748066514251919362199966505104424499192822165452677287221162242621942459728935971934016357967653578169478625396533359482357666617745845571178293989376387157746483004714379302016158732131030497419339922644300333810666756750243126316562038663129808343912293981855552854594931421421321612063674421447307695107141869127286677548620968848019759345152507576608327480601442494042848818482237093321796311242046445446778304574451150486639342401254468392824511668068030933857676067816457685854007479172400536322890377867510460800001572334265681701317334135409923351888310963925526215529529186491472055209091255816632749883603749307645460751974034587004292628248837520277832431187241633780894592885260055755455087112235175212603996049583935041552203976843119285200536076044995794192006912374994567331550031319051542548353650960692477123623221970153557649444734809751801418140227243337517154447677032150555645783731730757537550984897270514671021922747563966848418405691046801338944982885868572505562616233174426360267307656589581566679250187703397842690362595131077288650452971833019877805239555190663068996051286111329977986244439760875201499171636702788216176368721516183953823823897469123142439744867567025836954249605740346281079000810726777722756251694420128870728850783825962062725097664707201447838042277334870572252559707080593262900163102704638321680312639740104376495566532978806721859478786663217369253508159904132161314381097698522335831300074821371042738328856266979119390268478565858037284031638101309807842696587662882804039328627945606731157415810153697756639167060723275385017480034601023687130911157976250241447303004732960864734142255961136509333495555260961485909464145300161117212469140036510782157351295515759290198821969491518971076206612762760834718728122691117307074669372718838122872508759591269301741144973766224000409794758475820881951443175807637207400773283578706625233662846296748488069842230704655232654996377039155330550231235633927145987772458614114711839379257015766145133652216147034094937980832282214455900678299445350851714725273018916006861118904432485166231259966027617173853628981012693037222112009651233214435452423765684835996967316520441584614363744249216466860657308136670485875590677347348982305693416372239929482012469922662170222523197088382339070674199577113872333962239085931260324781741687656721153976693020272690037382254806338482599967562269952710541562252626924975545648134138868682525394046192940851319067156289262883444906029171051920631057572882062011967745387180372502327324615840932427574281377771410918136709324081728930115890837194657721140529380594864522595435033024920625623302422449358923262733511757420280525660319852705838905194099458327672241217112377970880121152993375279190412283256331433885800284664874524103878788438121256324043927965892318412758548206796402139680897368195664806369619987220379826397588693554657327360276499260987375789289966639223948312025009787346390010088828835684218894367436325432078131161426817143557335147889137872404693435172946536391277848715782992933881216301694270416845597238205666197607494783348642252026895082676963817486951270258932843780691602470059715095565137476368556524406689337437678193721505390697814143930903907071149181714626009076859914324835076355459018441976754144983990551393547338583268771738967718823144890911112369757908809976180756902524625976707398278891376655621485849925622985922611312867155185972639502724599107495561807435372111676367757425524265979130077000590010842505053885940598149025556130718701158824026111591787645702248367623013820337753663595209983675574015371361026415395455016971305490396673666645351381352309321054719363382861828843943003874658925694515770717681437158172880746115684217127571432314705555319146589605234578707591655303639993002617227409750623984626546094932695801282122061371586133894912232337124921391904196223187027290397694495298169670674379864380423966667798385811420025390570988036565516936737654658319916934193447215571194087213266241544024444808996854141632633236199500489959314296518044522499199681291327823168521238380515976416932899348911733501250738842130732488812236546722491047986036065543803695278568101000483335380497758899806532067565675751801660896906569936844225080574297924419146677614550332700030197368141163009735902308950148803455838106257461491640828741141937182910111446531218534676117359559312994114741314048702392661847164765148924249605476028996474420214507866138399583571868752416366749900563075389209365616294341740637724330740266556432535204610832561254030788653048290460029158427874150615592268161163345463961795742223462480574399195894578342602510256426452173227432589384602930602540388596763702922637299087202312641601787267027328821374241104067225124948631099668232603471737503201942827692323731168299386769422208888354954119802643538319001053280303526785216519699465599026583630695378208756255054445233329221313296220723566489627823971499435890460749810108239000840059890053739634546761714505312710641665992755840032456896832659562921717112592703266948716175503695558206432939784712971648187031902299249367328262246284737911010737203900192556629885106933546992172001399549087487186196444053617387568135931878897963447817270250177353847471221333019490356582419433449595749392052067821930131864368799366877208407923094929782050767122398945726789785867066462719895466956211445948460942757386040135103279512586133407698976621438041181833575624176005204132300354327811413433666121237740079455058794302595081893573550654268450588787492159866312035805988695356460711554995156066879169061069141722435893367090114320709022515197968305952107010374178520072702378372447315525510395898036386693206755448528065818510736203636550834978110844295718955430296653071326026143580979649261811956155624190540534197888184760705903786797278892271629595306136723455542392309050093876381865171589419087674602692645794245477269404232125311057671716635476427432312583425689293861907929134038667875308555041687113179498265513736769402491043657805144033992282057827474426568561123808154761352693502064874759770006853678230748305913023065807249199475569818095077568896838887045433720802731850765303300257046500415277546066539106789942557412830555569666140452472679151728055271180110319277542835662477329990382153779765489588497646302233090071686323038239600042955262026793267782832845093813072937096551598862400965935659176701448351709585726370115233714779854410212051881328292473681051025905918847259842276427022874956449494043879373302938809188809446543692003903352412292115959028573085884638703323555062225985731948403466185790495217760167497602232326528953490188581288053471872752162569355996026301672761476182886351112790872392809673047243621592236328498173725170168559098881669402882277876142237816895726231937339811803128529072839833975766050913831022453194128808345419072093149098576747096193344103007077650233093889301588496824736502192972879674594707776423779247371855875671985796616295371443374413596637976483634856071393449318669157118319638778047593916374763053526888636325565806289923111838557835915483883623484001767146297891958659787101237961717659410697855409463236843818806419334647757305956015838354602192703327236254093396742457508251459372214687355800250554680312018766095176301040194175644526434098529209077675602927609399741519152775688882343036500607252800852330505511068787188899018773100354905486728158271939950336355092002982234139838481481474544972265077186582698800057379630476868410786698921503071136449926765954502803315530369721414517751657458003956616057606966549013009542616183608661764897437034915234826115460068606168276226038252837356699593720194062601217970468835506168257902888021451449164570230816899115982912969329373603174577783410171112056437001942386614100781794958235835947556528870797644307420609410523077942251849929697988863841730215994203413518095865880381373086550909539911657407550192236409820146549172942967697226895463614970380586948638728734394544463556486394991234935059252193330754202211379447685499398728829584271948833192096355377846866953034746798266276962299284190881214914992627851569066310162871492856064473361086310148658803781447018534879431192419049445795294288989039225009937896559712549447617071579656641338482386149648629658825766445753989507512204966811457480438986537859466039693512124392937686678398904715006307615462390699090117424964101280258813305712411700428044909207073206398330987234890094988161331505680429929044080587051447638245048778665798160342253615525541138087380807812252488694487592501623857361423382226855469079041592177469130587665355397611400470145563148617080135937802119801591923978052657227876733365610220132615631265414395043582499998106615312792361436041963694842672327808025462782230572418561563808187763624830701236952030793335428188099140316112646895924297166392353089036883637434614639528170740220700557674931401404737998651185500661734983194329446010943879227726888965205932060763018914515474147631551150678753358823009704715565967381128389148615679146766326609873265405936777464482698868681451471053747336701126161748560658783331007114680446892501250606767393420858744175824529255273120360045540171268130541366221683360623392307052340438986487488831429823926441822034054032996191244618372650605953346345942288206067878904150519594168001281860430811891578746374680825774662196973501424421668748799581811643479182768597387406686738835971781807037366936994414474903630679392637731136705404105165964391329591646753981955894082897179459296462711380526280949704692575985947160555737912179525091993273064661430644311091921833914260204339747343623896150585876008650438746327962552397419570411840827334591306781011841646775627453920692806886542129645261162700786887883713023088577483666641187574213949865642683087312269077614133357049701998035666845980860967024237789900208955220787843430780198646200347444734342035910324954546479109171797423016581765374485125672606453629172967610205611719344108031665887383506513890683919694834741180234421821524204488198944844648972788973008534611535632758106221702434533038647064004116178690510122250734887478903404332549626630846076041157403800642772716719127679029246584011922940864553667600100808247572515408705637575847652289318973173480833494377478326007040059988976571122611271591243441626433253750558062345449727295723605681911093533332493007561891259875748636675376759179015683847884859475703949229724662229641899540794487335874660328621727463096080610813676983496506116446155404725121329636584448403192323288252855874903260697061404772580971360081491873060533962803882707777872400898777797825651710625004638365466934079373182570734227290579567532774229451938361962394478109166744183686814842917037009924007783801655284643841123393657680031853187618378759532168250450925536846181171243491766520512466141927252108611795835847922452061063195742101448865467271058354242640495596671904949579594736592512485597693570506161626835201954246335453811782220033729935471976231284357399064823233425849264791091176335327018915012106073540639222620760620578281595462344070936395411013564937098397086022830857290734527027912773613314666856428379211830592251201963310744949293943186156560207798888881696320829442911743379585066509405227232495538586493518184781613543046332231357518711473729347828173194336140199664788641619028330592708806071230988802155228378101492259227269269565813494255253858137710736813490101868125726978285486599152551824884025428233244148735881784710515238836757837643221181378503433626189436358806313995148924219422669998226702749617052878396626807682695882798170251462671149473822045443706365570359323198939050947652206079623176733752604471740006242245450876374072544181869437341813122671137940692295792165707063547320597594202681317753900861996067750187295366984370684726152670443312776935589155070880286443004133411442972643889856033248839123248990670896123221661748491182150544357832353335049781332934620472462956171980406917216283158276779352089867273338855470807398817587725422315940300905575879244347607612480221165199422947669880845911533751883850925192619308796493015304548181039785414757071307073946804528971790251287399703104807890858147722545771245343424863646662147395554691163540202126438254311993993896463130466247171173971777432144305919865448986415667397493875834871625924121973473727877475613820677218380894597984120593758198075080985455224150088415077500211707983082271979697488861744103100726479117303745030968098388263827877116281174800634354962009153646980482881814503762003364235458264793063387501330537648082732319860084036761723339277652944531855760639494021268579027005016734707858751169505421211718445059775881179220853845250537477642308525432230214062412083094711960617467534796438339433497052378979963247154441859163819654258361942383071821620196112173018238007412414894961035104024092927685573484226186756327871773458875365784258398353776112698254268900133847621545377754318765457756608983112413180331677223048164922226593066688326353874499719397349922077953229596118580789529541488882148627132162150816828960917944185818504072229788812155801310379872629916789837071277489986212583373241252000459247387309277876682321821110304421367377475851602311225738476758010892009168276534459559119366270105985211736496027984458315629996730202900962944700113200117983655952051511332298163547579132806700156445979177801911668540417557324649385612221057887714345181855264558967044488836689176071108975360581620891770172525609521528898189662754978754328154911213428904400623365780950212127770195627572523364572479755204504732389845470581178920404867292856488257180841035416088893306895875818551443312345136414428976701922057949735285445907361402304984613694558588917364907691004311827729338593539337790296116422821838583927605846847613254176718457994364015237583012320743618786573977106618373751556068415005867109807525946385883292825881878516572502440719157409580508914401711912646228321665944698266361172100532747177752573930584869735399012426596215482373417437575404955725271255558493967069038812366698475527477649505073445009514279227041426945605369900027069867665699765301865753337644029417393005626133944696260253353528860519353410809388822482004498232880957282002774438574968300225512284689480670200635522167575289215224168871339660763604367272174601371853165946068992802371613663405162639956851678023809740127109352658485571211034575083801180030643280187344465084499417374255198423934186444066000598726815209752778194980405721095092626644991249464487823657144619779427876986291984421303539827602460263962563391924673631959821884723201724368507896362943484655192316206125942137162362461058283200826880043746874867431585511760990864255948896195322784732366764015213864960630342937627519540351653941812098842225384736012420662230974672715816047055421036346629702815507147850409623992561998787230880271421343647369400037859742156626280076952996067523415949103967523391125258972224385801715352242685491452433301442411838059851037455710935810083423519238434612139581320596203665998814411913267044221780772578327686308990709290339313387467987643020754142438293918581131426337745610691718675802368253391565713454193584417380976635111880093265016866297446144109792762603767776655252264736118204881602578093607437945160804477758465483106249864341692059255326601887063183684856753994381817819305168825047509826105201232283957100487543255306372253550172064577983268600723830207270170211883536931963749586956423238156312120736507854855216638471547535741482369509742401611075924216894573399734855499831707483781778713288281407256437162492951851993412118207217530198982096092934142829458599467663020649548350702641151571051852577520262523728937379255778050336917265989851199839661165348143592928493321853192177696805096063665324630838856354661600286647975141053010760035485407969420948280263519666046323093978744726174136615943839038779967519838014551250914474107311969619641139210123896200303447571893886068825777476101301540059584827428125759820676909849155229540630513792512362945838286300005984519151675800385501540056923943648790743321507103271840858375602876389217196891534033392143548047226858313827476757695773117769194525287427027710688114871775544690087770147690682710122655718892387349508213463898065088195406532349064605472428266216613160080953347022156782083376921700617846960911664704842982321420836578038682718507713111809804024508660117770137840998979899894184037646193959653696521908910226517831561076352258332890118560382725522373308844539045336668400438150875874596131261650316517791607496393177778959110121820862792018429083604484141065246147602909888800962991667125474502668076276377563141005997751723302028479116391721622790863540233258683852704252907336556663906155480768764867320164903817781384133613930609417080085711845010350574374857321856966267824131901933516703608592267945583882331948403835521514581310546983637856380570308692375646044936901047603226537535312959922819679542043725574367773241930508305406903673531466100608447726721186244766720271568752265270524558404621513191169410098694592488824309313050711218062294006442000485113513332238397791976657331925605387114803072580658375828407890729930403170722512589767244160850347687324110124133812314696818264754086715773841876157620226421813390136072630826288596777047944684306190369025471050862195977716572429345328454080939039320133561753506626955546704778777873830110439260751257115855976372082577751492260490849665047865583217553869937314612248190077266094349194397624561265122492895733866584538110985751949204538082732506202539294757791981334492233829705191369645456580700097822210904377249623761996228274403579547186808995915875675215028291689703413057049279020762289794030259854788948281263822311412452056244662631040976480016617772035469405797213338084450847800500890282004187464094470986079149755529415672794606122236344526043765827456513573423764537196362054156832209936286128293121391495183588614602825965594328935024181639500585036063997404533024763210204985500829637008231469998848447224678868357844324994994936727868658884307610247778218275906580352151529029087217933490728909717824645853553763379496281789905417347268957589866712166600484356865212496727279412419841891163111205007046105382858178990930299118088030774935489405464345848591958501917853109503567993824973818152390431107454534367644356927370765251354124724309152354478247838587087832162066457916727150231526470425004097844347959957794165180510863629216700180121852165838495962570537576638621678851949839350920173349540911374948208918168105840506979821037966644779405948479241628011121828666039032408669431341881669839982275312775521900172953435791668056906584936117316083313441583186814700670032139416799883944449535692415494729230550008791469789366508619411565504248033158135890243968971205193158904135790860797075067397832556083226922794221719828978397768144177042249017321052828788207238104416563762667512983752157273479352258349261725558518377754963200894984361196501314718735581089918394054060117486725522707161035869368443224703785361252591145926486995826352255266941918218842114730676505806947743009710214018719242467391953025186530686556879327002482246602510724448386121186481496883928956746901582858947113725731761714977119689422671708715772956957304973952555766270982983027229020172561327658446878416832749011319606698998583007593845203361486459219372557682077910164111093225318559939601009268773107246266647523840417559401073249671238633544640158581661388431886734749138496649635249053253262519403105337045340926804300233611788683361970262155063194789486048611512761655665298604009312880299155419613481668831292122964993914021275654502446059093754025276800293533159472799889721316375104130903567268196093703604046959062414239037305311777546029229298151114728405178029226505616665395593195485624412750949472081416920496862803162446943388152777292941134350776413796455947337264245456970137478497191826063802395578809254398399543694353339919969014023727754011177569219190310086229054095214830317326131140867709727868476382867450613103444393372527883960897109760329516783437050371239516041737617141598715455683959549293994511678662978722337235303092803403362272125289061085132573871125146871935823055354196266714912681224334828593500636466839405510442109868556845942358609368629382688554366703637058585809350326748923343990455408543371077503006524594454549937866569739697070952803288875841384250338730410588312209966978327031563262044805832404893940444413441729517756311470201184908351382554246811337710848757360651721642420121903674786880528365958300543778166314275373099447567909285086682931089955125299180732091364959511812648739340265312459458775647660190234945845360264344526291881098596333844848316448469580218205241818144469214581051956317068526422086188516393075830356247410796371462788553726932702754769116162508610678696583292036822606750015398527542542313190854038630861853810614641854442695802298714550217447692398200511505088008557044051576769157410963385442290982565853339401648898145915710837019437770327244038393425126513610606464451601357645649729471639992558891605608505162873911783005217444590761584445064591543796258304742199961436655040122574479916602243816293192316672247964012915997939591791275021776550580002893239719615792948624540026272655789435198309064405949262332938362553074684940667151594505695810480027090897645651282650648130020010004097666066236393247397540639965889241309320036860487387822233536261035119121255366907717849880215481344987802073305469053382949498522738687729226251196699738639398609706031687110097164373665963997297686998760299738538811244920446352129315449396148359778192401060846400099735395839487745227800322968433485661452019626333471486137819638750565208807617859014995625231701842113938703286148752185797598351698879673735981168525582557837406418224828971477406646320969437696033143761341204057809594857810658900142493952423334469284812267283585949456179607113932404538110033049381748873610265635460837545719100679138376717688998249489836761731470327413303472345602251488681116816739588019802749696849525624106658804678908183819488197466373175770512932105680324389009946234283893964971590942062718665573002192181309624537945085794907607010495214331332208038961125760240767083105596591718345199947773766076850957522543516060995664670724541538163176517003734663964553373169280957580871927255242320792991199208099920719368169351842960777607408175783806503083999000681950366794933371844702682629095068840791554562100116994986080215946036493850693821996577732328279942004219822118192288442956850751040504323363024197923079478779211268214129291286734425307489874065267083043923239320357829653750163582985693138865378432753816619842597359035927977878336516103387148128676856750456378801713408494014019618727118378247868167933568581428624918767575384264066301238457276928812999268353640292993674056700053685344322574200289755970115893920936380171897071440460051686458557010018873370922995583641823824237584305853589026514905653973983154035204626605380857526209413030022952292510729827274029136409442829239091036051174581330547316142278765961750314676158911034821665000906190410559883224786787631703438596680294586697839146457914265131024664492169305009039417444529226427484136725075228189259644600890617595523591646102496740675131728001606432129838529606164557866595249320901117812710202209682082518926001738965626872413537236640588556069413362015974093693718681218432423147581497252181855890420080351950723662695950815485184337257282209914096748227353837317730204415159206576723374747017937669223545930844310789391230496569211047525480941908329176961100528130328881433118920769263234740581840333384563868862113736373612546662918364116300092963537268731155786346156354671304397203755960285079143272903966269656099839130463405493847720786100912344214155692117573846108887316015303759501626622049275675382495969245157280758501494935420740950715454719580594769170068876109134838145878867078902778481937740474217975581025391537242715134923367163660616906784692660801466407400753422810892975302128283969893887131956940202057073900850488330204637959906676076270661565115578895924465556718841722757644474368195358002852336687024660386539022861407815353466710855835697765859859060858859282152132139598949201182873353896285037422758825598781921829599797118943578958587638727686965225751765815766186408868121906622277933421883200873974492983144848835122782983096864897585664451913207358430815598968850634157264187142709753128639093532212298739789492819600849504436068748685487107644661635490011068675434704744700986824532726684552519608146961641246997001227329181424197814560937795454539455538367207738176590500201376998954478400382885985737716389142835853012809785743090125908114641094094253566334011185946582721997137830942005135806013057057766460637405805328479899165172510126338480725075514169511675379125519052909522345251819834602909860915178083765249539937908184822026159051870865233176786144550594522179088052353415289771098313108661675422446376648064668862308360825515229559593203315132072748351672856473626589565998063592644074866260252647126893180996700713194799791270684665482955947757212664495597740542124953025399789586516711056426707091688717229884074876321944310082762075609218680385196941757984869706586788257198183713755770185602634452312546547610239002566863733700388270642175191227460287020398348530453274017116261485661754629557226040898460034222616005299537897037179749950743903833904332615735366060389137994810359078374865716348138010955638101354985187063057507844157334348880038182461856173276810729249050433864118036167502911439748534191979246691636498298426276902298090676385275500576413922830035343283238637466010810033994827146923767063589085537935041727089281524316810201895246876437568576235890080993502970903846557112791430999826652744223103609818148577435078705452458664930819770698490744933751932605158170947215578864398400289690852951614693957348926195725017379665274881937957198712938556573925120287710835867355953153969665132633778598143107144127281437807652952633296919508168133020687714501223413607802428342342170877070541723144543785353808336170989632149704889054587958468089438472648155874233954214246820293383909768625432423399673472166070392865639696635970826485968828698286151461929080862340555325654607034125728771852882059533037500756889104228591895884942438533971291388610561987899279281718136293046275891325371127125597776124955095618149340327773050225693397847924764137725575016646788830795018290474264285091612024504417526261077408424747858344007922679817551562473934831109066931747426774346473507879152201463254408091397999595555505450398035075132664414505715258249742966847647742373141100129330355302620184151694734775950102164629221002442867356197369720645834816324973366679817661316469738438586035433352671016090803250731908646384686470658307055461158993519419347174121991242273546054135207719612028349118919817083831807125970346278553452647720839671161323792692116328409274539132542966934102529417772146044342424629485199067139565526510426482192019402778502197685389520119559474985632690294334816001207736932867823531833132160174816525254441095765160902372542620238212261743163004510521994168148834418247855064596144265554579998383819511898721454115573264006201997187998240920167344730192251526802717981307165695837094668241234725466734862380280730376295715041126881529966016860347223142438193009835892415714762257352812191317688397088893336379571143452856578680267368576649765422381637399699153308279249969807731945603022830189031373404117564657402759457125671123218788870355097002838572561877572500946682160122474788689785426678218572471223239499345839787419437673699960810187175920480432787461436327453648361186262831456578241263932262781985068706417634176510785056327509112075320199034527451382582812625055413662428909923721043515769994926751928228058448380453321607657637992556997458520475100478426541470660821957066662064389817712175844224459857405743379215426440448520269564793438451985441766763067002498924830119741339606289933918643003264897953491085190470849022103546161615345576478126549321958478733727473868662155325809674721217872081046800025855984274115697551454403763823619060788261900106450607171162534167454437755569398490044406033510116823003470443199896893419628353706402329416231554673170449541113210401624837126169992308141664025895494772015209153184560447334531005993362373386819057459598454421135488944641079002662223983764661142676175426557559271209798859320455492251247115029545262963278875517527368172882843874681358386802878346693942486639980478526686968592986594696099163873902132191434354399239156392229871924961293993970573756724097370149898506528829440423733564233136268559765588356399026266079680300688599483593922416380844995726719660116100411063517656261695470252261497154295993531010791804854027262607160815905702987079923529882473585050637153832285187946725963948884010087333806687691911742417775741642952907022035709703502671889822029118251743356601564109616469241052517995288326906376845456670194349669298040523948439230667415131481284557734931168868660409699862009493519476917714130868148457985646007646562661058503337287727343703946502835292363904565410713974392962106445084418524809463756297593386838113785414480256770196467496252866453501897833607185288166545007363216826105680642473060977902151874305311451043071508474491773513731952420668538089016525225580212276991268694221772418841174007434779840608687103992967973764763389232143132935285836039044943902634990588965199124374812615805257404876652061648444157596105838405180342367108425612033346057994154934286848764892283120351310707428452549161648963136593676835345901560646013479853727197972503436008327974898892226571160002134194490359069445732196622180645134081771190830884706881110828030455244262175345407855584907706325822058091311654233308323677039543608241769914118003301549739675319396063456777133815587370471167031783479267566503992533603618869734234230155700634775785732626185363110582380034692696436203345222398567472035696411486382720686192626414551669604348766407614800279382228252178292613472288524974570024940860048079136336860056355559480844023397399575867790092693584243206584275936339632472089169820045699715444376464139105754087085308554428526672891664001217635263309869381729297252246672083450863799521549944605168838265443945329010662075885991734067900425874939062127133802877265109954472053943161145641028445831478603636949746840062920339318142631745835877701691603972165621298847586649342907789871430334970932190238772294026150069648651332587780852908269349816416460323142948886952768331196028196593843539869531339327382844593956428529846677291096941972522095041894091750126805678017039281948183082655023745902306316549808439039045612105876725730294164806776432482056693808843322198077120431910871922802996122697430500984114073917009800030185303702783380949430460122355594193929035507807851974846814612037391323590700034814974801584407159167982811650381428685062420866801262855704172891724135829495613565539114077178915307317746052440364317631211490652324987559374604581200533689301876114579690520210682907871267101942643569892733937772639827424226445566592148774812344281897030864842807381714002131723756312445795666745621839054276265571432837442984517229929319632838934605600145385577781696407891713043827154068728762842814146669137779231019119223969651906897110614315705839817039542496726732640622935387511334794219288532809711776915355337246864505922957450231705031903686616461434418399874725000737330603408401710252575578608869310624429256116191573024878319503966899442889438827249753049880426150832802519102474288817575244460372752875295322331823864813383527546070603475281218943702717902915832436343702273238808072796781237096339960100745448262163106218097882858838363904662669017545727837539560662852824034347297015027106756687840331458062429660529656975994809178117157041885643391978134076125468712743861701122414606641435546549184816907889701508641299829543829520300909451320304141444924234840692529050646332358752747015987095985957397060079207096019516433498372205180278648843696563641090002905129266111608730384527157800389303323222242220169354614046046254697366742729059173758659858892687527364020854202578752000607970570672211227494948418873869746240971647890648991151909396095308401311671737171320494517159358577663631674251997109255805588522962883656037054151341639848365366964421189246884968756884321739777675621789193171205229288235393642657884841395425897900350584280088829926309922582272956331354298531423628777755330528388327687078077363953576046461005308038828823539200633687618670734781255303516159868270514208805183268698556882409842770979293875705423523715799443458739074866084334816398965100703630626490935901159213053603202963731188435379389321930434628127824978267164398691751326769875738205271842308913056102029275529035895184939538313845460664482773784490752578365898237602993719858190085742610288692693622382290928879682967547371556302570519573421320111156030940026822438211606637394516889842935699075224737953078828559633710513466245111168242856180917158240027812135923775602729634795099838333928084420864291083293083016586527681796666361643799208049909460049719553016688359414340181521837390541139393038412882486031957774020055540421713447700109290445361428748740570011202031507576468539948809894686076460731572091818682623863013604542132823144847043220512094191309337779458566942150842824148714554555759944773892027638870586053515638850678734013601673550888239597758605578912099938115693808020283009604997329710564066393541760662001723548002473135945772041924208946229725046760504183254190251158792194625903731172356663738016789086314197781519428283425367358604593477504223183545213501584563223397583912130341900641709577588272653228924673214004382145964710892075629749697604250647634871143456222605927599587273114305243356840023921327653665118692394707774636064470511575248939889731633327320848145384537457927412524097598541389866498288087040982525283789731455424349507217787548227032047896750577267539554458073481174756082267945359676434558671188699086715006931578325800844398906616824715753716646633503999980059778251757243989197245374886692419173439353063635788569460507907320328885881317529943554588773242204433473818603632097211693798043054607210698985106115318241467704921337644816868925226598463904048302845792019616653824130365437747515142164905323670703624424916999684569015455400351164239989124101303058844243175416113275416916373916405652849974888390314315441595798471454710733591042405706545655199808572639939660782109128247393724002127426094483880459361962387534136926358152937052866737478123017217003206450868442471828117239227599092716668168849262881943067850453954340012384891050614790871656048662306052719046375020728585179576580810953365902919352898996293130731536619058236127590333964597936049533930268112019501109232721884518984881285714898574208350828508311989198769938225656077777043272869675340311932610440025759540150178328934731526159830057559807556674405544587649040442844505956844656560306284336711130433822856561099310753745790187142999647710329080200110221065553665617595660221614077369301628977793234654360263640293640577876508432323651995129963589198226697335302958501773247332008519493471093191152990571023553612196755717103549660184180135678943263447052875152205690565962311735198465123808293790396002994902302155456931207011090542820795768005992268422380483159685270554160952165284578705680368839851568139840659194451178423641047698352761924155632654844931817623971714604806987338571359699998359190574729061329617409720643914621032520625852559744543828863104591508495254585377812531941890123860198411862141587147205655799543663165207842343469375220783862621575601428427133983068013592894037069427302722358033434959102214879798437531265390476665841864374649023508279090290924895109290947906160206496323290333214268449965646568644704855585263492982944029654537540743076297070192618216119029155512399976533490645675929836563050566830479213330253192393897429911103139660973119623847249159855641598807831923064208737176529106169540554045288855872701019201100715385336232052298068009372429811517242513174736340063610502609617761724335980847194503470704307343135116893418784895520656196246716316156625538922996555717713742861564736716478093159798118191338761244722738158143921459686493519334582091939160315061546960036348857420779518926983226272283971502554400458829980645722768820797508520289101350570527340588910180862903590977175094876835044593176520712585818104130123190680254079625446526339133280421633974531514661761727527151425522452002391983976027586493439339549524315192436066923188336073217531023303970160354376710074291866796302922724937182909574859789495031709129276461607193331478351365646793763411750993178626986241489367678353274425233120408223710551903465706932007473383781987545578601833412558234957732092792053115764314161729469844649294090527497698652621070839152655508268000228534743802422981319334926304508963121553687401421391462364277898613255937755606952792881157555839390486447759733612400637954351922842327548594637383862658176317566069914394309964623775127008417691621906962616863808198276769377720981801246356175899955365351723959313952239625290614050763182048566990821544779905255523415582921574824133460456650548663849084314027724223857756298464779710886505874887630473584299133724645357053876251698870915315699294208207313125184575676205265931847781863403856282442181483044459451503721278166446803968931002260846197481060494126978295576033528560168025459017785697165411748190734095976427573076029366793945436259577966533825195428433951574092666547669377439850043672550134902512407541012342065459588832281442232513150516560315906614701677063173225462716032751154726214065526973522113328202360877386860232543640605434440947100941721192882633770720368964896908627001873644209146309962992823637828205496406962554498517517015108104276605583866554709248548511864322311603176127664232047881863526213861028161869216449651014588412941373930381459965774192750016520739396490412313971612877332786020446308324775220837813717948094743426864251443498997930594633459414516257760396044695705694405762340341364750474134146358893052630351809730105939545568444274835901087171631683187147109721548464407128836014029215829600644296677484828661280706780070622647896816200555846955970854689342304472776181325088792135058525345847979832411753632658930719557707892139767422146281436909892431160641578266551293979896220424408578606913474462076864767901079011190322659549244693580530236263357719684836846509958081624623462694460607496167018879339594585349215570410830040511902926857584594208144891340076313850702117339589213104528452944810454027085309066356300127688115997482647903333594929829165794021932447213604763637541077887868308300905663046736332805552803742061252356177353109545472727103197120746064183533207574649785527919659341405055994916920444655064409329524898194100809571806217258442743577108036467391363581035692483257260350896499492300684494613122204776708204897877235030604574850231158760454912110147158148334027299643771847143325499951412228344807573987790756787290584306343588456890860077015141348571785918805974197040110987770637151621848549745150013339407957323495600053580965715585825291247180021650638794703146429114597427593996842341967974133172177522562302457469130286642199318962792410146952277877511833702398073839422412471569595163162300146236125880153358526450101786336685922619276301382432350115824569199755027620674701065776072827991815761304194856560858959447465932608408353610665826881403551978722716195706114440381385361334386003252577400387645491024696033959762954919116736589229279873747518814834490688076830744132796487221997888918788456569831578651905300937203210168256719325649425994139942479392354288662616523091433695009337721112062652931688510868279229641304457226171765762321547208336918204636244259984548868070974012243628036368751653959815510053042621711333090746550236603614003228020740344060263971811585194840793872519583463175291634287739019398886465748041063943806639651774219651253396495091201566696856989569254306448680920838693479108925996203601727806020226551552742327913051048424266500190864336815637863285730993813009885251181360113850055786540702958343964974864328432883176583289377450342410504370649854615142754938094298247617903178716580032648119993308200889450509125935336566066727496642985483253525721082668683473665446513032507252067062629987638814288898375356653906024898534676377435757144574320676930191830048648025200765962916430226172227765618671369526765146608401546981884304397555445080143970679722802923387297217027150728848217243452036805488586036043135168602864783272163913113749338408516704196519505061727802472123975352522190739918512602844848507093343384204472504273892341171675351364033260722019009817253975687428359978384465314861551493011201472672212076379415479379512989081256120410027893082870707957240730418967011308378781434966627543651024276414169060852125482922744865993993898117983399891089095925183682129150960094950477096098988856974522518218417205640064163921352272643368277182852489293566759813735353429577507843341223909743002543136587247821332523784041569088237588106341715662036093422781613806969061038140462598458152862510331891105082882180423665492364032540678971004751963584422078904030353271876557210537826476911713797660501708392953973037433101990070972173657684435965381766005117683706732776886446264479651999685119463423565586032460842142910175919549815722259029053982387843749401825032255507589518216962949351338107921783794642983202645607499654221081162563445187839400148407428929750114561234736193744368947912447772285357643252936235948505850341133070932886810549841053101758021689303017851566638500406494073063039823152421893631114009552545113588506348758775991146177567138512804539476738852785866323515550043540369360015881323964218285359302544872553476011229855873648270998936405806922671203627110711587022287616992112159194877905873933372205740998540891160406759634452184686684507173911285574828013531168629475729376407111859722590606321801970404834399016977932306511673184609374402708427041744017289340939072214427602413903671833401858561032556528122301349069894990483537352761295208448930023264807046277596498545503861556843890736576216152880474881275523282627404749492070471245329815691659378656571424348983808796691328851176447604502035555585532000349060398092023549612789065846944090581439542243135894064927825440791873985654525246242870182009596159299280678372035851419067622351922645824419427958054994516608163569371476426806709200171400529279917677355363200512654282858112990447616307121251676203609534947737537876919729696918646250159519008972893259414609743669385215153667958253801616380140098409048028994162922452215822873857252967375469483685019713098968375001017112386846091356649872219530911395273126518770929012399020935530848535242312997869885894619831019876604275263299398620788984164011041976345320981310715545282134496352075602646911943061646678319064064908963022773209887101919195564805735150818696505284277196861018003107398347059515652651690882525010174457634389599188271806893273572141167731088932061557182823419649311977819884148888652996534938411215474394971829690337495773830252253316706452608665770777907087312386534874326394086308236169795378204283476123235883346407795995387539861591044806009104446749003862049274043782600659997202220385266070436054384364980542676073677038738206967623925498653076588332817712804815729749117227253762746534373592508893192220451647588856006349269821171384094174029849037847189951158004025587427754868826456945048498626791317560073441120200643204733726825199984632269695152188417439772316123350296931151821351178295529610182767193928027187217269381886209391292659828278562610286022987435250385690958209260682336324955101633899561622177855705927913206996228792546834545287826480540915132378392993568733523784249419294704688792526788955417266830373552658448505738407866587294711692766799451435177854744532268159902173187115587658377449591628993417944725522919645009813810585772568155791007005794210889957083442637759146010828673331800777425156179797589161267146018391311277989180083179018885531794220776215569590836169257546907764395768227575981072866773484032632803324823553910608276230848697422253494599831666982013892647237216367698478465803739121176991651569076567196249582550673477729388592963386622148553436624223223833144820440834054152934345898316215224761022245112463647103440087340809202518764216552050473033646888537400387941873614316134297828246654024356099658117768291753407086248773840201079719435750163505283388284758860468554029989766589616776473626016157313672993169275088562807563045097648127655397490338544794964309830651320227584294706476548247237168529227699748878227941435681105396597363933042768848341311177951697000713951233024723460013555202556878274505760881355856701171445637621103651844127597492657163335161693172686940004142628678351563364934844954422638980647770513129304516064024713783978159015101983412166943746576095509769506685196031862797332200856045148913781742278584721238671900716561133650025065288213856422631355441189714416344370075002725053127302978744586038720420657357415829365837569274496188467696937605108402176204196100080131409988017218877865936793595810842978095927262156171755433339276177554404702240641322181337851882769829733052122737146598533387215608150949750062433982880741360718909401829451633246229733062503440110892830545859836254312715120140816681731836648326001561422054077690477828327255563183989363490193648047142187122232371794076792432799893010719374442901494762102021362775096739399454099795414173776279583180885965296481440013230121572527172487362495219681758704276621550925804817932910558231592353848157803848884592993031050099416138733615631298639185065107793427424948741807747396954878167574288406204151471028304569624664119807261533785352893382403177340574084757600016460771843779058822839939455020486447464343268376788096932717004045696286356815646623233851460822788480128378394998141603894877960488360024818896919719277496238223039274164513747211860430010032701888239567124381659747372191901818034341043342019824387137671711454714458721944518707753267567906728813375606505714166389664648300095915615827671667139226375125486258226258197124734547493501296480665752624799829939462494698950885506801970965378098064117846546915996315426152625548168562626435561407628774389314343832770143169261107894514127044261219805286736029828152320289310968254996997097875383325601710620128595525732309880907849024417096191407849634140055776518797368915577818467039636720766267898651639589024116836352392716115849332814674584509260819389672559782099029594834981059279680967352615705174210591127321109527346128286891204352287089662403283403309959440952926175553547337238201604952723159257160609887972785390410165762422655821456549799621477516935263364244141695122370154803419117520929013024328545766313166786457802200879231844471509440787570536318911350316457673249727757547415817311631878958082584959412305074913855816404546743354452542136388366936260597748932349384683837417615594594286525654294892615057792729027946530382548261803494229244464922863648155239823254587688977819319621675611892934198311942362544957936178590909565152623484322360832570750904355636483450213241027500293609893869491588420192976757628976931376919382456826608153861672838464574691718489904894335107395766227945718562136501824211002816854594381131560509547738978408654826104990327387503615032165976855107110480860973870836412758659178292230838914395334934645348595030565411942293696544384541839138469107505588259353447261448261765600086578618059862177637955148856280195289579425671583556284537683002717644572917354393490205703886115646220505593152966554824075708224343250274689404948366295926331615101781770999146775592929665627655567317530116500498257153852783460798018646845095339215174386228220063378946229098189772383962748977706860018865614686772321113304393576803691378840104845261018558678177277030590103711974129247286614524245033884033055069757108796254115119492178360492685093928208913468029195220409120127807999078121257808846860548285002932238218872115076224242273232752534270594303530042541684559612801423066371101233936080084075633329018281771154191516358556625818908644613246694092134084603757219354821526312557635868794112571251004365815101812768351958171499528294509952036107898546591535967833994647751120131067288628563428196341185067691277327204368634272503306942558524462559582822654682186533835826401499575026070152324982921584792508992587151299535105326765700143687472078438755784318288964740403807842790690784682919174111057544418864134755908999814416727803428359599035833489384812402083130502241161731124447011913102610864836786704066250750681342656552714898499146024808110110413427720759223716651879642578136480996612445504148139401102521802385976757384143320779687014615284784651016147739321364663409135057122984300382222239240827300341032840991794395990621109218177616999556073500705950649270538625361735441593884255499131943899337886419720744655205401347020008297248909800684531296409478368339993119723263847202486255181082445375542133973031954985538028702483086376953640410830950246143171513934578818116831335135818414194555029311131564601110973992007588526760052589068721028703808291973678740339595255193020897241572632815248676897352501874823899957204650743646221468769607454480608404335375026640219979777704745903728881136322414107406506946450107798243791835557357273578785635476423988301970592759679942714402131779259517422364996335595553313332446153820276201471355679422557650828420965435207548737562979242834306004927809170722941823841000896998017037394757154997299619774274693819720171727816022117931668826064396780045358679325085189052295003208076391888910605805523752620586334483465936485506879902160743263119109767897182818900799515637724997136408916259734924883019232436810194657501732582535348937388055395275355620671093984806474381551050720619621946447990013039613975047214196112081327095889412010318220136450943498839082420157371041490850392530931586483415805951462962341080907194313896655708790848625949689262873903628725847134198350315736198756780370804543536392788223657179264717746970992811005165623828554618826541104462069399469814563462717989576237156021283596594186515929365597402428760826923147301574157998809486613675010200681862113099171054649074302760345444742892951042043880096586450310278854940369927413911787676836629873043084784803828572476166748836643208582786751181667822703741639138645791941931680914122579311083451410347238809715636273821978190799938944956953266677754340117128468951747781134086474330773608210499049887168110521375933254918655060801147516723970975651624477402125208492384573423247105439920058259843174316603549772178533019793180618566795071140081026295903660761834590964984613257002522809349362341458000490233503871160449156868431213123497994888379663128451609527659912209769566053653584324939724080998216183479578678088052525094387690959379330297618825027478133664448006788990827002588920435601689656192422178444403054537675275113676153298149875714486834438655618273536073603628083990829838550321488674307385510230567405473067419073876242218429752790340199830541763014042318418511093598141556913187756811120273582732164233917984836866926154698551812448922685922047109507119110377385404574252434220419352665172516964946842275429058552092820513134214140259223645943448309481598820509045359232051042394832168786755425861465742854650481546029653046743367138016866451051602370812574238094395332296915521357551262769644303277835103348945495179462510362807366198282393175650771581319230670556241265761343608740807939671901966636415684102680317630947786572115447178328781869489353442048060123188737501359308332156589523836550790849980655502956593148542367856280282867774305005028266126880122099640322519221423850656949333783975640762973363885349071092330375829033193816047152589075230579132264648690832970888875419582454460288598867643691190645281618322882748248065772939603394610584660197042281591294799898905189051117300060947847174126039706389721064748915332837065780673555447486034482065431452324966515750171711325537145622776392898872923934758647551118858773500724410002471285875640366912063645760303175390911087661564270345905515691336769108196985154880840849727553622597595362419864572884544120930510235984049327777850306820681170559566343066511509762493443611037676746365772982615445774729046999326122174623978915595850324765093313853087299610150894370383612244668201766520745519864715322185438103391709660063278077183961935567421624703600489985463850592381197556982541292390615329205433419698097772492344234014291507493741213890834882593727639257560142193551457867480345419531789294511864135483056006281486479228660198801817853645311492799395335474241139986713201512361068591958842149552952000695360420215951588595346497204928105571983454718890745646541996325842767051337998071428304800271532706341886607262981927904843751051909192673608097914648084157758585170638047042742660199354521699203283767769588196504496559719713180564164984693221610251433536224828743959053457108515692574406950930005589414770658461804280680520695832018451043219029742733136446343699602630506252269766529309080709285541629161928181265371679929141067012277774965549173468987982953703062185837648303213452730210759916106073787547120771916899402947748700277710255946692117074988620487444045894491714238261831456709845899607622124129130022796014666994008823026502630823361819341699328562837744724203152382503480717287655353137970179219265350503751828029974065973884895752457209297272147521900111491243202995034848447398747961982601570007285677401411632533073407730506670732175858277994682040990196551242284463172434941593836529970324597275992848561145073460638175241658278830450483110478424575429507737532437118351431558015939715791720885407063560148865592015801819581747851621257783334320754497478023547166879466131662722375954222347350505441131311531978558981964335105323264779460407613274742757632683643866320228034584305978154875099336511904554450047196058453312901942084636454178612108162679306814707507882511667255544788500390510205779908403323003562099633991595170518518019132431104443006902087517665275101370067813655285919380632007224103830488594914258168130085214769603671256124000196005860064476219216275796578284590619740332476837629059408948008598315848042012241797952233065079052402296433849281895090338214870734442557474619797385971775070949983092713273473577894809512289779913311337055070092054559986145084502452540769334216097759125569713546028858641591810250346119272237610943230962899112079009885281953092222823928151060196240971304780653408018276046976607089301414064331867769056732841281091308169770364003607492601202494791919696588030024083808773893126986688077827154082893614203100659856716219810916211954028693508162024177758232454862743047003988253276969198512841810039946286436562877455908608423122471669417175352049408564278627020870758204996377914285877038761537015118614187558339749613103792982799151647626836519668870261549967166173212592462096824017159472185645745964464627401107361517636615632047846517809514182982108431510225476722203334052253564984183549766497309694430833852681254529914417270203108137088360749962080162965231886581775591008994124482642934732102002750368817202300712315757922558013192219176083179236660975300195056076104230815888677048917829434477042479095647378079421607457687668761968970016533372259472326395065045027535222953566242008406726081837492696725060048008034564871503071140476252569829263367861552314175071143191452709899360405182121166715613604118207118643062442582212106213772290934259158122517623493108627648162907223730100649722931854553672216386184302720008102826199845241196321742482964755685949499466597748143026016691876970505448932972357431453944968673472303368138453321351869274544635463493441920171686205664996973446692228864024709991555768672053718269340063064680193324989516076568992578593580519404559754980750236494602513167474427960959690867950920880355472562222162450611354649772460861811237774859172488847045423431758971149349532379734446036434816166020077830734657211602620710508291056400516203563669314840596978057507114869816142881053920260560857837059714056791539914598671336808784677429283406685655166437728004948756369923933074008738872712755994419210855878429954782291556037363362614198609571831343576966769198357195198110653968453819633945822669014770711438013534359001062607217243657184953369501223784129919141756499548117554817771635149693213778859348118490322036680367923044539892089797551576729363445710736055521304820571545871716740032692582207031646574999209426039783492702605198448514461850151631040645462761522007666592615992043610732684054819331460686244762320807359422426155179920756690142722288904616539711977582215009741757797688863658808560639412030879286820281067659904442193989930961250245503071658449800245890640598976486640213415026972783021957676903939108397858549564019677443201107729784140721841255260886870676732176653330936596519373659626956845137560488509903011562934478641201662101523838442291953377562109979492596854348196388044054049564425832401347572330690734483694854560118873044509672755546256053813871781376495315474190651792965365918936907290988003796168760065689937203822854603299080979148363649477055158427873442946056768245834709675578367054233899724841876681027664263659872383890849010213855591698983983226499638096886921074616580888887101351656373736453743428542451400093313717039598181895802831529159336864861287540255115124352618963890224399822121582515142404119813709480641027524613642584765043446853258210979454318769718046720714344156136862629348686510055076597800252131760464230731457766210314515892063607152042321080024642256315717156595465409965088077790840065153066699383519387685717330864093089752936579883231774904162970416556897642029033441056156815312442814722230100217710327028147745158571274668909393193440618943387459639840507443810955203093881011231023801248964256041498656963615514545707438554193100146967521126370132722630801755103368141744035450801009586847175051135992217278876944652443479423672382090948028558754531405203525993925290331244649026222115193295100500956578115690543514744143055594590196410955007459804685138798141970282081970899722736680778787050778165701133226655560475053870030963473306031162664370140281773593915070010020416995926306576064686880749992841121878439662374322254334366781744276006300419628915395638155258020519620065707662187158287999246829400432924181036149353197796165096294404369585667274362198699710794511448866471720502232664136666143665984481973290020413574901207552694434733194796160188010316982303694369775232737668383895437247308952389665279460653305301074757340819521087347560820149244808234313270579848941343461725876445432123087999645921094551122058564126127155724259363673027198983978881588593268993870364385447205464449440851716188914261469999440180232236812884667632100308109799934346971409020025682265048179253333832250534074254318461455676032091746424315841852033471066483162388946526237200218048048976686497127431751061033252960004385985590351554714292173949193197558925099968318447346657816628280436036400467753707927404113468120153109824773723758002559703025252886047454734545889831717792328834015576835777481716894100944728301415152206708998630942920572680645704512456484861998086245333237306830787104407873784743599528463812048992263520912484978131089286757539039053554568081956338300534050383915177297074340613371442424021091369385840683247710684271726355097503287488564923386109385146807815570853529926865119958297911244878866747812918094143394772425416621032676081257957209925623006216270293810287504841530052343390548092390994025245957219791441471850353225853136369651649869383740171744683152452360360415732192741014135911722513090829751066927587240642717860609413889848327863309433974764962623880218140365721803869382090759683063943839573559697385978437074491668533461489976357629462243718438869368643964724979804728347165969644566304069422153764744094875091505296088264851290364732227657321246321618040984222533645822857107728783787624986645658934475214714901249355191943410224769348167909702377325485321910057270359413722987344634988281695242411700844519551124959181667341415751400599658496458223228396005549237165495819120514238146788761510902919144794784482986532801964920403702886078923742468692935183363774689129954772731968160743128047091567632067659144633362841753113873870604920182076466491152005956495239123471808601100502139928892136236990731867273550956142545815614313886945361961394928019192378369675502333789171087858601035985881248896644653788024351842270884507250975992057937027519515242497662041816578709581856116208472725125549331382676911832040292900768145359305038306851921602992242597881732989870109897298556878252850419841442018484088073489930165065885977133549847870622117593148220211554941620564761540689269986518353454945972102263108407530830684113704616897840242917688950661434360462785038056684417189811033539387552334824441090784332684832628909396271269074365691846904905561129675299575112327939593658686896064326018967613190882902928898981211724734039738159601178304013490138534484067638547653890843617126694158486630855966140358902213848913025562133460693710920795665339531220200634770893342468234511485337241519700155215020640390013629252089303130033081291998194187351904113055012621339591216470206296994578651969803319698260066653602582890026058914150733882196616967931073017824817690665194007997847017224647730044488846707186065319701147915109648353111772890893923531895979821274610019600920748097997236504348301859209985990317505965269510747268903318101666940033769188486774427210164432249191458535663030738226376702200737920097393427159926867951271442207842358335669223157845494556554917576075121807374003697808369300206890009471673728327207568238826854837596645999570877307379485021939080734610988828309843372960034820885253413865570556288059811969973966305241549273801205106619233255230374294112179818674486007153407972491923285536606795140729275183990719921597982854616921961286690590973332548351103492411464118805500834295021859770189570403073552016183145982617009942012284594044578488055388161515739088909864579678258022128789566760816906748265071798484304230809469022395034112185860869852204748419401573685244104822080199049620573844258146822024548672474271338701069486797656216147086784080627330609840864361790732357683523848697951995742854090190807797545925979726412861071154318001097671881449941450953256918539892986050353749881915781061183767192298623984244193885108216419081073545023393056404149441478274078377795127080281706944898999028821397479957204230372286571499666021465520397605525146788964603280333148058069306588708383666361470341147533419691136652830057295662626728790816214842602337808657296902371132255178333641909486677482207199972739349330687037069077963739661644051060440459014185197581331859516683330265699242567234592344562387380099259313791325108290634605103408395080653978522740482230012044212116976668215832873939912540706555010204831691072609510063137045596665474873470430844837661407274905020639868430623197458457575836021136750714677160337463697841756713715548089417383341617790696647131305229200837741095450518012992024281545493692166638809827044423802830389519223756200991071152358899085216176141422229041092616542630324913209050354645230738134279605249813814318602774115318406828386887802664208154688920467410771200840826369688221281234898858788300654866682169803328211231248533570596530387190252822868173168714605563612630411544967545342313182686355753762614507965742853004795600634064204900893951718380208436576276858219745499338655496038041929040867335996905439273967369103758565336758623817911510549513466060529826035265019371519198751113558460560698554745117539115772925235445160540419283078920075982637969442872168053683285067794929287508482170388809743654249175884324153678832176586164355850835664795852422538594334014363143602996269969598397380905259407287954883386457010971521742579578472258319426776822514490113196973838993314579782239835381996062773975264326611324524200415641049312946285405169992190643669948597768488098823298804202745308156483647307298853124484581330693225605164782615162885444839750250334235356087337514594953873307168751890674724712963252567894465546402969067009951047447131949415741609167604394904920040553848413521981606737461826964599472441934946176285019341831489294519926023747918128571981299795832929670394930995545286878107815428569861800958151434084164460228160952169385198495738546196869892151649706164836196931969473737491952549709055543523960572074373037546104504172611211396084496170277919250279395770224219611028443249684078112035951498517728502777548761402322922791675395046280193624372675843447018860112695831637668835953678180295655513482063979677625078789721740172883218786626426309210556626727886293170837462702319323092768386110906276493038430272543664115644217048353383851167314559377286913487920217828069497088729985185680342218558863742646318898259936600351027788483256673216448663908405241173906817603154978334967257956501955774491676815196025693460823581855943657776930979369584800304801246092945495587521333437546405276940873658653974345577302143070812492896527322899930280433385215077601495280123618889160394686637729605416679122147812823787067773738323717967172250483300792344484968185624520205981737969174167390168829503342910479675647181582721062471786972869494318812274321612561339441914365561302180043404282792580557468982611204971742028534194670619154116407073391085043329314221101549554933626820319279949436004274347885543896523073186924515351118897880536313719585055631333566777414004411770994904508219163226609385744206674323443540836809856190443530077350258545563760155966523487746404092761152134052899414972776699907214651071249496341650728341927234405760268572802107169170005821914983447669927070612948924809498001924562901859556398755659368135943953959785069216695394286413203157735908987752929818346454878631615866980912768201004291837125984526675589521346578314662684395621807372049563314155776749059864142088429490363677180892821352568506478902662004386043702228232474653908128127970895228379211930437715591461988662561341693541644524211459412395797952317420241761588200242534088733703581092501119793866424340353163682105564535710038807291929147166104248434548004181830837334802393342702618473475367978573811880894768470539347040351921232064373083190394528016937410840841177517485988002598462518629447136480603809388121705584972283940462259370778108687253671591587927022766346789941971826021101340909879622233794069881783276071376704990330682136713494020760839333710636949900244652704096288931902112503601549968172777597612782893434353671498527390408837019276884860034558958857168393543902880665046417448475885060061430600798419899337749704754986208453928682935805046771086372787461317720294951092864414401862848523180800052713899423910351690762840586707653789121857005814356449148587144933678656740862760764923390601453502597174882236821617350806252614054529912159890774768859053233682119900816085794815428450738580575166461014859275990531371648764114076046721647992142708270806717145722722393933937792810541095118077699568927708707630610640178106396717418326257845998727745555216979444290584118050306639792922341235043247540014179914730636893271242168914987211704951012148950253994020713213832979491647511107571912668981260538701031312675460300253757101601168296168493120652894559035570893773917391061034899078559190797796003657390378422891807705738773358320081274554849434509484626566688534358605774255516155831592799945655205911456371675147253355527208163258436533578495356865219744692062938416869360980251774764233548841739390218962689369971570545595338981835629402098955396661580456657802896651821307470844202770167366912283484432600067763269654590683936147599546734028259573963574977609674087142245041266112654389941604423969529716518879285476067903307397325414337697771077216698398894683455344005163753803134550748818252143289615448841035663356819030037998539872200802249167346377484570034053254012917919998250348252581117205677281054410714677790021369833047162193022491535402024219911757639092208514210191716677496656676527235473980973404028305134591801554841510828698150026976409265927018469579026151375278881562148227710801334600890332798722154111434220736536329654061778590243661453284419673528684424388589975705917607219461777813653894325694470732747533584396219176233877732020407703900777999548319278354759960257294509574249171597699855656114751000269553712006620368884905970372036657577168028280269898450764528382422420299824088949961780353599461146832594751153104506936302813303008402809679495687015924971673225050038778800042189243200467355733501123256681114784660142130215859680488999407319627465607081615926189162350419900815957886990218551944955529064764930659404338957672889150437876142755953045852163062456192851958497081525553077527642532467407600463911611741390859482624687682179019137738232473714374228613500368573803134162400403466577153361913977810125214861285161917665140753462324184627262986193503089361053369067336604323604384462665152735735005103135219485870375636296460268090754084195527910312290981345066018572991396726425587423455430184121788061606707090473399344454324159786794273458891055346863696102517197458542888788031956744800374097682774846802509324308358706501438187628634286704548756248784336066395445058623970430570796694847126164879452441440859951051063487118739146405907658051741344193786651730744914249084761903939529914127241263097169106771292925867612850904873267296608599869392715400180204680795835285336002389734939867429911623040176381880105506993256084063158345490003870768067113385237130524454188767690670367483350052926070571570395686572413688906967068064347032041523334208124919331687319315306448098734257300684606055303107844254128379689312708326637779678509808166641017029254134981054075001970472063613562590300731434146472836473665668142061608150662839408860512381868767161320680869059453971415883621446471417764861163986411216682764868237183954485076086597725438273978782277949942221763579160787169764511086259302201395878341012912426559560697829666505802023741475217022298564951549244165063511595942349350399791383014695940626626865181667009553342466419906829367335831229408819027036802431042679119515126993249585035210587023401235065823476482710405187335859669660743165585388196755806047567650942929744190216036288545918225891800946260322217031663834614465694777915222264285623471301288382418571096748861158813155362775086280162869580676155339581202906827366421989229879201440474136386930600896532850153388038663052054229467285205525341649891567420160752443267470463204243506774854420082401949317739512367679131581744863104002944918007094135431106339777683092392074384234906743548975537825446269602241397193176416459380481164797590882949938113429119680184767587478372878130769070774899708480980190328551577898641766149180636391256968510305127204095982031296905211628447744633137215463321865520370512640694613555882360821852690735676283845861828953146042875503851929064021379855322136764625362053498683246409924276097312755178114130609229058872464674207244502789475105649275914501432182686167423544526031134424873757587487242031067676318028437968454043485473310455088768918972475911837636905442550495530323444086036907029335919855835000339882226385313461773749209193517919277353429939696520740057229864365324428739073320820969718391620241955152949432306376951712753469130694579335690860163104656285233433293479004423047120577629102549801919961789332216549819173193849662458710446421483726606868608774236810977012815498439586277798553823773424292332267108502192810426078493178345586328016894802785471237085551214916858758126080840323555736208058681576541057012165759924312721803737999677301633637730198526214963857227263242147860890972054464996908780493492895020261989182787638598751116864513508786126393453899720143611826709945976924071018396307450845944518564911957100114813027892711479140112343183468936519753002456480191315143184980675163027633251375537034449001018497952639824474592770385264551818438134925326482834894193049813240954419215119446280367986449542695293760918797002202194991300862957768702791228676248896019378482478929999349233195589525534197156104423821840098582196316922266984896097489991660575836824934735694613738460267778515826803919527118234534073685780809581579083838633918565003581085161677195230650848040544928058205014088487168665784238503197042357487587770766636165130241032234830874489040465486644062263344790721987406662441728091392842123441179876741454327917224027654938340292726552349355363695612422865082675132752986331461325628178891023942372566662528926071447467392075487247420809243368386041727201139542469761704729110278135899295087824671082091906088375371155075352566309441772639166624812832850849571179404502249710793414896659642197181244401067576691487223295056127647577129136744595405787393986322597501029235716967016499356805872000811882846612813556157371141464781498977590948911632115969758151483076657629488877534193104976576204696155018905360222846577751263327278967023779818905901980790879129175244174382024409011322278174180004578294189661897751763782021273190251026908929567947114230613058276018590053161129331645631854666693990966291106123886541762764774369304940429714410584776801062679751327279671442466282876437425057688089993117607484029429939249377983507319206628916818567381277730846593084348728617546217099846679019535352107623916112997064471588617826507247296558986466675492238457506210191697858615344100220850290536756423860931493040622776241857807956177965644200206906007615789762925501014078258183944651875270384235816263998481243293722674141650957237126179430146718902292995245600060721760644940999467130543653949038681406497729349710893458203281562411775561837698903698939906418739778931403186954968093655649681039337757010197398576566276736515051626365705445896238906944543188802512241192762778955006794330453078989570103807786307571873270174031092579762228954301414521156545556991788752237026638349156234224534705265561371823015835884081444815527611143211996963462370795492452483606032226962193268807160648452888306214635818015842480956621569635614433235356450675958633583498281974834630488115449105603543108301400828919113662229139872790561170553432133804012305741601576279007243647289267347385247118560817513266907335447916314623034047383180350877313779585073399609036522968593558300206539888852332149738255906891682373677350982334946248411648503271262971615697910129241119821758239576999771859383356398885232058961276669931472064403599174699556024167180455778265483598133660057150294902428398491957470869984901962709293080912558443153691426545280338849914246880604648857652641171661908522868566071242408779249744066152012202927080385965326584115393371954221784070295979643540262799548397904206427300459691224202140135192169064646892242531267704827552391635317270080251633651571092713469851131160321928147176043901921836476712467385775690573585596324640808172853257625044677235605149724108549109550362218727508953320609623715612717017928419719777958250937553121189196646735410905342395611393948482403215753607143070391808479836688065288099678136509243273850546971633268731699203338739786519868632134838712970228795820286261648584784996415794504821334340316413504521071071399730923234899253176960041849718847014081154072759931974082647032649931470312700395176782297377633824195873600872377718783742119398686193298530904497762356828924073951565586658824428558619223315570740033401767520890045668740887785992822134028510304720489389480008923264141224177190483167675970129965937918899544951027866173210814607457936697278461489972677942634292342839220544080470563053108536481946406466117964605706664034549870694283827604073718219853009034857189144647738249708624359643003615753754759979818303066629308935957746462970809130271271024272081250600278543976419306863238378985176682376392759587428057806505959963129509362214785367838396240906460988140681762273339945424776701447464564141389865939776250911797864407124968779949986889507316751967557495331533260638608310257417410296008916444442038042018148330575709275182545492409243404920211323630355777233070651615741679249556473441452668609958039917061928585307771281466894739574439780173940713396619852046894095196240456722630491349058395602542656942616456888483128950247162729692899053225724294139536178821979817127392549472406050163697130565527500905876622511390952779266426045127697738838958892379227709746516450436816691479983380768721666921200909885542392920271989406572447856714446628107196656814040606149661170571700802851364051477782906304533223609780447235598907781870472099291412475046512070686205521146480715705386873718530304480312884875371229184110862632776556327336202418315252864831784875557551840535009114289679316824721395618740601190525894894471043517165010598675413053857350195903040746552733584347631462260061163833096150819514335565163653874130412721346107696637334391003830186033259309048322411817002845446143285476145326780074039325210590016585257851538337737974290321410652744320639528451903864768453003428638003497082448215540435765481480219105630239610354156680618795176527117780756029539233286659128221164535770108600330241159236236344719592200850511552577021715365376404175940181151386829010357413288776243731940578290171791720345778322380174436594281585966729165010582949032242561493285344517079546077082615631509492980353583808941740480861488641365902598740553710355816843501247881979747424721041583080952743552211738498930091406216066986649188735904545307900864393582220712612586746398732344202625704947625489145813583937778644809770114516391025218474444171475887380564753093831633251028013817446878788817203599313850994296359954537674204397706560310949440813589164802267686683668938622912064294798440116396227061319806273526161951262929883086936593852854456996579022400009981636447182121411947810472643312706814804385834746528730806328223705295458850419624312102952082731631121628642466085387437195009291893221232828607057152660428843170558129371082572560999647777474043987740998672650054612860708191522642555858012694642924195333464495891560586189377492096851315201266184455079200307635853712493718074432388996198331781802357616853585684356273383343641356341020847712305815639074356700631731899446273824085316261424673609843637319761825226672818744636680190559479274948393552798389269529241456233535595510291352809548143847046785912780378977298497740615016932393785487903623842584083104705044453983905428385344790222700685284427191191610690940766193794811318736386398895900731929850229417139862044735650969451522109732283965194093089370415744468574464059719496448400189693078405663240116675887535788090345447686444644141417516390647001884473060425013101222129512390093408380428827897628653568472468755585257692032174753633766548843645590012095187293556109952714821399387922960001605129891428757926923120986453111618341501618742785282827240510599987443807595340656175725479023798518168488938173049334045640349197385403850631710134330128273273055805751202486533794637103732380396291157055954068138810606162341691354092618158694441887576343102864162562054177251060135245437890254775939208646282702227561542878518486234436537938730356854990039872738791194890684218989089604604097462413156934798424991547843806216729153332505235238507700483022279372541191411224733462143705635583799469254484062458369513961918146190349595056096380295051157134599690513917492682397584903483447247810698340886387445287984646238211132887508401440845246048001297914899479966268142453058677190968142977437129140053668777067049374481005203498361122297212699164700744332821043265464926863961365592715959923869751786804451433882231485968842806417395520845333960181980802297710513108797462633343597441706142558912848597420175177164493547643516899858134914748684882111763734042937051580823484833798540375525764571159962808344524911792189798821737312649622349645329804048116331729826463147722563093391420363337182898322107600313161614815943634226487898803106334746036043185618849230105471280526452147971692524381912956742672216323831196616408193176549315006161835711919877079643314012227810280657363582092970394305876516793664761430022528189650455681009984465283573918414936842627318515890460652567886159912596605633106087529952541851806359042557141799033939814804503986411901005211428632027119886971511685672331168845812456260430849351599094005800007294552848981367189250979833271629055586600692595189344869938059706915908156469655002187372250922067608422553713330676032502649022289004566104890064890380066001652669354687796470139216659363575981018432372103346357628869772883827234678742337970954023576153857820922684798362241181631676330026289337204344298146810587952960223566058916329632219603399409763764344220491484854596085028391326265122567849971344197822599380981972574675641952872623934094416701868113406952830594599808225689218936185621355196041194325833301228590011531576388764517559358360710136399293574006535903986886346576796865628868162790481666085571977442433624284392535981753907729857669929627225560191034253730274109421288766658424683867700707553105968953449874662155155793851153330342145427931680970019329018913923160206077904497167925753791618011661110070830187655303354022022394612463156824573082686857758384525968613074176676568776101234855450013176890202720747946868097599249945791697700553832221850920941420701387459048493927167837266787222187269796248969931064664702100839625902194428046195366801682332761065542684619973890542630660302203556627096992570230067560006973305104815261096923498478563858580753064063688566554829176467166446153209391143091313849293019469702143442174946605809629873396209420142967882430549373996701302764845328525766076305679296550173479199623287639378183166555858702306147818257013811463263454904575157353005228562601071859804008874766193561786954734314712082914610223898563259038009697956348480456000984783626659010889576799915720544196659199935988576743394887007772991039895375479401455568365663954769899722927831746664605146215907960133068951667939392950614395703073909014761916764703474459622961239980642521884600306680267959698784583273877882855945114115744651140545908375461741118505646600896027791464554694324491015372259913843743211041064535890413978031478061473570647897859810484889915683717370922226950454047257669089033288826043501379263132441464669402747421911348805466055704891128733394614622182428694709321365664880004425656772702588869619789248130812239967167184385516233308330445952451008382285980649007873902674992636084281332583598747520100692332795996244395666097886772464296831765345543850216544395668957689575679015056590223854116570510804833121706743769256342643395546696780579786312167433908331333455223805178525573158627632566517676605682738553174529331123973317805241955233178054025724426975725503299723806577645180304955789637266251202052618536370681122683606064554800658720684887928114259797609509422391839712366263527531156457843638712231981605240973933838248273494190752976403900875891431147875664247950819148366288698270943668611101298461044106949552387652428963208259918567020116526077393027401421192458926968853825515425465978101672315983476954063620351176428400381722810438931086362109100036106449019057752414714481029096241856944861013661797451036439338981511829436240814143569518618936656384182574198683841439384580833955826322969421345821882717830872622743294277871306457351419602592414434349087925375372428745448822573899059582107199992103584753252280264343536863205877493049793887515012858926476996830445835208981625759753696932707570551762386006636996908818310542306872937211683406871227464162010727972497500028051508687407482377225438676321022251366936121989231988645477533892741703648470415203289988571709371007818369568331170124736350495580723012967643502596003313608090328814210127734172015360736623301587509487733264075472460564575260181827949885865599558392272305901008407434115168197177958456145303949664730241826148023897577014893744643654285583449627639331823068709288333490718880657213138694426027905950460145210394283167178587011356130502940568238698910059783637583651927311338927876043522913310460859679313305028272865770004098449486272724527784128464980178299424716832845626346671355623706977173026550387216698643857595294894396893324664431924065025731719540853491820451206027673113961326179457828175694633734400953627592229504210830052032388155276261215374745246236668572142005986250754832620769279222862460586125796286938111893419177992701146798042301158647475483001178245011687902263537389885417042704932356154951178132792286900919290045282294975618943574335832657619339419900685604800439411070159641571753127175316942837224804894932259400487387634019635741079571713837023322089620883384758664385257331589865828185921236375092802823007592653874459917259832386821826462315821569414072767008255676389605293601830161775628427490621831786149150420861778553098531176051947500185080598065761673681445948850096721121035082295028880392632449454730111986213619918605783926437048242438978955429163561257024349917092617434358334779815682305172765123137474516971949727599421008087436791469514104788483099150702872169148361715784896496710370963317005551354611697128946787717856024471108844179049922805721790094423161109311189589452600526443208107305560585799889810276152893928285675363692728043305636151283064251667801005659222885195412006178727584538701907675203947980885154498396955883955536000447339201761081972413624986422540073283165987759017311003933214898072967695919136310631292518890678477103300814486657540342080321233121734132120263323815065219875397544290567634997398180575201740403066053507513852143828469031709115549977685769665022666116433397827339409050956517443870485933660823953522064494027802610275960839599062000514103251711853432454369004807920056959419676478877589825061357575231547665530205504738062632526221179946843094102057051391976574827606948735322036133970216920261854124983624301860884663933584540680213714042754772064126681457339537482647255441745997643075911607741055040773122088101408864150998918831215172230256183829896892525163906733199676687037191030525710993909978172264359966167352517050397237652109503726812255863858271068017329277852785478467995268852092025361097198425432819716963327493118356028273445506019545824921575345058495129142459705273173797378846268046266431538912076985136541688205802125583932425873813411624975195876405989726270618726976111639011712397425550855381176940062208294486093808890990390756899457583836199726383917282151263492964008295307895073446197052507715163850054205039778574833902044763671422310246963989303327048400090924018320050743513487510766602220324157744312611720590836441881608373890960562319589142374335817177158356131254124711463726137251200136708844057276951707313149867619652316893200711990054933140378071223185711965090399178470287797377297423321995246114536984721853251348300428411803657191373861318734502103063118840306460614075541243213715591944722973843065745903617791028108504815613260204006201327468713802394239336726402656041808982321229105478490919274427791389710413031640942568452585468841644039241407523957017388392986067022874258314793552146381344076128355979252819769930435590642948209950787165392109643778349545534691184065355767762474087479152349163183402502949324052573528895757472422260333811292075131857141937499214810787106113277131712871745593023472592780959449197829270997384679294343436337101182365365158988251032631143206607416453340489867721154440066312955076424915115855390352866531992659433782422848409709843435579258873518041652280947737844071036580982163213205741294691864121201034519431858890825758185158230816689961177163979165920323736651513619143886973478180500248600122339954491881006944525131088663356728082828591177117285322659339038083129061036286754036740226164838855035170853806055444622697607916133195398939324474823132488869453186719326292756045220114496407377662742700980973235385052822109837424382895943565604647625407025308956614632040695422826087150512811739661319333427924439141580359260027389389821000993005565437564135208359848337616156974066585823304303825714225967508285283375407851859870526859448092777266379496623539937109368467851753155962235206225583317568638882737257108896302685127501216912537599674392509956408817795999530569972585942407024107581756387408342530012295133606073797369162917880437401457050082435628977001483917299297064079449054682122938778180702956440083624942518492740246925627084936078021064920773018368230478794770904023917466701206934916903657883180177919962833206499223257557283508755150364774515101791975698751000143543054999541507600082405487162268600958786127968325179677756680700416026857402690717483484520542348922232359779510537052183119092271520727471489449115299454714490867422902765208415788659247183661092604641561838945933081860033568333897412592491611464192636385498070379795751390540334693447371572582173567167810031991163190639102247719793049741727647155540121313155110725131811856590077431158452068704097042433637778554591737708625778630421123190164654437432753536883627776996660108751312086654689511263731528258086320537550326901374546488751164225556346743198655822356660259141561454599295155108031838091291276178881829322930990742679901904969706795308703496281960179663234850921611586340304134733016634936029253332955280590099442717995401433761789798147986001929535437459148368039954677026819631130081019049143573663883014295264038229739723373234951834242896772949740424422634702760692270892303950889326036179277530638086817123473413812591673387115773130413482894694183122337450582706507468210195208439950823661229415991826046499811483657519767513587095896053452620452964748915011298060331498881198140700300100797203021918906599331305293440737412411005915997029925111745755173230173199840190205621139854927876409501716731916629671222096752992669774051991164417960140218048809040389241405913940586731305936882430210026855135889156002513161080100091414322179577066488455271075765863062556897201094861706031863199017507565515417578823382294514383328727239879485069983487469762209159287571931897217568066344324575136068636831306914310598637672164344293899699961020410014537294919711045170707456219278700578132412651474756549748763827001612117495243399679450348326128804107629409514968996594732310544507788193584133458798621391103454595806429771294859170509683621887495784342750213582674204551545363037582485644386869609136324772210931811736558415377367638066135540415643003951958262290434166469925937638925618719248643843197999154368396935810779201786716044941937628086194688048775298337782840572865894935007621773235144826386965006427839450005229544520844407245418210936773357490388268787578050347864264035954602881766295937939953858463815687356823549511987461360700150955985586849880647848428042018898539623956336540654681568896624239119922986604241198870571751715729658841654368918612120385789460353380831779865455129997665676544392142528765747520782310942821772899369886929690781898884318680453800136850574950692711107308957119665422812858285004729615114117942946026334972351783399391507594983209245624177827769677937851147400969616166472204685151846627305006685124376945878918656438718359301008354526901042041013335360483118585677325756345023572315042636908013290884097121562808153700589304663021580168309279540984310757112120093711249131315865549599005439046441458705006597243590966667966812204813540984822309196493900354453671844942994117658084721025459343621760876785619483450824831037493938568628889795692429750887284256551886361776999101924172803711118873922211152817032795922783280145552067034161800613878212173880792320463004581107797749050263657445260682842641614467384638054912676935164844891768923347771684710370265639706713863931226250011300517075659429853426958474986710280418210065724440064866082783617193944130460317513720226914690072751413970107573579109521202084096617750549987374057376002392135799138686448775109624146723557179186260618677433813316711523179805549186783757977139069013537946307019693174223176995077129105331553370249617355580053199468471461025504411858407885426597037323619896019220151017558166139208530184349372933043802690100320249489059132071878771012830096083895038217327783647633622447929337653164046974998504851044208742919536124116522303851881146471525885729351009156709740476650849882057769988453057330442475719649323957776586262119247217691309564357384638779872830501391945782263665550803487780603651301736125032640536221891773582425637232041318026886906603387656678269160298962709820634158227988994750595883307517055326610184294677119688570574814422729839916367487277913593465873897182226793547887713517337215412437359235099691528620308284754310440690816279584346118788600273098543679405095308854291821808285830601033181985063161171190204711027593453500095100638189542054354579996322504437218963761674932593786950985038465550927616732628094302149921888469663327847557203031738451097719261254298134243550588870793673017732481846747785050342124243200962223404803478320879521506543059260907490600144039766973077563251546907778328297320100175249149073619989539125947582605178792274098614142475430996262642508407656833301241219272355852935236779841557065493388654980529247175823820629290799754995880776005038404484009225987752351453952631104196359161461104825988345474412998316690627118237454307364808943826707372470188695792399083822306053893621090267389952426584218136527740762037319824284720244586788807979441910873068025788476473377050125082297891400355490340694043917761712764633530746389054978998638531713363962715597649061198308599699647838946157463278309824731848261203461804675558181280364688484777326959518088364910881862298651211518022008381508094867682525470461524485048553646555983473434053683310749148231292425425761421202680748298870007159164656465916586855949082936334478897229266239041107813519548112222154721684829138444140999257030671218260272382966977348604876825940836739537893141234825640389682488315018078022607539751399597487189612564910110883422432747674904555498523156095309841006111061562747570398237369535818450208037967049973237820939230036103328983130828486097182194176372734092255598831897118667282057280988667082559431775098148293717090779201304612512638493159348318185414948533060052871867453115995195687256481826968339980834087166870214973192545530418587471675558158301630734419353012664287075439216315924942166593972915017769965876499031634892604796544895485202904655714401896857965512172183037035146185828306172121577492032214512466536329320801160398599299329387546518417073743251769955754712560223781018671571221247245359395787315079678532665685584664733193049123572233202293161872647656524024180019403076684992246068725207828509863482801231197854063387110155711487878804581832019758532383012449754347987858960700188964226814393733746723471216571306159472713378269001938174750542690951538670161279344016014878385317742171952379932929840952454025416636670292733267522370903551084365020932522186541622642475068192748449294357595593857995260765449001500189019556997781442544651178444468948481118207642193662067997226866649042589873197312123558821301102042943523584790583181400615379522617065776628927557272957094688509734262078531288006637932401376432284115852640346321479042126889205824228619447169148435172961178729684657320861875738429657418506555829275212852252507722647610033863568138444731139075164341161393901350766120316849089523770661858183830908943965054141884721043065861714466289920937882178152653054761421935069590798656562995143740912732561693556743904214004539627708254192515651036978475416245540661625522119031379423729437533206768083973333335450497363692118659873390067855268490054459408187523924090193681515855380578513644518858394318159932065256420138741465485966299851778902430999318426736381721285405221974313919325124643144669438924316885359663351846988242584530010766482861581044557742915432352288763395665838724092155027465958581077742997146654059435986879575291392701139290507164054958459196756819211156685139233938962323299695795050079717518609619553400098269038968898637231368651156190610473858939143704165757368535850148959965770799249056466646562597798468531778332730628076080011079552881959774598841694664337588103751021553018524996491739353868633976694423027802836786254594119103714664251273875082884165892927122148475010391455967683787209911579656013084263843885117648579391178780122562707110253205031890552113593778180502538407473940217628649932190086737434564456391647502194072925646847700115126359169010624082474114423394064207014321123931398074832986644038001102044057150592775268188819347944076690352207940141423144958825935497604190234197469081971541085562514740180385325872002794440217339434223544519484074875501554163029487258908856395565306910556252600940633118013586293183588813403775724774156480242978854973923229728093454380737803029100776406282911101219787742768247698893110126952807055413668297746379662949681909509869548981472478313879291596057995534809634368809586765792139572400638465987727947714528212218864890034869992470819353307409298090615487752290153768175410618955691094367325124729503648188207504522352802162048153721369649940445796505859122493222067554506321166093413922269841605075665975419811926348988632298791326098315048550385886709566228621469937567090134216609422503002832020194338477403904971342795437468583380104616580403447626618813337363641580083565257466221949240963691679620450403692085037204616384273227524301399860013052377175120036594519406228548855181275520357131115651293007697638426087410591990583855778073389188233930715617970074966117011715583010797006679989404962311227273079417011616054432406932418922030644305773651913117062108694666091954034393700071557273374351068026120373605870431554507829207159458701299086889757865087130982153574157076692434718512589447414659982806168318160226057295615717464750119270609022876365510655388240288993843793825785289835100138268525388582036740925945570466194646455447904818888461571151618431342415437360809653060383399254770887304062753842045734619571606328175007161941871716665737486190120711059236245966375406188314068893331063015877640252383518928612521729298678929355488788699820711725710254543475932509909734686567473552048251092163388021414900909383773257688786361444382706302107407521663181217203001917801649621823644321327554103807709635209555518220528432799617073398411503523990317006635636372506806119739148561081825459643836464286982790595595743256202978282715756225144825239798909640463680553232995665705745293421179148168617609254448479302584410246172054237788993733653104712952574437802801413034171942109040376542613002304897620242266408800824499931784328841216830644002827349976169006722328720405664036014181308012486441803002290888061615202649696072381266298051412515033886879077921671566755178111156585470251506037698311931404475011300954847420545559972151965988898702466286838256788820873290396279104145020706928097720015365707789063508696823057294332440158963282100096021366246507382415501960881936542679106082619298959010446159076370670189883767135441654376841213091012632665106088102799575431208464120334799351645335298962057621685312308213036260582438575069217287964175467358530300608317214407533438788376874923413738166295510127019051677392778265546291271170230502947301160879851557948999775505153848341243658275494905587044773810410909185577401070422400405231852458411374995185163535817722518079655180528563424782428863858484186494439692853091092337271830318934532363688631174212668746835038074784996795950089620385250620887546464861738846990366347332897641693883212164032219520112166636523309762709081640422064459673329910620711965152852206663839790365299858599335572394301206921365265640766739178647429065197724593065681664142241740125221575885430389892094527626830471406586203769531670985488292041428529752605803680113842438168238634210605455815715337619333987968419830776944317761264557722578256288856480731150606088351098365117675476659665751259918053297617021631303681348015308077272721914138751012202785787636915237626782074787993802753287023346371546264145585664152295638897725403543587405801207193900738689172899256665330969321308329480647859045412884928053458135357887929826058588560108137341433846510423930349438326987613930935214049329376170991779841783863798593433700082157981808253881946918768123018954872996454963140410146703632070923276796759964907671634008360071846554505139593173112633536358568319011398174694045434099344612338938855259065800362169244085188795069172450366317461933370410918194372852814446201817907521528264666499811761363491303598516234908028726818952109550965853364406158232695762355940774941473583482703945256250027871994889352792536306394664591742513033387983179917580718154598622418933220614204806238345271633539912462397721924586416738861381678025176299373096128570166983285230107084481421508050418477261369211697706795110071488543871959597794594982442397977910505946168347900916068791066789791143791020097814050326607865895593021274820698758781305399634990287584577556750311724574531496388858785798984243600376516653558573215931548570831393566113295055838749157675117566434028515845298814589164876320088580413327006639559492967222374507816540676818547198622388301610201273093991464121196610755069431711349882237222965815212981434399556753065024573070515267060418367100041341747605466332801922833089533537199345500666854416985199585388218547836414635932334899567612970093085020029949877913863852730768800720368387794802288615271165673183192431478010916978781282104388896810353718087271540525445982365495515601988866193990450786849230646520495410309352611031763803445379645620307875847933175651880377714742600834304975249857409634761167901822121070753875138887399471667228627217834166325191277442740322119935297674024237334864667515779430907364906668797740850224828276444301966721624245954562904854145412527318696785056697497390103251415028856311189810564937007328067134657432747432345781994530531149335885338395077958402631661512516572649843799900991843972183211408544483735339278217086090241113805820499220358423149400900842270291557177944029020715131321175810344040567850636150622043710754300953496976587428103922198533877751706691890531963302825650754815479997712532687755956155564862896986393936398878238905429248209825544006838260367602095414620288897889119730668914804530300340883001024703084512779846121653502133922812444915382619582527329446512906927068978158943377134870306515621895522867848021820703108424773658770613349852730592769959024457825683469854007381884053538849525408296532831793408218111719647209834983470103281175876230399302164818669828903212001873629103538791225399243284757981488213352608262438361174711066735547089910777379217587314199469494919411787113087580439603011703135242889281580376949012728540009198160806779590378028675374387946463739031483219184278419029347092796569484655427538864050858759146152997438589046743405914736837613450773236327971031240607136125287572406195256837864818025150712029396313115272525589406219031831304459547813987669674153765644525090313528689998582773597488425004466145129244030694836190723262761295982801766267309151883517994135317914379706758518486742260131673977334378376239475922054808023694018288688773654978996660959983365990727482160667383700001686307099559992726440342792925065215192913257418609806311636805198064497535592703224713980742267630361878985956517089125077479940095196549012496974081961437348149854882623098246088260217084286057815627395365750686343963148873351499550363201250475367845535458304340724097643641019696923859464794784200927890981470298633315059011979556291023431525366187090939253502502342014717880210396104001885692475205356177463036695358505955180198031465155276476001126111968457691642212842900324643092359137886989531845009663914243346025798789621419938464822124123197986855402829211451426941511430237371351950880794890841534226545101275827965646398006496093183220575345430434195486956414955165867615429620489677085831271902777899698476481249307294663160225961733466280124307474639641561603611398455106006099707563907203389917460422842550192962459467164725275773756652193837098852079086031259519840502963223824860851683713303117478237128144287075175394188953302392428766609642800268096511607242168524820271820409992737548473038314931478000279539537918673142597808302401766593167984672316269302190904101351368651430911888396437309626313558623639101332590819556027406296547946415836703050495463483964976964392451420396880432400772186954307597178466367670084152441846687590579830623176909548298211305121279372744649556082967513589991162829807426779257292587086308425791943069630634935509770253745317359383163604702374993777614453065984901760651005615628417776275408235932935522393079720752185138399099472243636895045551937770535156986818886185086493043999848230298728607732886043339615650922685689270310524145913907853419510397885789655148287938430007043272989231248770952751807297751726767579159279480011529909639907381768634046907004258737249993443589719561732967572443560508153793568634491174570595183470749927482769775083119235552156110846944454825991666682062637701301310318300267413227180363035597466789534713773251801331501586522984618719362408254928660809202756118115565818761152372365820086926912986774462185356894772734377323927482671395425236004578633266084140876550036568001987056128405569601476426383444055458810870080460908891377256831077342742236826906698454978425679292661645628675493303403974086306950581820172523997989176223993990834626346629017381697756088742568426528636102632015311126366596688026247514825738230844987376319394623699303111452328812529623137683936483796546053319708736349064690689423868566927170135974966313787861741342759660750264758884375444663622928354615616992328474856616203075670897479706612603846097889651682581181102597382032463159957132392259430620784272344954776614291505079485737795326883895373911283283986172817553133515043820701015799405443494291137581734441442821144399113100986448408032092414958101149044805409388794823492157713414398884372359219021505424951007499059830543737612380939207844014239876478179768085825575681813212419755579345034546846689177788578335242208218976675497678562790808548563008132086401737061815658640726366736633410895187331223070265439795971398340213448066116073541918004234500415773633711567118904254864504410675053313987666732708032594478420089613135954686429891780040453398874422110292217776545708006510949010387768240262796161867400536328393127734421530452284953842877197604155508181012338204229663227464409480895187538615974450181489987378266713168548785313434211666935081028448405934530072591508341326143486967268853247654294284532291887928095283595821191832543972489113234289228424835180134160864177507958916398607280366781089001878620607783445587111282396796940927565490688313655154981472524526885997145003304598015878033807801390780806334284257139087741798116303710551811954636610091250933960866492138828136178137714357236329056542223373792353751113462681345174294102164958452006759601128510409772574351552912442974466859083122142980937331424927235577592035118242530973103974840792916749799735044342308989839639640404358846060911321781785318218842685904717377171485078579298852794882053581001620516289160026711062577334618676525401065369650842538553270027177920322686621782473207831915974961369223187584644751043711431997298854804149297145728081903580480695671461246474958345252514214309581423682819656551602905394550865284790576929851428750931525185109332341380378929293787141959941112381260958482596667742541499944014015701263214951348819527864303818152651239813495495504020622026111374251505796355862603960929949069630425355618797921534064983743781674025256671586998616034213241496957482628825250536517356004862271681728506183983885405978274821077824212860415833063656813718831089667374006402896831908608183936133022039236150166141370896927278410586161463194343627968833567831320090675227433960312648159326403162253266868813854716592188537412497647581486646777672374534177477817506287886590317159315762565496268299011700613868855713168357695155864907404403768247589633412585108713360940749447946579571386638662329594759795799798402971874099981417731928240972124759203964244825688685611920476059221169677275091788327224741302326764329368205216953864317467597026541945467134918502041351580550730647807072858491536270153815576121033449851688761841614600715317274538137951895606520543511895448740290891476064914266350192813114009161964477675543052453664446453931288294411252331347616449084405000629361163246668854349713371047013902377645363798187522963852641856037348721372673193891605221183192949578658170649860395390806792774345183645971053024584060734196932552637142173673565641033332055379763342308761396444582166699293609009913152596321201439739718246558249562175671435004657898238513320116025297623435804430754408705391663686273131769898931573950702943044304685043245641099491127510271702125323680923117334128361553621323924284970237234795823078428036879722348849370514254551696101123537831257495842929449531234587562368577934697816301759908439957591819477321199188632768763540743255519789080856765348705936779576926134142336775206627293786934099341732702031873099410325018388362399175906415953198623891074336395716047538376819850938731052494011901032415583319457497382597197586516933678687038346561364520665373048089228212923351600728574737038929468036926986762213053796368687206608336306220778307458534015266195069747620732087688834835347944984229275498088427228830568826326020691057711258528702285411147069990572839967368585468526021617568524541047865650676848147644542071439661467152038490934281671553672052891508871325721075777342982277649845822021299035991585961239848955864667611801512507880743936104329124807247233529589309007298346242664936727401056384807869804474800768180246375836245312704920608158911409610543861444702998630296596510814708618569882691234969484785662792449792984684369950872344777936719906571216189390533405089650521006335480328463058914752534331910893529000332708498865855497500158420655041247695265023280433570319372071398209408357180031128286383462514829377474906211573567152212284070034402211581293216319830879525042221512729671153377529270186615369519445274060972590591829290877991803001093724922744341205795828653224822055836796142580948991852886313307735140903783114117350141539211944133177087168433214755719864399787572449616271428351894902986122738172747976445547825160178899991911739280323507076398055713598343654178145826957063884054303936302191352069574506229044042332128541682752369996694284472799327327194675240782796129908337186430157492953940104085871473192001150243499678932328022064024838922637262955547130927344991784944139678845500827733996280176983498226032239350491671456295558323127862950397274796108887197832733743410146228828492233484908401686498462779520749697676579224821990476634611410854342511745158381544086910952058669676400332839045835400216057280862615873737924289071910575472446981752716276565921049036801513854277537037789516024722625390442445107265113630945998250887359814876031213370248762164755064457215434014499682035248892875322567022367823644517562479776216231440567890854577181081207058426322809280323407050754622554595216070071973440312570507381847207139551647762508932676385590608376952224536973703945970171689127991734250525718846368172120487287830272450364956970603685352119561839444324865685494627247556395414660118253578845405419601903942991013900975543219905910300253438931114431132540245310056859804994401765310013013318119757862731039166335404117371579346331967773882429933533212829732224450244249849125668383782513031145539044933799221163445780400907346527138131629655425398077984035410683444124895711373562548600126301442424081060848828154877469333907327100069226132652443416253401998667083283640222001555847510854788868087685746571158670609823071124938827893305204681540605567093077878905534452213013666540471717254871797331929736289247513640389972954729838494308847186935787449419205597242215102203097373059815307271098919991750087133182390952456819559494259495850667881017788375617611943468595257599665558138851638695871586797824115239623188917484556245789050060229051321699474444177698099394489364634338544488337767164488102949243876472226845804981011956595747906224803569838935623167635641871558577458988125676690947656450214296489398631665894296324526213785846505557610195618450749330011360084895817202361815630665582710783364315435701056986172925058053854057768249622832199277891460972705437874259254994449801545668581353935604361597422419761118984744214667062727995507900269480427715668671717703426237724637542400779306863773987380636380089805049830177517074448873090976985022967042985571417356195071678472911592320520319230063933760702293378755953122535750943992737691790943161761343647711388019592538464754842760536964455502794535664807536295411945281217980490797021254651720108830630699169127738617359123305101718864365161179213063951767385565490583488303836346590629973124746570054130692251805792910219088332659291818376277990306841544192415514521225650449205436897528441836712627706981614992099743448377205375779008045441866533795018067698645911694674427923271408697866987779987287249824397730010449577865625553261734467363995580916164462400630893852522193119547440995051141957808288473347780486750379987154531238786737997476651636469672378718948713848345514176631499241816234063120143180254174530357117527179870128772094789626763619871552407676405512211903566858230076496610375570447555381504414369376380675348465449000765222479856776856289041546875470975114930998074824234296607244172263222563086625401364062357933229107700320265472792909965476317819209656699314327018149674275555301159379309152359054477247773649416870139230886005160129011730311082952110969839798607126330968921377762091414166036592258317844389364036092386829841976187565914982358871475722203136865885431305087799781599133609112794952555321685740837752953096051486431770256143679074679375555257948380862364472246051360873638837076789571791836458944981062098832095482271139913415770283823167636153773417244795683740123909338279472495083202496982827796825917594520708229542350913880599416106980757905835418036283846534542117407978575706987607720519256687577451407908035801864711230685404260241158868892711413883095842010980927630433705652268423685033890093399867639080212447168921579453767660621183773383342917276607141824762943456135398093484968933026301940479254444836617341787262346004133331472282044687312057433193899216306491578703043791835358895524710330181718412886238533109580762942408625417106941652852375804979277981767433638201289220995141552980877211517358228383317955259532886672073609532358606527238121973539455657453480749872777036875262292339378346703292433996371710504253280349329398942246871362613859103509185761923719489820341669158151278572235199880353089012912383903405975067073718343931485353808022122169136242311458240549106736061075956427345990948893563878307533571366862426319235567882446794673144249850131629727944412401820619675339332000227214146668878718589966086634991817333495464031105456493284201693631250152256307229707205985751569153286034287469290011624688209611131278764748341336222395218127051903268284336249834257942079144960130106156399921361249775725486697676770003000614279319982430801718519930424436123742361100250515612023958613562365685394184012784058979709131124432877910376411321985266709991396053069380752609598591239971046393139197473676267930569018839949923855567862350603489784414415967532411641165052050591925152024917518289737525849663883496343067910886889868193091703485132179239547599323415888299046979392405372823048327807034704813384883308089430857401928998676607418115449199650848414078007668682932627228843829832697116719032792630874500452532514204926436079784075660316593473891777829118912789064577726449179545344555720399189440952827096554956081326530963086541927125893936252531724396406331345203780555076237052011495120714419056911143302741552598901324698963529772610492210199820734609891276029633802713238384800251127137993571546407114103509494293217799543943339373786079284776340354058498100990405551049006878461050568923610093928993894712620900564435557541560407677452916520572652115322963256470062582661994831605805245219337899815281329562886480522423096340752096838181689007683690721479643784759540645761484349123319906654849535124982619491105347518152413298678232487228504741222093612257488755786145049464058537466007227583881112427157313984257218340782541807651162086388622355450695964124091423730028835906319258409625651278256563877497944196181057502439930611082122233781019452557908183948067702131113890705326490757571821414754787192789693082990732330871688365480787470497543137268025630355562156995239253707447178470871137067621683718539390582849343003863700802058543224148070244507544761616810126198597874301075527799480750256748114458420457239879938126187529105860150134341294833349109031477409097088615472679089025271221887824383410086586537430958042430004166833538858237379629366254654220690023282484156480080952562158798623237059793378938526838206111504171773779426126990730568571456684738549986573562346560673065855840752194924948396017105181060169865017813148576601263743771130203530359855036944270675192903765642058883255189654028881052563300116101715227550798945965767226754398578486512217098580876830706937739151692271763760302057945189835661290529368163558647673220342909296312863756041019585242504646685614875233287563477488531394809303495244226804788085766442360211973685623293572528012367240564301796625626299177740347301153782032979030081321368607784340239994720784956657742995698207042373063799871727696208656530427648805031490522037582235651349575931104798815922598073494081009047006529110385823537062803744602402858114871378327310331004529492535611758927624521234694744066254587324535310538179732810080628672741408820337447292157963864517154646136698454884343373372657662079727808461513968962550862611314719495180257408334964522783782070029454947134289745772172036739500965698935901429537301385612479452369531555815070765399254982001369970061671287827438900757076020625737866389451985516487220872225132144574313955423551005432002089290177543038668079899583115555246210754742599254446442792066443139923009728032879919771591998392032218363712527209363827801281790081301502287657567029545923482969298418275791895495104004051518757757978996255864429735817570261165648766854182073952644057914020997661553115380618009423603630836609065595311774063890513332467522482772835454558954965823625136972377962794077348759129822697209169400470446914126101169187223148312738880867391591080212613939741997585499122172883547151523833968709023476735587484863634009950978237184253068072652178126362397741492437445753335552132839956239139955109013497346352706636775578673879588929888507503016705551261517665744387134104029506282271580239079539637022570627808080403133589268512821100152492175900391115672169791956911192778819733194959839344779973620277361343427598752335887646696545495127950922611549915939017167310904198666332085765579223029707328381810849159903224761249524188005056988649552705047704149725157734064011560484884712349902807354996175460242834076126568000970113149599404879204053314483886783763610855234998135387255319694399812077025129771646656752059303911444316304514215211024162518293763194492584973447952387976496746417860251110010248194717923324052750679090417416067303375929775522338877677491763536087003918396257411946785532721083407121225415415819837689038454908199731694162166882476921991498980636061080332108695380204128968735757055240054771225410153362755962871600027924537064811482067017112256212042012501748147569280711258698723654060970066274963064552191809915858525491232823340708067034522241990837064749824375949736397381913366755894629837960469155943133215322132294510019183654085634548437402783984191012442215812944839289789225018438626690851722671466555677474318054512103873840036568267356325239964809377505437192958500365835856265161212098314254662234298428507881666420542695061244611118877029577379804052705376046396659084281223199739371159641481117278697069774125230571860038092009324886143364569399231754870982998119875907561700275658908905955933434328719141677186576299142763081913720467996594283642717568264399751978861784616187296614053474878588496620281200351759911855562974879589286727836389699910003074317670092737772451819788994815543219977646044095577640088475368161553313394231173231584105653418548059639331217476109304173973398048562653974278614385971326136722490995997317141532557712269221315642976703213051550616721603323663254201561821408001541697068408059556230631239613440741191528664674120831184091641568750368043947832678812651331981080326148853643580818034122566447831661803955475112709471331390483662222945183557453289514881186821610738295104101495131447413038982964252995958217827108491107946409164981142469241189843922170190354207952945564398058570155954690070721853854216833528556907662132441598140919656097171857751361506809930743168338930879855484143412788386011007195845923500594125864359359060538703132889505745673076966130770020642985128464750159003271192075142383264863049256138338309961585902437488861254331802827295352886899053818719043841925677736363212298760484941795581986567005392443808107333471107514130532765090842168171132229572593090023971611066367990874719570871110816052108318188872792945093921236965209461295935767613303358617263955707982100002293528111668993593158623143332441831367459108243486203125373876027190079874952365736225283826965880486987572717673115082389153701752198341656329742901235653621656455576110564366640364983642061572381169009266089063874931015449402601619942592911221418708649975477725497356162594169126342305345995859848306224860970968699710715962497494809851790222000279313446402619065351060726966851402814426985873351098705013100211173214203219967513244216292902457092322082055767097937739625063074327587239046570600695283128593534333968775459882544114432063939950171325170538503774780014601930240743532796308772602174224339894008956124682539636446348981661414958087702877042628835468540196668148830345294914048897714773157558572448053307688689465870542247681756678973979533899526070630974533103754821110281636615027138050668761262710973751480484360892862141405017007570162142455649486162527336663254577265002127987737362685593149405489026572414037038661688472283812744989465666327238573232065687925409501502700131381029636212387376571381851315514309928582288185668985876030714554876376532499259851398735528320630607964392397260123976404431441300543441223111991212322658670042930726300916345863568174723743938168012111835752742007259429914508633351726412036054866006620269931410986406071824722069536823039588916594496228038327861421829648015319381579914171634252732097036413211671777054603542240221241579363055500624717143056578490418165126830764062613296203134945756219859831958601330462976782456051885876827455303299871010761431025018341851956885187265307092231316534006714124612946078242796196112024940918220679502630554654555268706984377670212455768279791046900944676348596250944346260853885153623092755189519672920774019985082729702953965335365287123990491134044280425876320412631847570322440202359891914395263801175819274541747419834130484443319795187378478021650624690508034706882871035209268779605321061934900601641209106687205864717181333336627035699533499814263039015222908766326049922276892367891313589585137502485068059547894049358555303311935366739699558700880148183231823113726896782849100313671764295761426674594036069921654552071016163641976598333017787046387357535214917431405782636520763699647439993423325705112083450888986655826143758322058076117670911575726371957817082924186045880942880564778406480471010456320127155649767343304428282932489972870545026314482508552301809305580599194924104420296646760451590317240513551528649451987762959996583197369966357569362323706239011532690972854609625512825850170136935084766690873499480238049980219164043895542225103292426633650251879729331273394649752067462501987275992069039965571447217236957175910602104938916410729920003937818897319325829766090248870972051822045654100045615521950128130583028604228078543872360957373731367711961355048818822654805231624832452190756890031504433109658536930364391738121243431849170301173720096438720243631078863612764146376668819854851658976460975189759667583883695401658286944721691345133247657705794537179604185723439158345872243004139564268240287126466651783575665883609839773591973375344234537354248664067133698355198295949211460530091106803977316611319224969282087533285262512357384919637327342396554208961154024906147929032779396621443163671578630416220232625268915552058920258138241726446840732873109175594456746373668603713769255300498952539428954742171058775760079620929617723980218022388821075617008987893678069449271639941150105385159236055048800201256732096840245266739681713343649416693387761505329737678527536475300192691209186940175533948505992079404540206399091091095112005918739370741790416625119081500759593718913761009766145083011554280532308930359110075841601584227062208126995949983884046689530812125969027351616954423734719223956520659123399513550218853703332399823381837161801500533506271221824646355576341223136350916130499165889496916248938095105811423747418464569439488442331442572133875662316477595970029983581758428353712569186113234738803364049343724922930580298678791865877153798729779017239616424454455093110454822135188082018353376268842476277287513454567218655534360061352340536807132262462541598459553609707943154456024043640161603041587625080746547824418613211563417444940075308227349494404013267583645272519035340785573363174150229574681427616158366723101751287426812363155729598337193866965961745414306466695300021761888411170228119280276702084876045700503926629547474322006216947554569613150906511081034485110187931032608211540801226641320826779369935111802998440127565489954961693226334161949545872561052556181026733808426651548578082579215416045768795521010868520707235388836894846042461592300438967655819955314299607357587177530001670021560067773582922488875071656928867764604885617183644695052079262858671034991736706090683349995225657025790965208727372180102077938078005622193393939297569637927941439448246986455607956357755729816948632878486190549745898961587038528373642950130786707837485583020931775521624619394410539827885538459883685052594319034229043099313283089414059421974684658023842636144884441519464186151190193334947867645655996907814342807858198541988985945265227942488167395275744956802369627346288797843262640676144718688903515498966795623627630534883807198657700465802209323362171989894007675934372061458496155206941536409503761176753449916878148106137461569227729969400518413304931087450828594659585327876121580595536534502223028054346455922760584384958945355658427066926538375847634683226665764377588290678744381751412606746028737735628673165814479408375269218763112746513860256837585504094845815418083391030873858057263022854917560564807592388467647548243633645808017568231579376726269568034407370281628652043755510142281524012943269874518800544266844936557059728848481193646002640523840264537542852327259715884775590493265073667910569826858876011354355233755141094081496942974341649437530045679654989138984183580013332904032029296380386275253330998938903422642167171666188743592379835904047134239219760289756890462016979477446506927460755339175413921169837470767853453992319785896451497507922544932098487347978022141762938630160846158964919345413494762259196787697507108686892900906303482671064962162088205817467484553292723668219537983506081734025894483822565144337411602064558307149312584307620292946898964705585419390091063448143597098207534265188513643390316909433142618640654522419087136832290556575832622792737743914483122388074040491525744179676550026203673023010810597122369635496630510720864942857519275936779513254242856915165361840462581447082594328699383550341758621675783411592002194278741526589636038880458724495637761677510655909319304986843515916776298221678454351748405717046193972530576424468817083790019552679781959131656969154014369248453137596759430039198099716882038489553002795639209884168516634776324379865715353694779585241880565725922733017693728125337111632696000156849083733862293470887880416066098352448526974282675004229275141636398732300125452582087498167078214262643880995639894272304995383400356677115072523144518469925909348515704967204442822725025277997115911116705707245405904835046706884078184800031361611673286706789511211501229331530187508521674035762032058013946322575936011090373483318399565115271480252974467628662532884707386419294301855477289327026586483472840859780650739841297172407443354981548277952168057105657746209348238974967489687683570246871022608009430535025476112430032867876292413950048001730551147120551274480114253368872086961454885227541050330563773584361350078320967718390233531439933635599555636200981116814208041284117810498605223272149401234739553244691031759930501938442435643727908396878566672329374152372075130715133335856534837882375775350583506758881145051217910771181112688911553064259593024868317700764480449839960041735502794888491847960158799365618101939956303127705486186915729908994480305921602541248916858010170916514034251456007716666801572587302520488055224653728627411533671132480023141612524543125971102458966060958804103985714487413699596461647578780469848386666270118058648308927140619313650288599382555904524136554226397337107886922458873837698976353207772270678742053395089696776224938947505551019331260590143976745181396805147208165723862709512743607350432713249617629508350214639746857745549297303886653582709939836615748483171067932512920353258886478567846032355206608336341883123999493495273532574044107922735408867332015049982330028135906974061388237895117225565226203982182420982558222708562540203528853916528711984494878490635592496078014784488956711755047691228568758464858061654872452143420097609364884966115433385663049494314563345408467504777590126573888058605679144960626752214948547603366780769993028682529759467268501280414605262334111418659295346349513650029290680925455598298946288569065043419331133623554208042473520970126998842150629799066551060070064669576277407924934906440773472438205216427405450756068763424832893373831544243475983451229304055420495808545830824954139457585618342597297392368647085989459926656450120886019529273490995238359040237861304584915280921448065430898701865552505946587011696465988540216533065796262338136430986428346961893234550204191725608284188801427344446775880345379395975601065164016316011534790139968025290568332661579198962011414020112389762546156615066826898670362495601430647778652052219995225215476777073603934256116534900383555775034944871312756863213716815330149594206226047110822772658389644508345983039647758923546117463314289704115652170441434467951818243847804053396702194614852086874947999655359118683813283490654691081489143482959200738815335844286473153241633526166398681527679655671320062030458646376460811194509615921667810955641270306458470741421744129172562345010945942541641634497176182690849847136530582982051948159706881777539937584602293836956407021170442064134207238529581712237539146347028720434588643548798410508208775045045486074714379508389528971454554066110067362392756318929302190950452524493219589705510855812168534072603997764243223691126489331098867803543057818308032126815652105226646050890279900121770900240128673983700483874686854614213363662360756425604369376831213920395892017107781366547535585004189603341479355905793066866751508147926449508814134993853875562446525771622135576319508110614009272688427570728448963283987910265716820369461879277781957991529463252820292419889948906767298225265686288291803859342717081833903709679163530304803676191931060152338432513153462483394244885190637230178642307477847955936848101067228946871149387553741753877372632752081489347215567176033775971444132352531800131241662944351085519047548409665263962298587911921716262318450982492072246839892775804666457231365569308848899626578725735649238715284807323463742053537191985375837220377348320339768104296797918872611448395217124198881381270463719189546641387486582524572030279254146446581531681971509766101972704310348709072947724862458160748620195798323013621557752130646118691270311182465026428525147439438082071892851609443187970194119953546291830912172165680985218762960200359455462809135259824317430187783304119130616751192737523941058054195856034906365903777647948221643915053097758595697802194285552084935332401958227286707367512856757857608661014156832213680423597640257149328801155009191603086733505238423450587559108638736979682224749604350264671441091335993507090747885407530404614152999697337562020619999030120707321336143776557380418976704137471977500136885080911191967757083742666613623109067044013600927985747397806843391702714248889431460116755914265313188901220186495680107224107564195780144962120374198069017670098152242464095342501880214456041171749698590430824672529341931935095338555094836637129753179524975440358930884075025642718578343077985518318573535137127044247574329546223003264304436932897195907715833148179884347733158699070550359427731847616256845172247787759597005457515645818951302644441280733495129761597391643463435016713052938165445863406174007539135753502931585105516311289947528351286926625050688057526478639962535674542198213651893739060446534555212469198006155442880615498652768953317122837144432804875794981930735086602069285851646098237490701260732483087676242866402148017835856950302503695588683113696490111446862719850972756909420859058307035173838163517555920913286659968329822284381888122193931981416352552724555377341557576434155607865566929964041198747782354630440538694487556329083228953954417773880622662949176600124649584990203819612095052804214505356348470853716259800448853220011479679427235539745824368669092625918132536637597924569269174634287136594576408984269602180459185232763509502661347071290693937768223923856840133206331195878880653951455657330670889980736118380078852499246926507744708711209893484569620278647977744929773002184255270610305814168187805820483941761963704724151028070993742136657463157861582209798912927008476344757072110112011424785015757581295933264417560444428085420044140520813103433903721623653600948590582378380416645782329344628500559546325489824907161326622966268779404745095680346414123586146795990405934324806363596904522292598925015655438395123112587241956389292931722451015760862581320474650121505985547460408369997661151591116800111516964516655037995419073722499352877095028618228510740103563497239232117005735428193617270430610541492332696236689338402644112974369542530752151178689520539972826373912185749811731796838215654810965971447714752283067970281194054653828415516628965603886124586971069111672058254500943699801861907986404509339406136372229352600545267582870441228655625509750397807011595381138531094572581000946529249444321759586281534309137593764879816458480551615139902366129455249515850766136627664494469823180690619346405248517545195612707108742106060188821729435480640560428014543468366630390848364372344044981916835644823557514295580607711679480889142155326916895950265940774535908717725493564300531962616860378999396653004051317897728961150836386616685941332649967980275965422617423965646115293055284270253411642839463661698922265348849205857754615344668765734298238974595539752102990105027528354187089276006128643619694718283916595902491445599924832157576871285872404195881518089325696573835733590600314929306488536591242971878477676062710188804032188158302743298950852437111924432238707974418242948804498911713533828517357873111298931088932248233129845385251693521469464930085551443820140497640249586065879014342103632037167802705370742522014504307406274978938935407625454488585134292678796561785894309882975222184948401281144658377801084426244249702940974521838773643012399817334650983550162975147119355470452161700152513619150208635583688988378340154761833738041740916279994842026087728826745187880221715900396423223775927842372444979481793925334604721370591443149968030024190814078240221312731566437948773197597487698058719798806849168876958968322722653728892699056284044927320290393876316986565161844378607044503950464244847762341064853473815287626510987378964061501387027436414750666209040361349024416760515016854319047579438887595575151236768290204656910212823205411810682834275757786813101226133079453258183847853412705191963898806104245044911712474665580333474727488785271706339276015255457823376612011410785027156404555232784702798801192969066933161095453109538464380691073627727387957890402413858384928138619962548548323234455361155224255249981320292641921947378098112220529597931523777011538233901810225099773402199337745042914849270209454772775944478430730589859114138953270377293162745679178843011524119118752237833221463813841672705911590121866985586998619462781588874857637654704670229431507930499695886426409010977072359590331720052871084636838250025943261613547157833394727603848794046272888066801010166373883469642048573840963776008340806642720950227727696184671218598240342222426108261282787103415637979687832433111884901926892858914908806323286629686984931528005082129944181734468539628134779041921994949598938583122811603818008700382681342997248760814637142775132175796480600952826582255600162401562318483094341298213002078519735948506871098894211867405504525540500230364730831220617183674607247813311622772933249545913979813993643189346843549565988646410046463033939785233710486729521069346448872888745469149583862295440369426334148812916085583555946222720799708229407527040421336664690922183094496529653644962838245924341940242157813867149287306197044456378147624527166314119075269982044105671438181606995327991908373226962299904655282693519590975344540853876063200961660536821350737785167911498322116920275487371038289317862471026566937848411277680268571709587462456992437008283984857525921853837856363229109198232206471990149983762109333359127628749222926906606623805690501562588303838134831200491000689217057282809256702107780771788583927043387051665083179303118236546122240394533285739653070884665854190746627157958218128941489966811792218024552094641447411951269153605571494136853364515114545899966857563036040899733552940496777108385715947274228606367084378662412385674961383450039502990600977578883152010946327086578947233159466234139215251981594791581918249361850162997841890246744861613836643353268772369128645329676984195407981557599044046752319075700158434022620717626575916520619445697756409626224849353039351595479836370525699231656814722143146245089360756832772382709038708215480369557212903259457976942821827446112715155895337071301100258826282307818917932787002191233791440228341886008371463545783373920237629334917180902664266540020369430864092319992257115661937064656679666988839417314514530145595850632424882786284811141314265692062366121501456695738670802078684114737343902002054341176093555867280518671547480478037889619786349782409512718003803693352563468203355136296528555079985380571126468391165653997140611965047776955587488095072516262796484045768896643739665490353122375442584631640900482004537616556628188597775538347777608816639663546755667615673236084793315081993936048343367067884717726574471351160771167292634978110238393866622397433357568497524335780279850507668050826175096233693550187548435997046172303205051211714857687107443128202216891076222671037464483102231577201457208651101341268544116047159948622429515207483653834583369068955474801018692832564979617020846323725910660514734736893598043599196337392615648521776173839274841497530075449810412272555710462641587687830498502570949298453683210422134285608597474672725091671346466325547282767154934987386320604486668256949440787194502467997515959290718695860342544805060472761666422772064560742391130128076680305955412134641082226431680981847872487758717709398559977557117941937484253800700353296308987691824304117327992878792092688938547361320368232978630629618464330682646009712736675009231860141550821248800025114754874004451345470045699368632272988844598155283564656641058316086806660931642348124785611576283308871821230227251369862173058848263042521452353176523335540537429343534915752726772094760182892961163601495373543638248348476214185723009095909403815288656776721691654053497224320589710082622869098107215243388504003510344320321930972183266819801053539933791342252990372781270725422521574317452255062431234059335371372378538476507496175725421561238694331509226677544457677591012010982298540335402428566001197145278595003373244402014522275320341678838164390465605183738030281809170371623319329486984885772712283941650908918428370153137203613729552066338875479296577742492135284112807384366001905620013541336934233131798863506427312122816197744114229106826294887981713366011339074178165533011564230525108039951053054583758153473230427430395166578926905999792350803870936857247042822642250884280788820295391257376837191302549647891941340259457835434593772566973604874252586926168660217768092291525244782530733129771960570979223579563611386829540157958327152461770301794979775756626653505779944717249266791595088617941357135425240450350364897119816481437134380156885905792783676791426340394926518294428718268691020368513288861800950474847873809421012691558450534030226136187569200590390116189798034494509170064132051792659916908086668645607911062420218754996309790268103654479972213354790940554911006899968961041069871810955756543791321693143265634470891796189093210232452217175528703993172558147734653333599794101335080117428676462949540224317069668915600740087040645756851625143284175285278214200325923708863112634185161149781412306866513019073085991247117709388937180774000420683138141837703710261023219651137733692388593884111126817022523445343325403965323415734369496552617045391087999454245903033230503632226919835604854859220694090494007953646628084394324492329730893744880503928068916591681741549563428541276964170818965488185256684149081306503687084457163922243721606627989404981132092938733375257170561503524846126166713367672263268152637545904812433595959684820108330146564781257898412932285480829458043229827475142052414633550968661935002411781043775407619304700312660598982452785642077003094869337820364320256516428744063263247846923620747472605526294212708582244578942888739893482328760307407343637286882450647537022429513009990365165734023092725880987009206596625196960517186550759626182195823214032451120324325472542290696740697795149535408487591782612095637505508537226090222746795604803600718411014250477031234632556377304220507499288518586652784478406934022883940301534165339641094346816670793492734247117797463776629911172491608153844638710875100901403675646797081786745353684833867165054318093479909854200486004585062135561971135261111560388396965058085957865065810550035116566656316707820073884272261189571789763912117593642233354223639623143141495760288560285606158593484475811818228431654265599334818524385177824993717662150711063952391752226411101211508088569924622052232823572648774186347790377670379561457293558152766939393571622016456169162349200918463758819917634694260924150125491296856647569348920880772538741659631866038306484035834757064487249583681552137907993505769431031987486652227981295098597280874663609872238031166021706243939675007299771091957955600399489421873794646474227159198240585974240538102717134336864137353870196934811667730388166636763381348358109050335070986177519125237009449460004467798070120864029336746042654527812702315769059887090041406556365594980108604696447247554614105623087393586476042998598992034286359291984871436916110807482700968513108416227916914699605931334714796854375432571617402675268887398325103875680734194877377687378418055295922924126394280117401835604621849100730104665439327957457444360792388027090328340558735932568281984338887539454671989447441921551142157123811387105850211253134311850530439229244196946828951403455868900539303313347714849439557422450886373180537968211709410725950297081940650177122440830465142337888861996677123095205222121849161867787709545999690383785668222831992454771162355043810430508194303510974363854338368030197870650965014269997221121206970790222823463175623014281266007582105160884931701359889584826555945078029001999840968698869127263226482608488151736230526670660906339100159181558807116139023372257615051936598386942827501131521590493126076476628163709561947040790833977920273495042956083854433033692847561292010665792879448396479694163135001266425574144049857613447236077127250116382174016590485086679173117817610656692048441755291331394694723881664779446438598826549542335262564779509555879790699400468981248486994018536361895518280876960944458283199720824203229578492353389109379523060883161177576788544637859424385878521479907380414467577373618745289122022720305814480930573917379127726193316907604426764763142034895219821629672142846711897959282791570947006950861158026073894377071206750299977269855206785383438965259673522697503190541904622231477751953414918499480898728422235665008300192682457659839899825734700326572646887982769299227960644580236696314789280050856627942530985985100664212105773009204545159450542507459131473815897780682360466722139734966542578046564903236501332112135541503209645406540611151095942345640947712295629951722123763476471565920155174859898449202581177292766686954671193127364163424388054133129087535957771575723973918021328032825802306649001566959311056761554565447216107810086898693720277049404506243342892573430254834652725356677459811638191309581868691245527789345935887053552131493082496636867997151785798219149990182074834236583425835357676616212040906140448851459635603663499244978300525562438746786832767344768100573312746209080881322265658487394945224081968293134260920337534544177953239187461036761325204699423953182031868399099152539838150888499023760056152875736883038436388286113529933843124435774780387461910867535197281340314893136619762897512072133750979671578599572099288413297332607447786245414496451487596188776354947004755535772790971055324259846818193316804194657093313023050848608518645005886998948802027736248579391009059979842284343837790472577863317331610942264550411581247649317573601424643401035279459351958003450927906882842942771792217007495910901300479934895942851117109585584840906161731695865504043086741510044514090071765664307641567631809996691947703459924617100295298626225407145290392795171174930671908342599330598673091863639191044293734615042974679618727067731009177077882329239530440100951665048278214229352320117781336662298185403890602716363535600983393852331644705575270079588803986310108171336880260537472549637363863991794156513258413171800732020362867349345199626343001628137199098454288945751672514735561591224621885523650777534474037566344546248932526207639734537924085000773982372250413601603758235037414319623959178217924442131076518685441903698403652991832665005382626898201031236488086944760938033643001559871130655153324815530060064167722307207010078451354741916407525138347877247417767086014580172604546181434344066913793852276114758601508183660056715786224560886292876530921105541606685856096334185452716635368011273002554258026274179337040154386579873040871838303781031082851882003408998506534031543768067567778025934472466416984982184795042155507005117741918463514693697380223225480624816098433518277611735688831326565830276779974779452000788791769328652625787205257275488077600816965796637711587473601484077729363497450531725102975251534675254322618795630991951419601433936455249465539872827751814711518986102887415699976621807091070248966466566548803919371200964115204563377461273229497648443904807819915425328618127390459545977203325004183536013496007088285270234280509010083725827168095141142176153400895484844715603542414625047496398796267966908464749817881237368532640373275779953265766749134777335681774537886661148391401900251432285039623189396204747911923426455475078821341515954858449279474296527872508959747173106311558881543626745582293157375458078706635981687736321807738492432862159018321548225800983438931548673729405743496752314334982765133304729545016762065257401663328979912479109364122427225750994424165615142494300122709007027460130492478231981364528293615014062525385054720587632462848094707451200814020332594313479741465222273382009238269556424379418641331615694560998398176047014599768799804259880127057650992345026648209681822780681095595985646458467125348950634190556140134543066777714130917565006545933925973374890976701747173746113323880625893875882000826468540359650577896506712738302335826344026381514089305107678586793700287717248322036667088229839361062386725199930658480940473383559428203133307324978621035607793292112352775700644041634383794271148069797374939971508662595749178565559614405508590526437608738860276626587632853047701220739422450821476999312105436067038897304202229702226680579290957761133696441295280229213968123098501955243054400620091524477176256439515763972928386358182916699752663396841726106611303962998760684126845806846250509453684802192314509864418193991905591212333033831575434892027922855107285053769526002634136069507884642056621385335663671955088626972954038695692480754425588026619559453611307100212504613071911556345953561963209663460212052630877914302205863537304821373360780116392673459613848993757504861123875958305380479390883569191491389283941595087795323881667852704801017751103914452696713328056599825402383496395183228343365548401539133392031159160046750318681721808144382976525287821383088902653047816563264503497375902789059135530731331667550776906456070707557724731372070229696285268111691029276099771049934908028374452730485711551035881447656432103137812136696972824214074749046472874056687609522366197555517935364074897816478883689649940975811439951358978335432711542285762434274879754340445974807883175121142882996255071953286879325578676983758527856606031749522452440023698522809552997683293534087986725219858077352414454530747930745365006220936644443819625029375674910600069767021693035701500956645255463148471243099635433415735080629241938287472058451437786923357522570085386608645727160625859270688863907195539836199868908053741868042474237213467040816139301884300784396232656139394142611618648100533273408763554176346912845534875140019104449156354967307852945096628633344631398490982950736446702242743996142625656345343024867878181168395710175448481835390108767387038128900599326375638240821901155041060312499925406581592806315571057378294646193824410204834197032221462939105927370596939722880418734297146312522526848525414221472217609118574918884860216675562146376065570156862783532158463527850564004945694772581326013615008745358238495126990591457882669819826203171157919329629046806763105372506254044020031965708910822591209646761971006763372077467629124156952448160383933722174353192004029513299068298587744898382573722965883383914716520433183178744298312365995397764962448588173228349212743802504534160693606406836224284315443723961415956906217971681560666157838773590852368341061477642846315114239821971234812943888913191627196943974301204158539796795166540676239163921235087503602336090025986874822983527063727263572262564085669008954243189970479482728087254886895683595657862012020214712373804002371164042335312968510451568761237862263273972966725336078577639669199489521892843689149140141852954248243568136583867520942637413407475846884823831745914040963074024849947414420318207802709232956338203694722002265052893059885339916134001374269423261855300591479163749456936201657369055320581855741928672114914553771402119092767471866263930025733096294382278325004304928114947356093397276683821079578767045291168064573794936778855936852547735991252449532629245824435435817990878753141658904333925859988189443571303388287136384620980672623380583464718162757990375500179887158410540563308665366386068774418167527007338436506813408937682654727010605044029001829252420482909699153843373955715568022971883028163593034207418016473383184672598668621431284556095760035704831776743165856509364930247841597281666976032888542831506363727040716350036357904986571584970705609967125921069123499399038609678538973004639726521377086660103432456213893913421275650935665292325115717792071351462051431644054090885517493990588893098168364368991213527727129367821455004596860686686874931087689876088094955576419859473882296181891923975884392258854235079527560868282604052413511528293696825593070414864494433619145586120123509792410348958267897379472366665198667467579777629359437296242708058601046785164427318452972344952483070356925016867437154836980119280547922115969147144847314711972998503383194236372060470886689344926455572071495472486352803281504347601550184021448260242880727125258532108236289838598364795971323243053754223012607335405091664664190387925409943743261044508199871564456687704845229215768269170734418177295572798693315632186627080001072245881411486749521765028384612998470725353267569116817670882389191270490461919157563349887720144656193298497324481688819444328536057217282583120391121183941469333155810403063626111686086266457138450861913433346513576641541923940988567998026754587071081747205643935520165656072470437743411519278605810329667249547508722722685023334294440101954768670526717923223160478225008785046064098025629451012033151233594880399831953531913299173254121537126388494513203490625194456538591630894173472653112777116428891066519766006111730829611372810496958699584555000253597092781524635343010520125230840568854823578330073695151559072488714996739990002622987924576236516504279412914249989651288092515440529887806255625838732375959298118653996194537790944492960113639958101519259991574383301317670501588217169343962965069077589446878606545328577064471596946314507648486986792389064330323288595133880712701069657630384697989609623498486030206954613514782904207228864313358180616873100921895071238514221384929089183013984541133897763887536009143308893606013451174272375858674851475224524659136524752812491217533423645641589653975633121476383181369579158063749605648441191317471835159081954066653202113543873887797735732023883173785925442009195284736291689124878733996979865582756475940078633716502908051104622828109334427807722673792847359587584212479987204117495363503854746719559860174287965307203226595417226452080217774074275484649753785213980733715823299313560593170265588907876061989435494575160435420219633221299043891636600598227947884114654330878864981232235376620740000395467845397336798636022860070180889264798883751866495438523759533730733535445926362064597521759792695010490947784546339039640601775693770234372031823061402022647733774454213858273682948870950746698840553073219223318925794162499507835866462147782981159110329208296744104946959355676774207221995085513437214042048500446702974290448057933686810052870569350339663857321587302962209451504477956842397814981177576348409085091483151640054720432452378448552474669455932524102055656511703456453682389337545403529515302550376751130967649980114239003875546438443850041793914529313930763029518543340430810189620905360649954743021058104237467450073833425781660343695981730940258179674063052859627624020752114209113585201888538306030921467871048715340893658203742032061008149145915772728529918757039989005238409801636287046295668699238212560355473402487167261578740107028047960045755018179209792498621374526147139504340546148997514639646990548432518072465619790805064529797962978270252795327249592594546001854424546718718262771747761008303905937165647255135212816418651058616844742560682341171402033180660947730568623117853537604615331065011132608433853700417264486121958711217806196349603361287348640185656722468405465126991366418307210142853061316195696356406232403203002846813310469914092898170861869597229739607114683249853892992053698484370239765312669710166046047282245489133096994181528015275450132479660393697913305234731329896928090039272611314207681854937378714572662723978471392654088679869326336091814222695213487819188419895826247309110653057540608220050246325184939619353682592453967679555325826482556483006539135699793815389979061656157223890652828183745824877225151601212615936911101250075651549055881827088428469805678556587482015028357161444423102834565306835472082371635253960947402727125456007020288321272732655368081486820525068909764098350399235146641734898020889125405868542508820597254694303031908298496022649622339906363755820802622909539797880524723769405810388027147958950592400536535967649101401250072996208709982155041211833264496843921903343564893440585037238061224346144570366275756437591844325146962831043067959559477752366927534694378163071057340746340408871661528705159326511701546650497090500743570019740874200889810849036556164793981621265125002975521293369609558329576703193147168866700815140834779206209510639874464142818308170069798952718934107389735866966272501227504223426528656699365063683925834969186951171665234833665025053486145784999252258417095846576817045953628294572485886950430044468486186913836473195545533366527691489433260270248723180940198735304117831225017781817406302747840092452835128787598981766429621687404553856279330450624775329109160814892519354436884661804221031496695270152378218718499053615790741562257206159358218701421728958853693280857785078141390764180048706904990887724784364129925043766061075280174732876882821485819704179733813297883886210570768086769242409216969362210448924256846676229865141058292842144780100184344418198893468033921804633315457567484671464664782403485478532690754384206691755670621217301821071946250642624541080327947507231066474869767990632348253512793682604939672806161171361571294189608820589884778215823392923744227175045089395062858997414964823346211613741652463612817104555808977177991541124474196124067187862911684399799480324635489636404780342482402353776357632191851981484211437333541435632893262080062510869424272401990269206113417982834360356863626541585632666547599173051361505992699167849386008120403349340403389423773058007920746571610576994213204012060952521371401091082440812954756387083484257648733783433306272697343884438283487248444057231063339365831980190024347700058230986013203271616184527467529065135908013524104732782267353768638021513287494208088346415079176415404959244309640522850423966319390298620734901826401471431104839287605746707713059396064235600568614337808461047718475171965032541859430056839825643217555348548848593796978722939455337921765738118524449076312745602046978164658717444398037715907495805336978690342998940029440672352270910551856478380475519840132987011541236902182287713467453194702502756888183203201376273595157852775120235339141344403924659135740217715317905194228549658285508440489497347569228231050130487739437944787521079034102721265047466723764311835950926231089632561293452216390121562521833296258959734391648914579687797706385493664211604828021768019260740538131383712351638906380901164397676319362182634240664937473545988569731362117098606069646009971547689388854284949893787095469492627876473841077657712262288300123945521039931861280917545282985780845581110867125031172565563325420730995331455740245079972709068420465052860481555070096599509739299428870339905022291846130130561539267242245944333468302806112897557059046094380042760700405874959678545847739422257028501797023169436216303034520795689527215957094195148397674608778046805766147720354733881406996959188165651938497598469016310748919530601406592153306610165544045732997516070170173170564322365808735430805417285163630825183248192967729822285918773262277740630780702299221173796672548159439645919294085073083957093172812780747295435489584692303377466342259115141955682480478305159693534522304615155065779010289532898624785164697140175612065566702795359362935019781875335974839627070970010390842847663634756779302283737038079079889704137066855009182539179907599563188063795521745070239646544413092919544778705095746504101230679163253668095700410511853917002728877783952786759908746075860770712957488390346971406046707278203611892203560987197122158363398677206018894717160800739053070238232006215484495007831727110092734348673175536611286264627962127039816251275073968086937945221159497233220120311164861250037642433781551706162721533867377122844071140044614483501932222219293783848300810500965724853525776574206980137519658885917454020821248304429441382664927966193413305292758004464086537256407091948022042802088853591057767906429524012258747421954662225259749092617056346657043347239354600051312987475684802659563868009034904217088943540353467230984961102617812224379958321811742532626459940466138758565006863767148217435832019542257239728513959204261311692044091857614021288831538718737690806358618175719180750850004303790328656901047464172374688980999389476659475605402248846682632600764384443679106182673111520639646569216917453209833422128771706597381428156688243688131747339217427633170214997857226542302019372050261646710252106370549735355333217003391155579403707957782703765278078972604278779000867929481540328688020640565212393542664235469474055448703576127532361495458760918515954655148110013107439626776345020384179392076851787896762063399986831374414975150569156019254329732385446208801563572193155133408801413780440601579340575817056457469776535678428935054505807604392218747400523187199635735224302506154824584417042124575741330864088772584986810283264337131908373456197773381897701012374476422034612545578325228326072960981653122368526772558185354536753381483360693552731907473520697910358340770993304415397799765325946403098850208127536846666006404868363239984732905822154597629214536116049829929887238161520259874816654849592600445418170287796421570063055882778523837335194859264474256867352413012930033186263634122469133267501543180529554833191599123722730229422179472175973089229285386084638828753834558670841949202326166080391952520829682895714612727004340554493209274860248483913612668884933068081725178436013862247661260180808433537707100361399243525492315176404881656299390721506383530195738320223730117681270736374666639745826650488729706462922443947386886817208209958755613921595523822711038697094044784991048502205397481588030864578996148885368285195017368187363829299558457199666974254477306934852524214469787715039787092508215407875047696982870311169189610147711655240563911669444856007132080924993588531332341731429487238773955168208631779907886342588152655082914784210203583765138602318233023423652375670054369153094042403303878945688274368612643151147915580481877588642339715043279836149297406845234880401597259340462489812422689816376398995818237043723335771551613788913426759004600173296657388467961848766524470290820786103674872243216572903859987129636828711820153493807121562071457052799662800786042642198222177889817272160261615303539552616742520770321476704187078243248409528731467508024349968579815207368779450906613339732911640442427084970638583856972527865321457736870012127254716559930943397343908512012732582253987683876971685016232739473825391316068860370632918236183667982902374691369520922271096209921089742210606982393310814607716140353301176292391382435729956774870194185612456007161126845958141347621023907549540523987741074671527051427520313430625599372284039116985211846269254588803733594754008021044345484586009341546393123597736566824295066965332649016172417885736606754225619180063977827548060979250234292510863157567185340176635361522871013401697331480056036268379271419801671115138234003392159246420835244726658239372641160328657831842027225671568134416912147926937703262766531863838842926399447409699611955591694750083642930710536464557767371456775582148323134618282957348963955066741874332555831048262117846938697395625477112946358043657461130368658179015051299759353233586697699378138560568191010928088228603024290203965376214174281386684207123304415426171474770696171799065297845816747360510127014888873403365177376801856578048528243722245081026356458193328477515699859171343645222715165879438770143700301547894304782130771836953235539596376860960181389874458988554293679256813813138612833034295420398827657188989566645921411818554712737028558509965699260084226610138474395911635305038333776688156396447126079070690992123301322821432825915160453634344957223952738597354577263529363564290551856382161609014601335057456494199708979566050758665899049326025704912814075831700908894771783350870506591251799865699308574367478484034268319157775743824993465156702414204288091201505633937421830912759419236486904485581265959218107407845225405026278257388042686458481315858239826115032543396219509327773469208790630579238069888817357173583273010397524133342047152505205697594022249979333669666108895604382097264467029612714025677266886309151411743466392129083510136086393284426326118599193533979441982287418117313951706089469496823529249014023417036902883168148443349691766422925872954993249821796285855783770004496336909114415900675289211391598410465116131706008776822361852758927152221811232353240936834099969396072630950753764542082235380001428424021403672976227837400703604535257373063542484060088732307740244258078714247674729078513988805212812089701887913427057481165366992942793078068317930623982371636527471948404966142717999106618438759705790311745101429763945994248813903966959026330692714055518524161270074198274630757040116627838617349017518800366038506603871470352308504517194465305040801416157085797492529900150578231277494957860851173561644963770684851087709207817102788891064489056241086139593047968666291737930673773128500708256366132504014373809133114801435342451707013724349144102110197610658930796088991756873924303908337877638619050783725157211588775958961584706698600009428289866684303343257051117698115539092800795898702084833501996064008794066594190974445557696008362672211316573986673376846624622851085039311277220458959999700062607972875678330374547039835009514094048770407405974809202015980207758702036379484164690242018805119033029455850526779649177630788343046046447753860036824154154524288943327585907752669547498441167645157792749747639334101640692939805420706224309155578075813312259282495128303848410334215087044524024022748948544870707067056425861548814913357469767693974046779456455001549784138694921294366931368112383376122607302387155207321697835771822265311663203810222823225252167720557107158518646222661018178304802196713524616822936004409352946981951616357281091536935260007612069265356313955964394153739411407647815757048063032262159157860687867482182102162653995993320515254563745384872844424629985646570350872026672122820475851559558951951107384888808354837579647442098810656570138229493154043071896785801423087127806422187191731946082342945597106181740334749460667503649718589988673224298903296074154987160929651143633849197909863352255155292754939009700099591710188494365330096396193420516853687849718368070561793347081663987407701651148453016749247876832267187879433831839489082447066885265604447218124505442034635887808350241824260478154342310987258727415150809328704530048315277370563861857660539470898514744001821653554147945597743172688684411660020520982861807885513199134256172472729475934772390534023616848664045704825219833442736694048565776030326752803130150673037384302328614267515129921130501319577085761334969453536558361147230050279885832725840190211919652387385575245056065487223545734927543922600426369693236446276411468794187229742660564942090363097345661992278537048314876832908885704085240068058379939843402896565365064381859160002148737078229967788920432834000855442898800987710465501503649403496854894321392059294112358712963641915557132794448683704995446042120279244212370532577887961491405045836733528376088020190764208814945567711328934810189768726811072717329165347033451111313140014355072185471312159143004057496223892539977283944921953693252838018180312795766716924865089360998819851512610039931274855108831887739988352889551727810105414930282369964644846419950812821866609588283900246896458666874197074669328653172823718038168128257071218556003819304979765108999684336688139904020769288975498961687984468095352153055205184121223351738890612076111419362631191362932406021934936856623522556787035308737765599056972710435306495100709395848105979412859080707273806172389243571281714160078963539103326551841544344995718298250308229627611235920680434576943436688115899118845579067216577241270881006874137866511500677480127907761878984182116394955488417838533804202813391054061965384908773035224085871480211855120991177752375546817998602081146478783419209289427271285798108378945471758277211315082397315417414773267231870521349087203849657225802329797896551587874872072616147426120350716700265259195835349737311269221137856679266686603146964767181088178555553593716625456451253980076587904303159145674889902897941397032070559415670314947324828180296673309996125989523871379890800168211553275495406170456867564042376226072465654706977323450795339382266637627707874875028398868476682471559658436629169741868280354971125174360248199349469644958505138407766025742232448459598604695132434672582766114695197491685466610283649382741614922773639931083495005129030840526993824174838910018938507230511733899910879782912744370641715996163959716538399038433299880669197966490708246892271892662680511324207646982055259539256868713485837325282119787332701777870506523604331125196506909025691085758544789320787301247901556470908092524295243664833221199144247967754653393260425971750993880028700191134554387688368206955350052440769933845036071543008502691296756227250234379218384435720735124960228712935378848979575713399186847449714360596767321900128376145111053620377860304832807684524732382559111908168819077759733425568981924582533778410147439584125095722233612930225527451936991898544267959500842127611146497237705233387003288366449186526272393755061554313665554621841411074622456080924842618511504137064737444886362152830704781781235786537298641230440248336983469854635163646159963874470400436137213632276575927190012909726973276423103748822117092730252889930264297287782789675433979825238928541945820162206636419126266322629248067276733450778507796959140144523910742197310734019356187164624355054537618178401949989058893639576141174500377796137335282446693275970544677599186370851805170461488329210514128426806843885442859012788697420065787840196838794084159975448566917077114612916333644449728682492357524037513146495963415343033299406589901980538259216160630482027314606549690770464826913100646662433535937948801468202657327506486564627190848819316913129061768895184943023061486096729583216375616944900585151051027720250926382414172292606485315294484512489347582669028225489358926072964992214516453883133139961170133683521946714868207656422112015144318245487737590664921225077459592170678152793965044059955636093334940036876929682910196576697746324671896916134625185628393188875455902854013430625971545104265847356161500472838292925367678508680670091053545063918884557763549586292478631215811984971809939981044737269029194185150204296011727356830348532871945786131693792405700912929303994172791931576803101076437860801773782642179685987179410807206695110393848600423786847853435804454201654844096902354114071730666552722203700293451708230470363067696910158722616396415191348721933387636229898955396278133428952537115476615397311739612567499737167864790822964910931995209994676714569727095076792179240264676819518740779274643068297525358440172312274523637420344558050326779540070514661869842070621843897297132179489197800758309570157373407859058437241166199274215558750584926155503172647138349830112208282493472612604910358127777992645121415549252825926457040792339094406524019069661095618503642658247949952678761451152717693616027596205346108147156316449547425494837802469357892430078362370135936551659372307747215257438953648634566749510837526431576406365128475128450633611976139950264436533330314410449582478435596959812690107306172908936396708278587764224584173563108393249512228733255293728907506976217338236960560071140012099902348770037114162691966414044478340689843296219079981895678058874130923517232306825022176578797565695643252628309769862563569805583672530954231258159359636194004851965315730635264824933629071265830896331880346239471239916040787179018889528402666275429116804642046881412636945408455460371050008477473933769870147842879830064684121162103289171479813358249116997792575289134194816813772683775369225647554487133283707241817590717650391052234624933861868017502216582333420276374045103845109041709315179888980242495335904554396682802364862594669438032177836617577659285756318121054930484408312234703609447074423186859297246409412410138270704481024081433598553539575229744368865351350371497029986213520483318161560878376153458601382380908503129461359593089008730799719215640601533671220021612319592810875253307481746211124756124259176074340631165757138940540162166818177264625625848306092186529728201085403167478198073839595420005642312106785230663579940707055858874402215943941550809253056651524397567770044877738013507542309036143594273198050694164365175915840217342083094846023435665614548142162583588660667140075329304222739994202862854231354519631502511200428513652853927823913101195665147301373823980746086294025361800726911733337925015316808943566194971829560770803388540592068139536437222766847084044681738399872009081200330190944608367071519797695150232824453527854055111097503426154804651959932621682500374648436640479215096801264813908626119119882366985039122801929584980618617172223895283246203990462892806414368331693037493786669611120897187821098597275767040250102105969140324162800982383785745650122405023932528814279640298689429794457950311588822343791625562538174655558473602746570826304624205099505742148023115290662573570946468964223772240649751790352059189406983167108270870795814059464488954120011348809174239797083072254383877245565953345593456875161871553772996577090940962893020827012072679993171834221669175077380542615222320050473844089497573139561691505127211821681882364434745160549204232391252959549686583221564687853161921897322743296936618607372971443886724486645710349823056446086292928340091807505003661828873278225465427342256870949443101656290583769740768449462124472983425648917149556536958081769462366165641444744241352033836677797499476459721513693283683282142401994612564597834058214398980644220769069749183676130797705088634612342606304673920048595257912731561925834713522811522632897159291023034739946573277793054552414977009951024579778729474503609568802121605674728927999105022585938384603539505039889401266611470655395929534875871159053515682438196502959475898638651920642677587141280283350592138117541784293651651954381068385339710255425657244529213752644811552597407330350865852051775920036915419219307795224365449092540214946666912758485104138791650893057973997375675127717094987149289473946612704568154693518400792055047163811382158160182091746191639346909430495437077217398283921075105599358969451049692924670326174790295901622379301884606511521363315188666844994176558784384948091535898025973221155997516616959942109834308399472579467111304904091986281650382484961278631737498418705368864867136310742445732597975443416074822621382828418754352352300174553204607013642962947010272082846478171006581954716716320028178236818793830263508247023154193808882939594065172167552847333099686957385466530990737875046272962927861870370404997849066810976774861959861038500342555881589465574197212507675905993742915645860736757713335601021623404848089835281918923396285548286051664077824872722675884621062363731261941008183662938376315240594159167406540362328370881448127020444306595969107112131815061679673526616612696849705728479714956669836104291152393494306821829784568409033478524449973586915698019240807102566463632286395947300679985880459895842295110302258786104205193464156384064721267994093354761427348111457935372157373840882807898506395357119953215629321955335593752672670311742875376511792949148114335484887241688191046849672160371353421949407799787439725049958515094190771901268665744819660259224228518062579328392013202380388893455914524432034973171852671800674039987172324105497491468480050509882921358081991048809275904801444367591062175792766425547620544218892927202957247792792729591433147900363750305062579525110322574546103757368170946090309090802255271692547390340628458271892619544318810799282813870440515249837236498864283069421872558058221959407346130811764695472636228124125254766583557899665112867736755693390912074265130730533738441390450673782654291300341523497108722250748518735310322584384045254961914559510592691531094120345139363684026535502566227058919669983107335097858135489166971874235527773625620770832892469606005702243330702916535260817884960883216201928174075492135865373854545165855048818596632995440742219202451036479608235783931078835325463989167735738752335010733363025175808756820542956346464704191146210373342476104474339022728164508842060768240577991073802294371825016242364477302285686644403244046123792545143228363220322531473726516395278532225719906398602715270921563419989331777071326797402605332570611258246107071257241100940556308902590925359033611897305930334749066281394910137356030933205581114070430604343631798246653919409576696804759673646817683840399818375967888013841090244668978489147699942490119796752558491706339168807895237455857020345917962150452123281531920928243957572053643997464014230330225039418289803565790770940109621004041345794425353977840496709107880271886341700168167394214402181181141038657687566949218783944455197352273826187159690079432862807409605961227241428638685952900121923087555360160914469780921616313556991105479099703658647238121898588762575471227753533430466415225396475030885263186355967533588128719141056106683901295042028227360906207244493095715618418577623679946484459916851775465119275144363226757569502236018137780310548022844447550780433803045821401628317840483521619920623926574448809181393734561675041619196839611171565238767028053830628592801005821838567650015918645964588190405016452780103757680112993726279812292455844330385347370654377523277244585183441387927685120733025337105115200365099120055340554931935527052127145533364699968381564050185456067269156363136647410289763815726537940323152287486269723823857768494664147115325844256981824019529423596089507114145834662159219032291209269356513333125618831910932738728571443254925373839411614704841626048327093962254843488849392799264274709390845265431925918685572668701858201495945918759594117041232987518399573952522554184769774550424326812283055530366982672697363175857667598714986833753082619499548816173816414813211566870109925628435171902094955462869620028444289371900797562003619526899243455926144088823882531775638241965164658140306436633158087574550644729500482960682285241558599867164877831228904751912661118920106740360027295531427787936008020559132428086822559205078926403188262218271482799102399985315427659980929742619574519989250976053524229518149230720300272028154061013797245344504849049832287754371004330470219043563155521299213919355762346711763189275176318616770823259401031551564695855550771420097531000717044290914995477635593981611319117311600349085147852945603085040821239335062800251845588867358576950049835538014179288708698279062917843509437759403104673070745753932059975507965414435341562513626716701713371149369117221615672051547245356728577389039957592114832660666439881931237709909849219446391611238642089825631378808373010344928165695893987550356027465221088187997605858898560810610535159527757687914037934345751792096601076080137520180072699780048029649139641064475646809910487417445182241188485439378647198652538630627099899787412120829520378163049379744236523666582716718981922563867214643135329262480834462783127209466781409413870114979628840601585726874589161051015304785105717616647680493670345440311480805168612034261271005692683683873089760937841395195356404432207859012113608223826147558992600709009035652909264936411348559550795629862461922304820077583028392219197182270275083576835525308297025189946316051234356513059339635115544594515423432677816823636393285307447499470961713061237807752289220757510844909350845868150006376845886738956105366713130671486551100112541747642921658329489792148115870429693925546319488815169635473326474091716146621026976096396577316226469479822747592205557220694611935943495166839494979826306708037918215001783214130945225632536002818417348075031304523050260209476163058277048367088602532509716486536875668891177722865663376526099202475337720625131367818423987107404308705885811693563858903447091082391354934352138717285761823869301481430338840188851922340352751607067718298488936989186284556876303479909407460021667758150743996802828154923571394064590297525902613012954545519513720791074315266584881415815332693888102354737901783103974440937271548304409435320193798660925585250829408262719652065752098990311815093579365497985354354995999341138046114890788123295054631175396285724568193724785298668285836071673704747930079436373007361588653889241802100616629050582729366430946703460418176343136467316422941715002654020477680358292517344590118315058779908160293992634881601682912149249004625854845469523145383471103641863426768814310005154989461574086152209793004737469306802684376499909043092302035121798895292134403299309391942392817611660948644694488031964104941724511471391069211145481825159649660213969004267881170548640609508387690752853395081680459957550315753447121665244740087034333581707724519872296550594388849968952597878125322793865400555481964593987279705067813930868700983107572678663794247694604417927625793092074305082610953812129024919198664591531182344753993589816436914147010978410453717474963714083958553599769145219714295608854894638964817608284638659436214896442034500728807068578847643830192234739955403513613577189465701072906391687018928800055237544503268298537462593762347424151933500239234721574629135413324739296820707281478013962652869130525631735887664899309581162703863393225073234139308244057968238286379183329568523503071465385311214956986747605171291906837928863356233913693226212485472601221566863637020004632733667475285223607684438649504161361066511889848586539065219628026211042944892597013160759067224064129984849945267391780347574173299037386767071855144184948070017256297876031127654157243236175292724451390847485352622291789649580931228739518935950562520479443289328126482514667408600602711372522558447798669522393846791542838436432293100854517017539775332660375165079109424429372431743211924587159188786461612024027620567161428965125495870106246641247442117005560117954742087223163453247450763190188601679634997504833116520514119748491189333295173369123059815783892537399962339834400962059252510230859945192271923519340213965626485794657919443498734978920540010013874152919275268960273907715099266284945335201824820847706812596595206786985405401999678792646312032076868510961678284554706067409555762504567680647597295363823618633345871250508729075390084600682692224333652015802112181466859584565677518011052186906435790109382859038680847410513675555247464923196532894107969213249536407547460660976439264642207829497911550315421157323427136675049854082336706990462238724480194268234889631195739799526368395922721754380039265741748197937886013821243063910068402600970370767368108400516605856746617288846951409537850002032598015614950114371079289743632377607675754145509545615708690929209232559287824335280438783948272177869894582938280661845726637436503180972817189070486896534692768800087165286987168919505554229188690084816866290904241624619731895175721122525214896510770356527402344181434096530410009502946224420083310314282102538104295153672688361283576462324060150402133077884892792656806027627982375550167406300358803898850146168590992109892412678470609509552661615342891825724044642359393234270717329102607306476376924452004168782593428657741790068533701453178144314927249385256021495195786480947168935135285358722346454881862376211308519322616688882857023387728771577093651925982978930411390295398585751147366401750838577752692072880596356620143620016826451628984052847253216624011312796930632138367908236735869655867644046094272117385025488289364741700792683208598765930059197354219208466261125429329026316049460206204740414249612337153456262764822600519774604745523378800561159398046038516914006066679432510202710226345052612906843048672589963481362598589689661979326062983198364373103938317139822740297711259730295960605617417512413837213088526865420508337478001867695193375398402740946271282566105514720935210612285136696449029291811711000906969288852198796876145245961324592459891812835805174481818100909269998337303258478254998200920088309347976277930669091820786749510384384891281286088832224292396269220481087868970981387608360915107971390758384551128611935776091624280492677573770581490414761829951548095707428793715035693006225252770762460745293945720025795749580546673992158846885190268596501828194697259279156396776414944740011713576406839445647426079136178608784456111449712749359110339604410383525934622232609142648157769813359653598605025981631725848400783777279213628459454569787290185903619878882059399999910782401214375889028156682255195183793343904916107794827593917382969803614534090971587687208547498248571116579039591115798564121117813153779531390721124705075564795369910885810854816039124862001510859368505865864370324987419841730918172269483980988393731098137438781622417137776179386446917421205728305835459984718372520928611899075867561540104436931134778511314931859058680529298284623553331158489159248629509997083242934370132872455154011510251846293894623234987973908003304145899406364731672441257533148976286608862430842157466268358947954263012549724206464736735372832580986963143905269806557364652953044377210656384138776709519630027371031352869823555554626159569417638790553129655048473431403993221877009136752643617076830132408501945921002253466347436236135991448563735818643194014252203220079711935866150437915751553098082363015464258320117296893713895328713956023684903172447647297401651459792113606403639569500391181529000063590702832213755741437699492074743230030829204029850698446533564395531768157746413614857220045774130907859204141140124448613631627757287894333224088564248327311700604872584072050792415587798248228472999659775281952965100207696914162152363753284172798759276817487479037476705875924362263143214961022909370890327027490574020609706421546660016066907389438037361944745244073663970045375675559765317487086489526261374051881634037630858180033761602757050280906593675707339017400138829825318974792027497514173471164222803972296248869499512570865205379478036706066830948962063418102628658400277014233314515700640937688969051917307538360242567279771889786621986161029580307591372025646123547220419392219685327882392650287760718080901478308539870464086005507582983128578076946839329733280067033387390283252224891812056804318746604146210223294598749119712468673082455341772196085369331225022226673268666790837963998574182746956798022167483322726460336851392445344355285658516725315637220348051211728263044203972825568807113248558967221142047721988768254027213947388285583337282569221495261124413182952532025535757083553407466063271427485823635042858065866416562468346062578840060011017593970059787034145416272676399178538291397150486812079111477781707847114406433621186130302284181157290912006288295676055615588198720985877059675945418249884591266451682642254848436167364622440943633947540787918158546359318853065844532959025439574711877756806352890839513308253116149895564184674683027731921084007613576195878455573032559053882995762982524945809952747791773379192943529010885672328071353480663047320354480394757305438827683066890797124337435926012971105399848580782254920496702552908099893813162912644236676588121502496158975921533616296995577999322211507026736919283764263873388018195804196815666398449089277073725295436198692099935855127346553307160862674485854339037493787294484161158174487896880988343673212998595581693252102836354603574226296985597541546498477022356892369178773310122978534264230997051839850746019323385598217599570366762246542021799024934512830859725608830667771132487980677889264080160927510832250079990832492302594383537254089025679058237919864255366200315010641875045811198599223048370766582349113525725175401247453427150141234002959320535048447536795150741744060440626114235723141924754903886233529559920060044700268286903216965945514224716908259901130868606005682076945060751659552520910952039856264759454027062366604994769136244390694513731628664683791237403142572680643927416595888412058473261610369196681775710564862697564475412958339002705095348917306403101736699969480041961125844433897809602495891096504153814238533998721934267321232797531566547810210847307120680298759366363925778299807838758864616863770305198224495090952970532544245871916747406105348877830900060954749682309402133384594989825274170567518970769521420161327125378686430902499099761123701886193884115822163633971723740163696267900628612639559029246427188085377324694262312401395290117448277795431285764867327984297029556677450396117227632801527916650013767818403387998394230003055623996898432523804821348900149895868019745168243237219059784374418117255066139407534482539465076265446461590116118761378645979496723253891919116684632004695464217348665063277214212997968033112179515482894272766990243314805602913819816712655886369442116011994616076101086779480790489898500443666660867301587967693487713538258635372139761550341343549484364652191250934230394180984516403066448024148422493474195983212878170132047207412164723750017383665306147539208048861193282637406756471836135344074170062291787816163142958031344169121195572095907625904628612903477790648427540392066755395034106258178629398324696277310083167620836308576094272882724134171104224487036560166368755408849625490380511519934500680402214757081334365930771425077702876126166462097164840001885560430145225046266833354617507411612594258378670004652236818480685348297334447095299428423041235588510349800252699231836336154589038776958543131161742514642386724897077361329246332427180329787085996466796349153531426946212423006296403272812294800021593726666084398497206684760607168694767081007247579554147473881524458360344623673096620285587182161022666389268907621052376922509299647174874281948035687878473898669835158975356225334820663564961483350487529809845502528477031530702467818888662041198883292669079977406340799448716467358473948581122441514004643983829238909024356269673634431813212282340021802963407765343029182228547343072493696127993017436274235254518052769118019115701488675844747987796404949149901567908550802776671717332650392455325258162247296407379013131901787826430958486275142421987435765219956187340214708908098222580683358922278858109689820253675987745311636858076088696607353619549854361205177550530114092175410696343608919272779502929860637419884981266087546749555097475712978016425860746440718726306834876903936243973193249455989133279567658320832960195938377055441072370908960611181543841956361889536358047669553316075839927035813867771415949599508431226836925068852335826686454619689046777627907201216502571191978548812401962773694923578962743066656893402081585851980808677070714928425151400882666328914870737598645063156210699740291684077547613977233393436399658874824136701507946901794863399332882781660243700450511140520601557674993250023062383727433758402216501082162864393044865139992217290855085152573431485864589849923755740093302855268151342189333560608162953099324337546495293905290048973571526704499132109171574276958857925285225676887605877585405969625370964902936036879806215244338585594789167251602419552243435460689105832969921479826975172289718482753299242246236010619481515984476100077025131483760612218727479615490362518289151360073163916064688448705884490959978925920770717772423095848194999505419863967253285436084772604128869260454392172167887925204764784234766242786376173599908100281874297812470124568253549447404556731080904599008757977117074861184079159891420222958612600177159028357092004775142096659178464822809183012925081031722090615955725675542649443062551975432848148977802394663004707177898161980280306492903514093657774814550882858866713324382441838892964450466400755468664181548945918792101648027931374375040207096162581912185161691550752893563521660723868718238107398210165414842882441323736560374096575008925846521879186865204740953790773770381351486101859000480345872856556998933835768902140447935393823523158767401382361923112913715590656000642411221902383093032237960193181301446495957873773808248335344778783937746699359640955580999153304352830300679644952651306620010464295968588169968995286276849785703613953325535797525461583895609579985872852909866758659840681327937387641907095289323367440629841491399143873639259492156212814991361860981281372376336646070144321794257324378774370749493720082779331333572523888390137206219144847158253486604954113737418337245982121292583960497281809257793249173432505998252891402108828222700097789702650098712654661616919917660035306394611824285835094024677318792894174302766412522360540100194631178248310934730500644087601123138910424736767395208629152646937354948525666427730235395608830911224174135566797936745154253567820393631139592974091425602481768375270967052953537946815876670550446683726269871195861566366558724014437823679351655949707785921699740345844160140778498957721282177587668450737838373472809169929523836422441421687646922355369871305301562985329422406768854601620345205750400528606986595253387459752144370131292912368210457563569004960019828530387566289088977699109532784090756658242119870766246277139081429159947394960943449821847775807971497290108659756543195208549405612775289012970236490078971633425356309396781957414508968553067670287461228268125982176232133212122255725076454406038490364994623656402272254874014070825044989072510349508198593126121771171993788491773948286571228236364578922217359128474118237872936802206338247781816658934227546027943721653781441232264888928675566490871320511430433222967647226287410267867511723203252572535320792054307789850295702079312512331000813980330903810652348104702778720957503425119758026317299958985193184857289503287715369150080785912664559493043776864097881751260721533028927335369421424072572766159225735704357243852134337064893518511543096833359634428493848714331059309080139412767496622253189983464395432348107051368079240148337830430645386831095145433106146699291112321376110354923983708582826733611428868089733062182846343214840580250773682948141282997510298437913329394087044094227995730922802081576179695817351948914745495994087157450004809692673091492832782470187952932912017582053803722385661823405032351673925893502694380251649810643968513700023187896428881884275755872044299981967754923162772672233052739762988769624636396013819835509049286871457671943695921557636621314754290334423502620342527169774004871660473518893675526070157883429481334896795197602147111171097913902366334868314432859688768920705263926470577587322457390240969546400789366000114596347959825919267541640842877858323929193141194260386253282651666603935576186653674693733190885237558242429042186203718300963209407171998771533952194212214022957596085796027454471417445654346327959912572837299465250121280851361268549103845755416846975911132725122690506634731477182380099101322541875250048068588539378864632584068400238889616150724736479809276248402802723530659333317902059692095556164622983423227285864725113732883058845959594576043696563599389649675620044019678669314370815023268777470857245885611248725945836031087768177629680513575494921209348869173963522299356920676320791808748594419867023676514863047450368966989150897579959706024707728369373436253333399644249548362410877639821652868716688099359934705827479293541640867057237848066418502964254916349026565011749421129815141735613123909950917223944068876757181559441676456163587049748507196246696617968896932615513896838243030239555206455975465847612812920980320494773264814349203299641747580490543982695785116439124907024628682634287384272381552683132646352046297612216626769416428165192982763319899560887385724660736185620945546323682229580228314572805991943921184376420835028212001870762243560786005229464581116523110574712896832155806778760628806138313810136706931774306267650446944183966927188835523476369370827657600403861868157026034141174814377179196669040632157298076035556279451231313699458190940391846216720882860120588231877197880485424423862840747297490788789024770610344957073230636345173083232495299448279832724814442153707713640086172504956547010207842051719445639650957365782309132657425540005856644020252546936910183531742637615007190940327646047499669988108097557963312548870834338591315755555701619209301019563963894881388443912138757687466803787847765928715105372292165268024429425920511551588962557449706898174314480398641010948973737161246675948973274746368732141822820064401685424220743444773009038250630405083087246569244872665176223144263733465181328214879766669347219528192897083866855439865463347389064306708451848184680051749850357824633536453727332966768382192213940714403283535493422381701641540146067035951195603695744589325664770014840472209276161815719143652450214803093624774199226759868505722305269022267780168490134571376672988348710094676486736963395290751183939279557731067768229024813578176753761306906191743721130908282316909131036201383013439786687202591433634925794818537386791356950149453155329233145504139990972642630099041022682147134916432123407290415109770124911185968582238671509216221854285514306353868044289236145482417447190838560151059732555783100269174349484267356217735845581262714408885641936527034773596107817380133178052343093167860078564818660989381548122343511502649629698014017309101179542592955452885169105453868361717578876500506473884492667518104420577574064362598712456096093416136319297904933941834050619650392819181739857363433182171165932058862037838736551392534757951638018342393695190795409731216444922181815642995276234373994355560112809610999615879962613750264090870870800897902593438504968494958691399829179586419291997128988033201981360468309191614984845180101217322721447275125199293272621214513207987801092581358113271355052548762589087156586462627408458392362114400867337309299177928263497287262302304985248598387032842008565601621485294255634064418687376957829099108254850931573335322687285682976484871181510386553042803437429311101017711823839385865786012946582404318500411961017885847906238650458268256313022006316179952523790787633889813992269756352915838144817749326551303822146331841364607651657436656963666450193506249722972335649632089323978641908633728649404009614923514843471285680071409771033478116979361965255784877677017734093820396081553439131362949711566215381014645185349302347153260029962996336414724737478745980298734975781243129238161662987907262472722480587580165957717393149266284920826481983193517212185612782910824153259028156655848364705524986645251572782979883844748980967251448811556689408386821241564561267680057818634831013690241589594397088250374352800234423236516499487148192871543105461829531523806266674933394344722240829311318995177952812430311250487946114287602856410902897398921426069731609057435087869006226919840201406904616186518083707038691931679386129801420821824008716430423496147659558463016799613040619533020475900135819097706150093293356976656606420353817626300408516482492692553072708390472903423273268297215057379512417447733181894886019050130498777466841101272800312239912221242598189578414311612616512950926505728777661202500383299630361767566682070265661608393243646909686603961734593831547928548072095375380044175836645319809499568442171459264234666719805315023561491155400750656548753278350092676749932368179734138548283831307722888050605358294415502064836274848513010507185803547930039223259811768825269306169107996964964064657485397584533759825257941447887623703329489608815745527005226670869870712627290670089492552047050473520715435615222274626337948445122305535709729472342927958757801962530623933886373226057445039042818027167876315427376876173319556045620921670729232300453736063007711862148471312961617048573736035113593758400365295609582892475182885270945083241716555874744062787590029981208463435327812399562022146712751659427889201653627603512509531698210822174716244513901529643673289208065493548076166877213472463479642694948552476630105516747095524936095218499195109598911627223977499486514126388415030433866647502855038807984539190866715222746612386941548052410131246614815153647469699779600988690035588349356780310840333602472593672879849599363341221679956599297164982614098030790771106584324733586327186869243397638899430880319218461912691919562225589407403366552699685592489557445265264308326063117174751458128722737817978645590600366486758582793811468892986897984340954223863015190926242220566407169396629858823363754342865137892747575512414462761856687657881219606187095767029264674670721543660865868147218837322088162909189191449231424863866626179187742759741890914615568234530647440635787152091484318998315529741901394447734300952352796127621073603350970019114458598393833718783937747109278207424525849756510633844757833896567393601145945193007836594814243390261905702441932134409892136538009250778479015373234478408973471363979903238499433432437330720880163173491926521393208239439323063392737826108396879211501483992535500463466090584665070950462967007562504043958694004024994886129214683114260040011033964832375914892715175196857520893682586762515125351697034499264885042414108428546215544497051758744902098710681417766935963293561055216724198609483564139395795340951102688921022759490282592577359736511909047840530347274119421006116039422454960121072559065809257694963860173837589433831170024021430187497013259907256778780712219681203744191355754627472992066575545200055366189867160570445622240104651415448693052671464059993213288071772465301256059546747842831884272890103307546766313922200208567348962950744311237243982934527335126446593738108680091309095133291949005907605655907429035146561735615710038611421500416657305404802981604766271865064500023428953956243528454151034132295693424937751441257139589413543707742723227514425223624489237674770116931122126261965118944237061026806975053775985004567671407897243017788823397108596206208393609650711119376387160076231600228210818674222210289805464760030233831092224550094170324398486107104470348331064765598326552617609662613109618169433131747592074892004028675874926566762845972086715651879327789459875885823394796494948385217787584594590646729732436586778602899790202866691721427730339241152903978925520411689279394181216716440010097058047484451905815590146619637853007552569534933248646550252812904245798774731958513569493010330034766758939495688836016513215633729059728745871945955962459909775333976668598721235893111493428909541643151838987207737830902031672747895261532068326915441131284702582371903297925109889138501809134818530294877407240195608006350844820148932942789760164801172664736177168117770702908017564644962896668887806327790564223072532733642361234589658880792174076339330737801497460409243594488698007121428058467903655747932109662833258487483022049347036863719667001301738522231509926074279328295686702483740032204781905195436048844143861213118929467121137391003509241655007335835507129343328984789556751519185964783376448485962295428985045741485852963609681792395953488435928060722659084607157175977613992227989432301719817064863636187871241511477621326737353733412312515987205666004711155647889534800616291895983742239711236090548932137711378609681231496038511409514623132862975620707379113679097053272389968361284271470535255811520066374460695392556180334060171373314422961061309077316805938725109393527192699227823214542411720919661367445279286597043100591164493330839246964411362451569756884063262113461495283142184339415217327698858675405176481227697293647857257354959115980264396812406353569611443653323466785061185359327177240109557717157530651681892883257814193146839448203645368218560400378175575891461705388619485977757018954240780339501071728097202042170554293977870125907879319870086012998176640139386890561396887373949564348105540842924264901201804564023233267500759522184499897966670902345050654606509091580756490371324570655922461229102082955892434425823683050943209560663574452310519647448602502809720834113754592000966576966059654328485606017923218350112908224023252857196065304303432569299465433074807912598936071867691743802425844830026451773361126946393414348528408253940563790592100979089406399188499545600605250277320533400415099512405908419060523060232385129071788826620421338308249980367893346235027717154688350859853250186038861181701644966091442474865711434000168073584050601773655525134244447770552374633059383288292248545453110517659772389135666889562486837996921441361928326587911313979908740203027383676313483475803744651074055695439306641665000454397436938447472561896136700230320101635924501019004365582276187332830206666207239401079049059690059988212586255076026472451697870430929157674457250921752516259988452714754419863847828147931243885374665806451902999522934245165216593746030029247126758841328635358536851084408226923833070006157670945470466687913629514727151796966631382343070985371805936603989689539006579769526661146065453508559424727369911897223014860330456533155856622068321089198274319268224288978751251634219111376709883986906543609690059708105527118594613582684138143091951048004719529926015781399212561403698209667306752986185599108614057751287919620174862422678751286214397163853314892453152442296380633094822668787484669771393282870122952790421685213285032877277851849549878760636328665534610356461731693512549175322939568034514954147089311012833243647878182092439953909252993261642249797232628573581663063181246530922427662542940467839802486701786729402811631693806594590586914091407477962898431063064364368204354098535216610974794943784109693981919451543658714191879328094888611547473585502340201056251423004724829139521957237683202489180143842342942798332987385911288523464784148910298769682503952726858532535440761110932309321235511527460971984371033871656803432632549108272845027585908047382367965267985671580877512500433102879664589942151675250215388512804806220704815522481491347027232861684816350993472395538645257330020165083561620498334636790895025271894248340183964822763772597283305661808542674296383568641598777330856365498124366959554272444479899051746945971755294316438106259535737022420748690097216934573526126260746722702992434611682320301310655280003440542855382332680703742209768313294429386089526631979164068647979319999082841522639073570794092072514629019102677555032317920485892951091767338455239433330274294546041946508810029753338550043631417601524735650874260057728462946147961962624760402706858170541158147937642805683158552811416671432134746782140727787094419655995020411002929583759687801582229333883740790767802569059329961948548456919548475523192661430549086294111452853596679863422984412882635562956224909142171445480516040012227626911213414445370703243087819355000490683812147933987973234315495860548513850568032621863464584958960477526245142569093977534555497714878498707052340553797428470753223749069722383908528672933258840104626618992325753501438546866967918209522716199753828976527443092395128961410393021585708661342222397034983364870702631298965220847049059472974050555443228909904115402547669222318880985858021302282361706630330179356306673596253091693001244097691431255815365315761868003370680883484269751441204620520951927193495893131818445466317177875658487879003916264882201662045396487988061037294030992636166650256341978273998507881796047561860009414545843670691925690576539593013469472505817613569246139996890454737095210024728879137440851352458070780922080838160095309706237223364053194126650680222944058802551150267905164091034890204017964997340591673843601281461133018464437067393066378518364575055913052206017189851359554930855133462069796011305742337458867892916279855944548636863361448395788531337995276811555057604472947530633972488533217159497907168078972638213495261902961215395244508334830677318982699133260171641979554305621382228466922581658651747976937023493915909722279719502098534670055759061660666090879305718393459628795220382758744123128542533191712639323973257510746323402762780383777740593694657018868053339978210731640365250042043877273527619469551457605301372788075212030136634121092534142675037755088016402710426155201521173468663172365252715041575914751486326220311887249477776047306343061525703825312500977866697211358239005138396965494070260167826905842507126081864675056109168983816343402121303651377282957949593602904082373453249135287847190181283725506856964314771268911405420202557395999875875911765759946801365951043061217511695271380820722741516323166923003437588584489788149841440596367596284907025041028729426443131556957488928373347649922218573154292585646523943073719399035377294013405986218172404100894292006545071636607366714291719604264216999337177160403095379456480463624297937218747791523295021522954646131651891956992807041280410437337315086861766227842807021206363693970022771038842874711717473727787405204759933029013299668662181906664225020549197435414214874354050600876233205645569154829438860240292583933109103385511680199716513685412948326818900120824679358501925760777146237057273440141589452376747253138527112911012215606918622989574913425786939226393486269200642411905195692564847424091149004232659156659680030302211831735749369869997798564514952490765850129110748560993112368410724654948191151938934942210854443009389820076804026709989354044161354279259724256984705221076589386697285063323839590316571866135793423582989705587685628637770145035648469726669767433935503653528568479863950882926171719083919552487660502491416766608154231169138210588776324243081263316370964284670623264455362897690004725780306546101322666342057158947338311521202664522061718285404093804388933824843620817591333964576893010534625117966817832163856796633515909788759151765329169951961814898746741423147485535802837617086139782963071454864295328514711472437947897825427159403224022544687604304960636442755842028656502736244332896203690383963922713710620730602539940970765254834983116494944450449109926420132244787225380795626697747518144035085567612491149453480399320819997467149791349283084957095342504435447749289892333246381383830397286512302400106568952132232755715923670955513011370528524160849927011128922588344465537072859423742419427328755962553413459206446550307465834418418906942931843715031598950512922580573546726028480861888970481660498016524285906905856756754890334672810203456692979468005652493894715469223957138147798041647213909553245840531754257865520977907746745553626612750270024364166942182399982965130109885667154192128563077273472165695548427594546954957531743008723007078625737401936856160482111887882512708095586158531131488303111686027949054042892088064933694448036220140067569482611732191874259248104665633034916959126934532639921627058169305999593008925914077755707726249524202116731704627631342945189352696006359807588776527426793716900594104532721418868605724579037513459000948454213317900701495518131270026015231859825914395879961711710339094239915815008858396619051529870234135603622024051516902167583278739787158453707681854245693979377947218308486291019450372976580272552643447576981596146492617418535954897776197005698598525393481608352764665682975483835115052449899356979925391979751846641092283267629134435135883214965737447166001899199512914954191598496138871787104796724219733328116942508717315971428648852298336742112182131167486766284448810622911410657474979909957754562818695476953472437442637081863781188417404616013013481935250724934535866321857659318827336219093288506646492231925068007308578253424380928798613023313095634991554695513494863249936812317837771488632494630749743063033444450968336596005929262074631267676003916792973063138789659542832297476371714203021013326581977219943360754108196446228146722499962248724939041362834626437044921063233996418877511099434917031951918384106265712094898541271129942683926230933583615273939568568477640133794602270452698666361314439256405876564057207638378546176908976100378876892325519406007609139665372837044090652941935431070330999250041961291330641384079906604242101943159962159340798711212507097572800057697322565996211255006961937862757052963483350405572015448972111256217017294304267787457133339998560757627227064009303021666062156277244353542906771780187890051782408701765670829861723584276119675954253030229403101713888319215287710248748072263456414952131467220829118095350426654721013774338195117793566678627309823313759052527013949242062529463492737942123185288649904515737714487958034419406629798693699791955146108176487392681472879700819278252654602979056222505771663744825182231589985344038711160109007938384523564549018979443015180233192496840531434411573412453203860236189211630250918335533342753059474868905278969350657694266101353867944398089712609418671823138232908414905768425296746838243616702122022620563434352920374404401606586371799579249117392090206991833181932326955628556950056616065631166428118888579715379584980225219593976568272096889590455227473957044590297680949519387780065279422873852245490977139313047004335603266379272889385505713460523254650119883231399557270139953172209969437918732591078326839638831947878870531727917630660199905085328808851651166796356538843855837962542243157607934118364684802776722500078600482509460846130142380353217936677142748223753449163906755391371276344717267420435998562757195366333276601882151334387914830571040768855413651839791008221957311279703904203195644300275470654794781460014004042510530550732511493189978014899547737839232765366014107648426968270374824374272411371218831518260850956199107193510768024530407533747584858122965802533990695397557313230478054725920181175777402572068208988004496512091734369370204005253839569263527912831840438626152572247060429443651644864131599213217838494604131404053491579233018030875273106934512199826467797568657565965007100663272957520248737714335283351237528940867080343386082840483652572082625295147431014886262946768149681709234465988795345225540117792027587943407126884821032258522152528532995766679128721279731492621271413725771552761234733263205480820594993003020212247620261920908429391449046135293419692227729516905447682910595390018282901068958729256834129699852361528354100866300050069143121647471898417472880168978648989608395319714628954929774450569275911219142411701008423370568832120649696628592440030128834914252670838031749811960558435691210047767848669151819595285550179917634880133816193888125982478737593542915765524628217571071569467890259116984269538220529298071171288731126130227292056975667645003914366307448052960865229298590031597009365202100171722808653987688221553633013765067436237624411671944460994774313945466228978994756920296396852833223190226055131214029966007741550082550436089330878234882523342995189638132927466953458791787125377696674448478388081443869178181594875616829000391881464910193728861134718439805479386291260005417214357529281508741507339663902440965001178708578298906142602205588001428439508564807019823616300463853437407001573477439199683966897212695588437029319465655585304551064221162834699750151279848727771948541047925311678841628356690946287675494377438976535550290883094857246587106637927266914680703091258319164972444305718799763336356750619089160007151493581937557405638151236368512390534567814920016738559990049406373420325632294951660237162468732771848831192659149380922302051930307787377991351859461050018078522541292077483763135351822474914776455464347218920263765310971174066336340698803271204572078972622462132516147066594918520679929674094881758779110792395337373525725937023974294970939467910294948010914763456895051460133776252051238765638658208040752860095773355314525771067439391324924102296897927749823740072203742309862948206091138646677833662383377476050495163939891427342378842585493874678905871395516852653851243056281968344641208170898972088781495270209833790793997418626326386432686865880190309577653789888801488986762290950625690720199520951476342592634028589050385812070287489933348940767361955883498824766483517018705038578985939935998885215844905781689403464421012650448387171991624826784372808066359865014774061229800945215428713427927893294244503718678482060730661124054519813442112744267214945415272148511724809912491018556961043032600444755707935963679113129664668977141161292449895260583243303194787065783283330814755551747497925897907776536783944022285710411209874075684334672517556026141054588224330301576197606940277207812198636528943456191257292842238861124085350970414889673953586712749146111336725385396879458499562708421519238930799802685190490712476671235624956965949857277797249186382276451043551514335340513995611978222813020760377172087332423430437036223574293129120534983770568039308760971046213525190805145657528638762658692632728208284873355903082310821666575799081509149998997262127584813169365292520270021663840560915961938633304819895083323547604607894744240667456816951470032153738927818885438215081233131745490841165400259870023870272382885602593768360827312231002766495892738169596577295559879858793543859981739083695486919827492024611571619866035988116003247670056138191462546860783561498387634316138640055440499177336075614702818633919946854317684405636582504123873342541227804742690500279664003427927027978945394429289105504180547894487020617348547228025149399950467108368659348506822903768454432559897542431727413052247447720677700679916852926955277661455300372436656982686696170942217012127869242256468751650019240540877323231575301594635069542057304255982474075330647520599960785407968520134602796741669134611913294465027213532156218073121503592647298503899244668213093735596575301159901529539687560713963459157229634844845155502847386352188911656547092901456530560645248988071902157826311683510852688807133023221066319869109865409329140658458562302204412163516733249262559232387441315379655288914312729455984416012779174470858717772063882677448284643849459495875653706600460710423009691439493500028600009542067377136579722753833669272283769555082006469738083800468443645051041833821927038585871848518611302274864372851518361390913396883461260757229454923564579249216578837823134563363710271642241129646268596906656904745427407881050940807290221642835511692845641685974642810594981700510873428798999813985450301370985240355689320157726607740133591455492271070562478662770655290379898126842369356639520331705379502777347217624208123126568218721745515966613664572571305606480742837989019911544047322248047368948816058610423301411238443741415517414077938470313440141932858072975313396407039126001354673784406869644157696905095535232464522455510571739117578028013455055805127495933344995204120020334811384005805108796910617821534422924970046291525355495925094842817247068944558946299773881252776292422843212588273697275647239385211188101052569486084546782829607392909345358880477094921781412461052213052857435651926142366847311176861232959939649868260087259226970812676340150595602804923514772512670492134832378149565534463005390650480799948810188251370602895981014323750648360936768580408914295849260029514887143609873596679697952497085953092908584676293998979268664301531583122900776026882118023897616912130569707636738364131115886487184372604129086553928425951953970083623160683088428294225058509961915298362797924567086454459024182750323979704098243925746250234371571459801702741727548549191012947694809372469061402198848563586699542559751512226038628194069094277907995459760726289188095443227151925203725476987579408156314908713858332495123794960755056340815230957255334769880984861397266647219875749416223810376511422359299323510086006810579432177476087892347753736753293257225909467282531468308466906257722360624533548311412345613713799055033794262356364959837496883293792442505306756352335589404932908933936881150101032125248275262366752784296105007847644480429135031198711879232051805630275463962692683393717269202738553740671831822928810378513216115979854751092345300141927335746883771906500378348520746034619585682726873697829789851776504221885650327064210157332484403763131851147936297136178755107705404189426403601342534221359870792017451721239960926245835497975476938849202270411613017680832562109269574419340931780450512121101920392777408648918635721701460332297607631845606540804156152188663739366343559150661343936218860841515622478038177784629796571212175948696394706159976633019100846663595837016280485384139587670844589625324021495496414458601823575062936087203566024956856154955701947323450255013414432967134962117158658484178715855913255361146875921944964737380456045591763361784174021123480359287780657823332208124308663557445168076952204981592108141232187454070152653919908486485747985591812656423672477483040168430557032652828596302486473632527277684304009441399852944098698574576959102760800096736018148662626800389297961585787274584013645965380437549338021046797293010714038456676596198827441337174497026898512742499960079590734515507540119284410496588422408642689411352873497659952449961572543482366135494092663109719774504945972623002227231204754169012465329779021469692589532217097244023004017643239108521930498961243316678053947901343365899527797600570758886351211032879526030791276693790923725746296454017241460582427612322261118575562092932725274215745661346195085860748924696531876987870281420278323941052757564003072105283298243351400621462393027268356324893604831593027036667984493696243728109409771670015443570515901986959389239695442527717839837946462092653016281230435194397423423511430859275615758203367535713242144125679395977174577008814447652366191385308257833903080083753695715334057125705882722713722516775018293987867867657881283409644300047985105064060067317053008960075374287584409694475108627038432884097994279408570940682255121755548018689873192122994624150668299713302024512658630534864060577062360407548577464931350664446179105419943028418759038802473805818292512554133715831217273968879549628663538050478888742780558331173656186352768537191013296016825588754614211941779698085052218094780785609765095986322934831996271479424474377569654851930405168095245553871333838909256323361668578916241494076931524310290862942957630252590630399092877189777427168059405451952581683551735346880965295202932688566732225658066968359002360712469271210194495659436013978979749715532837356046622131113861014996440923514077364166554198181164514603979739007198941595776184736606913880420760182068276510881742477423641776869178973540270732234955979537692094130105997744221444959419981440394948593833520401389845984248385124974608489397520789794823070966200194992768079703663597608820986135922115026330336730224291618206187204070758585622729075890846631607100134347334442483182666428941054580912301664597377938855009525618001911060503475992757489317425089506453770990722774700940128139515627036261074746500527271202216468715710006776550418340894914202728349590740764894477061680071366102769315790702893077863140450781348365690084421260447843523791969371467776083355320458288981909594692476921258593490280514998622001869507704557761788417643223759002582101542366645598405476758336134610827997756465016275171891679981094124564582188691079968863318975049883999806267346076539390276324201625908438671684513560665086727643400989237710735854514409787968955903926796623710128678162914829026942430496398616005076565078493031900166730155204440249314817737254645017875628480947100470029598390797745445302784813462679003979180550481372550817138196840472001950549011981303827890488822325881607064234899834340548553947205546033664376966907225961579152266077223190392326950200305181606258355792100613280138470074363526730872355184658175578523261151387859165718467585414043067248550649316234742615470234670273991383118749284509216976235050665318976714580560361178365252792031529850687697436590164385150618606839699312390802932629925535523769122067943303000989698044390032840913444098363665419310011586231127023265626114172150567337653090144679280291845810209322667316483646921814820562253879256706514357549929576124873179195376418596649027336401574172191232514065975087367645411908627274585917157793170751860226301667455686332212571841284893598530751546312500324883278056934398739920738897497802295593418356600020124761928182522610314933142770004346059319165421566462731834398516873782238442808472388595745701885515785603887710925084009521869669030391840692206999808317850345070403791354411401642739049121374510143606747788861369904282657649607268457435958972042474818932564554526805010965368701010756302109907183888075488684106902834576928879423239250986385303529937960724072431299113671781731663548950998723909599170673832061339182980092890872132574841765199799906808258390806507377064946215841624309778042881450500274138622666540358686493897427475203458723015438038620600338844317558343967697937247325535830726284284179552914471483562978129060049942726226254541361061439841079811874214146610944895880612852640585776706376105864811801641145387693408235537830623363300874131277404043414153790126308365414977822009947825798103016720239174292990827925963454418780617298294729433546093810018006875578242651390590613589594960465364474929849392629892280355769704945550962455098888736612663657406395441071680440946327356124303252547804310423672441765580687837719081561376202076372641187146568347596188839980309876577633041799804618626928395204354494622673771741820821026117482488119190397153192193035802280382054540559935134175770385456641671632525041531344748557727839716389128037127333687265556499676716723133860438310451506564875001050141412821575912220485369179353590017815403646427586082111664338865030272453701131852930892449501449978356947613984527950648706576796319366559171642082770673251735532466102462785498320325289218290870351908990659792826621931001084847258290529086871059290640045668823114043827553881327894538872715737743999177851326278991725877084424868696989410181905741732270376447096135773529980832539495094664547605964327418965334573768565804863553379169748793266971017763447388542046874702958876021068130459901799527773526925982187482795878773704638338391854131159676307990782314361114812812292079985680025372568324481675034999991326056470635422442742356428770017933843503318971877576583621522757372842702407197127903892574536326853604011609404432178712022416732928639769310605169083088772378901792985620964408508032606504457729794703976697715909593639418656686495884379427141250279927049480236856726650575324728940956706166817710128963890265228284242735985523987424476216642513044667207963499120967277311940179265633895450628518048008983452780980653685785688737112470747293641093600892156622125368162447062689666486191403775725543293355893479188664336427687727871718563663113198074608543089323692085805012289649588280417071594435465585041552663652141237281015362801647276857119894292344509634491757933353991563309612803281850408880269122361193401582499091408673341930003033139658821645761413375960095894998343525202033208826086592106669105607451778048575296483077988300804037980275755534846587224305502101115071216527347366804575494156616232636270043012145378056005190425950876900607450483459913395421152381720722778744424415044769965942240669097244217058259752832298822695978388972278622264360533472934958769633759320662049771295404129749709821595129146372515839833686215031778726100152608215879137142546834596840842028803814608683485023167215767552911810891044192374158043164226117527019008496439165126240600627490235234595084895427926197653353054002934614819709337962289283698667190100763804383135085809043185352168077465192642380803976925292019449770003215690166817479167023381728069232429820453171976671162351724356897648842089800256078203929889402159166667601997245110241001235459997211627108301557481914827930782578797544113395678915561027384044663679585485775500301230187856124497650629664665484568697093762142600984102648989875401822150888122761632866254916380450354661510902069500958183551807345357292596778846511764957929574072086087347374364105334313452023591654041229607816359254937596604446735761905113915031624111431483093484186273933733213783645837648223942442524683785265932913105459819547535088941686776494000047779153756892281856511130546291471432303599085223645528457303355438474763130228437490838137354375207989019342551027799187572203652896804419620075382844411858565604868700090525812861798770197560018828946498175648005054289662684129745444143962952321828297351640957037337389203840703582422615985739457498955892714721001532274516104536912278871891186851929881000674020544266755945911381187994939610226332220233565522598069071023917471104215862516742152269333826278984287153035172689910515799588796673076933654220344567888990009392657665150799086766406530530238872788507320609307233218277092907118319044559949721205358242463033549641583914598566114723564895795563689490733835492775606569392192129803308593749660519317152546597719894934742287967592167313017392293640181690306494522392224857707498837728312684280398134479941353352895917272169514798078800274927653096814580064914294586716500925352505056417342531294731453177693308144933030921200406946340357959770685128087870675056895454437544345787403965409771727218015117357626565733571119671686562615088348561350854054714209896400804643395601434391364775125717048913682937640083042062032190859697576705279049849501051781092820936400170561218496031554523888492349997762285855456185282995074160317474461809021486058371487022165188025682255057162791253378674904929469195995710052659839846055721883001840301386121050867986603885896341849742224028798513233067424130165106782502490182883021028057063916674488859871266282260845795948117680083391386520752075183406293152922436368589094402441902324339720586886975387713291141482598884226778985333085824438831051775110567026751190086983979493903732502553590446667022502995466737448981734772899777571680381344064079256640449912748964578025653865688361253174297325855298912699911817592138495205147360360944542345578454837842218304435870654708818350988150201922882202287501270423889478514827793329640753934038755774844355148698193154965106140381502014428975754199000859186164076026325546157764822645843558150253792000768723919823200920977227875147141133259843999640009662700198796562912233554208826484450183421993486126417657851370220290445134581330474798929296581641173991547432120376371854730149103925401875436102238998278883216701801165014668846774823444671054972241136074057214630713763462019656889898792196169856301835404357284105148342207175887689981491925414274365552263444920912214752158554815705004768851014681249900247284915253438688897173571768292058024429744969861542216407859973337239574561510307835289429150287900110925089586667730994728995300213398761813169384687480200070247746475825335898249771272261901826166872024426125509212720111179276893750491306271922416581419750405933681323376396944173887191762251940000432664024658783631581276440931825422147538744875388634577341399274672117493853357564250871400939026711579227361273602181486544190477138048125709766787780389932556973452007893624320799458458149034225418225772047516768876217767197174173792779133737546058489824398535311400062523630056760642651031481371258555650025669859980783509186432888096226587892495480933617343975020598464518669084420947220993910669345432119041236464268693628866029778864690489406321636010057137862785986922855702878573997598314046704879971218388097395959693191597246266230329537864825996929014430771869025474782676466301763312672486295876807621582602386640078251052909215348536656543818246316253300348988626562524341542759810792331961824807352143585276672028525628998116213469905616983086790588435253396608172101055374372323337388452476111879725923050667282275411535966535625813690479319059397242105933365230030960092530547970936932991857680290193447802574879706520862203436520034748937824093487190486789320061842619416316513886787792548714932654873742920262070576896718268777006398825768589741594929961038654304906958309774463449149330006940050776883306432693529252759485717017277181615046219278318002909060465958240711043712637752954999913868953330762960232839704236273566556027903999339682126247646373001019258094529318583658731158502858331684027026746974157258469647213038563750242592062994133950609114592652062164739203078883431744026259257457011379167372701995821700034776930031994916850779695435326133394612892045038113624589517391628529876877528051331981173118336129743014033169306845555002873881469591385654710720092533821660356630956022565536695274500844944296187602769018083153488750643161435060657652849497185796464498871113626561396391731290999693413942161569796447067582815108232191172105946592144094182863877913194814253690219368808704045349703148055516973129666862618370835479598987246347767679294516265349005493675705583522383962154082311300837898840159513919228366118129934712735247031717015621054891584564268375111338898751360055557368935506472033391244574626838196842337327660009697385342512560859813087330992157811922719937012908617208424171730325657552715325414942929228027739149086352639569896397739989540003848719224621158085710106805529636226427944830876052978407135640951895803407952280921531368156337027780475065206535579891887556414435476305170171606475907065529223146762693344642786354124068691404794073027470428054402635680362156698871633084626118467513537885289619605916268769238179003509510365301615560013305679197057393091203943221746679870044035790488722715510656322649170816418158823410440456012912215899737354864416978967772321023655101682532056867543900985101994682643085657743327788893164623049109981432203056427340710926478647478011198627235140243378685545406374191045717954875859824045164898142707836975284251460861614956022456472261101531280737364148231704731008026416457005811394451319827810367351822659963177542765313601734727345042965000221535551532145860085736280336865306831477539087486601981786678534679720763084613094825843315934018986761503729033910054037461450127908871529473679453890086718240479850849601012570465661853277326266394674283493026824298295352535616942824416090072260682994429742335338583538777197581433027615453083272872175611271697951610223781277774308815503730549739374252333931699174125035952704731926115166071871952620142759169823585359207407141477810884299493513042238704953901255352077314097648344206220404994211326612222205422789339692230973663373892211389836739163085874509821104513858495710958483119169571682567015626899906027961466735312944488438971551492038966803197217142778831510396155500030952655899444813131880861709983873866530864809126824758686190611777391234455720190467336650492386585929399201589506796219947176063633897947128335208803211817797672765619220900337748712404350104332081277803939127112404396040340930280745156439168061829063396135939807129537751581524732561849052016040991221300597340787164720623996102313474972665389810580541536048666203626004887622814078431311837456947056729302907573701175268060504157262360932514155096901769669079658783892344746867908882220217452179006247206467186738055660372812461532706192948782370134190564082305061907531845164817545534588609042359013861951526112533749573157586660676165469399262439310738057471168453461279501615708418398476991674099233297250964120165729685867082580910530279124788469272241273795962031696629283869211581750099124968752781160817641057574066055282522817435124450351391784842823302355195038595764264682731411976958276194681691596743704480534001798935612003758557848912019466459998447401892416479304164473618474261391183360442009856443063905701979490224564953112886967146992891779358249367439509153671769079365562148058834087138399199661633144451228100608119351941926272453405960617824735647469295139067553519132466920758647873677180984486353985666689942317371080321959629862155178697204112233907562177128436459821659777627568533578850850570686727225061263860454933925062816125705210845722895049886263125466279506888948714924303393772601920999569515799335845851228220017463736943023503211821240661297353348208225963200885356494935167083443877313140364885218112043739848189661140118761136493246435793987101249575691385216976989152466555072004216196467406838540677820183426185741537781438389615600079285487897953019215552629799269771177277309644655754217745219942256618769549948175397121127820677371265037919609399397131435326389187936718922055999548557528825752553043237549641619953825500923149762985523017831844333244034531096686705324910283560027359291112735049197526656521533038031168544855423959104107500480940496554178481568111952129093369671376518160444862353485620993060391069669450526774302542025637179523444462425591583163524642655987570868617805883860215390145215947913402612104370434826438029521993492053735214858312942647960651810318490274865020401264784870007824628559129263802216482244037033278952690883571151204399472818491869482638906042231513145693870144540952791663512642909014551467869599751455408231748970146655743568913932518172177496624120697596676051390933895071335727481882139340279163545751715040628044195979274824084732323050364527914235502359665893052160851527916641357350152744879775894655748567930375928749862414190989868240775689191391920758812407221192576688864586626288557478551771296814391152862288255477183509869926900159363136473958333117429974762602239244398923787870466030276821438236797044030639541218550715166316716364103023878044866140805687601593037962474892133023737104011038465956105342590755240635842758382114122523500912973413320110480521158364709850960733728275075360906279321613511758731951047381158543298600210834633406918251808277165103027539133911477283948077524481066570332163747917099294401488945253380685772995847307129017923580232320369177552019058369360710237694504765522119541611196219626516876267660442592589193300637374769084449749152398062636191379961186866814123272851007907528185484159590612330601683048203555767628374016049060853575587269504409053330788467460883562657204829789970743615070159381848564889353315483288511783818348352939179123676347484522063030739185551664843432422821306097281661366828358710741676610104360790276482968200676101999554818956763254705418619044341651390079858340377903839332105843049510811938945965710648320398353346975571873277494283253820172930009271697310071604323409209453280139852964685770991836343685946055454584664858608929581299597811060914768475580232812386096951971087393535499011509730585837463449585574528800529062630663889422336829492402681116769669390538424421756445778608130094139281685620621312697305793423251448177797274836512861186193260575368229572848047916781690482892752875693127782509298792145006447621006490780034030348197975099295521721101632001209542091036825575571853377020306090906029202217553873348144776825899591999595468284078960485583673117841092662835288727076035712379962232844804447563999762590213459993604844727031585623855930406396216609346644711207487982372452508440341124978327414801469463936860262789225788894943330518908973088402982822724172830131903030525107045234201024684973170517178891846992880871095791754334458891685584012837690537481501857521833019485898379431136657323452220279757821375688774427511568714770051656537361484366204740800636980797438926371292268133418081584356924273731088398302101292206250845828686292688522396218945276850632615539693477684772228865282613010581830291972355139340952999349253204387877487103405937723326792050005397628538548522281523287824729619217564205101833542532997117144427702545501408471946451345706779579109674326388116589077500328574568150921542833488589189579172510891771471596390266835132142792371773327112709053422508510246075184843459930394488304091193253062201434963668052159675977221555582291273619922691400643022415688091791564740137371732645365024479300293377556133956417119920389322735766867273567316468888243671541457247317340309354967810470867876093336003498886513162229909675636370839906903268723792905329386557957795069466659813126293880314281781569881516853474434584127808610306608847547546755259670040988641124774756542055611595911646480378765572967463737478100241170000963334316048289995444621581859983710557336720744918537114884089312254044744877169291097523739429860294241512263795052830181214722517618534242301502941099652883339986146872092775695658291958672949754027940929044378734606831855087410357654636706137359706491878245382615042315183771357325621681573082276008371815571067742141066689367913596635242825952344727045419252006100126479600889952389371295393779841265659625440026028765481807004432266367953268488060030148231560471514091958514846778859848696590633043552655068089723377059569940087099758964432923022224361680993666848110707354967888746667649506813429052248102700054782991861606954774869457659167806463589194055671052501601546611825022717971132919199112800240421231058436923783649960384065178167045088006903243704544455235105489155713923986087202790578060343954800751212878634921835105152946132625341026408052187186656402113093079542835674815235708431955497721206292254104930706015060852566249869787535648199309459496945414849742854101321391578274882754118884717613218181645380951494755560006931725667176619677611272034648399516540964254090013039483779869695224526634874923473732280823288354863772565534113444675553793167006740240095627168621759670682160107774957418825236451161137702158123912735676923886318698401128402930464206883193165921421660433744175185500637873786835485353775694957289367257594158095521989743487281734413266336299877021333488864493783981848438835386072202470628166162777417637726937075461673103074745933116438650966862511290122565042643133303863915144729396789299624700256205429661412251708133546144685653424417883642570685933959833847694272044072994423991450690003264100840325451414533303889720456209918566798192178023531850811645617237825375758584080896965870976284862226503214475646884827531847405338244048018377988578926234228420886930930199516417762789051876408678077731606828958625835485570525684248782223536453756423661626851221325046164035849958038098802833354396009418855729055911064956890559704126954383101550455992040052161197567350873251388644764832141626878118166245244034639932102694930579767790015713388254972815043911036542705313318540367419662117411418700065167565491760113590805680882451709372811432143717805178282586575372833724975599805010558310061486879475623414540817650118567890154762770543465407733876131370327893663262906898251122548260762096964087858455927983304296092237220630020053294584438973833452155354461560548764094242971771080963391396018222243955784025482058564556204096214391530780425215382616527717695620295155793074160666192000951055577581477958559279918013305891069242832490859322457864164368263412304073945138209727211586070515125132575142477637025813697148615677508555003945932577338671743226036667042639353632364103044139422964829557820311169651617568167110335094717195630936098338541397134162623447328780372103516121795665231562085791176886468489836213141040026987259946751058531329069809243087989046199043232293335699836162203581789385304754164737689403380327092287736805679445022214375144487006499850897516399952454801642140809998812087305135206361336050953304323090524095282868789763139110457273385802425954802587389845758785054913121208765733587558502791742621336176113114525122933475683218080334330762918593969588718835384814856365560404995161163274329471324534619149049666240484265186991571136594568879986549995264777916924309143020629771552528100490052823350961693826040502288127259045315498259035637240301421069642578662330965295606181192950507829543034670500968954374134449915919992447464805048327490563592269798471925274149653159522566400173508688840888943645938518490531276244739805698505227840485440033184459705024042498400273085735860884600373010097803146642339506221058134692989887257718919730695575999671432699711650439523558423680870110218844658129124795004548948755395914915251650966509048035125097424123103801301012206749600746016385446251781288861774419149230839991164592637637738029382781403419523899621728607859350224586122658855894104397512032426990592294121251338054128458672254841893369393929540933968437668670302163202662443391578101833151507354764722127075218810749862909648219679221216457268240222857834227324408626171183381269900120138140640480397328738954537460258681474875978496785053001627256314627325357241098636106296470665501086622310109320159621104310894699867518425930786796647866757025083340494435097255554548136917236076187794033503659560834799557055282998744786559266663891159054107355674424772120730947765506897665078894144116396061812229809866615648467600384214841395304205802812498851603220278875956997979948562301791660887614112724655805065435259914779837716174783423309361090785106926730374898002996858959267948665083254193882397171008157507881680591328949521798431110749193333671935475558061338411626314713966644090200148706066895196972438563433853787809330899466113810987412270234722535711221195594209748390679889752104667078931391872280142671159458189473348204590760647621982123533530651755986592643759436018519882379043712431791659272367727001032737171466824693478837783477297201907744959906991419827758977982348029749206181478162879558051709970555257684904510546801058867944871709218772772751776110333719718673241606982178424998694043852800727673013970155034148690119410481402130912497666214568030137921899372959693050144896735152959744577216697692134194463826520734843908629792605590288612378707772460040119270846393737371272520895893287949160459404652716005859435652285312897980659716527735392372354919334820538054342906991774635816908311054320117983189923747211685635823530608359376081725542005153169910805535423145446960340515183434940498161188314816923422109887213005993947584891620551437332499087351979454114798873254420474585421193415602295278875480587881823809463095888923140793606184352291650824582910778274873109700836011022716686055532209618264741178826861236829948428955855245955535406096040485728683018285968229774824850709236382201238764261179913741956283614033951112402560107453832413438930782279680511489385707720643369525860133224933795029586948007879681294165821311662744062018738823111114191421000816840960744832580426512963415841599796634277031317613814695938752356608863700867895917934572809080988679993003830520135214956287651992444494147535261740129872935423365013398361331917935482035710532453636065334611992763902543589738619485957608430840730228860756551820344948037086039682188833206475840809436915669467719061348327432362097093904088296315265597880665286207759835461163548545043935056278024276209806196125005029381637414496953472183996160681043125643493006098977726621791539717235808561789655748629477421862874835524175702905183393383044139898985690358212250313637214295861002824519288943876289166242859228894434301206674879757759648577524098797801500843772204321982466982538887357029886718346598226119900624732145821279094852377127870724208302673310833455726103200124023313967548820466164444760997900903778759772638285571725261586013288057302204193330762635742731066814787059840480081317479946900259029423123973661795317610295108114701921089631149229228983703394953726801338159400957714656791123221511901665538007032188694888017819918658911666616255503139529496309796796241841610650690916528094415786993332970011210242479646333120638395189303914467285047761364839107910999160124971023431838356114519797914168689382066579693270179263374274774996488926332138795662029265759220837157609567360545296176512251755769534977883730675933253670708857485288192981970019116887438121386771920130728432884998357129833192140405651690004206530442648538515357296896926877885550644217509883159770286259490846788908666445345226971908336010429715730262979066369652247722803688738128838834786536665575727593706072154488125310094275915285866470580561163647354462900177872087776727552635303454156670002852224998538280474908183069685004781053207519290103304199486805105836442487864525952735547414484401726058886688232459331644522339611877905187271794312243697116634564758655553380410772506900868656382715075479370955083014995816729063908685120851779547064071971153123454690820968752556875502254892550258148764714603309089578284667022724665904890741958404929600042726093823729830331746366354762409170316168417278120885887813223990957336515985591195098758374675267268960820362866376839613111898593822624622245781445775515410224418897815185209185487682644123487841531184008191114579198244201060135520958037184158893785766331622877088382539815304713752258063763018874090362087241796626570118907020728336776827255134304149846526276333346475951743782064995299752316446483588973270987051244404646927226624085841419128639118610961320345152744614776692731210040785402797782776287665589511120228427156109286104061672324927883483952338632902960154684625975863832157154442144950968581178022765973201208386401093081057338846358145170007180624993053132758775430897345593592612231389687284442959534995768101249167064688603559220691376687132532766971003672505641256705936322074320303869393062103755810133355829093556588341093352352917964776552183000414701424715917321076957714655041500108664707225398480406671377369011555705147885499787986262070275864430522010104988531544527130878680882055069042539419019299588980034059165102704484713671374616502556824499711159201622011036296118957441836234709657708729681955555363679410453565694492185695495020347700399140682268108323318801445797850727038110613204243485070896038069618369084339742779981883665080317066201952739519932890363730440653551093527059233900833759849392352018650764713011461737631297864573049100641950865401009482135758501138748460840478913599332344809033386211795820622750819288042970397578259941665352011026930001627995088199656235008278357468888909942526584204971626077211233643252309215843758279375873710316845390866671104219462860632725601237990233316259448631834047858094457329303793541422716728879048392434613765019941263468514940994332988009787410189516511413497479900578500061679827546814268214071243337759424942439153251013142816385481133806557209594955344648853170643733177790492503786033668317691725599690673523211634378493363077154365881328790822288965464070978525012447095300302735241861000746573838645022841093737912360877842736249471547170926115465684368747564034152824011524174224846181688719137048596162582274757771695361842975614158541979905879625720458259927005831406252165190337888198252204310226185660881226583505025944297114935630987602148668248830443989245027820652922927235547149091291907150408441775818859860728859857965299251894133136054908412023523105754648889416703887218916660201826362897362599776815745561270182662414845485542153641322197140944788965034302126070736283682562005084449680246269041221649406931575610674743569199435370004982389075788620683910163902275573366227073478688954806993843424641578415413550355261337526283854994144181180158942014997969884009790045832461769457088410760802146171000981482890456051825089061836777239016971889974442139903720615662822998998812695538621627159688670654797940974543646400658848001972923960893551152743469226836715104297281541984798906695578672701341063593006367665407133487102216994999391081391986462815796965303076625814546514859328841201956300057798731397134188750374171181847256723646981101052191861694503150850260832104023482723746285800305599097053213394963880614032546776579516727813658711966229882575673734762098655387402786542674794334998138437064542990139467502959708925334793586995852636612347359295913711926165629428585671801513798509968410495989978061325654923562893482523530749006928305268710723028179705798351153645795749667716580849318925469046888700792705719986469291510363102601787551903881927083240131566043140896356889300880709286754455455841475152946608521546140083720813141376487051648518604885387843294063786948282683565289329858587220262757007995075250784875538809033001112510954643154302091823855144608750529754853319371237137308465750262381684366237778496009486588580131021661840110176252391972956806734315127399600820432503794767933010550106341030158148723877492937284286051491455639047726528493252581950386648029685158987165617725369545823945602537684845805432432817333933525992623828820210489208308918071634364101036858564735003050180408195582109681732814518453092690277899234586095933043896460523829809744726621150841700014028670475000974946620952277622838719465335266300872872081249633869903225222026685953185193972217549592928804033990296182321169728522426376489227640900906970929341486700282999835856826460696671447052261935559218787406535199427401524662518516605711266320267371337085275565921478776413436571149026471469760390004878890462633692893314021509277183999172132731982632206233364862193888987265882351903183103792465182220662993340370662833049941590910249262794455212892366018201984590059546933068980463683296299957707935446851493858028319988164855679053400184807725136188575492236852876274519015065070107286535006966186644412302506367984463131202440623396370090558162373555784191272267304951878132322960420328273088243492575666576948618582893401523606648649107397090956845455693311581157813223202346725389873044828330618186784393874905384012055507501546813817834522618798429403503618236190683959288816629274441821835473301753432558286731531246574447530927176296999184968703780133191514332181253399413177352970324424892329660396063066727961633066472401247487882436475041988723427759848158729491880548468358720407593993154040816583766852521958766890701662057035475055590437268463392672710505188474360325833682731541459336918267851629863730051926318289924361558626540305977446004563673446373841174454044744095124647469815863436321270490839508241329505512618507510500009402955313456785836760155816880906017531907754637700800398953631437616197071065424773811852050855555956784360674871576329258519898339698383213561422247344158401206205921157616769805394792276839204070293501297787748497072589179701389843614735578730178288593827252739148124476415023331887832705677746446686911477406546000399849760997726892167010171556039171303772500594969612429857445313718914634573097071443753573597708542172678260494354893230346819961481929486506623771506784801207746277462468578616233967700612049827852577139490035738915012458374187591670308065776167408367939962832863528287286068099433724002094292100625594125454928671161880099099512737416344213960045432569219927376839995368693486701113343428521991494836273200951698829589944406189996362028396795987331876531095217051209263498325463348075065891501722973833592568214052073821709434472287553317991220973349457342920114684406823358362192630019430562183574384444135215022432092773047803269766400670577087558512739067133437389770001431493745034380557761378019199159566449043173189557661990659923606964611783291386828049690350978617386995390529830414843346404588251126910721550156994224004477500145636213023961884946729289363545075286820974307962835949288635209330280203528592453589212920054066242278521918915785170170794305595634452629387536222080379784862344047036953370264997936670354267181053475381225957517209738793125095606591093427678812019489231802363159969905924104916324012891486172686722054241258610549960126622094865439380462129533250554601433222024584081610046807175286422048395229639883053699009545243509482180705856014378265954037508434706709118782322017577608401006786247154470204477536431298073623050621143159567430026180900263984163700536087428037977507542505242629645282958317300982675824922682456320602896416747392650259690481933118389102596581124390632195328733502307593548205286813158379277455425949338775919890484923908172348990604956433716544731119085633161121163513847299074707542720780474056132352419753831347896927016302335782550473217102237340729795382513314919778507167445333705631888032580464458089979650117231970193864889661042305637466444897128091176237465429064800650463300785335645669819623930866791689161277664788310383715753829141347348579959320918575066940925006396931778338159199152862598062423554995784377702838052830903936788839839517487287520305539435185742730153448555589424764447767821701965311491296739852316269152062551617764130002954437760169115467599255776862436392141502669878511502768367948563374485447636358104631298851774474825802346814685142482541003032449149974194776225708365439719392154685644399675078879829744907950552476810602634414928672438487507387632442281989640044882367663820284740556544125618278069698032033155778854567820605483745640314560808184977067682770653238289523293924907180152450079008631684674442331834479149495655270134309442046690839840237295190979453008554460087467066318784903878753248736572644852818056653723995661213757725151637972382874584543473228566742581742940216266798481556888985468502984796472694193951362513680078569282833451202956333516376555719931423190194631004172563660293589101270122865957497654336543063888642258044342581594274672516274807358751223897272798959253685867737234929885156208527332188416237120632481861284130185746108652678829350034299958155562733010851507184289292568176410162339742397250143301474657853700215165094526278791372862949890543251486457097620776736238327457275382921850476806680246244381385345193180960281601686663424122077232423924216215098779988511170871170686092586768887613606303987137131523052609556580722775140528319674803322070415831856501456702476608245630685337345114667876754699001418402452609861513331461014718283648106932035840401732337966942279705574090932514687398929037341395237391514480127271189556335545584269872443987822556315024243693448088623859850442378309169889004817454070745318901801897205455141220193072732218860509420757823443493190122310366170169036755554115520125356321690724045648785815845002716341671948144647508946813641894495497458676696911095543123637634024751432736757878845778936304426665652679830444394158799465320383570799018386682496569481070885287523016843592437896123183719311908703269477777261904378951477123612076132221188403749769007607633633863337955459137818902884512624684052257840039106952289042071402751669828429873101736354865690436259643660086736283129424179819776832536926906772079283627525054867011193774928368386026933436249404390270386076458008863882932014473414911860898622138958927534692225038062940166050747519898176712452021510089643641894616524219044824244432001302011874396916830797053484496725018969909790033417487821031074026792780532669992902806346188988248826098021271386080772873365629706577068474192087880394370229196552250410234569016797239575736669489767626347244147710490463209727045916369308057897910608887930539203284577674200632506860745258087040299112861663846256735836596216304138595706704920607316834117586578434604520480451186914865751774870873931581486343426580797931777484542391981268923527016643628928437743626748438469715293217077348319250342392645883690384501652246353593618291121100910086623234619887591997604296250329383797290255428973472196564156063105092398337110865175485984258738591525905758409931990041716224094273995113884667934090717198901531672376508434191237310635932293891246719262713521025279678146519112179438121967978803400889394346959294336365356558302989763706022732281827611607012746175872488109783646282336966678435275308054068328659438640848515752498723331401963019493649734244751690642958718106965362649277506028161612159509213872060295087996669994592284291393602669411731506273121706745191271727510743771323004182804112329019819679237216066745453789698440972301728072776002629401663180906070064776040092047371864853099418263820453277421098471397408355091113422030950060133100637554845235423430472511149426104159694548481999926711127727198830881745528668082250946807038576044562132107369722474492487093412407286151478767473508885944114263401308695222781705148107369307874482829954565200554870055338355159937774824648077535319788871699931477226796578945852328367123364382451860588886609059154679439360174999363200611978849707621488199303629488764210577965682427016587860732447381786354186752451463858394950586377534673407933473177662818243782826307051192962767810573305291351552563504383639480733985498571297597045134971423613237077993593298756559871136751730999836795962107041284688830340637400518058447440033554002452226838499738893480946915560971325764633269988931971900529457131362077381690191227043117758893406695607775911241507619624324957819909078939638482477475573094920213350775913885575362899239752455382955194389914654268127172877370341212675749204909170855322249846633321833840726989486183794381646572825582993455818303095855233499784768164136057617288636776166281458219194316312279617591988749999074802971986519346592558479587779552170922624316682420878161289641213291128255667631793891608145418000998482841735369919025152217884864094840779816205736356904103858930300373294359651431569713442739694324667912224090109004119874709863496372485543766965832349812835212181352265634597177675059673561551321015557805809405275027302844035325995401892300523216323715127723295755220062664163080655078268035551706569606187055563386903774030608449625481153667303943997778215312521384070536485546873940778141468633349895429620314127236412000129036606880429809418008884930508023533578690793239007767618880918656708906296485480798761973471223152089627140819666586385015057451007021122743616747965681645405244389033212556923627573704948789932242480996572105877701593075792031115172106888033617669841675824224506646581704225161821268536466624251520331761776076698852561101840995356530019560028435605001903194433925520482117758131861844870791856534899177468304087474662621391538181765287644845318497737309477611439336867228683445008589650912147968475264408078859401295633221117945713456171965371562473225680178765205092150286413180070746794659571954199930148603516056583478503561171300015129117504017835884162043136822663958713468152903022423457411943739615340038360250074560624161118886518151211511962775765362321473227337418431570521938565561157695382793599628309785617202952897441572185171893337909112806488151599969814827446745018122935220887149119661775001363139806956960091844277171527318731136842240603170102332966243131416319754033514559046066335249370321554798759994175934924504928438428342998126656193936118917087113526485847968546777137824181375366493885894304198109103026211879125169977553063659530671092689436797133258856457340322295081110136482707634401109041613202585246311786710624934419701974086211872527494660299003904490712902956883833897250815843022147470519794947070091408668849844466273988573225957338332544136633641010547537282757467049866700200922154376190387099930206109795924975466888647018171863751244236992838979859294626823776854840296033322835897120193191886395588636794968910146942314029392475803355245874415128429763004755669315307198074449513542598975819770593729566028933162462596872464115977618500870866063322149308417078612558793932976916073954164860608793532265959834648860534888578309281147820254739687339885758606719860984264994931492806402774896039011644904935618361759678067363943409539537935993650160633490612809262553149175715056795990018095531272596836181781058814688519395819085053882872066905947759944539152974749092403559663565683559018069011366726355002698638394455792546168115601948827102357546513837274233073755242937379953610630906792660366602035873796561060478218290461578933036218465078205612862038304467682779792029863523474756955641225650895877633396194880555006324735732724523149230155829247324568454692093131961082744692308291467057241934162798618926233001986102716803916948779347955692017637285789653562039910809027313085970111016143754413280561311344757921225666711536201447945681232356096178110305231470489170741342680302355430115855872488962876197978793247689509322110294732045346817069021816922620224785206504760055761743507875020762837322078905234136920522830256117878962050717756476202672628552620469534379816718818580472402255508806377266339654945323269134099306943234049224501414053758241451188611863033321725732154997983945422863117403443213096312841947547284923561461762112672234411369824622245924490959333419971905532362660503246030227779180508933366521888151810939975763660897742446188557074882934923928247329295380890778838864214728606263022904371754327419541972719072994000892208518521810104142966842339026314353144512469695023812443085372030360414290111265081377183158464363116606097399731945137449348676853216420957831149061670933469736891501864870236255424179810947020041563175856557476251462531978251292881716277043608426314488295534756709137530835281753639027769054449009020956073274999926453164947049007679373737784355034154693821261287808796129672515927293129532628057784268109964344590946971156573545861934006410501831287176908450075568802121116493135948721152389565849155095663449780861493046019961894552366398753823872923211806325705871174104945952357407180976495130621172110711721761734206640366082118470951159178605914732027846804578517883890416918189622206907414752749248947178387218289019287782167205380808532263546850351953037083725870582162971830857638468801876699139723856774221230004695314656471381720831190822312117640342209718705314342742061442131544356663353231112753547317827809515804979837644373097429011111497667887564020064096471262368188802741256671436307373769877941894428505989477987611680113934753256141863799946052660431601856050964266650043344600808903829505941495171723153407874397951099133035769535972122601877045955308723607550889266844667221410598961916129590951599527166149111782401113036687403942611974850284879039912076187462644793655782858696915637836286054119029165227681355549636982408222284529531463158930898834585265387182133917420417523862765080203150684829614963509198075094476803271381446953239732894708524444742561711794850443081426925056018779348222854845530057167072229297953050793137497764422078643978542273559169495992209442540514493777711393214698590480446119094024055822860773395585378745330200729271355294017466988390607424630734692961171403218913711529816308059283527662676531031294436915255622041562259827331241118336860217968013840452336513243900113686062745670854187200885202369928128267946223529558817733720653757537185185853634985557986756989529370019518569992430508318293926078512912035641675072643906961718729212786768731863404619140571736476741130643620493080956838547902986137521859062375853536717163403329305587575805280377771538721346844459296999021670144797037602381254910582769576464975731000075975067916368173749890582746266119776202851854508214404813431689103404218912302769046655580573509337551662742629905398740143302782934886795065195285710462189296750916456517899103446985248409152230013427560727027796393386519478328464079454549781791115233577235975419408778696275294340491845878509507072597049696597372644620437174174325047824080619916436651503420713329477480335919813209305310306047330312639938724075678752835172679291029184709651116420510794933893787540326777202986506923286973875406318590524624940871047456547724876982383328548046042991681206621211568154238377611859031743175114604111062572613964821390500102216365606991544246887379565591590949949994603702055265905822156789111931111128938668514337682345378287318991666339105858724581278556443710348092216540453079744761558617899516101856540001764006244552111465271771907490446686891009188222730849299477145189373141644166212541938729268418662061657806420581974738939015662282216387541627253772037670346341308946876788149875417207751256186556096881025119963924240079950853692757872899759847537109836387887267964481449254327120988434225797644409823572575266276428668765073112758642094947625312815305072955470122834559036714899740163049826387457898940247167431532126924118302668408843161999614601732560136760225104712740947177390881234073358510216168134878640551845264796521248930329085661443389348228619573614562151560614932567691979457391746341431803673198095066725781592775307279809378955493752283046015804082638305554819688175999092867634209212521318287734285055031132693744656455993811634111915082204953140884750095377051331670573358194321437507541718851126130781975680350813182857501718422069843830014542435055616511736137704416462401495669862072308395058706555370165364804968094853478017072032016981548307762154857426752426624983802825692213724888968721891471937981901823637148490061849188752984975362844025744109982365796863896916114365300427512471538936700434730504546931591602145834626328262748292414276189840694963854262239203555381148228268691749728958181057306707985805904020427925082925020689444087511789395017500913682597933001478913320739797731443109073321720010014364111104667721020952794573303695234259839899392802808094096946759823266902102960468872188596780373503495112106024678318297964885913181278877966532219043966968993125795246554138908152486403093819135415867826057651853403991025321433380090700238031572950056855233535364206289836425701225910520967161322062688622639386357854164621454111211541116613945875115752081986527398345601479437449936904818225457483465067037235253158364024032780220561250494810082061787717299978885565722485655483918367658174041972575107355869651937544949159041691282856050313908029190769278162808488292085679309738182725912230955204846299036452792358404195801410464755208430272329983352387912089792943604965046314804330872107918024120743937850994760084848691843457517801864193452997110882205904048976521128926255680380760704072684374082439708547298887759421013613291874161969743120654166919274714336680871947494188338133172668829640956981376987650722016397542400073529759975507263213027748544195776629171363238821758613284935322885515731326205160217794520683467876126713168394020730823646762055215867867687633925930399857792415868824481417021064811220646136397274008199617553386958210915621491629755637647204943378741143564406954950070097627451423186218752330319749450634411787819102283078074665002721567961162188773685644798049013253572182308832624406402811815332494982626977780488649680111877593651734988893413163783751021937398872438756099062279252074212497838357201292664259404950060917802426989545183403649323255906343637112138014262632833495758269886160836517002958371463557468093163730955574944567141748899179242839850116671331152657777813111766452985500452282720978253154120154643897966401833451484080293346200272422230835295067909829449656189692970053535363284138209047536304334171029172304974661978742091765157333363645744938020702511539766120304631817407704797419847555305052547215715278866044107125223588016457651325582392874868422788379378071602123769798676313403771645994204476495769526222156791970624718950588038195304769530272699352532324634387475412974990233014840037680439113602335148980256368780925634911791559603872378332524295484293993011410113345827032366983567183065888486488570072923492189602431524934890510983837545250087587291451980801727184932630159279087975435248443295684191695548626286665742301678169798020453956032221340469512466246169000350209149837447066683315523944234876289228981169535827488215659130915931857463213253814862122060635550259381886286250417176028701614973981732751256776705702268547849339166183604005341670101932645568309364420067948017557506460474878754841155772632979952437872422469909914168044036801950096320403438997829903327900060993505347651724355945565317659809810839318302372888616213317439078042997256886259088589695401088688927753996660747103902893532819688701910909475609900095495755951264645903509289341746675102358915572054103183226731159542306568165140737049552673496444098002774953226155761092097326562522432089194422423806967559164439300887938881134299523386327079593640217879035412217681144571382797166476493276879764292784819382960995032378463770507758656478457587554497661020404028385223335376262911485901922925210798188818692691481099631405878148181450647338863358871821440621675188472381053976207601178441451730895829455704378463330922107652324115624146112342925715028985829735672600595993804440907506611198382007117144689566009764580997964547248144570938616986564907013830117682234127760507102423531151717524885415277475509517494060032492142508369520493536896235877479055679085535852263915495132956956439396641297140978718472870601988304708323721668997884520137528580197682606647560897384148991962424725730483497912813451601655193622077926422956785810136304166810702823361809062713445020847397915746745247023950089953551446488301650911990032256009459727536286272650627146280859832443839702792592803663378299017094407548528459693652042506969791647860156313227903613267735451885859410097913300828816857908362299785956871007987872006341152124332676597930838658902707067335695723582370554576929395251292391882041281050074219954218935282720292429944917524433132653824841607226423011679967549514441149734722934875262310047836870999451493684483864187042592625190706074355511032464020387581476346753331741490234302793586074266273111517472411943332260005048602660348609202914901805482743752369235584308870455668214033923372533251752034331552016363642365787602696829233856719584098582039070131883832857057592324571046876528603860573536239747285772957981480255132072527950225114900841876429535442561809560169256881985553647508237855998526799583134540352385498161619243254111351731204127913501901938980212750774078441175759280808864152651584836360871584899278627882018585557703277925410401847120868123740728784945831985287764010513147311421739513380664155395677651318394300615709861047463381014886994842563653174612327320491575601362323339312612179016979645176672070284139463042417664528456888462108466802995307637822592287800960921223116548312935545829478757427975007640800377828248691764406214580820602972932065328641653465361156710176875101746673484596316798668395181166984692294100450428841192038959791147054696721353720607268715136287180740480747324010082821685167716878831385205079067266464094982384159317098908835587062646712162181691465022637544346887818346945276448117971867652865401858839369794516411493815515033874528238598084501430416947906492033108136787459941091845371106426208110234475244628638654640570153510341990286425002769513130469744854604797265846676540892734703193517422193190943970850369941956909107217393829839171253271840532651165761125336803506057577249713709746444796661280455222093880979395973632108060203249662936812370813734616690611188548388564161081862999227949511803551806442978992156573487553541594556775523344979750166725965019480332923150345662328397178725859941414498430036268556243636764104162101548722231789306947916983189338695681954537514072087660531943855247826414938653376917194728201850633810108517079646650520195094332906215153823245906428415742816855369865652809655322518641142088233812170267531112304520451819249637317870398461115958881794252290780463013501036735878158360030123013262232075314585885743286015535360237663526454515093303421576446489014544935090462034800108530547908348672010281927588133279878640992690991020558000784006293349389038884650488066528305700669274136288671109536556138037354852074344578406291530781757175390330387459099881269941502044765497095284831871462279857406874784877865052766238983206605264086761518569988656355542890441425170818797520768322220518356375289450940236701076191251931283309527444126348498610378736061095434416744227303738985290541425277543489532655901566589464507789451194566119578695229477245497385619575604619154546470302028542240013046004976595592866071882933052731032537241369049694566997918154510620506938571530892657676723389473087278861069034352660401772435560672833663401478347109482406583205764898567055069180437134972450801935606596851698485042304190107816074679500932396753753641014925358016368015417911977683607184305998160958720737450530853763778235605851607767052737334250484998659823502854203028886415087720814723877643537532587081973207962615774647919979934269178978118340126241209197613726732492668267719373720375601539144751953990043457562529337588522618816770385784563592802075005350760664231423675342382427104348755273127698485884219363471236456386201742710689217600367879225671415276227136764508901894587658118131048841705334422571250901401053592353068821225106506678213480888213600495625286862692526322897727947214039021505460461318927636346379742287828949395647314528074861554654318353957019323921120330602454887398313838360745571226807081897581733643070973895923939646040428901899240072011705999017954243427192511491898397404538071580182112066998597331609808758164991472384081239618024696933232133684566662511513459668052943283737650157273544686019530027998000741825206063373734902431604297795638091175687522286207117090332282689488625249192347423282965275903590194926550216345193038015788447003815176847359133378138930221525777225620806626427167359376067227943610608260294031669928981910704666984154383858290151165862514816760916584134794450735895154427377333913532965803623107083999143777098705760225326164491473201064743424748388439987085527347502642976180175637586103652115377759783176226688921916635411001443597035977880530458354677482581556070777075266833671048403620662797422804791597938057274254383497581476402277213670935302835176110806211102115347163447812341574436990139898761422368639829124721883148787467459626958028405213430137493452779555490827732730704105835778097127994940009495659373321365502748759386585754953026276577294300168591006784268420307552091601766227792770156492152411959406379204067391960045696688107339843234677813935706104144019007528847050756578072839772013175272377163896606789533981253226907155492357710992772908364917585618126109164093653021769142166721433498294300223620605952611637061676617784624549867376768082436785127812060860477467825707587308855772733917587830518413315701180089040280053293094047448915382698911494189688559144029504563082819632826318314319673925947876407493725545830173245585604577680158616236990500479674855384367630160018636860571029380314012924787553319629135138226739006433172062738592386946994518651055019390389356174836185008506680147720343265254418488182399043569461124824644260799485052459718640199605906701461948008978637702332105119117077850639282397688422886090174750060560185023386109943418174850751298227381738938172307250592988007783577692145238106926617517801476974377742699390418222849985612196271539168868221660803581103053909934313092903861905972834226936908773903185592906283247801907328521778281857669878312472789160833318936740150396405788709289378959212009013238369092135704715517119043965831131260562252385398170652314580220816141399940885830908721963148707042126316886124697382094731886705306687502787607259705997089436922955201027075832651714332225641505763643251059878133801476467532500485102839894922419805376561985809822615976882257839424393540984193961566395865042941029365584812084766183335167159410436819993040362826226462541586994735456946548324172732229951369289771473541788188096986629664881732039427596324623737724533471721530046683451168022492877298779979827217157123687681167483510836538869826799579719967999518172065169868842477919698529938361687535093163041231910224072898469704285527696500011527467075324011533440136198550692973711589672361529036105679023947876799914049039326040095821486008103441661245191205331465477597702487580607062858333693258879076289088298990494788060709957557783899776932100437047576024940125259520593318905196601477275128128962058600979672394956543322161685780454796087187046547594704231856400127456092010318371964871304048878831585451099967708656865164297117428921984565127715793625606081206401106959881425228828081543958653645472614265005570766471773950382828157913295166598779867578020461741127225819506292134863797685715966276982320372186754275737766153165183724745439811590075943660899472955264647703236696563024664851487965048268641323332034834460803762568088519918755325791518078120608518421248023377771436186903650560861853658260673135857105625205575230893509412561273016833100882359130820701792757967985454375431084430306684429547934031586193354606819014378338938263281621908321003519942725926305213250558929892084384301860598477584136144557624879486302698485366286725894680490394031817782379006793445854991336576388898110462803831035999366274457061568878261947965347950572250691565172426820801271968391675792592860458134852242918157544082110105450676692487800613252869460084757288013101623933318782772219471393402295044042937123935996347650742941437221985942526592747842119506577953410784810437501204539046230622919435707334432901975919293043666355589251578866239107834639778568815824658548829597883700209646599598775837584353934313576425372564486682900119143231048640514638861563458525675437186176267996429457781882722954676753018989483285015540682556720261535830761551005285236749637138741068099821435162227961959526718843206105169167659147531781624203362666537377999962990456448534227466853089071878243695769588987194028587114489286002465516484351784995434947401380878598074128185064399122325230303496294660020599957693330820070545978702465062332299884115155014736428349007246034017368699521506333753199374089824988273021998649005862918731310517049248818357697475150831698162235304007123991572235922416501437081890765866129768934478604691812372446017053867803387329043782439613235875603063603735689882145563198184934162719022320935348040745375104749462175419451639177161537238300779233984462556546449727966128916755142063990568799382101858390790881352975835831869750727977788863171975493983032488445611639456294528061624245684665903279186959600217101961958894850829994360310157826337364454931226132496880420046092359471297911080524610102340805790029291260688546077229764974689443545785436114500661056238914215953444196245536990490449206280676752326067865905076343454794085427938987046291838721962635300519852988635681474028176078527473611772485183553617944403070432298061551765844737606363463005528677462910277523160750786497863456163309106432108566995407131156971194404594344931899041538253289542894493181427384366204484458772654849622749378094323555772376089854241489847098127325670456197936131993437734139593348195776332072195056183920025601342613772114209070126802118267310725270695938817353215989105226110861405608305891433259498324692311082383893950976769558247199182996701334856237886083486308768858275459503401758084620797583907147387490780965809891067229727987688447530276730592238129723493584255402597816031551656943597238881063267880642129492123528336736526661934056781376075461531527606145377062591819655155700482387594008633738499190645539358256730595109895265686940714084468677216079071761037217738172041123835418964406645883576346526331546809319561336439527487915537991365657249081701199735456885662093352306880371988051642136837441163332246937051485972349357338346930782322432439268744023882163981221098767558004149932250652054864531622222507640785462068568525434308199365791221861563974371196376463618233732747613777162483296630009928834949456086488474202822959944951381487747397823510473547425855719939506302542439526982964956998077675547093403571743473454381405366231306691191346450079837787061696565545118976821046825536798129553661324420091894344039845196504787543769457692614964966171538838350530413055060781847236352413947673940261841967498913590019366208275960390082336917214538481219434604817902411847625074683922906260255456870659331446484795769326471813041837708391968434339660006459258044683655961480874573527934715279402516249148104812182956256716414878997664246339074252614842478847811612860088020543920034467525259440505968976827630018795839858343754193549962425150415106153280368831274375650105962404932040008091013426416760236431382415035705426685674497266076820073963460897582783749116977668812170962973997900259546561436646297526484490943041541393766333491504804339833693345922858424312902004834261923345408045506179752839312690916479051454124242060102163548844454432104641502591302795636591652669999971474057227160724180585049944017815358242278531989581152871997703310661052567796013891245256004325363081171071516759194634826680568192150765281863228565485662501438009790795774898701780279305669516568260446909666021426343666026772397876603329817544275588597017841735943167408726666014609034410997394332655190851041513119624087204970369997797004464104246937436411417595153305135670511007554530607948820598394222490327772210603600831828066542103079631186529785464228203629491591558753395828768866795758938902570948996122636212705345174591224056126687073838656594888433205231028549918676329739871603529397253023677448155524355150424519934734860615550711846751003372116164247111005774355668975075134559657298563026718591372824263834355796264958897703531145930137798756204851889145685911354037454196882008761647423523582360990897229760999539204419394183089606246362483479654478699316338693085201607288388845022733454103513774630007585153268342339966602783641914411761863083077688977810206818735354683985200465198163060960179319545635480634425861253506096744564847152604998272483888822179072551367513105828871322422931319964991105842312158567082635189515293861806406964007880533143196014632002533450965484403055164196012215827888505534167274204543198113164416167924179761452686035899059250573393531425512482013053648618021070856870508911837849290335254842903549951952968515987677785743525893188632701706206035371994852850788260039128315265350848197009508535525084666175478447055021811713936459947827889154654125059765198783471333466603440463047976318784932852949161790520219220508285844206071868726070044335779877985485395081446993330457499051666607869095163192473576893190958008223423479363113293010212478131473803699995812075020669472932485625390657472657285960543825144295839921700039132629417953184943964441991997423455627105569379469255872254919649238081206638479088308402883322908815218588285105349426672271630528431259541427735435253298203088023890081453924028158147200509569335972020516907100027957053459320710351724584572251393787541534142416142706599683989970108708097250034486472095285903984635440560584744720768734219184786728164342952032509066142635392798531885971375629856652614356706405915385061977841054436810196570595164879662331577677703615115014390049296780759539649160747758667323556079791132162725873979631081584541256943111473964474415450837750851908983604926707281063427251655145557215594307373447950077374947002881582641998738247008770840928748663411906100923006291912886431204488507280641159621404203954801520643669784301759964581119363080342211110327860601485865430952584806673303962174412624001049258415815653131377358115652882225190730355006705006915178027945352238052500493673470850228350197208018734850039159453916451235565168920845390265194864795154558552361367855815371353342442927428020928426392029501146087434223232573088782909109749274006980910972398356962806943142288495791977743960100529905693410026944746616982355515635650943106999130269451970167583758406492686500325655450572992448284607262635527547562802350356919198134127359162040378545951886255588649785578776299185008032480897215034300904269181780366605101045850274759143112923805691323231217450650696496799883701640184641055439141570108528896040483277299835295155097846111284947374540992740657041685389802924326172025758962955960472881237511506723787177085136824294068961137181117460427387961062216844350192674095214240454187824384415186436236785992660909957039748964104113633665584107279352659335225765534992156348735961118613461550282813723714959595901741286543240683501708291949034486933688054842098132907177092684053203253527711532218474199536442429536917034178764395941565497150761448673977534588481047155873684340089021472054075147560198447576930253643213471867994503386782185747363617494010907083711889186762021114703937972169113655312399040063849939568324800066520154325976205511631203489094246924306293233150222717073892175328671642560648345437461547061213299053172105046004441117764359401149337888213838652123831781281403317208048868257614380479516092924683447365252304381042163502488043046834324847886273222989655228463256469649303336222165544945772237087389368216065401820431432120493744298102633716536340014623416431074298561817720552858390661585563389737936711792714456414627301148078061170501988052392821959742821437893142410613826432711382446485721918844523710547074852439762090881401898279161658708342256964765314340960300081257259667311994601955092053444024456223786390811527048118211417527674123896715371281445891895227084743527842752361247250207729027225238123042186612199056651553168074233052433982216976656616110516659155224193366414471912774522752372824443343054165848090963084157316158274390416986461589341522388619991113236323153018167999222966236640961313743006630271358088759772058773006763581906042676470176552719270857942767379511943764550175555215347408703269184586326579571389552144902927239833874700882828870147435618399278181004781954774933643196364742071788787620668914616042080586447484330250292198553429744561738956105773972908679613956060722568333192196927785713161695274963386310067197017724801046244365992065239791809915707053268991482057032710994904971494548625029094034609411113799730141390152040216085403681379571147183957596547347551983806530402150100270624452759627039936066846550079503535034756952832022925404423923168887606688733669180871482593307014961845285716351864901820866995882076645423075257931941034930040140506208152690191906565849758343052819652383719047371832980454344061850998524850462480115399085849297492582990001047481707673138401151672655513192034797526646022622995625763612600605424335618232708763616049122872455886081412726270356222776971511962942361933193526501383316238271878917865681123107342640345485844146559689714396764858564051348733194715539907406227512819531503274160317548547814800500237741526187578910432154767124891018512608741940586050883253023977544352468834395017170499808427283513278481701445331504767726983526347856300574515602355142436882060980214627084773034174678865502128395092096358278663578295587705251189389780137083925403693695847338404767256586028668850312798044600032498682316383508244275933596502585636712975473040323001141452549118611993209647566907277164635772947654513135331690164830208557412733961780190196926752330852339271951537077504691801013702883925407107616921605279069890641529426606413547935359077939481146210914714380984841879074811792265553400606342050374778952122562938422410190991249846517811300784670990985061734652877616317404378047766044747005476897843307576296351317229202558925588047551885135339343078061581813303134913879450182533137555131273983430854650862802002841334724283565439562149519718396558546327705674889018675926028216680668927585978252039727709327131950808017276960065042059255551286146367998432897358788603460073739024766607113736259339245561789885009977110262789680209422460662831587750578270142420770874867156009127386783532447681809837784425419734036947599337809659888799125734683570303458705636890138096717050560970992138802432570404902752005459823952022672844894727054671025634227548233169461178902880813671290324846828174579790371378786127473408869906048806889371154414816332250666949273440675122849594439813352807333985967397310453363707549991699103990581759215809872208544287122386818922725118343922504977929755083523106678799868737069598762533976898707085449329109597226239482735890156172454472781562198127155287932821735869591929747534366212762812743838194035877636176264781866682467575896961671533160907536117508277547715218206152004782443383623712897020646775396753908126542643233298414517350177427935422029138785839287913448480692475139854945590711337220886790445608476265117376578165837709786099912662646656986591867098285134384778789483653164590775328814165187436897794315135850750475210166414455631371873516447826260493278578175143162033405610834288010211090387221597487105457594174947528431369872116714672201331745605850518631505976414832193169890650242978855757021692147806071613306803540351187095267441903574720168053496247614554140704084098949800517604838028221943956713749265657444375970614975791661222196420342623042666933727064951044629143715136523718231705409357970953557276028087903282574809336533036764619726425080102311499433222217603747180059092211860126092829178434507314031537550383969444232480632197239953644962650265860370515617278404569471220388216106220001752387760538087530697263156679886565756226363892566479680171074055665858500778545061091571458564668074246488716010650207141494607020309092129558331568913664955603198979218203871335612487416789852581882212534881277344945548414213389844886438174438517294415018150856618325355417394550806749836778196140031195817798556082416996319867890028401477383328151194809500538140616554440252457213718137375084813322990414488695395150900902957848695184448662713758356861746206381020701087125985213966008120579113490136358996243317886855084205292788976295440738445728035587536499183929631762594556734940143781275186319969051916462985456324473152796225931256581360235153063736180915624538924224416753304991327171025040148900178031534545290763894396538217424192006323159908643772892345723947963875278128571453039065692483137549029499907159970814754283945681809194199996822715079581439909171652657402032202745036728196325947045505853737974594479905110597743828792773944482883174053279940128760018567354442998304850450294645339486187997385174637162980744838064584552319724258601799230255559279159422397994400111244612883860667027268249177780217273992697440440933561239453745272348857715003556528902674730538884245192059433778554726920646026395386228717949048027754438133755915968383017125089083098823173835039258549830980097881231876804607955346692165218961252498600429234951891388955817322321493227407209229024608778392686901751441721205686742729650733122829920023068871757194119976431649682292950438195054935707232303133697196338270079533279171906076357367182721514926723074411391751029692815761359048317781173206114791314446877549030058418201683063675685280124956153043887337819264006699652107552856602165460540039317991917063024144738277902053317609940414523357494226645905707754759223761368217229706802609736857125108197103187049591652354556085114426816689805320766437333195801763918785639716022663568698502711398456325881667057576650544770869290946256989803229610528267046053278713961526299219268337736798958889740477826220862546504780697642869004685252867500241976154186187442747999542310267941058729569314351247658157170242420648400078702535863600179183905564582215630163145239052619156000671908515848046184558744010264989128853244205570697276795163930593684914790337309972435225714232025619439588302852215835066764585397653817105750699813216547484788802080964306440265565713697007577025105972044971671979579679397285117633808003102366164506605258963561852365868824811034161959605904045729581489825995726035601486729679728400892343824113943238999875571439734808380006938891649858978730253408671318284383975251260045055102907627066206845239594138751709137023871730744121198399888505767452228056493623379849180224258831553469819719771752516796464656439814001616557262948108635537785733212293159666075376613962463322469947335066548937801209040876571589791455194919401908767128736090481189821748120405711186313484703630538610980382374449187219454974746419611538178089681952288695148286310899837342579820227757990134022848872186197919591731550313000671272385573421949715366449732337296612843938931615128017592665282364117672789618952084746959687814209665485911003611941426067426581200824504255998117364061857359673300109625254429294938643356773042560142790776327681190730193100203574431575793640549398025915467613525104066565236749295738931056863157171135028781862002721222742620831286494298319198665469088386403398769932569862955190545964671009501952760374092623302672024800642417418193988739891538657653662041038146150478891178583233806663964492341113258800598841709916592529223522106054033071884749984607809992218924641879509665987458716518562236309704864727369429095011930682164964490636365734889503659343881526222161157208272814527178420285302257251909364566807154846060851114087777976385729251276848710254318899576589419351810461940237827569407693883419475906900730656754042130301409617765109690561577597587669302986314289902886008172892051777194883980802601233420981871409939753736057355718341034594170887031272102395770133869749664246150349414430456211746089771370720681428062804279882547306788298308115306147107584763076150247785294395875433740305932912266044303168359397797845863128193688268140349297838260197854947861199620493481393172662218713183126211607725643276269799780505535720089981041045918541468726134414379390871744581759771839860819055670891052017887053753452151305440651976785251078224764532461423825785056506529103632937763202937860155775304056792997280628368358523234744554650901768185323079533911900436023221513219365177225311498445236921222918108769643824834271132602051716123733162217284575643500321827200107126124264015177348487628736271563330047980198804589926812072917300370813124108644926501923663460380551911715690818180213642484312346873707295427888653147083490461830259257077692392516497511306047669447951176607296072239058446906786263463410926725174569193200578858485674334257242749824451517104932785643201900616420264837205096477950959753471456592483067436928354357285960484498939771719189625050072869476107645449980943363406497627139697111598662781971182120420994836588852167566096338458875866657741699110305379813745069222032327032289717603310190191813726832096969028849646930573411971665395357733951955365527907870342628612515258762923591189968674096156283646533347538804691280778093519873421251539319450664694438654524603987915759668469821604643519195022745349862869498410671946629970865000865323699291826926322934642477150326528643359457104567290705604920496851441767524833702892509825865136282096073646524440970433711647758507737383095699199693191146839460828044059757878257094753832101662776427736702520424691299424209458485958426162299602970512651869415639242798385642054511115962589995497023676915697460501387432786231587937692841496800800409063541612587262707374241706449712499752274624856600838284758607380638264426535741639716872188755202098071400418012722766243193766099094061157613571200120705689246539625739069639112888375753617751188411907735542290630115114446791836491061737664563590475515990687071384096515390756520608597714998001646655748188605181876935131469563865551409055542294967863339937424851652319883388561044693652203199108247182884903770760618579462876666039184849772556619210541267302812518282111784829023723060702725890793488650808277460329233605447672028636491510536184102025534392983119010106077728003218585933131394619492011988463131822228852075930105101837008097875267031768505358742229080800218411067886983152440981293678135783851735742495244725704568295377404890292294400464745405700173748039856934660854049148504857734042659237917931545154970273216375793460682685075457298002390173071896431322733964832241963808561258425673015686366589379035748619632524353049532123400806233058696577991364431387382906875040457424822051439337202127198287218160597670169113113313136068418427610791615805490593085897807551718645648110966403320960615962937785766755235504801332670957273943536219213055277958090297974169927435358828955156836016346672000955737732158681832028395102613341325699355838930518588603595400333146366173094360955500355840951537092472637388874599405622731189649712332050236051604428019132618131980437921567482396188852334154478395402551836308792842227693151812139385199779062802980969714247056392088712609652753244348513097811569629008949226612467772634288588947808424001793416670510825150383377059345781350281817554421405814701299637227154679924049298906409594643891658549118325780061324936378399989887719943887901201376852245842989348330295291373297581537966996434878932424677190055590903791370200863289258397553135240439448989886307775856671085904257333066946444076574144303570621831305569550054362519433858929387592980786862122030454227020032294442067965877140283304357248399345029873441506032971506002266791984873378114015116044957908061042906391397218928805760976691866155314060070448509945118478343446757844792810162338598325220974470776098183445921452668220429298764116502317656821789910933317049900989002386887286411214108607637708707076803744108139531295462900354972225824201202128924000186047737881325214250013755863723095694059615387291858636370498172459230597962244099518612158181886449346574439204131822757218322740467994525273840329676153084511964809975846722845862726295903389557691142225246509048336687744047214688283983055387773624394906691221867331840215600955045023242911031963351878465987117887958053474939196796723282699090022590874333489965318463613617753353845987790535913941227908352512946973778093164911419929531731407030762454024942845293234885119300897085610028399434139517846290107583877487759998121441828720414202130831340103528226960320758668566433126539033070475477184691025141738144844026319604427223991415445247516496158689269552756873660248665486405770706704858621479340103550723361082147454761859955578094878017107506844929364368459485507773202782299077202095004761054364618292216566271850809805262744711986124789720275840301788725097664818696609393504923705601836530033678686756160091729289632119231540664704542690766246966814004711023373646586091843668360035872174745172701587803993655491843742542806970922546538626697585482327990965791101469451461146555865789213648860951987557822422995484643651231507617296347656329074217704517333846495223418226847753447228286901328179001695951976456684464449882057096598479078829971981240649195293827184951127055731833443309069189063244464657848065844625486071561618497019839050049685032393970841561930551014190569135155581837132425643625064889760363996566987377154077940098368720706396270927094554930349461169105128164216768430456593915841444070456992643171668275065676763844353065576830804601723011567580628817928104711102305520064683528388814698588916799910925408436914405555830803772409106525521726465278961129827299887726956184385326175469456542422044667063966002384634421131508206206950345522555788547831821758288088974512419572870052683070592392752036118578867861659084355229426901202512910066140562223692068660188183510588085289526928898442910285971857312287585584635388140532734567962492350377312985758964390718926499378514596427996822087156349417505644869718693069079663631815514950725134122630523012313905431163581580295466044132954495816209379374840431801428408331996324942905005304019823996657398979614414933195935375622211032531662354486295656179154792525907460456680639022117344344070638969625272375494467441322023173026480801816811282887408015841111963917386897399073801358615610844256901983880137480912901385954286467808937146002334318159383177616639557942688720708154300297885159871514092916818866423998132141212768287390377409180768550343785262305809349807141133939095209055042057672085135691563764242896689108517601506079791982763986626791990348447868968340740767350045319749217949158104042776993261893257126294978609367971498432083689683640182905550463308581189626558569400008558923483306327858064770831990653617157761297147979775347108513785947554855635348568713698968344766142311525421002694342863176647479597022262226947851518955999083975222982425452870185514355280433066442199120482998674523456976713429864437605482800439143934201108882613593888449275694548056064920271156779149488619566447643955477829724215839525857607591926445547400360299006042066274381173166258159913413930232184448010897533086925284706481305263156049795403013576416824778169332316985207728728811993071277847319184309404542087447830059899347389154677638141289621901558199721370017670077358790505195559979119150222636571416538035899962235566167992680415633283838879254611583604098550021207780764822842474650195667132677145585451388472691814777804661714497282164355634801894824260078565241432037709300890105517900492658218356968044250389859681463979100342502089008297394354885762042600845268814673335128347951719476383785159321282308141218737308349423194414418620208238621623745503704451693879577430556878028273858726474378337612575801267677330107143721779369812053286387262887911673509140273928093133428960887604119414275710039705617246168091620189214469849073291638186386643287157346331750920439863748672634388045933692884676075672997012348004836732312476126219621720681636104717616556234240694737426603553126762535470061986588714162156593545035839951860633979068770451537328080039806345520198907356074955700354920366840281858343635180023585854508195313996319482478615658174023793757494048869547308061409831845696853352564245435587271123802020055463377034358046918855979772507825074714529361314821238650090362492745597916917215767503521522141176244863313888450007012155816114570769681905121804977777794392121030701989615910819354305251375347632187226221470614295553250087351197628879330966991260353320987951260983699097649266437884108924136064037022860212833984183208477705900609287444683170196600181056330490775018456268645694836558265016047120728736363500617710849455529499136644215993940592996264067309915149704481222718924126613227512737974526623050058387355322759703230249766131995677995966414707543685579445105627842855659869543037516277972694632616985033820692402735349567545825519334833316353455768003951217207537588811546403076167834044865959819355641003306357440317077864988069647353479968271342270871880321437545303650914853608366409642792472743776548384561628584598265813400146876923666666330924712145990601695293052968024558273090019848967152296127608520735425222914246755993747098495349904687057989260558954414526213296291966564944541265561034392131743155620040976079878847302189682995996865040956509860851567786378184643972431269196568258727105891844133450048867880808842321094063746346087836568882384460726872906925759341064528175388130173516022077026356816308603657285902257059142714723025788959322760732430518110409481280407346070337151358957481727628056507436151748638690894252256529212797987234037112618752368586662227822290571301327685817722248741305739255482302846111303165314550183213504122390846985672628122275287230682908667658245611949383187274543084720392534433039638679947558656032634925733602269097609417869735919750734819546011148816709439569990227659625463478654550416134690620137646618855051520807302975020460949575311025921951337703373873744034325281684033420023670989031379004924526085860748967344200666098917276130419923705225367816968346295814024384138048612346742284979987262872290866064933217255851429017561656953677586273344804968692201897144197305297027938276647018591536078746939795599672299267111957708059407652982878011957615800692410357918552846393561352195051741614196131009736122673310981906585708617441119549866730508279312468652276116308857342400467369800971956436603246424167682984557848365933968228814960315950293766369139679137051979164307957747241849399086397047363447150760472085359667870509850002399544216104374294061327163841731326597396973036408551538015623215193131954217064599997362318052756803657800833783805073408932636269393083207112175231082826408702399537962148620247078929709856236645536930874981996342288887374840569847717006868027393807011871086697254022691645593331716077983216560151034103874473592277999007506924501313211465468595565476991811463485910115026116776637149227139342101101372368573264418679883748662791027029085609243237066141644163932808776030238170990840157911883198177542236634889513361506520953665886973333619334201478296839826324406077748933522932333591099525148994358457548820370646492859568219944241092508525660140485720115720896791759021333131395159604225543053335034111254025625076335827003840546299053733475091051301130824010426947312412854698939177353472891527962658874090858774896016600543789214132002838073560746979257813405737215982381049553130558679183667399770706037761626281117248837849808512484063601651398771589096271459707058097621264960004808081105092622779423622234713443403136191912035612005672770107199037102210096446816536127931412870944501406670715195487741283121970869847592781929286718932076788717192561536885702624804556391240191011142067508824194653391494499696793523560467906738627330187108464110313055550807819506188615466681600732666006860429948835584287589960494082411665552045644058878451190193013231243282249061431493739684100272145983346493708300850686259744145447652361170943544195014710190959797198601343082854307430554360506892467211498473729223857648590506891749724201159867656148163399476733424779086928911620314794927341179870039783640001030886478017589361464531847086834088872461024033482585687483495275720355694073655738984765949691457106786286452713740204144079983454198224375933388160741205728333109306257793796953860376371034004289847909428724355264123257357771050988470931619593898684575905709704041799959230965181506062002296240494106382370753007033503083174692841435796646610206411706173600620373287368616559370422713209314920797220892619817957477372903473534840654524354416275614842556694735117638161632897266534143555287869862239795451330620301438084781561172048696110295714686898152575711554387673507505767597931917338178682524464942792840651783396205682638139035478284118380836529675474450172331455307151459965428001820215210609368908068489996276220024192267577483696838383243745415283078269023391506935500105274331094827063463106045663893699216920616536875864906458420315412013864835302958587883529977419012693739867453880997794416874753467821518036996573074025328230851848620513161879225500552651681848733107100271789687268127436274018152768535706056803410507554842096903846693299882020040966176375066660049020980976287059280464125848811130087727727502555287293506914364004145471395995311514497165566212622835045456035928061943396018044501646676006845809733584902994085222041530623536210734136502109765894123392876964915207301098589084579379873198456627496397921767768421714996259620142548246991896577947715114601311643613519757108611785728042526452103828754329725750563433949362169865712945950424300413234799028792707813125870557318951183182949070271760300061012533473341705008542700585919429797611134475114508973100424092765099002940061624623971744647228774504194669848539363687437624949408714096552629878984210374565487211913366233458081178454604630418864271394392372466793869532645581701709323493695045811734530609083964007229178548869658070329518379750252125130456568233828720529045688387105375426316619214292332049284240146567353609635775727322858588731122755993364225679380498500311074412491185992133800041193428274122227543419820828830331964759528431465198640013638633788800882658241038632671737630701000542626305809941499717697038422304984018512263648644372998596058385189441811494683077115542319761639595052310323628986934315600631242447263212046048853380314382826379672168427169140923575122294073728336695390966092714794473859058657397548650788088833008838546341316873966730378082245216791676890991193595390837288210893029240042369740382224677363415960880944703720317635830986596524096436451302722173044122650284866161078432029824341215367778539784487564410189856690029108991403906127697573523347476516680410562396616115935788423406354573661358940544147123724404194311728021914975173258889765359556268883009485753164944608612258326193210488637817092365505346244305398709944237235476353070267348694692710000829022369598438005894058370445924696415960304501037094329632112884445076912717576807804893081854959292271724666145083382458316356569372864968820774946852510098468761500070599130698443996645665768487703860918442108619716446091803194796945242383770541256576875064411722631797054171524974195111425761054071483551881816018604052649859390716184128848289296912675600829593383441186534151562664546657994619735917243289675074355573531370657826115021164605358504043563506746350656722348297197176980249078389896539722732186463522125479783865977390097595320724890943584180703109552664662421230887019886699420608131303987963010795683671584773200408088230902354726995596052469580333954115277315291888000694626287119281091183986208702976351978625242681430598918401866179522886327749518579490147245917064911756701999659173743046217048366435378656960895925219565563383262374817981365940380446630436483949111575697763053164955978723618040755054339599896093179863429450129731375204875557946412132742047010910838895854757692952397448164436417502313367422524978143889236057047250926942258805577879877207735372104417808728190825408639218878518434423335569437541016997683855974399425409932735081086303043317386964020920655363328089208477189161583412140713266436232475211209857301972652384123380755871071216120161777203896449875221761074184805925002952863649209714939441264576486731637140512926802681721423993990298821880265422382885503488253616113834079347870120492893430174750750879573008538846611532149208395740646041451223599813277260109312054814907580030023022556599230626164719306595468680529881578189091667098861433352010776238239319497171522411249995118678536606043563768013262420839702050031563469609255274144667515555583520911087277916470045435543843350833911863035547532748326826843719409234326211825637669986128633893154837146412375385682518470149610450921048245492069606526476117962407507918870867854515894466163739962699239929937698939226410985796115622816242712312543362854275098667975311193722261421516646284044857377005910836376450228437250407055878983556373400539832042293999681624756815266370780225443508002522269146128915939629191785208355483616650567454089191546281696485911646008994544983692199051704638888587690280863743495306824955122538257398819092605791834309514756339069540471611014531822380774631676812483546411399153391147134670313357517431565431829662527934458122996751455688539050530153330182942766620358515377833850496659063204598618490253603644413640634152248250660637838770369996424339148961197795433959207280278130636733632431977807570959989369005409021668458599116928494744760653750602537303094409755554079474651124058451215840400898082264198829861181160845015947591099946164716834403101282031132218233389905417065965391727394204123669966401639141326822485364209178754996515192399267140060960578985375021962435680456200713220660734647868247799275759890088913196596130377935261495016505959845429955864172923833128584579849225704918749896681140815368441313374297942017290990314928472978552141766688723043438360261855003400114684166421988774777665404589204367083299107748480847391211854615843775603569936410027345804703267637128482462479625451640261859257391576872175340272002557755041701582745823644485553944975985659317902909569040892401891335466022380954018602256484900088469639455061950686693556756335259428752199773362838950913262069324759095217364593306253814582315546876964251469993698023101478712256369817576857789119648456242740827167839969075736492458793383454726109063666906719161551236273241384689760436933255647728740541145035875962236871183475185549374480531979616326224760620908307773338588120838327548210222835818457991790802948265776075007799036374447513491899465014323232941314239802367685012736860438929258990588548721389225833936842833198981891566442744968496123744367269623825535226526999927535438150138547628352227630631698983195491228124533717180078035600640852406164216158002643168878049739528791012747882241381213690254955629082864317524698012551046830545997110548244645103224910008915082057231582486263981711100974333907094232687139827087637404103986352687803114416915290023919019501860812577476291391441977601630489993120001257103135728825144512360238234345134816465370785462348521678391470101930382719091677455314109989720909033316149196470818625334129010216629511300534490555623301851988327823173316337901052076105326726610861129525849653770907255562815726856394592173207999518498928643081007344063542737554372575410696585301919666985626221897112549491240335883980806841803632821646629456309461566980349498486415832365140929898094628943568301988387403256687677518522207524215404484568684033645950554805769445742082379725748333934967523904928849408821783984434367581424463455106496767099016043403856556819326585136142498525515870620968106683541472792754681849817033314446624599151295047448997644064552498782440476369629497828640964568920867560417445783622815753684951156413041443564350737542386549358550308461824189588980562372564699780062282238572816364705779873237128589611066755503267392409977460572611217361801752613361805877273926299017538489186569780300459659804195338447528838712643763905025866889929886832462699941396919086928179559416076097066924759767271899144272075160337313673114608919624814813053615114220052133100643757062657028950410327068471269522706743518700161232878193323698908301148529026184105530898844128485764101664967290764197004040245008284978152563929113551389152021016664287623653571400980694317780017188702291643429593564371514719788856172436089323971596674441138922059303009076478593016269221729958093324628885445320962340667592779617317916113957393665716505368434575011018292263495141457757280077238796373493902756112838698817296644907043588123880524639742807371331432910631005100319917339886197211795204995601541573804700665547893647752520999519183306620885983301953248691214534401087160908636193838144615703942286281137098479569344205525166183253992284491814258815189845932164251799195836395476784179018674448587015348417585857211347392368677350505351121513229775940777496041412680976135006484781686617105603850775529373673270686184051639453237827236710308423124231206184789813024817471029850328093970855805307031304419886150229047454569599357871635154023684374731176854809109248431424694271503524649727967058988424540907080788186988750165028588757859305550036250967454097919356726203869733737039680939165356942602351195437477848932389668655271853943740972546517031691611049957884866382659599578900118629718763841272547826993614294257466754048141706048562500963606428221148022458074745923461656042318681528027118853699503496944357855549886626100211369622232186703716496857613506143359415559681557848149948040029773852752296807452287463520180432023946303427068429411949388674551048057418004652637907688014511299746314800220231458334146865448414151830361930834220304846878127888402409483343145763593993982487304439109242682432248242876612609028010023497265387255996120377742376343054068824313065305795411181671259888245319362355771156755653410484286137962494781292259614835424771157313776195280549633854358873580225215370020684882850796232308380761318926051364776385170260712629255274262605340025845071199244559743814755965274959256681449339883265311150809797800339299376398097646258777583682979013256610383050551938433334796845062622101121675371366514466060849280301336931879139940488107740585593397709077697887883415100573017775211176177119336733391902287569717376892484662858776592725712942137063293331051564267201183597646498902730052764671081896217741614253119571858407420742650171109227523452716347744710515017481665684097971215566589723943149361809103574000031163622658264488714378967414917533264927683811113018263641648210503400975600745068108278957725460083867654271638966057661430364056020217672601180782667320876374445206795925994599076989732870972134220013263883514618908817840312617107837312048028069414699172811262161179508810504574315412268452846267465044482707156537184596583416834721866499097457246173297308411827710814043900965954343210449924105546031431918863903417529837637164676681050853815308609587304828270826310222552440446256132369779523459272166724211414172013721748190349240651817773524664274004950043673715034488093402828484050851344651748600249549017153708312636688747610291110703039078745448573018172856648046396496854812920335521055266984839858150596283183728715213030720004471262365741076664446816229721937101159165411714306917008547582295497420267114978822800565156835501433368332209617316912456790455367934665265013742023245639253275877681609754735920184619024975310810900252537151797764906811991870071272298018242576832865790320685185177695965391119540752126444187773328487704527728727560537009302850479407158036814105374698842158618523397416841797400100864782175322255789195738893614655448128236752193443313276119070236785041772860211013646810476518083321866010122965590402682571352384540824044635278817276215725355428077369103690094955977844408746516676626219340833485385224500592229510075310437669169442104982105978464399088160178871638664473363113153736396569736283839660223701310346234015513370814388750393267975889833217456660951105284171510619831687503428300395140778787229676188418754718361255259504789456685052897861137374826139026882119098879184325222807863948452694288757599996405222240383204521874718514254998152578981877379160883224744848778630113068129615441181087509459271068922111210889099150516528694272903660211084807615418972632748278201317852684956857516119549176727452597994149607837153631681020323944499834937768461365806260063591371853963439554873601531580300776708014252514438179763262573796242001749803327122953662375015982203220100148537787237427411842619675684683716111954535382369396685400024909304820912131918956163330148312192819756866314502553828386579644316755996974357875575333651218575986517900429071895377524388457482724715322485442783636839345073812525141061816178012563628796072943797064768260424136659178338750716472671015265211738105190041161345389623711780565005719790159370756200523634423759038150169844038779722030845998010716385678258024133173267442548103032913287589743453767939322975678664264488821681114799082392419020127293046725232876348428145422150599427570192683630056420240919069700642605134894590532299616441101949387031311903630417912920529364235861788098078765535607943728901252632394006422971888660709258537032680016693658944462385056180568106150644097414280518282575907342702104552029775266507969384194749171119163845471789615092676091286455069746173318622752303525527546588604925632943452081921275597993810293199098701193020214681211795977978031550522786872165889347461230871601228613457606958047718703224883833544899768938009375689420187442568156785990811428069477637159979482285117705633480584899658478785256151400371045834424118548135019380287310125812913855785657444670470417044168195505297107949299250549408430365574977521348633534220346586646312027968260688709084440998963794935334466708802332629979984091987811345876019994288283872536609145038813148566963975626159446565102099016567209358550559308245911094727399520859222330285353491016933378021081732927143456761470892982120788493392592981847313768103933868949938756529996238572255400904611451240814303109942554740367217365973038839175314990104230108873484350168148732724617670210786383230714410649506073661189880224651546849980321353795239879828348238226444319554031489222699066568330997997284039606978058406973195596768603792411455332130194713001563658756328422211495084194479679897789017981277198000105044465596748799209335320390905726708787738001413332651431473070772491848038590865896219390321757739693326376780013012650017684496062101073877513016804211080244993571699834715262073585659068454064601558146136096971964548917187566608493096802180794325397633949854286534065287155552129661287125284109902744989397049141563499209879218604771053927695147792173091197947455387234651651170907773527018443916395143193065308618203409469317032878637124182409253489822644431721788133446221781488988501312309345346250258811722864045402328060430543980643228734126359406283373472392438789811761995503724865296598635445014444133132555539322361546586703785688589696882739707898094462532406801682014804608127398672202590433536867833551909704270175021209833641947996505450317401121579591910695031777403435918214623802140388566415553451994455590161279102157846031006878854063059083252306516203401416974552129302938534900580500663981790506059763849440543652191594885441576806452888030938191099391461292547882912275245416065639718849175200820489278899720429759103291583450607290508531420375537770800162449616250514281646566515497992390745677598511444079844151073551511375473655231029771502198366813473709968178423336417609747373751218943474511927514575547460674441975152279266776202879710753995646754971519699016612943697076622080017703209170529798732989220291835613077357715430591616825286479844912309905849560298652380481785405375656290402991612931904239693641337937309307718247227694200172992751925871616697087607943020751954872857660829432424000229588477764884543936901297683420289706988288995880395277173959257201629026426380942791165902363792780522575981451941591291036454693201856377549717025984772286734523725770866833647967186021707541313407875473477329837289171603669761144952940909376918971176232843681753770196082723473156734123312223781119139178895013688720863133570703208001642944582891545152457127867677888812526066388654412097629554727915604568755286572725824984817998199413290607467517309983381990255415631404406693860144134331893211132610764352094035530688911903622657005802172579974963584322985669571659655278471716770286881740893818994790951786129748596528480562025855348650416931644831082609103407997610959277361235495214880071543496952407031445667745759022071125840458934176321523980058956513632653867130630908049062789497054149999930174681373015629706764727320217260955393556233257012898065308360133470650980779038017363553833109081616960820368431727227271570559515848704924075930531833870859287645235208429803297323450249298398282590034646970092625214281399201983731799682150317861771333180537824101724432174542962249411679716406047524434138524520325905347272112297903882769245308471702683194942999635770702933140982278666952115473430160543782543289093803911492346876881175704807320542272646400184236831554831396609131126576218702360171495474710513249319142749407395192981492714575135100765557343436964889451885654937321590311571462303755425775841670184165392320908071789448878460135624618015524324142876354922315655879051040021019653364762301216061954024312443188152909997165475699437397627900256087957559627805261427766482891289826324705699943187036720724746421401323981460901052407072754804606999158202341912471327466858866120080284775699239476330443350191556443693336212116358271875785290091048339271228939005744567179183660326500796198647785153112738373139680598016728925280674484074906218569796084835581250062359847299545148033510296289354440984550715402511480306714422209986757714297745756364506021399009496501877926749808799733777513754827932547002976527597982034046584057692588565385021223274604412476498766216028053223315447619872160540802459887950277040857348915588476773826375066325332333284701237163881370995915737563415056837040451712227237200234161996286368514691543820697914780061753063108469298067728634480055494665520662374347718793644400414875286452657584749128861671698403720016729347307825070530882579611984340599419960418055778949124458490860646207908676268746117721164376168217696713219099151540967118230483455409103260008643808095892969655470967916762389950944242034428178570333025421522591216412442735244152983670041974585946545797658521824779764791338988187741262782588537496620152730095391238360211242587585740416341409555616186845551607705001989974709035917847092723023013822702643563035263723066672711392380973701445203024569573330934555711738590395715935537075177148333995589773435917068075418830231192396166743906247375936891415244809296797472100639338914929776432749197106472328389024559256633120385003013399178543224319558616696883090483257538005674206427891504632351293173938505526975580394177146621630958320180570420662221676863998992001204854041669421692505343939779906053112571225217353222643505349624782430612200013700984267064053305936625545418852271128090656435797497102975326008954412317424193410409868280697344004937124915778767567430478050379555281203685887629168635076477110417848601274722335121404015296211665376766051339253111181007999638910717813577116526648765828477715987520936916856529169751381586519632093890327168696341438451566873916846659665959644045503401670566332771433524766331107651324483834910421233428279760651545414555222647883924782216007980024226771796401031186454821376902339029108460211390227470881012789049258450639891922347412303886703386186311373045347958319850807801199141374673248982225296980453530849678514189394563861531058603951985777718954005803127281577724850264015840613430668881824848999801731125186897033404632340309485636236449151880071783205267231879872463162780735602497101596797191049504815034893189362461978670547508236402359693149154576503006939514518187782763122244595209070625505924783176858873879650548497232077961236086262830751806010753132992208823086226451893617588253730458641530180065375242033737475919243842605444803263033527148103294634103053059275164087696533609485582501387970933810609507433394633079697612732329003733872024173791937893587287375601107296515390110151059388503003842265339596572095881982765580437319120589831111966091588629713354453362187571180977065460162435250275603957725923439896668811248080304786494272527069081007765604601326567137018902087072565624713506403071456758853406808321194591389982965404475642600655277062186887912592210697176756457447344041454220826043486128608806045468967111190623058091857890231484573677758788928097875089498263539282459040237793344380825033879499459370055876901943249877057968923604226919725290468252319347709026015338599572369220834405729696200517604836706295835299630302804021683003232914193976226324221188745227450914632918645470728904528208537412059649994083427136765991969204712116920092798068753602654810522466449323006163722770941601745272379925341790517264221273016170270971219390342668226747118652342461331970285585516445630235574544488047933190702483480401521756111955847785161050315807605171945530218476630555241077932043628062604593008798813958723763389363770458311458059954793102900016241202544031516420300654872590603560366442315723399771536120340475208043534774705818590836368770036023091670258669851470507902136085382930275084856953750343441873297875310596696915612697835009902872522371418425723760291388571931996246541754480551162216645252126314450693833752148301870820971918487808377479512642454272911275165020419887388060606313730527910670691428605145882462397448784782207958481289157551476031321189968893443340299591448090096494452351043667935086759179825609368989857620311670066663316036439254955655212058396722917081813761001635302862032213808858779243631891054461003098742652113909241863520426646706186622681540208265072148574453348810742961074660735215797232307372861237201202068358348893755667212594161465176856304428770408475104784014476821259221213706082321777252640768831338243784336459522994552122409591428145416965463908726849304516738524273958185594395255331922375434175427818250581432786521303565956696387136985853180157953863351332618591250020290241396403413036323266171304536509683915303432686318461767039429931355747255982335655078582557955020006488004652630999959973871903898324433979197276261912880761245103743262550628721079234365233634820897450088858884023056625082867636389031121175892511637419881700291296860308859774795657006681692281690561196887043514475474409136935567287311187227837767910959110657149008238923340432223182040304165654449450422333011055415556839430552644493814839258041311472759648449296900632120516258105527798487304875179492519907750584006678480738150022932792875776796205878755320678724344387058179644580354875622631879312783847727203470266959082876166744130952485429884881999375338625260886733048216305568726927644398401525991929943606766652567066928074147710395289927796715541098444808925612640357818919412270819353005229027655177679250270213334707239493626182052195037008006853782109076212408607756567250709067998333321408807129302600027736738310972752101676993068923551835450200083492875538387243478359923969326958585682349833052683085254426275648472311745604464950155266150870830426352040515381966318601497060184512315980712474592770740145257747058068129796209953148309492121929933086519909664804678141641168646050823621475001276782034876055625031385078166783489556246711544398335895471094595036715674391008696359651824977066705833353589658915631818895452919843718579997163398389809740710847235296908710529867713458914144459994635875622204092039291092944420579686036690353764252380493593173369539082870361389376988310242739434673004919795049243367508837715017343290643951125129011230616063736897367216618522226895524610177503949350224763287804109540167205406791889559058001632802857365391294461120078201852653344476165808596581886021780633513032635307333620139095917252486495444778631953301326607270398957646710577967321453075590649932634380464844056969668640531712424149172694201167352885700510781645973986674772004522303346031041138870849820137699262735376230423017859856782495359948570620123859290834666562201735964795135436685910817465703687452727133494786739490726849453786307617563349482768575739641045202915802527844529568574800098650543476286974412568852409119309804243880815171851719109143116460866803827867627797995653967787371450072585739344089635515385593308884245408711250682778173878320952245515533319393110189203952586501338464101149246350184320850957073535497605339847550522509555184153599536918800707443700779445532594227343645899205328284228473227894934608595650956645489550395313326774772335053926008406758142893500725355870899046354135257012792471534765217225679595496737134087127025197346677718496497331426891660008414619518200618358467933474748195921025707731409911654570053548572090392738125770182883036519323493652686198247263933316207423043166343238448457754704116264803672667411162766154465123377789437461818570990160489188741153400566886805809899338500232800462348218821717828561267882991216574107909252885241807293253978442239155310807309814367568583466867463114755344501561547341490338791232394788815311222804938326268538004433323318819255219160123918154979286200165901503645040053909318909430072409605156875058923126651183139208107921895986375206491318314269807035871557091490522958405260288610010484027512803435568536748160292750023670767437621835980818145525425151145772607453243260182224992896836276572369721093133083038435740577824260744542427839202732870829913471357472338675372233765743516616500045873702514388347408922314198954453442871956010931328276946990758508608455709832095376744827710856970326161534675950147937317780249292166611111657067617342125305482642844159361165204653864198641126990525816100562936662345347347118412782836244311933044339684905102011435355230065297017472836869688574204032231775090443921981341620251956551254370584615025445610788816315352845997619831322045432669840558095039939246887021652201238445593943408162455720384874835774370906746492116127690993567262742592821428551501108306191669621284781008057717694673593388990342057410382106004137115962610852626882509390401804440554880146314196233917755946955682246083192053921300408520445231871701853532965667844452634604426447222026719939532073004516486422455131197964766355718211363499602485977615133569996006730673063117098116040828897204564226137685073131472082723127795114600882349663263466153771844098262613373632580536330245962984563929823933896846259414724171470367300795005955844034594028339649306204457551396897751686678895596039693665577220695517255286692161868430514872358084194930095290740037049769363030781993236446280214283130101538460211225267134144091164585844810335815164993368747148120997677035536178702181631171070598899183890526403925155894322606223106423425507985548784603497970900697503557645478770766186275294605383333187074012006814915939980766014805957667656991490636066066898851306400349245008826173857115711971310478794973685492698864707780143827197829944257718410168024821416127667154990008574727756624680222702151020807089021321508203805644984173212944777575893821937524883599464869182146041327983332169834505110678631614995219867395939478609776896147029095331900287525705710779651982865276902790564246202166774847237066934966558046698170670341954615767058391430516823186756057499441367749565286012939341189112433925555939989370694515172049237147588655436590931634385664371597544712913432349046288708613356481713031607445844152140404075053944296875912446290870376088165695824146968039882850897658001172449275213863794899224482396897442372342365594430826284598125950350239735191058319673970113375241991957842587952850677488137863127974655920053074414806539053833683690977485198311926054854224212613433450983262559388433419091543461301016273690073088687227364895969197581474812947684144958885741108314170273011990562959135619862637237729804575654635195975627366509505508061711504770062591931930146906015153402813285919933473249830748756529555173594749328387117627730518716112720567858951020604796872016191903496201980802227072683884344479093529228362136521563710726612077373910493635408361621484626654874005508931769659523705647336537366060075542862649705363040114328419094355983168007817521024909196855958816925396228730697304115134076329556514984083635277515837185587580460986712564194310319007759927091891024401621372799341458576259023739721367394121474545588884717256433769268359186782235748475337916969685558391430975302245395698876472970619925359109792151822343905062125502896637715597989053868364359390708025774797430268511202053024817880231525939200941082598583036500528483722705852180317957483214904333085519437562828911201628783018666193678802398611445124577873001522171165059603933101988031428785469660812945856510600570853963422331413049275541237698333072330775895418577528159289897264453444161287743310086516912537093994989028449076022486605030679850088436336202412258023695573980994524485321021162893735987524953325449098022100090146110240055795025655206432280900070216124664036595881183350905483212869458499381586278442308226833874615636179509164942012337684333497084011002863897648865766060777896073575018536038703646024601361309853692109038382954554569695879245024151329343861156294871927489176296821197879110577894936737313819538278479499900124815410369958943018129238654762517951920974655091122309205662054843348602725954998085193551847748545271427487525989266393311577657779181224380814551392910491439783499931062747778942067800715988150815848835428965377908181497327715841215796749587879133673609636881867295390856963086329052743161347160438561393795896952711493302995818735729699168123915719429938458920547189406567267383960915630920480875704717965824059883841033102956543701998494751656549758189066394920944507141902987322693078460532280614832091403137402482833403977756433062518406515574279126344945076104692560175833566743597203618019880889203281496434434148040817637504649440870406191686959279789523760395314303252149849069167762310712517922616068387280215522657533919735337892023332711184828005580465344450930331469490209005366121915691579322417459855510568418983093432052992875248528662999887780860568407903562937576884201493601644093248712589117844275421402952530268665097573341972085263853277135575119393716107335703134934631457875990160956520019649656797559348225644029416129313240690228291607431197947297929319481622021350261713995428411569602514493511217485917366245944741687417456615545671946465659234009196371078346254361669217108692650554918993669121351132522310776458043948637761243182555606030303260585311769496342310048101077511616455291657232002907516207798079854958320284992741289658142649587310609299021673904325524823054960278427239646478961244541896643730456944055073775073661350255972117563679576989460734129937254830001786437379096322993404615401338698045967876924865144054755848148588573404830995465871218734398474867256619560397816216734406518455448697393465434754689939004223769860060243789243261777488590031620528368868875893155183567521480882891686147351548473577161415887307947076394799969764092316890900932552428659746445490062862669291531943972563359799062970315802879059649822095445163687526961331420007278249096813608544835456152942678459766169505919476823643612851370333657439644759690794057808969988054842790551917705466155981265658333849659341288675929810106687447955665565776629914028518579582878271387209426670711449934431496468858418478381351767179377231673338176321439820920740742506780997302104389441461658990474553796676552736589957491972789533192418480985873653796572930869061718222148921961059324877549923000342036649999978450515839669080259102929281631563659200604797621749378847913024238073229810478579517932042785386954320204666972770527216301004600309894872775110345544009842414072358013866515583415092751759081000155635113536521824742693089167670908281198881747046134083950314154740903127603354790546651159856024619835980723897857270957547363954105053418563233632011024394011758157208996478371807917071851432131310350733528499871971291429849999364026334094645310677830472676445320157124672560196088164186319241745240881787641910737834391916507174518861755365012720464765184688296619403682846520939611118708127724030177498750053657988515368294912862633247177274191309042863435667312651893980586297944019751114465041122083554746253700436512456954293640314871141640383223898225811880541760250416248933739820573492954713948771071387734681485154210694024475802396799366641710061861641289633001870380319355734888609790934507868907507571312022028340170809123063910738389956042849287513203610328388433284271222294074274693432890427663993039144020829397683323064331188467790940286906136488949241014374631726174355978024682607941824144039842406396028909299466776279713639366365830200153175411889232736358173658398526530814690893694701511664705268121802035267805377637727257978856960781868332758434120615740698373768378954070992248505778093301118251307907333736182386758465104732972589500707778650178048763045965432663222028076449670235155882875150210429307380639220661520110667079749143870020771847892192681788401606810674937067786622559529346832301906962693706812322293728249315185109144972556501592698408991116395157562873444843956845258997561832484916282266450258908159094056201683523874129474857044477026803064758933299850582904362523102466971511332053042361921701813139061156360857903222465191896012528289841545831008764922180538319016139378959897272200065472841111354505582775127687962206122860908149619153332162962864350101373783073235031224551043929776741035740753503116905040927258188663863602696217797382198769256952431880063793876760650432759752920497342222693985967380347999947439904191318025886507359924039104327262454844847122755310051899113925724993443291573403286741453070566394782779168228119770047369452957418084398423874577575452417457144724396818256751201343355011122354180146397676242814347824313442604862963917983642706533635467029667548119416524938250668862888482333770063187622753379494403427401878779699816086223545250982637432263568921270102779835541939613074800503047573615355263930576904551274868830445928563535834435434536881147957081601076430443673579265200441201095539268593769846922502635342566430009541148449540859866579413509607347651356516733956784573053466883353268538939053285647622774098814447035363519571181352230187168491790343077164652159085623690319020195946396247850439909404550564710719943550149043381220268259679067093967168815143409440972436428093193139556181742341405734964022879577254038576926186560825766989733634778959248716853917237423336078884867605985981580870530519145267495255389211063424583056923029515558747171349832187885288084770140236630304842291142390353310130239585413100077319481402661659929981194392812981913237512408045133126317712797787741109901987595709477694147607665430753018530076876969760064757837271998222940366805143879488860916560777783198885352255368493647987839146750216501573146902947014563646049880385300907484365175889731704992251695372829191439621175102821118966718883157290319475889913378326336983426001701718610953142558545234908756855864128759241053008726567777662693225853373896744689691890590053427768470259330482115485722566077347021113892312447489743162746534894135564678789608484753523237558328660490995770773659387814922855634988306142760599772415317109221069852407376061630019268070995577382020443095546389315529475388898647674767553638834079347514629803395328447645575897556727526266260822381735848989074567162838547985964607322009617856174742290156284477962949418683367632710979862341702691165514732084285214916192224334485615092805256837007708896765505312423549006164086590928921417233715134334396031285842141003875960657597822455950143013154465682955709821137230164267597370395791328478457799659276553830446245785612824772189525653458101931437471584519761509716781688114222574279125286808209471991506613202287482154585724723799087995661253553797088265548079041059205766346447361656038129679957750860830946611029580549603873690652935129169568416033794146569136193491609818893157420299363896697828640054440550243190453232572143165942443880149153601192163280371133960195836953718836229035532473165100624743573247233187794320083061850925851976665317789835731659284109394359045013411630721596219869427827991917642571587088221650862355923196750289561788022403016396779893611604350363460337190890349058217620005620001684116157453865463797249992508463395386026681871994978912983158770135611713864434077898028912893411470614146941260392441402563000832311259785622201331714961423423081824977778763031970333032251149004525583608207351447035132184772138377933370448737708640224273353022601210603054412899233628205046263381758795709528220250651451607182731794745846035269528770503860416840754508292208080331334143783229557446086797824819839387022027560191631123067804554722141530109722317872828609322517895243405148792439862598265627607873879863749979199566075013573205500126599935010120244705645177997457638144781689418562978859659148318953022654487351650527061097063623225303999793247066687435013583647869989606857497661843407666620400135666203981981472344041891244525679478290165073743841240656756778642934205820625777990528900585364414289501549239089646028690014865602947806147401668903758664403567255149976056682641727051736313537135820061949908306670231917947000683983032741593542815774582002769894997579687543200415443711361759679850537022961795174184931275088995856466177036256841064444042867376584706799824536789698385444017016591293547658061931882365340978255586014968791230316039092361496308136169047199747312188725051342950866068249490878440637189693278460360050167291546338692249701744630530734029807801663842417563256936169312112620028825125476265915988062888635469242981640227667016254319729472705402155804318299407125530047423767261176968754894823794724731051060827210554997279072932610929823804381308592588069864798670462290894149605402682179292865881098455119918907060896306020148783331565135224395714072347701131524844386854614538918983510334029089280207847586284429014950740825407753051252324298319778152079529042898569865157771125786104536651918562732093295011176943695903032380249474815357254783064306740206136943468792811641882063427390413863252084927731368379148654047891250890125637759743500392343410199889310029237863905817551967731848762353352899405434637980036470740158630599973705978102540556924456924912681566080276085152249159848319570660976071984523814119279663896774935210927988533247121256955646741432226608001241530036035063956656034093164787873103872027315463901672181597655334285569192917020297578989181289142625093619868324051771029531581011512238338641181120350943632963325512933654664811576268252378004480856368963994695641540228417446668578051201011810401792419003906149002293761460950300263800175929243654332017414689810175840402450343991701860413815000525245202405507865138994197257644326426967348001809040092997188338342238578044652599880394395350528409537963115304022668014450633673235077443164071554190862983308619967039990822318682374404291585046030715302033200878541988830080130075108764028275124091014815748377827067464514111178093019480498051085300117718536500984274351460304942652173781764541820463815410959865167306470673224001040298992038075179651186617255697604884474593701598156720929850929550319274114712890461076743636364322495603863841893198977281141324467868350747910276823034510977733456282602745759501128288517932829883791717544195027760553861281855956657983321340041827691081827016450151273179926890156851233160892711650228987315062745034053159744191234484147368945510143320705908740066483736430318323598577025810946967021742043133659320896160173291208371227687572176255071770175375948660669498103014370793336992522841333070880865950257225266644920536465167670190632106930093034494286917877596765352884936776000104845932524119938205364675581140461167636702890226777156172629727022364433851448196008167283454660516191290868462901896383077394718156020350452346947515862882890404638822250099808011180938068183340497967450198445427695982565167790915585199051980219396341558982912642591537177075262338555335862390868091668437827715184647492299787310855096361790554721755004036854476168399547257737844300605886567201971666188796618328689800601386649443124850414242584630544634324691267891418813000776349109773877000092071174263925975264189205284037566726921973176877125781084217037156429659520976329593646251687307160148252058365071980853146515171528163915614426758032284836990911924186316525873881954172312345929494119938742950472709058028503789458881949160468659711740459142210448923048715458665123657464165660520358902427760074530663762007496387774345111539894098951228887088384094398762688036978580639437769847142342823536448341337707976809908929861802842643339637145584302643063962368384735092915186771124745890269167923289003503176747678471842449274104851621282491386495890680100099720180858488716231401566005965428531058922223678868004596955447651253477190194775859995516590321326172147251321298956822789184822241896608983152754766450884195720292543616888465776834507118201885707326196006382771734012619968914960241711634908369087308677989303767840949737690692696520554608169715785540858408205689315222562365858438205872633790690288559384218839251838731190975740588355271306501957982413033032819687441921870572716234797499164408424268343556692338563242677801366152964170887212894521408173782518267397284933698203940072589953515325916996361412869754862260672993749482051080100968546919983602374368009172325478842283306351047482116268901521358549032763816711549002903358920861145965311491935148482626511969274584760886369970591932322489537232839014680573763271304455816247501968025219733495192382135521010136841448387940346672656610445328174293990168083590601347160171157442595012451350087747128886501050143839499580581547784552950633201759565201275017709327677738876607103598952994408478927751033432611782370809339701731775062045608087868152831566247444873757852759472639477162257476909525241642338937939264587621211176877188384226812113058707096375537633171092442133138223935749110410915794497889289010746178266285783319984337484116606107835984074374192229143641939929655227870350221773490075222112439857800517660123210709423618786407862072234705512091601639555413446520849686949899285637124798684529781821014905583690236040035042348777121608622561295413699870195166631410812444452712981126130805847824607590168054834617042743034180115616933255075000945937474931378804380482199481941461282172729954025311103667871739797461730690355368748268632637317733632280044501534730855307277485676666156332719795250145519001167833041080008944106768534192121685812989964522506759578930956214343417148727657933767719139208525460442848050124893151383532471183486347722690869560084020455080635325502047923617851471843410634997760185529674246596747701834758374341722324686382591304600586694713245896625265517670339201429285982799662201755656390517625842672900387469287604450548335394323639943343493828365800798784940497138310365300088866135556667778739586724042459823078274884034976598393262914991318453531756683523921094286880735193205343457034292869009780383130588162500082131914430617355713532349283526279939566258745306200968494684466571357628323964247875043467938838754768483840312743212678119679442758528013906843554607012293656441987611436056090505853834543127078077708260146895596941192523015282867670606060172931602914296945629725585997679685739110405448611517769725378285575704252448483267155718867070786971319484218539114662417056894061749306075352465092852772112279455281038147519098858132247246024153187997045686767270510995775743891739262094963586369455205825874444625837632466437748819904986806303189042639657249888174522007254373792160329642049861546462996335303992594434688373790903358196672241489469616311846607161123473884032882603429794996442650967831578595524194964519840762350453657215122333341211671352692826078647259918991295007395079552783092408521572030316488331170266527682500033230422206305231261667032235541038055722748728006216461585788278678653341787505650221842485676498022818732886309272424772706461919841354926211182799271371654875962356834103899401217086469370852681668687120792367325628589797407831765793100725135195461468842263621066389234160898600317771207019870246810646583664362643032818262032373457552061632495680580505300107037227831883338420237458339288230960574022469392618854129139736057732344384672808585299284337829035982694870513493248643974430022465939761557275595853760065417999680009394626827075137299073910252131252927142970462768856387143770626626607354737700860620478194334272010914301193017903926085582713169427389579502477693030905935317080470411123523735728127956606019547061185844835507973805147064924066574313557907986554791857716226375145872674021155833029061817872807125970930775059485700792134491385630006883118189106584191201024211788208849627849086504249787414271017778572037194228692708005033749615945370658220537825926527555384258401265710696089556737203433780517957819352765753497682489832497613940597659481383374515363307440950077654452203395301925294697351994247596659014310844987791276101390097257527237904484558882014571303728650826220003054093847319877694902343693650000134621837408812458012760501278604475991581465551593509792091678451209414396969168216756066337479637821482662337961892929603627900081140999289678490673075626048888960887796951096987282622650262794277907289671613445984687499808857527734677760308759729155041441881212250502699126518863453461867903842116651286298611045273104311453959312227786673150492595404940201851398457512446111608070696318822661071319330398460349859665441865371348296528137544539912507418848831298755437356563736772783158056455361667649682453166731600378447183293932176784673739700531599190770524317076381944383806022289210330452996111107766094870896946781968655278464738552941677016699413576991662792817169510497419304798250750624299405350874705292844669193757254909381935007842220816322919286584533221187249199661666832170169062215662762380527917576677869871033618874606907292260172955985136476645568435519640625873148296779502610421514644873651427797173721672245728982759662302753903726946337617667087659987408776913733797760498471465665449837416245879316243581772600580847411202919697045174582000177935631085216838529384910556238714438368814646462000215623808352777291520755528831557132087226306290012318045882895510879455676057273895094328108759798791604089969215463935222499181160659464198913552470228280260643361430126543552325204407833214935097966744248860693008839006602401677200138618258070954460097966660271714098329847871205961402726266585773205299079789732125892702950886342742850375590088623922128586446429531126756860644173975933534318841350631601837897452399170151481634928871531717181273075601442405145770511312154356633079141325063268058263317568345752461310460663696763624261343670880658014425119096571621008255172642560746730879399319088141864286100208007636261856251625093492813445933459506205186190973674184713181533612823279540380254206337404446729206347089503065877585964493615383468270156662193506623392732336851784426013545262823929386454242434032873806401720744075991470334921387952917277826181714552428253371597513125392997189885427422372516452857294613496789609848041446889619961295072256889975109156665536304845139835555065825378578948082806770355838601558594903318307771889871587401038291282032691801844475290528966218845521533255222770023945243576132997497099547483062705252475082397508161382187033078171366814696359250201635747588906319012116975153850776442513187262333532615573681001163545419302478103210625215326941496333573734087643461191466404097379679787715870232671986068809957126618322651388328140064146951167490106353638910786657044020780356018343407949606669070017183449849650750738753749750767043299325292154989624956889225562436162904083331954629035476245601924450746883247318587667267850390676040020604362874345384157842771345704332146151868183657209330781165236726925742526969723994635525893057963288245352710900049029150112968121897440335453040041680155553665689990884138376108151228496320855225329801669728213589297285774997932456377454587195330856669531069251466530207585800279099032222372512551646094178508775031810076776769165250253919394406272678425530359277794505395045022430581813850481474618984388056050111844095441563270811586554288783827660117173870016222978270498591736172362024277889116491971016648223517015422371729391009695830145994931526207648557325143572853553413489093962135719072886788665954885626894809441626928548335822625823923690435430801043752884069838492395244794595930931641199592776798682465054002284509495934260231194594037460806576562370782825101287510047367718750045664468313625776923086518094743226188446854444443622242335935958074044958827415808036308890291328583655492256848086272433219179422794441665820600425105048091297008106374199283660144443982242264108420511943124625589601466441849438315121749810765574770844672147275900923840249999440448767986328820600989123112611800596939211159690307480742859339926252139306790271816487123184864708324428035916866184759261674792274775000296777188241769140945444781014238571599486412794455052819372870728567504118151911697776283250733561136658642571319079934432297854036152135896171828933385891516949741511791481156924917858254489108573792438478161016713302170222337737186324668688730834818470762913795455355115337301799490035463911369163133178045841403165579546247575434065056939167081782858105115308441768926332095444055074854772010109387267185477906033574643784111264860523734699535037573168935255783689270377050055127243483025392342509641247291751859569964465226468762793246727872408845599159555084054718992877486370161081872593038666469553814414199704445900366345631022985535900272294222959328874827649534327544276142284566647713588892800926720990157650777301327724116252060795015485480391216477999938121247570033785275651684331460559052194872346844121972365246282709977519243413123159085395546041804843651542213584101157606612827712191805607302148717647739895804778305140826569273066946580356570234431893408677861573952026230524009810105984105993237506554673917043490767475732444726748353070069795916963597449098779256228161611512394977430749935990278718977534953143047958402989786242038850036982932100517257330597950222436309440634274957270229078271484620674708485951340943723734828657376380777112355316518840008613113419223700370019839881252510912947898855616781229683479512444872900046470807772622671775905243994553047094669603917727061153420473785282359860029969093548589568463516914181031291370377669817412058177009460941671631954980007259079893772818095523431835589598193069823789519708493795747441737793985811393720242437389663050241626903218704922941392609290875546959449370226133545308103204131872312079580510700296391871164554685940270253220389637729104009453949950068938510330703084036803750190712562760752383267120173500402475671444090479732723065141467343850868094035288225267049269442248081346050351717547831968738502071670487704315474362000510913045956629669897638790101182066729002701132962443746038940701679835120713359206560210374594842144333996501060891344105710807185215276841636597613295016433259117796606624469203129347047996307604916243758883458570585423468805676867567201014171448535196226612872104390101845074154908799370274698088174224014300924851696809065764527409917569536011603726152158309531907608562748262132682844545366543332492881142126402258531037478901015811863031045211940069017770362834065156206939209085792439267849231881219938541966994957589891443148046159084688720698843305231735688230346763642761811314713906409620221316230219850030925850633645700834907949882748501243390423381351126597332037206012712069930829678800734026710874716768591965409695687136117052284749346313857201361370916942732987562418644565075295112655649474778493060237952267547842479398440710867759964063506584887590855600734134670269284025411838509456604672671169537921528148563548364630715561265344915320612434061684525218106564430255682085729431653200130036947242835565757777090517451592793192239111100640242078041006276721754929970512410179851364874013628158566124246164302602536788971482708368745125724652031529362263671168471590986992010676207172278290180594291271630663924226949865998683494545262318174919281438234382789338014407842901952067063389623588552442196706405808198756946287660973357678058321383372749314481504313457607530041702366208470191836341413337178658625032682299629528284008719036849796781293134827218790874538722595044853367223853180032503173310194649438411972549135084000497831581863480771899268063388840686877365205014381763648585674927697454346323223549828532831720891250077246892059223876624479963774416934593416421300274595148462500281664316960686408432358964673785278061340487311320767942501349865493561169366269362029626306743469328335313529219295624065227753244257028085782902130702532119823410507585774892833993038281258599869885925798204544417589171613926093197180304815174406263625871287648733252281113878551109703865452698562570544413463414049461120654131095879526548561131706164956475854910691256855886548144662320491426994849443177457305028736471576066414782789442403995755142140725788749336436875921130073049065725131365392797714446066847786444873076720917203146837991816452681377641370937053089677724770405476569756248327886578881699582632134925641522125484224676786349496944354510613737249855630852306549257133685278691983790587182005864879688538577085997016314369287650335256878654572982660064935309675046762492565406882080288566114226560089265465321235102536782237930915623928292850902669426534238929322166492688309589504393661577340384881106963956261692411572133012426002889321482428758085236219849233988719039296017859600169023296343103359196403877060979701765268579955899711124335104032264351875000116702480915557092012990407927516076438883017998617219140944218442985639984920208673219118975792768919123602180545811876292114513353533246820054645701434791634942950494187240436492021498200910841834874876829091509849164897470399393141100931464810663631866269880061482459806954116486380649131206340475086475580665921162521728857143824351382308201000770606711397129748999084580920209911043554942257095558731165284630796390350345325382724495083160131884487174974617078272246271513160833565646542516752542697003345157281460029310222203712093455811622777382656336763280945953275232461427705761622517950153842338828838152800443520873743056967630449396051655198388833911743058923685018170491083928984269919412567651500324224216188740610028703707327627297988125204531844539490954783304616621375542439966530557891336499108584812751617314090332839983388548250851138389659294632887473152451031690173770914159681257127772200318104036605625535325771912914794232403282136638920647353746137687250822229405607679778478241581490508757275202945201285539281848241544979811722875477140387890096332775351866185431157463152583060938583274760037960576333898599088432879257976358447422659572454040607324492964464085786320505492373466565002543261716718920103402278888476131165056329223535239578669570931768974293878726384172927632798871511046363923768580445055260808365257024078206904459161127766280360725518208398173026161389801181821484087117490425203628268270270425999508811089600341437532162704763309285858609187820029241280808587014799155059645258661113845956000906186012984544133432939385491955966479067762345334517408130916288684436779933542771381857231264334960359185815649416491620557941755623262020657281817761049549396117524241183736589763013386984006843600157295396276166395509656932710437789878156465981376491857916608039894795780608965187370311398962683983001896669971343814273068415770873303444390285254902559432463938814980986674470698731049248692848372787731042944524925614293972658482310673727876607071241311772654347058768429780627795414457467436208843802203542377422320987373767607591421319779510321023940581503510052003482791652755896697118727600733098690568186477755480243663266257643957688605703489310113909403031629881870798994056207158040754361413077477603984344054521406710706713649439139484398328038083935308339914265393124357748876599845556062302935249549260966984649372770901356808984561682672223975582136940701116411030821095771837547340057042519007059963628517375527394224295997540206905736658172301388099421629167109487957078105662747638477310086150173076554366948397761892022953938724246703877807145779864762558515580310724933552172025395343990880765318712913384102219035717995332471024533314137187765553115341250211102971933232225923913294833421238162277871209107712754257669468690719081846493743967491508567062698217094358806717603099654245576365036311108129400552394083712921775937434994183591580928640195435804777236963312893416761337777018375113805074902281505574232769454703471280726134070510779471299867943352891863301898836418786636911643166517870312954852734865688785280083292345553446949701015617846411559124891550870153683789398917714127048768459676713468693878753203295766105437931650247474222877960486226574752454124300963642304873304061881128070233506427590030061396260073037772572964344475073770846305479562862656009130801940235991205834887710022062532574090803502634623012362054023646801963348140174200115415671400247284515214393739184549338720218748472799746777105918573804788548809997541863602609525054852914302885187440405577420047260355451026653349920178368918770579145932913860745313126792366953113517662437888830623268602489938127047531461746748838996598453763387376707176121426365241625105643106240730579608292772622898480162991701962844179647515086767199524935043167506403097807051324256802417965574263147929671234845872646172437006202836233897880682775938771311372415340779979440409788543908543422476392179993024706185819532809640617526515902085512738586010159882684592316787718081478780719667390721912622999121638793401599543983745554049185672231746678743156216514317434945639809735317068309618454570530921858917392799212089927827880050738508560457630655754613945481403480061480021600775213924071091841452953163464318016148653469293950335075209871112379301312630426641131156683183546292249348474502610888254561825633934904993341064635545486680063957070183805102865227471611662249076096850776584633466187065560578619822512373701433166430120779882083829606628478240833236435859772633504216413996195262319227771794516949311540966359237027368616681830889054663408832992545864292988895212078600454856134900858276626319303843942038947875834910529428774426763499759152364238251020298014654780383968320933703485574593771129709418908834489345405850795951091274744008030294469097497105795336443666290941443614829592333938440407729819651054481377611272926049087428239446004470892369645125995842093169925813572383868305082671390982219359920594311977007281080267095731539675655135683385570640084788579380106708267174357083531660958289372956623213580900514639848784799880893597140423086907243564368415962895931549500404968609908277046638796988646597459104763453594058118491055805166168786031775711974048051931461420998223125958653854330422247048568543540589719285675484910174801545368147822096083723124857042081600806705549354077930233610663478867882837952196113437067257590605441294802155196702835743030302779670221209004944160095462568231765204467914261726046788709282882962491285543805184555179815101337917824733509817892003705661519112755442680070982724287459178220952653844692169622068865404566424329913658379794196815589120503987383726041552305117389424837533201086035098591727532577479696911165293011077056541666986781552711893601872841667505299304142483330448143760658372094619856106584035625240003646972179548440230461219194040875115884317800464008803821183696126511394309364206262938609209951722730459307443551586666588226849018475062089180708710086803210270106521436918033361648834782647573551184949129160842387961595307005442657274341160836372458651646742089079578725576676222581407511837729231882262940096385815666128052624647461407400705592196998632427901354899091037285543842941625398127630941181217787078673910510774786898823636996269482987707245159282967976285254384108396532379688739317391154702850513288352016696261416245647249040862066061722731447358777743863338848232173105189551969708149374648175297161570982126170841927112996709146772277319492147435839391740047455933550098237639934577984151328022032843406481095957415569510405661811360550996954105224517933944316242795317964987171462681206486443412368765817883022178404236099285069033307386662318820108513364758823047473304899933175024523762650938038448165808713987788614420551113762756030311422349729530086719767594648786144132320202020701972434960321684479621459779914508488457413551460783155848149053597586251320625494025131765549578053062577820926318474324084945664153835013332395151134268799821878528340958828679061454527132631127904476964174073030393519272108871206217498347470523062888647576790182219813295121661002322564904303195133747037772457991560005965606976085906205747377049200256645752095576096149441160335253819975022060713926514154257691673256047316196126726413597006608892913866824930903259203275976777461923711525678649737549683912833363720730446381564777926561634843199669524729598698325489839940881824245137823232915848099778832026924589146737246166344365229268414103025285359368258108469345941633535733476745053216418303342675348104321009741462501932221686774915443898277681161959591469414810670590253579670968179429972961481556568361831997158824667404853672659224395567260998059310277000664927895936625592030143113879102070454433214422112110481958926406254954513522948640877619121151603647620500318284664915477760530065629812368589249590576585318296711863894095650542859112951312679892791460626707549160811326253089542182631300767483320222648666706735190112412305797977875287436789765715116060319939319710505721004263918505086929184827974497540743375777981551284405700212303659337670596488637014729348304944696682308524061765828501719852194762814081038978069313198530996440927611560068324155853206279728455090535005944134760282231394972689319853885173236149112696441240364582072530618903952817593795938518967887235361517710039093079810425222699608041655919602934993368308304556082268648672395550637198005213569555219670594622004410051184350671547833926860109732227143014365770854095268551181016015178350011321450380868255271045106309717171935849341399938637917863425750310075807315547719015673902285447322335044461939954459328549145341716517705359763940664529967066654968869756909137756616174096332476947033965794705620967937834829082411170866981541551552885925392319778592226309380177939486190673294462243359285725026491103197270729613396625305529783674621774152389350387980154116358416408182027384264711261224062917126454102441906172959072729758729309472376817329308445029100521974682375722530877709516139951031597308025294901772811454347998386138180883227959752363103522107639521580647106666153425587142288836978064724927817290451014668395477091036222028346199781159309236669047465116541607958743449964882974304695310362594245694263764945982796666008774938050020867719489505322859203169832443838175501661629368926286746363325046398059104918952958160289864320722173394973394312965680500068867153286881013281094084366421337489271765769121754017055546460623902271119227152695556921747605591650031330451105013515116954242870852827072626963787078177478896918977279381515259129994112096821355857823619720804695368171947399460028962162347258872920938059394738750309879744246018886601895020321875013185914636681043259769443086249033350044319034157620601213309139723367128822686233607218738291105321811134048690675271909745736839460819205268381893297176427542879868973622711001766369272483560883804484103931131514404248380648480409325969451150923018894792702528120799828548366900922652662149032514095065865467098189495840801481588491236304931751615838831213131253425331878354756724821369534209011987858258168306646627013421420061133030068343947218486994925061533690467162400391429466543324371769348900517397996468959352220467256445844686044485280368237016248463189651852665950832447311810025939951336871461787001460807430222238292679085694013259302877748122688657159551594675440376387724516456806609123108754990072954189913956304749546868951773131941067520553741690815940836413339912058237008073904875827574293225002079739114052644822891069158766340393287536398868494990804632130898018624440043075181821962537153792965833445963311171538180497330668484412414778621073929196296124802331371895387804565833193889869620714561821852014257161909185915565481442966557449919659605155196489109822377858318142336881881197366163646965941900889689663119158579361797009366557633092313922103316502819724520981339826973702369660529017830761486641613100241636838330510631285709123988585181591304197434135741991687703389786092447341837155690962896579739761886024947811424644964558134809168202519364695867095779482220505105513029676086543893357035964695827842856390695415859694548067266375882582690223664477214927771658552089492837685330497986480683407435814487165049526202052639398164063353689037494270908552464771370912564647957799134448442432548181527969633371348117791393106527789379388850022535412015997783115522786188045389479548085887632082041902287837844410599645978442691744841026165048407321312672337387364705918494444701262563711153195427638870500768244646420132555501748603379294422184866384448953366855984018164195407228056749260515307308770960628577668001028890919895421013373304960542009288571589118185534515244103810133287041294492060761737552895618649186471516852876342721250580899134418225420833567240062037336630459169220720991429633097455808129185540876095360598481422664273212891537606303083062247922611490736341118903881237690793348731942834676395138626232108578081622363446718462132195849874113963941719557296695529773943195117962412491464886495213251983497782135417341373545330740434883869182820138827956278382948212757238221035866730241512016129191053939048930057622731968778749195353912617750477004952348320600411920263184396856774634857814570239196164426091139276036883935352856763821460071322237685824746792839460799548976377237994127319016748163916560933403585985948892122158179270901323277529572449103262014876788068168436760650263114297329907951924321322109677440969571678491821858633339301127286892105082849621304234958633164572918574923393269234979412257254315705841919223478276869007956448536153938408706263911079453234129285402944378243234715908871524766033794185276358097932860121504954368339480999010960257075954929471901636274036592780787533498480150077536374432062120660159606779593774315942514190720711915573794411986328203658275954021310229479192567292449192679485927277341708153636825664198033327272217911338548305982662894489312024449619714016641784201638448004469018399957475576426994085113900002633147628687634407709099379130756156906516843601796076088740079030419235566799918448554854863269202422540418799698953637474715419793677843151193399609641171995780040351498530704902617342989867407873634707153369044808518295092271973041523562764063901284280385670709047064875459983263488160094074559648315844238001248467183702934992259960951857420095547919848423373171890119039994879774382043696512082389975397402481327772484858356269522733868768901510584113969607251257635981955176061713063333596357716372058672612486556794273981868037568172459374570976201249925602324896535885219802799196587057092552997645300809894902400451238898831999553515668687728323990331070026761578154355343417007619975967760189945960948872524135846653828266364183718819989042268802825176410007597020835479625641025581116995306706685368451958753075261458527838119309925869175798134092507786661320507996054722301524994060189083718633622606013412623991049665902825334997718631177634310714922680935065784385661558012393230054440619586291807804898629156277308289677999171205335527233497166010328562655682580644733603436831792238302159591863978562457386098082832190168082866795552761803261715564055716212051073476037289828163354526574663576930616372897692965948465304648171768594007663560601922232668435594616206168438070571198434774182090515359936590662236139046322684373608233478377505984390212829592671691507223851419568138079955857533611595072790594250267207666073327725411708307667963160836248728713625137036837841197028119616129099446570882221159330684725640762116933482689854561003334624307657733513732457374730190646758726604842812943012357439619624826350017265733914366411680826844170917534917895117195637176111141973076516583782119504101592106551329253247981928078650602520864721455537818066118628836038965553856472894528894269504072066879390413130754840068856185334138511543779887456822756193105135543310242504014824499089278406466313924635691043214242339780877037991434578507102201888179402798040086532840316918026936400824317928465981260128721697790786539093081968565330412678673289310467783032713094409600316417870781084916077125828094126672636715760809501422642052294400669195071231848259785279931759786768676680026675198811179853596482704227432013429095438879794330027091440986670775060790098161325452963964220680799623764808182034873210487862161885564024014844869224080249057955782388352903141628526986624322503272374884009168876864234951511151364531899423562231994154900043690556890979157510800127600499542173733256874189106239821660917008481570991039897702872557653682781637683715538834219960972258134465082186221808730668379133355703322690402119512091858530333219937252877685148456737820077868559783407599050472407130065105291866601099006792489065444146356471932683836177954121521586158519123259152357263215032849541171115818828018889158442086513119721691151960846914798153288874170408859052464174884628681468328632600390520484847254591605022971410786639151086993390454374411373943920793587516140074723431383271354543827455022122861190245193052579028975967713166697508120112311454443168570975038397151910866228964959546108604904867573291985660983942123792445441559529850236150214791783717039788535119339947604575383331504696348043868504471002553931498815713664206741580979767298934521053716991882782343337044507330578885900370512498660349781687977871941270859424145531452884284610122692556381482067278266729146879342581647790418593058792131046282895974705275372916675067892135654364877055346303432983169105276951260554224224124613012852998734348917765486250744949245217301098017584825015217463823571191477653966206602337776097954025463094767189929336949330503714280685536596329417270684975348487116063781480731794470891518892246536523681757167801384630744613151993602178967386763943636753028339276412599391422848602789100412668460985584522875621630624821659988892936603265207753404629529109476788520476896246918882045198606973278219715837169801758691157615776616214930945676926722376873177190770182369385294257763541644822393164151251058154001177111442912591759800018663806245752986130633145783233565942978294648416569770857012580045281491157743976262639605380779604695305346474899305276500815020340032355255570253099945379275406407322474613117019718197074977764761891689784353199281580369356214076886708615246895416821929273429453472203603114609477403347341679176130521974674247842895321446034186558287986255629526048026388224522824084223810876792250215312416639426513417906908425900934620789916889692734129767387317275797937097218612017443426007457337026753828676307080182498721071172174871852861722966415842552860197097202992168050344481549986831863593006616406973652238624107280274508746026669430590063079791566664899704828526023275036032837750226992168491484042563079056712344767627651321853218840115401919972021889494521367788514372360679959473124747622551206900852894950600894602502529238290341055022397905578647738734241969130355759859680136767779563483450003784994464498312858485317503601917242583670158704518630723557837270000180694935821466054160603092302563459001325069607123948762738116174184508360865785815101123117879539439535232118761222964617350275407814129908699913948937921845604028935948492721958288774042251646489691332576121148921753226877862611767993414546829766666710209037082775074991976639976685970487923654999843940154813333338970956008325701204990190648475525088078714063034012069103062409013594328856604464912769687490967060325215129426535515282278234643582532345966371537966994732711358411044593041930996015950577107621107675837399447899103432506813888381232198862020985605697186452698797328706881895925368338120488869916141038013172797626789824704890949224692473773477309000247216110043828915520087411271108720564974762452679714479328295734987352452120704391019513005303570682010204383094641471314523570255209625469203769261007165344259124304108217031205337180950627042060334607671673782024588164947448444204708558064805830141974097802910689596427352257545735912584214710979369340965831422772085672486845506975868266788093606326227215021401329350613958119217744028501049094520725092951134009710327422665745714204487649714082988955828106433535525051731826436925541586098539435377868374163479559187001493028568934330527396373111776402965617715337225790546975603127564386286902368005102113048475223489655959435668472494873363955846407556063260249042248858203247744129609568059513716882331826994945009022745411316991344182665064808470857159618001227798153771478443768506396848009313842371809301755194910041157391627047630499338400614088202736424511613405152584730553817366483047517611340602330032486633000702117771156699491558758589008141148370253056990954643818876963400362003984534137472636935188017296849860598005354554030981805934360212524916861521251904023299609467567692030482845929477120958297701253695397510230028802350292923514490662665677286303233384130705477058839087955406800940539473794590821576994918450272989869412385528540413431879652948856720306241944858226062887255551045442592373362454656853778826329524994277017974900162303878112486592046870382231648608335151544699266356813932730173619776376170053592287965832828921027027237250742378463398147979947471114476658469215886523915628275150823318512064222869112127020578148519785585611404684612825678754321759838176500279497723308374931567763695853787900566088757141003579400929524017885874243781964527038497955526467791424156067967195173141334199637448309390847519359925507931314269819475301398023487206126547613638936635968925309107741676453910106722426853252910871145768567874625764722965481774615462009567619647314938522244744267656969100311297397086113306028664571244064831124084299074136782628424381240765076472169199679050735804310784721342801323077457183940312896102797151036217595125726079222131583438739697481415063688045209245106743739396844961140086730571554544841377309341366091369478542097431597398031054818234316209030061902295652816899564902819540670580035171412203921538387455944548322781930151609168150202728422299343494091855325128593580020142250945070176646338926118583517748568590071568014152143327787424830928390618271381807413458379941012020855665775938327084852841645474080875704162853055707959154371302301152111470741911033598129165275713975278036417623581047586056640343588177011821987703791850688438772363606044190667203498165136322988626587588800479557878686233705791775964383430487873607346375514877951925341524717245574417435887956321315850028060711408995334577280053682833185137570008979068091238665231948303968482284814765882729576902704823251582562513490015487523596512429537743415738262769006727909062107106781129080086697540687031556586794889877652913726043637720776986652220142438035480712945612300721368418530374130284631702775511111573233508882401289661062295676313923683951491419541088550523493458597865364470083502688178708962991072587862287319025614872356732085151305351462392138331993403165560275182205098088422020890816986946410834193497134798569182964348244731031746885893478900072223370768722358875111040813724287919227938443248974373412987641510649178344773237130437271581038135400978302158321859560251083682924768329902940488042347728018215973324216049814786419701922433607011708769564212393169214839907166544544284373023170878029259940095530494972059709112850960608118754924484360984865884037938893267606127788396552113369267831470277801293318677539535054105004253075425564041777955238401615625155001982165876089131542512218032085268653761545214515580371097729310012960584523414344728704382046517618911233877823878816307709804094534303758781959317489876426786522457318536704835557748038168672558069513197689694811773573262108160435262026887856191102337504643825767764544463859970666596389030417298259195792378536767655385124708270547380043071202550023268071405231797141053934278909083483270185640361524597530247397083512015895524517218421209443996539968870604424456446543310620764222882447442505512412878152256648783015443522468780669174574794170300305605987048121156537651327117067795035115769013989817656273690920604418293491037705775401367348568159211886342012786024290594099228082132258907707464109315994162037277447453177937471277994536459692923800135179205397215173905643594758565012313372501931320113952583608971595510927880344725370900299750518766770761779451130814231975294936300155951762204635940791096812888984036436050131935123732763576725525638749742756075926458039139212054878360242882082221390897499080264639835071244879989533104151864208645447816160991920720070198457832142630016866151634085661125533256237900696113357680355640843449277683059796591772840888423193568822190299308914839664611781323656165811926158951080511141060487399152595417914436214621604691155481100695630736205412208150352571802123403457773891086112195949815207988310738865962043372564783555700342593559458667665692789371378808291846822764714934906285220809165053132063688319591957272780189874926033480105410072454519648028390783646692711198455419031617707124785077514829923583095585685041115566796101676268655745190414736302443027197403369917507738388613241931227542216999188685793889233021940168186965492706919800687225448388660836437072871965424977364038512545064029926496599036866370875517775467608878410087966454910278930172610606907192084618344464069077060132447829830283939134462552802754979726506177386028685510768887066751756170134834383571425071734383355960790486678746344673950321783751084480569526861063529675646523107121171659117462591013787637705763421348027874914958459284605862683681373869470965803641699161626334257616316137982840225156488987218284195877710696146162098059447867462925734979043409190037568830593244075778458661016769357370872570297735757090732794495205672507213004050776084498768676151032141136708342689962838226055363740564581580261956456987679975277481087886295185958445853998602107550075578630805918801456885383560622403614890414148876237198848546635030819869420996187791615750186308614355017487463857273168881292054233401757628400462622532503231758641168022254548109260901827959573666706879535727525970234995520776433018527067970918458422744746671282236831361588412785715012900627630469779257977007419849444290464050130173436283914052022819857944888991131415613817707601268573376321234779806019883277791707466796785649539360423318943490394601635730592172296529902129007453551198327229423916859601117499684942056489386368807273296335690849599567372675170266821552992534415634662611501692145961520130507950559104314321300352982537266329332419964373794067009701781351866077445283458095288090833349988802572057225762668137339390117732992926875442211360552711655615361014421423923135139093309796055317084939897686607492861032314404443409552228388589292573554024975000833329457923655566621395468350351628851485815216348883267873590267107837959855881846006697781076556295741558176906382337572645711344279062131469887920486321750492145604895566845647225824284588518975322720959681359117445250567583204208626245971907510336159459022896356718245481059426608263057501552537659753602822839108773391774765556913729175159985371493160468194129819995461116018458022548193814866705299019070511733835276699521491124419264789604242623438004187090182975496177514378365429894065837438185528334973177088776878729265010774136767536717722616894918325932119143491359138405601136095082473782281416648712458677481895375815779996568882508109467133260117967418724808099764954287486872466216868816147944470282376185156330773948776488470472860723619667973555089495578350506280188510392024049707956683737480427726735457938934341894871517309632773531423830054878661130821652770015656637410085439883803102055728604597341626189876701142484491371881188703154970252302289340904056606511905354639942155438876477408347668052880177564246061701495299703071310417538383614368084064194889360352961883960260749308494605737918855367652530063276465496468338536581408284110488166293303861484487972681496816302091567612062696383645087895303056569183913256675275503027252623885379592413922164471797011255854630103368005886181747742983578613252322383648515440046378287819421937832921646827042597986452200018067542806900450863024166431109523826859328046092875266740618030308497373703127612732037416015252974409014162013119441036996448144162023414104253036009651748059561256465035164383011595552402704751971432936312762012329313773073447170852648128151292776975275751828785861619282911417066633869081582577583419042320804349894820174517860723599691702792385445614878021063610055373596642560897185345099033402449453612226121224548416647668237322825521768403909851621427970969622976379784922236187595281980267821007917693624082515443106270508604421708331132739813420593057230004606450355711022028521534505357927264223761285387196396373392232894347249990018833412723026207917520860989752789426009760757266866435964546701018184802799270123648895058994014503416227526270640501340100625047392902344879171190020904969548513018269034456076071030136838162356161432139593381265412279511377465538041902764490119896073838300077969575133536425279387848755939897059827251052850903650115897975172714804204629423031296889598863404675284380910568461666210534557162543276748241703042283236511991884557732890443443961171213675483832244725800420454458130244616645083957508533807945162106475244490332461723768891228676047969538346056520109183184241193326181655425345049644406000657468192722521214764823869673176866639586346897016601259805052826134174806254666867091915251897067418325466898885434788516267048045275534290813594235806341330498789864278992354009110655088546497403984911541118210572509601334766611968368677847245198591211532071876671097008632478198859159138421754716017101606544147581299726600243887235122674409454721995166106917491898745670434211696359892234523514121396218432430074646442398262897204727865546692559217980957949542654232515437842254088818958482172775934612647005947903691002752473202147044101466019877363342992630910979684988498139017738906094075969581247696512365320140776065115810663253060086673660921474069726483566930734390754878481353250261898354168448645344002255801572006130992706705090639176687249620080997535659610097440942976978205665234698947700072462527270612618860748057432586728611563710850907923698369206881968885476721409350108716366311028350404244276365163120324033696211778888000686974380456499839929556958106189666664312192575133237784815923040623932612183689310822338105566274559379855475438349840109252276263543062900530363074308998389627075887580055387026324603758768179985820393080649214638691744939425780683770527442988984613340126763432125973195354936598324478059182814159509135474842278880022548665076740416635285710163340622848767240244449032576496587509673811187594563321521708547782704638252797389826682230534219503387274214490915834525396834063093561508453193253206003504515720042053473233074321605905511317816095726879290961469013046467896936641902327159292211153064743613468577617868679710287698047654532236211938707136298788198095528231613217156139207619118678776597743457899830736691376702829291019611762506035458983325859311327045533791207666466761968775304927067951782518196540058047405092965581553025450292097206200812955271585624374567812432752302186642594963979682871132477210509625626588793621224993026837979761069183693885757763138504073901248512820277557672258266409109660832112424753367184161735450114091082477246600466513063356921077492234862131256426020619017593399486203650449460563307597521502854177637294856717210359178365704529853233335690748283285412700106742057814489572113057863553365742935958144620072168999987764443964648094918895579147967986060703770171486748381084054730920165979425559637130451151054080139867169437788102960344215816808292942144908045548277995719964798835778726923060607966113244580381005080406565000555581279082170025218840395078893099027401902337932949928047579142403851604935982477556914762644408708537334751978514580278975627773883702135488328630580038967697815763157510320895254098643027975062517587458030763842050212243131977844899399827116816409927386621921276121794797834043323176260220075318945552368640663671428952082841493710035998635188576515335425142289793592202990962164360891619344218787576251663312847495970799577282846208145739362518695325051168762095989839015211202501422904702139873883472762285693698497985375831838053864305458142979005868452942601576055282007577316225542125297011866722235142724011700476324300881976823045431700570751556774321740386537410767888846118649946479900236684311591376292043822139755614177722524337027247616162089532870046670435365810539981266068947017260151469457683107047711700411533318383504734382735227945956996437030483800125614608319450070064210125337714709734516029617138571783809373453490407991943889887960245882897931799594638719829650608766338642893119663821626684380660659669250244046796418104681744504315722051400319765850407915851182844064721948566653786216113997271493778915508782003090441753939254780977132121934282923090516043870553039476238602910614462233541732329416937041032402568025498455066728354583104790162070743212416155291112516404781853385884509801569016453114927374426673339371577764865399799763927670995654744903251291824586538713255723120884211742709844913894591365488071816513303197344792465567083719434693843919468011769451769804231048844287201280210742921858971242471839403325449376491256303232065645336601226532305022820646966768105384253155453427462768496523315500502421543774496070848225082688766571179217922525637359649921701424372540880371123570226806803617668727242148786948390883889621268401069176948654280390635015762467759773225466138568451530391896200170783373648318627703378877189380316167257249421170231910927486243378895800455629933415426240336224728558854448074716654921560105454837150772296386162909949072899189316571991636836198192782125689757626346176638120097202293925277281685469943480425367819638799933051084481751580237749475658154221793337081174879808441622920896145616171310544161831620125705342586762534396225335100584617568015427582266067646704577808370854435166111444959076108464954456284585530261675442172336386550347356897924323355984966385498980048700348061110335219942480986027428054687327543512482769872964257151857455014040124241650017175588986688512668861402587147440194946953190889113781202866156067126677888195576839740411652026603689130062259929029462394601630752242791662016064096071464168344803045917721291948896204578694339540878194201649219468800689352061362581317132744995199899852491745777123770826022046409673116770454435616883796289900842640984744628273377911024142551966271545617230723268124120629313207344386505851395225172031955303240901329783851109588219576262638739058371102569189338756402641663144893944990951573294149879929011419637804568657304202821307655281009393271055570120743909136981872759449687342920232471233048248745259776270713002740586596622252253167699193211587253375397003748399422381682582605156706637179495675151143677901691937384557387432982588068410802826999754314391797454598539767407196317636947184707735740187312182849122667141404029901120021832858306834062581979214930519981319925839224506048966720324614458623018577426580853652169801795431655230717214235306659042455831103746111421104002093376237233812123388778847599807290439773101207416156405631035148168026528183835001461562030120664770082467097912657490037320490669973241475028614023572567925733816990171646847507489574200800949617086521948720535280320125744665536473326605703274014064922395736837184127375466518245045185392013379674321338851055910516495598686336814159000968501945073425960858087749006860674396922024502631042770641979189320497401377670889490585195174867026869320481417184724911738187101388174750198340957560166486885403836720154981075034501240221624764140892142386788496897744744738946367722159935139326538904312324478518142470391841538769939298158119863948998809930021286047118890457737131671028028401043920507719431752099031459390319484655687741264001123890251615046876523670509371301626533859102610319475798461316861043748461952915474028240307029779503679034350451792134370757000925679781496739789906136452589728080136468126598803165384803308060023905590382390819505788687873148646245128623569688648311059007083539734262110200796851083462446763232784377586516548299979715503021477223246175030926051282054212030927339262604392222785058902717731854362219116700001527138253339518616905611086123385126780930092213242724195687019933341454901202723531844145551659134383904258245168421246725391367462232422122931934931145684611515892478651990161234018489056715468540834099858948558425182980275674626086108800660715886614609182889938952911913927252647317686193938889499798978043632797062617485074263832067047122976082963736959558880419380595657744437658256931113268178792823520661286826189000055965349642576816461364438724007776509698955860980579484007763424200020784326610505369118916948228161768823169899938138345470234027207199867092101583793036847099591640182916373253158375754711583200230540537912672480348025905242733926079546946353478706158702450934989645906932104559969511249773480869363423770287743870718372045230167282596688600492647248066375372273596691666621434639573549557269872047959059744575570688878229259991430555572681535489002895200815562076522712678498586314324038032024666172706665769595467113500987501362075309616232958359161619033135669094432228218675585864762681000852951123210649321887388343437340997198757068991299367334320616998559360174241960109980879699836072580550620315874594297823246534732816224086410786726170473994175563944559553273904262698711590087079440363497321656151396458613624055631553010389832801892023727772715943688530154885443014794058651065556100793771979934883046638160282494529204349464261431078244371760246554343093602909029655662609051988443267803238037053458704193557907738116235078335492123041361445881322984585359184461976570075729558031770048744033174033012521533734347263817266516152516333680321124575513289501777555697670210372517320670978283751952150564481665822381420480688721577166836819201537862788033363880106509162930216877572609692341503205408613078196321342851057759256820238784705692044637610702159341772702818114316755669635696506123750831958049185629737839212474388204286452501499511142297779047986631490569500726253951160764790144925201867886349006517438237195456752735617584370567457410990789519725954463542474191148158374946282586833751520302915839483898006540215690395686440778914368290153931924092925805289934880098419201003822056144660113873324534619671885636106652800433156174704406069905314151473018862254862389173701332940830905280457202793256939126561548590963806123408501570590377719115724694188108023366039045165988552452191163794629894346340587950394261689885889680996593892364682177659057056478920375448909836400557771179365162001049147849712536179429141974874467502992307904824244181339296183812495624143216719504106955057557226714842965160250819290907270786471641171062507627530163805243651922003700222065239376512384110051596910897617489528973198020920149230349021111652288004382986340012151332755960604581649946568188060236770400570677065966463378068789068755793870812691591912378333790211855302977734922722703676387872411844458135247581206361732365527228867780185738268780523112616716803701207434888848418789589321562899003722764162770340084089745649563893558985292844244653058100222203585507178929745968401961870431075766443624879919688197513865537715788092318676406156423669588963145747971683775025051713326485069408458078496837467216098824085075432414706720636028986674822268757343069143372706021242728643187001267870885815491887025818703160123731140438945469061897703673022617731262543464251146020000939972709261303213682861394551079271980657379982111616642206043206721847134081175091725340599399082251603912720485183223641643832017591880901760975579708368855648013678719666693472884968370695350472587674241833705393696682879684904182994839079131664283156772234900158714696280397172812988346970779301186395131663317273856902845233545292031913906623334840145096635042926052182114795181156713374411485632424110954955756529360683201980374239588711954734500948319864225011205343470669836901848658251349400815001126474843774569163531002784825008255648909302000755283412707154998244552131481874366799758612415718748386561992963518619298490730055676694685742365511005344540710227693199056017956523863082957128195041265130673201184195931969375796954748342470339203213971599123121263998869082085665769085476746024022710350364283564334719930310839009591348990626348051669351289739317652199604341488474209101427026098568507194113281889653599967543971507221157115844447424059934677504887665522843339238963348784563681295373822487222162491906624424271160272031437565398624328810332631351799549671640849383852805188436569695868556099411495322895058351242604615537025694315494350274234402474340626172804512510365465927904834841667145964760760356878536928441928378931143619555219500256875732873196974997572252512607670310551226527328257255563298238401071711646794053959506396333018181337647001059346291861282810240731668003194746257374220359373027767608961070831304874818435793240100110585694289045963563137600774301137053095875389469983662430952432964820785280852758728231303623761396564499755834922185752834243059446021037848062794267581635210094840105632660535676073046923579563492137874986103228232704464026913422394719500995338703020731919064004211467743034303938964961786970029538237013618261368780864656646633209939834390258877954767707348687995012951002327607843078936857506925846009711961139589131287378791219025592365044329267819726708198603308814127154673442485853252651945174130150557360030297508933994893876208051561359711398977052746103776575696015714562286987875389577556148727297746050160175283701602302658456123064349184277470347678123974410344571421403681013653687216727754319037319774597500856262338307764675066563196952071763607245455060301743306513345098908790979681764480304590100391754478157719550583718508803248033323258697834752789671380476979690902601584712876908468098477970974874558632433848966052884176230262004764951625095960084787579973553092396142750218000356610762513363045302218902266562623384111685539374465666081163013197134141364176772425645131537598285532139043932506042158116893978225818797861916865888806018509280543090995387040723864020031666543678616770498697287019333381437139026186700927776865536511325704149236529035354320309627723669553626596929241638424576969308979771885767737205608978778723741875446816796898436225579470325102324237582635047965049834347494488147832093204197686426044768555531872879779287811251941208538271542649749174019109311180506749796373452990885593674860717998831016724274535531041325240392679637752658798055721358375917137712996347739587365310613045087586344435586025604923316809330765421973771445600212130886307869248404883993126388559871231792924053477324742308505062669576164706011784209017538432542282340051455486895105619887992254656027732117174321584095251028555764706256463716500992572397467711807862356677833000058384946217115265628866961354644086422597713469395572547676682473081609041668356889846601718692803708255689629785279270940958734922515792928540487758478357718781617315782477760300720303769566444000792657344456093613415208556108231060330211440052704415199966692779475145368137902887676135233441215570360505075954280218059696027077003295556600886843215304036876339841373067006371259952766705430396967120968202369884135782431721617933233528193716326032132709807294460725589527079302112938364565084452515723351145347474328219632795850259479360653224113547675259401498834414371927430366567722484779980489544242565791585422648354886587253352103582564932619627870411474597035398053540048903184521955717489155278479197994365520525026286800899462405465623063804119121180394580242796692102575817446532550657315371698955046258950066452613274841490412337451856397682753330345840010130478597510707582288859953121001448902975425943306363579463736736865704162034852154944993389292872063858344445622793930296990198071348605339428381535961206470097880206157756547610090463198196967349882751469751084994624023880388789223238065472249705625014493977703577949910595065686326882369994722001782090308367204864433054729004740388763893925413466651241040871908319179769839276416807140950396216404661709218723648105452110532883257452749229975598363296673701857420588904115215634384616264780071706792914065445686590973910338948572737834563763635056653383048767317971077310530076055677461808144981623330817708289138325635570938561729617590744066534759630849029793797566018141531267993526622492556145988331761693565758524106191825769628463006144128343906484780098062361740120610502934207513782077244604254667084864659906582721068646567702316348607504855729934594556795912491106149875299994630653969962385675859019986321497248100291047437231182055289658700523909788078262692815818859138772166274933680086731685569688530885312644649281374550228507679896652618907343026291291263470601970014526449150437585298930780939729028366814139231384623894550712585594665489888042404514681047798886866715207884080437689661841413384674163770544890040492347754188014064494638263081004080625658406892599069060906203165616603319911608906152233222732682245839283867857761958716741426546797040471297564101563221652711909928222729671496158223336744369288578153708623037029121607405756072618698340885357881253437239833702825880023726536639916112687809852499981263926466784296124197046915536865000759957786487231242188804545406787820761952378398760409672294008614102731931917629894837942444230559625431188841509047907832700007104395653797901570253387544720858928426386881895172710764374754620259050769533275087595923819320818391773321596834341316040269274573858417530857521492587469199554226400379064335674416027013811285205272277981433992908728715206972202931352145819203345140848177094169966305610243919918341777120174171641490192563407422896060937974729542018965564427925793913399530851846225094487416761832491513167995071254082733247650938943539443190426808750189032783919008332026312219198347782525804432614187913200118801350166652701584831371637743771688243264197180774385585599144895071241174977921320034329727477984592563008000930104108956288863484851345842888764185622200026711231233932743802801969622009968766035471195646101594767213898308807843745050318410955834326669685347325794001065275162008381045793028417766625836666067114148652668072934460205973973338920021732605273249860406151379672461757673301404887582381115978625230573911110620356468170980341137778787983005642801148610927892330980242145662801823489753548769809186758310959903787827741744206948896198579511491408038797037669998222596645265604000865072262247102315948583742597698133891880637408826517727506398639423663173279129645789077620908820731829315693219331868454373764540557772216169048879488397209441634808590258599109191023817883643336839815156926349200175553356690627917157300494307930258135975946174449647265880746727653207724163397560157190158472185582117710655605155338475259589806388643701578546899033149450840298412840021174337183332925367604288081912266248593018591364588131100765776716301472754230849213815789460254987896266263656438512731915518582694770158859419001393113963405069956338186319953192153879151933490525362813098176946264728388415652833710873657641533450076358616268310573456935365782975915195399029961418930829437941511426266592173938002189212426344760654215330845683316977065837925211997210316450461233749269392224331112971962796524439559827830917511627888744692043821409787494752347041281185910302785342696355613403056424925112134353344792767594528684936776911782325344734686917403454518189895400299939365254120946660834677126078199726882379509636946246155706746624539229091688676415487180219308869941646940881527294163712068029474159008789966354663398454712265130092265604118262400735558987696632608666203237866584836049303768946869970095175110832015157826632011854612890160212452222071877438641714024337736666066738833932411312689111227812103915027072776467697456880308876961994113507577422423322718633745007419288236399785159294369477984834726947562942021183524754300490815523380214712987829371530000834193750661396250988443350289021622610264921165253860758337718701719766351643935706918936560406883742079777864885018569228643999316172225053639413537835261855338566901934346855984143970127586747710465008691988195388277199103774710554424392193750472774729713706981503017276810022274826293438196440185831383385904302475821350742196178832532666391334999283253570180742333186296836847213694950274406536786783243789939437757750102963093554386018287905111212472455176760211740199827045252146397640830567962975348873167399692713110271958717461251589339853367408510890777469120250191794234941083131829367110539300801423101768496125852853608256552465226624839078964699781957748871963904664894915602763395466624249201940510283773249603726689506911567800925299435947330618331409123402227810332530161060314031141394283743530055141894956047692447858964181316018187296759624847614993352898461171642648309635705983988774192594901094371246090258675565490992408773789259505423890409556462398560001653219738689542014591298426869778712160200148210574805389157017956504912253132649269789376616694363056667488261303252740597474703779287392626791548168268010555655944387705775775164672306980176196467763231935594904469365049419855904859645854689548834285881085340145338195135944509431352245365418682700685212758442037702727219468390266390262961759305067370256208291636278177970598254617405763658549269524191482635660208403982584515522674888374259638895012526225392740246302070947728874176631129901140783342672495871280099869636186637719650429526011697737612977270041295502258759001663994727957257097764767435176788811604634538706026561933074421207976292005140309662730169033519087398273688416410270818221320524954490834866609165697466060311952404632439583437424296282696608534555957157472995906544673664145726279666733700543489776987389566807516054492737842829534411288049217780958617852571006148028063467189052862596123323855121678451205313770967703022478187282956962819886352118447028196196330600649438413229865068938054222236798096298068759069938057600161974487859383964785407677011639210000014564262324657688982222563398738433272073664422347125661667937926581323349735563970915786347364093027276038448341637259216134311558404486982366966204211409257535268066860252395388127302081303647842804781717905104529601506132449833363352996248673309405390445360654006051867863797564785308235163149529855530392802975122091472786440285774108604530790645424379880073078058212493981152253820220807707312070436756795467187877955638701525439737614347451766050839388903838344799206753274365531982076812753653600976590951989418263467694146335460292039789375739158565074337777129991679188669306023662107219049253021805636105738050017246839917388677332717126229352300677741437748314552971843894884544219630379612341312673490184923758898107961461603984899341496781982239128175586069415404045839321727975087558573066082004906385837333863202407417938776429166975603869078547065206003484369177761922584854431130070298146016571979707331376170646860625600909512922297569065128947907113055424939859864414537805534822385723375116758562843512204407982541197440635811305419588339234781609804242891031300980802119320037161457289124985654213455339803308891356744237056800763485850616778537375746503885131972734328643900978899119402270293325428000404763654710809688017609986264168498878594635265771850598080109888407147523139092351670712038850212301151054522423335443585091551051998349788536153684341946976910701653051490428060229302792415331137150555161324974440118876070539434362310659206392639068570996391983224317044817092501182741703783532899670485685850309813215519986762051436518985287203490696545868354494811618040057375545726472862493695178695338695352373700891391603563504756046878506150793576556662290653824816586282114328777194056866427640438722348115254267140040942933509885506363702970168668720287753255468377431119715298125025774610819636623292994650467506619934633614657541714810691817992792351611207051983726150821658404818696093487541308776501755839391088514051702167636077474712144972473611778870407618667759836355660908497941779210580751671797810881876138560931135140012065551059132385837501499194722357102280222989857706507839532376383325353621073354986779814195591104464565955766059614854160457389271880203718956431760638189590631385770602145266158649954640544778984530614147355718031845199700853919976237901282323992542016959771190817164705811841167123524060652644602614430306023382076701043074512218396515671831084094347210799106582822486741946206023521322542229289119613888920082382068345480512486083607869253767363449140681667667867555132835537928393267321077470200899404522468388567045710245079308673060027481071607051374347769056147212298042086460150155192412977299458253353629627369540589011473947784295348525066292351186097010819487892047379265930124984417992316899118780679206985956623143309011158712816459529544493102734168048574837799017472782173686421526538787535611827853833829815149328050956885792682637266260124871545463175307590975899217660212777997251013218765258285475276769374800014879018314462112465862630576324329436930149984323013491224253759698449141394969311867704115427245441688350901407313507492796172853411777732530683449627956328762311561679078603801489559966127673162755912383723580976690308089093423087603627277030714087780808452373699592655103494521132096043791335324809421299622142811013636976515178721162928007200496120623725071527051911039598286291818404260666362589573798763676408230837403197013220790539563638911399477778227244830544658121195948021449717421041234283057625238018681912064883012354203335145217766555195926892739601161516624932523069211629755403112846817349678529468432210538596601939439184659154544112994431840437356135434411004437154899190445700558047053660189075815539691380090193451307990880266242832083958729035935535636103903055669070051531979341706141824684297289380603903864880971379523377917382418684680379234910218569550367866164815752133386726425270960704549668644644579218585599737528260145287805773682567906478083636691021882836316629036720104797832882495041122218834561454389922040196405917051728177086201409923002840625951685270278757442614291610273726621728334800328657335257736488286486055800641186556474050481407598385112403710997492538361200196839844318687928067418038117934418582487951988417658517982759119958341746395332161524830309849400228031377198679247890353811505909121492025694849755593593106035377597491416963442012298790972271865655146344122729917193840612154581929143671831774411514529735492783815987036855092944857017370576750284882848794587497393524700467214248979117683567858433600792211022978114880000587165801192273256280210125429383255778349178306368153050447631360175925270747073692401012052036692313911096930252894421019583603408285153857313326625028720829382927180648243704003374366586580261707939399099672982690558670747999047588813324088114333615803331434600706459397787690210276798994627634038448058389848169004518853488471319576951082543908574052154483776124955169181494451125354182300059264637779247179010354942212471960947856230637781460021914811887866353419355459683112430543316081197219673035394932628079065756088814637645528464099063247357378041978381017036637013252459212798935893649941214195233583282754978734955754138430932347658655707947773647343936552655809539306031362509035282529321632252002332388726714265100332280947807049592248865227205035433924725381088498886796980176215431860575992172542671253115236168916811625734053377172851433836038554642462824551765133105609910948314660436805510364252194038732317274874917420696071909488288520262814827104043101194678572635746868842654128769403242490470292997549214693024518256774037533336866767649080574460441645826855712800678738396822825128850726634516286878385825971922600794428906634018567774260511302748245820778089365097106940570538937772210013914337957241196989714416403455938451420589082750803787663051373504510689826949214209582966195151069982320956799343545430919110167369112984759422290698493114814679072287510163799370735949904183484663601555689156226900994488759529866028409926904061621666403231518375353896163492028819332073737661088885597891055574730265061730038012496569513678079934603408280144081970648879010247967613872463268328051728438914991207138230898985330420230406521270204609923896906674493771547134117772777003714625934533233061690627071860174116905764357683932549282709547548393732321120868487760800776202453084363948329940138607503278394511742528061952278038895201413160106389294614288557529788217402611535792751325285324565325501665666616469327793618670296576405738011679245388635559866097480643518140842128111445400762707948620561771787775720651059808367435188624550088518944591992668438621670089563586451690024861616033528007256764834074282615230717674803893718713385960492886333060147523336054597244947569452539722625105411789499045555916356102835488307942023239745728963196153566208056566229588721286634788250678900422704451837404661929832103376771066331918794044441788367084290053899117442378654715547521965914639503186166631507855099805340991504224967297597208765740453884846535369833116814073160592356625174123321877299216911647586087380866580788064979245076391587449328358027933138226368576152792281827402030140683273747809531095595892950976371686605219110183702605472990579785250227656314938302076564983572476970151653442556544317299241075858858358423084613281842382846552746814314420972490127360511777799381643328332526438503500637005017314918458134020256645496686848232266325718743825957273328222311403507363264558433281012678637339507214879867547793242198669566905018132874176670092425201463482557912176193957987246426033437602467714440266187627215382638474944800750485969458519467663681727265750493952795203201061661463900895056920063448969870268077455046757990957095898474328166541727828343657255241712032739092956440204794117186195658101858979480393180239730688914774789494246421427777212548499830333364950350519602574669182258971361338006622859923431828195936267407323660872659514600026387104266965015143821525855054013576325540331961748497388133202630992566783187558336569224410453554564215716160674715096707460017926326023385745294548212086156253491960347388425636487034249518283373821871804678158499747144092832987703653659415722414006273609724869078137451655623540207565684796978960957244806241322300544009824826925628724073540921058076760213803551156622626107837485634492806531811384987466784563927290313454007615350404694526964987176314960633920325759503314890730570243044155514259496106814792466868769733613908200578861437798888684271041475329341069796702971556019002456848109878124489674363089999314187022381928984539911276763104319651446173722469120832507139386472835777185148920391888619915890230554089462741328457659111353139535590455239802111693070974559418864285950607551882040546297197836066864179003290811681059114531087722221699590155731387686197658446148992124741863504473368398209603092993959642115601955627708253814811617834244311170662216876014994899475510905124630415577780719702811721231497301013233017457686495798874608441374865836585914088915634588056631337393687066463883986295990368607019754392727840631160401425119951762055867482585917244521917519693500751526900673736432487536680069951452255641736271586537852301480981605432477474077452510672770219242557162182634680310741586731876323468193408309983290661939935595706982564490624376848750319355572419291435526060410440626176187390381935581763646795951137877487915410466667859907187118138606688296015183883860927049622302978145371734319047256444417412903071062097241438739513014917420697452627936825374997856458918762262971928360181402566809597259193325187339879399620578465595276306670922865596807697850113394386380796328835751560660945294090612318567832742045237410358614329106271846817490548539132197158918354628368278511830269550009822244191192746920039707125579963934560740637280987496986302306187607882926062403900075798219766214030613710084265897604944948150578549091974500931479677709231099636072330862164945451830993944480696178923462693422660334088881218591497085368135632964512302219497296182878746713214059601031952322524659523018285407974169527730428286624568528231903699223642763167476841921712631388386698589444490529410170203719744504426815110712780106795955653434519392877245991413056477897327223068690860318861310721697263297543435166435135207709721079706153348300233773000181823077389923475106360016007463231044958711302369173903852796475899088259356469969008149948542558704526719995350347831232559091837949217202455952386753288100042759543645259524775500490051876281880746240835998436359311924379600272515595063000002396334813161800965806594303561231556140781192925244978814835495846977645813313282643716671191615951677898342833526875854229651626639302326870869334255535196029353062489368958356087261676802887049215071707310694169358027441164497748635552236442440741299427729322484960745924689636003944769703532057775202575907476220194689517623390514787043588928715632966673626951005962105521808268369909624545187232320569949578667836296998640067972122904973688278799593535218328328999972888237557248982431751279322565887007378761269547769989892297881490407700290516978316370222867128574771869511097464664880891835858952061068817793934212465046275676073968021202926703967933338565176166501159056403725227231692687089262800272114655235217809319600626027936604853445413610727828256668783337437753610038479637231698756252999030482011435743154739917178723053832728899055572896901437251151627266010015255157343335277323644480891575933719588340669928972980257680463300627212277497451522760377446944835274957983839387730238687283166265698451720053946734931471373680041738571521048335565007504831028402015622505908723085384637089496695861270856432882549621651314032982039207097762724670940409162824980647352165586744417837064587253230879792415699284867235438984761069773779598560504206284698090071902220134563834742785665597034150231028103730907767870943805054862776787284677538996537918057868922358333207119857342260900638156951507267674628880140395838251319954130864039770035991449631449355535183939098182675752553456622179942561719074990086783972711456092549788190559833233516605267142821773554128500594750198646090560194890119367583250170104826285929840868382435796048998077822217754468523269073679801353736244024374749757333831519928422776928917359371788310629782030344102938117912556481494173841698674842711885089486268995251423819145219791425343624910361417049794940517593097322978988857938478660667895419560876425928480276065206565445909217875587719187031728673600682969315719261306955037351195332349440125468539895387862185255454798635654479157797209982086204866568560979721337510970619194903482424252218420311365879090884779826071993483742694197732116500697744692761102199981706674795939955983604752491699099452897747993475091274478134286979310332004410616931603521169715744251102726815896727392133978511109486507130363808397131796863952268532195000905895802777444829595687311069878324905297128145441926069766739959076124002108227055959602747501043789305033144199336231941877725761158080220056805180208780728449020701688658430718359147452551245664073060882790479786939253153779760102892335113995795480654396309759778595065620806510539723759005609180869021450908291417948200863006223515166366721905809610804565089193344203656676788744356085013033036534802323772175705198307619473351981204549839306169103550660190400214305683863252666675985918065970101288653586891664127997113899623948718291114874200864704852580280687567774939083051097834354600650036292695570947711115242431950865539199139787732977347514023776026951522154494084855200390138467786848893373807583272977397552263901223850691694815850099828392166647012705786494119313133939504961518102487292683942397374939790498579143628551324772075821146834876103327369262462022867685220436107159494704550257795467882460933772977382275701825235318627733706725677410695005992327122349188359037016524082595304517726609390677302966885331105695998878111581110101093242749886054404732607207287769011471589132379808587801130659724507919323257412964694492737709048172530089634512850605781439572932699108427737786190129312915020074225431283792261494124430458798642596583916969849957639966773452314401507930347732834462824595488282085381033741592176907648675269899788916527621224298334794190800773456591353646176600981475844373905678719539489540953448464657619952300688244865947875261136320955726970877331895099372238869287429468700845740166725486646356216870145579353205155348182530823875372662199928176642186736604778489131742101382725162249993639848065254141145450942462491541027132608396604126011636301679936550986452539335712927620112343304143645543723854992048061605289513743021204650458072485939970407868721346694347987234938720399789994691622306853387156419312364056444742292780908688741970335608360325268072774956532445528105317223988838548196426909254534405473119844776589214212418977251451498231471211496319313063020210775914394470300897417873030955312228154673982605876731751075994273070987840475926506754097275151869226382749715187723869603938010600667565365281370917864721796113095083619058689515035882102467914168023614451002062818794474185042242703206880404752196127185577831298965219653798275571154979035809201238691874887981390179339512930384384172849630586069231900421878246359963255571109548367956769909026520940744536584320123700686727280742932044798599004742599639185908650143773508430426321615901692478620958766501862124367870368613689544830443734473390850424651661969371636127340827720887200222693133277973313137415079246509346661181576911270575678193498799148594125094708209648994334046884423637299368344097586431209534864059032659558603389504383139265751431326686072438115586219338230777762722840638676669118617211448244430383175781458769831707599285588027916873980804923061062671715046851056632150825655838256315473733094967778009344033984910879969931232960779531607173052104794524015364767945930385379432887674167546393376756189438366026165389615653026711524643981287579451437570735189092833425562104797746887348590055291523872361217924777221269057284265362503741701401133126293620496580713440563677011739107310557963251386434642924375464593011660406719551012200234447251496173867919611422728483292288518313453606905359507780609442573900885718245540444848400880741379612504393666919400429359485029373974740735727253672127570704638023732008312262750426887354885194499597592469223308440431459514659171211519180063926172069110342430178066102827658750352883936022454935570854304285365230274251170027234066743813890461480601043648879104353561790440919318176145529782726110999221066257118968733795522410669333684785112887277331680757383948674882680505367197182487114432063749048391898347040370956201461196402090956871795013020495410573840441966138217539675948417371708798358903632128329505551598208869395414732968762409252670693515446146342291336703534540952682801121537235489305895721794481192864771316949802156883387055898473719206106282938359814682643176104685208585269156135600557286397353678222734367693600315754165962552355460063650362360185759067656466370150307826171155847034454592869724215301582846030057115714323882390616219352390286828659914845624020006490947178035900090490903308498439822639019368649185870695806923020332582074689621149746650853088915820381870506575301090543500550147501797794217960080140747786309380393222781865010379877906506940631691089784800693906813042795815191550993434298159291978961223138579351406754341733381021041687945474319023243076230068894129642018183395936341621188429216023495192634690924981146037294251401860547323093556426709215056402118101746402001197860365211167558869449746912265925871620976040223265562420441359828107988152334901048268194426888414487870450277636573265890582024299110507587033261047307061252922177279623676575909815418003453888426243555132799210466165654300962710054915065842169261849023358160481929668975885742404456170212789139580243193326954466889189236796783084015072704834352269228158659369081259213365328717827234243733317677369358448405525878329373521341577550424110133929602707269866683827957866840360597555767053794406788187567043532614505209717081418464594111657979003294791719563265142768656487179689499834855737859138339163241900566264090467571308816047387018103082580449848551809507545070844984234500086471215981397301302792403676482732608094224045991051188473211960988556579497892811165107924565721233369657207020437217855919220504762986104324370843893699332696522067321900639614962179057089174987828244323928081119857935079964860506818574792676974946447290682563639218641566361189856472531180013903948795451385524033512532706484808712017766592513274662301753060176639748046676286516453118213720085600725082108391587552522964402647714250964816686348942633067426327900147145637198509951221348442509371303711035813048636482374587847583342291077923281868558100874228971656315565183985593541615546754433510674968024798403332391100799927397403736198514225726725630506800599798290847437343615694645325774201675818412994215826200591465783457268271168582486350617256945857903539537725720664277399174441802393621020258237874202524860728474991784688347650063612138383900171848253353000671835729388412846782406086692008101854557300171729073783951399854551739104608734315288197703283829462745764252799183878375003750427633783787553589585959306841768829120943836588911686031966169926171459547992373689650478848453278707702625805952054710667650581939178884841079730725828427554131416164016443774847006878240092561971408841463517554258787879890157009009034599751776757016353397036399809517649156072903211813695736561862524384981575193104460402732242160412616769106765041052650314332418431839594848440726705929169985243563665303380685860048582260589899447821105106932761769605088358327221525804368100724340293033970751947432841593958232221956591156329073368458585527872756277501021209253710298557408162802543495800811990106643323096382441745769387439520976831457281311593865397534885503696633339946308518342826306909294346835662907352291649746328410034825571352112456438787318896286530012376059949619189537536364880963028983820503255298619249900148632745631322663522273510637666072368201579438429382258690309886664598085309660065068158185888127588673858003348630471514468233779498000162541224032197225238732140716436231888954636154604474901376760634916343405310748670299111759552331428014847314640663295100268028145431106808889956337179629097998103342526955448705680534580175897403965890307594950813376612088461874996788290778358686046036841109712963619512766660190763098339345674368537114139927887477309798965593493969847337174126133602498361200085490068409273385453456748192595379088578252186156218306092775341173804030756469867599882015442236237961925943149335913231463287211932352039109420111499849686269755160505862525293113569598449474811948355454845816789244422629174585755907327488932341372924201599956261481481243386871138273147202770655265793831530109515024214680212742543729997800491611377911720064852704768922739288524705493816778835164025488641884748824096342043718664181331557550047878929734997483838238444225489971282301375167887883562990214282177909533461455838294560093156100966398403264877893118860585114537194252599265492290598994631858620621186059484566337340244304452749350171527542945994758960834992201442849292711827061128448005590696104947633322861045126093027859030226213583181536848428866276819243210845090957042334185239559454075464434818247769511066846366360508902887962531975833321225778391463335494993292509173099852199834796367730442741969103557630351298270073566780388972634460051020023614583036385026618080959244876491522608809657050125504937254983208456871807750171391611278317575446088456317943856048335209365380668841278487378289665726013528790672564755217401732722411967776375707623739036585226811985060283492753960127391999933545925861985602106295465378717873554562041586802593914533841643203216949428712896175598271909187238950359204894913475622020604653570952417177918801489845052329096123660235799185388698865540707523711244695002043565046152849758507135198281016905199012790397869871782479344281798420939504252023995920719916108942757584268924216344158135144045289369533424585481512615837066737675426052671887815350440625307030070063974858086539076613983412739453316580681516933255272073101618313842473151437274102485437039311208421126530478371457626950752962723525884921199513497398311350868675293642896414914514449250819120945794938371829916648434484203800593696912057416005159071907000045205993771170138448483544864598119340754527782237155746468982948611526053405669832839109579203688687055311275696033558093558018625564705509489373462050170083497497449883548963452019743474840222002048265726931521172514279793580803200016317725975771502205995452328419174934016440474618959088905161063869559807365109463528589643449233521031576352357288164750631971537048967608298060440897097658827319688166629085605942821632029811011756559638891170234330055447148946215343164210772729077144025282111379876899414414483735627187347934950282023076646196797474421926524671379038964298898892719998952943275330587547874669954422416954882830233301391099126698773017915604525333439818295778522751721943487061852385671601586283759862820763087640346664996723403494408613467420749408879810079338286563822347759607450857753986099157924683243466746261340183168152846312889827072235322366060059260236321513807384648601106505281274852167827950384096423341548555901350932693485665732068927233318396326823539480789085303146478623672126175013093813690448980303774186385066116872337821577002672213246756173181293117462684056846599109384327029929075280261155193066899470798263641868084660356535297208337019235485058131444880498816102469931965372502603191621257170749986060049094621211508424179089820361576349011233932980590928080326758420996240099900888454467972106529901293543810832802403978435656796112504929476167139347832398920832335513828552058819406751983984345054141569417122722196395845192929970857628488539739068299108195836531122459548541830461863631334914884351071307913823314958107809829805492938560747620744426534348333129938460605062889375887436461676722757608400575899076121993215866136411561860553072397854128115022346861884823457624871841886830208505739025020958899263209623000691405264470882038135675154411188704007616877149437925605580844034390837915811591969331524130113281916738023268571477270427545455834552435952436299205606164279938621252541241074373929274807193808192029112657434332664060964193507021958934203903059900079960458385500131287201257547389244640599196659571264672645613543961196845490502649456796420764910340085038074986395613516796309267369526678109683651283468062101256268185430559452505463465962869548133228016451675832577599020008438881219619309882542966547403217682287009557701945632387167360645207104045158206472158977395354599675137530104024694904350128605049224286734036731251367139406155230634671705354539819778775137994952103954281135947945641303727306853559953362076775645494262423184135744425207769125501436093648635871849609705023825840043525451410134748543052672272722466647279464884212010790328629853370849480322143740178858910318319925448321627206865591061077447315811484543059063338846554879878848137221873385988780432318709532664311013329540243109957620938215840672662816018096137772426309081889582674332969075395844537079049496535554936561382621185713553403749735794865590694083169782128877044248075054264134596598273580221111901116099357172469223432653279419703348691572139225899360713888996581262326202708981568062723625114120660347005833165982808653532391958728523859088182546437022158334802096267343841937513319321967833958386361952333076092888017941929564505015580863323679328069851850591159672487917793515986989673610611243516108222458522209008032186292766455036345756008255803639482898304385491919525029724953132830200137817152889986659381835875922672227709693284953300423097825985855858666208131656710806679603045525240085684826454479272479543005517433757959512612263733750003225946185576935881854020832290930147812414921086343158603719971691559655805179676708889496379343141701275378427825054742476238768863321410688117741805284629250001391008014579565425325669834683204362892560583680532208110064336198722357186843173987521588465838109376815633778167471607396262390531003606317316081501409555027765147581330300957108672830971509167686074626638143095066362184672014817960348089543447466422118031968538981965300088620423770068876916710092523029813666316646899747435672842890396273545300642874308607728269031811641491133319634281970137133601687250486152642996798120782607899620464041407073740459720071238142800783248120940899782052796455219367648991420237335255605709127619408479022418609877438735584137422888067436561276915033528752953113267661833414222386068740546491412260369904908995942752511707779818710378189616734144672249769922892035835919782424158219368138707417323902988073134584790505714824451693597402163264579361098290411271348873393391716587455193085372338135062108147667952133193882058508938134253320116241991719222164764384194424515072440858279882769598887618733137170952407574272387537160870710134967200358709582865505397729334030967393401470527667929769211132940293887546677090189512846140334289955916777477912383646191758930313852233898703074161791573996555307835375602127397410000081257295936266948153010989149110631566256100600219523375502874072145240971779838652549240767588652066906251241947167283703520333336451236032258598888944342398740480696368986969866215232373887703364697693730530668425820754703573071893412742245020119423356427912655498029187287363524928182726104634407640615350832269866678428278260043924786329422220041483692308401265747141773683140154235969786475602398829559308835038388460376048870362752160763091346029223852939245842472657915424581557333795388962894236096091840222774310663252068498950552510782540724180122957033216259618569515012339370529467117972823209435203546183322577819543481110191159200406928574362083453343779820194064433466180823283278884495849559209517705929639116405152368212826144748313538884533120490066329200757439186781375084359291515537166240300046307573485509127844625551158628812802867860107475607796298338224810914290943602256186448170415406585613083915324487843350080360591589154333905154082354909883496875297156390464666858927720906832260303449599563210857540544536137787756663172995481868593903177624060297733444456709507666900704085451200784887849515870884064637422440347535049717909699135152299208632755211206996059550406662456845537032884078422300147516790186365032164163496182083133719789368488166955280015388397765627423751814008921584139903012776945100120288500177465591744376888978691719040174486551960688422866942669080635965541563764814002170862209278047344055920239167559279714848806118119723643628532969556979707579954075156215322490248974819434782883386878066758077817766561752045152706124063773000151407841583112794062247190911001918903132418418488403408130186176580609965733798667328436288622334532131526876579848697002017014993522967954708360584626769085330700170696229597542940649177941160626981004744432137113122082030893260010090860269816439329822464443380589090976217234881335316463243103254007094740309470701187855049418186779653773638416941752148233584048485104116139088346792531830687901998499819521186645597999022859815703359727620626640299362641289280764214900920426256176718554730661058942753088239474350094627473888318799462903103072975997150625086052818964792388637614878253450359241835824016678944032038653839143921765121329581677006588652905408447555867815525474105169717514726329631527185448050915353994226046390483915837169967267735915618823647731592547568086237372543690514794969133288147603352656158477665021752089678177628107040370863589903842369166771724196887785705308070789135737802939352254175283472946164130825597896608609660094599269969405311192048599350100982915319854150875167288998248018511452897398124428180941907274887350792905351145039071856090086585015096734904734289640768011899519648812035203485942327169586328377496775310381060615446955946845141533519088829918171624944837024652731552441436772504318185053748438082733972162920875192159051352684797581005378697840834483825624240123134874852433332275972397463562245788276310093479894263852715726186245492376934206259282216632373486834568028213623168904807073214115794730629427595154212899509053767774065561707079553546116828895611363684446222825497409067734211072155527009621534260679571824001683754898920282567102330323033151334383700106266194414598403065579996213925197301570572594476628628123295388987055314089669683015032850940192252280510086020577297895429805599821306544732649083455246796016413417947354571427624506285515622409713697081672575109173640290711155692879662504635725549643887463178155278576656379446570523170752553917815871752091355323218755789036002599693127217972861534763100970281884208086175897414754360217367713471107201373197839452082569613302837713843780501049056476908587300773027253152472130638597073771648589385302118076851353568778183806536027740156519137959377322465391318942923441244712897581400449327749419189622013446912351693648235291884749697665193282040042298207890037476285748773205985333622847955741709264185453093677548556070375245314897064878887960802819800524801898160819092211502201472512306508497451012230969454767343411881223994455053246661876822749415456070213878161664018395756414441983623914034537108978201264235097007527292284174855631840656473296793443599762862740749206190986746131759810504673980740094440873606406732001664456630557958137157498769145681526028069030903816328482578479073374897755251796101096588736955873152419043437860909767794131874491761466056919251983846627451646049857369763630931439984515044125677332615107592286450780154539991740417403264713187835809954491552748393140886469095775202263447543476187442578425177679464801368184690603433315006809224940206345960763477925741448526501921107580333755933037337570034033606933504257673823130886849790221134487253021410841876818785759023814829732396667278475236694939335935539322622225163073959435578439520972903348509728452302037275950268180640948532566803683261192807335342773548248367789808871326259216373184643503883853941492242809240963663466487433513742418351400185530001777546416438251221096704389544448302022728750135121115645159924928552709821776758271281018864437213998371197603032249073311042967146141267133953693058126442023948254345148996360454968159865212444166642040835166926445255430003062211616753364109603898814684157521496595084234278190636229328708521661088679379001536154205028024091720457247764855398885219834652722775208890322479820604059639998400215498716558791124251921395296842875464175517029595923790058575520135201491362710350443552669591654327479741476914724998877715231077343265627776910835485411644081092196516227917021987853572874826643497272200752945816027825861312016093297690599894362721362600992789658088022035729065928223751418482229446163058986034860992700083126449666799199428676535799260555519052714534706383750301675370186617800999738443641041928156433219005356687502621211826825381947611266848494815474045318950401268297310170936090946168755789006655094745967848925027120262715715405423233108819966476414029923559818908785425202738425268924730100813521317107071463996488016524783489854081831206379867976435612525367883620898369937098428618825190044869225947331923623946242831571756895725213938897605109853415256129785421664384331258340760729775282876912766475695787287050258602852702744909987997050790573707518513778916774368382243979226999286779464571062829163675497517910608109232348287891837292148629018058851234800206688675642565061994339910034338955195261865540319277115837915359621604677592533203246990507682734259649546056869995277632567686651910177686231457828022640589635440218796290941048573616961129347463247195984902326926351057205435096074081277132124797885916830594943353090917970057829202490169933724941941373871993502740337603530230221612139950072300107971998369370681000455558998956177269036559742798795693364129601107320525793282953631014173159994777850208964418427024159626864619875844877315684470743019586298540250104278354750850485848829442432443121296282625539927687886022105745371876502903248627589019368100140512302349442882664636358768194624368100223633994325945809715266253682212902183552207858827278327349549841956335661516644604805392657596843833036285243397244346371961548127159622943300487710035585689228363005268562303363061701423022210096900079500125472392694778895192263271582840832200065977749726859074004798070455508220963591800178934091847198430196606626061367281717475194692969354064418265860331202913337020184533980252369610231186844116627776664172974572867923028009977885941989216846546783137533677162442987416943538168825109192038104773402104043959448677227507721302440941439922025663169765946073172712287312416800766270560651101761710065116519700799083896555300872860487257425568875187762090595922917759213184480750507201259611071453564142478412907164722500609681754582280341370240404415119073264656886676392506885749814428636155984414304149321321936917146453212256100097227687970238791214178149076155816063333234101426020204040252001224363249551724648788590146423949942882571524861962388147640301619785861618947588461792413805896179049610737450923800794014155626329737771240042929410343033225951669408247050923073948426217534722689860362455758049951531914997256468748643410325703482747020942859727146014328003864427847406507596821561985733054761449790707490317118523736363252027249812601529910011217572998682644137979199906818714794577138486025943207414768201637779668424778577646712946718005206287689429640746378597741268626531371075207345848938915922457656164595671685000162727284680239776690623101612600005309993049857457862429685771557008504708471172972448102680085112449417836248339072567588714559363703314727307254235172820971564128158469438822529497956925957857300861665903419637342066505446212997779249801333322785080153716692453334953789647442812056066483563851319655173227355303665941133215323095210509507223889395343457279185783848199543490355651304697896830586521833812093875138894061458014860341118867961654690573071489307637844038123411060261067766810163903357533799120090860259720209657661285031975162302996747956088481264915023697939337363196998246483622152690683466863726773383476679429572739049413017876565728302051602575260554753296991863116253730865391081473896157217674985001337925640084669662210541688935277489941487090538125458126414361114453528032260652733347833294471870700322939788097300749021352944955778590041590456762493068795957680899783716930034435502131210705154686661434751513944725242174423113259659028620387668311107149326352316072878542871544919482121765635099883791202934169925920418328344432213730037397334217184390571029571784747820390891140772669601410592688782861945316116866106342543226093174926585934222180894886940057710951374647223094003884240705480348706523377125167468223616830931303632845920315307635265791132321633275914023862756742817764366725317349797633393674218542401999489031203906263792700288017378160488601585253750547178975642207780196311665600508757056148607729152114312733485037064997552531636055898991746303942556896412340484797535572879880713401817689113998565496550642615466955976916297105870243759900965125868159101736662801740020896609142621954447399148100362553803449785308227774284274668099151625095848709139382928716489387674988621974211987402544675950100994483518202124115012435946421112890799058151535421592236174173080308765021701499347351803149740998092632462664521874708545293980991192044629093420426075315852334040693578467907222516794609429664216344233293185861511359289555255367985589899767466146023465653170207840070773771498561639525866867373766815448970327095377131456485379805658075312361313482769561984643583550982015626772286306959536699597895949878467629142024852378780967600937112030761993267547493354891813440901559984664437423190918166357490117062185374733028600099580765837984985565608568126998720714350940693219738563737817898564929283763923380843575921173866292388709630721134868631140521486110823819094188619080333509362004791369252483085830244833886981154774593619841186512741064729566768194793619088788506185799233274923181649506250824927642248681492857285785785193917402357248438415526155316108800871465714595710019405707694727690856554748417366595655058745933777323715881868148283996839897840836605175110911859690334594633667388896157238493418638441021813279247757233240335424153189426923816996941557825919481198248486839148764936918452752393437082494571808611623917897608118231443999572235523420379334544284852881613428364931670744797971081415172965095605036944042194872974827787579874655842728206759889603565607533528685883527041974679489316404810994345417552443375964839691982970514246856876199184861969934706750751114559424193572802562799805884421483581250311676057698491930286109620634371437893055842395153440832977503239961537305883276215461610398037385206910038891203845677979917409611087796105293083749628447097045313599065009232698355438394384173153279745019415337220119019258216800000668502394970514453427408044881686421599918387587308096057289972485372572174265589067214191411097216111611318039954192731089460611551449100136709847327209435647818276781151104382645400118019473231065806622057305681268879621693601952756446773643202274145834167858002551299480761047077286594347314664914261349908320951371914390506096049494858496768941518829086638263580187599702073282242988054854570897896774813361599861735375856675927064722896073154747895771466154239538796546599464003856216038843915881858043523306399442461820944321346717676929202457783867906672643490124017623851183535812231477226437148498391104332706371917246539380029274826640465065759008390699313047947327108213026245462509382791733832610979659409605134671491888758041375248619215310441299892998416813784742916451175368358615461044337423318824868843925152892770973242847061059733482103964449541338915721596361451415571720528950721508097709088421576064435210195237828564124792358091910415621681053422966164048745319708319801830204041278237269994962637716308975278152701914376922339912356767451084028673381494369692099058745289774524288825173966645283648623425000400694445367439457927434694354940677400333834710073213371064895657505443567884336663396520386365189877560811647707518029616222124778299556792008447864538879796275734331423255083991045985269612862259916759932107176803053106002365742575015332566466004874963695939137062618116314467915384755579972838414958022322846859729629862074153379841524954566061693277219676430983107992239951058776789116254366312042611829820376289543125460779535955869458922040394158574866517776595729583656862710502268734411023711525002615356825675536495206555662788892588978096466664263996069164511324046352824031231142273862528221679165373374639180553878914798116528107854599532142788550137935663710531458101930662434919652952668376757669386402494044193459229233431879562920842875411085797751768177975823020333314458875757225452239312840786658554555009810053986709536435297190019307091817838216036473388040165898303716987202842021953176599294152469106576553716421226099886861118282010493059512389169602882134014735920302389997476986468222003303965882029613007757837997405957656263640854678699155803231735336623468234799877089160383546257557427154419034897907599016258591637475010008306826930672173127718751645274093187253387329793301330282393980004455828354182594088409170922933455666376025172266544968298472872677852230100732325907981811955588782490379169420818901461119773944217386559513757286989566085117180998658331739768817885562617635413671478706607862000599690500302418845872284034679040346765136355424573951588194519778005947312187566327245844276158427357937954120800152152828397046371124047528294141177178707851269759842210920779652922239219680531963482369377464998798953263172635827517589510317835339771595744770447964704338569646309260824402544414748139972228797938863439020502091851965414207057346050727838600664865274013599729469506921077725284607345851404514304465518506995368413504332859514410338007617202840906488631383844689192892440725788796722188851258135288871343939395112826137226612783699276665636125316448113637528743301444858030317714505211348143979811183952979764939716453059712175816156386111749582311506191098444963743353394203627822044043186556304590502588782258839943743842749747127498587301710923655024646423251488860400527317400984723133449832815627975147319261435475119347905271255054370813567648555349306800983089291136828223309557171521929775573526468287822405103064385893099413856889036214883357050986646228035593930482356949390152654408117894509838763676974732350261858872195041289352757841048398119459425190764302070619167374763531693532528486313021362755109799873204661590296330184090011637169478597418630871705686777342197823608278975695780536371230321676829224155441856147718075272732810970905200045800962012863948657856151856416280706238480423116707678735028182879655901234746067901067286542553254923782243206459357248178001547998026948224026968150978488013493578525307215628122118358434721517244765688027706730307136062310791529266815472827472743439710954719134175464635780869118702366264761839052713720705014765487116451911210607042216512865193780710784374885889686070860715564439295639782520851368350849126076286706478581282449400215062333567130228309493796127911012111214329591189159938122666927410115013448187364791951275173845694903372936778209384021475682005255465080584775116563372149842349127186479342676808398496370930814329858589965822170864220927698401968847950602700151051587147036614891075997868802157538497024714808013073800676956913719652518043118158519660797415995669662197466920085609648447892894740781687246965017741483938384575082608680065336416551447368920256180960654787948548925258386187872648391904472469114793548198393568450567967788621713004202675804315500131723845496013978060861495869618775927316917105469909964298886102881053324215321289510234504804733435596133666641768849033896525819241263647214310342555705059117322144070936686015142373652204530835699423331502632056326275169532287079134565388582166925506035471435608772325565939915802003960701513342946963140249207294340894019566273503856086056822181000912228819731865443751701302301221357693814460986346981629716814287739562307473136037397175715408428738976228065967875821631265772613704557372032804116213018470422167170579287089922420619940719655474432616220299222446796752877269732378006393119235698448593499256105946125863892762209613546194229863228320136012872901727386074511381003186580392598175690116175528173664716304242323702908137857271281739837935390068233390772781480459791424791281760050527607772010153731011057874522210921629670041319787271359158756154008198416102649485682083107744781906476315301788785481433219177195630079006208061759175793258727697812516529722656300954422372834610223788658334826394255079555093987154541761825210507995378739468786042854127999759428032621454744416475250292243135901966698892008646949990036256123166603586350221520202451344439779169268869891312984254903501745927345552844855448745879312101502107952170517885259134868087076707626055256928952848224667914202866012050812726252328278631834746091131942487376022288824909450942937040351515692068879799489274201009619813996900053588138917568734192792983388214358820071699486946685108357198196030269108601533574544904031771985573388368076480039812261094649222815165944721210543586126775316401522911843697689339202869501564040251526133372503767370866650476443160025413939811269476703620922289331835451704438860956264266263560121546024633711982173904513312560091610133477609137197017459186741482171635587285658207825537602328097529875351733979995031240055093234108016235642777661852398107216204127707781039637166813548333246631178065471451973958204193543019003610350476787815639283252334589964822437372969794347954437302814064260590617639866667161874408002444106808142198754998683188200064046859943468083471824513735021700170344584870885175113885523226455591120704473378496584198399875340490623857890972507892367921830171590927324581925769035383128466700483327523161201700194050296950954774598870325511405438344233417367921108806559779135887716460966592686985620136842747418397687951341470778703982410258858272367376786637284287806333185839162495948783001595557035159584576058561097481872343857822083131281515458456318804787515221686517964679102132339452226155292336832255118321625006907436619235707089366061525775525410522716269691355506802437101146065004254865972529697045090071273424220233641084430708202514248105548319804997868448850785770940881363418809079081731018477394338866260637495593927834061799047511588520382124391736616114677903444393726422071756934773251374409245984537343237191087423188053013972546430960821039093036361790794437118554569966835868071254281327143636075908109284131497577173290941086885453063101023989888201301027024552953319785697147919822491317459485530215059235207660126793142078931116146594972834817228093904050801091165508674554321868300165540823670171601875607677151724171977791915586371604118342171756196876977130774419695358623145420651690508674106623063525508171592076417058969990863298248585973405457116960210877263092248378711796955009932220216553589951572894438462338422953171510584952886958877574793041923736512780376580606485003609162665732343990496207606361236233862502443513804939787831301202029271022008891863254872057701725101705683216927912238896556191700596461166232438815801155825979788257142976794738145359064097772245675971194819176640720706830064827593833025069401758967432467280849611929493307333943021746889276617266781844878419684787960649392872363968484195521560345195710529466917594535817744514640414298403307561557159486850543847373782894552852627807773040896066328375141567623084537847691647065322437883247409990617278623753559260938632973784808590232893752139634961256420083380526597673689536080959637512045566342395051480224530843685863641469718136497275160555028977584520386903438304844783222741093728186028005947600615419390239714304061011082317032555213744933474347803781679657224899334481476685659219848358360861996367830556058093506164115217686883552927499801042646452059925375581633798954524560575603268734010712147045568535085448721102356123476188138895282615211526281041929576105572636800967697374406507157290358789983916139246369060181303598874381231407794016791358165748702602936102583789336770992960716067321119814004702748080441939706432827250626460495646278741917240384018450603285576869882975547147673469300240244531156385219844643430237194555631774918482619969974051866397132463206940662278216519517599540596926261583829811225019772574783844216718264923293054359153739008929970366337742775739058571216345162395546552651999149432421388079864837452338371019744626254182600303989780039892964478805354160012118685003980952805292295661818424117343031450241330538752581309798104528560053939395719738235227535772620026454674394090363084244863940018325485250577872904831643656594316477213386309224924059371034954123569890833157302924812308218429930868913989367585530911147988556379713167709013208564329020992170270032259992025224599941728038437213817374873533917376670271453623133575348160486348166707984701372799905345245872441842286061595475141766574481676033824762067015858401036232186739672293131087866279661708478179564913134973602082010529392821797424067310932891558010648013098496781375055944041351314299562381823862137713986616640660529982261220389960803645662509857722853060527329527471995555893426765570501024412936950584464918932665161423583970848469007259297185445839663316103087969210245345115824420837338523231773700826924478302207800342514922065576820981685826450862403225563441536017548286202049734224973524879806475173855313793074332344256150867101485883114493633123518709019229062642728716553356951190581437284574847195344710874469098749038222548282025390510462710985848896087990479787506720215071822710159378443558961427747210971363116571234838991678764101874419428656102167995972643681676217874039514026350125892331843852403397325603856462905000218595738256632025848603405095481090674321749974787534929526449553082071865125564566045484956407389678690501220075985599104984538780557183333142370081323370144276520414205046261833351641513097118605393248788003038352036328741424653898740235036105347607090456812456482446273901134840414829921979270291652643933548292994256448615046470311814666636491789121360477267935607702757034951701891320963578890490783486663733777435299432042917683323159228923661670654426755978592822799901864912418008776233973219393477586705733472671172686728118015484390107924621890285085560797957353688528665950526968175630647693175097598399098729323407575554975750012274622619066794266692901722661433558106615166041254259857278966603149086157226384937420058707946829686025228150999492145560924855292422135568818367444425847870576953255173512042532576080807386489809920618024282485647509469745232355613117720892677884262483930150817362191324067821747489921162857194052228815856653866128667285360210451446624837283223543532312858377667588654390925677467484538001076975355626401864811161760907406147018052244079573315556807288066031631817719517618014676428551766567457277886905345808356254248494938494915022367446263337488368492096728562039008886839084967955871942467092297384638097754762838793286981903519265909247097097319883230625481530831562508440731910072961331093613770499584085045273621506499348407053099405198524936665215583654437161126092232472985020667896780417893467180967925948579446365357869703351152549276203397171724440793870173207606576801221251340251440556139632693792782589279036862947620848661936942283241593577279213474531580195865613969956516941724932611359280572476908350510000317336659721272652536461869697134553184645169737948360820499174971144067042779284142304735101829688073847680539518456395751933342834589958329435170129265492753404496615673966728262256378734854775799759465167976127795367928904471974929991237114709284113698956177220518106694019849539104613910676486775270094723639600681348747910269292446213671380024014502970913434275748112265817114090310388315347031813965501172273446445795484577581294387625353367296370130709722248037380469724494942403264131221178986416505861240496590050637626010364939622978271461528335449736553811162973380297784121842359953144453281497476633000066275310300407998460520969494954604904201917590610669828961000214098973239061299417609057660685963383446173833271112184981244903690335415552551682095909158789463315843308495271321755545605389595767701274280738332044258642161723508579270251246922039971327637553929485186134334141342432467978315050343670130131372556855788995261603964563356664115951856730330158183897684994952377234528592290655627884915205745144293543836497801682453833396700971013677610484105372271325898943524758275555521157435900181067804935101373576413987425750438572424586662013436248399816269857217799741735223743266884183715438621505366003069993862975946036723334810398618149856229953290357365387422594726910738319407393438597513946548351538173630411367938644994414856752393444122280987479459448477366587689179680368067411295130204574072562876627939036695627237933359430322915247284885610684400332558367771167454671219102011869795200102756843071573639073868412494041222327763019809537418983819557729500914295699063841630806713703249700291357268117086143582921671196318267130447573795381121274396311407717548857828030700462630219105307323469811475599607556216018685193088292646463716840376669066042361671590239463390831542679449698370531399378055032289190189864080881131829730091606505512247349066537806455779168549748328284918999444896451631008630781599978621456256962917165652626394422354539771198428136875576310813225780733282179509765148861685826474434781096119980143207629936600596806196283912008804038124320679295768466530317104402554508929524545368657496446693244889202676779637280953953183617135725340681065965590892545996553931166644357926495187271528373086184447455278654663076256417759652637609786426649245100084625288472319787106928180094335884759099311790423453059220928390847452847341337387139149738980589825416345952495311685830531614748600180508276528088951917658389767977902931310121630640143781195323092913188738618518589804130700120022265246457642784867489601901365617330206699119255174367057080129605942675859672725716352424392385671021699805224170525327643790394881142536063134964767427310537988658063212577235449600031432572868794523676939217968311220394558383150999405986947615377105018230721167591569389023463952102713972710456398437060884555825190606684649014933065072053449643432197821037073981153091229289989156869152582995650017980372328651100953503378581312539868627628585393577482923265493315795453442017953721002513626082399198065976613587204839423950275974415753152107631716166494591381874315280792917170132974865416138219688032977682574065760368127007473058458986826355286047650237780349943952394647506744297263843426971248609286248911580067043236457810556331456709897999307813227495001689102134421001610670153532489366008831919467670020262195247114031018268801373424096602161525705145906993239401581806020106819469624244158064537413722615882458365152633844118370756973848366899150326607127436090443909093947638367895219384817143907622461445731572977767108749993840983219713519048413754818549450213883560850942536118254436886134777214741271159359157272150039514371581970561781125979062397995436528754872523501945988093278024279789490863056940918823263932015526449946917488433779196152437461164274417162162949160573011637247293385735056034981524019789406388132423040783345438272111154204656347854162021263403026812083007031559090355389688844848608655316995144924355382576550903862364751743139828080992334542138040921879390724716348966968774330389972337182715335348460863374707536495492211148019850059441769571587615963692283416212424045310263222945118269204734544555551508671506008415790827866250312537787350057165206693655605738908254572207663324505674416900696028193162450798389366203006767252480201678430223311039621752453783556831944060561153434679703950273376506026584331106489795361691960665227600532505240007363972184640950040848193941864254349488485809623108061625683065818818481048520375067246474903978436295296184204565977523658585790561782927779866050160186956242065580628540549096362203390812087455428467444226698866503458910995991984551927227097526436324130755922439898215901163471396834627505630309054706599347930072143656095912253776226182469770533726276808757107736235928541437329599711994460220715705270876696413516684349745306092259521265576873861503126874040951764503886105500918508564601059882013669607174036017110010010089075538278868125041632889396476325255597552094443543583422056299797070847438013765780164972440209643259599379182647227910039161104674947379499166377443087618486696094609833551745621227781040639066532515649254384190874480296537999884710860738078175853766331104925319848959797520942214987197153588983494501889278357554303330963725911896400526440267741089786102745597294370884453238992569185663092707898108437995778553255141807615349643679050877736344563862478918684791287441112058975478494825531419144560554694647895445654272765302335702183858867158833955032358313648858051793435954551696192324815882417031596613061772344107506829020701368725184984542951820107574396102973938133835297220899768164452019392911235597227161563421403984756381675611569806994405873793121854261653764138766473819540125583015327637456359847068493426892832278781099209250427185794600761976602532230027318075742827048430417113208640600458217207239921258691390343287591058369941913311173720037571553971659005614485277716826035770540529807537997252571249548119926395750416340559085524884753646392215750494056908134913260290082349933248332391383949036731810936710534523607244374456902059896854396500843547810334812426169912312671693929574654448020784266181844675807408202933829416653466757083036887221968289490912232261156837796316162393379650168096751653729275327547868905574325611517838311203445139551779902460650550638176152539934763428378585544045720641375151996683137203481852135187625614240150302008976055966679582587402359767747382538975374999066387642206453104606767008058198037143710900045781919414328908507071026482052315603254012869005293585415006641502625365973150068969468651191088784538067901927021984476336714177724798097445724684487705883681137636855304153088183755031308237152861467791359527227094755171594163933823754210442386878955493711656502112996358082730089433448644399953031752198718994886058615233091245569061927321138684908263007646879046619414567264023809997771985784897366831928504480083078873691487165598339971234296475981039481156197396318537178319936839303111375332689084519027865107454724861835703940719975353029049335866305533699255562823700099038928466925363319993327891488834973580695571541964849993839473237384513776363356585862129112343859373352228915788164491474016221063907910312810721999381615722937888921747408785903825019603387402807170303686681703926404427309635318973217734854691571692155208761274890588271962252381530428529410966426343870340091266894820233107035898402427983682679105158748017265516066898197889283859970580154856582232080842791320840095284975264660289936865918486992706585660023990352365880880067340751701768800529872851324250999628015512347316583950033908389341438649950660700511535142211042140185666636418780435775326707509870016955990693073175505979184983323046842511539035091402945353072929476621766468979229430120047275660542063893156817265226105502920421240535255877495242954620554243105925652453907066481732353895092129004977387355284439946094289786730362567765827745014818928856209041100478079949810092139836301312501491689658534968263617447110332054219253532187576324582866526071201926799505810062227307891018064539400661282822763848378207828168453328726928889774623858492070929551612525662487022288309522334327256487186363739442591323110452926745587417305312733570285873163573331367741242940277772294908275112607818896542370145449109334580498998645320739304323037288085457800336680992175225280304367827356370469835098067471701649130896380067599057756684345235886166682061436398504075220846807740184319719939735687383484815987957840814625792638050892122563404548495011465155392330078700397861194058738680256171485982176653626443724729810499275999992928844853533110509802203543807320196055101957785316220401425633545606952435523061079557952436705741998201180714470478448499969506237691381842495077935487705096990061360537231119431091538739953624566681663702511473100836137970090495003005625979710345829580910763502889979942125348018533884796369361938349864853412963561447629791949475451115810611229235563511719544466779114271562390977988644987937230806223251871828841022692379611330435462716186754041174186165726977990626637066563628917288581814208786795640249910105669021408242457295641920472499188816154904333619505565336679395965831610680192408737000040978993494260782123149632541971989033082214565857220078405366058050311141771810803969887850916745455861834856398785909609928551572165881756499164340519794692352665062248441299591324249833001321830716057649735478235251739221434689859899888759284137631593010910020024089359842203394039716643744376814027639588382514873779920458571249574427241046410930163829415487852399625355330622238712499141580170886202457178931169474483530938941139338567605433727487683251029679156185409897771681327555620131556996876895649733737898191830287220745128534116652895034464023133142128617521695712924846185595962383529177202033966267505782865108580538610304193865187244939611312535331976743071198059481677976187585957747321868074671509376919403190045633613479806364928727342253435637628210636312131700638093136383732334914074702763948412366037198780870535169560385920714378492606355633851563222501338761798254641040783706711684979821154055620195179317826028289685352226071898960342622320611771820889398477076651087895173093373434133901230870303008652260261823283288662311398778523827847552288940011676532125617256619284492525214713652449560655822441648001571006359867180321092262649923695439594861626331013195578206211536699227559257646447084863426490150955796600415237316877400932596058442456916913946645352006695917440887241976815656727691378814069002308425594659097032688299930466922984850088369199606315364219751118624335304296341088400633351257113868962700619351989979462008457438663802422971734512249199994616364237973050823880348832652478396802941001028713710301689215952530212307135476753508696093595028822344869337691734061701225697271676714173105063099263212075125846581733853699611432409575041593447687787011322099641222699908757597186151727852807622750948775688018448534754368992999977016981611061641325957193397679816519973155156924165781847152999032537035755288641093075738282467493967554712590454462961663665236316142088883442276416157430670115406527311637384211620562211436753671129142808875620842139437773095972285318609361046942928906931818677524318542533871005241355436103509087127723413268864513175967569954244217799911573011985312606692157999493201012330301352149069219923967771010573994610329178140179511697137497933788249433466294133225348192842348758954250061657000103967153228578714898260406679028940557076587597627542276562208123775349363228132622172066092031847730008268916749848711223356864335644433545220900101853186297300182776842906211410124865714676624016323744392660122717762655961408530345084873664818253131137605084023722371725424519789110819401484053739614695762471979426919961218300899503053081530740130403367940784408219477799603967761363588507898237697645316732578885860011613744744395075822613400022586025896000075795008014224271681266661263611494734221727147319337423794214737006637345827811256004717825934493087147734075152715955312007676823527203673574755710987628906535217301022807926732405389985224126146081341304987443355665155103758023488435241245634944900688744332651156944151477440412434870543121243700928126193666255268993721096589385541183199161419137361615678330752279606094591824072671984245194814744868049202370963531620370014120796509018904083118878763867610360908953082094391657240264693497352650721464717586385785214461115697435860557921035238126246522174058509165331244451583103544461639821045748314012724245565060221712431685441788558539124252145657027002477555543616132206317258037119560974627463997918371251265645588460755702203987956081804382886997336996120513843747058782255312109737659376062289317678344497851132167721058679461413929981203744615862473236321254626739262252757055001961694189690074181366075020301359465773621449557276201328887090038015253068633465816806567017896823760165963655085570764040098262336032113848711246900911935223365544884048029390444289006153374998107095475168368052678089163778283807249113474922305417075439329898596620074508555421678719481082125745643245755998928803995185377103837436615976330562178452761141559989704302716621765967025490179264838131641864024223768539791723713017921988674754349231456101924687120920614139376245130159455820576680767110080493362728367616576835943764285743795830752920386372775630898637160575957212220082698685132774723500194338684999335179232899521792223910449094513254333914954904224783116154932276392942187500672548924735795474421041715953011068575638532553202916312550043823911931370645212135241628260566147938972869517378261090042328599415686266443915824916075924974137132675962700972818254965434045956894686922390432595337941736260478102282109503766432217098180689454619855377150026440217069861066674428494059191875293339183134017504999354158343881053546678756508704384538919519965088295233752560501036949055432639749478981867481005045635203870837305321657939582316138435017448796652283582363557137004091184380967171145929598888740082350422710041022183665116435527358544032593422442182968398740713586827752287618480070335764877743047557361042348819405543510075738908831063397271245584395438708987344929417282226507241324938160589391259980320652075378153599652373966247438534772709766515818754651050603347665503217896522034425316666596045444642143469965689278352749187029471974144930398148343517330354852293097392050037907357960041066012567681646148576555775212085576926617120148485845282885144614207024444179985747643741609044679504859850008941382631595522794468778276607364712505169968153420373157386562014426390401754047819577946873032117958682713419131553880562791362429872289412238130644046288748819635884860195143735847982197047362442784574507381364619631141949537328162225224735680726744076397011091283249143732527148185748407021809081003473672941755298058242591216425423883072662186218411950065781608108064671263838324099828284596351439503110869702777676600129090949616245175898113367327741027238569238775928780946434208555527781922341949424831071676481274113791138679478853630338833696250920250151770421287050397206070779440647422782381870284840488900394631224697569937363232304503728466416512270788772268144013769286003179244786236326613473210751256665076447342019334660166792818832516107523023846804647536684172964561523918509291567854150388328369406434923696194159321181082964962338865074452558955540753169586034055865360196045978734915493619039143397968496586617715809950353441312373171881394643090196478403310519373250815421006023137940264289180741743745179219649529971763231251091537044640276141780253422168229751161805584172188855925039742176097121726757201191066997605189193041424226328097961178095197676595779821159874306877562412594505235690989584215082760914145340883103331184365600684429133287300972010864928167365872286243390357251069758180794518882658044226300023539762431315002343680607012732856581351388063872229704132849314481881442444658853068647457236053237491268955079346750658093086354576734891287337775751914156025570422839501396987323935151616553478112322713911466469576295186007344136680228571624992739385599618576760638275681736721115220806230693967434007242385337769141673150296069802027014368036663264899876012832843475430071330389401799892543223741182153356966637125419098165519104801395791976398401337695817586811862368857191767151811150977936221314074158292620054992620281319927174701453023189545588720922384268635234503346647250680567538855496259824174995924517294452966140357883796882304495053886337681024215743296532094576643128031757524565567302469285658201396324147724413633563980153192295403492666472367055767718040437438017502085599240570161901262900542399332956864535438535018431655457926003696400887806231568341751814462967582209394841896754915923081125929105997807451221750672936458377376058745470579046704956808360183024361615708483938028504099548219950218633100407355747573366482735481127514740197181426837156234160686573933864747312373941744931289219177264478090237093935731457305509121701803799093106782276267730252210080838738914764881065130548854362516164618825452009079150810373710394778064797146492093938160314187794097160418681786878367852132835863128389366045283408505004375981711992614803163505939622381534293037731289516457271339686201746297680370013795841527790979507435908978745686440295561308235531598896211440509357346784369199820225633411116977717637180067876975384278753028034499916225266645349278513572701262141463864304227879871317129184963169219171188742641203348137656995303016126961522073884082413992417010620957684393501601545653902438192374215838196639164415667947686318732595647266630874725735110272885074570505703541741950011047595372591088764669475203037711396660328732280566492491085590489066571297042238583456214827744993138880542757341554717573745364101054299904537113235791366994050611384900835026873987947273064890055191049594656824363736045547900772456795758999266391695165201358309045071643567225970783661770051888795266289121801398214251638231813306824508014086374750306958886794745845204433400876517954524593711002545999172420481332000670163334726061427254903736711081904966958187889817357541114702152058548459342983526305804213485229328545265619425003079744674977667552776347824375461749430405195324807591138944998085897233829822433464948919729146207479197373798742979240045453035684323162702073953923941438719346872281353290449160341848944948640487001284048504346175965120637360614207362069504068874974989341758084036833762781924332959488281047864125283505458094306989749734008757913747221462220035436623515332796619620077159960351823854056487355787479277188147605982893093310533210915380965405222264076590981350881249752736077193759728462700922951390049652272304842353065250207995623672462816531878095269352823500192099710344298733935382139518168571307065131882937447907735884346005536675222617296840728839602921630949290876215000138740866517773815169007054865225454582941887062233976123124199817301920179810879435975202801686301228056511929133092468474631686216037457124724437246138204820620721111222178061721008431775526797121208957411656969267435592548219094090681810155005374146679644053306901162112187639298957592802514580165612247405409244129637309257564513907372324846766399334356781919197091222340804255754417787036447280920171656875453353706618328600131805939089276004958044994075446990449866805420631100481324383415624994028474695478050872802910837544732462576310782404503418229481687111091518812822813352440343455947752765463826119705237583149494375322946553935083426570667940384099911100635319638107433621368199410315625795442878929112394281415810485578266404476643550503659193157523386805573546938506118725426790991559159856602401435625776922668909747652805709764591112174480542347871507652136455380889020612783777061587598060664886575555845663313730526567401056204575107989796843268923750921684605900068222380359255327012941858508020336924234957220866792307201148548121585769527808542449901930422514361865146378148094130955746527556807694210692243478784564012244864864492110108638166350268996460953685495253810903085592513325112063777953968617826837497543501559835435447165272191427097139094749216520050266058100314971407380095518287258596596581797289180483273601324908012585072342218117175545846021712580268455525983065254564299695643653065253516080936594558025325551714746737302625399590262603912635047298090424411189401436160193342210186387292493269438678634560723097462002818110894034863221994128793632279117459814847862008828841005088167412735623264222146974360179214079658786439014069711941078171619474748432452545024924291177115596438788688994754629919157190069627311579352260065308284589179913604431718786642752842914729369696703541051888493629677998801657678720971541135118411715905536700249318500873198327882047202146849921067566037603061259327901872906527874751944133161521438739106532349995225934063521148084392062131040288275108506691279675155322490914774109607539915194110498672887858015714430723633615273250660248865843712830594745269094044238503796789334521750862475260937791743719141300866178158517740676336927331209248710349548547143987971252926278453239371258420361428866315127991431370590461654598290274729796530032950887366561434493088185949820470964250147525563990418076938182316378863012804914684616685037864165599467508126400759446296946909339707912681384368963840984879455552858994421441107931457834930794027459475134979167159492402667505111397089003922167092014330945511856069177628348675112354639789436958117182207386640356337925207314047007043556019561656405117352159495859484128369905043212809708224174840480186212972904264067131787293840052125199066423691869501723409182564511479541824423972135535270279507801485562211447874596737622425913476798132399361666455660932525165791527184211380398599398824084839527151787870515212933810432210737278704950916029521046233469415189714815809457353287972141974376625626265178720758067921084263791673676691239882480347850011645623606865303162794030310594681887134932909135173500048248142206952926899801637475665740092674476448212839648316320737825122228729868925994484191550838089617951278273403775811230850445819785908223402124911066863217939203283631893768476796778083865863645269915016088751171896100438149802017705704387655769497160142185140555887668258842686159996038933514308324246395798817542065276470712446927768563825335846553652546377330000313326103160663412345205111975356091255364034285855828768847708650280888915816839421430670270704314077706409562110441479349411124149510268116073667696272779827789819215244328502425016862074533262767192036292207216924303847946430378210894722350171261401308641543486564192803644497308698340187175408737415223423150665678744700967097721908160837266427144653590602696709874893950895279643762006578732276026249945357095776583070009814106122505430774310844705576260182342330589938160481768080860682493214785945203729050000458483597711413831912307296874041528322968613812913494502258180304741699279606014720578372136240433315303911660187774298975819470297387901362390484790556771421018114143950963961540084846112532419526722092943017367443470046406548094867208230328812353624325372106276315138390965900834526281107062649099208091728430535162299295256234331497689153325816934985861319121747105317199334267445888972662272991567336421177422374147914724113281328800247477331975534917794402874666320981488105741239191439412567440751875758519332831129409557687557606481614722335856778317920773365097907557512906430961334216264436412599709651094943856830284325360569520960838181694593799965207980163898909140766203738576832203989878468403845785807900224665069818544826715178522476456021968488317091499793345570238196451270317689672185526315735533424653735751929391685012676469763671724667404865386379815962296407936064211417620358429121967024272481167319944561414159718846255814050904749099922701837762043395841121144377309299580681729572550036283117496484182044681516437143982474702510459389257588045154921806468365340894628841199862399694573462035848426232871161043177817479645527201048746063178805816431424923565376242807513447928195138714440025890467945081133888092593882404837280404177391179395483870579219422503044690745812299997546333089551300056842057114697764175216965854007226048443714920750256401076273410011647097019481587812975323300076939908540543377919167819482524445578149362947366136785711209652686390218638195177382315685351448727758564110026828895471637156521630023733389957776537199858457998154948043831812425674339963097169569055375665101269823300219272660322895446832610134937626752658170059251612316374392475256133888484586071152358484327765781617321689431658863740062856626228520770777425881559704474308225821024676288949295942178525746607182773436466554130663436559954683898992051403347103860560250806615089700073067123643747224253781780784205058299762277128120384320692628348450641095571077369790615854334349413841387219514941350444562047020281380608915053656976795177529434592278183200274124602625219616278594282820075345583310903924649150572934549940404086541023278135184746313597258759082898454999233925686608896950888077019607292931040973425187781124808730600645738062599037686742030100320946846457131852309891165271304737541476133614921473747044545919558099574292821386019966707388765981602273410278870633838892156461935653859263350033710716525422242884972022850668715318349611731675972527389701806075383325940246665128390542970344625587195549648093372476037292563191297199393856964838185856653697275352371528375712253679589087013173984933235073748311927427306429194430098692418570613166240816918575339620086904195707079521796094514467271554065178347886458923088077795093338020477780479870127222096471070473401729120175876259242493326978592536601057029148717336683477556212403143418435392891756590802159518329503267191793727515217825591845328330023269316895620439685012967829641225723588611761880352054369687590323676127265388861805317150478211731465602186345301193031889547831798207434662069076370163404951559352495817945378081225286914397796883503727241711923658762933464687806785545400930057749693027363952168887624718873206215064784592668906422208228236349929441396390906304385438046474646081557955961532163532214470790002252421444140615193411999958272928140455889973972650848392327713798819370538340874260505006124557685748884612036387358007583476113004273089791945491059049592971914208641671964821617984479022781535521839474974224137626244471970901741511655075237704159139450181468513869763106531162947313631227481381858314683110988135007576240176461921463408841709851815741487142081482961209447277454364098768881017627327212525441448982852085178075699996666303913127359635117583338917686448619010270323411146442468304180830229664606335699161067916993933697609236049712700163956640393363209524625344556067650779723244992028449753206578142826434097892924561735452616955839925491269969015705944211451724353771759806499731770889543589229132287028713374974606411645948214842264865312361454893288036620778393412866294284535073353957656025075661367284908193121088813227424771729168644015581336421300402527498394673264978069679213390239480884061940858984459844568451413050679767804710597867913798774617439204418533304805067957617008397216802742798202757129073777402674291022778332669754391659669111841699630891123594789432954615196739752341828064759303399716854285639394755260971737245343528422790026873399930818080464731567696276144794446695770096905747173950145489043667971277339681008232156421212970160172363884272896874822371324370077455535577591098468063802899091395971140829717022201968520799796076806317873281492568800046367781957574320345973439451319905088432242731636846833755478564942593114710792754835784579459020062220214919031651030765489335679168215186960681383461607145526586103284338335568241574187722590743226024627609897902334326556262975015685796442816026706126690925446463786946307694403522304878845634887474531468662974329921698474520960938082258142753581664694478918559631466354727144984728614139570734920945407422457195213298281207145929774745196729219591942638608087281649999844730370108563315585220994421120968170451126366766674129481604297545633620646432315791035638854682561927516410427911057146547016844219857525494216117663795672226964772474754463719915617942761109864735245698297490967324027342365340209951355660028254506651848182619604326370578236486123375305234098033919554109626406476702244721312939118121707131678997304018279419374185745186409031888522973630347784044554755627929633521558618906163311056358042696685841176694693280244842685604016878951886614822841463758279095806580410376720812882100650670552278033768602477868334310816827372398838123405532686103752318845857829329892472381044381132282856096731112184173421663864342933738918609558689497455422946099705641806814058522561192075278682851691327782796404425771506713914681384809275185485806456139861438391757348751717620530804131819140550890864691968821430093946870304103964290179568820342239989933059684838632902664352797748253121182977777536990156384385992748562652879244880227812937603929150809665730338473788237961925086908593988757676080936950890531441954059728147984936981868313821461354461587776523509615981475935190341283760700696313367462321088801931006295749300345777749714494833353140599339562460441585941101873922118100886746034557024967738134816535765167843067944141455755139713532663274547080165000749190768593801112898593346861286264374730316243342359117133625090471826180371547761800011716269665685326746544285737833375562946358741564565317588749391085647597653031932492114183449482285605103370184355037347174523355415154133391197092329260702849096731124371747678121384695969974549235605807243085033591991380244522559903717354352044011148112001165534743996623908446209055784033369526536598006881494683985112824145812884066509630954023023330898035973211731014375615782189320080364663094981464292167128592848012093507907551040479894628374179542915659605762241271383647835423118910700520075609643305834283722468227001089790430815421156952468787376907180616978074474989996919906252533206789633717714765361207045760536048323612823758546764856147647513820940593639580439962401198441072526149122235396382126506821490402089180610295464524468507957365786032440871162061098701652341152414045291814815554299603753687342147761038562669991952536813850878128607309265561816649496267065679800281220382885079468587498077645468639395678129465175551877794447719209317286542565255598304791639300429520250981907541341570573399668868947605318828953545880708225422528966852696229277635937948890383166010162538009391867576324013411688192463629185737565053806859189633679112935459790775407623626279204947787081905167228680735504102257635943798805908775065476818872140921724081165693525275847652601471133874778325615983042129778471004864739383402978123251625520130408080081773086017050935603993774532474472037851135930244014270324400425307728989165623462557937892271813644567751454279796416433971533316278325070406495287466423587890954593568042901379698496911058406020076401483504190812822341327820737473813987513408343585459918682355857688423341703925825940652986330339377748435576345288180941104388866641649979666707669909909590011015013513727498804630936810409235336243283884798059352311322129382605359938092545329042027245702062209476526153492559939471463112736015743613034157994470187678109340988292210304379578975297154218299624810850087485346971797503676854194893007008596701983936837255866647021138092993013798816361790389120919771954002110631785117469553413438499355238426288763682271142871710207708538026560009154313150941493403400209240266569646419831690830484837920564373260834353788277288512535676341030149530744239406975141346587160757183110598399158999618538834117523009462278575132227692273528165808481329676752790384936553863639329570866511326640928230986089326990687070280863104187036935844649304730997235805046468648047555863608896108315588451941457617786092489282387000890513515363373262002698828865557613923553985891870460114481259306265152011153516646023844273536224996042273599824459102552652984408369455545658045263553082985809431264211806625839086650252123717976302070778920320158809171802239229712233564611705377134643822769985156635321063015552035995915665624684984269563186552221610821471052627784877403800476785794557478344695804259593003443778024073062969195534061079744470359454368991510592970883557065417522015264661673241548479669340206017961585010110467018844846847767032410383272542840693140372938494078032665275351192682381986057990659416673898626899350481379826629050057325264393109388823646636827283080830376151046697938812445489279426874579297290940824012569798171645195338542161240626993024594756874550917931164821385339105744080010395087536114361297984098937999794713304571633710481204519937639676952206254208020290082983564221789582975729301581229263561527781157390823096423742209968630938486608141428427610197109844010785117859788076533790060527094145599132153816164132265659994977287571680756042304766324498789424645046303020359883921843701972106177121399933950196954332501250833157170033634353570043140102150556847375930284477719114603526216846493006682797709132581568515125526697627149959073021614609266970242491132401281163109284538146528544028494379953812858526658377707098984272432625095197181545676237470996983545578693588127771066939478225202638519742408944137406276691477941917785479829692986675774338613732477675619108991778876636860946619967968351321442089174571354910146676547784382744433689776809440870819581607058381551799084356451814948446263533942742119257839918343150122225709512654664272990077109349500683135136400530599615119409464939901075249085964896652703568902363083769985408426604336144423485021268543039074447270940696459977403557048858167845067456209593801242930768226674120871284708207022569096784653784334079963350322002098630082401853617085111414989948266001218390361278952824044689266879293300094081589921098173643444240056062884834217423746380110499087304653768780833656086025868088982909875689181729277575155722397270024239983979952886124785991475900845210056458689359149898797571243467395554137575068002862801363426531608992575357667907166908329224400350438974381865100252552054385971638767584097202466730058156387417976437038442367591946189950082372370058986083478040204980900239629477272748677861048534867962499084252861613128307915356216109928742936754722929320258182953015665935174189628064760443211099144280773546103577622492466872918154999827315466119051797171431229525990007656071851432434629752261963203900582482220610370544420402670389394987464026321777007917737234122897313116464334648279107560089191490726495606428604357458792174334473558313533752083595191798316342189997631372253651246441322840886080682886586024165858536970671759022603356391649393774895956452128854808534059217154273173146323993586567153519039324270446862914572038733404497819254406795244236230547315218734453089825308520859071955538869893915508617888000949920142623798101508099166029137441302526469638601476228618643874191708045422172659792802899563733991811408790797915418408475992956436246622922406846156625732143487089474551590621432313748899464584223694683445676095231525372102534627534450845367039795497163530211322040869025417458759200511743319849813841528896839349226170285204700579322804886648541627569696825313379115919930751040108412459068059819370387793969570494202859910636687847524709372054484968459397670355962747073546247361744242097131807070353473567062339337888737790591138222824218577861757094961905081097532095776156977455202091093680883953949497727424809882985659802261841873762143045738159828978613750324994957492667301110635369126878508563636931010290345873283405750576515480697372810581932587293511785085762224827202026361132802536881687208802995604003929990842455526700815285535768476347092510212734894120983373059559295572043910750362640016668428949656175774530610502453727567112130037463646181849861288267447533813213683915141929576928433845006552627343811740618154549260215666108993650503068860097434560982289648814554655873481214323567278041879080219198645830174423165310123899040985766095267341127049472355572863166544141881378305942068282433133099762504800767080899339105325824365519318516302545349405807918805252220281073508073984714741015847376669078595977064265162031308610633333313505175955567506057867415390152964554292897975356862749933829951975755494506635901023523975142518896429544385207051685587658431564980998651567314600193488646238401546684730383803133124774563295292244140151420686793244380843642911419506832230123304673725514469235418931475129235461733282946523823945834788781437472146234337033532997733537715842116105290639688006231086816243493282752479206587905310419940165827095337261071032898637377234259378632711602897698530161796175790419609824321106615604407299916358999592792473430502804427058560434365872431578593180004785701678280637160600409408356579324982333195404749464349323066069048998546066360531521107507085329019639206732902756507134802829963467911068215875550914860724633668620831358318544345367798945097544647781770620738811893516770451366869871747716354748956587615460222580709402358238354455693364284964264970770240099387181190811436429652361970452248263860798857285576988506622254077007945358364040714311025801153822394638034274710061429455385383570720631848121837423619351466929136870187808005499353777024618316355872440792433703517837542771794727871864183159698168774016971480828636372981524685875564561432226686661960419287435720962715628769434384971668851781420532369151655346058185363031573908353582527864469474141337604923347964054902632721363897098774088822434439877806589083755854348122422718000306345773436284396334987071163016829662508313444939051203296288485112421328530662255263862376435823999398446215568948637136541479727555718876569781719899640227255141210153996556836453020279075787167016491050879546112205095863168411147618574805264604421640077262162145977764318107040107535618167769972511307264974730494473882808022066395162421060677030944261024294270735362206431871680556244647206841231140323146966558496773877353074711753527191811076574172665911197731698158685350590527837430639693787475628722137658003829213490962451281019096070756957098407517436690317411542729603008472890629026555591622685243565268298720193161798725681720948033822398297250965510931432238578599186187959357435821668967136098882345974449166338697347177474029487945325037807497634354323536758993381601790724910898270518053112777902139914852090777332929035446214694141512450101591385439037425057234823360092125664709651119454832498818495860515427741556148816398187557851502188604848936171252028336643188439727123137262377067553309746292921745557395985537193480230211631144278271917984318786823752405032196104510858124622735009385462977621597048674308041556438284260866542666115953363331367504061061744409604078085230920832886099557632035377943697420804386836715234298137288594640245612878140575820106419516742322459926671613644224324351283502936528250363771085881846929342163848336031766097412443811096546247139353883014486407378764799248608681279764341208254470952789689919673084099221571065789579158827089193357313028488818422438008098780037327783117542366453245727570733940230535257623399772845363654989623722742022015529844251341120394011753175417652009273849819157616159570030200498825966209340666896470458087739268414578836937873412712129272956927739112290083958298727224665422258068740892229835132549188521980305014010955631960630147697190772434313199612106724252100074218255055583724722451691575328847601024297355201611508777596565241827749096783734844823252775918339767785969570636258298029298292637888765394197347832476106471096945708995540913327084552870266872740592720346985579095170798751844100130433627914484446079518927608086931335900179764317918912526092734257352966365930304683751882635552613207327383735790976785374407192265420924261256103401664427931429518012970296767996433697243414977961674708228116019305849905482120057284780881474431484306874745172901702100311420371442333726165871127420777892006345816068792048115752272415949580820376707887435811994569497821274196899304040991149380859940076750656288770079388306981178140126937893401485424271857161635513825032246802195261926181831587327414715420971453700900696219124975235662753385370462265008260660841673690145164929219831728130557786029602368285330632592799278482778440279884273974450908723536675942872452630890218274218658939569294242244022407299181302739535405072783158738913418777161903658010711813761078033967864542152705215811523560068436369000062743286702447155957760124959936053894404130572447636168353350790863454048011785142387762211436522958160012915467578609571514656633030906804987882384334172111242338143492447545264685831105079900502737768732707533976032689062729452942063563615776906300633208401696463186311866290885766602577376602823457506176382533565916039645486163811330320500828513221615016365640834494317317264069272711681512964655760702095657231506284088211976755546437183081753670776475698671815587392070153592640937024480582498761718503004972964169292750200184038893673843295022748712570462455535665890927659943602447994506964739512371448881076250449350658867361514947943840993259531202821782528398083190697545796831655391193264915131393076773593228334716482269966666230643063168793491743069618330822893738534699244512261915428017130803257669527303329555821537274338131249832831415923901624266707803149495194665365237669412050651944837409802209072529620691514412062875123906194221582692556355119805846974631298462429531953277730938402326406396639195092382628600681803752408490987092783356709099726934331487908371237030194540828055837044732129803393944325580680902596060853218906870240994291741031670461425135330538100767342791737004399150454139399133424850438400718836931206295159776670681437861156458628330581107859992487957624546117391050402696036269615687844348585385894447471962167412059438953495170387690939566881670899680761812449051603763617347379788056367279018903483710886951690391852874542030006300952802686151154865277989908485471818048561964093999421021742940212753149301858632758686544228240515594484976174757334190505706075424061357282998219290834201496564615083250343173961502031513639813917387796925489570615545431493728497052099443521464500208771134712079815799326442909494792034744248757398103049245333611062973697941853573435774561977767770173705286177055493904275797937081432210551387455470171167028751719790718803108211023892500674988069282985223961881549644616936250366154237147028142276318054545559499543266848462614814659198974064915081921667319495302667163956551371559450059004931015354668582138743100356215773015952527420105536229578154293551385655334100329655296748280041164097843607106163595332076265543658327604838481193128420806870538092195613094197137519723702365617030649375051753486532454078352250076082336553329913594691846396352309912657832111115503202468445899086739172772672168737948547933743428517109277796462139558819616613530288268452636815790763042914674502262932398704902242200498402387403788581480785137266244554003795207629446766407604857476755950314158440897092910780676892631849009940578492531807988012816689795982089226307790666167157174458800840312637035613416444255413994044327885131885417412028569605545475910687495487177743465543213116545176974492702773563194956588318465364804378492872359898351557244557020937008328272465544666860226716526102096971107446855992959339700104397412735180097154774315585672766294709264508878879746656161612996559064847762607012710610644615676129945292264704283952083007099244303862312931083470684121694325387017740323695499871423936420486064003782337230549965063429152552027226980709191808615358894880834027010557143948808854575474673432564954472126927303166151119300633792891452579378762022653393529693546601670398312736752814124026358946181466853169055413640801915508993702060176736466475813699590177308554873839152994569365917767311022913997429119264594034765626754943156742603636372790631052399777421117995229979824012318343686387812993325135603540440031840996279123029780537881156249075005026091658615502534479065844123167843351724057124003072377290454505114697931899004643408192201083689044128621548622122809164770430812100316346516873284293768261757492762087973432887234671517854092023712196453592340492632068086717596393370297869815123375006583404945890705949774439320249071462486376558153421358448266350436443265179819446550621719653192615329417292831189856942768389803490676948505354527392578451101624922481584090995291519874820068786529292112234225456098223255954189780823230885525456966359640228777974196816786874428467542343924128984630503550874133036945868377799293871939935842705404117284452706781675458173285134570969900426007532919132112341741620743343964562256744485924419720383934606730466420102877040444572438115505392397567400060481506604416742459857556154250523026188925575292157702035509073387343881152528579907730346522444588705028328116795112897258987734228120421585061026825428891999674852417984202096481474162475913503531825240536588522729896424117412276418105919753700077918666784180493544417159274938728345878878207839204109835569626481716043382603167804972434699801230760853979057771864506122427605130235050195535205841721026387681982301974488283489505715712925508546585722454577544743612307753594616886448882739858936940932151927708985229645063508977509199155230484992622445199704661406214775500551628320281158389022495546545335450450010302411842646710867400614064879843562098180393741570337952027402583024121659185846901080673606652782456572406643728357982818515452168986323217327081203422107488266204600441722449667392290444671055001626464452512175274207656044365852972339552910672167447646047353416710136065394989060990949219219492847079897628921952735264493572914799816910388441652543688856865697699146248585255622885155675902812359112412587878296735891644382138040956434903429091090880407937572828468735118625267622485350395751359758207067835915777297414325670273827006493418324958874348985777807337005058609725001347236089283598898073799393770105221644104888013893459294147214593183904026886415649121099841977444207888996788909505784171854756074761748317381692080987333726886044672317493967259596329871338130588908877969522805858667248456452224404214918538979928969969389825661666173798823257352448118174454311771840332953711149426561632447508996908574404513916924966767600171976879579361923459418520629915618871711797729518284726603000348884075965075561800551702384556337627235746289205544319436942248360119058591424056298299382820582541376566117988313177832419873351762194445391057347730966472234816527995427422602959491463074683615243947753924929435188637676171111078869858404593879066219170039018457041649971140705796206117260848697698872235634588055399094020714535015097226650626121966776008918111603589810582587353607417323455093374686070113621442526045318038402982035977051714266738914404517674941870196991227413866627727834553892311759226955285415249580920132435808992030429485768195324818266970647716200343242776220880230972335233593178457171356976732102922020879874232531298667255109031996200139203192617114959412800870412226467247678754801541489278690487901005200927788640102799197339241107200345742040568447767104759701087045189882720985044001752137256465908580244217366209196078429573636922939360156956935280355256210649015520048497421578451847685977476478990444636064235532348498860549469318174748089133670182567062051783905977530158790048941017299973805556986207485222929491083018726394217171561450399433430643878796615052809248887023534209437844267900666895717038377017309735495537551548050737542239238125843230514412217226248280932173060948195360276819911454093947195820285331364520174497201322581759764647561581330510846895985614494328314446658651576903430363794445528632610889746773828102275311727282952461234084944941174115685797867628404190564558460043566284393936905233672256983110004485790615172921197568461938807311233689988010067400076532391444171268300039006314073192803294818734776386472732772145987022599747253623810886564603741871309893540329442625662016848147122948773145993732740217443927539292600448455851078045025246388746203566435940302568215173220319209758568256584523494291500960026377779745172618411104840531690907079391272748184084663142171343170789460954702993165580167096767065098280201739767656846075628097480071557063973477303411317530215781936517122012347271953256303542527035107172679497389764962627388695270671693441751259265172781967750430855448211849103427514924448193984498201632648944468351249935579493325466164248074627115406819577976309214008029281388457527431375306613217689696631754876514415089891259549660893734736575291291396742965402464524706496081381582696834778502394635084605512319388866374179400858397651442212357966665637262722725002952959522536286794831966411049258968941906719583663604129583685420404875356769454273567867452050805751696137370775014420076053560864532742420721451585686134074728336179926489166108136414276949272545114607153150287917800298120982725117797580351823920573443756879878334224217779956917945636069004513693195763152924594991109989508674479725491023213192542816974891525382429886815821662622921701471334690289935708891829534324131758823934904773250400729725065334675682135705107954646004714222296592068635844290252793045954591653870798128379208142651399528732161621272344426589681419649035663564695765619297654443333908651510660052135791844177149040062287432031777589199821149133481973161183815834640972506811967341838148848877196711258977529607844030556281273705331151328149166755213372966598157174519034142803386437838943306334045417239025236935057770620510485545350192823524542271098107191652231815626626613121166569413501995963135687012360673091125811868257034462810147745806864793370492476131840900966551921376469678253635906160469969028605689512808367288574188056539351277940587902236498921331045435245684708642592074418106745402845066127966591331064603785413064395809717548937061515938215764384182550948381625133638087212355645311545311373046494195495006163136359476634117192604227578077223594289020419017116590869316082712629089722767240387957413877643806611047107606178278549684004437911828508968050722443868480306274332787232116013128848879034807828398388046317681800833569567212550261432927602745163868192489099685708840980354715193048229792607845447337665867836409437504563257889604361333582768078574335041630431719422157529253051092464019927097964202868324288200975656230306118663532020655898860368941709366195598369149400308171575754672427856829542148956761520937085756408429136043204444917436452163682191628355996436278234935930976302232375748523440847452552946900789329439937482093089481401867142298238792427457269425833825516658721572589135505564354177685213178997292301007915715451906805336660423583294130741385549746326908199662426305796898688022239239906987574906877344783966796416752448579994434766892414364066926688562330866587085931163866798045283557680224501299461460540863690884498046652310755094157344393834067751792414529445154965253893901268774931564204613577544900733657222500666911530218551556532379800944773685902775013250568164438494995724489650920997114733154830497131074842618889860082921139583329642363228148130641259263727845715943919995123523357169454874159350461853755015139546444084644637771613432041213602153706898362545435885405696214493614018994733021866494923980277824323605480763488125149466407000398843394324910129618403189390549584306763156455382393922893243776867116925820747064508532103814334824233626137491555366757468923660219680226169162534987615664167226289769799984654620778878041710802800574930665421560225459473616467593138675983518010881479397149310303923699054924657451186537213533183713253239049918294342648001069919712490017266363327669685158609178651261672201649778921551210854621129132416317038150188062140000486929895145096227607503980116871511981437721189472553278556341210985566438662836065462668092560786038339795080273578183370988212815548229259299426856072962437028687994138132137108032901054277156352218437503661978372944015250729637162207959457088160185563165488213309789258346458916239237325441311476462342427094181802297118027891692499751829637806615402158727323180214127881798651099266031456041835151563810709963276695096524482383057442540460827742505935140593491608942046580204496462409521494459772679321640775988202467061658763199353089450184532776849945456199799109494886843943327281765121492065352589329815484994402124260958930199341691753640899040800467734062118314874618004154558808179550334456102607100035254326162847372473744399864250295625304957651009439090967774248813349714808150937175053705851977715297245466663587296881911435547059055848859924993006562684713012321360493814578835925004017126364179455284275335709177955911592183989402604607531507114245708400083878091943877232447074347080323704585729410543860887279821648840697359093669174670288770679216586019065806426094616055788316770482305333676606403385236001233300319635522286143179470887737713518489585769658448486336619713838797557406287471271539848342838284570797544876173982211816668807781740166058370877470333057492426559690882371943866556673065574522521411459793319904279272339602229104357998362319840045145907713271529965091524526945923361268341319889152611177072530976033460671556213755717940734019828356788267191740113130330100759653917395599413251894308765403946414832458789034873886966831794559795150859523452571855759820455982154420643812735029558772109434245957222705708884038275564420791401707395587077134991676003007957047075765249446307741115679717365114610253653430144306229201205399619722913473132602590826590522025948467816591984656669770244818546313833603677142792344763257331228229493496604444359698100104717165852852734311361214440251783259166806262498021821301514635004533417739646997642403169722965286776440078054632706925061546611397566282683602050099395178175587374892965741989560043112900947044238887917163234277528825948181416524943460685715910944619343160106996629689260965645484519887859842536048316763234202032304170984202033906360143750156108049679862472707552133924369192110619809141740283322203940544421122627835609935924092238091967791544734994249729214852302344983343506804506176071651754308895741688248833301731714123050004782403807746595136129035255730638919083261111131878985670244476662074783189144245371582726060293065770004562712468798788923849581950764076461866626502829428522608136823791405956823601786396859753030564382446307729155418721133426220387211858800188634420244707199134766406154163524413735089382355390163877636477452970032320212645030054906345283862693455838135338631059833709212348235665261650391488350171220552240169661891813936075642361120962211468712915518847287143958249991299617445474362026774992347348327076225963769526163442797495011615211909328330624438814382695811024840848475435689511489995330946419898070011882716129008176044250117152188467527314935319896584009477001260695573209798565318027545620376597897966472672870453572206226594949010637306939201581158572651951688594740032007679490817153524435229465978270915947466717799649548768755356769445578139584965361525795658038286496436083704120386943998453056828270166447788123953396357298059201049583116742814182548925998312752723246088564800726524222587441334624846166359112459031444990361725023394527113077614419221054569140099281015028090025016065786233699667647116454756992445288482607612223079824663312372572050679731075464247916077757522662080283533943213273204835341998882406193558971418565419900155239211724269953667524895421724232452907311582969370272171087386159437563313650503557418646911584593724053732569903964935333743913229623841504727866901869345014717587940166663565771606755026634253834623045392561196990830304492788937041007200669765131191392263446255481577705932427368680265326882530984876974335643185007059309432682925167976922458584456105998848779885353887821963248977807667562016547039972549008036883377883905022269235133871701745300428306286836947346652498156008823244865148590256748889031435565580498997807052467718194175754086055522317678251626198607647551438148174585723906510277426172785000945809032643446157724793668066683871370720059350069213957135036557620023903842900144193192990341038973613459919371851582685819431302374721619548545246814098460392478622132727059599530600256925062975099028015389538672909089865167695573269555770925923002087390112154369362144132547064428624093411198181933255332790196382747955059996655407250211844590416615262234182919646150886720877500179273984633896904753652017640419004667917506536188829395705974044995068100078416799686301141340735155416231701984014049475823007531676531852666829515966909425521401769826521418582446860011931472881209866473724452117459364020833849452182995784233548937781130379757251141711011720718521176180045558972211490434380075908410085533991882418314131346319437616695760132383674726196633270133062354922136409430387535077090493436496845186854399141437892520157398419384268638066581817347298629461226151744744179328499842266695210521411506750515103068796622968178251720665525778071552248173488388575268247450156808463258155261204895097758526380613124043945228143240048800371019392748986984536126457158047990285489168821577874023696878054745830556511948398914689778503029762331920036845594198414097461888095608442782413962091963518368505997666646971866082548831528731559176701639693544714905551335376100197165308563301717191240997282165167895377314563245535774860097860766454496056938969176514681139468958504223543758375388657823621369902382038415498511822323748986454260221941859213578248681456213423801695244967447291663200750508430197409060684818131707362329210460997675696772920926305210450072691658329494843467828735178443367827832746616382513979285049606791455460478700246972292426061321364143634923084654518098578207759743470091875818606450547511193229623971626876170099993314155536395320483403964365102293430196255729050511645325855929356617558295148306528703967527333884204697110013247420804885390079692116980294614985104724716132354853805816144250142673569644017812427900467695412865196542726923181318352520618718390718067529800957943186226572222552982079627871660997856048271320488993660470334562179868470422268049011662331990505993568202718999909740383011707200763436699088337933109898937254586261283660974706202215563545560635500758508413204676578695316216678903402475234920543422268837052377314256663747831859223925848090144322658097893951469700401971365036994891095867657805545435115294479678612775194118424624435001363181588870144268846440473428714155050884159953364993106222672898544920379324968044155819418944734097955390330614463944259055026168753881348017794542987621491317483630767385748775734208163923482333379340764215951702969171595532354484566956258059695182156459176159216464633913289784111271868016814703299862228810594674746863277552014952478933937557672001990180640683639101805795048616138457272615540541583296203380669255308459651700321974715012124009570363595458321455993590834205438430363113365310650940673774292647269266708098895168517418680372170442228693538079132523581144539186163881382852398093840086820141615504697165234257669719917550298595035174453366419882221201105771381451370486313072519499713413054590863165939071804748528681711735249642393015678084783211485981585958089890275691821876443364858890746316876447381636774104533626154098708963985579387549232825310917192712485280161877587293931562525955916428550042994660414294323473023496590782976264468389258261920752267167876274915888042503625297282452367447816281255445062744052930226997521591775763836462234039232448643756801152829749366833990094941319750593591721154700894687895373524170564108813801154411242071008861757097302518562782140973362905822475263912326216919139723168564399566769547958528987145652336094264878741954253182866358482688295847751244270341068828140792868216352839462760520209265721774790806961657306787159112954295471393663213000578676625535025038847663459628497668762412587242591677760471320753974381344403802626133796885266830016228920874180923032073411338986162709307368689878251722260945648275254682840245558970565797744822525153125232560164678265559611524566073414863221171807143195860346307559754265125142703975469699499687956938695217866376979681339884446162624135168923060756840791603142429749049932676921337176252982455214898738107678055100102726084209509836575690967907162190495773407707976424356283174770424413617691099071909176946291215904630020992574032388921565072878850003988544621225577579354460251807271140095626522022538019439077003919531718526994368003829409572447559809996763146758406064946758083783807631317002526466742283678162482273299803390932191379358227449791218059116906185455125990870534026068041993071784648611773427672143753235495740258336268751365102841930359669288575893117186611538052743224782984183562813055521289617335516428061747960628528684376622056879500574671978335144988102452027028728445507182770535503362723072748173075091023369758250646843924901067186861735603879583692531830430904281241880585598178148796100195374848250311569501795116731285413238359628853383606699001203044908817146403046326527550257257145516836953663309894921586220991170683709205915149312182846854113125717014502651332932953077348616572561283597396385636130265303600073898313800583338679338881580542757450568182311149809596314512754690501853148449617050696216014911805038402326261288017223380406657407494871090223330283142173464104124763496230207141736410084675772608620779030683861938078869341520568373148381170837158926772157677545227397632594287919621557034831847588079298752366197862293536151841487662109868428826772282740901600031290896026180152676249197546135322761415688398326020410411056193174540409314479491638493962689683255267499830808329164267656041100615271949993790246667355278430480362575985679598495301793917521379915505909988903921045177088990628253784732435174546482706524962819809217977526895817901179301161088057794510846072742993028152317105606785541656160269383997256578832592447754192125516661325222678385334887827435720448369735283407726221237785662202034865666988135805724502794985888992232897842736786456174397032028817329210854846284930700164423346975513231871672657355957676721604440798616146955288106402196659590567244954267246636331513007381650663928426119490401398745108704385839799140984747178113915712462858229065922314555840800193679952715535725193407974719563874194586761672058565511275845635870675086448243101773130423521948319637344865936552122212574811156569941071117302780558385605789361238333482819418875037617915702717279864727546458485453091636425982052270424713556425021099909865296150136656043658076399747498317900762259925173113219742991792045417201361666443975387549649052141611947834848011395625556500175284768433331653441655207779520402275477275253773970920870858893574043713106489017950619213724055603140862431948645171470427333059155118177657966075488925496983069145142441887015452960480355345608205439741971051483567231462984680105989571393439252939847336922392771793420512997456237880190734186269431948233966809413053931863964834295164509045384649819963154696961225504093305107856908482968943479932427379047741829094054249279372002285412824576970149578100392794699359993317462545730514819181211605711350652546950770345469829845713896497414466898140205911241297336228087923189829007334039071682535520379778454017582731914701120342953195481887350147403843252524499114518749357440212854214620143090466071731896183289978328680174622124786533726039387907418281281474370686294602688001967633511708014117609863097260360064035363460870746623392105703247015731720949895793015008713903475243265944098380753332617224486122056308447252381479714611568234468770025010291607768207747104033387462519637913272698278082500252141564136389753383262614721869870996097893796425991381505434704853152072822762141175286053333948205961555469340994497015219137375462241260372569082206999763077238105977071903591350460327486079743002825412391585760844033372509825658029773623089521696570412297720920028555670005148048648977119652293577599206809385438061105588264599125132851910637968009505312378910306737573821755307354794850507350590759596401198055133938638000117645765270283772233144767073664596527513884732986910487708006978919492860472666555929424866336877171612737479211078321617803022889500995473631645251696979921145057409363271306025855913245798590833285818090902643088541711913993298995440271484038654975766418247900102339663018188416474553719306547596279276217113169373105762532061655240331815867362275843900027970188119217471663870373210746829941012148213052613752382373225639986173464698847793746697125761495124720333137867656865433466824326640165306024595530820677918533912539112908571127954150250190056717018185138251941792072271271904954360539852428987284353017210211963222225915159952648068708108102057872430311514629536374079476948209817188361218305565461769548889062253606473179357945994404593372621628211307221264721196766049229212201124964979534492761429648470323696223580878890520418649853421918843920518906790168103120868353424994444601746354444427168036585555297238799307675225798298788660464691318826161118380447357734446383784216170790760512205552624843549546373313792689477050823881762392050411418497048901093049212115157997696486338325460395810781598167875444303286460764998611898943914265337489333895225019952880472230990238358693598774829302181538912932671624710080045694307408980671704184966871470948357880952847958540013700048296643692960175281616814668219335290512139244275807309756370885485708753102515117321547349622951422124991895464145630320500162338283596662093840900160890025238160754401544819157364898907182884785569989726860508044169747372945341445400141578860050390015146616620746954667856449956618091467829390944085991745247255208245068182186434616890705880386585194049220592741780516917638510216634261705299236958445775674654763538143100952685389866819046053675142614070702327334581321908658979331935933694860245555306920015928330357481951385693637888592091024423043954034461770081633537120738728274097572096841673494775319041633332527207858511561875716975711153992029156002104980491536399322575656052101456169740351605689992065817032953605759452151187779377679515879987838019258019272588175145582817379787196565937937491344957921199573715076597516019892475545642890345591570603842315924805812595839293279267399517837128242559059077116536072042719868704388134262326902957336233331108506135455135406942127495582507916980959049106594465678101388399244734901554067363947251149643998222452494851197307916882471338364285659787754303430146825392528381583339656960904543557103211056619469615238203454788924401626349892972472507482487867844514983458678198497828308245220299024459805993827542740119110233910280316203826028706639505218178994284627829705620575304948671236488326547791996099454906496567435919575797155412328603609061767024445377164457918256473823133105920242867855298339073663168918641615614196280188322413030395322633577862454859869800101729201996449140773190764646525588411576314892680079418144683955397536892377039403375084350448301902026984235255708090351297264214108900693111174751325961105865245192892542330515225603639026311380956963152586066874632786729224847670840277392376734876116341668170832692432335884135629846598374844893416528878499131038595045023471539623222419803196979189120145178771432566547436405476192187897988869736147929857274019222045786668664176650937611861381194665616464380549344724698762321016712574282604408325727693160282655223980606976843969777570441965348955208869223702565635936969856518601268827689355964999540713505041388273692500571847485953844662076575264978814436284342801622630582100659174477646554407690609206958020357518935425222575687854694781318094980000499539156909118351931890488326726336726085342964151993570193852239364747078558135797612686602828299391822038856201063432923289395902262351076619213896368599350179169083597354771442237373588814504597882644357309978155354070808119057731935300373790862365331783107839511102707253999462871645607893028790226395993526746963385965100331826745278384769938827069808568466521135181975652314198114209139240816520692941064937533513579120441361502757937307469300534245706305447717064985481341616761291264613835654477808944558296489969890336041068428597639684602523655745625476259870572996150725555823454265313435309744757391170226142911926486907210598227979302439493342774235589987278949659447893803135492467604836367304747609693290069121420530455908081455708297117894875449715867563630401531007951804876269541063518094575957652291857829287437975392476966225692426679279726537175614117206062517857178729728278967285360287868152877308013773036677845151613380922738578359503461807672427969486127247556147268108867759697199524838777366608430735511085984983344620012937886904357401781953677051815537399639091613717743816880095411007319047882365919021155902560437860897185877921351805503927246812369440913344843605021943291982596365812929363520066937891421549590621929603631079755129526603024874142798788363354916055483719410682530018941445029437491834424914998297600247835416060991874681330566243848242212079294418054337057799248988560576758071033759764732961449870795912510984069689254338984282661857703155565051032965085052969446516023969784260290486211518328978033372300997812974602007047983633089196505093946428071968740068367231521394269133062149905322852489820060667754938548926986003209190094785490625889147434194058450194816632038798471802184717984831307730944767013420271405437881262904522933993528681076240935887580789285259826552343783382110515713993931426386082890273041589840713436618807130584632966502324315030023851410540589887214151792657334115527905582937653402167835639516738305205263837405612989117284347045753546310295087575190933639764244242551890315573833575237715097791659570278483173271104908779431477241344114085564196309572010084116690534842758418025329895875256843872047257117818531821372233235299517751691488415119794495458175986203947909774696187528551370745741366530929978228550143649843015874813157646846840507360020505231131298138860614523071053744751543836354860498523040991717403539952233525870247953734339021420132281777809845505965576855526629310822599588535942659217592295109065720451635587499318670191291762764427282296809560087798517503056043301925870362341233227711630092529432508799838234285715771373418246693043309724160408794033542549369268413178537149649198181554935161976614146106603055714852959383252357339008650881006027940704706151813675276947826010548260228007995690635813749496820373105818816623922169839670716187059766785146081818702431021292627327074740846283109563543740731300952559694334451941136592888441017311239287407127179314295894323401687878826929626137230825836741105934133712149475455799829553430386063293449032456501039384781852278871532527840221126743924418352968062094803799982180079217889422006066072866725302239921555775254585758582466544380424147487720904484364121718522453502661474526152631795032451270120637272202584521517782180779660325474039637906367793668237663966630614494109841385144572299793957189367595542823718327784590379253859330743807786977048089466032269808153415576758976200830338408345839057736512458692825324589007798828202100148555193506756384282459022325104171409063279212202910583290143797102470601594595342798929332684243950549609002527162709946868975651945843592389075995232313794089319274526524272664464311638609992367524900977082229019648495178710654893680367423625220303866344143266446749103192842608929674683055085122810074897907972556649168014131628586764891300591411664431992107197088595000508047169596531028412836657499055498474744373206859016249182250010578953193094951069937093560611599224181682953612314057211959503210176726410088816990184620599613520632979703326593441881039334417463389073162745364258303397806432216021358652948548994872756667184925643995627279625148463590686711123400429496786242824709421229554184682494820798404464924237360102601087488914118563505402539965342441668813262875644940945023814500784576338032836438428953150894118713425643573697457738318161906383000971731825040497226535541709549972584935504524741442056460869110363821858733269925653838998869975637918323125936269741803126075778966578662046451858071420518451593313501749720036887426706609037067922339962637856098981161738550339728194975706567604674718945358978313047763924995454813615972694642960276555041958559105558478717256067318037486472714477907823441777164611828998502525039334290970134714123657339136874035715395929310457618247879390891452282040838163027563787837362214478825023030364099614020673439920559681027449594343216368145354448341520428376070284817270981183228186862963633896858335857959472594761412288758320969113345092314954457032300653112692245010794704872253174167527675919279909066333311700931757162428299787797194935869927621280426451670012657623120559994558665535524217092405440769796711924828291616512275142448522803583748994091722020066922872102276596015447820837495824417440202741306364524744044050413908646767924388741790860148054485395378832094596243000904756860316276654509561422174354528905125710610540564408797728994139453710447313198591214557239973245810876021914981813971151320626871242537626273390014082055502338562793652728828977089943404476454932115790172282570059676007337770594976135328676604079322174774502326623067048189827164200349142569189277292448699189623902320798638615936532963530888447591123463552868303030004370235071424627838380807881717595443268296982447345977615035445818358074802870960280053170445282574937604260282494229844871383024883594851616734557098819931835998008743642059924832734975309843926506752238757983743926486320063458417868730604179453746913422281269779916014422962556842671613326660801818610122356964138833226690421948533204459460143010908259996624032738229956676446279410068373431548350158833456358747207343808928236246616477098086460483472163729964938829204787844471960904236042395566336093479272815494381228311703023686830547245783441020673372854181433157858614783463848012326397635146308170794988357207638045643296466036143517175880947218502703689232666685907986821427093826805395458949368345230135729115106082508733499927731029794120119656937651809664701428296779297431248105439880885906380938103923224221405549135763331743784650224526430600989627658538887235814917387422938788411732498386633158084892782825833489463395008283885757731112366560071777617932304252799018708862640262192862509488883808819227418269557577954909336772748964239558460137708680602564532053855480213731534561349383010507105231140079867120058159638590693893840476106336885432722150416512962979522353336759173109070626155320457562401157742671861404370504304581019487864776480118851242722274266803300481938297926466402795083448655807890345551531017481595242971438370623527039581323353556801820364580473292304287095593520211323390617306702058676751554725000219995740698638557113656556986097838460896037044433968350378639347650162194428523039796878494888816132114569204814113691783531160422728057353071303401306121708054881789292531523206131013843157123145924732155669190615356442969833353834150803886037152479626025591313754658654023103569857246717380850152283990722669310150960382898764416712835389753729740022642209146219863552336557196847353123105754574843514924152734343809768958216701993219994844802788502226110052129488231951737189985945017057434248365698104067805149443707061448770720750761735550334612679782539468044995787994471310598342930262930933447134047470727461486436865492495057463079686433502844821236392652979513073761755601804020178802690606103837725626168472477702081446457614341131884312530520056265617970542064347315842423086135658136076069710302790335197294673280807627441520611476684606689191143721295431720916083817061542333832145414099541013125611703971717748660685128788663416116096368502112076716970473117135339883539233372502066321530630362215196021071132159060212031831273430002546474995241888102231327899988806142245284891492404497415866126612487056964317714899566075955902091245872323483783326710129801516597638178906296730606723729507695573849738000503950488757049622238720045823261111154545798220576465430939948106428934137626560879342945755532699544044755162766976063357092552794543197357877402549615355345540720881033772507086840733039753272782183259248078151433351592240169718186500017519146192765568946728732685167174074320324604024396036948456817852695419830755120565688971627541184006174526185868812172443877594834133336905735029642429081231359548328227819960766590065389218639523624245347964671467121118378417440506986272403466251813390902894999532676767195357271494662823820922570800786221459241348372998826883419649177691871815364311008899099172561927431583853480813466975679394398675988620610959939282774686921794958166167558784331010684916940730792533748995347829521970031347127472719005839841985311487791300897964148025105446587786784837458442837658683444855655302824011902339099322323495713332631249150559883052794895677856891318716161027292113875910524429123066877909809841391270482830666676810059589780551808813955348798595361371418421258117919255533758426543805787127316951863878031749819603833012255772319022215231623743503665410937590251051667408396966289692475198848209769621491030702129007073992981299439691850059249217649793435048492162166274339700820804434127735740844756374589764013970373351702344824642077945987113452433679395912531657022447693778218105296957177190676466382076923504317231472536560502665360004687931708032972871662948993566925952382041025912982356018292757671360654541676866059781447524289775683604593363590691722821598338315486836975539501550956486043140873929857994994813690576661076004495905696017205570587014106419875259173821272702387360151092520543125812489386765587429499949251888099737566245642092599738822571447450553147665446694809447194185892659659728042318576773496167026510938454288129186283527326791725077946745116542121898812915490696644430330836885534808455016932289019621844819589134277520310038998606620135209184478112112430752935151521845601364643381206822447233981690272248116420329618711833336057671896429021991839775976139007761655852412524363616939652103901810425766581339528325852948568783329522151911879575691745451463174012417631913348118762724362014329254235165396667977846116672273762095848098259525674082688932836728160994280582565434734033032829769378943101602118875755147077025891593680154687661098375168375198554726459468369902732696655990878405469960744811978845503610370793428178882686084935371706190149167755323186711286018674615461072747307560686839986417197291520032118813417007663400466999678596361707421183640902198795142476626907605164255077120650580879514619789448193367162277280778886055277708074489038097952466860585526261070547842687026015451987262768348272545869357719572274928892989156572024097314713775843817744138650136962478912760571440912267021679176548484507132863905710738136587672902165195035435468384739844994905112189440970568774682522681519127553606464388436821112370833540801989866923237534153425811276730522182378491160990763682943491992319065993831914460952003873405643774220089000614783848499566534715227255879341274408182798006447093875695462053218761963197738687657278115557877002181897938124079986625774724973854891078603263739478948032654729756476147342835064101633825737253723965589792833977865656287233198057845117600521960873128501218906888170064065921832014973187966575808841000805768802015146743515852256017634391937310660957228542842862371821639473903103151873847262295670801698690690126161967727944420573954972173491540298513190941203028495785140033369078201631978565349490359698074867360993468104085618061795490852701096211179357067657653636223938157486770512300739899272794607698537761724173848775130569716163440538287706654300827696218880223755620204334934712857531898598555953545325425221797166800113590896182929415016406731075573301109785541763911974193107573265779448766756077911302159255113126105330086009647340008628172678310450595977682161565201872750942184750477827341930633219973407105801520371528830336391644710510910590320745190903613237435672851729681615667844047753083348889553197580074108220474933198792170143495671746283561903891329658822151340282100291846704677067000609970168391879624821359074261063783831206667668583721651945051703488092734133605935769968175093954650736556284311380321530655510099124443005388549240564087285591188340142567339358067731090137782795441148711112739034980093924548820930193342100086947539174963972304590271894041506223887101201993994704377786211425939814062200479120967536311158717419089963540725365803574512444218896563741915335502960014305305610066454371931842108494596234254139508421518027686391866059818002222368407128707417680440560234978069701466634362914985045118937062877209022340005756657708955934502344622603199392868813526240150285713089902726374010915073893896460662922291883970656068838323278455294016323011955978630701486816593634682310614102136481790447699792345099809917998333165438325266433342713003413161238604822213518080434709281843942477982956719207267827550493224313433189189073503227796939108375887229238863570917831264463479444396552006850922641373901564727717801143888330411748348839909761444743320580122621168994482343209577135963383070700268416867427763811848140093114256286110730336066503075384834383240516458582258539803029599231969863515794165614520486728955456657500901117110672396189045662944178683020224519299637730149284308165380277719575375434106820326234762461328705366459693971542120329421930994584507660699689939348110149193935598738188246393100243270334584566887293173196779052866103401907643457126887659353839241198373653866812564167981968075879761650800797788061063970950058180144563907358229662419004966871642247313001241899842831310932220354541211201552825982243953683621676538827831637985047905833537186259989902422134423192648033249424926526115870895674391371712238941404331542562023119375121172940882628184842794456206457261676875809210256988843166964634042541409119555486889350498699929777379865241004873253318996937047731029849718446176075662477669327596724835321035470623050613917284256307143064777422431489660262536372501206955171985386301988338449854684417509715142988082017281470078019972006779450651929985700746972179747567348075120678814592708396216592629429325715160835242045092588360337746485896309736595052685289568193197493747502419168927001890862606643021537080878729898232629271379655663048962361083236518307466175686285866209969975245479239995175125998617234600684407416095969524665385862309729307598599776357285130699960783899094092271757479903402511749832712804597432853318577883596465004752990780935089210338942521098341872657941179353392302687029295468639829831872341485146289703600728946296919162944843376745386122123748893968175975372788757637912832003659527327984850621567793857109343771345969225625903234108363807614010856719964405086719593436262900036862455232713707863641779353466245079931837245653511289203947440422374316756779593499920544268920346963036484086698479469182202172304338866471498474192666281192963438019245113124502085330550853809258751761432090475719951846179444523652937428100656157122830309830544484055239928592076407735099332038303419501445788427564053189891620286582682118308935284940055861107618131249546114269786520274161819057064680529988662102014572667680823002599176118361509866393741983524694256948325633914006168831132408229079110050605814135788738781714033329316602563863731599217027802184593483706611854164649871228998902556432947477481886472204414414837159291327135656682682298391628149149425090610771481457770527967212695189538578725470114213046398911132420322484486549704192104891893225250931398751354517031257046357489986529252384297421820782081371992638922497773955560315587814266964717396507796845495176411506294428803713968140026800731692056643704453603714098443449431218183706289915555689405225144370162362797049431282003066113266636518488768230839291075357479483698329823241521581869183068359713957041857740895911099232494048608352524171773839056661598128635544493670534516956382408445360890607819688502163898479612856202996634596811621125238901330751699934757878558434627504009445778776530317720897929023816588833449945662315682946032427637154153469325080177836507292114597298155370807646736014988294404364936806630635625949409900305834351663870648117058322431547751555698185557613271479675534111570440554252893841255078351027600458382075352939483956244383822515000452309967933994255190095851881461371603530097892144042570864485766820865988113724521758231722986183679812444882481180321339014914027078750245870951008458683178195145906130202934576527499899998798397530339801736010096968302750167743815340607713256703143848817772872716341697581751207045463388090118382175742891362806792100373911495557271453464189237684097705638960800573479627745916203901874184354121592775907896543191012067725465656640114396654578147758237663506515304418823819016347998621490573896960336338318938103923806161838495234682871129773232573482286373076979190650991634409360039333723866280702866309706914701206526307285139427593409171865547942479921755019076214226366097724033677198332036010053552642769180211049560129139941189893328422808006914439204911283768517515702688271304018331883383517541045498989925420436281524809052302399317891782265646692536917790960216961171264889938948610875555448207157635622682963985717201963369479958934408076188438745398065261642852323734123968346889678160492276780670356854779068131614964959148656669390927104321364208068091791607848351145879850517659642878773185131063569146893427958178161442043952804421040374569592372476111120153100459519719744112370171901050022527955145586501529734356504654775881566897518985329662282162479081130449862667743777495573963181848323388642604429757531478762571462527727405969688054945698594791348424077629672574704647583159638606234294704943770267600657115383859373804239589316290363253449419596266114449947714366064283733015498584569700073014249989915595608836888306849871153746173073563059863335837634387455339364067600790850491003645571391557281423526108951868232950529946632202906342353066623948800634033988603821594536716670751322746490968840255377591526228087731550758670976457650053572438019567148167182861280529539484244083081168538973602650258171197629320946676067889476659345920888061618914065085251291466668922731136281520300088832558160862637109867433030899451486655979153595052049914089270515195124832981602701158017075715675977354167659063902709525807616853145272464241298943558168932631339085327999786422760819648314110325306688332951378782565074642382241397894604259590273838919347645266488249964785569981252549999756935362456567154605911792171128914637543606767999918484728949259505324279732948644169112401473293683786123761889706840398285465086354602531619339235329790388729419046634940883099650756638904519079023648350915760661871225171433604595023278725557378979188582842679910018529113985669942784286085363710344854841043273843020035860563485985704757555887771334958179102586983406223297878679150253965580793153541231894161756347047642494880613447884968077777853296430508139883145318737805593594935837004685397640352965589554459617643899152855862930231263738232567800313654181796913966479399185342649146424204861671529190771565725193744606295845396080087887603952635872023499414900298152666547777451682013455518673344625678006808518615527646699566527056247721419128713184976830318297408020436680955595553170130315220903828611351852590851987812813584625401598778459893318247599005003431965862219654146900492912045048857611112648470367591918359286574683024433828780327156392538324851184214507349798713626674769303451657940808673112226950575215865075492914467365907291121107908567291656734199894474605190059180289662123963074033675355389677695139882712816960460779142708203259550524747922609630746089609729996056368848726776188898708039160883298851945333147824162705187023387966792471237892445141048521055427968124191641521826528300082775912422481325742358973952551118771341400213977937194548048228551564761905845479356269670806159571432931779801872662702716997781327760912061519623676076594827684378721980196683236705110440870301616721184972806502746290311627993126711344866422986356867189390142233733303526671384623419396448075002252951402465672097394316452603885882947368136573915874569557674109072184704930526585510909985625796786618547257573506473396248535667292152141060021393023723029206668742692453984527144847736699734228539163253227743480714926839038370191363078936739025364000603035282010905157881134006892562229081622892865194557562190796026863920676490591870768780350846996969454944990112869286525160435407983550229113893021029638413258768900582795803716008835972126026464361214144549279651063529476931474538091996598158460266814141265912423912623606955620451203158994812860934278765896358419695532968462133549028700552897709226654856790855568674078920764708081506082287684492996601449874069101086320614471775778839285426207347278810477429010216647676705494257564591318380627147715359310949126353352557485481246097150230903071179887712680656247019103540183649610523766825821564527136339108613694880727983019232384575752406331924500370412569753328408330599596711800951254939212011009186839139792844865152782639557614619252876462142479649799008481411663134209054011027861429970931476560198721576024095479678225865717112501815102548554896317861923361213007853795121220811247028129402991660931811170277849339277478220545660768328871310541268475757696534118863948721796101681843047838446206460668887373389347630346017222008517911702876492154198750483338866881807795506409829378620921887094310134229027473193235595465085982472989837591513565799051513306292048420350387146076291745195233076467801119020511675853388244701823286864580895677680323067271253079419785330546981593004572425941118871125466628195605984653658595162510078776415683029647288598592547293138220344835072098120722698134130961051737736168995282091546439212866869023734973223186552782600066377117990040748283759018713749403577809616040845075851684904259207052681055907464633085301365670444735175397318509350531173450871343338726635217711820413631976783472469730342510502212048134668832718021779154656069715605263906002058893987912161959766971811423292685112806641046094243636095585574288253716402134500031691888447471315586170213604110995695810775863040838697144166643925081764243255088311799269814547492274735775178498051009763094193299718077042421762996666906740993639281571834474361400224831379599542320591891799667101196082911501846877140275675152100915074192643065363581422866683872980323351331797878606606634687898087804485990263330499895831995796487630121183252915887608155541205720141493581356487486139927783998274481268364818094835307944860084259257533439605880139389753307742123640286007969017093267595868439902263469648896387746702078549186423690932207680329415282111945723504808278530335322507158368486610984824324303431315591653624304818551636711862905493581774569185289577607490706616945103650489065213733382625949250160066955527075085586504233900684183273838375508279257930851931487971519829539503989288811684618297343205710121520864723607389491377409095591055744560290463821573059919441666974684271725246390247802711152831212381474995501071308534149319890257442548825033930268485562240825484903950387903734716694176866115049799454784542601964894680442255056555496634414604603110220808872588810166245002389262057493844615918802814168739506335715788853411137695601775679547763540351193219043009753236383720049790244691144072472439544300760304168592695959574276945078899726416915102628348817681976937556319202946916563881614370556722479608666202577164944733446104121494988322372075840306230552824961450176556585787611730878622528427864278233462238287368945594010263234130243392959731208028105914173764852675950494918567571616841380457951122917358708235595931230961398108387963675735159163926251773775260922240936189384618912554329329587701962434710397060443752612460306594147756359070779850508276119955988489925341461217283099230752627375344081889611569818215387564746973173135733118609468427731110974156811643258079414339438852174492753989459018465918528396981576341834045227254878783053342811888231154903322113268356643564308966881191169332737362704543279715420951785368948103059166726457540382633598323139760554260834480183031748016903695065444502136255689739768865721495103756877713838363025895370094085543553339936109938766828334922592663134379905402061784720931484646289639504846411588932184520506042947390548292021293830379854574189975287517780651943250263030167223486106252278431875907740906450480000236909660594469237911280239745203743364731650957284467252994984074614200558422331422544738902447406663335364761099494132259522182332227892137193739349515059687419478821267806249903862396166026679404618466176267920506948040994790796208896153218471381963518826798214259135136152075434258232486422023854905677157833423820214448466255459288705756219874187689828324932471088721972650224691531685827926801203975081858714702667772459001929142354959114128852581274784680765329049239516927474171497631075171139819735542566849648474119551317053336588545591938985622864007400118243904951696083323739685440482575751625363726040882832119774958949343092618877657103204790329681475632157913773217870815823350221944530673182598705127558569891985329651675568327483922916155351532696377381978113315195371064592250032378108075557347315348043915153323144774200103165027189398972402542745172602551114554296619896409959532913219314406404382078072194184027111019567522205909393443521329645130623192281972740797084838658799356567970378717843608101918006516811973800553617409414115017916618865462809727233963139412230489951507986504599538691348329501815241890187475787159059120034263854952535939804215087287217685731123927216692971510645615539948606816555867307473983803602801522504788091853278764840001255281449622024294426354415180209722657681462584322847237953225259481666538280190847573414701592294664093727592635413802006637963609355991694063209473802390687591937304547583365103324702110498740829277490856406879381659919543175529830372885278372311303390725765528754243081213313372569105193358898998729312241053728430502622476899068229655700222714038986161355550007224096553314131841365046011775399912069123168366331576606094349212740281315824649376634855920310810642916007625777881606485538966195304826359817049832808948330936185039529657646481914960260121832068846184741871547129267672833127753700688030554990362293743488212557069773099963489974673941483656055317846867018384550936113753737998009080281224031211978676784661167634664257751197522179863189874578180172031666577996321390987840303895320019034669235292063760976164381450004377749989291406255838093501277160469641256590013188203326082457392586946096412524020906489273636307994178356189167735709351342779961031574699063730317260692854154917078556254323698533658112513659117560152890125528800474397172160948211362677879232712208920804341920527209414514514927043573630586001018967417992952215558661961472767941745045040828462500656225699028513174365781548542677010834338547893849860564483727995339156198428860186783478161858640907422863280122440814246781691090919884717706843211789733259378309486613854208113923020776796316917172421494953109565565937774226764810538876917530864244735159526968428201427903564451987426364104730144191901281286502663781535444370406624001658376252823175172837274827345689747754508274621554317551277924491525575334966723257999517972752774288346184207520358007016444344777076456881061065030062325974816796451091644989739026682412351631741247318583124245511290688574704539867795046392276528017670578228517806737566869926946538172781055242689567993771326306266947494060424907092056039885526603581908991117539547567283634708055446955557484655532409008494994130698801218286562730148257224795984677295333725387568850569404092859271205268265287301075181526475634983957670021780605551283157392396710142583569295112318834049252885535593362425853619343383996007264984381476968610986432336839359976057085877677263704312461360896736939369392152133035975100754397594315933774940422396013252895390815846404433082074514528008949303817699615590491627470662546440516407613001575855106398362412002851212890330338379499548046318207502542365054413468160028265944796346414727033196065729273219042267185253663147218407029150965101073568148843954617288848740624004031082775875934043568561423174711794810935454327092474478360870298222529458323146247242375845098989976102308314648548146509403869595255052359175885612836654001897829830090608960078858031307380895324288858907963830369051467940770898773942313701149021941250103179629218103527880785564631523827313679409631633768594730293313102046885047188091117360853166320971375296704434058299577182433675245313568043098209949979789979631876423576958727550452479965869464022106030698368556363901792595022475367296859037916192814808430580233163640675757374575387744946445759563553541851514720053858443546661244375745443888280121740436297922959857739149020149300967781729088368485874919829541353843747605339261062030793202477314339638960579449440230313597991571246896611841661453751904971415909389173676074259658254515624405568944747518926701184979298039119625379079707227046699480529897400297698098131714474517970091834617262210548212908877754526153115425851745554018529643358964681307032689699548868119670102329750657488723894970915360158310484782095446499197436683635450515977260938642567294037344773858519433863662566723135029727048535389035592984450437890489472094532649205130557120075439930013628623343545649449406123672001630797000605746802426336498544760321315822044665765008100184941577543070650181903307297484732519639239482263248749379682345873195495185804015577265468439071415876813782626385162841768805772496872821200006908378309434488916063921653821830126950591321363799321462548617563994255973123503343144943371344951784453995685878957910512835888804559140679344319658737190079717973898279222880415789284320666098834814247545418191480828691439533868314198869672043442598173471342738715118977016631813603326477254879076776652611269950882663244802470422556245889118451598716604276986442397532343409496586684174297907191435070474326404555028427602809335586646482775027927157906555127617612333127772073363315494619828290134205304404507453645230760660459611071733231148570448242272221179633240854141727543771962987211274493419443610492821726034803733562187122822453457969102582778880120893764387583306256732805563360640680670017310860026637519324942996356175035699902347794950964107664715442728616857744428083427224009727756276630249690518230704712459358991036903523861214854653306354964629888987280677309032915529955523139202753285478348035496392338637862993807447597395329001197972127977567059099162869373444383721973600040098923509575473348537633873656502683601874345976800584129267832596779077440086505185655305199175270869024097083231710445762907573924424279100051504996726438801783840770564269713095862423822182967870783226446504512966809253348868094872214329799570487235066593578441179802071067393874572455262179174084897805544011914377746576787835276618973948409146718532997931359875116435911943379333058157737903555796290399745275525581863255425541056859372467362812944491423117771370997678088380617491168215065042109594849504244314853160265398587339563745644740743437413638631257741361514185914900203421248626815596999558953379772470811007096229744550227907918618825223436029949299976262950849351496331869732800055143031358840894711456193559715546411012965862185462917991065402829338071408313173749327258234218046528598200387042553712685741720250793236480233372478124017603800580320307708133679247285711760707543625923932486123587003862838179390638046328044065742970125168472229627433719596732846827982819614423490560241282553140435819306109837237070569591907118930747080941825395229104405347351236745980167621026893243086148956273846646195334541919076437890625780332425461422592285224524163180088589853886114634213996669270066033607062126658479991542573581972932052155988576669825211708665292113693560451591179370365342053868506770221344412945846717577401264851065990744680713423806590188582772345467239663815584606431802124087657792560201102461170535147438241171410390618499153497219520442581234755426387089686240936943386903250757740906297096833355680795775239410631726500591084849259720790894043705365192721291465310435544074459457450831241091853900738940787525792171559956207069443211211638937221104661324553358581678882762940974031813446969051968344155048205758124552644143351621456748564806790203085916787687228334867643921868988520561186133846299185822839774319770209510111900199391486317963769836601197786876785095851252569464245568443065106810003482985021935616416213510446646952214400891180224013393448434114917377645635556761755117071769658331194097586948004980200672714599939559074294013272840968299207715567696501705227685268596746421694065879850828305266934089211890610749586839344721723618135226745487279459097708617486068227562721751022138730945002729952126957976272874125565729028750215810638415337469775509929304356046950848565675107650149416733358008348229819874860002939158139362242334444864565271379640133478461882866114456407933048544021919748413615322039158887658287935222073466168811096913510602270671350191195717993465533851736962753621158142911399739329781246805836154851315036335160149925772310661363907931963638332380884601105864343696074148190428804755555337671369533576788349498921899924515521775095034782802330577114566477050088384871451523440709375652143721125315314828500469412054085969867822993976031354605074397540981165151282429430480706059743674034549778215357029398416927370595348446643135170710663875338523517992614663648313374307344905879560307711700091829375267075793253525433441160634673773464130380844141490213340321622959934333183606500892952402836625341340105055688178249844323064528979597166578742681875448689195655266094482909694098335105049867382697811675842420941512688829700558709647423513095916753560971582583970629057594689202428335990568449860405316959036296731682310853336404410327087060610958043408558179321547458518296895287879805513476614899958397271455025904694058891809173934846399958125371402890099029449515561066873425199525249612301259668838337032802393880883284709748769532888078134484085440212455957047489761368048966281120340906618391499254318265409082518073377866745545461191355686383634048149146325302318425888852105318058630027496566719412664264802872943248708099072964025050540897755203918538230387159962626195531799906342684945211056116377729716775237901106252692701480368721123561142804803911274549817724526494769345157204626416042863912270840121995194556081323762013929311677450276810203207575761259352962342704968597224143818756003937646424483712288236092812279274198469652304544136248671776328674041706070131805781471133296876131369100343881869190035127671241807988460023812977443665066463302424130298996947135281674331294902275092266900117521736352787580835724750933016288883225230741957700748542523116441271710797238677280986580412728269454331322795755447785298616854051109090305011588825523112295856317866090494508373296785107381104922214942378865327399619099541778228166314036971324948944839740766285766476626490325723285852645099118897037722635016918543652569642459190374980607620784896756168383321400692084845383551219370599986893842717967838061732498612348878794591638826356439802355118965172739409959356811004799677785088316488176353563633013361325855432483438632818583179515326334720076733987297781294952787175959302888297351795668824667855105486563264184160053388935630198608850788234500726148461125099272961787743652917354975036462507368742951195082701076163252022119721925614868648877419694473928960340454977655613592365756301123370085330928611414850460444158923255324573444537378517034958424738099588942855891384983305903409433201998756237066583459889206559161760042014627467612745938671023397246091269546960227294684583925236769784699124297874626965379405378402736906246716261415424098469184631903204912708158281032202874778220996712627767216323828549806068387798691640083283003449377034046198192014485858841173291416670959735039833668290187808708233530475711982677419849175953277958709540539155559089785593670534481244287711327398542306775704506564292241661916393496936071182973579933335422885275487998053810999760175127290995403188105131353141813742908009288634635396500197342549170493411449378830749144235601862241212004769056725069595365560839478686196848730348080572696768903325901949572777273377589530625640477125115457547659355294114785854522574661786258767783451025633115197168044865778531841391596548348161484531368026876810199266688625438129989427199018861807212986041537679327282198419598125660634574347814449821803831956929327232224636684332320750843522047835231991012339797580740813967502416635278204117103916877840551614269655792497732427446054208287619520432018890204977926353745186522862225908991368916714769453372915712190881373405994341323991473490202217666395164884126103658291029590299906903163662411686490352043668157248419053714716064063415238727537832164105492971338579158162916814231240525183558389686394846122947988851834011500721026377203054093546113877595705314094788781975714677541031071301979593275892871378960135956508603795151510735295320242473540474301725365009811754289225064089321612066036581282407166063531812192522447991234090836174811960607003478544320905150329538524096994612844348434830550576588536970194582146502610234075233730569631706459565974145941876286499887125031578861277781125216808153132756162911910606231187795394595935035323926127464600406302752773403928080506681332165093726789441356187668421628557018121672602671905417705448143331791796292430375172751543870602631439565169254074464192327925542981564731887361708281219017595096192697781392971598579333622718558904814525736359645804839446342459903095094280639915942945661620085008701170570476065756916098165358990241596707565519759836292167538278504976732319563454405734380040293723285417063012136804987783188557296263598378243053424621302767328891931152857643272893138756488119380795230655855004612229495909719462938555247470926153651944915876851209684485019277174565201323018918340499622608876240144200441411126638999955504173259493184004481464941671529932302489637679248676395713789619574425822676171887767364251657689000907513153207329577183503935916384416263192081882493035721490067658566644479359879908296654023708902111527002907855281243314487996496060098977744925228986438189796949882255262475487845203935144869041835335295284923821967793030390595080851559934725548306454062690221735727853109568683278433807385185716399301511005198984111518714475521174659507810317361246050365900322433961033536460671479949470667643372449824272109132116843784914649378259632361158855841999139541662625026407191779128617499630183062297742536878265556036808051752498166344961386294812805544674739538091176932284589776833501007198415011582318005468325924857901009986078578547165462977155729363416269818084337283075899799147216317291851176240858279602825006419393262960891137663181607501753595902804103496369712255603955882544924269037068173237649628970653039165112178607108767284164038449064368913254767285020409151435539603928071900982355889096861697501800498543623611188096869125365746984288320834122778399586684463442430638446380200944655183817515189231512301851356206365234329214601534081885430529647985591371359686355118936248106346578243850990090107100209893970531900477411089462677626424207893900125082422396013757407907282091441027329129842093394315662089412345315778453390271919409135398453878271785746120341522177382152669441855088815917173371629282427194268879914911383489750232008209930446369428652356631572340072782528251403800299989702553401296454506849275455946396198124105735431141324568880552618794549070713490733186769505505397856696179678425987236804380215043422881999941090848468543336818139508065380401849414416909213618320085822022322480428240943304069259680995835110697992694567987410656185619957176559654081150768504510956215314588312846753059379729158515702846368448397905757106923445517665167243115146596251192320357484398606053441177307896153529346257251242289830815137812097072982871984673966091796775607528747032014850967050955478766122340042266154360598714003165247199065219835431651213230730918143136608544199364210287327102566564129719710549835152011716385248797242325437330898901169389793200743472207125471102864594141301677904776664166350008383129102539222533180199198037716318734949358695502820996182464398102457166063185913717021648313560219111123672031902588710204052548679422512338488400507631036633532660293851864900779453543011294868014486307321081292652272287790815782278416330295409399087541568878665461768649644688820767770065257267914654331634213843268550514587063331199773465535794521797967714309844669794630553739086760266055650350678750862437105923291975242100952350665845415886216207858729862765767124693439346055538960579665872868175900597872831254091548006843547411169216085147359168318591140338410717026900303883116437190374643712251823620066214525445161961241688870998192635488217177910974424400890645960397231254717341174214895953701497750672688581686703458060941825214326747821339853910718031999211994268994094484499775815373660296686989399250192332408391604207370328245479822184271213429424744190106046526301523595875372398785292035793183508121926518263440854884834458449188763235078084306459021913104957108101390765153765869538659032119554298654955754888335100148760731841835527352650705819890747812733347538569053649605115053110411952988058495390122544330132432465803642912870481325612443798232118082286482859596897456396449127939111376323779406885079132927990694602455309711928744582921543104972115455956330102725735383497454099335161459276168154278015715381620441247963072903038878792482662019109304284240579760888203377734810200985136358167585070088114318736291193876507982331405407574671876379862660604756389680822718196014225753491603975108928631462657074982960296886671651120277981907072173369643532239866718578008209941165467781896513090808070960757237418833758341803500552871594502358909912329232254952484569174754572530229341557073151731436632174560478596736214408305815145066149878020653897765439296261145487122275446877257500864801090450023571423490028840048004413122361995224604039315362062335462212222057148409629132921438316770763699164154539543746665934875572257773717915275420537750670743589442864305360222823845850076063679561797407990497729640909502851424733176195981421552477103736087317090668870561239278930640623320599995627196156622280764396835130554612071024330546715911657324963838085439282191864137716874247015158801199465103876210066563685181235588525202749469916658309843072353185351612593422395362682812638913898549155940796786154732352428349978125532262336919202296321981648178302023034846303078726053700079978907870495819075692182068186732757140866219009718271205415921193432023301154620522537057449121599254837179015058846417347571134865156798680515794772424265387542721060461547875173476024486183767017633006998663733679010162979559688485327512369847541542417836973933881275125033273552476777685008989804715904618145452329821173417373857954291509730269886353082030181330560064547210822926804793519012358960803660516812082416234433012125483404880619506187812854168084672721202207463278096563818552781421285174510569321694306817461870835076517841463227885686803206109891933512118725290585196091918623330950960170761036215724124667502150069042026246392808246555130785674427235588294667985948727995462042495665155446085740100478761396400650528364682294529443402197719958608555187375556517548482736360972588667444338129883768237402700374359450792326029600388865110753247535995171454029673281361152855960231128475601352278418690736072482128326306034771492252170865912924487440211329014115101190082589680194796467502404891039321201244918332959700960181538163268210556454463563219883525608151448094628670698714445211172638490830173471617086029920123007604113702829627964506145525816715811285503482208599665179168191957249790029852201647089385035530853536708302598405110181596830750162245698500542899909521340377407231823750236919627591710669649023683527489042833399014036488789201373121032735080827656872329646486933141234169678866011342909137049014820652247650178916126725504995607839667908964500812351695153153898913323045512926631248303447463719600456442096561442171683028100062290360042801250173804468991468857707034272786032929582903676771083526482841863172642989204915037859860845043682869054423739081159066703302877988043968062683175781079292138825890759144879782657779979767400956495204792475550233470680156012795573452154525129192807343074134230636163470817472629801748614432154144946331445555548873279502179427034283246878624066429064829675611495131852490008330804862333828311996848279264462287903087233861823551742453353484150328495286543259995993761897995631064099021210738106695475255796548132071389936580963300926679773018087070101337312478026371104994558784333527376694995736397751997372298143857193456869726679628047619190285241838937341038202296518187344558864463039198301023172150140683340491868600714585334852101705034846784959791517341252849635527437510015718006733280578959416299420525091949929954801895007152370069114194206966536381835406367260932621581459612996021859766824237989523812638913886491304477882018862902940934822620227589354756767710037994839945182268773723788534306796436006785782309406014906026700712138122151460858441558863526089376044166875836663978122380348740456094597284620126321974328931364683688636944175818067032707270463795629494770022580464923065938510005456769062631228377849280597352570376649759613748041688155121153634016085573528085776554276824152495804107387646795268654183508108387903552410796866532521426261021515399141192009382241245856065977336640497804076952508959221533305646424313905776917758504385059244164801346425433438250482848724968790785835573867851074044423279969937281668255943366800202690632842051279704043708161805379834901443787998267794839774835287130295085497780230004056801418238716164255496458298980992645379660625819424673604182784153641792791386544745783629072301922781409707417527944250436404890255883107722655064556334353284254370743450388541326403300148871835489112918196745473818603780382800084374830136635839591331470893178573731434982918825631070581188096771792176971841341169658652032295188693043885971494931785468202904257190663828744685690960042615089088490162693105569672394027676543154924442831032803185347163516640274732677999998683331069272441479471685743974249332704168393065842130671883000611371700774672256345413542193415019253785535087511381395294174852778807484152848163208481878610735752395202587032179300374751816478927970790020714971807714513162542111533504637730999712747936487417227652349278072110135795630042781722755131016962517934616343319461191794934797977670355151187408892672607964458648195381260585814809047119218531747511577616231773763829374948753150084450196329547691931466130781284300535797209056803380016429419353442350135155138553156487154986717158472910548083055072492276918815218417158618655288544367847593882999131208288139064096345006903644036480168532266021023155790798727660170597747637303619956762527097555548969605086344355332164019321446616713274101993455392135595055661255632495223899205984701702333433531151082217390752057217929507344741472246953485011838183018653325055441926052891061656448232035935279139983098375117597684429824572046289943531991971544573732753026837737219206589619749702307946977423303989343823073333844855925315328075418303976077092256519590503015422335178357684922457616503931975961470547163134250944396880786345375482309397002651091951522223981308464605254657158328781785648087968902702552751586786786626307789178147360062142706207282345487163140722175596293284432517342951087490640905087021440278862852649978487168109384377300374442301234739018003259094837025278332781581716003197553422366462470555841041396632862139868758299468150129523387550604911891345778565790341308138266580097770611507770540281854661513183365108250738824820175595595146158060460499830385059691673017648907676283885302824966002204806697369174636456304185330596940298254753180546544602714718282512558828498028089899522189425177247613474029996755542044669010225662765978429674898969326758291592911604205173405371448431662366913784103103185032120704210388442602275060374346412598343471425333720621997370635336023502496681289586923734706879073507550382216327670562223022520292058641344958883177821937072582924884331735640211086783905311193056454232201250632515562387985314666937137460480357532309182428458590350647578812153264121542799289241293898306005007634348467689286279174456587157400421180394213271941619722254071524606205960690653179611395120065453662401121834659801308204647799858661417268998027292101612650987515479605598467330437117152314016001366718479145268879562026227152041650978998355860197377780036196308629466012895817853462278220737121900524247884662691141064763447852696892431021341051146208087383281320749222338931512425730697837972172621600271921240265329859347799470757468668606888632345578762973734148380189540900033263737157733582405966694183727786185664588138040356536667590880664249373066504190709308049594257809579009607164830902517665577614242116022710282961641360762266951363160880234105955179567954474701949337468890962555468352183160762293661850271525418076375228451724152295261995245931231417471501601452476859064413705058375513160709047023607765116044978574696316131232768323016844244242803250121248943024688498547288030181974671810976404264160554755683272196638763702326008422648818396571105163671144882601797974939804895819398011685656815481282936757788140293046378371714490873602803718233666267797478064487219823693995583328352874798877029285537414550146404605171110026807925444730382357277146267673562489223595767441082939052798520724769117005961428518230008164508410703277712552275350995988383402003800998273366433472173736301954957208928103408439857124320757762757701194521129942779432002015208500586557164856791482041383993132013986707065104177439230114817539899349913671297374863229446071677814757766922490627368997128870529311546545368699566806480493548851874939760588544399367981294029639884504479189734667988107279188929712115113095069655744941266146083306586887203994595973005572208636368470846497800675092833218447926349873240198653334695895977607125585228675948887560410082092242181298373641694164386267480477063974661184002058251937149289939681131333733657052850333416460065158591764613679986026019245902797539413585406635915848224689146903602902747201267090525461517489168184255984883636142475861077916195783685856998883813415661956064447382684189934156927955397133994299252582454462814325169876334443276237280896624603258122696270608774269995745030687118084245197396908573408200557978552120072429058557789112686492170403933688634216499755741750361226534257251029097581088861880946414924213105879374600479673949092843068166401930797454017785952577384640958344440513605043166252586111386977391985613325126938253609471080641475088768499449565597495520170092464695581871029918497629505808731863665275647424673670927089028961748553364885309352044899349658771427099322194966247036498438253993906603725976238037619707200174144705545555256421945059288016343713542530182283949682336721459367145040711952965831387240109459516894075560692244765072906872487309078083164803643483265158641855997670766985096584768774923182443562755199424009260857675633007267986192211175240410060611765742037660502209925567704417424851919972550950292062218082914232907179958766082505092419291872296196735032335126850988592559890291892473434057909289743891672823070122838994687346972809964157874139034056983284594892155315969320798134768004702983011684732732473844125125104499922418295953340322762479297274279032976024006175918280516101892699127566092068376543719111320196643001278908424259172573834516300841047393082225104482318959386758376149884578768803690724711233383721286156253202061347602927291157997508026399956916547321085736770708298636674067150769137556385065123363892811874379231002041827506264504454605613447174923960406856798462963660193863234125497479361105969545425529966262158062784867043599320411932440083228666743471864258745819657333042043857552099519949808686759747543439143633400124246919723383844005868970008627848287749515110197094487262581994475274365261004529847730881647500753325624280305643238083583207317322651105615703340322318085773789804656152641727752702191727905113856856397478389293687843228952485958279971256534263199882062346791928077469639794111925018519609844792571900504001450952537680777570418448381706569870494781272274157680438705719772992726184271197669231492429596395244041569402118294067452568441780019974320125384063182122765812663235527396919753271615013208291916218949711835620534258598495406058570594920560584302219533523648531038880044952754392225985968248892631694622308834113752670855681582491218187972234885731011609094664178394148786099285699079632332742337316139556241418455941421558858014359308330579057619469159625036564919375676361536179553012903439507071398103875870555758693843193802006887312902762684745922586411452474382467308068540553141208049982320107082936539867530410469927183321400272445082548910714403334055721408262761044070136826591691580608092280423727147452430605004939643789905366660344925236304795907668800775282347287808204261414430068157135290104962284631723927456531885014336632136155299608818985953464809908415190193928326870266211619338703727126341605351290140686077396191847210921951420586524659103677526266506822233066113803980953294472713107967792128491986795540457762393633096189094315311974012634183415423897527507306280222553141519249885032753197935575704897461363989434947581841049105906184864252544319596032782154544847059675223407896194507765369358292819992437177811480686896501411753837053580202516661831481764998700484598532088580973304851363324971548320863433098415644900857649510030633193205271914226238709678363063013273656719966167986055704836464570676067340832237346452971527386616288531731302425365888097439279583808135912309119861262985994645634698438571151819265255701957822958818142310842363217720217610339830773565350177579985364037467126190188554055875259548605936203378387958267554573273551280705224776153112644771621163809577815193042675719414017288113077575661127821783209747840697294691754768800313443846661704166758762569663741239235577672739570408006636176757732213758871653548406495464568059897145162530476505512173183239499363448884367393119087682778361580260109063721960330858537736621115725743791161036223572040338279561957151530127785857520912404656663041970601136340664106235304146381616185873415308223470303385295626857345896373426717283123894920512924058219329565242998719928963051596548999403264202141302926581749865075147855934038399963378207065642058455829866481596142729830522078257467993874377757648066022753296884219106593387304420868661052381780047274101141696189376954623483205902745090523913655159485471328810078172857562112397657586525658012918869859393698283568939284832085326917916883163269647182635198893645375652267400342979663384030479886727320946526521555664654394826311468784699165462688024149539521494075291502577684986325153333189173715569951371684326562308244150840561686590549091364109195409465984102173376326674996596483655685357562860048746048454255963333877353768568597092191164514915554238570485138902062526451652051213169975014333721439209967657076748228923356579263737179473549585501138211691011977832441520140854833986203807315765017658187576654570559346247113245541876800678594194456442780402589027216923766079954253184389389801706162320622717152694295094506627234265116839516356992137223931759513921648220011132475158169651742899931961681072257169018953628429307297935777077676758472472316399159380923666423824225045548147471176402114515815473418327784974497014377476468227363111567602830630869171011567791074710924865703313879543693826571990510486400418222022075146422357663706677179786441565531294133609537970243371726129535159465203657419277572326536255154977746650563120325308961450771562530166909161829374494200444694134620876109213837179347007427437929781438683836320573126227502562788731585416683513086845122874265928917843133039114398482911775887467634715756448102374984677514513246870297237351628481636068755204421101350673283146502239590462173411312885220350306640744894338722165931355213313456284152537026221921437147271404200887474258487270530527018360352808969798844596661104968154098078733286158472212086141584874678916404002686480612223219740662979188392272441449753620225866497812681116965513903194010292449947637761709432632897162484255271170305688297868930280588028432388127990246952789009262761953653042178715177945269184016169446069241483471402537521745556070714011850213877539545837267877524550201256484097703183793968635638626433524234807950845229676291108767880850467956299090649872012971952368129587580004104549362538262980003173770704916666025849057184171118070769969452653434387447349664944710803756489073108961697412450630356845219886769291956850076692364791402582044442335776891523685206576394526892635446840891417516153173002199419128902846139765471819460403837903090342993130583046033832104008825551627598760847432432338810964592635747914968077707120663190376188791579208533614309620454054384156489778166578405406781693140093373513292590052242232029328986075415004480770382439734392806866931228496986150484133482360480891409991715415351811910938766091667456757978927033309915426181203389895203970680561742522855519081110973761403192444646915665042172378043364438392131994393250792102903936286252401875721518648313182788218044603835632278769204474943573279141330747806707101736992536159226753779183134147046289676565837582106500950442116333252635829382708682034603978310330107568495588380871366051161801996936864752295404633812003610870539135053980231499151124233591646102467252937581985232611133693022636615546056361324399088948375207429582808072863569631805816697121747509677120344415774669028746909694159156167619161779840281903507132228164442034814795879070652177675724352815287258566628991352157682186545015013173799924390334047802386516207947628335729398213599776385864107698467493630274517546994539303532844023016397682914367087829692705497694520385369374849354155042752434149162620884908065580026381403034863743029108181978241917172705295230525367456728521509911861219681570759463292958410376156006801487271582335878724454124434736660043436920475337022843304685011732603566926673433146991600658913007488306455520048254486989054497322287813826676380269893427030239448467214130979910344440323976731253150447740333334444739465093276412309391281655449725726771827824944550700145296510064506738455478550098333093825628494122579906945009585560137018729930908439236342747786735336731618257580169531717947429182678681979495005006330194248099181315765904144472145440098013741109956219051321573792171674184145670433575933158866449179402874994454212368893840482395823540270278358886191079990984216285476935424885949487358179886968346093468231764146243662488381223547054967109777940003591039911909187450776694978102389585207542520500490106466635401359951591666446045239281854238723041799723511875311174133838028057352508902550670990523079386107699889571084101235082008952410352028961058027631716328909733194455087562867226125637830656092588299397874937737677974921663550491592704619510447636483815963838280822910672076830319424213956582678104555964206011660958931280115190679203863874988055870200457585504849998965124995297607502029006444561226065019375213801907569957587644516721273618417719262113438311126019363830864837572953705470498983401040839994053042051379004572515773950960487766913066200271173247998403078643435649336999135752614969949081930396899341216564357655591154911165317006543348975127620114361992095982685133662806075837698415061424659756263953290362017121511229236238273004131560148105184836632000184080549560750553261195154116329382996571830819999943613265111615477373398854039425107394021348865429256934871145003648083255100304962962274972448413026562383042781808068123827204036349772427170334526365514395213497136672536905308204863393495488231227340804422807335331756639376988410389154774633918719921506428613321409580698442755499847454348337610128092281175969670202270965220429231093805329552639655171383034711261763468579028286779528176913740782104231932723369029589523733603171537096746108029231591890339440777770860262668035637891231038995628047665389872355608373593148471980893991813291913321257992734096574816047099800161554316327765814184255803651125316759109238390488645737523819522009976286654146764081085696580175993129947917022432346461260412590928053834703260478820027576427713867385900052252344950266012125147695864874994470727541110736267911347257868908469236251664057360103842026760858484643617225804049567022913071141102944265807361056578028249330978280092169840473430780033959565674487939685610305539870709071315073276312245973836394693212784295186965797515685012235824103101176414714385559583622256728185397539335138076400583590970600568981370504476259120726275386008325277925901435445167528939082170785087383347447243692053463101470121999965928361734545914395452426008874377977925685860581376208786147813093970438098903162866543535251999286364576493111337701279510901541275851208259881691490170661911617152516069292378252107630877302660326448165052284088205228147407907556491433319154382750676106459525179873418754186384952462685032895095889869853508403084981088727827638848290750639469021821289965913981747595796312568097354571834123464222403460944972230774836202715722313500767918267540539070299578701677039915526130354623490979781579344755903378230555035430355691194795731115733394302417504523069371142060975290935428059999244926368431170631406103013090876935391862174954642876493916026578673991481821808756635716215024747965747338566554187094414822392563161284041993798718385875728559290395427372328098940258612834879512961350481695073992431732632090082955623068125255829899683459009868940168211692760067141017939769457494745950465520759756677317591393346134227595522897330431517619476619187739501590282429063466029289079858383715704391392769291700498058389881893323127520638544171978481189667969925646207729194786211211914867993002076212525138227556917233310016625108523550170657304985855900752822713125711977289910949283983268367194558981226892598309434285357402704703708444247196753415167993819113334863224178108878319859880523354322451915156907878661049652981380420501723424077857719219866076517904685509815893336837746949868171937322397382358915009061996153293693094875075425112945409550455238448188765182109269713092953654213256610026136136526443260934641649108971601806422226529725183357552344149677918127525265612826961670233529721591183796513316062158197512058399471564985346672343381862660005439248406046574087394022272314227767495020658737748168589281140149435202363738353652236448183389874375586993807655438874782426939845446208616854987154423613027041267318250940253406625311909356059002227768371731666968034262662683216234674840499595357140695625524233170520504872249911665493742837909419049054951915621749818010896606037302705607668981033365307414616461173240270280460865580446419047196429730880434868753652031334180476620849436640158998108336311819368783767763935985615853503046982957136366941770644524260661170589126123446837267199649356797411789050280935169179796235963811181315642374549620553109815118126825541921628746901619382047136632732186506410231347645448311078698893861526126194153296956310859838674331772446144814425181149133068066053239774654183886443127154883782296611503846986732062748630558643452868081449965271572717324694886041771773410061460542094444160188497075846729608930342834400469290946559233294551140942348509799858929511074221623092630960491651149319424948229772784223553409013670230739012576063316534803559449623702262545479490352291603510760497514679444184131087661628417501647358238113320651645666652352742016108021198498892946401640886725735329630184232436713001561742923218872207706058545509208665824751187236706911260613155208654563808404856671506568317500574334133883455205662351906819530630665011383276808229884219879643000297633620115831156525187025647039139687054411762283950272821019317282220960645179068028455576334599679636130364586196881344230429828165752026817285053028682051631886436579974658515006504061036030959808427545601847572753118688653280131496952052417703089134606757350574626503211674465502019892793052884612519412865794160738146126901615071301170472810674589235541019214876741519509970790942991929681621953959974023383535050729230049645688031306692471137179645708549160029608633985245942656733928844456385655273227494169354920331399323185692907908400537961973771491022443203861950413122639228999521407258159009453223904300674368520069371310157591375902846562754554867092365921693847651562815248380706060825514795243322342804690486107351570118013397758525630499178651905387049286502886277581641083129689800776647184402394242450736722874387979618798063610634992153045833081291362621162201045006249452436446955476176837130890920841593346277172991511567874469136019419164282439025641180592853257568372546135328263648185427490865977815133339834150950956293930783529003538848168492133273269489100029544456793553759281114438089096040078931002974312841736899851539365921690745191680387677237417807589343480112232764618190375885441934517445858168449191667452158920299539583129674775274567801512498074366858804938282351287949946209900433127995524149320700243810163252925487219045090955564062946762251825641771003270333227076823501915470054073254896583826141854445518309409700451580203462831775045882436948737084055809633787796971839290404873415944056367495498089879379692762496045158930764843286451597461759141164244721612862245455165950090767998205633192419652523194608035424628081286907694219234150203905279766650396733185325953364539961877761536755944482696847709294285416510848689794464322248886988997986170760525829088619085293195966779740480023801268940884481790864050497185585816727835046500693435200731069682887414281601031593742756452810830024129851798311341248725973372432658562501531282064793165645873646461379392560326448961745116839199868328755633291308376243878329440140442349428225760440420656651733140527959641028604311876015672990248791200123864577989313711603043427042416455258555134655710044606208841047071219739139087518127332325228112446045713348979516348051661826970796177383645057259587707306390061621056223349927590465496786023578367861621981772092785093768236030361193199513008639330950273987432177447886967953318352137793289838657155841379446822500741530129197534555239135395371981038907197869969323338991669891382988378674635636536547081455867918890911015666661575750987448851436237529421025950244377380015798518593403644686905655768488864285399081226829495193034542813802099198427874284183734397479807876591455627765225249541011354035074453719235414945727856720722258306041749507167018306007117478856655215973938731557223485616233026858064347833632242233163887148014766711588695920511735508495062759715159631652480263778699140059366966788344486923394274979137724883495816603073098279536654143389755307564986681525888149129684754610086640953755974855712407979939588499950682317536906137417733482398481792914787599068613813580496647356407443545158974228245084532050761134220337101253479790368812061578234394319024350462975630231044035568555394743216223679524927836877467220368873895560131112455148259716956961944183332645708989463175374517255297660272876199426563199800201955953364773561490284680456424637315079920886773590388576849893188065682054212426588867249185858030280268335633333949387180638304148212443373318685713455752484517380062611105743158975306224577105282826785464604886710026976650479788767359911627804041811185742100773647707401825936655670250983803321500350451339789489021759569199249634181418776351988780133767968231627010766011913591752662454890229327150238831401197450978179579898599970087663131768452304941488075699939554957381421134659476583957936928891311474996947793232895790144309701000668541010417700606608829605878092168019629942047963619948339458372029315564826365574808978855161290853628807479520759499285135461758719645153500819005911433009425910516730968552412775839880182597318177762532611203309481241096226472973720876212670460517527846020561928240151349172339633066959951368343579273166901884946808778635955053746682106958216578210473392669657611449619350763358129034668760280874483833458067689567569621333573349525708345324859544973644353401533825063892806461219424598103536102437487558993579222377478783020784697123017561290810871374687425397928785861384798312631571360478355741517243665210941768922926204055527266144633129306110911187433093732608881610719561902144281627251418846603248366051414459249622599895453322786825545725717770882592075780737366883028666083152442117056993698345931803000872909211257927906218773143679206192377594809388655015693931807067281788633269249212827417235714945307286662179134893544671944790042436754586271662724858865490447155787534292414034581051764605279222425422760875980192025495361585084565416558603221159152378006628243765671167628827194408138114597416311610266652578086699836097835663390080324288497593922956346810921352406734310699087886567390210899918472457716811333866725312784617680763051838046138075641617801243671453021615948289294246389523153557246650299038492308968938403760639337506819178438706806249065981662462555799861044429164164435875808913446646551483074688407473158316108206930864382475006682749736341647415611571304654251285263551957897233697830958449012626306517731248954079784114710139254975009333765736137652294220866557559803735072817304319301134515468509860621332106812904449022341110019812422962148135181340654751750933127504620329822489241891291957239191655145561382921587798021873840542535791566641525542464263680785740627346381753470804286631392795933165585208032832436441801887390017763856141504930088927800082696908012310974341447443408115792764655374705311914726266860577090486400903763503259303636729324120493063282450588407806285090828272447300556155714745712817983376632983345439886313865528428602489544827068400123854192851578164021412518685087596762567478352095066520884428031232963465292715931520247070244154260212291569265346589078297555153086507621930111132824328875582580011366496407304270081503476054267951409471454563578230002476721700411270565226205498373812482816779852694898153088377707482858723363923260573784844075957104897229129927322835954955988046144637623375919311161369931494466377465520524134254157861372430262986618929282973869579951393941994626056751681491732081134046315852625324539765368466776740934666350639227359995579420536830830215094094132527632322572666409357379038621000068606064348996102932129100673854726347601907696353467897751629674014489927981216075635581451043722461663954955171944924154434814994586911703867332831603987107123921407966902565578742206327845511206990290158918044685889649016305669643945935092037290013685469377588499824338908621996500370725426903958459919755125949375383846564540837080099101446214734921443684048887953412226514198614352226489172687966917296179760817169335803405912677152023197877548511904462311491443487129530785163274968079374954129706828767431384382254080493893407839327941478315609912695665726162889008751160525239450501021184920696956183689441635356344334238105787165382712874134274375856513671810363198665371024462073637286265684194516808916307496965765702729089947649245219101121239000132568465889474234629270553021431070989015325696311161894315466039646307828136269005665088213124844974454102677764892801458776489418826556700027859527116056321820613761312767827724174202051277367571619937938579745807600084640228837882848992651959736017689322846110755124921087113546594996770867459260688215425335961061860250508008138378256822110803350697785615359869581286777579485657353708178645264732605501047103447063399420982788766525290879290933724415153057970957566879311042962317006655805560068833208700511007920304737911116566315310215947019009258615187629149835463799453054547188753742049736937210947957294103614331594339154922085995031988020087422080771537039363976843227641121083488369688038642041372907543579491947274760892457337765850145333845141285246293512451382900855821829347086339901469290420434259625448509185801724424165418062285984165936024071654163794460329149198707117552264789252507637464697681498558121250534310727954607524688641322967499781401244134081719027468819199095781369465691500949307376765174646838265023676253975850321284680241971743029635936700812427253028674414822190350062199983031657033908156741000546542572685954057387747114355610465987036615183872681381266532850912126989396328837813709485467616489575641459670054466403961471921476500979583288464444032980187543549139279896049557023535282066396020618264970022499976014200452137580455123324289323124945224576280329912385309666310515887567629086784628643052037164184580423073422556447901488613379477514413170236950790534742281158095977189589176538538342327731023170835059498150082179211112547497961062693211864861791964870915240545549528575584114254643547178316294038142714020248648683534738888559856417169015501036315485252910332199289206348914334987911285945647848610361831640797190695448833044704789032061362087501324368750909170076584999310720991225788762825844120995284462462222649512784842480348463200759911963235015410452318492455813799135555131134234378930762601698939112567586218296844453535000011680933155623860471603416726427842210367615723124237200679245669301934300868921831987944822006842651322592781816839235005635102807480527296468508968778739401696285231991305049599791002917800311476364520160358190222074133533293586958726755415995284530500032968778185777457296547559012264319089012890006708554910053393712712242468823717998401287734503650302051115828538371089373369398935828204890829964598676552720563111394330793586400865709841566743789807594828378172858067339359285469957031753924430691387958949129933827639681225312451470738227093615859814628599170155172551436890583783042697347932878763569369587494776777270797713993208439950025838580888949303050299272412871876276938211893391683728532642476559755617946070859944860916933859252018541628547190475284305795645668212560633095477164976927901868354879472482032311680596252863770725815431317016440412136012364007772330027407329170922143032192035580767188533007897049472357505637860608068948679470064875714441740223677345618818265873303826115645424567916852258962966664871866353016490879886216716298049294323930937288480413674511760934459945589008493365374013535608549267179404952859366562770994128446828456017874666630592610425421897576332165814279390071005911374948115482436461832002680017973492699088971052674755264600970637409414539835686004776795235772035375301999846487054195456386115585833533839684666701860056942055896417163752082958209701433646821385806525223137625608961919737354075488252230623442392364964894313721377735314027532325611895053101137239894958948214499196474758456295088308860253481283279743785184718149810640534790053970547424569824803833677159848093772917781992183644439117846975566679875508256687936121306614681873058148632532894956104705117545615901386489244817106549270479576359277377395051602711963216710762139402570271808507476872403357502255219856682400652924724887596501746106485691569690953466120839253826588030876569282678349832648367056451632969410381368722023851141236251625026594598777634879058593602400509910143087092363141570837472266099151209166928268057902178927738835154535492597248236411465918552925437291302258102211797644719320447744071000065720116793673928680086836790310408251942822913922456175068028042004196990234148271364949609083925881556179462666152137713605662437024774723623258366581372768583443345228836124519518221615517560048025732447729284761995210591617102615726633670235974629580477279418278264151034153840634410583343741108112412776264289868417462526407640796664697645535807380729614824509168613571940235157053779911828925461297046471488865073930848432226465963434784879638122474607665468071816373999072918062867945219254157334341000560586684162825665014001573509400951516760068908179214533689086075201970199272988119555418588972332200235513145406543998411263552970164937339424678123339713749453906870965239389960227171156075452132648868786181380513012806546783233616518864298959937908567555845966952204506474666361771351259389964017481796310025556818323637153776849661437776506377929353230523112253797687894547154331412533378105837276352724162075287638039039240226699503211757005081945647992949645646725780051318176711645638382635517710034658951700141383059362527509462874748150162896371225612896262416819096638977410659133725425829199928886826296345042401383321526287596525051240563246391516421785465588053180056971173947656251188640338701906572602838394196963417688396388638389816919282454342999048139847199385549677302558021111541904217445963098216733048165211879467091352763231002187530808493637899231215412403958777304894261101973228892833559171990703040444021517467401690314470449836778276367708781819099900809762891270159290892681384545628956931894184302288936437572065298569439283270536485204693703353767484421281961463670439110155506113935732035109441736627555587344519058347792678377828080412689741841321812745861967534936062523262621742446727562461007472720027609414259231966507440519272479860765327288445517465936687360928010828509585657135926525291829925627127886436426643258776904694643014544332368645270828809371879460201760643058788673362297448024620829194393697910123576242742946816738607094031859731272048236931411951948582982256559685211970856199915120418442329939509651068438926443533671974655261352258991634414673221217037419748414932666005030614492630355231589041940863936782162312274478536931532474175627776677429539780984982534800448458341935113710907136325292800033727735700498995535132193442215208165129180575325189970513788298220815358225009953241450368474050815764032907177447532874502295800708647182757289947180777613329677971908308130770895176250769359636585042253733418615035449460790488524616532660409312897597079718468252787044287190424894755595560452064511128380545644995318634399499769786934612813268996960272186294853447576305806274943800198074770652188830920825096507422851920178245778844084989392733915005014856120404738804958148636590543296125083928612153580669714939157176320859129659001296260664058183046402398656852842495227034343630634342086964222784106583062365876816905314866284303141031480211005919721330899053086088837804919093184352236215536719878758335706647287297204031374705957213532320995646249912360826492079867994034685501509338955849514376257439159681423681026235784147863802587771539979140756886478113421308737895219373127906918233154773256136388175135543384230561304721717164065511482054391740774825778633527751619159027560733627869679449995326746897875732509024232110261154534457785530719397731986337009435474031935642087375068035280535947941613940350967122809088035748418638428176740749845242454627678312628504330139094000496643866831882043561208819766182633096990213276692058566335247515946316068937648342739766872311244121403022329532393625243901557198540630714588092004643681447063616856135091682715470191163389503575733034391860927746245307562180946186565919752817057298262107433406390269401805139244706710486346520044201766038860386871755417818115390885450531889181909753121396602366113427906056342335473844802965114341241884255467107334372752074610096744241476175388062868555359863216516578328465636929506760851718758983180311823598381444963287340210257564116871422727308927560949903060433112964437530020194232125944777514365345891911721570920972951153735715859350948424771390069917149563722220580607618449534795116202243816875413280660598807212331896441099227015697949662581255892513487838619292808024147454042391265204815723827950953745488944010230605823413084824305563477964272951917309345105743252709777043103540006591470418641488377418469404939764062854714069186160604378020215099410545207403208069064703375523536112459701193599559153690393142271637684635946923434532523464260378860557281379847257342921255375977016225981000572969620742604066831883667063125911532160237806695635637434811719135386774217540977683730432911407280398515932550001446834151491358683125131371087567008834229881776769718659067422824433529412372938534344393189618697981783815569016798289552702958571704089541573476838392984917109880630815964525162951709518988196052701717105263420185321632566636091762695399435603920119752161531529962360015802756146460763974880883091390805754787700657540983565270622974800512955989236684520749817694957190304825761885024581302661133360851801949712113073305418504635754872270480537701083723946868854427903680761920357870945616334851916475376254472131600566839298887244374748852853365820907465800768720407031549288634929049783474469466795744679776277597985960635270096277879246199010835593678540250024316623437767937372878077865839429589618139848963005521717140397334361570731199638031814046636170613833830499514515189453026097693705627452836700229122291800375517926748767353551346580640353014080063411229790268956861658764710059126683758895119017273591603003478095549787467556561148727287121429023460156466678594624479867179151034784733756241105094416558254571715772272747496415403478265517974117272025224962058434916404367806356951075555722202064197259012793328580840423330853518421757225389789217014624797238039277286834957317913493216646411236824654912658683666285341814945659589926587344524657601734036176673638861029526005712492841867533013777888735434007957757860508221024837346011785211010090305078342048874003527313181779062809721171168465364521789289076948950934338858969706687769244763572277376932585341630240394266418250938643007511081783621512361682341334746671640262697739177230874990194859307138386968610501259892650305442867676367378187376376850403310116214156878653901006158667976129040476412422181483486935055720290631199472179788731461939796975523307512450989586228200409064286058022067811982193858454217636067314394101087064389363599312439223222319140117556125268311908932527742886610412646173750469297891658968380877217296851503410736277763798526740588317579459125653517547858241848242462177812786309368401814629297661642141581500738643605616958626644542332285602616113012691577162445159686164277387767694389007905779312146031213056070606644782525916615603978818711289385035556872882081762519285917761909045078406369375125277254705318038957172682585566752327611167406441265745230467884509299048678085388318353384238193670044335551019090391054575351466600034975638228710851316282136745111443208384972669223375063868828560212176610026476105682334979372830583129347028225481950295463908129215939179134915598751025925187042339814170570668204346355711637389297343687214324824132130256150584959411994766901432156972124470609559199753767412622293130423184516553117614439108003597652451875979415499948893522684447292007700579946735752285863654024673254842981525602686504760174092869897316651177584669383856609489075855221620904920985615633045191341139755095473419292342228927898995779783577317954520904976914553327284113694904695869175442799613421596677859263631575260909650140623185119462837554865606112030882490036775751057093775017436332065649647744339437674458899663554419223818776393727520986028426850865475105706630628120793781082089451681777995636831284115169345815410166981533603506377556245093791428265448255875545374366243230227307930648083238834543238229522707333762190335802496114189492017147212395212506300599066348154239128170826520914815332495076176389901952286763652601187805627574628270235813370936972962654615396004890054275489201191651680590181682091189766898398019570480972043632530218557684792110581625885689466495950951170659797871349329688510652449012967356246088298178510871330797656584619765414378421338332058877886865083324923805257092208341565483683627006825110563334529235577560772960785958394733271253695517641322634973951116303056365522630206862445753628565146733829080403553177079941953796498199245587435822761495055090121122220612295785915055822431053559738576353780944667896894053166858031203391649759585194943317066101760472518343882970818044315863458037131419463532052388348426409157963616261591252807939275192219798931619293589206132505788258886329243701474817786924309136078653573467975673238405183890955803781208349131010627125386660978686983245521899710380520965859638958676726882349769525812205645245995671413498582799012890767556315026097803697747425520210591615066366851677161066655931722444315363776320043752519193549538739460179706437172981799329410967613366963607957830992518579334168687442886081247466125722806996157059491200943633583198607888768906127965168003425125567635901404154010043664739225974887605810399125844154768805583857480924654590173328946933445879234756988796178106067421752384578503699666703714268716930898173817822195611299807610494126998887629951895559801356833831431829610355551441185384192312089106501719204830935198603458579863352368419842978421377220878715505137303938343464073681650506401890080734264042420199516997278610004975032304818432821045738924072615089241061968863498137903282602240328264431466334476948968537703344233644763084609068660201396053792010251031733169349102060858206944801543284719110220962793575611701443899607180965578588648556331588205273035635490676400404071823754100974241350527872014366663884103445297360401925355453760258797676022731846708364165906612914177306206277579276892052594623009373943353949786474849034446112370446270101518108073953767076507601061834340676214343442501933933414955557084882828478448510434025635586642649671941481813821325328435230886057094995722629778309787424146098018149708344711448708397753059057454713386022171958742960936736739649657525069620681581977952215390378171239490248438482459588150882726658309998843384981163190628757844453685937626116676749700074960163281325932462776322900419989152126887546270130745480249896727160401962660380586544599133202827268491830460549612917935695327867361752716728162157741748225811724932825534918570429684516119316667918959568359490985403555935420679734456181744365912152818683651641378113478695716064755160992337302900013027615900699538405007815529253742028752279609977600650169311530922716312468899361228444985726943567663568068009601786325916696219197651066664816630057841548172625850616296105658746357337525993977197330274274428709743535081357003613784155492264535081114465598001472237102359960327729367178734036355737269401047033778325779150419215593043027451016200542433406058342307888156082867075663598318184125457897095921136688986766170095860701668179538889392258778256782667224831316744327776739155179660629364150242581333316412866350090313225777008605658992270873459016505718280470315469141169383705506409879652039781627829595081966529108418111307273611428547084304890481288375122602074736283136385783962548396048210469510558885785350055731630848386882869196213172361512707555264054314548498383876571207871948417728247023342664207370212685118198317589032208000297865028338751462271164168498664187269541102562751662061692197995588301933973824155324661642598996786119444999669119244237050844320545972459803455536443387078679216376063994425005401529588330754244128107703423284530673719136739893050127746638768629553813503352278809534222022565286656027720850823466229968581919372734794845577961312193715519987724742809963919488147500724573817894581719300768364889843846295878239676628892056089916493311741617082996852313513786323967579626793416533578819492727883612104678656382674196594621339573030494511651256918179408725547522206002667438436603956743009380952071602362549779702194402729213224151513795969183265666482379136568010329651520588653474841058955069390679008384311276407534975275707638509449536289625650626089974295489829232244431266172231737065125146462152888718220585667684373649197156288533681832732843273205428948424556439460383318446310330701102199112188681095443107239931479189097219852326758461890309046580835810257008371513271829027798621463217632929116092703921588453727678673832773228350823257437732925625358012023569625614083993065238472559603887367363554361379191390747607611104676677979129001856683825890084376034149697881004758523757021223340886312463732343239072460628170797619088046334163702431815123183311252243919581318767473809669932990914232663962314954391600749825641597597923496198760329886662443400125063538887522061050849814839620477561426234428843893252017185814316004811321548310859196533929241100315929331101779535421343057084114808979622277936317099282461509883388958157912923957249187928436273055731137643349782746036550138299500760359741833119543232515204573037788319598624106304649041009362758086410105068686898657885152521013669705421330687838247645651578061062837775475751410753973579722868087824664871751335526167222742186397451769790216108577492892007538010742419386127411601200195096927263793983203680199181956661812064794422441577258243874862840797097208145127508821365785756403599737651210071973067034985182551800341625358491570283942783630298805572516673257648281488194927247125392924143350139770498230625044204086121542973378864733021363632194557238069755479217138767403235578107732593194534689595866726643329292199053626412450103368538531392037998068743157501610766378251293765204971236121795589307402367351550598111631395564238336148134739782224239269161778081584668746072765732974370774333865029284573108191144820702030007552459417958171016632611961332959767859311680531617587336796995295998270960959439718976856256421951401191545678678974907858760926517432774193043881709273893782880944299970759136788949474807348054978669347623730566649996564919040068920456847850130508415255865322604180996698376190980710553335138601192247825627433519135351053569131050258362280181013269849431708119047417128075617086843080169499782199970204125658531098798519634848534663712376397181857778593712941516015557820051802909189688480436088831531698296247094856027159243850348588878602796974150022588445930330629328620059216609244966132694027627144088296916847013414606739418350263883338184037858987184265821554171037196447340719375467174534831843500366144477923684506123273333819365449840597437941267235140594478512727441988445866221816161167685352966121628701329426988193335936063696995942359089593598785494506706665697905466573984040637086709547246068570202746265401329279774962888959840509149463787966226333405506511015961547526117364857445385940213443435246287239322722256627532600134948036762608528033302589708856872155078047302424202153345233843646650128285259245976520409368273873645766928358830946003629005161432690184051849137089292116977609120239081345322321406369111418024824659352776271761611210530790517729536336042102296828233474108755162134139814864330223171889705873752032208447619798086243108451321291892359772398041018531134538176071721368967719162999285559714829582719177529478269312331765652628158643152204932019072615065319436883226283279870577066289276492128483088173942261385228177338783992389361520355491326294711683387617195015906359303410037225474711196915576194338476696283366168139106889919648889015152493814626970323036761652702010682735800460235644616143887946711398222507307632468351550120818036248773872589412856627611581277610051700882287676699110481722205243482924735370917316407617551402803542778320705512643441016737526917164076897648976714089875465075456442300635415237926531368342672653993285708779758381230080662282397197304922825418562611394247151691823067471689526414476310919210192020029132424238854695551620478835606459291195671955004094526686832916757354106166037991985529196459349817685124575544551631830463791134955822782043849476200601059340181806553515835832572692008799929135617635159075236230396604965312958881823998554035439429967107691059744854368888368220218865847427526095396996277894504978681305917613362601289354080588098692121957071031680691509415217872667078168314565048797225392233244267589559478262429011458063957132191078804715461019783660652494039784886816095299050712582194143555118642131800051312504779971940428455238206931779627520298472614480918702470783516118875603809022501853941808060033557950435978098615864637451369633650873641532890520738649353428532341325462693558325783157227086783219004457401040806524436720580022973404223197823866318881836841337044087070619160015813893430634690722962384810062668713596218835940595874813958760589423386739234644820168599136253533036641306626249167943965021745815277235634675097498406323165032823742220780226066516928169123559832182962957650238828930756080082692155806698126146489303483628084962322790687270084431459945020405866570904093512893568386512436881177462496464198862172178432722737707382128980817526603823912404924438731630063325550255681845863294378696891056171470570867581552719827359307470022807190700016709253148720478906078065765578573433346789713466036933994861068605559668290047848188657296314576953618362592468296295902335453298397604325460121115489932180675708338570224691347166868624448401644806550580920491137432579928765931259605302930936991682288647426015570473641390533656983099296747247399163703546121783306092557076966654045980876304214311597939638277632498915382374788397157522071063815865687709636816645781035179859153552558856008683442117891442943671452586874205826860903073447730554637164869653679744655282299037517432077129616179291676062858341160816038103388624459659480422306400059125725487421020672147575667308271395219580253756292256307390160451442112116165035986910647384468539875527597528053919187002686738655601135677485167197635555961809715541901114419233218799568978443123815719129946053949008010071694409726678101268019375228830330182363024773368437769415672408490404729519716230902508116337514325930055114274228509606210522368266817868888192147917937399804377381317236259360723892256347716000169999238599568641699588585147415253949064755265886341603740641784813102289656479310785288219859980825072029625430944946126730482779951698313006895753956536694874892083889952516709274928994163785060207260727612774006329340124278806762942300386637717935784544086926358941991893755040662087681607910784706621400452927039843601918321086591976133400922238262880185507661168067199868624487347258452002703900808621415891060193793727191833381612759462697532057532063199466583315371580846518050692533019572834577332921269382898787429855295325629878518347562881686852737889208259605513166432978665815794800338535668061413150889278901638987669580576484096271053095498814743651964014033362778627585107218902376103797120408589591899177257855255182594865474775510895995459667516305237819276856498342806468000206162600063227217132348046756706825896016892839322016182279516568752833842363092632495612750665646115285952055808478431157730057918112786237785808799630270635103460512160985047307957508131890967653226837125984152114067003241965209789873119645155060551002405121719082454928555718009805398590077281687060791073936147539387053293913030895290597561865911259700765844902202878299191188829244039697949432441947087384276052005385146916433221686725198618915068624135810919224808029116726399799556996099912896344593555762160253931405846254259446015166895374210299339014753038096844018899947850601353226703658465965355259889252468167389635274125820237715958371509448827290527359887382260762589016814001396413182142536821936638868725967831457764209275349205701327380230373753147245208314858669054352757452044738129504783530313252228753669646055984042432174498882173097487143718080016686725989676902809445968642915529774624653442604143632867874760330572740167193317597453248824826142149217711774904455792523530820789184412103567207495101547032644888874092776851727143413531240777890174553367599224198170628571961027157354853445839929891041738055523197311729412515359297899189924780245679966232251883701811646756733431702505565726358161566772165870805777279350891802658500286151780375224916341194664766683538253419565570942575134810372496885988938538042282619523333123331034695820668147877443532936641860130841812952326450315414103321119051251222248632605660733667711067118203012879322237681078267302068843267078627546745666901858289822693331707432395337721239396756216425111043835233239483824113099628718734680214684218782582883798835213703802994583449998432783330429444126321848594061916452202317705763577351396006033326248263659565717888831098208890029813984145865493800521015313570195755173967834927785431272983082995025740695184711157703079812967969807591928577497937387928472059095453956367467909531560243211963375418637611651340156967363361200769166587169067600658377368227683586038324745334300013089337981144438794855906530694378131311216586628535414381293661497723826106670264243941349353483052192850884927932422878028206387324841738777549839780241555259367637035572164606378394236461804359947367208343123583127344690354964814287035690964314287998549494479761105657717544047542704591052844522548664976060092793593799327278155034569776366942997527617252971434333098982972810027687868451563940559918263012607771043931943216698035266670014246897294330929730802786107029833828770058353827740232889362165531605307019121923179703982707211513929386753071933448641830709428872641428619998044411209782229495419860439111645048803894223724167949392159079766179857300975064397458666510581581784339756162658269842164157014149182617604438849456973885551482097695664784809362381627160021201736077290982730923610351240134808479761348062021142014164080517711391551476458153801684081756984149220635669596048270802960090338647764678058846815248239709130548120731018875139297647998491670403014330401316479609210749400692250800311791596612925365188087044853807579027014645548559697826516898918543660085663311218991574229801357167227352653191116240681203817943977093376348673361631677890262548055620774908779484823289619667618235954286850752001763276989272924103626868870426619127384973105739411831396595730912267095749533527351238857906781087249650070376357502548476465169397019038636272726591074678996928670158474035760674855297486478196081502150556320757692899542154785838787825225317892155433175029665676887278496092350104894252878870921312800366266161075346165520285641900805831961563168203232062309630376204205412268772134840277403330586711779170853302186733404509619217261420359325136215051851225513779679743364966960695346579061636922135826504373634740850729135528245699526509532028093458497712962336565258631296543981028505935471562170466660299054790505085881901902390778220477737677642841037503656005673836748716675760064139284528107627247163357470654242188162231120353114145634243399100394704333755345327747065832493599534526602520115903218268047763449162711754831560807991145656647594368098066125887532705476264817205063916137351512961746255647846836724833994081761890493058001562294564820064297049637691514600819779795807031686947631874764444629245202374753790908538778426944357078408524752937780759041298497395611941768600451181109663126022571651968948553354574363650319713189862185581112491178335468751019644713893127986622705823406699309128593143305123632298316055027121208514261539681510963703990045780395622368401591406414412379904971161703762868696052148194012083218609216751666839155514515510784732237830684482190306055202699538495468997652371032054557207857196130534271178239072893155952294590162586009914231083243459298005731999635082717889961701049123173414181245531685285025775717958929970665530762574155135128166401698666036626484862344506243260137705287886674647209849262682919738533885906023530152128640516897734229548432650543635195030376419290236367883107710423374078939894594569569358432680622360119947181356809685453249632849213252446080502984522876929720389114049940192422229336071065833764931095264239701398995662162560191834402542420726720417382231103500807623856223088609830107835733316770245567597458961937328087230549135083891344397658481774050743845859963899993706313324705661187606562248974957695919260600177692175023520068561794547070705396016811005843774974027832654433846104782170759798141178765338378611483245735969071474097357313560984976828319704359143330711192161979437092676386162814397347240804305701838392806111313563574685841071877446334771075100032298307160980310930783545268316343586986106376482126978201266078831046596756433475037166197199066003330788458455332950033812665651341099491132066093775814484934646397516887957328571979467469500609128539412251341124015512316647924313811220433963615038043946862903812293731926778887134573225582684386912133478816197644072422494921119492059975460672444939877920905779136560189127858839698488225495722816178727014513226189029937791381511456923659989231125973000647599949163714351775541128258102239093644055694887403562453309782750556411943469179819225189392056853485703452523461387790837960385581345031591682502506969359556660016114619237669520838932954000848254804376147144947757756843471023354011666646035695638450610266984007436846897969957461962123090914584624783148511173019786043397712045349826781237698506757197249131007676462501935327080586791889594779934905110704460209675044320545550717415126720782426536122236031680618135608774832605013181288393444632682746793165119215342236383274700644159137022693161396635392992950637386131428082495003649771041435365728559223915500016112737848018159095773739562404641088694989305704463369865446243237197414643262914290530575002749060804767744737611088700090333086067335769003644175698728117162163969294558174736071681668468512878672071978843245810508051812232153278230955751302091356973112104596316640625088045796050431223501127680183486255878362638032925181258324655823981827602984070284449382067921205995965984518819531262827515768174593882325014794989065757176774486350340679481725870605838667923309702397781630994795250748430003678177020146949170902850680837698933317217753581252107665607557965089172268941801385112463080122451632201067818633072172272684578646822070200708490464705390161052396549723483916360738710007039839901821294582201524221642498783210308571638416658027076743519351283053522197036174111301988179478471278790976126145440788030651376794174929362225057195655434616199872882462397346880725441430752504160802099921776674982887106966381207890642197897168565426718805233708641853072510291476714498547554724380018686702906125120275651692049397472486580587852104954325460617307668604543667163746155725714370621557271074230286614151444906410312904282504898892592999801508105035861301681642148025907807579852973086503210292179710237896804424631000966988081216734389640769739357057280156063510159254120115073325882124646999542011340718858595628703258109170037827598422988959534407367521941073705971867301589492222138429526218191592933662445882545080049237641719113060181082709129952019106138852677563641904567618749340658271930131473045831358925490845656020466270506932206283227665568192975665210214851641780797265205127471878760486675997524697022681400499964508500648729608953024502276335208392423217453461358704352100746850463276727222712969114906381400970472619053000136181666277209702673276825698047918574866030253194091904989046689003418995703541593579436951312360607192157657564590708441199153638851260725271191971406787656131605369845861623367381959259404220207581778434164501718709786608422413167781442148199104795240994639922269774194767575966662115412901196010165987393558024879656040730691394573675447815641321971206713037299564571306095338915858096928358426862516868653418503678564864895282881736344682636902207692711545693095115135615325152679939699610724984634936207105531836222939085604624755796730071146651836282102955501748781298931321664697573252926917315882872046369675114474587042668460716755939194815080799919689341729836461023635952910054380611336070122104598932711025773078431187312171257910914164418334689508111992184841131362034349737852505254359172832353491964056489138977227225975020049999000862605160861376394862522133692174344316708677566692518648931142815389533958139457669236830836157732884433612858377018246355306407336437994401384162372483233679382158168108019268716239044214706394342689544025326725469440739551503835297415310032184627689344511825628372673358739120135466923150669018375864731290509537173523146818398760283787296814015192934592843608313401221853714388972324924027942286832594325299112905246165298058579653975305701840323148715163904901601226036923286765382812444014003350665565510413479127995230265193230849277325847821031408856354562343370874738096498774891747544546826410511886976850041905151606904665642206720586747880663981804240096914425191315206249335250822010278025348759487687287199588400697130866634697067871738100478227094998535990868679013350898523759518759358102781670272902352601146848545037262839377663949629360363629419708908819397979031196442816427559020639591231723318840942970498628096099769741850664864239198633698196863967180072303580807518563566090935100596590286956200272540440317779722129984605391517284463378509336091348684454051185931983291773681538835091592878745290598732706198778596364579864452346991857817814237146391145177319160300196580314060673522108330117317377903537303224112232001630386106230064460691199320182028346306103654388545165013673041879847856951958443523951394454512343492169167468229678015019117876517962649752711627457734510835682255982539708624403302441145233734444247927093144097912463244489611769551156048616828917712912038623400986833794875187083994490213662915204344427790001993673335933578619680485239459656887674662994287322374044477630709002046844477132131354922323366609976245414422345223758309994058250886267184746592378139823254406746691314939573958824052818407530550644740145736502892809133271041868449723910548278143617448699242408608448568434661243869243628696161306615875881315823267619242530206407246743757575416008110057343609807944204644724598503653297019194807435121622663794724752396725366272631479734637018012589894395581905055784357213146049768964384763731621020533316927051092771471248479281525221307519829700713111091821957238620952834866709172402132085932584177225928676235687125846964812196394337363555711819514516219170562370755576625828195711124404715195484445110051202349202015487609221364437347734640930522209048804967252234244342587985446499966766016521603577161608895790145205220038494853001551016539644546746944814808108288392200749063724224047229637055178893958827206821530042185370848178802101186182028082920952019742366622616862694108528438978024728907143037221410966323605431054116770248219835499594946429572414513423354893571969877204417414817748934065720445948807367870723787513366415074815286837551146959772493334137986738005077059275879226286048379669806182860242528735324930604574228841249717636404167570633681473137674768424244604637164165831361899511789355640684792110137475739070755135889641884435322645409062834183839734491674963118441902359960440889145326392146929085471344321373339193300947182571803925548058464680142829376354050859080470105679081637531197602813264202723534752409683873993877354941986562273160823148931633822803860725930574888540278043994702643720439139741945455548397598979428740084491714547635105144870254365447312227723737611921355666394692597429786058268900824542695419766232597341797724207277742485809755151188387674692082067601895180663699637830710968319743746608158275965816190120107540892469913506605268770755060935953610426168508706960865893488609589228803960177001984512581615563673777716493484320183839929598960869347581900569745277170005246404442173178225028472288217486738889128086449628926373439204744461874802671250048242651972329324820458297180904188150865624589600243085289888806203582178736648781767322691905184984573299557641203192024433008276307942756158164361713355992030546595609766522327267992570667799986744045802732060302536016350165164578829078670398541183898591156274542746613052038555986476764598899522094980512815502372443999659432812307199097672508013402917616880812299724390077220870337435522521349757923232042944273074125438993663368079172264611326923774483646548942018009159543718718433472435918241997055461076742525276826319691166169397747062283233200985199870072428084981723578107205841029715236722343236484318107708109539067092293964283245745061514313894389456063680981746288893650894506185737270684336367214355520233771319500946209648973715474723560613442255318886414336195937731717931945345963963158748337128941751660138051233881396645175561378267336521768386843764148800111549921609883041931059082488152043108952773154448845942748621591088616124944511161435062866704234439135715835036050367213027343488351866846758124145722118519086668512688962225213424846484966299092028197591557456562102769799460675859249387851859127988839533857742026766459228718097402284416917038610455841341866095024474981963732984440707116486808379365603684587636333182765570168507273176313421650767929127378349266530951559488325602393290928628581351537955892565481711627741857899374694705380664670565644016894268699684018220767188534233440212120766365602172441434718915680179939117018286162106151751885633265826600415122105262788577345715914687445006208210125901992977159510526692751025531759247130378690273055967037710005134342612916879440716026170482807303237299641973779054032844922387616181725389752317199386584908907434375527888277325410259743170001116235834801427097788276918707103480406345929453504986899147872677453950551286856984928174645305052675144391889119084655169609561101548306777520370734490672999666748729816773746638056279953885278131833054697067367838085833840416537747360555297239035511580827569143204213004979747387916837935631030890238009010817158824384349656688031242200374972439253897622023966614587401128887522105607884607826646658664784273237106050738121032532362682513492397135776094789612035732231575948472512612078138914495911346869792570139709200076960739862481535873475892823808154811720486626409241906312676953869022108191030040228895076120868416390036617688778365228969266359048066184439969636982912533793995704794015936888722142431841625040207291912080707059827506864822647344529201878564724111005986576771366375038061170688947256313073707525954876935807961332563817678657402597565462613713018981287104872326686930781162568436027996253007921304387134324126989562939865190459676513997082999689306630248835578747800096885059649505662005216236641396898911187097521079874350141647735071278438157191668603576171849018534814928583839082181491200761864212325877238732590401733736355774184426098461398703533218625226747667673766233442668216076725608563272358539700188471540596315227510912496597709768750009954202504415217031533420555248455012983861594821356761864205912151388433912520964731392934799683394326737254628294045325761865557025398958093802394023286265454448489708629399222352610296680159002934976172181782727042559304463294922683708909233839154316855878917807029966853737534400938016575162090339746921046072277938259137019529483615616306208821973940713676190746307665475380014164154648873264116210353728982998909589886615805568796733813969309100031856602058625200652047104963875369972008722568139080131764735690546096967910595771594410144300955936691493112181214848259170829878820420321948609473325312842280400642301345676562403827598986621211325479593990603495116169788478501018476832212412537151711117562839747128969274859021959832823568108790325538196391841413355826703735648977422076150527199629707917071576269129788256645391071441476649949680354643427716716270581172295182766783501533531259966481197473350365932114920098340565308991451482283401462445981312985843778967635117636658801610423118280206156227290049418353259463900201479949162359877536690049634896697195116941600326239126315106965272672661114558948536702354815850788715082419848986220771502031121237408531417927629708079197084815100919205297137550884460723621380795845449332557701410313905431655778127066917849265894197588733157674988730125001879694251786710304891401577855878248532203194846749253574352102506616622366427380383588239840770572490693734689554530999592589458691806850066374914363663196009009282225189393697059614985903493523463518757798259490444088447197482762836075641203676734260720272907436348319624097116996306935283651827467759868941641527334445614087723816051883401029930922186879771485363944617437167652107448175464410995058135098635235900324030174571056403373530440251898803209091564661618902594139814612725542286662671988453325390984316978180856572550795658472986545357553764558678475199161002291348793483265165766087995582194265064987783134250973352448757287165992444991282244820756599176958727529182871635832587493487375325317503380956669215265446180293773024246314697743544260342669417272933050458862357761620645011178254788612311225134176984520889393251546351019335887716773135495827260368524089587117620645649215184730132594158500838762228316150958257085586710040134135670519927906826703024298383428362415001911062460536774651902922672612558210045376149466517763966304135248828623167689056649180538189075093047359107247021586505388817247373558984285993409575470236333716734693933700353049328886739514791930440809943943527984390442525376308603296199123890629534954647624809363083922502041757000261026792642226205853073859673720177685215006838916312853846549077299130868744390859618235833484111927242764852410416570016355580118221122002121742295729682448306690117338718632325963187489614806360119772228684002744591906461075095740457446795255752517006810169948243105458523478667127999446462481347734864350234050541949368611386547432561070207922221153663965489858740067331319703660893775017259591208135716969054973076001175236207256028116736175936218301666445133789472938905682326719192107281216961543636726696746633766933410942832128441423869995304822062167268282346628330253114790578004524223926106932361069938854976339486946300456019786358295072412121616975144953656156577536936678537729429171974280529566094405243544230021669446001973481702384412677101222000557013064687464857021849590171387387387586309141713605615207746957933510217756161694276297643321896936285368835005329488166130320197826149166754124379182117092731435398605011264752542745267862256529656801505340029360246435343238212804182637944590265394596682812983640635963889265787227052121850986372764753081609206802264306301435089985142560508488887686039880013958430101606834582550694744531859056740527670003855341466722316334513449227279418176811105551141909704908042016341943073573128638017348195881101786424545599567385275180990150178048672313834491818141657479146506435236516770429559332925800018417980752801574339719910807727312441732688406969378351337948964333673486331010592676716691686999533309070903630489913772924026417168761925890354250898976188014198208629078016844171647504300497997692254388843691020863548229865657214415368466052917835102331015470957150518680492933021808570590998038284274126545341684900998043144356727700283661833990755012697559179886428293035622107618634436782864832050971661484548689616312829654074626173036264988785776059856574204615881958776474194401351336624558814318866527953793515656443504903906471991986870977926182002736444791837006928138924985204371796191257340111180353437944221507174478673264244039081873295214501405623278962177378848797304107898394864492046045578734919369199782887072708412952058031122344312695251028823739088956335805949323630100854115073664794073191559668026351892722178013754220708010076042366157117255231694636968008487814449427274427081735367285138646884354123746317319159050124037813360729765137543344315059993331756336433665537995820865866425864534637543868638857332049939599894219916562452127305280756892537710259742793753442624733429222675763606113706575098131783964649431877267398886696641199693881084437183045948168317152698950013691978861960365797583500819004510068082149757721800072364078049435999039692087777762033436318762662915077286209039073739799499234683334742322504548891404501595361758756731905252068768594226896499585890053231267534029325760118448842352761352765490611983119993602076273927645837692118607010232238921329814649128630569048068463202094912674639849693174174752860190425901115765983697603042632564683116638583223107112852876829679076496826624000942087749985225418836980416439175132219252850798505934474878557619774176054898696421011815013617035894900780365014802219207032552882447863948265654709087690641106943786166820304434160538934003200427687222736494599152424171866991919191838532088807119534638862106684188612656169079996196136897672722729034876837619405724964478147483704843188767183118586359054533332618354457381514616040059675677431826942476456291411213697715725077526376569542171311659074731134880407194378532668312412446392777871660916148303322673631084627373890981050867729809059330450003601555213980927124806042527996108410260674269783837978855302885794609575942102123028507161992711661043784052946517189988387830762204717895611105078277514910060918333252405920291575551768455490663763611491147535550852010580051831509638197990642564317450500359061403836614071322214752202571645324951028395203567695184547404107090950413127734800677440967906495210237359506174301184774123519894799283466332659513590464017805597188960008849367732794574015529541786088197121364960209663110575727871124647405141961156896966494737053124555235582263846445014657958955700710208817972359383307213788268576049082198556817476734705589495839333649654294581762947683896827347832591582426915522165760047652895009765323064115019880687508451066710916169976745500576912667972378255676589114684572583989149756982429892779337425667293975606361344106791944387030694934956409139407383109995500275926358400540426071861034851606573409106597080590380440928815078000035578681449619725803592786732276903056670679661123505740493309020785848040522280543833419432039208395800324895905570961567638858342277185359493850515855729789592739948773305512181045715842287691814477083744949605948930470402962260897045566965907517354486503369000638519155845963265676296355681281384427094552519986804292556152790963296682677046029257323393942729041770195492568979798163395853830653128317917435963582029843914377555947063041516246609434475250981622413344836561758935151714790962507920684508565647591121192624400456067434230936616495931470885757776111111086790599096920983127620131842135939512464447051330164770279240077626056429307090574355514022776904678872170242639820019501475468696722275951798666029013892078656463927914766766709695805412088940489871217473016817989018341714337372581564081318828229046321139320519156853951311553531395152132562819767529372040668189979861505926505345509385768388084251167671434053915108171344439819739527757826388783339766606948022850768368607438309218256461747697109574280902047145894709694595221132382331122184037963170463422003295234664399374243574136147522249543204047765039371922124345467577112719689599722840004675019638190317290201331298373293764297559663088010738421877807716892811648657403026650857323763587678981536409126360820098993786197159790040164483310160974067475090695304755407835578392903781125416203334850558643846443290923271821075425515821290416905266251684542330587222491479940046574713781563597311357285091353432182562100293473668400969293142792533983614048782769116008923177708147658330688827841841478117120440877061548031362450419818081174042489090719160463126137376371890078553024516532867248133368740981971459264033605363072046133356228304892255071961647388779022776174771950862424296002262555889103856148961537711264921304575035783075804994779165592278114698893656098437803438722425491428431424936790319206840111196994102305948429339219874050772363069905822379682092044063789923017923953149555075435508676853167465582965867612476155833764321130930114542111626872802266286113407835605153794364578603440714044700027711596220800730252693384156038987227860768720643269132520862295456208408470776702481998909584217174666798831942391752201540222526857122440840021139142212724349763590870821498947577257769155875931164816594982591931509220517592796074907689840816195032434628239500432751864049805674469886861662680050565840549451243374387925109277345813067575093155599334371963281707453631249718133569299288272560667396010316481155177205231975656886968409644780579960828251077788571743499639668537532928925724782847169094540388629376994753152423520787229942359966624781522522000131917777097485489607398439871614097335185058835298295473475574957363771020826312111791097097979666229818467741450428786273346988478359640181803233763338339507257119273078668416622292367389879622972154757290480205456155211087056142381715943330241670692258788225964065813288725814609034090067697127725002362751660120182170721442969705059338740277297158140845484680670409730126188532777483830726286174015360040810348891551446734712021571374954706988597403912296780332947366253730548855140081873860307956706812728959281766460865368963636872170449957764343851661584080389227886968825049358771998375638588917478429553138336278159389788425033061355846707331768592696858310240979902653395633042541515613976595790729885067733012005012842291614601965515299085941064970087418610821414968750389704397813552347107988118690673809297248906636739179356334847083695502974877689030864012892314796652944599292818228433678080577062794371457968086692443785423387246723873056203963630467850270071810065414861438548613269577082915254051426987846384811265757037256182871885961550808170879955679073065701031643076276795515407366888591875130549108088817711111416733585005575118948202345162459238010860864565231483031338635819684670788609274987308619369223647714288553520580634567068191064144631540018809128665604105579921379855605902335682070224374281800140815124409042522623658668569026436451340732573495478527825000378169116878948776450937998658519609762433048867809730794527752899837421178468530018590276889988630086700300863246611623758529456868247777995209189166790911928623155201390741343416996880648094833245604728869666352442340889699541694656867035663011216901995109116080485185420145667590968451521048851219061430416197742565154395136071019834115285105346441851606781761490366821609275484152190200207469298775660387776524583064605107156245189212083257154610867292727194931101607285742813072156436988474392100826332480026182680184397016076984629677901648532402049524728578138968733955739647698489316235490183509959442629493131587796241656493265389264348031641798764095155814205463022347324827793584273790242181695606295234407561379787905179825398925442820745374367877538150480391296740095719296381747175956490997475944406777172789092786606623696138110135311817125102077514574616263034737999359742473532089941259941338561510183061531682599950216363971261145630565370866660403245463114579760687618112342674445309481371553762617996142055062775942783274915040073417929380216816793999078679608690552277785448723926824322156194527468513246858451645865630559012031907299039740180005243535066099001736102177135074786030376489662812151356061138496694589340108118435762896719127939970243133905716572387362087838589415419709831310945449358269280367636328274830612764751531202395667391528376727157233283563917998495296152878019017623595986395796168968108265939540303001299060810887711616194714401291625072464347958826637271319021697059887282417541599565119355710857535180688261072920943640038479068461897935193733207599378329345390791413068105950452232223905625553779582504151012172211990611069536849896016026441101548614216783968255076660748659918486837525859534246842904361515777142331255465560703359313066030749171537341339741354988768243353622608372231490266717444347158637876143147137188578179504625155209144139005979471387006547085114634957989458684298726702678124041093811090082978105479005754495802327280926394105150312533345232484932214250622366718130794073242695478416563173318717182071786165796477851295512298392905838689056964699081883227600082244105271491076610393197899078797207432070087748177933496604336299501762605383177466130817654160183041465176658722906518812701420440316132107948011854643119024202402789649967097878082346870066688489980029333682668827068357976264005845613812497746250768913688320730462160924779156126995375496882139178785359346248864291956911991799933016673382123638234887633365737278377567738637689011222080182342535739440652647454732605746740184322752570357954894095954606057374767729557534989567184314388274315123843713381841606446882935691376233801408876565548864704383211228169707008799259925251240854383209740255195573494791309511370192073802775585769664132223396720695231802850109835516544827693978916610345781733995267593341147118524641442575577659317285528784421543260122265671921961650190306111022378926421650277317688261457284293748572881790735552368255697166486227187600828594839682829604662243814754468894081130536805258183132589716101694788861095174633025330457323231778077086642879785377411791135820203004476445027361641346364881327696803909925684102122926810206742825358740026581773503834668672576925280264764232543284130108147026781696319800580467975507319464659037341984244505916885659481546785111858487761987497274279474096206984412400397037618542380016801202980175423577055347499451217529132517192222239314566434770810852568482041489297640767727878006012515144424836970050546890306063965319957257584359716073307361196945062205538421542599492061896565313051830236574602999598495390302440558993401532353030176726767179201530808701287133200028012919556668606409212500717138708035176422565723888068673227986423586515331972187746439255709306273086087187876377144003119496380521587685712052094574908874484282433679642546933998385254492416507357209847209955844588872944300544632407693223577151853599675152437284964276415336668383869764949994935332917993536732375677799710114990608479287980122964011918591517734169382231932967296449842510884373389537324335565333032840059205878056125139372468233981578163149772941776812569762278429181853019819557085544125522840647418289351586147875616092605217264734066735671069354803695745656859298351312765480898225176272944134798935143137426435369491406453767273703637769320890293154724119036929496849823388231535985459991974727202249783368910357482897749917294298905590544037852739760972810684330157736332816411100037022681406879937037052433077056976220729983851168940991212324901089113873556284510529615769669044032008601753043838550202010937709502713887950259638529662645070698577182921256570706511690783596909339209430992895345489961907336807087724009888857408815428864494809544823852324950393930229733206144976884795806428814084221649792481637395268497148695835378821260610168040005061507012392260116844815472706864362806633679519626479219946497378526818853654527857100541346997040190357016808790359116270735172736995512910611535396930505901853072003427412213688828083670658706278583913598481727949590836235594796321400139226608454202784300825083136903967956487483769316139530221987183344846442852820583065962044602366729319762780157404276554397120670764344089380049192071424429033099847466239646798617220337013200163447935348723089458521604820737535447408194559146162574202952433786225452193164980170078717381397732096657524685118370891477307883411929364511084190438600657543182550066735070108244588058905394508180502274264228445920643630187005576975234841665384301130403469485819650054405059784830251756494610788066840369281007449994991284902037232679176104339775993242593781085916214291634083679470691117589759797907947840637616737009418499735990872398294548046346939518854506465353484704155157379375574642138687945270133725107741256155335419293024819579702739150632286887747842167406756230282738841512291249692989788803367577969456065560389717731721517976386670879443175052129243352365392608704197349594984605059194617807216477705273054601126644727250213958740364715062946842117134742896946683670581530359000335727732084961538680416211785085861346517563760050603142346452869546556478136266777490964486086100437085815022870431751970644712294805989297679569876912694745704444322419120648263760178577215319698875298116607002760321296278788407590333126255677367788818103924956333832393890744944692419849527842349203962644441306947353313038481911976157209471492243264444709360201555540202277560824549795346724464295225118559999403523066112685858651222980669787142062809068626988754973416663485161222111170157980595150733119694662331421729804398117969908536888513622052108536977458230028676285809415608852759764842857588703306273252891308308492745250443135355440531780409987615210011445135584514190192281026745657660598927058041877903973234696832562671648442080317357201488105661171271370920552446551980126700592613624683659866287856563432863761171716372415962163183898384162052423756678452615405714690715396196946933536785321427371281596738505281140935496184606585803815073627724358383392295014804379841388110579086480583068598229200057244908566078386574620281379205839397302740931503497178973878897818268386563905393686361457693520288895777139376854091512194833965027522410272233239260514850330376683057286022860926403679385580748219403026310895004096993516640062908829802251128097481880722148838801699585086237271414024150307519557348925194270415465709686345489727670311276694450341514778497574243597948632048869132388149114032614448442982060208038515535021256935976566293045865369085892603753232212491358118941784195054884476457260323000221018046312648369094310913318361833095409040282747548127172316890379252982358824608591372846006897867879199909697492326149283047805134339867749748534967288226966647478738916337206404276862095691804652690108429893221774354648376227022049405916442895726765371575523786866027630007195538303674736946762739360136623087735166339985452738086144848997738681040702667933937545313647338484264460888232131945593816539698466187657148700378038853762338946868853787694446325372425610885984617730770978188013720026103286877245808307653745947406936364411917170917851761590715083502448852633459191751920704343944636090462027017708795443848171683341792710413211736950138162837348104873126525080822375314128106594371008033099711939476065175840189948740733834471524700282980850698533375529391366223326338515180613012734934231939929836704408951362716568407088181928208434657411207463905999088621643606140219216940588944387932712085614596056369635519993553882846563668184089962683549316705489994563907599051011058803092061024408228319550125756558118722699546574273036806248822301506244273476343846063671795660057870237839190940910825230742707821438242545906049702651095945211800933708741483759386988803885990458593393503113241722947457953034572823565010616454645677752969520151377363860755814822432216262785453189548711824143816849370194105468505177328665678546009310240643151291959574003748665676028016212134165969333838439357805313509747858833685825299578083667182190610733769964442964053272399892337185049619212847044578407150463426385926565799789586318917792046642919940605354427959867166112020963357868635435314606837130860396170287569553217201603873848264246850749257420238665403832476284181789997764794517170560275420004805977885405212131023461052468753133996363821407940743382718536979390011302029110400426360028424561398525819282764056546519662723050880088205434418535035170335535996939205417349093854959174446532682444228439593922939605464559455132963780510864367653276086670838679673682992719486293432525717604341186187153774662699659589239938374653361723841183168998679380213852480387177714229099461826746125996199960767507492417002044165396437187710428252623434450026543825900750145606934259863388012168407197607949505662660692945516198211098298879217378355508577368116363064575454655339553908480975511393528332525353099235289258467663970005665137822405623092592031236657480586826786471610175695509532887214997332188983132187811930668760089468311863276255064520471239065937343776751580630150875385492066993978621154727157497592518458282925872286492661247147985211279543348132690700976881998546695230044747417773752358009663440962215997897795596826320817012029923507215106864930920649736795384586332050358356577739194117536389271580368756821338000581944683592091308148048565006682180736917111389434943023132881930322331877548233093701551432640562500967948876712966812556304142738962767297931330985720812720266847060810322862654927205262228713626837546964672945192540588560112628032835765211267683502568381281842215975276582287468287481366152722773363381087600815523755794120413928863593006716812531767415917911505961439511564536167962582863906229002567510983163282636598143351662825181684089084861333462590535106138529697680334939105374181066249234233291864377096312195367155986745234177190697977366883501409931220467436585927681323429045981955965462836978472787320807599024109079868370733881017854353321174683888650087684257235089423877602203406500729221906882526004401845502586423215350240416465337753602417357528900856559869727732301567078236298550243877606424130310448397069483132078851876606358295892722384280216290222290217649427364226638245389709266867435919313873202738198195627916739192714636216366998212795073476533165577014500282835632036580571384131500880660973109199531607924252836196719020364414104477218575184654247187363176449633296840550472285858146504530371084179053408271100394513709249140042131890177948116469926994685618646663054714131485365156359364136759653941248249780585021315217613497457532761812291629364832161181953486529993425754620993079187148972664566304055905883920674031534994284274805295225020075507172881772390422043285686133503651472112505225902789174053471666762596334376181388947733900081733557684878372476484016176127579270106196274937812168847120438305348353979194991644592086376439328052261691881970441611832288594670060903385651369702692611623771180476945850458030701869653728067629972210680722083030504444301505244302637237410432059435559876312628660732577122688589428958876755507691351611826292800000728909775021460306605124885326194090221014917122744661523667660708115765301088685681333221174634710335534460926795844011097506432953029874863398761478668728544429669005769901529121945431465215485795358089850928205059195205309966078657809376240887122479215448178165152386726287435675168297422187601577327336113497021848596234512083297564813680569475726380357770856285190386184396263295758643575751595470329549129517371338557777132030568901958811867871291471767287195126057659554852314757595071524532143568534947923787508518540744136500448712592173583648652818082086608423409237482827059464219013499765746257063291896434469674435907959430615768647260016985174547178604984276558491770308855623488464545795746028597356487132743685608794020236821224539513803437963877452578863615166736078273315821968075448509159025436726217574035543253180605412824697090474770374463546248847787107503467881824797504518861695238264629138940771739048431287244881303992558930529955447417642380574977959948214783795118535945329135555007659574705222674531980124798819671971362868019263034496816422110370185591520340359285666527140090621362009132550300644779239708673824103621948462232460335616481862668944409589566478310849541728421387644580307995592437441810540992390294804235951944948469836863588407689894520242187621625041950237363724333665682894444922929778571322540957457290651039021607982030973060854934552871880430968312240098448971322487853116244750331993411544081248124126642919644080001186481877242244221527699664768889770098726523906950589641673097128955046170890254672012576904251222687660168555298443031784598165034083642258981757018318672118391283562764754721195485436468508668062952012993425533166235168659346014729650592827561580508437287298765697864404909384481660453749400396810990563691666270689568920550296883400811010506961344199821389370308779966333116866599847037650391300294335981459634829443808033075556170217797382516922504504345012149060927926357264745623674985215529532281065281740512339824125796497733625050382652160404585284608783455970054807719613635137879064095944400344492819961441465554817021288877937618158461869200676118417763133857225309368212524769671978367747515194400005753869927861384853919490962462268548847234269467814284392682284484833817806348115491679532894896245543604761036323402450397818981606652233660443026950336473488042058646683010603033631931880950147975995572378507929785106229722825946441069044541726177775975715774433288169203976824181435091225090808989210175721272787427884185040307064602236787514947985343108964611274598102762222055501767492103254860526417754964444924048637954820845519583850985721202715183685586853856994664905950784566381483833141554976621727609041043865822563769215876129086697831019412754373339089142947381749711954815353826606307538409422629127152872026866604505962889132357487840450265018145600635949517170774334991277845320014722882819821729367248922758285063954483207602706162895748939538135041532643566209445918904800498613541888187024480172908632384692312254454858270309122892057784736368523221551578334596425490653176486200502378039797882679187080644955051919332527179597748995996252867711533239060359383547241294335127811389456658697239984712688830201146887405964853933240974272363000674946938651663376046622897336214970762596486434540111119331241273827084949978294419172664892231907996622447953866237251721811464139564116858286494203218954266090700048750072322272117981158475624621128804268172709165016399733481487667816501853355856147766757022916752947672041732118055124559857882676256313383709752574868155174000876357298926513312187522573121772379660142686224132477748350807854071919450041021753797663979143400548616202762725605109012211596625425968263918702533580972895231132633195689921743230068597147092528195648694202597480348004351102975452477545249553130000203435788943523716061085290359066144290805485207821906684091125704909331432285690838925322830757027263389457826814833319561042303806106536837307242218178797692261303315997171138818494617080319534433946103988161135415064723335770632768075217108499089889258449027696133511947103419236482357049759493587690376982723989402845910209528103300038508791368875784204017203600807997876158420090421811996953295376258102216202103274360307125319763001348534194372662845984027152245867852143049678655561687211204270989834788311284891017285056609944282561234122009698861870849035548598510983044110406866674504978882661789219832233794788491187314379901275893366125380300966078653287721428374669096116970804036935499595289638774551778750583848393323455014100518183838621123869412868847943552046176171339888178061351260336891264574418947099433718087991222822112682663446520184994178227806722231932910563875938853799425505517342881543777400947393297663584926341514987628729643964756533855893412854088877307424124243385462078347030477545980738075157109894734038574214506310198950506896678171987063146120890388541479361930343991878338171349322511074411591482225878082189264405116267898766822243781501957984114012224878047677625679802611067968296994166508717104063463007924366613681763147614156611464556919050410658219453597828074556517440778715982554259456192160278195430777826106322456277687805705336575840255957205886453788798959672457394190468879986557634787407867336191809136414603597920346554806113261132248635302082750650416318486032705991004498721721702523990601497475806606957967675552640115261054253901856868565130590423349093590316520672858874410067618207958908036440992612756091266093442905323177923397639444396450815307189067377864466766771280745812890853702573631168520047544735543575343155022103242599292759588930171691618519406398489695348250316026009023523657298938119565056118334724550368928546957153897458579302778275341018680871929067181389205996230585803583030120529644819530396571403471491036559720522772407916025267870300068638180243205216821575443508915755520901753794858167166497696499045150583764612372295378685721353624828783155405143638520926321871012840396442449392274378420884590988210399519886408682514240533146480451575805633525941262163474733717375196901545520694016457790502573611124210132175420395335438373612502118232263173731532033448862164026799198228036256996198885437927272704062388072326905909550891129346920270737222484032674167473061442260089134458860966707535105890256939192483749287076616163129422143007645522951172783475223285216492541532616025634741484566947780281609015096609713679844039859712720762608800971490691139925458900156868025867420936937409513535627872417172968506041578947849545784620096671448343734236137784730796664439933570025900002950436206229292193060480962046953644022512860086632918001630020353798858809256369157405582164115882016490195119912457606071507920717660333541361448022965131224649786623582743131712327106942324950680911231900419261504914981474532751845043242762502384866081594352654091106627478690105804551981543998880022100603403403713723994300367364764824238041599350584070544889549252293450918461268247351119220591176167922581466502139932771601343981880611151900495868405936157379830179442312271566721799223684901239025463603260589247697451433703689633733810248523827861094224423630248134928441966676157298097067753625545634640842878085817970065256126479354750129464955645595957911806399367943048776054976024988620495075940698675121918391187337981388333625089289587509567863864333350851882404223507425701237779105916660465584273957363676925671424075514752361678221720027301158819707721868756626743546718250193104092349304786550703758983231550770950428975566024032157038002507497950015240566960445869732220786224745778843794512056455566814653830482953557988551404493705356231375165798700023743806195510509451483662630762975948529931306435490245318232970291058960149168450313141110034360911010288421107018597519068087311404800684372429565937687592480516773026626328307409031247458689670181748908197920837215063815194267870788440276699498088705820664977345137859433659766776971201317540485625200527903075651532176838885081337850270669260152148844369762156092234220168956843325917950768324683578006114094060286640639928990840857346890386932263638552121777625775716581874218955643867388892262812405950767651078280392956184361393559677367739002864996404372060608845573782023932680109166398318480909925531423162974237746213695284828276761200680869281635112331317025862664815932921852812964891840444609586338840070185953048863271328274618540203535665753399763858134071374605086365161961610759487097991168751598474795780559061473240790173278780147919055739436900811403495298398257571819644605700491188899788593363837853713403330128345066960304764503030955043061715371320618488312218960955720025160919178961429810984518107857630099821462663130232307217095610391883726174665549416290509620915767740286862765107119381987514436225758211150805054330526480552936542421470365845883895790394274234472991350823710757960383828985731259875590782455397835518168881620922521050647662167332650234799196320457128930285813065316178903632692721653450196778410442675678363007291411233937023259299737560837913999474010981352124798013688325714089089134589353278251503082398677634944436636362578429160608746719306993033952612129379463692724143732912596631107575495000499816498639536095604752786090154765644645164331017214816841356765853085984583559139346287738548359432691765868766344754600635249246528347518391469181335757023832111677490314918449827744472062631757199512183254805827668755929712650634533286355072418029000421286061272068171471325195489159110318340514656733205706486676141575346888192905450519586602535513340521079567692362289253540044434832011707897543256877211689422656065196556217360369306568485635283318111301226459461389272614604429040220483430141555130213035926643814585507837039677180042265900500351392907811871418828131655526546291962419996938834427857568546224649363382444773307337790838665390966499463832479553418759803312537548540003306935919740267796962253364408704459318453287330542667099923503456858863936985642046130957612080879382802612675090952613688025818535662702546828827129691987097811981495741063052597655229321037666510045894532502092989023509701845102094190196757621448309908545460558366213220343254678298980615431820041192693136991833969958535277645136072440014071697435198316102761230278254192699820402202473556183006601982067220315442257796007352856662868780135617487624038242460835431372109877605580519573934784441801444472461061144990251503676754107240099489620256177898196294504465161312028372517310920224849212980237868483769037194677482499123820085354035953720502341273667862405518632291473715934283548893963961621667554991603234709394339242036499813069484942095632632907009254542910590646107321506395511498308536483489055873692471520044630091938440596683583472325619100267428566793558993621836116290791521635898470806141048618216644502624976312563657091199700399983078806725449896882169556410236840193793533121528485858734897651068451058053935662964447339771784317740505024316813551152034945830844220522254603176080732171320612194238458837176477435840938004246792403452400415681351777167843361998694270991479797468049457203454244473803608813686929821980173571905446694433624278920856405265542459338653508215939505138592919728887936849450359200166538161840846220799724668672930907329922645664515867968200076632273726125629197570718432306556982246981172710945514405714549834387325418987484535017903541385033516953893892432454025497992662376286742637535883848162404716283315468713760998245827624583164410417581285470365832177593239369733970918957087174185068461239382422926989599285388950543871994384712517859130376418339273292215869727771310963803083033193167388655724972553543533692308524822410997865497853391785117421295620882719357783660748325238751130877245502517811451671637274464642579651492451343853470531807963939845928607834141927995172979857670360553358689848560006622866709452987528102755784854427074529124076012164840552566516608982572199978110894005984798537256298617143939227371460162606921773982651304345224921828334110258869064081317291446882419146806459674330655294354119005743320475536169853241524134003679044330440610639073476995666867241706329591928010102263977735471006522600734787799933240576425642326409570105294675355120997612062574673558300703157410573157777835784615789196852571436356611037157819505533598367342203489785139856380254823878307972978872918389676377970650025142261407590922826314923959090318757524938016578246057943070713759496423194449174554672745321139556243079139242908573329830522354964858545395029054629196454223229889853922209195580519529547786499439567791272906342692588672722359867426136983474711459698428309636539221852867574860535748193772316140235855752758473355744546941500825574755673775779439626629063050618990949125672321959714288240904259269683692307502283960787529327457551564744252757646950753900857841391857234710184156856964722926089896168646357922599018106986987800615810549624555135427432878360666180489947999201627438721968730125152385466647583461417228264674075065583963249885512879540283790357742566763454577053141527624329600064181439294711144685768102150374028163351013454878808751213275946808314218688834131241995803025294589810072391341286389011746260249787409322209289204549864651154043179482808704443418398512071641716151503742102308524864521129499934538672042665169591343172097606221873800393138502603658890028582139952052482334107265225768144564002006814503240555230674257748552289412660237573345205324770877982068904689929752096265133357091791740519198976960555367817093461730976350781525286011302292586757982263339471828957289035957637123547894352506863221595342130570634059613633579292894870034336055914657973777612075576353494144802563744545494072442920738031862957958105226610411839297711223712895053723398877174897886253986427629271194828543876999767208700764319060605113794457490764597168729662112632374599234067031061133793728289385991248120238341726493919488453016905721514575882467111017965737975865519046905695031396292104441930683820524833810739603323120150191202950905405262744327228346527870115702141452715154315485276186163107794792694481916268739799501242536852488093880610453093882602677878098552199917502984504015646109785620407356844244562637915433075648532559609899201110596221558100265616250558768197429666595518488251008872828263278269614585246253728978469023721196626169028053570379575785144008594796913284022113178743903971774546708864827760909828851462352817745560171040139184229840953566803050187688383358343545542096733444262992031198282713677354219075067990099841614966132776728651475076448419692979092922474554663265565891063619153865436150597295323697941471818732545340117399494132733411535533643129301936007351769977602549639133208888128645417584526063615165737893516791316835023540442305773180506660353427447291305656624731789982421780911108406849113559623512443247165143283271344329834824009494874627861117912770168903862118437672760758069624411413341187007865682851579179997527139177214989393949791913148585377492364898221897009145588393916017578750796127946373664389459549087388762415818045763805090335654071184797085874370013121040133069568377720799848089742161540098696010412022941139643609167896035163319963185217495087937861607116760839654057488212735068270495607316664561391721787081516741241440461084874026929597489152520951320314793202269753786717769069684247526169672347121359661496779936386560957706458112062615156465759550552896985180749471131729654910481259523176234272961817491794563523666410157946217246798871066639925284590166393776016646450125035482336569026012415534023111447586782626564679067524091204271504458755321783458576364751751452907610536071985962531219271035769460510596705670742491930129400529157934956032104205226792716039350002084324845928893173951989840493740767812423776033492627028836939463258914361884150548870632151052558905352565670263533149326823648458339682970198577622273876763932378817022152325505412264457690075547830811475207645273440702840597041706569967526409790549590501385647205704579492523539113751354362860250665407915586071886165414808783902668619187284037070372430804975866740706661320716263831731982911700661802831625107373830124100560840499602196959118840706161573318004174042517120279739157048830062377184789572799197279184600972251566375308848376506857484833650279444622430158984753800771633899911623908739516622317147284429501599673073123522115498129611318201717068090563758045909793686616689711800211987849605557743470774865027808626370769117673151852052629511981094593441158632462949188337361419128304152516206951560485615177727485052793572350131897511891939913955214026927868043104073811185442766563103956955917871394860138335615004825817744113301028523091850910615381984408324195382142741162947997899058908599173474861262240194939186904076421727501183779298442530937133655657283242794967427817541035759337530955504029210805473130004769565423806940276289885738885341190715159981684286399682549839616714513314963078514375941224208885412714393028962173410058650989381178125944045175620854358652803212185853204563620099183040169937892146630623282226702280829745895468447007497099090400704034381765354630944572179157467175392957192274336302731420942693472522295636126609193482641158069702396042923236406147397125622071754414268079004386775578544117706306636540512183175590277762608634804827701899973751570030480643360508541303306089673741740339856808090260938096477028323609622078015948282637285360158972583985817383758775135652040591380044213331012182814808815673129541931325974244512023443513429679455793495694789548609675118735751311460942800556957423730364835498422048473586563723461925054314131380379343913354663794444254465106586170623822323517987039158627851869451803845665186592776924407846046026499684935965822182280888230726529741505258583655985862579786562634284048795295875086407225567660563872765651670504333682524565548975266097265354060871056540439035460283491385440332883631991970263464393448635902566386719879476987545126761665081208088222033566144841312087725202893082512418354665500172565776685943201821833534699059768825631395151457221588905342689627827668603971436876647623051858745591137049546271394558270840470254634353754153444430506503483061826865635852683231847800643136360719084048059779196953995907847165602567211096263535944591231717793705633401948868663301494466124019206082251068977773688657630001440032206497146997373375963917601261166031734629513650670044797049054642852712911859104400647404030257052948045907970537986546430238203427666296781683992448664827405655941826668692579938198668792955038635501511236922723785055956282485739881912458337891848652859422971485572390040703314254208070336646445954203531097907830418006273688484629357544515303317807311329680121129853112723422440998074080519022334622180976421539808270104790951733071366508231678568920529835815743296056975053646469906795494969699112899068343526213692940603097016914927549722132794302380786649767155030538361075249028127116724512002082462269880650266417860683870456610541510134136183904741300243239289370636589331849949941000018976310462149141242767359851700298902266879225397875637388986191956131061004292438659109548718036027031156360883584763656918160946008953722428707528272658710768137154000775141724187914195228104589524706180472971164552349941062800017778073172038314224828923541986180630027690548429392899065807515935980833679885484090458471475434064119004154598726893433657573330550815302433658036808355012787345886457792069368336250965237635463989720520499299109289677182630827448826054658733175676026770112683887852429733479076610431265728941724685191991909071050375038251348602108886615649544467489922992033382385072879810128439537987583556253863315269577539865777624182265809837162827232705941715717568615574028130879156269511777723433237545526218991016908326878132053625418280593128779425192502754815075186019960818651784667906889697366481943599269102560848362214184107082105635911344586024919221433175803297442070922010391058769419483837703030840221720303383286013000704179280437958749742130024723783245303252283764549906100711171071350970720690365320747247450738395256080086555466416966069756710484724331897576307905740585731111286238479076472702662999546022353743337397300464276508002100767067022134519670721176182767965606601967681172979008337218952239013216111305753933145377255693730666713155419419840545027819546374186561513967658580761525685593973614886928267951885720848704101791625275535555872224140672150573428804861206054028547508290561640502190618728544454487943254331951312054577655352031896862722502429775578206648696074759444910491647500632663401114810215763987272362800393652800379366543936071085291756113001077262710856943456590138346319801150108779232125930124539212672065962212064541253408086870628566583255413981968827137423905987773194406020758608170341000294986905111664760627904726695379153005978861892155076912217359864382228217928980027737235424002688757770245242201513963339158869027909341640580646472126666829063033588983324846502282397798696058869505921240943997505237572962468396363624462766036863554892750439616675712002967519467003264528396040545921396414934397890643297512691981734117928541911568533120252797036456725018883774017280439233017787049244955502605942460610620393109286643431759248474536929473879794068920237532160210098238831357848555602188752362962366015080602349340981964125914925788344488122791557414132440357746885680255604564321371345935693719830312879928815459340905807932882641230189229909840296522456892098014917849279122100586376121680878177060000821039848282169963000249317514008604279524885031294444546045116371666921158460237536876971210572119966774167004464310916003370333704186907508760000745951456287878919572626563566297756772337440824050739193867679880641712659010852179955055847554033510442969580300666870014605679080234651251363543593056780840860146481517841155148955089265603545910638582588130050833092947033992169461497583017989049081922163433647132744890081334069586061360856839797064869649395615819859469265287467479333970769130391714438875691947815418910179133307425579500290120275428354661308753044204724038461396074252259150141795790066975338921652413888622464625495167600223476100262083252701102626743856573887224231857072365924031342867974902955030464191409131062150099208860392578417847903920287637633344765820526102834961498085394480409984016984771024937650218590069788013957488634564886742536515910397324415315023929942295360323552325907341328344643472256288254751193218007769665172171994840294980438913866261058262903515755024726162357110155225852911884321321028985188221693811533153704200070563610047897671292766038703235753091868449983754982667410678123492499126812041388560381056817765565543816331320682056396770217921071493195483792691303132330214146850961705179625817045463584907709022609401938146156912690654333427173661198825158857632594960588407754044236913527182888691606112956549908760530253999484277431099048744921463669626782909561547053283084085958348174909392169258225890872670407728187992071013949571657867294283333318155565385873832187347113336444574730492441859260929699632371686386175399700913438547338120637290269898120090328869788448288975413543019332314137480915504730394319212314470197107188491863711846739491286359061627726023329943614765105352736783646524038677332177839509607821347432775006236587890894225237664981583930380217428177002513682277539415817244171953676220853752532053142475384167202106422149251797821119419632142773550882128333794877750719581412562460296501132414669178200804546202238518535745469237429221167410701644542100020080919519900368240745249908752773025834846072369654259488238565795337196383714946174294058047402249494968132935005001719882559017050610863901412750532591981634757936588161200350453202176057146246715818772970799335468813677685501117371364984597290016583861505429904145803341641504602185476760765793815727282484246701664952166847517258182511469289410661576781473284601289888391237403074070035139190425351399198412822509501690912581716167731908609837930386928779056833355368000732995533572397507180709826257908755742861259167262133732939739949995733409093053529943265261418694068869801023332708253771138876895194969682241950736594291474269468824884755014615830273735647101934747918838496428163984249215655218824673287278779233492971936845064100667641849267651162590981345590973436444371950341124996091250894145629409162702345842987766059010683780733778873198094433405813240748146437768561943073155840675557668860372850901965348090798901233879685176476662759621252368709517547082779645224360113744783333299828614611224612528122937858276300596163795888917862370423954044176015995923767931576617528759706254446382890436996644194501206849203976849556231272932499935583685540065113058223453645577102654340498945187924977128908681695243884705434511348671346695709830858236579431482738895308435330659294423738907404501673624437791938393163277186727883772235945414647570005783154669117060419601004375076924451178063457775515293395904974982821063381868567336311903666800931978037645080018991373392284944960200194498215774433079931579457709872107317394954832046770290657182791062148325576503414931337403131332865897621350997873131723126918220095160580997257550196415034812962552613452930839204563172425679713742470463993518466564425685255137333596180154962421196184485098861884430230309243890450811677980730713087180574523371572957090278514609434921044079061438346785709605410227290080503684263566784592342150695437221862425961158805586854530576281974285285826021291080881806759658578233462281958783935834103661098341131581099135513010570733135373978511889826240268007710966469259119879113546529585612460381121504721640886976141131688653612003794620326932933207162314150938236661795012601305581768938390531515658446179899916067588859336518697629701897020749034739795147207384200183921566663759656457415641648115814039611455899633313621303255868591488336842283872490210747903166823184774369733676819060974608279253936445766126893189515051464941487639830776855003120752103583792692535388686401764881585773895638883823514192931476979224059164281797423848583351459660524935405404160337947025954647443632480988483146975207745016281995854224680470246345836952568650579948886787667174683673727576649410872728498059488223457637706252350652604637409538178259253434928259142342452026891971509296300514406077104664575659042416191612230954326554071581038449151391437268875114486977217370410482529985806572866959727898289000492843290280302205016490674736376652412262759237215863363701999771052928925658080534762366617235713836458658462195200961394100502833092352646927374361294796556268787792241462402409392853633662819495924273368651783146952107456324026649908415950974271789458582402222766868378376617845482750710013736922173138128412866233060859705066971548528205012228269685335300532658150628415041537068412504185431999130277421114375087779835714796186506730407002897867800069979834660550766601099953623686592541139518337186200950555552670947427362055058691391588017742399000212137294580161856284476835880937847577304651255765445077705395388204722530519818269129943730874934678171605961003827159398866172304106520690322846916688147153017789296757422328150209693090931309492026072942038895034338190306522426792540732495705256634373889631016935174720667625910021581151949340923651509387903160656057228216718610635967371795373142577959908852213690806145465004559829175221358433371516299389114799115358019724733920946526667570710564208339663840459361477756542802012963697337037484760347182894749869334934905202256286285367668147547235182173599329378192038777961406559275636969300086224589341219296099862232317048008746180224093652063332772311350736705441925326596677707763396507558663086998926786443373992169382153898768597119696611928056008224326038904078967472043616096529819753644805785591813088195365436446325761054879594647561286304181052927763344153207528888706859989013141067639831452286918673158861277320156884222597390282077667112694142067912144665628883537143282828758231178339195785773076617935512055172965503327980348618947052526866881387423699282250179454597126417428105350199342052761030872262326027698231386364468561736926092985389707928646402875641397737483426054603395882190242574502484989525963345506693694727680442182075473357107766664122972802571485608493341688381136733642873896104711998494639599120316509685446343726070319512305406462344037168445979566659497907321582819299258510082571653368994745276030496364962491054606291899155995183191877028088898004903854664379741671268636671031839636920262224196511978464747131775297749750828910103507893557725779585549455911713767419742165320549677042481963396938628813310860755354581489632474450515571205411274988818991465531940338931298743912964111371402754913484903523030688848795321843574026228268813117171579793446171464974080321292443533581274341276811890123443527229374050154011807495560994351347074845452522442138674719446171714925148463939962885355428221623624487344257232909690919058395851085437241955590470354377656587581921993478832748035200313318585731520726102051695843951288146943104806176213199300740655130227611257390803917015992584422733885351595706089828143271205395036309769719120434350838728772522184345331215049990605445153657478916025546556443489832350391179084006535265652409060995449224191273345210872301566834094736995547038326260806632266151993322587875471612986108564285649012494075322200730810107984845760773182925360811530212806698502694145668661663745212400324662814888130342386665000283187106741691893979281692093934663715058756144077902200524746351647302736941463678093762730035270673147095267452716127201580891333861913423214705697919109157356018530277766056061588775439393481385117524948071738256951567958767903829649911826876429593315551396630217748259884447319373190426548021025357704088195980757993353819730555665440342083535013093048538840824861967735126638773462676984984899823636027672512699387169700179108895074011855506321955358405489899333620654721649292602430395984109832376307443417279991517687955314102215899534682994566677542265004895302398736196265238402011061079634163567707838640550817417269295687085086245426541181446485806410925146823798031460900875419877626386478721992369097688089851719354096564583219188823100839723891396952088975704043533153729321717764201597071537287502789834674281391748251031259543807845123026106973945164648832669851942306653172164514475510176773761755516464526858425295769282924680379623406649092072720248999038373688339335175825595192311548214326002477680381574660995417446453941154894554733948811632390341673355266410938869071948738721477027219894708185120032024888660035005399602011572220948470629830289939105837100897237484551091434729891845054124948850521827383666358351092103111875418103265472046970853218792104145331549901193913804656378041627491738157855146372617459725814966593408090788266461106161873978058761657369376045815609633291421043761001287129815330448920668220854681480094174153396984151253448594699059265571755720268429299664234231107814201691662244881059054861593318619771628334216924601819544403478687698867138070172339086289607115150997589054075186023329151321797719343849946034573561788898197714274970892604441540550977957937078266622163496949084727795925071625739180887749490101190038733158719929333860409392220544691803269110765332403457511846347400215700778700251759822865892754393843246488096514934494080917660190762551346323137046811932057917910083720078175497462507307054990702520646787424744456528818868331431837123245327169297666957178789112158874270071899574993845719524078248633521331013539256876208111120513568498931815827641247821209541216536531852146964860838642512430733047712159740803033062833694909870543163634337499523141345544926346749397469947500823324357380020896144008059593282945976766549444535451321485610519359864156832856043617770274770274477122798606336990914954884018119891164013040239521468833402610899087588437702905643240177282387366692592548244565955249641578746057669944424916297859355931255249227994536407718795763221868306320665932460309162992652464908066638877006283915365630747716539376195638057361624403570809849789479807310406685991574999834751877756896846868053702224614250555491739314447078167288622735283857291941709622347189573371900696741786271069922892554924736069055375046183029425657809140421598948250663190979150452850947361558066723134000413175308097915284696979079956532915399545775574221657516308696853123002416139153389361097370175780275301660699635322849273133942995709184959777912385601771999397496540476298986239448004010099035415368937040177084975810514159016986598775942557225697026959782134319830912600924427059043859264474028467241535403554792217624180805720542902038411888967861782884476922134867765726041931522894721571938854193938332730217285438877390818366791095992887907296210248344061184365425884090900404454375875537650654391269527096753691986222832452098222601138290718356561987286050379391202953091222700486129256768353029282014503208990254725069494844853941287593910380688560303488516630316615501297049468735595986550328726619199898185310822299560210387951055694909609993397803211390570035239300493510059299337259525715891794598374241908667157738760464857140708784334068950783810566351016745050395061087663841117570610743918011083051729011675950037281799684036415949108059965073439178446743721597536451970913433674101282822832652958025304078927756966741454410303202076516558316380249038779208001329204144086819204577291044344236098581875681012152283118925093555485162483637146877269624445959454715181031603433847641088737042918046508928232406724446352740256141776845943618563207383312790602054189747452735070463576917978740744075738196152849650561570835349306048717781106237477607690172398832992814716333739702947746366805648393592901011948852972661611376346573939243962046817800510972686685220458751554343203286037670457264218926591945480265521962480254272300429316872302480938000139251702779325081118562650617767325885777116377088494824052628268398919609147966566213880821107271625112372141622846764362649177217448698433241572122833154981243305084833089823071453272613583004043053673184757957069188409630769714895106340169791106463449932718272958321097740791555670674914056217650506247155637800396107547566977637260340441592833637666222042875005461512026435250787728145521578067421704828482282421550999012902224808367817066640520001276608369048881744241043125634915371379027804516070875959512803902203977408009301591030955427293047529194251326885007973001263132370959360013636599400987547580652375883798035034999005776728360779175437699686866420451020820311039257853550636912153437272982351197234172481287200571975440829857084017499762598495625315711903717738253798612681297510463544162215969418554713145891929934595245291452163302830394908176314672529794130558730126042705315186237823226594668787638966125964058083754477584409231427736921818801261384894679249554825169036065307553335720382616957297691417289382095284111774987530391800487333826701096334873621721393151532399020022661296040696602277922020069038662636841366773370998579667310608568391195448150156203413886673789389844568912113468771306067659584410387263140341024769716125029184605847925617707633463212629938395013842562569241411901948300266299735115844871042629033690788482856723922998799999996698251384424442123015304874115876300867437444259321678825224047160533038211193176726052422207921102603676906796432985958242911415385389196504517352651733072617186065016992763403585416750830270546052812421233037832118398688814218836589189821982506822761431273886484696142382074871982455915598709551491349637438436118919510052424776331569960919800268706678509865578290419697833583306390566778639258638227459365400771644447790977599634255623193886567360785425209600312962910078290868143471454960753810909429777328579066242639609189806075929943746380597267818951014788056569731386030598873476793995197004996894763746921120265253186108435272687002806801683480651184299234526858226039925930957530929127238961486827348436150420774119828634396436701141753463045793951432333779607117019558342492246685425553899613840223201507756318037058914837184254276122307774024249874665476068692071349029515755261826112892919270051415040520955170181290758629529094004001591056516507037697526728965071873459636322244674420909027037807634979600130043897905799433919130024328978270050641182584700750461926938526499518741158676631365306144532786911742733343112019863526336578626420840879813811670996201948082909180319880253287167638067842042263561107417377456266717425595075002267394101410394981126059497661812004675857617404666356634728345079456018651328549184520986857288437732104824495119961480842396629204894381756958571619281141838876153315882493540603350570982981585816469114276073542516252777538235953467777457452346407886292267110461928271108616430794174071442152109930111952174444057403040364857727855173783149913911534992459346739866638092575628609265463594478163769947702766299402636826951221640515055974159725920212970661356818350266196415486560799963121044498354470648046991631756203050390473326580676133540385047620481198829632330541251226300424246103852981859929206771485793029968106858168642297241186909160289034192479887041719949418162408724259460059696329988184102645698818461726128234411097109398512933178600583254302519363638351581262789002434169858831566600536317076413612609941311505919682766034769041356176325533775885556237797223503981991442933486403104504452140734481734948479481556099141544149523432535443483334370012677017549451630854493002322371185411695893873370431762062540020619645533549049700379592084222184715706522876251791792298326864946165737308001505865308644409806345541198886148093441778099910831356666743590911380298835881900062861229953715061032412502260153568276611130017928017585822339374245979471542751801441054809932986118107576621258818709387759516034958104604655973146457473297243829884541005478697947441907286103610641701524069357367358167312425242333574246414418958342001167674069810016746758117487111369733180383270587711854716521588952279563824544709090148012954000707026486279493620736806622090498382057938384874319718203875341668718214778358929667499768948392315612939417149894002988767182826341071758827176132632389080566907772478288101539247457769881924826392802162588473808552661702233696727889836675615692321479401588704430682348457029562571466613890741520209083501483262256716320171668239317974443821764005158238348059985303431987011703099888682076602126630327045602211664494211977017009568913766754066599087259341706227630106115724465789287500987137881240602036971847928025807695698909133379524149994670881777204983295556812898269565484698857147051915604164931023219357497222815265755507749935673860566085012573161701185011995006664334925062063388324631292868691918899174390035629839246079785606791788276229498950539358269706688167448580482944439709760316404750612053632836796461427084488657956934346985242482346529485347681845032498944950065200862179673045942893036097052397926083052474025841091249110510046820673483251828686430158969277279337455524811957834536678830522259174108813134996030722842625622070584867208511927044935366935395576437756683115952044696068408295284908354917061873294596976078943833280537369779696045210137131706110910231559365101028292896194896872839434576138373534583278408561161111386693391124062588927721507998577187802990890179576806889352367912482761329119567980581343639081850336687942893107536739672832928397545348539045751683718518879982431472671781220266974964542120979753886407115881529296919407384054788305999815928650732537495591555286279191095882727704163473867967811965644833170914831953433056341310679662916213983253438064348657271147391331302533789560482016991840559136508021465842609298728364982337361904130283296698891045012021093638944986358826239358039362391790480230144609006396073740818437722597703023467578867707450642419438293767265066667158965324735048432804946980343270379254288240323925130924397532811025927764790776159152244735819261875119577884709149139628604356855004927494359647684221049198668455428871365431161780515717418374588712620342034303883472863925178838600926775233507974934413122218270645096837095961484188456885672665663645363424979946136253577769358961702056971789460314098655875412937128998046640620864405955045395485105763951968551170634283033474184622014566805401347697960798961749885248738637301599878113592661080715752681830368701431952618179974468542034010258481750612772549969849345732773123771780910353030863420804924946666280205392277708701122880079189576570671735231738563789145038041750703576344211448019242709451220609205615144333919226394680006200386800152962867447790518085766304438560701472758647002047630392196450496003131406563072015947612375615577909650308750198732814484687991048679875819518547833861392712329064998596138307447157235837760074314452143646686080646753138057646883945312261094833042815363343417831887711630582478771616978556282091831525235134899572523143801342655787372905919638285414574155090895995826348808207372692943221623751949889708893345235066832678178422543884777259895755945445976710932092256495163147178621147399936150438825069456306812329238138052103174968512427381671905952199539484401009750869570567580116491566344312291902079751173417608058243151285918302897208536222319345896994995880574002106271730202136560122307089906270330665363692350276671810015300267622281281653292271971090257576159765432138731102847924463842901081284722042954505713665282732411793230519145772913570076918686054599040443493325837452386389357005517333523181105013948245791830175048909421845474444837171785109334203670419818430470223102935513716765973342594540868464899560838859988192766922657710298460351472029272768499004681022226290398751865001456564548317373177109581261662120553710996092319321059105964560572856204571466886908917507365202875669564162075459078645696651528336312539123773765850155946394977052867665220967402110421641409563640344836767680506999127525709887013177717907753016055584099648969931811184264445999281183572669150643289824820516016991685102392112424364443148111109200907188478839330648484999743414327563861853900405858383105387326076787973454695343329262727101416227273586081052228431784459556794966542892949257550788516117278828811175363677950387585464681071489838883570629903299152152171443325404487611271323260664300997810858823497309179555931432252906772761615979443921504437953910143960763511095406917114110169594627882339472016766593992526475003578320568107570248173457152691802108156370405407942947906107908219849368682298637166456904124067479600418915855009141645618821182963068537794289275243646401218019653809396595893717081256398369527152433082540232137517811247634485832574203528248407033505768403217187246056742564310518782857835270930539431634365448031513549268153176312757108933515133182139827734332250293740164454781660985173301642822134115253416345338910439538841244354052122584176547775313586045339571432410997718610486611516170095202256303416482081719767995887849045232590590270346780615775555237827045041674430817805628326735621378272048729866710928990596180230365120465886765806922642962028976957741055788136246922586824664463803630756635348921043923141276080637847092757306574762436944960607935548882116864891161223497116792363998685982920024526011264515184089880079082133023920231368870253892074616214268053778677359674239949307480937888190835811506959310893986781195726685458003816663647302701903029398623666511835977835678486413410886886425023349397079931188370907638277419362236922049811521524026303847676154640279160625890996173379930567806736443818588462191439818803957282842692246498625965460031084255006470960145508556023821409154335234393191432440255790292394337806903821659755699724320360634775491049623281962667941163426007439871369957898786085068750321547844722759220689005391830288464753086942790006730939143755175313716681486295710435450919484725467499300214060596606886002719676231210518366562488342715803951925543837621433176523003713589631614655286985057131034293769140362274930458983503005386090030472312804245129828661297224339351090247692438575492650506138766222911248836984002429076052590898797952300019172328645905091034894856951472431956632731578288217220479789475653463533640702095467479920950951409431194636749938758313665215165697836737490845674978522512821234799547689863806476709767314525407872696433033733847865078769345937173938221550298090416199090526345880555111131406635934862377155166405949550669942373252039011092148644296019826036544893243139620930693181755895697922693248587921582687470342433513529341675271334822549355487193454265899967588144601057355417929588768641415595329241200083838561616012860756662079768928095910245176282560962158135876215436927991359868020684476300850897085828009075199784497987155532084672991481456026467399096050346754944444610342325310976990999929756126008533264593890414299321804817202664122488343164763670567607374030852819961194032535132151041181955133536833306960931969917599995819638611400098055954347399531595028727232207879950405818032663990198982210617747044864170110405351761458352228397080815769435746730079954613539262629969094016322441787127800880112788486216169847364796582943655683357550768345752266779185968103314360050035059029201337332268677293401259868972662571912702031463685722184052596521362672351995542892619041932986851622226659698816589064664298849712917488064402465385875758947142427883929463957523885731617980887450571460660349845236705931328782403895369445185999633803039823823004974238311806690484630413360348737531611732682793734685884391210499603878013910544319339235257185224383808056969739719442511879492406078285355726357667482078017147841486128565388677578594333613045691402325821718288431192089593614090943309412096103265880798695632040249348285329911654589587944824352374870615911321045036816704257333809231731096324443125476483616112586147074414082794125074468263718909409787424064739428768456735367502961140447872421695362280826672475917770801499191792453860781643555062587416442518493306557750609991143991055018615545203670181638376893194373049292208184076258399559005866208021622024224823030940414289322980963736229282205343434234079829146088477555883362198625327696778973165306621409668665432175380269499358171281451165756260278672405511816198768331750191214365658693212612199483963846169464526680085980394745005052912552468977976213839964619820237684335577818282732842880090526802907780430494570408677432022916826400659691095899453527592145936218827959705158241746237485623788084897073388300906867835879734581458943045949730274360231239712179275872730513283353603389879817392911514696985074156858574337255493296400746567515868686012578989579491800698842143719301520245940600006422009794256582054204736070792796072286283010226497876103410689615939085324433640431475147789019592619411267576751227262255544731356649716219421188492075153638057665453661904934407669559355290470347177889277323510543035067052127051761627024660608262921588831941072607745354122111635668241709144077954959042200766885800916484969298381290570347042031698907071128585578850487409872830103902760385042903824593469525387367205593866649870323111067409442453056010023632670100858757521402701810557611793260389463855773574351633114183730965601406863336608425619343225407952270677242253832922077033260279229715808793668116995497992193718932570978710174253664610112337367874752364937138937173220981274748057793783886933831658382689818693868341122678073312711290362760561648265987929506467484247624355546406277890558946181019854875381152823352251190920361532819382728794764787225528057906228508882995573021849325561709087253093212571378081231002659802351993772661275798791254358445104580591021988068210153989029956197576785867843127906483926216334506475388773817616401599877980998018264474043362384190596047743787166001237510747008652342958391122923811348239785622825256189493891215519676441760725578465196824151472430341043003272745252488126979717925124510204087043020205604213261802229486657816405785895821129955718721197982461000581866385643479043817996658430704240830323153511222954446223354494834243748638147439500546880810609651059272671053275690569855924813448296664987264179942833827185851577511085347071641468328954565638374373260338228531224488047225520060763085688360163309959471966170019580200170278123900030090036439229607834141149963460926449947422886056081810205930273612400135245126308137075451759162191111522853072774760092417620201921342349560271275739684901196176033260239033669617942441002699903805881874125018360515798314708475341693066494022362503995483911003237818436374203178245857813150203965168688420859074791248937651055807688014061014232505203542389434288824970171058251515153002639530610554778820574504328813992493622716154117349360325314520570275961666676746295807747071715047689306187089031631538362620179386030446047723279407255359431350573193325902541256853180376940329356383011828990641207230570753023009365790398596210137871573561467148219135142345809510075271995494893817866278576048544905410181259651921889063365696663751791784187518072402816977454063495925785762006205360830965773145559398618766170342762777358577649014293332716994218453420129233194687324887350160274254319572587915832511726944046100891950556552436940096532275030743950066730920331922466635982685890063526485628733753170595943105413501453296035596762321170016828032198715180816470254791113830552502322023006166012900166582335398416824921952047977383536669290238233104301884710315532723605197613931490388895841480174206677840174845738985718651825137943522687597253928134860163126041745439667353418640026463585358167086127183900992396973445457982729822303056475351306818576236923408777787330949038885932180171132948278291499696322190277504765648953330032874249849823743650022539719679940860794638746145410042716922022016372434352147157292749033122283452994689870865321352257840931147360686196222420530391428509073231436089262258630736101411143647976022952165100357367219585152612058090803047751618887598053830702813038022686628929220155239665489336180128814703333527152600908812630884866734273952750652416748164535670705570908667658823586006818170789896176664521481029473168977769861493021684764228941688725713714774611429462106331817878871187425700172637475988165394687020542747418054495311283363744380902343964689286403153726687712624114823000501659164722582410714903603837154967910512241938724107799723076982876577727197564608120960666501566155467687121503238699710774015451172866286023915166679839819900936059944888449974434083262136953617512094458302562947246890389991642933303920291464725325059797621668764528290160305359833702558388094007705407344482090656653300625974673610677827955903157348845043508719399352015892696999518608336394286315863991236977674801787294154105811620156614395912882092832761824064716993156864078517509162507238366775622213780341991964826691314272685513370986776456446172054247664563017839500520466751227360911301632689698296901848846697845103454973840043919930773743012626986417999806907995291093219030371354805680854509283600758829245214939880849008521744665758137609255142493549308975902291931151218036196153625338007307683190856566927007847489463237255179951142847972701987592733679817514941610073347521384523776358539480592098316942006783816160689125652949953493526643001441197723035226743627804647437775533819617073283845218066641898583529205727347960671418553627758358795896955549140294330176331130177660969298060139508647076678780741577316159385898110026625031205158606710569059998713515642060805738195132246343520213893972449856746067129160297038642197012394951160573343494598502262343290679742240370374748034974471575981306731390391606404903453393110066159234428785109115862957077663209046514147990484176960780030717106799250927828736495781650854901501124523257089230850960924670268457900391898402457114532886322459338129553060340179421158792109713353685897490394187691768254702768737261862968012833168563961319042643273704805129805852735247158826487267487105967060140244856061290968214119882457063688920954691186573844908291832970016398192380358223552203695585540031195175542060888570969864709681188797825944539392953624891772226738835345385144784439165500270466451353588149650372440530993526863623570526272479505337469310136426032505023551534866396088184729089584429445373266462139189449647644351658424284085759925009298791742326393666128795565656581517509846642389232418534213296619316621142998049201098876506661041867485815980871115885175007907124878385171633122051932629474387673003198960283784621299185629417260069639334493344963354108242319300212653800888423155899435172013619909167027067955595526780043771250781422869667770011379434077471322006936049224850737819157688883460285005449799385805799264337274315504740128001338239664900924228094744559397037597561503051657462516920591480948619772656295283943162645542248176137713736879324884877859940179454900701536935932563246883791780265432713058301632868093813420111354279480985347701719364700308050916652869249487566970155761787972871562607084311979980293645204004880643246349445768058954292323215316959853287842308567379100528819198157726790044263661098036646458228060409836658632137889820366450957311974216941806275594295835104435555163769616092046012366594700020326277820392672796748960963675307585581741377861344037982824414950156121888337489871936786938346506730571159229540352180774402543048775648644847121150233434971717439971474867274893362147558840071753376556467350573241561078851252846672535863007252166260861751262120004872625569404630365364314109344877039860731242436812522691398631149038458066390165299552847309634671394534352422933003749114533829914678814523462171748587432898001633583944776037874920484737499916286528097263506896235438267483429854087191047131530858590264568880636953735826133681548769785965299918293271335063123866275695334857406240714709350928186567182265245046912459318426343912592213337386195121555450982824316084551723762027476172292508573085767663169630900631748417170345396872029863709702517471020093984418021138467168433048411703895036050701915281139714641291821556146570125540692183938769652793624018578892886061935219893438192129649607197512791112038434155581275479321221047447678431789289300844033751247369810349269764659399587150988870659398297568366074925358891091153707340879521512931094497800472787799516391831970143782772099633090596665863912314697025159343684224366017907522491832703517482199572572763274135957752958260168629887244510042461111113191979956702704852151442844134427077849015895458462667614587477604961407387050456045772890841283236435972776721853922983682438166088554492749999748236756777631480798854844504734411647077161201646828860473496251930935881359497435005539196783873782112158163543905993115832263083011553107406148823016745625271385556426921475095262344407918574404644495108385120131418092787203826553737899188219071738921775032021864938542134613017509448076905789468958431498506804457060213004781392594552689768256930093641880062778649842086287731606160612148386404228814958236974894987886208904801840941622567365587353614326139342570352221693510146808115875178395054076018282424399554961585652212047557047165936633851796758153443373180204785603486389843049429033164816570692092900656725899495484552675126094143982085377820153513440627453240422008485008393066767161959325496333057660228344227356970867103623988355388986912995435540454412736712005292539346269166334715090905230661932134720220567043740145315386536565559414719931271948254793246651487373695939830587976195328636915469625555351554859747062123170100629100339770876213611088664434663202360669767462493968718976388291590428094984066590446174564518526344808103769912609326490178185205712872478906715574341817835258793364128132364326000496618455339628949472760687956271632016202100056398929108155628199831347166244767779023903785878500066173895984235475208521593687515831181453098166040155854383299166902902307654942242985237805741534225502175603848001748294301561068387935049650302212262307297159295520740710262841129183948365108076826563478673004669670567225289922689418800345630268375127831241245822710794440648909398727145722223196793302393334061524889330025245198326056967114422841581113287251041312521092595567882669451874817947048664583218106269897382341885923042879010492562763369148789432103001808455067473674565212806131986707829532058860212796504248779138879448589630090058691114717616784521441911799580417677845803213266032928129568752758030841915011549383513320427085978349784443186908716747109833293888828031046980460240630796886855477691281968261608586677491659415991361163611884140026193795632923323180319993605862681123102780686982292320190200313791450063414017350752368486116189986438108626007527058957804858950907819564360729457530577893062046178311513024462063755963788700965385591495950364123809133765653783887818067411714907622979638886564632554400177069512928510167954497240674869214452898713158797652190605028482900164028905803652460554758387426330235137970985538210602552590291966178350163570556991846262394256633792527171559752178848057665193093574664387492845910264618156317028193609262924421246284577063353871397254723942708581365537328691268373932590739465818990103181361344016222324163714973758472643442962743508059357353801541374533888846890885905440153137533983151620328549779817804326480949916084835986212885872132387213831354406014142094546298677122284106709971568133588232370517641764412557674075585699729873452833099529804814696431781852811226140946926711325767926014023333963887015007338428414411140894862660106539506550383476891792938890239989307236893894711423849464017951686414538291754489736069893321931394935159927449779090977658868629802210203388187641914586352732960327410552218897450216314617419273080570988149539863396753297127100718641166841818045439571194225293390172152088289789840213882912661972649125180422438364786839405991463246954125589308445228725177349004947920343687564095751279875356240521744693625501398132160855500096740243650917262500620436649835015131466165308059528410106615767791257290997531400827849571367587299128480525903180620831336743521604601703954820297003330636107244784829776883666091884701299149050196923691496755890666811699574890370295034979705323550329886305312486724167337747586077143972818280525539496022680081167815260708038582169415851448671455228942983465845863961058411911425236472615189397953353124635952921504983573188126550982844833489218426414315688439723728959406932806425831380013394349770123994839094536255940771257192096585656850809135015861867770577024279798283023310831221970070749600915974226974484682412712634240485676896969237155024692235525006473715865003689372820404109094470165032047107313961950098980138333699875828764729354738476131953913125260136619127518972401747789844514705041082477413501953683987556396799810377220076420201480475407433580933777979825319274223724500890004469350842510581137427404189553735182802885667984527906125135032815415396538980890429920368171265962815199325345428273111899634369234344640046720572875191864794814870187277576588607384788270992303052087718554292699240636269601604885036767227931796139070604288890968569270116802143978002115802561099493519178109793577732212839357755833224458100395551227320466617445411530603642183311285685027354100742228325099373898061226430860270934682091309318732137189988666648595829280208823850408239207338934992768483536601962943854827282383191913907250625474043357419391882693717520379575383480978558725474211372268204835720030716654851507656106391077439026747663781899307677673963806315968063912155906332111378478384138589167526608485810742207364164511500766309742066215823793330888058033972051197559781240315711272306380562527306967426217676255372793617939163228979066870922677540168302492688162464158796624701527410149342836675791587604629533222964943990177038536656232162259718141659315014091286488718231550637004566392334125406588967304253800338659435586829681642306358466209509868579759006368712177997451818328562958261420126814324550335110224824377229696724184559149421075294498670825819654128284877033178293970175331153317806758052565693792882984981627908206438781749950475444517648977726093496570907601857449334453904846085535798525663777029795808240312348533955314422923816088735286895533464342324613312618534898885257959986533076340406897459623897775258555909762062938270115949483231319676564586139865882712820085113947921904676432387717819358732768120061078742220320377417879268547164906945638569283588355107453545631291228592040528977211489611866044481504836119476608926470049824476084025854313672852853620205028199433384001381554637281496884203506979418720901196710342006564086143833097549268970481682401638964759244519529822768594037016778827259171544890687706353871190630741082738091003088869433227643623914976087894292074308163681096937837012336901522983994208050948429309096716206436535373702912631949773611578141402553190583346627824079590648369130971500673409802626350057871166246448065972208486771359936654171653397551214206892048106333145647340517791239150342501211813313259498863408633388699549192208365433504650547082407075315123474539667511257809361591071681753433584217885897507480481889015868094824276831500784830420623120554197004313274568341128177109039556059332416990444665471588826885218416693390008798225164357331299230871257295981605203135221712763951379432053381092355929271449645974934458555980931884164313870614637881459690542021922772257889058198107084164948424616485671295744723152682508737884094992390808723647284150233559919652734119777379841607932952486923325397764721882110884615878102783235549785516493824698018270811840989309588491192093065860180838579953879932165746281112492088255900852648460190916253638274644208913401266236628668066890092226774672847038574347116525701459113546764553691002667366900308767742579622345685664381109951575225432123998831484868370746110063392369244038229020382292354792610572017560106440004591584232751502401774898443332751745432530887813001573272444616216268564559134824328853344820016384747951595482573702658126128380753713965119793358925541733220174392101451163807537894921794752415024582080232818326271754465836220952829004409547272281968836572349644546178711935556134384015235433350965659805754990127574821053709168983885623949918107526151799126452176627425884582066422999228789613390438865544923318838117726695796037272100177388697690926879347532028213773696285007505643748952929803431048938243219889950048098167163826101053325437986330525366239218054437763801068329765803178650129778717618039616586574699778972731009971017263182521278403413669297413524255883145420827463387563424611417153891701778645304665761042786335411333164730836746147067888437395001100101743481074278801427977358913486625949590371324118144958710806801581580612606505281800136480947083657723633296811932598149596052897706268281011454005165287734035480978146903652314563310743030276262540655937469815979316888687588136645384596867290668955877037828458652220850082231670173627526503256421297903504324582288136874996757828060097341664378898226556176878608960209446170853883981652685688986584577333043504438039806007732000764666144676810012550064856153351836060089822840242942984213976640255394746606294514807402469513470999699420320174555903681837304689437433438304756323241188981626719329440531316023425577284707805048914024369302009983977223153187992523084128691299965595707437518767220590170618956479382008719617115923240460281890829747899635883145509187954958428648659384138721960891385638821935751304957236130666206271091172474637766426488202362713800721201735967555251219267458576892184013998181532960379243371270296015864919619851696575537154820274084893419531462923577100920197769675857646760727511369374900298924952545531786243117866554685645008827106909761998341479354877876380623642968930917501892562701731360651668052240387389627738122312453095597432810290037342367536277668596037032418734527077986792091194432197714293028454249497207746804077266267559242258263494024766322885335698856007284057919669478999101953467379092187097578389157357800640515717262555486558811933560093405132117321945086486609784475237860991386973715306490289290010411079637415904400013813439243948876521318138114613933499376031064145013301696977097789495767453958532202157897415141000697375606414528264858026564317955671810660843096287897432444415064517754649643708837183219075484613580461933296204640497388519025022634168447114992306782587479783324054849468734050526180257082463342891517688419857719290005163579990781295713412640504508964192693454118609111765833947938256938166888840393073202528576533450156827969631295849099588502411120170142745659103755402035784517279221260626263230307569612643772579228763671260141901155310826408377168280977372082563192215959955591446329040543544577609474541831444629119174405712858626740082855786625896327215423613007260730544551415495767931038459210575609134531788470207709024446643048672382407033495271452618513519019489445542772383585155098871465133058534193237857468237086660571860486826757110477069774736128149241431840262405007653192135725063869295787159954202094793731887096943831889246740320493577463804899220470345193027576709002428309176340600735561002913178179045075303168033332753116846347142591589784872726403423702274433949330219662619294777812698590168735115902371616192771608428113936195174933236137627388364098994365427792854633673386982980963802144066457594648801622263046608998365407241276265418744210449633384399122233914060130491878207559792170734359164104192689743640700797277379562175249181741454731994157003093589410539356988078340275271506314904850482984754281124179452905421274452471692521136110715203996200339065021396392748125490687295520296548164332379430086734381011975874253205657667693576839253321643863455894422837479470383157881250806416475505433226956605214230040496195524463698921167689120930309289838885308740134316277470907208693964714543602100387877304603547412319072083110408831252815303932856101183651655548618276764488403607865333429594240207821529560893703006681621344912965705909817109336256280459040045386810611891500396115449866507764336318489440663248111442009473952286443111926450482293027755166214025718399109445243885628390643579547739971032883525957613362919405410658641290163854419398276823705496609954901771610732669880205017867315377880774633456749301060001584583463223835334823670720061311040178868787457414267534470822983866577323555517744633341116211783242816428770297948959187231297049131197433098737570254736544356367660448314875549485590405528278374210125487661264436952961233753773129331455414576268499755578604409066345128047193148797995810960321523262591484661888500376924712758690126838833888015845015329598978359104447996373400568074889683313662809067362345273175235144338542999957194026974412882504815957600774425601809643918180697600378544332843429259917547425988883158824981741480859211268342172192879320072039015488676610046262396967955643949451499208035211414406866991262770492023064990172698946161052621065145069372881051959167004976810548695428478091735956829905044827436409166732322031568703932937971524644477390224653071211362342554143282551195307458662879289395290612070169236713375367265883123643242994093140759504407756629668734286472615681921929028743680143417112868049416300796354648047688866428483945684717800776807087670523373402056359910985997246665695149327431091826715173037880949209106900768836877502195572962987994712706240746579721876584934652524155737065405305219116522517669064307854079206005940617967100606900201721500237252547753147861039819084695023077260249395524754267838389125270360363263946049136216432221025858709587192616072787683789841712309064702249839362667000985838697038577380618017028316303600844787677628673626289332261129447281124469125664018798866422008933795656533115751192274885098558911344833192417311786371124721471566365026804404026473954933320100000965406203873795577783410662512833767547876610608861940912081458083008911123318069312481808707314921169216488606493664530409906767588793530580587096969515910182266012159668723033323987572871349587648304443109824513555449296243187667241293024254447957179802842090722296552679971098374581059248591870574790632253839963280425946505256217474687952422890772579858822954306378011426709354245263453040079513571117039205709636598361441806094931234543604115668751486968613911248300602271080841553677705294747565339196788548523690324394172791950288175223022088297976818852522550983039824437117939236145184882356854818437658751851055622806842478272619808316162949444289123367034999455445474375727499261356127372821288028400791681713057820758899422621303705612763920384826436656484623726130937197070633220269359165501811090046372635315684226162450227328992743879608256898363934023647798346620282203554582593832036805083878828451053126366588278055185305115651637664209022389926408447865794027424032259245963672452472393163849439588788276727642482764077278552858452435318263042080655330007349973517658124344631366987304983473024448393325459028686187370295375637711776510802447977125444933179497755141144306520584871365899175259560746204533769766235659281402319578844956433989554807973057544742876201287895430521993252050695027034425776603069330598789296919512630823228850937837968907713181209256085670478298678382123796389736871934865448005614876275793726907622054045931602772018511160238292963666937023731436957824191811312038534825738969455052550297236766373784080428736278229680071235007318456291472531449477186802490607352551608839309705207269273160868601888099528400214238530714248457401455702536482923781874659114200655718118653337295030061511285535087242985638517305820070170531319051791303768552538165204745445874894373585748511685974079813166738875651032343257911196127492032098151504888900269688993226449177681339051743027184511715497569547682168661646836753325980788750981783471182957466400783524214572259594822179083183987605608771238009793659616283856846425284142366281305715001084983042303465548682688941743900546874007847595028468365083936494240733095305473126254686472162326534502280660002990702558452917909308757275840311797808471461502537063467630875317279323480823436752975004846753496023867590810390250218697317055247269769729194785669550707852667440761696175413483272906998026611818555718281312214796452443770999114396016271052626735420275919406698111468235632010237076866105781042014237121212405578491568700336514340058768153636537551118559428306074737862447019563803884104227540176489870469666569039047709498004647753785683833144584801060868629466953596051456532917922462742725451295989921786808621334218304823898368224158858516309622225138600786161704958671261027318705962757866371677043374065154619585289085078143121981806569704440528971342486522740882769079727938728444339361678488373604303797421160110503818695727751243580778733019174626887578127733039239646779985358601945244738619324762665451697693832931915844256832967516567597057425348275847507948696741279999603287721231135473655693384048723543673683081927790029915795770126546627321815325008347219229483436590628987834150278552768796482812942529849691408390004244507787103394548073005885959823883401690653363775477938008677806975088164442161081439156362530524069844354140428514755895943091830543780431749832267832995260303691292611236141602646428237658174475809914186679755870050854578917383030403505111259507672569655316755116365132550060047090402999584046167845067187400330698427119188202738704318048927090753241102501756232922761577414183779451074631461073415814381306928042044910655113665885736574841952499213283852534445073207113285276114860494020137700512526338808625581633704852745326879207604592111304725104144546624028267188081420108090643574779083831311534412750700436383984389012790585831695957166691433214369842201455494681995033989211735985742104463656495355738486237163245330308994090628540966814516835744358689881323376056190794093983641140812739598002040214040080575784932840093934873004504284638744566535163331431520903120199414154003199925799849019974744045892192682750054859746946742564460254487869666622269384256690800149569831725992740770220106778144389534373866569025615069410987200113686132049669876474767907783446057921827271014313693310184469651936418456360501784717433681494416798783643272411836607975578878624382272799265822711584856957380722717140990064359780656769735593215317593485750822930978955875413931236567565222189353262082139043120313629799329040009266670168790599372220071228722038570668775511523694768220691130743724560073691966119648012741121465684266654405567691489287815254533733424316425288028593547142337421627222869262354021493312405194556212510647644931641330949499871156216973664585259430951410511439829084242291058899488358279251666442171023149536520812827685186777929746207444069142174155777574359148167588925928496382731180994881593565353456388050522798072290452970845780119996006715105176623231228611474368131467870232522238268033832285575373679460620364301782668675827139556937500141030791375643018986045948028410969638835050513876831231636513955896598378690137862318416976821494672538253175676991567742033928025671728279481131499664470198583978891790539144966568618096801916452080898310093258027207007419430704659100486359684898365564412515592591050534465943466502611977254013125051007278196714356931733364147786609325323056326281510356634275406859108133565771701292675874231424909633740042397504406487370587179819518411309362398690071369100678661672417138475901502245114589746727182508390487923580206759370220428614534577521550698153777530119504685081021898233693936298687408861092755887176591822277318488222264279322298048221378338601114449216456794199771423943259340120567158616189469796146093716563501577587927724094842492699558350449486497590960527625151071109558308718979712395150001076968301220896437619346542554558095632673742895646451869421544351050568204177738093830999958997005326914063119060770550252914662989350838190609899260856472712462282201475545095773837592916701656739897399551343854179166287402424186167310168737048934601824717663561478182136897251106671647120089591216987273668931689520874175621624679921583449712345376057531294796667116809284299803169497418526294584090382600709637032890742578207793463810481972547109664256330205169837603428022541931572069939087513501406375284932636914399693569290877404282573935388708551132074198173590835984518511226663310607288108343810568536735409877710983286270547654732865068281601101929797881142817098467732723467134632518390339430970272474608911968853127099460952009691040299079398345680128630843858477870934280829002722113605055830244326781893302628463990589401272217847819766613841219140881399818423636817262477783881727110800347663496467848172826260149366243509616787584217906806412677688389740480787246712016190434831116594111328760597056596422966133374509805865561441199932500293054397550897338017162844043006017288880702194998133369151313972900051017157887844671849135061328550553920357846022143389523564539131930319031050169284314404712348186664537449363877765275459138983597506957506747589412723203223121266102666698774283160264864123622108688538456973286032475481755354318885871820253844292676939989994224582792429623024886474246145870028423486632263502200824455438831070278175439027981547361873371371296068832960081712027375314654544209038932101778617507966765748049549762229256952359132343399322817321216785770374384637350091728652016236126422714431406262284080326400351619873881710959646968940717917272648167868732400181818929999862826271037554519646480455228642678097189395626080617913247691583207947152800731961342874445700876069237310978469357172124439825617607662858023148251508020198750628950790423547214004273256138006696190787210302402712184799207641782893351555129124004112877783968770287126536105051814981283323209528479448202155073833460798809996408115302374275299479231935466727852497531599715274986504098383771196271916725997312276419367295133484411304213020432125906353625038067763045940676275890428360869910935715105639605202415528095737927040989768595658116740170606543133932126323144595036243596093392312825186912195102076873238890939733863036623998608178774888144677651909254206907109079695637200079182354988591938276885896604657059563623297011266719700098303088072886435175702680089905507870492547271481315573558443824837724054519809083066726857681191258521355411980549081306928987367614917977349513314479766371567144465470487446532751441885624418355763145394463906962277817757073627651998260303410732306644780535839025504945129492335075199021717658066857123308407370319772522687405179404928919908098234384871541705856771024737730885296983985098308641570521436362616594167641504114898395064389431479905864536904820742528633275551517969250317093591819495515583814684460003169814862743715861935616413234279728985817995459539775089890620106992296676692079877283813644805282064250759352868637077112232793902994142063764602551878717618308835020794593605187560238425071578432057430940563679736142489485955218185585046627896631360729935376234011619705368759356948069912706388876742204091563763634285172833275022874347277355092984164673457826222233666311784303958370893551782249879166526133096407068757902178484313685952773377222617269426332739103785368334237804911078714237170297389516354748862128750721191470770490583609213134226864309214090484685393816901411106638711948587392686055972191463566773353851719647410718783182715216152086126516054133561294097180608967963857598317968235212047253755299411685465568438279651782257983201127001498984739225320725398463052097660254263591976422377221342447099721149924388889155506320132478882194591591186181208056780546972144199543726582940598340873729859884566264455997119435188439625821686240388540367972737559309012948357904809589674388024871269039234835003373024891225407621772567781387150760326335024768074553164882108033223492298911916084439681895259848772365067968894952597087011132928857122048708992846800609097847936250124414897610807355637145835211399059850936229567471405247731745596607336966961635160203550911682409709250196404375323527008719868384899442570182228629743889716586112674397890669822818895024649723590538969464341929338029982208915317876559583623600580045272594491833895521196557906536732612564003736739541006223777519077050979689884529724940884970020820382065153141747755052082687362530932580477075488756528271109353122373628753010278186128684866026079565043298502770556817352347007145082944013158860772955512086184818470404893904564769054364499700855094456099612353650676018170125942154414022290155610293221957781405805595166241367296313034513910926111957648211529802836043377136912399613455344556662840202439200683993173153303657390786076253522750387388290544074465148838448607102876974962461509541648549621025546743023643838755968988994764513994885782263435504265394150159616787229809213782661143580965464089683597141100114677421189614749746351820980620901404773243071834851993497731968380330449965880206007241225269654656672311421389165491639668354908164470499250248271871502357355826660019541846953603019132508684171525365185111648941551542820000421586951385659736580823144796963362667216626016362569882016175989433079521735646295142803281375890952177565138909381543944825728534589462604578379683909117503205638214249965152294645197830607358728470439549037373609996029010282985513908167691826210629281054590719162326523145474368764613712079188835807338826703150378306989409962674727532026663199858495670343331905228619966460239258656170947614284164577905815250976376534018174129933450967803536062918164332829012332377803551827852769761305514600102258837883534673810400169758312495061236710687310499053119650065168125808471375469292666788465375242405653331275371702918515110241208858698190946900995868825007377622885033614107971501446906080937462870360963255044503596364495869266287316080786093111155312195817289021656169399175159039109541770042723275737559755692816265089122860433572383565349660325441319914534079918121741446886650974165111211259142709397467393148150111429614154241086362001723191575072720995892789687774579607322817143328186448121565899924199709389862735006878055448131105619394470673048645124185837822178918102054930158911214694491767994101437825895806446103354355720046754748301841305602148212161057896856981485771368206942097820435220142241383530743239301912186434647426215018044334312828066953689935165169420433602167708488345107581843306666864249142393395697081972526572527153133710962061529719496342583367283682992265651919214684543163835638191561306185970843071654200132940429163026268426524452515647759909521009404774629213598521962164186438018600269372538243581550597793925540892600471400370188295521915182198096141872308393049876339386956569824378348360508425956649121599727805945408479546932752344700405184718968399456998370659227759337090448346101615919199957879134684306716031076469239055811629771615876700514765767302315592359284662275297655503012399814888468416578180164586768169880247082636481633963788445441328867764602421699094887727754896442728273114114855261701923120267292070629053252039960455032018264732902982231207793259317405010705998005244204348716939789302394633936497446178783177662599100892574964655952833765922911404303324145741805980352368261194414055801547974299403062637846199005060850731620267813454821446481929855587623098250268857085130742574562666509942527172132616626788179027460681183874874109682135251021376684149266968108757142815795994095531627687796116720554606194912452764551971484486992396842027843566674423576870365572388535916198327506848243955873178277358196146761584264243085709168181092670261016009406035423569272632741883245339193753630945563864429347687090951152801901014052915891628843807867645235171447101260869698226932922257780358878548677861430325021327596271702374741246855738754786484281440483775587964687605237600468113583097164314376444284264577173293772984284385078078868466589318325028799281286213812675054994595405896685220401218326463906877074907708072693192883017556180341684306951574075439722367711645750358950683678607542036625044986271657301794208569757212055345918644595490784531888532098641378132801234158132966802463730130421908627519918075333818236226455882709513340900804806131990189572344628795953581067612687529479653399757786996290691123932498020925601115269044804811506236828203491789500362626861604129003259588437469452467076838379466012736698203501705721015246928872397612647386479839091348625002035461065774085087372920015297668863808440765284854938464648259510638689582756849438468662604450988754770807214779725558545855558578420367957606068720771052014993793726706807745862957951587881388611557336903157666832275756008705913219134993553700486714588194410258673970882020161269166692193533443643915575895411021919601220653172316875337102051468369261924775662133821978878962059445281428194955493556117772458231141951028992423271685238658461110302178887607318912016364176100532514176480471980252637416766846985661707849678937121775387900686043643882544689314838380231227999406249803968194092769628549395739016929250363191549499461891261049627552630640630753563087960138024085224996806829125396609529110667221944760296764132659082842536281431106821267728605722192740750079412871212909632413244837339579857017976890981740169124777593321731519258552243111085201015550698596823767926824643340365422914737128363228541878631918678041414050812524820662368300863435265016720609690943534620818601373214026744273914558254889963914559953166589700924671996626420994163151004300385629875266196614536265339813587761268746826964295758363260493262375067185108268508214470029429059329318423491680479001629087462241191512651244698346303670658621010380896536672251277922100119878181096473174585736135091172895770630986222122299372609515391407357639132337068781049518099140764524909814452622309006099844889819492432515957924835393469419448984583807767246031626357563110163824699466813087116113692942417232744492323981203079266536367331249060796152666720168789142057720832033998208253518726337026052188752986241955956484747936411918734584028361189327063018432738984453640479416997721999508298656433901524881230657038654791927722840721657714837623268018898896245332625091002520549673268507753036644043763505694652352223205949207600421492702763412603023462789387762915118439202760916021464558573587354996134574491914448300528957696048615305695334384311688819128032595855800640950227924142146505505072241455980921356107894743922335409663791281382814804438719387600017540182612482820386768796672947279057774076270630248647381538055936714270730956910434117067624972358922940654575239335872789610137714678001190687340252385900274486816134338607791511790351942040369844101538384540985245902567503298475096218077764078140383010175347972348121127149881218502389868405596395976994477737458989161846631348360867433247254103276449857822512213257234182150329195488985997326248896056312628573504304106261295369026005071321989191565607376380081007765235431029958845383992401814495826769797143856268481991459026122834421130447338567314591847739930061949191463132534662823442244047383821073006961973396226433060884381547700407835653701357056005238537297674787157270229322146680447613245393166000939159347427786064362735309122626290292578496389442908400886736467878134723656013700690785338042285348501103529881937682619947678016336140212834477334523126721199407018116017244145688489906784553382781614653204879215543487760401071464035492477745138254572260808533869352146389532134233702534026493087553267510849132107932317283290600214653631119828258670410988223443235573592902316457466182421162470776267433253060100783482217945272237672734928531894692835896792983365342429547674081060230905675872647454594138451093488891967412828501995097579967596785507780516416544345911771602762125642537649379532544508820027705353314067359209953229026414940323719450925748583526747691456703410661311158007073140258850785920085190118458428749491885932631655382800205684574626061529748560336273720587581665081100554578437700971416539668297687674447119135064077882221601319763985642169757994293520989194624950438278280669128529423705022112426978005829200288535683893386627344287638642392866086110298014420748833248877525470630894030061273212686292532310581069200451877583184191618147924214819981155956242951899902614407225916711163168520541188198349738471709490669621133367685933768283043908457491040116855678506643554413810683638293941632579045730742606335702611226273401680653123475781001452149198024289723482593224262788052715796611542332417845478508473648049604443025283816627651425198548525590994279665333219215136965868674218514504336896549561429343724082610889453443494721113657016907877811048223305246706760407519202461234669098579975528040612301353035863710185803658976902682064386968850415401907947860492301614493279077857193467965586481196866648872404421714382682924496247232558355260013993855546370461995564039718809867290606035239732499741305740634398204000558235661450918175874644800994117414650194082532048160664186661325076909932368521834634419883925469265751131443934172616425900467715790863939454296113905518138410384113555983557604954137630320570126653259675968388729189017175329594339581963550210071360867845902132779749686583285117748011236597595381857693965945482978804548267799726327329341492960185147613973238629592729880053463735012372372403392914739223673446974473659431322065462370320564503728216082130282024271808812320605187584570616427933908656948424430849861748759296869013257134377877126558582637304045984209345893824390546819130215363919514867024527232591928897848895510759080895117691979157019038517957126380486951580578678029585867197591485633029524681287969080530368350118400061718289731722210176927183677902259816663091033884093786255679594266241288283725829325262088476751135778252586488261055835816983424630584025327971948555018354292066593489229690156121870181741697063481529520528228248853493631072834692832121958559717130744942538870236061766534638309253024015640699149429976469151928002528820741028052224608527599802270904009684563939815995525151819487814144406664851199658872105510466113599326140957102721176892330557671191265721961259482758292768595058013364771197808024188883260254932768997045385536015861641348832365718517663546979797442194158718085777138109699370331246461618317667370008449824093521964302511522623138197587151392016905123765006615249244826533623216704868754215330184860105854444211498474282234822580962382605366199481855456433129780994912533500363182762899221468713093026652639289068778864119228718166093135426973830978888357725866226745573581527239805792238580603126364283551778743028562281456746492778570212991075020341009119960056751999127448575156010606843722468730922577939114780866368906141236179979378622284525045984472868020228382303723553845235959325835766691348097857377513441905340980749592300504303718152658549541123106709489805291211528049091890756460043126635226816939515190617024966482076435206918955151296799802961139034038741807603076702218395703841649132258384435740952997593720326914309624695937385304044244276961302717861182909703508915611409358263665588759127936859317370112140324562293295980516148970899952472120715202729438676409690815828152263624310342664854008163197014095115650008959528434486659411021616962322020778291066251528480606727855706677256288206746115696547462007906660879942445235492253121704152121972920743781156819859639626680903558992200622093443169532626552248549208709909049127123412901126824848575072710206293824162865582260178765978248919372348130544506214134458416963447514960334315830728243835696238493212661632424618663490592756843990368208519270434875272385762767951047041037695079557684379663953951165563017361218953259220548641022634177640113717455294222098533954076451950112216854013620174823032758777282689590218348188844826665545849247745023890445078749754615375456132146214567104253386304121600136944475822618609688047562140106350893732975069655203783325769492407979568940897718650258236082105096241737396685474702318622937193302243529387761924170292624994074501152836878480259804459547761222402646008228043520467224475982507346322705815456650240511579143151897931376382714008107994011043239109098521872150057858299035148124461837714197461954917349471306241102237932592882464735571756790605211437546438552643827343656174496149597250072094543989974702405411022979688436594160196798508531590614435407771531341739587760014904632157195055511277747125925580958385205913739264913524573090133516018915357314883719685353822688558352532296971655087070423117480844374870812132808310253864836887351641874419595045796518825136624493992299283432942473789632689009210329455408646942682242255748780192902850919709071239908325559686637645329235323111527220860131188001258887180626977600870152871718775582106498412652823657973275513563573814958102186862617639307857397983213586259049333139592433370239805747530592107288673204721835104211771909812742997729400578282957475966189337217757149504974605953429460810162009779770573954458559156288542969814055955885275603593553678338961365557179470691828163029644498764284248640748199329056087111073740979154406681265574986703650882075421058330011178421793276337433862396953753028810161038442581697515562325684966834019368960920868643528628324493932938217053014097620761580153279668124220298337560784916523890040318779960248772243537526613100220634073880264564468531777388445143662322979108021205554872495367093208196601304263196849121739862998781524217895452396520258856094189882319204490374877398049377962746447224494331448430426032318657397829833154969302493735230411404018287301081459618699189512628924379642258255977809409196155916411344784297559944278364145987189348946477819067934183339300031019257287206845492111477235399799386564283565575386318365214215819385202967226252644356560498115583046462684152325164925999990528245249253025113581246456312112947823917521862697416157861252016492812092030945065590706793001162286234327688075601103843012430277539119234231216030324822414575379090202114059060948114792935377593126947541545855921705972471914744154802480800012831466789090997472645216237013930283420844896813435406620094592193540937482544769355594286328878592244756614390468393796464893853449278200444111918220653984496614053674240999256797234407880686555713809975538683353972352323805431832655025232054543094232501754450556148963543884085745875378999427787532253823363533583374880582544329370411380410203881816496799761592688211629304509823588420204184955006549982262458188822569426039833621655951377455329564691132007369136637503389251355705668453968903843687741628603975331429993584844154278102869942462462944109501509376237172177881949034575102228975167375329541523145908369738648922781775978340924431320619745466931256339302065953218918977596794033589808838654565885271579575028105684548312218921194932333503537054734907474588943445675829408314694398457360126344558701394068712729859050420665566290172213805922813729922737920372047527808767663165257700298739596979408727450899106522423039745440507668512335103685159321767767778779740111570645320312970100319755473244461562156525025790348008282258597228428432006629288055229178641820979450884488854384529215747345544620500021739586710203682472656548116746956331050114070594952912845218428831066291613143542701291069027934785512287384052333257071538927647448241267119235349457176575111941128744787275012222274024992523426907622642306174343827182667590157781769010601158442749349314641078240454864864982864758479555983939903013455322865332318347310939544882654158142818309917167391609785995579921268800557220561861701119854631926483543774936436963395465751345241931649062420326465881041270640237498458362601600208304636000666751093725546618149342449677569147272144128982429574765600266690161256010501072805101768510427809010920097152693686910863492085295328603374416756346137487738880076589192186522720301696688893329314817409888482667943933112091329929810281734156511917066039750770394595214366183621347764046232065846642143105880415862908869305094760498713037170464002183632179690283813163570978716160423886463898703033360550437495966405953003031043746433032981454108888879163927706021990224319778450387120887983363675926267125759038956394144906717812031580828493700949508969274773825448223141269873667555159564431569198207018293301167425865734577728068612879201681630118991955045880097956740645505365441488838178750686619527991148515558759428983588122073290756853134485824647673952686520330496755330591174903950902050769937065920575083119710760822952076780339942111967586376997892962260426018885907192513850122781060496417186558092558617693401521253387001411713910586485207461106626041112296733072595690303300711923649498859337881628402658473291647572259822672659651105987963623951899693685024195092342228842701439917524379509897340528109818469077678410746305462579940670146905652455560412602698930033872872725593608346541253727520911789101782380070415232600189708609821860768528906099486307897037123636665901236509001292856444617245245988316185934599634030857940858352736837773713899160869596784486459972534692709950972904742910384622620210393901598171732208439365074855224021774109303117891087001485788188428349251127808937382620388592601654104075441789723057436386757469486644853622868765728345176188102920040102909268803197511438931865950550170803825694152857226807076975414281332262510459759728285414186826033601842370661833655253105940971340176721531927831318871475355198405537121457837859998515006433908817304877445546542777252802329205291727576726996551612313621543848817407164331087674283580577864028194189933149378016979647749929331475288102554529866706066727901986395847381574971152961207961318778395426868946610576147290922534640667972844291706219468186378089858694989497813256209852920554761180934073235851611705276670487447311946844460578383953202053005317638937014988123945352260172074596409778144060535511682947571571941257576337312136786246650025441447923743212462620878266183609045318880588647565223667430157486184921302520086579567903188475892564402701892473722703866718779961502560895470556926864052222176372158174827493536765723830544792345919416014997026302827101322563205809700061455608831833297023040651327985856164697585674674215040467260101764349525955325629855454609770124001243229666656236850271092320946909773566244833432701411490959861206962375203272291205178623004828115968285204470403986598360682846105140401753258396687130844822869631193342111842610300293827309387502491314545220808246320837035537939569802474567247835105307998936066506678312041728411840577293243354065598223696473166010711144955021823854179493893699821053348424713328228832951869014224784700873100980194147384111466642915097349706837884341580152966529896869908468045228730407094258882160861748469301578110250449772874065991279999418193981707273598949623758285445016738159642295410226576455448024854928118423049069150817383361071638547336285430635980335609537895125927327559892085411682907794576936252753410960493626456490850012539667876176032161473275990569570979273297541052824191502184349169269186267434610140579107840698223908832986589929376538050628100599509478950111452693817296660845521435047351632851942078290872405266600639758882617398499328611051155689612633771442179541573650837989781490703597414896413927199938813335563518791032188036322049733767247170477186058223066441515944820986685880056272129173646713899311792166581353633160910676561419383131514645271058997783071460498649427181788903560161266078877370997294330145699654151724601159328295104685621324183630870535478186450174152834045167376191651952391125003456327294370117117152844587319871871886161696542707627882702726183007288950111533915131065662542831796522265566425393221829178436914728350558218234117022606017619673330488974341163486232643657921433719834216262040789191032409050014313600891560633060610754807946791733896366890694063645566256129524059046006743538064712119789562875804274834387435098384722770635501110457828941821322590971551376518143491030973624405828055438635972889477196708794242789704498192707542106919192649355387371457635033796806008238100021751532138707468819075702420006760026683244430614368174204704431457974937844650167239812870766532896550435290314654719427489097681496140917597205225585259240836152539073280164732047748290991426215134090077119974339704899574400237479630121722930413256420134277932964451176090051174619894779482782465124223027647436926399619309642984833059247612974657812050371189040775874170278695741394030590966477314766190323866698210851797967839713924606609160729359059799536881756164145813666041515409536267106547578350710018859501457045340392837152475431377018892753828468432217500508437927943051544092810471534867075398881086826177009507895227286242305669493568551383288707923807367717410810526792930809963882497013057918610814608771483049334447500387016054379754447154400978634094232682956971476942883635703687432067747165086492897723503270275218726320580234469129042731104596277002910179165994970613369392483583896685905345170333325636368039171160917558578833269486379189502516060807895814680481931783538547605603455949214704853669663773859441828530425387423059375806523302215748655672289978508351973858778834413786937987155609783051568710922740512703454385798283123214464569595848982043224951281284821663677060201817463846988266315314259254971096355469725278159834819692349555259716798961654639561707424321759169156019769551461407297961089109161020140994782547462053997492496127371967915386151848766266225438691121676701813113278729082621862884591546754390845264337191593990057925288762646733429190056771049655516605906813896028514329101709871546183072098207662448235952619848730558005212075576052841987351211404292169326267043474703819934660693377535096012434743063895223995482569547198934866807056940114687359341104918186676310854948848465612225997876054452810337430453804513597359442152938485690816458230910384472035987116899174342892975951213781939570172495487547502329289306188514123478522946063287017943855067724649633502260567185857196126552283967851530544212183369427537199542702073555429450226506151185671766482373177388598898569918678344122450985582551839854921787653213678910950955228520916463067023352450782079760354207681299208707431757398542273905344181263983671586382882684375552275593823894287788031881677550543396465764730167776921630640845426916302915901662284324480279279314180230006197821608664544516098779128973265347656941475656106439521577648612317005178869051482727200964234172273131364088682112237507252379180495838687605523778064519662443967797635739037812351401008105336578463872308778684592849225639913876995872608817628914772334107652555065230080248059180195009822354945853160062979932067677012311958338140629618856136446520035265088051844610537614660782224269109902787494650066876811040330224096975029136078384894756569094410739125799592125704174161002638602400643829346076248462939628067864570530999100404096136181348399692583966569482006505940140096966941279979027709808615633125445214310850424653267731048704584704853232852342792093006927605449927748974854683139904077695685394536325504341854210025328402397651128473932097508112945233945147881293163248519649240634196555003000406987947989619341605890566627598501642082106140951323337417668345480493624551872778328092680458517359402059071149382587066640041142596513523072560798591770949108794860781665420839077900572285561874628499317045751861451646725863548748838918387067281460867443173766731258436542836036678029370014464258931356958531014067419648748957202708072619980956911776381449276064006921873566835964207242392746632640587792974706276677618175426800461831890136695547363142159063607035671216913653960626145218708409864745744157908978466983597348320137198606392826511502379730229806643335025620480322326944337781597307251715708703534978332777189859903822536781260609789897431998516241707433797615386046660306475991816851988720183125253226801397301885019556635054697206196934870413571735918034719525837058465888937889956606303193828585774660807540540437698619762382880558090581667655702260286315591379146573516009613084013872190884139884148178673080254704476392930973417261561307767284402786871265424382868895139678690705362128639986235250704264974890622589983470733603677326126515205516382856561789176889292378915377401732480971787927537854492984876231760736551821744112868016372981962852595009639546142146851709133921009049725723618152337424784652661067176684188845121651345112009830359354071574025467851403421738853931920864615080012688377062370554733275146754878623672982780347563494814500769951672024284915513608073533070638325129728459980791085857618328389926157927221623383248783265327711686752402317114038701769963079507134990397735456348875798404315597041670046671246673974604581335308885515340577565984224274039653943048331213267650947222964751161784863908341779050619888782504341951488069886073076743383322363592844375188957275932339563079475749464010882872648416041376012981589821243701295769622521309847827434469690493378299315784488090902456879106241759732424676738354291317333665773733258379560500117470090612714214473205197534553066816146940462180981430794868520105965513946629211232486559303527570711406721186204101635401687136049688409790373714209540589917550657319936887993888414903451332966105344688374637883379145166771557461473654353321183591036970840812450879598671781813070123206944662889686093467080444641918892965855731721713689017248382691141883090391388293711910245635276530662353454041507883308945760719559745369142020073735323143860247171609010201511088529770609265832931986226756288538769543073456257363977914762745140453367828133395743969025394897430641487498660557915824126680740502462936271502052532375655390438915397580556356231911652630626031895449961603391347456048758258531461890352821842642738977192095763809942041272844390224943024159379675618559775042922207941633584822628267967111511844630485029890743320967022230353477228204820555019062205885232187634195528294860469108784933440971003495979604847790284627223396868310466592535598298670530154870528001860047196859152074419882716520784751094012239584906424593689244659050110622875425987953718739689521348139162806401390945985496057355194627174783640109147102924814193199879135787050957926346101242141142523025465558536428674334589464954266335963850164944153112911772641016744304407927866643069350714990339764856916791860924834480321292180958179772764231614382931429058270675070665347097579539507486502401715050485300641729208298589851691799586482294185284003008673522801520157353046897019893511957974205781169479064618627716018462012552723552670071251865739397248446922140565124639790681551324962710387699458840402184033295151583894571538109180573139785389753175310147181138376800654528346948613050904094792648500780040255732229260547159752543859003045137526872439919064853842932126772356332185383185044342926539684035701994123799182673590592734055987657031209137482295692429791886719997220289128956201006165251673500228344955493507043791085535143980367669732789075561164830230420439203921486866213657671660699742167893353079775725725514152864328414282068653464430250022872906431329799010428057131957058364647480257633704938101279707923185117918703655222095074476238049426139275758442399922360771348199445178950858507287041224560187842209011773581609636893337479862233030455770468385819073680366351602528234284722154679415464930527037328004930604638849882723389641175712743021921617265143133170051403275941140097554382857093914854637481894403118611104937536719053064280490595402315133885400563546087134418068173674841851473467719288550897454853396239886176860311102828120122983677284356416409975796489569621375980868965883256816294715120307784823369083138172804446840148595302035175899279438051597041623365446718300211293590292172357287187810653019526178351332784230622930019259558179906919872889625195372446900988952621193497293660606579687062694584064039560559696769549181458596135754535268045965163488025079293548254781648488592641886014439026498159176331595163433623246791026703928971209625631750873737951996206354643388056820178233582892494817384600893815650725057849036135184768571462646012302955081641497832987943594184500828968393716530595613020899920455238172555153536913299037787562985597739833385814123999283034085836393209489809427142857480162897429497152027973515180793616928214721890438634346544345363316186249403698720193001021507052536960805989232989619298813967255951821136997273235575524174488481783546747972581407899496902018779067404530251893112575999885978414941511235477145177791711460154598058025191277556255433294904478053040284889612299317577992411369297530262690784148949557774536417033071662845722108744977617634021726761179794445998630634721499721254127738171814332068091658574965477879300794366039910304272781914322477208216300102240248874091198855573617246231349087209315211924668545179007668448878514589970582750087367543394653128174756686693770490143707445724733889844024768078861204058166712163568475364650849407171775929219252317686853245107040572920568836653163437774140607710193470225220175895312608117342625398613176291277081589087690614156539207307946672582636853846691858898382706054609412110186695460504891619377805160696590463345663562040092582707410141502530374403598190994567533220440158679935132901384477771195835170857467816489280937641624386644749401581464242468153401905639753439497893419266578279801030330785693779922078779520908846227804374853240459952168465837247945500907167771698041785678633923533920233007103194829654073471651022741766754689207441886472771801366311962470181785873238352895134550339776957274965704161447768386998303318335187366387608851669485666258122028999684657789933662532841545752692996576493337411210861401168179346686494186843812506697234357776383947999239067512350440112708355344888119554560950147760888401781648691111295221001823543748267851537434279922081373228899861889504919869449732385726242762906152630674592756906457504009244198088201263980253371764619069260939773143561426456211556008664338665862856683822492490574088170114337024203886607324565027711370864877554620490107982811745117313320027730002194408514705372433336714133080355343356787075671128942737175823867489695393161704749628178763286994314176101474403571852136260352884827136306495283692692470736348016382833045059827011647893104066716450169850607579825311405716551824451441390469447024283671760961301464831690881444091285918521768503474514013152103133728320466365449948991779458250133215705460045499695802774212179750850569951860049118370946927385876995818954615356572449255939612548105686300503564325609606059787861164451439011408308265967609363446481383532436236178923204343617531576486520037223014619546539869476136409527910574918078745271424197729479353043083595371506110993016680127337494856203780019131196658553726753895347264882009422394546067444876177363194187515116405237286472418072122531703841956235852345144548462370328659025200418176225571345560592475809768644558341423736556344820688679896240817447108268669607423818169719386916010675002005729502923692200954834263704998739241182439945918155433302025173268483389204111038754895471708515959064305094694918516434107382535138463947746636260495470904797001522972666921131197645932554761452315895214147918862211896247960621042562914529011290882753386763297115536555482652570925168267781696239947965434000641143766454255573052509836692806735978778285979786727510882965749216435453495644107069459298727281263402949994595471493423030189225105156477547278220455749230984998718716644264007671414092913293726892885594546144291160914921235955703571216025341088078788150715266491494077487217635039056864847160899842923209880584437181647392886887987186393904067757057329830794975468909295088044053473673965795645437626659478219790476359344753189360403753833212798182881933355499553170276085677128259690810904162018697545168542083036748323523548472296502694270993487003102019283397988445647286043370108572814020245588216923066249516476825617210080484444655291189558115074766105393258038117890972165989522181987525675395066220258462315191757773223541282695130566017352208713834653652559264984860270869085425188804071977198386043962443406516109458681108077450673325013012771956284060228019567349253310948451888813293786242887398412865076138756841527964803542093683803423190539155793606031814284131250539276389062264931691250156906415522863824401340949121172799840749547088239313145808061418318180146857730112799599054229840137619367940175618287723429238028888771871515194922506319415398952972692232966209472443614472374835900790830340641376393435462622234615490413048357450877822149438182128890461834096176059337800711679721194587578178464728108421609371427144461059691190005978872146609189276056492231493879407970464490422312168835425326387825319938196199218558622716169195658963530967029000447508969702829513336164687076199776090841614791537212968935727707276555679403708944932428797306563486223248034049648879474169999961543130562959653318959262217043966310671759938064468829734453314686570543706760720105891987661065580027442613170128849682124615141046809885007255321739721918728066420296682513548857334187130494247014725526882644506147937130168377559041620310391977816419505017387999134323867782090664813977339796336646531223288600296429406062272751499707259088421119589321397417364225340063526215997632083859798634592369471066673242595211612555764606307052095386484716037150627179205475744611334722314739644839238863146886054103560771564668125310583598009602953008268084123244439384635039326926277643527470429713485311485944283380930927241184701769594839686875312938393555647185893673355883085887136457775965756988052185876399485283295538121314416235942287798640999739122768585718230746069244264713548003233070786071196141507389773346020940410367466247746093371682243492282190340097205525602732371291736670717512962292674848778324080578108001338853346765642541135283920731814356470891716747729012252252653720914932458883532483839597939601342289264100670039024696288383027389037578810285529432762235797426175877381745164586881813104374486796320809665771717880127065071317054484483735390558468132567913697743964095255152152487980698627243779658777649433768191281616147278404821536837537538993660789108608081307446113653799782433901750290611101351161730632920151433598485798817322561867479291114159041996427707738902718613345460064054054795331063287374039335095813077753881002969884887820479295269978629313818948369278255838002155116182750261439181655561781436255115448371670374265158684228578328131662992586215589633513461102130409342215874910103703585366898400828207390888458568314631180799915389025984861015857406731921992912414947797691886428621591828563282143318150448947483924564444076210141052500794516638662694773521659932101060660978951922396635479141654589902282105314060997243244209980595732940928520204538863294544164762585257008968791314845154058107342483099845536115014435447682125401573578364897921090882813492900412537689307281485554576908673257138044314019961654474817905107990042327479887889033244983797224153936818554310210500360054877695504046981775434765051695189364512000840149813442451457277771246442528815187557338336054300062588334952285520223186304943736475942239842506848552631486612899700192834819812616052832703047034215538562996114872108753375593830535344006491840477747256521173267944507090798383060394559548380793578489290362379480910727083832379774866552447933511188152943753481043280514343376050954070927256865319840319477300487915814999518934719555564246227035682926279663305226655824181122607626257780560251511544967626879749138150318407154219327230483629067275171078930021433623019979358600579438996490695382815159831424717592319502772863958155107698706187196454441496053861785367115991907294293326880934230160302338290815629536499420932785394398205678309571460853106302961412901182299894163690153463417223236787419282301580740469883456691851684968440396258466527519895002139961143279901229307145047847234653122212861205708947476123362975989571632429562185861549093688038762405373015803006753045603328740388761053003666902851432282724821052854813878517253498063656814652338811971041265928847276057559678054214354791870974390248804872808989299843107107084790054754675203499060783941866819136809609424703509233736854426047878446717294815093417887006610339871276672158593333662947470206715678839175799973681339710923095497018642954805025828279978530241410758578969148516365800065532891211661387841698182433954860340661946665564424775507121119278893357754580498874337035274177303116109532543965121748011286517546916473884782709871263525792819226434067273906970673342484018691777552268180341665578880849606677381184793558876429875560131884784073255671249148114810757621579679142086591056387395420402477172293202288378512401702083534504058600059182904135595241881514751829169602356897423641542500413777518112850985708507160519281255766304593504002142061162336409508394802294805504818332517404462639464756221390419762703589329788881007025884772919652023151643769026741740899739056945696788372726937243783623821732459164114105512187228976457819043947652637912843043022719897024447437082362979255720439482802508974680084823648739345746751014120395649374593644779286585924820593763425620290771642735695404984079403591801973177449525857823281951357417551682080609364779316528409683532304505248395830450012879677441258560274318201882666000182426461297615508033791872878620881400382615651095441614805354736034922777753470653102375115592846474166806432712621380339942545381084513253343528491609479837727688492091042768172412657085060784132247321124223418766390104774213680411001340729107651923674017092013464774850326222999107858690487686775782007201954217488878042706296897733294362195243510672439609962098257539224047551357338472450258634708425800199462145939540787389997829810949505089490261728904523290414845151102624154501304957444295474800944760909365393295365376670203916501081954967048403115594099010483694746092472719919006172190596139799747709791505923331798219598317776906826899302989202688276770867282070420348789344570093326993443766477972235306847821067716670695088404017540266802604196485891046587229132593607848524351043348644858383898247584948861697851673583100688063684199360508517046110011233532544943723135575210294770468057989603656129815313960421900192235661035296825528889734685228686479707708236513070482847962023707289309727062595454241359183010700596249655248584152865286155218346980948493256944715557494879936344702823969811205353777678671235376583552393749819024628221148172437294374671187570401491731666616928311582982700801167614648618999257580278084521662714608088345210325957956615455235673836504514003837154505356119687493139375088160058397718485927533953481229827509932229446712280423901773301173859594043168572767778285911707380030057123208282346288190321638421064497241354406984532535906111949616206654717303397870858438383928074599749373606089371362700911395882383958346705903841124932771143003408126488396429938763828208800639729045202639338485435873526660604482402403140223248385579590580413063723629319150749905432452193682359011454004039165005595603184450288708794242153938890799707373965711893689877332580775492229762561139641693337703784789909690449254813823780308485098848471899795245136794542346312652717192430495738959030745458484447707397439331454714696040746624671631145231371188055181311074926002837210738225084958469826810118264356753519035821870966409050233776956620612535688343245158576495625427160682585541468308634241290913807385740621873860207705248036144655957829149614984682197991833523654053367125135581312713160613489455556562076783257115376579044386877398276459897965270634584099208328276593739705002321889035743631345090637899866198350621511501553694396100662303586031540775609143690193610617235008303179495521045197502300824736720558031805808732849121749131994177431482851986645178060776126597434132125748090956311001113021997085695299641192015228237442630656728997950608501738029773029197325272776547373882837240928278855148045438326022514797761683067795593356693498121769220562723076154068552292299938213738330263516844560595470473901228761363422631445434417739390620699070199482594320515971888930572015803200784025479178658699931418652127705216529438684274335434845465493335117211882720582830447495945480705743092739245793288380092812589130643964871711761121211552341204198312857937607086137452932230112602285531902987854551709568848779746280845126387725552851890418445425969970238139007834538033631943476098217609369698932620163855132132334835883153307695784480049835379587289733164009710368566735043160783927528231764217335717824250228585100121535404315608811809345396625239656217763852098382720467537718303102512639972450951619055287542198966710085788974936826931660283461381198587455659305509684577397449404515064169808306841041173928200165918633086791601902768644161705076846425338790136271801943896420981767350901144743276442986803108165036533244485782499429640212264705361203474657364759750248403569639622718771241997182371109013080226681490132439907120939040648623344210193092699779382319358817591134814820313336795997067766782878900021785893955305472566453275690954170253962213302665217299245583802377657846406272198731783656038529146913117859665007294726078153101059519412302664369683042201985309549631269483940175291398861071480934402292309455396974194041338050547938796153847717052719252864266632231526251797251455492885075463835337632318532068745821161866002379608913856064560737895100458671984617279426930195422178324057289786454529491471314944822485699075831475157501343309258699928760365697566785473579402301943285246370567942142165880707573088851438987306053524599030424609568061814305173203530858041237968127448831126113979899957165563135384643784412066562000358184961193388225670138605880893481424316274602936949761261906348387432365306756773729899093984042574357671662810322352928475217629932944915264074534321539340432789797179488161201042545132053372882452004112129164204686310904747357190897172546485167263137377351236374104769069208713856162958481481453939780577859907465215806016805534538917602901181732610868092738994749606553760563296611601397991442532416179607950546906859798104339948538254028063988781319193752292311211924230307482765883583894764790012368465904319276204764655261276942591756165913626072141623392196377915284746588348737369135056499321913198823983068472258644174111163206110409188038143809632229268404557348228239184766616750237063692935443024479657155294812175254070407128198851737291052260828258618304664937451890899685907431503532256633890675348231878929556298372909190551960761540677585546001887581012040522842723902941267060969626086798962547604754829443848648872614074068599663837826841242010978624126977152018571646603032600517673699685971721047607659485411250899921261969412976965703181678396677809228580511823643614086726561235203014709933927000534240865848567645196142934326388297879492551038968883595440854696825539772786342936639092831024443504341937327825502718751822245146266767937436747390269166703145234277735511848209219455159497017368007247786394900140395261769017564751637156031456728978292903800067222617325704679147229830301172531544915087812910441028208701763897626784973312486376133758508096477916310498136010280454778266037801882802223791663666174982360710987226072589353840972353007165394372630489536890924236860827225890025281604453519986852496207536736237483771838702998150077552691006506042381377657669959973073708779248010120211838399709861017800023197757931951876394218086415295016744427300655400566432977086955969769958777229277852422243500961634064468462077986541230025102058629929173960217568263534230159673033591543865463752845343373366364873189573280599006706450829977172856895160916076858389356769036104126101978113141638667863541208349513056103650987049267677829472036940632739345903077783589466874232326896828837025464022245481123258045624293257045833935686557810898468827847560767006620132222162419744542352142802650415280068548081815114325249763399081969387754827056894360485327401848364425827733058665093416261838827128234217400810067947016852525192891793593765955014718583727364360121104746622654133242271426261746802123656616548232432454596527641294743142298335000177932062384195878410647587659530481873966286673787225803352417998613859008113604849998039442008220273164200142391078272617129558939238339074027132594989141204700449851353196515955848732018725667957340253172427638189173864473567110470265766097323897603123181722476791707639716888218887015785969490068454638274458420875797677856290140197218256294174897201558470214696702753380910725400967322811796255142233351490849957083749725564042321893425442735436205027972718907350636247207818172341124328043184368100268800751129217817468326991883030358243429788294049130883607896950041034623867948637115390412266393366790933281563677885751546149316286078102549150569796519315651150874382332426192859268495421207519968553062865328531997610197526865219184010141094638486611723083787095759188423183545776941804995082886053062378216756015016204899701092430251335641932231435040754570346526851567797365971697946554312916651870423585394572351413862979121804071978455909088444726090911996066008096066299627733973021223030869722389095878273152646316844878517486899787913677509351775813061310656124338495028101505063789927677628799368305297274037633954065508024953952869532214675723303844363560603260991218223860502117620858505667189777015822069526996548866276471055909230855471227714365613886006660247347451099775127715218987757085988863506474814596921065542631071251880246752944129856137386425561270750069085164995168418881674613418270995923970406139404004953106287960122916931936896000250774486409254409763489627509944539473085209684913072642191560448805950136666079191228178108208747230988285398263726187963733591792584639363488880996813021781512490441819413339897565262190497725686293459970881540269904497335469026903543198884195598383907614320391597264481026586965354663030968198534528919537187925358703464614324847738898974013925563253333687864356706140570534838939142658236011646570431452108892410496624270905766839946308780606880770427784916730647323722355481741926710005297531767745668341309726935469508806877548344148897257646523893355213465826849300528675690292878597598182675003038072026071938003217190716306819930209688085185522931267720663743436535953621660725646832423961658945101950308873065360023444244060607059196951420843356272947813665024254564889521617308741085488973917397298914370551305088781260146796396753860901351276033143230432100482471127260744833888667723010864183256504938133769051408742554985986277539650171231288070084486073531974247725545945825782271883144027461688740124181133840740291637656180741878851724186865094100081647206218846556923621613967712129352014607289206698116387469662395178441139880259461684243024317304952071465002659361074461429273662349306604492777887519757190739552019121465676748810644740346329664299924654705694203264326145453661160865615392724004391381549657696038263765222250958217655106625431150229052050315544371115636518436777593961092640909749102526140744681625889231890531545595757054904967049846295284325121101317833002064620747248138178315893089205785277098429841236548187399393004934101854980086392268187091511910557642395084624652011925657360392270944563741102495614553999523956931171653552442827279795424968025033197181644378373901972454884093141334748985817915024193803791659819734844472747387322233954954785220018895308239433513542234070999240205600803355108664427099664301053149617705445742240308482566185296555075837908288222767558200358408669038878780512211517941363129638219215492037878518536733608165773620429624539182884200097517618453458370200211802795259729739981600430955280899668568626677972338522129221276844544885551056221319622977835021910144869488134228394497827677816407483824124397949356909895599083550349346008204002015496740275951185347423283898422431220210925800527299019815740864891709027641435228592340290253775949642743567616608357460228863543346049305011201719632154212977860777535140536573582369032000567445898951784614102336262738943241355579348051504907175033372694393343860110551655588194024379570473152557655906850560049350981575993596505854067623715387785686372924482264528424192058886512147714121213657877455304520542116930681767650410888665244227909362243048019337989745608765811975282673282855857609896542162629074859923080667475498609266975498490845270628671789177528668860052334690591620700114137804501478795501136007966835825524418605144475103744029703629789817829622189386290291369874386626383033560864830201986390812491964692457379151481070010020621358802436725164352529011714059357309868195942475413171963814759099359419828437133188212645859127309254101677687614051291753702739209945653794756492399941315737221949505261196199500357141984787101730966120059549533969385184437990582956854962088439998530783204033464975699060766789349833581408710711263073246539720207272594204770966912185510792461811115093339605125334231183391474930240320938832899874387779292690175089422332302534526804614113558267861532199603426112077341489174379251102011861530117790315613020388615551744167130814977816296539687777840511651468170176905523143132343141531555488970996761894108764693427305417664038440543191454968255403847966847942649658448511973427807917284616137053655004477480652857252862410910891225901960877313880528683450835556744465291474177094284249975200285250593300888220130057252288636631416203130210556975430791638433478015777269708849428799276871479262966256443398605088417275345468351673799824458210915658178402407168246871311406642588288710560791633304690814354249490468735812319214349030745345894792435717809666605211628010066208780509636640749741287815989469859635300422559025739185026948174744788489340101370102518442324422873252698855821849701391924534012712428303276480434492481573634181331820513922402566343915726509547006773223491883284762365207261385053067975914722486021788919233516526848512465047745637074151096184473234932492219383044557751579292300640222608103631497178894889795740366620223516102206194397677710407906153034844306642000242610497706158891002234004462892540794246290771902012788142882847206864537126032415799876027060807178045673653411667864454231316662303206963942989285244354620603574754155050527161985840330346822885849693106152670072447554154010519822002168160810719799851338015385061094729756015955039133690955500796148928876242708146471405097372085192804753460412305668956423696367297244660843435950486361821259093299618823724513549603227878551440070473403239486155375996086369181631352093876386384132516520987883332898055542746732566195427707682019338946850206259979231604600990812886579873588393376762900652902698605814942233891050423754142386291930157923447021876425987777624967923215774092408795964532546092076748562275388929659398550651391429682012214287369694887031751640292808321058581604551220933474486244109199266143447881677903843060603391341503031176494797850164448460583162426235014202807114897123407990836139524393578484016413853621143597856859808453251708132255026515289140626740144781512956532562112929563551475555596980776039436534917371640810885892806759426792335350282156090933200072666166002235965748243596720530297042601216748799576024596293609919845253839003127947507937230690222445530774107686948282728173486275733994841602674424839389921719056196007192004001545196335914825153625177159817422350600352245833282716040938913762922037791568724744198770539648345989269535726612000164322724435362207178494429254613229272854225657602424412299012855130492920748279152626419936935252323232796153843621829205233072668494973155308486533126474782219314322339627923594373626858000757793947194585034235039431871851272829175169810581217033458113774334806079282305155886550643281015820771660199025596032441831400451971828576401212458526178077741672971958312009510482406499025863237528597729438727392069211886487476635299245727788089411865156093063315782683899947235740790364738787443926648143040213693571692942415938194407438603421145502334038681418115992339794547438301219867277729779767540161232750877627705184321534498597774603665283157370845948296798223633680332744907129143739096297528020140660888566949604077981973276666325352730497236259181114169450480829394517332602587459049707907821160500193559198280569605470300553118834238283431185090752668361614410988855475550546314952763970795005547550641541993409883934622347593005791917012112400041316850448810539141325861200956105379701953065811008187441102309167565707416606457058284295130640088278694168918818167662532364245548531218832156360644853296303284862231068142116022410443743110223179916233201285620290969435392843030900722481617500343538872405750249589216633251698954098748882959813432846286035873531589625923186073508972175373791553880182821800468278642317088588318870546627719739282280507795749798940304785620369645957218464877408989581038443552166916539586813715314898727479073245803498811233108150064913250075025478500133799450268878374680304848194278934997219112950492750747982337264582394823385644739153485183678167897559600250229387591216117244863935838738254316572083371599914837507209584345389744338286396245516151754193071461176077173502915999153365689397572229084584388381609857769172736093478557827261962803090027086872151864715351933633690132978481915005896302539314958042031085227485671324146277032224319267382393445224495466595890025308818698551927666955356144527811280420126476577844030985238041077623798366491659082862732126727247211220343393947342802547569254348950643929273824157986639373092697123891580464142302640154387976371156381639853475428228044467793316313434679271164272546096687408935498997555788716899157865255407544530738271674955946534575057020374400080429914429824750199354666720287076013690150070589125015347770916966457242090045841365173952588975530572643761380516440974607275078355083386269379965009705742571402213701093168600255194843102565694657117548793439696350637853345150575249373537140438798718479033994853591392341062919377335162661187675118112325220861007409716092116067380486371486109539627864584897022145207872171597746814386793291404134695721683902419495188114001137266165441433381276563657564592500616408277270150916634614055083089770534337732890181891650600594403501639656375122892868572723543475610742051880820910977326058320946810219450520517641165560194179109064904615797468134435976945972304251668069545908703336544041302522351067366930278215320521762501680293383337251347148340170944933112383136173989878788133822950277723357628112647878933748145031690911918199632504168583842004310562521092249357201247900639275073798308769004721404706241020361914840030269789920699577411071052330802950320044585386462607902074783804521736072129821100581143684911984375569017077647822969920818417276074860428848597993379250637493202229458443720562752397957510518863258489078595862968984650994505475889396442847658694479266195284399663394607884861319447928860312437056684631160002845755223644497359672457521971752368443175305414472761070998781150133184963233940433559378242490754078674971743411436542075590993002396099392254779372141726761165761092074135064548129109140715837382295121460337695525242023461307244090096370162816490913183503145565352647974382179189894661414738940661207441312902972098290707475044401639558759773221734154294585115364931695642359759504602497922736833680155097737439635412248397914197915791342042471167986559432541473774411133309609243449014332389897681584069901061135665214308022518833878450418742422187399513501797767094337611349631596506824954272995165973081516613365467082379230627739914905962162920344736849725276545945147059590960282876327962771162666555286072284224414335256478396003589107461337550054701886242105915682759496037442843556705974704720972782265133855724886846313239660363146979652399613114301670819322048548675102598204442721714589925527104998567564930240694845381239384337396971341915635180639161996408604781194215716981016756288645317461404652309130281937863590800602229058011618943036207186149040826760564466807910548322898848482256637900850584014223234233496329738828122970161793386923837691454147099311506060020387302353834611696524912084135866990020628209092208283099419048728700968453955297420056977468704721184380346117505565629046601156861110208996010227770907660140103429472040247029929774191545892967197956006923896302887995837857154419237121148169834944686490553232164226281942066749671972661867797554934913885483155674863310149881883251412092397034394443176413321667710899896734746257535037845432083907802830124978358168324904446475223063948397356564197629586950098608677918889286857928203942566853858297225894496107131063567258391908784342378933246722406590511300182554621202477450427535600291645577514616667716294030464085063496346540935147985260595723506938188498107023920721352282088327033613013270960976658594067409311188572583676517470518492086452722927857583920110466705767584311655904401306873290537079061593168401286769494078562711387391015152391070732137773007257694962197984728447535075602544006215667430162100283484625551841604478306110067886304120595710134319663082536807598434885512513068491253547379743303575582204669457268444943858211347360642705261998784042494378023814007153920867291161523164809132158736752727235437606045400412379483727320220044223803561417742498817550878044466219118394232155982124351569050395056229872037606921809156243924386220346318278116971047091481925306431275672234466440517987842225061276211658572590493418767866791202107617500161402137573511294204599995478604672985314208340583596608702855089619094540543455209413358803146069323737802395586086584943272489933837580699207795090604478898234112519913167843911689914664822403624697173298973717736908869420943681535358368821570164110515533956525051472132812545143821090529548175468753210466034457771448007220114623357726938895943803443512497428915681017072594717170346752970057205416314934073963086823647500093678361608138078778443403985376442772569528967951089482654024363537840350007697305586136330702329269844865538997045310319448540879184228183330102322398340026746833459308250436158240811228413908504249046946544765686516340337798618239374356344994775104964354702581474974479068597222583338349884608797251027507623490426231525193042595032763127360279792378207230110905839678766317821031910737482404333920180084674623826574774789595082834601341900145219452161337131091212008628249506686869219262864438646978719978821386503898652799007949267938945001568469087939482155574764180753703818089948058582827525573077580986759524130689065267105032913614141272716651766588958916775645668702341189055686309036864599843837657535097802782702206787336467728734385072819394592839377784028579403928855658638856125610361068041252109926255273054121807110768969318835742641719186508996332018356427221476319938526835954356210155158685626491769421828491439798753308654897554301739007747388285831394879351366371765861782883894235734114678199519834219325152373573575852391084328213544064631594409438641317547623939665464105531628169503002975352353622380338547409053412364426326745955288363895473831596221471620025323162256945352567337926586350799517498647550509426075018217165616305034693915523071390917842690184324211388148363683432934522992069677369445613866559051423471797851981917939376329438576110233513923715565287524931651337955341516169187216577964014141676529394874419578800881241801432605499041750292704649770045477565732026139518622251644044515738620308991064939376999171695158544900419657186148899679952577172189368567547923712938234614028686474093163709199066790784760743774251422250810564853975236394321168458585808734178475183464025982266881611712376577093329555942727197979630821392460282916000288892847156475619227954334351080966715111366680702564565168164994130958880938336567099801378898815754925890843391728567002716926415258763739964028648758274249332048530420023399900202880084762918080624159047309259025930216383218108588608748423581988149232544420972431433940054334669235707541265999840640960956268813199391311118266116062550767359339868435922317876115187704843906625771929796493580204761796309480661595110656985720507087642899236965971131538048118252183287312970997957155013770986484567185148890667529981598860622815187488185027593479576856204154387914805178047300458811342972291005873811692329818959670349789457385532968011257360527339794595861583544720312228681717846413030172539922036191062200894789561538294861705037489406958154909124121552950662251417279092701330106083528024349238951859882231248847824155012170196241508030789084175439399493597762618354943268827342537254910920392176337330633554159727534777822724781811403286223344006632117482051189990059836593008040530050511944275540581237158144364246491307169896156522094168518647561060488491004811368748624300284935849262526230245229518628678975021474464029759922535565845165098766418169749460581879898170321590716343722559278013433016134256737592683218141945346479628742408959252400217363994835650430024221002339292093042658183167322195294191872182652101620094794009974409403249242607202502338605632754783763769126144378849019510620196040664127780557979434578045164895217873354923597413564597985049488590206799372134811397745339736410766666481543665880479871325844646293604483569484281449498259931621832393044249393815600641360722083077763089212229461619955484284653658436426451478201745327690635628075550763204338568980098882224703825131338121255474365477013476715863094609130410313331811142859658312565986551617862253691629398890566273043155162954899683895963210784364487126900999271146337181233109032947776397928692665456238937159867108430994092564755804798659500726260811893729604991903738898908548445450580266374689632306488066517055751494819413474529259605982509849329979062446600379714647830203054980183714265078008301237415760598364701831900285484782056153260411911418879256802093264668933957417833691859740743917567763416708317028697685114090940625456791803267463540293957953156039156984487233549947959642230658643861892384419962671626720701757059024993606197610366004574760804250388858653198791812092531340551046833055318546809340383882020885055069966924405189569136108472072220687873227758729319354375592153019583330416594569661706470662828194009544920329974036432982829976758369869729083229351527319186978141803626087820469845525691160495046453711253158985864199115430568766193925163467860010723079351736135835906400413012767207892630138930406836472920519929318865691780901692405978437834687392576040329398574971259895590511464740872936146316008571230427160474928454820756013264704919322578950425126832188861605145481433164196541654200077061592496749960834531905977283202414489908900418307193939605864074811352620162930524288706879768207022731863127951747016668801238937789207276730979702479705118694975259594818247812129823347539618761496235161517718400342314950713399791666078062473653601249405596512506751904787309639692512998337666362316836243748920452700198426008445703352988799438014831802852661108081760957273105589056932986638474967263681309397917008624824646825501166746565294125275736961307948142424163829227958724745227413991817539359640498574988230547840993742333876162265769359400528635365656197622826909308373571008534990054670984368953994335801676466592596977342853946364796980262472846449703638485039477915124889476855221318968670835545872807195070119478762551270446045864057258725667990118217308480991883070090758608946009194637960302296700832987430192537190246668087954972444414530933335203728911400926245376657769724555330150247568252704046871631542962785898738464001986370349603688076805291476435109993075134779044286596010416198155400627750256547801418000715358848835703309699785508281269104158644577511370937322116440227595969439718155288357485250751484885090306057935554450817390180550952897317160951756293848964512692552399335730181274297063911781009032437420880498152084085751770446001276119114189939580194826191593625574422523660724610545064300197775580675867201921096304537388137821449285857329568289941203777896734205488990934603853883940841162651871019099261012145306047001103160839257046007305305300193288159093088548528925182043930806443935879740590312847114102712247098082818926192509569816054694139821368705229633639683535805378490017287109528891139778355939992479790587649193391175843088477239969501681793510214782338173061251479924453249101046986627057676980054962309306524191827861684262540681932817419028235992824367368155721020200163944322075338027524050532771552312672643931992995910581089493008350019379428105637807486186620247277573550877344860108762174106906181731991402905755552519571367157243885722034364689009003171914787020786344571545392173342005508115504329149879714816048497392783304558395801704240550112534157099783349332479324320016366356167626861812527000242799484244486191158478565052255328054551909858072214205312052586486124730188422562754981522242194672509022598180049699492351527173528875089924438961438329240449433488122363376480316169142557875539027137628840708738133510144540351629010119436329985191645732180363508537349268266791719004002563131893718552915909190020370176581169528242636425605805225586016463585512119357582822465215114995372132062981523416739854294068286764473232426142739673649639828150680304858932434112390433538615413481774031165057980814754502652556198075485394712698008364279914380086426708575076975367249843438608223695544896860042361914126699277082349020729894845091651200465851825468347599211390176935675973675310791208601109313581430105349772946997164182730995803777893354717038219592444556512821812327847083751694498315192228006805720481765458154685590880469358250291460514412491037763858716092802443999187900230917519737257646149061488066594689748224833400420602793211602986238721259522144293633269972794921390184380992152803786679765907873133250210211631427409758680788108287107519010189880401229876822973304406287480368766742828283828594279023137408204527069360236754185842496268308299022709008074044143133726600967149902254844929857701463893546048254923568807193037420548606336818363626073944951505417108044310472205429551457387107975676753513492203688407468068338313945969452483370910273107921067524206802261162118711061997779524716240113041615086490518876924689150608107053308566260651727374081371117882777204216708229745332068924723072124871180886734290318497636205326902781131441306444502154787972551085246689444953570542552366925888078879009969601858392501360715017330411115646619539322140999537584516597253089396734711250994738694969506909410480516720623995829263954938659392133261578840687532775090795716310375859853677598846607598819998774701908333386748825745452593269052775134096010071633206910268611653022062359360669336522947542157266670969107173813891796069779555423857085049126977200803802891441023609068991601835287163867901543381196653837207259166268773157032223491502718174462043114665613182395609652249307814305018844144167241810218475118195242601356642663375554205852938852963157435266658969678784682307042241697765215911068405873752727334639469245784141600401988517579394758997158684946314477531561132471014153366730131240148775624800729888829657960165233459526045107925382728622185850931605627159088490616115097600237953519654490333582216433992108464686071570643033485776680596900684772336026416991415892563736242983611403614928419683785732098126175170831812995881358739439534384477214269928765770386792645857492577986513600490016267685849508730527879898726683454195180203791080813743806112182447921953260256773406452739916336599378705214965932532318642993530080802133126498101188797141095948987981102589874874878992355632474451093903202452634990060320644050857133378234562512202050365535583042890408846638003071353392706422040231989911160410248888607114815419018368196458194479100314650499425863166806905044659789616194978226597259522847018754523236494261240890845644637901277416874642478007619980200924064616055184798107878116508500523863979231463324271739994771485012621722477669990369005537479812759056883280449223619723525129314912885074859268542650117656312126457635621394515628802212476083482603281933637773773588025123152788018493395614702196901807835781846630988304265233138157498519797981208179423517749576250442354911037351191507721448466446950524161054613262735934539787992689072529858949841455227373856637154581418511601368661212424309210694003160507398204823501452477709898030424100018564006391709233182959529945092865378075271867717717780124585653758386377860552477178314539421485103245473511545902444519211702312744667862615808193627233071399107450632034944768132697678421811455760986255042428172844430495405069509843916186149393211803802726499373217367156360972373952089256341947996660598094818831766364246695404183853470527181944751629792239315984548006820424925646204320791316873954735385350064854996004711359650233562383889130197338296740933145465853533187215407706219818688289299097801392965274352378749818595800692919569692839456962644024904071546099514170936832805120641278673614637628727642607526022118072420854290332280690134858626401161127056636826888797337267914222716364291399401811087610844403981693888803902768268556876535038085659309667707990008805490157808591318583627505312065607168784306590322089415155314742263448538574515431229142896323647230638757648604604802527278257911539429100520948309312015960989587434514829660071237758175878609366447025477243978585551372167284455238577382934476665668149056798138264961428086220934677926128456310998887443453749895939577406895258195661307702082076269292912581347847495969086055101397523760570134896240928245227844637221346786303743247184228094038118888756227728259655503099578117048496275155043664223683342370963251847608755620185015328660086017946781716366246905071087342806577277810008314202318207336144611257165402763908393466757385730050537881472294313193358799338881978755553567605593711633698455200892805083400112619409241239933362359987285710880742689268649499887630134299668580697141991888528337455622846149050293341807263410238687272810827160429797244287760482113407856926446023957879656916486215866035020639693392868256795082357292220658593091833918201098229322949179706411274520803440842826407229158349240682042039487855058005185445853793396412149395141665420819190887446459755516100106397625771958449424468576992602212890417433994977865658980791832794469110459187244060655673760516743192222441354317315687216718029310565627400548286815136414239797456381852862752085997734163076684918364400800391427195552467444833139578319754319939415842974850119274242129719136441200921449601432227106265294402060449698483495891518857286776518952711976411826682964189414597522020229391324170694433331968391604156999126626720860746190665467535008174089372384502849151479670443481640229942299462172950004225661043673499051591934912081776058267586222832717092405201685193599319526290686148374236358493077489240327088252869944591983064264689596855620748597665855196612883514949799986382683713887204346320637052062108260770535636093572928690557048327788925067902540739119958982911885968420159899185429927621221973034964216236983098980498282293642440397884051225620696274309706723672409178840282615517572628889043071523022248084708859871820796537917721521463605904147922500057437784326066203031920832750089689969960769462722642058554960973774939636080163070791746541154907285836047106407309538373803321931979030578509917422520286337151325195607950520933129616544822809061776212518219976193189822287389710635981288044541028925117791287722103604760007134162739048087915910906291664298736576296825714888880820221117506859998569014435387526654450199163248793804846421102158787306797575502919900855386448734523634172490305265871454795498102087742927891246246453894851365613098969589310501830870021801276820732140817443389273947860056406991707497399993804921139135548862224471521958675099165116958926292253337511918365646738720510718173413169301071318349094193633661941459786793603646476783379447548528600240440646671154881641571376897146333155983284242897332477245789150067982931904659099060195069640927981538168924550106166327674811864360610046716084920601111678697960457823570474829062737535515271208180004136097851787932886350875020034794747621276473203249506801736749968201467423218256692043804354157809750290764646057024215102191040024164162502083466915193568363184970343408743316658488506648674555929764222134176651855651760448270525091994780871468740248862643890324489399278556454864910691305299405714525949186658189500932838191468747488800462167271274854628420393627156194831637607188987619987159386090474120066166293823599697686841806305005669630622650402870510369479803227708319424889412939072099302826783362805793851504205133913230284489528895045731586005149012782868465696125380010307949275885752681377193345329545994243210724245834223861087053917897495796095430351496718649472250876948766070053405043776229172065354902856760305193708295901332024578732479108363886105549321820025555565737398906138919442868564198581950951526926203872475785198745539667573425257651861542986258616802486708935808169214246627459081323832434147312695743365793654259798382786812413186183233790753686932527345780700306155627905277759556459732703179610352110972288851913869011477987618036887551013916307673093859714096840199311743366033697643872909141118384205951735430614846197748659449826150396998842938055451871123084700940162268703202627260914205317325330686774904075431684896752441317324990888758262837466008315578272465745684976298861285215900917743192973456877563539014383405549605836598617163185372715975507884497632932387317575834158947217075224742106959165121216178477803599580713536215205526400257866368098631488578524743982609553577960966330701025352995666514708033746222795788884552595266057105530697217899837244509579589110470106556234986267848449032746221955445445297934106086899856302655730654285164259621014045447752096471404875537631380690259739402540444514287083512706337442936038544604411896222571673762753402120062867648775254131370701503653278467415267033021186667074576376884722649081841830129815450758627197416873593721339356862301427225404980233544781629186962860706783191849480356649223742775557701661285153092771574438665890731127131723910385034172100133738781154821221306943858996603152391082358218669869441001354271543902390420674598598491697719310727728193881886836008303102312041083791663458233309649734580210138491680747913208418793885153421082603903214301934413286240236133870309264574113181014007278811731111728421637330102785279962260192332418957008386285858248228774463781077450913999147348813457674751948120861730406962554975623697165389533045065718355805006942903732636525499966425623134021714007452967107924787223170020080232518579203094176941484117428305265553774624876980197731816470561760117510026244979781815929701416421743088349787781236911124302258941395499480497411946469879612804751777620685442837541227694759481931440631825605704531738173435075595957058742162352595514829080051816813226041219342617032457072706023066360886398018900158662033716621175923343131713427673733790478129399059941030337683745565587864531095059212198288491085288039325781922232424871054346998459273135498907429550326127083742823644570400375136578315254523586735614780755450619283145918471877386452515098506065436772857311110820752739509290975612606675796170039246484499366458157660347173445405436828433151179168639800982128710654904933429319094717926544984519400627419725217150121688242124951877545374307623758344842528571467220314579376926564776739535355243489257031827584572244856885366542201969398645516315295663624069953874383341496171829370940758581507337342172725035338644810015647972464098860190468199762039102225367729011658446893888587158453346709616445099177861212485817041191144648346072696803746407673576685182869174346717556715282669018057237397732117990755506163343086970521093878933423190614233376963422716768376012966811801907425599127464047936583467355120778281899660237398891841135669854035243704264513510196613518504226138786446095408986996623758020473933301167716211175042314461784905668123286141842141415596281068780944623902466390374591760487642246601636969208229874075753244433506505262420561883684128309099524405538430669152511545702270141636434105355209922694482409071569915697818100114819079311819926110085696054894032426916735449343080755949530817536326067979375010916389912626209440275162430687506995716099890924453583275966740173017471427232556811960500145875426474525696181322071364872364954949808685865974874506304564207360580682101522379377573850513135195435177037396084868733451989333389998511669332002202938546165454079688510331278094442302836056254188863915576684784289545823834763610484057214986148463790112758601237158145899547631443691743142062895601305336151817209918947016548410084911144655939849426205113478005414074486057825906835758389439072527157922360459428139014153078624355810903297779575129476096034780719220644793186612002140521208349917773696418196179691908493810818178860797268703161655015263432411009592481294989161364524052201529393159719735406511171762986670361437475030646297782554341218408833805500611736952515776037383714368195439039171713614463246261076738401284144073363353899509207071285617576300697259325056233878944522804791660242866365843751954012252621031745528584039156233437346804046590682342219419688698357765543729206264706861113342862564986044159283122677727977388714560545193098150115728495200969339257374799176234214404549744151498479004916160677818339443827913657084956502638288827538710203964658488177170221822683213348667520971643875742669575270860623887012063312921899689474706501767344586985385661183373497895125470858678240658748170140527582399591749422579353218200880969145645808711352533075075858475642425830967705563608199560112055836194583795922133439267360454088355001529505184728146921452539159636075680460040201575462929102490327791828336369141536039550919178530008305551763005101950275352198109333808427331113873938040254617106129584027302792420851401820612513512759475532710002507165334287301766121566070081158477078260303682408409495605304100342623639372704603589351510075759152110310925808314865071644457476060928867668984916486682421422914107436502629598158834160281367114144426057029806348382264757625040456569421693051016520186351518941550222387103328952706690256920888413486915108652984363381086459576876617242577872582184851229506157590829306814883618267004243325615415956207651612985048721246113410382624317191883826410668275382383057261731651427227013197318912031979218226734799208293175134503968990576047160660884965084734992310457087153665016392098317713485421392975375191416042440068964674540717292273780408422069850862229771500573274165874993920138318587873087170702719941044015506413722560268999120907142998355344082316279486805548786726191806321293552503086664151128568842568836972383147062310657138324226082212389600292512195377384230623865818026759786955516740173790833183401328558602907374403227991381016964193184303365531871066463536788623653678380197292518646665101685547266126824563444675518498245204176031200318991946699977591442480473858826185625319699730323548258563664061400480206710628171299870428672887527597187734283762716117585745073724348641170892131236080750083901395606215561318637713023838541312397346306449296803671042916064643380063781317710129819195154015792642477771819532797904362071670349203167433337634768321892222092567476064473354957344315766743444058648988300722207455309581209485998168228162008297663641673696246684565333501669609200085822493674328587991929741300887580980691392995484557205870665529305103683727668700998368405122042931043987388567205791489782919539162241407805862794385450643905068750191629866653237032413806731279630289000189952225713128074955752972699229380577352584808844555671512734906769933811217069407180651154703436272784912231256006122283937875665291218659996059601973499667410112258305513339522094410371918447800560448312555817219820127680739624511943244748901404655746892051639050362003144726414355068349177645303403962129868614046549161148550124665433629039855747082099911472591499307076553186181247006201963730686640306074228646411427998446313640593216877951995845328187006322250600108595453494876023202929352211826284980253403540677198225985207019073891239386280382687183971342105381624246532591066722794117279841585111613590374279462096398818399333013237513409136093522922772152433326868830676680139356244133942425429547754184140483202052044165569290883098052451806405588750539585681063761196394988668318842735921352082387638703107541053531904087607120079786287924993512500360937528847601874237720100222002222948379297546904457358311144505255557253425002633850455941870087128118069730918887927534885393582907414385212825631265609262206954355588180458885918149884888203875462129969716236365171295157306156045613078943014645078348920764245758426770465651762591610636584411068311258639218776447369361029465015062544107129194310218876731935413010297044830680967661105039448232742393366226454837725026942980766460051885253125643449467324908259620367892171751960504905788983002921997250746462983447875710344280915780354995285110162153985828979905879090329063927532408295116154821074994866326424801145665195400193503017051807809819192513017975688542785822988996840613155366462651195851154699310663564587984955538791771223458846387925263647379402590581058758351469835479449269656327136590905662117325588203884961946442123926817036950210477255423974395446253423990197479225676944371344365354995858307131384607657229264336197863813149288965266264233430858533668094823315038023715517409788400288349525647851767787521279063536388820041878510727906607047639190078258703204411935235660150145104523599644803081649780569469246570501475188656182741240636083693629747122107162868105010880825879461241228534589350274465061742927512696472520293265337333246624194723449776469745222457588709007531956554665250786620939934983054481498010041109962315963637586252453149243428791239446136892805339783305794093301359716925349523501130537784402191589556220506014560283599963180702472502785294973535509757022885048179942636320548275916378827715082982263128080632106609513238767888359450730771364582713387782353708550762172858367393783648102454914114247471932431080669344987218406628896323798819485015325634484059665373987968905263746081327051052270759429976989357139920381067328674017895993659468217459554570189473574094039477229219059171279383125534279382142917138150863057581288265270075792216293376921607021696058170266064601213218982359578600496812808098798336796383049322928477752873030798667807898675287073925267589532620284002145728887668113685848694753583548857136849124114680639724216454601779112237134314741587872001450885831437034232953913131019121068540586870434860766871716205565930183137440603525156658347097080328157176514352059111770820681517861342185235037531525095118479604997663756184462901630846506890136335655220034056387053917203916427252344068445307621351992426227068442706493434875170377792650906345993610650806020129686089649592176119684110612729938032331118089915983435344787669907874560592476232517224363444572662455606254766719608093817424311040029925420215590958960673923310130190763904194322216531124091679337631341025360085610157032378203662861944498255009429425431847572162556545982178759543047642838076497449645717848240924237991656735453222639741868892768846517730978487414292020900814177087231629329601146674733405506026451002099605729857601744638715798215949776895478649351219709419786605215262397206282231886079894008744428607611886996059372887656192897008816223502489539736444393840641227887127936492312833696758759723936951762240706748913325448199596598341088783054214024493430904999041242890697569473830809805500489163606594027732698336563217963862838654516953453944156221353724572651364616579595194630115398971434312366464698314553330458870739466115652092870652230637126068207505093123912605617796100578625831516636206543061171780975681051792321559002534725980059149096432040329024348754378236413813051564879365555741590935422622293350434470236171889724560188292781250755459943340437977549445781224902705438484819031136959972070809385245395108556596914146105286431615916513152751535550740483620330358550483672258702609652400587392304852671038116656485780551538327246929674378650071673590328342165376986491501929242322965603391934105226308023687448666202151926265970757209028514256508702726765095826919653683994223388158569669609119165744297310235024560958203105806947939098280582042863344878588043479552461390258518263014488690180825862553031257137770103807640372117196942994932706149176137544869249219462391302814931825527420796410477433253032797497459925728098872055001280717923206058201827248809041555443705843880150465082706475419764646906491922827950541892016293644301897882488726080345273800609131133321735163952810791984914519510470949633780570103089294187307148525200852515364080189522513789998564525629423524888552192640827821635743915175741924420302411107978805558623445509181684337162447199332604696754119460895783674267620937775101156582785082676271066624180653356910890505600647472912069512523345988537779082204345676579233128541479187916810577140359799708039799367375934538521059486499755866311836994415485510968854846899787257096803528894924798318148976865485464041141784853780850537271411353696645969702006740359184976120997603858770770184218032548545946307359055798362147897561370912756910551551816889572103055494214569597990979825771226064978556064775958939417033019806071019844459209836620387837395488228549225334461312354364700043810186551155851516163687365780942638055264165605663997695882346417405254267142325685107626646721660515301975420083515973332475132898973066835086276686134518186395456561938107504786459408547992692129618417615354175548382656807138320062922684819549727873623338352600112432315278804420841340995487435033191072341859995713961267334406093541417558685206915946880792953905560789320612891475802034227028967522434785150550777110040514360113079934943136109727543752439886370444494690767736848119457159295602942783060277469117621019972223360386000358571016107609406115710599376849190855310216459727145455687202137268330841945925723532776910005806165850405665511356947274685948686587441099781880698983831612796594138746425104717280669112667692699011743459431247793912314402170502974261708819284643143565090505063208198566433464001790634989231774187128341872073952321607997263257708808882869422961774393705674618236652467867554092882564424577316300947015329845708103099668571453817177874571780030656732807173245119962790943390436649049442755613846693734649445060401433571072480597961223614236137809876764741322587612062803450137778084970214197447225287739541913666330181741866180832357049605447282206336139772442505303235122430018786674315780143656807414829854726411820648222689431569256016089012492872640494220074251605958577565789696693268381971937491841674183508801636849788931956196666600940539954581269767811952232122807943867479415355556505739684519571941760318904029118842272304684881802300777740881840675042141124094988613022844358557678716697975867013899616514325445965681423061619701674618532390489781221307421526175890892480884832927426200210657532819263090758584290444178233013589385423756658250087491976657257405466065263834593585632114533625338651450873072909075558006485800152571738053783316216855876413267896066185755320885728664732469109010697873615499545500095435201034415583072540650698882635145471906616130715486255117199212862683665678800265455381879509805399645319962298551823813634417849808882803301739431203611245628793404165782521176032410865943148499856246943259034898509383164716377096038616710462410626188906294566931776313934773698974387846320271901509584518714479892582068152489402840908333215500310776551888915125018230242118830196451960248732353464812787160134791074408000815432622557010270333354412777098854929238077043147090502284539470470176066987946318534872784761629676979521829093850311696518378692196526054738569494256566821549166762135064399300096433330575420344874849309929478005738974592452699975505303197946936685567990038455787682230246841686911899260289773531510755067064191534312069501063183803576536100849922809241956481381813115334899180871437375143555786374723821909924556234725656112581204111220177534367589260639874989218784075388524548503406893804068256228174170769003684159974685825372344094210003846367503451372344815094332166690750503408819036276563757067289796323239862095096573560620108021835828686743444643113139678639398820313061486893654377473959572758745905568160137717039215248971626146620244063031737315606286366319776966885513744340393123824325981885659998260299058145778938692111188721603831720757162926111180433591506760395171078317338381450977175756296535453864064424299451151545779414711942771540148190613702162690109208316562799561885298878263652766522175044045955986176296897994542590141226519386583014663878974570401443081647356630083358374199631325027088043569595243304614401443360376965911087258917184873443607424420126003126459785700409207757075527572709363358306687013332367137445788315843027127556118000882902956443859476831822448839235953621233377756337059589978496996704936118526849785753918791623990708720726460569288449778329358468117991700344786032808518249672653767212346292794953191929926589120925732959897197368902274943393752836081105609920543958759766413021754844360420457749642726462986255679844975134805027882015801779255109408993886804837821701968790502645891370553840753773774163105186337251852998908177420573993447096396089459448079639165030668544394041005810072813742775253926568129622590224924323721491471242167267571719111904817753562372309217641437347660348893754804478637120329592635784495390664036556451579196700511801890786201967952562570950229565491475303440494521803128185011194273889606647893547052741753746526491819015517894391738405169760619089354768657581481997062624481962264133400386498108924019317411664997211100043740379531076003358603530911193222120990147162806935315772399925828959065711606728502193346630505657178454517037388346242231303304639053844572160012796425112030570619445032547415050725381685643220994742503887392575663654720549457062026972070083533304277409622849214721828602381874386844423726447898702159658896336934753116535581468217867152077704113465628579942649683646645986912657383903082760909421430829903418373301295582714260190304841696851219349678257207493696701602581333357674743728053576648398525478337563867058702794002506835856636997260104787278011653420733320258006337083976653929083567426368221773321835781122487158632688056058123325883600409970091624060083060582538782560331290280067465070598665782760963388797011467772841742204888998470656266170016396812007423066061763285726148421016814319867792008762398080499327722181754472924347320518058588613581218365378220940316781448353180936158624573227256466990033241252033396816498985621914739376841833003291018036958705348502946423999080268046776177629960972183754147055011148895576464873364136483617852576470787153826996536475798329311401524343136251898820250121864640647310335387406619146075967468150882969641607825431466815488955497320650005623367308932104572290024797334388955462522133236063131533353650502911849094975767119104881409081652574649164084329123393364370610814601283505247152539201138090216631585839401931372532736003806592538897994582499159460179295056152520582618032251416971978970511166916128428426222714141014933146580854389878257597425801910476005809057324766015244214052057818101795080206523318366272936590357506582588512567961335070654712146114284153528612761139528043666512171512799408386389776881643274449615567734534402868140537986146946378680867614802547041139118319591842801857159088499220967882176146629832539833715800378196413572820788509615716252217640436229882681833206997112759811114008567581717673193390367600948941139778389721630410772375168707739257789846603057888624858370520351035018362356872653898611130841875479140748917965492581403602757103668704745983188025718420426691664608424316929169790524097916806235214311010892128559821760677521534595241037770957074708488738439060421235262987406431773278326303386924027959263695799651335570227454596183048311917701395166678124249713003261830421202769582114740877458494725865213891031648989991936004735481714789675726825545508336428367285373193906052678832974487678731938587951815168386721667686399841770887977596793406305539555014617710514252003499719573143706669543632834845500651943024945100216174227939967547591452670817354524491257886576808955410461179758132437170738622778078978523002368174421434166028433404428155515409270697110608431115074728801496270227404539129897823727907503243170982684206304817732474230094596413270547208476621933061926843839610293785261869413045556653831372455785944355837797246218791903091365315701180761221404192551223930466214113801550955074350556464521887876442739075339439954694267494618899268156828186863926634330657691140358825889446920002164067273882994382042202830197992705570528287573824425515281228576749747046865738128366197554515729762261462528490187975223083731883399400633371491169195234138427637610511257631820524901142845016831824984930131469743221546671586542803392882417113283530342232825229327229651056746141844829310008130395612841231596273917388490126539564318527641533778987313645371173708534118942334445583658469297696413774065150513008599416551787402737596311428196456099434364996041271734070049012131089791140776579684389385687726586894723335969600952264585758922965224093952153637909568507965328910871709980264474957354031548620978477226975754516593006125652906220633163500491427688558536098989285661179401879877042570441627589043156828741678453666285536138478577641262123338361228879281693166833483215610213035061285262856721311793072338824549629622063880338825882943527958239910150122685216839644429970779825919265226863071491697435669629257929720344895331537885044303849244301370163816874508424702251788762332211993933487649671682006670667914192900027332383357183120977461860876567330717633341805956781166255396947011575332872026746594853610886511017012913160647855195168425053539871147287936642782274153029589635768832605156379727826906040584826941109361857229273418418488427402607578970234895513721648140166444927617239926592882893507037944302148615739766147615379515275740849056631321567089803658395851733004873760997057774020371025140073803676857804725953090788782189633240889308571203579144588407155220380186354465118049676287614518175998460301530316482100369592614400240391949340957976099308614886973033576884757734406292410130759986053579629282772329513149469846728110129399023968757107204220332393035476374899597553120327336779645549113448339737932183726943600571418855988512091157802682841634725310967444768822640633193423613773708599115960533286710472726389497893183130802254165719568683067396814245570300392713992535991642978773409154310196980357842484600789918904158402548226675717284857722854713983470398889481956829843245271038892838400127646560820588407040929318757483983181612631229465007153205061287894573211681081008478558028419440504647694067101732300298171020414257210696830500324741755461080214465643471766733414604192965702186042097019327698635785560115202707515061096053085883269041561206444199504658468579064250538797671363692636873676972077040125438182913521868168252588031544542794213396373073671719505403757758903549508183620862762631498680571057252716193722821321380111089563600225759961882304274897355796248003765248386214874716766871172082286589355341048746172638122018630877300234508872359585816920131532996873981922779796038405277143021804059288747778615226857779087763729494970553854182095246667059295946810220629530847088109754662048681399665491751320528090243320258227432204217766790261413204700509624491638680412353892778330581652961206962752310730908650150723678916232593134713936363898831886356500757435767161065733213681012821339885506553636179623388273843618648122233692939521202773394057052622124076607161000148041515038170728768372390761408828251959595522191884286314802062795429780726697140538844677786616660836403773557850673348811785059553020729442636274570267048067566580332097690034425842368148355002956652219197817075716223056663592664249884553987000846496580540757969090157617134126857106274718963370684336261459893397896188644827471519905886387389059594006229735460963089192392353144545235596931346232466337065510705951079292130548324786794430953500418017483423640994320356413091730819944212449377824123889931408320532845701112445916505502365784309896512401819529884142968098189299195208985353005367056063528781286249608231152067483162470794198050834236822958750813441212175704290767763570742637009588024546615418016864057734667853770171079619510964192528030783064887079937210909837118177156088138194503059061508381363717225297241287991187809413597040243753536263073190354535506904629179617613195341971003964131992124768182240454562872466654316758768611326172416226016673460778319840303580434842356308934175676982459153708909868753225107132925532976705591916513894666572055111389652479070270333291317667741158420115191923179929053496710497762944760054268260970788414475613124667612016526271394522794917678778177162309763093692885485856255009717292124247481675758933967796914646468625068974001289544173422252160947168865022265675908773361689900585363046635616791995659169453829770445791341826538797591465153267936201169194560062311109110233573258703474048827180947661791222844056328678126322711758127046348568780798610372344168826379173996217467015449505616444238315617615619251211005088747486005567650929123286960623730276505260220471610178690715384755609937305120270161143817754137293416264440100409864218255909989592171897078567585540280732279548602140579767844724525787853988721220495526551527639432541013917035001496308121217582091283201798111966624259297993226787480159838563199312085008552109601079423879643699260759601115598076729268806541427161983513043116612596015182126669012891410875344890362682278929627352507579981083696275850841790253375608583060512015152651891977569578721051102441977503739667024253309155057110477984165917816166352626581994881072419047167263974790874280992061398610046862894394538621687576988954565014657435825814749707658465538592765657610972546478409491519236066473263504745665529232535212063216145981360215257684023822017542143354597825239605454552507155454616320049611291507462286951087589645381564879236908267376589656167364064420891993839076172646126256837275404077094535787069364906457699206048996568136959072222947470703841676050347257228417424663674281022302818039975858404509579205213466550595498448159987344490070759596132876915338688107004530945763000972901865349128968670495557545188843922361754864008328647583852046828707839567791845545274405646095707858516704689323012156520486195793293981643356486742539447636932736331558537023856554724702332188226300103840377331477362260564062533050007555042214960661938500836234510137863600420237306711968729073240241442427815018844742370244774022599975577477420813217245739640128338315575335502525746891855138164481026903704336114599881426479248576990970313995656082380339041646930412463816754511483232638863548992265075116915336852955558484907657844235888099818493446593381033482095130871482889906152931049657819858592330780258576367219749326428665474395935144702294635164535686153108243726020202066533835052722503804357790931764559982398676098092523960867093838947039874422952618707424081822425760493903772686730859140410857331341803302279265697890866250107627657067233382387801709775685873072038318802546392740611582728469391002912056681560605471809352398546780191827229366106636288509360251309702566161506892113169945914129029207105493630608581311494465318590355571098057765048791053337150169874175288047148890762338747588584319751442360971963450974286740052030270027290021385451418165031376572699406721100704490445140013909443429396662744426959370041132914453534471864773589058680809403273795054501160306528394785291174229745206416218258878659044893727338329620843165632074248963751049834885694362466624559646792831251184107041930520702959420018633705404324033488139658024813058645198729548484814012244863268943035920178965771922019525823160083562822976328016395894922021524503297975895366382509504645780899113966570054161497131703680894039337897200669332678292632633814739416735916941683677591272397118939237211668453667630828098157896981090301710809767864990651275062059857833695728859735485387643287667565157762386574740442995213335635955304373376351075405888084986275416513353645465686360160162480445480497850919200436317122054154881199420526221273787814537777751418320924307996286708521964232479283735600868133401129632695687601020933705918586900131446704489103999811272349002390948457112542723072155511924579602889604791519239317766904424202779431404717219945215360478993418069411823080362680890089361002614627926494677797314867130626372587833064959735218881941082463445819585653413013604199838115040409032564736460159656314265937299832314322299721698391528442245531322525594784344361179211562435053856439275292093656784504188899247268054755074485335336264243373254809966764277960636432654578598509942118962858937163378282974323864737382749055738236893346348014806354326869225390320875773236209294455473960817988002388892949369526912595170658050719583814738599135942788672059010803520615198905276759194982641446647714324490216570642331444211595660457681949931914892253885208243338361274455897416748592832124891033456116345930919373046264851924035678098293349545386844470030637450073526562544473870576274651491248476906646606395602714837952650431427361772523957747635156020502420092158212346580256781058634093748891787005622162852770294482506386988148961250689674352567535898385172079755310675264545498811017201445288473935551114339872150737575973092844334657866440205733760259284330269574781597272167932875681310916772053164299436599980897479893728452600449905379392585427004343316157134669437706922386176032003503466961133521494790368524258657348302851256443381738817404504084577641927961449751779192305228630342846484851560038745197074237289005323386280310161855658209638360258280339906770947182310111201274713439501175402907584181367570642562208651348912739291356361916737981602448921424241664877537578903609213942423789481650230880635902774346770476911289482831937258860258347761200023386484751089747811517941630254684156552973934137610339083214174901842692601347583705850106948153678497952378655879118777892611875438295489692992984587634326064696816402169805444297666845483899855605751924133143869473459137867638619259661205497936247397927373608301269818437651798181364358243972979245747117867075956130583978687165267823284789181505564150770673147774105014990524928083484216979100350961287701445801423311977390267306763890056231927498813950710646880802646998645459765401440701412832157657525776465464275088018214593117898584110934738129173519983663073354627441844015943084982748342611699449472088701422325152151059775522314488013494471761957207933002977050225762424848257184298151485026810978647901411865184087442135776722471994201170143269716810927448155064441380722153615784538400030653178874066562192372514066005966726509735795875610005464469041045358643272181225409316461300146706452510359444967952810454536470044914509323888370340277140741939728475865421346935404090453295777377181947870025071406982773836464301562780685827206694557557185673548861076657240076663020677238396346820543253020575086005244300890928397006953630507486116944888912216949918021889977642680302972764673015845915915950394074924330849450122735151217211126133340797640979019694855114921640347842239674271705439186467079550561549860678324050762515390164121396991944817332284257317383724144389007164769677236360517496556389294184098353572371898672325006362070010855076620884121421725816886397558341406001853557405644755486792501569779845532787742692902399478087681265699983424891365995054527896813976968185312243403050637957037103044111612833012235428943714734974288545412208372122592104186114205842089201457788709820055169045587177806959924805506165471447512593035924481177945666229463577165158728765906090941116098859439098927024733202353191428520859959975656625984839852912881862457210307168175698008020128283033228354982680736844375272306984652610056771445464282347585460354179881374841175124153317519066123218916300709669623461831799337978190229147510077249826272587286693734112414187584914524958015617817811534642629534494511302007112036468547196030268757459940393740633283492778224297783188829797291156369178619351029493103365842201430253688185513990519116685804754208128504721342183596639848494513705607171036723101501027246373301286898570989691932403763049645434872639104440114591148669777928651103973279128293695575872629359307957942783191462347863224937541418585367076587550731159192234140225316930742408708149412088940763005741764287620453669137567526049989658516987168177946875023265789013054915803842478684271192744445312290957922105699882395839665147700258929092568451529032604577467923302765661461253872893009795212243643992434298019156223175961020157324354734749634681299427064362009567264478547452505123471161686603332527246381016958391524136708059442796424398003588954592654250635994873531800503594301456647801557234238863887462684305286722342261097365047708912124636096769530111928701352279657046865443759349581863972913666796199385932420769517897946949805162052164823055040502134488642745631919896406947523454250223493300825310147037891618616471591584240870950575533208796119695140876348148889070382713543233650205277805125824933914635007318258901047485691614913392191162200731808423492903547286225769537125201812964625758849183491814196409093043179070134655285339132193352702286676931050829019094940623975329027992735357025043655871860857417555430657201700250453113766721074308312660481051417968078892218275649959305778869367180283980969480616348315636645799601556467874083139546957292288588758983890650935347844009523321887136017658346493418280205565573128491168234784574399981385623916870546037143363176482446502095471404018752525319907305035232473760319647935254225294639257043403857585565444008972984849439104812357899999807691920934772132776025963590153796655300082260210809141258463421296631703756151826115601199761872329634259778170316731124392106783588683399975194194466721493291314294058974694104665517474362729244361635634759772926430161547826294180247942447475723407746721987626049819684227921202112219882234760738470727105313490970605820216071255342664552520801767888205583325495982607067875525232498274566374863137075782112226075830137282238326488408437373873623215404926431098651012412842084505103925120851846583049864774553858775070691113281892977126538841338772837826674425342385724735869739539967975360619880532198073702427082050627939507603734317426920769627284853481561004572909514466701379119743700943406450189882429545265356376703378711458567091672581188023284687480290221101103127193410476721331007325709402189719903816976413107062372112273501550261179854565337729073379137786459595197678644047371989166032470295180664466921652288526481095872129980342860541618932516877815040561669608361110582452840118461834161754058348904764804432260307253213089832040184359458182427209896030679243188910889156940773948220699649270203321825282268629801899937884924950939872877790948263175558503982098531210413420802191826767967288433994647469719458284521626929934372745021239025233337337793982468416218002845979142649122767044338673966517462210427971144452482378402404600925443007209782369331771791968264638597890827685632665394537934798683411223293252896842291550771999983456351610233642907175524668920057663719714324763888531378154180833396315464587614615475324464287329078792367044139987837842381989797838041623849300845141721167526308431998866284053877702851903978182236996720198078749458307036492788206804641363863168137057869013633909499162226181908790402005402771587467120215875854366070608930677855215596885627268622002381274764240686284311817229258065397535725269799117341134111358086398277149580965801877642864134739782580118174698653677120402091142597080801797057879825320421085911221497848478272078613571982988629789473212091934595060269887688557794452146046325060114792770641806942300450224529496728826750155081368110728291599865763301921040076640373245670861934120790362619547476413482927835695654976832232598243245825923583061612323543888785711157105858503539370044910944800890776659753157785268232200225442888738407296299495600126648738336359409145304187619773528884828375838028525060620188134752629866203299032519481909712570547379803961241996463852788262227560047403878468269997811924471161634474597680193474619495241151247523696162844011205302047407040071448185280914404733805802993772514299033245008321821824035228170498308147002557158950027364422445525622519567863832962921115588297534058646675786313914498387823971739955526579923968740484595784089102376318703995605295829993392982312364915351662597491234756342436753745884812952659153618597289335314101163144795094355534411072670586701872275487614071590398367405948427988660639964309520634942008101767246940432012263220429311994722852910759188561949139597053574299031359670245323412315900659728335141543231254185403780111213163694506271650465483923866949818642950805640725890296097412066322584843485765864862092976777593565376491905044220685687786495981799049196203672365555760466838589146534262409257401398944176015447046017284871293328588639440698431046366842475627194246918225984701076423340167238818505912550509490781093849343854530611316728342268567614879235932609255266936760877340218764559044385672267901197622711334807669677642334618130256966904816720389443488156210413123467385732366442202480338133252574221377871698398471154497517929195021300428722240214867521631324245426323336053272946508733388308183891790746577331416164814251056584641604809050539078323780066496330668866766447592225837596729467274324767530139474280357227298648927076636362825867749285481507248623521023115529181466701163367130061552227493101113599839603121793195719017859277587656324727013857679719672525163086640537034741567376264756479097743549874386351880819220673149210304287779933977165986541033194446486111040773394479427595410566529006033036893287597578434666151446378506141247206968853442213631847407323207955584943126411034208718963331688368062434382337144827068992361206068562866566195352921217494148471644339949438336824327396484167733232561821805924135791443167694552243080223865875750400885496663684590584653402284028877511664572171023389750860172546560854809263924672172002694162920414047466556853038371910779322535749808592290569834771614583074771630782703959284109671801212501055143058047022020862911503068070044387837489486037675449606575896968216095325767714171351801925153171347930265019834831291786364234648728056460602447324385664605859190051944319960727260132668393947276158215363288143888795898494007763642258010564917742278187464609466474905609480083860351846506178720690453211616352608029718788537620788721346372802932496175729316045538672759137084811525595660087499842563584445272567472833465785125907702177847327171679683764070270622763493613619236679490708794055198410109068349132691575381999888042591558302520866021803029987949587104230356661516475265706832874034342233435713722949566847733832072299835750307779733778394169659351305898531315420781592730074597123509103256228994802844527151220948378894169162179464918443404716883140402840965825953590392170157544853146980545360676048904447089881447986116568958567342807458410798856364743865477319487928426181740651266664079323767463115917062930956810611472080340385886912930042006805820430987236343198504885808003501420435392484432136690882104232047897433713666640318634539462178219269713193723633762107245496304127619155835524201845212522326183063883077297260436532186769171294318919401551208789870849739164656758962518890223630544831899818697609165616084883479192549498682211769412577123221961046274885900901194870420310825751364183228772266690976176580225701002205986973261734831169192246375804777389712080310125489757459970829300063365425525962497969413194662979349231378660787335159673509318667730848407779223416463678346191571200501557811678132195999669117839388765950701975861380117355826422641597320207483363827232681716546309196679464716945206566997691332765085187531028318853256417859108128769076437366327768302199898528678005253003231410287842775572760068690453871530557842992628133120032898805195540248564584443292187977210529167937714622361232154549102339335026384985723052830572757932467417902351439753290031401808437164370835883958711679283802074925387571257019384248231328716239192139956029758863007085392124797883550786909610611514785285265756293973705847823403605135375381166419139110074577977858143181447978154346395329986791958113944200473358093630322185542719014500242266643257368362236318157829368095148850935139207145200014152254146758711144782440215547366767734088076399888293056309161179559458996341056461148155515809138894194123162399748257489452462953326087267582882288141814201399094978558238404480086071105339741934383296293323179903599624586897937487961225879679459170345766598715778803533427043846603657896592557366031776327741974723084063189936186273896109306675081079484410136613376585826883079294537811694410223170491153140732592913891570950350403477668889333730947460662310458235024233689026197420452245158449257668149818393180935931804510605531089061268148711626906767136105829936646773906901267175384858483482769468908604404662614201437885069565231292221313583225095612441612192408199307629255399672193235034931517709252215628793707339281519813131630103922058128671216802203458624126208145582545180656518058369566973205898495512972440601825315142912370307380201466907468406151746113624799191294318558898677876549560586843421684827726042159703521085674534215321563867702522704479527151728972026025339253875509503023600355144945464089001139827972136872025517232838969792435477737022908496757752633298846429732547123373005534692358055358588397008451009385969365205169356784910114482090365077113688964390862755787593914942460281202765121045737473635902955160850787453163628441633322478698600436985712017124572931122032213488240417139513134091064841822361865172018632266843956520859229368523905184917240245340598399849386008272503824608052806246518759958454179481674322514060686199634463356786562691015685477161567800308348629786990341495272403951463358006773851404623840451133507982181951340925243412995504039546957516080447023274733404971227767777406091069653559152759843191096595350043949564249734488857491212652633825714554981412584058850074622057684837842768446251401958958683560383862504934873539568750605107393745532735160289230990370792091993813408113405488597835072830965357537697500335105975457828317461898006321391289842246100899412231644333333545112385706302071327993501541017164685401529706297462148384976591844000695917481327527000402567423089759124403183671152441056977036392079422475236046697535422571585193252481988445720117432420379285639877332341095081865250643276699618586688808065436713194008067084092889495733038158638228330844476694903252019875539415815044019336410006644245362666695664259608299778970360453076933820693013085579827709891545616317786210117240882183732194270909406644272463616716682167245023994460686521026546374417937592814787010418532948329250129165399688934404551737793709922580791908640576902977153536025461615052496472035268887388829850395745655306521389663404962719411850497246955086235048922771032403770770041776869218461722881693554387094134003024668134162279842421649326607004433964790885765142436477163087396966036713584671633854726276300225177804030518258533296965207938284245571745343342031879838202253268405946735140889673249447914873413820893956151287543689684198475598975203324668589915153838202748073382809715418942158864728503018043827737207476170941533365257703416065896752582829305159922363132304172275500141228024944209079774828121958334642073383410417048000880703929666935974303670530391929381798564545083897370574393690978078596275075859104149412383150681916698367675599967112151947274841725423575447394101843586435491691638354382635605808154045621390199649158931579245633402712411040779753512469892078867499575005746856949148289977825892916764881873661770035082674016711775135313328698178849067455317105752018887384902552128185712440676703376925032264136556581332267930301325855074823077534941463110860875236075389202441933341427495743782472021299276606928334120120891114293423194784884887987533172962315194788337787869859360570207511678883867980785820786792939487361062798290741178791732670336188671092776813648492285202547861047899870552649567565056813878115478190973886332150910741250917224253259569216794277683111065482657490016517597889684695608677343787814088489967386292423800326525344012938797938694796239464849120202365254449052294032500260924552682976460930156344222665787480255478574865519054335865455636539176857952377356045580386004212710037124388999466343658695949900165005628718055932823328964300319076834054161020708841698534589893761789318043828679401061890602687170336210681273622483242807977453716096193897541128858840785852947920251511061625588783790843451661272140003119082113893312212556297472652147003064193207968610604173591860282993837440102018764807414849045175548636370292119940387004668428989395324451081778777813991045922564975807970757628299794260930957134536520790573700527009412913998533327187999917484975913902659756013316480517317974515798294172613516469582104658205067271513753495262568177063625363167747827239095670955773853629980087207115591160556481006017822411138912288587774262449945091273528453346780459207695807331923294685258052944727271248074723095228100784571195000494810212099667238017505949482149060814365963115307601594633129565913263959467015634345336510157291229840816843508516269853892872044303369605012609598532404621760728327415309048220397043563491509712833444992044426598804507664134471268449351372961628119868197335103769408184386552098185110637344155359697588357356694999833908422294262715946540436665280565751851716380284988971788757868351938276819960648118214606726965899653014685207429012535274416547549612672385281353601781283548549674925120403067608834752760202706034025338241338693103044095369695294409802488507461535554431305723485502118653027692716869929885163870719532943826412062347583988638042655168045769290459804121152169756192934030055383318948222505950859806053170210097162279151402785055618497677821343338765738400557241103405870930451663704666307781313094127307540500266625219401596922709201670037058240680647149128107022167243533567676909991841738731813163416572446219204941566403963410537072981634615223794750134922087032135245372152973535138432909198775346154713097541585970471956554828409938254315567404492886548040751759798660178522785908757108932798218377666304985893890914091847011554949588776506998105786461369092146553206255205814214212333901165914930984854845125840098987695103177042726586138027153345160240706230869436463876714244218487504120276977243697917722749084359059016011860552617034150696840294999725079020459678078996811476840928819971685729242626508484275923161199366747496648843331382539422721144475118151578039736865251894934896375257941319204826990616424147781890736027053160088752439826719432254328080154854271918683674466782358257880626968565430661774762819336962838686482025922396813190515274982975960421602871525007330047477202607383687542674893803209155801653942730588019672465949498579923950132111768399547347296109335675339913458355240574918588390000554204328908735336216579139031411765167500400770086814923477297826907592054548641552082279286872911758343350205302017321837455980426625107608639431812645171293654560532057267827713951843619427731719727451866877997949198569521523629299323979318402872272862637943646049188314416491852393920570952061745106114282046579186470647893195491084449001538471900714945684362501556897315270530412284413402813018139434138891724691921699513139234342424424791137431683888219706353662927505230091370376611163009995166673138507052433154402271934542335475282481698721073240098800645497020299345760382034108407094952868429906604634898600473269461420062872887504391379229526804109264205440781669801959879343740163560409433034522159114457188059674852629592637972021594097391894067926350630281926793205309332949398459106751364146407152430138962283375009508898986373982160626645461896014771850398223382114228749237629999408193715046345532477237426839174096470444913609025286963786195592341498477294814716426668778047876096611781881564677817080297525746943767770457648071775673935214320496323103244156043775588551095623740534841668451290436829949193216898228379822200068057746651316963082104639761148241571955274840779604438649748538443383958112334546064343705298992096661079562622616371564459849558350417934936084886414033365222406124240607507903744615169708410231654677616061789422042114450117010633044780604160995737540878985774513053630750689783110471248121513464101999669254753525532448278851507567530143994778815994612375970043188451627377974965999850844879697916386820095649375142162395415897769607665051273607257106033726551907212799836876143208923997343856415736882123380295318477835866983252875782443888865086906108166037901559449699375076253244529754494107766464419780440278039838875382633030408969243047592877705237006749978716388379619291953870886126983891489093629114015915188900395360002715756014081311739764868381101863002325586731968774641425806052394226423577016872302435402083371175825052384367662109686600217679436850973330004168089438308583170146891257195152757220728483802835481460925492605249012862613645380019418480273920327105616703474931874113162062712056090798646874358155441719640516265674678017252737974179346269362500542279215971547038636882215654491857550609471778487924515205278841735033959976230243376635305127546715963506455170754769454532827030665249693246979449371813616684938781212523482444950739958684456139552166544505849899366316893572014151839399141741830893885286210985137575725321441854828492227793821706393551133441547386353178908489033835218632672393440689220945944571788290945446832456951122138444684989448511144991481770440379287768979542796599706487920969411621488093962003837118015996059882668843128323408968487998424362661871582705343755531161145200523893829974404945414605016658051243692994463006345085124579972864302756826624446009023885355766793846633380561332819116786591996917362992093259986541658676146184554171069617137282154831045267589564424190538483911407542869752754323393219726751596784045519512539114304615580298203155931482928495549848444389760624372220750703957581070477746973689352160364400027840127615869040561024758715934892326479623203007085845101654111623868209469734670386827560972533553538699784514488343975943484923805495239904232754015482142790080359750523156307875885255767878593920709258556448886478335705601307654740501276114105827153418497081038745453634319664068567856460852988889087955291367295835110700539167707922220219491292047249853272623225513253876867601740812478005995408104748118522525099100741049562587724389196799703874376535047432487112779899666953171931274098536929921038342163564144133919461013509483962025582348847017479888786586071532427046204128425923703868932926348487392831516346730120448532863940224276162219146936722445712210492598119984259489589812800604887098840488187925114443646512618409084118032518499075665482049809957418906599381323456357578226147759585922363251148615521423095326803913838656160104829764130358860396680035906205057227940174332249735153808720322060889561010507833553234537708032847754282416600843485877356731346465449512995636414587533098914793508922814308950224243693040875344064113701693901365659615182927317426668492453116398682754060808223959163160801660019914651601270622379799456821344768047969739798788698169833669401076124596919409606112149488348962135224090989401031169776452933159246485399291091570142758169714674860946014965041202968467085265108370971807292782761023476801520101653320527391932633091721265331915649061056064615896539475175333979851386830043810868537700496039840102372081405808735953218090562961625045088681847962260409471110698369821654574238827475765910408373889956637245889480062763653903055990893680995730612518580156545552484280345660196072681030257767984338991880517442218334771491841285113087478543750654375926954570126591882064196463728622198971045359200568845429036512582283063560194547197947497370085497534894542443263317366983556267243511861617684807519566544166761345736837886164966480970508722896185962633367451307174516876304700381429766131398570511805489738959611827651208755082717737727855769525939628037742649808065916690875306605297785952957317568122605440377783547391571442916490317387902630103764951291409891454677187655583052476709792857090912440412026705784934892532470226042336761755060600358200949371126087110943682924538510119739854371938437775454769522763501981748571276241891693104189637112493425578957408407227953295942188722545199714411470623541350213465436956187408240133804805744727877349071658911624289077531613698256168632626070252031751300755304292525062968210062749829870438574323859102281962822382405671329098064121942842170853359638634933845548417807020906934538996462220513669558016205738775449313128596735057652000680446606158768391787999568801830581183498266568979044413243433218924515260807357044616315144017470520407617688142522415148706188631745257297325345249610692171766826653358070967396337924616941906472613589375811092840864343090005446419789419546583379140027159421831953907636311152037730407699800134686327647719961427547721430800314424481824702250473158505852688476732716396722207423822843453925835406466178144280349412033161188388491607056564566157312350922399724655348054341780558514168241111362020901179149335070259833949617054435495925637272678503963036486020107928952168395759784781348484585595190188847223228911899032521223444057974818385450987841473788558991307889768281830070032759405859705566417720839660522421553907015521963557266857792723619924528821525461802330651680821703083577866385697116613947354192324645494268163110578957700399946914126274138904842908663739547783761943792233988926840292914353830505687331385829719507710373560125328830975644009760093933697570843437475773659408461415921779320792635434985947025409099707945677535729271305086379170404045990662768563634111061663530038333249988036768425834245921233861771511739136133413997120822023029746104126576564290220796858722387115597579157177144054009897697202252075261833914477286055328241342093865153659630941974160352464911423777086103609846676139279683892530873601507130873063469610521979851879583919268235425754216900999866793251759985522690541224166000398698092950819280083524460842126663446905367929786478563089352746440378428413939674618319287077742942264531438928585680650055919500985334904440896058424275301405683501276701782985787207857066147930147466643916135465633396704775354147006944917097321424601073188167171691391864177742715090362622878282388947843424063549413517209753873559250223245391630717639254260704959918219904743740032963744548540666531707349228751200997260196579527225327505769277374927653012599778396681866281240960878113901325459314227532314176146907832784103143320095787703591456678142963704137812158161716747197786016652007318298591860794921917484057443655675285313896860278791974806496154452272052045975416488196760779345184803176612558810947768275419019872705223689385787209375231064466098044420381411239579850998987848633552571970382943384252841549117462989027488001698540410976333218180034160135717700746513480665499947177276753546632258656308650722935333807696539217742520862397241819327824012607131583456366209156333804320462123363280732917046091676341016169184422286279212033348690855636346882581051975956369112315338605046549276399056451105671839309846298261613480945803516544840797342766062710036087200038055447115143773035813856329695440185749939907158844729882503453437372890894562227442719994591027399964021945542345313522263442176208396557527239582606071775788771819990561291975691337433709483254174027473055659112744834058035568012704957728475382916511207595135367714895984222633590365545398377611497495675592762676354915028199846877160772954534219658164668032208423452491812037024583127002530279578426230355544605719402557599750012124200065030558835555161231443412802383058819100979669611773083984948698533730246232372540131163885717210927220998011388181704943190370619775402092146973260317094075996958091949271842157289446118558430738069878920637176080260739458970369664218494833356223264698469747501306592643911878099874026436513289518315510690467881564971491866616529273575595684312441723121537680590898900897256695477317419874212122136306689699477846101332027542049981051494649955349909454951493694830325544834244666289491432245673436496899471433008698790856850059628796279963931830010393164188205883298031907545142975534432972117058439781336267046842231688104776779945485954414893947810270459890125056367880653979814112667205283102999652625929992829428287489518045968257912193561766809171532283115691038279326007668550241106752157278291844384602283927276418459672031859269437137476908800536077163768726637978272793292545364189307632556953457506771915034566516006262374874138608297884015104585647481213411321233312011314280360339974915524868427126842677513225824476587837494788886822765698186419546094798196236542974144230013007837958815237378487895655666401233448173733064442303773113254439544950522949003105201800831490869557401301375973286523742046879871903807843528993499913089326991861240576151430644050733803821207520823636406339553823503881648849541057119851263834289738453671689716300978612844933340064251238806055747224670059375655087760048164515428354673877967975369288820212173929742439036584240945593118302662787225801277104313861280839535354972242925654875312977595212396021058257327628459536220101142576992316311913662851064774363142664035368392455635989790822143679618917069580752206916556621878342544710104348616507566972111422177906251050836104216242503909213321000079802418818205404623577174240056499464162107268951103438051085370097462174687303220261661074131703438562587541848713304858376398837646766428069703680464345391887027462061771346209559511544480829601015405571541943188031420866960867954497832212684176006451505925224957182845547530073246039996796501207766854620893522404009966524901743347483902106372388490233625276025144691808384771803640069726054406967528379911222416465709318247065112706310890841246445396366690613778164911525405430573620348952597534634179322865066857819974467324640663456706136789847965026056834405326237850586442538401644655190071714949578290900575359703153891037696204246179399412069873786017111533633328481548109066718530274060255523833178921961492902434831216698165578571588712757959226801613848372203685839413324214241871038907922764192660258936917498588813441572646137320054680195993877139213880600275820825401615861570744714296372926322383166842950130126328126391432707193862158521103764707328513753761959045596441233573839645071887853669080600302723248040127302083501971475169885850514487252270397365253390434824574437061122654328169352330144669369161603403387819086961702748057963600846442671470597353728359404678356286234937001815620961662160264340750885473965707851559332581311213599734017971986746467421165638010263244374945777974558709252911246718320873140643777333015110981028142186194804211470223498893074213490329945768168027370415206268944749156781590902378791388983623485092399460536585312990814658406335410153825303591661502341668731053711928113593765186086126981844723807439093515703341098547319802832427521972226652327099674202599701870386587803146088029904407331805805782779491975783821012940878586756269253481898759145043292544677623884703032785041466336274727473790931385380320820206401572978288467349240069380720124179804832421426402438738717329005059109257401631593547540328960564219918377087478192969218357636999231641805244898308069737418691249523870882172162421057852765498316828940401136052327201620580174899588040572706535417023304334318609613103473396052672091917428007510346044544808492745690682903797460291281217725556237111824836452573021739731061582352743968994761332431384251719789255121964070908267385902284756943415864706560364537426324315615404889600674481479790216831661458034679026307856616711602399470829854925152003452228220313022223924711857500008851078551035963299575498164174043239458800326942610695605969342951956332400007082470427146126011172772902205010771994471440146140977174742068606111678987579982014150783274365132142407032347859258118295476341347085875404432760023599658476872737407968302342465857472827824812829566582529305421478214095634560452361431703089079417215654695435623807562731396690175182589345196882066749893417921257616086849510406225184049663907315405977540275188196688663943786922597637799233393381771437319275468457493325938947341715337010629783051784157828334163021215626640800974713221368188368196113719360548985367051922488005271261038500201768194757237641819981677977838358591036855782912587882608679448615520923535253951438253994004101523196714137815511533139424582956370674960158347041172886396380805515996115059449100380905853410280629356794946907990852565734012167618182021327832262459328978869080571873570182363609809552621708920196123014580320687745379881456849211620793411319540835118133417308603087138864632218224696136141747617275268930610620949645344116841856670617459820860073384049633288675866718797206945732587885534613369690144028616870878536329483817494230527885824092373660439372180489411926166162636739066382376842264742584870703107632576714628813464551058864097717379501512693251157117360953102935957830783433176794332208085472890816141211192557230136993624619381497980209685266030260171944545015496185819224768250578704754429480293408535331834132775555081575943448796633017862228947860513168159193593400155486491407263368944474709073924288504018968766945088273504822773659997731118400213730911739915459598174567460439716072416320291930457499267881574147128960808168338067125011096403566494676663974174214034536039991177334841061669716643394022574871534770927146687216631384410817152205149437577177500661262218109740586475265397913041685611720896405971956808384076154245533550774307151031458668561640073889589582983696946757277305882001152015987899044341807845428488697969434467096488734043082231318311667086670082123646584319020932045250180687184661457673067885699938247001768513822073695646016735614317210400491717307817654260485864921538718507625115716943453315741610871559099932435551871203316197963818945537968287673090307515582037834722066527943824483415878886751596354531536941460298984906041720968671278608575461979334788719621496115366117010995861233728111118503161652851158197721632403426469488942835504568246394176732158648306520114295123316977489830904398151913941280370416013932357531622310536837709626861145215766611330036502240513833797900848991161800943895941213331981680764953083770067941263397219637949531495304205664035924681707436834334933173000552803189595103446782881599221343757624312168921830594747254626872243159407387506472104734597915534703154096108907073951727309835280401420790692353878802798664627026384047209640160195558532379201873381360461544509405700464423078006299282287969988914830634303788439414752251650014899665463028863674351427757989468708209672719065153990749731382151692783662009211630768950897776368036045457670418807192175343157455240395623344276295717383156781367628475679843148505884073387390520104810517575675236314698504092600598044221785454368591642639597128953515544713344188141431931040487391159237933881979001340610809130703380849402033057664258172912021365594070673246990612718070814076705377906751660869064616826157139920245619191571584794701757956068156900471006847286939309537341164033500528820491683568308516877157468708398422827780892242015667735287527176523730433759568824554495517929484617275166359536373426482683787550845905849469314541529724807844550574733233991649771763905519545244474729139937945075552577491310884014713063528936163371722466633409314996502058292299899880823660745420735865813712829991449092715326445314519786156384786544501257035068570840935774258461736562327170142918038158626995720553037826883479109422058452093174990054046436070507082430140022944047189959772679172330983405404665647916379846698458936571994525250627689909357550514431897067074639901346635804993177191987614015048583945942616034314493793299400617620377949304669817264886100080004303189431939062131531858097165673335820426054283105054320803464035443972989538680697357469904725388094395512570018262677022735589130060175386870927580669137690033864193913911551068850821842646382468723822168521083727094690240727648464222085608915412262492466808040913865404461244524142176011512427674554976326917054818867967510796871394956431761179299340366234988460401902728554153243704934933411830199944876959043384152505912716773403879157578626407926707591670631599182400537602729796143644100740220581863491100400533690176794699325030658494583147014812744435073328730187386546605345243675658936622969748539611313011328758889988698122558230206225720098536221595518827946752179416955236624407041965608017120426775926547257906199638587417394724002326046716805853552026127042420371053092056092937038598472131848325674353780207088526986956541147856294560949128391210796887315399558861394532666807150312401913693086088753908809834117991847555983128295681342893524089869860574200630359219301268586131954926424318569611879816974759854901271529215036725548683327358078208796168089544912221859290216192792134077106661326888493435507111351666019238425244594180443855243505922669961585950923668679507815911487576564875202650730932878192419576021078340782530982252334509132922237666905940056330444010297616099417857677009875125019640401911003996059398549515754486965412704564790985214868892015011990325834752534282553292486943307777371340329172254047624548211906020709621250161559298265538845112012433347304846564699698405304857413462977199837033396904283214145762627960228776713811216862398874331049709674763654027522305117309179656894204467522909018984742648629375050668178359508957173083208098581490161537223959832862328237128261495777406657261698260322465726412683134935575178061820804340859405247451323026294170934278574016193423510999690575124902487571325028095720669161278639046177732443585072899411340861714352560068600866975673576538512315202786056911042757355094547854354662528744543522353199705785056865431734438117210688360690292838917489739664737885936767683795337174457475113660280981608310919565990171287645891518859112882128011392448009800711434739951042459084802938136226781727525488947761943265579043684490720018492115915565258078710048269526248803186377226534728069016797338743987205380593937912627845001940557833267827448677166747315030809435497287705547217841337637099648340282813633464402239849043198856777495214617119535747635848356293484774537430856879057006965818540070649179759869632140786472059175100605828513611201911301568882093318153991555116226455394291210888369807318367858023490333777863451782385670463202752405870880852902654635186058616653018132206551611084545257364053426883147409396222661171003934721879846016584333422634081736081878667381677274878708377433539843276607739307690053546389341397875017893211447024917491796139321277539732375401361384151971411032025073684167615191750639436855260728041426289982421902403835474309769649002003295343253756592550517590527190091334695259829426514014105331013430414759915507660240397007539530739263596464618255612645518277290641588209968033941029079997542823311846575066329136887932219886056692792857005636570194466622563482628380602897638258731208043514103063799409823195835805469434772842297691134512338475880780268931546999820671582242345081378350615932232178375624985788607126564096821432548813097086680388217766285159007030635400314225051512061210752629922087612331172952471923844496234579722596818009870314256106875860961630613968344143890085798432047888122800196473734304645673874513330936811575443998369247793771206118766270973413704026969171992028502076643739372128363510341231145459402783397751252054345319063646002988544264470378426163695024526148646736724379068442439940473802169572406949559474664565043926501910458522670317672868991916728600898918744962436344016044906005698615519719106290959197610042418746206271967995881653184950622748666521829978133453769164251401061805846432559409962205732767524214069218315137010173371449477210071398994269146181797505889137447855088152469920657872388927279190730261076782152653756089791965960137314901692463992596299143333515482028258751188034010269452580944492415286038554350759765437869098364438849800692944689928039189741500733566937149241453259940013775090856836185552656987960423766519812127704905420147108101929209454509537084681028535665195776700021643758572687009747518794335378167227868493322903011476553636470632611774575237027663066154135981173858175430862824731172363965767514485063451640193113058786885193746191133219186453157078739470127171666938844995956419667579427534328338529917933402270761854000924425663821967975519720197395518396784922162594390511957311351711049597455989530672446338642203460775833342755211534922665827560139204300428788682809794188657404296698512068082050970330064052095666305942026145823917121180570070774663398518732082783750292133449521063631920916978716055646495064689679823510910678276610530281357484356280585690181256187964866683051326420080682819555781607147747510465480696381531284901214152745292871475957086809434975791386853764067010319418547338580128959927491170688115048825856622048950702530149983810108956463988615502509943697693187859060033253347919746934884451458340454883694790765716198761147790762652287611848997877106310341084650182204625495381709643394953444713867418490790583278038922587372001983555225332128074299519256987573323654947329323269916895414558548853180316951510005419928965117865342768203712230212154607960811458064456140350649994454305421826354432375567253608844270235652715589992279437861673253595851727699583642547725754839151813999530418750055981872054766084482069754694489223331241054240985093229950518805077509754339490175690890658677658963193927557944976622324576161909949982297531661709628744966227096544214584806220317100528733030927581005358155628040576308657664711345036972462200100764941636780354103184418385148958330703115105701907538111210278575292610909242248462802622197698787207473666145147714429462203816090343121326682441075200832389489851616357731791078563828979720461870260598479349941413322413036030481425748209082495320094124002806709274787473972576656263335666089407595245690663956358835621076699633630310718562074842232750684445523530021881159713562305495606214620459946400620589893669981319333712984364610029076459887246783123656848698195160527968451496373214506508158119979642727705104722665087442924262462523647352028536387489740104397596775813133629452338404684238429047278091723974548945012092268514407635148284430660321026943128596937717740126905379874960653886869520381585387950800479699470336443214392731065159493635265873437327748237101811954327836848502452864339163181616144731723337633891828593699519539221853516631201444316268063799139543442663172957877000668160197610329193057430401449370429044512388653150045044109414951416567947063681761990753903072024630329384675038377477002759538845709523456262221602609524654425876610240754034184723842891049621759877100501074147814492475189049262044056042328634644611108717868184287684965740296759590405849224848002229489345345363379246927674019453581219111521356980027915387663404700297678660864731758422611291956984651390948505893648147457111533840944658088311842000036444437370263411190792471362756466391155355150684177953153781478093163026155710993299848997616111771238507257356742785675810503579172399964250170926472200757846415625369844388741269832134429071970617107565868061989862415842022897160909777101809187814195671686924057845889908990009882792133532800057920104304282038346534224674781173775220115086918338422569770243204837763961999639336474381242312780943423993917916644512606150144215556382734173538009712510047812904576850544362423084094477092227719558049543590427545000990767878337180410376805547188123208757718065143426993775277506228720266511997848070499871566009583181469746522397731661780625393502986174090144418393969681400938406827930812798638151871617027105584010782081193067856952447914559784831344356784075785843111108908977278114147563019044553008812761685738358649648268806774753426721946864430017101230936551933309399918127256177705238158719760344909505584190388871357129684079367924399704068797108483513369383533678467658608767052619876136312269685008959527504996161272068105079579314453593730181343040007943638354013258350058514125335658383357997421233628596482648054191239090199745739790585940866263690747754827460269102233305180150412730454429309730901522437414130345167188108005910245901364537864349894486587966465262845148201074601846134215939760391446696472842017796981231625951570865560691355541160112403793793323567509180917014763811930266683109057775240216645102562988122862534798966100293237139650818093814658360108989029727695144821176780105878930605608422926063442509913180319380928415610293403418473298467735136916853569044678529399065370973886613794999817311489443021936594136562401047238700568796516453283203688120353256349178670954564544936560614366317694608749709955497375305485399207814725591947301785754693944231286681771961607225312493499089704861799941141678162967930045082176853583780414644859419152260585985497318589020696241355903057714483314548072885080673852646447242631171747132954301153152522963131540248470838153961354049342125899966399497874924234333026924082056093673884117854907205813996866495995753307859291897074286051763913838646679838659497014873223758385221778388802356630431800638122174004681066067383361099150505912072223962491077199530363460324727684618158292099507973026714750590707946800218023864999895280987227102200126308229296165532395572135213006254604813772793315866026325844776446151105138174062173491914992583354328537946121733990539296508986109109018884731860024287733589744207537936799458795625935943429814834607509639555371230466893245910097388698003867216806089026323381959687498834196481759537023646681159189448175969593670636300787207194301010146775400666615751670009105627651048622264142093245048038966541890450083351728305873640507668333005436498762136852570804884175326254024348060245135380257259334920218403020508094013750805519340595076666087755751712612196902832421833393846093393019237198585995517342267430448235396884169371952230396027322003008981407651355620126741383621972079623302614450512372759960418300915341725550522171820973109616972712769954019918961109495747559128194904268205116258926803038173850447000268552287488764630514078310307830016242502164686407560218101942545548397007300377443577263900062170574592006709303087144922323185959785093817044348343852821197198914860771485271895896695140880441794205681589618128082931387505716385889427560129323039602056027013812396800760428551211359812221799397550478220698782734125147680951827072021134502337211151884144692928826823679883376146478752692754043585332560349871479967388608466064367348791219374664564241122569883338727243897027592964726642379079247877496948868361821247206618891331191183072021196057999568208283046767068369164086831567335575989400599655388606900545861800364884941078361269000832990344545559365277075829287620261616502801531936475262302571634609376025160688229709591128211307917732804354493270465940042963053669434059432165142412830909188192560501611540432514094932252195610649826573578220528722466597089300688148856713529980850756446897065044831164112844047820949465717683081494081262490773980571819205002493303856554342703010227923916687434755203714826938253538554068596073951274354387597252673197834158922106137224088505650798310485917032152024342769293272610346191411506322680487912843117476729592082960709654481242183640555922088263101176557687792116868892355394786139373838210893140331493409641297210328239094116235127064737310545123978275755704357119224636471085429397508152916268085786525946263283208928584175556074880312721654775333410773628793951874887045945328616456094011287027995692387454861772270591500625356565201573698498290045985951307721939362220077277858372748938489438417916262077396460621047467518758736486251839173206093791380274075524323319811310696833198271851158923916084015882005744218095026279106161786539513087890491572735252027705336491914847827807789011048798620947384257046078187419653737509861381963699449558479184737000614500094346325902558593250103416033895311901062662140714905357903920063380252611855994746594782910755224412468930603348601091053257602142747059269349814224418379409577561931073843050978810986243526470160353248469858617831893884885259384995169044431143273744610755353112468340995756589366850763205298018335277171408033110675919891004716089396098565100284679379092759995226165765190432240933922591064302446344553060116859011753028105646702142213362477360733080314395563914034515719181115886473232070172062042220112952381438308127188921224795996575602627341183072462646545029149488226546181440711112145984841354660833082155874499904486389557499483831025959315219828138301484017296218461543985934851566358711803975929797696147963094206395121300037931869485167458356430360172709667597271217405039401767170938365878175464399086003531017709521211579516053287182887246424098954823762819878424444085176205464294066607156806795180296247110700239326171938663562827317178699019933111768796324538864304642252295233204319695837549590656533668733222728632334758073172328908320146828199404373689026453936830601592501603567935607940177733264302094889414100614411344097119603011689128743483015980545710848620739164871013229064376201877063931877410546888768294379310973252428128831043428270109955636857696765174660481522228289686859165626830925353584849267765412929765461654447331748834420284365763084473573606068793214107007000429075067891945996437503612688788508790536492897251899851255426620304612788979130905367033654347452533580268866470211783991306118393089756116982853828974508172590009363190830370637261462190505586567316888185165212077106436657608225997874954974762330415523601633623189169836689223474125494634320444303501735686558546343763103886993296982680382726577909514647907231228177995094575012726542463792827785025465517328000560078089609299208312817751073044435068694732880756038043585785184002604482616374385954180577797772326840266714866527375426892434271258880498246330736080638165050460084116270417311573415679461638879370039154392936875082602610250120263503489432849980493885414964385302682983513679109650976213322052243057946649291703425424697538574019915994920474221472978873461495344113852124225431746131322680308348925852869619918791428514501511520083060134846578108497380652930458362885164570535359345789691837222127053965765782696115814582786198116979724844084289533366324923701625154290625428794501684559956080504681527089521882713954455316896629574760973229885111234901500336527971797142801626391893325069877064127376373057260360069420296312885943203155098357743983490250475571195642301911905613253214314217778290533293589428351326849153488308426143521874287766502724012426598458453954231856357195226494680116406255379869340444145044071104587561050670867616667132999698991905190897169907277310726623117384589701708750245464420412257177807650421668237047348784299132722848348061112276982889686890587441595581892279898705532053335213430904748988076953959052229492940887033834493105866334688602135495665037721028040328387219566620936166038633852551763388765947693696000407655535974740285687300688455859984508452624897285735811890581958451574128379952945529273955650859195187676186156006711749203773395642962328247043557734822643754370141538961494038720418528331402370103229474005303063599652929000101527698667163450008242647567859156999495395828607512839442108285804162153878795271619029384368431989700915190962055088957572150715676301648261805573668372230944678421287650651775808959811224930187857462075842543892432735542212462245299841761886601334414510564085175151512288199406029632162450014198016895092214694958195914648583446513911251214810165240786960709107847026641558227369290548956315040574121994608230733035730797886474892446089647527033254642642731811215874529931749891830367374546844665901566985347751297000962395651330553411672950887861606560192613734027938870676955346338236154972928822377137952483003335680512655311566548411455858166342968581686448969682056190659431627434687687394173924212537337051809502553120467778790418239380185436986768792023924802041276779393652515840966104333360013076965632259807091506748745164177972224109126736756440415604280095012660723850618969966636675771534130716863057381934899724944589618906044104281947606527100810553531045266777477909472386542384345480756784319673842106405214534571212176750087522317617152573147848017160607005604867244989159364717029845936009816775476108045044292082502950272799739796225813069449403793779645353234304732073051758286023897864477948698380272225095725047246945202795547250576893088939142691530048287193386054122558914088361808798853149304387877289000175715007755358781417942314031015026972088935160388092841262096400615250643110182598639742404800492004071249440150664700003160894303987181799517073179423329291892896428021304995181735389745639240761417659763202510849943758471745957865318510408715924844391651895740205427448182933081424464621561461517803282727146858155187984450970910511088379276887468704087823446146556763804996513352770701112478473538961608959406381789867324166249349336350206519973952662516393213714420418132265199606569553357292031671618410815641439756031878720665503308680436454799599299849606395131508805366472505672741689883855142218841177656062121598974376962584907056604836308824369427413660306574607536891790226832319954466011890012703943420311228199395374209671107446767639490142378641075083967460102090121999273260122312389918528726111090503929149305049566458000728943148057745201049966255777376091583234592650297720849922809418752974237657944440506388436424348176711986299284217750920831680392737601476602691656734094630085155352818064158033114123974656553837902458149859447992177112338600181161243016291433665698785539938878145193015398856639708140427585339159451410621051010356608065781619555361984601060594689170290283246954742221068229325566402949261309384556657145966129982161144521141280189472218013932750472792678805773694919984831530551410389363186204434798741170949233899605586498024911042214713112024921464947956014822232677237614851895483791672312238671990900598028454845102850088274895012267445024124903001897371187606340052020656963330227529474615302428218680134792400462705667459040689554472214698660202111842112917820735666689240557360004780209037137146466320768951661085610468501167655553854535886569708780354432333909589321936837436078487476564555355802792147409999370408326316800487743858717083137201109503442193547959343815015159322140536140987165783999507308277439158446776725069008801959162994834948798946200497237013138754298195157760262415721917518588381760782311005472591872980944797098083521972252838859580653042764512802831548150925046300926285223420604083523990990172900152032803491950926596491834722314430984269732859401100772859298464377764957501111555425379578027109128819175441017660576116859997429301145719611019482656586979544059880383901938078472530566494385153427294678561769785565938221318847328978036476342076401152503439335815351352130051292983128112982548682448062512727800970074995041173922869041007585458148665668163187075004719234307730222095039043449128286103877888474411619434937934824242510785424552583180869464239431632974260425880557661240462059628022267395025539186999688453007606291776263597050666281299729997253314526722186652413583919308552492654770644006415472312440539808718290189996237539845767135354817780429064289310213909960726672915541204342147852414267272704725963236523659893640791087728805832890555522553419134773973571309993676882317034098380867051581932073630598273322855091555518023146852720082238120127683882182641703484698705333745436704251119344796995648972804236029370044133274650952742466046528198025600953309862176663398730531955893216482814305932962959091467073046616822996241718779973282590043409186161959556148540370035990448144708678123331739449462385163087493712789243560009963138605841642321469548520257542403826347073576335206871307883631483040308975762001970206988508189279332179750369268277084876713411077944244546396632673198217972734374572346700905665218875960346947192688182743072389034852248040543412084184202914257921734147787605112726441483262567760294015674089535364620669713034442718837721683033420367514447063709849019192594771035169598373336315698886009893131662147631118854557852532213960559679976285145136884064247099406729792454069280953183809847082283166517941970461108609511859293366109460616276571769576237847002364894610972833753653706695415326396064815356883268959105141743294711782778824421883026769013733464556955061858274079500463197743217725449994778241653012148198951678579127518767109629550879932124037840937299254869872272614898246773786713158093229092497445133309927137114957009562123290567363104802253664572040124945746013705888518530750033535783473087085707453724802106257953744467552333016276717648993620098544209405967493966102575493313073561181849814381925342214878171537252310010281862887040297144719632693941602433542842236341286185971587144107832122798464329073557176313497269171264269257485719287449454181156062223149427232737876827611969132643094278198410931263511405313809914527118835141872588420357390289037350695204099522989014558299328065332073518310987749442604757219844133173507366454374977491009161475617869167477167782323922951192117094083854908921140459178200477364791735651452444862896282382653358741262505939438226557774789495050389164321776956552571144419182855871707182996702116738737713487516432677002703454581231888674738454017195476881223363341949223638671318342399908778756634192394905302288039539622782761534984909286511834763682577506765165484567691635458320452224338356970741063911965391452300849686027407808443978581825806469626841315469744610776807694540543637895143614848685908982637906141450077735294978961191129989679047609119846727658883078532131262454971433923224436484026244371835120930859864792252379937849793874898797387453409695680127286026468387485752285845491154743266756637572871848208428528169100376127261025548978100645952983908814308653665851833861812172462883189172923561356057863034175901674816177542586305686541052185687701572420761418238498302023683615603590827199791603203298632066077532693255048017932587342951896056908047023091772421727237779506235328447006418634250039579591831715199211885630647317036596140817291445161870707753716562880280499857449323392203820647342329696571781693407691074456715555870088545153621568729049467576958183405654799218377904459665705282002016535230165968538200693913577892317207796190896886765830965302533889611233819472670173079188605898958535296539972411185085807349261810689448576541303916871015796395223993133137268038629432240113624543908211530032852702722193867426121037593816005959200710766228220547249873095175187070111665955302338875973374433414660901272756927357503975061307717202320759118102965079114258273784872801057743519292639614552350147927073659000116184758574786404519343999820145219053306746236389530435071051594281530523685434087347029287753888795543424405899237740800117512961262346392946579948566092987579254373151485802253187616383860820719164691769541741896089491311505935887322820086502028870459034896276151931785065556138969571391500622282214390188364374536768172759528298947278314882551920461412553348094756001161378904904092725075194516893985371122988177674471002840540480045048425971207966009886099603428486503776268304501519788713825073067009649130515896245116815085909723456491760900716418741993250635909313993381365388238075987061485532309591691843266018651809114889368921462643274779875191837533518537778861110605183006855696782948556498093098240226020559986257846740938636089241373108019867646156340005371353971059309154717379629651864597270370243311302107317993249373563031038479120212836788544589012280343153842540286997798468656763158864580629771944610320720739491882507748717561244556365196549508791958913613550080712235326447082776255891508868912408980752207332995119836685812185584527534184824913076390526032723729952418594091750977096938001668238008311792349103664921968178411365494664721116746608681413575091354974061801428855813484019122182116271669461192828576150424468514386339110195095082609641679401108563500322876278265417969088577041397946545205419691558939577910544377311441059477921789389356765972124732659021232489090477438988512727928443576547639821057654923318243815794760137995654041174349226798777987243903659494200578282300072768339754434600085682411957843124366319172277526500563118378820633717593643088513746007693334915036480588098468553198487456189707613534561105346536783153368443404422471248024969814060209597804355933161479815222759214576333435642647535744889343390751845484647449241020784960139109750369903147258634847229227117277817901642445593432209076769651592616877198636577056823627070297684922334728845960903921199255153527542637161368585198998549110748462636632040426784306261158817736138694213236010367020906556823337558859792353094719787075985586854336629470268116111298479528110848749296405033015477581813222056195797422585777456496813897101188329470506281141518877578494879810058058480122015962493062551242009400277092715087048518159627670926599215315357866311610671205261464132111098365143616810828103379392275911863267163679760954870417031659021664165820780344820276359982513281422987081851466267835484501567317617895080283049947783890555677069516439089117566553632381185390672679169689197700136529063265082795512814155324406094104227377415611106191870402364694471906639040321616858849344196616128225432623509996470998598303489375380346897681414032182912630783005715080504496820014779806167230329135630834384148113280860494936414030075083867784806347449965241833206165617713165928209515447196155308763477574196586355040394545618079186482335186144938737423557642080710104486087536109620772736834012907544962287114220672485154952582157871004943236996732617546819774384443465962434974751703961583632928851715242186741119392877057173441419784312575763047360765022779725451286298865166402807090915869203585835392942894144920486242938824921727323317420984847202010886397698651312323786190623413063105414226644416890264224435542113153717807970956215684038173236257410316632706134963421978488348459115492791670435291962628414866211184156342780819617325907468182112377435842860977811863548089495859667097059728832327668564161891142606826804638611367756034875497296982825702844690878687648681659547122736552162436813403233887107735630851034793124005585715942159864399349390889022227912714705245520102321163117368478903943793885750628401504605572930215914625438478805530738765480310192485000477453231452099366757645173900587708957560916635286191540650969416244621616682205042105728796315745786058188211223157482592088744151247241685556868087023553362787453684364969784217420363435276336484733843852988849551817824897840712439898557782154848155896061617300178556984422006035011125719151530669111620240527227825353125209909594260217244463291887441962435813200796147445584161341786738122620432544022860311896357863410206205959036955839535479446748192986800260327284522545026448846730709350256511098110075495922597030937961561070017039861816141280851543325194558129442695345924359908269436822502419329326194959434333514771304683085767021554826737264643120334068454986598079519580796716778424524820953940286823587396188351856533180685051998112965283607953420309076650927928517087486047215354786266684005488953316673248314755273199691431520775483571244147105150234475467393631335370875241733291909744893428789081870860825901190770689823909996425660360135007234144219866698480307854548907114151422468333438533919897817121045073779109927613072351398595305218940093527998265627295265259696628665474659968332942989309166590044256287914786263706751546583323404978397080688079048536407065196971672677989944743493276711850237892690030824864893265990728767568733893551947706891275080099213403614304140908731772821603331314441042099042375575815690847990306020554945633120284682598245874080042912754487638214581603648226299957460431002341878573725938922572340386663830305926890404875314530911126440561785240392737940597656446985533699424388887064711217841738901382756153317068444184883809772592032459209236271722141815778629885714948007939146220894090405585154866246955775871206429686969899406959309170709470598552478574299715577402377553740523744245026545630093699072592335187871045429945534653027227800194158057120211803389732962180524669431716075489589850233023419839373641594095120973247803663167129479547036493554926077076386038618382760876935000757123090915509094088883199132055803172535406090646390859272556016777452836983479527417950875382880871345189067812374628770522425645167528061790932951379191050228579135408556600176014132897556572701287284050598028129573518914904922377293477864149195856711821292926209893419558311835896373088455728829720581035710101914307930673788589395283180880134404306588261355462945447768733696263719200481826298097071274570736614688298378242995259440395803045684164913662126912415985281677926769185089887490760182201108635702120565585721881741493912821862138867492285765513994741765719281809796924051315166302791994956615233810352793142465038084502205669855019411019623355031979016631386052080887420503902827079257581628164171044058788557010963025333884613706662252989316372300602713061768404089873637128869322651297843460596287876930825107284729652434390709497268858272367869561053070007952238584422149271823221080682511061063238538189350886331012548265215939678475465479238839383563567126073144879854404626340489659954716146702348520783905154583336502336608286892075550536338392425009938136072840837414738012023988444567670164819481193920022447233228954411410063842278488229666920231782537140008631438987037388022084132878387417606792572764810004478678939941492084589185188683730353136510061833769237363461284099177354055390878808678941847740337813349863551667687427693004138428808413722687182995544312669607693647043699581200052417944973620915911273503155822870186622972737516662008135435594342021189907211803485797114248390230219400092811280905451420932535394993742208263578863268098056202532763990486782078501822138144219801824285037778737657401665010395925422895805393270909759912703540664185844877507556711082565477544069355867082536171334477990109403801720266463431254002441913056177623592859250322555912243029721958870660850608869577731932650200147690604302302266462595181267494789388098141332872083955042328056828678070839384235885652496234102720967400182711956319693840490707064248029593187433185140802791130901229985962971663200220719734988613522198860336490776523735559723698097278410470879757878577552037751603918312741798143362910099981950966271378574764447337570485793158218445489926629121532918468685394505158710531764509737143241138701814242230032896785682945908040683439788615594756990147725653446533455279537183582150589661515563585296219846145134605948873191815356325149814818400172655097302040494069359781097241832041969537831520663551371920065389918657176920068631850569627851029446082473057140224438944803183403829296505510982539060664878380884299287992624868556033024006921457826247689341381959699285875359472684428859343552899003256520748221965087496324672768685548368580473101259848244445039086219955559312642737195618243257097209065487986930384279917376946298478651381052033543683750535788256676055263273002072533810011872522241301575958890088077495922879116284253470154640858816714926566579177402584540413380976364432383951679721557757522133916601388350401151397614602652683878158676482366485208863576678047996913552858082914492862343943352928285272294036041704745641511812665050528979299667629924750072719373463042622823073843140219920145561622117689977091306630406886148954458162844300740737990201059606097357309412018235395763894642273230682131354793276586672409940106980110453925607763245900657853223400734336469335429236034647024075977820308113281906646471314042439122142259641821061064452444262651097617012042135581616287773779290395048036259693394948917191375449018079326314096603455436525757801788174402432592949971427813835866959374979354562914242854919263243975270100904706532723206951720059061321575437059492945616809346682207673108426024226936567106694625741175352801683418735377824987053874263584703808540268822965366589054549622481798287821633555228974782209255310983358649650539992795785461977116344435382674641511136381179532436477741300004524803068673069927195754494879653324381682047346588269012893754814514068069411843294483051268794336927535156801442033540694873767264351670956353107903748678752408492941038270030052389509314843398125906219566243465434047913266037527543186379145065177552104074448383275017776431172678681583186889249040990159403535320944336422222115639255937276889591811398526825307777985385602627105465483232109920446453117305467420089616409989918568387998516988557759054702959247057158159753172876895533216054791073170821528821918906696811364386694622364699510005048605527285337953039176111799778612901533799264334112645182430495646331096606731896321009930940658779045736882585340295406132690379328290091692989120097132519333771896039561814680974641843217888141342814500042387028922476047833575761095355777684037826241089007671198317001827107376427212463919714026550018343092332232388049659145444746395190293599435568046455052793923967955795859640704970579450817685568464589477512706563999812284641230039104227547084019208819219145088860612272617767679100591650270168333792242161754520558347372367217875030999827931517199345311377317595848954201068508444211468725989192139590594984446424924436154593396222725251462932797813323299162240816497345049031206475068177383365941316634434801077682881349396265840323411072694205336829372350839632439663689040299844898306229485267680209256096106938154646950519409092162267134911320631978553342044366549933165561479477694766433092964047306445277263090421509705855457622282978477099136926965445787141374989215862455540319895533157822570124833744933281444819337472276709905654475926333491153807194859346537960946857603891875187715434702410699061865157335198184609042437360512407998279991610863303095462470528221959933976143868679754654697693412271735932313635597759801902511769555867301456215914838163733281061225433881255579610419081223036888878198565469161965677212922256752848277368714124020955242813156483896130011147182074268721953202234857051706972418090276728229319699704204757141179662653960186690840765858826525672621438021975236247850419183723674094433852346367279982179838246168721724501160772141423138706502375514546715812266904520756986904989536437019337215415304160566685131352414535790713559588486953756683193857354103633954005843385704564289496179345553832800505745338362593940065331347409557149377889031481258755403805519832151824846443169449003877444348897728876228384000341890863297044311948971909152626603828813167252689283379439022444766106448457423971308852376519506579231033551879175666937373250790579160265342342365493337261046595667788321254390309957830746425233007013693643088533990148463577384018273172641894785207886356218858669054969051335455223130363264010019973588991879331383104436164545169521744001459094892629644399139501895228679203805392682558903218215739346947888644714295021229835053482532440670118270504512111618877843738687690013412897504190836204229508304532832453719189186906823616152746878362406897563113877026809444850271875084813857328983159499090045975469111035627533390070398145970056343376501695203022329338000946240999134350929327930894408476524296700091074772541804779710237843730122324424630789509881389023861953739551690383554973727331542357315473867055965016429270023191709721773226373427894418652416817242420794241620235473797818966792370080688742836437561263078485007824446821941156509544119369558293215313485929392134587673151260346642662857262136207618411675865302773828951642491407284474244815155915277633284876943473333065115624039977572795777044317045826553635700325512668922640796468083568902504118347737462362759407417495410579307173335474697702926235941260077627403024081814463492885218395914484022398748292362930330542006221341194711257305026521972302150014029522678709177911722409610506428212477029845514349241134097528565068580710253128179122525600949868672940956664959598145437635367476116533027596473831179943343182738001247588042596118667317391665001362955482103741940198677582386386314643392872023389434162530296082085087095364522599821773007407507225053353005794853056742167891309117933975876213587273622934084229583669898566537154537289620882772820357278721996071565626038106457453817307714726543113031516925641318971240747145806025825639806068012437533183823879568069240851477076798620156953532756746992012404487997900271032376614557566614294730457358501552024550256158487212472161221411243444120577143295447225449022462134583320577755041753518708627083930877663223050082277786072938772166589201458801576086405813003296563710052787188605388729023417180424985530152244125764890201791300670134347312208265793865456353610664143116152820597659855449308661041065067163409026584136383637570497715248328802827273145163916163013564339306443124093333964460538014742349799484904835067258314385478340458707282313404525399408725867870881287914266796024901766475019871131635435702254927223221800978580427536429083382233971972607303000994672570434709614178804433512442438344994143701358322579578841903221195408531365838918576863307488286211154101870793642374971221289548144125618169860093216469893757732317258549689300901294775087889885799736584237171910524913856023901385939848784264077072329240348230191764513817182403664566411204984619508657149156205443109918705023639823233511956166687971065776070137084338586701595038820642980861767027696917173343831511127219828536360759611590511479567306991010078566947341040161004873962631882160772558165752539306488794744535702143350243260049745531909931755801787067584203000636742540871078197073848144581671684643582761713541092263022710293257517201605429928671736198089641806464402945467651138591678828397188902561337398136121407053605447894505434151707917286071033470140169435087474102499933804458367224769623502104312160796560417050971762595714552285966112512331311062972406144883905077180301723181374498245516877105689007424765826458543380119349240194610605109473007344295790947814883493904439647833674757805668406666619699943685113134243772812998856673826969934201136019774229430890499706594108601279599492282219623426361086580170185566432354815773076328896857449319127657933862422508003464715947635372962364865876808428009035623555029379272185167618206563686157999170525936492246299476581565347239069266891673411999355861283916621007263218969724872178579758660286078519370548203125195122166255732422493639215329853334187045467928263969648050999122599456439583604080974049733558141991399975750955307489314819565027563644798186785962223550265728483513861065245077081783239271690979680999558109163425415802796805241581183120972781617789207001449842686948991330534867250859438761644823253469377641772639780576666110737242613700859054738647677866683862662793781741282337418810442603531611385204887956915499129157760864519777760667617595756005911635442589372436957379724478628233726102230768212689601675852247633942834964813558429557332248292244572561734809243059834366030146790848794735625239724886597357412645357622132926522639916459635994022384977425648704376129415883100607147933956844091360695915292714774004467559355964238061759135308680888415838829064503971560808410965352382811334194051028193891393768234644556105161500402477969294964439777165568138985793750343860298265236324892028970436915232394281644712119454133434680490208591538939636788539552850007865067871805283350709103280807176662762522078738537044571197550752607210140541955492965030471334989709809349127991462298726293122254458604608813131444069730143487453708101821299268409265938058604263846785512473881445599059783129769578130665075171854509510934283475091232617004763395021593338367711410259461650702251749248503312799795878282245632638844749096014366473540081415633922169226703869243246579202761687649354631082187629968338815437121500822773507107818131655708047228118985169210574024856920628130423020145584027383945729646402433292400864468974021272362766924982765655107712296456585115459355159071127080804991192683146506012432928945359651910093270675143512481952842456384817000250148707660938259555541509845069412998640668474002557974400259120351455603173221436997172418483323096043735489329211718797151948961375809770443658406374053554612996342987009054714616392179159087732505786213607543313760558604971677243854293006591253167417163994198694129583018838154604541201374290154900799005567010037003414598160459731646777344162443024563351794625923450732673020814326593579136581280239274562675800500603032372596409010306040969359408623454185561607318854602786251958189376897043300526126451919191814959100571218130183732823673194153209260333067062359910833947030256019137756568624162035892940701478185821354429319705693155106013460664141385837816736231961907356185523113945450404136766632266315200812491464243697554750267885267479547561235600878964178203712839701755844316399280711961752853915063902253366382474800153917694654682611797328445213683250363692554613138219174639285157157645375258290706850844926675700546291115966814429635923004294899388007616398704293953205398467508137163746610312659385640493891927439835386988699900287230170245719075553685033235371072777029121712002135140357711704323558809127074617324839910001428712563017888692303989442052562620651193331822681174828104260697450117963149497258350161331249514555527109454865590286753289185629684720447010066945897393333577027983388834960371222631118656628618874734639204831829694874765207332320011606199243559721706344216113505341160489284475422723201624336902176452006626695284521485217272500870212775367704320154078711101227550895870679785111638814621610437776569682924592604100301362892615293481601178260839961812488271130277637387220065263889449556523491833640475361882250149363185129539858630932664039201161253800539375708562421272595891996288574912391551184163853747338925771790126618151298650354118406966576067568610153664274438545396549908009056248428310590182917081065833272220764388271984038258667091174324701051569995862477361997100508444669002376309883095271069701405133338687206921067837033468843177613224783799007245716099480055647757258564116753723856085193279676945272781413101531183291207006996996221591712655867804665706967908465426296193116238746611566350518382794536927201909393666467620823128514618979992927343812542381945979024658226930366966385266572007749931259501528582328985253050000687625069008698454407309107561715627643070671676285686111293014882552343657913427522204790326003463794803253892642056828906589997278899425178489096502971317341009258369687791241111406450269367348146033452448268507705805617523292692096578585913580169336528496671569217334277461865995484119055659315737258573982961002690129220732284763599128108277276831834093152213840051028313936017630662110869709508804333606051906848500759597751909025454783710573672969887060681637872179385937003582934348600260685756360237236137358668078600790971392463770902121885667097291987420492900682652052795195826104820809972194133026414491559621429120367156464151768498009638252777313177055725271655548621195533359360778495619249337469960668646833257659899681639986397559479037149346052596575438765182654546677995697144301002112441139682972952138927592049929670733746391716132488126199453930190397952718600284296732495677702591775478996421907039244516637189330420351310209094653503808617695366708685543233989291602882141147808935116348841159181954909720422042957676422725921650067744962207259619328949752934332960007281295066699883140212076562407428642267803218305168658105057774674140940503603274534141889497094098658569153958939685440226233840814616944977284910431648802243316161748524467580110870251638539099770286545797931703435432669083259665912095585402334683120701339529838134021889065140089364170354438720833869405069794864526667452412936914772422265189779547976371067767926861780869584425345369644505216290529880674795236551184881837811055991072323082983740522820719201262014700504757775863283379518666256950868197246452460602008503729779354471950966010275646592121334654507523590114452357554330082898628708874775170222690461243802529892478016763026790545753691041674837204060352911410615334915887399305109513324169879781695195921596267674454878548753305153526615855513868795250665702185586669265582873740855962396344923411420249553682569388663083968313439450439183617313359415154044988163468819863855407345029665073503468905109818316392083973546823578819822652684643458948430773793216468643515640491990013128699138361452544420285849641256926327917870085657169062086510433653124166805252018787151150623616207327207564647861621083111722404337824746495465349397594140010685332888458066659254961886515255218240855834823399833045992279132594968997633759435267980692362435458604618777810157366981438423964709079559489639774165308165815462568533126562413554845381570399183573513311172245947068094446276533892863607373900988114760124923140323835370124112900334072970296418543677879116972533240387358683309544222213504129385577932637712794991948810939123850427113530346966955405282029791494534342195357332247858749761154087780258434976917614798049816711560381532348507972527050279753989688992963932238436133157743623552361228861863013039541859220394047058170340726550026501598885401842730527778032888269767826021628600148490824302150132335779865181144598558895456925763523689324664070876056675352170072707040161939733236797525158893035172883380249014640688023349077313218945207756352057180916466882809931568274417488817574515986348055501798273230271157915383121900664136430704676198893903980183537223833413355523211115798864206058239882727444148750761763381320115337683074603824313272654377328234201266520555105729013274265654654726095491404406482911510980588553776148303099953714129350210097288168712413073322568489833050272437843897105867699990455907880635292678715572921234371845195486391620074927915621797775999027166140649285933312147217970472324449171397719062117039417781407847341844792730151414889504396123549358169071519606564986804402976664783692696655328896005796247696157095672915988157221137367972839558166498348648169039738038364159565907387272613507541674772515939570658882363983855736308995488711584880463156381676136440045222053856241100811435680535634939998486409017613513594669375473898319846315925927422702924626354520266717689282912356948820422979344638664978367243375298360664906847448258663908578376716068873707682882531584728889407956409238131775977835734330126203097833425367088062171744816431273092505235981198740800232908400834637544839363674466279383993369082942566083175884827224277046676833507754140057200502315092533952222191912084237338055929727342933367427000966471581743242791684730792188910921024981251049015640194656474634040601312759280930245496667738111938999942865001742969583803506849382589534945617082538222025935848333335083798812453508433856763314721869811487328286450471569914113862079214861570611280547931822334060937248847091545939450009846410327248702577649486558361849981810679089560833798746346369705980059008450879715656807609998371213999987197294731923425559070537107938314776126312346202417568025006212403489429144265456934447369688616812145064997840141061307887949391273801731148299737717050555569604594168522470892274186818982674536247945182937695288676594114646049621415659106742836605466236839925142765049979027683722905684602074039683845557211416271084959564432059650613814032903923164057393435010815080413393340799014267116442912975679157117664523228160426793132152524756665878371262408604429426403425789372285864300397240223227111748496008253602926255970670397576227354005252793496395501385121230436279406966006424116953290321626139978821889720869240372729578174317307088016093606582506320808487740916129746320749407830051458137686582058379910601469078159504913346795134741538550427458060660344791518115401387934488225147797428719055472269168342018220149904869379420128383949521406493614242229525771851542489244399037139208651383669392246829322379109492167819136341002916698790823285530059207800453646675246909780739463283375991067559821149612719911141475657392465401700661223932841556242446330193731766100453264249447862566365029549548622322951792109646210082924781101041444420957332830351832103710420243430093203215290721462921615091261659936791070421439308871701020587050182834621220016338139770538897309917140975725001008678411362500053438441202281213664404261994224288069551650043860911067162656318368359096020582497039468152487800084629023378963728886545228943054137609890102353465738774866988217913492885057799022037326827335808675709098452815451249034935874310198191825563288895574703503805187778706976816913528224318116075119185992653613105068607003402530787315108177140310579923122387966237308996302533601061041473366491819095085977472543101884336850819048800363213746245056248155757960297858136112195014010219378725183603382095740843301108254431840576174575498558193635158686170214093972705856994775811207851991093988881107902519698714868972460011819422819656078691966219814558831369314181096099373833601724522835185134292570812399409856896901832631979712829582780683983403996134477234349812616983762306932194634101312189060312246073590997216700231466035587636926934603840402934136591753816170879980440179985208154983646326117930543012247264185775253975932797228186536372026261846423031722877094044107312312896488907625451649717777515226456531964154592719945433106207800497300513655666402233393038757538574071020203457658877006123166817475590522084729192841700721432106135158353255733603027564067868885040263401978806805656610688643785396894493045322358188352152210318364774669963132022107931509073309585828711665765400382275700464192915092075097489499831582604636547785597820048887609353628998965318876834429130912256303261023400452801823675183643527141065657119536701857482338932098635719550557260185870850187836578307905298926829289050262240555652488858329363721533392035555667368564515865684215497566259819653373257374637496862034042531924481022641237085302731819114781687424953000895689145423460719445584558765419032389546581581855682871059497463425130118405605766410157943542122384827786280645566754317283500453169730647051199444675006299908496571306772950842551183811313887380196504936277017984632228439386822651679638016901295088699539011677580930811245944927362571213045911475470399968624166477826597137768323065563057986622826675824679587535627854586110478776080984389604721627906141184143326589624767861935520045167166188717270403449111498992392997302432408860465128663401495279931693906590854784541514275092221536354927159443928198538021114202806545596038870232359087655678211203448401641520750882302455203499338628143175858712721870658771767631738941563742547434906988986658063160893554977546411500658468153751874920890702952276183188436951045076573646110448903698850609265656471180167548482287104541455316905239284440389483572950161693863795479889129702205329406779507583975267822149704864559981389397782024036597125529083270700465725083552700879584167402479780764876137507573749268029379751352312826674994290714785496402232728833665486810750828388661391343765049116393446683584869840770832827778622608701649316169095749386598627668875238599378278653758972838697161446585160442111894253341338138593590893457935829653444172702326118465890837843140667216752992533447037487259072895462404264400683162583724527154058382050867527558767669472500275662216776094335332843425902649192105770731957326646113185309316196308467993270557794668962930149894722177363087623096927310112977508372858798624730861637290428047721993063771929498306420688074058758992029001217108284806246423354068931817315139236307829014567740861128153767787551334988386162921552387870725172860703029144103606540562169054021601911738997356686759509965456237455235713508216719445509197567903445859325473121056993523095242048245122487738275097981565578794105100876431886234447011686398479389324767922072689565123925703239487010574200699233444953004875131634187163675331085175856182270471087082003916217958373837997792033576399265294402819434080281618408309610276090106849625743803681276402929796801913091179547732247492530604519562779531657166908786936304020871585112701274162332253075723393214190938206034390122556764957482248524187030617847566138032312468677607724258204020077288575117861226365768233858601599079378859040692072130911147343504944154808631352249046224780987103404919944664944937912885835376533286851172997008967691048907170677057843953068297604397973813352379603790953825033298933918958117273850797394417998604022515178171823953623060918154303196167904910430086331239646657218008799303340387210143578613372117704711479168237252984630838472793412856962682723043986392092203721254412291169467699973237766220640344746512782605296004230116208926379678469558076517902317758273238111272880575363514196097209519707503465901039466896806879497876274856119091302462750726698697247774860895627690540212179812548068882043555843349780131815065340245328757961363516396758841296083018742721695976056657022993869752114761746227941919893826404778187518632703906052023093025630391858067145106416209460442123806938026465894758640629306556405885039324321986611479047045392951533029451149610795585772332004397168746867187988235149580335191079748890182116403830896135395279676284285656142723083700044616131659181997392376073559176219984715507438919768354191715013655240364361621797712741098394899970894033517811255889014720363073675072859606510569167096040504507347466460663078564421494823810533586364545049382745788031849980313019231202987623076937318942616635735144754820084280853109353306755795277479646903436199956809891680561875828558810246553268005497049123881073467268351243451030460732991546880924303720433390316714689751906595458386068595792682715935544789055777775094452275607188633701538700181347446747349307268273252533004304627434861460021844929068403542943777960137269722617610159072309444866593611580206848668768088217518618580607511637896712384936414404002541123750869460693690363298377780241750641816207112742044312230203250653516110271880828581647445817539757735890175502363074420851921834367207852962440373541527381598763342861859804945933826065607134942454944768858518508784081961629408905130581513475336657540913259317563596694858675805384503079445694272598864235415380121996269448641796429965497096051552113328659198571397076506054825709952897005108377392716959746070409060083408894667096410140579652276821209685606616443262839638114951233976515772305820365758016662981777287670912170883807625184085081507987895247028983648182234692623909054635177926531812870269480176661002269800274938468291205019963445919626197281156143663867109688115078786692630946641216741142305724551243572463279091741747072305299107079789268714935919318526767090532859787348879296941482124221085246352478861625341504456539534373785716613689299090714169114693534284991246488922069844299703252795988328101375720540229365681248685051213123505853965245652413245672449469072132526753253999185767840727032904569601047772933315769472919208568514778671533651291355141750977775117795324952498052825480741915829070787898677765368578037345891798509458833141426164533325909311406855362773396312943773958139665892316293330818974049284030011778045911763525605130945239819837461558645435623681995884591611814495587980740866253099121811879878305416907516499231079036291105701160148437138972971085577417276984493891833051539418756708695238410190138718353170713458084734971257918921272774561969085848837864820294124661148120351189570180974599085851898733690700338804140230415758658303575342726407122837748654709181419018032229554226572285744731730973646005583557472854451790402950263114183498645595625757186720525790657342076037645245454190201234108185192433422753703003636627986068036663726617824306843658519631091333778889627767437780248982968298450729565633947650819756431539983577639178759154159654032231833509157383019127452888856824994263252679763907711795494223761563322719795362089331633041835580623875297947760718402777578597772069485997230908468693874561219489578828585292020024061661667037620642930558912596569450694735180772210295737552525610251688805565299673356572593324391453041308212756166628183012668954711964204767732624854862353189237352524732298572094166683749698308778463051078578423904424262453814523784584504490572776064620742239085652148700265348528404499950234067260832126935981074631217668686048861402253324144179145966834145176864548322370082721812441285294081188982807174006622354667657896839389749153934173986825105125354705801295012142381469304003798860459142294922768925716516021324340124779579976697689265389821070423536152345510614723861348245231625659022632402736838945680320796020570263297819760621836537460628584290187646293134864449044542521090733836227027731729841361201185387738694171228633532877829409800851598967103480454445208429806976811990546668098518180033645639082480355618814754221847580320768948732675315327281627972786866282309940319833025085530963520038052007129453788318357540450497778991664411361641937518050293948567485800388661456998391696715065267007448475312645607645883789498781905131265576958417685188885211171767473685653348158490502664869751332242720979185765919162576056880763556467498750812984085794871908120474471492154695450086829467352764198217480540999122413250261013717049080323952789945739305237763530035692174504095681053644182854636619410620104589495441701048088485216192785207769961073348740464831470562608628049073804491349584174096692461319318148019441854899860097662516727726406836302202734936871699043895227738881126763884584498649463508708364521914853875557943537201636326007822786933972841070036443180041679202266729238466299378664477893565432455906175304917581708628462137404997899720638230844310268755821615106107424018650657119201386255820273659815042999438068320831362474876239166715290535984484024166570739868954953065633486523975580553659059039721971264666470685870446422424320704729569514150573087816440727633061747925643877849613073709645452692225783060875829026302994948666895129535236571196771012903932044692357658201163600826816022280492367704260852361871709767295054696445720528209251226705410152852699126802114705554501770522532701219444411519501125392685313957895171271119945792657231831894405578832004813826238456331486315438183402052320622959097730453749062126525570965896531004880347878069422824207538791418347244531090617801789463598119405503133494840205087209456890930038030529496683331259518816633219079238601921253493942752197005898266528230171511029806046039242111540522708623965944491935390171564842203085076263073011387539105045698364140308262585371839543932334277924048135439150247443579710939845499257574143177462451028225104126690526362376694630801274372103220384601414499431468747308478315416731009096517932825378096065254910730288021952467531430241968234464069657806159225067475331816738767853788692676064317571009692691695030471601399461657819768859643730700797966761285690155487201773548243805890919871098666380051145521236599153276198451776233240916077843005653978888199061891657475742885015470319550862751957637764346779794006757930842118993225561981304809953733010844728249553765775238738385046720486712277265898904079677190979960587728195987262474323131759371708621869334296650251206029800229181219874187516206544911635613232566813812374662181864963780209825495428598276778841074973740627356747100108390345634031342966442888917791787688032625254441539926330571097023873329865253172934543334886012610928639664265017570379376137706337824117145331233548784233369882453538957480910012879540937963908465308796925241231811525622806026155038085803892423781398267276440011404389109283442715732210590890339026051797857518142062191509686188965141715836154540821312086246613291913793608423281953941919093643661489233912136939788780786921149182445014031045365395551189621943423907008210249930457511453005624719220220156706329268886297608613085246667238204139827191511930444896291527931229582113863893247906057253120388959502497947581520208379575922003052309575517921663817563125799549570476109112610298801895654696526572277933605768020255714977489057968309102973540444040407573000682026443293523031368613607590741463583184586468361366002681313332728020370999089224355820575632595074792801343307735335160791850269616971160505476049270347718127008791419983971825084746954165770457571055817996707993115313948472251530212194179395362245562251645437845120892066217420878529821289368593182614543156133698822725660608586906566279014932075795814820231399928619400258315323743288260396054933960900454587420404756925859333520129793929472565652824722867800839404667590229485058056496159008092581664478068572364509305366636514653560408524671817358768249068831470409068857194018281148813452157719323909242696147518446201974185710100064403221980348082879588604349133824749089319387115990648283916671393089059993545806145305906476867251685199195259260665606647782315709087222795707148847951873093248212525791130731323913533327637276369005442789688372430416989636746155336988937533381243262894159420137109034178841484594671922692497249785039737071394809625609721461511012889072724208987599292566964851764786432686485512627448140430832957029377931190988519491099691601973005627259479836160526926424390401411909600507774228189392310773377549655990014511599209975108867792789740927788390371994894833527328679949564243282707669271864691693913205805791958956014316321441883410287288783884367869473015533442995648298359891740438384331772062861093315938331854514902219150768699827424333842035801878988136007464706889057204789692523920885187101708158752086300858784306349076922400962882255140602954245222596516589125905731192786258397304259763165127313191262835019441182223791496603927616601208619673119920817037554881638587681528303610986295494904180817833872027201660679592257207613999839434400616020841590180378827677703795368642161118927308379104157611167475631109617108182753857213694418143410126398026771143589184255871747167357380929053797279120315102548550493299637274948034629626543163272340066924760497857664158710454215443212195910211944794766731187069977630924408783729797693809241359397605638818200304819142148073239033772937257281519040937207547461318965956625992791819589750101948891522009810744800419664771539553219645515719902341204571908448987560240606615068957940445632864936407125553702004267337021978221438334904060798864916188770036890941810141447695407700013450882740593173603505933769818488251478282793146631246404601112010188999823720754989893132797823001196833287077382784041646743205042656539710392929342744905120195960735731184876137945734272957259006543883644381853302216070611607420201851981637137330688531467270023550125867767208477723862649190162702056600768461242466818559896281384861312098188550223134152249311393701162500180335413178711729380181238692895914829739321535255121980179689353643386214025097641788999624583171041050388820881176473298217909144503049091564365354219869240054756255986481246173910693354804373664183152782449294505903538487841216308869694982401206489465845525009298548568270228766337514000355338018242585195304076747892567020952033779009523519145577749024537296368256468191158853009982506944794178957493658796434605700872934703960750745188220685862477455926029753644454256889996279880896688112775351261289935317897839631082491475437329558040980029899065530803199506245151735553820997188259011911065030384067238132352085233814450715330479793399148633368819816991929531421594736875829233226856968542773439918684265800473761636624512620343591160896663446689472677201055385902100159284673855233122055983595510555761397586922723351240619615995262784525716330442535093081919763774089717665003133234015216488751494496420319974693648149544691567767446244414936282133603118132360052296175887717190061007480528147348597292249356583428219396995585853772340089087370047657890751416719632926401857691676947736705889404746136759917014083615510588553993000774821217302376557763717830619740889078819008054447547235931191194868844252328221425343695979849927554505987023807641971161967371309506855633891165588601397512443169245653136033964169418640007878265434818334631106941947737294914628966947311455129045984811190404340396490601844392670948934040951640330027501587661968047304408000697581992157312679513860227596564001045636764391978077622266402728889156037521943463975245972474905674748667244397748166771522935350571399403538174063923624354090019030791098737243796402415151331642152153517409236172568471184720066004183688226514795921786451503098674840017518844086785962719237440681110716253465357095643343204943712923262101780476788725115167022365748973980661824034815381282070236089138709951727895438083293236875172049028264068130412442784834553508010316236195565659039972916399355799483698125810721673066356100578464038251589222826812230452535142071036748382909088906991753374581651587396939536904805680992028489965897736325933669580503230525794851409802302631958189704389942404642121972025928456891380450282152757863493051869419015252587411495762779348946445954587003148383142855034376260416347600705239509558876966649841614882277510960426949496033332571789090253789155148668661072363590353371945154637402279925970895894633462994152986307899361928757590398204932334842508547594431024026990447795687781347908923746462489752405106181412484314701403050278575535641979300503288124825290873227861702466866763046323740740491605711791338660140553501012618285292798937164797426544877398269434865773650388779847475941183868397927430171049890885475553104188532124589832367385317163364560885673467661135435113967203276861878809170723713700065642765422890478554708846830736240615159485451941332871839042336486144024398342436738229723274827977575758361465287423998248817357480975864502587954395950385611696451143235256526894962872158911469493057224310991215527820688748852186672920159459423455340102694781252758960567426048829158067181552487277348876192511239142685866313416704161990119158480838589087656898296254555021977757786017190538101661917985154195023821113151469530950579429724596548771678360642541042530855513030553525995538553323423343379880907036077854423179683185014548506334188625359690539634367043583731817860992295030991222341545108958293634001832542264294755893993989254471824884983407614678196871483779280590580695949574993502564897217434457215505208605335981289050931249950056768880187741054253439030563744472453903107651366911712923156203999362767921330709038958457862004552309068789837518497370106206049009897867130131395958400937477007475534133031037543813071888294008007792252230636857148081086666540598572633045631185731277569919294125774429390539448374554281382042815218384534327719812402934554568891661663300069577100378524482688454011821182255812447870250257409917537389879380400600945743407312027863881058944341886619181575092685996360084322871567106757564640041549857267615571166520656386663390957203940968432087615568648199534272840587955444133088714837573930565612632868417106035014501210057334694259676323473466293722669540811105704329392283574523380327169760801224814894747815126300791738322391807065545980287952334694887163394179015241761499736176686184969228452140024273285638162812909825624533633294256276267118087317319069959929504646464524489853485839498362583896435781731663436468276945839983001092257069019719757009116443276956784641668493658125836224346012173492260638770309368481387213315400131964387270694301039346426632331247198040672618201729152227044546872164575442448971533696852851737600777193135930310012638030589086528572882213581937928363327087615993184498385651310191692278198434285624401860206503538982932816514682598994348877178872333971192223264447359712063010866639302831950200603717591103076536479714610516156772737677725267593346702354072254003421491256639389224684172049617578950835281956244514673998048478386673115044910563265449968516783429606953992279298566481929535083978002024678512805982589049387920159492198783047706025276609075973952270504399028249305178703942691028738149434004158649527192151415834858896306883961414706265912549721803775520127615978321170124191637981177443213900060028358122045545130373746315165792444858228425889519241275484304465940772815621708455386808564989406705652732032792860509800696216751633500665969431214542892073648379823155938132901621562176989920726460074301618000373468149236691385867725479509150969677526819437171795383182993228692313351753256169422466397782916919097056284442062867694547459145212063257793890038667036149837194370850625090250753357004561650054690315337442060207888511581656694762590670784038562822803600492921008223581527701500895845440307506310685410298084934221448353570860820306043393343627520368799119069306081155923787817395113655886564446018412218227084422280811107509073663416784938352540606654940955857881617779163989444690366044133984489985736461929064258609929390870648171108643744076563510033439454687846238561729571031592126376866096960428689214393048281601531772803146139456664722139565623909673276006654897144744405713639963589297748336253463889796307587439928196045551167115040444685870078561218676999811961991461023851151381541710041770359473889921059308515795834168652362071837738104754897412076466843087312793021775172064739783309895024000317925339016949712838168103915722761642974329775516939379090498822138124007913744586800613034952692261483835868159709602992242539687479468045176143923322077596659300561883101258433476305372865714002933355934920874427124693028519695442515844008820559503355773998456044705069756967999893370367340450845547494308891388609344776662538248113357085163182610846311825314992080733170312817864487783985814458743026751241398494635501284771446108043169066717373840789834747971040235917472699353950824098480561587608739510265767793717000541187333819943373939734821685471212560975059381721878408415947606035042705967345621127969369120459123835890673716338638671100922029685740682373247927547883420130147669173105331794999836852223012912550027271879024855750773295033874466900766605077645769004619053375939116837658586143760039785391318558022967944084225741271105786084847074549986972872363796749315088498640088423010201720001655008754658199928014136744641855951659684992245436145701458987672299464762574995426426389254504089093640173088591085801099605345113540759073396295444945930918874758515510034135973461749167493742648965695801667851834134490596341353225703984587033163671105036826494767357201514976647300799949837972613590648791000441165192913512805760411545454499581744384236310770453464406474261428224408273576692073057107231961723009655640037667248004662717888982644021554473998874707101718835245203601396039279451759820851020443273794927849486444952336071400334477723965275742446774074567051425191211563968635528971427402752608352403670107857439514125061067468374167611519667543104716094748241634798638137174350081321376039544404813810806837351307161060674805380679388768871644795909415827203673879073660981000912745428479778022407209725158492287882170852601520719558082070279182513952393294505085515411664621904305057824633232089722041895149539724694378575178871857780508891607871404944792842001016545301586850545731981659488218077807347857587116779099811595207695515682623658963556336874465569967234361999987604185215081863168608489164198210550045532651214409084399305598777479201251899963858555835994154865076489356939173953653364854459595083323516911930654465564742188449780497956202033415658052564180135752877719855482126712184452623534239119538838688303700141569116358516802017377624841306082765383345177306692021192574008110729285247919128644628526755797250065186414874202505275482253600070294998039198019007675011619411183149926083600532463513777603741177711005040575732261694829225633610124945314380738426901403814062693860429251880394164230075584491609205466802099785483547443411997650623360562026721731848657807759093829591173597768043610960020051590595226712616069015951785950742336620086031431549574035048421226913770356970214734068354109245332483399806271867295755934726745016045839002261815284335651637423444315955934368526706188382091394982593949883494415742126534644028293084806308774241271026335623472962741218061671785636532758322546341776240037048054033793856303465386045280569153558168518438332241780701390965689474777111788804961462846554458320780993864759787618677561548812025418594477353124847501021588406176007874671436317655957598798068741419113878128577606651493467477511146200534007570475048921148807857036994273026637708743763954433323611605822760021292132016330465372974995483889389841525596181847285732195515198236420317356795794654697432002232672296812365360590822352864867547717279318956656737876978965244062380777945510762137694412069965542210306937562506513483811842843017846076978019362393621728882054684407389901443749128600851106601755373804886699145091944190512049150732162194080217385589262226685307802215552104541685678003197178012823917399481512653388502005055921343679706952833001834106210123493744678626500422957767126831824198231992216338983685079498766940251678536827708000624303431344826057296851435443479685667018460367198616935459037650581018916200067612895398309352858338237031842970260679001346899035702225662616112984502577544102315452896439489450900508951662969373561048879379866799592876180080064163340698322939827078463068118295875407282915831769241406388349180245522865713919949223815593463895515278850505553179501482586992354625638212752244459499999133133233669782542527028970609204888719490208060287347839615325965317073997704457695573804114958174511539812759591949757029689040173045470880514283875940982526159214769840715111833345291817537234928054008066789185950088592302274978697163568178461346201596415151500382426625462596405880801652962732261742785098800945954013532308081556594281561180285142193476933928704946006940200978931295190361488895650877362779611184549437337291804225810589471085468480531054249595091271578204080306923915356606742582274603960604020997998045985636145565166111111570944496564643758895491699482884169505041743554639802435014214929956430011482206373056121212522642683022794118554648614542625961723448805306595308452319513427482693259472412291473675309743764437488050035816931863105324000073607309604804233092189306849577358957893127943705093819113395871634301449259516813105427104871337503475183757922566494416039079781038889597328532547607352526782723413884338598764138602885817177609250255163926943401928661789027560489758137154943673776087069727876007079321482784046358327150738987587663227646023502947600236807656255539498557195027225368360688698408743940162085643496204006033638867106374831204810157951120294171340493196498204218342821005537679363114973547617670278798688530956324900613202535241355130197658584472719568437726382865756096263715333959049542576922258233466341784237531950116976354747681507149332176421938836786746019170502130347131277414885815299070567266409608899511347213540293716183699650833278971551271448074869523404862030172716630679566330456827602833478424697627361698277229045028931094881229800027040660898706835383278582243415892086242992305191647906795687901166254602822699915314999948609679071816108044975051405667800207364421540880565765722899112547776618887819696746599811521870376855954898899363558320876415506657919487107632634649405001109119576921560138166494370460046108554358973582298282836123282814961789398722977571020418003490317308214682618983109716835587388743240070510815832337978868798594814755412856250530848459544880947078875082939504599029265535715139963836098762177766311028488166843656742523251648374392263199474786661512316920596612587744574652757217803501098449127867651917625351505748223684025682218801319143111408482709582590821671973638503288529914512572183637512015920519883881546075849611121012101601960045176492268303022812677310572854900766767479333550078301252668410155067492352239913010930955088563672073141545547720655501785272867209346788416839887844926924475421305087734473313479486886214997788328854704011845714283443350799382412704267945023636340429738752616149940714175290363442240284313724862722710526848214050064986557399826540437271530734946396876777340569533605969905814510850094617083543559093311094420148609416950071658470018265808888042088886283754633340136535507657191052574453116549328752139174108117113640123171056264067916183224955608553717086655740695401440940677393710558116822887823635246840917275774934153853797077383603785226454150933112082434185630970136440060979499426750497534387267155047147828254464210426140225994996080916994228727640116443684595879661108982077961206764087470656172745686549182771212448319180662749563154869413125724085044693570839479882170893017509576985247812956786002568741388849669509703725961035207326520252807206600054929325576490273436241338201586661190305552277208170001161835308136520528171498182923498595005246935968033484153350598594835399822965709663447714827880567162886765957806737194545010429401260507044002219922600272910092822206069301784279237099449248994181572803923701297210250660625006137095694472443793223849965401176976569588964814583380492480689400103294289694858995380247617049927310963476359932559461642056148155743814393971425831075513772486633022703233920250480334285087737456273043530412462742972609644376663225426922228334770478653434076472554471645554832565060136207899016435995150069453327282544792293085412696036192415183814492607086810420912305049070208977599810594738384523260026328845430648475203556153874051710053656955474998447798727331615729194065629209387957051275172542195635681400933928749441084642154708819504273794406984395136406877473889255473703019430994269824217859646813379164169014866155831706078095465885344337357810629498770012719038632938247331448896605056784620831545715058363192971588004898026212769243608851451104805566984414587553254331677363056172599111435737242808575974420141947477813042429955791492422828374797938322951465648902845653158965643054800723410608100975448706167829885749260982139440744090291209974467306411387627751136695368838538618105775762179585282912469758855111557280727177492959119195302607065505759856713785832038532407484997856689648509094384023659817133956635788756300233102026448113514527707027390713098548473064405491805344468788655372526929532078532197325068536176649392191283444515130413454016742790730179412100089469617370795366754282864969200209775313006610050721383042940034169379496152143513482789683370624586682122465805203953778859696219704683176453291737881530723351626288689570331991086339145387222606113566563787685602774626947779643545311292175671982072601238058463541566504824240708204664484376869200459109664442345898051554184149314121311335036317025210539870489480683082885359799517631366369053093254202101402113077840638772410885408674316774020134842512306163410673660435344806700141680394332096601080532943997419025325146719893774585001297670615762252032670101120383379568636953265632966327869157615742214601895774067055282033739056530763946687042613789350140822323302311738033503428003278650060927943920061123781264616164154945767673743837231234369868086455069216407461434076975438080841630263488273425391309789178397504385061819300095469781975408327291818954101265072898027779337129483935306447325498840794992570354776781494012304272781119877069871554610907332803359751940779892998061836018829809348630083397032666414674734641309887764482234667652839460090856548740303907272192640913578692992693222485588362519136331517866109486309945657773790064621702398216274267557107342186070872719746326708640619129517495187392649379392071128208070715602884831470014675494084628504433853064404351903847926112493873139460370598572886535008420325146456185601603450521608934727054539584591174426163676012213550267537318157011214204708240211699777792050597518673450507886845213736223946864439422257846645595635862227698691625671835000750791791658978206784661682073762075754681631848738442155816842977223338354269580733215827469043794575044724757264107431896935545199173027386298200341148867981089015040016273152600541819464087570322651590900755927146098554029918596109911793588327351557132623537362967808300993644259010073497225262777832496842183306920272001540170873640057837549402696756978362805012273062835946590501155706851579581193933932475334302063753450507749813262544316406945317050986264455686885224705421846556850630280995511495276546392305689858574577049112157902754896916338714667645908472249082912424623230239673110794669692024754406090344428062532003954078573700988939842913576115566655380307204502742079579162921151770172532970201790741358323420257007632931569695516275660972236396228376958163691568532832611226886724182122098980534700411831059372238621359327074465802045061088987237705853605607183982943347465433903911078490911394426561276358736926959800135918455567210166975332154707075823623307327696591781415980604643547262614584726687238769163753433827765494396309565540074359299149763231719021175054508847889072761031158721565651500322073169170406998623532308261445100082885694623113375901052194932799099057987100055601874849841505504054656931285971136189299056781241794354425412801505001883909735439980523075433905233989514536620728933184208333009841627290885824447201172667990357916468423367496773087421861701570813478375527052659748054345311277305039747900610851761615137156070944506927375815414978917155915815641448933008790922738513963323917871808010161677051998363932838549572180173682367962818271043639161567350005491650109823662617632942519425351229634293685549940814547591076433403315917903550315010243386570704198439551319393118026124984009958843531696118613579046367018145110440261463904258751189581512747774991307579148025991030783353359870257552197212173759618694977018552391121573533484140895176328361544983818470778247883939735844848811393454519326090710722099944000447286447951149506141998565757436993881396155728760459959942155198257673374387940636702276612517896725038452385278004357803210661387491667699851272725099123218971321786726506487575226687221454198069262445363595926832725920135386867877499425267538898998331150040167892417066756334786054779439647000085829594423332296575911866293733175533930402416836416334512238935878889216610382916732784181665924293702594445345374641619840010254709102916453778635368900127260864120059737779746631775615258383523640756192233157617478283908396606961615300237782973967217161590336721103830215008258421446859155219926092941347664180975419814167847246330518561640643101193808845322123122204050353110986707040468874393501698300342870153750381144974222563640222714889801338215777866278243410562139940461499896886325378988834871526648363298699261513465898704686735043105589490866721186504246004778258193797544442825051910951679284532305795521173491868963324329517206224346634119670492686725742460970267754778135614794594659022667426803960470539574508715332962259674274245781480751001762345986805369562021548255770926262706056746415544046307715484495767547428839552079954918314528864637042891912621399616363493609819998712621593186979356252078444119284482577525456958084338160226630151601878797370026073453375248741772195101857905234235817787420260836113833371939153629134255523629736712876261776182080765409190700995528966638218897659474577776700076500180210696796575363594673656205914952401459634311762010503868894388005055347654045860648127826260506849271954670989303688734877831838298755705364104890056393842447948901428698950447287679644497140547931195793656599521383104155674307849711946995862445345397182472547442950728184313576400249955147731435290225253346156927672099974740429501751319329375863591423960960301562732683200791929277387152806685622987409358180312701211957411786288550459012210518586649498271575493796050997910049725226477941429486096775693052099703987362847396069248212371060513287110552089928923682537335176145220664612298462278527679750658940708056704629540190621600816871998872368264233472521990468837376450582543987649594263899341010691271996551110516247916070763646291276405285265420440545736285425294517655827327145565373940981941840256298194704091003614539988500223097880679297464424958684489637171251934671005320487851689140090236000917949109189134999508504028687565806122945701149259776752821699932477593931172149531806454699380885647705390011926991553381735354956916404289102194070909134299796656349183149940982039743393901698395136943562305608255906320900334179604833647489582199745963821045907098072945998374586593719176081225402434244715938663583925131455325533944435335209515867565834294944975229719149277787491235525885723016278174963829723735763352337699289138655648599244824028194330592693750453277694481438892326757023255203190334872176499978913775047957446500416236192299141775635631260943087302991004474910351642805216417239036772959410162692709692876654532547734679059506817408946454638673938413234338016839504290755504603310747265834481651203663358469956808645782151764632067306283741545063486391698103686097058212137400113802069858898743593085723554215518841201661763450077560485855251715239145106883931477383495777700356111929024531505576350229720052864522688786236875885790665934190280128707724945247562766152461404987050107324357287684286164894172698910625712963027626761643338960407775604195566062842539986063362807995920337942906884025012803205571833704822605997839588548162451355050579034609685826479100304831296090660509023289671572676574062319705822785889720776364127305457459892517408716821368400333271946926441999962970673370560864450090948278443518829892124965558984235012187983064320505595705409474206639137851263343805561368035693213012073072674265944763316294415600263439612226042839444779494788576338720152643946925200064023761516951109488674896012099934100820272530237536756924415548052188782204427966202628830967266813123086719083468777680689065447778257497791370334303328328317938508159121299638105213313555818074542066353648674787354900732065969095480366751003884800003906864545119480414029450079016166974667616339869163145057834232659232650731657785626976513169701095205647398647132758068263799678595291503319681078918026771196161974832861922167617572644728717084432405569590950459482970463031823311054783009510683445875424617113404913794945244178312126506236276772522182793930109609909615403875751874630691901563626048941745071297504191554955668506896528943701448381494228050169144336692506141168834675047828568247509187967697924539458717464013099681868465711427598637825389800373570827303905969582994199545741460336184991301789893220509900610231887786706582760024066134388286207281092751672857165864833109484876437105559473152933061878484900531647517387822074026526197785480049436918736951374829630450012943976632960025209519875666438422832690745763580000268524115424867841586265669233817268377696110106171643814199054091956437987184045518646024747113761209434692252884704008493363942588508393220453064219044958816074798182641645320655496577142285028044788208745924937836871554305678713998946163334289293738693829566125925209555699514265635651012344558276936370116234545231198235383674646198587173411790537300747673144378685093597919217495722281566269109951336964718771225192150123779685588560178637779982908273029198152702843352058597658910255113013171235195798374670938722064713151184330310362780246549762129206619073677214566072550979242235182975304813742349679204967415185573025401628571373210515878041385047936013610667828837948678877569084032929453772275453785775828917254009344252986505749641451218689158227422915557309126987714864795222864856653069049546910316851529411045917923335297303970238703506118122626513325204726454175206661916349092760847002033415375811867181579186779620537525800807205068848124068006015309936187377409100037256033021729462778136232424193904523394422503124404364003239102579709703956099009437179044262487253690345963752689033860797828635580017519728237881322456054547493975588031860315717037778408072179841538338682332117265195091240230804744608529908554425799546164698464526439474914635736702471824448440121153599437327312468990207534458197392243725900160743758431365011764061026762034356706892084250965253696846551469101949836379780007195802078035326896994478994443652452211189879685314412199088764542834656924335420880090149722454082489938501007187029952117879720043633429169705562199794605615353663274895223948744301251868271634423417435151353558418722811096715252279505540791217498814997465616914433639688037966472239644425246931775953041436963596601859344108788675107023923915734678797631838864902182792034583317641697560386261169505766621013096825898647949109819475985493485386218165652516802895414108473777682474273084131023576552634840377223693693565316466181499657352877920670700107601339968479883530695275047706372883788600541172195091897563505160415783746747669845387214229405347585696699345741189159863762622356540481640488966005551266854935186015900639616227036148785088564870306216449072463980828766013617899254779430108752008240333111749408465298911864427260358315735087421031321764583099043156361253376714603428820470661798229926564871540887403492568680037347538847961387265273817225713715546081345153837465692867074719651677274408895391692568841614771434170336812875377858370202716179300790329437252422488829551152723976640922550808215902355920902305115040079396942727924604781967468834761375079841573687955957464054057123686743316308312736396168464198154138518328925659982238092507180687173273087555087218118820333388037564512848637743218985528823975481530973078737192803852685997689508151686241087166890529242352238342569254108165200375147436710379892621005754027052745686588324711392553887821214959674042928237720258041055828303393061759497627534926641218534210955216535731002270245149421048038100622859313038212524830925958372385106331096951361011389431774895676360866352601375776423072854442408704919529244538547341468934193997653275165846823226764040014533739924047334242355650934683680871806664490415942498798674605813099508390049699635207554444198611312406393493432751590532491488962703278992152031301121312809841285661107491030985513035923483269080713561016673219340587167798979045472051953550460909083634085372126669167479223166434960063280343880941249386012123084176708870041676038810329285077714141160291678656085403466333946919585658110298272830264034694773065771252363814526111817938728939968656911904900671450486448342596434304292536073522549860844700129323002688444931222317261433807029249878536122782928362788588644143011673347208385088588958364812972099119630108084737881165609672701124504090378482944448938946844058330093876486703803493905059055574901929232294062198620763134247437055389214448276590964583846666628923834377476163503104160224012518283458889023873721616574004343054324593295338941761082909933116909374056144011857680154550768887740193506177490569517290309893489853470953833890422593026193235054540386399217023485343146291731931981644723230367437620740049453227451712322265052742070181801439413274909488906052464267125318855123331513097969349609282498609770179128946080749026820723400877538829721124127503840860891195268168212174293028931647403289811550310344282030543617529436846252524588009038024376877117359887883979396289277680066595370349178295223763931751848271693440061650786578340579928582634359249160311792373666929689042997698211660071956881400204843766257433942948911933250312049176827885698776661773738307267904930352809103444525544301164593493264094869916759357220689507512681644160717998864669911839283316325505222606700377871938031605516146655968954072617846133367056153424592544360885628292937199313402201093608615580828020215953029591726154839307467163323031010927281282068459506094937839015316824712716618357075207552272425280484059865044714866178723280002684704961209497697341040080102904550439435856921109850098699891643042920590522845819651834366131903419706924312189249887518220291187070299793631459449233812946864067078958253248484496643242342307223885136979130509691119192762637676195461756936147032248534069243650408240321774937847256127859324012670952859713326088312726250048584687827439425621967248831929027806678368319472987958915362217371310119418927720922840191259898246008632214562537048407406579328398538646432591669572578338931952763775172165461340273017252865461414114146075995374053169318981983506350037324020587549481196928706541479374408405639552005289730590233564338423714890020548630297831672874456347038236349113578087948579045560171982409920731449382379891375323354584011010567034387958489223077116565304464251298040503000931048249618838743369436217208266381301876364800309294915028053970753813802591023625517220305245067950583891366260160012265896326252749793887735233642885856450151073849986161482799557840270740260892873341873901665553176209191414345423988386314040721359242019162902753999895021567143995715030320762861432748489592584862845361249437217185240000478163974810458317030818321828106081726014587669294301027247977987437074532013158067323700091297998287086471067400061516471640007304285363318270677122766005167969583163319480132649115864719351890917191413634771063847760758365090271657867466297875939596292794321847399097838007226649563503520174069950696823952351560180478807420096130841798635859978303844547270559248188952156163224904462061498854606390883999364878800446475855852362139977773562441272310001298729336369872620686726954457009206020421431214155800430657759561362559047344488116751818516593844626450148664035152360427174169832827477817912724890095224378376676197128134877681850798906776972404912509456962032513975627033925010115716925978561648385390551574462917328745529670919169031754870789654117392388637509549478968949166451721049711879307736210732922547436539585649838279705040404597913156355213410550866720706473729828818392464600171140373714038308461295092190222488650469198369043907755178332855544458909460263958083112678759350197805311185324899074472945563522861054050269705540537773215837112045884679660635318580274093318105182259892665683004640690091523669277320661719276248250109448905580974292553175270029019314939229422879676517059101834327525430901034373134390107586694825096210791077711670261361648493740926103883061708811421962779657535258713279847005338914207242356713662501412094512601208576978988821518568771852883740277040568563244755791482824915756314085411110857902217261491855664343671302876484275191194435500724712964941330381812367693475921743753357779838118446546744949817017517434499187187561267702899592514643951556017245286025483259283331154161777337215933428882462335982873624841171019768555921554871671974426261891448928983345446237574651154257905232161722441361366555534443400292831390644521650658563544021417406791543323923534550708359814068141406066280058895024963860068220428944714785555080181611827119190796201155257732336863408206179390912405005810576697594200145963636550006478400250205102980686134942599823893470895675051428658451457613995294203460077165629560726056277093235959116815636215249090289509088573346111931472445573443671111935624207494740469874716765640041280310881295641084371219893396884952728137461261112191798513681539292281249477053758743896617589769599034639913646954376231325276062925782070077359830492137884906327567663649789332601698216176572773625113069911901343668178434392167655692209076261017740385927089301151572855388672553483834401022907042553942138065340328639579486091793322173998555113020843489374770738864617069864884222936659850812834060295589584159198166319476440651183669235120172820934410991980076107313793555223771857410915425384551057227769885023147064704426885948790620519348526994941182806987148303807003322125920300943267284838155742405897871204932791497611317760461112970749388817370982628518903435809484032092078218091714524120463577180913322103091020518307748682831011171493458407932211860689910220320576518551560756327032366303336630330247807121191461191708751010471289803757468097821958001465365471319403837218215402898034908148903771571983621106581586461831669639714676741622733484033594125270436728482683306208076970255721742012832100929949770527343806977456634517213069419080498572528436043282681520697824367069030081391985712448558565099665264810934617468353052798857881684389805087456255948269233547074136073668453645949346203588282988716670621208072077341040424694583558897368429356362891802377343272303440623837532881015160026517016200575108202088019823168060817256528265239820840773226208077649844882381851957469925896907618438864364861521542824822168308736738454551008439645255887853660201678744301104619644224238044702568419255626505081245454437280200504594985238280750676741322158969605532043891860556858314341867751385221553308715541128877995840169288716240369679515104337656441960192214743961199720915351045122199577995843551948333321091947214054678832062537876380956373014628572131874129933570006970645924920851364604773043139857543998158041124866221110119647569317229170289416365659747109595008676631913994573340250964001206492591993121738671713169256273916181590839770506212339397893152373349816055512978928209716015197828618616614268216049978949825928266590048670606931594328813250511298684228665355980412940709477891017317632306894126237100189196697390826487688084865268480537522130948314866252920759458087567018369673843819542444731386077351671375543669830464642529820742901479807138251153168184318813926473155086015730541923660601113995835196321710641261666123214212203969232721976220385267512773421700699102516046233962424523534005547884777797944535276781783530218686206735173489298903333442666278956210889945472374569397984410219526779133920090735636423664592498199515525104118033635878744215780700875873677222295967796173722438962734366214744543684054481222317257248593634364580934282078895624819809879249845161535838262352849091421763405852892517772278415676839852728246456475224826474995650518550894610534406579649197642319408516048179458597096454899320044379858930124820657760450731520673104939895196990569046309479375653713444849290589044343758175107855762664767186921648193520830977384323273384419908368980446829402737788482900019615649262076760410833028319786846871117797492568376189800513143339177801322076923933741662995853380709272270336468279372280301892078462665082114950224482063490206782623083677113642712249326362668588288848434410768716332933530582764873600868614618674005449458320403647684481066272325187152596129055471404381257345824244558099182545961414227827568554151799220437748057769655350508145102989766790324785808296324192081724799077846224045038858564032649962868985381668577360008923901722614392398544461004583164455303090019310874597525630597787753243942313755255835828262326674298749942621734998184789659489523785240642064522007285644970786234801151699163183363282953465942050825170581992921130392251574625091377530899030451488480398774556600283187818961983540490519673405305018103502081086892642895014682660928656516025456850685346385066278471976835378071621059306905270334182524482008052325422378398756551072733925771428132805527411263315672166602564381172581056723045735362632646063829823191568703140294515343911576909422119018711906492506332428586036935241853647390548309579582499841599539561439738043615641006949064495677574753520089556100641368373443901251955352759044495108646071283318689217572854279732816815896428324960053684032462564910585456204192352771384744592926294837937204255886030339942797342286546829539843100375451218182962404102713643844463221792987765957417844225564260811901373948555928137738928127279397850965560492109125929956956663755499014021943298114446851290242382412577740175475995779068902510592353844317146056656825543023013055276392362930703047189980935466717760040464397987048131066397908305485994967996937042637279212343518652125225043522620647788120933171834929874313008178533099839796006198856182435057068022520867406090273967177515245294607829712041086676682795198065468042416029080394777885066104243858524576678741662923884876961388275316654257463494367194702660800500532348895947584488937019147806454472285660805161495659172701110061183884832378704311723474106292558188370356287119199363879086832116120606771121063007969171197385554770844062759720948947078090611943207133693444730972622214215445051810724829780163410258844360521340012035632322869160672897652755928799091082952365305941673376688199908885084432342438151411867555176418658918482926172001067433281927990744983599144822950920180866110768966282361438050945027197468887371966820454500738507082531819080502023616500880903630969316565829130264621745225328175250148709561206430849856393985144898245758445746094457499217216634043258252322550522812182498423389318956237290786564405685499062206153900081192983051088456215782956370501126011188632494907045293774149423224317780111285987148052946190232251583572388926965036004880183549838691005678262530062351993092786409375623304038147424896020426047733856117215169037191016129983127502214997146889742804220521548549225117039402874183299040800295372043852526674503624850858408743651787823693335689448480462791809264374669490909787147838360564091202367056959620996320091466494861551966253675010824189848598105972925651580675840650163658860256539799022902628303439394552275227212349906683648057205061220007265525884631726359156310269853337711940226742412633543439459753277606125047326811515167815094482970491542231897644044040462007252278238023840431304730265932807050283007528137527030287310496360243727017200661223426782754097789721454506126651926209816174766346135132278074609229164439519651455330403530265083283806822969307413543991776031078419351798668100270058297977113558682397153517622138853117644746565561952068219935768198340979298552868610307596472288616886292676224084616978184701988333166559762437284004846792813153237485778260691948859830950358715787829060455727191035399431687829673645235148104433260131791227149131195084814126230707101822007336962116984944074460333703039378638963273253480750288817299840795059298005480526716572225381984003675492277454944469777073906105255946961994735894892487529450950234146635274071064854223145033875959647057332818151672980050446388335102410861309405779348030616625532781090044861615185298131205505599143258493805458682173744598221367725643930533284180850879767624413850087757039508496799314714727916587380507406543598933795870668242621018246876183844345296357187675402835705195992665935485300823195530700351085201811340039368127344527168355503408715673469385434574497588834205621240356407394683050650240328753588873281510436952552964477180667773308603588330240902086924472603311946475366143102337539299764485830657037876015521465212652346232264205350126077404364095379652642487403565493459378200600843819573624875467999526900919262635646457591128703286861373396318917652861126746140856030065400544631774940551613706802874693262367114206176104289242592436270670248315848557676597826331219307446416774360898442287205855214734594209824243327886494483983857373008001952167256950223655120539763693514320907219874221363556708056797214740540112475611608498980959728429477324232935005130352291796970583085290498908709021698497363066337697481365088299076486559044027561480467930651559853696395005333390200370122915817574419154667930241083964025935147718194601844123233445837230169352017052451810372447755169623697526208652304781625133682093504197025643937579680298808490879021608835600800810788372724860385661481356603331989694340628405622084764304545888440821519341501726331433242928507990872636020946245015651991443706855308256717264362499949069504869009822103707497017492007203474120516997105788715741068416235081702665828913453973173502730456870754425408097455852279439960891766480362691127334363058013530136588526989655556294663122630875376225398680024594732916130410850692512193609617587378589705409479894341327188289921108420698743215504328819171538400543831694874957461334650726108939840392159757980821937007304774624325519262259848479614589006084625748737039918653990191245632282618532186324645720285869576808204407320242690981878428567427287549839710650150629465549462300870453608854534920101316055643662817957045949372512471710474394506208951672673915367547860681201134241206373613875504586039374915577929551605290365480647555415686701328441720674495735376014762409827729893085411765664631814184743303785984126376052088340528833348813201422670822734766147230795736224972110991217465105668057886625991157178576457526236876289843497966383170256499893585889222594409542091217525559329486192165242416478433918425089025839442186864118571348968073806463673749245745855860737665933549964645510853487626441286548444166690482582934412327578531423036413619916193147203130661055299653700027230437733097041605535750513116122847096747836197751003007486807258756875257184931590411821996916265136990656292323744391284663364057350588219451169396361032166113073508523213548343650720999693842811968082684719959367257545667416383302709877292313510512606625241601651571180016361532421510923964215439307202388932942185804271723508492692633269029860775846486312204415608164426446012796641778308899116467266449714067621504599757411134000788166259399665997017374794499046171307467418324308705764122029797081853094303474900206487564577456170861549252758087498004189702148597843645518921201617600123830650264956072207447122473993338348994007134122195242855406988245176887337131400156583415833213563002241792628590216402963449583734274017133268191669410807037080640239152371558350529700029997321497266337365754603098063737895918265131107789259865371974546013961532380839717609047649520726681508005479663729124962903661214475828498865432110775615454036561753346512286787329373732974317772379515141197844022593730259271450854402866981108897055192855306033984382781006352232170611900302573002623222030826869405593317437127144137871651321294582151154843399824252322274751102899240999041910901804239524931201857588244037088933681494027268674317003183333882400345966720232920363333305898746151863349840245845553150681407503208342350152237057058118592160596872850007598105658671111310686794179104319008574696573025426149244389481168046022700094846750249693223242081163433873520938930179764671174481096551730385448860901371191524056216661768681894545340165240554997631067629196324531832490061532372611212636141150684885540919500984754600749472020630538239899163286748151155470323396520402031621787095285925020024018401664553413192365462321873988991863650088156102261669473252368588441394414702647779351131443900367627315534492079472022583301971958557942228418829094728423213336153362089530221171670009118374960605658729886735099076237083274324024329932689911914930090491092500231880160686906283898445494379585385244365595415019359991318633753257506460495850562108820066271124296438169872860978985993873756943351131488212268964595316851303435735194238640407424673488733669547367596371689036494925929846308738995826453602183521756086229849904611033722249041476906626084539651629442923095662422625416228355867729000297329917496221323318712549280809088776052291049738607064513432270469323174426175447978402045133952081420643116968305981997219537195660448215284826636905948012916049857946588424924692270238823683443467067841012772389637003648381148720130061320292780347221048220196787127528283651412883891411232936087481155940856193868831626942288525743620032148767018436214883218362815797496177512842498099549893134771311302560303890449837293199666764014163388264990180643574183911547461687686194475936855431390211335112561149443000709733177765682456317691662613810041525670524099961243581628788851341092051232773646526901821541871468038031163320730486603511182719119912720062994922432519549937664436315551429087557464562840090861201371798763968482472864052602580282380145808772944878735303051581467248363424400874696453834486237417999962815900779055866760879646602977940416187218644905885393773934093258221805199475531646877115960494179077569389805155702040177877025672963970113534354513325798816460324656786100098756358158293717453128608313238091578432624293087435429686515895811418591082669543381725144705695263590642458375526965455310333854447021232042903739828699044086957029295752628742919637648853557034168689708133340235877609163389403634377266002780237707457367129087062972164536532089550837195836037210183882377157527371661826834359862508703281607624878219662507472690240561941679823799097706730161018806997866282783757233657128482203767989598259988361146404710304987064890467691666696034297202267231522517431164076233646740440136015094253481024969979999125372921433039843547331666426014343395439710208875343606773983523134895602936136061075716679325195055856021425831484481536448589485539413627887839932435991693270500657374688387322844671236270507575882035161457549591627556041006535672800558221109029078148932316750487937069306084330773054047446902671085389637292741244126944504454104517005218272789352435482304296114016386726381382843395163718003308734438942531704171642531399907471556104708182633678420311474580702500693341053458213090954297101000150448525414973351526515253950681333998789849597102675330038986291490441263190296967529440655814912483071024115101783949317172441685586170768702152906743155157357502902257007861563197317491284301380236686526133730139902034513682857555482853660742242046849608165870311675031232001790830125796014617052491250389159458529901714992987657268159110123585304929431988531061958233012820122564010533479542394252548508531091487290234270495920512605101097119360692230723490929617937946719302183785218592709928906306349738118520751571961499471114226365415310790801341907886261277006907310655506346138286844739747258709793127716404677831247340665276467149224557796788495341775309642159916096445369666141706334779434159770078905562984019398342511750289568267323393634114377328556301939898103327990100077614589361937408977379768571278940478550522649340363385109274831644539474005368745285414190984810573002904420610339807544687632960680530161233031759480811313133241294683762110716602193039796902892199733265002355282864489286380453845115387787999620734247971230827269684405819707981191971746655679630059941368629566413845810381526956394204216440661199406077281229127950163521133414916494909014893280027342433258535639171223897424644193902371624794108668601947758785514067005425050652698283933824749413369320814891836890285972398912444197142139794312897288010543693398401553531689345861632789583230334041940008874461877089497718047321996483786173235278416864144607357225073836743034974699191541946160227804004044270974893211362318574500457442091133626943324238546838082588607944134780072676250601404929775119944718715627518933940623593393169606234441974883641952696348960791760645862495818441652152284001347603388078005155020902917510162927562309319942510035190058563999239416329421799850467810798306862797198576735674469721578842356775074502250649254756556512093166051486154945431674771008678920403197536602566683818836544336296059843430000647257896373038859380680023350973683882000733244066517880951749727679252495899209875605884595570775060023480127055831040884649568694423674548447449803613550665942512408933966435643075287701703357496113334455002367871522447997392579619542695529461689226261265279057075157083761353199012852929229151849252900266604629959894726757514121258636525437897676029571114309518084060812108850571542055387286286357804322098558267601767021625117002213991804486314500469036821570640316577646337438666340034588865546356683684105978486072350687992439321350058069035341709140584529707955300041439825210699991440027698355263735728555808308992819789914829236367688350624426679752967021893840793226639255437532525276645503847977219111624103897740976591953475450254071708258465126064975588130324263814730180705125543644661931238983166070704760453329782516052948811276900990560160926685313947039513457875669928168082785418346314632908731343790879945570950503625792125932798483189954539057775699355462433594497106774566730582731138589345953852033819136425371940934348585800966047402938385168117551514218978886972697304190841540632244362859838762127255728326860448307635470602220496425960667518823599776950426688916863490936645224713573916217460870686916186196233401588361162385118857635961984208798363047077727089230283224892144735342912067571424299764835686973175078882288956772477203265920131557767246830870634223157100360126912505307402755555771770520384440939465162851884016477894226726240077813727399878937886401612620268880742244696091271223899512262880681190458895531138863800802413173282161641954304207950413598005164588261578385275014054148224234108652647766614023013903174157723187093407253718198871912583926376127221015616548219267557883354532236318383180473912649915426783491346005602509682137162928142655724303203543997001112773779320265018868457641408352275970311758561475294572441844526283172657961904431150406488479518223478443191495922737953463267914693109913941367666708772517913867143717967218681014387565114513333037727095437791944898307772303524727602808980160565427868463241463331724200559203833029088251698257425625598792239712244549065338745228419683643972468354423821170245812503631889543633168060431367352433236493201352202998616537832831262759179026720960149113053299624949951862509409740446955542062378651681289871620919862292610187463653145019560149497413953207337799012790663126428642568915501460439399716481710834918764391940001637280210877247976511705686025585607460293186446127471959742430663601326724092557164044182119025587930550251690507322385713230664681250959144337268581538348426238290728197439195360005904813285056392526854727191767018503030843953904873552119232284051668201453206920800393161176929395344800429174647321315663105298651330552550059524775666511718289729867078372863525031947686985026566362380575297937744482518939021420499740866477543745387884098977539358694949781786077822780648501362209191180964399057910822284646857850341805793472241825273682489885140274805985849077377553236100643462605868577310001844965163086401262257122745823244330942204720853753801751544153798768621492977709886844654882284483537610739640617508731568141619519649082533388554505153533633757707648713086662097300075698262456776226261835317790698848139776386845032658803330956848315887536278764851004531462713537514390386792167309104303135171378778152810495914055962812860081898077427164930992996153709887455327029755253241720040082232772352837654024338251031377468109902885276804700879802754840381637558532360168383809864687728433162866826645752349270825388232463952384840367007952084661545758080317077124284088530749986095087563118462645329666928847669848429648631348111316615496584056320749627625481710703539623737847561201107647278715473105390900474922960964898093600437555998490012628348455540820600662596227389986383285753996211383911805301326360477972504790910865877639238317713676801047984460486311629946448302839086500806350861659727017812787863207102329143702369175069733650560598764700320815023419299964239003349022069131907853127978617609137617159594841086628002188013213035602280405901915688559858074172921144194964001657069256608728159215714539805362111748854149328080617297971974439028465033192541497815355088916986660657143273957495149454513814743742665924970148639951578413190048492262110788204272115315754125507867122193846490981590281818046762210583400400495035257822166509319495837062552746648361088127524067050064987440557042694204506203026236033789048695412757734489189850517695284389717929109200878233095534028147802174807626853426921003294792436465916482173422045988780150334728084968507958229606278714404404978079206453390284174019895025093443611725191904490218737964098955154584427366332989987445582846069867673894692956605616089738303799857364310041905631594258063290328513265793344315031492097533586070852176666588518377673052441715046889055142189840817549226366164520705045798657714832456135152185171994636454126833902858067902040471131610971143157112378479337597822509775473099774482410045597613248521848792030753976906581359585381699254867634521699342752241960701236485425958471434313392679338428333959807415451739482617041175478094417812350357544620317721761555644636873311031663814108617779172050697111053511607556247998996247275902093407976667354233243090562232728112837308448721724034031840073566271709403862472985528571752866895909692721149275712948335792674141496202386201892045456771056371749609822893566902684126323804809038634581565109498559414722053534477465746444498689186782284185196800717381267165886401330367529384326548853054022180610569009789159845775853238838313163841662338891487069810902127190864038314576161456452879237026606470362891961798144490460207036031450689012870344033410589826995831443130551848375918535959962144662394399371236755856828751361614399422274128774101773388444485777155241059218360308050864062066151962998592682791368139371972962482825356536045119220148581992787432485474179114114305032377135837657138924604375060798627293691943848145600540192940211390062109542694085515147497280731723580397952988066791970492914190081948162175488394632290393575434360051172951069119194498442114600442096059914820621760590285592600252087351982710471242584848786703875185550076678191046498623957109465460726463232397685673181093146381636832693392590823868867141481821575351110640194312634599591499559086203276876129691303181309542614868774493546561537356118197697307518265602274909061777031663632207179137965618230012500868660309865287635922331760639514607714430660799176557947018128092877363903788160535117158759414209288153653918961733229107800269698518965977308684423856386127580381048911892653407713416905894025835228391963265054543009572981891801228024978984133254667158718873558747550409206563663441170871119468908743412483359919019251182656916126274278040919309238717246945744146648888669037746943827454133563421404012914096897558952831534235814740070507812243668705584925642740723552895155738809063578021078454440998271280582403020914024818519340719100134943468396975873650119269216832557919596744087422590388339061484340663830772767742213715994500101517745218896344887155455240854379546158979816141476004711596454650248763762806619158901027808495359361174436451761914931589198302704606397400457379527546952103063070103409213092876348660843232643199554994601029673840257680079722049181711610227264485943320659383347985697379235387643593372326532338665738444855281050621633273838943712513634564999062588526120873999856453104499312712809374638786075641988836762082655195444207624381524168957499642689912135958001196927630386284838703270791882206884149156897722192684495596860972115021350160238509882024308512722674398470584289289949469780837548858070544332461270646590036208128839675731986364600125373576455895333791799775833598406406986469431795651811048773903932316327326089040358219646605713738421803060704425248679014205063815294519068820555601663012047465008833883545398142366060594564686989062069639806785960173879438503622918729361892527957604999685850062584997606371285027541300157469806325978575713568696670385363995643859152185919740055554680830142482494397601718923714021368069037591401722737137458592053793182399362253714746227065597152085363408088314508897818351403261040051317768996624441962538551994553489027856719201629504500060367742806785123870238885475258743702935493977882957545134548242179616603330859216747656817025476664342585779249120234671384551865380279931120180835616111720591956260162887016515206456787921807066036900112877752262940310975064950609670043960045880867515814566915938524977521342482624346788894698919178428782219540497019918190660005822680623597974762224822138662871050826967999295541276510708005114933211829148430725437692607222258264148138874715950127631117814360962085159585712941434945186999272255703190195808415447677744291479078761881320903075754728686947383377551817812289311191352136797886359533438446088542236979503922616369427908176891014062181920760394116794190384651877168915247295041121958974776188414883508814175441411592733014653357569138968582475369909264624441217816816339804065486705127376282548869963742709631674555052880934914684016055985922118158480236006335789528724296211431884680286571107462227283913733774451566691838654813286859881111693236873343656412730524551579784860561614728717402465169551880439404973889627620842681103340261122607352006259372925897225443578692984399176319306751976586043481426462898406738847409004340765036115773885047125691426171992923980155569940775220126637964577860001094265347405430731200033127200187726286412948550897324726196550555766860123346524879546566381881030113349924469127664771648607922391324523398624327880576847480395433493090649363980185830721118255630400586559700515084763019788747519754791053407081328683400303752620246470451975941179356584454472286839320359230259186681546287779641790625437555267533773524355306643682959626141341858165245030102344193224427968664428232883025884714571708610429936120544346499733719359786943625563667413262226948408383338294422804058273475128037337530252821803875132481101653702747156503925152808304185866862304514879040553395530706067186015307455472749445352687311033435780258852694827117976525113898863689688662723336715243591237919005898855696520537645360093508617745034804306421027812445528430332220624308329477714288523748125151221167642484780992532602883778510208225006666925882879107944307100692135555856385032136571113101942240109143319891631310812599264424139764337567276217595594717623912457823011544729250355256047573711997881390677412176101988005573671992393575100804942365655493135666131875687921072967528109300338838490710804240877012796345756593407079674932099835391931048636452450073112072102540584626317886979180246411578193632474568603044771771593731577884214886373432616292501013076189685740813632514539078518837869119056902652027006794379466330439058135415157161135487663306638022920492306896544052815290875485924517836897245832615675685922383600802663588169804785952157533566045499231497348120774388060754846151026270442605617247292970736664489320955368971304810594026701576339847392860757232280715489013393138727321961657287372387978593667462653998182834659588957533402603313569167786889514675216603943707451517556083684615850145062200785425701238216555641845483218334758605076839705471961172048507156176890660796302427178838606306740289533602555497725980120575803720960480437828912594910424194445564404735517062836113936711386051989275117233761639302312997563036809936871465791252536407321096369494787685001352045573136716738819139646949092588784604499372032863365545448520820371295582542399674501361097833194117078419575620300101029356344163479632513468103234668108236684175030002745593109137450047878662922808072354026919641746399227070777286539433662252573865694610796234619691192758630125646852858188947820575599383042480468587853601494525568525629303318216840725017948151930296661395077229886157368114737562599266088082634755184058919798317029774203278352320248451855280498332621444293155828597204693336314160086798110783772538641851144849063364470283540895602606797942143200939916068657548393364364018269568424192527929775821364452270986681614126753081125348589058210684901798671125399617390042283512645538589161486441547459132019960506253564267754359036502076964587128407809847974980966652241232739444042120016603771355622414977913346748722285461272839013724830652785033845784436983847133124008857734143850231391281731553162852011345670232771519599268035358019982007643135004878928982031099253721898205666512288290759539995575060527257325891793358927627985313502336713118485197093974439415239987979283999242304417270955138472365717534769254534903749370121661409119871530526662605114752040066373871668977439173492882891830715699238275540842383482680819501705204150495147234756455930540085281576697160927056520446652667047264813061068062885019668769796699262992815042180268194135190158457798184493886191800185353430787984390322554966351100963113118317368247245676404820121951422629688811760956534076665835253414257312270354174070125665209353938550369555632888336233631190879301283247867338463648748996207991239843786614542651992099865981696070458095647949132890711812434858480832624891179804548227610894297829972617812587508168153882871030674773509356577082375291100274339037538727505945646443303190656432443859375773968524165448504893585537060303365753161737329216578335557010387830660916936834238440027412575963743168322164461423854152569980437037116786109432601999827801467561656064553456390181103305984640554835652410594942627667073578516260942865252829923688594855089053094305965374647936341141790482636275732834567062362044036378082138487799589527523657878446611808349120948001623816025589289626492911438965128088333869709542723566224909858877987348614936609286771789883577279718629225120037635843741999290943576064357631029179192593661556649648240432999122502830383124915088639189826456992869683710543087946609247039140879087927619796568839540829613155301096122329496209202521152905042645511191246971241282116445972384364356956865883761478018259719337849961537305246833513877917341765984222874233544385003718540800011465498236309586889011834162193668807239793944993756103571544384610039357656945012560546172258868186379912120563123518470778653817385731655938418977467328013125412661102764229615307648316056001103892827102351192597454780655135466099472388613016566612575987761049471086961600169281117153365871946231091836083193528616417630187671961617902491372760199928273856246173035719696527157348220134592260851322701200395291250544025973705029335340216189552257317393641833287516164133186600780516107008398262957994866770115147967005475723840872520225126885217729813266295647293467363915516341714249779111533963897924845675480126476263335588837717024881993994013765549641520816792772942064917732063368693808666377418901721177267993877587870621647506234765084528104568883400598541313203207027870833052044438594449615870082921734001154270963545244458688292387211684324335015990976014714867108768029419610742678403608849241272732424922201897260861569013194040892638858595440990503408973159924136653072625390758702304891112786317887118515919317192995397956258099494169387799216799965292612410696454607895151520338687042403620515786206049192663473606916293308281895939591929216866405478642729427838153382129728927213434608377320684286135582891148468513567198380696668704470936290401634469373039578426865078941449074604409218127687619050948121771772299027149517555143134232771192382538089749021942444576143740768112236785126894745782203920517421178660883995075855630982861493000924068344434750713463772593789156808725961671642150659209624765110614704171512627444000273012790543839089035963565243129422891168270672094555948371865148876255792255174546288220750779291375180778146250171605393184532007228060960544394913133435911838606590319464674665972150276717273429008643806090854410097707747378339108288580520404978302249821563159736743380118310769916232029109186739192525307407858449165834184694657626351731646701133800144592936780205639062525658145419468736554628871212526491270517865758399190329729088723878628471760633521226831769131199667155994326739972401923525980237746513662944651262998379672717114896262882044883248187008342613203285407208648681280251159706163608196477719446345336405759105629193630250925025247097532993788641114887669382851477009639212180872193447568537742459004420726580574205613852062050827984217456222868079214440477704604395563032757382912494542328771497044439854052308641964531200211311181683491549135789070731057208824940194052673429617812401983915162090202400955586457997262769844514908394649790449530063043393646410777314421460439502488598910001887440539740761115993997977834445889234693505170914174480093340443714165509888609433620704176806014424159705083182588059198462434312973461439699618534775228063560257895670734669626547746317967531202740152255933333253648049081616636554940525429044538641401711222867271873827320342513673831096993990211615312410256769797005553177294701498752721705569881781048436814246918457962033957988075532009940295059365552777643841959586267358656712914620343036584957754096735141812373104248462815556388346055275743343390071143564173104922874993042261145595542489153177404281230518186741876028588890360885912346685954839569627388580706413722308280488183847868638738321224491963336092913377763745934494927664846832366037012579703992417051033519578255934448634354628945987057312753366356436403436585760309519586223833653834189033968785364892005631315763207176708281914021386546819200740194712667410320386667277622079201309017008251583626104127670360617573586683896067587479840837448205782921363334209627165876249149757115257129662497459222320420574320910596101265903553305588785106548866550679905344289724876131907776821833009823147133605630544507385447887313008784897406404511869351511221619141819629516019160044290502048137234288672960164839918966630882877545324653411443949470281594234670186278236784831199698929542793375046094821126036129368423886218013790250661770812042139005220934902174461060906334564621812106410521261500336346459268353488153579776311274794645831132710370499378960590197270357235819360793122744583956056776986216568230970623291283553802792084087639997695295942972110833632605157452523653824117261510181400616452216479049155155645107059110681092634760736148261620201990714197060105583898880505748327570153016445885414762978875345522485360203002396752881308076112434093275535681542871988969255252864973615184022887962980483975599332161712324165437322643803471627395063405455005267340137030907666758411508282782218015640933060446628813996653672700617695287161868327619600429876268568675472779372056601779873191192866257531316569457383507792286866847716202891961602045879034008601034089635130732256508159131904654796935816163204825531536335814918431669425383739058196667555185115726546707579083460485458695699455169247005726028377254403371898837191699288363591891262125909306644724231894846027139223361002411452387590211845092247395518542646896930605747960675851190470146199030537832433723659379671565185658402996641419315400428509684410591086633566785016282286999809216876946816316379117573024654448830996677212285653806424316521157326169189113827820486831681263455681854387895703401741613416156680741115747164984090233729310707303289135221924099704264802993306877874726801482379550670065488244870788684879285962733061229454294450943302876408321540223084191620068464426118957787253273066643245572565635661305386038868799413810821056309440069167201256672354259896210922957069745110510444485409127054007783468518928533444625094031708233324640294316385843511229317054131368806149700400493970584429945335467698762968853569357361797799359817821711120038868268303346157776073358434287295827607871001767647085110601645760971799141763821165536341220773497689613347140976744515085369431705629330624441078966022353839834763626334538213855214778275220263836614468579148669196656305001957221503702246102269853377420583505959356251232514454617995463321658159296534229767629952525740858399616326468972196716672701257994789988472934729640753604602695714246093753668432887911137646557019650679086333115993398685005081147431577993340580248740240790855984478105577346217341986817185147161758964743535013387298714675894158665576888466666601616026191855633139562272702979083622495955710262323713472136474578345289992484514067610669453294394629790011110141320945238515227390229970159912748626406221035156725858381956315780897518146052751276289315891606605765956154243571604643463735734885943380868892374440073977541839888121426618667296549520008292992071984896019191754820322559704032559514255034899590631667980691879907033493783800631370935944530100958366361291494550144470544358916067178785425239734600785510045020972183031669991213035280739340446442023553574322045908066810846417980515438595086795554557384942371301225433780345927461668207701326140436998202791306460739794018449198514026588113835325410418795192245545189358903481143872153018952782892255678313021048061116708993817401206528099322063951131091228722609488937550475803639970704137828699308951099020241561123597230777011633662890960800768871951302035568429714995203327695014060628213363898190890195313171227550051992648030799434476345287438333420134096531451091066318605611974606382162900866421988891894395847673400781896224313459837403268781593657729596417474757908547519993004228835261152282825902337690241408716147064642166510165390091057196873966065207781995919827297391523732140510115803709892172586946321142841299503137447244919632474287470829166768133079811203577628483178470869626900100866857455620469375569496438221871154715426379449487251923352379295310715811770600655872632123198989192744844183672531610424566953395021053140213738920392515515891061091782053906894356725423941642395946920526504622437463686895386714742232097127009302454533644645659388438871959744894767846948607879317608917445190433619565442400352198984959417374639780969128187140114037076119127102939113789336596924261637981436784314987950656391798057752100660988101981823189758187089772864609967751745057267831285515758624042733945482015946933991931180708947999551982780986622926295660325706158267391606846755499179887361124429671463701441209890450013223538932212380266145682554822394570145086802757317219266706779079228276530262049002010130621333463375796920814940096036905418993823617220432832441597745159407233386782760281154644500964732337380842718137916841120005409740430388599241790768496984782072690083338707634027947057543192683967342424628924380524724972859181199860529158678787224872574849600804875893716676524027696115552115215969195262050608406038527992644484798837410398761289631044351960392971223179209755615570443377082045243553411790416611963105673962788606980625083417572431906249914664080061013283912653761411743464399155843270577529305590964308632362799287743870089453415328829287201968713958639679345790001147217961916148598289232625163008478127849790244667210727074286060930371766729031976404528615713601998916862938369794318870357504278230754049475176136410973655030970278965928536377882901129891126809882867052050807013084475921483573003503054659784385756392339565953422739520970897139753732607300000337188950859421564314615175273243772735452079757740479581404944911755928095429327197859745897507806644153043257190038082683098141705678359210332028835356746295585627716544530655033688307530036124208547242697750337384855613713203174091129303876394297774439998293493247437113208109373847416984736649158373800460109877343517443493045835163751994039285826815192928770962276566146668748735806855453336308457218175572496274448974315701812299681441762947592897567950839106065966541395959902315862983406413896735893140388814780018641748146644463392530769474736927937825969954744040668831651193146240433327635766397586846704515789538828537513869435053039664315780694729764120596270797297772741878676510008410641879379339901671845269910271641011985907574782298134687505451073566847489646796200587064470800284011818062713596424078852340349409654633306317106735339656717642919111454573490350577433474281458065336977099115246987351786155216572024833143044738747015614969347037876775845738308475986439101831917478116684999049044068820120425299926867740655448816598824803936389803095274046064045566090229699471154625701543020733135329004074381343294274989496315284144997740716944906777230963813752034374305913138252686769420828950385686887916206936763274746073198595246377354032491218681452447435287341981288933453024789265565063357239182089100982934229235818628751776267848953406687912824928057750217656633935545119482640415523922295615795231748782613747680909647779858661084216254540799772385727337231729041366579575417385246909118182444468201457380693020712416465318985970251284241072179691728610234928919597537488002046420599799122237991930719549615293464692996467699517314416086139012081779562259020510406830996092527099898802775288931457073579784929778983929384033767517567271156319537063911311014740477884732076155036891488001603975068888016538851279433235681033808771298052770304650708262834068589901124367215881743047286653699781541800118085722640500547351148193531019339373367050058202437424229117324718676120186110976695206901723720917429276041605922498897855258100221039649849275479959562618420770001337440471316335952269812521648328508184396212220762632467848351233126321367141313321818503791849554979992446409489822156562004995733938417342119812648162416932959400669369481683348971722797796330722728831561412379099647773323542783269550665241713020368494732185737669306601139012959733180238146026938100638037980248210988280041753978538903333676215761047593468403519457904643509366284116691357614868940505784725797697128697296514558399886606742567368947706605153753353483859766216181077502524701289811198162238221043633912805564429376248673482961687628501859353689783385686283050754833277520544719190616371453842717364063256480963513045438746902266966917117968949162300307907628327992739821341323344120567848564937780802840980157469823419098180893491359838745176645324509851239488793355084270900093559489349652143441313396387255011954952590255014339076137100077229541015534289631955628179512417874826930494078077074586765054530405257213708305720647356877218179743200599438255060730819189006444755916252687664700421840033299384306659577446145034126862034559342369512658129334628836656682276327222253012445917769944877357555676975279273912113824776429477818909310310059682802714609082628283443412235327717696711630363103160156724369537422586486711222317388037639577573564494484107412893303037127719376281090431208389138729068931525862296481169285396437347881956676908892897056643833347096999886036005631270801677663491859380901954424645823117762944649792795873857007020754443132936768436122646279715367334696842650986789380018981675917203986624926216251852136286064263232217989709737613212414093249993387438714596924160333578704512705931364158104237273466196349291250495330679189622078164595354051632595650342814422306977334291560177677592528816900220461550882482546549748395825905179833641851424622258825884212362460940229791222426975730883702241036395386025988507761375507237977220686814197800130708306246181625217357165391864618072521754524669615471996994038121055350405784755178979675559560308122529768048689586005532332702069885414735556862178990613124112006580882616456617009848119512369633443660455094680557706252903977860445630915022730610251735548922517184669373874914964546016984715560131690668546512190807576654050733991031660907483585599863802171985575312779485664043656686515775975949933300833152266126630905877922276259285530060605516026282036185567332351891237448398561241896456433470767885542373797804440641003757761254138737859047793307006235921731861817429686867781807906770421134980710350859535731524921698040717558418133620928786456722622111527397865469240731319921332314664698533406852994872771820692081806747622672488493434450723293756875627110883376748740284932674274244578994442234287655184541151654707766332835856130523708965351198047080106052869873962592448040024035546673616979988933827273929862299263106853348318988505267619397850449514145014642006674325507711755594964367897294494682058220840619555634993393356925957259130260502525974561356808918232223474063005319418851302057482185425730601608622057893991733456452070285825177198010110528054554067888519872883916158129753409586475806291336591671609018183751836736479486291566418161066639491657523501842041585998619970916955030856069767911304111709155246024668261263708636681759852465383002527581678695759410330704365492381480858061041605736298486789280457797024167303446900650008120832775777702695327835033400786097943335985513485779312136592885402830978935738665806907292710261240057983209457821017791455248762152083677750092888769952127029203252085126747332834520383260674030827345851078633987885200960984249295724072524575684033644593025880909937471262944465029566019506231906519616617326605977841085381034789102769024938133172709933571303852812413878381913125762924533191971809218826553184729515409886720783769824574866843571485320903108197569983652687954969862260244700163359664240413148784630497885980646653174885950225873969034369697001021478821891613156010191403881068051546054136630213454639210207116778161823295374905486882416298050953313654141201064260008353288215964540547036776283176911559518886310509100083960277219377009821901898691747490202884923672659816327376027671243863997250448747527938592108534274578610727014915243338554367248707836657231578968405557213500195359820813032883554288922244208893066816703457567799436009837460623023346369291692792813721096647279478926194768492062533754112342944543061976725845756619577241268622501129713289446557717299670015433408008793089974163699335352060043271821707065794834108704554632048369651625932454827085210471122162133197574506933313898914310450941141439009583035513557153414080975334600247620186803689374366174075594566992024207019166411688151195765686836481607440933948033076028317382193553586919688451815936631249326308403993075497230587444202003092942515730661878563671776758460421949067470061534394821423123409166556698675396698707820783308244698020363245282006157694416097736879475185925259422341731237782006017962878951402265706715544639640636166336980544953707164369226186370256433434862304683994380790056873659261684331384378487549019090953815248303950358229420381705336358052663737215837252331230980067984197824444852426279635794343146036888662478831959401397359606626345338999215227063959187093047383604012371180793512217187211497432282184222247055304625527268849304276810459614459286942852095358389752578687975549594784591475682403358829900525210066968105426269258311071946573234664446000606004284200276516869213542165907644608287822443406206520871890377700345432222740184851879456875228284836380862825017782887465978005645201684433128022152975275758489466075322124705100213601152421089335372745146328500723228992421294591869639926523214680073598549537435166278800948009210279105153877077166165230594570546225580170936680950048149467668907152548890248419105476293089549363975903631978004731741919748653574892654538499537270647432097485527876469558733911239828391614220308495784308201584572579153743473812282215966224838546089619211876759740345453839079502758476910617308642265167650448098745303327944709626316019909661750920902371157334002379828776387692372100473809486259634132822817770995947846840900081056829527562008988357640814245541108286668591262545201672325768028503700187856294698164907305184631223978349389941492137572255340481163124837767294826213324228971479994057440153602573306767291216468188846282087468820678202375806204461648471735876240865031970308718220567552741565798725756008782803438533950017007433811156057062066858178031744838111555662117970141278724276206636749452015061365501974597632613605980209270109067681275509426957126433767390632129117722051153464986977037970559261359554367976681357097523045721656409524457125070765980298434191107049535468952453224398800185936978849960733461785227397315551560508127629118795034761874872744899046459517442759924294516803977388189818897739387057710940515141762254394880348237747608512305448329094161786295739894154479129568269918840378618511568254557991008082601938806903815562941850755346290800811641208852332336541510073191680366276509735551673312493337712493407781112174865180589625523601816855096189389350117083423897964325987129685215615158472032311253115029798499330459631889283160474709943662281685166161171966089211777548436177310888343700213813440227114297253225563118582904536163171771267370298065822622123177211747832866740723951871792519349879060813771697049369272627245195087816358851805364167364163550431492676954118001684181570602250512578256743525835254307290637774366017524225260855765129763560265957177260080179305850668024406631151858616908735222094062599846742847618580565120045246708138976482692280848707963183964963428833271417429337730970092537858858820783712095355854518111706856136822607493865628224477131983905388608968802330375388653876663386834809796049177550966186907646117549851957459107773306193112260287493074721059552880093878136398874285096816447172255864568745762259823129903286784591499020150304745578865867971730935429669823039304124998059425520504647903052678342655196516316758108051353629816347295020309479788142544566929218649849722026178075148337020303479584612571969154452996363956555414966100110933388865267790796953257544201061174557550268283797138752971603737231804167573744991566819725799479558363651447061603669679728963948017854880842381986948183141398942310491676084977275757839075139562119552129595162768582117087029248212270338610032286922682977991107943814139321294436193375347203405591408250058619643245958177623266341663926552802381924384102634884665852347879002835188713330980849118112304106311568575321247184936817755175986939377384163446235133329021329990092800149728266882885139013345948536303761121700834983859355437571393645928562323486439652633049154978763802990189867109550435448765213791686365861250634696671945475997646951747924596896311509363616617580319648549875815131302050497342040725267253901099173098801385512825648010321969195468004617518926683169393330086248696179660629629640133594657308112793575956616307222522615954622772819017243403273832309233617198497229528674329173323314879634751866659190747781019188378670480750589312405304840363889284327975658391660061245462422622200091793399865828047073450009203342093866722184070801249082942213424661799496523197428881044799719946382129549267493907741159554654592978976953811042001137118047504788745147553747637094406125277324356093511342844931198032181787076116154986676027995621640628202766715619954072192158652113909951841248670186358299732297570480388955684236894957047955482509406011571669188496732285764414741346645113216366290558042890822286196652957520638499262507301345004266863172173505951300325407854903572178904639604104367770063933698602494841557706226357311447773854741574343166614026206539028537009282499649564776466562576409485115580092171756560751602580446213069621940436169612035226088561527005996569498120255533263966903455691599883511511685908652802061569589124829259434787199870811030886169730527366731370524127374487476156825908433049937251339376661996739030854262113338723515480994156115043262442827473546189337388166923440144115723919161128107148951150909126818609207754120710997987719586402881727125325551930114720504594455655852791906634501392501715535522363340908777751002395306450531042926614097905028327685995201175285070489947727469953690803784910501925903269864808182967890548480500988237208138199658766873440587440242477714289549906157183766209261258579498571897856909314074971653973517984316126567446026438343605141358362884941423179474133803445406496423372116858180546459165298834466818768170356500972715828341403005901368443031292079544460172912283405814861525898593404051490514604750751545762205531909909816550354047992192612429547566723941612150572416889120708631696238998234899937696121250781546048935116825183479726357653041872157957205964753006328943992001798657722768387982705214107191229566989712041078708091934144305556868053432627672681222893663558051710586711992776920479498713624058545374784672667672665146274135795644417101035777021333294959631671772953314298591286701204072580734933568234902462896574811107451026808075390497959015965859331770233968174489091230568537427460104824846116791354007244370141437210691330279208171494802972255735659271114530619383147530285480009137551914251462482281654279643307926727486319843070066672454036998913411937015694159429604382434957943209011686185033786206087171128257716817278194699351362187737380959720373668881356253781439108195133568486792089452316450091461597072607383930755092968491130623755888525208438247613139423470439931213423063630250442882675004219571904398849365571889117277221999153874447466935726883402311454347984906891720279422724314922117302721134325337563398896629513734520922586981730264867712601232843577398301578643188219518999619825861283762197252961154763302539960788147198382215312718922054268357114036533769232422048796637562267638021648846480646339281389602795526198388278384183560289443243133631713989429879641498489352921844085855930300588154761668213471104668989081770640748027854940856566029492781662824838833214532422482110082335660778126705393490613637784994815881574735676002548111117861642913199242445032635298268400629148550184863454166198465878043171351267832684475786711397247471395311030644383231636368494742476765262477870043840589309754862981884241110642453097478312676024799168025616776898754463384350696009154536646611656326175652460874596134767489994669315132041650637357852195208250262206375517184870433961184250857071363795196567034150503513698561518422404049672590190660444335512682612784918872736519606811778579535260751544892746721022676654954230140154984054791463693410367044367298871949807931091661521303832632142058175320233732539372569005991568226794504280500408347815679704356464088381825634221058717544617911555969390146869837970736761520977353810084267422566235483219634270907305048382123671157355534609447668524484969417939107841491249010718938713794675211735320817630068947059961402750387699964087651195385270821136977982027511984147115773209189041563488083144960147715947431817268805971204278724912202732455652801019356185344169272042404442606062124458938179379150642210385503874703939264912406293812237062033068794493206986680844753491368484956120536644758509011491235635942771301540131286990843101641694164287176480199876070524410438828015293098868683243206591897038142375914688337160628178632447624655304154082810828500009946363667231845890209907006575922167167807082779240227514121794265510965689263073408173480330341465660054364965091880770791432110338387138737167086303587857681724907813919244494259178040236232095084789808117142975466647557829965891859543844208417999489310922089401980639858315612428333175830880143676221795594627348694901447284888214608478465142931365957170988384330233815332679852763581338064797026778632731574763432955308165930848934587929305567562020003953183786831534550026600397991460488762053336480708522934755380190525923104662233408378401407982694491403260876753229485294731945213304932032149358430558219284861529600568234425612045480839668086205605531852237499218705988764553287984506442441933898232634144948730737630792178861212987962669499818217152797081343359531589649732139084152145264531785791762610678719761584451688049941375875587259797734655429722526995853025584572544433595882494758947459651508112798476529738620658819730527275750848126391630481022469216439665456106384755010333824758874319221701452293825141338449726684182311296667452563109242131563336026682487802213317401817163339683686347183348805423604937031548844214148604659511129404904482283836298981944841390335388566397022728691868771445422143676653442331007035814157306685244028524426649446945673384139047252855810014203515272487751630453180055961465269213117205542278321024868627748564587728164520917891449627518613727731218598386144630587235288177481877593131352077244822402679243377316011841441375380060003921224056176536218778246290528897205552121837333430416356963396921823254533817999307752454675061794811177315488395088180231428623153995567826627780536191931716721790010999758151287948028701547026341977242177561637859696976460258434082519890609578937084087758742187313593768681002093550494152867084581088974774036941989760857610085812350731484732138064622401138597558273440117404949138533612215283046129912451353324865148914561857584549011654886773666346065470402879153607010886640035897309016424439542974202001441080556276711262597158013890487576668946819804479885074975767008657722493496659150951969037052522694203309661433615317725934852658867088709242749930880864595285851827936636009540004893445215622011778656435454965351954833411465833093978268959733359491059003848305397034689029617046313798922130935188740452192145104012100838345597421052330544786541271554438158082281116390988340888971515642834109696124346352367360881358276541006515106539791165181520166276823717248927134625514700267029870106056196213004604416014523580207364177144165499178657656008707389762320453602899906876925569495747916885053569596821184214433014609793678886049020208212176911840132836442334168054336698369359248611852783178855354386867201797929862036435790524192423349731370191615888934304122504790200846009745418344595628747527908591639632085138526622827614439891293678326842670627595605660412798562698979642760462790124338919528635324122395992455194030171613074165604028418870643031942093147435482666484178445531075263877564798233499165057802101024619435627342841036124906701998404343381918502931910355100277450928127247262602625670902532522873448599639469762494459222770290897987684533726496022479818082179251038758057050471960736970680843358383250767546476346940826739585751425653165202518171982756144115015481539826979961133919677614480799797092473150748592759727337189331766607333000814337241097956389088312052595521242739073555224679386964430135111446379302409993643272846778629187103095199679221967607544823865723368471343186813877958550837108484736057641079510103461013082938963616301260082801286856305397901130460527861040359384814552120985553485612994240707150237184256834974505917632951137775012831983008386259089315382824277388204583377079833370288005516795559363980361846808854873660776359966438708563397726639519414511343601590376990850041906514658262104100817874426428730548579106283910797103545861330768686236048685406440178537378490861948882039328102196643795458429650635307199654061952774048064477468640954757095524119360479381029509121104821889429076648935997718791669159214713300793822163458909461352880553603262193069347548982814055751290470276947875383554957107549095988135445408090580957646273457582721065014788766335340610780684686772283530153023446286747888016843511279055420309801181876211700313941720835442899788912309971719251428785056047516206678473076313249909962352897388902902437318801585776453342427649379312667442101571537232804032090398684926236738050332960704757500272860224820495480875288265815029498170365575147089143501189422810666885757054678812125765747619331371593972751270174979044128457123792396080871048258662832572387328220712891488297454058701178783517082709681373419506463381539817886063265461353184530193157042147603983298796505794192222531613279046100887339994441900905486101023565573915970034680385346049493981394220194641647759804321327744397613227867039200102924839022267786489187606569407707436377395835249413968696139120696528031489404198234069165195682647473981333289342809560135589565152627272296094053392014049016616680101445515428010849063875744934585428129105594094621882338314606409833979493623923395780491549202065882799630992895435230181876725800125136287714041307252618589542313260659219614869786204995679398920979198091726277105581751194383922330791011306068859585250382101925469026459504606483001640659708157108921499309433284742390037238504603211279962416572117653671725890306546981398827070690769414077089912128715886244464167506596815001367984797317732116842691278144802439535923742271864079136432592385459980722805209032381977569298175354959756487928248293811796912517039409382677354308171304564084823943763949531651759448247087322447698475719969420842951314115877916135981197469782070864027451671798394653715658971192527364253672755854738882312082520150180033350140108097069220365437145739398405538311065233105102255107737164945705221421743798007723530823116608257340985461649743299267792709307470713886979755322252899535663013712471352412846193514023861122650223215365754065196787843176684802319364807052621953753731263636236480973121114275822074865118885626569501221230392685058779796053793592009461143512574105417983609900135171850925012916533087103873483583260429319526097381716524782310462410180069779849117947965262854248721079402165626327685146738284282206878262585062556289521668534725410710810085861256919126744451050669972408232434101371277454603492250724061040305879490458123722914759349051434886093243721241617275893421852315842951132614339170178718946442732369282534417944574987012393831149826716851379981618397673955479043611099254740160343271374231331186576258481713785838554320401045227859666055888033063935538783026695840423572876206379600134446737968484876126277060357548651845263577126499824485318375318391375210854342841550747884218378347097642720668401950722142759297616358780079109069742125055798302582230321448173423104863497544428860356768980832859651311350161128721962074496209515145543935200769528596047090361512211833363896814131231840059393008884598948914645434783127879244639203096981500439348232973786807778372550651501582528222730244547266179663332840683291026772673532559790003111833697521308476701777158430298151912774693186591104819836440233812205517474151243348443290827770021797380053089471100370678263187503047552796447469493050684403033173947036834712596404185202397268656602132120271910995968284489034002467888414305544424860758368579275130200412003919945022183293907824319558657417442787202743374567035702746703566761308142459221413914086352618621982495087461138309398472763029431668433769500871665094922183648799528058740674146270284056586883787618450707892067475079654519294405534239931053006146584521713261822548491025229055332396229572142140946619768164445502580469844497295288682476072869227808319416040573034749541946590426200003632350881887672960455895299710409879666425867117434482472787497684153583962092193002472208926483082921927471020110392575894400031313955166505465869021775007573808132410355244136823950516956925670333009711889402686423547371457851495557565541580477462724885131745179456531448708626039550081931333850169417045849850300434398488202879070999709994965884910311212820695703646164221159016048216345145361024909434353570808111263481329891944257367298167090598309081899684989434155964284549296537903731233878248359397361463130198818398067519914741558424296335562012504427682828584332810302712615521422811259499122602471860183907237516813556071998121752380457473369242776674226833294471966197844183322040586422570482656602786447074319649439238265227797613276012811375127985793286303249147639229651929157097697942235588427593624766082821896640323923337791511867338315022520922579162421529050327074994331013587146333567296977876902067931258306346333009290224224720792763313662002216830675788801856788420048291425247827280860712969227218220929609410893705264304431385995773883666053656912275892901226630861399808660098258080465801969355692180833720734830242211956135704319220648084802767126196371398376558545585460480394947496468136643354684227881642150639395843006377364587804622707670329171854700999110137955344189302099214578775857991803802510134498145778637086262065542094285843537790607103165542808783239593502532752364886621774520657222484631413759720522963346796315351564398516877543559749847630758204144107116756986930112846559286311685570990916023847142629305477533282154598326163617118410753054137065414459622829198004430355572016154007327791387729981198027093937258885196480657182509688121879857446670132436442115396348961954194268557727346214433997167454125705961423439104868695528972426410353003279687014402526808297297357617383172142146553198217737500661750329472960168876015025347831556137770100381587469171148601520311613722794474261935553662766011108530824960727129729784445892741794672221885721233250546767063684942201498012781209012758398300683511351919173815277502747092501149461432339079830649412364061217242811612500970210155134541454444373203067831111679352030013733650843563150570066321647429054338116258945601431582511123174246502687460221379906434026283118478258824521636169262300576073072582669693235783388765377716138794555512146838871169387235028362042972967862766208312909865808173949973288610476692895765449035276243397273983779243091345522708023866475815019876428116856037973183578189918785120059331151915131161084874129893633567000357704696098389305019838585544866370271544356672950344357902051113613492759921908118313675834322084189854150212034926501319879752946479294465463241394137721290388502299144014275755461187802596889410714647592061728246462003414710912373806954046530429928484919105659968213288614269269162002503994352091248769343347472941640837939676273198766775410555376786654970338299902078773747764916203752284283956301229435997863081701917848098426313949042104872913186679460053351693051412057659418362715821043658679829024398146062129523752037432107949073611796048935081715781556926609859893945462358603042198948638990162953446108121998536997922958243006460759129742266015377776855649132378106180249359826128210134594486992171004156865867182981104949422405761623541311355127597584660797554305494721117896983283773466770833731385752967920765461581966457511284338886068639494865410474690270756578333638533000221632995025241248908406239941382022851864918233619364758909022790429715643407317074232190672205168986580279618155288275083808408654427203981638228390415041132148648026275851851027071037202242842576890833951728526579977747044446322664505573092760374081560037786506191730987804421407797840176562104022672078015448832237534894311156372150633643605256647665664854459826893990211338598791384279319919692591124982689974516147911413162068961535965919764693839647151006559810828904833956028463730128137590308575184703697848316978468781304993896829573795062253038753249671374891277611447023183465675548066008946998438543396459767871036015671826828384961616324963773456105989682456560314050406163339498410958587238723609295545149187304178984159075769497714693620284600364124932363879862988326163275035048140794296315130348667100632828255486749003403354167655306198094237212127552741959772313431713974640325448498188490174381911676042113055933779104829549181138057374897700191848609808663205955994684080213881206613866409405224298706756931788172402491263436555300321025915590785667074254848377450707655076028860954524170988399724962518484014728414749803042807896664545843306736514912850790019308922225206791402038684596444606321823971981167131847707981004334112184164926188605940244209412143883275179213340299093152278437299429103228483718566284085794843870724482211361215219269256884158055452715820811369671692720371350470746215203935866123829911277219710698920011097145420298026821594357105143900375527565571728573819775279946859249909833603318637722081931446200887676603720939156016715525204311714212726935179684140181134590109786044656506794736001243373880827211976683660350143605534623093876516387207271303769533134306589186172972408403576771574986850270679097168875802752473821678187113001678426102720749345277052219619299836490137890702282338703928671024644958307360789778984672249178753601131887711382509102632835020204534293008339725485111098925889781179716701138799209651730301560876813460643940726780547140322601161715862775189294772891279754672372212452877814265279145512685376507346815748461814471071960879678484881064911335116187441675657643933780276036306393925868849830487757760573321783091249266045579752114752451458592387160650447765285363316805246317438348945037919248230872798173347321074804900332931682584100905230597733098063135637833548695690802769729257224239600231259398419740153268767644141806013196102689015779612872079184092934676985739512471401117650127601786462147779323057954139033961563516473435661564884656038728098740833988444285119097937618707923598507670037336734673243037932327197518045084909887490799492515112661575439988672779626699575063879094843834373481472518361231510443132302307543225680602150355803011641936667856717373145968490662657839289663349866278236487585317411200331425853488742928110312113477701359618107714941032673493550930185333034255817216549893516513291809531866702827241508862797548383352082928399707907038607701795136302043184321230481538989625171839130532599695898755324070663820822862861625282521775389368903647065703486130062831194140508263142072715788375562195350429936451782000167924164164590803305739477640224050642481867296106960466420594789704362891632841014044439269609743138940299956317514843170051098825404018105897121018357665946853563978274863489150935166448093670716682096725021103910708866536156064847016019985298630297341123317140502289918753679503923194368514328855142297862083996157555952197715457409131784107590126353996057132199806621068558582419500191329611858705201674425928367880384413048676078822148700660802430677588682590703192549004006928114484439347134204564736160739746251654038316151916854942210250980515916279409335935978236834640398720185113957214343356527980048140365022103462710695458260859205234550604303778483495598608993581310587531139826861794186764739146158996884501040377847943190108440369979821126650432428513869481804174060891931879723011012006436861470638380991498606213121738073937510604295094971671729524973106552781662311670581323272897900896522811151630707467511252073175660195463548712463920200849477089465952948231553759109860888817626032053028516984002137875125903495556979348306285548073065118375927629755901265929208998671914550958673825500282725811115194070723580332866799308749522246875863373292202567168203460865471650448816585578110170019818949774377862672405695893782145733081205116303296703412472042997084127633288676864921256838848866272470666570080973486785271183693303445093300478511233065617997271687564683653594964663119787362209797478584090806919111412853965181509883520038687845998190699298177140957993423919810841646706914547748173962353565962686904105829371491857068819792896960549938447640468114211341347553666156534208407655554993046189334999420933782431253436719397131974143751922484700791885608653885348266556274932097660865387591854097289020496123130783168935325866662664019306636805588721722842141456023806210944809038165635218243321308932247099760050274857982666703052039379814793274353216105118887138172354469970805274334036060189697044250237203163844960567863128135041657903823794026656138870594917279623464023733762193420672978507742367156994246706954699138976429408823995333294189939507505978882419109117779016155399084119906932529616762716577553606542735333835621012879438317291949820353487776360801670428866617031225236228712284088487937755812115381987913271834289491920076312702768011619485435006870285962466431653512701156115246179806760171861111601539666442661058023493840358580291343382673578654932675134933419437036491316214463738564017355431004129724927000757769464056548015782431164065220365501212180046884692161976691241463601815253227439098488529256229342972558878876098993481113715120726023904700715004268420887425332375117485927914811054653041185644738647370528996545539461571758133759562588085494504952981495869119339410022872246573428938690913439839448836192639048313047687523702160529011006410185089506017163384188019898587693284348448861233006134808913105699239645511330407818792803798371377442542036036523460239033873668447002504677176072342152166458827887661420534994624995682377660739557317749173650176350976407607290255348241686938095065801140073661547219006092995131868511648394822765937678136582914393180037412954882202269773611394388351038278260330987441525170942628485318497943808765200973473621949524509807887379470316934280358325220319100485803143524901306396203353374650330262465960440050407310376666362707047889821839357202672522414839997465329003948131241673901636902902943181160349243194438102925930795222851676421312021091035840939602867624159014644628641310800695784371947752805995870372931771173360013613401623157091427513883377215583488060952317259302320269305461290015211370383575995956659402385811039746277307563072206794033094755254922120182688007002466113786909306823249411577458324599110905188369695768820249628481572846421386133826099833920204842011954488522734615596291243573851424457340231939430909217759161332900231021731870976477543541932046271672127589033558239878927078735684982905881019751546583045488219167284555824409418722318049479724682697945691341117575723236290899158227244768838470435960280480955772083738381929056204120779024795469227329846079328300038466809060238359056948154437510726243328059545619872029427449940547984040311608066516482455925448101402961968752681501289421896874064833368041029527518851281308623275198280451283814289966898311075964783142099818886542637251244838155177018345511705068382494958005511599459522890505832471094085248957594514215509031430230422089317575954338124617055691314836624560596379024330260894385024549689238763166697870629160218942940704305986536536432179069855625652016758463122831443903552242144702440749916292767890749775715491173251084079447750310087834693095409457183548088474784556963038821097880486810183270969158098175302695052252152802288714427824072958053086907730873121781726941361533521186225558182036526225753299380128409400648629296869291363063144549554311154813611560128326979542776987057417120599178498785196329077209216832635059678499407365896835642340663111350387346069198165741634065078436869960036647080295322088024123579820847293090845441527131279390069215770924461332329369144140701200818905178990413381310036481512669262621979549492646968876216902425939167332332289036112688170538892575475513191420947923051015753614549022513611587588074201858814161666441982419077247258126651422001071610686256690996844420193540370994958833448010763488377760794084994389285474852937601597812284261749980533894738407117799983905838611572712712084439689697006232452876034243644686957748008138676223699762341566764793667700567606485661593336756231534701122857125470415503741477089590621126033115581582647621493351261793606216926301661819083487422428293732291175428977347620807312756611657937101920042757329466037481941814410435716554057002882852437389584000154686290140210648982421093153018702317001233533907519708693238412953915824849343475737627754292677498526605540659438575185319554964594971626615509198313342054869359395054273895023159085684857381203208010669927609192352582232728886727680208980063035623245304461314636689119854541983784526344443179431948938003853161530210036234728406149548260491626484906582303075737765282650963309427177923549307892417387680946260064315392627220492074302080510408024899337542926783089811641867512243985753774273748532679606452257444297423138481597812479972361896507839813073311988394128782515435339439995097442877971707184570870916155991499223241169268459185559483239485396005709650334790641860364119995923523286151614514918492266172210543096445415984713067803221699529324765468178838210863842585221488963977407477719976399413108524057499901418727927214020765501326491895448843326228701324908920833418551216148781486415691786863956792087836211645813994448398592636760655063798371751099004997300372891524720814496922552515594684220489410809205238135513992333410998027473165579177590367110496734832671237194205859841895424824808471712156469315975817853652915198005860596439183046043368833334904769458992029934162627036067365300377711794569259423741019980205728075849249784166596745072521477183879115329979381427758376141805900768865728200138185527159305124442525893016254726247232522656685857721589602586990955177413827671662929369626736806676659097608221681509162682499476937564836931632589216413962115966437905822938587308218385855902372162525590838128637298089785021037021933787592378775316022828769465379217241360960720916396452377465610890229610375350670301534585820559793340534049805690555075685109574913279858806627826426236791373854856350560181940208114499242063151122470344250501663551740717397516364974502447910562279164849576057450405351367638286001423673635076897749835988256030992616794976239711577785945482513645914356727978642151742226414697564074597472622725894621548306036778380838278101982166242768911121754010068896818973145729818815600992557350663539707049377839844454845487164136250476918037037840929138699244277033951706021966361605533102988900882635807559142035845548703714573451062904754710591740559283422049303312264164481821833967686145653729414254538554802126077607738944835352147245605102370519678931781493274802034530767664269200338059641588191892752079653180342638727536682446585372749252930609818586402542353337066238485435755321488616096645247372223794900733753879143679519783353600589236759814754774578038731850459219152242676849601918811029935478216985739200835874883918119152331366702404289769870493554846408251050509026937341634265274609116812091608521220246597062238722381480835145118973402813324337577562204781427275818186027278975391132254260759122227448783003330437755491551518593920928929516325309958036832557521800226400707762346974010707800021067298401186994949354670379959474009595037823789901578922646797283334330040794196576763962040767700125196086803676030629002499653472707294183465075921293026449671824989680148443472188721245763304509119067150715748143417860980085600362917381638887060526322052106201540613586722076078902656144540739530465057053271897599342391275435354767619184535762140955700516725402939485108212269586447277505168306583108006888035956574328252947913456197373532473640792569440187141851067315737320106707333052051148399047603364621568870478993280210507815839362317992167015113600724290982708540365684243750505294173930768275055840392909588718559714893558228489903269146745574626791356591034083190771193895537364823398239068971985646262415177165715116248359411615395777523751626447284805960225295530063642639562359043680403068163834178894311081471420154536947719327739663938451421187792894718844142006282394724600808713027343507459906379496525818098369572416118329342114169415383390882456971009121435699166999027215406719807646890881548572416947346071622564541855566524731027086259195779686486388354955597948823264942916483754346214167646318470490344303183071790884147080171681768702242164824525918554451248963405898199031966990604653143873213230568116638365720733669497049662308789086800025111971611117312608071395348008049616431283892480575103223822716166674793095801687952810737373672734198581584538253868278316085658388245953451952442487261390605543604061775714573820234255318683235448011522375944422751322634634811731490211481629651716090694743567878822630653430642284450055678376921614777146027904285091028908697375198541824698004273151278970083062250183513173181213196633159582979995517551016840298963904334273121399579349377257252360512322432773269542138698231855589976221047150327089711509245127563165218443816476515324000255492627499947936086460516292426934895637537037646859667179349906943245790753083589854409197782812270960271355058593560345699127819131068663662468930315810247792373506463718040115436872301637117354601198687078204485209753356915923794227254674230323004131494421275716466626080214732022045862659126805656388477885279879860880760804809829721877263919308888698624014054892347300038815030705656484873066480510216477804445659800749012276841184337225809669561944223144639154376293898784668338619267843333160820698455681111101411978764158878080616252656177057186320736293844064157680002881260185391298584684403748394386964321045725247081585154085893228597331564523938974813181896116247475882612519684766974209470740955878450937029989750413286085911743318958189956304728530107759124916991918002055890762116260829036216029553506839091566361134307342428721695567819401388255406284819277036377081927627655695179003730690867972517145986721330762548450710434949797836373772438044711862844681987770500981467579977247208743757097441192882531147712042968471272484963210548945787504021650656795909063994621601099246745976682255205262058369084079971730881981944806774490483067559615964416392330718461784050579778830613966786830391699128169243875196849765748574941596026531265777066165438407700268306865063685076812303221580057857613953244733429786992509218808141088887717463066461478115036982311833272464206200798944109186253834903387791189333016233373754011569919953198623322871710657953430721174261865861039502045659069165882976187603681643382887522292081689975951108425537766007921102813683032924681350023447311862574814847060992643115783398329374203751769367827538373005727644205409391176917063441561057689682710678813617413863185772387812016107999400012080513029681745404366011215553691709137919605450255397269873505238800260343538151574713494208840946403582337099619880274989257477345010658133304772287946438113607750216732669440979721110864415506622685115940472995641172207285631413116328023339410758097357657391638798410694375044309496056922930736866679678554649639374114463429535806239431922340871686451969859793840988201072554062469708495931168194446956205131095186975847059059034616221031566341482829423472111035622925037691600947742833148214467371623208173200811695206563530114765702274522096001650729107904972808868718676144673052124765040504378660569919056578552460151995601436879675691652883539684245610430838243093074576088335273992385646066369599380199233730048017970358617194515505192885111568787684226699370173729820487377210377227520646437666642552298783822776356808118706880982287177078351967872407006148460846958525044188293352917828188542127308484497668111387583286519248111680851370482906006050312254487353436284433989090500506047426744330147694130736259205278764517913595889313377309508749365193872729910613478370827164263815280695124218018902250431641643050708207763577223125020734346812348846618253612859412789910817492809558077721061298466918587702056927148834229502336008071810054100536059413104243201581540709592636665395400600421945430848399235723257226323685927115776932076817700116494298693499078481761921105887006413545547564824484092881636749877086535345632903731204057198514621563506961740476680001050490717084895334510366471416893029307595933790363663038637750597265075704096703507526429253321221275243742290358407073403306817888310495555400300848416176304567109587441441041392362228734201868389197455411849785574420555242778064067668088729412961919611919916398053192197777214230663174154973102160855442955984731853246860701072823469564909582137511633225759116485646969226039212841369891584299627167595114721513888129840547668603795500810904455473552338081888782601249313099434630948520212662866061783945341396777616231641677183045423666173745810504717108411147387200187298730195159739758076509378296216562759932168630574281086869762104249960104145947481952658905877214831455097797202152741502684810008736783374505608656703180180198096706466233265894407152191450394031459875810922913257425312180731010598412833401685330151917762427116668153770106627073839922059698463309250626645785907555007649792181271774131347412943939205724704048635835505137745091420084178624190349590711665280344243142553655809261945330681275762158366866617105163064356280147384199048943994543310693633689402166949033172157084863730603782001314427630146984705846690307351401098560820308661726795401502041990392980455967380641776038150783895001735485480850187343252912483424949545460889866168373205615028708013572299665852815946845062958054622616662702084930110576198018369593279949769464640445024874987453871474663731979942395806375473448163192844889710270336807630991209489054643184989022115251784645232345684474569958045775153549452752066819959150490682977648846077149738140346825649802363761079641778634302543195106203605035815052053552157314962400900656273602472472194521828408419397639874740558131188931264427618849012222344739299337101267366213881283999410601390943525046655471445017840021465886930967774703206287867360090517753596462267117568981709022092251158359882321935377192355689497841422002672163380765749495323616191460466864679559157086480033320796950601568953293873867878370766985888360788517752497976411249298234365182109609859348489664169405061306785828864446433440836445335160823935915506505853424787668827281914910609232079938794139778735923145112518233908649565010472938208618946212106020656041318272313245163351414608210376643327212089399502734589708680104986990252186224357932663388617815424496655907404967211216226953819619487180627761111000616622663358786904515839523627512029140674898308130901209797955058977565931110320289700750253947843242071245642761754969663290500758859047935475208970835272804473504633833410652458720519317503622488214818521035870508029677795430258879723122299148297191230405028620788400098754546674796114672956338678521483771915366135223005336616445898779756813203043146762823888459520518229772102618659625614000638628250655270593130550668826398906851072423928246944347629826671502919456618986022045801713669585441973663762348190849604000586322205370111965578686726233232867735132846397976552825521236591163064851142900697451518906355686453557883272338376247792401733999949113406132416048231037765438384549725674983066965164411260171049632240639053087635920517760229362690472591724183852134776384145121865899925660114289735246566816596529320202650787936751998190832864964980521212790491285828313885795104605090567134550660699053574092625131890588019318829796357731218940928228424100996083470000524418028678115016637691947090467973281351965680448595408558831958787905981494452947148606223131726827237553250489555766790653010504936549864118897698186828435262019070043849227558625511435886521261508108035348974547531767714197938525142571429927864725934203994610831249660157886471365272520842830094253161397280232217487821400989177808705077375973149701951518570977306579128235338619798453179585353480933377165567071616844737069262701307423441318878225516093073231128090937921289737604129479380533801726710350455982548621168946796240976094371077739321948534542916419177588259331619773777497039072826578449109197042144202684907425721248497770428648462633870759041912014793117670542367841237227269055074206207757740810427281370882140866700052947808928210798902665457199249165288011292332355437142258241137033277477202828574543664923978889050183293997227455747989850754503795841461813005723296851404860598717064450387521310609422510109647294276254117112886875362947447203984278238790738490709973642424614038592706090090732014329434791382164535389304246895578830106460061164440122832997079054960206820022671646514843801357620329404166494027647721141731720533054251541529084582354992688674427646574713587791855193692835503810922220595619168917528606749597942313943561376542175885775306834154085645744480647416988911646563146427800198105698736505732827406024774807174295197966016713483131138181599211596775475852092949992707368493630346945487854593797592020972465811624828197895543637502804141419599626991956074128541479864859674781786184137311306990211686685021009637977492708519688400091175525629737105984767950221073052525699751215307239401450462682507213573786688269941376490437225250845514427089393242630670433528162761604248372142566002586997364684579832562668505327375062666877410150229080417225783734375747986285290365385479531487722469785850754602609478656322158672892746485565079159485214839041229764862683348147400790824515632280777157136718249651505171451689272463534775278375137244002593109092452662549227439097120918988028101370373669277692451015148205705390159224457594625768095981684250865540880555224127532235136347153777797238796807754334161000379452369445357384719974142279711468947808199271539128036755716982862036166335693138476971939075308372673810330906156932369851712282186277288004277062713494030290405911880526632410700902984917377387601396660007853348022374659241868689342482320780426933839209871683803928292069466726763761806687109147148899089905992270915686571071746970012309086824092989902779451960290368919978564890066014538548653027168787646369801883849234631545220135909617139258826888501545552878572659258689232774745748989650729245041740757695030031512459085516584249784748175336564501854101054762845755965912295433497420301483143919108734177931632325181589106590026004760466386957063702926809299736699509508043835534364702894380666869989721473259052086864786972045828154546321605637481102866003624330893067757136327164878863216638576218474425360109037362100657131915251531620879802312710539434962895475455656725179141455173142925468601312524526846330834482374650243447522647505765498344448836158816134605472765164219901521993434213854856367147910166730937885219892571388478694408606946220118953928709543883935509426994056882377042909408750542249591203892557648346023848315498104756677290147018350556642040885627042549018647242920749094738921176409402400332432106146304542865135011978649521788127285896225737521438954113432856930986305290131853617675225205573733092624103417761538905444890171499131319642239941083805343050581966825205561124479453046215883444405144140110944531891202144600811295802210491409428350377186145274280552894790089738174698620391899252319423448065925416201114711486773004359832196550700047310780330356825401164918055796844022489150308956735409585713715739677912777572774939351594125307466194546802133594662452251008563986566076126891033263960193289519590794342730792559322385286078103349540237067197250559171053720462557619506478024528884430940145441898188166939755380531409264234706895520351386519179717092038591028857309560709674285822205178667582510750298175168003011061630016612624091314981000760654982941123709328132626189935946089960299307180999138348385966285065353321095382436698312367704352473622362446549481095526811163530879030912304661586726235990548040925002011652183176382590001415180975855617028286234286518270724905072935651723519696705853467858213231036911418831882510115288280685379832688974869642163263391400414149300017519201293073693431451589360897408713626207591453703267437483128587776434922960833962546608418709931116530549202149042167151704740645747561337157587762932677565660779618577567043399376667270022880354390136360987022850030836531949898780021484817793542327482117073549759428765800171568132291641467571270928448068564501058078612540192394117374301960512735362254957149842831481428796554798157737714884653530675652163936780383722636170410774228855059987533760774765758600641148250352871459007228966968829774174004527230315487608328571681104498079218259901320303537203566987811511515965567830850312361327305051807485670950581459817501698047341612563103077651171632556057396626799038491854404656825870361217584699435371584558075670183854403351451376985593552701812678958707404554811984839852573442664226645007193412841047426064124617036214765161458554083880119557375045483510672776639924192094685495451497237302247382347651217015192345478723889425508141818422521328363034749912624671800683408893380226752691329600975906451564606428305703442686296913812367747584865329374246331638257522297143468944038229866444100738356356926143526707252153511246755404639480209130759412454044007108717117775619653713420179689080963938375095561907097509564643201947647708244129060787784748525201332397372461696028947591442763065602985926824044000197582318082089326702670665170915308565361292227461497655422077418393199916278629723908007019989075528000533833180484915042319901242820974815007506425938341666007033870556368071312501391920213444587339537602352446734295130024126366253636590228953080503866406078133496388872164220697667384453730357065932862159516003991108477936084944258420458650596543578132817049292484871021482062585586296061377923763023666842624578115046425493379244267560740029961405959680657771897777707842590220647909214711275442160483943393086620622648832999018466199639263907070775590964162604874302089597632342129003110165620375210013294736502073870272952727253446023806910792473091140548403870750150340425028449763761821105102865483605144402081238556486269000160024424684043190523863263727368103149396021812582688493632692322453772727192220674848157240812075264916468255122302982417876045270162071902005274823858586361822963223524998114426589075284940014910965652993230774890865304213438873846514008406861623528974962992011751977724117802345630558962180657506681586899789759385088426161113012608495650625200654719168645056604955737190790138437490992369895397321910785577202162199078002459286903895607557716271441363975966424875911283210745147942263161097204170638370213601005290432771397845791783687366858892196562349741276335023009207839668393641056362364705402868990549663061104814198475680151302626770547843346816302729410150268674839860060806998509023763150422440846875354446098417939914946720750805327463026870487522484787692364301841985318587278189324763308657561896434232344110445368604083972320980322640000303619898425270438004608767893571069729017462487391660545049945099339483323019558449470971560921120848718842116904588298180213759099048704411892077718843565178717668537719853232426529904728370449458528416792812747159024282515810895243618214024603512200603317686041837811952104642747956732646229280201066634293640005459362163037236255699992921064614438869565087974622033119811940774970091391084824535474901607477968226712490141739472581096325868684592625162357385363220234721491544796603397421916796561470725719366512533717972956968104911953232347371823446518952557365029717704255675364648962539380078202506575124716324993140760125458235648883677219183436172002219709639466088562542976381813728606215967852255322425527643290684438971593343212358124128198654396347853305912008255168625178242445982124191197720119203137645703358322667014176357666914486293920579132270644379167936246127640209057736502936139543232467437431784151202557473424623804337217620439858490621762684882630063269307551666650793499295299973462946467490951244168902022724471278757063408158379579213547836065488421617782795263484375059749819673989960458120972326071580635436421646881913457663352025977112382349800099911636389114408105755102492105298707329022247138486424600691377473350104705449364869794310153831386717351563389104026273519663285546111487150304901120036179765612116725443660708424683778361103998101074429892824913808363277655552351537920548411576993533987930952499511390008877476496510577091601537263704144358841735368508417832754525966743483309136194939686083721230679670293039127988769764277450225204219513847698858942065122881753345572460413770903509112541539120385873106976319815992434073281905364903111566624830347526933980931790960365066482433804861989410479140362262647729920013628890289290345178598083095775951191640322714480919514733825123284519582252869425346104780698137151395009081557474508821141425718362082677327809475378002430203566834512012196828600004786114301676657706798899044068687704354724121671130148279477986208395832015507477137188093816566135170076262915900781041431723413907259970962405125404231455868706867816865710026481039880944357518572075603375035489356027641573503656885173153975451809582835299201324642412447895604750862765539502429392581522182894661758172985066557351073549603045957769934680081261182765915684900770213557259066535343463234165236266358231794659149239857697076055920544857952739718125675514885341837739316410931315855358233856723130564345291192023026861183796045788374412160964090599705260987667311760992725342012990064281219687371699316436873299432074684528051684731965323993710190256701000892587837403154475341387655436114421477536439241133654904750911108299036990621314457491550002973478879029425947189606193996415702949878957409413563732878511751150437074182006587427589714264900811148439503581620738593877786840233512567216823404081802872170076555999611187296968604728080421500347325180674198625677854222107351700294056839095217046626196185855966753159357869258281339204570834206402181084340504064485306189935474732197663400058647684143286434153571952893869205501332408217744197703147359942309201141036822214320464931439829605479562179075083729634509670645014843011677329073626081331180353023999316416824942687311958538081078750392336300367314173086010532873290778155565878699882914483469250994558303311747621336946552478337042020693132261677828197287911333369373578799817538456622332787799860846906419953571304977117600875931632889976106374135236644292370101714523837535339482286354898970310620642467330104954962556723386818644315275431958299882566560294708070311327672291362479154150790426773147746240381724738855362158875109704131855727309737005132595386145765724082385291014622233369629687992997172518897307642313776341512750989321391839281137065981751524915896747527721784567514374466718159327606273350062008044152202719382768567367259960978111640290593046906702259460074013909797314937967005177851875373605502959671471175979139903467763545586534568921213086753657910627061554286210915504294502687015769619468929920233072783575870949865372057890578654072878288148233361811383116110438404512336109588758985460922009048170207796596400183941980811765335991636747220994421139985292397583891290821522634674938527150191840253340002859081151517759325478915070632944329064160516727176097522947886153977820657393684719534860638843943794054290017263029126544791546792301430475383018152384631860951624375081447835941328037209634358617634004907573192675053316285167241195129572082228803316722770426549552867996267451724218077510792969115580447446561843801716752560346858004910978587371104969676971540549781326282449519733333127798311727440196539020963841309148536468557364437019419404676534374632427139777158739954421550840700610509080888750045498153589210896807534703988675365925250046353107905930166310842908619433534393608371725736315669938204680394432705684287767529458385363298031266430399428170719410268010028558387533881269042329481999460866293446351695089871010274348618053305918566394582457949738698892981648994089107888271054426456320974946031975755434280115484744455111028587025419017653320803668975498595437564763169146637495231497292973137823540620457524500508426015746911762994223859517809997791926589317586093614771376835335647926213878503411218429014147603878235351986192814715449405777934067012683724762370315371955410269710081682572825226993289883665927639018729477651653879241180323309458785154738247632441785814066624261395493176179056460876403905405796569683126811091616917784949827198558077561157572055345430112830681829995577806077442439790426071470653230353750997962142640762363277911460657216417181538545533268317051365852074374506549903859803980496307393259603413714267716657148921421644132425465207387068091383523001416643768215232536904333064567021911806021045684287137784116074311949945480559708058916897653167974441654772710165807869910001570247030089770667660182346396610195575166527622727405368816685011733078589417325834070430502344936386310727922693738656224605571076389971462921161395856599556997183026088866081336339532417246567248163710538313018746503060015382166438325604363112087958418046257839926046048869823895647766207550196013999192284004409179983652645717389304811254355495199582702402829497455412824943661465450214720483856050608474094215292998773916488095375954492273422655432716600613839215913757085279692241887788960344350693495269157389576936902486769586002083805833792124806507030325617712833972093269806608419539375472500953327105074650295079648368264445600934671575946039189967713602728923420093410891006047568069828712782719279272915165389456339393392192439925959706683140291255524483736139909435806225478347691496528895541581456176450098848742745468138049808981125743393598641484812054845397732173762461168506724877315282296055774150422549734290327423137207170083527093012497294691349531858745312699361307776235497063719687435882823232518329129437755769385945746371499361814065757993817600853757285118183911556076681421249143762605320574884328185183251758422881646578097655088327982197691602343660692125659336820538332587674277717984471953720174295544189908445882785681446607074281893997940252020953403837364934989332867374379835026904669895294754862570315672189616579817952550306490665917310783864125133598063048783677383208710499011438739313647937184328642945209141703633684807576877812604072183887200304495964400118907161993155560978328453745348267902512473562858463710309447878901734928444825252657569374362623282406925249369127069835988672601724840438369725348920427770723233229310465589342950941828448712450307460215172526411024379854370287283025729117927968966112133588531216857276921609210362654931788527043991388028592296247810863235137858338396397852840404142347431152938847854246620418921052728913256860814283878757705423589627803518797977455476691571090875600187542198794440554054043747390479601265396685602807054783690434038906828065464849614138127998794479953140503919473441460351554937764764259449214762125377115796242681054084837880775777767609992884545544948103575107952381033974722594182677500382911889279357953019544448649763249507073154853882764279701440041011180204665656955613290662938267816031269819270622556548692488146686992608366654535195590992380250327807462089429936739130654797232522040781863366917630393968517901687037519975818246566772810707551771820882021759665971570533153106868887326485092350497339925130612815145213238569416994436107165573460287021404134896311131952868504596721898975279751544916203214827752849005529934875646979182132577632284348584208751461074326154742649552149920176709427705594771024709075406463504042498805143788077649414602511052501305900575243781118791821069946300999280490816442003748395272303396301086755404437029795568800314897561283379831998602382438760224986593636357198562910372385987348332982792540935953659551050574123651536198035569097445882644317684179355955073840634700997737339236522733839834148429699002884946769748449977429905616722323783183699548034733793845451132272027463863496141482990385437651114929056893037950887270158220037949136180752880836803741921409437873911059710987901083036483021168449598113774315166946030222554618523527012273921995097601503849138185906155014153593180201462738906087005134113283302546567073627123788964793695559136965227952554575872720097133538574104662800309744185315992176570048955856085425182860784132623459630338281967488714131859280837315562670480419070903276223211787354215480517374683962736585239885946910398086662739924792915059822822686693754733796874963782720767532548083027545385511652881920761412602156119797400447394144269993019331407415709612562775935368338384670297911670732454244789613314600156053357993883388058223771380831264802216411948492563373045857907733759614885273869156172841313726800928474729931508520185939439014835788260522754798382797852219044205356767270761774661790892506739977083038297382185155087795745328081707975294208179300086359622292083123243942487438022729857249696395672453471374191713216043823679693256374094188786026635238600163589056420005878666242347450860781375144652339702575286605442564234895010312615235676804715103725591581218532898840353758853664659429207972239501809747860812600472469260389675417995983283160940486031872884730264791085850922394625052930573308507084276325673087924262910384545759578623733932937512858261596160888034769658286503611339889370059182115565071798031775015330933119657291922898797511381377864499995806367073495365659870167005349325677709610824822559877964158890010745688238048431084695723614462600012141884480965250150577058386120179726365376528422904842812886741887196043111992621706514199358189904036953917509022737491108927689622552642286694298909497604696185737605877093827276660560112942952319310060746357233831127153861335490589765599713278248312356597967462456610265889461157691810628947807039351363558468183433719426443756654233527343279653013011858863427320513289172171946747309792208245477375306691827149221955315251212732263306684377018380112355686473474788620103172969131021017157116050176984958372528840725680112131039715199640015427835282762211689957762577554834098428766001934378496804173935994014411028962255025639287127861589922671526871459420151706849063195764583939195294068585125417862270669276928839471393216489429576183041657162575069549576701585137017609406256249345657829339686012847479187545877997726416318388424701682592276767757516511147747968893984903025432781968073458158646109249549376771291019740985787579759290718344915542858483710936841053974240819695394473404520811225931966440754047933623025205887613356873776827874419222520696473551722514186166302783237431028687230340858747593067233834872998735738873905117873185150175706132369618408499003369429276311551896596929594310739411312045519838153744248341832774025714741192223479700331635403207896797380920182256856849409282927359517388747441262288193250554944873022184420129385091828351943186917711206821840785540125075194479434040470323713373753505386577120828093603052732093771291380596944716409885651677510693020563586052319135603910563499386338338357301432125217630490526935696746875638901796530613324014698287504687331344644429211529089760824232631054622273980869550352432228084581659284213298935603331693096831679435896679860720727837111149045176312924514441161018072774649139720903584532204754184738309612733381883398951119872128290239187671188300486370662897490889403329423470078673811097990797140488822705546941811573010070017948005097241706745533888567510643990760383888539772103488042130395148392490568365523645799768985059070409698172368190157603765341231747690131510317629034932822269404024907884038714956685897689950666376613926641693437644344572957300611702712899693158518308696317262377776404997811598548346671414654465037465008022415046385351242841056495020113499893764536131069599679710855183369035519268014730716447143984702458325316140263012839983864579951496523062013915914679886889870805750390921161373921059837315111183956440613376414490370575351866835267204089421040312475733179805303466393524800005733747109667997294068233306516900938696371668608662695041678214343078816236889433900633009069254842853528530579270529757555712959541768622985962893070232797985753219680580414682468843421792815588398448996749058908772980525702631554276834588014967144372967339052238502506924745201259191824640906162952055466987589180285574893181142696060040260985373772440891973453705828303479094568541198883619953507112296255132278045426426988340782200605224674079815298794006839551639792134265258372806344687702922205534853942741294450126433931433393018212460532430195414640776171492151592609050421156342081513566435943479484629400896917284141803662977620079080297204302503658279171178116504268988415023932106096386990540111337419346942250338504416381025007209866146452587775375912120237897425663723867221186538910815428600321521686173400163463159859701085119101168805439082538558108703577425804399196311597735895293901862935454505403181601649713211354017534871009718674959050618564168483278163081717653831358527249245435100254208181528736187809903421983540898093748499062088882599990239119197968849572574798629306793422154856864392023099297557858159825074395348999728821970328498035601787358825601338810779059226777783266373426971562107125947845976783621774830409116450000446149413958752467441639129003713072755085255742695925776132731623001745817437799578251048175766707624225358926644971114517451501713358978392104559089933109824313992547941667272364516720878249283839042779503760631750985535530837794871365434352791974494535618100726794987198838023057640240344169529018185799690799064254867409723758331980582170578730253385419572271254712635365764337971657787918870551245899597926801103333815254621417708036179110329566058459466242951420990826623988580982549099960770046883042053664167098433058383447238174051259382267187532491039030560598135271722305166231899825332944183357626104858780654274768978915288017215829742317607088838902020906335231712888195498543986292322628219020621495812568381428763357303437118568230966513871558579545764507705260166164988846595162693315691696398288094957758941539964075411241776785204110437476613486702966238698032901646897460601072438584631712211087100734380650008361630339969892473381795382459726133110408349942907022261025538111548692618153551760269326695873334012858820375275959207221723258862873265531261492747458642186020854923629186736004996914842709167660969036199196908165163338333921874367169329341226593775931049207405344367871609908171628658147037761411286484479695800078919310262122649402647616976497470124289168645998849347402930820043622478435032712353931924816688788091617552260726978562562115760061269193601356593742576964257174531524150550215249283321280918996083403133934638970372379515446774203339233353818481708564072356569849226165398357743409882938043622848068171094937886349812571750960945778356109656156974527465320571581435150716051884974310928160404450254009357907240973075815477831335704529721450770877908886789253186319832431161727166121875611220238164168718901635466674142968239043844305604675868943465476795325026535599281288606699931323751354400831565803595865080222327123794312248589786120550374001329751131658086689074452608258588920110379512624354755071835549289206856671974821132710117468364225782437719168032851005457233288384541901102916300453400648581938197231718683796449022093357009940949934157537758972472507714223845680916860816299476214776587131572567476824193606467586288703199391119931464243819996866851079241791670656620226602148658538830152065680557239187002896762169317746583588105454066104495369894998553997763061197307115947409393240214351436776475665806318593141420353719722181433744848752582199351102841413217077310484928326327476790615783304473811385465471119307107636767908087272472691843190340264034503421520265694596535092679208163469940386644119915627081244631194001608816985886021676084346645257827104325137000619263431253778825318429815274094791981162040864326775241430658745624173582709714000871395788482245692730059448313244618818469187150170094813616631522512196764725129196912587387839818578037645943575519599262350317217517994653662703813662367429486579763343694915746694353196621374845429543370577358845410469257537876689344852391624679535780935998760764237396322839809042563960439795049670647146352151490951398066982477913872545300899079365462713401020449124749322106728073071790605526120452958887709802181248763387639968793342953413227200820116131858958424184744927474178856282810479131831820205159839792886331825315012627904490256106928061987167695626655074320247012226034126232112083469507557343715529633125626834043373096050288855337825949349786222751543755567569188257938237114274459394636531502475013009056457326366296249076146479842261496403367192728137069464801444793991266894546677832556741951115228730288155602180597483558034692775767635270196563703022717093968368587190160278473942061114507524537955415738852979409563014680804969522707672644545703832275953623857715107015721770064171015726737643177151468304563374494635115109093837495637557141070919957593278224389556221624888717118269768142428689909959369399711718059717581482714902350372724841744520296994912611453016884008447525491121113965161459703745496735077115852273905366151610428057528497553042703980451152010363789479666039882191900241448447687935933813819116206646421702650793481097781350877475204237563658732419532975015028851808328737419339382193221463478909775782393122759495542708908555702261199786310568150483252675972046633425997829716996571535840915839720351958457556728289743570193612972025855596219188589905721583063560077289118011947502149878539927101900535067218229194908066279817228208690415330293391726990873190794965696262393438593496144257189863640135149634552094951442975640213873913652462697656197200767103421082513343475343109338095343460995773517648630599626877728580839719932732710065019781309505549963412153434089006356781008012265294853288646720681079681527681021736755120127521234843235358485935553162423304031439750348966323631922476824982236405624839946185107135530580910749124288479401444657042958435909350706819280670098154357475877521772989666227646360833204561369709750948575139599832820135413030971097345013163131608019778965503184789062227538503023283849972518703770546939286723359168296966691089503316933455819555635519230255361730209763794380889128338257425848083703555693619356183387562167781115354347228751950185398469211690786661854187167497306019072496117564420944144181116947333933521174198261916035189432350237398212957024500926690899011797739839961439414124595364914593636450597877800109369902324078347069990735400382191048101742123982124072803485995107181021781825282009823253056848703315841391768323233750723743027109091983199527251183903330949404862222986727429889690541949025694684793229616240581374604693886747453342299645521220951302652378624688135174840361932338909654219246109832712235979178587867859964117190445887996906241749638688553958107461982942345928042061993408865785248607962769132081255405367208322382861230855702010330340306043843284542785105343261256177692880219696812071176789141135490282241556280092394435170238942296407794323884194534595180954984166927125937061510128206659491081376988075998240900117027699071811881849144082048425256171839173913437976216204674398329858751024895848833832102402167284921284162467619896008079639324986254091282024633198982063605061229334642856666417314686669020452116366339502831091721737793735141199298687547959965707034897569013329884163113791371388608381612482698163716547249376458493501974313487705697836374107695000158151003740862944711216762756520606174781629121712048963715958530119245062195965722299380018291942331684466558638451559687894732986107955409754178383295132573164315328279865241480258228508162003166120634641925141249997607138794686324268271708870627366701057486731897017106866998456086480481236741614322587442576568654527555990564200684802386987421482241229194575113959147274257967189167529460185936045936350666532176496799170470336818306451666140535706060900290311635550465048031472300992407457490929018548292995570757803888400595290777016335869987980919266961531958738231774011726514556463883919849320288260687494216886334432046179865279997763053361694734557679849694785601903927369477389209387614122212391474004032083440528830116419547672423252089660358805689030248683175913908204644328820614368648587876648960018868456143288044295808177889116309127402073415885690835039238421812980547888564922952722820719653671961758122843090545916494662118493798352282367947548299431623648957594448859049181219875763951538414291570559135533129711426426132964300855537953734151367460298364264790516096669857361133299962588291615684633521606700067264919582056519305096869536650454778521592076860078717976722733403691829641924779511854292290244387292817919890735121255398411581460938270357476784259486584393254824262003680936725586668700396692876650909796963039905552917192395004426605206553032259162825305521430583150621113051285422738282167408998614465913877320685068659775234672836542469623948193457302245982933659658011607662201256916179207055257468131126804168680688232739584672989925956479718491811228079683166389442446411710128066747759775415780851926084451820738160610606693573569799778757650399284359085583645579340896326060561355293354319719512273105075256065166079996929200335281774610615089127610241738113422726615912944566075158682249543247894621321191223012170837412287007968180662811005884549172382797721013325523427284809367935490515030126864822051256118127664816847832555391820095187021242624561085879872466423602254385274408774080435725561051748557762787399061064582632313523933862735449803338258210349963580667284659345799562407463502828414422830672453633939986591915412683671578509869242374653576567464789207795927671659612203896794699791738266588003378009293667132065528924121959292894025487312980928702657178211681617048494311432635951873163217418058601047092758976005004052490308823805525151420573740318323133328747740941426672637280151941125459783758714601179858654183126898385182304456869370598995803036676581950127988848177184962308458145954653972794022618881637934628090460927350010323189971618932994208679030520752876059069973322433921446760819738577529984210362679148184046114992617604126758269328239927538296550951163355381317076201273516773400469126463060309307794370379542168577779061809020178157311176672942332129823382395214838459955294068653101573840347665760046329211746601057001970459617030291399661454011292660912841658540322510332445227958995049082158998332485090770907277792247109639317168719908817520133605158008247379744115116616516173110836179536310494089734564189463936305806502446833528810365777778520264309688582619055084803676953354555727289500025044279969330473957894367607638474482551884132266036938867680206450086365216917323647359000215596183832114457771271498833390197172429507885926586866376193656376518024734400199040618065992863160063033716267089705282352723257914600703014844816209309436962362047346512762037050315516857379886654488262896606596063175465180424300356548553522488404094515970170656070186420354414944405941359492094955920759350244701051877465573301903351083507863207086151054528748316979554760847990004409414243049658847416946227242995673892028018819169224689719683775710188062330974329025971888733533515428265304301199208237660085910857596811323788265796243141574063594840263698853662372930540581204565522706952299549259053984443618280256903861405776884384409685634469459724370636553732461705739385451850052958843860368556424389669360884624271809642492143048598520082358118423308201674126776559872367589239329426385531221006010205846713265167220201353047362614121334817180377416864158454459454763891191669037031848952305359310758571614586348304688322221414677615545197443162374865160554388167887256533155321243735073608880980413621338934653020713879313141109689250383300799455155884305479530981528893541920891067847085362204864902861807469910747417055171782236882215571382612291658110062492470110892487746411475359683075171555065919067936227594289495162004287292743726314987552599773407013192889596045982287001411463646821536376171477997592941292300361623121928834791503750826611349815143384313240989338597623790221043542896076743761831570593325514907609955996088003895450614679740438609390759308547891734889604363765353367363746421052033896410421781674990271988561880398476036619707216145706583237717683471898547386890476717898518568225168649846442132550569316440432971349654690176291168162255021806924744926024804362340526717735273834813070843802487346533250251074874852082996377080005166414467860594746732816336304342928150227173257917249176135345824058741349730721763791813868873395757937825372739502243959290994021590775946302907397045936622822292273800469565087286810845981424019198221435186771816186951064546900602065459271032565746039848887954120926775080961034774319999547100396398730469051450069970168341675519937831081031457593869961707050401907015965699825228424656410235023202568189431918200345240758238918870522831880778082611222657137098312964131328319620367135999912818477341912334793622090136325887564045021734090952990730637675747723526805658961882861890584675855663033749705958939217777324106899007669638763534266949591716769691611955708196117644606741235191482561597878881748760262422303151756062384673354670550221739594524386132725463938673124329550838742663820197770542013332263819438913251311958836392163250567936886520708693195366230981227935179976530556778523559136702988624247047946132840703736041551058976585383032133841653647017935915595508990339712272232505775336719617495041560638370598442748269507880950189877809451567182542224904006617232607738333739841501128182083940714250868121703015361788469587489108813016087014374957550107671282635488570353986371440714148472819878402042987178396186287684012024268685762030491093295048724435829558524596572525273668528890619532586041798315265591248925211165997273508292154135873072625908327160115506614858488264651356900026869424357303950204653981919796552428979379208165353772364055917581891953068940020688130434118159374248926669435208319167426532652053775710950552309297684022377471263144591775595949918178689620390308653850949878379447288560124020800174206173736626539019081833413094099670893373342988278939541878546009752813990173912332453122130080512672989365522778125368773616693651529651949469735391811103636257450438604850850742363078335312042036207069140024352659110502745738807583720108598827065608751988813273635954679573559528948186220854754553472482141848399645546376448995701678272942450408277818185001717307876095181899142820457460655506809722017665462132034821100153390939560509926333338018764356114276916163205460900782723588256958324800705865766068556235617012471851458846430175311950465041125273608768173831410812948773552228872771099607037500338974318476490699734392903818513072115136929451970003656959044651350395862949674352583212851466738563333929696766782906967592950815453718873143796820909507182519050353167497752267875341469960280915245108406957662176938734087853580131700698477218478321530170850111913831113482340241810236700143548394175927523565573497076729289582494885944235504654571095199994518728735640447525231875454979262000898597694197250163133875073582112581326619126525545847545072812445932745428806869164872074830714966470222380862305801831220460974339946042710803911936724262946285504893265762116819941130136394920109154060852426001835550626858406781285439034200569631269545410520213205409357559152127604177801796166448179830820211475442321528404745894144595740790098687661146078790959100499096632783079376991391313069753143763483117097483138209148363782413949769224561249094267212314659428921167636119718202554149072916328266394036052978063625694887824784855474148312263177512084937530451837874355906282272183202847065067032396401499478589482900563932950882394891652610037392179532212995296907649963667978513226915972941143405966815729748445339011736841288235836036329722163641941241958556739430034781737821284453547277451676999835611920651816800247093045650566969057206612687377843786886589086954381990539381162166117354512770050994930201808119188713237787006070780090465067053288937663709051621000885513544492602616982217777796341056274793705565859077392284349188188500642823046529252771598565125803077687706541927505392734069951585652984044118877511120614648638055377953668249875285647414010740525467309090435479701701816474890886048522305637352812006738630494904321836619541449783301394358547705722316921319308095790061249852856348940288835305595533993563870861151455745809551204585900808721914861398390002498190424081284349222497200509088969997483925839338018987054114023692067780524061859478845842313634712723146965778421387554417579762974177149581570320423049768442562293575642772783313585716544228342164467847909075999306957067134639935849896188613409363439066655184557091068920800533176512660989245108382998240628448362174333404915478410115578012839467122283735047502444007666173290203226796025929793401731038201451573782339594083593654121656781299047237708968638439265556884053480744278116471879058022919430492430812516763792346683739461169751172304283389441943025857975191224914077006692141602091071185549208673572983233892400539887430042897346866930344507758004658745884173031773050664262087924178023485498985484609391370506061381586779433066800142655328874217552979688898044196582102971019988213756685233817772709054284611960651917481670391428274815075081131962939668468373801524604010643240647900851792417292111834008384141437869048048303193976710949974543639571262532532937584778423204353277506934517404953657658926165396506464464757289798758868580920580756847381221345095212612135427433466310311815839642980953104498474044084254838245153336165289996712976041304761087155289039779588715104726830343446901377047846899680614670694923935085867940754918123307599669622411185092964033259332679904544257213171422727321319725291859711784121392615174690427341895491840224146991480470910364099050392716787188460117803695419483863014692047988764359057756090704010224459681850404494477034122323939780272890462820650668049062865856637649371973277914843261345195027844434730838015372564431544081443980574620769461508518509167156286474043576759186586172572018107071755444659920233434817339944587574867112201930473976596307659486233607057160649899543002991832843512618783874514370175529100842242950135670914123294461709391993546461194286212873402808644455916125395086951003290411641047797009564921089387917117397259350535336013072161114495954179200320382128376281267659973779581880734853762368518629148044582493771162970468537587509792343933134185962136900413475839035882552000927236201287284718509199582242382299469967312297410870742987200964667640665264963104740142372626027407957717060587169568913009242530743749881266999280796606349734849886449360998992866623584158197530442351561899533021099004726942237240026750354262717755797941459048720204563223653368493775344987098453575432411757973717934165156587403453600669118239691417612328683719954408980466483075897919325361944506906242039716350571047886425007692716582218813710371915505384440185587346877829987347309550567531955632834345505900730947300545578427948522158533884029516114046821283697819462110528333490357930140793717192193893368099693291528636704648765393152826045826036864404117969087766870694036264659930696382713710104019487596723351853688031557123598011219533687231800626542038369979550762701455812781217429721418657948724091415798970563149264275980379547499003783036553341984023235164040536985722502253089262514017400877870655168957449975526517984991229732113761279514465998838411829233791544564870936029499012345737274221427383049231218018814980008189996932959909354389364721290378335364920043139556120544940905803908851957556876259943563603499338891119821904419435253869118284734248701817012279931553212536970066030848029369847667882442813636706326356297718373791352238589675766113206021088999695036996360255375222853075037612095765478970329714061624798623621514638449920067480470266630885953554993413875105605620943863908413771070276869089534000173832870734313713140674811362226237778385459235261039156588653814277515602407343478083389915067723995696421723870389297940740812396995655949574703419605006771759638837709862256630760214211343309265022624060821725482681409639881117280114316745799031740550506134847893026780972954255673030737494140239317796431563168049722728932421452207983301163590009546870219939955396525842999296167203569670031554852305097803568927175449439466684298652961051854258483913505686157728416146684586057336018005038190291895995649353923324712587157421787632049841652245196801103251323957704848034111381103940420936742348962191383921865850665398688948231679907857020302324393228731273652569284359064805172703157188789805874600155347919982038746597493335828937725558337080932410811658355217416771058694255383737507623367965748806809351524766772591400521286431224751360768388825740359352968542954261626612881746137174777010948192535439564779733002464242845349464855660421104304225967910643958893832477864341999004613818961669304748385808365969312636245221680844575789003447549439154256143443701449597981772204238014925689354471837137977188289752969221401750337409948261877612287095502537390104421284322121819646231264488297012753942139485109945987143097473150689053158542645335616016384948506776630668865500791221757791779110126833462060880936483911435756616793274301684870407844459592174421184185203488217788482939758022476599424485192571120885514715897217418345055741077719166317182775730871855176772030051645135601197719373936851496394579855884019073286028994434174831557788057687727834373297772650666593875636129861726100131902923992390195694452855873375728698982937217270957501044672476932483292457364585486655829772582495152945284842495006321266995932797467140248212148381426770080066909249742878742317584173029022175974903250688606101235179268869461200880803904636665019878607009811905955486935720507344239449201292295168652892079560512769106030780497627307095954487083846855928920613607696573052999102509462646740107266215569803712505168572860054006147165041570258560741705455109248275502435218689447706826855171645314456876567827356316154461427750375087657222199031845139414901728439994219914113265780357873989158595849492928209326920599080799828060359997998320265359187305990493648142326892863613676189570532673727835047967721745027612911203560720656403226077175405193089199788966084429284177678785635006084876845322391441638751620587005898866616778952440426306386534361258321098054934182476126372440581551471334209933092087584416429597929438549033063831019670614547073836973803516988483260434315115004490679345802879540264718895336657558910163268666975546999669978930159265373985510973635969060271541249301717921696206393089228460351361692450713735659742652282025237761050109494665456351531469827503731809189044499182911210080120151486260138621129789212089667993215459727066260376011070663371144261970158612998266677312870878825096086720174749019143016371616603245215325988635116280956814139329644843745667977312818060431663900759795969595419828650126926657261056586791012741792450189533642156255319577137109318759744411612591045172903109482584511111456041846184789333014034424510893703986964826619846362003251131739665951894052326689996974269287515733146694752536258312884937400698094791828172132978341384859855523234422289044689800687883080337461217539095025468308709653584966172828858886486338514456804571765749683741482987342023859576646210477747576524713522096854633173055227893738089875089131615271224142661917291527761317741139143875105056167212912537725253446045333681779660960306192115147464674495860344103852684073998427308331258487845097622171351685680163797205942329584270919967606584335268490126221887061657431640145672626691639341496088657275410892864352161870546254815128950378261145560471267706396813185592181997422150270383182896966965864783517578992402151258982748442901449288990448642624605868782278517198575467674259459070760617811112658240833788279070019425895903204106102994278836073741724094715472701471053073482395959189223488644357461315422183753182459237321663364222756626115955543938289818873683781611333318588320117270893639168391834839205346557607285510713648651706283056057273264646930752358311380490418480126374393721653569055475836144277684936761230544042386383922556607806204682077333235819889467586157279371717209084151436478926974524197738485836891941353382985294050054631913883092711706965213042633690034491485923948108733473586437093638002641788424316136421274446693867744157118440749041479003951371693104216466279111690547756418397916232616928514948088805462675937308941003077565703033918983797795052263405150995596662171194401163490507664495958356385080511102370991437666862566547424687716312031990352253141806268570213481037324409522385577056106962054128631193142005810022210406524898979408338183980493535752562802610161821010875853447409692615288761804188705507006209875990687312455732038936521510808554826669652779541056035727309238151166991052862670996283809024186631884699254026431135291685643220876972221308840384070755932880138064215102767812804998206073276797922638547359849306115337254393537201874899571041798361917552254495368176337201175765948531455843782815216903822473761686142723112380185529456689832886643956564370403713161804959540333340050569599909719099229479889987984078312513282765090584630553869257373414258045032876583846040255442721482895153405191914903595790364105499702217863194161388438982991003317071793062412408418308177024339275659591792237892748995250839132521388448943430197267790022863260628993689746854129329254109101101352534915291850315307309454583100960958235690974251513650445966236309082026758299247884138131592026569920004048745849251264130224301095733398659777948017682319512150083948451469123954148069623080460855339022478032206892676480214907926217387718192432010266309556845616721914910287667004366214997647109478053850491123332005472864757511614191929896344957148052605312454632736810820206484692113757409315298544933739049750079913739952768805602899294414299945453966229563883297521842894759730595500933242694607582000096836140339117130048102676206404500456951194836220291113697455172918745390596458816906855662223109864486666382179762458024158229623979108535882643463800921712576329164962286450728834908084933526929250773825209109575515521339845143470003920046136204828726760004611099268121363293501217701634043030121777854589425165544959886359574347831457587021240241359106280096424690242046831798890102679010583194525398891054355196044149721354593398006019912202507876285166929081317837670270186829596452247003893032138637782043878909365583366481154704163058359930705796323843609249877485306486400974671957870820217299331814265666561377513330827952553017719843318946035766997595026781367769119569087694808958898964014977934208052254340550921737353241360649254018797497261366617969260923101100032532942870632655643357457537753332161200526271400532334039162426802127722103595452358348984922363247266776448975901465589504808066997577014900791761750318665255840241868520136929661493821876496005336271678175263989610554475210861742909160559439063435085025557830964628059323732549552844890326199223567595088834514536785770643775704958324033205381720777706193662085670307179274079951528893599818181603724599665768618779675789163686712012872267810991337057505111464459730623454899486258947152847650391125044109513331709428406923721737639544560652226875729935292861399443804865597221656910299787668104356039209548118093952184724797175707736421976065072033291141683311145338036890954328199698036332532725739306225753736658320239223383312509980961472907961218506416199302468038370574749476861359498073725697206306363849529130811450234777238066388651926933773432991793265528367653712609395324089885057780163825064245038964337581455935072824679437326371378594978838323453829560969368247783521206553560967568111995356790802682694223748151089971257451841409945110510019383923264900480304145376038288885125314716825960556977636418002171742557355024559523944315208556245865820481342205210596956432583884039488100825438301207509788178515522401612280042621942067848529754470247055808317754698287115182949305017428582567197225255405002395732844754959827933235808868144628794865875492546195481944202464168644112853176040229632336457876971857470658282776218290352791300147582330549999097391732138626982912099453640989371525415891294681830089502086152872559857500034285413111592128500312298393551421565180067322752065988582890463839523960855707018564085933789503202476400780885131051541075828914290659311993269348226112082312766609704182760665268077984658493124425671817416724626066678672893374404815231112406131308215737433057879062526098238523024867853774993203324254548412679983261397072777169515638216165523338696252618165901370111280717293209627973436110672033884558962731210539450557331296283848795128578373634857546966685351738463513017939370392738317385351088371178813129813431969065153138855843445777520620267905146081060999476510573042605970299077017008470962386104432286223964599010637110328407457719669991320791956027491305281164430772294648668642300834058997753973237121671664438637318490311403932734686595191895749473046289756204058890539846948251724902380060843994432843058576226597527956508882364720499869540691181102229126147374462450828354967055242823864339797365907241171008079535233535573595736359398264759898458980515478834096971609650463071807587198778706846737428015849226947884835808637743693256982839085703525733558529366795065355452783885052221006588521042156128742464627996431447237776069917937757156560849715540929250446893373148455178854148563549080396147243103438270387925108534490874408981592008189679840836635047810357698968279208765806219197928925857819650892523915775175494788499391712247105755250602188127233223473682820757530897158962419856628549169358484699995090269784033254483060832256145277400460345784793246204297672506261972334799734652393626420028737658043384080150540961035718894261241896220838143500775271960735704181340977374226826938322884227862692639043052993142795838466368382598383513396651643568920449739424071171719944066268998956166249311707547693835075516162289887811651779854173974419456812404513624292521001607060540303976990022660387791654416041754025697757870631988721090033072762282708176184910694523533781877530631074461378249607105466638494686687473708833489893263707809252512223594443072804038725083670668763669657401191819459804740249399045060964778949127868895860726979844224194439942126687764853389912555324521851191291198440129712565399305141001849248379279735715201706517149089339475806163203933025201981374594726177145272438380545394565690028604680579174579157667224828871822035488602998648631461872745523402437064251408546644311073407738711270263659654770804667779620442623830989189321533217433658216081112055794643538258450846280251110562227257227309399236050346745661827858557582404966454001674616325168245400997473356655863854409132158410635398606245641638424897599521032088007962000494502171658704747989951623833019993327664221808593836055736872736970387371485169873953492065315298076051545335782514158577034812109460086550815079040645090175219523627981015500140266141687955307269360476932271858135525215553370421792360023133598008962625164897384969831661606849951085550206289268407669824964419023834849070527535705391642130879541872021510749608909914318117137643482562550221044768023030525080470203084842989745785610492529363041499184948823404793953258791913636392793313136719306648218532124156548348269873128188945987616517771835220782432279177274818754961518099595091177587704613010639048422555431275322618718256235518238571832330906454920846138743633791672623255931947246390909256777524713898086182736195463727985856719341175797835378047184049409434655234319683870714392013617112094934406469624257258547329085998051193952039264362982770696211921482987008440038140115907553424052566670881104359502666008163798187392315397385003864891786673073157074006999811084793472624727472272506160935869173503203482128698364629410647154993416807883119209321870690993559518423203175066653843223502138431243533222783751099884350120768234801331831760538982866372961316961756817903504192081117475021995818818653304001164553857491202313087598235862157266661182522721296730264453151412376865624846311202306878541278852500811327331737197778685812929596389410724604093459249374001432259784868002948601058959909638029181617731669665751796277666226449676473268390391610607074859872064229874869150489975444405937854966559897647933036782586522842272238976059103362432014234293622178667073150166672031870305023168410637152617739626686768727767528323175892618588144463398145724584005655036926381178226835721882850365255686254110718022388851214530435679778621085237971881253008411473936156384875817962839747389512179189719975912897942290254027553247573332338564132827348879078890865763855407119985639230392718635285914700189645163278998950048865588311584692056595691063810314663203146049269396818050467454558134419224857939330964033535621382920614273864347140133202126470675321418329003188502082234272577537968844811282333382234221008701018372578678064248472521886754312234051569763844700402089826671610922266393275969487012467258833515035230694803783048937945850031714388005257605286696748259016622521841978836851971575222218927676325156307756958157409900673760777869671124918300124332483548405026839387600532138061526415023870427430407914123609977166198258499442459281530353720951235233840972507877845304802513112667728065872535933303079312047762402835967774419103169690277766573937165002423024255081443381522964536967155768705191683520413281114873839363804022856832009278646773210020060226991007176498660257624745256137261830075643024643224768607741761289083083843454737628851724593877918193459049068888909626157509143240687659375692474052960049394413527920074261443394885401731838431545805035909544131878321497141320449923801634322827183933745501864654087006952706799902565458990304309504710615029795128536038934085437002308504975830410611110917032265717166701653305201263833936684338392952408003297768639303568561170792397410079673447899178133679560990256107386204986967372603213586438313925321437016806291184698433489720159036408980494563594551767402076512208055878323707948397487575956281132267759469612396298981888814699259103182833078461631435975698765076047029590291852406027504410512992584933027147184097563525565534274131236854627841693042200463380940825405663283904774115108984771487208067153013173296293961316764042190272974716446959149226898528345556173096283463951242957110984090133813223423102392687156530697633911680003772473432230829917573408450644959944242345131280013128907480815350901967364453081780400009045322032757433604039732154180321895132594566603009101455384153056954977222487920549515934178149563425924246958502825923885973784279623272893697741214814801568762299350970248295363985141256962405694134921247560096577247208874183346190123902168036768686759554897006642318751227626737538681823314468830399768780523982377421743132235945508632857436161647092229253005019083838265897609467603634515695721026003113495067985296842526294283693830043623642759843554026657358121072343348342236521614419569963320140131907809862085207877011401117744319937071998907997526653156996922412758661988688162958038985843886158236943407488339479644839424385693092117714737812474179212671405418707276937148451952226104019352335674517442197741751275624813652636038111863853594211935982369585309263829267103611761462464373237267815268469115537754509179813001984065234435513369157369945853595298268027765865833630139089254731779690686659766131379895579625406361780747437740603329638632189150053546676203243647426382423413037503496778014650222257679452578699628536927177649435230863257574953703748183907584116003755887022698496863640281584235838162254340153749363891233761487220976276332006140515776253954153474197339006150866570681956393596102847007372029915401711400357067360811315338107142112299893847501109947545114151028192609870112826880345997392802150331728970868331194152353312343001832730947400955547990425370761825816877985331755808611924632451956591299737603995495516800780101570526327018666283913295207022768188272909037271729189078593982595693146077142252938827135111682277207101343968402716580893598405176644315590997351178954949853049018247551201693482321230035772120888816737810422198159285206947706970998828292431212717178834278006631785734944018466760599823630287288633666878320949487409511083164069424108111752078317969013787594899592369792899529353402777034618919984154556655607506956638676211282249504418261369234617115531126691749194416402530644214081438425210617357811968967207155811997601400113363194975972027001797358361475116009125461404171462294348773527547503559057960833262040062043732200571116071150082188618962651203601042358414791605879188859081147571523157787015472701160646858079519608889962447655312153424914964246724102214703042667874431833950257789115699464908559213017262354134715621911530509888504118778347494532927192654398008726591773065536946494408316789516260833654020636894261632511624193909952162080646494812703978882274430594899531179239230586923174152084937749664937366318912828223429551683569396108856386544255338596201534839196234444259839515892349022911772794759627812488708850354397339170964879761968594318145491960908849563064114362353388294728527044952805942093615273919193865388108086753028328717927573573745264450934680861522211294128985168973326999849349016558827662030708357768708393465652652872752004105364352156813747992249156596694587787099645565539449036545658612779720093709070673721943533362987563954102651779620240170925370332150263720589504396035534546162627077943418998941987528770200237426089987448651247711169878996225701209995393676255991995935123045648795104907283779327719761004936774801410142775793458041376591185979363177957797817875102176609502456734812019250878138363767764678302416450468759245095202515517784684803072234112881205155270310151744424334722981576818350663109511515941639119449023139023736090282328104380555094071506357231352760036573078884220595502550900944697094794821513498928763182479434310824302739283175655906847569605484411879572956781778782422775838637176505535885087652626731471609539847969398445846746444090481047546933197329468643741982964375248535184372259441396249689031507735366820593297275216119725059678724013866733649968811502736963417733616998440637360374234840843433429772188657505982641975358508272094201768030097107225133074722370814340964343651393238805101705460473474018455663740956137035081473800550919163906660788850385645872368257279188034550802000290383020176027633460791532051609968973771056336941669933492773719763326935576422425847416322057835139557067153155593816035922534990713718607533413638059479434123498798830832062962022615242636062806422648961087021070546923524578932501326381522451783276616388063797521879625937390880408048056922852996738654959253120148132676621860232481188354701821481218479419420686989386394863757235794349768833218290310272156154035952641926203991852207743513973136907203013199735396777221405943431482124340924340101723358851880331892892825292483634673768248806756839387460934251308727796749160893772498095740779627625197708719084822558814853066908961117305007912345688080657405098542683131042923131263906271116663263567098251105175496165052967344167099598647223412609199666667911678462124657942869649814107774634555496595631525109841342802985095064027450946588003098134799143103162916228648354178302825487599558498710609746237878307433739491593771260265013068595375253070968921718108888151919126925289087509172151814919955209870715241531838678385776891586076051521295418157137190513377113811111622997318809480216620174954840762367139874091698437145831291765609483419184814097698414863011754101668626243400373732734048888738038064375657969841811559922462099090961929321490000813633249725413110285860840372139992805735020716946150046614451636770390895748714850619359523441901906620500139417916085912373668116793448599037642532562308876450291623138708993203710028480292174042298974088975989262208925911824965496562786646296080567493056010550452108113497408922681320041243454690586088155165918535925874102199698796824125627367953573261936235168153654125099990202859736163326532109718265514588143895027421278051825223945634962843010649897146518408331555210934034602884386744116219097488819918085413094755755901053051459572997167965042620509778249091430997803340493450613523679964407474729765582815111490099364253648192893430650054052484007403774962149414506464645735154801983027484359930323929857576282816699310637862776870670509299004931163814112052976186564125750197877722044363562992241882487972395027347121845216000588184478045872516889890933987256412108034337796365326307396491468503142642785513599071161503562534727732156470794279831420099296780967808726799055136437959543815460451150380093147746679246717382640373685114233450316690514979607470900428586146254728931000622019540921716130880554840361439749944271467555473700933719897868720466012592341629131402252744893017190469849000186077549251644323774387197526868161365441386137918135264627881631362467179499218788397454579944809467618204960177585627472519332742577132799388739557506878241130315207957790077306760155533875720565835281375820456382628871654568829282367692949269276579869321210579492393938623157789503912402001547941709602517093168825449306765693817449717837608235876774164890545171089775920112294159844068100816336203164517443042115254825986959326664892913274692811509455770813243435735633761863921465491951953296802879418325497082332024667109639244720550651633746479219326108682681895992977673227992078895751069403936407817620919470584768379668281815640145859598152671259074918093429199454408972815964402226988983868591685555623110717979843141250922163657565141993023849427426016245758870726167643242231774841447455495187270164427038371441211451773976930243569152069342013408887143327864897924629797067106385907946903969470552845037159971983348994899912197005599537708338171661764685550284098616372591454652796631628210554423523009981979312773994997647300360472175457520755467836643781045483786740756650511539380196976434520450750840751488101055758203162487957823567222484475707497607463201389400202841110953603281025995462568638214211702998107962654360176624058551443278044032706953779176001885766343470738256350257407438400785798746970326384761111450476841483126550750145554110661019623211574228011345794909513338207325708582457215864077153517804996681154163509177078624199227883502013568548091261056222097073912369899341962938757634286231635460543648973380711804148535359494678429834910855258022909730800119366452293865997469019403238957242575890745895146433949798618288441029857032397237710875108214958182385349424356737659134535475916038518697134825011647038931076534137207033245576546095008587913774651946404182131003145445084830217598680818128353350814260829612611292003385126590932495080072131114092182568365594202459292003427574410460868509645226914328300323464131767492734127548658431861240829303616506716423692231597191518220087329247626560995078789202446913010103811978252626494712573336901965067205475960918098944193158135670924481751354017112628889371626071403316994897971888776936513338569797430694235754175604452046572632162389496258188432658701936862661856463757574541740994949623157022609577476557263667507234367402422400378038090956327655300885129893627187124301438685238947876006789779844144578216685368370141650121035844875570964686883832744011178682289944094919969269216814642678876563401301334029819346942714469019495331054976643297766997989879972306335079064667848422365698899447821848491173295975170520173880114248940277762556416958652173554442840322979204058837359944870420668347535921083134231757543631326568186443882253753600971783915886552133965104225500062896277949004850121065458615283889778116034593838359014435641307518584783300642403567245796569544618895781390645303494970306135531728404716508326587684195242491011070952363263841841341892988687062251751266770789546136266087480583952351554521548281395696329195052584335168529788316161997648391293918711290960023173210407640492526779473737350216355892240205332199238344729463123949835424120507650653748096028010563326466371227749459627198562628248912993392259312286147882809774019728269457534838573766258772263068470873610398157167894250960658785596597111549329188205315014706936665540998143129688924905569825378215873214310577906890858946818057951613085274561085045781394792072648891546085155293327750584531880606960598491014137926278852447568779028355424702483153616109073280331996172302283801044488037655035690130072157809137032935511688088621291528999392830322990920420616957706516591083490347998898553874570320320730318564071271624098526280176436095004576967386571826566437989554972724155551215172197104844470021694143567254750712174875987920655769877615520403210480292742930708996347475642484050943763870848442614678774688266593148462850899142660244314817956466721345307158961533349206614908953547807359954054920757062506893174018120518000767407133636488815672635528595087169844518521438412353002152300062508449023952321618918337519548355794514499359603451982296407534349476336098598654956980002759497059665374687236353692814294747168621757096848614906035381152739968740793066439499951764546875353415825134644553569409747299536912727508257060387573127012959427466081582271152295638235601199353946782214296816373302815161503112354940587232167498436119524021591703666397845609632474152782085599210174422910289419713340800980346971567782148281167599407427250396666211530894937077942603490598805240414717336014647389600633385020564428283220053958193726590219882067663576373070186271877353545185572929657874683101875670070084647922702626280990365147215324564426539488270134335594775452245309221119224464539619305055080215975488062119410137272032926017120169536390743367303451565691065742804198530024474805565549347788592575473250845447882235940912333892552757187610467132163496774262772598469854139619409925211579466605847262211832308777641288604116214834587179499152684867671693357230951616295842610547546480114421466954203808360548045336340055248305582260956439760041929156988108881343667130328005987874787180365584570904290734091010724873521726031892679848787350009056875889535147772102370025450344962384606785026608826388733312287221521669513331636419962876777405958328209488230169946441399206091056267816842599250222020337489131781043918791723205033695361072079203097110556188824957226170259163330991775034545320462543054544447357837784246746855582055841754816244452566772113504894910713471657113334096115148903213787940716000158272787722475883415381099457522117447690224521012764888398697144725906880346884214582879679695665271423229148223446285962632924639954341161608214907346123568640613059873286996399490936381331482532253876612737477175637421650677781477419871075841467160472222127914299567477601364472669732164168621237817860966836851247340626865148049773048377642460477763108269258377468751693320511932525568070350213013618768981549560610451847409454120476530050214670277689105839358018758627928307389127042559974218191757337701584851999891769352004351527049155539818899293525607324805171973741134786024581086717311389102036149680886273436910533858209385796618878628980435643489333570807503829782256746005183154149079862592454871814334159853630929272346186326186776859153035017313242468864201838868336771485252373905364117830817894640002134694188989492147425841190809504549270799791674441614025857632515970137089341042481391997979163800184619752220772350193569997360505135790867938528848035941164852327718435604683483604952658707300451866603596651720897957899521434339951274385450326092018538955696767549744916858457624396055238636495369606940910004139360060613717316181591866941793860385655628200359738007187934540649677188591398306685024507745235322574558557465931745021568132796220612177716279190658785102668006038372789086434456041778380279450024872644844563878091545655797851233940047835530758404590162425248226280419223128662402356357769847129425934212871305078144955569471650488631548376244898658089056343909470297060888922880564640312972399375990048927610722127597014659759826811114190518998610070384419005344473291126734330516084189726111275280560796395996336731158793612772880232274001759555322629509454593969148655582121352433219864486356087011633741743357722197370862488507305579896004314859740020471307038251323890064580758138846910790612943037480271218866635127049435789802657337604175633273173869001233142530657585529157754199022777090003078066672252331823138087902408912444529717599855286520042652239751363825258906628990001096742765497143654405067651508908331163765140090595633401985938793099594752877059040286249580266654609078808187700004333583867902712182148839408086545669108243468233699128737921419446768481867367029487261813165366779753676549436567022263074853107278344053766515738488979185765009426866872365573778020842210483074806853257812622933648400678927025377132936988685540450321324860070212137554493600862678175257451492479801359353500683608684926180685175405553747508702915854863259135946333487838145095724454954008646414655091348154823025037979061116319871429911403722032681078015395119361382863269311885178489111156527707251673504576881933454003895268279910539335537214744791259464097707479722458422573462429986873504253499670118090440841938444501017604358825887079878757250019372309245846472702347150066607911803964581588852260284255807203546252092800178680067592802272681576597834953905924740137822443647429528929174850197329377635238850657272929426195085451702381875459421750822972586479606768010407820928295586979867788794798549452255421846075240912208340955839181031107627202306643575736976241922665418615591073421896310273044652786680920369992750111522823337320623607938246854637368278939350437565198530834958623477812568334070664368675845840371716069846040510803977813251168561812346418723583176698655911118513405066974897083241732857751053889786134419443491132504297156713039448993630399004587925795609247800906934427718843171888761833645539300106631853466367104757366673933837383190484185686332599005709800590501157858967051390876461599683027093185793552276880418127541050908791475323201954043627341348532381679746364176038108620257492278259128418069010578186261734424355168182698293117368594421360664909266450658179767833038338343433485390950264947413755996956942607565661492045835084258470478916017348786109334529913862210308102715195890708402176071148129700905140790745748561739851936815180787014660634621379759294831584541947665354057400507553505584979398039419636448507387561174484192825062162788615862386499231196016077828248939506822380365194639366269230690168182710218155672064731297097957193563115802109937444789526477086431411254687178737852655748144924510637826401735197484449389913099684980372662853152083074358459938468691693619314846165128605545666126015825077979496430112212923442352370736502665745317298529282975380946097338928185965769650089594577735518802853467202812048075025036346048957024173253753722821716391405787192445840246311938468197364746466790303841756048999824312822858672111032869777363752889398805384151105654526906320120198249785646149010545006718856831258763219908190469351665053432953600503476250004564209851715745440657212204461980973171815619054755522588530392266646508592148474792646785316786317998367118613043063652028585003382935429930860491432640771540357982226626098515588661804560955661143059885686279580398868406782249982875543304606834046241927587296726883717803511498183971064439249326374940412217641913221514913531917223692709060558485165023228145353856282539094801793632152343440962085967740868689854827161590912475336736331582474610430816653265688154506753567699618914287232843940574843908153934085592466392295757587524872309350438571938892515944395975907695199697475170419171132529370224056178776073427665348399373153940806346183225624813260305582483008551175100477400755692968830944853448702732211490135002525629460397905813989854428528415456896353976103636752567555477596603308422617325958321484599537784627515659960473876411810707777351638195784081396040057648820041182968411414163861686224766848648839549779743854366520406402680587628438215992310981115161240018701674384220643989290540055395566001654508143620935245059387463083322139870575046658209946894445814176988631251358730673561273530939804355486441877846865526059122082198174233895877099906978831787621599798420139195953918178115081548250858107370329916856961480033305148931690159728666794902989666235067563901567329206925234814143195094898954035989200157974721735750310680782175389464542252958829341605954400775988624966598210114615782508460991884503031445720118187801635442762397194506677609228252347004105568052805074082987929339679081914050950891285684728731675315787801181786216395731954007407842890094851106512675920374975557853693475041337566389334456108239306463603593587620978618984078433774175484633349252841606777469200206609619095232193185396404492667386369227331937854821723336752626193854509099177462258161598518248997730633183085423018908638404296267276070777495150894977809473315240949275904690574252835631654499059103010226831636623880206378837254682315549155750480906553690269064575987374131917530106771263223058796700686685454936058844111455638246483071032620737610744642993808831809751663968540192731313112179923271912439402801854243175876663707044745153863134934802203817909561752160997349827973117369534557245149827843086349892990796648826911668187998963273663419284503452716260416221676444974759714063966188396586664409712799967595559653881489274031043623035469847055651848031336365448722341492293110413534644479538015256547702083573922149038596410471248157082868139930460296940224774564328163242593422098386868514720360113004339414805812444211426028341895118412388677953699017242062636370134607474302722270212996718607274904594891503030886082960189632336001904774688998680535990544709751999629656644474063544656183939228014873509422577325788644163153755516262626649645757490599921192020488708165598590844080809941765072658130047179253735316346915123376767981670456907449082565561040545915125139285046249090796319562840490160975116398588904355131909032684091335911394424165599638779394857063502505689258071760166483398860400325886017547612322257406646990025895596903639685361059863208890290382129025629295932812736123153690001121988582725539215906579834916821623873695203299547769100260584345044194942249941422312061107182021313395696427806281700536194033842705877759836080214995273386388229368234291627710201302062897763369093854246463780194291742994925449194222728557479746387184555397036748907508418192889030567202858150146613670799698669589279853333555768027498526888317979381981431335781739834067003413615071494854592600531255331968251910132050273685350639115128826685539938136398535300034037604176973819933356334531232327370578278626912841922052686931072327040450152053208846422273701066792843855070860840457029306816814915826291543668129441839218998871565603079387245557512184580678591192140832205215237907922999520130042585388394178289095420847906486758316155745530273648559559254288932927241227037370575295331948545838083509315099656064655948354814934588243587530243764449151045007521836986250402924938188811442230901698100245870227210167613219623850727014398618042042113158284695863648393103707493788563278780673065543124015428774356066410010798817553992845835812293629716447978500361729089468436895320818891553626104463141815700149950686985749001178372178914712555532129467353411644700674001271297271219362070974258218410813074553428561915206028292839306054199430556566164829108357866422384084956142513672697403621238129635914051550677048630455315780446061379171197325184988095664190404045410360490737231519110619768882918536842099355044665528796804380901958457123769485826288547495949620419326914012906910473684594372681167720845086477223113116212806062791781566824732870512038888251455579838323405588069816145874974647017924004062754156409953035264398909528979152413630145127610850892990826468041371557347227721198063159304977393994290533966915925531711072163519333112765652169499188524290662155816398382546065761447669331541641466885548415928649401976969562324508185180085612464501878624408057546682185892392676077400135307438113671085873401270705969189640957664976599098287754335653780760667129393992028199469157497769338714999012718195044409741089978965773310288698276289503793993189514056010429568779686201614524680210662140552967314906811046336804111171954130576017983866454402879114872971825557747135243560789546238504000173560115063020368242775286109070614289244965665801416274374755575881050472155866169377386512510558169565696513899561860263852264429295146974141246859747016959548908770017839432628048597719647418461393677656629570045942808185652939959612031407066512473905567670141707025665064255564953753172781993430095719637422496495630216429776432137409422140371436935684580858021485730717578516348302627229469854025947051744022363689527648481713605363505248118891863797944173540811833414954821245038209249898494669085213270060400486178337771003353826308065115671726973103308563280904412869170044165141119075028054715636910541994305965941652537128684798514079725253403091718375856261762237395683634130561662845890076035822860561320980152724584343052398247513270985177720978242128408534635577363643251700072269002306528268965273259252527955504715254773764359279362250644795562759764103748485263680339417644114332804385493147066695949908127173923160265595410007568882991059071445826378879822203102304542108243056404956541189773748485930029891408466033963133024049924502282435112723463504952709141904603725005820489530163005141659586186662597243938447419227910523475686296708133234241179051420165409453806650144228664050528681668894388100479001208240308211509799141123020537569849221224402749445177782358521452972373448195754311379607921101455491488129831484689923349403906131849384116965943916739900154423686864292093195327586704532320091322577412341568342047551066252894087282158128898469807627874182958909412081893098180270693289290075007050146404894317035341910806895056702931853469182552902403657730559588667034160816035938370920586089071837088579959019769404554530103029780388351378696794078838758099101709779017955803346935286039065549297404588091303594641367550605563207649067287963675233223162596135972256533920661637464056859424582366717032324351748850194231617863417374757735062208225449423103945568050966945118820547654617422260236703924598886249512963327358210210578110965843355778700686815296717261540115127686641621510097940455367921763477544697798795955214483624510561697473762139381348918452964800591108197989900089055648409074182561706195426077319707266763551404943509144465263857270521600565034995699544252891634088416084674507340114430157513167780731903986307073979427510874359051670086408300408983415235165840302441040068715259977884346408980635391128201150615407652051997978078328277572311233640397030810283599274144773531780707765825608933025680148272088485019623614772247494086804843868858870433334427278851207789137790007836016408037457238058497153574604160577227589553828027034938392021970345967061156575162184897711101888953209195867041751360219712470789353706159081867940715658831577594834040977069598854448952868689113236581791206149518922101226187905947217115485640595982675028370727847915252234952724049184042691930489437668229600861154709343989579855242960546013758236818440272398528769570300113749748579575161533898619307060399396409100637002312148325582595178042248473936080095329741235890435101883380433369363647892123118551757046925918045855098479448694618928954757485681014315169264671504711686396632258898998437967383950050022336304718913257162754912195431232254899185970248776043132232164533924167403620785379045605720803022445826007860089058788729411351602918937962287052090428202980191722117228597570289305540064584686454520419156343289877534025180537622119765321189812862794683198824402180252973769472422328168592054510550230925157985698448321323946519536218200733323769597003593992235132123035732603882677877776430375656830721640032994856976587870458811241566354079826698119566252574844762826433206778523775804488539713039765219256790252966098491573194694890128245145920036642453834164181702752563177204923314962431059271342651310600652301403436023503432970732118522417684901438229799528987702178559436488443801932086541533677278561492570740802118985737433651524111012663006699346130763062070189497897398434955860155109739929981209971316651441882532555352403606569419283774340511475440770790341472231306727757617761601814520622471224193250057152754335690320727625543937010716202080920399827853220994080064502329570471697543900456862980820881040771330041421787963477881615620393365119278693457200517925434906508180285721953242863109811272409598995456341747807461356041275771665117336333572435444703674265374767286132995930777198120903736085720820937517227825827081457910206235420166982263785737468243073937808326497191901403825919788346220491303292271624234609697101175675239908465555182873860654556696640490072312663888305892757541204355990733599051729217600945766340874520228662723199528255892336562785481057472401159966484813189810313746413844483546597552596749604917671716690239411779629554038109959259421156908987613685906432718241914313829662009677101536406277948528638404201310685988538518149503108577648081699530476097663220865013704248971141064982956406565815508900031801428687399830060626772389099176955409052117140185151076875317958117927141358397174929872890996844119593589460355478407898724711515501576986350383670116577240455022674729183406412982360322267792340063164872506325947380153576097087541817363834096989913929265100623997806392726771826512426045758790663000611151555229677456997819459895266769063077851956233155489968276523048882251085241733888139665977902285658499401333792349512971346473071802952761813139673128956358707168347480938470532030549072068134468978972204792940420397165299895790107401089554526170773516903755220861899541617967125851156672203596720982741260945902519534062459939859107254480087591553175840070013071839867391917896837745411473678411956479341631029244199604644671925279021714399903689810467504001761555392195064488519392122449512274100591046618556201041083053175721507252986434810669127921665220373624886753460973791264283627432392165831218965458751632470922508457691094524675570077259659184342745260331261590427725129172170890578651047093962466803637417355875111638371449379555289544783087388431830576343006956894441840558872123212259304317199681141348044672867542333471174847444840792784364172964102960766721491025643052480344779274489485943283714109922085941480307630992818959140675615895733518727729964591759421149217678272136153110712997365573730523157580549540549806932281699602171143692101658102345534706255767942865274383600873550527927164581743414437495730527697136747397882121210284765331573796697310367678983110195819565466783250250001193762589665718070719050165782740708246211304859417454454628466270870147135632087529647025141948417294798938182524441006136545907056920965262510516494445261518403418801359902321170195563112776160350563533494069544174130211601965338802004026676403622832306307474733487181397794170822636244099289751236487348278561902559456922281241796413408335034537938045490393233857765389758553950353580172771777398588367329985439790434910447746444876934111353172374607751608322642030417871284327374468110800450613572659647307412113762748767535628470654800996538371363780822593977944723430464559205334901575862657799368206712840007371489017083410230632739747556404708067411722582749754326843188532698946281926904536409232942358561873445472691330897474432419279017381818753208773310461341849748752089744281007869519583083146557800673246696242385334655109624754214777345155173297963776807679743688319105812098897394623163098585661257065889592111461923879433294967653901464818842529444968558529589827634212019718515926642159815282964732264250715595832483306589330931219608202039720572520926550166274519041953794659500146680007928051619354107414075859196273827398249413501621591367247130720286926239086039298127184583534891042969685554929633126915169214176966318316093932685450050543653582780433548760182564712258219823057012499675931021483118022254639055097032394704267556472227144053349191186235380765658788050764887343061333355693995351060233428914402752307636735255680206700149587713653122051700527721271791306218731997558090615465545103407484885455400063769473257432748565962436183467239929574257590331794733752545482895548660513485126036199415382301964726274782010003633724531399030549391610269672349455851470550285449078223663663537228761435132109963733030932803209985666372077287548611894759103550528001804557774742869770494544731371753581244372669737927425681872883788019515578990870772395160999072136642986782052334020099401687222170190448352754832786039729076354072992224818819062777619937086774869512449408369663261064335224390419469061884501793133281269158762373307630910623652145192740083681359539001441966625003198619597565940791056028999505910368138773921237670405231665637681716472234582872403911459590083635992405281969918352418485830025771306588727665858187650907498044347199607658892074485534609684428503792953234020079302718794479513579223138867578426647893559407417382781343395114610534064844923627573734020636351322127926531551000816500153571064003653580055935982163914010998962551871848817939598641148005268910316911442319065054047499902031097449474248571424470000306829163599170100699725022463598354195798119558191830822739155353995983032424142266685575206385133256061665234510047475707971178378837098452604706286095950532919062419459827791297667839348394827575969123551823473910428801267189551380101003387919948955043047524576948110763499007681332253276194453836324640995359873669880170073293624745338668361087183917083497240370503867184688847313342303299227459447141648554656853272203103073108069434621137136995308399586898180755593591517270114514237883023913054834175564231174236111872840862122020465136813779746607103583540961332783294200701071566892502386052745039245896921857997367035816630155657095938313682760971888614936712100943735859663027389423785324107752012536553434526268954074969221062443413332077627798795754276912521093843508664488150725711026632044212874056781187193375506097542225607209964962846904309856636034928279053857325309699970052420208456529432402772252852521107641040114900761513945345228830125663706011245485736307112616075209138730320415760526362181266340211945804142500518710119048237138725708190114072974188854612394028345022401659867195062952502328791255778088261219136470620251499328563462804747917113955404505309840031009687944639983677027003885550818169603538151875807593651920427679988863886064745069634074449223512473701262519510370650681113072727785100434612277930146346361850301382997903244188095296092525407483969412591766125239166576844395307244604208620887345446849021541093633357674346868017030634688689048435885603424070058268215007280779441701650939056896039489860699507995215752089636675152269198737798442119672067014989177694430939230165748135202737451671857159022851303816108544230922855032644606304996118205746602533917196389437380603783553718584074465331923134984288428013049573600758631458155310509685665551001133622203112110073413995458594924704361705631017857405767962194710085465641961343916752371196701754421874936155949638560661551952428135922984522338337493300356448179101981372852888755305333317385878775882423703192409512262842679231507428833459921809617770008040986891357696600687564863893604464334441130445390542999907261194794201399612378071567155467679910555876795000342114581876031154128244198849257186435367888362407070609207723361937091936417652749230626100857709567505720940812075946603599456850197294981852917261381748378305191299905917834712167647630469932927970346942356958018870296062715238802599670083288142547849503967277196583940000895002861597767262604683462196406769618043131838322985613802233178203998575082457363930639766447764426896624180894592025038531036002442769368109779829334815450612832566753720657477189022160695455720971860577131336023645376940358876528809947761374790049249672047958397506516253189435972283805719987656253707846152849085765409282901424576689046749882503696944546845718337420204244259711446731197529255747350025922081579411634122078759875153197682939952097045726790195989558700692409832388266339985139321768463970787047630598871864421589485043905306806166839101964030920778253932750667981540120444684881143073791290730095081869086685933380847679985279702409400546195326421820526369569991659661903628394304732827586526143913232964318256395996337546171752068804266965082915782926913546380412013927193736513290694515165790605190924983000896316968457932629352887712083204263908456159636306600853972969628541438568851706696048631223962960051884863350472384005580770569446234210285833562423587436868208860300015682071728809274692688874097255161610271454714875247646873177552133084824215786932269817625149372799460577016297267156564512537191553458666685917789340488611040839458020266577576426749151467052524977924137369807389000036165993151560670186071686421805532020578390052120917115724590783794661688663895873400836870552814418298232658978735415973531561929394986781707986135075438823228597214638727633142922616911582840407397398944595726921909522470806225785343991285321968736163167469010686670275678669279228690172402949470846650160019239354886648910356253327026080007076168790412524141149863699886316533846715603600932226195874361627731974826837938167070512637666448389112047159872998663944244013378715555223804388024775211054807614741228417355719960031120915891151548357900299221675457492765826379184998441591786462691099051804536542069435639576333038551751054108808753585692390008316041537887671719054939529816650972249022098896089340270390997564445529048039874917190358265620803628933451401775279217280290393990076343308677978877671532853822691558615017938645198344158341558414290333340521593793719066740452015428893009823087648176006967427078977577351344886526251976640095344515937264371171506815747107619518741561540031595782734868592597039258186446115718486697816969857893919473366367955181575339999585554995730522442060609385227508896790501301218897917907256970855675900278393734913881671557336830569939028755219912057720547919574763363322221086849692634655830724662913400467189486420903315250239886923411165343635925308190797524778300494569679184353272915200445548993924234079244256764509260444897702598777832501657471199959542139502843070886196757194092561326586468853758375072191279989098885307835150961473959498023260181017277865368002423333363746777547062778911692619453179401871952164644470116486916456102237355769308406598905963027763235433900606290283670836179059057673196218038886143516759315740062028324171434412928017469983355496655783731581723028164373465704445783653545909342784353112694981680000277948397446816322040454669435281831359954682765420715404530351074541542152133460530882295554534390410184443387720225809789909355042055699358379741105520741273337451383979019063814305549197593170223666292802223973714454089786586670751210205415206124505984495987119960732810576065496935924319261456298790384997218681889176156972935718430686443805263793483542926768597692818514316429869718374816568671816555346040001179334822402568164615316141805360196375158669783264039745301857823843551503853919629984123474687886304981681543599219099381698652708897789640975480547680902739739356601511550031810010447711430265316583042863321386757284238715165999006521071991500281846945199940046681575695816868797569572480058595230303077315101206731153625388235524392389820516830678944462313539281361111151243523356825037444788073085759128857229478373100358412079874165143725993450840864461196431472638890831820449208177335173637995937498030696844239281136527178324108370503118989796699926006251039815067112536200085467768248694069029612841879086410305706924236616306682847436636869501248293374103030138141578185479199153022023639372460066057570204588350018433775369501704760597000354714457986486146869323543814916452753210223033897020587581907375963438501628873191181698518324939807802936700777402031859271113395722644842575736306625738030792073770240506828046538236831101245821112827897920011317077838288958030795013760029915377068038219858317636405019901356701507785056527301274683080017779927727364635038854584785523277371951369502531579432651547150169151729637051707869113251646084485268090046226341331034724124439188057705408518026444709240149191130510851089832529463459904217247413896793715874118063648813303405112175853274842081377193007589133732857382859766949529646691807962361310592894491945485490454952726588607165847367301740295609722508397298276374449603412907065971307971431336274826011359803584505810040332640179946423774420472164951451545265717075178509729921394310574055682763394480103494617039229125600621570422601357876989848055716029678967611521266447780823630110153718668410645005310855408264154432513744793291557801481341758618926358326385817382385735059554450291520498862586354309226823830854466778667264509770368698851369852933936257524782428195074020322032544680580088859304519435924381159578206221949738859286784164128152811659787059514341017182103637259849609335866945205116492375997395149273038691295261265311404150027320718749143823224233188404814824738022541591579382277422279790225855873098272470072247605669039498459636999805904483777644239804477405115267528108164562598895482992812373955977394234498954233623157811142962464958609420874710655302407065545946994398917164155354988872643338082939145103040895811178549247175822543214939905829173983665438833664480046216552588233225300349412672540294736900728408104087031642524561437219496596171964154252682360965389594008517800398571309137304767378626860254173726771702001792991387420880392282759549442996819945547552537573243048513348767504726354925508642469305543504653979824591428653484591975990406977311551483409338026316839939614342789648670569699522433715532398806193269965443882950560155915724564291923497896197895752085161380626784897467030709873137106699503800273808738300918893274720855454913091089430642107285412465291502315251136154973366252073724074965229886281715182908300544630840511403585344419489375155609070312905050688371178592982510408844962995159174864761551703659490321921132759861993158113359975725797198521210329909078131797677911156369995544775031166164524759439239490693585705083436906263296811257383562457632410284442913434277620795502176401627622887748322695515457579772337211993930617710122166590392009038435770955512818429796722288346179339433923077058714907312590095959659089581101547771107438993972730117350825164719225754394889131638693760761585125671687592043696752646404147209300257946704402648535508725300535733932267059715385874407745052991217744990858393928768095771913946627715118893597913742006630246098505949137775355938715080692470552645754336059805485844923643491963500620698361516833395471259067621459821131199939927318237770801228437380655905984673455519235846400203177612843734939011654180529119787377765376891023428839981285316347581633190744843490180564222265934228485500900113503682420004882617032959131461227228470949472073443733196859961431188729162249017185961505603387716301808068359389804056493698470638781312549562978701373016958454792827043352202075836236998488706051886413626578887901959397506668785451657384321375212168388022756541554148327221986699355579346168222076948791964814162831888825513690961685615907034336414686684976438686845794805148979993152794601742243550337289910084422850483946138076483285651209546917012545673366200956169855169089222465093933353031891127316787611739756623889938319193078201020858860536481453679950681695242608266134681203171959642782903372251971419888190508925943421025096782825977923534448076110875312280329118177916617395795682367019895799527473534996491653717328518727837281953052631219970323439945947280431431434286760619935362979708083512478662486980811960524676155886812468966502152040369277937996022741149364777246300005696147123405683761702269888219436046955226879698519065090691413936217364903132199570738445942681227461503383770122118702021788446659303289811103190712035667950047610625403919665759413380886417759940652270527382490467070962394439409454589804755584943449580331834063311605107505807617656725986276980013501336087908253426146701731986986860288470260305462949979864074348409391041906133908221744802778483990714865044849926051255252674926619977960280776753382740531271817269626869075516399695402139195583218203401214519873991035727787995707135940580339694227179297629350384164485827278282058212368279682394582315949753152184961455467485140688836325823332441390167915771834488132492371715270836861111924248781422701567241442740753531693812731337403902665415146777180297179034446008103829652424279190531189640827726209391721612711770948125656300005213146948452708361453678034397720695011211728400954591741216045310259394141532408867821371855809166645167032752158575987349829937148424955865502205397405743169219677713349413699314958731228761071839799616368556772442747844864935152446150987722613791625213271318083722216576751635935909017027711733284147444854054254427719928961808090933022455177165035662071393652932476684431486018664587199869371708978984448165321733803712964086094482226349368836590484657513364560330548221670795522068454993222921426507524593036458127154776038224794975967579314938283697095661144985993600863588997756609097746041156801672359584735076801363835124119593751926984777326247594182273417126611106913858814088234193233586611312272718228865748967901431750641118977091960713830751251529928333673288365336260773546549840331575457073007183210933378109991945811109521668862650946471628176150306568266009824541167269528913701119273828775454227133534394649058069824220413416386828216642687359790106624435587058695351084075326516973707710240873479774586758730925014709891921409190616982342872615343875752172169650968375409266784320002997823774743462369491220863596089316118102224462159822123966991463686455377097443476728639953486688417228371482646468128996240273732903914751878487064643578527783794929441249581560979865171508482978323466321933503393102804644044078549158872701220412971091409485140092264021550846576936286632148569198542508079581282275503823888456643935169268357530284945641792114397635269979611116626553887566264748268746899450461101374707940319814149727663222656138860797956321456083023192454339836799953415213704587810507809246362200225588801021475408432273557980690520263909926840924226180980266710602483801581945320046730570608966999960232771067742157437566355871734743170015093805248662890304873334149052364397240058536638105496285887292049674393188297480732611873287853683413035062252546727735209400586582069508064520017663741124683094722978747823624216003268433694668724115530308255434995529137259792569302974956937634342611089313295046626942285425401049507044438720356883012941852243501936539713044495702106136052997657370869392736042945725621563985741226428961837088692105268552200989827728571813856020096410238635472800266404893604273541298388131967840412611863631129195868498052714165677602821089731508844366375150031525120361973123665448933147725340771292849584306370490772398814433526247524649578775640981313606997973764405362844059112134096425284968605840487830347173369522190057208606498787155755857112598974343004449477644717744574905651198395476296660649871804453930500918815010101531267895260827589874957577926248374919814213672637016524382395887726260447052981794524829072847227797810312532018356449883455188460952060993940624822704528989345914823398172195963379680733186821719062602690970495184820056945390417109887372415568659476688148119742376272971104870280216268167753572575850258765699135936777009707073140522354158212481262418075088994121950697928476016550049781695326932305567313481411417233226122417705332619307246115702319442621250169608220821791308157930760094620612966710126517819266634606452291286023127423801417913273120361434191398890403918406650921448836006157568811100334537553299526676797673706058934646645724684499555290401841009901567289484496907952796812689005995512241927494855663798781899141121440805346381692304288638681772703029350647035338135993557183915959079421658645501835471832634044964269453156621879761075990355850608925284681173855797337255831004828577103104910543024198070051793649963585327014504190837106537591995392595911524444832814038643465442348279367048780436502183911329610223900856881958363927869925062216823466404696904669052838727117291487453965297669150482141238001501787112421496742694113857807180702207482844683624419850761400881832996690021563316733703717770139620550947645282737501899722817963969906287266851609593327465848493899491449667855863860562471779430955509987304247024959508669694788737739213620867480615780150581439096422551179783911583972792517260602484279971415231133220448191163281024673711509919056650728664492942583610885591480726772544746482396586235192929383914182406801464363033828900356809993758073732199413898696437423210560385875260028267342786416615112394377877900962842189773191049473431312729131064616876689887070235950958335716537822227093794051557331229007125116989596666077071749562236286808037103409443471100028225834929784293596168616107876562601089387620838539566960167730214496749714241804242762190805916519780618632526815084351465359106273671096234274456873783727630672148509084795223731953185948514965309122142713360400037590019120851190362076927475040056428465492079872533152157851803355728162839300398331238673828750749241328216218563964840206733720247042477320623255814683406778807342767642751194621030740949043025025231859306862908502179013550686250712011834552650089025785267456642131683637231442510620830499707781471747015099629153571909786485695341085172078171948050139058827448176090599726406261134004941133904214680835639363638670895405757256375324067982733962072643318170086733290756531335892245083769552082809124561272095878891303315229679455822565080333968889396176442350252636972873676238367270078988202718647064879549692133912304766594816461943673562842793771061074949109675919148043049234908054325316104705790527982787969539270828648997639907369373272008188573646962250714796246869606972641188353825467540348404576440833823559419193659811551706562024872279301340334062764619515647049557886121778179611967383258224297409962489648041407164042362989252385646696068258868567699678314758954720482565218679791203506775904103814703974514810840605591299912509465023524029060190034605556304764827481069052653996243417290241613296928950618766794288540195067170475137397090078344605539334987475727775637846109599875092385110525672130248343612273799090562781595208637458478420036141478856440591562154433482841519767217464011094984543077015452136290996659404383449891657417863903420450846323501855401007777697523031223679086215872685061951640559047377192531812075811496458706629668512698976212287777637208161625023753867241461604462113319915334668189237479223357002827075900171793674786022666836636034961684978997182669380807380926648062692622633406338020098234725001252265445083728199346146756706828106836046922816354836193202656739148703080358922742173420430944362078103923656735531430338992489814179907734130166710601961340537887439336961710831028758037540287803981579225819964778454419851832359982684097686563840265241547938309884819933962882393055463505228486564550820977175714249065532743549817817030509381717925511789933320232470822574457602401369146985345951400760880004139404077206125997862034827631400540996232602067898944854847064418953451276847651958692249003171808642363107565414241270825357533619913713555066214371536281731215288716312501370376881432184378020426236913939709539889495833843668682190515438339681834954397194115332848560746080549218096562717315618891671738008199974614053887823284597289039015229878353730920703809938458765055563129757239945870345894891633792612456006029858657815212685375299424132708596257572720033014006520921892608211736888217816415935354007863774313779322283018340989657279491417422704885854723813389951352576914116825347770838974431057420234473866861964981866031011400695090103568582960280870016586934414268797233440189817918638114459054144342457955184388102412547580001230706156039315824638734860350388158996513928323232642098727264982661722622441837882309571564301096625132103296995422350134885491151178429104557763025181050613772228874529519081949511936913107064739436873139277644629243803657627554941726000190034285857048666372431337030721205029739291399053841655458652795782904549262888559616892009525576208786595763668568686597523961881380683937351372132355742117196850912798310914975952310262872937453974328167377674491897239147326338055561411010034428321791754691881861429598978167058427117055544881032236076666648336349393264115518749264176863836932234877127935572664166591416390960107846364834560202368074825893367338941633042994932816803444537915028114046386153913541479445092005772191750325893208377347272862578659004582862468236978043938630332186184386761409732982254006037314683797197449372236187254758216780634344605863437764615379532335919489291917377503391073642658527209152636443298050189798844517861741316680089311316408029301481012819128040146790357921843022231034910754171425263447086263464046021051421495051634198122192671419668037431843138597431942849049504386650152987014925261342519879765011397447589153461524559858088557159411601944697494604781197348093120764884767771908750006248849313373816299469671820778536835195718869432514537678248073889946589954557686888927643534217916110169234188772154330019568689887877664953797638730890198256667135919212887870994011798595902861597391057853695464907379878154655312666381026388947764669260949694390252088143384284389764400550868157197388334721522282453470494974886071367920571781969475140160493638994065060042761091970952954623865677837076671203251410027359423047097352003784981797994252579139730300931042149720220535271934393870137398961411395995027670301257390998233706256115891876391262976853382655840504550409455101244914814236519079537636241220541662775611665482253108962059213561718486034145116492902705093691918086478582971619075675294091226273715322104665522187817638860547920038064531502789226839176154398269649606315167237336774981963919693215842892654215296467723922022027408587698687651889217782837592792515534815592600438490923804576889383029257895897846072805972935753307973470576986720557671222140513743837478724604520009782642819449849566838007081419011648239266162786475978390953127829305495703299621984907648730060426679500028577271797699186485266035202329714880362405558682939773260964835472454096027905375087797381779944439516508352496788238775223255419556538926805415312464052149701815318303798706004571470990838845183656194669861959511821766833666455976370653954043774019606470657433153047196730274475284193358288965757663517517135314647287033965156468807200039588982656946850773365818567505014272080780968351938915705256905373698176245335128291480208965842262388340059353745071063667498037147073337752502148321925569028147672516846085099203767797540705056674115364567694480111785622902476416884704360827786202667165645782006158343564502288114927321757083755616963842312392463009079643811135341827452282077805025185901434732858499088614811349209784931205784499591001908734559822227333509107927294062507778993676102864531115333207877678468723109112248210283409482489303454355064816842085808787336613797261838522795799401816593015108151936297401189095405296708206889081013484519378220708253979887727421225321538109831288408458207402679309442465164834455505639637490244792806873161167482539808209554168664634089033325540936847610723235305848464061758095061416722921600204172894276707373679539725994376734808618688690209108023655736824821976450945113509097846345855902622272096153036769600191290133733581832776686080749318092759911499660573037698387723088607136165166731861968681781024718854288627553457569328173427264155964613642369461483144321320767001131902439963035720503777948399084932622292768696670647696622616659989776576838556456619048971902573895945516993508703173684688641964789739135953396893553551540134904890205687310086599235560946665803136621116439364948241945956487622589480856880701202057617509607435030668504053438215146061660949337800678824373140590303554149631410997693296440382916889670555149542803493999760173261757296381185926418674343360991061244427528907256702914926678452915032514839190438115634154466817907567729496835130208331419849283321649669536181615714780516396125282552325593386867039868561595801098320169761525387288287053294473525949267930172292203920694879683236784617638497090777060576452367679665003106627261643692382824264402080363461024243390364952874707649944410246203419385643818444804785079927738329161873776738493600374733662158653362147836710311987353345027626006265440117615644516352033442137548784113445264102890780961862222566837468562783777236096266719573235435482157043664438182865873274220694882844535432300169216793079461529960936858346380101477299524229102205630681414327600126021471044326063817778441389565089910007731348313689502554586118023539702603428471657227371568552245358133117065027404358139737297667466882536832329731220423613446460238899742509834165654553269544460905900160599386014963261473428422926521813718962021471223407321638643445131294722344190528103051291165405654744548869618209738821253910226413447449506588384384557932224500716547256900594360367502956451013992076699710792174699543829827950165606043624693457861747290395448433405030290980547284721906612660600043154447349743511733619105938436374966534658832394254130704841913226171106991978377184899051847233895249182388474485520643715620340564341446587377440348683543333845459984029573319631876160653571078811675445199116570018479445709181386513095766928938276169999841453962656530429777103941085623858070475473301885815645618551582362668894981758265903861925813917280705374828789965597839376778946921990382660986277358336416991457928112033339941095098857743115273485892971231840428284482342900297571601121645918056762194229143243616947229265674534173219027010265847638331503233392851653968752878223128276763250306243401954616234839288646771035247308711865054610590088296956597355399214403642454430507572013695908082148100459818071477878324660722289038882195075488308449680384088916186056516947225333632801825766953216241155867411876434407042243051644526995321353821344506235958288933095033507467529676988037009729936009936226348234091512783327366941451298873639743284750597045604407578821917469017771357732216510627035504913733500896522512025542233964757868264385304274416847532044585955231341793276198673899230699696023642475228283242041681155483622244226543277987795431301488244164247856378876988721214296841956515738524480938766193794269756604107627440511976523120566855479791148862198174129643838489143515981147586143809086288692568072030571089579976252881846040352026565299225132409239423198391063028180399510929484187113139120704991920810871700474081767941330248262652767993418213301406106827767865292739170075422581362144628727785186549344086422217110820836995197213448795047240210729336779735441922197574558032595562185342773873465263154075206062035758966532826580193302082738254414144566948134336333083595960726738480144000577874046173653768204884680454145591484504327570712855828413302975377626380915014324864989736877564734018899947657574866313566003068166710254973313304875529836021898331141245142185962572128693251348564130903612918413320265178897841538613464377014596621404499504945055027684958007864240283217406108802708907915675243432752370763900037489834052379671476601417710062752857941281394809890961917973379570923219385720973553713176335624011421690256929689092036126642936374043545905709978199785749085976333008709474159083678760910959113996616536739850314859521476372036527161383059732666912533317070509144022698256237582090598780916391718416126817371054814324642234436158175439870380112425770217995946673050408745795608968164832834719123734981017623732260264484348788106265026857943490068469245010493026736925598226905863340171526251685844812347327040894763098042957916236028527071336300932432798805180009785105816919833291360562498368681699703292834965703508794271203279014502875039199649255838690877098860501197312894442648515719313538388990423853802140687881872409324016010232585150563985942533486868279675369821048635110275957037391170315892731989247332816171094412246442686045040078387929694127361007437590924028057889325750742952529254013983309524444853989040557203512745737725883552272077697993139361817370211430825329821644797286150502844341671619007156415669645262344341342172586799250682350152862736997615736869164384865534500451861419923957454138657320250560779725511826731093577316352368343640392898788994009631898814260611594182260069166384143932044848337984265618452668287127991774077023895503876737156509263555594063870118871739765676801301161188987454249111461783667910566861119327681015921691329907014593379133963798493195844080044872221151759608649919722501524466885551345974977799843829155939343613057523578622328771076972062535761097576908722316760937131840097800001568933616989394215031710997640271402476698351344578502600930739799221459642779139998811352087960598069772500427714546129806656452924214508821188483058392369454214728710174654222234852563279119336614309731962019180364811606189040070858404013787220542780925883011038082714139458618849457290875303742404932865275656182481863815661801180781134634367340672863040536549928927086453741135979843088321364159515713392581959289303032576418698313606142585930239960528486523943046236285621268557993268843571426558254191753363259671607349088221834424267666477028365227356645128491954674833988935695632110854732308825496352704483546586491330559327699393456570642655902614886534082771820510604288719512868306375695450784208854168817599431487551338961216681992481995366852395386638488836188106823650125728996137454959417600803238240282012301418854467845666971793962241107082713746263851033518480224936054859716162085146277829953533386552929997367445578772107982319075357373144657333860363200718008027633834429464036718371865847211321489691998294244543263823101198511780833647299679299474196922758302344458256473825315285094415340120561442681297110914312359376812216625097436098859750333977393743352946602091911959337333993360709862114361747213642026397544192856087475188375430468101699770692496948922408144445704972775250471649628369749765495708122554606550886013132951363871564123228750769282645981947551895723554577009080246844651305247977741599402512040827059607541111393406218074279007508771763233278274834140121193358115550642509483197903338103233878301530828878781083466282529646530758858247678128795076271001477524934196727015019933090302324835327574764987440118054322100449251174286361407740674611647682945701830578493456454980691348538426923638120605190124452571168003970814901963279726120401612944763888899341080144591192160773173534602830147111877437136060246758581910137627287167889038977981269459377018125258366778008444054270799218599096759481389380508925814330450630051908071226357597615826191275555179431627379975076612166567535299432223872276600462702483237438762603499936283420374152698320891202690679813872814842401467906163461017975887248085429692018905693109972142937308525896334718342345351467245385018733622645770207728442660805296286786055787135088337271875418383543088564880106727199671925880624602012503248056114104615117097446497508904282582453093480307403787947182739830550946845188241500465912606779440852325099104666753667998290253107525993553587474056703158947592439141870293472818257329940321169393417652823705620486177746516064419457789345834853134847529642017804807852739005962060072462105100375915245865589912741764935639041869234575886771050513392607225461651545129908980322411483011424616842476173811841596928870323277570329865591972950507264381216372095819259523746441089431606851952160347292606328025938099950555193082549117415426829027679694472003722821127488670836944858175618512453758646184848153924675718950174174547725813438466961626836211954285191432598689048231520599511710560418516171428767478923925872032444722308502273645072960762187876510767346332673576504728762465138261516112748775233166468267798047432883335977242086262179275299153844934522392300631927950917374871592878127711258618876083357318143759402305594858529893514458305705496626056793767262869660095720934556596240155952971136062802718880899728896057040191742723263046205687769092090286671889546736679690648263137111985276420985840155118304930070151760788773958983199371709752882017845596202752674204642720259798916401057973497128512327865407854795880385726768724776325332606087896204809882169611073396723862365643332138110553724239885862026262181821089581484304037512367433071595829047135355565249195210591645368733953060516935770215973466275979254726827084237871360651590696296162886058490481151626180630114254608042324430899337481017760030103714959269277581393593876947531315118547232132204651165415464353244681914994052802360970533877992292576042558221726720415307317098162629041903716344065016180549535738575239527361565637279016552179236929816781893671704399308294088331206101705464313098034293647994847176552600312790351024528684121437712196700536086868226922742337344724179079636296169232732957017502728426871116513320884979272626087991470708110063933766614640962836102749003737858252858154282641685848284252464656285182204995289818068873742106222737806162854125274495766352403632098942838169339445336835255983709587403196594900683271858773029670732358437558910599403341122898653708467115228420164362591323100769868212121264766250610881799498920275926509665326114282187376018509972835742152467222706135172588527040443451245961076411276166042169875325102454576598325642249383628067030183340903954494005334988220629996441442230574410670385807017482610465182375449698161293808519969908681150652074682564885688098014334158579579319923139274774966406307836932986230509447112075148795182133118156656952888301993491126230648753484339043885028792597612234877727103406122868680602632100983670328734884416635076823404295821719492426375118219672560995895311848831922692582029545089033338994361357392009049774741630847789826417103497810406574969714921664922525507684490557746019084453326823573905170079651085427418229050256281419482550133771578266858704130438520000788409555254300992724133018852524546529804196923539884820413154601886460418729656980027499029125269684838542888497608638295326449219464383784316090741873834474159840446995689120645789340073420352499546318019745032816703132062305957234571149752726065663670253988464205471513458935281906575372174562202498970576087605528838495794817595010340557303016072276647842886191468274729549962565724582321050152946021705413883145191338448048266041966010545399238526498195301328720089138143088290250852658584685032430452225987309748929774127334548829019699633079008232605956582676531110144122351163966752917962070156889822509437992574353363991754185331284344839655690953221863106122101478357009116090420040579525059935480098583368345428688704171343362557829231292649266008559807546697793351082650073059309934193958716564601003134907759087971725672568729621288460697121433428309123592951481420789674671646622826481056608108092641216321928420200991243325926644887949517161907646685229366816165564623174726725509084024567470931408640149195369141846557185831363301412802369029736811289421869919863567299505162087304000184844175971590261690364494018098062903730669546458339858903956265044194294586410901138786996397106751701254965667657247783493226476765203514613434999865413263862566941974244709774034879190430027561620730591295554854962029515472391576507005589559822884603984539762264194905073288469758243694009707122816276330248430366885749020068272349533412946320952175974055052538750497448591112611406511841139367905857231777238623635400664674537772801244036272614953040451296890235370111142866229187517055221191076454026738342513427623076036641001887123767185757771384511071507449130480502672349161211785962975457585094315702730952024577417442524533327651462450288567308822882124642329775362005832948917969599217015931607535480209466278673407194501681634192456843709965629867637152363036898457931264490642428880605533291566149178097322597000310919830313485590524838096640725430982597552164844792084880268415531587395406401211378113131938673234070722775076268221538356146352178387066935516592803898430089015003306153193377677575464278063072284878611272255876421526582989085199329909995198882895052063450861061675989217178356635501465826543928621192501604724788189821035362745256430774268573294767188543195533737008181543702172008913833295203515782671480073729280985339358433296645550334000305020087351392176341815795031161357751900794268008777139427681087985252275461055196828279076039189059339139024331143629749846816811314517445231569468335519547505728720461061822795549862193681527652335484906443688659297559049430466091095873297168461800805894751482607593180515301838987047964708447404720529246767394449653193713940689192846674864893215330914181049204095539084873283247273363302431683666387302943243742401035640767569998995484969782558091370819799619776145660736367910497970005119211288179886863878982973827562594923788500968430470368617567766658899803916900231386180672139221224037253956784980679532833866558446757713717292904265335039512586455745165820184336589705067884054798086949987234861680290175126585681372636419863651564178902009088660388936609044713144722451890851285551587774247754399066844216627660864629984083512023496357644444420413872383885623609591385158277355707184703199189940481210401924836822968502949469232448560818635885066065527904888970426725130860007574478986366151584404144283043119497695087173289011142227485135297523739153260321067312434940682061764653984609293443396670607721757792414833659108706732378131997460565886672420958402531896423102505108573836641686297333776741698735685462135016601664186760112669424525721859944603998666048962116772409199009155862850674324524873015656140288160754994953747302237318509226956007816006693737795871379532634200163736984699057972294697082820315029103278596099276079250657685890622787065530384315025495811889753372672131742811361530318025113039922874884307361575363809053447627607077372010253704474180284165726720753136120230063565486872240288696801586940485876329505065577826553706080005415813957060150398811106784555817353758921243482394458992371188732469189906708136376239377418850891147309586505603958268524092039332797961964148198196729068443982813845225836454546094328023019819241089760042927822406259886550549922289856784991547966576447375260570438693628033839503550497476058414218292566495821652869673247061860578338757037571130981664709672985357964146882953417931555403872116247794826131248636867487669079077983905406417405282780658753351756006596394028940679141000550692064036840442521002291666488526200064249373330982644135749343515414899879264305286002068128009696989757188340327666453523446265186443949229246201165056086409406919279982771509282165263251420082780536388798092184339857150698733762113344740353553977602177086298307676436890913831877357999504971510922093421617806259379934486861183884590175794963490655311819694163151877288404504590200911745122366356566617285534182350256253978403336690654514081562476719768930600741952951898850672320134614632615476701808535229118982846839477349143835774634246644700289289855795562491976715620484633795853758888771227040830400265433613392245113509293831387209633075268684413485094492309145927004335296016778777023817893062821519164093041034960754630366965332801077634199180502942585809340454573739449270550240519944370763414650719073731643246698151284558377894293187377874646988018347803024333420599406552910425474065276976843569311950755623871241394382816195495857795306207130769194773586126009290723081899617122943601136870904389600465548961121571147093692942407400236560316726334816989113564652706701884557401766116167761701062408327911668886774034319452653353880980985562417260101534493065038108391545507181283794177035197817914902456141501924313852687281070094075855732582672346238104121311076912117253623200555081478278647161044838732654418534594286615135875834471287584139075358320820285832895618868265655615170111508745566094051690661623373734218250267994800385519068071298370758759936037710497123967356758431510528742757236860688298978241142443508718288494601625197620798671272090955246539670526167884591760726643085072860539253002718965550729518903453720002069375556255460513021884261152432492366163547901751013326713921609472404706488657139456497502302562183249653209433101535117591929578995985821966129272979786581428070598113426212285517918184877780941110086858603631950671100609982030118062907039096397479838168494760751927202187781713692261312356555607033387578955520273625338918386532623090467208985271866365154887426501877939418234512751819176122570851458689412492443426884221827775374971068788630960349445497075000898115459147429200265363549224969822013859731551472792132532150786553146501488093220392128642015686630600826521161241402997134387769092828364023888706742615264201072550380518321675480652964660807905472748431449552840924311052782609553857104732622298282668875894515286821666085877600580137815351065253984485640897227056404643570960649991320298117637718101190418556272877260666641078325368699460986682765518426295751114482048354230088422878236415698735577649694768481877933082295058357388906442168704260594786969446392081675850457097267013811800058945897642317086611762399739184494312055108959699787454813908412870769826221689315423121490486905620772650459853134930549650890384851447388205324630910970259361537415836113883812511064712227610790066053019996901481014313256090914057312608293597427559047669342274175916188547017445084757391097953949794319206351090573763224604550605429490011716975361106605218240187278070277374861728331287595082241331129761547128267277870954500974433593965397876268023451605390684532743157685506642853133181845608371761425168211590756829087285871046973232225758280766993810534945342539143418480684981585911412223346660342964886979637450982272789804784255146007586377478660443945161423518682344843287348094709123238327664450042266726372391970830224292466812301375291280025942252342137665933306094598374401433306166232263143473999354542541998114647602524017854437648828292385975926346838241390543150685222931371212654366608206011699168476028264310917991609798856059313905274876201068686795478181252144821198518912532015232575120790527459066880391926142163651131070151536744098024639860090297154836804564759993728662938448909092316629163197795165578675843308248353577001154083613738412037507187771254362946959233017175396177760074435734567519130635560245027101754166912795262864563735956186322324051353046862816458005569952545551500916256696234812020906845096373306274096549414208143397600521848947616170898395485549706385477715474543946969120538905643277815952043532294343430604383655180602133268400532550026652294653258288538473472261255440677957466028547368782082030397921823150698591421743530953917156004904453723290561127065028963031530693951427967388384635104034631480330673566453818753498638688581845544079236852621766664609622157465775981116386787198422800831582291202840814314485056670735318458407035013467564473444222177161477258461227927599395566145021099909250287369244974305693782181428279562088268343743165964303980527306053003692985508669510922171341110803406715303763437129196246575641888304815978150805821082308321857996580892563241313877492304773934167523924840000513326979197660369552490098558388632587550208770587440895126218426407538563965653888743042204387525364103390784261357218656155259776917528279562540496802667896073749187353271201655854705021325095087955519885050590384285274026813194204271566218956649002172041916948613041492442453300509668879887975113849595205350163345778289556825133083581235816047563126954834275927754416503331795296072959154592099964778483935026481109600006812980060513349903137443679196631884982172555763817518520983685499630867609566208820219986185599906019699834622003292671384286992504880909411733201758780169755238497119840498874285240107062900545995844663809461741800525486210432415480760450463282102662988761330524378849321042051744309942189824033033161862283166553957066581693740655955575188468549001214744040410239860406405717781783129017145183633651789952392718941227834732406172508006820756257888631602545650001666573094112988236900804409544302598306637445968612720990026675322075480220218170040801326190189143084063235103628896138596693801904655569788936277824814998046468715098117589074070221107808173869165429000775040214242790480960916058053003973630027069192714738387389090739114424394750783752256374298396238645432976987931242334142638823413431398739605815994992680427984975664177588617047061063319302360426905652931945132433621437503064379159981439434372601062449745254652006381570607900927448136261050170560231584522963910867009961654718500996299035593602396925598192298685230985974648561973446806520427021653655316295650781860903248845953940544073778680044666083900328243353254299190475962564276260542450413055387826376444612046376854923663851193816208506810919611064258234966139597632382485518225159814931305149453381999671779524215730226824050428597808397055089904320843961082919527418196734760388739914463317391769415663058104907183282038046913790498191641323064261600269250899138576775882054919810454838995260952397044077640573380113147658319082971505211767516267279670857620674251229540269788409856869650913838735610723964662439892623621518114691357799897067229630954776178928210742919843904579691448841303115512844664996157026818409307074620039922993147724765334199221121553352214890033696744499633001119642851255678190828400306206447751517971645846372929657414143173955659015751552932418708927542505140407179571994356601705687094216244648580378324163351929922803613896188084452212350488859728558478864564297195154425247603102316980693445449965695156012883153502147101908768035394909069333252152820616686682409430139938516871441578754898154328002850322435428124775014172379162359293563555236262509043065737502109274135548858032216869846835280751202658403066545211881224923580452253064536175158174228354024592033995043700128379684070068483454761933480554477628226927081893098553582013226527247713249674155703578219953048213958678195425790310621837897903454069587872539085394543962366532422228183276780510684918790350368802393939643898637994025139781661958528590756641241463816367561561327038828831769720124689616827950072791883632999804422081904068990759267541563304653517014423023397882975763047998804688523245712729823011950481633872007211272064366855832097932258532574453967891560445331538816372939504025663770987439717686952932200790793606552546758474044148866165333399438084172851287870544759918270611196922988302113960931900128452214828895993258476450759858328825523117346530784894150283865045794867173523648498903070916340729543947621911431999151897737949044936645245529605540872538123166871153661675325591630712099556967988659154574016198665397191054061815785354287998568736600986843895113023129742889343148725021285986319255141196517353679915231081004663697348196642941164714183141683208302532039682827130658859609786816931586163984642316642731864378313904301556057804106804249759783935850489339445242686576956980462026426609659871014320749762429028356042672568597867210820488297597659475565325026895030052605063412027583623729995006607673997284414485617468204918119161531704214074663096628511734931392442211545026428861230346339576308787599457478354891220077384579554301734780212729513420478574625737153072971639754051325968543516554278275114378510680031267231441954045748484698335712397124183869931367514440209984614272619543515522747291333060816994718182510748908976400636556850718873122422576352199293753594963594935264765300686915734841015985445985782858454574985512149764272702522898435862223916258871623789638793953333101361106898522396412533543780146849784640796984268945646109974164194471675064407561439254336721873018315188607844901423780771144092253652914745066963943356536303010202959410385955675197714643896098329842002249158398450258771035646590273753875787032059259497739870380637976453146038114045726583756103428325825291146312585383132505918436308139194885961055608953901890257603093362656319413594019058928025214811227116072776343163358762716550312460602631404048014867275354009333118426131461836989344947939706480919414256050974057733889856276580230777499488949934358802768861958232600015163757719352128433467703298342983420818199052573020808808153580324734424754864007549078831473574842189927410832653786943247526363071338429799890252055874659746453993821593922480238936334050201198294203027657592160154491009281330328604308639311478235559530117343484322164889723163901559456702294302876542065212173931429459477132413473529730168710679598735741558335930090153344577121170053006076857687038279945510728601900827627782552940203206010789173418728414793412575105480996786447448859758828569895715338368900433679665572607213125066905190385555163119650721611526559947377333705498948196036637771147917063734568116678417899179374404680207095019232914268894450876302471354046230426945248142736363619074694630943861510911454920701383167534411416319913586320318175984520876322767817490597388577379544767022207314155292169925264747573875635159095231771910030707645375667943798541455620118200599414352455562840435670472252069826308770114437403991478416956712909456132057080679739082607217930154557459043092885859499109302487032279513366367692374558089341095119815570874972727796358712594920785576724624529486034265773979398979637471309085727749709071204917857276832202808378938718962393774642177738868381289822399888768917940772944480511502149540299476610509232832062095527954246707556045835959265050209922011744156460709251330321309646234868571613401642177985049908406492264035560917200933342042901524197178175630137628718574848271550533242067882368274872032952114496906119512566847642044343741679120345453385431191677503919870390110547666538588836682050540947257474384094552184000871870368198079051550936276823003880333953176248591705967569647306793032612531807371459647563145772716364198994434981995494882453440358559772924854252516301073726314100999508924894063395763916780082489269345284848133694978965128707702304825530572352784169678352704070718318705731351540261080036385478103116233519825784696445784030467545099713439651667584203828294504224027387817177851373311950486788096581165229883117226413593163341788996981506879913529969973832435523158309847118647268362811487314162806525012871668874502775911449763371267741544532354433914780378152750023381708424763459918395787641537789134528178487268259345761331576502495189855535894954982189941577392566538859334206702226643711171273624709905449504347992120027804989242207351335581473850548346656691828559922107211281931429011358312113182767900739825907503410000533216423845478303403859783328865273247898754087129001685968758804644974198307564394680909267931039397162365931163286880537163591824774498314763761973934465023348389048706701768883432650362806557508904549918220157467351510137735680899031969304014215000090854014149024750729199359349112990829056492141124036157133530652887871519394112678023012405975873895257660192525525924626337527804959187203749128400104655237601485786378143235353231141152507311184858525782135913951279919380843791502117855853114597860693924949332362230367687894543116757627111472336197781301798912952973859562656361066818900071031219561914601873352436527356387693391977422758258438506310439125488220839622560119430989421092453231174481173143991528112594267077337746124668654946045261814988662664411701302872765838694565478674850761769305915660413857231158565360087829226171737344029353143685683050820923026194328282563353718647293264536485531781710338388298268004248601639266550166734791556959253097129781510841764087497388234860668712930988565582803058067295494527229995523221273106801041458076785729881032648428283070194722721289418915649041801912011623981006755377990393984492583147803554575050669338931052104343405692725951152919948029934069000510721025458857034067589772961152040955274970888596430954275983665191813405108454531968125626493486419295887042258044366770883675611319822800966124405756697912060739636136366325081615038455598697382489627088451931021102261548348532500919787581813813075574564112818036350525954204201264329017178909232804296318773495674208948570681930519884206414711658981007676048522640923297530830413962709724476057650155867064185981925204405883010805752822968514332266969388736320965702921970025095716087663714459654254301500044624803163106731786046342885609890864062112575098416896236292429784055617043122014239777060175307621089761698370216504907496747963829325939637917695747369351507665029823928357557374453356054947235191767352687928345400481103859586741452250075603025672540319021355574912222811577360418075625008627149765460914082213891592197162313397319439241007634729658537763084795327843252219723229473110055284416437787310402665616101179297961041782995225084501186030406599078968145955257211050716880347305482813150880431404279580843350160805042284619695465236145181799612752859463663966982826790530217576309646765326564521558253554319361819163010801005165540159028114932825853600005172492287690939052321079692652378964866188202998150170933908814761568224521583899321198337280921970682786079574791579717177319997727212112841237374338954557950719776607670809566619943845373718231368785721877693302308792450345264191430635553891327508362809939170743847082727121344811336857303045145102390250225449334131638902466422793595126968924756103248821279784071863973837594680503391936001778862752978160856083343238871110329580765656053295385241489868726869141059809647283655111558918850356839977748788159113261146208700388011107908210669883151189943095435865394498436825075229419966958060445164540208917434771003637805392155681114209674964948428912979308173327352794306730264529800421071536555292314600700431695794445500013021654486458207391044763309181841520833701692508401490907422599961061318703271396440181167818892714431752652342763993831919823037338268912863015460551802539734133374520249581469389781641722830458992213441350647614158938305358140862943180826928757472409131600438636263810033781986311694674642401481392253916845441562485463071413777133512928981340337478728330508350856109459412213035736317893217405431515814856037980407903337282355276679987256571366122367438600717475257636478612113320402331424047493967868983005153706642271487778643008500783272967296996328678024602993584137634891037853788197043477988706691808668207112667132965105711816659645150709464898148974338732811650658932591571085808017339837381499717276343769760105149875403032539188704594572033738996398569661962454506133120196790087704229554408166668740505354823432556627276256795201101758914475188229932645940560313235138154726571876654933041667254312756094153983287457643745760528876935753503948172120798082886155069232736860181946816027002116552140418054142437536018722823910581243289749925251419329244997382493603108175125501419327951550219144039470232082861681984960586707744985984156792157850093533469394683309741506747730272681112790371203470798352343613658361078770679220763636260983062175454787862737530170750962056685801405185576715171890905256160620156457654514157447514617929212025846087903129316790418594822997655568656773256616130155016755411354000590191704546455680105739637544217208885941132572748872394817904452430782293171466886349435770821820928950809883084388528371244218201476540383758473176070424475839379014154746440015219242784042446959537557185641806805513946872119424680190395277211944176281101199809034259136533429513402484565661596228478992443270498705742951433715417864892280454085526835966917934159320599149781642667717042551020990819975527371204367408229025544894969979798307940993002819853419447077093436482270956837422617300291700791911936236119386679694697592955816632027156925923048912770885747886766929407854549855901929787722137415749283281017743259372429890028848693485253212335025454976177192826061933360435361964097427077735445956948107013141293461789616094516791129377037145301673896064293589092547291177447437555125592486448708471767216567505856276657475439681974713386238846036039024722569786802363297082766817727228716858459513684757369776067296413225776798851960026372894272684741994351634248263573032027927450874791623284970649679886906926521236557272743713615453158703303651049077423766133822925230262627236965207603050199706323342511282817589396892460048288472471842646191464304172488112692324928459213784290106564842785017219797040400421087495571242137457573391073768634062357152878775799986610380460794807058285264101052602853977564271127286890509477647983195948720172892491288844643807766663550485433865697109055618343427071975347713394827596483008491862791421257951705377191371117733960903501992017326245843401465512481493108156054924851807148192895543555474664925118044946862664297822498801469066590308768767439860443550156660400433830027710309895943944990772830118402136170447316929087149498855870575493393394312543419897203862879713990900707812766206954988245891497963699578839017887834440407184071990644027512141256495876492178358514686623382808029310097873403931251669277717182279485929741770284975704730963244770420441203743313648578712168241063960548004570506033296595095956763815833874871748125836211733143059919161422544829217661210594353002952169251038628230948438718581978847344762345740428293325364098398471322760153226435416561585676920349815949740044037076364380090788870639090682364823484345070776478200159882788716132212246002403460186682460090753597795570063860468501160244769038876986615237176092318735379809259152022520193502676101659226302181571823681013918113285700317025458674865500947942264223167948015686608373799878349903783961724227789381878702341301387113848069417942544305534441022029031878316081903573613727438848236118233365414530230543871255497160370244520983296405487644931329287938339900594123247353161610340899544805123135819264923198207677088472031242800638361503288288341983966443642870426788177994100345942312216638654333249833530526818616224982206016624249237284659062598581861396256873983866696463796782125071504584640554514930766575147848503100232054880060289618985986928199703076448374844275330235566329413377470652760867903803117907897056717151730048723194555098147848920506862024367806809088902262205745546315330760825687154954488185806597596538055698240941138857619463118352123695799086453131469239325252567749654836176768422913975221109823173029244934411934415419917685058562326219042774163406094560015361910635308811994836462916755587193422800096871676445329494629425435344298716297919440813323696084610749630686209103913541821336117340609420110911666820804246401017446531400474818426069340458181843928686617348634212644728048028511582120164649604896188874996597442433664816680264612793913684848714352685152122570706690971882839474457824421462209010388454088571805503022211177061728050143731949448238820673468015581386173251243491051554883827795571775703375467138656342329528766144940716465516565811000646384201273085161048697553938992329097959585182241214112711919450598250319391441347613012343435148674755252265012507435406363167096879200683338980894604755628891066555183056101077782836554120944176292359271062734259451805837843545679448286398111082145322803906694262246715893556069126725016467047358959530329462878521723734356751627246783169970242407905014644589648321684396611431289092077613601815947156339935526733247534274592158293739372611752255955208863255448434710391298111168288266548569612543126332306712994329509093412656145984174362521776240572287685445420058328254566336469561970140372780986666696362165985836912441842882394790680736954808375092720946577897149118225943804696881749032136321598567687003593447184429537010565830705689924365557905176690963069332421192285489285091375169277923489698757929570791769126029475993189434788742439203606110958599487035211124020579769298956119653419639659995625901262240333921165206246570858722912029506462870241473044481764940685608282307140369023389836364122965743434327880293200412630227379223048660546915330786273011808533272108398820813073215652663756316159558677208174086654588573050985290373310417508382630813881094970772667873565837701280315426846579835024584977962150593055588871586873056010394226570021331847062982657432122184107612412855485093709925568967639134184511560287871275915331231277263171238593358638080674604862257472353669171076608609089174473796601338037949333658588644281177888205461687819625447189614546722284582787207528558640297706352622258384401309073629987545649094760294764465261578623527877934513100713790856158598665464853812316275804075894783458679198093348193265743781415394674639875935702060977720129864658003914700638554360241832215681399802075163223343755053387554604086749404439661076482061266070015174868822840661293224677928367898524782462624011131732142365653129207385734197586127323324017281371079916233973610132006693784717771432001986820422554536776120462132360648910989168293040114535397750268124045065415323146862454718007121918020017386754075328866162190455068329724026017316369273150525703197708832134769620378462732168841556166482947120997175245401124875796623266972423676449289789299856579451019760297690290256948390385500142189542701409440675539837010207536143015576038983411280581519063527417783033879252574148623731057841917589323562196063095162337874872871798799383436333584935030188699851278819352191550314345905110665457129688350028174921498562493147980050315986100201904642138325402008390846973215292118194625479577237261395499880395654087566422807955582901778948455701198228183207521483591206097278152879926980019764148614308351754334414070056714354810968189062948174710610918434975916148762830000252644903848571659442579053607024155732321016113762740587851749920294661067682059708575451140398298236918722537412834339494906695595728618217676277932488170698448952536424578260335887579180869975158623970333160833426579771807589488427559032523214199257220528757690855361259157144454048638036733304134417634405532876056129566589363984427381192575180368645815395892157297077521548614762406124985670301417389636104441131326892849554453664892990926755164093970341441039688372274961942922377414157141732693782383795009721082700466972713751496122284340407847209070338945808328677598740242346252202606358127121559819650037853758332643769415035046055093060370431836707039480906730914980544337133716285425709338754982728844563006978645431853034261242775804442111410781094767328578554269540707078141594457414415383136452857414874328599145060522915940418195931459904774168139753232353122221325408659502197531055095997101979632335593283453939124328214654437601386465618912078068109417064022296615785980244704128756978887435200325329343529133917816521721982198444970042825967229165226108242844556220677432433691393029786133278170561666175982746403690842105030394402692341059726680381772395110677113201293175322012307042373342310613447566346456108207299884468011935931651476748256668466498965276223778890983813088186605448876610632284898311970690035156320676820437535006638581132946438593133122065952725310019406672505953849874905419450376448436441918989821394845926904235656816783383272894850913324662942539844024565866157080245243462837544629867382215718890105002796900776631135432926554938284262795089624524949673971797293336214817786732506001190484714697161312959379258517993456348549402178807423616824402498760060175050375857690344654749935874020684862900204894333166884906639548819587688794544951447459534150076429989012867509680986329044287943603061130280701329948569486275690635788838856254131090146520220653931209226785975628039369700236961743688494068790204997983145283413523509639891270339679343888152628925428621820944247053312201964709160468494038974724590820904948544468503192115548109517526602336977926348503096347097389209653019551979884939461008918266908808668778593502725639668631282270485711576456477804616511756964950710240180947251977261287484075953211628542743167624859554808870231654609015140467685907915165291247989993758976450752507357364150154933282056993994344887140440712509005241195997921340916180875020001024498465457099001750061308467738564955399302592100479323778626747368973563847600306654940153619166808325970405433261053500485101058585328148008452488771041398605768434687298658004442712352357471515088414218752646471460902481458509408150969397051700000503239866123111485645720517408531026722583898642716318883311415746967536982659275819838556716443887792381336871490364944883767702206653398072022225158432456922973417190744113455338683614400427119902021182058411259182703860111030956022795714330080339971726240271680495033681867045746037534716486552360431351430779228691773474595945430930020944338011791041635021589167379683489457260058619401085929357884600362102239731066434659641525692505978846824020698565015379822311367402902541698438955124890777336217078919424651841359643966445106549680905506251904688537491520740064769962773251796193768349544864391737842739408707785731900882487838321275265446559959389434783216699367994261913094663815924135201169994325997367824449034768684125494382600807355656908213729386672342361177214590746416800127775353656830573850766884940819846372177961536180930676160083416216337013765503024781230122783226888362093701442706620552556147895140430200601363837643347834891083266618575611771479025094255823153478899757718557245653534119475192375859144187289756746929146471564048587442985979475065812314241167266247208683095298169963687554959065461039057328523457236734087035866142746425163639709504427512524786184203752071614578607992834032864296581023621900739677255843529785007605295952088771133034055121778126517205162435329280384512705874881521108910424804221102555616133316245757872087150980946201271937529555376218686275046742715531713489794773598101807856446244944989768811511824056695527858446635783299323759584765924052704103127693900092009314643279830753949533123584226341243964938968424666311429846137132932645695635535630824793884609702809016639317240549182039442457017017843091109451711446693653565365198065134124128836508561703908343590476589028846377120956283120568304228068777277328818727397662618036216583186559882639266144286977295878562652537272310747197014546726081173474123795418639363044417089524424621868565012771962080853221615430488327806861104518859450120407608323982347830150509963473787622753779806723543933859582400669387994772905415685829522232564848555371897648480955876928263653696568148999046288632115201865025080748439658376752469391105994990602462362176868085996983932137454519683522442632409292143384133664710257007872924624736163158816121535380491022912044978428007578083979942133791619124750594116895891643572968240381071825277365496692210052189062260452050948985637655203821964165429979108798327497093544039430222814433314686507928200596107228960032584770430391472900797234358964084442296877316043925272747847211379586370954688118365034900742790288416755066461547307551241353023989551773208922669768992405892327347670885466106854015275586043680048467123774793793784767093674634853342897911140512072925466413303132794661245714183671037274288902676354452338677504083181083634978119776994061286860101809967851842168708611054638509349756189687976390089819269860729282215946655997409692114850785383389740360493696481192834851095411725735228801757116067874628617655023520892402501221047214235889333102233675983526940872948213908303970600458990284364349944271098381450891646623359258503669066973318767702285552880949817037632115434363238304876946136924837192975814805022206183454086035317829514487898759137999687284220856947331033047722378221626532831411834192003973094251041987714978617099656620717836941239967560205546914865603649924191151997211753577683832172353944001131810952436855575867239557723485619350367561672971613494953566344221123021241020891966868178824502570872113245789277402946125995678165785268763582335097500186491364195052553449484262986047029235540678341520938649719175023792013740686384780443128728833092869232349995813881459542768334035077723103221561431386768107948385520700836899413989656709645564855992793887202596540635598796477519818185483033998536449535803091702192000220633179388568358757292464995291364558420464729572268884477452037629115960456557859702109501657419268370775514725327215283457160717519704251779778832563839648929963091730424941147632747142046849145428657075208370221973191482023352641470086167263393668138353677540037247687839176601454044676510890639975729252076314484745800332753660242829236964887301355033001282943477317743947402935614084553896588561383225630175687725053995093803704170517201182008173167720902234035224349623563579988831756105446880728077021302996574732024358230282148500093686191806114984020167850864425194243614882596154341131342442358087031064064772855539697940423026929951255734125982591496966871787289005980375454485533850525190091072861192931115252608086207652684231342133843654375461073190294091691843488903973841673718276202287016031844479671894910605994189533532988881468442860346437822251970217951611833932091528098418890914895233831369805471540944250780173942989329599977218247149215310999743307582765137719362955548979113403657372090807082193899633711727095926325312088931007133321420369320776607192626471454482143915059500852992000734169348490741110005764040097463969746638717259572639138167929923209196122500075031116373176558056067870122443979636640844654025535276342127100367365939230228542557960653838546634633164956623497997978936337634750991745623460366498974843882355673127950408455375818292097136939921695736443349385415506578959745437130911160088556740723470895825797380979704215438015427980416233128420520180784694594958705658065560306874874144014744751172385826214602357086079973235180422540834643954929250498627493451436462214450015835067185947300235601057021347688070759443615798004931734345840339527002728487001849208021193992024394652323421289950941090156280197764298803477799996491211862493774454005517057673730044286206902297188767678660700615636195688699626732216800756315565401692814543825767308853506029901984369961942371351276399198881933174941783745749572770081005782072712926194288472286770982320818536091166368627243459371074954993275851858043479695383172303271451948622493702879537522776019485692398412086362894493125094477873986156998102505914304796091339464372576406996124020233099348892581857342880606037445432405648041470808282027509723923494347143526738830170224314385500110768905071164051241169454336254008599544931231982483849743978214839334695312524817213244552923558807168939798214602127083238436122226705264604656188780535181740802733005259985031283388432591147350916457401459056465931454028355915417359367188945018329025734598064115114348758103426373570846965837944168163165236368246515101476952365819822697959241768297969087407406721292193592683705397874012445129934183916693123554363973488323059506240543535955100435506401722223566762463339738549632003300425430066893653602112040405512686589747892321823279801841671456287848683731887036325002213218994951448665440647380779761684118755794290862068353723028519822178903959289063492547182511269718686700082362370817659170862165258202042326992417642040937006219571194259328364683582334189216982902318185636615299389650150966077322070839997718829626775679183809811215402061322738661786707831489847110131317154162475163386918574218578433207176796134363571181028379963615970441636917291176957175293756113425603372468462077441562296022613452594367510560090751319209207608973654665440676302394538265985729566748709846423304194993958193725420876179479991993576510522670718329135562821891950002267120273125724571567328794753293741011234858865367100238147000491199925196394512181889327196558255547697916883227704448224579529437236862151979036046822522793396056970641563502914924232122181097090401703233960155453031393335130383601057066606914074518017248579865930829942401136670108276058246449917502780594793078073382935086314615941958104785887117835272351371837502639494037270536253987890936115473078981844949530712133122081108033821365623984737944774502996629144453825248937057861321291698300109774600559395316487715531442198778667907031401426688356943812850897353878399307907225980537320458214144547529708884025615651028485321051342357640032202067941704227837710004417776001022463787553852143025826457680283036719411142639407282804313266875466906780413369328706555280919276567336739502479898463149246833446312199356999319112590200316491000680754236381561164551779625895525912983928164653254954351931038144907062979393614152441785367259710627596215709232718021199315348786792096072809666751894489046048078868245238278073839301802971090224553237379728862731667340040211565084965243563740643732604995958586200550288428061093923410138838452948139181918075422046572290218130604867792317972661395263826426598758846201096613339341059159227498724934324809916314929863325934562924956047332460264091079901437580368855960370362171147520161552625038979554418341536541155979570915793004653553776212870472453376152078110892439371795927953264829008321724661452588424234281267616556493724930921036961795483054885979757593585226024614646267658256423702973340042938881618933707315183624533005973069147703815487712068680241750873934379780670506016111042045531190679169584747745655568155306015207089577923909509106103658403352374707560444656551025858328281977555946665156731362907723795382584462028663869223728064865739758891897654606766015319589632672851506452655903698916739569251262963028475522527100632900173005214252574855348571729566562963982753422109681975808146759449015063954028902830511118712124919075386899392258848993075750383991785227565235646013072115065015839162428288393483289492792411986333035390693914948336122800447599316376215204186924760082565180574223302796943128733448961511076656154912853073360864325706550632615454109668688978460624534101719428474915293041172830628989559686261814298726447098414164469742048166052169880857810239817301094060317593504821222002321508570260408377466757088894391543571930156577529103777548270379240039177024459987828644249587386748507707829446069587624802639979058109146179416265030796108394815382501853255218478075614458002571935060871981658492694048102614041636225308567270248023853959664716153832414608319799833404226290119036932704350162723334976586895481245770070988558477856771531542906810229112137485814318682960800678998935156064933183425029667678346801702334815128302448261518636125956796893552940306468705881064586272606733153574928605633614868840410900608657834021107267635618182460979683591822465008769961723613123876204222301954338776781886155501403721479440941701478468010598284117895761977407165463852599952195759120152961331791539024969944916192166394474070301305792348555069322673935767093722966395582229608735416838749409497751029241256778913515938937691157346768901221211036224882433643741370927286187795686099719317037709131301331010626677207844272209339437667571778528082553214735539802084336048530731111094271937103791074786313909219074535158830003062486158875093639806962036952563531529550825278662554813036218175927275838501410577154695350613035925129088282536579246290572060526286748210560389223004578170116209725244562022303967187908041716773867941099688058267376575270733220865537927363550594777308048223638110519786991041270392148765047750369367842850132726159585959465275058058218118597197779652347381443313857967931604067461212592750887970992986591178109915438131237714537678131021766462346296408317845740308510389339698683955439904499473644841296685872996526023748015751810855482168034550014044781057920352807215203440086073757677792140844999827902607668432241387651419268913089721933099732192487409699383307391950666894936162254647993321818199230674457699348155627524353681089199736214344494101412918047423530871140020070063999448094024148504982225915618961420245109200449238240559894566495870906047050104921643750423103345594223975827695490256333995600862432491642781950827727033582556498067059763603376466939615259801005099911053430679457649940458361592625961236769172151336042727587142044842965219679808889497527082615344811776990628561554263281160741225300145330078201973190437870607550899481193094510931286196282597021904407215815518045420708015190595145687742654652707152627418041301614535970939835969539526183204975444355056442984237338902634598732679281273514266422197323732535284865796640674968896899637025069620253703711305194693746323715424918545328742056670764538609588785194898993518467997833597529842070071522243455035989511932614288781922919358154748340710690571143142986273968060847315132324727668341102971573867136302671095111110930427027269212330794837478167375602611706213288769983848345158587372670952517291849591885665294251392518946139379358758888003843994601180343648637606003670633821728731379815373830905270598929626675884999097390844667979582028729360892100893639554659453026115848109207400895423927968779929001863608078216704828715551872822292815839044275554383371810573384390418283102578614067114704827068958313604688781648527479920440084153433119513550927999399934701350916636134590175031719293197017130364702896684618937082386429590454316141020715625483484653179181511222351565805406131764359369068707544540651018490191512405155271569878877422798443335700520481302867915652972849110204077895531425410358676358981147389618593769558887385535666438899847884910578020471386067832308476215256796826709439209951333159902304991087089036512502686655949147664317728988204781616236591235965134479678698678743058406834907517765968474066677360977344605596604958220459479879515606361358681232708353769451785233505991332183013936559576834704644223535987443129057329305960719044056350281210844313925631137126322324822128090385320253874710494509865330769227697302967298975663311299585731624390254578250428481424126133999188952834283429277863837681821084101244805358940987659218546669500537559283438376472814237950022211488795353411647971398186065082936566860509859318078807389479380838147502699657857996391202348531080618009564296617404567408079393472761999909184759381116989599486834603287338699080784933336460574734023707865856338879408196711006350037776037388161310405247753273046252970331406234169563962435444707942856275022208730659375107335044321903217194128661093821930617129484693080556435903890775764274861623025656327383568196157498797856092080979352112420048097545859024769027248666554873401324133814606026432801408489128225276961872309597837388725539927584552843015870440955796643878422002505772969195978097567434941744896756017994533866312540694055506753830983547066042352982011321786726113771963767986831549146031120796241662845093161909814454562774729897972783547411788144869058469301951236559493937019642835844649940084545725606796218937207841120364506131972710557725941989921293052907899307496734492626511658922582131994373068139372286957610628259656738058157093979899819547657427990934695126987611917381630800335816279327447689129578362174613417309774003994213773222925131152202212880784734023609477019666889434459653858338985401746076814125159227933814746900114351516812633230654677598172239877309394149609582025423234340280939180152814691491672480772762807491661951898845792531119260341319305490771495387190618901450019266816632661822541473719417261614122044959986860056752368914027152524702781927562753400660824289430280252724601964362287897290439794289929034421221945453338820086390790473773469738014455552070992275347872830690995600652108343614130982135635518674322924134848447402385640374796927254586947201213010346078843743051814598002764304662628358046762715445361158583140460868219549372917570743187755169376642957532327511178374300277506846627269378833250974039926863548998333856709239218538777170658104025863560776650335560122409943523811866418775465773888630159046140620051574898125519869329241632525946489938859365359591206742801057744678136966882573277387942760885707562849179880125425360926186275942943884534039620619962800389581992573951779846884091481496359278896598459894637472296770456779665704426954106955519054508680926680612482725777982863895019530876036298927286520615032258971557424634715643300254272920167636110481201264894594080231443994706265162170078908629624832857456710121534707286320238023130726323526231166785170656828063248436558194299012275742243539809351071691552774476176965445578897639857413177662664175205858174352707838382286333043646635885727684291382584171945021064459702561393793076478571729422768886533127230332813216312782721680382803449752386549345871232497249280084268358071134503130011604200988459409388903500962718958287254984724654624811851207907201107575715036043225699633956827514101648895701891653442426069957531095447243423911180159616567701450827842332673499580327415000051425481367462776820666900654736994896791747944561253742539169498941128785082852279772671201340913443436479213545813923799679170844071008965022169539955500711696644200468486894905950863444723021776025809669938149043044864433196229388966435388057034314872295130703613659099602987113907830245706038399205597277399099937492097100451110075247784351919270147876282758397736620618737951352697432097853178825403143221275774798256252508705233184617498104189154224382215687324700415616168529179153964153413479803075513177049224649169450299718514378153333882402878240720668591333116081571876242402726253696752457139196467621728071430596423205386909716322715426484320671967761815804951797075832300001618960935446699778649824789570970382860873246527594696787285557454221251960154506168640543582105870234144983613719309579319165205816591922860158500433786659297066968174570297566959895703589491839782481198381394424099435472671386196812415200131708696547323605420483652826548764219568223804416060615871288350672638677487391978102640928041725465516215179340299149243033067539273388826518229193497644561373087378253215734767268180174400389418435637433989637947908029730168157613614287484760674264524545679338203616732692735038605047498373658588886805441853279904620811524322681724487878669940248140340130054726845867307872839253250686335020563192205916794976592692133413210795690028470224868235243183870094317552571611003871992690686580117771543656903363890001987704847103800433362604692658256156571517074903532633254143322640833148139470241211973035259474997968375764379336064277689582343497746047064394064011073565591118098759896056109345644495965353612501810275865641751308405104092810054698533366007987794520359035645415723633474604171499084238321201942246442674063736327408561807970610995156975716400658948361709776215737540169374906466956806630701365325717669222735657470131486436166711691445540523031063925801021491835547984860313967500784603776901494444294091355019963173039791255580569071637078622888685938915575471667014719516803613379768740291639765070423536989758622454923646646371842413596985220789752071678426470806634861934292562602314177913757870235688067333314993570708364630886770964074858872584700173148204178341351648595717167067669245187009573522389492746591060685888075449030942591334066645807417508518024724207445125960893384374919402734375002812062641477925898910302462382396283172115152462934014237470979158456688751871016842547549310982772607534519138930711204677739917747500382490481204087732450068468349074270724209449730350728255454395883076421988557545751642448839997785660308027136396522730544797062223217532006466157298719806877624927203491760407421931053553460630931804093206602813755122600743520839520641951358325762699418239874241166681797150640815320947330223278460376108512124263360441550376132324276273765532964952313509302807938162163539931971446424185122038915669502254048627376852685864589484305695416307047148430102193128936217715877895339081958417008679844957933649387952455666237945634676032677384024690163134022177234399424725153678965154579188826248015690336156457012981370700296615934248231285820733693463803726239025357744104056648693554156975795622396944674236554038540851798683293190585437153931485874801931954756025118194787872511202379955840546398228500443306512767273195227428123978922943730207554899490570026114182629036832683256699385475244983981930153814169051182555108471362440546075719854928536106671429894896115085777609613069556129749561762330669979768664435530367173923624413792742417322363673529220192937374340575142433844393415292202222353826475771962974983922847391048961941682617829352250731851465795032568964821964559487777464742957524167536357515536904166491185122469056560286937039294276166333205957675909691766695692910809052364320665921071438534901042978716510499107508377216158518684416427197038883888864995856137120565596511414158725207022747980071458116678581305631165744447982349379782860976123771055204661014549592912255728955509134566276004788744439185762934078225625906028673666809554439398562530168929096154500521610436969492755186678445981271576593147002604828756154377149394099181129027165762212705617693896890776458000308905156711685642248875865636164656113775919516731347632314302708129970308969519263193013746630751538767349914295302988902553915874819906678807429642228921543895449407194504615401924262245692788279868727139599094831406983852292497198361536091816379054643644326502769714633118038356851885081990462038232258407101173384272751258420523540607198263616763339375771842738514158808904423840767650962844588407045197962004891367290171810611207912423972590575462847533938731277162603444429341024683068566272139639602842389216743789452661977278095358902909275080110519676055237646965177906223158094997154291658044419627220719848424957688479998761829470253165732170715637762115546970134493448417201668566045918123289565052137106504414069604528629282223715904054982454361599982685093020779541677583726375060510702842850660845644012296644193607489532436614790631268949149266132221652430733930666069923754020158053778287108747225753912840216689572147295064368478562515050762477835252447688170683117627740672844582063874095720125149424770299080594028788684473251150073786288594077383996055325418848966974051610412766906994880217524367929125446586729953776951472940418895906425433367924006116285003912442722334231772995949328758324532625737345567667375276391955044631623365337564558244819013958321043764910694491116019441327758237472628466638378153601967086819116048704190855821170344296624988222332857549897292557108923292256013122430436080205042255213352648862170309604925331367408632878571818948785930865935740198048982493918439992512275949112670167318097848336994280808930122026799664074079990753627789732753287038919029641177677922244330508644809730115522709135353205950891172459246846491581778599529994908336185029423158092133311352769830043730737941269059444143925920467327278717379640696484617486095978487822203591456580108045566318255937388244096702281847540112013396148299268963150842006829733957279716518244982718395520701048398846790282451829027973312213567592805893023827549785824995923521958001805016616262960739500225398182469866530485777704093211442291261418126368819076601737785194730083063533461360696107336181186829356588145715207191475371396531898213702256673164890108844698703010225265056832013054968708377273647494369375543920948197249657426618150787479012112757342228891214224853942087657267791261536846648539705289694366289433920287564924372874967780810939145753854549687738797963489444703145175799511483619453777102481633663039006101712357374675616001283815983614558727256066766449403704789526418749106243873477425536318071859440057223793974165860073283502495950076601897373825788266984204072027377298319855629375315269889446525512299333247782545251158418632459533053078254569200177899390336222025206840281670851064816732265783217258580343776980340608195253970745833863724286165936057043918641363308384966966159456765959440936864024912025511837627541226473136239356597206189174543952418356629565301381418246037300627562049923187328252898688480460761547952501538855925435905013479890732959381382600183233906901691053273619923077688732158140539061570423928944738959831649254353575844831784015650518378359048807159930345348873331700504330234589209010626840615956011487644663133614522912526807412216102528923449102668547684233565222830529353816547330199039467865296831106870789737517432179702406609741015297620326747275299863304028842313047696077388746533664946620061584342976211177068583235082167870361613313516173646503402928755003577288258666881930895989499712802672482928745848234950779147457085770792867255476066987238521740064297833293561329788883422306104447717422941395508082274571745356112412042706446908923992786381952826503690342101374094125622741080333670695493699378621850503056136679485911018965782719302310656263933591136529542836059734006855414423717170358617548456196485520289875510204537021450488643142755500124021202736212458057748541129439288797652851537514228716536083463132189451836143700315467843749036344278317704171977692377428352831240369961359995080316044264914748185692198528086503386865436202507603374333369125724020812616612298252806146639603447891502268260767476771896492382171941340330762210526259339999945305601372357634559359345757832268588149488165210242827558608994279174028358497681084066251273250157571593591709426538567996686602880552314643694046962619818323121332176014117521747215208224298168403306118938995727662650017835241221466027790358105639367178934055136042112194027871120955706841039633941571563307842402799137824587710864476265040536363153653470791170723720382699330919764349628800476776589142814665699775621078204176314561828117164796039733718462998844919900678368052023252263651879914291990444470657098300242645562084363377775993111032458636713024420060923717605429370845616547094377224341412670697329101902633978143466240718332163284800162923383321688455221555566699795837097612169283097306798454359059490970595850276399522199971500654977492833958756108983459085419405245555174448468431014454328154663790656202604552761688631472954189154348806094835747191221509546834278886298543597107994500895022745842792943465534295411445715862949661201559154619999980284911678359505478766234513782733631112014868528482093210847246365798029103948808361517222653497460170957570613498782373411782840524120275893494216423117121420484306269389686272089477700519074769849476146887105246419088505475639988389784559049671945095837046980230170704803660108628068739920777513921873994077298017163616604007771857420374119213356335594221011256081711208650930744684412183932793055014596244981967129432388576951091277412050834452291684001146228207762922716285654073462745678929481361427287898336486408404457469863299589035640374906658796559213615459574479502617329062139625904606443995785470514601429516703796176179177919724359687973830008550399385093182494553416806398572642780235117832877803556538759162005102273327578919644614680536376251922243711679386526730470773794460959755494839632704201092425166631530234099249850264734717851686531025366550417174783798944993843607375790811091817584175729172216013786606013892565240452633311956992484618593585666252348880484828109310824507980664868375571964560333612369588412006933988922806711095638980379663025270620292329678012970280026556199172351411110508099804215000357820752978253120590975525138378482121145590794583681628048624176336807584559369111947631173069536428157420928848443425508239057296091233601887215181704160454638154522321598878895845676354698229773861299375095004825555529112498639820290543373391035994749360479039963537620257987943321921830157844018899387119517185934563970733485201504657610955561350473214384392382554527518326183175428899885572681304177838832630087240253925300954853940210309182090260113670719900719285656358099905400850477059128332292232497368224923744837906191976521624229406348620539412670946148414452647833683682570841969394902627250630611579969933551520834924538440893543855294123433867278223998198409980469857986142519174208501427216374340115654758358878658804094688928539469081622481540720048583089827910562090202585032380513229494590399768007544918007637260410508252258865231062114438790375474115680543284574004935501210604834415033272475000877290916258710484816552098033359290000599801289446857810265480073317806570301910601989644594217979613530170127055091285684606844294507864741406780308060513253850054217437987571894570002771287618904614889529447359395154722589701140379940042714464440532095288276795244098112806963977570685898028306042025033552719585075435905328147182770790676038028854616353140938530505508198768570510623051177797813296433295235947011521869779303453166339241103846996710469823162750842710261599917392675605162012872409564096711433800212981472143231734890429140987089453285584459730241423089945666662092818436034341476501261729507405889731864558425698069095806178223138605705260666074191361695643844176613592185707581452776188752916165396046662599000120968148845554444324362096228502532473633787656283980381683052124786282766050354548790193579045502475679679390178229099593321162649457189712638378310669866826121975285162590440440025190959387638811144689279267076062411614375867016763716421675261104493894298507428988016438540397524699724388855811922595369855012716928269438532462175008084414118168791328950356171563939358299716102369308020447865738365125051984176200554688500192831985985616341376190086480332256594665791867147730471959603837363010993834578451892175276769975464385336501727412835191751068435746333888538384482302183795668708438640061761565544974459887048970674005557278476267871008533308808750108996496749638041411460565351845095793391513123656109221394408790455802804246856075879653283416845654407428080117299709559984664349587925299385202710172836690836260470118186488452685676296545488886403566476168532546770680989215493538722393103078729760597362752871284705376510014553492573246644471645306724670427607317795255141650671158009259341738001072815321340405290647650489216028979204135803541102826153074808481361897089302493924402299305797005938120968671091484919051086830685616149979427255774965945449885984778726842810083038251044234970980056665514427999393662703771938259113924292779142017216955451487394690124841880653766601369656360234479306930946500145318960885739980500942237833416833077078096752644202276522579196933964430522306281677312492026143399205108845318790262476590247569898341572209085109071925328831906074279363548895498045773957557031993650964784115405680141996602165462394682215758961373252258937181534934801106054316729207992491771047081820370900178390303418718602370610861467999726862984441286024055224284333704664201442618222056436479309986860419920855984667628669126324955251268993518994459864220601823661588506820769808776999444935878026086681124322663279436620027401117482311501029279769747725793287716412409948815075271421289051679657818278438947664335489202886256600529484828813540716339329648549784981513211647801793203874214377821932887176855529023310590397889489634847951604559903312982630045660044708760585359014145142063301254350366905396517046293899274428494389383729015978959190841914809741401591123708880680068084769481723296149361017462253310079079135483696494235328102955472311537249081718306746303075925534670199674761829900629490174245560648831793003644520660122969706857478987489613212736208678602736262685048954304884314220369574679354676154554530993035676813014902115145519435735565338053917168616536771261416776187176138700306879413450248446293639216906576855011571587265451668408429369606622098964275341401314761453599560146345168465541215087809797850215554227464920332953271849855562120964571157785491302225199444486740291878671443047183075152894266490092423868448918560924220541073622986448032020140239550022363855626483287909797259976763738366846180376058529662419875246033702615964412547224939219388914770349227386539348732021612283580038043274174471419866121453096551033101709458057165336663534591924082886654367257984607337044554000732648199705048545072012202960650011024052349552857553510606181566597799394712879270723823802446911659806467678616578016934730390356697343484846259240870361343366464616168942863094658231902769405206273277902268481726893924078832560701976898167096108866289923326534101819024618104642005395494869108816348790025380840431430021302637438533489328694137354462195628412382732219083199981439766881704109360120011912767155306777448658683947748211044233360981040122269829655992710306018301914553140494166025360744191558742903586860066869999724437399321860110083505411653713944124929790830973136185715946919743400654894838182982994085717195548102189129668826094091439058429834079468259174560047708002699595979828581459049963917548345513375395681493052943670561718306511522130835239406275133110980075254896127781045827815622473899183469380710557337216158517544424251194138429320922901933316508812241077511405064689079700280248010848281359065777926620821451926385454745798268145599138206495227746161041523767503070643160020068911263263808362226102933409783430200438356916536055820892567391091796627945810343693392657885963015160497534176001240321999144011548189075434515997428678678410269062963458685396155077739510540493713503209516234660641047727157009096688427909965070935781830586997879235648736472775674799566613908068722300362994145915851263707459344788766833496987651220419432635886131896187333618636746221953233983138025502660745696873453197029212789465972203946202700160311720134398607003892915841790135419647737782821623025033991559245567024251369618949819056309350950538745290870556116132088246530953637093576523427954068536210163651609631731676985291755944919383978380999435177722258443850120801059807842343443542791235279630627534599605977436575865417124943482814677067657259467663870206963448663192524439094255688366849569561862829794474336700890173796336442946026073116220823223873548569275946124689264038570583987553576324732701607631770497747912853440524085614417869294780496077700902797085946219312731632347090315001356620414746104186586861657812545595312379606421767408994066558254623300067211846186417540386580477751446112447676657997364062698595632329438813502883488732277150434036713325497637752122941116358743162884532334738382640578431512972233900670436294110792269820384056915291165346544912670820022169563746073021543596590232711986930996425219606662005639447283806345865815089774509123789370662119549774709067743864327881869994692251434518585214200622036876253164139246962000301365169094318324998810214425746541586770605692844899152711312891415561576558397483875512755565758847924623507936001303064953164009424954414393164227768006619946136372479291325367728390578901229342965042909566889376362168718721865402289390552535033397976014149082793475578946671339720165990518342285796782863244395135923741402638004350922538098571047598410318742207471662924590615713121161870927180544534150851657359536706737101162377154761702057598204143431122874592758026481371563448570106197618676791901535494078264125028672662193191259825654963175516241678590703538653920935886864278036243570662873510467925331977479504509086330230699708964724898049492792378158305262857778208655814331068731097354219648423254287946430508502109627564382972841363330849782510523815556693012498551601442881332335289070522750327336282371562405585807183524884258025535483995550198927899262439713001423464949586156368970864526394577485568763945559246064705438872469113456657225031519729394389801343847013755170460445287773289714983084357951454176976727155176639813277475073222110945710067938186952443986927027663606956879799035714427273516056277497669038407081122170437793816314700579088887187238440981147667943092592552627972809270081332698625324562664575180856226605652380082695589178413423058129316077507015387006756925145562990286209781603015686276673202597956642460505992300460355334696946588668610744514906175290053706015993857993104506241510009527674621597573786070382888170795481094312961857483658288263514117491170559797798620778818360765102312901362638855896251046905642043328410771832300151487750678686295522167622182821319725990870362599418218310804662861731246211896487128621404750965536866657743250282305703067609281496327020588000021474079098099892145380624121717519604694754304807131822188923746209976725929902796280615156328867138772250999088811793987018712610100737318755536674371887953862430990801524390209128186460942876313730886259632194582324194845916016474778099764332286489691045871756239706265342816153377756196332914590746881829153251434308551212602452130890549821946948790124590810188718429036962025831557676481503882123685102618423013506493669122748686841687675068754473018344980914627579905024715750253729923242598057983632271174603126649288069653246928456625312169621157296465625573723915705072102993684646137237797069579534826388445848166182417338754759791534812972270414019342602416461297659654043292081765445340659456854313636278466206055892056459354128576896185327940137797551054684793232842912180559927724494509016577486083501108093963955831090791749335564517419520076764671321152635302553029318206685070822699052952628624423111530779045875479174903405748895997122128756732570492435541248381135480716670584386425807637106098351351851266553872761947836473457733113836831704901795365445943252968740556727204836167426208470014017777209425704510475572176576211170915653675929635342274113273811676083189931599417046868999103927176882320930334825495061212906092746679414213719516559586160547571513204995278087395608031706626915174905583032855148686255276185330224670932564066682567933357846669017716177461039793787906506733273047295411828417021714339231198820489896040401177773245595598785226540888548806817882349571716149790787494552289356798487438493446083771397775470458069865606388294607552908074180027278167051097935555089420852568620138150341044958372863735092119476493860126241027892078560071594499367267874682454772473383067191440172488313576198822774232594393502739880210270954549009137134411134474679669893964959351441850662862028855333460196428265194388353445398121905563696349287563437254196810116304043595253221294551016984843060102037233458781405965514607639329884615122602245732714024374443766897489146848266537421442475231716506263172402840026948990297873679381525970150989843706009759998815897659359686904860376850188021272130061532574484710973242745271047814241043880733655954577111842388296990611681944355156384812664421899096444275840705605327204456249520011010355323881862078406219552729742026122820114405990766206682961867931525690366210143409018433476036523987281830998950048114811248750417062140883443438694995479192627128076665411544129807057631929099305990335762672601248035766073699084490935221388875739458577760841405527126441593183612041775981146686638733982720219039985416613799502871065250694869338606350176071543399618132813904908846380423426856483446824996032095403177034229881710052867578574476149418744735907456787120793952325071594650122985050100876571240827775007213244313293596063269548952340966615952429546588957606697627689798167465078239434986450012961422671005617112082360996909059285161833004661154078915366247509460096433428197666835047443706185020811154207110422236368538615753839214771464601784845284487199687532520399503954975755248641568517656875731639995072221708363009812597850644673725280807861997508797435461491953329204541935811543912572143643154419187570787851398224206370789278766694016728673173342506844399283684558339742251837112038394482139759312744975252650330935174647499802006920298285290319408794130851292704592250698516689911306307597897270875574381058529794521322649599252430153077430041963152989615372131800918012858922922411225391387033948323685843996419553135203133155772379296320987677116209019761864567653739354658276864478086520381621327826914763916874974296713672917129161761960148558023570036435922137855435635843544745673118382613394370561228587728488056304026125259346169418193049327600126775690165298742785279299253153943121542615552855017555905870342036301299232927248871873474963015043402792094039314632466957951199716992299166199861080988049821836763590665498506230647674836492787175532945239743546617792130729644793163080849137910860896302336119852000575644525637605227130753709387651005572466031426110230433524180403592602636233750523447777975018845967840108505889324047716944037706296885635510371780297680972835932152119282425887459390421683736713657161366675295480799331447025431211869525097946004218443522451025585847315144797372721823461260592400303295174712067627984292366341610228183231333725120074907960972059483895247173538950841504330222201002807475019154602424277532270812253540890146006502406478117581410869647135849471668575243089827118510057267912063189220076012841083109726838766290237362265372113139762206460895864327112665329277394422693612377216080701566733595740445608999567867298334815955846004567318624548680765701632599935876111462618829479014525270478692699645654060962950649454143035339232350528855822283065569793709144616543913125707784618594200969900831402673915530979198262100043668093417062976805231807123293778587745879788787012899561325968823810649532676519682281049361699272647162923683139990805189710075350809056450478767090407441990381662943291095341160430627580148743939296513368138208641597907384123178287088292082099867712528942793155618811102158107361671961762192922282090220294042425737050295606672688379543777384398495507079474482258618574349942819057961003436894700526150138867471467946994259811094000779787383042252519130627965391398161408475085365364191600788592572783286796703639922298717893521304702162012003190346128993540954393748699898296506395353279311273793201619467921964687491172836912200824501739125702041800815374344052631408482319702006402208456655360960328296870988273394041350054850860646552875893244071485789524863879750205913624693756810433412894808705683146085184402753308638978851292687000971204283925785988888551197397743476883026970881120069479381918439511559249191695376068957408584434528375625135731970604939338122068108160502920238751989621035766371078056939348787485797167731712859556034101409973353686164618890276748257969873716775315614399669118829333867373731892242622600896778323067823892600763339044806986036678516980066032353714102637892766811475589331149169486138178298708789748585820709758718929340108877315123633705879500755917875711773503777517618755194783927096458281868045543358740294423077266876115140492657056285163021546478986014738612432910130817920000906239994566469284352654027632970989061397215224623885229672166088725057087119965422863401464433202845135439622398546133570517044704001345092558117464739688571998004498017931748034375682901539761828804183666902096718264017764582416144603724723335751202182675829979266347615849951093101611003562613881590647963461226774231018024536310133328458584313049282908842683965429364844582759456951569177138940813392858874445680669492928977714522226199749842223095725101792175614721621535946575367277238744539923565967899452682830504708693731653009473511391467542643474294808674767776926286289346198478677866636125365070345617191721274199991513864438832317399537173072759004050247086023808386963503425844995412375707612928694379510891539602251050185770204588589015486144087020202889334123695104872893394054077197617194843116483218209035143076431790510402135978306964610967818506332435036145585482780088611254422827954407121954052936582128371107207331487363731081035472832514149950718751864728889962863364466235878643344214666526774517855792490056559279533935239645749368343980573715180257777265923465500115549194310578114088051518353937841085421428399661821719255270449549373465968716116082868096886553521919347854066832776176367147845976093727424723857761424885391004946202913304727466347818493503071978066074470551671530332763469550968969489499008837850145360272764416038932784895027054618123357986921639734688437846155354172775462577325667145833941886968569943544122998642464083088465401415031214188244145906935044506548219304938199162182875207180391220189103220497097474676747906852973623842534200709554881369920937180419006558829960593259159099940834928283741808492358174370362676188987967779241421520601216632072922969458478658296529732129615539442275125355723912346726333916591399809598430554066946207887321495486851328461944861203519486593909738438864273926043553498780630531937175014066014594568026306080567536073613937672733859227411238539892650236388151013420526275240054700337790553554577235529412486501436617713450088676038831963602222322310146379583272044701360296711042979325783943243015941878533111171509233395601838993410946641142163032776855374685822054541380169359131086910775992715550531198828270879097489075394413161724859965800495327106169256091386950832074185999552686730149596178837490520023626143187359473978952241457017394476871411711420962830409031346360024077546251203349715624793851973321915079886946089423710973185610066664909474769533445904902771081074774193825489637110195761972687816896245192145750944942586773014648383161082827336731646207001292404877893962756599121161596110205754895138024640237154719465614365637311875260728146538567417427814827828344294565063290634030161920247390990165038347913370206947202299632092697968378078257333960782868989832963721801263760662511164013471452140217547275203451146921959151574205666533188998483401390100720070348416826282572002116087445314830614948280116794748686519080371349513153075923396985183958552329259324143946191780263845322184755470737677557465264432358722682723083840510744822144228882401426373413333637563610264090834095146663352767242010091464258401284645372098360893218392221758446116318678417144075724561502213584004311545131497898249235855573114260082530326196299661095476999834162234849597861085198286325243602317536673387567349550634819912433573697186375989308971812866978331183535649272161038271233782622154278983519652608430147270684155501774973754935944809290777744991180529042071002856291747987717358511192388543046549075682916733373695859546385461160108282191968391683345437459389993380354881897909901485109137370671759495360498566938625489187482171570884234638683893085102751675887318963462761737527976028295003171932896812115260374361466598514758641160914724470782390277887142462041157619564898762790289415845827708831024719388941072089028130301480904257869236512605085763277870327141536967628878496660562103367080243200785937339612692897419316905384977530198349207750816234823108428008380774328439530460956429011776437913524351080331035643666145608884490249579238130222035351134136893427384231669071051314250581178293986145664243984438697029059054887758606139195651875991568468023369435509810030166223672752459753323900201452701307089101699832528312846843905171060895900677016255675280960736533481673610099636045057878609056971167587882500492081619603782456030537583604685319595811356030527588691654703508959324008081273147936389374944804443553720722466197968214050303224613878946651995393806655744063462221158501182304984385791413487126864926486051759760259483952360205174857561703078886345612268258867780182701530257980705604809548678176951495355597121131887896884823748754251185979485239526154036226247405241550695611753265434344040007043188476483035903657129823470333427182043885540597640493007372062075261725803121707831372041688277795241285727450517427514857191527334478997941968427481390390100730645843783396600348772159636938770976447187830743780132004102180040738145947361136190415640953099666573949467331641227538641408806022652371642031582533137748129654851470855064732255787229111309351952895249837460148504958338882852869419404252166223392943501506122752414781378569663154597107404868097570661317999214156176086542227760467561285052696934717303275395689032001304145762949441464585800340141611322606703424938696495128113341774796079571892207539392008960369834690671699054335775788425640648171429733632963050647248236712926670459729320199531672619969510851456405370335113917691830599841711461103158620073148683980388622514978413844693985151669250159592299320724980422421530090566138447256522090301664453126771208221696043862724270912515446628233428721509072146817211510438421965177349460281922539072424676312801674546273040846525929608313597977962840771677067132392176327812371284893954356674966004679871754182722146763748727713922790616196264356084874586635512566418871379925962098648499217171846045914179393788626145443416249907719134169474570594243510222931200771073100204608091722497144069422618556529875926584771169405109965653693854284453029896587637166349221239881478442277775337695093437368017624682330799724495532206562375570454927104564739629973812589369701923355564578532736107098755683522662135972138814724531559930660316540611007735566359499290471954701084753606158621852379722717771871757423105666339932669476453185874390512171663925314164427859427506117361411560333780129059252087738683732893488939901569354750271790900588918970945532297461151506353453748977196919332914434611330732152504120390734171311679060480701165222103306469275953752103689915310614141339167082575930022123239365461168784214919118845243535852818971579593421941242358292214522938913497521263680757821232967916823527814826454749492101083734736623451638452924094604163411523265205124194027339813756306448670131866983358794066390425933501681142476637573081563914932482237467654344976124735216689692705693853994843809409832301875736893133197073403315847033411538040480801269898246442108201193434218881616248143449145623024260910380957032266603152299872417655233510900150267735848922363868549304304398922566100442337300597410198746958708126909366717439497410876666694221936593463857482638964650139691326702701551333180411913696429735988980928314520500675119667726771679520909067322528651504393068109334911141164836962366729476995681248940905221924283975099860976743194692363595892628322429946698511803975879283493177344510376695700255133429220624024617671146012722729414353691278034378836587924699240737394706038090437338109598608490248568466344567568452128693403054551585567989113420607275306015164533877904118770001964117901562373599768465871996596885751748389109668292484407691841262560378518653443433572724206200068705266950563650041887706255525231122211450188586731223048453901405686281257859331109234447168029318079044352383342679640887774476723658937517915223128153457956594230130682179875857733555134760853212554929090748666517240008642292906912510641289249187269607332698699812207254519179873157476328299362547844882812024357583832922326699447393514737685526305316777245684343853001752632740402671343963398026840476791653964083911516246449656127059354755333686206886128462154585342495530151092816329250808632798474486916420168212210991868260656025033488575511249112099768529408416998395728992951499630856838851780296904208189054251038616644603113501884099244386390261395677919244159993805382170546360328014362635522124742766921427516382625710063748372594067252369702880773776680634269896751849960571449847450913595398185636035682503701389964915751227303363732655228726538907756700112502804292979857911233620380154752805933550166716123308471251126209631800873932856160795934196069490603978111025719727404639175884260295285665530516758963821057797329635407669306368984741317703681374759961246297576518545184140143909992456965908713974565735630092789804794922510791766531813106650829925634555770229129361850038165632156783354613782464742307689222180314448750125085035801373453905521079904579357669716312598577960069417799159485019397197096951280027313560154296281487998944026116479806083554325632259740015654514665802882365883198493339200705079408049043203932201872973683388860365721967967608985954396424321123968710464206223480321277094205956631035606087966455931523600625308257756277331012569176797679239708701318235610026370304587765824168942134623158648855420237240841024418186313329862575377937748450970955299423256558069900105665417625146077708200047233990135354269780407492491940450786784957062405126383640698657782740619279301870114317155822305651210894285283804987826697168104882965122198665905941059251319623715921968251069760535354859844438339955169692907593727454369181825220419668545430586339875355636981395902559322053408339976059241677840388275749634170760459324883672928471374499701910077050808066983795585814140526937522393816366190476455879563991164905682771590089516498716803669802990250069728939589783188924075740633932863192382405799107092074855260617997384074994697764681442276723685651551604730860524147097300059781224671585393905726549927047261339215187417898777438620999747412755848822861092067480599316500819465737928755393122389004418419719819720368510593190355233547068853416267220664825499700373130535726732253808360370404234154040077775521118847161178849287251403152053489222229328738042614128181040259240713822822533431937963063651093928509789903143900733994613389479370214606433676531351457421904611776404831113533225658313010674203149898049840708937311410128143268899019402250767737390505280234962324768699427885846438213437705746245617866019329263452368705780342172625820110705960742759540650348785659736779435845214182649319887344198770688396963534033580302464824197099861312826702672845541271541048228940342871751377066384376924276093222090662294494642419899847728779170060123599390498850126477208398532872750318237090786292787750756662712181595842427939313388770131912364760412667903063662241683134018954786338708166101918381892479676483388286165855110462756599735375664978869259236618677942722336429882046528366832669213395657427291618269149373099351834497261610621868530994760796320772867180070173270226151683943004277106838483217381542282644156490748543536957321016743617016886167897436691912983613619139931479529263015984701620068624816915189973917468196922049446934468390509276658176428474760419172283076753121763187994303208269688140800041662471917794985734660300175875736599819782746495260318266944574033659209320609784969878228667143786415980250902755434447749913861482409517863570480355752322895018790475135292025609289205766261433175468306892841382356766045115032278483908794907042232618887870824830658886506842268398346616713667981721151965900715091153865070293334767873670049963466390138412186755100536360108515653992326844940958176282812602412627038256358734532676950965096622265354706682475049215968498009637397532359535453766087707427542867645542315273028290066895145989562629859635209281880211599802506610603198250997233965982860785800392671188700532805201823053535897940880679213257249017277460640629780376548064485423569364903207974102875999795761448132695894290107627208538086034543500605219943317111539401762416189605521405666450288818444212918696966736195804126444858153421806985065110168139205394273968189845865449022237687516771300234658225385037646670325608264476007996705732960939998346485475743652403934151911767729804868781054289413306471903026968919358912815459238701208174546076375656089547286955594497333037792902449434659183429387897199499602334249079442218142831809529321528386997504967596998014828822504824304409771942518935676873649367773734327377399510023609273394379399846717660504501571201057657524676504615045188088617348395457768501955666516225424707435596240750846402268383741332649870759940534994900958350494966202598210757854874554510661963792273491440783328479621405483950542610398215497858461231725311638840993420271782309265701570666894653071806301279172977260189151267167364516816547447914249444006099822800748833759100920510553304292617669997722203638978419232959885700680847345781500301059962932599901511127829329396419888798166752492904229876228576014636187611934259271558296833744877049565968193855142360541103120149343986485428902159971506200877428131459253242421303482182564285950020847295160784320829402671793253044304333232644777917932464652467072829521768646406622315057309348353802352385949467259985629683164692826960875596445306406688248202119094662831996354256689575153680392067482382835515888392679604165059296278267919395953537399678335774139365245251934194138379896126908668934463931109341520002364823318438742752139519562849729211715716724235965858496619506324381833934043799175588093273208447992642743150989559836452153915424238679422616726691238400326716920055289121489673547938795148943365189142466344634963160895105090349184855961410990789133254984944024067844137713098604667249442439733414402888286137877638609149384608900672347124888340301318975614668652646301351072233688625094860501512685320446247356642968322196192625912225348767743890284250830912782329339163231796045417911084180781589521172254951402694094704606104177794032250786847704826681334419123033558405716637034713212739493318159880478099437556431140426272822262032516178242712048293049428109907808150397696890512363799382911898772630549840823068221578464041556332374852204002125665077849957000876123940407229491314352004516745084026740819877524362061591754702724362762770387842366062918553951674670413206636979225614424956394862237602168374684175609341357179934207832823677639440011969495763172367267880397582479504767823322341062951626110104192955993127491273317338162224173101064364839555503865704736722848778495519562986911465009145979254276327023033149835742481886453057156463450455287392642446367676280243475305793815761116221967166033417406767204399048335004887441238114136610753612958535190871610459016934355357765321675969192755394319713726739839015910728902266364844541472347950112010055939373926137808566970036494605039894757667465630987845397549665569977356917132963985223963765399580562414657011881590786860763607162393802614050684966385109576846144749541430566757542607476809105973382509622270184942328574203124688100194690394603495705804016816298356808046591131030918747790861044198640596262573295726800263298231452079356384235459013779911711229236997973441943054810201110737831653120745547824097939256530851700550101564279532057698137231058448297823868834694882124885949482650313283660460992820943026995560448168768259869641074484631669549873774538387412783879175552412657137040169803298875036879821359629818521796656320580552128253869040998730353342438381530105417701306968623807293911136517957152870873209057968285664716259608912619973030475249629507343938021996835769915763027164204711166342769941823282875063287924212811252117074285718298908466407941042612096797742775171308525293956434377014965885498307351926110201540685586644688482093597778786800499161347599464972545729330713176232684760131035374960219425678289799625512128521507844857904133722504000785086531881161874184057607927648186478053710269955890028169817538724210303864207631902611142432409398347185550070493535991404264189004358583816722367048033084693320271176576048622729968741818195568753126477583452777503268063480733538768031739052281509448650805019542518396450077913392406861738048505653623668298118041845153858811369681649253538285137254075392853082870600552087203986700262286160598039599949276298018707092032041345613267619318669565042986274050312474651635187414862509152308891276481391235071657536824043392519181745896084553921226011025533319365309409784945238211922262424818643958147101952724297145301972834230596701162986453421281135551118545832264107756698917652961511289751184884960619380648272144148573833254182764235542818995287980430166374404845079706030531789005274022284093202235553748718696311441795912021795424093998134510171619275201543112746080235188496546796428209724363676234228328835956837767666798111382655878394469233189272246487548779471603582981717216918868201505962772515137923898480529367649141752074828172257745380569881257917238159279792626146114289803178007995904634561551456067460508022011715333215836614575170153009501194921459813329217323507637449374834547347317116872950184540980272127330650982585690159673238070705320062887704889815375300631530332874401268048726751765031410123283748534717631347711402925203312414477699459037154306803725583398690360350368500886074434079003682171864520317484299643907258907900331944672817635835831851993139869632704384814440251861071658377516789666218807557195328606789550040405870826688868062347287608140420166399324990814360259826598201925490959377212020612688788472490671939946521682857524592187324107705660793041526390776843056007973883713722481327079522136125012750343401490660209169858062100791768454521060724086121732262235627965157854711977609910446687907506609634262282403077358179721753506108081245842725037169904883774538212079731882559156995620217259315255092396230940077349574216155159118844280703827726384622462930919179486134229994427773582126573727893438761220887268772408558852829561874286687254004159215384651395920361339245116919372548748573939200796491386895240846093107788431884507773982113074751698570069035089918914740486969354698286548439031849782980276515661769216117202194122303579009947028817426693491478488077506680252179027532277228329415662431225857786386223694940928044997298195840335477495027627115368775833462364893134814539526986636400068759365938114801533353538983250405890534051786901063043475543263879623739985533741233031240145228942072514089982748303021605391728618817275075302585995670067098993904043424146209237456297079526528002730651639924361286722568604422550242270981643089080438152969811174524062144814764721601071360366362200995361923361552142224383275069666866961495384760747908633658696975386501570959466137385793358157705343581323496575540726308805501412260509435777600119170717956012549938022383537284870383236705560233998733742494161942836875745142795959218176759790020063199339482148807339206405389722020401892341420137025834301120105789743541613483651640081337264819379300552664196740036069357501923260451494413865829732349929126447498086140303845604425242680307045719581826938601303740508011504107283652985612710771961835922518922962626026337831827931512623482725635104983106143200092484698576861154811539937167103793313768320595158571499048389020486533658609300990563046049127519392979266581341472344725056069041340457005629930614382468219380108029147060831835685883280754217426258543274776883668847616627436704064220954973179111278037940878537331930599305957084808939609004167542793689451480760609761229935206114300500745348729152069619746501543455392964650637354496765630818296275967892225268350181157221017697918297009861155941495369677615123632461735455316418020390331945396849336644728542368888754800448178295919170919311669027276588704058923814903910119676128376250684224007130724122014781409268561985203430723300125308061978968068595804035286127754666333951655353599313545702627043000038218007411677687705649463309491551909057820398228927793003512022963507013302653624762953994169671658820625361455701681561304120344887178394458300512362885063241581516028778235734108578015227080062183983981809323630039149857828132898047264250923662099657824379041581269643587506661909759852971810050436348483584002172760688841441446708951379204769257487166292382481662461319793752050122384569489122097106221414688060296598450861543375785204804704088754571256667266635449031767183995603381238442248929225781882982804113895442032307802957659919442062949333158913662351393963265307815456953270635992397931617348296134861253311552725388264609473182562607672056418178265608356237238487839995027534727744693093240995604034883347039568085035700067616411447683097171003074888070343973795760420067382363359946530977474366889899197712280485738572582325442226576623588325829245543088732655360201237379614941469509717410905690818269121789942245067989468252295030542275247660313654958339411649169102309970637674109155385896486384644031618205875717756887751947819066459259328719043239531606779190756963276045596786725215412999169620766793957008146064139756373496382549490034861389822012614097118367519279562820805545691774099725994756896661969444141799651581134775169887726361165981359468441335200846715512624465008283876201562009284868473300975737382173965223580128541707348615324424740811598096490735231945598847594746185348603737596204978891794026882465728778045441074389677871093053710771245898377114400181481384972142099551597559138250848472977506841703618318676992021132253777005374046973008490756015136674135609809776904393554682546900169503575676824777561296635665982984741323466904497598747684767234129839869593731924138691526979545599522385054068670928690248092297281588508209239268918568023982298043901540204848576391535886914652768233460787115079884633529768968894385780008323973778557207946873203153772620747189249798946866386518934501398219499262287690354874373469355592093504073414746609534710046151593417070030037755849312940547080857137003564766444251334790776174151321936893023861700428718671155724603146822599960702172971914812034613273638163323739757173776275380321780854503959639860768549723671490987808813530886955963114119557808929096165424867759509133234054037658677463329743359875132280273064619106394938560692048420121429298343337346970114847461407628502375465824313267102576539721949692309572422958201723854405093937597848951961778970244695346364153517198809940489346267794446232136043321441181963200039629191425586488822730215807784439337706311455052371799239589076734404668849044185055343112797955423078283126316283111622466506293717640766007277239076095625510314645091405491050031761918716030584519610596222448172458668133306668582731980485674609373767323616426936675318884388163549744527633945577893317860033061972028434420743129652439509750674284273036840083422466853840091040659177468952986641239521886262363088446234090980481431585283617918983970308047711497419590661813495236649017742275275654980388338103132384444175076138894196170583093313173397406294475840839988703199327988217142894265005012301085287893857115111202297555055047649817606281780928368182085221178320669555217572291360741480874602543515324898234144537402733394838578936125255703395070599892444580928350425623317861141139840081795704212583725065002979304452075325529743961665889448281376710664706775633516770796829053947224555805878324860558974247558759448369255266882247226021001326941947750127487686932809567137045413948948113003515109777882048637912253666220043570903042921808574611626945276599924626409977425863365790235341754966220455537147672487827499611985843332325277571374720851443711306458874516145402154742350720076906154978800916674614091033355149461778843318391365755832734876961209982797948955044091893896973539453984145627140238396224518392482248107758861481134936265881502320714304428716668162994819352088549969705799169542203360890946825229727997078039980577906964260470898063024009152435140928785639798864444002522332806526346921970559660855693266739870736074411547769866061861562767067762682883440205145294238381690924509987489101038683234123082305034825299508222779312874835909526995806217568340183585216239168837581934304308908566984258462214493813707001039375438580074411276412192426590805079495885454494278121063629855180321318360952571828239675906092939157711855041781381761505831135025434851793418011480123655217352447379279940533301569853233017600413088289970557052170441944464366990588775839130190031442149934567274896100074723141578696277188693192505211559970500316477205513533376175921490202962665642338344935705544256443571267902875229556326416580667057218147896505502085313339630567890659320112867735167173363815328849936561231569620372839073629524518627690707661387279504203527723825407390892303715653147222950611740351122178980944572351121305470214479325475190442344960951997197057855510304623324861500439795705858988809402560559029299246093374993003702630409421597614816635074692162200744708924492882464394191900816231944638235236726610381800421862092395327367141556017713611449525671546725274124794293988154554633342409584363202768948520896553274076505575473905203135878155249852348982234437989050705594863905076481230901549038157635264172624008936179147814203734405772975376615933161235370927227892958504840929897478022093768737997972437509432277911467319846365198670123758823060975745608898961843065624526450239885155975447749296317387850235505373216436422705327627532681140944959124290371556410424911174499441714821862162547447038184445290307034044310820639599133279838683203107985361483237626526952974793619279746480887293317279535480693475671791914109042376317019958226094262557254940686272655710839007993660380549403541753917927296064689737099585120323758812903783962431628046008705813086662806636217516268663328936026641292329301117426277727369519986913142546610447965725669749388715024683997138745945066104793317696117607064197274318857132336160929011259471380095662473278082751917703568132738990730938658901408062741381568688913170871175217552390368814596365275267426134744003321607124138285261914582478818440114252040475332404091996030643230714880466762787950987431653787314814492980094813422823332488659929870964937937848857816380439952938883076117272509332839333016937921896529974174333558577930951825176128452444204452807949524894246528414842060978844946251838611977451561971586894009311695156064128252238072190652676368164387116242404420999929523668040737273944613149037920231559302165026884001196639592138735434839105902829914054506562742673383255657806014374032412844484252068992800174623972034510284860878624961805606235435069042519925511631100866221079650491797588774416077266440075418906533218862769972060594437677501941852531823561994011712619323164632603520920250320923222270430287539505042021139166144319652136322373716326468885836776956288489298112213864413224392202121951764541443317615576109397164925051680867524500657532412922992894086846591141257734088838698489072349566580186540736114743275041480194357013776180441418191241157673367460413840415492880407909481120380933116489473344628044015796607565841937167078953779890551870437077031453986938204171232463160142625533821212908003475723967017471001937195509223440831467532215334988133037650628149690060827938103891791154364818080323500537233130229712589664505287461788469724108640196857237591557247738014193050716174962175633344215708327805635659672098191192284126490885826673300099565561150951070822062476548828807569822698230602474258158098199354124848502216795325696978286656958384880272781248884663705409869659398787332104885769758647938261902944218339247099295783294711940630796898652434659722706185981318983182951896644054415359491920648043862764045390135324117072904720242886386944321844870401303269920497213878314825804235476763427966753571284471780187919485389492190127365715571609029622546613086160560539131800755620146063885204522201238276380815435346452832203706183926590289018030621200248338388259258846039123311048723648100479117504215358511677176914304515030056101977181552209128300975351891307741335135828408019097914494566342922413374805440431760918530623702516131610179532691774145977878144933582438039753953693264224242108272907892333461694242708979381922824246458815368120215643518441179780022506425651425710514200009283180355141605636220110287788235826721827426142940667153036603309164943804676718094719792093328227980667655005715601707341295480214708818003259835136510630344589429669230339839007481885776507878859505348153450984352510124762285598753390606826640646911521135060977942214568591446883558489806632765950121629892630232327105384819050877567263116561998247699748633793475665261522980932934737932020364258384798725289747149900914670989691753080359216127705819731624165907333702182585922576355500386777023300789358872992695475779044392019481645322484250213707501452516290299634380973566260604860525265755875671813264735973502700129993835119460629110314186680154837774166873571806432113667973677281799293200744674777110374967323832656253104201371372408484992102309794824174994863374975862751432616884996965787899519547574147818714705211570984716657084594752738502633865089722453938548122706347941964511032403698460321535567825291741704753184517033971979365059255802987108462845657634342874604619054957501375693992539999785434251338920830316560454678639517879537304995074215999379647662375000194618332083022109338669366562749713321298823278481799839945045491133593098534813086124184625497129419985635807584397248746584561774808707387838776879322083875505408598191583208960535344156254086084130071464573882766971772737072861095149266773588968333226156681081036564709481313967209040480523931026314438244610858304862084544750779391076773684252262520402968173905005615824956008475995490937257519046621303342802264068172674842029061038695179264472249358987867539355063188357523410661265367699400469567864996776115799526546917100253275853275149538021527853608659648877587022579786102612907894263395597516616243230154310612087603044280655155383571881583219767867906830484201033561156485410613195315375227468842515185932967151784459507329334807775101972991230779561808860401383963891079918591013525578426828136410667742827410793534615735274064283450486298785665616997631365086829887573733258000388952885933902623360471689528009410717598035964738123188555531549194722307985010213943838024233744092087957598083335150892910829691734612424515410838180428108013134588595864021559957909845151501838163124760135627963128785160506780447985167716059598586229705533964474432244334601445047152761033395948353324639995107742963695294798828434140626780556224538134566437637653724638511588193020704245994165169910269443233919989188137869303137466177509247416519776136963764760309592800459093291379035725677361573799263916914293855839893250708719222212559077617245267023146784091456534640178841862259423620490053519133907155861918325970535502917304736885491619308551247165119803768103593635609419777658362654353830249383396038671073270226621884789829816910529870286394809585089203464173896647427192903325933563939531596135617920315535612879737983380856220745234239215301998994610388578977530120207815243859222679869616416412162380503140984153908379060588021152051852298579138058247557190227597978222869497868918427863156830296406335140418862188806219296531532395267049399817476785110615586278164168284265173352462401208269658941352553438244086569160130738538224383206309541418194071354251009105224135846975453301708346197896866673133573767251159255493491812762767351252043316779014518400179949259762013682979893191582375030302400922678198351976019278249923107545503969741972394329740231347126268898090616628032679358648783377301115493693480952281953582625906968386835742407202077704094853784680435990161713486822718940862848088354885546643002664590097295100279322814703477250429018565578601872865065412181488088911318477695889956156565238452062864784498875489116960039145158906272391532120112545367254287959590433710607325319310666055578473936828410787289334216658221040451543297434405652343970539157238978163390021922330400077155016033632443671563581900740969760548563172820608612076976612537188355394313168475800438808306844068795970012426155284226184898292095134687176351405009013285654183302109738844739544773837765300223955141909762049820054714560266414966985598382940649493448704993036867711776864465634569158790648622519918420753461570222292432850613782082132787727489803515886033884577802200052931414487023750802891766715707076768888331630244513215324370197967351674518383799937144856606203297251128560311555344858009478801987392199008127594145975119220871746876337271912250118539570267241471807900491461798292559631943788717412303483593744948850513070756200420587850656505509694015070062227427205320745870781068921247874082210999102226888205414951094787053888847321616377414807426868155605863138948278948828590417589211770222830681486116117814338802298723478029669634763928376837585089913232201573570520510878638772345531402488642954268545521327773990195422828195599651450854673191204017279052426025468079051552106931924570221201121652082021826079424765125966695944384463409445716114653887074393932851300242146793288197205584913297570360797361795816526202216424582674828067157791799323879985871781630386142110918921796709599805405922887893651708080880395243088614247204757165343623163093947052512930571691344404052325980557887659704017848198304532303075044682611326039683686613380479449438535131601914021861449145884805277272079875436523340934541567648990795942503116850379860104449914472225874824259692946576269737598815112426720147358231426448840950166793574487942179563885703116466575778838396820775494511352839767262372495433372758039679426832888561119058990584462416978666575290682680854285750986097762436621457527828829812678969411917200077315080258334531131435322519894586310134703555338347372632709885199107034985013863503286947384903110769366386554000038736272409057856386433744833051843868992277440489153946384989138130406685833546157605868054116909251531342168020989234034483082068777364665888185367633506651129591022633264402505578364589197254426551909985516276940239502827012105854745240289482268298017279859368174331878782158082591060871410859297421029580326655751369414330677612348506397214712714105691310132836444670400004060051215697610087664239472726426302600893758317790783185031490221106826422236803709526907600153132651999874283225961246821050188164724324932867317244128329533127071479845465826759097669834664626835018498100753071609123643397713098465754306630021372873925844410562962034493493333715137939908868968285874102069055924021559022393883929780754887371322345211778025157709823378153372939241856741197780639595762225966974983507463561577004959609280066581196620890428246247190741312590477741137877728822175569384770198822022455921681918366041439013008653231995532625122243923338840914655572630083636764725714769392231871436380757243009740798332162729273143612823378966239172813902242432775177187962102070095950084657882632813014652239600932905786196790304275265314677966785508621953961054644414729640381295354706813710813328635398236044002237618271503777858319794837311431230559165272583065927120960014655559703138665889396057751283221536982699861021248724481740418437983380800524064084267090803359784542795785423661366942095231095375292356737310393245644999385513683112249454677358811833062092053155837938854067877890423903812313042078104642325380519557128619912365840116320336982811363919092399742040719248222686769468381497851749523411705634948086495410821948138780664133975936943031425048538162046015324557519364795939081923371979803995405161195994980434878801935560125027131786613092169373284644942914017880105850709120752812590107757665507810081105769329225677821803729696298083536715288024581749078463454507146750123155986271910283246572156331494077430039447640393392322287746426390526424209862024797543017580257409373620595395114616488683445816501168193414284558220487719796177622297471428440865839900398908502038995699791017751360997374603691047283953209806154387049839568036568645952792070019513970424152127425146232967815755609149378302221326987716857107845356614654551111777102592419045559354748982581384150663371336658151907647742051407895283792462957662627080622356340943837564206642280752933361396208073475232194258430545702355434021357876256002170102492817975832668668790003957156072939531172772212633666736370267928315373378633213372097476998004154019251133891805331850542284478120774441478453176619003713569480026635542650374004101937070359650370517454644012396272292183804200098120378336380039365755825712404568870453480301471589560145165236511499038212683794441281474149376474044215925257295838125203548272625627010243263820696418110554516246438414353323863005526219472711658476210000985509453742579596644012250390451240758589649003188201547130568557739359294934083981166833414515201294461122785172475446918139381084808535653898145712131645740219236082049748252819903175928785944716641803591632348398431445992384603386344024753304237870017608590598307394175284634996887674258277326396693489607589397676831789354849006639580445266271630013618959906491582825687096440400296822006447774754873653230689553671385878340151744562635991422959838150177149243920120185764904362477392656664797702504764347097000127645240364485952339060340949741567599294221628277882130819604556074443105151230836513198778745981340823520990553361394872203709539378137840450937037031750939917599327292547620726159140766243752734070867134546860405986543546629232251291340479621240506742800921720016935833004387232411424368809497397736340890580160525297402263876009044551665188277301978066144878909105671136660421363930889606070959849236818627399683644152777917306684695778392418377225129606242776455058655790733243114444223099090422231965228097719693808924007513096264889493386055513733899244806667002542893007895053465592588711184638470451627772661949348208253919833859921258878620096605021548268095882483904817039640420115495304702916151893903518900479468265727692830975595325547264055941130439751534209853498428883096810685452251745701329459672887099304952348241760244931746178488646322131517257445697732237211954147021661570029211968571338185378711060290899347197208640101952687163494467935380500350218800876415228807865709935563228474240377849823785053595681963173037006376831986301031460284012555584457059722251545935371379670868593205577061067233667951615651968914157978204490058814036896459830804510694555966091964273290011469072187543950161397767765263302374403896589771612927114310574252459438915974056322734006988730753641275271921454347408023360879682661600368785374334338181447913025859251533098803011147383017124380205467958291456565795796089312702780825429082749692340445827250868017118991496948331720326512238176868752241134071731136082814682752395013155927164211621384394931536320577919622601999449056707965562337089430685722561192492669800617999292881942513136781079365285545935114795209102537648834562304073609891511872615390040674511966227495344431295901928766183069331264109204698039340328090050494828460278548643611232501820470777403592445794165245792474711028318326128926280448739140641783503133203708373689027241231950237347144053053062919942936764759482038112466945087164440965082745777492801044469808886050922335751498808651171729339847280898532777705271278263823137079809386912424463356541781267870467592809039265510497289017411009892260976403795945381497607697817256494462806216402730359715809504536145628020021493599527823233526832734218950454205098686242005930484996345212306372497651530790918307906449004723735705859523436851441296449743101553520592116495966105776430958069554038157293314147425988172453072539506696508839528025071684225365239295618947612228019587593700826730434864806962909601342892093186643245919060323868266564968908230488179759069091180781524989597982539722459102265326067129532227328040907332564646983118541987577666858318751798115236651177800645307931992728567540660143158718626262133760519499249267218822568036809224396160894382115149191014290791707238368555050325822984988417316011021692105138895443768513463513559631569627528126869505443425021175290905169439671733767009722594210229046533451189808679973004149901491037528043369583144123872406093403406124093372631538387495129939003676855187747226644088846627882762209402007535882525983786978368830129478152408466508244936997635278065457353958297008065023360708333989631379269183768292889603079515186208396831776718687333902833402570177322195867542477943189354299944584584822907392416375654742689025431711624922974885488730386508802271844306547406495104405283298110552219157142904636280465194330343976153343606491552564495392805226140339418463887247496395420668184874200281422937784604452130408625330812491796469548055914094271008837685510367130740269441451677817118161916096922676233207016650119373522329225013186450896323196498197628436548192286709357466508066362773680244297177710472362939396926968460537900193875400209082446163561693856574745805978919360530587667026093941492924917586946355475867839415246957211387144471511466839338038063905913924165040870623042427189528569023790383594203071800921198121873726134420338970204559895275531251439429454499302346476950275888562223898984901827918319471338698088999485047525179487242830715746916443394220859383428383938266795312824970813900282684560629093139619286006481218364350059831960384764553116564429215318937033867231388342325620557642365238513581662740419848714070343989119095363521044404660283931566970830053094213014635267053877866778567481257420706596543115020259815094400067814074308604866759595280394410773269403520178568769911672486157424440887083002251158259357154960504106783173655624762024810197331533472060663901615116898808403781084770897208373026239815776462405976371207863493124225058184078652814459990585608129566942086268416154991361018417844438992133425207760136912290410945074197367448074486775456920137079724667482007487428240481019881987603410354826275956209627577957015881334960779964524322294577235850330388562751895693554270766042716517483561682361479432617165126715588621658936955893302680388471659992295183223516209152809013115742654492199657078909670671709505315893090698145535437271042032173148400879021111287661748099097330296411532372995147588261897193668411016737164290187299940863153054484095946845259584430496580937497504051221043636195419124922094780908972862964084190169394627639261667401389460851601831413156997247726311230848254371040755277619233752253970834991841450509657339707113652752721319345646394358409922152082434463433448512524513018675065206911842662172890920272343320523813074406533749001825265599700107316778158831467972146341776065051541993923617040468225469703538492055232950649748091008042344453449087387744012456865899469378752239369710144841951783873135078557271894139172302563204430693920459984892411897989729144749986469195733762651070989193511155582364120234618923045458265597894107907629055080476529940411621926346636442605383941125395690377102252402827643903797556311945900886730386307259271350402197535697928420291904656011704516223879611076513702046177477270227102746988458297200086674172372732356560891982179505027036490985784323039979913349726905161878199844213728881863787193116769930429474742188210496217944171280726932736110549292534705190486880844805976816959796935315346112919092721514463655628761083225213502840522689184170244537639821350079337509407591604067023285787403981827468930143423200268379374428063281681589238351652360132068829603147415344493899505899039501048907070888801786017634528982008042435802098003664726794241965852835604493616104075581585641582320722339195017275394571269774709558971638801732571965969762537048083181505843682880639961353288908254381296509634498331093277451401400183847866940312474036798319100481620906008533337908171920660782674420574467896224927446293582179360002883149218440506882152806660854586308466829764029399969059668551326972845866374592562095830450827454280895687976950151113500674801533700226281090419237270128473854286653779167173715701449821233175099260600579075905416261520457910633842780331692211298750119479576318320566014354232442894431568374126227815674835669449410286076397009266952704433699501220318077404459855252644256520490539018453206556775645828844614944783971090546374818022914202508466622777395304409930053306898306843147202025903984010396220675635228835522713788822364921226105660462730691987749398630082318167829131299887586422269740622503714665425647626640746358165657290112696942218372864112908891912247265632149659328597063177903643334216439019201015102181218534333171004905422581969921708566340099707899143850962427899030832872215936434238838365567818008297024185300413418955600835525656744077899725552638593734206675593324566832599557380433920880476866249087938101386075832344545707826766051634758707870773445521502009243093628819515095422637222364501555543791879873990544477781982595974526474366275242145364874063880618778792479545198912685993327096890737983064566821848894673983283840003295626914157852231328254490532579397611702176030255006164830354850858377388502273440834212909990961610680984304001357778253199552343797343928710925224672125284400522338462087931909915031521369845646024351119670782339142969426441301905913095446850223807951442706743988148866343837579639912601059770776383787751118814474227499963330580495662136154206355128794276896334044484221017621480040308995753885230363511625158016871273650861846742411466608444498618351402951141087505419916398843349292049709778742787487961911974921487042607622860340375891102883716453277892054300696987743782792778751125532037272767393462488680561299121752413320671955837969197028188998338028640054229771231730924283125501757087209217298428420552814253979065477400636867311889463050734463590994287596372179142622694102366174587934253597450956147697175782646028459073606775988382019051082593482233470709784293285627295532061883094264146965411215626146395815743548914404743593856375724687451174852048028986816795094848955408656859470758872476199576915870340563200957923928473029129367667864278973842039560791051605178552818871865557276713367823023139875387867242673490391335830118697709574383867193988029246616113390576346970143619306892155946285753117148373477342491299666926298306540298092472303751057231394634158664805826861491708589388988409889510443447165740549817697805090597513177482612632480706448853377465865931182530908922337922969551258561405183115995042026164276453790416024231976320482872990835010800173162591451754451085912050060534542879152961676117781911253103691001749425355282603870148459324468493058544286312391219710051927563137533836879830280514465104969382116166510511157586651816695482655811783121020256912219515852659909839049682193891777159593256791793975795388143268777938347646905925570381597958391749124546328821057362304029601008772623567019550984358695822345560436063381621267959317831599348902868859298411921298065027406989668511159836360510092603453368825501998703898918536111685252003415170195667977458916060056836179696197144874066172008523806510217047092398214277447529844478666141139871872408530553639103246032315438529400134329338703743181785664235311471575416644272595528565478769683675379444588929833308064425844831746692271771990547653536223579859994958367426110198021254254499318941279089994134715081691361155063960725155226103908252773488163844433330694901115863876306020705640245138973735289898125063830564615916551050575423909060958398108128814502026980115680947961680529379700204358081973678351769555324417325023599268388377082738020025816503353381546258677369086109555530471065526849074130084133538714048129044805190147238234739030249286809259566096665173049590965533061561160820723856071174029306069185674834444624292839150918613672690495599453137563392647841839161985531040868106790080658567491066831649859990825284139438809606981510419264662501977036717784556910595653203698253243683514988506856147404469130480745002049589978068888679181863262347821744192212417329726670466760196479660514138967807803676560276506045156061940621772361882732664231275236992801694545886439434070817378351943589319888064783865480140620035854201873457046202702821888327968583563732076388048605105070477735616319060853257235876368111109877170232283067602487722850797744366968812858100541589374480178741065123117709073125813914523907739190105875114488051326318804670943698425461042249210917149871699129108901557775319233393788816592419612917586494734839588241725369581019761292395447889597422210627809425540357706353932812853077548609892202387952037150855438639646773132374511038230442170607051169447190902674098721709209792061852774560851509638791265352120890153543346652477507246207893328802686356997517956238242437352000541014254569617889968539293315870758229494994898029061461127055725276946516654280727800366071772464034990178293648734289237418762214918813377041834531735692947812618877475043571969612899803212538449821117410450296837534109163192727810323536287813706354840056422882071674960025596266486122253010630544290941960583805091391280101473840149292102012717511072477515339368246181477638973677176414529666236156264547310174040253800465751444129867661564673455065119199888595262993122275948190580860677520501562639358729896789914694828716847265484707428063857340683947131173167579844395437752982057907740013244606980393578130706183791889205136243249308868629683644057356455461453292771444104047164925556275470083031810318368073884231142746473036832491494771372760265762319082190488166223406424052531955106398823637896336646684188644947984913470502837973190237083663940419812064711222385740092643958983714986478465360164440386028765531511911737136817603026221540016299670687995491168271569800578709335398255375822772608275607091378952508902406918428538297176972363207661927057205182371644872690807169443523687147436483830298272423457834433882066667087981596818521348012355270632056877473572935046134984581235787492688669300097986831726648907525008295664393798640354590202595978125960022891135899713130039747473734183241487881407089261808404931471401122913543069209221401151065974624228344393391821359784170946589831436602552522866121307873727292714111618961095130145652466379841470419712860389535095035633626386999199516498012048888554168472872453075273130060909086826019027657535088419005181662635484737391948924821180634925327377777262258926698765365676010456451529460952802153978731851110630927951036573060899714601253796664051012696521090862107148144395067545734321992059618784549972124537864363487713813784582294071808158000382327005619636403631917669103304116993936073611917534868501558633682325582597085223742067255250962284217500702982406936498523992124415103839845471282393464453379916275073891908965990626447220688626618462068025590769134148636530229289454623856792534560485787590590982790874610922923251050345075428469596690298210004989314689802286634667920209770107942260809603031070576895862905616155219291684910972748186573895783149660709605359676024629015634748969194607645585316597512825629974459588645122314830248207026776194817626954921951060664444472491856148305453774100889150965390051968340708636687923984242798200007812381300396714047901857408443556872440647658935779850758050882087638125126861929904685452683419490010212911151448581788548197564778871752600389756366613993709479784575444009639624224576800862877185106883784887678427882028505592225736073176350128263325556204045401091985997319510777217221337480385317815186492333323837960127395620211606175187027048921516773919911141394179994727955661245517331054108376531980248834031720784292611239119469200371995582310916724776563077715352714013968791364581626569220927703174228904088941082767723767922139938209234027678255269721012442916175344363079332995773872638621805600500722018356767221008588031175665420953277816130646492570647095111274566541105495865629673593736308143993212976783295343189063202508051614656528883343034099182652215351293444481188312333424700789573795292296529679037805628540094796084202223403509918970151474368007210243163435338130029672022052501000240876301654110675232332996458428746575520212947236433301022354165718620428003977399907356463529842828444052388394924075560545563901153725595781983864638406443361384044447342687207534769028451121846011927522631243028279846073855371916710862727316803342048032329003959032628676752077859425933348426778577684404027568518011547923083812141675721890474062942054701687547377990800778593034493693513699459518622505577383759807435223190670614324150515399169370568499636862047430565765370724396963253374292357536279574261347770495306932037750771705623254765499557664764472101156671331546355687104063896671172644292732091190099442134357580045736180722355469892670566307702876539017634256445890958981526243854754044921402534391876716330121659539486907264928586354179828717558711957531784757640647729254037487778400494141092468573400660271094214080283507946299383175332306884043132918537968358716276281334037533187365099469609086909984067357585033680071514042382796418843233031776001814331887775842803718729727002093661913212060288012273015374746969873550336161560788488763995146605661041623153620047231659459443205332082745248810544994669206592044021039438823552937771703030248393587921576697701567112533270288587571175659156859756337130519818180156209337506394175783675315338173740299065374720836045475652407662036613229499301544205036000549721443017634220492887143402238944604792700850628499803814226525675567653662230333251918993091965469001667058496186512323342907833818575392341162035554890443652406222743820101420425965084975790512386347480046922159700556928610898188924250001662042803181207931846008158372715008265995387394559406119837465702832116589026597025201399310874405953478340313138450213809917190668220405752808609664981732311353080440741672404919819988838688709740850108732338054362529872405672937795681632797531666883749146087232568681207522972595195036186691378073054571894595086424423113879002741935732775240529370008061984659689335897225752907420748618903271254871295720679769159896053252833879418543476613355660619610060925821203461992451946404291419526637452708470678563616885795009613765359104192406075022751982196473250297031920115776055604412285163640611033039588316589053074214200189590201230655384052307161768920339415334080254178611910812142886235938641649335271224682431784733254852338976199658901083967160614204505493006315796910637754285421187994418296998735197603556900271018886050371545215932018380060452263873643556894992744571158250074311938652807328617852742076373249313080552346013520785117694788947009981347061955778150926881206273754411373645397287406151072113959427500370440377903943329909413621886387116005762899715050780015093752135644713643595033804051977311934868430554828119351863145934012278789388667352130289878345523104445649310622854593788414283759419471430818366084821376493448358896309875471802604429651761519766723856970386499837752852718474672773584619704992891764270689656285694950996328734138756096343600286401293484619571073474945772364708857328313424346917841792678777914802767679522977370144479304217851095747933424449298559752063614015445791293849259643301580959323450391201380939673616315159375620895936713633638125875600626860788442628166367471326785484629157973890917587816853103157721260170654037053484536108625974598019793657643761398796035720127285222992075240175156558314605531348306433842034755258793478066698889792685454193495338481757402344874599734560020525945795681704835259867669465718412405967189646923699309341080081234201745261814672690652987851111000373890862091927270102247057737444172920285519002657170765445055574290763717769900650834029009815853117003352907432259506719191443076684119773683214793556589322122558224414324762341849710984649638030945339906183259252630711702273195295314985660273181754562248115982164198931232982201729914235443469371831905298174089068318628341526245413971092463428332462677007512925878768442214747024617160304651626807746770661122276750198361724109879575897721093313808862350499095210445900592118638514727230369870706367872968726234677696000881681410407066475047135195234325763651463327899970996522930780184610327327789038599594197264045851494597344807610797341629246951316704169097110683483020249043841139644715695979554607115397247739610399379072778083675698288271627746051377676581582589055002168791200492839526504701819482854306360683348661999442893285883752250313540060779545637243681576250463104701199192686978381948157430581577891011596036642001684786045668869816375035681219411518218304620497045738067245804129198103738734849748802571324208535557931558651150579821418093304184347952466348164455015176238239881832180242875738913408970455214814098336278466597119265599587309991231994569725470302058457246214558022649836106672884878255868260230043664042244190948661423157764085542830732986238665628378139204737421242203376394966347111163917203182051325738648911833727248181762035299376260102009277127574789474842518072717539730868303842088189221016796587619512725404729372821663114769743586802201713884253051124686588897045378274489010276148742341756297206828670344138838352802193956678392313674221183842661111028254442377987320602489495605189791908478870895684095174378719255573531784013169624442268816807115266119564456918788179435465320325312822629562218252344312968664052101694289363260375123569101831545265514267566252541214228876668818136847989281349485554623427141378222879089715668117148814834445363049724151562103589581683022812252159053537104606676060995016671592905227871233493149263918808802885257580178346916476056471998730467145643972240765099635851077377653891981689431569904134471923452465097559261130345396359698772395276481747795043934111260484142686931338311686713774068141807383064197597952947571372480502623565517945573088741610437694769018174119333340588726754734691571523245611364136967890780458555287810183709485149653562139358001716474225331719611460114220395434090050356644781104670366815147976546583954289114117169209147098047102974323931163262126514658491941128974576820516277629007864977264762566775244860759847818012273457725294329398275352491292569504079458737979306094804802258957774864490084366929922787614275705056129342373707104150586150759274273699455076572594340758898169331589261823835070343155742691475508444170161571754461825741620552592442279215365183136385027619424395678965558190695487384030592020363051968431793005603660700216932324367765347291983345918311127574453348753373773178936067777359647782704573338587869096640904178160252075173443246454460168320857327371092709930804317227624412664217803499419225850303675338475429280135158933001192964053194011653158817679137827333345527970270896703571529352712252757884796172636107994414814085131379374216167617462564420589316191024193055811411638075880353310707077523500479158343545739742897001647313206840001794864993159296108178443683262442208030417215884332166663924239923480234967778294549962345160713616816492663164369880636871044615977185080936958445101433534339798684976094059684956467784574147550640968984368421775101088673857412895644990705430449509905351574181699161677543303706913382047995083937203159665386598861638834864427929195957006074749395347123499016764785588504809660519765970034611587809736525091685185321157575444812343607981868597253176083465781973205979412553568939751348626743140376966010306665798979795937387037284188106462806754094622226975242924374920307225557055584627768208560716590860432695569167237700461413286840644185916759217089508925715577450457397516414837204415327778866577288145169612575384018246803805941658509779491892651080842723398309878050690984438008224250697543422321516220445817201799139775329836218325341855196707415396033225786196131694595912671322833664826757769583591665931319633667901378333477013799422691912209077594359709907765613130954487620426907263284483187431465710110306076899621873230034554759255406112565964178245393027553745593719544392138792299883641029928663789114585236601131201505213990034738061720249388324594866055601972130919856376599691570261574198593825677018453973635334392650076250019957865271920702808686551053021468171217327164020941595159184962726106223398164763955869330745259230886429998485245555679785934979670310295444476591995195162730961933963152738817241175724994361169666232978679930531319247552600926456895875439525966962725349592992840444407470734960229123197265218160434195760496141919715244967705247826974340018239463429564597818050281131522546616430749393636319491110862432221779529482523037622135422985535630144013996553463734524088925390727048669159768668286464324972130723555639681709284775033386184579258651932231503791832318759229504047043152765623464692872514654133620386060670254129610817645769619258248374983732399126543707734687311972584251875965262601943526497123155736161601813582758146215799515982511780799447037928508060535790870761736583838163158430222413762562412734539470230204779793915281670641839628608986127148951006930992581846890594653101555143145211704375932468140930626431313533426200837750739738768588582354402663982696016168945851745887139830235490704727928565975934661426047998863091023790080334225944528189146589080844319250546209178561315216432243250702608480433745755957377629328166460264080830530052239338873881498643048530633275415327949833677695976088934012563628327042781132097314072264333100256586892964479041368960943429561826783546761393675332130100983761889997225368141223656943287671492993072145345411878288118264504528833555442891827973546482935705515064260858404950821230363758703077523144863735602577791136772665133675634098784014769863144061231480538790450161942882320059038028974194806345254809818094266239398628058858828870108466556239339962261665894350514401917790483198308799671823555044671871101484681500494645106148792843910539396092571999824855528209198563795519031337511611626932847068777924927857072312452133394387505897125871753292280477976434151379470355563660412584253321662522841579140986381208836251976712844937730802274898081164087933859294569410877442494844085983475879534497435522399869887767946748351598985944509241236419524301691040675689226173355205222975877270848175047983853496871810129168845734074286282908998105320217097282066344728274513263817289682538512094962211139614036873457402192417785530585162728295838768054555512624146633475213885534545921509319177337064688693375854203065716984809875343544425406740423890560979080829877580059414876205082894769121810906714478720815410408356263171634375559110719518150330665076722626812199922328393094722035889135893172117478392266460717714264929006757978536449829823024866201138053694461818481709453389816551622505266309889084509048384971280313092706387830861334599664178838262702636455889392231739729300683634775600344264142656929768504110178393486807714041881637459529816832587997578655920909800834454668143095579125482756449622080873435991829045104703270345588379515043549525464399033773573187807098764893923907704997063935909299681703955366659157966920262200806896452902090555724544822787110123937646976710083624604430943732555671048443385662742338683529100906713926820993687000975853881989536002047668747428452393881087188844672941173019822060918989034065790344260617623512342157628887472020221705206728721975830484327751323939251828150675181860843691181466001943372942863316844106337144239975979613485989370196517545840537538846929867380624451449087567885223903864326224876997241281870755076568557490105401098437381247640087658211520842514746439058299313272140204633936996324829642719970249326006862800020694127163809806003530503841099211794332102743705244671567726631587929854542096896053064797536460287382443001676237733382667298563487964731812243670255967586385542271991019964254195293270918170238217496307943365011137683730855925068190336802860444630930506726609271244736311726325082168191798423912612958045233562462232227014436662561870061980389643996455637001395531305834646892884494002245740468637625682191165189160341601716433362802227532957313307570324683406187618845174255405183114649301826979935074043313449596398609782801531466254477677481088710127286056100127646317009974362454806706284673484300471996894647425270382034924739701877587512400861675332299798125654626168149863973079545525483774192261298975872217862727653269590188764245694742079671613842364379363781926878581278397771477379789935715654528332673217585707168404464995745079587376617578487325937189972445949880086334836056932974536251611133131256095307436008241825351923609428829029231637297040027098064027015177222074292852771267736830582325310439031372560903023227227707397745854367963563631252997647647239623005039644045929899493254078205731068859242207349731051373230543162126395671014313328883092494204297521617110262147157225283695346780703441075666080374098712104298515247908209009869995112182871607108567407899195235129421119224231578328051502585330874596514075090641902625658118207007830873246169296795863536631215836945835461204481727517867371932180119416477586083347219609547807831941865161984532843098970979962363205364014209879209584167628574037108937692216595101848780127783063430033289813142054780628578793362198787714969719541930088486092081910936205398333078196107070261799675070607686904368709634022304562142940103673820607764874551538131078737248705021739071675485565585510570928953501300649209390339719471520261131775467948610340559853562074826534236917025118129734403028618781849853874204926157478992930871205975660647417908750030533328355169003500594088344535270587432256045834693565864620134478354004805278322665087722261625597531405968659969478559196403985880133613689516886297184943912731672275959214634875867702761014111540898078805570968846669087514933213383002271988451700709791112219616250361328666753435249261618679061674651400084313696641075963646150849120989000157809174705068333011078543455071219845889109109447665794538393629204967280728476879110300947158480495171380193775224498902411428406351575093972274426653237838244983615832888387115217382749705959205882819409971285868792107600481499920091626019509907524173937745925924491909023144068524214156457066086651770782515432700239930875452890687142119698244848966086374357073198437251037228270862355641388341371277134980846605406403710022038472530521543661198455305521318381120524963777630633011670200253102202067769554295680485319805711068553089374239635123649483012040378360820408909214649560906147485352470985267635138861511458205825566527329608197741626733550813334752584968981282360927580164782757447605784675147965950560061214380256056944022279807684757096885307286336023644941736268621252327430674064320114584094710229423910478777501983084749022526645765052013829358009792590179180918357298462819049122912533247440257885743747598635619634825109096755683059971830987843462121490671631211808401578480022465286934401121098539369218365036384042526902226134483295495538662769716006643499383293683899407168708435890524626013892327781447630238105871427094805789128788360832459768583263006340537552385522299327938743172835300222609931486918554426754230607587108428902600334135112355630237205033836760913788346907235649436097435043176154550068483964427156356448265846195000208665699118480658123722306626753278491082869115280494821071340040844707474701910395377418371738866768220675904815385919533345337040316967529848390559951017880176171865199218682955932488080165126012560238273015672795241863703321594155566507818282979799045284585440996820282566175809960630185271837610860873811608103721486315299504172642646446777637036269067079030871100888394320110260631932138682875318933197247502770256115501658776585386103187500729749136014260942480848440211905840009589811519316265421517950145125848854770690582990660990167576374574916414040708042651000216225578428028081013020192642653607751009454223392946306942840715714588599039846154502966385009444767554733017619097535046839275328024138433938980432703599943977632114088954222785304002619707201232281441940925135443532334854616447096307060271564749844415840730472383072705675676693186123907159358470799158176722152893536686858474255290097141626025583432244798517446862616748134724792895212500819848539913993061569292045976295898295764055703153479415798666638822213181053157635192621374531649049792330871359697208826650163705567933811995322683134733865702401248769533871452272777417211036006725133080865730105920872305334660069926924571841071817464392941153926036860475488877576171602183499677746723188631796933912706010048905304272397861916819131988708664919389101840539521179970605474466352639930100566665847951352044507014872778451728560384712200860052842015630045284266850773300496127277637505231817373875705076215424452018517498637812031841894805447603268399668790454481295894819273352029572169518264446789166585285898137728939634416208762431791832122666238093748789021040372583789958119572060019657310546205897124994352989931136265761349762510290823985777371372637932832907367441256524917229525238903959683633181276031834331234338789764359694201268397327532353835301664390421298624781154775251349037496802230453646602263694918181294874817858448509077604004394562678969411448042078481721937499854835309859018729802567159079476103791252114841992320276198270978528205084038570332899094759598651510632042568376365555049880389433002717430136124910722959065943820309604866317693143721543353798388582691881053408336931888008124766035464771352416722113135414838165130834769350339540827640482857504203822946758672480279130056909704883108698085008892847920462725461738600522769151680981342419211071417457965448125473947379257926201303924459819727652193718691760509450274683429373710933379772935033697522405445680396121567395678945037452712883827382471214444133644482040081714489452171093001381163337923739959633482849408514075084570585972449824137576633830159623111933738840656390933294476498473412464908141570301271069341297980967393756784996139311828808456730537531898051030391346157505430611437145974808476116149727840928720581819364444031089009301398339693763471080723525452696968679222902352976730953205899858674845088291517738470057236952121480584151011289283209707478202349004072260299358325635657036174228062443320679954210179837699181486869702178778747669540184615799904959101145704631605155626932896450622528106328639413990771742476702209101719931183011025921308789980509400587168147325655921991781652173636752926442212221340040850750249999847192114117839133569206231270155541311362276485244299516885289453634819406795051127514814774513418486339783961488720266042748393844017832875714011982021746242230553001854345780590873239521913419595327445845552770343165159478830589404711493885486446500030196761566088399082955717057178972712169875042783099270550790660718760892255490151848741918891132911471641753263141580587126188205277285080670732342386503973510487416487118108672032294487586157549188663636567008910797590449619073735799021292342377603256579259199900053387691160693358821944061769065522918315007720240338571456844026132872090603174400550883913633393659100532288768745880181018371156440774480451204231998622418699408939550543719415859005877963077446652337975247521271319941903564823778238471081945212897823681131568594414919065486446888300863436303756694242931555717857604286677046577179742509058178448767559434464013986842273430825709494646201066791802507345249313296948781709399349465142141806377308118012830113796201318942921684361388373903279972002342768611408333529803058699659920473660384509612286388379976684849672530445263729508585541162961395257102340041839489836654153602919339375219440589020883640116050232129633340598589614418572236566184874255423415142599290770777214523290494807511236047443034701335666775740440663048320450273336741645295124668846792657421752023619788820750148713773628103205443101436913935045861826831149515961636150688135361164210361991408299935882538781421589050976807843060101490450005625848452070826506953189105196470704773146951877557539475030444778504884706567835897276598968812221398442437214596127510653400140408983057533619519521444480816962793398137877176336317905902749373095151075005989094388474627723749469109654385134929836842609485834244710476774034591079202529984618812063601479938843044256968613902756198868979139638226311087893095356923866247117258636269534494038725238454794264815059789912401772557269852176180876450298830392172093112143883816068377380322576158185866239577608063333571274605150242822418344009563021302827759500355690703280502745421704509039804073971209311483163488654226670089072613716126440591855243410075126290208660790532313991828573808207261230262828357513993853623908312708540763673305390462341475333216974769694237537888509017317942526205181950256500463088902988035898109815108525835753477622919638065747551563441849777909402708653847657849917797339593357418527037807463709925749501376774514938678136664656651550951564936375548496034349670061106682529620113415050930303826310902165855158374487846653619494377151688081267788962685723637443477465130032326095932682625451557452704127481932729195396795334574077878316598673385077190141730839520041541012629864090914757865479211138370055976774039017255667693868693716768164638116819152261794114806835101055530964438000339944197167664987382045074158763246259338799432408430491996718814716721495199505351442712003237469127593109067817331641806199126792687815080145379496010114220183169956908866330001889554572554833243904483715500649240212747055089501793289158193847278170613874694826803795907338299407747212582324453262472168061186103047248521411437307296457857899441827241761480713573961759588620583064050177132900556770604594967173194823723241037184708106155019710347365737424892045514901572153002217910749417180571530001772375823828131948106931850022757753814306961449659012367435133082840359533668875350606434784216440984035121602255381967886389729667710589440977393847874644014249446870574063050112339860749670751618692887896502016865968708022973465990497846981114917331408107692301737690273765614957163466550820873184282192853334680668025936794343592727186574672789714023278904280082526710567444271604065540238313254253224519312732297834848982599151017862577046448431138579026477358891748186460019119256321404073247148885218905494847234889502850317767921310779661219802385119906082687026746938436686421309871541379859761833490075832842941750938671069506589277978701292898933436192439291514754315872442744685053266819858171897749291390913656629284333755107316012349430557971198986290472477635196358323574684259787460366357779177246109490082927785863514067565170825274934576963399261459077205151798746066923810125290066332409088746787807317109898836408841631014240310781084804038881060685011070357779533805588307612066777843775483480555752848031385497789565649872771435199297364625161895860715804205517388295672381070188104841069911322664554442749599532333797500592147490443025547498874469571422322706386446116025969515262054086710766790057617770463831590766824152082356411119817679246849065631040091397052009136142389112862100223768975693529829037800686057114262422415675344711300305633262003865039584859791880894725167673284708851103356562495559391349028719590606998399798857929163199507478305682171819319681877896495897067990230919624889547047418309538516881157619361745279573760539572908177837148136828648045207099011594419374727812447916814921996522036971029910442588566081334384941649773132456153025171905236195517071527618383173231370606824292789671814661835542926943511201544974155811708261717012955226104153998597089917403306740420512758641864202619940341388373026049039802429696934355127449044918547323722712613606654755687402299819701571308719640044337683934106108450834362067326250679623847495411441938280145344607919393295203696247485240550439771476406184641197061149350929744987173998258358474248215801410403441591625209368562281064261514143710296002568667196125197255941007359790079578541596371758102161792484254718495427071884155241513222299047273342707782298120497140892952572773220469354287434322143191407210142213220954498205544319458475116768064719615815003889780247384840811028749895619575718730159359849885814353094297944300936487463196743647228154025792175811990220304095570203715410593682848532532703828407278844050942380198536159880165943956615257814796708529802803858069372137189873944753809759362867855346068024213319932225132190116034418402800718349278132638872299492457306841188760043212457659709161463304291743403124213672681450444984701853942588344801611633237384921039037914218877651788254511547695056133975412621405452999070694877796347319109061574795788236699614854269747851530109826397452862976008003968250816150881692198235153564403777770891680684474128640988905400440508656464183688138593669063686716781049903024097765773215561501512431066516074253362539792078523849696606274527536752726285041022095072205346057932821908557939704591144334033280312556960213239647517590138988255790740213554691126686922415737395024464537446524387580593849876052365017675923245896897131171911871851795140190406226948255645279041906252061122814064481151734670404573241039265271754252145074682789166003602644386151110741609489619741871305852484162771087151665695898499744294434352017036788975451435447408984473554067655271087371546169496872077880637887724475517281565465916484590814966861055755774389154457272782529323728869452268454371884214939406740417414303281742827171018814809144222551117544413974239089462957249979194147608439985376406337674405673544158318027348675216427496700208565896956057278921041490774006668881426011813045661677786213966600191264436116734579147095316399323655260233833361977773876313276412581417637935940278444218002240144887871083023466505330078467764579049071310791594726487722850935720689896570746224667334031843819709386841770987963625116044417781459834985121035051070834797627802046223683511180121517410272435903427667385352081641204926059719903187895807904868618323064242971841860867009372177761975343312391968993776229974370206250947175820213944087758803928158469304476062014777413412330544828675285675655276192974286539891548829169290774570695025942866883848204948158399042841931772490448952966077905024935877440916089831555360858952814345923448294798946653060943542187821915439884579659629517526603216721178521510520476174882332636169557571184553994977864616140404725771426192428655783545434259602469695110385864600008982411082618302624733321866772407043994023771522130009140003623237563903995261919181162091964824172995999924557689048966536662876836144603851835687756257566156643737390811493496790993600862653272652665706977452387820874318800583378576649681461215509188829637878931932350927108168649976622169527748243794595394087807180113762673808702362134459768188204821809885876302048530797388557088990727353180859571076222862229634856169684263503798065401717236904903821009359885181876808865129740618126922704495042490517769997336556296189053786135196112316172075918709923292921429843711108323152763262537269220348647538704605625473536274142746011851301990362112582384998110226309774617882170736125830183921938633837157178265658547790864933016991588478489639362687310000431660235048104521615247284235732859410558970047191424308451929107905430040931816937422863724666186654273473717051744541168142667665013271974365697722001449067955267702211970623809520907891096499721560294912357232815369670530450323081357915102210012663976036012273555085235981206185049749813031126166199522212068059343464832848598637178139006169045535589838784074081396446582675802599559882585897468087421615474921035741009661899953743735267621880578496140860557961751201551050021975616054013963700121907481458156113785747516620831710312223636519143340630540443840301130033850653079379763338608787111585698164316358960802727532828849438130115467529171521627616542476318104186237765024278575826901263633446383414368355944169777112345380257221420139877107530957250857800548501672335666490462069429294054235943801023177307348486497297681061101080691489995761815238336654504088325765162432353505435933069031610667778332412068749883901204069256930971384071957910854543042731946771922398869970072193544019724334252619375730632120643390930239214494759846384035238878982767168506955687456139241310974543527716309238571219491822224460210402552832379599683244831736500032771861471534695835019566189572644149375605207447359934114345322796097029775701675323582103269668278852622218230537367847428830723376386043837673143730916424827668654827651655406508758499600568629692990522738785601555106601851245676633248056563986430769992658663123927307931581274104309878883982221843352740224490652311742947776517819844086938274783181561152469152672350247587851048283202260680752899335779790460115637102654981534510744354103685436540649960607264222503780561344828350282232969280250779293882190398325247916794955612898911809696795085375189082275893413995850628621183218863733665577828221355970744131690273392581008437497729602242250181634407878673116531913336402109454606141954108742507667768020467650004354763467056068516713728756705818917344423502157777538268454031514428061526634481431339834171658070461712831757169220769702797772842553822106192356762466649461514691847269976447573972405279805365129220658032214269831129732744470615642149541518109013027632046628577684406627697760768121874965203833564869235037514494675376886605222547426350468412154192608030003341596393541598160471553688175944708855467925359865595876616842285144227972631165316837586122963640335933098001662978832166324243909440830746737917692184977121115823090906699926145515578989046891051610994781711809724427552796939184710798069176596848646592295148536065862393786136964371804121435080901094799108926852544620829052004783300100049090221312640048451941636233257023131344127466278528207554651561667117304012391924048539650403817668449336321773342912207855847687478690728842574382052935410184704728364470326741683593390141416880896354261085162269963856957019447754209164234421142392765987512654598278602406185267064433547211720696058894547311893975377442019143058837736594602854124203487311614767891527937375560937266293164171504764389940433675646943658982929652977321106127408718022196139717326694984051899338913853704857159442524629343159778402002005738174517431714323984979461404867335863918739216300558611257377180890860717006414625744707410831542932190029387190739009787453448108541721721348333123496864614771245763096249961508961605955568230994721510936675524547979413186567713676556342122891880548131505125324036680341752485313897588016517201570565316610032595925579225428782344821911465480732235123388747984852055428531322251478488712950743549837349108894497962071663250369053888546864355440670887510881428351000158385178298999783907018148222759501183357299300471692349512739177807695962297159768785339842228961969707152923852059809584433379934964119167027797819707955027669612659283258970006813458900407259309161348943202145161199995564691214964869597436351323164998130940157380406111530175940343071966124027425056387066179979358869542319959393608253455137603729303622413851794971490640766211825725743292233118227701622071153433776499763497921413437912502510988347467417197026408762430844143241447409098294220432936953959080546062622053879732351682917327033628962785880375638521856640431694708739464400008019580999683901989032768275136361755781753510810503306594550160666573859422706452496622989559368470465936257783542465559471018475717987486712847148579599241717021044505583849328802452772578883361394560514549432126627114603879196041185009784761600426093672969121192395773226650012857911783860130082387083761082474034036287365501899326143575158208187554095012878964249242525205183972818403094181507370046953699959932644471476055834372009188595578704556677307007177846182329355426795775187261708595322741191818741853740488907792607114035675692308954310649064682280370499619737217295360191534172898065420084040224451727740142948683193586438718219997368384962091965682691885285736692080499903760409727881952514967138570725965857846914931579797159348679306678885752706968879560465479018184332790789104695017997210792453104995826821890141238542721267630159603649303347860160322600361309270955087620687977156448968818597989565555469257372852258127823204435133043962792885392245518464632234996768797839369924559311921799670281124885501251029405908113215604641198073333952548733720041324501628554880021787206206840452283672981704790509023217664523971560865914873919478635586049160741488254453564602394521740491280460599220904797902283798859882500680846133430030052473153368625770328141055509546757205681768511840103078037136073858441333926408427007490770649013485006581502254716634184042444136657764604190094020711567495340812181108313846386218777860822420041206442150472758501962542442708700228231663069950164840792301521081998129007390217225703775509522960676177614983029835612237756082920507698222123627331976125059387040342133191376696654457026747968541778012260561013688448630287247627684069022446524066421418097587138042549940526367394997206933901238202517457917315842023041078162744179421501887948358210758168285232131265185085239376448718946639981816713006272321060293127559482425046624441617157857850459970840846117057787058097249155350336442155874292236638452507246488517634904655984675014062289234142623777266738501768219896766670491475293419764806532642339263483537554706870356407563827119721163297392451301581515432047206430102832774955741266833962154069604423280208337227908207854266540666781152953960776143473068046439589566767593641306390209839111312240050571407524100968410078131040240991217397205973906333765873288034546765163539832770100287626575661342975125101301716560071189912134316898965125441108048718969551125561203280918510328982169792865006351841811263546450495901187136264777890296756507324469209187609274324945874116831329816374174063213442116900569599940924442536914122420795454336996859301426159180762835276290906251350819875207886260240724701716539292046157744940470038767657761218555025473839190769490572694452084808829431383186659945027835826918438902299266103740321579897539331626031978705900645021300103623508976305724312610868475553206549504924211107637761273284498099159070036998113329595129661393666279707392585786258430827018618027248994620970061418855393590733931622372478157671901611870114992749319389554476842747655775055220116511605116448315615426144613095304440172965494608339392251056571858283664103084606960067612241482647435349473499963394299302175505559206609708400022605290981598184712652902204275822933264253081642505391801084490342908758232798413542466996431159888470012576221446409904903940179158366129567221625116105233545384545478279141228655262086803077077517619029776269071651911147055682422117827934511506476957993720737121371243281114187658400382195903926226025964994722556804791353714132876386818621106869565864502911969314520481341356520028782920150670690115581841241035653492002932714022359661771926995888005860493147377024416279439847789449749388269577556371793739639146876531664732580410376152395194657270333598754113422354655914594155677809507224861154003597858018658797166113279631408549549629005606976507766682702140370907214181455942454408452557594267632986506484124511518076589706052469866204118769604925900921681887398781250717555923803105475490361657918127040324105903999270125028372651051370368228779486010686516671005253000814791083828548765173764137305303464920219389358628706321091669625756637155045565008740473408636201597207333750267743059216969876659180367293265853057060752526589685698173122902857724442581210384310970906662236400677187447072005110160088957754599510895635040319640467844554325768928794225700006781343897674961899956231923916112838976915676318743282787478453587337431349557420626937088680835220791216558437283982445248326910955058500252151826263740329563218790265511242222332786467539823390441921587233107558918795659574377499906822472362420390200522907852277681579088478827349999156648702498433696609177122146848584790588128882601943837873496928897436720562077668698454363639231766564971816712067053591190778555114858462279482509497644691229763996274152597361201039061344343300600030614861750510193664388571984943102148315939100498632774547016230763743924691234332771179904356726417512516504790960417297350887860962951679656639545846653542588968699832145148736483743450433767550540388710021154110134506847855603846969607933838831771722997927905204227411471521239562455165140674219083170191743326037919381910969259892351429894274420851316336720811167546168988382419982466752515489321395997281006587539968618890552939038410988780667254974011316053005846272416070805356839502648136354087306644472681680671359245668231215222002432273169969239156611037007608308274359639085244972012402310295963163997658761968493922633863173238697561250616363428069840308447273995514343188515655855233332657483987268068510104270092057973582026305677885188319852976890431032437262987326015713925879996654589072888222275769404940520834571033387135560976747286553654770411050289003575190780212232969980961195569371889117360628544735887247259186982610570263766678372917673309086807314614597292329690387161045395813517466061761438937704347297137225929112127985744781107285528500568923642302260845769699149902818744162197371193572306495132506131898807980287405851643834312563572958310608994873590490165369473090079017414017489710722629937446313300459946220455436597231906796238219970403031370157046501170872357843868663962707663797196713701611151184023510204691294289483919138775298312846130987817110502542958878520487770937755896104212624009320125404573535424584064348375493462541752671542550086822406045911505354836933201934282712580641333381202159088259759003088533657303920115632767209976823923054167729898131365950750352192059752967053380472371249187861460345553549864760072524183154897451409130991699191057674244568982676111781774120737934363548592534880522788671687717842883447926238899553421151125090315510465870921397557399256287859184842026724818846669819913094367674146649263144225668051460663303776553026762885300269890257622036071331174758736015910304195223606593675485238424922168715617840236509531872292962443571193770822055941911372233551979381661290752437296965162980802431213948391574977139663130355348761663166453661998965112835539908685567618409631497755827276539013228566890023156641671026086404428732932740435625522335426348448349417830748063616531302512479967576558101056098964656130670941226729132559866334680215658409444602331676768832420068813097701286894518388755951681540592963230726067917998756618344173140184914647889991711980715868629221321893711162833539833261439031677214320434217071201209048694063229222464871479243259381770731578266698711467435275515740272012879683060592071779958002777389917694395166922140143934146939827499496328013652826056524188694257366733543511416492254096557651507356537804936486569657937302550019615570789263986977209607637999641529712458786594666854979091253408248899670349202343930242885357301414643446146447396252633045238951283084279602557963987967951670741138380200595001935129446030290845926912993994558458406788951875571907922673157027100227412142274191983850027797890712710542085045392005434055122098286183593065028694646671001139173808329937277575315287871411371235553965266734738083493170531001720609304550570525168635494996826924468706943511958645445333312495285656855451567395915322553343732843406766639443615967411746159643228154627901935444963509700090788121552103137620881297878220826833053387494336144548646073033112097816914668982259577103616201421761318258852909751766030241885049860703887654643733965953111406400726855369862939615261912618533226638549045003820412461954529552052210799104108985478850401618857766660578972524644371891643280808412139180838784461096711473676483252250875490223809795402173819908878692407705385708416463622343491563469675976584016225883731728893961438496360736317180752473862281481065941100276999295231605147659051465174807240755980455859223891124276478167052789191540453199895573544917134211159690736541273753474663265432097937802506967964038554562636405912022125879478976344258752130197691713710668155518896181245673465399471608657574714602067542709325065610445007207453261346740255926999549118007722733543597542843239383344411387927111794222411777457402797191136013575959251093056878894673663399205027338415026352245615750303178996023625813663024254676904002657619267702031104641163162709628863905893842029784408181137899177597145035352685105559195439693420750052405715936483241902660671052901946193272475981571875759000529036888741090274787860560139925834837395791879479708795505476993127547693665033595156485791832970162971649472518187118410785492489378319607457456473641966515976869790305682152632089000258210988589101183719600897016900509693951092933461626162717583152192830248386263777510011770568859630677178821188712828760065434847521303614869875761628972744125220425491313483833399389336714169937095734837388475997124970069049141188262831019588779668861829279688988069981357744500780733650589506503689723200544447434035991198064126833482244019382714572664175509913702511776585002779523139847341360171864935143283157219574158057192482898711519690741865977854763299465007388786350888012340143380264968607052368350773555234861722546811464432819175280907929726256288809669565850912323075523951947735623298790438619378268020067304491513696257432763515762067074629334291850114533128366172530897287388708508999843129972400046735144235179194633169160640547048387566670613893442823383498075469334547612462249378364478778807913667288560457422732543822135402902255176255106605193163370245738031951316051471589023242089343731989480340208079168592044615871048792023993749568708978323211569190222444124194975365305435383316505169528925186080270661457707498125440092491234721564156482822287926256679301633799358566476845809096111694205726379046679768244621091639639922795107722584038041102470565922474554830286192368629886065879088373170518516994645110815166994146287490087559031259695211912725392753088340725246981609151110545167008477036227055270830313704651366918951844925360495137108229075715086395695806139870004300414537657784362482946090135629030247418828669464133013877423007336088477149134491604722797976889458041326026689269948904239126593445753025491300686706824979999585387278553452205185194105514973676779242655186773477977704471832983739062808275936270517197888629893194086360485975275414254497527234039577178219159349532359090486868473502051517736941538711266362503514408901095454593892277732852575413248606189529623514298562163198627312490927249007265848632267647762599164874275596756317883313397271333336998364062912422207889369647827190839895329382031384826531701048497437136896843167842523416377230087600418578660990264961410561550159496824855498761117347048280509786704977494706414410425727981791525080062602886559022407576795571203270251220212847908122518902759411199793130688139725086029628677897487212886820516123596622722055018422640430922507640350671497233617065191964683354679305800799919741738754546053994515756333470840511136838849921274540318547100792714270979531377574109757717109358326651575666680325243057915966383852307751900757165703424556037820687860624313909771790570234329694567656515835686104502361539308211405002219073060156537904584569751688646075995055052946627154791740798783923539957016118355912252348555264276841978076663149771589328072911393867987423829190645181643752748593365348645176328126890926348715498099997726349119096533620314922196390123884190200321548827775018132186763953520837033729526750868294934300662247063252614931542115013249876489213669739373017636171150148959944433527070347510434685641768443937506260363017219865838851918646170201855524500739474302265679428144597037014881883810666095548001526071837858916993602879927796698399337018449109412089652257200942671752820244648440888214902498926723291399584325452253044516505616310515244285436545337432907028383965897446175318354862921800213755397311050322692920016790634120131603715236803552050486469051702644103846652873260266543132869595824637409858512509601189434398293506993161022397487554493363642310560676619182084308088187702259824182792571365287249032253157422281841137980219217531779528516827233291481745790609933794010740010484739516657328826276923951929092693753952866815965554066249920192479216468364015664379892810420711304339492810320258952503756278833098285393648441990430248849698115502375047684265934837866769377490480666525752599801360917784745230402263634507920251333705026399377160426081917259882067510138248056694532186431076133466812937429215827069397566430467970216768383296922543944174613329409063139508337462692214495530800878965504948460116318572416411609643187415379439620019030526451235414775487328702945756645833381470325464206288866875268562984891635670184614394273001908743583261955054262326116102120144574514230267506984871397912789551304298703890323534405721900465186143351688926948996678606700935012965426106553460919386133898245030305922309061341445951438536815871993613718368830841427542819308456806088147494001829670179611810412624555789099657748621491658170582608452431628540931740740370137462247989743586412648040344913820143176273602365211349999725586177448235981591279829959645772472473126349010401959298938047185303511939172261271593384864101218554516777802976946670626328237412255601747499510274491832025291987104994234716181540844495813309800092422138235800100033340832257130061576512484083926662173287773210346599465410030605590835289007960894907675961791433230011436592004078474292308353330130918658644720569368962711482209400783397773734639165132672230705570072216866278819120193968927909779661157768610652293562612662505076683013391583027322051204545047440649283645505088391219064488396718140476157533963185335431454744488881299132416833445593863436488333952871520818267527236183423186614356887311996142597344126473778150072158131055130761048039038889628297231216256294266173898466798049630720619835454708272645075247160230944642269199723297719680617223208168583061355722356562399007195365656902572080681896248390521953973723266805470874697072855850290579323629820471352757621798758075952140951636727434562928710394435339483004181011181457357868522417334442926137641529899433017985751000545048932170937523050405610279173823630346591684347022183711059453653423469558011823083524352293947879698565469586537206204632764937855473739833686055370404347992037249983215223437246701796923940139741274707420326851650950189185421022695779113474822594163778067448640027857218846245951902047601563291031324458006919566804401181188071592720022645487140053459662186305415093250148244795649582876907566297396273660751119152938927540667495698366206744896313010573955530071123494909420781486584225079426564118018075593506420874529748216836241561840217213678568562999850354066585591030484402794498592068833275701562575355925287438575481151331045191961782112190628205240119878462077307184749176973434255004216573459431455155608882008486488165051358974080245720088900395146964345619889692423739804625270371461770601031092145336536028518665423026242951362967134175368063671549225729780968343562474516248091870168972863790803550666188862894822558146973237067595634543872855647298564555508431293083002470701040474352718811012151414311983355177175577188585686422982697766937154369377484848366667626079159745516952551886655746445217758418568987328913126260687300193877213629415198181917886361321685224220457868734576214252755736802193853930640586584595159319995212712188872812621606512703508603925814101463709303897476401748995017125659220046376162384834449029683080078769538912737281619717460920015848019006554065769804432747951286045584828419615050541462782359766151975607860611266858736284176636787141471882929669698135277972650108011759239749968631945111884539826068350877421465544890007746557929788560195274767221918126708917601662733105807835374214668565850100184409961792664310998081923791045034300962774654556964309112808564127391819937275534197644646807838749749459794216033832414060853609519904772400211476117509150921322680068834312882074170588418128005694211712991439744447779565651277251957872935135540634453076067280869402988730646221078206782530676491973148594058275109179738433612410421445320209430738634310050524755520962368820472504752701351532376266321218037048206145842576202122134981470759026698707616234439272629374873801059717217581275759580885153956596460231351100640673559034228795249299383739614109233408418530224409653351903232023361502611212821419477258408034131819370483279876810523365530691480734545824753483834533413497430401035965724557561110063630315247987348640422326063860515712520303831537434232971227997164226162885986260372057991010918996924564026266947998535996905693252619730103023161826398185833678632932029847366187245749720231021609982168860767772626994863953190979520129252372116447643179743469905541810688538241106755550898132204677455214833103066140059677878934789184383295861705390394114250088704051924610762829911117769560017693925152822686581523032066983119643288257442109035787226580901439901898408720985542216728354782913428870825465912390525042496179437148143235959952818801546932545004290275400719314727911544796405360281862571408742612740683682637725246879086370794156510075223261338465084201772193050781627984351235011492102217237876643858107841579934427871620399099495307700154002576008195420778872639799690936457509716810415858612056355577089314304581423898182072591033658514739051047806162720424050327885774760661291324030355680436600620175326905686452567661346234076505155101475156831919067126833658634937270935505395211783746502519357835184331920749351063747523877429693611453645264085721381039234080293047727901739116515961308108220693972990900668211867612464233459778691263100240596541468063869245232766536376444594171146140413959344250064865208836558079936356190385885575894300638967309709000128102188864009897739136565048736420698896728841256689059330064584094380585442126390565884296135363081667207478022721563397336929897819748974381031876275141534443630263790212065557405485811226491172726973532076535669002810565610777744753226742215881177073503144330402992415647286198850687245276730511580760768215379146883499887858620131099781509524113255052843976435292856882214012755288597634357145863467611585640127750845547984717201118464476275376334790361141081937494729003809683200123558099845521870124267182870523079081562631801875497599423725808646035888358702232845630635245546722312080071421582692403794663867328165475233099276578932889470812516522278964800627120278146353487414093469057870869971017107643006627363525330397492916677394724336644069316938680356434244331898113233883118269168648921997448562144130182298263509808172305103834666892186710724086121262759206808434609345800992989894489427451953570182293270163262475164194204390953376238467982615239945430602255063680073102740945731053899293488983611837236446894382442613646742874706752552878606968009750904005503304208306547596270108258844453123979742445682050423067418545482868538806310293677167366748534545159663808837312843383210144562912721092154497069682984494144222524070383027742438273309466374611457068238856827026690732538495566667691769281870209703839276867334796129956984439632679148931567372421560038007985781484334568774584828630494856970499337426148442710167912883103696254458861751646344844610764240022565094754820794920059094535988150692734307638652431463165442113163946403781443194312857963631708139691530719256639183074493219873441923242766425971510171100842508566097160561141477819120973658194758432951139002365797949525639880563648900602210655108796935748303312138163673716413922029703592518380668034377977382247823101186269562107604114389242461135691685003074148400455738065078634604482397457657902302712426866075765308677989382102956501276378788543310368041200949457855302839017819697654017480114142076408821384469778699729214577563135791489631300901580971938314503405767888767602167030387870265498799123938870083626731622260021807919500703032396952310375807420946389301144671102392515942611798913595554191222992475860616739418804681064739100549976433554888574498482470049310440404139887748097673406026665673160627333805938585777072335951269179832042016884286975884229704054813419384950291792148958967169824943120586173314282983739909698183645722162331847194754702781842045319503102937976103589671607052412668651587502170620005426365904580987013404075221320463840307170297003798788187563877488572355717109856472778350948348132064836755436999486880043384397354690551753494835803129469630356948896453510897813036495635797998357046381120579810895484709989568029320026548639231844357006338468928342151421291628895334438219783516526409175934688350576928277923524145478252691307374456666659552619396605288316235418715217754219174188228531307588914863454625949692528129792544197404747134838543437864071922396720215217175840249427763822149512349610644482016580802397201250944195885979883113501449341420037706448036902474227373432242088490331062098357511317996400260535839609076696499926711307303642053862645070769360232701872725318007685549488522551106687558400374565116962132689988003686794543575998636373647393510761982182019840652089478976195726157848764195978128716337218379356397724789606280127798651015646413884903931317610388960023236818691331582839850794133318797394094168870144784450349523305329431345365175830532781547186022826801639022694906211240512587069141749747844446151541446445681623194773665499679386527490899852472727299436537158780912968181391760784709684360677542891209765634601538804521130999430688109459031974873855567804463585809157365409955327598176462902514085170002301066231987016180019347354795870133733342770702799245469534361204499330764129640921624772600807268171621752701703862108901282248003060234650081305045917156331555704182664647229702242994947546687114816007656704840934907989980359750536497650823077703940029857298428758720654983244836628556958625053489325320779054667171555179748875639753728524263033961432356973293399114067000217696630087626926314281478394669492253276127153434570371541745385917583139803687325236581538825785103042192997273830294379296585937260114865592330655584176901407934514451201815308006562650014186827923468357122555143084973728767205288694730870993572848175487607514913894527181589463447168888997951128203543883747158275288405740339724091287402334093538050694194246127263397989553692108683401784036963991863161051014944856899189350265044322751079332041178291898277835250445549759938347280094709587090237643127963672912141949200184977490006919263934259049042488238629677691153686507172524659478459911429137760519724598829765266521628069925716552957534522347553430763492801509910395089779992065393892229306850570196682083836579222018470039020106687903081405394853315052138183356751555717747487737937675925438867713021663422970412583310984612101827142590566426683990675307972274241612940258028820351245936314409000970035185794652123232571800361688206166388792897404803210078848127957689622677166928261002293264282193748225450113767147222828693193643124871869144767708994567481999663845852048005670428753934686564901980616455975820162422053596409710174865751156222047063416830066283440729967101398803138846252215433426945477306756951459484981216713957402805155470541031625353670850952691346571664030863562169385946457490590365181289390461101289908537743212337672341135382848005891388555149682113263622065816809257962824583689284055958784745659232620601531237212997611900856799669569504787923348113474535104292954426461687055084725844751357562713245910915462871167769503469299376135868350901336191472998047138857356032054769177194343963350345853535224168519529018407822622599325333443755504911289839201701585244633754790723576487423881134302000184698176975890722278728252692290469791274882904416227534258855262628164800214942332707063371016240621311635883153323782425698525856199930397415177314702694719273847179061010331395324212467669895659974219245079684725032215837727205126761515348455834362708356450991640571376650515167822213521626387622619082957710779424566734009814200827849705534231453488548987627330694149148739780063826277539797513701424137436465645753772843403896513168872997144177097481090728437800836484645886298124325670063552838364980241945345867323643838885632797261359787393274318014384873125920351870295522619029092400175114241448099138351913066680736633699781655593040515551919710281857036469678072432844125751145872434143349157977700087514433341294949438426166091148871078017861041590004016405760553902737187277481597162486078744915063286641409694249972261585560740891121192746880586244284299848783372298355355475198378971610642694922134605788482038107451538844510567439918287302360330648803784515297122395529581074930742876108409971175677215653698159985053699557514054867441742477305655529701139202045050632851729559585701855680768874029684224756318951445106770539367117761733814988362465563967613361682064204474311661668863606321673687919466700863765113545253371005169424425987865903074094371801039027920607537842974280696503803904958296338390589738720679170268289874727166596491619265760321734661337746429418025133867540360864586744170952887169347467581205789740518095774850761546245046944265363560596959953653425128961354479456311145764151883031615322614885655533381036233200252841235655864398801462317094287200386160094355939142542305632981379647764327101726619879560825914881515452753612501116173712937753604458646606243664507394603783543797743230305292431425642110005117818980307965776557479762417254464683588483293078832069670784841309993206345733884549974973980941347424901176087582684247482083365522575065136454424706024055204411454275202720505231312501768820631950453208838573596376923650083228549178887430381508813824843840073780309583498186796228420226137817688000848836490432283303876554024663098678206529545267652943402769509372734534925701777474719566470324262407558576988968201750498795285182119085865217063281160144433290864680738830501597700126544432428690838688199793744422095434334681169576534839856900809931023594028567358180144001981947866864208119277111573764951374982296036479621255293003737750963454009283988241503707746872986215190001076822487517657815380173024121590418098603482426732858536804697512340468059514011551419792961666747387737358800630287988791392219770295581140155748656219439145839067842379206799839164725094229580884729002976123492697128062228268731027095972445582524254778684734166175525432744828645872210230453023628032264278681777590740457699620630137268323662640323831628044246561270263035138280163293289590045448045719115555787964758905366917333589343489163847698210179464796736955085347720858407507801058425582821569924495878349632693326296674912569331028731040239640685249543920236461910728641410239261573959959937320976239304835986444420057521123838249063272243479498336572829717279092495589677343350128602162026378252317420737161543606387664733418989128152166013878690720163205090206215186092348119120302165040169112908839338158807633404469787406621326108306359839932562293111703415784674747924098544193181345475325647961050691868494895057105302841533910536087027156082307856201480679780344081413958289720162102406116833746146757914149366627262027441830573691778785072607987057245607202185001123431266955216688371553809926668680327273745788187834118687129561036026917620840813230173151319815132188932984130683030646607220862151913293084490766929408297717347300949921875622917319590271601596172070229802358816485807379310755823485132685986275249790008797834343752830350956393753365490508696177862280497000378651362854681186788696854490727946914086309378997451992597205705440423474443584632433038075708562405659102036186619127295636523877164976598301551135582913949473543635974292759332216752447838109375081064692847420025512836372143474675464932010523688324944766566493636047984438779990392767027807843758532777451693031768839036645516117408286498124995789449452253807628581050858140893360001283995825726922331281370609001332269794229971646460477228687464510858180512936182163278492786969969565001013938407256771232315238677351358701029751854121628144881009020784462404821011455533592094444448888272591907259487967147272315051565698339695370499937167495964802883272737848353720115136781018559892680928230654773103639208221485462288228445686127119426806346468404801498402805321724662108142087081054244050042720970636904704012332821668799833218574207468972659362451164329101419014163501251654206056974887731729602722126124180296492840264214681244251957310067521903312367108313729718886083977985886354466862413918302914043405127822429314916681994433186964605212615189933826153961928130735095220878253038649925447820592762512166189371759738301678288772036185186933998414690943502526667861489968661250988446910584249735011841950789763340820008452438130701469053956949753847644030909528860629245043108201885625950366799464422051465925423845968280306548311917156942334317208708479586906287488237823913556195688660581491475808473112540496917750806412785292933799697736178619515380168934269660550523657269871328867401344570486047396660339768462600131522733429195540204507039766371347931743415942164652560595926905271623562757635966747804295883532163248390823388466668201132615176818120743024334723163695555157679398674265455505696325521592522856500512200202763077751593167674519646916499749778751033867063424587211034230141779643222495824968971650771717067336154579356880131703154457950962069213603603098282550241702336126419347748652347832087833449181563119003881351129770004531097502098496231322331735268994286217457620096566263574384718980570743517718818744107380046176890936463776140739809355669063910207106875977319612218051345626728937629583589749143403738461521798689362019886422099344192085558951149676231694162482393321679256782545838990473789824017500592902825165297004933487592588358569230682933669739893219988572947045520303228476159007054839450420874594189806896208965977132339868075100566302914008826941169720919329635023880719702324174831499228541667402787182161991199975414101888446285517289275408455355247678456632721401456940638937155686916222698614610902718354405840453924404577921579181704783787498911235120210909653930841042072031332134845495357395946147832405390637239549757440795005080711517471193728426490948591323973001057410590282520950691889036809386405998417602550282744977309028441106733543261755681950914990174585128743779402866882333173495671408461722644099901038048648474321112413305346618797120658650457826144000365896396879109543585964828100398118950403029006938172557452554374960511459544488030111006359979734545651603484644576735028340716034254420926704812147524595206160308613270388524048299477884847270309142899919375691435114851261150460726964486500327464740069124512928519143890658367390393350905358851035956609637125954606647873714661205367530799245169077927699298561832614956450289620718606656097759167595317897911961994255136447625589322196041780676864885742035996877782795794233715702389160031820015275206327969699268109278570149544117582107357199178806952653082751964020904226161210500246630783779666913806162137321341169273670333652477995216274577242778834968575615542367045812841346280918376504117014688962576520074106157049132058396120193794383999491213933559624187432228032169762979609184104812394367989095750056853278823215637623524622671105465250691846784406265495496312022457356040319102307269420760504638915876199710854203056303375845539675672357687192715382290143823384641512816565455466395362617023556544519123472129700602801302011661982728820718139957692337601539244292634167312197869517268263059828722011701089327979593501729262464051241175911028888821261446405484732469176780967534755374898006404441786395832569741220880719498910578385704745580118561413796526020024255598507902114518556223467835118913057898168192676875610876498430131261390755428258220456984515715154871135750725694051619365433025870274887386159983561504545441461767136358249760166643809654974989848775184162951915374763492234184553684957568382531943949671525751128198404498645039543443460751673876419509492567232207615781636213111490705489457823652788584560350133368501096819861334018041115446202623790440840517551320094584267888669865948129588649193066142697719484816969405232818381345642789427053986817719649372617651827648069192498438072198825736161323856341068587620245548212364052855778619774360528325258638417765632230931992923647192328710202652372604948998746915281366729997233704824792221036020152337363325593866340427918948555214461732875754543721701694308576066923267965631611821956478108200468755962183094633395153837292654460012865355661650843006249921060300053646838477670669435055292643284440700967662975226897246489630774591451157293353920420214717912778919754384960146685074166775349679054062727790751577061223693144069959192890022895734929860502332319775593787876101159424140341660595871840477741138364845629988814635100715193518287732124190682585554589125856065269808812956851400318825062447763152808683439386204096589774656355649539479136365436317689855695798119230476035118442938858059523959733140789704444257529837449509122939449315162393273528739937876083061803947058196756955961129176559573050874804347738792141359095997087479874601728103837816404630988812799536035601865454909564276221131249968195464866641158116273890107967519119825431546310396008798823405893856906796681288659441817974582386045731195850390705969030719298025751846438004714282980676528745702899557908549019298635490682684068167279183751219206354384089069572449294598327718587006346171634110206182286374857943027432458496554407065110969001677146492718427909315477378648308240241351636326867041657843606416940884627713119957105228006841062454427566135124590239979327631728903860706308541833927704837882908576449033598303184931524260765766697946184357602272613732278426087265443594939228963793381842448535685104606799372638813613666667696816375239992446932276751241266621113771554787070504177227345755538067134193037017880079871607091427372913894846862167252730820445095943589531135680359473894332567485198856127946819881367237561404564896731486475443089101403247029760546224749019834960963712410192861491348259944946916478098580704870179519134912503721121487372284372373704844295159033367400828997599297753602221370933973057037135120528634408933871391598316988624220374171557157436274685835444710483569418268558856957835856065984678177791903800822458668885763304573058351971634920165994012642823037776793853262480092863950423549020256874432312491300344734081693307167838113716916601853646250987608605940708815347849533460053935378633820927019773562611755586388702872630662160470500830799960634471890556240852302647966125079535588006879966105970754324789299307191321425626599679177160752884411598046333894164120838485118215097874036025565752537719334982307129759680859429914731360400830706617510995919252376710739796366565974955979096045345559166275999506116424566286698655121260844107412906396159634540666646387422520766905987058076049797400597755633397288800359722044815583198215982328241775070698965371563669801385537468030342379455352527367061650888528453478195259522351484694239886421224241665701511914913795524096590764984165696600900180228778462573201071292901836467413534361151602395566959685397207664677545397670685667767620914377808522411337085919772599439250053035935761055605627553796204230682859647360072067545192745778743616497097376862036919707419827098650980544795003386402436770534494403926117401602028611038268576824140934661914920842799297611082673714491343602537365836148014124819428003282491298593858547332126183218813680836326649760009066136679925956853212329778510596713763618325651602851208955731425352922776570750847974584132884104084172430963451249230645718568563950124319938960470242263088706412789752638862627641585788223189874822078487648371573983398202528474728459590023890196320540772718066278168123362552241220870280410728422228224574721970873143027996613423777543733897681003330000439676993671545340244358566901850496327499887538254543448321008468063634701895082691103070964499054888505877183281600593443900836861317762449624303835421978017612713698183032375744628393844538344829305586558246015412312806077964892856897439176841857554139695382881026962865160375150469663748751850552200862089690707990512038592870914485388986442107131929499773637816922533827605551001122060042322744749435473378984409658471353551245524207559294994383854623545645867413748574747368347905191461780748056898375663365518842510926982377868913664937051521319662708742386813381053395082650868296961171172197594354084330307853532731917035037753049399274003645985847491583790844725313794360790300152812556477034654802726907159330825268474726117378756534471449557844250172700219712428450733805959065000127058952870572759386672920340259926105275283677846082128951866486115970410970386039630047066953561907769579391515937454033496372947249773441964798325386642939171431737322526312275817144693849552840884612038484503329858759304209775665846894715508200863155711248475750358546776056475845317602631758198750982356131146327099639373235881029551378011236959207051098302628494917122396698745820238920301744873047634288520814798609465457935824434996771873915088354597441371479686351366280059842159615576835206767900373589115116405124265885978949417746932192231767786928447482258181810686695719796761152479353556365727092923600664027261537703073542533595894324967239582942249177303239564119349065923035669985477821693287129231180609353653267630539022452563712685441551703493240330371051199209659472681023227010898503225993039869910108959670149890086171348620549263277891142669307199220713164491712151773240561363459306657145476761934446822927747915534533341525830445799105278743839768973226749477697821892237309858825069625395159426226800869101255921795025987022858899950834422703596553838064782742735563153378395676893592982050294109104665632886728114663541220585331092117093435274936349479994686916282605678855858047038934643547685305695081394782135600222924048523977093269876355297764335141438753126445071021200777963373545679980740149005173871289236005113667185549282551860250370929828012126369452664016580611445834188085478845114443713685896453417323233642387600108174999866478692879510112679403976437962054899094396411186163107360879306496029660149508509415460065401043608300660894382790214998740699505148604389891408036681922094248031024352774830810337292673269816434754546515278266639832808560640441582313200901259087973234262663858366598062897665522138172423037363135359398535057221312231031276485495357724931550721905496883785320773085444638839811735128904968660340868863949646185405092170769154542559547315620884350830573183020559597951450411577753639772287360209849921503048208388889670668078473645569121785051510966878916309487078419103216964192913533181106584028511127973772262307561936557785012119012003217267293899306797141096957186211876558900214235197938173764282582280978085171907444845218358764836091701211683676714585520834801914105901469116090782372808993135957564853548199842652064528090740738392523688374175599016947370353672296734742681455305855937448637844513715509955344213317737497514293037257839128019179846260673259436536756868524975365339682045460894240076522421895866416641138748403454442874036444654020558108803902659286800597469053680600944858617846431942836023246515353536356960473436631967793186265921363656759930336767843020370581474076079768565468162561863976479685250130757505683645623925264332085128797513502645706138891647972241072874033163910056359165162144903351771174939645460023075078059733309682367476086737289455278493270499690188949353540747526821496112567092443926023277445199402306148398300517879154136996782493365516006008647765170782158825544939575311333473588697349680721095900437612818575405467301230222923484884462315231601260954881418140288044702006033927844200998417615502848042855965222500631106882443565581276098631230324030881129505740127194363736050826438871717565538518437580699762386363646476078218496485684488793071748940373367450634420277096226404164876570310211287359361422027139166514587708487272926134212927125122877749406555040114041366236952188889377435433510722417942039514716478243479507667014459051006977354193263586728408924590645039216718894143526252935066200895732436262833027001575849782490369073670294283056658371686552500772890809240914803627908392808113277541388682870043750901317901054218020938429332389397696014898056779733481673280844691213120726109241682863597401284888195247520545892831045008059787365106739254452533042850440821679210868034714569279841636179334168235552859773092174842059790529792723098607206444036197297030299895964468999099988442654744681063216537139285475295235579795424214502949725001418981372703609905199542080464687476629616444947112416796294458578258794314761058653089339846874603801396732574839472545857028314734332026179152321690859132060686092287008284508718571985981611048518394898421237857444792343220261829057605727562835003890384342718621049616276413843341403034887863705899150504095623881772939077979588589240320634066497042274575805969230308440807874656150452331601676679931062588252535118039668145342084732027454354943817239911001999279548147267019064294008190506491900555922845854472523453336970090771858867077794897682203329821662197667528213565860212600111081106581511206572680967254314905004360165922889059120009797105996679664089737993757919121134524131132886094322448994001627882037045264581665356187496775947337647134248474379283096038349787735452397186178880714190963759873911807810131304903004239317435412577382862158600933451456356911471089354892786946252534379715959218048385709379786636769133730076679218500098516520952847388467614991097899993076976363025295107691805907796365584182637159801272239782092802863604762946242193891107811799561271075217495089914051611319558510571245417989163380354552847857975510207746681732205430098009029141459757061600585233345413499136198768171629727934709021670874418371581712044732780913404168298779266051630593943228460739817616730507776558288740550963656538878643488477776198149743774739451173272184029036266794487445681319866293720099604535672381432597000435629545338771010508124551751982777408189510831504076488020924521526942542087052436954402144551035721137639502134887293686879124419563549880099065210954850135852879906794310709206444005450079549745322167568863830180998974800047351546578987729240219303538758867288113964967655831333456799921477262546977043378225394855043204094302287573151877935291946051990520745788228740805557928994058835726302492645775222703212197276356584053562213593952121286852698889389304450694204965446994362305308294984867111807858493289465045399014139391754934230591638206350590352163304726334780053790091963127712592843723179754457959712375078046987854352429149285558987204176877531746824084816206158457439855960219127976348739081592033814661473376694430275163010331433444061480911070791198559619163449862466020556117588841455606137438975598960331123812588108491918670324411735361140143780686321538993270794040910634748300236958486854099254153316846395659059236275010009246869741683280339813405002233225683839922131794108532074367531298521191197880366891403566460871134331071171025551019711077525455765646043117753205683863919687206414496393467549251875060744420914870933141812328362888743256674900400980913202480358968396788352872844603279804257591823757242340986617360451485076767159320709280021522290039791947376345314562606677217211632330423397659769492381771227486818432372121727226329162685011206520302545048371226104398533284102877275628469023319395689620010401418094027213789531980754538085000703974541465824641554247090528299513903216670781090811335264369346986305328135995821598597562057713719578987007630767065852401447512475259854003181865344540297777807765503279487533020950708719627032534694407617352600435201408197013219131228965926631852909516215268282716505385584901619464499292908476168296317878429233821176833410650836792684819163858758465647028394211360552562327844904088077706693224821719308739668527166103267280174927401793356437019965599861652486379732461982568833215837050528524564534468899667588747485738032662696110559514462733199975674546004059917786040204318848055991131121002474669388754587881344320008578818475011728972848929742172746893067217963475864434834584248659445656254167534863121638697994036855002626319336098090716138787014177369522288458561657547294573904979454739240931849602500473108743518563334864968566526727415477179766540186396897514094225062171732017514950068529352595001907700152747830084215375688600693498314949558852865436972710708216499128279102552284040143052185648791174247164405866020994420873730202489592246095579507024413671177958277632591212022447343236719333600654409061632353764470505896494646721634764501602868683252383602422678783435411261084053718847526232703784168981202048313329137265033679841743194548201668624252683103001677766346954189439776811841715729821151144083955551861164049220145842984487893415078399971328819411100628914063858755627501840133386250906763112984702845797975257864554785610720287158709657567092265124326356175719117770685580888441478917549656043660644198219794734128033781196145554735890265763272656712422858988018911263683732813918663334936772789208490797600969088123661579361933453076738062338733384278016418670914131314833081424890754835051604873486626504998354536286418530453344792804373911081274036416054191076743210592580693102897433122866916637515297038502189459146269291142132598278644313482372560912152998591188765715176501364333434991062953770174163025370291123437502224391171356698176065617449580177221281365138741528062852246357143905880864386293197890932434663487560573335841994661132496643397553220747142987190708547570020302520578520668518849481998893002287212556640059325642188330718713489644343427186517046378582994585122448844758257690186415234012065436683526845747060693213285500599108913174851692861439889667588739464823788598931538831037195043478598387105850859439525675747251242550258777016656093710771719292995624371045416192509134766784417090051551207223638410109885818599277994093620242615248517169214329983836932372074205322874436263430475431465104634131828978784684033005622859791505740363616737746835571491733775502859879377449428810528303646639722331426421303089668974998302026247326116384391849710504522925917502940098055821049369992919363638857780389613061991976566227929869939405155999226478701256431902742980573180425417969776590626875510291480041018735588562877879452403262011393983054589279630566039372073428465107906403447364343872867383710167232803711814812467399327661048457630200649357637079941628712100537697510555388621396386234243582040408662891959326045244064877691514588212287139827645274447774600050759581005069706524358994897952950081472711798958294795052656829112891506420958279460835882071218883424981441720117219114314252028111770253749309380875392915339896442256187093783877414867362056886083097389704212769575300206398588669001616136968081326577411144668223786478601051679976238165267489552406101856476040065649308664412229495497706643915048850537343096854959465783116082013882264182253845626765387974495147908819447345742955507623220274780846956453172023044391220550403964631931567293304520187909480528839538135609341883837188490151362377648569911886785710424612400954693444718731908453158971900489831722889219940589616230321453601596466270223177208069126074605259784601699120752965717923007164408257494619187136158076924585698514271335835708800040613073767738459378019749695981717865762342423203013946336887072362825889275471180593571468592902682790688547581323018243904886000359182019710309560272709220534340056158934948898156642680490797074015273105560180785191052776396577044272048772902899659272508399234089617651939626376617989668566356151650326730649712478609646007562481505749697520040223572646818801069774198532642998815719407939788200847390798105895334294627520478806546871069174666700630318203425819839177042516501442449271214057328893339310117202640069018708578603597134991140269774327457584396934609661442695919515935475986525645647119438449513482678951195170342095544334235579187153681440646887444974166416126050250795524900588392367189400721263798588116131989936182902141210166312757463601739849682168592204550151349142093674091215185401822893379013531110497889604342305227970021363770771953164211106509669828458082900194738962029393856416253295467529787730718843470755784191908025265898634610565347054093522137370804308099415001382060577519287968514293468998627291592768605722814333556081864061600467728241048876658788359368913450893148882520235602159901550433181654211830769077110598796511756653229100201163690679988409777509481662638572475486371611066413153762097730503661255149777011590848865351311419404705038106506422917547481831916858742295288841427168799656588600546538704286339242608642548093478736955885278588604501333187576871647416284332144629500500813164961746660613257253167335833811198946119134563908026754898834610116111018274690816371758118493831021552699836880008307611041634563704368519224697284499626348621217864655400297389800545744774022057305657365441492528690714650791072007377312560215352702227505160562242887904427364165972670613786857249518645271298734577987076959861276939979391417789578458811180623910437697942404880531470398622603586099315642901334942004031620269734867506355815789783123953473218321569511657288687668559776942050632053323264785855055354590618091462923392070947472746429162968420144825772636806853907667145746165175674737948470786102020579847291030837827228028148276423433951643688291622581755015599584323736702988049506030717377962859527133984403523559456954579260335704802987284318035345924725173995741205746701653901695345560406933597804798543406502286363639327335898817487175195252707309985698667810241903685074671581758110125116912903242003691088767956337350196364817029920138675652083712425331657037362349892916418399193117927997958201360410316433026228581192569393235553012130457349689741310590320143428308694913468078661408522480921217714807073171129732077304833124182744630549500195700491411207686933779596957338617889135270556072353118311769255717005212742333045906842542828044988965679039617099854194759687024275782812187124195190702436602850422139599219386877369672250994422963308054486479534289738740475258567125818203360145693208494416300743793299865522849268042843961108100121769001853488987603613803900167200016745860791232236347274174159561120044076976527003544474289203092841615918052675465898064022272983651366357017288682263435473983640535768302872203626788725484772810801971170818922372092159131501049663202807676442360845440783303661093652218969754456696551219647153819111787729889624709506888558389321072231224183595177792459083756056002724918579645843256001954103416598452787172691812848679351652309756053504653922995580553740244739894060766895570890481435099117575935387790460125618296418803206799999823143308500461863833419718168792718800983167149432592865448725191692864278363202855279362533061625783107812940513483136303154935813014182543464195347010276788692571158693860864447868644266352963266791078611251206908907738724374975591059260555341236062667535577592178206840964955856700378038279246168371263065358057305882324938411541048060573576486314040472247356422756479992727768872598646057964189397742811393043246291717956066804221097900182246657581028299097542160830595495448852363789721540794492822880534658043583308214729022189223800975203825172476854331131380719414920539161809545571952149505652897380987513636866268785745881769311654556022146610886805361604938440962524701740885004308878513208790942559592886784361818443777642755754721631931755982894956304474048708241935233232431156920302465413899017278781122544783296083984767832059963607614062833422970774380538930874223291446969989145459338797364664533289785144784919856598490444806164711484570585946726327134033048627755444426683860768894373028310673178440967881597806746685721917111789733270502058334884607987585863170691043380625609826461552459017188130798615766479703720390834674920155376729637257771848657515101741463825826940390934832340665462260441545609645489109058286137830940612973873197770994422660956485561731611977964396503580722219545979065250446913967096830597294280464134293747996886904113593195088184277801279915453807233764398589077718342024273572432913747245830975112795218092847552571415674435105645573411713740404123323747572368970627236832880888127302396721768132745068090822634751164339058940982497261854846073562040799470068381753616376574675830501908016966712767319580929539974360685668960916418328990427998529461526978287247107796911916106583486475386202300422962451829223445377375974067890192740384150950996547765131928414833239504249397510986227382293050290535816177514187344668593662828637821225932059491061796509547369103855438039943846370641812040543197855488706360304759012328270931356339999293406731849852589496493919098729786683509255391587808977636734043994834384160794684732312024937826683763888647386937335401868208106879072744495189505965734590226753902263803881080429099827966568799146770369490056960797273053844093604060484722169414005721677026133994043565242523919734311072619551472974347557967410243908720039906229018131059454900610888812082525463869525436867657852003828508621969218063831369085636540588371625951991320357439897045387897182602837354701859803809409096485311329168653655430423068590710546192062660965136209438201881252725453760240184036233308242916622815094918669386895868330246721447504751792634372656025195108557284166284973982768347345994970812491556013698834064245191205118845804372473415123354856304599418266879612688727804731855240015269076944155934277596694846339606073616515056878200083560160322756981124945982250704029267033745715493306909079461479623957685031000181523093728071173658806099962009691305414309535560367542884997354516861917880368871209522336350776941938260784149358400558881131298746914492675066601487486061135784853344607422721967595879152047083146585706904870717481800112916628564024759002808517965481729537968170109305164687495927448200946731821439209821364860490844833307989096050201134857569254163631143626866137813696120223958141148312221335116417055571848006046054816172186122794713043333233299237741989348028122401293184426741709298718984677634024669572445529117304995693508016916925767878433539551544464634334644881459737300923453162128845305873977344507874582697524954090673567953167064073957003606840063653118554595422348888984505375402463676751095371840710883186108977885149666475645588026768397175688086604210715558254544307796224169212444545650141280702683746549713351061578427933324674325695213341929676170003325252044271425068068092709138184312026300893562470630476283096985023043858527852884157351069940295379327963223433212134604091658758619874597586146545055961837590353588447636347557211035865899625077639875608029028054699189864561564904154630419567837574308484616718806658716291012368865551817838006133276926339111444090162362163410511070976375054098065966272280750754174070540361380336465369184906800524053588007053134133960892277768942180995102683839830673210743037390007766716346498061429091450086434626839257035669422158312210028541797502653321188947221336493505115335245770081755438108549371408573487760687241645241241106507800807854520993373003747519560134456077367589809167358486404871890824133784462804928649285439640502532950151476030451959491912587014048687835288626523497613452003759922916077193363176692579786934628445999221228566205383016957541348552474560571984773441544293231321035522132212716894314651168368454977870589131484008193379166584050421968860689627493328977154726271071525548128933047504759191873127759307689489520768970803195427068398052373519760698017657390240513589683218847349363484948073367492942347373690056151489933697460519804711347440575214078069238205002495859717364819918876687301930690945225499522855351957869766418198554579694476829529671297180656016712465385848798409882153582886493941235470576374365343667625680093560567449779928773497286525932282080354406407567796147571217851191195858279910588088369761711484129687973633075569636012097365442836156052965328545662841872101349876138040329696904797015126653942726307700663818267095268571915601971547171168582437954132777343307460629329530505667646574786139217906190955828773059991002168432585980890933500071556998736423742194541802912488649997962218294097025226906510982072231776221569691589780012849922239750938215275850215117650267309510083672720154697198742611184563316145067475036747008470815421744581815874760317517469531780911840902355944857297216431542238914859917393966267202015026345129929304808972689893519235258527117186487003660721483236988017789960245578112560453691247368214261806144270067640493106333862158541193704801232272370944119940556615610397974975567590824211460354161192214513074057636845321667525923827228324942673930514432537870369435100237492483362708332342642613020575798324231189710206773690076892955415335543155843218573297555481299589379221914480550563937994373615688519378178050580011259260423974277529611402363253968799831487019976057425174588224779921558811621431505911988455844332470577114016845221196722797439531744039918944440154178686009228742879691093757263178432189922824973932229436649686080936748079552636400232647975735914254202675211250702118320623240020527617037048335941374613051339385897730315899961325187216578873516460188399563356010897756092032447386462836098334942932435470064607931326751292086248272899989936681821167900406485247681749212016507773951964273251564268633704777709206704596643886204397576315738799666965581746993228973677851518294253964582521393794865377273326015429086958423602676463771724630032868721468729912367595744916652813645672791154288895929016575025696289688155349236472431605371274708324128326410899171074695409213060376495840674057250441204408176488431943491069563290984228808106687092765375816051293973086019174831328600925411717782486667323576142626027978574371264901011057193229580835930712582761327352878183436197417394436558901547799409457399765671265254192127840139678866418193572796593585096220590132194409899473864751380886706801960483199311062659618124429027581598247288629483167827211322231135316384946563125515476066360198193989109102324689041887650327230103646511758860984592206399071149781635210096876293738026822894614051151971976278259713590509602087140729984980207764686301753695708308027187665829031106734646419975447778717654859292457493433021253774688032578310335703749276442709246885004820402494453625817111522235922586110056349669969259869411947431684683054398646388694299878125999304140689539297167463012437910408886111664417555358717048352488890171585557609440677094768339363055694305620276065221763015934735985128790343640115280175724354643431262802502721913787724561127726282232571681732153870333583278701747239559191339877047108570222207393952264471371056127439560689855608991467248377867298607842185259177608066854131059987202959778598026801218284147261669710564525893734176199504903616970718113316790981160393059435579169731214092873548093280568638550690352189950176661539975295991379013178650298164348378995832510533732085191093762436707432883795995466912973999987153676792569890249897793981765136153858519723697573170407883957026840205472418684977562868051347558959454656822970593741706922056699606417198439823553980083187207402032624900932325321922649206043423716388564047299782762479778161230558888380770527569928874820802725910460546166215159725228927406897944927061815207221980954257266043028231487795209827908100041867823114382259380117759158446028063075007353250360447783115948537781070948810098159494519503663371307409502028316957932787523679339438214575562985898038003564037536130433579013397068916328318529329079041626463698021270458013442560406531577904384952201489443445766291883262149850168922132080932803836635695392556529322558007929439407774637606501046353409624075956505349160276938026566379665166209589709853780210380899523024322660120827955297582045590431193151417862706495793486365107279526948891074024769377979986837842730421235238517466595317327565319529117043583369305670701314833074025234717724847491701854989087107124115034559823229705298553354991372349353535946896135993574960002783021824550468860712113039940374081416133821162063894927285757871753096931572337354811107578013155187121811418655526843253465775958021898566035099700257464575307884904461010403856903886343414155297330470971859623729681008728527134966653060460792672052380815087741500193444667773959971705239657660541088741286840200772048952239307896715330661005191565625215903137608448628270529022735360166666131923503272499843348907073778618258879638189162637098653935555008144586846061012258022633730309702040652820855070701321931138938072229195067209843590965641281192548623614965235372039401613219477132048619376090806074941173930317026067309531309674007440577498977085310019611769353337664448641212687453647694503292175642717322630089885558022071356136879224364660487521255833559096094106736400769297032311345439582615895087053178541070669092813348166238054702566011854536858918845504835767313204597421925559023230347172549150819197349369431990803881277613467629945338750423843718716698003384971228647856139996554615841353336992728192073338847319332713196658955966345620444465598094657141981788503018761509771922427120523904165519987235962800611970620436303190993083833432302525952765170185853359262023518411767167388899578808430245695247533134642866738267213349884616215003474843343238004646069357150170530791962194681832603183065622844464157084649981639435608325161752019582282461777231004050473892381157340091912570146433651242152265008792952127980712412252860712145291145028681986712923739849004065785492991865670035070652125765545712840822584364102287554555521889809300870957147495729527594610438865381623550452136355535628430799404121131985658357511503812413649823476768359517610407095968386069930322161199895516398125098115603960966289376279273546521381687602246769860920074829148956280795540461205214014026370694394751523529955384650611212483318163861090657941561075819722650224732473821818246086834468778606055008066914648640209266652285223217845812596147535676727926921370571176656718894124285429769287378189904658736898190527184849158870456957601107164069311917136692434322512337353083117049689631471423975868854749488520072071364274535389842624248862262316303331729092442446969938532028306137928396804536354429259562852830883528832924841831693303983145709136675563837002453257922469417777536745505608180228565245197967627843099102483936720274563206557068331271733220017010173144380647380564768092342968489312963182309521251879139763237739761797391685402125874607819620708592627448138432357878117679646290528514250444572256698983276440565332823038557104227747549238942727647779136032109384853255123971076066903925048057272794886471393856117552164119958909404109317564398159906813979560026959298581243130276717886603147808074276150621185801519440935874345244495676149286920869674517155715523920246370745982343024161244991251581278947333267468468134118314735538749870364322021009833591511970939968431537466799224933683321759626881816288912225757881414724073580137124059141267815676851063156857690069616959881491430485416083034119860139638186023234474321033677852666675277024810169423809101382764469904086158790409016233059150295824687701392843331585533498958450932545208164813450613110310911452175665562607955578157596297268292818277578385796622009980472685824699582633766243202975741130805620826641672302697931800077875117335691147310091125791486036957044153880775433639799587243213292663046503613503927749108900580657085349132755098305688765760321188782806802055649677809977182143184020717047715747563235000033063995216873551597578814020139918002687942446990885692012100422249303521321382122527332434826431595133042271942633281947727361306391863531451979646483339445677568119023566573531523425987074285696193364977868548771840993340722096366785594712166894215017754037562729611840230616586625174174005934617922279406186569378642535055818605565655610851528247304656174948552601239602650057617199032031881092753377826252479065689035255515050975767805344821024671462844217079996394825616946963392999929366678340580374014730092156306786783098271489197999792208644203922072846759807398997639629932101132370057662900531618427821027248371397462144085441731689704220383249243319930515319310293448235767765880651812956150820482030585278632950953982586865187525462399527945472123629209443946292717115794205805798995475948732245600823351242745517884573162488295196847835500673262834035794401090787512581089497350587391868783179915825617727770317892833149655955483958256913546484551168498878319733339382598119560090431210393864573091965787186083393182468782822740744739664464595048347568344817956279987823292094351355177826702764710865215904017199849052054593485343981008612623226293742983622014409828380487824450002370388070406875261343065193857025868107745526159499222616878937967314338422490568031696290948520702386733161514798462242559922747730749660234808598715097918974677168023808701747294137674220833610928113496745179750006321648307754903310290679342193385929217131082403615261019068335497162670729485926894522969182862393645926277707553838795340107545548553418438497355167412381236819033850000244879142878068824817342783563758780925081505089422019072415745304997557648613822065389309294961281764124134813942797911593306269783721130798569769307644344137079355823843507335607171971354252363760357854042508238708359221128548593986138440557723726059623181616270402925863626319207313052528596329381937737260863327366093515783923782235534118832560577935371133256664814447438735414349184108773276933827782011743708839690477198006439211399475147857053532995562307173151825763931922673209362010004100414795941614839462970548494399710429782106303846822760105572049040599059575282367687921017718622743432848597905407133147827276840841737998922570590290823039070623022169818477480627853532957825369963159991595427235459038164397133860773347050659122723076721348230936417947348747866450341110392988954268143497259951272506161964607579448863823084356315057688366515558602942168668042490741615586158946739010210651033283006435989361270881228230732007986262748484676617968624506480138960232634731549490499505695426387884912117430243274385624270818286010220550787923201523554213504593333621561520763709061099892506490017906511130172973120808576467218783181825341732656486204917996801059313467483614100747768354308508875137718100243930127156906220794875666330043074004276063019128482533067303826541279148154692164606226421466978172035374526918939996282874901508001236373593109532302860546089529340944340691030458749157937597864835454946386283829018629282509074191424276334973606307276855109302965233119338172907260200383719847477189040954611791212839548232047641939531254306945668068402367060321649789300199810140500849029969017487776305747406859279242545279838157351823944589477208602316187208210218089131191289375751368846600321938569401577066674610521851907065545596880736235680452417388410440558641461512869766274324580438585416338460589064999015710559879612175157946038518465522725919790997224462380809261968945018083285383963500604915225749828003662512497866301003346934400616543349978567679579697894667592110130947897965616986463903774814400146521369513009962762361983675944251529712365363810081815723070410618889728872539716300704477930793262701245854685403913497449241580032131032891119443114000317754434937748274389660192391635997634987817735666406877988768056654898831502642872902051123510250338191682018725170096876961039481141770721144667456319373777428029182275522090353689528447551861351601342264306959706340241805715445559487772123459459432932805266799353122108015227663329153570622804404150307133209783474694135308245762336330217574448131299739087566161318552756588090442046373419804558837207868668398895913060579656405056525976254285013359046995320133613976726340380406204266652948936113834616259770286181447797031236022163908990347372872431650083951790160278116056305190942245419085085908634413874549247449008935213183514305758083778289332110486851192398703151944000400516473393205233086501196172267577122895299364305629447544721685764833410024134825876935813089888394516640446077617557206231593750393933884480124423204185069743750439102308693407560677528364573501617887498121436288803461819826878303266265088098636471811047086981075840011406549068607928568485018657607045013548251094801566939483488656473567765220162690608563408375837568051709049019581817199092679958561927685151483274037108749042427449999705542939354764817346717025374509877775950252193743604710825132515613241994998999501294780264891722587980832523392541609580547978505023422927889045500791763598261686309694088108980531473505841574852965794192466411457108031248948634866716088426657108662848721392097773637580308508229751174630482354042541776467840442622166731669130696591139409726752155051734638309094645776997370282204338722606952559499619694084961365471753087861492417618084491118623516126785208914902329929022006525654947854874761181607495104365151522526042255797244135638514674506158066007083245847202647705687540350904296418276039757329337942919635808421440791424517250937051067206556436922456531371682276240374598530073820528290386547285453422057959203675511255353314353431202998733761635683314516749076106692257387114251031643892444511936520797418333870741859447415734380800957335773144405656253814060093208943951610639164599584414252614493997948913411485876462704163345324339926475227912911988583554815097799248329480906861511243852675447069551285284336137467977104606869222509795450272236723606457931495258835891057265355098187042197334511465775239781929925496519479498024340132294570622744300181701721135100363623908281942969750394198780763318114071471002677298851853804082676602292000857464344466759560101212250366846895567125330904406298042217932651683815517183860874163762481994462685558267647657568997585743621826012439799136965607435397611499892507241343054484412931303952384677416008232786726514780382156455607140817803232089686177017547479411560595205643821001334825589167284352083163557838117918911346265138437076443690040893643533661090991859510107938054842883271207831859286498120600143562212127958937453131475075144176874274102979748150796844607300633285690097365634542665002656976623844469488072312928201739374193887348881654456195681953942241528436609458643021560759608203825617665544241694682443177206302894709006211833629106126391467115374160694204237794532501550344107610336606958128212799737516178337006329653332830118222714425214892746200370990532954306635855133387632355986245356442589126460575322494555238197899788046725834668364287773628020754772621925824311461928906086558814686074494644712065727017103968176234745647748205381781395880727302314555089399576727286505005150232672976926263375651591119821479698637250806938373304545746192838885347800271898889689095487283429618069693663573334546586663728891679357836338123756644136093585844814600781863623315809916979271440464152989044537908987592423148491614667553541082674129697119108289226976949603704248737108644332987871630692253638520193494819649531426350035608736041165831059326268387389506269797805932335242592960739805749320093223692455865260048476626535733151001197161173368393380991748377915346147082818473476933825993963337182284405685709101185998499290841120167456967760368408809971118290107275852855399925443018300029537848625257267465711333165293880383832545815575681581680638205459841503519888183074175905340542917296411003209063527547787862347838459999742465604792570486749974564715824505008145535556963913936869759556237044997515598933442568817645348302593246170967675979094047294230287253808046366922474617209251211768329021587946157481400966821225293492999011125795750805487883320808071238563265407044644376750896714423045794521716650949165770262398662587161025757259906922372965993896925053772832798914005639946432938376069508485574132289178049181976572154584653518263534034740354180735037705366546232767202904813709763507822779378620907630233224840978466169550242956780623075082926317386210655098030205435538886184281892261824912674335437813236207184541738367084478458418318470213973578717395728700216270381946336487093763851357859838597715789460184368136245134063605358246354858203087820293604621238409509734851528632579859049279507319476085413415880188484636706771254922912676296728346387694160619179566716899426498659103684010224995176893480115384271526352633137673911680616004063189642912955511638895863249895008934378451396905348448172893898339735438898089242848457159649781854177017663379441483459412612218074859533158309505496553958570446910071317786048983627302182884441510034936393238033352515385697721335081478136959939943613754714835910962526145084888000811790911433815968639492505280492504428198145280272511568862894243679580192330683754603380273827606913509372008490340915500605116789725795863020084594263884377965080114866768748967978027992414432825261306852848821576073435926370024194202805501015022062492626503063539834761933440833533098684429097163748146077996266838628395461136855206470068297467422106431568840864711930119381785516486942961720475971104001558739332393532875406607689065682163316909836812119491409979597144409930488761083164568808499917452398510335563051309096138939359268661017771312266925670265344233067326893974700375681886401888923540756463145971286562490705939627560415932283594315206608058646039108519177514574780750979730285832280697367376954163041321720619566096145986135728217728841150634131680377455201136753524111481363755724340079123964890259709488104584041741005909692543015685321757788790371666210774624953795657004059247298011123278846116055942241879435056199421539067740877721750547773610875690850103873411521568239134763415537264729900061325517006647690964081799320814805903282615732444110953453077318775295071821184442520143658369972621967263257769153128755773082400820797614025503279035989408891929719662335663687289958434765157304734559893240921696727109374247229087524445775758908790168062360495432811374561157968427233719951281451548772592230238212400558936732970734754339056562782583778607577974541482638834000845244592634273493633278834383336370624785704444273355612288267028113635323085610862227910153736442086336375366863170157328326635088212672929900749514440646973377268302597433197837004376288095727361875472875901166728928678002329077883102800164187766503730293475142754707196691031652409647626455332683855672824879065407361397701433747081738394280246990815079050781068205156943857797620714866715927146916733795416921687270569552958070398147782192532762729655286118974648822322311893479731627954909013639290804587251962756204581873041677366018932142417646945664951357527753506926349135530821418489405318671638743362874456144797747130407506907205385661997027068806999519548804957702607309956494254410572044008066161375710149845089158905741292028318309488011642182903241302789275411034428319198270921450775565635876160771469750480636548104204493922998514081499702882545510447903876936670733477235695385415252343386379946625397284830918515056232352864804651928974275164802979455959258631183019085557276773567318962396602869131673111338041959497761013390905022146472346290771509817871388803321980132062533456211804557411794500968691895439476435900463270874621774109681772996818895489909639067656714722397754148563016825305528594592306255718099612959445722737554006462233716655736956908876772236961793178357742588763543953685940758029335623216788131833772981895223941958646291782212956321865402632084704453774800247037609523380923478677943383501512872258140561615662989606868930060611406685070544608255473824493018490407502676193204823480106193631213636848065592857275062770177992266093012249917018378981766563073912179841978439094736974625488820826706252846304751328693093351561042452116061096715148979518985765960293316946492180312347674329931979724634834155939970514445103015765639274920335461457733057369468374118333114694077384409933475147591896840053121508307605870815259239117614411136062387546867192130390066883163093987397307344261837323921544101983657674674251570679069550020743258340623354471545646353246246029197358098194966253798870275342327857379053165481004498483150346690903016163417523029263365549563158622062964706781730538194753977639003742322264645459799647789576273250129837599250422412598033716277388364742762766485976033821565844358582752114517247083340278007595449324177734574050052325253685667799358037778034450940414583134666368460706087023736290285540795074617420404698986376852971034246287111508956329913236940051264829081863095299150484952024438787470777959412609912497532199651266173313368077663936065034601329764290891544004679336118397282468602812334970193509942153888946763437308968070159992667862323332895170819884162598380039750960234871384838202462034310391642945629832939139722202451434957303227769432458429919477404414587443603265856893784163559860263363440554869132242923693448068294978263358814361066898154765599312064220875941140745322210436263528060575271722009069451631655596147007183240962670816884293708789799650050186921928976154626639606049087402272043607167487495395352409021816936346203969295587099582876581370268984495285672312281852599204837807594874027393978846056603624415322957195404228692758584903226160680767839056619699055371267152939862012031162458943245417259977074138482910147723173234531794390901772729301643514470871974251601463062033708935310489239644337582743182322121495831050787428568050095616730249538500791077938540885694260174822669201196149822682586149981462311711181689015713889319713582274275818144605126691565364649338373100748902014485289303033540191535658274759090770921027653951221613612099515062477853799931895816476863988551306632209331620388795838033365833224791933403787254196753634619374501638546895069618158130425403248595800322686720618447250614979933475384828576114067053916489836138599127726415235522516275825134596250180265584703516122541893030567878197197317885077964348252350608279869202757437932013379120411657014710295770126420353267062460236067342796995396458694259069290281113145411002469995842801655036577391959435011710102945032523639484748338658870241732621788110387438107724162477537052979736857822502063203206449251818844852156174807211216324661920221030786694190540259698707374496158136415428045288849102098754159649973838969938214387700135759618672867217276360512438961218295546139226876257920433053805178045109765094500003323967292719309992232750954806617693184775418718555282340378780812279359712864536142327782529767946907804963548828218318011725976139512596006976985632216020372859102637235053450534371257855973536798668888522119882552888160813085111580359311206626577339891367143685621180317839212912984942054232466077226610139575906706319364561171216991433791747778792890745140625549637972811071879959397927255895706913221758004919187114375249383928050261652551887236825676241541319387735022193928642043412756625913826812337059303927801778151435182238101582000869250107339183003896518139270692507896987199034534722145374255528987877171779605817928602317330452981706774284097989282833714595880117334013684450275278671101773691278286518197917425435048204199845008414924959484775744094415423453798414000891278850841566023616812181396655678264486115622681712659255610151582122301308304983854168377131942983439587856418368368445424845219674941516226724527348335294707768915469260941462312413695162579233049423184654827062835776317288826808996420171406264215600560632076750593953110159014703289913678346373344025175716659336049703232044551855286341459270237195348915583943640332493454462862516318268358746874714098670791563613220325561043708602653337742630231732657516502655525275317520854800697481017011566460499863333350761380216617120507356780418636751576123162191818197426853004657384366145798025300716026952725564082622394051368715055909538742193427990637573806147462682669450608824804696557266595111786878822705620683479096323631847394606006816418558848410788377590849335192050457292795395885567376814722472009334838747190595927274832640719396559698545989867976782644256390116793918718074023654668692858172718570162201722986436951042516537327647419136754838235522139737179823551485104871331562956898121557213976414155689481532529793468989963173184530515850091828261859735789393631073172511371091925001861897803205101049241878753307068098033549331564662725633006776599817438081374478270202548745992679443525528610163744832752476657267001432257853629177593437117139944476325541464842150747727474079728284790401998883011076459793309499964087973329879038616358048127928383572731588207233321246443809388312932128620940814080153234287461426255295128517026995805984135601679006281794453112231372615974646540940288701911950127663560422264826104871672696262780750280926079561498958459900960745958275678364296136853019717371686505714019543507956439357522625138226057350984561914935940089991751859695333140992043913052288587000024468501696695569074429282471620683519217420844247240137324758206935544051848170229218965770813859189325050681801862846335232566591729000821873091606352114356729300440311166290447584790399123467706570514972715641505511945320178546285963863543810021773610872819532784278803770682071138468434670265884636617491822336708424876968376017264492659263074828076568687978154299091230086929101089936523775433218504798925347616080515892133461580591292550284258683148308030952653540944739176325663100164864754698259531399995023032393134941529641967208348991492610420371757732827375035844447217788571860287349014113546114509000775946577327357697307160113959933517145549074596905277111059803910429401270989068001637111798018788068122274325818178123867579786344906644755983080482026183296281632750879506223073571769467007631859284787815051375688058817308293891347030509721119175452720018022539629539420826765251872674753043663967053709203732522005846335104451050747935329498325772099850746846327195041164926388542425297003329923136749962567448572723110692994243399294562455239984012169111251335918054304190615999660248066750748387674459501492832545681623200691060158316093305700161647323904789558880611002708937831558511930913991644811689603783779494165739762727532170947685276169560310742739017345960468468735318660842527692294362741203486326031733911106906262436582332679602170766560303596110707629517313996906140961815011654682579080353878816663260821238463371177766299246382230115959129230070957138475179259160057592641269275748479405520387175924235549718948025340962668657902444995211944795017027332790344635580981382830137154514739161209667313618704838721021635339451880203131398955741020302013328792824173399007790129666776528300187826665950713599823877260882122666675811502441823072796536768569286222135946163379180466424048612129265147488467303867508876699787229484429313876806257552024805963088759434316260708045275584011969659783933099247070462676908502770980517762862334778475427918260058267848046775351324611324312170807279246666889096624996607268938161764606416183400314971201269429329858022962963564923122644481780209162698261490438526027220027484140937073056390762722072562036031659868420354178666465568990554534657568900368010683147279021620456590216965196495094912846084776850170861193248163350343709041907092073372666663943365026412615970015936261601298810916774644308299335564789260631608631403163657382304228847680902762552453836796022908088038905542635533004788158523868764357165574644142861150293446819977691387366698838242221973611654875424083659698634410933317555112068283274377523239274333883467023456825496814920592728400323408437337745894561911987745939415308576641721950329919739658425993912841130121376051746893183795171499366819686329117454836067766718193108530446387318429584968089223434040854431225505229044310869417552082188070346058397189027655741263846298663788577811092559431031573304030747867085978144381940725444091596511918580890539654443195398696353067758294636260469662424398192530676423939304356762156614299428739620142881070676916169870085150538209544502694938775113845054325068153802816706074163057349445143986765433891565744618691692408901677252360112978741369662158077176611031009658125536100489013358797576806469059714489790629326537229487635730854638502773725419770840159541819704494281403860590244265526695361756130824494442560849535300734189216783246951744900846967235064024895636685264002805835792516564696659160088578713730689873350568449363952722852140927570048708346147446659284226655563778696452847887641963916323220482074063466146011209232271450904613174438094090947230664938877091556721353961272343642009558855080384464612017280521489964650886147755178626101256910767708459362674449126285555289625012936845239423725034241279309534652857460437719947049016401028837904236304832434311677798556746069271514495178192197321240607116460129525793975772098244776644729796717268692220074435453652077571250018294019638630936452050152940587067348941064718966502190615265405298509036971385426935449080991468103334216679941522038721019149305147362064308012724901108844556913850029630398584113208293866899805029669387417160587184321329779094901094805855774278937712397786426015015122301722503508063678950223296795440086340445017918615507419985838025578716208872242718610934629031149179971831661761026936123002056871281993799762621732763559704802616239615878669820823489110540642554192685032810650982048088828970729587783192164841614023156240280155639821944929084953511298747532457075065991255455995801361441984509834859574396087942387349390960200102062803077040375112268493422580118530544362493226594181772368069395510720087788001125172322399900616804657276091302356121216505219009276794310882819460852832257388620575045138406504904135325097981643678110101636362958049439537923526060775796695478345040641555840761076700300196366077174852849565005191780203945482159591724944235844818153314610783656670598765900195119589740297968548849956802453109032123771070673314202849592838807338958376752053912165923260674557468056090479862960493224633976200864937880977743332988636705092695847867902554613843959032890533839368122739167555405383819612114139348884096171327707276255774628231095941082288774904915732749037569735459169867110490809921856898156875314392363860202430814704285582726240397217158195938403015295465517347169835888063994462098053969736680227688444139853896963716184195292615782668972718711429654770174124380634435428253472971572206329316500348898904206152796200817217766642947416747561623091101315856133580309470616151957837642297955046603259479651119470229586683426412420276128840697520877334861233690897238717992110862101671837920431014320785802598343603882054906605308319416495736299240715539370805309726305810812329541261059330695881030856469715281560345648048090402343583815836732302113116583706887520525065428034516874828017640251414097566833937588358931949645989854544214593571362050688167941311749594600608036776507130373658451700605578951217980645412631391776088246309811282821075344444979969452911413127229714178380622656599984423485117690238348474719427813763974376914819543756592870485871235200236101746059401025284718903799763344494558023227997802485934979384737022575380774241741604229480769915588731473724382626069829990357606731971957117248530199192015593211769664527553315264145517519109442419086050734992085853972975930927408931672582851330320479307897281563164008645427189078391965487230927716140277563219440713746544503305917203503945282027338571326940998758903400463398470295231220864571876832228505443925122648983505039738350495449186677359720415883329307028125899163464530304421250173934644693769636413312490175418793145085234749061198662141463665743697745655885896991911109031865663180868340136841472229287602703426279030367709735815016516721720265110337782833157107470344164057198975158198858522916612101397089464469351607860276035624355412783322663893644411905392830726413528709046483567970851599613829495077918775673384383900256029712152335983367493339452708453669231947361438631492347135148337602773783112109511735202242060219944111751438245719727847459494180386379225694836919084427345690597952220897127182542910513307233674494710975077810459030290405102016188245009717853437834466660014665580253941204712250469864820220344265731283323604195914943702507159299213320369492889315356377562815788928310012237675130728341092487043801255604813703143713491845699366467221193832723919094586416318684991601940602365594277043171529692316572858217850707096255012555516716376291189409565494703211408640964328790534595137138914832026367435212060145330875585836733771444184203511174253868355043177494538124218819248866060368006642236391227781965597681654361959195851430261343804312161778881191314391909301111649231498032893141903334850236205044750179041498661742920292512138010091888636307684852406287563950327634183343770250594855665651305169368554456349134464767131408386552962399107756653952153981263443154303637786698211255535708728485886103428877303105627255304471055026687147397453558064335591176682652540906237698877737468551087501769525471598513066715005404367415670676267967378247824080579757067968975582762052354910234607001494122569547875336617664614364437391787999291650001458944440575929036946964115028869741504253864374243854362808986397552840298724809754055500119532779881900022029877371612791883450970992250823166094130412646046511848862445639323570384177495519612030143922427728489976057812726237315403707618219453595667566969496190031738111644961054325809742129713884749420932138503361908929288364015877506247369889474328626165406964291721811166099490164604941341959296302986651730947335523099250756738557609591024316055756115767871208594734267825821672099658109193989155251807278880776401145259333261440354483892369362822326532155727357491225834442743187188637504490471282847920150048375585863520909660879006670364274517986252486630757295551380663361773547524968931986464012174343183875370730072967641581485527369140160724886130259651449191554217948205149516638166345774148620192935678793685513138413923288468053728307861692075719041535120012231484560011712373748599957085388883265033468604794499283805789167901718426710913926831066549628261942709815611036319183532699721449446846125691841225970850608401218626493180684717974299844264153561562249010667879968586535429753887185704332102438669160260361375936144029843810936539143192421561935317668968323936238203833019335359479886611003034262511153481759013298982072711094627383993278704679887378217402979158635442912081627897724249764839246332284559012226123185616125451701058058948632231045090003991557344236904377033347598554834037559473775857961065567702307865161207055984779365645807297903427280736850815277215149584982390736381072583818389031913889043880040760654648690191932788979989798344795360259868155237648765082830855893912026091371644229740222563055437398326029344901093319557773860965130390203914970585139181960312429976404699179984886347854354355709878745360463886515397821332489639141695478800128744772406736786428668473078973471091227094808263336496754780901109618059361770183480263077559659525706428815146310654712938881691446019438645119548820111768287277389156007887116625250752956821694238419478663568051569214281237439370742721026568544037384455386328662020746588668023679596404079890215853288770187794591833267777912470159572216568368429670236043095988282501610515184120085700366604484536240400634479563208181323156880384490749429731324392469792569683364977980364294463541312921397605574932346602600021814880436454800013418124468653799864252198296625613103798655695809569960503486148295034929032284259410128489701083086860095772761307779685126102776621739639981787645826138797403975021549866812062069870081705292473349568657155310295561323304578298377900875692205056578699836982277503466511432628231568712677290886614471777501792700911996713350209498687683114920741232281591276102562167693811998724010510479532857308194758974781577518564709388726898342994377951636994240310799610911936999150080492339944292358077668976352924852941780493289717115921996738786345011648844826838555010060662581161572426228914696404880780733319857447216967403113942233450609863291131283282087472193241185536181236500787229248795215502201324875365680448273217034081242831456603601741781377365650294262245153540128696727128835291777341799243556182082662105459856870323762848800274435321724233148533759222730551465466427416507670946912950746917755826288792940751933252363224554541914949057792103911376081478513494428871894345014466266934870252758505639330796313616444394525387862591514097900245232015178382452994631764932562755034421660837778095041492537038642315472163633933685162111220327442286177212287225011118315537333237951556433609771506619841832725409409821679179094313657756680175697967337824599041777983308748572228067395996271489731591856714076298304250922155092772961788353061915725134115604259981315068627786487545590482319429343440061215198866728373967471747126911995354240031666918703228544492500329195851165668744186639475906763348124140261879244912967020041855447087127423400273524242926982046017315026103500870466556497359934233894086172430592862616809065310044869069551641567464727067341544473336082686610871625587350273397633650928402907979736911606986856997869962697634108662604175032889127924069404321447694847365855067803164413952132989757073640854143003854104085187262340930442764518179651267271200098593470778957893694514897386670198066199191509503952672251590475637574847772462490138614286321634484264631064082515291632650065126467285800670052491804674925158328759219704513043746474081871398043877881818720181909598827219004617502752962951241274751735921144280750336338761690683634475258370133983068444672715238427670354592347985605278027234319729666200839719618501221815650464367826317084744291587421953123953604286964149831727893993151689951626869085087789985658527698286263745544802133144193344404025113907521839329503866188988904386229273557531763486787097158275252613111767054278973038303988858439666700906795487311492624687691103030976004224223145821924798595874731284572912999078504425649320067744287943946507629803945409406229769156018749615824597272250605600612842968551528447455239405820772181367790827846167143255506156285176692584187705807300211733797540040310572415061109869834004337617961803581601399192567738250853183539507465076449026840199125367101088594021819253195123065709074244973442797630193508803380580777078146103309142160022526131950077557417456819380904023306287333631128117179473105288363585550465513549733195570878949407683719075973493141542107455130166746646758011924225127797748852919240470747659818275762996186427864835814600648511344083127280529987066966512394039245356336434286255698630152880339239827834743843233933100059834685771204799864988389417253798889883548615700816077125113636587925133748195061628817642043452353745312303640159198028084639160037160192527930976315737042455557394355492163004147279508703142065329764497687931726152333487984338853922435035946601032731524908195437418831853984429036440971279071506814926786065324698527541029850460168701200163492967117882212594148112670149032215500196715461491125065819493591045390803146080915537903386471535596271032384498891330034211447061765206494611585873793769736400039003391776503996563207476891108020389069203997634073794598964666882090140543032289009299010404406107938211301109333399078322888605357677672136190585566170576109947181832004384226091861133723236685340581249686506816822713037999694281256696586452756769748932589739186777848964779724855806079547659868490735905448103953095821633059768113726058248423237254023590836393559537022550400251664500732986438254346478833205703011093218464420524507931650489249352051877140537886740347061032788812292659768800818564702261247682808428688959537977401344159253880828198371721980567525932543582278909877957353526995735303631688901751890999589613996752969789393844465957092464765340902490044345958440879698399714947134062548446157705109359673936518227031953089031208747202543082453341882968353929869998851354134263032760710336199155307611989459123092049310781408659763958421113421551042238388942090509445126160475435749584197811060782919088940659986224227204929843320817801784543383823784981820610598194500908044744985764639650922750149764154892495418850983999548664983711865948051862360177962165265513695027708259021760356816003767880625888406577029813907810761757556935711166530391463364458942436869299114915797485606200154032442335563335685766277522092809328898927346162281590156067855322562880891917858562568752064870249176108333146503329678872226675710407902172946876845018188795157649609120730962004305706667236755725615487992877945196590419547455360199617844784188935874763472752326304233809272441520715103303272732282022715156905050462948303744435817385850327156491922472883106275206132645605614772659134088699858022292183389749798907128679973063610665946370016168617092524358395724635686858438405678164601880555935765376387061119873277940113223037875131970731385492866392180175014519071126405526180146199173818292784008542299994857876373617268947614150513102121806929420429815362339064452032136499716892876653075776865010939305936636136195173656279334937357995109017192942250962187659938335123622137030706429784402082348022795196620670473957675163776064522292697652652140213408981497752270019470082634771982257785829063636549333111353972365095158137942181211837214381424145458921073128577901639504812510909010815644390054213180789343474248195185692608255587526629162725243828191948774031504295023352869384225509995047850709670404198484843685399778255478991101587639527987966387510190321364530251783462553973368248393590860755962040543564227728789706079783076207636530370717337657885484535741197693933996452085079903120310283497978310550353007969359541110744750013257182017283863549909178635768170117395409453778352672450812330405112912660297350096956879859482426259958793753733410142237700439482705359578833528877345667156965166394106336277856525591378102138927854359201122938439764282715254848694390187703751539339868821159481518822142902178448681468577250356587866923839024957213508161840533735552986361585836622617820688898243276241320392434283448976995229065360114853304733964146632340243796053388547801171136290397732748182887063912181440981081878291800801549877326703959882465445777059452263901936469914643806390032671223046499579976991510654977596677398398304273629192722653937067442588337747129220655742028333210849017547639044135032764189136311871416545752980381646417209191127380682471146285240917551174462723044446088165550433182619113813433994819648776543181656314371091376079836967528393225780133307685747004971066199932411215181024971404642201781021618946914651059563878233135048198483228560425755006340812798663021490109526907692877050757856772283367632519913965855328048099212805695025259121843674732095924741395827443207600619744556448477494759428747740523654838595618391099066236701362697826843283208008153592541573925501642769934919994487513164797998895982105119405691546770997386355808351534374345634828610397286355260302077980907326509682408038393807408487112254063347882443530182980033971032769226092029798107498552025220180345751277169250635591985872943439604754720760752844859932557221791733994301621337582169756602949933562888627807037852481895190891068495042690267470701345057229187241684271282272292752061341690303768560857759524033497593759074556350118497353293127969775966762197299991274799425948836903313635570189401170790558477302098641624978473868069610448216387819798928566419348419710714728104679846060472831430999064464283139351339800140585986343904435963691898077090244013720367902471852457028539195307227003473379138216676092151786584236742394940217230025889829973775101946157940832422593336828605618505282051151318727234502882073431754090404581403513022276683838273918149774462549497008031830802957256656175767658297799330315110163804399849756346782561018859017370625246290308025312244091852235095450305367680211521169539144954096284729101699455136633347660150632119370685436110727809195551512203394813173570241512018085687471344990975752003839567013284193279920625058925258109895257340670098800887354049042816602208493765448232095425024190435695154098167734481960916104067005716015558168849107669342710041132170452178268092704954264036609602849608381164148408504888182056118389784669633600763642699491848384360161100244692226382828143560233672599508895272514279431566860930538716637607288763335504530831989849057153403019788634645116710545923377292122758364093249975855335837325795148350834783558474236931246254475211898365621670064366993968808682629791421470925672417941792294023774638505326629080320605640481315504881106769398409608454681867182246458394534004472572071465225181199361871382439056895903734505911335584223756899221448382583929334560983282634759927270834719455320454822691443468740374148375004348943345155073707225699920778671752952108815888188985199305453860268144216664480997461244766830875537297726062209862093909594464568183609998702161981770353321830520232655911664454711879727145567392079796328543913451185536403066276454744079622392177193463641607657253862130606464329352902514154534736859216974332858575939028813601934783130718037432081715705758007548618593804038609522834168960681669937189327045486554611434053683370543451987842132413636736766348799077391928898859143906634728323056735490129493125013140974375312548681898475589222783557838956687406160563892184020346209214332226067129117771708464862550548124719304446083575975053674554347656379690437942008391846147118717165048955056681029153314785978304093317865185893316927082126272816877869403841556123943832876610000988938709315664851756368064009476583803747051089397822173867157042698300457890160905200324023115749397962610690712098198117028766685799199045289344229759611206491715737790377254689792212085085015648298898908632044106116628107159271384824880285535309334222178213238064282976963870986557158223541842097851137845580396330526986452792106047471810252756482471163587419380748492858251269585253576377145188033630432153467984892875994386158148809013915814329568555528016177166381067863737412177489164368470133279767889820086678587450401138633987527725410002175645056338043637581413024603809240293075388064679794417281876820324200183103148338000240732691725915761856607316535507859469608214178309371416081394619493916806970884102395214546424115123725947251697612943367919511770833617363799368861418186436932257431335350988143441743560997911618935113579770437971433399303271450212579367013888584251705029318069744003725681570922857096205238083456113985857256068170594275915407332185299174057494412104458169562992612359222303513283569236065805736384067134891809721427657540112007572952002270454826882703454860363017127195678506600754343351346608433123561569518997932394804664493993166864394711866244739350406650877503980270570869489386182643754695464595195334526782909382339487735769660779190618387972400088888319988054498931869264083258084239699559622784246989292266203109802236963402470166582786609778592163325557545544544695511272931088448909757401762806399985871654292867534011388539743623900647493911629452458538342601133712739443017524179584014015415182698359777525438625207435607538194255793878295706166610390600472125118662595258647979378721864460169578000722387687651195249355309449782644014872637915850426028893358409684494913256935765751987706843279427227818585945851086641619281897513899209130216737030476356923738257553022391071091726346614323285259809613816579315637378939531924288632205072642577225029173280256214265892173745016911966802969382170892709733044861372174887523779778097891655781133298058396957754266490965110100369756010647026743442145173388299286549900098388869525710841035510288245337206524229670962589201255867696848038646811987199631944090010309306986031865190867016936041189149586693008956779899611623798960808854719186955664964517375113843699210256840800860273803248272383221414982906428396076537845490648172126003492438720063898687258160774533829231960420119777768956921095693983339291398464289235978370961960608167200661670300415393961176588219066794247458725236532205229924025042945633815575294890455590220755742365119664798167743283068829918850272032555116053096546145111823398250752109298157756554223869928306404893373321235398574504500973310646743565439589197687823886297237402357291751104205132031367219891091726845779676890481800592661216362420838299001796945235514514830464296417433868687146008981241921576116128811749793563479391772407399196990943181079791732913719955208021177872654972350567435293935007875046005987231180767241259188613307309422200681688498420567032208726543685495277131781063471754100869472446247416693804614759960685899949109124053939502178108083185141020442236778680509042956076837659720782548980490878016810293411967348117219102461961541340770593092904904564703735150323083539634040189904103225410206617260489650454951859384921146507403522071154538035594093517289122772992699238979392368311515589915279384880932648153226847474085458862846524682405254437329423433144532415528150508072844057127298084254769413937655094371244685163920039024063266294133159126625680253184767982274505134174626133389191466464860483233922023434521096840070010210429690440541880084236379947244662511069938600573749574318000805151545238874751329549407445518011911796538911715154709685536450906709988215395257838334669936883393821501817146244326689402322396182547830019152220918436267473766194361703191862934299621925606658873157554696169227249772804715524283722333967826915610626164276091337798589513822315295860405244066533886006093621275541307221158236642471679548602401762659111043184488703897851052290565196537974219562016385310060173560461277136292838916854120401584297028469410309736865986856589686085253787575639116197836097764896400084157577207935087586238307417268534393397342246665096046691556960263950352094312737579144302514272758212290564104202469809255723415589852387209817989957094550647526329092558896111546931407717472984202871711451506986998253878819323252194968151023811312402809834657933522487053743075593318275351161205729742396016782615268926313062196396477571804726947350724462008387005988852368433081996104762881557897269683324190493454795239120021664108355531310469699887878889944103530380370678254889688413449530923148291675757784987543396170241027296749788438903676348227773875856714667728755528421147671724234259499248401787459405489867472616087767243902863255652603266190644061335247854814647994301637554366182819898856185763938493735879394238228539633671701868244721605206250791778545163857520938556645993234857720300975194407602984554626516475417360568410321201638109278853393828421225298891138551132256517015889138450262350477538303783636178810508430686130736274136218282052347258180379613149569460560796755730384612504263002506616225620952856125081314412693306058481421425166856623677983970452655808288662253744077140858072239410581893406094510073452394632755966835426467308400843954025237834069503286584788395042651628282510447955113668644948058497395133848926586392200534684012947334063664436103750530033823908412711833637873605101046769525840282636522933431224881857076294075756530388656460389608720724840755186857289058484158557249892743935238857128305628659257663402472297904528099997882057701656345981768040014353675811078123602273600231755772748463217382786553764427988512043049270071320724091803987395030119675351413255401999555526164433690700580657220039144084407289835837385736567303065264053302207779866361293248106744840847233504275388500743597265721129463365779444532130129363619741153345173728947183656275904764796557290180427852610673195520199499179226920553783617246712849607524724945993204062991473523713335952299785910101730712870751331298569777931298990896180261612349417160044462185809705010316633346770613161789149427246344513320073758004696412142191166165106113014429640868320949046586952840871807586613170095556267973140100153698247311781423214156835508944116818522572089736062082816119542069141705350218075626672924288631318146125257874067783293142266225258795301065661896100900280498978672639235122585348856288108909307408148158137003829502620600663154665908181789485333515425155461418965775499597039275020393906592979630226938702778028393002983658553406323722887786258548651207812634781830121882219927423303473334501445721974324266575536927805526724681857572832899316302110065341116155809264452670256108483095824718165790522834931993322084048840688191095437848656610939627532463732337306854944851509400713981565445378944399816074807858886993105924253192255201711884354209362743066922980207188443436496437766158252109628637574865400292976232193478742073054750003820107790141314568646078053206925971883516596208762653670741844738343577311539722517474851892153046012673851524703700764838582972087177780785210620665024948170254464670052903605576503104780531530771449463164681919058201310820043018332640558571815876535464430166033559392746155920959393481935855750870253484695017479527451660150312085929581420513944900531978883028010153336534575584090962832481534903929390875706446941966771819607204401095374577457958924888741124406169216922678713263255905142685043765350999589502047702272969068602931307682933166271877015814614584255322346994095913061028296835461351900132335044118135599789505820159548625042976397386355866520572914122152601389988098970200077166727413174251690968384110955557165879917386264488819653683477947102537655733493934680215882063919408005675841458365472112010573594530761792264201655446162950780218186052287563439859941351768437850654233794004761838178825366920316971295272908103156275658178257151866037873904575164082893185219197035612130366063986850222789605541149421092397355737543892858248596046691814766077152095567688050013937466606167984032563726085627264481374235019058953564668420019313553927710749984588697180779647712918217993285300757740484913993175136885227001495761641472964194245832803328612002920895045272312889406441690930095205837782075302731478949290731719733051958632254786102327962618005726422426977869086866906814456592589846046025216832043299493513392632437243546383107803719673923988751464828124460860134153625648903207289009386274313503452027679132198164408118875279738121008173856289521183764622888825781992718290845447482021544611683552825495229806489596919481997761787466292057943215250089114276467140628175940511049480682685870613378960275230544574840616973599775203007014501575699664224613628985458690759729128239243407931887068221657077630453407025320762081681328374829377989327403760346300146970549047364446989813304641990471029173255850937266874952132856413421157420660453731355140682016143828796738287107496980541247285765465516365162594446111473110696204594438290539504832676678913114412483599274081981634306404521290695182043036089546634850470037954160712000355014107200650600916960370180662465683717611954428072983674588361067155705231771701702266150216797122921364374093505815748911981089719946426253413032319794765407657664001656944253001726388315645475785945392835030194363873335085297439067448920815587190505511885055796129641009213136818940129661871310023104703403100908713573124471760603132522796874808944544678037592542098125135866119989636647930082940770936013370332301390415174638731331614757122994493758556318322777368548329819912364990079200127637511458578963968348146860972261024622176172151687850298674963025097036856620865966430218198108857626786905739208858898067145858283093121568272626208612000788457165705787858971481596358710543461006649009014916124866499177359913203800636536506022354789325196610526943382108276859356178588237243911244178337565669474077925971698960234263583190946046809977301013725952768872214103523283078026256176010329253789446892963278279592236895181776574943621768317121251721135884171187886916186465637194791421144840667591319333077190735913051350052323914815547816051033137026634639579951410803766833032001728151850378104743382700266684907900884651667549279128029023555407489968735746915346174172548147569955446835199960942601780792341159143396007549681563169095964207915740212681947791100689165785471459102920832634598620302562306873856248770757268944039434558644900743159441453896089722791983918334851120747436443683127162991229624784262801292110665673031338876937897678884633366101634819351614216565553577061619564082180949254042867617509261585501704055474733626413904328807641629650062683787267927367574628791079814582391710194509585602961838906651674428266626744178580910436491196129699726661418781671185716763155361090910143243967938534099014871530293183721543464264417616665962341973299485183326399517511202454073739662054606595446622536482535051253257874508638263557252446204630197383056150698129371498772429872216235614663960792532095471574160821686760280628547970356014395416199840663137895641857132335248416520260886934386749640528887275555832854825368789209073976488410472164696282365732691858282233581109925777394110734388864096272874258225186767911983708396260484308644679131105486518290010733557048210660409525068084231226443518558402643548503136341775173754271759039367878275122007222068447513920963191278835506205670163162821710302916004989652596234405532856177807204887420482545089623768783417601791752740119886199134789079574381321454686574311206558487752632131719054960908909901114878872713275501632022583947250431548428169258180987623370454858235935724666998116497466525550009775824283103136815900591659363570284585783980179991516672184322622797970446536731629314745312245205206780290233345266400436045278192633290128513828283600241796591271307444001452818877355152198174854620499367845243543025110224938691340085303546762409804320968744614299176432287983145539755026251998283868758253714544303098819548996629759852833953916488533316634623750784324445919508648746266136868169520187746283045711202925529040945341395274718742731715141877844525108140544030044715364646281242874262816133817324959050655946687468020291918857703485337367267928482161441063258491790963166467171064010281477372074916372148728956183569536947051520882506089662322964663121669023228581640305521918644427491389622640483160896763463388837199397806881969494920278841654954686765244491238408447147020799811325063295836715314111232791517565866057468087220412373790092113667219365670468887104931015518121105422477358929054498460530816105575818759047378484717278662590961800025141593237482679686370576216809434387300763410113152358943342858375419828615337659651691240705361415949972141918007661390055750620548444635223765261681662534721934021168024957570434675724581430811065923650012169359290980628929373825315648934269183104143373775249856473929469136415744634280895644273837532259704038038688460474184949209173742692767725235045259819171820111498486374522084781519061844229664803062237138033696514609604430092739816230763615624999605084529499594251292145786129701705393197430080784653999796688194553526818254937804799344817621108415537561299997264709227442423121450865715320447057906624655332298346729342238864537353363481221994925547306861572130192106258629237240144078001882148657486830059299090483749943430720606994453013913625853181326189682803798430948261212975396957702040097342270150081695939587232850079530219484341098309604028379548020433590323238036979724068040400644300008917040958110545592770877775682867925993475849114239041929646945153049988041422317126686141060804025117926831630032660699311210507151552111153697196303595198369974959350886084140308227301816454933382478270205998465226435701058304873464326506920887168580637520727789928731194633695703712096960746320565069333409195092624226418116880036697901328371139714416535834743253584316550537899309647953846151881031212280142439647627203671526279907690635918923910124041037925002532023812047156143631774277547853925482789061613681293708115075005527925832587658585903442209162372129266143997468398861108939940503391840914045776612278667332305867797153588247026801494709412133585054039147172099246411970238608949148337080943288929505940693149641183275493931481000474075942746760030378588393917304676925512978763777794520935601378364987974671011828553910245883496735093547026348840692091059790644997496225898372811817619994035457274652273919392566901186461291329218670657884059625563258332220517197588831445275454813806271786073379194728068572207919469985952316830988057238698341240175640980372739938941162933834845233225303578880719279825461474651334268902565136825982913988214767696382683327970694591997953387833377457137575167705623344074484001902003931810212004334651489384384660003708754933003511616627819753998210105116550903250507306113204367964432299739450334511907226876655922234839032858890820236715364807405559735468671191214963500814376948420333515139101485498679662362703334847552664583713287980383402096125472865524756172723575340877538961662443079292663794658167162796393635551706886273991485376876485273414848680644980761234034810812538739365952544285050508428944948533545474758372468833486554317921386998050582305487050143113265455534201464219791287921146276293363148989220109674801363546223546152692136411287378824264304105489749801847252386254360140906969683903949451152714067454238815554673995307842153076185807495168531337509697861467563225675066640241878756946318574875915923910705769227354619880919871695245869205794285005007481444609368949077278551960033527094189073499119975312176045489025830328402748209062227280668868903653295783724973135410032937547927687163785335341655466768595049507227441537667441874510148051086332220101682791115122425528418916509109455986731068658677335141544769724491670689597056458157571644173141811738406719320757111923029825554833082985162663176892893700504362068296280074370672722107237433675662107340091657127864326972446009840717178399537890307185185750793895801586192373096623472920076025415439847562202662595008000396175151312681713180282597703974528409521375517547191608607346783486034870501111383313682145295596612429041440370402814323924117642312157773926500752547713374103125547937616937696158893760592326567783990593308675453446462531009088742836892774950685354968990159327909111614177548822063649808185308946479134699044502569179216439354983998532863833984218420030459615282255280366689256742327086372192793239608952489784976420992902841463739071074010518489810368371195461729854044303171692615450132155489234014774369556604698411700393105577806717153747232399842760053278478174770325519346408833643094233150278808824809850416952739830265485875163458926516469098821773739696124790905115531342859550872580929241068011430776926936486773564159878973879209475996952719062424086059380700035422141862126462003233273844899907448487319912548703603478952998241589660624444764716920581536241279574481840523636306094094227581323249079147707023766779051285765441953173604245177405828199385581752746384564662555801710901596702435911414872010778206735235380304526951944712289615444565261303092580707176716340231930926529046384946849848555910306756331296249161135868105944675143686842486993110762699266652239817047135344765198273207768940582476067513803971255241520314763723928516824028843208852558215542371814340972869133320978852218662856894015963601504139544419597700078829375673331014971265278797088035808487020157211526992452631107577739599591016596346339197016270482325571129511520572735634047718864597544947924337285187982242960775765396894624594882284086986517764929167776065082561590636421290468087432841183538088161454284034167384143080888667423977316878503692587464226140441608660587226553289479281991430999294241971141461507607776769661530762931437402738145469852495367519934907532524153683983211947179916592393774093069920322103073994702224615542056223530179584872826946889756805894396388427291593052158517112578335973252300694254592254315065131869094837399565345405108405246255802829507784208855768183540001038943660960419972677369404817129689676561015396574886050856643489690276342076618382827731987976987252852903556062300550852675628567534172602572395409115003223236178567186423692565999527264043088670548325859548564735656164305651451802327538088682851062726241026489335416718595436927220290550895953714700909971979635797953289091555249246269459378212059784889006797132379223233579903972567109901870456993533467526931386303400379437564214965888645816371823392437265320536319674586050096117283726441467593286003845119574139091880266935615980204679276250290676683935225224021832090292827626512732026732656358108292852509505850501623646582193011164167041144479160203562411123106117871809518625461669153296469631101335968358297984866704710247963761008343864126396408795687261270304996009526948078644246453066967525508416547192239652261393606436994786149962291012152882332417169181643828617197165375624320501289730831919947319639361009258618383140975320770318474754963282196426080340770676861690008620196703419287850126957503050842199628215552896476340717901947607307400724219847806845666667572814452544851331157514896345177144691346897794096401277168741590433257893765647933380393994042020689844314883296013823713061124454540488958313379825695212582199323759441348502805824662549746095298092529544973684908682884041239323768997446876157182878044673883866292991485336547896227004040595690146621108025526172460218668923629846160961268937679458862636122816610109905252855061597279651324710337862187483562870864023123230449217715786268770295890768804595090482852529228989856042494155335881302619398374099210553180835371372010630096328612289249024658657157191804178411688825386232339545724704680940535578125958783709977489816298394072474365038090058688545748344891783462195694876727255826540772491315076017353343786600228088446950567423342805207582362123141509344968597066897118090453046242839892537486196204134020853111371002924682547287087391150212496045030213571323413863458525095901206657744335279937110797679179321591131757221479776235151724764092615006952589589775219506390839554314614835380368427993940931020867900666954364686735697459070228495571924807576210983163631161614349544862597184977799468656347496033162946573143806911317834776242530977249200467290011211858298242181578563255814834835743464175615593843511297276416614121256842617674729772404211800065930710886447646986642472507296580663115856909238496561068452138230598724421837019248661336139973556327187114823961025693818715292231050226959712309788040387760827762416071685545494455615451288722496809057815648041648012103978374327671918628693281950002299165437941343443112685909738515044673990439619772022108378372799238542756835394780227940449213073831259257278402779244860084500270129777291036670737757413336653962284159775753569274793858126512971013372099099567971849444289833093068719409855158975503217124256541875352426980122509220592881471355115418963569024409178409736814039643670873610306602976211059775458169791925787522402366388211698765493598879191125601817609571539214155506067033188919152732015014093358636357482978806688176900305059685165944784518630417714129622267463957091266824546711753017949851312103647807654074785119988421052753303057371850634257741490133870167751356421504571843323793896315776650860395281817409537589559150622751046475961628620995423068646464645595456894581826136666993059292588990278824251475418261538102042969946631683511372253827496213858312558226892267552429034417246222986231634963323009691908229346814282417780935150776845080596171524952678503354695899341438107125655465108350984823608604564659415576137591950260295369975056666887979936782040316794713376544432502896856880838324334158400708625086699880797868886479924926421604998603461240273897120990801049909687624732061426982282134691877052200006980568661831882164478025213535974918120783387734248316438585169882899450271927796473780996848589036811234814603532437243042228655885735867728735584037402198611135176260984464303464323805560479697764614502991959680218741927961980217879876315118772813732199008658533188157196796567455485338511259083929750923982436613742114619529209356079969086922420454771062863788142023117051562455124228474779044302899595175390725594982012494987447121967234726879418378443426707928328236334674445600081338296297160723310363333333658569502572743616015147425595385067970522875762205882948212035580311003760069886802731251480013471630024439629568153597759663422830939697537825302615004768030518667514802504455479360319135398496894281188112371807152603445273029654574825491132384299829092197923683847191047324831026593370103096808766408389245668235794184498789252979129368205203437142908576759112306045685319221021912869790259621904283103249095290668862943463667635124468860110456127161425923054973390595401201434558561735793777390752414814710079207563429767714026674068138243221375147710789380795925623133182506314663611952253131946166027028228319254329828352508252137849689420575194106583210752327090187982023036331496342759693290468702183696324151186328730165944189788142574641772110573926529539640102803319681578071380007410608519086674298304798297265278795760818247019553737549836319152027573415648639181641274124569290973366246435356547508391814022165209739877979289699498182010493769165433647427490969929383805527942941100638742642674941374075563804254511181897611878582572849409921161548538822987446838446813063832984850845541618438570226952145980181665425387920012585667388008296898826777726369259793861097409969027621201608972116652918145525920008709758710712781242894907799748097082149571946411353380113814341547495674419467863040035507983423789211337404562259415509169823925994768640173883849460066155253764731152124851415527704316568090138105258705588936709467049629468998857372996009767240562857576094173619812453968361433134140301305443366379104721919008663182742798551273017009725543607435455163974471186628287081856310941139453353808983743782489775671353091840662165681903404932510982748691060266652369326330832138749553836341212990889370052139570980947577559710183371375258737600308179203376073366055780090078492938422505875864919637786567290964800349451236878546931448088952630835862678333860200559541333345133380838161693177389890319928955350214361035371892688228284523716652242063652561173235717179217971849987564918269071370243537750724851219668241176942053383307794806394099214392968423931758629515443092436125725949997547760198957157355002748966744589696381066161856011470141649806431443346041422418656065661727089868334446064066496817983183178759938931174566081100801313887517675195841571015902196760616541119992837961992992501826174263745254734273965102321755713939659144337309353721141218944923534170972259651426350837081307841130428323797808483728837607665158172863099238443470856736346632243804423925155753740281207485649302093487190604662428251398907099096804330808881456952907431442012053751742885043898780849663128415932603213261480569532954657307835860385640737606284524910790663935805425526644889214670389528730751662820927253384281065395029250203341125000809031003630313109263564054170169272353784807137023219395999409299276864964997082643808405623737281993743134560405505858125475702418965387244857572855396972759853845519752270776712466061455010912866401322602667742006299232966929467029068530804009365876766525807938694023000671371537207990160425491187553742917778056014369766653261306211088417847410541218102067645385179901344425873818578533931543176964085153980793517268393943788586542873511892753398932310090639638491934988223265956793382087299933052469670132051569827642066568332441815335407231902915669911404697177420297465923446715139973342873093604615162288253712117253003390256659737709057232786489014867726766447346265456506032756422289585771668158592794710005876099644705415410755014187665744516960474613851632843371514322349539739379687849735399188619510940472178126552711568714544039164360504777953250357901185645998648446158271269987098654706572807901422054527941204450879514237276349536365829622260949104719744652596574229168482484492075699981095095227517289285252784852741823322408986247972773777151972511966903672557819848842497133400106138912237707242583038944731067004476058395562349539616358516781199819997176526058157428884050736941982254626023412148172151703828220186585961813934631636379114103248673146316384046271682110788952026251743602015612257355719497418688171882273704846177238338588123414087231792711111602169378581885729398743046949028793484587287942460774964596798833751327159075288782603148989425317419231151011547222764289211657226995298794876565912448353278187416906967192933850963777340554189236122236930074739651701065931854942601788275875455479858952461634515524084963828824111193372405036778396972695720836573284753922455748018844987377958151142527002559853779777185320819465945894095145285260568005970925989250926674905655543172424065743645320875894559713517149350776024767889654406044741757812561750482787401278031255907930981962917921967920071210735846668853630828032685326848456987258093922945298531208312691362050408888138193610385330189603038456819918015074150328859398397046747619777457007607035977348516588662567451947673660548294243601467357248339970810782496500948163262569884339610589873259563528215240405610998961278236336453655495048591922748081642894658342064851840162734098428649376899256216464954279775857571183048965886666125021090363366348256145482152190526475288429624416306131124832062487750956336693199965369297497327284422686549847781794299879390253306830030453950201166031506766626841881727568189424101909686663734814646739100001470875488883568735489094319083409707792306446916463042579454175106717383871248688882313945197221430790405387603242471601300598721413040561792659439693522956579322990061385680280315133733340447315163117331424500452954696848418582324785672578349824293978145978222039659843638063207894170142593254465701059173708441923349734698645777177811058451827387028673174288653269595100783744458703716302428232186565802110595892567815422362084729259235982646973914543052835518914558862775919347450196339069467593919149290716052341080275253999064005785310416979285075821065818914064824442974139979994997277742597526642584211703750827138893000315435856411642343014029036390951067256016554902547201926083853166231868568670631913186062112044476049124193784735788122677708364802780380783754512202009122896876376052563696539602665809810545306579571145966378468481902979684520181628599937088880336877431366137398182947202131319134368640015605103551556114242141830037441953441616936689065947442767836744483296380253170117279159429259709618589161074764261272550868621141931660972540575630029300454915263101585304471998552434675023067210526732635921033034705718792799048769902051284506601529264582496360130731309233837295866284750402448655850838101788925730620063012299618491714994127778396143112696489399931103279447573878457647652719191293237654202433205917702118232028274586958572777357634648242491492206182527983434643409252964595137681769743419849967330806319293207236649111266233069795260716375769403100352450103507902975094697623928537477128231542844321233530314024118760912986851275164354083041089605185634572482301672888153341847955052691217577315926475670750868419974517665610594224705114516397642354617412956103732187765795468903991241909291770069274332432363072879440138620235179465511492116448026298476203326296732546806525523401544301201186190416710138419581733086686300244327090379011390863791298628150709462982329286517760648172130574928753247370892232596378633730732754141421504078098205070812467829972525764808914340851478495064642902430826903611942360495539062273959217810170366137014203297496565026138938451362366472748528594813149149968719105910640620455290343640414760882072341321324256343368239376790536924538695032095278785803518516216190127841381141443072099598038631888132947603153608940596889656503004457581936105194386760458109801762738963317645124012400775395896760347264932270261508059888907451772219612380464219047657594048288295756769573829529180543560808398876805035363152183650635089942820613788725184477837031144434417551762034212539820964459256431505756055844023534214488225350065567023171724401971280151968515015643157460042514023803822936160390800644656272633969481209586207231528608631394119926295128123588181747841226391599346653953909756788813353626942476536344875084813358469519562738802404364047318851150339790998509932758708337841136647025399827112700347991928404347361321821987358880450892070671966270924141974696099370956574339147700350075230869122393225389766052132311370641186388519285836678385119173812947871458578353943492785707542756962360069360934196043012300881894781885102113338422332966559677972235881341876763906863361182937387359767392820907975205523744080539752097767762504384071474491544538494614453050862947899587340214774767018289406583968766950782072904963637752626917791513272658091686057841172232673312734317364826972848568800246178908747913432249652523625724499856574987024378803454404180260060613192000298481211807012341307994047900902940515318056850093326817212708220521155510983783530122306997716128337004564024318599677513624706728359386021781329728643773578499908428806850456734259188039047150594163387914916853579607384595733559837128374692164773784846854896578267325019203663110018745344634209306529170108861593772110255982550810437964482875580118763874627689680381283998000300725583269819859912276448605109978472667264446270626626720744083681715135841221800193038703009737188407298404121336631916323774195378312426763611901220432308146188479700545661394069490893124800235056102237132129298410596724423237502655800262511955976664845911643028522835045911997640312083598830797659726719803153023106449038748406235625424393775237753149205895483522229370459480024909225581146966059712968677098230650455047180616459910941059692750616121538060532016994070921601126017241984265943728527207617587781653383490337904186523904507727245625382461110763375054177390439285524160862750046211627187962818190204681418657092360469935950572262321656050500510581662534356751399060768189121372118850444886752219577786156203644555166730155294154930424923223954017903147373523690017728325384060696168687888228406334618002329309619021940997190775532292330137172944181990130142396664429044321856851950583594761579410145502965588202543953216382933895604362004462159467781059037350660003509917616970428040437770093719339171157651979222193758435962832652409269985430309188452910328318717419424264359353609903660496116760127805501878211540354026269270339353576136740160019723936171178160738877768537378810010900472472352529696763498208032927469339909014940012933353117858867220951921647028490527320981445461789884908156698487647508202529315958311153221810563527389281461453213462221083622606994330714336860050522815645605790362178602319828313457061321983466065973759789309743742770306481416897400051378234902244621118039770338404696024626344392815260949361073916412797942102250260877475828879153459936876874518933606768958282209497080052204290532147691217544319083574836979320741616102174746090689676603893569681981697296337025820889863695597089046300134787361498580730767902978841141427918068954379905895233096336024706271793283373921105974872213064242285202249822809823680701130705361158225539353211779238422004276334258300763200703539452855715810774140709228506309338200463566577548686623835146828538815833722403245111201043112160318822895279796658502652677213557055073179687754893049719007217492728899524634182890717949612952364499409610702318353349777334201057870712486991085710397256545345207956974179038714794762512224506971611116547014540204762730216095271966281359077445356296809337723361782813190322394687871263330328500727383261465401277830420402741510655444943867278057535144795541815834438386611991212974696628725434664481045756430737864509337753060848795737862080458343434825460908604426411328841704832686963705361504571475286784159895324995062804594218569982740063319762457082497107933258933220283858354457159647700866880147695769273245735296058949467074110335275722690187291187470343083934628491446913595063255147355477753473198296672673488983941592922463611995255028862396433199590076594118709609986046715115051317877009288697223383272205771600102573387335100251270891255715449718224882171167579704679605482163862912336032025788368392339680810451592723183696474969112419328687226306450522995379973175702194415071865857673233387495549223484431756916794749132788524505900563154296839367775881504195103266976752807501216510284327617699816295317087133667858165667392189979411024768120560876107430123346405688848603970003415550644842454654403325938481674209932343949008060092617428231868334896801245386849765035186875875469166141186233556754539644874466658685840996490653685784897657532611165367886872713964137563393705953826773861701232577831532452107701875763010449890867833988327886876598621769348501498737251483417638286738884048498589255031901389734843253534491561777972885814781652630518446771781107367674734309290116621583457941370306725376681482545791768699574665783451488278701098470878517719787491458754383112135958276771219883601818528206826699444661942889208106511299532009723625409249350706946986695013622133379322674996647603052942424585886181870523902914214101858759079216924316046672122522966693642606447681542919319368985878199119680554604697617321722452955069039008246429028343469325748879934303952964554985355693014701277680399139021415111139152735697335268248031250330839407171937181206282642913257918767817022709020403306687849590534141734246778760108276765024890386960015633607911135819239773730989967719278761864234962876252567444272258726979510856605236749138515697019261749049400914338966687861587506110460395251117542287432289433387064211831499549475352699350088282886120579940019996040791961979353890276343009787475374276004880908465373068092061422565591806800274537715780524514697325154494304458719769681668121740861236431316946429060629610783403008436790620390206206071054906755337043481097086310922103560173628389841537507449264250331852911067724551527785028463789410977763832139538277243161032461623140084802248045522593701985712361464245119930047943933778267368929246921711301989918108921970590804017550972289024671158009508715643084134192476633667557739111706660773209321567598777476022556889736640209381389510069848661756892225207375304494741007385146649186831786830114920636481214294360134211875249586890207936867630980608912985874455573674261806364883095638041128546808806418333616899170807135643260421372215760978937887994560035065656696267053205033357260478875675410886549900986702006563276528050846969503411960804423433118027632120877288440087051177501733050867628573303742817849402935564954396314080581114377396126735510330077660327462473623886317292063286386884150591781821984087265608976176017232970509429637478923056415438576584561325939732525790161459051870205247751646813395506321937731761379167382995890833521027280578796083689740952896170060484866029570476760124717488223675691999378268265401511640376363031054863114848912941499334415933023337016975821782465122517019730270323177514773627642993800131212624088290050683424785058520234604567276605218312350570868016723758615871162536875013958405987089237258034677565007402842290432412740888798365418266944836860367506044460811739915863092248431961537119676251579359658505995796576739681941367191973162634049060790553176341358001609057871572730237286285601446204221317695301855883698759408842988889829923468945819382243419291198115089167743190704689642077841923850516596089585494944249506645825230168135968595494588612773986555206732774885137568337351777473934182393090724751841580988999942895107155097350189785192645698026235820579607118071655521020056683997571064124497447665516651803654454681282632894797346365377619205461100973643367774945033031810776765097787757148606152699641778312592811025641962317905801771663065739639168499579556427788155265943179519847484184821445881126451147641097287363202197211561188724784883185965909406227970313161729836017595789160324272320160967503142878056581233316243022251217456482777356135649816918201611123129095632776454293315910938690453821637949984512770537277041381215072869972235275227525225101728065922964779060292719131125180683165333663241485925429705899398407672211859600423160604764094024505357126007135434062202822326875739316679908162665947013782047159165811733595531791473994800410381381593274209679690295618863688379995462260039638205298281582730567733837629035258943712243822368247079238292663716106763963144045869824054863812300407422207353896869259416099820755166313081794870051023732306437034346794034075166320077136027741168567696475828501091318816363690606046260216600650439403460499160191692498650491548639582914630802662991004038893976701625135601811320173576757959852795172031575540656218278567174662090706273088482572152736320390366655120662700832694055595158063567494021901299213966824640397416425246248670057724377972893423522567380999789914139761549548723813058882830020954119299043494393600784318502125085520959764823607058240194103631109762594745756444294049212061197218685037329131242004519764780590543476191372837156537838587250600639617631517826047108065111979417423405008698099694488294235661332895320814239395140708343758202378634491577471088874356419818293562571210058473367048911844604361320765969558261101816822751822631398326659668481517521766063653887513428695754550206204598556470827181531306612617646421253032606559043220453712751704242091819464169618309794693998278228970638510027124360921950323185296322081553812554522655812609000225644163590816343915104422656272732571871400746771848810903888739432713689721336503494753568636662895000844944191034826662874176277243014165467402807331166041554052726159276622987462011160972627629092734650868008987224282116348509535873267541447122497628981124799627696419020055393693951157379340978572530053760752922086619954425014643922513249358147972757670759895778815068242098891223600031010874399801330227799774031052602095079313977606746805471770453780659278463943633664306540478494708609883054186929154179102564651749901224293851404784659457334150968805889099992566240175016160427433456945096803130039383206938400113107993596597224165375597907259250298952116128772226535363841920643846223202702789183459494650302900336560174762521821639377935894081670734336286396206919592188556594382877301890827129596493140840148677523048645174427230011587398139067437850788769542601822752228272582703569238281806441046058587988604283854015705706957932024516567198551097149021011605553070947577110285351746256088130092342027438041508310816139132412729454131258402484657608175258801272815871008335103208424215098542590893159938454284567170521007535183582632396644418639627631469028802882376622039023947136307388052062797525702747834765983422116673550892073928780820314697893236963188100081220894999569244539837137738333418469776119625851332563401425484447482148459089815532220584734381747890153498641777683544628067574662613534051260143742885471248875169995373332587499897994591676585496946331363852972494292100189711793109362288016240579694944830992812527770275667730228134944127394404090198981502822012665811652953207217287617949453115343335366641267372363162513239205932536329970965311294430757425054048293877316178277992885543500073936538122063167030606014687713492892417594646527917852542409903350558764248627523474937450016313777675194429102328631794095333848916723412017222170006092215899607444950688052819869143361406364932599332116337559656460163626977094900750682744276185394706912097426674103595515746800714514513799531668853202984786178970637433113323486364338631809517819143559179685204487717097815477620947297067612793984244413531357860339217556753809142060684642833626177553475694430888247009632407531691460573213162850515701463185825922339627532287862617000771214179743603382212388287609829783159008829836453434868026621797646094015105881622596896649517326236264780524530286792907647142397546898273139595372113688973078487174875207697630793351449065679567119771577442561024723880313631646930472094046801794068112455768597223298039795760866773464524186689936224720932761449780855563400974195964915291323891938061190054016148191162063442995362634728235535118936048209910405870387244864492555966384040193338564269237994836423749445862234760714138165383929218988322425108821751358451120737557371044770985871376379234425325323041230921780923034487125214510523175817022270162411085320951362430695244405389884175660631954418244196163111756555588202621958223452653059064637090464653983131121646076308637758443553669484962622362543840331736501947974679661379232032896925224551887384854880225602959915084206502921250507266898078540426887412008157037113040008787951987950891755365773864962805712138295214326145129486106941296272497888271414744640324384083183989462655902650199242601983446052764468145003267469959254849998822337521613541001661088063858911405126246209580213736867972622505689757059146418288711725051806106212587516056452262245485705089861020137517712064123226965674216253702178324712202843778177180851485147815255669673320369455046753631047633799335131341332066370916698256814661164369954993368878101266353608059851162656571916419539120055502735938366538347420193598061577960081285203737196511678242946098588592282137598592176378218842377898818463192609732257043567721107627639465187850830471942163167847948172697158486698073746347598609833396500082918800625026499912677945595382291023701464384422046226108433451987948912646189715682060712376647887544691158271292096264434173222559359030244825203753626123499477809347149079105574059232458177332381275597969167971188904007360324622810067245779352151721743096359525069588654169791807249355871958239253986626126424752391614500854399018072838415721175381546206336688371896919696916350180510522368520731728840626085304925027752769228287901909696080799705524304648852791970083112501473814941007746419264151295955223173808988196026977582535645073894216258239457074716234826714364322632819652326508488653158857639825317786980564129534687388757072413812983718312425476889220821075026290559455906005214697275759924241053445599822433886028018770032610270781314054465563101796176947764096888007498409256051846745737605331244652583303249562125578793027280998306761410774867058892144377650250272290306520344078291796074197179874340983943791251121205870820735669899867987387155348488433489436441215706010627914287263529829509561516861609124618507701384569719511870841706777308493940979474007374080204493590176404596389698422467501055409878761147405886668191156736839183410705865191477326646140914760423933662073458157098534966700641360976301875654073029056932937474873962615805039575535007540885077841099023852270234310564115402768258772215261983605931290187971865340397560168607063252924163469726202539743425912654203574328265672465279750895650738537729815415463940042663462444513602892025721151568660152602675052064980579868890502512789285284991085980964290263159127392953839095468215731941865221641498527651417869763348662638576962417330654744939047802224833553770663213246543671489214270746286754051919107789299435427631429147026708129474212820085083450228419368356645984793098621300034638089116150347013785086244370289759103086558991292236326488400967699387086607471565623636177222628571804236778537686124156234889774883019538003117149327305412722033344503375640185937133784997303699507505874262409567300291908532400269314092816746027186032304371161119449649274844916504337327712789335492896599647763467051315088598603977597039133601670674474212145972143830498105948573916632030684513938308091504298736059838371618033458558953461606976089334167628778070272836478589900577770182973258058176870625563794752146049586779294460899659857877576662625888593563915351995204912558571701149018915131913910424371882180821904759262455768241717694927708798336928305026250049775259366416678677605022048768164725108951893480360806797923836894495056858295808471726783071224923881848787779636820725308225113867773508503118143879419110597901402279138674484593245055409648124866996920640652724588593784491561240831775702626577598956517831884223619350191348251806815643847057133699222490495587752320062328306539842904289705790683882104366170325753470421983903266666151977413657291362188633134710052726663760074033335592812242920093644201181008078338834715556811283266845572168176521249759158298048221995148141845350738077864358225701306519906117689231555039887920284095689648739749770475581234654919456310511181698831853541724202248192238164459868907213975668037493327027935275975053090812377605837336733168044640824698167712769081192485571876547374579617507577373117334639750021819892060550061270557418158378310000470245727968727830066271342100783253306126990142478560243105750772208135461396300523666226578168658556949530552706220190145700983391263117045034313175794169882837357783650958200725230323661829972213893596270239876564706845208007498516401755109475660485269053561295344405388889885062866773652901037286863592160081246148080387126955722004893804646737731996074801645487190827410157163308995567480496424100989720141763321082781225589344250453893661595752005879936644425458256663276313908854350849749971019943183775237262573645483931045898123258650567179288596414044562990272910288581451015042053640172299929079922254713985078457759250790584102114401230422796668186906611988552773713557775467420793410750267724837622731992024506949166712540774912059105336779961258352778040373280093070384984357545183560470037500585156214506370167597543267697785256595952277309821491480204313919362551339408387214010952249054496668823081766022104950226000613080950795887725562806375007761402995897759703408965680266023104054685751224584408189251067716403532971194402705436107166876848494675206087553834503077761112078282914703831406622968726202075248388317701578989475292083121870623209213439625142385889277814960383914467140455494517880337889484730978267918145907460178948890529134164741439013542903180637979162281825002997704111237035783150005360652614601203627244041673460942047976563309815274536377648603991608204398977396515721776630833283660036488715389255312238768206023787018587338355955806785651320902149873432913699526072937170705781669195454866912897526616307176990738876641908728213494424957064652501095154841516993664966085225531994358061738582404431632417088933566777707453431637320792305370805306755802739320985698620674039032221587371281024120214065674829878418971723134176222197258382618105806578897522119617518280115304814893469782573859039596457510576509367258666769953546173491443730322853999926126954743554137237140753240296845471103397738970600210937652278185175988719705666227753102873636283405772419253760883614169661213423745499050464237280499459709372710799036278441499582749041174590009566221364828478663968728638273607054687935433958715855499778275718300869512512698767681602487531420011041874511396570493538481248953811919165632996286682884300974107555910531289509036674728391450826553086774593140365735580547812208456823946779339637024603115850716275754546992630615056998718893587109314626289292657920615236622145791904050332272866697981010158747643079277372368110132068872426939335159510433194604837659992018167568701879412499747610737736191854603865735877027804667832076245368138803102296805057425461389564481860950695204565709837809595672057384932804303793274970812873225091620880190421447284384286972985477492997138564541058420375946414030847738921198558996648431141942512449770356338936175816149392012896772415902054453117483989452046441977545567744256859641720133308125363728833241190122757259019463247027423270308443536338496971936881141107460366129757011691335083518954867135922178978337556272297537104895890533199385362699118974930098134942107855024169871466062981696453253026795540135830408395960667103768213428111797951830292525673218746871583635650837643584852820650247853616054479213916740304357445928855950951960545981919408243297966289132024878819697289385386086199706408213557504192820725596494629989914123757459274605148672639534424388702509286449075848393017846162102612251617783504591495441120197817037209025308659386562154380696684973934617731392037728478266557995940216954570719112973703848580886434264691572515929425023579584460821977489103082901958063328457732237286629634442097525917295971160220569849659059203979540724623186348341317898132117931738260394128366763188524563709974568701029891870968805103886571886618751101755849986181550223836516820480914254470904802649512985072180631159677196396700567693343516850143775418223761508090015696770945253897879324654459249385150615158147895086238842594571584635928085389738865232760893948486016926109963507305254250411256625207732102283798508220452134784002293197218947727893446672026081390935649239101895350963225719287763976668468827599190389033558600186630584291369451876805897345706938238587829596722095556047197661231430420095389138064924593623655343351327645971991583566849244437930404301302673644448227578169948857984764295921036900254002493026490556785452892949811383911600561749812505622770168702502334803225271514085138304863990049797497508887466585169729020908897011846470208563170475425615384532009411910705470132230038227294362882736402671612291163539137303166450210043889926561704504828888638385395416224523657269654829498747198674907912708821318565738340712931874702666049767972561864971908304158710240474579060439309668650461572276499467696774082493969506039546527812648879136877595031043238472983661400019792016947981371395193097512552829732532837246834483327955343360943357202185723953962359785343373122219441463138658455406314008812918332978324249422903024790011903379290926724891810464496979129186053834990097019457226631970747201171263346232769943642217963578406008374291182401092926318250642022352082598084993045787650680210297532259702814892500317223303396424009066020136898384627886898831468634857828781333524405030638444667999724436612712671359017954747496413238156310028894032094398079949064918585845528409611071533012534569974495646734195928670537343462516400342209363700153280207781181319526022826099359320870510152264798221293540453522719893012837243747283265263533444185820304931207006463923843066993054762885212313016932858343852834126416303597304476802773523582955500043866425300027207847252834417746711815941753640226312037340772074086133325506700076510215718427931843586630855300403813897857755462209149203705380660079323281514150108295384903243599654723268913421369674570529636766376907035135578438045285982159366421166935948657389152279343252713096698618333974636218966079588011782823579846177598407882586353859130526910614358255566826086024358031622610513507812683065801037787275002591275277015467220816315535179169024700776962753045957931587283151406733004897384420106371759810613504940333701561951163376082318545468121660151226284403068381981015205700493445764374317202555381397526446375261125857306555026124572527559279000005462898648286550448600684762314621234271328331014431089401480933224014772764103915808693449048289690891838920739504896896063266987049038031917802462529210321604240199667904970068194117882312777745540403895154027004840458799057233647705269471549169183568784248432885646093415444896445689508978952060785249055173478760947854847665739234110320872268548542922817483950489862791125427353131210472183535390827710556070159786194199207352494936362701603946392809441071519428111254390714723706301359408682453257663252530189128630880927316357670977245180356814624125344993985084521128307964778851093907571057777803041615850834853901599922201134095787351359933226756734860754184653290927357807160498764070101303435431087736001374207552652706126285301031024027138680930345447635970354163321124953535013155729012314674319619727147337374440249935249265833663388250063924061818748528283426224057044829331385281605961426327405150199125627458029949098316255189510783506395694845175300144445293689112240701416449953895585592373726388430361442979817975157368859767230568135816050936920370147977167708679394583208379223922836394830939356229028754377444730941691118747364089192416108796847243343459012783652407447247196596605300754767885117175536810445272475238246006011704397672846882601898593705696447272190393822983728282823034112109513242881505907299915124968747060862666997417083544171546452493246909678422982864446142830231815055485987527558763446538377676497045251320815511637253533733425246428339296169752657642690308626948890330654973158960667317641453997765887403493667278532277013354515321731905736788019215812647080905131699898812756944954530656279266574038138769242187568834476617432572125988249601212439479675999104004117854016939039397295791342363596608574256112824437450679744903940639154851478850127490337247703079963436884782170226609698939881787065236733338318007401818699076131670905247215658850721530349734334519387209520661524622865811271639824785254399192703286720164840559079317083364960044069405461500049045239246146893328677295721851192145026170773568538193418437940172508556192577523530227427286419580576766293146481780466291189400981757600978016323460670889925135838659119096151037684127818623618549954604817576772891182061529473175297314418538427998594316317950250228644006173487515877109603641518799327738955569339499150209360350509239362085355475772974295374107463158977510752946436087762816405904345679654858799954635470840780862312340884394702761546581286132347904798623348458818891072456476946927613565458817330291362635092921307804783462221768557717270144097299029540931875363822261460329049129767343526639766888413020482118928541080419183189761822285965665142718784756509705737197507435631172222490422412825169932223831827625094720110679928656162302817563254800306688096473036442149306011160762498951305901633876646022345038642960814877034064329093913392857937867008539603066786260289907451010810763306024269692864445096705191532452497282844290505308181568233355036403974183188551042070316123891248465283063736698150582503741697981247521980615922382076441649477882780295833414339843088213187131881755504077141002045780192175158177385572512067199691712176798415862008278331187656875878102980028761390740870457226285045229354061411847135655546166341281783673584802020731713474613028161160550141830544168436614309755481134968607498539123063108726220588732006977931088696012756647903235807828758515976376154474651437719266263796589425445230780419442973354619530644129787884813283985506367990471958962619858983992630534644731806251429714198893027821420570213908466500716207419779533832457988268232155264535314134485326237677497063918921276764316839557319235087699131224598439871371884214053813135839017350346950715929941820391509559453316767297405883427326433590316160280321605198636920594498529904446372030721613676190461887374583088067060215644754663705945606373323905826724426259184034172940097522246363378962260180579844998930783030107771248126386788360802017442330375756734099253541767503224117855418466974131626034981638899184087590101621148265623943977757342951650092705394384315276859391707758223401856765089934978316827105629601090649819871629047120035274986835718040145131627476617365992658946780340241160377070163288430255920036858388206680302125768242785859789381477594519865714555265178568447246519032265427621321369463052118120997874526443719766138243635494401936799899754137401625430767216162871485108219081009240914194834267112597780360718586500857253566156619879465558953359795949838896695167253006452799583085895927774778126909706027709003122546494264835651308288759504079849797808383802692392486251909341915954007643579270617807940865062809188940442369517183412819236398560441730209770905141522885181038489584986383913277121644230474577000984067888157447702794668904055374698662907465841638876732330866905055928709376995565495485560173380061023210105136505548984734432089200695436006142027752109291891524480313355309421886693788479993702148537951791037722283462408570248540599982303608098044576568234088215764011482612174066941523556512285569159725454955233935207742288707396600813776363243782433027983727963640878265818497881298904221668213667373753886404683557478068149622322310183589254776485126755629484473857849677770525597171246169310838541470407024900069437641924254493867723515404912456757614609799309900345588799161882052320673554027300752153255635182938715934666805218602275772804216786768169774395193227207407716863762799070233547863818055240765760438472094145919445370242670929850773285525150434969586955388748171531458216543267207633388220325736555420345343863711511821164055505041806582197556706243268379183641138660296480814344232609924153976119385668547485145945468349008354243287346605196129650828099136296780496042832542736940555439570420037880402526538700764043500204398261344517060925853779375813350865724059912543045406543844250188410658270692882079540292503643130175367309588848031397320178020085045493807308736388357561199916956842876830985593535887216966814382763938626520663405392391880979780579582896060147902179472630299637587111619081463575047928823612777766351186827295960782100267447413645668455128571455229924667744646166558006077263108953572414053526173379781679672458397237588469064830432135683735219062049952131951514042217332793125897999044018374768413634527709363781640785394215072723663300996594056569014511114919401686927399390554538023636178451597286596645972249586097825463560499898836479107886095554378012472362130186814332057804097158028164499237801333224651960947359070426140856125423856756089920419564694791971651356327397672125016536503427732825504981671943679222353432381438417100851902805479636811124948946700242676594821582668447517266529548266754338052059817453439969552570464898100845217519079072208581534786592312017698636576725563788998208068864404742365782576506292581989126791158488383790611592707539132727587747755767067595505900559046326178191346179108270860160763881481903150396958424964298415534201604928126581957632013084585390335096971062939869870120523652458584276644258005437094740502803097528179487701745544722415581555762016469013419704613729115074551174795545676704488950960190032258060501296875067424081067768776882834553211632957262822406767237157407732720352398178614867248302095451371764537478673744840504943688792811078372829340425378952882472258013899210524884683760169340312983780765287711046014133450956108779270533653433454428925502316314105518294989252390734017816823019909083394976250178286054013490028858345064060723995214882060028536130138530816671519531508056969322210143644681567257646225584267088491892760294423197866090580416952045523897364212496492932392294176123329604827998153455557221919386192449208154149914978613363811712022632034812262915095312684581400919066677044288221902804317091386411935514813787788787696118198728025311329421321459610616974297293714398692110604447415900347497451004112648032238297086978143122742329622489797633487925349841186964291984549307823646818597850224829574481062256222247033884410606627979997222055200195613352060064037316967042449233700622753810926406379489686920202500080824448960934072513106612884141800503653350736886050770240031674842519922097618678596436085733857977875600607944922329187643842898905566126411490677528082377041689228896766558115859782235672561949645531024981008663643461576073329083808913413812596317251432495344572475229036891109234695014216276172685582694534199001405580355084928418640709071127505977533919758110832166569306738225810410684482961762710671220641107122732533585410595368220421205311679329599091658183057095092333042232592692839707517268033753535185153359212246642389473407053704409554484674065061204764272714901084517100941838690030149298461850748620418448957712790145373102650042838356619577600341370743631215121548411511592903007041297098714105330916683602714529714654296300984376782995860560259737385841531674389991298433376737461675354135737269231777186523783461839786333124040113845728342021650720936665005374249657379146479184256774654995058282915817823967617001365500266318204918497316274537971601560493687224051267732475100771833640378687701052654099414758995112687717162629640850128420147453627598806243287259006896080390766315719596512052412759377487501088879499455144302913482096954186146371259529283115098235107205457260135171006476815945462344568026464214419687692282862015342340779498670655606758817396483525102510180718301396666370815692887724432645673012419461368638650103317697612350714776070144251036448919336726595942763081659987692252393689708968564310084904811438951264935277369795327607104817158633198033366756942200385062427607328188043509008477067314051134985887509451109767937976295282047443821710622973403100738283194644375231556246085127807478637017007858028849349260900231881642495970982384158118745957265862591006622638414021960265322082724072321557914155927262072321716387817226837771942934438995948419448655155225487125218937551780679018696710932893197557955530279770769677863235056592748663190728751457341261150390248785139224399612506893253999970539775493867713618703115316194297263284127055295572276459744425376231327701544826853290674549415358910905094297440939931260547851174124950321583088860508591808235097232019924441778750102747346898440199920157319098009627975119761124809973685619607677516319064446650750699400255310262931103639332326873496932419291675697465500798965758568476117479792448839403361273296247483809463797295836052331968105232300440940699201328323359203414618766553948714177059987599251860520365157838207631117512785588610535857914658915603253102372073254687562856994676254272357080067644253229210941511223846120389303477550231990645596375036051462040640340097095278587015325776679119912171225587980791041114396642978252791614276574072327729284741368464354721760315480010476626432018283641911037135638868978238160981402969916989281307243801889577155423720909670338787106713729185608820982756397240007631657490990118382839135500793636929274510821385653253348593072636054365484568152351212393686908734313738374407518552691866973820329439615699922868151525971898019282696074424073602292924294823083457561869891549149573721732271994594031846321450425427183091181795966207174510156684217803604584679908158214466012967615945120619520602483426587365554374779630725423136384532078954896294610618442783370644988681180748441407157736270664118553987827244446211947387053748594344525779797586166308591879518560533813130403953539986721924581884760031486059622722623756445478411052083425449162761371327132615271426230450117340786353639504461208653738091959777205324771708912750613705315824728609242887244058380032996042931325662736800658666765023751909730391503002498082388959163453004313939491024819573600025305975208844689704612690206346010805274861323976691497071246074377196654162711861458502067618901028131123059925525318063955723496272019512810065123227035345234332487838872191600378402050653018188945152523130540356391587747563099540033311302722958422224767095182278846926945615828527701173145789474866089512982812820605588205433284202875823446647974440155044109340349680617359270833468313327487050166542761093630133028769088912212942176403917554449100550307882354180514465635563847657891734807215417184625544355700543257272060594728797946591023747709257834418371975877654541422621302569213725723992670350144756949309924918075388343456648176313828727190306985464589276730860585388529566514361134206281556346949120904052127714571504396961969844111884520995459825623440548344309071685679154115339349823750741804684478885183064226611005450613777930261135753904499793133529451178404689524562150745503366953973606331357947788961453069883025064951229127090363011756414124280414948498494834087363561412855525899093721175273632215896621943539859611137133408061834152482235465983815338555493914964117779751151816135703392756523009242192538344459834878068458921111477241570665387086428300741175333932257450374031092041741213640853539561656662870359822426696028971356136109053892897553643369400848962946095289261079199486815514948843351014883370191458302728783720349404707132861285583978982848560002944555366549595708204384276925919385566930515800622208885087144759618191331428256120779167223926426982953036099213958834564342841301430674934776722924692235358785469170131238669151435482001579658936168062976704351660311521509456799129695412796043459128820352235691624096524260681026005734342970525478918081366825112569595601029064859472633661444167531021383515490479051933552203452886173527008255644582333611342256856281544618011252341354249287647618087483796364199829371031870341379577447274511391170732115280916565183921878843536131731243615908224768840080134726866750886551450639403708009426929567641528350118476043767716371946132912837185764981705988370833641971244901240763892054551671779983018188924178965276680343855641438064384233594787731625491150078760911999953520752310050577184131667435868354884316344079569223654916076434045474375197133740265814148837146503087508922243462718101286483204219671491005607731147722414296603221895271121548847565720810419735690248681050796478730204862885305273741382182763588542152615556946675892583359366179227430352115088969399992674989234159565173414290126798141103508471602165021450743917351920016943692229701128659490324283611552826048518056108921648845207262263804826958357320511025618924949197581473459884715776026416846855791763788273074668843744362039691837626854726356019276123681018095048519691673857586321230962111609785394469094073710635206842852778465787484511856695397139975942966519483641395692784432225727543918538630295616929332343356729811122573514911126825101482048134032059156345905086072134001464798472825095628235631821441789139736479242513613727422449050360517359448973808506457790769859836437346189398991616523601644224100801161237879216654494385709197567428004599751288746174404253701547327167108304347273810165859988310216540849027025907143397918431711954383622001022851058994392031808028979793686633944568545360717548084188647867284097919393288537874194302849452984057669322243900133297220486386359145547292855442340134880921594354668833356547790957722574788080064437119621373942884080148239774260508641413043330121097918328687736729644111069962846698757561559163749713998331097959937744815245131745421478524411149894717796819562122428564316051154046554597687547511378838230386283978932555603963101898126417210587608640541311662422693524888615425165185195485239940563380742058992747690274433223488432028137417385920125004601061791658643681757447502528713023533926868592658729818488651724406594303217033258553869914549484114538694730261749070023161021937247855338067974579301126138016884398326296149682721034949535146930057876556830777170408490324835960125998207473535141479247114660199457583849015941740741148736214577755342319032593868806311490456475748105514724073948826082340898508661677513763533001579762423802290246769752917943240759974795984020068089683998798191850450350127123703794739572958947289438980413717327776537285654751663758422679087918237985753228031539762871281191258705139443967546427955228631629948693082458580562469931140747323511712312316670153980447291432160799224212042387327814547644652560182407470173568243650973813758528224419096307491823645183825918727011181123392250952787952959517172547314820142974634325957926906987708488504897981679767239817240990982128588955387810251423644662569220138577807597121642781541556978682710597664274833019451677227104690314722179423041425985746372662005938958465586519326902587211840240053278662353732819071100958371350881057959114815148120325435215765284403451977858593471427809439555880939421756089011492275352909697975721783939684703454990661547963468602971802913321261473890821315915736775750492096307489418260530369616672702698346567390260832541483129220541137012424182947368851207929330048794244151072311570894829703733505398613699790519725961023853667161194319491571077052291750570115694779597522966779508897224639747062002352041673113413823823131730285533564195375126442766201245330249697138289949638438425824578417654622095173731526946623143375944171317131392700172002741972147329009493001246347654003892484468666281188124800822052936450841319318848267743905150602895463887230774394170838172834641340639632697199012258436706128917428121614285893751191844233303800017113007773552387332078191855383553743654906264803176395097621208488131925917050118329634376060069052002176152270066850558150405805485110882132939267452802590873204663707578850169488575555918927288959379576360299997192883203792547472830153760424636657522308290245155670549816997143979865934503379394421007855697815159384383423489600328466121319577493146273764233268251985614871647840618512543132352805120091739534345912070217533748490462838147772320711866214692297370256193153440371804961824728503700344109384677114185414889404377344248956214458196256588963765697628609325139960262814261349217766256752159423815447628787147818999662165727626980454377439132173882184290753625550908351757010085548434885554779914315349138810515785820483977520827145502692339330317604894331442395919078964046940041238262818199449346240884658358278798234522198612485955087187128452857079098001100246422949931248336253704815697723695015487463192183473515907415879410151104021509031238128647806383334387162966365825360322982146305667247750730579271634145762431237041179597982589185669875241232820538988248656566322303004085233299872232614564359734685256341418442190705441686841094555980450326053915906308571496724382893299772929625658561862063765147228565712244396030930012083728420043987122042264830178068544060082641706569444650924414866386363492414706149846456144209030980483744329389577879886993807827035906367506643611749049838551575126053453568612776795959748321045188018677410765555610818964777187758074050342199233772272262503013727695369465862678027742117540438595176333334114185585384881263419320443156609612048778569106848433702596508416992099501778374836569996354222671570420227452598093029291430370730923813607845536489401227429084702264407308387454846833530630935899241551776809615777991187073819150549478916614480026275619980238869198218130880678461722522147080907197855002807703124230262111584328302913306998758423586011562495395418937309085067097005300950916380682367504236363502191010647375779961062700726495344701240026557207459383366424786198908292016087699104082863008273973501030050882518936437587002760834574483813869869322706153083117603560839661998065355948844579913290677556980662276744248717734085932202450498912534944369048843877402597435890648438919747930931418060523896249998796153874140874538008257274413726458623047482975220926511291327870978274674078251276390187245141859935299693332670335024010772459923035441579188225591799352710712181511364204160606424611758171177360239282046491963645158254591269370337209733500294756476024491352095021060070251134836468438363627286211088743849400698623873204591874801108172984839975446476194363709836796507179335984686544972983164115787185285574888517901025540358575628455591457454263651112595016283193060432024212068955201272304927102832866195542343931595726897339777078754913385693454800182846316637836435191863023581613287752120544530131936050741419505333043362005635628101263718051956542748307822248574618577998182701848563235177126544242848994881453952075064407323977770392534591250870409264314375151428539447431350386224388007668992340057658617674540043033913539127547766694354835418319480806789299114587839100041393450964599031138674902654543443781665933977022057012039099188651087050702096305182922703473434931526886559718404067993540780784173583520001308367103797401325088304004213892214023797469121656794363966122119865600080044890721092467604826025047066735187976165746898641855457856706528879009991230422060646037738292689343188853915538925847837233158301263733425235809265442157740561554041007977433546233504776423509230608740297667767813113932369792243022409543627445973603759773032779942154218612703908027501693246433430995016679718927756757603886254639787699548046787343885086227886082840721747516228463851259785228202611771135211024124637910034987267211831256212242296394190451276559676535994303887031893369924960438029124025873338093654104865055788755693376235679999124919799243972245321143297124901730879453350623985587489859446226078333371479618654612165412072597987707268188871968926843963209920237879639071541123246897478905923410693589702985291673939441696215498992060189430203284087631340964839740358894785780574068400963732133926880978276225350099894451947622883530397742221053439595776130598360373004820501989872586730026451276332201514513441950059601544373347595438559983127220332262712188111609519860276897157538114854336637457128955215497469249672439778525249836580115068578559827392516135150798194212229090403013414490250310359247303331580563048841748140577896939528944103475880024650187266475671382043702004470674763990130903002776826982704388564878344036898418383673704030181077889865608688725781023452268971116416424972727009990913167064687134949586059858671515962682677910872184119068954253941890843772522516842038671483815584403805255076855515718723538611080976056983364290842363084011163354721083652487758661074200233230148431054901040241741833375064481335009580372861726623372031584335718957021806859472249883489561678712268997529807705686243735644780836058766866671312876255491902725445141482086707020578117722289005787807616845812115933097957908618107906087174882425934851401911815742162654660792503554738716210538362993105395241219247644547987912985015025174743900628597824632786494276618461599605474896865674034665921213620745440316286676800419203515254076103644586784350572280530267533003239940138334696098325602132100164275286086348366642213347254377843389430493483281795811523129314430715417405221871268187203615410201804596858702157082653960560354116025454152157589517019311502862748993374226470807055663980258424067095714411779632465492656167427252057373589356778208347859375988890576416753178653999280579089855986806978592199273178921318436456173270164001294776546431731928939444946799450979121707587079049459547857031088695261671736375933431759401016792251399088338908206191848321969848102696411820687873743736128598507466629162825985612101137895723948513723613158055156111856018272757745451240549561932281116714445513818246937390691227334219959632558691574408927687374817648196129790372409776804942560217895659904050745317992993641778632338852146365270560408940138493023789104321796489685830906687622506305343683189752803888513295401861204889738959872305078094642570220694075242245605453994823625936359432823608685164467395797865772240930169515090018286599958764850030654175322295105303131705897907424742109555607353632787904477594944178050161183383723333976602395644498500586083971318468966415341792912525840092150575938424112190855260542036777253347684616588698765025194590739764205243100626261396462594578140481368869690876088556896395555926526626583715702837003482472201301915332366165628943012918073534709573019490926099789290928837339277227988356340611573464499613786879776191493607545815268190547607920591219431589338491978695526151394115735002053088451105567937476746541866845295674780848236507413586793593579482073093225145696311856130954816958609855396726069997278505022913103679513390624539142501130741478676851576158758550010402167350866242986847808402196119075492525825670591426116153881413413712478584404104110400238139950149880026601540758305985565313659091185631370729589589164720621242122110593312337407482419117463704771678657937529987704474771516255555116935444449615706088737192036741151259734703916498122052996483722226809377714040948441840904402007898418026040754392146699434408379256496586040820600791838681687871434413071572966637249987077139890761354898808844282270059285646143280576849365150858523376065155634285522584041740905468465447809594888809837213589776727089028445431337328713289569936051527662539360003986223468537938982343185869984893305561585152714290905864461623816662397061721423784708589274374503422649413864026331156163101109734284682709277804912258422224567381380837004391780977140411655218790682129341359871142032032466513216872405644702081835992830467481930867120727984054510568391782853501683285381496149849582098853874635513181208787269532625557780081784688881773524649438876070394669820712583876552503707967471281389276264204679684338048402623521680607764075692583684970776393937141027460176536699777522786382065354204232280387135018963264229236040351669398109521820534500230085657714779636105685922193270124311819200959652401256893539771360628528800260194255091038296371720346982551015710830307192156742180142049121767171738439499713981447376743228473257850942235660805155955889703741207992550710478666200821503642585446594580602540078371687612342090316636642070092333102420905968969971948059726337788913031170110493854291840601222361766048661402435111805682308186510008709680749611769316578820805006831132644317261692581656699583351729070336561700588391999648358269952027310451650875844850451316096651428142391381010296440676918913883925393488730942261558375433443629448846793146678749337354770027015545724531661279193470519053187545928418566196065188316888066852392239391945865202833421279055109537461454926937390488592115549318245798719263266873944743282313153475835113683681726647666502621675277426961124338302683073587843417384621993314161866451339514446935296655634139174855126990563084486914268137171735077135368499445423134696879256428221537703299355953864303245884192636199724428258232124520392086344212310902763199466902604582124289199922013581437931235121455002784349287906867053766872224849784751837629755344923113096186281168429949570480530364223478929454639030241350623659938248368971541131662677369466474271679261570753598616985639902965965726874687048180940233544588980385990850109483973603778900855634344277556428830036648723224298301321817391904533314406341784060083768297920305180303841247962251485322443594905893787176548424305924232719271749357096537304058403761952271174985577603708221400272535431742586717517700750841799855254222931997859475482833144864156071462407952560284798844286354052954471042795772802455610004992260178909104691348393657402337135846527110452300336871862087685362616138197338502004207725991294314686962822516863114270230815204269018263520331443644694476689727714959897417350708209808886953949078824803663135690020192366378124286539227513418835922838301639642818039805372176284772753827133830493011756339526312044095607038776079954278773972453620860881551034312004952755046853037816466382700403040744543756188470072710857163321772511570808678710785712946460168034362959966825766761248434084415690048963678341599330881118255445425844790859502253565770415132312837359022848332152180389591453508622424163922072465217720850813080032629578962277252249854131341613945219856380268628138478281768491625023457526183859011643119954602849430600781161991593040667180134262804947889166450708738531539044978576873805347089726687356335570337415832894794883505939750634376046811015141160991187808242324417902073173296308860756472815249939658177680103993932362870674946685362760742512231215058149666690384047199085173816123764924905064227001077684580470926605636129985679593285976540093066690229061559010049775568655358864656078379539044601956595162464169540654676440917200902861024186534347998785026265533065343703470480591970043272700140655741169283644062634930476070625819903336041862155194771328621283077397725006364899242747742395889484090649424291151584420303115530638724072715956153017622968838643748763725475769055361809258341964203848685407581139179535273723837188844984857935469188140886607825076961451420937408075447639389224099328173657931191556438981109951511553693498399623162672552651229640489249435868804449165158285238124122346933622772593935815148470696718135814563791805310753559587877219996553842878889200613516561393627796588978490235976661415884729353797878146254734643826384915538794887708002537783023128335836181362334088271358622373865385019678380983575795400817137263305616645221660364976712548564233341537736390975751463588784192168919204632479779985175785157536913463485454136173629177863763023128986885458742734958002508969277750464298380062642980292094315352491754194298723772749418043484112106586297102069730661044537758458395638480348694585422535340639763947229646644046261644457708555780723319348856992216817989193900498357585066190012136422660581643811969242994579129477604315214856585384867821019531453826144109142056267891972821808586210558149181251128986727226954231461749461903693503169014127046805180397488919082253227966262382788312256254685223574171430467856520977600840406255309087791462624135908500297353707974603747422905774902438719122679175149353431517286749538709380233515933439931133626000989456820595106780966198297576525150091440106912167742602634013344773138832452180231244242431877539289496710323126822937230408223693854870055480902040415672333668853996300461479520812038361513201050313020723492676860037342755142611046348056063280836782523927103218243851052252085012672913896588017079697263450451258801586657687364313299542446128475611808186724506159919365068402078760822611730390249577104243792689106586590369915185352254637482362488726580278960327921954124762831507638072345834709297993179805845521982677707124154414205181320941597451996710905355521292672750957068114746281035774553926273756058207032972750260311780672868349323532573303150467302479993714894047281640885665885943703065568579115503217176692226295670930268318807072819458474682793821936673332925056035997578465398561663587156560294973625159606446755420948797495276070673906723287478854388202682947047642337370814055445453705516783338034049004233850079129034038200425318496000082372551863352315441906114135963485876986751657589463037012888585427523283458697291231206282395466140241067530516183989843884955301171678305639529393730943820091572611968533453832944590050755600661683449944020743292241687193978776075607659906551623340629007413943074667082661966592861499085086860716689551957998011070170076285203885488644696039944545087474548411707620024531886112631524385781478309008691333819533300207129768066086105436764808552230465011592394086041553094651700923731914286437188631804793307716852390845248057079361597602956662627601005615519395024055797690655472284048897014999438574644951741764504655739354413102347385503844935954240348537282539232281293142669586650606239640503192525588559521782719822954823210880815685768738179777089322743092891778340647074871389987136794769416916684206319732661999231084329803712825720520858121351695451200981750976012509592328599691662122926627206116890045950035230863695353184895271592087301843704030600855556629184178704177781238091640782397407915740625874207597291339777304500688934986187542110900724698257663970979255440245703819331434559568346410224392244472433727895312563101643284066560949725857278636659187955872172729800174867426157544103735860451158679215086461613378180418111899807243160584097253737334583616856734626406124379721414103072961620731142947367757421928079330937123483210905428894907770977709354626516106239131684341541281984313635173590436190087799984291329717952989187881637917873036435735462972251242610601885317650310016177700718250253287107724361766631982856508648870738867960994566580423503351862378931355574019023779318509313681757604112606191873153095020770971382194991112597613285149751706422583345328909966855003629615948008772214468666118995834811819380399106426007682598445699013275353515110629741408971761081596363802765203484426953741761759622556836464235558729286290966526210567105133778254650717087303714262095055122735414032826023315088762864720768949477720564567001983625093202282773802001819670891833140841976170936073292786234097050062858755957172626995901387836623419538013591858109874629628800203193760964931572699521521433688811055969664921521788104329066432637588052286889170062266420167685269219675588627062807874339005175404288506347806282889023616821698872918306658442276223852632833431588458494796291694320962541549540688486410718751332372126993209968398995362180589327599534286382531330169114466890151989265402989399408716115826547986634528458190707047887852215577233451244419531877764886175065623691274284389675542455447483365523730746962057824364857167508853745266402342596750193021955448649092241149434533563096745209138261573941061435762530245604908734743316343382225511371844838694352449278920512062158228996414364478481593671429677640941670228014715834780486398541374883036336468142578875047208500850465998669150824812284469058216758046875978065001724217340635757344668821029687523957649493810677310677009049130710226057911613334220796561565817996582870413038305533225505110741458441439877265611530029698165827914371120657661371965116062879052354154646181643305435914393329464156079624792948109729879224845627515364630036676301366501346717684991476310678009655119324120658669881781859623653678147710999407321358546255164594756718321646553233916399965195450957037823044640541953932006488853402269430622515781345635771304984410300585123805141548100565432602614426879683687850528699845623862406330626044659810885909790403806902588076361792147444407392233384418481255137026654826451386558831832541003898669297654059144512355908394637073436235996809323455383318423105598010205165905471062533847342984425936380640142398869592786894283230354073116334305894995254314360328867043449142580143899262187921417883765672845887950549626252617333769995961698256622397809270051586997762539783745558787347962506820488563200512501353938944316158275663175462015851206843844126721244720861094537727361876958940352296276051176692873255850626055653697990905190203735013937780661005263648335912853624944240695318397554328886710489960401069899930340919543197568379755174573087661809196632796432512974053378970732883130253323965065841670829266040190097585250228211237630194997351640529806420777153403044584477579522047883777131835721430771374826990857233356511327651066893568816782143307403559849363442163599404419861158265485738981903834113034459015582698278351179416531358646096254332660037308100537556219982346715814989729066906373503933609105420807409553684856688334813526689681354123855811022553150028851453605776506628792564139111586363729655588816489399475399784090383245985278363108076477048222318845189790719871844649808214925213815954011727517838791413461337307756196227460392423088775679471241852105552220375831261255185625746717709883938125576605563136462715566728491525521575116326915192276429265994275848153948746945023832506864506007843577662915419422825887714366588883267167197245313801338849474650830747631315333178760419174570767950179312556743654253229550015557597098010500099064373222732697503155227943672328598381178864976865702970037415467553133353639965323645393780293734297950511360086415205441412926755491251411637415042494598522495823470407541044462818179413340390098807091283879372847065771194440352392746270109391364892778840000956534130515138729710607195584629889384767681079410984751625306287380676042981151004550159712233363173488190800627964024522931104385629765347881945487857374648424592225215330213161302847492777941570312947849301858742384560864923612116913534881188551425800843885155078728490361425991136119382108202442534838692679560613283275584562302013472058907572470638620671486363703837896919380773890798679896512965683065811603348022412788596352768149394101583842661643396428252573709438922332654683126860179372434072606588118808009951101612852308379595290233243864556023862970215985198619062628140183293051789131278675459270326163591422593854182142518944877365279716750969334899149804448319651671258880800753484730095722672628662487572840595187911686293017573095562670379428124570158722910883430739511722978947431904505800846496627263686630461749362358248084795459892961540707469721722534841015769214594916814943241454094507437211308381462272803102640874725373961618983520401531049290226212730187537698866187699698229644397408115156856686989200049676651269066213985025607954049917518439262663721250372632726069241349322724985178311390495760390955440870712304255221436508656622876492164456961731943389403265862831922700782037302973822967636422839748749835175220148914715580624772797944620403231716583943449554365998675301882481249431405073820281777402890460353272190576683620280299919184625827068386157201536964168101470625257985541655508991309676608720202642467031089905705748285340379439460523603485031552370228880459088073240218342059972851004186244558581092107083638683268061648509514807151273262653507413266814300894366001756114660306516129551384832689674625102495126839720746874731476840028413483169942734461302161911992392557680924789740407919302330661203152332450277060537757979082973255196865734646665325730864282529415654089663338095103476439098040024453486684058708360623323162851415789734949505665440767266344492881247849633330210793115546945228008893075732983588323658726590694558368149011991562473544573522462539624883820362613573590910381730363297556532294567527069269548433027708808495721485940967589242068105579097798561585682778181527817796267708578920631638711206066333451973835209712373045375115715716268854155475011950840431515211834130043906772685661969795056871453405668642051427389746391607413100616412554903250523775573191184342585552084223143784867263137169595086592751370802842375956226505927672613276387320352570810346706179807932292218274192544100991639283034036107926314972494267967084015410665990316883358981890769181409441629491822121154832223164786947760904568113526609644689536168638689549770354986114843517746242922421161610723875919394540589353774086207925598631321275952060163786337955373198781651036689162154718583563917520616380795546695465440038124289878549206224128878473346170317952433797624520978731041732824974642577818243200905386241720042087166849915252452202847357718408744084938820132877802462672720573298099099897020021414396904314141742889558932472418228944473326974937021102453230081034855357335574095655488199286072807808924441972973178358943079055720791963787454530585620918895064341833803748933683284429090016279710892739937044984758559765616435170830349987925885047644733347842419377142974648163789027093420187462652724051536378233394084956378707245556195920962668991456838855393621386768862958412382572908101814949668620933335031240346814169977518859636481089922561194849845598825288327191275310041808404868562611095231570060638719789393344287981525449751944290515262578899159071391892444524803910152292777794326564795475586861489770621073814420343642089869083879273151668416032988801519984889672800569545630517689941436069433976815117036103161362695587778254652795881366743445210639421261504506032206153647871554521171025937892746043408645653314673099720739302738434846956370561923173356408262970500140370947107941606294403919069420128356563978062681202576180744738808005672328375228803531902540623416868566597073691517769655163779557461648311712287998679949388404453167523424885536641828286998038113140538182380729982704830162393625547650050907559836916110762514412836286862494365507588139773898579260243589273773386207236912775373518907201557711340077697039052017364159577384621879393953848317979555333414476374401209588976167993421401875755478045020609558415850448104239527385380209214763956647811250157176157501152905486226437758253950884609639294068302086809400912118709611393306400674258218267661921811138590969190812827951998543190127421844821885418685011127702692155349383361431188472210035055506137074528817187182132391515150449698126418947236251507007019828846626360187884120978838357285484028845351376767697412742871979204026368401310066025922508095516138838875610082275565185839506317808425421357734829434765656010964160711452068141591918683645068865719236380436369507898279942831210824271664424421811000425968163929139559603781335737825573694134006496770864585971951459685563749469435208166350739824960166766193931590872671714379958050419176841200671837634019842656469879867226286108905154213133476809952118764593170331531506115686729504213831011110240311606683278157910091922767461611425829086298765474911020833365443543761901934985142063200311264616911844312768470534354055246635700591532637585629232780783747929744889110567085707025227961964746745416493710029462188490727990216479235286261548261742777849088849665229013562021515119820381973593061320162826540390951240130041767220839669090237049993117586262696114987624854393937341089835272661481308267677034748897173406675141654590412019450333815187055776103270952368297836728279062212421497000634658758047824978323589498511024916935379034970710438336733006146535007625664015669844073655745408076446984979581962148147047452764170706310737384936005245986117045188709455779162565839225746763451824399896190708395271174603506705617747519202460866890651597115249666658582100151572146445718728735504140340500710012091429163798822961371129509174792647512824916473218731406183295627115785305793492280699491588648775972211065034877475618185686318221949902126829118840029363800359115597387833938162673778054395722453583466588796094521129849515304863816721721174539114748756347201115834283281602738534711941636197184857102834926002456732241183196893248705815906393803996825958109509547775783587160021459479728785062765813775604757171243707854525379018870157299840938836262337632454374725274604224618485139002808509586407494193202274326830175220802178171957675151870395996669443314737624780628264021838119567341382248559884804891842110849971471174035111236667785221859991822554228639522207698234380692901421647985701585478438242590204798004690430010231622888728695363880816378496291678709082946162195414352803088779146283538289171431529796114338067112808548816339752789866050113720786722364340036177611295310476968718131843211090247368816086284086268767945347150195341128565856249293869678418349286088521678111869699639202284394813281365315505201543900350035620082241148778268373049720520422595000490131540895661759031015930982397468250829807135579560447134734725790268660161947233531223761289893517387865659407167190338698058524025619147923251593810447944618178939631858192759319391944866908254184661078453881161104953225200754593721545616506173338422806961288202485114969049771919103977067634221281614095286168684724496556930653609210682933824132532273831526577162684457538392964530676374478269952535207725577629354570841589661078954313748447424315326682009936823407604870786954480428381567435491678583569686036838177249270162228313680971648252505772622043674351188403370089141936865203153068155987850209340708594967286776438781774697600985685952942746549334256203377920072753948253460805659106946990672835230119937629714621915410970842764674077690667716086071272858094155685444378882537846412921986293723261053775999185584512460585837601050752447589535889880294760814482718657187135734892269464086051860856064094181906402158775396830991214086891310947494432277421405234703393143243660847960009579303877554940536123988418058959426921114985100998089926364527126368746104988247974865691665947973172071368214349968136880061266951240741478349129901310777175437934957643858310142474451532584535555623287879464238087725220091627023994040320038284439463906673712187315925821839521394403434267093240992129096274386987885657016101800472942995719944481574915978907069693241548819975033409221824434600592738281922680899183641035594252536120375485696860444118316222939912832676367900256806389816878584491919486744018780560121806557568437514728832464173264342404674972337283072406715377520921981385076407095313800747209707231097543547902013759786140564769927653193128775764914390848866344595600530735792201551638135436813470568178154672479372241833985653698047059360952515028482208428739544512137790798128233709893153107438306218928042715326208698982782537110197880042942305209403331386852006604055389555504597869310392037251603034344819617250079336475004115272638841458023489443160512312198645823608121795622445652949072784039725327772255297158962495386454943930410330738124562494571188622123230588371428440866213653635359372507150876086757337634877183885510112724432403548076854624992434607905213792503686015940018238266473505921647022660387449529481225306958988554948075777137652338922875444711842084945064569199024414796430016068564708343854709920707644531592697921715467489489804886975397738988321233810050873286567099521973851186911428646856673409564304246850028969316653655760610221025367710825241153198824930935324125261733730367863347960582521903385716585135096135497482771374210867255367818308328202162995751630783226449802596338158936379883704658690134080956763223202049103159395915749242277144184308594176503910147656463850243005623511983834548315405463909696143355073371265894400783494005300587136347853381460001422033983200048817314183669717852628851806599117201315083739898257416852209035560176135941496743801551989467932459549343892222606126138059027378159962619017513278208381113840777046950682867109313727252821551064809265594345421640609732071497297906518176467963633259533768835517015771283289814255246973672053462568743070870058645064426535721379660695857918768054656596324293842071310305386337332629521461196519709800281622925506075562522296225458444294670348512855313787693401219832178742995012559025682406831191574321255241583841991911107403428462280670599993112930689819288930009406673222857114579779623837294267346808041380161694962280520480929377845705741426506003126279491205115574823007584117529843844582450866184834661959434439282911047318445803895476682639062167169807369170749776444370519456082878252716235047767515204815671887533119543194526044764064790312454818940211499627573376438341335919208424390108642172036197474396493727198003445128158059179771867889966006432173809982866594510834767637708198571263372427510331678155663108855353493436657329029484650575522539995371315213193150269571532461196104916953115457277443712090864952652999783987987828617497672496895755023822415769685472956714634192346175762654118959979724345063771920390093826981336471588765845030303279196966075649398822717033565746989404706249078420345536489204343091595347312780990835855763639068841373799740492266173813209036635045949190833068687342112596944283912985835348639114810403319987006992450643577427847312875222698989678994629245195886081556214336542595632204537225928111276528897035837941419119107658297336800693496752879900496264183773106013081263032601361908407054465680638961310255572628905448259630009404211077522557593595744561656707379701986764076621915061796267622029054448303809113949672806935488644540789201109194904461522448230497551623863044083700037730220199668708456661280416587612707775175499405945043604358399142189189118290659190498720199164260180082714701295133247980759802714125308830577327127753026219833691880696905438254415880373548289716174459557798367332713500614910352281528273173436551797057633913929373338454087852718741965332621860241290342469986137347332032578846208229735082669198385254961011163694214038328679717333157186048714555824553827075507299638875619750254617245624350115309912659721073118619597488599074083203815439615820086110490194301870209024465292748962769874647921549774509042543225570464563583557018435769187351544923206023488832584568901580039740296154174275793320537371788620379559751932467912737404777382517769234014314378809131194688297081254422112202081054852782427207751564893763471684777976864940167214773166292663425546943988632151358173396581745498435876845045970601317013320878593229438777645409682720645517230947062990447459423804061824775669006651769178935181233579104667397967923025737131750773879645440549718202624694732605090342944354596588172867322480232549407890990745109619942513117979980424810933002787147467964630259400625705402516957558431030754449253172236324255820280980407058413218929743198915974262822931665202747484592768302587402280995815427076877556984682391016176048073344792865342241111107984448408892401872884228149876117930342918090612501192473215587504608007557173562394098652983787487393545758737000878002336178769125838767611815833355878932384800527758620630403943551018913869333748365898319512328181635698729148961422672905061140776537093451319446898613700371847395755212829026598617889715915414393565784482918750274151556398546643508701032181518159895209108617629198458564888641793267460504630513812017840630831302087912882593801599193517457658498385966779569194104178645254812519755664529889083001717792278358596036237922960966549329763028835562446798679849482037775236270019990489670809553125996316053454107073622665781341192136064887205372091997314294544256979911614210272241305790680480856558635238781159926929519741540438824642390300223529822752276571771359868300567760282598567119947567951403240002540498034613770555998836874572827063931861987919314458575470827120453041246002630600406969967034375285377923102627165305939041885984502188973288170554640378421551499218760947571465750781744051630077883022626624126787371469904767705015948333614858069019154125911038371165863343825955551264694229545410558541460628156816688578645047225839559743539874835895667680356287635685471511538025382560570680682537406585972761812254201349541770444781090193232067024999198057583763715874763048818159524850156616433377275908809623949258110168003540407902140240353376944988920721448325642970076311316234920609995007396699929783741209166077793029899258683955813566657458416899808186498706252016890656963585165191733766069895646886609376086908492796658573611954983385518332619964034659087003410612039997157517309527887855350597583425764362216952595647341443577668428159108751405718616887453029031012457848492183697417717597877612492288564916825434583735356128286919974610621089424932028363301098161720765979626986788528039084059821069747768813917519002989011796011228656443929122529956152107592355411837268612282138951106241665674635959378078886635108093711568911610240284843006869672774816327070613905124823303115414250471052391007730728086667549513188784733715239455779289756875961430600448271322919028249824621724647521840463505664192332681664255442474066302006807240810919446673540927752059913771639661734701700260219103152913359163423273588774423547650410248349308210284005875231028057395187778810455251981655048390852299262654390982462002993904199151806949768437027661249483319447930367979087366745563115736678610437025703099602675676163496442333306569466411543992922672200769049906758920345572957825762092008932496102277499884465849445254628017251424349817224246696839679219298912540404201022691745569414444380899243867528953512268609886811514178866762776543565815530857700457524898480067949701110159543351176654464537702583378177141475811529502560543162481196660724887256983623301622008196112799063057160044117126627019485209908858252882763875780824525232832997623327335665669767838613403673887828735739988427129693325865949509655299219723220982017175560725064043126887968831060654057644869260311648347209019158977989195875178055216827275196638045339222868038528361097868694326119342790277980670885900129251566057418719548285763124932289652140543743664439846938418640775731137923803477541656335762499970611577515900301981172900682853511361452601273028164122360989964039773702949903684581610941581864537424345694459925402821681320717924222522316074471866881934948781541399082491608599767914519715630530519679372919056760183049794568626478704241018746267995192811236846348419348739120532360040571973070769867234120823098823035701831072085823854450487640823009284397037484786756529091528639424423194023308827649913586546596780859841331181077158727607047272851811386511427655096023814224672137167505008411384625039096471844520880648447401414050367999043569471054289426974537788246004683674634718821855030078375935965813986488657773530168058444020416653589194631348730676161107293946948111696166154662501000205825645509279208653122042231025581063269945576431639278483943044702791921607464327960728694837358677902806214886910044847104941691368461854117381707319993254998034599766718405904749486110423683915661488552619194744953264609585231173154316300276077688033701936862933939222037847915914698068764965538919067810302049293736647004184652471117905999639444777471842241650529482435655839627890726475871071443943049663644555781966371599466211005582250326158670968945397986195501520374741433670757387252786939134061466865955022231491555816420752710870616093210968581634731995254755759620382053589048147584983119498921804590410270672606670344409241602508378517757657525009260599953380742311174643270817821708306214214969049133732619768496786033024142984154582497981741570704585575451510409464249724495591398440998659000388687007767710643781652109671610259114490493353536917007002435544782622758632799416960152345378243920434475436568362527708458005834220607006871259851552322444882953543627046306456746739605311327474313756839720717762829837396198088042495303332177538823922199789359541650898295108388655641025754191875182169995938416373243119402620141294433167680151847412694331014061649497776771454450498470180882381903330447940412670468846916594375659140676479687373185199309302149281996101425400791392360150654690214737165025782905793429213881120590979030018658604752225595361177515348370680988431326174388200069877299879791879999013474926111727788998754084098314117292830234619647576556603859079572205559907274086703697119648526421799787676204071550352754264235829989409966975650390521551348887233824634081546340951956276117654375572993359328494611821875757916229145787908278671686830846810530344473644262628926622891101426467821600293435723604583399173969720289935949543485248013200954506145811175610481765699788720471194323608953946648933893580704708704349930186440844425509048581048135697088295778204621393025127036117472782224897065333610836852009529477472793981723252946193956613791565956994142444078771950018958550071270919362945477172327531319307792664877187296326156209190043067904506324488507610754372172417856586724082611778836707456689113931651574249548927940866053630948708523238169836674186882847514690228774138682202924205293065450264773108427294313556233875077391601641137750293750789862354573689441636397585319086975444792421516895802928970516515639137694483235148899759885208536665452332880691566306409650116089460038645889842034941467790967319102722121365224968160252573891304740815977078349164104469485700471517221292070388175351027750744082535959835710734324841904745000805739473574902379489304378011946270359339395603766889938171389444547699699732252631286276222500554411023206300139834758327770981847661591017666591782576519235156027343117650888718574590495966039957869402630712454902230670671880342059909796708386250502882598691146138220532046670841638848310557589511436694529592273184739971170652769661804509910290122240199842539232878055912139175126739085121501551828025123087465554801453335203509440679168068926709422756780267591667908905318678694884828530724119720982368586016433521176607908313758925097057483869590869988406588852322242579807317383298820365125476907918612475523212389342686359559206610387018651347412606509217866293824483161152646850457034450067230987480337751223138560311594138732898433014746283284975941258026034051272085101317555012419889584259449261863383606121239058856607257748797729325487421103461040911433696766232373094752596499006561443419279965684088558058828923232297818319793390827756562448461888540240101566838412960987814621576215635963548376115631846119016939039346441174242805292547487630317066275087940654545434724750005258757672045451655943116775896912957537408136162859124766038603793516580279998698478580161835472427915875178284998988058655852289228704199156318917380244265127848250873444043085846738508561450118483683224808591492634154328227067023466585125281758283240552879705854817707665755223811915768982496562280142653543802706147589791854209610551930224303507605670683395510481619329319284655335770308438394877517091855631828429776353998703629943361316836833187910991053437013352661260582721595113652797924830045487845568230062758878760624035271642601275018867906960830579489866228462007948097008658667391263908611768743217337977064375845343423110098399853740292319067511316887648811535027570440950820186996763085142796858622076665954996907957006730812812264879071921305641777027609545782125931058177603466496883686087941181545845477594295942888669078971287202007496040441375376926274174355751770095258466533411335156809742001515968140516543069610563840725227628704764841860450635943326814965564414164162981173930860209712776882741413708609653715428209598834536000400620410320631502708548375369469433746062503936197052657462033754216806694770393099938192890243834045347736548397607418911351607854479710671502444348409772337652306326762400094667002381024299999235100882459108475091305869589363732053887043591462212979624953147445480441321974723527357654686411302693403902020385484024536921030435241422346135049180474439713630959254556464741214182718715914681807103413541012684619357388427179575559426761192275072833209126907120680686877390856813974631645771880699921117168854599486501974878982033726818413947527542871051274021135373130867978656011481122792050824312321842011573384866166424321067674773002585448465132030928997389853837217211420787669195436644439063078456297822729348464808880404381816128863333040999120590581076367116662850304797335927334595477806761090450125618709765154298919384135135673934935615866232434501832225374117895276625099758801068833225107311938832690515271279597716977920308834380854968095577256505770460898004634485107668421092424636535562772895777737626316064411156502824291985137117610353278775734044480294954104064109034979528892746222211122536943454977156139238421727184512461381526808891851500073801112916820152963189737358460661601272044831270419854195479840828054707180683866021181207511387004902633503529364939093603462000252008023338915848850298718035622866869825505158959045887702738885677181303859192751663104629379182134223474117043049808313831029468431310381987466718057150233344462881006184269346388980839748956378878443086109129764837369818216108675749987160402328754428996201909740343657639617261434761133541248510870805271529547616727712970400207714349559435727326438393198409250233245988991717363030846216974615107020214060899746472979832095640101037369100858395820884632431666707750361576652366762248009242675455078995101371017524146200216228517934050833848876594432372450720573894212403476415170665909471548273141784210549863752437620227240140449728002566360962569553477692323023987964670973356106577272884856874418670422716185569583178123167263053847044389792172220536620385932808793770812037454618588224479065589874609009861484812300785428228713130149795579453880106086316107168562109854438113011314901569956637240952243314907335683040449717313335932204614135961437007118947322593267670217311303751813241971693060370135410188773189761513114460835961353355366738351050116786474964006693468128206828071430260273642586248119505728760314600435182146503999333851728372287841770989393065584199871987455714423939894826909523340170575074874404253753429657726011695986787111693839941357229917266500815985038093008167387504007939864399767329577559455912008663046378540283834208326746376665930448589460114366904659987727276163856683799292142446187920111177699973092184420314774419202836886451403629116397997024201604391208341270686465614560298606002859029232948986332823784043848416708786884555391317783073857327190645371169313048746203594355390907624036355347297124062492844861200415587480036203027788182008917145001121076588660187637500375033808328583089302515021637095016538934343158629586761526303901514536930720163914284072476452985983490458719953807944298489232201925441546201007883692311520330255716519371636253901137980700095769659946056381867125329843410104819451541887759714211963581821131857299066144612745454955935968835938975632637815309381227039314893139556898879562093468193296207010583515209032800450791040313528190176528122539430014332244474439021632032732275312415024946380753016047078568085159418895179156433930794685661204718813398773449691575505916198347666082618292956528981915795867323571902542922219073639667819898403570300290969765938928194930633981076633791662671355228415183261990738804651205715569625269389129169759056869092776510695529336087086364280175721369748637550207872153470241169459934358142842967747348009848951909184640203983181971254420038411311551875046323163814169841807548781153099852022719428279647338733249866422184092027436315849031165420855478203183599230420043593282114172311365337948588537145802449794863816610829126031779804269324805835457817782715236876487488585951951353220926677752146299666501243490087338250998740758932806177424289584044151564907058203964544216655303781923554654980655795952240380414219748296472353253368212002122963233998144154885607603778352794862578256508972148960418717253318563614195354373960677434165288660335204195535267552397671807372169779268597482381962979180909477048309442429427888080412656071112118800898040410548613890729153891920754624696729944630608662114593464594192583290121865516838465149560746288648164640713977561464100658046984505807873368858729557809491302717541503348610849479883582573108760402126149563761396523522278348463785277910108731211176030620319352689871987682375802817938369168315296688034493157591091068339688258156791181865604550201133306276451959175218934814004875119172010234836992447107770623157559346814201662390399147846797216216492359932140074640825156899909856289299753151187524847725267574456492443822068355268739123691620898765210532060400629671302196475405874907517539464666099149643051520812762138487396971366852688977816743583340841011639798564447731315398047732104207124451879908369264652609101755738707089817305042306043391704319854953771155623582853240529198504474802624939376555992909645735436398166191239923373193065516048028265197730414742871256471101466237490393454789202854030727470828686173107845611536148701907555733244364751237486482897693936912450203973707009413369621223452550203778128755129413848073358488144940199595078050224357262348096574117495966979003641540951784577455710275485000873754941898188317873479438334923885867950948625979594743236152821258830718402415290564036541777122760274058637319666317343845810664282883844868232069750522634885233081642406044353474104262081205489351161110944960708128999459480630358685601203116167608361548489838604398234653406945645386121638480886938375237910144653302696483707483058206823803990963664271965760036835656992139095031036070016882207800700398483429758428488166118825975426044813858930673596747865242540092225061536417418353690893806412365231552856999314572379308079179107248949637022740810809164781931925842546841172179713591229716266987362997211039864452731493571647705926044817632893279534112453553386401502848902637733329724399673587479992036274130764050307261686433725518202236844063258210856764467895319398354672252877552296205721146391902972126179374548413973029294105824680375930048657906726849555217915420518808185595308237249093333241117728438890086898720782635209671780664028852591793341854441447000577208464965399702565365135855164455024078876729653032997532863309271457626061250022450097336857372337691327088273846865639576540577998123786226795524792907722631345102630183981753470479270060745443919824502440691802491218664457398606596545745091157041880118857723760975116759259532457179094738044633264471120719661680004760404180102294859371817519906971938795151880925190807150653574439789864137771236276915094143274500897497314561789689206039967206297448402199745792888283001081699715854537894954205408430482289963690003135253297613901177536015854346640877541259833693172273422903305223669461103111525259424078372000063107994616244696929928285221988521502616747773880633586626709454540169203405624350130910048686148856874141935812958892040083063786192717247920113555665930181462599567170090410686043497466745573050056718083130114763741885759843566841551141481460598418173066180607960150086269446189863029926249036657016684678591174884527046853991137864965371128006853319396384202861953358060523347758691584128527615231964610511527049497803764094106335864277133718599482685811152863679510215568925602090227814617150617778812718241338242052747354148045020684518729210614234044683031106100721835812336328885852746518083277508817725173281993094176477035144941908766601303266871874555047672256918256363626429871676673938702071283009905992077262411179957870360423519521032462200309060168633818279729977490443308807516354165303395268857194907313369086604185793406700593727958883801654939124740700079615983831264094947064808540315383351308391646132803013893223852547481100718105979314590600176724869238075466221975737643859094013937857452787713907747242927119173526580518941425887087601980030108217540550506462646645553609299044494869678800395789651564697872397811053656477734495342523110321461256893586868104714613027615901390934287149824812762819207307766461494970583037193105014675080844298711151642879827130756991632631470188228085054706260500821215123621781044169706705613831087341028885440389499597988182799848805520619226462029039892396165296942381448657683481030984744740544464137118707172719030271907759617835284857382127906959895233902655193847434358265396084902033807593153661562394370935996542674229023568143000362283838133635434752990475182862685050145444362134331492708595387050999926197699001683918278086267035249685501502701720268883391778759844573113779559299476623926232382800140866944968315713764037258608607096867938780557160219938618332390615751786452870911752114208081828911147493872435051587944796462644501078165610418287484539273939509706497574200461133515636663583288340588566235136687878886946026286165147989205741201629598937704336524566274991736222526503384257677673342620263002321381299080422813384386494065676606790987702641334648660607882837196467345257984672772531865650418687145041571451113812827258770207744119399958925910855257404210215511536389538982172453926801471282681079504916082247868564460371677900350123737912933812337572728381173969449694653762877301665017006852774332216008181338754602560546610499547449961666774098613175892003234415458852728751310787410806958118494630407418487230822843799127774590180670407178951975651905986551471500617870833272183348349227974356525591945173539482028582546194468880373671275484607191310338310815460416900680531129561921518430332366161898858688590442302730991900731770889008219731644840222793535947711282970827442161647783555423460801314843914540198095170163484306557500481319394868970489758211812746553747548485764364345819751682825076252129431824669801635261556277958151364745049288981887376651257772264782685783841082331472930280635449608581853610962947676997486930894156032333309993861572692283127030458992101829219326207646587026183389025609414244771235360213035948407929264382371605710966339688238249044922143020802157104131812187239615820563989011035635919113717654879621981629419521406111885821898323802187596306740390415958046181927154840894978982910819885270855627882367179832437246699025892833231095630169345587727779244941334619904631450571470413718930922778019645559162644765767581384111100735904000654125942749641303082080044891683184843963228147673353190312161052949472712536557333632150906716451152138484260168216010537684438861240914334408131977089735408598102215485133296820756517927035317232828313498651322585132244040859887653914141449660913460814271827552074336987335304491296574461958907651226986716771509401610078817176317805585040724665295597179124944987387999944048891038621500441183884118237080502903451418905398817842613348572367501751911773072617364716487124825980127635752551718931779769499105043547418263748641907515730685128449185138348378647528605807830018402693151823731611176535388485921805042458498884671481592753195742963726708637217427730543875121842163856075525116655121458016627805027669092283725656975245221287689787264276334799115171355543614773422904860107311063590943001187523372222061506288509126673452777533882551858107272523806809428820063912355700249076292093460771948078866444461207789643590951466734369355168130323881167473236836952281592806100013904445755111128888640871453712020230478077001620570117024024349945788854910141665991094782344513671157536521016828674923240235831117370876769376308249295506479232942639599289220680148315476059344358334340131609920397761353798620057721457221028736590277108058989756597233166748939638316031052251596640680195520556415112986291924536122095014830893346970271247536765559103189850558761109941221778279786738333384404249749221015873697032483910558287823240386685270285732084058298156386824764712013989843610367353516134612257525183063090489361972940567098647828976369588262594669336404545423938997001464512519799742629519114949270643678567303378594537858680215490380316626109685792414483128332578781862593785295489128801480170985651686022138201978302575323110089238394212187125015715803446237762565361013515145575146694223429520430691064193747175964303407779542869842324470064197095835423852231893346532270423231168047373422364215085815062994300786655935776662019162371639626539380163447588132531904699188820687704888987515837779478766480119013710720348907665767611522035097525583279567291629063774779909184560026211025163993705091153293807862069559734288715347711079990484493670819619771705583449003816973270637125221362415402303602817390756067136213057779124112723770016570397081164790039465503303814752599338838466167052095341955463522936781079848957883118340509904469659727270184413873580271567954774653009024765944065771535455951316924172632303789751269602373352204438352821785264058653879122994857444113916626694508479703683755942713358595758588064918524192375539806783017897048292068275756298375801265682717930659372704138559867464268466367923106386883169432191298932794715862368457034007355915687011812257027217630140325186302636443060300466074962137899672552190656443329036090883201913934923596073539664324645299906926501218741681682466335751744267035537539173913532206354738798228879858104612439055462133137697781902112919094943655345126469331027960971293081337870273328053710691354966240967219050384897933941267721887070326963826225521789018889638010170952523359752987230634555096302580386552640215683484250467426941718052709941749013080718221511844239010197130959112531907770666181654247915803682604566126237083417468053844683110185748967000276704649797672418223269272485287388162970596086931925307284941254003764207829440992267292223755800887953680753603127901621462632243062218412742299749567623235455156650406806710677018804806817979857685482282853723408831218851299439453020205900929998598904351293149013970286348860171266684594839478891260719271965467439079278535123896406018098879313849957674920507442827852940027838453293630110853079206190538667219967580455448254922563478075752230891738929912419706803711738240021970051092092519966564240443573377105594942745795976644538974938809909098635064538439790407295907487808231866656663994617488490588145794836055914115923869047935539489066675838371280232473175342007889840330640336016888220725700755191775608492696877398440729771815260558026133053711979739916814953201092536142075100110491699376512819798639777741392750453578308430562788937461342974387488863068989937071590818695012769404412819221213033462853747447874472702894905308196357241092109510077221277786365329300991193761579202255069191097453689299330720010839083705662476409835757054902001004435003682265659250268624485924961935468897641605944050443096597302002816383506549014368117112130845637707749446717621810040189100422334143542153557819456369279052878414223409337041256145676972153608403507609225186869036918112802843679319678981499230515010014435620706309126359258134129450324634931213234906879463072248644244458617259143293399000089213535131644457722480254739333395140113713063143762568602316154787830724427215792380703096386541131774330009240418064628217206952956689753826660130965700941162729528125538545139245094399177389470551714784089016214609575581895737545601022236886909912202227365027858306386870528948435563212947096301590209497644675913913561840865603122746677575121146443535958246657962525441218594624036923660392430487897370015293735019931323100940456789536398914824391944773893430260007611920811974467177036261803366271647530564326165022467783588328880139262344676191305572154154180708875613593202166047252932967421957966023858387163938419630687653168892432026451172496864176143097798343079675762371679213832491241676673939924497401044432982637717442287317166203284252076695957234044178999418528158904464723361870145047093275383417340705637840705492020907209220201354765864846214469930102432860725152187466107903769562110908812036866037910361241035578516636503543697188530311848293719010547222696601754129977274138278246334006382388713757391573057790722142854174812718767081847602922902120779787670091123644579289922886189092168994867602961556688313554740610257742840648115988200472744346793254286692313483922078794316315269915324028069474379835170618714783548112985836648078919438056392814320490009421689885868208474609957847027888286418384687807805969601564490773557322795462755546496682411699567000453181466788497371883910307021919270528029242296139156374061361228737454224076701135851137435506733483607950073154899490807782442372993918343958712614069077099929647658038205526719283544771319517953521013536427357710020199102960594894935901843837080882842578740049371958045783775745253740201992979329905333607624013218055864017724589305843791492085324317694539181565156463593799962927962360783733082065736696102559681789743545652945441521651116505351831005096504468631881639684438118036603413842912934182309981319679000650955298576477206848352372889776640122834521182069470876573150996324803016071734777829635624669337146501867514292267316868049331176942776806197316874944090891574495817546168254388026483890543993127843434815410604821800296211177170080023558143337805299821339934786755073333557092915698462686579815430363231691298174691146206045289594842927859045700519208102720347819458367050573453874687314548753034828795421303181405442224196912416123433845214269474609447200040300752717079527328800340199873538015617546905141627618065603236435872570833183885833636003384772241201509147494955183610055999340335131445766098121569625085298000755895914849982367020685547100271678333625579594443101323759362202620575112401635459843367706506100050019715525428905202681665291029536711767210539175116530754931908654510903549457041298919046463596290088090153331588424569624979581147638104607881297087789114352789320097045567174332588085065032932112786561484664846376909463832819842977301278841999077765576457972648931013602281607758778235906862502125297905543669994509945435198861017403415101178563923809168995385581482737980831707837246742209739141720163668141416717502158754705341912320449062881509776932052188308683344881397488527878561054607445118336206633164425635734129889262044516732390828810996748032106424532336781795217273637444087524752788401705320106675073435154031195103703709003298865988209962440104459088386655898578308801027226453062009397082803055993247124722945415944742505477269458912103677548837131085460606225004118900633060907454001490833503641776846033300697756670397426743363754478660596047548335661511083166368845065264637298110652646323168539049102251003757660426683480566284199506784845030791444995251099478873535788480732573462044092185376002100105615986767584858488468981651350118509811787529229662531071890317363190837310777286485338831959125723792947341559340423503179090893339954086479613652063508488946295566792038230516423600276076034840330029694646362229298563762995543120824115176622494026778669576328968954243687013695489041484006867992482818036055811399804347061027120111135959777014554843264892819504655088515910859621052151536249189458372931952311717705699611756219410532096772582188033436892035135138748799303902320303066125737144295636792771577841093742319259979862490089469582456355766391096081481548592763764339503947181377185528087531298583298596741965934318759116443231274802637681416621288843223594285937523318140231281707460186616955646498853515756715186903977650976070463203582813099424819414564547891169707425530064171848655513311226008788060636799960063513055228017392237923949288093325956242304405208989327284632026708135343726961461517084807418516528128323617336656460804333388993786278993798272405478685095240908059287666081056307565028072950492544779362673812174157383177471314930865628823926297006063357485792988776954018400020447683063211540039597847220193635082194147728036746889425955570692500420219874046952784453499602009043826627626715393144992962108504424173861658033064103011809702878928889583429899732267528879889352279290258737415284812991672418664159985397182776869312863754709284554226460410763215624262634949488770725217997355490187215387025580433125685949638994116440315360853024534002560051347410106148197742739574933757908401525490653169742528734094260089822664643444731551148625117408211987443549457591011005005922321493443292123859673034694867630483006579907462627531925353741387237304173580918013177969889732292658547233337778437727797452962582085444674102310249455628594524774833927175821063115889487951219877229055850703151544958110609652018944925615727032006874812298316239506584412016522492684805489133289566268050117824059740629327337646739668495369779741037548598274858244800480330535617047467585817724554213598493695459192633926986544176163584734246792754208719769659955675409396535949062530965324451479653722012008243085755249304864043572481648056030643606575293458295041975183614399694966641690768385055047887989241145037808005079877852113585622747183360071697239307694655808820822372721903908682650163408029550159502408902540642997706516275733871476935149658803193516851764062542021805522973108356660525836562316673303358842189229877596348990614663871169697767493160958506871542403641705690442172374153263420498284688268007081997168048636926797180478879120229559033379892472440075791939471355198882743665052841450764016139678322910653617774122285636918183683927781484740447956505563213201010305230644690056252798040666707731610062966788142405588898960101514329022440897552884460222127611846256144114800590538763452213235442446344973017197763760980852562025059232563764152641100715226594701648220446604890929716995529682208606256134503150626981636234338466536727943160795914186188812070306196115124651448397432833226926461613852141299116368223023129521739399122939465093311143497643120673370047409175139490323304483578108385583416574411946163914501131546675434458253229648646692618226072997821972132756480046392410076237322446724318597102204446032440724823776117290534923787291953035361014116033061279484331175518547063805980923713189795393955936402514150633571422554133472402901764672690455591525081910709140269809284500607031992044097952691518652718697417243937724763881471667112386480466616185157662635440017444446866638062830334635873604362962881137556055061380259484479198809369293726150589905388457150888185144177862499646532808535331802500377872696228747798838982195894903524352981850330394549098107294546091643807006179727688887151081128568819818640546263407976764735437858476069209226034654641115708904886247975002335525322246878911597242518464345395599547119993756463977256101811384531199825125774281495348426144649689134397196005775976273429996128982290535269194012042986420091662336828354646845957023747081864030982870045194907960619172068570662106669473322588611799847215104287299839087957127065390512050876721273520664549034962749579902033680520236432590637406457868543463476334515907273106138023748242558165041734840764784577130517609102286515436895271207414569579419617014442263860685663446249452023467862381046469831676329675124889141112369145048183514491698696034115316277491449351282560140644292072993354325972894454292651406667754046883007806019040998922525123353300405911313106089881833008281441543012463748721206811435813082727768285760986192572837738321949841589320755461814465316689492097383375104837619318152586745307367392829362871776690752434896314954814360740168711776259997517934962446082518415483113420112231930081244609486341502058105087083201960005921048891265191666971847067858670130281028058157229279351090925567610142269667850693289425573238909546618881106614301595375350047534352001304944414497071826377099711003873557845089991166900727739341037775824549657822950424060471579817126053884500870898966296251241464668126267072970325355730726368015377161752344207491339823148424527785837611082665517106706925684518970416073466446180581076342030380323826753344826127207281304777476061955757208253958607568429155461410413564952756111500963088328060253354766689225897179113403383814912485259349174384770484365442735029044399540047931122969173463061270640948649636616370530985148388122985909575435684623972504377747709231870181347325562917146873452483759973902678774113130466726130994668436666491603542940414192713985631359041262580508866068496167135910650504709435945724318722936252375053965511293057334527441182634601743889354500483432257358651225625182565370018332145135682417660845573659382517626234170473191139907250375470257820295502168719680211676585918028585638720490905191363790866632894376668449114647975735839756729177028363780488143425043232973827815871314520687523911305546415118101838474872705696062221195633861067519856643192858840156051092402041118229806886152356109752156670977903487920063568415012787957225573496294043365128406087044671458735196704604434280990315115265488935444325179279167040228354520883754237938827250867364357311765147344395935253433965132713650023384252759516421847697436144729336796678992035928819250696143508926602340465289477211844254657060015381420655238517307650270500727525698590430134928530462406695700425312934763096796095565447328406755461576965303428311672393917421450663969170829973147024417107190641660968346713383717241349677793175876026080932585292023718600447315868694119747045275755233161589269297493049339151864792221384701515941569307913110783314612330400104167950798694445354943873567456714288957599076170649791308101484010253638341470871927219531294525895490064947674073375485232700322528046483491721419694655966488513782641568704935523107205420815436284502461662930167761493399028096338910595788125958924741982914568912519660770953172157066422500668651508565055213343381165710611214908077984278239965021830065835668668967930201395265573825447428609534136860894449362382826072055304717734914551452411986584976376237809875894462760542631355966159087957525414100400876550387864436086535864228169526885809111848055978861898858411214837319256587444634407115131719903157893301164420136467449625176545566108940691675862043075027131329071607405073218408629886945196162381345290537734996625725433743463262128534235647079517999544043577432959300702693229026131189970296135718924414766745758892042496003216906466492822072401333923309491989498362755916159637704700560114062122862930273408917372598386645553526516137448625097797942532932957919502049156268271796958957335453281586205479707827847565095131663610328324516113391980922494059814226376251666404220517885666159091126655128752192045694298347216542320112762237690148036082749267594990098000899135273123999813888720486058683387352700552610915462909510517377389703018261960807719717745537680732780696983009962488825818189923822880834817189307661458024683316768634333821989196445508248303169973348030143446646600369477538432998852397369437922082559391479071340296009873414615026965622598961424751518123745211797049006253223817164312859260070217773348701289306319769890766314269717490340728074883804405746922545230814349137892008517358019868062052140957007041042866599304583914220353462191108003970058266368925716164528174737986106097703656542782914972830244101969466604106030844194939090138412452581848221537700777665666112923305296588572129174397512799612350231633761151940349411580440999857479144913940432884553493995814334592810414063186751920333630433821075075411365009521440213735104613646644004094007950392884946894776475245737827526129081876739859063263571011095839173680798020853843232429081588537796214456966199209018703445847572658022756812488785032059522180224425805753084297760663792648785002893482304063652055586505366965659273280515127512773287378104007644961858050274404472311684705577967538035726476200129838779190633724966860339448456181086351949903001320226725048985352938909632978860715345611952774782270888541684381482892564982725451344920089844014346533769911005197151128257536068867772069488938842087873968709010809915584083043601268556811758926031186714287279794056017076754392019980190062209244665311490259101858617962477397611461943737785574893059669574936353393725506559378263670108386693725362054233273379196129155004490699639552291406407473436904082587676715336159379514955311803776155158557003838712819008851097751577683570672537152973089256627664374204114614819550868011058137022070271219373167307720040354279541264196785837376242204893668944942724991300318645625734942500111211064625934529794888509038449787692057625544543996512318577492319937456710655276625369747794437618212868877187587436197661800164708143260604596935308621377198284747398182696337641352132206269804920737758206036016524820921823680724080884060542914027550559266926485914789411970584530778042356978630600256395353243537181836143496483281086898985945139172040400552295384445306040998985540098874553856927443447357026860013643328681572432598309934232976722018155495164993911607930020158191836485158134594117564398432761417250451038551067791690679624048440012536039307139137121208999697539295710644069250011061377923479911134457244539836811973304559031061474519922327139925867182785952938502995430571928217016635459784564997938027208191319873801235508919932186428541405705631844955219468134358278213087416797241628138830645433887304525952939072257963736478570580323264625361438219296681269392426154523859168027897391447854445864040046778799900964548562026027989231889255997448483973443184470536011544161882596895886945197618600011634499178909939618355674025528702394080545999376439046374766626124609843525651247321474380737365187844055493194035512654770678980840977425925571204680865578035002206032837709360926461151514638852214150964818574060310184745120383561900423615731881449197475905522209751157588610055048512004472605454290657652996301492506188430908932083823046030855692332575131030793285548321951538083458149182122070370117586361666323781999801514956385561201801776833546877511882687087305356397642566154619409110050570749700934562031140451400527919775561602118923628652924616119594729334428851628960724022413387655479344110682161527272438586155617508578447654145950417321237130931405704915602657247262414284024926602215346020549962952097650031650515755773342177146632835018731791840512264233973650860100675653499784694796713965082924417048080592477064454297835144675078985534790370784096413712630176657113237973982407274141957433637548398502830898586285847238531001648623350855761665595999259055755577041038544987034962475689319510909627101283745674256570709396496594261478075757394831604271858227084305182861090229739737214310808293531054367595987878535644653043539429168071278885588154039814864948366056850037771716632237332842570786911570336997407658948501738933781855624457499403408140036912994965966546799881438127989240416022691071847451653719873711858009522536850891419146269514158764339219649635729845963748190738762029528041645093535719897054245536252306885666102835239212854764343748221880948226410895733021334646334786645884671202231606485431791924452597644327909535982064510307442889372637671144391940585975408174204435884153519182073990262727623464797342043937337761395387756007798825493324812331808709759778101088790849765178762564816614490145973752242610024135356920226637613761599790652145333255629680315339049889734756874409656899557644516859093847582312680473405795409672653673284826043843931378012570622653272344602122658341468405420794146017368000922942542881306949963933186260153068131502790502473211908748431970974305035437195847487142108823175893863389782281363764775629657418244960292891003425518492363869495467960061789087270537162422054281201101450387582456612955063409934905745206707888715963530583978013975751120729826609463777687182060402128910124854760280139170672370880518363277610853745180869358750632621031980081601719980052219953108193673998587716376224431544265802856685487778427943484477882831858287417168059306302564149835126755362181392808656940894080149704453695433847473809484213738545521161481918255857114403875010985030120885791126828944031019004464157984159385443120708841557475640137635897178163688607291828983699090354996911114711862199936165196086086860100175713218738687339955645423949779188899870171577822420991420224470206232162457204473275514156684142735277024014393599731373560590695014179723322156720583968910002184308527331007186156122245131027329339373305885702962350732429970773779995251019897025777459357345367803521811820704223198027073884301796839733145735627303582364684496958695225731145013819894515269806005250666981165630113913510124349687785733396027083393979712130164860466215038083612929255584410813291770001103538963935334131845579378073179280047694633569103459715466307274839100015587283546483109765078855524561195209669163256695429338617023936492325120734364360538344828684306181607732808410230338654174584927371574785659022241187037108397976715914833520707174388916580022998595988438062204748393292480972405023722624087740905580391530724895804342454119387554135605364827777914660619483725915518044670891440191256692379244291680182785131667252235543030133961022599021471853200942333470693180180075988394568512231314967943608312306080606497642927539414240071151100601075588450492855112270905156808918352621971698910365903043470868723675840475935580462382266686055627085062689194508168391296653762924589793585233386009994753523551960733275256106263815657617005576086490247524089405841044381374035188428784683480534799417034910435083507291525668510182391554930912862857920854448883439387525811691189979181260538351231401623591069976164419029206505211430783763141931694044837545550597802428118735444734104136642555968258160645576320140498554586136532705935001755822456336548131329019459554083617233787426418371221981627878675775646173025148530950294439275547305024301766060185393170884420595876862560647033588411053744574000870999668658323281091760702457468978662407103798139770551060720687297578550138961004519807166368735431311440010822898725216669803963290989042666395006323491838297471458485458290824038378832174167159730742898321548918436849630643319413204158048605505312527071386519890517561080918067075601065248956657044154237025295843939028423036328727965388469656887822532520197286657799690016970665445378812959663084277255059508502160838443667695623084899724353418369023782435970665309263235575056083874835241826479881491879788522986813262910910020311091734350998344392813788506594494113780270656929703167773427700277935739227416739046135918356636569783670833097541899253114598761405669006497483254971514628127039698798089549491138674927398893166406546334489237988387248297007895134243896719201279586119010452114732260550214877024222617616321338528566641673056551795080730547048704923894410477123612197415482103144593273671300732966294688653869945612468585519160550133460412173558304779522883713780691774973096782713516803388934154684564289461926952821845668099281235922276491159264033671760163440158179561748917851830153564691254873526877060249120419348179112175985195989280698947828208828389970683419194035439699056278656879419787914233224399283843132503627021211478715116976163515349749638760255171665245287639671991971008357363244347939678665245630285639023509481479485682873836347321587750615399442300902033455938262592217125100621116732779502004259251549245618336973515067348831008263751689823818234320966574640195045183883458851347644195209966797268189490177396453979040395622225139742721881308271081932483242289029960743679285135894996054987595846816080193400855151259229570962977405448561551308748002897036831157762662434905438459684787533325719574077566396680171805963819784629269034701403037704227213881042281669312582598291830087460463164335275153062182545483886820530969982772366087854143189401557482922545552069378565135405628380308550011675655621329196515009511403593289626683634719170385439082611708841746515294357353722396060468533639217869796229049438676930674977523802845427505925421027657672484280871218416650428396658519945995196413476336947546184945032346345967779435275110741115631297901168080038038293059204577488857476619377867675763653032162141428871317687958653260304213093748863507068165029128737243562148992337445932331090894024311871155016621192448161410520699192670127674091495812249892178526250951173060408515672241081517568507333790487811645814029650501801963491028010463187827507269306282054557216444961042498428559396352178220900046420747712624319919971029032467962152766152331261661691090828843305015717639668360071013292431869837005934312052492888009776838655612636817552185335389290824019167257875808246079093788966871979230025492239708752445814614120041884610347064556040624179274437212876868872298527495369736402435064338418920378662325658329515713388383197487362046179024609653304269679489110957064365543153381254688239671781633425733968570919507307849765295044201835021322557333230843918945279985830634834787993771441509077236838294107207527502217957174732868964891911521479311170941373805041973976753501640241975291269870534291772654265212158757104246205735414245242711425004511805367935319259984377945573859057688483211763992037078578582745513137312051992249141987863101241436181795363915921123495666874512290756750885730614480305800884913921608082313594263516489609783842824294564584994816025366236634105616169530530727617341834825304711820061405401330060196413506836065697214617510841495991201835140329398224351683376944361012217451346262433162411429881923643180453477193892144208880317672860963174642564310938099896197528277385269326839824908303629801247394649048329541061725256825625176930296953901700109403757680170819552235085707097357854974851294032244191302342516516467692267406955600672690981601282907904801759731104921035444827911801545653714876108996734332914816171234040048746044964370356309082144897237977318247829662526509617898339933387589122907480566993922863039910087204564753470377845323014132648228797603275672738329435264184813903794983064110088759417748837218697987128238924002306752459169860237209560350236701963184582157493040232786115962171480731990047145829251878920550050954078791438833518144996423693202619735066570798741874598530956010092025220796157907831542000032142990803836734273042711230117511979321577976334384317909885999799434490893897052873423176855492382903683792479626371321958040099739283364777962349164396549718213817517082178454334058463448261187877547019029102749822857132590352078157320460153188178375103922176123143096519639978769477563638249757860803332266899582709314409706152867921683024006950147588717119078426858424774680167613917408733446504821320981375444575068543017093838073261667099357213744237801494400789478767679313012799295909952080426034267369576675808434284576526869143375704575516042106981231871134855510297612848889055459747159070811637396026950997801694990819394282968627656991480206163319728822642898234990944406353133613187549890216714674645381130294500278898271978773305245400652910679280211791290905131058543268533279441972469261787110890593651148764158004297026263643982058677380218725212896674116150496342987534951070325315279690046768196688484655290019535712603989995750999599306291041296358599782440992518615238034750361597741243906614975283137197979493589523479583242356022928438003333080583293968006393447929476503369510244657321037650233315871386991131071677627257280641217183788445569970738625941595401928910256564872106215508462196705675593832533156116476312877850314960588978030036003490068755364193515725332598493210311524076500653650670777188630229658060311526249947536647822048205594296384366932845250290906967207202755437282542349673371431875860962996432014256836706432863310581748649241792010040727856227964479317022633525287204123087428741827350385838412912621378894120128665571680990467310152765041062190683029957123128947278827036228049410018150375393906869271483500678249425480265216979232194512110546799799539193739242902689765350605366442737294347099887621394183295118311148121886100903494925419531476442871247401347801962099858489616305235741931865128642333333998515988909452919525704564572263690079385787530450707766236886161508955915336317417240092203005677231951097352086674425843782949608762702601565563789492066479020151958740159640049173705890029890338136941445670585031151772313430765392169748231937989865187517443594287808303083642171302824417331551156339138355749054299818649737557172569162027987552419076563470057965834877355302639826621902072707360924065406535816927250955899649371858897362418494563293432780591148164723116400036143139005177558296832691754772501457322919612936725846099327070345557546255569725133270658901519158151381353176162770719038155925272290855519222053050041383685500513886772016757906116702022571317726828245236167073152977090630776060483284148471945211342100206791116321516638474043279353846130395149828260032823430589496513953159802786437965068939731245575720779479669021501216644068641451235059641572556389071878289959687168934501568665223164390518143945139756951421052653749039408740015301045982107153739956902928066411359701033832515088653861814890563756796520701237800402985234652931755050620923056044745815930193326016643011717628558431904086815606575289501943461808385561278485102102072424998700944661104706210814411619334671068979855252540061390454708439388308064702978651263692305908694104580050745804109343048318405772913924149552497862825149121839506362030414006231683335861682630247669333529977132999314237881969367954269654363577562720246840647498236831370575990022448227153647319854026012622757259598340888051100755046305317087478506734285053356467704340623802475568204115488899191330802233763175329303122646493262894650765442839562844069024352181505142049373806578629872454142411903851049569297358992467583085803355311727013026244814331976501353223864692304582115995562798427632892114134670302513342643365439050045368618122902356191927180448131448528137008937956366866874239257833328251220325762547435871904228063271921134385066087503178339591133784097144697486939216633880011514994047477634847214083261054121642695952964060717990037867123569795169823823343785085920460114527966362090955988445572092797502538582527671270587301588367873364002899515795426281487812787192283177186090435718604190834764840632375588111415424641491595766844175975737326878386393814373395448348642344062463260839371468387064770432032215126343381630032139576981163029684082068638724963095018727760367272391300535942378710118091732567417048222406988484920242995868292066416870004726174259555422397430282486696664829372961946771443580737317697473306295055470142466439061240448602191497308326814652433633614587690538048096886569483308430638743518629130583998092544767314784994003662319693009616367039382754891723717838976448422907697444064476031464511911694893257516199192611786890541435528520895744232433924775001147417704558052442683251120216826929255632324160286086096241570307408997428516115979603427863451436031545795788405538162694971078533797293338995161926782617710672355681347149064569607400019298601920696539022694289135594156446462708565548246576045226618719064405191950546834083416449847155334342213893945523514847279714524024372464261405228868238096220519013380600519337900657006619382169631471995556725406665223700962082995339501322419301493146712152197279535444923556283442363487302200025728110504306444564300175703660070470258779962616307481893765778465333089670203886182680116804486263866685838385248529851931794474998040577440802982274462940423154962690698277832403951451967664830788371564847854228537098921495575559925940135704736487438526820925165585888839633874302007240663157540659578841707710506271266365774168080329085534184813785118062412777534566651616157138492462006647529880944128083367297130400874987783912695981108017965234203137964606512724185704803710894397399589069168042808041355276401220882817142873081154907820370462449557961261029185441691728617626190156925768400678164480473157916468425316590395322500068924889701289351198481005499879927215110794924865211644705570818728926863097672659307438670611844490078713361742807637065720892633561905884737175948862180396934816543320048449081205369813899325100910865631822526027952318745951665288793365184461495045158778110870857961986473940741576155371475500107022797275280203864623575402993857483858583262247193578426938698311022911712866209162512585971303827982940760677457676713254856325769221162514715621231264977276201965981621877540545279625712427559764736189539379436144071027267817499073673680299161012232305990853736527197956274002170152354914014034015507104784344898552307329195835802858137891465616378730016432650674456394949189733729198082243256279930005624223434752582212812877196421394521561496469735545458077992501713357891296871320568102410193198297412070587551027998918561771225257735960479533722655603391423756886714589535289591628310385022262136772654527951689124228586693626983889976768643216072699382825059234356899337217238636556792589164739555759399592249535206842224291017736323168156260149452476681411078099359198942952987026800348826344292144700098863879734776292862123762251884703243118842296186970684802890483229034404365607195563061100785453015105727455467919743388676102777826994205139650524832943929775536470213734701440893107617604565804630031848079376207195110419748937871414338156290119996020455614469999051174134163560602508058802698455086072809576415054375365472963124948855824992604648011581142271223985258210827139125059840042751660332135632262997469216712209029091308032270023473999453702498492301810952261349155415900237847745696427698048967882135207953637217737657122336139580805242483503555676127305727138115574875111911907986155797282914426771044002092070879782402631602362805236851117076118064322318389496152366763546900885812042963194370829319954679516939498897381734797665250866097103245252524879203136683422275835742958110168201584617260975844656841660994925629686027535579205276415844596710885764433640423315254370144944559494508271896389168692685460202548056278464652178819868672851710761177519995674324960251178776526833968673494459320094142541422434404613038398167249517196644143662176163610640668850532318597723528326617060391174798357139883033628360146608136261588682888640126937821044920594013898549421106764111070743079443825316045422036749530568475007176533544381207264504137915245593319063000680894314301074926959153093549518373888197672136581823741327697847822411296460441439040598557178098050448752700365376605493702948956656691882586847703092091533916186825533696590597000002014121280074714770721643363569516205404287489174548750837718934863298407105577367726201728854289604940103276148762503478908034109061639672945476758429967891608525259199912076991750576058843337929546932430518253289758358983416668444175686670305912870639076871383430732521371045594778036254066445140463274916598809648639505094795975189315892180842599303301843740295332299474628998585041372040558288685403626533027307441764176085958331886338169919457772046361146229360527803673316023467340035669982091478478095585509985526438356725391845112264504635048965926940061582922208227362259253769194288060033726783857720056149748709298862229614584900977293159464267835070364639732522852162955048526278856728925659202767342161480341269469408151638375141684185438201676107877540835921232365651547071790251567518005903359563789459415547946918187167750243560725094639499729633324438775570315331836620544157750457195216167643287537908449520862644155751751491313699872699712714959679932077996854591908966364613784584156703061893357291958144651160907851360584329202367524034302856551171273261532726408391653736030209419257949664614626491513796911966629027892735611495112229057035622883877973267191810496712304162116160041473113825566685482663719509680070462167633541733315952167246904548652723302144759949847184891772212640616652722083401573320673492358042655053768014263195823394378965774952842864076197861083313743142859590119883797822030626144602025392495153394904355493635388858434096569986685437352653037734343563321028184051607223659221067783710354474247162229514433425924141107956748617399736540800964806415016881675831320739013326885671057232077604033051038836512482015682892255163231874324248376431271016019230701333493936958687857414182848465699966413762661624425405408625512551367293905739602430864147144033618799710817775694284499009006756930541760868281677188518015142114207434310483248713302809486702378944032821888480814548552344738829409609719801820524744304513461027226953949134975656718572351109860860849872272298819708902514025938879128399498236956280687410089926923561642343221998337055566804891674590301667460383192243980584016199898665498275203180981193337962488241947130312730601472306526179870469085251283297567679789415163481070250109759756489619276956989491237955286626958315922187716988759203988283625179216276129266017177319620817991635564550807264257224536663342866787190179494490675668579009905063734890468056898052945792558168288933635927387034505637046962232831855100904136606977248100148981683014684281432295022008467803668306495557511834026199135208175520965357856062476302640507788731263559701868637601102050645573045222929406878754797342784669223869054345364518724029888100834908750811579070171098128331099090381318699237650281016477146555141128101005290426604417853183406815701574751902332043144293517543964553518846447079643704199215090944195239887883346920935814315837139002787031443236549966676068877893689633823839311515434423147446910051334598968627061444208303944768258930562204715516972554700522688499093499516617340654088460329764949311510180579349663149179346978000996518515247692680314874547146150990377731826219082675090212943308266655285674515652296254297781550990357916082217164685087318658745521543569461777197497653178974565615874479840881321382531923886984544679727077731592672869609725642434537560683491663000999525341379573821630367272939871258672279274720779305249476846426969583874529537659874708721162842531308918673321585265619008094992553117523390596371397535406652474637778834240997442099387803281719616657641063969374210594849478772793679821543358040803549873900020224467540001611185003884945983600421430344054919375564236292017130622535209888038958123263417827923864731929002334921608983589578374715592006536678283364405063193077052962811288615974594734146300751119671789195368072505969491769293631171984337469579734286819870958991797277335993362672939404314749137122743095973294711401495468307038669446437526469712235276787551016671224818699450489140091124213288109172566099561754213577134979104726424314274130975308911370037935018688084725021865323599277148943511217816582631401666033030710349256502220178101535730182714928314907288177777102823175958185758195478459417373255396971454712232275410297735392233036264557546795365386856020077876696931416517040215500042583165401454542753822864792196733621229321210547650382218169359012247144537129546501492348504335951157078161532797007903231427555512914983745398895822838992903530661249442139609813294217717415688244842327215293251421496167385491377171115337813526326214213144819864025060657144196417475700641987890658898565157530228466318196796607624337030362792007023640198372375631827874983370558811742807952667633922791652704234441196449396388202225556650339048565546596575728525699601327399192630331443422897752452591627052306904811863789961600938412448030062270474342359936915389295982125628710038684513353169932551621648854157303502494056626279194561314144597809180546979879049407549514509068643598203183524736467786851951085193246818428670665370619668365122207712311127499587941815949355423914429285913419052308101329429140788333774549823008452012602373727246630708909403789623850695002274415604973302861148452564220654802715871402565145807965163448342229311257702496080483600597099335866257585353039251044808109428475172872097925699485940651815926813314391041552007852910095319968828482137409591898724821918302260114697519704630612449193534250972129868269985952927731466142313676728207157577225833980825303225483351199020127360845788683868298598963699688601336103742617368164977252052530080933094158267455877900163501739284941480596385767377622129510137573794970773321094403376144163568218537297438109549630069260039314893486842599688429089298798463129409165956778717882182217173328761765110327273495411423637226163560188780433081475852811588932450269229558958406923454703384466213914626391137197964253061190616900739726858433388581019922707784183975507539015546295986683203533332454715581850489108996597664772522889019445908020922928369718182025567426431587162054991527305810144411894660927736340330134888949319141729318468330438850855766301558741775482880275943305261720582844975069193623818897288013550343335967036246760316820804590898795622300262901247011558790120306200167693874134563879432261419465233071706658575231100941469752397808977038297261073884695332782086881832115126483184900930534701211145290494228406737706590234208110744480768565166754828991722971878904908456340358241204476573725131117716331349259053718811267262064606679800442464084772218636952071458129785419423526712476538072020640247363522001857279070129279704288766821288422186116363164568563978028630839761827746834379922708852066504385177170148805528146264171455944140562433879235835424571955603273970583304415076382125972345288181057719635231728078142101074966029487165627564497761142572780209165043385451828298516043843391994365639728471272577930649425414688485341252240738279546538360508829974414815485763612759039549772597029849692445196225334555105988206515195042783947701013320018284197630996502449875373966797139706228891907248602988150734620461503210113263228673975879678862862842050356752754062599080941620532231886757413357396722326477750409220808935057090119694010040595299591736195045812952687313395613324148425916432006320018748046723398023208170678884887481020340743755851718460007577201871053849869970094829986420281767347445684455087906381533821230400469137903741670981856483499709843454580099247863573681483563278993529107903820188712404832453763999567911952070446081008259118243490448468980412655512295319026267129425185888174421341673131205540624534789915247568819448388550816947040251309789800520568883336914309253899129082590601864882251537665906459606618760012913333390839758216006703864990743911325178889182909277089499689237142292547776893143394876667407202174662582176602546611624693091667257920566300880875694059685449880248533620242633986914959251262739002820877394778114394982266881022309895836304568056897652416578504354888583180111391116283330777713749932992639617719705080280081043510493733924065122693789781380350688557229969837493456814633396906508345415104136976710088486033487818506776536223793500499155543705851139570103325256793677113404630244883729167110238626947931264652764785575730892173080737349806293769815683000846911939584390517345013932138763458160478880004742779623076593804737506053410245307669109284813556541536389549153160631949029285704986735422202218696983156929484004865927518636554280926985100456420105868870415659076464540491659779658894624603559656294078097730297397957724390236778847640331762987505708451290048984821632030119474669773924893372534026097855321703558342605443949565177614792402489918802497136779498381592907880924716897431318697396508824204406240188316387230623130283451601838129534072404424298411688515470807527531390485202047254478392295722199525333892478179780965248920306626583068787093946782733861070010414166253238894494346096161513722819671881996565079592114207981516250960925546554992788421453355221673956874039701790090567853687251809239672371476047453311234547476921634133607164737220398834950128817655969997573232546852660428208869493162840496575432350227100894953611444186021191117564139469457940561761826575334073848854772785328680468932158305893864049139618416822333812262225626742438598945662596363308429715285071316066673215169501192822213337007007642403789751527024164277652770024117328808869515381211882380862210081349839374932541212488513341203143773260663470804510134564978376832560844459469975356549024130601764470295218765221360391419109643411524444084218583529749854578027730404166391883482044994910971368830305151650353578258660690156120328149613103987276545804021079370270399138163774974783767788935544057359645623106910313846889777425235908099224679958686625455190268830608867606887380776408195247088180331845936664588576144499229410898388317377431383462855134031781355114732507498563940252971146130215873344150330467451362543084454279330456929774550649114533827297427412330345047281126109485633821293460372080697037477394407854896146126637958959097169753015148038880257967899440255368704847391089270444039095729846257604758042949147202851154331348537972247976497651113169770912860220843128639623560333531303215480093779581106354602733853325096061986082368761595838314768235910888976242637319080400315770360164232753669310919804334572119053235496747417648691091484184158158021990528604185140224710827792473790777218415131946142145629682970259389470906195836702899579062160838837927225205067619419602666973190631073249559194389725946562491636149002829634412412620396079924438632125883608808822640596531884923695708447478244305364843381335016875416540592256977577894936158823512447836459282729587111205934753803831384065581138508046000187309882159516298343740957213658896278742763932955381191344996244059850386966493513111818912589376837198578549932937535909516904661364608243049213443922159398183125058401549357540048361169655718077421017751983419876242527260496626923963400231641147020789906927900495948188082960597975970967520413103429801440233776845969051284564944581246039986645651188491033671201813352480772243268864507380010544958450097697679688473183662730575539341588373094514598573976479574159362284188079670615435680239530438259230587829656587719668442020849052743001763938067561262294627863175950707805628702367710693224539972802710341909550726257904500996975132689718803134038622181469970881499364159442350526184872049346837816939005238538440171209459313806454960266697118048696249408055912633231067738669654727520336093830130633940844486854139424007795257138552568735068723487652371229389213396204635642593276388060056723079704915808310551825744786196963270199205315059136647007415244554214362094850396669019549879826857818019889031906995013214359221108267045447061851820894996557483426616939648282030771504483287522285633137215911751828384273083030026216093478319558936580626162195588559013711334040887889230205973286880536837616045575866410166922696442084457834634673120168965494495693509532041100657694724476660008015635458856783600129938702145407008480015007071466465888525159864037520889977025143585040557603005026021976795079156176660466991298674099530029950266731793546204793711356567769713774799079142604360821819927369853380437848402624920549842834487158185366987094885413629716696378881902209260059362932235356690090213059948283554831231638482289310752819257148537523416848975343717105025962460032133791809276197488660734144513409613456571573282825479454131640799227481407056489902263374058699016750114708686194860027515299812828052735057939640470577548792045845370647495163563040269722497858326449468523171506600025377861964127498270297591762651926411310761259717588015210323051814747657442236360923747997619622860416277686180281646648687543139535424160077150560929108654985287329590808357153688871128769019026142447588139907348936072955899371100865203524846461014738404050051835033320967122476187852446810668946057244358808818513914109761215417180779697463792892901598738817458997711517621552468217410494714382104264439036254342770294796314570269196151677347587805231710215070433232581278077910809494907341104485152786082766716447283673162686512490756906143261048238931136822533100678144322713281681492252920937266859331897487438849804145797303809831384598357264456236387143977240440698857234085698508225252882100680833304227038712128921765314459949394272210495512019783418976920773408683036148139177405191432720318501625492322882005033534217610840498000708898382979127273385548766511867496012287809306981094401784151956338801866437520229785665589348129088550627920841316334858469036167339126589026965567113264081107228263256803964875105498719171606514605844305178312017165826901720118262060481834618010290870592229281902665287075969699476096875247598632331132539858417546031979410252025810444912169352859851639697004789396368777393580142741573467695109930342474260891349280663846827289339232551043028956228445623582954294004197140734047200808785592026555617921882786153551195390069314030339004779482981942329123242016300241517450856322062260087239786641052810501523591801798639784100569971272567862565825121345647297793432115565122308369414031369302088266442321913768859622956382694886240128119034263641302449863379833507099567259514895035274270044048270061811674199689921256088658768768762434256330390058677330123683538403100000817989525849906392144655523870452725286777743585969429573551212355940904730098891318824816381987821795954244430214864346110365268840491234076260535511274998741698606430065325007998833823368306918138816206273961967585143811913080198426551034575583785590299654642082952389756215372555919589196597455192067760789484876919827497270706263850408810377911169645585022073347407353215489281476655414424733316746997434331025594518306198437615009216165180837099329620953555455949956181310279847464203749409133828367366441099441282077537570319967176384026452249061676733764360736785257227159387418211325004070460082076513955000747376366403182096008698586697702455669722667630381365060669194720288342945627344880587875280100420719690414607484889100522931185140384902886438445012728537781190752878256215747742997338525923465438419079353576856223190714301870648849400585412907993883498230599012200823649212855275439925608149217366263554268817313072907990657556742922542100493253516259750480819544438246990249314334308416664658056701039869702374087152747088449015142465250465722810475960823162835305145487593479141051867314663118270351000063836045873990329913966238999088883257287032240414504466316159396412718710850611821013145295082593610628953109429316170658255620237754563663644290854973977043030286946020195409764508241016058800222430065673387100914470996030636291807056541568311427195340175673781464207622167002804503793512765280772751064423466641358328697988149665925868020412077225476284004024341591639080364217402583432784978779676354611635124606282028400402309439327894959337931891967958936978024852460196647812405962467896877469022416703521726573801110930511390692083675237121269165865218739507045502288318307058495389155099595872006348151765154006861942667112706591242265828780026781714526091108015843946164599364363241785703215715069516137846990334498020078799782007518430920565729265042882278934594589069246717681707495538389876209345599705162233956073988682220860150867391773617996279883595877005119575083682384818222025306418457328052750661344551864662457906939246798919801463971528510951064645073076061787584529868179309828473420963882565570842874656173938665577601433011027684811644090194543454125226695983136242333797825919952760132794037484399958849964385210605817410558922652388253159745505628597989635180935488169009390415735206777428559298620866404470745256119106111473021799237963563716290349457660192419621080655234648984572310509823907641795381354559408199531386678596169653376466180488922603887059993658462559991151690814671614352788830981330763590153076469261406099660677124553551703110299463061320886024760628035115773810600501734986945668901694553886541349274808019299873487030441509383388980305992127940500677568563086284604846419144981947058454779600788434749914464859295180788676835631285879029354952523139472315450991888595023796534477181311616953665392755812739626942042621335329503228634846161277319475881364962614286697220561234905030511465865131343967628526698880241062367764299715596632038794451667985303128403479731210471331045838162129270638545098885315978928994109242112183594551038715268179391961625209710601583413825354135379431165149900497349907729358686554988437974319417224220936524090874147088017274970587524292690643915824187231890091214444273021582798765845878911458965663083030754206039967921532001163732534838842634938166653654033695546304906299437988636539531488198482062865246041457249289888517597655501274601720975954038898086297216997777895293954160417605489966882446574107347572193644620421878171175909612718260195495847410926173630482998600112594585681051007032620493708991307218466259378030211498255216937206824223399323309979777349662980549896878829206172470914790058494369978472442627791352511723031325738036370714801993278004632928480912024851864806394498206757465097094463929428091390575252782503753349208634263629186311015583108424194629364771365072996308236942898656577738592543297382228027104400430153076725578737335183659880996792155750597533357283905162164607946288557619914508449289175837176413452620825176536148059189954546170788737209899953234603133188909816244041615295794774915628859923619211823461716786834946884136272878309473827006991688684054414171360236942433840484519465463956694855132685143379647507841297956490923285244032975256211779100343773143280947764803441803343314133212932353444690856384115470402623202396474477645483350544079638827763594383976177986380924740243975038321897294698242419930543718385890727503747440204308486827184905583192294001228331340556038724970616555946177415623066877626065520242323091569517447556325962444112920016499870384804320744425376847240678457827653258697721722667371002314442876986871359671755513705473477536675052530358136903315584474715389467720339319375121340913022832934084994877307878338949750822939037755092653853493716807092062733190279235911747440790664929051064998815001488340089619654344084282295680155842286450639624026743222278974583264012055914861194680183344682230619074215897698734747330942920844899145273371474463704738678306216295178534610637639610015594954225814002271623263739191432556587793222271520176980442832206736967612259528465828279983530487651781345924390028210597936818653888704612512278768843388164490456049764158975765165361742050260126113546517441857773548746986886657315450311423030433149784449011551744608367571311320199666373826323904281996118318166622728032765216716823727038693941271207242577656701025124187378186518564714550547777836113521516876961310956293108665598438822576991562084058324328049192764073570801676972783674588955361616125273929782220821976664811319348085393000386853572863359584278222125054791767600377311201316871284773726094869854346617066988105850473099278483128046428655751632986520161999812954297112158761598023348838434310074420568286968064899885807124180747186258397922725499701583100172323854198250539755913135354274067285683525936509788921384660420908311134001681384983901775410032789623506307234216886370160009322811869479220991871872595253153750273450077417849239614914217813514264100164716576527389530976021596995571917887066117301829171352074112320968025304414748988944914445931032135547996696232137754067701786459920077882984431794643238163409833521982653994319490018831829506187673494189452455377538861672932391324418734680499691792245227436932987181611166261196844126029303523272267415951434504590331004007245775154848145823968807286172283126205736445713398203657791704796211135602759165762824565232027021422955192333026811838420879486885067867650726286028814292765217947173677506053074819465249607343154963704920357624023670954688910688506130134172149560178264786513523837449491478497909017186123237754534525047271194197090396913558647286084338520776164731695950692500425227534377821610784322410083855973392107056857532589082506448921144698861367312954783252897506506363403063289608595645733623063225587579419599789986663319172722570201272855312195353855392749328847375998977370543312740062172374792851979501353559333154345458748806558593492736060158084415852813347915519258431013894628901489192929206934980439660426787425019491397603668773006517335749473782967461317790850818374557122655917653459530241303406371350017614602325632643252180299631035892061879035545878563723769718019792911562873185703109227969663640820395618000427685156808070760860426692746621649312980228536357260084634802855727939059235189551463047564782025406099275774907687322928406246549869803648689983916698236979037725552919327074476767834987059888953197639821133588997522915304286521710944094059345218482507052072784689644945448055445256940380775552585410877580202424618732207804058656937068866523511892746198094123221779270409394385769362391434461574851269127893267822976399571018106173272238185251899615251095710800587006282814989848705664286799535467332257624063081163662464387354548897602596713563723846481868852375481803978629513992743066291750824477993651869799079545468768031343327146313836460561451518994608072142400588128850049406035031846755120572495720896638012459278674564158872607719912774588419423406342135993636317648439578364141885636523219245372479301214086528290760233288150663980769244125109628940348553176980010907891097409132750398883651052381349948096310496315512445360327904288498569318073357529279384189068816493632185239376099958120869738217527382156154467836225405560056188614165926373063818073210396737779354544563263472714856442306415114620962023914405607439053661485386539522278418710609316560670297873777958080354581411334995754088978024925498005012948773945661829595467753682177198533277923029169270279461969343786580733180931522395831673939515042997081074533201580391954875201806789297026159183084964984272448292035595504050435972988355673892297719124952482429752508925549057412282524210504964213623876184134565218718751071365996166968730890210768656602676320149508633870243495638002342539862515937544036630807223303797950989551883217720923973072125523595033190599599078174944696596125022787076020321502124149222169353343123889511094642172168288849759004088804213192322251179352453951298069507872492858219150856909260248520729570410116671023361876770236210641160727842660008034869357319201865337735416840743033424628439000074981115691183524594837937668080190579419801681126214449563464443290247320562649701620462875587245015712925056793313313952488739411160163262102672575495695118011241696746691078525874247703199130387227228358529520420369523426183601508026810823343314020863358034826519609066718699948796625049287823124843375157608045969249971350982036514580135708760803946293284064243964324639004365793691186240655223059023175742737802574696877670994384536106487141650073799669860249102896281218959684962736906218587325331328783892268859090700598254072025940938930642053801507925936355630783978928919975713797758886503130777057833669337991371564390211351235519860315705869162758944895705806117420920840552051782364503105699047838534234556771865842826119880909485218146685019972623982092058682156030661481190305822600485480166603660697827946878040608453148452658569276076496544236048059906172430705473848415406605842088581622994839990975618818504133922794273805834122392403149160668927743934216857043796455328984093682202445810880691641242986754198607292733465030978278022959962885576113264420183739968539156506231905399792094399282401844996127665475293175862443300036611006198313607057370944053441161533389781552553969924296406253402935952337383727869384097736564054638605751197892319701021919114680063069837498830229562184355593409305767741635375680377683027080888089143980211013926101328247986453241491286233281312545974702160633362691465786176937197832896197379229684561698504881470105256094053417163481405353211779823661871187348921733688616892629085270196526841577954648450126999032673792608041646900142185798435664051658293032795495377200035020599909092395130869033539110933470218643030556503606573832593864928606422548898173646913540821023282882434330195471613146462596812635074602690967559441053488526735688021404576563614497751555290422106218688354382560978089911594911003374421599087005894611828450361869423493434331883791252224471834727665353668076493918360687588090577428224015928204670718748914977350554013742944586182642323202068132036607078336525392509109482791207602369375266554354355151156469138469182829433899383115412575413473491264008010629929609081397224112202626462676021383203992149677957655119922921672619573364404149191187825119947195410243486912405218870980226343731607055226026166625528559312250068810585727690530881820425196495531404004394780449899012208868803006838773404657003035002561506612378002731029661774408361214112820609060274514788239531265471415061549392697064228005997883976033068270899924914700337831870728758343323998798063577506308606122037255411325014398372507666400930463478259148344550895112779720566345569816194492283562850654279297380807218608068000863156397983417532380722634530890741277164496498194974655323825399363161487876162479904681648447527596079093985377554266130483373481071585445823806210860972979753971570752429267358843029396298424108213287090360165401509275048721434216016711425368970861832704077841412235702973440024616163878877889537601254648078080353417446873392165631593217940923719005042525235343199185505889662888122744083759621959721740681620356151193225532088852745406642119929848008467075908828984897225103411835382468698836773092065602608690671068324652015797920300556145435024540235174508495601651426698880457311287198691605738842948804329706243891441415510445016783906315355360247985755311924153840587753245080597514512385207269319971265783141107091998494803224901933002473983231950478217770310067559988465796353035995054908090666820213593907694197127287939378221731582132882862012263954693462254881310046329479754031777201769085570538010213058588928307338808371581775744246623366154236924113108518807013780750456431053452741378319314683236431833756787554661855783228828768755474580109108731518724121729186945865539291436332189607675370828913102059530655528208479297756672589474301007509991787081946222087847008582007043238496480822973472702029109485738805773066380102366982457606190436627927104642683474644579467368494113658892409422425718838956626472631745464193151717836829884644883481256676426451034391890155249728609907820270206767036500793942948888681569259854755452591758389059431596375672736374975331273623023787891820742559473974470574423240594281797584300702671714913418256288772247591699251192632741488054452045005082909374160685888631771371201728978069131019771819361232534330345620562859558435415943235211673073649695793772229218007815615156744225401315090057525780094086463845629472000323190237310165629137762368863529093263897147107011614675026429717333826789302833355371863198622046615959266122427004036187411546799534642910553327912431308166404786828525868149857793837076280233684992394070135658518104914316011607179482555727519984505811584415462952047095055942837621297910699767554601096906259281001782281708359872384606835606902935718234490061515190149340123215900668126223088304780624286633916317950413170694000212365927979021926880461242300739999897824405064146301237201222671815563224311392965087281430136065601157471015805697117582160137605349942433921799466951344633552520338090553152792774879277951256119505451703645135773853864764574941608864739767070170889406621995474456440270136384008805901559244119355313727318832253993700059801328890865737797943076466951285132980802810332034118671513164888828925716571594244170450561122969589447792418249111420687303334606439056835097423475413973882772670711807824663430021721380547416926354893300967215616210084581294676403962075465176848166632643565521445813165827888043917352511619371242434564701180028133571740592888154913653500276575447101124426640631401535491254296096838690061139419613696266265186475186955704923098548452085905030542149270649444346356026110672691517814145955942112737223343757877653472438778518383802974892124383003137023311244286916170089148234724717420534947235828128367654540686877509936895866036246893618814999251439931808803720792187204301215320463525257824212386913388116691235131090345210997437808549907276730536552979239927434629560302686653027362596085370207965700132181716823533004243222418308834340232172806865895005609166167043854905148779098912047096765103871313684209572462344027906211895232251290931093320191116148875424949035955250656864853734260026259647600561305265411276772123970080307360067669359272922218871930163776194527739176379954871822808759236488919954080737219467144643562630324225260623445166265713046868743949216784570159484114347199871919039590488101866950421207192578773953831725877161086055983927513810225514742804605711173811657089292841850298978877437222677715742681933446759584934667546008296776702693897753076366176118333143816600700815971498045880895718861818999937758980120058666598238570485246405179520926511273405260414359155935143009575851029104284123963198778085561057920082424175907169826198953764624631020974276975809517895961296803762701119790201889246517131181420955963826391235517015441654326723949924661287184303472981686283165519706555390487698235473778803025713291632520920412871204109787885566023897347368174397177731893815983041577647334724200605994147728482582860267671259326996207022851296250260232721962387373794699679254072147792732997463185227901104194621471165090149314560326348077498964511594652473258282501914085577642223101347225341639811755880089407049078314890673266720274312016069437518547529094347893267171272553082432311918204770008726187724617243734876268723474187326301593684235389680799625780830289114432104240942538755916901795272120477044032999841176108320133512562521571095830002784705722172721474123627437063484829643425503188499928570456306342389239812350364779832479102954638535649999656090614391311693604048809922754257661393066451361928775140044627969050079913405876678281334225931370855151862641936320385303750618746722108854851642351112887659814929962171906511857661475015735169033810974883359624907966354620269256642255463512177945173609618734438870157428143087676909939641368781093609711718108256825262002992523221996991670299904024228209537366571325664886863721876316044555714238706550037403490350246054067071113532432564942098584231148544922596522082221717422183559473769130555116415896773143822686823606127483212067183005248673300342281271138441046514279924575182656973987030408894633904139749945665209040517180607247284210505802267287957404946753813476185299506278542195825637498056030350439521299368392504606974996844910724903595230640641089229220757431169560646057867329631731832754758113961198849726139422855384450710881202855167138150844141562632432531149715260304164981698998709407973650545131855568640604639298756677421791819901404719951556395309250777684841888843368143550017834201527035823470849694287573417549253385598509742150576132068594954851716743833109714079857072942789041213298154509363566249965143586407474566905972427955987283496082113429705590795071899916871607355017938090747434516065930654412672204840968802982163270366327134398610492048132686227703813788911108537294569842288910373550917062731145552182549555194209319621725458453591829488813677365474690965755871280007895713875340471090893912249475708468253734745870373019180371299693447479022951700605682962807861901590250459714596323896293815597983348617497335961659857134267305973201888142945303112225236939358886754167803358372840226512302041720574539774739982240673903074370130093825395569870393026486731823762462697698384192265642223779963305868712881015661761987197363422025960242330851525916896877856076944264751905768397805589638823107132958323534889035702761863347131697344142993172221698806694074217018324770833846569972630120582187198941185868841372135450361772911354465269227528292684183803556192472370846034025438127000238868343243685264787466390731125039786931606676459498198052501247518248073044774987649671244749484887016093468835968455013193118568200211052773439180648535285165179836940962402357992218072437264393190117280517408371951595243146278198134871550210685882075857109197564300276276532690452975642883833311032663939823691813869394857368783147302010527071572902158521025208750089598810975288152242994834458616355885872451881006333075974900487527972303461778065109536147655148951421871237955277229381733513389473369450993510674838797067471109811701898513621213157458875230232471920772837676583054180916505464736107727741540472748804984700165510996652769792122487772929500349075072613784875162257445076946079030934104428018569008971456326463874113180786681635129257255335665967936962786319919055634753765172824414493394977679445298996647228568501089137896719614279731842934244712146492930470847794624116553609224324715808973300479155987061250934209115601452741857904040380537576198249068491369702060344616144634016273489079042369200494674561453587042333603714763667318807024804536076888134155434182584208798699654939082766668969429716445863217097128452014399997708097848108405271248780407567664052304730553149581631397339393771730264874624808654727503812522870775063698287859101938506558360873135107201152653874216772493790460033508600519050502450139130475916612120612349351276184074316824871475878090267995217228783962340024780053708070038110240297428901127535024143186384056525010683598573061777098882997303475432637432607710380971204443189278860185777536054239771517210539612451317630109567960815600325740088661940663117232551937730014196953706529574914968938653137638297351301817430194573062623947374384972954911433478273744531382631475388772159681254187916736956326058829016305148043352757796683640362935459463702358820349399601715332941130182916283967936733402875554519111227700690565398241772396587958935438854586887290244100327599829362834401029909536736039343409216336097713810858267163861587624451558014848739374548544743412735057784725989170253477433487056462316727886450089616014659866058697856321267410070867416905353218365018850199035488569591021930311904950475912293870286102302919139467849681525481251351110826147438830436943613674795914596305042764699528962716535641647840868621241831401719357396415607558699422605466969000072937692428784972750638775449311615604537016689049877717745469534898574452044143478231171551675426832108157385153703750280831016800630399888834895542744522490542011226811653518484182195532154401465422224802193141236740599441730353081532267232441393061587593854537984738569427928729081254211261593889877416943401694474152613195942197879443736333827491916026526976680891121015317233484364628055762942406502546633396659134099463994564298478919766740292734208051530146517484353552621543200255832234658309172252558589008056805765449120940721919812668399973777519363871476777445689525909811313481795936700372364921250623972372341631441634771678398258749600292449571120052190467059724365248376789882412489575781867812150955155837415994457531637252671118322317045529613813596090141982021568267762898448353652367346541015373592093026866301584797588769548638915870020032008557322490224190422734275317760705873733484945255421039583249261317591524494283510941424599454353700029156573393488819754518326219719780730414398278159170984160205312594544269948607171954901092487269512280787980530274107530999683498275104375259173406105277306079595504242778924922237584378334571518197491336172089769737358320241395515571175883456449538970932457354373094056099712397525340362731691632283759009719676855544120909106358288933077317555054269732731988184184875086414821527246446822474485868658501601687972209956614756052789670491971905329879917076302689424990290073573399561455399188265679316208761240193499150332182832090540809763478744023642539257913522760523192130318272020146890968263111413718591291636446591508586529721397435488691718832407245926838415176570943947332959902296346785892049614364301999916796735399146922826758951293515863525672435188269703537723946507033775012135179659452824394236000658768173055011643607225997638357461792204023107241235519967524063003384575074512486212031558454068722102647633725582265735168975971739017649875068820350969358417218164768824938759930796725622462893549896940587998659087392069059304380469218472959788917823178442499816192223434860587567571776406465031781031796407059915888353438346604923582776574489060898531512460070304501445639197714048547321117038898546119436709582198086787524309050746836195595078271346887908833068248284939463690229287950720285555796492764699621378879040869614673973253765104100823879819856747856891085261762906956127761781578837590046500688392834151481979574158402598795561927277476896992961107089213657097000350732661538263111335216008476002881734483967990134666029610519696039311246722128924558600847767775808155344378649883722120678753616519194452751124935366625640171357588951759151781646228825340327887011586345285644922191941160484889308351981641343522393909640466556211211968826584684905800592295356137638144585106447791458170146867321532398147713655842308289478298672178223450289461994821996406282034320818408272048028139212296387248411276576120539685009208147588126808382110595871681860080839995372947303501616417087915813306275935815817239718068207178678336470993849685296002737183477063367901632679612374462985312630121863409800606744695824741362280170978041558103827232798399201522099594343502086800799222933202842423122940670109344533647085427438049418025938761831925339084295787335046604905396901316696012806061247312499047943660829283643804285647667890924799530364149395076864787413805703094922054767204092379470618064885656225865534079385728954489664114493814460682515134220729785285565734162337980920242417761091284996734659258462635073484729471400966641121956445004710098083828002973623586895760053709650774963732895365944968115915293378672639241068691624111177888356742078168049459778412587682143536193579578696342248563560515230366342442179520547063917415161084115844294918799713432801998753041590422562871661429307508369874738962419953279687852261196411171576159301905780016575301089557380359280857456191251028064664988012415721604817732300304575040019607852595050007395502398076346059747913497207663936883049693750665788361342138473509517741859361474881522613250294333258259590775775112749336839730661899791538608653787538337831992837809937245496525536965523426126884986418863801555593231077515118998312731477187895570607804302286233860324811443984360108227840101414151470434614019304399197689216965739840066896835172166078611072462511071779816982642562353075440789943992740425265923642329451334085948493600232451685804301059214673649480402014337341606752527824299880374277866382525507673568273265344192824831428784505221679533513395637210201426380963407301799872802883157657841591232924603377583214235400246956864242829391385502371908291504170746562199029989251329822301909415912033405917415315454194448598118157310935086934260033173795912299992001275205274582379160907962021508136329274766005311185370893338737659595493375979414943196398512934281232310782970284086306039539121541205547192854060720422698732574468482495292315864174463400497214084760047552612598434441621548032151601621393758070983541977195609501047121449521972903138111002118460380103021364953061557849736989202545933538024192627427809738077612007377610516007146020780869913230542533764023562903641004392653423691032772334252445721226630403844141508710233107701494377471127430617257967840187874513665916155660042968176166280551758709011558821051204775916526738471633616518993927697021904458728322054967503788726664478931845247961390054209868243752856330319171680740179950125447014079683990961332254233522298567576641077309171576336870239114028269316595182848426017979132439558275763493048733947076091123331322381019939687527240983074454804169338517342238921170004538531473426252942512444733837222562946024938237141046256100177868050635493148204685301389496791358677433640587684428914208006756223861370525632785575290494272164599451943328406037055424101765102491148033623849076394099906687609152143398981739176847844732417210094390165092331656677623244171701914459359517074458297263503763138616093400922480052953416623650557541088621124659735649871107287598782107529162505956253051761601610554971668592939153617157782814525719820707512554912162915024902131238710830680046831833793810275360302673140333315208652987561127070532306119377220463139506601245653661775076302897330849461444990582940834038730959806150144544363863519397004505544179517329917682163697992534733184980112095843542652491201200931015005164777051499183839403147105523749690014107948982388149298589760884741932991070424156062780810597178471614257851244473898606307280368751543497649660272374606294707798312608831159913225719844783984106429176561712743021848438864951407073476041098881369027530962062099110725766066413275531581953744991852553462557923651631695579882177855106106742592040959163339870771397205271073671282401190320336106830407133863606939757728269448433568607520087699879555474710632518110769909047797995027067024372741800015162852999008334597752702107106427159613740765975220105728540003463279601052739809321132703801269934948874910543561493150534991403766551983199251091199116243868313055084368570993705278853504033600232039739421571526955328789780479446169605194056673422314970578530697071330400978434080456224947939945866718937558983206821850842646056578005628130507076424005502619956563179955733887754025629858632683262055183231740552475375413735773135186509422222867796304985022474459892074899173714377713195378605841493578879936184366103403942345933432971492774253846416103500734873894989895098921620360995384153625828783756309408644565649231690452462291840583054328622876251105830576560981655425510788738747721685580748747943819468047899044643763091707160361155776239370137950358581975206154262158360413386927140092812196746997099354496812669269030478704010936343680791830940024690188920953586108238786469698117553479846952884650380034712729516898374085989381097702288510513380304488050639515691862545429330643071695597115165254901593223208194026295794015346190749582798621738513861511828852195154931310036184774359623554069655929401482270492353008671705282978097152454030418086682572289141657572775280322690605701422212681468144796090642685236326811629653918814114326645034367719169163756065190375197982030146930631627668205128242956513083379993841841036346239326406339939712610989185665488136842305765421126063226855843662176907834637244943106511216600172960962430547560088576106456888475442019995618161828103664575391777167937514399057303861827645723429018680971362179224006314981660939621572563670662724024039563290063253664923460633716842220430232781411951840700836565794554278957490277319812447564122781545051285130959865111769515406252584819329476846265319423564111138484004306871936986301459583843126977143579460484084812265586784012555406816033839246594570675202068018017375367882689947601106408191551859039734062636033874624879831030590634093852262736796457153452579995681540647170533569575281554756479792013481796933493369804794234776304427346980259041731911847901769994348658160986367536260467878088679112738240220972298727592258068216630159677236390051351638812312491284025529769913349009558704187084452444021572573452553900324221473114716678898570697175292791248661961972775219586410886028808940233119579757592882564798730884136947606192212277384618354032743331199887497348601241662667538420442408637492589594107946554417281752553854741787010504454407132925952208707548327164598563060655576664251710160769128274674736568864082429425792686048476393574870988390865606609032304745619769679137219348592358549489979376157946494592745812820841743885815441547768523696487933268383431217017540996464548666671719016169717872718164735021599097103883344719868891439655729131512802033810733837317734419122485110699898549582244463072592447298076556585910395640532705922089027583852235464499313661111075171313917255685800601736111533314262184743164598899210025699169621353105086531729630627485457270552746818779946801094059437031577913445247049175938790689349448376581565910650558299520641311979105901259350060675010089454344085242121305507332286945363151782572607890641420157671995085798764485137115138352802802547825259533227847801772488897718398668712605519853396975253364074060983772001895662193518952606563074802277117289182200094628140843534491381630045037563061800588053333058894949448477458808287918166643968884447141410485862917831951208118274560642122966695191553534122610625043093233862580196972699682156945714355480675044075912250963075314582878741831903261765338401889678920803737116859107677312254257602349434298824428774496106560291321450123738355504170399515059557261319188082187137910751628957448062332740504344070809370716641247218398763449058069198906698167316293754276017347293386760249963859247575972457242316497050556456984662624547151449828052792202383442200826748416071324390641127731073448143275768179732177747588571856551691280461017968043227398722532925871927313866850810885051649900550074570195162764294856522000277601753782249624647246378872331780517676575890060500681382704806343492462818821880931689152866385449069180438585643268967224436786416096599852956217090154757605865992129000581436046903925606566405022580358523437851823549141447465392182107443552348301646014990470226015159004798922247794560298146768853707549181863489276829189453622480897386499483144823844015680164542043101066761332431769338956547391528298849408515396586113666834404732873629988422660223036089848353775013230623772708662546016431784417986409258095014672155990408868652444290335923946208575790418710589870655352318737252377737229978060577155090829255562083985344872159407155465353258182597938550665373751171481742037364408728229029789599528527072718726503383084161579714117385829942086860935512429033712412350870669948778431327394394268750223847806690708966138752140460860424357394620407593527815299714612820375750211402443810729752187205873486176243064939281116166183549503316829674272884568785967305024913313528600515918613087234506721956303020156005784493188415157114300749498268630942656959417277772943370410383834338915510081188910704147877724366861278276396757906745752095697456465459998552068641992478722965881253461789271832889005433939250305402739842368687923841487558974282219650666696598709720433239698664417275493035778239991930003898284916387091837772128834988231995720918450274066593756089862257435488013356934252552708343753118384856682651660700492332911606340830407896706892416512703214689065466554932715151371167958326925095799951679673941766425681905073807999500210316772532704765343058254590803623973199177347121719501879253612170930139608127416095804996498152186932865461767987035203009678303300601279257234888267855608620845132533229193809477939514635650264024754392805001322646836637035653362657985399745328318561048746779731462536993356996947554556074841606403268428798817634770332020282480619988791223923267875452271089609601042492712958156649623513838189706698856838616193909702803992543440089973475556879196685562640793871467912100546722554101735112298326879761937626461484916846935429016043393331300070326794701987358267207939928574709805652088059271138581843548409929757223753996466758162334346138564780972229393898644642085880859666670540950346040552430502540163295512560673785642506472286319483269762427770857661470115689704229471441374537628131949032609466570656783512887121695470091161052943038324544486738466571078583823939688980272969872635548426298604947406913140281277124065344996935820003512913626657143839705488840819139751816055931338383605351079460826690395976050515081233058648863818008751681130618622859425292083534156583282395230380611102470688053775385785344515803760622663017603767208272381484604594098402059073275967547605753964941422340205183488446970571840364487747454784658919706864289981716243657974241104322328768195845547844183704346874382507427183619299998895735225098584041874707859035699370967841396944511898589394780555185807172290484077099741162468544638930982945373347041139440689454235384707548370530999534538756717041919505836980092817199736052660436479187074538849788814567472531007137892245921693366063222953599031492916774924121458714408130164628734848117781117158598992254628127441763112804146727669234823259570568879832324358018512195652106207436009031808965747704787209208536659270487992189395462519689303533081465379300610942487813220483237501574551281038343828630533740363312638782852815511788743207646374034073876344760339935299299836184086539898459850692811853065364043949359769620393167653193589504665774952107239942251231518854834595065504656675738164800949387181310059231564742028357171618205773237621321567788754904942080576752207463269133201932711030821633380711103714147438869337240842038048012680412582567245219172271248618363731003803045023729881742264893418280646896123997515521027932825949563232302908930964805200433299306763295918707074407470539524013094024293204709216843909369435087661423362096763033537482236674061059633450716006632180012392711222079722358032610387524609440707863712337875231561987062439350842997756712011115094841912804165550201270935322101729269006991343605117359032332329815639819584182146259818106119953124527537531219541829392314022047041996790830612906977525789076351176253529149184540627777982682270882227263927844936794126373767127407847179674349506298200765247162492297437159251922207221631425610617721240120285037485884344561456102668768922771587480013904065554089175161797011107004130553174573767297571572163258714554315323894162078864606818162544371583940807772527999909251046842482693604369110805525586736155875757222684159468823073292509074660377334686645839622587721568599906390940985810988282772240937544159659281178545203386952302246122624305205865952689682501914078822409278970994915949324806456789233830600932598901406411822693067138181138567855988763142216217377038389498525644578777959287739809056430786241862025679722666885663162631749010080508912986492105026969353070143201380829522927871226436576814243355864816193734263265636298868901291923669792482443578664554193793023658618404250239626759018450754035490342365020995526130083577543572639217070461175314348741060851348506730319536944858269282616000142094239043036834796494554982036310106822776407342842413908021209274973921045472583710254746309798601855075070675354216891580234197645681090329174928229670451079551011320165329897494261607588520073534497346923200154882153181456644740244639066990671507149393019585486561540991009328416912009528128200700210718728320691705537701855233755911829704723727026018892718222042145620939696438218156899894580769971868210154744884448890285321777323301568064332062242126110221661593887933000003277916365181856223236698132812782379470285298665937726667047854696263821997320824273300824078261674806637607872761079000620788914614634367270797674394510350429466216613140796017339663184590018349371325967889672941153613663126031252361378802940150353183503560445099749775333080287027477795893517016666737233907823529968570321319117683592136839697229858308183899823969508626298034347725666335957706134752139604915016840540218387364942529917609340873444352203745233422148358821562303241407536360048499231647497486179197323568510047169026870869750110966769275989230757870858372881815249480281902460941032468675632343040594740711999138247991824345459740821165946370273757582798704206308223061060426248254169612841174574002852660610541163884962520995839009874558062409410575374416959596479286306535415140866244419516724710874567328009297708679367225667920147979902584660451113346063926625749986452346120941249441930029467504326163358037706924688007473045919622658685770475058569396017921240854755267701978558931062267454624500262602495330381506661113345312058260615969821668023951789789542629133255675626046300276647015517349682270995342825412302575911070308455277242040196950774622176003458105059834203547231937148560780823648185258431771898294355895971455257374303725131066068013380399094931161787418835544835651753649710330570522352852751022599277347066137785441539772679365877047813248918541369192461153567632092094469455274414324677646151863394423692665627346931987354759694771079279318519105691161635427954099655183663872934918496427573730840485284012734984414693651647234376531107286399795856096889330700030951618302022777365664025438082450402803415058516694264608348709243483367818747443561216195033606296539578483398442683511542541288498303746795693868409974255277139052994455832351748025679379472829643997928047473257395275978561719044264625301360797621062178423132647702731958165746530834612718766481908343496126839193480365692075768964279845921428355891781452557654979926676785264643411129617595328835942731796117910786816474849556909362313078792516069011504589343720947805368496454100574418119935053760046873777193826314502968179510909510799556013796457508704207126642012338423239573969027342590374470966555931621959306774052135569376110792925544643866123475093937113774055704605504736394109768631593093385738375686301337827843898353405388492255619490040106171296871191456437689461698494487554127367745329483283090689054542089978217068903494184596627658365771499607470034282357406951818956670109828568736306775331937562636119723155260006387226676637451302661803771584717299109149158548255511856498305980165799927170815050164298947383491677974074072507010526359757706525054848762546240575816060632102869383467401648728711748398019509240418881383987937639176044719794391770331705162858785898126417085506816866892315899651984235783879166347918574753412041207714513942202740030192849104826452415501381775064973175998347510185938185228595859921318857492530417142656167418842500955951886857549002053407068732379396731026622433680968794185450907652573339155136462886259598486494738682745108061772695140849781104813416340111182986671003697405662613359137113575467204950333682839497420968750936578152055831031092077204975267903620502437619713234163821341784809307849766877098976341258345422164025829373226092416003853534896396493545688864001184246544755909034568590669041820341408309901456783736434060047765054232160915850889874873977133673562121507002504461143673711778285437164664525481375829793106388087448025005054091732790902471538307030413241446837033368088514903723628706773617749805124747968574173562533471280962108254104375532110992358923890699946588728569216226224214793929294912220522749051950767883679319926088096453056239830202942949560755297364586364448326059554864032443492663915928040966497720742407840743550474173302557847424209531935296485503500618888765427243715677371379582441243287110299869253736982650202940015065174034384982839134846942603499549152445674574260752901566871402662364157830207565858401933825765110537078551264250229386484348364543494160961456054819735647798650050243850191230327736920300511609374053310315420810337161039089198529299893674152269810441335996911156229090411432115230517159715232606342262348083650011325532466759315706611898523588326113072424066623897277491086536918484284720394543337173730713740643084277871654446010726186645681503034447723133538595881331881042805380843251240362362862946919009249833236682568455696243242054614867109307118186102427101756709920463798142298081250740870870912667057200145291740814306187921019718234429424019975344183843340435774385081610164248367882627062612770384884969459943727721641796482353454210652831918273065801174599305002974898530011122905672003086973514958230386267854961966201901860213977678159075385179639635808517031204408129651237427668622198436302763622380486350681181685571076439749032285624632373205087354969410753401269220204355727041626515290654369179609943482979185484855984893016469497126024669180515663688471691076365550502704053450787225036694567346658989853495966011567631660660412673545506409489484545313938275118059357017922542867215514284025635393170152772763362203189312903369479504330476979840987941842685422915604441271547460717741813938114506239529238851155482535018926820606074332922589648488130065444057752886901536810316437732996362456079223524713714298408998398387698289543217176495024968931907900250429213501017111065010504264849214982525408424788137839797991255180904091631730798667492061502252897407351121292576738625641881824311227219995020749850236040384970448398127934746086311063053011130849334812007396060258409199635308236005186439866092317562180019282990102296667256135539178543210710423163239040336725785595233213750481907796118150469252579926551446430036449089899552398199675601619418696854836328611736044616752331739222497368930328249028010693649007438425879371748228836504094234345898898014385435058409090347930884416787967229091739097738837421622370928430624995759699958423187752639519464942769342860446870318357485793649066749932297131360661277475899148337620698418771103995784253911186565369608445530910780808295881649258039477460357155300527714016721486553048762551244143623999433800429570206065313835242983287840530445832373822531999566214534958166095486950697246266086330215720455575534817851163944542623553864142420889314765232536049833866639456769664681270535594995670324446762894270086719759489960428826897533004901157774309805036682278653788081583288257871625275964798372005022570279643942987986324092352243860756654868516862330760306487014555507145558850019481807884940773213979797565582871402108272686639374701298274244736482531041861469247822818334158574932576826068237219725048314378122016085647853719571866513968611196226698577670568895890625687785620693516625571309048524017336820900564815289575430602490173718503502500435266021602654361207490911988605338042294568592596686693132032454894861982843048799764569579938804307212783411107673946577063086117769764235472283412998764222473102000921666015668672190296322485305873432406131845656062698608564742379164297444855101456779608165687659443882665960602986417353658931023514151325947827785579243237774074189735352738674136395474212578604636220941292561246981471418281709296682536666014919770867947102034061022691150496684497043476071923849273408089796811528496986307817316822207289179775778185303143575343362774329763762158061603391790805408786758868918390240052002363138463472491346635461442450779793760098516436446497623946215111598754584190496903398276045308732541594801163164940819076148715950035418821524373668078624482525717534360762940312953418817899287780563610748305504633053241990554501034322998702363471226103967201881236486932044520715885338389224328813695354608304211720740412383455086517419935239675078295240134202842849453014456014351283264198785210746336947704052232554607869144067723179233489537219170439703981743397990428633997089227510423325639626498693060606906168119590112992921352660683865442247922470455525662653981518641192340453385867800762829151464266033782925386195803276281331509398475134564487889091521132716024296592574529198083447152478914110107039352343232313502995921080999967526067110051804362887220483323861108178595969397862423900703249948473153970497207819408289813799338421991897011116678671918574623527079823311673509693875793935063979060084334944838309580919539936431837043453185440239097244444814123191661277655902457486057134134176967592686752987270628856398281260914722723091179483682151150652451207823522145482883940284269872067195772407656373424377735269860271726199732069581264905129857727004981785951705891341787245356320903156545998837676635648501644934864839258455283091747383386988407950437049335912619947244583484357827326114282881132764386408642324319719605657831187632808559899075851414093570582542306835995933877593133748089968949476603122484358784077141660463864872785966557645155838896028245391065698328391035772817290551299713976527924507315795868021170736868653815641801602291568129227214567398241087162732011342140373849680747644271737568282823214359170088087417924098657727405673143055801303817004348807618923342492862550476187095220572160306185263241579156179132408926795349571559593718432055650976994245972561788053439631031001091382530592356126556775115588404266832842563981093745366210999606172596165176329523425764600925340332599594744849047583597608735829011178829539306134291951877087139526978628960898883901431167213227253078773181889548675256932425870985239007713530610087768234551333178543806560491233255178596154948052579620392875775084248180681307385322387226313843506873790013160740613355762321448517239412694779446562668101110544341579910481171554990561012414084671661485799231477990754663181171844309684574229143411964199592429126366672925680857968331043597130055128572054755094886287732759230261307414055780623023277468325653662340380906396300210339045952974688627448764651751518329006186187749567348573550463757840396394338936430814313414435728262638379585725479125100944869229696376846062445520381349642777637409674983937248225446267627106092175626098535561199457515994692594397154689785598282320434628963014510772694125209133882910678930205571056682270577946963098350058446346229948656435740746141795599230938188736416699853084968579314866708643438760623008816306474063824822904130557939633457770852947411759985518436933685615498405015253037343128641772777643583417862929809196565874971426698504057768162994991119490527861638616679243229958017634285071409130915695106761036100735834670752578352182205024863040615561646233365522381670374466969011460251026117249380948230873802940158736203454083935008757436070505182535202218286612474994693386677222593139624579094769925513905431568868613718938259193000510800559161409377822856115701592282128783818732036811403029781241346291856929886074105204231227885525807615019762056309609081523217085372073642475952132930271521264740756250187592999364854374106443926287711869145762719100721573979309790628803921921037158269097325981146703268805286115402909379403502991597423818502396098766439173023926951447676656129510115040556450684604040550771647805750325487511450689527362372482141864620285021544373320872209676282980121117754986536381332902427575969846263167809433387461450588907517209083358142461084305500514615127948276624454827671838915004540556092427208447256043186597550546124210731399430699172513384144033090430568449875935834604215935811691209427203106365242210325448049438676067604832416946374296913724955849867952030721538387762019699453481512783389661582440717616454276395448560292657635548576120613059690531695777780129895535985163835592379971625672887378168716964341160420638416595824478678375508720844983190354003908991254015504248253857424503147783948911318847232950702384526478031546847565449119829618300261989572481732889481526393150550447456180317573239306686104824229737476356037577751939999361917848697687885014575575676000805525010292766169146807061541690162231152116526833668469006817764913399149025981815738431154896137889379592263101396148844068592686462224275104120860651434192897235140003716130172011836321147844370235419294306723324689330581627222780445374325495728148617675156584042223106983532181296558434446741240994468942109272652280767153828422494941131655341405439064694033242488463258598008045026888845076974529176398944735905427892763395874689213693381098285075091610593403227181167390958855026257586901310254480021326739549519533292182427951244913853962739178141983192214308075067221550971083035971133318329143347310623462205338920112319888935677929108425368015365417447607109527969038269687885451228045907994192274973429947451026678499760472881559215816091344975215794038479940093071534441885127362834912822526556243507601433014698698704659258312075350471936439538870626163597501567733824969668568923355172853135777672604624381678505530211014548241704344210411781555812191032184095924970376755232348093703817503813529441787057714512379426975645108060014121126531476150809885568599141572946923628786895211891396494579009595759719718473019355623667974591705633545857079766165876355329992584303323142673197031049742317851292237196003475247802394763513206725185956274217995765606060057275309776173054008541224347249667439964787668842194069738338484421039736986950490504965849742317819524191640182193862386947647148491290546501970639291788675800702511283414898916813108146537091926211728566494969571955780621174434062421691559737831866212253693093507242593352171146085566705180203876594501660013150924934197170192609115834051859361950363449502230725217762111843243193267347845871581346287991567297274043082209728612429660494071559039530859795989845286441238025898701536556121838790778774832795623974707014019287230870289423525664523852199574778847227784873147802877070057434514176020672522214889556893722436513641473688056102389579395363664447350483340172005046245023779527602818987660881947400151206582104567707432348806419283284999224204865584978013030624192827232969089197833449253565785274486256656576417659089026294067114520180008664575091397833057730121764079840787360631065144919063145124251153599042322220385249278275804504602555953318094054083919667643873493338096900415954778538082737371437615875780729364349662191887230860791191758503947105679263459789574705118555176293924195468198052664811296687217108373219444333140989759946063177803257552998737673787636547791563513469459583564896376491503466886608196476336082231165039891286174995607816251557174314979467657125520671877070990972685110101813168948838241638181290006667507642351403014978171066173031559043391680370660631423099534202468494513963636122789470214332442371081274865102697477574940270430818530140311501251785959298594891969948326732142101303849270317573465996255449271456386897479836195332687867313603489625510264000671515234226356447564338913763403926566053195028158307988622335343046203871379943272421548763314197392851955011641899516077379103797917818134645006450555070232021876196180480394274073713820684780756987678061400390171358706271599461590239874820075006967817494363990158086236956681809302905581373882072384225920442507962615181677015347644969998100382125590834760159451339429134204605553637643301598805353656546756920370542164365298167291238825835749170570584445257475756474270082664810431858670410505207815756106302520053471200512876272029223387523300144569997037093072823690319270962502295074743759489812272476180726165864922700010150927569619816499653039417636337994715733445712115720671692325892217271925457484738312419615092589932896818245254503306355006178740276799067247073270872083076596963466878797024365887784538619868796060455161786122309889105481936648604402872991775027797989882848242546158274519271316932842951566649961985264245071328274459051721122048044755232106060777374971314392048221479597168266691636722345607681199971832548744952078912625065579384172668246770689918413811949368667877496787097387437828175215028039690712027688617010796152048792536559868257925472996958116516680614884946869337166449274440083329300608221504025893597829114581660879224539172511156164075906524619589807123263176862211764339798519256055633344389040934290929643329344988587185943225765315080241753024415120068651626943929435148981431971988324717830460260991459696574581953202066639667381892668409439641860088525792002486756595862488203183494641365920299264964861414389981594133368036343209033242154272241459116711607658548336003994113190497382902577260931554558446723048196339729929160336313971105296594899583646212549018951659045521561670022390768624332342522838656856855136275051672475174389938262303274109573918325137080063861966250794394589992145635108795374640179242723494624100796750509076805267474011485667377217933846153854847447790240232840961988925214871425889047893096050191313889892744247259132174133760824104969339861808240794024839478322333709741123095604826192183854601103088613818794782154972063001372192262421106398543417472033804693268079614536970803588797155646124759459911638594475951602733901825956406517520992447623170526106277839925337971318395276089173513798174172574175552824512249326097669566518739575712338448139129358976878980315853364029065111043357512064487759377457568724362929096682846311617315224863658284143050698878472463152416952143589761360946505221303497229317517037831106120197062727979138526156396567649209067857318853097865552351389748011107966338609800882431758030952990609692728784373995415645131589071460949220264751636867347356340396585879580742830250222743196778413521801668383465678254452805250843336171424292031689071538649567117641758667647599539092720172292862872856471527249726627465290214277439852106062609842820335721143717099991728620022753066813163034651673804660532429810985903863615801862450451213564412703325075062008562668404192311582995319766158836723813276891625991747221736529458079940392233232795505552825756942961417451481896939557471057680657013524186983012651330417315461358454193929074568807827566989643034533510731607585699170179183546336718638114490542566446291720227672108723839847955130606354904942346697211505747771775976674889147803251790026924915582680639627252585019071413847182234993100947095109174359039129521082353236101521240953108230298941698189743201807011691988159506807846568876144243408368676424573949483537141647835734484100735993591313664009839561700012288422252299443030467462951884465997292977699534192420977059025811983674241544969069251556379792831979244576652465956638916116542766257641736167523148867943636183239651003336661264971262272941113991521812262329319571253995580837896893990974227416882740644580575300505924328285206210027666825934799544320629262948673214767878900305670376401226778080390876844257021042288875162789665282748604192938923813711734095657810611032315039582686312356849005912394945473615979609005728947394039411407841536659887562916847779192393841124214657811791337296787788420779479499120841556260416823285354032067448273731686936327098795268982025359741524204969595887163524776652425523013746339531977649997822661816679307507200160963383677585521594026855620983043261757020072829880135970354169005514622914171509246386035839488452341783432992076673642077375957484771631943258739689410628051137813569336246463468140786148779047936293246948584081207215833767328849372867005400431558357527959372709976222742264096554607037207106633959815153405458645043444249540131031100965743954843255371125638175046506534923846084228745413611103228361004440651637304619875164968211253629754935054076821578952763428411300677605809918046324305021000932730109301067992532481345138056273158373095944013979404287329875317318361357376107911220998305214643108950851708868216678879801919000621436835935866530540032272514618396413889175842177323629046511888069150558119886620458209796865181746328581936366552557474930248942892084483974931456934244568463816693586198178755711988339393377198129613488579999583403331999170909312980594427478625916546173221460729874333971167820431618846476522804719341508263088746036947512786182864020516637245473413574270844137870012379330097803418664780105338163509138648118768373577636915869874133388640625058642560347302447542340465369686728532193119677807573106487615667157732469199223029754082593682518115459826742776022773524307765146348067437275109874395039893429590487415627688392707747296841735175516425735390438795369671797720336451362961483500297568909455845118665225579358467901907034322925620906407664860805972123247148744132283086462354909030884948332571153035526408926303030137716976465673595556005699382316975651823124568345020969141060167971817682899842925479541960675081377196336920175218776107372423478429238799354845672521992014678296979213102997845039603073133253582077244238512535831533089513757839527576764559795402894608827677112034276410560021769881914967769331881728808501099618561005359919542602019940102697900807026677516646895973226858391764983183444199472406429226740230443635842555544059837678217116486306732913857813076204725005614789706177142947103788056659058864475516497691658779974961184594614033410280938167756037533373735881005879410004842178244926354711110154707006318160004886132826667446023874263092686128302854861919056977838165508409145757828585423653223728473244289366693773963917513486703262271566773852628580861822771670836698123802886888934520367188964462970980908093685192344799483288519728743420375994746320009360612924949090263617981247409393645676422934782110726799671273415988515396723466828471295498593395846481769203771526090662023911120233685652326863749910417055246153132753856314297548156393544205670724638383098969770482146204027916682505867689907930799991245948241048634175232776053490266539838538703901865199982849438222991837460855920076657665754972314966576227307528475796418394807687777697045245878356158624775628186744363267785273869086051167667920663209841053849836769544482828434751812435356015087987049613592883751829219249746224556623116092629254044966515436588476103074150435858065762498976058998128625006563329152569067920123698615789874674004129220262314414862313452443391776016173572198480554647199168076230615216391252354570062304210802859850467435615514945233165793821206587615260675317931243512372460848577934526122254445663314559713464444811717292268812393737055041476921871344181923755077430522406920322172144695333748192132985383734099928624043780918381225991289769199098464940253467247193152303262478354415406033482368376827437963010738437983681067264036874157788168178988252442760241176823421637618231712489230631582030554608359808197023566789116869460276558234955564720966050825916596130053477888452185384637995571702704655160741761131811010046022878479923977934430700357112256725038157163332005700238070821636860752343369707240271722663673981430655879765537256155086163727086538067821545578719992382628006253887790443235917092825698950927767979911151516332156734554230469322295066763501043042980001226862605223966804037614964402056709860148390548953161091871598479758769302819786960524202362688478104409731161217316739074452197355576710976246779911922335043430497914895262259246403945424617442011343553810564134264939231116007769735942847274083882250626981544865870145567613448146184781851082407472159087474908641992760565932821640013187499067088543599634970962405425614466084736245238157873375811395180513000264548705371806652160585147930705091068771845082416292780679397487350534202899961040638726017607270488791704088949425206869446991298875298031851829168705472432191665223160230083794750102532888853193602625770852239164871186129348354386351948580155478232740174783520261111609380739362269753681836243868664863237631896487163823343266025977101855628332495873316678738532570126679933379665688815426057844406991058092746441446185997781677414193567023852114042324659767040635419557643091686020837936770367572122886990210242284437048805332947060683408973262802581288160923795291591912315326054948783213582999835116387765332780028518612707984169692629031057645570387297822609995331643969274738415175462608129100248673075818219053928173746503567044450115889696743664506640598152044934237530296353896569726224027407100470224174695810972365106861875571550974462925697756401110745261752744821520352848599697034649442412544765225713990965155830432006479893749646330820125651950179425939175376080764705322355118498715605728512478439376273171973055229572866238124261464449707329539511777743282843433288722294388515392540034316212375560407127389311898869532652685922158206226957672942175719843056486057273199644350238164586217251219775749579145733766039887047462662815142484863411099546091536360299780268802990641285593764718229746004245323240765891993360689514476439332439029982468739983215033411405923992289430225936785718348099513486976251594492174994891626875847233714268479178625742200836041578296650063911076773109837773265742902898434078645120693974473028824056016717216584360988647583549721891536720747914050182815849894914618866467919736246599573844173790672063925734649389058970598412958293462114094219262379202018826719516162939706828415759026392463917136066645622250824479630229544864926803949572344178174885285500032729609973098723688842850022765506218889409091737350130003142656321337655600457956120229129515702392905183384789126735419688889444639624964001321896490019573987113774510361445427351066861625689303576764468657841306206242199378181046634392670820193956716454602429546833984837052662925659983878370491900360170566752793726564017392782893477816498805461148552199416459828684632569145359209842861412888659008161306548581543714715739316693250208775438330127094285666514528913395958219878354484599589274973268625155505159090463763748064331872058769642086426389270722376765126412994399048665097594738685840234205643431607696210056956044926761885020126099075623474538744372049795872967514992069224738534018794678966589169090287354737259482332099330845701286818703914018242262882014684915310053788789570173546586086133545030000454087465784987837378468923075483302880712542826003197664608931381818910865826750767602980436569346192177073195385053269785464076790825640583454171710266874128392859451773773112074832321232754633660855489676359504659503475606879649178339658276844518306023976984484963402630840229755128023213172011464744198224274503769015955536291053189315119829055338023194251873662966404192499874303224655331413788840112188844160134319733273212584340796265329771138689113406199968955802944995752498939479552143358032964150455833503297659749459465542708608953945629159541210024549277964119292122107946490749091793969643056038887355619309242604170499427909131155657107261032620356544276182891246784317214704686291682933545562084881582418498020640604034349544291721119423514920597606425327915353633310639008364261950216067436790931882782740602256485451189854715310903919326673778333043004520855966370177091148719577145858038228913477134219222326235976947173504664266262085720047033335935006457089758429521734514335470523901210628866867675885570874568032997286715005566756908569648852611320292390692639610145316428463125123378211472354294048834232599732369187088407477167892789567616679675145207442509435192351992387573219057509622523098005142305728146571049393346129180204374997113975068689313988040686545666531095469630380577197644866537671260343187323979743726348308458334279726989723183990116195513922862342783191396521054664639139930928231504059428311584469558101590546573403544944795823028207695186729480328451636556218268137439508747004991082734228219013291880010924040446653903747696046955917249713360849278542541541815729197285659018534685383383987086883397284055613652413751920398429727195913136291214668761917146520268310982182328152153198157659496738102884242629792347695288617905415170271099658766248594513146283524212222866733724451236767375024257121399923517662733198597614489276940980535274021486373518906002635744327682245138796020110731066462288397777086067542434421992735842937589194996011129500150955358029846512757125460349478532771535618743323156852979201955844879086008823174992956706300652420535253893688543377405087374263077935979210602947317218558574078067716060343328875000501087596485219889988496391351707336183515146185758892748133676583611078190299985144251125856805133306299175181134943132072450863965987997888295754779915672921639664337812410257143476716309085458337900969357253897010369082925936062837497611440762700994644743295643685398991734178891463582891943783613298889794761575250753324535928241452162341067202665966582021923159640285250091578831012284648638040924144518993985146798253155110868639799088199178271363677795006661203690072557093224174767687551397147867690468139782575352701745269710358290970360092076201125109423765627579977722807075615847459359594523703828783208898017037123017967831858704618713204921759591917581041531877575659021289666825531812609828820112115155825373394130227894235108895041288765739375299007114426608531992264314257867135092188123757529720176903771475487825725836797837052107041832870252826055083114660417777161950369777970601809843609786717373352947375850215642568667546236261394420372956954513268167034307342027989811109157281492014897845262554141966253307397339632617900836900355583883458230755131411044602653999641157809186786389116464595732942912208963169549128239879226267972703253791577499185139007044146864294462999685703553981713465975406009946881283439689860333412228727609480169953996431784868287290949473637554340769986852255516355624136844597389041408776748329201526019949943804440898189416032220772653478533890617024457083996413111661538999037845808045270719521780573697826090819672103431101775754842032846149009090049183778628248600073215235579400109828397605823597390132932729846683957132166705933896967362438361074547360165846380613559587812101533328730245656396116143152623344867665658603319063986453108227728356315011248426811041801196375951270177002603481248914647625493921021178725749758420316963374919129174751643697818588485466881374926289903692720968244431125507200241615028587851173255617646636305177183238828370045909527125762585139106380123653529569178995986625723457188425549565453664800947338788095671069439824070338385650723141310073126823299177853003827745410613532623623039846885042318801866226018553587725462792683278817056109132604143673115761182533517131595204558592096305365867208254784045531899666046285606446633331979607397666599004107465301927235061082764567028657689339321941469809149291316815131621798283820922406329920058964854904158558729761410342816967539003416480323540404591045962590039685614409909626837611690170109199007715347999157067520122897634632268547697288490166256360671831278125936012067744902169562628545476305187859391356416750481295295990250713571575572613143622909153528742557557183873484502941327329355092692349061817046520651924071976974026059452207179080167219584903836293121949800493699067684906780238160986835125589455469312248315508898103266981995768252834359814512819719052182354124021957780848036932456118497987904945715269639119425502053875480408635921145014906782779679210621041542542488590759009025688951430019819234683091931595988712893532774014124615992829242492936462241580737825721689398655894678250347320031571175497184337268825195548184584391047846606018509030898381201291577972302907902351499007211704192784580565696112693907727596798652957764250175523997405034156837599129632289721046228078757434274820442572926199513770286760052137662227673285337624709912319377631252399643499693954307033289127326686721884116998154302696791260403853584977213310596810199465633296208070930142392651559486482296042207733523040521327139317364764692146422701396046166249605703650784155538109373303691237862150291683416597709914819744833438703465419184386502943673695709142353002358364972613386916865410410584188780265879263315314681276496751029924082029837568668395215168315246571749772012856060133466955000258665814443626168512842032546556119790336955625498754903494092299205694638727799626121582988853976758938115764451114913186537451902448847145611040466343676301679833896271063059258689672270196007773323075856573642796313637061982158958031468944519557160061409994315247939141415227702895718237824485145539325155644998057585109508834719830497648460332426468940992192901158879090322135802045849717405109223121590590546304240799192299081356669369928278297823651710553131924150453593344605122972619537159074094600070986318618335186771533031490956776886588112180616485056422482861954099708428032294022667094968976997091006754738987164683186277499215212033247205301931930383161993132756387185558726614961493902271248935196668681738320820557177723917175193765372607426804635577004042069584869813691478051151496111551502968463474289762255382861804652405422535454979442317244802379400359052359277891881793606494533061517594967482043900998516601407660152825290190939378148681289769847295521102573584928929956038015845592026975576839782072769477883161313641172531660926986337621144943016054780650903241922331537552786844142098663224145475924883271566830664372257957814901440411524052251609100916108786689265238667557391045785043905637280098574638843080820550710746255609771239759142814652056802074688994942378185041897384142134023876129487703159572540593252074766904274630109581855271416749608204761392824354957927830522557354760126737842312054925447055228489845516429764078634236928743380427259914937389419215596515417729014329644378030163398309836933356643923339577501812022495250341590434387234154698924407903305453705627626624195423992979672710317274745461042332227758666737998240486913048689411928108638331351898692196824792133666634471071025962588511581051758337665525828300471371927052760972625455560096228294982198502419644147988199666772739425758833112767121627081456798767082351070196628428946507433284774979486122824601164062861327854664375644822246138512845737562648248190875663263142876295938370934693774029643645738875375730689490651226580270763028625160383546776664530803210278321245984557947262239280616489599785803233628225334089367209888933879208428844611036967615894291222469737916907692328495778778517291263392822422305047072798794577623584794040572610334935759365244582798956586200020210402563895970108179885412573846351007920817786675866524619333611512623125337401459718738891272080084808318411180309281978074022718010564207336043619752837147249599430283805433132059853069510016280608389188400746801287559915837327261003837096873991787990191336702097107755106405721156175517798444969177678021538022136773083793451479059603963651799189506541297576419862411891932525682130977109022459114185705673806963175317827154943876335691591643558162802772186567990618041417965365933558269597768612722819869454902814418771936605863312759623961097766354547049325395826362866140549418720327131195543618577786633735384603472323137850089947415208069332778758629693460228556084282470682934402213702004674497516630919077774355440438695430142436467561588937499263513842852326197547134877663964062868585806057319125953826308954892663872243653495349582842614043503034649731235284326039805282796224578461540414881197829154843261087971611081540572991261991282001242875151382037025977513831039626682684029102516736754248457939209721257776321815720238496153419590844605959380688418927510659253365596802394360930650061383065656698068739621081224140323553605146592331697022911857749983514883852102502596062121875105056153283524673577034939114740294711619119256369511451991262527545523544096562824181413065873334247593243897851881196716224826551256496367010836572157548259547089587969166009429050777618794918096291718463240149923399103954277482089975981801507474523327323227039961186279572311586569985218070347002511752825265490169436399545208316209410468519688866367235248195134889171383385957028169822750290283116813086538235908560033594096120541340390916475156261838322226618474231815635600979464860730864368663106386365970601625713224829626423641982573847085381247127239777478252884508196433976937998586322368905527254803261049558201398766899212727712612171341585523512389200019990999984215774191617408092901499045761154795333625369613004422777788918591361251653115603337189938078564093805325520924477730597411137809697738476503003193800407276605987282173971822970858052356393070259445289633236162588660904576067976496720535874857174343684547596539006228700638030516626227410554610091147517097401116230979460891918175987415558677528559701803831621337009679355518983656800047584391830833529864317820677155764340752943171085600434790066107237373113018251604518496647947304151063352134185077981285137350992080763567207365995014953146921569816871729212673914529762199139480894581247930097220421439498414761373776210308181311058449088853213976618611749016974131647114828917625018988722750507375326703701101479079873078049783171011694993433859036691260509701680493392929861158558199171694419864497563354080728020192982368243840896715122846302166604774609276003530974237122751673530779468490218496672103353809088386453799108328872139471717271028561785653583065933410890612326641273864563919874094020782233510398155073124319509432376185551705494995867901168201740249968211720605400441114159436480225871481698650232238497467796401142101223553828096812853511954975299131890280395927060235725558751558228073892865988559105741420905696498900818466964859853965055657761611037307922538319654205007759961624600132826307901385779122089125908296322696403849823194422393048933429934856996587740917631018376982169888107256481977818521944759952987743108454483460594909615705760935170128166960128912200522958204774833585953591833359803499041063110617334629949566423378492296714291216587693173586124057341285453312930473777656339615917229822977475504932417902396220994976949289201276647967459814965970405323629645832004664950565354280326339919091890714860086127748216091087869549892735666216365011022593249723908212603304497438256022504358645058931444858523287531866516437378978265288063724656991068632715271255903288186686566693804271720745857631164991778580587005711300395962458280917677146069337743241183487697180694698407446536684675275909660926922845272737951491081500730094388168856020849762493564750117980761206788836995011934863002027520272637730891246444835041880232687901920747148851328719506465521304470568492611039441548303137178518180407356943730435460056552042167058139702459379019491639868536652559468818257352141293574310483144423356406356003414360285226002883379032616760057334220534790583790180902544357351768673005208851454157202871329798460171116074208132964219305808119737044937125805208490640347522687283761686047398956591420499346306713925457515859549166502299649406910984963496421678314000205564655975953322380275323416387977017557947694239890887175179311383122150676743608184556293106199156741092415986871338188202596930934810932367822370681404903110853655075282898507938560379897164503504239562775647310587190936306616207379481504125672264079922083965080763588149000163295627884720792427935047947825112638700693472937914884903025713296946892318567763277530004767910840879477542901993392961318072575099255642917459857989366386095302990096799936771156106227391849616188086983126229073718532071960472132164771619159818785700550090068873859520019860095036997201392971352388303118128645132617676369703978649089761689340766373307896110235146572391553083707484710131456885848089013251810404520451574410619124438588686223763763561243411669648082335832384953330124119361735477550366662924643389427331530955427954310155409357201336509580174183973221826009248472089890607727803920245619343613030513891786948237800895256694764305898475740727802368027312601366624221631545852997974632869306650528518879753272023917406206892450921120146956254132442235037921302470221519171063395207138757367083342792866514179267689790510225746332255905417905097806280075240124898664603686439223196377771756732385729560588112145589133009006326969107327748412143049989769347223847518186057350707863726835672778795201340439431535321602888000610434424392393842867682193662064698534483958290919599247630239472180418283823156578280268290467485516929338786327976695869951453989936034653601827691745138347434366473183643683683162268336471389416072946667338930449177690822814144764517443698879058010631463562927171412646456830015467580927166239336274817834932575545916564379227186395653906137807152008246294803777902663732850908863685673234367171411887273531321193843776086595280022409473597183086551082425607606334198304386410363039534799098907415060000003977481841790802983360740523425298010310878932178668143582252299668623461816408833106602111979647043178974158890988245212747176129042362901548327978001028004519261440156281400194521051877681404436804902939266232480276293839254351591348125101161164532860209426893498941438953371938962676215977905798012592485591076992093857644314751293766661325034707600738149182984041695307579948543243468744822598467082422137725882201391860787116479998268385759475255230083055410432032105224358730295412979754951331512484663704653456880628764996595237150526240320055132437834729859576556394270018821363911642580994290615541560737664194342554003187244514658375265427987908734308702009926771990073857184665798044804785656956517902492494064530280837623736783125073879431161091602984129871047812127715418422677993641137366544674701083859086760733674812116687565567458764835833416752023478687224203414028878198655292039328083902825026869192664059295960577349332932980747108536433468679479495077383726397727448444755906151236400602320673676299629376034241571660142623418198531732090690619224971215898865979109984145169499452641546828247286406845149227984984000176338121635135700405325659846539993596793595918838424961167666932974229356690544297060677169877179604342626521985717173354651283652612554332966946198813407723226043693527476173594402087577566187388726197141727532926244480518069708238544712345518272065621938699011451836458258779627196583696776684452668546860759128709850864901464855352828039987266510857794684838438471280552166477922839949503879954222440482497323553127729337059164875641509577559796138104857600353919340611309319206038697943097397482665202618762288049023410691511233776484823368917352728075521251353454689698032272108370419432708962831855238162100659254029638213829483197345289917253577471071226398564449974923893390212604961592951670809026868410531559856027842120162155495867584381070089707694997320873762499325766554840953328230908408865266320133393881500848133900236490070579094703453543682912634264217551557716330599987026905568037716466603794257638202359034322881419965672648566987003879529897492292236465538715965435642547120386496156016289033156280559151567555663439811464560009161151750801863922557154448878939529838202915653404837671832330553576334934049528810085828995574452783545034568912652688957763317331655845564301583881239043859447875018081060800887170373318301603279911773638465953945401846214308510752452139431359519347763385471658027544171964574216387318187108610074796328722144828437501693087708745590316145668409322167685244695510067391510817153991750473320161318829592505879214496085138898427172527271556325500975933403775258658630456549860177888004674775587460740263492011955629888320656502834383772556163187026223556181274338401548648882982919696928657874850653752489247703109072787954260669620096823511997006262499788975714437044555794236796430488462410362549921956373240767142218663538592851395371213203089683479781022883177581152058895553043644859095242262587071257006935951381214576573385836949080984296547268033550932331900630624554842192069771893083940355583697361223213985154973808366786057738812994346944196880159152305905117364525586519327761659071582532987812188008825013849399688342792657329750465420086745294469618564044216817967551611168820205876900029717191237158834634416901162860636678253210819207817935116493082126892931630535275499942254405151335448055446165451061515053197301837372706426343824031760782111451203304250344727222631755616809555839444289604640232494263310005723472411426980499964457400670196075306786996505637778580468450624083524926390694487954230029725959687710787693631772422286784835676004026904971291898015293372163311629582434190882896033237499758090144567435426930684454246685416704331455806321972756790701559892105361085082835812158380606581588355204730892193282011854313979822732923733073845601630318492753860618005798356752327434552525024161846773803499763489872379489238931181064339172277331913398371401464757935498614879635808691578064790239222526129834132793337876639186854302234573658193818449922800379807283872080922902974828462468755116410891483625980158827219454801331367955912242191435760252500087342608532744803644827346885916289195991527773390988026928856879250778674476927668223509448494863073809413890323390480978342356308915028751459638128842600626221001416418972557646893638645462710362766055306409165034968954239820686239980224181318295388797596004124780581483355642103993971336747012185635935439388077777689245527741205763071622270923047755039884467208500332600992501735104463167958812957419471215231649282264804462009886692501415920840664336411932272336786703329919185595135109970596454279235281638693665639319146682060643316383394545476192524965701508567842647319386377860931004786874425564165976657643814273495361624213316607745435282636195138954596730487615726287973085605534764670625166890418441616611980860019760743622399575303278578515654593668143133964430661437643127368571506945719897373498595834250762996326814301226982330502174969647066645344375901200162349805375423819643336915683372982749478784156995236589601977751204456881433540491494262816765028188316976626055470894074681052085222242904340499316045266136130400616147150622017969178917035810522968956880348406619306913164830946647252068259005145100276876490145287606751947479869534569130936153877480856578072511363779497086788504586209502996898589173474810521022240913957870312659009673015506835770042523454625790438978763026490022258797403391757415549355058378474782392701389634603425348141647768044287974606701554963041127652943844885892801515506157294584051183334937027164580915116930685872214198805674449513088220351482676956469063733218983162499062162049804291496426784589386211647591724947961926195167844589280815600320038040319204070089869307798022486105629369776609711095840595485250677361243601775538500990840826928063174200495113503099000155217319307829838978259622150657095053391134422490759000181258941017135330649491842517556459036873218560956458183916933738009292344929008765209671727864785545027308243881374140320047228442214843857398654967919475873021016069277082757561010501477468076531703649212657754989728561974242170898390698997037311954161084589719226061819520515355832199077404056802670247363875907485126622723681966383066306516520853603853690042259903242189347432799548667404214801444216477682431087306305856227655973365186500218521264843980785841252871431308858137847935718458075605095536539429384695486858722432311151144897793674688359469003713579162461364354748401104711983862238994350048142317945855469870338787896232649856406918949497095092897122447885427963529512038450630226352403702836330177744810325469707431053546516220716180623800243396209045693445259776961605333415278530057340217050934963412070567641162266280374133523611915581770419857421386780913380118378201562771350640725750996311270201283822645797630653994680096677601387189778907521180552699147072147342557715735628888734181479289258984613882445721007496073932591025469799903572661924057110125316416352788663718596786872973165689783230449732132594410562768587496390436568770289580042709405557921883719833197479037668605808405877554930891241364306068123515856790479577617404014463345199075514245019195404750107886520771990993569469043810002526604566703715270571322233493801287271299653833903499879820170300709362602215275987854138876005996204749550883256890504037606837848918244284170351997329147432455717185197538583241349378800323785301957469142473378861412309232476878251209752263096153999512386790722168680800049266068669279165570008600307142129197037413884746318938406534417999180730938270049728879646033460876404669442621284513345096005756523208094307070385050727393276308872248267154590917640905420186737871630812627405454370098549393477507606337717657576401685124690703976624215696278673883404793987106881762773500906270875178247034192095492178721197358188007754607831893660249516781137338748664215754870698467571319643013410641184087944945976184008797144554772715446123685933330156160236778374244302611583315104549793386561560376671952929149913744767719437840427794513921290563025909197035328912809634960173268360134001647184212227671797826035743806080202259059760264150542919404950045633665346145710997380819661878975810861102724313036012289889780544994143391325353819047363794898863964169304889498170305589406334093648060423094178527034645188162558719693429344995690055065071557002504443686379864849544463843852215692978044007107656112327090448207675779461129712425080447859649515141190440059712789475116084131992244252046422582595352896478589046518951432540041626588157126500868762405666900109737027062783525047340214174890602098191044309119132034430155798315191501489901901867988925918560248003632629165606444891800739683777887949193787030579963010789448679429929114677851897211351789734869564220875965326997342537260107228754907143159145074546494817893465746872938146152828090519897179340943044572965859895819138406306658387817502894571770736011051379186460094728410536175137348605771529737664996724114120653603942334092692378668304211697908840684294045673411163335958951741801660596909125261818207852401076833521181190213820791066342152294031132074162721443530512518549199126330495498782853241785514814015184895936291006857530015680858657320523419797543999863295709915375304022185297856767197519565275724432241374891165675468488245264026711851787043515518438532457156838583632757089534627020663324482854342969179362628241909119737589749455143664474070538890605278801463161581906698764143198963366071828974747418752333304734458709224523521350454820090818917536368168391123829685341244201934952515290961213907925136690766347724684028034574728259995737905863483972830771866017296350164754504293684347745425303605519554952079091565284643813019405954705582126715688784168691803455853697556233278939877945396622261464433407360537550898106903293457338805042467233601805252709344880792076401938385187715038684383430519670028599542473384644841254150904496196912180098206942977988930088459124390622948476442956508312277909164113472999386679931448533956182632770281283663188163765683797069125561130313105527632393544814316154716915642276329575935642995090092764585331115291355767064037423525677867733817242299449736677473410779831074663981035404980382002569661721748945693238025686734214114197434627279470792877770973430660660676469131604745480357465836021078037398901882811634185115159210431541440173158414002682891082184209155927895965859068899849178722894710806893713420289401214023866879959092521528411810998091952803996859969751637639523212100675613844649866581203320442559541003244200781162598051846946202127536290005721422767973112734433125047283422482253119633033429496921727022485779935855139958798362292254521938355474686261769768185634070121932242231900761535326772139107219188046647868391745262947819173571180123419295588875204113215982962192883634961731689162189539841831002207101051124150037600512276319894145421701683872202159716170307466238069106296115178601988520967821330647912852735674988207275812527682986655089225915085225213030745388970475668335389473171537876282601539895154017490143002967775093462382769487778173813910923303637521081185263807934924021644733437812209327950514096081299084993278498152047573445704282965220353943390655784802618364427880171690765949070327411338641639005135945319153733169215284239067793793211385120831794332324698340005320982538467961551561345924524167549823483316749854350889026421404285012340233903661404217908810852098385315778705282393031507851358354611168971367481049320960394114278469053995299295945388397329028587744945686855518887109213095072910240005684478106924199975108619592361527775982687998070493149555319816476903652684307836887913364234710770577338329779846950967983274485043358106715454424192591056861454790951303689590550367927386346035117718034715602998454327139390660956616370231280284210954756368486609932509577067420526583935087827543094029365105553556092380799969258479282438429060463146363906937758363567202554628556961286637105372083119727832193400122201343265872868586524816507845078810479932850768947780853823041097340930835246672542262020534085117472177002418788338374729913836235876985933813683895056974392817990705767610442570114244905379680220080225371339678159899025012072565297114764660878367589559723729826855454550553794241601262712844179262267735163315115704181988884833841343937323445986862553714172733616629501569084250122264850952912166458853711381885614551426275739912203304188542151513469988040433560223134366242933276113918506466230612850996213139114188007832814375888484306325141094081511450624238002541844084458997221114803693641375709800439682101520696796205694640081557523163965963348781537372000468891040533016663344687459844132219664243781940657401631240396738902710422781725193333437635930973106103092461190740312177713248110770380838932833473884202359323978128507834923834292938485532159221775818932433612216527980793778524174366896208749147863112306673547370348288383965526633378156916513463068910216699560721370343867427958482527254764163384894796858210967973426420964775950142673583168650689057948430912130680283477630052089540358960420862808827121733565353222165558949001794408703877456154911857576925881394993120204184456113400089737239140077501097480643299226245314723122363077115922180108926255415730709992728960727977513050489695601560999935720387617295934768286357390373925783786606022723351355517812455185529926828422131217580464573843504762922300226476467253449306653414440082348660129105581016446365969048430243814100733725132669345805084461694670984694962089035266696429454766064836049613404308630003836013596902866206748820637671089122622431355924046898125881996022097889486604896982891385259023034974748594208542657856897742909194653478349939509229877892879273331797239489804904375845049835803160231569239370735190496637059677490969966075224269822257995504663630796984605330995298124121397145832186987375997335268935555860487386172644551267959129106097684971389858900599517309734273999785332567913881163940725645580905097161662407769359843303504338093261363677480735680957272894703127389011185187434688993207020996204392405843052091717991307010016099996288455553831863713251156873914864611304662346285466132779931111737114777471471654674886493845307399244085897614723778243310768485023896691728727041610292008651969973039815699927024501450536279636605708354603942950696424481805745119794027849438885611207506064304512387034537775330856426127199323475569385881013793124954763252058036138055462291119139117103516674120467650243617020261509718626527404118416779283240195039876171502351006574257410006177036453284739177555118726474521021349019311139028450275153286687806680613595136130458580589987548622732322638690995821052291830432464145206999143913604400537081633106047895757435557034896711804281935094396591456763383743752868385199314011467399495500815072380984420055242396312314514014867083345337886443834432177648310260795103298361959390060789617833420047676057989977690477600743140356522780654469843921904704762354282162388716915096669215710507046072590497586380434824774268069871337019111268236371435053293891395112483344997627926088829683605512754675305093445940410812283821927806811580581073363560593958575335298993682738674883634472484829876942401997137567033692697113907110426243541511358534651910447280099545908101978355051495335675014920334997775866358223950728195474813748254978682616275262010151077731750471484886251691700615181007234042295088285166603685386200832379918193729920190816253310996746997372447967743971674963273553027486419559931418505594168292669200902683614130538762247483662915381540838445607032059216020515660145319337887502422222319117263700055392947481025431920707821127693939787518320859682646491115327345851465420444353770665783358436827709416667412636378766157568504772018405561990705233972781568348828567579495813734446778937912674980681515519720812713451931867750088246352703112673570162097237546383184097907636653006635792055235451718317724265395458503559204986519988092951910982343158479173440547446822564184411269361649222133290186713142557000587698180344987544035128291584663109435750769131458228919777150600358633569460898558417389448314562754134396733202478145257420514597732613981638265545245857876090252358669971964894968611738512687135937988018963419188630939378905423073912921445381014441941596290262385433100028241735713607948539860598076126614543283865550470024094825582469022094938077470102790592334584943422968959854119738757396688135812982554446115004083137314732378383659327375551503576958143637673996833860090381344207328196443361708019896604000632780046562458293694172053478287759128133658348812833039241488405621704371044741404639508242398421323154683875987806829773406403716351893892470838164551379408942451012813823593384628477113045962042877614575785016790942020871461170460990888387184168782926478149630349978828151814528097237126616388688699560815248532164387485240943244255734714979886763872201268154199671232192296523430140877201447820118767692280120790089773530480167098693160124236377772356928096539224950701200818613403377954536585655680011641869882610040077162740802661519687135883173255117359188388539757344350275304461057097250814407156677036109238688362843781747585215475500798031361931308875635057899036459279418816068563430084197296475354081481247020623747424362094753713453912922875718769262632917750034724332784111065495722101358902949249691337284114132061630437940066803686124995258148497177940899052407755508099296510504661969044582729332016741054628704000678875893783142056955128145620614978881191110611340232365701518578613256837369830266829934099369298959985458878448232028662551816576195214568680044523944809320398939001397465952886083850173166072563513859887893380847173075907606756563888341468115020159185850756608301222287658114399084252645339589935414163743901544680760667873615341168434716074167279667184000320999293693820522574292153872248507329885261279734489292353802857789640655512392431984750183283117502553382824106080202463381775788553292563418777286887621266534292847764425434382700653051477986108098556296883985150081225272121006964984351944200153667037766070108157442818486854195511055319265864074614474204500228836702673584816531984339237748676885201718506599637970253985570949897972297496869890519156332199431150773811996315147850860401366988521339702031804025964868048101523226585415354478671884246574513222852476933624635039726036602727539529679414110596115127329157453626904349403136806599713398652256693231984271969962808671914859453214892774286988113560033499134888862136388140933973464115883319314705605012606321460569520476175384359116822589209218870545588819654873693430339019211575570965919940258341119523022788974165331255247123993590726174038866709750786270399323028752736468866127023555031720462782767141787489244696559426073754224616971348525296712375877011668856050021264814137752517583399126591530600336197890494360491486149756638693597595119194093238646662469395075257316912298780927530836915961025121722591498532133264432122750559418013580942498404098157318283371569130171930533597368515248740497471357695412580374882187819164209653223824728849476789643125453233072881691959882127507366683480699307394129702679908083745530028652615035052704997150439006635317038677050391505277435358963659635657620474222997724237961504026688187007656291123894983424263838676330484067066744333530801726819333598395911316277051127328546774456354861895490561166538572717440582602715588104825052804058004221261622778817204567962501661079105941694118162323473383336707179963139265230796783267519493521468541732758572249900969806443305360175084745093185867388762903858668065098321612538745076271156071463591508136197631930595461052527991972156892128079580791475836959995840767548782788901489337884560951295786461644976840328178720167488145813544191041721732692394557461424198578869421405783121394242847021217780626132495119387960220615885948884638422625143230134007634065481007219853495383016696302613398056336088045906480773373638955940230045062864943991002098983016952019848337886525057230723319423214198999140654848321808259135461873954017328806164617882631442725757836882627073788063497972377671352647020328864396552615648866871491719374819848246959082689959294215535375440153675975704375818589037801437508797643120239201313703464818469799430099972358102217640376570791936813952316626007269683990186088503989176332604433095891536099279197560239597754045329189457221901177122081015654816858680210831563906057983568013164377658923463273979273575588400942103786338080175121144711284139898408164347538520090010309493719385741382344357444120731084649929190873968907249911054217265063364984793675295603586669280218407603682092664013389355668209923383226379042698002334770998676250639714261613184439066041560095197627545019905594490942751024254280818024571649743147348280162178881177606922550217132877154757619119159536940304873399757837868802061083740336972118098147773389065749598022935998335998526178844268708971846087656755608521262532248865321990194767634115645702609650436218393512723409401361100145802239887729265719903220694986101386096144700499019635524777867919495418915204692942536219692214305177399932250248275349868864258046707683781310193640690816684304913718455825771700114848171824291548316693310861792514995925822268336683186999121172641215810763326951396024441933777219318889177091035098515962960419836130743442719081040807515453520912513315127466730457112845225761010923332709061912028084079155283958112162293156045283161093989716226263206865630652860906183152702657858042203809667426343989595025792271465156666342862639880998349482237685745885591890572822845058748959723896767561229527525540421377052348481025566423441635393606037375745717788066397202371836322203569034682379360536812283356938766278369818466696554205768882589866447036906691260358487713690809152599703814799628998650578631027315940639412641705728971200234819198301717674600180796132298676809466811636100150661386826309757586003783771810205504086343350863518958704505091227805551585851683218923869416714880715652133366006754953194320184270394759013357383530193934699459571770839891432929301766374624821087230649346338398519131808969786397627974711130390833548097787802574197824379675955195835214537867331267284228106750007437779508602371378740111667623325726726923798647829598131277911411427273852959472299722358992278164217144562179225628117597948326306418664453071871339312363853176438834674803408983692648005281798764705915744811308902344846399944086948219819073886390666462824832774054527861545446724581706930957353931133157864993301647133712567899089130538398087909140923552611212355283440995308894197478131541107249194078779784375118117820397753332407554371899365082703857073664555219684093828970494875808583108969601005356194011127473168255875869542008885293651676377227815129450350815923244717430807509429188778305378846751273381748292967570358315722797478456527899768059547348400534025650544863638298058973954512075709644434017545715704514096978226192857883494722377171628171504269356318159839284918194262984200653260395517601395650187204407274138082133002465352812679265623040612288884167726769771973475400175973057352023585043985685472052405032856628060680793727494128361762316066678968518476473219782755939085643526046325260918258146935783011249048562521418496696065624019779642255540926064655903249360756604258520362409816498614272960779808866407252624921564845142282486344068409284992671393069791397307335635144262563242323756571967256776663434669884838099243461039906118838962961488349004204378515540830501872995237480881014470919649008763860553443236781527199112414434406474493451599339390489346017117878789047383284360104852828929007023868262596504942306950666763239216873913878784112697874221567139964301287098305416512414016738233342090590347545833369925127024187053357932394055356930284510473539950425090876183005792974202046903426644724496281892805048682688100856505537773454682031582372045185179467062142251666421675039736741440610580150878684036942180471675290237283560456463566842572417423355509531188625015457456421012171738589539041130675952753655163250919222344926692138710924052215440004433207845538363441400107989022863801397903395125230619670374316613848021099263568870499332593474696572366018590018885660898499686730549325594814083678917171809666454437227308122516246679540371626095827743285044945891857062285274102734283026867349849200432319925340266670018799895709003478267476018304443299714291206903258176361009820112029502294578653548482206949861328029672364018253144811988719497693349212476806619081580164702382077134642307163474961374030487385561610671347388180107430823986389241476626886014096424843592645773199307284107392963806930332399636266255672420318026174305958681484777297634016993265505487315552282569799418984772526150992584883966217576139324655940116848618554312829129223572033148630315956696740288672571031703750452265456649229267333313800295652720334887159767776999765498867388103003547983928191079170735137574441710001133349513743278313887665155563393759530403377759293186270492726701641103449683659274409480494672198509478316071742828967384643748869017121118895821821519695431811043961047021742081428199568324238628407138984172215614702346707860313175609184753674029491773444877477804338998035393703743023404447878012411089837964477246095234744567803184567364180612498806558560441446943618920798636009519217563114708693118027663342228680330727720079841809235674835885886972965156307752276591366785651603824807944984612134288921570909590329823749493640563329618569984565243515717990374580546650880839940873488430106485724833263068952248065999859521730047830193483630606328567532859421042702548769524653185098614416620253535803069307500750181896432363864859073315389443123824138011878986320628691521323463405792236320562495708742144702223725635535908635743247372405401843618127519703859146606267856632068288461602096556190985657128515828230436169810535274702018679213925258658354231305978008641013612672729888588794247953848513858756313590124090404598233900694804991898415826592345101038392735682602795662617922169405677009187954388088587154535107464770256972864940267170191083173067869065280069378633478227453981719885688575120010913974222253280257286361023124394270801734849357433159702534787001370215922158120516994778713351120337692237291630124579615298620827694899423501710693813386311584399780626422713390887345078486534479192249420550987478803675759000380526337140758147548035103416649847132510013152291414598750106147628021023914822489416993422653065438568866237332068316862110076371568442386310096197922601355211123653294462493518437340769892223968396623895153788484708522282326479235715317830931817538381787663996920579179385031551371664272383083684634258164447256262482347159801344141486971318462489324927803431289275871921625236286569832786511130297182443069641164716575379827493032722589601314700102886852391334161784688627214593191303321651709275159537096123622974846748786427224593191265941589530863495879891925322692739434163504647286067123980701820603466713724826417703164614493602667894066960956047791875950216481693336250957367150675946526160960169449915383751637730348671607765368875332603283091384888510090281212208268124127037558537803050942203422935758404468129188989573059516966445355193466375381888624880785543814307003178844719250517644783197987307910765784071032106561927696163489961284349574130133810791910112553162124654710507853400897548627148897394370030424448485097076298454595344139108883891421841761401628273967505875840080871320832284622795437580076538173219636450135977703039858921639918851582347136180969992737732353869290574112657743430420706747300104422676468661612958359032118166100348761468278082599156767954138295227361937129036190487936873284934324384217882523976912662095814315423788284459008203292818625269357252691160773928509747870715873600530644446432871475098250181523422794465163894837525055049947599239097421937144527103189022407860941282571045722304899129152587512359501774602876665758472046537050211996346309227989699599454371995897976899646051365758367115272888535445400880593283119210772819517249401300620135421203206557918276702156957163149157384129418212969382218028257779318387490691359144801920265513168129529316805721528048700652286878998839191567974921945123848505741260235301781067870572346345811039375393719021477246180216044708782021521345313044056658323580073089503600062031785839590909360597965180508825979847869579157634953029423376264437550194909355043311173604700145875434097475420780700676799447024471605150531210792967423668869558140769980563755978987798623072889891907283591052387207474107677175994871500976561506259067428550533898515585979456618461353920842907531012918010235572314605308195551576701837324500434559487178780118823603232584298440100019893332316053986967233872690065640091478461252374765391504411252654592329106974081862571534040562359693253252177947164430394953252386416687502782672788474668733715171917435252615049825858640330953054172347038632856734128372273042771892853913874464920407660201779027328215774512304145453419376434751139885119924467150320574673103705282505588957823722521632412776618819329700998221754319790738728513741073870983222053573536317773462954964865648129203458309003814129556659139449670036642528802934526924296409672967378626563660112804124757929666842782880030131609819274191984745987916333095665400330062449391735656872553225795589834732180275595692514820125949620900041767651939174027038201200933624543099647369577933965275721953147604619386482474786767467821788345365439028825953166849034791584899921667270975912770951344417190447417440440340798924953241381471495269239067303817584804853356046176174895009625362767250146434014899305485082891023965583739525218583696554203990417754738156426799683450302431321972049453478644330000546689708063781601350412035199445847130217642366533158661818053356081447913355183831249524360102175098374120990203514413311869269058665409826532072440414133447842113180269428765084216584530429237856806780354611820845365510672586499024848591866797219405549815999737194363543084541382489477558156450854760579561141424347053820422122845982791450762576899954223930560210287486562878083875912973521855326415342119467141362430675858088510911364717944116556959232390205356483488274417144359568513179962777941751541629765614165150632272963134624977521530621337551790928306729686080512083531625316565786216332208998445438912851517012470665458625305383038114415544472686792393871136807895418565812491507218995425098640491874550880813867300189338265849442338160170723718839973465977688235927252283093521424612723287951149612202825956191508749640426265201893211202052333405176661812729128762602462724251231932166412958398857044811186222618392238646730990102027374769060154633574817788108727453492844000237833444412279069444001366222216333358067646245010839893009115204384860540949782959955659897279199373757252215633563860745512059909952921769733755888816189166889337871976275486033003306737424964713528412314851679429279657430106647919118262499980181454879130480672566385551363656939612552841064528072208713714315030407287890511689001151797017036155864548115197099419598914382261548271831695066798218258114386032333735341284156702021617812674707363872426062434013379972523419614164921886378296395026640029776935444345756250548574723403268643822654234686772251647543210222683298700348729066628749997268027674721557547846842823766606418297732562043233853200409706320371368807394310968335098448118046193947145583674378747757580643259939398578216833467160068041040595180134150461812548970029561198100918752619151056971685785406332538451176994802167067043824265468822782299849484472412544531030197975303306641036001379313610339420371116410525483994916575552972673463109597801370981279344061727295315506450646603921629903637953918157715522751936759800015676587835059041924518895850970137089076465168623899286180868375164419330707665383556187369836430553913456026154446626040329417394763917426138004809237191597076636679429680033086768316229376117219860605237000345932590624043844428863001237979641772078214105179211990599061423037518495407665406194928914354018426058829359412289149883887330041537066693509058496742167539102562599491536504755293041789676343795386033202670895914070513926975148715353909188135636654608891064563820695654387148540028688897320711739939331878477805637538634419695573389047996249640782210629833103759216614233191035023722248850146726775953917420806700240024590166196934319288830973697525694260351095723018792362192260762869491502909918369608319961279788802090601878797207117329997905308120773963771458534196366845633755402382706991503332984171482349393853500407441994300300045217383088631123851988564238380008752463902197036456529568567241269160113562198517074356995467725985843386538290445296019393828485024076234683918439067189741409904601752057493945537868148723130475007152573339220646398110736041634458360848383598645525896312841591341457110909022677455586215726059056266976798980967211659928098766637120932758522565386454533500172150258303039155289773883604721229899585536846066418187172514948908825525764244693846018664442907110264763928177009933690591821281946632149957839575207941218253922981857179569401690543516819182512148840850020713017165094772380826130205537482583467126626504415097078012752202851998904039767335455894199554124791939260214646111833132149171452175721624128434186658943703815705408273350178834245217452477803549021762996677129610493558704449987325405255542260764440970386514686447944313444938892298248589524423508514883989413482928949965759495996790335025902431337707493673165808025601531950530491168001417165485477155148199458308704629025284596182364554116955610235697552564990405451184383189425388428565326018766517605646897564141878188466056360556124204313245200241143526184565760620126834148897758610105953956011124698708587263512227970938115278443148012414608465149584389157197798516282614321479537169749130972183815465924486537236746552740505909770077315797630775324075144499004275698998860957360118707235433188491912944073657663676063242413293079839637931037736013195900787530226048838550173719481043276487985867634136113490956766915522885668870467458332569466712077740546194908178511494371109639489156763267133790038447851488340950130418010311712215697523381340201982890866703031099237308591829745306561036888284098164601744180993854670478958535073725006207368165684897570343214682129008778144752729246274353233695705789340403325475173618375839279964117420171931101177308220359598638820865753815603886903533985944994327057256101280666822099825807634853053172005683051985552211938034292201364074643843624500812410361529385017727505607959386010596849792635189891041038415646089335859299163459165635370115448712361358620674848877732605096314994272309514234712136448722196557005250466698681191594953158611004795584729633342329015483176810856614952531230289355185927280657022101970570878797838922436087269908335943883154773717440162087800970005359635783089267549689893616093001166053197312861016049542336630754444113593314254038614429064105482655413984532282350021466430995200826328589465417637437487108345187296896436908552874920051656643770046075012619631812949607816219630478193279194325415731929806617147281994243979824751898179429794298857036502607672290347949523110639434797261475494969037737070263910340581777445859494364089332334939923548701998475870066095075803898126298130502372235263122113028549000146362434442935673054612821722988864856928947276002595295460537384230409170129224341702244620661731342865899380896292303691282044301524784876016474877737034755449698841218376151768068019081403859948744615114764768184687164173187484364501358523314581495457531951477243178131037726801983404644584888674047225002737794452672226911527094329005333802564236238341336906111877254127916383614094604463721946342300271157782728831536220609377515866795462017617919295711690987686227392466361516619680238391933961859916951763339491603686882256640733556134861892586889085595438105802393835823386462994721972289946902162169809556665550816947422533664724144963091920842327180424126495160631041387674041125151205167852231831895810169357814596281134680395095594073632807335204759331628603167913688737394510427186095418666014973960474333350803904111422188165966938924351045292116353802671565382575755475693268084790802495726597117539724584215338635439779660619194541242260853850781164620477302643633271352875692429353738044527459920143462002991313927686518612070075819611108953635701268557252802414044812535017320052943901013124029384029655773998915016406391917195827779867303499192611747852364110763450094482013764577313037288705728648450004803319911722912899113789072977892055155598549274319562631786366891270527826902954782836394983668399309102712270317658862002800018966902286302441905943670285692411973002240513605445064465535556233220469755772612672994778259683141937740560940104343953712829180730543754186916736929752231354268231321808168045929484834397178656499790207830195517458502862927787938556138890152716951546224646592177500466255830723127330821920196366075687698265082929101272295183794810771947499295861551675946775845946247819251508935106081148468599252889699503752749261561563395921285592609391801561443664843747964647361956850502659117452089854040033507885266648467381688186006766863187295956929253563053207797426688336211153622975351503611078103099231737254581717317174595836646395025820002612596393363700559814527096040829441893564751718542197003135790620924949019895716006331546453511250151934245433576968265510567189415314247240194073358751222019486183819243390794974844523457300074611360594043711114097345109798975773509692284240519094993563691758268919579730460833221871533125430884356008719879704139910618098314619822292030519358034751780954618282079300339276927524544168685642329489038832545549672281713206416902811244591421935553022181162148278806827650061392594400850330293351044399309156275302357144069398123096969675144881184713474177038680597996727184112203494009760028002507484329889147375719200685005368350290263756652866558518243550453000795917864618597403978434573777659351024476001290123512730443505881287148111029323709569124874194587720526427268118869980961412793802661831430177329996681157892361430646355938255207423168487771466696766379467778888571380067623955710352201810824940626706220208412503167359091896476501403453777078681197700440245031835673946086709216413552156687044984285628120054310158311975724397581054682194852782064319045071718721481507870412102947159258718545201366312349755282053205999862894800664998606390825033090382635864745955728576924274070399138016754312458810044311049633571056622127456888961681679354679136127845339671847055442684142075871320393558355817681638696621042812040441239051698528389477260242557334904130199001502720192438947727883248291158946650195982494039872785881224445638161088142527926609329699132533191938535314402432061767480445854488800139175275603249754229713562780208851715035979135918216875306684126879846716195252828066473911279872916826921996706907693817930789235775153052180292758757623505940836100675613538057502174652978928661299662494483488158828073078043809080268216436530955826980438543801986209063067964969291657242184645008067670114821284763120355348142891302760870925656858318248608714251971470618582739887479430808901939948363471704968151455023105540942714695862019347852488845802991431664428650181677249311958100543242434963437657459928930172157812355561322390205795756774878379147392625344892588614501031443119319714941988259168667530504000692896530757810013937404556906981642912194655387236777890534966428531594718376421746646547636902247668442108719918892172859236129929481173847434953197760117918643105694067335401090267296088983721687342867576533626557866529337206308380894124582964673445522307203011703996752253454759679756057484666250958301719120070482787222767981520368418817752273821663346623699359491322546807431620292455266445115289231228973000611787416404480954826423543580160247629062555226225965329735874618826936110811577656395203228318896890949943155975959127634922232431275773972655910982749425499455277915915308245356188930930716918422131801332135836177116270564941335787346748425852362684096989973109854166057550591232922499156368327551527480502663572743427275842579460246739094890122090044085198065259678917422694445172306009153216864692839377718255130364576035606280079415632133151557007391325450047357772645620638098163716894684956907234591059794651660594412789412935129213211329635111971598957083297314248183511082665506605531891622456878888644805315299525091361320360382862583017852341378912983889720878869138251693682683434909549724058445390918315953502165940586089122732690186967769489477572079882268408137089210599132727735143913442747733338496299721834090695520195066142846842219629116698699470067244779379959021058612865697412858196805684862274307385746416197985540299221242309604191309344065030536527922847679570441574771489707109744743570753240864725155076671980928016888758679310859480556948611771689601681513045805605030986042929740716893017374264823691572770444302857140178672940423547413718859307673952326711722824428781025551864631630904014359914379723026451806634787119236428396657966843317421843000252506865105080533755520837205410700216525038569453099507598196925304691908838383542252754683382402309661474339647376153766685172494886506601902612443476847070995465455654391468069071320718912287943313839239147369146629104896514358876042397395434064798635873490068795826389692268922135072556718117286634113521040198198748592351662588316416799094683024751080795168308135683633897737144497131928532563767667822818761144241426302720378997302423108425983668329538183575817430608611580562800105297825614100867857101975253704135765473829631541805901392654464557650906440471662313575409887762913151362475038706498909673262085193299243850255353407459971401885238961255672098531849480993433277804821344794011991199498964521657317167372283077783295044148982085357995350403369084532988057531016561464755391989366284675937710505475105043177864148323298029118772284975735792774826260636111411484564658790486086451513462247773460525346809281538455703887996261737377609598291088322545198661107687218345969284060317236383607271715381471046335792615691761118569509542510322623553241854916391041028100044163722273082319788574938711359252603548008499630333744545928012339189426261940549070695371681287458998655906418682067526116365567373626722332774347263226474934940843433753684348317489918547741848401988640161612891597348255743965367292469324133616291683693900904286037440301800145591683319578311050385792546257963600009210051039779356853181987155663083763332703358791234432241818992472725561517926983713494253438694096077507366613665730792723023534800397399100444358562053170384257824754732390620563085404520655658811793312344499579682431465194169188614678721354520757851009827083156827603646121337836399966037283190799278450910082485972728256309913310279524820479202519990817369557097320373132856107205484147140064789215958785153552597747978986394346970840390302195257375761047488281919981996973689436364886497290787095673860818323089219163224959605594586198470013493067664144079979356033898950119408050528705679185205546956582025773998498798419478602416916997878441435542995381563974336934863401010193598033220431546970732675050000734831898183031244387586645419062546632210604603309974853130575057381972801756990345924972371698678482430784096084883566681335691301015868934344868616361130456197919485490326418372878789525228131803914944209179318751979469372333083285521569016861121430899800113466464422581021140510999140349284339978354828448659955424297077860440314756534226848107391139252939487208490188545990168468816815270369393176102000381318287105804099288873281941583643324906949303640427882752192239546664054522538626605400711594566104193012445161440064866347233132417253690032436001129420096131936582975502232112315314356297167596299804644003353698869337366680086529169427824591321203089500469557232006977433415621196993321305467887622618444982604278926268604485778184420406599230861060861338802265772064353621038181443496472451838110369253153325064737671870533587574217615410118132370569060248699143838046465909491023615676916471219120254797088806560860169345410944961321386890066175833371527795503967601811279615771657331245848568381425811150183829154765578247695879431473708633215348915535638575622209402285121977126651051492601318084333288305138548249937215657261902554019939272386118527523283328889450382780531498212588096603999551688415699077574550685292759581201395567083450007455714768968944247361575823137831457032900953949148520418606810983929112076183393841317113567944863882896732789816482748146174985853790093754648691170958443812531573128399048097167694357142580874354739156715123315540845076043089688507129829163426304946387248649083328790847431814931235047412523492788306383846692734120356297715528628312295822504116310789494890613297264023700016408813420339544777338469141645415021974466636456471355890041702176428407773092810254055722641255279793836737329217936837322670514474920622094959220409324044367960264334026606366697796328111229924217969888869472713262297060274734025106925677026018010022618656432208100416393290675354307936615374930078412374728295576761822232726632708403176314960474216133300786690571218634327369121300376187430640807085145638452903298556004579392845646859635764445774116675789221465249767612198597239222978554297344701346231063008601403484719899049104217136548048955040681367666131872724296286070953685057998802732047820703060246034756744727233159698486018560728742496582768249705270008185447906351585884228326839712803399250503464281941794226915353473211633044898963659073365966670551275298469804922131587418026162030244418301057495626789627329738477740745994006275804615623038328666123077319844683824400992399839201927274078960778641321530678573297769934609609848153683878940754269334057542697491789800025632607440589047692592729911861389419245418114244693820177433741994141909501911456657970334653923223734006284886934942043252722074481486942495491865215800947269976871646477385600209963260238971321474409160603751535484037826541341228595687936988383362370729013104602478737748951795450547561756557993061271992646361039923754116965791641939664015853428595365692096548175831491604206682631254114220554448159861172525530967664753614458176813192294129763490938243072583033934753238659076943233008212701954081046764425531219416885730568893369054286272550414450566632395674354942678760302831404134593279841330493873846893981768153457589006723318479832538000242797219950398032921111870451874780045565540960128193783433183537907177258005126516128360997731318478492254702040153032215307207925434869874415313747865643025006700814918717908842444880821843541756072628947225183640587399697234887424663334786992086020529915157058520998696744939736614371082359339029492707381151826840666363673154135163285659320788142818558184358956292508211353033806272229526780717651923399128317341397583233473490966925910246662242317210074333179952050575115898411648608790216601304207001989159949988481064381596425957522267702333403445715942343426613572673254856841491684030575708678271909383136166350601117135700477748298477867885127800424157302215976921527770113381926442590098961535700871931568556758119957563409497419154997798855093422947922854957475832950961921146849690657155181840346996480430463461640793541738655692519380465685780282277738409929464516080629306188745540850834091899542022231670618936325587775707092884556734384561192562973578008558171544511777090380323020595408981711329741380054403908670896516572071196136319080337726964661967018741310215026598645879288126191495611434682770478499444678379833190176113786575347973103329294134581824850009069707981149393679466923238323215056657520033920542603056242235946094916396582974230193370156424118856981021217055995244986395282807124983938681346978806441899212220579230139963795426963039122803957027424432470401757184908023351227919916696195019051566466844210421966915339419837212125323077584753164736839497407525256674190775537081096993372969887418838374027193671602761798824761485355291478192085737741535406993215766955809559568995378551828775550710716442769962955481714513136819550482051266329910653384068704495897333552809157166584394357291458175017185750838459474936061801159174640487837919770516638389209922640732068270513907663567436268304399583522560911936703552220699511540316695126071311901282799932009524392697162183580937415322133304462836794264686812484623041018945746610093332041327756526655975518616363706668481508880395572521147059230966864637401965190352352002829086590802609841310245056408494376417438639035633017493931526865913326263614979165590218897609811402577300112108062076651896728652360236650177955649667148024191042846851622281607117068906210358842316879125731213755345793962069446526144363909251643670727031932530778389542435589493976326826681253340014373135412617935679501824538120578212698249221508240824104825870443151665850861182159763457434671707973358889410798324313303011866585107201302911940287449553890496487531344046050158833026456448067521494481408574344111539839246094583886266314293209096510667328195263153466855684327928944147878415480334270049459608400870278124051808393597759784369298167986496978530544738580480910914025206378059943212200131934460481646945765685635054387851116042487443903699263188673458778331176118225051534767761317021499773372044753560958719317087231164778183476189936075859725638599944973465344964538403917098039931229334229722873550317455460303109624319141315965400968186750058905064058228868511647343307074316137373938707979122910200724764958894599584022387149204160712424720085095620250116514094155025985981476771923483567157890256227834534162575696528981841849383164994109128779361062953991249068248039193701696360259132749355627383602523811470175245221148535137570975981490445287491808662790498887100527053340939155546190829620658827956812374691032829265047469000711138937932741233068610795664178957956475583103133172445032286762449561146571459188195658267624626687933848352858142207460951822471473056819631646478115815381560829075785386401983324538789604624292167194086792632620724188515456115213420404545499430027056336392067018805443324934586910402533128133193881450492881323192695723513342386851020163067594591867300650187994307422758140225035167043512006601535502943751913415411350003036947649268232148986313702383614386774333003703948018666688710944290209581348704674415773785605530855820392121245759480492316825940774948728843613174357763592591293255074320880386010668453333176505157177398151888859479938447913282739284769058410929707664241480249667801296483552443154046751516852136553813581567783778316333540629050154725377874713033792090366037011423616084862873568568568400500578992447035387650358798668422956415453719399747902418416470224984566582341044826227477440345962244324460128398909424903359253624435628069176252317163273878206079154193892838946956523986823796241396117680136797771997472013283117679453149427186124820841144850242339188019065063162751594555519825311058297100415300221152416482379722172948295715316345898220392731182453195086818295049921817868054967121875969195424274425141033538199209097486611131262911925035567428406035868763421451821754872310627070385264805218618308880371400696489462172649978175635814790817640131170026317355105228693858209408031530865073804600282551260509377745273315110725744850336005520067057862664661613468562998124893712145674714607850359316792211981616280131376328089542222682551717401985163161235519718234110050265491041600284764899583934293607907362077022627126124503546304277025332234175340146779591625458660285789200317104322319075452453775494837033631436961220948978986245464203403176687853923744911035476560286234096054324465386396218063104052264852693941692300118174666627352547774205444510598519617261502984031790901603831620502644564366991816731422213361342752572698071936029827510748775841573808237242493515369384453746753485356547659764847703595990641577720995247282631069902888180018147892327522718680768944979341863132708386429407368585162251734546462077319726779455675248786415058875336313046745767443192389664985390391085752934283069300976709968458783796611817348505858746220550321901521907263685742602081300127109916423800989515148262508292771375147390114794069204086903761578268701593364446488986029614311868650011764384095422068590886997239334974438430612171797308531790858877657693600002762980088112590843552538095705511399982108237332450342474448437962688948035418360424136869122121841592451783576923917062870617625957121471881958241150477867301158213074979634357095697984728732276222912376971038268047424912569420939952319176108062323508010428663718029587792758984248494304066385382627284657648635064435557393231607570062872910708233001219865697148083094927260152070019998348740203702246648359781694009070217208311717699926357455670670560653690119797404485086331291093891463359005865482908799663186018355323978985839167273807003546997713396074800500705999938254365031748112957454389023626871436785359794687192414484473222723867027450314902461591957489341024042607654607005499766066102392413856972130056738241598996830774606344462679074196706298253873790806749914590575704075630883225190207155081339017942483289674630330005708011743866343348655765578998430284868019502460354812777176615063981463711694689539730470236173265132106119092914661739743546466682497780021816850766793297446538677232537967714314259054344530600150534902856796766268240701799871833622080402089005463425168938274714919306856888949941187748391130290525151797502089917169359647228711206484990978664067157133629315828118109618958084277664902466236898637278096387791215903334699952187685033850017096876701479808480427693530405622574294447213333365781463733660794448591316068810517746652830641650821938877303507514514319401981456452044877858330851529326433482689947816506706390671920316793523284668535227379270500825002201013299093465952641433677537347455884967556095915496292520635162923767257539217740295300882241289455061793518934048435197679251113824354203157287536597353427551339450984223266179893475728373092266624984816180525482536276853274902343220299935505291762465971031695114478295837219949735859223775059686907996627023394380672739085004850215087115284110207483790578604342885461964665604219776760358989728773952664556203039053428862806549599206108670035088673870140165787793677583482971024591097381823429847419975825081304058774600867272408739917262497250411082111436153854530528741258104091957138552374236035124095076448781914766359860609778126219542762254840971879699722611656451319009207076920371075764694752943539872881107927105035936952206957194692431414352521150628567843795986951610050032624702088780288867878665341615989333445128521640039598121211807065734618252123322144015218794618455818445492571671295718415990116495909783496557660305681050327591650200650168268251601049983167539391024209432312666338572343039002386144849359950785108800435944722091482647735229044520672150205739738759964707369277063326021341807791084019942492057293952068382025507209442095613487080148917112357121515270876721256547284563616571225111927744720348502931705573979036667374861358613144340574787743257785684019237020122335266863677160215578040616796369713809664532989041383863221161614482864583170413940142830504923593951150865826637667270476560339306590641340165030509836047383261965137408970087199870990665021580701220159506624685179532787147890582128816044442679786090656997805905842665769622076803643595687693475511464639310079635542211892809471286622956615596938260874177177796701307413917191586177760369544125141903048303580983713547267092902447533576354633557184424055814029298836727227551823414528862780031086496366600890282467840579023571851090677039540256892975414010593285786188661824856024940372121017922922198447145306261674995703627701704179545545859782704312889483165962658666512639079363348423347593995984145014133073472543825285960437239780604282464154435897629405418234776482193306970361298009438953992973123972431472226754831146823055099614482457959817925161812416691841929521272726015838461512316646771057344380493877936329955994550905256989403078359801385252029826772029253953754008202437404650614637023426171593322321932455409411015568819623567554181951835717370680043333059723651950371353235893195500936152546739062712217220781461939921023948253306900963231717480469435369771436280365634132724982217815974770355678938773956360586564962886186814751805692613332125149552776962114800415987720191334589290756970726732061566663960946916152682563503108536341882536600145029467246709657834441533674093702062865192515061458856366503750020817020012514228973121470722788934044290415064287162743148966991278310535204141157244395873115057644781601077279932851486372878750390957225336582375812584395140164058073943612813707111116415793168794032514403867335304921902536246003632854260133398516375879724545041295121183512238889646623131274165713471159226179240485980160629948731774396972321322627267204659065342759814121337105790512086810816611232393522964667356479954927704716510052846611737478711562437335115098504757267192843766356561435604371937877927078270814051769712413015003874342327541631229028390993158977951876282251326976330393126856679970917938355542591489270183591138323087821883577629182061229127737641807090743105142370043785751725114848819562780232947053456816298580290682271333615480455392723194453377469756367560643493320692778017501098830386572920016262727436893399935981967343275613603106859554186579695773080415560196217640800251770627267312694816157977415427481721127543488751046285993134128074419158216033885889468777288791590675850689558332907034822823345533261707828470204747508329923194186148455476731200743109394524254271974078275167987635667251608738946349317256846490305206642580261501126749623578535979275056133983542081988731834634184343205239165817318239899327269065852907409579467715719108999484122202720665310340160708867010216418132386757565731970589467151561297765631846966189564512007644421538957122717811852541923318196160628430656445992077488416237361105857508026292531155338206754989762364554285598846489857179199070538024405334686383445839102455000759583883416477103022176254388751979150179927739334899605428516755699971317284886615996700606084146423949088787018080366678989320392174413395552474557442156220494747416232325117528408456113113317684703348704293407305508094167888186355566944477389538419521149874535493150339846773144930872394435033915517035382779175586383176838905508933002486635956120842682889584871108247692063994055509469393618419120819030817482862337326257020869757726121548816829179702562732976183576304422339294916096307552465792513941734694697996122162166510242109484988398808181529854023646918426645457762427721131997594937005573797999766635178091802124897801094894549805099375620041655255126901462746247378787452370074351364214713106964701105644035458468200755974198410381089013959668260179078669327045985613494018201769627639342574141019523121231423639794005525596193302944441297463692412512991850650564643729875531728791174362326162808988182839294673391765797850772947532515517199906656207264668322395112874768240696957606559441900126142346768834752540079084045590571878275550393320693487603883158934825002584073923660203341316868447050889974289307594374616055855876406184662520395028242305768276865327671899942970916620665143941051804009076521039800633750106299146590115380713917537543352881332400609807978823249986513972117591754242297336579118194619747988815346712178251569900800158279448667256806205396373798592268322607473383073730149131144114260762104672323955712586185133404092839130735483711871175767170856808654329442125240778610737462917476751032859875346118686244558863583694911077025614028431812189291016898939560068645845078984564868428699497664370834437629878982153405877975178138203313835898044144669222569084166367943193435915541667000180176827564119882686308627929472906658727316152291355009600385168222876888233788682392049772827751811595390780262160501352692225335883567711953828603623367987549960151416787811523702033630862880356049086545935467809393797532062810837463527778320886307743835208925098591441914396159069315561749673883570178388127773341912036714704936299057098866844692424969359267709130204754460185474867189334116216848206314054678028587027289909389866944581572027342291214156092419460976290830376372762671598365874855405835179073441283334330323463215561418571899748856059461266381650811301582375825849637406031253910283254235625561437696989537685241255587497662993950148940222199183881520743872596510430298527479857940610420447921661686460311273772187696406785995852227016479407057505797733322742917760648103476164779846304850062768891200213568074174464480456367051738211538434745473416668848368279260181794289237720132424920739780975201313088753323851632929885054261577126245674645266486706814576976116640101887067684291489441357523568733550493688549402179703049071376619040723694341382644975406394160230666807702479305689747656713668403661511890950257327362821636676922339321211481567942289902056382574446732620028663849183134610737034748357563796807101930565223219580437264324180207780834970783883648292173414258743747774803554397655374642746630927930891476411993171103475788913238802112298622610680649450877130654451531194217974946662397502744223702276630464475156725587586051967856583531245162950448577468365564230260150392788591977150313054150380317517624454376073762604058203231350791491573736176043418858217194995550665694594670437129655507509416361339485565277593355639554041602985869500922522440976854192703201635281466668614618080406384669157746027962055233731707814120788902346104834772387934045162694670485345002383257893891773160909414040272982417492746869940557235794258146425861088961222454301584485873654159106753937103994194925395773526503631303246436776740930575163667144134576699461516756356875538285488602315335757535313909403283588649935217453294588635697739847768933374778878431389086394082622751550800356351223430004194517058607180669439019876173754048108806126145244405984921770942193694994987114399924471549473959120100517474165330352701046102797256573434361371676043018334044085718434712185154432345908401630441524840724608199169207825530124456698037714851276352984159357237139037788422910866363842537538119536298607219222998317647929375412705866080813365472301927591234920912689558579658605556972394471852330573647521001882609564854222867834412755458685503946512339688008792798119801260918829519496185846414345080403878750514270635956498604441133301334574042577577503454978181836585632443187408733336618728101576402665139976902852668420113357699984723934590372275494238700245737398816036985890527151635185363765216256020864703077097945547387002886343082407275245051785829382807713623902575721029432197652970781282014894772147260595926077753346720521100945675700766883133636578169377095075080499439627806624924702844855974118319935987708029198629942789086831335938953840462019475841810579450086072379839845701831039481871167781321438404673591503293324070739088400122806107013677929365996141450366016222169536697703010571456960534529086794270327709443094115189869750577805981562086792274928809726323924589422467813544039523332912022151518989396436822740225052286635739113452052280549546090740571221115958530180294468623416652130487691236704144008541163698804922508502058856343688797561441390140180009428574829987089400964563942319818702774175533286106788904754390107685620478351067630746143745304450414882892111525644321512655533131668967532822196747313682438928369824115646727272001471867664535375379951212694275915352568052326978614365484635087572933791257982660115666608596476695875946807176671461068689068954587100970946472313950441528450634059405096181843245560738265721981059509344317411508046791312824392598499857448696951063366151357805607214300537525285385079826325723325550761257843988266224554154726609980046139402621694870887778180542430259388505756228718774718554195506703756688624616318097632827035221703269934018816266313221026037004559947707567204391378026235581380800093205852271305997659895188864034152340455278978533261381708328307572573338820161128047840880996486839388245664495468138141915924865388875923522480958937790653601151297742771939104227485482568684097012662187971585314232056913743947625105757604816986370112072072332439784266088343501739042949495748205079341631522632457435358619437621010746103078549067476573585908407957308330146260052048473020299956714590621938554477059992250320939560319481450854988232819060624128043351541827396760773345633907092994880988455215240496771513441575742048231025902340750053219170512603449265157693160387891590655432148170663753028318288408838659718948437673868873448709068746104428063395492598041555822175573375245074827884027364180921898064060491906440618340506874308194948656787746783894956733795003887111549059385955325443534932026618444501716920794799245876646378028921653831484993875116328164975178353488391939119262975225717433987614555706247783673669415997471526761434237742909560210061797686706531352312893700501485996791226698018839259363162061962985137914427626353443196823229283319711468481306020018512175123454175222820464691254215701226400059353222121824885613003163619348458421193166773125611915285807110965599516790232164635316026198508428012325726530790583298824385501033436624191014375637916404918428718972533290279884402810747418524339743729070648138598113417833531679723255462556901909327874499989960617584347335371299451717626560878825667516933886214416259413945968833682053405618699564519812062187215027480539433541138708636784691519457525610995025311690513105953061040565790578764408351929141880821962142735074421461119322639508115566785291554550401696546210205555249269528149266998890739246450577891531786885826823153523556827475775862306073774855879467440046931810750221643511208019560272873051135881739467974343913766995906159874930903718418607436169635760994409917171537291703716718027409245303580516059954549101933828803973768224234248404859119902769401013196081538771892427641782960950694566673087966334231058961673651973109906512158698158017011810229300548766611074022136122036818291762414819489732192606030804031525641562936229394907571498884114170812942079601844336928861267563759740719217546504705958047782985148730434334732677315041112372102489424326961457742205983732691176186128450885861460776136286384627532392000494131700559750084147858597651125567092871045617052412950217626119644991797316318561102824469421374371386109984682883222728435615500713807525063058210008691150060526421060141986933310675600308474223740024290798266977056508529929610323915936870280221798611505982507316142661065668190401720227559309458995320149179469383842177467086695734253973973976083279270807997814816477505801722236425938878344673005977262040252843723454463559308096144867822798543356005151388730106597936086305271450865201675941372216882608809150260651084681072403157641841607725344864375117787738777977789127553695411358780219168800941755989744487117511389426438895809624852321119393661512788488659155847898934493442943655298618568428393286352707024082640225727816142605326394768039070894430550305513334634308203306630696163292441098139296822047944707687225189198587184196048788680268385516498243693135833789339952718210118771648447954991937167125963458808878371438737159718455486302482795985215574037309284634585414072909315245842387277736572606192943992242365672538314694026946191381925419874316279941111159989303883004624566605613544558442046572964372309837127982482272703758491243021342189796041861182442778956429512577776875062662919834376227110772202734300795831292281933019314559267480735801490128830082191713892279645919116089470635308874101799862267234379299133577558384349146580593774850430462399451889637328741013182014323843348222328653321410098838249838504379884933627615143797360534730614196526912808826061385295541154460566101976928309000017937565267967397893185208211982253445304228453375819380806498257262717249946105209510900544753074174689544568223349440429823470452360946322967116836565874699342485653364521426137091163210027968642540255158876857131641152363433410525431318523661335829029382935966943952120859591202806999830827079862440198905340674972120802180193264961111474809815126952968017394706240544984014676308213427872760678749444622307629438542778754703740663154627658256640021784918312293445624670679323847481649625043091311688714053329504661336743328317014794265488177660236896042653023327963891646600083765230467959039461437001981217716918427186893929959974679176587868970722571174883971466784818492663608884452167016748591595389534480478597733509415950145914844131534221056417846676088406610300928581502414996810358644233469916703550679006972497743663480833649531105791512194788525132640909531396567429602699769672831871999262256313662206610253050436418145631014481342715799668650538253685715638292440195637646017662042778795605838228718796835464378661044236128649326921157931276069989997387959312748087749859046828949377380639177736776037601008934640561212990058192546580124675355222385415556868498183515684138138023545941858655732756537251453731485045507333704305126360962162182257041692814177859461802192290776674472590317825378730613466943058568068928372071661758890737555983548035499311635907163248389801557943896372233665688076532485538429488090115950410902286303437653281639248557282971412288428704319526133615114786562752382880649332949029083886860451779335544168189582757148843055391537287222618760288630763012691606655015796754714500104635294302362135953561917016042891593466590079726142417427884595870798291188802059834011701004546850709240654556825068664578693970393128270700756429765328649220342587193646910071334236930850385955084614764874595620737067865681439848890236864142798050556756569230760558551750576592695052681267280801243154404458444771861519840743110355579434579128012288221102810357729572631408768017959781977336068900392660812171875932054858115955553031442852817142154543416306337569340315392193063657759632608853539431151552888059575355698952651717756035490618156502023156585239534266014894534868352450628177669029085708923638098959983780395229438693330432264504245865426974770810308055232534207035898135630100157497566078656068559516077718396131299875875073532646856173831916885238469652478774507585786517803720948057701052357831113229978606874820296786891073241053857957121503383873129715260694761202274021282417157910987518477952061728481562274929695778448433052382804493531161114440350609458651137817109877560072736161133360229061129878594144933870665364699916473326396350874242693852320022263714703808443063915708183764649855886038012625885283832367164997654637872906228215602837150145458992744141999526978606879335583305441613854336411837466332061249499161293078223025997719742265641264724666112797779526724676566872092838044115920555288507351469407544067773337358816238686044151857401438389443990876632127006603322613565944771340534507597553618815878675017068331236953965019321637922722378184915668722377564510985911169409055374066558770964828821868327737248856041516136990821067968006048939133740374489092039931870956889965332749256270840993789201379482815270913454870735465741443212465477887119142751695233720501522893447896673209041560997022270687177564797537584262223628241683464174228039557718370605861964212731931660565767138337508008300584469041705579126488623308476985886544967633595309565169757389283127190968072085502919994293106546565839786594488142888688244749841093611757220559555342923380984706531935712970427612661098057837155245527919789595804486524131679456895690135696144956386727017884120650262610339497371537735431877850055350046179365248925239950997755305283488108298664395079478160502146044141002339729687339318237227625195739123352415171520131421454879591101425969214003384699896307912101978903007425848779499977423963401230523813125013714097423378014692476351280397432243439864204786634298942624912529528509412331654540040317104208494558270364697081082783441690515368141931361896428834949363467165949351611397117434340682511383528491251437076502706386054712172242459576975146820427405808638738600456268457936645807086203802887635601790855362952312235245080359440630317609752883723268974523859001943475391979355779886350806879966254560774361218096842382826609813034291714355169313640079692220931759545348714824954749182477226457888972182613142430836107932041175934897907021893328884667105125714990261377134948792349311949931169638649918467745863761890099783360639231532022104860509254414835055237407237979447442110467930734274478264152591060884603197406688757052973054077394201768927573730532604426995819985175335880626342452152121977154232532995679620922028010930007109669387456610319365123714414297423784147507488987459510288719040028618936227721627103565188475210685111108272615796154944014789805563627496989413907543192901981044879180899149576364687603824268231813411112383712539755027064076444172195841366411399588725916977543960395910612000436383110158878960376031357876302204530457185073410756379982780010390469234947443340465703924029503713387915682690737029585201284660691165895801127389850285154624717414039127385724652036628450683021334797894448840886676521701110037724989772254018698600999732211020393976639004484520377965183077345646718536814713644898416369890308330741717357207578057099530883131459764574749179489062342907596909173262881990727012806324032334019693276870519287341273787185588495665111904047284173968514192544626609912551638372537186960572493878869482514532649700482454221648463828309237382499257434049855352770771544193127876569404390916119535655593559350326041348502256348150856958395284204584858945640150526480782324053836568230981085502632224303898122415937622521056431401468919884868344165497563757533463743043954726277183222264021545820011405578473962225744002407773537610986732908244115942993789941398092494261508290712177887865929897474936596680244434426656796053305444248699123357250592748643453938677942538543957311067553948849609640368114992095258932119663007395328020047539841652583095107720411111159348499747698126458514918824357821957343143447840631144209576687352180526875337923578275159067235720720131040276179114709674804656764482426989231379323754462716397437886218944326111177899321260070603613997969225845035064169542489831810700017339130434340879465743660541864658045527761591900455194267285897891217698779046427352196144300712714332589005973644546282146320554092849355801964606886342634829527991571295188443486408188681896024909137920359404230381070629855666930503122716592648914098347577857248453016301540564434309418724399420972930116273768850022706151206891223650569900233321913040115821797258424791375646208327245241745433907646406538877102438976649180644873669686604243037190789162189643728068128482181488504376369403312719708670748380250205896990002246852075390953254491973876738889165071265520413623084884751410011916763244032035912197480787987982640205405256262923091059914231447717432317981792309464529356216727213224131756982833795133207650581926784884706815043838435690551289358661288695592981899392419074235801342966456203821719175540620652866895881571105680145729306054204275356226758372286267500247147272575124881985900258020779467787607347313786594237986473816216771925744276797215964674803574744475637711048332520609962373238563091070197982838978045336710308191336562596445666906057092943158325238620464189659639221718426136359514270870657673923904062248439100496081778963493388062923866077046470436624630333959336828025108561702349925409263155785211576934806438998849211227797675357072098887442673301981406496377574883093939430488801434250598439713618711407805609062573631432408055001923901840955668050166620509343511228418781566030836656606182754364527881215983381414299455707235713955739833463420034153352911681709466335471774644089681391219682035063859171806698733589126487233825201905482578219461086371600033805440876454258992969325862541282657293744190675872588964790704091948250469208598042649188399292094178172822407536674364663658927975263001459532093134488586297114790957722751540460580574610822945015462746959975499965112654597346761856244350315185025167469624736843809491586301926998275219132827465940797211406714154920645312550560567207562261298147805131979172554319512150289901646107278140509177585737799103494873827399685247796827060283069422120001708427068043880635753182888557525150277637538304478155361510293596020587082288856925393383253461174441544442330938738000696983859431129491165107260985481387071282665281215247779738857298472053969625650276391719786352192502540043634853184929213157517009476353856690129240052893792787827879112918379525808506247346804240554021894788563481408727505957316727175150171860742695529248375637715211518315195961175728612800290100434474448678019682991310682775704342969360755794653422459086069615513730215276567619310664091746840730560205136835615739646571662600285136434277484958062464311240345843179014275840259082559608346250035675669554410624689255571468502105583112008491762500365127171988737657387669373040654772955189337465189453194514373535185082281400331763647227893625169398416636727562032074839537326540996756937165998661191390633486470408852746436551159865647400475171952548709628690621525402394524292204258504573328908527520016680015101290925312008569563542159277949749434195319445466638382678238185766793063806652964031241510578390086943147580481889746185374941509670869486374322022079616967230906466598872128823544057611378687386203248380260713137579172670099789083098889124667780550356462660014186730199905682572703897969661575168908971318000182042383559135441400471165821352441440356743244338713323099556010764250237345085565904397999158979684523795542155969997915238244691590273553636653484011970081171329024479117822109703368359138703248290634323808557243178788396516307407868025113944453698610288169229945318096832985505202365820222721352549031186614871824056285363660578800595462155492932541050321421627599311310477687298059755544886283417169099300074779766581467598291455358655441727600601889018896820173427069249852725147024970237373879130144791492215507186705872537432601415714685858259559404235801166741273887533129297560751864329074142825820066854747794207175429195853497919245215615811015610056050710889890847130186271276594204573634425833762890348089384591241514115761954469620662890044399249806187454582252188703674544671651805468135487321665799623165522433177058925324511401441410261915839533740938980996997716008236217600518304352414007713214481586852107974936429002097590604587426170086649117713756171550374783530790829217617469025341751543303440082371044215966379494987062775637891421458680546561287977594226530710694080275841269631736891192172370722206067298758585748502236454462114255436751929058774898874067097867189734558873242675883561170944691115575760404690117255612939089592613524677635132392034308585744597652314757466322283196672145397819129637874899723986898496201213060130839205851205574181503979303340468938815658236536880338808475168884193388125372485647222405516089263825778631181900977654325806291537815840385254571650623858881492032782307391817210434353351472532367516126965491142110273318369147860265208524204465354208862750833117165384655284882859726164614401420612121742397327187192199633901070405261616662050703814137757276941969239168698654248387356921042435768348065617874928735520476726383600819864584471753139404219096945226121100927385698731460585270083859242330629005868714638886432088909636661684775958232605020531853903716049710222131005950622774153037474231585926504286895461846884411079987139532276015250567420249006899427792114868442482824416543948027537442906771697680875393770405212942458431779422822810538018937111401629720368908518303316730361933884261083030734237987831674598545044779892650013626785192229670716683328579061187072159223981695466389820217009749068908566684225765162102603879551738729106649168055747528792483026270699625404195338643232799532919281840822981845078336840865454934516141546701795165541524108856802004683870961168893930718156477971371638340469199329764584880623209780178452453754945515118346069898747035502522657230482375152533029521173941451545205518265963681055312524729931229094897790924363815639543967710893853918247015991656239375059122203376776486920433996424367448230143675694393058094654460731888309367355065479832684276506146118044902427568673353738544713231807186261360279994320487001031708853142252506074363347691892803232193763719934796892791217218567679064310770420344449388566322028579227534831146164965672371951226585745326461857012464118206626466779954128852252069840091266117780159448069581710596831743424882561926717436698018543066402525651517694653236846999681911086213232784680909219346420153556838242412781741133238366189496977175267551538069962233608700893643108069932436238819956910941634831582721480521133501740056549374948389924732294193725384008461010279651250056208075539162060998200927482082457565007182001721010926325400595700663020482157813336065174295836745381523212628786667240999882839518819169834365530854054808772687153482665582795737795316378105406969161303793236068733239576222032130857587681110480445380711832852434861363602631849284171860331902457438003447032860285283703220814811090357287656193883700082694449838529038869306694296419096910000411543312454896538497960529415802789467723870160279099028158605929603899372699688483614141929539575886399856420950824544033938617916991825101245544128019781490000867189079455265722669345737156032361960619081346237993572375813676625464325047127279574632576608662911614060608922156794486224763171918976198245806296248332012629498265128755351867124146979844121052252918948825457025536769941556512582094784609479464608578856846479463595125321593960623837125514127915411946099528658725135213089428555779053400732662893906816197875434801663386892182235301372469082714758644296394131253703754257582163903943161323112381437513935243679844286387270806404900434219133491001798544138940666183276336921865835630819719434799006832131848238215228296329513624236610900881924665174754670454054744987856109779171078672847523923964399681501040663898986125566033421573815941715786673415709138277254586105767910306856406604808001562209431308999833560093724592525938792793030508151914621450080563608140949622002070051750406259267860806910618513349046983900528183501951823086264422999570888864357279351710430426735285097610699648106884681292543211779383260939872021884814104736281083599900772357100906965389738741136087276805763096094416531488458827908798614243896031587441550609779141422268559940069001677080408871336035386736308438319560465882300196961470427245652292435440101744294402774921918645248753729741936005897542184205919933048920700695874820068145875837779720188011867531194015240696544186352280071308307400252240033372742306796097326449955890162470893044456203480718496672657791717689159187176383508356693101327867467572663059826280742778619372218192635023870707226440625889313709698661944244830318640586455991910127466985314841764723365968376300100974146628455938434757845536381694128194854199370939223413238659740426300991636696222892325773934985541835601468488963588894894075946919611270588714439341025319730197243206737521363276226571895540209985169621749031624888022288597683703434509950022162423339077666871461120699673035520262889600465875931194424575505438069329291751663711279028942477150185020301041620203247774003745166102507036217820467290122618317470971874787190941572488827804398821697081627136128484712217892398327135360669183117031642580527920762639038287926320416478134579038382685210542199839875871601898625301708118240683995186090991300699249284508849012198202583011731173076324016838199966526789735851906302234555584230809022643148778647023126053484267687895900174841389223263903129923302821779883485632815980872297442808654012497507615894583316247179381346301726504052167711783626348895099580979516141893925856324093463669078101141541728699279204273406764192298933088210296859171326689103874233050596516345963279892121500003030609466548188078721360076306725683962901024252159328675819805832509926765351025466463657969103084450407268044062113827207430876688947476716620845950055040279533572820360933005909870998330803973955939756251399090726366974483413712045089988228981147039209357336866086567702340113267741997427754697933417313706584096099276512657198499605677488026446192338783648832299918465130998335541294835140109344025387378399279746233370670559877810161009353849278961672283134427179928832300691145965524235516551795505948182674343363896394940296571536576124756082106998504593173256816220572742591805327946506600498817471273540975784530801900025968020923458752119673751996218814076880718650038048360833483534495669195548556243080951522013367545302106711899589806910243782195477164525266831994697357216046927314882936564885133978378415498793610644259214301139863055937625431790201985102525478902432950162475961657043703818390830905746202696245932489072370946625863931342723818959401989002840421737566354460957064910855437598220752884371662796608384105522504678412926743331819248479629144816513370010546954328847850587884077508011990244219547550257822956822142474280664754341121041493116053525168988972801916014860207377451303046531379361864776948574148919545058040089994596606782099717845480194658384314407504612237225781589853170166655938438482041747832800108549358307909379244246018461319087556355024047035028620913045829189150274857823894327650945245963617806885836992307945311098512247638981323620063543012427934526986174270176069220333397394575696530930342916012170663695306976960871995303376869340130338264166876910743235027183149405352263555010540090821838519480290588590998559964366647914289790652021414480872264958376414799392985980486496730387438473252350902340387900942441179961154253898400803559155411999298481461973024158249358579206298886927981678948458191011821194670019306945051554889943154770811240073723413410462602015163393167766195594906779147625685871994893795179972520712881012741797342521807141658170018291070201970900184731667595556067094850094854889674238557623495834955546711476047298265450160674891599164207411475490532718863581831710628311210234648977685448509830901173321621726129138648176933029009839896948807112204756115019410901428684733477326036818191774413492370627612060287748952904437032624393889603265135273376556606477966652972631917730070981169394711771174017140141788911219863457272072587783194157579519002727803005993911678827357823482845259820381094865295635510872659340249417819551897615960205169294067545379900984666489904527017313770519267320575680278601601498140901061830764254170391851992765161178314886020234660735895083071326205234444261520990832300984458555188106612868924003710630691397993965078458273168124504974744448418823900554238783221587535923298454646207831367645735874414062541556147976345162941739771927674084791842070433235601582534798150749448673033672920014782614844434441568482054208114089902050935543772636357574425768840247558204173057339421197529670902886514227221800840416003032587041080460490611983881874939142135802669370999451584843939385504561919500908398028898312770183026994241595476817412962634160166250634698753285208132839430437733729294565513409314112941297234997470975085054495090147528381783885120796356190131516339838490882525575307658459004873037170881921147730735734542947091267334181056043454391457580654504725851176020721879135888406107567548832503764304962391283481622915592016605887734800296072101923253664624973594080967777883984699159675660169824140654494529239648522505770713661134994402763964215607231313207141987036223008645554750796363966974721338837647519833642281340884508273176310376688605300253771427863223300187740365783612218944449904317768720819222732340978992247048833435485395343768451313849695951634686491391749107632169625628269722614697683659808411677755713049208246891531749921395889744198448204817555444267745017914758741404050109984056463885761334613603675079509955135031339574726241168047087888623910500317696297486792576448524269432682871978172181482234460150506824995530446868261674157256906299139875099484680877954273697210118679537145880489262960975550523216327748423530020808487438979405898521564360350411100556929942201322871547681453932971268265406412340312699394246109103900376821241283963859201501911857990115623331833414580730937028944365243163131976956474009990906944734759262848089669237207368682223330858903931262720437367594454604133938610808468329917920423707959092537098523237110394743570345742002598938758132691733965203414771920973861864221343940819007232519517343551903416207962625410755986960813063035143200572800501327277708856914633223820094184025175410401345285254917762678689065636647550888969944713306492456592343218018136675435643385993089072619721475157155863733135729608330789269696516851944057473379630360381496331426466881796738387934694842492657657827176875703397781252968670979627041198845043452926927283097756185590523382308509566266751723613845828835411767682543152044192134719548056478796724272998157269386958507240182262586644501336982346389460182844488635427774703370194547252586227111729982632497109806276837401436179065451981375748710428659715420801576056295007565823844057816039690629368936414162847105501951178740881533204138663226799478447130327350567478515033275657784184244672518169570450179080043899278386131242534280656495193976591307322246546226120367313105619969428969050152719081978243029079087088310125333684330844367524553659651214500094846023003541788635991077986918419760717321316108730025421839945501372638741016418361152242371936463167727799761015065871439863371215832292819398497136469771557998083649131076706887976990125178331904186814449737669027051928296471413279278451605281266313261578183900598144283922803805470283150727275637346588557940490020360122850497110020639167269895495855960781896206559252186781008028967613446710470636183933842739335192974477232315839828771095364140984971086371023926398802098446420524448956574602341226921936536060553810474547619733062154245153324282108605309962019646388759501412962533758233040009658197182078826091542180650393415334527738438357053124688472555693097060500569426117674178287498694929654707351232819056151656769306769177568953038517653987326921778009220420043489429441330599827461908804491577296184895248426591949080394533673451120435001817328345372435502325199039798707967442804000409349910389362559810961081577842599069880071805183703845965425280175036251293012773978982256481268670993876534249011069516461872359497833342137602308287696937246885394191583809945562754710037279388275802700370646363822656134077536180994940365368010467845049174760410424581186251890828115696714069484244104518256732199291943207141876060087294728044359267774748419128038422255845872383079815603494148796578483448245033172209492329007351099932270389794009025630415970478527236694356624550035810058224121913606413572444434834265917752786720279869061555726002316588927331711141829661100191018241270633415606006605149078291366922925027877616727419214885705110511650030865585428443258290198379299585557257983153875194672519205380316386210657851078115613138704264615349944666209903936159303298017090234724152566800703324481948925541180056583595243626243523893674511265869910104629451760216773353292248650079148520539191495888052522165252575284634747212809582189373525612188691599031449691413100188965883937578159984675746318637122796842533767249626741243459246214972910835232344762524387792388357356217597085854802031482093886748073043856837374257462556220959488025918340886472952818388293131355054010292323369597703835084198313067576507703023143048915583694208416781640599511151905221932794366629279994737550184057457197512828519975997383950194179265349609773766991686257024182751444372217816975057064731426242559730715696177385860218271955128671574468279316670582284364331300889498057485856511920664743241437406512835010772505608930522512027172981006251765195562497099465735799417821601016964457964554702365953115929893665239732478736371640876586223913299835975936099313156467449378499721517688693083368211477014434412536396954693329847214999782797097614781458590359084757434239640326644293556961181597665924554880506655316028012213803201649444957607510327441597806039232206889165160410717429710962191854743065363891443785669891190782959915305236653514468693861339082225923900841666955958274489036072141910630078818337817156078292918405047710110612442952011434555503216861426985180417278127335136205887629896349766604420156447076312785655798027429046535396173453400271069983543389007519487859016819082520275014375821047654341538552657755533503844997447444105194130409611620267334378026354785987988752852617555890779546229057607936637607331758424769522948481519971109563417235658480383393343972734391351859303302561499920240779985803881450337528149485806559754552552342687984099246898978812904409041892398791964489017598468561848167156491219291555071965153314555810374523123772572736082446556242458473825268403417361253279604447547829948676333887399333322616013205222357747326620848465463448868680035929148008430718595012255287829374519252618965288526852172600620775208325981597084382036702320468662996595941116175753498464379118039192889562988093169205058629194835933056962209496052148754376270776876019323847939326454931814583230844507963275921969395284850645840107073963453889561031624907476641389289100944990650849636581500434283450201959402989772716587344567262250921700770857132448642610974272969822267037760166372676635507313644473179239263777464572398239049131188884727701020063011579252637547073074800886424836991519519300440727569601383471039707128690008834241464648629382035142065694447402074476763441880898134898136882011513546598856145592895296114505654448577541712512437024368226984640629220331595981773676721425861713134240694858121649742848055968905387617853425610413630145549361149625462571942733005720493906052101579675101612928845166487796000376968702767850777056183763761647874112575312705909552385418708288413933594898735700472686305560072449009951331153549437018059920247813515796221557801312609115365282088349512208917849712537361149707150175622022384318468962739138657096551905847163266676331870411071465800037349564482805273636247228471207702549330098133661468834377717454314639597171381911790236480963062840732157236829344279710817835543229913401462913337176238048385512935244890412235307858845668271438029909806585515222305398140364613147650025835970187786558003557853198087806670735792287761908650943958147498826690103513790212460685871296669654558191256069029138302998781888444313282034213753417697699309016208976116801029109477373410233250045848999328726231103297943222462035251950591704929188937836898267330684450063804926083609978035307248248852494410506536364793607572052121959679369367160919164214944477747878284129056939421987032897319381623395484972979970612051961965179546606952596569068286566504266044633017929904634546981407157751407890525317154243695877497792170049058866048470931010301225736538906089325339189084401214162445229378757827185661786331514635495978079193053053928572704594136494992398853765454866129669826050934102248362447946569081376521555900286482757133394582128182420293998462928418437077738919019134817914733659000723665757140945119632720149987673299781560684529427973458952090184993679792320873497933945365388049381090440850015773225242840568084757677777377257601976761518875008773428734657139878988001491260203339584600709307763747611286566962140952938835514541377924343668425864646991140774572373252376559930316548941169366138964786301302491353975653788635183916753265003526631977211488929490881871479311939235153309069709850859923961167106416762125379497645545853643146797689259734587729579406961587989610702949884204139351982145720643548543583938242717472497859275679640929824295067007559170829365817795718171834295472705376837945530203902902206531829642863624415162869986818296451162601296536562999038613300023761508731990072209403137228017321308442385541430303395135527343237047552232717583012980685455557600142800608371356649255798601788074397065036974981018063236259780020488703874345319201546711883658148239627876453486207391603818414056128958270047375730841884087572069324293668551944998052751486076698443238847115454077129006760245530156708045826292413369681598291391977607375526913647523473378606800125273398028033903703463584769134676440146124348039318816531408483311093781375829780992584546002756584555089783791108039029736214478593901611315302617850344377253001747084186655246086430630974253403843056719377042248088275688023811474790293929601744656874627386179846084395378309205156148412355332330320727204795925510064261302709359260995966985644115069569522728607423585242188950105576722400342728238510704333225481589506095868245520744310765467182401266607316654430879747126628154735107548391455979329116174002315312797732521790885022204456940097293230750357318091743286625039989196513981998130974139186431100357124697247092235738732937652652911945452337598000845971659153960464465920665770570133562530524106828907283051768735152643967859352669671840970668800592064020468047151459179054840716052713826411302658273075630984295746133773582566884745765619611563329684246637206535050675948996746960168401827230307098156643644411973894887930666812511103422555215929146183616607590121074815530452176435563220435706761150254429026352833245611429840938673872406885166557116318465958723428034872522805602549588176951650999333867612113319784607446839098587097363141783512720195768677118248741971377534492077765718303799292738884474178698150539606606879393332313992443527517675965332483926023475343878367896152986634471987385387318247704456900282272719540927276555306281237685303499732809090999192477075130457488990997138257127556286762563988084068035658567912316077665849832477626580410027444094943479579760947634361210429748922193268803685479079731337703192038303631209253337815212181893170634642961461853140757823795435191206061448333866257638844716263185853657831085456367044316857499648184360961672027153057818405201870905595613024239021460303771528870962027226684729693508628017029748835632358130099231590297826528921959620218180734082195571330869709463265803560350243852832738110550881432702507295126178945021749263721459179004752555817131974152711118445504600270107589356527875944133715902283583927081506326946549609987664610260071929909177428122378192602372492286219904793073228025847255322706789354449774701299342103357577583149985465579718507089909070655781120444833728160640051276873845285290729575954149081689593538043318768138833850209843839442193971126260545960162218437317050221433471327205262474163480092666020932730469573578634502131631793533680493179592459506538879141791229922611774304420324625580389371089189769897958522078186534415705612469060465534565344826777048018111558127912897909362070854386830985453928114061640904515423508794781814908132434687891277374122281925778599509500208122180376852023367744316094626188155836969049328714792587155881923018996958708800696417424535885321309848023827656769046373644816366901119177291883074898692033871525740374903558313236121325667690961027309187824587922019134978478101404284123144393481533200162266233012617597182460718082436575653381281352372675993281529248375079199950271609663724240077163249193214807037959818448188577996786958062929110707068529565150988167610826085604576343847928717626086052892304046196568208354389633744351083187241681256236635882106196507676762879240289003373851858717919970207959943456859498175347571944831549716790058408811920006772617075309314504842675982522410702013504337853676916078307840894111961573204761789177254620596968232232806384395296781013010104095274819888137388116814914476976800827444805120033411659337952879514665893649751009797636120800506573652248152019720036343770516570804424518734728529108684902021541779139905528252212966542472228369252206495713593194272923790899574616524870341314454024510170077150862344462321516189024098568299575299324764796692422285278508616578848964557323931231366360164706534252957170567244451318764203795471166930139343797170271406579692899848661290172868873570798218959359449701922116250967135304359595425267188687258998256381974771008366714359617879320524015144939208603144707774725358990084368089504638461741700698651562693571999170017560245993509439118946781413945914735834389258625816721313327900883960001675274491883984762988014226915259536769515513531345819208342066626920859526150949852380135910904788874213086118143458205660762577295612906809538284352046958191729451852868566543971586024030919572486044563781261774297982008971918946915577898771842738276714298538233567712131965192990597006241971995988471224032057007292351954029794049132246493693588185980626495682896608662640543253626726727829096812880016708081862732910572828881402949519913397189341088920511943676889804610028255453698617955698448704077468014359339805097648394150325973026457365939966409802706751906751843833646433534899168987137244996652106101549396346123771555641006054311921907391994062758928741817518804525866273872842531599318293881826222224798101727905614849229008599935128362694187193104638464232692040139895517012250782482953752730360553289469006839858210350035905377929768057297580961649802983631315206772414167647023066054624547064191809513423791113255045476435113955986848058203694481104781256988635685175315907357404133127340257053290903900646846642508940740821791780996891443928403665749181605610975716986172798812025906978001911925823186504313479023057665716936573755590612976923373726236761303830802633048421686546726943852278090004967038043997729048775926384192520327475280508288989444377546420930454765520956334166502622696670957846237431051191401117442606404510929668346380966984009836524897845170614150845267503586997828533785988902131701280866484735726635444297812959938470122675754727134546069577056108474171009822397724451939845916098217417509736021810562809943915514463628511150113370041976028305782666368594530670506317272978479808045241814149839588692143826502635441705802958570847257120056297607454734302883902154621306219842131236151924176496987898006105703931184186010564020861932961005611618044376905726883253184412399991204037147137173977477316274680473698928796544771754386723361602666040666108816070078763844953418461855086097876386521067849206652877889853690414052638982016809122107088294768101818781662890621578696331183280164120011314635401169555254468770069346145239713159174600027321374553565375867133300555198010724862450703061531948433276847115299376473761300694364242927485358973407250842255556977182951062230633069182528058173814008355423922681161208482485794553344892378122715890894180826026573956346005820595345523910936333904825937921271382523901469368548932894230641841439164887601369485885635832043431140494943268164471017684057967527756155173350856055299380045938962883879665094056543325035524427684878814429737688028793072228486623279560599601395649671729619490924746364172812543119790544286208424243056150537703020099665855484099662468132754981617357915003089765613003113704243975144655956269201026460801791344891985552043072652992884529241420271939489079524889488068753776394418107288093494105920471063267023596928412531375199773348625950004278211418727394533817027508916298853937081421629665159695649990330205395630877281894231733678059223002641137979756004909085049311724776441100883768452239041779636104275526299727436056466695245493008532855474562437254954560708885304008261777141388792069055928508219034812507197231809705346358946237416375580981654402047233781188631782720123703567659005961145940644492709584573126941840573980954670876261361066780424183513193237411416397099954353915417498017878658409114383607983840544305983276133172048130013128638435081146551598498813874762064211240440660854191479784894274650459158358666740985925991276292583873579458968829787308989289572550459283109326187170919417312310040181233544292486430943551735465932659681496038617140211423035091332632354015669616662152334032978339251244586600762208456972105312339596955984865890580802124794122554169863834225612148087528722488436745620320457836407541916707719670075240856194069328099662908257691264873217253491618166414398977934690464817521168003685289904108434678584868264959395445315132396525285288469697215884081331015541649296436313823126234391580525606468783711788005973770836930551653173618047787063154504601022653419941942906639937906866415431278777227506700227634906337442214276071296173845223028836261968792080635624018169138214368315100933136043407172977721892075774880746939050350107864935258933916816769765989142821458505045518431127569957390100403222849950724181306197594502330871292542583035746752734202559776432153418845503055539052135177498254184392976017091644401681256305898477569983944046799444055147447874395875881814600783903713710469342712462994483327030927463420374429676161420108291462391731782775165237115301266270589340117589021680329227553002754250319276435289469571043325041124624330996266998830657219566293946794112760533965468911558792905683216600968636944240793580863592960554601914797018663289705744131358685512666875262489687922339493912864619426885416533016428493635996214377045458634636873908842931374218019950623823316601256894768070830735737173726568364582205710361687233543247653273898985469082485615589668192610349389651106933990990876786919658067455619646524979688825397519262027695004111202879916918212889666388733625316113310459687903156547857656331838736795854240498705868917477062043118409906841729323369918556300352911612163635421956399657109801981131469768697026885222122450360558596385467604355751397676188397124902526712506711260017228238399673856631336458932605702022666051209974071413736576929516597132656158179664241014430183753333917685043096038575814927566283984448736554727571927077979730873601771221948662849465495540729389091384741790848852120748059283816651210702702852445879703389089411045476067737407855467367431044147096403143705196353801409431924162742896176580740356226596059673301128845567131023031203243635919933967740837687089638568204911359750744728914356656817868653813343460821069076093894225168892155374730177487523568066796809877704411284646641031523366040347325856926658826472932904301864636360514549301912731796480908343386001821854968476904434531237811360510086081171964222342162690182120466623694521183281974798897913082427158954489622896113778828828305762300166176200972930272694393159506935268930321749819514149816057173169158142292448346439968824540911783810136279072269811707664334346013365345625775265837847939845954620913591823653833480736685338233035626748626880400057175687146156086368896299867952633894011088200670782036341388656154666456906983432332059364511535045271646225770240966068707760223249673279732960883320181064262177683689379601463751078187305668657220049073862159477051594599463675072905425274683344575750010096230578627722767698644193984705742662560825211909843711104661761774993481776839023706202745497654702836463135035104926471011057916686517068570677422041257866230319689259222249800582339216370255642039010759460751696050608674720510012714566460311153914977748762283747856758185212448318159594368863154759015500232676780951334984345214028226247724997606746672440064912718769224500327169903942063288383649628279147886999029904336025103892210148099438211775236272339073133775104865902115609117142841840695056762082796797306580623243260444782158987955746417236041071971773483581409454611536785061510331936904051698301908007050094734182851382872635831876119331833111390526587130171534927696554932206921082745727326501923453510515058109746784834628310969695489180582956748358632497222889282736061624751894596373689081487537463871463688078528755341183744097549951658720188173223828702236607439516930978474835529732599422133166449170571036894062689533807835148900199311355837526988937492460532478856668626445963152191543894898758541209661381238725345416036480513590442114329546013605118302372240590837012884119707597086611638364458089732907667899910259139745993755741107896261192166161058681883886194184593148612042719181722042298693681842000941847756306884266869880158559457247735620895525015560056185033456730371803289834796916729334470634305055487454858306351086127176177185245916767938255341502336331601111053957009834488061871687169354440952058595437811968504732805423182138982624935521631913302055275970623754895002185277322465033779560515860731060085697272175334245072750976369357311048136627034970020409712612992915662029971884696553951105068632487158537683309020928991724945352807722690850172907643663590822366192851942111616717637961083669575370978177426392111594634173541637434546397028661932057286418119520246468513524315861278835280452873697356608277110091537049579980452098749832378643962073620737451000293408089837579825710146612424447204318714887885751358954660333512918410599949700144359656377590658572408709561028413634224214130910796727325082520276752934193069673792696141002167018441039145008904518760857822828187125856354462928215879391226509425708867234836171031197839743778129992281191114436873036055345452055377035994859708012457655695473458023358741919374703963313183476667906174590044806776660075138467592564817110982895348502981379315280265836012686518699576124104800413896417141153087627323820687803361943592493606165322627416913719293444053011972183518976886736291804479177638332895400169749876347053500251214603674362410876988924078272576121754055050834484169242850669193522374545521331809840664639364759996820084906502722325669920823652182929570688114596053522934450581297749486760447351047240713851723915909687459824729719855111294166399165805366188920819568528662135730801379368908171744909863857599661096757161122812988209578097108778697198833905177278532101153038369556146443122791130353384717401434932393531327328830988394793221102556076043200975261362158686946650481721958621507330194159795791958054565115137254411750710190117538777028157822685844538271432252452516937878515049315568455778762564753117359763360475298413451571605792884631148519799739410877709990629344910253619322387033972833149511392436893318608260961341813745326612874231394107051751021556806051372583504805760981137257953283716233415185873942203879743464607392811978513987790513411528122857608959558537919239359450795217391709944706936516754800738041110819304869552164064971122750527524966176890747515492109464717090840317829219192488680448123868017544242427026290298216342634189632250555666577387495192162496370869849958909406027907391299063096855840165108665108815120471341076753555454288348342373381404015467211288119153940349502590602152445893174839828862235290450031779341629163738050267020537174057676223898148521131372644583895146508928630725641951153673276583941419079042353415876880469195842525573951196057255808347788947072345092043844844008113713968731886414465385576419566528904813775206511472465078156428724729479106494998309417703293564969599723651943537595114398182759094428485588018520065607176475875913244222349008388847867181786529978240887042891715548814264301586128346238450295510434852333711495120506918082650225227790776549606040690557781968544068612865803682461909273979455502149517758854583386147679715741393257455304750978268952435527551631426333996172819238730609536851247852600096502525694823023084952978831978522184915031716380924224784235784045329558451576299344968897310724433436338593254020163930488604926734546788138768933252126278146026793447641776568596664643780624991639847079675458088846950438060308438646323959676459599058181201985981859201867318174917388248586592832635866656667541590866046359449712081666389906262697687572353443553831204187899635081790170067176442807638848258338956588442919927924186161677644301099073425670066795106916093223145030432077476890487949112293216007426026281193387715783291191994797663827587348975431165436230575296716388816559720993898580029610047579505592124955737516977842093345880502625196127290832381710881086674542197609328278289929688565142182671846472410100010608473285152424716654699748642566237198800770792985293935609710446424311356372434331365400292374896329022730949792607437112036351628099159213226430473752713148658019422974565995383949094200054114857144986972578565617099697717333691833157817975178301216812987850569567509465507084727840583881529692581711582507115580833197996491242533698786480726434536046247170361415767041905643416175969698246446097016326756322375004157066491893811962711811966867319514597547126339479827471628933786498130401060456951522859386089946642968142885395369863371498795876266517234752472968197945669217002751848910120447566167472321611126365677897244674960202075139289361492079055201638345140948780467425598444128530299160395298295672987022781071827144779567260011602501112749997485193710521991175680240388178067740314005538940835658177264947399717534428691671636427953109843777269293229882532866174430714253663243443220432023017922856578649004885567119828420415302960580684606968567673853541168205241885069009891216266160303247710254276365399204703480850526873513084751529870692680075438269815815358785736069461453407778715706761666711195532529262084498626311769945250001009896349487846671949821536695438690130415802054850739669990476113717245663052369524203784518192532787563788779209718040827866449885728171137764240281879027031971985639450470826904732263486111089497826829665560396274458975802294201568443132257819518989504239446338528358483661485798345312246406432842440586931003302074280226566768652149980373451297528376786379670629707615699703155226714935624586040059953489292192546183579646613305331617709990793359084478384190258229051680495262422703042636723390324513507597255487404282285333028162931041749811799172443113457549270416215973485046974876167349844959466955114719241834272251588017875868156816712247096586101383021523857155920053575202944006625584643667267571102316313501399320322658479679332551631644231114696175640685965352707471132695150484011654585005277108981954109066706081279914417684369680778996365016245377596997986228705401175369450191461956090518074398742337692387328935023452698072418261177179771642817584918212742397838910672460343421375078933157921946590652207284527194460343310347917377343529497037289864903993068726938546298323435593606372263391805856363977521726489275634312270026603364653586132000833173574542832066479475126161425181902185371063941207257115410968391481354317052273923155314273095865347874870954530717766867040438192679058879133374631286775357101961030296756549202029220396766982036459156214784596584691261684113760560336813541086513097002442627395145884916641401962467763973563197075915467373866831547671866577503699484353215657184532734863895669482811121616032318960324454688549984737386111778133390944478997212874064080969904289299746047770891194628426156965110752407058696875186933019972192292800411059794949700711671679279482144478848696565058696526220618469013466595113934695661942459762408691076994477293192026295731764601850942625185513828430629958585399161644254463708307371408817114384942728471209715362348282641272833603739057107439985909509573247227130869390961191238916187715723972352598848504893076372181813181650735394322582897750399029012716164540117119796040126663803821164731340246149984207970577324347233114794688413625475030063488840617304017892436506104737136520402622329710847500692190054424149119085784675007454355781172825377907825006275828994018451808475005702538504501920976074105214270092307385991727842310525681083461835745095838452093275100908169460591316984345800363103944421148145520342417773322855200424149140627747476433421159141619115282972354050630001042178289222785581486854232555368382336554899224135154959530853295963879182645637855700449014428351885441166309049436504940666442751358228800442327685074535074877258171383999179718392609692831608434771263463103157422120462694842605626609099862148638494982609892096777195081293586313774194938960461476704791834899337121600129303458503706322498572561433592710408795167262898365534255183416928939379341229857816035039762874357611079969234063540927654834525594886023588238502206963533516218161147062294201887642002685413036833095834211754831570618907995734882281295693054854189013929575366285221494539054144110335213633263864487106446070485581108166694181929412696438571808314341710675759522109557734194021205383925253261799899512002867488587028061971623379325347361141084190258195226646708585629889577280242794638208759309935327697508576217493375934117941160525588882994995011884727339556474706408434465330709199659671423156110946370860733259231057669075828956409336620788995207921466599334056822268447777356800527871492961020463625012302987175190513534198164584939440926488904852491932268457482271669044136028942215119050136394347334890257691970501199240145238719539353684096661962591615050145688601018094909060762189141175109130531161605408524453098366885760764843283257363626668988382246197091670622204822202731757100984777094905981388040380316123493573392678364441658152706332905555599025781977466473356907048927967619365925545036591877558604551020030292040407461297702940419569537776518739322385134754207050963172473321515916699645309017772257959636115677210544584084751214629110997931927375217806221646303870614910469834970630476755934408568142805485988868389350160968301211438678841652730521854890184444831043501829452342857109046655207508367677019380284434191975949836130277251412899919127418935270462089692085058361133043952130921676280521788293300487308458420336108564373618411826027014309327270232498472890936773982693597357078130068349898358150055952081955959752890525835262713918327550267576687141390313812456395199308932779307909008399746796602246928955069895478089482291755163602527518642294485101586796239085452335517078186295431239037001721295701910779614635144710485386065493960783152813649221143974439010025090996018973670195928590334113475230114585490427177893382517214582021956176096843809850968130219086189856535445956681002548618769140612039771877168424509067832463560621080386248831293668954953904237118862327717355199617567790000621527534586807113150611200666826761317743861905301372707664297418899055217001783589568233284340103252378320136459118411885561322929955027278440631577677169510128867014985067750035160455606385477769794842623495557518853602566000605396644903235979924508815184211248532852840796704733382349719348221226160355268612416085598761954302092445578225807361998876153857868409318592329493825522776269403303987449849487682178771422411285666393482456357838424221295899622483345456483427684523150802405138443889259696200473034441774480068687626289606751134434743333569332937205281506311306563796364868092221969358853644376094449390295269713120158204678959782731235924258427334370350094111383233368087680879225065043431807358845498375408684588840951701126438138459987360238110710713588819146307657330606562175657701346856317389962846379820863227206397952768130453484998886802077252208393690780874767521799713091309312463647409085152717729705261793954841220668187022407923350923588610428288912499454818694680551261796149457491150777604175981572189792071278232733023374868770991854509482752565880156787098718964058424963146579087518962155284161184701504019531462743247858460223629614891539220596173791478602580375455789494912102316525640400651506065412513650125252349911693911566096316073768508896186466009681917833744660392181085706982291891207416763323614817009414752959745091418264206454450809379006311726297886129625560889436505887394291211585400839609519443796315432234900420874261271452916034466980111645293717003728187316991292470269320077618320834285009114450493965654266602198773039871524391047058534477986472378635579278240841713615174131144058025135585194083648380141346955802634632878611723869421002733939751048367424019913573111542264349379819235731774371722603070203487967268267161609404310731591026236894127859076044591047844285604194196725508026135558737229656026837802649868460069637671562338195202876412337488667414309264534098277839123997283094031490827452504831862979070002222984352859899020027073025102280223800747630520786432142269473189561066130629197882121352252420910872048152417297095728697820387308309418105974568688181012416220586986483469543575366843069421902845439630649543100310874268870545984347969749705422907399959228677258871080497357170538574953809679342805475861433524129806579691255749255755287727240874327542015704046249361514286671692001060759117578284740754324884301166139707598683857362233411694929536304519945394325557610766858238416786638128581481819746908200818381465941237012702843878530435785835660867403810858308035824456882846692723077002352530637968046265154354676953910099158595021978009482972481434555025461520370952222180466246389491764689414260816978917956059154971579859034613919745585166251214381352091250486239758330641372926759687539197887592115276883506871943746813023965196767294262163041294254871032645615843825962232153920039954327837633451264640173789379696298384075597568400822941809422508941529389327507328328034338459233834170631256204984552971922980599593628843122513183899518925903130409930084944161830415651250982721123072202448222100455114540731508123088251433418527613331071947964712084915745223892979278309819813801335769930650281757839696181476654757141258907621867321941029406878344786580788855274938165048461481837477109971052933803697606346251171007086785509269944027453676068612198116957039243484736671265870512122617359894082216192319083556379151507232798337947549436170639815714518172509877834676199920320675163179904853469037182054670493234531037845104596606603493384437610106240466840144377743811137280556099841323694132625956159007951429089500604699461847494991441493548063658672931751689693364151833504729357516664280302815661824917594089989567192611662881407041193287207121719206180666883364309851415024013637539538393257062319726114887502023815155668823600634246328508476417285146674220787214157776824557161658585880662599345577205190088838367175730488977687914526864330625446278111608607195544490193610258492046475243005592001404716979003718432777997971356216350706130417278440497069434251390972092849928449627335529397781099130156533183414508969843398371945121968065331939184152845379442021679638393536292863932273357485830557014066242313078250408932168018950512853044907812899908174015972308411474116374673438596960684219382478652298038467019562829135704362795084357093629595559481315350736417295719612428722845212893993539705572163709481881203528093905404711471548170118023151806359482505377015343858839120862768163370063917728342247639528759907376406842744346496675795227877746243612107119368803686649505950215204176009820131091777673397789508887035296651495753492755148642673485663243844135479584729439819458113496611215177887897046289804805513092232915575928829924849575828362102342494843889192287838177420725425993225253882570279109852856863689577655787368186325164544702676416649867602958520792588625691359779471098900799974054083946720630856202785126961995400063209728291460536576928362222359559628440485338779802188973091028577056256434677492206521177179710594577805647127469846108833605373955544872514326872952051183014669979166033325115466891901167995436117891936419182052303607597676915441905985217578605799860136034446059320713061723180426597592277751786782567685314473842053649088486250749756113695024111673874420448923897237495568483002865755753256463903646932976817920025556435431479061224609984402975989907317758771195629359165459096217605483119395926361642043700220338711281336804974864011421528195668625636671585399425620162933589129883952238723060165021488149438443064726429981964359199237760625754748978666109911219703944222276584229771508503621161358087850391464635925888366096360053176211326450251087028819616083076340346432600578885440746836018596914504695885276693377087821280309011749881395931815225948347902517176085137445317546652223036122209682681640643815342414708782905762254668898514784019581347433928695696774270144975051962138424729452768057720061101867836104722704806321028602602729886741541345656057191104914099193959980135688388245998916198849076262287855169064782353243652182325962144140091910465779061784880505768812760596825682253709246931455724997721131740824484939204324702526306616509458812679305462853309454381327950474817760041410716287295810083777643110829827904161748629068629701430548875227466600232184950037179840641279868236600298695846803060830621233905988825195824495898960366112466717170080014161176924046701698096438971567538750151316418617031004497705295896775860107457341455071811362296641905350639075750355392163693862377776625541784381775964517824887429940831408891832700615151526779137790875194745112823651065899209993661998144072365176144464937480384617242496998564500916703706657846603392338398005095026650160352270503476486126268092422695252598934167394820518380574230002689389783240973581299335281208977438383449265119405890779102839630862769708808976632768987842158980128755770565435273823347158369255561398586723504855508348853331990946129473693028775722983376454731134445203657486235659035314927872811416639245800772316714668882440064714742670391629075260366697820591402447975950142976959819530280480321250406671175110802134981196808587700369024611704598573415383325652688612294332616708964512478888648783141445664841013673226599059262438593792969146554078108747250875615193595710445487771330177454302290561456795336638634945964960007580170264881016906101735871628598240966884181427230326158085673397767999323970596749393430968696132018971961521048523191522191409621491789761698811847274365990613648725800512532718408971917522294752630498760731336627184412051849577719900930902995171773228582354505528559723082684410880517063619570127926090555381597445908728004426438160498019435079469324814918458860410683965731245734521353038665525870167343328476448827782187473576472622908805964894134546309519790949750781487419072357250057694434627210058445171134027106059610131702005678780520744530838005480718330586663273080882349042654306179977383933293402550973903439494189138471180420903476806031141375763601904586941534728879305927104798692999312156796811270637655592517163108931956040715436123232929275566123232111425444046592002234177242355356049033109637479679479812487803209358207018640980931175332623329496983705445356981840078853737831505240804002575356421325102391379996084085513247080387979278024158347078138378278093351270360080188613529409348951251834106097473093958665121357332588695124002053105707112252004011592855331093154722332869235073268971635673680244128602562247953785220349797666713316494891778079919228908933967465899756790020161387736695789842684935881943740657906302112773407559186498903188857090623567901629726046500251059896936768155200820125552385038252610144797246789945043424553124799785478040650198842607730186047564359467850334226477096867654330533706887075944318589323911994754177852690583686040460646724743987363852258871407453179091868186629506068878390694975425013126198556316283452706040267687266505996833259897799249436798317350566412483159667691665766763572382495397898415265298125395676825922213752710922118536604873112758620246242108534613710977682387100605771949112949304043458132516580696533155609746996884143399191689538510508435374135754427049541444650278887853999515804491628013653259373574650434988693076732831522009187793938780328357579355800202966748521114305561300774129629383380061013257252505382465585451000519353002305035956124950181719594117892956881372201690570953465376578306768161985772984549596556585259355994033586895716166910192469701025129154171096814838680815408944786895024594622460703046822163841603874101419807739222244059591780585411737411362521266973148378198416657968668075345554772898750860911665617681741996825460740851325753227921869334932417288668250398670949654640204294564609739439638196698024473840446473981725942772220445305296528705451997147125655998739157118619681809556629051486615886529158193705622646900695698413599245767874795127272230595822562715198846482907072522798683839634207186475460355433286013902805364076122055065657295588348568241255388405558430328688259686620159411559911675256564673726045174022639687538918727849523032469596560013731217762260369163317700998171484073396762585469021880354113297067895641265617989776505252364067773982147593285307201710633565314166177813300984490426788197820040304497703769168368127143106814042973975276554214406151797261583979601742124868808558387611757537866184570055135039192317252545111923522501430889868410808342778138655675537504317609272382566394344805712417596944290446984160709883271912704152264175488414058821617537985650693248163347752826975997168979048887327534179492400896768376697627480306842001699526824804737058810748937199706352502674912827771218807514966092915403229871750235214950559881018799721160643051604807596770567567752961006045190094796503683595882656655330269018852969848325212886916201499006118830524204118020661856556501410801583836666221414191251206982958742337211961971193423842312775521477571985635617878979631011757570843314486006082584537230427415286310047024430324969443798249326599779577059030713523536433311119046640328193299047679412891522238594336034725456744879320551565452311665495731788888902866445030218424854494951000426797839584332392695840346237326683874316031636098908542760299538579352202253912854668987432885593315595817205327774070042470294704505567628381953248189261400330959756457329419988566355183788372338369351899669086914485549245849271974656386730083621834950013330640154842620903403766500815251912604820052921581794124827869592055201049685171421978817546582303853658237041072779173700514374816876340001540746070836561558447514742794308142585934709670834036069704516235992824455710500198433729870164317599101926400886333880364046670320702430438189572617811454096854570147023478982073384836162443399555570441140612399496182310640151940688201425697899292916270314516101466956077641815448067556327420286347158425178304581712857225740825780923975911849576087697225433375602013240838661842483710392176788529691079091125082196939853545788044007664350478803313041776266725198177868053156839726308051474321215496285458457566700316370491441056517494175378748297530801127004018325147113115949782227510189954595934633713246847326076414946830280662851530058143223708300756409390098639146047664784757346764453704351905251737948660702062766921176142339133547258897719470440861395917845261634000693268584145572284138502839667623789158599315904978374278666247258591569307327616981461801613339833668482708737272045491055040431394256579936404822200633500179900610346701789347911897380163971603517108674599365903929306122608721365852852342611345666530152449306525802008267018170307109752679910929717789299584612312575293330660674011445574499348307334854858562728134824395717112280405646163948122100117906971978884133433803572088934343902210112374963120537863594096441909149035237611137185765650451066645324621634923235939075001506765854889037917183214330825534980715241077438770318345740918105182241701978653416315075629530901788857755888901246209361472498753827869069353040290525646178647944866304337575185698389977429055073011412708083159539644033020503083961957086233106332541334815581798845531390063019761085685515980940353476797746795766053970729707996822634414908532328323823968651866254963850518275509341578054473477700184937106089504368535230582650649162796387295700747343765716506924124841641252985269981227239555684788289951955342131490623584476129540378826919604544985857348896541771862537587809637936305276609934600907238392005104439477252643677697681403828635889241117923385489192066075805740738665967593398906978823774835969845322813199926733771000925053506635417451458910034980081828544457756422103948824491327935981161686397943984939668428321820442914464769454799552812742848509183417638403171084607024250856356810369662877159060739536859739478515600031829728182279946826359236486733739311387780008303318359782703271425146561648181132365872895439649906949209789514689264199236273313094893406534265695410332004139978598062050210009073888396472878901280858264081452360694163984489598057152739355393579782945437859726638036824389233579248749728387094734523852121181657951661453514106284335731603938668007884852846092157486465220434600628171846815991317008949166717408149365829342167467762424215529154477806832647342408792477643804934117013080336276524795972420598784017478641915122250771180725533074675746750057839331406904764844633311741836509330761379571877955025171531034859266515781351919024672261230831648861643556660896526012577424161461391657383826895946580521405012388712005145764139119450714877945242347788359426349435196702894812719520447971815867164177128646872764888786554209608442114190979149272317991520560554994808867413730479523876427478211833520968296232292803240340926791556791191778608864903574699225778890708707836868642073025543558470012721192804155375460954195643793654092521691989605220462097228430427404640918059586402771297638996596054662350534823564918248185798192072143071157135370372014045235958292430168452938452656191160638413883990740658219533583132462147655394615778811564349545179210025156343737133430244179948832130997194284667897894122842340756369452226044720170868095475986248849709507325058968830664732544457308035948537149032628594947878322460634859159747621333434604511811843516636244345469528092661945351965601374232392423584484428925331002770879075206198486498773211277543190211778277434056151024554998945207252849331222116624316338327248208269840301252024482113717274717720827721765469674186490983332053406659235295181948039772138402090925197714823640487586914881781767844102625997702017419430316309804330408587817493462413513321933995092548361938861239468416041372759500410042405639746499414401152752336170694189802622729206670956634987914393217087283624537471321220316027647141125273995984356093450969982337412129267223633913663494699745172636879217857343395548130835046851381384357831394052564038056224855342339682148184501560613864751503559012010510367428547298904363095960487338523295010268251565616648685790693938584772146284531502038223536836007510895726473397345432905314281224403499296068560080808506182831058229364367592424261051940535214230993056848776665771415859823466331114562519890655556523654230381792162303893968207459166782398058432098807163726212736967489037250033507989605033841287307161763201108577504033629472632400772166850424889676677579785099562168532455842658025956051428584599292313243178776529883049132319168531958599599413667112476593796722339139144540958932748140600093356072717978981343850801259590655634690787463230336501007008067537696767600565997803345605933417155344481802333292246334322461666014989429686474933647042885485655664111220233974353209329948279917807844283524280021796816600829281802742474509179108266493260247268218385240759335647117092440615215797578814167037891088212173451916948041057111509820742522291264863992093545032815638869247251492606879329651840597132684355229912561479238948970847527625980958117716691371529501169385817125485785238509420372312938339259458434212256352816487575633535395397134233951844681669362922326396729900352869995723698240222579067242780637391951387864130969832563378413442910693271351118274137851784533662413799892790047287374866326386537678681931314753387313134456986825410253205987514787504667124359686122538712408035103136763590402274147997998861409088562115068109631843751824189523086968422931055782817813387751591997613654896546596795616289147240249844153508144299739648994479714917538864377478904044462011741521905396551544808108238460552951653009517888735846456509728851605983688833137982023228840559966594964394836141051715094146486160256808662103346014725889723862586072212880398607785121673542554466377960017583422169314096393583266208424846868553568389177425477298600198264898926399992989096174314714814447255799283199654876207955968031273470514373778244484570016763472505005927314080632299026013254106901177527042171563621969036330262722384951357073853682526926962309545159023074517170611436256942302128145904165558024612286978605055847540189367888246710730736824993205268385209706012230032561183186413752284542907225478272117678488096943134267237787722373933740713274948819662487860664676496223146493828238738252713122206774068356399015444015515060988134365785910303663219521179137264854905785614915120292167036563571402530156208333615817231764408712139352964901529956673143323174887408559939348970380532421823721391816125098111259231534946156203817002682285016911443676239982127913981412553677361154177478593530703919542762537349842051560542097061830179777426926094351721713933376236101758853707732917255750498639996116715399631003922338714582220809058151751245307447863940373376376121785433981663889121274515727349929881609824544326420290322566623903548961678134528185869894329266610592226912047906581292750467345399806113576918156018369430017770801705044331707608550515095471059539325827509550668942967290024751837390525381486341899881880376340939483598411442031835680294909112795311141276299994784843288963729791690999157447952320552694865053043274507042537494900959103765189490864356653990772887529986835488136549820612780152770268327381651089717815690027790310886729003119373367304433653965068722204954988979779369587577767041304568962126807374688999092372717237170656644996459505411892680669668118339949015526685633083894586802395596585445009194662765575404428833890152504208218330155632914655077731348274352836237234615318600541167913440597719046179310740565784699421592638833821410683242818622142083796891837987863584703515755731847470236549199622250029015283732162033675787846106018905304768884180125301299770355486293048553616838474366021563598162089177053286935340649284288024507400878771924375106512502567091920966936092470755150402950157667902142989642818726645910434018409436061077211681362470443337449738671769269362349693434009632767373179563979820459934132591534741518134161903158794831915262488571823787219285897606597944622865310406867744819775159728563169102965220288225701089734979042209813819822433131695011885068266786535078061655633473310832218642205937225855742333136462362516610170689116030929253326944123286206570377150726974921405078636978134458100342172513768901771232711493210150667651643198196408655504689959577288204664392056084216298372248927290430869012967046160435076555659742075403059623845732745472990265598097716396350177877975023946274072922706433769280549448982689268764230315186204663907506018076105054633759056617259959537630717339009283011069564458799068053375577301908655056282263165654232511120764720638477818929386640892482314981082130925088079376104693522324352014976916631558390855777670447607028976754375091234855418708142078446209063821333557636626522353773542486514575890728704766138661653586823226094670403121890386322378102767143393909123108811792551595890032362197418939499155400588777135790187474659055653422149088284935241538444435214137723625968428638477402905412107028498434485755614232320685700126858235200747214919253054959834735239594487541200422942436343821909307833370304810697038318770002190657776537186251862577064127555191986334131386873599541110117010192822389384426043716892418892162567748427170818893357163549885773232243687707525958428909962286273746024315200863402555847438362084904097441099858108169090192112830558340769673141341697256071347358554985010333390448004483419059743562084450078226889323984082401234046080389448302902336256257330443311044795327415711186388914173901508202933324111539239290328371259157326238391979758898430103617481356918731916635868923790452101709024037465622246496573588926155886975387481364743176967817863596994159986464900225767429497621082477530786284378252671203908357656552934161964402298764728725889283198773920364847850995500183940462163256313832373384395854465184364421328387058789451568501432234904809907923531770749195308283740849328168359490640454577086901868051637114873366683849123734020371679594673618649568904580092924447618583578232579725835206082325287800930042363332426982313124184728992332129993816077347259333023560318988593632947313244437603109774012494777746598160061366124614033450506900221886143131936623576801441749516600592072194397924296761776784528174762526406032475015213509211272670240383751958467590908751010327895356904785061420142502055377595425686321313728256770294106990183894561561062342440149145240260761720601346600159411393277054530654849601543635286175579961093968360262045523271588821596712844227131055968993976521053619150164662230845932616031643374518564049141607538431392725616126582787386142388600831089624901537468194282216213194000926465610819676476459520084713761318249744725447924551851469517024648227990152487459824163281712055920000223749524164385717006684785889187082189288865615186246392398562907011561799114446820423792080428280620266286947657822209745916621980621654420383735572811118523577428810584253885917831875454149200053497310157929953277667663552424417422956212628248227760195982301622375032378642069238420056654892405505753773536345083553236891555585451877208899632940019958357926698297169078178868436073478329307237716166703416262559431134640085813355662287354088963340566196553614042090308041845384279214770809077702379466480879784219028314846630989959656008553736906166673148974765474010836950921164942393963287239591930879863159400118895295222431583575441952113581997809727787178598029907309596274981285894205478396601296955432616591621347405048641879721583336415272940812133728086386632136057591040748234927985024127646313324961837233822034630021023172022062053526321306636382385214416643668792614152657424320451517827026001127788846819520532567571016890728593142380162223974752203386751280009788272538504530103317955300385389737031184748972509656514534734449107144871410824572014405603583493117268375810399826635830069700787612289665520801233141506497717658808076122833826165847488492902667534404035507404336064271857631343747255679449139236684100822486497837215121395592485797564233971321168849947471261959430216711950255633083457446506013414824960308146400928502454034789764268384083564340904672262876416099556820443883612699907578303790920098579595391929625667884843490535685517542146660288615607476080871363653743423548818206608309517577898998314621639796666790708372684794752785518196931150053469182579776984934122566133454845721249625879315311126227708221735045385781756635521537520580786885919338413907215464261966297832835948609645869142698710115351698457279463986057922075560106734457012227631175389326018842545267748508829115280155055694765503780950549798975095227279661339578490808657356431231567533784869604328404406653752559976457539126671370010738520244449261622041006747783293601129357233648548416377977241432971728244273753974869471716639826926829014973415650076846735129499131876253222315342899311639421054139658985504208057975275997534188778381464540145050936053253196720182707980041812942686587263916943444520591217281862937006239951776732881033142581384443443216993810668959206478020095680652108424377120338106243564808675957204580089189521188151841716318207387602693310355477706409278063442947426730302791844405977475560514503656164917989336051864414311695636140926045533931760771020203357728824009825263459632409136500740471499668018095234075592443143082469348159990401932945332705280935554511261161569911446734261461351700158441994666079784244946447762897733754073749051332932433831452498129300120133747126575064780092280955213133264571852588520162616183899102069331709804148231178691995566768197114533917873685067616833441917386723850945106326883084871535824166451255734714983142804504292163454548557822292206740577891360428358035912635202568799026212227928830070317919167661568124432927282354676155477025317770867827183073214811969368035825595420978284926574474810506388838490357379055165934956950547853696842105641519879948780381209696444747637179633340943344756410567455679335031128813749973315280463117190565515073203075911805077796417049696175424989586031431568899579985317439290523820557147479392385184618531632836990329802770548859676903357101295735411636083799143267050670920879035208348439352202379396134892171400561983545148440805480966207643174163332175038789260492538707978291531991925356484538756968066125992414481976350453103745878206999515148218264479180460599968636443894236322518782184740948044239552523489836699642393296282230899083701867871668736840261178476334912502179169710418474963844347685309976827945707520286720591990934782043999313476892138896479249916802970303376993955323096721666840394588830755209066789560735665900078847000589859698006568550725650192181369546221573090125253041285989439234917459766513578593575918465624338951464713547757389344610488370602343017083121233816307488464177555647714985547038646086430409131838054788386909362564536987019335946279634470647639951300513037645556153028662270726775204004411769013842441421403880228407667635933808379350087953055797376953223026855369379057619321990832221409159669372157602311189445297766854798692200053050838754620306345072410640113300041752629408433360333738694214598173820708192962741977951948679662413655877531965440667495173023397738106552070403446642852363830847784287391933425884866938774679555323669172494189971450258434704911597159780198668659291052745782806406133865556841972372018092533410261703501257207221377627894599099111695759097022000646053302171033938838598221870943204820409669034833278026460305433720117269238957224142032744300163312823676056813664817627746894674720768883768861454941485077132347693754695674673469727879035609020445175090066342021527587384335091986875322410217979360974590534429845587315477973905438021738492943794139467354658540741372259753483777290318676967421703316576798325896482660813514630759426535317792569226549411762106387505492493118977337497816323444392153946879584718699033373707059610105894109332645394478361295032547317965489662380862952015559655696646182162053712082137539399262100991967412134646653467703474209799210914901396311588755911794934024569425795881772938097793961135560050891296733039881134840818228462021775351878043203993106431273817412912187609801271221589151313511582273834119866105199299340151840133515607299014862071319283343347361702387719913879183518545255390860312794555378426809022792482434831860623834447786756507931192047167705128266060467125425683683110023125533283334522262386075297605184115558727526014428683417773556966920141500379268706216366448745540143201754386173158826413934431076155530017540644439942606076635545426487575757786666578648414345287185416304007187360388033176876732978223087701064123320482996503586772045451682634024391735987254114581369756501760479365048471833310126956242258919111544405536946035964911637812940163255634608538752671578385804221726980923813202320078013089686480592469115186439934112802161576873374051539392983272793577171791824042663703219284133266402299153922099240929196242453805951276846560380534008984295073067473955482309377659989294643233586627898501364508409649722562921050169062779782393731253597251715335353232282898449475104113685648110027960043286706687263227927969008628726711759297325966164840449507161540766294028275124873712928451850682347832603130639141740148329557111653490877111528975937557287470862442615570925054403980128747381653968668440525874922944030369362343889780692360797538359772584864020228089118670530327428488934826511871356348513816810522639233634122111241277490200660314386469639349031965444755946573670345413482264883834332858315141616735745871942270519013228707991634468989190687105679381861653865073387842808072433586906515456666021563962648257356692139243993881918858241005054203492578840795594462475514728554225579717604193654752179680199278861481108034504493631576316086529005904007071449057570604307460588510681874602368172450071910853612351994492398488112635827029324792589874410296808621422366937038917241116730308273293796895975024867006432931165052859720276730975798774348985892410744321439582998186558997255646745576296845270275545926500218051110589253476273321475997982330679566512527388640706219398064278747791116955228368658977655997236287951155408638771271393622280954843715531495773056926602028467143175681874518988978385096369193750880641089385789511855755477208000642189222531075949586489103890527543386373303823601065565362086407784879774651417333668884562312208735509119756382566949705922770497150738503301143184113319456380409852196632822541841164171042703693794302051959702392991530473654160915223233556290431958026564215619507022933601917700028727577173691306020438012262193406402395298963262833941849640079684394223436154457095175764693737385613711351634650263254251906518980585352596008967221524954062639812300309780328612197340482854116473724574910933097681968423838927873279622053106464359370762403140578830443913743132025624168713711853118248306075578102924696061080773781188811500835521211631472631760375241286996493111314242969169984532063047033933261665252220127880333386903032636189534628975281427132420563043665753946496473219360665538744223431578236708497102911592613125713106839922212147093183361770753477214174922212821086699387606555505142688708318563936951168944853734534071810233430606024426433207103356713262938441458408233861279411997874174566693648844946606975156966117210212093516269844148758457487932516011134792588268336166317470770357727205269788128656010989070609794788466708859429960462596528288677409943849805726594774163544036774479702142876403700676381790134394974467991918607054413288756679975619599762934562024174960964465911432078101016334211300937124115811864514948050486054203972661036836553358028843222250207246837115229994207681154670429840880001154949821832968827726058490668367353718978682745443513528034064513775032719712395031916047875020166575156187225782956216602373276468960774737421352933888476326714112763500718671498268445743865368046690496633672247590106553753234263511264465984166395016285991705234398732594291255790228256499513336155192632980897005860494831318914085906102289637564821053552225130253736303514960178859974894737190816595354777012553305571644356719520520196173337303924725337261329697275861789907551658247261469276903946218197708173547298396170452108549573867180405967919653673031569360234100231547349616054545280635942024006839759565929516455765383088506302532264065009585671894467799212373457585416028331617775984581596824576072084881196749441541423827758309780728429318221884574253575042142400828214583191371879388566689911899064339791850677800317454367009008659119058665066288890383142399320943104750444423889379601684642144711650456114063843022933709101461744044685393808237805409938401000719319368338454606783706310740922233985150135229555008679153563890144527749339537396115591985882527509791486528196740889811961410964892941625296423711717491797852438865311622273656220858064395912494466834829539416787741525417107943960806662196612449277394303900627787000304656341987996767573855667396261959852030497384740366614761586988468717639925095064875314873776209200137300226347797460098394822159507305279821257381959691437164543935924941497127347635565503358564542771564372811194332658753090438128287347197738368859717696173801444898281506721103539792089917606254221168944009275030237810926131782912135154823506994764396050009689504207101478147508079446832077493075527712736394171305769645482156886189365953296930008884266858787011683403605991993204373870032597970771269296530551738836053340580567901504801591715481797339698198130020229755660507273636320027598307025605618213677111080623240405918326507558085514669482262326215716812868004550122474613505497713446276001669958763872904073562135669959167422883340949114203620828574766218529512219256445192806595030291612200788739014571739742261137949161194831336942669986387823555687470832273759873109691126637141049718830156224252276650337528172160908057426369429432641995917143741353608736149972844611433371549620033732779868940387517966825913048926145137613437174564791394764750131951728873021419063554987649477875612730105396846812998369837558736466579657877042148806721134551601050329886160813372832122350601113463693272777575059806594681146733994313684463562252701247429140451231767909087226059311553419504795765589356038998570921603450737278692749140622808886485769352422863130168457068712486246769926550625094911041623367542055266964501557932490280805846992311877852054620550554952305709840816765031150606788938547666361335238427286163316991597807742241210836505590755319264209745784475711711739721958203569215058188246147380725969092121247019152225700349440313589152202753808484645480955919252337101173139341790940657338668334034064796599425640222227812635986674031937842578349410633587151383208564835831887288125397476965292256271342486824404550067696183358580621261638604858250025543385492402322324525560918927258578681607477238449615165212272742115114415718094767088694339109871462292608298329327990957195089554378799419225910754179569757917726125223569028501257572202945768394007371649033006008154913929733343459932064778974537081858421462526279057907468800882284586815847162971616744071399263227582535038076473789855711430837741858482480657792698333442747302054896653416072141477514239156705164964269932116189705361942038668611620845574410802594942774709172408983856717751962264270089991975310858022344354032991116819698140156303568177446985286202646289725940545229469442935088960510902174233801899021716339113812372863580283383918651272061211328112406741218199753039169235077292772262619553401474892750058940005805521916714311331803466525045302951455733393235584429702923853654417131631934896707200658691244841445654355135928849866914208316118673308955317467569114886530907456341635151347096069489094454265876501027947129700127890179633257618030009763764640525746769401480320107248555890534191520680813003766214433653567162200228831640875715952292619908911400076750038046822723974366077820550354682751899946280509704364481683538945806914940112250722310092407712414189351776697961907648288649531028655539576774892161039468634361340358381634997638641624954549941093407639294237476842097782673535577758933112570327974219640940550675924079514702466048158117368554021299120918122459167280450776610680771782754538356959450844242690759669757429619266949363125608745985946445046632913021362874411726518745877304833185105937692357712904935296303299493262283462818869317028604047459697235424785269146479311308898019679567343338835242087911642326866694806355948081703766960899912617199109738689198471066678565208089116098599918341091633440017861509239171044927582574432045660462324063250626532815175634350260165524675826545683845315757235654016142348376951889241794441784574311763108277394192900247954734784306687147974510135292809783671853830898788473107426136454033051812904871222441702136962520222776207162338227549177190778701348532509748730030970872615975087406283850876844222351415633503337283932898186900779163868524354818359675377574431796514151718727908875373786078763722354289319705947586509658976845333572994839980658506714262937053932677436233851509703744431363480745196625793541070544987599194198294596839604400255327445031716061440089518404479740683112019435950063283547908425339736641104386140776103423046011629615563741252113200586561626049244816834651150811977470892313913378378064219632752976539876062579492979433902791038490850152833792301165957050924860795626335680358274050462755200344876141620203628920545167776887807720399821595894397209962625788317635324976694363358769301146442338209777813996153796997067345489499986749668000557020141294060787284413501928761564236615223299862378672405327890596137690719545819589431867600672354324447580423980740869803146525740030110678730640685312588011343242500534530938084612108969055536163484869532521384993754515330979536435863561056188175073178720280084803177176022546220793635447718689744476464134432601423101724339082419515857640979071463420188654561369648993797421922666549377178745618468130418139905280522869767470497737777428008032516734660709708227240683771152002809784607898228132630732008312100071189458592626383243707274129011078008238731568088455524177557281262054317080102508210326410713043881915033748156101730895091181803986102121597737014040914691693383561654941639326545203453885723669468864211954166262285664839110862181282312535275465819306724057094231113815021044347218355508973387078120164885311456814733787619094447311666415350847492404347223734499302899071421308246720446243491560493913468747291904430408481346738350438938238150855055736816530407907686188492300951210404475712633978262458974923546880567266309779758636616204399113547557383155197328348916449978526187140311445966245417403198426187688996806861269796177991672233110240358490767531480371251658755391462531302267566079893060704986535654695991090181711349279956817643143514458607226441739826282961661464011272687637279383033326047477898530268241520391056441876102079962682524803445559432867820872342489595002105243309944020404799303083639444708239161549626814543182756614483018286174177970415952871915929899038243494248477352578215801580454384595390346512588585525571385078890410320649266797866425164397811077250754873862899150934705141413104766010489750536476632317950828282076769454542564515701549607787088268710005536788426212696928345551566076498832055222310346715489099545209534288797092866307556650347961744095608137889521507009484195991555953231955622809785129768527229248873908021943111636941614638735005913964534379582230990677045404405543990666177466779904341256840266924413662593773754857956204907160526470120500672822407267815145709971412996208186143602458184787051254218498172607500221072870948673977213879535877583832738013079880813236198238968843597669962456034718865361928975636830010447890454888366203907270142780471728074581411613861167092860860204910165990097404047590996006717213201567192657340121128253637324662283197243906911377151150803096062831497198359186029038324320381807945614223475605173648773346299229780081529260034149296500597974468964234490740320261153786388354780974124923745152793368472039300084333371382314467825195962323526631387750357730269923018139544615649712706727928282329324023704922259297725625958450734967049468883055413127595908871745735408576899811004584389327278498008130231960247120891030935892759059946082086471537218423400900041432542099150498460239313114782493527388469686918840044387050242803575240082555897459345790888660033321298668177026654762142548362517333859966630101941253369890433534725485093219350801862544817836425791852163267183642990727067188369256902991896677041718905376752332329968465554302276931527002832057162273711763775915482989301964440712492576865924757314865824767963451835813230433561413432871088459200008123279136788389088035748602673704749252410191127644569487045608314846890212155214861291494461535874039800032616816333140235727881289408345945483268109478435169579793840247345247440897555396615531242687739650811814893632340844120521264075892659923167902781914500146184207714008589105676580478697387043184628739734814931483922218311136854199805624603908503234057444200710518076380329061653607343578146506825877600230056546156454204354487862793763981452543367810603228158237780157374894745210740791839202260553043888174779499796108959766225555464224718786003980970086082925839781444875971869244442771610726233884658377913525792348838351430958563222277535599056216874172265432134221413691330133971462842372328233673388499977033606572640179617390721548859278191038233430795087452977104548734587928199107183984268280345055985138146239021917202816868476097592344201967484780890683628513988147942796050352064039526406968337424437949968887028379036892900947543523849949166516885323969881540491816791148802438715745645821658798850438256716605870054162127758537347784531536778222276080650918166728556040548379275602223157247188783462413622159920033678740231870981160219140869708488402788977796359133937460210438387860051781574379055370490202449942285252690162909692087370348029004423342634668235018271250167248011090066262331666322227278248340582400524021495612387198066477585904607862492558445131869100933375839301084783039486869940970985469262127456767013042544089841604836032249657285633384484291970133135807463344057844307796964466246157705655371116006367836939737007878684424633900881341276005764026638977319927679265975918669658091998520496530296824682354503846772017012959572361104656615366182752234252274538961430481172981873876705047493319463376624801193655992465056276604143234166109442896221764679071531802125606072352780052030603588315928120881531642310637243061782186522505135370374092452027522440516509034267830652219186687343272337245849656070961997351770547600937952212739983199334327869755272863553644951984766974067830196340773293393429763568078713965828392047705668734909552809859072615407282071682492871677642075038516257763228520815968739019980849886835306092574511663363427649782644270381616274748153806094760427422585707368569002397054850999855381000126847098153777800440355437040343647645094842446390889162209411411760463003548760700389348786688090360948035034990703284631282346744079586475498314348020465436723521879285934726815816132425491335597082008915295755419657142236952660970488418932249143531045079553951660601051848808363789764789115854769267618894369531982989289787068390499990412712572895058627139779951196491695361388933881455124193486948563914748213771905395436552217186829813206270166729943661767862553358938843140932490104754701219025633615545867388187600955188865381684271890820507000680483224836321803657121946434685426967674839900011978303307491077880958073685531955148033435656204558213992646768115688040504101572763366291170832781686785905815474708655174964244309026170321203044149710613091124551110503474574668169041357628448982926378797947001292627552332840410236227584336373040448479686140823351408051679857422620709410375167099455995306111813992133377937676250312680116423290468786560826101972340856705943215646379701335109554268088290648611024413761800289486610973429838057271590815158255285149280646381746806413694294418371384558961027883332300411839512115356512482697695569947817205071611400762477175688886117680722389193021040770507542046268347481735473025616710186634784968055439581176481293967554759349703412968035848280541762460813503539491841440735308069515633194283067847965884510978840587019391391091150447987458345054230390447113795691101995755091744180412335635396204486695393747123649324370198791017332785638878776938985757059639891742052403573767808008080851499189324187057187170734447195845786757844270757165387193802822576571959844658666684883614901242935884930372653371401097716410288828712774973363904327418053167051115766739407137429967682343765697519771548158743301538699001810751315638141897348777854817499096218290232876533774067367465529600164916650715204697932782183745972733650671193307847457389956983277772699573580807314516747979446826576319511886214713697317381289224796975869868971418996075077599388743179685094892265337385276077603782589535664368819102146835067883803533391448887965470470171830964871418107948233966351198600113116519124083134080633851469318896276205376587801138673570531824706277720325389657402609135530606654491076803142491976162317833823413091282729843603697740699838909776162734102445758137720946906509747176621473693043460969982288950017559357605366825338244800689254067154848366171933610592525351125599012847792636963578724621780118862378993170660079252809697091777981747725998011800248835530739543460349360282884928183415208896170830201625884079267459978146209053218410971570976644227394429677544835089767347641369382716572536987763951841393026302489806350144600797167523593075566748999266191319476194783242403983116003979554504339863654362518523340836505225081381827306385346009063225010262268369516788725672207416432999400614053935890736644638130804968410457425632670670897065966063635016700490779046360707822647368199488364481403697790292548749854683795201114102388214255722623015620108159189035859067021950423907241127487275722411036274145500725815718100390777232295419783161339814886917714241735125430856844946622571647763963378030882939716009638675796700775631921278043744710418061188725164606002995472669265632746813200118164103131188892504893594983418002367021601019645004828191976520314486494209362760012971546477947748705721055741021094062354531564479744390787033920639712951618004233666304676620450100962330041475119212533165240664267370620072657811785696810618702080472555982503636630417348558688672606108540423219977063389456567171677394975447195130326506454267935429149095702444477180294120145484341781559251786701181527119298917047729325550975247373529218301125861949559134011455945536562221393709856213890360341674715675399119581358286444567880256507698079066721145688041647429030283643577048537401342955881974291552541093346411479096165947903716750754033612932686629611736715768339709399983580071841209660813020052958633023325034594408806822557784002552399288698905435663523624389651056434654214617472229055071825214887604035398221312436095142101206201043912832256100043140168670473094454468670019170156454591190320757736870770611347138275151603418339995401252819331644719143090690337157728387339131834352238487829056605532548481005160252770320844729375044432785033033635272952612945369246250372413002201905592351206087942782340331207179135579881490915552909027043070024288998631531118810720512246830831271450852415106343925543584371528179961000675581800641670794909038202808013910917148353695690100770279475776789399042886067595610549559114898774024540969962279835740011369501412074826680022142112934402638940734360695173793332491745081893795741325932847300820881841852621159300308493110993988938410990810034309852409184821800149684234307693555631260823270972101961884024924391521698355828359583522142696364984462477949638316972611071211496227372485417494617582552546493129483081313678296477542552026406860631092456867796918858188815993562777069008886536530760749337421899125049804418764009114077140641718103279000883701306297343855300798256197042379423628874013388543503764767285296362702112950394289828849832237872048839653624736225026034574185987550937904705639686521852559433628581584715103986902647707042558595368079991178833946549684466189686582716584633521560983169587335212364797289330584182149412514149255352337505422934630810492218793273041005489831849505959427898045239749916186666510375709349061895918108583284775544660638634784837912952182029384505633192397780379878831254168994794005250946308709697703970799653180333436083248479645445859491874621608062603787372738293250474353032989603416244122627055310508599231288277472563899473989572474228570647124201430331035924964747815353718901628037108245604913311005491806074430792043281614262826300206767144346868060827580528991716245403622463797347806090398659799725632680097616236679570222563376792251365940425168475741141210319396654278785347716086282666600648955736551099806090429134072971209539650497440740766697951905912499650699072103758769669983678769189777020911905806539266417565652038467628285122881964513605387572913910527321237395609092411135296933041145474730742372957393639145866904764003236087803857804392913781666947895615981185217249411717292899881916735690263034079689977591600205852475100531239850628153580888856265302461305782321795960207739985105510923194873801856683771654748633805700922438467750761714446026392649285975687590014446922899910025381466038198013923423461560412422205804781791084510658347931997170458637315589795972586847470006756075276574772284723191694707430074021318599467768344846053909773147830099030389012433005507094347740023446321461147090824833367276979439888515109706427654404021101253884916435876789881960962367147340835525121794250831507871200835981796506402834312008411657304234335711501280856044650233524610927303428873183690627064175562141717097996185290114693971012243494905259071408030171764604005894827400079976568436808726218690904278401675030513740336298474858577867754872133684984648713905825939848967997546419740109591728173395115542246843405033432794114666788038812202738587077313332976262992653706751657947773840823368150798932800469916457701176764007686476111011800182117549156680004240699794406801262631323896791145933864060394450923350040668207036873218323483670831952953477130828081872267734406491446173570269220110779315975587001672645413320562801113074544888234869464295655329625736411675086960315865191743317379347015315642234596343577387759414742621342011229786944654557623833745297424447299198841488057586567013597004478692080281679891857966091476151175360068940274557549277650038297488541399379839017427023325307535380104000384126972454297425856683727653378644883991817106713568865998674433303443313841768819301603361957679913546815749787536414039712382166177318219315862812134468352912785428476731996748278065190793188343625024275293555411979485057092082324123907652602404367875196838209499914488340517551823926700799814653906337755170107268861340641894881427317073850955969870167121661108264578466884712570396037378433064175861592156349315067870442271677011374942127256059067787224630496751080403019475121266061405218451861648797985959933056979749502695741436531026766678453282308210118618301266068825413220133211758615850643804560152322846977112645161624142241421894942673391829553092801137857964853711732348823355564442197054733503880299366332985558467760177801896064777388141895811415048462071399688238709836094976335363317253855914158496458632238891658430213655427373547116105666674222495461786294634539266879016339372831520135246105107165090734680656786547024751025667574626037725360664715564903074227609170080283832835460521418014233084503790439177163043172313359195678321964903666228469718542390535907223175506321098599154675142800301225436533540405697501245844525768498655064839509366728610871819851899672227568695650186238243514206123212665679347988258063265537975469861649443256651564836473799207255926871373207512031960836765317620596746253897152320871092139476251095053653081547140110515198305945803769863813730047815474918079825413294582279485809802261471087942626960734025498890735374119172016614811081351535752457184264333715319511438938452241964627526098536110175170063819157216956343280735805655057190310699439810952089556388796941104220892780580501504250855380723481982828460760004415717536700229302667898454478080228742344907111692263399018085778725606027626072922850747561866609623371755220816509654902944062316362423294962243945348171692296707238955049194016471542045379294962544193516661105156195155377374858103047686392848880325171598448835353925155033152600844081571685698581803571766279496828979626360619788672788901561533676535238255817791815533932080748800366745545164716455263535272144321510978178489118883109454147071237828028354854460507097703499598648958757897489803549210917013348945260842851324629769797122036394614569267387761526265174164375443720849500119087839196297213972486609464735705545405488826207622441386759571014838047677284553384651381219494205831951422412734768389257228268128405938968254044900450851432006108508254448705713720541132385928662756245122785944587766789083723102270951776348188754767858153156220205348565120231302080540255150434399413993515432916068270351158309081432327990927275412599259995344550629927325038074521905539747557497503309738635876793479597243418663333964493719973432240881381389299119019139911792293112336200587598867122146506197262770909031575451757660354039984569485628626949479788398871229813304211509506745388134341415979751479803559879351854336141820273197043325668269198962263173290954405857666475008708692285774619987444958793487380609686840185756020269630736310578578701626923261684187945174182415940196075330824442762157786543502891636855853208287466085425915720767787166767326333039406211490023597645465521479116628253990502009615434302178921199607752733284606993749694017020598753046612035105942058021395229990429907024330165001536598669937762024886488666075554942594705322931755499587097834620832513730868806164094855544661276126115947823567181472606198398799910613496619495132355030529434306267815994410170341529976474994283767096611465242922721500861794949185151874044192919363072766319281856072645625693519117064674241061889329403304899829316468872462005690628166473493888065483268903126497199298718363669702444773988450529986715675023039839607024397434887901784649361551831805822923961949554052390813566949836884491323079859467416861466186167059535356003316306556374124854809650663063387678642709323329317157054715198740658597634231877005068582397210868484946714224832708822717400572996222283825616782615234519976801534970820918344112632196703951279743106918400722524124599126935778134447408213678449043628661094035409582817085225503634448282889623865025848298130386649768444476684907634549791928915475898156975003048017986835226994272880087813218268614109402533471564762691935736296282523432293210426556581908508273875922039178722521139199411544711747406052031874714977271047260609570534604997369732854998295869800126921025642053482121975855989713105761826815659248776421429008070129200042997847300915517586148792854606863087729201789916033194840642497473690101760598250896811974175009937679399399714270546333204915033404282576677981945703369338089265531450973213911987241600067045966738387354897071114837694069584999487195970270746393299767661358796742217399313871758717053602021759642938868342706787620219041813049832139917070846533795468027102898432979129415051347535372994784650781636893902560119385149787262979235011014632017685025938225001385652408001327446602102522343404824143824270553280450127090283090665807029697296634850301387233899855989994038755658478767345925286889139511033110175965266823728010960390240676687306208204127256626440499596326496715367106009788801998570746598629942569406954355979065001928733890957246404111615325269754865774041661796704493550021974478318177691282852242758795983977453919684538932496191389444198227279374563432736254656803997324278957395339880484390773447880792247540614709815197781481586980406078962279543669435731255614103198883138167411429460478500542663854691281488497691957765820723995143844132046702365582721271286751991985031543598272954398259897710170713762190236009371785073379446306094180631884667187022008041020243008578662000990800423789336314524411400154968151286799240528863576839402542423206930212842112526227224729584879221298044902232575851393382370834526899586627744218438671684307115311268750165849915788606333090775350616592617567210028744779653718621574933545432891916988287608040764136399258887336966948148315929986826899597705188997723433410848937978569575510426363404847106296513738930383121503119087945034197668152471692936543053028241228497562249874371394288726558217069845663969972873546013702484209802798105928859224456059724812178657667744481553982027503652011767546199717252011533045668089278024799230181322026120334790949091768640651354064158334900207377115460970212360074393399997509687739677537759993186630726034699515698358145565021787228786187779676821528091231893159558331296368343383099977457263711656024265716161366585819136002970356258711915223884636824132382513750183645392063269303447432472004513450156808255367999576097513590608442170660592544354125650691467766742738592898995945998059261785962757951497052850275606730092591952481351592273780901081279781818883650980780168998061702315788843457815360764180829004843547995262983808866319935854063655316842108258761141327547440730490390980809159113742658671457366786856874338951596323019974616985573863307131253928215652150988143508423623142273853320452316485285258014645328757120328652916095111777570533224598692534679693621258571835999696352047202862179280983344561692525697084564448951657724166658214215247558376303433855892664146392328514467936271173934297368450854792118639029494018264158130056512678915377405765804792353302328438575327056378308693808888861073226306215252646785933911159546860821507629806589481148590396598630388708566013795718804853367930374755988961431392003481663956404964190146190867771893654182163321361689231675726153646634897698632261305211929861777373954186244051193015382207085281478588023217486092852269244611437488704606720342163039490178634533892387139128249378968772150576910252931253847575219352903232779261281298139411033318620149343666202433963175609637102246432130825236650989913404695882379795330333179900674195829773404852137694386852414650611380032250738710326020447086954784561545032930042017503184519302528302002032827522999422279147640595864624891923764206081544447833932772145527719803202699334039337146726257383935203525321240623059227769074107513844465797573564114271008197162610691562124028070324123349040465009261102164166057036698738753341064720997681739590226756378939613561564951616794196046069789178650964727994184855615843280140267061230209247682892539826181766336485655597282321153600685063017541694579252909090105107397648845322568409356710791681081099631079275709646742268509418410996139981170923743760244873829829635117764330995699422794656754003002245113186332100508053630054362941918356331045977897766550990336412481980912590276790207565268595712305298459279342180336160060452731317280299140641711552182412953963189568779047131974991422379163031201675234335606148249209753594784616678414492348872931986535092711184257021023896400012111679405182159921737159591219457929605266664114975866219564956799023647623709411848652010407361795872392918613750761293634214176017190661163930709968057536008578047201188977088412712926642756596882065965091738354919187160916992814326674850542479575326243844154530008851841280751522356128154548199500560803532615234602273065210879826130321174823316825568424811101673172882872908219745193379639150091847944976467780057183886084212550466113767466611718816691476272652476303466589771471530484450160750977513602363203145327062445171867147257704688750212585663029374557111544666825357858750541938054132967051671840610882590366439515775918814907581405199529359566294448843338594124502019017057842241302855065910477684914370006074239881114770857517673060557338161230040256745461916106051307478839114395711003205686364960853271866746658564765084790286753165697623332415891972236181211056720452384880575219764886108003090219288459291547769610651582194579562073362791078353701260729529179190447022106730082068415863893947198095628121632006925580678451572139520690183054816429636828270458760625995268805787434421610403324601664749201815717426440037031289530738515045015375669884361599143536033756295749037909736417005236863103957698412804720506540831905684671096103071846000288083825165719562623865968672222769783918025247732638622483257238448587596559789181043122412522167059675880158788471959988680862662008259802193157479134283449872507373400489962831350775496255758615874063079838649280458175440706390396374741920122493033515255228146136910990762649442263191955003623969997176837950333663829326226057534502184948936171628741248632250040860968705776380607018191715534954783000442739398277897847278907660751280147756549539495708468107484682867133131403568344936227256090334351348818179002781357654212960291220361227943212238830718821620227253591700743812920472582945201060720081530066797354782811158112410138330141057825853236010857566258158007910114131493505136049178251178900196676162737173584703163229013604570564949118084848559293624144181828392907808949879782426529959063217767753423651007814396558814438234250218327353577019544410774876645389317485647159964057461248413275619083288933862510007264144539274812479320881060768877160667140242637801285222191614573070769283773724099106868183907350624363282450999040365681757467337611544278503669266989186916577410191591985564506684783525284565290498809205054097560663992084336720820860506269552055157471204204537176021959765234600546547368276144111027162209694111779831226890882825651467290133281261361677214220115823753204725041998056858146502624866792800066086450452026450796184517266049803287458747458386891633959422890864338677557358561080161733641540579600603672585681758496894138470069718935625721357858823503856419042639935862475454526726558145764869562722274536938007919070694323281967438405418606739361994769134597207558037004092645471231825762539714482496160859842872150897624620907056823375795415956806572372683913347468472763674333012392862652618095984835865930933564981896127088340750704808033086007026487712465055545551089521495746354250340103737005982623275269551951670654429724655718331270033179019521701541161984251456495991129870419083470457166008135451795538912154924039740438058390478880018633751398812220816739880658919374113673756000943697501675252161584011008514616478121247528040273063307014308920831816850909721204798160644528190741446927402985586334655852140851971070001580639842516849150149688961687895039620415512522813618219261294589287591390040016907064431957342552664621152390039525542966330095922027098810718421311894515680387280177072495857938344199746401195448819978810226672837605261855771230078763214260707099106676659676158225392719535287752071483889922367896455672217399621509710394260908937764652647519248733545321132620635674195254180852425585827357123855386040813890922395894647089381404145561783315650227275562969694449610244992337281684553710894642481555353640893144225451750478669946968440539436372224345896268491638464669248805216742054696735894429349227264669260775445853444345013989411658126017706952678045047143718025660907262457236109682228742905693806862378449992728278448606126548426008253924647553485718430197251073973670932414795732252312625990094189262629217046611301473692257818810496470453469787002280665746728690711621037667707332657563128598504421434562192230682299156173307730386925424365467855709909821849921849220317583835729461213061943131456317634124776344041621813739956842962304991716789873872200554089006678465697745357852330333400733102940346159772239425345448866768476309565862925592534643135778046944593922388606714490675965734778352241260797761647754002218101994187829960248733780382110485696562763011253843549603433748401126482737220027074363227807507200536987406933058831532953564166493811494815889664890297886487516958514603609310960257617704577957654837650622142177473254322881476935599114485288230209706116397243416906956529959078405047750645891790800682827389316948855030163548922593581635414365949038801640299402426303781257337260490959157815334784989233607006028041155552536520225406241141390830713309430863939807513632845486978111654156854492785712748679643490646401456236739071362014625368559260894172913106136167119496946482262074852792945820162158997285244537821245499698281112802926226581707241959674373323848630518759413927449448394674424768410757127037378873991182989485018509835253010044889070384721122502396439576682908622438844358566500528319110238128148304046268031013442335552358611824103103968828539389351586944539254728640349895757668166601898607871202255668321212996493532838572041252859859613315842611653237959906717468893259993038275751496710294681402199312935327837427529531583304876308388356737628511477208353706753227311972172694185436120708531479199624501176765519334562678351269815420685673127890717817316080400686989504798275728427229230482723085867903301008018814668877402702207480675925368768792521762055998360820648199502729621702763542301221228564654405725191075901126609538184747437223591357504732697233855696228364649433485799722952027671213175781356698204817425004733789136770526598867555249054400478270083097669901058342062159273029853394062299615580295606371587335664979670862503142042059174362905940980127931326609543500472088450760137683423615951333696567219877533925213089730060093168944621201339152772352772354238818418019506146500246861717999557987803657791038540056004243870761545229657628194644639290565862228580833159500367740845565811140230925781360522231463653541778923816872811356554692099904714122422633889723282623260532849764556932432633086785754952203827240204635658643072167443024763722479892352104252196939761989175352214457776047312804995896250045497993302969662786414621686966679846478121205146429819620753734752041163304411703408600974634256345563756269501288294603924114126020516773056128292063468522808356854817840948959011303979713259722975920737581556631394029203431318873689458809292686363643636728889761633819873837258039911566116245294377573652690244362341683262227897277614393127098554093041805415373115438083664141104884958785647316549369679426322980849346518653998465216020310917342373926110004759470323498713846208025482340925205669321994778318544343841447342352023615665341097279333546488827952763410455887013639892161065173083902839700437495054397159193812653647190379030082751618535546966067636770840041166141700310284582710569256578506754236007951157022949346825065378038123441569051223560819953289417392486704024398201381890065576691553249998572091481205557368680725627336448434962213926626831810358776017538301551230304885683533129128015745577530444131815241033586843387050340364748309479510359265422969852817648667176381621600518643908620592993039868582505585990467496558190214398093369787300513096220961876166304647434007860862931269785728744456201805778561849621788534877350612984133543469892997561681809178126332607763417395813567960607844896065995473568174062673433777225427921549427317767760123201884369146895053331073485714703020086630863464170908895338172366785926272307938366914490441158896370971150782389890123538224031135465813961687440673424593564385931528187386109060383505065819141534224290586811151956048482067046035844520716734430190429487942567453385764434067856388479622616212857224616233922359460211043090297822603774089493884547808751871560851719283676908462228551326906686642975068156686612106200285458069180791872869062837714984555290323628832255963607560197432029134810575926553303321516399823108809255946755383059478130553537690679011020163022252997491020458371424882158143742934050226161776179430117481379967857558359819334476748109149156962933421060326281316428644583997060508050014482312355326488272028994180287914764364647460671167130331948325764250863407270478473391752612567321000969598800710524278038641039680363027237053282974705014994088813956845930875065410777873163039384517621311609145021722974850986518868578444181092787294872171997448852033481695516985866264255366556248970425481453544582803646192741584138757574535891320705095211908384061913948414563520816275609976397122812176970838377075952107552732579827992166497593097826321291511684767613779366736050807677914335686073953520301462991618691941919300202941627087650731909074753477287914984162870900569473394259380842862386567114983490130858867550490706855573952373522335788421967248995391158394842700269322789159141984960081361996623926841827953552855874511586217427181454029528493862461945573872694527890217712858145296382152087121931887681855555219378476248847625131424725034660032317695547798813925227486000171083936707798542180297164499001207090546531869302174250789286373013843171061939108261461848188113357079623233671069543232790336356345498387403750280659545113496932737880346287560862601120074784497096764526588923677586598360559252215318252669351762459427855262261193988279841475255558031973282088894092984433856597539808431522362287370013692757413149751739718198008435323246478318261640884592167225486053936522832491860705970323843302749066375375527919197650899403986381678345141592646771068492142752547037541725620473017832274294717960256693716957776888460692901393305891097535225617266736844464985574365229043734529006469888373932998426162988056375868228347003039579993511552383090079469215252751372135408138299434838110322175116167120137917065261977671608580605056816467972124474786245420633610920538725683774818221530858235856052540397535045833849894965383644554216298533283195547550631865771061105746968300161093443517105579446450089641643702277564255603536650106105159551150524785421237586563973776936130651012330088048814941328007312717714308572496573397003840634284020983324917571400693640973345483791792456181333176797715315465287495067940951716139734789690053556304163340337715006337079168659326791334658334295159262036997860919259510109787832101800662459687965390929674973669229808916361299250219803850827311905068495885521765164098177464769510348693131056124467205608049666995960683879422645136166014870395416084555884165685672371910433725398494469137436942138679694293527359791338765575007985898654759736445161092246740813457886319029897041858271605473887614518661844417227616795928850033561176358353632842960570089744870271196241598662234718101646014535071268470564013616614225183240733997715724309708742129356340739936464489256196339995135353107237851286742773932375643968938555121367622274017197753380000720345574964252596349940777263678743430449681045388478813500546945700224271850062241211347543306788877518061148168105768216235192282931613157572577418045944761194618923380983655311293037907958380597216168823733507977419919840103944084064304199056465127295980810675011235997920245521153000529454819405433509382852865100867986322434174209964925991899469998812321754712361120957056880888218894940011690184137902350385087328598705977963538071843289708560740270349148416329166069018813666561315557091498722113449733122556905285195261118089699082491924487975418958027033598126852691117817194984211239980421972070418843272279795618495357591064082516748838301291710653896317472124754270149476270467637128172810453647596961306993092156996812118865873763097872042256540758529088885072544526418129467762211991493569061902400616160846257498834430959500977012641306866082580619172846128998580885019970915143560666082734430743220564964686291318591278052971848111561179497721695860766711243477646923386272689444357456649757452140421300464620600065866563165309837355048741498388489524759407213021001523597400369963071542282559345416029344025879185758128784752691058199454380757181248928708268133065809450183460743609466044693247361532439774783342507119618483537960977873235537198578123395923285462040311206831367297301743276459196332227769953405993741671586801493909929565483786414994971194088202685393989396175362826810227193090871206243231067645300156873857591133666466351346239396741830647250938448161090362325929659827198761673158094913950455615107394389521511664275788510920086369725089396598608190374206287244566105960408614024309994996227012922561130972092568027072829340293947165758050861216869858971141314779883108504421285438006580661816324436965326456732889430549783946172636948950644403886559968037320331543668610232293002497770540502105031319103669807291439998155272482520207211386440392253248510643116660321957006242901874027746797748668874202124049435914656536036744649420126573052826176441305510051642733314630214392497485643112202665335516918267332105266652382186650981530730586289327012776274312840772986675064551012992887589388340402813562336579169440658628038909181705200225154861707727972256743708695233797421000431579276144989013265299297698246768317049907045072153284888144297834895631430068822718421751174103283278318779523183498197367210166265881719483781405258833895062143298955304312665444341650135141307844420953203819663901276805564248432818320906495405854571843868015156521664610236258908086749723528270680968015861036940793655353181538036947353198400660304147680803439689547292117257479530996231353172031325234922677300624882918860914391786598388372665998230903337913798827220463990709849240441981422148245595256474894124365073330204580095485359940732809958511236750916786510532461774910246497736648765591190449775728981049405762311071520557209922375703464803586080853099837759588871599808900234847886663242313698121272143615857867522990657919838485225882709085642282657862748970397821019135172894765561888078820773221733389714950087238766981645111511639333969446763133189183351754605215519487780961234844924591707271861414866141576123729249857194237610004081269339318277021407738610544724974255989357172422501017492050045598214584679427920653605385521856533732633634683292614529130837811228832011256439946156943458994962511005234948582959103646085927885814203228747903887954216551401512214441160841726589286103299113419154040913167095502294088248034130199516972889077040586138892928313089723345892031325993280974695330639595152985285080752036572181981486877875960620487480946061400794805321674484591596138821539551678750808079712982835839671805597013306316968522607816978357498698378223067461009906552414761188213005704203399812925474304301112013300043390158550941458990802031982072695145245968186918195263848452713131285718200685625426402928585681471183548048970497910023476731220138253628851754227365886724811127812854464101890907528389324518840219034004566547019792185148958061468919259365313408322900228248721439284684501466993203866196127696205169836633337488118117754334585178760480621866051922506867498210529190100570665441593686508108642209022696207774593332351292933735945074833221566835640618283060804801072411148610983286221065823035045977825070762949563050311275846784188243110962532528122856082607454244825146249436955822677657294042037631839711055864762667698733625446242869051650932046058107074625525916191019943094687786855253854952473937601848180084821554484914290746009563896963380098437832978398210823018970083870970793892557203439646278617599469987346528967417111657195830690635930674306140822270577760541250437609715534025875055689613654570421237961181971338811482603386295978153420415497751131900942536438183916399325651867099630542834486498793597052730294378084464334662941982064526576299326433349726862877126941493316432733343080995650250275878151859781175372186143390310538997383808738608953558336828730760776733475253315962904310011158594512521795284351651550460685501575169913025555997553652165943125889086486698324531811558911085567675310780485016454298048142978044588654800922915850474015126144870217124248267190477064090265547817433749857454358471115318882372751087059661533236242800312875125604510727461972407574302761630467388969421262641111268560899294442323156876581177405344992441054169590933750675507514214392784632841150003020296116501227199417944629547149787479557433228075067432550741692547722613771310150814891931479993681759786360665706330177889360660331131782991719624227798357466903958859081624168445797510567612949060894801152143479183499834453028806972341296914497245680833666389767483408342982611124371635180397242399394987864220192779378513997356679045748936872316029353082428280103357127315288548287539708868722222566973759366252745244284950423137042017960209580688113376629751909218891940812873664516422575788906790179447015146595481817541996300795722809013693754384245831804827781925033323970633631347415136811493136371615322948621715691354785204047121002318373788384896980300661952923984117130956278542714301743022550172150659890969364306539969624152884258231706295766428727037292853978890846548796686322312659502489901435449328883324172703965370172470405516553401571139777243443746506276509132975645635230081829940301599808886865517421104536444196860681116271853592096664027569357699044410850285695399645098311618975641771807043954035349371394392687981958794071828821258674866823530293295268256395833009724137452739613089425644338864637320016680519103777673955830062097916122061507485911389200047186429833646225621946480432332571958771639268648059447235270797666792759568910708008349733610488268325093356326504640588925152610274464709116308468267591053739161160420232122198359223347012062829433226655528467209242063897051119120311237270175020859203440381824059356171481149690717454755067136864174548019403085425898155237889128618109622964139698685100528295985017108395223442091250649227968110384995986205694359256488973072763641415541658129494805602531485342092908947130117384449297711913415503976835239822610528719762692150608132654292700498194795548227362967048086497588070750060170903843210643137479384819378029056683322136414904344811696675462631704944555541306411075062036130977778002526586700292148400158850277924520182096091205613131568539012765334676177762080440018354461519982865342924462862113333882385948378401181892875899932428331247063219765233552963312507501178401345392740677627349764169020835236002523295679917872703565747491186458707192051117885769643245665449878523044956742212758965395979182731434033755639512408753326802582727292735640434543976644509868891179673206346938681935281298293767039990624655458234779639128015630949064852056933959817554641935127073783248115364438396668033744520335298379875717725442049760162448183848308858028412189643921024837745244561687387061519468554066697684111430408073962319141955076708521705049116951231943670790347778039809192919493844992436987023875986103543592209751464527891846802162340629682790711669675535392048568718127453109030676669562720757149531861967538135442741801350946169784260948169102248447358345929653699859918020352693621292258620507673489271086204465268954715797338331506970418231468456677653343427293172319063534384231105283771272507349945456318057843502318133567625722445581345014428275821697068371177609534129049016595292244955925499659700022730601046903028884719330210395243819723293387039376468586274151731508775238170827259207769515503775207729294987434800920928030657505233667527316063344107100980387772825369918102446986392122732939170634540602389733365933564942294011575283342949803721133024318324633916325594534528503576671318723316792886912762256521201439179434898083710900574484398111542246571882796207978950675748375606315595311502490190508855690803127529396693892915977337230301000479208770503249546329102004721753968799637174113630290676384127659446107959883542749005689351686673082924421320189641496330359553456841568935232704071782444374290205913335597444839333166788604898859098785980165893159305609467618369406802481539972771765075984201514998591626404817750147856406037552635795733282377380016586145287136636721965100353503332729156488090228861586255133833264223378316907031465195824320480319946902840390931261864245125473021367625836909181249627999830593171737256703102923577201811646314712552762736582998931405718805976477519902494049365001554320911745213312782303948448529751595614181364811842678002238191741226180960061714206890476830522281990785034296144998087670118745045931427679107440994005503880399054008739456171840531593220240973064262347028999455333584344485846217894203085230280558173163471714185385449487515324502215960949702819497337574358782582759435569766823601078933238416544882188544393617133768852011024025636019788805950967143874910729158429914014438404783017141422741786396677200643846121617445126839305482499100586975496205911931122988552644405448335801244208867483540039452089421293495457238211453712113262231276260106834188736094757452399930456074389625495976146502092829758287722997977117023628574790294628774799382978028610792479046001926224359931410399184035599205419433942244281611360902353003835060067697055815280589533099470747845106521024190454981573253794621858386701811045027617078494753875997636369268219106315606210579003680218450640230100774343246826023993426166697604828677468730027509201461282030913040017693254969653360730651147515407988880577356033249542298975909820919943546859468161403074886131414965616542139857966381451090962142352872877917053018057840942514217191491868192319223882560088577922077911675055451361765920128731613948453027777448883815033665563856002493079669596133770456668882883664043686762997446517794039687731622694768537706663552860263662651665917618129058290064046942136154454913595437114186259699204117725950586111459702820960815955852493364357789812881286990094145042621379753375962110159082431788005617398895601632673043791133118429706349958991495798676888817411756840296291705783175741687919589793541244966119675247305992459723689558349599025044428236619905661085622427665263884517236767499746329128516010095264406216698965247752800827024298179353711018927255338046943820195774642782426750801780661708213846446890620358814551986686468160605864901019050567271874210680296992714455134368663374255527554095824350840312451689924910687121474274959803407586651308200291035258382918069820598674030875794909466051941941933160515702725675418483141846604330908652805715071732412752174949874435458562795838122717887582932331342988861063646901177458657036789345485253409274031195316993799983847151289153627845682823858453687665976062771591412932951506483912917769214095755979233888995517799505812581076992777304365958887063760028835236825953576050462957074558326424236428983102544066888520723395404791610741206155713735097590085336645806630340040785880831201297297219541086064978840548422127854319753058521625891170080792955343192498244501428155974224529320835468670492934860698665715990132957939345547883196094804060543236872096515914610972304529231548236005788521207791003524784551184612419903190778063537897514028034788070027586181197753164704748796694940039735685219558956955952144686962621506615465975326821062027376837835074758882530508947964929353646729748188057921056867827568263465809367976573765775890421618390923490906373954021882675685026814945633659123246043572886317014926045289968961715194368437881267239733570576243834818527929922489029171337804469347539258744598227598167538315627180368699838249240722190321982214448371563593886705059226713607277284845596912374697039226603732892865153604943948220835124451082329706047893702512964498058808364851135609444284549153351014934170379492209048047547117730950543564136319168380226295589309013411092557024464991907425711401125001047081523680329098229478580237278374559698709051095389450055029882271878049697061339119425590884906110000105323821443937158095409006168586314648426894353314108905845418937288715754163151047020736588023183032284936737672774312088608240009607144367671627479803442790629170047900468887076526552547175336783072905486746706036877756646061055350311420549060182357002677080828109647484709294842962981770380000614032684505397075212188411045931333046169395078936711253814341514884370362961437109332309156936370442636332612936077590672376327137389635210038409236649820213125761241634235036736527400276104776957448277184976074982816813367476356773595707749637629794783366346571116215689983765823766668828694130113646878010050538637004128329208718978419008129313042539495360487751844764938314225794116997480076366074563734819167241615390100198681279714961572666661808027843747105783025681572834392774483576264355552821167448473606856043675644213555842578437884870927870245378580396573393922078330017506084345197356386467446510259236046493222782342077591412759424848704571712012841493221957770794585504358035488081212214926820548600722952955824458868431430055092866948226769451020544960873577151367737627002692433912714930168485841177028405844939464960697456245047530719921138857790219024873553303689010072808656132540541705234446960870009203743483673659183408124816683130861275602758213311656648969235003921841801041775383874021696827967032247589892416790997050109928151359358244099726532417439884893127689335646230555854480312029972038057180620560695407400943316029454646033768041111085017893922011872667508234932111942343499544988321294691921157071523928406065013645443056890592016085466297346005507075773536823972191545299237100841412712408507978563288429265917436826177157935265263616781208161404901585681233773418174777361647103790753598957894515801693330563301174378862213871367377312806602146522924801896440042000935662351085011755777460024401969287805684767068716155583919955314753412453254960912206005518391539146794804996118306389845098778761266721644272710462510539554137981535971529580578103119685062292739670896231526987486084272433671334936449655097613092819575269784685232089961951036979093223710763354216802741188865397884509103906924120911017441838855171789016502221342357011701906045522155346743143755315999457971507312803320160977907759006564473866791546933116637753129294538487740967233130285427023032734493207941322064504839726048598907218370044601907016467684804722308617800272781134562155892908162803519141870916981797376443945214145856943399378756427961300704960009975809987686021979478082827400129950411876372207045178418056170168037886482547004429392163598162074958075046260162536908760883064052729169306353365792930030460307402972823478592050432021592911764810579300495832884622228229844024847950605242264574863607763886958424328453243442464027339312145965460828229880932488675479198541083940621999207421676982624994060611375338607905062959942854431347392149465402640771596003194880104368902550182793358624368565000393488945896725651375263311089493918311946539821952214452073203116848541312400477583315906817926310582282401022273984500622139931473245132618619930397162819467130990956775733961217993117067808707026714681478824527352559415483098936660720451069197494939024754762637754723704000331383149387449247244534620483680186754452548484871282002144135490359015078482344144916031523839308264375694618504975364093724664947213745408910081164495553457303258756643373158071343086595182570367097417165710788373457718712478414711778863671513003174297535392616250117649720922562590217477689542807480861559983685365577675768857508997243538075392088823940144311262364193636856936685316640046982891102360861071407959630375247795574852048354798273748853522284177288573912999236010114896299170247581766082000398139291680776192740167123820805799579645248191789946012993037704408297048062464106852456117342002285892366636511220491739243978989861589017365878124883948858902293929208602852232879431814086539122195641202964642446883643273164492456817814770361249564176593006940225956084321250920426545932862502418245147526370661118589500960555872039727846669696996108873657256993720794403000994059574722009162941427590593880492736231543156990570315547687379475113057093621268949859298595326645142196293354759277080508401936095956620140682996419824283578708016202312300472985974939442875938504750997336711350119250033835372773056808021099615495117300245301952823181919449785409678729632411807891510996787116567922345238292556209460748987413197992829374211168297021252749070460503532435675349816986085203568601980030749352460520534043892085162191101677384612625209028115341423407505964929663386971588809537123711041962993895147716590916501611088216393793929988500837599348629427481539008512718533917028923687811528745098064782670490175881501689632362164138362576487840643684530319550536380246926914093979042039887930303728481552393585982038268772973193378884850714656116555898410822107288833308962135349012084135153289196346703375643437062301051730461748974897917905779652443016978488847516948029302201367915855855484106164097280333833099520396754647497255271066086887989484783575255011319421898191610594033428157309455403321803737735022746916142640840428772848009369355703524908712476974962018433417844083339885196199594776125584010249164611910425044079699166732681503158108362944615073710112455381982736830018640413521159454264321689362983385604283904256322044111412812070688779172759575878763210235445415352240191688325812021338754109885975228301979025198076429493005243228158028669064350602326036980943850539096587489077749724527072187949100798959005235075003857092897029425164175328401545628884476923618428442800044468154938827559875395831969582315122207177061175276278485420435485643608505039707704331152012899615826500983406597554655419601024927073485257110877449605649050534131052499430558614374156114593843218935117512021076464138659179397176365540468615712352673259062736607269555155809426655290404475590046214964580273833084269736807695217394421565343894444574671612830384918216486654248797817205516578371265784963226523408745372701500763627988590326214201727243566895466769722216781797011782884544282871883431146908421195973870401738329608563629070198399304171515082691669003399990898787047637485400052879457383551897470797499624914384140223024344634578047315834048756350811848654859174170677493845700007211801579574685358497364675623529871242123094540175254857150016380145858095487475519168590155609479097420759755092465579961925470290291487273387549422838642923654726025882509588395844633269326451543208449038245538140659330231630140960375738638237613030327305841213907060275753355346701424443558249424117165544693843878991731751307607424619788228193683427863947856375052032988902375028618243783496621276479249602105984160484901508330059571229008427124979662217244769348068621189909706713954483852488311752559688623570947194285208998529492360063344085636061991040537501874846924252360986631305894485694248112684617931050480548141224050254013594512783031261927196345516407531580354650293700565226321879113249109003014791038360924409125355900308147429129289113222259430781573341809169098844073990525102714350072491101818501268461334404502022537571883029298477009145763185870358782335670653980069009711490673630351381624874133311070209788476662202516108089731635612899150105054948905856560563953185553681082087347325017190107134186989273320647216788572524897305746669073092209485056669538264126737431115786253521959673664689901605659334754546361405541817465385413658027375010144266543425800789073998125428974358730921777379192627725764681936736942648728798106081362090593610675055749384640987598716409802138313236995838654100425313864689459825976818912290403410411569518389611191928585555011700146253180841460661868424213249919254561128553416812305797045892687926599963202056723027122291969909201834101298488674295063865798584979219705922031026487689535073231729771144750475415247260594699840785044129750181146565280568017767627193733939877425098251661407831404587126665860804581495751108915323040144269827596316731213498737454915278208890645027507182759738996264111758632363745489530147220325668365847511680233033520739038056149792051660164060623756913314736905837856943047018326274827480440182345847250377974008771828073849984656619027201319416919224315157886716290724551421811439212702208336603102588489031383645062355532680987434140197329827837117486126865037919435222213957031286562212532459053078853162936713548496724740261931579151798002869485830600779432330958709740936989528062853862782493547769986135223251358790460379173135405123537951352037769073071239336165748357297767568831315951803839585210492507938565012658875352904574084994312130886088843604597779617266475680901196563330580878530049418613246869266175892205183494984976982586826936333256954697438206798423547760560751825427177196487101055838030187192827729437529437978305406371892218459040051802765592080384536910233190860406903461530601770289658144983110980838978111592950595519356694289885095540283827655146681104298452663261388850351724678569230632592420613013185500114516860382705698468750128849437674701290909240238813037700043222196573686898916717658608708034792061682672871852491425435442673588137226436647877690712599638523050137543161950482733976653167933536879942476770955770673919240730174544433973165398438963194450912193702097630847436102608462245910364707402383076321512328322922869756829421659170561562866381865811646745094604609666980757903115416486046294315614638614257891757711313114063411169511593520444483809510691003657634605179011499022389274292498944238033977704308516798369137073442336542595456084062361565258796829339715838064696668133804214486104974924527298501089774501079694599895343813646667402562403353920290477378556668473468015869131439370483693338502062895886122628078004530123258143563370667721138879080394134027066565139510515209331129199040970654947436282908646689669611748728164413580022034346914155152301281355951554907239248759442820867647447793534368805433088132681674630698267774681352019126916988764950361142651059224324209959294512428197709734436004767898863985056529657599804030685341355034940961433591200917087786786072309561395540171982834544398680143449384728175461151068576392583796428774132395133626014494549989039110511499610789598223775161417308604347675056840528651236668043823618722490252427218370106270365081688463440957073140936078814156655336503370979782339512332745798688961870245867012256063270081875424166878154113721349012466326848543198353885701364440863633908602109506402934422945407342471260852372160032801588753704243248975359234364405756796427201254817896758097238027397062728685557848089273066757857591278901875873407868956052501398071612822529835155453927113951894583323819628623921970742591901412628646821454280417721479770349731847978443012369009707560155638522701594402014075611842206014549766006147128913997214274312764267170601786554485354568138179499803851316107524969293492016331904519891585051580114258052534831447341650806813009400727236769729992095242691741056480635871595182716928848683612593065635171545633838108085740035825983631310634661702694514932405588668011466294931063474186239369098336512110211635938324136951014983184681603926392088719561718821527792351378947130122411535922204745868060513507128275240238259835528320592902875192897830458728749773121587400563398136644651395806460609408120727453334682233866453580889267619708619540984437081121687253007107718123375903042625633835293906043307399327939176613276899637961240337966598024801101262150822241681120323090288828741691830505683389324307848293715203218149990119683247446969256030667851641011247901935466196114350372098439682100935919784680876355450433529263164292061071304768667432513287009169030048461808957082759232854052824042449591885146653311337135175200827905495743224128654379197222894289586680353261397220383609575383387405662187684285521452270567107433943623881358823773612260901681565495905013659566799399449152182324931806856159899074692980640917163041517560131275901623007595321179300183782863791431474523621193998469124571119392445868633825798120628129361611293260008744241587288728429826094890694318634130492717799991713986728210110659405339082960139287704262612443705676496946001680106745040426316120142421254167602992988554713720318057124904690738377665039849581142593414496178559400511541771255328791451764436986174371075422933283297767061027120669018839785421526859017627027272562591572679337497697966339512641101739806478119587862162074242124074796736053973151903680168584319175265418570017393016640674315868563200388098470344190567480336752574247678129060053171308798223035644834293787695324681857347803787618647710472053137983451740298656095033344103912738381389607291580442551726782424753318922138753324176026267518354595098810381324255404097618412731349899405336164636305273508962188743172703173334718217687565299062814564044458127681962551791292560838734301801725386536939398204552207293209503661015733996943922845159193965646480841485382485287787056508984694766863792780218337892379625737291434829882310832665174904424859995964064252980627419799634570680996618705432495840128511361292004140203591402532572578770814974645497862457890798609462087024964630021890511730125017709464810104871330180635246608939871930574714710272121048923315503540144367949490934938852582659546868492846347128705884854234511578304495393678096279254130636351459952639457306384677380238885660934853651097788302710713877052406971734812126439711884789241275256576881792988244506538153060511765988033090659612749609652790881268068464573833550033791754813840344828855881904286881076786561901143541091781557648966715843484460065910423453510095735776093419711520221539162903176385591560053385340368106521603791648448813736575796967898503682123936369211351016062200212797371854176643557866395901053556210662065834102124035753582330535040475995583233104418873815820515795561613962298074018938904290068400867961323276885418692577365587808388824743637215166730391771906085878770464117376352907400982793443921180010546104734317564267689599304603883158266962625779288182486845314836235266726764336201826870361645665337923077097521977864505957529578630951706094413404244124978730732973278663515031026670818628485950204593435848881271363908167351801433335087456984664229679722489332589776096260290766189195550680455877981468162428780944887944072559465189423506465474264811778788977361659248978052936625403226394954737791135750812421119869606290263372317209919957034578064499905074497599681192471585569835677193639500915631936512264207904566194368411842403053662305969603552501914824429859075418751141925898726645609236371953070388045489576345959966152974345972266235722208462867195965098949434930775711493462038195068383224840750849083003558323069769153629392420296824538088613781928057859586112487265878255921340882305730565710174485308369051937987836456754749577823034037933804056901650977557538051159798446288966005806853362564192997717318918355366397324731299941087126814298411472950515985508306545467703374439603912723314158240540373471598098480747984580158382842260499044469747057292247112123027563683758442187855587986908683600049450286642847645785443400611810930100959765844510548751542909191092392220936440041841055121566015946155481350817705663341717921040498335887761099325275276665841367226311213057552779222676653234688132659749778488193011440924457708464889955609191234150027976962258029028102676242776146592652124746005474442254927462147848580202668629943526863259779041521633590650772150980105340307190784936849299938361215039553245347732810134011361503006623328304590805175512138587876687645302142220023815550270711108142595213449904970506440847104650240317126215377672248988495489690611921043730643525352849331173670289181076442168643690187545355816853999123284782845172438291862252727496461802515525245721087587551718777245122220788035409640578917027956412710347929938558164426297358952513890121650286457421882334443275789093204302528614411294314748284093332442283009139211177520672215157956721966550308173336011394391827690791893329482170603339321864573090437218213724715298777918924321650182714742877521622027627750957568795960724979566722760213121673363333970999670321724899729860220312681934273848951143738645436096647614496846522559898233140555369415023322413317878058721755628480802073455365323457819150358688949224145296655688116004401457864082279895474232261052438496333786957949228100037410067427347659058517893979168408429960116201963672238107526229709363245895876807392017037640429735147982086924884491318450995664668846121206948558517699373212979309574754883929523423761693877028671313333830943401896714434829409261501997386058717922756752730484440264697664669705079001734774106372930777986765645604528390904058435965842473694957597143666309880608471865244290123027355668509115663114703787154655512990411357063032941833970070048003279870094454235964149284137007264336661776667671285033868474930137293195918835259084100554795447398229236228730137791199316335934412511342599672016984814845493792939557984007007870749164890713464638170167662139474797424905273894105126662334182806006015325577409885444396434820862495586972601710023784104774374244948808215286971853456693818459860735851053745391716157819500114770218068040522503969617477612605899627889680662558920191175660603657986689206366660373717970823665374254870437142167203476357346983949339779039082026265555009083431779223451223221016839107438688413222433034364006482521170399347018512009533124982770179330782006275798688325625430006229320995186246765766911711726163404261398801106585342923371372923846427842078365211801471255729165385451163338947986880887249690077110417799745750139960478957025794893825734652979671511978268002993000053456381574953652376230384627880774970011533985930634673142908910603715322524850298934971012225668614555188766431532502446594863816391981110779354000011074894701233936446378647660548749324942900813873450138331953524359369446657910805995494566897365998584249871857873875291129033722098469529405578789174691077578630789102890277119329671605015159975239654794135549982440312784800795096663624674690734317466923938017535575536264078526380595781666400040049109624495231479284989123365780137984610905858464230970482980698476500229664498127252890747995055503769050757806754768772568264972995859980406774282405642376048385846249330358007716228855731184333795422841738116827670697012610464030158097540272585942512920392025965117746516812256305508180691207690078779524857703284404868585900804715537489515362437293273811629449423707169741496260977693248513964997408067784010591727634329443226337209429421801734149900377643465409996259276901990166335488926208596047409081391168209156685023831662519840132798822932591908285903784900110350830717685824567417351808295856595230533115341096591585000950611321174361014748847334201548052854276032794523930371032567069899782648799801864051769562818874242503062340587141427969210102218815739911918355070842738806832304940854151844763215940174453883874108783527148364141287481182424476196438099957136015405641569619499990722470058947229548380578964234287523028517807202868666015892170325831302477102979147849695808656127370433962613340536513111651200001960387500234375464194651732552611538619754985528943618297726667642822238215585911264826339698293431196933001881617225902689939440545884879524204587422509700728038762471931262415865755868486909062917065330373668952091364953403842996707263828015991690991731596893503232908936116794436466100554884423677650009422848838352162925540576520241462374337342758947409336273336171704213210429789543577112802743553082940554152027801425624492680343102109200357824705986495311037595140855900414946369110758660136464107374874870307403655444667080382891136304576739131510615927465770987687611023532684588862671740314464748393995853129234145944468306530564007248693792917221099678224162505594267482870064918176067481015582258031747849553821699310383644655567816766342165727789860115948574160646223331410496371307351601803125613837974953049379712261850208674404708594589903147447721637623176214322134796307001813991241484365790065762800161345923435039652049189789993246586415076318020640697409629113505747446949634125140000173614873106669310066712480980486630171291686145187757197839744182402392416211130829209222451134448532133204869872991065944605722617301801907568866050007382659261711608968386306253829938576987064937942075963842252134471655936105860293148592118574472288176346236004285922140719780935991612512032402439959122792210103177139890002493732244068139683158595977888870631701790980864807774669002004983242667056949405280395973358474255405185233982283874664003016138014932286977434212295008042227181507854022910073581723750466264574854090590490524716282166155104051542544917906370795570984658360840434734287771989986733144654760713983042732989379875356963605263895282289210951706256223868575309049442309653848183444541102527330963226075093966459620698038881792707094935873714189055092129470764864532829268169960845106461002137248180727571035775490434512908580208248961699815770442649253901000148730667913557458135501187331929106817743666673495574238104220560895689709537979110527782900369689497507238034250591537548571774410255080940490839009474376147319065014686109711820400994143547662451263326285420042699855846227876245424215648638229707887765893640599902471002039780105718544327614472615085888492307318078859469035753739497564365532654985937740474496624098548271617442878394467962900742843309565027475837194234522763299418484285471314797364878529137579259886708440322733704912089585529950750755579746140397869959353964022465445257570974964540854803789686348150573920167739485068343257547182010325758051954919591764448673550033137519908692022679827592116006596773272543703332791782765417723523097518797570419782570160057930357071265107739602881602782833794100963360707134390220145175538469002537931760428191542601439427529902564491659837864520273819576080177652389898512400040088796790347735783664963621637169273708469462554727332577067233892048025516642064898200720630506980232621493406346394549101005085787042330476679555465639934887926625510321701936304470950333238173370579089725616957147661040523331853385663528372911924852042288573206458199708379796599764987145781260941287866916579878503564419303730022072508638160358478386358401739470393422608099847027162442498417731190989082206033151273649184350065525089891693658169546376511011206723350767718782604928669336903646916419177673258338405990126326149280382255635986380375552823001587717029213442214281016439275060738460590755642021104732351958483205328991635298885944765095829118976499449416550806018824385045100974064905445714991426037848618133469917520191154061593768714025305400591080598235067527258461976984180404224871712508389845803503297166355850105006461736632013367341478925729800950706660745030040106461958507378886624285865242262185256622366441995850781024448203509211939111829291176531875288742426720031534902961643319590040097010597833963804953491430975423945622591589661300793530264209093930594185229904232499962490602704984658228118994762541728908166383203671911973900670742883394043285662652119369146762026459960794580996036392569433459782224851568471473453271330450387863733728575200750214758086243030477054108809864011370925082431936473159244288598966278210445855581575917821483380958117743840988004291648450050173450446339609416376118929507895215489188902293731818350261309141113435917943342752223558654615019254312475381382503320037120843175184515077933042885873555230072442860628492509280456547223387642772737241785264136770041491456187521231313917048614721749257064312521333688781541292650554476163818617007804646942803570129798566725288350710928697357221467084803313986113870054123436192509983833369361916575057290953541674296052419036558875226263132473320176150513577582974283724292223753314757774402949416946387283341918028522009123666364099148601772187079247957850687498539920831087889724705107051824166423313580126129800793464906077517936100935122077194873651475396247911382181934608962713726363632639785682168098469169052018356827431871993915577953528493208068890569411818658064880470666424246584401201865144371973343890636261030422789752832714679218681831650451984029549820474913162384514732064845604505933735949904622192288492719027239092570837551452682253858209794315298060525126534121228567091348113593939409978012559941447364583674426543580628617129870759310960452321348008962819952969946263124104537976415682706667849529900218724558839770147640973217398932666000674562274884336651066843188293588606659847390050557775298634502003984185297267723746127512732615339359797994019443625795054117441607009866340974774196544086027671889299976262867796016686871728211968680133733730862984305009526671592670108796129566019877788648392734825551541926331975055895365284183969101764842228230691915612979041492773644008655628443096392482077327161157865695272141112194620965723201917709710047041318249559127217220730334773665101751845873555126042527368488199182138949640226424767218889544911499698955791880175406062716455433978911583341767295049707627091508752479393328182997487008626124795172606160862494608499838185536730795162437695905466136061176415077892095042740318627290669234439294368637839764225911254668200224916636839971578230519123009046628255230047662547374733445693653444441109134788917478713261432650876218256447101122768280252390407692696947106819725979541508445863145026089536375509964803583948765621503738038321062414912736213435022330210652480250453662209863506729256814372485627437914630310738927259842721479004645080283678574461177540120504458573994637246531394860413913227243919669796198135832400285725440531405682057766600514347443781211404492813136615076396584713701823259884127187085504031107361166108636191399447866509003289524611402567512277578314938747550127715694359078492920304171807317950865840653339073890937840907453898204199769802920156974117327327411718247955547824416245692854068559595465457217741584746258592355965459075574107556085548036898933296480625737879041894323350898274162770702273054723150466326696138820017633746246550429691074283689737905465354391213500072491140807245804907160781354416435814774936748138229671211935836315712601878993525962354258510128626743596029862083942974642826111986620880767564965157776092837509935327158568183296918417415719082742183597253346984054844999921409861763681177682640008771025725440340920519212655799395126645089523419312447793006405412847265212628814644749198625033821923214910750729274870858986267938663971847537530117996324439671573210888191375759210585851232900347470738557453102895030700736425857710405438761262241385051454552609701803231539974862414373584713190715915558861531123687921712573389637510439981760584490138346763434062396426293578575893575229157836833733353333939375529293816733514306717269758835158187251168189666274677064297595520000031689202846735525101666605442037954826698411167739092213785504173192018736207107148030925517934557204930730275037065457241518932086926013209408355355304220910043974933152065839001692555468486752084019633275109388192616094213026397555981669138704051355431967086948712478230008929358322671750069215804347899701158038166842316938472075275006535318808445743450518348462767399538382531293550457275247120197327695779244210829743669711050214373371190289798646481476220077494593228215681588210876479833359984617425810157803837316636292921072156027635221770328371067777714368856479288309910779730980491036627976647409923003098063124044971879694827665465610453443490780546434017343707052806522443482066073329624538967183525885737584587739099312864120148870555222091466182295364384801825657576453915239409071569288788748044933170229629292619672446279010608619609503682307640460430959865369456114491157770781348462450353025262915490494596411059833348348853686706669700071183726816343272678666091993842623320413931199542173792823538988389953144361729287254625937074416455001884610882224288497049794876033900210584220932842299515413975165015485728688482657499448587747383064827765466598398650151973712891595608148781172686357459334492566296691142610602183479146998494551428982443546895739249191756383897044226813686956961105578281589309555878818699440222010703530806528020604333174133640222454896149354020287703727085136086196014695968239338378587899936080317582717194837705522173656070218191764486860080213556017159647437953959175468349811806803090199336765697866103024628760642237136436919756953277959746372453622280423713426934524866051053874596429352047540680939707261739629186770114353353606906587192867480969305676354110169459773363377838807722824979322225446865555607410278966590442155491811745361764568688096974190227464132280855153695502515619004458426925663048311971505528016671197932387580940165918172238783031032901616728528695682505177023931156512402068680854051186162799105190444735627898371518372909665442823263724523525290052191686352720838859112723324891993266032448630361553361018296744700021538432872630768188703212986766186376994826299308565122123046358989931388757148025569940207280020487274999781934981739595218235271489149851247170792720484012189985837403344578733071220501948520015138438003606281689653754537075200531880850734868280873094261496914575868917883456484900383497338396179466118520993455163363114679315401664603654280038878509708477728874006106579811174184929129566395477383905740796229297449450193088154001102760270754597512380443099408589307052808431833125072575056949600700871128796460810552551564391063643248456396314953889407533326837526289234958585209291471830060407098975294645387913171904243672185543147421420971495628306754926957423318482429974440769714601721532562886756392549442962288381613989047900632890874294767004656586764001675536299482940125787468545409543751528209056099116011470992273200156024749854854334748811651195228469630266654907100089481798284117246046909854916690864393674446493328010186980044470330713004074682828549479017993448504437728290515890843528123676364943947492967100697717035063506507022022348013115725557554047980849361581094414046910554485761533766882485658398377884815696238392872193150293600848357283619439856695584171402312986360464774900597750165887250972693616883947974330531582059634128582800560967621900125172000230035918698658574943486193005031153581458433647132373531083820850131013683773242224416759628001642980732477547134808848444786280627168908555387314731838322424868664434997614622544402972450365238701465153937239746558884711288227760978815580065786900269912896493930839127031585047389382759136264277055809096558031492753887950193107599592036727769516831051206576666383719838607571191122461222189133268417983909873166248322948535466717064761763150199769304886444905085762559050068711743200156396859381810935194991393162251641695178836043191398489458286736024750766664270664880682674557433466508104115632373079138282707472151130472365370289008521145346394250635900910522420620917211997391138776481033642558385045087318702396366890364245275932501907649413893813761601895032711787671096515347939252772452984568923235175474130758977103527423305128500749240799928021243291171682215437909093938024907406999087279848207754309692166726622598986707599042428774478550696986785571777420414531589001924489047431088054506440238606622029685229232870772316326054223660938042958420272262465068870565387712826560831518899397533276837969886352430153011304675048075734845846647450622295183334020701876333946671459294509819949346712214416493452962148440637409415467132539353348867534120559712268556629404499000251406258898628955307161171496648336879814700808893056125908981189992196987700807065314497888189376871451366732022846169393196024830007040194938230404155835235231471895375181989364146682912881295906732236129204869172162107645659080559158291518120386099797464978158036886211405607071179931111087299286963107402931526449971942927360413358159368140802690254597679652271302804537058428720336458429407400068628291798697691603441752969280283752481587315101524407788148495756491834337561432757175286354268929379042826523863822202174338898670968065468799076793333783998340410179362117615199194218920450247557398920591355368517170076903856208207156317909943277393393633691107401395724411132587087673494137287703226616793238041156399987019743436096407538323203638348393923368982224400480789780238801307183725905686490965445855739783780857099055439924600253925366530772306695388937466907888234183234615644700710300098672547882523343774005094610396668147373938540972516191808792089623169788537443731504424447577028140349918157640370589877077705198458099904234620107540913670380483386369356794718582102659222938490470275802475831177213115589489678258176837333546168462314869783665883803566110038408866024612274276784765460617066733635876402600174827297742723270575588006374443689701324868594244725518417565073189319717010612576411037104476660550450912555683334790753998709235287085188686324424065333309491305895414208699438157422857034893282777694625514189652317496504420211808711208652066035098156519311379319704799160388642055289501551323514689557151783771846355880383956407133861244403730524922895318013020559275102367006816814624099163268593801553740604528193993858344787487834847472036744200334245534743226786469096206173152047832830788416915336320906063003912339808507496761723101597918054292518640243469792082858237717957415359552680889772809141217133864405191634728586967389356751738733507959791838288285234956141719172196426277539842994447412221292114275737906452904108383141945653612477600961183145525386734632635920350521538042681751734803566558805275872926546669779870825759158633197992558428773114345166555763541353731374789204002032221690983748006766003780829728619334229630205597544970599530469800778177392897723365682811790837317936716667965128297000432408578643265030644682428307139132711573954593952798663117120999081228929050335344169042218400569928630961941617842705319128311072739101929910012961812356033842466536973092697949124480515018870422160941649628770644198563017398601889867953632082718387990441018680169115157212593457861896218160516220603940562996763154150467219239089044704517293873099235233220761927917192128632762269827412702799296441214978933773722819013016480809256360693917527901966338564135436607983294380777936254521858256044417210845341764704532136108396662298092264289030019803924491877365469570290152842910619634193947783156508729701820316568663778720987403498723866718667644850779328649848833470421803181183886642632232739639320440879005407107596822413578564017524160018672394454096425573014317221284052924151133662835725505838475650817880439872856373757079608195600992379760711133373237488572390094164841788593839518242779210515363713533937876794753040856400116267581365985964200216248644082060516327496450088295249968784283984708540566046862457101535485265438265574443517100717238415330939454739150704144539472989268993960386089454466675572109113801336067841697092683181945966040284686226243779798201544011549875064620224220297465367572020366102370654638678508765526027361756999817332288904771830160782776507818791405971731415814266177277424589391451006554379410938080388669594456874108044448303854036310663181437890782880002339780175518972236859297303178160502781606309783528482245813447616499730567551223178194325444331970616113411279526138522039489317555444815549909312442376901660200233560470443807429269671374902694919708584443115076958023047466162794781744911705440532181339811016174693637892628055952849708253434354164183422837243373762179568400110409722064492254930027065910060393779176300996967443853105851508957264169192898137129937130126382283890471968524246940209582855157780777402431530682219020477856597273925583665074703323304907300858676565370546677884346368507607104752951933736147792508688846664955680642822817427153775613513017684173384940994292614334967705561842825360380936283602762070819314884984703259035627674745581359654420652641788166717561913115869014006079915422109234836221287282458395839734841184097504291597981021061971781456265003380062314603806421351783820502226369903169072977493552101500930677998043993544381365797742580701537852836740230331420543761714821536650419543096664422541576009861574839061744122924039936802349813555286344031073103891551986266142146379098604830741391345727089050314824368316452678367228299694692718736201709091700008455556026645463794464368919961954896685094518204574834512544112438974747506469149400052813838924538777374912903052160441246269855249116944742369911241391582626934721728124515271042364479627115616995593678471672031651334739600166181235544637408523609942065015101123292685786204972548943402201879385409059904943160198786528441184363271808022561865574540305430066691853120621307251415989218131103845605910449740222367861750301698279684794512762257998708913726326170824183585771465685868294624962582339016296321839013198873556216249577793925486704767918902250824263896346181610253909040723859144711371826282054921576083388245183897008780755688194955239060049171150525242695429385440580942680924521954892564559172981745483864042776922343985649643940178459591228412990439892896302571122037812927790830828828766661011045320986213386580272924841697255322617429384754544531572867158029581038248797269748924760919211561328664841039260004169835988373943534287155298654734732144274870369860487546094944677733677044750158871924060351390895145654706405605331899100421170656835553640401007017725642069309543811455122758659051454919677021654577733020978100872812168564557358564690179180651711170778161117209376716766662876629299798344520222395419552355762444182879644963010550081432913134154618273557700647385434778439749196803340763961324014121962275070588370805494458332024855393297798129078230795216369775826496525801702017434372719768195782897694508490157708249222546114362737487962637197019531329342046029165863138060954147990014536733220280315746409747173221237226210251570240063024725735470214018403585637552394920213453981869105228135377836946929093979300801235150600260007911936996539249903228645957433856561338476461021953136326658369231099865496982447128307359462238657781328200057360275710127026474813389321239290821676349879832559173160361425249051166830321993556074987689161953958341104043756507185901881810106674304671769694354674958407870612587974089101522470380602949925749445072917295022172898969405491797611116024154265396789412285872644711549456121601233369392456985068602859714524279591769777421804993218151134065799540248037002191402725505192081470477102279787017176877587474930315095706013354575297958466889174308668782407147226472853869199542670479839385317656511397172007156139315683774283872187453649019272900795129086429860297073129677996986563444402385324262622243845423744957488462259214565716720119011360705315806446601783497949804266721993510783853690253047253021227798493141044278947346053202751524886683396980513634254816989724852782504792827545213328313107549437976781242336210201147342274075769957375896872511382883984534466860004419690789483672664921316633671885351519706707335628480350132578180546617929127887939451904224232522015868236210637455931541727062074513893804731058757607256551402505955137742063712114672342106098447918130022631917754571143730763978942352369498288754818208907216211480342051001235205312404459573112691535254423580350924351467162570597392219336669728612609210569825302784332639109588658484014452573344321174851137551499530348876350908164330028139129319101019720149727502028809362416632389875485786401296417615811953550494968019705286472877425593636672732628644914059229252223128438769129888697466207912134131992693562392512247191968525623779928372924761004637838326296023861679059922498827569532798710441460166142549524329842371045650834548541767764286160448210590044224899320534315086412530431587377748267861019710984366552071589801718663283325617590697503837940383456393962487320188864605548179168648898022102719495696667226086667398517636879290575702689711280736659896409342093625932349604931151168431321531932214946997006227254582102178119089830020276849671614898758367062663108114514964996601183950928877085049273515806496973663191094884369736744066165165917902858427117949073674362746137062893012282794768923397665074846019866365298674392527006397832539780967188904072643492295777083224413373696203975150238022136093184772190428181848574415159599308203636317588343498429061478477130743407195230072099808902789647213147931445696636763337369935704753592195573292521687439631152907017642098471391094322587287578135005479582331836080111141336186354206316604768312987725945048143747146282974979068715860335301035169858078002192770729961350355849068329509015337035946164826023191559774353889838159270189639996534864804060592775670702883940509991880483073621842623517969698269654700372015668975715663068070811944025160887636477484117279818542824172651866738615189212715070386581444287739268308617287019610753369035122841019887428600907778244446053658681946697981709414153382226565810566392872181207022645590113685183558401705867284629459490925895241659944237638117697138270671063716207900140487065123918425604111982615602897184794674103789732995197083078955982425978126289154127081102579956741448238191044339733776623711006882542032668748476092265274313243023902156601909461489805000278115300057168724229698189667830041755193310273760120717755262007077646001455291893409328047412459413342832362037724711558888388631983162673681725377758341085390238908509797281248685381486661018716148239732996240277377730304087894524982408001678181413578627350009678975149154531262966933701262021735741298351090586368968470301242078937506453753852673489706685173105411254804640062668614075073363454675058025751796870468267955423292059483581912103972983616647877305346717769145589521608324089745721629470702392733913596152427264725965283902768335568551672283448897777680526646501698604860909600488849491816535029018373540497335553959797275624821588927672111714045723392466505896430445372209347457092423147462646914072212353854793275463390929412587581578325131111693950985990259277672425600566393785239865150065369711830950161407786009888208569140692147091946671999546303640727218671249415741919927599397045621496536555626974050134204856974644366430002946126341219352439019679139615602011629136782946743207804697595250193431511782522279968572193984300677719825383989159265672093841646386935280208552597081281680671161618652560867596540455606100630458974777085695418432275991058227023304978158394588534596922999600765562460481684940238176607252294338639979971813445169645811318553927653630249387011011225359040827537101246845916156591665087228123399311233171916627870588769199601486842805029013207243987308551353805841344325627541315116626580921565769574023821351004506454478534794670191187475366573011788689217175237385281231719326121528888248422566972354342164964852015461807331887576876545314119800837809631764980949773329457255112611193961942574711560149966912105488211415194100130657742440306081669111906870947411823595224514199187261774551889604942007997863894012593034779825445069656729690038532470148981845328418527022148653566005287468082528485716147920012913424954395735605275332863462758239744870797275721461601049535549932820259425248745875290640133200833915517587146328412313601815954962349638768313344663443971507982287683950586768960147029392915551927068412359006756882250011534371458593956059983284244278437254181209817349527636312425603849148683747560696326246145360868251443022787278274380551834804973552590731348428902347146030575176955259500513715104942133385966615224336125692196773006383206586544793274037455368853697781083562417632029099252424242419514448727687816664718949395590062288068478762448163536912183207235873379458584055490961590862465864986672186080358146022541499079031045275369085176003880810399495683753418064370860106734996869537507418097380023087879116192316550034276851976481787501086068448879125008467783646992364156086520774968374196109194067490798617982040613599455865758879452415600481266881111230841654739312862714933221149122545367092848663954723698209733756051188393579837117310806659212536474081581707854302367217408545950598926421631621385986198068506512935425727450327516305957370912302631706639084675807520104060154949001114835409102925161602517435272289198302543037849882435469776387767833949945140322010327692834408573748257524252670207337607682382996405942417208462428578028074820418934770058272527176571301288749623112127500269132733557404714249000978077359017864621010734261455248767550268884230347494958317659848865489101927333904632046000671954086088563542060587191036723727187494418418047551573559893836350926624001825823742946500971696548055199464855291232346301706383790160249517405625422493621543667602803662698796604326377078479229053820660074643290992500958960830077401784632708580675610986447400632000240624464418074756399422704394730748132313739156036112749293177246990399601287506775821369779923882735848246325600267662134200929801911006372528046933076911719981775526838395022062002573925230407093020467072740244602075381115544593527190577782032841532251653546186538747131203308330110186461332407938540463719302260644943422815274760258211055050680315295017813270161606674038411752828227247697686734460359453257129898715119632658379660069837498581738150879433265642778364686068772808393417389241632496507496718962186859608599518644156041667636850231921259674423179592207291791663427584600657340710489912454466198476485396168003978369165528057674516310302207944429763115225060406843022007876612622172029742947758739627560466146768905157893492294757555732561521733510359119246958546200590341604042109707478218377244537103150115882389127087045327130703664016791216758791764488025388910533842444964581352952239290673953238682329581740713385491609856850248574044127757653479263191709058545202758445525134828351466439932127502490484921166494289713355768295076682448345229033444687084302926412514411216909677439642652854592779619466030091546722574755414200680150135552317717945617099679775212443953260939922315631787575058755237689964545395262564102249785665218185353058432087797649490939799368804081986096207356954648365120438072364693823322862536714688101445421262924672145812245285793224225688665459040506932976116422205274939953657181889506973949225112919806837229955957005635343240205544522689335551155060927489866676691495461804024377246583787469483316087733203140156685132654722536631511828592288040554205199398476916876956175430501374581915256158962797910752370793365966683667999690452693515484232612369474590345263095148641947299517605609071009816084446549299253859698817838102568786351050639678617245935268827104509324705453403654596517655712157082265394160167593506802568378798950057413088841756470088628668615147274531266881907533442157128312616140627014748786594953349786994242631759555704230448728677645889318564191019537858711103812396755644068551419892036566985063536944296702880095042170909928088462904383268242377924962092041547117723291012387812048858822434366227351017883523019085470722930881337083946887518796477372078770226751572554998710004518784420427503436310365575171464748257080315339156663049943506007992274568614783018903671721102382892062960907841702089770992174292750385365815979244654069998579235059180005216137574624596936211813897215922885803530611856303630787993189929247587740609704509341169009513997276129972552070150013004413454309657031964330766447153585622967451066625423029949903063674193173688977655357335357648395551639515714849047249881460401015180657494472423986156349491122485006633376940276144681594739564361922586547173982291875758404141638266059403696309911657883421357797184922360778710080765874410768532031677273028387472731825093809312786847036976127175743661410694750902004504853246668711929088479292955912464420812465060746584394745188451324158176801143583524018220708431630501091705559190907684063169365192480580733693952665016171243977991926970271788948625229907841522537096457269126348245901028395013721058069104925349618374635868447818428888369615419941991762607734220417710389225903065871451105551335937596327844494115440283554773441752993454260311534201029273073914097693726097126193230522001987780248448242165942376621767472410174090570937344433276760853884792826221230712563934587093997350002768655054353354017749804975765432424827270918099958538626605949228683361225839046532401289653841958897683791237957258961625916889918054075855226972969799690073206477633616285017035536069878080086885897191058684733701439591500428963497765609246153183972867817350240950340443249750527119517011623484945074929355344612235360883936682568421551860157412767304924178482276973555885445574967746123614815913152926296179244514421128664757380976041438679571809435973905614160611392566778317998656775488297859789715722311686237204699670080590386655998538864552870072583217877178362210968756320135745053711243129738143134058890321073223137169148581794451547669464819978979210311901814494688975650276107942633416103340037401580468726104031470877279381351545865859187702921025336671075060655295298485201121638126653031975639144679631877535556806629365246866010313416784763117623937409745501071780389427105314652443853881760444763783120012137511654399380193560234905041228564217346596717825999224648469000223935897809860201549810712181690981431538423217590037862807678656589158265747056914699050497012843769538803570110925521813965720163510414010843180205259600739483474858409288726655259160911604076244329392671734548242713450395923663917118621613705507727739414473382392361565996994928772643444130118433391372489342979245571620436294133730098009737530833037604388669027174285011120407310904450150709415376223879000714748334574195473368639700531049877722948887277604513175015833582281347416646795440615316155243329563828222105042560169757938978222920677853377923443694170330370181875143447522587284824234633789362856861241324216590330140483097821732283228823288460241547776834708176044038540653961391754366016464239330808652075678730877140798628397596335726159754928356508156169152308967883927903343096235691832242165103995151443401298539283596679331647337076136853744678259362620811950077003678123825054105084555264047965145287450068409021853597094348606941192615507300560053890672272626921766627107180655864404890330526392666013027268839791024927436525967558036362412806016200003462242776958532806128477871759909419114262833984574515354644365825446502550947391231671719067768079450295363619423066266169763345218584853092161927354636255907099350567515711908312379867035445842765741005276173540969212152471873032494728769178458012997957833472376293525048821585352646293571367474463898206684338915541416324343149622027502372215507474859060326590425811849102111682844208496784180657292933587994778437293512961110839768069171754560860110122933535385174643541994095992426378753681011576693170377565567281721998212416544438542080307131183654751008203084798222757607840464889671725500789050090246929292368937741246448846448181819149271254608210961601722275279554067683057394203026436945683791429649366745381557110067569487297622776202568894865522585734063913442599847356547983045021544263102089745250285067133292408280003705753437486362074971509293606954809972976507859274578209624012543392684896680654533244510349977387112978524673932788059095451132721433817890812277302404826302957162994645353804667267740221824517930641906681087880778602989348783401630918129495761435406108799884994443335264812503094649725023654987716829809966333982202315597678219880557973509364553114095889110410606618397349677796405014356139692507680801150830808063376044724516034085435302867186512603780250714233811485036142790139181552365221164702325359947453104819301331020677455109457221061558801737941377755749334393400918667488811289524123541131418969279604071338624813797389225331535472930385970001617646888639715238147912129034747771748509714228575375319029198386018383332220985857645342327349729633923244237450360195958757816541647789550640515475868975020645314842488224052733510470359895181898008476914794429363316065416532937368571154708750859812881903744753143594549240453165941221290584169118414425652513700753663512373764116948705100996240511903099694020285504930785387114176075779326571698719790442238531280441061354735927360347174343383166333567969702727619844460104301746350718516042176225241409850905743085105372438313661683054273432958636424052596075320552288502169062565683924741622957355230726966838868568419682610920094279887402117636585543325521440124092474425860905255111561497029424588000354604990587962229735703808427241793257124116362038807179626810692657645747460501312066408684255783320413469596584949130375104054914821791622824109710908448983297830064875940206215041072852082135383992062397620517424527547669632044648349658310389131578110227125097392522914588497695902199478551636198482511448181724139318438925540576225605192196476311380265855490800894120353703026667465087164687990699227676147386090597382664019259376116297256054103479881755111718567612014661328746389645428765682145395287296875155190213429805212449910955352494032010940871442107296447203106450308996480708312130246762208866207327064917775061534493770893525583865951068635414908221372558401977299997080411943350428675264013856523740633935557677672475920968630247513739707647821667015055091135639539138113401343059873977129697384188799883632060758030307557123308594581751473472553182250277617743184056008257084867811280513680927077884579765544620289972467170544010392332076836261786709523103424747124978580015009905017578623326943342824465074163444608290718108693302503096643890802170414172206851755585424908547894881575027441320948691841316282643509165359767203559939795203378826316920325362448384702679833496919127750798148204394528155679212726491244396314778217630739195727342249945138464068484097036686621775577999355750163346514813413140880999968876229717414404783610733900379326085552886840333215347467061458209154141086074250659590282146206252896456654886723395961385773460878848811287230422371506122922764800761729358534472452940625738121085913981753495065862419760806076505707495539151161757546627395094018266572236639054958848918552844750825010225634474974529507259935148589010353212992224718452559034456739854847018571924462775776808641688893890961262815490681339208136396806297794338123944420617150584825583323278896593345678712824900741525200779985365622924413478043698575858645575516899705377792496081655631547790186855126480808858450233428949075736073238870540530950393168553754736386218480627685097995746995264782526272061708199233067489813127819584885534952533935834873324444753485543659684577386362213523240132459967682439874104893107901273175840553140682758293200511010741135118320782238617761426266380685651434382102061680871782162461996704481430794379968555476911734182817351118937099982521877797406324077110473123279699424420275822455749236140524232880180204277682648833260621738071347651800097453865026927426758213493031967057543748661329495912343809966595027429520311387987163327805425239335331358307529501454450431702672578881249258262714372323929150443371885720438476369765217428493808613845997445991905089156818364145161325378226269639402143252626943432195743819287866357989861440229782990230002852888017039076760472039104372866383857948550519555459757246351461388409685845389528129052343369404506773179350990709039367198870351975152876758723276367312719138446396584146759780948810858281360200482027347644801555134106939074537809158210026705166491476314889560737678232845947060852117159912991833931693646986695386139399878505693482941741283737644719785639230353447589046878850770874958739226365129257616506349777370081523533596006716423525236586597483284597354725833819808530574585888233508687342492744981148633508070325277210353277207582905338631572857810441866183829430691200843461582695938266115917325702987846277091443625787769471940860461518872396134907423722883677469872554850981659430303000145364346675978861551564552517462160130042585961254135800422790252515866173920671475350028270334172767514315381457182929053250675945816439101932738835167098108268619134899715169698987871345685242880171192529805300367191182087455558790698353912185059918277645626826044394618888912363233358810243678824849371352741188346975954291130722832417472463972444051465994511238375762661700401898712345611722006910809281863332016360635971282984700314754123494752731444023169944628543595863886969409216918751255506205381768169462428122385451695238374211288469600601758801201279497200405307253926986242163854549953856672789176512753176994624285156033884366926816342450221862641297035286968985669900052909801676485840485049507579177009399304975602832812459663864425945010130121962750864564123831640321875607660654016927408267565646469085938466670163875753977038937428443098280421868169697986373117655696858455721945413458240606028166633931564957174457970156521199605428918435457247982002248784142948718897177384139881959103711340116552731956338762646997907347985311610387440381294158020413016612152175819332690051422261612866446998832082797387421590237837969860848964182638243033177135584335247591855403882551972478099970448523767916637234122656206149626813712460346812555293333605994564772328370345034178996625889894062314607525421466668459941251363598808239321570694055607102430964003205296580591813664960392710251955165472381695825050277293950924481579066643565858144891690022958219303968243270083028219977374712434930954161036214944158770258184611353754340646051821397212039640351010864944574881714433425942192881755329056484499602999835152570402374024102246457430052527599434596489749251826677088871280616926119618732106508742774465047361892725037195311092605876172909415539289512275332739575231701940723506780145071627317045226178553882798255679090813363668590242771910678332605985431959152819135839912648944934345100264981714078233190663663946649968325661195769002565116769782107335799919214010154539723902305301950782541072600842069975734666825305039335593220515547011497975504568934846783814532040433287602879264512509614871914364882875090971892690639754286136018467664432507364107626413255457572349157454261706349256413968055697430760961851799607176693379700811698503129465066502431224008579912831079255016627282226382715026141125964166362204854968835698465821552718321737560975738449842471847702437153900728415950300621397581360097660453062660346048561825217384469645379824915654425663022430909298628816802448325356133585938234799660761981446508382100858413247200166472792893652768733757395614632886077492740744517033516218213623188190563650296957583395463501202036505375408426662279725582686357419497848956357728479113318577468121809580046620780734394140070383765697376431346682793868079105391634676475395790932308626439459440361668248952407288250845762442677565885894799838602016158365586987193637377054314329390684803065006419855439803241138478393307636687105669958687294436974323941972326797093169054683180915787429467091361310307205438308620963327325007976182109231569127018436618315798549608726120789595829130900490753787414449820592821950222868634543402953003827574326991980882984602634468615140085375414892926212647256813701417587193175224920251001530938318905171479671444100516357679253683059783325043412296392859547137713565351678190743111176282121533301818034831050327673839898351855418924120258934942378300948592588111512573715539783123761923822181275009148625615190899939339081878030068082509821436928347130120851481468811983114370148940244632189838049380575278499206998651404999144694643870735196313599411551395659816276180203357515273426653851303854509674688625495986905976293522558817821689681819800258716325129919126424589045272505067020676845237737485580883523891511892683843107059181606634815879119700906119077184671719458070957356182062883915522420111317964259123828406490604974811444497918351942548323751057815279303526665260688218444639707598191768759354030381196685675698659856355103037846830514853199440409523096181173219880904485388629372934040850338990380995911687930152730343581571501325179296043764288100328583099526533097204826039291356239667494059565886309964558752973684437394087511935531762958813953939928709214566277403388526693830302782755029492511057346670345070318790460798062602348755486875285333900691859026277187799445169076345349574219707882584207917790448364116221734195269680822640612874275179294967660745916626961680779303978073339910900242749404654151315020902292490865200878525182870586586978146450892596444534215034522608781878649153654600148643236077286331029142764880231093983168596455837835342400782398550112415879845699070368722394925759421782665650409335697164101097854494201740902523406872916922822768665435167380810407189666009662039401388215179990053357034872571056143869183589836097592326181222415736216519244836973158183253933290239334487507434731313112631681965261658373325508649701534121650231215760382670857925290545336077171575697481964512907765458719171555955633140103321639036390175617400956657077440550618704820185831474911873132700670629276947414709920683776471251826592453190879561219278865260915005637424121315082144931482519326761611850903329965063814567711743926288134696920476929363643537192995051252854914863461282162294865194044125700446861906789269722753397416293723298969434563301052897255647603764626952672418933193757767909110931293431821049841959994738919791835487475934038537855467123160820213410047018561157299420207301975715366984714418625657534343011717113104258961878318020594551001931837313014508456745602418003868918220010227459969839542105415241335975176644851691368654959122170304188927393141517163884783107564977085646912624362456134284464081653855241128003559448418745920123062067212054583906283718369434254402704884795344012531454372891249895560951300327684787592597234392319309859764362998015278569070538829756213958257528405042559751449767053300725812391430839590197474414071142280706305916496586742257844784601513365074673819643154379042870977398197384448938993630744621520500220024627014173781563288270261993071245065067569179674413702167749997005941244376697783107727011837054147038120452638870759207937458666719041322351896903657974566845667926659894802703136687923989893208629513192220559370342966440886085426790399174858299731004514678063455044809248141800141516328022730462468110940072621957487575049687039794875212109109844159606705416852006717932395852618162078957147679027864380483290930658655177707059426396098460369325782964508228412901785515927036802610655781116735499540154773060357294026439501679759106935135981188003067414964515125828796664843096963923066295173214228305686414215817479509706723085545556636922873773323254758766825245467273907145857770936443046703992721329617428618709913296746832097130689049092487937086495789204979627702037201799214134301006066365490143064154429910127139402567173162804710430303035906006568615107333186228316454188629996081066960127457878075045031599374029961461942938756323648435557516491730678722631705615017930055305103274862443761763888366585812081294120187138960323313792959537244251262369232153235886176390311661116818327401713424149292765949457056999794241615499211992028083386053891313829650050912303872319391013925705096685037109771389712399897703210337119812452186711744443469113008730228690484096790122291994026943462995413126605120038140555592681676998932553238318603162340749884926462657637549877416069638442497920304118165273476578326433201173284958373365569722425810500180510244808446122737538304271624547390587335086403681233817535960335425713167644579546615540900326807386618564319117388766424858870300366101044450916502814819475698666908306418138359535990773518763886483494800816969802469005901187359995938825244938265271221694196082327181151508692476267540238526981059896633853540059735025922878634872456942324695557638741258724244240772203381633216406165070789560408605227100637086908065453090922061281922418031372022548480026445040588785240147664293149300446739432488048373015287780314399984763024174847607987218503515824327193367797901874760864228868320360820814565272571422206784307034976958105353489766052217518067178787402925927674234296027769471393620989409388221802184243664532552059084578216454135542842808284807820443201820213653689494087004194332834562795880119989159683262954643075651640267477348438475884725189203176210479769645770992800271817884790355754033603471182481763450141933176690732782881837179659595833221174957474897662193627389968731558263223533736133745430318386556981707237211068090964908379260378684379344618186388059579137541157624141280437784242307273472323532569632316527624057574435956587770836448158828257539837675905031340656518951830849606772743146537147872459401960224420425260766825533253070345506897514333571284349854546153955453547225248985121785796631761093304526213274030823923548807138497384663397175069858009785713360436480071388379442712859166535050242868348386332458584483586542145410153655931821237569068896036653500489024758354543884808796799892509287354478981814448070667133358636211879139134074742672326457341709967045527320889758552670758211299205620876255911564641383346639502134000558690395678933321817608049600407066388150269266626180927743948181264693685290761052712743702828497224162994535856992585759252981709630851859469334558333180726646585468681356641806145516112211474406094279218013348359194276273336724898231127965393428511918176427783479454614770708277110166077380468442626382413164545772717065986113254037259368366632579157245601670434916792585489857532005775594319026342870572894225980557454013320230527683676296537441358648535402937003879583175640395931894379595597825959747474329806182525206786300297375260621510959160640660087793764040706597131783617774856664210441548262172227063725408500606432699884997577743510156226708532594299169177255731071380369387874125109555346539160877538558868858816972141811034979155824484640104763634044065702863320958608056553648722748408729906657075364798538016674446385025632402549043076278784658123929117037006759790102967801452997556198980321370724999850537186020052914086683960383042075103426392187413174261227896418216295007033622074110652810600648282716966620761449620837667400784785665173069710222317136696656924853572564105878908336109194890068777678353062979803760592485835101658860643956508225352092454415481512560923474945800054973675775257012035097538060951121162448125859958128909445942531410292503739298922670322059492718578335129225442702732257959798442239586981751363799241515806206085822935701223735481700395264110583294402208527641157931959245123762347123781430084561805695668252632535401527176452653248700581115050041611255155131947021251193086930899695443153470927563192382204663570078951649043181655080445032521019269688228774175872446287158787922824712665892632466989138979611129958134545278050004152025658041435750501758752607747100795847737204519417544324867687955210146972672485433095360200178713694134290414753602095418722590997558415981080241071917120087569291721520420675961617348870008292105786159619344001744414195112466387878470976363650688881585674254778732465138396301230153862756645520052500582552593467325216288827072552199165309661945565786542824796063836744220633529857297927670032601822374071242925817295941269180385243240203110606716517978507806044240961741939504946443977372710133136157206418060553241932569416560959789393370422223940270928227053910931643194332008219199815254993315347120940562338582432665380480959868533321711992576349948530874600387733492472082158166407323801769797912354179296265268313517861916614558372710267524094645763979572027239870187615886157772756690220085278176960951529051124478785747781118749485030166985711827433313929232314247539069465192551265697826781483492448446247125977714092124929759970607004580147279640346177707918265690204422542698497724749347007134337346676082626165820079173600023230605526183317523922453086228586991232070287258559871507749341510630584191067602459296759483830847369534664178199810465334120760424033091857112365935341918469976760319164502087620855935089406949248184684263608655363480716848555555735960928356417159859843125562614729725616473155083230549615056901678903893842010027657044244358023824577477974199517148933008960168721309258619935705115147402412753628630865825257777383563825181198628977288466891092196146020933586292569129011800522026601630481533429807580062206746919132435301769677386341617961310934248686432103870991023790714837706601970979327731475339423987000508450868125402105299778422939988835363778596974519982304820295289962110620022046264022769605846226724548552830008819732963291374403474600447591794105782355659709024790842093656985798515666968282530494163123427074708746092932385706629876318563872920820744885042713234802553897037408264511250069687549944868650150469256479826947153191609940062037749235973376237676754995059817486081665453062704688830099617975880074113473905375423981376084949745978252054124111952569513788952649363951896377984896000887955978860882111940729255254822689840397714580691236773947241888521137975752277893455019111550304278001195734153868466565874795504708946123728811126457174744541936840133503827939598573428956581224338697066369275089705132344586508865478866695922794032542017120437441282871736533709847324627579485147316749122839983822389412881140519506377425780726406878301213499491201062871772288333449123451089235327507468918406797795913661979141353250262526935861987174106324183518463063768545571231595393861483429860277140981039837781347294849174772800161095711777040686864963402536764395090748162959646679522370040105788383619765005017637639347704667712524608035217214923823819799912278820861548130744594578355193036392040150921231632398885128980129707141014025038233254424856955796231671765598557668752854140995129746506813128856614099165808541376973671197219638702563737868623824907374738911498253128103792288674936799684776288189803142890160760660540243688365896895350043429167789316798476776751137825663576024276000478385954761525742036381725681475129130134710312142582046075825929443383781212681900427839197427156491288842320880152667582737939794237405803723375583675779808129694913146539471564868087867274068631162369640459047020432353511035211104640402835842822838674800478661701955794604348958337932824799002170451714210686967786045925002623241078322182509520874731375024669301922725381565609902243381808067262899070860127133182770591609263521170636751191520541789579384827382287992715352603844788577334920460615408354933310413761006270020404248390570120787530251211900742292969706590049865625293688029867779418072931091646592907640402640354349390388352551789054159200268065442869415681729017329011119119489760576762624799205653894888010643541167656624060093267658437123970427072311639300807997584117764439280397575575853051865495153212286037474789769779888162420054340111874205077462413232119142059009564952654356909962217398528069797082099717769547254234852268328108480953964813414209712539467038778892658919476305685578883585470777890525051542159899662804825444601570778068031810335170018152671911490642565472789187545523652655579325577370948471924537453696646877971075092342896391958042720134147769009638438586364094823284903847357422457514311987229116856585176005189203937663309055796932119604118832134132481116115765710810229188969396345714166973884238723754133025233453401481781824894686688074906675414861726799487783580158980891590907300702378469568312332024819160762911959655541548053279091141003959966504150333332488545757057725543573331421123659856200590118724544454677529628152933792844941838047039380358223766698024564691801749922628267926940410615266970101738273962627418945919492233069049758096685974923541031993239330037764051498007621996335398925060981266137545731445254569396120855973745745914969163198206944479942535687039263769314956951231331562340880614138420832994780038903562326327573059522101010332235993868460020308283756380238526959788309420242353731324129413894636353469656259838206225480839783143622206164678477176506156016472285148480855561409852189566304545748625154596427826987328277882384044334787793894913520846334693443759277873153608170739459745138065704439798604332545032715063169020395069798491301220707546466595840539410224812338625517187364275098046857197297913057746221656057229842651968102271491985518293955842442327715802847214237202491428883383973392811154791805392560012298097918374530204887375360153770945787217215781306591686413247442448612557510182975389025738527651980777703793676644424902510318993372043404300010361156654901614372812420801934935151784371253880557134673347676327639644290692995195790710758374277191298061945843864629411634954770865409477617636304082395258061480967165983038868209593514528009293711580058331005528995360696692237024294059540183231813253781593032133041618791746473191915750032208502494060038186329032536838703734002063858538084005969668656509643805324240388709570017051678344986162068094984035754460415473989925555363818508540069001916779832457595225835712432553934722281911545047682984848662606385293814890911620330323336201197722218187127362255721598696563676630950325708165921051877062671529388625985039900319058021559325071439498997239540249063354753123333348695057210928238987049499066782664303349166289901838544125846523722119620866452082904661693433245553280521961628773196155766592905627365474082213836100578299306375595159609203041015072319990738967795900250872584977776028737725279244335031030666129689350302291519339426633434634268206863072820563318693729908039083692991596532910803026824076431478647081451895994391987302130690810755899733804496564691569187575382037331740987050673514809247507014591318254304500632641741843388341264706228922110637176868514725781661645596745708180807752921391981060064507352782828138367440953391115106122121940448097531002879894025629128576266689877340985942988616538259032105523578752662756160520417686225921099651114278683522900308807760491010020176442887277335534449009218247796901943550750946440513786495334517735199166543475064001996035056688904784924425214374299765875791383070989545941889865251197679996699211015617292260699785623626185646846559987435397913865043697344019351291297763710794983697884048564113229829343964619134229755068726870707761542006447426697436594202242313738118172349297206109144383594226917748020379699476994089628758320298169936886922506852661678463256473090371221714816701121043941990067607720485129715708700282648657211041645922806553834305234086413907966487285097920489315166649889979220773849153738579154877619293801486237901335452119506281617980643914584893456852831629555543913232210746385744434884995254909343785545957619798536355675052421750522800441094142521044423527808198410426621517896657743858165716692068509841807831008825752506687877501480081801088681064994886721589847632688800122419442368736840837756752992924693669964324573320578011540666900764650613970723321986898202040895385632262954157677852751067741805484921899334146587106519582224781749902883522218382987038116636938790926593224421159657827243852251777222123272784705200497844608668754771732002024627101393996237463435366295259851886247763100632885735831864480343060308718532768036718540760915803343540356880021077429040204493960102477510374227167595209661845005293513851821697387993938422849567416129541574312300336848320190179388107938407748915238014232204437217708184095652815558868107895961461519739563264715791474146819766818040386307180992419311118541898557849763217185447505702522242322292322073634618164397263852424713539390843728947608901215668420019940783610845863072333272167974182175979558817170813909949572414201133348787439198875250651945979877968411630141939016985013469812897286001659529300436829181517748944991722528523562268220623121986194803128559795795999985311233698263189295035522899714745373150772304883841945960303933817400166785739038514273688315412262185147129664616640251157505452609261047845598617435741748934348683031844934080255415024478067657806733223779807325017546374903762430623417156343015925812139765596233466293666241305726327453115396034871832593379786704323048273984607208199014458541973463246531501992914428010177433772734488592352692398799950094206934625309394716740639309598432344937558027811584152157683508841056813279988201093551245839500941352354169924874082793205594261327709907639873737197673252576596223806648242073892155461616897024024174126029456329685926099961331609723598948788670588288437892876166786337356669254279197044257149227612642195375633569717794269252323790459154499981246161166505264747791785639179289895246555195750772240022819573435735443996543915363531517141067612640674772462697594291173023536269797820244945444465235487739279538714706740434420651945657861512213808256620473606638783994806251425014371051627576805381572200494618217400500634091302820592899016629489311384432471802372843984642350539770363856674012832317954385966674224138419033012279466451153598522501462070309496774108895481011680482744738099729585672017172045142264895500857760307014649108578438913228286411386095359446874905213735938167733806061605992690991672464715764919792276488676908540600118309772608264471692514101060881895193068478515792417160934451913889668054405998055166655478658586915969338353740061335146849576332937168263148884177316837465004169587868981192963153034739468749908295979283512128659867415898366749045243469123738505180678085831604803096598266269507245124778253741163481635700203283039969818140804857936094792044942008291203019173649602056044338066472656628621649443691883732448003743229561476198899267624872548646254979817842490344251212888539620097561746560840230331068019780242490652880086029449621262521014049547049327410099764611754805447926130401793720700261350204627417583983703943321280913753782528658689688276927037909363086580349990848360178099480813295399579448032734782847426635061786111462983426937682210446933116856083984564672651069448607953859430406360547824332664350540110230028712058978118437402248299862555700811280447420189959535670989258010620767333548365854869719449697784388418680959766569132657298926736527397410544111083925695871598408015331378205961812165028231512217964789445094134709482109438955282687973643317688814342283138857181185269785368959479685704369747124648795320973147314960833331844010561047263322332878461143594822621229081129211239671120627829066729906014404163626684018964362382418656515003734112182808489214174412750303457089781967674444805712704207327052923789452335638701657606798011168283676683915289141500053315548144463758969534710404043777096018447386535981210983378119465426725348567918553909176432378791962513965716129775053134636207449654860315072678716386092044457306235718393381686233088212106347641848137475361632950012279736997295122433330418806483362600233977432317949874664997114991844071623288652975777974582661240420865129685314169802731628707607870121616077588243499966877242510399918941133847038658938902027317387683360936592497107652435766492697878783638156191381699680350227653470028514053749585100693630432567221652892871076928332619734412193008949342307438251192093925981850298472616416927494386206753332462690856806526298660167396834693812597300150291601303676537780578899538585940830834948046665611441116854258125416330984010687256545277507171650311121821935477339635296843536315539944301194983975417453501957089726466864539593081637483643586234686241219666362578526283085984394988188763393729218852895854418085418508630068624015249545549092062592781040138532595498857045824262799266817693615497132116577222024512582875612611476704089916253453791939238076135895976112395622267536695419299455082145248020744428686324198871761167507287555644656367579819235601320428033061440865364261941410028663081679626048528859818874796511356826197325059401950512228445974172870564287238952815476138422701247327686979795345808205837216394118682541072354415906763597282158979087750965917941243879597447787250590696992434775389811153212746872950480948586697929715844994427178484223745021640364592118610752705244808053666596164309599974855076574053090365434322605255638425870535473550767744953559552867387399555987875189083629272644678564633613605794862127586631098616053029432744921831311543164189460355088501961011325568845961455500659174383009867361921857700119706054244351992313163240125347937864315044122641739026353097711149585226228683668559470586202649981959736916017161630289338366300714493801904704404936430310284599265897328652381309626859373765425061092432327227347769691641694667740960312769249513139649115848821396700306900680246370182390922731676534041093623334481812860097139771268395517395788606016315465607172675093346530866704390600198633994463442204568647711922424060114138395616642892432111363030711122560945076320765661855368507452258395262099659467416385656465438616608689397277872167423427333149129351857086850441968001863963727407415604650972468725656238191234862972176459062636121476248361630214237218381670973153797967205535629972458100655706825441416612553613065041087220445749827830913152788905694605991240515616712564188045719113298291475841220585973871113272096603448517421181408422545937135642257490640105170955372053399446469040022903206414756321175893963539335683846886991241709161427087187784353548927906342800654813361486839510596606758580018358353661550647341824749880601532949621966691698001596244604238583301146712727208554267079443450075715695378437265331326735580014879683064928273427002694581119647609932781464841876196346604318605790506929770449098080646080513566860950496611765184648487172851676691451691909010884978170508356175197182380762913913556138979518428116183800800794079123133928221441790941217128876582706864978898703388168513829549887942680905666378131119113802159161323248086435815065700606741535415063918577798269447011741676721933100882292986875352226040755885273612859960660118805359565963474778750988933256058515468076752205166698394564532542193085054428272205676341247882128742502578357834126915778490964224177040935514453105164457074044819287132387602234745174897488629053147870460429345342957509556346637505737980683452367399142522548739787917229251707972857644933533798225878283689061107705850131488442821011377162167694401172056945566211183544458806840657585674641685735234976448752483720630493508051920484179541297140130165399687235051899002272990672206924249601183172122998512359294633065903522523037522654094342164792127999179901672325918679808984399597456763199933313968574817107337799631018583219723686697289530837718659781332993862391960838352722052413239575782907315155528294231818672699311079313229666655934999184485944288828366668642096248535837667605328141918123834722335061054057406607895898776660022549123229435763586550041342324094814531280649677133826541279479707449722908061465817688407623292303496622361335321972400188139859326806817340892651788954448642297172495221901018275789775959164738861843565871912210147021611477466408218911669289966632674206165410099527821139215864634092978992546957782932101333440276018374882694834856718630449362749505506240443795241176500471248235860880007142666138291842824079206732639484879589046674016569497796063112725465573346966690862170057977236332571785304168356343884437301678532667700344875306769756497527213656153005535083808315922797260858716259564148012785458154759272903905712737203826792741257074042398889972164389863537409288574743685157063197809643824072683159423194471849541504289130300377117161147775013759146942148917679555421321630069878050105473052532800056552594063791887528226209864027215004683544436654279328585950050239007778886001562683879456028316989485268467060637638270634785678581840873759823830665664446646487475618240046752875676836504024577393547756595264463772130433021370639804601262405449847896660805412024787599099228717906234075738632925163809286135186213195958668165020071802846868138142540167510106165201737799317652302570644472667945808696154662203207491875701089961636213306151317700571774519043249125949951729167183591279919959021187463785442347287541567021704560810870663899265444559295556934700248800226080314416499324941197417871162339897029907769721354217705293716176367721627346580954169201928951722410459487481204275222951210300849901155900596210945065964412712194026118417348285656904838507878550634991884868908065625808129083569164802585576253428042776985169993506457652592293692857212202634380887824452136824157616507586762311657629269385924174799999695460905673411102167091204080158613150934020642496106749753037326501251813922339647403693263334777628810263301290024193166011679289895476575904382225530417217831641528469350022986861490487382491902170108120717199106850077123774802083732001993147965887112874169630147452305938392890512071216069705715751989944830651448090111073067260939507437388204209480555884241782475907523604569247434219958685266804959683391201402463722685405253624070978888207279121742272128710807911457843728590701679309090059704398011674293766717520460626789739508256662607761529552416389734622289948187254754733198223848715129599871844285649073895244209201672068559731740580376065350205797795046210071505362004605986560024628357280774215630151579265719559903894876528906594409988612559116075373478004355910396739388903836665696274719050891300543759054639954445870084936555209361090593733261061189844527271401257585798885088512048576069584532270734569937157918554915460215071494473291372675098325068643208753880407586441765436924312755040818893999641757582905974149835888266545948426985282254150733011046600844491003040575857227224701081787527953804332528985608081989557229358429779792829853078049570271967788388296193552519027777396582446587794436871375058587862825681038572909559361415866566853592064857998125015978907919147678667303518950065981020619943564205328992759685865271449307634322711800381841966269079931349115692460532907088679617778113392090600005630942741934272983604713950319713606621554032151438062669288002240965921419774135172211638162188094604576820147187981177418210547795658366496660160212853159886343216717650519880606648973232110702942027596708265107864959008444245975879881460616067220342914126260332239405398889386582543620299698944049697897175821956308784638883230955440172632419908836050574079269569379014166352316783253698691561868500388361712094461181623297965415274482187687601461415944391336442934845546314944408763778356518935696319139578088648872016835662911492034289649975062562961276634638124398434105362465009512184075389745476945154331491710029970334053301028104158666800210748796087747374421270922215794760086226967517089983249217974818021901854288611408340892014006096571100141806939685323922382293625601406326056225048374346538562769933290089640571664780978889121217611790003086642340355644196724421064540255221865406384651569164888502068503171757266494378634176534774003046440971433247679353208246409271094726272351942915114743547393305754443012753679968320346602800675081695350432369909692357881041678646757378926007691376727906528887070116124483884128247970381951513283611615288079446713671709824974207056875853647550838830678272062740812984206769731386582952322682963367561285438201047745790653095790855326722268943657944355447675209847911245723828089651318783241071208174927584723872286259641411926728603596853702446287715767194272651261220661142145679742492042701471118849714720059948610361947082551756055431931673460842335483283068330074715234415477088429736320817205719536083079235168556397836294250868890360712286825014506546494923430878272194999187150251517445719458737661024736764203252728265749589350996139280520418779703963247894476875465808821873132024915950513198959300180247386413448867582530298502908474811774488794539031508709175809644177382867348371692965783956106665000050190664544524260646014622063105159679732844369109124466627121032856452963112058999267912325492880473426391506981458797802588290532987356122635658754657680103024661363191404991674055202821375404793419515609858667061407426464216581399655742838933225038862828260592626178648846628182443708523192618372977242081140573093669870117083849844791755427108351430815059028138328317748711200000191644408692525054498845984006467651825019337000986132632891113500232589389530295806108965031703403016901301630029786592398377156384415043539963652843671259556234136604194229641817695084345853892180501481516621234552893583369659869363609377055334808085189000518658172421484284856880011354005638122121929549326866511910896273490592073632464302525872972032708756188062237320346166695353627485604324418627678954415686793273669714670677009455051829005073433326434197601914261164041607466229073690530759866425119779278469848518215076653768058093318583252391932911151276614727607812192568278476047432209982173231746144421193259305098107040325362459563112133577346902449234630939264231675340000678495514061208063772123278191674444250195331937051280592575913404161895975349074498191937722798370718504398751265028770144429716120900493659199828857424843647392682725400209248988867799629610544030165255154231914377926053743695304012469013630565429850775110154751483273945200137096266327087035868846831706042611600495388225665067096530875444351129001140167437074732581353723985630246086228323389327221566302056299740146013399033703009037016445379594858955543085049203848949522078301522215931335022509060981725341774626844189672339363141351949932129812196997772996808205357489583977758486034588684508669266011536052536266502867520737086569681403215262934490838134042017025935724305627968565556705944852455993700328495696914731993080050781464782890112955649534277944901663057579055992730772590178746813455802101518447901514194411147057371319653779595614357548046783504961974472694053539430912729856803801045588536130302580605912586431356050108578918717898283578399392657228558238593183992774890824074799557323058718353086738374497314573574990343923517828025177674219667281031909379171808951527756612522261794518555365225657111216668523397873258353978046846394926195256873726764222354974996057689186882666301290612087473429491935055876474362717276925545840210500118894458277616577307778716414556329015792012403987206542448944970524513190617939649550939173970177358998346490642687154179415983444030211565248522661584309688586897578024403383232635592583636623356890425973780489808779105499379586564374296398722321408757776555894888007458733310738523204755267361227955381483961669627215013823597509545925252328437813534421326701783607792904521573869333526301989093680203516148798317704228775421845993233827252004927975789617782909985255080462435407690557272203420584518783091219197959182482173197603002735557432189888562044078771810249750842441516461645655182582808275838842714844456607759305785332352150397418244357780945033826187662897688752712197878367171528008442520595009321075858134381137549566105693413488713157762807207764394517542003137372013564736158160686734018602219677527198656746500661369787206443914858709588575944554854147594954070508890425557067736707590914032399677656245484809299993237649581885292810246047125428208406723118292184876964609269914092986068176308481167029364769272410576554203683035103253234109486392538126940519901561464953832379584981274336878496883716221444989669223158958103523060238146314534920720519487599789102396149092596732328478168483911533782362681343561439277260118420671037327173183176329639634492890904916427620021006987950902173234244789697906041096666231236802628099293644124942453129016840963325507860658684154184772368674257638254226265535809841580449035714165069348807906632830805070146688426265093035945443877207348799949966552566092711730199550594166359472702635984231291116210554815892296754422571669494463479940428935096048133281250443299785358978458198302596596556822815022040276470672792676672473275385196743200965915928010054130646644069765818903756522451665823955782245745979776634388825021039418198542315013795199741284366092130531470429675870769058050427055742756615372336238066614914364749133201496904744074218332137581162146251037045319445395075323104028920756725478585690719208091393637552368266289187134631481120068555160242296263776492322215677970206785583406546154674065186748949263978389925804714618541962822510391705976410407917955794465294983432966338609280439416228658996145457942128623876335607771223651742590505666970379724980155457117656199676116852766214791929509857971299932583404032215241265417244592418152181151139202868984330324131789875926545502059541403479124469396785954557327213991219057734641555518540033621425640954795295522120517350889364048109094475587019949731317320638740185569236891878722944004641200440965867927936499660563342194550321649077433364921319135786194364578759990795549480854474076757558002552440411417796305665020390766806619612721928816139621334121673563864346167002966387881678123401496876069883110718071718865154008140173720624659002261416396284093081275552668768796057203346290444910675454681258060655443602425225855838801695384755984327270830782297145499778460914882510600138835199553297614171929048282442480003736488551571934228041781209958116875135734143392097306435309133735622669046282502460351973877086528947106485090533636546826238876539138756420225796020011588053674551259526817020832026659022169543234063988162999896036656371236677943028133357659232945666878341215239489190425026897352352432043208697614221799711824851225850021067809865736038929490997594212297521656672329842230916643686387422976095253751881076311877764412910754658220380872299148796318816873654451722972995803561053662949462856505048436750739670996645060685897219273271854811269061546460648344145681775750801102254674888004204843637473921876362145130762546113653539854464268374762803815886707830593713162949133437340137976168586355748132686698158713363390219237814635672529699490386387002792343363424803607795457062084092406801321388133613893559804306102652556266894646058251135522556216939178765717550713524057166076248006856061028085035114817116602734706534572697543221695411254138945837465128306640230374618725699586949197387910619266527682168314321875590975981770378983177188457862920834509580898506998792029549156307531580908187115890264541027621709988836878702512542818131148387831906130859336713197276259833614314705303117488801170503403148264827425106143214006820469086820830674628912264366183811920122625581010788420652069984708155167568285807307097130246540886305367976572537058744929134006083672207793897693763592031141309603011176926740985235863621516293962897521997179177594433509692733583242215186263913811966296368346911218783771247495620150249696421636508041040652299078390512303077777014219117554804177082664675872474374353119887387210914258161366229064283148542780987300517695822877302966816263195074216361222330686646296682045827402713867927047256152211748825767521265398199818912494009533167955939969284455508387246663298577506478388650545627802605533286831952106593391272183770123703080302868514601576539024461828109109285563748329915265129851368708499152168205607171162092354105130687998398811619304506476067998857620608028602046161969095735803139562104300612137436881362904291227156161119688059652174113774605637249381402267935342049911456017828635321594436255184176587207941912244469530129280824511883077330941141052494376170806026653013117783469706388428675166592680852921146185846585041936543085555179471636359662114022124097421318691005637275760613115784256244221268550305268633587078728238879536397027788688041691438884875060228643697309816190135284769285518937203064526417600692622581233044610348752819151686751190187134939145842722254923978845833847384668875225560408112109283701113434317281213576015415897432911226566184490766341653548242764802529738541955421000544881129316834671330224145404214893284256319002768366611155674994719570154357661165485273272944738746643465851875349044152660034425740658811082812916732457927052366468450802561063438142252348333173221211383512893743118009811607155002350354245908089363309725278018329324954907760135964942094035808481009871489335967957257576205429700952684110362777819714330953411781149505843495932306803222583064806483649644182142889664653926427353195578898423390302705032602338521445489285846278147949085918761711764258854005706263023794345086507701566294368509556320681991103578972364453077346085609655011267765734425029143312888026136202296540856333409403124963089368490326963811158968582512089652915937187330176262201920410378187638946453859527159436291281370467989691249635179169653982504097291885525938066080331261272378025828002087252113819517033625890722149678530920976516693775972588057314753787048096457084212846178660397875678148305877269098845748571738893817579629731687983134411459229750463513796273616630341864113461818617038788031165566198939776346276198025129499697509088657908596942192639980982132490045159651985702818094838377091624795557866690760327177612179171907313466055540981506355432068454574927337232428778911972209033056253545401818582720688304705321481790644530474210013324439366621006958156580502390745707066257424074070061008700630026014706778689366420339288826256319661636439478683292082951313366007450270539197468283783699485205862628397732076111878059741487038086508532839238405467129157000088007520552031568279270316480964614328677474755573712330284226137817111533444840843175492531836443108751706195893154736910956283764126502284510393945540044220164000819099941686004026765225450926630059784657929409144114138649098700746633852779972109275351156349313651534203514838199575798144471734179974316460674149011463318801486335034310487913657378450614691599274991631201273191218276154054724229714466944032560296512890193573364770623659964060346699123016515119917979719206487039226808590609155200658104678543711931603067799347077083039384766506781541224760430231473938256343176707805716550357022330149283599944355842782984509577487492723307554535602596409478960242086615190179006288374825248973255931056950658927916578597137193388721771280214113938000801658393779470764161865048443690554871055493614679637284979983798508972739147497658073235591642724395026901688819116183447050042148858456179966473541629864443112957508439683214041929039249109968212682224904558982308064310355579620042951518433846476277372098662270841604147758135259274750266028544904865984788179523352385862930906105052387444386363846650707411130144045720001599371490295046607195168182144252854107088789674858970754821636050778364737574413066847967746690624200955496325793386644810370075852816922797273303908668258832102383167140515605995490947202252616485069832611117568311075649052953353153986740534567584479609388124254564446490238881545540528467706694349363435099832730337698422487992730246831667552719239452489845163360511771889206417890515518694181218744999649547355099006495906503925862385328576453898586754115041438245469856913572728441174870987357113512607857259895164870664561241583246214664795378270952545744797813663281868964853630461608961625578894108169961525365142953770081797891710863223453326245323812815961478371422563450648726191378538636778691719227078057875693755741253981448194002026779620486615944474090625189969524213182534495390729556448684626931020614885776118747421261665002046874377509197547395415336189618530879035730758283296991920554138553115701730225680933728487954550697476032848226886600742398034086016879565956859195729369970836804419478710682244370881995648037008144173153114851514328820443220707864446302709822909789505246334431341311969199787756070647126832627293651059675984720687117219289396751720369710973695789693472133542731609944904234674053212270796866027893005321005471654210097197765141661131895891768190110587178300203987427664774068783898895754718574492240523602947791253309489259782090229324169334283351490786021633181432853768966864875400152841153860417952973043621795799129674085831805243011081609559598141630081856072680154819014084856292616076507754951594170514607255821510009770380106884054711356473990544616105097845467590300149585376351354563198360672026648584265096818799730585285398176074426290336413690214540496835516811182606330592907327762446042027821412419262739543125460740517319699578229569472164080222811623758000484020739043142478118468745230446491464697425773196055062742242277099551628618070701697269998609203648223584147222148813855322425515771806477827537604777335907298399193630580350553384378149346669832965270582734573605444892517722440250502011397580789869787251251158524358622575001855592186894982278279398653374953234433664091165160898678956861927445268635934183081358942760527292551042263369793724027820706962532500031795406908226627825601972531096689353633372829809392700937027564722538431552391238137701207637149981884606191187990904845395100886078479773362629160777795930444154015349899731659386895839705782222721687330239680321197779438769225137689113837578259175029883907109856700014542959341244626578136757871977789412119500941251985374329916078190131531821098605468242805505239613686250600797229306100495549425962858886295235174618618106365713255637339730641560040235838945940326892625661971047013550918765831329947551825376126443442534889989470114533153316505221520073666769969548658819617325305459461723504707444432040556859935420224338497742696653068493978895858270713130934154461640770541606664120850318917227733436854833133326692521552858271203787635531828501534003773755449205569960262143060616719405735948497404729132962160842102683600008698329245298482614949206183855218329329909076878270387361204976884601725539667946682825442151581779133339480397683584144565240228615076932409792550827259324976042441835491760761026058580913091307955002707424056476087796203669827503210932747022030462984778855050977620822389271565134682976627399662267398854621328001884605501234600331413489936319068630795639824874348252554282978982050312653820222241263857687961494959031888340589807791243724057525013440029466184775149795036208101038046058247442607093061020236496478503730213580504106458094148251485087202923876100911270791767916195888623870713848120500666322381885254657182638790771751333400237370977221460790694375584029361646737822668932134520645491511082666236439508891983118356334020726540027097183181606239897441652408730390132556962363809277401422689974095929449929291009207588234504113308252669174276166691175819870287070599214757950275343493747820660955369752671108253757110665125394075430726728893969907191744289527055054607689674166542875688807096243194741100761668779075566722893445496866785436854742144338203695202340436800232649638865190631546801715438167371676336187505981062499910775663452889984279327228820839911818206640183662332696080290144497101387784820482903353032634783625284141873796438447370962866691659636749301091656796278602288604723189120946076473568939901658183300270619245545113419964781437259948595692198465135970586883490690617001845490942846242243485887410175544601399851146783723955503268759889639416563708524242556399493964930979076237817876207076314095196860930318646616426854670657260287375033394530753533779530829646329488992207277498405250592776243651781987601593910660071878051870329664697794786998946602983729619239838597772289675366735367988087633378137856920277619898274029939098638478024381841329674837292364963272198323029101885752343880039214412709325487795057619759258717684670156748440121714267887632118200547037211884160176221911675008558092243731478043060793661714445717413061744609024875106040831487846230991436751460588211296060285462144846347699122974778139259769138018023170744655012583616577926096335298762837841719936689337650833902636196776478399023963517482574106790160289856327107599324636896217928336277070094878259852891146496469235802669802872613538087597099027503903993495194242462493056135637338900500208413566740202637270080175563439491737151804297623154690753586313378803174628741631119762567400149606541346762077189072632402219092592579345520889844806010290061448080535072896236799732840499971329018231445681654041577558736874487446563319764686660531558387373903616372629178325681559685550124010614875376155133318668856498390866235027810297797221097119909329791506397723962782309061448119399507646564204469865572360482844123623099552083951697334504905596931535691930679688186400830234448743947884762848390874228705693993084965757233612055411761451632599896716672322209673405664318082482606058395536357341305404402435815864818155932834681392576035444719584852237627387682767422986908172879166921364020404823670962756112216270068989482619795976944579436807777819516383363308158576965237546836662426255431394652529245635925078682791498428940853626069626179629267666243608815917802829812109702492128670976215449550386816322112772230636351704504490435607025039863802707939806331614219109834604435429059911088079743684422611715745314373632891364728608405422439468412237221249987512561182390287433704045513098713248170672006589212839642075959362908975668614793285647356236812538605550957415106380961585755565383684058930022627713493964415243964302087217206506299059610193692774107143069903574929779394680493515371212512666084173554591553130431841063826940734013912823976033039324309838273484313087544552722806283708781650869864287326676147442113838100572581867769991620350966808393910167299072441455096976009056095540517778153461928481026106860084288317198876524296341521061347632565137179069101114518966039866282385131477551001710612836542818973122178574303032855522850497131310089146486690609843173873830240654044411178597385148469089431342934869085148496938039681528807865074255994288085761145431297916605240507393922923087821289094911965900620163828057455228377691464348454005438946371988683889935455162419752763702445039850023349136159256461921513461809006015449953767207449026384629248525874854347412308385265353593040181594205702059413137701911074346905452627016334416276250173816619573707224757494744882492433382614480195999305284340075350710924841053325808183708974111176828992760645937971084514060328867944063985706068645814495806042399549930206369230965221886616092755016549397471897059321831083078427615018732192618167122943367215529079275925140600918316690035154124992955396849120211110777193177405953175399472475206716434035802545606494243995863780746358601095620608988135504699319064507990493620066226094544771367902575859500230307479563634036629040214926983787998106821393063852875253186281995194985019541184114661259752497085912215427403291358989843520634878476429133271876302887800913095972058504751753831982331362123428365857451930944512617703727398762413004741538966163556151359566408927216538658859387702119857015644065562284523057466301663560228651526679620743467334893519821563443080352909345840735226714759042293473461735044604358469421281683877467675404050161308772579268180144367406382571883281567746824083477099905602109283105845552709841006085691789937333500288317596772596847853120046484417921881849056878779218086175905025523944430689981856886719720405773089312967314996898456952254697027848365654821754587495569817637636187466729753841217456420779040112412794327753844844473309883468985602472773250600691962433686240188510823940550404683917557132440175387315582893345992433065015436626106161135543248522238570938138851606064775427444461153631055128293504117662917793732411782935497490454500122032766605545860966995318881397371423578365057285329684790590116124508505613399722658630090546634250111858435599756242973333534292962440144633584712548130207779032705529909368756320713566240921959274647825874065985934739460499090870380002029172998026570685363033172093651761989861299822707834866682401975795249909826001563132037998275145844788420299202569302969977715564694598841168889288829106314583024437204580212622331310617234411871990123864522616606457309486173308463316316837169923829065086477017517075811253058056724040558936127452059601145091207391634108391421909965844922407124497580425721718535566276352519776352075820768781111874917417163303249749261313038719288137867620223798151682432455131625867517871676339067550256184541229004506205927380579531160910968372905172023949624188313702260559531963206592707719689450090181209512455780478875037333038407503028758492133566477156804923819809458436065872508633157947925745710679790776989226219756154571404647513286829684534250369346316398657298757357352539359368410646116198505409786247109912897471183231510274314919629452529670335855107137539365598575489611988196778921451669545392917448753045718356838739852013706395138006514549485199927904754333245134783772593590915546479655368874661827285484154643354672858551777405849799458187748811743999754390742642418304711825844241835071842199418677147655252370380509578764131225702509973237929424383936236975466350261057970124057948342463647799481036365896659341822152414015991908896156049254769514414091331036705897155773789231195318404613937887720342357580388732860841457679269044636431394664504386871272347931203368939402963889976472756555044157443808900162031141948793983129521033200919489105773180686227643447506468693954914674887158182025284428320439903565696931789980776409913012323507634089506521860079420227832183009509125299165841602797553343905686816466436441929567397563986229474853426808850284935436894136136703820446700637840940116355502937897898718749811964667141391810576437916982359321678135222011205020057555130985307427867794842856919150811603176423068639878082959496043759846105472719656670132899970211668319251299674760501756029947918457303472632248477921798586077535372596858836273070984826445027577285412480633805553826734592977312944835436856017097679127328983685081290409741201151475765494231904037356429203033497700132601519586303676492134747219041960389926598234184950333471520268687334932927091436085862881065220292231258308259651537453141356040348221142344363843875765745399570774777134051934832692074235126258397932502391500607747377763607006221555477468330465659775598377758766905128019381523596597838527501380452594258595695476455013759673386785983320255133579025127103783739526406161260275363878202684726820756842233651090300548101630672332389088940386405982509240925537279827755912268392328089897932635719482121648925788353458299706665855534246022708117227860845613351477344559490739236656198855631676914709774922374296290945932061550436177378910057071459195238129508921823843626177860715738722383264750711523196356968314714700048262006292045692344458761103818862445516852865974191553550364501325076687871940393016766544153920395945891211637254573145308927254118554869008527561060087795806018849451899665249250386953437082341596052877931406474283713768923845563876986265487822461287048427451300066724678827362111762083222707348382072114041581844477895825219970561713838275615509528115635420731997607737698576771559523135450094393727145698366860482470496147129639015861684319166191958388364877290990578629901368637383096834495981825168845003358316713612221147745737274832826777716480516723172142119168681405109202266112432004502821673367585486052862305738717238640305462295365575448189880417658700341008047696284629006527675862203834010812586751870187453080331592807742406896799789982686060822942120794124520116369053784484535125927175770740957162539991637852655655835977931953533937480012022413659476919152339068618163609454934026097383131753556736492963700618982087083990330295131050445514505509366847464047917471018155291842298218980102896712689844011821518135073983870231950798521823652911180500056809541302561569945142011340172643305431983153973369520236208042747105951575756656896748237645826042171530018830939562533395109310547168184083854271574124462864673133789503391427342012571466506204032661460713393696531667234552227876715542000439684361653983396437605521689059421912086405891388432714007954870230500512367596823296708959145752962433347412730934544351524778784416130831803377274045719567608566641763647360143088191709860313592275820167899191774752699534844178411212279967267713441433075791252161171802623136232479277191948748072175385519813851103896870141451019829698459763231691738894098202809455601436052452824447006508187231152818711974417611134494473054236836547959916007403662816692961236713185458974625025812153977493291564276190148653218605381527405816862864934175061459354519116648218129392893694164779614870070775896783430996827955180314703566370975823207989240120318146614106756626482338571956316666350896339509947123790401706150085590832539945401409643490621853426712498314197190959517173765073469806289261658561140308283529354184348468723858998789106340054177058069955493494170759854513500722891188275820227314328868271043934473693283397034677762805985648136776152944715069695562807813917394137381673670541813542674243639868884395524190113654445022273411977851645579371254983829824255536157405875682540301768045007763542066165257333250187073459908261269593784787902334539070639741790642957405184621167947962593641068170783688494641808131570585238355176760999678254095704827989703028442959567565121806619548286170225478465379583231770166706776035813222196977447605658276680869792977862223764285597336698958544332794967431767432354309348417656612603545954893695418412964672514102652908691916912631822511403476812565432528821830086472349614335813345859678359381257494612101374890101316936000082034646021324863992528451110348604257480385559184664220694118909409035787680666460559606436872052168953338253159037694559819298838413920826755948499400415397774054514058508089233426499095125478490544529850465308221584844653440381155757248853049533681679543933791164963872540778471995923608897500491313050976557173351888892386407991732966974581055466646965787853858967594138513937139097398393161738312463149150021187516701192840254630349625824280756547279694474538994836995572109133394608684578979187810084060745563576709301080981606796393444003319243092028050771208320009142268973693576131125540861209651001360421325340164866759623547503985433674699650148313790817368017672794872213443538784759456105742486749580335945455210554097183776399410005738818768527373957857962730476728240059715321946562095283199033120914757139048981198294972382041604718823734334616501349934630592775252020611690599816123098199719495273457949316694503898962851543541889722624433521997875125458030035184660666539700689395265237800296247919999567008954571657166810745095090342021445451295850299323040628725150102859494650488670697123226690650390493127536780430705773906295085723043797655710714337581445478450517667938226809813228961580226607377541794771634842518832312212782650788882100456019848853166561999338250890567830604633006510001926827212083122851761351073408286187566285732893942975539558693023864877430287730302721575463600587334349251003874251470369166405258361686345770554365611056428580798712372548267750726035580725824299269743952554138137235924626098321443821872013613173530480545290835875770469620873433947632148811334588780361345295535234711255571798823868047493596608347982332612914256305489523897195036435545377569095615079570127997724477714447205979256457303855320905996079557600846639294950273038382239980224949365683318869943996649465064004177445550136306689038116884881614627488689532762603166232335716527745203611816972454739877493442040988491320818642266357448373645995384923175097298692477188735937192006211952358966397230240782386155643315631701714415124611800414317456626929106162644660082228245081186465565169136532124978624057564542865336864614901910586995242591239245909663081180831540839589476764240716889246975630618972610557994176757140970678661595809258063331633830639045535119893119668848872889502237363592255451179526014217938325685955907657827522421351020708584166895348657987301376183172515665513465319630797454573398454450813458923072294136124776734603168267224012689096689852815125471044733635684256262359688697811343528777664704517012364111877467405345430330540037957932421122413584239604172906577466948488113275830869938464979582815617821124637244796521022209630422427602393678543045822546610210975763535810047502834060309442022034796739677490099128238252607504789927722379143102244167338098433674012161146801742381907259232041055429090698833696758593658503590815609968455689080517953508820793841807018789406205020365081096682496900585389366091980822880767517826329851596829804843511973433342292045029202059872010340026676078109231296188203933942849106118495317131117685702733139859721774454613400591322910014700682236675473886970069691814455556277123707498393729305256356622814395205429593606290561429722143871440170449850045395887266752756712948963641457740959988708405273912612090271295313419725892793663781620012282708115696714829640349165404402537916829176946384678521720730322464257722506841698874955037948606089659006414935188238796897724626703631360732236267043361322114693816382676408956274126072609602078557792476187486516428173745549921311388811924609802464044317151165436935017222732006190667708178961950132240129172099892216004556250534264022408155044358927590074255656728581733059899431095084137408202316777193512879870528592916251705255911272682012197852523787291752272007462126723331994715720715936069437934485363506833175305593419340013446643710486733833154023813979370892976200046889374229795451379370302312233190755177005172493490349757704955761564033610561694877697402535466733390590794461109484757078750077954150262971862736601359275711792920291566598446554684969617882708841907375598225560676370605746693424620407602859827480243084245315431201550637363044114828709366123927903229520114592556591775799592647022450125106921819615317367519266279662220905906206474193300270803842632261011338634384648343419201455812770259152285544035269144908149419220754107178009153037239501453277574817643096888221158360199312884332237424610695930034163436238352923876329268672984868559037532443721447254940580761003471943697130266344598897437534372168157273951707571122987476086658132463748385807020359775978239266802934861349478028653881764166972188610573915909347969433294773520384841123621053942606675853723728276094248898570451501795798638314066274357464443006462807286445463943413664994263597643102606404833076980914573806936160714040654153416856913963190254776941617324391131195086512744348472365276490320422124430746551800137656734143399215609716680659749210105998125861441418880101523391036138220918728049866635856240186300478930367827191730913310104307155165970181374877437969299633197095550145173331172749260209829499272224859922916254533366107300616301483013532092382878491067455966579631329347729403910890322295105813597197668235731067496374634279023233146017422012648113845711970222637914628032124268914823536651605862848078231841235608924074115884892780149973675088679243944896823672193744228952690173789591551501367757368483922401777718311691535331295641391931770135645233336321046053744098998207268634343769875605887234236659649242471447848054583255644569608543942285852529610821986705554356815743683538757088988674538853084639012479393376175872391979610926046541174568504545398980479288224923384032107846090216015978679424222283588921137634509855616958699005211607984785998485030634071517537628343689496814343231598361330715715077053685724483411367309127290450845401557772605360685253814212234382133046097698629400166358950305678573174998354285330753862939112833929103795008282446441335740951709551375466174097647992649492199623012477700726125251273434894147173215676323307864657165215304199627766899301444224454088313963850223367985418762600522975977125125024275211000890204026042358341686520194829644818509316886484595142238884444875598576724495791101470200165103222839492959119796820049178733913056323678939251036035484754664983037012455718148772607940133286162259047818366510871842806911796820347547607406362050610495553803470415103013733475028696225595067670411195837487655546950893428151320067949036057147406929461003664902908877088769203454108296126810123661107577945448578025242219183022555579661065340509980365028002573125583603665967267846524346317186171259451460698266248387554564171912611609153471013248383539870532604872108442214106128263900893016677536275951733526786777510885261433879257211335067792231263368162293122990283075547333658441910285405134116320538785582239128246016947599016556404473616596248281825187908309158606165905064472794278942188057339646824208594344914007881811900484133875273830401436489659032591923587477173224894449206303063263310954554588520226387181013024831362078508267508885033576061531709940130783420178098686573611449699119931686165580453846540001357874908943020199428313223508037331924394916095575972505316078826828796649394741584810544860319002064225190663826337069464212001004163036764217359018696911966042054934141078126255563527585334070068344015419507916352107745153294119218752725480832361335724711496533463699049785217100434878285735631590647279090249993169240388555527565339550185227560188660387371562120834546523002805517435435155396196986719022770442195605366979181321551458412009991769768751348189941139722999918873104832294024394134994474374461957801365666428182310443531634792942879510202340577275998416616096100589420149032686117602077635141283041107273763242892605720907512178109753820597806221598321749683591932788267401989068042542383648174789764578187352739653314427883547269621392238839627014442682759532522639210365109414583344147615570034375495851483611230537856171429315164180737574832197026015406640419814503414016221745614487044726972022898121921657268124502994303033987340674785044411109007318080995470502070305707680868952598703210784574359907890054140344437646255793874495727369205060936896761025025738157474124317513963495047892596820464006284903721925868595434067458363637867030477043566084925060280612647495880872147951294312101898421344640007162728937259033521853499849607206392051062578017128737166654925519881710042681151351059890961247135894743849142507074274186615477912866419212681305782313569556753378889248970959789516129781341541554902608668974926595055889466071507202750016773127118229982224524977296383175576628752427233860270531716476909658590431428871488479147109616002640972702515155366696447609621988419556440190149486718197794380345844726616874645973536732587147633844607229593905337269621907354557873891597116281305433003493595880383526751820863990049982531940578412350437453996982339018504192304798525223337005135901813472585947641394158633525621139054605881332564745315109774293439451523534586660771428864130787029187415189291659150778677986158315005442522049327093853347281050277421936445803477375868395516722754924476785286662020167262149694670195451547856865829705701454318540090981569708284310011710456656259485662843357139569554680308394104969467014801866887946581056576080094672357947621881312429606748126732083780596250765826947439414503000443201839871043098713269404635822982283836893268158451263019565763283352507437893237085552964333193268754550660099016021598320443112129448966965415236157518544233532265275105431696226380720245262106821922139927411992614835795371015906964821395984244865392169879407397373149815438728081975658653095340477254215240595406967360518916526251588437174981071720714161864500504749858365512682825855243280695469216982881345655163177847144518991978473452676737789092808328832234836171749602647179642164464187274791846451455175720288624042621877531525020565962025413829283338707478928585801439531933430773414974703577365252620926462947028715025409111697489476131959032457972912889387641463453904500763522756969480307490812492583024893840148217200271634283094207132653033429238129430574265809609042105225876875522117441717041164795951541090967918390886647688880991323842768859165649073749108232441181021370785568030716143032760702437403275196300722252512936818141569629914498819244339362692199058619915616368179292014526404313558773920204691170850334066345584079062551762471777557296608870800883597083839635844697972200847130601842453724284881913043137276026716256182127372883966715595044647773776021438081851157259761640743462378221005287290539859453138254786566617467855759814454097183137973367084109166640118217623017263856293906812323120434760726078207335456822808835155130188888404451294291639217315913250153929264956963405435366984756986001828300955677101466859221135933322976907775056519408441928164260389151688887221200798439826467037213466469004476790589069450023352046227914229788816600534849438692619343981648313746539740673778017316934677573452270294720123525812621759749616198367619568040831903215530854412405775465116272329094523311678269731848400409646809904029254292383783749147584406794891571386010071420847446993022254542909865356331008075887201140614001923305865988645087983053741811321007594074889249400459078674679424634142572462235956220603214905834396810896294073169162234523798367531267924306901257766456864918229353806176661672981445364454523685597539355228923194068791479455790938776806503053896894776340088895325834135310616335608766409820761230541039011303853693311109761592302317306220658586747528884345773013952022013644710103603050832781350129170666581485409733063045389574857733629072283462531877688906878672565866206077887108746812622554452717328889869171317011653398118877935460305252817384524078864978411668761521946039248678632930475595336497143314037142240938787340218543218927103186060732503197198416148839172529819365309885789324737426655265620977986188572346236840993442666913366476342777255388840002272202492448110519272831336837567583531538730547732658400490259317488477446100560322569113205884688603010860447636037746847179187110279965145883598565710329191572933396654147119033568368914794903150493169914390196192351465806012648986210509615195708526600243524943301846579426263082354868702215905492108106993016570121743547945320568411053159942106007234180215863304021663854941855586256013032342474759093169495999765419978094110443118671306315317432293163763157254514476207230881821449880132424654674974459105828025038053573712411731648886299198788669747594456305099570493814929582404701613386525094277863998244120521697193502050602234875069809703654234362677855980264534442132681148756737785472309105439342158513671801695257533169547678156982444475313471052472234546544838390448842776975532206567828345156043768732654258338957824212587279264140445052412733824547184784916718513784087205689611342469098709143832223646338343407425982563676499143699136144332719923526977025662391888447597229633712690717496267761256931066536646962486611051492474729550633460794169725599292739180058011699699089373369996235232722614711138208678397717634486747507886177207795420917436756274795543590683211275159637646233733616199169878966757217509393894686550758671443805403491992866634358338789216117370482527008314616949918038103481690229661412045066556226804512376210071296128018988589079060861465461234720699692690280370115067231347567557164742415313654944925462492312507132333253622524897432063452283070405460111318242752256447731894452937470113663485219852705164204054093358140418030615892514743939987290520770845786413423618485668456146475055351254810577994206345976964880563204725742416907274182788596151533857347436839647430319724025460883277313119122736951564392403928728964132463594427188976932794222505216983149896764281551063142555866109599943908328229570553481371423623803633910038267634064477698483680109631396394666385076677852412818949348857556399360767319991628373099024599930740541914224399735784426037085364748863594098990514722181307807293565583201778834171623527035517165363044495032873598089321580386400952186852747684528157984854331108819325640303594654621387170783030765774825692568204063120524234920255406845500041026263995460632789101471542674242372608770253099318167591330046547314185861224547862213127442403430344755214914866150331241409104911404748452325936068630052091251148557526266338230081873030664572930909168024718334333139058688468677583730845317897206755402730048999308180648079387821745516430461998587046126495350135078367475886973062044667980647923962411815924313290469333092242996471425467485406482086748626344659387293209496910043785091998172990661789444964105744770453833491472964980991632180670002278896726955772413780945246099799883735687887252026352382442790096603231192214998009416786552651445169758355230306946246343314912754164204965048223857595134320762242231308735604070162635986538436684137851054731754952133531479529602886179231315031067123351051201130431945023021822870550348584382539460606084956419519227719327261895489910772705951237078232645673516234486331987242771203261732994559809304353244262032571083403217817509449613019608731119715652014820365454133543306154717542376372535468573145143332119485383639987955572288616889837305533193404364964002796146704119443325265536969190030174572575052131828900079701888419077430302240121285294363421262136869431767969222265517315928987978256345991531636230790367464049176179888215140469695884900388564962176383874823681381455872508674592230340219001196174959892042074993265591115332209381766191380445031013547135135852265857119358653321585977055097282057720970170682804551754967002454011415548650895949680187012481673326903639041894450244400750089926880998668427464733497842156753280642309258352656422906566553204156105607020347814198562141543866748726067543052009563573714053768948847002411998942983777878353689345023174639796376731351131292608658281893804506439954855313029288019350533458631316946005178108586403734598252596632238994416182368851384532452104022179722950695307498062071778822163463247245787483134191416792571178704295197484274455444508301773251143665098466867643548282371042733128839415268903788936119442068140021300755377740068499570600644978292621204031047967921130746664813177659267617196253210788624185361917557214182753274292741578908150463088497739589390991074524976754829728108529562377156099523987183745337816956029372461955529111872705845551510936142343219976562833314118778412289701471403208664850632297080463934801135928188133430740432653938827928141873618787550508403828370440965809085821906926552942706584174289113704042773999333793933703450146248531900696815278290142885750527765729159924681372064423084997158412388510149077329218876386647209003896959536996732070168483803117294513349537271246611885210809834506764866273831901027646922542502924354580941897510396938235295798086906800171145036708276410902506094524388505279533842835144700712782996785124825451573156267104615506128852031133219340116561086184154102955262659336732820280842205829272532509228833001907121910602425910953523324445414260974830375347074834923794956929349064419984393925296920503065873760269454816326027738382953968806115098164360441437113738817310993430657227344808615300958288274896690795691555624728500904832607033026331034387761101516526896739026218348845700661967710830630336921145700883937596838168569577672652277310042157735829735185636955502309265795016906017434450071049428770387414102568535411462516685976603119415451490358808026547965304823874706700506987719028201011067301802160938661922321538571289500386581408970850533868117459810778971556732175873864480897571363779427081907045229931807328007174701542198614651202132121438825578330909163810636884025650748992440257810014808925752080477818534293079621946069966214574418275071800904837263095560841414921170571349379802515109529376659228739847027279855355033244555718578921341501273695389311800358837383056438231221131226800556822128714446565609006548520927743746698905435505175142414165867725975998431486184370964971934444027883762102514740073585923263515298497930072351697263989288323139657804082898186189206523489933622808265694471680203946023793115457598002367759668570464945704172561183380471939820970935333533859275727969403316102051338775022898742002902744508749292095344634441231104410861294584960074323819781751390979604228311882740490742598761070111625639788625222492308048397213108355434344480813930013089468255831852891801474643205106274711466797683129840507241639592349343970476720333161826414945572080166099285852422097413151312004491378505006974035737253691830449643896589122562138835788103549855458901130315305664325880098814404403185828567295953059471149652864921841191537747204424264255559886298392094659468931801488719544091037929824896319702432040526288708634060798503225586230041442208867330701734010773412291616307763906564845375971686171794917801310901750239962313750043549383373699957968724579645390840721825966315018724957130567625202738126572525592919988305804348876680286623866003430667551780400150471673663410369943450093117797582152195978169479297265792760033254939347948562414458167235877028071595420396567564877061647201888495282745673045444353010264224488829202872970159614212853377759412915828343409812424208909744753338075877018510898745905141037306122318587801023815548237943271994795429386110605080332631472325222145836301841041343596332642074597408525204406185666466601549883958384144855873145852825948384845663409460382126445700842952377600618348092998479003689005241978365589964040433347626826457019828178403289019297514299030730720111626795819866666018373780925626348196125995437197963524585168062035774680962657360947681351262817104033307289144612021736171008046018239300003872250246120128125617803563525745939066099011877682438832055950255413182746586256672338724547709960534154916437605755511853538954039431087713601993612444570587880060987885236251613958810926071853469511488392465315775876928118536949471930828394325504739901197564848988975092694843402409735620003058120019029602632814246455120283590586933829068975461235857020148466853925873635439844925295263244813747270439383838383835224190349062397161144169061412649487450285943794369010301735190684095212047842918051817514000755147207499719717454074079795135641701070142578621412716760786422749715160186833494653506507542013487441709930766471338319114733176281677616066198339813573133514348282748284173430506893975843516080861826781885870919799968863549858654892571068456928628150590181897751207854727007160184659205562668484540337779503747915759493927082500118770460418723465734908755721584121389344706217498961186295504110280749354331476065172634890654530029130686811446241800491313430602847028323336338688669547665406481579062066296945160382336872796211624814329676384545701791351994236389613675418950672092986982129024708713834952850160592406547392900822044542628148797541767109282055028355036957442068581841644241863791488892537399190069583185318056250862051810523672851784087560415708479299217839505941916087362622541380667252107829597751664210052526732037320517702834987208712056702837457412895506682026403813574775008001681378827658518522967628804084726369826241435845863678329681905840519504965190789582086959382123665718534459979936747972559796065749528924798626321709261433612869264902842775248152988504421471499484667331339665611106784159592082496481665045302648905108185768084854307075644425164499369123715213835235819444530877820511446004522295749767251547524924018629580892218832427751759924499255560550249881254359463678011056703077248202206471004521375303649257524174390220214036336318358410378776797954773890884277570085711486752365504000305577237030153131743941361515961698233346278635418284167526639895796198806047522864702766331454413257734364259916923338274007688411231208497297787796876818420849307715930009744518359271826819600208341268253602653301706872186367177857495051719949246448193207214916624646862940115681426396822006534889149083893583720553980397298076086908720483154085875298105070370976195808485677761265384715777059899581753619734316437908736100512212736663292259510031995992579974842498192253603374845981087865006366428060608203526004195426070137577225169349487382264683410001934932940257445342995506862606372767268968741279966290314067950980817514871753270106540548204612896045782606171430569318563093046150932036246422955896337303703139878372035466693952260846028343720725064147006676453844051290547970023572147291662090407472866552531818870971737791340739809776481626527730306207469410198254177997851242818769986830153930594023978067788824047821214508447779912358404765113599791074225350299004628678871358833194981038441245842062558607275277160852780970030087016855867599357913150102131670470699279231427337778555143868260877064337362239951550437628228463234469393905611309722809784033323208843064287381381007618349030051244119025926747200460839723879067040005970932772295444952381993341606316487359061417380145530003857795642854321103417138546211005851171495204321331233264290229760131982431886505008800699260338233510378014662429599005170111025271882222792492264101874086309691861615145112398018968042579874375335244728266178179867216272873162760002291016669798066015520417289343694050433527196204487804306954635644945738372514914082598585450527496186961321935675443610575791561888919895760796698989772556394642416182794751837262629115694716690594987099367616488839078688703119220348024655063797716028400574708630556384972106889323211664670272988037558476112544835950263248268327351143253844139866255181714282111933842157228657964856884364338944438668565619175320890808802704410616369163084502857873278939536740738714812143811186600066095234322401066480877187672200493842885655704911027373335967381072516838788866583640944208678341865012728740179983148413227743676123877733059131763602310463706393561345072422232605011568722698223131101576278999763139244075439533586279066290957874644497957963502619011740437910135720881201600946209555018756383913232191266121553082463016869548493543148210660450492189250311380809451800001923093835906682168711252517523955626693406583660968014497181962846528869470274328000925407361000562219050190203585144726256103973960086778728472588325849450679497524658884736807747953692760259403316662709434536568244446555497654822818001194995024103207069169896352296652832829057808628460526639928079730997230722801083914936924500031941514607104958403950727771390989840058757005774293088113332591926924749227630815009538314475154766410154672356050253064960760938813349466422187958403835569447683361495155769143874846131627435795907380992457019843290514968915090051253513865991454891152604931377115614396247999657627932206448551638401356429798028360697405589351841554142666238598720407811729811001549117132782163352286369789316673144409961157582963773340587097899357632312984490080072655124935095187641276522306813285038755419139263526152972760320000720457497109956225000001852200309236649842294939855819802519029170952437834668453761537276764362151688171727270821447864508922342933298248457691149850782085406538160726637711401518445674354448161404595290024116835911095230239850905608843662097818739461746114447106523319453495298530147459739092173312518187870946394569807699687276336475666163384298502870196930350398242126779570110668724812200721845502061892305313615452998225855324794976809903072945175853575573035162272487021657499711541250121521000291337250184639899014407088047180538495641560770645232341872601480418724951368886014161102026352004439885671426127074292281255392487199110251016103725522494138983606833964131701625822635895894839646817487204951056400444494276537581568707145559899734612939068300241823569426486332767177836487299895423616129920516875104886114244824357461995169260578357873185178145205851500017133142824130027511198412289366594135996601445918996315575071980888129713518998496919067996528638135803048288901272279472166162271717212549332714496677336725557936052509008108080090302117258629286298410287683789394455612820669039988879619866887315338508143666835502322354231739991212638429831206278871689465657693482082455036767171551361697623457574279171890129463551754467434472151727656034866652036322609723322532093527380388953163111470559073403956387095894074003221028835397476164572732273258780466027820452186114222424867956748705799937188166322008488092372080438257305195044363468168170622677839116194155783349504577427852202030650013664303671770224579063123222653812643772089717303964005009518224227961012388007565904676818054995858478088967986594101358471538440448345112058440627922614694507754174132055112780330711769696781443565445365990550265703972442889829756751649288067179348286236263131003430586127193722431954812496074540789564587285916054798994320010805045351943023431097742217871898010899387131817271204662300069997276995567028018933352991427003858679185835101015324530108521753092289681998944766418073957289733372757315177579364027445669680339319051747327499809665259259286932531525385788494535666495467827444467481002878723294216013737965742663725377224891205103437342881600953444861548441078061251143570418217275148642309437905618635675619611716120325613586337097812569966686850057761195909301593488344052740516298542288417047944424005248363703970309149562423366812312469566279618109510729068604708713548804837167242552913746239709943292361395263204743288648430663634930738281979243847574451962325080359132028924539005609987476919134996233695126557021218010943452536801630373592160821402693811332528161456206276467867427929608282357480548964370679128769364332879457381508028175825951763905196288528108287754477541188023436887605638304505066574946215747834574727646069584366919543124741649030352394317413308693059463736761191801874822525721800454742554787496615292139328176632037794261671517194235412652056989524950519535090132773828241803328193419919300795992010798737762122422447215809637579332842684846827840701329651578054061654978677105091021753027339511030957805307792942538197363741770409854096330523187324701469029746232000017095507313172741121403406238876291503653613698454793653355280593735872610880559978445888520401108877113050169110271926370889180133978138193209520426451308713779771355449945120336450887087293431466700107389668932860921168428318749642277621991902916119656747183792690634274087928721700756538460594582974402820441983918286520368086680970847615401589121121987149971978941192161713002884242019885995934212353799262940924736413548536671839607129993029382794955205578628518069372449993854528663635802129641416619800961684363775068657083347848178555542056989695011141856968239219479382554077084694950940730889916420025617960807998881868807889968500705402318420137789670593496083357809260125070175310904696725634885522632692543339384694862264328376112120776512434303421102437128446251395083284399765013498458382528892254848278641266032744503140184619804007180331799071151905325607113688409681789808212410080420005090217252567650846326088915320461211162697009834989228111020518172239436197895872586005599372009657370660492670332378672647692221153105581234301893314838178088012461888166267444908236825669707821160783974543186689341453503450809564907133990587398312100428916247597291920580143958775774486698052855432608305828211805734169487951477385544509501064522095961859088020716108601659754219204366372967414343795600325445588814224784789967767743742833492903704097624919482219536771814389610338586405322528087651591530981400472274022936935033451639972263325137572288158849409123594588492095266156521585808630500043253171374308268698094285084138431751461789720713488024701901575135380756083215492400634380297783490095468829383335063509936860266333799593785353017131022441378693941675941503492153903332774931889068330599219722374794703195950344386061549743806280770709203386520729984422757092445091377111762604541178625937385629476575342688270562623224386816746881348452184705552521132047931116946634141592413659842987606684536998181153124864409457938018760753772496316459564364591484255375788620638464480550737913235605651605409844774272598948849969225086981652705711556318884405849300709861798591530669797314961912114065647351829369386771686466482573822314870269796747461491351150482026026063347645746120931099731745712395484359211362893442404656950304717073020645446169153244987864770497077896806510587257316680696857580238332107187448534951908838442851773407218551638200319312832660095523854832414932278115762628240981753080125505925203441964506326035839342107496420038315904164385278485986954535305283675890955291389059331435516413381056266053470540222563447281673068506781771878903923802769371968040291052749000191213032392956126863695661243359710588079310780673040675249797207596880237736134207887649972232767055975898480535260172046349629353611577679108890360489817757950300936332354218395638825545793908157987742574208894140997038581712042436292364362935403129919083093513427935403684154818471549555203677266443475860098571002725358939746471586381011639535883293986084675215549746188560089784759505199466526682072661723266453584364466733153842093311824522784900369586436377754336324975512055211388514017456090492166959847478943001165972539784654926218009700741972813667797095378782084325155831466785360414948701148318089296073127922839546601856721355233085210598236352587854118358919261545436520040889734956606275862237514539369943567335921293407649594141351788474064226923627291788030621246787604222585119273665134942062214054148543616837436439350528644446152957322802261821608256485878037316505979653052830671363084028399705317407865457762476281296762184947971393602188563838968660206978196026794696657315804402221725101796101020294100171603626399230687312744636765149239001514866357385355799643595626784374721235785021343170733413565857624446816864087207240105874779286323230323627544871912775879500651619533447611802635273047490637306967323965905513486677205173038085200578710071629036913033216992236159836676546717019602391180157206748686330068130845026734871702289859919683866492272432211535990100389737272410209991503557232325956466126111257448625697469740441504078937975080816534584336564137472672059601205809257263248564573521814898352457751614493750248293541036913287705380445788189951060137548675299544209192348808061739823027712773519482925104311209880033695160031787019093251345652932364487863058496787930162039794055231151809709753679606173472111279954809741424712832212278937926567524502243193623145351647496133364333232055511542198078690057172185491111753832449066852249809645604767072503233385339917490032292352096844930913584409283129065128611970312006261099504781012565829123951229668094212012367853302972603569595008647592694558161838007848615043364687370849586722419193843848072195130455065364060239964990827338682239140998171522531392450792690681850786025742098079236387670002111482864318028695180347692210026677169716102719460025252936871825684105038226801526287720082189990331889112757065360908975433358944522771996621135696667205637725387663143807878469948462990262615881639157422382365744744740588035452596571347455269479017831481746289288760899003824243063163213087867773773086860730354875293142860737945026345469416737234155795210477243904879033490948818886918680977115344659689230391931262500979584588791052368161359210483196853875481293990567295271566409658218354204419610684842757483461441088804224766960520267759239486622660172347191210121678456119342990336664943087750210230891011578107928824176283359381453894897119161436802083437125021197158649666032159736323312793426902293221663935677803961224747706544253578960646797239504880001096101605889746187078939340529928229256059009623963741544670482939678000732371620145936835471553051552685695667381399690090315487053179316283993997304253192941476519727125852107788920859431263734701097454852588116666764386011445207836942589640066616153950493726163952392117083581808500315025584687487697528612938679317926430559992229035822356441454872886340313164477046628132006624241220695713106931043085841589577301312976112959107525143051925570707538569319750365096244146890965691911380803762892255756158611322549433961122627413295759293593770134748439433919557940409479586016049655018114305898406921760590405447873696030968306299100650155985166388399594761711390551459098900579038745562430471699692378221107641188700382241278024065373606668266706334064213717496086524844867053262680500144692177115786113605461063897900805856175400391269415982515378531305832683266336571438049134534643684510533595022634316645452633200529333163052183834861022274871479562388833339217556686403763224971613924376557468436624431644157915851742278327821626668996127650279828410679125765542035331516137017815501710880125278447650227551649372225311481821515615839870312731820102457343539514361665018637465524209544678518337573927076733905579180961384532007729526726547036900774642049153663373038733935844440803437958014889397991525184434253515990615968648294661898373928758190502639823628887435865008564651882222052284588965743788970555692839062764927614842258354980465911688849238395511150976398603742470962293060581415609060103021903542831797847494820423942090469822490375328179968738052821972830998089608214196866920086338474054352240069740087505734692463387845295373969903096293685391282093216494810542157942228069760285597003549264773788170577924369582353200299038639708023751430385123201344145408057364094003120302553943916316706763069768241471709346555142381630232469525914285742425476029561238714458611215056811060259556127620006628785574141401550041076666551406180469008966752967923781986592646385374109252604171795166278423660179540054805805350949350962067683917218698920133301236256937314294929797799991254003370380275045022200839297437858525610802998457903669608981335876540683620301250954492521494822381385204141936355138675771503972349022706929390470205798822012701238562353166517709933647034057837981564287392545897503383718774887824334064459617997225658915149783896731057734898163805031042220219483285218067490413886249358017060581071039698323577725237137553582581872301534556565882202440174024513258604283373949243872816208551866610732469615230695881498409575865904963566463467283784270252134015330748399828225955084920130856637177510620361717510677020106317050229800002673676470855519341140651631926043310327575847613511739823585094488806862234141067952027093940669569292125438124438475218384432490278682656313468093639697085850844481043831458558325372656928043881891929355683449065062749591009159481098268833555212619370612642933194268094934120294495904217896526760091957611482175574741034663947770497644790108476868001020804047605538115539225227379140796824614547269290963227691255496437899885480496127618526461371660216374782336678547420149652205534799632357525741091327958531172169662597773002115014089808918429108714826551395241016254637244789834617700761257997590309829002290374442794188888653260766260630009000456286257569467396807860417984133615024725158122758704687295402765581582913943001995610138229542880709929094334992661685865321300328007283032011656510565756521494192652051490834207393822122611354912567248079133251035038316519567522259806416187242334749849706915868919810155225325530161872973583609098279633036588031525300773487185544723233386457263514003455248373517211734623438550831068466279602200224566013244842803922475129293593487025327630298166495238653544024774341890313965804959057960789751201628643479967594231089425544766701498761080701886405790893485126747488212991057092657429561285111227611404624680678988091311509503028784301611127324592524872716393784610054923710539876842258144951127516872366253319803524574889729997462245088587896261576922340907293353161637211944456476891539149835494361775002397924830763765491017479477584064467089459591267632105538232166944043292014325915504418293508381105406472657198335449631432973401850774457038420287737872201024190132152127868417992026942998297987996992405173273628806909331471066242262815140715684066955542972394112775868551867238222157906251641763212809164126283868422110990129161117229455559312860762320731209201791677187018624421382875795041292411191932949415839817217697778931364075974579356337614766464071921659241256699191915060269473427639709578728805181268485594248048877569127694111635868680044389942014828312387155032993834908293240073945313073778906101732021033917721307998616413759999946881557762616213673678629353198061797031616261602666117348570916896230708035526739574049543355472707911574839526772306066610827656875645771190217040618142255768125211998119916434593416673198222425988551344725466355402235493368395705149128303065566129246795193330254269673819795205824819729430388458460307050441608720698627330104344395553295916339105618000231842753323738739643967944006172744847071063491707245503467684122398686926872719472695535456794948595494337977160996517096648671079562545963221067283161056617598677432529856431549915072289685067592763623458757359759175479891928722517484581602679453006766114234166641547347426709312180649164532447188163696558102110223782937728446216965854973627140177949805937092020130232247544786168171172455417397740471992503767606533738958077166264427834201953432353509534164829894570694213861896181552600929699907729915628799312507237755584152518258165207476291835955788159343000731138305989456444922262176723084079761495109650779052130107291901631782593044872897236165931677613286753732084527564884584675266027770701125782831607496385606466262802211863944331706515823481962765768575304676736451862801622397095082967823571600892904789599244619380182854358590591361046097345707687134960353519778481289264808673878435319985923852560126472614402231899403103483611543314331908894776807958683572194813126900098098018743900748018989248451317400665720520039603079964325998027308723606267811706326531795266633048703864279685983003969312717454750510370266617767474820209053285073234625185458774040031383322799606668053164265267268537584461190378588231249733483784923883958453927255405991375046493492032034124116188634684166872915010753711514379261827250557234845211354869816971813010269911568033414864848471536717221713552978369686165116132576686645242098015178273755509257106025773664832057562235693610689658650818640511899906713931360635066558318508643759038821373179808811702203439512836489205775199252022118069157993248668604836996358265147899339654913285332884375788613900468554583870551099843176753460446059384111448887313474121278868640118745811830911922635498778525739253640828505279402146642004800693732805563608833465077210469201076933914969928713563472145254385462203488272193703055397349495233667355696165407637497127265114649102854850500645305218102751201622778089499715413550276004673037180407993904564380447760680370883151647351063954708755432776201648597834905947479266478317663648529001732872939960771557931771095286146079093538841253842454789596127517920224687394576004484639260029301242740606028789776666629849780406157420466966300582867213656300052060574640770440890357275753182626689990830004748347266543210309596619375063230467554246727144853610533429721770583448129710387133041708439491432177762171118051806003812170817656844352196960824513038674048269051114594804403764596970680896147861379412112455289453546141482450150347173444897241526973672042736614555200032254840031510547938457853855158803649742915822386977851434506927526436698958126316157597190945702650584116559101878162679136012225591140298622056006563371766921221915261275171301311375630856485400249951575607722852006044049944093475450850714542879435053761767467368794177462942312449346567281566420033135804186100890095858072232197944005172557821989957741207070667298682459296263127374889809424644722033486490522075902349862569251597584657222871273867604449304647511570564796673380276379433577381518348000636242645226520934484126529491165894121433163003443764818372156614769467019985217753447946148454350510222811423074352813919974330321705025994629552797257789259823795528866217433160486697193920611934665916059723813625755119806709753872936906653470683228255187704188381030947539285407571745630031865710569830843771229949974657141602365230135248422438457400641853939886837788563902166917913692192418840457816733555953779784415428967502816289916037935244966859038881128826299742357358095191435883911159696846421952487365333667675348478487803969656137779472956897153428644781849853241899936753935207959908382833977941592948967949913816350351739767028610852405692618189337234947639122631610344790179114889724951978589778600178262691380600334040760889650812365239735756561887852319521485982691836115354255302271679028355630261179844565321777077795919781925860181594078329331877923798563881107344929902637656396875177222714473933813295383524154095427809659319631824848803134870771073170605527843688788447489739375433413076848258206012313434219450968594358129847417544387578370946451127460940803481940879014934634429322439941643927150689733098260824472886067328350352953525469855139716681406089477886007719388878699290080783778286420506809135373439183075309737219570027921059896228687879350523558435101465522504606609228014989318887690301749441501798498687524749129118358114635973124480091207329639225691415011433158967023353129085334216068575011301815570937545443533485549645751334077602203204200001259310739496422769394819121085169926126164815309861465414190126786006590830454601533888877125947862948903751895042765915361080245336040506896067099939650445850386167019515998916597656675160657757160939548100507787952794743070307912800860585505085447195253590180935348132443630805944584421161220731232440951525578606420069601173850437267078727750207424386928254758418616522843973622326849325622388931987313269360924763663040525556609469288924709059752673586237001345526224682587110944731977855046274397465742350739608932767674226277320929485102372966795675530500788069310814743814900097651657037342085472267759069329355146779543843060838247933615185627932804064372918120018813284541185954087668677880594656991271196365538195909709817683052518162430056770635104554608702368340297358943786176346561956639360147289145263132014464145408834106658676638214336805602890005051203149369225231924530157516884742423217805701387816043026597752612299108158809138310633358559140622732255230065896617146837526592058983350411695559098245926786783998538857288796937795247756172095127772293157994491230704462815565366613339631174317753627724691383463985579292019371723449678528133800333165520199364522863542645385220574302335987155868182378325832316044205279209494050566090383650607086325972729300945652903962229735308433977264258951683718697505575741456180459041218926828963560608152978143640717602533604815266254333884489531961532277421414620269405626858629704107843237849405433074225051810603445501775857585517981953641774521101792643368654721340696436859496931048404970115241663027031213942058209883214131713101680275085463029854413611829172708660410481993321686289166963420522898645201976082113525933178421790970576673428788259652478337036324718557447161380374097167448909854689911552979586378039030024071453240913782430064876759298371926541625479034751403025120617394771877633385348136219023657555545778474445493106162442598763659680073846375953345232204268338426945819033459975704063744564759959170628798805330355359242151016305984360086420436167271056710874006108948307086481798473305538428520648769105172089417582086873694319774482486468820298374559440209399906102955225821271682354776245847705729596249315782536108727960449958167653877999643219614547952574963294225716664375091263734353028966121691349930450545408283325718094704712281208400190303141036827891723361793523685836111242881309306057524949917189570726393916090833605991541943983804689640961707320356519588057627782797321720829242037047607501120311948194835827732159523061795103182513221969122629902186285940701879074591094528817701548537494653023712695488196724019304925536613855833469571538245192862382620511586951155331950894939891784943327288253247233617729922647993559075025169109048153248121494565030835888971385150183157115938729200467459307745386684603618426597946638559594469221805292569751789224461489353104749034649676336860574759771394651689513500878646292158695829438423429991791531161892968249969376259331481509168570221307209850602115559369502789481420736488866686372785604220525882327073761775990445933681339407610552361437526815383189155865819286815919138537662747190449562530835849332217337450720175158697760579389068380181914236216476367543656806143762156236623002391810769883261830069245069548591027278960728452668341489545198462794514081862874051094839559371089500903717072185298802202514103196761938624142996941057783696875774210782671922307221746140506757012490529303793244491856418110852446282741739352526578398311134313934700036680519991480286091262164083975140177148901347598560622767106345143458906717073641148628060321446932608592287404859816394428673845992802066261367523834770690743627833875261973223390737187551460105144659704673639775858794408626499996824578450714806960592470312820267268615592245037936090723782316199734222461481804116084254965907554927256509376123344736021006175285283019628060106455495294930058932805131717420586804891037252462829869061006003564004266278117658800180039300378037399922478847195829613078000374393243061480110645837798686158094920502726396574275916095580242633181883063331383415680302398279417719823235139086466449292572694750612059223348109377899418021909302930027741259841041728367405790211727692915551968447601644445598827200883268656158197224223166367191263741623628790220595072346399149374917234011638671327913292138526802081384968031424660926280486029783886036835454529133173621913145640140350313419605914659603946375063935282127308974354283192966475745320102266077084190810617705645065207269526196030786441098618417566308999864705313908614945571529445685551789833320284158976994036068039393120301327355954461333866248278649827258652585779495447380054393049888508599148845860143022150745567268864912445771818122804522935424730362561568835397249303257570591832181663605963125735071787879777673533854297020918797968999938730740734874198886124208543183617198556549484155189066228909817182603242442195781156271896728530565580651073799630622210609750109863416296471313362892860228800789980844721723497619706532107479419402872783398826780177290655341840784531248251613187871065807856013474399239150199331649586995133156431386578233407520230543299623628770494257770150669273577395178015659088227938781348472711332028397654943624773470303325840336552798982230473914260873019119656242263390610641602716377013859641906071195059963673006680973467051108638212331173498927841803025482777697760111982759422767837570961819213914759149069821526259539592106832186949663848069599484428819726558106090633438602852697323435235540362467979104467750956507536779234714767635365088591183423852505638607917640957588218996753690350673197340983160372474458226188926236647971559579595014353217224551525287925268758910811340651319591352763357202010907143069722593210066442314724532313182549898430858519186500245621558961700852453359765385386180898251160324070012255311661478615035601201546435691143519934462221409588875631278110810862152827050688465134545946599425523918852315995570512721253369944845599840738932339223196150913434789556764814415872821314023017695278567533008799379912179780334203366703398315248219271475136568157002358431622081539096222747751613072470286173993094045091564755935918038473434661641136718204618392025765057460712114245820053217012148535504026422417420420615218586555732659774229460598142579186682516179871722912024839755085607050109491125021766980446608761474048810729228788476367905534263769190415673967950702064466438727906511510430943698772687083626739727398367516409264349300815700168297885857457691806341314527363836874426285672156899178753431443684801260562182810130089052273673334790787093595340884020996694884619991350462302478483317017138124019572097989639763180643358380916710399623923885836913838160251101245665677816161778887624306185330734146231636310154529882228888548653158477697744542597943551055465849427663736358031637000916919087544109753799587298335077930138256938550122226292315197022003419578989049190844962094286999269872452592864253190479700355985175245430619130327443428965799818246879502319253111001474909832841278204102672456579809974827756991270522945187803179506946967032138925531750592606102480081664992157942806053655539090279224725538539811783386971514441314162119707940639660757349185015853084452832069396380582394648288386342960947386905695241139892438616565297313116605114297818391721224908644289073900979052471240565146200060245946497418605278169427842619940599374425508937738646361225576330087193734139260136940530038382730181822076726013366788527788837232293239701692026063745178971995134508643317360297703002851037929114864351040121019007674738152283883851364748898768255981498046781885190628661126355964529001028325081113499822779221773568150395013713120998704290155704298942010483288978791118564431415163315208449656485461525759342054498938027266482500716945527790894951109611752065980696818600849027035904826385311289592702608623247534699542007717253668330237247887200487486720073443197738012270397556286534479111463090253445578789164239120711656971038271504398887980341950478311578479921271453089019081904488101997529435808886673936503386620949190789515561450553320135237274723264471848041665155494205820100516501978733115186366859367469888363349222530558304635477871535826550177729595737580218188795546873832836495193704492336073317545663176978016760996198274106673947845813230830375712827553448882960872711778680846291411792721232541065504639940313248418945958453119993588212097180541023138477310557670533929181520364107618491841684483653145281840174896646624691242308195583742051709355539973046887777947074731001278978191141746603996146253667737476087299251739006318238155671468810730932096867313550431173638694506755764249840862315698650332276950629167188227225169024190701423353263865153608735035698097562271629573165670439709251308918105907593095511371667416492705991471056073299115273702755144545715176203861804917202425774538032722294916109987141376222194466713981597821331537784037946891944023288984418225265071349125956095889141963835843830266032037831575604913829154536736677136354800790401125996597972201312244420595362978451683263862958408139929218595875020904938739986886531056573629266714578955945834800459078061480668092235579260160669846046300770514202878430472703355805478797168513735644321487477190389159441058782117113012275040579597532627763095921391426778903127174799326865865996842940354896585556007208466576092343083912974486374157016323009476508598465295036447536063007230523401549072521217655523119849328649156465732926762253421885316477903044384797120924494753574293853364305803859219753071631431437804865466298723201229350360163689823351752240716937695778930838822162056559164456099793703211927078805624228141436388159295280448955808889574081114969799605148515256521776129351838402827263681220859768845722791590480975688480054704941933978622088081530407279143485684691157364827529899859695605372770670051809026889116656793521649560909487797331767318297941658203239904737742215992813060429595733206418791411254447643582855997382746705327487218059754046061043269413721127052693917171214688212019144495864607686040614095673714596031760824758453963137180948739098180488789671591724073525045216767550178133797143774729563897957663497472682714050834529458603733089502090988385065509929332337811746262392190768130944297916939470404277957595267201744080074855464320196265832721278361316982695671925315927659916021442314005316375206321403656208929346321986899271839485889178438539787772070677105195825265232058488474527164239147257683455784491811397247768624540766145970372633094191530283458709021535287586174165096181757180419980601120305831662332486593323496952496019443937643620941109692746487951063356390925804673977913406988927024774195725056878855718000958831723394225932509491789218303392567471554060667820209085275733344230536148437780883587666728754718181884227350104847227680537167925488850779505804161540670461793180389580098494044724305027986732036559013574871479239956206338645257772498541705877585522214076133912390140529744315814954505575151834276640592306407350363762829370101340832502960220163756332188823590306842580481266027608205323891762480078151939761280174805970087861136314982730009916853861802233874749347035291304831946407240467970555114960564993124294157378512877224602708334670934653571890240010159673366887437524306552287916494114757670065663647943748165229131402516829701705467264440097751216544851249072746958160197524653332478794733601831418153788290949062027045229364648968763882167094886400666855503144628535886109883983146619903999192523798056433225733816642309298113088799827274173417624164372039943441138255736656097131696974650010354064836109838916654890642053210392723948160140486605820029513928056230051606056656356101277202992880054553884898376850253511067393632716411710696968322421501300808878178520672420655372339097720927715851744314798140852245066951086568540257285721069166236542506130945661734414006117836233428370653280551426074554164151245467266610705901289773091103971320498985086319314419999334671264213269219532055698196539090720865411915528593454526518758585291845452367008956746140238944806009250403671150409201437529052350373763706934266415024312390410923867366888656178889270357995532136450276919332463282564672720792803898081903192012123635198811133174361445102917024732596309478805288099616389208642644016588418274586595508377604645373839297971140738250176825442862940703721075911923230068971068871311825786640205232376181142407154872517379867542780693469101242813458360081519815409603571451109075072035209163252571940864516164890571049657449134026069642634449730246585647756497112796387141596688667341568783713968196739491168710554908569780799361450163108036885654122151209795299462233978630488579518047662047222011253127361533196962323276438665281371483870187718421750478531051036255805407215438260901501632712888075500148805201356959286714002915231712706506965643183684653375797955183468025349739159898896695599988545111400481242938725859116728823250995374634629897121563176844171997320021854804895446504895486801784312539751875509078311948581499810046647007514009837206307737240880904379020211938709207853465104173837947918654800744970751625850803323322433165056599919221397497507812957903081184901178152238893510788109512713313029628100852984053666152252349645052427981450816541095472580874553286766427489035097022192590835681382079639269217837505056529557468594431902259602759396438323017857503068695717397862372692501609834284058159632231379109307584511991467072728873670289047196961087780190906931096113004616586699655975866385164497253832255013241378026589579033384962147525580176570683623552108634641309535843555595203356424370928373564795179972430806584932800231875749859465854635217132644880407812234586284382510665991503156399901810640276410062339202244999406414487374024581457604516046612950318370482785188793734296546063502736208604271667402186501362178063335692146757367106001083687196672667466651946066386523743402229988942488331959105317172394164618997691659344927407077157524975019359459926074382026636948221314245294425586671802508496734690844443288267715719989887491284409515767268857095736293642267429942682595447240596301188737689531893251156313311435009759442960396952980895523175573390978184132899395188775677494494496872856027860788196081545094828863865325349927673644254052949579496742003177367659336907558904295257850279851915880670532386923894614101408658680632848303976594482759618450882433319403139845452097785728980766978185378731467290557690012093673376923016794442770196594250634079306932208218493340587806148337484061669521036269155105924402232225751356048116126390698023184566146815844693017347749728225788294881540509400859650310951499845375554286512613652485600547559220227638683300582362470549403625523174394252457606836422438141258410458221275287215365511923494248243908892605388728406502051263261476804334506455454229935502763713338460903035525595528236244949881953185161157832906402129826484603058967160350876547487092676064004097149581383310340564860609459172514412997776817720831504379454049241650826788574740983134306059161724677788612905293273521186159047914313842141685264811880757982463979414632178125975826630541075908208991138807739439987891489434521013640721904581951405188766743141260178143909474289021267478916039730275506569379872821968541020009222627178842769320824682880668628992152734120176998673213042729622655365920129521895187199858542817631414746463875183229790884889225894515153592149678287486364069551939330071845664783551383906082381749181074809666710303777473862133390583230265951167950678677423702331345176612376949323647203885615577856374260110937699589409418861899976945953898661458152738053039339969692218525538873413582752372998381951700804350683789685327927273976434427043043600410850327165076861262675360861225476026224328088144499530717998059827097204896379690617926886184399596545811532373354034805499978424344587324420743238724009370727901272571487305870702525297862526202546702408797209168281756376633724641924309310490683477079432228446437283152996091379366413466949816544548558995030333584946253680248930924101991770619224394082167382331444732965955496040422850872879820477432542757373552000964947199364677423109802045652080006205280494570099072674488610560453097778702595882224159312446789238386834505161130379370020069108124412492331332875033126320321063040659630132010720011835135182349652227739385870225525510201584078803763004065655251402625467372978795408534864651269910355545683996595887052135542003554531799831958881872446179718368137123472619430426340511282290476514568828290112658815339016882383142759863747919619768943486325793720919058897197420887448510592887290745174337245135182118658164471920746145104836309929961773043728817674105088966301044595439753660745924071110932976054961056591834543273800477094296171115692460062484105284477229734582979550189743797456588530733694533535581691137945431792420777946865358684268807495731287378330224117623282428376913827470257164387180009666867148785211856877659997035730346600976121556569067368417833263140905801453816409059556260367141407086705694918281115324152680946005203827745798220578784079712541916958944550134503198516868096808233878411167850707881134224198322949326507859943811321869988617427019080145636301989757013105074717119183893881863146687616550173186548981238064457485994228834976800774863640380203973449280290355443477463076081355296629801043930464529062884987295674830963470931420157093688187101559025699124707095112713244455742110900383260395308086064778156733578433580179044860650677846872806345679604579615213818331883553603706462353142974035330499528462162647755964296956299621123081932068353358924835113368413714330997584253083452932933642491460306290538302623038428398571053917207614300515015563677421259728063761586784761345879554088815985537782165325456900704658884404139725032769894125748688523167952071533757405693977210270718627738458808699242684462802206343412050814367131155639773715797004442468166894954219851014186659742259451026763880669633621692919353190882247164342150329079984126549709574339723841736843516995850997085860193739619213556420251336921029146850101408488183281388338299287344282697578674861678231746810041479052824869534059164029629749044097553135421510775814773758378917991906185684144582814738096180714801052608369371172919960428816393063998385230998056412697353155933883289777081348027171018684353470571028649333249154164487641793403690258015535342852576991057169087856726715183456452007633778571988185892307590887426493163675927601267906018289586174031451329393562120245328120976892567953350747331958235799517713612773253783833710750909919724574940558445560417830748611729757273269681441722818776885193862951369477383898795757864783857184116777691737692173730955623308078209538299811775270802969559624902153306539532734471077130216317713072468604380545953011592852567139098681474601778379855321753860924104443641382380659854039447674458293012696116621482846294553289359591333390221946333749715267591412761392769388491703445405485614416223538404027892361278448798856201780837922177040937597553443248202656045302246667948190614706512668144764393695528325299896643528002680362946765021443851479656837423558893264093433813818585894437510912688343080892771339783223997925708361458041648646681627873322019109284672055120597269773219750184814798135589105513831140605931543015758456311008910598524232143923744488374078846471385038162401955589205134540876225936992784983284827268635842669943877606770947556694469136905593833866691174939819176820097684468533146376239035335596530086429976533998932382134395140598817511641245798954874773358744657341013788828341852856800555347165783140739171998005819284559796604094726511140935873445218274322880771654325927261680418563949762908849113565484362869854835493237197436083484950162386423530872713943650975384981254327360604386370795651177417466536934316205254218617164226328296910281693512513493390481847259661917334991404525801245541801769069069723438617360392504829374820181155899704727065271576152076680848090082024609657644898283849608992275807092711436715458291580472344975600069589026212086520327158302668835418515825233896401580224223622169038505777805330046406343580410943470061337662560944920843462041835258820851965314706432503515178188466244393098431236896460201119089458003287366025317000200515612508249830293177194113207207711486591810325133145490463303123201794476546269621569252987883809686398112041276129671607903169460761477577946151469890862941030562691193154779274381220251210012537956358465770842357228944399406747702520907030537614361447108451224097581208954468030439172389889624942008976897115488184499251671104940970465643494215155960255901461400459817194418345222644200688010560078159582538090251062139091537244751465879917374683093296179542209539911483735912487786403152520299244244191462231362981695421194265127835462615361837554106766709774763667608944756589853943635371791219686000616768422450408471920066021213268195835779682976161049993029759416233303137342558530808452821708057115723608741355642369564592995419907126380035832368584321344843815399428549735819410038083706783148817801241705586884338829390818481054408669752018002134023047246352559653361050467192044854642910552098484167756993506372473437611420184538688834067603495309956747365755570381529491733615674103869686101475200871312473345360036382786420861246367338951042703822516848133426715898990204889216781942561187043794707526987501784048648542084172050267762351480008893131408674037188744882345859588649591376770649159593735283979304614899748260880657813063913028055767011353071980221744993561419671788077576164398972538089345445900628946563749774892294044476385304949640479990930504503452935662927899910357118809407232439845149639635621535737646267455294261508776275577826530185119990129569941849725992442439015937591780573982663759917907485430830849606556757071949079181925603805183817668276765408802163718719884476236895800619223680005639835384756143617671836417783842405256761861403655246822185243489727005581941784400840348358850558716894522610766067759100446199615698751588752523903418619709464133384314837440902895285474430496502466852328600120483710153145242289967117627912780537748887190613163167649545602810938560987710388042987010475847478423932545737879987486479715400404842655112389974071127346354810449007081379642983522493772284477885941457362470092376593147821612957963819676215392885914302308606324755271413657397202969165343156344529428605204128688487155222181586594131022570516130551031182865211336491495165462396611491415707542819059601970347163424407883955805133721650048671790149592882960964422792482730701075091044909191763634194751488106756950405009637270649628006795541312731681237426817597908914669997563426605417526289337484153180810460191648065671608054423441615723748364020213276637025309681160059094240157674571471274740539816046643212960084126392271763302592901677905984680560174996335821698812200671735532408591603688910875506409866673628617970586787487582727106031969671374140579160601479341159502543923839950286348934018610925190375950077893683891479072157074733655894840532397789280265352600024609433863684236469787220493559164293592465231561594817038815588131998529250090199152045376626989460920421678649607221712828611080016754721485081577861767057730477509590543050457393320934414359820560268691138034813565346164934836483881668994690434768622945838474741981544241332167835626501095461871193861587991571521380219067116098063723232481949366757719877088497317669011410113432474814468826722427103197533420618791625843882969243510841149480884050163765216887862583655755468713639907310917151148756882851794222974978464379448648915888484642111418714146922583551526305425266143229435659310868180663065677034419815811978440639836112881657399302276532366878141975481697587123508593225806850346586756048353513289179214402568659507035167073313253794385822320441289508589878617215270059974802121734329553946969568423438920571312289052314315857812345857969891610335619827657290244179906701109517201721527675461987371817383525463267566053971662932510114050844169253282247523509838290596680765787972087977184214401536118500240134664289405024350486016986330302422656934196911602893438221241740244895065434338103718707270718253327906091988566062350947867261271292982946706031779517023594619131358222353133396638100572158159996630537071026897784396861879141711380311456376930015781005901617931421358032121797091406048117806118787897033255222772398454617665592127381411489485074440745901661183849195360611032743211715244675824962622236362224745368244413166043269706180792144827455135896405663921919499348890352251514460443316993074288534384413090570172654330462262914916897336415523843603289961340569493101624983717715398084042881583783539080326690811680947352597028906489979933258293713293235020430999393867335584388261094585334547696970875014194787617101138519365318743857363906181758372451896104252511131357689897521399093571995623310416782999064721534142072728913809079685229988102598188193967186320626338735353134616326409597046554929673533161105019136547533939809887776572850955800034608677933725048347731947357506174989636806768458375818602005645193646765503961997230764449812994932430608062391736098789140015547314536095065282019753972878372724151179627168570036710997980297397440942100701669595339468262766614942596351795734473069481731939783506843675702162841310864666790415349174638819469753918193289805797678220217484653233984508545278195997280170214562189672571837710229270253729810419520474855586082055169734661518332422859933590137895040443869734213577560642507648443932625365103312076430749174049486058461051078619699698190811814570726929676697955241391771034207072282813524599780539071314866033946837671644890126079127823465964284192809571569512372722782667155424732617125394879290273154919941918787192058825925799143810507246982414873398185138771915371634442409933387328011452430592046254886253539191953624119705453305997719646920226691680375810835608497479729232885813171938837164990136145929634225914293626547598472610483462975827935087066507178923078615956338734040025267346968588477104148198845799834380244469689953332717282756618606715655319829466666932582361244195878326550519056412411623857068680130705509399561926403789226454980681548465209696688648193691866634183736800364392842906964333234638638823330472093375135422150909831546837824308562878779514635636831848659370705550487368985996122396132960466005805872034983979378999922210064369736086796165415675495933596145601319599216432635084182990802728207423485652317486464377432541716543297787385136363940516288752756847840484339286008665335349728873875366919623996306275600892360600905491442207760267667070689112045589496993190998622846756270980641464286850726289158057147173834661624614537091079027757239071182965637242871786528482117259128649935362165653843851983158610273148984967264655000391474838004422808222878988418559155110590566116340457789202127619850199969177066339706432152332964866858311035926862005336572842452771009891714307340719979431028972886046089799474102654196871584801693334979576894331278073939203764912300581990740816989796404485963241178447114242822260390752176012437274837102283750255114605118584128881440396938119164462660649066393515737275014417844561802806381761891054288586002939420364917289924805333927154801724826465756058339881470825890369284156178624376975169313495648103339085233494572013047176127480403679164523900510552296441335491367189513700828637062307416623579387654617291937874092409757443127645218149569268062987371717033403026899968319071010110406366661406424713672458636205747071781185835800217248786256513944681755937031505314680747251549803471981057345549896083959787256446739556405803363841490585970075501758785331762980551194417399855270679055505718089557662874295188313239504884354575477935753920569780570378001020773592686988149418467184485993548096115570281482145634306567291909334621906723157610594232873866154882327916084331789212238340788587426127875570011947896415503959720004575379187338857139081909456048871204393737339764731338965509434730303547854943178164300699231281769316272617416360824931831068097724565216161023772933842315549360005707405635375544466790878222627484276112462502580488568729712751192717973938754185034799531494493139807316740272724921965145329299757598494316982409980481419739883878093554551692840095308047147325235377345073576975028163147519526023781880203019737881550610909872203392921571963433313578485532514902806986898576553877802126152756181918888049512927463559896386800036714761682189967255290680129453159191506988991311987906380738656167839335919898493175083550654100997761060098406561612736835816398915408379859498753855054679867456739771559539186368193854898069658654611525231710080837096926119757068192777692959824883187018282267164220752640670975870275807045018129561677871000257124267589862043870391769759149900298646428146384801760717413958672417408324372259085286805742441027424089316484301575882363018493922146077517864424682628994099089221141116180606407967569240722132048652694776138618501492715531727185986828708706656771304520589601321648633945112301405878864505449223470996816671295950688613387717484883339568777576313945198304235310223066791197515266511149621879120029779106661489906317156952692733387381810241283003273331616795189457752679208631420939588460356307202085179814179591227052888273120760341510517802187788954381943416191604635443750528753364487180605659208332247606729968517093944834204825346448939271416497457962162690984569427321890756825748268924469129682325119590914406616761616421584964417551332876652682792742358870547917338882334056744351029892672660118474210190359470956472760255237010821661118282557934640685619613575918370024646997016072325454115278320125342849242702499234687311919633863696765862519232395978253484007057872885486298977583571916874851331244753236678044826059413513400053590325088414011425023055237433649261171114533370943315373130650211519872818098478079312402716389988862242186102816797782314261003175368976464121420580533114242159869061350597998964426987737447739084022732975973943933521757189846123496395790400944973993597515721639367449670523099560690766030594293803007448540490848698909605094476832560334532734333161357871296355354736765853770248560898736333826233807597619488157692969007972264660130144086752658683548778770257349533116925057677603259051633168384981152257507707803596379314354193184050984281751740336927229207567522955448878398973476417126686077332450377913776245846702643378061172572852755456139410681481532048728017376748230337083245032818053867950263252796364735914461002877941383448211466969667525816945567247050746144359369795209605475486901123321008576549497118886746250809823686722969461279758747586467669753187214603168068000301898864345882629465408343812392062271951953878983395125823511071168096555026963124363391325346971629579535060660491255445268338556595080197060015581757725716737523008834170347961217126116661610489674279555674324812037525946859343007466539756036127443156250019370620464836741001909653756958137413233113625390117451431597597384365117236883681622441801369726034455982299347194728972231977677896814426078405648660054244539832356035771162381687457121220183762428589444111858085267067122508845721577464098592082599707106508788483730480792719494707892519804241797856932387646719557345076513638595912692960802775173250101979141846403560269207933274539690230266800662746411969307421998352965838374718235881733250929793371252547759120921229354994428279672312648771297881224585399606259593279835853211887929011672216325310426425604100592828002042116447732876816713471231429950715351293391708019640558491501855312816270413414854372819274218983019096299313130426057191229167396786193177117490573669972247877183356198380193763572185400440303216185158287722936358478289755341600030362078487314568847458563084068354961333207217025152466607116224210240737945888229388098922989296118188167586622104880635750016961695061251584124426852801078068204520969807709073862770394977056405772080531998245250742674073498931926120273599767303862599925959086386938694975500612832143280394334623244552606442605664511006185665776969400223575407303413188202256977353298306497367814801160609346491576379882153143644226314862718267371475757700078398079299634056283682916484920722595968488795359936491913462660605485585750160713831043923329360281718908664211865900641323683725842244362834207362056008850440775760770257494332415396531664782588154064254952760146767694138023421088773528736014388911592473257052293754366084147696963189939987959466675316908942371915886733117731711684325235639033241426052386253751218635401075413307569191622474704455876982317558609460635776263330571641655381847732629752967833499095269643722863028278245678442773898941037523049891665340082928921539191875496611974046413100593752596546674218591478141862778905790925745284113269830346192736261765119546326290693891686889828230926758797136431478416866173119099278850729287647551725518569711400550918683837984250749846663838160745190664001735442278318102152936882984516408285277849821636778105212703165089222634008865465405993661763335490151429123147519922913438540976329916546582180715459474545792164573320762564280818050353169779707739727494115412024477700418996726438919784749729681284194403791862149582426255041413829662729320125202065241012303492221123811867217545781443080218446907638524046196163044044778255698371405720142984933879461759285057863830632173549591147469302931287932926504991565289523195190150290937674448338501592327329421909326114591040543089621746696216999758463545916187155890715763610406168839307102976200963092114810028653922147927692793291068705170595244723772770323073076279884098351463706743040270174901436531010746699189656393946030661066036801859565802282343462639941814517946918720720391390026606872861552385121712864989731523707800844098230235725358493444335099917842866619823340907069639010779449143962975805405696267412902174500439489331775888106936036676703959232009995376476239636223239434526360681817915789167199641527097289241540464980504554144236967035975999617435415949561668593521602007873907768667021052724927949572895965555341243394912320312862763561850833078878238523068998958138648066759033903100536338369054415219147662607489966110405443531948679994875980068087107413147466796796166158175650278482657506589813013426335963814152972164988764763077954208542296793098663427630054253611448264020389092715470052872684445320163570014864288536216872034969787294180965038911354652017217231208020003989790412558342998659341007252435161371922899300098938938844949306637036064213946038989843115167995292738668471001237571059016484760920709648717902162546682339872796584339829149918941484305298098291935399604738692485255613854203267524098209041741401777188092692690962237798690971274549029649822073069268479466136121065752220015180112812843608565499767527244921534031201471585803944243924871479245511082949730572253052616507805797926785466563391974423174570044884224832113452336056213139632918870091907812223846859918851245466623133254905160965824722717722029370922766170670597607133603702633912820325751982557409125612367424840899672543665760288755101051141068798135999659168186102281758138972133042699211474976498683116329199113560150691905094042684849166037490021027103471555811091400778152206787041129466840191288627602305640802408732486155432728759620171020876310943672353328329650325757256101336268015145590821408980409616671671981615314708726296059924822182967643292017358541811802884206511360234787789569780797302588106930947370936306364302533865725127591559387275365142887521778791702294634637892724645992390378635215507582103534443433112900038530356461837243026675105516719420326549342839049199539313967730295258370569816947240070834003728761990109406243730102471048358506720927088974412292982371160094341581211183500753421090632934613825888181056171755492858417321722512391581728409252500127856196756439453094062966086973577985766220093955836404678896979276226354594766887837716343424636037822971074711059811704146354506011000567099196611616442155990380757755532211736572361592548557819250662537968216643197534286947520506049686141934301800949104186982452119026820026107300874905779137276188195351032049499186185467230064266284378527491183498844936911895357130743425344672131036697844328520993273014337865094135810668982476421051076289804430919286181610063421998840876318908639052907297861720216395244797074969884579615025490213902438220201164457291468520144431553361228945521738561203025585938408689984157280275354966095668795391408790763144524242026958688563997422348789846668591902487958230698932874676276093541321237159559134041031784999503084013347202702329383841479221239722668418519544520723353355257500981182762777634780614559234230451786526255640520553292602608950507789428984194344244532653629097446436967582634638594451387700293864568126928036090922656849507078026445841102367965710360856944479850689963333136995311035996702735741285664013668267094593925736436985229567003905291343355163999359682977538610693705122471308513004460842488255209603048920821467750865812579329304888268866529821391761544072431762035483948060719355350444394912730616372874010766547143443055828290996001056255253185827152487488341046299211314353140075499347317880795662148720574776188868763022928850879350373093580792985307450042984005330544712523862710782088357463619511708051492188362066199873528887429995205349122960749261888836133618160254233486517697770530078934377265040563384082457285054027651114347404929213916196628659132206524720726185030821261508248973679297315387388759392765859402688605605966178489706504670558683623801715328821431463248202490512691534710162180778177649567006554202932298056957277598498508745270674254220794443555444830816409673855302884471026246517571293943211390068991902632024669541730524203558963331615454420078489661577494887714277162001818543796958010384943196211968285233028962488950886250018512630180862128288325848590430240027650540888425078051679709343973451614651468465941549130357475074728672058377589452658422065881948007220082994255130339965206589869061852454477077154824044204824466745974969899631941481661350067653285546695411963845775951312697068581885922406257952127368424395145566012329761593474521353437111641966933771466102062254152629923508973722054777818947811207395019399443127336982748651108915462375219731748263292799385569629113030223996044587697208517706665504649706839801892240701368333404813408569053452492062206644896602501924415508632907326705065233091534522935673732757098262738720106603697617629196127146053039756606286966634436563972557304941704012279585487979178021011543219382202016417662215729044922262412865992884571606176722883124885925677191879263110740105580629821097659401360317110876110300194330451292057233535266631072078603612191971100553626623020167865711611395814336045811099936088035626237892594816208980403139456844813633236965681822125394092323704773669617792513287651349942037840201764578078371993997397962607465621564635839140692296202415061640632266842674331921068323679005079164373587332109724998056644753027489447126949887926510251596559173638569397246327528107597674558821396501085022038351804567587424193950191320921276065281606045608647394767025682339581721239160509520751658060892460972518544728694879220066388087281153408421413078189399111015776930229264121049823242880672570610105368763926264886132763980678968952167165265059629841196087119294040716137935888450529576179495906410147564901229520338459252326937331293484682185128338314099432647585231867855702552032098597347855185340578549641480720840369950585418687723480614827764342594559414375243967956334744386402973927856195523880002468160575580669111199152564639606679553490534042654100304308323363180122667053567005165464167903073079390765966574899961829973509114206388864286678042470090625028879475178039831671563521832126997044183936259746752088174298751784948346694048613449476382834729303048975597587066630010959567996443174611717492957166622723643727226819305749088938275477969882855868392777105070562232090599120864762799486181885168884552404692360479572995717830627474532065668840320486578641056938855580802686990565652598272126843821508816802245065174003208744867505481264941842619709801851528147042824352113666656384208869267536899532622464093917679626041721525322413182628910920285598085595888568095689541990711394773644511715508718240006117145863379346771405954568406245856905830319215889779666943079466836405845296320921341913674200292682446008470409735951117894695869336522197564233575518364814131286864526306367958008773277055300405447055126043477713242664766295399278297443036190966737366083303945326392708610159880120689639517835638269496678672544467331673661320608303990881385965323722393214944679931518309397894828334830373280393941260096880102827891139451756316568474808109328021426687978568729672128002941811822728927831743291936205133088501126451284360582614136142014723873574916438432559131290460010855007742952654713370793795034578425719740361672838923648550988344907359608036610928425878355348234240342485952289644745844705193771520200514610680130317990157725846812816936215472134537345717713843199109650936758038376435085422043991072902207641678408383873119609161513718418919493945496683923300993057079153203435997305928330093221803942653224144346534124981444663706159748000592693570767759488060307377717254071424927112269391300056348216995599174466462228727242340796838863351506090451686121289602281644273066826606318914449742549632327421818041033972589311234382515269031571070096716886960548506785321607720655849777485221583016225619241370246797716655007239021469340746572193154468364574780111163636452554681245575475740091959240707406563171597342370527033097611629074976685255415695675094490162562403004008176385343864500686762897505897091874325958526921863340132333905636627361855505478588179999093347750744328793648742291457167957813730233520883387865003049006619296186880162200688758989969498136748812154907181923564474375103619130512345703169775281188041166681390858665559689027588348615865771944168599280731249056323651726582977599595322803592692197418723671204068338048322807883610996243497508179609102291537295559688521015004142129528423663363930417320977555022067448315689096601708329437366309999372750611253073888796857423341663252382674487949746094356042269380226635620776453476730281979076024889857737882683828031644198022134134514272896708085295775818907022669935698636947665684606899852957403679315876212689750357489001102456349813353048825988020993875784132138502402026075814738726974593226670601904880067028577655994982363508191915791644517203734495776656010527607082034256601982955560055720570667474512558460529995085915558421824677666185391002595684047841012387242087825825016448678144449110312044579595837366353373719635826480704212999464393116360106566822233916374366443059881067344188386592911698613391220404174637315974252432943199539257494030841780173287942520900904130779842413053229843512245235766608801890758563170491346929670101461522486094673305336067007708118213500708249236649262758769481006291374431381369451786550911907643371947242448095251050664096169525380808111694998325495618026023496382792337491645566757193493815723490569021301998356241909430810893586089709945743656947147886602168914209940779205614846400288447738532108315518325426333648126745625177218359297214655881632190020030826202867761276288831844934858050659321773990395713235238637171022679948748837590865818629046764912660663419712902129000783187071671005292653413115719864865265171177582862744079375684384874401622192669923476662737176077945560714191206005650988192976233600757559765799546635165728859144302699152418668691728757858287880339060284787495032763910723677565219844250529718695328469434820039416809348049219653612120627502895387885397132582684520226240303277065307761820907380681459889032691504444128966257442463460594701207056389618175600423392891208906630820440897014707142002405192976085000834990770378436470877721448018264313304040255381522427395503697142567152488011073346611618356628943980116106223366095955574440429012761114841243511561591150148696993990826563304412442714907645107624303537327754745653623388047797706909395248529856296351467478179324984753968774473379153562339165227413488896453938879295988161839713360290544684393542233766228229266952936065160770718505062851461094018769863585323243509192045142911381704987087891188133113670305881736446433819033578203518607871567259650868703048980013325925091550368438945624910847352050428030436969745758866039959089831345075908295896241191889696108570285147026541081315591736569431269443226795885301473238825634992591542205586815070271096617510086361938665157778428560814475838097223716373752433590008695346423796902495272026642198522757138276748714668759888036261220138279292628384807099908884478745464830348285890233733078345091978311375460763098766012644098452676857101433930265409717158708489514302766418564918353677466961640455757119331167698761815582930540307960978234085476947873492839232526743050184643040916334298670847825246758173353384132093591700451531140964092924174621296624500404520882627617004490989844501612043767430455094169847768165348100416021658301846722671249814682366319572180185064424435383494327738251755247061311001957888394870135212505722990004509064751650405968599211573567675899261491146721994074295839933168318204448351024184224728285179097374552158363868467180371886697465634424992454390457919801551549339360890089349918719429553302899832208459291579061299414051719536717725391569109975292723262179945921078706999437635284777267735173404646944845699830794072236632921500554348756900582435218300577917041673536984407447052791266618292318211238736337004008561902736888574407745922352070982071903575468255352013993184451521974839170437750823324321953008043623246751626225645196252515776444924541810488932561795088236590813961734975307241652003767986968254703011219056123292468892975847910144490127539096734558284441529740530503600592468238503955308314194319728427253526130999494950952412376640855884554671433406807724617719627211966976785236842972647843584885030192593646463510656806801625639101817918204365282011481499421568386335410784400887743707109900592576415480258979540181540684952336441895238778878305740333402436877319729179757167695603798318939931420453212475286232615987764420168018737519574334508202855480682107775517028626593609847696555641067594318443420368307242557912095008203764584330054386614906537432822934759110618738330687464827740424117016385734886408163023665329721011877769634927478876651542196028482984973643122199257846274736487510543821971039046961379408016946295404231950331988975045075580614648974779949719098823680390743577375572591780114453157253433932913978516307742956654874576238526078759093356230816329117433817648184882029995362811969203520287172599970977716723943475935489319358099644836567764858152069382144183806970797587966776198790579578213896765718549395200833207679592410844440600080496700674035057442293586092751093879674888452115264164199355649287767052397437148483116513293876926304367031870245498054680813700320024360304943701333645114916283877099977547642786188179131472728553127080626911701869373792131730132908546209708441421182635181263927482140103754236541970034048124934741262224711589308272771848639959483980138290014487310019642210140777438917676935989949881378798539122243942092613437384074941714552399227289806348125024476592772204240469458819310141996370070442166470137555507301805507054238131289728789965879656581670949201831783568911994677164596928516440444709731102176613654606541014717728321484359660192612675956799370160594086540454955881859239492958618372243765989531309297312237386997843699013591207048098818847607440445372811428797623529602747882566186609645645291573229247850383300401224266074598353755048359255163273180940126201160750359200262037862136777464427878368273436145616327029821647320544884520991995179100764267312386087043285864046265414602630991421906717347389006346136853383338382369748352823731787749281379833317137699829731197438137010150101102916676648433736622244962482513356823318847464654281863411444159346629560279094807144275388222777078426227324274996391859309166644825023201865637965199053996850562215296189872871202033912286073095011350141972143032103662429549560534231557287943372552133290205522974737661504361952453166879937818796368119549447374770067525935815909276186595346439520751026038750634285061070247255298628826164860879594369970694579388190314666891432805802840925635073154407775926707206546791140094774907362658982365714582384595878004527525564669350353292262670189759627829706333101139449198998931284068981684304056562425834106556760104439072915054010920187081240705899134290606036125414247005986463373468349555563931245175550889685930515176360987967544793555207720301508385567450516866528502449216606472787065374172829037372363072517927988618410503983494887712052810673338086884032163992321832812301427127416893604561053921404129058154491034881939830979394028044652227382641139053183319745886469231493283555267295795643046391238905757043484926876058105253309043517276248126331199964451493797720999868377089317172159656835447642576051372629427349327057151457472162658823039907898896383917060507478993144487479543500262621503962130902715442734313854303910356707909195856875439828066453941125385464091881662817894477256130038443115445638988613721066523831204675783421833194694412785306126428307194019432423749128140759619619268244332925034240687274669907746353577082211668176637445504826993009305147631610183572188510679386761135073644361122681735422710958177414756322888601339434104760729919123684952319806655832446450553307699223862117035785565414243731128283702077871407706289924265662410873200053567953703499784556873722522810440677384800211348369567097230762466993000290943870508592600187425076505145610314241943912821156992693862663800882546524112591004630686457811025870418205548869499194724744270597599389628246266376827761867958042194648983157984719236912162459082290740084268962155609986358607733233300581827363465355624989884588954726787195166408005953906007697143384125934048189202315498348711230895639065923909354848971607815530726011741730946628840875804363038028492518150860658896554085645617056857090587607281881661192014150615314595677688349116960283801918675049461634783358700648917867007747147004929846475687963279094583504227116003428302397654899719605284887598518332511943410316675585760841857493245900774537244203373619504693556963357619677935478654592688247598966895907648287403812795830012158139680096730910429636629627979340790776887546821478094817218799692661979128653927435684989207647903049768764923874427317213847447239447160345422644654007107406096050911083024483847114069966932013521661698958977266134833034427718755716798407197271172167318192468643615104446511495358903464706188178252483193067925828608018018963290633529199894490185880052029071110089899477181280050950345966211497479668984965226648483887527164915194271177090081979865614939068987733737556321158869802925729905683123411900112130743366377302727063786126161682798403218696489845477115342437398108090130973576300863789271843290836135731974744373037426000984180247906927553493295228997964892016950515801825272815713287721702447814862129506529334128056338933212917916493896139885742031864339246251310297224612656604182445178795429889558788336282756691951134802196726764636190194429534691268904275769986470519347125012863854221273093786329573581396308363807081384211992286838155836551233041696797695956804236997470825751786412123047160182979146796044123847155004527106847798571334395060730481071426598586963287503872287793391510001558184091510830623857404044520763666741263683702052436018054203648328397160935761576760271385505495796560592330296341976443164808629312778822789309513306860990642528363114513511989313860090151214855474351952789217056920581557148846793394785574775706412318375247794857986988435718693279226039579724798561418885422525545120725137002842721290852165423258237999337900133680406867444361283406060123035633431468031377965150656844976128619582778724104841625718580930502211193921480116120273118516543107568292236850073817398120970443976844357319082781978456218308079814912432943983064118271418394137794733712652509028936140740509702942946381039540822258818798256105402214325348759911341843321169432473202550911210030211943104036708059399931766925385818169044612191461369010707251908189158996464389404266659983949103510588543303349424244151109248214924163437710372106840480544605898721315739555585678858441672730372182661361666775804787777717913622828064532554612486074534606654750752922461994945886990307917249901702905438834758129900661344054203563401549547228234999420669336306438754170636767588378317178884413925319206315931960383702528728803271643241701772862962063857918810462088224849548698914361543687104516563448044488820478838161297786673601403637782184825676986690887427163521288487940588672400870535297503868913298362380454889014511463974834883686279514553570597365317537550124401126497712865311968795093942864825232819126431396111223012112168632201762949661666875766249939991689580165650237890590159284617626640709530047705519165011150098787592337486203625212926064301826502219335131382834956924431884166748719566112975914035739308403280004588308912731356608981981059666619313242754894486438604827157360862342483587080533071280110344121508049208902555922289219992179214005837300500644485941419179825182068615062081751419212821485127602517971157919837515363241375097158582918059094391861483981924844624214412383793708735058654557780252392506677687336969915542232257895421723682588888844904645906083908038215758762558265577912270523988414050466082132517403653983804036573854252675564657409233406298189381797737262736064214525997114736026012673935524833771657757267512711768487708526742863722588901229946668174480487203647726708255614778174150386736703432429349343991558617466604731718949233125252961410499741102156982915619474205170542558395822959593247620158121186596444229505815491787989086923971963387171061813092599121428119923146622827807546178388662913225844287968491936991274514734153740716769143867552472709767831796796228346337006151828739907332823287419916097469134513971716206670401593381672815818832040976180293423655851116982266758501779321012817353894633621647530013303875910998760554899264193418218293315512095889462036006769824477186358888254590816101368299495344888644758673331722643676961144123943308520161928928471251447539141254588023130348128537678652908962689612078856611885786609798181655286654707328222734964888788478595680975282288660701347061153415820994599947269845683519386851456698262907627939801807893050244388105792286638044116308516538436615619495219712266559640292902031613296051696834385244081796866388693271595066068913798051161998995510239805868308113796225645060126982239247294602924313674472885671697856378920062741535498929787793549099218420833193467217795486601655646653756306661151548479916429543486553047596949639179223734710013838257135962707822603677381776631826560723041680863190087723484891000336624752448213149588455274066188264612084388787628237582740709441105991170716215859198407162206718573766775474145238710647909737550703555099750101155431814939408967905978525317026314082279128172178891920310985371526066776569986696673901525651558530119000559644528171235189769986624611183931005814274958557746520508177965517535335957384779847775580407510578369729863041005907716197497222576688202103527526462258356488495403637577724534741112072199558351756621827088744594079109742884320701889584865153962159743831643801615092052540149518634614680654122287388276790200779341173192989852462773828183197269308378424632783973275779627147288700717180535872605893854406327495146212042428961205885916371706705613621671528380453402524472135233143603824533515223619483716542834618176397666556686761469718097549433092803453284557337683825884684659046842833368870690014679428322031733648251487149003407949385382466654526221494048875774826492831704372344912777567768374921556883981253506530065831888194713673726544590612684092801088714206297321395582122099449954915823793238034079597255829827742650719090129081988838428967026032289195113192954227454292608963482449434302793827017348703332477149142044465645744508069163334010971660245460312375607692765663313863212154474698711939072672057281581335945704016956863682145011451786644820945998843957321889894980280980516618608113164766466680796116109721107830349122359296613358249553971993119406674656798584850560944704580873179142845693675058585457012510661920339849347121692468089466518976172084075823142920559316491451836565714522742124212448608601561023700551709052992007159370310297955486306826948239783302351033009153427446911329780228828069072937002089436885300860554355260334373277194330475983938286112396077318472460163086451332187036190938071167131900076381030256978482131102638264965893971062317877831978781395478286585574270158355610422042637322585995683098866186620414599560130220093599506542558858627320009192640132949296635935539493016714798150955619128499625401507138835702832848153022960722931180953196162268950359392133336534588774884650800458887112116477938819205166533094569838676344629327613850791837005907802966408860187891981553944392744053803201239021078069761674173544406416974031129037730028705437432882587622768629802439802903700255929915085545654564521237425220505984431860580635956012694843987608037354414483239416305632024009295625856903304634501798958546875358540613578793180495636953962582046174659227147987006932236383063338823160515732051438109775527805681216318002629987828515700796349216840806090310668072630651241093224198565056713395720211505955496927770077612036221553930757825312050993754370875134915544967139808937830571712160565945635491110186826059786639089087919007811568336184620618565232985508027716862405772841079490307149223969832193138268331877069742933115747269110303869397423393501762996277019035031599984220187204441975232398431677391072105735432783122658205406409949104109759364067067452967737543099194552886357160091157438681489716783918694631756211452292487186151574162008877428325174022284299137653440412550033975005055090991878584089917547757904208542347224213388814078252627862072647007843489998154831689904087709192484608483156144889406314079041272061479761797868953414085050379525170748385245246854527390280675124540584314228395068345926854974469916593787698632759156623818130414663854722152867978291528966997011325778536348208985792636525390746393223916728600560704436458391016612299449592593934649677163307626780914249470006723009928711411056062529793178839951291505529911939160484101954463611609983978341282868275695688090362957173071234917168247475648844819088651802220593228201269448418975960154799987388947869119827683283806962200107531044126850212497730204755219212867142242312962117854742077577534761410044191196242509192461305590006204096901803356488153947039939594417752613399548106712468125960426188320365157689033018305419831865577452939355638753384872342825704796236405416329197707499552874167222506152378792453804189931587615203673506183265328310220272615739266309329014568509541513044686839661801834147494483767148081867871619041448955699078433651671830752127882375041820346843827379165133503484580311242688798440045187705474715382163971716836901762578612514496627343202710778465720932930368600819338122756354925485676148533771381015092955007914647612481111139988951300061089334967221677507907184388071365434431488225162579031326262065608370034733448300977427846925428493986819864332837258354459553728716484058913767867292307483101961637639743637316836377166911392179294310637332408668169577961052320651194424839649387196205828161270431422372901380685717453530502965364043260643761183554624495614090488217097316879373368694695273382818174498726834582312081254673819072512515537877997125585566909403516470062594876332002471149324732872670170527249101998131622270539896896310170564797906461098358063469677432219708627931552465316590619125608386029621381928648027098350390708423254289419736376843813491182736345010195289379120704629201284975027432049056614025726010009303468347113837424116255514763490887827377082589230465336905756136358501175169665245551664958995132149517008111315952274195053207737177464183846889436710352045236178196186287922318749414737313769540161680537111771823829310255695856093328514972014617329960521517755361333373505641232326688990438491775313600107881958172193853130335903534593300335103731964887543368163923380805074101213922187808737298185856918622860542293590229127517167499196299083611063205011288423865060988271070394886401539127621007196504034558220510517423402457443361300283068848530692150978611837006726079676238900505663913844095212522001338952972911896383400272059364545917170828151309895946890777544484334140089579092755086756682387125494353959023346837978939756808453306723329208189931531284345229574117072581384656122360960387189359982548943294469578099136706756243208274290104565786615628179410852706818182898969230468307540927645653593728489882379354347898198010330578941694844398024406172599947835837848490532591657644273737824083761415749604896313870960932244076611830945413136856183447768436894050551786334560091373666971790311659968773720309304618348155803511745051491084571780101435231688195839633105457460427077025329768127382064214962518386451880296117398721548708359976621108141644686502655454532370886927587570601825597968741260937793094878147694366728399768592036615432718534774740591690110002719813470988060762846932141488213243709369211581054678976434112179968550046468585803959848860825351522480769051217525165886331228828060880642591321814323831182227583433606117941764418716695505945113209592373025565046080341316470288307493621350266780627332772402462446425726532229694556181659033018401628101559879689994967574250456324706859005093668456585297401105753068137457910349045992318928968007975020327450086633881888593764543187086832743626996609557753604335221890057626480572459296901291277980145659977142082529653253386561225014377053791260538970710911215817765422789495547347654708434866916815491936183562919528114664937935723525768897414676630442157116548398040304342562051250594321858114061992329342062398416531637134301630846749531398380567153279518104477260429200805275347030589665739541475412921096494216497698625691514562068794844963459704969819855781861013706135445788748608522886295933375574244280949804480492701707482424041394687528390052960890816099546816425025283182379701349952243136932608229492862364468156825279077471287983107299394753680093745978698639593914306689321936286610001962962508395491672814980052294593016836778855858498471836067017638681429026439631637826678980013094901531619292418967916381245357903377329280497439042628307329670244229941360318060003106443393483286004130581851534601933747345687440735029594006540662012978277111214368931539065698551518154864043111935302003395007360252859752119531319732799556156614280755846583604221142124370072640047627831453101043418651965155231667938152715103983629222195127464803187569108740509984296091871362466254023189701648139125319324881163008424231492102233791940229752978928951253170621781659778736335472166800582510590159695969116594140703023872105280702112638750219241042795251172029176861626225661247664757184615154626806970362283064768782956927434602645143378863466509326933209680481229882027168550640251552786252791786050447436578205941965200982673395705216088729535544732958729164257719443100392120904850637983459789813332919699168240077952440303626920118667231592676011722317391996880955532585824485418242360585432792017550099700767205296897059221500470033869698530115675663807265878738866352088815451650887782419739739399782351622674849620181741539643204150078090657807538097108431300291291241168025202956576697755984574087408444994682621234370991791536747818388799949997618183968431346574827054706855393252598398833506804996303906489158054143122751863331718085761797302787318153828574631186321165712404231031805418082735557503396200920093264928573017346496778044190010072447722804027416879235846341088612697451676811533211461445613883347473143115108112990635787870998385914570251541810549705396651577621635118987226676419488686290403315071685889937453672734383415042433185348952967988152313891178220620442796044084614373576142639477242716652544453498629481242538555259670863340066005019458422551369043126999755618942451142109391318861665497683987526125959239581100263064403602561136957017390505021414231593098603212469165301813052681762189128786596885242057996302993295008543346808624563623717832015415216987333695986915982485500355034847843757415972167746542326045375151514514920167472393308615919629273718118198859282511755227739070868962931365809954502298372843062369527790436844552620306333915877190901878540524281737254373741765295671591704155219546206189946009210223342873004390756003348251859414449125702219825447798500017337879083632714245196298252532938573804973609927618796162332091066145714360660713950866668596805287208208683181524061388849938401634408486620764739081340794045753971929805298598474996831845361314024693141399794730607535347217193848467652437571174703883591279929790632787201222959247683798481549848257742996944065208961809815633158637118347043458101336869923605824649089639605409776067896621478308294401362748321964637611645300684516132750290252758731829835715335717989815613927327000256625689372730187427932855473011007184105317680174823925644982007408320359715573497936460078376274566053041712606689493724511781275741644412744938367253736996482309437222108421836248589065851590941360881368803942660843937209616777017644266160613640947858740990211215089170507168571580395172354226800321342947568377129621272476866129140622971883258495668520215838467756540182904319279842612959035999340599255959947302579672380349095141123481742338722344378459153503959081692383209103501957748874083028667188097981720023904757471338758509368886619761774385339122742741854751072954669475444514365132112030141678048706151445414257673093337911912567648120630129330332868475816252423729636550523472165978789455019480579946376882874853595796348248795010491420500774202124207644889700255967636799423372360987370463716754241906973863506416507249966423450731976108275546086626011791327478597902726769894038183742549558538727882360398373744495994472642427203778731529207082710280157789204600894111046305552121230164144440727515327331481763495854414322133629997191779709549026504836975196290700300077882726901849434765654094478979748324593362181949205267553139088980473020192447214941410073055495911352599384490801056805770789045701970785934913857913816107424764522035739470995192287733018507468803817060440507023849716972998879164764242290151707265285721770926481446041569449497452806070871480441135204352494441812488227535549616064149380962286482823053683999299803378989645733634932961294475843901388198764595095798441987855474964039949812722124396475553848818561226425280241361319681857361492564689917113064166113519621008661665443074428628454225978900190004254276974832413710299969883529092761716543419560029366881453402681429333586611615532029537711462030829497699771457898890399000432975417636740114267790669338538968419683048567476779254064873136830942644368297464959067096888043378262620676298453806021232739805889246634119669272227415691548867564338314045360206056128009194927197121551645694036873392774908094038277171238622282994361267720399807998316702740652620638289485229296694592982731160379365429693389743678528193604582166799881869205239697492863572496533170271451906895978431956382856012371577623244714832526504184415609246920673256369018092498915302907419401644293997256813510857682202294819050101409556422039110380616369204051396065966563094639015158027999933735028610547489790859062014887183290066929211253372677675605235824362615926976867881262925943838043048622237681953288751030338908982320394468790916404084581237069247123917509801275926056239213653980666166777737948408495214327708526794663558016102344873396947333104277078654140573920211849649999989852052485997591772795889889608132743418063122602365512562136569675085434819827691166813351806293964058073562307320702657896944760591376761364884611406990767846017139406843332508761511787904329375882418893461738491589328173916788212488234181415810532550902303308372723280988810129687410519174207023472418124706716868210459403094292219165064714454617076796143627961291436105648198910238815587570124441704547861118230058490779994685590407589697488208495747392198006139886160611019211682077830228298705086970464927106141095513180921947749908743886447202633049826007864456891549742243247342895669219865375067022349172539309439982439892116248870229409578439451927699488209601942355203747285837764439398475011768936466022092307086786992824419153233769090025853400805358460303479901357371485142010647892462172054111208043719252079570585795176271293774453147321690334176010861019129969549783134170949825230574044891421845688494863420164420411849041942015338395424270885628142953128356215255634175904168153817945527226998357807147204244425373126018471659148657784372101338382623502001923980076025729020802109152416170825061947532816101460386717284994186917626728593604474104114308632620239471146572876695081379294128256201012170812171556807439218810051321156852969447568909708765081676624402387075877806039669897964233225358372383075921283949357870650688172324830558630227110116385103953867111896659232179078547012164651006818962548443356634022936210627092282894448674530784505474340088096772250107296807944873402518000686336986303660514185117671926107402767963758485188647716110746528446195394216745456016385311805988176765422520464293851334496881533573781415865718445491953092177121509856244444256748777748572312312075036305606342669463116577900814047567036022458469862865963617197024705776304277069260619574477607116532323195664351444215755575156867334622335278315703538650068910301066284615445750417242272719652793835994037349856099898802060709750811586509096445456731958976149119176764269142034414879979187869791792559953150734995883448782776573297426331402157333759997037528794892631660593400929123612397629061536466422012877472176543386746300443846083546587597201807253815446649213975257812354127963130442210789637763948724239688902768207483371188268242943726331960059250936344583076705910804340232159476623543899243391637744990374067934870887382001304754190740920349003319608136389857512424195083911585093073844386422917512168516015998679158689472384069185820787201232128932438302289305339011374814126825089383564763678245775373464603030195652210483396562710024477076017816885568084702617323831006533689566485704413750478489177180645999075732120548344829008440366424042887799436026092752019353095735873677082994869715377312637951577095785427081480184227649318567318835097832901002297919577224997682568214713477218441791467730661558000755924428364182495477925640571269951962191286242054378514465329880085938640466394622177652053320885552106626264393385533660405412036881976111082561314667353131411610141969100602324009424164797007719354246251388832708962436033588150594792748231631104370517322334250491409327756163799944786154492958327855914713722184546290323092751792708458017049184417458437580586123507816056445402022275656194047537055864011357377691322144984760395928402518598760019714230593826704000151864370391613888839354834496393227425436303796069287163195204619218840873632931156322796162730056155219394519030288920939235889147442768705122736639929483565472899585177453264381777262865306697567282732818896646511131149001699341484995850829146110476463350442091143686796463377831358583939261428221243777169668777666527604638344838824583532457686416564861641718039700343875264157256526267621559709758669258921066733974200241337203319799076786193360390290910291531435797637701601179977428990661623373821910541010058810683334898578749442560994970341047143870507650287792512685464617941760948195374034392767735504780929132864011341714313911249559896198904796164070571066299379566922878879395667771103695583396524719897432123355679080390110405987798290447236345550515521710808460947640198643188782556370275924898999915005154833250791161534779031591830269347514800897053411147646585272282531879993234583383709842749913803906881274620062627130058441412177021969945690315970742085750188064015648728847991664376692450223208900485518395925461880418015936254656580180474494932824211681604259887482870687836920429033637503948842875845728193929189334211775219923679535716417870201586961778831831726519062678366106872449822340415004428294259311021304511516542062384098239474408300866098674914831058741344865177990830830635471633130444869053448855795327516769291778841234308998226945227921059203846824797430510592590817450577702977026481155813418469288278892005240883034193270800011107116980606908421023610462264166980447190149700685252888972390828186023279306608180120130702607010769402718422344518660279788957612058383144128393709433421145884699784588048837438255753139209067460061888032052188193238175029309097784588517265070309919412808866374776893932852543021534014253936240118258380576367953758180726658839927674603867831918739493403029112992221240547408444450775229125407625432862238014819746471343732419329252940957503416012170164377066968433880562528438733094549991619805725123768356729564465759333303807500678070028816782587328406503201374624672508485235453478019114616872316031441106917922019463049523262705437236543211931347025136357503313741563456051547604710669166344173016743645068499430419627406861956931175707018442436479982024688081263338414271667883202977406576426246205219124140857218332486789289141337949010294678896392476124041401303809037184244095549033386058466743340648749665804308423821097123332258716857600311126840673684240806701514881359534479736995003556102612371409443202702667329357106003334526911012577758668825929211177367257452973800102579615633750773897752133461269720887432533435760876615256031735943682178482616851130647133884484572257590750287590660178210608568046325308425179159900097219094269638456105956567232828676218627600814698319551611483318025959820707795441430064498640822532607775034070253513316106156645938709021188618435469802120045082963130857243314438601708463545622722429124893411043153254239709223602951285070604447463811170412115523514436730493323732749577109010578374009817870579377880156169652592919797489048649724360965440096165986471866223910991801441292476984802773943650131457601250867136429363000802514632301802497561640974427059351723393629601206960331892357618240717147435847526901554119254347075553439926473578197246733168360468999410936933229238750053805653009627684589685157356371066543509507153642851133234778743344467495958347535351302378915928639222967028071677831466030021784272895955278788861306904095245592054267128103446582964584592808678290951604247719303622276625609892714269133784482301235463821404630197009957278203438587837513590231933121622685479459746162054169187178321764630023937058515003476562594650899736242088010233088548335805401385893003917575407739106357517878595640742564461443636831363064093189974818791488368147281937764263736036114499949579769923243649658058008838450709893247735607710748071334210818292358651845025626694503464954856631328571095489317728087540571009068619036099655457872361767359606746676450037151106568488667476496924021851950109888596970083137098148773935963180585060952510327511133845958915070091978753753952621999015180670994573118877283526644395454234476066590466718760009710058215752365256956325145299468257711927527998464688841541942804989288173154977882760104150826395517223781371137179501469069880126686932306052609667080223047785542722093593538667426120158045102769919552885568204291059231620464929282566342475387009976142373717420746555609109049556865092507771660936217099173759112413222156349047488686231635724292574992953840942176154208506377474321792102226721785109015678142594811857293250638172203313547204124700426338626338612926411998729779115690948932524099449558562499340130199723066374396351327618894105446383006231402075609166243680886151000681232928550178011958683250381285094757580314845155368114905574391175383920735853188219936571673633647148145430514320947445244029907452271208975947541117001570652935922318560009873545168399878929672015261428588478290838246377396223023454865477454076905876031301735224159306204413495394074508710638903793075111385989692073018732852758397388646966150991932530927983746561022556925496961013118870086819897937302842895468219047567218173404827603628906003736284559871986569584199802179596062097086871728128883611469979359330348603910857433568169769658746559532041445501300171482625928748580634188824790087998713186013738361050718071168306436074430306320364401136635213219686303226830522156007507542845574334165158334975084215545917993635405570136943860622393484069009176788617210985867477841921324649650014072931017749427453914001215703580160220550389900241913398706113551450628385262587406994080554893614976847010222395733011688481241171062459106486076754927855691557905430681653720367781379658237654577647942614796910271730475875445687718888073816403302688186626125581700179797589438031798464968131588664841869980865896408621604704954981314641827507214868967555047879568955501448385930232491309118572547847275284448571699084985406616087390956780553800376856660399605399543685710001246122815464967234335591907536957968683352738837294178605977337713512544265603127866961253945508381770499747074893235646037678937829904408691304429898865559392651257780816411283672906756680057479640822798124873604835598795299074482408265588623664809556145131645759019654277657673814223041176077468685055495567081894754848205883371058480757345916146033439749362245271244861046691940998993864543677046824436293951840955532996205719870368116923478456593350763058613717433659690802754619503193401348850408241533608915886073558914732590641143662305336802480866352634692170960747595374321040855024232650848568595680695919719593118365362931221199844818620902705142540856397929584179711020863204085694332183079967860795571696398338595084508328776656989569132775839854173245547343450357822358147020381798721262961178421933592505140566529019608470222236341401998984243324461787431748013972243878191873719142946608764215132364628614898985330472656613235233230391286416166754300501177782984789824071470782373139859600706479087914926868181080911003007656508350417693637639585367545984134648570660834537192236402473079762877459785679990970323903055350756285987527732337515032836816633854478315942748748076875425384783298477445102468751402861020674762285136227715968457756971699997786911827296528551047187979020695055379457207292884108383621527687641349418264999861029764292717901432855186043596112188732242227733440248067968098190264893527408572630629032795043705815977809534522831724084850280144234942595552424159219797343200929230598124305104623447331689641246290309354181557714094788402708151557805553354023548190224796568760627879447799300823442547007297841525822476399428310010166083231698757408643355121830352465141399793672364243832974020512094398434208257535018557028370004187728888294046072925185297989141420016693213304340923569445718032899104434532521846109159405520983793427175014371402302134773252134419693662899216949884017392954731902395244757397718041490285918800239689192538312835703746986270000503800462126643344343169158244236605751283823225051515952592522967867081777857139781476800039774498361429031926130960225035940494865811692911077291890754872248815771465846792139882253843007231305360930772261300430540115578516504830796026938891107332559197425714742429253470907142803927329908915447480024645992345132397521339715132952775864572075126720759261181126373962505093350832424155092340744778431452975650137155226845264423852488246676755723262914619540488298616470933351422194262732675399298119315274162283187083407728459805567397511285041356938623892549422734724383320791800138262911941571997640975088440082686892978725954085331840744983636793902150160259839050129310562875834158733403685205927870822741744447713583701145393781977552036065943053170372666957771085720345218542146150452754977108947835530071125471522223993568545717597049029540546202187022442850550056279569398968372391903868637737472175362931766938582175066883961399240939402253709099936414654406985580503735053787956727739226536023276908668126695314789658337039762190417844092508289857650830622755718347839455578037838851071661070146733554675915285498916230188713042636098629304882099698722266192688673119111765709263887752743284047651337641500232584632725665553161636910912898893428766420855793288066526440517171518766446931144416418020351429290371149271481376287019789982970776688157560542173236484019371840669202238970329223808694553390683047923435695368294301031756116375948408040623596309643601710664678160183180506143681325251435933195756890880225075776404386379559585490295018199492720380504124667259217772749062538917858987634619196085154461885981492323154462017261535679386706046619512244347541782163581694184876988822096811248718294019229020588812207014955063837078088306206599227321453149191247060774685537802384913688660398514852601130632969308335655765068974845434404420324886865949738406400724728585714843006856389345967182232102413071035996956751667254085379846939592008751776753627293420873671456290017304590608892828512667464194489650729184729542285396912044448171624826897091392614323758424806108025579862330083611720477214305051901399899290304287864895398717421787137041038802657552913203964297545272633418251366632477858432505532066456527057758583699480364295848182170221882058841198550926096629687177695785239588286270989060705962824497862173443713060113382449211188304565273237453690926602147469129746831567209435618701522820107741277837562588028164105838818325041921908596259502713247868238847040794125478928543882704112018554459635639787397157572381566588336962191480594032584374789145166238461730105237129838105831179436598540718723723796345530342838659834040576270345765612940933318605577717092567348854369598569020567802637948978560464230825391385061321488750517387181361523980826463649702133140081614477872625510142721662080584818349323347934655755735187159356578176349731764082555795674618312404258605390702197825411507206845233287043337237642453194093577826681326603234368605989228346794528776983031076199519484886134569384066287538065885807275230647440259200165576352040718172831276176142803823506243351028029570100859918148644429838615495482875765024592703235140112465216517603855128875885982999570993152016367689077994871847221847020121587842935783378002688831951440539978420564003866691609087075878718598876566859055511656943273795610927036859673375571132885258380954938228294544537937066923604705839992552984763282328548181176047109565153309576223971882359475442986460580860430856146195312726035918949260241714890378931043453641470876389378837567273142952955001872089730369889199420044122238785902653814004710083169818195118964256488080366694838055482981223247028295342223622243372476817594308872908730973483628603415569243263793594323320047760234440303426167419396556898816753851430738355174778226257818133946677807466934985786480583783088084722786451609438257070965254181736924418927445514458038133079847753591275642220185061095237210805641315647292169069566551427879230824683095266273905015712324339889591669074161730883214201562025133048408656446931171742419045587465638687737589812237562583998052792179454154736151352917621024242806426095715924753655186043853389404079892399422678584508218472466185114429097628083592131525672313450329799970489486927776075195378793149877165587880783290177437671928129153183197578762685736818857725464790971656251404142130958975870098186424125191521615019601636923149839133127493353967421231857016277908570785372377179218980511868791813047314690512287921160038706278557963567423102856076912861218329549151117277587420652723526463045538908233735791834069067532625519025068195859542070664585016538157176286768309889711839485445121447231657226973089073388709085705704262014077253148349757118798327674954179353025084485486349173337924630391924410207120868438490008792907234876237926721291745354640021203714823196001003529225982490127503654653215027048141409391935485951872434087934664450095046237815132791693237689406614673639395908113063958950301861753225073422638035826792107374994245308598313423253382207774508840448220696795358383019490458947593501440653597516575131855161116805635855291998719991854285140881001364950400213579102448806935190254261909880757509424758703021013742007506535048316525297357870278478044551661845085772594495203194427854084776387957346470574942252499192843724960280000408815769929865580222146005249392699030199779026867892604879681577070891678814504432369784348053290966916493148284609142462498989458350133241028529178415144373873617674341639907390921387862843577408917186234821081958162493673234635201830597516791298073832256588512008200967280333401282703063419383496240281757294094394644008741806849813427192858485927341979014344179742807918692267977979571422670247939780779260060739904604921418622781844257925196970174222222073173855125520757324832388649741448913164760211227003696158757012551898508953524034742931809009324528097399596160863274913429464026196377926361395297006973138355420695025691181191564638493906778177040602439901007629017622871360620088374842663903450831846669208237543030626122612432189549916887515381924308906410066816510731083198988420380758021969331991896742530151698199774391632814923792452934381782280026212304030628726018283647144944542185551449871546278136874700344821914857037032900076414211823924445612959080112273935411824980750001913992086140421195949907579259306699430836510348988277619445652642775695959607776933427409421197347718902380756543983176582263942339099129264391804486993162615786697848422006701382882197258208664189057308227070735329944330032340153881109085512186730029170076185130645828977149851186736597009047089004208379395722981529063282652363654466008270956628369975788168978155145122957832051545800501495202366121843088796396177074524849387288337737367787105698869145216117127039751208559923271533922346397085970673967328235181923813779362898942709650134368356944740687353101009844830225551655988870002503087308212357975582416595377087897365014599457544231990264003527829083771038748143240642532662201362256703966094211405318018516795602614638970262084080183836085998167026497415907866650347409449953681721844434496814540286219303575735794476565666482512753798531234799712798937641810647323305359501020942144903667222470919296991141555271614557406006408690891490061038248475149305950897123396008778466431234613864553869162819499986707656388114482103250703569932562182665239849277264617063967641726234541323813017955348535536540729834507792939549338912389228326830083623269147259209326050816502131500226552687099437245331630125574923525044965141488251213018160860711671799919163054890622019312494395333561169368775312543337964200265332462468964693444186781870686415874491902158665357621167297252464376641950253428561414079471571249002552718971634776704806437043884584407360217667468006985453478990502664081231046655677411842611283606935558615389488176105731865314341448350774813839396778445820215943498010048265419778228377444090772301353853381926229620372295346184852930050339692971062918128180348048348262697566630897929400913677985757944953041422026159645617432141420891578768884992903381200204590468049700244499253004126064417553948268867060169164430417147332816632008108510306261478264486472636138764151431657933033632642898525849539813299035493505976772628742905365054032699305483740110019773753372073130250682139194133637307793918999210928392211377525339610454783795098084483700328447725291504404904570335479695219304804996124885598342274689040715974392862841147068654131374941009341603874718284867294062088056521082313710837574857367958102209921526825458102344843817895961648698447770913815006389806843608188288085331793755566689298945067307162392786507994877286797306694196149484480679462498642250928365566286643542819401351211223895154943315606033210139172686389203636097692080369404340516869294813477369122636720079185175682990387455049604434434309786867999388928904055069349854006765749186466736043498813609638662480010855732003173752825770746223609311674309369638550838924115194392874554069219138137395311181318644965253732646933552682723098563580200653905758977115180801596514190194270492231315216580421786044554202605593360094020697146399072862708495701454831992630074858579429860660762373148935158704874115340319736266906956305038187407499748109714888099951739286036459162731704458333879835923040400705157322564662152140187453521325206102184172994906500419061936807853872063766874530125171435324837611283934410995383458814834995724738673785172514625052823021372624932401941383158605227584718343603426789103981254653337244110756987335117024695356246541961382392550595107454890763160303600867469584635447008985147115709252226063550711754314532593868999160888350799654361892276307122610327584411776443619444961600778581907350674638796846304299501628128832341940719501808928500384325568030985432301812190074048900010691072755570025478199318838189886551011149109583928070581031799920303239223417898044508705271668575325680896999601739480324228427419385421400489927254856501639710149404950463104139368662298285246343566472182430777645511997906965647729866611319912732072059582847532007287371530371241542999338460301815539289068487605628859806595414515209793040330956324933091075578687947320737800481203473500999140159251518265152592062644315017911077967409426719667033539768382010850381835885374746297248841965373258095981828353575477158901743873175874703305307476673346086228645690032238323397937353764562924563819414223264285974798790152553519211599865525179766032604914987308819682143374859001164568374072125771186240463420922534605079808764136726921501673111436510952383360701332027416825961589560488225002530641223149114224127714387972658146542857583739694900947018014671751416042997464176047336308172801309712329207464116004707172344323068234362594439365779649258590110060977279543810968450445959154843481823444463855804660714988722989705992995907919763768859383515327794872761511272811793115616146255617202524465282357045337005925981156676682661312211598219532142015006085254518136995775304736819553914610177193279872652625246038412988974822667013765043791523282166670392136731912142450298394286805258057565946472116615978547524928286607127083578791145762551785430214390563555564977265118289423268105833926659804959359333941864160093691362261663154637647510332442146960425500664050817720770391665481492965320347992716510591868663164182212795459846309017110104613361128255998879657787084860174691584103097662576569746157913435647051635916890019106277037809198945674167960990214584944769717895927433635198822624395955640608265164364835230432814729965215460618529967398972480466350275112438245647135965239160685673421849406614188814243290547664784958909674864296929996890048009492033086400456008076778704223493527682721092068855152290798024018253531329115841394542440303984337619815757464072948568230821606903792085612870203862622981555059930715116411962698356890503512469927219481521184841832184509018620193524925728655347339436715250124444324574713491951415935178676678239375442670283497385002886817909051112955002639536074527469117926402571059377200439553335169711901818937014124859317160749007320812144089401877883233583212675682601171874706898253157957204800003320018878729265500682884811212525075969579431049144591671807924396310755920841977844325529511883662947816095441680770482501053879445861583439006236689607950716998386404731493916890319295086010150021304566007524390620982663781862020925553369074086297358107218779855257114715125667991755214257029321972957628116122326442350208013238050826964681991020956259017663463281213845941961776645426370813554246136329052932481127917602615299680132429785611662597469786985579111941732676423847045383531749622627489083948484596878284983796225286372200607121411213453556539191039619189033006429061061740395714477496085325599638206075070883960471578886924494321875187431611588313467207024540897753511763473521884356941401062447526681080971565622646087891997944935622304985616499277352043017935928688891137134741226077965322729058344245406177632117458794219295646085655150241895063650643366215924939260499346579538807749574871824479523845837942668441122784158580021296446190585712870689646674741584433118652071032940299846252680955160363005568100111533517469027199867531354400377409036661012125422067756930180986934637183521267029013112186955945171393448012871074283714379448656958339550182965971800806724982365475656847840863643307069639894848737239208208125033634553547550986374337685483436664087462848504431319088477624059729754756229593524105961941204327176933044384231493837998459657494411219787298971588913823847338686846667752082792159824243505704038284846449482097330537830124919067346777856680431455171953532127771567882671720004912464780757475638467311127853047146125305676502782325595908136681163757155923465143897029171938021265756424947384821634676379447578435087988311801592833627030624958119787069837583017114111913606565748634163355971095426825582854856730477201668925491435318492814000816899531637239425035065077766770224407329189897119796053876259524424887395013067715005921064853255129795887043746092097413578786398562300469162071511472044193833362211772666951557147096397295346923520741323050778415887130865138462556600465886178518051337016263424222369575883866542301101083963946224762259154662308279111541754966181552298287298811539717517339238225524266524747569927834271523616332322240291315768397182478414600385967530357039741740790809003629195593949961729087890895163155007888728837394573446965687428864761524889712558761333965560937614413867232757077799406684357122927725627170416568202289952460631244057593033102245471980703850974950117572159299153147429996690339773038242925055753106538528352404711030844792363760661800606690855127117538593276309777026813160579430099480884376881747832104160910369802254594443381586542966682606918758282651644024219080537680447994476972888601939601574872139234400725796259075940905665949824296832224760822675702495986263735800373760455807120478217374724967218717472882556818236332035958507943560647999745498878602148414520910245638921452497836298675888265004560525978965995516982177708014758251351749289277778810397263308262276976666443608214963260846798479931497264394904739821455645005186912577311013448228334239593129251428320170727950660217465216145095836806642337723182495432937684897156827232154077356339874831924036453265209437148064344116551830085062911028670779665713166231064969498042423560291840372595526513274154383363114797112737595712925737828794615627175271471181534789019463515381180562307230403063010508509129386537763291222631545708826801609730551151667673031370713501261674803897034332566918133877885553694502422836480315617578575783779599320109415764439012439985531832939206567466834127682222464506609060482346889968000373085837811845173658711961155653654877851023622972823009108150705080159762425298004953520924272546825829773840468963959077761659551548701278053806668332982705968692408232890667058707334145550345406385266003584538014951159906823716159852115561975766271311852479795707092926492173480420625084455917209164712698812459866877087110546472067590741148148547449240612031794711508797727339173722017769254371349063197946988492559894051416871804510817979939138961550118986759096646845537881998156252115012916209380901900897917416268760113246539468427577466816470338199943230423331382675197545892277592488715079904029146435440981777550130449571186411711373932014004408949834032796671966427864602978718519015537959231950684821259565388168696895407971439777686902554343362175719624980329660489212604104085209143838150066315326609279073568439997151408795962829661033668465639983263782250804390073861840591194575798138710293184104515737290922658159677183223912104391472790685157414463868199089569514026852006451361624567364727864171697248305273820831617133033210068400913821152016092770819238605362250304081332389768401826463142434462719874847229697646667977855881908748344068121727861934005323559810546484510610453923845661359548250750590738778461258512042447545114698448042213003713192756216564234704288010193877470695457525662600181816688972286400900617899272569332378049972622729717577665979026832954485398938965690096002707095543441205180638410101147086080340273986670930973119703499175313588169539905094512520793307076552506685521587718074795949627637254411694647145980410203651002381019611670268619626427502956037101071048035691843159082639520032493265036998656350271010575772788475085630852036131701576305508494696189935377105898838176932007186075727378581177809335196314264250362021246640935755666801141556412161935954428975240072139426895200319797008197473426586896233547750254489463639312974340457964056472404766364893005010861601896202504391261896072104688977148766948696194043306071698554647710615396469105239398726708785199374768333261138041133818482801657325246095209181615581984820931525681614955055941013133073157521641190533509880210511578115587874997170013001699679518654082710006677917352487360583321507703499832913032862140969092593360673456115008400088716169155804031127507300624346467688795761068937710181665169834734353197275828249051949387653231544023594239111178233446297254913603676746985085147875765962614082842421720924759462046793567884131694085023895480343962111611704120387832111476770560385934904353382666065050212772968778591863930435863330341303809966457580617345503928388687464005498333350829005359664194032782721860498870380616879991686480767383585385405991346621158009739366863308238142207137264670166278905466294127255721485647526615169877196822784242677460911217751974596903116368770834263457091569824482670691040496450328900391347553923826446386898718575371018414348782946255725508836946355007233137597895270380416853194392045062837665906127927605818740484268687377750221572765356924151670268641543839838524012430697233476907925847548762752663440643075036202350352668793530081682820677669980707376388031059976205295401646452226923165032563763649846647513472964432446471224317385325964280045015976918174505871655307975329723280482823184409890357921582347505167471386538891940940034529067473710199085211176313543527163631073870424834254446280408070629736318558636410903286016895742025694878567554145259199286166334261690188067260987759243971544817649382294191522904734615381050776244743547797986303439894021370117242276545052451386328203880427365340149213610646449810200132749581865740851349440727844676426106187462160045180708686689550373913598400315519033200495340835635297303352967869556123328549810847200080668925439232442413033517235064945245164566828869396393371461638491739142030060577652406131509652353794055690854000449833962783283451283593033605424873589781404627448608732491381327777918880827958507257297727519842261650525477401358230696165935932566675224835572951313466297259769691688567616215059511278335172085145905082874338051152553320693400767674872325254822590863591903943538898398823102905868266643385052185805564224310866284948779072958018375309016724305468913575949726467534360883287087669533271158401522931993422462113075705436876247541229241998509253874210945989739237884914345732084837679484757367867910451515675455335047687533304378884732091623138772117273175915373105290083087032505941011326607207190800533135478025427824614907989817872745617340299683202178088552476230571688206775801910542598708274979125886212622627789189161711383748063900720269171974708189842470673053265503275746141679265870738846381286346750257813511935117759505703050246601497048090054236658732691849366754643847546286325569641962868971155495214455642061509966392620431761662411045217298127466788067173363192456293835684017967998774292718618567533253149657428431202940753915061845895837633825345823445551518745650598031128678827780892373433679779495170393764584707009994778423231963603941791456241614391957630444340421092273262598703852497778446072726806718107556847351834290766146976400158891198981095672673738495857479537782945321668913426299861870627454535681125996450326608425367535321333995157592583976927462278393308285839955820954765239194321897384901122958563988342462580175905213387214467984217580071672734543392657507835748983072829595427965076801048436501512100589913628267755610411321529840185169729831285236846082377257865071232582248462383507282757496144157223096463162687704430439963767132776591403055412193870431562784583783929610705334919207870158750920306091584502807369328257080452723519119403774994433083717563585027682076789150317453515418415232731815638863868350350429920862261097659901432165120376132432629095508336222216937253758649714921242029055241675036287074515673454485556341440673220990059543254159812473089221330341380697935168854388507277613767804317456084157355275050954770671541612591627509895260041521180215033730998206813689488018839159527944592594700249027697930139691265747798193656074248142342065943093095011758724888758157643298383362892781687033704574730110719096529541951535711031020426906643320854322985487030289485990992257577288099963393856070316783978441940526568147030195276850105478632142272646360476421030585677617203293561563460884946742900306369538114388195558803204771953452048798311200262291593626046597934446387629480077458784723644030044586893964415955953415100243285193781232978376064224359457043962463140867955358371379311330008808694318467489002694070539148957383824357361868937264661722456849174157986579972690627575409243577822445437693810130497593788501229235730825829286239152747287450406923549076666093465763141796483795138714246290964012892886569619757818325251590781154799355965157339281182664933584659371939372075465916393827540412412605860541606481777187729720885208987636698081226872981636338354529958196789698842961105034411590505571590545657580667821195614643766615256148689586581864623657594326989320781149701022509672808300275826860049361199133814014607577427733480960578116128412610447283585252566341706653861215059781534756786990239183933925804217859424703178125458037287422351500449216982068887911816737504410592416450518536650323933526548423069851143436645478260047549953848564009185003403516874594384109960616963141632775390957975338224368689026343818681602873094192789237470787680669663942909562294971902001888902695402771739604003573439819461408659254503147684493345342569843196987920769631836573677107441270883170946304387535126966518986839700254906204010500249303151736324145518930902773821823546736943740874401339023748359693224389860507316942809676350447476529918563167600786361177819798409217214668363491448996117813441577175550396598808922597420896319739494760077093457999323211616543835806509235647579049292670403081627680117634715258098069117278071573147427004131863393712089420143065197864216630384532169947848620314424390080531962623330305789671681847703917031354802925255785788042764237923056964476413684464472669831368571021520544330203603929437989280374267676173161792768552642526522362222142131403308552438917074812779152930284586241190077998998040275751614217955200052940971032886903873700246105571863149333434816223162312450836180668932909358522811905843025847893088067971250113647347103906945313028397142742531793935595894530195577740741575364122876696005798702278170708458381239848153944418272330673055295191172825124276813634053434119443879605850836120803402752928549223649507807202213184047172716605075304264355933302270140899667620551438963464836553979532087244946022094952526893232099544085124861772360200887078261094992566581769271482003640382610229052917065006250180583293817927603951521797700033251846186108723403168146199581241460144257758377714452317360218264859921164357286426834342888843695147086216501268972780009174816776285866644450373231204601090441858159250252575556515107271001939036326144823605139412153418072076462888181523570510339460786004226000644543057491773393620829671447314312645833149342862426674857932837984944299290435030000072880237589693178955182475626168962578371992344609382059319541603509962111655951379796204965095912515904019118197882222189394828807328592382139366386670080540102568241765727345375744739651889234115490474970194510052828271133688271744308657586763777098183977329883546656896747160962372319839329900906242270064433506887006477219716475497595877460119801905290224079828462515327465306276367512018220236749576328689642663743657843109243513538907170529621811577681189342565257395687847566910496640055743417794566080091054937822253685145535592373971137286146830253027832163867643586639758215679995525196965806656329245136349991093809345300668404764210268672988415249312346464354240122772239186164052331946671832765962269718488410377118713130172806199879272795004984092603218611617187497526509792426534608676345787025450306789124659277886323252557988876830964222703005229434825628785451548347864170789237301125745718758523830470632450508078681692821867133476535426619695726409334213012393339876002893648367054756832205317184016745077027438557479566437192537258470496198623841702473101756854630174742171596440723238628458209481315048435431938794824236797838970588127061031895100744489341900607378182776328882775444117969026457268791367246599045393321388891689234413558799585922243064066798769625755631667810638241992831344305218391472150700189307685981249686116046069890368530259976546135170797806040739156200166247717314047601957996956091031318502372012170289531666427921963384550314812975423006286181781181230338569989535644765442774918833647701122774236706166853537035420144979820054931245411952176191457211664129453550784512908284777118777697978411293997639160571169521391780489471718361693714073432170974918657294034348157665962348126919636527467047642603014354866440521177372366566829280895792486859671366889908014160252898185282144882638894387486728170849200510845255116338184249112353976787423724054872212593951137744747180495993578593216749562946055497535973763809649300053795038539252868246715683525040606636359828871837836015956750264903092252584969368441913088295975652786490162001364762640836944532480110648943615248117192551506240720122073787783311644891738373011419565928796746679020029751622737498786046393608358413543356038956521954351210019725336292379110113072555847200391706546671093881262231273284691277995498882439674970747887446284583845165394773540805625782706172523728130509571267168003940601373576999019819391381656954634006267187506475170998284333705213620800206341761188672360243678761824574064071064689982852154988275704159174966454736167157593629120495771848177487933825186125006330528605831458462706904877445779206223287915006108885973086965832563296084533790664350283482186438890501937902359028136029720366292133306388353088193450307979539856866088066889683845301892350434104505441842324053247243429268760692290705645930862703732747926422641746487694218370695203859211911371745967767032327845228986398499915511032073285729143612791474511304829579802442016272217915418010403120953218208662431829844334387621355600817042151190634319326414274236551937759322262971908071356459821167857799055194929430730580097618856500570197157601239852762393663025734552187730331303740738736717346486591852980535938122838643150899022501992203946412379212947659409775366289712455394009728359459663117155855223823424737190491054090373192165014869762346679968185735288969551136418118101584432258169701698977964752463508628592982349971986971909011511222092793052724418173322106350524403462781686438235085753425894963412631586306140963435663809932378777583303580785932538208778474796317877984393885656679785945499141819398048720499970176790491529401207436077234203938563531256715995575230084377684651647429287051331638883802346185706633479937044223191192349662987674815178754943716108997702591085729395054803520892823608148172650634263387519268541344329814349120588865918219051179167823775357076290147750606284724872114640796349743882448154901039085468942378752064632800094895507083322577619525793549446767404922210975608364972899006338946435334420768782780291309166372521966410190758439143741223344457333056243034410632461384730104062112385728300392281878665227862211344928766832069086015450163278527921174072130468804005515434713014786200940452582061811256417698537595406881531524203892230014759640569233955619228448364391731613172437220868665874872196036031172729028998241413728642378572289804060560573511193920143677429401238521495138739451465129552702829215297921289486696224599773403373920310812888330678468599754355575643534466799165633755699761305320356160322494752070638125556190326364994552340356426601093100047406993841810890542716772551420147522521371926281569075407626773617528432820675046128196974719396932061414194409538963165362348703492840639130866141369791196591550313728162576733738425884126324106695514087014466478848332190061546315919031334302414878358044044365063983888727989067608098487113166046898530197754846276487041090467274720718300654631396253174905312822231482863305697542759352224150054617143556910672600087705977408226580124300306098591744207445491103213576404776765889108388526393962582285634377380302920946156498201414577617201254635957209383522650805268551809149498452969182486839813140602658206499913414284860980546363988080028545652888110313542460582252131488912044246560740496166497636027480372706593348429787275130025806066187592785925252352148938215487928262841198014449290861723369378421908983168934360771813581540386140644330191635603373886611071492657184617806450899518108449380476696567469166640885628152543945722851818287682854214495475782307367131094965122804797033515355690159450052025769323841962349627298075032659992106812105377374460066386469083602127643824057820031492082076943012999175866400118620459675253513323564718064427579214369825223181660600225117407111273484901696899829871174057825692794540794972291134122763618494244251830714709241431797443529794429079511540219385544432311412831431794651575509191631828837593203580606958883909603937038783417393698311980854860502984180758652515236905160942673943782040692928226631404172500161419859131605986703623692686507703029099829363035065147915762550803113649972056883919164281528656300540729931982081286060912310179793182960104835702729392801398402979061982980416290846333863981533318947364128036438932083082807894663391736718729230746765230781839372361969812481752557142227373638558055262003690548366700947120399357576264624963132661354668375190999529453116036604422504278902038326530289854360134846928506319155169156896517628561934601931499157107745237300468056012232444654710311738300693926426318984517566258237499690308870810333940406009652444465693534784726525951449227644613255506598465479217221429489178938241906319695544435629809555746364967050778267155517900822554960481305972669274061093454895699512476941557593006354605592673536438125982446383070994657583898368637789311805386140744310502832035149850744912177197488470916300714905672628369538957757158455284753294726930563322713960148036596065297362775284410761074581119235684332861888379251185499534447982343726798799840402630717182106042176116889441457144777584088826678530304924894089437714029808437452831091233376199453386628380856395138088560529210198558018537696281109660462948565285562148742943601013196951773179433691618427810946209904060640529244738116736340580109037199053450403946558589176696969124024649257489685867738665612149701447979758927124987843118181889817541054575348696934897969798757987962145717894472907532037482704712591964672886823780078213704388674686493271018340673065177190429225979983517919499989566413663360316198763381884211155301613921885150232453906747021561066506926743012633828258520533495468999364920265180775431363140311968250935381902665116640622657175050249069914326193161341733854706708823112177358740758339907450311575628271555576996821759685004293803805850605660996270628122716082697043116195380788600886784588638181125463698238747445215605301414753389344383715632587867486717990342725994330117756953462379231219182345678105158456954494336554564979443123567917791357547298011428951629209827757824901984510965043512632214076341851285975451209694869229542585425484960436799586904756404506963679488572687145339871065152202322340457912761877281865373621261598210523489476863051013732760501350561885799554784906669385960524956263043829794529053500973136626479219850300852503097408621557522843371061031967397346502432119131637387777018871654736330792344252226265562579672049919184435616292025165183944056902425997488670017785648791206146871060034953076793833609412028653072213285554868656604523583249222178641298149663867425994418075803703071371386933492110110075847104955963527154573511409930713921465207220281589696428804581918523732129554582425404081145639308018481304642014189760929005860085435388023111972764106252470653657172930674159345720608524005792054964607114709340398679169206988271652368723351314021220849314232329444921314289170609041586048300852550005753840478787782822481032097540841510956194098504988743438910721549649606625370306649190616718522041885878633949408942925464707146392483735546255076212131271769866886220422291487030305999611721765388445920911497179013804084608492453520579268782973476381646010650828666354015717446468435114628416437302530244224458915972770164009349518170141861375368383041147088596363638406311614022824560033825648939586075758052456359626722889145449050793679676729529347928132616138957627865823544544594746686600091025309798626934727978753868710710292691134953231091989716975922354906433179699851228628080372915500326429481193481873257068465240887701560190099310083401283011005107993991474950764918359285884181757206390831576381507875653424596323700402698152759554925206104753153616740728403446598167164427493382905436592377769866034459562254782344044334822547391460080545309032179290553660011743956549722047644023732681193632794014344838613030187718266081973851851242928995820362399969707500988872164671485117960753475433487887806473433539439722140655856638914879842083314959181602586666842266812425678180229805483034133748765676029321488324305044056885886475209356576920398688860008125680207665100567910411426261869609650832223909128270706756970972861572808097381559114172919180192145009187014036406718027150131955092154963319096531188313669620643096050788858755931609826374356855260117789345810515386485230348795726087868836348081360652473726287540974923511140767552086065854885220879973665635177638531507091979306242107593370415532845518519466214197302203597909078202314899937179494304993683377262127991948801602373077531723186845015324407560139630608549501761247406934986110255514866834999604664315094495426941100897371043793153638873211621194089629145774006897960628092648804657137300498295480056829533705410697182636010892178402235013882215416373306658262603454329372668435312777009621697041139458235775280854348263588234366784446452357018750097186990280127133382866385162834536138269937262210980860861609135966833420363834495891467518713898787912682531662133896194451056589875778215774739786660811975511466124233391022325912524501504299951675607064813053176503094347531557394085336256993784699277138554747313884927882508110400963847002494811513637664778707636878152018793719082069435312303188352418239762454511608005736089380784331834102468432547583693780445161900420528544587589993431935896683616782118413193841890569029706368888084132717506513645671923875810285194368732573385071419185940234606163754481717090365557243233544661270391496628155955306247527999868605059013790126361187872475429346386835136427920155909178505928679911086227261830960524323285090990283461672254225942698974224340760933050440252391229523710548999135662833887576492399885641628456609832756277511155609823621883960929645030592890357648585690190534392878319604536952876886444597278961178995819057484985244976264559838628827453495440146553576116324514091086799369947773559992669256600855291034307066539182559656036780749795903573025387929316587901021250402098278664205094649624264374120199897256504297674024951007166808543787596600881373082797963747260100928819794206067002560999030291105104295359468165459367848048887867986680879171990804094964538377991653093336850012882421481954786664017067841118039366810738360427561585835352542109129808855882443368317711856518864547744708419668910913004017319259066686267330123380848149073933822554907422271950872255150338315356434332804337595726310740074118594998700275295582723058404909987669555724791003928912938739219897524417006855425797257325210719530015530937892627482701491992441807160283342059811327711032234506459416104732919074817124381036332648391803510631847405697148421498640256005008480805186478491313381649442157243744608725103139146588662024886851935006742351602105546232890622386192791361589756580389768167176390577911429426651583876120777289824643723158134691188444495893624079786707370269411654026016087886903875183657079756365333976237036201985985759658021148649075797043428583271176961591564915185132546879939862446411067301019016053654818279060648592830792570417137002099236264560999602115145289341266553914069909441510327387196733274175435134251189547376732936192006654826543046045214607886340149094754575676138532393612179184559075658010424310366508578965454373969470859842593300454182167224908881501989214358896681097335708754641336400041805675194148060474021979307398891764570444580326869536430362843229101419857681379637200037484292941494372210764432038572307849349154260680814598870991839977982520485176878398874923938607424448374293618697599494972031560313122230091234431793534877406364865127430508427924633335307748698282814973426804900151909874989780484989084278790650118123687143977963568631462749531383934708515475800444934715258567249438152372655120696120812037816788823130218192374865376406489226782830320118128791924079883939881511624848743574093294461735405173855599074684844144258204319885730952309521462829255918191830931008023302084563867632238793121493021319797672115454521137210551077662948934136033906909068047347665910618200313375100852883471330017599939522688660919914116022014426791044634584556734597764383016531264227496474090185959299449666081887110160728328791407799565117293361815949294328245180181564430703209521629148138390250454062094207352798987246922806826265280315475645616430444920042973638789404445887472310494879067447001561363581479206977341057486056678988085695972435416843665702412919107885188466718964410608856317670670272987469459325075284680281933791450800895839323502679679044814599505257758111179424611628713898359995041197426770652900938624604918135872436632662827481785787129063781478514040022567177269999352474790036543457410781295666674073025807318474080466130870224165397714543569429626275666257709057896435097129971971599158004503551184065349577774825229254921293079535863170130982304887158949572834408114769007347400847045952589633603085700128650404155735022470405448395771336867295486052130155932342129432489979785282590400143571308594610739301884348113361331571575925833083751531349436890856986436278819037252081591697322379112776693643902308248549816256763886493044992812396818567385434754442770394186486286751325196979382501228620482285594195521305256820181058925390467452121153512114783959351984743441732598053119667382376828958848725980700923560660939808086980678058214059517087503352226976981127473408475459316825561216001586256094240179194527164433808292306201518075146557500819258470526386002160716596398983358511934428995553372549298304988210493408926998774300678285674431256697140016185781626285865438356274891793277340608938055271534949742552633662597085733791921889982830538458779701605822327763546410137662663332737813083308647016876285636446225231072637709524579031918374365347373651542803837493903630921973066380385288743060986860883347014042684392291810027685460600941378132205846344324721275161787072410226612087084984786934231690543926148890752196535472114758532355822995444660843102553435435469350867148662052345977246774863477960782476262540743746634983358527405341464320761407849052847874514571270680956899696908219119483628567599633289297752183133114597998759585472749073209267210547282908913419159373813489264102965350532444279883861820315980687235094665680534894259017631645532651803060090161767086177931206343723318022520560470350084122763557479179262249314585842818904930135181781282583317494777038202246840497603996564987955852722730806381868133571850805771877757400010360677784988110093330594278648345809797095915550623264512718639017750343874935322527613351140094008633696843618001292684035635255241409229092803791091920900796980651065157455238360030965115616822643094303230359378625307379782149942002579509089331885609210475925196190651966639364567490310315749213970445073691970863308566569987152552620322436159223426411246495949915173603029335373163271385616801071335749665829368596974057946153371319076633961301622164384710919814747618881099142161663878739135208325703455899436311455991061567200582828019902026399934182844997233404581389601915670845055532052006878815605168685974493391928553667735891394394023851941703352499730273908993840404561419686315763547938484788912887359886411265159923876820770018194819235525004836111548875223324211355067387049357291224163909308224519802944294819185337184871392771460686428858107627016986357025408961337538287936681985892780968008642711988279297453658705840333700126322080852339644685833589376305151049281775345673297403137504751948970959287579625837120301060121790017423863490984662774171330833589502723699703805086409498447368044212151403006639431715463778951751958685291543275620788347315768075994345068500196365454569451314331815146379373935873207456941663838193854178979393090718331588406128297244992723904501394178071197345949769529444463101431136056660331537184725125370740812388138897464300871898451471192261310430543681425357012984440099570813522948091664001940426280303187390930952090413960235121806144729930752256879648863882828560896798898445075296393860084121556818925258059403195823063676925479079409000609810385527375521299395304000969158482634857343195517423065102440405922146026438725738080075653645351165606809773205910779991825801955503711215320469530177122916242174335230938349154799189165458644909823778287609627939709110739867091851913820244051039193299165131032252853762212668260158848324888517154133509325994095479099117784541606519211356522242694961215161940191260531855291033026753503123860072378577868801899767470994534471374971012700221951797152092236276562986754629725694440584741061934934752732089541812652774493349171490158163840998789618093116412577786455194147033451319006451947461320704546241054471243200933284225116067816016030453863686466836109968497927306852362248355335799072969108243511185588983020807141772200351967503458680603112485452154077854796693237730982409047428489705369926850340901539408554742869568980608880568461396717970232881795830596370128175199633304981699474060751260381073498338454201830697485537110554329679817506114230980255228332744624510654445829499307742199599960134310676791783986004076354703337894580363791665489631286638300060627563632875264023987833074271992682463812709529741550123391799451865391933079060468761418766411075679717431145910897127977822806398648629698145451206898151663776095337140687139104771727251945207054619592726445370858870272239063170944930004759269404107400363488419907657148031489497259687635988760944105525916590427711067763811857125369863968819095894026060496457778116685798604357486403537585693535657649829784179882131534925587370241702713377743493549738143309178386705082798190155378943976545825208432461082642305034619432865089459302166860822540616714980975736563094723234831182639002947249782497004448315073494325679813508610600708778539007257888181704876203816349868890556617264558649518969586358302794766995082025369010120511595638143129394346730227930564256255607344878393421538561735618169640288759435842506407152791226381182094916817942726321337139043879253519571239214133038707775782448984785883785404411695946309145418666042043146454129099698787232195514270005834811654122826886722075913610631878011843632255513140598129375818484418895855939167175329097160035838815926183840682931087386370721298437278156469485687296225229247361109168966878046175369183000625290486920584542191202093982949866962783963961085587711135056400607967591144005792928295008327429777032254447948525718747730848879010498826503145200223221689236159763106580035285230426012298253880938730140302321865859302951276668060649778325702475546460773090389288292408758523694210837975566445242960240796229198378819334545909725506776653545096624391814188830548583284385627350762688141548291168116334537541431510397609828000766607338169615505622986840081851911796226740640502447445563106735235959701314554428696064677186521662514185710407128644686924609720447423944296225269579588306428027930447251341641596628933424981595415623853672320072883987876689254018182137596136765582066976593136600757585006654088329838689797889710221859326180153177683154406879732816556557706903277129150159027953462921390708360291524124526859570219947159008176225475505534390831068510721583160851567406240958313782547918867854858235529502118545164431524039488418719267839735634070613798857662925255336275203536244881476814023883613616072720275262907541009405285714618775072324052530498018066600037605045205084387480061055670925982413870789640407468783307115702119048164807206135663839972581339398311766096250104447089322956969922567194356840997822862505434167137877758317420991065097556254834616156683683409781544452414907698533189339560231306389905897142969238254093154740295473593377921558128645182160743694105248021102587086543949153344806126333025884636220674459441905268994746158503610310023105169042668961192851943097305645468841566897420205853192187056053104922388186552256932359850288441336176857063208010135596753579537746756543604269154495609011457015829051160973387374999748624960561703479437593424493735894770229390710019308586575869546107027018931653836501900143626346408356714957621942685619998031925795091349533551118228806183913420399278579309524987125522380090447976095785970801722561139904123457561063422045301628828922506621228764789809592301147507232688433384377339867939443528479102434380836832033523517492228257275872930595064763827713305435741823266279694716510690999705169537321468082279146885019227548623313953231487694094625968592544340699926770110350751175066787344568349483171996872515142331679863785582996433792822331519035768155636483092961024105853568520684693795906687465519806802396169899409048546786854788739509103562134283817713242609891329787466917656184439032654876965294465440121710285193932914748510434175072656794930420497923975473199172128523069237307512712552960973222216023357978451026815527990229043087082040080801311668493978292605212936784270888153514830353864979230423871407828191830066636673253308679829621180018390303179371719443414237494906850493206807360901011957297400041718484967055150253503695510012404418642711013861696348503412149634053812189896287362968447300656781040513813960203051604016174969374411039066365866997358029224357973568982308855743001630660607523000863375698462529850184886101529943796751321794875333426166312841109907035717212984740846667507748274440481500787731836436310883026376165042404520123238639769426838980962626636707036553382043642562472582799970941415554497467341748803809498426232748073142590397746822803987075861222524300661336173837392618728759625020466266093176469173494844796741619272423557130084239720026439173899466337007824673320738133009436078030061974296618018810852212477244366053187078065269644308702195299359566852859357922193035136056209089721014403934191525021163327117584827081630004152158485747357329323681358073978943781074528681097133460651172624283775510670132142093647907484541772350140200881323112376363354095304639659089740637268792221980069293457302486211931041423587031068707714456928306527370240326996976370353062759358954781802918624744622184319986506667504067974357690220289700769767458650419423362187728537764862647391119862310896337141271805491023222384036981138779553929806415683991894148387215627195171332338593420762393136608098827039139130894498071641133366581835410805361747560655731562224699316844858817966569070146510590085149820124118482631908439735272442967644681814115510403033775187770136658433696600734075617697235446482926248577192784062886333340398286140541210082837281764037209752373273085334552844697469881773421861429903980088942571944807432411656135977367551373666902031773259148514603762580111627104109022724776571794247303911012461878144534374680511461292381377704822777582345860672114505524145995774897680494450472309482275392173817261080086098971962906573663954006065206119545984565172162506588315231311435768355698455537165201147222722355365743769604736799024739767202345320563073898431151387988087992809927089524690669466852871751890656798776036053188676302403749469729697530097755098910764926270025199638662587587793504294402108927539251924606892195624499074163326206990844098978555056787183910893481744931954320664514216317923478892071909100414187277333277958669040514241307934634100390361629899664349366346080426196672084830347131383346514081339421973781747549363111127805230291004311282133106941595348077612845865339163110297088659058520174192618228698994087419924392174679294823207485979609945511699334382516508959307380133771595381766682511898526945287582805922142963573875898242810291399332976105252468658664317210583248286545166387849392786740891475994706891975581134204951844629984524598980687245581612582371806914541726310374884334211699972194158325159028126104813342141074460485190395494745815433312517363741586994387940071832395690095079867717804910748841011884690136740710875091625119733213133641979543873955962885126509358296079698422732920839855337798269003678947545109816223242611614417184609420531994514032445624380818321286968571122796887598775761469573953757002671439467755888309974387250218816660031026360727068259712515546380265208792423499985997713462409109116325939202080683030679525240724241793533066974830035161626292098899519988626019119409229705011144544818430070544379086117181274738842147875505937664671057098708847937013732781413130881170312276348162893117537664707923581946410573918962080050973334803959597515152261833009785174132776354703880701078572903884461268808543147025561689705475090988568147052110573856288507896001571775895475036957163845771293102839143311667544992838902827899329752648807794435751764253059834032821017623587144062120793301176886992331217234414693962139701403438456810820832996295669195788808920704911841629750749711113661391604208316086373607274011586550463380692436388831762754303406484601677876521098334292903935838335198485033371346604413165447529058642286614211982552759691249922595860038328782613637253884397653068669031227715562078541121185823461180501065086300609252914120883298763310270492095292471224278312395300387892339329000840574601076394934524575301315808745127834304826976198250384741454285042446327393395912659136643973917151150033838302499393943083280868228651751905508887497810641115963131259700496457907276637754741765742152082675496114795121720066954528423747947482523502050095933833509608502642032774164567422048554208681527058082169430986321291009645808506363208081448142383175774920671328688033440689657167843817049483395989102578271697825297804746483131828465723699992860269931443588708982118780954538555839730505993780884183359443989572549947607028920657837531269333146423500085709865910684370451636193895518553143247435523384116907408661567306642601609437853389193738104833123031656797810608701913104938332466980028537676817827479121452089658729895626201919726477609335170268033849518250744870585475422404206360732870535521499881180918549182295698474862442257808709539074646636099679473019718872379068939760972289157617409367443192760191087082983559375075089996146759289317599550014800691660726236124910732422275975922383717255732601153361743134043849245989884392502284298880038324674712504033256326151876588444327674684682964113869258960945137906896816220138025992532948779158240429413853128535512149124509512873190753394143264323823173491237223223453596583984312670725252017545046800855255657278164195758873842020946364114535861071387715429732958833971866161874374342605470812430971445623679843404316366140608694140625920903835373523813640441264371345388142794656151274281306421190286183556090335220511654276512126898432725514903119644772030181243702170549952290389368363228820397405082354035477899021595272208862640592191808714821752960282506509889252413523705815253056654736759618657941627956227809079631067574623222854769563978022814219233118634219145984578691980525403394667578633403244705759977436001215716384341789804557969942688825052906245071453326869360012417621001757265593311154694466918099784265209296002337369861352582579159749948291134970284233296270373898110114466003821468937613831342032463997224207894451090474854205182860467436005249529407422619481523100157965884662777005038347555491684847719391465416472495351835850444006471027151486000125714883306337484231731698420312039565518423940817000025186078383031157580363776640340133258275796691561824071255557545125613653498797019247501974778372014158421232232146359352080219630337444752884835721286629981343343641367211910973984817326146282267551003100024485745926000624770683790832326172582273761505617767143299670585100282769914307009708006512817993420295248268643227303602359372402314589457531672013408171176210597713318762717942489094632368839112971384216072058236219226521992375044915569998519164806516010386803396635150816631400924404891955780337105887642406838937327003509358220629682079015638814442398069752493809545497267588469888687270236111925693828284480093208260530835700748585839858255660234094996337510241217635693883149611861599706781666156721056998749912819022440681331957761939575013348842222755842000934682077357535372327477433368271243732211939311845575416647464033004351085695760741676626272732780300098101262034708679143371865929682042651665849381995753143141623352750052203892998368133367328070298249479638562436635365454581879072645466652557413086672617508597557066649156999754351092361859331586399700365335261616148157608700837801972342309586358479367087706708099820618414964218637173343950602608034260912859931686685629866209120813278136659669350982872081256811442209336962877111285891408552414115473554655597293961324652897826141474639813174992100671496535256347196190598581940937040198991111187248337583151666282689945205143597347214666642244233934810651802594265735301568789134306993367415992474703484376468929848521692516422153242958487398955281494772111609839437719344101438700687747550931256124022959789032185399075472693981334458604356459410781708128605813746141641638903437561424290351795212987265281938097919006984686732467980967300380317239574355547661010328890093798893044977775793319490412053248420748098696859167983067184099582659520206429129103225862370428545689746253265237430551080052194936066308588703852484207060513476249289993394946063136457775347318718728613722593489742636040550215289827739485833576355396954304868992941329855657591357578851045937928737681896302149480885406997632368351177394390024074242176080304394802107516484523662876571989305121923468234530775845871480192621841880033988104568480808196056262463484712152688160280107544624302184255657689475227792325395801932978121343579535824007150226325181386141188437131906763723143117088600629803745332256309331955835267540685426560378923369262628274059282150477288214547905774462220913870949225304431662253084876170786761547754494607128999855025822608273182497486913996654422687058088585102457232076490523524594633294516806548701463752006161919091592619821078827534199263647156230728714627558530456354577580759725201590414994957682551643242894645364635623335282871857191565672307958887922905472637198863077882139044951529428955759315650677789007703198306261302979730429142477062844110559186091001903337995779054008382469290171367093331281638593011998804783794702885686977067352569955752065779902412014948933629695882183697492321384899705136384331818585836977567651479072297878313024664720477750511828368980929291537230509254462842733875373805915592553241319929339642336529706259348238431052857945270772352634534216565065403945354194461986489017192423600270724432082204701774096444112701168672360087048530402911376809872782832249876726649849776556842499049415932724584342858964575811946177262313296734242412560143487361145249845546168686045037717195684027223665262793559098406331645169285885709964725278898167282049994841674775691682453257863664116218428038470718270232126429793441798972091681308667769732005863406138970408790698169203404850588579788038265073727337564349100737224837545972667023015087121030016267352199157585513996478673115723104742772175962569982874140383062411216625613455897570558404774018925800888439329632481851971970438429561146363335098748103840674571796166285432412820244985064607933056350876232729120615267165150647583646145682619264059478892387405664360653748296850696369289194290568589260842545115561907339558271825566451160670698786973257039691261600881865619486971897094533686762759937859344688904641271233193498949627018488960632369804234794733189928823128128743688763203473684919917423731343412631975862505297309621162198738682001962240202686695428328225665995216212472282113380237045081198023061130194936478789142938418652497992190423816520746021298632719872205823161376648755856847920069104560590947514223367527427564495718724117819561347557112435565507634626852069973422294249185330718521013627163106000429249878754712502467540867476736299404924732211891599164991018827213981036933679704815742256542208599052024631154584039876624290432621410267433501770732148160350884123152610376503459422597046373430347200668997959265247467373183607713444100106417715318983873714142050240796979581577335454433443353475401278038856411690953741609335608395369504479525330553903221025304063008475173528067770542017207885803148655902379833205757743882112566047672775087754014263914819777913542652165182744537958127708843058617496214620965476621070023646325872768601777976236256440586943430876318663518243020992831764463623052988013113787709703942329194193656541802854157683670975781315575386917864165912782033065057732314287384223071984452953632969246873786659891845117481226117582274595199876814857471165314927002737860967591928186765190046971990273162354176321707384928576840573045508116064255289653778793226352625104508136100183890137792418253492373476935083010951008004343418255192296423732853409141248385672588739907027483177553011348481505638373777958204860151356393502677613983158553900198132899832318946926425386682084679445177742005857867256155993516067494047292278317203743302455219795087785843107885658471604149938888927249503746871401286589831756196539823309076797031616071354239806832952898533688470359405375372525456788250762033330954862187889706429212041742713153675033466912175970077313185929026338056632365970725720988682489359607894356893437373186868890527385734355321735572508362751229065043138006271512133179008516228124301590699851831060170071564594971700259550638135509983031977496774325180642514309685196278652713038884771495810660101497100271386064897797730449029360095040557011732003475110144128109914689453788581365896167507117180309357166056618087450710302511138898687786337948922177371551624390231871366352897888974248157539618011013813247125846966480181589988211720833099298564700212262483884383696483867813271008469526790207675021769659208118939158582537495935349383878166011373732610084076867828529217349243474409051005679452365460577710831179592946013315744824763900723917624512398842391027695517157082580227861388277672426956877963823070946846971740259307569588014368818307886837270616167441622253525458898032523118614989458150028209953827890981075677536252844466129830092696169775356005009246113182217365738642149934745263093175554175996732367510540500074497649624845861644530656325603324454912793236438495147550252059878979212291433351691721940581964910310862353213210164111780946016853157541110124111204076436565348687413371899515940036434084056827599004824984189442660856777577488546142568960413119792451383529734095018464475976610136526744799149066972286177394456672597936951134878048307136575209344619337782297414035021063910358550411519188204625517617059251842395275557650619915288659694626886281584189849686650107936034164023740006245507944755682882123635468632624474472717696366444578231100384020503411540078025142251684343154740422504348593136150861610935965899021540992299199163390716698200948554941459432868310400970961199522749460665559588340764264502464546969299820285896139077613084636040638006288897782576483121663053612727509893534488845678129273871871648924940736538987946074121632109151477402463710378024564940447802739654871354219112564530335638127799161366774125024568418679018367340150959363245807903971862199473526864315472677974915644428448816504103708883353254785199819812102186505698501875216681983824585720857987126232980025757777066489011443131392149140394682061388532081737754426133931240523443241139888867651001477630757765802971838051812261948289790388139726460981904222411088696749526975301398972895231615406033214356073896161109205379444178300375936829654067505855903537775232453394776764518047867838476110697738658749884700870391884872476684635536662883507044881067951826021552537469266748964918682461096592627007641621990177979278254053192504101522181438677744608958705446675515647723374766200145090554978143131458030914711063059235453001946715515824443390080995040285484912539931338701235876748204800666739356346503026023708844498612824070364364447167167370680073097545853943176050224576533563020432661626353415310960656763767325273566970103305759378883073165754883827659002613318249208170797575463311150064687506065794106991554994642893317268834727773926580626919611762235508819111831596834836124159590128363806184752866117641815705464984211190495768970606736433753480429087486841753455997029295135642577244632806110866859796035430549085211302396954897248574034021247318915265075489356776357550561718110780705038581275442737167358903688613022671844544766894633300073947001509915282680948488987902045626134308359676100992306391638741620545407973400336103861550177671350809950850227593136740096083206617003998100623351648478989342982890667244984645757546994221671655289489856581799336503158170411993470569922354256809834798472034096461103995381043939130339720018206329244028417132399835368352073626176485429995865898456577241395489947750067736439635496196137443330662279859596970644152640563513973278851971338272185938307752322171576014980722779136578595945981205923031999738596868189439773609828677216628669523921760896797812324298123753152918037854064628379953589058298769279946040019700672777054439839674868165165842570949160403953000645477892936585706154799630939235352476406241822566544892070718268865237725850455027549029050202681859118471232284462072626433647763578054014700610787630090334694341557236945527365434650150938457472777282222019972413579008032441072325980989543375404981361452534936996811929569136206344183786374852957770999835301630377450847314001066741538494177868780249138353282236293613084556815146348428339568894214150018253321228224757306840152466239300674089368385438159641508792140770255551068643759706393969660788391140756823082019980142742116358024901046930749713697906068029174460645739497274097030194038770262907996413593554723865644190186339938115537103532372869472681218281159646888290135976157642110165943932217674572541500658442686882654441819955796015165866333272660825679817787072608754427587700367395872611920557633612567998814551390403288028477466130770346999621758956277702585013473508936707622817542593016854465002582149251445921841774434189571732763643524832078337762337127566312822940718159573928953334619263049324137128580042558824138290992137105708801942212891794638411020372393573294081613517937808665895702145133183647179555921710106085776185428901112025275310608522874469016997584842348348016792868668878414318930318934103789598031288932966031607804413703804030517083855685133548460300635525939540014035251997861762709106151598977067514460234189976385004751756064152084712246219883808059319483606445422551902448105663550328148859378966794491576163908506077792942075688979536953307252534627606992668414871462993879658942998650066299726101163627892892248164353847097406781496881387385129500090089199943946014325788400505195391467884847945359697410366035339210744481553915106304910341340577947730259659570163840929081648193718559210981795277196947218718860516812581923262090439131593200896526046934770878455904038188079598636277848682597555980951360978100926116013633360009032542850150739318233732335043420136827739640735557325529217521189984398612450383780942038018784581814733517762340219909664114852266704047341802066022749370208319782288321448933371395396795259480319289345746841581398603924232100304546394215585755825479655830757332538714864600538231187348417132375313656940487776991854237911325192727351071742781842270703852008268592579900203967190905817937603039467337394806422543025524616363899018588893462463843063366007065932417790157459903116964353458293196978927970060815822863037395457826464847735225463063101883622200193714248881248397314180286598319606273430425177423947256697792447501426864591435899765675817340843847506029646430635052147423912338924621547818470344168222442392534878673058324369828043013476185507454700454891951990079170318834896563633710312960657871209170666970797700513530681966874215096495653636998182005593339779167312858107830415688283216379691685484324987101561971609244256653889212659695607624043964981757285880241083268976712042465719187124190735935694866524393448556817874569543369037984883950541628528136347240450228311979198522391508288697398415154536639679767497999167679235740185198955253006533162218316509999859414283964048834371168726052807177687131242358870319595433066515617769324092360292037217177878319756865419132340988510738753247988155757839926668613131521733002394591484670830475309404505162704256954745003218844442613256688257835304247115940870618644058550499135697239470397296402021926344969865006106751985888552495144967916926284478901535551058600941660163837173571346657990557754565059788424762423466432882724128396705827427490650772932910293698748814260319575953490653119169012879892098776139902064240372198463813396159967632567526964099459539950952282239886252560719193866827775842071175049871786933240337712812759508654916360116752083565404382968292846382923537307970586057471647117859465513013957983223950002231285196851361235694212100281229960226527539442693881165993563102959626044660602066795041679319482557871295793042864317163093652541144728938752527409101423524494606643028547202913553953218188349413702431696439621166082268783756679240886720485352034608047371298099928892636921798513562881660834184605145922397324966107931051053689534039970062441641636063286041684171411079261366413922257286998456336033698841471184023006402298340445755338862223015434576223363309164937926381107800589708294608213296349519540369051185910181752632890115688597704067808718015851536663956117068144469973252157023368573763401270692120602421362843729069397537037063734468462630450037805184336807142495443968471627138319867620756010945826866342554280504222894696162872852596474835009357640617022493630187691927146514136382004756686924176862466805159167107934940847423755297444013592307731138737104502708889018736834587093819087278367276488130964155631968406652901973192460184691057047466652702166684982281592726422465993369720593155514124532225344850928482510736041147697570789260058656518611819478427318600876663248821780428638030638015943169544705091772328060569884398911621532695211205200515510109888321388997812640541537371609424993153392430930000106545913852293680409442779723038228842905112792880305548964831801517121840252727270352478745462994915371463984715435993593188276224241728077911187539443146919639643554942449721529032180711487714149528473582565786954723742369059975989059065337718198478318343040300341026764955954369419906170819635578687569197307678508461966664891141069949395843319751257867219887674910802957779335309688895854378209191552594293017862805632594270813158460842757684901720189260729754138759649971720663689324324920248156236027651018943077821356653775003195548477912577176903840870767903375159205145830344592714390119947131258282238131344449675290211309335564355529096566841846307583434219284896752328209188590023974671459454445682950140700429445456681270209022339695287270984744391366973120176219350560072938631118575705824182143050203391950143980038113096401810939086077955209677461182512380118227091267930613426325807986382145038826401451539377463052170720117151954633129827879156742741449778860122404273084056704431791510513616225719434987071938355967710881953250196392733647611594661507241803151172951147151792000840859433984216657483382407453097541435700006007024514759559620623096516912575567928864515808770373932301537836219176975118519203108159065296271251552760391905572561446542771198900072159903926978442594658940211336177326915140877335015952323497762416248430944453289841238375326415095848431155537493760797465360831259473434751881823469515010522317856780896504400879481021717675632689890569657615607275967101359756340623973892348857036738551728614291379925833372438823429476602235054727382275329120937251312305598539941786486260741066513024863118171023013768108926066610730596828065035949293652684099653319798196990048868412002946342031308070152437203238944946217415772223503656041929061907389658859162524619272695359834336162149140864624519057719462673053553001093292081236202579165952858192080134587210867697554932856110015226241131233757839513391250407180055889746747992913633691055020909353659136322365656209833937916339641161617611345697978963306857197759976209276213101524922846096506702123908536848109201393608757833986988390213119666437259210045298442838340319920707389520898488154368216055903152685454929468565125944123625924720433573370307897393798022106325823402627788392410301340783850375944201485311808626161712003393172988014304598070441613338802115610882293031431109632489589065340845482109485112943097783654705970734415455829045601607783181653103856845879777170818877800111892726936501528420985996254830668840494544184400842966600475279343727534511900815476575270487253212674149189292810012915928646131882226099085263346240082242978228559270645593420031950904982892293798827044654923451679964123606965370516658004172694864600137526426386360614221121470694222596518181034258062987421459677004613809230564911587498783120180252502693898857735928262276747599213445498722144101896207965388879224983128868552864492525447145263777177614034353659036771138419373589160325617491898553421332159984283071204444976189885827739948245771271192252293197241408993426697683356687212352068892057265009005145723768870835050746233549217761723174087785742983983259285031068404640282106487878898378873052541248395412854384081542872101988253714564528361476656948969258834460129905415664519805932063937730392490215818797716674546438783779569225573723289520101592096044309631207588593863583445943453233153244589549218822580806685665062065979037212801653610821717785699274655056292370417817509881026038345962799393532976679586551880771091841337814298330102013927274601787294775597310064610444333564567185593705585950591269026898871199872557898937736674063639136692457538655523388537445528936438691731874851238105917662139095652400229132208750582914626462232349823573946261322428374935514745846388121707418346465434746396403822801918823050826907500843573733918548108201511226903000994338846691674845674477754189606231043315248222234472000623607600950712912806912885720351410205256294942392466692425783850450486195186832256842193697569056494102517241459791380695880236979845512511670559213022608739177581891962394175585040769151811316021042525281977871338717982255033040616790873142434001063228658735690584274209186725561876880364946865820626969549203323935363139889271360745696599813236792308515383424286506257401112279125590815726294021544004498677715238320107800551984622023693376808804884406036321714736241325106955414453550110346730025181810776511116510756820290295847557916038822373997700727517298520206081533140070696714530553050046334437653487376248744543534280946940800843336699369202912446557628357882323252868479746562226830313802361783171162631400525741174357633945042349634461786626506547347048966689964272698537604048417377014858558330280080673175326493848284813075107719872358464152176229459127140188433518806060891943517043356585385153593123915742868241885100044493842993228777806420994482409264615309206607197113041606456162098504808508188154993568303171939990222676131056955552917882440783683733510556123482359012719611945866394775921311504911069668834580664391674765139710466894235600636971652989512481219268171669075601860957458906258933106742390290511287129467596383284100106204491989357614568759615269883211822556750507453025854197311977565326752603499722209964669120377535426992659840428944069176181201513053884431603474165964133798937737443536454055163848418038814709629732143812112537267740439658016486435414208834181455080769571025776294889930882260826917872801724698595988883858473389585263762469279776568459308443867921302701249858214198949414027454335800060844394058539764534248685404400040872305377977701586942454963754339322205581134090420083859098281948494797476770428463379342014168410340109454004546670919646769689543722047166915634195063711324934388347111460834067699965987803952469357503924032659079191523106181923647395348868630189476461102825107568348767088385216974613475842278083293891573354076556290750127496471611112693075838093492977627739666438864806904190385164252747865148176949844021092471710129961137568514268968747785046884196714774425259601733357822782026951374826001839787645835133258381224528889611534024172143414032626553875721531212797562146998334722297786886546273493741968608760773485957294866433890289298079369071503890702643156938084195233874025718101902632914456341889947402804556274649201468850745471944695240037106762609837075561268795079082993646495023598518718399996202208370354820403332109303532531925421258652755414036143238962852018193645766430940930461795242618213185054119600571261771620910971667672121467845388986487447970264811884421009683819034872746228981012047536585387672803336123918511248696859694209815511975946229932082971552873386229627315047387608452701380292280397997540051761572574977385213352777910081165169991174397844119894378714037767960366374375117976171292847169184088739011025277282026949454448537275370474621627504372213479274417531613166309705394149507862800749441534104395650915786185266731405085907894757346975423811838025598992467653680404810291603417537359113787417550115175002990515204797070335623151229983017572375492478667339733747247354026428355409442118907830184931254248139481944939422937734939498924465739140138189261632400235918486693528738931787361262113349902229770423233956414508939761223015227707067242745439177909781999531495635467222567838961656751910296588326324521236334409501619668810110991119997118168098503557975397897165869738413398027066259521863417264951618409093832214246844585418829109261297419335764864368193459533815363016935886597093258310473531544584191786260453613393722113255980795648072798486288669314428095355520056870047747749584159252487635363898081369115155008831574262747319957370194515408019132625676841482564824224489129488437438820993676669307938380215560354067498756084121155012631865818156587697610370227908731719036131481795383058174480430740829034026282415241071392935141983292182059897096798769628813760593807886296564421627154817849392076150482715733092130186725658142361449813135232635701437106081473432871401507336261890898264412354668785674823729390783959396446857113849631485430224217105780296885315736214092333834930841277695674354869518382879060633514237589655174010407562079282862174549169193276297453424110680814112534132648418636211940155537645310568527251679178669909078120668561796726659218102531604939109483154706351418460063340199832219235815564203737882524997466824764107993562669129310494347240333301606012490514224130533221737030057575838432403273155202543134415887528361390458642422069807636893415038292899805974524680497672674294077012948028788627958205729548377354785087740386981029791063968930275491962412845634383241424744987353660272388180664983284466385606583328721833356713290119109951997054536795957750685071025483595432312405985707685569814182988171471837767969945220820328168480365399120577801998459513355786681257472276561727133817319740764443624913449601247133154188573010702676436579632587532782154750213752775271770735081726703707058196199305373992246220106218790068162346038205349031156409295697161687862018244321985442021670735862392258260489958936042498722918424129675635057417862817283800624799094484496687451446690010802496398060946387605420956368956113269919079427184085267769810208188379562203141282767198280125043248103490589825608142832010142541755792418088741765985328413154910851959345099498965432728788708237272024023885997536324394604113437633604779309662164649158443986369213483255894384750612741149137332502539817470213624846489668942640426417178306021813405389185250805256024672879219612646402841840475389547219172105041019014544973666081698645496117955053107253079452757921580094612569463238269076410092195343880183121029846891896983229519527181378534086139047790393697528655429425474411636099355754852047206619153365062154913046921576077051337790535955607532330892903959140339112837108335588662428253113284483473592303087864442794472910137557835492550809969618092906228132858996663466797436308921646224259515885128217821234050370014854084002988894314452268174784712342810427449456288914044832567027717774996718281642249910656611488946229826043543291375966520113875004297860676962899397067747542760158132508586597506355328254478955106037224130495419223126264425696064686088309342590317590015842161513459050500185613263100930071926785984907844389379244437791044727365850175913008847423956286017511330989624387320438968841741780582628162606445678608019307624640150180910455755649888994593165347939789591913801135549699263184696224424030338130325726324730497228007371717151563430828824862323358139234092260210297511503858802030217788273278967608641683968342383697013968580019456374353412566471664791868686471501678744130466348210673275378725440947570070949997649641097616701853561492161004965238536932677981231564335763468366204840564933836522230072987779882913995023153940457357777231688212087845873415406968134991491187437274507428274686247883227738945961586324174503423934804302741386107288809512259829616482262054888060099914224713191890167880810283132392896999404603912002254010832786295382821503151438233014146378923185590660207050223139671602719779501563242339853713752425462749976460034906547387291305795583140269274195821216927311675590502695502626511555835198414326355779091314484176418385356648455861163147765680711603673517166770956096145626720650222251369927708995363420159612717548553145107614068336373369776280578372817217159061912732505839823531403689288028982934721223161908460607537055465597436188698142035045359615271355057571145487192546633506694086145819607622075000555370864202870987709111768470028040224151914049978876375972694016968751170800103244512823255507538019761201511196007341103958136099375204557999218462387141654253467396640255338121129104973221459544686722431857024043978452754139729130335090550131161997446574467472325970772431382077466316878902779490075266362811368159914268879226973271766314696989031527246996367419234526147404469300415019903934315511986424503064184876701274787886030971717432852069534293140013068878827070906856451624959072167117847269875934210687345848543491000017678506311939383693382756283570958903178043066089644850001783273188835621463967204035388230176307714309291879470354754983697464595674236147475333311448906616033538310278390977486075318427822126342289734750456229470994681989637313232949518512116545546766511756471069425943633780594296467491730733091387700612423538250252256983175628615656336053866774198489930384242254439197932495670672979907240904728883958991086519484660464037634600855947776867688603097978251461402564196132737723382829572855735879454671439226518442743102939791881265890030406715358502414646428891710841973369134635034709186433242372880427403719283209645395513741425489660728853419573392877952930359495119663213337413465758891273776779563277548128240941707114516647621598490695128917918441678511747876697510953977270731111783866721280552977934274806580421765237641763919300203059429371935462662411100796253138485750442155107981540022048555640721752276833415267600519376958562185867492905184189243226706874615519379632297985296208469895550055919715807940399283806916872339385844512866902280524893168574555744643043984204682617417877403898900835315176572227655128938023387839329779653977922505325764616825592138566799740701492268600565414537157319041342393387352984019146211169761779852208033263784795814584257687622396599352450996684801781228485194833962385066107579361330968955555659014998473532694635270883376103825445138727622267494084064188880862589381908450280189689884153568148766716621749680274609152830421567860836989149148480832519094617400730683600453481786634601623964454667105966089545976154246020211035602888761336148289919305649059504143298134215938714355414129339139825470242661156017448787917478597810488788618051464259605675573241128828513764816273838348542885347397980629769691663593956618575697411548427988114218717508669369343621834554313200884705825816576570312234827589163840317424903316855801235723948258938156956255691891852990527197012372688832725049285589962657861499379738075729764758551701706849564615414704608800259339798303198988911740239685311949228939083862121764992780279426359409652887260199211740088459568909715268087052049180832064106101047304425140997256311191311648868066354482288346104266087770992864032377232939231553790259332743452338181097880743257726090474208309501888306889622350639906096928600148519047415666259596815888209123901412425711074189300676385111314405413699311852657335185916741712003526716862965655612180576838132351227349325799978330692854231214820003227975444033652083208759769131622016942313390588499716569130648401956076377087798621903075981119908691222861557898806122989277647258632737971758463799096837401404408123374470250761610728283591916015539482425960073619787591413090543222278842073718770546044457211747190821284901885799224862586500414708363599425857868799572880696250028754128445986061976503166118850375708702877228762539315900695673789217577491226938924112365608293552301905010780782361001254524251069735072707503829621457342185633476547499693378395509473536309950786718620657314499363058616779364952184507807594590712206915590925813538052814284794347901887578710758202988456231102058579456382661065383698197359173832628248106730304174714984622638632182125819114070965860847160811289346554543324844299721895172840816270047782965678888610622694448019061047387499183164693583850836466051070505912530795792584771295722999193621493751923626663427724589936913161106556709793201718374897179117935591719744858884366284824234046142729523847129534764570410489776076461191679440900509548179121646048410351033163555008749683366957305505153365499998333284469516676596414240215091628768913953615385812260884063783553913661173253739222096995957535971174480387886095367989822736888122195940953848975251712259670877194182508699265140122792041900207907792052905515600385955171776004982233177682561928651912057186415030311324255944097604656040435405725587180412892393635496316552166237205032849935531971312693285829081661395715583782447132357182133814572746434320532511760430393176054636426822595492156340952998765157908838206982130436027705412246926430413976099578112996141042933434872073558082714163922046809002316274815198757332392150832638003075532074595691256077601115765313639706185092232889954637859487455600149025723426582604892323768020718936140697639137821212973405925487375141314217539401728977856446820556699325820487383419776138640060931637871036123162156866307077657360465211654728220833035986284279456970820955589631493393385772507162411135784870943773137920541281677858634457642288014167347306950679202778875071407281195084890555648316957032807919568920069761623763906666554979494079882082805975518975558372130495327574170195867475500884530035241209596219855963476753308580794029678300517887361209363621386415718778498754147255784361826351049913390216197260304189420672648928449351943887838362693916844894946723659305266374096639692068820770466394468102053932121059065849473399918784492190276410418435522696098103726137021623663058467897826671229704856814666463788507143359888182547317072408062890922901004192933906779103668787436151143452295667342459236771134868177076741598966975532888195435919600322485012728200769217930993270318601480988922717027257321145771336127031005069789985577023511700128457378239377075774336315853979858487276246448294132851026095128685614507922175553628382070901590126909710330983814257310381001349390714903671493136316281341453892074884179723132349941450866982626958116525786013025593574037753769422077488866567494759154741904910365913827515147137244858238563893218981629348172843237990248256527563764442315331532810298001200580761572944992923760484097005813633640088327574889988268746696835384180078037996028193942875654174542775976862420966387579617586170081957568420243403940667883868456561862114583808279512527394771516723861437425975550630365100687838193383363704862674109026014342563876732048941898265204249528520567875484773620479444192134095836894657343603279372998719212546153129094173031854382756726438015432134879551054596253591224275297168672030026130198695995596810235858356531071556627786704181821246295009880643456070231482003714191430324101944499923490465852423161295007653798041964224895939387483372414310486667318108752670677018282405602065793354175052244116217579976579326798700553346987494850009133852774576794881608510251476680678321840370961764203888646581067540189670004792070914127226646056927229250881938845059252946289920156141642746799266692566610257728432871708009974234589901111675068578708397935806872474867948158065135814008332130692243097524323271689438225810432097016923897977789028877980413993506654723836293403812603232690353664662017211910480247166586421248616026366524576228876422695112044856346483118102749267234031892371414206150669611265087130012155415937668122629351066341241190792023246529590244550600572755229292537936532137077912829891091276753837070112011189190216357783567506619589666532039446061891982127953306156788346605355075634094966200516140217178654545559575486259787066247034034320580624170851271257113346315331983366837444421569073143122489629098372204944120362129516621358654683171186511908104889851149533559180637265661344233727483546373516960574945698345088762626481539176532844088547245691463911076283271680809727741160797148434596703612926166331899972285902670588826138312091440022597418220485000895787816198455624158310381607500825460954186734435106465398426477017314895707315965539587208553098511558482424279518128105703629124416568992182456864490686862719465568000597033172289817446581134821921652985843822159121776204598995739825177108463230200557795328976350148959943319075767410183300951412316137176938608747798256312394202214459973026331814867956896246285361720993347358575882353498762020019665262835047642766819145969290883465503184556798465383808651496204338803664812248511713984060960492371973275810372627183823508572271188012448307463272763455681194713876847969187937154971423034547711591331909694467613851923830282433875350285552242227666139581440113985420241108306326133629763698964312903116072044559679184931025600109574492521061687233387422427220289183070039572995982736012627684506455320367480096220334483608701398547260740751363215958408914156291764508618926843326379037623494818911187729389403705491654299893797025760619977791063198121747579574745570791766727361382317920695167152617752772611080094669163455257129996383223073708414868835165223753508639917366830386655945248399641893406765837610300113093414689043859664686183270898956833947988888643704911165365711387704620441312530534609375662828172153599281688795435315485059122259104120963112741348856495944936705389639709771726094299457908533584319206381691641835005032922254937744596373213871252317389275775239507623185835654886627213666840502200820582598811507172965499472503111754453858851535529541368504598911365078535201827712069927019933653038517040715648905023955745991355794793370825046311139944213122623101027256338957039860376214170649788499104829187978213130537337243584227206283273357296060860662653633258619339650849915379171370958762313937862855860770623580336970740142723129977559115554987161316819874153658722112181921574744517578658503658908754271542990855971797665312654973395598704687431148448634433690170259656238957277743526887728351493483669348640431698737257700943149817361904379548079465945155090590997904312838804496582369055838861243230014859949435287681658085410567219179823574291994228416069436526713818150668815080740661210097937081318819096820515569381969967492495280851830228444753829444064541267046795334130365609313107230380229719368011886649929033667834662959131253906066774455553294339872304947391011537144171593589341214562781195990659610518708980578789836357334884815309383611491872489682961559210714266965974044428875586732496415276292617831869393704273583232676174663183291819681105112820565783991633829975451717844900456369128469845489679147035170873811185448805576755021103617680254033254594209074828282125503634769249432092718329173781716907612934675577908840668323910215166498196769573978406774643806520257971153891707219947730889927884558519400221243855900537402107023613916263332040301470121225019408730713522435733804332688832898135221701898584269239713738601623430134798740230584162321565875778491842144772037546592237007810669788287293920491238602756467888567692102309335937997645097288280650395916512046720956055660507100213933541247912681868194279381597302580634779698434135744392492927941454260121798668657271452388330057156002858976147444222348293876498287747601278062190004094890903516504295374743089800729456613199144000468671549139957805535007262328859196292301649602923632150699091907802249149617769067382208923103463667888074508114000662996616930187262560834865435486605451177666259550709755269539881708027327182252466342259337695492065761270944884967661468750527363908039285299599450066059477981876776254516870927908621861031130849229067048941245986757083206999258838401469752448749680117609060544193935906588761833404944658026733591031783899458497070119294157767621558771242353595349823608098600089428509586362972137146259174709433756672169603714526673064761640017020093106960483255772300395557788966458640674879955256964916859065470215273294664525487709437730956084665933319305135257031812016278823027023777983797681792791697908426944316912796077688556491796467613140571309367918525267358856298898242796451899241893693240797620252913163643752625899557635137241852312875590749837186846574598392930817875304992864586580481190567027266072788129451074067548657746089352418147177552170560746216769152488570378781874090253791638135488415607159072013632466500873409574979238086536402846626050039836647962234578482747430673343196450348336800479890132100874339938521048421159133501225094006784619381351034644632892860663625776547205026326604841768738936200810278137572022024566581931838206976938283699324958003552643448859676161981739266404769904802072956379362614830468036021878590873949709444417874361054206588579789980748365107506466520182815193649711012125434512815700091264741361403187902045997428172056443376928286099581494672419654387750070533967605985300928926976493379127161561985479154932602967995071281864288346608753624558578897386382984282007254880299150552421539291241993862641965459770385614876001926902199566092911982559848834796729123628215391144175773379412293836829316873196078714458781553643244956453269264326785347795401809894972333150981380052425600855293098751251127040665201159570128785383317251462455723967772013545289046707680459249856962505393822217144960818609450544733233092783034936982096987439381607083181024191080101448809716150775655449548285051984222104058124914291013228238878357792595107643563631852967910631884143738253615787662593951616075432998893053428627489677516931925019376857377063369244384187822881046605496340236764158453214690828936778618351480068496020753017061812541350299989270934809658065831844160873885516410562722423605356418218017978225485495096870218414281406377437379974273574977435662419257238174313355518679558508433173918941276472095995602673436421789288385581301014979320182348075818584092579737521851014254473720198012927954241417174711617244750367167267842090303276897832413957217533634697262079682732000697133030648160436353013219112352214449875635627977910594110758431082916868750752336803714546778750365684664656987249325162091531949241827207319008983789596903933242163384184134467374114275754555514829637765595072203898475483599956059002612705636431901299901109966607100654952247870430998980260041156883621354767283336890492551292568140880405920782027511179907433133978910309030509742891523033418501543810861221720784156594920328722380575478666267826862596576565357839346355194733733602460355428961203419518079390024654812960625395199967293307350260232722561957195056968506668823692432704955069565884392944197760065337152093274466708061550203593485652855730333548534502456186936918118627190649592393440077212981424781996039176027840691810383694438024379924394799475580283293419771034344806143849243982950342841716767883163712267655287196934783498852645351949999145539920335372842593552164839701216276206056577079317970493438312707969356550102014103514290478525872480276158606283175929422488104985291731844593546706376289761570015539278514767781631898180060173300888257595627156020067304245448672863443789120679494589969416179794216207039406255320473449441667482290487342486259191699497596431031599304221496359147808534612939828074858224182307991148748688986721772032096346831595506350453253842860796616649278841045064515576890818904349145579843856734926488304288478107650371841333325803328556060737233707089920056054288395004495972845149122119415842416533391766801254038416804352388806155480764747925430153942100137278471603263661194874377853283905082169571674537506353667478111867251175481186023429878989014238302615146784294450763515336900050678237523522226820071264788683617200312449995612724158767910517494570732353729866120094619487066227159739611622057794008010482390031092006651307938453529425825998576439200366121083554149478223833914350867773727674913054587189116485506806539808280257414693386269993895128847497464391596787352278962567017459798049533979286838804100442187741844052981529329490527957882169103613495716404161191268962957590199361681984495632519682906828580594374157713370960631096170060412026857469234311905231840431776198330255833363693789294484064946401828374872159503707556042866415525720156225207697654326838218271471818033158853146262695789772291879751864201167774883725924557792833077214700767344278362039866135929487009926584150205738850035774863021119624041625473836633269204567900931427294417701273835065136187716292245410327823668573002020724791490354856732199756145832255849144757268795485704367420025912802764480298371124069267005707123773881335569182786188994632182353785878039175766760236543617808680505306441033913911280596532730434910479957232993327606652887391245981343717434281128447267981608029781641464946155490762865145208263323045854257951525228211064359140328714870543432245065849882547809955861173768491079965249083353862758467945840283062227273625123897563259267130686857066321331538330725549431392574437247222396848304625376864908342921836615157070036644841031840458324948639342964300552923318249933602140226010525885820961606095332769238445837950436827523411528731774835004673108339235855050305316090707554172687891889914651578576688777515436825131740610622338840961018713147581610256689634864271239719023811767746652492363318585346653207388647675927007634063689200201082511444838194293646562700363333326383457292304189625941805434924469962202719321786651610695575611496057774976465925210094735616100456841907528194805189988197923802595353425185721208113311322538393883474053240023231451972595635239946262802237569035531807623335094150460343487783741752631917815342485770149576540013366836375174357547728108380471506683296988288736324023794035196216479873380092992326621977560048614292506466973623233194351675625810490458454433685242672123869223212614292938701585264971033191980714036231029092578310651497586199323354217595798377249347521306391796344307317883013014939741237959227072082620575003369493930160458348270316766907303937574153582453984165071979001248429211760178232626269590039883734739961650919576283366157103819958179701737912009576923560188919299337395493132199988177500308874960437453111289224453474593391837507153626829645572834359091176366629218420784475601200400098054829699698006585150898734062564284583358350886615739946986546184919638302719935078117977372724848834594267184512554443602180276612365374161890471057208735972074064639976677833948126475278373347914525801743954385443629367474936693868069843109878235410798407913423420122518040016475868435260991386432929023766661608950651640692354652940174956046046323692314176140426210681646583448584126041160427979448095733621247373904359136927435434600564267726075111033146572726723532853246698619880303373785397753117773560484134376496679541681850188252395161599135039280245698941356499035164605583351976786990726790553808428123581028271259152443997496721768568423612003797948253825517061084167918699927906793428109672494585374533251625556699000382327785273233120241755819212806407898525275589203992099080158204303998980839211552195770455055558777649402671808620035868568660532675764217972036386957676228307709083879132954311734409870588235517233610708413415411522414192914541395626953684889809633755324592788472164959275621892480939615498751667862301453150677388817115436731681259911028156497339838664808388342182102141993250329188886651287753753558125413059126141069958784818637219037237913328154971376886159990757007388878739725656639279330969595296851043645949148717385130752570661761014267149110010842903296881136935602188265497003841842493747939446294836408467399808582836644878742411433693724224665379934478138808923172615293607548336055340352292155305471575004054409631962185549534645742602503578075414707843574072410159658801625540909430462448951897787322790694585493642459580800903096821524731546174841583663596865804470432552911779710953485265226370313136785604372618074396791102554294204136133427292843121784126946361006349457238590027256134017293551051635808996775989453424696979616030376119566307042827343163446145437660631581639877450749597835529528782471616209302414997001853308124355027778960421441070671863080102797556286001094147914546056675816140767425938987645505889522135042298688741726121492217806240562536595527216616300427298316527549672130264691695687888419936194965410125762802265893579396527848949907670653146503587721499754831711997627505233958743223501979263516514138264713244184504520583423792139140493481678988494715695998930509298970853191804266818905978014016853768266346153762123662137417503691888332395426993820285015167762230994036368704041491149791788701705609516031941727638956132673521070193410398208933177922324577389427303134589877252052884128209103872855227655084285427046896084651729466366671847311142790129728576138526355627831961439613386427541239223010189027183299808844642139041096486166088738865967632394712594395905549280931319505088438724106031237885921228411228757744179899284172407326309259522737727307523815797214175683991338664645831231247681505014995349464426395136183917247235720287932190643132118404964478752607949243856168315045048051245823530846163761585404193931624054918129075394449156218038846553951775730590358381659841233010668938231340878560091649254481890718085157228336319095898990911469953872136196179777866269930159969004528828248129527254380424288515975215874844107233753860548637835601614510270197419898423782377324915376743459078558014275482731414945149283938040119743084288298830828192020989310510260829168632253022251662384690441074993732872102556706759879626295344366264422189793157114077620544499670041917301590029774437432006235487391568531494639719119625438711549558522598275916444858044998864899286535000316577588289356508213291514499136105311123307825893124867959589403977775852192443526468171764609581207177247809256704018843337553564567762850683359148056641351471189252482425512194475589220436385356593948968531399807663999318330279831329272171427516897921677593694100905094974990758633883026576658420160081569097202225826248318498430349918666172202536807141792519812855162865797589839599012448411731322525237348799920962663587107346370253677352049612136025012609600714614030978065733945909873921316247362812531463961320848402599951679011283531861570073335885343859314524834530309073492061720079097091750706655622717257903968320217005633625469509040079748826441173003062686099989614176854330134546150628793480431812619421382567237214239290234308467555767993312166449727734332686357819977766618385285905223472900326454001201081569036784336816130740086317027067969005713899482685828267595302538853666861576169264268902190605050589797430525015588085930666034503936240089084593544141898375658390020250618437564718396676629120627826412686211516569120333682508142234753071396810818010388486788150221092535682219647090463837732649298897766795055138600647058843427539157058835977692409468715700937250113517077291202086273155554590082613117606564460053669384635070517924740491093646930721241379104530653306762485741453634924855682449776224329457428110794315064701302580643146443008911119791405110723861006743747583763288444545522489053188385483100166481500615539143796577487733856821589364281414919604983521898389094692266514474986260975192348189633711336133113578815626351997012085488750852114355085960272589628608941837439842541353149217383119202763396257117027441122469298003229998692371008691349818101554376062238134727856378637181860863193633299139335608238336360312542641208837655205015542116215920884800374190830566796445219737833846065838955247310629159503921506340466905728402936492975965011099742466578131532031136206383090229727950783577396617347550528550905324376968363172290569620464435819306391699663253964012859236007482185281801511045795893066131491643212512292279699217011389843845439306141020703110954081732459693235183582635217928337799543447055195597332738716232011502157383950396674124357625319008967401068611597399736539390715021935678435839999537285693023138302042079168391870231942963299185753075086856135181434583551077052456232942404114107053336878287826251865256814728466604213708704677241234516092219743114288298334833288209939110629922478334735162981794372673842374427019737517345786325733500393063487852877235172765148763429550876174270078953231271909340716012757421046256172667381303359990605441971221414046858755905984360058173511417515893179011711893472012954950956858887909263570547704216076187830994995266871961254337904045897349869671705757235694194984022234567623877136394715973556251436929286142513926547460132662662766081834593711414986391008168495670454138293619278756777102318574404249137276740773477629018267176030195611404988235098471956972630737408877614940349065208555837066796913691236777754698339986647616018766661093859736264705163990897113257692044393149142204816576387509455053999244768323116830960413029067596937160273536545258483080714168700011975899650021387922058834312142463109091036280513623615277157307403128901713729074353834101303564472315082992111273786187257704025019946491756330251499941509205331026315034883505840610333382887022540389625006942603182108363235486790060525375653116690994817751445520419268465859900052378035165241259490739606736789976246302120364527112286566759247101008053314368559374133614352454607346946822560766837298648906025844311806250950396197061626372628566684011000421740486248425967608362708840780898113371378454326166039515738958114962648746718620949303974287600159908467792371783018954326749486421006156530395622184583921896043352652224627652035134724705332522080536176141533935661639020054698555804592379011952997355235119487682475992387271464347494383046667383175817858077718331615907868264565055347970447589688114587319196493466945960179702810321946306406397383125728810961796545953926773169306163255195305973785978743986665074024574661012152943175013334079061296747854059459748071200115721062580606385726816529446478322724504239099414133701425249942431895923737441283940279576064540058359902934456393200312266144396336475139994589929289994479469748363492172509478915680721993126992425346681523405138449373456940317341563946384835153833082033502681140034415296290189239832377209022472780313634256271846686333656441758784948112436050602549927903049580235553937438172783420962233280411808796720720019578844315214198335960086423406221721009552051452527971734446811000367149768520676357326670090600898248209458019479919664227876248702302098867156130585768531265115211991471811010060241462419845588881512316413110630036277683762029613048866600657697322912449070394202778771956214175466958539129107106112854364559442386732678061436697608740034153415999959529324572793690724194259640010130659475848241001120793683384321769526948205347350258401532292074262133549725237424694804416959919764307026242369007163564496023714855865847960092047142625378587826910077225831935568119827688968228363705416039581824933201358965532691228067535890860436181956877862764896091075441100814638944298895370447046858290530571494714432841997708231200620377273637438734908241829171422814947463645555920718029051029379695985347255889503423002023025742003642536484631719876990154709244103127194897699385213805458756328011601594380067972060955276030181815285653868000150689026064660781053545155304153381897430900126352693743106498958572455943375906495826380370947282473041633959238622553995061970542110827154399540438796811245663104058839577655352350586254747877213766640765336590175951510361610157711580370881934456465667048264701877103634779657873642574956789771750885605229614020862901046288913458210698473092123348568861974759710504026342946762332802720948381095391780263856739214991311572908826783823627246339352624915718322848302819495194022333556328286819967279519883628950444060496097557212359790198113175864089089156960022709523997579551288102083826156248021983184009152522178411448252133715240637937417336084457666680289390053716435076039459892165450564067680563241109642235727393939067059913779697404883904764229830504803769715762823941612860486379901416399217174261248802770807305802994965683835021420406003656968809423608899849084795411400495198764191903213220161444533740981533889799045640385617293339533116822580415309124461385109316782014260732712468667048670451844004542648211759605978640923770011229248425271095358163442584163125994816110964768025765256512949378444296658370701696384464881755733241912224259362062522278020475539792421533330882781266020000682766690881929020482368322335221441970029362283299103635206781990952092805449054302352308061061248657443325448896943651423932407862857500426144592604798993449080134946991368223908182519773019004524599284997986240579790176541853900380847251637092768613747650431731116497618687662805249549691475168717809139235551162011536953032138550223502465548935588659105038412619624219650984951760958630467538851573100773302418688547651131676342289120033900979471807689969453491403532097352947567480276697726787099933393659291519615636176185724269446928665588652224457948498402106033675919711096109106783621541003476035831330038388732096860912091586762584811762562963634455752073465630757838442693382596895967779915932743410409103676736312106031057553843040191097319843559391520080566456416152799136204547814716093137608145591312642819005364049020993710496227768949230267161420619926889392912401872643405656773615888691692093792625122801509441338623854494277470809759312259192360967989663016285535028704533554028465245923133522093911702491160420054858250414289398308594765991527322704670517006896226805547329325699807352289322420359997281220662464841825229292199803741581614640732123891487821910045253729093708423763152179517423152959656953437181616397580808878582578170620850743774120632072263600567082663039452431883500125922488305230800916790043744899067655353856982194470078822627679597462700606220067656499839739980480077839372691429087382643664496227580200485114086441863989512657439106387850852529695744604749628198754550449329492969924848133863377787026655246584230492178981467995794175539296455278064655948712441762076574712803687642304681427532259317293856251863268124484561824541737647784994600438567824959921257801347154906491945575880320291846152500354543675563392527240419091596882191787342840635461493773510445966249612268454685894697583127032520473093337047460274512967603483304358511226282327166321752480816026878550023135333092153807830677454001674051987605539416773835869191195839118906920886472671324560972103310955010298950260708939682300105802424764809261216979416233825907376032746078925394043418918842273337139886275655902631459368666372362141950727618413429038167926166373795598020886947838616982628424240987235018096240431415243813986411889598642436325937718819327326963193168130098677168146173016609432556721301586990681258789378688612152662942071577375835816811724040655509897607473807101878600703087453083595048060451199170097546087788186938345069989647132539302275317892694857390629477210605681958411334492816966429513944180343225901162479089580614413457448925849813408654259061122996048619912970013283670699701745228536460275259895276756383871089104687915558457791499024348538653930999211277592908988563406358196684593331891461530496225486072535764501741059802211755452787841317629372177276339667846125285819862534973563595593739328757749365855948804449915094112466944149604256237127337173961913270830242139080605352721229689050201126641156048550084081217329027319562946478044831025746020844193672890822966126706798292645018369262251124278983176337814313050605351483865916725173559507890277164675428823671353119140492153813405273617463625648163734114679806193994278783855967342167350932550494015735327450696163330334148111702182225026663054426023676768970044551988454552814759683141500450720762252290479452420210703146195158989645088423970636059509544503704793269566182988912150711011663086581572686045481264277642799784400282377465628995200892270453326627778022501416894901031659101745332195218007382283538356561575740547266296143678011818781577804136099870113531979064015527112909088017142069352588850788141834455468326304334263143500880961502023672921172992884602138995527545017272135420834879688262180444747715974756325572274432958001895705435167651554080719393130174588537529587653630797456195011562173985390718089339799111788333123282014071682965410260254147778170627635016517815694993642547582843269303009009228620739623631030869776963768256455738237349911162164344254538939440724442553050649931560737512964418250047474870759364652956057479849440883913837739249963907283208622009280508007076860924147488039484432782667346854795856090199884330856694280334505310122275733935403512738101602492512393516505720953184105605474783192645308112683917398454981232243100712239716749793748913327615529702155844822195172167932473968112236002253790064901117209260760258936461281740982270934618331470645808906955249976922172537116493062746951094199192261280073503135687078591267429349009439972413536918169242303243422797869543775377277981709706200183494616397173571864122388702329180658597557987273464650860201330869607586272761168086722747310470118429123760287143158178268429230953414768090502545213467388988397368129786939474401228684093599233237338929970840552817834717658418873755477680138975567805098214887586621129480777722939131592679801211964781520020040383820055565027309863287470696859654758509987724028469263631439525845101783206495572446980235428673633882737816283196548753901396884598068898078076310209205785510240450120852772950782551819538064416778718337266380550691193704225400959376187219907119593562910137783399657390415314925346241853236354913742581458339237271764935492132172816267711054762448995163763287460456276554766812097866782016080591756782381222266067111911037153465004380073622426622881178629780640415884605075373681483963188552236799305194012207281301328295108176376962023001537865018593178777932695576754345580851948509489761905889600153600378075193312438608737181532943076339554948751155236803343537708121289136073774400621180494090530374755626333873392538757636036981895817830152466055096432426471316874909866984840506718623508302965428955193899320293782198736848071906565543058446926695699202144702750831941256977522378109694014049166656034511097627512881419223957272285515953910474140977394169400591444319546386604970617270974789359571416558509033628054406908540238973970795529593711455946441054578463728463618146959948826567098411192540834913085414125961843499022947134266745958759999016878900930817649791476968193423654597617441065343424644112547018879078690792224982528628739266589801240480180067255995763150363715609289544311700300327676464440177909832048587019685090053359259036093850622144091456263733591957052630662744934713755960972759490131621929592616665443958342403478746074212267854142336715857442386544351547702277502473224975889569839569238500367894389517284424136430095996364616183426414755435388781295007255724636144944220183329434083085059127247420798729714368578751476198088720309804084729020643361718172334962852108477088445372686487443377668630436660277028896635033152167348032340130424429700546176964404912103386135396600576298487491610442225816553687884860978989635077470548609415938573190836599968143539280584751237311507227463489412668680694091171351563899812455762596197051819169880024637016769145238982023331176192775543925176849705060450094222496511246289237613032638511356882673301075630709129926718613880565606390388518630820082562710131587092842401777711400293199720840814474652415468945338295312168893848462884708587597427905493268110589798605195307038118041059789154317033957224991071932874015245245467849991347578573768414950703573941046578372128267908416294873442904681742074293482755191158628851563445229912322525474235362927076036323682278693205227952090104306506541479604826006738387187727052702788948712501410111350630568753074178084314051692522898920055857571355171490333561677501083696215128496659721657312484136778644122356050800230893520830357923359469901946134090212822027009515365835893386963394732701418812337478528485001728394659944848242574492690036474291122901737035670184084837704658321268742775072689878206050289796543191353629093021486152054069039688566822329933228860790099392878030492728164336832825291348741329935915516215862807498868758570979482812168177281494728779955590999484131412642255813981027631884834978131716130813285325363468768770775798256730633466479901053076520965789308901285103151040812317223786792155484041210972654742640523565574600866217774645601872570208452641059331382751321570297182835326548399939143789040674216529565312336374589059187490954903669519304627970922844515462153386643319999560638803564604927159122120675989732203884711367605002029899820885763758244644172565313855151956240778932624658260782721858492298774812081720824880128009692047098025294157268825710988958779477375152226917902292450340768530937495017249097639681943832913137395036665873820709571446059401577577406664988769443453667153559362810405525860783306722009999444843740923913305885102025113006251631258645066461663010204093148415791732084497501204927297103266296722833558412827796561821310067481486298363695113505570173856243615987987790400239786449362550554801053895250004485283464766613186977720023066026004913750514844428636618465687748489639572487283738229552946436917501995911272133435675642331856749380926563220578432262931673773918168286862319412741464972393539345067813493915226854750222398241255299489885252568341494822591337010264632549417512717340025404528112899214431989921787797287461157551662267556593491027383939230535846617633725262245724573297015765391556995141714287757622391507110914263878910892312212997011587462667704633817204796620076711953965896450863529038585098564603094073934815296692285900740017658003395042627720591940344005060354095590202806891596088084717894016529357260537538476644759719901579684494584184018534680635885891902617371755016328991907579191477852353284609362643500919308483395307481260671476987965990440108511335117919509455691383710977528094320823621602844963933344057112016238593261222125249142643638775342561739367890321372451444546762296923653438173634451241277189699472918601306566016891862373227609333415217167914368790016089092041569451360931317507950017444343666754355694978222427723232571553766166621528432587601515810184084813174193718347753111473062516272409816328971178698746609190215386955844862956467169405554616554823891240913769837686863848244969372455298227156811845973197757391685412432402031572718226804054000900537068915662197297359162663491832275688370773448124297219253610602945852757674883074715214256947571282699377075098247333971633977985516628479554219051097484407586169787487951914811930232517542237446641784932013728491742649729212506892073577597535626933816829395726633449245239648105476423492105581604367981737212541869597136979810662693022862850326239330350273410074321738843155943570107637573585594263936921078419471293753983680924948742550207263733694429322203000951826164775369559278994420882852215527843871660496946912284707747896850581999485201024095346485036900773275795269469147357667767045076694518119693909575162468910522267351840138008301409203077476817350525205549403007578591060088425382262994776285367422286741544470290422940918916695597897777058138426529588584272479487479542931518296410382961421245454154288549988006043543333753503965304798197554409615976507375692825869963717266280991009765451296694484329533245248154008775860303343073012629869550711389450519958440913956360143493432655489195775030199005959964162634248002706757318560781459454357839504573033867700204490256182084465931078826372310822043952279929076967200923520888557530368256068687368205532457780743630927922422889983600148019383461447865820498394876556548075419074778413089188958350029038575778451918912235206644751785671087343661534400326971560357155063372030059334712299081777153445497103985656418664133344388779226141442292892787661548508578055296557541937617951646281053545823238885712643381326664611521366068046762556247017721629584178576514549264503167884030244485827930892705813690048776788881060744644161627910587573995032316063256964672885657444036567438174645080051079199012442912144939814028561874322451097081154787948779676647658314581683257698633640663122232208375726112009366093050620912094783369542704063870797914534234358424710103227709149911860325066045037705916181234225405778052850495648493529030548286147965058794892404123102072894146854544264684621391520307674296918737074784071431561140386453445315973128254619652485107429761632945730027822811634568583796589374855097834996925113276948278165963829298842940552922427376736970081378271935846042279335835247334699462368944372928518747266206602531223670103123416601015344291762699173198696940027931997969271361930924649135186158257204641566474282457617053888449763651447290069091303453277523395975267565916672187842940497677892091591845705675473313968031512640423705012701210649662828532646622934407926169847543574714320972168641357689379183031465854636902267641630524429724758082085355384773027750386155232435127940490111819270184229103460405783297872396901764915703572171135958295159116317646318565933416110703543275120333808622867213430139353063413768342611455436981830133860027070688977816117713431618536718428154828890751826428568720400070691686493499948501092104461359300971842617604195282688222863949932030884858696817024111125110991228460739442513752748899423615521322452576499882819958128637887268928610046046669297617431406471252847820429232977206723707228276103704854862794761438446172895928594427445245724821366520086084389083161159694608851807813559453738465487518685841148712749000816550974046163142346988519286952583381382388093796607722341684943418576047965026413903635650947525408678378366657963819728271833036316188628500263782063098281733081800911597761475609108907224760215056744277235222574604443533192946578048047457756045397023491291759282868126799198972294641172241150321750774940789341783274827706052373233178320149742693340682123655006982796929648653003962076855548062457370502227102997625206534559352413492960744808615104287352443361747765515713864742549667934374315683753730465637649897137652613547821000028385442143152481254849648756815256343154508369912572480564112660588097662278952939406760641930895667614010116649165920623722043016712889112174782397152375820805701995574594465019818174777178052169604103642245658949208862049946963568842479901379864654482359351521241983395587317198244588430275696236159567762060429624187996303509802672735523358408287968676305894184871133990902752967679724561217617457347073911177589404826111855636807324397319674898951255936007711272732232787452378284441909041278337701442943348335813013687472212384418108365685700946811547468426442941378747378574978311221632507915043540261863573380232974459841741873671025430439287427122057582386872654142610608280699495524612388175096897698778964536506139286474687986398033789673250432027053484308616295018404030952078976748605083410469370992809872313169850276299447014845750862859302597790113306455708246351542277602217084433798779062611611153255607258976967240043798472038404768653271131335042932888184177377213718933874374833003527361723779034017759094093680489570991979057031404997681202209346466033120829175859485674529447806690891888663045326811841596020756427071768809049202716107139035104806489522517622791943976596868610365732685053265985632911093672121576151661239835981670823269263552724007790295838697444266841873050284530977494845815066359181310713702629948614487304718225134665166463557577801025930529595966880049407338351929373805344093708286198869420234583879416386433365549475950685866546515169880184275125745523956732604687814516583395218946725149211769141454105041144691547914876885119759423975206238316687644522051242449349147083036727637438623275518783042612745899583841892724609655526412965703019962448731901701208661398885807735978920236317190991029784387475066904818084129067245273122557842894539631808969279070798474990583789387838540194684499850082627163485499929847536526642388723584350565649101326426701476832255611294699545404617105603044447693326046980563189089720837619287407586777698370654312087249063422784671678940665900174782038606263017196915861327784027160298180036700786125343208849032481299432728942875883561070994989749999822756498617742895293903056777312673148231095332597732928249187195574922158820504769194327877900644690898592524023861139173555496810038498496439616526044834426364142207893472677763790809875159473788656312804873491375539176651578952381462135923922211158244474543150711350477162751016471687189619836931827167862748053869718066339643937849667000325570624221694160134630513268443562801170716575185428639506692733814616913622926195095593528476364157829634285181092518904349731212109374967039226133855889355950305634864747786936151455820755389410875215651180370997351506368229242293128552851777177066889430655222315135952775126272638039593077818200958859207006585681682757350947548567300759737988225881307716158447650726955445810779598674864120102850269027727681658907520228612523070540450025731917725028245359617156189743341279520152027968642580549175303243765571661385210973818904078256326875527394423937277897658355964072564858707893208737659431296708817896480717986604955160830608276926929563005667449661373498962950637764337921504140788072239028766090924461575181974321538019676495306124597000831632176422578024256833568846684736856559393262639100432128715037568282514106936460917280325551496050519234364615102967272171837423844882810193070368733414928170251236988566695460482151975037259975072778357825274638977707944991546630133840564998454082038913598093786444342440565241111764165620774782922236870752505846368367673106135401796275511425759963763745084437906593498687875734572512711224653659852235815345598912721688589276269897903830378649595928832713709615853930743676399262347520189548880110984994585248095556288324775595204093400991486227869766138822682519633660136840147311030108738283006148725450746897501985956072878068273550800301757385048899962008834288885767528004110975581033726798818533574683546729556193892489131009147815634808880886532384496586607192602870616949700160479400406160171868477607201426920115426939315536508443789165860095530834050389962011619796478728537052425893460390818682224824654902450217478081800358760307586755906852434252525711003278127034185579420941033316602800176355677614454542880247763223210685097962918086577389691360458269266319663319633057303157393158711475856552629364247089243452898131492187762533245407714265197947888810605707982077057948483878307213348204407744070235649844834308973425982010669588812856231615377698702228752524269466153943385221988327859793845631630092786744841752312844017160157416301249521445221447445910154518950962025048480717922942084579362729277680612912386450784315954547646569474693515337362658990593568075879574494019837906791210593260103467888875156635734482163125033575266469471412031051569535647279325276886655080752202085908745644485889852439235582046765708885892223329299995225634861805763715111699277751564321194304503127368724152765630101035332753960166106761530227794894331480286205047850892617683404910190103663637365520385887795670873044262989847365312901323861851045211994186879139635065857368633616231122097605266892930627968422918582846327457225730486021258254716562172890844737485257843800285360089421558538554232928142915855615447368339738286282892545959159714163819755168496439947081582685476602325091198102011798917266265911019172278253008780585709368086408644468717357428722128317160899536804765316592542235591718925600924336553411664067734988912242605617603037882710278789017597289028703512256932521028646989682635772184537566330166472552838937083480209953262372294390585742632286686316041240362183148063895110183565732851591722209989243613457352506654748328602498407940342603016413029593907313855465476904174135163662059235052635907540610294951270656268776199712589535468179496612047720705065989457313825813094904861571792530620298908446324164159515578698481436690165826605867285845725147253303388956732531655761075894620429732611367724353329323649343732426066274885248643067182156723356782175306689538752904975715301287183034829463728554289876312184773717920230661758666899062024895977881587296703899915459526229989163892829035516247895021131914048685337242730778431124633012107626003573521644921299828895759577450319245943062883325945921993093777818179324826547090329119933669384413433221850589318327951025982087032824442653754425934142873845007869289586104766188980548961268378807237439337116556462571477723585128909092992810004390218097916529702401776780001787353177398409940168586270077417509527014612673257795624251972157287743275648430473996189706421055242539929274825724504547583686098142379891969465029579480345340047320484351414912738327873967602853835409381104633191411513046738531136781261721970507964171052148352364158130962630472597335253155638109217077858043758688382403741698856699013970092013607456979525179590797792818153353520097167072287865470291471437534640523963671703504191725533388727318405026502294828212549025476122263593355398750435797012196756072684995803960356864299418011618668094663325598822568285434212379139057641584495928946831061803928567106598577937177455256199553943355826190533898603459706543710522122211192812528655656166307810640488719855223282592645279075941668255259487076004793053369790559377933341022419574249137400734132601735632590911740540334101970101867757830858125913247671619272082190116653121746143302480260806050968126623330934306089839579709071344146284173393738469951363684789996456830486760457939515874641731538658395595900069548467557596997083689578125671083039381360070526595453579167103999086573858172932534605277107271366244793524868921761870850210379173832362392178027952287097937006729114821529541247298770028691063716123251771757529600326721495846827260863298856694795132445929633836242378909127844586721990677118209710919764319047932888846899915142387258437732007075689107055712334766030882810002925255130528802721566413454599111282734178356462699334600678478996714944436884661783922820057695285750073504417872984193337108588434957979004353098818602085634249024821226044153165678638887543751585763779139302165933860910535929829213791606493341643563373248736302188442314636459363466107739216875548668021997220333951461091267411756226312160745484635454905006337441372744495006846741419789475081938662988656176322079146939599455647492306249552725995344511228584139232312065567855758589572891995264969843099100410024046931004383973635504278485807069546961491107261418982140849928519291366594057576985813421013359258101861271366545112685498940628544592097980371245835481523172771463912837667967790304541316376036879351701255503049758037398274275840818052934256957634526096203884235223805124886607221943416476626497459322085265058482082238899487461011775899602656184542811065558979687436747478546162042156318170027737018288182141617598913554131378134496560063249605532309579102961434612194961561668901396599336077158975558307777350711046006682593157009935830573969439645771168049275003785971777836770873534648366758174076583108742296386671211324057870158459214125685199369041723746601344946447597150645569171541094244756774123703979926265079375827485246308890162091567177848155787866880670697694782829103096753491226067303048769599623199364092895398495323657555981963961376341829560777580342116074318936085053610824993215357869219192714851241702575892110886762650345673716313084861658229772095729154649522710044046809755937726903040859205341629295488784496573588270912001294940330749124465996147467563093803016333508855285404125902227008191481375672668347793664172798993467874282528552344979256074444312151238964739279786292329870815433899326346261959925757776728200040575045698910577044643382585163419219737713566822440104430453057966667536951306597055102783511605741371944314716531212778931486543834534545401441675508090000462854323652729336920894099804577974120977970790138372642349252770902070787407921686900142156679897350657783159927792203693914388092659046796123847340361004288360253047281740513164657343979508844050088691965794828628011766129675859231555507824144296271079497049346343953090341067132249189118956049783288665760304086654664693579244330131340914509629587850698100235053154690305140755261766372680399769149301782445854577668678687023513089326598740571244524839267935184256615881815711115946165692457483772259574886674283732781677594162390389521918512071083014296139120648677446289506057006984444856051465105298977164313916223533985848488683343651381668485687191871360805225763436354725723062193107387846020363294778265367488031601457218579840366604374624456179663394371111188833971750342332801801792497682614574206315105739584668286407579665416626287274969872642510885217323237821757393616849282683992670292793255076532821351525033240807818020391051125454006346385911067931692098377869717719151511250327314740902440862857793649862068057707553965273630717122885070069610971291414401194888849255139507139315795779201224075946432224872460754889982987651520565707329009800189964555071377054443791477421746771156405888586654847029404542013053831832619341979230321370807775324379209794103957843494401955078718073228152319775553929104408308147356908331337915457289059333858020351148468862894451308738068471859318722683408331082134359886995696455963143441689914559393706734615446639630191466999800492279754023158483641865887976034180908796076914306091869372136857027039394809415032508233548589207067445241888694230901096315452910979305377408711740717084971815297026878949073032953961408467582637934769793780240756715805072949414028407322481703705688972229060118062515633826117381267395470114649704936418252987393857903861004232332424312279324733300583622674225829304570724578008367612085057262050520826745139873807564945329341790206292542871105737677684217020408636632126749014756168571180732888268802916933147781669561643484610492574583371766847982978303408274465412492083987215918432015202260162006081371704187844533254154927057289613835371794132608582978118098859349212967063536138077195971921895290563005201200726830621537595837591793496339976037680049234017506257060167234612292435254553994651815624566094408494398370519620302953469522370798740435322007460337347785169604575807910944819475966113640362020238661671482951239406339852388601518089504787200938197309557120978957199936808623902195684827750442537243099185116346012139425346603428437220963046091257518654785259547139177699077651996813364619364828983578459647266213079935939128351503856851977391377520956619617762251742603652773236603061237888815824822827647365992741607374544314502642146840762401487897045031668892540822834366683224159791446742399892432162344038551269941920938053083415620356964047559120131453817630858046444043123249748665644364835916522791761648459043798746144257484716126998130238297190310584255785059158995724631206024691049287228282693458356151442827786195336291482464919812195280930650646313551349216414844604806544832504596079785400067171924675186887062539671488940430373438658975199637015397992259257136010939529385456834512681849118173707523936643803570648309833739258396107131609830363321859039517119330736345048182484404875792033250550613838694167036711443585428673781618195091135512558408306064956120146203150161953975795295519018232938451173813744171252855537844755438258264930730922277947308992236563008111269652379187972216046257680235692392027154915516654905155291782900065294599416324166407754319363406996153755581533591589816453096729872291045320846420252609614409011069256377909096602231953957864971010868767375859769098250517656187253099167026270037161265530706329147786031943259094323858339435447412199179476057944342353858167426194790284251398140565497414580668244830796532500088128594885106117028700625039121412362943803617744464098782065301425149409801176195195433132238453273799846812394735785673061781084290378019534541914310547307018077249503495780075152428876127515797103715511093633877792117271084772937146822227419531477043113559396512710211317232964734888307078558599308141265427740287839455751037624997128808900847548967147793842550962150416608297563432556816564885389842519028650836817973673827049102412543127607542265585725268889403911502141684385442955471554824406870404895218627944638940298913199727637004706187111763914030937281920589181854222365333410151768752878302560715102234784921954321916807603830456512435754615027435018884285463385255526230146343591995932252184240791085058309259424514211257279544140151254616041647105483760285936739177390453403773165957775003021728932111352400610529172064118441670470976762779406494092260181413004738090181054747189021858230861783709045692856196971328601243025701186716734296585878798601954547130150271063429161945344861822893007703050223125629748269792288125460951851632355350657752767797524901626178554023336848950032666439937175871366724715912927862261026295667798104587879906987728930759258274988388668694257182168369676885320793451339835882552362281814424500483278055277774984135819363447072676608189328548973833786245874994235333282664318079196832319201491355446460596613776145507648449168580340824761646954027949867112918576916353769532970279561733339311587976370123152432482042865478355023530432822037964069651091910451500753649582168371569124037236223779518985647884391059701543919221361977392563283062910893856342428828102495656167612092710706968458391103264497347087491039110721920773950930112798332182394615155781456279936642016538755830729089365954770134831125534936786636399157459084774946832470412970127929563124034261077377049999219813545632883592643394810507789834717260071294099809226117746121394615702668397480567765824674853284756318806474732858852517770912397096032598450233502387076822935671953197923816827930600121977713605125483891040090938161267343965651147547759683799469397704396748274237055348485880551643602812377381992135690078634773782538151510691112526850496660141311367259225237814629291643181278623969281132942752636578776763650612780440853148441351365976051622606711499521571546685895398573348835740622882182626474840564859896535425657886948395481579686936435615208555314786991094206792891744059401040020299738598950675342690861220481686412776550598975183329747316074766231568005461108679386272073410753790457526421459132027722924890636503485707033504435502634048819339286620200778922450989446701189170934097546138570396145190112800320770943091631360738362393853163249923577316012874598505548886378489349336245882227309904055505138813436941863015216759967166258850196045216494180873613978534555777035299114107966218016331728718190471862194404629348285765911513814367916241996064260480210049774882904696122260619557414339586503419720532970771999619163155762356294876839877893162782813002284023882763296932772220275376344225225626850273766217297176541802250460530652990519589058859144777095190309362299562731517261618563708365051010062255222064263094033779615415824084629014318990688702371351009409438474341463405292938738694161965179479625925441101731864590544901401195461114286064204223279928235771493103955255288076318896713776070004478756972684648945995238245164958725031018230508371196138667597366292012103144478068532826317123169212088558889617520486082857955849370693923891693292802323695836793293047141390702191409028860796708833429868741868160954374462287067455726115770695043505263343739824988403492199155736778336776996417076790191456168204654323443733901226503427308822471363664150775517802318460500556844924354879561924985681238559700955781760089849893523963230163878434215259243964574026213677075909603441964034247925793581403666626322734118709280962726829966686332262649105578095507451538864952925678922727738727920602383839234422705666075703394661320315078197202519732986772333001058822259356224134066227961590665994043033656341707417461650065722315077550793252253206722673283190937338518030161882328863676497115087325494381504358447236988481367475718661149231172500606354880418286180920227624383280499134595800886003332435339643384918517763261783180430527437680888181292527052378999273961397368019400624065787065498672017827215467923954928121854564185343013941380794066253343809194109042980187564706322935972041672627225706713959038579669722326254767869928120279607243400612618288880092706085173656739074712939649028969794109228912213341624971845410437305873370297381860729032048903740345573071699629353954225282019785022565112934916056925310669993684935990151298176884652556812803163450390274480975295707560612136373591432358040874955123269427420641045356009957058801697707894744978589690872751640796172724139675896368030994021430645099415144053248500022469316274958312252699344601581636004910482589084136195893932456533590748488370889315370045900463254345680263373243458656178814782491323271157021737984658953856758200699863438865054645298461097126999179529482165061457076143881213529495924512249824112506289347285153189154467867224272270099736015646501989603171277226457926220291557959122906709242000020366098568321333145648895133256765373279358253661931107938744114027363767890453264266223803958561184919072561257018958742815620612416449430497039506223670552634471731720939516535900557013262787159453346483667347745515147044012093494103780176580343054899122955090012751392185106780083695338188913169382782737337717502276284806772757294316317915445266775506584528843660295859635925001690359292920021626861076382554520965634045877262625066874286435218330165960465622660867539884347689214943881425602629013508622789009954694934925672021052889586863732159464916990911413148997189655673041997729009511524848703715632782695147777532529815722450771799057039291485753994493859380599907953100310307509359161570012487095355736271178645997184799338352434895370278961887219715273111253494282208403709152078145933157729589053565114346051526447801495704054695389780843425933603350353106796829875708711969792611458832714934174399454196083084212285879693747478718317768417017867372940541871058591109890382639499805996931053867008727658154573766574339882156238734277110073087347651067537724813510266953810840083358689933178188260981358638265530991977209641940520286233145793909874983757757158477523660602320055281851923744347551258913179067047127449079876444771008695361121655058573250568661702366432136021849453122658907543056009072470308775264867536360006668643266152165221624115931724496866398826886940355842277610597662492920758516175479983962353718037953931509534976463152709960908617485394187118443836572625508887908408383529781337716913833701321094207494915347277154760526598412135199082006275810475091369676354410988026709660873885258471861179693620211631271685420991470105701827872405849903366644667254576326551097413863889868642295835291198789260234588108315448458057258869476908531801187879770748671847552220246494838273991312685870632128380727312836014092767682027240052997977460903649094542174795138567526220391220341142738161267675223899604297318246975122158816219971278001340811475623541286143963012278313042387357014938624113942518920985765112300148791647534293051776594541363615582753517696362928043600734666015370101875733894118960974288251315528969186135268459093848831388128310884705692331660099552562107162080704351604136338144350003993142554300009956234915169768421181136242037140923367998540152489678003654248979732112085956589532003843178722899153600357562722373363179317923373822104101626458945335128837684644519765597534721699525476334544444160124513732362583581477846376932841930742250708955067426995481262445233016065013203802688187125805890048515441738993825415676317951040197874922329360178360121137189313078125713578386985600654659285848604597905258575335104066827624505074090861048889896674463555930869181143805137524759607257531867059524490900317749673658767838630625808695917158985730882620177389396509607947699943787563873284176581733814545793644162815810142782340312000328420797040448731629170070896436910692878333568282824351917331187722262151948315152588981339330560657285297680748526825557865422057549222425443444244121013227699435999171821356714552959122574127224539094700119835841239219522509633871443220510545240047909081918287653365440312312826167348711960163053685479578903613903522627838418769626106435181133712767901931849437273047368774186576030085556322903996221952180779552281584241748210619843663527336649326621002860194490701565049652275468197922759694100162298638618424465931858370553440456680958092017008063523600252857022767253596752998068029670116513392717556607915390760466343826924465499339935516393068829058584338813216518893506067236652716550804650721230249952361292424765613880326433919680553145667525937877536573093319185202609743991149214691242185255632433574434562558604893102913822003439599102312791059495941716397896260770400161574579743759156463812055654084985009782622244721625505548736765341246403117759735900558622134384953640777192361747909590365192015267160810385450095331527886214703184725944051327440707081956387048007179495592348106889389689990920211146820361872902757385916737025738753154382296496369223913213305750614352576512090165617805524001101855188498404632039045502380441149499625522239522093704406566531850077930702903014979030983769398455631175301500509397168083308438657390362105209613813578020352211818809129878733060272110899692757945308543202631248405952473517262473280894359239574858169077961976100307325692908880051044223883797461459595469375306935761573571221664694137073381602381189785722744902418801891585575113740719873105630797733836326222930781755848729494782878608572135505014853044595902530368107730354002873917327942156956136091591642272691783655263537208664677251245762619676080897575248573553207858354638141947057540340624865684534202853179677107864877664502809503206972805085410092711525214060415412335772529181363799823779805553688818978484182607589109337217854497549622714398636645132711265610422311964579947228539295904345652831931749309009496899000465443282077317588737553622584283168693898776612651654817814245582521978593561347574702283047334653103661782328746435740780911449430481994202453420999642001362794503438006577020488094165897841578634234147862328983801055740234822776462422727304707984817386536229378970439867890519992482865017654051688779901240461009955263695579072765830151019409234000207721796883143962268063515748857540351269312484492426889660843359514733108516460958165900286930053392951238663391406558477044829310766157096866130566759309659298809248375852795568721668655827982522543304159189528213418784833433011135852230608460932082549429871003515025731210582770439672514257201976577162809352733717499253317366091673742463354732954283728034015117839407440364687529077159139483762066661518704662638275688292217114506398178611201732184483884318023321770712293128793270527183224656352261422435123584411723924342292059603416609767974886948269778078516941798395191139027267525591450073945035991584122724809684345913537881965086072193808680939218311282282739550974567549719279566529530256506971505912022598812214243065598389380094874431436996617086463317383185653040266865905640622473351298963317964453228614059224839512814124936493019979554806306109174765532416235482823014497021826829946710726770626383131055965517629194801966763612922384279240955732775043308809537879039069644656740161066612400035963076922219875042042178804141812034012059074090801217178057730761807327470497350943910599497314707931372676288515479958189819282547722527803155492491342119146218153704607754259860547134914872472404806944381891303534720418407994853961678038418844516737149243516557448224862855387738330372209368651179559011005639292264663982427845072763880967401267644611458743617857443367828912822555809338901342615459260672718832214626047014950898402765789373135769694730502355081821401579220007116322498160894049523812421629201845110545355220589459249938306812377735493477011063817927872741956751992518937625002830150809112733300914292524461685999896472365626759287409504566667494299186142434944370232236191471841234666153460116843070295249517800700217882381342564260293471883633370890291553008183712441638371109425218763043740603498552578738840367103982969661564490631041763831276009288879703826920665510236518825330023319147493427286788028319560966326962211626301405762817212255172369447977494912424315694574559168942141828208618370843125077017737592914145481595704890295281650625725894999976231592014407325603476380121236057433882585481802830255699695093859089129981527040305543467334021710735720292203496590484284936268274976691337083018986338749388033349845250237331872279261729411963968642279439039063032260009220273066801985380661961305025948813685378103228829959653922127825409082410077383372476373312804305953300669875842272968826373526454757132605722893052534579525931432425688530560717019137819235281862368051163700347015814597595230639562310522571391505558334362990381509777873906531715726718362343706414434088291629586274112273028884299779767083202861982745062017833042442635190389554245636270736777150981371987591155083451839167850964497337023197695843958487818986346509455328972839120372039119436934414088852823136674843801463559763147876757248683850632564538742219821081775317642438596887617702874652860485618514572834017089370414872539290132078350005293354938567875648386312630462114433512549859855883689998370242453974687995294757505628427029807326444546599260055545902016866161257918833676653435372296464287451633260149148020171121529723126512857725849454734503672933340560557018082902452715614300989582923053532213210408132912221051402744533259094013689567480208864796941080315511968197591927062955892358255357469955537498027622727699329145125934746589611031006378516073764897035247232986911663834227147148927936314338127108206395486320125117587468696727401455201974095672777013454767768625780335729626632519613913794390057103199257797492719831410477301596053930094724119780249721439116862159228311497797149606058295517795995488492425411897240899248504956027355553998409835833524083558808091959615030391055380485468251490505477205454840169367570871326934905975871874474980886205776298210116867165058947508352294536465689800096680269245536767770360069381622361289365008522252222718002364439319188971809203856079332932567106419127407457562334227862404309199364864112909989583646862347035813413900957106054625556630427534978052721599239664050150291615541450411499374357826026013600623610074400801019323989083214065852857632426926654004072585872276440189363420710773016824779809142972122029685581738202370224526551983726473028262656256134177593554003401301917150143976028670181847840485025242524298058765354332255027275404383594929583091918524819473591462646790192832476562958913915901621356468482589118537488588963263069898219790456864542959014889162985706882069769793927522727264534709429250037208559184049420061665133218753452910870469143660726881993079957582202571671571946499637485510390733745621510348777554637060747152933280123100253364349615191022127040199238233512538262566379350504326515633949211796700553107168539908581490346221443692513984243489807820866268849193666556455826031426421857639130382792994617457756931308002515327683898995572403429500801948220872745559962732420495365433651276664688582134081391304296819201799265217025294586251109883686893548575590148808307655641528812197368791218277091900818097154957444639290169752494404754631734139630763923396579548850327350111623022606051236287171256507169482443291686732133890850727582429556710714403910139185313687103802696941653039615222003201223044565433360450078835248743607111067790137046473311105122293702228218036659377222260886457183970383166640589072523598541208726866254256126197867988749830688658495718904249430986963958886965428834838241566597152060495898778586708961636215083795449675139640400847512488047646360850726429745654264353829151896217852394961505971838843355155962827706968024565539877160357718626929270743460017199081085901250856153678132955874305612660670008662108260416353104402419528004806519710087457956633265635280078034606824887732203391551259339732651868719436758568866694696090380742283743161226321083145212456077834866031947719301808324158998050892242990537268699415461209855630329447290096116066813917593505911280081008339458576621143258884686118394920445008854853497760465334354863821056847505870252730618268086506748917515527677329652204732140994990781436772229467818551360553215652830293959629600941494194897977523388141833640705876818827782948936380211602462664052061261237937577741509105377328274092359158148333849065827220697083685970236415933923757726271703719513606582148609962576852349636929006487017612187444474864963043531835159258336808994766393125666636036481068127464904210132866229197824003411893988093841220502084482359621428747190191175293203475145667498698722736064268304564190928973457355199880219543992528240228726198296398716186055212888854589754453462604696644483654781072103595881804300096982477726245417753457165853132479055899755592079301851447064471346290819459782664512749305948998625060968131519356843978451092559802969266417257633826036346218571233645970611819794699761818409651374856108794397808636453568437472241764202193221853013160527655833310597591174990800056188486519919871617442120142305402487781991967728389820460137137840872564356155244704014242688463005488929367910661985333831458793029476490623563593439327314315796990585074885449975079048151690952971681041051477706117349952930223063534946866171505004796837088331648080224021265840186106370191434924801611703942822622845180763960224918938698265544158038418512733670738556501310532341848270740766179106430249651698920506595262654497637943634971843663916628742264934700064748593072527347784310457370616311162935205600129859699834903608539251632767900534040964335405074392556418079849238403300476308393425612905851855108196828055161853893105014309775907974717901437984572252715542044776194424366776760705335077017531737093151671631127820363243747824329570645185203903503300932884088661166996807039891886598137726345057902766419545040149973971112505877707581733399972985928583558815737185044147751936771796862934771603788766557810733803181489975233931617638308138047368685411600772912874029695202892240482933428348119744863843009646595287182480832867975753311164894027169425662121912297908740308383150917539954914563955465376849049128863679983185266577978784550343792653008952815968865918075592850952513212752733640812973067203448496600762535759678481001185593941522972796963483511421018479643689931724820998807916114920441547856791218043940857212128144550751854135939153797494427421786380081462879646149829498132871638205639725803905884426556484903876623683787001731643113388775330982659277761356129690141573249727176833492401301314731410047016409571170280135077725854029619365943963444032676180362587854066514026470759540264714440745620190336124062948878359325144203509941870559936868810708252926104045752981803477112367698540253155538053280569257164621388121233898949444464421918500342331209908408698779566743679587225622417594146300768477114148662731803270950507037321984792458633735917853777641831815258364063710571826686428690686570917637273887128646529889715874083628576665809857065950461634786729004175493294844737637617999900476146865262063004990731934333859208027612265579647411199698874532691289808739209320186474686990010555363980530646554626401783761808346030780238228515793543568035344576577791935929693738766384782649224081355535709703421081319337809493211006410689529317372347413470406858982916831145350901688410400352120966522189174946890802032028578704385291085723964881246016168260120927820036801332533133099381232008398382916663834434793123402271098000668090749241954416089357371093399001527031794004556741893382345134641772346730970952603783768269972450722597759803722893000991077103812856520561053971023881298054158680262999453438166509647336837281204889158794497039391723127827905624458087197933271644429139353233505131102770957688200621752150078585722346206622658574522868236168874749718846918180371614100657313785993123873764117381693236876934277180358137538525607078552613696010337571950666412322039616341784185777831957239643792002122667323335236586130917821974701372915375904569718758740147692442794047578047801231631637124148099525460055714647103506036939627228676264232597882235945347993708423580512167743143203293055363233936456917223811741801838828145686499482190673445154960179939025587329228033138510361157284325041376267671078737715292332685152382587457723911825355933146577801281310946383878882332744481495838477555846962413614919394292679803836822434988728307697471611364256004882581930767581118953206781884168549073168777409460499412250770914748582489004597518384125036937843117013288182806977981265620045016969717143661299842965638804857675445722889975792399299765191854411182091975295562740312689744035902187728958544224830169173314539874981276038498181972333285238687929581816814706428390206303666295595092663812334946839372802210111586866616297038924069754622198379911790104573632594509018772412419271673899884377801392518120215260809571578720308178231260354752978672857288378832478383365629233801104681781558006040638082431824289102876288239927546292932917740485844987862653491512684126025804677628732070891225609914270502616918895053747290554004839020895311244344946341590454936871509338521179977659339309582253243722917603498186340492486187193189088282347574679192057616291833070891592060757756775393006130239655181637099076581888425099269506545882316200497643156182492865466889731767452731214497230743210577587793914324429642175401162708334574472001679946820889386905295301521029698489082769897897169406671605014251016342448837778937677132339989859254763869444692419446254421273368573889870404468217835821906895014052364487790332576296765805169555212498531483234135628199443126553389211951782329243964963876544484514308217837358528028214091199370282012151459411111338570974120774883017071600804673170227163411646337079763163396805633468195629631042440058651192030289680960921436085725648614832692520000739034290643151696791347639145458569273258570447704664009499455305836052761609484478128957732035682216055652915753412170902174411560682853883263914506199266464304585500732679870203805661343926079795181374601089024682267722730711224651472744263063918200103345786801377902031357753171583019887097486904817387630654542568131598733820040328096058625600305094155455810691683116322858729157109443609733505071790491338310799541890326069118290015004048503358242413118630466496326532331291414057213543951150330860108134531051497999102855283769313453854784708340198890733850061451945844663100337274506092139899149252875454126066292343591065362526812196386156790185960635656258957773046330660729948309721093613794674680339322379825511343915483529875231059120507475150675617826703090394334983990588740558903963541916698708564787523225658725059383613328383134024344612471049666637816340728085041444331146091642309923771289738803815496122378564486794851471243850796093143933518435686326651018953199257437648208180120237427096969528088366661281007132875947269469460033943716328307737026919125529196256624457811388193040665068581307727311416174933801772963951945643367075913140294059375947055350867369218507123660166273099598569648249210380208819973955396297301614158275855110012922282966311073100088622215815936420448352525471374922046047429601348805035622018319829810774319009704783231797721487692979914696359064802993953802771732163401108447182503704288734832766446303819427947218360675874004107278383401435581260650603407448035619841152620495749857204882447094976714729031664730657888925935165292806117589139516210854293109636955215348563156253427238902744937616937837065811449079781868593078585191897896302809645591139966845261229101047118193939551251566499865426512653176805244394575729160541458132057111248346119512932489359019976059330089952237061663761720648689009126223441154735604534786138815208332921261529310268960678685866302858633852823157157852627447822984983963987205996838893047585110106412032981925699640131768846801137174172038265121259730270636483488267406672104929494170274650106168396280373541554148305749596400347172937479518981268668881663572726958273844213641284514177288401183861741928858121573696986125685135817066580312653951396647792777600320140259810720981702623164158721461362015238203709512770528553896093101703413087012523998338790199222953357264675732012322448390848809932320025872895956233891105940281701895211443775499908685742512650588947301830989857598498145811227369145442004707763417587580723270414824477192486812272592864409555158643563468055544674448637674946796259184094145163363575578457653166442335580289232423659301712389998588052544232765906674321152159510344488126887193834706334611387915957092442484654950413795893634427141317446884296891116388629822709554392725007900822781285577843827661565656814356037705937262705559167473862858322081527703931723188459961973864825010478514635268149998520921162383964927077595468456283636781998424611258392278419775284366801743035550105042689483838020495949539796164846822711349565203910452438010402289673609568205415207132502444873922931340541486283298195703845781303428951275823640431269930117269727356449211706827920327485049693910403710312663544320323907060001536096065538851346503178662373553605046398277580789014914132979046225516802771173237847078094233943207613060032436944144581205729786138086459504184809518354546827307986862283229021937179198607526567308169118012476623139214403536654092421671736706732434717358819051032505368220082054817760540217579514304489645916421921140248151739849836965723689664757581665276183244182289483182547630746124540707290914815578980286264960267649367143805783155195611396896916196527585539910716209371679543457186043730085889533377335619044433455882527574631349364573467687207684840888099560227718437366881782752168277055171315047329931080873306395764791304703214123255618085967551093195562089397268248576939920751709871424003770836220387444488535616519132170534390742963519476406112768269361606782966853994046529165239802686374530093182974761047448318035661211651014311035992862583007077785090352549579022103067727054645242010680727967616245386414513020072363613477352671862079169893682448756453431752022620562380311187430735064779226605757654369423310614309389325505194110828450773730860378233081729386090572791714829552392893160110207227899103119633431100542192218410388664679336566362828852109333631344654652438111455999796443851037788604676185432470314810265197877781020277927396025114836578104950126964822525025431471621619570953759487858498776630779687303911025331860743766842602498995478411537154994690025839325595823094607346752690498860679622647399158105622204934518498091663418272520889027591697346280655049403670527920676783167488063736577545753609311561734611345402253177894747363582921432081800246069802409191376369916809033852822163123217704998220773923800174304222555418300108252354295952250032737956115029060463783191731370772394665902472891678531690118229178422164633413824901445620785527903455905056905768692202923190378417644660158410623917589443683252261104253570516016021329030380209171041227779412921530019870198409282346356020266688753193321074344095397450748672617600743361890224582992537806118705361169317386322425122391570205229969092506298039448808524031553922156139362732642747376872277231959091820038313649993045157628060980479963811754799421286308205376381243166160043131892856813103669001237958593050301603092604491988531782683846525640519096502687229207468377672082461914435813959314324394573263923451477852688878348265950892996914009032913463029300806481675604869742397435382353309366976214617128939124439971324617403285766380291272019683389462916085553671996762692547802206501252203017078392946459469113794337415196225863997201506276958727384075370194065362876834695198374980469337085044283325244274087957280786823323027735375216113501746371437405786772597322833300022449895178515709393359260704136445992177593102474931368238833129553308981273780183401617630748895657924569411082777997121417908825340291594065612248798017434330720068346973915990359543773356959776413977600774810501913608335702729384743717064525079812143317658782438450491053417882719284137515996882555807376098553368603662367367579659724408632777479946702651122632962775251801727220579781228183577406054196394840478727406889118315383285018290887518157983960332739851957483138692968197091361300528002339982447540827080359316899043012393939189262512416637930651682654914256983393478178812785496371214902776444980121038884499869728370014995547945763174910955495319333185905678629729285257843768829757123860796838494282994388808413180876242804128664133464394894471885434316238572408540070410727669204690364957594010944412338537641024741779615545483895364286359952302532047487210915780236909793245467365039040475218537893193335987931174586772065885544453539825266413057291996667699224213676470039365522532148188383333528085080730025283478717538968473996039165982562117069600477698897150906684244593841863248069738656339273041900621606195022136597943478111672040058518128601283804153517571987885547942228424528461649672345975020378063418292422753306693680044572768923902664676741865293938262658245341819832689529957720683965726284211541888895267083981550137125184547460722640185101151811267222736944947406538771348407661338287036821343742558730866113278220855514128966588218759386972450473639616211290202093354923397901103494958877751145380791299903892871691885500332083067508062789229013034372722987026703356282406872290452705772867099484260017217298573164676442268268391449616707882959901051238753713464595726056347972635195183152519783881529484486230281863939267108873213975154735915183977928315614451737551693049970749682490949220784490482424848558981584011913314285353290938002447011808543180064887784258826260259838929026902757348257736429354865590171304326121129706070047471993047302197971413814142827590972081553062612735639849130813866176683800131816032897044963159938591719968054135787561704588130553051761513719934683466857995340232808145629500479108140603732962744083695892204551449386674173432203839450643339929276287214608733428852748211200405234835307946808850813421178204302828935524182995076333997097741931349607829670634886315643836466249435893537419193003129788060053592964001151998530040934141154830706352051672820536003704791530210523484428302985103644744454943131569514877765721796382348974240593535041104071467461388274880779169650477925816808574229162187898736306203858513636451043267850331160719292016212134907247204068719582800538386401980613165691616107839540438641047289207014620370931051843940867764025154924764959814940877137791015422365725841937005484751901547893579469664153963909791460343802797123394984428248332015150501245377985755456581308159561171435801323261594698345810590631244916572670388852153059368321725511905858322377427366578304864096947223139457301416560164264581468268358553718105884196349585650569735461654247470532784015654913353158404793056828581102776433537414844626699082937297658916154050289395064489921420426292989626936081052783583680606754179614166673074918909295017654232042375318069197610170685357361147833428168055106178992616033725787341959094482033149596679087326493466921717197308737162569248702408476836615958521694319098174610096116102507229885487198910842791935963800576672741160977613429763972865301358075859273222933795444164041320042198569007176717462988634599922052760927822091122982800923970118342458866169217466495545273421276160852685957915202337567866409637901499934752007278542105643843253933662274399632366910621622194176280705454371758825512790106911832676694539764585653521844264809254541764466647605776783806515164494177240631083159498467531391690159451848317734817410785273303142350936112799320341958195875297832495981238281971594002553213680591792214264498520657289372667972342426825564249822161484891958024050726714257764612403598741437251951325809159984477297751197933734830589793249216152809556066374734832046758862384341151226653116049595393787444821111443478700948654759315909790792030574179855212203735047405652822717561246569666978685538642180717976139232066618367302466738137216362522098227122997193391453042581131757886846738964238561746681758380824183124953909272081209445931504087158460620310829951851519666855338160627062456111545417808712181592309469445735776164791071145233253112989562302069222695347545268151237746649624595848765167898321076212326616799576950210074432170382987940554521822821466400869459340108928909171128414301932364561727943835910425998745578749935028000310868903191445555595543358000843802078354026494602388427493070119662762455856003944138954286964090150335542781461529598136163224176301177487499916761180207958384885645878199170908366892656195994322110870562210188403854551246133006569241345362710507833287924952167071129902032556654478714670008236397978255100401122313852698852075252696904552885109918003463066171567983878971510602881868690220503454074315778634390949356239282201513437728951642115010452983795422539126336231783460107785860083204117457462303164588798655823247448848932056231029207222259935217063772891742469428587509704281546179408199118276332918524551683111093962434016511278226485193462983180708428841539050786736915547682766566805096381596565573360512468831752709203574539275429820182916394205892464840197113047700034036112808713295289344950424131135170320463206354063933737936435965563907560643111874682700961728127702960785748767378329017268418519054799744711957195094407780995701630009602930255601605441598605443560644979253173263115703070562222042788785549439403016606855281836407421410934879086704944128659458888350455836870705047665302313577331484795004496564202559719232070399821734359533988899958312434021367365166921061176508461090034246562064116300462939100508042974677382430948594471118166395640456882392623024109928286732333501195060796201921635600778499202961652236658144812725658099597878768907685044948540347097870293511209462792302560495869003285701239198647367861596166422419803688972915620009802662648468966136991150056945127887379909678623860895028462973423793653045247361575276905551586443755255470552434317020304932506875833466402316702738371200801846343508728060838418023903353320957885543333770859504639143450875356613817752466112007456924410694152589672242529912228872309625990885829531860099772508720380228561744039150825114300249416202561127154752081067325427343337144724246525136886504159177444954021201973681626598765458524602575380335296491637911432339087633648081599304842872392346651145454066742197939715309657770331173308996966165398780029423404479865756553890606058372975668944079617209281820801786007599336276170699122186778343586310678661228474920336933719481351867432771111739505597645498162349391874502528313750303842940962529618425317016695425724189826299736405857901788865629122346153282835304398370427254165739010442424763012534865561991075878090494926112373513733358520861075260543347907922594696102291649478422512349443360743847595859465856617889815061124494607294399190661349153598327989257304760484013659810016800464389592830990853200725178539606123042838491041462638745967139595140452751964019160695948503881233576496479652852761866822704247870689908814048680414215552680016247486285777383072726047531907856403040306402797980949641701245124046017417410693495568434292532173302982137601273481863274533747135432355058545840589187197782402726521986716433061291459947892308317050788018789778839957904859422179938584921077316617229452645474254055792417668985592793842604817966534858734366789263300544723488864339194802583688628717975452074885880093920034396016340922932661604278878227351020489941690501513224666292119911677181326148505867861498001029466166355376884184572546191099778912712174622423332757305327318440944057898229665763596071145528438842314035189221823264547680044901254147342992474731802226409046565443033605162085698590281334682006817330440262570501138650644960891360079235727904611595429125068727513480281192725380278902541480491283188322640792636927397811334562908507060426659958471866102873977347642376012256181433946058088069456747092700955502418078561182357474215889250469521061777218657974044172967884387995047690301014390870950820115367394365256881329655741033256662525568414453307902848938184174565595129287259888351163364451145841912899283894168224130250034734294424290347850857731789830078726041269210256686795512899549539429953387163920707359420857040766888839369393491561853760482080821117163437555064436140838136497901969639464397874357578241800489084853815333424350719257213361425296453696170995097458662859113995811546405198115197402014389072561232870287134024347809964714325476809616120994106679167630473679581020480319172263989036096431078778597288658409482594777896337776187109357468643907215694078357021021266188087002588083080021292355708549177717637791266045389088628440393466248992517402764487618232735280635469826662903466688084200369937366493946812595207092186971270343607065549125426631875524481884261276296794118416930660278245268786311344726031315564615420093048366465277741289554285409990190324234426855185154717724883099179115231961367357352658024901373060867662754529870570647936634366098340208458707807808604924337262768035537044976370128447975520244870229880753993728757231922542253731725285066151000268222846792246009487762813812668235178545510951537664394826609866739631406962685824888862729145287467677081424091462369459087949690472914435043939198079184375245266802793442886431369275205365953985523079553705938967985257373356944285306758263637107083234262543592894895332655967624241914173708556259585844963110327419214576376883522122242540344685733098689945482472488130313986535082593138612040902810298862340220715462442576547907985910730240257503225762126222052097956103174457739523465763711044143430122780614566091561255579035114844984763909549438841497255159422917194158575210788019949289244411450995133419321752325014538098580630334949544559931414972815467008586114978015738075811611595867862189815754669835437397491166454098753846163180492406138863521588720821169820293414012171252981377465846200247651760641842109318230837202118280604717390331043476598626598611121117766096844622791454252102298148990096140581013332211550922308559526803958905991750780770681581729414691033087814873299339299776816824790386150204383790953323857487066337174601582148262962051758852698485837553419146845777610061131974445498020968001705946412177870184797403941470739461688387972294435105207412605672690560388281089002192366188729033975050654857019310858913268770379499406376522907644260142646811403518975492654622167482388029495941024701338912578532428243607228281437176883020185036662040893303072544944351712937206129747291416986073111933876113297721098268157209102947121623055611776147630114724000212006683329826552767385343842784053993928013381100857139367795848545057276698037398338269407257600556634827148485507149214444467694606844139255082944163547032654078793445902495719233787815423260072084794716935746672907179982373329751229437340725792641905458609745342545384077924641090734236995430816993882663208565646660071514492033843556002710980343262199941060793933571040846799103143500758169654877301492297256542964336593036259118112494584216659533881027402379691714648986591216541600104081924581256324571833488554175811449092550901961014363043868335934193458250180943622684656039047177694090005861565687101013895543009388188954783504286002208424400960783361236547199457797671459014701224414344583192972313093658361264476937538483172326135934007726347431319996797852696236127095105965146274632744248675517286263333145607444885247050552611438486806102611013771861028984537854998591553527829576070974929245542742977168301246935678605815233074633368768291184403177211458364412700068339159060613046110832705555042524904695587752769034511648521774111982846751426812482513152298410888446307099294920710669865215227577539824106403091374214196229740005326974261099906453337733271753090276319194649173700303830984837046515070789865461533687756791117124096203971361147157199881854166664341081746230449713535339145575378384569525016581057223661316068679983934040146924711897852185085358164626145148421819004688526003608717482102532029072177406245004166786643713328208428482792000559992034309913100172147187236300920983838991120270924781246194112262372895097109620334620344001588577155321178170542627977716267371540494150690848565080218236227002841996376625818271211135808103836969334932535654956627235136048180515235889670337020584074331057436823968348577065175264430816244467126267503325365572728696663497859808738513565499031161197296119884415079186011021561259261772151517978387483461987469282211449712638782441360187171597928233192729559889502946840596565688352748966338329146308658799608725835350564696319039042302209524222333916672899824122385808596267172013342408635080515907940245472139155036548706327242082983201909294530736057573266266171642327650147350169738995201921583410898354554461134604821202800381842555561943227164092367375134278258398797926646961576125294942009976083426490635609585445721843900340890457823997679062995743388647528289894318328498668728772520685312054698207646816408579637343194231169949351479997013571541150238706278190034913675791478350460117994635556644615839840028939921934029764536734611728783820844657475037875356463904216909544587234828312370335838651332540662609824594148954339510786176090106611287596951979660035151075935161944871039105181158881423928178664857837728183800122632534002930969815102835465303232735973783305856319486412306884174782263732772207778362328112337107891152472474963647978571552580658470826104507472350937582527343146751150514056894980963227752483694415959165620165155917832020879439168038901150767425897115272445446935061396356746452335189658578274732116772950611112946178296553681297373501972993621850745649033630330832539277714570282293235867651122079013934139613232293789968172041621079034095881135561606907907704405634549763151442924007503784470934471415977030969699008449849657791423194010712136853798222238137635005215654070534346731954887837296525351051306796067729373053770105648076048096781745122921477801151909923490370213901777929871322272003486054636513926523615376545872841895379229233809702785133734356941688312635494381803398877200407336850732571388555608203423801127681235335461445753844721390786891060220597496447974794134442495149024623922927474011452968268388207821655218200836790190261704288714497040244923066655361103056911881647160819169107309753307296144981146168810532884008802305797967611026488270483605279580095720242452096445207718396642100404677570744098974711457774675565425037450176537138172039154574398507141435733153682422808024330321302561813864495079011931305520243503670911812996220799849137386323216507919587835473155286282679281530935071461685378034882629487274516558793827649220235950006653512886215776517761030284015803859240147562005711140912075899690340016504186208386871413735653181192777398485527242675863167439430218444297634106331362345286718212676429719141566546050310987925938582890126181318100554807842401047464747812264392672537144294195126231232623641882159235665269119949926580580243558646566100458602295206464980094488418906076193994694157693351869241002550520325609826992210321181425794720847691370599394542792683584042872716595560572520855719117851753788129079940643202967136943429588334159010783101724615072838318894563574736219806019103904546149638183085812988398618469488623930852056843334369235456387926974492341037637632118780996865245668554120862058533879791558336695975830577557831331796182329178436139702577524985883539741461569055210488812569577483350541747241768746356178994597540951029256570529216845964052974531998110453062833437707839336948866121572634231099124941282935309327348630124929205018217345703909891344136308653273611903931355849195620459228944631504201705136983177123756110883429607528222778916301873949346474718510614651780260113509233284602334354787476397683267735882453821139560525278174723839876735340181013050758552352303051582862520597192196114079771961960000835843711529042001020833321234945048989195426722011232090819369930131974014011373310571233623578076401118724778664501409164154625486840204389966380617482122960639629974144855431124852120531355388800076216907534034838841666719550307628229321568163105352788139000833701275928112293350808414341517533750584978788573509175313092291735401172179987052029391879958463668172003164139010706332510641349217609425111741566345691720418619327987883167074511891511190543549383178509614598937810073283072096026347102851045385305264105677482185397676550437052323683844924660889560905618915709559236282476375270260817174095247794798213707665696287510116507166865638087959012697892734636483144177962551854596400080882486376755711008066498998409145598332139995909185744955718966173233353757586876829207031756404814115253277766158732003745957946624422220784536745411992181227190497789081851962277702188735128493295985112035137276127198792469867282206990959615384211110737448485916143433714926173889124895767899071547106260250759388875965011710312752408633944521747572769317244426679502300555277028152904477433404369335810402915810859328399506275290098237332137850619442349454116086607705210577857057383892066577840230522919267042230288812630580920544373386548534453634831461105417944778959314291740869963943586276879013828782152441899114718901700858662463288046671386989498295462572688166549715435539607296271484953105353736549672881414073107127698841048453404678450912763952356455734309678885050821366034317264854289046151009508840758305989992906289766360527730568824331713437664439792840653678346853420969477160021662177362532053896444358918884500108802334404210047300862379629945491977239193351663071662705917000293033807123690368022708397065662461273632958395031472888334701019502690652350857921203996506134713412172714144065119238173079366599884996405217722751997803124416864739819587066747692313743866735448581069945684454664895980354381049825099041801151730407285117746869424943436696114881080754042300828717802890723012340889993160749566673265513076844968902947662666424716368463955435074051955953477066208020967649245451276806631818063467786324907760628983259165235999362256595696581210103797352640452848867317320721325770637506381472242548874570910421029251557218297995814383594984238680093215941317901670965476976867559672461434275148852257616609691474291315601643967483547060937559845577500398459021620650006082484198876721687074507713646917623397298425557233626581815682636649831443999928646508737112001922144731960532379598035958853492073852702448816765740799421468184513493090720305050041663936470494043340160080726536072221531010560989544223108567876815393939653322724518134958431886649952414812641625594875930953015101559439111207403239464374453794556204752061048414351347564281493869845001453674563205960481881027530487267340894389132316273109836398702483576049924682684206132306771193997960304983850793448661763624092986960657982099084332643311461623304412661786877273842594558570460099853798536004189968232140773253259695531527208965763357711358851759462662310919937374021461464803421350988106266569772924698687720917079380624648424835669424627215162729361198458477002933032791481587408812450849494175334662040573370197236555460225362881211410517268942224744030291233692349768501924289761350507947461393913838554426858488532153328306139684110489430036565184942589684691108083041726137932321681675918523044735259328930841242745513796264818637751482544032106120948630861636894164574686638550165860804399716012910846363879862486622424445158178250566358586797733098454932089864655316173704158647844399001264201669563133215145360573705074766072334946790778157464028264455026447877387146925013378311059956358277714604949329536305879634365589945355706255347138055860889401211641278332788784451862742818615856155893818106623707643730898603279421876197146083455611063097360439678118058975642556643323509435576241257956196769402828651205850051140662949628948081167587340397672773316515184813078658121761559747400483111131608062008040092436070184617333694219171947468996163274378389543004682491500572872246253560769985994534125538294772426660895407164485948953783597500655433282033971221768935974767319352198348041831698077292904473833452176819611537255950305829381106044090172338931031445438304200304404676021509774629311163729910219398812456763637003134635359465867365651256830743809090363224948978999969899795467916294281878855887547380055056334470583187459483571343026966998923918064690448871706627232601391000819674792213722578265316400126166878483270867314188981283574211578691450699340317410196633582329203319350523055937696250187416893992836550112379659323503759927185790691097684405730185313719975293637959850319898874104703343958059260656457719440559862848776678828312620859619772127445932187936391928031546353225705846657053561046828072040973586701756186358709232996634336334916373196756048047794762276139544023226573975015408951708857353537697318735503969747535002249587655247694157580692776199920425922448751427479889305511958548305991896148745164580061874450906036539270379985516544664335019501539861868710468541709515093440353408664255799583377377228424651889201754594627836292406296430232795827675532999518714771048954856722987329104286223357835446077744772832366067782563653374996811165290470481751800219810930518088544911540078961203778133098556828465187564840830594506549277328659190669803011894672797829768275118976167179688651163490216810490763550881784279766497313354056505302034431671139154847960336484823921303780514570240101781873949260565167861810802466933928803141704587992612592334154269021292169338259824735569886572524438899911425684676834430752171870086970101549813236980539356263684633147420250451018521403573548881550711483037113226165244066169467329734296489019428051455014767626131548923392461408611457084399312240476589395905531199577204125482698833636936866401682630217828238872288273062250924553850965762103856018075177657507931938408481933540975410298779508205735692005562906082876231189307981105489285333502699377688685276264834649879504551010628604167535957221768271423908046366471975734840083106838228244987079497167014080913422252734541925148641911264595226273730387321696698630707242633235919773625688273160023861550099278139122747481435926571093670624654367561622651531440028367713097415282349309331988703114605717299683914694499291775639505305523281081968085122693248442654919260405103867667509013677313719602900175320152391491280368531597114176529638205545027672287558092540479554175771564034671436311416175828452720797879621810453300392210023364236445968008205413668487124977701858634716703602221001975905859827806465574329911004552620556810467979978305454932722411319972742121973694912979338702823330692409059275282881641441092673069750976060082047349555818535781802597906853932236342569022580611511384279528791496083329104489780777549549729747739065145182977425852519582565546326186987006088185490630754212192822645674212893557726146353939753325601334968742781826840274228358989538266721177577266869852445621159683173612066687471995539317976788387241134678136922348757399818329282408670756592258550948402684671141845241673765610139071608275949059491955167022313551580499983406128219652589753897400766245354465925056751065637961839976664911980643820912339464488606460641383562783951717722546623461882278095291276275848955097716299034455110826665916085785591851836936288864725335006979657353076421811515031275106679787495887966080680950599875431594302413133588874626126768542595270096859416698109367716404239839532881548572617836789049170770187056319263385614733466321238956891919265652254262989990359660593181604757121830873669665669632303195486291833295699023763203222284457775783128190892436116152916792164168403198812402805039588111501899724201558380065133142465335872895551374317127251213867904225884040455595429573150513676538807638415427723600452593819175021060568057034359434061763494409686276507447579542802111130990330921120359834633178699854728072003629156516150692560228996488623124381111909186817317719729557077440620022575782423978859092219946027636155828433878474665744080213260077384074058777790637088044381452912979789607794316856757674981176363734180222254087209042142263817227984812408149316796977995963002767726011061597376813304887478098322419914761609707377491299854430073888213960428804563447490570757054950998952220521655229347882533773601044850561677770860219913553694710756971652765115694481276278797215140260372905621067109590987790190230650636367617578885378915447660892197824974138769819842720953883698427373220100877745908143004176312207032651246960400335949097159267006580797089229988377051131808651019266473676320845365803098859521728970955099481235987232646444920917799380677862838731775588295955902305645007866202117357766428305881154814475550589187432439093317673981405346431545729298187277416090902723990384491397523314909871793606371705038498555078761216408456394960784396779823802189400706050206496308890055980293206320708426904246261295743938294614981260644431878871657934084268355367532663677517590527513586570019174920209982005814500208327211572248826088286627432886800285845904584660304017086172468054407908175918157847398057279858777633765403775722314137183158120841718706970021395976998013455925322786033073274841723745117696553625504309843197705186201578781405712623504727524810586706566595810733052602164255865041005570399368944696850568837812768454542326339494951111414276369461608849303561221413177028621257293363581273059866734175909479541280113525107730022807215168693991650603426640647737239950872207507417017347173697497726790631131457037342845867580720282872506200584510497277455729721170416400498077681575152225405325249593393117804133361359347673383126955985975607639001712446644911391644793944110394839491497200992283237913735552567895957717716135021651151332038591547560968775452340895173772050699975396276598313550934178569709589841481471083251173829101006266682086237002877787225023223150151359088448572643190767630320671037263499625553408579622930553854340774478011565277777313427102560483411615484747595953701030103616276011260152167806524471690327962847901769648270603115533953282674252974483734849595522873498606553486780153945269434174679181773031489902565515858305747091893503776464156675996020311037526196419226653327947754010441313387486506728346575289056217875628785741424749493873991505484875836940697011449004420893777451060535317440424878890697580605335357001171049689710332951422682760038898569436776555470977396285449835504211146534823160146311168021778739733571517194716142656176110380026051870818854127794047266590106761436176112103536165457156049952558260173920379251248025640091236611007286158072493842145257337672215470211050775733130771768230097378647613605258310495048302547624271829538476767520367645989995611792134884965595467575723578773012874343749381308762982195598197543543759235445419225653570875550809285626670861741775362367798335187372548725522724990151465132597445641939933697548531202398268060696422492551524842559709907146980605062228125742973841231721273675502280958853678679823893996571723873860395627514702755642997657003103423057270030779946532513118174100303003516575867386936580597854905437879218313689149719812122041098659566745742144412894767888261364635940782175991773618975110964571360082924836493491808167805537009977141599447066116420322428358840784092696312818574206157695051314438561048236201270329334966367075906595836754263781662242458704961165350284716826386370159598480078466470135532127026225323957635120524883109479659175445390469588787003635560645474273043270978884043096182857114830198720655474534715456785187497045175245258956033225353131884621307315899720425562936561526208040575241673836829631280675736812835241914898349407462332771146087928031494912668477059663033081458109427983613241395314976694456882655008832952229816683840057573432854989311928211407020616546283419631838988430754152803930589809428578676882328992409009628811849960941858630796609221905197814699750402674113623812474286321571572300777920279442028644788606433623156035481325124406479294985163033297797415012428250617673638801754740746042854122892687359391772922110912014648697049346643860680420246739908233494162147899998693213989601790596773881288029089151339152463652509136012596375289663889073836447992355832659885012094164840961002827653821316347502195841883942360289135524031189057755485550376736428591441402471432231365345721477689250121234357996935973050888627626061941886166009233457285445143185305656170355382482300397109155165486075587815105879240484200618897904766491172788635946630879132726622134253400855750007847000530924282861373733211336458069256286953477424168952838760414699042699699088884116925911067446871602748056152847790826971853833301812292102043922227317439779415848114233154045096995024073802631333325075484278866030928602436835637289397521371038853685966975067451745817723285387130403185362407234355616157407618354666824280929454351138693372684544670925832235338124071700239609864567346441211657507202355910438061619928176413403956449308558718787662331591418052608876804585629520405409575967670436369782721878246042797841699825325420715750837599944805709837212241909076458038730672451770476844037456809952638873415518660181521388142021346393303865794839801015829761733634754457915204389676105327214980854101303113792067661406275384362846323277216432342116567751071690603147389381894813063666162633997352732405610574792827446854106746488562776553976801621247616897262270112405723933414422177656099163774130522218717888842003616434819905756489920796574282024505110298875333529529770846825796626042502424390013371102727830198169339104503274735293292058478646697324409635756204958570888833731092298879501207536818359256122624444776172480854624010516480873135679728943482696747080845550275169293328903625199246025713877095678595656433503633842033933028354632364928365388568607188293526592863280616120955368693144603935688903252733384391468907415107538081927879165647128662488400039723942594134820866571971712155113770015459134038768336735686939954174045462775241025558902874337380813159050536510382639891653613690545791827366610209992547729162883676463234616360730917763340381583776163338153973717608992727501980785997737827280337105359115972095453482737930068976905434416663044648649317695050364346774136051515807731429668836197682311357446104899982265421719947062872668844576274579790818828337322112145032077399440841170475430207586514542283352903697881197611736705685047243942324990029150125440795187260323134971606109949597852664127583249852141596796982556984979506641971207227663346531098629204642290529398955669825007177048060334697983889239592462469602563041733640865568158081736323606516934536286251198086167633352517886887451466268573627408288551037776246040006219521324074966399833808987412916541050408321681008462243509560613605338322602720156419500426341203470152888754437073150611175029635003145196177193809644876971215910243518832045093029851947457381273057343790989555158796228342358516131155227654366974250219500295586415096052634155725983978385835033316941971835631992731448694356836063716500967889855067172092931040012951160946318049640518567992802550551052794414454676051459268045418625178258684383431454702846717107799819109819002816822770903658603637343759922048498727839406208114035004870404526565807682336632248516780400623027336351766408426745672321735984848501649057486675490734064818715952693357107285188526082163941504354636985829847633567177160460532935794149768072416874079097355137807499357552540271411585476054587916416390116052235168773183751334603398011038377345341417401326867615518247148830561630990777526158593278571573530588783885281197214583791931491330365959988514110443282387367492929155476526970533507753474551862998047331406530078009301652262732330263140760631821173278318845540471406529223324359828678421568113978609854389555439829861820484031484229989650683732934056568367397887530219234187913053393801678209750567925355277729348935718197430062114368562790790944975310862998352403192911855767807999243359535966334210221373554085701597214831004384683402702337382656442049575788940206702642342410537914063088149959960651347571656889851975479839043834285314592710002459590045526063242642945957665087233980438988531937765922610415764033205600662989867886835681466459670907467830450091854362405479406938805186787034578026103760854957370131220968654979427682672249761697089766073259266002815785278962362931361525418113609175165786633186142220331878851153845083670503025696839979486845073444642179118135382405656056000593114114769312109876508514967234392761677356169741197702319018383438508966522261656727489081533265017184830665456901038422568513899415159441932401998028650162614975650168772296879514918144668920766171790520118494782198108584424643577722037408473439344975515506737786048822546345498782612184779960538116966247349230761024750851349347530199066255497875623860281909939864897944338955899712433507382290370798351590593658350703910779371625295102286425535950230368190535225179803666323450611174196128714901763437594563739758175551117442198065828694798429217903425213106255816479762044312914619513633213339780592903066565466705093011471763566849683529777596163731815747771761672055461316667002403173115516179196997474023479157052754494665265621563916174390791031717321804137569781407519563960052351967334526090149914036788644781039692242378502809844898839220773320400069550870917368154055971128082042598202809643271642297692170397512959777225680241441737366514433919794774162657509682819643434898559009049072416321849987712677526556413484217317251356118687752673301958932313265940876440000643638995979376778081737337831405655102419499108295142249793707864648960288107851854352900166060785362535078869504569474033365474509961910909853935079259509286663253027717213925146436377707208234793015945049858365552084815953777769891672651192458207624015219138810164507250830648546354455429334383553190420700767015292096811584919529528660035229662731964793327600107274768683102025706912839932678111882605205942052632922081388568284515236044294688948064786824338737581271454170260690386772995796237042313084055404124974169253757808215981601861230354375507913221338349323057729980238900129431893681811321623700414052985873701017237958647594111129036867819788586369752869228547863288290609393759595425070718679645729173949199354402230521338601757500111806913382513942685851240093845751502228169039964244498185870114497975843932047725238240197571831613973808622715623215187900122513271271233055549356131621249904121918176730077306543664789284540461971150233692810541199480095411050787164258203071149976677846379177062967518918759771188748330474763942808227357360681031923812380810279757905317602276620617179814043309566513422624523361747217168680386934318294732273783798999276024351831624715817791673902726440498180935850405721246269596835317625952606846537903561171768387724964171393756310261665518432996573494217935677253359737143300242520792579736984498770823223903580858041217841656330384625479729949284132526370297719844778449745736992486022096430373018882570216529667589286414073867375051939036794292144069290604257122195941892673938918384241049272047307681443284051110519573193450859596061656674370860586386621643839925174633834874660915055163482054234834180820069273900110996662024765711334079385739786308194474580247018872604127676358188118848023585695195140733785440037155564200378101203624200763141454205707582951418480263025228486955383996503058967305339687124131441592665408624639351612078316628359690138604945032330543546120111560675300586772976977358508296216852771592236757901559333979013417446078515717911244649096806336381218684418195813270010541640828639550347542294902332482617157600962543212252627074802048321843009274424832804942514879160625070790771330551937503727286102354323142549314290514632753873637088233664585840765504367075205791327674628202305640441300104067741462186127781712203712971935511894636528617674489509785351141211367271223888917247279977655998716325031982508033583643372209661480858135146475807097578177416216098437450116614880015378729595158898466988852203950648245346891782475916700752388227430149592930004163641663990759247186005077128383641849222257258493641345130088529941816906281048751144039532747738882231428012207889261294101600545531069754347384878100337138737312076209566840228798181796611242292760890440087285312037338068309898232881939509677580680163253810085734193119907392820345918622253970002324300360274858967840493172264203383655685780609953171599815994728426323519825734637247472006248677370099849957390339151067097069606148007959436672248300938748009408098679105893822908096244434805200072048396946964800385460907421932783479743856163431560181243485102942848085558528499991707795826367064112460873433735335209579513373528266845128134880460062624927101378936785606424544099419563905948780399175988074906056534812014476525843146482798079261047542690930473544576240538751065262959132291953958220701321750704554504951469100720573179692691523108642223317595720282062479319858116546644194529835857990880046779254204478818881179194749162899886623424155807001845656338652679117244806696836825750862204309532511807781544503198828655096528073780482823931921085954873406081039638964736768157820475845582377582258571968888691642107215332745051093398112098543367702975530765623336068412593564601034977535733811627053152431028662595685661517602454579873231434030790796438006987056991763466848547823949502184591878991832018457968503029372188456874709978116168141572812902502804837470824670437559586040191494317390936215434791641417891666214599431731604592873387102073495824315545631219628956603404211259318258856175153029546721274089584567892637347777207275251785242677822289492152510168527111518285990982212872509278430611050313054130917312837708332301056643726840719579182374206900727156707660003249234255993623348804531422376099308974771200858680135041023151423781361992071351071994487414035963449782209321514527631133355099240454840354706696668528290307476338930028304355650358713730714510124541014102390901333968265949748525617383305139991090114830371295583233551014447506081104969818758592328488190390691928430582395648102410628044698635429322355195872175696259910195343510920055547751995545396881595722369926670320786452135130124634492538454137355450841861558485418493594885017731505226382092166503536777113839434392809694463925722675180011621753557700643372353226968074201555909522929714110329525923815938936678911908063971634909856777178897208851607771877021781567305426342569092475919869860460713432905731584065215358753633362112547830315360785782616932715466802253590535033952565270429827313239434592545334602694612516624430333399849982598017485680180916161024320885563786741723430610949187479126407762699122761830672241320827077022656833389068635269016275109265461813050460038978318091885851767108305625298440481042768244392683751396039814241259014442761744176811485872984826158618004020884107577383096279137092593997684787561260053579429766088051684833540931979821265290076121995792639465808960097700344671567486307490308110983386873575956243374137796679238427165336075230010519050297334004058528589689089781661768314644883306084623254646120173509951248695889261861906956981779917152749425893966210363646227894503865704080538287448816190383980657866742695287754722091658275673164399723132546510282065031585762352225886304896772667937070511981189913163183612827837171907918272710020572518393734044079219745305796858604163004145499225274122495388898911583026421654515516516821680125774612855639385423534588735020367384886188898386388464416317768021810157654218269038519634124986337428582350516592640351345045704914957301896466789966263552038202799476996682889727168512490135557195484010392991358417317732744910226468231626902305968615579708436174790507193639747096221079551247872279548765430049099733325923495960986814432220100435652359477846149058678982056623891118112039576892221147326067855089601068104124952210258323590719432963531971764703688186259594190212254702151301811977508456154455314873602189087393498483424648180753533603271805004885355534264956341332570373804180139631442072798340393239718730258813161602068985716637278181866584072359939964142684024511465792163175220280268453381474104302281142248084415961742521703268261889065359728574950242820506202808180938884518994355635719475778067233373243089658246754764050386637787272415771047000480889435412468079752671651016755448785577538987904392716512994006921748300225415736825131138394750587022322810090837785269007009594378867221879502657036340968028239820272192939091197458243855084744147773495548259781073241836923341931580765251302343219978884038996141838744438443586721723065258885919033356612560317595859949576009354030886822048083478270790712629705657400444145790608856007533484286467946982344293270939729630883751789089056450637956690324262878375805117981202061652475780140657162280530486460480946753176964515960658765110557250998672464511949586681358597573717370065975139225575247679666230453913049810296324411715546181010615799477913376439923499866818478550685900227979432810885116392786485270390005666548032479178842998454373117902124635738338909644133917359948208245272487764568503109381209699253926739831983090930411524378241540734220717561128867623987095466629182753622179756948469255688829883883881178909923493961128073613943394437290054290252004495038326578826214794816537424141905475624192075033153411645603395239451923925966752327003434123121937422996318068477759720248384861385562697827291172583207516200876475808159242164535081993843099469792795145315524483798467673976266478545850215082901037552063850617446325491636245745991605832079445527036919261957129445160211242135071744318816965126143190868351364063092950035219514040513537315883266402087583811828719720235098012783755421242041536034821475603868134180428257595452651619035680163764628697175663239584923705378655807542143887378929707927639150758167457357147387767064895896284918810092651550877859719193358805511496397020801408190821092682719120954473580941131705515946469563214754336712102840174280275968736971006560398332181139772729878285153174071788587545956828540895289414613385348130389564791870247156487875035031691619010965953641759693336864975290269149986659540372719408903115479455546204175923441019850198008318645881290741461251485925894979509372324972594900729973694139282992775282856900122864926932535546094531458601247853770103632136627410089554639689980726608995463523829245104686122607110691992114570774888936174591055970040456778962222761755252790970179643795588283447837928427871357044543487169460769574962506360425463084726763759130477233230955083022474819326600358890382400527985743973649703365723587535242921687553980196279828466750772073840463466652463806551058527483374588182479760903372505379227651763217852089022579423421452748936385340163158490578200348758966176925097053706582564375652734183284318345278308847308754268841805661861919859109450844647429614733460480467190873458599067284123387020558482817367340833105313878799932853578545295294036024371356168073819804625625637564299388342667192480546890876611465228346653907807665592955534174180519866290610834184278512019419839505572808819832721372267804283821478057109769963814419377514660375334890201559680846871952840266908368858928675677071573555650237260173907043834372306530319200670503505051996843347904157678215029314192576888176208171638355207021328509843219175731735581455659815773041879501201303413395409036038289126026894268744411294817405513543375052850535285625774114586504555596961092283620872320438790994225206449565662328410833712275576006631462228800692021817626604047738883797936256620320320662747240870810252732572675596993856097889701266424873745813035695405519078579082167385158398443386113152190225212487654867871467077714266104141299605351495189869626494880771593230430063168934098887989969785826639592731758249653169798838891057157163756005580005198958110972902376604480436887875403949804584084003044513452511057475499809558326146595530019848594850115888624012942364839941682481044140516758816703660568573250769397797394581594157462685382231810229551642518967065653519218068257559895946779971105198058570376477392947146000001767218436998947860899892724907518125638424050385264854206473411784978190494259597722572849572794197119569291511865106341389046108331551304449190130199519430361835328897030261423617200881261065419246647642679548807490983168626777783445226661805303668011601108975357993299518009174182997761604008170928611808015675619586783195721463723822917886929464896056149167853139299418299881203083357798226990268597715964115988812603934034724544512201451730699066513410707326364037980650295755423854090481704613919043351266663543732180001441480189203921845878096097047267449184659668806835097622460866471082337105500676915039117265761391326303744513011483644179743000815041646580643166218848320677630279216249038418742813721919690499191569749218028841831676839622928341633070462259476320526278468112224649545850270172931694779919348478400397921170735710911948514106006340146184301106676355409755687657249710690353901229897152059055909759091383570525598374920017706728899066728960908407202883094601617500866550186233129128752434100529898796294459073126037225262634629559717177668665386422419563632352430731031203911549076188952538119996835699190635039203962093251855013976642020041285349222069366733832042140428404646253213655421081038358521305674527403233935850611660308261625504608358606130585346101743608972810759464440785777314015783301198544944323239325975726953432608344871102794931493790809797475440616314885711358146208022127083734405150790272665006162376005052618857882156577149946288837501516337020579370891094126866721162663268365184020449461914095119767272642667781062863650724992861224588206142204296388250003099244194858580540482249764438073981556450754714156564474618829483642077908040059831643371114670980100496909677562811898849031343165321336545379759107517444776903899290275976173777547467107831442214946681725730679455795555381957404294797414106991140198472975396884664774780659406587604624928466494118463396141409859256425263935004618193253128579230121013508029136377040783414563590616086895084519268240694824371481851410923064898149480738056216348142224942501291428269933905259399275324493042795288284418113422620729080033326532344976208175761002485773385196275357775271357597052037139913140616020375680169240406901218216152062938091980425540663727493990468923565541687087390465550688574624420423842392330816229330106075937917374220573561374208825385095225566385804316363669537645954698505902494698005244420317818895186463559883650233926959533028830594662012345477069115238351796989836611916066053904551569098577112961036113567986382696916112742053330661663491872554183141792943166324856984527309288567059074378147051379836068373769418478528746759849214937388211640069410614532414317780797489677687995640823011340883484936289158385300775373671505388700389400428797901664470775981094423139125574262767949839189879493904849037939642236902329000198642250999590857673979961243172104418252596558424292237188091153029075946887153383978406718972256275335391769961744505675186890963388096411485568556158374076596301998650448370281688580327687077014122574330251682319084108983740540716260743945782286553884437093268027402100396475210052170575366802835600284215754220416466154573791889966185719158982522478534216043378136016238910836422145697954437879507390951466402823057623030132963315731143617073753223305429800913612806233389183954543347132640041878070793591767644524089478458904668373602613741485316480195120551963333958619997331532454656532424317692392538970853576982700329469445868006250351878508435210703743660169151142488250120231360372564411507631626216107622625121589681566098144884329525548258127751746641863523961501981392882869730356941654720306741109826748233852060630443561317542225505819424991387949608402373042155752914648663577309783066620179842080736461329476391323436555653105106182171689533313760560136927510289308986305727406987473465248349803283540952733947789082324356418304129350151323682807951541109696960685454864083956156717039299258668145643273498612640680206833493947140022336357333746537406397988841045693350385934449994568823877348250628437907916205866063398750306720838233951219387764682376776941377395313833572781869308321195660100818699941055953178190857131514272003580011527396751100642363008354750747669320597311874187727315790461102111211139620187360233715424300402677451123214672203445710148230451160215610070189920981875160735575997793487443861845633551913227771854542850945771130548999942772660195447397954337770981430968393743021926136177739374627131863414090515246858622452312248152038451093916896997741043128367890550986395571661324466036540636890653160215364166965543881175651780834396866921977008633562826320877898399796087214825540078809164210222457907373551738786137980685458170298915872358107242900986190901072064435937861378785345959929395156537393490878382345733973564308229264428334526458646031112869247737535373880433474467647803665200106200777872906718113202048613896644989869778477005055789563202897457111307618482895867936831183518178107222786993893758332114139027151321298703416303123985546885273980539748062413990029606043548979644820275597396512618129799937452024981617835757296008729812888973176001560130502473128194951779591177707463614198197624400225125166718650799179872283474868403843744611391799036189268308406595339115021007191656628418967210264347692203595751310604469076609046580597526572784107601209881627824929776207795873172292051302010794900892203930472020515406074602944003382753653028474953072747210316054843561766072435757801090654411565755705170443788428900472470738190657867109074469924586689671604054269212110298799363077060811339260953951235440475240924494599551686553583869107420857500234573057166962111246200964204652745822780003106903951797672052126059547564946114669595263678529408877841757863030838631671775706015619585298289346445293495254008994624923118985394875004249396302544168033433870218289575382962952036715857041326517572830010052754539065521607083631951841821626250188632405906467306283727980801318142470190537607751762491208798506307296412350279392546554650721341157830606485536473859864891708040676985727353967532982533894754338937732797523834626222391096168140484894684516843556724445079183744734135586467539362617711577100556282713078878096476073197516408503167860366518048156363889549593217756032585094794537162295880370461107912759785422291930908634761968972264597305839646068958318876316744067761019372756445453182626429893530634042443388585558119526335493746398030459693768242785214155660423266351372798138084345033044441765450290903966793951027808515472572913769381598502273485809260417169408986158364773295832283885108313795449603605473755833502536269979244362903298029023580269311878039528536774795364657525117059212695586081795966639919200052211751601207041826517264341821038340396757220269859894392221460662704801719949062983224806471387797368318240811437833221208523499974238022906394881912821076272962754170207417778994941296499749403874689114630931114515425884532535048436080882497800482133675881827906744473377005828676231691752544823304656632777699630360581848005069989461937575719970663624223190207098558865349094844021389767933881695910568767801856131486298176870288463047089954070567722758342913512346175750899254614665167184142503691579577089376580544128604443022337262685945832826281913595311741298855917221212368654339405580612170983994264103971631667316207210162356462786681531486312414817772346178880982344227091062156044431971824449143788905592220631290280968909238105211228417539252447388349107691537831437277799421455223360265215865337400298900516108426247861461533973043954588052667319181242241231842227328057314865948893102328955156449303967765579415330386774246321451787885197734901003711410149395864419320119456770456868934735349294006447244531817953640803182811613273387575736531817992159450421921962215748884572168965518924025123642789259767439605513809627239260436477905422715806262344719886570884698003626601307953256313015645100743376287883386978722734834409884174792526629394676280527483631050087319059901379179402296516515829323343649902822511335913052914689604699340386396792782658532264808248936862326025737922941905102870776226666608251951286237121491113308442263920565938388880885427162456482827256341617851043603090364766194186939449264176812820161562203432839060037798674931588575989150158696705537628129126824037235483622105313268833199875946908064472667759677297696117374627450496526555725964648438590659196914045296161241414656222827184790439765904189126610566965083834049102339249455184023183319013215530551693001333138598765009823655686755789735171856537142449368938479457973683706756191497000989742981591599109215032678529807323029950580754131839050227644268189530146751338850873323667050460890316344270445214775391930562888481724213409979580124709684407627631063417956726394760315097219103530529304411767557353379949156211921366917116378586731962409348961630153043327174559083423226594569595950795391537921580416142381281350380643059121957150552797558190464615438193731157832950081690531207095822132228104876279131367075734819093665164504307402891729119387323112998239426976591665704344992346119461703243453747996820284614059304176739027995716473066871663982633351115312920976287870618823970127430814539757427590797842883497511464058703018022774156692801559577171560162897557760286593503427703047637510189804286644035438433030638906059403109445727511888900917542234890244805753652109738355908592769842603785392277354152936728438451425815840848342600214975050097106758578639820690189436568861651935427689304401675521568706125119489557429649120913257263146758111780905226035117508424129196316974150329961044580520809508298188860597536227028903266828321025379369365521124771027146805392573525508905033490779588836571966422946571446241125088684310736643956227251718699188292047986242380590703144355054635707363142526960458446688594987956416381365768471602434961111693298117924907061045161058980760841828793217092200938594428476860592229262820797623916143671208781305731845752427075676213199180045436540397425948453985108475077965129379449790754108329068875091863622987442451370491786639626286924063267615389107117737110366522439629073126205419724909649854190056003210962497510043747357340095960160999391253751979243362526964424576351049202970400511132122919031755340241549611755180498871333421137891675444518180307182173941692532706342047762842794153496949797158459208050244021454258734929702381018605680742503510591061876126181517081587977356330539715865331120972276416353468207318332441623122023121946179106789020822715937832206477241320544958809141221272488454552686555295533275630480281158556698381475661271787700941313541520325738703091093069495320019176000751862225852718245708686532814070649759806006994719856205066143637386059280907881250795203426269602299381788712437138937749893627020113821471717556520276981918867751148261255671569160151261052676739223532365347644411852705470248436042131562876523749889045696130463682538696795527702679163299695684733099663965805741768397416851932411326960952923278961870982083766553686019914857062347288958282813063084994775900378195371914863504526743464222294428594859544587147349897734497979314402658734461317025731599512166736803605923149062879775817931192957587129486371371002998447097100974290367649708085643264064158552590474476998282775100833138728019749450644751408694216112441922498894840474025540706871342299982894634151565135579540854886937583693287924253443460148184254930902504206840524552341719206601864300086438635987099631862217635102819416315085215637544518977099058481790545368281963619427489209121336266167983680830294272251648447307444199058511277005569775719809771995231909395274680316398520325858357200310703986073564653372345265969121730684974083468044581121123939065400363322719494676596680080935745014143963818155106051658123692069972441435959835242919771623849189917549366488073752855815004909166192426252593220739166472506307744271454405512157588223260074090977035061917243470898034143815078604267512144294128264508416297670872106693822442056875947232470867747698429159133940588560314988911130363371553257511520527876560126153015990874253877653386942841554069530315007581137071211473322963394966868170063328954538182913773287223974274793694941188134223168777889896677037711691931774898763243097712638250876862357972551031090636252334786989171246964713754585329141337162929510624360266804344152999660318293274378493326344155806269405096883453370604519615020289292115196545620000606184272140044532929613168132125473052882653228215648328409528757597041947600725467439003049853629094096185354487710655351388065123703159605491984257935657223144353873765605843343390964412382182871584298991122462765488294808432879773951505437280263682782576279463795996717026564476777920860374285415477415935888075377867902550106455677459047587182249475864190504170853238078452471113917684195198665710791668819223565752369259866906710152766064680202331997281246626011761086851338001668260140144168254532217721171509417301257597683817725241650745188837912809972847050657517251807285653939457208725167261346057833947411826651950888930933898561286596426647102793643719593462193734927466703134863031457238617200105149778229015401436228259392938401416557625350058217177246216679118721045860214460408330499392992842601285053602605242540997917693516786379062003476095094634604431602683075524634204171575626972433744211649744007432219343970891806516219087502779313275571586390689151880197410127067197368955946576483777431865605130345851944374261337690286979439100541047895168305630247644908631819179281340214230848524766906328996313562085942530047537733127514730138800391809203727837806161023863925001543983412805674785940419554804039632636061765232815526845961535620887611863078659502768655686364114485803189277830644281866848169664401110703445224905099707789611885847156670321879533344289315522609275416169279773206278978307258261371572824522929237994937474617964320432555405817466264683091400812761378462005030752934235034933299085243100335979690314624557702968175009861276189505221382857114549685451621814153059376533459296282121791139154045852453837370218747634939618657027745750492003149068786293399322283856179951790432944258565117634756879545684322315222363147997993113086257445898148036479982391603095331357455266858141800583090789314402028058700527609116191135614037020290120330953669951962040151547216612286701436241162684342073106836473907536936105502029153071810220127580385646357896958411111844818479063323662540308202226240682465698518065226890500769815681667531711057442152459296519234364650980397236466977446018506006089868335098528562200156322598416301356129782423898246594781490919828391808554193880641805261954691069063185066895686063921585430691898625345708145894997457858811429852647673399662208234034525601029286989393907574515003876950988182823273802556076879146765253846216797948279916410371318509485900358014671239368849259485887963713269271676716674990592474166245828073850404037472759085039371724692804002970055063518143116205827306574058220462535194055185856912893270012062276876766893834184871554614942170716529704615608556051596842673641636374910722356677942138800180604418386120093315859796425835682216527193691038955097451961064838180583317877591948290675154082365008414981769941970177809807516080838435600324860349559728648261882390579219558433786431683118325053644108400611784253490075659710223702880307509761046357020128491063743013272633833105839894836389411697598492060605934037236461351444059027861993202182102022304670297891682909855925566970468696379366569262926296729595920971358790370547916802673453446895211087157697737892529559678688602034011307399955313364527127775422747298689293126655979314435579220754070615682299684684417699966374320346873602544632304813706906040009833923741488758547717881335770169548138077362307642064466673016802459815528994706740970422218825542127842558435302756810243765116258298406123511363332302635181624949731014844744813074552325595541373986151304225681005064671261964754331653049915692722507717212425777133508556016226837375079033279068694955272555206666881709664678528823516082756622765498637468257642079289485652859723534558437234508003336399315829991517268842860626017441650077182213055579411015927865141797565598194763263375638659073610505206913451788857009668354479118320993914940459551155900628576028119075080029618517139914964728230770152374943557235343587115798472297420570880051642292009168621930444771132395102598980194089102738861425528259937043811021598504645437105580216136681614777276358605955101041060988348189201917060959721445187521280501453887105258459962372278829977152641522251550548450907550577470840446367218685323059743753337166201239918154807829513575377304332559902297964389946325750119075309688422834481451201564039654562390351190018199799722426340214233849248483673601220351100726154651442595995446820741977271850423136684575824853527684997260659798909825217645000799275656137921054278343119409308868460099852090432567103594719590447981014181276642449297501450671084006253205152037859474476381080044605664131950143974648268068344925269244363030884912244655986508963914348563665596052650138536303767479226628332484658487642633520555884124381180636035227705892761116935666506665528180296463701403815976815363440525764551557450638562865001112000646049445179460937494337724984935132855981232751032076372632118452713026782856245546045054767400365888795320239702986805865973909462797968919332139943070831104648754939513680722764474590025180394088865473309274640028737420296589072093349046669736753854789714121047879555463459979418152478178029619168123563408000144348600632428094290212255410846426083436238381954640710778906398770146074362079055633188046189674588561496689841202385866548527904913168403192197302839267857130442514322260169611098889565451947432704274482159295148244037320609821665356723082869371265590539973403808015831164729527913333756585774574637463813676345013985267257153990258471481559092729630396560004413937233000660647257542262042607275022152173338977841132264145586615619106439543992543830205953011459118941298005052162519144115227475589349909577875938764414643733522784689798961268044429262270755720860855507098725561187714606081013791998042078103554486231414625893081875840254330130527104544283347985909426779940088220257118109948693449577246088614950783023897605692452757187442414063680922278217281660155864983523819482060349651068072446155675912115610704059263193231719823121662018726203780099055761329481437095048367328761049741299686705094637139384668008942339489512175288378327698738476181265874847796486092445575120266879169508783262788350119736629096323153251728158638642859390008169813736541954560370482788193799329197718213435289299689324537802116163827321894760018031568953065221924054438482745375140616207036031933683007090032317577409179820582803968751762866173682457918008374631296441053001845175707624422649775696934891079563284034555984779811910975150068671178997230412759205730080379683327043580014291058201753650363639421648784586635161471131174673696107053797123713649122499718111682774242331434795536019996904167279863251529823240240735588832504331294377545279794507401823497272120690473553459389513209790185033875931596506522130697947749600878185146370395676106555861336532625257583653734768309943534059273693350041213938060333797432649151248633538381988330773198160533857742887337357230384199233139373615053740330188076602741099602779434619552748867154412390949201484424798189417394878959077919071197214104799319802281463273518846696524932095374862730011745690166951187859869285305441128986903626444196314754887247167098976772639105003184042009948624738273244564927974636496039009314982809177950550602474156828534658217048936716415891602446593396504697249990523238717466797337411139753549262889689082351200677653148390257102945511963343257661512267235730221326215748019206460547283252524118663726075572881028918183533785862355381412954350403646332199364188630062176938025786307936795433421634570668551276157323819362155088990094310004745660061638906808056422812957486910949790659409258641636014619609415838742929086574936327295882708281446205709905051119442463210013138609132380013721986144273577862754858693067556607011949527465813433542625523362223675090968664208472807749679622848878726247765319870918261173693702883614406820185458193852818122640161071078028475943792202192617140533263132804438830866423195531515060082729124300478896956051324229844688189271002857355833608811575451991358431843144992227215609310216943788519788374822130236516845051623318629615151406175766511122396536409709567588210257746331030158850950868752282782277393598417396193668961662381293293148421492500650256385575598974825636889587612037537246366766226843975223068141931777297869864341527568636063146410445622800344128742578404909113607570050614253614963402516671900884328001598953985491117300112490513344908598387336640619787297151907800132335865491657990768749632429613466972567563848719264084176551843187498771683600247103506582506723842833554677792507799850584838600170292341228175225362297373736980589687272837169550283729795193529812779771085004317547700371003587969913832745115172775623290472860935771755945386127776839552788144911811719306327044909514395887441126322753201759362336468366470831499706013112527156185442508983165997347959688320985555614207348314492192054400605192971588633033611498351155035855294931558606220278565749773087260878973789058153831246148793595188821721786296171498516794636620405660889900804831574272600992752969238109152191861646796668615466370599776143586691022425248783334470717979092061203247748008258664758891960174615519381467902281056122097941237344434370789148073735084911335674072428306036609569766538599381890613877593835552486256242891025924175151904376379633359204285070381338227503634301958615267229751757958674255135970360969683087454282384089789214310148247905762569221468153138480627414259003748552687970775834450444970147961708221802804745455357283660698153576775528774346172142895481287881901087999693257819225841982793799172809228522170038271656844208482166040636345505499915149583517821446836038082769817816931865988304609995919668524933950490497840865272638685610096145572468588821345437290834663740331491084783463136551535382632038502947765893498015002594821476729281314060995268651273199725872245346185917917852486872596673038905944291725789818875335548829007201175948869927654201071684123864597972054438670319847599260002652124134396921987382574780605839048712094839431189009795220259371677152811898147119575747537391194058950816021756790333301089008706131287375219050507738133724464410766165659566977177355015462159585514787092840534098625910170850131664481916427148825896880199341075477250951063015011745179938918009168541899260307993880295815211866719089585454892739379143142505875983447791998696846420805971278202538398227528357211486550562553238540994864690484851654582149930512216957269717614204450109547681663153650522412397196306117169994321191968842079656301652392515158921162254644727992423254267604658859614263545093455228554546031176330594746796697479236321038856837011569949281539012366974595717985093047675471628590274004496207179444220733220728593132272410973829785789475325049671981891479626883861250075584688029237448041012488795726910517313291339361093363884101600535270195010368895114079940303658365916246715176459214445311594231118257376204481235191374440712625697965547088873577487142138656225348952534938714713615214484429460543740675390383613347105786630886958134187191219642689687944713569657907668382575788392526118687231523614892224296416940696326400599688176207811552519261098813465889578288858520407010354165468751291819794297002521274044814983086700356979465233510397183416588270236238154535672198888781748165348956495768195990273639116134839920676929367135414361500762472722352144325516745872061557663400808515000570665735125008323636264056793472468754763121302071225820044883347562186336083230311422856390378008583221595461407479681601676290745326673683394281386351463457943687109207237132590163666118554487449468861581334543667262336108702882203893398817260329655085018553806784287622979329258869108827290268427858823746785985200784441547888545529288635391822114832475636183670359746283602610847113829713850952977905717819798334090325441077244616315763150453821388116228299877179793349081662815731309948944074140745064387781014715305024215757529844575208248921731362233092248129886843360436667644235777644174301368656173490803813134301179153185954030688339089164416175418793094391053885034319729663138295946121744666124171773720188902932971790211410073618111968136604456629209702031891213206259421619477832243304741371812230576753773219611954835146667275845214638434577645515834210159352431352665393540212127859754054418294943584657425708291327605101569845415215553879415215603681641215727361022480472540142962852607675140995003265095973117590129539126784822752021271301505380239889852509077615362201428279293844004350143862807250773824535317954088526910201809466822201333481630771346036401157179368951337157716763897083212905233051207728344504508919065312447220836630288084581849884897510576987630342470217908440697362591805243987697589947310268030046040962704316240934112916558716881730889823987214081451556831108080050573335933861253643791898409233355942907611330830402989081151280292399547352281728120424821297360442321207737239392946274702410729420279752982036712568201173786434765897422259584571255021138974233622225663978989038257637999561704465945437971515053358369971118588512789404911813847985397598265632833411175107859465407664990713829635730682112508809331858472289633396096266368872687047633209657910076713165094188509820105140597295231898300530227661090849479757900172071645335059931350424361944494447868455787202075353474199511475746467652043472805774718636355988287047830806980876757056370394766280797692952140321181157005895542587676089778764143284503887586529252361947610312772357576746969973635596575716000820729489868989284132281044298163715576367683626255140028866547817665434412891231869400329104991815103083737740718824982441365676135783799664766598752635719166460174789744147348716434820865986047795728213065810962422997569159885776837161380869163976435281623535850987757708240094394432057669368449115730862112699825617582706145673720431676107014964958084076758464130748542598551743026354845555194559408126943856847035915063797066575406277443966904456826974337236958977615942393215693184828751543192882557472272065919501272798033948950889813825642670978446071894133965453096681962024606269897457842199311649336781113868251222030550315349548300264807860904287644336861624752430225546146561059583669920549388435086838167569061348772118481001504869262228750074692161780843453919235042496802662970195200358370266488547218301903672839833418404424634776243152327202667651363842423717478812507991559477844005965225215551053995204910901447466346806917733278624562164593469626079128550872970127018827254754053728548466630176598228410818955791643268272117012157683621552252916052721989694129815610921211646791217079740269464315326802741104654358882613556486810764000782091711509615611853351085536852909237450112540425795822640524831156211351262501514032613459970979266934817983468325023040589051710094182069182822060002926537489772027110996076220323393596673623786196896846283388123441429790709999142900034047182142420258197561232582925933676853122577920253920448585457535372612320107652829363300154388105468060006468055658433534906411979835344930957127192781679807834896854249090073627796950785080790925147493187387467040268124670105195802627829310869199739849269235321777251825913609311102246764721423358364289876897786548286829706129214627147926887319371171607128128517625002021792937060409999136191877618299214185172681357117372592556039302633586324293826647676248905453131975514597829072143558983994672435138762324185924346720680205294260245622527567647439940271081304800511026307402894902566349207226333978577729972592306026174531975243685012219744498446596771903024003183600422062006264317018812720979620774642675128478396433189773450073926045370971461835035979585927556696645068427643096603573193565775008772159792250385066033991645229160276598714220723910160375743923473809303240787781863073703419777338781432294951415219870488026291642600205932169144990989170320462104137848703416557193602209354339896999627956633384170493172192172528254546417252853811088815432935137133828071758016131825994470913822784117770091990366351090316407116946282849736597890144207023763402364463627857132366046988002543164502696381878548553006991980078231144198870221295567961610588500321374785656407577849103329649550688552602379498115916504964174716031708560156309401364377619645766719039720838373651723124127058919516028215795827400373253110305941012241707135618257758193075657956878150061896788609079617025112492027118874178435242320725835034468264318233627785845701892843717217575288804134418219836916654062949483772851099665329278502098130149220224245366856089666345213195882131739823895986984674283255954235296648614620323574021037359786993794582884619771559453385611511863053698561782289970734927596048844749932066180923284488831675738244410036169251165673103014397473380112568126135390200001679127318618646972679517306290304230121280588295682957522375752531095037620753800609455194346681774939594401392436140571714921812592340705293411095845738215821869588042547982635909428315883611196656524305329260943075966322404383378040775390644228061571317487446858388872611375745553030461593828836508287609200440196002007157419392828567246693502693857466665346692674399010783415201093694634868567300842267313608850520693730505907422208479310851704830205454643535062348854465663393766090049332874180159513665377053527221689386096589102521288757409840197745126205661230110829224071269720422087475977554241974583206803470112846931227539958877136102733490469141680509693241506561634055813891123088225013119020368198111694150338400539017081162271569895692101996211008039447173185595233366116306126457730689010050585943692975869855636598117647101606759612099637505643103006065265199384062315043974480760971147135131919837727377323133236245969765245587490695333151212404617312335993285474488563768172710651496181478051461906756398048815255007655236914915767741853796474716960197139820197779316797157033855911068569429898492144375999067589525782613582479890768502256031183958045802545285673854930613791030714164358444813530972441923167798252389799938640522084318610525727570675934382971116769781183230379472806532010022194944419563734810359767508033237340561441031190507229905368955434411196056410541936484058083717493435608102519334251936737349783425614900171302999076029556837751842658692599578096246746049507376551628431686884091978162222919906291439460200016264049687585303716223552671892469480480705733137286427276176754495757627734858082876278738854745879993698170103652220314274951853141655770899698918586761213133371387091492702658952428759513131669050824010159040682127663170683482528940840178807620772284997795899149389290895916701343362760120950081687877734975050021974421688302737266109745379531220818086463023912321644678871933849944182198580999647741631037829284866045654120169523897756795296618351110844298672235803368916494373174538757732517672629788104263790736768459675208560522277630884240607959777507563913007907429910435547914657340010467472049594087495685655320323089278686243306837273591124170019868685146817813142575502379979653026929807759994285778054561484149363537206023908396940007610569260492814376433660722526661576252577383297536317558767584159384359030504225267883015789056822506807046687059461853333327588866991260642012287205191492536983830536182532445925923941439690551435256438993172177232240816676373685809100251410457439945101374664868505483838241368343894267095353888974580674697939287652841552184575669094521353930912835417867434325900038308649107519366894392943104457281216735113516740290186082813338338671692995409715652932506090543932797559113376493004765260140864481287869726876901273399436650283734181652734603727698808787852762336641977851406734109489814923589741920896619087811842023176860792068743896115070615226784708720313694985001410179551033873851405184915545787081254079260112259426648724082673877992759246981634787956878905657767045612893989711887511191411480625135979426639183445931081594208013016121974513070047354526798916986414550276373199441883371134644978861361292376739557647879128577561980779066061823401350483156515040355068321925506795678756522842298013233941691204055071425218395711363432216539313465515305193946773657049988963786696648470665556065419289042901607491874738997153325046650100322542067058507382899256530987148573668054262410174628865236462680638209689123050359898500474497591194752344172704252626392047816904295425861990255739042194244589924950422327031260815951551073324584609238189167143763288967737414000017106211818609201685402140865917824833797550549682723705514207877991916513413432121356204371714710705475274541222982843042502977791882276885805420273586809517046381635130448896753284980875727912015820296146864700026656132565758272377873234098694182112265226204972614538737761586387286647787795009631640902546770190452677226880406441960124501408960265046221168141435695695844276614508781338583594954769667166134712947828717698520101985542893282055777572769845043307985148380287891998172415581011499152219559890310431244233899749141968734293071510537230572412939175842679211125009760064381181656536013100972018600037855643097232977971446240084720704643890681544952847986716012112813745405972848440274407363253202825306601663625748452318950835833285944923950849123892887540154077313464980996279344821205441230141976258127280680244432408633323789023693009068416049022582248791423200092598574308868981833624608240309476182759412704899656164471364075786252160205352548584565529671431378055819013778091233670299653535007295237547656029439238104241649587834292475683468603959603113089683962290413694905219444585551049800204432036279498401236954831039323113626577244448083009450624912126435062862426149354294462191831549016836984313459051242648548083523005905937735891025179311729353075006655006642462336881972204034477783802006355224173250120122304787725259448314403814068927062547268220724460359498784155935200232089452045497498946248703749528724109065969093217766505646426823215994591510962872562237208260009640439679902140786204390862590549669273533918005646501375462390234330186055715495999049147103964495665157246604056170348163137386092458002867959757661161297047123107291701391347051507713341791866608654195781716732555403590433937180317635934693955908022155266014377721676570740128266440437864321993362475022052654989920227441246207858113107187989550296145782932258833981777320289641412684825420106563438564242380860579295329865549993447843851143305640099293083811004052196956708006596578172836181790283355265093943322922007153874652076647957527676152017780920907839513557924443878772217496353665639686961249426352718016862540220175374260395518164038930516071297238414653407573950599507438894465555491197847262508687004543459404060089856467303894462121060542141679382387461517017098224729638044412985963667789243741039744043131724598948229947702273552116617401422815307499186586617882833795110084042000538135464872603875683693649356849042166050953788445003464371804223285265178066374439989600429575074605773665866849361445908198892434356683368446554036018715986324211922662730002289264567694890279306793609489089703895786449548607048012981868055478199342792411064562711195920633168263288717957792373063079410600750739391051623528936676717805230900280097776794859006324766859018304493683831151412624708929628360656574211736589127849514946916823452741100784387868984184446047206037811133151422844781277040552691043915598928629867514191456185659723074877419705132399841918426317558800235062468471762464525994276499365651309038354560030144993257696389477691611179516214335826717679604650000407731156279759105855493662853201192296471124123111552750365133811168734823195455576163165866238222755491947388687716921544534043963432567172144523821544486380329426077438174571900381620807696104587498276238052853479647051151450564434663158197094774567914331768979045364249204207246333500089851383537260944095868960709070956558727038101259569798489827731453796048164031247770278746704400271834545188631498566294819862321703716707646556221827245986086682019557306454866692749530394083625178396844603808997533313055987705185882424304976935558769175078187892407854912708157432560708090501540529739801384948034712891311382203168004896248214247125775670288778864773804067099031624641570386025853981138119653786350825411200162173740202356381231043590660349182430991135531957665527026426808895859234318057758626442248902654489882432804074802652143407779231490264907094755809466629615733522851493761426394546755453125785962427553394211771296710564958577186558892004754194517889543236086535888958705421103662320581086700198557175899175255774548896990519928683120940885134254644034106908301181311916843522649796369978523312842842126619588502334856471995235012687220013317295791658513288171337047817207343181409746955183075140826764685879510556407126819653507695267906222726702988681465530794448809526018086323069138433950177193835865878310086173917915611055896925772626264224172221695321587297129356707820749179017052423946100122828272186843277026598556080449636269593931542339637603482769393854039519323909207323452935416680766038451584533119722512886343014571820755553267063054320053263868688095178013426650659511165610289368884876586803119288772135662002310304635567569402910596290798386845637469589918183805236943140962637534937909008499106676515474865371110298775963032816252282526159629371623282701469298316967682980756912085270526683066215245739138928649324986117236904889928392317065924187212385440995554638833684474939783446671459865694022963704769293308524898885345758147224690658643710505496533309662271968698920248070561021039641456249502900487673123341599156138222831503770330835099859376027492538341721127402232780964677080931572341844998673422803354070600939559415003494368921054817310283820862724752930586069982610879225038947991978764604193383425605453195093112629934051435216535827907856524453964432495295682465812181591584291106154041025186486117877788096663245397056949961402144550088458607616764997056564821286022155835564828810278745427288202909918440496712758594560837169546028117497964021452233829344728351171347373617263183503680745305791036329326181451229617087459542270299577818730017422727026886942416566578279288397710603506350919411176593108030332198002175586427633151967018441081753786165150057855978147154575033684588155612615644719137009936743314318608388663306752043654664968567841112912933883567418387976817103160536405753553713339999265583539770043544821212498126415193208519679729974720416265210886344303367621203025503778510605143534732523340072981019928389191596864614774697338825638992715833316260240477907944328584449241528886314587055629103036834313100153754973275820336569859008186463799927912174693632414346941420913788278207490157043392465083220732873088472526019356528141611965691209370870186649186814802060807196659426405037042496560868024520084985320381293523271589894718429978399138456307908086582587749625265867180448845478693800939709708104059158313625507826069196434859826575350664048735806162070646704136772523626562018379167577270578622907789975908450657919968484977358799645290639175111116197652218046837592033990824294904402546291952829177284289571674911611170059728436050715862928494776501773607676438370555830546435323542271116263266004398454899423309034612124311292987028017112403569946147794437086344462428289875800122560537371173493030426288346920846576939789129230031433992804088950122983280643678383128760756135818395872493841442663255625986650248217660408961996848327234783998027321337630954694995386039026654788094543334537858797158930171713559547334073321809817964658759061941827666801381019556379854546081445632660461766064870485869864339953387582550452414482276152768898686986778352955131811225337041560950439340522970403745358175657572034935801960787562443128976412350153633401270679155812152074522801304019013113994649936691181218389474533596280212230951773758585546954373405852042877541625232154726091046535386449911374596160298742041113822238123647574505528622516792243223898958988686884034557064011428315326931223546923567217965213256430629629578182237529427869452027709642569770815124521748167839275354855113406992390260365281619112090055523021956613306764077133729520597392168206744340268739846670198389093703364136445245454830085350318046738460831201642263599371093418759070076677000124482014802030683435553459768872683684447010997625327883946247425675920743720227593811896537504398909509344909215561240279735838028222091970528918833780272341370897662278724741996706712743276539469036893678526573789901673955838865960162729971036993253133182771069321829613090618634212286128341145853698090562365882949739644903216000558121136693011982844408194011646140461258411078843722454847307782266973305032652143157843033145884279959263226646978024286608642525877850725474904793350964623512994580243975889538789535716228978876376140945321487736680383472645256324251486388509621065604769246893315313810016741790140543996533056343945544336256850851803752855158162426106679053709418456958624986984032766053200455848677671488046480522744268215635117161941734209910555554332907778884434565235566227476831557820111407440427379467127767837448343223193394276891177296114158132291621156650823262720678832181195650145902169633144151647653126757336310987833900669183598881317450554391562984697503947544723080139771780243934272745493242527451982687914204197724422269976628886922685926125780741542326857278378728676313991111754961219791129432463876478793654104875580252684275739113711201858772670845985736095787863129725151178877954544909664414728806103882310414030816173941235860031273745163275651464059342852543636218231107578225292364377246697148973327636802575501791048650746756487862157751381366533225073401579686714217309981229767320295743953678159391663497630848629084137852729777699020884152706651124391293817851377430324638645228463232810522607335452648220731430233631265142863339008849169190784889508215456366388489075915334478622467126631311797806075580809675302811799876871839204682630080183776160623651478856496633998171084940550099524281772441777417946514667897267910251335137857600986540797776891422581213602063766920972677736999248979716142732458542944547785372098118981007320518459588019041385414555572523795515275297499462716129508150096134606569248559244367811171690253330305397540663304436552430543572704248418110952922990787701492403598644693388907096812726051175625615347451484002412994779885524879087853320497769351234421951873306727851736508082095431868559470286766431744025498982787861004458113500691879635031141137422212392444549390786803124691596448334762189913565496212761572433072929562368871964951729209865606084502742975788172166689039515528421651194480064458221788316155621109977872590626245089012671815496868597221391756511073840940580819940397118156782596830235420112186015119287222507697056214691035479046341390035997790728434300499222045786946509693430623369865958708895637969465580311859362313442960480761325720497364760004696117488730967817161632963786568589045701463373571610019373352705687956724731981192775999576707945850129348391822173195709295739892905879610308438121866208052860439259834285971616958008518764460971216382966309736961343519620016551626054814424661243377778878165807817609342890857117086536625337786875053094477710446324793234516027443857845029837260284486074633496940697139788675045267973768464779927099988703874729289208597686394362004858264356003576971165624141473118578193433112344671493473574153494068863202461194997777529434862573727202507891479695037396430713137666917177323178566241426611442582728925386358014626875082896868813609526916492273632668947838635912007221973047781968263354221907680972037862937848458781400163718815064863204511423268387714216696768828794396183199068300964154143068322365966580650141742997147637550144508881383498778551358323321861953828500769640114391572688286021963484289822122809023536481519906154428540041913346279867642546549082532103428935690550017514789281055288236778055522058345624201135283195130662133716106164453888137523074029872288380319099817473791424993291293695113571479955390173183220346120340639785064670659094870192641227060799698572559739879620035711055894901599670089852503066231825710080493463776564260734282130191169781508583667611023995338035317389817435381896739919687792594925666381355740305480733345633637991577596393638289588202496089561656593216359979135993003967376531588085273161594546067950854050575115290448251869870038217477582443122320130928713029676955187315058765777259575358935255145744404730513220760929806210870740220525525124816953977115701524132336755496063704481808896981421405737056594930638880652047603838987562136262594703255212166970241094468165814635577551559503917510139034859220636831987087301348919906032837691680605831351094926145837737510912036098009915320364538145773287031996690698054941510307424171358193206098948379974097497234981036924171894996131936104203791879337274078786307342627418810570914442921594611683516032510313472774049392129930106649495133774343601479856102361270735147567473668161959458602107822138913676400568490375463144686742879305899149199066767524748561506406358551536313188111768116415602065836545546989569952012896578559602909872738793794380749235300872616611575216733063141672415222139660679613530579434156912333820160458374583158368798917482333315851820409526717973009320289848549627908373670528451871602190631319297708700705140087903248942759472459558124292152878415954655770072029476591694810417979267484250169110625278593113707185380027892209866587627204916813378989757228233898898190053067737579726268360251262078529258750515189377215917293378299705046608478258694980784526268526497473950620953375909608665265723774687084815322825815074476943084383058683549191319230324579648595821337259954624012370607540671611632538587507191321271398871882707495221419932596956099780525449163656462704475520584759094109485764349021013260888741416240589164702067194639715311890322926588279105120800996073888808570287276794311167354382246500371316390966287119929419302584888566970124252311179758257530572991261938317688436177900271911526130449883664821800995583929737021799092331902933687827086021663632151841817908862592219561623753325680414141252543816544423606045453243258181236376227722125764866257500160168590217534568376465828810433208794703802151982697266512346222224256589343910937519213756826994349374829287205621999130172481246995832738625721297837041061512381458542386019355410863213458602273969246045994556548283570528273720198430197201441591939108766096274196018458626622122950929724665496379903897617642592782862423820564373177076561219804987865060662794794233422343065000572401609367032624856243535855308863267889782174334510050904279809418209160540631122774391251768353230651400733869780517236481676372766814976353673684349928833793579298144010192469569868357030496810094698727729482523292015510992863142599276608005228376294701769510705908605482271507410431097007381883151257173298145398481127592368918840586881984450474721115100983286517056644793627107627865718236279435573718677766658659697532095246781419591615845948036563909455390945652303287311961300008162401408181213282364826225399355678317579406124996521693019822684737610471172978468058252606497071715994867792145707862365569926382711687268039381167006265314158025208129854828444473488354890699712020486105181999215976593241596727617171717123821585559018147034696059980520579197135683632822667731554637398067931659799666967106164959200919200589659555008381594984129574243601263369837423861133128738077256658354286834175430785462411826109458338094071512285373787476703445540198470021763261521341995034500669450148440878797836856635346805777438221720741792548068580854733901329124874709628505911808765529238881209652830496456226631523446080874510181375490177532076866820494319492256546501966510809010980733649450416625498826831401699663552932898889276861422880377620129356153488351538708632443232231853497305650116888216030640969119735232272581219877202669885661438526863465229031562795880389765131589104519631512971070329862386153227886417410241549908325647488228931170904891966568632991836862742114085160260009710988572624888620556534783500382298816252580043273375189491416208490324102368221456511356887437252072446885506487479493862173623207124316050891415582631275302397377618751268808865238838866895488267899375456572073767223698233160460353045560443358284569943203691126835241081997658466134101460093381753825546685366543046415128355448058113917634421398908823616958063380205294652596365928743345650733730234832980840558903913607038706544643183581304605133059850676663610866554456307607976176852709704839759719443699053460351732369095475431927264602640752518728602427943520702727496833500530150865541944735382265628858722874049412668078113161727172645480716920770523193492004412326443129737429968929836471997680242659094298853934409249679981040306993831580969968380105832078775034030602680527184213193080000779978809438511276286861952371616101187104216610098496388607341715226359390365790428878099745332528423366613783693428201036048894750530587554236163967766795493641643425483265272008452896969218267819089153907576714852334051811507367507761756202073145938274090060538825925459530816614796152666324000134109034929755324227886514363284287642458269023402071541952595768920880106997023072419711055136888647132104767611187197085198586321437530956367598423602711823591105463484079523943632215842785627359777974383156540383896170905539233856368928057781262417708297248933757346941203400434853343665901263838304566371833102632688325100995875484000706756190107093165714223900335491010775768347610670680362658146747464207209840494562659319984984155002965462802670894832266838090655790104362332536900113365879815027729469565489510604519311168891925120477366998081100603465721590745247109790426940928627140646147021199605333883832767965994133640164977338084870485388613919017779179727853186045027077941004318808456277172154017459332505178163330191249271579904773140655446275960927579729651402312224683787212784405741301305458160189881788559353789988421368326582345741694914022745785199852670980103967840455383092694896711941085748929421829858985757867807566713054679462936200221967585214489339321613635116354456476532576750475517140783937659047301721161837086111839672408267965504408282917208056505773475217190438704721954059010924548962199895552762332071928792238010090459719427551486328256392336066859397066159104808074831025733920291224132931359278422154675862354196650339306996801776201358884733499609726388701494847632828952248971993631032095290843785301153066510138945898491288778858767562869083500524009204809051707394664876667540007032585201821811875305981881063826593625337166563846886921138021139055608890483504977658021617248392116550357865867439492355461631339036500103050481868938100988374435670686981078847850754354548524154818117012459326770424565022229165843875896922163667265694277184395771703460619789186058868501228196083024612612681874943834249730468505058700950907439803995353634495565442908330481253879007091208728305630908170641375383444942082011000646765419113397883308950252777687202997432491554420342296345627913303297866842751760381008406854320598941696878379987505876367235111633605618445996575628855341691704545135616265082009387626922542846885794464261712096130792044172880105987255205749433429359173108282002828188611415640248669123296191245741780184282825538886449496807646904344700921392824665228350801122956621092230194780023432548173369434337837036270846760955161335958838626820126564694561225496559212845997972800085470290476851986841556183982703106743554154493093470540100252392459966357897592994051913090410621512537678890694080870856361922525703676992635927959341666244360551624771517308165042337763086203828355678628252556052705203147457057087415589900636192767089158968941500800034536628374914827546312039434253450505465347649824982181558033782235045084829022112168221514799204630948367600422637836963022660867924403610360056355881439376613849082123253391642193358699529178159712265952384139019603045951364801156803743244957826904906675181077989583300637932387210689527102338949628969332488047518948224081553787660120973439612595420479193192806269226239815161477955846567233531007961492596684749518736496112609396174417121653423748145035716200795466616806376338142828846220815175022338292463643427681808154302057881150803735797628213507639455309373644947192291779191836269277061719909459551128302634419924683122311891321943716780891706618384898647649598835548724187988846523196227410484549854202054706249012626631644424083160428527882557864437241765303710904982180714042476924792958858467167169771574102229406852054808319561840321415086946827079733732438499312300103187043930592343187313574773946610951939825642930315545297517147629462508124285979726792828918982864179643009066670396677221566643646358940637894549117856068578456508999740618306344942113880292763371076327563373019434878069909160501420184454160934538524656876590212601252650345104572671103271592477114256642241964714957229348757898480200596826752091737360350592880089891485823612745912986736900856378672808215874968826799866147603370120220733950689957779121526513037837194783777345988883037256750070197482368506069867809946565698264608047260264703629415140851598283233113666221291400545517996798601103771822789874486315498519838856729710108521124015414770176858798124873237702125776712820704834963326774752119489016468019493217870087152096284531651439471217833475494700468784142466637556213992111980935339113019786981243702824939009782939586110340708880014066193103722629007781960857870649186147022027947817311927067983781217758571206467897919798471857778491948619430824797229274538202890355971179048601463162338697305310586672461357386575652559565812858415420226586986126759181890154555167406270192050007841960760321533709161882640915225198124898288112812293990778561188096940448941179507276806862331280879758770803778315058207592307226167960006576159291943871750847553110470868360935750649757493279304830215039590432652152556045881929084803347763915180554818228526351123110673967654033686327928172621681914752725026588226956505165896267285502814217252473831112030746184592126741884891070026301281331607183086122050847235363902888774731183405766247764250953791876141518328602772141437879871452793928483851244077757759162274042477160688251064283694199811746016497264809644383656530870759644612943916329809573346136373599262481924100221792962459767886218215351790120504141643077619884911512426907263156359937678223556537525265973827284433624874351387296977370560531452205047738140611348708281752903490138553865291538053683853841662002905551876433146533362970143957055306901477150006671078175056977453858889859193889307035221949492986692085146505368918519989314072043012635944886089382178470336547702501487165585111354899543405471153173687473255684066564743774016832060569567379518654638827232379113586731225297156889172889829974424546089891517937376931367062977597422548179835925115995867521239113489710062605697772174871324136679191790578707609965874274137221154884957698288047052694154508641645156250750887769666445150562654378394863510201028453624862801059570046856531615767003561581282886032730407656576571164082949296644015129377966572445752962927707054762906389847746317309818675550667904855791879579204426689903549894972800156016045879776334854690217086985697018234290746079998459253608363106609223565730343057186711381845798563283584405227511258102738669237902827917768405636856526705495322647859780679482964473124633010455417307382247950475886744351264399850723039394296791199032399642433956274652465247522729878085877588695759635175238938910235426678765558966829857403991396274765491931278281072226732876100895118317452196216729287861819342878923696888201716496409744486969763940875290226638595850748496597246802420463251664040991125215041003515417724832536317752256476847341299900429612030916677108536721543248643965261427338873459310299182843453908772025858011637935584631374511549445460182683351791326007029518443716172213634767635175944817335799112281702255628553861130962806147728773829528091994197526644031840496449536198542950163521477419172170578646863189594091903579078837141412472525515738678478526572963055544346203097314019679887416009000158633433304031883636477162366196438733236997097683851141750143591167278756810806711610154941903115457960932345277994238512992831718462708506518128660097750699898672360145506704120632215294710054706952985604569241031460733256282090445816087888236204132597162667057597332899469128629367314801980147716114945539988882470077072314184901012424898339949654454273449887077001404068925104467951198876835129499131795897428310094770680390510406718501227431756407878516486111720371973395919932514274960236163371993702305819784929500923440467368903685924076970232869211211838833697238240150473109495064574684550955505781602901077394527562840534842717638388449415820051044181726031649276453952091496300670689547485933908509410385100658432491646236327216605322808942637794128727941250423987544634944250592582163178802013396392459293680602859817230732187997852447005740150120745170538896234682196168310655734734824407371924402695323642058180274343918217078384983346852710032502569847664228442294272092811580473507088804027312958809032646160833075353931471842994526455260334871426158504849635313090636670328256925062056828431243362395178335462329181565092304201241072751124212228606085076468328976143173708023899919751962477054946963333974328844706785764003987842569029616741082151609333006788234227006567956731846387133893243381237709102400045130276009139982257866781853902006475068018902621711992714319717652307548268234708381332991329492153485899745400983477843138272000951852288720218055637556036740177958662649610762225526624534166239399983166634705147119493923587318045186421488647242482024772789175578023994329559900579620718741848086961296788065564641189165875288309850890505248671040962277857044685571177494057262593881162476882887924109667825196069710562175632225711778746651896014080817510574534391287059110796300281690200409732128215227513366646404625291630148251739859436241367796894077057723499667986606775843067559600066522968421568990285151739966213359668297137554353694698047380560733239903741151956927208311602175107417233009793987405910073174257936766551421314157271918243652110561209877361548685668970938722243856055602254694069184985239087989565989343121790010030109753583317824864683467289466232950199632630860820313716092468602002702833746221244123334471832889568636584753902205334063109437613035661561821088676283053852947073563355157761878713798768084570894863449145803203812719021917033653419551158343953607965916148322242823333528233810759865882965503115597895054599795923487917754975695961754414801301619591774903156263657059548732626467740060977124569749324207287222057459424729629859830530925371593436447594794090885949906580312340171639672075990265553698807570865320037006395594351795914360199348793780766173502799008208751071873757734741002787332744452295986884168773260635775177806001979114614429691173579732602721351998082354853267483441715710632612973595807245797300550181962704654893473234297162182912093701713925403423582228987911101065680477252781041499872700833211849357696397050156166280584920568305820091174715701743554150886182461823512235313695148556226869058751536053800921866326924762839236170600088022570572210051267484328376826218302807307058565915887628848520225305774748158868089653792452007858560049695430850808430538285989250657443985512933723091673644776048297792347623562637773310589459785230659401623604230510649554898571420251853452802109734712198652744801181182070465874568663471081844079220102972642678932914395834137951638852935052250240671848821749874637793595086297352894700763770885948671740670118795588787579672011683686488735485102347729179533923013584801271664101314355944335142325809034245066911522152271446960611036784397786545520795695644208935683375324593580960899237061057019657396872397671674477908691809245997554807698341008307534712449320460632650819664853676303290779219409500816373218363571673868922732082828619843358812933442850607140309967551252125192051919605756023936648129924819702052334690704580854131807099149579527421044469238050677047728504645509827416402276571244279982123955627560588304556998642249916136043130742811339088601480151785481332931964964891900396566726476599338347973711041034945461622715960242361906980012584157699263035545479163816960238310381495736262410996808710892209673970714794219946236582385062607026707639246792486991777772536342602811804167374113480827373320180347910245691231231776018193942053859722579014278833310179523600809851108277683837013073818989412888676561253237921176891823273759813901610270979306155877201453194104340451727068544672145361654654787308738726112769455723595191815765064997563054550676792935647691557946428000580942772666898240518655543090732677801610651221602479251718343150202598687195465162339052425709091787924692153959378124303483951629435939448634285544853751987004245398463219770198636437727341032731428254407020717970087215572567089102394732478671049202295549042828379376665440544309093885854779677858305140504970241618273735578449746552269228657063308916859863035096416311926850744085957946909334867855905247494185456041003529397217721934212442750295681969620662158501596267963275594474452232085555672507812972989723262073183027304966927000096019811582999254322007852167911483803131148457544972289005597728225324058699758097343287423529555792687314155558773126230796586820391082889031521541757598627072301159923724325912452180912085087465933620049541226505049091265013333878311497602756810083463994188940974393929582683196356802172084096289914918699990320049002354503171375173719991408792954324575803800392781196363071498890409421451529109809929537410279298385147990015072301027955919487333619899830611452646440269173716275000355460463094170083710575442453805030101904354422840107341368040449016172731745026233219220031492348095795315113480673255640917023059304640569381128922852025097407442224444545137399714794592337802807825935390141327618976777280249022024078996771027348883303932947602315957938416281331188142988670525787319007909430296296313251525394996227701449671207849957157722125652315951916489377244539945847891206513521182102226081990523993230364037451990536003078750942692715079326188638421413975002979298679552999921793228499332684842679455299965307442970960364796911603274835496679809080644332352068835460904120099390716708477193461272592286539409978933747490719577474166197724374576391065287947236189609455269152010734967634086877693499452366930639769082903451386933968862229117997380134681775320145848359135572296385680928694782889243186929401921735221952776127541364223259723835384356144346824259238774104793385661514676834010061229869025282851359282790206094345433172717840915517276032818604725583444800594789458844376325192313821955636335462716618527856005546699203127262136732869032390675249290521898979815818338000593023211525307499446767817793221862307221846359656488249602016192581542413198624881052029748843007972063423428380554249048619079901285913398990129473509060319525682179328048239842832151767733998701411286916687812056209042059402712363641392068579428837353638452030549625790387966213979744127940144856104324846620852160625911427969296496502308997743636038577729658298370205826824584292297143669519406542173626137229668725722502970151761822253041822926918273598040422237647168642367316852575747327058316666387913359744587819419165469904513114345327284054756494904145644882290538853774364988184439572853922567141504808480630482573666657617680915906288177580572016104597934427836611925635982779552934581400985790863957901769964026607984687393982689831011551590735297368478371433269573022429642394220995530893576909245077445854598756968533866484610772668855751865188532922886262054606649778510734590477609721860586256435251524820868055577661388611130931591842864512008531130788613940294364590356353919338725602214594161811607198627390035524587437728719814584437015873086581459322041499918299205144563166417197257428701683286994573034485014402278918932280378846408949447356457861090993281410144975594985903284092706273270670235252915643247095821965654885578154771256938233844894567426683701209838913141695531872551536460502386559142484319700593208514015489230174989974281754275155983733118219130911058037984713001697628113099034764398974760606736519459074982592926390168364286647422282004197816228024323367408062513654971890696261131199572698615365926927930308052605467488252784773443829881831143209983045340361708380303935746083438456979243506575618292507036168591725160930014977313624466904269988739729739460656402933207944113672537194067206324897480466450580967900186069615188489348645283970711785752604217938616286448392697894763180206455532622670494248723328722301735742668335306744333347036398809039870936675004441422118954387815256863076949600897985998010852661014816045215933442544694851578153238854338366597530340277610017236670107809264183506104271688418012427744186375156084873225402834108574691315319005392104496395654706997847686632450173635649367198499808454403992496270803271136637385185822511763051933032658052955753083001407244692002598361256863363751798361063599569955874753503480717112433967788143561700623902811237403810255296349580311323674136505275988026640273473629802542430559787585340178598099417324858308576639696269889132016721615892627477049046955910503797736406010996781112067063077207622582735508963250264847986461114469643858293915397448703428062778040815586542551284640581769029771099422242764151190272647188269823443391892102746432145119654321677536940429122952418158901421946410490365035386904276088641772569321083355788417963458216773124608613044508821990832361654814999382851950752915896536568771916903574226740901538293189478304742445822230024847345801161341815087732048749173676121169537299071463087483447038113417576612667758193354127541017524335399261232678036865619816424194869667222465841845233992486297552637789964181230140723373785866131829203257720688579976404781329576601480429896228383273926883854179242913450795030528115237196639464271268946204322739386210796936874775056122790716281215193733168684712688648093042433825257449215411263086889468593173163393259972249167274309518404162415331769497727040176135805816342970449530451044663379668264593270458571813191637390145391270404537314629018363557668377775975717296574986089784428972407224419384116636605497932145562407108739875182377219415781888520849835886443059019870049443179609037143337038904120376979004932353331982007058952574054314328139153712752320262094180249500065245500302277933972357721477195328482709606525845807599308681624746180080708219304051369149816024387514002570317279660551476049664278203550004386433824805680213104221225255209307082720241217893419735423181581677816196370057111652043329767363073036064475734043274919959620130158780063145728040035154662269574793307439293716023540869729612051122849944472781153450888169013546663717322101961963643663778183637997875161515767516737980861004064178144532406690575724446404494519552692228126125623630381697071896890694078655767540626535255409338695981900115130423001396296362892956614947435406023491736539020957221484300798548656768413915846172569249362761949929789753525199128458270845801444654976081441094302995328969919083218873394796303898070015561987189334225057193788526451923703457869532524101025845667412623836309493626958543926039927657243575229115424831913173782613386746553174290464408034935864018898476744752734902037120590316136187647782172909363663052466756809200378465534310024942232241080439417393611162092978471613626889817296813985862480774344114557604189456824942121169461308254594574305505063368168684773018332055851119173288222323249111840812069507407471039078662881331415058002731488906936886101381658991031740861572527824326189784811791909059106133206427141067489346632769811870524099834867048455795155765301002001328116467087871981318160166528839863197039202805100939858550231256713224354563954037774790046850599947940424963457821981432684978928125489233849360557978909108253485396070999380822688341474614705775690226552256058705021611332227600274137863333037769189087547124062077938717922634212849661884192007672480023601498570525688245320406489309123746369616446114152301393198218880768338319569118465314915986725691712127780212858641517716805554313136990083274070352486797877510832784400279547505256328744935986630759305206728943513108066389992071640613561985485357222837786716069491939568159179249133270589004216658227800041402821407192836747578758216814042280260098378966306603197375958651656699109355507330299593871425409108176183859439389890786099672743807403225677351742884181158582963132681704160976861388993549152531329076679963106181161101073181081306415200081538087543140302507057545340442916715603828256649588745116920235223769652644062049918238694591913711257386099783314535092038729690554041408339485244176529018518739301290409058826200131333284514392740594181295358012157076412147373097869911064604091148677746295094685925339906908786625630227031307696858242978462370241598368003631909234375930661104240474539607070258814583082982275934802793951704515049306565537536417854519752465090424859561638691161302384423126342106190321074284720162938826296892241030698184699878401329037565315146722786787448675792502027289360114578734940477018452387288819377046791712236722569215758213694766766714764926696412927825980204320401377704568248030605592289329074992697607899012651541766161718861674156272991247453570839846266088107902064845798358771791916193903369145249065909976568088832314947102979966503272854608112534124700474337642945762348447854614481825882605832526771320681761248101812681536348278534658400842151483512106722099553544724204129828189875811888262680211951318440036656646421390521959233661997319289550283383213207708187592216024779767057482199433754901306078727222259082625091841768574100965810040191119882267290137740115140941403777762864832750584666065701862828794406405781360853449271870394919706660392835965453854248183297802716911091346409205972643381935888441134330255922784914261626361054519505933695211800892090205667908659052550972639412884394834004130543949492624686819331104695168204658599452424736497286379448166232276721884060782620558681278160606799916847226544239266536187772663625003520657717921118877172928594728850666178108323125604949359892621412542090254898655495395241303731366446765501222209322154180504055552325489731669938283562906480988754234344544165897311823292296600891448293146352347988800819215125155377197109620418344534643851748574961004517973822167681407282555258498100008769076209173983704786556529984400211127306187871152441339045164007908709717594161872386559319604236192577915919653334191936410516089012725873817995862315119236309357468669544191245667780890393843604616114386234526148376870704028760009849606837378174710979364042366179891908859602513447431627711676906740026344932666664725649793729756459475527921536235249601738518782309724214969935389358936535383380683757870713070952897545049517319791444887818871037206666689783269703784055824826769258724669522850824556715386914931065329224717064239479426156453495333310563904481064892615405648192761309024034512049913959011017678158745959881471340166659624997835246846887993915334744588957977197944724273509066287686209677918682952905519506861733922996518472490514778843105841572482725754508736705756574327573917461246745750254818175602255130183260859126021456830077326026688802855924232172655997197444572499123060968598371718985391724196119653698095996024017081709775198622996165381554498457301047056959626014572235823668862151940867061954094785101275562289332088865463006250676880511384091185947805754587453468736116766565409519276941206506366491144577595334999701510523299579140483685633002752372023488744202821139305906052833475207586673917600099787792973303257210191209653768551907310344173874355553177465028334233920817127565222325630611562311438720987267454335352875060602387606600988796929783440175942875200533113488006221829406154405574517833783342604335412095235230411227836210462318497248371080825771723906429003717390933365070582478573127854349220224678583282887336839889314800414773180939085719013980486322620389508579718327086032906974624384398902865012262799239932936170557183954763079703702188985685107211605431817543528603365892161759829376137243811882879913415353774275896897772028952891126326810512607253123537920607171617866546878572557724704086595186828303152396080355212711985397905988470392937553643952000820843555851792777100585484998716886611969312007349046037921894958751202787637452288764356603109526994808609677671245732261723683700759508566897824602578376029317123135218745082651278676682459744596528727052586125719578982352951123007462951165670821816558215359707401110599267394729697308164753135355070051272681075848796756150116338218152530770785104587905483066044870078600051990982692011351197420715935095350738653610708139881494229374784535250986128366885680705425207325563644870023781444137583349692515312043959358671518257790319395621201106860196978545565155890347307509432310803842034855237625590941817541223351118404718792413468479965296966278946596908991798856686658488165645898933232835050424499335455324016875801916009487058875733844233517383455718809398702841316637698134206524484708811635161723710097450338054328814006667761345278063971348349911433868102705503429712981135458602928955591665156112995585115949200174422540501206511075429447703236142703132372332677337048094907817998964774589955461604538453936540482261500940556067311776556757128275504519885441641523706810748812814636239159070614052309286781515845656353062260805501042886755380784121015614613305411428201547484788454748839200230247900824388426254966310593704168950248821620169520816507106910049166273481862985279755362095726637251864547133769322480303739549963118982278568700050211805112913690536423629850605971447710343660700064202509093856560556291819637167131188499850830536918423575990114562189929899436858678540720297314735895279422680428085231261850285997280835802695340266895137889660715846221159426857996257737166909763728599230990090439566804379201963965232526849514288802911806283071910458419632418187593020365922085407810544226069062121969168960397033932999922499640637946191919516988663043406622281312127179331637525155677490289221503294115495092520244854611539727472884143434706798023199812527319089315297128948240046628281529867191982813271435119975681663276996018995755426287031977107203445121056356534339250148108396198794627087321254676808207703215911749049287579466181967989252756413171748807977998713000531857496148690343120859029928632006210615148816220390564337845292633343957207508367506936392292761246850909879726080153136663323693116095887944454904310017323847598669185395835619664012581636597724393905511750237784096775652328452803497786477623712621695159853112895976752257273775999945132922059956985528830058292026259976218811695648295860429563076962510429186369988523786492639770303932540588021581227773004444706259188939162832021345531058132724047345531738894257390662201699521258668497514597535971825654797120488441439558996230443525716877285402216035990607210798481193574974750543572548242414871849202807276147803247385755607768536073575961705721529096227972883267950134853397275427284496582926132928528077290498468875106949067953295094103342315647483252979941048692434214525501980869864037499705828575039321307418072272521497826150439899257868038642233785333129308469351990072290670931951099894028667107116920341629598411131161458285925004416838596706990900562286226187685330178870490657433783876291358159889631821243062812849951323993718068537943242382970193453206577423519058827504133949968424734353225223713599437114338879241269674626161551178754153623760345194040767798193494818088017157976191332124278849657217968649715947716246847097039835235935289542065154975007371010125544444413852004463280387267578544560972217111346677816608674133696883523595188076554442125766611044853943027779369226817754192813249065794597053873155421631050387553446046566855899023920476502796669092335980202021741888740285144903100180163752524299806614607847557075541291439679887425052064268561632553204612391908715155033207675793354916802283798108471587623076546722961600107476113786869178953475525253332502422888016196410634030524592504417235643683841655649020202932980925816433033626662426765707474546370938574877248921305343085089343191798540847519732592494750247617961864204388069082439675280030080615848136488835248427500302255407935300947212844345605978780461442409387517616417575398151477478836126631527289359952018243973705812905104608554202759749567336934737118584076917262323996087194817425615207646141787629634290345098614619529169254572745090060575816365863008737949089415538622894064514338728381552791425874091717478972507730611373073536994916775341299387631641351127089782350181970158100488962157232213538244836967776815055429478405862265903478925777653538738529804221624855474405099015325624639662734024552539800158463310221112309958652356090424215577122207496514841358974306943856403224576220566090692123823934117324677432098154258703022200673051984291773911029059722808244287466807395651255798877924723235826435795226302589014333960440031257402451259318723613014714425324693616240780890662358441182305138345232391492155522149572052867700558232340345144859748975342629578771631574820411649244682929348514844311794440560234195830117496102181741536908554531279101635578585152136532527429672061783383201755064486564366903515741622586383551640948286875058000456856359632085012636016973934017875746269601953040835158018721210032986434403480342908180521114265660023871764704697842844065722174202270472376272478288568928598838177981115421864737154981738624460052385884267595158667815948469072120908522448272040486449306730725676587578748058405948725098104906437199195781614458093856431340128309626430833867069017722321226430819213330934228866745868946044474506508316449156609462578020928597060964073205478869799115395873503832789879288652328704794202294260750323734633758060573031587093218102731661038397662918571964379749733384499283500241833092750505423024423732995587570587295463991917084598092731998762270764961720459795409000227574917407904291190044202333721220766560971706912978795888444885097927787427248046992419183236931468737619730066009318553525496038231422573158917649796793939039407506439415527499422881469449947700044187569129570505505135025092663052835529551081419055962578901671248502311342548032760903303559252164822832599834953364455744009469980189710480324899652018460857928581687727534055889877677369339290207692045655002677777107248011956396959201316463912688730978049703169664497959362731896457527627157839944411672552236210448441789549872123566758657691007440630125968921160517682519057423366995730073352892855072875228902228342913045716358254878631636048873767967695397627786716268038355641164025670170021546974374876205923692692703337740500036883949330806266063413342326225770947696026658731785301785994762491256789651375706178820104888599929247721828280740858048064333168184929792708091854073832596739567319861747174028189625743470987816407785408207840602323584091648297896113874204996669911761681662100038547396127499130741659611396514752631847855081922786107774295532828675663803326944219447262094538548514157084231811489458159098472112832999617120127692473542760688034706681546154823932269596944145782464477255560302361902262766053859329404709039113617310793301805386840814960203739441952976782768046807245182465514095757388182128072464105390071094375227461552913112574794181751246606731568957182391594336412251426150035891490026640261714139220956024214905345912342193116956439773779940834638796982523025442632234262434270163698938278438009452848453714497036568695217044209424442343725120916570210549341078207379164332805728612978620960681616815650764383723429910522921954901609535700835375325074588922524305133658986481228765740426031572791515024885188856328892487553895286396439588861679633999640542038816574709458478668666252744408422617842178805112091884971570379201171861616448738739203754038536311721996610354449309541774875529752889605646627796708002716815343456147010856954725531512299275694133259798223816299776881178910896858820891158636043660926565716629115907324949751323442995594256070870279615472536089553585197429881057513375994983760445853749853922468268926064729766170629342180051830207400850039881209263735348984892016873140771278894684288825075550443043392336804846107635253603865614894411205716251634966951716090109291994551135670738277889306120460349758420972400289860000670074188942596624782788287673612099959579121976221742525008026663146575437923224209756497323268781218959352008624930694266534108400300270073429414064887541127910548645802305272414832344250700540818002083856335658837832606142344271027934726298311702182480510757618556226399700887968681009656844698043427969901174132783847327687521516582586339361702551161441606915325692125685651849478932742855501464715367032117158402287431372320909651212510702086896460802064902555299591045479795963991853801329821357843827541925472778140820148862790426076193758178514024828959181051874629754084851225599390200849119166293660707210289941092240567726835595818866026254975108763829929485449832724234784330274442634702477117226352757471434054857646116418697927706999962523938641444905702268690778979890718901191679125440427143984980303542720718919382957274172948175731898671415116947013621900129252376269673817200263289395301058440350796283228174784259512366716589357386615784207746806304621817725875291862850274486680899394339000040121794536340292285765293373953825096400083296220391767898677178673738287425449072729056899938591222068314405561789384516453560245638836963639808194893033845402527299623497024187249285756880387654985280825204779790396761009238170373496272719382354107674088321039124533530736197072262725683112747989742861249192545621053055078813056664119249512110904836374543569744409849526439734449507525706040120596050699772205918781476626038222329661514315432345609483658509514287389761647405522611085794069111999993249166374614843828336879607739139844214986418198828278924518601890958907637996679233755930101463729891297030165519676381393226460775046035402020148466515745529180972971015008144641328354266483107174692135905969409226698854206983326378513327710576120042377865732174654411504221082162899380263389873223199609628002978600525327576383865326787837810698171550509663696243991460759070025185189900356920941251133340387675394060075430904975461450252670470415101947127075639048415369788986891556655857180896792361706139403004631711503730581213244775269519206046324346253466184271954220119070428383349921448705259040673989470822739838971634748241366571058143435933951419510099654730961506026205959984143512104587222186864713403511301756363642164063966602340899905503648298631898366256786705594626415257819837146923739655163248518807400877259076170996833297243285211843008257665999957766309825105973701781572656599112406450759395624020178952792143841179885204511353262496281329726377525093390041813517662221903348523586812586365207036701032219232433264579983414698390684709927941776223180923346046396679072499528066124356822400842529984362566165434741614875438993622429549332351272081304413943124693391952710627868158585533300171949082463348114091266776729322917622800111064188717639330050566831940067425618753003713073406906123722566236634413143031539514153084427984023826917204723507713715969371445523325727707513401692029583645823898370009310311915576115029881899651648552201932034760256511349294696362503968853371322645975553085662467561188415204965666671065604783057851099461811282938562758319327356719654860795778404786116545224976701232220485593683427967630819694697951806454260525420172934757089891390050710418855035511550107074204292819386342844050448598249610512583658146332127967965873635203344510973590771208769829821664251767568039827889081459199197301283448582007418628835865335705003651836557716844880608018693017165971044749685006175681103405020885031482880260407643123866870470807115603616023689952647003507716698197586100366377949307799191863663346641974197194333356238472482617872609639899025739412102898982735485453178423972072655958031143714423062117483274803013536218474888390145378888127642960832429580782162437873144603109077932714599670858819465052340017227792635534536844012343488424953923730782472289893121162583026737802035550342455689076880875906004122858390307716456611572482557889865165815396320735073887170367653021864718700396603269104218880716243490656799597588426773200163205849386411598856758751941893042058050652545482138393298002726582162923267843548557773745105549006260051273638985480477916103127894202632068486736990600826963511148327997796703351705113408591586774763353176586750865406126718496060083312899852803241619995681186340234856348387353578897186003108503940222862723354568235690518620821083068367286170390398677604513424569776083770494276383243473216578250753520416398564917502470893654837930469312513066207078804804443200641770861105622104716401403254147100077143806244300911084165586950123662871054458890543584333295306771425713787972501962524713579829836784755613925216022609575963742281436557422364986288223141044954113589299919123642756646235078639040296847154896526964779088567656374424337230276777370469767687975786063476081156817848915717158677748393024335430650598499746054454813043465086457725958834024491476121717791926898917507353690154431627914721134456504701009120336048014120551894949678473751507533835270450180997752259552405260020974423659825525108353859635719525689266403652191549687198350952490558629868395288548437107551609816962905683512121726577685925851679051082984713873823090070716196501939040785202451504980926882076470371559909419917075552685380137104438243780843059689178687746289179268075255927412918762138986622962581171722606989206210319482365268753368382171696089566417875774999840712808942814387976582258193937760136201164007996123609817950725846742784882075688436000622086862879930256056162130560871114210280036134634844374293152487689364149546479470302628855515623470081952570926315181181840632076238968098243354340246091777284408463484676193684440003450650962010153864644028864024821855438315571155364572700980175611561988430240906362010041806211184459124544528887840787329940029377870908882041557450951641096370726913032381314385357039300485362216734466794974972357065032116460763104366224650930831418531903718672540229444331937711210515785506176777032004617533283498277759787449244585473110402686842277951910928864511718897153366190270240769505687347104411270745544532911860186509348200822318493938712764894115780443863891780883325825773558027906601526729039080700689898053564001566089993036117512111452054248566778936367719645645539189596395310624670239867570744391242782711362282984011955481135921060307447788693562871846211398200300906751624890187966081213453676286915105833148110615093533896371253875918528691063814994967218148298123695027468574542938189715119142656586806027912067189240546622854689650910807046248582841261934938806907925389261150784373069837967490438312954554800384756394632125954008973445147324352942420654666977447398760926001906045265654798730136935450777016249266502061807040356437325663271215405734895123715190541327173218160114523146148026726123950138231227190915318254181815908901461394533721136541318935013727107898941972943800201384151926977289118754488698490561014561596357474973821669219238944444791294058937602965301261713319988731231779146486272953919926593409032359596091803439004896350979965558653708835293517614696309912854428416770226475711443309023575081807096510181957685570675695059836156145630012710861903588115813164709219588049866801525675745791972934302452420131057028555513558746265537397410312427723456050520652544858674542034802224395085793281670582614040137294874971969252234733251810151527888097383011566262586969499545210693292292154845675278358634222284789436046915857555566673745274264540156470368443323701657132256911001765911167738577049469023088752352355349396557609572400417574604466411735984740563209165465264936792010550572212080289313809362074543147438388479029473398296603737094285476309768806578408050661033995373172499221296076644180247240588978188661523503709586054134006169034232666759235574912293429993235253293295872042478429766437279870852219055148605218693425852220036808967668789549520594189184581138405457203176038723391893927743114380326863881732258280757145280658082047634487367309687214185512281855735458441719026206785525902187504501001369377407068297555325610900480093958151073436227501608173367715181661751056512261809890961386003305860059615113370795321113023684296807425511351263329898464508932490416023769714753790117401807570314291043173704460742215963186346000980628232866891546666710725138322483001215945330336874063335369321327251020711072731575423523007817447398318694715202582019155268616169257666526296286987528424678790914697245260648064876772505653123048985282224821107208094286576933192500243856934771195055740610179050705216440356656107449201642734324813200431801071746540032417897866725872923218880596636993386577339605632984509094271342181849954398197569143147130197505451617487213826029575723524139781030795306005253903185054317520725884814418219811454688775633180773853661823475109087646815474090434829035393335156988413097405872596572233339805428895901349189592414125875127162310940941586217941550276109645252787879273252259495894373692031940525822023874052060163202725051615839461221642522603746228859835484017975407444279760189096286187647507081781492475142651275363316287889794714251259934040104560779443183508119202643341755415872419350730095562008387207566632139847290308785223340059823514917243977348443145605826240828297794828746231915946210609397699150208242483418221903182151626800706195412030891675433578733751847255530539179761899335356708766558473750049101857817342175079396822897739389404691549757692127515430245135700092434197514582536811526952524306815065904597741420493242725967330762802056237422923264564489881372120002092882518477829345481331237035585960304341130516222927530654482818134034080736079784004137890923273575296527993704900281349406479869656086221424796779811464997844874663509447661073505396555814343688386884895666867404853786951178218531383816220303646485854004611399587441180421484601053839300886957571654098627729650837784037135633866945590634505819032492167638638287023394725875082111423887679446298623876327824922360690596968457538839787926653170662920621722074540520813270269843703900537889789598773927420556719630351626520629509223982708838952428834542599990836706549212103910616751041200161124266410185793173331739956432805219305715937001928883582332249002146082557936783999901802555483909999102114260385242084674891710432174138060597378314794790146683732561710532486313193667682980739379082527285790108944252903228336398502666565379846890419611934585519023975633859483716317373454875273164667394168703545054606473710152915264667618433176725311232807199511574967208315917891102239288223735849251477110556073693556947037703237094576960984251597745092412612767858961553876279765988861953304351074111324017380506591159341624584172134255090778424517206816535565743440836327269508436795223750798824144313391027384333288239199551900292965832464583768671953510339078721356491228752165112925091485004025081199009056666933451764384422196754985647625259870951549573907980989766914648067098450063611480761519906751940614667359816684998795277989503849087493768708170699591069762647899643432056425843287314266628540500811505879365846812276544159083349915671544578496931895066272829617337211049794729350420821197651387601799459521245142738540966559908679979955971732832867531404420785280202063024949023244939650138842260875634007962053076554875569241836901401450864220391998807747116865865383327450616498178136994299494010832020117703360835902286425697846970531862564964741235978370011797059621737442258047088817141406049293585081762613798698140255106338516147890969795812705373877207684717681422549514737463627635355236535407117596319368128312038229043154784093220469870214384613085429277191667169919687570888142717584441156435443570037531001862854148541589617115263815177825898409038992734588763903943543458989935983684576389354685597074119135960940083589181854125751052672860218292439217058822793729171784702379939113004871049947760216728984766611073684936006165791226686523201428220783269215329843177045445220830643515741648042299215873199331795699897142232516551040119015343462039299885786161518835741152965359018811710696069575325292816690070881955013780793726651386288271246433727905261187127593464934414009890920603888006173822138738535313539759264607582723747561157892932564890278361805562272982777016930648615638245454795584199912742329895693541761198939688889392172747105231755194837539946274864071778976932864995780868670380823496944059247662450608128678759740360683816615021296119349644922536145022181734526115743495207603266143514822688420796008441982608610072707097333701500663129382817126655145223388837323365600984727357584429924256078993085236523245155498926489334338527182962080154235588021834705074103817043431933122530856921719687592709712060394704755503221139800880601570273232757648830729154518369231335441608676030601800917330914846903373458977374138432037252524714012520058837712071734311635710011327921504317011238142934632582405768021162249619004035952015202366605063712480637443271116245366399948129283705410461146001972354328998885480596622235056927739880974853511482529703515267963436753138928308630729322953395326691374404191258904558947678439373746214753570804051718985365253362264510144133126892399656061515872202347957070548819747184269255453697245500061049542096262640140961157865999940517071605695728816534350612917514239444130119846282490663428420065798073721821124800183152335156806757893587685748128500221861747118332110010721210281153198991770644603567489798524327240105719380008579125119137103298701060797215263185873033664056489389599728086847794100024389587040304048681006965960221889430906408287640416117864886774867285509411144705161999869708255271252765221542088957416970801878819599463600886506952331486019316619337869301863357659843563588588868992541355362454765297236994003448277692616856752017118005327613510773966214060645778985888533502692958660108124227565482881994057236066373883794107613369460457961700146666530751870588244367458643296233846595231903194949902710779145736027968098505796100792571526689132653140197198668619088947729206140286479940490310327623041362644009862391926585875650262724392922095081148609542349003952928147655979381803744912927038405811342167805490156297781934035385012090138786803852728172313728824531412844412279553673656248971303085145415729961283850190985286168517985468283944632080315958750325667443190478550929207247939170657432907450723381512169079647636113920561452281246547786849920655657108426120348544172932828415371126411093874010437705567348566506389874908094183735452011445203962980326257710709792372471556419432338388402599787971013437572442923945740109366057268642300070549451470153627864890357675784951429844329128863725812675134351458978619513306662133698397157516138009716369778919301610845151809438667227579021714342639763792822887966698224923180151698493841319181168657135922519320551943648032725908850776101855478924467002521002546999121655126811376708301526535950093008303683146518526810067893365751680784206066401449345225163818928433250617960174517666318480396911174163155110855692228289581373984763888433132027929094043340547332575325262111238008555382054448607867856217984737550358869199166994715253347453039543521486763603761146371541669521328575733242436089728452882249353644649879009866218642796133354573420883524781348627346209631833471844528886987598234804283346689875371653736556936946012245445408517163063715132141658325391809567494546036425796967341642979225771139968620220427472872249782298135859729105290456272984777971555548178052889896460115801942823871405668479812682120906659511410065286646926337936006486167881384045636242128442970306448785164365286333339981008044520800403609004304945227710266120699078841382636364318890397006110130594727732406548157292762835411386269807904053178491330700750919748255540503099525406127156207107978591217544364569078292500979478812676652686021279304279759152596622840318437275115362170333067339191575406591424251093070545224723285195287011566184576892100818719326097571955210168185259631347344573284182354755610642961611296609254669948575605883936318888503679449719536685158080312207329528969844659474461820871514376136720167422111479039319656438886160996141670814254264284045567771296471035194523211824572332546605266070897722812949791613698157643091264068800128573729347755292813634833922446183485891550137567603898571204553577595626870669698782204664717236008916918912848193704908379873979897864421546416001042529623287579664112404463934039576345492408520612632051402268657670096441986146389754041031100511271947186270429195052733663748333400217576514950686921914767113915741131478676673349289509150704216540196888816072617358509552645859535872661593688000247133852880114055234485283383729089881340892512930763027490895673472831418920275448136365776845478998265515044305813539743317005113100019604871223738981607475271348085047788647847498280293625210842211592120638640150428747554014240345807631226963016276789635706293358846964305859883133494436630372896557913703963883752830481108650082877678511933560631897686027690784372609976906812992850180756478637667223583655326169665396128877338328492243256336869035146469611354115947416880331831149966090390107299102051309606946990058699050876253743850926158380106954974457122899760221020138777900458619819478385615654575004678610255398391601432627073100795397506640200435932164469831182357796852931140843881383404082228272744666453907405886938105124967118579818929385871358134811795139154605170838943196294509116864705249347526341815469520792140437697335181851729788033886061566586421511520332117443727734713157553304313147716347846970104089978417610717016346979802190898280204379165353811188393511335615000598373250170665957567199487006448059332262476312926500476035204928008990968907104290920725767433671783113384006329122941008659737547034143604584023417947895678147691440394517366361176555785616920017760305700743988207885650909501702321159831065112930700341580731921205582920035349892459979061973762077433373203913932823271858845961486025205666799904648349993315216842529496443352366922183340516232825506466277921626322774574664764087661475430830885332436879221628824847614904551270669391009996162617580648835160704311250677633988035861852321071579622988510746550991561643012844470050407936834068294324897059603012734624277974981423742672816099444613884272915862667113069421091353567766940764673502943820789604146851030666808693688724130844616305639304223469249660095061783309835535357271030154062393480279260550747039306513049536671562366918289855879741991623887553863387134801685584080982508544424700688464817827593305896055918005737168359651208723636370497204013095803816736553648389941450427642825426142707282696436077196228378922096311375292059238046389047069576416558627820772858608585207877562765170174020467501568233531442025014390122050930075874246395851672091413069512447966287647270178330269149380553890242628170978588178182376583864809747921131637481308189312892424240946518955964049270003835989334407404421862589150493972264733561413136938007051801744227706292650228080429326524254118035634871019386848587714321065344016329248049702133955322357885437112273766823906654199595534317737514761654013250782858480794131684333918851736514707754419797363852590007969616370136768207427820541348446576581205326236939068317331561703698369617788088668633749389907585924154230551884602802496801301959284006743081235966381315052794540162681362340932527895129083452736601509766700386824073623436147183897445630759261226035343853060502545682203223847190075577165693156181667695946664428698758285994714524431916134554459325811409057361853543931000270700869079489009813104591521699198993778523171516317904485295609057163853973459446877552211126060992937988890363703666935218863884699261956958800494304192780091124309453740394929730839744605919085485483866184521967891588051325586630026711906662714663870262004309600896094729082170110566141138201136505742970187179136116035606693110708374464862780090516354905825050081158218414421221919074644738022756969204683187398887754369488542994131215925235487229644013503586072727844932319441557164002134648959596272728013727461910414686604380447543601771011948660424315922319885834466829500992698663414863299523544439006483300461425032712484750630196895531054340388422277533371376339713404992224642955222556394882747064755780181530906934073352531748822524479827113672119983452226688514800930526527668131492108714336009657991822975440135750337926500509190650783206580684832449051268888572376013416586975133742215605701046189630554209090418076081005060091268130398736829084841904990463383574650563262426340249085628502383955900892714296783506959188806145783175494031095595513700623368818282823123140404829326111862796487096672012588454370367102338751776204150391610328256674206701567942404097743925075509177018019438318583719768664098410885812407484740405309757712208870357808055866245617702360932089009611129221417517011310034945992375588038369692970339152179016115327458770445249326744354752200239156600400556680609356268234868461986466671850936304752500385636908610251420382405187147698016354293324826589640429147066335127788482212058412154243647886698844557624457056202539630025063243953006046183854856199026410628194803327707081457561952182226714557429378539279752836342542598699786846793783559389330863713777245893752555341390240202095230661910966569880172978007521712808202271735982617999892600071446816315079734388858125228915567415159341940240017871063749102682543637466545773719616524400180274032002458831777192473251224150286461866905342142532990382322221138609301737565250228971117788766921472429507777877908359248003544953455948911458631462654104330448643621404111744645697023827205701270465313273362424165620039139569768749299948666436321616590393359032248129307954044508889498812911191707388437131310675017395647888474300676095346145022509497292461542659876863268652872423928969841717344139169564663912936178524347855701321159542773909822665687411220361821138832792216644752557792458584323743809956464870556596275440711058489268147973054335486994440231958529679031945972688938836299889500560746838166046366397851641058198101197378822486651469225551686372845997079180748326141420459767123196975699380914689677785247030022595805075527276814063092855735276843312228276245315185151691447654738577155206645813718314512092714344659820439301651563768789930592386078295322707601174063237129543201212686654722351180143410457990962385028412354098693362061257861458234236311694527402260633219685571330922533883261866435652734188577258284521977966019855732432231904813429720480813274945198091162706585323418086863887758481360483181987377532822718340379399644831240555463603070446892393717964944692292398250538386993236557814351790701800774141736042000326383750490003253966155430527986835419793671554019308107987089479973284065579850914352629133071794580197393471084659367707081174858739940259864790031868106923816644603670405250401511760265732684263555025393262393891309278706455869353659019072378275868425429868249226172294114223828618969656947119448731951692553655817798226006547034335902820479241283265750499314732063222509766064849267339822607303492098240163215264281368498401819562270846417388952635584987529809589376132440192359459708310335967412862844271726410800307752046006789774375332003251205611111668396842808736772440923236744125436488944199921803984555716281874820770036966753617060333976801241782062307607280310089823119111973615903051871154088619268232454587822745368867999082269628528429244701759658731313393593859536383699944414631158543210165663650298961173489481252404570556819702277332415815128069933173835802832356802427073230448702639733773838801715627919123266988519261961262624354448833934209682186791854102578284414433063252049716772559233297523029886389245796640634371424694362871320691681424310094733894071695570822454366317745787003272182788617345865146478261904609703358536319683406131385915103849511026237974910549062381583448714070859400094468813875495628007756008529214815018236735092636540559358213839043390490237140732292475837963029895990572943727583979451607299229571035698562682665674938190068719132957126016378083274654286799765707088228103546698727640706175572363170199367885215685455203314430387926025351051806837272810725693822137815237197894490194543715073919521431522532397882945203210000633924798893754327167572630275115876954071526915457189422307999625751432365781307753291684009825715416372180773812646768539931959894882157503371649531113141730776707954940053046394089680792474261920060900852134140499773949829724870690544038145939283444362704482065825804828462855168943287234668563717603400978672176907445945298931054019629801822018164510462276554247576314294208058397750141959348932047993898924176667813510222288835209555770218384040530607870983005685362087946768021809050828544523944715875356019459409542038438722264155602042266844466788048504564075231243510344249394608542493808513364208656709191811691924197511359792098261476683883622881173605214915759328657265040895626620748278892787305343640277455945455339020043288066463503139904875547130127426634476395098026827013637231728703567187620975374058321941604581530291326372911488550859408235857807296639273437867573695450731645497175333089491598334757805232169569228119605473111473292974740984845517821483947093536382759408080772400461565491346514433528921439457705477359982272121454291018564283587810198832020641873684304147902514648335408134154593345930386281932770985913081541080109733142755462417695490201631304383337985446079062721398615179511010392045215912962349439293026901229393099197172767348849120857234387531849263432329945000606058388384240327937840647344536293062912708794737416992343397276057648850945500726080180901688319858936642550948982386705247525969484851159178849485905113367781882142881502030228220546757830682992826942856939296066890092345188755729356286965158845776564350012913037683325609541699132017819264284337797336055505521037172752232143081348455634191362856178418390942944876199900859326390994027078216185930069225799277233215818518743279730738833731174887264824747717406604452818473502130875440341764543587876321136868559209008474292804382770466039862527162302814395325426282471821165513293283805466880529332910317781182084572584191666102134046750191110572020333602463384597679842125336268862307097496360968219631476066283446123755433377809552136833145793571516975176410435861979405536532482943684342065821236018114945989367564031512628971558375678514648091538866035637904615855610270403665716463287821608718538640897935455172664064373151747946116807958858738390035387543195777193649943625964499882205704359856253558308821208166376865370860282554020347097938718989527078768529034288863490864285478995119947497196361503303867756629735324178304691218298297690202781319706798574913496968218643871831222207033846845533657658563115507434894147144955653392070120723487728267584641608894654368411102673326309956512897183097728592351932888329313978552895154578801469777572568878020005302465426832890669455423507937020267370664550619393799338624503123479343078053091090940942128873091643516885578769115556578791626568489818685432079015583168979312269564504409836160479356879511112254437622514076358611764495559928835003902200639456829826837159338062625040003817951130139322290443271289916901129698075478460682296356239379457899786222577025588032691772682624358128004097158755176035842662492074393526988701709573451602677972196715075569949686280400742636960920671808536657784875772390577249317761732718464932496151163378947987431800022973928490426771948460904615213007142797501982649069083471219070380444471989841985739696551601336575621788229809988659296864122322188665486973140211156332375231145519556243621149897775468412199341477568524602566999351460986091649187219954790838451648321657412491558984743483159814290533942928111981452122208680743502669165025841689054488723028603701630824333499156705160102104614270695593598620267355515098335179370707038687980181664639121998222639313284270017135122596620798993546764596352410981839674904276546015884842379968858432365018194969135304595807781925297224194377086921812876116551326039390426139266465755779666600216390514801058215734893197503267309640095606634534242604014022798760055044858214439095544502379266345202577103038339248227198267549146058563892407185475495219904572486993909326096331596773869064880666157044551354164795826935071521310329018842456121440630149038845326782951517354346310815070634299202870293433422737159022095878402310132551827134085857935533726667296919465818967448967474753990541972404721108990871088878368415675800391557285787065282614186886115676879610570034525131995940076984329426043313678755546585843895924762614066818431919227378618054862684557445331141327785545666123198669578500290081464586175589259245723780691901049467490762345096948482901892003677571828149179945986075588618632309677701243798107995994372954481436096126566233322357313290159606571024110423305270114653525645754656114567065616796305343612043318594817977987689904337641708939441399887091167283600297796825974073301426417602540573932665051060803032246145686951173512345616713508740079215518769626149561636648393486541521986544804401337936287091831574777276531289627222341738846846427554799834215657579819116987426872522140191506652791223965572077463760900222420565161791403295086372335352861379340484057235795541152595332596535442966464164362108849823622360432133218317491264803670846270045233668225152287004382527984039297645403241009886892316296305696300763688655542768464905668108979933849657311480894697674637331563314731426993161619709608701581076859872826992771934537358768564988019217284484432210127329553339399369244291069896480691771193587945427999243446586420534313066727853151187652149635760010457000310499130819131899970501048597122553010931391432601814177016663396002124776706023647855146414230406667560914948421614833476686796048483749388601906141008147547176506889356428610193114005659487774952288485402940199548947180005840540730264631252948389268015213557149277800474101135894380516905616467824713166118650074700496285667135733808936673920372676545416441794159089237245694787253401261921009569384360580002766357952294541526104068391736467185539456217051063693632366036445967653347349442653401845138696792359959870439002071920910319914654746642248808663181390748780026761391109378875802795707356499798023436401439174843103650803189301103854804683660452545266242377836394513526492343248823769395426124343208359959123052767992115161459028798701587559770431459754347661575732104668974508160739814060608477750353890824493592151381958627621341391322500766827539954884875680371829207329728876436005125612820682677128571941021994932880133290302911878275915530887701072642171704863099030563422628754389615645734623741811011161839850687988877818412908592989938018699948039519129817785485963916444748399467460162450482948984250216142937139368568469204672908950173204877259314721484042461217183999466584105065367377473341963640856376525746543599589293344504796979548800794346228893874548746019406218310136300114325110699251153248785465195038619109072563828923096169559669366086748244117836124819409399014235316119288141739214461536487640911792817350069773975208789607747571614360584775081889984739893551809559100525633415760544674845482776400259423305533607352449974529546970799440709234043546221252215134346752820803095868228994298976449019464779218876341878877050078811323498255264504438357891910300672147167894400522902130915928344515432594200270583730504730038056823200459805201224271361590647196812395646403665368022908968810126812119851858415220314116986584579374683887910774537564990302570176337043704247114448103071900593061076981244791100523405657665374441840838360322972774399969483217261440674573922722608685635412632239015586853738519478862347510180852231184500423264507736673480262005536452244952055485747979045309995906871826077703866109298187359514724501759998989859019915854852680984913637251419826530439826638744384862229978352045027976391400512887172162307940405302047237430233168993409527769659350288995766547753873647927538324175849000745126574500252457666904201083921219236197806000490131865097026478034284747920899379764605634471948638830991080624338733799825885300989215012486689034359039589579910932122821064007775592730237524532377813164166700672791283642316787422703384550882479818615621817468006362794927618537514141055757694831502463662950909566462746727994281832283272097602596082080928524921864170037810834966986865294917187191545302577666691261881823019678492864592722774339013382698850721172070415350716614247424320954306640882078997606376030599284055735613895176862466080027571091458482106938829389559334902340559238405835098320435535250418447150875847520359904957984094993058942291536836179388429207668843680290934801518296710524270425315550972464518205612257837008060133935191952369547947644781175127906068507561931993374455886352547222680117375663918193607572984551096925827781293874058308613863692804438556473741814343243603799579335655600082900986783257062470010142796791555302127897128824353488712415513390507836075810757022823922978930121561148289195959872323650234737291455601006316388316995169107691010935879997407524116291373434339623684873719305719821926208296561052703487138787458433216249164738806785960279987628562578319087434768293832894924343251695916276388934243402209212118374972433524051111515441770661151632471183702413631421560941145845873418165233070168560041751434828386997208849432226597281530577940076858088358575857622364334325302666437001730980573026157172401896048389045124854293018105984941147172178266001648053435437678752759032710582756774533978636200484200317970598459326261060122429387323322446433336793816806601089966479249035207579928085448812079240985527245127449289713520452877496735664163549955746250866163973784365209192867288658292646021917918377367092167478782564044060612500270611480209610844319182828410480283455466665329866023127575192244549874809497330503060624722831345373357087069742002351120223943004649064450882006874614404878331702994454359605754850068785747416149645842511672826604597764850448644771762901624766524491880445184021423977363206958382205576631829050773705516136462626391606779201122151582857591015043316836800988782837993913992751998548203728725995415158476684787340051576867634818625487285252673316761616422029608778885817870225306115877389783221103439043801158326455703515657621515513907133527684271222903458822705187567457756023039464343080186828150431955590571245281052344089829379302614237616224708193346473784895133097063811003926157797751241412127855245434092683187555511709006790746752712601703278100353033173748196313486270600833824953986892472945804051271781101305874129781727691478164763736515705757651282718909246407172345973235507861836161108319078741030974587213816538538398053724665283943748395352644989444941773202800469094300430886326063082812752512650231782630948366042478242692284218244985951160694367735170874559609139620970402310352486158122208677665927199612453472968910270447152132246255937430880422319796555846731127433740965378587848105810049027850766240225609864669754037912241931813636876534697143463098076735350840675609433040413676551942932879464471209879280607747959960712541770606641864500510091755908268773990430390870526693756996386734072069677110589710815722261108996605760615221074586070404466185744465229410140441966730532490243342975019027567835369431778122514152950036312862505751374664748513580791428813593749530345513216669224582023041430526590482764648556443993585836307569906551901651280907590313747732885171825479966577025039650879238784870381615366567592562506922677664330916929736072452655245759525030955979996099948804333504477958610916386021905359786991626864690260468281171264833858585427437891072392897602024958494456501941290133366774640869455159285955196732784563639672660904738604765100529440394258927111691746711757765272865236003952914605491207831226590103411749227673729129714564998928751045320801206270161032892433637005345040116034639025525961688335550342979553093381672947281309370877361268957570871273293643697700855702289361410290886715534803414107717007825421343038243418591298140259785013602089508412440448569578642183518562677495397463038877829439587305128245871842193774149439514221924024705127986199597876459868159397178767564516625436406043135256346381572155862350738615535888738462117295718405845851094074760344676605408058149173099384461083964297551503362153857195777774712033693497397982745180121837768383935041912951950780439977135859221479294115562458462923145259318412646372857698886421980921505347232284007936763655842959754876784981208805096071021541179918389094872455931469427896659377829888621017796413533520137495431631335642735784245603616882158657256988864356996579039592561196987367452883050455626623301817230489262128519520354917731902304523055989187973886850401530413957413248643923219114573442445867641980892365045905900193130664759441014492153648772924491047906904799545381030946106192626375773005538886168575304794458127254919150649230743431091238003647307131972695583164986493583438324853344025469438246233790765579753365062156633093903383376292359652861702576960884033268868642146673800231184916623175682308757401174707234655276795681306200959101327347886878017293655119970926696081547380260979140952697222108284455402128823240728028174554006947785277035029301323255434314563677614644118927396806819553331629761018663405595266097264285781296529423853480760623102453892288445191757914164148690769644977391515139488940966960788104208823789033837303345093173388890862929086457289759287774706250521794568947245067559768168640071667420015998295084740445383283907440036063750717467649936267175909813428093122214821522073310323030187799174378511789253800070060229530848235650954018476311666557019956504699796759626125766888296911534043116585239943224844596619613523097647586412663095444393289380676767203048928804390712150494607943139669158340739982751714449594045170213365467206754955542927525817207629937540322256678418066627122024468300221499203820494015190109716804673135488589587638724956828892426942028109766339582712089651695883700126554687666068110142162749458498552017171571320280238062211880348980230360643878607321406335706557994077159998207133052232334094200353930489309889970001526179068694218908816426431700478116042877835419040798839899505821701672810133411073001546123914768910372469405748011814098032271923243252599976250448011884102738267576007435786441325582977664674650047721093014924633906337742739191281402309042371366242160038837390762276671154503490034326511827878597153200830818105718676330369357628852641937470165445336143674695314906209266988490464576631282779300454490259457816772765715668019982810064631833695576875248661343357438213560165619659401538363640058594101641585934785196660633396454478052807240974071116235639414109562036373278778366908316227088077843181588568315497897567753946315461275416881615331211783922118237780128525717136082235683852134886892877904244549043303931086989197678186081258131748171107995735865142771598850379928840341323518497964063431549229952415610205957203451243309152051074003755369015771464867790552486648634246811463189046682732882311938963791777081425602392435721274668717214601025738910310859106618554071610048551617636679184208237039452603384741078567901942469029140421671521240147372313475509988623460207103706191952329394309256473350793952249662398168418816530775105877517854280563604230744847866952745844424921078476466711914426086555142548507416128285204613892398583030152430775124855367467483037566817945460021738264235578298470587951667778059519103954109843624793964139421786549013295939804777824268015161767344470834895531608960133056563886288292160228282059190262195147130880177043709045408918475386275694252797631844537651324114950806269754671170273173854854825133079679463479611079136681569906747684500764697155891404262613040797664989894887043917922838217824760804325870589433409771651738144136713236345131278075545051537325970140461631123311115329137644698534135920213897211093407694320468028912912166000109557626202792899771485205153845292468989319332330862247251299621353110138393871362884315064168062605512377754410037312766387394836771659412705192862687934905741433778200430426817926305966636257637430695126316756683952812256915306260710946256722008265227872978394284455309368149795981139879089666607031421723014442915554783858112981513442954973910203824619422357693745050799370618582750508500877127585528747555603527628587744483239808021569431707205747944136988752732937872717048579228713260368966784060917522153645257040466027012199504851962833336876364306159802854700837641887209846535611718307252163828771246026391285843025813313071367219274694961610672558978402641762995650276068672502519170130390514509231765364924015232300850179380930719491249242206116628609485422820273608368886786418103148094066425186183190178173104799198981829128479454686254051311736137980355587062409571783168847386532173611153740303920725124441073264906149846480445383222052318552771590557314255343786018162854004047548240423671703215742584745312542951157138472844312682624372294164329255509615723440923362737352149091196731417341764600839520953754257914503809066754610865133738621179337787493162508818928889529870899248902089684381436711293577803742728489772972431733450968901748654039753543972626820418833630904105020943687256677377521914422330593166994596250132406227723900598418086120032174855128855826513829062046109652327732333079016814742585617557201862470620289442157541462555353438128353725230339163334449765850876751196283924827932966462167364936253615359713139066133548150004592995616508712668748890390320496819622259632376107097070456036784470232905299256657491932815259195010373828255079796550115252238653659881329899600025577775647880900613499317987704667389560670254675194853036682178958102968777833839667900339618887697490928458870935836455100362222662817623988436544483139796290481182091872869690201694212615733402605848122483980660000875787675845320412152797266997933429555205738939352808730209919143957152942227481636012137167939649677010264932626314125459433656257527779891134043371034916896890718076465431944874393862564215190754708825494597526471520777515780619176647635017128219479470095063101955227951605160856778436309181411626040414387709373792771895920306430826334710454960341519195746732758416415843021719024767334076760655394659943752563330134994768127469141334350384111888549467029850047319951475516714866648427875075567322550855313745400734500445127707759593356402346767407475948594683873842763858323108738003054178502533230087248961779876960776890047825576131037552918164476856522888226498643625480696020465733143042813725222584260791211327700783267742096726537800427768059239833271681962234395886829501660649565914280062205188388309706057519562462650504727361534323504288159514131551028390706970917273249429974191784104568665357227192970436273978898581062702522789074022133966201354169423367370281201457726540065386877824967652034083966390152608731668267245962141063005966168378543728616636543797624050929600309014798698332336884253457701217714607216359327160697980542357948365167291951786810199932868025848435643109081648440155020934062371458609644451084426581501568784808349455746730661340875086626203302028234417688071640815890459950972261495826198261752485624800364516027973357306640341033563140321864393353404198551153272907449979299946797048884717962192277886385380487625974857630578227725494251425031869433693787458136371438134667688600772756869866804448306836608631206452824357834921746448775108644199377661748434200997744295909486127217246890015064489774965260824928299159574343666457481041973222542905370321448218230895757612294880594230750810791589208202171872636651148388432950599538176273374199853278913510075384296356167050019994352290747188641940956061563076395120225893954080143605741549232573068231907526615834151200582656969318929764776404211069731074816409045878759763900175031601818444412274979517734587909040921049930133183712711337370283143687033723518368413497425391421528835206624541072874683019285941843621946850022087263223209766519528275104769153472239077097151813139540586305447724323864690300507038671006756856642987416599090218006690137056535053618277072831002214669080136686665639542849990450438018636134648231683840212789410007844231571599561058531005421754014894065545870094876493966382114212978983212661166138469700222599626404275861736160920991870755446332211958440600734778517413469528740769517150998942100191556740371368280383681209228136183742264736502944861841265512442246971849797389006446725834361990524456438520170173254831877839541135527921654698844600213987514768737933378698276448961818726699611433874204827468871997646300967725652767290293907018088895694767936246452099971366207054822472496812789594349174664951877713639701668121955351540386106246664047458156632934265358596126576272407945807672755196223314090350069401990458162523190302736359594420217930367664931986675148698065134516752273477523134122008505685563635760349469021857607511399359028982560175095620938893210052638004573624997280491740220390968553759305296684936138272025481915681943101325242661191342103707163734879723356208393674392001244331650787007545422068321273756536618489432167216370296589119194650702907417687011165380398642182482657689092415018169817430940268737928769054266687356260058455006546999949333763607475117514639296645761566179421652705877908034776158727439393107462368317764306298532421452866536878906742324910799160103716670809996480301610319474827802594374065411990348093470571491786039460098646720992071533324413895207860984264084188977145674567267564549149886665800878456719174491696241424842734108854199864806501336411740599951611295836938690532075867522813470100725302284986911654862432044921864878328587670549810395264442421423303598277182772178565210857802309509402949647373475364377749459581695132798150339874873783297096932202892526253969751065328384060301724135440826821812935950482208838531048221137374999531736306355395334302165228598195598142797068409904572140514881786630364531371342938511621594034757106713016032522380199639015669421351159726116530406062914578137972559149737403507548477276865983586805451648238222389311443438023547536488106473665914291325363749847985472308717038415111432401165248423216861747618300107131139827903464720354239593903640991710677478383637716810179941800522025976622913952683416999796642102140137314707375016182510183222668857853294079965132329883559186522922445438039981340451060678147117959777335392881829026824039276855694329568205273033195472316572721418302069681184412625272378170923039603021836109404365329841312544171439939358430448115456659191723633007638929238356247945628427191747118344090411437687733844003346667151717906964525896898043967426540227966296525775904585752865510049462735706835098978700366159907273701964630002104317891842516282653116588093604242472610612363950688306265181894243575465279753707011204383842332496060626956790031533125140904185485622624300518133614910704022133888921427835700155409790701035641897416765383348064763076830827212405826697439641430694583728451149760934568801107919707425663247032120523202259886584886606443216091658755565101682273364446098613957367726211144431131081402875689064842005217949753201148792965077462990131583618028456581601770092710257113111337266686762816600877248171295676127966626094362630133276287344243982741677357091656653563566925428180882373977110351886391074119273881938878130366738051306202804617171557013591747816444987682205837147552795999626651269302627799817079581551898924445707808012752008089890038755622975052909842231362798869550411137299954590898748108473359318167914201727838606504961676067772385722826347309244561083357041110315718555338957962809321751526799500479948969616982761552302702320054081354634298500880574442501840259212298318292219759323181054959336696374683117767716780213417195615080109169260442922154248167403491025652789993177846100525590483211157648721460899308644065459496605378904891635734928489278067205762433176802858489116623476138226564899170054110542631116751237295947947208528571039290281657015384201655711260420995327696684999044079774959551956539447972206266514881351199687356044406361237361731576091981424566116603329732631695742919827972897414862155709590956839676457065593467059612917606435486512900005124408337744747141451660953669009714265035292504221350653913098856871138673367759160562938990971401479523996113371215408270205830757470805009131269990564910012570214261206190245019564330408032520238592268239350115390545781461519216252881860508569254918193689046893764635894581332851311514771818483711087946033532416293678083972735850258751551583520971366675249912217737095808464304830209289616946067118556724349130729114556688554711571564956009053903549713324717899620864516727668913092762220272458305394417358794838706653011958785796876319440924823777905473250960777193365080545949222941017739371052344642237501483069282328881256778949252410521225225838146133907566230535089039800527959547866712952738842028716428274560468047180376244229465983636442700351318564199943652949820891874358133049100729404150492859790407547419634876848027999556838062288588904225292540049775686034098652289526487678240849161445696265891424356301005932418039189766058027218305121708888370493780469486180862876934926664198917673080323546743937381524765788823814185934949870134073282554587039808064935268750660764819908942348026841652767782058257779035269833097261433720106599648216749030473806945472383394004672397657136462043459499258389051940532801857025195871212519662065503463993996937540491857287270460184938027534841826379476610536639749545315338513393325237307166688042971931109606567343091304398782464809441635267465065336511845164929052615051077244152315421769981139323815692162444731055499000360568301872743872621549404702469553537354120682080968056272285905792148676683640757439120132271943117204497729079903800360704223614694720609320914838783097232822708754616866413275177001747121295497506585121855151387542632384345972670295608070645296479463048563140384883668886662401811745317188349928871286117868159007136492507437475222167011088044560113471087367303619782810993135140262618449619777616480063306853782991978754117414798985858166505508042861517131317687991472218373753193944005055465655655225808235889454667595261737874303020402580889867498041212107479926744369740508654683464666468216721326523663915692619684822846919661379788045086557452482573050419563996108555735824450229202425161953185676388747293499511268575573225847224182763293761580199261047902925847781480386963017395372942125368312047641806076662615498967875665328917482033162098113567966126148265246712142240419792945839751910271572280428833545379528575802112639974914074657896651101356854311747102747584365567889832331065562612651395121890611995516764270110290640749412028487891776532679038652678924279354720632135980670343907526365104407248172951764961632429717254913730153013588358542568002284146894993999700882779302038586565895172299267703216798669068890380394945982734393962383673869654891225922354216840639251355113552948615919583323928014153510398101464161096062503951095436817472745144117095912158244724051988129580001948736558940723501241778748696459340885316291145270815708929639862943356033324501629881695043854269938090847816276489257050729309724713236417563306276174134329219796537924950379823500124188502053971783637851758359810799553091768549446387218206180336758975090823389178903335998218002814241835509680645242905475096984499918855152980370884407869090752050926414944281345512180138402185809710411308313326938380527490907758310260407758901078206969618857852900054142715972003506370295364465509410411500649114470418300643601475389483468769602362326078108646630649914986231408274312473939467210851914518598907129158915558332111882538707182492048509001589827884626308160760330480489252869904846381967944700193067060257694663131533790343905284973403937453021121094176843169707815786719992829804182736026869517041198598030934309788705944418784075515008049164046106974210087345077926684934282835676618205779671564876629974991643721096249768287220117327053509805315476948131159347885719646716040410946769809887870898817206516824995108000902989948569757356610864082418590858145216316736746415125395143980687065283347628931300347534337023405163970852793476237996929209301700650445910456755801739134060489831727166991108955612519869099507148691292704603681714918935506900965255214773527555277011130380837058744877417611390564458984380199518793097228173268529888104083502471818624785179537352316591163995657103618180807568836892240504813300725556472418052483483711930388451079532808386292108001810601612242206529004209838922933911617284611809798135846650246466143305714868333454200341121728545274935858309621410828926869411081149075283068525872226019723816934563422074956166823869854967734814163850275254644773563334678607968476486538351131572278405665370143380656940482210859650539405153536546630053740836343247526374640483484707345606973906969571623012025815278975226302527252918771426756229899614582059006781219836913913219023463269579387960704679218607965892344847118712135868705620340112665317396891991248193982866045079841891373612844836547898579267957194816465126661760932340136836615704881132839230175693227168280628633043807565963205479835516732459988285690722760313183915961146859722423335218153129588164232647587851334707087659035917964702562051462195687698759679577178371484024102734451278453618180557510941003320860608591234387938650437541549538220130308724865877558477594632192801864142997717995232245493264463510443448941071078254267200647924673724528744054167561456912019777082998269785629421029695132048973881616067613149102646764605991369385494935804608586863733072168549110127907152249571181959744727749120154730377772897664238195764052710389679894218567220581515594308017570910374093198036154005994047717279328540956872397097044300175453524529046321096999696868442547055551691227693681692476768766545251232619783052587992150289345447089170451294879208577785555365416633933954849233494315509648489817829774951643628892942739039818238820220166601061956391601626442822381498746108177910542104028323448472690649329017264089001455645061539512765620519898129852599617008947903242972422597093250343964203527824380387736959332871702894713653051410736961803244242850582984185254983658600162308025337858143925836719743510568985897494449565610862081115588773272543715375765654950196284190681487772226915194930747930673015156379439423719423122364897093488365407352222518841440911665256067392256008725000392249444044462588980507841689992228400532529961332741690257906952472841962433537318329449878954194673900885940236485514034717147788206762917025865416961759068722134795183669629469008468085151438698632475305642199913155080898642593671808870455365503855222475366182064768358039595992622783081891892350968567856605690474848328160805128250090648058007336303823524395712380761061232143300580898457767586075593882728973295036216313535084780290006929967477557163924278217747057126503474174322892319588180017883019802868191603848264341012694631683496133341937228713818366855256428393615952349482628730215339705198992267882432772756880474197554265287355741748392088822774059044442926782484565090912683584492010005458936891043619250122748834344535639484590176984697448690918709097723029772160062828351695062166545806832479004529302619377440195572063993045077087620187449642421866320523796587514318389547067412407958005736692227942441371066732351328282854548243763029664040724521518243640247213253376658559733185244698956753152652752868352393100187804922888064684518622574196698218654704983556136412825439585547242477034091711147283042722661550648462323840685708201422831473894475906639442062048402957143510934364437829430365347055253978103073010049060045100497629499127492652976751665334157280600203964068632314621430363906962688709766235053257306138564500304133196312641134144647755185363322413140832728722619859315241378586934759434427527238793064785849163127856541831310444507323753217190555081738536774629172477445659365123165410955835919272918686394139280082868913603543347932594240261729268777458144917548208977918307694005725027185311355889598181262032349879326740175678694109686138636370241136135912405767381074702199875720725793416620194217544969145684091016525974886193473306517675700343871394608409938510751819353559218983216522119740042584202429106393314744250274670745587606938081038092290938459961937010981966868988347322482964723397421359000826233384676312947498869451708416229088741815021569590201585799196254608251459541362624362479803207316033839267602102294099714497824226361797467477104074407740010780696892534883991884814795278565306455236493799606916982642798257444089070215253010924728220273986502451561292604078058255730600620030013402739074091278085729239818932194531873576249600734164159332792763623795289746982673809251456156101188709835660554236171282224515620805941507895075290579151661385705011291535964537338161419144957612087633653262850776140284803208247028567556253292909545946017326547865722383423156096728147459084508128285762406617204745628769124796785426626338000794847455220681042351024634615052539852897532585164738505681801979748148134681257083361702726922488198253841335786637035386622805057437370748528873983356716612281498501034439171522701596265349043758563469665993813383350235866061079539318659725601328158827354607047212805921982584110992089753811859787880164497014782570484907178946091344132116759170625306154856187002527480639705308895834753964895442564663748540555671360259315429843213558281526586732675245003881086416586405792956598430555747352489657590314465837790890909813309957273802191593541744376978441135726090728101838195741930304215416590767019589325814172447768877525047202197945919628327167280926302170662725284318060314678276882188371820695471309406706172217660893346335460521392843963174166121610725917749529649756689937257700819553215417929484244519353443537450580007537914990777096079665490814816864097812475431650410682533292261115983007846690046455047079145277682880699795217180501799827480688736938788471514703742040846623447631515791687795015568610783484369846435569293112724943716320443954559243242611230747010450509412933789708632495143987971429143442917070775675918574887180124067112228877677061351378243931980007111947155532914379180279019246999316832890940182584052885334704908230947611491748165732816002346736178976310361926132095220081427749797564228589466842281346078483593075809032559253248645930038060538330116073071652407059464482375411830320737281779770368964476942461067974295388003024606106093145597119041965774218404193896393610791162437712467281976870312006888669965056628483821749175661310827221570768512654156144219960713583293581882942448781476600405839268681013034613578059472803714090921470802450333932779934505112857697953779976722592954390128842303670182226618611874903811887913523924907764634868080710988319641893299058453622652526113350813990150298625755492789655854776970173425439799485482686163343565480078346847079371773976200132976561312039999026016995066930016636715919969568507662306312923887411386304136513054553955601753099090296802717813499786064223205325075011842108195958136330424010971014236448499294555160799242614443539367537747537686894639486139287632901767052955551505504472951613981151325478427763540610907701025237138675872965267287818535477270798551451612820073586849185837900102340838241513013948904868636108921898454237667394465569402637911844023244691387146761435601967955567742678638958054128828046479710765892360635477895014378235794589666326285574648445542516611284451902532521063668561713385668372109742172405563925899548985646503468107474384534894290705340576882614868588831584311302648287840717179199663178916427464708392510116227935256577062559156275445939538732478995152972509892875377663367261834642139053326717704221901685947758649391818079605966186591066294599133920274624093085153274368054912414267807342279354765559908780701187270087219574877699773290842280405282081786757888555953569081307771847968201242197349703911826637521147898209079212991982457140936274503306259818318686550975463282452259939322571580102226184992360071618934966467607167114639681252709097122443846204693284756452155722081536712932767369729496076035363059856397091528024111104994360184533385628141906610896349366856530742722387724925349055707903837416935775807613320176759795717782216659855873029102401750204534444203303965342971596779885909283241718328136283913916498686333164220333906674539240751605101776326580546991368822023161168857641048902309425262004206108277234685598219290309836231054302275734678633454194787171722457124584379145317670794139422190876532924941216849739803461478106788067289441998932833380718640300528748528531802931105469016409948738328248495036414016859485526100729430089496501782582986157885458788718394498489318371358943410515452567823916482461653454319241248547207897745920506026297582336665020140091396361135367989890010363832647700061591375170996012305253909193551764528016408152891812366010439322166310421665902438788277891712089424615671258620510345814190080623703795076189080537447112260247504379631037018582374481935290886243333381397618830201436385967447580295483380969717624506405419627751911713833066879954341346538306023255377035641745844562199298737742191759499035997974418210108176005648519383213248365380925343991974931488969684974152696348209007214006785916597776375926309720241132237021232452010131251945658129695588710091381028995381130361061150134562019558183712927825911204380547101530696118350132477028508392656495908482259574632447897349958529425312273353345957413033274862832028828507302232109929596950515701099996124475298427839079926077729845190288209558327998727737275346444723515585804564022783662382195045068737140306629092621289372715042114174611788784060447263417751743979116270062616646180422589994098245888952252492030560695458464972788480445185688067585494907657945939619981639265344593809336096963516434921043135447748711696151395301523513422514232057209782813171946120578808789272668615711687375601005442571799422412172651918216404586153445620151232224034501923720702408637696102691677645934802121456067955116657803373291881914390281695618644190864809081968301597027228487084820132964368472862364929438989698750219983509489711342459930234207139115531917892942982562714759562641718361693819012595603099671018054530306539490796537763525996140952691128062414091676875446320489854288376218251594259350930748840771319668265724542084227034878440638881552730554533728418512506959737098266144778458036671889614631853917055515535721519890593454747565028297427534848007012851780358989701648278301139234986897030174775697051561228431504141595595381321129056751377802411158585040949018788508241339908416247016078010871323124987779673234349405200423926839951517569529180321855982558850414792356390604733018693944194179456192682221732688494818933299211865350408868888251176849293433012077398830916858409913958617558105379944735778206449264534126471965244747446096465386226518703972266391700369829477679330144092341804959412866916232102855005333433369686289972055104004003786007851393821741399497000859655404940898743148645969532323444985825827648708747406672565394040729722689093244543273569093081307946334742429926211846284058489369181573212962964721060731430195474956459009284465412942569802749763668838057447222875369264124449991594520020106255439273298583702055343634309300874144473820399714516267623343464129728417999601164387548528272301462277631633618931096071483116878892043274599955209176310882057895639269700687501528877659256854123854678703623699242348367706672511951583458806067103225917552032499839786340482063439132299581300652249587690029902066062340872704775669866084232063461793511105499399783886067191811940591471560066998894950067525453573258332591322160945197903699879219422348478430957079521091500956828494450733985380890815462092389026761907993088749137639481996329662133427413407434552330065684724061585544179992139616964100174515457110273563925661365278092533380189576100771575237878304592204288336476576418313645251094318258334628196979532839028191309088264354813604457588272159797838895780028047637177738217862007600076996981739499861565914521530813125223044721857414376875722584305306146828363798313211904598046194583351812806316608427473740667604284663990825571726342479009223599250190120912776372280667996519561476234597255021273784462398856040035243092931990245446293409200439205822719120222556646139746710339938632391850153824495188587045957686561837702565372365874824515316240401608060897834886963065717953175001378342210061449355518293003302908151450107428523986672771010977821109773251724960973150877084827810953646110074791380125014130123632845963228883351977966133918191177086088579073738017546157274329950215534052669797437384684373661087230949352365319851601297252325716857198305304444718697675985818436003862818549076918894291905464442332625982585387757638881211539127114893566065420882183225140845354426927248107013177758687716788737825957248912539829894956822557467156691300926896890553331235881477097260835656156062151514182755248292637865190276966745959615552041595289861931216477916050462601682107045477856593985501702941978238785047152896272361119346169756260989372542028432194097049575732094332901441694374287384636337785977974159392672325030441003033765609281538695981793024684911846421481712054781817441480408906168207556077523024947070726479764937334263563920212962958383978915800268414823758140759083918235416956896321872338347490651254762940083338601830174279670634525909871194771814048108930040640066008553575964372103471088824989609774874765503194849034242928394611698027310307994233595541954679318565547044420555475770390114716800789602124582791894569295180872743028035931678971660728009463296862134177967126045026683856246468897873904914938246200025955939691641529451195125352948692379799721119854552593683846598716765301222990388526228923396775704201490430580796443770421658455771064631788410958327858919851454784122867583901324588676820534669726117413627486461841322193831410075402181979236869657912565190458120179339320536114676380005965317406160190008748430483288751155998619875863088310164412296594857017809816488347657643821202502639365526650259622394468469046931738814005836453679404907610130863924720720578323341207104106620370486338161204152706209497213563006802907503895414927642868220305443382457788407897397196153606693659299157411422270158263367691713408875265605652561367046305297084295590753122634123158154898871654979546652056244844793446846256578757419548983937425041093807588978418637970966528626980270612273942580838307281334543332146205894627078776736211346828762381538247067421431802174318483337660488128166957944732654787636191537730660887840792973124610290463949591387411299214210783094117069123209099447299607215686262597252542093017371353405768271864163959385651998844005533752689705170456213119195342792833373154274993637353465572018086652002222547897958739041151714382101859874785543854708371987707207317581973887338202888963048956699399972463384379509455889646353385996672437865050122960103404903399610254721728171950136577850065617403554900991076891173350431781795143918055980457600498023929585089340797414712764358948683694534514917505090393968899772020031606650103551749234026423059424973453058269638744122281497643283803677851421998846929535251520417299126749839699494712955795808690123132536185171216767401412579758743798670988450660470053542102230572502705603782530200694721210271741041669431402146177530754005053172028086041988036621519637003530999145228738751569251939655184921893482158325779783340929832114460536725219823838461012479514392783886274328748102216003888216915369623568094639589229096312739067340148740493645300898748451306826808816299153063540664533360025127121316022913576957029364661210642450878334315178421384499791110580639548245198218435892563137614165362761354430392273274580867928747543960926907622815556027795307061432850278257538648553898320545850885211083964024627465620627271681755396704552397882608824086073392809268273019550450238288824406549095985204357382785860408914112799684091004005394257787193043644161912550865400117149032365916942650076558807691938269076855326612802854025620908076078644583764876453404465693850728646357331310850198027750369663909550233090091833763724195010059198083577423462731917578834432267458810988317145276912342771418369833587954717916858789270682994958500699250974911202596425019655262975984829706521909081921685425542039219172754129887828148862435407553503896725346122455956062344396959087173295466563827706234171792620660653493083434120502865916524836900171673947820005138162778785559393296547740120750796016236220532513096097601269376470039116578751423594056355641030422110803778541732163444158098199908937860676136814651796136327849117972354110273910906195513185065996523698571692715474430072772441665089649046883695685357689216002999206441857832764872672647741686115062859455246666546994881930628438837707386054021794009628083168863306169070875981520359138851715307467286633090520843084851882046283388717314686415997223899581377264110924156318517191264561418814159811459805210056470262887569217039824332224268319311799764307732367839478957652590440860158208217972088414633043681476721901704675161223849048128555401663034316784229222156024819291435948596269364213530469450817753518424775941779221823735959702257739733281305447356701828354074220968014896759163619538633251493806502803148911740661629942175568165125545612267579482491111909548944237929073708980966721192765074001125778780909646838541910613395788374060377857986207101927648908133993799394780226373683842117095587464254603349985996679841510010929654217786351145487860904413065795220413997178273471232261665423946091654029221465961616985366723847573708137759002758762879535744663119955159478984022632898805618214645889325363209012757750289846649563880570275503907058421816980124727912417812584604652879493801111326275013655283679150991683226936832946144355883187874919853711860526295070047026722012144121908843176085593862532420803182378833466472741404346551241986825912386257922287602617177223164017808072015467066360574999915349016884665754662453675785210956672919640484400872684193994386100408329176903501400461400699918691807266463803658384614370418563340162876730214373759017801167474619158620515547300158347760980801065182740870807493257036492432076811170449270536188731436576843062776371007966159644978295251917781625566253959296492905601438736510129488806396516128854867750196115319496487796563003916580563731791115441001515144688454559573696103828728907978894563337549813062840857695534348053221774334559392896920907243326146293773231407450575969676299279176026502555703525251549002535423258461311639554137457849527515529331226214627983603365303781787097826551942074021816830407413989953643985047947588169768024408321491984318272899621596488809832272041393104093783127798931990431661500006439008290903935325071502445270730042313509621653785892524929385789546416847942748656172174456604185523190079913416047834319745555328279978317661958815567545043323448248788384454153041286436324264190698443396313879574127822959572156271309021075806995758374696859355754764323801168462346465241109076264017304316518198315723511890723341337882051273787912674031546201314207833633543712535270325691005757300949315912549771238154231405911122030675544093248975882140822096251200109624087710397423850742665944532290100961326737276649434733952437432245636039655670761157492050352737880109698196357254180213738513580327011199008368735983998124180616657686293679368740056153826661835967745247802376186713681391761931761878002992156577833575160161672982100075345767327270727431714090563017632407130412651618704063510713949824772135991652147716060002051866822261005607355805021028443981051922904326161967599226237999743285475326991341960446264671471010574085692149428792870708709439816719361079859961940171948930913492290502857674459743153653693993060720707995301385582314451748918590066886835544415128755665142068448710435242722429575649565540286949546458852658688016766494366333904191528352045995430798673104534563851536155200748013474644267595893623541916699370577879102490850660391475530636033493388480627260996977879892032521050859281381143986097259511256423980801912837749150278675656536416904421153544739550438073455491553147292708289434428117609890770048838517001953712066854974752556098714275842576455433854788410439720487112169312877265084539596278167420343519855718274185690637088374932615409116330338753891723782601829252818191655488936274138340666803925429582364873685187549266340946220591373746950791996972415131307862549551246934951808214559368056832400899730012005011385822166090670317496748144134640179143301341452932826836778829312448622440769269215219832476886288636704713043406347874538792232451353145673355939779649760824653569490228642582227715076070641408849811675254373067974211468683114132928621406548163515343060040021279556494722253332805059073888040482149025521016279059932572693496289403095102535037367541219964183965369510103448130459796906138784142578876299738150521830690528235650006894018868661812931319129745561399644118498613412917854465242147815133286178438005792032504423909246918205442534440916758590378662718290850229927424170467257701312493763077768201583359787029586753199461634297224822345301908142670032313181937976335555129079906007291441573743768958426637691924923269134876655199222128119489059097597725552645203720614000215178797923052868944111608407575826629838843098065546377572042019225850013356006804581628891159745696845859011306446542724024115947907682324597328626632237425591548623848087034637145924098710436998688605716388861816335165867829473898270966319101259084031337646436893409697351343517561225377197428720820353172638786386813912722394393858582027795646823051406883027576215615704395383398525984608409608883470021724632582109848578932504307907489345812185586527992295961229281130798320202573739032725256418866000814747337362747879705295883442560062454281784026457619792888036549588770529996274847787077630858202179449824686413183823094756328499997100852111103014274344796429591887929833937462335404767668092286121482235731591064352030548970645647978537165331340486917800684255601625203038233667272087288385519149642215240449954026940720942210669077791267948755732687077716912116737868566526149061512048173548691621784581017967865710159525324261379318699735070403649904714182484454865627610926926521683924648595843020240401764781218578937052685716718866042840302046390697078100589032261173157864683553386227609175785608091757352598133244993476253116192378356326495427133225113142770942630033495928518172439736503681795711821375485874877019644364936250005292443724606288426651648696635350736245667796781568380772015131820188220965839991447106494499090626825261093924690223801242084773973689064135967203107600210192466246428663310571908951528032673545415133606081049318813328551505269957027210795039101125444537069087136146819040467588959434629736348642891969733997343630347463042351038198849457681076123096213843812150416828832356119091563364360335681161463155086227761962918999429477998397903754685709571779707159383860756649575610858151993218781405374201898213066349645934972590831780825461737400738700725615302266641673635396491509159348776368886660363309573107717617923183272401229772805021767389718825967658134959713817081188004280142692434768826170929881044578917955333425140163477372261835829595218756825316142103232021034037812267562376859055141493187088302720962996085103782318665151827612692825030736608969756820686689610671780572393646644395460400172275741675047685856245714475216636336923460786065578878548230357060282924528935133632594805107999507865729021853838689305620550965543472054652117453003388555083497501612541128984016710706187755038251137297934807291230252560553064882555907494348323044373832027375772386562620989478707568448428858882164621492405229026188059955400537248692858244183095853425027510590604577098840086826317997632017912812980828024669012592835893887571881988520159116920691354276406930751989671713880516270915590538583737093161560199696597658730271819430938024050651791153496804781573958309410254910205186122079923489050904185035719276326779661768037456937697324455234418659180687454734683581787068180502341841301844666923876938164393772341905083158606846376346163945173644957001870991683368250906098290825244918195243146079960666781813444064460030482532413936522768756314765986448018709109522958403248077214523378261982109329923913982130319572869937480807043124928027447569952995617934306968010143368886637225577323349270161964938359063658910545019523679311147528997139210939693454452839240768020239788394418092800261684460553878335116476589480144063637788220885408937639737269149659011254101669790457506393355581948456642497786956654246796375879585289130579601780364447719329512523723665754999682407596029005762558272175817678330737802734175927495200387259771409918914694213942085303106982299669092635027717832546224525226480177823614078080267361081278801433893156284556661220866595046716978076373198883486015067734425693895717774797841632246862352545739154895295220531392538265029382084327477526401743071365445516436080378195720362434662876071967379786628754612810950530643743147944253381219105003352074673305322349509676152524286857981268999487059975912537404834692817900548148412579863921845451984199889577048376781858857150268167890892540465017402990566954740388426691057420366715539739894448035416017001408481815034087325486386496051572412502434674216940781167269642056611303067739840973742100669051538694005693542974038902303982347435245514596417276638066059899721242763228870033113348081298034366097067554850480017233577476894231127508202971067749492502390853440829399499132868975656844990976696238433077717159842070418409574941913054709405838260038735657837093027687578598209030426246827612692362008011757252213243803171556708915563359424660593061787304869765685112281523797834926029618349445534712405849678396719052992241190263957585950336096966076828316069166110885817110756320570636497867507069580128346412783691904477848030702476263064547853791481753991511919381457895742812875591712557965267203099325666356773108081893635012287075769012155411022064577285919919860390583717173483338911274277207000500331490426068742864961583770631812572947101584104453868424498664413602166570348899459353739468487953300777696943612367271884986313784018975688360644382219979650871817140839565683143137480267907345885015682641936494065386378649123950074364800730976483256974043984884212142534458915839892586043128965117816400997838263107673959691694208398965083167038255226068403764515942031030687264665685506424795251435469313372646311560413772505940493375576699515424984366475260740164419474028355577176967975439537815909477526163696945924222062983437594173015106558300829986699444219914574756915811242246481163792324968222580669388470784393867691823062575531811975913399352493581619924630714679970872412190189592659858862540549866129356831246338063770883644010718584430185233424472888011287291831300062535430172835278767830092109748369082499721542126789188466818776363571015844377821672654012986528135149941589187344828412800213698027796996809487653164070657882308276537562932443041749861414938724880395883101751173046583230220666097024561084840656518098259668571113710375683453052077260800370760237170106399289605863990430745537746948894241346332929588344833922666084876050222182770272264204970595421138866529958403012202979110167047643003142115494531730629096421957609684270119872989333295179095823801780861080477572425941080728490031860372692360819442325651721271815370136344530072079994516395627005681563900100958621073744268922576811054280622703454385174403245130976201313552119994563709229929151417195641166907845440750597069627992261505239552529056860796631767088528514110077597100884264832650500345834840775249883769584905679994724993046185672211713092455474083133150385554735732978794075479691988219297451421148845610771221003853253402390074960971932964426389008848334818601514138399428601603353810567573313434671087534290764823348067468526013567542241874894443432852081275872911727269914433332557060962750934508711956888630110058152244734096092146342351937319119616160555939059241237317397224675862590244323553510421794559111698403962241484700395071748231002637397088118784439177255045748412688835939490838177956385325957538226545921745281958358320161047959180759688729381405175663664105491871191076872765295478425279094365415081527546835136551881677762919346718648631263359861857977641507919104954715543574054471500564853683888621786501611587961565538504983300761987501662927805052301564502300175667235188425318530558390399959574387117533404307078765778459590439026311127038656852566825856474969134862840933720547622349596574137184031018008470028888656094132011401401450188448137403420380688361836153979290591759909987561518228376387172026353213010216722024319942055391147691756219318616120265068180582652022589750637023578284503956638597422670328179474926914019940199178245007235156824618972065817774421169407201453005678158384777703430497554314221327993207974279480823965265596618175329143602246694345316065552078446619636221053840162790301916600938748286869785214025912517621974452548219471255131183648880735452211233735190699623087851109986892620063518543762845890606352948546722715376535018006680253790689739209336011664685319432973681834396211129914394139424409701182324530748438255817507893087980990546390073021253955824539667673912321186709642422042942837847505158330499336219255168938872638808354724115256006478794184773196788210542302781283505721352884506122595678364451420501997658692692454049810490019916490794802385610460399507873424737673249311748676895264960007380944214449026774194154234138790529875824052996167009415949168822597294349239268305260263634503823124113718558282627569891222235773850893751897780965488113822134071780543142630098571253024680883321241701431779886787881892458069645425344419590474926646806921734440548625432380150830726310253927590885613150830926283989697314025605299167940797665818071969984835367899261691011581977990994286130607024132195261657409013420444014501400901892364722494748880789706448051280738474054233034217883401593028367958516881008831522035517199377976217093040284306408283074641447499459640624516533616039873306162944824267163014025018657329070796088715772714598297476410055581875230600044596501040979124757414500117383929731900037302605091290843438619958954862413036051934204129187551121189653820545328745095718348529590759486171437741231783642941758133355243584448418901530261163266998853872290312258648723210826457328107801204040673122738575711801366751258434934843287499944246257217585036835739333888411639546913969139396636090616448424637535405480653408949246152549976291840246228478626668932389836330165977477836353067048249288715277536795079382764293328809069507255968018998009450419314239235598489905679167825208663094907581261636204695629913391528873860317146384087688379167285193325554091227624088088834056895546358922130054568763347086053207900382509732518790478515466256618573947676949614312340128726042371394003517774940814389621093459084687764274735845525800364979887622405125087850507150627525401191999661584418223321228377613536111162319375405028837202310653092541572786109648057832987085540985271158683574764822080085863026194658084820381423739206085934320747924335936395363402765639792363671184243366259065819281773193304511230791862456307736046216305684320193853693698793359595998853531908010375098136260271762843424807843123472512879332941847220175648261466760193318575136403632733506475933489770515211979353249386466553423727034425184799859148914559887785402776324383536702829983186909618262739122785616883165126865288458565274951308938713545605895687710512668137726326019839005150085715338362783556067369175468852603383981646863380081258842846119886875394611072138656291664254592427784013539682468376574054818836889241953175088579474786337859244210723230482053349282515304101972709944320117945671132526267935087030844234354092946606207030425123621894990321624495221815878180299528753687828975031738184819624876660466018613449458130867074666235074984933508426808787883087610325908738306866460778947599829642992594279246655966176430227648296300206908206989927318465284724015494179464997812916411000912631430502664845843260417471429414555816718747150932160427213050043720308919164431719998849120255649919709351054767764244258750965058017182117953053775616605949626919419498129351251986806526823187717222810123035365785690265068643213198854576395365524946980430310192025960623850229632319935117751123936587303878640877881765740408569166585159642333333523733731939175820730381107620610817761081807416516292976412854206531995984313265931194002955829496792446667940144348658982650437320669428213106047875701846682933986698218917453864432844135385427133942433981689854670929560783850781478715585384205973724243584884750171879877696448909954374105413159635745193080739105006013959616464400188298927412325961071650335625394645207814149120133865319925021755881401551324957554281430266992432396589146854563243085487028670001659419813290611648836307280648317139696035512954980532807676041523976523604351164494698312942796090266550955815031319319439354461248636790025607244197569151302923336232433874504926016670534141351245123947236973397232463519791184284886428481250936280774373650742714115198647006298342847418767279840313150319432740605630834610425153395843586357818902215587296908946643684651513565087052326974361243921506122774323095659431830954368092426248575919668975719033730687058515626204533144419568658474354037952447121815044112978196174692686961394944682320244968571977741664340317893708574402246733110199969840317003387864339136554537453215821875080902739101675171199608257666659996613815986508678695702681830202522473160114246842786822160384582872422286543429504948213236554570775385523344063622278940940253226670979090331577929861915562132691934590911170034404114266998253525836373572907608800219105313126017591139390625629068151088888374455953429443926118540171527015703284229684566292892465255770902022111026836778388547831420705398495278208441755223202854917225149469132735916433144173564967189141769948238085638495240617754132085662767318271975138903029309150921724805387957521780040199103087570361587980086037729289710334817875748056681663178708447114247757835380582902369313304263737442790464788845708787194431629652034098832077209621310287969963781303746219388209215543355946477253345930534036549871541031641657662428221043715053266408754229486271537263520370730915764859628481705778984549836116028420235542947899771395170863194980539290169946118749948343298374784071688011592420078839955328604998712583916300473802844247371321524675146500041443889578892719860784917834697638152895245029986954097960976493359079553962668559377390649971574702075200249251888585969173859063010782263768065302762210062684966767144876220911666148422732315993772112299092742813674514734596999087003730392038707728841452095749097338379720501046990168026547889320607937013617869127837867460876743664867536344434432410596503012049839776607946725027664818594410381012241195421633549689789734763220556877230278461709008052088288241592248048191076750146874781718226260719010625071508642225731158393203217289647381694527967623365219336353728752398867346722516925599290387684828359766631578503714439335200512772907254731344321070436253464485303511523536932755016473480103777477887264970895572652298805973889627658390207224287264808415557435098213770676444325362432255222583614642141146622727717051530335250656829494848966178979857071125474553919682189972034010636076007031803282930791991274640219475198008168158399566130359254624459042313154177137316260582694780297454895277329236199957436653399824546712945089996846334870678677312624502538467486354317964769222644535766702072016942385349682210643191363660940026153963252302398411791142852910014556072997765891872925231910389566062194689005171072241235729932290062638195089252080690459977386455982754298274272640543187012321909585467036059562562621256789667680103640389333723609155986914481652136909720137230229128101392166826387048836044204015999441306970116057473995574306984804405477921786447903658137088821537662688863579778695563612323368764263767179498210927233951166425600784975810738706986807891613239848948366278676272196797480505074813687755503137782596886884792066056943802974622512223424991152348693711554391693366632642049205797796462726615612716781209529966686595949954303397660106609902216084985066520830342565260956263189424615543310272901359076457104948365735278902166051479442962284502113144224309478934945376142017783169407313857184018909610299225560695858521939503328260429676589837624540907969601019083276672762033328755235958010944512062184301101060209610537624441007304436354194820884313410721596644164820961946888006173602848281843908745906257773250281426522813496225830369908160763901617525877387361722791470975493955795793607075028086436570851504154275624031194795349192741275007182554508477922920320834018218963365133233962005734571727991558464868620797402881234242413436696374699817878540201175822353574754641455927455191028734234854884616811838506600058052767670117650466908038497262145471949539738011748105057694388462490003037761629478252678132548423846847442464330598283612499486145497524527592958534553576594190992754648913148254138146162143837662770687455691263258830850849580124953492290589641152784677325128580654636813357876599092489458444322659103436594434837864706137818673226521223271620293793638965146986464923683842951851664035278109400155912613395192008137096813745729092485930710503120085484389071475003369697237088988708678035921452490058184864476436691124221318405941899585620913730261728898863548769215293355015847412144643204840457473952411499671204319207432880996089214578144436914590655121173260361228231937417998718593999810793582292906352638817555702679626072575737017702776287302699180164608830881995826991568884148787221938125501654714710593968902572527395453083213457585296705547359883395700085827136991626926408823301639840953158049207404012501325506224351690122227238895388858435420266062780873888679617532143761408045700337614818678019919121458491309244874682598141569535882069313674147145928527580841280927574612092167796996280752960739376599268190685258163809412256953062204321281412001513240409385648707188382959633760666328264460154082178898535019596026579045019398213911989483472285848014462403255425197961823627085775528981371199906657049419349026684520832073236403812024912120048677944289331214886726048123055592740474773002670795518407988991144989267114515111060625411587174157854686108457566703108633264446379104837615445038668046988876902917958440093475886482980646931818091216468894979349638661562141359092396231519888027893448945996319448569725715100100213150014783857405478057765879346510897354260533233838680516682401697942957668405504745522436722615326083052969328031706581502402600521530997279382202142891840964645021672566408084713175693717816523554259705670776780897826312871822352607648887121647803913835827104917595688528003096985905498272199866980824728489686596262952766439089076575095621274381725103529273869810575087503445075356619324829222581581037977803178860579145101531118382858359889910420504227436156728145460717507112812812424980659417091779978314467071811954638080690020912989050178015619798982836479330154301782165826226583012609041453038024860691032224042075379490131265285831029260078086703721139471102757293246215766593350284597669909149809965073079829333711315981727300059528924960648794120771065409509509579107398713190532479129929138248149021341282831661622337064554089332547219378500169255642793945544081957983555666647169980833640445144421731403402370483606498630322227619642545192226076116555202279958341666614000354618960869530047228950570017713544073453434608331315325498989875507782368606611598449740626523994924432167602434450705210168903580011692600702271232640691518519426682937831578172668163514129036338301390101865130771214500194184434490600091168588584946659029215060402509832175123568962281931713188098080221125496623132520289507506590416461540661039169807336709287429412629325623317649492943179567736623785235872879624640491835883119694062535502867857341331084803229578118720231776851976430529136469932519142058528746723630130834598582945148323296961618598757085020539213105799101781756653239459142856428809561558886413705228492052390699833974702726398942095155092884888302502457837359084702724278657369596798959800439122690482342901061349317419338574699514086789281531908791620188209554045226487337470122808633312497582353542155568516062839495988540190654934239753271916676497271257487298618909758545488605531130806939042951598323743149020503604546700764504721371837448181984633729225649106469364879845290945226703630553574997757903408927492472412391895136497371895979099185219012923249192096208405942951971042959962032971155919636658345475557472982253319768757491024993236938326498498051615077705912673365717849553695952184626140888653555844474122440020909318869465588329916069259164050540967786097332817194376396482475312051594736900232012006321423731047406755027585349186535832735086677869129042709564001796478812442297718747864685929251909784143725664419161342794040499146381605953814663545533195837997498200258305688767213931731403956631658230624676612152521504800604860833003873316850677827752269240657686991902539378125727107976057555607722267618486757585000520305840045157068568539740430490214565659655142275919328830071867405237263243494188829026106287958454008835096625468139864908385625680399553971119477552599984252061039854288943294990169608357348374931194917320177525461464681648873336507252983284709415642995336389280088772524999137753045448574548203907840619123867467198030121711496395170532468862185744627840947119071318531333656527231708714044161173288344992422094366185820473138842434090500397737188409918703604908180684944110131735434543979932852302160072219261042712064765512122431419272302268793065268210384590705318243764253833547657093835718509770342765309852241758817276386011306122050257819184420148274792870267237397587144412033243585050408462503319384967822410126610852917631707493516332750392416583047760505316152963600294372452668346689618813484267505570801950908311110781275825954045902522844685553302168577220997983855333567912672211529278034486229716513993269052888653779299652469508118370861349630915985832762244571904552989318831483585523548305016949437431766068230686843798240794686318042279628638972582650010718695207389599525462063534323018285407069162046898361831842830617015439958921140246133404274996745428274953717069771281541319526218815308017192860980966787956339161443022658651491264948183600797999451080066377726560737861708300124645992260805507010796725554210378784680150907456774143162853350951368978243036015852612470308433280766852497948347571670088878206741105600882959529404299560400020142278701766251574158857594184881667690481392459331837103222051435385944406780043993188421941514220251007489997039507986505820601712721471706762835923664825252610482588553203012376069206885430666189252322610818512698975557345004651582242219228679988986635729952275211388151680235182007930068139505991605426774541489904155165899811940827481413777160342842550949471026290112821143548151631179748048210645036250464856987814073902263854562839503174315065178882201123903044157269487455425811727419735683138470935536240348120420880783802062168709211359719911161402500658720450500794682207577827692962007452470077951509867608639790935792589130600691851594126418782295479045283257326428705785293101837409443294316023153499963661168943068862193570211380535901496394672730863356236680714119305719295577892236979427007496713499222504831164668089776963221434661235201599054636430000074940144254894874674137825682094596621708314292529615338112297168236805262067771571120291238462240097938569372097934311967055795273758549103187210803754348619154032461477537893235272822733464023297139451528881099998231406527340723339744227107965874410596533376145481505801015546370619777828140230694215320388115739816418768606966284457654194265345265690769552799980778802131972873621407453021200901560162157875484277766257674955328332931629976707124282843300749489492424756392826569664591660713515418057918435627989140612668178475153667765014199877576165978015755630031491207321012214202392329960248387562540294280582244372790896584109661331906475674552473117956935322815308783627381149493566806043262321931003166441774680746974506471992073887230065258812082927276610132654502699948361660540947942849744073559807386285135335130169567901015637151548367367065802266377120490242740065628141103344496895414894304153689768806030600180091290389900942005418816620303327525620142142674372778806849183018709713448505469840375141653319801384727712959728435677481482774108827481341207627522171786449692261718070233661531916064525589112369545757035130517821264889799685494038371976411639225876362746433477373926669438696110671333597885940698726051436978288987094687869299733954708387862407315091401416452050069186170798324501886281930212611724084774781916215124202949921537412322205898682281906039076647480960953272538118880319807336051456367757598593573619031274277869538260647702420321726403483730063932905791719998052339692642433456314163539971202164511017192349069616052182134657566249828490804253924267995910582234764484036482586089558106623328730404537769947319514724812953430890482405379643755285998277762242797382002008511433582287698021813169010322524217634609880679672949304132184513240462241103505794399570992118115383984736336222162876184587148190021333026165986672285470234664197750577134172590140617524543042001139425628516461405266248538719957058227606723483203524525918041876066844768672282941686068534106032588656900448871705294128319061445316185185627201627483768989451408575351417812697419886258756656044195710139059633355660592472408087143679543568367089738316289968390172179474546366245640927902597736023848176608804340353119995865704171925378379590989053497457696440353302068017882628624095375575241353204720442313457839391171390378995626733524808585569034497901025987832287811512300998689992470249795720757918733297724688980975292759079007159169038966315909062802365683731307700424131568910038303200410764502862914725842150628790383623752116590995742847772542997019415808620269861704086702324805210811141735372965927186138190860071526847052422126608703174869606129860655774844687167781279066999120139692568207699456082660265597978362244136350225678232048222953152093777193912352978424361112112572081417193051606257069547119834562470905718798549029002976028208915057475357444273016884924646391108334205177678555248650794761275539204485696473188016440305995528242322905677173614202275600283099619792910634828361631146829933021752387862895869465475175769656721166727061109223176221131519585263472870650953837597909213795708894551266480084694246253403685504862200054432699071877640909239891624908031586383759513517859015530299438893723093607247203219290486201875824654847190022300676543660586202270242505946763937205107651586947742210660857873192612550938215024174995561057609209970047957615389687376919460480396474635765786635535633572253974892079009502186303557723404117230633419359130139724806715156763134989336453707645022684734543075030815157028573266716226113428206008047457300128433482277456564067834678167760783667364586643358906938969781113375231480439745476648018038294573077949615907046998445339566635727598659315827804217004737970516402706497661462632234437439942606897568161924216522855059210069442698977040508433645010378878680567102785828537677916369697959951283480741428587896987617076257113458745313698001807526232429370144588907825857663472518401458876862019723652306126469944043118060740608080534145364300219176194417401868261658754059783159936317470821758741626101934120665616328658489862813065752526737535282093791467515481852301620900313519929957270770954402095703971682240399332622818463819032482819408768067669586943805701710628331600917486451896021078833498749035455811780711198241472996633237877257467644221070337195421694761672733218177514747550004741990539698013639605372790745113262837508623409619498717444848438671027446746764120003147663221839211571544379782296808072940605546359596493590938609111388294068606607539616303317923561912850663888209582085808904299420642300263078945005701102581588375328237279375453909111576727133287877796538420962156003205799136461697996170981221155950227378446392036063798211480158900356594927149291068183228516878513396185298192966643912231600249592057072566660056378936180745435976922905048927665353284764805065058672913325393550602437694969373662396154018059136655943004632301315765037093962866760993381158688528068422991028701068167419487080026491732012558312065320679549469827187760395344184095889694174924022239531877226571297069846734095658224447038508165581634611334377512537572719983852823791847081482872905811064613695020567523933836072936905797515792220427144653363976413942874711020006672001962586836824970414417419459518917541722865189724858223710098120571011693923487167233357137928679484077070845033678214195285060242785421395950269740794312067349099116985938879213530527892853161780090304781839410226547200407391446608615994702622847104442690754045440885520912674601526058082291877146677750883674467996777844073674812692491266961332296932585299274865634188919785340609364079977537974381132516069203193938743701944049859113640223501210664731937309535622480594418534227160665896843378869116066091399435672235539986537600938557774300293959896758324815290820474504694598003537508467580938490185255358834405610203800391096245228753311964229870813186787904359019088001780962410083459717230132581648730105044786792280334564570359724408455559388236638674083864351708582319053396669968419882790035011480410648034703230024991443239788491901300744822087089951911918089564043028918423687466605385825149446890769442216047810793454322340791055752092346794763812227488703040524904695023978465482226375786222989950767027229163149074951622075333948686407863418702781429329833024157971145185254195224847004886996454119531270952466750386565255819870642864335985943705798197982992651574485795856257507139148913731980071652989899686330047796011336467395568853719637879802709171156298607986840774204624955779726069201009303609025164303502837345936494497222721193613696471104363892092849422403297499781436077614554029672855942245442140284059184449576128315344811112314400147061510587806599465835164032111260687522898060836183278023254995828616581695767170628334997484717791372031567555620844547528851555138535937990049424675444716181708586344559218097221365156579002436743222417863556361380533756506116571398835952348173531430124574083853286282488085534410414559927145257555644805893389535629936451983513292950741639906585038834075775248479191242644506493936387361658725765037972549267895518707075403103526080607671541591354125655084825003461601830574316095996835915279917762275218951749863369900006133274967633670201863932255251503764497841076944843746414652289372937095726228106764253999189452365956992730617579847731818139570867655600451741301184412932367049577786401042246859355118224676007715502728329652672287898901300839561079045448822291036522172290801491293944629238629077916050519363996422734405020897755832282694508057622597363553879745577543072390602958577146013378559579563118855195056808790897178349647529845364809245081839860938126027883526037957302963701362511952001750156743207557081497702880019192283669463383067810793673858601168384672860783413769785746773526133050926817410137434764715448689529167304858775604807064685269849151910810784520100584073374318655986935846921629110809809225681200988064853422466667885463634635599681509226581349825811305549127594294478628896665762075330181981877705084678714628914548723391609796237884195983151528482025526945722940640238764495613728326589809759902907189015690575094089338213447937133213289168617258628321945207136014749795013251110831610279443728369535140820194600811881798198221825184430236997397942062180866603525275149915184772791090149958964187575301508733909916398180385472854103167661580561378101355275147823730422179127405434070156330347051881450568562319045429053740225667319574528418872687116672041187493369242342308226020433220314034625251747584920394650374050648306386172721177563998195934555553827871067017368994446462961206240366998473764724313148223596170186267716979963906435961893648950477591730525375802922575430981423493229208565852427681314560684964980226880435764479683844012145754067999261112844558702808184149383094281604208957000876664538033549933094353032062001389352671078685308340399591360073285725335373703869112273387214001890715658185681269422348833462944277227582851475636116753453198781731791074241814924443178464912320702311992773668505969696518203353242824942309128114610640109863970117754836090325673252702486375805330228522139726857482592735952355176228422329718370018871508729269141773206645592227183043138346297199849722265561952561014755094630625243430491796822494099429997388204212773987710694619946202511072828373634819963519725732724277125079975935818430519257176462322358064852589011124161611407754719230499690049149724115094243861722566974352091839418234839494327312303311012121496513543687029522014588340112686549505748064939324182095687562020251774458812397526288020644129106516400680559037435851915934213500803734228017629779324296201327761310025970903730984594996714025058571995886052677832472308970586349728725609103498397546582086564472321358900789188964588728939735152786628120162920962435503943674948218998319683279012485385160873216374097438586835339336268445914738556374997907508290122422682955382630044727767239395848837220007305306140883014993562702063137846790759009612100942765898802941016271019591039862079260818624329069412911162825071833622811881415115740061853530712410217123270549861976980571371653157716428107435618406727799514551110996224027062375395992422147045676300786264199647210442287431554580148643433162524300869919515178988131285395375178277871951558676325337830670928466954986094950785920484101483082307999985289587948026598311635762000866905702848555747916612841985810129765852360697622487151212277449671119586196399581906112735540196936466193065507979587613084719648034037572461867221616421440368867326474807888846393514821155935804813148296165679646558772252957277466370896594734790312938682433204461019054563847484144879029229091725328829347644062788260623267740300440445404310469908185246667948970529029706079425106161566925071087400275816038121323113831012420022334447989050303957255283169557378601515972089987156745107102357795906467480198448312262934770406396802754556539806635469728292274961210219470321854112341729351309026290609192272286789973254725537192665081544261860873035735197681497596603731531880504807106827179051569604048017645257778348027971718392651818219465032188791559874090891640935443992480001780429736900510572571978976380918174059775608949550310381913766233273899333788075717825123910868500023068540212151767976537122500324916410667220728055873963106841701733545144850492088698945177167856399293327556058539112671151534063884039839312667388198015896455134005733370458991719102000899241734695901126764485115677973874490697416908988430835984247248049940261932086636739599882577421872280058813380962168200507322332740204683707429842393635973429836756582279532970618145850016562792462108396926468145164487072228869833962309978537833314766569165426603860036538939378233977732847439986679284848116377152379543437928192096061177608480218902828962285891324837794351516898515981726143388487124716345224100513068215587673850933335280705495787030187184886543749598559713507754254401030578019429311346168901249920021805815171538240553902104156351341099306288382303817512732017740291559368468015537562329412158510291207981392984090248498515244499128756614947792951509382820067061616812776906092337525921442182911722830380439495388273432046570847801338216702373479128987550134662817982109063722031950044527644595337386925953339612199520627762378756197318484509885133476564530609747474937171748349948839027282364719492479156308469668852439281286859453365079713301142034073696801919634237738203174185145081329186090279173000931227088044376957913923461539984230693196225714133555987403454594753316414968606342524261058076477774781286221853172571988395068133036712447657455879677108498966211065632531502304765847815484282121975905708240264191874452512174415425239008433208094819252161099757965706418047013116762351307061877674549732673883331159964133232594354218610595273256570510090257287596051163314421788610956325022630262896578437904818026498039242467814009568549111822462506145202935600429557705588733378537977289248379420367045078892715008415576828296263090692641048209758363343418324868054465514917789122118426085051366451443709635445033760773128627944600541642346076156714679397274670305053770867765851519092538219027868272021912247290299388236008901906973649278882526666797699848702827749373178453597613209681892535493195212282110535502929165196104065349477043557121390845900231555072551096064238602836453360711686713140956133902570310528786238071118157642368081343546227991019557721897215917808544233835212885553085959606955347780557962087034793871941192175300975089858993719063463696108210565914365644248680980082773174644236144237667379892428897181974185415549913302309381232911373965497001805313441811535249401105804742086257039532259383602419282862678491420893280854600274547609440443969002656895321664607190313157612759652790921674336420409979418693602644290877141884276977241617844646209717907727000014564173768607013326079424934824687404807879906888394644672989497969049785851320235040003294804334917269411660869577537488325621697198495310226425446688232440924036171909338464645757301890968820457879862570556065169690644226905717217658786205977437620440901810945490136378300193866207153726408484262898457717930447426501053775640138444649086896318473249517592110882966107662391817683395011386372838786666525997828659536324251059896034571930904676273865517403850405448706246672495081789351334809027257546993699132951444577872988621820728552204714296878154493223765874845521482171324139873036547725193314084491974939735811839703823830450404196185783970395384768561101033376491776990269625959101575957407810905243456627159687488762334603688759974696135658116665902349488971401879609902484051229097265607953865773274319846010386830245851656992878698280104205706355535766517959093426819021546569780255086793457604109123987980755068118762961623970341272294046205720780404494964928679188497534643169490743108697506594342697433317277645745122947707087526662893943739687964996833015102154268411506829618377954670743571108634526305624730946721805307929849207188638489163452369313912207161223600745681566865049737591846194140740033779505823359460025549647764900758414949985730548396575176620040211940877148893150631963610765432024045359075073599476509123217702811953345638472264129127481822158871696336307738571917949553581821725158059587443415199592060048233450294878566307066834862071851971702004217996613979402208024996365004628437480942574061317436323057796947287752702797630924678511827507345902542166336167557666016091070472004950095751778537129258066329303128211605716892443413152986391628932713439659728781266393995508214895272072224307286391894967098445782818579486110516837837096996941650722126498355945141433955190868229959866600255805534842921301454580069552234572572577367334591702832110298287038945268984272777177036909995888868062544686006514249211094805664567257244057673320436406193905398690591740642306375116681621814800325696321130688865173713174184630266763359643400748675803581300742493358865092408097271856763898215491200726545183193158779365576177038840994317207703743381770091282177713856398329809250550234136955773398227169628665977075132190201374021539837872784387588952372923153514103223248111520889864994669008280286346531283769745253224194534200481607106767728839478337873862837955874789807005892652894685291992639133184263722918834078886275753906936287490177348325662638142909668886687199200824296670842842133212617018856254893021171185234776395872322273865933937687424609814590743222588957885563588653207970177247310342165639978173761254946472961767220695248257971052472335044704588918255815434223153087293771836395521150761975485609886080138728061422777647875531435248867586013707450308014931478797903218277845253859269232289140144195239205741332955209542590816523281312873356532123213396457259878404221286543979837064448256713957914243426413867132644685635220697568922095003349939459889363275090431560059474132245584540496825736157472002535670320962248075942890785436658058183089982843809792322505203036831240148343920964532228676256884507847895571063382294432619576394651312908383352276535469074406665742477526647436039191502141648386351256849457349041979857491314799798420797705567654630547731831643759293253033015356636842801542871585179827633882122155630267181188958223977318417328987437511322427091421738478563436386574744757382311478528972766971530391361408257599953977796319909865811113622172305304217478885911914657640535873986857465540914551764815496243104579283723857701256792317522219464126253159504094304761017372405229516045252455814228930891984321968490016297031002356788018712326370107265765938310162225091033222566565023566911527799767213736321753100667154879216216882462609044542345565321991041559608209830597702139086711820682575543242979029364228930206756135747192106125018702557104751580843468435349412918171974845764328918593490854317298381874398929025072457062426155108181102664825327329681820463941378110201623268029713074429603465805484976507160500796433157127546043842003478671441881057460156648231818635402826761523312470624329908409175347059149100491664827700253947353004083709892693638383715406550090404528377450024373969088964853863476795284229799493001304138455066808327805843534828898881207345189561898638169803144379039771986745745473933676123127814053342222985362393807073506246264309773634753190856599149055086331728707417340523625868196039946942360758739160876686391259701415641639417148626057510210669595986577580040511221068094658156070658735393893176483434758631685681703480907133281930905262992832270316516025174436690354830482905380876783610778214241056035460217275536277459165127334344570750979705328487775899224088144473552686196612226774661154609599479748783640660393697204927946896978359852477698020978216109300180882324188480950505630807267698554737256689317130455587842570994085573460041387467874489077133743945727239703666992700827190819606988537454763961373552454290918300279484351522604213673421135572070844593422722624314555589990698901057484026273306027086244221846126134334049360865085621818458210440781732119399973430049022095932521915732993331106750113966890670796453579999052342431635692721355807489709821668802054824052646410597796807090524490873732583187068128690976581781774884757031732676945458161218554305797102230337965250272256225432828436415371450004484242440773256873629094340980064829759074833999474310627214899033523967943821757211830080816670523352809482773891702011361635726433272274971486027990107870116457205230053984011245649030319907752514526604221688732652438598730505580395990827448947872643611639383514446748490208278275415387164920169864481024373198012951969931736891121639581343798936433960632500969392578113891988373569240987167915437522862644019852926328918377952633833103643245766281649932881544525744795614316910479419242752733559854669014027170357547344099274472306470020930785593613099779510088753521382155399027892615230766789071702910694362855476529754262804992537014313728471784374477875430497204054629532386003082542083876875457966173688317376799336595470650414638231252576984314260414866356173005913749566269227212801180883152548527602805606435362627796041048634672220658330459888131338795564140739109840357862138312645054800936556002294993869118554876321744216956656127470080619624250625421895988363456722886268127673524417851851902604435832791297045728986260339212058051890529238449183597479327386824319358513467434738939916450015245769602920031741923681075822360486653553124942826394632530845147784962113294095803552624393084578743642597664674198007505703785338488696986298836789008385373356052149169540765691391557116881124754468603526048911660923922348097614102258292146720318026981748678373748454921868774509113172618462206947609825099939694034325589250978616083906973655348918859651664376629788309718876525503639520337283621678008131433321815582676603498845430492936544037825678483897307642145256848624950492774806558180911382216923811333979291699623712951483771886300563497817774812385003587607834343237250650225784300379178337970914143408131412261685193362373064222171493458163782365953498743180150123349069393514617908666519286423613253293751960542026064856947514221817944930485301624987405790632871285905425574082171539270767271413756977329134672962427886918085606513324562451172062068906485829955885588128764718416924681112375358841210615428233645840188123852510337284897888692246243315020075729493011338361294901949827456332274931718917081042865457451446357012703778699897919980884191401078680435462812987490956862449171980628917760773762672936987143459775899781215322233325617864382170093159796168374384038877284382277727403212122531054302045411583337013571632794839017288479511127509455222572696034231041873012231678234298012892430443767873488707141261898767336377822501480615603499232024057670913482751070470865876587915896370330444226923015659929265315346313731764636637355117840316703588618861368391098354993306857230373261689386784039880312990659500005727174768833764379381462638240640799899296054412794040620738749441368046417938564724143495206986754587438363641589967342670785265026224527467589658892191459905397660029948923336220652407394661827690953663816182409076262132713202810479376013123396465217775217433362176281088510004187257174321240949287795373182277199128914310930175922274781946024004813629755818814242941379220121327407752901080576672638205219489654735088031546104519597657781681721084156338829169838115626897930918410617710369765148857076695100902794178067745199071229112841998566587960177290061633285044311225447151524009884328465895346032842764961849041003755293961758967990917625939217312369680668738332974410923016602329710344327496020106698610875461496013066029801980537187307796638272951262742726935399234552714709442539235565785735308288099183921584153717057418965718849175313726787462770146879715100565032159674763287278260766035265786807392348529726255121336583549612694595310536955265466352457340320814566910957196117879863506100463232433535392709232484653259730146921335339624215226017266074779294060408367237279103364063520126139974699581815054119877748918119738308481496534269294869973450489548592322031891427847422332453861137156350111906203018434236887083584911346049866099658719006074173063512112919231063860217926215434143629179855162563303488616322860305497256914748673391049856310534610867461375653827767547616126715472775813843947445879791566834208276007742774914739656696032815177972970711783026321741191403269066518722581163860419829661212480652332105467519901966869439227490068884392826041924252559646948880481445015935824763799939192926710993994820221497549560916576838759955837291147641891844894467927815932621717196949975146576810641202141922209008870705927214905377928617835503001187888966097170479587064191297756371506473516419601776805540239788377766274060801925981951783124227888712739172320445217147833886382199889752528461599440359590022591091230203964852863006974320642958518998453801280062341894075878255411107253465983403803869059744753666957725033136237436079070443234331447796426189541533705708523725086649981793416480545162167689774101469938204997545968791216524024217199235087456571319977933263384510999912428674994877741439657179981196938640047723103211614179880778203346705319612003200552325840765470478058616501651489070899577335881980908952220339988338381553903279066608809910964409715195555011041011265827427281270202978370057689365494912653650243350340647813937345265441157399388013001879871082457934310777124739403264781217172802045169948827172768890768592039075097290321115414099553859545108897969882570460323726636790477329158885552036287719154440699194771659215973447359841136797622784725317858384817556249723112492228439730707235481674993678514176307396355116828836944306520411268894692242565778935958328544983671718959420878864752644971986876885406049332110897657980092103532538713241844555956851661375899078985102521978995483277949707532153717905118861006120460911881131914571579312027084105519611531871866835635170499481438791820667619866384563963345430104709076353787408466704269786150326960505348108334239793234091527860175019993784472484279287402071976666016865729544577148592849277959262151860110982791264940683111360913377164567829769792619543326887366771075150924999987478306090635331913871430343249133068935693297190272934499840609660148474372057769631384258357130605415633566239204821839069822607171700600517562527943355256928020838916794495929293780988370029015707952628120160832101284640507048357080573205655912864053705755071715780428731330878581192929035946863490323087008692428703195717051593517414022775900538556341300811442086068114115097901068063891847538373135701996185526795635477908612991803629880035377735117742002861959172224001306057529046307755704401875809844426852253682371523460901082726701368912898113828243577445448243861368376024683778443087389855755304468415130729736535852115374080320561065613602443575275916343124811140551000374237037235265497708182802761976682686135690555415492023195295347490910314358703614724345256880123407925988576900192515419008635658784137020827042697061274639038166292633393533073997206262085531066557254632031128601439829767196672009533482713461980654658375502296809547620095041477613216252959833566264338896451672917944424037555891584781349482366351294141225935075924386836585869383875391414791991135887391971611532853474399902985298480211701911150570638264677575312074141203027085623274396050664048850274437388218146808917230496211373964432791519001193229877635997155807260446466235863703318092296407369561156726941239959410947247516787403665814510967624136391183478505137116931526285848221016123801430475434398008932009364037780402526504303265858883474763879635255121619879568576562930272588541866762186300889770678927935218249269267401524002150190630417938654815292172916284339210419628894456773979123722399726141421525240121370569482385341153663341958371315589351408704376744117921561076240329798207598750026905209134749810655737929517950873936232252132190737331928843831611594273187590149772483338681832764055583256967391682897253942519206738866202041947956959459834187193724489663607322487351231256961308835795863495066932239353683365310889648442414277333800221729703895821795215348811836642251933380926375999406383246909968793745767840084292082797675475224795423712783903024389440539890579276969191912650773524736355508006886611384545601880630313885120496851515808493444869128081149531507726124940152805821821079065458885596701146612844499121066675273212020828374396608373445612280779748188567439074387708997194824681550560056392418617064909689088800489429533582797000084294730866546572595900967511267179950052395325111509668600539323858064407946010266485901354520291648984797716239496178750019218153472779884355807969121288741378676756696226600803564998469703642192752073077199946580274784577234390006092409346027710443831768253892256623669874710090392854663076106303480099480073465403924360263879106158661227231796488199955284338839399082830077011156589427958565435465809883041179258978412836731583153428011215720893143267768656766279628045187371791095434614296927790852807321480442803382026216146900060415205909520737119204485095415831321504048340535962097386507832603373012032415530619418353221298054502020439162666947832846029039116193068544669220962404363213587922901044202551895568645595327054871799704734043725655769725837830280787046598968039916319041192880871068514418297594141319363788467569350056819833317258937752203555076875829342489347127868826356561828422906857424175681857708733024853024200143595702272618749368607378442239704642767147180420583823753797139887231588660896291743957619196252686862518257692010564295246520169039460865581065021837850796170267531384300159740455372376173548095663808571259808716787983031709815947072702660575777365535433354236907743112554606054042029205295984076145898576048404233820987420190584025944517721368359358666917512031714639132365878173500708529917887980137639396839245560371377456433276376881251638554133302994758660547953016442450816664489129290101458354105207416734839015911564782990595733019329393563134737481386409596106216035593461440992755468210466961995751426355947929236060263144579490990178063149500510232206998882763910568717525444659420114740879153625530359523754299316589966864619248709154467278947551096085433555629649681067271979512354529858661220387951433885008404968741100636448607048569756998201717719335533720521601255953684589021630242266164021124989597072966285952023494824091710838453218927956457612970197814062958459994547051123717109355060253903926122198898373150061598206542829339565362918028213073343760085009165804119414468723913708105231475807679028910716555323025289290947773708144457022437045546152627806366184235686010208075619387232383583039592342588298249598053491207385821301512043863798156932142769951006531986465347214233932427337813705900294191558566043431782908601613003857104053885219371728700056953526303875854125807519794514610862135177195070216204792243570214468883965427109982583353100510450762821684070803418622831610251157525403580668578453982808597139511324114733573597359584020225520393702483738014734994502136941170924905686635643553982559283980073651164481901260271081863654453321527307373007550014738238447076538752048637099828203934783468945212053330492461084228560707916309635774965497724553810704215650654493537357815872535915195440029366018240980446133674572850333407693789035487943060833082708227051295935405738243249374498259643158055968431222400004819330699715701867033865059841300308490487679631476502669338717581444236386585796114269737858452589443813714279575874489779196935233311796009591098059177466558809203610410395073200784125623871739068491934679694457968684121906252005790968299529582216774475984165008363603277121959351739771622620131332517069234918420381761467641055341169573931806493248998042942955657243949221396171369129003866668810094908019788026645321937072929152607241188950106978869202501308112138027504680229921739217750866146898042751553327742958879509984104297211363119952222037505965317223203783486844332373649491158477596873338745606934045554177806414215589734178256690323813560068757065114862932188184538035452471617380477877508709517037917301167262076803688148562922764895629279146864457891067893357095804294986176604006381931358719744941575485829239180085799706784274917107423716560255791631260327586203266333700447946325227932738621624111680940926769530205261043666756002082785893059852063323940496809857973065878631282126325407475809021772283367474322453172491647305109481517061895968559825897147169734996800390986626416881929240165610399071618662779836231283578207987217157558899479968318623229893872336323806502139567923319201203961209289588605509036146078125274345074583889244343791700675695604857066674010857308875428891181268215114883969448640115828104372201554310885690605716529987184391694533860339348908210291790625334604999016265058250772049760371132269429769178159223940710810128600645872150674665351462610148867149909524132630057674485885330759702155997923606309258624705046737953484638512814067533719651918996860677761317443702931638154207673420198797504287425624960076954634079527387053810635549961433465652441592412471179786407352847245279832338913114855564467286797710999232036260291820235686737652057796056286859394223476599868792089664041578788625251799965455046428500521451312661337848051171879952355157660666062984930384252036834585123733623600840065635694896932326978205768241990598167068398692091793334229329633637899718033229046990276648655577650602900806522718515097285217703966064618785690389732264351218727265912555940828669954137743081999648073280590891198955528145594820009195899871982218586846690092195474866497134492424754176139781770979132789640973234859395483263900166097841164964294363329089082792166321803348274162080569068446708509489690636444166440735211431819188544954587947207582351334825610546593242105457380727856562145293241697644773032340353251991655150133860342177749403702596023973222415786612785507201474530472908282386708054012731517047332554574540958230998359647251700217621731733533207960995815500180606141231087026179629813551163220004428604315674654752479918980286294618619067508129686325835118287688102149402379360624762529045217192520198558918741888072088267732714642365058094286616944189135466637418678116751173241793064068364420678480877513334191801917088980742391398312376640009267298566311954163699511329452111897451407967746368006455287123393388174620986410144280179356966959202957746837351423105748807456330668816211124208965884363184753600274266079573205858322793233843443185416878011671821240613560154327649525455377325071968846627437242989917680400256177898862438829941624335396340697304923405915590964013452843665217022735768270843748007808389461040662563745974454717900939887578435430273302921000484885801026135412063193770255913404446121053155117915658148599741278498015653910392467814315271654739148248256314654121980583238306782414412055002190023346738998047732256337404927718930231372591069713032634411842630653933481354373704732208695023861687466646943080920282489152810240487599367319379479201901522588282673807777932975726339799096221814734538008093760827762608838024473200698661855348352972529568115456532512345292581142357200972777135726540324618151972640328444083728613220880550261115239963354645078310677159926041439808918070555879867003310747301006336475255294797078674212586001681581375800833569850982126169093792417910759568950732142392621154434362385953107680294281938808140608525120367487700165173521905408829030620599118684119986995675315252596540731332046805094986966450163784836609120354782544413724799882508100568998035151888835727126385626202915046395947929081241162908801044030375995445383219460692328173446404287100397997341471031549813029295355925096066714208841519310394664212719133723185269416130099429247880694359742101687525467903196281439412421997705111493310774990909323062515018668143693482679525878561654728307615815094589832426048450141888550915227068554975008715950815351189246787966850516313824237041893911340361844920420479859873671179710098964150503048959091105838707742000413665114374871417570661562528110332947059211506809424690982271190399839024782262902628793854139758752929551406547027298645261377259462464066394810655842862265164217814364782629135884650223938155540732227965849329632570919057707491006678745051144947096774302296673063958086392542438721716032178930332552762041758422988258790538666127340668254226629715166327175649339689014966150892448444627071028482450019280809810612622489049093042833031234862039927363202050174036332090263207094525465859916303629649505835418409329771186532051679835141383659837266844678395051890016969968111276482741296662390726339731131152507784449855756861643910164448446852456755172769572221604177818716578334816134212393704229602894269045090547735030947219283018052866524898838375029911023381109279638268563748176843579631692796895010120951695809371688924087057708021890176529133900565312529553566772695403309050727656890940485905767029734690337653005310047717113240216693512045514514078312102819217984281376148537291188013198966127931647768985130954895819229971600264859735134696879583567690086972434649557845375509528345545362845151665539550971966603423834692372276088107016987055384191247797708918912938536028711652375591046586477273453536270570661127407455871716989077837091973768865259988338839220592339428203101209279324692624392757383268550872035536323232901034997828926687294900681800976071690049448319422346965265389074803818402262952734362916446675146733137167847715571635601285994458612000011274909859460330081604184385232158275814892598429347766327598823592175842000073698052005423032797699982461941601035897482228855783790356951139518342424071288355868284524601007613351925437631532536316328003228983306027233487184495004968347839976824964484924035570221574651435629345246210142553175718727327228685128233820846201355703659640011030710866939573716714467918635435735816997534799428044273379474142224370661846763564411140851701700809981337648851563127328212550414769958458277941636314902461981547568151967086640656313396478641747579739829900495618926555488821439608742164865388382378994492714594787524314422536521747534699765802341288703401284516039680279404138609057911931577569150614962286430965727398201453415441714187065226451476310371928373774850070679737625517880688603758672490927624135684974829846552257338458170918775396821918349892153689539460941776075370395212546965252584190464108483206377738687065742246283014582479940999963103583889938542948219451289227210126735625561914013512671212880532731303031732717382064458109369510533715455097149780365725590965872466963698355787290651656038424395829400439000927778091061768875607347425619786449910741638180312862493290190075250763924752268612643219524378657529578544167000937284263251738374205028215065828728597771870608380352073835603561464720269407044734204726234684402245245022652779538887137838834568153811113757836921874258502484766789935503248962166884429933635061116923245187694120909698753483622286452299784562900041127838266577130489452348370472283494152827979217004652287091806738471673092968047809136238964913428152972353679250863943851740532913928042922373425200885862691406476415431237119738266097668228150874514501050310877822300468086388008559561748597531920939876552528934918585270627663717484914952711570325641005008591992044396247851330664791444203013886873538797069424359171414036810449791270134777566326484612267275748067967553996464922625256963018259346284290099124026871784303198775332945285301244468477436495281036903619276795484414555568922118282916797424572444055836149089409630845967311605386523765800191556243993643610729409110562025626080712040635203631846565303890296771286447710639808950922635554994706412892759762564325951424822520710417649056424213957367887059730508682988891433647848960373109092004285643014866910967354104003412910376230357487322623991698965063625300690268450624347629135415692304875345700688224689076550824614925274908774843070532482562009416213616040585970361079656117991074492039384744034099618462455296225076215976933740388028175444541841024493954330512839373570517733398102333551286143242566479309055568187627384191693957232766954661256055778384997742274916198866691153956179367127168852545184345241188310852019016860585945028893583311908443866068007036664774165885084597477955226943939063163154656118556031983736974989373586253548152622749796008167902727644487532242725808369992813513513584570662124453630407135758621963988817450261801933601611439981679604492419829678929054936059516798690236060294258863208007930948665461049343702648559455736767942454712764347050650082548547303337876153695807673998955812223804041834941437385537446274941897417505867674483362550736400978719711093545454776259068103540755498806390816636594278191372939522679143512375723477120233872001869262115608263549542398218783818884807654505426336188232424172912876614040210741136523341024467271749829907826994077383225035806660324583747904611394355180498597617299791385960757619162413534485529490601115611713115468276621443425367534156846829669654983492946038507199501351640941750382244843311847813605021882450059758729440393036248196981942040057365382491558936615126012294810155917117139152058807527887722913697149949757161928781435320950938753022609736658896257589899087534877789778885516743029036241454637839341235404860760324094764102230330539321549095046321377230316239336640645959104176873804501466831306334952294456287627849755427398036025705624937816037400620762501578882066416934290330072403055244781776263270652137129162449833017803241131249888189566120528568424096986933790388840067593121894422104959793893990105503317737457974820846071835558581000188822306874655963999828132964766654949459750612335113376063782107472810300751832224562768900497209215817555174000975321525643506101465676717164521240263792025407593739522301201806444515166894729200717789987016286444269978080104642076581367920094253129044491987777742552587489947679921546666774497059947884042676405814257848567650421068138616137641852178698279198717645311809893559949440960787070514040539219126589070377101111010890299179503286637663172700920633196029388975514909739637410121318634609135331443662336725018113259967894358895263127040450826223889684352199137229824813826612392146840742253472423346875420765097010890449340155252845325736466584277749275911901427035796197520691756013629308681931495107885279154233995596819511635227389709314915518603397544037351752111042073486075253687165990513294529297590598938365696352002307709904049346278805645993297888175462540601567754909208363791057682331594698516154743212036901482983200927501400875193880140198866532167126374313701576250575714224308632090610606554811386813275449165435414825338584594166292284868629335503514268064247218393523313502768469507559167508426378162611965521958503337574656952258079214279683173991080216316925623131255676474717582971567690154021467118829153134467779869125706403963850961128908915680190530167033671840000111790554438207620832077819409989548859460829588079099608074580493721057237245869260750707965579506101026852400505907666380540473660456748998429931496360651698513121936402878305362775874487209881539500138485153473186118454107325051369358229667112985652122874645597776269912818287632280238662089880692317919431957141607809801427364956086387083138623667309813799395875171112884339651254025385597520176975015365571173142068716541433658741483752980061507514479395209476523709089282539267215139109546633900124473518523618987721613144098432922215089797897587319220388777664337832905481925004867842200192733996249267784120333766663462071401319615004222692120770895723735055977725047765570505226651938839586261684809536632460686469381508677078555282535135693655501746981534796301775770989223553902467160432572766340776511785589198557376593177433758413710357155578702917345087595236065573470526938116693617486195355031670740294719719544986893781280707270124446554438889596305876751128635282656125121816116209409869985375701629443798007477820431332508916512978653496544115716151603424199538593955476970032259904254323931287581007318069640838745748233922918425515134798496534035525424354546136227148117583094551001596052341694249584042279145297762940508278977788247401613871119421976077370387077961985544123890053125502113067279733218274645946994468579954858358755084713893810890268767842823436306802736466998574017235886899486741486921921802638878639576715341025168332953674504160808525514441142733365943102156003798301805378812455475130011613334805287603675991961982537640111538494731776601904166004131532358310048818323905649849733329313247060750142898793574469647240431575336669511354569837987273668130832483242108450613802429864622681204508072409333442191830867133109411944713302208593965414066015407098703362996518176694038787112781834595062736356661403269680925695122433807363595572251388072575518387503440078382944433753639289300502786985356492284726344859102787455052976552085837614331838207736958467882873202419641083540863500657056775249874678730847286022019054588463941868212351035879320890348969131260297946482392956336918221000488345967782574478162181752434123286927341373134219894476623234404862086225051867769885816880925199658899222348376567516907932402336962572257089437281817671727293009819969056038581281515821693846909615863407383604673605914726143836299859014060058853678143547806136983437359239901346116589762241422745278864180273759877355139736120713559666786988641611096361019459313472230812137821879562050968381411739193349572328799757886429515628811396766235676167449668035118360633199360137528789003572451381608330904626220998697078044496241241360973865517230299694436663698002108519592979510959972104475897966347392159426690019279740647228403394251378351490809801532464138229941567581112043183608087938500380438998226087686696578153977199337629954913886632564851335562587273269571578403705773321389134812972580389605893614926844489590343199488897443272434840876325905529315133542302794073084360580244646311170906328415991954163335581046371129367945368727549734101898153545571802881112572904578058070217970013234947883178242830662882148474407050400494431623069273978810990164750847038286633539516040520910130579749090109946242388421593317309974389886451331575837746233991701628336798782091075751599358654580424009335919593836652612518645964342536550993519278555312326092688322911439083799738353525171389243121162019049188842840051444474431759719648190142488877120411392301424195744791528575265375362606344981981021936830792399313092007454246822970326139102598681825468126865781843931734362378330492819779796804241289622412617796282021525357003271585202930852004672938330945471210707661895522207317032202576323525427245958034531995272378092873898157638848266726699900391136582422650317244929494788140355847125435204382823671710988986757824045377956413377782790803555122264169638825783144060146567922612449545740904240035311169431456762664693411221733025551626906457493203809869961760827984123625932183990019649645826306476167256786369070033014666494777019532801213880593735083708917557406913704395159669592523925377923313751714487530631790809435534663909217325899007038173060929637159125594733849828459248369084990188324429217881607497966418219387865468928983247168279785846850655016137686604268284044024593821171323966098911460961011530868763993419319776070467657269969168995886494435726223870739358271022951331216178392863924869000830791279268325377477309055297982850597288736156310986393239791013555042389617343868825676302263901708800754269666520966888873016482678441081091082952471973681298284115444602127926749800774751777435800505519695265951341556342440596893564359504849700079576395018692123566416609126878653387104506126172092350868105920547918667009040443624214710644036540713069969357309503356664797464378314369699466457215972509918097539624180843038493880537550927450928171685892878096657637648896061499142801859429623276858923608177510719953240408345076200058959690913160164193135329594741851493312514410323349773674302254091944214827908563305082260452866760254042242409125747769368501287098195393368245181838284633818572169650363178404309404921418655133142846991820256534372653241664266164839098996176462812473352413284982256164446846491611497612142541541475810751830044746436538983105983898471186181571156028631645920125231396656215289923151535072234687870555891730205280073651723657703469656230051099949639606297461992211857171396156169815045606318411739825763384479880414418113039095874048875355116969610913371312203712851050226753549215633809364598624789717446945342909392749605949073601359696727462799120707440756136246820762333674812635178558225275385323499269022577286599481003819010649738068825234147454441241134475294490535193813805057658116564523895287123415632088347096591154224569031702451276182654033043491039949041789274814558185818076480572303306902172382762297489521189358441604046069215204631295130098817409769725779760374936021849069708784615942018814250289617821596451952704752528987132277852899385172962307773506309686237477615840897082574888327606512768200201808460459467332624527686681385140229038655838276289092823717220659020347436319218139514336068062907373117965451553777142901097891586027816828620748938387794373229376456771053274786002870499774217427774422208793056733411217323709798034920477258165617269326543118582359457532715379852843683137745106534233807318021344896932387910484898716535872999223604692073310229174107497344858690756975483879421801890266128977251882725994215921550167983201716703993237937429437364298261406615591277391895453945243328468067183006093014280608655973206795812414354773729689816843731339271470569551381904846819994582223675397132578732375034137522148165632912985965278484110519676933563787778654398195770599997571374986165860311864224320320890313707462392678741323568026362003256738079442523339798356075982952874771273762002924558373868167670977489368829799898361418223357096143064621168372460044305440104387132107374674408200328725796195492826939572692860113880214498461409504175966683166012871887807433968238249899744271406063594935481400275256105979501775648000107008550895218569650383127733419154870430091973472070170760298236076962128908922525959092091415158745983795559449224450903654416195514135225691526871904875041180790793034623290848503850905010067054798596090706150157276468392652343307758857836128457645361393275403463460133207442258394419872397679826678383136663668239258398182078100871359720132328957095222224727343412170335977367404304478738367652312707945149369967858647332161606867342862084025756929054121285360391804379879933819582464715880103177661360248527934092849949076806549288002536801536634756062872956203423359483391240390612332941866962007191055971552478111144535186092812340866956118249508109760766881073683725055917427300396909575649066722677892497587119936961588534119393567675948363259986846750082993393129950574279671279766471382789674540082210286386384820948196870526180231085051735581913518180055281336740057655360019822044004786510115091819739918650261602698766060487155982526040128137226656346979093311757037297708894659532203432429059673126299550327969336104830970942378010745036936825662857816898712516268616211644597274352117916008845727767956483773133083624504457629178537827294467607293968104791027112825120070161346007871100873761581798307803555389579987954497426002193385101026018320511897206762226842233231384848147255542294231995678470802327105782500025047682427378834084311934122068287839314496399529357351831230972797291999124553060158965547654726805628242181744002123717081279583224601989570004172742262442085223917152038475417359673280018348025279921803572349622814023905550073684651152503026478753432833355901701345997043644936690834355119685773298967220080108102548408276979101634126058279768113790137069333773955487722864622300584928758541376292073850479686621533447979791115876015124979843224220260272619902677469073371740826344335662489823077748514605922033520997982019674782294879635790046219777629119456976091121294929886025578346300083570404056270705373057139806470929282742074495695320780923561934459726306372544390754639513117170316301368848602283410724791412268407793067046301816420241509214956642198422133804536295369982611492984137373126450287089926727965548707763192648105191722249882939821853058694398260016105476140449779503028891571216367122461844679066710136671060367753580804583367161180812635702273744042395285986540023750925299485275315925820597742460466567863580603938846135116910971050207342970887564756268351048343097684832302337786077931382579626291690063460152852240617724181147825618770126663540916544920988691533802004718346271996118113893158681255950905332048868267052119081683564226846959279550394058696282155650194382010655551947779355296129228506934838173509779684876677077533120980459408095867353413920436227395430919264682762635835850009953867142306285129915202587228030472693842391571725007935668635107669381794340993715174325679591945247059361340892172675940610383593935896428027284100188375152153679355443034287131793648518613601305855696451252816262595143689874478434840277034529681508517672639908627123752170820355543330245115204709315935334548968364689057170751461320341314286825545763661363757446879141567319069249366791472732042492255646842573089368869943530949592263180514238121531902093619131272418937671763131777568737423667716008386669109298919286271106673597946390450110741513605530067326028913146709961194751327158247794444833938486604110192061268165141818824271593177439119181657462904270905352382727586660927775977638446260185169124097636346137807146051884012399575410840292394089001762066165213161504289813072696694209847566260402295398897761937122768801406549431193684065285763360740009621457574892938711478063431028253789194817321130067260520327234816793356184037145487089294151695797986432489375633627123662559867850161963573846147177952080115244750871571174080911096137793623754802580740428457099487513043884047074050257946122798661095998499451571283162592502998578681755841161491052053406804284826402916912864694089996296292690513901137559451864257781020199939902431264233793595796083935765906911421761595536841744595911868942762628824954383374364649145513993764347259395563337458095201837044206359043963701333342486645704238763747872897669112645039357406545739309458194531407276038714703433609880244781429718472560383354542182210469739974696671138624722846183301738241060699695322870485254732445819018482687258507244636482354932362955144960880012495973562459797242975682986223815919628932363744841067693453642284024977202290120635852836169718074477946356155114320051656112846481985773988665534253471289648402052039753449430274533039616312267809430816827256681687140710015796624180817167403573783910173692573719413215009391949906221940700210601657788380035943114451590151694250163490524161861504618223137689681072075576615441194981322276870576173448524547068334542127954471070078970255169427451710494953741325661075162166164044851099520201792706099731051516925668569161423676415664868881961353777246414954607315523516797821891751257840599936534653525372587646354353552484533614706128148434252061205911582391196094142156821203104468498310495647733254967533193182871723996889149516864092676954860410784150160163334711427823964360831357738708938598567023796806014061240627951069387239397085230969678710736130982563266776438038213813906332983606909946601074216797767098951965194757901858320633580191478854396985209744715737166215142551739240111968989262800083459428182034337816573256023213583181273168662824160951777844227077111984364084308074020013831147799308404474146324380788573922538619585342655015370799547945036918413478044496299089128181912385110914373797179221512796297636447742765569360509733515617058413144392247113590066351028575859159873483837470804643860616644958357496086201733762689215007782326619915998640094256641756244553699169994821051878322848983221753078812585687349963279123984286854904498540136038517915755629144871497440585900634506877088837743683865838219590506636323561391775202351008728185123117674645705264924606975298838136506995797821952556159173557661907857769552826259188132970552722366387380686017598339508036650419196040859979708172263643573427368161216357039230923218300193578165584903365769914934921121230959670838775555958084788276309217947236472477665844608860048654565899307547641164740522162511495258608887733650436020754567220355771517462954699720496500601040970203706197326834285622620273684931514042188274572894097832373218796610407187388712859503669123274320643901032682055285208513887053456217213574935083000018888881954849744534125534501012543666196200926172882793723178109976831747685996415006309793157572964081504632499293516357964165920679427937748659898683422542966098541186797685065572773592035420744476914324892818290646632389279879655181276714677936438116930999449567471502183190922781333911696180725576192096396493042037703933894378031924949400595151669385170815249949665448814195937371417779152730701074657107333043866820662700891951062033167076729282567049604762610653010931326470593144185613679055362227887540184622374245341045196746860494168660958978224413745862100372076951927916663488552079947793390108851456345513353755175520007896231859227800521383996695545663002814417410928849979000184052186248290302319503526141227247497774558190772664672035520443056981150067552007294702740321392795279979751036377751328847374425650564729578585026054736711986076911742045673835891811083481914564945107655029612722426875538364730629205488967501691334746221674801332803476563882717388895191800720789871614289764115788830549855404138555555634946040301404562299608840980485931680798847389178257254344943180384673649059385646823097031649130891573992096879990948880922924375494880433278713403012247737290961963159569944919245430583988580515140726775802119181281220708873777295377051420016310543785163113701427720850547816364428757944561449009518493441473953681145282156862975738134261088954330632397849245444537748380008681722606030677690030647537215086564487685877628378995544523126045350800057748248923048477634308359221125642884894527965724139765285854098923831028976652263115487434073373148241946240035578187027263776840642543461443294530144418436519402357419069534195740586216428928230682030691680019466338450602213613829288640611061027087397981928054818973049655118495822165006958909247724888381776908644429870744702117497634479680857462617636176433541490152053997644959112059340857213121187640128403724318999647803602352042125243730355915359627203847653037684099774708432364659026427282801081121199342712632653144984178150655380993101989879612396599095031050011403901117733400886544039270004279698997317415636081919794167322553314476637971171649626874320097294890145356647925670195405357020869466215350852374547052824953859983616994877172965529000670516220539809514664624962183504175415484031975275746279893822679358348262897044456513729923753165825108112689152331713252535662855350976584409939320328912502036582755318449755964865387822858940962807592064133935422007126967806952499503721881709054710570886843281260830283353633062346463894751769042587366527024164630457734825432603905706478229188483251117467770049492647116684015981652530883737905543474983420595607004307921725245006249182861226818736945314023921080901137193332903355317850820139068924575644821553306038461809530723662742057701728318819715085626921969849324150519342630329027161470991689855315236384049285396324841910285418525506736440957280526225017738320955598477453845993474507779098846697449662119894457670931059157254250188774448776320285868054227720297782730470680708579472162939802800201059222452624409126210526061162693974026270564455910287901577338116554044738433170112385385727645895171211592764985193546945068942636592117171323911228039381196875251736904246751499113039454200922690849116464461423245922787707665226602543549055138811705396721166668112575140549593980602943592433518787359898325143373642484951832063210380472345692774315706512644153593016761743701704613083754591865924895415663171593698288040177775501570147159998913659247568710420641963854874785923219981786686891098927636597727413898058278031085439961368969181954834883974265027261394907044401049934731367285590831348841702661508555673480537779763304080666763800495069918763243519047418797818404653867299309179418587513134025244724409844428682605546385896298610548046107300542172196170039059022128174909487789109546283163716815384556022685777949439632095907147682754842100479792008976343053409958827760092808474456950884882815992525024444030091457641446422898539783539230861534625145718206720342832620447524363916078309138603416393726884658975180814399663619947986944588442226880021730701232301774763815316900727293334721616150558511654803465049146451920503152418467402207146492526070318759217522792778502112623012383908773462610244532144266123011840464311366115953958891008846201552385443661758462940271943455446921815768974103964382845679229559243497074999306532357683418053486630055846588344808484716654747171520209623014794528391484136368217162894157595673348193091646306417869505617673811052182505969126274395253774586040224625634876954701431717971927981027555117236305844821097503031337307194130324693508911246307225183763910397805054090559904499574497325519082471802751042842810816079719907571531232363822945669225406307873978396384463706138897049114324193821395830728780329482436636548443588466609010884151209002157046679578920704326747704090272683088459180396910810172543557834070689793365565528795468172509649031636324173177026819848630285448767396130564745684627654483214717007413219807745622724964607154670364594354303997685347412433835337700111011353631942962815665629621253954686739283666193525153561970618190767750459432227982528534043423952933933717073316764051485072300129587875976068430836751188145763492728553172384758773294922164435660444865575686164665412955371636654754665434675924076448498851361458495433666660480525959024672169695647329602498100061896350922412025498367998945525725818675500547468984480857434718084824585875989581375661015761331001712145780731910986045747052126522108424022392241606314676160135363211914995970290031354079308012334093846617103411243891623969235001162377100115063436711068685730991636111127300815493683359102137126509483851146149116743552484772011418780159856283460171049571227975466833838971504724184708270115044410555453183694634144399914399942658837932951592206930619822321788260246502675001986872399001833721103858937114568524736848031210561722321801015841948874530929109650288373308930181111335699602014328911043562021076815041195193562060551528788274999642903567051320265653492784421348587624835984100819539793378392513298547939675779016500053909964826256950391112902457731889818644433287306159839172240569515129653831607300039673927773057701902183126636335120187067649573209957720607039403593150183201824559116262843956005069339597839700964263610011321342535469515018414446323809683878338640579875910915794172502430583983555971660703556745380592382430760995104065620820087545794428599909367869417831617091908362533027158182887540151459471088841677708683147503441437286666842138200974812447283741709613259353329416126604998136592474909003458548392947758381207291302299196286411252731993985117714929882734002748743991540068918422951464285784207448597579030797196208389352921706271397168738239503263969343548075044189247767354258045027938201188306781270594086101397890494318814091295017390930342469157654227664424395406877417466997864033251469987602217645738980071580060299133849795949065280647128105605073126591548233660860972053949697645606231500386241899217335557975985880723345828712089050179542984810884443770571448761359139035144356821585146374343866009305420568909599739981887882194808508513954144909026681395495348326967569660034825839497751906655997928180922729344718513046697261509918739034012921495274556059548789056135803194349958862945341141146037641748925579955244215804982326618952409110335361887202076176731056251430588653703237092664629785858019237023562795953041854193578685363462881754319388629235975519556192845754992433525807977376241442700029143751375293981888411162409023832485708734945479751437923085631015216849931475501670189170590543479091964361925553222982119514656525180688300133498664659427230528458392790953030355556958971604868590665736478857693303901213207141336540779644657801400850155701896523946187816214308006014613527771536925954842535526636401533044639253317122561400413178106616720721884860636737834693834463885892086142241650136518316250554148364245100600148736055941685657466161212111096048377697446731259624319686872402798781338034242590438058743730509834678530027511730323138584924127407153434263729653160379073422228060704731568023217686755083696410944037051769177174046865820450952736128183168414518136899061816084862227834394296071088224877914889367332843335887765567965756238465183869324546805744130574891061364232253600468869548512129932797399825720258001013777696639385393506952082642769085376341726162623964760325921507577721815700817248314276863197074064506030164929294622733333352099448562280661073743831758094429763034184592078070851264766277101050775759856969749949723271495068352473067702336277035444436778042241093431960889384126117835257737746873216125402794602005940520244648755073462074928967649126412673670566292193758241288077330973661809421225268954194767489469189850601839434768485741875171938787692470243300985118841892807354300600182057698572376340211963000561167194463694100387258042078167683214757907826318120012381042557299935779427507578543261787486586345261180277376646966769182046894123617995548247714795610580198965745653269133266044175515266796918789326009262890672112720010253198140275528586366335112911481432030022233887505900672097687744523157532610268141664126787944451270144650494246529715110726998788751497732005211369808385678975536417358671444938842191592176235017692672962709070752388153961656896291691723458404008885845505537122442971451065061433604881221818462475126626760425713993723866853190430624832985856004602234340284106908838521541544016579080047641891894170800940256625414111458967401987379326603202496939990831926041952596926611536011257357430762116837379297565846464419903381281805538197134853286335056119725733795697815991597699367421500780560235430667637193278811981084488720783509708353155660817099451633143318415198778953694637508770930723836977570438063752367535218167383913353893792111269166664023750294159478727956446535076244494967811411284551954349167551792760038486121774585485539450249935143697808833368765971722629734382857364943901040920277010751760337532800059367499260733549489831420260074796763092757712419231889616569134959592334942074065558013194089573110629623371778052259307441444282892577141730785285504568661482249745642445211506158797361074827605096532912022260905014487764848589614359722716243137203332033708312985802863427624831124510971417659965544046719480505244002218177204957509982008858072540060166511773403452134514254917106826786561347508897649120878245478594898420142058486041709297276009354092812808953811178319148506689231259487821116711674278320276407924646759524614962141989119408246208983871266404921070040408364708595108071847220850126140858765893821327122875111504641921820814995100113331912845037484625273100712894340232719802624389663419813747829567223118671689740611179858348069453708852463512658931937398018377714541599481578872385289336524058524842430705896702644448764269948250515609514493569569291206923813315003712983457348670688509658942610984132284994708636952708791066028276981477421011659212340349128719691400331406311538395147412596880605588135651808806745445316702549742465554643075907830156929115625044098701382921450812905876277851356833013206068859060133151728305954548327795567840069308331526766190237258839760668322607126730766485656011978042580312609048600514271740601562449357565094040994255119556647308984921811289291697786793224600021053324242962671789414870312352523476095405692707579926569109248651481945364427719488032692910486807582042434644351275754999575150659644569752930405332788922576602095776806032704160141049864676356270910025289368505071894831022546470269462217633966392457036207014232794565898815965670906097441672211605921842203713084561954602279364951769952572031246378030210629665662397456493252479319953276706331900173569478124559191231688600590633088179710453527721820129044461496973201450636402689612608728722995162580655548030754170202466561468912105859549739798764685321441295929650858579004952702317880468135411151235043693161149762593341766858305100788446879138921211090174338749654313232618203484090310672981904149042473436288473860900388871482697592090442618050057439589623210445786868657119359021374672870273188661320857368821603418414839077126327867950388329748114008621608973548538391827302041732165446309759829297786558822172909324457006053396637062782426606580933657434851560808022800807860218389213945066292875511994813879669758737299776136281166405663286535615542895566253952256391609022745469289606561605145653204465292834762619880473953309077957161668540239433653654061558919868280407624639145813775310187606846237666220571609015784785753854901974729632606315487143513724208359876930134618920678522888397340940664066632067519227909681690363276350181964850934290619602798821524482536062599056720719760938313964546536030276084293396251934540793760626320031965569465159383725668765655082111508205191570061373159205960645643672687723455129966435465462804826527850260620439056291527647349894377433861507506601237168849985989090187172310840531721804873962005221060660489823461306296167976079494377302654036211054054615618995063917311279382438785429569655829464215948051807222366326375593511885154399683074710866286840077331587552694848868731228930615340666803066792179085712070702228912044253757077582189853706768769733827564677232714770147378362402200475046612450940081760627509657543720080506526709981082047985847957679777689338419164274960816160696874974365023331955735892738043380266756765601679456207189927199338185450569915939899114739993471280350637018028499367198537520247459558464185502195319494595600503954048586759348876565377189962621653719732208561431555102618276956822240696909367492101315569050254427043775389892497918098362861018159753756091867814254676135590513787320606456881542170149497070651085617369742618801540434875342031871871218461115204651990183924031750758406662420078466423735231614773164368597549104423474014607496102595533985802550461407429052393891174068269561282536962218267620377299938461531600722861188413789959634904671303247912999558738733349208708868585980745746295020263280523539541535345121932922844252842426685399941335751363250395654302088967693750010652814280807500544040063580890344385745921517261647534476634748684506056509241921876876042297397106744807585816389741296503504641923587980691248997304937538692697983082490067224372217819813153067173728025424341607489813283429213635973594520673299368787881768739044497789353450214100692262755268540277215263435437517812082466658480747856232134020323796148755966660876046327687768145877189236880291296472483117320825598199697381559235857445775106651012184664967568394687527568333006793413074296757061658268884843565069270038578344122532979365632067639644163448393315786168077071029911750489037787576077347120005739036051952879141031852459462385116775269881109263371308362445232607057125733450627295821186863231463293344007856299186768516134682386533092891559069090438620863234080300846457020935748700304365516317186104241007638766933249437948157460574972640132967432292260506885527885535078071904591493380364055006987226491941595025993624502875661156693369856470361104536377706123694706814927865203241139319563392374689896470455828048110896416758794567094175525014611074437138709482774514287541135599469545361175739663139597937638453527802456818961130705060625682003519397020730886700941275988134816907624218067125082786024360011877507029992000712147196596066868836895316054349605456570490458352826886277943747487740721808826304669487316967772038313208581243612542178598694272401817027889851189751613586711698719718318360948836947119481138634090790603672419656799988320387461677411099518300973039560350296230960818246170697886599515156385355436815020242402966760882649009327691098002098584090485129342794277279051403919038415318650997711062384382079788722160502172751881236853688364924918901357491661217592184474952889410564169039202256702155181789530419204011508828498036630417529478212278000795549851884250792118048528075346935870074068388043825701084575634338069176094618651468183476448651062615061819449800262000710364698335773458679287416867732230548240906853265514011171797443122866119403115174533540258242417293902113291257311223531713375043250897625704317088426586512263285937124528602854169903276518888678347924147440827025788779288975270048036440305943716724069396323875751214940073990492506667197255047171118942212553854670207900602269524593593350494809089700561893791236157240472101491329045455318842716061312897142362222069897075047183412413669340639418180846840204610823534489117539445268138111495015316291243172292424234688017303446145541376524339659527918081647086293123420282358195010742581541127412429164405135895046919122823400656908774472446096074856849895147890546433213483375648523050860707931487953962051452005678869832905940524891957699442860898818231789344140739312475929337942431060129049282767169519309562683451578246729700841899851992725334265473364894839165382205792144396841413329437238151011752683325060091745382888127160115251012695220993552393393050527309589426805259356119246094497699827761150000124032075704365866761855916354730439701908576902472130813859834749999207240500975564452702489328857836530652472606757744321673205553644456658946846897021962158842308064187980593725843752045572097883600547181458157801039189078368196493330904566447058502028005114184526595137184176658065305776950996287128427556248186512373877812875878193972695419971179848527716896973822067013986699334239011375047494309943612507128678035830346387671626312834957817939817275154183084396384472501750173863983802431582982980817687219339090537928093023992043316403688259534319069848182374804639594694260154173649977991072449856338615881589450501678384193965702384580042296991146751127343198529836149721405505686441316510064392985559884262456287424997928043625496567732603379515430766502159175178877924883976676721736816587657160523343745958557457306816621282838571158183563540040757145007064048069770914932619803856662126189184115352070400994488355529958541452026619261103593730086564580578857968725239915254700688883270412183760323543371378817887752376865211547958128705337945927677906304503385868217513789450491589790396005629377364249683622053118151601734649000805254272915243105024170235149946516284790036238045256894182893837324262596392833903539476710944541635595125794307595626638839296299404268074433872699585149778288574119873308548116032654736248233110547183554126869840899387708085025668970734652123404558377967300968685554413808865146042614294840165265572018520617869164464080247429460772182335512774788843896779154457314540149680388932936158388966179221289161689143241250224731091103783095464695400728234249721027654651839787346996197196369767287875832298781317421172535079781927787422140547356148822393472037622723426852618674548670975533241392422680970950591103669121793864510609483497914460327391441444140809605887443308831837067353999845266853556905772714663264649060936324449726881478896165800723045971622257000907590861196902139678592874451721920820770509648933011267202353670522016922893171445644274711528036144395203504461349548361401153401259185558245125409237776631714416983406018681410810132550054937455727889047070540229910332798353351710429200642811127182735974257216990689638168517346226568939857118181995274131535767977445326416561532088721056332989862111771024915915720011932658308031413003051235246565855686484022069127896124307831001880722964643113837231903305993812708867323339555715066225910283503399955928276920638691061096940317765398923710203098265286179757398738765348485894268584058193171132988862055437884106410291475676155125294922944238808077944886878896331862748353374682553587598940298148488669033810476573573489974903621588299064285315117365647319032656747186645624031040413814574886172078563236275015932966592575759905547581907803890830611254234805928371183167046191414588771033085394212288630323027697863461607787106343183068469464788418288190126761503891888203361506625068828156151455319078778745997508320157733961840131795451659648781146779343359579071968208966614548588946477157485490907836029964493224653315554617463807363207267959353590283011606966542941602116729163475039511399735405705365213549744895620516288979731066649860656549418678816077321463510988619857018711864311417287399928658541811730712725400708021762335599973281320984323007142199506709445032561818736959057228607760312372590335236941982336912733720947188113099453725111789194193100095834131275509090491583571628921191776469243336931074519675925251632451935839225246113804806840314719855848493482786818562231202305186801630232487039798599937416189432197411047152428837908857559553029986252152948536421077986533143804643221569414175034868244994562701787844922152430949578620863583290500043438335003130545143703739077164206356170995374258790564234884452859993056877694546058367985742705900461781916064179810578756198758816548928540576577324508048660260999092962161137657318587473866831627769087757510347376223371864955150065986906982131811062557934781760194777843820467991359171543296736388939425450032102878110959734918926871919434330659364682734296114333749199099115704907135915149085884470126997145728111469316692039804979344987106140054587644934978030455440715183275908291098196627513109399948549810395009694485992754753078054969566525209527514760593653363303667849559991701311035520678525832947387002069047092179848602844247057401163357500988564703085593509401082109872323784520993924767319266370850227314158057483304677225742654216569664491784382756145704041505610822324829167845811646492501266175501043201288542561821740379526621928602611553447720505750261356125879535721678332488403634025180071560658302212466326285313493632357046547607408126540343145302758567860949201073544754661957400385932985469607437117771724050845856221574928543094008565668580141146778740664179899644456888645242280849878273490613664531063699368799172279383386690292654003672133810477541705786072280630800028484607091103285456097002405001341450709463331857001761906295386855978882961992273586523815249698162956780254093428708598866829944778054075615948972153795885757141328352067602467586174933335712708926475195565812547572091178096978486121840209308929835664868401214443693561066220592825321611468128546187944439040031797337109878249277774646500405453517138858487338220209832610743509105109260526296294087862852455364259318042676970993018304354340386433491928363971547992782416604990348740132217629163138783097295465132103193061766967411914249807947723496019294995551994302777958128025018069185806470940997237706849417897144811171188906480638482697318526606098632570773508055702351886246005790893716566913369834857956904929136968365822182482176325320356909488309238697129267616877034291239175426634017281316291759200109049902112366835888339688809265889142949691408480504879245721021358994573703837020884056443081016852054446888435295553844071156725714718512001519414218952715059818965490837919390827097697208576353807959204496726559863571058829151496850085051666847867812230403651748995678026633287567159586563465301356608728003403408035118152526495122014190334759219697344188713678505382974382953127727956986621031931201851698529412077613212103779811315433440381414641753018615096077180616619924540947479266683569247209307406299954951215470654940555904481050724737223223857751078848849826792352523463313262363385183172972523795164894049496434327323668748879998804948476322334776886278767288427441652888730270180270769789123343537385766928444821099983587156833235472362698543443985507879287627886094974038832736910570086005948507878514216039048355862562167717374596354327107809078618133218474619841065086896928323278233309492392046008265370304816749023934214345738390531918617188615333254166947865269283087279035460657206965142869647218050558618241819193985341180785820132472746912729480341168704518034494820547260234581491203850691283346018905033589171561247125745580411153748039345521543008613147543013164558369341834077981067288984064076358399336408143028473670423671533281242170197182487664763069207798907700916653244907176038131224531867730550068048995506694133059679701047487641733118204666043209582560714803167071608490858679008581184466344104032051824154997339011232813131398987804764444537987020629253031814996892800994911418079956689729242079153573371087891791562680369267410261311276835164878665035396207997586132124544152257336840997137516501662334786964411981989395289485949843888583729172758605290482611346248183969264081178925323524142926554466092938416827822955592906730629525619163168687401135528260708590226947767739736609559736847738262941728639047677244675770969728050812436242139488279558573213834708187550562858734946702628714065841548378642951986444309037955439999487601454772177371401253078983378125088928724867195872135119947618054829041717837138150117823653816186722305079296539490883580441143253840614722763816314035298273019247967216953989490434621134766474099402620229311306508691934278500521842807648299372942028237175631939062718647270938250078293932092888494671642598890875496664111055372490249744713067096746009368705222856447520783409642335765182940936719706969197606000180784808330991784194555575500108667444177523943795738765316915720525548744571313575055368350213137167979295537177441886458537091395322386279733985714623059447084393259495338128734546649008758233172557304708770333806897680299208512680893995718290647473319629051965757292566543772441365082923476308691097306966581694291887199913929310037098072110869432374162192913736955470764158893661928475150072418053019369885922599595772803128793300580076329876656697487866230751003588210819985486454114855025717299593917076621108440828155403911535153453526853946366096060131385176766826199680917505493023265226260619786060382801214358352445043369753410089493320035383585504172103142689560638472391558786181398372429589718841816757163115932594193137430806557388397862614022514672839738201087249739314450975507298242019224308825435928968091374681608872887557722759648423164779937696600750416356517053312650221367476883443412064055643655724861077574659218115762247097966400223469926706912648505075837079646186765571198781073324451808780480369430749775877664554321346965653715142761632734994174511893847738133728868439624188460513142627508508797678650880710578333291442460749277801303112335155752056384937961828696292376771402214874510465805410309526508846381737856148004136299641466101544683634465300239590858839058830071263150013204523761385368111972547933584426199573151579006396151725595391306499860835833180596635361657339180625689670414810693714326498615220813917187015680799458243948662137786396860167309230415409935535134855693178688265006216430691156330579411762107045791180725984061087283079857540096196057209824350184838213961844354254428529613088286085005687546392159466912813580121620493861706701907375470605177699570020644524533516582383347393483771127055223743351052343987582862198204069847928033710073096218107461100064991475181349269009525838430145882818721229596496850047468937867897356747948224529835687747288355054726941423041791069463713672837452410627021969229784513966616860168602620041915939178263407029475418192026155014590159022897896524428975440517469922705645663508114488920912813625517020844543625899075393746411640318037436724966064921205195399055591726298073438918606684564049882930567305249308009197293420695140454223854115540104128179941483004801299496492288327932389233836054420446077677124255326319098322235124555373922927193053545086025082801605808540598206534412178303947477910725075632568733166366396678219182737568395697190320169023615955700957050574533694921882987820788355334300414983939407053254988745788963950297606935141690753046143889608485362350245274171094592969389352732752650678969723910141715721170561797307093464015865404371540960849739213714964728888374450602304147354406462793925681325818278314301225226253208838696932686502965250141378755416900992945686536784364205022373185757045050223501317786928868734946714068288756505607347482288622754853774496444512301472107462524412500719322097842617702539549930989932151792907873126555064564707269812283887943242560802994832082733921710216801760358803898243081284919672966099578025597836957046372044265181053767836643689533414432980053808788527954365914515798791096956983245203508852157477041191942268992022146036053032386979317821677297851823440035005626137113857177670849768130216317054438959002733530438848448750267258558968351473365882825019122985654894983482126752477757039185230165514331126433458137179743823652514919454994646496922798379151536178573745883064185291028255915721831908783671856592763294495264543471078751644603576671050169673999964139169922954930655701996002320710599087579722420075665675612504536526260113158069650996943365069302507761486956956431998265878528769976109989470749266489366690551770419252255828592149318081036448380907063429670669547367028551827080230058201457638330387254157291876530659468007695518471847650151480075679416154643894216862829309356179651661814676334878598716092736007418252732950693018220592626841267715934226320324113927594684171280008068263055346029723238933141801596460036635777388461675513001520240508457713909625148362203278899936829498565362508571554842380055241562540110448391080164389721809490300480583458588004128771451617487199986496021880347903848659171785047556088616773723831847932252659916508249736907340729080989358476106718122642284782208552873225417999580273051772522114706792330439216442241829732011406300244675229384228912194987670403803518676706546495344490158275754822143744822887387977672721232499861423521639876833267562813984204386596005455828967805649210225058982824605306436093537029476862732508974329733331106372135998745523499251069009332108796398621739111698027653827210174851468406993181587779273048773782760658942117478809715660358276413806389164516537099777105251665259877532684260725768880482671202425565983071321471531243947239933574681134482834490339093494161504480569920852343537163237346872635762647534865358990949115750883342603972100567180828416490158978525136873445795332268818072680213250073282478023379578954135794067121432682730730084908538821590041535634630737488416541565896737930442884021744473671712716918485136683555410588160599060316559359720816004669341276098124060105284460208971523002557678766496855379143152612975069163333147993639416058996875518247371072460275808186236569354228234972644750425261313498731362716668730804443463958579870380254572572294858778506767752769717326439414659175074636122458192530456048804815027561927919562532757795179465052419357962461379910751322478920727403568741151968110055622955765591694520797562989186596827215005929764534769461922260348804883066861083207792175833813686536758119618906889658597489009854450713240604529795741800980430819287962624215409995048860122992626425351011703440855011465114286485518921297326183008966449070305159281741279538687215657814081493047259074734483476586828151920003548660615187113001345795545436621784445622156481659016238285883404679355788089473609264233430062816850392085286934470991753786501445842015067202387647858085145924678733522422507800892271099960717806818191556047505758093531512774346410821534363415915453552223769789047499656374343278502148121773996351842137539940111498701175716993735624069308619374226270538414593471333661998984228925494013668049102532182506326820853233260281858609712926500339733930101639221426486786014312693177988708904515110776222717523089219761016441503185867324084463179976008117304992971195579111691746783201569469997557965812782436705756057433461027209759576953142217182560796076049007697809596177220858452355597184474034806565599947418576210831133209562738378306430975290358518568276046389576854014357296435998529641744489007844529960648067820850252866351520890656588497841646030662477516247548483087064047963792340932782722663269954337673125469430144961056362798397791876968126356547386459913979265276128338193703203495318500852608753596288552824260976213182409322754355053142831919620802601070484619860148309999948350951850193230379104417083383989285689248852347329092717580050375572082029022496013712418923394940053786141593042067244948134822094774047339518836989032119961052759673226300789425476257535115793803258208846364645468763813945189830719592210263910979738027710065685727234650659716735884490839295685899420335005032736526119140577234141687959191798061618605734912701647751293240583963899884428943271943651383971178088912767605806291274910469357570362011795240329669893770742304692156676358527889432684113821208560364720343721620081590706828102527107125262035904735111890677998234970446698226414131434554261803331909042983453794137285741410771029500622219122252028052985445884384436787287249786790366281245567898645156318718114214144248816808148456943604156770988546706700610804485488353061392719894154777358345377255363550165099922794704197354373693337504503630499164461405770565827506450436814219658143395190016660618193915961321676708853968316635828116601300338107247317591504696281065151422051144013628059080385170090811179425413174382369339247732170643181924645997462633655066716646842439424465357272374842263523508747628720253053413325805722450015354496003142984119670361589217679349681153621842197317261167867988308777801404549185437741976330460432869867851353165382027592299020341828391081839569966075834351823458176463850755480794724042832006162707090315092600452074733862048898495658768958572455600850314372787062963173533233206782768701705364348449606886355433793520692245284966365991446411402151240830871211438596780217589246538713351457534350877909613582180432194223331437251271410332804014614444223980045567314369484111348280784168277821702887189576663086077099148932327112421242288733668962358891512716276616814781208971790152294515139394618786196666647923450444100731220813003876450384964035251544977278188369994347972329319284815031671053654730770898327630750925048936217999765101535267323168325206985496919892089677387397913909167497565558212665267802107798813170191707094482403202172885246682053494595608627655567687347815536622856536168917771051789816494575191846058354647355572428409499136162874151442868133713094010675930881263258653671179143009578937337791044728355066317332186995779891479038316740509508469128814140414836176381302327575475449558201234312115089075195264337880442739403806023785431851987308774289840839113908955593533994372265245878062569623843284682104959176860889969937671942935220603172520886939118125189333673446797936432084688536818146458267844655661745845234105851659983796593651565048191767350670062439083573908422088410114692220261226998877169418907941332644170090995680709108815508467645636141883288854468072304015937965306473191021159398918039527036935690594778784643175124144536445605898274434244077903673573297202590943234000507498949957146838962936135824515205811902220347721359134346149488873683520680485945042163597327130269148718275944515237329392986391375250114652855875570688511906228103165916261276260576308148221698974274283443664075522733075220291345321383757899438873421743472915382648201823927418165790965019266426774043339878812101577548026623394860127859184282416333388158113510169111043516156113665341812008348755651038206029088975497052216342396629713941062756633220819963513152389802540764557381757638208745078222642582569379204183363406192343495768692561814177894897533934741859431089461736182585388905965255834375257523053475432775325868295220207003145493389231637909923823139286976630454982115862158903509661433741814676169255956258720809552820871303292970287463921695016544486554560509540922486172758248121150242128524743346815396432454352574468719803714685539547185407409087616210002662690454794901080951877187326936948373818355262121061619395929301678546669533492738817774445702957599136945667793916566155701523844817699718177020784455234775613337127582716596499795817842460032927706601166390626260341418675104965331125891297895311680461497707820859863578528602995969917554738729100177722062049145258045245913922693192622093075150640125055207505474723968108236763774300994549899704316528539425972857700184337703457237964840169086091459844532609197714741641742572550593343897411494316978648380690850292413186040855665090154753147364656344810449052966660528832772166841870574579655727484798639631702993603849542974698723273199797399229012216965057807257814105704385456455151156290037642153191030293711285184771090124170770623617085063504610306487997658244758780177636496793120724669299446415566543384231523646589280134083969374175907747243784577514903852941780474390799612492670317298852288110511520870921247221539544295545615649075907208491801839379235064012705350831293260867675475564777760954706989748446274852629594478299316107700876611605065610543230142131703642471063850296597228008616178039288307895936429578013285788492483302707497867369342041602760690577074345848177559133879296478279396581376956566279515060459219451793655430555642937426743548420276038776460978214519615995788941194150295680961045727622838119986414974545736438089929199208352387068862829715191280315645692868065150517028184581045463177870275331246461251809319245078066145260180632512629548455419682707471477049317031444378557916234293371699247666039336810072908588446050714264600803812205700786607779269699923640811212441443324569578088937386826175263223231213003824537854520122544631336762035181641305280035560435679156315871551659206878116417896626524097023761625074667927025005118702893108912419960942134395609225446408699805877937486099928441712403924559686759592337155548847351451820096286641953705134809035664280919804243796977842295094441389054854957057040445225199214192114665095159882921474747469167641425903114180363168837333699374393580886913561406637523840347689757859338680798831092564993904539134143240262992542142302241694470507037614553140646439991095014347070768309963525125200330169286054183167491512992316481983666313030763952748913239315764977352710470812510045370016088363490080404939889747190638296183071656688396258150433846586640967666343248989977018599976129161256976949349344741525543195977662892179924943432879704143397891127536514732139323578842316222669115633655486526488048087910792071322012618698270045627360052704910447653957232395034487061765781752598099868534273658208156777952847065311283286240899439975214208532187661618994677928671405576133366384999119281425885825529569616194532894554341776784813698690674329831430494457379085186291142369191523596316392789254449329715758301501416234238841855407777853933043002742876408077659030936724249309904113985270043821012755743133459340856471704596780757334412031641216978629782582419277169508957400187413372736343456140878289335287409257537264501583245493580891986102845465917314990948284475741135627635161068714407946771386171743096165483208794720027617302322672023009083968581716521249145231757729658111126213448039075280627397910915844736285023979406524024981576078376399641643374887704198395321791706342210172574906974119372509887553940467604807594058116241703883579198598557564445297909236969918472057614197282909533964311235099344869548994357694879587645258269259726001152630111824379528925901900872869691973563877956215777644566565075700422535151187547743830059321671955133865347981970348089231066092593317741488557987506128101169763522253624888197012423003411488375596793900880625683825514340986678103018744400346829640710374008314962354069073793453317519971040259720051484210719441102247789408802360520374155847668763277359370306110972309877696638097722674591537936136562405910454193655205121091000876155530896644740632082995336441591282226826547683809696004729814573838531466863442618231098092303257384632870390793892875059231522497302176874728327546857987499038543618833642810534301915908233941179924336126504823760333456677441794764737796885846509924168408175932475067580181868164872349198941127469161239227686488862445144339132770491351575497686524727551303683479018484161794667235978223501082380512976866225623200040042079579430142497325396720597139064766283771017679482075785203255893009763366703330274285304808823934497733634104739211386241688824109814741852818587767657552830864390245000464191095365144426679036955322064300007492530837427186229047782460215119204338554710318497273179622842275764823248251344005929886069460874543768574173175878958813104577273590682738742205162792251431810266329313163589002212564590919007634264017202173444543745249621486611078220385920690194633722551762584462062797947926697999790415456901827867235354451729007741714223197990189705939890533078772320038972106093949237856884812720962271221721892031814113946916071336001573041309644205429156154543169046993461539874651210947702152676461669410349978624811662666528485360807625404490300925073057185695037174475729235650434160320581613628012459717526622063371729212573766751426024158222127015424569928695900249447164397667550104624211989809256047606216430053616696696548017920810972588730961312914865825562738731321166266006268593661409546404228482171096689077302546295554296850758660311070140536902399434836888412950748545528001376391157543423575951894279064325972098900715852637461360968847773639333423249878360352906327840206226176087019788366997249422542858966982030230640419130013063460185592360055001725626314309514578070965686500156695703867280581106880644360288068960553813475455352584244215317847613666373227325029010103478213535262842320253902258174649536783563291351919243981067454983242153297432142021500665914783386222083558300589231866364612926831637473434804597476935896652964275929304168667646632271894861683611332886487888694836866978733686776029363859195372146609531119126524107762771491828208436871847567025183180278378521897168307717523410546820507362860461041245614803550670607238976852082330899309540968922541276362643108528891148920130077573198491384916586216537229385239268292106053568941734571937669224772196920282095946500899748544806821476545934954595398708116255125791063809334783821815288959469567232009299115560702320406452549482808407328526730989828288531125119597455801874900989296586246280526909527153834603641681554130345556228535301660604845580548928178192577108223200321151431501862713554317330660111090195722029611182955888578171095629940059811593514470925657810935492844959163609503487347365825179428460575472421226465430217566428696525301128934071422290578858397526095337730378346383680970414615521749900739398607166288377728227319727049241710467785559285314743921838149008753146794546283394380808061239466246929244514062872381339983888424973347219111350824807657121815821959813105771556343117530201658598275579988165158959992458995419344001780854237256352990868204506090701569190579789504864960113458134308637215354869653821110470527399640728578598503151551500817336211211753883447893016480686489053376919288546519911078635599231435786256769049268071974827839694830040157382616844462181470188943273429664723687130469962800924715096964461503268723724514606737905816160257334872463344175925779323027409707894741261775969839009263346552249591343957659560856135910810367233735476786907024946727279037389493590161985174744899628042333157328801197332023074441244442091367561144964607062732261149982369385414202002332111060942523302150187788590671372270589744682656651280758485889056558799304522359098633809795640849517333857702230340918160182008713188872783809836375956243570870815063755484168753031636202077391013471146003867937256135659588313662669095338222607821389904050310671801234210055385261337876272755584048916498417567047692513067215675326370901558075507467910653530163207835247469734822692357020145963169338600170301512001624167199990425973485991240109252270869841310076793190134832685235618246773791987685414258402587408835123221583619378201778179553083798498001972510778648085985555860302016055378150825233973574516098138268294072661970028208158640752552874576594301764987748988427272664703717474763321938602924656197350799907669693897443432141231406521266094816245445505306799770217467293883052195132320987591704829022167934870239758755374045770052298340936137405926329812015116813962056920553005803486251348003837855067082921296793773679733163544213002330785158323052920867931158148196311410648421551545591987694777006663481088522701958890590090151527269303353707058323731146156154071745921871216581324867907422342974584027447212737382132290080700147983474848531121913397696566568014353857032480596732929093895348909517800076898338490605330505703988323697766209306692954416936209619177569646095605893264297720362222844465973492106659823426649718609065490152239752439362793989277914632549083722183404284518406281194618259900705240536202257510760015510602061989568800064862184151666123664820465207044589865772337759101963278341564799584698903975270086300382744004289742743068785865323831586847328808585727201887628001977815218779286092815846475129023133473956489122550575591909813499216034904239961525972543119136483640875152181315047637545063314363633701295042868381666103437235678331482638838030098996340391777021623008108329412487094072287709328862124972844634068052599691130634572158188511044813691323155750241691289895800525799310203570397637113493709147961167360996648065715932868707434478853692761767748155338787160855938322771803140043749251219121794596786578930578658454608586545467400130552506534002732128815681771690670488935666777138295663523643279457403361716692616532760090279146239908745019190403182226987432960711816262864910450448760477767437661950233197194056557078451925397124263731510534890818602103512251532217109750487599730233536315234134672970074035010381286072984325089095054570275466459985223436937985992963402583635652063159300693427278570895169988508053826003999470524815529364021627346230236831134787869740797988150164631709235626097369367502898864867853626131877610849565944592206429624683484166722935284249164286039508202762805806500708061503280517596921706183411109440338778117053318841490424802813115714888488457347453107263205487187541797975016856077086752706260460090885607783630781700556300534452919831220849016621745890066416984152867617716995785226461867295633973175564767931899104753265603609891351318556228285304603704586324735231742351719800052120103359920815270685142090486065955046197735564076812391210035874315739040924931109515954656949994305751456893797611939628289880143425008370012062880167027125459035168296563261336722119051217470464898605761474523896984043856730355637852602207742587069730193173716395792084642709578971166336132024415935526489004348602177847663622557756611079633125986456443892478194497749572130818462901800190207363872750238930549704741538213683901483725585552779964615124919258525318720964429098100784139553227431356547586396966943489075534326421650429280416621887590339395978186377954753503043049494318603604456865306862497719843424887476670432086832376029623134238433199889804832166480728822615640642048976821192483932642839349641583348347935661498198932521756936264437345493441138218248851589187832629593864605708876009748458848236556723253860149466717955566819836712648744066144839235991548426117428143578963762232033182480598972975236848179108416617700569512322539966123960149640264925072281474527178572347276455996163584980434378375044149421596340476849966220997723300526927941743481489319470704294558939322710039648599668024602461860423897468430704288631014758873198079015825660667841486616410167023650289782287478952840626374657104542986401616230093591053233972855497626338728750561408292311053633815616579445974977063956484085268625050699262304663224748496273909141110867527499583073594218460593784104867541719351281231650567222986145983519123205590850441065329657974110235925726621624902419932287523470686826393777950710628418767047576502222133735820370105413258300286082941301148401117019613231185671212675677117592931162402672171352072479194703652034650714737834264633376521993415136362448797732703119059391703118235235249386962715314896257629734274413351079070192213663747044969876356837990595523785798639396503937166062080886108201962644391288812252280079135328722079369713175478505723790192116146963195286581727195868080865375088007312595404723914609242385629541513965089276853469662312291564180481469974997364324706334189993820311214898455020842688909304771484969082761199114274542173315076576048285394463913271438595170789077288049283094655584413945866048901151490159642014810183664304882539909436989814721337845663847141709935702946109126638872591675588566747910928416839125494472080417270181500215804117476111848077401090755732157501244622301223130048948173965956655535675463843683657278718400679914033082265842234728098212210352694155392435797914747957769172750663149151483884124767738096440638790300791690260425425746328265518267529071000650479750648331705153362642986311228297412150408655911263142132472368771238139076938847523358833893784919504664363690836969441431616998472467008205190619331715828560076335180718827027549474530760080906076980704278790824650558502673869807918255369566486424700706528093738950093539372723075652836181563181922872421845887772938740103929986979045197537290017227930935721220164537809286811165920279369584347616829962230458490303916561816348233391099779138582262104945801160439246564916924347312997403869489481227334070293231908202088314817454442715861130971606498376616133684206858042824340998730271231463676836097746030078461121185782749587417120528917340252350864878513882839255013398618323107328807169721642656651783650140734093259414548362170978061870048413442212873961556299526653036151722698783553478984728472741039429787951746516639311950241977250822665952089431199816037100790364164743798306532957581185805389970951220483791971977300981116616383222404679484790154613365005070991401912592538906455676780012972984798786628434615289730683840299138157632821119734434532833175565688285104747989863447639693480994293377745864413091866605564100714490022260745262042207262003761515350467570756769834125976864155245747641697684364041564715136067003800187108325754042175069003582760715108462349428353571042987546799813890893752207921131285525828628965854239259919470460656891360960872851594835527624437321714660430659016535640152968063885257891677089925844636001889747734889496432679259943436800326303989299380752653073233571638568006387850685761639865316051302467385046007367324960012383763565822916725158164053614087428434476128334009788497245813150325883229849120817047758615789815571372389123849265148709751607870911961179252573369188386612835029813709554663909108363891849753458669453336900185032851884986227006360003990800000384001053825694561965442220285953330906632329561312275097505164116079458089992931842986940707465673346818144537213026816725357018501645207174602369402347484495973483295475129926148029642846152174789006833906629693058523860694685604593826456416582262888617267549146150065155558286554410669968939161161042275640594806507384265739466487312631536353189436322974819140825671661450952167964244373236354514701463855913783933461526589364931428907683200996950721303950335244965560946703024734724180250385694455675384722609562424905076622809934549300351614116203043603398050007035268579262112400858086201063672580927361117383441308944360721895793092575167746391084491275036809096298120116820408922153304947335383672352312913044589250387183532823046129979183817730128184298779908100844333542955901287259706540247347670487207899393351337841809173502102105850131898926211279420117505135189637229220899396862608466984235317585973496359220682032121119739451832397912128129195278311449511290201013539492102961171451694232311713272234957674991451116962918333080888536104922564431747049157049388746080234809841332795205105776159224331780475330954293454294506066589095345847056697047355484222369413585082437885736795247499760647218498536208556007180862675964916420447175398073478446314462680497673437319697167823328791852247718610362595359036826148341452408287864394154554524460160764099684768884132974340716977761617090326355739350056518025160228924520108023131791471270456189182283238156593872105311623612822112842981584753272573826621318187530059824751567531679442908294827802132449206083317860458403503567270835744571525600312196115680742585254731346571137193979916896020737007340618267570372205012705045593737487741140379243588567030079171073745169031443638264439605605546945498874084296775202717389614037786289202981586660446057620288582554061543795371790263609168922171112495249364257066002905793229550808082405039194772435740085335523804786912826124870989882639788975882525500229757880844366775633275241657720375651578241174370947230914835123923891902649919161690313381606835893305526806969189640675054384559305819604896004397760328956445921485963445164949441150851991986892936116464212950458795444611937208832771224320601329051977486414049091431367889834039803406132393958492421259443051615527305671980210522433813536212207833618400423456299634234699954059303360240022343453778363880539334463911583072857346123988757906823134203236615152735669264072288196479998830051000731126737548880503344964829225326986980207033296021487481863192358508360184543251972959926584776065023163927235593348670402726461257316414339289693758994234925345693211017222322111652103127509463959792006250839642939790183280608734667608034903138787876741814981547188156481999929341549636231333495708890780382614126645410691869373018490745264313067845041150186486757022299024965325771852759620135958153563453448996262902260413893368909409065396410939979964443582172829901074302484953803328298079940091765283234905464544252209042788402062927960755283819113015096076413517944939537620830519878574400674534837257279958204483989622924978432425469393626174107582803806179116426899107405597556953927506665124595564350393909123857199190764603130469012201275000123439835429914741320272110294971854792283453334900582676984764577617992126800615111210033232005897069582782681788235916777921718724020703407430406713324042193487675394334392897470378112958162316358686338844311031263748508416984199351642394733132739973208675949318572820324621411039386073772455010371819200057264510664067934926566164915952664311899608296868299835220716487444212297713053247786248487539501973006265478178435854149022215309953903388388570311560275465688827685022255705752055416317969031679459064139066390582015765789827797653324089150308948779024227921241124858521523115512842180689901364862501152079407969953583570978543394314019638192841591146671513692995461072815705939054053215279863314864477695551142488804441318895561468390255557549647274645385186315295690551958992397080416619921430682407458455359987295606764468446058521065541839987760553977062565002880017794452613270671425413246993618922960027378566310695123457234678401538900041261693642538043525756696847655200463446484916434869086501713082870316532423881107991517533374735557566009352466629722719263477534702934895807319036141168055480389615374543822016795746425298181730943047879831913048369667411843362731669085849115379361568861725423096650809477954055064616389311359139988022198338963998645621728880623017947505754915728360743202574200622098097211470992752747758219435451963596427889862595442160099281545881652679640876156646448555280028202255648735588710162937494734198862519003899781921505858308450619512729231810185206889495010791489319769989475787352135413693330872793174126958904640498960697185370754339337724926276942735433510413926411206316799130467754776244076535679012133042826972531416964936517653162658229834526787038010105026009428107112017907401792889528504915687004731920097803192204448588224772427324678939238413828663005700940513978883617936862131100451747132937600618823450489746723252146650787245194583359357178190780543913634440975639925198428325368311380433039539985597406463560126355503894018268037883756489286614730781546065707361297369228056985036425374616132859794745649648068133129649263899493792263566025288546593526076054922769679511887704939114267757239969131997589364091742837629066098153362223864558771525165373950042622821448896723647136714336259611737219808828469835214952457082406715365227700204696514266016869771465901912023947972938175673348254207556657248836750379746877657540289803265213403650496955897663872976053995414301136290467462739874726738307020951541478476568396463367574248377765438793756947155839812866136967042642452309766536330114522362012595825676189695173914155356949823139939840432893754993967644894143752231712544773210521391236265535787681612821270354455328488425654945028507938840101682630646098125946221961179419381326376043830322584614750297772162748989002235646400136884343966324772441477396653227978640729822276652921696797941140510904705394958173179121567121830450773726721613753986197891209300627690734935198342884931421920690207149213106863587988778325471221381092783898874224099996653315682024747973209815210489242544324548425445772357704743934652751531031162591278238921867320231770006360588353026498696743960144330029341026441103733005411242918197694139469770699609239798864283584417190359422097198569019966531279722359135215865881335958634986543378841112426682329834417633127377833261059868355773542393549012344504702243966950006481580702240401042977188955735247569421800810671324275144376069349944197582879087543514026960071245275841920385943759687458448132227223962918976518231582505730632197376168077111099034878346205947882344266717427675014766475808043090463255832478472123316430958030481068047940029920224111581866857234665396110438132457316268979751056358391355966678892117063770482642309147086586559953104877060806059646793208083275878007778113167289549551452168257015998940296188097563551523361880072463618202626314937402292913191314255101443763485571282962477489175700346393725015944606041855135981235673028809026464762215863755368937685971390761050058794104357078183169195399821182635971432257716127707010681343084472592889827401526238456996472572147227162094238422209487591900762140344293974834164521848043557735331877964007578299052359318954954522875300525406947886298114763391812465786537305254005271734754359992397320495246524473502878706580958425426167026639466884637518648105096252393263085976713246985821934415047833775259205310243315305352951810367488694337917027810078834767119328622322573015079376186549409697235804962429182747185716156970001722482160142854441271688076036445554653520042987884633764843246808867173353382150922987349865978084749146206678100372368716214759105431785558627941892012019049534383956767631702500661165806848053171982455337798060157581946541481528960318813930105297309601412462320596765249041273808915376008357170640033268720794506437558315243828742613312317549968902259606584875451649064422211349822963563929987636953116187844753614563086998733823301202170138511604749071467910462007537096535311913233675658259039521366121763530360620635896691655856600456765837121657767659450665298216631437939976308298637440893617010736697954486852779866898450141413273795502359113482500041948360007738521967537071465135420287154434615240406467337495815202502510363173501142975826000582209105086022506087158751253382402542279500244747022098929259628635377929008820065498869124039624658472422649620665174779898309204237785708409005146256112157032216766468570249404806380428118803533583039332292983381491319066654916698592006284012535723635315814421075298315233697250242616715772434290848495579709571287857204764420796274679543399371379713076240601454601259635063739752580002567810776269107557219038339611861952031353955715635420090958506001145499739804658549814251727255419102138981115834572925714560895124767200640581453044895693446837383525286892666834335563592701564344377202766404711219584955034813191556710787540720659769316959909463716742045151911628107957424717769553360598929021951131131746544000017993625188291124618036808576858395434002388305958433512163068782850107532229897212567306381955557981842043697870387158937582924001975019047341833057480285703624625070503259100731966952882292075508301208578223731479314045802663660914607864109068540705989860972366708113934895639791808337877728435821371783729796816271024788491489326452362138889674305125911449659408768966046571645202174783676120558478804582740477459747558844723844303787986048949667921093135645306418389540493884291337764471979756710059474205263378094011619455217645579816352233817017912746812584290300103211852387813874469044345439613225994776619704600101396449814724557875576386355014461958965924072792573529538650404034881684417447624575605267266262074971659634448401389014735350693902935063566490168650509008664119012638034514310522358401841680241455411731696768760847009028364859046690643846040851886597098363024964449568758221100472245015481679945743790316500621993093216797464078101363123458101189736840487673304530555453131647385432124482899095520638764543099081358268700161065108960410897511212307713151371546329925942958199623583866241313707413235969833220911000045036648746959890922997856944009101261655569954913357898455235781186046220098531143080974043016690034983465482189657066336360152437884528124415958342614259267852544936921257747936324241317955440830712609986475465706836906178533346451545653249302197947192809735307771647622117209759921089393526781089450873745450706164457612882847963584528354663160670393599384282015814685217525914353781895130901564702788815292122104069261349150408991956360338321231899704756004569029853917195782660562573204409649688004938627316325711911916051757546635425031127573064243648009543926554392457952785109977123198926134916264869780144012044853776670074416770127186610956393057856946884205677533082311309617536006757589946933321608775465677782436107812593662795181009617727486887086110857722514336264853607208923246206568322941057300488633578493715118605070238590032061013725341968266618948597638953562931920547696963280317822957100792999345674860159201063051866331144099770342937045180418545696011412627857228523913681500691264110866406284426423280797057311293061953635261555462538002019211242811389024677723255391071089851725618999983318556276828866131195274735574370487074080330612399578014751642334936923379278330668014890214168409713667090218334301678514891253923274781656491462183875504562829225704479665534627035944787885008456122360238698499894833065302272172714538426043489346304814740736540215055289870401033333436682667599295237534328655701446786714379484250747703722167199760650330140683611953744545026105874343091637825498089333990854266464792768760682938137954199836415140435856363279773956588355915000083452703241835476745009667676905234753411307092953245645308508996543933301593617055538041404708734724142641570587146602589330951181487294977778204203548332812357334344750091650025529820708333886490662206837299396566043307619632551990262683413522448590031462844942394434405231811402141439983893680983655087071127888660644423783484830229702659999140443474929207138049169659122574395267936072327444754282365693544287643790537235744443697980620804729103115132381903009844567170967484871171917037452896911091224665400305515933386338895399941569421776238101676168658798788163948018425432977890134086058481631218471529596244367926969743283533880563587601297995687927621926086049372598574846565001515417959555622578123129749726351930752989346047597627968007960247402200987747170263870654310655937970603203185011209363199119424625376014053255819576728555830400451571986815111041551982369781511993857796196787392835492908411592778996118863202338500387925770285940463404618420448831194543087984333149145576671576064963111670429102144374699278042211423798842358260304254516610812345977991077561989026525623278152610501505846616766864352484199805173489278602729536668911259405008626252437855722151536275574250073793652960464448950215714467431978076909761158989610701527035010082160174953419625202050384995609120250463765328849209414864345625474336516216915352236439140151155905058045317545843141986467334386513984436239952057097693171050263079183195052275776125041392198533456331786878430292194877577171644044200619671580787612378040202957606917186690072747304610766375988372710445637467972794775444105457415640338873030466682335612785753507024304391606391805064287967443104355119156427977355426849344728167222494281499853475822590074273872443127419024597259521544707983343680225368436921981928291460462172827539862580488857085653920615251223195449277430737534080307509836490708083701617710894542872548606479256914132701526314095083006645155449743235634109511574548915600869579798260924806062738182029392145697858435647089348393506426593277381147605999514528118291951563548075892988019910390176139659587184990755195893987564015497570671619403476076375310488205181931312962522910163750394628662326388610563292605440551556536068258906216241301248425355165235183986218744767026169723378758730518132381519707610012949440785850639237882976503513280031016887998067538142395088265278839529180513683562005152118363217887588778015424394512547017455763083501157992903939312346930701283730751186664382173841308002731230146013684292049669584288321329994320474234457749080402811137965479698513225034423336958451703230169540186620083747266908251275528197901474197270444570215640062843866424883358459178696433229746335386534895538286250831807258423066085194618225373188478915197844228579601694728803523992527420415052450801907838060500383273152927705553594999887350445568892176735064808834366793703576441517099773060738322274165401489933279415890281661065139291728746418843083418393065414923646788699469286599829813414869241948172686484861276222469607306319709612513176795256553144222057631760250312986248898895860716775971261811600875083938103039200671540919368876079535531753354016223652297055437177268914898588091407863174182850982206955173523138364168897645911117885328100374162014941286572636438874895830187275414890473674876185229667813326896332958400851668742656341950324794678340023553068108050841733638624451933081985573298766033562706492021769663423182429121014003680235513970835077062642935977620123079539707083768143153564686253148667192966022951153897394553302553838294241577054673268411666006022800381045658423043065610673642261992405585117393738559314614359481158139867740180796528151785613304986854740872749757345624324934758647664690934030427752977536949742104098798086212471858916618859434090802239237416563374684973876684611960668685653251300313761464671440213467364753017764123705180488876766388863352421355549216438989695670286025761091610038624274812137208552174546085406891160550686501574426978984971970379437211954988790528428676145643337702410967508234120177133042601428465587645497951380908397788449750159400338924036214657790103976335790035476146938089316162399572428308973286863751724819520878233735739562145402816079473961286424775842427825199957043027273364172084330109566817134166847556126740234649140973523528123142123989587655199583125757866328762784876333754951513509055873692065589928051883922031600935647855836293190978586691119863618307287039107193750879506130371541942212095909239276867816441829770710867130664001212077719496846117294986428497574419650484756667367257609254985269928142074686351663514940858980207344838061243728426159269064193742142824739991413418978718779049285416339543043106656889171623897027775373284002607440970415042424656326544065888416017761577455448506595362607586841240090831254867077234516535094379024658941371628059345447385916893048063825491160736399651067116273118264430214686881705205450241869565441267979974610525107377219725189765305457626379936392640961713086418534456703146201984601243432440583947384486370499473953407528397782306834794524576548503401393974984067828115064888526878224797254547370288580478439994592745958987213609798844719719145162843436773215508282588548729608343739287268348979511899721305408614038964153737436100638840792751377848420379843171202311001829821949531725662380161707283508188000360436573515687454536399766892245790396123016009363505406167660993130966927841327654381636429656219783677771251599393382530568415554705947153630130536601677599813515633428985926390275244962656539080163109740910129661131359971907084035169143052093858417943692781442186544285200251252271290666059899974140770938613665867961073221549169821067076356221896672134274343121414686799532304656001160389731549104743201753678628076130924317319033207650405620747233991155872282009091125258466178122844596477717520960015073482030328979938864403429756683415004500799992253768480469960685720782010026564046102928642781618817348019705665228992941516491927432598590985651276271435514591090935338753262841193317603409058245973196384249964801646184421400426701461669000359907478019415883143611912498355631391989868616537969502516106649218486951197249450095950633181962686781649894803086421003333194724760398634866342290734795770993184313123091684152019431204592384299273612820284547573192989328815816054905756500968467477328256352355468668626058426745717506016214182824542983296184015388780104303622985707867531877942546566194245117838005417748864616045559854704051360372612427955478437224405052546502645031042958016533253646234149951941678523268222446915539195082189057063620714281260868755859827889352807870336112968736370963659425934845085543784653062597072174155026339868744123716376430077967226988399165019168249017693517416764931102103268517600762688469972286166217890651737082477932204257041552846986760782796348202953172589749242398873634200892686396735544114956936813977447979788703575493398674237105436802032084018265456943754787062886252627531498761165114131847932599090669418145687204469657508831547251849940329240374970709008268345302705960010116411841756385573257969359331666410872421258348486079832065468383486786454226082077676181875691112496340225494429324002585167991245674093642035375438985518034768042391510225839599143232513743964285854140802099751562129367597787835997637545441741907809472385104716815430648333912174542127775436034110792533910625678562975864413215486348002214917830498873064487761026186527057930794837094382498267051313213005705063297156140091390419011084597910521043016876146522645760804709498531761383075975998539514902154449929572576228344424283071365055265569242821300933589730388182251134032882190196431159359798460536722687522357789220458961910627694912065949424146958132961118793515488442643649530322978031387970986890169195322685548295044192270072554892463957720769575128722236943452280853893966482386039511842370028338473406742178952326592082086152722151092069358852574415401477338865695038773744869463316304423811548174627417530407055960959348665642124022755256845085637234378156223982915825973306810067516003678118390756429877123886179187605328872163069238337055051509783939085147480958376887668643267964796153206501951357419080130051801956140966131176513703186787548421118812796412635250253381345076296095923549157470188119716909497316662675816052961943149372284614532989746505694393702926034493077470278112270952286680573072669479752778602528699933484656489843862762456117926315594615677731502360229562272392674255671457070741287936567516358240028043120145455518783797539367214678929619064269179905341825844232678124269134290863720927270864850112705120898925903889117739186873552992499954763171493520547941537115146887290544921631603570737046309030101180976694944320180545424936186443015597040323980179521599149121157282324694884046369350229094589507101795092089075114671570593003084967609858115791416083046240573703475164263843439933848312401869609300962642156182654453757942774720912333549633041324169442549980064636661734582073316240477711133112216482308474884684268253277610865415767761674998323073020502161129725501636162541738815617767294586489929176708090808954179559471719148835847674829713306897281379846884005219416111241559730026063238081460851217584840071971787001468404178935175153519653437330267374248899050090250304628130000327115579487552130869246594438387434104610756086290695445768879597701144151707145598262621147452933522323251402510834643580403035965663829222775493777047523457176015974170923888532572550959532389585493179520624757757955632458024590991499727066935054206554438918466774454131590532302897298810397107304849920669202997963723926966348813196195468633533764561881100956426556216239759700366586832408825233632924149342391628705256640140329348932973755159745218386771868183640807607795288996475862725555141760528384864057156959124162040887996289311704730648348843600642269018724552692092863589048068488088746383967595987525171395571047061629498710369091066362661662186091421152780983323918088834215332608204861121288807770532421837874698755614356562945418485304355539413588767811884223574074519835976797074295604151557318777358289819930178019402014672703331614553553589874053812573650470444098084215438101515362997179326852800622104324548515131470025400268583184514492321597529428491903967576088932762677142002889977195408926430406862453763381699151446847363741139596963149556099821476061733201579414435126302014656013760441552214736950240030516656803036973496273752132299382855861590619038774769901428668367672103911598723458222397076569369586804093980927222151102020922691132668864082091114027182736842788852014647456015371633680017251294002368111990515038029351457999458982401656645820477802083664296167869557347069175903478922969124175063821735575055472318502984165812545233352485626393463966578385734797901825909741238580013324863880526463721829155065251289410017013956152272353033248872671782736361932647814979652953083853612167386988784466005144332689529276508313534365858371174232596644664416298735695846650519803514234707372082134846448372865265361734857523570287475268940559163123122559051272692418006820610027395113721417672533378650882803098863007694963691247517061692363794309396335685113459536660340225413252362060274625510079981878025929308154122223721521139061290943971701879664260220504118087162462202631129953661636831364337960151907636989902151782794752120041346889088321136734367532085163611583914647983577105958712726020681449797195984483576656570881984190298682875715459393404585803207016723891841400137683785101375158685457608006505001658556731375652380785768065852953820551810285395122661561520041464629913645506312723166877893372902284993521109628643772171146529187514277734361188141550899328366427906835070794071458798252644676657199070382590326590783941034415786700389922918505864355328015476277513002489769291026521466994138653227397338351654893365714690127347819304304511094486854976265843742834024128639429719567059554148954370741209774062717847839237302603467551000846273493435856221384776341582676103959686448954093376364775924296811238111906677352933471752743403684359304366506182143499300374729569748158872895501562878741849943985694025234666469663726296535986880909890848387927040294101424851314292608448243033377889468941125690799681731864340283988985205141880704700557114993718420115107273649843160936244089592256163225542205860289318012700816952881725331197467896614297829361689759593449344558465878518789960307089347435580711685068760739416876297473473086990383020932463513065196942373675545007175689112551979926308713947696366732805616088719296932167391963367231772300701058917834120125454862778674772024727202579192849619144158726610738751518838540795762590895984945684991765329109768300824540493353000088942949734715705671139766671847154637087066440475886379236027827171318640063298514828433117584942483630438287239441466855137406271627094745303983896755753322182816383201797843070497622433074604500407606695742740866215781921047789653728026456432773576170848887307419330839983437560887340041056492456082399919686271146645570491523302697531959938424691895895181710978664781869390862163671382643092852292632224455620421944038958472892317844606701789226873944499882125844156459632990923741461560832966155641427093392038078753392883937890064236266452866726457033590710770092662864368407842866361898909004267313881852206840492778506642572505768608940494640316871009922241059223269462071127899572492863593646519697525868164786271440074433076589005033037502079681710354594959676199211997425953061629494199633337088641604673653650792144333477023873246509016149939101722779393658845235731252948700407079443219731243844894295088261220329566242144760997886777341983711269000522115962110860683396723532563055865551146420437220023485412745120359755694404413929109510519605444107729306197999570916831266035022792701090287016230732180891412134418300114403109673574365890453945175259196971230191546597809556626851422394102441156908177982184111252839451072599625027235002753787673072606302854997482389760610609348052316626028127564929827870097556877446747241871021929470911021198706426134305065827832189171905442336814873123442037129531133606649984015552696644193972401984617889376531992504510233241120746679027104412632039888585992073953992139570055875593120846686788524164663576143572084352305991017828503975975616153372909056514062787046682608148359081491354139608890833297973211714707963088719383918071207199958616591891220789193847583759290229618565751061293392121940164453869446538526512942096631394247324362171128629503666010619473018200378513746504299752452446816209974367000189070336462508404620517279433482453678842138612711173693901905740756645387160892322524881351013449841361621525739066649478485036366012219413700882445915326859877400371807694482493256553281208197012775892187753464843118314052609731472338754814802251631830692726609500055716318597882316510605783957129806849651011801982559491403114563045397928852797262615760363762087500640537406516723409007375937887430388304765421416752854296575423749436000509150936633432157367099538000231914169919793450298143127637138531142249310934831300542393614714565823423968983596246522561746985999744029938457746238832012167483924538304300665092718947457152054169296993864588401947044268480877650963296528011158868577570022377502811105001923692401780257429066852988106573670476519619942351672299636825214903433922623708214781305496025222233530662569245724844251035158977646243781306324350171985603102894127068261641418802469117513046651214878957096338193513577332544733142823699382978229305698926419304705695353773982149524003569070325618052307669156749598848495264445893314785022788252530944363879271439235660267018478117738988779709252021076950839175048267221005839698897462398900946218981305356939106642666390560181604346326369731294994478091004557444557739477450146280531543420817381440178033314036800665395619102858169519925587512492115579610896515293253871056233008204347588400784354528792069938188277285348745283115218721144727706377385834731771303016744962562336516720155180844156609903839017530132128855520992163439724080727836112030607887684304301418829472913681371889686669427595759916042637622517361469055570380391655242893460606677633458643534881386439569043311194246167641356779717141908621535598005241521970449877724124693122007007965765672461372273296522923860469826959983779846673746820834698295479727031167046940654260978134690978598146370619811180941577727634325160562777449558257476578818343717893519331829793001461922490035151398102294108282605752345289660384267758314558183804982559918416287133040687692873075157875566560187469693612190905227357942497639547024973294815279900749895339510264592020201139359449437204869579776519960284751397968429856544652783345237130568647922389651204049756575869190189072937293966073324635790166997828814611653770199720328467358996164972247389262460908520241320900258903020278566336208006700349179849895858478826488743617467693858294491618541271958620467177011396106945080362846317137962735800141989283177978695117202865847256539425335424993328846243918809495853090484597810314508927518067811106578613183236632258848052711964464828579931814673855931939330536459406682068067146886144711019775556111712836388181563382934016555041388122708909239541698108485445350582142592520720189386091449157679965412282702734019744877183257583512798450882478890308743707383893971330640082761765849977412550092732916078879942539222330594308650760990951868384635947608866670662133333528940783574476126489925729031655340313253898375337520715753350564522870068768539985744252764718424994059419580525726706079409141152755759659225243317574648050287255176015339405564988525961254848091514426947719437008675552583766318933682785267711265874981553758743634633494724987557547324225446300591791762169974352212898949286303902735808282847133435400028984192591882939807619465651767651781089169907187591972162865897092463710805197245935425625286921430216483164621249378072430079780350923442774867867591894115093597758675854899727443953380606396654713953451125560685965180230121312002375952751768916340786239839566852483162324826055270247297207791410025518150186077738691190080593083103621451008943960417516419333048688692300108763749496525777499163512824129534388475083030541004086383911099652532676454605575695091369101016309106937349610143031124595049000311040535410860754287907989630157660837653695167973704630610380666753091623875593114200769537828427691971880548372250052066233731298823754960562891579050167449467035929282198569645822186894831634192701113981456673907416058758174840306474661085303262881174778309838485962376818634742271556132503534837185808367891984426318882907250389858483672074100212378291389929778118203086444297174634318834276358892108484824022765849060169458030255964152210298684799846272696596769566804763307286076781810326460985329280370091555817900207449354226319747771093759677261836156047995237471371333473018128956620647643899850071457951844693352701620027330854281952486348689044893873471683435165322331297368403077479677961100203933788187983511800162872082580951628711431618275397646125124480709589876046212330813906628518254354542128676662777914504321079362300389060322219581712778378104149966169249670105773364704371119179578081726385156735983708020441580548341490964667512570350233064284035047186468022077647944531190351809509614154896572204727425574779921678333238108763047263993071665268616255811328297392713872481991145560404215241803065376351419841394006791383375108883386912173215355266550214504311738901735327345653675872094301817911908332020014899465058284689247062567374117933855795587783812189066280787391394717875336050869778097511733352464989448722884281598144667928241834443726143961111275395266709512577100459711212781776582097367281905243951888171228215922287062064499504617466048058041300253591687611040567575801969775264108684878636253331924004984440010524797141312807744716876898799075378362586072715140839158644175069289279076312722274297960379263571887083234009405475021860412272310727706966540025633430298647624288720728963189324592873503196372188865857119616913714831902513445111297924128946017219609571690054765587408495679759894371152424448305344892438995846653033818973947269650667726742978962640111242422742797405515174453734320108575479887587738331985039007112510993474240456583531202760685416480772787771545715611593578625565793965878325671382963962149275857666568356880926704763647559994858913320897926725202517361155375500546197659406618080117105099880922523125090647805638843577715119333408985762619628297312174991829802126587897734650473180221582214949935800311602524272681064117661757192430157193160581561281285815876301443773796240836416852147190844990105094783401108908202032915346528908319338375036352689178924714456804469550242259323566999493610514677921585394278249805601603803180070508999097576031089694896225387913415316179025800741253533818541492783613192806361146642530654093143008141059062082905964197448784803682222641953001492134016283068425333759232482834173126817306304293001723900688061949536533769295820918247665696551410297175980816093112465598705742710329271352655115582860175567317612056062252552660066695551869913865461637744382223117304780933864102726819648894809200658689761953614296784656521272700066626931914965399462606478922258346166130549552018735415762821699491065054754393667014812301465300170657523529616618642507853456251798930104003966681794150015969256066740965996344179239250160180371854667485522009221783199826511571298607591668329353145370931505151432493582312671609265188194397716272689514913489861637061250564120173652664196660517051736841768242211676831839105569947820379872576989844018060964383909128619789239781523714128824877087486902872599067318274644567405116251984567259409761684343289115150444583465384069755609313189107574522497150094996702921618744235151983747489713173055172530679598770250972678282039063348467950241383510420020821460924698757500858935479939092425870300206109850829880284342643650146041191086374029106972776722912249956636643268334552366560933278816862024344547159599781652374647358404192847669321340429983227782822774580086098297554178478237584576947324159619333569868596340385866287673636690964293540294598527282707611596062185318925348419167808762496617199537532156369525777733252298668095030384358326990891933196256572768759325543150730251844249968252970284777913219599298210287095922577514619073049296947333740431362591969325191901573104408569217292816199926560208470178928836504209128908005406317940513531105702622181695611211261714887248340153405132977500689270219330181377342242440939632301593476670402343251367732779646123847132547525024265976697405763138570857670255264024134704521348418131115322986734191818167644651957174692179824807863551567997036957338108677610754515499433823661944480592664277790472214593041993799321393991402831580418957722816060353047841279279291335382075711742030157906152976760016882630325831795464875521964244005854869293485845778335781611850744795437516669241685421298934404895988335678441297152631153637617945004847421465589128335884224216558009395471015304669856646766776080921327332602813546732211511541657828097041955332765719867752625657586190609854881869644791692369083694597196404482676250654476577607914494357630460285587606382958940511404308727802924393454991145312037675057964424433435617064368862873466808871058951104997755876408457276188869400944627750658760818373175444033006421526401336409728557908315003554033643040834103717042791615425158677192372660752751728191613886348251693309734088303501967469330734079432371462031653133979769602186434072162827202466528026520531330336321309701832401092719575742238557997004686739103033834611019031476863839904265458312851918191546362904593121836611223006460605530413118821406506550393086963504447787407057510465456483117305007578020280376899125459421844915551802908924999473700728096918808208690717130199202705899931967271541542488405104317926078217994922193218482077804625538585463224716450758787676838219033048212514303717273561892794927560600573816673021720511805838060546724351149615855791005533430652356411596507557272517139205058519472952399608767250554217760405125943198412796227388169176569729452569214375470479016290800309363377122120720976293475236171768489118338798589447214315974833848336014227791498862906031890738282059677989446400392844076004525787431152470455057566208748750798819208054180932675295334071342631903678118931434232759827672786238195493372022162240978945051655868736152354139832984869366658501866710318216397377987834033809257729549967688643563508602998107063254603626667847042067750302020299981503923840998639250302080447219834819418104547823069883128543788917996866184907994352259721118415229772300411069695103437236764432976203614957731247406917304936772662045539486149818851210401455205085437130287514860163336500351079690796694646318515103516050063697355202789527216937471455249814888466116820306161677835149451233119000006933060748494331976188039888944697059731762255314596280985318674660542452166606567474427700639017598894764996792575005183446244419639742498259943475763249348169908754691444624847501963033536993045517077940794437334192785326028079059059421745563705656479321076528856541253554509821510379837165649775205828142259091917045037124340358393573904514087845882571777774701149818790153815294341138780608014316071716258239065343087232947067613217404981154499224215692162964200219705729491187281269745668289129969295063879396317761618311410970801032561092790101169434382995615059144792941847737713078987296735028345061153801097589518043224200336457610989019000236778316695336658884213970670767852256096674896446363398088435028358574108676584496498608992232951933291087972268251687975318449102333824741121475024486808408460035336542671823663310088309783939593054734610276575551459255197197746789054283220663840609004525696753706647633490184013242555274392794829644465899220194826873062786244168199162680690935255573981117986950094783713925204375298312015501450862344187822877924436826701459869956903382424224049842497889922008616448104629235078198871628827551170487419477668622353751883552273397084228628172740363584711012048835590071320821454233153980208221665266055141389405401500480777827050447897454787410230201861461105874346636751440203007432585242228183351905393632704982050490517752554849122387239829331341940958575310955933644616764823439431314054425732266164182835446542901720314415549157231520981981874338667337358339395197138698241550211152641480279687603419386803354883939244564128588199158687880437086104168194149581694405006801856363078929192739587733196093597409528412210991276104886838414310319708600180678641595745243394368340979824864423210713563631824366507243038156699194912236599593403532986028556348128121199530557157873526612653249838304654832311642534381668762853256136890602543750490706439541469246353763557934611723567130416835548873052320678300118073973767166271080832577246816812781615533959088271179357403954899697136598785788246075987767432503017056289140083472144324420996754944299338655286229216940951525894261104118974292302967854240064277496936875296501940807031821382040058281764215918101359008012270269317481746564267625447556379166382772521964168356079413970573091013972864895786671370676971291942005823396027633141032173650572396005089177508122761655220986338280282566641750620597172748060713191689748311809128379147862976035593601307139173966663678640020452057270506177221283020992584829323672918725915477103515881944247463150969452235151042192345089750203081358607649674912629142503848112515293597282563289748829123781099149353341993777522729446517697758884763074654816241259811508119562725292922703415151665369245052817263421687435414047537265526499498880848954707318249190785468994165541906753931910176614583989299806349595666990256232564954452745908463137717711491455956651491107264518805295272970714953786199689093848177996641660504942329106517181692507884967769982011066738186204891889781811578290187489232709156410420344873194101887605162676612463334880521004077289605558661519401957833398809876197806305757434263309022826473220632231725187867340598716964911253580977863284657822931405290836374076309700924260942322414861869817219520545282571331074493481725468299379470802965526005542550867792028489852938020406644440693871198522304312351212154246015866957066992468082578269266943461735583794226013420866673974543827502766815007960942065543643125592010365381561021063802619360672955710567971769722939760296943801220669338392153011446582978918863559479832613331564028240886589383872383553564813069912728458632381746307196281557448270984255628705467048237900135703925002863089157160002203576975503184118542882148711321035364978059418123496862854078640815346046606957587476266800771885909456340068563745664545748924141408372460499576191313963535395993983399511761833838247317879055132127125994066978248728744015515375074403398829097527329414823106309550677708830220279058586493601692982489307577198862531440672336194326391717193503972714841742695017860519690699207269079799712089908042273486115123334110574708266041624436934994683366588054516337845415080866584938687510924681362292803960414131295549992977544155428512260840855558416980591065638062418133611221822321229728965787038687827263947797381989523965925767354059431513219232948994594054871327778692820159833053837731315603763472717489564646041777093033019446659563256389746204516980360043749424100213679366787765484244027265578462692292982008944929094389918416893724414805019750771236508102678698038931258303697696586458691869514205014209301649061863884212023245529797536488318040451183452428027035678204591292837443914220854588610728132936887440789509446459153524172032520786264050343336069802266164267772329199411963158165674842142146213003750023570079431734257454344557220324277689867108729309074200821053851331697420937016809231985704343219665531092171538796278045693533890443051689415467058650652890431694317458795222752840129696234273263974728765121106000524641782070841304735009249476374634333905782416518850735592892132207736638677244204105920794439171876079826948886670089585388475230042683398510579564235156681289176722441416038122901869524583970101453801781081530416024307801010262163468727294942774847659153724266662705035063414014488412812106216950472417649936622665276603498471074656739641657560685150710449907913517933490294713558161355648743242818875080018264024836346588094132545008766711145153126769419284649948611764348702892640063531267105868132175015748385266649523318151048311170975654630869075977499228175048922156469511150478806877887780075844303967966331832112515519062059695252620454258061294062513794260155034265568186757884592216074057794915699196375457326434039246868255940423756455093001243036150951716300410612758920566064519436452364729719342663476565482669878926024750038565434185918511110836700089633726813980054494304290092608985904041159368039224712792780294425871830601611037034117339633101987372026559717403598091787032736248810403315247816277138330811927212030533126410786679483464608239816127634390179907663543899027156812089459020882775524121594502500123353790415563117235336321078596047934010344278953872833933757857128135609701604533433080129441774205665907889362923347260590694464922046955328843823882774627758336474489941738400093152648738591034274478340033146744640657491807875886500007541525345820576209666081652232187271599793047997575013979540998044314208300584296272137002669770359712500249569353662886789619586452999805739004936852258061557200944094658070178486921983546597135297639303866210327933690307557946325567643124448841964643460991121188969639001882155712142608716228236740623332451118617901652684622853662665841803662675750715974742739596894065248073591970109869800129816021796159952994068389223323728687212329041088247316547366598041005843312968045386127530664303021382860535536802012576619192397665822800168364409246516822724029018756308011251547201881643603368062103075904763685949999344271767870047826568007291492297380710530931889710002861104492850172415181417495967077600821088888938902310832321824414411729220802504333692311624924403854699101314388086122316481830404488578281476330043734399511582364982648464752572355444409998024366799305432748416628806250557966280423166328609904959863200725910919896766743091810196467228360018985019158523930437356264620406000246079628737215025530224675174658181013220740148867633682244350077336411242743299904757344537880267443742844537523133452189416325570351021302112191838962001659172639791571924671174873710597123859643061452783194610044695260710529774054108869916353894025466712026318556424730514257897398645775241968400349489556063944429705146275260537622002237871041381762223196707944725487701622009377265672592405741250524507609748064088192634852588293680816870213931992480309874805752075654928935446717220468219503529488071604629294803617598108955593081789821963344123172286112795944732932970892973246712830872608498496736027449421687253315676088229352491976581086234870425689534070550798625705323969555314762242288655794969855515112087324057713030239440803388457556310607742106928643526815696510724938739143016168543118931637774794948159702379022237391761503299563496371208426222109648767317876100687813858271558488382039067765197527914997149414650733576676346583646868773752511149157939526773353267689644802006016275370593808891488732456504197934376752068334275940464760074055236055327974451158920034037164536720085752004750290018099188489489295711729254132678403461918960478385465164375114554518860091708355097670056199957009258583010226341486476566995928931960305777353069631570479578385508849026725489889644098956563966858522674638861418352835026612316123931025205516334957558682195031522556264879370281912833130568782219828767754334559452927945402659493920552842535455770899224403561541707568264996087055534161354065329661155867634599317501411918525690270711945632152032790662108304917788926551476251780630785574743400544881908773810492404850943168773864061873664704202640188522549360256251351740371775510032818536074980206505521023931278679177546879802234377486026901598372772898390756273793333539941661922423508554621319754279231188970528277543580716026598248001046296934267025880632939347023614316182828535933322350068611071428993626679960077396032718007141764252960999126937877528390512739940635322342709595174672491308823886693871496938163427102197453974753040498602748482017063466648913766658574986526398790946481765348019291647172422791312739047984631105464236608818265069240291552215822964928894384104561510632731210217074380313201894582953980481436417404382741038971362172269722471945096020503566711888062240918546844738738400909763530024298806461260601080421779875441360496902723835397831847430208002069296016743363167949853318326420587874483531430347596521683339010022915314241422006057604681056441929676904849523465176129418188192921489532593267887890841232957021952843891937183281157629302893567454833545218101427098770097183341543551956609715000401567175007260894081372074373662671385864156891605437209966948863311072805249566382634133403058500550339856531067596884039600401511826951304310721520528923675421153716800852134126501138432174595383405247801592567033479063251995823697150468669091847394197032899917054459836329727522112689182156176555535574368268287993628290893361452895436546857701616779122477537013667365893573225170528881232327839686441768701077614058813381887716562141053437727355913323922281624569238274540998072404344551102124429038232846449468834020264399706955705664931613791337782188505194558484811605656154081065025684650898811399093811051500970777448956344558426929681504914061038040521925685359968486251157261830726084886081557170028679385823941963220445544000761695389078415293642477311978799663739837918076961044033169050192251076183320374952694193271070504873581690102877703522426029477291038886165085960770312201044903222886575939605534731125279996545446826803937562917307729802323155189820253921325411194979568901474777115302735597514935220421111308208071976003950055625225499170327493358523433736671929371679679009430143601072192347331507788002916713984418133772419036463137209795028137463053562855954007366749414332183448102984918207317904503198199865109690293068306197869725909356565103985299540408976615324828546083575182023001670932408279407099521686087890980581246345278648627036098531294775469820541833405562963394511760796508332464957521258442824823631887010423026579549746833427211633733285594108113279314576021592116835292633615533769729311493789802590944148268734068281678721438505867414494377227180338281246516389341954301502148062029460611697462783634731422747263676948452128937991314834460301528867746599686763137154795588776452232079129905699794920743415106968939922038006459801102810374866444415263957810788280715150991621584135587616721535194015793638836912451078678749952503390084400187099828642076654871315040653231953381566569501578950914263538239408547525085246829663293210888196737014518557573356570278454106676287173777263577019061119616589561232737474182512864005902990208592146524505238941759013421209593111044672522599788445532963121840062490517934382372446569840668515415313693237426661659203403685390644529592374547195756577523917774833576909755487716207025304794487941640481368535779517677483765348283843083184054259413676601773463309364254279476438719128338445593431654122126957707751528415074455945195736893283040877755951392804929375389876516832062168696136817394596084071218043401167241026259412406098090650292005575122840696581996652413937408068895279231121857098101269677987758912372820975584465447017904771591217021063080183813007425445513894251781228028941859954110641380283110509518360772030246940594166424398491504982525329639938080550783370275268870034341968439282596950659067373185511803101391797692821374685399585538136063415871700848911669068042263562726617315194215921697615703513014507761914686673311824602808619467507938795124219431453631310082578161754365137736920954897271019105097217175820396829660700035584311712663787620048241343619438678174073851397280011695495069792154363139078441672112412998649567511923414234928690068631106551573224150834018861967485974639962204272159074985421288852522004530490741701180233049862009024059887261212074472474755838312906834001796735458265546734338702898633031656335143448146309266213942064520389006033745441347087203740387545879302508318520464313006230606468394669455385147973510199022497015993119732968331445966704970204109566477401624220149970647214537593872879255092144176742709136897263324184706353451707809589700629583731975238794743575476798103995949641006648314028006467177579406613125788361063857812109921784814367198106219898251750477067206361686169037558869081932822450717190310080533352118390734265285291889155406096745118008473007753292903492920397512396971225563561214694384347686233064128483436228430608171438871635704600637105107709204062228908481235208414677964651443841511035766298787980655838263836710591690458194603193900241292232266387646537444792332822242944933708476015267410538262034390887811313210615549488186520595554087502515133761608552447591643590392108064368539726720543973128653689322679086829812571580617018787272114946143187928271366359354407176292991772466972511012446229650267313216020372268611643570305938939710690810305677740839263926887015907851868230797775457601830754085357800567774133011503491119500011050363107058572733978389715736555326000808769640139288824886197344340947899320500864665082429787926881633651545943925146512350316558781336366317901071508677345923818146549348146260511665990007325329351950078811272978633202233260178690254952782850216075955451981237052189248095055765667014268329490818396188936073304860279025017093818017512927125934817270121806432598467251295378786750464272019299381577774030318321894784532655598226708275321790431278109632124716177669800872924836607767031227410420229169487071151436205620291363695638395734157695419083741941200304360233208988010491403667173714506928250776114996084379820685464274464560693314104791572571471793531066830130805164173024489534297934166835132353131173523195955558793179226034746643160419469526141390359263830448190632613021052066436779511791963647772608646847085608932497626723152703297467928936888865542839595548045949115965356101338646596494505939748495482929798542498251779223951234004969882540660302518442795828280011482957105211237412763679982720467833879985281972707660770061708269359642658962579336677453460484122278528693790637426075602403820513563319097627004308858543987773436841636430126202788168595114150398815185426710962022123162749792842006067988830567660109501566034560846554935414625410932579236349155478233201639923957263978315797123522028316991013924828949744196206002385897530418010763633936109148248754645310659960241667223178536686491275454618878165863113617440179236229316292770492388523918087084016169826037257798976451053735821932843120550227333243694212734580915298316076325970972126832212683262752390076156097083880556505555649965113841741103319334250497414263693552809812692622770276377840593558738297315473448387240159265148754573338740514717716062801528956103084727754544174428204049258463114454199268175362469641508367421508181832417559203844848238184258887116436859341360223813883921470945972584814782877483919895685078949965507759078576619628801080921713012084972262303439836629930563784104079698920336836916603722754538707314609704156666936663324256272063663885730848640202891412437832616877170939512972482021551451232926550212768332309713001980044136962016655730139106597691877689194138580536841044585289279082777288829685229266537949018955024841227636058722110880018552946339861892684753098517696751412120211528766323202808775231419901875970961947542160603686595794444754443690193382417075891645559328867137998711284357285333166102623634610270974630933112757506810009267051621747643220495187688804030084254177217011721603915732778942200258169821606100061780027951646447876786013011789933675877224147277131526083195173294708544416087097132324439275763112392433101514650070923609720525454073331944800086041585918415036973043544705155455899088725074669108518653549648236840430428383055956609163253796045163242674197773151057615974807129477514047615948478983870137077192152720873827896855319663061273183259531427800487185690808332202738465361418527288441470533075440616951609921683505447584090002216535884249698812706228414843637817482470829655385179419143436695055159871654905969967488225215143901640540844833732359931094605537437393363746192608087035957771862816128659968662142527958266194670684560994241375421973123598555374150063466917555993282855031872699979372162750715625192703745313383994225172262215213924874050549669154257828380331192715290469788661365368149043338292999562866394694314423996114112290888631516667366641214158004377333239755942116530404540362832500093332547807386070267135301140455298163970203586142694876312995060757808774826967435521987158304809000025706285422339608292052595246145498306073324943643370095436577267455209398589773478277156350599861094300038666700622290291073700344559662458522744085095914566154576407096797081997165692216909875760999621559413159662428447889391385687705664266550248918362895461765180206273949153338320757568555526026244072415958337948226765359174084491969533061707153704680034592195666041989898224460109624834800016371087483691431000312872387266179269592835828084247125956951555444553968516587392045689232085118500092232697154264390845928303805759459837027204360570409925587770442589646168838279847572554715381270720603337608662629618434148524761003537892979447646685659533136552627334098071643457904098110729895994236146983278795457925363762298426927094654985208986622249793232187703098706944431538913684908260049977371447710534510562781435744872560122773171170827777445196366637656017369471795875266116790695386703872029108028050701102243492444930722311544360368504682502014441766918241571146801687934185858068238516173584247100651030192426134472734223287093820223511589460108604584307280635234073970085114382024353220293330431621191798283610686222012428920786948552540188615207042129237324050346786988306391662566754514064444534798413113685151880259602126778771985840059262065583977701054123154594506469246680477570761252536979721965961244469771422271915679863706841163655485093212538701058161027815537759670076253135301469806226068927294454534070761874727808611135091795356228076663712555082879012422676834938107298196431702813840816293733037873067145553361149999079839536078394545896840708160722411467363070911812188026717582064397504394640172262965493814809897884000106380460716593400518436358853714032924264808197489188869100887364170374327611150677718953353151774014333123569164506275783683885765351315410290513939742286782649581986673638839257020099856938342590849049671213899541483948714585900110832839097018656786555394637161436164334418784797751958749023251559798694884997767840460414420497201378140396897219782906991206970271992270201764442695078766185423805413981763295950342961862363433598329696088066690274146621666503174364370306354497532570111871536885980533672500382687711307437065931865361731797413294404285059899836122653432432588050857440853131738842843918834799885441661809529647811915089128933421467536600052761084796102414384944483467714761499776976593926211942951075565975368512030293583837296659752200018896618348608062235525953829198542328189391960592814093781900935735478363211428432480347330453594817563236927214026029299392800621785435411189460703526963509369846173195351158305792204975972903093532448342553948100607343617831122080117349170962977911303045350927304268632557720644143339416902731615279716007192653705461927005190545560491682850958651961906131799152898472443303227199566754478205729196572235065428807678344805005677100727795424520959238129854828874211074251214810059642037544749490708507212479829319152312480934166337957489307400536180041992083653843208086753312706799724928875154453635609337484736156083844264373330754623373324023591970749422691236347177953503932312854108078586113745742018834385870342108379445259321014528470508127849847309421701017667323943810320258623691818976847352129591372665674518284468391808566090034684852500938039392415719884026388730618515536561728043122355813631278724546592268695116631090109564666861061335485743058624232445207941446026309402563710878669072700694763527770642276967591197000721212292242122834592018105930588673802223533309733832928282157998540271098261740041947301943326963882262368405520205917616398747167139556548509627585150679463981370132417724475718680277071491678836878786325498247844097609016902255980488188110171235531021502319540025058553505369782353197987148585859360005084205378808700947127836775729954679099473711295393088514994281756428952018722754387005797712818131040543318153510730279541162948518481223235539578750496504172263407705792257469110980343717848988931734373777922286512649032180965069115881053221644242636797724628731856397154527698112287389904711977281553202222862707220501166422037104620127651327762185315271915156683945391096267342448334990515600906541868572602644656872038614637031769282135188541811106656266353975029622663757579001220894550560134207672942519539289115408792628913265547442819328855609493551067684668230661377869936416060680263742865244115125895653632867117878287774506825731185085788929124304735471871213836302352594531499114618085679400343251651875535473971621516823096289476053912971908527697768012469341203674971053106723779394630440772051103865187634380108203941531675430288016979603375584165778632239185904109942854490710845019504096422878016324771186316953440466347695278604923103575960679427290926610484083172030750931494790402908461180650854317460325952907452953707702845688617104294035722130898818350607537791366383037654064430782541803914387554735752486119548525041117669604388775908339936991839495189138479186454123707433904624938711374405215774781822673387631911419811206698550541937091988532785763001509931069663250407731446684204383866882088421038075431401095125458840125728053405489950853622863570517260522439533693442418928705189631565667619482925608659748097345538111824050843257799821952408992190074156308273798305047995206724835909069424197254120124453955984747942328139681440413599611483433407211509273092224891166928888914750482456084461300183549305048972111959252279933752176060429623954854624770453886294996639698848410753648227439969217058280216163754675563605516672118417634462223762031095540031148005116786329058020911330024862897077656287965356948262101632938057274239073872338510433624552941779098057197085667744222215155571348350835121988716852498660121797715862383456190908436283808558284798200334668136077421712096793520945470033983112655132856011276542079822894695408031926706559673471400289098737038315303405428454362205948814503327132110813951462138353793444298777456912898571968940690843520894558227421460070660121901339980080800099591579593377131914749637666158438702260127154010889399191261695403346508135117379344916102479316603139453859045219436806939618082066117022983046621561170752777348445007406909682248813403279278320135545626587196723237736862942047931720234006337612107865385178223210504213965039209817863623717378252780191283413436114283251188104862024689128426546164923956735434134387073030634222835368581334730699690969186773119085004607979474835406218472192272131774857831985629725095816209483532648647156799708849777619428898282040013177881263741044752121367912274334355060685058703039295352054612911280623473268691787585074309632390555424895428612014518715042056354470775945327734120495100131710344106818530187233141360449412062523474730794386883245750253869877020264511423445508703092422385128188845873043924956456138329452497771512769143805221322397192565498265699497501272588321092826292498927071537041879596363492330204184846253050951735605996161508237702291460599338448837789438566195062779684770832840185516513324415784335963210267233479062737112828091657197085677304605466196840069972544311706568317425696001210490384385952435925258086337702406304187968040702476443790086405150205502113104847757208912928574753257247658423025193706453929262639432237773941084999249625053405633373929049563913942591453828652235080498021482937225323269766751242999997402159965368096931770718856512489315901223879154961925383565585871482602424172619892276179588257297445557025656134345244658559781390483224405326474372106839349597721825229703925018853404572857087186782733224130487603412018990822237842814861597936375927778454319505147541085185685875493480445353664556025851654969596387889288011792706300564524681224999255787705553522756277221183649761303390216709267743994762028389977896984800363307136346308099223863365326713336843551658953117047385644949751987408367893277229446148118848836567565103371280037033851791699880272636153183290824802665805930924776339095900900310949034358856210013782996225263897490723462867519534637277549431963004826667916654478282031060358000828459593195724427258911786343589471926048428786240054824185687826431128800941126928580370963571926532396061286761348914641987124129723669300448477708049043728410284144400734469679582185802444765523510357030062743517396066156252376410144805108673497867393261620273307654849555272013407765300958569640147036150539366001326980920847001751714600009395243512953875805388203731768351686186594630277668973382357249162199288810397165060870693118657773987042946777105716185021001807618746410694096298447121936578356902285436874119947324870714052548419869872706915641537980198555471746234723322825005486600639909723659363429915276998109751969201881798391742873983575911257416845749890890934601691764074783426731755742782677541758346375575358876789097900377858802786772417737568539130731061742654387134226762066192077061477283557037501181087992318989058040451465738960892593890262068598579422232952941937164213054541297691786520374149025825989230073331396995055867637399278018229531763942388232626681773858531011936047668792423337726557464496300425208281498989476973807543554339733508913036113906789752404049860053808313970310845385884353482915085645825945650722495606648315549640190387385731721416291237430154150228889680574649567518367633651968604172158843454821870780889847034366886340097352093981104015220126771527636339974956791366240254713374688339748217241717834688587057208506312001311745767858518232656582756385394502717813848330449704069974988086559648418376695531341420092233052640917106672092838883635154672633870446835558961716973382313643166957777507464301608486367248402660591766988117627590681328014114404243314953262205788928395984394395816558080455343114906825874184307430146431308140346608187307060516040532458602944767913379272699794891516978501936489272788879136601693510242398299258734608975808557009874871197471134991632933844288447670930051070757191417933950163480454541552720580532219738568579510772630761829704938992549361188420404052242304755564649917458516403991638502913976683474593611073848598771788286801168446819997428243112978884725994155086902867598786603507132138957293033024174825611786198603534230249618132663168026977551105360201999227641764664194442855598182968972762555660020418568126018513425839921623510141455472081855364887935800644038779927955116911940699160391091625784778037344567061329724973106008842386720554686373110738936083628381663111923373416884857520193278357259305849526497171504669554402801840110009012023704385273798893246073087752657604306080631219217757030669219006180078233165128641300332673341474079353810508572144488408728962938655172552841658095643532118667153326144171105885096638044031164269991505547562312693678021076729198061524325676028846932927348252381646025791703094384416997585377350777434010349402045558792463505206462415793391881747434457922241100677136952728081795180146275290701925047020454857992026894701388397600541960381242295880155739496467377189978779745449391000650690517876384823746484782640564946957638638437226981602868149259685087386303812845654176358677235831302630784624918945123705517733328144594519795713158257059067438077711143804052714910557344491778882143777772133044215139153351258102378697741234944592778905047665570742248216648126479221488228348653253193530248747844299132304323795028704653828045143764600777619050625221689401500372334404430984367037366100117000119156019809857920035160164753232660752915375145403884199754408963328980342279533472795626125150632012009200555044589884299138441409299134020401655985302821327894753902337452884577521336049558154518837076665874076342789101466559423011913175652723068804528702890152595241735607063876118603298174376075848328003318028827037693327150705253759122959703163036477314562952046712691683458196185668834157064752320611645792711625135604471002405484948937656762531179227005420528372229189412041778134778521701005428830184984502478353714989798628705745506591613638097011689417185794856376409559923060432690261579423449062426472291374687191088457820470844406987921282694296887429258219532847230592102154939386590967892891053242535362918314707583543611976220581148856389845171681771606824785092548653679291100874632542351753561523308139180765501119601798428776694630214668792522007748586156754350658318942614525940411074260608089057789440375373130744478706803390493890227941413294896340654726898929646338565041284466574524552589731943491421724391501156948155565162194170020322703350424865151676292282233854782819125516087428987820114549033888709013733715036175649719926368575258743437711948578085556245432135463427820685838290596809266852338462337563044747863257826515311301400459654114248270817407524924406962140188429506282141248472809907483110360935278635623063424624763663634903665959456067743186986103740957582369142601771789702010494091051986699932841392059020139194618638012711190928846660069250411950500060815175032011602051193340485284827102414351020897412110512710604790850786682503589178222947930466627770061471041584582703661024620580499826852188405609639610498266358412235988128872212149207130952670837721872534865203953541771121573095833204297062002042251683877507008931474904212011636685907237068135307347369645617544807282362061904635570986546695329293467915270848868323743892682641561298897280097416327542963012370589251460918577638274438381591355015445045109942014521850864996831949771556984318374029992916697891439978525115396757707399030826819281716346389478365816202393171274469547064679686816596492714527617087473759377920575138582488767275987021867152714740999522954891400342128870025499260201465823020207122669970888381262145429979210643260370306016281874394888870753270583347310531497893958725726294021703893078791398516452432572342792392268663608358093639668175407329244213981532436597809101833259193731799170806565461977938071743374597018111799987251046974865724530084424687712091711666252427002778375891053122643882764469003576093103414295706448183772978090768198801856815321638846852499895814863550187489640556930995064952708540259799510613877310555579445723514457034633342877250285403060586629072710738598206817359925296206952579959092515946895749699456384017343321886777628364442539921479909872049313562358341199142630470680721708349202227671322638009753841808212261766286046684208985720207752922061636693485250130346401025717031041592081618260202290925298306160932790090114969370910937242142733565374735632346840409474016760822826703873221497022645887265125226474954730771811616433112714974031481068836147580220856133603672809102657409413327353797769386496342408870663659745444284932371261274328414639788943780063938745668884972332913630580564815418372346973581629505739896178510985078986719504364972314606722140823975537111842999389658007539293667420982988750133335703236939966814689065243798238346002395521604668114042645973340521954671863461064160225194257108202586858125032890689554897423951072662150555459982272217492919178843475891995792343766817038737632809589134916936773658181419376836062451340228300211184883225204323068423986921193013856498337965041667532868209873582367832263578531504952585940793582413564670367609919539258128377305619256496864155273497521847180076860276118918770485955018088660404383065630696586215828219288371019605118393680905646235082239306689224947613899725675987514093570518659035646067006526387928304148223307094619015729087081807121373938290870165713061341367340685937578059831831574732636152949099181862577039987016171270506560039992114017195021582504650528756696089560655526314893882543404672205205441101446522112167814744006667239548049216395111414799827469614664038696216967805912604762373164453781620732988532183444014712099963323890168703522704058643828545496950220937774934188888340403357967916354674756348771956388624823839595141328574123233420971447341885200089427555713850778314988076048947125017316311520530950337662363829072586776347123759555189813161205603621809186984294324471203894961242013365464539265372901310490207163370346714698614553022497294763323786832070465177539977475940765598456088709010943882579205698846429418424974704146595193437344692381286903327289074130414645789719775616336016011072998697745991155745702243473527569400346064059673144185196231671917253526404468758891247272431274784085476238523772303468521676869801232665750870207065804718162663296899041528587469820640783974225121046600806244340855269489877105631638542432547665063937768371749316330779334635124358209842265546676862616995475230835560882931862499031915075988459624452493634035266676079399257833581110568234500865319497492217023992404927978955265965465743970021204866147184658128090652049205221120437402365838393844979630157478314933960840208908612871595596557803336091856257057848516974738709498382819990667207844820357960270931718741893056705863148901258727990997312678036457843694939725055080190806870066478932445912545998475883163391353724291727010645957402103472042042614309765104513326708568761498105289769992989832577024548446055197590652978727681735235775166889995124785376311209230154792699826516314210697010721447750842619093479104462933247834472792392764631955624408618294075883886210915637884215430620488314895565853737817877809990342002609835393082375095083467703647111442579999745452378596918198692548310687462702417549851387940313867516662289202895273941128786582648814926881799783233865596838790650079058185146940360785004458671802305636819283487714863644876341957502297431573883251358775683979838320171273413955295222526544405375405517795393923044184178766120085150608559661061027938227687254804876170590051138148485899279603316320483124226763650658053123271511587339740775450970746157827122368627087536507571923260362687195410368941462766089792175732091241882863912126754355681956084820271064784955811805071960387254137613220126843058523197604814187883196357765505132446004731674886414759687113675865520866602549328885186489768017558631326293138259784705891725501510195505516588211057398072727572045949455930778804946874885646044091126986795859496586227260163162181516570847032306845304524180498313926812458847781679446524136600498089394562312228941660368893366817332959555588903886139152687646868832876900529911421647328107356560937346255424550229438163073335743659322340109251481860406860138449657626766337728337603488371848221289443835770622705335367221955723887207708292471811601919647486256100950521484990463791451569064251578843237177843290094066046713340751128317471829274023003401453290908997002566496619997709141780503380960757243512167625244579238700047837558440229899476788409801588338253826394425223552153970163627221962481479668806481622772483729432641975004947894127658060965469979481472566378815801744622976988832325074718464547926939901448843356436786775621165539268780609290916758708569699352455474328066149966808644754685704403274562605090021228830662585760848482036135379204828690247693371310224265993363278007771284617699764778548895142942067099181462092166173235541665638308706655216852824361260280524023217917176437909248272893537527420401530973602089726544849054322265275151169415022847656401828146243739024750721757725582469259087415259578910887381751999547720067570753522988251109704988674229722591074097458025344973252085190203956171734846599436257446829110549644550885998569922590305968567609058835305631507992407495972824387845361405832447550750185003485244276634438589767025730004969411742315017802607511289790676136188997921877263331413313905257694265862134429905437925490605748385440556475432705322982395114027032218152469897407465967462342946686673186752090208303955575906731962624355151342031752786540545621174358481687927542802318602827732528868205927916067798914661794160048486035166192382795034970876025476382179005246967443821760064116141648644878064854012777242787917404031700059038087306089023760885993898273102277853613631623271309668323699428471841156256453284562044812293686001350451225566164989928669854863210634508237643288124532662232973022094558529817263058700822051123165393008726972171576033521969567976544011288901366161561788121039512567747010515023569277379793330018914525069943656036677065959815859692331292712078293218785909765289969904688421509141852748212062886679720661153814659127112884475500897397102913503191528587107868118826822206499036074608905482926875066452890237608720519905384794534176328340348713648033644154099200279978257042611155300063058453412635905650321433200628144290341828530340166851089515488715273550297095865081289887308290133477330726553249507144451099403405324222019407978137224270633128654966889404352074326175064850480124007659615428227815967511477412124329813804831854330259018635763692315293619523984240021760557069941469514616706193985897728839886227546836512589023044430852715055937069466307760510189031707437853187022723714904928315924158101837996605625923121753788858082449009755553981413773894972690539099563239010370235644725876347534383414413040984199298272075588934726087111218715526449421141914914799393471161452754190698657342624427567847516626557506188580743672664189377665623476629432055682563948107553402665730765369396829942218044410413491669670153137471592917986781523245797877456833854114362957546400021059689326742917653963367878522484251359412467516092063909142935454941512159531661574761664610598745912660153887141204434147017466880211394301610909750322900742394464038381429764088832046202785344895508459124612753311639266115779840254961159247297711816230077021025460536752471255712751504032157777882940656953369641891072408247983668867392811092218138649590946962608423835503855873107824554885355595359090195638814789335648484337080309219307254723639669401220697064829258831156779368025941707405012854611807150898856515819205459491683932957341392528899274771811300956782307125622226465891572084740891810665052181403139955312595467994699371665834712829254556213828032314032781980101507955818774650788269155754207618360713342615167178034407419660436882677016974661662211905287264121010101469978655107679758158170995801427408653797373058118497732595507668400500502002268551208006303462629165707753906697348906152522258340551243325638011815194686523403530403656828608442692816683876945798956582668740314760485519856832811731179588617731118231409373497913441166774448256295584462544035683015110226972075072819839307527418827568112164164367403060218623188845521415879324316184447424652324228205604294939398079418862939970619006248832153578418079596346118734281826582572870749607120220468055882982480822314079380758393046949424945972751278664943527579432649584258674097572766383377884522549466806768760368926308494643787963275912156568755641522148198234160332327350641822764936132034003449368432290365274147762359588216384433998079973589974867586716340376879070824611738287259948201661740041220035386225501994275111356295430096856597895086231373226893634776963345088655936432148476857094516980463308504351791105020240439467514130284981373213156658305877868439750535499457990566522872836305640373373471178607157938860839814467109858537373732143335036680039119934703473815255561387005504191977011936585360165112791093559278616458556810906421534600965458236466406509555910909105131732848366943208072216713383267222496658542161536826310262867757624514634914021493491927133869349070600845914276352133681080126522591342471671910660818031397015414869386784665313006521270073487216086025755521586191092539222446818700683790497198424668602612560906594163317750877071793094574314755858679710459383149511724949529273317041850057318377156367899256774363560258209041313799226592470641944658327081046338035110606004079090301354143920575418256666305129330614599607466070134188552769992258036488961982831162139606717495366680943479191210265443211549339076384787048568785508491845241269831618807223985323596087711996405912156320181327882374199596237905175538779577835083980430365847363690545874521500141132957571696087381574720335599756944556894138821789456834528867473374526735178490177991501785202552771566702894809301567311051961448850282637085381471576935185190914485430214579537387514072581491602520115925152785888951252240216691072766626579701764005526362610240347604220610309191044314925876537037763143500133914872708158893433394612660562129201484208616752495654740100315103215122720062386267352215599051631151156968364957530030389089617832607573902446551630861573311465173579543006596012963568801272787314605845986034970579673856734824895481414321658415706432733096875479574282182773562309086529170905387462428910041886485644206442498259226130042225965510822873598356054370914850796819765538102434283534009002334068764509473857964353888489323794593802945092738431915889943303093188391109654723368539353695364754840771367015447841313060524161030415928805845530158984454768100277877836345692004851059306902225066959158087443833849349392340315767979744861908321155686002141690653719106665231334937695357639330887495100888344789683587030928874660475611682495113995532038530585617415733696291087189960429339120633576859275523013968873123418549746581646749751523300336060827531276956130718693732720655215835198222438511708622033185871019266733594029686838192534825147460561231528870691868184635307159942059576228304202369730545287304080145303457444050481036313966711326268985203399383780793404247329580220638717619347326710129255422092860247668373945077528712608634815425882380281588872235819011094057883852194878717499643327539260167509142432327498076737756280247522100395912779903128759547842628563818362883910301590868786761072595155450055947227447001246778427656707327910019021243133313325666282159636250161503803785601469845493386529033894110029558076271776765504811356990370765443882584892520706335827603994375822087809171086842751760220812802608390852305426444655640885365928779775382617207352173163248480517954978932283484621237796168409987595283994643657821496317456400679609473681542000046220901021659404392190475691640523921198447560727437244231793849901783770952441007000392059842762191672280351661756204333729665297470275884971388624197773587698540063634156546623079530004217801409160280101065541460199993769065551337704741372456604309964153552299566317862569259420680456118279854817652979663884187188716295675476370212933028117673990804565771499042750208732346105887606056044644346811602887885737927369802133709745029814732947144759089255039890876805831583243257040777871000612539868148538284526875300028725628176683298551633375851653196286867392783965464031653001917419418393252189236014121731092666018427230166857105110573004602214647296828357113189044807327917995923703241342825034105017005068334308468301656068590343689477032357258563546702208111993109282798277021972464603231104696086115469670556205163161722672244444979865401793978469181455104770457868758912595557736270991104185227959961725035233833939291619426432929873914749860985241151185099112102417018833367204401984669392300451694380117361586505015913764535124766830083912404493720269299372079801200313992575212410970681651582239560859674900217760047620194010322477588453738156005741801948384121728049112631233757145398262359411942170709929091318048564224435458439861874164676166085966908179105000678973067263486834778613331379458551301859207000063624633907922971596192142008795266517958425236749151653376609037687353071202647712482710171979401963551782546438290632460616457347718206617476959665367991617181535551055618792078589666246930821853765194613107884675319263934754784626803384939933788925243228565101854622649253944133223015278822736885755625593430840038213568800692725913711177690771643144442606750102294736322613886360238519065158480930118239901604283025896326280587519558031232981904434421132577506352204448285432784775958172925974823699126928737357341774134386712092878779209765223958030555321202023325581555211236061181707987624627735654721809037051903862953100558290542461712583583687142776934608159894543134842413540432294991268090727182102846811937865630229922550194858134885507382760968694637924123763846733157227782873538411122674649130384441947680010366880486790897196762444602395802811738814904383874450873632901531813291384567650743793185286715344295902009679972221709002426746227172847716842362440908781285561949924637669299064874497831630822709596025487674834917576582788618143990939125333802210746441688252086409546738002377626941856144332166057466280908917078803644931464058903824378638261662818387176310174426744787221012540088808719069388065293230430205703686038169820042245047182458842611161224342887772622427340846143112090652848594357508719706905598253589993766336955773829516237139093676382174709447839048025887177789922260620860328416700575942462639854134332073803727363339563473462143343913195608431968012961781333825137886139321633951816858713251273746364168639467733075512084862911021524063483149365411592669057099547652478655248930041116513734194462488676454169430512584551110233644582293537079743742376527295642988473177763724038386795295382112947724512813118038138721410440587994706531167884354871380127837188997383186563024540610410696978321101501425306177200598968489190303538370260148287879597955955916717840828508155802231829917948737003793516231989157081143526305039314655909561208735500414348342491727448332941253661459948852659488581407009227433040727255886153377741378723649510670491397074293052085055975273590389364363882468947819428340217815405901516532128857961751157266889583615197311223989478506746139630980010980769878250327889349985082465872228781076862428856314374354056425214444320805338758418205383788368020613355701770528232722174835095640690183684284612871818481525927324369840649651144302907914099409086015498086466685167910299735477308850314903919285968597470074993426374062146003921638491278042751370178756810576807022081969611708599778925704978898018829260471792220649673746795112258340866549465524171714484559782547993525459715261654196128112276568232267749506150103192384940308986504992650060441975576290247879150512846717206566973116413847445525142503123580712752197543957486472242717332548362969043088039720329656000026320649562981359089238394339088444287278713515059343176596828039446426178572635914795624902648068540140518344011701796922316803737337388739120627984924470358869486213307334846400737515137471957039325838348112985612063524215261792503383932877842774055124011007132703814213051828805261762352952592639125521237601613615635585907926789309276383285809392332348378623973893868147413926153142200207083981884007956405035392134477764222232991772222215869915384885580393141464501295496910777251730046769161225666686006831753903968459384665357085915982299460255629656845985188786412348235387996699502949158099781462025008144352545454440682764208284179671379607786717034315164934660376266016741421800961252865174504686507478987262587394213503797047357025839071534471180561800333216303999003565434152906495970079564576426449326228782427596983785605935212469480481454686993717368880183128842570033080970636468482025805867922007452591067132859280562666874634132707908666997738320326703739067962579320427152317023426197337707781238888179707805488185158473006470271474904522607378142578544129549887731950392028387506506050106432230574750989549382568288476822998566196613492039136836623554429119812839172117848698991727027835369231393156708620490351612012435957384071926491506533503311397642657049745209069678376306706167151591078068324405248164849234306130971494212448479246026983383143951087317382169793099790517091139696548731205788148618759568997385505568051552483436311744858916763473480625412866803802105307457012673143777579449942596690906190480581377052168040556637418414315165739024728632076938721650074250974764356717495324947791447671871645004922778686902890468053990375304245226539583640639708983807939597144133748166060921386367064200371019116392480080237836789220756872638275427603015280763322676647425803913382045164557412920454887846681529596874893192852710524236847812084479470822123308872615736271157960105731337964204936356717494122334610330921301206340696916440451607482598383566579640143988866453938003809108149700952223411608371579835835861259633572516518617974316315502624399574056567318121627845619130709779024163660354830781392798162697845259414947276685555703453371276214229770394227372631415955024184692368281167880642000418214990883680979586590089899661955769178344402716768071291341856128678890472084961536244576784695831853298076794664423208910423728501607626534699670978753576083249661332671214292919921496536331960521516430882421936573809374031502040784432836738688243147885848150395830390027920535723762327576776541483978125692455467438733260537850136343961451779521318335716514527769775497613188614743064957003015460865062084313879429918131826715299795276432379760688576604771139734504755965706212610392735202493089363642981976677322932325704972385077910795491991449589446549258066575741599946483937671592836242321859499607066266785179863503928177151592710512726976616704102696927377513561387196633963055220595435674369510052436362407979831236173133498708252530284889240473026250775804279568785051041307137286167069574648016277604265931802374299732563508978063205398452608951657923883250366272408951095154651380452178948311604002066648396573729469262231518134071238358682349123277445146074325272588959605925749681790462757446171593861107388717499143812344326694004970300009800756047634864797839899362270981796870010382179395799808082415852857373321600936982530459479032631663173847951117202219921066872503506370000080822035198694932612841033720210772678373393620877183420053532860378027716985599381254187973454047729144590313100769408616083314295098770647828856796496205649267599539308134186521001270313378054672279676817147216009066485741385200415581109491588835966339856923342691962922679183569812885413412732981010400582210883419351103358685046652123211675499518846931958560582556322886401652481133053573646265174682605608051780992039481470168845087991702939999190125509960304344103300854030745162239341793757776725524345896141544838997201190434733974747932572704142864396201481606045370840495629849689781969781812021209539495977278774360733778065740036296303902726273151898259281402271715523984787844372235853080802030499973701374907573966588241878775650742975431276798110020430337305640309614151262462210672399079868694490618955964588426072362226140749266666279668830354991596252420558696197460209396112356904099508504704834567504860578023601211986033483977934845081333027006368676951603926880503323854487675495313158866634382053126303693672649413543239108803108649577581320959699285017877906314477679059008954570493072351516356872597082025686595846698797838819689385270102887342954976055928203062963164029777425135177772799748466121362884196081883022453194994439031606682901118207748343066357260742633485610056105875575086245883455535025099482187217529700554988257718843895831204799269449778559398282675458730474158369458544401994202663057545528943575639867005694464990904136628033310096389153678342094537526150356444834859496968877355869905416117220101370946271779858260663707344406245721069981815569503053250801513883084539739731915433056972539928608373573794628914737902744000732856057921583612130559143369070453595039005512518560272591794509832689863907613778794690154332236522006293796912494361490556295854895650312988377804782011514144840222433650883853857272659443229284464043606404776915543461420602885094849798912543296198718595825805068504473653446314434172612309077125739583440747586200495910056361822687967754820736477549589661283355987573521298172896393081225085612064965543436443387134467672045232717130010046800417206224606565544616428446281051905899874670491347060931067691248872909211408593608086658302414205512442447444483467839073756243073831967659141491136363918724503759800758289010040246020769353169715900464227968759845462190550864172305748825993566098612848856034108327234134411466933624558443960570003221455383543811305896534447107246320369686345712402177203997159472320112568839237198349844613042260455094535039285408826537957465183595037530491785260797221093678517735331734582182584420382886204979387908063531188794483710524963746607426309534974478176465227232761952081197984765815514252054247588521639641180923446449384825267284208522893999828664865660108336694037047028143504320871307381162486482021897925658974788335793066626839753147769375390346445046295282914950529051568782538185847916968510994555715177977824667188643571397871160748105853625110528768781252064594853669266550089102054749347253889443649362420800084665446094423222057925713114590752222693746461635641533824990389606765638793534633535547935011383588938057401645465948262386557674756230383423782851802077649702510847317722448202757622160348664607196108434156197428550297317633912734440520881190891244307856974594897451867986567724851473259075213870726224832748369897317612149019937662146833683624281922073419563369962400565868221029923982638039772449406773037936555017818263756028059907788614300634405323793862285694887903368296895594160115081733011951925844791028240762269902653044516091594635708807671881337663688244240442136868747339781852082289780443078972916262984284866669643998876261595547850418606717498868753201881234034324544531718227104502996785820341196792501862311451217348845861848326048155981301761018166625920419534963573325040151086605936671878580915066394658825702377591506460811329753538890008881718479902853370226067407023929767133922749231814053473710808472835671684038886887301712512064569526911488750753203333360161414144064182537536235751966822096732615017939098850707401383227108258746190876216929764652013473599825116112032567691496708671205191273692606509990956059726899389347020300855132898320066636886159404004896538437248227219299719227065882283993166005913111602288119125135262075495252100562875989941830184288864598360322781914781064953301910556996635727809740628698746005140756633678889108881350621368430739895464232158013611703832319052089402699295581927227253384071209880301867705470702028724401036166732763926716419979700190090940915103823070519162897615680991671768862542074335332828729819212176797643950978439420038647810049410415122021513680978981217626409730170358131919502585934473755809383270556095259823361580920117490006242678078170158948435591904368056920380011641506637769575108397510545072218403248957749804873929900967578567257024994446407657167298136599972034311820923997184923682337324073773706862011419878415888573650371415768252054004350882385165606905386329525375953817435372096926983599373186033386693058239136852062070688087402391935528610270263935586801104543492651869573306518977042508115063034052256132867071480009636327250963347070732775898349991490451596993361902295746110911574892325072226711338784557842886661369163101254117231710980245744817111671294300818521192190903130814994237404852477288110104530116635924714606508225328007575313642896721021175308449733630958300475960236069309780048931207651881889608107322440490035425000939071375567372696922102783220521857135211286142197173750561741793497514918952635212859491178510881402437039502803228527354740267835631563730266248019776558399870205751297476385799753726856936879722653740011092978473783787496630834446190190771707742759808160268598795116971353365346965389460733664322495260469485673188055479190934802361785736053611042286170159405204690830826962669918175174996775937078409383062074087403807707752981397801752683324289941077139383343972471885825117106696555935867951023144406670865495574291553442286589704934105357941381919779784363575012881853082384168766422809612390331874670912224865493361081197104709127466795078077174861180879633068394473669600390335386924913330427377429119238546996043845732311140571109782140159516288819148788597815432672688783384124109929278500678056148997278667652679212520081776895367141485801728121409798077488808338978090229551443645922053960901259445207057812084604677816205847281301779489758006801483472300643998855055433463516866691942404019664187598367156002472736799750400178398657061354589764171122059905436074106948618919068282723031038544587486287789142350564079732731972568463157130718670036644321982968537917311644609107230685669692703493213932935678005376056708973763002061094915064765163044403565314411506133262197114180966600889399750999952205294964007899328102657213111307804778860405052401317300241056741842611834210764835574162483944340240904446271948760819594639313871952131682336222775738739825423074516591567433215612662387330770267297549252764058137300680674915353139629687974139078861571110811162375531127806339779054507209421172022993738434154699702392539048533986564798604851985192985535933111672629450699395309859444861910589857533881355898334597133814931192934250571353703277415537610411060886395951724433220617398923440857197502650554466824060737912835666634556120038528701768951088633738251856162647596267707293556533811192381115989533364563996279150507214180160855043783756136816859054309708424444443988265035946895673156733819462257393482184651371592884646826693149269357316252074282547024800610318497841151113955361937796939315107074813448577838757651926096046179900905814703656422459615935551973570598407088774232275210312361751604216162169577193425119895596054988323136332798803912512935618924610469903479506575688892944769934502492311063135417660817467897290837075905596473911363110420868296850144981950591371165482630803714142766685521603717393053485467713068004370146396820209495120775531766887739713336892962475725054163537113654797524075278997570112762202502676805461539623610625627427174113311761820639476594133326826897852779440093446269805801179753003826325852850972506522603271570449721436124675352484490172948725871167252391462877866273788651194051608661447986191498567664885962988427658339455499419844213945655731683081342098636505154913212801579095392396686567363521711511037291220064909845207935879957130674808862829624630583372330419341167574350080550624140143826974573062783112214072142404410653540337462260113895133569089269846544398613434560808613622376274581216645715008141265623617433368998745090709976208122366487243477679835032345748326902846534286125227389116423917934361997792641002951752679556694085691764431353522811511946047959850976368649685588056234469567047224118450643364049395301677089322362632694656133565648940648695127330033806361508618162298830851602935460122895772601746258605948209263659993052100947318865804748738953604254710788435441274424060342211373256180613081455082045008601901103803334466746256634861419010216016052076358754170859771816282690235914675498520376663296500723177824852970568745758948867004633849962521928284167940539625879748159217596425948016799785046032554770377581947707852296316801022376517406448842220757009822515085770393291466132843770902291510224841849918421671331748256096298026550160430514250891470259386242102316516156041275963920169805865457032340108654212699727150010125000340548807453766720438943940391607049607749797199198086041717309211154408895594613436058697975723684372736857222100902522108530357873119558935402820324175192423390466376392939564856419875538623388396056697322444046910296822879374269515105426646695110224736971201689786635412490672545691880680969270519803918623015088744636653840621795516221067583685807242634364805576318078442849235850865561789746072643995260201702971193868685361440322210160429103278660125454245272718112551208697859736320152349484675813795710822840229551938508584588127844054699239393478354002174141776596450177159829892763603992040337572762183891725713943860523105382222232614099341542147288878680595562939042388668677599294954326356693265960945392829737667383546773360967973979180313231955499224505193485085068904639538354011986148713072918159851593704436456588367739234946815442809762641521307488309798925779670108242865456346164725536376529791054702996556279206843969953312802450518148437381501325119651595042698843268425257775711873783735141264069076880461073636932594670396691593410448446009116010203016053533665099983391922629324111664961090847640107684470289416376159999777147143898377292359273571911684752289474665459898150188336508616326443036415502357997029074050423365725356578847429587676278322551420078450867792636400677060682327055275499881298764757570911326262992247054504314677568597525583558538879338308679035297853897990706977184676055324813075896394307056816397575884308655491661196097998502780716942252766790593127965834686162032192836009347744200553560605586759819604225305298478972030018454043390529820084131257380536339327757927733794295120929948836106556129288221078685282412742275666747456923007623053349321133067291701256831047573655316090525376762979902251228046703883664057277218001962447571030622468851893929291207914953464732558137115870538950827005821752944033781514484873513340202736904910172407241272286136066406788595747699742846895456476659702901706757855228731269798350652420752312779635289125337233582923568613024400702372342317053135402043681712101136235650969352128051719541313059698888970168786438868500250070715132923377405041728696422493798698902412204877876449436403251620066322374908690158010952339310691220673923394366995044203757184931556651944336427325990012060807627494905317585848238032361520542907359682161221962231128152270657616765484688821214363787808393489583792902856505882621410090108570744043014568128785259262517563671558954803219532929848853660936127814773662106658287041227736820805849226500137075913741399081487218517477554335618677269556634463760892519411107834510434891083754045335309398709084244738064844235477372309426686851226823507052510285863592455780860984447148274815174694813402836092911794357575705069973489443206314157668918115881556911086550556603712413359798191423002211327740688203864640356755706926173039264247204154079373245303347066328156799100753457586308716730948090157546003719964054960171396638619776849103104739772954986092986579185138849268323260420306316010097281394127194145289130792306558277479602958323555632859882727543783698799308106335668779474786439593823213479874307103300792924553111789404480967571099550705935415248706988352134133024103198707182889415725180805829382211703577139339277783390778660439646946330552787656141681953192974314112235676381480049798255802261837631167223376335610682990467581707112000645764843741690125867802256099659993694799714084187702572987459997284251355074458082991086849681699133608491892460726878053646293578904960820168398815588520395891129797798828382869591938061468641063332247494182827560915233365074970452514122353901070811272658200908206136549569379020359203870277402228763576940626168442311968007157471358383812223782092751382461307705481015079578888977417277126727830778649261477175454664249389558195513884441926430114122850474481283169022520444225054795338255224202089988671231972210722195245551951564539374183338196981534226640933013637542496418308219815377083664251613595780557315379370890927782643895034662620015664629078056057319920251852757095349799963885738517297367241065775626558759764569863523689640316486657793525110486300502636491752204395811724600848829665476042546567263026651378729854960889843575384702214186487615176532527559322007901721061804499314814560779590880045355973086967326641613904729636345384224784376763018314290658705487291144499726431885533895133600965074414134744124311607059759758279782329836311332270269089126629599668784103741618921186382898762996256946281436532847191415254427331089534872950103838915744792780828695296284963680093281720890106724516545376191170164914487236798923397832055448022321167419137570176353875230626311619192939631481340088934156300468051229694370207828224148218771027458659898988438010843717989914500113605820551178836481785265327455012708055087240037951649282555779054324858382607870363748285897892281818432164567771677954786352888177550866562244072210414049855950156364293314444669188218389520967133891618167199059246131930241414038002768493712834283724275162306497496577917501497155245076938670358170598220377001813225966395086489877926423502634633883635819761361043158532006984384483412719677800960919386943865374205829681672096250882118210721492533812227039788445975590766538879417636853756117802653455084036284991859675684540772885924985784190130608353271700329158554700310170738604156253073438352522638081857438886100531028753762985020573111797925589220796419509707852991240165584938093458659559845942328519403638900602955700398557064742957308834309779809905146641436087918803001731121155726740080000299707717540596671242340661587354257714602330017295076307520074572957533811793555734533484395935083177422952920246746995802164369368627819023668669693897984086835930514306752434579592719597411635993917716284244030684254140005555381771461560058326947107294169661219177248273500739391947845815339035412088803187806061396578929130674183254523256014535704790213528668379131878352758837241094885173396483774010794804798965807101818097228942489021728620889080446460935794908418741629523725355804543622440279729294659832616139534551869577682629349883233545390212607666032389023052523701414126582182809800148380339272961207933272573801542591032033099997299717813639459521459989844268046812087248999187384725540139393945066204005222301786017963569436450779973166262226822705603262152429000789673894842720468744833086703146897762671677352064284638407188796228104340314441749147376118731866886824414859232752461657522915071275617271787747069162348281014147072859671687055560930438919031216350546708638796482740994188210923295517422896193286162391525397452927944992521952467577292479347942468357726854330669101699032925385968997477031391600487364506907144614180311827315007892017060495603882924118590179127310355966829925076453275138117911211281956855992462825117928742504443071424319273347381434602760832609064011122420197190741674736329404115765797355070629858587873043410958967104897580337587872037102011593182619289348374906174386853347589870224337204129687577052748389733192065861526969095149278832141515885403215995099604639269586861434586556583995854264514515627082467200072060867951574332131045095244840882943019120068008291821655817042127688021760465578120562014167719357042976424233228940506764108448607216894532108502760142828932781151354167220733576867179076003136136089635694856026405442816473769328121971609669011233966753811505156818142976940205271825121674200751682302713016845798630773947271628297985062151827848206371660848503181863973639491464738752604592302769323003668049830992696797334766185974308172170965933397644339215868732698016177266688024148165674791673636739730592704888148524084374188124063877648918225780965220708099664212273964371013851675100117895976239365911412494544559020864806015570864250034812009631195109792917269745212659664661813849684814340826383364955091425325976238146089913873901727841974504715819823452350153703009749460003406226442710704358074661271953691135229120788548111351317502715022176250115147162458622311061979130418824883301531022529829505459444823676015498719752578212796227308905237435333136330654707179244027517791425253554373420265102455818075792877414089231360590903048958831753037575537368440812225130529679209679987266641384185101388572750034667798065776442275645580841330634475184084836020304315297328076041536297346707524203219753720927437449962464521419433476548022236136794951441331565949222286900010765726000557470924158761764203554986977738194333080351686527372686284698915674618895655712288912276994232099986917631884404628697478465914359223340930690093980440415542057508088973307159684813808049164173457197102528901688076102916156229159851571684495035620801802736720841852722485260594442204041731996904348605844723791484412249711362806972855409089253407839954316119677431091159576246182788983267287364099795115750647548274958223575505459802586483290852655236906605134020348104529432617648326017629321790321793027393074493804472430772225103479706592766994712816991159570280121361140120899900586594786098462918517940615537108874237111630047465674940644654954957741532876569763377925933772345479815208600194939088006326162536858787558238169920606119257377763125577922467886475806272474717856601811752633131585990898581391358252472626895491788637183965179975920344354643202550423533935739295713086768796158584260536936540185742318027093881103886484728589400274489393277668271760652029238831952853784841348367656955761354181018589071709512244235314227581699897394136278437366794061637514613619071184496162751184267613851203185723368168251779348977377208045422193769737505131467517957037032719717179417554785634444801310534359139241966642026669903728122563459250967864588491324587771479345604499198488356309395383861450618836126498875658029507977023360769078844421869261222371566651528534833858325912620408249655332693221489493842332650600499244978518520312568948615801069286757589804007377534903242495707383087438793190759083075839409763373588920947733455541135916007267134759262181837955034973224543330449489107431778935020698503632451709761017632974122415282159427660094949317036844462099501650446570261932680155258257940169194600255697447854549956827218041453984806782244558720145347166337131311866053021622257354881160125765958452716189612272344473032354569096930022244585768741626485801992123115498471795310616296805556067407380615781555386092500555082185860856494100580975283762398737592245861482204117305174880224562251798700510178344085640397671027208510428096957290840787261168686561844291129201340123406556477399506330498630697176235048993772426277162056114896396223221080119459440065471437923945255575607596675887387722896002146719951988932688534931102248926044111149400559272744995807167425596197026316647992730181267005462231694896092163009197499741701693787136293277785226905781429440273540338463483407314601442335281436982275644969747368333841647048196326771998651479265040434234573199498044937255842730522189202061010081224658069637960661482988877631007415274019371365794289589943917854412596889358538606302948714799109564892784874083346936934838036265669650833649310227834857889751864805055462067457283872426596380982081697579943406690421857274509688714982558794932592922440301570895741233391152460565249673541415767108093946216070144220926842582811704762052430141525347513098436430449253750691515476698443723984304913056538376895242678861552001214264930504647609300445651226126139113593877927681696279059208458480067263588000721548412275614138379412227865883554571787629261767303800122288115449011609606348362857633373401119941296523530928490297975416537579263703975210371368956403229373740465813279182240303256498197955984074533314053906044169376821289439657012946258695225087359142855665409427164688387661264162826260153127382815447121139032934455976218292718935010509567468754568972627864489912102928053939086855791663385184794897331438982557049311560276158271694323278479211590968789040975155602323047490783703382309173408939980350042796799982753490778549861052173568865934768176084191816246265340984730987398630448808567188870596596451797836964603702607242806416866631218297603995792547108671502667171672199271242147148824522976369874451799286551209905401997689044831758262629914050374188057970186943951547168605996549874259278950491306486039739788600987166431021486577519664514355513751692847532303338744099086797921549535063105651759199174322099715103235840631310644486266022735572786385395358965048929875057365816480277402730603458726878790638730849971030121711147455388650328200958059055548660969967713516547460626201308286618971078330632170607687838718539804777025911752005672091460445486798820789043579418513262855990782294949109381210217861151927386429256888775678987541192007917706580381189485152576132261069687503016132337396516265306660836536557507812800165752357650774092820389352880110712020268942514852858030082005849081533994450677331850066588107967644478750060305221899689715498595859075252593500383187197175734751674493157008947266402544317072667977750840382262568808543209405404930544954286013416108521132973536771769249639419478087271326296627205906092117122592216419395301405791521103608619380010690341753057622605212370240571133143753834396395811901022670147771967991254656828222790965721674372881053480742311166260959133188300503704844234374003717680568351307842442455926414227294332480027595568681794539790692974435448138891729403938634511346506870589505745219110390417050924684521974018375152299355547357949001227053533415932736815021257154838337498039256605671723606596892735597225919808044672537925486407915831018431761256857039285877212501518791380095853261890222535389935901609992272968269312088332315228370578175719217766886680494372425332033017878023181518391457356145085926415049039454097908224509027221891640495987032402168967810626880115456559067008544261708788665107923335892130109251908462861523752432024845848342034840188859455361078325544889219841311067297014650885687115813534254747028071946399115129440456292839562602759027631435524735416934337422447817644098885268579870503059367741678309116189309761643301833732935192734839792981882147557401296020200304788727426935813087908340106027435802784042076912183502981083664516672215098771763918171999317503234685287328242786204049306182848834178106200160415021547318872879564771280417179432188673686666995780427234204668883754104089421057269566004875474164752307100291261347534965711188000498426734458419029677150964232317359283273145892950610147876629979157666610956152907789734549234097848430544567089930965592413031357311882178196824499798016808519621055317713075907912778567416628552530703475440217701008272423305922330561919251788483153174916306139551337837463181604764522592200787252230647865303043412219112941211339819649365998447720118978848112420424157698540537701914808996084901001996590884024269250772503735678345764142501256838426274232582097079695788072961584933297718121471770267908722990563784952761826650178488597982879605168260066240589543792135821240133751597104323255450553567442608457229935898882416820413662852873496451628186880567833525064682023206507092825695392092778170182077479645680252970336412743708988217448354374572159438555893877741765593075487054468043058938399108160527191713388051270667091762516041032727896633849860141371663951755195386642171494104111976603123928281804723175514137722725068859926146878765958050259091701108699685459396406945747642094708903810752837769211320525089513936365408377340342014558916479390231318905639177220883224998041858839641016459168067555397284119071979354384928408907748787862670303256027222149768065176294713577473128260914945919192240251889111786334126600154044091518433003310309573667184932911342877716614878540322756372027866670845408385109394394949070351903583234650130113720290575945507809079223296342392861224048189110581702560718884265798353289903068593274560607825362066006155172920278686175572087138782644903377028716886889133069414562233598846679660770616917217253711953769329592786372976809993883139278580832720480478155996126447103503821158805206313023885344522753629656583435526899278169214711974562706153736083714263252554327333511342144539087699255217835337961746869641583416789571460637084070118373628541714643617910434767515708728317610005309224002102505802080458711436635030964030254349545431958402525199561440028529171528258263881293090571764834028671593475174450466416926048831874037319646920814504308923784410956307309095864937101726208023638542957940692850168646740848868833363480533711401806699859721667949554719989667490736460170775239864380722303297077534972704635178153232226705611158556136082031122112853068623804068367193577596926564141174395598043260677810671653249031786397147912059480027242663965466035759058881691778570641782947047739147805638116831905932645680233711555298993461163358750229704668553447107614492436101128340656696431735001150171198075140211149727322273525211867235789898927711753054752876890842337904948086796429830788977024836502819713053010640056127089118512956610033344419545730347997107582282694512370563698531812439652356394961768264300221670405507524732896197905804069190810937695643900834179779762248443223638325100516465997216113016208924528486569590642858480816913782391044407004264612733812388583841789297703277889223261355374430492858936852970667663285035523353530490197250977113915450989153360512272271516785347814371714939821579578010989619328787297792028364476909643649644750543851110121788739498819415386903779433113598565412585907981783410038056730859790395745969418852805545056271791696977915074452715456226319489451590963012111928496521214452595306029946483726640317470776938328261284880295429885974726003580601679134777918234286875069430700573384199243313545031101041840046347382917459407240744179850207373553581827258713957901087004505505297729555413522464071933068138656554682094465372651555741489332447989019994186407405993227561703351783008339842317172082778814113802439228639002915499353074052672978512307655346591550391070460297497938448956328600205716483483705252788123328486230458195965902295441516796736128973395233796651079581622532166041111973657625741632414130305590819182879010464617853557853944888223343119012825883803452230039767023143980281517548514893501657406297746783824445744692216560580854901606615090407655241589309870456318128851052555498705466182758002793389512229830327456279324687697832639727172917544274076683632240979536702558958120702428527228545228220727738566418173312941319616774621653009994611749775395216165193310090267213789566523287436698444053204078182754613247658468989893845648086337791474846773512955665654354570356448923158109205500699774636079972914383575071088853104498486183174796109941528632912906141531959002411081041982531388362974970973368379643270119555734137086160903964439582708630469382702920178878967508307884223733995162182846591898497555225269891050468914929874067170147238892131837267244639094024917494138849060032859494890711247498981537111752685367266469867157548274011552407923179828898376176053202219700315315299832779660120876331473438174951232580425474200019063080628317470825301666223075013288794127543404943046350993070588461943280603612230242295878986242014973778509139656207509726127887692784524822344272615991324370314548762138759010289795625118626753110062735800800902448039234619087163419839708153415466555752921255711503520671498729280422869781493983651344403840644901591531618576191257512412506544926892070124705068605237975644548548734130396788720154788868508583561899911884683132901146825598649692086732369325808313864246218530400401083793191481299214936991997159972423095008911982908103959396553494824533369320574570099220512743879230990495577514079923772083559938120345757330028275760711809921442624994997449020891384959599777750048997668663751058603347702581861798943187798750331152329934380028658414969910538223514307864326670027225349293517925695624367273793260520769563121328933298609082816618013396517411349832353905810815668209934447338520185470323900318146438827293784520565725546472504860048742077920912837335869035552325458148633791407980545759398419653621258908564611800499076857560904208438291098619055234347408466348866987045508439281389482041508521189401089523103854079818098732115479249024677277867686160819414604759080517230835355112951338845483221914387216332705271509996670509230519116404506037025004279500132697824915250656288296855212689861524838533753070330680993114580724489245124929167050006427830936013471314724380646977356918807107590431597962600254712440454217947133468088805471542791626934057867030685337795190732016367379658388700630659111170380541196374409085189178830637377945960136960266142818003664041549671765887554253328177421899798814026325852170674880551778885221319488533389885701617857881950608193570203607871159300148387880935136542497648451338556449474006330714735500026129221955903581371062497019306067805868206329732395209642668384879169013334060066386147540211344498092102873418837572888591403200938399000605691233385093232217160228155510276867742796317141553971200712628430504398686330637551482026338065111270843534575585124081453283340033457127341444139241231329011448580002722136255657594056622445117798191279256389820123497925471481435814360896657484536409977635432196578507669951212855594489648503361537347791823714332292949980247887387185483883450077426543697791447039345103669805840028133942260357543071055485697764174290538746215046702538078817532918806801371468263646902084061791765819834551970276108482219398457280873529809848474324154168945110289661606806931897274899703273142111168675778599200953324505216366699194229990868506418428874810054602513283583879398336442951831105738894399707163033749191154655330829488680901707393795405758999822216361356209432053961109335802932366485586708219212318249322411147387072219743477169382058841862545840876758953472931904298735409998449647146488804187797966580514734945864176914204380663843553565051086746715483131363360660093247278603497991302777114822081597643016950730658525076833445261995636079876715560537315868366272311599727715001623652933323906728979981976575695398180112360872583034110058503308265494265082377743394002266420866835714929191885240470480286732704742668448616403616640310941954877473698681739760926252762315740581830363838833124157465412246693026499496973371574489942875161931061875420614797361403858894760339111074505089836528301885692966989744465672400732875548437254802476026391541465706236364436706049830983148997153526135461946670085315700591383016007455273815761838649907124520036773229111443227977546939194574094981529819849085000606139991599963656308579953444727866668551697586122696943759428010622797903167440536481376096380238511195243853831755729226678312112675393875548251205588903234483815682686332279783251859897454425216993278738581950306619447954101052889625118190020461513477812492374270789662661014559228542873894827679609339977718228830834458485318095988183267218820949055369503835835546766503122673533269405305300007549763341685417768442706547636254968352395442480002649113577310755617977534915605435418390329468941961177414450364778028222924390283524055378780399903444502680483288168066124611994068253229960289218285975635556092514581261326848809966842372002370584731093445574422457866338297500223125558108849666528456148710397078676185068110705516507925724965031035525534043967101588907018101795914369781528585743370908450255482046262988847654851415699407564560069073384023774857555520102004009447275724125165425644296988639977401104120409421860027666780938212237317493040539434823535978220141337456685416891483893689297079418710292307146527481500219431154601805636981051929643176565979102106733991371204450602730436175410996709038159804679170462325511070501408812532162014922388770856496388406339070839039334490277173534402446943902752265269463422495911286174276395622188829308382594963338542582362536737446675390153722771699148916395732346830925655139716641897278974315253878746487255215862496738592011760807651856288240009971043414879419733205673534153523475194354388308952478672930135893097939461607846488426274859263177837099517379942013201388636425251016082171313311226454697944805317969733871313344784200969915753298517947042117652430614504942476647189715004421707661551204113511260793131135223735535030190905758876202040913233107802203980285694401857145269711699399336343820516879836695093572276104379283234687799974706442817937056106102339217839141815140714566104604282769291312287388813701070267708684490327270625410491370962763011103651371696116138375298137019943225431906765343866466231006851185924828858993443963493038236410557232147185883105102567635091969011276396362363652968380152396832107082272974346456552433839272025597896397090082415962034664226836408062939547360576042304432264780500968849539494941194354574383967867533373764733695817431033000946489661045210964096716339527533863209398651725490826696719004256946010396854558582251279393560442873199555601697939958534545340913156752096755707840667781814730510180815478076605367678475297788849216108672515838195856153170758127881734176232656908387875931507654009367367592480559193752392704504711958814039593114902117504668350266547470863235954299215370554367995024376695278108085231362040299133316775546519176749827789142644930126869295152428881327051487309465656696256945355174163047531509652404903272680885499930861213227933021414463262698224965899879121071438743510752023911091686809350514286485739519356818709898491969371887710438597897539317530744511371277493786609374957158878774562020462031477888092448259786512706168022162345421019395428718484797154172290796156682161004974706586111377625601816797991233249384620252660561814369340946589481944823537089396737954225481280902207057861530944366344103149534998027795609784206971222773532675886497601358654084844266581235913877394206774899098186552232010776844400139792417644433512900607482346115548111311872807414720703878756679938451837706381577528267847092261828134395681460927361421624125264227262546220746499763907634654168596621660246278030412267715538844532361579313881839402353930450118608576359041414582375703627359818595751314065480802282780144438471066496752624572835190196460895731306315217229899541492701200995717906588437951742114147179422396812289353938176561191456093222821295061749075184686501141684580384492014636806032205546629488551089366822320825243820275058649215551472217545405316820325447703503577037383959465117778506824394808448183086630103804119104096494620109767892747618326211926663592919188843684327333242619500850952814543412410879637220874970994364014680758019736336600485286966378477620772590088973457079658481800009795692882546157405925243616528415275068586067294173456429658147601180978728971843643175485470368884467228294483451344667670619529325139753199228933366659126794316984542243848765077030598487151638490253031840422780619193411033906241649274679403874695544529401117840125504461300052139458146717500184667223823404291682752856571557356887581778770086555544039896131784437901696177696090637743906629024623342008472118873611543687726814842699400890920449282884267492170103517438741063054318522713941043171944400650626441076882715390959542294608787218953447131875592803816463488102370223692581363105883996690689060941875962157303204708618051763817892775826158152468238720470278082536195531298194308976372613168238442312374929996173273059388198859384681690474928206341821133363889916355984708782532960216232513088520461674805323245964860144455869251845335450094138030084414817748475474736585099729990363675395856600697575139144171575754330299556614702470839602610334111123543864615160958146585434104044786480418171472055390642877814542345737202802433750625619534404032379909290041676063468644050868249052725332093582956133294116503905690974741385691041493852711867520496869765693966609087188281342000756847408074007875684118502209523825882818841914920221690687515567434069535753845690475295824828213770794034685446462333055627847418166383872018292771646869277616636669619312036516659188518434884560691438327792342353496512143464353036765037562915038393318644591286745924105825941640814807187121104343421947429037689435388561574304062953289339349432654621267403993038616771849850614730800495291144698361657911629630991076626347228710459818680471848217908173640629622325138353825838812495848315824599939452480527950410546214716461167562603663012550620712119087885251920447099410164294785915908548822875474364311986917093260935620908762638784380219309605799294688572504072574585906903074471395555173582710601361624275160672369535386805476027992242488980072748636291703134074190374714040497672878272994556480749570205452776248068437234647733711909763765582005568398265333487375652049679861693427995180957975528969670358808819622825443390240622571857368485223041480255213560732404619298442561901714922413703688920065645420471928064939974779710682529504635461086632928583947706097369416425635851931355956776110313434793334239899397281683191543228827653286340139327765218273358038265502063136681441247361445839788637411336983248677861927041988876410051192104588000339102326375343601760567459543476646385094899521436573246515066426194553396474898854108667611806308570606165530414683633868577255506566050801357140122194122659397970161768312228367629850948538444937194269361668485759227547888990978989105596434257985799517165460388711112548903316740991986803497049653121316118479238981546873230238946362402559983924900896956127845875731393995739939225222199473084883607774452876805786529868222120634255526882219523401227977678321141857617826479399163286711270700086189578136156027310353475314731334592892851942475080304488358070824210301545331395303330496241399874987071916438257997576546016844011954329005354502463125968613637717840773653968013200583223386535712234331339216431703892325115198154060070935819195342302887256775055725773317308625395606300491604058744639895712428776022469773438698542397133736701049533685918517882036088132906818779019091195086466464509872691631310153184959582902186303452144321172363626736303027355975279347150936158560389646434044433540120623588620665133562240871331545223902482137453072751726269708123973231939646010519515720898602643424035775986731154132665508930756864355207380025643257772980361147176160030263825241567824966096960457983938335759774360601935883788013312375548494122137436544601564237201401787927511426021229960614963259368331225930966952669756867022291551167208496624084616999807863200918553485015052512015438598603036756758713219114257548901237275667808256433642474378569072407121610882020220834307676837664085361660165624889182745595089963054004105191587600200644907000650702691984812026407025694822435164841858506651734124046324566317495018651569634729530004161850099096882205190515520989666892821716038931621349377814145694481087580461361276133311456806588171277476588456153001662900338532910295508700406260964129670269790721334589307540633525100769042708991566424088231923294011943790845734918164720065953529544532301252394203942242231280554428084931174588559204816405238189120559748397231228334069327512964336970101523901181312146405027427006065866966099816288112488951818150747586277505644236949541816934281756512875532635487490078459389672347156913802483709397348376977768491946282093802348405725144828608097689109529688031210127140290052879659105437579744003224499083816167074191049908371629997362363548404421596823483548239286021732339824521491103850565264515542565540605426002450015587709224528484309859250103025926708675619217704005148167809099586237017440863900828621795506557817089421195149438909909600665921387701879893199432191442389736497039815008528083790962835132094444245189645952801728591107277935195095702152258927351320606167327760370044244238901979623672493381524868838664570431163564581494857048548862649296484219736648349548456554950730019779610120344150026890381323962719183434150920323980013437455120518840119989605529752917552454221226382765472564116682912758951191104315718745954160430933834894693323109886895243210197625177318044482369258841295315209656144676094899436556760393348547089850169339861675390690509509472201678619303098001463351039888733491248607032030978464166492311502132392732394645148550739031490615537705238503588448262487254879944314847688820775236849576752512942579485149576390094599872471778076117341851411570015101799050874956855449309498808944608127780590199305165856212684403652898907227271197687939828681096315101076287453614761107806110506037179545425443981780253412770738945816641817101987051997990522589017259201831868745840850518845664965587734610239305498861944129254795279731641044386684132942631760493433858424838381845311785543370572178672820641903648564793932954229088950890228783039205274858076787731177605357818089207778181472194616440499046417987568291380407173705049623234166511686879235754800379945995240767282197841454215278839246168023828815213343065844799876689702641249968387504331202474955380305938752690342127634195212236722961489107781217022731219524967014107620931623847328624144700136779040003436355825916277351043318250474227567320820788875512414188300354730118209262242965230873649930171343864492648432956117542643253127076556469811470076807555048533467898808172224221832570211335666130851455931485796197347136691948211134348621534777902758103482107146133198941560577391841016758785554340356560995545772226908961464468888549524389008117231528204796987779498592428021749346786674212320041563241051755516851800106150070064414287272602488586677921072288579056158096274024649330397240803795709288747319901882846129206618031532937725891115183916690630430492873855297843416597955674807699036590917423808873099318680832252783471736789112824059696317827778126968155469306923460035448459523854841097193633184885931581599983023407540173501314404031833732908341518558599042300659439337627874943931259936680835648203514782062934829342122455670336242051831087528950753828429323255177332834769698011250816542073825182539913507161860887831835456051093562568300360044592452820919187089778820720378668553927537899120754994908755888253523085440632575415843361056651346938749820149083484733077567513021856496889842747017753499819262947773918269760183066219332173383916332043089797496521958352819000103211363748040849836239199391466807523977821455887616836153583686324463467122550080489099202503279014888787098403417052776544505445353155689080663193713117845785477456692725924181201970717840995055496621472423764509048210101715112407152733091313851537409793697212597689237692112953097771787866672630531119798420110903881302803729201258829396905009294789008416851431467009166303711547553733695100584907264328910511663233374891665128511481616176784398465606033679941852849868583966564861415018182266596545736981185818578736484547334447814259745767215862539384635435383668305710719045985934336300424015909650064602171017329421335985212857057278356008991531365505391417057738943917113841843338978239636399260418463702936310149864103424851948911791831475906847138740916021424315973026806757856843163029902128826729236881804729643387745714281266721597520665591847209567439952598658085597737687969627801188676166980677164116755486001079692751167609021617791087738346306623773934044363581700347685214748800186642388895570976821951228316458051055874316472999052881834672923918165770577320909530398731105759266609617304496191155037976877217660538539657749985343495737058448059519874068467684959155696313667278499134396951888506554436806300288295247309131007360457174425525933828806015142547256225972398213648040428309967671808224076676665116067998515148850205966662552711489671926648453633560206861794261660096349396417674999058978020514715140496231724480973576487236606870168650565248596380089936490530071241587370413126731324901490721385878300941907573436495888610685598493522244272249865634539123521281052042126621985279842312802919636809920628426745359331402526386511699447707047551082608902491829610669313462119223105932607390646082297294770712556227014627086578394149028768374715426491748992573762329290842955548296149933421137068374140774730328964402966362736181949704476341725070641217924082522269414591177194733744119129670464662524790965492520914374743375828993014509467084633383906959009626967249532252842917351715879201574175346726157523128343821032621823486321311385474856597039321668971644809727041679359365167291863251974420807275820901836047100995920755140752139445597283098355440799457654964325399498058871679592367328699813283757502302549932619387551677679768723900983061890802337607556307374599498322736472049702336328643899681364489854132454804942188110397844138528963261371109910470690300934398165514229334762262365537671074052620543443507945222444548979621912414052763368796548870356757076155602156403379265190881937332159941784460935453625664443629640296652816778540450927778218731078499940116313108696937452342121174658993148087172483744181887182121995585249900453239945583346988029104385987142202183227393846974895484058376112523434239375709004713617505900662671904478354486306540823670209762728977557261762897647644460893585012346829441416231279790103713773550206856350282273085175976035787182751294534932115220402939742421323649283293728975627798887716043382323536026058655456860155304668593414612928940548036532486660083423116470463905801759676082328662779911389012277107029774488187546114510922293361307855432040070084093949081079572830455265013141415778883000403416191964721295367855044887571636675436197382071823144285628691936462421235591051742471358707599714100092087382784676810867868971045152760310065020219903452703801478449687549985948499841399842459683568992684033197623953971690051800346236036657782384640124193702751703504548069101963128004214759548675820556037140979319986070165758808631850790854325453037747263999514562438870250779045816201252442832368435178419792403622345647222523776712593692581775278664966828297253158660567859470632773177520090984525521317336410692308254878533229380759184897578053593581508874832428618570028283036102436198369835331684322797846126872012734570823834490292009847710661431151038052093670349431500509252073608847190736206727464270254724540097885710064299891504626943503108131286238660373680505096424222544318645614533894831983929203271355905572144929479267691199746361611253331909653458498140961533047225413894431850452857692291923837361197527853189662911836567887909022313291973479467181131738595470662274997065460709914408205931905651318795267291169203574515306640433730095359969192570797170647090271995380923904422820804728896286733038843191180446045295152573735716096491460055675539321573934198976007046239054451702316328530866044352628858949643630363041772110016803967473213717612207900003085032091140988765057009784580770674905363469038284301894736627748015093949743652393122262896240649034573034611316466610191422811038155062365280487688893527854233753506808800076347902595246651008274405879862178432673525988640909342065199057609923162105059315368446228595723998800289921928659236974089834634001776952858670681331614559307972390722305560072119095821885487104385046785671080927800404292502267556485029318345712632043894586072627943562000324352520680871034868471146657370582642210926137698481294619466929617719742647209171654408647274870545466138408138853449248734001882228775441551557242070865034401044830292437707733015714891752083245765331401187155201269122875136408367919298855448597328135483324437285264625666757479835151334182811314527210207608748115569073387020248176339522912154029774756654121698929136115444014488653651999013176778382906070202265346662666149152418671944134080976437389780556273017220413588359153757612672923991743330448036694165130014606675379006721319154338432958336889507061574855322054331949004308119616633432082499348998403314874517003656454396934201187909732196330350279493424306474958711607116296716618479956469400655196112706204188197849711011959606636028873706088877138083586616962638779943667969517557864604564153915889821576247327871633940005422633976711097659095986858639182018933549443980076482180230783513975209620329280713389436484968871245693874477614469844234124460324846491250889218290316267702779870833329389185352802658762479259352362408539500101390991218899901124951420609785044248323374081665025248945112459057006104478267514906057819830023685698208945199370103399137347155775506197647075915221400608409252241969876586622786303251262634927788760862493092773853455620939278733205931622305216403323826680831180724421880124116832491414595967682440190137931643387701998073656827347987604238466823577631780198724083629805234111020557082277036645920573739826351917408082353203233562836280084235410411157933842032895706148317518421327013028280759577841450288374658499534459056980902000825226635387536205197188309313240577769838588877649086248342295159149271594356619539096153213638376056140281166429171056976814710276876085869170694677164891428708846636190387108931589170587335393749547104579328184098144407691749902485049318683792435631023376211689961405634016935633945429086505775987747508380532149023934003313712475557667480849385306874734460756176995870176133766704237475680942941746170607654320894233825153357246873948934943872694877297765322969908242473580392304283108239332227500676956094943213372816705453552160233019292097675314201780207375723670501028649097185969433344871156135993240119091022827397058555956321311418412525219124038467821359061422939305717772778968376293594784250463480009644865108938298571450914620679350989356806996964208430961771364402978608380106243490164330775103590935212215020249138701634900271597634840330672865349728113198180358179462343330302311546110497327124315893368714502767377384425939379971370938784941611406891879171124639954466653983527004080835668624914452544292424429850663485322357420083815851773332547073958792391201359939329250856850292268353127762765415670433064289135397120982070128053911723568994277056673426318938686326094895941456897850764959894068457832508026580937719100781933211383736233681813184267003444675319870764760538074895586344264766821008906072428821697001032414698250712962838598235861912745738152326993699700444115383643010983587274264432397280992445568501801108071136495395600222946463492143378597584188317835690218042372063679820123506288178670401663279599027048953942173289037403900406859036859611218853195064041951885718478598384172823759390002139669701772410431046593462835748418189785249066886766951557377085981260867909625615746356070984138613069620075796384963267800462701839517567751909788180730979105448432390729573731688183933588105923087457618851686302974823042526544046107810095159479640338624769642755473071975010678864249851068977651633653423605966261034790865013774678715568514466700950590358567792902471023024713091059909012219371470233054377696852114919850555918200531789849581156986356001541363820308368963138927168719467135277904544373130707071066386387802450854553653395771151931390920850990929259901046803159801150354871360371235748494857325244447375440672103969658115767303133243067399890849429093407419088532433750600603121176842141362918846450163685246808575679545468556315048746363368049206654310734619511305132139292157346272528756294062963520314905532974399481664323824346315559579031315772472640827800430695320038436280742359684011149781300934857757111471485146064825973261105149074959830970441382079155411681508026095362492313727246584163837418685580801296032329062227080161574131039754892805923445375903872423870803877932382183661302120466135659657649368663701745146767765943047203506918036846268637619031297491136053250416285056912407507698357884607151600416155441288372247723723255243803113881500373093441880623686405898777117943641416974065024149218402528739706954827664010170880923871501235040823113818366810843446505814262900595577789016384499788305982992472344641450586681276530228185386962058616516183074650745726534651041037472991501302168137407407002732635156619037374883486431487603419233721866554335122311058978559122711611549229078046120166894000502617410043957028191403296349419762302187696475702557168810684844145486245210713179219531791972208561758913450238376389801314352552027680950037012121383546870573662324793811567682417185385070845493488166521600766915284649275500131562899243473529466169246938719588643371406602428891556011299488228075102232479257809473152343417712866873025972777790812799889567687858452372987689116451370585203923670829080739597588551024393410400979221256400654386355437056725504465967892791840711542077612958262044790258326067711359357669184205178487019787896064409746171824231350305328656322064789269935503677704930333072040844346087089959935536957212192668698667455719174882854301912857646893185794155405086458939041127889333586840555468445900596260012543969459489205301573195279748849377856716617717038346266515204899604304543512932102762546586848376764875691321074328973426691208016580482037683630391548007352706153122277647618711025538480092746559909729623711399026097283161155067538524842174589316099499108019080391845732994621964640814860611348231206484832799942879626824434300122282193968396602193947334847110524376974019118063635329974122279092841324324673356791936859122959148811096289170341376405033229574517687471585974176172262676038829955166007295990364159494694334373022659987507271929910461920701903503621670119621765283587025260987489889083098277314580267165002542073931472081604668713893460266614559966247331917514063506516961537770462235764664794650075114257944962774457386238123926003324240217446542464450118456416898140637712230718685049356858797460117783168703246685363048699518604885325156249264429134066199862572028838449547425421091096059919360928076782197770126532867705385726997983851426364003542913914725231773392651392396181684583886523364132185422669417305704425388783145017541587756896227307135875659110415853936332516389141460701870318461585413498459088915702311925811413899516363071209286263724680575791535359738447381693053792058821673188196497573049805602163343135150127863428136142026005780938811774620994357091682282243223740001565604373632543829506663868859372809593302184650303180566444793798903140966072549041069756097335904849613725583151150912802762937564124715167090311376123966573531883058465004948893160935179798405570319447813406966319228070686507303521205427833232799917492266295369738870422688263068427375590807196743678794768100956085810536003906003121506229892504789011617025151160249431572813157978484020851661600650263243562113429094599824806395224504494839763892470410444569552623002226934465179347514487041487072160630501048127057825396518062750919495782583124272148309801823029496839365449367425643973639378379736238823169050047540264568985484868657656839200754995546439683089215831673896031392555409826434680368525910644263681621151841677390033705819779585034475526272536291473140269444957854309821032837409081648705980426531938840287277604771291721255640742723553711873015890708395542673523977668484799073226900484919077671894360883737294339604134674646392931688033050132358634653183017976987342984113098764026796052832296382259284291984001020106336410194077851163158784904289245405924285088196822178233613095586973941934025249628064150612736946649078144948932109576829778854641522651090619068266248864423497852761271991062633864841038883850444886944021146912706741329807662853760693057763736970433580360508212243632080912973215943276343689239569945479139873185802761409383579203831695654710092212355157061123970708639129053527920812997725352177204035938374156405064235487371593117884364506169763093281413889825883756468533768186436650345982002952597989310981266933300347455543905507757398467869860302753734241659522889481904006212893071232222198854908456396588187860054192950479146173048544241808759258308701664396071263693906133022437776848190513741391192286641013567709202001586855369436558569316979206024428131977322758798339291074269612571003552863889605612582574139318363800161017160238422909172545443245224043892814428197931802385911760900313140666516852460237442083681374306913403305514765504380317397072753029960002592516712633201959331561195939091084746724763667834034067673159267710384537511880105773045551873830526737997039691113037883708996495745678034047441372971669865437688000175145822331476450009531317272198226297726055895617335476410325400116050840836116544096671613505706025275152850040961934114504419133283738634820117695097847575434633609626108369839883804444205624948005687375840869565139185633704456609641051203655043113512807574201231775002235057360106422560926762226416386984355830075304259196531711475712763737111523529640642418920301826386833651276163749345388746060877700964189934501048939131094681463654757434017280574308815844630736578863593825225339524733145983668400457822567069632608582623042710019476134243438896117072642201414798898770109893283541585272808163710683579546490207872073999653750365801667149874451709196006531204120987170728634565847327358421495053473235964832878760006655530918709256046225718653390093804509764902332677419489936889455475622476255231222972711217108096583958129922148856755338351823654104743928512941811840979426767796582521946842858860573737073797512477234946040126071349971037104614152586307220508826851160784079650158871744996018660236673728629481068485100966720414644209124473566494075878272737439138130415557707667589770796538189861813076509329281287801449902015955743244952629681868626795593700911540851869777062408194089617700511408997366611094663554109976302722020573078227487836081679418922883664890709179618246363358157984390531041161758979422508155123068519962614762477696116606743867621984998568684983536605552462857652792376663435907119352040225129750335088486213566137565936874322542920124455089746079193187619421441208021289106379766596807090424299837784065246501505225960672266171631252399725125677187675908643389316345302055952190641823740242884644670831760871228513250953440785873827843517475430287183465816764710375493298315815465373217381605236920568603783308013746342766866628574148500529582515672701269494253606877144998556810212888028345767198506044220912732596534313131762208360438929614653298246872010966393952953971407195001880181878279749961017223629390594382338233148214355534137405077193827774779296096839392305711664445229787706984874308731476166607608880075257890430574322093507190174170129128553459799136516681389629798194493997694351429986586448089605732311860518659073591447159862500517502021255785323535669603111028388871086314036050008605979308612031228803955535828437180798218779394561727244748449411958438691504684160495121603156704258946649659409518218284661843178998704834413755111992753642834866648365242557496963364721857711736290437595807295814454248623861500652884794077171319014928212302428586013638731693247357678666722060697586286993113600054315145204360380061809699357558055759777657402174710529387007948750693386045799123865362066387483735253672506680947080287116300688482644545216549826057228975941951647903482493763327877995284859065318856961204343133303163928783978988606146560311308510457934930004052439461111133280981777146198566917660868582250509958413247609167678681817478073374794768452191828528295160158960506308743730979976291376007216296496253755690629103947353921098722058240448442265097998360296733601206227872354892365955228133503221056196586478606961455691500218359475310786609634664054748058931210563308348789256638564738886961673052361445143479496745037391691265910077379905519934767730818243640054500618169761880838329507886009401723025634399658007644491531844991467809423093401253436984354660197695313937198093420081543787356681035022101579108725992210642037965486706883646299118335995057223112938076420206991284154108615051739334446465506018470245551669661665280514682210654871630426522931551247438157132267886441922897942956613097817474960939562847537485676996198564438973515337061408888030639971151644234409269594386338241567461431295817809691250184213136142203667520661813157187470689269179705666030178433718133803510021317265139640089311438170685352623082826341785281935639255683169252832286163393358172201897508437498674254152929155170177317419949790430776920211821696031633758060536440019753635210258820770055967947275915551723166172764471046456765346089611224702257820412709388563021940262778067747600113615443801710758575404168363420404047548568308227822795901739649433296503040387233705843743898381549102870938270579699862153926988413916192741086150170298104612021657649169103937365919529693189004864983296918322157564417024743935775827461892741974342759850971057684812524455227340906366766213157564566442951313330999147174829335371406037056472665673810450182996709462722693216258842747615879521927325299021789263356334320472604706352437360358862964731158033314637589548868283414166563967192612896167513514421283679454463949030964334248290464774234380606728996705206190025221535478404397734253660378061422194760192696849232686312410426649973756011657391683854792786106316640872732468847189756795382193010240218792672705151190603746359803124379580901055575134121046058608576863263560304088309354269398380520433546698952254867477136593102341341683947188358267338119329142862420160785448694658806166178342351308821232952135457944573922757230604349669525452984233245255629210685310168414381945943104707736395093804188647291672110377537552110444809271833386844957006206533906500499892682335347700430882247487171140924578491755167027498442699555458546414487400679812671071214571346621142663384118679081527489242865521752559251004875011104713278942774933024201358759656490854679432004357309612022582352080072907876865493487789760775422920652164010987352871901306952285776576463228150529234399921702570346959304930667478273367639625732969586032729671219652735283861740362467421803420287749107556769516538618063596238852712575038590191343890575693469700723436614102349845040991390862553775739057175504872744666209014346432549422717946667436784668718749816142577221642454168144470034699879465652267181626026777274471431164678179232022343777214535425755745845322797087737823935943590644530173396531553019229701832008627627200563455277003334097977571261574442076828225429659591796674883781508515532707859752703204222930146965460145860873110646319178385956678767896134721587554207157740712682588457165886712261332102262767470527380197271212651518634741091486813182318545035142988204382481808905255103057410797692946858991065589371447226021180259607284110794692865589479605168113289317257107665103083262993025301259470097146824660626903034286787862292572668674899437258134490576536698104813668461340079084359620357644886657055298137276654644296940754634354607433664058902803274479983019519250576791166310588288066628587813557437998054066781995487248957048315507031552321317048185177378513434451766126985577591975117382841495712582877277684408301501581057710202466147254069385222659750739396061096673343130906626655215796952673342775068374691503649577310716702524245218435580190602648476977697593493253094933096384688983169715091830987274812249497122977624435404911802215811315604611246930198595413248651422606798356871382671255393303710813084836896478036296661119585691363279717130368446694315731161442086831776818896157916835091536157176419414620829067647571749801709764297305827349984310360521633996481405666899511875166008061019166454884066521214164160883529071311845227710778410743026114630462426835860629303497020238331232238082022134914966980660896915945002175662638350012710353637049922084209011344476869765606135032194578428317923955160852904650765243392575330838089897238301181747233313465902559722141476107312433690300884085392839257907135670026711864675182601968207371875041657227384364248523549699075712678008142581021087935032335726800405978238931883340937526877730815558880629964401800674706868390075540689111311868213637321426227651693586983528294119379672833817080251692444544059801252411575492652162281389616996972553671603539863695589882331269176434340701214941728936075987028444065008175297786453562352241427896048216592787497482799925646729973576860514854353525338197707433719944278827174376113276575531655992698292763590934725361739316059719548684393617876943139165720574326311316188797036875731661563056868701599256801943598640198821525686291418569677954075827034330697702035071116320420209766906033874075867226768189577127792620068530434567368752393996283522574367821350751700463999786597394579990771940049714297283986596043629017357887479631348318035502689270154996126137484601460194800676790778999012145556996345366871550071119966370264445474951698111245696329630898651249782371438746372906733664537205211997624812631325280788953060142156378074963586457798014141063433114078971868794557750035443038512379778140456273624257629665240038329445711774185618748633964899886547414418079778300414129856360569794742019642306465604930035625083476185277818587801201360424538537137278164908978377014817392333929528314194597652192681652332581814166972585708347120166375124936004105967065639315479613933971518794083649063817384857494213746728639382194167724077464303504875266673139439572623514407684808216287403486931239244357349142015400628898558227649924703824447198229409058367821604467838770824130343468082657111379187666293039065508709492355740737941603158423056548799003375694685323230871435676227147001588699731940877714599307386181175840771789114858614714122897067870270835957210107211923484573519707586882713182258862019459767584831335248800587862894394898550788128128029774737978088873971157147598614446805254377746355321355033870726233155669961642999324175434178719388828412515940828561409556004567401591531271684502073896480656785633416693934863145673404365149899461043076648325764679592798502069615431713919195046292664432587373712131750405198404381681555181277744897822763681591299983107737683319873186443126205310723650563059729268542756789022041639704876209254703946267503355952370665285111954358379127766635763811551964724726507842247056741341940842461141538052781132589840808601763582293606932460529134522273611769090663168629387723212724716123770851882736168427379529598866982114522288860769972776077268366785622581793826627620322568325930588498433386941622383178870067442598376123865151477752026977716252109860722591783472992309135330646793831804013158599332185502280488598717877623751428445706530655004280735024392432396009637054021888947975583821854892465534312789734180688946211565099785916297460372999381329763625666314318054327767444370954531603612480374803329336713957063713230457712997389341105591984857831407778027446600667550985373855047835308440890078290341317317621517175818851653482273929268177908976511142651006387464566534652839461872371438025489187258640427053538224718917606820761024724302960408794257039697962463835521521726232564086148792936849572904319982802558229104667676905978042193658947780341550031003405977246538036033374216282333683139814960542762986656218659842086644120644363784964379437588094621199357299834309496653938368466070193630634501476537752275026965958249937819004263073412444220329524582476495175111059551123624167533011634389487852363889167961770908036759931622577103436605741892975524586876846171612394004706553460328122957065378653897661228693319498171951255382156331849906056171810114143991935635483585635257128803511809745267800373903314531146261969374687428828900220508706818584191144112010273631730710472000497021369467599535151848070994670897663644881956335034201124562826424379747887714526326711967933309104738999182326726841697824815856454456575673949033242318214307227171643606264358335158231923356877210140295272870206805017583140098218571375107211468511998812933082647674132058346959603686061087117527240796513159799592639827663141325610191627490012204936414029952890019845230534384760639312718049630796992495407256923114266538139809546299439296014531011581679066706794556928247223965196521371801470991642218557603347875697966557788474071344554423027369193552877897995932470077274038861789231919032541961716394853242861776919894225946757060322212592748620288758746960663688534265268622076475779032978447538772988138070988923826788777087619295658838193619016259594769855437752235029841440620490108057414750555870528724064644380741569949063620682643821404813250707930003168673838780625789284140686437221973088857767822887644595348960410637396139620880278216023385831355753606439634005684709349239022543633064845947199539274468490622621686607054585608523446114981755339799508285966365808810096317393654299104587943760603597648258980882392978295498480288940315429228890193420752611828399630079518108287575406176521890522748042520409756674076418928009020638427420000120353732340103030878590566932931834228544999145569844285452284909673461886606712254187042710348947049629941179828532441423093331619065930119017236208199957116305029748700620704406354882588302158452219425910038206527975380244013879213391578933375488534032738090008776254370049663500524615511308906415975452908551877988693929444021889286871938097104230518209263480222206213048828344525503494142306716896874815298227408268758611150283439039457158119315059893998946310876142140000316375216533557824278852949141535188829715157510321685725857631798597023926717187136003410797324836934454399395076620985361060263820751369805157645333662161714594531128259111810496808427421866836630315077403636908858982672185072541642927378368032632041885346825918839807832404526626443637123067820312726458768165094462090558821026997716053957287149505421045598639167411713718752980046092784288041994749936485205295479687447786586377158404951082498227501465819006213612447954062923191631935874992217973715733368342039725076313256928895072935312348609489658212702410180775237327423264225629413645957372939060052350672489084766826254535715325002063170647909897666536673633970441309981610142351570067788790219350866839863589215293951998287505186344694744239834119917893811929456473758581075978984747606439391628785295528744316958572075359480818065945830677240026315995377049917319802640854077233768592769117902495686183794944046665203399552346389100865278218279070921406535686094914322181172940674088919385470217028550686500286448029383615064296508999277385020977415188787134067654747604089855194507319083655734723943976355749025593059758228965647923980821386019537576697168327817030700895827896539465646187369565744229301237691871652116413192245806087725858630361926489005883242079256362461722091414801192015106515985089523716537824146889924256083479305248600536926627155313620765726438271246544874888016334844450321615246793645423944472907073235262295915366195796505039543040127972878371251122617374256730701787673021958041170598312297438674954246733493626046620699447196960226663178415516398935441361319086649644063963727302779860146845479946303928466081750156599846817544694045241601487486988136033117358156424801275589736691521152185367888670718659929448582417657463820778841589618954681922078575321173504443928394749691569975435466981185073992562469071758296604425974991761062954601391657846137634170654074522259138550127427770333468127884045553198572498064988708350196883035438341389129974363261554660201976285960700890664150672522883837549799057489129634194630706183046810825860864222222697891828053755173487710840242666438666189761438637108475996470720496162070921219303042172336815130757081521600022851518382295563226304642483117677985744882607504314008745635022189285304829010940445608437514344929003643281313344221611095124939562699770681547848341976229141110230873043219992219345665648684374687265341615692060012208062424465192808350934101487160660083731836016280657111322147598509078330218470941547002067233556800694303690570685695312110933951728309506075200343827670746304495227031227868813494086800379705480823511093396814532762105697970146783593503390594894623730084393905160583536927139215506701727474355286294860625807591975166221026288408022698480963637949332993001982522666851850806882260498556387503549750340741030945644394344230879267355734650736841137255924469884508263224778125475282686224790218981846826079042107281477598434610364434656387670116579569809886675953158909166427972133588869618960727333809170223748909944046075768373644290493297994549230719752736823701238325417211681067857758747475393349129213164292959059126256665165675307289922523123827844595886368412592449678772571136845710667759622230053110756788750882279524353890465782063027778998138763245619710962900237659313358925914383240132806787950772869992343210436766599588040998371661814452635889712584627170617861539700537188210789357695867450174709429653415314562219222355178369367083120240229675215368041488044927257279342983521184230912189527744762411591272618127423286536922992221687662155039710003576526688737724533647930427299402595268112499031336395136484520358514706594209359376499210413338467878957712724212480671441497645520736408362662536365523579777054323542927799542432814998021090561677494183379594609857928637340250182273923747815626115493152088883490604098902465750419222955864108548696671759503652657505008443621489666045207253233606027109469760816051061671861995057386134432625900391966176211888273789631950770611030829398006946615035090662781665400524938338244679318663029893641296674988009414903358098505351596500147681493613388056493170376481144571433256628147426077923211910296614975499044167835973724691662265892002427763328154043740380765625877247132943412848657323003469833573035066586987360955066175194579351334242187618987465592121232492752655359482391753441458365035640811484549945417722576600476670885332141756553638739812350083352302122689244126998908926014525282853863443254730624165525998736346827251039806057901057191062529770486534508028778232956384696759055947392380092460989460365046337020690357721467978876678680299976803116321295968766216539193440360477400113475839292488431929043419806889829518852863852677596885250505587136012618717866463553015051468064657542082930559156045712081389713047268067982429662230458079979870566328920437372696680827262187362207213204156040506570110259962686874831079789155184346277275890833520094123560666368810570425304714955175217666486275314634415858072543514200826624928515772708471778685117469823056077771468847144480800764843629484810703746323499506339902947890400873932435009489106612930685431805603894162390818822495408143173178463513374543379053544958520183198773446044002057890458543147077880691891421831871633778272969078162285237856459302391585355650598599517986258500072595255413839732181930486794680468651902514417387671687924212382215642807539212079653902985379531741283150188625623466283796264845880203597855919350805270607501683348362128386121232140130594425799626722085752869572507334826027485762865077457423591691581605346119648264722249179600635015841751083351626116523815944765678545765820131531236744133545930021964121161407415189233778400653277991993645193194714325357053788348933313144712624641854493453862780668167226291766147476215372708573930930823095936287711846971861363565208963394235245870648668135382691478128117709089916867854268475178884876999949477705355046106298277874291843262548948933907117639647969006199094367105667011200713229930999498935275705176372329015813254126856397832762034565703875097962058317532477629091071403662743356413965905999680801170271697217258666784906547496896929685755536876174868010267042154916789461226467631565000659087950897731951932194702480822450909558813043617686876709532691792805960307021889444086201588519692763001314515410840435927093531480398755956128533108854110413334745491598911869216201132941802181976532049694947167540016561633373866832047102838543879188676445297507444197484904487453048455793692925882451242239063971808695167770417976747879255440812179299248025645126959529303547296578699061827565060718302287631211242302069956343298983835811426203693576922326654966288081129350212011922212014436243147273603834670478077315635736274460470093185968192840533427994711386065230051404504083729156821578911074614242635304598038138567271602257479426597933175623109410571409508506494218299499449534290192865001993558360095740086462984949206591995946439546966163395960198354896371569609716406696526505962173568930123913184449884544139352148607587633504569835718158931941097292704347907448118204162322593612383212714667988038017192336753722370294991564397807784359983782105229889253550719739362781293562071405241664986537418083995341431337629111845780401780747083178284964363391523757683532472125575304519204000474621011744898346900941712976792112893053054267850129001390659035742617211249049072944075503655866098700155742681840726671946548374051048053189791401234562350284933318320887471294959463010021672858345498176347161911377161468785615358238915417263197498363103042202055248587935076564471947339361985792758741316856251145463710619487979735219912105528104082468710092629478921099017572070426115252244028158995613003942951631197547009281081690010966871483367884845277535338504442021763025876298532894785283719971422878454151203786023479152317292713948897983795360560342276091293886938492016123381762684739003907894039316876044422054492569262061359022329337386245236658496487140385980502067490806029885408090009546237755586521708536697716444792824536080813179412188345706857792994065200172176206196872792807104795250708440204377649664588262034022826383468574374690653463287639719664101506097880725014248836104562664627116247985969241531567987421569683771472396698767680438012489402361469649920452155467348932030025665374132260570879508239224993562305320554788217457121127713246885944974130728272676071198603906236186146597254148777006111919136041108281289406774227092390890495392776204930115800310536799507811271617414661411593662456709851330425821757435380704188631314428399740330800497192307175543438122922912944745582789625032789962488683143483718559176507847033974997596596347851017450928116850508800873885999569394131903388106779099674736631813670162770171158020277314660672422000474796890297736408507371412923694276780184387386255037564950144031181024146869799199725845455531766109216683044702223921375926857608012213214075194750135476423832294033875859168690677830380421675660166226622219372053876664879751230711025731723656766851561615922935181307991802140089080550750747534166069980205142432551030077293603039632823704458760462790042686883967860039986474548385247116484407772690854352847948155542535047537238054400301744332690424544039213852299778558626528388461596302106194721983626508624188496959739072430457796986797895187665658073713206362302848666884091950005220903114689691862513896605975098875890452996040108110583975292852948195712760503279887479439588435681028573301926590493893286655542597805767783644454245028991740371617232854645325578005751058841315661242602759856097842464954957359370852003063650874457421929461852296903263405337629894610066084629620828738085326978649639324385470328702181210472219962197297803137661424769988296146831359955082899730843905442249928960159899851638759417522505489757520897473199308478103999020066916970875147650837730527838344974938485422885480504978770730946323478504607428960985349917408717204660451733057415028435313579807714781983638201760522099712934474913746166330782315828096359844553301336534006505795426600814207510729085995635289940118438233704697980966091921942525548802673520601567525221207784753185092000815073985920843530653618362152821339837484699966697095538435349229172256100057149827981520208465715802429160288630066017884939916732983992975177950872929180805954152071869219339354229934359557276401473783636478571832038758756186967638143365899726426991214531661231405359296632389045921066124607557324070707649362479628423634024163372106082492359259785591529095790491487152556584575044545691474741666934082464224360622579400806529240303776214551594285216162928052374905547389471800493719780653481569877332384701179588129635953781474958695116914697158814994286890265569107859975743716190969079448458790438850815676715564626549482841964340643779592268779211880864824554492146265078803128207697713074212549047254188753251936064851543785683888895133274781184945421131724855493576750997927838310262695542584490289471184410054869135231585705369296337342634596554981775988396193373000228200154259933682224897734274459110814969918208364473378471149319481830158314797480991893962338515239740347858902728167644396118355246085022636889609421194045255319588749827714643475174134494758333626924628878459285038665217949035609584361590550163683007091100930701903846202347920802228141828443684534386026098591292635535352031868991353105066715585397206969360759634815018524568580695562580840402846933498566851906953247500226251889596309764792140400703587081083382086068475978044594480217616442276051973403617732168601079952894493177688330790190679149132311348348393114004706187495944637338834760390076618163470798907391226624817313260967425018677469792463945759550524726814769871783137881668640809412920504231128093311435377095147674424127530906251126650030519862346366487230024545507553986392395126831673264838006537567689951587371170786139342671940688423493474951000962093033366288862045172788640903182978364094136393423203441339235304298273956221178929714187149973322635886468350555776624965579777753113601165412992403922787692596967770990250232131825939169706010275323765224171356840876675145853321797610835860354251619232875701705647026217227497595215171824505816136702326363300807105185835648997101026956616574168045248169640271214947112643074365451356098816955933700808013209801474925220967190091489364343687377287414565595744861456615024976629166984899410911030653445403323031967622825909028857584406436308692918293753815655812016023914909408382062651194038131642002367305920355165454336431087363368801947965025401437088260092476092133203852565433505416984833838357597058993512487402646557410931518291864403126303963400452589848794635776522621692708495549828702502468048704141408236064000521456834693914423059163695904095212491015993810408821955460829690779668685501820896188003765372709105191897418200566648800936143724248421788035561884923034669971168250109109590986237862157700867300863709101761666022270821534106571913329174682894676887941736909773425613189388513581689436922353216076330634435561225131134335676741615241649790644404992661859059356015935652972923564173655700216000633021922049643645172077600074694470710575378978253552265925041548916181515058651283134303596989240250558662242838600749219023376726159629181034438606549411469148703124994271584721073666188698022688654058593407038014032492104302928781947681582690258607140158572074475075739081659414016441454544065623823134649893654450062561164688597584899551552723173236032195112273234740320789825225754540573027077995450818593067860800686663328869937341452635788885896189122490445517932940612885200532495970619131857954692238467006190154363546579180979446861361656716267824881051244875496330244850407186412769257685780061907549402314991723756539509986209116705630945888404044296470451931827655399532099533810181582736600151623353846096274806802216405932266562709321662108977030114664412736480174773077062289703778612828181107210271474283948638814755876006870825681065024063443412639431338241129075658435749406927939748231230133345462073703011771438848159555831971750448252184462069667773387865906472581161768576421256212328531699008702401607569632190695629526155778007894251069155689465903334054814614213958649967255673330739445580757959124151070660299643054456816690239457318586926046544790711192484876008050279114134722740476760702505642639636098269917158279215494014614416759035669833825133025139234307908459931434638576576716320449599828440545373819182312175875265894082610927058546491546817452803169017661166170169604315945772972295300803301472971441329481069545225996012469675543133532034566117701194732366752045315355627350778285707793969336329463284952790322586449365342577936664909599835987481135856963461119501860179180760345896568847008838940616706601110966566833984548769361750697032908699109091838821444654451692676061468775001689143495442530713632032174817153208703064257604873670411604892355769427041088907792485432678712509717034020259723278023313725171873996758643139715185188419134165002411784338545369998594540554560532586364849667937812828920298837027687494314739961240157550833908603961209565465125230106762382449986998589006282239354703735209716599269342607832754961718849857434259719176538450072577576923777562560110535138083614508471266489484907250218018980039450227986018480971343690405083351491843096634167320275512670314408683922563232000451799517219203351734582014329882056787339949241263865945111487432423090291286621722174005461073868965309347903857232917774911099181391658690417537525181182082503880410631721513493867762729348379738684596922995886950356041012133419200686511103515665057935200856667781143400262920078303357312364672351204174646837119055822039521269598344502052360237993986099881907486649896924439011476761990868466430747837284622029553323659272176301149143253002570066146584527904962744420644806488000897751056019139962529812259224275324151287964513101131006624154521250322672188621897125850867423163407958024246632253705609959634360795169202859137394547022740526394513068000856783538169802099118407678979045113946456675418359190021792448241037695692447924646317254657347106888341211518640355678906543134638898572923468225615461312503168809914391072409538375326348978171182742384174492364916383803724759334518353566157145299894016370359238407867133480610397148935063130966038684566636584185108904783486366663722682923029465399988164923716797271931355356093629413055680936996919119783567485061924065732276867864613504460344410278936212871507658561769561864517396964699866821348048046848606096080287958947910181859871546366604413343999650472490307722100458244843174403999468974546676896796119830905922963614711401329477701227469162099315306799669101163183842969589351083463422875291067627371917188172010486826478479110878761197103448917605156271833396967232539130440774904195595253735270277519318478340238014722472385499034234659033283582371343195825374418304899475457367691628121344354670386871009650125832442647895716534367101167481143188665667692252676832312840776729564530114524931684964567820798639674788119300218562713795597679524423694421081396969973833445024831850099986032508538894457354872826389396673292007778224112710517599895280053051505008913350423574130041067287768330713850241511001612952953149328559782597731079177759669179075341527042946528365247164603913816282306019323003603746951653893915263452489234944917543480505921321218184234931901354046617550120678663023207993259020022781704667571191308976585296353089009888129060814357126764382035500443228203807869193652538760626854452028687152551458694098432515354607615612607068299160469751211056504281307257180435498613692821102885472687729917523256886773078663923886384847856387073519932247520556655794966302211495746394515564016083519985633885771957204880102395190892908469451787475084811102256288941107809339635785846044776511648119318607090046066574391281301522884759125165403335610561896891043399961292843162731072984906526531282171629637589404469375489355477515190244411302867594095343420334767582310151574532580169524937511682494817099254406139323315970246829999442111703779650607341690936858506945479585036746305913831663352430937871853056895757671307787074371871994715415225015382750647227911949501400859906360862094908673861519016603781465501421748270719442345613042251272157299844619001340227947991139553928974978968641324037809892451218062141107550518623021954978152997513224441878961756583988963468487961918534581878017712814174051203063437032792188572383945432213626541529003908904178865260694311195627713828508085982080054914438977017994319406583592943623861943595063939572959229092886967742149823716125836701438827790880431160154234103887639640132776572191957745230761953942962628497148516248126928862468444980739468277493915057576470413879345789876597035616962327175674846795008908864924399798441051585266843371848018886669719929554478178284806671739879903236647466864201307730047430321440593980768482450958841167713368638088553955105938984437977430464506505635457937039710881440449644395913566917094625385306330568594831571592906908865485576267710243767046706887108778272320592690294798609993616832146059103467046680011915348821376672309500226058917441183026510641647638908690949833695036447728076522540885971809943954871387628987279456910950351211179232182786254462098328928930651676670059718537502207419278671207568454212778857621660727410251961009978628269051429946349637149583859010296802151579104132922287544847922832596564307149305090493870603664497100792360204014866566181868680038274343637139377058631771087977195286107205117480469930682333223873584880210568655749040291903463450138887365802459911446848622481124776075696131301201260343199797323941046986439721279396009794903276814222944023904819880320523148926468720482693801608798078462467292440344872004411444812873324836708871472821114729618260435365996806855196238001713954659415182043624846788934042593798039431611637076873504925910184734754797790359036503394609500778361826947813722967312344721984046721221660915065293702557399276010365172993212355101559815542044539181125910907892222720992287708109093811114352153094785912205708621409930213583868131592700109008343804291417462777833846945477950540943941149063699859140636635674659262094772114433651612422677907143844067702599146912865492968127019759547291497023938185628771929286569691098193074642170926350283295731688328547104040121156986011484409842971392392156172959194823608329801654213131249930072042198503501058307629049960120566323898291680337452245253104177826234918537928619950066835456929669839449793813037001019462586663026822901967696570748466542678500205825321429008079887426504969740296224732765873909583711557717727183029142590445412291502722216669665883780095923911509191591372837281361634443158222938391620008478285481826919954535877232490237375480188544390557237832563779560151308151113444617311690487301002066094589356770607322172178670559013930096737913169840078226939574324743119332929527434631192673286085861980763317393779066890274403504925837110054284627852317796731559368351964971128574458019383360359352510991345226739045758497240384309501693394599746941495166053749724886694064498501030242388232421944523024354292003396279547015920807331742276711375089889067430290604896317527303572555486992584818623599736764267096282548512344796078933019454177756553556525507030166823228307673084720765293868236390031987805295255395866642145357300197638665273470663746135390325770759596892683516087010823283461207746438298638281897826457545228022981060945969996349771519287950870602206626246216511104000704168113963149966399039926378335904956990081195099806183169899112081782439942539869542026008676850830853753438293961489417259679352006414374652556303878857484174517512892645311382475708853399742086618893417849355588846257987126138347521250161347533397491019166128037713016434914363192518065382981215867408397955787709797395329622061496942908339691562547767539292393447543845678516649161104075677112339094566193756104003390602765827091562665069592993200717994679841597709439037733220608271376400618400465935593613104558246971723767831081556160191145965495938657609914303322273236780973559433418432256464360298824046787292952379210812468059985106538216368016061496953452710262240838352254352072916565023126394850760238937396261416206002050697027747086797039213377850234057465290824352375478430630193697853956825074189760214034806148802131989671141739058568824648440493654530345066454264359237091421550440662139662037992140736628930464652609701956730939158473415143895667741980348401336297066846595029578632605652954712032954178141642162418989813222335753094171605301316176327276238494654874238767066126667041547301206078337406412290925277528672471840360282829723323488376549210899181307730379930070433256423081466771895097257868817847863946143807499873447889070070348210454957536241120978952543258426106046376963014016999378584151021476882695794377685950959420607933126778597813235087794947628824822575481796386109257830859565768365523684667099298801021798885465583776802862339528726332789429840318553182351798764011162273483127711661021343448992283884736617264295039214181061636172257855243353897864344274837580253838510893434467207277030987019713880241295208215388428192248363774751724484110432107340185177771483608415418656416971987866769539914171755071604774147856126617113047237675335425654334774835536803550185251799040531378884892465413812928844007786319486777703121233600471446229285518422060526377835954314980088121668979891242761826425633442053043110835545326857862141923588119695890665609733308533926374799466160933106636784477665968514492208768468133561289622542829029069401258338153073918092156552511128831195036794281718522043493694770265620232699887329687504894622504947271904817838896304068244309936790710035829605645964896715806188117163852007986778786624743858471312191088241665121273250450263520814139369121479316518751810064690574172173088678211812471439122749651257353388279176735975631065819433500185669881039839103217032072864591823590064895893181753107232929409982981019744374006093010975064357370829558355308384331933575480396568401908512399578540495568717535691200132274597090926798788717318416277241101299571889746834549016172120469109889745952380985516455655531497457853947737926936294740063453327407479179337021923726142232541628965689984448094154673653155619787689077295681268582960994410608269676616971206623313013702939609885896751719944651683522488346083824343229992105625633920117796921446544684937596927129723598272522326170018010736187348444274815637299075181844489161052185017709037631241951723049154071183231684229456511657142295006767189835874613695165554171775443177327220655625325240642236602228466412182814969759625460211127326214592103219288115867562115172779125055357725164876993728583857711658937636075629337011306801052077845103052424179687807552309806829772226526848968281578257020414088076114821802547043031248245959496136372215104164111820308904890787854021219509117017934771562275561904858693778543430538849179404536095104039455112450981429684779320106979271112548787326001087048779496794826642036792771340638702954176514386977329759862612349646233736894311881022285994848819470253766068870795387318299927391617662159746716036512614351332454879788241637415328855605405668014450406555736070122336156750297613924082705005568307422075264551499500712947059586317716408983383211835403752274518384277411084927222656931989490829457932053399448183061689018802237904182384554847134815469943895060804586095519037687373679873048980651143760141933858525553399838673586267033826109144389161279086423773813348396524415948093998634814563936022975817452463171105314575343036332782064867318550233106483580727455371429863580954454117652415627626720379838465014366023507374186657720037115996260290628558294924991662130544795909264993473136208712944050898006615132359895088086069656563300431202027700891538815329302065958126152015993137711805518097771767836666099208513951225462553669271573456470546529645630632582400997385521094270045963936525395783643480436120830484753498897682774482040620194332200505939812285415324769273532482762088032784729104652491082709842319549564087155691611026530163259679965826195907306125562617464419918904290773669027619266492558790697201106787371633945810291547152158418949183672753818686160533366285069637495436619735027882238403714713269520536045115782330059286686093048195871920532682351680194942799999520294372847760170460238590168352728278656333601309900350004089748960004812367142781607233133766432187487165065516582332818873373108798273478984606737230167625925780602147159483137581719267657668116537254465738500401116327623556021373804383820977378724860278735790496840903740606108072134515661440707632948873717994852488371564336374670685977497145994790091292707211369594637921944358513038983014908262717567639459225962835995389887252222188005933816328645379428792733002323218285852923393940213781610076319813028978089553727738519493476640422860622540635474109653972987445876009473627599599024405855867860157773638181198086817875637995074068349536571188672269717570143076029764217181430837819723322928100500790705653276199462633718707703672003805368011533707428167782810408314126027706794186147103806639614630763117891498801355471834710995707875107890482398974226796689228994673109878842564846796099220558527253561087475749443116659113951422575129365776976570181833711055488529721652004823426794963134722006583023747912416622990033992349687433678008511934832168364155063714866180886309199228259994178538403784634274869627175709269383450185230628696043419277398543599199635916018990693991549126235905962508399901087584175656405089976273486090584700055174527274533173035995212913481873549347687516490493970820105024339095560034487654119039586975744834330910565602104810396912164964074915503744498939278150071985789514852817796579899075168119317614875468047963840535689879345843329921764092301803465800507520231628067488169627016546283322422058251862623934724616725322932329300280515924405355098345401439094871768308479498089780420919859685979114512807712953969227324963079996033503200680103257654631157315248324399979131340553904517227555304849132440177543931572018253665192583125683225773747727244897331141172203620229948942371090656140135695912532801524715370029748671471370629355648892855689031189318060537936765122683089189932318128905303834211834955446972903334281846941435346436055166892488158396507307769836083373194080998069138242998271015991177603578744816486089578932501629560864307578510355991468255804348089185626465637106818947563000233709587943729490689077956258590909668296907596794018652438795323811152195142703500488106002736804906765739173872037994518012200693223686908009010185323958655651289677091120329156638304711982038350101097677544458822153056526926785465279635153670825833993250742425849722556132983532157027395396088891808953060314615313274841253210688600457429688617916285425830982991956503799174548532299415754639360239667782621463316936204739155751542855199120208979530741478295279585492800217681694683716629749843607148639440761133117186368241443878308934588048173643171108870747379324544572163291143358542807099522635230332969462673602419788240113142601898569910248867333159672462675130713507804729355230231025161139237949889217719588574717729455714428016366237417074888894864421106813315794249725735207086060972105519163062458316665529155657029294739449142026783834153113342154680898694327455041627890427406198910682361517706010786949553263891308580358065014931970921147946153048505487888188772338589422822257942926724883741782753551589690230491500539274128195376421360844177110623758484174251820643793329494150571066758338977851008547722564888891786163467357333371504832803086319249394936384879265686868920062296616161443484861643275397504532078449974603320235272282320751875644772621722757457079032825770834450898140198594977112454725056932826922397305746122740694795623544267374811162236009688108638651616173041120165246740449590679153649651102325659729955441955754171691019073374122578908202309911006055335625193436087660757935999902130122815960326444446836246394659391349207141615719462461405059128093076246726077926233915799040086410613267494444346759948119739557023875480163766111827443366720941975227254678979775996266125157297179178753305542320231670982394024808226677513359154773116289383447565593606360910920678276327791754482560150903824886497821740278103969396561855468335591221024315846335050284958858736633367929541650334393214362133120787792393425971133621713439565892626541714076210103163663476170694059777413310659669896341313869181738568309982780443747997720841349161183052844728520235677548784783313811174583720865644380170803349168135555044130466152631991799740441305593534638033614085506337408574853144205880788617115644881893811575888757793249633033581152870794074192624543255895820532184069158575171999508103529287826006987404480180758469653952394224522007030982212920044319564964745043979716521909942499065593147398422640768340063646292378066313821944649151952273388256631513150483209789838583576483521552761348285257476893740476091681398523067149694511969507596409872659186140872970575084169089035644683162562057400064187283026097455687282145358586374870272933069628334849267593333906923165530083063727937564307862633949120193968676005866611052000434665883383502787024581159744214790654999452287275521317048100114759810766920246645112114771296313515956896955349748298976670248108603092062432380038949795822428221755775455186032693988516894703478143141022054022555717046110162363595420431679013717326706268319238251044241184370082375077115418620476660180320840834960713083609214207893002532263732314499609749270183090427671661338666996876074061433164142546259869045719823181259404833490970433830465370471320608640661210699642802200623458557109773572222626573845400823180723337691932556381060299991487996249484879312372064604383516084271227309090887697078946044813483372174470476768072370531997907579718372261056158337138226542003393139355863895324904478211881817143742840944213227854297650485297108532797190074758175489645900094085890316007976970039428521129775418555980039108860980905367595341259628857544887641111315770458751213771958510077598317420749617780348344308011045558876366896070145358874784004557044064816098817542294780662244445681579075757919916728829580620428343125359975572739821098800101422192261255638628798168636898371965911657469547483622790202644820779163951132890705510793124045698849116881005761950545084261308466289661625260483049789947878769081534137088255229948612881231573277490249389426462588746685264492687375090751510609058403088182522013438911769104752521923551255965630965892678701039058099428143569738000059138104233387438825391408110423730683686675894064468480128499368006135020312568144327558622069891746294970806138993479736485614458912881777140179022502132286646360022752537107450287317161331658651203690710376408646340664492782070545464444982511293148538262607129548829436445697031156706844393518289606375942775250196936440129153683665816777114062841976547109029275623554265810732918829728202381840011203292617307014090669860473022674881489856954511510336612599408853306828741750469095670669497065025492137901048858395329079441015696651944131652960978671920182656048935554029385817271709602787186511249940569888871959344746374115698416986608706019080834642858560627208577766724453645515071378664442310455184507775280282085291524733738992893428563372526836360586490219253152232474293568826917323855127323486739402521578345531788760844113821957385962312068053777533509112385878209110133216754821430967515400789313000049616596702375133740438965258498302481404223132634670419903203428150097758922505237069068589801921890740711547964513670107324449424213179817719427310264725007145121992844998225184420985821599777073773911946824200073248851945584443085716345209672211381199824895760640911991756528236633368528959704795791688025252926495415620003760883442373744779795338320010852418883514248882141820194724497570391694056035235852143334276011046235548747080149023140911064624630266816181556654982548544708461556313471059468433289701967517246698400325813474611150252890357392167601475879768764623043019047355265148042650074904358358214962932878432533900238107997314687101297959585315764660910803667298994550491443911823015927586980792268818328535912732807921691829108919714630618047307283883310714586762025127846474455857169311149214305889924898311019448449130553301477849688875211630981059428044305972073236745452869570126557551892159883278388846675110383129547095607071125909520622020264476690851477301529783831320647815887807966128047391766005413388560125357921672867756931995328971028373300239375526859440445296976194727966924460924672061239808312774390886458779186236857724714374532705678241579191179274079368842959343693421725403484378846626236014561480352220111612774436959750693380640500790323872620832158678011647514034980277677367976812141759023959070779135823865059013626208321157572354830785493420836942029792279303340616601218800996748782952184855150605364788696110658368204446213701830507018137871181787582425067649070529210494483859964612915753337588576226121159730054973261768408997732472144558103886437268799445540951114750660854693002835865957727731397708439472137263460711084582702875100726214670639761972329844274642438524508466033689032886202860925282633173373968376944103607131223697795071226521484496394443711299462828808535869891967036565469688504467169127916977306607376038216640161733290166009878900492244944401712935609044517364255413505517507050481888544653833824607201868002901295740785768645360610699388263484935254727161675257139599445903062139336579170720086065121243178325455884221389564741395440855182223785219529846158493650755898593542271572421582643196452948632761687819888828389089746117282186522216306275123920354771467642245055862360589650358357098565270681360783474452569175115833971584986266427579500449792861915195244814066753046871620158878846630567585872541309961681469766319854463139115153701641928910718232181865797486207363376086444848510451170151462061153251510958246226048564706172803860044210336680616663811157922368262695847959700161090867252608423948896981548153308737882519338428394925930121850381026910595121013462928287413824386997175751114346139041280667737113555543859163586216244261492864478985863559160287160120343404497028723742614774112407291769710003060250588356187651850426198933494035042416984190040127076574033068428236769523142142429445295645327908273747499956915682952719467889538919906202654513475038412741150779788746529304045146773970289492615945523865929981931343209154905923217427211416065871640867133185648339809091472583418161137513084264466701472897373383582665540397534194796137746352489673976634346256464658433862289657413279515995219327208157975971193271505132745165202363204434333948549073720664308936183030684680547204059481311529404613826366782938880858369620820965154996932876892407413136617985764867149720746286835349696098667688654013209754337707747928441585122903267325440940746180075469471408351076985980763191026631248301869565595081676635958687857656753511382135580311218961387014662272583983628648748358264111395097387390022075339301265165713137134518005467486319419076906132756426821930393820499280773436883346823592584638685773714016524110623371363403845048062248793864095743903980853825694239024793327052911772066026065265660949534159472986804151018446952070108886323720747058361731370720395898579204823854898402947246054594399399956184956445772763580285219351740180165177433825875687944970006540303331287883829126331257635223889699975491041824461447823468959794910292302027368633326237910912333734531074013753645263471127575768139615970192746232960457647244933950730558530292092211368474386891056648604341512239965322625070624888446302677367206956223786314178260152442026097053713044513193101750200718409018432593256263964484562712608957626167039499911573306525289208807849212508937126840430793477318891556577303570708771016409915801523511573053111727944086654975546507069996565545099142958545088021739246567430478051437024076495167336818997322079066926516196267106641442635349632628868793975315296014435143821583933781859919757618607421956641493080656273513868253662987201480337056669456496757248364882902472353115963248259576749815630655413198122092341441917298428038042910430848219781370027779838105629875810097552438512870236475163438913514579792378520095761935064858710972731470835337776229504589108496454842377795527830589882882644236784430680158445202075156844973695238730400631848515877577085667252187311790958960747408095659291735145981153213447382652105557428114406664137480507636939203457821314457450430332414491878766864031987739718018834452912712090195056494341003326428865906118927590072029112418595895580662121099376329800803348895084879607769983376673553358040920398405279346587939597525620268628281774339376109030423036680146192573839414375981909142513569302534506910487441483753148867292520769300770080638303972839524763498299821102896096416726510959628812711297943620277137327261216431575662008294843672456937136967288150329556970370342689765490554527703963786548691748007569142753629053657176463947816813789069520303040860286722666944144267245946223696376382507307848479210371109121008705333501469752288470560594773489914264932433561337008501251617103563535122547617778084341565981836487269795900295718102052268223321369314892683738463437701011882124609431869230827125581158019363570111760388819885368223565530332719690649798527092744864247611703343793552008048632615335813126121409163858538085898815546196369091416236980693724309943500795228896411776813637539278761193535238597980106479172308968822469209115975705124365110447243346238746244283073939473987238123201093060622780555593703304914058099637784793350360794708757906884762538785630836032754050201713214907668286213669991888023568633653702875293624409533778398230478779764805814011605665223217052933688638751554952487595694309176503246309114389185557538201583490760307224777568796343229723624287878100846818658671699789626922114565033369456636671788363963782336014571100013417155381497375012199934785171527009797687975030928321093608572855846554913773180299382657065046061322870969672598885135181622289888049761864513463282566527688881484613375419995050037554788609967952628979036509201791706198608962602152371522278739532128768353095057851991565745735416135397302271459491286912231596937278852426428359830993647218168050508301589962827199636335557802523448705343176419538054511095009599559717840476645153705878529531620813351862457899417448771695255769621343610472555108417484791030815090675614915795405027182558965737351930705408346214496430556804030800175806888136005054505348091691102814546018922389222591703856724738944763576685686251276630502240531870282577525343645528998783014592081673180640740704503654249684784540897264766017141335995495065869088962034118114228517293920097929156544656689528388543997320571526620368093089067142919354909412501650325346589542699454008638219105418389374800806680637527608046865796118247421061270472037663044040495576213965857447766787907162479967563713777975010889711452528537964728934352570444982884095248511774940515228259768914947182218565826209631768818658736425610049784322619033207237653074608486143101385576184118139098952144369482523466247439903305799569927531840086847695762482232533535034218527146397759134444783505183405433467874738861484498480485391445939019937370524143673816524266419580935280509567118513155622104667039641471262326693902375047353947111887172516456750605127356173302283791041234399864968126665191216065820280461564408805589018766638085579739760622417147488447405574409436497838144200407642391215114377428292643701344051288931745552082021694735412464956043534816101186817980354162942656276392894607482145512443709452725406474411354518494862217271713286689551060541153235535460039591023834126261485626425861636493430532039489599411507964195304253506220026465016058623557308341299608371043545619318227799242326655779994222380881192167052874193679087205475770799174315009293590410567345282531668172328346356639674069093092913941865464546508778884354328504293832590072729681462820784219064103148090103522926795557800113159134499062102583724631202437796972042043508680075893204720531041006223075896942426641770959981417342638316869862730141116933704309770159767997819765800602746452589803569356306564550040725267146093988892559053238371977706000409290982849173482464352887207340762281181363310442367065137332781792980197701790733039255935052257657545786407088364540664813123797004302681596028031256748356313665795152670440966835907223053484186539026198668077357246817445575121978965784389803069411144160917278681413870722726115592664239995422252208512955108993193792294600094626970137847364293223494334290132949881646270124178639256372822543305291982006554112111929028882043938387768018688363543917408142832221706118369538323652849233120276269450533287200451332800594528970783266794418154819973775739051865776184257626055480905275961529905860527154837304858822999007803848151780029579715172040775848306400230292833065014442240580500047233863507463850586826903947935027739293484125683548780531372009730890945559207205695658885275975228418896044656129041496311540107853685007188749090021869061889616722983037598982843061230956065897013991702208381435105292762918717604167655826510573795209299704991199222333272367029975146589522184954053785760338641370719064547988812353179311062721405384686675527666662983451237008427559146084199084455569094832567081413879630039093970728398665558568734087389978613661030981002465960837358904948131014433396450322637424958912079712729583497337806353431613812973930906554541170752271086317188793144450811814992720450357099761655723025452988904816070523396567604009125150818522973834972088780839692710975711068569484006360078133139873379572953947447662773329944013259074236632969252817578799968786748198111960554630120687030074241866972698355469303650749506990093704689629547649207800830738337013493230671936090425349023071981135118549894233948792326574790541433370065893013217740919590163484966853059319733576663660183575446770015948022444140808052917208623546133657573795423704146567396761367956105919725977294308837189145427070707373021923571685056441172454836826881270136711928145541467272991958124619232464116480611561792297464255676335143814616390643733945509247266844339151708770075712882656358084279721443125701796552962106880258254205178288525147542938681086233048099396240814459525252530494694372769350365216020030729872228284144066928681597098383544441967492453221468328206850272237511286722646823625086038493464231553857765569778717876027580553915136122546926665597174348027228362310459905374865624463504857183586882280067441856797447070794888133929918528568505744874757065596659906095868819431116863784886914542835258283843045374117815986866506612484168901878987221792270947636901644451892986447361707263342077275176350902774501807471361588425822298915706365562124972057103370922777218375465999821937878785206617009087980338960963504623487229362132821314733685891952593412152393150804207809853188443039860720241428872018410291095242304861774508154439891048573147979914355047139972848834493843036429737902513560182895549286574316594240476916113954442389315387594159167232981250341750337999802166115024375217207970625853012806053666150946736723704333526903576565364703821563369418643019484418528431709558063000735337451145820498189080467530149615904043898186000840590601395548191033165427969420368797356426213625994645181473415526471664800356521037206713255414048863898222368877319423803412075001016736806534297761058738648243280307167550545489268707816398184609223523492722926224326180938429154945261375430216367465774196652836061983713086741170264103396886309151753650585140141223295982955418487358525215829222215852519999905640045593791945674981054355596371461728033013846861232504905906292584828725625749524215929319071478402048112977623011603587252607470104694264953553054953848532481888737338682601395496017013570530999660986035340737985209450220388113267044127048220748848065989082255628836555390708853005811069144889184996077768006032352947835838674448374654689012079037724220332024289639019500483630116436674755045391309957458971863967405914238152256997258435018258817780263591380785652985400027643431994790409059153956874208616498193277074096973924927424309705429621655248807636079143965403382249558646906223949374617675217847897453113399216665247541974507723499890660593900701297439026267435361033708735670384927261621287268902796647192794380349334950063746945410092120748360633832318516982092871979013440861082681877716377685682039271073581996399472306331329073944182928372522304103377098070284354011957869271047876055588999443850308468192377245945828982390525179821448501019898075146882768995863819949477281225020528132708398305017553272897566256508780768023142291546209765692781161562707686927780439985383197972720427476628460983030238502569851748937160031594694756189507098668055998593198095805002488427145811111326076636781548250778157383770981926400080900417779812951768063539568023701340789215225855163602524566228990944809050737712882991485496328620508083519141349804714251931997816326498730416796430145637721488925149249771032333459168875786843498797346255990166288994917678470965410400115921445000977727329958697051056688444023011232251214105180070597461927333639958184321532382702452094561053925813059668237077973898443355267486069154316385544387133714869671666624716263549351576479853292726303848492492660245517356183083038867505345635853618425763494440790505580286262941172020288346536655103864085789649850514236664678011139349232162197432642784751136533988722498130970489758512135322858588731079101433285877186119014436370686082880994620560004385280290771334753405724952425335537089139969673547207582558200732202576803363784082626578178224666932976771862503615791705927465522987008735853324459196344470810294228894194143057694951940158918014601209553707446695131169655953146145658601813264365688541134200114970813544669289540141376100925586810554974445809863121991904728231518241336914030803606405905779558705169482620191958695096744381667374183501272754579596873106692682586577369182189977601741862338545649194683699660233111947423426854845846664634296572587406133126576753127379672463202561403284675046225126730791556913929572403259698541894410095555105451669007973479353172508095671212091228829943989467556978813519150187261160780451013941488148200166296210071576548004757772544516879972183111011214406969142240481787015706344622061640092280217911619262267366845906629027009330917060962198614115851820852478425658005658375932604477899905302379792832010820812790670044067527111396743653290375124556414484369411508523914892955635132387331223655068696899344663760479010015532415892736490142268571801317363341303609495744456140690023513795666321918564988621121102598674232654631501394427607039878490219112406302780311408524285115306339617272046532072269035590147787927310778161735433376758088233688299689126239059129500054653236149292349005272642337896584970994855778249506367623295466900180548550591506886500673057103197905085295362047246945694930063963647640784507548280598773600849698706816704620544892597836870487441822529774663525969449615933772285227849164890928531707357196433683582192904026691303236972553303702027842265757083510022714036704781827996365069839269921100181789044187182503247141195899271332278698843292049942259275779942053632238847640133171437622632456377663427057425544587361834130635747878303012175361902292909231020366762385811324559213610185498853963658999600972679099727313376965392979508211060549944595494802977644471310062862146117362260512236282659191085969450218238343826438405819729970115100460882545307905408796217184291513300271748513473287892000254012650941553524334481327263251467878927429603015218080054156121763576805063912167228198732555700874828333888608333688150433066932027220455657193470743624597367818065469222556880295740420461277605174685879126157140745389165204616763891557585317089052626087778082381342997407623024063836820096212013116528252183925986513267876441450252727634517259832266386186710124800280618692812478046322982346772659974462205092397214744211300525598197622507317695608449853297204287341617743479982257807692784803273715652552113489377666265356869327340305748062360324976516378095010477952973064973970106766018917628185551649415646060655954652776197361159243917710851673397757775728140811830831449075508948737826461571983625547312922268509190940773677981214607190490221593113387729958454094104757820788905474237462566382055512372287431161609364303993527719006206323096665902697714723448407107089109678616159038326510200510149412778539418433610006395593099629060722649742967954478947011881560038992410838934671725191502866299301367158964044298204662097305855418125049142399806134161560441503656202318324461718616024256061831840176425532163497373789282166299435070478882945302246676679637197241951879551295371768393471189468577202323185806809126213208585452670314940606846199228409627854003763357825426880357135965332680921626279099835428503406046615745875343260590905361530893364098949804028474505637710774822602031292931788197813728427072806197728385175870857812153455409306577762420051134389884059484947634454270402820045135485792546580359357902530866926693665481402781670236980691542562861880234753215178349999209797333658480491752739179744451952620580113472699709044475526385586180111500168058982699064362392057389318936822075071003856880735136107235454802182308976231396152547889105634677371016323914945399980282905660920331230600595931565943792852106521833626871863191747707761153128625508970533952725888568106019057581904028484172887791637866666108999259536463735383739948406384898927728452231749615499356888880345511167459601569090978298548941617639701667704646313354514790467900609805383620766552914386732982801772723994661161937030147454595155230537757416280626248868485726772934564933366346181415064480420820950669455447761266788339043832114004724872904786719528161904725966436582728887613769623646712107290449526786090526343107926775410554677418033802595317205788452957638681462304469469013410308575649552736986472807699705211255814175290581157851139124809974586680454781739689333542715895842507494057532833050175627501005656894599781297061761136605932491742201293388018965219641346434372650540214572530522585631194920210658289076292910038325551790087186118868221495124136034687062938269519982707971847866172512426755679206699337286132795673963970115809458744627682009276523293866877599526999525700535810608301606639989984476164085896569901986774259963824666227534270596286597698893884294989857387204072600468938953804718620745579230684673695849406000819533693050317675717352503448014477914605924883032618484702119787638737066575338523063428220527551464392451015090278859700743134140322854877788403271751440764303768344878686230717879351120480290296523253641218286816557970221582207809160670459718550960956624572076293852686167762502545797071539134478067008725321044459981200521282045798808389163765375005588925067249256582524685156414496769667363996886062724175680860444037752217752027357966552497648724844692311108747386241151221471232514077329485055308786756016770985001389438793228794398600664520400631455548813087763868967566638936498888748378062422031302858748471543802811998335557820669252203054836717293382563186161844818730983522444125528457867574047261058182942067290206866666342999471796812509192538592694838121109171419972807887644339501213640611025119135218271642263252108694433935926068999637354031697239939346020009349845186519177577411612587171365396410675291325041853694529305025744981296297947520590306541074830528298648801522868846290214275881160526555540831667796513579759550420599055102206615799582835942732394299769070435500905827491676411247462256162569316372242274530780176913172676218527226650716779713015896673857636744776652111391705299157893526262688240284855256118265891177022291493398384850377547900615215054080093512535967102424982029121594616657511651630308407399897093577483207354056470314133699515829335644806256673673462687955644506664010662097639829998063446243080847337690371540547371722543387677459176534757108005040477029011012168823567474572095818730276804377402204586325761906547826750712204336947863863702700837422055902801775320208025667573211664442214821284312715072266653790310975919684035818409005219007186344021273679936747893342377727850387306892970003009778908391191674504384460201008850569734898517097313128956483621583751748633823190843080636905853924807113052232393251485387688443682249029737949355495455974590584471012787031524102909437174621935720699438885149386806803796150542522090996391362981099016518782335326141018028847460775619012089825594399510262633317740959013444627530415584355412568254325900984191368900853655292660867084800447134911621860275688858723344865933585333788279775597989135056907741705670292687928793772401185573059512182923696922607397310622638158874070541720381046047533465309583393181572353134868265951137369215538898958031303680181567239549847509049192054874081775198646061318546459361466413812493813696726415238004316868301785275787333497864203574453277413566088990083323477429906696249873991084791714427248914989921786802941865083438375474925606779873849281165992019776431583229285451853968982442006167237672695389103790125939257016025149980581643458244678839742176667429184088698747850804098658772512321986516518695452428037192541607176358082806493736993453723843252243556955219447408083148584469452963170800083139824244899270103503360475476406452080871591010476753032279998256799494881156537875020633208845865164183999954089236810511966324822714131730651017550436486123593811154025507818283010820893962827136539494352306898354316116012602102529723449260900700818654243626366446546037968379130576775092073827351845648290283397527403283395592488402758866519751673588780990680586376080706448765162004037550029433553497254038241474534752967671329800329355657842063617748857271862995389600230606900060586337030987961976662352913787216963864446035512024392687389520172007445536304038751282614610228685616540556914003887263217044961497601752869735245584484134478360264390949704565614981124595623907666394132671676252401559807622041172270548689521746960687088546106122454592028183804890742573838651930357741051000059476299467428390275597940057976925291344282972364698134794927278122045603915678457106622573997793319294530788816874920594275919718481983709370713479894273813301487124411551302049668820484837745030914254575224154990960134489302652819282918840627985421582313882882677180708630168393595623184533610243288061025273659904854303044263755789129236062039389158555151721958907953828336728136390874916524451477956912224060097754037090894186797641021675572704742547452031927967638970328387414691478865361736609257326163735457422304168745733474671792422010938462223057212864637347156076013291728694467114194518352692645851638052094618937935546855076636315788029705351537422763319109645477698528374686860678099345568373188972518261766351886487373658186135393735484722949422641377967644785759693405436729331712632201885524049112608910146948203911278220559831171991063919224158827875451314923421789603520480909557470271226711522251041263206150379156675187588858607713188107162697273495783321052730220010674117922729765458787515927305987124625729982290621484352030967854527239756689923670189848526896280537821191135159394395480973974453257070129426225719279933428132173923615779686172151269324257164288121783215843586991938578201442683062925779035960048336100403306071447790428968209232941110949711101988348987614052315721438746330049043984664648020162996322352430498789462062772423039241545216796861712394506798631202111759105772906873540458416935400812368320851431781837864843582459244196437670132540722959341596596680919801563029215040616452739804960049231853014267598156813664834285499294566666594224921560563086446567059169812073468132778560988833835761998510472741965047845849678120650123992451339875036242341157181365901880537485311374060796441709591327973114335594849768175974256679710233052980768715041414549498461859360647764299973347706371302673593289726246863927306008935961111264590702353099110518449904191276677936445385220134968649813067373024300684727800848852935696640804379281886643155212712379217013295833082562080427113851312551537105162420183491719891749169596286496782441170724042699856602515105048038232927988761204119749551022189306215699670554202192876638449511289889385017480001138991871582942252837328321604762826163575684198842123914473549421392325178866688097859753412117967709449095340522710513531593418452616949187544278757051183412551476641150286582105409218919697379415510055040761259974027054246104338250787785036400000070765892738275551079030007721300500839233720706547955216146027179418727831014480345533308846309088350924981148199183350250878551278494903500602037609424174641818348213642823986262813367171744502940632582548210028407850241343465170708930981185413526668733437018992686765663164946617673330910646778155072328152334643190545306187602895392104669222822085322929867460528951966228342536770625777310395964525763008950849229070629610716073754772690284995156999071722735311808200959787347544051252562052776402072387526570731604080587535931728982681734616007774947907213878658758450790807814628004711166063655842909136665211961088280720902413090736206185167896343759186610537242369232241010289577057475880377315942378178712867204696078893218682285198214301453937255677946490155581177246570804477484199144691245171383440015488620452544557728196386322254200211649575627691219650096031681872018073936994419093107500370782765182868866618567734245414803549946993463965840585184292469769774845854116781315620039318580194277505041337894445614246504876279593551942020538811238810073386197075748584741135213507290878448798527131675099512134111769748847738472166390830229160524819134393100478107646464165202962039933698467260825389146356231582403822217787219162942403123255999045953070092063051984699073283401641843617599298946704660046082179013961638758143359134874108688646788927957129288619190447083794062686305621511126884845828933419616490340135875221977485984976197657868176851797616181012057505855187587103244938090933660297316753137515109870822302847612622777701770225063832077734487708809725804031515561077707838489331939213023382298656978662167194377347480781194341044845176286667996334550236115052346327068277699768447729678850100577225237453991081183284795761604679327306522262904840160356171018627652021938376557871010123171369673225750088310192313545864719839864772051400757065747628067525102439759644200528906238430653808073290769810889842115408930943856325906814545460999615650551276426708972819110730091497890858827952627679379764174298244005765094099441658909146047230768863732294062268844803991851805955927634814818241417459366777953532788816980867563355825090094126468574952093239913260132866463378163914500718782775530659686629353854494970841220761591324205940401863304791778568886549355730807332763937885726864130397066571216673563164310058525987375800777395181624505508927094376482116646731328180753690808253722798663733659494042829874927354105898912009888983759630006924470076334079459677615833876357922359278768275676752481551550965891858213099063910977949863412468080209804530348620247932956845604710076572353095399133859142256609747221161217436892866172993057568710389626155339716349748010049759445315349980223049024880165038893789949159059845791193867769128264592489841292855828749328585331769016061258699267332190318475951450225724503346727945417497194983523940676575581757023649240836169458040332771264801754903871816987803656206779255442516547875628529365551206195995464783289960439545428868758569245460186173340576790642575980968512807790071735032318062238637175508684335211601554407172722011961956803559548585048552688851535760755055118381000687675806284725444182171422787380540503247541040567188655978970036122344805963881966495440079367736879690256538051084535178534646218497574062037251247752634455009608842095365569622484949188933938663934996384241528505569596644125423983969893966382762175934108254247178566369209222833003619155249538994253480540949987148690971620545969488899898799917192610815535179294804307780210991205375987665239335992190419653406144156710995221995443900120147860878774027150970353446556345387481876881991183171822820413684384107087746910746051010814439796160027665025078448641651057313906421958039311312957108815863682747156677763975034020656046800370556167261263545901291290368842019971558858013260659347452097895204610594669863836396064659182813684462076110191900164266796146196028025047495019759890671816353160760793335779980829944462923489543209042027988887417407285838863151644988722046719162539430188680477616505812718546318609785616782513927439819157420805843090626425106315206229879774938635243137309625222132569632203385687508015320379187556445107407723719888361023106613440019350088011686032920934429065129430266938827145415643477917939370686415798521458146542133460236861092250884864188114648536063451080204328679292833444417802923818471894830384251341926922064222580999829105618468725538799735146935378018904798933489006414720576845415892738538189251614641836824569986036559006656228606731544435404716679251255674788647639786540815071548303729195091768762319863452777749434514930798391323799499259362905197832101660343953992098673332453309177609378209555327665787817746847832942803759294652655907986126823460794144726683482822158614461540518868756281673018444169903049501693989432221740825856347055727768495134002261277121114417443428536335270607283010195926064310007011855777663645504817894112741064833478043228763230513123059302017367924987154022715608309902502852911872073288173505315332230535629066893667063095713125629688077397637898756856102584578021254825431051166717566597182257481194716783862767268266515141922470735533417663428315300465031795696254564518004518449084243405125344246853237852127054083607730269224827830254850315573400018692132558568325829350888742717124248034879865541085877029955489484979857463213473682247243861490745800682623988762759298150679855029202926010957770200049354237458023193993762281212901620585601118587504749850591374276929879090194079892228182388237611114418684196651709525373544775216643088341948889435982379380470332980673910343145157457033070340446365561527315297745888442577822636900815101832853009732816476882337762351052162561746872616031341393693945804649530166572209938195238552517755230249484503205897242454708149791459581653117080555809594835095811743198337613055536498463335908503496812912622664733082895699195181799229450854724171311423841811454882033384055092609181335030496044713992110962054521141822951388104651178194782974338876819286445162142210050572141664716857477265933437679666689130103821237803113120062691176837142291759076958273017537413864737778038047423331452107015270766314424170624387094961215532237538132700814811939471161788348472324593778969443969592841874125913884673306027775028795162575754677413185063676619684430007168662150918444224213889898943934214907435027598341962088470541413732237867633156070808020949529241750296571343639796265337787232301384377168586655485446744093749291320723801546257578972332101774546383102218599986689119971988987483767707171658436996622104107497590550122860033634259529479522457948756690968824651786108475316675271562301560035508721193009838222092440779988924285645833699479801804045571151054106054948980792119012012563965671392093007206803122574418738046469005279326727784062024046854221374143601148574635310015614758023188696702255784811503537812742925379138164210677097726264214566996810118560471580671800965751009907893131418319102055622958920968755376039734505903092791110944815137488355488336881383964146804780196799998694822838006691190130508451878966984114569742025450322921903116101474021855397784623710747281550707382176302098878777754477221073700054510979011409867783798914209143707597692328909057475912639303748370199322745260706700913142068305173540904649830868496812128479712244879909195685312434144882599449873373068549399330799320084660578279772395483044445702616419047626571162670240679041599087774817523365638738114200505936543138821410508122569288373029984485384225617402152795467779428930898290884587797596016872051094375007006388852091282592765085445977885713737392073678129617697592399224753821546028200911919948801527860288127111876254543416446710699003891597565114067857432109747439152223943257270604435707673538426090197024607045468308319445076027230359212229165975437805403259373242376616466595019383322078175485062909409965736548307717106147971303676104230785897301798633493399210559345560905223393730806190996748314646956064702795529413781540348590386811328457224770667689956426244514848076860077742318185359202564930511677815354607847545713044872702298710447992090242666066998331671937118798095656585588778836114084566876247538042725706007865346216297753986169470394861375374705642339491201051592666699089334952383129758294906180016374908603834274599172996115955153773283738235995257099008915393337045807480499708614709916214511098626319507221452138448586229966245213611334294309520890200930112285260749876801597787471224540712573798533870481456930937269664964614679302421506635292359780360818634129766289290095136803821811926707050023218440413261511046014887732848486104853771794067338477674206651573254519426543371821868084755624393977807726965560312399453575141716519753318720056902071410457622709203902042593428462116097819671500153901195316842367496786718685589204658897512986891469737331495027630392853859452752899840451548318906386817690831541838342305082347615955575440629847084495083490238591054330914910022146023339214071683091176779359965283126871141363608849459958649882200421073735506905036153683200168154213568447411427298584040308209738191732880583679717057516535722815867567756226162732125476417753484297573679022903018141068329446219930330284201430030713381280392594065037845522100708695485054527609878776634932321676013458378216473520532424497086633711392242669550005270265859315816221832299270676350842226047670928897610577082310663752364345152194025463089714800545375126673392638477176752819697494922623284686687188115073522503411609148465565578772996614827005311782846225493373180940731738976450254582495224701564707468960074849269127945276286840008315311381272468534766722038066874066715301449246472053892653026138351061215586099263852378724413261168314333397492171219942762246582647436739205950906146588866155816713542388571115324930843989451664227643552818005797277323808134359577330740885871246788861620691464603666770838846904487539322031569483281475515400956968930077277557062440573860026441114193469203565353511247149666499162415351335506035019832914147269659660609475033853711732258660097371774220598017678001042002549871611943592577649463243966618460559828123556447242929776900756271148660182748761749965134034613039393971008440570665685172233011101531724113391203807484452381490070731550122454618205935746271595226147235487582023409690556346520275083047839784898229596885997979452310761371700000453583418094668281257399613120358741627944810852415122546525949413995190835828717670073783111941309637034094992383951318445823520010403475469444904400784647825984270672848828590568946152110771713824116487034403644281454385869926142810317876121804061451965864449529779743088425300285521714563936039063026409852627551021801134029427354550347975436168640058041710452171478446695528433526246407413766503462697655843719522537062223922752465736845498677414931324360824426429369062115417570900733469654855588962953680774484955306858316894016276114818079472209338595605580363480987948613939094169603454793018257901718737144834877259438847129182410808594125338564420898822160179137609552563296211574617628262724205314698673391642857392642024488089774992008358779618293318198823312120152688807081142119961843316120263963473845651682832733018020988091100241137627328086373788171932240763649961227321044030481664038998201935270373650163148383405202772023831140117849394491818869403444266259466556100223957669325512338906002473355841321921300944589039640619305997185371285194682408198197327103375397970932526425592334320352735566587955498804500589096320878811986978497030909941507884077533034897060432758598467813494784101950627122440603707380702769223383752946547471286447479641786681565111647061562815785663341826037561573022174486282337086954408158595464973498794652060076266904964156847809693756884094471870175115839073075097796550955523905412837776575425930761166477719280696746942897808279454749500765354847751921535359562387974602377227012937937106095201877359455253930519205116978047906068357754348442113624140336639502836802608431003116894075629448381191125649279933371536615298893326123263439067681396926494874630636578059495354465904452101139502592820757918763980374510173331983137209143313632617389769606858581183465131865534560955789336477597981239941729164505668043596472225577724660368898837706970242431042214641315220160410181158779057954055259715939827615303350169717251482115268198545093495743125096809448303786238040667750795769471951589145730840109848888280338938463151208061760314136773615374884337533788477961011523265535028414580982922432715333478877777317276993593876180708210345943948209978411837037991956730228386606354858803527247809763604105799568262210108838729993164834111589173405507962647625170110694533060695223079657985181171784066650137083014813021162297998624378352732013662293796046307427538432949588394626213192777375960935238240252638439429606690522780357983710373694732521483423793531743163031928901186354833233281546077369640885191973364411757981873536698122608938235447819898873019985609893594336322461177228499616243559096828540823971843244681037796329424314579573643463567236471489317247420921953359823914177141940873887495060737081059390486003823040325558273323664422785222461332937078508525673025029532482759858129058649125295406387434798486095157568196279676084642702501907130068089023911910794547199871844574777383080125321862102630844726065603816412006542129973532993239195950962658202617246795399604116773578154944882061221193146371540041674995987489782121817748012120369609816310841720442907345998233373261620540602834199032043589224094702503140802235604593165601462311126745857343936586055562021769725512569780967172972362763460318762295552079559449936319840903456964581387633438167956926110287081260249630862023220561974059839986106244863426470288884160436441606533155646312603771923748951542503310498611587924696058245601933796416087785948512682124323957087796252551368860874732395158383307915447636708397355848619303363273405149264033963811256792130095651091605283182110619604035078405184053517831266067677073317559580496503328239475278004212315852682661857030227709846037870130404873344938382813484692910003319492857920710483624161408173161239706738982445256176245833612659937949405306948192496541135874920145816244905003519096729162357812845810273670380462192902691899763135271609639887184266366518866562932620398882496629567037660308342294901603022275263774069512432664442170085473689272350986470189198803980832265010131565925355011006681783303550416231675715237020083904043879707972649841396115096580894976215393780348211362481499926504389637408284404401730219840706305795427428430464640558630255465370163082138544823303728145776358512033718770610675849412351481709305394924703359981422031545741897203134726820031436086520137031350193004657552728249248906743758051156789136971746673368496842045286385823862371310924397461969257984550785334842259978590202949678841113720554250474578755736008364037246962829464251179465365504273462551229861826888568958394006658218934005605242367421944384478316705250255167984668726156533362496331779231225434728848056190862480730383020783841968155885358220631297265090878860642855914551814291472995125045180353775890791757239608269009013892626886421728944712318567257987742500224581141539261685369436088557557345355338144642677623931280025559882135855808018353748734813283903358665770820141940339938094436804292249116661595221874218386400689837396921809437512665093644673313679566686194078476182574675308459189707130851355261141822607409692415636890770626209112284387108347139151277225930753996716241973800109957157015496435466594936471953481832701259610025909473965412322979843347963037048913877640121840928830144332955950185971538712429721927537275354684536523926543766118120639624197940421379147020812354457889549734427589442095663807527181732356259209003453944395050434770161938747654805148829676469509310180372214790561286291719294174417353255768267638371192007710623618460859193604173456176699674598732992914693818283174969664725647138782718169983107665720814649089044513226419306809553662566203444472776520437962766533120766444910452491865551488137911421395180653803484631753169306101920036317924137909512583209870797480564700051412551723382652193139867091464593963182479984180678092630115235269498927368088096587878957536877038124126683001239827704490703711165705120910273084498404022287417324976071976869159110143024686962306888916703468907039270221268927743512430437135749588647007677573150032103918051913134685375722558365570373051039373339284621385301560819516099627476767370349369166887039231651249010373771563987954951068910449519086395280499147904399656492871159030491861557279949659667351686131768909363110267466739508187390014769580561125199213012104290236892125056060911985525508864981694788105980452800753261981348857197834834511670273467005623536774808367754954277841426550653554598880967305739143537350881705036706206694009571849273657321874928171584888829856511150550526852209334254869844905188452196626865044522058753354530525912443910174437308215281601986384670646438459815234161732145274299423904481805120241801748832830708415915719183226756686817126041479522024642626185624735310547733542548749342074904062040078747740511206474295113953061101020479219911196656823725797232173108776258182278474133563862821203733722984220618084106904999492117539436675730516399370384369054542776619532009842665234332006706616095082035546070639625010770295394582689808118980122538921485480515195522654324772302275099066404468073646698123065577888348254753606461961915879899766285440378661753213669752924234345754321235009600212230906972459604332881401580707090879269069685036975616487031830908832163614001735714414423347201562806531935141596114109799025726569414125767341832114460638368527837575104259017475887000003799785963226524881601018864179817545892006725777612881217267579563610147926421698070434544417047964840967188477306138298278836351184806915125285031930999533434261508429764001081867326192584393339360169024180964682605331296360968278291526199541327858403631814833244909519620368586990293830741855443317294672305732516161417597363561598599304506937289694950531055967839355383856047834691299400999368186609241147941852412922262139003612844440403188804444401702193092751856559675817242114279849795036858828404181807228375903668108776824565890064577728365273014108256704455040264429809354750504812793507110595014667853777064186611987383536521831668268724907396458333528787445755591244851852849685503253538614494019798021079813556943843284072067401481058256747024509219044538585400633364051135661268415423210731173259635193987857108809330126104732936645392513538418557513783732885024803447287857632753677566892528743227343485721295992921278900997296417036524305783968209579589532792169258240115564751765697955950166031769715288459609868609000109037556458139255951033845968018779048640241113696753508412540113164189910341969897357280916489375895241576438029198941136996026057071430532534333130100416001471466546688841105751737108271992115378806638638071160087526800229589114975196108189861202556486305191422630673647106262431323179815702440926784169598072817861998142325978789878771690873903500932702424045824621167500843512496850695724420781465170166020814746522173701416119099279229277955976222066082169555769134098887807137432602692070771966090208464524003776782843617488942783636300820592254338054764232336267845945671971907097657881758792168139356969448262024252440867823256644111722223950833874936556321728974695268304927867775131567158004147094417548487438093712074116825198835609614866166119744341901119089370794775902485620998977823418443766529032158162252856905862213344926323159593536880469113009868185874487074308772021167271462772658689806518056860235303168273452013717633051620411916429758512736466871042297265095661901655053057208794872180288316543284033237651632319884054824722514323585748221765191873547112203156425463498547409970358433725961999468529123793949391711177253710631003886379355987491077992790063544956293030368358936499287224513830380484864918938370781515508996332675440118873101858813531372099188606227222729649135925126696164390105960013875672159519407730504184350293085020405322278402795959848084159697461985234608229423877094234503543652905233147252209270399843508642400712215650350861589901313740510254039522578685284306036628273630589226261437784170099381498470769499483944547655298941991008125543064864512137167980881670205236590829732166416877794096529390239885125563986587417918064627660237782560589414247791701905124495088237475906747128567701065301557017001743972782672199068137446254851726013764187986881906889678002340886344422436842053120778701076990915792346501435717760611497905676723867943640430700010395890205708272174527540774853286378634534238619957653944448395443526684811936664958795787647984484063039515171637967804855761649128219921464129989556567209790507705429529763446854297178561207188694636896850388255573600972283627522295122278692005068017259818229667579515741013170239041334718935287092049741360510520375678153791780522281996075614225033607839718538087813970120272414809003203931030580738593694047545170826381334499778631279943932270402755131433447585533128367381780733413014615235695767094128959116034611991199020475889169303361391102672622458388845324054423756756775293540131987104440773375663150961999802190218287382734083607316431056874549996031654045337620089570985369127590350202935434347999102741204503370036313449530736477699072103469955187793937022785835178359823296023349140745247960462243265848360159335572871351257835357292947911624051538071610882762662592255284469872955744511231444554541132058786130993588995170140916223917261060671630160206976996424524928263318958454622971517754705692430234281243986283858571582030857584474740154892620075188280045188720842405777197498930537624073872500660802061432791981109117418408776396578130094823434239391774225292138029689121349431462824530914144319126092156757463599296931603215779978965873528985142247054957868489923533676568530380973574844010526972854128569650604594442561544260307057963701706294639732191198101055223281694423126535524211276387191178245987680072039985719223953804057843436281705161459402130793639014623730284338287310499215350325563319976919523367499642171192734754924567177910037502784919487280721139351781510625779067351253787822645357505877793013032814437501218939136231510505125281889056018045143513181877734111688860853330322337627367148855835138670675903510946582885178084393770348220006245148377107813676892072581476509744177079142979673542423672198677041550833862865209021559630925224266025590428326221363368104854535577345783474314812329002365540399325814734933812171018525775917927283495308811593390276202073794958986748095870541958484961658147846221520889384023168700369534422641178624154768613721806660228998046627858822154592669717756376962866487209358797052088392301289533775853257496634791254708619624063397535160299858806242896530060267398530732231490132318918817586771565535247673085721681716172386653691867964458842751673540326090221426866438226174873478706903683702471600702246869699192931063586460257687395230325118304419400687028878342572403245383331433343085789789904433749342437907762623222797011894762635143226503816469119347405498398547086872147464559718190970435130893818712750626032249831348737018222275889531049348429595526055764203007230475965485529669981468903661984677721129985979696510513079016400830417197363069263708954455266419993896443604713302694542123982261569373230806284829040126959539183106259589701587591488934382344522066111733277481871591901224821136328973231287885925753159240814027361317325463139040336844243621292331652511971980390383448073636257078288266549289672064810150685716133096383186564584465112912388373082487720718232147802741057396832199094026132408342011962696590584436530977635194581780850807655315186295020732051766894118562503772190623398341656225447000992004341609137807967637862731781780046214049549935150647022439821658709619266953304747380224574942499732715020193559664670616094829364682244118243857283150980310055072345466792520888629119729345634061172799153047539939866292011700691261115784210814881719156520113773026853558135938244990433271060019943536063901857347637943339950982529413131169921225821137102929622394072964163040678735361166649767825593140108559948438330783669436783415233085655859841682146566455324334765729836397240671734591287579136101379254758950145246507338647329163475946971201250153792580981896215397034343062059347576153996846160360200652217087588446469800474860789268625670618397738375130898083817733528462177249576278878777084336560175933764136490301479564259179953757614743704057016307464749547572162674924332097571375618325432552749076889047337175392728135307892293693097193040486209096933443000962501252223284422025588089220458038120929224124707008659983347402796270080954740097116726769836353694872335890222069620004248894256648206020574755714585804136110428247644309114756027807261883774285981891844858484259282423740242541239524694480368972327667978412298251568888760345455191637915461648027881720079749049693986388206036865905513316322389248861560339632214228759931245828173723604475515685690599994709338767638590728938496648746698806950311005932302714125883648763894593570339716333735581691005259122656320857805463196574100685505780630052633787909312426701426714057229633232770840002701005208106952940572429726061791533287280590917760186268890633542530569310038999171600659990465182435984199654140548140088595149880914264131658433206658218915340393623650073406338263115934757688440401455123136637099483109743843847897932178426929512816683137705822818740187719739150411605826471289474854314502604757377973934860727404151594800019512088211654814477012103505440278580143313140231835206117765973942316822780087042454727974372712891283595599292561438641124950756465066791435075044166067875041030547165691105294259575084294292979164809754083381416219030912900066715108620506064675682556309610991744437765677197860317477593943764630172941929114378786086498792349887247584224937699133676312551179133108001654702640212897703846379881814488802692280354886251194558156560898311156459389417409776159656659264735130475553445146335536474912127934262313562382199179602449922978161331973910115789045526518390739381357495174887637806339918746474417480467014297087164941561515485501863536710915672065899334787607050638269104832077158025537833829958103362192588885125872653307871059786361740720897246534888480435358123214839077393055607737163234952762207556888990197570496753100491760540160784604152713545797267083726157286506994074667069524970941187151361994883243670946389553669464565788426933702726707373921676341786245482057787844065620773566332376695929191613890897816664228829531926959087285735163280385359151982936478589630286097816764131437435539925108464217087835364549500557891458977787267037944516549323370883335665347166653450316640727668607682906793254228549236345720734380907394549770448643323261795809107751358500006426834536199018774470843828467140131306781482095932189812451625655936273239076328151720441064697061087221223673066095919999285034936620103194991467997327512349279599619787919693930165048226907452613867317264758237364563957013297799285804185300296413143252181028307519679640264920614867815119420862631187903186150970551436812808283663022842625887373751031261124426487756082682873750788265876750071554870964218619631275389212015107228824609626225470817790945575483177432405268844265147239718779082316225270773048753705143377788001650625814037089578034484331252628124652555028729306421036502415116400085883774005778957223498367280064696827195298768465813380756955074042077082232144343637216316664083571696097256950892922703794048097784960900123045979894366335405822509058804762977873505399604318213096102961518847850453082973151635229842656535693905755440883835512171327295164440538667717423134209637492746388300571743726747283097846290905023179562316413665373111971852215047279085933660755667149143519588421437962236228082848909487083581232034180112311893557079667065847753621002416567287054760598701104921417777249992541339523526310289568156917434777585565512116028810515529893760869362610644292386782415758019573999773829993062827678460645024916200992955473443902860421080119576329192844841098452898881123128749215935928793660836399455845554457200091413485256313130533427780000947391755583235542960561859611003646344048729916553723402323608864271600612157715590166144376577537921054010908786761960469119825585235048263323171255930057423408972676779887410429127828980975444041421401111662600547481164506146976040370900019019070182654504898492319183057341338054945690947074404343255148708102897846215776643480019079188340791919297894993056117736666208469892895655985409011164840851743327790240486643742062083402351490166478210215879331632727459053479965269624542803153612730497566578670363826543521850115820469605899009878370991534450516176596649827354297169281908866764555752682950123709963577861887562350978291748166786812365215493715584184005598240274014028012904420357332950789315277734676630778506251679869096497880582091537002220370583985198264031198390916073889127884465562712876285385939344519458902982381425436592416506528802058444700732800369628505327020357650801179528497345818570523236269699797180367850256925595893493901788175439983400097212941825919451500146420570098079667511979733762605044775241908770528470636630464309439998163529575025582375739574551139995807105886364700467417960722865960189433132150792216389987386279745939490627285148198761731919341105711180617504254623660345512106340602211275009546737980435421188831773599891072702880804269990357982457223264977047964286731309929404361725739389829443561402755592711524304274337511096651255642142760450904547980768717415581398945439887758875215104977277524029714053784035364494335866291429558232595353173049301408045116051422523268594801650760800324864749916715096833534461606673748890096591418341689434082343360979941574792014102957575294000182201982078505497484225213757023396491400143057914429065821306775437703169471185859065528550510389979948834540407359354097258086092147620136182185089986766199221734397532402537150788735042352831486938105278772124548372353964670341180863293109779988396718893731976515568249720964906839401148578005850167188454148417662350564664681874849393080365357445774560415834452408508249893192216183864453169428131770952372222065799912998388074639535142748912987870365020234760666669018927657290596052259617344768001014075306736087516501679790731575563470480409027831982392208955107045541006917634197807999607874405753446766861582241177412180459351437170775402773336728096334135489170721604761989340956034226137950786720192401516896032917319071113248874461829101785409370706043823259289876692025160800666137692827933509786926485262510122166503891181334534583955325391089895931547268836983858075041157671515527527278800879767981874754231175034919011475673123084342464948025524964885947528912112912044573063542397373479709249967470522786315485041334207047555744674166942071462318394243049586542192313780101738396182583496680171577179618860345438721388149748908025925505985007025995317128045206223220764312876707930242805369246158052904211615164893312452349632979578683886059759318547159484149271876032025374020403334343225407918978882412371024221815970648229214051447865654159588469089541223686106252660552861945149358014560466960631966855246407758719779326626678088980251393012753706915198251080744782876569478843344400747361039525629569616760970395985412133033752521596905476579629491494002602381653362791024141869043615443911051151661650178078049841159828281076877604427652207295141782310050919033657172165110342861768698219526490249902489195467182978046254594976857070465281492398107259635841598364723536887868749505777767547673097046623995791965097641701652586039697034471270080963661675605017038090267086554697597019303984060647162428563655041432523175932387176869200121442604063394968171359438340838978562784869463898996310837905123487793910807677532028642619796426544908462542884213602310717712840495299283432918506871251236538674366961468751276846186683594181136481189894967746903911346104736794975729749803823451441899808760616797893238163331536984136851145653936510759875339511676806863686997526401947486863705877363179808904398554929706513506442843700509253316763988642424373637494409170236373840625594109942908601642393052042031649013765499148969806420512134216778359956288540591563849680747117059954006273132072327358838102307298972128602835222139262466371814710993853032697228656146630689665573422061504393346148915839726280911564936697849001870291579120445629858370378485028171914906277081538816719452241802554941443685496315485570649817603343208155343652323582990214755657669484367625765609126958476322567801631636461643011048217554530903448313724128524790010508784960874484085118853911440565505050639324592254538892085430820178715359124250812724568462399116859159010443049060650713875754153519632993027377401655812136215083414480135065115539740969475870809053579331123575029546857509009072132764344395025183578045498965164661234905383221580412562948002094633812632626986049803049006452866044963329686348281350189380201686193657716260042188104801231645999260926916813325940448358862233825976666570194499463503852386987894677051592489208412439805877262827760837885383944169869672102885086127580401889035040805927961883142288256859523922509470485744495934218998747734567876034579263998566744206798934787159006035860680835672281219288218733625218875373761367586753010903250378675717226545517710780601209318574318467107224435168640786614338317955327704783693306877058873119610395826520927760280343642555190301995766451075598366638226529337144462276546544402780659522279023845358316645230248704194856145726712922316361074799566082388591479046440822369701735781626802491515939488672872449181037178791562051806734513424356801018784972791068565953000580025943972332914709586752249488932277821023480825456751238372826588745056255405090700671873933477349036940647449592348103649697067059712634494561324667084908381860147524497024987551861567292007018621544295180112050315689226677366018602856004298947432245884527254746213904647552369689288556845638713715842414891917743273488433935415684586378149109773400816052173527209370232241969225863481431052599245686881887436708193214309565771287659747414596259895834652494361984844207110940858276363497976695023856708042314627586161013367687511294896059780065906045084238962377848746042011410523834501238020553173634726620100759913444472661774599534870768695582546147226755225368825700384403296470146642618461218459103335305834913869419484876457526539401430327590171618120588181506764866783695382458721974455318002281729594416908962978032412746992009940114486490893404379530622384838406067939765314881768866088220615735485483592492002102797631388109532079416417825065199292238811365538194843190398490691760676766570249051346245169587630144798195562892420450870015023471707595855278160355264239554338828066533001741333355820369363891723412124058233438942175541901470821619303639597295778150585238993472801925670419139426840418438875052633338037871612924407415376572864612985365738043696880867594605663988195867637400387547463043718838701739302941062713198799933208293237631139754007696812278027358008402502469189813935505610153109362050756876460423374119498760154031961355708331818206517154025307242759814047790117896472623208099080319228992828164490681216109748182122737585907228891081849029071529034019887098157885649833198523365377082971318684097628168116655494119209922104371752304843814322298928928277859412577673218053792208916818245136537408700623489816446780094215878870035546521813700234187616531692686875462877085309558336030191542803001085473319651313607301160114231424047316990029807937848189810085793378690422380784076037686566069179172386979379054311702098212127048358702681443867241497477053832190701399423582691257624001733147140783374523051902152375086193054786357517914259779784516721836708023777214533388414451046069472304149347890478405429315221876836440788299029826212898783167207067142743748344419872973539120485395585316609961438905052471391832796244001703120068591927489654522990665106401994895210274262152811206727543079968531694889885293379685536764163672483384651573444179844892245166289866770275142551628929902135861671602766962204165217956755354191516302713535585600291636985495102373323143519508320192560329007259146641974917928740941850966619376547021144268968441930192791714457661014601295362538592837184642155542319046439588292597939700668692940866624485734698008933430271159927646538073568123564418731485593617877255353640811125576971246538888744096379952256239793190201506897261203115051747762867237782445236620569819171291203380895737892444071161528072300663715397072312255792573198939103267286035745630300023470159321530010957398820013259212068158101477628877357687636663782564652715495953155181795797249287359911566598697245052807453607643561787899495570715388530593374661104355618770870303519735864151352893477140602633202164155981719003545081383252201616035203056918149279107137184187266527998395850960581513472216169814107518136552976689043448469211186354966585500466806027436357474681494319519153206464818152695177759356350090228561123937073752872797604688770459055650243452124280360200019169883349380916116971915299706919924466166939795042728600035046411807645797062571791837624871862152119866001196623099744990982622648404925514975061484306808286393030565795000612982293667859119184609167441528863933212463599357079468583199011589681852307401185829797235522531669478060048208752502235297277534119561878867464750604723042951841986226893290248674351370413815851070580193408524295905445452110004735703969938450567680103218493564468773408117421108635844419441861730732138465130601259962350871923126804424908655334367861823907970154356165077866434435940371504858790298824305420483145638878389242507151672777988692922220213776032706598956030951474815049000788358538145926023143685286428326409986849622718119917385613047583984308614714495677625571117336704916247928138488617405468944663740701639881276520279947575834086430924329739978249565477827263104427889498619528522917957005968382155345078152223959197691001931722618292270520630346613129550222631480146776593443445504583008765785238891712996514495457305887193689606425832816059387659243147870562811522267958157174346501640938973729957628693948075640246840015139728927107437327956998361698592567320908588310229030028995823544159533418075975548180644994961350664135378975669099174697093225163322047881586698324155147284274413359192469939074971989156473131638229105403484789266799096688751411486675874380699167391306861595984344510096123659275971547656420980593736136135695932938533519705203248382742545688407819189410001473366330354524741038462714508591866678018608122183866197128538411616941730233459135050999998062076828540395912686775304054655954477818199985153920043643154006254723805477883261691744433574044271493368068336571277350659041920156676812636172081597320198609272772297855498892228683810753154700562601155777706347308290028799290946022689037614734152156853990343111448640662497994900125761044984362894853913756928342527061014974927968504642783775430330013105670057601077962531844026397452058693331759397505974153849163981008456881280414706426351839939897312294234239480973708077239507175096529452610329079466695784075651486210016646016832692884145804042254999314282467757947358340128881101557092596533405904250966043454858174569837057767590540614073777203706498957661506298490943484397672328594909177738256559759453273361687269201706693455080678075208195970746036773011687506762572575431691040214081396198411153615880639762311523618613692320945953049057683021533384766556386959330896922518565202459670524291465984692345910173161693892436874495601337144470629007334115523969269843728341253504467959493215932437552018909590790738272161874242000631741602761511057214148186665642181400921266813135851513407572188613760557782178200813469067534046805115549527141756795967573360948852464497043346920225483142316755832233163407503009240841060875979779668230273723566157169998686537265664810561527401057108307437990742379310978017319375229835243039548608391952997389180985161992612498343816908917265064562259225241227053921888362355037610636244186825050414319668825393006395164957801275988492275399353783402910867465391317896457603280711156663925260729292525236761611435130022817251075441319105482473968399675408491635570330277855105270229741837172114789692594830048548942530735307870097197435041340384494514297690446779631861412025789824162984020899173092210982244423493820750891718881386500530208631354885088339592215056118445330538656217094223353622800537255825300497162400360595501000950769588875465102349905053090765690952247389258726847210788748770372570245386437308087864071539733350265824365179947878761496311300911977433325064022255197604392982999489554756965646298739815013363643439685681334931019439343838207436066220302205409873284190228151986697691532859461829051058171486386890651817119893442218980261409720913132363917240102130121736649799356057906576856319246938718225466942080719876125863242019943215626507903442648014701648991015804349865387140808532989394112831857065009806134202569858594115119110591831819323483061563927647720226975154896725865724314037171968478765998450166576792872186737654600941068862368174076449414839846828175122224490158953694797637752962126107766832203414629523559448743222024310043494703571375768881060957696067139850488125147659516831591764696700432636223486379832843841173598534294887704274858794342178672292163933277091748259341288670543538448737192719097748529531848096195555986482906650834660961789473605226393506373092423098321470718584587351505670613128299342975715647875616566476924223221285704079396367735717259608679828373571414211894602400256082154279320049587113588959429371959732807868611769189347454621609594415678588751665800713328972028243854393889122666974961803671213164999208355232750832109241376414882148587242866284374730797340120370722064970690914534320783057275632475848759575512064109431566797510860380356608924281396132376248052761741228021935878028297213844373185106081815826093750346458847221097533428217758686900277957366212582763095585106200571669007122978439816298268515323707602035210811323244972152369890114495632211809456994582886788746379635686776235545984204315979514419853397912218081757279699159613343075052359534551323935292831739069185479074410205643324010314277077149611764525510558476124149363254541148262799653998101997364548755300162449545514121521232109054862482864930224563699601529366997376077601533104323080906010403330877225583054320728028834961951340374836639827924396463442041475402543036217981895143744611650458007482017135877019252412446530068923438607149687358257167589163503624323237668971150363442685878614876413657798420155504483338529026871686755503092580179002108000932941279279674026054224346977668154546475610970224605342429321158950464632835141702639963060912918146504006379499023140229861293219343470907753890944541044077852744874423471256888972623823975196300633378604821238377422687692127947078643463253424866779310901309034612038165755537983223882044450528971706608022446247779917230188958818641716287856451815933895632926523855528180871465933920697859943863185206375837088922401985412810545912092709622607714698369384009036535661764136620661029372404560129994027426585889222111709802447420645510710261335489198802274406773179138857526503282401994420570308085549728651682394842810221857812709532981912584909823616404216745821862813453948977519040790201923189798393854364540986431326257463712518236368671319133871063398300371613575652278568673137942712263713551983020573784925520434805386473385290002216337505516434486666194680652911946362662191953406812068823740762650667921524080829073587415730866722425961660170790273458385096961474442698180411012342239450944876766434155382936281668581536614005194471896604096041662310156891051221780393936226336053605343893521233565723881564104353413452863312826541149753243482787551465060324499787816217447853480453142768850603335306886217808416548354282689202298111778422485799588527100511919649969570518767843094523849748954556652974260990290644751156786942432609236743598639203678394820718348321449887308986355450572095850718591974918055953998846403768605341023547045240802878081717920775325108689337240249183758409881730020653777646894838869389452385456075631785893131761661452560005112960297824286127120427614543116008543541485720378729521956527452029392594222580376616765355301498020379899110257169929896893119758230867484046224287389250535369236129406941561366667254857265349610149838945570321375735417182362282337392650954719959386951486701271650316793478387670400173478651098059246738038307440155898028153443381588833694809808919681231353645376862322710055354847746455217882524806720491187882477196533424000060770668040223575573983351917593904892050283731585816719576235925696512338378190177901422894545360477654693883252961669175229086515650753243632662639780694565995752260371608233801969169008352382730240867849235472862629412803979938075928264441121995732152762667622863401519640008856180630429799393524441530877632075409111424522277307316786898737561927360425038676500186528852980360086424952745393651152860306905242781584556419173196634199824414532506598767283074954823443040688980223097952566096194315589390792686255769680156135725601249511181483256881659586809208090387237518595055709990688327199945222939737573972145576105658153507182974387433255912034069010763814127155888056986512600274768132914571905590312493260630439643020330523954653293418981089087444011463212619501355386003025673245020411008120694806870989008796173882727109933968909357727172752612689519007430763145996195009124566961279686742268203006626169506362782019819650840249194020103163680701462122013367661615695042603769802539307553784110024301961846578520000098001176859380103006794613021666430997325486729985568075166091474763490661631266158906708676540944603565841924900493999322626870011811632231302988875603034234845355009328337144427324986169377179754094339564288949950107347337047692207746459564542141357755055055104043652666264318432188489513050568224142901831120326278972172384058201132026135170487421035901077423883762405774428656052281750543175089176771234907959806594849697626835303397420833964197792039480584427577585065389531948916011526917204700749065172371123891761242291768047916420966614974428599453469624623812731058409448461265599687555952890117888575305575522877461907682663261933065199144746146520679560064401068629169357952242412063130656154791233789274694023178928674175278685546695838976810040019651308972875612664409673144647816925494856882266189415079840118394924328860949264964500011234244789721241384123243080063410641673949828100174171489557414392639304058606425044556001580490569715559471548760247166256628618778928847166492033841439056037589043649033955646841420461687354323142280519565916765749900125055708793388852362488460942944483384540957499085921922682581257605170323908566581838624019092805864249769035230705778757743346755561225346555806473596382348419480464603040408843518731881000066567077338516206566205255664727483444695150179415340875432890782323191123439045783346854518089401770152342046605593402293865315505401145984565295120553867049259942600092452875705001955916671368332655946925181937977993002176612559973097657387913799997911467832637799094856774024950776272004451073182595440644734890914828045149569343794182016132219165853311168617787670214075879602611543098852736645829971046589699060700978865757282698415173354631460340051802755354229291651588549256780763612944703240632449478282484424066508642931712507869695366559335982782702407634730601991786383336455686589966848763438864703850746653861320115394565324502257705979765991734938195962421272183459929418766192598107643601808713534035008839294951650149865197171721106679763882263229431002108124715897174012295639703167242622393174247763229382516513694927330660426873883872596452775437558493883550478518844138534549627539847450968950633733019164052206407178758607158540565144105276494368789266655205842991908157434018932391389999838027458276791069258060977027729067253975883202195552612780655484611632694273755557693278839313709551236841758023634083216606458424429293384034495840593176027478831124985196058174588819025249049855042177970118133810295846838454502548636467292112072571631688587326300922290391853414285465536880066065071784812102578730307966846940714297420955689821357580052696817261300923712526973026326138000156784221088929852322561457368863772925887598640785695387603110565454074262134709870995353975311583971115084203400694453144907295838763909870397719405420739811411184047845241396382001613190988547367270429629795360218612521964793710668675050667363797305799266160593006404550350072840162528435003917236571128451883612263957231406574035594458342626183677933530519443241299078565255583513725866254864869992790029605200279375205755634809507025555825817749157486359950367433159877568115916236313074737674055172390836410383274221659313542459179248654706837890198533422589770675618005208739479956786194089899384910298809795580788674508836109634440617784480505230542216645155757271970204019801958073882731652587157300759220281218996969105596122215487219355458555432772545135742538684103847119137296736339268562499269380404671110509970280753543406501132702034336818360862231405190511252182676008568786882203511194026869258839395242209360618719492212682259383789763633610420721087099639123685046771247470209043560476456014161673064238018803006674151417639129227440779468211148966105960894467867172689279903091416278182591906816180263616798976928179688539283883463277915351474746502249205941094079811412994992863897608839053163673447556597601711151090791596301456876332998445358174639019144669455719353024674458657230660062005818799140565079149051145503154122971313673623912785011974363396481031643209254302604737608775407032141809187658260559272358721138953739443251781557069965171264040948737884614491402988203002853876093103961223211944284126642962925150137436123560700309436809411488986196853919218858706790094060275267528852456348292093382556982088324612947824630809355406099825645336125577229733079319491536843975896490952512161343504859404311673239522231594297495219481014398796480414965891016898729665268326972404172888344917964451965276799102743693581549110070523308378657762793827993055922194784978208565006035140117595380413988254332323280504147752809464266949268251955998036191180961463281581989205772202808215589470043385580257381102500572888718227829411353112023675858303505577347891688013450733805321327608570325359433049214286068717109676337902282895055993100427751981718782636584628355329028049610110606263473943974408690970150465061791099035695744148834419689650962258943616946338080319593350915505327603319215256867956705484723038944085647718209068779790815410555434659893830833943152752250249269789831906216848987020284351756395805890034185670509339206322731872358962040109098598613566494406035259067886271855082962700491131540684959229068689321191565225814606885065925835309506366088921449099446326452015734302351046157643208008486904072619927946510734046911616689280979227955829310395709191274011383994301070169936325183470265885711509401729175571001827477568931832153110116475167602968486274900528994673388716827996132462343083151645511820685455463458914470400481563708495666358357002142208845415794263148507303874239531004718945809673511834337050249668392628988704960354889832913038370688208467925249431716803846740369597651027596475186318959694861274137062772401749473078606598191651117801195086557397614010026898732998515871634216652662075442465820658984275401034120957849034174787424730289652681510048646691538365174520929342271169112728934353306278615204352768295478419648896713599503542246458330416174504593713301079557831154373829189199329088959628904921277580984959914566371082447666124772492982417657624402011766336621395495000680888749976946324822649356898085333646321440997495163035080489104523733276408484365893560733939479962968908900811419332560074420963358509850045784998408660451490770339942861850651720071237636472530446139404647490129614811755804117174934885416385784928531153102263445819678528579809004098702923587915645814801171536906349377524328408190321881871187541377051319737023666728806974566967089729170822882169127767672253538321370266546081701134560705887253468028547540448023342640794310930756693036188891249542011677590042095546408012881872395640810657020021824780964819684581430754971652988345884139767571322020575069441745511301204858242477743382285417338447556687928771213765644851673199999467327492126525126946664609527223439415920647535058398576316114286923299207025298260074198639134539994083076641257717100540328312069705672525101769411030734025088352224213652758021922461044398500742701741066529806344794936606577618977112197373360671237447735482008968384886459833621640386347567720635573863254341733147387509807006604303655278813053374335947223045606919687768247074115361901913330470405098141622384959814331208224787546463489577618241883545079978244848709117615407173837234076805468327405318676820075385136260193860733457995487487858379325642033321693491720314299734429142998077698552935569475815913616518389227529250263800094850516601444025185703048330148935366928159636982306508331783605506404643135805028369628871611616090003593149269141128377814408667826079589564197935166557606022962982446182572317224478059357201685036880722647925525616638017060734964499629710534334412404769083161587401698568414937294950344176705800834541970080759247691827827602339820159431079885692343545976581189844963756317461494155619454327441132393710501100706699057550691582292273716504272572986843350846080731130196085509316892246289559056161352430857615398102182755964706767996213939975107467776317368253385768264868517462527073549374256872919165947618545819099929016930194833286667466900587251667617047364706960633375092710102072319603300486007585819208828391787976782007234101246597822129498708969260362243348248562811336709692945066746461358812704042087083478680073046223502758015098539936795231893986547439965695915126538225970770587737865455400689933045272057997495990716924992823134977369321743919105624218090232226672991283601765147672916052729461851442273579942601123927394169337189476337820039949190786953659516584381815394803905513389067891867363408276231856728004966353052993686133120388110182180674068116858241366566632930484817118520629954980874730745983641147025589876589038532468974944990616959593056997539956972051676848888742187154207925119476100606814304689795971501393081699800706447007375880299824804898985585349074414295366186504325780569199755523691863113967356839083336575400151356290864488370938866026306513675953378389568650645182283756426722791101897924039979333912550270874445316372655425476623088628271510895774998053893760443663363151613191010837981518890912100549062323899802372760756727587985270227425532658237390685149065137178432270875235490986550790641796327517130424322697277488388799778919992027957477211816980748002351329881578496869075264702204872039882518414320660125711209919008233431360425615845866516415666957707031529099472837954932774670344700179135865919712182263156468622528563094258330018255223491267904023865009921897655783687910590243216721211454221292884081163750716722183106333903943669671420697500145725542004980201991231063825681768624458327287003947875942962978332931487305973401513959073128922843111212011583474652727020527726057369502007885804072215831028364088638144103364098079243569817794932372148514624995905183400040020346792540674473341613458034584863606473414415992138991950637356207886974647760294602705393479282610484041564262023545145719575788992315488550163651078954645842950479673194464187887347802124845403571706720652625327294033911056463348265084624198292895131817305856195368891136483459171921011489699899172475453135846289418688375835555953692062453821304855773867581586602438806806481261413390421295498656598574510222977590936015474510355673114769902704863683349220097237552656416221969579574869117250572531785068168515396626867676222556847305036011381224127026560690516851755137068347098813572952699253982295643744669686035063297196889844816996175672938434808371354985799573386291547281905288967082297060671185836927710931837074400721813141488979601444707850878151767544082439095733158505156272104037076829595969928037344796544794148747825737632923643858913296568357315006956830337082734072616201263715204570023980244725373016620552622668899386735783794087503862800594090673436252297288263036914869187836122873362375325901009689364047009984079286059250206459459610246489374378272279802150344098061737652344992691280151540937467629929837902470928496193320604993808837830859004349626819891521480556833470930265467341630460058177965642024232575011950362112118240976575787673781533058704383964068702786179486341512406052712069265436234213589498587394912459691998599887317572270103845856389880209514376024170354684764419775372052554398862436551426483907745847671044871649536511215922834434141600212415927644380041791339531216850741246168374547167402534975282109943927683580232699565217457221354133908737508378643944041020028798687227154962606253128019172863208078641250018974730668879680754224774746370098283969945367305774221036478429431863298158674979955888984428817555432645681315765973464710728732610554271188903362438060849569064518838475423287796969894165715309396493512173789528104643163083542327407722353239988351904392360139330726847510918500311098664448717205453685151372810583176898051717946361602412859267279650631661499115264481253815411263823698635283192483033930935096468710579189909958770073303358668782866804075989654736618313325903315299503301886121725767584594257448438007029598432975807763254443750447920553156937824381237532908740811514895109516908929134649086596756374830492384395737007731395339504799938688948733275466720900540302811969118230517563762443148389639082944169555087995564801264334701400148966370249523951198391465813879954825360408971682190133958857654233264825832164686833497257603485663530871851938098426833129938916711454267266523225820007786269161812019388226761459089559430827566852323984465949342101289646870273304962130352525995680119625720464370647842371314489980700224365038300428626141937707564942161722816754645223264756681585504174731226209445182234731313903709742532212398654956812213182336877861827167594403145902017638727296693699695764862376415957036927585235458922648865707541334373635079748757586714388437962179776310735222890551773860085534444982859507660781041524871501811896148909020565201064595698002677011159201600061716859081877872822414118775247558415801008828116478185216353873969496080976943270022811226013944861918133732514130304301656558456838101777175463229026056356426079832026624365666088371352284363050473788543321676132447957305148119429252853532434497643040323575425423107775550305590714092914645255959299567095558829149161806868903774839531740745830209214307091623710675482459977915419982594289086677390317336494644799455769636349451859114184121120182682515101578594790079713427802343661288845645107743295703949765688540868181998203958941202915917177638654570053761156157760239460683579792128208619256699982605351518237989556796505829394470623580277705483389024140427598210757443087803841189306787922088885490540584030682356019514730305835914887780078224579624543648946550749174786786539722705217016529204208869199885297637081923138587916214393910838230038842302082708519488020136749378321012293715958898965293420147009971237700314083226746719495727213492471822717254368103027979189090378749005278493812066059107493373362953178806766490057133155592690055029258098398074342453332492301135574860590188605787791038405384126518764932620551457364528713177291915827935878379795750244711092860260413291000340490114905943109544177246532075095768381153036680275008128525412965140025413537992678925028755900368569140740874232893748830843102067567112792544220175563612335300215160793399795461620092522493498655011853050780261889278053678845743020991067317431656177804484676179787387152387335220526663567997292395872692070119984724755554259403228079410163276404032741811259298777919336526449417007029494252959782346471253391174386845529377942388708865157626788075465765491807286615735022895538162121972320323693495001803346167752551047080767891112589867455335978032452565254375795613194439532482050563461350509447701213120749382697753667285345086140588085112557590717603731374335744290105200665526510405125373325047648024123591466713834303631208084448224316648422512818805197460965821224808805813111539701780604443850865267760494492059758856515614931271137640830433209584149748116605359348709492407302749973462868387441757272819699581069031826352066734628616527098543525326090387229762031753545897410661037216601011904885073170432136446712472657680604325276638514337786450588025573073686776820514141549004657333343142854219912649795181793504466813284348172703054855334511031951587429645078721019667654935728951959158433478530737098682300571089334021564599115611008578110646578608738942926672090642824888652517624935732565333822373590231356765265915410507767984038334760966861378799576344126845644860735766758306891656087103582253232810233521948844324770248441242602744935857399574212188778252171285728269493931077306531145305655213785329390631068393618303223479905086158886184253403518879388462366416761124519451067953154876874096862578388918206270095415507316188482677791655622326155293312092793335618711601967274908545550834996113459530536553305733528095654547881805388074153814745789123453286549743497366804828911290652165688031925227445486254497618934843548904203010146515939155756298306376368307948750911176386983486823701020244917713243322847153959666768779307703127130449227522454574261062693124901828940961065505849794491311490499419238299678603966534982887735754935617494124216036970864028326441454718578970816938262108254427443268165922348477266872510052764683015627142539390248535604248428098353535606830744403799671120614680077732523272967833059644133240025545830911418532559930643092925976629214165906682616832664613952518337370151742425240296540933242599203168126791786098746709632845560667287482937097243837471771374085906551013684204052106383864421881303115692314119954428108159514724127803465438419945955779965181949743027596749099009373837868854668253410536456396089661149408211170871646292448690297704783091004577190194991993697730648576358527526091140683745409703168796547682328014684450893857128119978544405530623557727115315469807158327560204059048025707590889506652804683104397539322458674716477329627738810565414273613698960210616453761976637351132607107807117922152438407196651090746664673630710362567337163375290808490832433362305965389702068382527933698010201381414887254708659975292078509140905433206896805428365221398439930996021554038061358047578213451746634902611856065878807143439069367005882069357488575809204244741185972093161887355523733399641441859725425623301757078324169827847595850737951646362194251293449812080153584593705809666412932000136911420631041731910613552249118078230768425320599600183106268137198384494462809302686301085137176036632948692333190269730894649313636682992502646330511622354531087694309572699544342089447164898858544674311412144651330379693321218402943007044041820197261821212042000596277773198786278070534684884223052862880560724100686194843745462428695595297595075516967139425049882285782535701999682765274223582938326524133937193094884371855284074680531157694044437373490337887988886326119368233956833522228611081349934463078691193110602401924990464058366638789720391765014389987480162448686598712592158084263981945459103644116532553527046999855437869432413582556878730477963446966023731710298309869703375945295168022637351724934765717114712822884057783928441915840567467771417218956612904158934554984041747604169868235238626859012331487624443607836846654255840183171059603236410859506027538920836799149198026533711971297204904852734192697218584767530943719728405383435066299560129810192312739903821381402016408473222293362079697927200529665815119108677705320604647778732964220513991568617747702271253075628632320037941984643104462204448226097737548599850201307807195908383193495762795782393379160230363290302694189086727645002675030144191860715117437788427835798889229977616358209837517575793161421212474278574908973650506640627534728180190358214913495898536655837198499962731229649987319831423636176609252530766516502256619791206562942558042887992519705569885487841549483388348998605751251302083064228883758394509491637722367455207298770879589756258105965019957857796520604590140946510153984902818177413169621125197773679759804770166458114931628827369498046986352219145993937849726921030108544842894980146111832155286412919745733226597859367994501231697607073772010621071667813397161346718012477001901798450387802625368464215739603977143714621883006149734076838546705826399286063148648846169677301296440339146524455728177083161254991510856003937784375203941596595986876968785717425753799432184658208657275306192756131060903197073380208254714926385918236729000364948956710306390450583613279770325131459941691172264955809707595001057215244667709986940864811624043136225294873887622065796648350646286785030185868002654303952051702696708528490713580650172970685783534213463802357482310375647318998004078212592868634560271330162737007905176618767220178955814143046914186294801202812919126285286000762583195857069374315487591772253465964714518617386564620431365593659055378064944508740951869470452621758476161955385929471343339873879623432667122853845508789836686381838242745861995570825936122444883868923225645415372286978434959058514169681372314496922524143257189461598000753050694738060209173160886002112637557118371546075904728065093166460032500929482527143166660400300011597902566992662251774920224838696297519400513820406879895907575898450287443007643656657596971910329558017784250601775217721723217202842412937312649943976705463771009520663022990045255587699382181884606299966370339964487727323533553214739524496020401702374617159738561153901097457326174461497866580505383593295288567788129845525316747520173261705004588800691627417767526564896853541359371257252701863726880878246936770037199647014707096990162690792208347552838072646665046176502556861123121816701378954480832068198044835639524508407623636079410184713492985533348249722912378892629422736667324623490982782561639438570070740025000864727265962056580381006791141831646138908270260294274070340733127096884741098752629138069489135866086386886742525254948731521350820108033464471791857227151956049611680547187656096801415194640410654641215406423339649416771757184339151002036615214121071370738504330527495305049577716952486218680614978290343670439332978472970406094159172265337028050232124782788879296588923764580701237489974260844102652778417812280191668945462986911604286234133447595940956398626615183741919850899149064424912191082574335621558010659564328594573498625472723056160369990417628517217867258236586191187655132155011144129199441269231263206191497842250515440473196854033794329762655891518473979838008090465619307565902490315623419496927335193461644455046997226288271261610849367973367452869413609134619408243542484448047162501952236834245273010274243657235827702755609834566460950124846363472462089204671345266387740965787869449670038488463157788373356423364260110645116463197699674726517084748868010642880602974904822146941661432936598390437340661570809902976498585784179001671154093044784838541374518906736554899320483178567658708695289388130170226136008218893981229188315354681961168585402811869493356116644226927154699423121558759179696806028807952684146399628992643431525336815249589362086768293060860445618543296933350683798234218326903155963111329197425366571455999523003646678491118588809728667772594995511480661313910468469840124642263735325039683346724805708473665681928680715452275693618472573783549199924741760145143369309483501625555713333634518384440583591284212033560990110596761099305979504767971464761122544235597424529795427551175846107426189907251050193146613339657010240598363255345687766517814761435067596060778753975867721749813243089079249896903301168958432743589278366352381691159205197505009692204741761593154297760859699225768302436217794628822219741359047308795624714317053278292542201654743631190766460645863304067388011226768414361810534802927894161325011708159556563505106545320441253362977665316494039208802737059201544383332911966533562189069588487063981315849466054067408974407973803628289904721717905803549916437395796520133398817458724406797394000088569737516337799141820755629364487745033038337479875514320586953637355724412055425925101574120805212888764945677273073377307816756880459125991787193043844015261056481418247172777040256229327720224482193353103498830060753449987380794022417350030857594505423099336051152537689328698535751374895972485980094655679275749827737191644549218520286325681469332107856226664060427221292396241890406636673072522180783276988161627013459882881424842020769326541581927873225090042500116948719650094945185926042337429562165374019054597976032276679195738997572698717081962916062798187711161217430374094405283337915768497790873114178321466470641752164041174185690799883475274116797518340605486281204561536472188174987402681786446766590835400033458796124893345735984918163290162396943076430178124566240973967052089559476430906510799744997445637189323023087627155367247264819189669248891200036478031035492648206151896944989262576140556152370010851970448392571112217748451095933551847420330349299835239035518264753571152228812732574888559727669866866149629867347841055234702361422070810752720350649100776115961407289595489608752677043024907831586060042670592082210307806543231623123482828372620750842014260480842993111681033473767938051633502652979280513891749428080342709461027177646099336830124575519545939167337168915712441522278754394263646573158065027796538756866133254689723483769023499179723615419263929107486415307944357456449352308326375204688105878128943931847141465985197340795110329899292585390670999853406513762159253315068000782837803941805383444132577578437027016575121175193119643965327941681512305140632555030325302837955389441102278415097868130204456063072277770073966952987581953036042193365013791627222233370009589420394591077878670035883519500388726411939695314423801219884506947403954745333515121288390259366003851587304994525078277952494416445276793953917620180358190937525529846975045988023197433702332937713114480646637332569449089681648617657739704203149121720684806257693663529567137970024879396910483027172457742644149858336022960496310146206507012582088813892344974981778628707500287108031902138891687498741720430828031388839483201482913942096251815773258820949682620594199696211822933181120148869578891611151728756682366978458847894580183080623258135683347630284449325111019240658031141156026294412438296638287360567844473367051425638687852860528282478252031722104616604152011673599917347708863512492233243136218014696807582987029778162894224251629509518040427836319146149573986729475387421353499868355623165112396300531168654057763308909547359114935376124496233926350938422447617294732910895964921993777819255416514292467625816292811947034198935210343583308347570617547729198540978988581548331831187027490275498045109496423360073507655066030036362236401957006900146766984422067771088243230036688396151804891811418815786420483379556479248214134430798494370221609549069674044179162566295303973183079797354992744474248105568285448190254768237371181083861801472084132450381329527274374417597745534490314658265160157674284558382265192567358517789149962575398621984542355186101689093524027418564502310806824450021831630473384942653187153882546328899368899285385144646398745826785661800704036005936219617865032476918963555250167415206339209518890623666533203241954270101009262771378444715468626422743443023195645665702373107117178381180355600741832476446296538141596936080410524670707926518073599156874942453087465636964892509618309384580730250649166033553606040632792631399766653749289240374710926490399431275502628649077801674947922299602376808236366011635652883405064527295211576475054284194191292685406189322971806809935346948551562450017802088150773881124755077742480069708811889331411110982341514901656494143077436980795572195489965629005093150522552225330023141166250411457150739385362128828359089196593701989216682664758303076486146940421837424679701268280678287953255208050674994576308022620677844244383580488167555874731718082158669307149587026519351756743878103304153389164401535317297517587250282412950897349094307285862166540314158053983118894807977305141701298326059430482192885641650262543483541605340317477358601012635344536631345794271095037996139880720413752319582095632386497280298083769807254014467234674126152914963279653565139601485805364622181992842206621449727248578773035577832428329892819156376871271112624041957452602955896302713902058936969911002730606543193308941794657337596917299586721895237108680207358919433745514713913297115208328172500133706723979925323744000893123160798601343152970493204970062010938397424598732696214617164713414950724238288966694684780635990992819527728014556688311646973486896061146756468081446429105203216360374927345874060961373014701138674065792560174451741954486882025753948965703120106228629649577598173479322016736812297266587438773099739442266639085111105929376126725038451366175062137112079703200779152463485605988491212080724023545301030883092717117025155196620341373279211082928348356931443701034204290588107443906013813324886131716600379136867314401891461119819022473216952524482232093638549867666611213188499295431378972249629490566254149060920074655908483343272758059202040563353162516946698505078539650447479226444363664013168348720484576083097718932098738017113767076467609557603919212475012049204304696831681413557154633025431555728032808176672212237272660263634465347368651502838266735130984875250274393198450127683486467505243470747618260954211222774964511798426376804283684383888016768747664366095233817802736902445638868385771581742587073133112053170546598288191932368007654633663817093397239498154780553475956946497929809407133944631430854484193981670348864401836536530349320130957779456742760837709727533863820179681330158237611095753754212039298948227136289656422663948862156040053638135838483719034789589747283138140855099412853380200757093111094731649441036582153575422640332369113262067948891067603660676108294869432068882986300425910564796857812403495411490680350524596772917285418907526289111963530609626567066296523616033453475801471410150889992772974372457879000957670175200633815152054507615074384311107081660791535838890726071593174977249508718270619356751670653109976653768450620694515368786933018794421606734111933572248104179381989177306759969841744737716977087323684235023823867254975134145877897904883196890882570351928564054932276692713952071171362849110018835385148493760278750518121529459302918457171309412950651863582727910480941711502218509382459524595106941882155875911539249426562220105389816174649303145623774129312778749542897760719563238403945008117966295520347408379694591898725547451571417859756168361057740936230750976237255773856959237589585273215860859403811740108433755741700896614019185469990482767687839817820183177984734814528385857187689124799932454285052122916685117936797932061886488120022725203094842781465308850441823245665944351195651459667211670663289358492210577712600145210151619610115197445779416787704836758761765746986870665234065885689802861777717457448163108581329696195580983184311616622541111392195235503523318886760661828153865567370216536649871882978149982184411389942678930001887349428495207955326636610516032262285405519428173392159535521163210352574958439403692234412359013451146139601314100146350269492910387848656654358149355067359375287301407070810016670603937362168665807847931954908352300728587726731929140153532550142242454480286102623859858883492962408905127124110781751704243522865035164848156597474679345402694561058487332035151354192869021214876768968955030523568123642784993799174494804031973747618416087031021453094594129450957048774278926879591446628893186882184293373427961040985256110120361418179568466477605773202655480194247003207866688866712912912466266865071388648249603252442452886589865195997191778044159021945488784768656040405621996962491614805845157036841569451516270543868846315883049361651872484297423208137071533068276868890421037027702737077495851805739108808866659428002740442906510128264180008139232547354325823248971270977502777219353383728248335240850222849084193232664088948730271993418254421525511157548545655596796651708333468358333275596743987384715747272689878425160816596564575074322187491984617427454136530708395765708634807454962300655587600030233158952719141911705724226162542673862930118005250482603399441813609867195882593847221473887581990800599414122757427080085076769848977321842842509744118522221215758171591037812243553593940982760838547204405817401768691248396399871278483796391789889770898316294989579427154667701562488328725342683401634727617612902795472350075256775242266166813065148217045085683100046164170553074581805768370685311364027445978668481902418259744195745748233700562370225804555560479462982889228519806646326237892113552161331506199486555579396634543371398234324793793607052755068026225010284988705110021259507481016771634841441555844116546508926744051128558034735827984657671940150584869941445318558812848695314473470110409656254459137623774620977141188550076472308729830480953395194219212606050375455507960804348374583101570201270671625485649258613571505694478372590789775978318714959041066458582111216710160011002772574794920232889100806138936027543135732375666172855735044683236912736244980277611407967587072291301529739426686377421610512542636935714624895180234236704539392263074247555143236030512821330795128203454935685936242446661142657830138359382472729858478269143583406830413663156045674932557556004170643913299971130055123803936733218803180337630026334250612612214748445231478997668238344576300078446648945591545057852721284337171089243354549355192839979287436888000012418035207789006999347884037644651070988920847156303634671187605576347640582099883476369602733482312911908733906920971061650244405159840401009453934117775391963257020115483229333770248034496254425508766967981583215055527469521707373857582192638574931885190788565304991351149445465471145542885005386645997480807809421511423602434461047318516751860910917800886295186185168067784681729323288689329999601818849292577788003518435279928301397194231570225948031161606834189740924972510805344038505601287269207322268609470263449887887778079544368749150674959824710903801586318470807388861018188664224112548944758220085394329891460949672513294134724637343702809987236563212084899497115416155939216296290424036090605605981553900428488320323229741926499418392850993628364196445979333241544862363888980369145069548256937991983750048232016476885758681404240934551382435678558388812271540817907385036560848699128274364434852459328705296173731194701958053017409032732473277937112404581774018338948005965315647820862563764359896894240729612859620544582293627099440375178059675191284951247483438124880679814609968341074241071553648542036766092089045806854652774368975318616794785877727894977849529577208463913871634671341567107142515368107785142630566389550461394324878249173821898653868906229218367832171532783246397041342809917367664680891683229549601029710150767180007492365985775758019214708801528499789798210606660328429437534549251617337925419059183184462959365568726606647294059864274223871108850790874822017017888133990929502346636834170808071428971313576727948294295040972139496888111466860422742924657633691866467057984564537044014421832666564215359616071130681247171493866076182724218583677254565991422504544471291875576175859483418118699505339873602867110449997475491575260375368314384435777850963796044641519037071177327474849628742398911864752668792704079410360434098029521319936340860745993020550342152892506267904985785673716865918960893291980038984617813393607741476591281228208579329267366204696754945404728613333616906804293956095511101040310411034552243011359895478307329894548952444811133067600286308422655989222846612177463063970955720314265967593814048718063690893372416626486768615893406401356025934504626991054087063296400095643720223909214105679935698108978831726753474163289482210946296720530791212094894815802727204962941471579080002433841540075721893773455498042110990540565107023151240612007132656338224100685353147295262714284958180031519213264995951116824337995065306472910827427266140560178698295102948778384398504307202024276455633169896600129219927611666399840212682678571355160439838651272132432523213261128446573767412015468052268349834029250175847784802254651105134343919974000083100537639419582994994185176491118924757943100935229964440601127472055280777952977289220436504480865607338369913015527973486860733908020383671189869774496063765009892580146332756785428674150217803283320967305560138612868707559249705741913211049908806102853106601036723299829574350920545538804863390740986910317876563039908398464899519967025208236929741770574467763943754161506780769260192065549705098871347720026168803938732276406930065075871974400743533840789114728453986228693289908882915859744846860311112828906482834071495535576997559348508309028856007801633516168493273917152559472148059089339631630194210270405140106462005586566166041479253083013479369692673954924718064795504774594227122533681467448025222086711369744596695148859052246468484178258004696321247345462349161165335458102229362899176261984700846904261802029544557228193437542677579856369505445401385117297135556501137227574261645097514717608654913917143679709617469508975359861480786606544789776697400679631954959094927347275848509837120114013142825727477643098668385781270466347142505872114347049409552481445528385192651846112424892329806614290061720054782362698970952914045716705197408683534698461000483327305992646014127645718389180519720277046419710728407889073735303537262326415906638347276026368953442288909707522252335598867040268949610889296929096771940685982193477468135537107031596362644559995775270595265195887056738235188190323524613544569167004433706419741695353125167311651275039733379192829983456874438102350794526038281657195553305977551402633528181462794551318250649152775330217518694603378637630294281772622986311701183278164525921318354344938904162173582089850934227866872292058805045979862696123586786196753776261403075911432123737568045493825597007866604383630003146683608039699078615245879387626844832050859230157469144350497900476401128762379885663680020202951998551299069751555551415244045139590307089008889243388689324112749105168557625257055585949078170970371210832360842890517557254959209222627781772875581134855417491985250530301094589968355465691086388846780904378591812012096682950094318219591424100510260770906685963256085153043843433571210304168151833339459185807203726911037899289737745429024550315511727256794736627727555217599833350159615982170888695118039510186539822867087872243619731724233750364081803607183522292121262183039358488905974544954376475931345973714372240625942711761145427681628045729533425644930543666260822330878329077702322481576703141827442813931387305423998083726398810593463288851550692590108819389827321840439442911415989298700320924837908188396944896344285420309097987348329556605708838430318744861844268142623368813677390935637970763598580214084460892913742764190457176328975464311650000687556881979579011411610565112087065500646673823036325492573955572037172157850944958369768747959832513306883852510549620303107938577190524749059108407968943354304941455562291852806591524936020806143646280852198992402671324833340311538729268374598017782768456202125729221472711936597677363157671267042529597039742901132184290527456626463719363341218335293851017149281174949555381066376644179704469438187506354219267655424361511058859837117230986863777433921410777501411680992409054214964025612319353460478963473687446313831327033953916901018736359898195733716436800534066030312972421015250619889338335156470962633731471996446834674691078135851840751157490941719214119105936123191668821287812025152647192026897917749739071212468047194270521345477425070941194515412664509326396524873485372364636407746028294964167864130065062844913709799487846410675731175829244025103127288138775087929812981382124036174960283936926999670508363499513607368125756685617830867369236332267225112049513936552299569810226623568505187640892385531511964196369275695767372544088446635704794511378077236976653599105771760321749375573094600819780257315908259506525941018726571310880311680113869920350047868753523539645301758457605388618144406168917420327295698641113414128740434733113711324884015800207467503610479902291056262704229882100729738770902936973124191153253520766276800681803666906055949718290695480435822569493074143869118246896340466918216738310755705945316458747659951540671652624157317504618986782866698232977888368528432329221097133991625127465961144965940407416357027688397029998367624686610811904007839751324358038755920976528390471923193717875936459507345204527086471518044200763096428484418796693529465006082322718549123178589832057550149112666936408935878732267000822143148041508112422484098865459901173884340157788498914009726172458502079848119440316289366684456226494138103551544149882446664686710666846774574482346428804757353004954218361672467345682509818876993724818704231399642911702005506374910474119227888400523269096473872726572411640449046434462429477252042814398723247117202527999222699846894489586279808239334133263846453304721278333661402454343034871441233065657039933034337700784301870107214629411152720399906360793057425105583581488726060081193864115898684070562574405416177973907768949903630215948948777224218120978247730211671438206823836501401275603260085543562018687229384134950634090428307553192814004668663938563747674518629305940364183836661550803066189825338090971732524080940831963527782101165867364943119468905770618333427401376235247280952320426199190694704809938656307551718956010207522662477837626753144878846717896405722981973910106522350692323221595799429278418421600227311964670819252192879668527885324412882505756459232065518687209477827316129198468084973065388054888888292052333728488103536008501948072118430621288314362556111571704864531303017832395117320910222389903807145291209335851015286316546066397096147827690455218730462530186620285225747290492884616516415844395558139497577870105158495516536601967776637773645915096665885819125339553101427366804842125995062315187699810584514311830659887368763774497181342446975254932061551147187180725791883784379547698477003537759414856415106710889617877061621923428756123438120279585496277183684911585428642072976594019041215987736918407423977963167074963201204972590310056040244407169615730765904774639798000467893628043899568935958166706831472424671400219082514496851724291069187936197205992685699207081243319373490684292450044269572790320717330996834870658936660787755873118625864744944371955222106737542231065440383735121648940548396251654648326867664575231680866004732905694301297821104361196455052283691642853076855107204870567755275186646794875247564715679346182956560113036517747268875432064455341519441796029976115880273960672303595797866916592198397569267618588938145239259864064845162438007092663827796276221327995333350225735261719566233901582024827828186742452912123319194638269014800207463969147827246570658782354193860727370234686716111719226241262599907247633706521630817795780921299264518136706207438571225671250381683701708128078637018580396014467820287481524966191918922742326394483935592080589968253457884622271280541161116628303399192240682702904446371240328900632360639500975073156495802241029141724481968673177475870570015928651033154496121660962213224904785483170206998766669971271486196200053116558049292495751321203719177353186826974099874512013592319449344300181028370241260683544883345989894607592762630584910511958810750699407585596301313759659330059584366832056543585515385090794320613548695654295876042022078848553694262504832173869523955159623646190496378687037497610441929609675151173906685909604071185580123634485470877220524681915341774855233378677915121511971941880808908133195717143418502387272208722676077651195463907169996730840895909779633602983535600083941899153109643538587725859834894959399994172570100940082927663365174950603919259474024271638351069753455629654202997221128162284553620213381442861918933945519754683767699628726179456586074437856337525856692418176775558088105548948025509366975909067154188065674474422334942990421777998899228288979623966913611476705789040721528887510761886691821210585503042866813440478268549005673193361554448908580446639715403557183641215352829690937712596179844395183285438610788423504032323906427099396849808582093122288917498789695258303830835636213586711743869730992494969372363863904989272277657738207760311464149186389078109340966312767214192921123179572455649848790772865427862033141673342234409977578181412147186916996931989764890505912333351725022041206428566650808083599595164400871464871155558914827658686171539725981633928550018025499883519478305464272976720243716713976903425028055485378230964185873085024562957188223780308637445175928587109435910469053612114808645892476870118618606280260072741499985045950455787477968905620045346021547829319561711408108383585067947804966017144402419709270848365157621200284828860183085088427552221610866492118438679317929285763982796884470445502256830753012851890881848602731480773824284888114214310478053599431422637588029452691262977579994264892658341326160646656963410544924734221639400780486871678595580042344678565959633359912512878755895378786615677926430046872888350256206940326980057348157140129073064861861530176706713051839523607403456702462906839919611318109803803463471723922619289621924745952665656523244510574807969876205534405641711872997660710135058857804030355045005264131080247045920153304000159291555085541795207069129196648727547500562903776066146181592834328939694485401200735920443311352405604132904105765654986641151175708493792056599478388756082383245581882463288673148123672766204082248940009237018013531519695932889842494079275038954477597090175591179254123002837191395686377614823262878124952882024951739306187015691741632989127918509543994869975867050899620338124707356499549153223080486045280797436218009964525591844747446818228646157645544775169629544121565272188274353926620062862530004625111760839805837543316738029147251100467021344819237076986240409502781863775195307360324381537796473414647254274203553602975839697997341662824375490014570323653716981763555844529662352555414310644063938463543121096247392773315161558534053167218543253166385527129604580929854162091915946553691928243410847955331813428968582571705382452297299862552952999170137178561019505728083958919308112391547865718147840695611163541170195836232775839966835679446634151136088625213361501393913719582341615021238648057854547897870405720903117032848814460559090759620263750397234875024491129215571877117395081033709386868416616086026813605370175770230140100645583029189172333825290625945950667603995155415672489023153068893003837698892555754189693972420645447263452705954199777783338481661676817726762282657343563716563531935917333766608844068407724709617981827868741621802459986755810173309167584434032638323761709510475348817477959272153629910738450902252488096535969807270714278681699778602091745071591346753140341070955829296141441516182284711030034195545583167365799206808281364161755540741542904409448973091436993065679592838348262773073590615784456051494559813588169289060027134565502796696546611190744488304988588524182767302486807101405296457899548635462704103645036682620287545946372501862846642016054433013703765032884628558788631679262788452085604158385687629207350493697291916888555405269318507480982112825027962388022284627493148968418938794964615779472399758391972275541400018326595156733165326329460507952328374136787091799911688425874369016270152342894987460494019613311559370499351499617507790810870892610510638760985308690894444094353190321820249233522057769381923189686692144909312060871824394096681814357119176287492781413894365598656281281243546782689960505024862971497406038313284289409017069064281746407226865888693908827145333607356167056249351996473634698496199798175460580794856916378186971704609337295468161049519159788114286347635101352470800394338333083681840949690279468678653598330849191223148382716537338100177134276974395000282954361667326449667241915041951024712090473756236876251088823692554184068165989214666049031963549295909345316002023618370440436236877823553755240994802694364860880107932212800466500723662579392513201588996294317393312185647159102814245969660550861801732865992206452193531094106319207180196472020164649128341997201012374343287444863674389588989176184335224429385772614117358632815871784433969112127934688597378382451893005306657703129614418497164667932787523145663565034817496078433903030339360097703633621162280420965429295245334238042229480532273456429166946832180251182354910476208355884142704569522814052639829061623418674577855800243184138939565319271072061916792789999699394913847545790227111643244211506163090287882776088251230960976803083270793885871310560944535076784899928325361495757084634461821972472758045782061461685768363366811111774648218509649754029597779042995301549684193200557665269435332710761935134061439974656157709018630638895028332356839226710726922088575912216305751919127660344318066927203907915194330170285687942659100383460889131224282337779992953243033064129082330792423515119047156266780555306777639366816498113953453251522131160859376235464506224435015599191855316664865048961371449128436463448883035256448953417709400825139174789863275733014047464694018088343947356331735685933706569103512981637605201574768817300588768637921044260845606567615203243535981699293835341493040874857065481386289717518835601263721922716665476017557967114811265994215147350765342942643487477474551541481607187159485549852714175120927893671524685251851270951827480331808014399896262864466644389616504214402849649772916661974110745952287962535201121171854233115832653564332810295358652488371045404136750138869686374078146223023314992996690587254614001770541203250369385785230935963837770131074588235734801029378711564909700673266021930727725305177673147476784238158405111639504979255450183384720562214463469484262345076572480485987487417685738189656336894234187443176476336116400842198067591530902754594146446734906883285677130276685460296809205717054063625830519173674176103557076236957235492541670800939444508221352356500401180847339250497979222741911547897551333246653740517359926887798706934154554335573764120739142920431884096498973612411320901616376341088669639226235879061815241650836934633632206767330981389115613007188762477351980994401764513162535224260865976882589699255727073410255664603507555268352987759534191165053630719238728076895073520008542598847273619375049652531396536252124747464715542529663682600567256824486036973942088409927293809669229739689239917611558086963950534833470417378614309280470863546119198367557371148522072494754606715662801501636341301307790014537037836189419956335118694502917030595041236239024713857317782691578892530579785294379729631847915611376752740191921028128530750395839538807959837468739028262463216431216302430650784066131614763444914646541004460914628569834016523602547750862281793805526890706415482277591141887127305834819857904028664348152430194294529233456868201667495047059055095897202611760386918697140819632534546387141961810663859999797782550027469814920529088354567852337257879846405980458194699309548795548454324715305532937169548798651301606349752212132356183483201417675999130936168458556917714065512925418592016025771373641852214875536925300663207781603927758776342773654259554248887827380634149641085372214720479128989356022413897982891149284062727302925360716912738882210241727631960974454505931746485847109094431340741874252435634612157491641554296414338132030455906450008496327882045744603119088343039515254519684200394203957782677438003399473634416040814340589639401241209215871921594275297803314178893226852456079119148807644117313047619339587938751930362153888575623685388100176268462135730732042272268130672551041786719352307032255130042083132576994641085496203178740862354540746001359763539424409532542490585851565856343171692785748045573479363385448553751913409103995936880629040977734956468835287965022256670640246835431270862493096002178324391089361306391678388214666941792687830834174776617192093825914164394902636461609311687635768378646340741159265346344203688569699549471557626333601572820458203237338595845693882400537970256335616520346685360008434286332810996214891016217035142781726707207060248317339864674227220066505316632942261702823631302748705608951168195422773494981101384609212826093118378302844384833805624947662187597316965128129802342751988843794427588800466014010504638328801929070146615404619946431159867068488626765159504395432313362443352205318233773421762968103999457571259844435842606376068303222660093034253568928511940517460303414596250419030486351476152138991636394548806153257477119546405741987342345221047471546177892758966296372483077966489513412002014969381781858007538460054311291957307043728990187764878953162747156663363141537530688328166021871405944650933667893399256613554546916049555497833411764974556553264186369244329763480378375872563206362456816003436826100341707194682139399910280258613804756674669889759358982548446109676509836313004097599183749389804785843538114035454016114190741343319533142337985394400127145807119615997204242794463763110358484652038615874568714373702581823350436671190773034061771000358770825526743131093902694161732505832446501730459216859232234659477231360371342053950655822755149717153664628978111925787626053244932084186101319216495176430479277789655973636975215125094820482469383396892430293936528289872823846255046704542874766861561931539935326804408399794290622589844926432171572434246867557885660683419859369754901349037814022385467865811129089820595619538403829484702638564668215659695998710782243421268640134135038805171855700695408074227822104758127129253974825898758964512582335067930891661476218784330262673905742647920144010567558050622639865787977995797720219177788111096422192880203002070788380313114684848237799108014521747487195681422582509534851950428773044981075021166846931869272088919088195301555984057408718184236316962420001333748237986013700879183916274137935407019628711359406086919735114143910167087951931831460604104165214389485489950452529660209313767103017719309957389262976739447946854812418588177159170998431755340166807683418253736120093604798985623461899863997891713181060831594644180306423017737354339387272779859301604798389703628815639831350922440468927011674606873593528712443106819407467563687076079941107883674944410961438961711305187289423361736754187536841199890782681105148527796849117323642792250120708336658997217493703564428117045783336815842148433996877925335513730107493753189647352688385823261345246486925576479064474101914738376526151311539622089582947449367614931970438654113313316592955400976231738580259631106512227233449240601767605276047604786624871284790218707055042041937287284420745589310325047755108729559868452837052553991734131686092278641842808632288436386621944182392256458912149797519178158510490226116825195524675057624862894227503046047076740636647093885670477140009092369529020152881516195529512070879571514917568917051195298970353976044368505174774080684750245425116764481229580796622082159228691603799917709864942225507815246214503622673321021837930016521097785509559995924029441437159016506760912032916639657330938767151484370917473692897785273206681835653015708534887353761542992591372472660390160693404642186005860594149241582368329628968951262715754551360449563781364035439903088577356574704849533179671995085827884262833087018707927963156665195843231759163383871620748473433175814515692338736831212122744985111497859019999776511556086611054212517311336961723285431241830299344781793928081604368511538961659732639199905310908235830882282153830084821800025585065361017534841907865761587828214790390738918791748552861444698880595775300885749817494048115016362378378955629257194790091615348968855756531461233650198911683882942266696906515070416057336258153022765446277623797550155420627290891869390514151795745479728094533319685393529283542277951203533467485642078144360462314399685680151735985188522326115065597097127191521814220475569011939534477362945917814821607829441334627936218312316015735365147916336141458240647805054823842374938965414660383463274822266857298487074367094827821366708338950741471637337787135654962494352965344894780554107944765215353102820254524989882760969025756656442628700862169466871297453920141853814826590204153727465814439912729919387738437499474021341356917094474965813594549122934335173395002518768777095715580335742856820389259909683075103028897356927571071105650876928225818137419085874459162668640035062025106039812923388337862352958772025455622363850089143123798194150539728112654783640604537090950406110690399723637728237378921181557466147479509538258368992916773006153931150810883600259752660377644624074533348379115646977926032741745414984385700131734102211948121697654081665507731096273226953219158992833100911688567558997541008870030665829937524699365749892396124132603154713992742588876667937908474117404772127770932237163212906345936361965882469080790812461278121096216116165301063566631487907164802633883100101850703507323692043024154591982665537421834319608524838822948699938461747911628857634287899396843146679593823046429566417829564005579686363827445702096767965946166768533045229834555960502027244705445031724531517667811174317012356186515663791792098446622210496136221359796557020140479188827398644951345936556204626186352255988636521145939968033773499479332200170661853627260919537977498114450358540271401064617903504716027105528013502466523619834559051920242305371011555771495928617038682534732675636044387290613517978933861116274981519030063130296432339240822950954361337147826067819760937884960893289166177556289650359682935512859932764444531507499092388210610558373954477919634324683455674501914405272762004613943014630834176639597144493639609029582660027826025191755239687759141545872972893014859634129078540121880937241248290998327616577770701303566683232735848200033612990791299415844792888455429532246398289557566710073289763336446065644262201507056738522991926937699348081026982173731466662730807869618852053329891723393890026809055169411701635003383117983761375424535514162481290832235757818164521093927557885981938093904938150228379583020350083617742502055338066835028331841655701426436855093879077986499621915331613762495831575554828202205026464486657512725145838181092708706744584059484856280971082679368110183978701497421189647681862384913984190361637567716805840725979200880106579426464255569084260040481329195265114481290507603384981901238626555364937901892565937485589172217280368940697751147118517118191664014911972809702888900752609898522028923516298801035050009395828356075358813246658929152213465217270376851225743872254684981038004281866518915088711877537817242215333789528704511599844329740599168311174264293741132382552869515356545730372748135513891176255910896088209703354485586285303114731681415488543685121456907364806819293581090719471477714040916510833999081134899237406440001564767828208994287821400248014260650844118264980079434743404092151130497262557648971461600744531276761131140008889040480814289092561387362961111392581613395597672401352656558733424580984657883099402131018335415205510115451974350158115439574684124047828681867088487666331239308394698411014523418204798299007085547002106959616555303920298077888425640240399882576661043299325436337561851737962442379928904122020214614280404536624130362261388867058518086367236550942018686423531679313938845017877025336320350366921400940904523151272196787123829903616160936816937347750786152130052723921360697972397505103157673513828655646724637926864645549746939555394473392811111334037657622565053306874759662537041663974675018378745703342892512965476519998118557311903369331054348101765651478349214518754100640362316661659026892641124095627123944967249844206221954561163028864620294735466260199582616162891370860060525669211371914637416792974140003796968563834109609582190489939172695274261035716318010808432638812579471747354223844401374690656639432533599854649170766257272792758806147662326959470507334761309337694353925875535388782243052190206185140219603308384548805720214639874990705542506941724962271494106007355765829847552510681832843339349674427744552294957609454725201601984812058556953821437092991342100198913609005557012731753917942934091230259695983125949142888024703659631304574125003494050437815797268576154624500193763047679078757828910192149534095250144917682753351051248784305764423483838631848127377933985779035752387684806564285095062423401676667092566986495870529200856767155216668322530868301124620377880759118782463186679605198474815800397285168543684700500202749684119722971804791586126620523095113628785502729636691726568929169860183759299708631461334020269991972782085803555178255207913001462009299512859677702872843892579081679967873663028360837127291245168082888172394330280183214788633931804181036342877924615666091661359946071031230749827167997830196418030828364126491568717125329700578956190468169930226921746553603524362525822419129384683240659787156423810250406087615012599779796977907361618130864442218859168588236752532134094942958216458718788346388329270881934720046713460688854795984278387262820411102244017523320907267223752333760410815501375775188032733043330320224830448561074556250076673094927444320775028625093901334577959261916431984443666015487310092383615035902212613690726398330096589046728597035565429417218005088405123791715099244892778140983878858081916867995223709987073214156225549598351343992851723724717415359966360757094893193138100191884799967126637877869567229698400977748582934934817201214067766572782867451318107667642345755605910358365682811058933995145900334794235844955840076566792919462263808314944625776958257542009420871421040973006371271676510776432907259703970512158066400064819400313173019494329658082987978507187093848290225065577940153981518138309322119134446571393011677074486332742134480651190062663345818214826149738804437869693857092824428814533249323726705386232706235698527281649141121985135567609325671551839838347920108757355869797503805499453504240544124479188781532997239897196901093511999768692045974813288031939966352686458829475059696304627433667921155323522658645566564477824205921184385612708113794550528403602237852839383771740900954945528188941916490354839515348227454957067214869347380289472248839437593516968756389730875400681243837460903419572151734374596563287233938442503209272648300884649648943604042836027774230741990077488619817802599576462901226144157742221456121636058736850452813016965020081715745963363574508173949643524333608420436646574534466318146125939170669066764414832070072363664901797112163706946334344178041676713520343706331151910482648850517760033674708343297939865861809416096947376188741465687419495439960241195412938668151742950655237954700131369758150019777421680513414901539515706677123423118314614006132883948202191280074477825928749286772520778913794635446707256976144617406739444784508222692281972867966698832655494098331563173741533302169313180482525237370691342518113993114242110719857533604981289243305833000620391470424633611177296391021974727297187749866672434194552181042235543512481440407867174351863406963980261890547652796274472418376206689169659451475075992208076919746007882974404249182127894131360749866626524008178567802366531057634692230153298977429151700179437329453916230367462527077545620592518871658676764196893027264081190576527637032921178822948686315146892227769015886034795465256824766234208455712364539324731541371926146499560316263349430013631444557455994698647798618110986307507151040159501853389736847624941662689867595033765434855371095677025630779707056744937142293572511819183518665143023956140322538308667336591924431133306277701644554621610463436478455555842291939008458928924835432464727630226538595361677479453903920659793463943341159259536449975915894665563139627152490032117009276984113907331073883039243558330732134919285091379410766193110294285303634397400931490842690467821741998170725123442921100460869747805039505654547181620813856929955089634421843180172080749695396647282961810440780309395474449677124583877540873793533113217459640690886655781979986459627064277620668426962250545453808630864932637528977172843556038581993421150548625021309172684544255648579207490999542887841185177318247691485154714238174392963484999090317462461820309089247097757048293288429223597534445938760758203461922380084890928307424382204107101185302418059512983588835365732025032306389334684148679008430755583971694263924299907484864516218808309796931840735193868661338218896558181623385419256182387530015416404381590969318337926157772941275292320273710945750975968467433430454692951698994668519738448136238097551159812997408976496787182601436956197592991812931412580066255901871639519524079211817805402912722950357683642757767574300540307555129820184267502431753959631608192032463182051625555721828907284978578256320170357088052370987831017588709416311111076485848564191239729954707202097418127927513025960524221004653814125906709351128362984857154533694177238342834157766547224881915480451144950127390063985545260002919398762357300729814300485631814168716601456889806067634968354079563481288988790021657417817035893433636287425264796304066507519144561592700591833916412350040932117872064529346409272797383128469139972848441711702454951371548628792625947121953747435028529249532832253707919983669747034088898844975412050252017465368749922280806717470196029956880068215702125478279306840869895965375332204805518259550681378621773503125142634578980196515696984063022838780687927295476712800938444361032446795576884987884148103463740232145870836605645078861566029041926159418531350555743558386733706545305304288505734707398753050204490116989710346263136929984186902128216701603794907357737779337575584070593567867031776653861322272568601654995917970005437197099348707816311984665153190427480839933333404611136277043028454815582480360430061767060420498774287693361551149306619638674111597110181375678990751501061163454946147204839440040630786541517293370074898648093576161979924562489773682573779422024269755363434992261825263607177735910706719268508008579509988392306609400888643472260635507964051914005038604729440831114185933243796057451508520302902849084326032051157592312720647778645629836734316742059320608559150815915789008269253586476851459212242277219034979321647220845101499761581650121926621562424516586906320377744239724739614419966525201773064458161517785484647424092736855829906120631890236356352063559177021495401490040311731794528895968836041826459441496818759711775742974098676209784539702978276995106112971034019828893460024335485926529141610821963707477308227402637866998999845728561267648315265083903995364226070136161930316791664923762623001624651940065876596756509191281013103148646153387476692605902085844789185401579251426639212885687743450075239489959421135137061638762524835204478972705886231236536907713399251620391604555611620920799945205312154061333384233038712991212855472666336979640744625847425819799875083249899348298350484801897571604273969342150657490050370620843242095505561030310201061004384626948813778570935347610886148856664079749980277138954336919582854970490258575578784678759950287698128000820385663287330115289683516251076875019429216720476415369329176887495173236058050979161639115919012816771704545582892999306941191578116892386955715520134946565175517913728867990746226547504758549526615936723486033924819524467742064024610701679617729113258522003472230643574271355935964173214470512131425110123424361324035848108689526588136758199227481987421654256456620669705669347072145379496638478769426460796670788582364165362315604330782003216303534801979595695031365718213735727888176385837282599364521281481632294991181052705019326807709692376964557016428546438715530407719599124990008913535609203686141531273739396686353328740436089905491995888234704509935348448767628758749355166296245475362379729179565982160912367702141862896253032409134191303602155550580306612864135704660911147011849937214438776448194960435740482916066652499661912893177638809082276116805102289894360070440990619383288210152530050967478793638111430196801097031396571450026191085389548417390013657242142496922833859556041503755744503229153302479713213974172330695829718338525097668533813877067047825978767338126394981723949546220640279663454922388990519712733073358776566807423830407811576524240137614396219434308828848263226019518213002770264437618204254666473258564762658194571033383088556221978685275984833721739007840504348194966518596462143051634958287227856670455470906641365417632026826525776093166250900059587797243164307953164956699625883608693449268439862825802232914334227294663504155988625155932560998822205615642045327028233459818929887977600851600384697550862505359708632029051711239401959002235691458831720986658199052997574498147463705026759257124447814399720938703396175092182068865398095087544022481816087057465685084271281513763999080054042324024181342854176742102103522644566660070717336580368496514464829440817488875007249390948025480681382265725572055170764243053988667688030675490170484780607872779930863992577302994639057873555655451069042741616048681418250863624901658760851275218954985598827533233631623349759451009559596231397769725969527875381066141688592573739936740983843430776266220061421100522415466007521179502641685249869032604518479209891113453706122793863486834363607653795321784774885554785307631274317443214830070960763521061475363450638152236166595065497943001377974905306136604124834854090601530079413756546448383808885480238837108791667968842498904371594079787149393583945526661053741932900792442978106947978165069282377483400746912494588177165312619700273748682493005163506390725418289832556884008828462710935974921108473157019057564951386817837255011514227931882587104651260416166381991150088685427337547214471027455143112533713651418685440629086781904396301790756041199908128576468414531101341739912937289884108867313003609729983944767988981315804095398774642833081973594560750782652338931157498897557810845222546812053426057344529041202763310393634545561715632749322479963243861373585016157753362143943227790236762230373935352626260114960013469518173807645737024184023270831641061722098719128579910701863264605859042637441389680481588912066894548568317413054699850776650081204676214769064553196341251193310218150621342448880273202818776464917750009057245522914874293870916408662460145740875929114838277898545606061113262703471429251451827537098304476950466324468499930994693269204719616943039179276354068422931021434927912632676716955423020490574610131059236722962072460744979048358118335106421945956091377509285122124356908292589156686359322899984117519181033571517989170450152755236547750731112280437442855114850822331602292555691941993658010592612659350375683994940511713724762934781473525442873086467500621006821015725419832204630787645963461975172912175462830736650516145841191635730414816248825982835943604106863716948995487191605153421447349679027429554498165834846134615955063505612042199736814195416800268694528728592261255462699829306673592454846377451798582138019210900159553036433377879115781104894232739142596650023191102734105470427249870585646082959762676083715265252843720457044951319871690215079488011439483469725955590525748207350943654633467267441598950118629292619170160835564363685884329672009143670008831679667037057338620873886838068585854608573849703966007503191612583164285963997769021767480988556756686637815776029691619089778502658638981823087506884105608761656329877411877460808600431300746901411613680043347015282965227394869491886066017329268121823462181933417413174838233817341264890517764080988166461862896885118513603368116141781647282759815017041000370258908538945850312426864010717476109136815521425678476142246286520732417775937733798575160728505025233878944187142462711713395383642003503672029084061481012465756161799165968774401674377100827820851000045178290255266736233305058782778680154006116088505745166129531851343150832281738569361614325872941065322041890471850648140099258849745831436515919133402424181216242857052313165248954134934460459736714036702241202858018353370929827037051380255595875935108803925064797352593547672539980112542559558891099226153220132295718338202781393378535384147070053725093410529055036756151808398238571036844274147596150568185169196793487095484444941921626740289771765134241981962531793005929258393748866900759849025370304707659125848872274549016126046765264537937148897079367235522780580916760322356459640301790066843622148631797492273833841598290175713137554878409702408060145659770875456919254930352093634136509584843268925870725664780339463278825290753405937694583306955849810339882143173360054136231045447764671432889230833353591887786460807640452464266242201647543572023804222034695483161180470390172626862630959275972050214465706049237765293250068690035045459377493126089274901456771553434749468033330658987265600270687891406607612131377575272293901618271012538161149817401490709084882779950825742106541551187476499799766100387951387344212353422531711038958567398830770355968602274775469748696109806698089149131088666509689945025679325549693677329979587276452795440608348394056264854219245376248132017322031225987570341683423345742995314163896784039287601369726646443126956564338471414081573702334600348783980185884106196545939797673680266555528876523963515889384599490502052750454683411512302803621212795307818581959882980803998953671420664017749863295494327266199356542359010924503994643183055696236768239929992147280596788631582363734784889069467061311149902217166544935167150757545044999544093532881592268122410566657058493037319295169279383558271104714061314007381030830407871333956680987634586329931406110765169924664532066292908472802303665405620744431139094173017242330215290195307996105946748589551132193539805125258154623573261187149433143180033267921470028718491083041524584331818847340902593866028975390425983279566779536590960243969855209782651242292715528879970875012076900863181829394994444018256684997407580744162242469485456491663134572882547764951646768364310929524933122290389577190297154393175329986826390828726490748479316304179363167846343187228092555717302686770830650282575554799559503650090286121212095187946221022088232043298650244083232625280930949045737433005603891919714199886119107268265392649511907852075987656642731669130998899719841149628808744470978795696659692259781541206885345304918978726317841526383088692894636162428189148720246092311615110233908232782138688693421684093182828578003883310985636643832806381959565701990265066752033321150773723714552221486570632114526184095566497371878694972645780992439822682962363788756497608974575118039522703005761098576019957836277830479487662122810640714137533275672925278018545920728879275209365237502740240265563708963778052491419831369542509408660669684681563717488073361786422422294090938462601892266801491841666699481660799963507989975919762284291688824320743638811095946861346128973076314821551742815137778306664191576846162502546272332370964293040351893571250588825361140172996524663498537254505773238755710094024929840657809614826547129765199049812444288982290567000328580417385021730426706097022160458997646515324362030197611661610245242653904669447725362670281809574821161047280065079603888378593744472788816724909421975241210591999852748974567101119556192963671667279923717384541848778858872583515253097227722781365969776056934410841419857427328420313603328156106915094481049425694294062949947308892230834011333442814977027843704616110725160683099128980256689534410664642881630962718042243334703298274190195404737055360959999970326027201940249062412220900426149450845395460245335312380555092357570759569583973485358865412725161392429702747853714540876983407621397570243121381544346800923931128782184270517650175637301522897943066001150563692813860357800197516122196982501323094850868876254378753040845865109283759738062270025675018485329849093948378280025154528697739670411157017734956409331130315810971789469907602335094248861206880007018597395977863846474082990369425045302327864327709623569855280675054330855071038887856461423503779785281268713470215127723848066257417529353627296537119923503774427512719574817717158082996130047044551218941461059712136019168473186357413940838821821914210810586544655868864219841374783268422024237953141924420192461426406283610931349371553578023666122903664683971380265943683539521481112679071700188498385933528187794157638359559666622822540877714268770628453442530864555943352209822502073025012174269298861139872975138595792866321111191342751485769237980165027488006164776361174587814151837555207291670904854791302411493420666241553060714770971121983668214896615794975072450806501359084661170314388121649635328860073841628192824019247914963332643102992318386267247759249391125233327517320391737273866015920199235052849788214003974593563851272021102671571186596068598846548959243022698868757077389342860995911152565391004686848837514960716264927388647316212561520356975954622429812954915216196618897435677382626252594627732929560469668594254008437675872210415222732520859503091480463094079732822484654423013730587951958174560907773037110130987185421126039577370870663653373156780865364029910394739188595069435754184073365676914532409446836678561207312435332954730498769363112309423350963443252234660297036536928154595264888283390693356361076417167432855816974192688442430299659143953797797841415552835880991827160351553508353966419672448210110372211734762591224196552151358405843205047271552808305948712155211367823725206870017164796353903944689377936716498951491896634239778611502108699571886863510476972609008496454749612727458098631118243118307640155937943396361988563168707882668245061029984532929645228383618513776787003846980196223432814919895919604100756713746299592957399388234265607415409405735804879051881800214361896074736411387582404385035240019407995109374142612692104177358740851078030829705460788597635138931944924577898616593416275416586666892514792624842980464854578888246054974335030344595708939056305070871391618648456495846468201977058285365126577229568981106269725654563874122008356732118340587928397556825259297984120583580269375298517110098889991796432572776729105072472086918929448198093029713225991854269173551596593650966782504617908006843290608133173927072457176725842495881950771282281533527030036356102629520288156821547711467172042398656920091854903061267772191877164085957921657111704077788686099298412613935430472606870389156888159229242905885015997656675341684670587322392753470786818761361596382309836889354032450188915048304896502650967867265948016945067502235601712895272077819593545810424360440144671765912249267344371009971078706325800207203169209039714848881415136138919830146378622646911177420020372600386997980340732077027412133879527051931124657374741894574218732438637958999790597098155263579192035342531155858533894789961913742308479250271698785729304431714241230076516475331231203951185021211034366666305451320062612437327999399408731613079909695369248886202277128535788763042421765628697873057186852519018533651650476970196616903888934688339183256942338916597925768971460616360374384188314744457208694997295013028159907766665294225847984974557286248076334510844582621301016357135763275220940076318899225883235703867636690891310477448609220245635424905813264725284777068448578594228417387765134546156593713905238415019613852805828097085250133209588053340458007217684355203151003542587652160435724445500644273992717286797239983471582279712478796208421349591376337216855457593379516602957216990522873590469188146184828736053580484929537348113782440392341125187567578748502971485656500834697369034601298079372047122496204661137166946627350406486936631177365851545623667121318722991968085588673057214706962850400125607209531454541023265725307367529646418764359543215045939929332692137186427171542915791995828258620495207208553029437873041289396758188185897647749705318652443275308430545288847544486061566885037939508414967946488505547353121634592896962972160115133747650908921596709973090315821256795387146423791287478162291851035800860990218334117383105079346828408553746728843455952400988707665317570365909871957406877514670447950588612224659184732253839886245420809653010015689406665804166345352932857528287019428048142701902226862327484287374447811125940019104876517100014438442628600202336630924283939996718158442967668958714493979060250430313395983243275952333003710074399757638084470585100177491610207430589427189395484486293868354476075682031320551144860668821667523991080071295144530635499895693540626822529751873039205678346564318426986744581286481626226870209593874490245605566171976884886670499630253240323841182165888128772181628203447639602088320258458659655889178434089369633008221542743333339944166732107699937625842725144217283961733932991479966946038429348587309149042226112175166217676168693671313279198185913857554012996616888466303908025408933038875868259997410225918481187935409268774732189204340431157711079634501516529982913154888463375601370205802833128923728237983313671684295324781354004965264975600874209709006938122101420089232902350031361704082294317876653204586677090422638263473767965382650134831532508851287363345457993235230136794260090481033354059030314898882928465674355009056397542128809158906002040706017661824783624644149146805299705045569283746535537100354251943765424626675040303692838329817330512945232869490759341237625226112765095660532561266932368670635446820926565341282911998164107829587611854747218848130032486067347017250472654887350586164503870778818994137560545022084730356758242542493859197445786637140189617331879013362642602450400894465829688960294871828549134018306283321035962864544939246809991699950539115726823959195243271281670131125551094545423454034731229475619250678979567778577776162772786964189033019566433343161742599413874975489778389054776338678208334670325935968162042285844431695300978566515935454658767894004555018563472744017699378529432470367218385552168966645485359059438491853311608062730474536348180010373735575551957872087009953919569116267301228345025424716101986767064363659159165754307837802517092446991482557054533398431983320334093871072294707219723823599355795759838233054224298545089146870221114833191806048885422344949444113523616969504636512534670337139037931900313577325549879346587762042646535582173691936353222344207119581465916787350987579228786255334439968316796582298692931904414774082454482138566129507556697896886190971523322402601402544313571960407247580740853342249407877991728829851971696932299048257214617727830034755939390891928564630607883985529451517434058648391758544920380514900646718674856139313184804271086036152674819803556835044587626539422882005660465560846742176122197689740526970815261950813045868842204993771739193773968547494260661914863130065305467338044607939104854134554122518801404000323028005600844517230498577558091760110258742226898144610780528263579268476666438452790721072765787063460834053411042359009602209883399598711390189914058260923487223490495136188327770249626336948323729861890038592346817017083265694283011444087738643477163258607995183830677435809205854301947995368987846349328993890895914744089124047617026503640059818574582344456233261904714386806767063740420806721280717308845474587913355970789685320263977608262036268083844893645732996989959594570337972543055838599317623556562501189257929565587054340606758707039689469138804216339708533717563148427354823331663877366600600747080629918738198849368939159272421837253120442021437359332958693697044180734928648217338194317567820852057189705564140949581692310384197708789752214189799597076058751584057328746894187726151379914590091650551225351639629478727854932692737429974519947329218708349973572269499443580972417256715445510623194065966690837342708948702970715484772670183336634564488298240092465177621504317525379467438553029924527148353432695357117481718407735248813043102875763257583950563830332083508751771322091895233433565879868701795997090322456347977455458981600675782282105058468857218150593230416044876247956365567074242251606954315380610818509767502768728235086299538431125131701291555685485106223863213472405659281844286509705263795838032860591431556202571029243740072169301221036037461416931954569561505008941873453498579564759706469155982766065122501183511240846382719368208854914105315351497717198269639397294416351780841060672430682397349911577399447592409511824587000459978600572674607833362665533140497520829977141961057120178250068525198037241567667694592543735355093490721299948628966452261491846022857806386784943138990891248888586625643033231984256814312267705594495761344864761649006876004622443973387705256468374584847626168425127508535938044840401559907438029175510423208263207510794994289091064928061418438270154854676262160768736382195961224024509672133211447437914780426836456576383055016212793726785558721049177105944406310576954738845668243966231019902961247913995906844343488308340337258136807775799699023224109289536138461735396356922730328295906933296333974671455614632807253748224193074855109286464002721268568777933193974612640786367271109683170530080269247557375698545539709399548807207872956807745250961293924018269384780817397657734779844954684001192089077095913485689634578648163603143891912662811496575157899847958965847298910676336527868688421665238766974232127171628488943241955955628931654985425485026699089710169175921288348253760967405882132864042773110770182138871512140352128641695470509136303283102739465942988695411758919862330475022784944089399128479814026012063852356954456796292164962083294062066714720502886692525891463437926488375157573751944142544107401662001694702583803252217424238157206830661233383753393431353743414391048444474451120390704743051885156864435864087662667911675146518087205145257885827467422457913370815447237864419747358971405153737161997896529395865366641153568379880960983743504874579095903185445985830043646232049171228606041923128545091790400855735458406962151831615371344390615825603640375920797011016996224550034904853209891893477315347479667932426382068125893841031630252366997186193235017798474326408874842196274800146248488733560515916594210817461704570589604031543242354469935777950918390911747039336063533060355501118610396914085755840030627033367567686823710014352358227365062089327224459284045037402817478361246091420607816396579616741608113614982971941461037135135337649703367397808453503829534528644608440008586219615261616317655886923133727037722012612666104583159849486710706498505824774280128058491196986400025207647467806465258483659413004721585505823335437181014652078060096017480034904575923819815760679799197064272086811005805278831766958548376619871665326797557444511353222649179399596525902256456355343500090479897970522188317698751545096683427983789052043444534939487391763120329465448529022954258286487037119383712483274163860370923775806093894927339937266003260325498040181547783508802923559347014268997815384541493428169421968711140195444451511130304406624812615064810308159407147632515962081563293933927017451961877537032574363935659797967186747044591214552841072432996770289070206363341870921911727785463094848487060240116358971446060751803799454752668558519470624571893840508695708269044113268613361420559519824350223354407205086114023180860302017812397495179069276202152279884676384711018034188370015607270255420062042415139529311043414747938417219402563575475211863182384167743329993162814849184329429645817000901584316251834778738117538953793304168542953097779390996267776550437706932335163688069668276891257428586878660395686503928022625291233405102175378473920477125881046674530547543227281649590130648660130407128407085974793130665674301246958007998973498164071240578761189378859056493354589685957416112174306598874009387014467885463954979831241260546436422711427148702212497929689207607018571436421326843165181949842287609049918736899632158248713181230073955475797917628482452629492270118807737351712278343334624088598292759077689326672421418074294389937635635152536729064524393525660103374525842476115618608007496535347993340428354067000833867925723408672363849406959137509844587223685615826238409983737428254687280663630075706439372226741834822225871942951758568413655481600168682802973669121994916404083618415278650513927588934086158541737845267134176003356908129692557079460787642408797600848180071699627345135961940155377858089155823941428745786588816808741627468084882082171632763921752042132975270906872227972330612083459498138085851814882090268995537263121620943281717462668333843486973329310065431877791786764367369895951210448570010399215295475866615813118639597563256837548452832499433928104291878260209120804487238501865207107312333429941327887465840257486270883081418997526474967903811093755167806437266525568764283996039124536194049729261103036892803023324337833051044700303470623242966809192779805301851550331751000554009010750583815857707718185567749835675422729861370262229951981927249272304116122363285989267528577793098685296654838924988623329443768919185942393607192584011246659521382224955346582341392656757852775479565658805864042630771573572154427038331692648015441189070729929980868021444171869333292883804257185963055083222189342031149141470131436036534482844923362834798390598229434634112568829905942082360290822043637764477851880616185050935960777812403250504120825581066900493192116375918166489319273948451003300153774472037566176301801545625267241903908607598574083147666822189963614329777222067581300806322541322747652766371808255923414837499169637945985854074306714294258968804205572170016648956039407449893878616396978958113108914135373319748848397937571613494354965615454349700645748411943461830468913785220212793513230241238161570599451058941588399138068219078669466375532381401142218063187497472703274867795238463648892875993191673885416690945214103759383018265921914108261075700329506992456895168721164306736487970822589855985990788501749609674428876239556231482901577251705383748299543745306963160545882917981057740113096471851827485035575249432723882305354134443566853389834267773295649287459351758691956890870814284411826269824024024121742603197007253893930401684552114423433041139304159236486425247832584244422056811014107346621813925660991972221127484354375595426077541522496641001723991246878798148202393997611813883238460654957316302474751218936073303589538481501450051238697371635703492413393848359311841582500885946007539573933672018688703129636760752152257376955736979224439437661857540485592492886895915009326413413007707586784732692260743593793737738914976269819112967825112171094554386966077110356313749937624769026275490918803896961815745882304985468015495384263586569750987802306836314726316070371325435641293893802798829211702255519439742996210667158346814213986110663105283793359303792606270369833071891999070801935174428588599060199327305867877300588101378280902440612599784521975981844468225526553750402769433250632744535247224262360469818468343495066878650703198152617025209152837614205756335366712326154238440391080564624323737608470527712543011055879878002318089408754039902776180539141656301740292804782109478088428136438274930124635725323505149642181713727281619399859320569704966764576965824153184024281739358349610044041131988656558142998872138526791520120106372765991743201889051986080837109521275474586310601485899271674321090301977012503734589960596866595262785535737864838046788698087421893297115080021748815075695207613289621707128784839547527942429166187115819118961959166030976067357642755537452292902647623428863649666962761498433460776132667130864198389678298796413145406627283581812761766431962015709746746880651367152322878467433888615568113695934731472220035295981063318537599361161057003631633059347518206564677527233875185059507978088656128246365701307720460176016410595266345260762430468355927015212031601292344589522095765223334282013117264266176221254805872276710162312338975949169279096027371843454514384640275311484734687256772741184092650726902589294491648257661700197350372589822397512281355906059695733231016585012947710623733649998126489833489854217616603868857749638468924574282028689801670547274884603688190886952774232107704314870238423120235007642748519914965400901040725696453470063742827685763953983415817649153544552218119639644749722486797452438072138241620995936841390392671298273290469738010551353040862143965364528833263764749870890937615452558581070734552820726026899072163797868485998619375992153913586342924365204775229722981439506659443211925811934523215220374604830024206614546394017578461558690416238363974955110957171618281657564502991637889094029500359937644978247045337719457822003677913142773276000947340477326878273701021345497392053817860451455830741698376554044468342984850291210727702109634035597736377699197726287398840145826330824494354535366778993748438130512060203480215745610718861460491450068797713017577488827370431888056042850085282812446516957139901199847522031501051383729370948741638238151128098005251904640631986128140496574316609206534378879220709679285269249999155714663132565108946889207010553812589198494025697499520953962974963321602087775999563995794085855591383763852325177171718850406707497353497664290048173254718820455779504134495010119800202704175363162206056476742394457985546358045152438333731977870770669946965334008332594298171726015616367530078092296520603270810095487044291815722800544603150256338246957344688637806427384465659283866258697548208713374444733512700742891717461414841524151538418785779342997843909590162368759044010346205129783942566472600378248924234571544074892395037568816556987435726816106726521786770457043309241654566340798392931367275253292535826397567214377053595359638794079162529539034330458930622376649004019212904596281011426229529347595227841688814554862480703544636048619811581955580423356632404635711166472418009927669050695149693018073712102188020280279409222192423313750209812699671278327820121493500896064901370371807311490910613391669206133370944341025863296793671447905102279764353818563582436976423515431638015021221083772922333858967614593050698782853473160081851515520656128662065889593042574178477644183160637696964744260759190939927179614438138263247047958139790141997440425023732459909527324982168416140213720451586447240886141884674705491176822466855662333477428406796450863800511790744780140192120743170421082426918059404701963762951836394924164026073822571793869602218389541314666258790629563470678749809614252074978710258979158943520173897164922712151394014349143669579095031665099534231353073973213366625615436209745747789289251339964931710153019572678813692665250830560816333595329157488446898696800723150499992621488797350884093958909014831080620520348403233284239607361718424977567676403428577004807002553358781433990868117649991208119978276181132447604383830096774728079222705830721997425085933545736809159998826952269731358179213410522786904399327441822356506910287956637567869304304941936965470256994641755124180148618001141627291795519926629944089129051911256884230634440192108605921444021848186610273315323416112732749690041304437758182258617408021823511709175149466504185720538888838342237227839016389555332568249208775427210914454884762300829983001253152517415841455108118458939861927775740792632661639960591700024689416896762396148070716346808650952666188467868455924505823703936888726960163124991854398544808855792769458550321035645778164595136836216604601793591080505111664612962496436663942591334639848305640290119610358203305273982142219804242865874570272739932600919388183287556976147445731682810406113063566372800338525410821147235925881436673332401814128248849523398932683137854301049533589260410145995921213399731259594836806375559190114750622912021618072104724591762685544944413868716327696593649748970972527433786666250628355983247009801564143339197802457592943722640197991730180968569811218883368390135767016994282420905830531982650083812766316805616848568904769620522153943467310507123999816284570026375218930267641680256566987237839858919731668906597579080226517796420718110524776132563948800732793655711962460050462407613354397197540314640237407190424069500642440140937954009052495539054636369732796889668767426477243258275086054390468568312003953479585098628411294576946551035388751044580981084488761736859962572555516969392977025626401746933813697087660976836105326738686465689886305375940218736942157589121773132984950955561799319009453318781857319161589804186519676153184854835221405096851772539343677270961640001733705450690041809503900085659622292268263883445990628058892225503927807516731318302228492619918356851509770757379507706840869842962436111824271594532032773011013552768952925952235195061626658249037862099448265866961031398552281585541543701156687068651749088284046293894801842163622813668513856055017215814822862375904229526507620373988676360936930953703526843911022804265510166011500951185835426292747495517279103667924255858352134280435390127539947444733092032071961284493806830194592301696290737346237701121586002804378580688802852566870430782444446104251665632673932131317547046438056498940044760516125652264729833917250947765891359124006364519578439280192757822230007786365991127179852781872281211255876931379238422137811920987734120574176534105354859439519374491161439581075698835268666457870480760612142536388130186413789952254425027960264818385303135175348668113917502877155914049525502579196711518961996889630192854667680084508860745115805344108694797642754283055444064130006402892236262937936705369388157033523229145003707812640429217386289186421552186432029324920067433586793502179072334881080015130531794020610006827679040028492039234652359432188890202182027179294032645527576997010798603505016826463109496705740956532941464645496096468341048055917582372095910149499241629362967089896763317627550353494825891430691756325993287849078359350104887619878245528117117346302324646827180061570238645811527362517968967646215434061021419858710972076167182435169770722300443433419774366780114705884873254069525620839044743684122223265762516648657985545161406310873085784973126152367303923385990795707355177190691845123774580442188087176065748896950401097044679627718238481037151801461731703487555555676043100816626037219920193510281820344081403474794611652850282021412506265603929952896285641728380162866542296557154237274862598130906838824200961395283746342270887488992313312587268419034462820547059521823928684499136853962780159483183533710950694907012414445913354028620830154625998779900458307600743578732936514596886360892949814284414718564695732921221786477142945115605727763074120423395135279949027978826318623063162467042851152836451300760813307655052760294634793010579575564344584620661980427344069902359480017500872570387015759848405137828201675459421617872984831025228391662892952420437872892218417622352854020118089719747443248571121008874447329593760129432839084189676720365440923545489332249349425501503156265794308879189649497054817054010046578627630022316707889370806430399596623891334897985771488635094582487075364898913621779027725057481463941335854231005085350924140986852199796011111942989618544762590222027416582128156550217584552616609415148165920277010546658658659570273073989196024105738468299399826521618448962194856647961349133102792875062471342873593949198768512455236880080483169071765309049839549983151380498854491092052416083485915796765731669082210776333108685953258118897201549362463656775244074773566845379444375607686178696173865531294856733741281743472631389339898557675053137771919514083462092785706286750607614798053180428155861024733842026236449607581295291428751715709281540292666840625400095069941187613645092635822172588668981494980419139417789909747105482957319482172991606710164285097471328236265421686692709072725683737489257075395911777568453254621981320718058708693275191739276801963330942349098298591270846411693636008905944948491661131239498218396703799984018358818263730972748780401185374256609280484755961376029786495101063596718718057680866717304770362017363472693277321978690430718806120735440052502756877198791283590376643194323067625088159039275586760413674738921678548039893683768247944030140376376734526908144870951324777867494920623764846529697567325431714355845926185641271391182555558799409680755736313938166063353107553601646666137476010052348276841240784232017238217346225788868159132076877241380770097987397568689371909053464261588948687883411726112102724563717579132660478337148332748628265667326524162008844811931814859825852530920476747126364322236672799173555181103985310163008493679404590601757858133901894594839432396525760912016757815758136239426427962809611430663332577298111684027206589381218406423461785619875209049856359182168872323254311894713738823618008906706571315711134136589065430233526548256951482845116094443508350265782655828991480801006383138925855050225151426581056649730756970645352210582871551891544142643977964807017308688719550623211000914030682574273837598286572516703782368824847241891881742929776069665308135176059954516787601813943437413767569157543063232772273518094584869998160418819704880445135785479175951165862827865664198496646222918282418689862401790451732242481747340748048989227519638365861015408005608272256038319402846872135724008392207369236213918667031333644468982423187473381340031114758694943779997018441223353799421686675364410202413976396588442087647059162075060031213116415025027675429752572933486908027775820535830907343485076752881628752671310028575556431367176767916810385535590771118402965541485444371914445503495033020060506366857808555453096095707318741307550178396779081539483696982488987706045668994524890640474980336095639339940360735260316902960995604845984287724438814461989417268199041420191042620873016216917495066652289157860212868693459676896189919438328088783956144213559668504721622573543190927673679069334283448973906014064428377986405673905697186024789678156412934259384932255921574157937625100047325027612263278609480897062372798134027861729845107246112228367241865426914376789053291927583500326499845708347717949374671542035132516045230296696367322599604004083961499647018261945439694806065514273045779689450286112712331051674908172961166006911517719736639047363000718406137390320134156093130894910623451561798559186410147233909021166948568591949463541303950288152600335804992539503707999284927387302718207622564364926015312418768305663659269539311925180057544424522119903808224596271976479114280492839559815626836268288413611617244099886999735893036659307787611051276116000694211774279175875644970769371489554234930144547250342352843051235675884327051789080738424013074035086536519666769019333200456246138277509798201182552251106557471008520762400636223154741153618444724218073563392934867455568311071763565849395875083949899411989108043392222609984153743551853209200288101248357566148465480683320649009452145447802709981999750334928313845855022481779970378918514093269284853847614599525695145816692727789784132542710340989024647307628715587821403061380661639172509281669599250389743729888549879912914624596934485958761034231997407556188238336883867716922932486545325492255748429652818098923051195468758122620629976892975519576946839312181504028151244046961850168266981968862401550482843501468244690226541243697911495282499522305704445731072022486248207622461796884654812265350249127974114570398076510492025510269306153704511289482675765259295633752876135958625941575281673629000483882976753081872000919652507323720320766836100896225129667396644387820864436477094281218665757443166173021286538595425289838384811502192178458224361069397435250903050303648435527738995188144012686645580773493087043055945411351944920378725643621887607738693273818978835079589813030768246534341456431897560817527062102617520309673746553114446150556847022035895801464184400940337364349765442825891823720438782469068905615324779844758307648276568240741705373846531454875927987484060057184141810324825877525933402986539060080453387508406489322376904183698761961155041128128073451130116814452445339256943000392350150279236537590448958033925975573908409279648438287043895429158222343723954130845050645643408156824481467986500741614301369843271813076855504679334600866811064395078388453890800772787468369403596820104374994435391071160884103616778720906775723834802115928065266419547936707636901923885181819844767294617752245432903677247818353614353411604575824222605808598602693045827386861178865903711773060214457726321342738108517157407146803688672787448873587648491835553180476857141727230709318192277061611008032365397553610975825571796809439242312769099526080013606223954862573028698765946043666835521342438621242330815091151058906329682953284530007444794947893164671482439069265364675810416843224583670406659034449456173441604875542670310772004703295543486110300958281872694209792329808700420778787146376394416264596433972556519075731885324046133312030370157234554685361889674552209862116437265539612502451291006160606299758548006506696718069210753687862100944949355509449391494287721147821477826831240765964305525837048274333256300338536234829660316843519664365063517953229252407792073142487913436289334497310978714414366696257991807786274956017207134407433552861896636242786155806755187455513693976545723534224236068808616831922156402696269280781247672199027270963986100171184921071098333530075703731117121539714251265904729919693103273246483692778179778037862454388396236490410189805301002271541041140777366226110604601941701127069577901991277616092376830392808463548438082367098537396355972417202505338027507331729320222639064271155093586248683727077425573272407846717318669417866610274899246417236267134669720951510089857560848912569985031223807552035702993238762676129577542495157960223945966476160404221704985755379944209718548481993821010585330906394023113600959494942484253426882694962958614285616608158528311779160585945489284844804285731550241202968468546203765511965398405213563009778955913573323108551370308345731885616017885863187907949698732993569529080315692996934476743098952754125825470312444765160785556315104669428714791618951434567598199747291489130877367718779720120249318277413907653675535098131005740745661471419140288092999746814277278970842899278831329816233827032037151088196088008655522067692995337185813386802927845429769746738749701243417120756962338517735888751607149415532870037353127307175911910118876128804373209621264493109734643641631848063532298364023039694185203851040185231844570167332847250132249125032692430518315164311171775218685529280166877393444609169317832081679893060870086417152217505207033722424421490406980478274806680825402936774127010601781877216809919904727987299679053015439467576918045892108431800744726343190211466806893031114250033645920395757548180794762027648473728416600658584207160800412626959462554597080713335643654330535903030423700808454188687301040139033232310396806327804168083629825121873564185117595026552345701695471343470716508294846223166955052364096217033189421328529101020429863163520258383250823502612324098097059715544418614296746859078630587742078061388297706756085277843421538127638833237619714987309993949738449385393963987215221676598951254733273205103450076143450123013412381279961445086664345574191014791091097405252366878009361683506227407958640122528499722968384125310517418138870625648145669005646110739012447687032181002451075823646499906262818499142293215289877329648343409903115966429966935627596832999898028686284351960299190113009175878991324647450327234626222971950934559751832105949138757439828417920146941812617455894373425644602596858974595182727107011421684100001835782496542568275064330082273320660081983804995981317642490678867937169037501481523350935403304056320644827751104285839004087522023051744153640428125793153927968860987448066269706132851814856192104740039283677712982304637836102011830492750627707494872404939674535020966343401671188365025989020571906070212502157186450320618619014023021925164295698586971135414397814625762407456678520843165826710713687848523969001979249805287337862039075072777165725969465398486967752560873621230380072911848086674402412655316223277489713806465588217241727713855050994678585850184088035355452074493981248473640158750247232205154837034349984951433752484208293195846356519915228729538298625263161594229801982982089427271133288930432367416355054037208380337702479448274296452591687985323698215334586880474921234454287556804329604453452429681770760954867365013962110179352238841562472301473510258556973380444898747298078300232542786959383428307949324108997425064158325322862939896388316872768156406407133189153446622722790337840913307172954926715849016510966405232360191495394032379035535943910399050009145363205148046937931695612400149910167555613314654367723508952655021539914791374401675007392136843893588984283696848445240076496156379027553576508515409949842458455909609147104504649937376463657415034606393243572307487206324310239538670827177660181785284184738961803936170102163512273425051232680955040335742951841257038598194950054813625932292643904693614771990050383422077503392573334560668308978788012520364189297852143219878868158068013812593572555285323574868064506376446975032978298000802192830456951898000937827035367867193680313835219652634158412430804825317236252037894514345955003206528599267447391637125486253914501067165418707145683019566697841552058454713698160907619918148302461327966524304799394921721167333323456924344990895320305034712421278156691976990165814531891027001637882101433213610911163572260439957221050976022484187353651188924235032493575311348794567763420522309290203943740395611537577522557986681576135313991794514789747363441412537528734530863210868043748885129540569180130324530432594214039470226589228302181665087074265368426969977868310144795412433524743377896717846063112225224344696538372402573672506270464939940168692363873300112845831995992453597573539609403093990988922970995949215644026184572432752610154806288977950793452094451584793115918083072124076663834877356489213360661679420207350396353258971090391871931606135417174668300590061131105050285380022021755847576385880358796258256765800067892431824872481491883103377776196670957914481282573452852567984599526347791229948480007613671267769464401522954225314563522859953626685535416096562694662470422294626977234931931086715984733949959550283436457927965090460443061175501946573911752878950983483678613108762292418499930352049755391167046061036173049143162224667502439660250621071548881197519739538099112787019353078639351144921004261868777977296873635564605103921254179097153255844988465678085172307527257221663052315165661288271745600883660494464962174182024510004677231251713145944366967298377230706174556915830263068474549219470049255213029259368253286956492126797792096862043554524319147179644585229638350218744512365980852990013970317873960058181707893115616622463530023158493004154317274487968231402113746041522113543790749970513735226847483342524645836408599412181596856804566837294390731539536846521921778909790643611646840944548979113806164225898117443653613453167496848946496237206205505921265783438840811820089282743410679045047068712576064351485675181297406898252769107852011933638569546693767733086698541570032506734113348661656939042532017850992989800535493190212387786301803299153077390455627482143252207258749225659197925387284832239477143556389080817027689613094678434040619257097711733443868444985720507273615307199917641759168458810759211958589647621160629322492566170653153818225857371066965328171236388909828900912057748291849157242018551174104442374760803399691018621879871590370393177782527827439433102478521458379842750884820458748692258552781689548590170031703947270021751325060759327320618599487670325625350887697258729876773829125289334709889837635467289135343618684465749922228296509996668212142186101880096073427544862180603155926220856891412518064644038029070288227646187045820524652566503663855938121638323426028768026636956870965909426611289893361204474489750556567768891750885786839516834599550247500378238689307714674067154820268272144986345837686530527564488726404381009630753870468015798150339832365551069470069650397631532499887122900594810872540207619943825161376338417072609408356848459541233484420355547852340492052382178803484969964572467499159746087703577162655149780361714795820426666421592230627905879620057454786039808482036167253572519548878320121216940413335096546544728336242260954202453694756122364546038547762005012700350171268028831408783851892986616414998472126879482132031374104161205208189574767315173398635861553980178099685841860296536981141386192498811773559219408717338453268709381624667411128010314561594733794335242446109399149635605041164692784422368676409622898910098476642945095091399284012900634564831551164571621872079368681442844011169374155820327142835216306838351741463560927986411749055039953398787046226509985855987242634456427356642356925164588224470547158237588383792312665188653094171984802833334723397035908967582276313972391742020623152534491790759386857713250287469322666784964735029144472011948797807504004161127548794231662399842625579275885440219181740157876402100226972359777655594392402261445444203403811579546009800348360505073007809076435900606001856605610768712730565991177957087164828517151359928546630367289287620653886124062163846529075516353579640179793248186949942166300981921249193137244458292305413327138951254870869234551396062638058753211167982754620558531722043840374676475529006892100861634520056992645809051774567905419882456607669264176923709075095488750656064124844384818365632363397990702472772954714234111350661859588833962269652484246744832535922619651687704060122469543578398542818454656528998474025397367276908329096990755554988006621573888334116651478647627931791057478939722077555889255603055699311347318244598064523962357727439089536046625069278487964615557205297178042636113670884931032272101663845060882238132202482712413741297990449590814303810105105360854464854563013259110769419913025539271661847568406276076459909726080693013603849501993888683501837928456749999127251795322419429116296654057038830763406840201709910877622655249384403469887512578697120972004607975869354008015257147902600703865349738987505267891304361071707243967850367283130392130800577466557066802171616059393151746765535003584283935036529813739613322556951273456539358932706608424877095977032716378005041087231965324838672859489723493842228334662371889776774210981229389390918780060852546629692570207064597240119761847234209209301463783815877751242164740307980207315346360588311819064750483154553274954807710646055968874789192222420218098573711050210951527681981040353829260245517126832958409475543269459979513588265290727813916266901914541503270566197213260457129211307549600468489287323856130067417220598600794822982000860791422143573895265910901883578123165576242505859540561070560942871399699893923703281675135703900645299108160732207055460210791369202781114868668398256756105748261656567873876916717874137505359780517508283668105678727253018334019356462899210909178152247883608767405903276754415682551809829841941246595100796841953765368058999073621845451407742358910924124678193687928019444724073993414629794935625383923947880516270133524576104955717014459585385624107071016809480445040875930368220253533984008538021804875084614305765219686772116740379850588279366828485298433884515376119832583564269415082344615463399783422250304667337993087235148021371253516827528204397041914301015700117493707144140599673643838981673966642726425887515169459339871847907732713442700908578117488902040489890566392788821803777299632359128851986831229227706805128023398248177136967889036567560046272714609043507912176817521590389242614301255780113938195265606339178941632823246669448033392348014648810680919976937633517716068911568225735793728772861082178757613641503351587490758234958647378127644056045329101176771497634340240408205408354439573831944863529736080585084295685561448400914323537535073155180816220254272423345305430579481007067413774070407800695046302237175445936185939703229870711803351841602192623888592027493028927509113262289963306956389374129587960811076582288474262792775023851286431872372391261290588956726646976495523438589177908826022874968373643973804042119325191505607660828276241549705496095290009876622418315313255585317027479740541067082207836503419093676507639633445048646918394353672935079685784211562307287683883737947391115895393076547885815978497585749523280667756981726387055672183458505576333784444858963081535389139658969729812112245674831195188498962449234031665821512157160171772603513799362298612755333015379960295908787207898478713004200032909395375508926132089566802181946925153690749823937645288990081621982903300547328525149297568808113695669356870803847844874577895708261285300387832109710451514392692646603071049163507305254240522917032796361811939921145436344360579219737654896666851111574095218564652862172488262628338446994743768371065657674748133963668776799965414867467007821544956204193565746440474521021819195507312412724435917150140317528690717884473357022533171582115209737487368445688838868390325173305467653333957084567845140935935550341927216381996289025333314816984227883317660545842275556605462890494058965262044114876662291127054660782507479790210422905152065868650516155323180966537236666236584211005645054581266780219866056248077392567923401256572167815273181003007088090238652053142047945657280034594498187914204575739486590828438689403491997322523900916767915158351057501245442765160969311070286605426148281147317537048630982714335682712197713092303105210154744493082175674480492627576000026950496057695454928908833779903910624470682571692686298636052265307016137387912267024605495582370205987131720318251482715048757345912132897803868838563299610305691232912625784812744229822176969998756542293050018801852092623586128926404500561798858639413849678124447787888582269521528618624415101795143540214518775285910048710126520263157449512268775809015579000910368111361199655251532838405251737565064308423978962634632218889712441446371004622095259240501587135118861605586039580006657279731311010067927381792700916640254356775192548316751849267686650405752529686842900976874894474412482833279167962653864681895881448215738266898024433608238761076123293413339199476250273748681502362576993937743887007074140855983319234198726687271572325650125234937436072975807122101187846697202903540454316109309715804920671178081921088952857933597157504467876626464193325170727787653717209463047035379838150133628156301979871827105256535567232511096534529312045927965807597407330828146454362229241040476425259884226677257822848277131684814083697627155012334249255373550111975738387559644614742646146189130875037014744443024470428666329787514379956732599481251950994973173556228104379398662505959790812652055710297873438655342127265154609718414323711188077220951503327329219437939519844792942076867209442918482391038798282822663490849210263059558610174121804104789302914548661906396758016133191054062752888949986012301462760410022766589718781643383178851348614147985988562120255875018734927895617783566800941643595913380039472487652887280386563005205112323074066628384096971034392033489691118022072247345104085206840159937003250712187330716271544190488091104702301075563445441299429653599626447250598543013918430497364428784342563617434296976724078870062557554443349148553106033163960263838192276030441660197041745649260230299147102333413907017888463883584520264134323396167082750134964545585802859039229128015787296473292559091894993741164934413442490310249951826534695874917160907893618551339108122863047457933774560402448438713781407384407977619876680637445875235448356055418731839890347291231667353553476096765226253889697792075776525690036061532078831382436104285175489643563373551346056482797039386084549227830446168369427731613774855470565772818140029405962063311383622337394293053699728466788221698552039218038578681773308062353983823345759381218895491377098887047540863596694140466076704670020799295075227841139183458578195955368639402361569199974886748785463488970226454646774373823043992785032562811664411565977245345718213324395186952578739303566640797050551956053231654033401435241101699426242421736110070998975424699766954125082049090608352849058341246476745238754616274573164216136514315359675228344559332633464371201208563774158922916265131564566468045969780817610835508900529576289725337602758559469984800688593771085259623964834206168476398846378673104708763214009983483796271572824270110918455902902779930952396923014302282962129617356171238877529846704034345018387753474398256801881209065836243827940408073018127014847625933515760388905889639951372069840600808129934320410692805122868997172730227405788798603899162190430645112709403369905708382375718183097189188618952202264019352063971498826316663935904580645502151488994326507386545241094342003161993431539948636804026773144196825396525997302738850295447466027426694687424489753487245103780791536358672374138639715555071608836620695229849339382664928509097172834854688663823710949667212303049814536786429737707983938830510042978558201194816595680738167690362762685883390165122026614863476480806723028506202219730062761079682724591576231973734464830715916703701068350713657066522329871043147673533097490723723911677267738018709116553955630718177293256380426007346968115415204174019856871737656185745673798217590280987747786755978222017437309273000343560178599758272598471689898891920103816314010262634525765955924507474696622415708942900831846903531424673839761159005694989615980376630153011102807138055938898980162846978823136573191423001656420255858191405852681288768003808853869100377123264658008354872921476661704005303655175128724168492670589670727759414058528718941957219218030146429241216631781864631953746483845127975678682281480765223652397811247480731726391579225704225845975753795058794772032141903727558375120980189049191309265708744469367846548096267711276400164905089145248830865616201725914265208115856226848598706286789266142707426293735989222076228258399754495407680803251697688984938355212543226430384839920046845966140291385622205584276920752252611442978149119176676056687873559711925721010796602761721817903130283430885264914006802062374695154214540326512516694302552978970148689317060800177215879372302172538784933800454441284454584403238929977822844323647537800035417848910181171488647127762660909784271051508444425063803072998890081767459177775883201458171648276574006571349002421845366715661033839055232356449786585129350261294505852219904505554906052497178246240883869023579600156178313961864132678919862666845223813565017819854076884430304384680106330752741605364889152880817961058982761096192820130168984057535899791914794240082202639397798475279395146786905202083052260427194428374675964373553413475448107045002400323849228821419582034931967518309423175632681798774379021890706350074033153463571926993887650223435207655833370143945432783562982006404232521129511970274539174456805258653489594333867626888229233594189572734739468386715184259657606090135733143493376522121522770148185036198154702580634753577299283394641025563359533630526022163681129029425817899573272198957943048231260742334772465717212352220344876022311939360519829335703117287996697991001302921863737321737307341949634175454910943026427984733326758521979127763795263044175224521510058217390708871727270059884136272551480996318472294012930976713257708556420836099624510602868964577717127243175629064414013049208025908190092830891772838735945779167689563298018425549114225904933539975457308046320307300928646337569389526357163674715040134972659393614890054615904756164254591261730191544023816841217323379604431966056746813914458175928808246296251799117166939575432817128042711631842751214785130346070300652864400618380563125412245148231066368767525791357471286165889372396385898367741711712391665204216181325184515126307997090107603463800221044540651576580760344172371548014135469605456916877407402199721287691158061155902262414454917230775842490578680953681835216589373988116334399860133804184515501872146794439433580269279967487273525616935352633462301770960825077784272896213752095677577622393947177318855119008449733183862704718581191116392289039526937576604363618252990264661347062515637357513951971836387728253563953862384885600854378912790368073795524764526761959870728361714026719300233941301988289947463291900401162752504338245912743110821003723099683850714075799358420582967258048333434534931520122050921522068265245408797401611786715581847211206532511985628403812297928514889568586764151097593259152248458606708896488895671995444289797516787166130139855888001741369084540582269412961362950198129786373961106672320298020912290039081394280868981531801397271353553777769594493306778505466753248719710232089241308158429590604943851987378449810511408344193747834830413251478467561535246482450555080081935006601017890466835039899533050781394248573936797850832813074208754704501656584251007568953944742173430897215071352624564252270465394157880258125772015371104230502325020018541617027554504273140365364748247528416964356301728042700215809118214038857481470374235001424754751824322734666683848443968728194549903795007944268802692854304817936365770881336366640127143619836260735420346990256193865865013845115422141257301615719260399418578378418144689790818453894914609051147541216873053466755135936717260481266388777807113426725095969319315946682509361939973560473513955550512995042404253127305570535453535165937345406959712146006219690632973786029537509074459586399867930196484750223609636249025868869130356250640545352006811727541398630333589492724298808178045259419696238128702357410948315915041907639656694915802616989513176521735103866946319377040275994071527219641329439013951009419141369703191899855289800102915441112957216054833376303903533999311504934242375912022155716519980777272374763446642972765186991658019580086613332503584822321745433041765737249452737595324335320291393648762164834184302954645919428062253073168385652097942213643688254541633217620479543622742303131501007391736094024708563588910309764828858836472525583706955486906110883679329531682686487935659806202324508842217570461821420324114503766641842953994563787608638859367146598982682283394023822553357842797750811804768833314950085562261035770649725302013420755030761217060541151365350717626694256035592745885650714295798703414068447906734837025332871607898781653516799066694940168292176030102914040926078380153185917124080122813534979468929126367679353840903424675423566132580182845246909735324805063104693614553213932975276133003826981789836038375278476655317267646114571160276951846735546477246441861486982405084823422841791385340863417955331227388148602850269604851728517139418720758983871220531086100370828657204344514991248575708505927460711047356199555116347463233287700300067615642641540011786117443536799709463115271203198127793670540070567477541438985739976366407237911680222554185408169171501940613158998923162205518903706528107173028883392019592684290368662873271599832107516623407335705064394342870149634112641168489357287671292432710538358284087258220213119000549577027304072396277525462085249035530676904544669152107124192696329625458347192310412199188129280038251952719031812488643721344826357620160156171230967679722384504815771930855245026300875908322065508163528372342812263461177947564768506978907559572834918119751834962028096468228239566565268629671037070824186296084303822143643158453324110028661907959730818515431171496732696582682243820774898717113931226150301083929255993002213630564287005555054882210529257588664687755157742804861294781630290154292844018057456926816174080717087286342654287282802894065440304328778931550388820850634741484915918147221547994405428717543145874452644764178451845745227712206129202191013727349969493368643253860741670066579972118822791990443661062772111047757467703307127172619492655927442000756660959337404730274237358656992345584970317564885371458078216125754499420442777972284421696935290923681849958610543082329018307958365657392970667202632073259374321257172767974131639338701401156184209284102442107216910322450552931508258672971282868807825017705151633007987599021197516748211718133219486936833146346408482732541106453695982207160964119478324156735475575934629252203365397509021899206644812732685215476210997467666457125989282750142880347726970467674371532273576765818774511113154881640078586053939460939141782387340146989433391793728680873864537873466770602954453033494420884019007734452963127038705168991045991069490003120896592979290870848966135119334413811784050124735425329055734228567746401485936790773000174016904642360766440545791911328710510481227141296304375781790277521612054757270229330365606025622151595291890461653175750372798591326257903096991005083302182613004886199102134127332167471847091252558722494739398428053969653226641349796757273452015540776824024131382505371234648138339260121651462356803466301733208100273553857735123607135792493290286949486261873454888888322515879859107488142980232634145019783900800497418597046333336508144637484442736402298137598838846176836591538983221837544785683535595475204992465367191224143180079338565132533447060552667664556169194468115788173031179924300797168461393221938777308258759961000620839864783777371508990246998289609508633169018416518217095223323521379503165810734354501849612273883047544386052295526104397101046916954188295224703183202314585647080723558113121418935379267529229084781868347198709842158292690259974185986206105857865291174917922045803157822094701534389697880771094377927762109986456816983570147595842414615235580435931305612429065818496323062569191265181628070731921766378810232079782083239172552545438340342197962437014796298325698030817981735994795319248543462519745767322138969477183265695809913113635192142654858741793806703909442631138039865197783327063922313978501646413245293444906090766609821862023857156034016446411168554496472564118576371118153531579398088440274670029386195903048868582071708798527301699407534261674751754123535565700807198688955636323107290693678668323210839631081559832081866815609728793321235843188834101812217369475430331777203699689200563221550356221088204856766866859871611807003342366094444160260436538671430806399271445176686270165629987993313978103746015625041691840165311956176898715207422268834358442010984194559839129474967662366213902688397120282190866936927807092691630297187754067145645429263089795058140023300674010624689437471395697249962770248421386413334000256444714286232471497106217335562252781540234456730400443662142050147397447962295082706617240281412229431232054510658975075750788395117746907022073615593207238249380505093399299800837784369393651971501296467263948592904284285917398410678284295832232408795630711653795122162721063096009385697861127436757732123918655280911567970709778287494653191649605486339558479234333636024584774883113979955280731679010899655294638076125610262805618985821668817003067481694132952982381387383970703836482208139300619954159604746814863599425283544687495608599847427844480795325891703878978847443783357351699054373426093228077328582873454190464576455778892260213970319769013140780163171862169928178064512009932332407636340996401265930661842856320535882839120894904349367304850791738463530987331896749621161654515197183549608144841865725835622457335569697383578491990789508629273146615387171492248883326028303174301568420549472946317938832447626430917001149533531950997355565567472754890105702015841604954853069351866333496493128653315884869127653018787548249675710748820506318252436430247554827726547003596581259608466904610138957320955297107496357609645725334828233263504669600092119612319078199937667557102656658014102826161814821808354607133184637109434446407032589873044319999121923955195721387561805653249490418299497115215831862093076582608051900192163438337454317159256373104713984982425475426746609444761326900501535171203396943050963438591834955223231626898809109089005000289636585360878253052115285064676894677011570954160268039386958567639159633660432730135928660086604593208834864872857915195305531572657097048370173528429344125416059714866504357524188105625228805038804001978629997350343119123150144939499592735308783983477811775401723663412132495992198340639238234465688778963635111854826316821948700116975763286942934123502347404048780770635314633418035809389130843274392532330486606202897356474301585858731922606666925296574607410708547864995053914371366603660265647072062286246201748131877867654089582356162356790140368462375207345529493716232297633484421122709078944005619951063307761371278091713882946965534573724298635200044810088102524256057369034474019690355388255675309061767255291864292917909149187069948037384797987322817868716528592300200981855464424828739249513198709611831737976638337794144264589623210751956461784193439025939320286512922318883210409314869324754782723383475823938399552030078863971608650932101177688750163386381901272474506780793665801287963481441847210935227119494729909213781879817990591899085439837263433034806534418896494097933031343455406132068136514764402510417565495563956304876521969600507053007838448453704812655385858307116421767806589500867270044190643373053019267848790266513095461939176377328677068391656225648508581498901950286218759142714021810427461463106376865420776771347291507942055032348051782800426065413304184403678591037079159924001018333586897578339122654025211872144277376336702601842291550777078161183056299772791615719029455894007519954282928345701426887285429433313794369774563550571043708864570083911589580141506980306439338471290721529326893164829376059757945817280006946138659222213154384425786294104954015372089409652310135188132918136595879292779162644735294193367267783386330705385702293006363539627159178575269440154324171635316726570680150430947669008689046668876380855571247646186290974194704168685696037254657821771118936513232753850449350955443206746157667588709037897421837524048911850322392633400018226263341188768282364319654434707980662200462898495541038906425035632614541162454404454385499941970236311246485522405912032894264169828960462672587969799698564816190909472238630803301978968045267411511545121563675595692894249234329552552495911728941835010032570693675555290416701166821373418978115751327589620737688833602555745785425130156455133554582960733941270360187078581837223093478511972564282393450324157162371487197932618864032040507121514321189850866784278993033345619678699966343794139146480342342198128022480040000318719062766028486496460175979889842336715674423432503517588575067827491161424520254845303367502493207536535884536061640139468128252899453588044723200423721857250549435389587118456495351544736025639077937968514940074038321148928974462895568490454550902355803570878079214578040161097702230771830420249793077138030472329176402985470800556478461522905681581289443177630762363247515747536848530434270752922424557718317471722933629068847924841827467833976777258897195878438809493408946350662940635059177916072804622367525157579143868202544078304815894396420234879909743294626875934995117266795335139805947505477943793546142147565971648795332917580700238429291288242763473245355286455609282879678574972435617213374529313112741457219730327089815494886266586847638484322456582392411480775054923649422229736937980027678534045998901391849431288901373534355144707560271022015111023350538894782608539275503764950045145137437487630955851587256729162850124568385336149026502546385861162359888750407709956822352960450509024629753996217820786349511430070610604144572185478324652986536868266144899005317828682939630698067044601902420576019893840425782922655378823191307611738562899417659226162075687738646730080064311074051114263134553127167828470845835006456557871206450774528470333216048068596709965385773321652214877880776670963257117489932416875830770053725004943660203833642880385719912530300974420446165642103923076001027398096691195891339583238323125304153386391043995614804082006690329059272413326889341003363634596731673000629154383309508034495490259824800639798126028020205155919872764165140646700501436359049116710695013953452234043972073473940296920167142596009632882094923230822887881842594954307230266052805025130533568560269535259292856646029351576075042025800071577023821725644490569521928497362050783445982031191724540406535507969621643444721801255647299681655604296294614055065496715923185344743040418111484663474782099122022598555457683745924941240413035989378913366915962144294749871955075807019605299554777687285182577701735611915922975011933631849059023951352595813508573657182489903086061473668036837844737370841008312503136564504262587563359315365117544831817937433851778085656982566325752043615114419893292168683134113634497787255135505685610824432767596288506267669725212101894389494309644587524334252134099072106501539918435612010310468421723176282202908433994714823320257805267869770019833641688525159310074844258366780400541356953747033178907596512271907686383526499133659125343166149300660616203784367904156387113462136661884694265411468656188088846828647039203976419319294354745532825821170060861102666261808801436997193291007997151543391179066924627685000859849660380260628923510145884611016537206483348048386328704732902457686364643988325411845161185309210026092832007383823435211239675287891615645524517776501928090353420829335280448417083351104664965882697626352134279103801201405584792031694038546478494593802062917234144420272837083805601043694973663772628860869186805731761187398526121847576990450144314601943992520036827285880268063196782839916944695816749652661791400164769644874294584412115606022881174336378440072927023020202534781559173017300292976583681483794252567760096726651988762452660752489991742791673160780585711141404489349845915986752896272354158674060010175174794098171401794668762691443406751710914546177132471970161234796638502132234315458760228430037153275628238590386294081650845175225776284326126221377799499376286986711819933079448110949892823395009158346084262702002715779112365062012053985781076633217185077811423325663689192188170346748570462394493552341300927946632809794222798416878454815151730004148210147894256869936495514248644307084503539983346234800132781403094136857723586813080209256268647491134723950976177288760603499942821431146928514867953301807682639675773305558818564935002178227670914404541881634301766321913629269202962866277696455453402448082248739948313159471587652335193754894251223042321051939678781750693420282674792270193460613387738917273569589182369104296093580890011045387804331206205254844682972059750593551255178384099733902708890229608822266118516523422002674958160962505862522095142745658309559006364722501763855305194848741471051526422187093941850420315466166843626950598272993069841728058609672925089925056363907051158066180413920394403058446994961301030729747393325134169206511880961899397048462240874099569478247312121492784420965674182641246760206641327531901699901340393064333492435572290733361397493704766510439941019184814299071693724598845178119138048085638609065883494045239029793015007169736411235151538001311892909336580841329492575398330153840278579040165343375430297016833163364892294125528090928048842358239156363796616919570849837011193364853996188109000838936518706007513348323723341153853658018014920684642792109599920975284978291814482172798025744915509700500098629572187910628484621631530601706732550477793750590084587273490069209712921655856760362212568712595078208114544805107745393958130539959248564649473385972961009133547668687268960313823282596720102261608463193909501575529941728456644249447618889920173380521096983552844811024049499193663626908410716274404071699586109835148056195466238665940726685934958215883294987943703220672952698635243473365399182517371528882283503789122674664818758226745324164142923904891938281043196062697238672424700058916208936305719417852839785157646669440146498115933908388017287052197635451361691717714015461675304920164514301037531514687415811254108546946255053194925716236110973351009196929535137489565217597765383014853532729101870627460639863938036056435429367326018727565539123174396412776288243090418605811196951869954080253784979963732688323750668757941806897026133213022721829508396936354697006617119783174009657885054100116598051574571378143119434336837452533032711307651385220380439910432112242890324368361377637926480744312601837626295765312480836392413177127386060739080813965778740979285787543227581927835951981402694186833037924987437701881918465209475834000365974897385627084992427136594281882391892900980481829632775263267794806699012900792790109906667899386839207731070562978188063274935972818005114971214609674451023858391289699822569599551743774621043506366684148796753891436250913128715653922079468060283360323365477993064337221541787655310218126276404315352212429911568583244070223899358712083616312190264288297922742284255862505022027279964403608029197252375214493371769674037351724161454517351385206147536637499791965376845720396843030686012704697878761906770131324198779685922114058170158351081294182658573618300364732935436263388792291553677287043389419158562533872066944008925272666437770365633333085404139234626532936350572241184515531630450446722830218584389619554107157848024813304741863092007814460084341178615924331628385629931831868148854738329720670209559455393194261504753215434302983867196857025014601059402066333328482585678216690690996523212414777514233972437602487955715980935454332160378659316024479063983773304569918893703976313787530387342093627700044944402536672559159923074328072765361106741130054799014695875997407141912029924900803839268541375859511395274107075677054372553425403514203906735392331901846867744777551382466879446775604274201054462893635837877892284521578014850673322164138416150964253429878969343820679170572458846584192336192233451784367821840637558454821809534941248606612977997964567027928188383310516949533991222589302972492013771388961039696396440908535626687913912741856678015618398080871384324202331849605770549802168890146460446086408141506236593127147134251429221421182416810948564173485445504242815413783812235429951968448941445583466881605115044723926737236867228057064401481012574519369530049217303361964885003767689359110661783084014076911721004556152950989090040440726925601912815380693949685161283985786908550826072263884925393105852257680706181739900338882399342346901287133810372288025921306279473722274421271690292027478029512880426288932401448154937092633250299493793251912123352537020787732925623998626878497031270809100569887161288994824716434785226723414301215101412489522522089261766392773221575009575239410220817872428936806694513343855624769920968474061536769982737749526019642351749855366389683960628377292483962715962748081190725445342365943350175943624284350867420182352439404233683907372777894565889535425285896430041637483085214519324327230903006431281831965164510969462578924605293412448644045242984519106679745669339950350537998091947077861109066309802532864131502400750945408409095739932731281648541281616801348741384799218660146063543940544970508348483160153224448930321686401189146946673986089350194171921650903699974146451431698449807761157986550433644558031097429305612628566822046759145708679402706423597190512603922808673196077304568098847290569863741168509064657105632637550013489535484171156025343388868544931967783431307341246597789542874825580295548110952000318989895411930721410401630445729672330407961037277496037567059824364788623245305186193156166868193987945003111232698968975091623305757858518703885787717274889063988298409187332738332188156553436938886783677287795070594347762079388525493202182945228472507355938654677925434514429150670827925866012628758074842124596164763060439544349980012078814875001481188228950707377632192399131263194225277322200445453820569098995653602480095035892192163708644617723302014288889113435224427270253245806611054950478375105177768312827738395555160740861799390186879173058222401903361309275073860265007970653776328498547303444884031657985128113394335665974991205598904607846467610413953429429168033979874901231956525361920317597134301707922648350199744337064378103712639655732434360697232825122475636565774612133822917397380425355830250244473591984084442944133609136703402794694190068291375408786846752924583330315460640791330270813235890005407112530941106434686490828501798069197457602872648176879830587992163055375425817932144399606320550157617670360953762681944512911550269590387003607786728181315331188360755673010219766949573308379585989016263011254298372938382168239531493704903889288304175239579333383507615943336958334036424357943731524013797998907154851724140304685088659048984784624552106372733337285868795013988688333127414710726776112831183233376582529725524401678284249118491284077050322309996395425099853549477896229996538450246584143471429420750392069084702839796634234843687264817410579276012044371549452049463065268862388248313428744371763598749503732649961663577805637586650006383197416985609967994687710919747337350213569887572947485358028088033073990358186950006370054805541735957917303761276047254406899071141455228204037861307806870788756484257022578008336843092887856513578717490204450414050097159283002084696478614157515015712396658453776100920240783110425651715960170370253406376372659636863779939239323608454967308429294015410956873191181196419622598229192545707960824452150487207309391748663825803898357070066179802652938682255804778700485684740019328007816348329562018322136973636504420019782225214841686027928127136439749558946783680667307892777182633719485776010265993146928049492047183829814384826127518124490590246230461451053804177119406074087043157836631301126554227348570690241319763840926574056575307445079339085635690425140386973705421588431978451309478736164741405621293570417417640129241190945655530287266412551663179260928726098891726163676700373943173948924846005966491002641053018560840533248725419101798027037328018159580881124902284100948565467942631054938001278474221112608783147815511108733561408943070586803609834203616733693224932692354859815004959682835436261908200223432558554336613795765553032555156604350809174508083607045986714895282200970876814994233839270910528779490309342719764614901674695435453977928885357343157459638519379500096254042026770623411204101067622355316779525649526328956954010530764791790141892857333928272473228422420649493088518648128892334665935008542374544558518703544585208243482691954969242429655309833383149306884176204993525134040022922930945116873952358554163603834889605281075100019023464362933290319458001247562196407105880199173556175664560274720142656525655176621923942224854753826517850603612835206109934128373270540463702945717902286401813182235035051159164558581540122226935729600363764247756774354664782267056753272226859275255659957904711994507175420745287184076466197965099632879540118381027610105303089841857693586215203216104824786222995392945843723398671021894188902964493541120371365300103647111024994166144100136518381018438255848141459335091606888830803309327102302638875130146614748045147505839401149378334163894028801951662188249246928460471389220834109788266437750210398955308980174042289754966288903475040791867769563237442540471611617977412970093506352066621127422944976135327102019969113806647161722043801079922757108133097972496802603298351702955883957211031369336532422428362646051058575395095288005720619373840557204169822231090510779315181799536567427776133470101600084933312992035569270492140157914589793105435620654965882122132412744000854115027026004221619690852653210453460732945882538236160672718086584810996182025982891102869658814928861109538636198393625378424224131269045931429478749423219118910096434508830337217417636193897210026687934184002604649664967988775982295965450586503341626744693770224223289407663886721709476935462594265249176756229720915399801243311653364571680140025671373745913431854613459041400821569165510454753081936336982622732571758005431559409242457539143034590206775023808034795205160265653858586234385657474434705610164633060649589824727234679609524773402829971967540166921180910773153654612730254149613196600145336180325737449791365833209418617547914600663528686912089787657156468387823414618665510244990855860816884940519280564625566119377149694303403240088044334713599557044855635091120641960109266962412281469346516749940795501076429378266136797714014509207253824385053591294528836806692209418331501195206336020785754908034532819913214634713006326673059045100910923390565778240769947161335549956257902724964090886469376323301774594653471027026568137643736394193067022080799795859305208224446192729345405072926420991145957346126236809459587363358724702321566240609847856230668063116950405310308998360100502008990131541240191339912555177821369561902472805151214519234902429092841748096825538786596583749357007374652280995091785451551158708877237065666154308596607437234729679137822688662454874882727414034502314938416527380771735476930929684919562364947045752226003093000682397617195432356917078999124633388516113986292645606747915961210027863271333362453884219565340698211405642390709384008660120051671166492674801992701462731259788763592880618957276618719946218853540877447394472241761017101295279827326193048290140700915672925168625720003379012144106654833495768655025950838237507373706576386154562941766586134302212796841979993308727995586415469578738635930244788278045544034848148029723070940996240869125768957776468103782456785982793046240870811046890291500372380566757486268566579845008045979899050669052592721653791340483512720304737937463998046817357172419641641197684325126866608986306042510230545273186773843587799418326865847373853386181916055000347175128732766252174295118486837289095049483636767801771703214372393974954153413813870239058777156356213350738023474607735414253529351284625855534492262711090979173855880691429056854260163613836543612589178472920767289397021551858869358129903917395886396848012349676170689223181911747229995027533685747628246868059048654180445158821589750833514948129240981336718672046124935023559598615313572384990512527125453824679918900740703140071490554644846059248385640673588640593724815576533235378795902452385234797647668521369187746248152060906154901401281301434528744005483772389629147831347534486753841955667122587771637438327346814054964566324813707053801434761041914303632942308173115547257923761653407678547678487692725607189177932993518867056065445370910791081404111782085783488617323177057068459867576430605121878319482586416891088103120428769033714541514491001097922702922646112968836295700560528898820351641409055816183555806024659676520966672382101552787670546314101227849538178714940365679148858843540345231577114380399337344836392034289751996601162781842083286595226461401682690927828548586922173851261604352436086233532216228749243152706009632082350864943575460374509791012916863790797969146261935886873954580851682787566519932938885428335892830159742642506087408083722004016885621912544785175010004699046454781796827753027444487460128536803321214615579228691289825579223114124330910262363251234540017608196238791759792376052021891045536782828123657080347022197827059283578443595423398381626369433132067839423602267039005665092108183439352660390962826601539582275828291315618307387472297892935106052122593757562335355261970863803274025201268649407160802271577227230524105591373192924655859094810589803333371022770518512613319710622859093863810729345987698404143890224225859657899537117466662256518890230230298835772836661556461023118064519119052812663871502974475696696575317055612854407747862270203032106625317201787250798287738541757504903566461145404474746575453805325634093762371255894784067081212210788034563724192343499611918575019243969556387295409824009601923143749090391885195741890094705547240378938591730606307926360374422701172213790555344091846818369926437642045650857756325958430836369450654494311613069181722653200737096330456798610355424445037890163549996201693563692003975115575993431237536954658391590591137337443446313115373418137068510887477072958130822624258730799733118984019600970775993026468924221879462068644560065845391742168756041950313176965073278334850055055609712031723138816210751528939140112864418006285853723794827452181494429271099646894695744650685125773120908013686126167249818096851272594385669232400283706809730818888603850650342769228425879459256247476591663710166227170603424008714874975838441126602879946697088844300140168946337892230371394371392448555956184875917766710719739895563865540346773793529472718386323246182555000970918780324387079406927844863463682137241658055791219847096060117907439151999667367442053076906030445337905620703432651875034783231280669260763559866349610917739724126209063408262992726461503094317650847368659737626279478402103749312890544454742548135831756877439478004760357940682858679312179152278559242227752517097856318560996040284491327827990814475022364566425474956480044231881179164571590959101449075931893162857803442720871782928899185389998736212327448305115406230218211335153442661238371075833554318495016319778521101467530723686569144447837638136702718514205273124936791780032782891742259341013931570103517156345673722273253822851106090736807087668077053661319535816914379973990379011989505342483702133087310977321657775450137161236057890855273130177496264833273060182182104601112546396473120164419457141734377600570716533098558546413999169127143578473658901905910149745033226649632330102902309402689780774917871181582911281655745800933912736121597652435192341453493748075261460726821153939878857229065439266326637115191528382721874248663732685180044557286763586324700181920370276005452316188528964791513662839399476185757036571147681748507689610373040622479151447462437801439174273741320650602530670692765751026451140289803123228245058605988933430078104813455249175013945988090238338043921940356999803340679901898164130601545367203442485802245569748522146294256703653753204271576495811295360200523824762146475693054107684085460347442879713225022310191545716113338451886001132191594868251534416602165046442244332948323359270913951903629080589662206965446195337199208292857248156703453426969606183415813682027398570453288013416346854200356684051712067406130512591078436481349740412623177001080750800075082606294697865586799634816729936633110369699222179810850067855395538734509012570900657524540893722800056013870024069979548142827760868374875675499533840066400170207470904298002262574897676603380463109379433204326904437774545114720771747155802024818031241095978125488290316140466080067177921138955110687765300569707299190601344167863907874025946580198454342739271570164775961472111440141201674749744002540517283357174605777003621554176430252682358018093101584636500290066221534382989288650764022926427408215070326755967444828686388277753759927614458236446539237623203121992835553654569169991715879285552130320893551765509611623160763399849247293963928769571586487437909858427462842352318388869971115568996725335372144123222061763882657434058336751953285610575184314392649551509070302575864373051968526759048413920331316926532464037610355271126769391549419474896420282932739294076590091312444665746380131207931568140278690910590454749553474655712276093671049120818384306018193535062354323434454623029875073675375371097986255576490604599282108260600179474832338129916623116417122075834726042004913122810595342338898939933949090032478745074921242958234172308425425919566891934403371043715242729475353263991031660451197051008506823736314244376721286615304720489452924866492079186550681271350464195291200939926459322416758975579749621308082146253445344400604295814357675948658975697906885270163717306876654316687643151450379446615326305709850748063421599496259791023805690646684752650243196494130610048961370305204553660993120472126040034235262594260968105002084175578634375554902754401967450834841771663529115111780438984764327989549287136111093566348714774180029966148179185542521833915404881569113079510458454513571500512162891490624951819656712990565588533885579622634582628536259522254062662529137816624487099857469209442439800506366830224394822674031064418294502871364180539315922385232253266595840040343181960892206034339690583668835053796311777438659658204693632702074819704576844446099247115352681279957948350008528021265596370882043480361638284066440459369435544522978682435750329585908178584758086234544150483598557659761622878877503802593192742839909327260513833007156385618123020979417061747331902537420543252254774755417735093062500021836658627359823033911728539586957454789658308140318066837339049556447644557236223513594802529892907058918302936779949042433835136286446761323135896198579030039954853342472382380595804846250454188499749470199565362117465912983574445862079858064893188243113013923127969151190724159212052268634812669128627885112949882739164381729838421881662804884401903018075597624411751864730007613834386055197220551663331346808755134879773639836707517428897970731756643006009363516533879145141321774276350644037872683428842978882170288966845830487433133908294911968214139678538204498175767156303312844814606002581970514918311527246545935200053028396211130583998853995754060187956121009645529929174229470982937389905878270582729944344110131998101927392778398959922906577577877617828026706778857271288260932984178203820561625039630121208470406239196561759544386417711571795881871179266903237205922676248906579906309436246116594614727085002044162925934411786465074357388738254131365773468747828842598319766637509330981253276063079140839601879766779865335618661173803789031285823467295097488487937444508619836433229725312837119319905840103026259409388887903491393655790934733115956414446569563602338188651387816637378610996256173704399019569327942327808607186659041910863701778677715614500170707100178052935940611270914332946287896252923839393044928246430622155061617572206991488563662726376440701173891602601973372270634583384579844968183309169152624920236774266108497337476471320606322959908132783711839595810143923425386890299235393894106192359354088950372221958215583894244924827608255243511221991719804913528809192559213316758617766776744359469645267568242802986139990865946972010402464169507624061585328403933368269666980629990337983341003371508078047013465348110670723037175433474084612631057635700768967676605625093133024566984052082422335028151399676967019555935437521884888324674839271145148946514292096189299863328487881192899151414364510967468438782273943478093738874981155467920050143081193906689761478405935133933470844389628236522845415847114248639711928313022156282817252744478911166827558577046528380841267062013169847408678011520271700514747752225789908663908999222514027432466927328277753045831952938481598261485107604652039819899812134088885700963135134069967837816743374749796391150609390383885476163034412782396232153228075180164112948994777009582749574854540499653272856901186220408493815905382096292217748256603647821441791473581827933018843400165542932067548553173083687467084279425758658774582043503761191657852215425096761144894166934704461302149499404669498102265247766483912892666945540274370230811668710919180865179785069606800180668080694761391644472868811926613300707210503016144051419397806593372108115205972157457407276599832859732181726913398814424558918714320545522121239454451630598007947872380493293736272975450702989906053033156838472141470718770972468857046787441057818572903112029645395478359307690177087623124579948061546946049226020581423947400285923967059704852973549202497550934627820010531619157523695173232830609145194005040821982621600206068084095810891393633256145229355889241520041000123198510700816175445108690535527171785199329171442817319180231853153761690345104049196362215166543566468349774082945266718334637659131517501698704638536277295917535429361787618212925565273054501299198788444800119401746519808260069591350687045771425210094123523251250558861366377322317460133751312626633504200723248917447151513949141571261056434037224298208608639866453447699853275673247347283447426646081216845186479640261069258623671074010260631592216668726294909977044306344434515090035277575740503994467321266390940693740715176072449240479456247259971248438097489527573363232155977783494349401786903417317835435270904434013432296919624807159881634210750907100087042353981593579828230008245974656516204137799032424233319888206642654859611490355851022597956381309606429565715958840645097004673947303737850404146058796484004487390863331524974626070556240453542406727212357324472373096544946296316965968062714012043167219486991787486104697276894485451062478767169584622556862924219442972170857046424336343537562731435260413935573568214767258980135496641852865378054059737140157365857251826873072168653316394414177851082112014582798328028303151856349242324209250752746881958234480910118181049095259505068996609440046338826100112484264852465010365520288241983362046382745205978558858473127348190551778971397471251790059194164872928190199571568222682124076232788480410855788055454386434928523455465417433105743116077847316254167764506231136857831837165664857528319962689355217459157045564781701836849741885614233264608416898243443642957826963938056856980138131582428957207634458329866171915873748826642772819414540256361983103548843586534867403728176695778940124872752001346298102140393981012690674297897734604653562998326841766495421809342634373987425641464437656605718999764149419807751098291157867031315121819065853396447055257409562956957592188187955385738678272316799982381379126795419840521416406911350746577493653686728496863454253951209260171403039590716249939657815106616333663963962175927057200060090501083423528118795949251172911753632150049119923943297146864130149330934261406223718057804060358505561321071942110677500616922533008544600605422027766928195928212946058988457880699131370013267337250008037561790758421393632098198143025435089463416006008997432862285043373912644321658554606173900239549095680033551900434276628717051335316129497475034665073996326480371726570184465465685953857853726010391054546809305745908945955969364393487891447156269900802595359126726216512904131055062393714017121220023957797657101204563389452631837239885094970240730015179507451529186893548003837706057134719888826280238380822220468438364648908936473116366915808684422387905764363109328943981404670180246790044475280049000895266825561255710153272323293220459932488449636691270491095534660943885163597485512607005153726523253453287970329608488312416173376664815612657299791288989138692648746779390893587854835346608021758150247622322860541956896176978678143596444411790678737249023964118124451301909140335785917836203659066533860317783296309690441907429590260002062439100727276491074930557795351300213283949203850659185899711262242283817181283421706977842600603391019081519234507678012428676158417255808387625239518881623637056399490115643588095956830567117746549108013011322152579427823749889098867576144394968251575137749913869931611955938708037168006491595849633255438041472188220533640920130992543826492663819481306204810997317066775248847588088234928353925526701990983936677384460254037746445838527113183266371560623616607007726814247522716354657451517182235376878529985402068500733847783351433745491346243227164535759985846350722859581346505780645319205991937700531384870249854019552926292636080611370988139769376770353984686941943818484546978683872610042082051076021249361962487602408016090168528127676801858968593095909884856169388667998883788129644828675082359219571988289674318810267533097114197269288347092342071055178500484756920963428971850164112811191317294244268976701058598057352470765720327917241928537106485095636990135889477914369780267180122445862594808114089165314585952595270468197560400679826744126671850767923104512277122547090654910268647012181092774509257835294115242216387629974484581196034251753776210145659238014141204563236527624506930553157417810847936369637829897812463169302256058780579552971589396126952594545344047040430955751633611250995265224665793393188247933161351778888275246901818959974208032566371253276498026917299878612936743386732676181792341217064116174379495810805351461802667347038020314655583069125748063634646777670620561004597092144661564371322053106637813062099467210536810598738495537092786163876717784321129192284954238099915351621557873641687659897735579609678816562914133898030888725082800387651629392953118250304983655904003423967816654621424075245547313539394406158147228336471256573330419756923977682560197380022473774671201572950370599987411156969612356894552782636693717570410946639585681572515277743134079862782679136367933477674116254493593764474427064782998237245678443986766091694453668290685342538402254224429067282121395275761932982778768362076278319586518644998498822068264874317119312094429905770922262246361965198520458861570946571198249755406852772987690626784424883268991287665993659319052573668619554988982740072264944605582769368093956746550937131416362985398268061336278897634043629383882892102475065795821720375419070831991142286753174202962973407021996156665754803964399896751587613649010512241539508720158814572388191551470289405893761340765730130618303016969304748424684736299856044831520640759832079383766796783004911338027575222106079412527093846064907760066356855656104433562442749990211438429461538527526761389331191226761230049282641067081507640748900804034842727866414470920255450218614875951777379094641576704623770451003621731294991772770257920608143525925602237213057504691906953760846508888286567080569487697669528439744257225160421366468556200897409740027767761229873216735607324472362556977309495046550672565109942666694949851741354461852681036729839880274943052429382849878492321249125380546777938742464579978526782506865411825669372579198713041585758274765856125095757467859108309037749055373112682600618665309774383593876008086981156278636967464550251141489460184576844802181211670893850101542558261069256061444112658951957751374850279211546115639190351252293578394325787777527068327510774723889656500065892692846346313075697568530156082660908399086593238857707300562366893814717704394675661828672240258878784976255368495788204275216289614317070799632253064620414487100301653139767180541251431134184442791633142060111215864896565992825590669841613661998363539261039532485714861423454835665899375216773714359217011005330871837932019003871071788999862598852612625769181621311416419476823014486113356591971706681688835165502476297643249552581753475563357866133016980564734439704905345028572714572400409788531010076346313741453459611188522738618148878129320390146414383861717859850594278087736318657672182755614238141921243639982168055743185863170291122259660121199986627693485263171817653529865892411368272937753902842371402447951259994631657752527853003762869287778090530176746536101587669939386934388688744701284762027617054001831609537856996832313454517448947352568099424805583754153044971054025047209060876329287632893801065509062893341396253952623126406902851086652643688169015333750916274405290591020455526974046005596753890729054796678216619841657025979489235376003840897227377690538282150385808725835824384967522002486379826013288808779763556996600315700120571853282418380002838219608047935086960242820431688023815937555911370120147744030329655723222859976423582076938731090960617435144775188636261145228215751979607348766030772603381224114653704540519647323309527157764961486476384923513845257411471387215485651184931760979173133477058099651530566897776839038457480548866005118396853977772312910607252413699278711064044314976643020844576042597719284702920393328898295701776766826892158321191661243584170275461997549309082189211552985217126420943648276534068812264501761181543657701173278060800295437457917169785061096818828734107362238044906381246712904445804691426451203514694396550556600383275673013013899701700536714551933026021400931945945323442957813374698652449600357796456895842171667015559991589755253548972332247200533456795421831490689870250056457556411874644503495900079093905824361652073242125905570464356750969077072945428599229488351038346695044580714975944211677324399700933305320099645355665249117740271684742062384906824668362001339172172885407509850123090988179260330800975756519109569110461736056743787320704181984107131187483480308681351214170101160192432642572969360000678144332370993134969132061363152157446163921504756597547589746977510250811549188863457759716009967608191743198770131613276476006752259125008616328269277822531596529034535776299743635749019330842163984706262316753892559266892054913523647350876143176401865119964821084925427720185229362775248412404578696332997620338323464978987706362958734119588094787817986370046085026656928020749626843122324904954743688081879882818336960112726404244493393862315888670993207831223270573964771604567355633526420624772354256616248071740131261242690863958926943969357347587335103639748302985275835411876733796939638859082302722635243169298005717919897304038849132995014478491343304728651547785786948505141135618824846261248433971893062990635440301106666045705631147502653568989338152756193192210340449328900601969969095455297749220071000529627252706582380399154316569201207335676827036932635358364412830222754378704615026227065380371960107085839271789359108055554437840028730616183268901573861014132319923376614810593355096891593117525720075873989974140039521041318788892206013463017628741080855398910597550691619771639765781305819008772884308340523454082086147932236599561776933038783777147323234927545744492326367769044862274321829061873970254737440950278047050042917877601897035677754163359965381292010733459779654469589360505755314640851488642610531272262586050383782268980719714870092947158663700472840439954747261537479512101953179502864226319848534214037388909591742228594330852282509241311818647249604246578888457829039600066206135682777328169827576098998007617285148480723263519544529935864582175215746557837971093697076171651744775230096777939408167754960733616008571696122709019784833646297396085225941744841348073200820313797951819580184485684214086223409503760004776816761879648649657558040955086191661194505516571904627920398105346976967656674893522024450701736743829033885995792823058754549298271349667708252528823489223225177250884394834504129978568752762799057160374697505550043966258774168704157285181288915788695892145050840871279614903622113787613714065014370827486583869924445661803444105886893153379053078923756170306226461779253780212950738012873853311856011982663802072230625892902537754478441078859354711259356954076089104469819299585442572395446940711824203690000725190966932864019070295042652673547127839192900342328872987333459933749154537915831138890166247937825819773500344687491708019595587426560974060391901287884942933896724261831815207402182935392337057140737786897599885436387868606395712940780947284047340360602604264484535871581332593430622519497586694329197481054978148978057817568595103820730773986030051082464006187624768861987765891394056824995616887385240696471230815192552110022926027493558794618316696190342797727098147273812433865465625550576087196784053011296726690314238086305639305284151455369431411560235735830668406708417592813246579953823103316528512046578382340444168514145344361753909808540708387848911525942920348864760165475215127068652202188489149919735754235412373564583833220675882360389961920587529649254732707642601712975433287016917027800913259038055133525959519063309510026693861921757785852095477830440497491455833674574050644057347248998903573052312534109946464489785696788165266428790371689338772103044800474007493957058423088640137170703515336766487458820290597522964780011766600729579480073742753884454021421354795054813567429619782845242663063335093943035456626129150824188951266804383177732130207601705421294155838316825243227025386366972707750527662764031913619545338548337387593612436474646633953007540521399602808297010061814733931803256996434083554406651014783896453894923728689554990834697353691716100936639245276656049958993562296424538294108126844443668093549698852638808822993119192536253280118816717567466809187683630843141623559991589742897846952684072755670677148243270538302715661184966268488562271263789623114809122963776780294050743629772012455573077393809170188206371937806123039516680483965799565421713133199290831438977911652734612815201639487339507624404847807230134161818468622436407720138816901954220598641135394397873929500227743191194179980676927715486874246187727583159264159867322842961001126119928117629541296569928046237359880041702367114257925947332148094508153276533496484405398409266336850383789422571624833777165374672669330172581449523019459453918042359900795151818036569461041647904788790657335398799447105314236874847787302077494227157049580726883271412172353093315302179054629141557911518915132461482818034198505996724149053858567231399163877755232166486459560261655802436381625947478926697278348520450264250578449879011806750828132137895720748491029099301707536145438344036019903154353540703477297322725004271842034941437923646020458341593103013826552757582876976148248948396025789374498809554339607173750997383822130131809179282927679592578611730376257881847514539537509382479670827963952891255652571233861447850202339778048287501357285362549339415420981316853342053654981159861253701703873100236421017380508151014100581151916941791059257988357529874146763213688010597154140554869419687058682804290564358337249025432321029230754714049628208823833932707051229829523245754419149781023265528458083724514360360723827478464817168053260672970283437802463608853002031428925763171575311021909255659158439458821394714546820089698149767613763884047265438987046637053512776908886860966667231909513528868203530219774695807496917177947967024154341806206100224519803031304477493291640606478111580969843738827485129672172050855328626123360045139309297844791135787722548986629458144449919513490400869685778299446793345071247046195028862217549190709945997950455856694776663186084374056922524924061712763022813792972878307078483859565518946186975287674871389739856001836324895484463684386184580372366930837999629810786436928990958548278657680599552498764763450825381432489588874973623079583963502948313393068590131797625997020263553407231337737738621299782739166436312861266568023241504537322331242103471689582516223889828342814757210268706398564101135025668969514225250984239536581228176789219867144724960290136521493291251775552339182653162037945983135633161541282308421935041941736442411802514221155510793941279968816819960994620032024826055196023243339155781806617766371080455886763970497108297851729596125716630264349791187543894322029972762247909252004102457371962966468400773931623646368172410061733960424423464292100583072458627902904956484321910419901709599086027590842450403877848896152103610944743698949239559218843025994862650391933026995533957072678490869459574723111930116770450618321832182284330952217016629074097110193093989847308027335102809201689160604053578872009060347328015559009849164822333216452739726242521872254953565901686881139453329933166758329557860865234344396771554801530024889420311750484154771807803594277891117240286045488049432910437289000110847268206972796325408832040069437300001655531997967532682282727298081704252426199905466134316595509521704420828543283884270727391242024428180481983566029744597502813378107616855503761562039087947267583175691654014277700960118366471142924570812455096437052194291274787133367606346966246618674302998132722351464834682440917669635546913240041248844878902217676506129509326732394550069982897477961577633174274532213255435352243670808605551460068699834214008066514121471382853726870410183400202010784688569334236258167562556478950740427282445970950205316471341725725774869928426524670034220779653454064288171642576082616372577819173871300160391352066057835851446510296117374884248862186358947902875204012591159178935400285300632245360493548919441756433062890341679397889073978846828205040722350831391690792224524406949408995350851340354869661842300239119615939539799821242911969846058219115300380732743939746352420030591983726548136231081979403130709240122910009324503672269834419844325222789003077935279899311285365169257303606659338534560781669982875839779609852808282206223005851044518939727750866254373401729026155730268072006658599421793859560370081956779566941368801910268707558860784111840171455926468891061280709365965455400350428366667091754853911253776356312806585891536890364420272184961011652406201373725379380963426197956997414268577219323725205269487994608731912714001339652357254592994529965089474685323343212957823566455714847344970957876211344186279377590408541427403313798510417338913497640636127904182775472930088961279145484398762974117920236300618224543466781584987646092656370530372390968250912336426524178085324314029042226970752474437308036014548566684130406396366263236676628567160639191996682947225241300441916920960376205180941637382424535847304916902343000959974634007420094203465351333773236091267641283224273215650887106436723238486505380623582114032330278605459862028338047990500139925314935769559567552259338322197013879662559368915595065214043016665310718380026239145282132507936637460106598775880622029818680158125232221814742552016663351713523036715637523751290132115540635121166516539031933167647064979118983516117774988098416951135517301807538053629759113211805382344652537534129903114197780317032535506593293227566371937595231419603707287845158386260569867047409959763566514695483800286597623837055653151166436771854018821993565648314276149784408210423158823561236108287511360113525084450347495745336719603054931534205269337113610921385020679082543883621623123594895747369078846854643316158757587238356289150578856461126116865681109706081311905945772513806977665723954853107802323292492386016409575231371276717333521449149514934129671862974654422469103339596570952762958964792397283276342775182084521692888987917044844154760036272854357307262090996762515493769903910215923990536038357648974606120146273403853759609788675090880303160608720003699362734234938591673643535061590078199069474175897386298555812281606089209417382527369678749327706649322141816231995751441278346254502935115579720771593158114699830016744127941620712237707968371445536243605494589977250695824077108803353809415608256184642011036856958578656582601853645736905610157719700653990653655941692073132598281543411901088452755595256023211944064419313119404202669052616307081464873791457846077241611553333550949582100442169903003530783160716893322235583085364785017064819385020786370959419035859301868153576248635863293899303127982091827701104339997178277213351079853823112007355903384388700619054483780466864972511184486994588628576488483240040143801373369231907396810452651616750956652853364815342309812796387027517735930880994600042108309839092999848008425056203268834669263650246923950903790183246687058506748758018529079765950629979374168107652264447136021878692984375698579110453854772958470670121289063974983271389444612686860404627662332433668768669676376036617961982900259465559211505608410026208655709886617605959419185670250669461809212062419026250011733269032748200878200578217072157610013205496312522000595939269295554527391164573173460213882385936780445200061830413768662989530540547420132140860984419376099926244948295007471752548970169547688274735329411647487161781701050138725384503713715128392495387052681723397048845225190071476420910362862001833789511773926164368415437721469092169321790267225274382865708371313451927830672878751337075293313451789793640069729387162663979668750028412378343469431182254232137301622547247271972529949459175578687018980964883120486993155429938844524775468898126361183510230147659270917655940047085900984977964679133811203923779559870038599845317435236099036489431827431853152916873673433391481195267941952014729919576511792585546330893001121587332675436850886614426427054548473116244763080637461066135562338789016000116763977138062839237513140638598164127118636784181062114823027582255637044092734707133063849692218529419893166964561688172702217553865523847788147609656763199026542497255465084320999955026844096272439170443472246006392318524620372754732511811775272558508878209443707434839995937274764249047630627565594336104817951426794886271252201701458724433122587335656705194130996780646698472928995277272437950167185408599137978199082192106821536666337847000514063797845956570096593172336117348062368257052723320378722202656969604987895666874135323165461182269597684486934377446670085860232618982742685535919391837617328130497591196885279040997798636079877468531656781094021942747684917687697285008319273249054040240821116043338660246566782377371276951632814316731093752065912185248000464030090172672111099720581494288496327598716629278924130324741338283068027008055751262917781970382720827814455144649527185619509363492363757053352446401374086984861264435400229940277972548968401812756589294000054508478510673118730477564185866156730077956939192435171348469799757437667055579755413445405406212332465802948368782646145791300653844149740987817846294310011805937869110069466777926871409383726116085786453306934935426334470973201618508313659329249211164461930357623187638890547220894738811009726294720867833019290561337432218480316642426071433200302925689234575951899922568300976637763237310590221099997174007601966525306941943605195646381303500002258076613499438560914366055654757211083153535881056156911010256255370042551437846849150562913056922047276766618699245181607533869919420343547007078257749728996659235250870192663212813118392856757292349240800424725160953170175858822177201850585740696340513663106792323002184699420727770004741570588581141445197467014723011534578438876811108002533249932992950818882927972324752326654600434781407875017338970639846683452835494847396092886262838836395194285521555226741700446402625098712890204136807734146932324831794219029121380622925658123542828655592918422501923903121535714976024511953423051761278589816369811832144402512001767661852052737306726356528622991990618817570246882227028521327403831183323810891526847882378726867869786990571164042363652982553913293411904631610035461234326822333872251313288509831464889763843940947343372671779286999979324686415986555841333768585021340327722166729173988667480519140316107676503615465258709608857175931190795582179153639751538368942292685569193955545201068259893434220110940237287046279164213227446808139333558722174800455510321845522197162762206870490337914040413156920870465875500760063620664378411503740795312212768675049166939804159075374529414984807077160607610738232056135475160918792025307471366118475971553484969776691003757415630131177910330702925787794383183999298557143027301913541964651413623004486322408328365489277349943239865396287539409401765730257571951882449994363202377052875471963608785900091312535040657039739903385023962479726285655387687890283415744801074284174482117254675598384333460202851901236137832163486445024116035200115862194469218118642801822211394053864199204477791702169427286709257493562704678157263223934137032024667139170751107115251779814810285473326554658499124528952441229749270291807870007576811168688483149960130225110948450448533437509482111548592431455138137146602043279106940108083461573304278575377007484653578904576273542322942124122886405599391328835696178184456421530724256929342215143251315472433802327092296491187962357743068334062441314906982053770004629141463731427779061969807493934406522776240504476363695305703821082751760745915962791024512132245199330064067115270962468527139323248169384008033514870970867466255086957580792443700202301653276200876999633635088544972201420952113625882559622334704729825918015104911639290255396206507229275085622009108183273218139816506141961043793447370569072532796695378440302577995735121797083792428558788414409137979097451334701570535297910397299245606596302972592390323073002932649546660882461084555545148081210025732587640349531759455567210490264573111106745922903231124578259195578003624145044071021404910111703652426760851273438567017431309464078919673329489481165619820781928083463678819945793338927221705313095874318427338179086437986617671281073431666749048867996555565767341879221271572638307620300157268947698700574099276057026801809408861401419919931880594651494901250050378042115827774240901042920042729090612291741415055036628346424316246654097802467677208113296800462911134776399694780810695543489063113587431337037867036787067645937618182786335096722700654203058586588642950151501519227559072103440730867211693164737869442653352611449397074948549464873465332774423605092362025239239866219644296394286161329454660844206634714484194058058299197233104950119992742732168206866003220325843826729598791127234111392502806788686449464398927620241197980085482375679252934065798902268254405613114810564905159553489452637368669332641263233974176431161769651840245996363936109902609171104536485882593193929474570326434899427278063033606750781877491489126432413908257414447801250689282569830904843054985587656592174692918369352537741745078081550115876588224375801104474769895046180681575253631358325254179598789396893433451883039795221871523820533346495115986951199312775383525242336582928823622678160088520712770397157069634887239401881142856219860507197654395945627058050845480367822548226186449533749728530722160151184293018125017682943561379872384333598583197022860263059821697428779611112532045988477952413557456786160153652344747619772234417747907815036944774903483933012821894431369058896255112880895643216914142679057752812176254994968381784211297987942801260894728543126956160797647941249587881307773942528173215335658880016998261849637757765337274490385753917496379839691905396482959033985953005563949260618699655039404693930901831516752903612128461139681981244062519529910094844027420188004762353936654660163515130362706185734460548166767434958186534696170448273116895661363347854863649188038237358180397487438179493132839862482939424452037733782628348595175700616019228502631941241005520464919268334153048327167317554012917473234000748453613197780375546426115942234349444984895764802845399504878649763009239593495860663906046156663811573463722256585929052058611702285088152356893940606094788763929001551945996898877645809936115892299299142706392523707443520270504381710758212457901840200370822857536259347721585162149557237104790090729531401840034132713987042916209837827380564699676823191232269718303934376335855985439308229421829347209973366197033636761469948371504922410548360151949629391493515128794181081102677648339044383374278836975563566470990889431635879615128403965559887420246959943713639741042181926998138065475053546085245550484107745548098666173550286876182617911532730630209583743892671558494626221732771772996867645241293689471653898960846579272528840825675057618733853746376316610275980022626916966306520489168965376378806034670396325698410924389925479200951515891818741533525434100023580617199995057845837475985613732572594755036848938662601000935961051820631077242746016201412360220677408584401511257751573609977666956047866301323976367147229176406191483805820388656469694607518954117083636795708315343716818744859748299512384097103464064647694499165464009026571587459527017079587307970455841616205827455641293631909212522858258373595669345953146915228195685313033903926335292977887276182605882356163878298708715918054167638970246324727080716124282319880576534143832849294331039067799879180658406532196725605225840216878728459849628909128926815965443761533868630824027824473850458727125500987232081836999644651327921870976432390988008691205935595361301749387729784911878845136705929197135198844608660034662047482051165866032986591860229436054985262715355031514656078455402950858061561687974483095538171091032581799854197440681450231173008487372058907127497344772522345362222566311481589391515910988193347951720965249227839135493532409724981706827489101710755926187322560072284281623748244197661974542432145849182584518226403602211076368558709797916451422864260296659452639643506792286600324622708423758508118562422289795736935706286119527888833744609941365161244504495988490910667532551976817503959361443393786823199426178195538834317706712260736245225206733505475983786329426983718409941189070817661896859240303307084896160195938047881579350476538195498537307741952772004295037108294905722548390309885445935691667740665102405127670759413493698035675079518110009378754665956896633808356813425208663511182893693188410226563800625711776861929940282672015027880963448217665240890805105867940435123147602895062927564181206482053523262458521531431995475039868562293127616885818398218222397032311460558256393525233043818276862768133499968200363941708752614140965870269547392214503215737422601146634602491458333685758682659532677816885856216780728432460255037511969064283278866454429484025835389214125061359530554047336355543969174042349440404883634589040848982949052678946319105487510979995616016394981414710230081722373053928193246610918451779472478653082092815048353357435588385218139231760576048792211275538684098049689543206100697804891378827397785997816726708488252896785804666972477840471024145970458560527068651456407597060350120052518641618641950602218701619462351309100387782119864207693443839985940922510227667256022277025702552119058281412901662785739960321046973774543489767534629593506692110894307731217334291138915094736888697796250499662120765430671980478339748142073538200916305730746970402472243655333083257087725861937827169387617232102808329923646779132516254936419484420897840257268949228385239314698851589274107475400897210072337614760399955644693033446085578713818974182106212441398546232786251180562818593692252818853658854183859334376598189970494903680147347064007026770724099227733151961047205196262051359585966700896344448012038447887844668377464929137686060267744616744030259637622908292735025695032811901595958983192828791768764834135115896699470200778656889821345732064685048396188727448583447091910990853725263196251702820199751168637490808037545035710707940839161676291182502988060702911525538539851425361760568251095499674378442629601421714384966944676724264421152259356761733068533125750504489705266803956446058214081422295089493653969329192642945085683766194189845167957678930084674846241144870948852048664876614291826732507226036488981819725741987158965200268047301538203411169991068666807793742333242227979976443257875585278091805649584363869444252743098292161238948952849747405854325863168293030280705571013617949857276496715222519436149574094374516662108339677467543304529112715976518235298470146492306544369557142113886984801545687307229079371625154626809968901611657793495934292891096120726927560301611189429205525505973229871370305104803809095627139939665130421104229390170139854014841285007242757154747732265149960993818416640126023534434777052517007311826726240742752932905702979457908562298009781184748493308381006800298211841214572601848112614782054023507187635856393989836021478701589427325740478900895917935012220380521629287092458577579754732656910500782504390397001701913177469382131794542294346083634608851775846446269030376246882019066654750576219211680024524517008001460341131076244598859814693367617100232091231970082703086761308710191451357921275046402410464432250690526798097254201053141186850974127142237688034405753722916686462666758673998003441445891508607292392812290720324429605239069902712317301795238403844156289830434082507563685387329196221268252625637271817199861918697126799428732638535151842954246544563238843022638552604869096179748169345814157553672677619623577103669090229822450558567649100125290819665581536741669520687431685445941551358339571913519612313751046494441879716597799746006745304709829141815578599975086293377415981667933424536401133508168934526364208494875112275642311425880136964335146650808688267066175115196339221239501549389994863514182242523505634909164303976087184779855148563378768437655103654445913591562518872263744107545692286529300346588308341381580800202241924013199119490710795724903424235761755505772035979609843849261286805110801936098175881166351597019148700423397349112612471307284262058425955426649092626590066205118604426610523540299050223573914051690176394323323094837970043225133160623942430774720118964271841154683438762096222810439031565624068065464279731548680429485193839605736297193242916627747436183504826880576713689395098094397381266144281486098345847440583509445987356133710512313461401234471189016119137392785435353058287372822625875938961123897573920890559520222890615249643882415930192702474357691150940976076452254878435621661794881008438290062745333727884324376936763727035386723345696043681694368187219391385568734108395043819469123148909252343223945838524955334150605874299081643378172956829447127896864699005571520300825786684928260587692644286161556243167226089187587222295217943938936971810374076291445271322420450497267621444721397518807832611424978182944134411171533471686508308036000898511234584509695404165879836285171892801571789849877001784112959409499858803405412068677216938145230969926306672632936561835327590937351295749479401571617661947399230434891065228468598866541593294988582122623617534004711069359040522191724134464432480100569144906179703465933003286589136835063008025323308172320065939985374791600214617103220129827821522398241179377095544450355667478000774615906870995079213066440123701618035888069802108129926905390567972932440568799202183019433699255290442433835211221145376286655971448731755403059172245432989410907213306638443069354408584635328370305389936719063520519788982662728631315121998339889604747505231882273004197070129285332998718735009225297438607936386022580490278815792807731414687449162456634513343673508696776921481851491551344980444016114789238663788601385111055968301996905597662454931055283784639495910766935401914883694340598646334543349307329942262065039620950191343066374011058401651836611984817271628228293816899170385319810050481008483261959642358991238646921155584786761076121315900054111730547466737663733144581824860228879278512400973636865057821063654335061329906856151116870606086049202159334582375416390929695101779364757206572367221285619770711045015396891912745076301991555151744353879479291915303518515189220684587103965384396715116393663465116804134491636149191947500799637333767396057093758300190101565606791640802899325180400492542285967567006621281171821536425085137836779660093989889081617150458340519479336917392299942357755328531334354875566679418338570792825009642893699449977788804637788641178915377180343785919047266808984691305606778051634259993340482087125315867348053522150534591230573656723160388341474545327685244306085145809419236136207610519841638219097065882256231032103529565368635339675102291749497393393629361476006360710951863344316832948880400178407682686482023021380234625862754466432908095840748266379817680979790385808826261687874949859442083068360854206451583900105642202139641163331326109149595921843857536000721192818122045751247127807054329404731354730229216722644282400904746042179978451467507241347738474480486472478829965473245569446325351344806532399117169645359312676351327606434804059184132467356601422040175308665535299883712307422260775446893209531808593028322618464905153718577431028447696895929809067928978855570116852828473484994737523198922794062641758489799186972418563553286945194480100465587199228423638814095566297501257215791413416355094241383232562402131840888741300338114479265361601318464128440326101106347312684204796969677176886738459458843003639257247074412350413443301552860557367168288173999409079442685480404311945228120241155405318292164830410348293090014082364627285418760947692569889680485099003060807104143305126950663214348985902590105229846439055801237825600546558712456890999046561270037634190893780074791393616220659875342016161815457242037164424938236838338020914706482870870122565575829212877591832498843221635351195887075171292279255721023013885909296207912901624170295022127551928762502442031592684439258009605008958885712542129566225812391033925637613698286315676116346780690868340891056540263301988143893474848789260153269939678027738026026156057484294510066482047389265864908140087619476222243723575715303520296956251832185526054044004152799743978729722158938856087351059789580207258589426529330795015310369218755557838053731306779133504288634113813179148035328379967336118332280120385103166738352532999173868392175029135299668077774887550430763658875276319452606751306708174248954483203303372830503350687601974218578890030056332175295697949102220885431240481873133008470613096478704673345258030401255089738540508797283483856036340392569696066195835179000541898700372417515249012578129689576512085235674546441125329867879503921628412063501476831716878301250608789037006037490143636059613431591995756077323813022073742312385080238459618412286254846396842123227153254828205298133588616220153810913262417421137817759556827811619439832135595463330971450214384895220287582439073804168296165562406110685490078843830597973635751439773485873189507769096690128351492613859587889521761439868592366921997108570822052663938446618703057376690039974996463121534802023732855013173571406853742367943531938514311621365015787131894277206737798321466604747807421961878579661149395736655845093057110309390898974380888661778732548412893545409030203740125505592175779841781781879803031168895209476736192565609223938032154287190332767559248279758560796599288392908536065752870068155787199032881888096127741352158545557628430435524712592302516415681036048153249480098665362077309258250447637903661799021188846961350214135146457459197813938998072156124881920294862445049698179563719282551494254735450087652920255552900885714733216333973518789450954438141787410090296928627662944854337170164659848942344269809218737160839952365472188790052150447965815847298854487842217019255521291196592275280595704104191651123813304350195706983441334273899096182617800711109272892797598851630894836164361775715943093390124678105023620733942745224661927052002327712173527297257443856698220049166197814545091496164472355373823550717696413703364944710278141798884239769610331395585693492746009369182340088520752894845849395221047834971275947020380074981291567291292909075547763912019564428450767770901519215496139925222211764953891279681638083636245841073903903332109163659969298663410250571855794557758065839039100433045544034471764820099884813982588938432116865885645073764242944528417160859845535659988578054297353412538723877439966491886065800010413015446720387068117628726546138880190880700105589116188967194598458084681881970673650511282069075784355082513088663894090309820515558425567820307516074620553228200500327042798643427918262775750649640640909504372360020914406321492911623271514264589260419584317482838144987504433944449090637858291883425220581953246849234473798324735366457109393780249962743389730968259643662053481028942565982938556111569213445567061349731967123180573752247881488433181779932714927677223321825933248112109084994237744613735404598367049660641814709339404087869522445903365343141592532382514455845459418124946950279611879495494108955158086634386342331220950698052039297800966344911766457417847209454279723574024480528982379809043302127239534201622038961276603113693103865137746774766405324085331329123356349635461437783099965353547396903296416176175814233364021806621232499298687120867462597706666391090780614300874341718201877178488190367997215826219259506992793494534827823705965509100147453383962870073748000990165779865366393069660903317653467450938468141799901136956973073388809472954586041624972660209897568614462762097621379612416621959121912255123143742160503032491680982818422478544792073856491058266752823919430071834099674807308159028868643015211484734527747785246643531340912483737408499679795748088906110760331942401531154974273041631659381399127918719136806587348518745559634569861279922307573169863378461255378974609189317269784078230303578737029010345608825693307861911971239009414855887699553420187409494884693344631350943799182537216127955157764986328646432341525563253489389889093537388220718415009126466078166634076894119953491206476561816949116313959057324227442546326728863333080663884229542434343736557447704037070048626027735363208213976948530787245853540029225807329769003672584570148447257619974566831502808780370585449921986123721956470998977275335021377645184733019953175818715199691923119486588563603853248416695383702729759024791647278375394724750016131054008677190999362917090797396435190605606967095276027037349692839132083706375672912096644435107988930004289139822546206561999161664229476558917689904076616406478840059004681058950977046807757869309312640105690035219984300342313552528990807088701697335770170271996185380673734558912575648622481117121804502219481129936492499431294100751316593220129154464020226238812645465676848026779674340203729603817018646508225281569910862192957092184730510417929329997001330591792748839675584078570894387682032653632523918933704686737496173697717814006686879315696932213972659383012999677783734751440690055877619330805649303262047449780595415107943239991339397973067189791944384577969500244377723922057630381847291716904804013349992945190310471415176013544013367042208362680258392700715994371766119302925961504985873588173169227186222723326133692703803998326852793953399100556606314786441592537106088990373930337937795018268051498440192923973605625232903084077874402892200734152158269269757698223995819570918898618865114835653436254808732228929502396049896415655015461507993465816667069344982160606046729052123857178893565867304028790930664422683184369465899179624031101556958036824197369184641171924634205125637869334399220561577295213007083682789452471290150679117420946362682579297483414568182422133749901851841556903006818436577286798488493142522059072080836158755169724406133525637617061220175405292845613211725043179353737201777330722167418026045180008744387299182261782419263582272422641401156229939394897135530559511749855465733256559728824681314944486733736471894143251151732555975202952018811681425200165964833434248244967694683951885448316718152919323258092043396358736408759742124081288897208651781509732834688520254879397200391044468192038005749329646539147511111633806038750735011224709153901962566139901775589244038272474138544590739582945790275334322140037272503193674261246376469677631006082724429226665679850214631780552459619722396631955734137723503118330998276010554063005398366372030931121275628200011967446551022533944715542244694087442959412439981443578443476719791112024833980377512008576724447363309863598552429469452435351588464370383819152170727417493390352700045560671438629783370463180174360702075625834449589389671555403137233092174545672326450825121092467622484993108108339059685179426654891133656287890441792726790754471524518551938196604987429751206991424324361704727503849611966053449336628387575387509050629956205412678220273233415912713036567168688833160564776484953854180911363637887095309079534864888045660758193258460022384745106517900980653438647978048159096098897632813932306831428949963642149714214040433961399971776621254888565009717623326060723371819830958199680574531598178147983729489839878278225473966225562092529032390274086758930943195615767222846532460177477043776657207376424882523905257251032367851696314921357697755071161342267682770968128626460368410986816126009817328472620276220244161512393495927301504861884306540056738794925712475645639016649012309801743184226852277212350694420243343770532540366915663962529930317870556650313380476116975715491200886921176751029086806895507071401977159540388619275895562694030779014813903293332254430944291355258073636229972976065464711678144863376335358138378449765122351604666272023526834953618185727311984306057506703672280116556865068670955198600023930382499943714577844768678700603397957125294935145374405766392364311120450911724596402240659833830673147015813713758845826621437908981869139644396953709286859073713264054085152068926216498502017962451626215229591998829279146098917514976559276192342112424336564604780487464654986351205059972910707855293333616908223260214537977878184868215354009105803350907563928936348183835621640373684915733272793760645095542608885980294000766010011403782095288882496592930811159867959681018517040042131835295376983954193626685375420052201442866050774222807204799269304379582725265837756787594105536092023978172869738333562549847742871189544625359706584851668388802796914385628993056592871005812300347452020134302479632377467346967822390922708678865642825915583627450270711604678507304846970684473431991943718932361052084842583314455961817189091835510608879795717701053799458731731296790731843069338042618701849258075572735048674154583622402851337051915684653019725920896993738311784172950590963566344048314479878898279216621288039886795067482325358088865074727233062154905918632756454768703292859911931505257979657741390118250095100485482116479775204744915491122264832443992911073704321193060263081577544214600742905414171868573017316792705221150145236891855031695921392329640742062382926202378217686298012429234812746562817681430864227641512800491805787681124399068200823009652422441829325066835878245239260053390666287857359553982990683991428775826351055521539367405798075657496978150149806101636713461463631502213730468856431001462613542909520182730672518536366059133812259558028785093796850508844357166795556957163362238461802928922038837639680917225366853864293278639772560022563552326801886086390893321696411810070002342320235662703995732256530470006394706152302781148781519402814605487010859679649302821851355799751899708599686065846176885144550458725754349037256288707148400296747417254127920366397930298481602030197781024989701844192453370640497610150613267948210252496417675669247563566690741692149764439008246443331029363144935020886915854661646074836430194728624123218688638662160944604987719445922191876679636329563908138715740426134697400889139620460174035294878737480051306558752061386857347667720569061862178578349865633010865496045406459949548678650574606508320633490566108005048145369672197692196090119547296288973536086865297474884780262485491581482761031392785700182135710308600005662298222982800812729901435086192710906404089603422858234405354506526342210264615223076354703141343051214785589499744081212802623550266308787993064576456939213747411706890236381830978544942408192748753874114857842058606313677160946282051038779405970085516122881946962728983893477772505198062271862740661287945709948016184638898619346519718111713651923520613891174298527571250925096704369539786253894831988535480333890165759256739502942269664142452764100553960670402778482465385736514679506045977576687355452900053512114282711814665205916147002609426747115787231708754962099509847125212699927683851816413911391467495387336398536117540798091065916908924311011606110428406128800909860878375316657172902039343035809520780418237421992984747255828057640443839556728232054274449660593932937108329458332360702265725278823018435067354125711485926176093662173751157801892336914330474279657043444679035647486716080680508349648527926304132845692440510209660868384936511682834105179412545795961426122929085073215718163763596698462733338702916007550868886967104111384800363604090916719270894528027408893920040843176806844549351459308925166877475158942540903886872933005395535951053048842974219341690943560175078428091388782409873077145514121685156465701294947744198350457831613949837365553047600638692116363333733542605128503069848786101460139713999601028838978588613672419484894724295319448932833566752290547338821236881161978676873509641063928045205920641419202022321646099111054168009370957092403777469612712140541079981509568562461973542571599179717676329699641753196952112326063043694148182134655677467388689275974254657961662700009314130335798579643841893869278232953781962376537803154656905995032854692296329236022133411853877984814200325886737578440563604194599149707651359645401091039112985065432573271251184838646465755880285101371911626492823222321729987516039439745432599651355964421782825816862880919333633033091754047483824157083464689532721349216883504990296459458104655744045126144153179872387251667251599092151942157517877793534670027279582644389713136700842491740208986626795228997573308218018887350035576409706589645807586413369523549445640789255856082085070510412169041889081108967223365058875602968769204949813243395405396868676704696836010907704724838587178232987609663958540849794490745723411517240618579195232866859784261330641827327986729614094361960719524666790801964148304861822176979527837114888162351106256025532640985562274825929282637979140837819874047697301218624298233650149288023668551228985847215180784429335835973887212280879685993936863400646122061487542517315634487994585990254438879243237662565569243123654932745344666169073114751262329223573113636446065651179138262921200277417762243788933456534908680076243148385837593673867490810880828432214443995281780933981617226162170343996880594068203562929945038851075148084636411223496221108473287817015076543504195309514778805545131202955052215808174823436422877472275344426487557859722647551840633458238938715309346667560675068541591451001719364012794917239763091834332771548666686673892513487681200114496632665040628196395642511865055953067973314028221456797646822817546812221848315806599064158627586834061398940676683726295706883016431384170607164837274897013662854968494995665153692333896656307061274101930454866527785358585070347055263340450848649668077315539320476861417718855417255742155935470818395020288848119798934625406513701753185271111487640590279370573859634492400685667734274722441367009366888434001172016553693243211863568902257063014927745169856363789483614517943113509430886478495319236134284559017975639715327812939736294873470490232268425300894458821104852112526604823134118137524042762038844538756151876353558150669711877632249223825176288958591051794592960311026703572501081640943805181294646842203156491243302211065565735481722648985981324090699075527913471359268285465834520354044786044095402642810470638555208941771997140910144419265553690778767160688475880122181882786517155571039986624424733386251621103512722792139290262790266405670062073223991055955035214499433679549113334649592282351017698281941115488463749269378851524615222933761986750160718501701092101498287586719079425691707654461314650727077746925387531837859659311087558411424207108875808320577761605355415356788671874666563893318803758034948067535105533188575401571725827310958180008432403841438845024874655175432353713208897558680027285868446122280799201413283202471675724933329996207993988000581048194907141695040254289123300488972786382191773328757642559884916581734060342007794770109711241996362005954269850875120202947451008894244303921428823550864879009617002409155549556728099823952485091006249903952590442791537822769434994057529432084485655895788519779653282838210519782347792521085723209261628690315766932254943263156408795633225846499265879598249459786478475798821290558918446655312679028648723383799372727045145287771460399674385262119652436940468310257704254113675594082483668972092664845948218914362695113585475769052912551911300872329570183120597786533272509167068084552746405935543332744902693151767956377726140951610501381535030899642905188779772921983671607928367222854952109649507138740716414511432828565529664063340913448749153289819497582267523122798367294599532547439638267916828151893463898645293525375696288525087956050190139369693034880661629260077811390481644269651715111225307583107184284725641954272151526624700686435117219401834125494095593324232612492768608746692036564023033092200230140431381731238989190544208748280852863280279754493630916618868367184155221847877195499183407470600247851739811138254648980904262177714297300885242419488593069999926024170183438668835837485612452653116065353555050087892959747768669422219367082378437165723972700013913239915532309471640709145822899836399751892593599344074348490126294404828288215051215644443963485442397156475924535567134128484886111797112228014425082484654101922478327228592067843087674269690985200545331652842994276463152296635097213621190527629131727922728288657701226327070868000516108000511103352284997495785868517361170877669821040123339874347204200067046457122701206283668568206225735077835432720598197809305106565950858709695666718760951716951689721110653253232386702068321563663024201358260649768824741361670646554473457538999529770823353535666626209850768312592743310739273685200300553950522074247166862399884513853511584938525679962022487560845950091098968690051399524023564122294228673110070523424116759623613754117133664019994723531900763477987573944091550647521736010703921601705623511640990915434084382550651483193733583914340713661351582750191882804225330079825399201568863960042325348850456286141002308626705226547831518066961666277149890624257535233196920904710418140039758770579626978714531874324585082124630130274797956570456733805870752200808695760531386112880008576623203306743518021284275297269295211251279216049525497952643158454729780530548842972669128412133199520479526708729571471639573713349034156244124759051857651240711093936573922695208764976390942036037744280607340284626209233238713643599882547911680096583372765165864626697834017062600822228013484165797079410506125232517250663285440356087305292963980436988006984127621354994339442113616116702207665046425024023224665287393103624901253883043976376729950551258562571676684399143087283475422788456959763544519352666411088162307602719467559649262366409658881150352011554606536015231942364720428274159682833090535312939517826762806472432721705456967071466683066518578545302373424075106227077462085684920387535798363026948471224252235520308661503581358044776810477562100880559561106432768348937380453356337079622398355643909409550547993794802602864410281413632774990368309480254548747868645337903432309939015955330749194340246656290508809675680828567989503139915551265445827731567581531503226270273381904290471049515570265811879981011136396464484296839074111163899882007139639029814319406046147065808857926722057443331661967160921377959438339539853809494089195282613104501400487593348297017440037356978680401006810579548402107656233171987613875862904627692447488878111317663634908529773920433002927505227412112237165979809677029080167286012307172726719695935627823573812887133334018434692714791217405502160946705943961308519453902231878739256760417652857188701742671109826696226150562560674977806026541410504448134121461955579388905099638377787940157843207347172680411089532761935409812585951939068506072190617020534540447932057412573200571856221689543199784335963495820347978319787703306956020957004173459328403562488493836708975080688961929845061994209921576019566797502732682464778034795049137919713114912779175038063288650848086124857014577824717776902087266107052112307705980793554654683711092744032493378417912237247371443368401976167867862055171051776847594747311861765036827245653393649673809776637127675292067095999263696216187966496557189605378482987863226343452551978621773873534071705243806852772417997468808245262085455652598580188716120968639335127718610644420937180317295070328198757733291456900681894230158499359513218711297036399047341395531240249909626427597065139711440606040303161969960507613604854322333999265397615340375929578206681991829115216160211404782769392626290190524863164314253267243500766749879672860411819683063099637172985413073924478697936488635774333972515218330514430993580569509505741005587062824864679556928850340730509192577148727141348650033851507066667956845404255744341427631827558785292440321232918721930834455631577075100956910596743917571677854538619250268977572582926667906802792429960186510463323288682711149785449584062034187760548821898646951638213737585205569824478866633091938614787781211539076861441690154537738925207558479275702545198100900586312995162180179371804411752682328885160344138941659841354929950137654135831394406698552648885166996531429963300930542043406169221717689888256009190142549664873707102159282197673638128442848347533942268892316938222995096779982015305628710660167049806436893539510428113345798708014903902736643190895968586088084164684880034132041645120025744571094011957430710244567373987500946243385242062002996320770783364842240050766835630908574784946044307772186460680234422172882048200067801268952077950997686503751646785327971899149307681318501240621369281319541231609218684596932703534945411946021932495719407187715874133802516024023671970726232496938214422375773946143589292450745663286696001907687397940365233129701477891057272732438854096970650386299570655964133184032222249954566721540146233883947824078819463421050273203085302601482624184470895327460649696922359549111897589753413846720257193112248645742104227615227536874518585201940578842101255091651437492423309103837552165269596733209609304195233113261520603604019049336735815470005333455264183631241880444427527098547709282368270326573193784688228171979267222467008046122586112037440809793771746648514881319181392452503261774125167113709619545217119819987896272227424107267769654063695469172540026777649592049480662777520667572669692208646210383883366055708707409597304364194070505389125490565109421880331007312452522898082169869997408805024729564258704074874016169911854563328306209583407221804764366816025003943379762013542168171716446314995554756911517330202665481456488927469166429230392772762905355682453726791286009676678298616476097146054561258907581116253026055221867510514052239826649727510736955882614040347638598394510478483654858905320296275606784367352232408576505181296768842485615202196516055519406177468951363462701597648954699623781392025370302787914539071592575397722471955023211519450673552682741496752285089831889804511395847806259047731023779193861490249755395922446980417200585194540538541334200758239615039898655628438978267667865401970742072274574746389259471174310444566027229482462228441346995110264363818744844438447698931886437266446061295063110281362611971963698898791111530971234618104201413905656042974563915957007707857659620439756764128035747933353501732583563554358764500427399207816264081173021934132958110400524982831848404016046133340759185903207589652477491438340351794151842547832333438744653322872398631914651968154679092010675935430011222096287767680765313406750487133656974364425448607624036159854926507929362840411790818391297489804772848817239031854112346224517798131312481897448455586864750325124123932777574232758665795645009562776671781476447558793407134507268057489625550791346865128045240019478769975460047203334852813372966232771870981743530057522970024984122253342999134610207306931200848549110456288682388840163376799122459886602243486163630111182792686105493939512134616171822443718036598747118511772559358391465448705203358553593083433837105988951079224108795807852994653842765599109483101073960673901165962666195363898822239321607906453229688670044555820401607807056274619016678201775348187935603922405389911841713886999169164140097457964419438822647220176699102133665616601564250131299757791892163822527880276648824753007272123717999906059848312790886217129815037235546960720439659647581478684327569411776650744349944836936366950033443430801296040395694195269045369275172140199843376298928032399566653867325244725916401439238309486902330389779756213760386462501170801300580148216374260365662200786162220305704906819233328010168945001533010007760393354112368677528590495215983727667726998938346245761846585382591047383475966783255033151426283121171377837933530889288110627417443836779041621055052900057453587476302672955126088606031784460803705177972122995263873170289128699744641093329220890882422805531765522992607572651780050282499181646930517931271524963129009694910296507640434071954328934519990766878036832162103654507405717890288407413740148687411639048752815375671568725908007648475535458331955333964894194739117361506181981043703898340356351627911076133825726055628542488614473459129699272173761557530912536980840572851737173773698427585202244110856202631993742665895675439462602021840382084800128697872963827777748840652849666450373622617891361383114945934624187208067468911999225845746413353142883846618612406228218651943652743020932349053101930226216524906651713421230226255999511798589959852975337307817431288307611305056324664146377313022599828264453304567033679046188128847162460790352501974324837664209186864014958218054340212773239727930911053987635871473319414914502966377646910176148910583132660151417855905803164471557550847104580156679716093486975401876293275391850813385818019231003653239215519695243070408604414487803493009568498494229464192089991021593532181753315512342085436627748370276686854927513438630678199561164448301466157012365120498662541326430680064454836240986772562705330594162062251826643536423935224986372871032515921617557932282761506219739379965793440871986643863498502244016231896665273166813719378555812315306233946416200635970944400082595928922943237732212607020139366714599244546084621975511771595080257750957286238259982421172126326721274305662668049542189137566469314109081231217922272552148854206579466873129627979725493008968841995581187380837078677241909875184463536683830857164742064739892058602037896128739213263102532311946969806766430226104985628330411214726265413641712969401701320781870192417988635371930014268306178234948936868845178555160566820842921621936687166318679735646757074706323779600132289361423291076425732495050771923546174681273113154565918701636678162765277182813980392953047578695650331058818184455979214812459205507854621077929342123346114531068597806387470015946117904613394543143767578707206980917606114474636388631979019224851022806799752680754576700960065481879577474061138013050681663453414926615062903523236333263143333164715583804396115295400710255684563432272286037321678300208958243382065571589696440126650156672603907228490231695194148731161334144974453994421522024200245337195490534828442301294349097258865152563737640645332822597145915062038057928639152471807940935439234879051491459527092202897825142250242176450395598318633279115032199056387717266642537750316607291752899095190843372908995660999325329764089120989279995413398332783194420364813661014497076035540547329751005086444972297795296261191676633408010630299443554393550337121711346770479974564813839744186215835640068044631431610262567062159958605171168975368405607432233299469462755931441499870867545052301218886499856141305516894121057674812531412391479635897395095323311625250965817147228631091043759988186837288472843248170630207139458127730622374389612129869586586399685247006968744265853834582745535416082806095755187948449334724849220445410235274017668179638133938979316846038817000070992917596135215854238923350379971054334767565532250353169392392431296275460442878773635334513906288465803760146857590004028443595039558990639718291358329886444855240091394427579150937908937678202593269341096934979384668707973134378208843734805622566577204513207903419314598270495701923236727575247131268581917211814928978642541720211221965900327036438715873074683511216825331089228407158679645744849820980322857889925328040318488224201521860482559479657403021993363051557580507351742722907698664891923826726173061464200675545656587974732133930265859359132430889734511944069739211319286824917726764004961910607752759301301062539385976326423455886493687664234135324473240544625559124566803282618366571814058596126575884863364016636781408428482562707697784805446895424031849239437983495248016138787557021184108085956658608645598573536660020171226999708781898500531623707362548185203201234539726929546331514350467518331096760743194002677643185799912670775874560238545017879938145879637914300539288617740153498900954416683693637483905537204657144066044538775059406294099058388720081103484539788513826717097975301378256605221419670970328365916883689313128303669492043999956461752238616145914815802416617678174606523723579547136828452657335846455897601249409909245220245598073074843062607275529606315805735083781480142221842261847779046567535342604863375856514260154077742253810435271658132380061854777627155446728455572161166095946612664930126750235765685162690902550129236090401678379008926667899592725903053440261423558532331794406193318271736190052352625591816359064604495599552153228226817734121651878884887803491606903133060960043348639015515503777403547286161488508382278481296539640324808398315222137548967855503276644716343241826334467589025739733646571661721572786472411413639555906954879808751378733529631431265507138721640941324919065241169147647284625759628885885693710282724223460905623018084021233470305609670397804580104021494894443786622668835001116523069757544830628432224092905935493077781559598381093673215981232600436786158321587068752107277259052842552735352167735677708772803002575434823486169852055736151433740135907444802672349524274868684589329344821230357612043201454863943281724158111827607914987693342130342540823696996889412556456914647115113253105419751813156598906042686305194394598543570451588721382163766294683371439511102304654257021684409507627538659974114921881178362506683740062487492447066248384440635189250018266381233648230285126216699160689311787324917933144395376736782299582494126501079663028133219610498189659288963700156537976788962733509706856592841082643725021193865850319067654056219947687906698753193670184037199948181241805807682787851606237086801128028286989091528526040950390749552702174709075778473767915047751434733449427951912411814012016238135375878468103698196909213229943553659475332463810361213275013948207410972626741980026952188311485582450667498871804278131687151249590269136884530570982839826354031759928690508053882061798531820157054595267005396329259340233635818945764111296858875914115476386532532911414103774184113672918280495725300814247222152397551927126345289756904119264070939775492637708259550265587798535651732396851715625664492792666403640615354753757954219455152922840094787922589194217105794901821268653190748583153286394310147678785110370418607641712235360679842565584973395088871635366197509301359099377034916167858422486156832456698164892181742814965326742668288721269649408156700647323388366854539617984056565117497500917704546080976747388001768080941597921164269389587223175253701799947987887662676877233178975668700464813628095893155863943638092322766909609821836344787358450324112111728774473528830686308829845031700339529852884704568097223744168966101960724714648428934914873420426371254197438196957241457577370626772302906912585948609472914532132602323063269451437063559638544418832444622613615002205545399922520730261387949223570894309385783970862752703059771400595950166569990962425112573461190077865200068168916994717598103289986742759404812865058623398594129817297125937436736982910016383924784794507534695886219079392893986659929309622468362228587582787735230483481079073668015795691122162241144936740338939866543561337076741342120557568538180657388328092402242894227809353533681687689636786656203929829513475551048922654989700178828514749889840326182613830932303009048083614426188088627182286457238798244218133561918872046314125693117835882839319694584336910058307728719203331182818899538582939690738767153965624253685753769866604769488179616373729266044693679560257707908457101457297207927840975092843415463866952149962210698529499247112418637234499891313937497943530342526149802293959496741633314393510315441638005186125945482602051073786507217580402340840598874943513770552588312033712768678308353022639187148150489126598186103393691170409160497116352717712046711742783080868555275576721347332915005407985923583812810601421414928883384373964984057545869138171113018904028477568030522504428422334615427586612372849060958136825213257199945397123833788993561920118195555099919721990056785843762925909504582511019205901172684383216302144632468592407612502738428644866301197673671667422594387517329158717101039918596972411959398392276603869243036171142324521271925863131907242982380056433685078219052714776757962910109346250316495596143967062777332739505439130349043943993672705102698710050535288909249859339695686333266853773765034609749066166774758859367717899810337687243644638812921914856847822451552558157496330333292123451901832433466554813362659304366686927049001991916380625686872098084384548206302938908964729251118293712187000897239738837529324864121077295014496971282249196421304063384981886712654625793554182037795093619488590041027360349364225767228718708186281028903005263714230197334771095764635413682725482687903419792477978759883951131649385203566693739664681814324320767085162848048217509900537819488364817817006591815173968418906761560757754510371934691134456354077452855428186995538348217631753009698371558969306872142698767371039622691107774750977444640726078908726088905506940324197608687177606297146401264928091700686679957114093788702120594129198341974594499637881909783925304922428180775095574975853275715913324087144048585566473736887798084124952587916712487901146114361565167607495200739026227074111943121803525632051198151502412080587969358788182266561860901505443874010219435980702880910107704685779323750254396775542495520341613129994530965155778491840791845164607077490046533709831366720308741150536450346464712223604580324029583940901971788100267492484917269628725720801528705067326545997476385401810227475130306612504593116177966665798199433772320399005979986090352415850633264280473095621696417706482526539008515074780112388216060898554779903765157403158300411359334783658929925807668990820249950957962213388481753909714605813051097776714621454463287298871616616374905734663995399878119326074063708627056547850327765731644988546936954524303276335915847175294375151490981946376885826803758548470203685930214252186732053592707031182537926869106414327394814585113355418958327013741189775864343570064153967081845416377820000224744534823769478503247428002517708279564022789950727974234344010026007232245623856467110700478714497316059171013790371377574921578421624820560595535842538040218569230516202884972689684345235316722806720108473970496127613424221565532945766600913033439184302730190347564545590972769325467205665142182779746458115590756082374918140486169851215173852929480856672380841652516216709529433715679530385732995398781041813547942413542699531878985993783960671244558050409271868206797360158821611615259269907082706598281723420464891171760216059407142505865298642449497799738288952760159775578133945059977685476034386245041495276937695943488800335669756750303268100512345195497007644697007708004575391160449739933737629467544261819170833882540487376268525943841734419470816947117589923706797992644213790758715070795275468001104276113598049546331790730345799036537958864664886011714545108978743609573880379018976177818433905179699456160179993477400899401424516280332975445945738180470701284285496833082247842586140339679990796730238315240156602136803332056543587153962920077957027818489083303821711993473511774799366934338382814638005352637443551326520342038942227911539981712277647799803409946416108956445025407896106588040778050422632307835455463053941633834935946109949138856826487415189392013581496564842067236069142931277792287961630642048361996754635159249279631075316034151352607660243923441610901872984390774837136096278850750015611964831484222811590955567027391985779165961160481986698215690153748664009863967579123118855647522579135475258096780951311099522446586675929019467230225096498333264498612257911887432715293230179921708198956135871361975916968576981043253631812974907714768443274192776184973354201186715798722626651599516304510568779426484650914758608662490151487663354002750966359718539311959967862863087772054250389568090544600685772662310830061790096471959558838532251355259024457257941208567694495048471183359674095677423571788155935420480170577997508981780024594353471846793365027168905096782896596852287084625661919716295625006003036231994949434757950220335239265587487457389082651679793531894368914498826307334980022168244861974267392769965418726256290437047923227091599911266132731673033643833442614324052875310776880681163880391412925600122349793953540529372387190891522214423771912662307201966259758966461243006477309711203185143435473174426697153728604254138445356000445326038643276958925672900662501272265029544596949556723869572578497090796584379605750859526238036281954513999635049100682536631759005159111052034556890923603040049575377159224019982130568746779445645891730192345234586536773951604255447426056723423545571859495491756627800612442496154175551335566337054875398684281330973312612739440463354460401337483716795131019495289617306716758605179271590603380316430011228206115707282003660548359910307656940862721287035034506183910592284867985763592081419972178598384360679103763189899495947512831360654305204253712132558799080717149041769368338039612205809026332159137287801676132844075759626917322386492527515941926235896842184199824985726770543505393147447199581159429673687895254409428440621122400887349536052053623854515049944823328751624539625172122594888875511966052166166880321998666863688063937880540624116817493760093603060821459048314861818039944804709713864525407153442505386731204169376522831714473494178910696864376511324198309516969289769550203460185893956418677392605244594941879353935358084517420940532910106625402476376377310002475099929808408035649531708045191011290913379237960423051729055352290564680802584337910692637356913357262311042240564885235500971495267112046601570260120815863290731574250861670559231715270292135763795038721405627038423608029175136804323104684544207004348808410272880589918759305566870935878552603772751301772005803675247577557357111648426256502356513737981201078079419734114106360272030901912291685119474845695907135633131359844648728137844713185387299031625987346729466432161882080686730049242954609941035699855032472444821052035435542281478176037332585373738589396684562186939688170828615386855380497945573453772363731178877365243094377670503278874625421390809315664794897310575540347839513813207761734094946463258871601129134692935594289130365823804824248924612072771605054681240508382756134500304098911048189877886533372356284741123783654201363814901425653235985384987166956800830292048032083421213489977108173984571634101564041320944648614823777020447340193442189561526703386387841302582169236133180727312186020907530525316505368855298058897648812455117877211255190586592238384609333154600647827861947550480708908776625794699355795814172132803928190994036391790112127407093869146249543288890139734008500230660631278730653219066652890222898158226931676978917740986905718316185880020905961562206147047613798454726985056837641130963414987526671855308168771392624542529663112196243962864740172790020162317411303207336465693991475085887808728122852061525282495174766743516497946199272162348535244289909328134404367042376048852267389879965614880735825615835382063809873373698543209097548767606050332716428670155487996399753087741621323236555647188189468092042672311964411065549033724554644304763180672396839858011888450483978112969085327726024289336006258379647873556326697598972282403896320699217460452123531003033552340484029507657433889117141724614444327278885716687515546529142158975308159184819544330727307943076315913881704911022265489824592990111313070510118967290532122683231329542541991925241699146677694107482373789175888744714887509424108340204766083297039672381571198823936364662292746459703881446802186588320680977305181643202130753308995708485849104379857095798375060177674045758075243908072993012372984631003894712865907762931205519668694194268053896323642363101408345585654087705846312549499614957889685190239434065417635801033634468582195085012955804666253060979874251590289013118776486968532179350471217967610677625944813689943698613228892382633064433336169478369366193529455290634090134243184413338630020923661720483875678746915664430071151873698075408189790017017252464244728216144022675143658407045036974378919617640655931923385434191185878346326475817553051944437834201299495540554667378634633706126354446314761344392841377377379030283573859426112788479165007874325358329542947155991183425661515765254863200407648809419021881846643201665110073334507972807437157153576657487508979917640001784484029679275996601259602536619301486997128867361580249656084384989485710609289649441682987411376396560583833101535157054128433732304837598233664933862816317078738696116001806699160725470022896212495205237734070228231531493913835698050873572447612008142751433169902853237362519084565302608999839342413874089322794750083556332141061474208172400872208108152639076502533180503321470718936506431964639156682115271906402749421449085741314198889159973297397166480623133845911869392809354074718415233914584885613234640572734372232252624713476936464745655417881333121790422804798245672801359060286839514675881937632312881247868298887808141878337468867174581914807370771390354504615356550871888516633690932830548629510368076814014864756056979877819584429437399229369280766723062353010221418823422894701487592633039759609097892018403165209584737768183645473794665923484641926835623674039495941465039280820663032935013901287352793840109040556386840673676846231239158885074226396968038025544135747598336235578286339282670248656547845633935168134367610627852094468992589822749681822275357929640597906558282473523691047152292101058658089093032999413570614042721895437995929310098387775408240398742437716854939331512902394660402204461569838357705139321365437189110881409728548143387731112416473430658725802603981675917135472462335053640703783152903944534723689621861946774208366134149977642020141135290815296698982149714512813647169737925558763299058223329878838456396286243627411959913874670864875606987892524606270658955694431017821223044065720217732151048071307206156771094320597441486848359287151087558843581768420522072978482273392132479724614277688372075218796371943503453159412162972428592021580382505660779010861010821451105757206452889503702331347708658313733518475952508862929886915009861332296811892325003724880987640942014251048048712017210157824517321418649208923571037634759512985253429926748039303235311008807775562346240526870062209727812775832834616114405877318851364636372853993179810190786707962306137910085748025784121049436845453546472534756022502966112734990310035927187733080932979914799957192895183675589018853139791860555659623646939642908603619252080541982565861417239595922961362765404661643054160294628697659478524212652647434376744904890899957447846439207851546417956858647634696967893200479399572927316626876959673789120838775350903350891036546499836125061277564038639430289121861413912719722133065638682581630215906688999924186902924156104417258878714451143101794136527472411480443684073391001315293550447250727670693091261803444057703582087332939077355332230640856701044138019856806165909818051716406917494289131720886433015981077560350149182652097988904171688335984042840287280403479053544365917570975157936509129627425367235094278103050597295279110799364739847524924915869485700506107140253249894383731202585973310512917353376935790726896369430181422038289538678252273536940887162409089879607325531289022938002817082707520509553844750077222442317972167908420351601088465389556632478884140995021988708660874524497598932898892007683318120620911895305069571586365657853934545395313177339339391400301604621743352318139578031774483589048368843584627804171637945927500910401943811229069288468923152522288286961008381440919768697884742625453210638630551716377782637727347165115873803766091259148602404222050197935334597704802018859668143925136280181348515367996656097686372807887651555534844688830113610418209891887130766716373296231067340745783252326211788849130761491001374924093009545531256515148071386174399490792560848426717405644179594779326007420176238541896083748745278845272815795350363543049810883958768211000174378833476135027423759608201955438323987597361682289658044267774019842777352086195114824587418892741615608883169971846705285681427349581900408187367380814070362728379180271212758351989498583831400174906854513688115088173327695991541166644261324928440437531744401641378978151077001480411140162414532771867619884745825354475062310130939245848929431558222506713803564878449379814875995178072808520937598704596262104738662498637412687351596650102502476166243838872910900437257833324777554913876155747394677923817907425003835872636723752058172194693068101897413412956974652405808059211119014662521201295071907715536031279871082646396390162656885088759976818940299724316798177180638820558796903114950098120134637317223661550845856109800731822260152821872727572249104900371625447110016875509450512174971576894161056044988998574414583501765694670797710422010619053788173671182353561536591215112079737323144988908359391108420240553683268010131644209731664240532186614964615630085472527764776582394850021574638156448362898657352906836050156013411818567956042628901873325889867419321499670742697222379567346536898764581696858132832483481574389806308633471288574094233818017581746542906197474718477232056805292782285623970233722176979713445627285669232272504001800208965554899916436631361692165658746344329875335928117877204766358679752541225911740829085734013939815863509026960508346952367060238122631401130047463058141164637087385153041302024235864991571904845236460093153887148759038514200371878281872934326191726250449165193183404173642641051164156081186553523688029604012967055577593568433421330693898301092626339442704807590965322077661806076042228648525788343954505307827422830982963541902419092052919285960320665237264403915038456803028976744538753012157522308989007694580971291652520807175199856312796416896231736577706946856072551540843623178959197475155180239681708130158476014081721324389893270836757798212445775248270366312612030889185928998253730375003520427419341562100567105397884598748279586218091635514552785498559905414322905985856603181161768529450409501389777771305433959410041518614702813718649559901415889607022931038867896644533156013190180716280934272257843347948018197004091143153819553284865908913186444547882519324259023988185167593049929794897863820094424283326390269229235789032090992723400009857228731427134500894752931917614101158698130106228084168969550629355435105616938482222429359174194003813068555527309882587559470346595467444807321673926192011366751326054756715947966408691806826655730427483393140651561781697990054185963418411007744909928199727061900377789598824047978398575829602599195674314870690375848996119009547485792233170133135950494217096628756256869796391760138978124419660391327900082413833501064958915103091483935852420655678731969795428960731409176432743121167450402784806847732992284868506516171985866293457621767098401374038524825660731600209712599257535578059554079908181905581646446264649442050287075568255314009828515807663304917700052017096470786222288634331802074807144598491830132237854448615792226243994441501190568342661518870836471563088539430065568388259176141115101426441895135378431387601643330810829955210106688492170530629954216656676291882922728868767358660955161958281882846342176243901744662660378052817154096759163703125731890158983158049010086922111657035285821442131844760683562063289055211511960249425023800877478437085344776209030312093205861250809604224027006577125872124634401077129336551944885701391171818432166942876957787890871844301922054880327082430082144160028605409336893567867864251409948434195307051317998660273507881427049532600720106162958317927590030937801408891965905455505753888683972440440449919559863631350814513564271554172118841108982594281262163293382169766615176756046909059573827919039769045686217561197677893343652038069579288686179975626021321420902687840977892923890917537174198506898525633810604821486377003745944976663301761098252789178055254665207588763097440676544569270743413244530068071613626589146706607938164769250090178920533852091967392305106498866131597059212084493737040253742885955912651456655317359081324538319631261401771044416588454069501557724376989279547168195631491951383473298788335662555975459028459855042763642886635372105056476452588892281037327913563303000933219372990170403109330907953116533362879058946285247019658737347922104431455091013079994822929099786725273749090510068509823125338416145001220025933717333742010390289114009249320898329787583768051730038540282420854620419884163176008451016839817310686980890867937212210016912203773899059883153095260635272102986811556202955968684157978296339351949636519355329994862642153987010111626894355801591003501449472721303552617771929774550895709857975918443296748370449498434778380466166853111363886217157110855790228274770054221680537656245387508445855456837318125307476242409996318179718520106170171284856106293796019930632066585605239413716811332369432212977907081169861254053858212540033924985994789016427274035094065897679341619075801315103465415322233045292046578999429331527317532644427310650214171090573814713808114098230126798720444398970602495635502130583069181479942458986075920938573995793744971136984605701535382343996279925567965086872890974836744239105424111685865817032432341233215127986291596704016380499833261100877497114397927664526468316328740202153126364367190791650820162571095920784093038647633960748654447287575448881857213146108985649686427435718817672157040680789633520282967231780183370779607440081461513712183416011604226561310207779713836700377520286190146386134171435046187565032900902563375966937979769407618350834054860010949430556259790844323273468806745043467454428152510702600729927316583227803584655189459115791105628241661492816753005756997200391323540668764724746279469267714384906412745061465050258974564555553156159953742253973659273676988201743310460665626059089366341250224106592817694200653092009675068149584578125838881775279025154066366385609567153871021834879537219794216079860089490737518951880682561278163516778949553741917396079269588592976754611314981938189268606920364174736470880053908808189648047009373640861474811809648959281985278505899622350247255043435948576488145361613851146637873886160827887171953418735609179434226816004035999736504603799847881086949159808094354928681667339716661941163023430711164543771078767301567585016558626859133101338759256233880310250339670673007793067142864832596491207807270602702517811167470326810423984947267137112270929181448172776309921456717611336023397022841769123690448191474942364094597332312110534037600201412852430905147508221704707906504400645791244098349057109681996447940725285468716967938492514203830536470800231275071851657452066778525709605559419022629052890225384947376457827078216879459481235384923883360903052356644992393682395730763764290278140323021978598705347010211178599866798358513773523105480957273603810364988009633211940399528236045565944630104864161561891383344879515027508350671191164092507227396319530450105557661464804799106839757562103787286504501700150787515623184404242571410542542201126815068352122494411303611715252085699347740992997255640803606400407007258819840918711083404541996793427686362012040004425817065277303758428529677334412299689447596123153654987287887041109246382127541682170453255207724982914036669842716030226029792730313322360261205444750812054898203886616400275495731654211117248399435187746018127585032919991253637438980194242962042433300244462999353605278190508955985893204350215540024323292648147254036092141086680256715318643285267612127421921256901478110744599451781067550088192593738136459798753736216702863361892853697904332293734038039900783670125313191184048067181940696123473001675742514925172810582399269506384788183533302446360512827189276113243815335614371647008854918277030366127830892258044871944888761081270252365205508264869856187830937909990937377582786568741500078782408774502298084452564298348123785210368638389071728974663919739597004488200982880399855183404795669887138468897382479669425285442354691912326558226305063598984841909235152461698965083667408756771190620169522176968990514050586330800286427033826540346738930890401447942949026384138589936776832007692911954685588022108911673075450465932110955495187068690050632320777766354498826934013895276394605529826095793762269641996302820595822343598924385925689231009629652163352850013981966234916903468231924610376147918969095831877544334662813551631218700347852347342246883990587979690758037683929979542214467964744937271845279297839774871972982571704249974491481431754016121899094001189675218590509113533355472718406787976580390986643744620241344522859945805869069579071935448977685961445518217245986558629303108090093167518197950295695036236155343210148587057136343737431796111351334816171563934986169987809513845350591624024189371308585721569062808839097818944192095762842597316366910236111223452307285082010383758443176752237321638732741071069401419923213253669537300229656110927348745230077336175758245457907770335169677790064956570772764074149951110315243410466945221984911974414540520958246129301721225700735064138497470208325767093661928023031140066854993670159321919578270509697645483176501647802376573885066903061604927099446555712215904501676608103962270879233760526735291587307865742174278627209338786596853957936428705934379159836027015664005398690348939227843134946607923801549209835376696851220508323585524421438475607883285010944843212549332335664202853553982911619685729280101137709565043833774701894842241962523494923460380334852679663193020713177331348108284528632213614303514787010500451175431058292090891235326714808503011907846031968408930407836980989687700581012756893377956648375796280769117359147384904396753134503792831733903936999549296302361325374372704285864068609957176537699323838788833053616329665719242460260952439488822215900161353343514220861936834492723777544987774947628692178495348610402535635247315165556296693371549408738916125668445997878991390537034229119593153291884460989673551065469978989001766101409799896642689297870455142592835515799738800073201736694514597554852961403883700325730001046493229899422966441713606705892803317377288634905092126675077227724502461632896445626390530084074794035602776702799555739526790010759406396322937770886459616863501272642222413356360185522762217996581495987268404333546559702555173849369342644227955195165257842028091052181205021345128178087860487866333283853906615778695769054868180459021397012082310577308010192500418186743319719154435098625940337887082215458380674802107934846252121291288920287058539454450378085935085341225546501239595953641324611139459838390061225873181221754921398080318582144828050608655383087792790504348490357517074206517534127034428093596933617420185649877801650338756124248949730851721872037781048611464718741163780149382057857550883980001695012148292483075763575819349760423444109990897204913081202549498491577674896071307601596187764894608927881582624018782546176836313333201524963252448602648624504970842047424529175883196092220937015453763820569786257832749404252610022149169941734248868354013044341855001391087788302926427032750682877720253007976882170030871021113496535654547366842315124330278899105663716383327854808376360985250466835898530309609094844866109662448909299823054194119200075955934486803747928669164132654289661034819022810873112233047189405546156727517777046603323739743767936273884389901231886705699067832161637928078347001995616004930979610484708810991121369055540608126545433749913306432355932714001352196212332242682781869998990966410279436383865212545374821237092610183104741526004292404112785666797661270438925330381396413689516602439489433065758269805588208060037189909277630476290767775266126643106738266310221716371613304045804080681514941505671323293775228602871826924704987711683691153938390504392863931514554905917023926559434614357716874939424203675880049441420397125437318680600957902914571432260563831326341489492831529345459353068566851825016590047691875965107794608489019863111004002996223044151182823747148462253687236109728336002312023347344451684745453364449293194946638673027075793155716016710370032988967259967431442625282721445229905140344315108171071862585669756486585070555396985251092165849975920523112481087276432773725506667496049600438302689298134361206814573574043676856247949582043250595445569789173095402445204790119331807327932038976370582517844217624129656797150042369699952441900953615037517976760397109993251794152043782916143168787725417880293071885355061722628510523301477007993753755370278248063603836937367682468124578863808480439673860125796759329792463335410035084179024680824253956519486307259555319095977332802955530546549864966550578793500007846641222168019645316778512987658608136765907278749573004119778322262108197704370478994584285434904561496831738047250132596578922100897475943153194440768934076606038141970022934575580930252916011493984746018429633912824132724479747533867429079979079981066131209780562141770742969677982433970217896497648048952789677783145679375345507789999642527125363766569419780452744477693755892435660374354036375910959715875304656695642012999234090502344463511678646486899087112587563685321537327117961367431557534792643359663411517767969271538960995666296086416821106838218354115036736606095765966909949758746301173390268030645021513699189607924805360215471392491398131670051438015126384930395929121338503225055761286912547855775916861583851987025790604905465436230941825783307303941998535987214748806126834019689241643419969915103104498589030137621259995687154861151700729954883857039981542668838601563444031257739687213926106989109223882446681066644934221549040822372404176775106941932819925272963103138117833609860094465551687004741394344470961179995584796802665539741605035619994319152452421083770789116387346776629845768051842887922940237667284908168873093067784078436532862058951045908977846356436250849163101716144268498373651688607227304953276273241391081449129208956828969307906242882534984734488508119485719742489542275854916369498615001173259177479502989632353000233505519990747943332998447894095068490039619774022148985444294029979734415462475951253848246822595890999642287150922644002460956438661715969459130094792074693593732958856498474083829501988119783138421437243163502673674219196174004989297874678599136952859161627784871961678130310308772678124858594302567211569802282297119694114237408209399714449604021286729485143851552858586540684937338390299233077793524762332743863615514732939791385021868326754172967441875113616033320618486331492101767766903290312154968493265875798233983472937911343932232901276602811111912929530590319774385386582754907748297141635966278823763499175607656005663251009956584782653468206290302517168536488271999459733401698438725277758981129457372769016080028586544805668391668546850607953701957715534986773932339678844019924533521562311842931326880834277716689179268540828605642475704137361941546508927399978104394412766064876161729628871490475462517988246782077283138260788209209112053990592772441069295701814114837715018410131654043867499126705518071719190557271423465214088681500559414994795712129990116894252306602518054049132409625183478112727272526297883971181716811229903061302114921557608178598407222052596037411667072926170066556206731745073941344444057481265432470492127114331818545084451049273531844986519698449434846964244581096533092054375151228373231058921446887519735703580875784372057581393201494437891969478132939443022618971023456347047776397796082551745202793415302078179469389936139816887842258155418834687418170337937642558214807648888724827056890423264678774583748316081812290124567244829728234730813683179947921268409273797439527921963146597234518188164828840824850104340647176933350823084548920796990794583475145876584509963926656887204465094413908007718804155700475382022872123258740489345167744968644501713935195292186440522846412008869520194487204026110403322526062291368568165939833361475308846401475661757469565933443589410835582142782689708528300773073414895483596044453996922215350724472185236259597804436960223454553302778357182560247512352243950062909664595166213479749548157373873571550691056746271458673639259827632764732128684762403661011151897589797395444209659750551904737392934549201190448959108637818956973723508470999436212257197338947473305613056904777750526192796660791670596787765192546064882430625263395265581608111421295473105941123056480739602664276756294624036505531511065137739159988737572696668849999707104558778851268781832555423658553503064317288086074385541620248193029518981741605499062445988470729929267704840613750623411109482306206733071348104338738785468959136595431952194945965107902979192334096148771870482938861940963418027181542299479310965478455425788150779019755099713646623523916152490124728252559889963818246835552759673593269246006086913835473032216402366674663539242887160808734853893915661546867744980019689092765728853069561983020976475397571917555094634272191703802340745912670607301515995379622883670610298285990036437047788315405289374654646321735416090497241448500450173534067765645021447630878411924535331308706061932938730604271517695042758282713307571969682065670974599015806265071344438483128970621476306760875467087108426673425026461185476221049835171101169803228310385302355846718352428937331967076214188507873543850713879003005228076853783699908102420299642167694639769379432704624921631949997563501645850000562551134605732494492497950194987153090048399907936923233172884580199884325491025479450075785493829593443710561164547972444655467517338575531789535244347964457503866903368229334616720043293737697853179635730074221717490225019855353453536945825234712947317599153881485609410912255355616431517030072171604991625239132682762587849933455993452173651524678271814893106552564572415130333875470587883192021962842201789537758521822337846273210939064425575263277776988814389337769040744930383984382034429725784323066598360247647743290427550141600143960880042976957259466414625046167542984437305842167738135762882207553551732842870994078464751216143586323129242394042436164499449353443967712226509173096793049707702632761554614188201869408616171329201086259909578433494310889041732654589849615370649121897138947479529077831914195800081098820636220728941657821518882205739409355954556630914929811571797635265227434238801254846860302398957451791757134153626389328705664898589107805554164790979439097987551442587725303791437123446168191155893861538781791174785647061964810415841847948107841882024293044612122340961258624327741644279449255287223262481696441092230935923426025996264661185250000910068646807725603200504615886034717476049874677123519128114807096984437326170203182610095319395850197903734880926877457037235901183823368247800353348406959562853348683380422951814970481697603116701136866885230030404494222460548622403998532968861590715825862847749970209820612176612462049822967005378999902567496021637583916274419250014203917183524719518427040233854018037167578453445242863009017534272378249110504962102328423164689521947290550092971072052269727790926965073416121662828552503505474035647261668812101102442381092013947458473098586690852697615259235513334470289839012151759056686928329363571590121899052767109152683617960401390857720173673759134149021344842613252954671220327283063108036630189263785535723517109143247276759769416463385212955448419132141524301195666093930951585159873385727617688934226933482267423019115005473847972754865486011650681905235640633723342594466628681276115405597563705917525054708199312024580078739698960229395890375097209762327945863695121677484080055010312174303200477687668384233524936387764860960660130570261165486733992769546763593809012362955539789712324705364107917035119438601626587620727368233828648331765204690492717024683883036891136815825568778159886967142222978948531122513605771337683803978865406697212446505947671274607139754121475727070748131355493619319266696088621660384712168561803118207451839207402667588812057974253094060073101587207158730662873559493076954291712290560111307649980106510991950612727112317860903830017220728576138940401470665241586830371050200132451333926838212384657689704231961531972101395633299823976225758687897114734180378657949273521006190012931467862594923284341029046553594253010105331261809470077423518767086996536764314198393672134799431481675773122183109180657104383299144081834240856660640261905949005441683785084897671915329163306152312605487334760619524472608700292022023950828798184404887499036150534741042735095939807746481721503872548593041136320100183530031381156459429840878651931694303406418887887313357867003651148652544051821636183750434873205602869815321429124494362731001375273734042076222042106594672590812228976542512464666368550098644338226017849442567940282839200255732525242032347071751389052482948652215029616583246206801178887031454832490528402340974982778970356976196773931408371216715458331909168163178659902080810559363340373579986859306312196011876595071495764873049873916331239637976904756925987226101407570660590564607203146615500793683757066588972030338938507030121450300973747896443399293591807024797495745648396418731630194489973417078658717512410891663371834194126668013946309356071936345126474397356067246050931032803339141197899001040769170218433324772227167565098945657981974242805538623718851323470483604992818883795758033154171107476108371706954947795140812708911852044584562427861561707752679822054278769603949382600675085127588015109378817275359413799641978972734876001607725812848033354478950886112403388614419550402871182809639030525014189863959964024008797413614157099314636897351670741796404604590465043117892328281936365474872599968183470872433458943796405881407050379610138308703553889856046379763447566727905255873068290102925191103011689976296598995365518959597146249628712746279161052191387191188749066932527065405580735603028352036066610635925984540428483395618469882876110615457182523803007865458705638564819331439540623279699643423395290002692525991909161055819568344578860036568578368304207441573472332298714877423234316897146692537201656480772476987911365199958943343708641549756664384539404059928984687886704538405171669389089233427262096069928619581558440037682878485300311969691100194583189955271609669967385309883813729946680834396234750506649025884891323302224728899392797021675041359314343119841601993385177807130906652136928856172929883832581065324090669472003432533687674830581603682142754134025466358035396320203679681673101033855254548926796985475206718547260433649169729612651902863552274352961041158793832325813432978363585401570923261303052945585867130800824260728840252558671964377816892792456850289947091661553020299537042733077720978096443924800444644892597157167257498837890341465160522645959735001908152428579694476071548027313303189179337555304155586593009149865631257400058133893435164749579255369094384418658664985856386495567353646365439687134151453625138421887096113317472003553298959612967560515031269265757406111690887535195584928018192101533995009364697643627311651159027649181276188398387793912541529212502498643930260254201517468524714415348883987044855010272042945315262077197751980043830404246370891938872845065961489158552072920386149257169651060933307797695164453309931241198931556257846634338235432628386088599451873981431011450051702716390857130511397552731573386803171364515136587584689000142069358198510628716070715668874818416831316606969189198363008609783711523218731515728151089810884071188644477377845021622628829051150369055014264026654871994076199063853643302514911334727601312008072821765746621522472759711517716311117125442951495087377225968126700709772907932717283863664676970871246819768736871422182813573511395030116260231610417152540214717278699600134395041584036829758777718451705290926162637118359029600962587547203736106141926413131533810916500749026506400703110446668503404305712541483235531940158256632876864830812819286444322641264067740678640761856632598868393647741715588749191491403433462038748310608294451174053599677863801554583550125213764299058402837669580733324780384473642105326050024765295507688095603568983856176398632310730260159068333156391764440082721684433338378458758028768246136326556197192684983082962272766833279481545153314379048052694104711517412307468114005564481124184628070283558292117782113545520292769634151043273304353414292485294620268360664501696465384004724156206100857537617915307792683675722767157800691411171585939629144233388273649392784045394025523422278318148530181317247315479491193588680612745299595819761319074300371198775082615812260149748653123142093836663912349507504920577627955146902534789633104556484829292737990297501910122932963628201136667526121752540711875074483714579466699562339517797052894687708349594451628273434143879929000247602190580201989211921907753842919468297377989384455661633674797902590930037451641768056582017689237555598606572330920617980831315072225158691987553649011621966239576216859883389484929559841057981149858820107175213124676814895795374182240634382709097599974298879062794185866975949443463023877229932093103600313943384287299360359961211842847333835641064506521868645609882140726072925512543723387617236849435010334595737311462388502931498415014190009069119802604801674778379100429550045258487291023486759008628481617765192849981392364414876469430954070968949178405102328361349518749840236219604459758776595466077849288958217416719801554934988719734651224312949691634531175469670035496771617540999420846278498016788225799836018247286969180512404530663277343928653833650922143372124604088707095102084978899548564220957700651098203176885605473869768850899373119638828865001758011685169622378337729615115848800329800744106930416922003573399186236016442577280362452987297110425615888914827487311791260270060132169699345071769114435279063215218588506648459156872159455298375966045364506590698132060056906885675550456154964024245274736047599077256395515113870787838601077422715489812681347140287040836042830636672111981378320697783590263837248223587824103015626258282702790938753790450877796395416029279245962922002760565713266828980379426871387629184598293660962226134927730775075721804787963726808160803382476640502195807592592367911478277622749806609925488488174405122294000302202252655187097117179498955596903865479154696462031566805361244433528811032665494471133794318565802095157773101151656189022086219099138713968651997467567619400718630423142324022268820410151094937368312104106689437400797184888158599392780656808175400304912848016279892904350421323471029479565222084066591612906245591473730549716486373337654595254266838685738354668470922166654607014005943626079028598145153763672265883983131672212867895550989969196430774067686083566626449500898527922496481276803841241628574415064438134165482298602645867992727625815484932415328303281255945623750726616652765097804263186782019760650705909494177195043847466512732991602266707903046910878611801493212703994189247882411080096097282725035045541263024180862037566772913134572044941672124867606705317774401991874251611148074581617588365866512873145314389111141569534857450358526752670997431462048684175337480043078334127082045668702365825312264492936419984255984519127757179954269011451855918689307151989051823852809922178575174033513612971684260428711156631905926424585154154681596741630744710332274432683875917194937396575445146684203239989039979695610350689388400066887703782541236090495176218863568237355149774010878615684671115940660265141038423530655452815010361899650123507008487659824320660077624081281016653600803086269053784595330920095265553597015065952324986593784427082288978528496018565131396117476068117830595898256530787559827456511730384636785134541264808479032887148595485235065009537305995866425058537353760804895650934829156598152332597232905699434519596168281492469843314311511590647595393135361543650189315243862137462173585458458206820868366204240035638288071404074746711580485991490396897027958230347159943612496110405742293097397524430897871841758406723187770196394626543183100668531484663306756887762621011648586392386210338258907511214464704664653970818501846508972849089352412475142063397545854673489146179824050319410690006977543973973024721313498961189064913725855729233276488875688921558515596733652112404456693577018918060096431497146482207869087522384001606774459354433791907144319925317373753748442559410525270892552502548793164151502272994824488015948668430449389570343724307692934268400626203828302203955343725203772662648089729965988190019463591534836792808182134353101297550842689500684823493617145273557612053746069884227282899563669841992538381404751765177831377604406264006952833126753839766980682077230826465667596876941863082540030303773408733097445013858400595457121927673566865562342937376956911583098474722399296586644575602510631185477360167923429856254301506746979460916462023012431749568196258279521592102086966709587131218676504771451023299272482953134803225694785887006469564821149022676399614801729238795395994717435643653053941810919062433426392444437629039306930529608146511822408138544498498082421470526293515306923085965156856838180421277767054991307021746175189828629602363278366478815620874287343205851658499880015403212897040753067833813810949030765750652527821375209028345677457943270555501039425117134204683182741925552605686752541790727706901582628436754815170938299271623384071496132179030890069659316996129161916889607270989467863775883002419153430510962024371514079988863626366036523209356472818249031191850465433391894078320483356059420359591865950377763049092369005443447349252128692909773798456633287848654192064383956351081940516290560218804774069875502224442648272580785959214763983492488026794807136600078143109151037183508096460937905378458824308177542313869167415917272997617882922328494742065605804564000009704791445063163282265757397782019050127584333918246703872831955770379425118921229133967126949572485698844227051551531653643717615482874307020723497950981951487858245671853299694743261368349691793896185399302056361076717825599549962224313121564270745939033532602035432513092215585090374587947686644871822297416031783393170371111339323616972790339848615264822651289458371674496411915626205570470627762187734420525075621586005896563166458703695803310747881681716980012835977307284103594326553245761779721225356765979156101013615948660323724535010928155211922504308696965837443751160034893008094366691103447314998221154635707413814588912448515546292200900609990426175181190850752133564448211854805939381291824672662904642409369511517218284091386918351283557839015456768416869477173595400595539707492140384633499420175868312839800286646997250854230096266165760522721761996921517693457284237327544024855826867327303901192562330288261836241604893976249043248035154364237841350235650445664208291438922119751648112833944557177793943974615544440898722731200359486746892097900270860155651535231042160813075661122478277315568030773274179158602418052385791117183789843091136198993865169871643138192750327163514610533686367616034679508124256700236767767304445294279817521559433117584270923979580484772437931252316723851781477194737662422842817106079805798773128076486281130122285086353628587714542542369169133309968045223752784605763291763994783071134737723516690108281615253536991614959627702068500945715268796991215867895071993889049436793290173144069900512266036822496345093249694823951078308044833039943634947413037799745884666835123621844459902013594704334168241428828393281096953982713245166287407260803676719952896839049214088953037245687007140526993865862747258616130604550802863752879977013531926905727015524216332819030020983745737530257345370258912997338853617652708435633996447076221048003872946126739519250619993079444748605494202157532970365289815973076595734974464222723286938330108171873676538992866659790587245792839248734337689902705971623582338078163827639926364243440726213716968427948269072713820629808028744440616224804553007186855481154377149667974030951511928637163924002817907701343356701844085163274331075799201910514109813501548070580808362117884469983579753375640058426896860170955562578286099563863492851877133616417140217093369042339970653744382412885765356708121245537198241987994771620783707122707770798819512478721700217870106981237725880943183805723564483456686490451144312359985510081182617139019655967084154098303712286319472922410421907394721657210853658487883315438944053437974083323784015572647480062744501735627677117226925346066404042815004244439198788049054366896495508670991230190051594901706763774290595650994454440376175237491758619785784582068633922309299127596467965877467944915782365943369876379875410149641622811740634222294509119751338299893198254503818337236056188072495061187786644189678146871680089466928984687364949370251061454851514712259855875599832360596731104102432478557038017541091951349150623795753309702946880771429801826899529421501908474853135720449297988861338776073898325324778987421427169515119043167027597476347987355827555660428954703589469238573543757036922054355447394573856108486445075915440331284259873547383367921730403741064999258005448395264691760307473980912418590064200176575143256803790247516923358617051336868269071513674477519389474508850974689182616446677307490854775851968063175122153023074722621832036188675925253644990381370902736336931010198692430157642817165570875753127504564111405866997524411027439522677091669423111386812770051128513917772430384540929709431628147295681531719291298955771260073567023406075453667216842782768566187935735906863766204414289048792951010990345401536234252991068923970670510956927022282233600606440547019320513907634542010158267637486228705229411912217643151085973729414285845058165467454523133127422931799028169494996302055226794313507015632895690199046058175125374918525360834376182344024362370740310857501585664327548599549919280473128619252287777911816736069242489843493301818869192037680593612289227489186631827042648331960881712269024305850026628651526916533788779132124122143064843455040252278042049258836199027876761842768534223657065932743151621620520605003775298728144345673982255554541627772707084030101952112465131700063742600565024863246441799401733522530976519389829185829467339855619147631055176156624903569818129937237760050382523234725342459870086902080309423341005607448598092604602714426761604949689723103115936303879715498803058361887439480238172754684941730289436691430120799006385970345951311034162742557287840958436228781628780692841470839420132198111863288062570847409595476408480254955720783729422843954094555917569691256561843048260396895301132277621681891003978274839493271670916121542444646387615353707487275567550713084025786602956495619935779056969511056599588954930093868946898193579976910914507107666362219918691133702817840381265994950047118504886806014077317865964861593700345307246682769449940018100555585994544096552344203238034070509401108115462143214526558544621660494788746228581824830721731688200063493332616237000736517963135646053779034577226943977337378380183758264071695555359917385711402446437553827314230617332871992225499982316000574132609612304191433388281648004915982763548177657520268344139313990085606716470686979812315158285939504909310411961738181315019282741156505709661321376209284572432536437312673566278771949782032965081097953127827575117385819037842124742022820441518517669203498821238596221029721759805086075699239250744910308587477635474639665038679201808444531650060581094507413743739184880074102819804127920405128003534345091174337398916831984273790575960874804259679554497788480267849626755612525508253770099365339810410300171634689342022517500250671990657592726801330805942815856815434420542632072853016945110820961448216298931638044180939908703906923917699573348969704634551692966274279393950488227563054898368668350907606926246996664075213293370382971901909204477586305581824627184373487785990727021930186462334548634433524672317615322072036574810629979132871719277504656778047504278944427532899823174422917880237899667969802004565850634460507581435824348876916603171188690560764539282132928389320560461035006398809651904422395906325234650273555038896091460236057797431085135040338937889474437444000614341402321675895690606373088624006687501447035743646265592441955228288386359667392308896980011063025907697055054624666426329359470243829393563775158804266102726191435357556767148933339071982602956385712892742728803370990384637035130123927929787649288991830752744804747654010472214503092690908900890114251654195097823778331911199527846952106305532328814808721987305893050291797565943634305269529714539856953795007489024711085458404511833457915094352880557143383853658394885613324429277318237785228981120402198495308718740815676141395831370209349237825220712329275657795916342355587357689831646258370679999171877607673164531049482082751333064108254385061460060107309257246274286724444220496883450179958508648560499292812871247498506747091519838934237889124475387181830222489459315837805772197637174058178379609677433099321409178250869711398854572457853929559961922437722299695558993591925646712965281041404376138749502134184302771866657906532830889656867002154917764973523848437252822714964440214920736211590867349634051971086288622817471251439907066898273518789914426894111832965388191613808347625185473900898316527105893144116362159417750934493664158805298953662529515165645074903509439707826909180492677352205126523191302750607951108658830200056408897364298009583407451852516690533490709366747235569798709458865794989888156522328629420938295082640384121035465720910597236922741257087896176842567777905016810007507097677244618261537015476045008578734290554793664705434620097430631984389704409523906049188949197920929658553726632682144237247961704523875023138728253466619960356587630627722371300931858932960400799446876735107491493484230868170692827237178441716336373962320670311367432610089987301722654933832576113703498067059447546682114517000622399969068950738478255223493685505446584857696534568871748064850738921970303851331015534907288793981928173315356298637657646152915861363839091249234231391182464274068549921344611084322319292246476044957735355146349905059302723383901273307655612982696707725184955888928115194454233983937045320602789128738856803965176193081941675642236636943356026747657318702153774914680162334800328582358077606577535460474353923139148587775004707352140526540392629790973175946914463433809441337632119790839483656046112904104746624852538857518862078452608191473796743280269614228617113248380071425641880687415683833663102759482426499323649897342206995882160642878708167396874602562656833469619233230892072973949008462647622864681929634079923416326986096090100689232324676815205377441291201890082662356310078398549019894895012190547900812511207679262031744728052503056109579286222839040947349746370315764937350348372437092054520642654139346350091431859477679757867034056042471450678187274411817689953497302340989001289415839328690131052352795584513112926640445296987687066780260265619790485158142398425591811733115723747909395097162373415759081355047582482949939437793263979989688133245628868178979030529580618284613888667482740571527222210680760865463081728118333413368802940046008489726850265192822087121360051476790213365247553365199460584033844892645560907659067192485968639123004042774465599672665691865952812995908036641144029013167991429588592001483793309629571404124080066746701744555214072255846056354914741628695377168630039465951199666869206396162096049617412993238005221693050923001534179400825970830651904331493510726240636283931551965579529360253772034789161842401469277871808737224005284381489413115944877231877368828520320088327697822510817239363569138085643526115600215895198138850286575350554000985815378914877109399635932120445665597877454093442387905589536291379798950842206905745160622765203124799876727405098586342076966336650555100949648769635899767571595014236592704815166384146158403009355134688616461483835229950046293746449271693661365625321609127527092264837211987015941475370580747546654690088982196230170479376089603955436796202340511471063269587253808007144697865740862290625611273753719541765518101250192273588039634729202345839446525511866277085869569299115370627956516851593059499018886710389238481223199333216070849260741896253605949710008695585407481840076873888395993643298363441958674204285131581901576857556289399743265593525040374390687628513787796484312855591063967517138349938158135425271769758211830343241005440531422138749257738879298180848317460868106898653257099091866529791336716923449199492963498500536617913960340851247174284998520871629146628744237677974755571832628512204074910696978159848269829029832246571144836816836542204729102969334437037020961707846665395425398398839742632226881329755810983974722805494204298657564166244176235586147287361033433783784236198809351677241308134697770304537366004970154220346153423748283066177630410045654801839682571079146543583569963059275188760930845787774248774950588020235380540370355854365538616122676191694873572892906469333773575331420041517582739144635968461653169962267558775706124843770065336544525770807321829861923833358407014503955751537800485360053066134044771708178875134674233067741690831946335512908687630031093038493988467907219990784091681715486699394615598805904473423058810606853227969847694182654594943414958443449826335162119634566933216225963306764509680529585555226301639756159327542221180021430591307877921997487404146359793007883061174715382028651342253557698960941574574062562737398134202668883504960276403847252608420918055170991830166350155490666990367229144522839920751014622254776873155122418710837094817873055983448116004202427770278807670470734651425203243875889428390054681015708296013816849586547955342514307694939064451972092176283915108482735060066198896381162173539682973440895897074189112713154143156750302454642945649006932883009491829788218896729905214064222645880571696154471721823379190102227415273182249587125067423191773386743102742159373415379115708320147800718203195365828078751511002967311764801163851928664555182613360694493128011655785426558292188336713027626677324073678483943423666264504040043880352072360027006429262821129584998334065518966769544134191038629739880744438698331189863277048400375692002327358852420296379737109436311647303180117765752254471954044835561533698325819801724537432665478551854073783275329344677478929231881436205223984406914747394853236180048819912823016918713508289366113946841612408850365834214748393696465424312795137365102760987718952685966832252657667803982385180332863914052892066094877421558796743069994087641892793110273360521483474319783602954464770364743586084902196207548629990145187780518759286799060948443359400634089702937463925862110735697402784898688435415291756295150900091905960096877052575123085949657376258588262456450034213520088015297397660574005270353620392118350821668305279723759358125771873299151263492178047303219656363876564125693722519142970157865123393326681494330335000181897280970812345505932637441756708653893009819766342433966676793374685305260444621230277994546747888080811217141980815647605590114804663745481867162745397465889084173957351987095291354968689023479324458196026825607548300825730024213368675886402155865876467948058647771118379941893845395151924424167187140396006557953467821163159613736193525358986167782455709615770378873458039804081270138737607234424270788224296327961057766336859347312599220008906851103452688610632344509699637478095334764243679303287326775389968362425487934429075977581527850581642073699838673417222589424024127469458952512606801305507300941571562769835586339629526352356440102687909748793074001931191458102426144439495389106243274522441993350465929090047858595153204671897117724449501938514379622695408591686320042082528150255809607676078581124376867030071994041378630729033386326484576671366606863812658009531269094404091394935251534240828198234598418275380692915608296209523565091904266536089284262545823138507539621254655606626429157366502254977070749780093848480711395953414045686117030404486040927534498251570426895142959809079226387117533716084453608768260014493531866062936978306026688450917144641093508343618406077423345870699720118330286156597198590218766167136975563830488712657409022489543873088303381391509057779627407602291588190594983114776510617132122850475009087671206056808319088662819997877975738082039676764051983561456790262708033680345117269668904545996754950854864970419151814712104000347387205317341251458028940032875263637082322081416655269590684731683478824070321660965658698744225602843080022184926072775968831988679211886431534096672828338646568818563135363942746087631551808936472051484322519902228934659480902220445117292569763197463675312548194035219693327588591211048971877618244212910053577315568199417316870472433614189608543393683492048370399418198674444582783571559007059376115288637795110924962907050820705918987916230578104666153959909950924925424606005592258766522893964304486415098598610032914483077073186545363722516404346236470087731396271382992180239030118605275770262944781052258104564637025973219695657697317754702552333695355888081122887797579196049315116878739773991626483134347230227360090542761538975304329066731051958541676022472822074332123144742805363191631948827361545771929912265297264375516442607448846552018107267142297398921854931055119315974324921468081852597413866803456870381729507896056311764212644158923639134309699416804848013349365729195185077733188641168953169803780810051395293031581015325486826553725338973412375972731314471873127647540517826216594468351755174230087315788413414894715792174480737473943620021849725364989271458496697230986018427707687927338404240762242251297442914295211491454012848963759457312998305802446926280737557146122412727928336488169321480144556755663215471758313760065968683777523536926082587344904879684392847087339441566665995207624815342278446646357158132294282576104128004124647398612873765309070252679981337996129440546351719003466111118939899827847024341928214717196438628736707775586129599776330988965403768238989281069804787017883886876124717675351788982991814955528572563113945351614327783742458090887699784992384041334307848511646507880248281784611088030879044053739198597335207390299077291194680039171524214672810058227069615265600972276204611126337525718508248137910686059970650297252345358852532320984422236363314376657137402214994044373740467152640512089444787225803475529241632803705681505326683978315509173116605920208683469124128649410005547074860098802673049283293988281286911251439434337139507214039777857950421139926784966552930030127752015224452021224842890215568926588992946387772624924605108760067052164953281779151291560928000514601236492859055741472852328578893384658953022421625609428548045716970765730707354271249954135101924832776942921982101692093588604910353032796080825366399128986540112997614208773639299303462807080293244373740614315428412742594978629074127728071066334156713430191589315285346405079898773558910817520656952519875357436407123397028047825350605390306778549094508845777558338411219825486795765691815445274057494945638486433197853989474125750355161987257850398305684805718561128825376666138239302688376601098101313802891810747336411024371262995546569146526636387511359539300610568550172608319329228061283166803606150566558882751136492432101713339045590142907587482894562201078689895617334408478826881203730522169718119767337634071561948853826499973812620049001581774781993905888374665711059828730411656202778796330903355351132941441839407106437853206908558606386059532621424590274866203498742249948660232638609186537502075376022577096964572827490326265627174751177857465898640349610186435924089630177509000462366128726955853966636327573564852182203322213512959737802883581969083594116697832946709705569662252433645227944615974173344100923219584591909913165858020019524359789182839891254984764572801191722310676076981704547559148260899402177530776877060261369600178798812591063545840550308522371015066512148561149418646438380161985830584181997698601566664457027765198188801911022983700010104794978470867403562504845572432642075545668103645135618361103984158444330796946195551789009120415377901861925825320479872571840316502250514235170270380337840160546834912980182578447041183440439946344392215710147543174338103839358841403823489847642441803481111214069773125846095144148964708951996585622374049929910756693548393773027464711916730560546666593392987651168352312270184799822344862423769494635013881252104415063694552769004915057269564648098835286565631124592952411424090117344274299630347248756623009715149125173527157170348938891043895253176527283715953703682486114366090960971256092553755687445194807325009589624554305971279867261519706180978094530787271978337891754013159795676750586807180632666600553289357648275664330275398681814605866796374462724929115313485821236436163561815828240356442314750596179768521499756512456680459478945364634529191091778890835552159303662632503623555983288975261137948751732531995794365408287662353146303572483034182239674275781468783347498179630829783991722335971003906521001545118990255786697921571618800206093251645263717217070434507973687756645375266041788969631996127728704795681948927874986716519965568750446266977542274856655249784646213356663239901013679435667614191267031650559061998909842044210557819556272686190678751746903166108787825944386181558118717808786709713766598211935909032992954503343464583879700928716989800766746929898817630784479824765127137661013379999283571116020845739205780158996925799801564417003547280235244416205817119507459597753324492107225077199033601319015188650459237314751252742463944970170381265177426204644669359721945034975868550619760057988276315116777326189606345875155466895114685628648930825932557988218478327445416032759766906822325469065292412084490975958464956754602453906716788983449731099212898376323447145295614109461842668936901396452195250341999340726522862777649934974659800043446765803441563512582109380617952142902452724636630050882771463253536299038950726728690190513042194035863322493459721484642546321894524472658355290512593656975082746254701985816274955142381444900171954369443215528481201778500262331628640707478414643733335406908027709554660004132352671353777866894474544810265533365105372442082528766475273818635997911034664767459088008650912432735501908841996043679274329455600027835132669135482732302129927163457952877255435667494347561941985685869395376888042060985782361179710252589742677320908129719985074025119499985468241250027496614868363679394651592021825008212621337766082741419592039600418593787280014288839047335731878034389756722552680049569877983764834362517333900468542767786938250994199615271191771881070152945095862786335654609440726193638456397244286904858162029228407964773342249881800146032962980766454273515257165680210123548499620860284708545009256452989949872796135756457999998236094624705268989058342195974227056172722821404951238604169421816757407484715113283475542178224437069187183205902646646965481118307649968057828814400240849591273507434320038382696405438981074513474940058199711672860332529408545759623305131523608178301497178459865127302365162819112594567301783807422865307480267295898965527752266837497747321329551845697162088695197098452774174122586291113789306950128780869252359229457921604330293293336874583631460768997330287388325353676093878942570917719185164232821088940698714524807889784630977529845380188603019530821933734685101018161793746094513750425828551651222224897614421426719842697347190791629235524016486558513364019147913910100508733317605186833460427984211389026031179739857536089995548669958426473532607814146028302926616761502571331731552734385632202241094977267410475243114561657081519971213123877708001699677744764696782376540061184986030631401342902143419070111808784957441875603888416084125187541281089213447690247790932869173904888255248993600286939935585116187023661474609997443223490831623243064177559559559587458194882410082235857537551619583432224656576973629006666716584494594544419756936432430672392455796546671851516391914090076496816555673324921309360665052878161699712701883325587881275497591465652533207784061716266818802639902547110236342233136738402585489477897318102916812468730952800388616979218283749230526026685797023153808865469639702721337567021766493820118244607292014648946364762172048771059607575801771178937259772091069457682088697977519037561454759295970650470546969500230643540686210208931216874310596652918693246704209996734176728460319722249216505584753699659437842341648151543748693409113090133805251292891897772397674974261266824062759310217341351402932014361032842454755800319689852403322948945758868266222750956040259458620402150010899826035888013194817684212572517793336025596090124011741994974914439812714019794080566393529531163890336044155954775571553439920793336100027335070458951206317845470201005314250481592487844880082691876618347789006927051436177555411361574366856826337953455806100880604757987251795463349301217827130533874281937862280896031873478070695083423191884508226010443949329282992676225707380078925915258972899800561828078868098195562879836814569969966737855935171286758380226435168815790874895169064241143394340151016618334275889318203451932993638059112140012100867775059551799443210598341113963009269538211503952757973289759913660104240805465161398333962285507956410072784558457555329349365027002470761585479842456692944263427611527439088361085721759932634883440381440554176807434771390958169871560098014127302901110582637328334250491390092832886431241674688766115767697383941985298962794032396194562961600432769186466896725648021474012111443489307147807215940567077208529128405113596814422579112617205770948735564471497740657765185985531706109850267101804168305811617717907698553684034647629438153747713365165754810567823851839063359619274497549888171588564703601956562419842087040584610607161216707043783300137507840323781034275108400870149191375195643412833435766444178150292081933106063548794344093282870315535130680978630452406891555564356902529883135754741493256119531537184140515921878819196778872826483183212604570750119295206009179987263065905898782450101022351515332048114035911110828336022069957220552268373598042484694294789530590318479176507629594287867582223870068636905555748108851813425891695649284116448649698970553375384454182053746294242272333027083103363985426904833781473567086681833747455673333708373565522031076518311745095876534988105327980888130275282497510407899134627894445541965982361344230223722474409764566393820287618619479676785594911226743194917294287286732293105348145754430371490274175686278278558006327801667442830513822111635868596245315457541280576479035202207483178516050068299884139765480377687468770819631790893999204608658001800971807443021676842457307043355797478995661309588908980148592552297151794554672481989944915034857914473973144812310658208774878741849082637735783876392151245782578250185796471026806685457828212110999388594879449427575437697781226463590274658909234647773199190825122350299094613076205074836726457480283282299362278831860178550432612465401644010655342939569782141225968330433814087357657359423964124030056856276266716395743760125990325312410263832885997924739903318426039964720962509498477908732501122488457997925488202400602661271775473378750033341856759166357983869641618995829987485472143404903852672965701457745538114899893892269081796765133426184866214895662287911463499992948129400781658829439256137236625350181667914741423801633608575562701427825766066898474552198562576438605120188281895067000961190272579127341198122837336992798211476851086224329849830945964046606827541544997377235677777219803462961457634421235036163788225232524338752289472629984492753737796695001980000180736038768055547136300664975325718082499710889187185067922688915737128595914237399320003922917276481089261312134634291108525202463218329597346315897427301439822410522833092577703382861088037379434070146479527835513749313011584337894202340190331184638061086346499872961700809666392614310973496758238409763797209228374094073811799101849528933220539617441224199727679993174670895136919265670677920056346263347773972110893787372654084067271765921341094425353847125651595362467173453238701904830707883452852035546121833683760664904841578388114899130963143826867493319963861363157652404291748943811045342871746314828445093354187946715131785830936304697345375670436744424113496560523085437249387538482708958969447875629210433596181184850458552447751951925175113648192816926956389012574502734588893532366482949532401163316901505095120792958889487426756489237575447434756640963260052358668832357624101630085299531836924567045245924472896257841022813537852900268052368062590156909354047216927942763275975352335555351349920381605341593251988519621770654852892674272914365855055773977511002402763677688793958562485074976167094501245654725367132813392413077613274641513041702128267340713936378315646207713825114665598924405127607420095453470077561200340636893102135376961105440070327433133862258357410631716667504525029540437066872998652850217450851900424807484423007400561331230916155254655571889853560949803565845811147313547068535219689548488640004716439275266335581145431381224457796037277109175615436115495227889250574301818785491981622841102948217511265132794854094423821977407981690502409241421757990821423003461166138623345162440663201579794687660460745281938284769302069307937314191486162232600915765003580612554103183050885042836639945827897160869528223825803599525476565332250147046401117275616949191162414635320695128786196509244645591635495804224887015776004080500528288918731267150597103977494902932767317654170746444993125838503343324832217547612888156542022456882897441878239168181574794989998350627635154175189381312650606539793113809768025881231303731470492902927744337970084478831144211234272288307728198422269291528088873107518944464168069671383013120560566164185446539175853817445177611543090758457937911055787767885696315986719974993145664548487768713915858822398368303986158650014083254890736199815272997409425179253181507127941492048250837700439868388375139043115829083972076529221539835777939655462100129145186997520399563678351598069128915687059815937480356513847252698988770741383689158309348260316349605735214111156269051482515951299658435507706405994193886547742208471585327076529847916904182864747851591538129497111223805747148610306599085343541146091503964442953786804911234719189735226067554890204627938775576262936699664055510352303846191360747932328654310861599209714345277201085971369958439776007936862446116799566402048592502439034291910421963288457644744042447573469149225920426279805346748126948380120512107198492183468144847248419561046359556373783183214366449682725449906992759496235182181293807234276965867870260697476442637394614202261249261449545192851663080654280376061170655976906408320973777496746727860123002798735981674285455449538974291763861773777138188333138622407540781841086187272843036067548412010815903764604652774526286856292181952078054937958827182190142170064754010143050053184588401730601047558458232241455258807491718178449443936477259759384414649388342640297746789811598845065050689690516788076699944115742446347425573011494625491473162232530493701870892757289423994428520908343257244548714679051405525419425078059822449126264620833063587885936294130648432475421830454606117657931549017363537685590926673475071133357964001974188084969544750269753248950485026099421569961095571504454745899900997990804725849990184230832382961131609962594587056002565124519358533947521311957797723004781773825206240608156602602495223161013317392446975705686671232792503511435581244796206649498289456009499677920483009632191522339507162394704132001448747565561592449759073092536908480936041606085652081331702421232759001277927269844249560485287720387036082071277190638109467530171539606908916344127629862341192464055724153053006629842718142672209886306995379970930794434895502343849414726363382051123069138086537715579164740491474607472425006287399283285754443476781565033727015269159768776950136389329159913820363370126973314450513831062147299339804833359847633220942103842517311975587871783565902036391030109865833502936769304220218520291361548592964259059144733098215617394308483559162239528821820586433911628561859478976144837349490811336282087732659871313315033435590989370161935860089472936024349108989051397278032434163557249808895012089567187446734031626216096906450315150171350102671057040234220984351346461826280687586698970272685086146086035114722063005666217549481514005657123632895003607760708241768076963815938018059402139621137499882119591279204147952970722620603095881259924897751171362989764777792434139572330346924478429224384023654821881921981409937199099237537988433848652283934475707659322237139854314897233860505733589693714709649872978458145137856145383071441360186110766879173817704868964786092710849675670503549980431785483068503543941931512905526426305425514985808652991822380896928875629952001038888382176778558210981692896200352556488801572792780533304057585872902189503052376768578825850037688426123951110035109783845200975561203646070649395884016076036823428734512239773182372014267458668113616788676418898015650506178270031341500099071779516974057623342126299049830051298424934812658834964725643252764040826952380132428994304771034191053363233450152578456645543660354496438413635267007716801239590230886835334340332053128841771926064375963101467483015573780821276799885034633401161323975808985546554227665523618299094903426876461502559908115448985949496018916599707916335918649656697277844645814936646496175794618755719617878163562725995299180346306121092367979345393851105710139609064907501389720896835456317057936408103470360525165428741707209222596972014884292941308732351730879311155669352157022543057589013434142273620907066774293584451266803191694332980778718735103106003296723023875481050482562099761102173140935395919555844439623411079985787778989819873917185149449056000236374873523952921752564383567414652256970895407677805232911069744462350982575665641678531837056337804634997880375388030510350081618338045305050434023898907995944637848981761496036032764934582123351010714234708596696846584374237231643820507661349154250146085268007497756739658447895753953427802661795308772226588238051244206214605616283617299469833239561101266389138782971223933193179873504776278131112110736974385600923448152719439214099250790762928476398725431815162859998579393803126517246933546353447761057684070525282741871389969675847795401400416732130726236529326016345999709571800585339957882850200054187430872036534048711453120914753744071657170942477758637015484634380640929630375180480938888689880382096912584688368987682469716959016880700191527662848622644928634006103364532163795212257947852800737761764835558142323033251588014535463579693500892372576602189033012246187502444763011070383333133343013105914235101047184994908837712974774008134356834476752621002070858351357031509332771331108790394407437580605319076534687518406433740387512839841005727852959100951876185418970265477504023164201878637721832745318848603482771451201734273172358022265067871323924725002217939293012944641875173114885711334427630660102845981688825161082379131072478796905246173454143305532401178208786311839850031996134412719247500410818840646215743747366365796407750703674475575514202666160591000133649267753088141517591284931105145403362100062849524034618443599868782638608936491440619506264422332899835797961019330292769509293800179948958356971094698246993137472662132778676552583766320885465750649880411681313160735485412438459143036314379475712036281632596153719518852189006726771498621086707895813919607630352640395540245382544209825129635698722674802661821488888129152562192267626044448334658043828534523146785447743420049982717156184576073966978522731927093702388277912707803161866734912262531332937603005061249734439685268386395855081890532617993001912382756054579515077167448508983429062099003171276783867237327062540649135973190494272754066005199700590840321654452957782187153370469228211327616378743703796456807675883492988695026829333356432768910923904871565621106110756208441483153454168788924402787460939520099828656000423745451244176873851324780165320573226509714883794203028588003741654845182933918182444268033923106446689713620251094147970566713105255929382296921184829664467289949515958521286697559802032796623831524715729138671234951362495312212727896116263517215031819974839799085727630386337763024093001921997736161949081612546970671165296751013190187492557621252698032132437833205085773615561513111696392931102948079677493496427999060078088715104804381753212977275694758408167394415475059628220803014137880592758181461453201868912713256831379910301531630465411053468933725866402458847595676847900778472302231954359914791428018443513859184514503027969427986761948646833278529476175797457959666627275590825053816751494711466586009330136315018407792398102964827120378179994437028651376603306500207459840766523501811343848516324658349145918548053415835041562050626074904747595591913258914285868339679706855427093309475315915213016492383106204456592131091453921653529137028650965518987808853990937460083691121793100381149577807935017306369647688411899014187914951788096002649446441156368018162143088102293083852377252342869386452599744391877172855923886098721168345001491537995410955326460832856044154900576987428123126776442012134751540301674159508226418151855301808339296971646590298508375299723963886065593498027373398589679537225759534884820668502078074413667025879570951458199305764207943381332188485064598413446002211827220290355574910098896504466352947788072508166302570177442460184530327219521322481928315928969230255210821160622236226707608143513931271462563302254663133685471422754137131682414447949400126281472665134666026345211031670339673146719066942590477517038455191270960799072214817583152990052986460804070430839787902643575843818834423744769329906174243435839296742396489764202303378232322511872291960315025819215749787383786355163431609799211934608759042078672059095798901824931909227268238590231295282039069150989831911552798933787522230516256111782568640134705653942517185707583502842897945942396872088219937422280478192648949994124141139257401239560444851051363992073284976870956317820289514099491158396433144364428632634251269201018534721424693282983508848083238086374069677357853067737310964315920326881799806061222548053070880768964292140581050575098565485081362694527774739118330906438891544758566580782356604901225944262101062532245554094709836616290729992121554914784895191233011625838783489413635119324258807424226809439750728446776523346090293737132693689588166028238480663788848004601457360653840115771959631808916717448302520352404618869171467867071143208345371730285175369507133823362998153733618776764712641384887182202631291695102145982592802563853327173904338622920689979437614782931256762148528453368526054427004269813869980455632221694711917247970620867519854670362870098855211742270816176076235171221443646895583807918310534187236367038300312272076153504098785050906744062585821773921198223674537005103223677178735828300679850036192455374331387153582344877983427649325875801114509917454330878162941890756213538233370013402091264597990747605875788243742074576201138575475130363548436891086762590568076379734734129104420615906506734961734348935145039363952617949361772426281085448615148779440894160239810060602906385990664283964903253432652733460911350154615537975961783254677968353156064788561284448400289623100438300158008192315384424875053718162539941089432059847140513772810448138056694142674512337748196512256656239334554608128796663782183409178198444252880631304547011748114302656957049326025674891295101152742973036783293845756584713188436280533686218252678307347112141086966047958141237765070126239852888563063792830381037439348120140055347245475455366862898282535009893526911740277283661336094998756106836044003850710523415561464296844505735909915527740304128933688709147700009792311666019968902360106277744412247540074327923698893785048839757264921619652869120207212418853905171227236631478619124805085606616715477618163161983720836197395970890570982575092096019779669050324142858318168847487083739693531989673422527752998958675832330528364091610533233198183551139764432062884278697951407693563107332607486858390294314499463665650565885898180617754406379967848408495544277062539984718380259450348490120863054480972037458563175703270404369425627475777287836794568678615178876366360425922372223263054858137785428567276091462885777540708164350333244731649129805236394631557850017301860496752258602503601678167151316307674572974191437531605132156014694927073528065026785126888627274833900531364239851150191256638914430448063164009124793479363380969462675735074446244118274215376569200210012256955869369178590434312860118165950963701459772806113446922184919059326239970460620613649644276035181153752214705258980173189950591315547715627645346979033765587791871519583065233796629969528008160529881063345574069422368207336930019412811732600153597649453730611070997734741016445916296904465050019562975176396015341462552936483040384548154534171352473626737994841438452314588334734687335417310340888364686129045911378714880859344405437430021617723287984823749704816125177435021643100259048802273287505238847807958421848615061788319748868536663001204525804145189551808292837152045001282532060014958518965118473133269585692293985073616175105489070197636391965243653771208373268622532266312642217791330014765974943873069871573727463690670811282050480319053209131614736737487230044241959153822242107492698343613357246090737133175950135078783617670951454452370128275975076790174857515244369507188313384390327843148471478115514738279934370130782138535356854698575967653577114643916311754296972039254071362663937286152996302998122245447635912656603944555147251389678776320043067893660947851634984758393043442008986604949728726016694126705018315635286872754546532516572823816185473060150596235418702390993309288902204760924881398628835505614125024638488373624415268560646442034620243472691006815210428131078832978562534776729201130330729992823819300518075717073790650581361746655693271375947969001439131997945269254439675521996069657205597007215174725143701800378703063735022539121275995308527735779012290799593885446381826839955212742283509686433442354329242141529907305251102261744269610427004561416369640574604020553130973496523769263504714308286437633059250037552402515781194712394286169646516332214017543402516719517832749104626404772369407409098766441654194171723387415558154419355228663103083628512717766658110015115336048373960560214598683361095505371128813092567301808534190680633936102622739094022792644210527117402174429294532755941122577305123563404107738671643130340330606861025085361169100269773733453937496755999920838835197467294355360975245865974892072995086592518093507963474013066970026268151829099986867730750567635991515805876882209618621215375517895475030746900593130734809857247948102274544830196763339881809109769097028059747048680514949452613152944928691829153153341388001455732048880870541763261399817501624800815213315686213645089573120947795301840720017655481406132048517228285480597530261779901821185865549479238436458603971286391555396487338819120635130529041221979455534986405159401672018925187611279888623011020983629962954654810749185675327005268318685336776421442442329496109757063119585229863801160918413985830071354336001892061752908072313972076149957423820923362546211680026901040491024772447797378857881427604622761365156974662558106108133055465643787368085730062817001980237447543920875096907658909670448960474658184828761099479967735517226057109491171830659246915969925638347824253805342871104135327751345589657158818248688567544916916764850170107203624805104310416753342944020241592399855280521780275521276540482237833186399833211791500638272374423126329423838305024711170706906031925164129828029838801451336100847862265480749120035765926354143067435170481965145935865453711155063618537626846405031948210563359906065308458224150909820920104158374752151951606329852863252540120259941495978741130718584579543656281368201189098254217168833114557636654835634909440229661374854201727848486548923760055862887327988762552429504739434631631025312624594874028490472036989307695958767085817267702256563910180797290164859110523769328954061488300547380097417861405593314490400234266644102161277147449658184331581555011717113818196403632880758816103593461094500350183187971297986873822251194614759992127431903476625005509292162022806940297659202930355118142893711452053055577469875162823418800312271080190484535819987290278296990419407274933718919203042927331446181197184219143516544878009429966107623928856079010800184587116533241154682724178615259799606866268791986788253714766323891441288394700408708350293831901561301127242067368196678660008602334514950112329680102857797797359608838328099604400562113789921986651473549034678533020730534387055842823437109010188107517821170516216887309383449286080139478139657755986046127302010012455925201984602849058974880477306534346508478976173373351610166507797513272486781320448335245594250257223979607132072168951653406994547302530582233463436275895007403627889152834549672801772201295509187778537257565392041375449666923831051624365135630371356058152185930740858909696533958070222127454401622658553073149650443787859473480440225771689082206560508127450456291030916270824099023492590845648031925400508523294167120380211015971740232933908232119952067905463692105608070823133441288367495633178370433005928574785117800821225133677424507552199964800326897631075907910274126884369148843866154437981490279149813633478893500403197846596303913064241227449102896981566698041217924054097423214163505801323362070872739745375505113840103389391713497141804145409593356931452216275311368254779537127327264804078840895839948392054202706289164196214656346269156948501391449059210305813002809064221921677174577712124897573142779558400830059724485218747042198722996615544491187679547019468848767031736582380578478688441353861833084468823551781579465663733925084594420060499325336648787685628635500516445459952737943466531572841162630548389748294907555385184959459044596878416169660001677784159469033203446543008267676821184683899947992298690342389856942364758191489830929627825129442856604194036836573206533073099578446138277251479948516826018380088176473862629105834818740687014824479900607914505384827626184999856991615864901433602852620672102421013116920180801378181558278016727734400756872460202911468046813345735572771292800641382964171238568074706623002119437762565396759559413437844182193402896851261108608684703271305328866937977512550462076400315233434965288090920054713307840628586593914912503935663542707584854704606445894490450596563086135695537460663552573780434447424089466799255433021233206219714563291008488121176193284665411113596887232250635927480606739607374422603324847927508102129159521671613956876632087861991466044464184455283562289832976386598509978518218213054923976104914031941567005443230442733139708740373967845029746487317761572852853668610544923356028027128548140459069015085274058867142176596996225757749906489260606233179216631502463762585703849685357989130073050289815461865395901462878370878007617454721160892487923919029173099873094362419842948198055324353187827072293497093980757378666118942223302894202066094120154840838683550165485932530543356321260549434126605612970166447830937615169019064355540846041577541595572354764924477479043021018609442859793787664645907225790047215112836324152380524177420146173997030111870411716119866141097407026170688122766468310967559145720376312717216633218074863374605221817659968737512111747479408632642606153608870580401286867975211748349925235276427029380969751156677236380101215050462153597318389910119824349758747998701452814025819949400712361758114612025190358388567029863885502576064969706415697675111481259431106725586914784675941105299806239869090979550469339149647289570695204435020677856137522445845158426246587404379392784333746177865568255344640896375693720481125251837629113466331858502652923052686796462131576137532045127573792870434261108361293897543184648835225998498803072297807696948758213970550778934273954824497617593449824418053506484821198984461205622339761869239026197497669974790096629704869880302552403905700161636220050276357208946023948067778237302847767019698108936427603015362397059500288190198515650175438612850304921336048360057915200656301691332934366060581854974231741064253002142637433946113711553099271104309078295489154919644048411775100330844001973620311024829579739769333290267031135053809891036661860162179180872889568412316127611617782492876541895478873797771523753292294981153739133320826608092235067641001586308353513330728680410591027799040657955654262459783684359821761906471502257430573393503016463417853451512385037444362630518748125220189367174069684129359338861729650229744976212187713683634117795080020121468850096712649558881737856664173670600919393726346966393518963793697117119797911351042167957376110334942078430220758403887654667262965899121827840279326049045738122766951538358989612392865160054804336341226479617367788264400444884007070051080748464677493289482268593671991614744077587427214348674753058608594341089890271340962506614211313693553832471635976915292725728396722809085732855343680972648075944849430694237817723365560450627001123402619516916638816315618063421259251105028861220513973838059319741394081002082444532313437143478558953510348872034561786919194638500328825992341387615028888406271106377061853311122478771301474305416709435206496015495448688821398286612158281024240698629503014570804399377055248550858276157966269423988032229915906698789043015676969150483933224281022574454730432270514721239229862474718201635321546381137173889560389578654345595206144671484062920648257183282831447690391514797319998258289163707584661095526187697124531939574513497003760622388689631843107324133930560559961611803639884737156817354366916266523065369184193192987343509080911128471452451799512180200962077964326754364829998404445706208644674310233259074867056091000801694989839533804162103740360092338805126714429125465582216142162569240308198903216908252870983911766953047487978821152819974116284823898661728647218959411772714925576050817481874263901844659240788611283919570053047568527534787135496233499457740702138108008434923759551952147645144978112094025813593458661490616803776901902334173734427329220387416083251550585552201442568361274577685893663554463027705496257836505223612643550863579274630832090608915121154129594952883454342922853605366222852431705726884425586682185405441394907221364958386348121169176515257195376247593524810340318205233085931189837214831620644226120421184516972869946280409717222192789149483894875721062485897306475584132480482274764376003667037420081359543783083645770859529467062387856537009562195201427896696973697691873951440986996908364802376629242599447253341737635743173902107374312294496672735055040661914394214114654026425947863289334774013454054824056859953446961794362381581053201063464800333431644146597603232180864031289683492096396504564922392884272002993991505213921513561211004754815930388145768276045666833781625153581598058794113640293249286376035733845007714756686006207340565036710700137386791870175761194816707745313520228387078683897455297055715814161828223620018099703209992179384674525352192379116040423749990106542531637825143494589911169357707932940114339371823589184171617829912170079290422122730039629468532533432844922060131084119755300731768117579669543376607970093225118548954228384879819645840424844849133085540672090213964806760489800473040783533568282106346916349141777290643517563127111400683590582115122507028932637437149238546950745569222973951931816199888105705553251050208966853816555661226553738381640988424829165201156956295569641236775953427805177913556238178791768461782811016515645840489984391290919092742783475367304359855529681679044307537591206993466230819091172266033459909886668223967460125695990961042241016381678514760698164240097513908743389585804533863199585858032374905167898819060193803206385397712081584451282489377281666743294922330618662953761984756553841025420522176068912572519590814614141350124934671040744972959742659872190439729709279232852527886331651671536378760818668949165581405475247562627208008379667572680147943371778760073755271509086460647461498289104425034875127538085016296482905194649187094786422303079311976241015220137897768931824186534480807921391805213197360591904273260852657787847345394890788418052914679780559454820999864177967933118826884208493464699332755539386802955258918789186352077708216696614025704591037557616674064758633583946288313043058733904562530857897978910146274244603026047808960493627039144141696287600949384539754312636873763834225316314114696179734214897792402778915605738481174092426395714125605808511336179355690237029338647758805185787247654573114381719385276211762738447026215679807227663644059540944129082131760427805539903540990468488397811756865530098460846283282367032541006012418186961629464744365196863292233119078256813146356663353271933560049440240326542308817609688624078030391494382294465183031595637551573097745303221961236952662502653115123489472643128987764515498313861846401984983667600736285843082692930900653180139802244825135773040804724565800184547163771609521867827288357973185406589116251189247345902668419761123974607893998810673005804302062983317528654400756150866235128159516685947536207880411324043700382251056974460968106441451809826977738168115001046592671204072046835842516041241747492816557032640736060464350186573983855754287694072943940812366173540645586665288638167675686717256483324408033264462663672737290951948880107321736889136321246950557259051962881674884898434311068792701865932709927860432591709309887451693495241732879298629563264317743665127699476336899139933908829634006859807118190269509634456507043340521909703917562573109726334932639147079211888538732046522098226136540391463391551216268318574560710528182760143195212017154674793300861410533570169735445528934003485313768780396128546817742810318823585997171403022861340945604598877414407467805692969613018197914635114587085786730907005749855920179506567593235015431845144487244841319298834275238888128347863211475052931349104056371439085491910807446818441565691886510058952532305658078827084615094320317191273248410234258338391335334713188033507665749920845481551972856031891144728205134065533852504699362885380121846239047792683178537054417861248010710183599307211267454518827756864364255656735303365004907723455567426929272089319123549863478430633550190360590107374707760409249842711574634674520719013880023419119488978700327674758066975831046013757128118846120577675878129094073252963593755829542735266332570703751962445464477480136912045812796847322694921117625814548559254103615522193653729092405840193565935583534748667451568740459823977596063126191234629176339047568749471039747433233588939147755787130160609119915852085716404412062227988297071237111868860942587845480006432780896631858486258039360127579296127760330996140835313116669020717639716616632435087158379222816377723554826163227751931008772674996805079464442257108362738484644035273637138577477299049810445035321866478410971031357834650950691392178525275118089903584810089868307631274020894490739471414297321749608057787472551883248218808851716864676051956732401003517703453017302071735924891457542998523134961683502235414722307260680841811891692694144884636101811640131380970366202460238970621903780225640285422937849965011434416198887958853046410636505915032951777725644852451870316290379066312840301837166364808086849965222893003160044132063800731466722336586767004123432394834248771091872250416012018238821182965008322410217568852605248734114855990689509610258611314295987843953932669398111431455046796641405466005675514599623793182019062883407638724134533297343690187361371544737533872771697712696052708708014200220184603114436381767090705994410474437069939038097095085018374823179831611590898670915445765714317185923569625634791789207886477323439324719957369273224286638045570884563072008529605620181986692067889241317311867347012812990097496139714681380831818114005789496255206865049092089699239815073641545975799663728952792404541513926340632814380713125931367341450019592362716446530658723174175881828503873268694242460393347157959015576975571638877582732007689033228482458022813095384154610730895304239010586486165604269758891808800738879580593221960198286333705349797500156273345874580992314366419336780646873923221980372265943389031172921738403966289074070261094338619930288567945123454287880846569872183110865389591251551861042236648214417834948319293623831239961099265626865079928212972898005990163309217911123180710184501769635409964916636685690069075542911412282765551064345151479731169499258880118890516773097881440817782599054000366892335586870425631470386581910073950916299561000022270461625136774698302421733545931784441013189334658682723124558095098962296724188235974178140672408065544798965676027003871001511616655239722464294792145565913612037450594367132350024656097428948457860884639768520300571419680591848595583145814607285901915918707863319885715670342445806341300590099700690467807916987240281315841125895495756460884203322864172387536212168585717989722288016606155911072289346120087370735953550259626404476139246070026078833481076465350221057914873841791837210954166068322073459900296369131027344414590175233287396720944406999717227362414362949588251222256321278268879864088714254959841624957804784538815544086830876607849350853342625887522440398555926399443173682723140408592496690400702162661661175196493413684173026359090371400687933754795131376182906485145881184691786966083150777597441403744666750237579184220444353886791113460117940649199556153637482208655303134732256607710746653706749286035013771114400768282687688920818219027648433458251861734476332126190331226117118931636618345561969613389561496199034052284526362474185674346950726799894698153676203381473551109222859635622595138432107251948407625208687263745546684227877072467462468011252825655999782509833708009666978558996396781011820725024132113858530599034027868380085827674993577126472610302672464616985721970552676872475863225339674740521327251620197268368590834982249631501447858747847532782359828904860997374239261600233030400049974728975195717320041178546086169660763055574482578768692572657755644297493658868638816788907878584771398899119017837429018421544000082304612044865460708225191616671142555948276118760834457532009138754448284760993441443077244833766255668036442522792608273335237088161639191786099870991971682914513446703115249804835700646267799016235874494924912246916013723990816850506369590794887792882822942704083308527941597789480799521025404600890291091678608685062607975664128213940953603893639222188568762258529271724815808722132558234153556896227202813900858009494549587119611400854930446928034699138731516168546320270448018514008719434678363630403278291015673536480897460515188591499297493475994837382990197422800187531557279990655244488008452871094218442867972146680330964082643063392033730077138622866488593601992257624175833272269043062489761820929914198214513948744454463550522182689817306487883732600096016643583105104647746086249349667041913205093879796944443613160574305337974319553331847934920457241463003489251122374220367720040892598682618453209956333771295112114707551967523845062968413396021261615030060588488332316865543809735567736125045553564800135639960698987182801847213688250558104321506752343066739993379220040772640971404891348183538297323724122651411450099939899034349502553069541363851514098530216990336369238328078938736378546089286351110841641224249226824639474040664711565554250147626959564862924630828557401214848607995852544151979862746821585973814879052327006141200720200164979652952925610321294327242824814960147670069070221634564590529105312293854864778773199062318122904204915012681433374928332069068800331401978963452889766361035388117384747755175640795257039290356915369636493199214329649858874675778579951489696568033886354671762730284039529382698079958106940789604963951745706781973060481689972040764010988585420712361514447579047256820682592081423623931113999233182723375153934570193689469956904789438914369498584523435918712719023112384672145279752378339145436898889076355978495340488367621032951399960528547541097271949763295618888555883216766754013796804992995194852317445847732222261575533634957106797283461126601771483129194859641111193834815869053002221288476899547154134241422817835566973694936288195528735954232414640467733533974485208938815810254467942108404303127715205166733935185299846727040425597971643611778496095804606141126463321910274302373328182137203866082068808978330680407065988762594038693442142015792583386677662186497087025158711684287982974461453144619178764786430713530538708914164020562793574714104406925465504101478399160484813258723097515354209232690205942794233094230439185633641282410215707671729436452608460727360730360569909935163242665323723262278332789015905056386975572840776307890570689358645073894392015319624884617946838561815189569095255288813695668313062067140212918948620147935958439907813477693790574427724541731340873982028295015678370690119260239709878064821243905547544697373037490704808587067500478862461785843483998167438597993415842330859872727554905596381195244330519057746094844207114000340711596514916515522033319154185761622826447147908532605617635940455840860308667634320459108597545048038473358842171056932104339914210398606851203424526767565113631126924117473521244070530492387208502001961808180594674925983571527048132131743235445016091513325766066664074604762334406430475393458053955066300114638630177287732862736819119003196141950759263078096971550942541647294976954576320492733686995976753497894026953081560641840180102802517424244877680971140719594677531372509853367722231100068312931471629612650080071798222231091428651565107967527001657354311207438802824044951674580477495192034181269833002810462294725675422179719187197170827022598104145771420918624658909399540048925994607941852377443471233769598031932326110324184403822426356083050320563771787481498264628943291376308077035712874557816299901914985947276152022700862659580144338349197124875323977342782565137397230719102402587396870353816350233367250618352960188098465876413495621730843212613837273931521492217571837797353131330139286430854190973470434565203594489897582627383458802105867129331518646123179633049272166926518014411860640732205399184201032975390879308905732864422222469221685626783172632453195998769298914221199591095434021415697707003746613669071824322709847937366216627847548675046197621176363032381667586787981018472103255181499647058620482889874262731585336346877055979195669617221627294685929966681255804764150117732048873921837405611555263243917079085603235308505233565498693398441025319197908606204264236072767237519353744902560291970487121914379150059207328291888699435560600870565497478779660367423801120984965259483977635661790455890992991665078495366584439862047466438977093146875188175324797306711042991446350231191168588940978505852309546211346368907202399627773767228403395055661773266075533553421360653553343478050826699441150936962262672468380838926347936567870968500883669392762827651599400086949719442029097507942074880361288446149401068599408918310738346717452609543107128507435329287566024496340749072163798431901266629365933172663853495197197868367805663531412021240844780569090572362673428221267695886980326804277047931050123839096923228318088441753053677477717207041152121847414490420198501406466463411533430650812482814838387848517534896596852575746491261175724268361516718549825811049273552412320624289456845750454356136647322552914459033740803119456785977869390958872222940567237962181473292135906801870817254218586503317176490973001162520567295169671695912122838518325217677150000286394343947059230010248610189189487023772209341600121250214623177442397221970363167296497368602498717008359903887010857968064015744504164704997650028622544597835316524244105310742215769062643070314680024296193270372719568171599630327076056788645974761139391559504384619361440301109106434311883008791895605425782372324268987442751015305742606177913806843663272890563309304575367836426872758728363097973282215266703901621601292449828301119302670960415095675024346829379310592421568945379155981208943011646276719521274136454537023915331159117004361276169830548840796558466616334147936482298711815180041452456456848118109084544385257237945020582719651808210014929439237665998886908606813609528130593022138891812622708408442239309027924210947991072008042847963739237132143998023888532696772236001588460605561568125728550940081547271072332151420152245016820042563456839785352992799212938600446610141591566793861131249662177759469065740469714557957934017695956852338615997354205866287213088032021083750241466248557253592079647240257521388554390845255089708074948900504275004310437213267393273302254088507454383802525353474658815492541093502583853090751527063206357548691461941261281458076029051611919603624632876675551421034254254212831245922246723670170775140872549173069468172104861234018431186855120151653426741983269642082087197092601103424663054199563853589612453315328240768861264730358916325888008175063822582418362913803019740563686540496276937412496614714187432913313369519287094706515778212975820512560132508763617719633272121818120413518729620901283118090154468809535408154420912767180695486782366516177675280021664475623658243324449737078509213644626043997779859956300263986399140027921519790035093208713454771695061261672123949577113939025651125384464141824447930720930211857094471136253534209528018739618303652100294900603544993766606733952806646415078318232199417713875724079948330505127254050956268854265539300665673476141026606959749754462826524111035425724560195984509107393272777433701744862291887857159107656008654862520975079837033746109164722035877118681922502133467105515700175905254298649718649508166926997165668102471329671372968904065350603834226863373751411389133014444140636350660756535465555134734053528780437248335265268509857271480142995943027025148337158263364220562932966249412082710444062476486698169990058055959886938239945008255779980978178245650913052166744982156712520957145758019241014629499086668643383442866330446230148239901373617567663229729342639412906601010247865518511777233148911522660004899306895890003506408052454920589530493172751183518391060636169137498185328876961719482559487982774424242236460845476422692082244312941027966101483419309087223115964450763938154818856775830526617540833518078354852291132012278879918727354069825184684000727166230876074423231351626949806046830173271913187674975524419872123296820548449035874243320144921412049523074030496144052805999845238757323592204564747780125351802456122052842750669138421587945065896799702931945610162328064464854051897067630917741432034761626759561757690955124410815651825278858219035291757251621007675283025513373727230318066685842280570687348988521388140128433708954120084449255574299634370384596055449869123932597132095466798086748910077619580840715433882308592624924962579159607286448888678037460726781603914076020129057893561959489133385172567435747181109729910062879300404250612190186412840222382210190819206709678474339163726525840447813185847177091889451303467741130114967238035031318377318000481011319579549451486497585240623423696389605061131954481285459023284368144744978196164887739400036216102671355847506843055720577110679438017133076450451010769280017435367105365745390403251352567306661074877809734428431418257450010150076212083597217820081649491826094053457236298191134372759842299225726249264240910334561114863037933140634443003867890590206632060858897737744158179013924148553890864990353109598864257763187062013045540606921748811745955721095274149665766321823993535197446022940315779668111033410279873440304649371392256883831184324469869243705666344063846767678176106945527115869004784522678604274714690151146830014774472522300038498806692006811095934995442288707107780881023160412709762450502278006000260457855871107635471883135711373947661520029761214148190972168071622106245101955618443799758628383092527056410446432960195623229471935394498894534381132415030728391910622724890192331908559129391131640007659505399574372965924839181905595147422014841223474434964019885656190027933946767900692416201835933779095695498325748991220003278768507222736532738495896271804866248016664226105997338552425181940565520072921642412304031786658449354911507907487492222922259822825481749394928078765373702914712275297729549532115563926180730875548261708205873347210615842799643082753903572257482450006776683769530353310249970057995879136108301045862461807734240993737914889129865472370777215253085950022829416122071790160394708106827902881405200915770827523119951598218477748816624625131714462213445075853847502587183059241532064049299784455739655015607961692046029476418285372471769337414518049137883793056052814503394987257930853146622128210830261563240320922143670058833407195417219772861860030065037237104743564512075421138396497312448119748276166743118941633068713863019921392486159440329225190921574414739300640335519352092706229923731572472489639445302263580172408519641162766619892230054611289921917842416154227659206815303509905059531273540588318462122535116205736538374365245873264728518865890027880103858587861123764768405319604930244565746516341610723107425939406117319988398009791813847258023967930516329089681602450622708608405993414615207909421551270648691881481935618199908594005853789016441672051657532044265734688904372459949801127921698102168812296933003329209527325998087621409928764307921894070587473568944895671719542353222645821700826656228511295351824418887698075095260058963632585178620920964030955090705264205937536935802756174817234695528293489968229272213118799162807241592180534467563127529268453883380445715614643033971168783818636183545904838458327811416900841742376176859508115154923940932718877585518287662329929010925060463130676818594164354848065503404514031119147625093492407223096324507902192848300733683706694954251054920294738964731144052858772675788565300257646494172147005428538448729435903893681916375458743815640615647511910739744190414974856215230353928766993596217870604693226081345894813965973647722517872045998201327938362491296924676426617785353832013194701904128324158815404474128113122921792099584819585223849049176622445774662900922868286130392376070122746004002000370283358800979229606498068083365861193181530852486700352704321268519788567758837780779054293632930997339888998492056786143637009531801230506791588752365858587317905659949433575088961955194271169533267452255934930252919960830017809897222531424742647191467874413208103496515265666714772442339672326312116791374619168296228031955796241781695275635381307365793284554216247881961974819771686327906798470077863894309968814978363420994725411824007707930790075916023285519614661402788957113442887617458580190599129685909553890093583125910401593664323070275725086826849066587917158326158130625591241337668410136160219649324171499871485915154623319126294166170496769727652130269989172836182356401116764249309375184073383787313911679855315742205201486591635521723792098226607568727859716098417898112673484634152660154018325239146238693498020471771971529130437018934713149678246192853997649035176047977469174678441071621273992779187469459427131912883889467415672094905346160481056535919438662884029006445045508595016440867981214865916094374066053775133949802714036751835660292886752588355088871791659550294344848825087595354215205665792549480552238951319954901504621170374948833578036776663556794806973945490030857194357301357126539113099379853990179673901689641402116548702180620781979762760960577809309384519991640098731055444857389386519402991956087988625402268065761301793210321671120278208054900484739200468719042788047334996488803632014313106538981800271375317074621083277722634652776470501322601672217487745597841294411847876067205856652754200979872459781800533979486169079932163879890768281131950411916591733450912779015997870833159770183113746431499629408711345023413384008182931099467915215060584704647788717204339887906301893188157179516115035815478029673556539296942826422760941862085082282525962004938784984375812616490252812957515597415913651582759469593930007014160741167684022427013605413474487710819863242811348510779539603203545962032548111675032622707293449860622737716536610814695464879089143748860406770282066060244854748864173512542099493501545138236345326566959608165146234417216045037043869504141672114146168746938728903746639025837044300310657068481889111266007163443416553263617563284576475039406646851026457371020250387699026529844081905078282647290310814786633636217783228646036161211650163497760352728486962811435379750489163145365104187336114953391028309273931792738362541689294817476212741763732174211613144329049017694049950627162662079390389067004586652666403073311111619946316910491365184327700514636223045714288293961817036915865143976484734282210590027343386698688800820032409496950662422120686626559489956423759635516511959713177616371344166934369484507236562097340076686932132462775771789986437999117101014319331139851251763797124432383989235129363925538027393074169937209723415568144092445058469935394152533347603436060018894470573566935731397343849714231095103724249567956833662900792901664856582720184028140855609724421165598042255380595042032338742816098139518571213365702550499516710545225171215789557580850135341427595385099287615045147834077239123346584058138626634372350252563415777165036779748369354101179982509752164458458088904723393981976424948063877488245674134527252275986234537407115211898383128259181778309172561349993804826363523758720258557443431516565879882441603325605037402944439466023912062977839443402964158120124668239598146439831274966319558835623432733677177441466021737761240481664257313835970405365349008587081162109427976911901634932869996577317977684969022133492907059674007467606995897855546062329293758184522202117646319238388383124881413446492248985775495995038446253870129195885834748711886041596969834275102133741523552695649768545197378663411448769227016314644672936688541809116520840689023903954211306988866473862734846584646634239819952661152498623597352114771273611380287352020512290674179153351807466348091365517537073133476791133077252465894477653300741817978033918941757633207923750663153315044794476939611193122602246897069587719875809950985270970927660168784500717591809250192279224289526561455065343269741967673068167344339910153626221250520568388124357679008614324178702540775868662318311853635048637100044352747279239975329542798854087707179091842167652589289714428458027578079843460006091504897161210684824332800255101848440722592920190467919179154196803232166256551885504930315827322331386128457898502172668957646704083941658849541482602909553953823957479197979349693494365953055342787012929964201758918971155691315385537364757964740604255228507043647554453891479919612712435073790593875839152156080304787624023252150787915973326243106543564181135168140608114512895762093212451208892427355523102697694572472928275823259247975436306481266342495576243369936789845351629622125980670322813391449361692702656025187913689228438315803046619876530424364916631117364279060829610251770848112038536920925739435650765887865952777009568763551655861589817374271690151172478178586770095703389854411407194508903657061168431489225775473876515120827472851867930395853953963004523764151641322723662913344156538263323835878508205021507608163670395366801893056807090896205218129780140378623474002680214043200633789095170121630757964300640936843757668581939174181702592105064052149297556869663229227310493892452036175923239408514228117543423353270778968625871729600652616238871861158443578301902947755257445191752973713953950897781856545732922811467276662776411265019958263984924512893748335154717331937257187722162944029381190740136249083253056433259942155832263459368039113906089958867344465510806553135055144722564828165505292688116305344308478363552185157109343072941575742033366205581706004306255193346683423814632469509418376266946553634870807584818353612499924992661254901304170195911525672661473333539569437031693793264499252586686866263920973603137630373907320847881507783949353659031931443404108307153338442835912653051435179181388357947613724860686576616759013346203428410390010292007501922707419154040632540664992588682337778013525377290054920648948720854163777011473643488592923582178548729055960208760708344965165728097793827741434668314490191910093310552149414140642509466460491409298596671169664158665987793768179250866505068074306331543521542288251788244889713543059381829917699925570308708689745779269214730795371672939108802330384762519773289492011271783076797933907582404133780882895450265007664788034083562228623816886478293220837401220402068645964781133141425001260539388288193490281642410171849576317930245542356088003213415938682683866676932599853215405999160445661486276273606876452151131962919633119851252559151586249034444312201494481590486604651027967857752296149192428366045416113364783407258124363025166905672036156036180100090497978548628409059483069160066629337675418221997897819033148594716108014976581582333454441555809017259369693638674397099184126673552856562371108011843176165612820181552214907557946316096966574955860833988448955234310600542540342934730698704259291432501268560576574222534484241138435882449023114560309393673610536127482810073964307959219873854891882202211182868835812988777954436983811769061210644101909248540344990877399773823242884879673703686571128698524636423956596500209971680157962204536088335551483217088088311476392694799860786423062828132155778981288017109768286778536227607775848377803527660723550007417553840723832230690391212952229406713952228855345360930474102594045367051206276380486303979604454448754664148576313880073873481484736983936935505157267860603649992501782168445143665655460933846778619694044975829528425370982061959677293087537335917358956785547338427631655453858287627431338776197205795134981509851456651569810552424848415093727446740943298197872675808224455784350735214132471591032088621197516093079741029618835808679752639024382597532680391814014100205845725179790681635053286941702321567746437151716925083609719285042673453600153152532648803937927436215456821383551434440030639898770761145074810034125134935242609557008343600094031977447501716315438695431276374222097059774702104796114622378860119841806781461322338912875166511363047240899972836138483666647290728148962238879994088539379180608534402127151330626095980711842072141463739103861456422107217489718499855427125775918037090604386763305649942052120943823601401108845088894005475769122830726412197100107417065947031609746153593967939119434613168038247825553687114281017962248656227041657237868829592116833877267221681502375465303162825607553779039447737472268160261326703825874206973572575798394311009453834697361526159687876009170320760863325297472230281306448427177846649522553440474277492183590234049725622858701973072276247873982215539117402964160285151532445842713105163016520087600854610659169030051951567403112102882772145585359007475353019001024914836490985570695245062644082116236009796318331826808864984310172407568358198806097201637908011507627069526495459599674574564835215237169967933656976553453073779197818167473963686083792911439698789294585522471567170767839198409015885219352846997125460003821938994159701158813096230202104646870129200941222663203409241794994846853226876439294551084000268420042378782517713768821706618216840471438349560432813694141396104146155499908974525752700598017319602936788229407943851530407745553542276040682205075582628745648114233381738332050153301355296228833517778110887796815716087746905435975712979582077304105276315533069725947418867142862699235782912276195031760130113476938770293804969554036415218679140154104219501182882196390739567062607900888934579645970022568036619776801048315430655558592362573408615413414029608048876290672652122286582172143513820420001894029209587021784047174721106523582677713282132623134200582997195149046845734562548495623163879432189820339120551842622151529112483997106939515816629881536836840691405222908546083219052424123191564137605100249307884581262468401422225938581963191550282417359199175353773708082493432422748315747808344292844126292210481411441267283407364405281438625847287440726710791903614738490910079472414514701498621200431982254636367919073175659016952898184806565366610217016060578584952893474477268381874265243738635908030623181918542757913177047148978403611611579881149490606341612946789782630923860233817952748778325189617178457401483708144634930367548251803480177454231622206424029181309865097894415742966499214431287254085728700848356971460131004814041796542249162119242081429463384694706697523346275241894208764342742047494510623567833786422767074662472489418104870620307612842686324228756641408715403492399647544250819305686286696254399700533718038787083833168394202908887174172354581125360928313406687994048012420069956195518268460476904782374701741063667913059489251787542391605830440753647056906872742748564203942944314426892774815999342580521073854510404320066353369456082936371193703867771679947455091876912688833795583657079685052418968870205516788721533065294285589859501518470847938675800271928650013497916604364762543250315850920089301671409556644277203123837820094846386918700847862039062618312780510424201355286290235377799331688697978475855895218602191627666164978250366246701326311981121725842676466710508957481899560030569715840582159697103673689442065673689472446084546504750415385193649737472482171939043742531843052018173395351658441156687653256285338465814689440455759399211763516949432643284096267977426179996014794864322791390404140181263249038527863998359151221327776876386122622141389214731432718610011600789490712514304108755166772601860623753957587173254102753074253702318083716422609950146048631312650642390894607534158279968939895920971287602421663606859194525876494738635145572613248247276400121006772474314993259774894434956213337815482524762231773703657606315218604060337614192395286441826237636987119151993078531477254595272995416454225399083983493968113887988783273805425310790465608673678076950670357989776296540052910131672210026189591231365778542888958319099714412223467497011151392153296969905078723608062155525481850811043103761317254082945388471602612850050843440362442398104101166991188680954760479759585562277978613038420031273049585367190656455710852193880222781946287555647321643756228203610403071790154801852460041024420731104654422483688901274969369391862166001377800193358340907955972765757252679207338148443675165448324759738207267435029968229309569007321193588812799133265681801515761018619093718554213172069288095591580751754471373247129004340180042464919670047822215574338453297908242828841640749391486242344894283034183885731603159459708832060235271734281120142565848587175493509296119639918734686124946900477668063135532794492515037537024256760059405515863825101773179380565613525307179789259627833250286056487202508638466046827256843898850442216655283463357974874797097028389792660967368833276989431677550658836286110126217369380163548390461170139296546678052385763719799122917836893154084923890607864015013559863655346163443274341094642922989026247448977309205296438195817444562392961849554479771481120143789889235256882492856411915451735826580240618519603059369684771224769422731198160998561163744516875078748291979792774509111702503796478788040948573467468654531561531150348709613376401506551367240079164782263733374943901840444028383030847036710430001185328694053297641952764824690161660522378239713317955248730198179960533197243149900804564649170425749665695348217522088415833536905070989048201746875424995829722803281504679715913057271192415828877463296641805831077422503264538154288727116084787970833182402852958126105098560029798992982728966370962833822781727576059192794523956626358509151514453604331997645412843960211877795668710501554594102128768307954527324032561136238573075401982658362119022793823715511623552805258566012428636375281819720446477699625520697224460746219955477074890605129554765973735848306728833592521567092853427323203411679413313926653752794077931571162039003246358387010002508636830461554480641385636896128564960453625279707792298232174606504368235031256273580561733424354439653226352356540022282424043392556837477719115453189202152152157541998197622526828735632363970069796390899810465481053953994296805717823101605732723063550791359645619718786308517003886933945232211436793857692443997469488540516400570084709706449782392893920693870752967753047309533293108464866246064288987556739335078657534926883049390398115643097605104361558929402591605386319028795338271213414405158356343034007793881329676427827387554809759281639373640773843566019144193823630889926343362759959053299192562995990810877858536925925206354084819383911885120477753701858346794268066517023422246824902538742704635463295419705465577680136177096991880829265811072807942669342953317860063010605777216176720523641848499335692412226713362659866373864785251610511525576133406386360587709208453113327165950428491298096320419824895583933945431957170635471156986235134262672879394729406647790381013260032006897130834177136342839162853311343315414024181265874666643912121296852365526932063136066185788322286717104347865768862721580998662144176575798437425574916679277137027338572123107691772391427680652808696094415193705772990560020514387005449924157162871101545318660143503483206512937222867313297942726748744742712209499910601701578642964815233230602206042701974552633694435248082690174744603035827234266880012514691819650861769319929996482954702186681490592107418545354699038702928856765186555536851101179531311220207426280607977993749709193317993849653138863073558283623183298368573501787575583279481139732116347958405714094018174450507918572900223683322880349992846667774407403312811457244930495014804754086559737639372961614213068539583926299981722016613393610080960936242443536340019105756732703817110297255460600958603780224481554112945105203842871515091108028591391113797664788964286264318480250807945098059638522902036469206794086028363895535705266747549935998347473893006437924558466346041469530813892990815564556890978391750356459351505841353000447077931815784607518545885471865043888006170880955782460363633389896436640490565622675094557748275578584777198741665265225767872219716550224757908193178306330880241029009282025581075341765419566387697218784640341175887406033586959519208313941007156739842121487656220468232171463479259123711380537117779950684841825991641660726799367765922167559107002224503045418635789030925064249087007755446141255946324603122307304015567842792735286149821493555806229386069123289587615366976119541362924302331287111259316786886221805900981678205622688364798341203587612907142976838977268546190795565120784484203523437593839430243678604727608297599873270795620817425892028323615670230538820930727841073084122843296857640496745052115075871169855069871784385281063000146709422239025758944276029609206269098652597940894819968524532329249578250834947365061701407198462904761683229880519941456633917846542026502081444884622160794815936979454144020454292792002750640403128740907506090774214729979383484357158973054583783562872922816893760552665698874735714674443157262416808809315265046197516953524248510802433522447957293912166529051843890397384577270809565939271473392037995376459757656620238338220581299240079252395349991469841094679307763782367725749049461361121595583585851644596436915441723585786024608935115113646375416688566844448427106233369380647724232359705221836720290463705589326328387551668948238329612239167662930824221389002171891356255175049292783168677226519312083884979531974810254799103240859956887798735044063201761474871369163328445269133463565395661676586259585665166159641091202315716648646750043479332651408332299119731668513937949565408119333588067023591251066215183783237324685963396497567332403500036862950439370329942933095185926973881893492071707423657554518569748934633250931631420506384568097953299746592465188015762380456770277999321369710343681602895966193710920372360840792769761448057520767151186904729726385716741068633083762799007568606336953317448331915865423766202669357216787852222145352958868463433056625191896379902135296333768017394849710343819386305678609069483325956632596809657800963139141173459775807804951153941220901160820702223307574639424542244669539116300779682104608742592482450550852814794592390855204318342672885840744458296558894399744627622057214035380838801675432184436941086713396408009637694546514470569241080285942403055623183100193949447960474370251364339789901347513807060911836507909598260546640809190771161290869109325072708407610385496398306106599946532231454771577606827646998775150658311053198647554780443842611835696507175451429761934578751092104680149252956563902837052366988543098877920103343080154220263981125747202597115553909037846440682545941160156880485348679019805747756565054317931164316665955510390938823679449021246327604887472742532033622873335999707844470867553118586613646106637842900456437049587027078139178232230349159736121519965199774362208819580188435462968988293275629095576859835020237867311478959548375397153238784393715945960359304495495275010138279491464248283439456511616313651155309220401396637131048751707372162897517350520334835062365586272287818467898846081696575452131504992356238690817395210554716109880328953239033780081754700356531124459215053137330318685434335903662397389811620728086754911720313290936393756046635442225396289537413207672739765143729764478054707106906425024877299527645434636671490681894825430836456603703582808729699647087810586280719022526545224990718223643444161217774484499131367164669781151433523959175782570707480617229196661546422428347444041773129147927271020412056068639657625993919562730479119216408673593097989650978657447235189933663762170570488996607747581763381974339912102540753093867510036028812618420211062270408457203253838869438542114032641085790353780182403034329798425860614198262051388975412206580136090831139499182296841156333719650182876076308525259678694645955069362278389523038719804268782236381787268615303380303526833936071489426502152363836923994868948947538676719028148662510477468890768530671232568746897517824482809726500090851591346621890085240830249579996797244907039630367132301197972440064725477944924333369945485039367491759882595552051015010668979776452936315687713145439740860726436537530393140114830393965986647796650722202504909518841025804934197503247563568799704586644116053808469047655231892173462430277546719054720019127814322760260162097639585995452251984333054493569240949578740087439305721435502544107876694075813681668040491936913887222539839585390228856656861526300819212397685493565839347154873714280084647261601452945827197029859562232960620702730218328936973293157372639057828395010872007756156612149196509402732978958755821282308152545923340470511559751870502810763104481771340247994683074195491463533813998667777086806510693251261992069074531576308159846970348369004121811529998942385599062255818054179348549436196621324718103778585223852821388032424992308540301764816506431141452415652190455377311033425538330074295262750443016440068935692471059934222923203681348499024302911133102490848090870816243685576477805247776460552838303532597391719772388912570251028990715879213089231539221684478484371509752700669153706831985162072350106794537645373022436431269203861893033352112480124755523732808197311385216766071122493596293633763596701111641918193489833447721950738919031628747414862408734423255185671897756752387437176391532624037860456694231743751054696476890573259411992953447871477980575191976113190470018380200851480452805580890784080817931314356402375035231144623024192821420789216930498930685364929740017161150163469638822733969083867386440676039131931292746066576076334186049199806466940776568801386031901815555474247454696235611164993346716149595047639110493849512655320042044371895794602716800357785095297675946837818868352169911697583919083474046173310876925323278628887972728630745262662573886717551508322394025022587696407267192563789500630659974739766473920298370699176475475991365623040566124679354673055360291383027762194801254273651700549236939126168608948776331000058950724377205792618853973166311724737507687282858044526969060033442080853675167994961488222627827291740515987952566106168074955833407787206432508348672061445135408046650428811550964119665518056533199909872216905561773821272173968349159349191396401721397115728255272037149959699149598628971793733257196771018398627487654106538822789392705253905039466256072564603449434573488153574189768350483605373925583498220144247660302739572457484917506864932230072007000909449995595645983423485487735612054617640176895495577206582145890115711460594285712605028851250934131473374552328154741061918780651170104904399588082986836605729434626501875106794123105543035778917432913585121557611136464452372312086208250642313671694146648517183656093689288908055182456933869325173357482782682392514824922687792410386410686897792962391135315129134019486972290594969672225960645188856835849231082841648430966934654956277049664444931087582770594376908384809336943081189179088808495320845069974881909756298864767811410714800202544152526895768322277776826772266157527119143355557388032781581489907679947416122081824134508469256032885298317565245296164459727535868590086433772514808895986777060245393946250808804380724585386916121426319294186045909489487015439138035845241251648110232040277027237761949765781100240443179081242659552943287912201663996390118091765955595871471735999436547718396999491377251751358951872971384222218323242754253351316952168719798738042536977511090096715326550130313052891871556400241146905084355449801533099422074497642832645588560744498798763349138940397418689132545627767516467569868165393710868839148457648680033977616541778319101609450713451094046426798507548554648620817154783969480901657844626589301415269300902750831062080640726896933849102440232359679821614270558884904635565182281597395814766209526954477136944064031027344747326653569065131399406567501745604542433990183516278519031733041333417406030390481285914052771879250093163984954046080550653690300814203192731413392592383482683340006063310950521866537419767551920147812461224354294117528700871435321179395309509132290531889225592279226320228472458133155818702712568925520851597156577429154226234621083313869016957963357455379801779472658310114362160001499233037461733562990194841514315948113013728353544022302922180246157309715087572164469113627826334847494000302335847784941898227662628553607186084569255125467682833409128546325884852271805788145066243490215858430411275567055340939862039443217432205133788726675089836986419999871506648709199758838028961156884005353675591116651295289691620656869915760590603292279307661125136252075911929348406194837908094950863134474619110120538612206602399155962251619664692053070376038758609984373419016099818653310586689933782506800057225759240925046808556370738616786807900452036929554540189325569994925449315390499746186382645056974295055021971658274917505671995770451349016538368171284509270055848597769795207232294336603236453825775652853911445095495780630313920372968184181532845089196970329112939392141529884591202948359426824141918778014351602149801202200810346129271301872108821776200413630577055328497164718334117267376627505696687994299026512503722696335036545000344864404301676629832157424769863913929265857662775547634462248629691916697685086706172605405090008995744377586506388878863223470925110499768827351569575593654695314917036799167157520089597145006169894232126608561998129380569345799013789192596392149963285613905020266247323551564480828177411782876692389660442421305029127880847164427590529338595209382474052780783335476462229418489755834669035311933739611864304310910425839702042372745870383730328564399114017260599665591710810485495571258644170094414579092273919362910774216159332845665490712030504208488058657081389058784587901829461334804637557330623913023303245864559507796586072394717806425547049411540690866928514195580812114897515920247996657251086752325438166211642743792032479413088175031252513266798461393897494447383138731604275456479693759038543371980086416479386103683518069809700015780943916301985378379945307647680238206711756318279735079450733180647613087050156625478797581226960521716726851297081100127829573720904879943629084710033839357561778272204051560146604417518435983743108567477968416226015810963823168669691031977100817628779341318797883988946180608934357513876476932624705664814657029386256227451200823068751982676435645662235260454614975742294310841022557797831922191962176514568154919507483821144537111617207767453179894337923192423714682283009480868381347729853486269606686913812580093255944988754259817727079961486241266261417191175119593049680590565301721048298369211668230358925009782690196807455783423976095919354473360813735416792753782719495666270505325974517462210735195791933487651798457976746836693064580588571500370526794822310564206847256282275899216114965936287757514525357538128388143372937979173252711513797772308914106880353544161909521681779551752093993387164816933251137130408461567635445571658992380979156775858709899011027459852232522224946173318491849639738223769988254040589713565608143312209752680487761599994635076213542959467074470938028334749891416704157036645872797165607361651338424927703783326913142124677546696484037263083287202921488192664547530715818443289021160811654573871974920968506170249190333528406340785495722945567205476921108550739472166076703210259677651817223076506406886720261351183991930479549944533324100807630589346331841765616335477719093477298125950715186820810217587511912719854258435147739930979503065978391474847822640148023070927265016469459545198107931719467084571009055842899152400912928337486207099450589592501118186971727393681739899330621702500250438678729202771502422436971593905771301598162143277306015174078358253449395219511514954822766807816804182244253647544706444621909987468450370338842554517631300412362298925489640132036622928222041820518792757214912158069804046395177688731418642786784399051186321740701050150628528122983461730273710763198998946193716027648376486368746251180316796245837435524967810355218286439433031349128532996445697756750842948889957409434546079743605570356007304997331121554536745048974485503963916466836652444609800272024034696544001087801827221633963604413114842120193932734037644386071502641340446390120608132832523224788551475506909790970609631693938107549376210945601211131698433037433591452342606465390881829352345182404333603480363780739970976744230210460517224874475637068884387601223291477984366189638206064431239629412862335231856757932030432374551285766282401265602146441495323584291091901081456264774235769263022243752116060386647614674486554080988782077544535086126716078566262329001322371204467258270009379923425672142115247941007402414902388456573675969829455571369493078163863400564559254270314354538560029488572360563980679663048383497661373289169491314265335284608982100202207043149174499299915419085266359644601562705073911890000647807734647138439300390979843654865610615700314138104259833659782537372991964385978240283089342689661276238240210186948020861201109671961310689899101085208983494359873530091167925467119799121960200396416064265124282106135061227180068826654110894964855662104612502830344796638519799361500896529342239680342752632508402149865623481590276421429051036690930966805063653960964398628461781950347436040667886641128672957799006293393082233924328432768514295708472667027471382981015222335293388902155093852972371206544822578555076966896412701861096470692284337482990928623391935608309499231299969278722828336299329347070889189899634694198309879417029409952933985560591952269574414555705346550443422158798359160568258083229733244812339912375594104746123268560193705130788070330260419444611497126054800704033946695063204856892506648808040210929637667262879392184961867090006844649053357512364215878296582018042035695680287561979996234119788280884109310979821302323400689972548817711841975192533909643215630928183275462196785425726370079493280423357814376569062004208167658441589138122585007475714139429416367844664724143201409172121153458658523098886828001708782872870903469261875805700087377166747788703307365276050688573497495161845599215555257856103519862638149247296633738240925662915299597835538827149631165589376033526204154299770731266731657091929602226507254853361204252647294591880735501000239475809151010009253321331827158316618488075741756459139003103673951321646669081793816635277782642433176512838872380362718545551357642441638930674387697875511154072446044166639058830262488409497061872643844052357550892076071661235935250216908445409156000255540098695833872393012305914290967478675886791711926749124394979762378285363443018463603413408831542369993020527714949427311783312514773818119311344840995604046483189699627459640389845890504584495357619089929235353577550743565860542267784887818482971657043918107496977009443704007040960142906153875153267726785607542292945500689054102298543489888780949911871578478608632622596409458608908300715453867703351453660117249763122859737957313937759702123886121515836423974093388442500774957800778834197958725117878867605512904277307416467047226972724739376858445910500261860223073415426167277943277945060606981622600079926110902706597625020636978577567799171658924097674502515306504282447552046743729452938705037455213857573092825723807178241170402052261439763190615104468222852108937664593121469553685118203775089500843434559846431576935900343767271953849924354831599650536984939584975343452038492109811625957024756048126449016441227190498519689559658302470240387852035831206365674475862960968786619670666646780362542620729995639885948078067400358446175358769739118567586562940480817710842275381661226109135580226078324270116449680088722286767039644686625721711892109753052343761914129142628915326762759399025840311140803199112054889076990182995371080345080646317152065597774722749430090093529502127110593788400400109567442350633706453449104016195882034111205387434037306737302195686574798782895086564447713172124227157070669634830010061780909388151697757076851625733057890732005065126977387679788858490414383482599724160318810621030468363298197111284648014625448822852910239227444908960670971477429935078736914047717579498943158243883909820415020444036785221480724814926623623701101849557007875283988808626186409982620773511689100728630502945453646738570464696792687273001871792448369883016505514006298258192862088639523435197930603703293854540345029317383584108303322158396362850869079693334365462083243609270107292268318221929986448925428997489112644302534480913801475514780631946155029579469584251533580348739316554595866816843717172847129221273224046922590077743195380876696284653632144292112379953370190566086415502765760842272833403183268679004934099642486621999785552642228474213493497298358752185534407897749853727370758217052319572173043839717573590600131361948508835788375683527338471536647527726062116766089647799320922439394256026434817764038275919374165086996608957689396845484630527106666897747601437940349531343156143205671497396357899934240046545881309307870802519333565690657733619031993839158717475790894407553547496442486007001569896093029459155427514229627437365791670685487425045062114362788059025611605418707313156409380489987241199266161912433202440620218724853207068808169558858968035862096082800165048629132383236140112755423295011396409989324874099931487861943065270125635684705293576024823769752428477062496634073230046720964424205939285980034250691441264318230760392271198112310999521209295022348521676428363109784059403811982335543244273650150680139032663650151143530466690407704836767828677871540109170006797423465118962282894063077625171676681461181797286907469385180641623370775298115457650947123376392564971367786972316657756966476252153925930173224228472817473651676817238606786970436437349775680871436124615351152287827732453159797046066476077696990329054475419245480351258485604482757358140688601914303910282890958883049922476421643384118600090853697503882480280661805113264262604633941998583983265506153746504452817618951960940998846187682079646881578887159173602752449737830738682176982520302181256480223758188993023593042406145776455944875719543577603848472633807588167829876532608906897628609529974591898865814926951469131207008895667005499777333104931984716444321981760047416334100886201001555336810491916157942015345883052342127678929542621723521478661870493671234437674096612782296240583364487934537740383887038783107482485359376016225249829996339961519084307946470617589666914040673228863822932803073290595692642107870065651092558462669028461165817451902600955616682409706316217047468064712730799563639037003325753943327067404922072787903367248624963024608718205736375846855433521007339567750563367161236496938902335269006941939195240671258846354833978703069257412609933073349118524161920367078151947427079711039093951030209647890497444895345694435364607844434139479754989312267200099453220461205585356905855628528558879377885263375334799476207102245687356552602729440740196247058330720017131921669539979599819475807282475138695685865741043370524768387451973461815925643926472792676390709731523329985761681586502548269884442049349250111898883929827506424682384756062975496249508819424627942881677273829152971961821858568556595711460042384668564784110137599959358384486652310439475325468830311221912860631334543457778370053078336545695063454490587768413726709711721022345194121454509972256362529135758355710038105596519446187363453253841513172836487684654560479147902635774942981338773447385415259763587665031004112797577460331207157909229797908960990175597478615727475185422543694951715824045113675740384808003531497666628610304223102017645716971403311341288928445308815086221193760847289887933389224497879277304844868034889594965419113648117548607082868835375402516327708019768626746811697391661958616439281142052135334583905791451366230854497049931472698137396538719040947520846868746118569305103035393718797580343448926033954392226166434008720514672418432727764200903325227355187775263563180753214411407347072324826323791716571801298077383240849075824752993104647229717217753174306175222279155214221054835675190686841722515810349569374384536436974067864590980459087847013844764319646027563387921205938965778989910844989221208548882314055265856810300728637985809704630184883778968734795089085575858835043088931842855446245867928195921940364102926673358055215482873363314426248035586034262928909301121252621428499619691248655759066881194736564407398261793414043290401954277119415868751922949438677004457352991871524623274511558010737265179256470912926832477589274457717734555846643451405227997003662624746156229987847022444859180887499790740133903104627937019303155554016102718461886681045420872128146078326120892583841792550514473625159818610757087199193191223997780532920762996639241038916086968077057551172340319370829930633428723761711635352862557665775468524367810769865769047874980628754707838720355583938121652026000048093172718330872360446208555080136436107991532705233687882111630761603120255025287332567714084869329949209618161472182866022696066262589668038653285654586502608973843246673307736761966104136305341975844181058397272437411450730854881538602721340450157347281600738560559159656085679506343968466231758722583962432454597490341129036441968676338504703998076271403010719671698919705348834154566579696799429660921938662730928828784105743245560233199634442314185153622368738735835964151783947688343565436728225129486600393159221857970505029224909288621805523901533870606665357192499734906815414469772953945745413627286286046688373625619819513354705728395880754625532011489011350017916063936067009972299643078043043934306861023482340795175129914796011866127226476476332800835313360519488372457033617505987854070629618156153523296826287164839457293590009246009703218331453535842422202873049811187431205775287006694504185842758915271668724778299543061803659109063683380554138628952612847598162881483812189312410403233537570166233597923878919568864101564551752530975886115227630667062426585198364425119709272739700490598893710991663279459082122552330943804349687997871288600238380954147404230219946412476048225962955248093016134537367368237235241027723972658319067556450648741280237679370469466818440235159901578967053748035233588530806883137125678375247029486375100107050303094319933622534382739237101985344744309076620883548393823664603363681907323741958463273131121129144084630661527839996408875807967285242662291195520120599889356098832117871995337842718123539840089564543197986989979196133574384674214148573683898993438609476393390852566339291409171371413304784138117711369371272993088408487823684518798208878973299842592311926035847544502157973166662129441421538147119959925301979791520355882616398184314661975837850649941547651787588824597649873199394926277221331049855215012659068684032901580681961418188397028196504619221052454783041227500834566936941756909399084858016532883095631767133298239196892434511452981828874303396653490351091578957055831593395992748238342708878283237466388243176631178846863519063801031166152142675933265566679906136080023769959290656987905999621689705682847414322958118606454366077743581939411044527983161071197791097908128267374627752170052897038617708884482473670368251835559429120892611527770961234357435124077786774829052631633639811923715990503362936674185584663419192536374980044912930381143512050978574814769489542022012118176613173743919187601232240556712286775242088213850629113160709241763049532741619269207702102901741389560815547153832232412492825628845910371271424391863233100034322702596675401450363408485592677075122617424014947377683346300557799646438403544005730949008515213383032863987066707513242780742612900218412371800668392593566393413925566166745500764462546064860744193496535793496806311580828434639738206121706967331651787076372826882116263849786780976728292170403064525318087717195704983864420899214113490560106259203715660377936854213398522086484954797275675652493243892273110059047881531463819733605132331530539862851383669376806674014402561199773927220439889044388847738341615113626599381570358385136850488410106087033571626840761308546731077229392616254659177580520790726128922843324028445915238961912025406350350221373783534730411693002750689615936555152634277437605660785531108358743083093462778761892167753634341577036447722621547130526704663456309508983558771311797617062494226993564316993779967568485990901131613476998452970527507916193547449947118535297244560067464160021627706980391522035558225102929101209687349608289367053429269806633589807960108630574151724716766867644865237976701233697822034485480950823330451064827361398105948056956528974603934189355674086514493072306205784711384795590201119767226495570692972497631365949503079119627383303862442464410582752500411981193125889343004081851475740173527985000853871957792934617436320895782976273533665893227906302378918204647214711401275729656255347813721206093837189417041365389457247802668661605251885420524404965717955448056564183008783274478628652671215869784177210315600811739988941933613640470159110303864062916879285996196135964706831350104136734576986996320770630228425979366868634842874942097225950231351507459900752738936805349463427373711993737828220453721931517720059808287785068305842058526665739816639335060504256407524408539281050492810187488711492102516563590493444806621153054306598051520095869619172607134977509512440594468993816707730393907733529675688219539201938484585013214271333698041335774717004139669933457754015369789747400782586055999808140184585092664562790944129662947528951147559182611619377078981087739201255396733299179400009521139313004912550149103579201423297696602541847977733509245931895298076328392463994957712996180535263105459040258603901836435603525415735467271349937028665571460639278090676868785308041300902687624808810655272799176280777572725446200927320690323604276867292178053228082770942787039996119250120617149568908507814477051847852625298334668972493452853396336838537701643740575872368253739746440256007215185335017343862766396086932756251114773761494405532524081165045232886962616164828642961391208986747883477432184966889942226662575609811025507088824745384986135545593218718632391895602040177775785718628735317619442865939606561777444900317411570510998113834417782938574685988438940903023241416710389061376308028604870136853441048202017087788568805105728695657892981153507420578407468324160884461249777343346579652282013745585734312769940486607528790309881432404280281135985113944742765469338349421021547695303565936135319071052419429023118097447376826626705965566354605335271405315142696183854231919091300727635720455009086493286721097497667435315587274146544319242000464648665512530406564483721098391525699845119085587035378368028491890787515765143342297906734732685645347466088782187658890468116835009839881820580809119380987001720124757498126172425141191655925770838973732647345322711367191473063170990538333847590492715629053076032345471834628020471595308323147647425703380564545100739985637249766403352580480254864210017966992175280668842027545569062549503327441666526145025644712503962475003841760706637772183315302362374688140778743967374987875066151113905159222863764749769263252948383352136068429455465526777894105339946842189070395369379308469168446407470181075350318651515310131049871702972716981935748717750197243795001841921817620291824852924441376684993796430901591249966763750304836078362585096435517809407751388034284724519049942991637489767147067560411331736864657428894260669257946633625841052556621618886750377817492794846062357852861293567440009034695509342103529095680218665017611057207512882718095133655650429400226107899679131446099057551328250104494214973055242923139852834274240406019432136958308768171445933842479243443813852600427843793092418692164149267066314837995990820418320339713631327424985113409223629400590735612566515514326356353081779084133296936171104026272080106788527560041079599276224433245542999854723226777810311474809691255507923310259473290646632202835271834763378724878167403014579236561747661388672578024474736486870088695741797117738348417188480473548862933589311956454859677467291019752428012493142276761756730050510454333693294773801687637545404689694571877089877693811481299354167139576703403787140293581720720573165962509770065116987438866127699575797367117752458679281068762003869918307867008655196801530863525409086507949944483007403346316823561608253996537517148516832459091574074305997864027357754435843851800727582166118485561949496370419724431743576146981385030991818436112466112517960651746433677498995963971219067613479417979496152978269164306609247116561045837472537260515743879924018423396660567473582998191342352199434999893841350387234645027771431335052198248623128439422677620941610954427434833977065839253625547615135504910062176406336562302123224381593852491967051408309453149597571223939194231223252365041586455215461480737908901835890804559100364493746935774740982221625120889967914586324339374835789848188950695329124180990837572521561180560595560103809229804182761952740702447111107357727292921170642418373953891277417596740795001876399851596882517347391463735842675737187854449563090444788882511546971033225370491371339269434278316077980258499956191417024144497675439464523552396741811777987332535788570761347145133613130313427503073751927291697295560551532777571032832943317641673592675201253146832833461243855428092460537028028256927935956438014725748915116332915188353818710156820279048597450468048546162614602089078114092095344983834140346573451373013265118342251974353695085341991139399048265844761196666217022112760301988127363148800190316762526866109310450974995744321849204650022244500465107714232275420768297729203021843629804974325104312738893716281822096753078435960285192216380237576862451572117826363946929462898716293791384202746223993885254982294757979767953598681432658501215704488692810912685257896246776181011935496278414952600881342740878753719193273779247463696347406604016253623778193142385013307999186103619927498043057949559599529229021846076950379247938411899825691088070627885331031903721458880377606531373833920202411996342542620018381100286234709974401886685011954586731707499527108005327787003479916938334328590806517034002690322837713818486232412094600497030884038486028198702989593692743199642432309345716625442415231203864306022366294070087241731180835031595995523909740715292828854181478224224491031330319697215554256928687230836320695399468280517675295250437232941307056084507804964325337307043812156462887874498523090558856381669511630578164274493778346116782254029050464144609686656705295039838583138520638480818459822257770769958471334251639392349605798064471950299780454866210238751828388792380174602182162879110754134675606492150726994388520906308892072359051194472381546432355094960623415447681003368225572260158253055578478327599722402147047342252303567912459538787625814261255579263793001737019445451710062435230174001632857177745886574371364366785178759403991453214592618938166279444652580981336269429816344699592270908547528889436055491234806694477910585355214661686742691734605080297513163982205027385675382077925211675437886491830865141171231609949192406398138877965422205412646219057341244612954623748984124315168749377663755173276825954262886853651065433980968400545770964245186893018600127543906434325827440550151726536643533777395406287168086115504993453925159911851626073943130083648479213637891948599890004816966834561771808118009240738444128318589506756687382721714560423057676591238260827778763386134861758029630468329731604242063020845017778499575337791472792105231137364571114383065296997752778749826053661408369818559137038657403043649569512500272985961961929700198966114560013223686145530875355437771367290518562110366251605414910963673647425194389398651984776846950559011458688088432900010849580536067682759084906398031298688339537119030236195069245086120821246866740029750714465551508601502797639804937796487250727882516894881582276404077512838125843349037986466163378977602406436846222550113510213657386548024019054310043297110831161905933833535764631973750707881855819041614766548614095560993877821138477616227714416332544399390764439171730342954343272344879891595882935405061213057659455574375324318356303775475923398251978664982051044479607271566162595441014594555295703051035097805821921431219025631141736678934591323069398788367353611715509814531859463659369818381729140501005280821766529814355727684324412386161133247931056549260311330813256590080868874469655185130163628094921766949369391891076197080411486790353594280987802221386917722502800004155556371901521883192507822465037001304316933372820236824173902657771045876527048057878262774894565545781154601193343206620651573085368521319586949425574697557174078188624834975856537231796869780218298781752353397838054063234809079464697520653479059521795931108497650697974628631003450752207694347815063604097670579111549941004484761057703414933275900953501311067952275773005494945299149578096743153686012986088830590684804871920975713549228670794209882383834319075363286463485502134952720592097734193011237763223407895703899019736667519431484196902729033435803405417857217382634038231068226981725492054183176671238764941865652368873168593356947571925339503836127999334171370402096254171094397065021052930958344471065664978694583750693640908303788477507160713459958514286407417635786588528756983186528338046831873724618046047167142929903345416230198188152411861290080493308752975930417497840771366284298427007327552793260182542647786097673020811736718636311828891040306621600681484736338545843668873870656989985867638570383585803107083707742230397759701912944340723010460742227426046813056888632507170183859522507569608616874542984385197296882753118926155136717555269757595916353043837958319703875266247951504291379498764344726947544696605500419083718385019452995220458708994022213731444250513747338083290453809268543116441429674507555118072935489175400458469561300749572566284694532944453628011950195991513446455612574913088990838088987107366048350254670481495525046341384051655741451212103102868707432792940049442878734728541520460996044735566569652164467567811039642586005909852478586946276767010765707305792452851280007982620078883579827276591893020613014264426897376988802255556919284946302215447992211221365070058624077299701632559820548590158692701064139062968965510214932253422740676419148828454119289611494322568118016492311380349507966627249561521378949860173891452094553802345754879914155308549243342542308851050656392748430622807496437803537512127732506496399276750708963733429127542371887786449078019112063636408314411222424826765916843319041875033329623296032308046656267707468933619169158948598401972353992185799141214450562877729146840581028599788526233350372385984439160300484430697840982929470635494685475643211771418793002335173493421851648111610281516140751278547016904587428935780535673923297294200675009712668016120495346281542062747558530191359489073013912858332454593976974201713894026582494037870486805338543516603570313576576460931065611901261487735132432810279387590375177461275307239844461475571794550077491922075807894966943112162510450064923758906836568978816480765517381725343206051534558739255843567726525232857939273027363336350710212722828988438092119461532020666623758168246317986771879667422209326758986995761354095868904500932358481962404980789061612380907644442205427874131709351780114001430883703479549181094048040265405842749447918312432120232705041614259889535175687162008615081466487307351781012151243988741895364544669340231157296777157295618891483482128695585844675308921901226164580027449424188276895952017389240693700357370345721532189996847512012816764749736049232154560776510764615452678830412831740179180235353008134377235444759371252223360281276881442409920425018521591954557585908589987137799823848485857850161207877930635457911258145372100352929669593066471546427134157195291171175026027672155359351205054314638027714399428614489934906418703842064555177481679088924386716726475963322759408440406669341022516053358499458752804381869412371063880014256496857203355302901590901164454571965642378826402774780431752621182927592133277793634359244303556030710952112457352250685721912643175569185087948117527045158710543943545768817871275467431587192675625255524984643327939566646043278655557666128632775814425479760356070613782566262076724297778322566012957021188016009782414512298197749784529504619540552091407668822622379761838020198538158055579604252544142030160923433357088521209885961421133322945404889997585794813118833462276703739060999974707242015820569949357424556033359447473931613248987709944471243046669434905646807536594948673793462040973742397955297997850277408871807631029872387373405448862338228136760722079675932800256942968674391198069797797541677178391098774423426054867848972616215130338671726161160229486623014120668820801022107223686934022385106383485168664283215189426977516217261476521378467382432615798313154836630719386345360825245741362601632834654378084675798776686445817074246439972778554569213991049386315678254381789645328565673903373565034670102503189625353250568520508111621409868635626656803495548293818862084133148168736181648839831651736997865486064268122001338484898265435613148014001894032394715512490960317190548261800118522588286922653499493150941534993539829298789895154052625601347660048947812862949664023520645407038130009814292376296694310319286305147632671078050576859504914500601924450906553766873062323070444270773877749671965549158218239309465226754455423110418524899743379168512888522329587357877759284787345121121774885395487079515417339003370197961713774504324409610361252112072789562619704199938516206654662412247605205596867670572476570792815251412365039969996403306506765109480494456170906065540722419401360567925507091940872976896061803139671373835837677883636025104229825323936434547401773049369552138740057246805405328694022941325592929643097869586301785968080337993944843905891850194386917750308355022245910345721608322051897560764270912424725496795896577864265132239428325493819132183996866506758864311301669639930908865064850548388977123524014962314592348225551261418403926223451277296486367756950032368383231439497959942773890921792873604537759127930564506013461943571160933589408264297663971341271743480245104661306963218200774934410065640898808996059088233057453801581851606476865835900353266255620221360898067571608410362719641044004474994151033416045399544555211876272582816837028568980712942436511227306032459097445894887430564491691579013018764714454399709524847184283533879324504453054354489089975189210087701574333653777621816487099487773912501728257086369513080456416593672521391569709240726446066718885027575381126127330439801691501341792519816593770559300074000793138923051948983408495698117165905698434718817098934901504566862713027191906492580181014541343763411051419111263879228307466848426322617165519349012679990398045929344745053721611160865325937802097363146987944118849179485652590947714464574628641471634773450995206895073916670220393966880225874989943193491685550323492150300684048175853102119762440869477645188603340603300771627853699178299899562000725481616851124320037861659457381150428153082733647341202984195012826563174949767883134252175542529562899321165282488088273380288763544774582733247622071318271796992255753909934387736747191817801381496875488992850724213513298896157223178465789806816927019657344558381672135933253047018373117512594866327243166293015972682731903696381606250347011280277146489447284695488810520743193541225401687448372915694043686158228165210914191636309529905242273310749431351573947989535998274493744611949260702122722559216303729211891400868630136522828691293234272589613599960287669626250650895098481113766850939853416395210791657393357850291279576527795257810857554287579632789597299459595113984981809844798051640401618352442742712277045110411330631154482906214518555126793776725648330708697049069585163575100717305990661023993047367195557496618679142196366475956514848160825683252358402879551577965165723641028987317601097093699444401230069765277547230450859504740149172062053045993473692418881796248851361155404987382273901617285274267030343103937849905887647872923289523504525965382714219995307556943041430677371516862821864813231939518941914564657891250833820443459564722373165395546128835413688574329599283523311823497213895792500605289136000181873265306364498051477572154685021347047470634823212662701420847693745643424456092001253749764266516569409533842193644160421186167254524265972788236715763027492443055492669096056663309714693067084042574937742588330579249098690739725250956742760537253372983250987550085299525875051302841303664043502551836928443446634404896698098278407916848065784988135649698314940470753582966795126780535196230335246656337984461011731875919700928848605233466759023288718404309618428863636950743921293876982450922167995391387178150599363745320982422080321391681224932817759720297341667808752027649614450862030162513215996876251772766593521248956598641234158137079589982236861905153534659922905410684177908877160988663020116044712702398740028599873285163737089100505320636503896033528913692265567886554347284864331646307267465931699847964930236065658115600905921294083652465065943730517266159498328372440293730514731077498688410777007702951708221602057496439450651675104051171672711982873298358390910898937152691876993838298345672326468576173287520837181446395085763246232518237556418132010769601035228609500590228219519623169922171686872218868103675623123070559719224026197736693128102744400539230059880825308742996629871992956208571654254495209403369311528780430485198861391169695266820724460370865252731306987238903218428147165235221019770029128648297570099233728450125104193957229502144012365579509785752986411698918794052254950137561293179710108392530830099630628443995155609751751251653050121685532777668082291999190550306506608596339740142089231480734325748375061871512153569341732554074108146988253766256794241630186210457070104220203920777515055312299148384004655907880583067839362493222934574771862591863214063872668801148056716767782570556148747240931583553158127809324604152708966154106228081200926522988419421058193828078002648115477695785437365524402577671793771659255251002565958418760431195911179625021027468906845122659716378963373292746075382996930288193825579740454368749925269382497008559479274284353082634097218228806640991824337597819272758572399470671387616156625034721024700844383401472718608431425516473826138570796917913014724301505013230723543208607150894743005704360198567187008036264505778326204696035532956016727316658442214549324814100993968588284992530751775153729043971146065934873322024373737078222985449789894625417329023220659792900969285328012449022213395320846017602935009981042817639068669949415477400048466796486034273034076222829586769430458231670344617322536308192700297251587113426415786105941682907108843991854042569529561168749976553091509803926272830423481302257670025549866305031290955188538165218781514374660868420642368723252580014454325200109712979374637521328913921003838649553656046275622596521327451392940716212455035237971417197771859873014056283192301436701096764169388475706951294773635035802490559113479341255923740394450244531733891550183387750420360254662896964783497212289424452135670866862747592611915570219425214347917106217718202753615082228162420613696182649575342241701252683718412829426479380643515270550387101619955508362084448038541531765720573092462135739589532503969574276617499956740592413413515731256776561145559364222307146418386505285124029673754078360170678081883889500183641598390220552571662687869076451473896181264511893692285987181119123814701665020629583023093959721593911347723261143675952299763540373567955588583071121344220281864221120081209972768683542659165053837013734074550245482157016068353179067674918570084423729868933504455136205915391396865023481220130083787788529063411615079748112998767943398004350213426342638241386226490600895871741683892744310156065701761431321386245849132513394219125932536233755418149247063842665462230353735231494101117633378836304420102650813639940056631730069821986268365687734818597096483714268495079995791289194315736876883575218355244221116073499425884634417628781900370315745750941591391573589863436062077868468169747392581064403331702332325826313213032584722623053150430657021800258913991619261313486943580014904320248920539947751815569887632577690593923981955323022594841794325086035121024621109953395050362708036946897993232950794098751281982608058151331633906854202532524574440079856662813727105640981606645320476162538859045726926375514217514395202978095155152873025173278101584126643165980260564068560121512695785310940411091447564530526188292872374038689856793337135015347569386957777545576520585121783583873299155163184567924671724055621121218814971217981811263998609053410336125185453913724652172452619656301943198873047270483045965688829503034026783722171496126386316543306615694171028017896083498460246668058872690034565511649921301298183581123798133641089510738657222383588574571145577108961351416525561338398921681642444963858170329085692522063370886531124839960494299003791906233397907982619491638048113166368035780844741461124003302441250446443873891339685162005973452505207006048758113566433546978327792488191640664354592180380742112770696285344909659334353683198078658939388515410133161490065249825292393495146894041808500189489846060203446461037724532860792157346542598784842790910048467793905460630092004567210205203240433501742587294738833745259104840145570570429628479545751622033543227021893686142619598309498450180893126715910621435328826228447211114912139554758936380805189070247030765844471108475138284770755364646749850606027682103059521788972192641024288688116380387518424334803267202278863675701160173059602689034457297591193911456917197475055782817948700749181761310632640250607874554057133065651869165534722506836810638164160430550345876415827237324882963402667952211128806998159780025058667205471995804902804046483882132634240518298246092421157117771162002599497928826316493970743836979995257417560756515304542919845178236752403651348884440705688303096653345674765924307252308007140868453484270927050819904780183982461656847259508281093123031236329782922718368567969712335664124419934590131024674304983005710139841966221976754061435740438940474343951112302117978878362833747429679710371820987570395561973711783771839031232173287295723599364411370229416544109436382695890290355337848331781385261296903233438383201101105996431995077222522754709793038302343246194222040353159187673831426973632756944128665464476964510572976049224526702382164122832296130231393211854361354532396949813024250340872472862940306287227200263728372944257157421415409831469742686367510004582587784363764323692740650195568226698742880014620349984405132063237798830657443552124005152127492630490145748980230064908957763619027016705653502642222162186616425715290711774874747473161693254994109123373703838272666158235290361200559405151186749973664092110145857685933132184005932418353291621024868555365792029865650650879850539396864659315805828476087561580032743395060366908811956183290248157954665681879894995420510218290772482192553077996484677828066968488613257729912492367711198566324694978511864793833031996596795808356723448616264901072269518603585801011276417230235777119795252369016431337871731798099267839330628861701499095933773385071102579411204250005695467230130732852413334043257073386624773767011521801864088657179751372643217652812768637950517961704168259166341469036352416918381351339048740355800913692312460769635562649259722245035966981273090649934415722670948452377562066919173495387514811753485798245435351431061769567064559174081380577164292154235130669514257259441870954377094420190973007748581477204716399537903221917523810711009988841587322113358219937217751593605612395033543056608155258329684317794826457397852004401432884177877764136713652450473603812648077922248924907656634549499831689237532417711988977779741627467471835657159034445909588381384237907475499697227225442978168723583386411489522493961706732269546622560668599871542782358039516224133442212792268827317289525348494665449567289951761944108435258054737119480662644708200424796835903810731817471780226093376793565205133778833179245524886913969169782081217248104376107599075106268472438322883057468273561496865774162117906681193622164462535312075520729963593934291287167072059623120682716947363368811812854448620052830480564695534158383910656751615458764791752094432160532102955546403637320582810974794630699042678280073709067836924526604025451022689244501540119495517780964747097855912694829063586394793449706145383581928837107143846964861786713374675540033417068590721067742461917308136456485763122548971993704959744723452314434985068239826796224216896364876802773902566978919455387709448693220518239874346660488820020324993739422086379768482540824671726814116243234514889825297080796242647656663545807684955741233908084188083978772201287772932919390981745672785330772418217743444656735154021476342316134952116946823912714321635577114199591439990437646513698351340359001472503814118538187245527839067592440613759715610277031715265203001634252961857092311395885331851359703128640741204130422823444795090433243992006182679876226268322836043845217303450882754108585912127396911131321918713655872714699749414643136966158158255368858936587153647540065502280124833647743655409184039553977829430240309679047614343270061976989166094188993502521482637263972503125190644130361165407062138399511895662988977714266957467961543117022105431626438691961300862509708145066724801085823454277160577556472415656664186189636563794023350573833826622367358130819946892002992949232234345815302357995306893381789855255503535128315659993493134892481191041474261372189172229989890296969455148350345760194840379052215299412326462578877414624100106257422571669673445830841565949836467429492272017057362669393584309929668251248496159644541722587280421349676126184866690003941206492203183797422867676603273464161960359481724478373353478454920355047016264089532073155309156728868601180764223869427344166615379339261892832836704909962247033515520182108725892099146030980828396663675016756137450417285223605175533441384131179674049497712824268413222913972906072691118392151130487843983440405746057711926302022676995764736449826177681347464917079902469161286831408120947754737250066737764428800219906943764494645693408478546415975598439139917160359876209313845846561680081496161352814973355279874879015040188084961560370950599630196751155955071373728360908819173124488081914512118074478835444215471966041087929445763801941136440752413837421340492780635134880267731628525376256149180253670690598988518484151710670044610959229254167059786807374248148068635872970075818232848935978554698745062083309119749939092355472508183040217738152898020060686937361194590312561475522912910596554632072774192416507336955939979571015685105586857297670301519899498410198425464053013489915815450207557044439023612783551037512884266018724072910845189230196270765283059647033921327896621887980965751978959199641428434448886146579354747209303293930066224334200038701981962164749410452416299259720959174860169269409392728653456981122789421909699844011196912745334857099510700256015960762441839488961749101364726858736490194978686588999596472387386561606410874636080558282317777350868562523230464836465958538908822612981720756672919971609437185939232605442811503439879596262097242714740698061555928521835468717527349209037528242178514704760099980442679483341800479526960356889553247912468669585315389842284705303924666638336974607580278175846035414699744598081929817864942301349593519600789695575375799695426767013279964385101413442943639553747770965638855902086051326551068383279390617097104022983562554415523826332973005783717579738431426863592358948664713006307720192992535407278938797191896511109859617514803066290641109934095359823260381628766269300612814368938124760037190604307889222342594640806543224213363673140198891388237124041249740211692990716557890932643063615192596829892511911185608017264901778345440916490930250942369346887910196583383807265406379532871587444028038674417773335997892530020861918321915747447961087726805636478209962108539392871641389491106933106218137544304751192956666092187865496563191202382452394058813457541100770266410679138928931869058868554158930078810512724151031251610625567893434208187757963894901083175244814850941783252023296604178106646798415819298562772091863407665186545776486765309912699774568426823782553335142766953437104925877741541369619812053342683529551500756956283312535494263650029743025521488008691119057207410035478554136804284149936713430123224830074651059776149277467416985619923844048442161704378114700291623047298747822526358307356408326268965004282588574503919067203262631098055525740740855119200179932172004769860095411621336836753001994298499569823400897312259475033137437638477488712120254532457198876971448716356259679421161015128772260698746652985989576489885979649350384006989682432243426652610251046210322628315906904485327072151791713210530407157021204450990706284491978645699430543849445787195201802317990520216402705539189233875788254272977328243958241738563777179099671158136794446224069816559940315707531789962335072775647385444098809215757457211023088926006123669444507664184363426851509538993613290123386635508033143187855951522705687024141994695605826942906947979562447307707352605419377147860681260511433979929545030809144219138407790053197583022515743995960785324972079888988081689827950223233501651043478932106609146292729670062642120520093048500503513901321111753899924600188604008982177521829516851876210874627740934517659244778438309885303733245681201339724143253372862717094871135115596832039013665721365985149849325234696722002251423688197220057928711625563514146443422707251378269305808106836995457803764245301957856076983419251264358674150390038030760494022148364744317486946447716115581187042899853056913950239415343568728235382474440865554849164481440511121462608140024596229163588112168188291882511283910769875962156916127405125457469429871136138483353526306142086458478352306367068167610142572201053498479883664447639899820627108124199094296388741508187180242384845309540818749228581577513375485298757520666376487629388523463952174113261823337938108702791466060129265220536924406421765147875899387831222661283530906995925427099322843435432215342818040302071608002848309236264644582353640145457274718143663452841364346620596852258150563715116563981157164983799842004387635198606911571364068102630803899273683812211225042174091117771630175234409880137319281452922176629821861061640724672029501656626486597082283809846595241184029893578485019239238198575874533759433206504433297176687661220695370447416254451039066442515720219446158359617189220798676411299926120153141544830150976269202788814126530307612815644368722683968056108497254320166207760669041670029220603302864878953903437831828879537503712547264747933770479338498152503845384160414470637898075444805503594036464062799286685956791923039918845515639069283454356984059020978691620114501555281926417421964191170902913199728940059729002372923733389068337997948760068506583884508113713690193450412273277330410581705674656255102614367523612468436102826023242261541999680041490201429934493155866594303096456000737572813387558721427989043207349742111086355737030950095792415236791672672467041241937334971777778390438511918475231118256536215299391636429426951275356202325775588551796646132747488346440240418530407132182778923197414119000742421848835000184866582220834180730617853861918496389213564717356576702501855329054053267755097303342704859286385361544059826152262195611208644843208930527548962882106276899438709133123028717835564448607719227950611753282300091173595561591194211081798277762201753435772211220240683504202215875875874521487728022964457383840450292213826046899573231976552286903264372367779952982509568871701536413512489659773629865880155851262451732173164351601447481495725689039218653565142511830482946071916305702293676150863713829867299376246297729888638788304290457668274092844950073595450475133643919120965547625152772368203254314250218777235398815112327694526370264633078526277774413663036305632617958447522747083685718404887565313170201072078493102629604260182036254772971879644614504373345619782526966301957274088069191377345012020437216071007343993501477277849694651930978113735775603673041630333292844159976097189727643517536080795027462080350474553478261673443392164914985833122281983385483665411931238523822880351226586829063862319932728278028848922056737209815602558169175731023126925240037036058644044887995457307120284850905759239690305908525598233531207087966852163688663335050910288888608989374257807707476514568152759844327737939476597038559847005686389038094739094394124244684835062346068464148821302065554009701634370671483087439616719087141035590585066569649440575910925810712454671997467696811802346837645170231737678932801891645235437623804373688123727482652361870808102710780409764679172092624917346193028875392316019839160902070638782674625010293478426160998691950145692908401233042498294983860893268823790200694389758335504037748296448671666765398244029097492368900259626609907302830300175139692015208970916108073498330006627584769096312738930313558837587426884737160575305419276679600515637425926418870432279800032696245345881375323787121876023466617610553755793455168680123980604376375527293366178850502258585525646648589293564377581856578045117564777095090695435731057408369690002199456358702076288050070240536764895519775008089224388377047832651659582958017681939273213030402492879887430916928605010592380400907545402174353182317869091325790249575874525389210493996703459802107394729642058823391762889810643059012127925197766993614086935603071887206117305408542660515911112971229710522165427749485347431957484371488444854076379481593809306264367588420508723349047355684854935991437295832566296769431470507987835401739491184784312690018355793961807521274901397539200686311061395632314306683819686520427334019549304033946390405275050387149967760585924553578010109201618780922864884156545892889678570988423635045784902703566078079714164336292897638292677996128979958284617250501585946799188129372578605325696105382107538664842787854923564206512946358964988375374438624015188309242529572282998414652959933789604004341253346105222901581697859041949846940000081976668477467665067242616659394384532775873388591928090568624689244392425724441931214516608433763287267236053406040044526310839863621404077925748840575773253830185793386650133941037833233412760736302054625338756458954088291610119631402059133287350448338804829320080625659294504249849706442910324164040014659281605826120909443280805531779902689891379264309460857158589320482027931478023443420868535729921160002525311641368584685729918859186452856567919699623571593413411997778173199915530069056297171537060133650944110188330037903399234465411560629560689250641906909580002175785737530064471027283125530282751893470161038576019564854547601546994666966175650393500620390909467037581403447293772974517992683587161364384587464014359440332663609436133438818069514106117646164171688194175006190875438820070561562083502723227986964413920675043098605432340647160219004547367247130362168451229906400612314834930255209621770938122703948696885041662539365593348588965983359453620725488449054758392100940217794676339656895436338454721053228184751174736717916149800035969509839868327161188957192152970461075430872847914499239763453206980247491368212331325762176906253301829643200074337081190093045356256519468376593530449439144806545554808718821956142047265287172115315738605518990875445795408933582396871387799801973686721389314833548351316695376704644460669479530677026661872260413344419451511943042124166459466022945817410885646446710596889511022278112222285970714056922152579732351001691756008706068011244140832829774351309402305813177317572691498201893051084048079616253763226645749280034472612598108703597614350474269280249075511914285798431817727589080551952523118570812021636846230964261121142801108904911104638295569338465636221869256806169938557073279850277831857650155776343801851243804964298274574606625518837809798529888470681250093159592626511308968522695803096155709148899804720426939167377555278626805991099546622199649720019460184134218875133583090214134342504966403889278989835925532328379560983594441144763746421947777735005828768407309102531800851280857657708925936861960469968846758585202068841175203302404203118279699307065768956200278248688221891678937224619928274699919941973801541838580858743049645752333742683419372134187104471522477298608566495444104292243754916584152530111463167840978407955187024376838712794544762452117603798404557976908686636875379543577938442983401769523154380962395045322203666901467467877408608590687445548436489819420976807004297028125577973479641699555265283195384605720455751404989041960848168675422036435760695536872046630462893798176168344163235063530844472200467100979894756313069429781132573311163527218850122712835608275998496761825965813910402263896193647944217975473945532529514577798718110238549364306896448829809187816353500513655895542303939183584654481329905913251344973016378306152315579382764437648930106431872384389642196339591593173909278233254010131798049210111077285980184287659835400075687250965485746863411771566480540515651951378053827609955442139125983211761870740448202085388434356390198010622965793518109074284288270005271868793445820137162881410043073024342104441387130091850982928300822474724128347139509702515782247260073146486174860651168474148500851509070242486076997230280797006755307559917566625069353867291719057279090442746892704425477568077318864716670445040960152091213883440103596841558985146747874539684691255674804948734548157130521150965321212868707224852625782064949477772220636346978751548048309697040064831008499262180778802506135287805930702609264587319026871821921100750632428575780122686279605728698924499968411292491049170477535570087058080919839504481664981149335576693445500911074451701727011162053519093153030527351007599950273980319771874133481616051238021768533078290856806704680764402100932855694055326464014597608784183896499114206775046345871197695361145616486514548187914402969783752055427926211489691429437712779405615762048222218952053572933012406849483552173218332365395098032413287008003194861878094062273716956925701888714167270268304743645800233113757500589669020951649739948841509622142671796254349376298248515990579391301489780403304432389581962288029636216765216486097943270472053261177314239182136202840146551899076949183777628393926521673643827925451652003785864000730183373020141875486176058148930819741952693720205942713493184582179101877949588200576745706218535188395338771658327644152773604627852326076306817081939481736797432085511750174360077454785924403229679318587232518668162231121681298051438314748692393421790376028305813831720024166769658035097854469301619083253977311403498102472273742755003465203600077637486293645583518607396452391322455901209207149166285031321747774064053037511921505022670673225829219075212942093885878744741261418090594365386521716450812252485103187425161982715152394571096205498650818124879549692759448766994050458347454466440546059705220248310410503740839881571461621789370058032266555824394824941274743580511692073562126757711200407493796017331354104500436983873064071608710433851268633778435748246483641016528956920046737159641973566910639480975828488048660275423382614628780922498147492369974457301205737597422940538089899335052963874833323864315254362931839542888903515572618296965229470841152463806180148317953582920721934278013910127309684304346276235358225942496656319440748933679488440923253124674560779022177931272392920881304129348419652443198542881043248138740488051452270662753895957877252410381568413289254956721933076311224316041023649264778285597039555139352296023797881979951877723417062366687953174655666698862049357069159992654595202325091452024229562225002147123139886997199073124398802993661194252159701384307723180791203604958150009429396368487454438479947458817287660101289286088406672450407681153782005659640661759938201575563412454346819048878835708425488049421666113510589327058175152250916108756142037512560176257842776460091810991907412047508650059659386775391491803525779590135459245436816366216780989737018264194557395960967832766671609441686306768627810171289724254043711448354750759492423781596595058371186554150532490350474936640456310726686272000980967008474094585157397372405167575930720614766395954681346382322752808325026998483448869696596473705472933953543561585186649886714958784229216170877122685508516919334112025792933244616347940233201492418198172789769193076118541897753872013192286264425813438535526242869941925174600978912316277682731914994163017481726894377148439450868198524096275551805113124268695443702532200155026559307028422035763278034566749445612127576078698182806551431491699238255767735050517597057532487272452750246911432810574271645907543118737322950142604903413153394771787382781179644087545292219229717898285259687816282648055251736058093592250723795528659867104818032978648924771360472432687414111939760544500097200125858093261153260726265045638157108556933823280884660547221651435585772929173114587329265069993716343828417391686233515845896022759519713448071890277420882080490808382738532551906105532867196478199572357103930533653362553384213453181377359717884412835361113977859544070184685867199569533789058853512450194846240390058068958507527395208876740387315746433396997563459456753999514506392157567579443975306546135445735893700993810888828648471200316349741457452003600429201964714115042311928833276546782681796267694666694562765587567380721455810410465811079364142707429623971312815310498879175482680406728678109665011236249248909028037140989082056773389921314121285535092293140629111865462393627111727512574787370640927414205400044249679055590931862830368423947361548801028252707452083828148876688330402609688391891777815947423054976372872013193054577920211852351090284304648013515018856521022831640505798415615283982818048343126592727249278886057845623279781475029305978898516504550191067228980216830766934005138224967806102476296146427198915270765942041083144388333484409676920362072654998901474956156918985583249518130151436748545731195002989949004253103985148168434986466261417576002482710716724171073800927227273101308722492860062611515200826882208437614517290939968881338672583710345798247755020200424787395963273978474125303959805809001147934804034251272302137957821756057783615395797829833769108773157178376711202766538229492981415282452530665906939616743535245895979203167694359246681548663892706511236074935992924344057335248586144508629009613654301007604597525674989607502144381303287381717138414888732594838896010329786891531669119076937437274924331229367689226372217303815423839363957893637066837727016343958343149926291598683307432954026462747603372868239581149080873541043137930285125081004076397918345911086953451653099323158690445789058393205493570272020586191903473938959887371230068452688021461734370192948983659734298207313795492761701752277773090206776460122910193429670852931843899311575712450010532815652305995132625696719873172238254651794769937134280045326333780240378109960428281217053345636416063875400053930449039070305221327810863687637225263096225217649053474201920881535278165225964425040504473760384811717911278308490972106413381260406702918347738634045910067842787397776720999713771683349179047164376755965402763062149101074268809566617546093380300579943993060864810673613059194434548351227286050968561087592445081876194201070477153622829742897610569273514202104885789082476399461631526730577227996399420295860367954248535659340142919516955645819594791780669040625040613647218665226004385417057059909262662150148276556303940210802267589503548345166099198097855742423101666921584462128364433992922354465473179725948184602293986361877294684569106881676572545024520752699917313055771512952216074269847778225776092212857201811559978577224229856800831631001409894037982634029725404033140485059352679129807689491898670558224485741261489285167545323663592820855953879664827665894201494780893966748353884826356833777746273862881087682906776203314954045933678702599113497708661196714882517613706294092174411486936294023890495996154525811061664805823402298821203353749546938090206914111047336302778087689673363225535755072910911792245889937370433182904836601826629595147936273711599057635544119219279178684463825570540560207211279631230239925594787734584627325599038799851079118542516698737780329542044718645943626602932089884910037736979246208681326917031684559606088061810507472925832227969156423131974549738128531676571473986405690650810668389363581852611851544666905990104113450206012885686927508240957542017857664244245679236615053192790909096263930648678427283804247730057957815606095062548573928311091440186996086203873866800199448335461781251833576240490461143756430506745248332171860069736327442616639867564437340654106994950738390980507045484378490885530436912082585092228179977522165611783089814989858212669261600813892641589128247674513015772997735742214047358522902772169967828585512701632150838061931407488582194180915178693400489144667689927775353699990261439572366727264667175010490431501389510145782197313897949852803198618173057679959065662623297451543668700719859844496539802405841164557173255433853642109860912396861436286568399467314352788380713000223719651900336807098592140109140469187501439097265019879286998036158391464035397257884516296448443212183674868861827494331112750632181791887650803888392817937580188701370922715944471619438898627237796165572542799744754268312388643999894039810855312327052144888708711275681436424566027156956994679384205675021870854845328918753380301255159458950464343673778988185131567290904822046206206920239186250724735486124411394786732435856178084217401672349555682238270706868949306265496266677293842899408624092540021496276560823275368866172877114546333736774244690562812745682538071937734229922577681714754713508238795795891236393321105028159952814434620038790881166147683389332763621068916586928578280781128690429198762677369835881652507613897119242143366392794768519788703224182246963828385377095518742663563302752119376088853478621709275256627636118301410793621027615572097859363556302186064603993580555286825701303748181853429969437226613285878154451107185281748577697133943128745839450220947856459825808150557181617703075867654303176291354553034891117578823335830241532699612566068418256326769373980856433477168943718062296660542895910137555858030924003709821722681436299914120278967815188843351940032928429997125140020891230373672537731392516378573906506209604996022753771286709785470009880375205626272501820310659533732587524354842300266645351659352099409071667719412312031480691970067062494993689395959006781796630911472941093263489407622748602627308414405077085488131248742226823922529975069284555969478874987693060791158479230798523327688117501073121894945890767476843398690777617488378875012343784227594565062337920661771651539797614215699690927098541734530701734094062209795784755170804787306921765282924665938947716536520893497014762007401739534253303357853598702838581241681020477690699099052422805620988883253652455134385107545684723261728019707939040987298047336111257290430902154245681953581264044482630071631279615903300015833780320364667533401155596567311312003275839249037666178120145309067905715520709229200317930510958905064254818706338320020395883078932293078926310045563935492127647063471731891557911051413507234287235238103290955049015152138759288108116088031106939245129578634726008485515833478426095210971334539528209511136104943907517229807209189645771615449446679704439131238484188062008057897637097622721348415247787153696495246139931294760527701011665782627784766191243812577545268095217561935412759479359035034269053033692572735165746678111095147800630297476168765911900448273356762348709989536887770167611508677672400649734542258350567171542448917864119130487344258375136564096086575092557984212722465423390274490722492616972351513978547925810033267985363865843240383525053592406216984155994703822890968868033144561918962207892181251477137425851387071822700265707841287380228413087771782778900224378800596404546166189727062699081056952806263089804469020909377962770402833122980379000563641831745312095694008825341015279677189844514448295296902635315389079831699233973552375912638234074527459740881955424248236387040739466946972559519233119148598996899902004047571412716215682694762870561807945860216065284377692434049380982908403636304321659097963648435429434825756469025182166288392628598302700031910990160195373202387597400105936543106798298289789572439539966104991288771846020647804465334382975941957857609998934754511346542237383998880881438788588018008271107366500638378766461600341433281899051328892840355371156082530911820344318121879209868488071638847597059148759232910276451478070612111547225643290660290122454905397449847403575820061755130346932728922045462528780709957781030398367125887289425725328728809039746119015962044228301588846663855528338658472356994708427061317216846971895194162713653463817791804875550264282491858690518058694164151945440987157563339000798845411282041112209071186289330729623685742031141103022259143311412015069215952696635058271373360574471250302598968035569027874993635483444463158102088736645669139437164856451687676870638379245889412238807341659416642388912911527432094645351189816725730963489701707349988199000955016788324222651193494236183634636561119630037218351223118464597886754361886293182316467825177377826477542774628134086222693650691881094282307156635226327330549728086499165683582063422456350650925322952188439102364110775861594382847373053275414718406262480035424359591897990584158175300214296422288523984429007927777964916956027703827805043043953604740009730850186098681636093567805162029128803741308610993662309918238913958841185126027868411701389297451980241018206067355189200883090274092127300556639005037301589992372681326897705081466461513238786668261499992108141854545406998190765635235721684945396914934597624766450943004680370308684269005069281568624706251936475196707474499334715544335667553142595445575396788521651860624828056959939974656051452818900843968188497573539628703148867377839532412009492606224253839140487328173528502361451885900927663524488700097820787234030264338770382303548945973653592400348440068204821148282097604672496725346496193002089212387644874841387112508090432238589278790860101147325905234811070947936345508570401080947253297408835804057379134315976711579669874756690264281166310948262202777998220228304969834629200759619607291549397971948056713582048315895986149461270234205295840093888696526045371343680174561632597694425840997254019972928169941600395907144386664886657440271075454456648694845081164415428611879886535590577579189795791897789098407381712154428986160227005868013830949492144468234228729275957216380963079802872268437542710690963008944169465205266494664537429209700223824761962534601785303843115849746369500327978970908299912684268254254088348468038583820056417501135767267218450267747665721148482302504750098571476654187088884907505876744593293143492870530643707173876073889218150288863301234892531236314814931788437788751405727958585027200439778139179444608027036344860131767147159537088656885323657725801898302579030495479537034377722479179015555344471357598308223523421266722595485387695496556463377642415839206216627897833650693945742527363000165228243422781293143938253837137048507860654418479451836446220201600647255250513452399991135980594558279120067341023705599783674216053213752133522047111747644911667532493767636779584272075481795787124240338854611116341227956713707830302811649755158000965092422436653314472924193957256870058549922341418532741307315747837000075326130826190948777405402437729684783515929134635199715537229405837095776701337418427402654598030560823652392153166618991781640366998085807110513920407748035039175495273592607287464059061541392612015838095820538015619889285747423320252538985810016381326271236823803890085031660852339415226227912883607944065796899460317439581863981982139612310017556495680227420975248558528280058305656049489114045981759988983711355677673783937107408832300548540043104848746797818285229188235005823336128312927860524507805656497131561627121910726379630254829358929612388874448010051917941358162099700384239610089847227677864923521529583798884309038184839280503877432392701885723142268739926866582607925973896675230850578184396037258320024856502573263398646467508273359435520772716527726623187337357045686979169584957111191666730239084664788114836575036079413231842922520277119301128852153057308782977973344326021822535358242324587580871796842816861255432597062787864407069014066995515837517526590767826788376257271983474531101625634959673234099974804848452208999283290991111231835098322446108332402281170879938151734554687947784998312485431527482061364818904579792904432580920004031946961378909893229698226854896797155938407731170722992420919820597280623584780193991545413548494086795093362712526859952760138769802892954375707767302476932610838866168991209233540702083611956314537465577410707623895231231193500939786569982752764599252178269968430755289606529162100183716956902275046797624471770888870881449560039113991724106641980843992583591943451705735496693770122652429059812784611543525243346080659714686608227328545928527087089074597136530604241996220372563426013060511582848312771145205449572820350173432433257621126583710329458768185457934062276622601394631449462357569553344926173163682292555718489756991323124120431053865695914717509117416063419108740325793947036683953811163440680186760348533824979119989726778603270179085303394923144791790532018615799060344928611907889953520508515847480848831291699366209944826031193416036837577737656394292292966663973927860511777674617530468029196906600670418823265058207509435849221468577183282240524402609224624043529769811385217957211822138718552890791130439170228170064143146561469760893616756800139560867226558856085540707521345433603497936144820782026686960429045811109421126330008535601701179059072437871667365466866894729606112827558911590578315320398389642241131213624067045039767801511451016648017445079585023833382972278929187828836723450304031129674980461296381271581735277172735772881468213437833734058358826068522194502769070727398370909324273162898042689868687577346257896250685532924954016206474043843328987595951062381429971896089543498547822758693771702378220527610636199862112567129846275649182841252169582918489274182635530414869592147796750642558289213271773265064893628963173669718756592412056908312086551580580540733091433570666428812893045447057922265839209196567108626561620037883696394247229900540435924551195895103367110296321932064740428723113573883608832527447565549092041317117554849675077064768054425319310574189490339553821731721278270278369732139128789390607003000166969965709880347295346742687341154966309619566991682303563856815123441626190859797574678465190297833441074402760412184914086825066390920231518226327370984551931009006059881201000705152616121131072268924166849146991216826801001710954033063105089947152772262177292975997357174502170872655369508426543685968645434947300580813315415615644761758375780648063554126002755489722196763048957476326837342928573528095672373331740884785060041021799248504636970277965321806162625049331930071207917414033904420174861872519420695895531625190452366956314992537416741153608581932347205181187397916810747236076550862720966043323424994686614582539431021706750325436762186998170630034650933909207998046755262743839339518558235906694468964697553040200579812151281844463701670261082327757482907574226184892922257720514197758581082082347695514824228746760004286426043274691728445343240343978733095547720954948526315766136795122202137799470850494779110385081008604724704936422925798851677339110236899582209569446387384543839451338399723423861176940562845860402089180786854666574661988219760271090629145974151339278865940775530387310289603094514339642219093407571334964232295599266483782103402584750343291949905253574296765339392740126379523133423747236293591832741164062241799483958508147246934103403892642669839233525353595320469990935486851417988343603857845644448452090261317267881297310026179846866889986033005403786292105730798416188245911799048421685828530864268997058389833741979990949074157211446242482410918326459139529762481381960545561939897267438257451346860606679767405828491000112817011759702035676872154768823370254674130331573625922061458404979321684629968428984260848990491527986829640719212171401665098037795469843386644333901100199490285331812569243415413937918374560630007123337388150988705812679787511282975754992544697698970770781845277713618879317837209245924272675673725122608466663340075491573437805716387430763363403158757883755286152249335337253114073519110743268396232098734096831031445531346579863070317531448961850431487396234806737622220807293532816242193438879403587326222691684764530677098228803031925192807872666837178026805029599352307218074502930420865058521356042153133084707534318671875396456922889995956569107199813446682128924329292588777406427464029972172381222859427139458960192972323008412865186261827504588494212304212035317347817497851728585201059148903437118855291649525802523508374944932484506699060741877714773579645631586451009683276098328682841826921978103608920323102820618500050645905643996370531703645326456871428554975315858652250179866426955738830523165713036468641805452959327569547141073389512905717920878320163137646920436092054627142754968424338638136232319219903851036429885833307012472746401919876415734388185950431325236948480123138064817232770195341273833236610695301484573451353285093048012567200851526287330313066528261771960779796625524544324956524137609383213166313662070806879414897022034417819311511022947485872538772618311575543042593290465097484851982776747567708144979368430450605239786691449653533659150656791338376659184081070311161516651216862494392357343945001840227880102211055802283698386681702595760154721623305823408674820284968012894015096289189108518480572359231079938360593941936400998359768000659024793503814016947078569718093344746782622346615289375380443661196474213499156789382349129862125759291227902204361447523019143881470064677768297017991324437100428576533554631023786807372592251589389088500032185283405012960031426064859883234273968280719830082196947882030016051199436406218527767980671235638231400882603282521248077301024685699616621249005372507790026313502181297517893879706634840838200418676740546151565196204552669494608011732384788573488505414304935042168346305746866218466501844854136856553952864603245878705045383553765866534639008088140816608688445761117397954064567644670366906541084809537208057363731321392518450176370497265085745300491145103320031422711295103334423177942306599276435156323495233398186475984050345718005845563661687467127410100611711315045977911382937516179610784184983889036164291095375573809683714882917879517740121889053735283184288716603214228049204962671157616925586717068042067644543838697882779338053556394421367717932962622361300529836314931956542445722981576696071190654818409916649918573589895544890637623984648600487387688184001919294501477589026242846450942394600283291458997755327309289830398572182782613007666567073788265679251938261725639110805019365788572427945960796999168285592423521983663794378226122378252672305949691715246787456634265001749244716344105331554121577260026614829894889819177840361492473225823064009546415810736136743056138954962598141021637347172668405104530132514100228193950323685307214504959968447867896915072455974838687156476682731176704638443916261897997020434149164099829159766855322524113537422001405945619952134112147739187044954120738797590568718334924175511770075925808048746728704449166346524144539639268808924337142125810512397333397966153266105445971002290425609769946270833443475623829594418925893074261791707782178114745043317834516662182207064240335540840311135534667863370503673463585465417921998440370962371570335708636325639764228566182160933204851338170296443832575260113260581060944859716259487340649656551067667734172452076655194509324803702212298187165521151476192732289834069756064581611028439171173365321307207413397733602420336128217433609200208548108500223323762129223676698186549281925835018583065530345866786947079835717979462672051721754226167289323901743409160963042672933737386109210576286932494777635056631765629980681051946570991769677096687097724048422719792790387055670687068514654611777549788894382162098010173579437994637171088906566541435719359676566974713562312620460791666028376873120671135336427937035903459736561337597924136205343171962545228738149140571835566942791681615331969425678028254310589868181888561730003570899113264269168757128648035961684090382667975961180772164882968402475533519068712848180538269691945639368195460139819448678971857022552387439340674892395227661781491139385364184870447930945069256716248623974321166651314238016840365404068569336950999253966066945098221558563299160815633547170974395306977651442782471766661435315738604412832544942358045100099846088383056632254362669200956262796721096996924487640105087544830744023686535466749767961371589167585061655117430595206346080203177609302424916716023081562378285354309066861472749253315970129145019286204559610356912042182200229595113246151129943296874777593214493879879850895991144324513590964603928308910678943654640488673291164084279723123955751667574815729432110692816682807908107333459773120865612687189818081753002805344859091135304506484214961787102467378839134779054061921823841560760942967297446027233688993367307207581143237676814047213915820594473412685907647927776512196885539173079291658999728943068342656122351656696056588965580823331607904560537243450548451827019425137070557690500183467806670150902060589452884801080331812391081167008741420102766526214554830246775249229606681709765565084995051352573868021223520394416390135982804455408816278242024954313955669857589472126082274487950412425083691850060203072140207970527489475550069431861334622052407763194244714822761921077748130372259285596210708213563014596628846791742237503962040153033015500323764143943408827588444282420763122665863188669710586258683055826483025862637695201887765254726367424573216539306387443926733316958716053236165022645788017660481442733266317004764710533419623195776045745504749081975101156653432445193007194258957478566808835639713128998166310501384859327288781133470936627180607306439621571383646870451961182366223141135801756295392153109808800564323467093926544496168143467909464845415281180643716583312232851137425019361457732692330424636281410967528550853255701497251109590600074984820122400243540769810760804794826290311147349013344484027745931825745892026401309170657002264555382462106942442835508880875394988239669682509841380628299929008006882255105720911264869356989348630630905169302706172745652450588502412435649950505639671330158680595681703873769943992863195423191099082190872585126058712883889915662999161657551303544730148481928202370511430584475958375599428666192031852288297771309953755380209723764795764670880183618737367909062741238023724640585986078849409191690768356735533497186235349812586162603445083695202232589200138123753646301921730734563460574260127869221711134506260460118501156019436791206211225728095019963569283334993699987969505266406158566670427180269452556815386243132337486569881360115855807623030706269570984218524208441926249149446228615151139714892478530309523276506757405995802397939947746735876973612198951766804652144499326085065885339174866905583713376353554304220495797655567860625718454001975335586520468329614237605697878279375267849927627960077059574750118413831777505287034543509487978378657561863519354718451243173412599420113905361167339679081670075454735877179903460435273093478050551740794936317293009554742162298682683525081330891581209454625788466868149119496082616963447850736189361944534033969937080831451285155895730391006444758615953061960609023082637888334974782887732199425373400044988614539306720813271461481848983435592069419402917716618755831725166313036034240384970748553740647317614070742682330768777875848273408255350543911082533650805764962024533451588355306257737558490438948483919715080520987533476646416237505365591981769331821438116087227867878585545216101135481080654684990441176497051120647269463255658010311573090433219916600163451273833169306373403635810213395418055167560169059561934531161683641870715977680537857401677696319108037026936644706203604598910466595866320634785906501302615491016243767544056512485167865163031998209983997855854864535653445356458678735078344072082492978522458139209092029091251007648978843011192800862110949711897259239897073071570538825855754927413945416123539700830878455896244093921680415084301237563581783726848471912672903404036695274004301870740421920442093907138863329497981250983761889996256587042936879442837431562552003628624281649243851851755649039621996816644934107172822752018375538859584142793872088474936680612287489354250687406940791420633375867913062855041058236283420312409091483807321638640669050722510773136575670328381591634484093272598861956509489949001398932273216480929908285806745306495707834233803709425951898065712791846747896233457230553372351524799582044659697781609443824556352660947685356700286887696652054391966740832324754706870363647148155991968567449750445362133855555676160373374305391375888762645354964205342145820975389318709039596114804650374046770576128577816357722940312855818329526851145336173598885842701995597073611531693134149869598183274934122730207217496060736759500037421445356026013831082667063028563650538944698149845999530730974683698543057801017325775041596726801237241410299667263903658941635557794971802020653408851777127696109958920717778309172248173774121346753727520240771490174575073178141338463690374074869234924286595973583729198898916903985971222600929109905026033980014656420075059445726706540347637186592395431670416373692695899210860752549784406555781993994403868056349592482578688142299958895151273290054574308106224420951657834036677925615230253107467181392260878683796688272525801711892564616305724472984351866126152789964488472920242261433155025134003660706344256893288193739587216158411120568798099595792769581137257195566599508382976487917193430134999815674191235475257723008303311466752305796177678715135296213311019988879546931659438362310205724139610368252154026792560661392289452331165484805756126894530962022822436466703484616272485143099156592066448200504825374343515262779412723702650909616664446366620368922537824624985323524107655844391635668027809288660902257832674880240137222072410418459855242413811659715686825736365074563167103464212203788271375566818261468374207032318365056643643190764703369788730475568248552643772556861124625785920972416261122837948000049205407620265835921340075314628215438727375761705277102509625568356574493146795982403275538262969668906255036163553409019202604817436226267456835923016717025276878113362356825830908044381704909246506738117933616812580522013582010363929129270933882068778746220450339135498857677977670699121490334407602623415038518553417083768187103757463981892934940892446554024599236487443503271366320645619410794553601356010296899546720677376016271138460788489776304948781094419119653415292566359690651029444511639522797314239189476400601932171581126916989561350001329400143039500674157522535429716631669728356782070125428771707520367658338519404634865243003930724638768125191425184641229878270162787918722193952074264267359547090452110861912117682239994631688134178487600503793497351975553538393587362424490488847810017420623958055678451437034089793004882671355580744845280564926681477487133922807105404275145659605981920014805430506068403071098003409229744880600142917082524408263152052336607730862182928434552669987486257044462793239288449423556930172522270147379396152514485928198904165278676472462513101510990264593150910026757356673924873779633086184559890008601275821520505424840779798928709673237775312675209827933607714826873207683416381721568175688538437934744578215005526364813541623103891834617564789940315955337638595314757997207435287164194521617702733774308635467734972879307690989517675948218174380621126592794311106126212495713943559292632331395215072008861084778421423205867177020441515358857661196264635502589775993609004036940930117838605397134741457844509152918736320071007596860604351753279193360793785087751250723749761960873396432858646452700773129979201138526911134062072273438378929411900840679148258930000021608560556245149774000527957041271783504528791333533693527203620897528703976247052860051655264973318991449666553419247640283770835315371530289376190220922723561304290125969976356256949917047650735422089373626768962544791494485367118614869547123393583614864937857729168122631937702895144798416000947573373970198697942441488937732214136612539609828625818057478070291737192105687432354162561614357908968862622197714024885947494406053388447300937364091193159946948281807210342601783739697159006051183114156359780408089771577455322654987007732822309358489916047952218589403941842661418702196055646545730488946551021712089915572311683882396577593763511461330890806890198101773853873120107472236898420211679261160771428908565644142276934742142703817492440852583419799942395561068384158912761995245076053531947721641437928857891169295756666255428628545872274009600014138533100286341465433228141178888656259061463694366032876876334243188527407299574124799936402471151000048967851533501417375751183117393319404684315679342916646552228023945178944102985362418954211913957438737273188416058655216461777818561756567169271474902700669409399330144620200730061635801332889699524640901191851129823146070393465780762895761257521308010334483755945694610419337452306875648751855841788396063684365076418842915623865986167679261414185004266443383773569142022084179003595390342852879059724108935763704158052951635852374500750419646491132580613676868800397289861647883317955908832684664307278453723909268510633081805231956159433822747014928421658490253969418206096140444992430644997835688143408525985409463292485714357281338328150145617942975893256573078549218378656507165955902387088063621472855854230729486028490660065750757551785186722234455526874078684368118859118556035356337583816708356867122828265894062409393185313259791346821893100377802643404021026982883592367773271245301655020018032010811716068764386972116676064151896611980903953606789063640885113390020728388596032634795066377647976915235895830671618016737760414329883625621554120043273482649683728178076859178507491404383236376387664896922808512456975443602514805405381818516716925181240876799089213961798321304088683118281310523326325546201537116694785322763968750707831156789731765064558562581046736765902610603637811923626337202924384956565877783820980073346408860381135362779877775048900102812017991271769600644658531189760144976549174317496469092515709534556178960132364974465231637720527190300087998515811984875009435632107346220561484367803970970867627232201090527104781066397663426747143283826556648366124631655689845574754751487622468903171738031688360525835446178526225841765651532727959763782943675277434307367345823463611917258455976139003268018968058547042008518713098665017573941231640844856650343100950726778860367214371680084186192250919983575621433466305539328063086102468163413020035925928852542430727610910562147698368754084485746213099747619927955519275603589150271247427109718889666923773119840296186569579590208908858493531984327567489572084204157478366754015858164828799021186566282764035539198219286541645695191574251585890171371010168657266346477566010454448880541054371423741188786393222929584650621320121814186874400474490945712155346438259040739091407948121890587267899370872476752894510552666290813445570733345511498933835472778061762832239608945148104844647513833760322867120582059458711116381095121485466074495950807903873579874336979755098302851110707965279184088000770481956448295256904999986961700911659106003012616680663646703165360267333542914236121200428288807828151436346049318878481330872307645892248425051796127477197155737537291211939082304949442106863600117407217998465616440007886815243356630039325950466533909765040035512804522681068727359892860899689427799350731247305355932962507623797173906590594897805448679244658812570723307012314815080314505179690980558702462557660090348306305023152673086979740551875992652349335051340932653559254841865884914757845340802567453888449138847782623216274595263985265849815139662977413773804718845752641352746391340372232777705140858427945481191643203312169069483768556489887799221553514379720430510792275175100783360453812435448783359265269139810532416369594278079876566065024347613862004058268795822183502154644287941322964993054519088745192166185589942703222352426468442808491074672576684334709167627522932733480394436946108964317697631175700955670836233150326635570245449965070958429809808036762121989513276894972842310992180685887260780867415360347818036911431709138832849179618978934107526461587162344621705161525441235197443484861623979881727926111503752747915492793321933234637734444887369256316590182360412159678474408017159162680542395279616295798277083528744284579969201829622115080646982630201225588878127772099941734565430836616084493128153465376809913220537033855128279371575733578807126644729523305903631484550613725402209552299187418747610299408677095429813936961184264625038911308115984536867791471065766213079387137030629498070471628850505538648706483156329089194013228507307966328275219351167343665379175422093965714578848979226494971387772982125224540136947504409910844041394890053940745363689000748765621596152863447178749973229798176686100762407314971552781902155020140816403016173282436191816673349069114172827841232016354082955171026155692974558742959579135467818383176798938716790732772733116739460555180286108779409268964947382044397599735614139523106678005642721339491398076048657194717514347579807937775796366815727874467336061408977395084349841067420581154718795083974006561832940616050199641323402599134478557422336321372264248998536007180545051848563357957471256440258276294580736624415379323077853581423260733920134102357420889085445264413585158988853586099513834852401792839448847924603424330183124215910107471263126537564317541988445315667352575725871253024081887151295786167375961396662728966750730343518663281656132287962062584195537867930880890655745843087132328054234784663797616125676723565946419478336290942797326427571435678009468528936705847950396580767694156861903100759835741702677131847627947669189946820375917678757509103081159497167263950486733495283519251237259328371438423018159868261208002581505789450986165720794899242527700102045519038192445208570765112509110310729323198958151451842565161722449636502952713864738614595753842016583887806763072643562653305763809103271311074729280427456028851054009928556502293021607793265960567047143760281111024948076539969163675425773173713425243685335991008964624050464869221123314175189111393516764999876396937789348355317867538046922645929603892685293549335014599100551409214050541347100578148694068440058897158997780438482720143329102526313821519029509102643829285986493125849452400966114353877750147771607011262368110193812345546401688748600148369415861181943404365501718181344447059119921811422452581420727730163122163048568493533221066424385303994468138041354514723623040414954245081111349363809426983708101304719252903015768586926030464448132304737758661958624220594437521254482208386701962741978254595800546913064620819974808272023167987984833302008449468573075629496071074464152733192261346803452614881567187662069490459982488694609780296657065118342707734738086144072967729215715835158960469670337615469287472371134029832412212656957583332499028836655979987789550341900061048886360311037189188844472626253722472858689448855086403770942589397436277765244460290263243602388221221748672007301885974374173260765458113848288102102809998819598885977583250871824329517684745083913232957499397529420830092051709899605466421852649922747473351833193937635253386527786240084959611615169705542777028420392905998466929402668462894992701755115970399963434800011398886358735444218603328520401428410412100453236805631932118331292448723503029341296437700911596885050251002459275413969571993493311664799587524627285672623550149711001606803682891836786751980378231507427836369505169324724216116227968012506160513069312371821649299618796670461998490879930436763848334973695413896006403186631192189211412788081229601827998397217058007055664430578318965366977025880896376304142303819135888009278176882572541263060693012058919182364136288590915467230847184082995677622209128903658380119555708975442218380877640529621285336488325501299453365473575556980749385190235886589799069061184690742783938123083638752734506819637232369744436633960109016781384069095566149815852539148964996812876156951249328457246105686310824495374608661293194524646482158513944905710698981246611626922573746153591409247465521264197463359228092775152688953547103303767811554149443744976391884889049463923389692514443928133793453307241760302634757498138856055621073394611832092271404506432270068059458696441941020926883823956963843169772845259661541127545469907772662706964063058384268495418762880068162225283711355254196054918584397400502684126264260194003290572653175334569719759326336641024870097484101884452077052542106954050916131191193747510217356703057871637716757179350778702841108537871855276215936000061946612368176083891716918004128824134716968271429372608402798224380609442667136843481579951242605125296043461928186451182123242810478651624058074792730282567358149959323603413878969782449094282805496986517652758691934713307417932356558362694565420442698314834539946375850165049455584619757810360846030542237882547832773439759030220069837367951482016903440404118633206542254278464443518539504368747377376175137313191892743217746754214273323665195808346366759602875107784705236086346435860135273061802694531375526849225267759426484810775297938634232250035024073565246182144676518152329742683950904007420367362181178012316891887378678388342946229526989516798616761196114924605446651488922125512090525720650356735043059923547837106699433139862238031956433477467290756476957561271969553924624302535383961679499337779579805544347948813097907949771093569831334347878489476681279454098608331772621103884909697917020646089786130468225470929264365604207264694335636768848186270204769266168287820164615528292219829572544003405067529868882899527938453391866144765240861569730278043748388680424570200064025020953575571942311468376056313978578289982475964117279191726138233576726513027353886533379315943173903780992369137203379950619763773079221484442470295789607662846737869901610279789323178088178258814585569269565357677593575246274415413004494705510320407825259989559442912494560886577687940036381266181072473209833584838447550093823790168129357109670925412549286008592439058205373065299610966446533667442731023693447516080589629031569198376780792898390069165376837453444838326497518527365113924700533214838396188906670498887518206815331913409109568761819370907433758901375386692555744031272868964111571127103822440367545846978668653310443068437471096329370777201191156633455731394946992553668389418759209022058895752484391033662447715221875672105466680609107550963591934091541192486855138904089398558328632843454697222209951551353334970829483283055931784731523602295055146118709587773243199578383920829560779179973535469836996248398777686113700551110292038646590230962839320150519900998389037871587368655698649118103465418085774333183819974498823506603502815908724375682203112414219506486880275973147321840955958377994495294318452116757793796186005732141467008239975042807885037631230293282724126746292362488274532882953815690974687045619274465339079117386997239380185474305920980108353814543847512526886046455485470011636519655578090204043278366622930550392940829401152301012086324537606638719635212314439611689975130229873489762759114046916131781826141200578473083230820937256006836404804478252846268821443347067255188961671740744575866393743865177586582911533533364624042115484967172638500569205898089309336177164057746601283831312740698709261596804000126968053857528213455577131507350639124380084860739828441635676322544989516713471582009342238073026637951676828500967940670997899722717904950141831704953636464426645495790174018640113296366989018006321411915115181111580083267729381819944168654304034371593935079536664090654788239865796568696478027576904620359458428118266169793860624463156863432076352600033400544099189592455268852596957768589223648061080767773917402096037403501782717179014124591998465746878142314866415227500439670799374196741351169543004583668783347748213059042448931579520859230352662012394537031303798786030455374723671790399605555613769171750558594137311937053593730372383521422742850719852188131820890788060606408029481456509306318474757503737308510211273996786202629440685445496430871844219165183385821452196561205876721451666378596417976222536418569053714972271601376453616307409208103788319673822437768997277531177869756591840257834746568128891579870840079821102411606293561306700983314998308657934947959780627151440339105357616243447489218362152142948824430948928901732665671123403096119823659354637991554005318140122574238054140799510320781352437630951451259253334308190041625035381614253258147911716630114106952018429674506080690550311060054294903783457600157808514737369420512839564210472472309002878202032423005680758680906743921130876652035556711151232279226525871063891270611487441173321874150280675256854498651416768563179558382986913529549628157434192346643767111098471501657652021374920819108207568679326921672117201669698659600963775871427558002851385088991898200697358471075063201011766661558311529454119736038554964240075019654515304578213697003391041751229680831156274630214792720845045065367362418211052603389234080155824844660368496508254428608486134147827088409300654685471050737003579816905959204442515687171721139959332677244772705703409192861382383222207441246651213624535992583807009025591221493521562014670548898942964464997098175005383861611683713103658243793032528338860837855685158183158049689863485565328928832723476731673740716842990936955156252794066578593090382994291680969745405110243206547154209506463150214155048670551276308139018347141450199353653333269916276767480064575458876736941295760795131987191310208751996343674387570596944910225418701886981705964077336476496477575047517055755464288101416729411608252899360677824503697219069711042459579560875619826103032760697846399390101401715186635790821372360241521998009372991703844213617418461061941255931549805230679154370536190210058941506532967662350884743997520088662995523101211420109916658479300537130258677737379091966365425131252101408883457415771064194837035037026441044187117663752963291707640206049959518031331278392239738562313103536538485538478092019064750825209788143276120954865880731652029142947407447754928954892878847210961661578226727895693610441260688007935963882858444944970344200052453592757323027101343119246175762206297906857699752121618661138570882116801789228578805114772592228338576615310951964960882049277909650711990232676839134426345439838083600382961156859195589558198207820938170801495822933397325908514657041607750350983813944189496394904873298969932327452810741087920512545622135521808835203030389968586107194798810708906654496673901750547495510223361499698454375188968481457700607861125130205796898652519776354857977884342640242728836899042491431963496568059754359777805248079882172235631840997660825347389346549518271536007679287170994434503870472728021622408886264226604061277992833531663630002865202660666193359574977789006698084806377344226513516094757345361980204572070969151769243349676860399756095279135601448475312114824404559234747584754690178740037449001390777443453369046246027893990764525876223548509186533864112463753049951952834039790880290699542514610988253414796036251146737664140773808323269382062356160545721970794383248134403332361287888759785011366049878767564248975167875918950998848554137605391470293040216207442244433458505392325591693678916775643146533083404284767316582925676378810112652090828449877616234588772611357119277059004417792661062342428336894136891182231278978041061802482699526305673680133748670918322442196928034694209570647807285617123535240199235585304747198255251231678874987197665335270144557416359030053736453990184233244464998346558128166632454383142545475388729753350942480455189652205570103011087097594298210273556350293653681723564640474029727168027911141463375116235055322323288463568837849460236234676630362159690129884263575216667875177881712468152747008130183880363972566894479915640018558394442804769246703802020145390713837475466632274495551164426563406207926100256798437326342482116477403585390303893881890256866062389794842916293329163746011167863269019853243448047927556738376715670451876627217672273679669453387714757382885859369550678193326458393924388124957047533816222955636241794384230933491254004126916936792486028402190705066799816957216224799886037059685399973028495416773429326534214406298013216175916036550918381416789061951460358050983856446671263863506676370163358850818706302527192467837396733246595049660798990236598238060636512836270502159078367460602065536095237349349863175522711356144198092835398488080468198813927317323374845503394138309406996579570746601475982645551901852790642345926123511009879892648355147321338886472911766088023111862271723892873306122874209848693041674887827239116853094090910755534067466235394744362934665281725672178329872811082690746135625522743521577007875413434460367166510810445122423808960105032144181726126201010174665332390396065807802280734816486950328481902806408858736988397542568649860538803671919545587741806823060347724355325556660598065267220826782219595254107288073792102220705589354561088225618764250297901917285716538871950367387576244944091290432979394067285376076206346213200872877774603183393703203518556246000544877550068399101066398959132476032087366203913415335664296064628602567618706766009715588558868043524992006830019560211473463831529122192912805798701416493872238869206499810295057937250837404302301250443741175457729152692394197793393962039148296799361688220394859357319373036696659633229921608948424979868247886256991080623929103221373808231110106488144489125362064580493352520819278803088439440772055620816115528489428104204644066284984540191806581159081935886111024315726473081079890222029712010937445250717751929155707829483259211849974870119593930883683449838904731966787344021258874289085117238571843748998851996762404092369430136878029579800299906918344822930081424547241786980863066940344227136733680980680734378957023654004252386887918324642427828784383561335561657369478114964369048656837715938943378638297041290240908070006041864177526612200649415434515877163282569494686677850795009441186279466743897483769956136302287450645322821302087750174255207764150823765937729400669423191557976365608969940374297435974618779232101661936893979360574199877824281241323138688189643176189602030771644022126948696777002011269853105180785140639178869021175421147947431280362832950969916281019857993461709629608257192814663710485255352102833751540852369857721275932432975706595564626514436730079783275759674341115026327081300177140355630470979351991509530126639941909456556863869228604328314399325717577628114370502312751848693922799538537205512346971569993062068126968357156670524554314157393008255288238479768661869645844798358684154318104185648855222326395548014739904318884960568296918881886672725972951654015535260753785655478112135445980789967358356607400331287050334529313491695668532336907465535090997248649463839257158075765543550259252489367847058775576098374596122670582077438690339689617738506525938761014025703900159877655226205416348327184899454223769381364352552404221587790193279548663546061535618246328210030224234987059137206333387880311306551639298106942185016733063958611822312199954444321809632132192460336808306432877845612155421015126828533752860957018774671821875384078600252990008549058078074702910608962781466136038834655038964292606414617239370181368421390848817559213911082230052759983667974758340885401703253268289466703669486676422882075568295687158429215982564659603485299455516997216792225296481185667096293984961058705045351373763432676968922393458749278980315523122020871355410360712942088445997525069229331387166309899468892632283288774416495349983083337385209289177354999469872722206654625707928627656362138617777628778103058161155214850897620204255064850738104631347477672480030240348962494247773992880676547454142620083920998048250679615681698084644753546708277704794713925526355505055171772335108184552606135310468331220438348791412011786448094857556351558964396710267865849064631300694379068752759879258693756204737957307645859693671059963170995426344768419127808690327153517869022105204752176842512574886756087426844163140210846012378897860512589576349036954181086357737977324804712379122539248068479617021446597068824011494883024646629551507309015032800548909508183067676219048837214317169523375847787606249039373836750202366769979026928315950134500527508445904995594973991225884419363966129304992511850536980411833744427087556161351480479980242328747505791643026634878848895882891913403763291948450021126003444582808742451493864530581657540070275072408376062945823331591915785102791758625193582062187166817152211766334062692751346138515992562216711403888107834214426384765225432454087039481563982438876606031056367745855532798721451964672359599223987842259061487618751652106815266681745741942548011224274541970881326815256675744980191495930673406094889866871200825781118598527635229360305412208126934445038615128096734224858374494410239164987729987238549180385218186215890833109434528520203836832684477273846362255653506356894848847313923474614699784430089029059434915467263370937400133389377123098222509107542677748217136708406218539298258916040631499520513614203730573093580213634436793980694028623581651586543692260664443980678311482568768172524070373863759225665555531345785479047673424487440321737923054692174315011721061142414923762633123503086309590724688257046020576142425617337688063886336861069374774602983734810425359267252285090326065768389003238337785040261118090329955077830279650464992132455995988046052792695682479108508446517136805914710089593880443007328353677597040342944481976475386105543682090169351431920413195414042288226433090073386215650413703709299707098609446003224273424384476732318409310294491297873600620059542912563691779496514650305461795129989811577865645722319082097895596068403782447632575083232280465305881919383214940584898184257728009925248817392326049910662664257036494938884633423483812608113030286003001553310182021532483798729844386182607503109304430437242398007006959867779988874399399675495845624047913603575901127218862476374759402425229320559587892838984351440139064813842693000932009721188548543478280968211300521166171561658764505990930474166466406472900008499760044605331381909946960638612860155652186233927079174815521583520498025891144597503980456299673392088700669048123067680979653275759366262567354882928317385967258184204016906008741349844931630483035164505970859460296436164297527574537183510526672793620648052840871726061909770183518640632422911205535815784506713184230047754945979121951240113433737048588839086388306392286590438319060619748961657321585106857061314136160817710719031380602355632597529443197982511832511077349557804593856116252631121670663550803989381242947437582958904736085523573036943888687404437624538294695652779885099901397838701444198975292906519263924055527532700905492210365236520862454507607653757329549324835535849709051440381679334404199950406495414814452306510131709169274289765573687657490814654973057003838429283640157214342475411660784246466409939494306793681466813757188270147888454903724731292081995503953137165870450071902974875783082327029325399587321219182297676013528258849610284023195677527594646020396415298485037059382388219881569805751388726473040496146147873190869290893540820414846853634740941096313500894051744268384238843908832865344066342088628970732522611073231081487431750442252142979549812267330175172087514767752204588553813772295519223928402094012194530228769697595067066377133876057113953226763959905557247045454649805369413090919633450369716424423008529154061684281284022462985561031517652743950605434055639008007538292956472117974518492560185373136932770597239188732379096956371691931835211554752267499870645929881071946564615765406245023287368910956793883677454388288276532779714011508504506088420058631445780730547257786361577862426733893036201883546570546134618696953860776177214119368305393850283954948958393302380179927650051263159487810899831717859617091754505218318921654240550990501904903387411415212512070099079565718001128721581805450318621587315093872106253760285689904155814500302504787654841680081077040696509616726852411770603815188975488975073393667361815747302105705220360890381193946352909209874702110671769918340562218493292788891468664059569746376829449237123907928328070710916552587098418711657879162458647237588922187023182894992399329733742529371754029473138718430355349033523013755267916867389382774818796288156758843415275660605006654508964580568361051814696547258543002177181494133859591021647151984486212322369873399895387249817284305885492027345212296090802720579893922663799876861222331485364924209288330842743607940147340292922829057677324481535300900531151401097306798360957587593049967220515092186287534075975977755217192988334313151695972294445654919045492424263818557061946034178772997387248197787288632443508213523669244899691221781561373633178669705068985709573195063223964181204090790324028128552264435986524932494801153960994989461241352753393871539123007440782639219861630475774793967827616378825349471472349352706567883160642672170197032462287161088958456772582657474133263406451932483563307194779335175828582097484490135837148609467426114324651512766117541376728400097353300147280468007445667233022414566255023243664325558508075174920994824651998033225141205561472443493533466782725518178555151882790183599819997473549304822787724228458695562541641619032721964588134958661163112618805389819819247789005310389623947303200843239361407645278191593877228185692527778072447657774338580548491790406290096962536642879457655617268940296766718940654266901263017031167985268756315942042686614824365585450217356394737651842195724466559840708369959079931870553568493811975981375201092123802608225423301054979333092237677354806693531182099300570780038951259874761206527088155749690292123335445687300203449307916378213578647303774044205756146909849660835141677092875692880663821404550608030188680149923140945187217357768157120032100012097873309734502425581804756463675541765816925338163553658994301101297862638222437074811504590223566440623513338710628026206598667438037387378071633080267828416794102569933989925457836366430248249861169189548142161945462364747506259207603163682909328442124236566320298741342427665379194067214945061115438384807640321479007077117892071206856166738377654339486380412453365426088786747650261558409977321069835138087218098097668082913642048315769642814784332832236483926100716906643171418973803073178001763866579290431219430337815315238637371723279129771375418619250903431444546575988160908011431313070583726257232954001663606107218189577490217706043094840936293532886786701980305171439078684416289966356424232334298076495400090694294114423422544810604740683627425922821852893810808422353300768643095902680460763859769289687398786769931303278628240967609900379483859413883281090437581368565237290197700019230799683218126308660549162179718430031431348083406094674061559225356638187793116909923817073984798984344994890823504196170046081369827951151047314915486684721868056161614395431226334011803442723896934707097028117163927151374360333679323690000132990181261814063717118330822244597234063784925473216556667599895400658696598775543403509357032251289318683886491011971576169974048373470231885679631983111337512331873060294645991575581698089308937967652979224872801916201745084973334145904169299085753177787040175067880395345327203295932035298691393883303436340947015839019723890275533864568107528676817441896978730180262311174041102882349017154450933751803940955909573062276950788364791897845925906832261922404649459883936241655425484653435764100590733473967580308913802401146402626940527729115609333196089682154192505881501445357213696215483030683527010186305602762746277804963911030417456064445414043269298399896593998940738879907801579956115264843169317192996630300036328760078996785690699992334009888795352533268585553188920592913354767942555612986383014226672132858354617310443822924201160311797982485538350632251071279248925056058135934550843203783099452650938289385082240309926854881170086245702337965605544270052641068672538801620542089789902248101929566132380380600603842562851067492831180819748715477592213126184625794648934292293497133936754262208863235248208520987944455391031185510260741068650029409520162305018550839919498049188258386213336389117629422458612309322741064964797701939822746049589629935293680253080563338089471565533868407560513392582063835365225007903893120747555669587800929035991278768862433398789480763303811808721749719782563535566829452383448792074931065455207827988136355877139032152486427009666882145178137863604632510858371180879761545517586122382395541932620421313306473979695984085944281890071886733736653942272597966151400925925712006511922258742627514393839055373325853687807458642010108249542290951080625141320314866772118699084103413099965503698669209208964208871434346062408126629754290576216698234658482342833324280560936528699868970269986787005663913611481685795359339147828883316183579674280357936645166579812582310276600010677605168158937548462594105317236716777620212999554587806773577945799051961028361547604597206725944030127862395518805047756824354015845651681195639229890271175867503686063033752156670988646283356699332237200790326209686791682907856394086871259863665557565798858656034291266781413298915219728888620801396936145949292470487780658819907964158143262562726285407945615406895453928945101941851258068120059413911655011022676627023220174942157544782315751319079291282716957181654242750243460286784875548305411408222511603462715484872999327083930681867117220968326900079608716287507957923621784518225470347642050808136899427699249063436611977870902595122049541930337924462510160125421601907893476922287037016900682290239547716807456256932329727694501715465280204570211748414340260770847330199366282519497640867924945551252004082106600835820573810127805093805553856118319631450782754091960268874376336823212296924548546939095210870932624183531741345147079326802591481060154399449138982517809076673535470025757616774908217622333077182177840871750964894838122389468190317080430793761595532811096541886686221369927295679550862558653596659655601424111829069866066236370293535287907413960358885041809519832964999061290653118496851766441829130114200836096500769754595840896558131160749416948109108507286804337073160807086337251741473857165895758382310179034702376451949044346678092204710623473979253130004722462748522869082037747881902287742344634733476849318949907039082312733972510614033934074050415135006411610491726347187081740882643585862990224727916804322094448409292618562196107463611658350986581479096731439311300432545624312174316299947014989300340683153621747463366399620164537915498149932835069596833783463662209198625072687592169162023741097075855743762722933610195007823903764122854958265922751703512320818970443272363048777260345242172282240356773059549053931753699716482028823703868770145456690105020399991189607299076224028748281681338227984905055396235637470151228516987475987898120295231756748189456486891519322507582871418042932931895387752818313351445567051629693815789312286458907418362760950942360327974742092605917016300433565963856280364592681513920273038262923231697427333053134175080006804463605006460537202026902532010682755339292343027810575048168810313100684149604752504738665764422114147006084341574281323320402365912001538948566188202543811508043096738876721540662164847889387245264015081796827571762429894641433174751193533121411039885732824197216713892122681510899459108082700420787950887860206384434492141231700415887635099547051992894207472350225487573674018453854442108187733433214558169114448230001926130953865455820298524065872133211421668455941883454158770533505004564061973679991376150848439695554332543404807623492603350618301254679855051614191198075448305257726906209068784108248248298589777695722922301015540568182859326176377741444660736221308286588786347704216136946746556959547155637945874610429819993202298762090262761375488536325150154897261108475630294895633987009732044305137435621869930486563833580015733967135443940695747327610813471151976537188022285862496311642080845231374104623651316884034713925743817438456533852625076796161657621162805932188617469156275752226852832585252300382643380401242976846630450244812194030600791549689252193270050602724391898801165339735220733585537270795484607601429591623622456755701400114629580943929300810874793199102703402920130686707868849940122675576914294522029628654812591819588461161389136804419484130737475492558500438549936012758895592891317690972162112274865039482489844702926429454075404436347334898524701643987009258681541855449534338780220417613188250164338935023042862356075216546363633204708307043981486663458356322348413165978183857844035800295943815563834924845183183329177952225392673783910201154353826992660812046760530253675334068101651900578185566218379370507448715471582263948214438609517386580264979283166809861725888857997890225350168970901463055827380903646374404135104820469955173105590536941775193583728803275368075844184374801716083572478996763998414651454258213770199341026767221497361273844725733430845557552009191286581394100112609613586205548562051261041988267685879070796112599528433513622296943522684023135489437120806018284539037251852380008107289489247009453272543415288346441975644512916498083346471269428204678967226766631571555947756364524253111374769248896652569034177663905492107810064027497278747370519207313006475222217237234810842013078545022549889721705011300723339382163959002068596214432547925392600921199719686571722120820533266009626453884514922681243226684894419769289058133849566028034465785798181050312496152138677766862178317251473273553447462650256563784892127326685176237976344313027138627356670631530468324114890704202663842834654912930927285448723691104697143070000757966652889669498282616536442817865690218185260269893550848723851896468963826529853281679069041186256021230939453054574696275891743650744684535734638296324772228442431221312802796480230884177718076273680597499497922541366277655089156608428825225706130811047665574224995260311237263748795659155376663880591585216674201781099906197019664127137342962728819475855590694743886064966802763454876620909583442601642979930176854783824026639260153029601446114294924324467367131601313594951038104921621796770346685338645434109898638491171838526431508906958535043637154100221508577245309767623715606872167854536115587932530805644276195719606584199696960805542733306990116283252679575853153729420485733678160764209311765510115587063400867855085949946815211425182350571966569242319595805984088956894285998326172456600146755802653285447986476337595742205330270828367914717014912587227949795946555758523615756820058408134172117692634671317867372128803401883399523573769654549619428883898911915627585281743953923290152807046238718267480923199777617950406277695973210314843425422793532091614809039450831995046467049463026119596475240550663263845190337325626085937361063434333620995515083208850938983850519494148596839950454301208095006147592879145543142774736725725134426489785178588801828740574937218318353925869783582447632319219133258458306651647016558852892390575350371350314535676700972064393383809151155226989338872226235963460629941629282686493130169479630603974459501518596514157800705241807294853112804958933469992431747358865886144918303022860016082552760399079828564112018634274311236368036236362001291634737419986235607827502608563632131221436704031786054616666157101181566065278684320058994681069053082089134017222304622147888260894682898429350162160941648274605794546682968452825985301151885263180891189085260384780213331417087363460141473185068989476323334589024364145263847488244721702281556974342785135055024424519094403943944940464364075906018366549770686021949566982435974815106578299559321810930756356469266298134904171178730534693733625455227315348287881727192219714101197237879072547418349023729781345830682764106259103638291173698261376258794980004866400625137047731583637312061404985990057789932647162081066867147687181750490386595359082335161378987580702977145888929914578277411180230630278458565057779312783667248591535614093498141548078241833255970608363830183025374472375370169326444123886726497284112881085121927509502847486875341264377474530691175789625327009442336467108492662125944618933974951913831722732193449087067039097333135395520126521210175785886557805232482266486633941254424689713811121718761916236138998315755984571395454152635961714750840300580638457544359187650455381822675955340270037032834596419658419675502698618460042459073299979549182390983018338201157963364268027553190831264990743328176278613214735017708364375750014872787223231672168048188730210819111338234003857160054963674307644079464620101724851733075807358208510455449547940058888469350029670997641409721309611783605233239758337530431413085955892641210737600419656595166065606699931159272693659551714463037469429288998687557755472370299823090478900413571251164972206527142921749313490267591567890714269906832080275865376350177931122510895937679103480051661991295861263223154704189373302534563968053200973139961287894340516320750927836019779008144886644007571481750148241080776003262904608504581132826736974783430558983240875920178250771850823629293063480767002448456630048858258018620546401474958318025008363396296775541837294760049834477052037838949586739886720245266097859059938945782120002517154077610986525540428996609346274193484652627453579671393758405274626181644659598935639592437580963433199373792593848781945078025578938548653411334588900194379498843547794636466583872818421813799608470758199326916192325070034573542901704275670025017211109181651911854107428843744332660171201055532747126437144006338316760270535599083451260850518341438158276271382591368874252693860589612599075887577600668396655437920798327709941182311849167008268685700546544045474497477442412779994981839426589230618991027404191594670095654488547067130547251084982188504751340273992870601847808552253918028349120157331557978386976522256047212830093826852769280394212636811718692677128515170395549218442748061411019892825004416231649213898001259488507262584587356402538248728927742309334907292659323571099783686728191428156300688796038763603005344325086099719453149605065716236200507211800938131852103610262376786807749536733667736620485762719981594275800840274482955952183194965732808127640465250934831676787633760428323253997453004724591797911787336335165837970896096152357946559006743865903191547048000348388378455471779102965638316654151085222276299977811868065755409570585514958353844925988854498025950148294188704222782494262492680949200268294078577738069177019453512060807351365809189346015510732546118490584049384251820653077931024129123672365010399351311032548784407772387955526888440506278608881994465513751743027501209390326231722796664377303366662084596499236549205816331519534754859457568349187215289371363320115772642950657230079120942312302658145154678047737011959525076120466257692482781653757490778069939931071056424121302307107561156112293352224761183781183719854327973641195996140529482973627618779096757612324837358263712620727987287099090701080397637451553230724281905577768342011612750689082670507570034669677843724932830664247990505209730361267407736143716846777058231219818508965912611088736843058684034253328034019936063535362740635960635931731264708400363668715370980141520053191773080019772445857091839085259655890533931353725983151248936223829955206137055363606921777396605481043838216885554477825573473425331272353033137804055048778455295315415708839108257281061542810409614496485269296974001444502062784059528141623685113391117581989106104565807616011458124287834999612255992583575576944918062985804978457311483369384413039536240241332984354075437969638755167536847441026228634607466400961245713059081148269792970363837362667022577943525902305906708139671694666330762374527593285985346269024735564163280988069080703350225764004074622537637514806238405336310543854842456920464568581689127150917068817782009849493186767586451525029967458336295623813599848042368428166528828447975612493954014136249623470568751179725911133606477372477610565994900030793016050945267769188546879913232990403113013937538484271082474906324335544770942799001150826733497149852349694758618701468462611913329500527461073391682573126464261202495337228010544651035263887865711229384360374525497630394757709011035806049222611850375140508415517714318149799224604009557030476338995811645824896447814601979429849012466622341561566681167182497851772252760075056399380017530177127531319648191317240916480480167972627093890402858750594480654874389039717053553329479915183332907636588715094181687899082128450743735123508280899989642351277214141163217879288899849979009098344416715294063983166677252752331408049856374944356878649571514008961453495916835074622215177749601658189367936244245731378098626978488043605806333447781303477076312746078904633287154033057095788177903882274367624534350182237339890893023345069052817614090395936557656297928194252614614484641044563542647387214018923594863872558224170248100958724387581258875355611919027159376122271020673481511925112877000348114324533546710638153977919391822924325102151424431678412805054092203582803731463664570409536060989871982357405081735180073681745886421072620181480559426869451813440382462029678864641104283213424362262302476873289322430752219463926248648152662900853269427753172868044935841559418396132389087879534845537979965118150451427584661616606328479999720514604311020481094795128267817359763595751313360809013415821441282413431791504930494688887897591758235569888927357843177694562457828763108822730767795096973242414214257437006445042573070118256976716951709953521965058714680332785061400519650205374721170724451024011361511358305937107073292946043539329443722590349194351506211749408169757521470475249984089148289202812941426969363929840189993755183677348264906629046718970341233736625976528081368952878112568158202229485673835390885550301354266120428470686174214730436721695042312208651753428060145154316157041515760776347749553580293861810898804709083538848797664506280319069110842732533725252416925122006820039354465144275361847429562852881519599490998330767300335752902681504531026976443910531909877311734075690947864646277050289770664898740174978816730986584641949263776729008037890746869095691029151233070465694696022553556773385911769670091123492693409784465384318761782178389468506291540520622320258830067444202451700474439092065330994586234284187681862627644056603646726146008599806912639821220541456372631939829531876003966187546732490587565881262737611510708118021701030806767438968791720526249948626910171042096335126424461949059076033484690855453319125461397950974991091657632859011574709091028257707931167601577346547411794714542899053598373570158139622580887093907113462955193844358780785456187989892184966331729978644208475835812569169455675209101035845072919366049313475399615905327593745101446435840581831689864519932231309348010515900784465915579834739604388049813583062079459373128540359786966362400710694367109153442536578719857203729442286728272776424868487396592811865471516232299325295772559650592435549336279817461390680697799332488316522297708468879479084588336400758678523560285184470737518250544279873044891402469591518695318103630064372003150332492970681539395390696349831741767365859535176375781292072465880847894794738860575760989872220340570087107657412797920082568616071383143407369239069842063618856694364390845451060512338610626215254952996064150866521494016310977435003168294202569914016954105422744650283577306716006086564518260274363490939727588918400581075545949042276964050868371081494552450090357198998598060807009825648402034554019521925623363876153930667023006315837820143604050349338362851245085776854676532669524364852475964923382539052124198074186840450078039798399424851913172672743425205704890572497760701731013790036518138163416705438160332816546889688177949573698604547333665153149092673591206908998971906176971077026368624885052718719368274179703600655222060916924628220793854174877072857433133220922593435482336811598510164981183518510969873206565488032754468994069890324446169775211193595685874950285553755057969925833590398667654319915795983192314513696711356120162973710549331275577113895220893048107553316748937482095210192300280080795628970110870045187030154487290950186209027856257845670071052697113090322700725245432079691704962086851823771984761019924234457171375949806925586127319294163102580325396748408809186388975720640916060929165000802461643048372135339355405362657770494142765608709825363352517895904285501394087687828201417685031560760192834781785367508057767166582582308167921548366223906897374592276997902514088364918951318852351044623327778298132283099008002051630926535315093002953627332931354431213880130245457915395428449495921663037612154894175586656796510997359225170450846109276696577222865392826197396141104139980587592129378022545660222699487486764854895514729434253164817437935359929226401384555594619860040875666421900058389048949693053386364553448801285615516302819080405126619273136745092162017543728917013731193988827402481847854149062725994524382827647228199345426712047382070649356088376498620888823434950109660543665493826831871172145165250031556722051757041335972611413951237224805943905790211648994035121097737052007582738818121499673680856641041192126727233126964709515014872698378927789118712159479786300648736708037677646599775229454086808121842374649212164228041157668344638656779639381280020469481531980987833977656889689143722416997565523698319136795213221484159723396196558747547389099584454432709811123518626767477372237817378687202127935055735056289932863691395979885918611357659196719151691102834328077771181621325526076959554583227518881068502315529459681994498320700156208813320894182235934887497008608041197554240626265725679729792315412167293848314566240999402420291031030557819171995854010890561373070485808385671148364877157182356315972241681157538080872755053215008541601834388906928961993773341444607990819530849277124624510894891448692616490733689231061330947272795079036841616518060420664620079173332795322628933379362911224051730843947915632789788985112814251912655618174706785733586165994088881550179391590397641083440166650173019320649802075692484100477772007031304629086015678879691514072854777138348704880809060611339780080573127994570203897831109469278742946217013020906502509397331558142314470534219346806617156166776703231178452092223398353385465183705197737399808098892535914710704887498671194590794466112829189860463490724144365170611207049071239668905642462238011967842577877803789255795686798615945506893222105545591885890005267754906923170138624595947836975122683440317168416564726544295618297281169772779062990058325573309233974842921136993497534464642872426242643739636625105284166811124974802309462418869145877237993332976111698646647619694942147594104983838988748425069648760396252301891022084868905488530414657817752899719494961899229854813866999700467079993192027402049081553649265367452533982456917979343485723509004512778976365593114425173166706039165569537747930892781495203766495532847579367392847652095594642912800133735128701217882549662003074963984105541093628141647990778021812246733079276009350322157323876577521216446316843358490675130222488006725562436679895127179335178854205010878031477192163616365213892409006172808897862563539772556986964785988983612323780742065605177939492198409895609675011386822230472028013009169506041784652678127416997457722946595215001787251043061355484220162356867019181132716242101917434256905844562007489748331473067027425552257044525838590961183543690089646733791204721738280557713496266490339975526257678400046229192555098241988719286084956443662367489372410372173352974068008365890619087100470213900642304869401418302438390517913960387119850193278141633481778290245907193016475397568230413801853048137705518143351566024523627058796824958687541451175095849845832639368102863942636308028937626205268963749848991192187066452882007827471446539907097489313032983819805381404299431487942567808056646713258720209775829427198124399306289583169119584747942540920215791673762601795308302614610412305018284883533056701744288746921621216084116975569539923229054888773476615186716079330346154051905988467927533905068102250401875182472141573499125867829250151809587983631938104378268977622653108009228835774898432588792409522486969407641315777252504360407336827076283206029767762799232766325412106929491783970307306838252253266456936891047643572454029753899943822073074975831033366389863557998916599567855296040411202352662205380380578467826018929137019078642511748092955575426436074401712432032889664173329473255326999639191475770823000957556587860797489813120220989464882546450038768852413319247712389067509742182935024424591704200245755913693851237988051559674486535847443134819243088808800078378329029004671614325154872212344563972144190659237751784624868319834064735004913181626111142387262763005422835243791976499811392518568331580449640725296683022668642396610846681498719196804491789097950492338688920997061416317750395986957381535644239510959165206876088595227522778564881519950255471812266461517225910795989655807600693609946667788792903442274633602365202018009462850293498955629565262916802651861745597790354583093769626606530699089761280306934130198325544108074172766748982686294621786825625165586608919133476502126026865713129352999382972142574629553628953876690060214166665143206920902451439344292702216154217666301723241965948495887750426339773944353250858444839330252960546856023019722592698947492661530439824304946072223542300619525052094054751497456067896039205508903962466517427154483807663989648194119381008460213813905382296005327541261718215069017452812850874623282945479638130994696939482707502126018323689967934666563149182850536136155993279610849263636118663447013232548547181772912402385658074089741704015813272239673903108539275149787409662529640775456748546044394961408362771389733605583999375653349262011977583694715854273449133399961631655886819559564337018175319789772815492020939285580345438958789314409893610257893107247301855530365815977722232308135338068599329958897168517565363598815484906095097528851648758698781786389573938469090701323376031625417284623468790519310835561513838098738232542494337436965412357765403938048391954327579321739260849850309077416878640440228799994453144294200719909047963530197419243491517093959135342560545635299745766691002949775802335609734676362101311440753531411897943836794447149925431077595481504175120731029809690099319981060370678346472382117193086283392064192964183135926769008790672373446860736767545335835322831390029502756617432161209202657388677223818176042015733532607287297274144814539663702208982014572017588971473870270806949871475440886643029708334915705114898542081574642519784241375540653821720704037054040045367163446995765695980386313091390769746983355662974975986858469464345988144685922651051735279301380575942722736095506525898511803266220274057365447483839290401978125481891034644419479395594141009455351440920432414434895478307129671787868714125591546225705288635426630509522610204260212769508843926489040218019092962195355403563521895673234141612579684949315668050945309699268419692471906247190793928154976017142831062371258137107428110088504732704860176547991255643127372485538963226745618913333040883782537078473534215343610642893831650449205105954335360704118514590605071577110062823068362300324543999410939052168029434495737703677645388100151041376663523674320587248708184363300607236914717483947228762728856875738287018588380435006023528051282219574912719117196380339390787938251511838278964355381148729268143293816847255422689137759946457600872733606708143228450592212158608374849238558701063532032611177366719004597856114697870973188678757826852585343057981539008109256313784260994534839583008317401058158362961040770715630236303533669769804662338385122836007533967016931950683224725742813962487581767559989435685326493007691229245794310710694093309187176928154638390016990647145557352918743890710185583860043355119277668098779932367771192147160368229127649298649032023788761530043402723484104753008352013402574403661544600506245118738471731427169770612116523718055160033402975235414108088581873213474324755202239914137934493022850042090583453059188364358528500961403291637372729275552252656087016704279972104009867703722182296743088131326457603541375136655454453754525039032871679221730880538939224368923234034770922869946181809979236723661412481178726665861486632398510628473756822993002401372736432185973682193570651773300146619040258046476800155381292767728056010092140157729653866848621659692327051953751834875899006457186666452751009553286973112038497973932713875352783784215409522766647925844463267453804269209750878748932920580290360192625478498323875575469541884878605612134966195702724886574916638210728842896540982668191146519996159539891275413033657214873241141881361762439695762324287704805824629171830040950076982901678740797058534806071653981560611127553363278446112389150922661572984676031195096271912134215942838283998651001060543769156862174745470470321172305391309134242141554919008256832443018187282162723356424568746116843359451441472412615110180460314518511511050472476423576312784303391160561193281694942870038684493810592354284814600925889871404522779970917247891952024750114661993709298325487368935731598893530142699694288979850407518001732836486757579878312380993731026562833240336297516038308674371364911170891031080297662072709302900245174137786101617152854369087574785264637081069172916564324987091031845913380992360856331405896407170345692697138178104637379879407426042769311794255275717314471490562242629031713038183924086084750041555388888950749087789724163325313312224840113289454041934964674639986413698849634746210999359649866712630650932985956958626918572770612801618933589520327048456755162171208389518732526137107417133327723484844576251432015213274130532121180486805873487276445238744457079106854431284886850484847441100832817246112443446487802956092247315462417111715025973861603467369691429827896039605921882317655994451068417039317704382167481518716481597924749992669316982231560845159179543486921770919233862086216248464033759060085275060637697828852931828218443548438016342267357786809385989825119464325092786140132159699978139871462389681877950272409450762106326379951397115570394949294560483410092255861897472388786296167033993804479608551026943670517960301278956389959855605376051981188145953098587464788013392935418413884090441419845293592070822064998270021934705988242704591448487456199147847024530411344534148656759247007794533323221865810799555889725525738211429617058712858371944711725668453150235937026015577691710702169622770270631619975816948876117037464375259152137294974925665209625586807716272592688008958188159704481841689433174530153866573063246004070968388024772758478439883913275798978898008246524931013005410444702077036990199624895749287364732485448575360127292739704725604145203952450371323321320600104409516112592003280364425022767215814178355569032275641920562200519967920169721839292938494328962807414470547915354232082131171254353037857237559723407726424858176026655297037000530592362601414043899558195055123994632269766041863717830716127167453568844883053325550136834626776912996087355735645979860514477023969293933468732807622644636832570980524968366604122572179809703281049749309487797711301898745797653788829546909806851527707282645452527176047126634234383606407630135279964862956775553796553656537394516026821999495000737337535934515392058899254672124482798027548945964634904848852452872214582354970005534573172711753727439938335925370774061391868509417160327911684883883708354612961278192316264226433389342476474965779747489775229788615592738330906758270061206852717272394449599638808071777079944080536359449274450829578542767216752916446019995680653643005510445812754277551875168656292293601958064816630978220901269027305050572242068374704091165361728342046504762564505592778313978158601021423888404284069531420284516607916560568775493587819188331733344767675222948896499612530550153019241500771528526792630752171546582398724465069881193866325993544608307393791307031730646199177472466526366128803679592332717742504183331320606556332788721497920376351973901748696258647361293436774384730550261081539207746613566498487437218102899895128953917180878011160564947522325825907287223792829251088699305745795317971903013292883645016487344309734415128429122674942932923243799033528566920011193853308760822219555947082038002198634426698124829364864742472641499862211568337315721824050640526070828464488300628290081032485964547216214430128671877021684632069659933637708672663177924430820010593050585510294134656025854537726493251591910295490089942972811559155158071239223677546806801591255721947194533720488978268989449676558072242078591461892637812009603881904358955037523470978914375970566693913988666473239517339356591814735030510666117026577558781581692584890535331233808914910138444532762181949250645247294284474292068177108841799611097880428421587031050263397888330995348029098047608100935693486356569925842388305847698276837639963011622922523204413560464328909727481757550121718361123628173074455240568838330893594342683904892181315326114530191987746933751027547644603091615926568580078607716164944216859853904090022571953452952176562924383992579526462649472599947444525109451045258659401509816394926762156771484291137652530724863916245253537220775755262950222883433073428447080721401650855860994090809015330630686071610716082570935138726437150629611650171383145345673412242386316605075753908342402399805156687802731776978720424815044361090919336164685084813376663107148542924744009779499133268923767607396638080657419502448115870329299737942585440567428056804549346249162217013859236162462148323901336666513406820841932312276072996634503885954227960193151753456888500497100541467703005723531763932994121802657935264362221589542989948994712894539469380960874141760940372640607056101421265903741921122029278436692343709481732705272225791099479368327798117840180983459647833201650060357210278279807826112165584505317396253380357792121121694470083193074919590614470766537968499155636003820806905698765907721972494664615958414346571832705354150954604475001760453123400614530149952662436108881211687652499943265533834039424823583875994146591452090525321098430507853539842245282853973035890489885019613575344652501342468184921023473791593103457252108401656599690001224741953507760982200865915165576598079488961285898787670517704945488000851589703641216604292406605939783846885285077744097113261939365130132366168551647430858017373343169556863032027187383737180503428140721909890491133556477780521141965173763327652411197021875390929030756043817649172315506606336278855317498381921653788361018467516267866693739100429603483276050543023629163865743611696617764097872444253996089080836032326950638532591635721528190472818365887894312094908177528448106031768102088350748316391133568144109451047184403980171203817553075824775497297638715535518043347290150571525421737009615125488733787542337077971047913467312796709134876863447028790570861058293193683707202284049700133746386131196572135121548908505354716872484221532479194451700194581477297806232169513422013634168722804258877122783275394820482910307387327831382813382230366796051482454563223487565569296856502884625330988702373707211697131967329818334028357825979633353265330842509181285011790924343103852574348679138443770832563376357427188814146120209774821047777721292406582560940240534408234165884634594026514818562786527576125195538563919977643932271730918360579983630966805404828328676587986802025387648470417438875512537127878471404766259858910502008852446087112229936932337223224718616618000775175993744808188106462522689010636052947474196249735649429243869193844078408946355807875370917255713462930101468729517614256302611774587784907734083821407608739334387746658364195672157079997653276345890547103919548889645808620781091644099036678210502541432677902280580035823213742461396955652823756578286350408458456020483546158791631790231985961569317228199809928290377996307143592284875883093415793630963537936539391536731472984524997649668108216913894823220164213099803483723561093550768752704756653067506477742867508044416810434342085297265136880772392326843636801018327253411509724079473452277729610689935665981412639746875656935467314806931811472350824088158536238666865429337433607209920635546444610735058659013275596388779872736091298756508308692092434018631004002552373197952441645172833748152030838792136703524804075876568562218685697389202957237617436505001157631317239234733361420046060519090472345177008499690507407005409926558083165100673526831099287033071738612394800407506627116915432543712379514956946210459875814150541004854641083706799553999469681770261404343516324808231157199307601917182895783044020725305438083113232513336048453831766518557784883741774804568103254629383575550967039193548384546606622312517642063231839239544748830629237978092369223888829243737269496666428239538217892544155508332267781887963108759015947181563572396525483903345052767630956363352058466376664423982559274445461014323529418303289424211650788518204456788954891424001471740661640276148706357677622907362058701544420858184826617665186513378553699937496182389890916989801939043819493843206259317818559478780949392559753499022870813882159985325783386101222174632488415625343623008768986785073903432198295975761108292918877955439008377068359146999671862988529271759654606438634468567882284967885654592945466484478225531920174073846018431796210033197113358026312888888481575727680541463224350651832929378664448680487624239017239865002228054346628089771483943580924458465822638473291891253222357204846995607563911792427794895492526278702610440852063099024348268089620627836238340960002328825377541614458895825361610823375132274736082400997849796754987715821675070949331654244446703610562446779209646598626674521537317969460665195504529929249151686687186046780576355972329867867365029271830355816316349263658210715670167956970934111471366331242181909797414930747191449813897472145225356549802069191855574333522699621437130054686912746096387103580722098547027361780724164980852366050156146018962208190377178531877630229401601241659370676329846742406049543366192227491904545406161228412162220617420998591287243603286126045945362846426640639190594682519922807266838930462301842862125210033190376801349646790828677408144720959865688231726572187731376068233394816424845157148428803382182091865127299027393282955639002629314087488044814413897902922894437060011099497383797677442440956081882162660242320278783059432401703033944447773919873508942303628599157681952422921864791199303699199742279611393804525965479288401272313080654251122029735112964325591174947706142662212745662903696815982647267386328878396015280617169993415302710368288945806288321684199792049656190672871314491109661327803171949244905819747928256851992325881497005352108831423955666046134596127503739751576921714083643227898762000099717227464861521523848238880826227070890165220462109632311516763942133570628738015945360642529948013322648234498524747655645981265706048118177023547867281931116959624839870914562008194536326983607416689131487902157104343623255058756656843702342881901462424582266324460601724665556965402227484186731086736671387828846365159673405568667559929348305159158185525839327873941816523579810344872356302946043522581441708169155422324576950032192295386049944183589155861294367525229374110401529892096168490644603595689328228503969584116786701944241460528553694831231489258760428692506069059445744646334620984217233315653516662907770682855510131124244128141079794283524990074435354861088426093021651171547275068258146438307411752464861955073522072780123504414567362293153920946079369866607865455062364095354563277162337211565206370785116583808533963091317124997158470157730788867337489858162445734614388119598780365103981264391578676392543191043896964532142852253127726989681802263607377402712626344570752798450546843012812396669927513756502495284280512129550663864936303494069504126358176489085521406829179814976368760292788302596717655383891514316608959419010358238022141546638635724145093949819333800083206463974124020877413522371310405444951135583579248314598292249537230935528411009192655819826866911869203965825476652815291880410146829534668428573371890952327618632857561415973277802533038997294173977467681877173786082412069638356663445808808745082295102405280558086190833128441165944874949162940392796613206410373952191288716213961008559473787896876431514550816271965478069173664535443186069110787822335777451810371516191428332028490390179370675919217092141955958706325595729980446683825604659966634833574581741479394234917721250519548396025354875770786927904547445003312583264592341447332579498467383125814777662508520724308868664704280685866391506555663637576147239846393598781831822284676932069651587859773186897622389146053637213848024565643628785927736389990176959647645788106182086628294200929306633235363361903381370754867448788164153233399783227751655020827386107687394551006319461314946409658058700681898881433068000939868076780128833600522627726951977041983250823448074115722090788616775237490235421537520246119858464803939619078304136465580428574677530740910004027648472698932036959690633425403322481699421765292472999666370008858702290941070735215953333222320528433304326356865462214776519340097824026411911288632497825472583737694758779497426116337532107228397296668849319495230093682775762945838718195042876754371897088477263648843236189572301028838843631280062533641005722362689506749184794708805804878305293036302472185083419491888602852178048247529839529938852834423403500404566539980810991776675918762103604469776441431352633394034565180628708728915596550603702636131205687318561182194338477939049378659067083115306330616226667616987143264134031106227897352192976686212228944381217697956606397321913195429777510024134125088816929932828764180295414738078813457253916636521399732579794476996158499808820847671786033815212345776812398878981615274299358909501532143487720276231287523148261245817564476386876540662319415514222593001039741757474621774081746751869613702121705695505673328719819528132675310855232621527526929982469313728825737737111453755636990861662357415307845252132729889022360106264236785480499045053762462820348382291361507507691689310182309113405758682399957932043196585086150374756587703280680849386134790728055755177989770515977906645615657402145110049299112683542831978056415198161596542113396616228844371749663914041251658120109679365879732225027972230716675583752534182309659015877477038630326625267387136444822825320933961322470246540472738140860205729903185051166938475916060899324473330032725360612198090374799238035298239536110820281157110599094843239021543673158394828019621322944067239398556715641947896843289960755926733897432547727477733630592058103030641332988988031913492507127069036605180801758742796465471936769980050257465776310790822681645678613982336996049557282713468751606566293443296627199003377705733364788085588215285360687020384076124303024983622594177348897158757801781304657417709647376930229192654901918458415181283360630628314411855998972798026508906602847764212634512893810289615244446526952705488233495905377833586396832894879003338247214624089786134465349903531220632165402167155694365446305447681387528416579429645600564462608972080616143829409434067456008271416011058051842354621267805845648947433417198976528733715942528273163065105396344168466107289874695386029468298743820957713815401357205624256406502488822234088551543632299032578750564876262722681923834455764813478820694510283436792350378227049510456975762154679500584119013549067518519823942369704586712846018324101728055813266236220203517041678926853856953089351221850584443327794051654773393160844101402105413549986062671160750727226513607729035068673479354637116691959596702451798871624610504022976536439643861542114910017541114303210444078275310468607099279327443742019795445929815745588773762915055686332264774061066671487953855313695616679512634892649513923794005347000400120978950535086686600284523568183915515647519581457484029693463540053987458183774235180250289484096285924626122113396413021820221481824374312993675401408719791733350447034737744399937863736456481382440623576836799616276875154538085702600361635734536849287476376532926844335832155880858801356628758578122015073781314805676192648996159571070509110159932656269264686906085336315514975225950248704317166681430465379359190096765706005468707293448598435055236149709788821117051997863670329519988119627887610464876908248606120964779464822260522171586045072086405617302637570371541170939123313978870042191825280108541451110698709493832033663924668551605337401232077428057077513952082626490977828379030820853221608715377965979416616544761876222430935690960499549541205043285612740396855783023239312583162517188266296325763599591721966257892717496820224403441330483557929921680295378691768008300229710360091047749235497185663373544388336020994474427869265335239370987123336799152827106641482518713187205735701998214872291600036047210322541246232155472431503607600270423080853615513167626507474388173010685309351085704604001537575739647127246240843743069999535945839034054129875866444902872964425191807298369983872169782215481648904003343984432583439343175321245616134740013515721203308246178129312708605685873275512242070572567716840828109440674738757248861133082109551000631420161491112036133843821348204721464933056974434478474942850720334041125117276969546947523221913585679203927689759760282965408969062304850788897961543883880134736401834281869869926572256121506506800683303591828497659520646012847324564235908672883436278081879858769597847246129824418432188231927378616213204510771481843420657474372459051838297596688061595717820267187909536561941293375235515042650525462436616501628110473861877782885699979379990591798713066393577722988631860166748931666960583445214152428846343216824251190310976458598218821975822764343788207615679300586565528769143308832491826888465527817921618232895498858272519788176978457001908926677070926425687705640857456449104332179440085131197147599052708963963497522612322332898183322310706688028572037539578104621004716812598576727210330975279978560801794725869733743513828789843452480798791813529902965561783336478717188900692328377034982949765660363836979892771745363602440876929693272083327239422074803457638609584191505179219456072327117104994749484016889903846578921153646393159433469398813827451880906721877664211342624461775432194825499503600986438988342542455180201377922571873450802454937037011464322118476063323361757674943587767325703630075585393179213733592193943135504591654383285214370624777343970222212567709916725119378163894384882695658173438379811133416612737931491841202500680322128249968373345482988699370808524274558506680311105840034749220076152182437991798335026486024665904898755644454890018174054667068718851202496400255363755132336558143869987717607267522249384546179841813536646848666147959462970775440129726045814090878436726033035932546813867724211672734611470395200772952212702880497001763538985255490460682507319910853695468709551024462955527103013261726060129998356136090002095939687374562276023663781854422349399761735116822685363588956175524442333045242234946447085564986938480744766806996358569486474365331184496583811164860975009577636969333698280407410334111980766409003607890657912044149234508049033276838031118052354887959010873852504336736154601280089115120543488098668971983379255994245383289885903455513983215016161408457553156220203917910327549257340748629127295842169197191644876756248866578431682119599258855180312477086245615276629375841610263273051953974041761146069265093177552391563888411783952984361107362837719186229783805293491661889782298614218768207852072478619730171539221904420928564615901303438326239288516802237769710208846035997463545251821151405195987421387025294002037225570011346807382658767551634674600640446866597980054924833273353079875343723451126043057359999023799922707782272351877746078986403212029885148013285363112816396682606471805869345514019536708950774578475105046762084976334201714086824860659883903631400090749394446404515327115558958714420915794323656810491223444916627741109401125599009440061189145692364721918056267805073654202735698936226356050751380910734124424332002627012856107009093972076779123857851432172932206879649756801627500323278775363637480365896264872322685171764519801038960462062218019527544163864961638880785781800336912217762780424193370540953336060967558560172785448464627546381332796705838843225029867467848176004314064486981750120992096402212003549865479338115619859308419783648045718115471630184277314912068599920257126342475933119700036707558773215269831658024467552424719678555696030881780080810913464491635020099300383222563337501931986732550804228222726833273057869942233006438592711308310731891944756820383364810843616447034892760516317884289188937110854153430784791402751474966302859076407343123817471046990748994971405867438015481832436598037665984097958117135633994158753350174990999815482643096654648920800636722247243403365858827055356290926825828863705764593991088904778856521597096707454704043492397900696969672142553504403905532457933521421094608517313033815692758634012111398583252932960975187492166291056648305367934651189379904643644933374976613105404212202852240787002186397694558219035619666050918430002105670944544055647829570589277573889353825073813410343827393019546648706239330771015790332023566241177705937325592431836453966299362345335109988627546679261283957698153764010198192062965598495657905453853767236152876929331022353271022023603403094360955104626115519816380732830811469261632697002411214314383307660469101024790169133950841325444578111779783401248449907379034632762851040967189524378051766769423462818182193796526197640059069793841190279346071562306362021424263413956961596184018633164654799428320043948203422358110385994141002104173094076506030479582975734859421145561412488026222639226463614299038675792868548862988826376570332305188911297903227416850772328115997682267528787947013855588803008412317424451861813432615393868645875806357783696827666223028423570507815051576671315485295195670404503298318659441878425128939063768240531555986975727506811741920264675261169338623245719597745318459445132859794306795600111966942026655851894912147524134636518791087171077227490455321412586193784446575144970899251612572619878027295174407462168771991784982925786898824720090408221879372074818283141338156765682709920828592773742501222946799051579727567619590987701144656358017039405367893787663108201359240611914693723728676511839412914391397827570044662133483101724132397441005352197532388032772343803429894129264316917301483988572789380187989653173280971419773117888649077437899111624393812632973264225365381444656461473776723730640293394644425909828164872830978606885134193811454672807220066262393177365245292281198612189784941823113225505709326107604126072755172483653793361510231908018398498315935160268289375380833007208638879501096491352358936341749988379714631817367416112367141416779821814018637513688018918490177478962297128264664182012726205226529993875640423406849070861984402048686894251259739740295104440398412017986759844815943717539506381117533533733621196655090039867112415967433578660060068936794084652924031017433188203480575971026776653293434258937434219972821004717878289447906531092590995192617382551506330673806769569342563140621767456378890410558670721009700601290237665206096124191090265702622246619692740840253189935897094043317920397188962294627676640207556422885085810444776991070083250801324927557987004539443193633295442812786230338619280871591705479278493649708881392627368236068043095497813759980891859830850668787239126223382598481423573153088244811293490027455614379093756468188029634441847128628398548246233441125388370986040411319088878591007136664000273329467055581876798309334242564492046268390537031260104680230030187561953613092159787338164061193231586836188416742993169669087968501353753928889449309646718046113591648268949203491743503266617891403372813557528361603699383841302725758083307409449307292292048819408326368127439528358992279534006665100044011504297282978367886500168724987867341753987474748984259911496559222447530838291461193586647732376866233543259478815401406400212206850224418490680694250009209999104261029074488054560181891456293714675497072740033498943700740857674415511563344862244190184403172266677343610405304460025256715140145335528770078622353881684924679138982108936756267650895409890841558163033582333495844710459777990262782498513005295784387230869799458309789366360832814314629629862560425256478322774331554500846257104705893241449755814516460254353882231780526907253317271377244537831233867201073854060500784967650981133414032693859221701333195937676619461097525662542852018593605948591888792036355811091923170842490677988868540575918919963028316731620046257375959016042359976095738358239007380059612741175165435125578662627017106045368000949845186687948247031381013358756222019679159754430105921609845353723165661460975098296902439107564509542922547309951791576454756908200706554522545921872957236901229376145434373635172888287014718619892394555057046425110427712214823274757509049248451538238693174751483044115874716010729429712167717100181275108094391163847243224747707900745791829415386363026520615020347597220949692926524206943036324967775963564637658061664680240205116021625010446646426981926107945379755336694683029490634644395088291855922154596181613150237078747811021642583636925856630128527353541801503330621660106456961958015733923558122189341380740916662638295862370356972169377716979994702119418916918438767219186026489657752651011508486953448304803484090462596278513044263927352839522634924603213152625656442862919732092005990331509848973113987822357646349996178993983849252131277831485832501473100768147617200501024329512890672952189331779484164118074654957071577062227581635957024530890136645799878493097156878626081432448778218384804198339646770025389132443261339765169143275521394787053267490093368372052177270705982034759296271494691030663116215324321476719359442660648988035627553346211454138097855701343088245852859240098501459496967081835674270627023954073901300400406043661437596651180023115904990341684606775201821986813101334801353694401265626704555098738150474475350911676050473689982010064394060761593669148862587844108331274815938215908415780166193076680091178562904038149892019250756169096931920880714713165541379701663123632944759731235479293266394828804878035515075196682385391420051437436691176787554883937433855461875894184931212378616600156930426600846007262623133922823449437372635485443985504381776477306828073425825459712282082275739582791466099603450274250354588959118780004111044949245521936515811059512461441084685259198802889413253422192640992379112156056869328574437129455214374855605734233649221116566401718912265626861306198716579334447995361491018195928872506443126390491576109934957113923603399830384976268067979299292903719643294916414873206833489873867956737829316880090170989899476446158128236070239946472580830105301001407952031695344604704417579509755848871234399134796611725376823359063871117974512367903556800363508890947828244173643111212978414450499286727348023071541741573967577337487356105591667884988062426258893618818633408537971301007539766406639377923442687373157083697705911524611718318548992127794836710009106388873771928739048108339430125295731406288946465452939629247112321976285109916802680561715571609378936500923063435018646502380147871781207599681429435239739669375938324865898033047363169167761815588798111209860134634554943005097925007666986773770664983172326896257287659153726239932589511678550257879287439540040206539733661784452259805543819024850981172763788037299047872770068489838328272700380767542885010902233692455908061395828340096098781562247476047892173722074382905662500894289398731340949906648819348919106986512764080556578177794517673577954352903701647068568647564292194151504839388435870427407784100804973653693912596467977777636286489624237028824267781303597994791057855144104149535575947999743693010685691630767864178291036401024348447418486399772019066989674127034449455492838554921640002523547073108240189224556670506962076128940499207905896042134286668261066303039305617878259674604651460060540078683033618039316119862084339977040488331522337964479812120051596236354768167008878275966034773587031726818696902241690759756005988579276682273069205291235554128892708010233713758138136152253649863802244794340655663098096048071961961918344637687292794391617207980816264936182911754842806860044988231419312212989982191566980339306408583586409036110735318278657813653331525630961165014527974158635346499307666662580365971981043430141950112122834624501156424621687879568534052575355394689172778991271854970586403814479677241433546222649865046698389330639937176888554057382563213237379936470967546891693292302039436882666245158710692547673347692970876098632712878613743879433965174369315230470720847008959092144012876854343892012987128792670641745001216312917508563684501019462674093518812101433240720084472256603802290947285967215015708224871310893271115933736976938402167303909242914438600115856026343182473809534545572823383219141757304881648613798155535812369262991260966745148653310959870854800430344859779709194673385051607105665577801707975094860767015136531761710606874234814930566816955096871707366408740257328299885880923699457537180913807682873078530570772559560292976989474270041462741391051343122485309998246021844669664968539538084174116625580687528939813908736189183807325587001167329950643793743056337218117058026267759219469415802985893048655293681388686848275517193098869502016267510368085559459132413083905000723532308278940622543775184009258583350813757019325478690179777971084243604192736088761831975530342318992024998626526994954092255814282034423722282853594929035848410168844473218554835067074307798209130447635121666195332354195174676285961024105466818844510569228589859093380027814753130733121900774049461940328415597941674081260269606448302853474326245215918753450045681249834455605564353671366254400031684915460918132894289721109136828128634644050370944518803838476791525714928223165236102707225835945236916704652454926587240195618270971438161650130626842862765030152576096615909877352204702273805468353640761577236795581420823029692689775324365010134396505761465687237407336628667137597265041590936450640076623771912024841798084944714605179298545447322745045813985072726323824070271166240868946253441200089843307092858383920708256139468645773273063002745384468153352012766221083666566370477761280261691992064091089947389437410509124911694035301234784718024700575366136830149524428088245173327601006690697594040672298098334474612144279526633252712221125044250150773988262551720429967615489230645772706617785369247760968239778913488971286558225296580506401127578855147548606043731544949885120287120163727286422359759945904189343816664819377077198563879532606339658574540374752951337298674715778717534072944742505464911458302731340947454297967718391655518609667676295691628700261870326110436374310655765555234050744460282786227664202358384281143327170565724654965805710728970266518533139198115616116848132554908113960885883692126307307675491014180744129392636603672171901833489061182779617726968547244594908696227133528813649208803910203476692325164724293172394938348296568486883775058619093772979993311687607212477038182623839004173988155927777663288508980933648968137633579793690974370010463965940836304130668084591372269161715430257120590497320382840574756692688020444127479681315374865009969848819692694202046133933053057690453216155078054356754175218126741288549419804397917742148006648600000449295511815941766303253306773107916387742551989443905029402121160193775255363927739903491589389053695350399449006307685651350715527356962744334733728276743012556068684126683373727838914830220031221089891373546431366193021497527972462599523675041374830869897354243834925315406151842767678828584393069883073249818813528108148602113960704768546439138985009836810763163792613639734903489218024006340653475507169439992371883388422931031227900214853210393055531724728017630839253025567032116858977623704623883188629406844653445644612292009279722181062685296118534149314652157117231880987150816265495482974325268831367221177903162530534469557220211235235811456341797267312401168830256058878186529836047614350558795859579002409080056017623487553040547272193678890633606387722694949595062569166964745738079728737939428761897163361216564846131728686451259077947833904319337957969015697758255766018853195460422675737241708553104571047323893646033267574153246253258310638107598206163854739847107176575424924004890608654736780235814969725778978012605285933256180726688331950719364742955692822184200890761438836343942522268480226080040138345305689958948765313024698277045876690908243799115243507162796793333763159519414684191406541561929547428625047825212342197446636036808701550014333059998553960540265107863657745281538295382880118783926511991559127397300179797850542028551234547631679949758818393619868926318508225608677603171537193514865247195444234425873454809074962793978851725723417595637161755682696291503893985367937638386877491794029341440449141439764500654190239310005828407767449985038372907615494858436932617839663395899221365478957626039904656787593237941757358267454014001438418270101183972893913775038857635475187218243900708518428531903740531258741949349409497145994181269750978587826966903845535926519781857171891370554479134936262436306639586564922660054427235219645597901511624650442111438680110248107973630962276765378073227660161211113980598601289150377515073766794736652445072274214637988608656358275844673527131488245498543428790937311202632432250165850447687115055844913995214939465110216443507930647575375405735690222298090141251691963865688667306237733371679482975288199574073087923382883106254368571422342803633489170477405133211312287662336707019356002601277076484907084372944083698710504414582735501612110281041910317669847095632573285815295707037751417977252644391527612313258458390352978472604437546154596008856715346013738846411864845976074089727019505432961841235568631057798730259568517904462064790578828096985373028372287618836738910301257620626782304983036848845700702099562373324151917288670779367794677105479876875265926010334595540315919400937110448824764861941683893292344401621642245619265219531062007479755891754258631671689851916810997461765178091123875558242415285963751348333071321610625737668095627633304926048865889414597614029230746926377630926096482081534016112004263590918155340498810265102962241887211865170922406843869500998483853347576721535857545657306191404233395899090804163228197550191033013202373029432165148064865578862046072459928196534807382356549132149582495996480551457976424067303020377415185541639002032610269704920267210143361174287964347942366727859823812223671715884417251546614527750204902010585074656494355725886232880745860745663803802303585324458156274873309625810968090995709527353954623744432339039896961964607729180654483317477461688937880976487857843409879090280407136871452892079885241529264726258309937349073253193989865717937578699860060771603517398376329069379980182885225993486041598846467773526906216307775564197018987692439759970307800700193826181277198983498386868525378042946637166743031670733143778182610813414372516659897799747188498195909825120794646993817574075585140667533593035221777505667412785628206382898958198605503887939271504377685470214894643330501849846999981249944347623735187763927720647395290931769098681295709137682036928681921078039596751048566256533052723314869281918321409678805204724648546132828297265633004412066355552553546036785855411331232415809077170009073937373466145996624268256234908431021979319803986592335439993189090581646129016351497207956607324456919286316655754602231425741544752330020717261998863800150391738876214999748202369945352638312294740126844082930811805768413767693109835026508267146049198004915986219603563026270922872825669366090021962494113811341356581068423249805601538687656792256799572528324399495936481263895112704950579977112899908675780933062139750083089850010059328938687600535618074392273358446886327396147574629016642813036407189089186856629471560532038359637275136040752790996429448589893859715303481313288248087444999280040755894559087640179548326232334180207462103068539183010974362240669685729065142156371578938940030600678838396013209898061648125146948846973743020394286693309460334873435022887118888672938117941159923937768517989823722541241349795546790241268984390543613144943979115576321936097243188033316227345595364810691445241116824098068462635743804144467372276386858987512144692884603373358034623640855781525970590714798709835386273545021886499414386783108326511941993528489995815756197708025175733253291186044050048476815108072790249492495293708808660715864479043876075376372931373040550270532950660117420792912666274506311431350517262593272632253108184482412933260568113072066645978127199008389244404393233678512001413184697845152511284180514854521121903939111091477169067031019267183846500745570897880910893836157657278026847179607808852909555896448395726057329621059255004063326900605022946744698831763960943195857786338820956528136295594579379631190745301320861270949330175125830207146222076612317858635541649222998030342261136707278302373250002676890501662612740241778588471763710122639208240850142194317582525160900441706349724549400566441292202922173346855448648141113952501182690006631583356414904762697420962446927485648031085236231421593838516247502677680989136131094318572889802311183191673962619413542455585891241364217855708331178134937034152484359147900417001059838334685684658073564225579271222884319759319568513072548484280985658402856727804262777474209373455523190068146457687077158347590009857653917298077067466906720575760677607924275078667661765082508399676677828997622799513110909808126224448299479352693480073019116192182330403846221083504543741798565765652686400201361236344750679611354141554768547028442212543349033097186870954847096794486844414587921592234226825864849480685050520063481545208888307401760698632284978618683797604757351497985197500659046999755101600930816264630908640727618371748546970411764257851670725774571412665801864449370543303877883242449876066366855600446110323195696895040078904091424609845406849167584600477924276500178850721656968207923201880639769504635479880020233911446382094200663319852292456016415260143511746972868930021338547579371474622090165780351319615610094848183869365350623576008838457124262431698203388340200584829150954435503055281289425974335921106167124188538907102210129087800621580807393503777851706398804398324045360775633622709456360925729296922484427699203550451697334360045332958628280648994657191728742609094743876642012546327515435258603281655227142193666402432126914529865652393815910055522229019891201109790049109661258931328863517036648921289968606431389256305563475767069923697185534863749602274169906502625004438672073485000483599321287705595105838618616435243396649769658556359037071998749100135688397891174702250821671800420154921444988079736615626514386476165200031743491294247068191383660703697244624345599965133411405308207874911124201415959664987063830099042126007458179747087066419309483919240350393389241712785970714676736806826397365343355166053556193872901819380734047020615325442563289105607988198766718875049880545508022642191704761448822930675967567613864404554711178184208148534219216234277735708835694420409671229223141118382224571533701569560546677746705540748448852187698769265898227642897344559478470520807653191773606539368118806769955156832991525835386905815926718567352111127171831746332344628598574777283383288970516312640408305040995309083125312418246475080228552639003108405219337615181506380607943870506247913212030164395529893998886566477842664059584931264643244163900213113421615194593586200986318414978060407760495626853093743357483941504166706121344192249565571668667112960893874336764927069740581286648967629588374813178000719298555539494099634694003926628969173243379533172277925704056870895741801133829731797181930566438918657840066216334373898471047904169775000426143242904144652386428402437810171317878942431257097437898587813434403219158675900447074145776123372305315733197036366350100794991202299722491215175508163672127421838918007056758446368551099215294525889246316031172179223231448918074445468136266672397842674252511292734668469657787313828706722243477076313117080613241219005806585747371262958016363064927733819390145698312012350959665847144487966505605367316136943138253849125762373998706475141386760047885457842041444805860955631030372492928845666780659425606859513004140689587961375718106343470989020311324658660621673727555305905699253468164086410765263899753988316254564685650423379699113961444977790861960903334644097922480588477973969763505801685663817862693656445175549283041150957121261628058295540196232503681569551877552144402601749390377673231127442122629461381093221925473169027020044048744714530243443806258608215911364095635047713561769302536259569627157386458149794561171304129170936068016728286186972620531965837268179956410915007054874122100096089566700786070373492039644762729577981665963534918693299498118689979840367143232429182454173816144035660009129215483652917860912211572489533516959828181908733825792931151427628890531343571838249404083035066531743377966006709337149759288837438310178445347754954436317118000371514861044958202720249979258753151103719499638185262903546560017568165997580879910766660345056841486734151901319168992847513854833338865683402410071644347975038133738873991944552925484645494435910062603409472509152627551234174687547899980159370662261977722975421581144450642692838490995011070051544995681186679303534619305046400707400779993987431896843988421220332872686247394165959369103976183265242342213612942777205436093735401454261549181362622982504158361414280026258167952291264146961042930353346485289183376275776659288608376343034968874172048937513064297567708554259099103993387535412969531454932911068091637930216697603466398949592867441362848094250820439401978032801398807080815789941114767250285238333402135832690832058791041817714826723597433700146758231591233613445055572104577023341016900997613760694428976210167904965800563494425366527393863949979194945205406648718031981721164943597577797698796489348245104226076153877109940750575214674854278129289206035077896370333566243500401546976139804783397066155043652095827401618892592279865074074032886005544320798742908901434389297557576044626064074072702052779195262092310058171650671344621970243138063405352932902962351830221791946787662076585022814509496302997970416603852653721622202842986803975678802049945085983094959287801177142747162822946564742297589083257980182834253554276403266015899513230444799257151735081351141411526577731988612427416510254358674472465807646208371434137117381462988098638316409660442160854336677832279870261957098140502614690992729548564510395022450108689561250213688422500444402541557024893424723011349707384926651792226877427414459971434661539774999190548365838918369555976427759693878544307031677836152130524259709346782743423950667472273052995263519141358502742192329894660802724943124532434133355295003609978130755675781247925526179117222979336067906845999939696782433489060481856867284236289816283607741639480748759451479680109047902247807536587975549290477528339889432756414185516212111431121042439339948044070214478231433258561372002507058422261990264108967871566626548165185772692447369560847837535732923772850376411866326498263831380530674513366020718671918030352258752512892091503695277326917808920812493342861058449644192664980258069182347315359986264587259421133589887551109006512495112183212913849915683632553495936448319463835864257640366092480257504456113959862330752065051524794199814392044062428224329539787628136237154138817553511130170278601515687744501089968701373812900879215903709891816281957878634294122163275948853460270356906384898871612227560337554440406873848059114339913852346458954029489862731729859281938459736789175774622267050455186504895002801330775787470046864671475476611354644292144610079893623831532863907742126248937087533194734958790317817032071964062676529770402177810193400141349891439941679716903729166272060001533287603491898518854818202697369307299269647739165061142590246254024915597737154079534227629054266885700698889256519282817199210834347971561563078260493098065737790279413907415545076491670645029522803976195297763438933149499936900755535397751906938736759932044485105046647236067611707717063851941993312291120663692944607096075896819019307279155449455999246816228001165061788255596495479945292081582751631808919195814130594421228327349950677233751520144580656185861187681763580641196861157682420374082323948728624570151991018316518027481482750422700908922671903011002578844071379293276595939527893418469706186089211836555172676313519954194497910864569914074075360558852023143868636045436979694268090735213603440103719116396424145259120635945712984385492008486813567682361328450343997834371085125098086759570245068098417337265227663469449486113968130255787765084768404900420729863828524881272586780832064750303171280661621842825669790068419300676710605066955028322961700313705414915642696502803892669967927461468965477230982094404523052718953937528475155416544264260796015004422246228015263715887119667006356636003786354166147436376072227309676561133636191050024594592664834866897715244648661717874085099244444208580245411003211994048872095530682942314105156803869171719552600545484113009930977992140884059672368892429054542352297004660443293571217396750825688979781014923501509830030018148419960764835902127552075834679010473188670457421918507709061772368248852070555426250848645173584450897574429255642729120083886487646826984462420566325846123975186712924498866826573134612229789096189709361251669960450521264302695826089133945212153612408870891481027728363271704870726162876357165333452061462831741246114878964954933138342358684553233922358607072587498197168879937914379296111588098014634127925568980410727595761274766468748811484317670624114828422727470004730911806694918326888612946274026132782979939199693852761426784583071604178058606551161707995827146421322879357247824455325122817733139252444387042064202056518975065024612949483732735314247454488329753374827258643264994794314715401131565637257143857813369431734991308734003659914751268336944073868253162225806150529581219081306034228128600724172274476126431483393201301671834270520834858025735339295459109809620994079681911746001202722444689792515720089220627943373667959355240544411369470020172979530258343368931459148153002764634111941913866013673514599272916205516035062575266652836957125963960182311576227669013894256593878428087073748971842281746492629845859392023531940520392808979275607556731696970380835123456441411747717737187137497770588548236393326315518694749926344895906486087631916866499652442087871660040144838472768237726419508952352296004504186624797024972848083279045079039960158754587925668555606188357397777006906686783523906138481117697532786795485053748997867097320731055251218287858775881458387638547579275114326505035078785035105522546003548679255249628844217366365101255614750699566282272729020474817297917190722075494495927622810386830643696106962598436323115643164955739551206753074933854991612935304222737615206901941290521925572010767362421948190969737911750191352804828166464823432224931924058348300100890832295627662050074068647985910251789255018611088047069011559269561814141541515019733974902931461840892681896338921581677492059682432979848155744218857577607152616954951063773864273549935212921073685126089753131667043355766361994284271651221851762058805428312469448454271737827425872937001071853482009097884481940510377196146269442189362737417748482555838510249209363066702223798552038619134351677212022534825689954409304264069953694400334080062471045971291505716935074480356984411319546955307011892696580205094917367890305144076251548877038457686102521401022503260119487693817881089945713049314636862034533203334260263596815688162725743419444442905277646478324583279324167071685162500346264835407048164146042773602355249504699446843450654496959661436413854123017864025025788714304043752725904777578959869045724822450580390854731040722998739769875573091951274567067478178530735539689484480211859241310821286000917188972093433880286293999833251075716996940377984686441430037391104613640734159807875995476979993557229239712946874404607907307806815430793375815000014528247996052689439508268171518948186657107934968557069137106509043443906722222727898466435280449440316956535927973547372421534161565997840511298136365071966244823567775288075804930348837694322821959272593335938443069400824251892612992357978326761410246570706652359978100869075854043693799849268207231146700043769372019224106986204264603181872592319538127292986927889414312289745002604722509870491398523152343581192381207496257039069583009650705535610195182488064393641057040728174831775185184656612267466742376960174756031066942905605500000276993766719971445243612295345576343487874707107984590991662158056078644920626715985405340314571835984295978384817605714552212684164451112821070005681373531028539505927162233334669148183449943645705324297799560958802324870753045634853589351053327452601781680557068239522270874331672788633951226698943459787926390064174277132908049929862933083404823140843430415009450651508525343028124088730373224022178440860234027016367271794094400535507324817502224607582857369893736033979377825095891242350294149460728861366938055474272531174077930966808339149930978952794621698391534744233008560515657442903839540653600417733506344875174952465370339128255173003932576119031079161760759764899708631550957449133229385649395718779140149609059243928099849818468096125519016532649044364408516813341115523168916909995923345271903550850185065654544157915419660968068851823090725672583898069545828930347422830192704543166505774697322598539378863354905185872976281685155220184042952331048316890188771250066555254137747654718498983623692243409573406103522615710260488185101743459688090623507897567784598768430865118244134533360697103957679266523714977392303447084181031661910170104159127737828164950620128007876999685236827590951283891570536017039419236178555198925744041273026649586004347862611067105709958629256277895744667964668608063524423262151470815008344578864878156432827704714857722252141423317460460283150478648707410249280391045537862941102184620186323704189447055477384414190554703441229570850610754539621729446526198864496249842713074670108016255241107262273478310373704417226155389409409782647744933919030772942783476265436326338863007943033367576404489772399097113650995735317612306166020976388782189272995405634085783212054171396037666817140694055872964830114914979773433661166745552312470495504370980718550814174875936729230519634334032601503361144280346090466383044189908273984777424960507360864062010153658323303327578330667776033093052377293496708332679132355813875716640255285504300256009254519794100812956628699765542601065841379877720873351871154533510401145370697010471071108040798320042151479499821357585734720123397596725635799027809488764290513064661876687904613602673076779154071125627365340622057183678310089405797779651582540267456803927202845265173981797789168290558199166616557813419310227096813725863373092187445968968042652520217746206119751204539758756391829086187632502404686479700167808203928128273419324561017317498400887909015601466866384203549334828138343455520540983454795005641451843746705708732318064513217994177657315762530547183922451109845179953851906177502242092037388933659540520641003879861720650180937334138030403980129597376639820113350631473251303118645087009573188421353672188838512903319938417510633829961554030608456955801984738306379550324894105915019657605045370010399601806819614586815368681341826110259731174746773822996274591685498580669264615082617823216531578271742618878520467869389756586151652888250020187718718362990815579136775123955379920982772069682737271784676515014996857099080857738000749928007373071174053694404752695681500523678856066707487012692019814269569138609210571770424795895533275123375218004563067639600261717385120316336054253626855692003942854216119707680712248628956843245578424128816670265412802798518847541890923017350594562808053684868301322144488216889489224311468814957134640469058045004175316235165105659020966477643746327491616190866543745479864910034646575984477200056171015147353200055540717117369302715909402656402662399692253167340617820718442760459642010582450401446314075789601918767913909190394730570325374500383907759331855222297670455063309249038055948056602821387130781232272204270096643874464929871609162131281599802152741808100172735198152550692611423901697427284703639135688423198781833507625421596660436255220831113994610957670784635169610738030099770717813891665078082363849553285409978177023386901895145467298795111795073837491475367637992540435177651661355206924229805133967643398396247733150337391146509475523456100967374792347990612278357400574087771949646344214788170717922500782205184604264801972258791608484906199659970361322081223962077821085249653645308143603724508764082611033447021501813880623133127138072527818050345167645541150921412718356759480750532767022679234630446772462391919916452154030986067589897937291750135068009916559249761114410210219386652369561544295965732184697711820643841840894354146435866872416122300425858924600106615667634941594031620373100226719028411903777484258623028304848764354097756871769025461847386217993672988185630623802339463809467581375245803860153395868215943746571980482860738739371673729976756980034867005974438072840429546513287447823678923327293917806164329256497764603275592055534215956725477334035285596035027927207054593821796118271734488559668808281961851950892624519719177249373488940035853901596281894728604972094492608797988231294747259629780363753560383630816679685806031206707315861176148050057800806985631883528575282668963654091300243309300582475963097666386790574092283626808179387294478674055064327209989019575547914790031120671638292650609833812615714022093502062789336119882558813965080441342234856892472393196127943938956622778217266788649112956967001879070526678868861520085596782349156649654047920713021995514232851859934480284513568048226701524897052882589440439134574321371671313951594391460281017379641461993986140730855438061676817599924963688985106474600537452295338198813011774442856583309118695972418110028780837361482812086151255496889674694318270548112371952666676006739990152849014834872752380222339131212363794251125842195024854444933217587009517296029581017161795274721186133189589701265126886156844418877302503499421826033101272380131776501614942960898583287724858806317670087243541015382808394066824144035345754067869191113941597808241335475243227662005542937957617568683708208724382942724307669283308216367238572492039127313122416828890682899351256773264473357492067964303945763801800194881574242243691493544514635199527338541090220537654593149163610985468451239048149873013543420701730854582659441130849228759130457378140097932489618156993148450890979104839915995035964404681978893239166675085581811443208726480688931033223402070941760540712091971193764744589446664651359194829851913302310462376852352842882063693767286323207950298485291835556094197378917328542302235856945137827863665212221614310050382470356526889082991949942220128628644490194120443254114251911410859009648932194612927012104167486523267678865776536072884039636042478356139684340959889294904099332481313242011349372782804907259292707868405698021977098945506869439252948298598422530574230271850318545628216921291921658270507224245021163118069973002183136760846610426596270944653495489598414924796695968621159000774692725911195930973506088624609637401150464671707517709717118829366013487925292784819691476451862494975545863777228246891274723637510174051633764613951116181619304148236952514905475515512897108713110358476964372446294792369870434113695531917647508853448110259850921531877366126724621584816791297102615594186994549830312434185565962948378168135678740564228862672200380866982997887082764309165915439050329783013596469524691824535104365163611440553034717693742741653960706641502628717550819846807954795229083934835849823923531930205165136293335689757652959334791170485746585901967435871289940544513622480964437478991917668914745021696840366581167277599174709018715962532808370658985405188481727244115969728096088923873711615945961919605270375265106580226432094775210105211139210381195170802543724286122523484832366918650615733538618820340917253962783184350937990297240246554754287243790213152635266223063582243189901241621570756941700898067497232749610656212687800019106991959924975138355090159477095502056896485475648495346492611428592720250922248597323276931746863915549738014657219462056923532311167819806982704300383376198320909734421754245952964477057846051147381600705564953109013374093404603490611706783565723888879088158193504743433080602467279176588424404357254207425048746805558568163045236400020169139109262508359716421078231392204610797183129685639063313160375503416392232676958882233160286970694066591093758149061996134112042111030396522918270003112763312976559527414621225689268324604759964825109832897355451015098471214001117141272531444094539446142018780781385037888572616248084226113436955945793740480609336599935091037998793927659634624057379269846214413893178560193877346990818779878381191592473307902242135702151517883067540608156865098596806359921124473294349627975174607207963898154564222023475795643339141881455387873507467825557184980698755357968070362310490314081769509956232443820598718615987257301462513062618382172669860956096502387518210639126312269547864515675066280909576892498854235132627112462993028608928619700003284513309321010435501657240143359533177500761755513085435666179750207110244059677970421693277273848933839982159513089037851322096821343325927567841942230927879560655737358412630476198564450046429966002753239295035685339583345821401554500090514406256479202477842921308741231967539733548358484178091979757664640551504484209948716918454974860681399360148775524968858845866304923418094511091006014076524640149217262274382120954297341890350054620206745719695673483560130484329201997543354195529361934104423729838251683213353905512824738626587495569861132905667599370379772492221998192197702793214029840450240942730872617339406408167378292783622016160802636900034579378787898444333401369513913224611685989263551918118336455355857428804478666741530186924642396313441633728411608094010737492973862619921184132346328059102278623552194522127054322190004329176099519030251845434696248083994698591924376142203322683408992642349064712370669927848404180887823164386104830709664866513135594904785989767222159885890155947060736324769815950905368213226523252188768424709701651398186708687904366962442787858496177193652677556865554684788005367544757414346328720584115940861362289101520228250303491675400813730030218739621624502292252794164275136933157732610982087448131576386519490502312266539952850019555173491562115478027729884247778209900691934112560219309366987917762706055281736960612372173650363604326858862060175498212894710715625470588992668093451635527969693434950224649497158785050978536319254375559336233918003623053129502620924969906279397632999111706314075873609081807469212484713674884160826429305635789717501161532161893971506016906379460371015417076615985713958827183510011900118952105230089405016543061255291437578652903706481705183873998000714170379329046662915388958564389209584693313963296788857362638363404439325763130602025786087321120542525374482878650427114901922642052576266152459863923994048779123899350647914640565850977239012392936262628912889946753042581021059834754382112162569992490033160926987354549063319763800103207586459365797122370394200116097087356407458949176106544968463009081897679177943093089843471626294492132869835153773898805083881164969427386567878282317909138567060101922949457787507785328830689554061105655401808213907103539592724870503075447096422099464561908555649647534484708586527247484213325344692500508370415898345908154512199992686409699918787516858631947004491752316784672100400729769678191981415969303452066937091497414487857895920677138374989374238352863607382223098625576063425342762679638718004677257040018990940502574934669390607049331394228300313329322643756814281997218629412380973597155978189225194722990273516513068855962501905717600779794337158711898353608145552745924670727057697053317572020241654645041997679659290479902813208966725075574103725801756231703005241695886769158915405462727642047791653640951785306109511596780150190855323261027852340694695213597449915032499856396936148813719203304885253355457923454875102276096820383675244374399780553499723704548772271374921923714917958041733143553634285453049241411319248187514293819737927020753059458415483332592558367212378350122715733109833744084054225890133620195194461949831005214867781234259073667404319707439830415736587025199858428910877904343013609490791018540249452729021309983821562532224245727500293242662658905997757806844113751827488518182922259777667439168555238725648499741562643070208468812255410075118649869671608489215126188187716632118218498950185637411483508964930240477140754414959884530768731728048625484644761103384513041270062369720176707403130168296484558447802963217206518687802689651928748128976667375759553182208446941569749916956429741503700904247298761727529683461395866625724466313553411171066465072780876620125713383280203008778155887459967936060535080132728880111050752087289227210594239096245432007317754876019715249156788868705086400175825229310557682324281658334327302096939697630783149275239801379986420703429643172158307886620249295011867925621880678031513960673247851530575107670332543916486406445419393185499733296702338443833820673715051558091759327387748693711829433038453297553528825188476458454069000624566766219410487858631983451425272380830402786596272820074276466520626995354105024113489076025383738278388269457336338963743505002032908892959876628606957437150507817308337079139921100532874882745528094048400661695586098973529492168186242443135734756252520986816790357102570320848483114181644174603679601625780253714340174769199165203029831389340905021294504690885276850871982623191838305546814648929908209182289744948648523097514035427067545457674960328084184740868765846558547980116412339837792109238464237711143727495017428621243073947465489518492758727188579986009739946116655397404426948882422281813043866325761020059084816024406216535604386840724608531180751013402425282359542125315250273125771861951714430176852928474299694612825713975812047497479087777852640669373096235283337785125718104022528155557302875984605343273245715095136101029540186018351098113973397646694943141958685125396070785849538208630977634051260754196980427742903049281549371101444661063931632934747668581714388769266761348958194312311543700240135160848538077033687282676598405449900413895576858992682204048273681337932111708907997284876535705116429419163345016843947617580487279988101248917904434808953463148890505580619766846749846725720750805956439288788021778323376328163692591770511972777002641865241136681364474728864521615226890495122562267639669825955659570141265213197377468556568821685997627123406469535553146843848771607846448872033559047099482264349132945258914080194256766549372384236303611498974535240192751112767576235195095087155357665251784340313797317491626449467680914562675066611030476682595134330759959712686884749263225461172407196796357470606659832518017380470087119988815541244084438024440269049838793155878403660946844981021684863915309988146177630217711332428748185131430817604925992669095010120165028716970467742469962278714425046916582959735812446881915917263075490159094412791975104011117068380251498792620322420399614466406974593534854142390427193421024959385026878114828508442757119170555322428136132402315925686496945280845486744215707787995174593199684580787863966965550887206604315866352407052999518578877968015995618707998564926719182808293169906102169955029846291570419056998324442930109884534265730982566810365702686477508859084884167369438328316628161018376875781264210148571631717896765397562667173606137571567178512933485688079407003387935318720594351618904322537299176441030076814805954222030351564407766333855439761921985600222085535992833055570231259154399566824879298634510922248804156913185655808192309010766082581014946215753636865050141545081704629795477579142889289861634447376668796138540800364516444493976888706606851235377272657102175040504138341931542839531713431948807915272795416905967065731897762169461981844180109550257331410142306310913116497097692014282458940425528573739528239244494561405738211712846130464575960164026934189718467880897228812799184281239269807300407325054300835630225577190466543391912305600060438866561568393070188389093594140819588957067261531168002043317261968963680082643714319851432807001475242923079266160451541405581398516899997724749746161967862418665566396046406548975012850241333554576694069845481764101279546147436920906140279028548624008853336517910791922214765765914235737034730956823867694016717991070507054574017154502449327963046425053954943732190919076093711500719109105408855029508010766191602446126887650606227350023865232937981286822784039638051886470490032668800438177681310515576868843790037313983453332719552548467024026687175388987473378150887332768238504629645570642981008733581002642356377674416782216001921503179383775802431622412177945785346200230904003358518062271471360964775910231156266089153023815624228284287752404302896147851453511857818062241643914010466917462915137038295878701851651749289310561127248536512690423665482044320925067091531040536718302277083264983668069663900637282696671776860421862302427417666541331772949079931145657256713696511322942900476442151615866364962297565078040852303596849387957870836255200317174269074397154973232993735279009580391871341783848342697376037940230864509930799152353297452884760965661288389194325135923244361972287915799126226871257751755088123578806582373020872192757039180736002380661117852723557460155821548658908218790263544533820881571276780304961117017028769354125153761420348695369552762773173613274141513375578415805526406808451087890351745263163687179052880959377374529769061686627358709405920654912467094432224679461236645667438920494665403486381219736223999409596420985518255237739646513756440055012168109621743291777807477044243248948061500563785849505504837097043275413296639388921470182050519978260870602766115749955148852005956384983719135614026150281051602810181370797340604458903164747363574081608587824304321889523394619540207048721679968058521718025968522258364580989017102607259717076598708918387637560178677480339662583168167173318653871134905106051098322429956173154879656882694938767302428368287451257176138644236216609876050118999580346476636576194420819484136473448557988115662943784090733149301231148337702421438298396741456892925938062835208732384318795775676008493894301934739090532733317909548460347339875943955252723225545992725435715384615337899205780672584463325761943094638513166669072865962806052900028017621248894660022016897824420207753812829648324677620323813947201813185897373086324062684037716231749871550888776279787458242157923843235598683418548324055700652749940389087785736560750263404061814187354646124667372176588329521900837206538177360526487352347434262461771584616041215486928435492822789009205485399484831073438296915371971675153670677258641017404580060272453403782652720958179442307716025675755584523690046120517128235073408674469071406310962198983147877503268561860533960393848452235649192342890454529866487724410402515421768727897986357008773676660420399561162007717270420830660625150685047763108144228343686569391366732382980591298037888389814068430848562534269374727215923412392385781112320663143088077311292289286226873586822088775557900486273292196267409826032398349098267951096836784260917668593369475222360234909551149843208969517286776076839536076205512626411648134589259524351736261205206472990594193837453894992166868985108244471691338364094502478184523551268534476992904126663988456971822126580283089598117397656386683721245559499693032097904641080075533173891013214624859500149067036723696890373100008357023138750979849209963080362295091017155448494908893496853029026502810136112352987120509159747119195849823199983883993386457681674438784275685170891374068492262697806608873581046736225755372265649482254596984577714395385761931989608687273302836156261562478325510767428570784505435787592586863944267452700270313644411681468699868726330422289843840991138074902066226642543138660178287460790388096915496457051718897447453131432486326438480997223939538878247768975644616336536267244445533644651045596902181386176729050341119247694370702783870869095203947941376153609662835561383418775793657869314998856571806766607679286612957137964601303723068715573785408126773566520716638200705907194081306457817364830865161695995987245827123025190813325718625138605175796253506474914496178313625663928292801317163670341167328631426744466319410864366836362294996733473657267097437723381099027327770700525734521501406202708542593610394179081930545384462165782627966903297821920619752632660576386786701766808447228218988578766838095530437946754765065310154533060680160125221815885780987937938394762903437253283029648271777636404933640295460699626942368041173390605256499315424772064921892851703246467463649409657716623245709044539280970284971132409498042252444336407240775915567665361923211666607402183015354907398410360358420902617259727607457991659036567804253071073588672253848761318760428416664492671342703771060696390370499860558609929834916940372150848915850729344702242712642307158510948483545832975274384281496780505453616711245826306073176204707154509330305074939903837052584117832908420002970327412831208415292276063286172850826844874363158598635726651031073986641112038223874201302720456237009776181918515139227927356823220061049736960458565564381662175528874297885245253077578594165278130714175388625543473033769082551546504533015815305311925510145752371915940002452205021295180746901887709789608025495248921549372089190730463960992381254920837121387838754944305054876320718241398092293624151271339480508444513154993580147820810958391827204853012280522506895797626505085566218000362564636912985562070198155430047100401373248109491865817538110148238248232068926892295242893634344747948406209056081275920336991425606335632365837334449299013216959557293100910600536424375276158788228411350002009498723853803978893560052503139978428563983708262839088547557871391169135511813120826154404838801681534223067957344146553108880640967348960859539407975284539577680426283330272029447917946908800936354590182978887033302468504873437413302230250099669110161684303826292519231552512473873182035745449347578724562600136370415041294484608227859857774398295054965957492148353013867389668146691290628779961229772932438583578718836683817594509909005990727217351724088702493596273910013380826041128402643258211177594324133095156529592488696174624465622863426405923977911962371755030464363653203183411227796536084067873068592499177617202710258401462349892332720513177282366576709270347946548125781073503537894781881185428753384273435794513195743113146899675677325686038309818324473923546597566872900767731922721994554704874511356167375591524683198668305266894777911032006914015959917980004684320279551845027882053370819948116266260009336766206297784032703553637633438587384238965507211063918713529874385180781743637863960762774944590752815747554598840489043137279561795519208096982257106898094923646473180845948673410026945614123134780710038823012281939920595661026495481039210221470841209900830495923301039233978904706267184208044554569063227137091233819241487184472868233041168630695442445183325217778640175622561184954677843742910303200376976063555008795432420262576127425994182925611704331223245199670904888739706580311291547574011243099929461558653024200136335721908733269067619970457201449510332380076732180426790762423248051867824309552170880319001709808873534228111775429196072171527182961250454568802204019205264967925322933734081397756651598376094445607395464623847970573995583175939258764954786691751735049603358196927242431343637246925235281467032263017922223723670493920024370421940897799336802339265881177883206483184609441588508859365048772385802360956868665034746790523397465924516992237988097494985644832861794283112933024499732831634556421351976115576421385765774911106332210506003607761548907513547473173767308874464369046410652397523132179904553255367566959318543780572162927876822568916565244906607520278895062249860767492214548068666064134593469587260574433580481467047540925868055351614197953810395628024827245339250375234307823466160370078585927267814049653727187838772116608665109068544168561134888207169762933522386481209591587714146446158253740036078897110289490860198629281905660462705778015514635938223275978112506002719266737289412651061646971974975630700229086940048569620035008591762157777506381868297801791769988893984757864243120178426017678250640604560619171826588542873713601744788086804566988066419976897860453596135829450226261935087295135684654368977517189580755029900461817299503249651584479022761570539018388159933277014818680719736347186684280055422904491767159802006760378684696166485066632365153214042910624547484528369733448284366019947986882051658334653921415020139674712569944053276546332918295420180155037785335937517156408795001528172317391047316784067453558659058172243074251756923086821640467769892089477007977813622523576735700160697213165627799946103200817277801588724548425627476144357838877092130526461972535645799496919135351492489872832151154018615197828991185682288690632268893585948768045546592132386392278925106355894686671748534526905962736131000632750251133826335203038885972783441728500494994971240618073015361449029231620861386433135228300602297813890916629160381454724533828229168796853972299289041657544578003871592641915122289171887568555274368904514469681263464140653969478985099180853637228225149842505846267434310747541170864541489366821470270731184969028611006353148227087781316882538463358517502887230307456684467995300442313945933989973102821040587130236599878022449398441069006892484138756182743411717410640723023723576100010054416636588227606171892782777162551973997611141783973528311866290818820425091785451322887690200480761697461448478409799632627585058342270140472040584241846140659830212842190645318118988638529422265977710143420695070520766556600405986884754787650275771423150491163803640220336827433153399414728800680843566313123018461394438556930062175457845330888990594603167093877783773432651968712391337358590837588864685833421853075022581996175337109273792203424967157850403883372098214327330698560516165472569934522636045064774958767115603798166895047114967627866234686249823808611033656128311670194342509032676327140490794403984969257848425992694577904765710064272317635903496663528893634144861455586297571104773464151344467620861256133072555160082488591119132728167711511896479320963154623095230580492810603994909416489773845237138699920775206906503774500937740256519033906072335661276769243816264109838460719256156891924460182864885565503227731516599369037519940326909339267276897352956614520660964833998602206070198026577354761294460274768143437741818568665598090402977827664575772896250135889790487135956018219400661754395424905562657637622331803516036502215147585789937213286784883787864220775149785992224272246046275996015022120739859144608242260993098645265636946076617681387528459299152118705426439163982094046079799252113933254298383565707512811565586709175919697955526719101261815085587850082579821462796951957704473687668829183568725978485402822816407599056191428277806947828263458688330544960278041120645821863745117862718712845143961703261006867520567295170902612764326428271534525893968382146218076846221219069273676516480343695028317738831672014478190152976030779072389453166915207087777390043061743569480171105034528818573389219233660800776172735502785732996054720222961746976250449714298061133197614470350206234724444441675269556637887784319614834701137481081753380295413792622567902253066512286426694264824075309926644117202213225856181076866578560392496460814438918383263576523460382712464391683425343197396204853139853983913273513567684323487596751247144002941270105110508139178330852682000591360533649376577648060354985716783202347620841902444790728427966002580945609062820180169800179156830467806432596094434441454163420124261454436663475521868844822564409533593979601372578607621847956959586076395820289695607393544677045956577127240030805001001733802092144997002950536830350436005606444701999943148974284785121192099936197187713580383549391322189873480275917262738942868213836324922960937383627440570140475766844381453277374252406206572003012561031107003349496365571982824547695570408117023767107077354227819642484231490102181535561146187850061739940271171319244620726280099302207984253444774390008847488074494536495872646496323860555695765127655249335361313372288006505369177185036495513082091612811998285928514264264230841142060975994428190038256539789645006951848036529974048047631804289376133649246077860726276047715335610796401792799711064080144585382585601926977989544633974042381209869001650443194491437035004356734356795302581174623435027133991492340237514988422269362559971098657861814465298056818974086346959302083926541715548053500808594423161935738606752732936347075909198819974873575169416573784322054056242163743896968301038983822451902189097440897341312955856324748097032949822184277709297065086548584447626977015474274945785636411558700264928612159805793970120319992043201312142295947596322604203122247717566891501991692382929399995266306701549098824349416964433989595321488329990557986322570682720558449869773247994519109777710262431607488517275702003279198929492432869122319230398162277787624494323521855338907131216254513526521902045481879662193952345607083495976658860474923256334251997855760640576840718239485029777638484661393404014776967762612214462019691075750658978656011964562651048803373823625453800550255080512174466943717748752275383986067865313182435117215465964497667821471863127319844161549524617087140628161453911180586976643694346850472060243688128721966648842102814305378403695749122318182779524987230214851712910687700609553807905053264468693129772406252640890326314830533129344986306537464969065458464504342541539626964639378741555223643582528388518547692993178187665087667064852907393514503330056865599462763931023617887789179057969645990484673876996304566078876795814376679884086154580168605060152875812665060095107423773666497918816478075886595866331955599411586128973596747312334446171814428271703425002077903841867849114548593951796754246892577100473437918186674786254943501827386487305722737235927578590606172486024213227926384242646658322729290004184062033909573751416590999178362174169307317853389922395673806841109159499596622755265709424601612754319208498923578603114462961630918686681664626011127777183622873801188810899444887184441761825305024445636503010680391007352179574858887457098927693261839628198934974400724337179136548072396447287481806459044170109346274045405491881862033831084559819911690736283764198525734059721755330085006114126360804820866106379225429760261257760700974447588419538118719857866761025935454040516715010395808916169198065198810848688138667336286784072120647163904325047550164162246937708775345411937824163197235483182227106161929678646705151076278277504982717324569995749249476660003311013697870768588861612770240133510239148272956859466248917526325259878009328452525109003737992985358606259158266166872839504339465175590817015692742014984407457741050237933829735485971081756642031741749118391187493376029965013261146331682811976901118357104023080417205284945810458613209644348211862867301028906394085775299809750375660751043747981689630417181905191385239225384188801989533978666417162600971119375796113914957428433517266819873666166349245141405067615554354745301530346277459751657759122757438719591029959645436837734851591491382600366215927709181537441712830293065993871115143364878014781331954219493189921950323676665504796143261728087884943477766159767465801406540883972250138881812334755859641489347879395712942685634246243493175212797539713703599580255911617815928268252304941105987310600053581503589005350181764220731954866835494332244798241180665826201624578327120246077566876360173245061618435984993614522953515165962364959424679914425397005572814149845417188488225453614743765877348162893379591606747604806070418729603251806541698286820652012423684942356324865988638524086914118712606809988763217547000658221978433737093415669521733372775240949579361240915860504713236588705096155676911831353701946810626915891737034706762074950945866157791065925665635447505298182728275105853254531377023022055047144059217322612861741666451302369703380597395190666933725216645574226466862762148157095508368849536497943150051257946013846241390561706839380115241017344688729633680724424903455373009626511206928250484998886342956653580793734973329264740635593372219701112652478495181021680024367363028697859025461076051213041301548427206837658871009331994187325942146092454283814844570165895165706272406346523099184963881576655219845732807226010765548336050717043661516213886851732287993243299346953329459380387010418201736053279738750327593540073032739739378883700980932312742869753492544284154023963380590670490271492665098182296403487016147196196393472269531211347129955219082614902118967123941895083979415337599055420138097449185493603500928082952833052764559423397670707209345672882863835023860522537863137714917517131377336820470406400988035193424326925607315655701991886219235959635044391812891857243865091272180686163923703608398541575600765124143231047706118403823499464582909244476315620586845128677276124922613893055848226008945895191495707018431905089151507049551347532038985233526757736688603763471227575493404823617305255824600827852930417332120354615494890960287749049422769528809199321786158769571605687576522551072494197223428370399991207520491587619708726068805091256643223968086745470201340385428618667647448392822888001333713779985983585568780068563498032964387541421069935717349899713304707133004119120412041098518002182640751998087307439666149335110865067806082252346615944622776439715546573889283407948897049257825162455653299956357447439726637540707115017059014504653474423381271836480664528423979145818629973428155247452683896655599210060839673519534585001705427505445504880964809547033548204429027313978243695477303501119504086950079365451526787703872702410748294016123884089452227000587372640288176347233194248211152672393158794212184262518309110840279084672022747969448492059774068766440470046896843590085434809225426500338454262292973319914125987961091994198532772314854439460202014650202830804088662637176128437584254703315092532825722502085515880897119079047934831112569959621692036370798540299872695637225992773800610544361147941993567771107151925495430979341538208419576240835133411901471954135085788437464902384665741590762805619365623207658790247803652321038730869879217217981374608679630005480745047502564126983610640581332244092724574925856192082656348613634197973448630062736168897135728691080341544515283983106141114270128057734683869223910734312045437145726193808014061457414337446169735848696642112458169448191667322066689935986780578834306165876325072974161078350940626962377450831799640405193006154325341725517567432348936748010175131848193958245993646861176146964635614272551977904146386334656375158216871646540322795663662892599618590078563263930315210329495332716966979910601352170153745761984355747650127362817314103733831415466432102951078893091853296997486074925576393924573718454753856438639102847278223934663320095198259738379210759958312630889552143391295788256934449094557977348306463013458254705906123397894625998726491346978995781281034480517498945568867756106817632591361226202668226174720525553211961645353773724417883509643501828493809019710929413819204394827624713957614340066601462104098348801793350662012407275159824546538502698245490513141280441370139148351554309981308442320489533666449689519281367352233156920869994353276292655231444756115314295052500315712449127798966063971564823561331208878540964843807991159513073047262002972962656858484032247110591113179383228665127630042033438768877632410802266853116332468039529024586842811449035224280127056889041887541627871680436704139196372390797424776874765961174074348002576089295483281409315002455282069504192982198385847555225198919877870903938015929953719850410024953864327085291386577561780858706906171013061807756224421897849230260004413605442392319238245698378560242856931084563025579061688538568966734050631728918318825195674841731286877199890059449961273675079230581190554139486757628272076110051400128091303726560796388087532677648584757809198577342002701388400673208453137998428242619992349542758368566813978230526374866928779506300554659092579360377554776786220601897517689283447876200329221080912263747863886326804994547167677826459859602039782753918868771928277570033609503231824351921501971805843767315985109783082579718384135974853186489383273056517492725255100051891509909991862159905495318387682082936404842733193614521635051947833524956241260681110259409421222947272230895504904669272971838235965313492247770551026706039841646230249383836669867517107742155533028977176960222993938855900310888360223631399652958832101921414584334657704896445241948180135736081384676346207424443729259874304076979552266645288029560810722664352443261646698590413414240907168660922005029809507494941643194090356240408907726714524698165406647697492065966111626874101296467741692116721720465308892469740446188897855115790158782089108210804624197844117677666893943340353170086917325021406221847178663064973152967457231148647356262096722394330321402237512651067825846552173544322503753500781882931515784026831832331574065042964453240978740940847222464261282184360931329327571491254839135272415943425853125391211632723160243730335116045105931035131228366697666030148712967386926849311264937780994018431422254775875712038963316556449161380730353507174555540720456552928156374277432270543862605015789618861637547855048068525648105532650007709260722026013350525922226504331513875653353294857332571246635042837378673442087605036119408759769855932479514316255734572023848337225570483349738248299110231583323251653907961386463463433356846161268385751858151112457718307974395251900462628840703904260716325022073843649105996260121033479620306609989707356236175316375789984849714209669334262320482675929602327094188360354940269004430047734802602093119688645810023408620397029160475004636067695389858240516010124807606100113618427514756439946836956300793785243521785290106702798622255536764209593368504356942504898396188607687193157522750613452567252830346396171117192995524108681623572751744293547435172120251595478334925646561650088863888281299721510346519935399620680154623961200443807878593604687737057649815305989181589132510792225156253104698517712736012636731029755558985684158123320295348947159384236939078906152646986570935099409501475563220866288246953259814592293685025733314947901939068495076977096188852117149020715332008026519136661305788251023646327058115940346488598440179677802955067157693788802021193532170961812108600656154995135156920524129270189236948177484744511959048148882785720621714445052777763844503829140452763313924302635148051532123785728034454355460993001355401201536928602573892361525660878348911779384603393430789083077494257866016236547672740280252957333042705461421056169511176556229799664484916543540897576101086983375408771105119824613185388910887931038982277812823414612928607778065801894983672426561863657156933181035004094477930623070513234635316140901103277741106210760181252734258697151706476600905680355277733411721994087503425950099715837440658845758011853527965864068194002223637021086860086736525682202334835765309814810093244532706234650578762232012332837479027316558745056298073117333273569621374147994862971505458227113942608252946948203914724315224194512230788575117025876247772543674472935923163385109578353564748665055200710652121285567954838819289519068926602159301828712836260153614557634724319315165543131524852757876603236613044760509996923662372822645009482986235539853193980721788868017711382452329006146262422943859489077070251647247444323914855543534516691884752808615112400781845540302454773746860591349342897584911886696878231210128114950630588621907326089007035561782708599221070832509799681163551235997208440995991800016903815490255638696320690331248760615486195577366510354003967859992634216956073686453919636338277082005940942583508732641348780537342055405938604403407728176377178307629386356760050273066570023979018504239240798506221346479730364234626228216202662493050253790792353730047789445795993263659980037480384085082919337037422605774558963781637410230439743299251135381271384430228401824444465713173513320453476426859684145540098158340424238468934496083080736523751217264130800749556825361262747916503906928863645040319909087121747137931990080467976835503760293031059048553349526146143865115754447465485009470883588156407256935894222389042598456547960936952274580308242037645256027883888934468217225521121929768975926212553536220309967456251804174579928184303702441276898652457236850534950166131150073016160872290011453617772677705340613391592700513154261381368883939955197758962776088726394170946940131356582953253550430850493209561393368459442815060356393450470170250881964802892951498577219267265839850182529017609478392308786944808027741179225351936627905341953828352780943088038495552326589965935096500133644710140561910303087404941992663398037417458259278679902039250103094993924714045963626402025263929205633957612251265173759226950665650426496225186904120625149865495705541629089640094765322802394911271786656553769215311074977968024393019403604449456057803249944339939109320508051862418086010498611985239082715971544999844027081035838496760558807611003968195665839694246656855641378498166057416584230014141849818818717003376869243618573342629220495241195626419644548042705503149605275374333824659084316761280486484510342448257606572536606277364006386312960424544800767660049708034316670928859912697391795036362112651129313636414811182163241475979980039319137378989952722156846739029911584351723269810261901383633723560684023421759583817213992827229911648016607028898150864101105617260232266961984686616227754118993231316821345513858772506396147143077848084251533115609299302671544480607842566547414932498340595984016156050882370512416265530389173639724197920377855932149249742675625535960585646715679353917812564106697195106343003382715822901357079691028132139737461095324962251399711538145873384801633717687948351011096262236918763960273171423256604616628678139903807368454613634024777861724142463368826629299816393921732213699343764991876960060488532430103542866166220020156859117703216292906894427331977575256967613233408303003642620251702249569564446440026435827761292020436421170266939034805368874516201047118528193797082477132661020489675445322160528385594224929768406910488763517480813181806519320697148005426250284231702539864572229426938191344017671158847134732917532961616826872597011304458152775259928267608633099384654452006417722504243322299691398829144264531124606409230437587616025678121362309140607106821080380535301179495885702279647832599268084945636785393945961304448961832101284809079804003690009543855207559773783574139237234287601549279947394146277517398116502556189640346306753541971171264225244136823282743178839456160943307830236348649764347078575467279645413558360079931323043719352514708761519297884798700459143900513653203448498297226449270748419778819533701017394288386554163272484894619587747740335840580727348866288301542245071947852014717169355517698367580756277755893288613847399166944510811963116515551095136146429650100488600024418501295454983429888456318119681014549480522141404273368130902114389926640587730695941120030564370666222515770633040216886896673683651171598925366531842460922820113851154478400763409456982314945774302371866328063904873081539801809192096863570280664885189882244709122940339255546987465695923049491141000519559335966145916128658511641037910089798393369284299929172626343341253482057693301959722509153823918605108473891591655749233516951632099556777024947238651611328212880518598658723784575206416214356606626557192543444372834291243078993130121158634438202181507610976894709301981071654586631015999863314525933163019196207310925411275731816352810922786827218804330789078988299923575820523865450868431579636541241630309248849783240963113958759756830494049714309510539827879506051082522459316050312718162717338540816486657152467413243221103868909418208558474247828065664773128373923509379517467668052935057162693431063690591833984815857508035973812836367439984320174672864225030825526116801908581796938089351272744471031276981414500979605749238282487619459624200805638633078587781565268558814918812765930322278767606892017921963831648149645263676042064625233913097617008572023176645132444165854130720985306033082806655736432080309534834336708854108893733430928700745537262620517833857059247451421967241765451978338132963630755041058858916693821652002012494591596240422420107246052740706857104422025598587526206018889141283589113873555778507092062740995756147841312216001406467578852493146168986001766199349623875601432899102743995700156567764507738684443613455172635117432918810001203379324760452025448160050657572233475926704578643837191926329991088543694885832539501299051021481073788583525132683978940705915943249894416487456297676432726905864866680903087581975620043826080120036295104966522107196229899943004721678000396551291999769037347490944008365738146458090279894814061638502716813358912713984884689578375391100664010791596990833780741092868878818176924022180912607255530239221582302669971036693829473417211982970836239336607017594515682028885951688915746795279440218574162355173114867808237392638098073936628099913114760950979953055633857928827046124885060076578157900625708881514903920581082502822554469616386157650392701439461990897542833481311576877231211620340760571512199008275550226048716251610138032194897699786544516799649209534224695945413549714510071703732541495522188615209894002083983936209292590304176181591598523559275420520325624675880452203582756863988930178946850711172586259281617033342909389637187047186285305342287991264884660205024801531086786916215658497970230539928055255359027657279900561123414205902124955881824698050136352693550824871043739343422671418908478920784107497344712296083630818940389541659384875405823864503682616414608658915220227425663173732370326628622267708898861165936783862247010048774686491227991995847048189353316478061603231697842000899422433844799641599066019103103784016093679518733224231697166195598010498993032242655440557726564114546340122576404739260282043037198039047797536017515538921631332073216590394642820445305851941372800343413784071142393340683260791856947622738800254477774403735700114007572316018387077922572153287637888304146227484193643837870804730050415633072958464717601509256677743790342886577257743768634422529531296531214935995074269969288865008932413774824754387225418166942424548908357115767662900263483975935106278707700903274644147327487349404134104530425979975643132824554959898489157659448820229450333617212178553372014163597689399304850954588998911685866217892482306056527998685013666050757238471717109771384371198597829914635164437857005050592163800162864988293192332770054490659366539375337582527925391507565763604864454271448719035981933750613367263661478642929896183150380611904767380881528855661967991388665630052092783530550724287292604835703056733768878873752430565014926873004296293651221140756248872316951475168308118417735400209487912116875290543282894445911975768388579010257542838369687417228670115003757435934082325165015705867162368309531209918412593963556945993436355788825513200960893365090141411707585577554240804392566775269621521406664352645550049352258852966628329779241215787927307593751313279813794326019769274442130823402500522839859947691433551379331744827961855220500870124920298153249345359369442007371053120760052763729395965021455273932245760032438633948001095433821952464964200777960998722033737505652055261734495366151681673843069881086525184776759324030975321350912729838967095117015584186646673137257288343049082578334035285983455274540008650735173038810242240356891599977440601760383878668449365115197686644649921709277942375969548234377214113617189264229698836601814591998194188772845816228294475042244853510286848052776573255351364135310221167455403287705176671650118664896617601607392600927029618672427816621038638644266282886510218582441957894160033902096477133960626240487083275654831436411702927907907430800330941382938699244357232889291574208613822745015318927759043657407711848018619655790684098203991415800738452970627909673310143535602522262111112798224443474201118673551990772157508494164392232848872820692683847835457467161805796823260859360323250282210661186145430778329481319551998203559461828674263435736855847180368531420805105670697353783729311272665170796130319745129636446069410951070071725404604302271286289220621981340188308506956003193992112048784166826781396128683219971333344352655459512979576508939513030319119462581258475821136373371588449750113500919865815990609130243342609949356041362427469237966571648836528340190915726834091944578750427163864059201690522433653733210914873955825505164201389978651231741896333418642191684919680103086918476704023349580034730556314320536834415481789095851759137794500566262006464672839871524692645030182362110632417899529410774086529508961222247526397989807615303018516415984635436793732356752183319031602453859211858193848415389949894489234907428538535026211758329517681778488433285426931754500851733815734863402151693928727062293926469808645503381565252995005654019586165849230658082957241381638101478880067564615242673901443694017101174458837893086792330164221503216780409006672729183261137720790197843030588782740744847660497206604235963727343254326946778663023664808765856559668301066753525546778208554202606602887836345870982039750235488196952829089107391200154020300976119755728919817343246938303982384134211281579746072372327819544585966127965816936571154122701230976441756855698912861898216796056020277198473896368966573961282984361474483101870638940767698457635465472144349105061003149678124876233638397054244951177292437199968290153576125333947555158383063163694720058982713827929370402980979819907257551816290097983787760203479693163159146652107718783156999164366982419287783337285947877956884066543228943730397634274187381716266913658432199243271178208281465254453077795997191897171306163189796003675024514689462680042766116044471895178628944718312394903258228123737926253364012547414531286451739628917343025826878331057768700421735854066835313902631558377029185979128263960329371176806942902717615069227989754687669403687758036872300247456757483857815419319006886397783929552911325147831334876690937957329749821310701082826363273022375918418648761408475010979445265362709755248835521954831492712702425884258471455908638245577829905840627628262641754635802282193317954297629916456311764043949233042990459797488320496106696135053763835029300855371215329208308210469000467088493048935527261490712620423598728657264824131741501722620510656763935430188311709117499388886899505329961184532788317428793491702689366499082154166303899108501517339682084019074860181239900137931189058733192611538230933845545253316022037803557631916964740845800652959157122907790629864487680169993495878281268677757056371595198718062341693719135996255513163396833647089729204176326354945305374438917215565072823905602915175605200252477560638018386053521674939151907320053843353257487303797678235842627307489882559143932948667750169493549202047662744995437577485025929088534622848802298882361857072515811326933757312128030473161112377464132252266383621570058913508273953806791416627043615482039991448626863334392093719901125673004714436472380432350108717196713879518409535691227987028482779405983021141686473854993703531377844993354461860986405354191503998097374946923462302267021902008670027363124294614297450578011526014997972092490304176728134233338330699432968115941054188346239467977272028012707672170628603170808088487721549911337884384065677256527663551788002485304428443311184752673324699006975315809849900292219288407386583181235631435341157786146193168955208854949115300624319080710742044328445457641791668518047539853482480497656325906932455373023716768588010561067237045063605687116252281572718548492729927843859414284406399349207006179456281099369472911453200864048226391832653526764607709156112892468943408072010644092454481361993630358862626017561737188651896038591989765854327469325613784916263824887922597415320910202940377519503875825746233167029646364108980848735381683620507367872234594994622479246805358179967553821677778197768282583503308366193735421801566930772683592608506217549091518842119269672973650014062737967143483262919186049697649861556404491804456301868448319516169747518561255845285988009238224859378162934875809573738225685309171621562611953953877948739685200787372627572068225758056311571880365342393073950159274627673038734075312257017237052209118659738637626727061748209269955807001274601160447460163403537315038375354796408073745024726785425838987376738497691302242235497853025467045466526702442802088231719018835389012795811907149787060466667138902410938136617599367704533513431812730335598638801783967052914520207330838455702140207744540578196556115729477190529366890500190110299670525924124800021032015098262498701138504555939529881600946565731048479866568859941311030645552569408402169972922840327135349345435145872384487483494522405185903289533816352294819731063311243923017133224831625729577639364790147829110341671986783638579962285063043423780952556463192355726457240702815701050263047553898171672854211489064553399394710074990825932566625067555670126668563807400141302568389492201978273888800850268179273661329350692179559026390932934113261582904351868751092131176666248031171413359621154736257522594818264041652443788396938514592757732204883566926086558142676768237396500133037087118532218683409061170472589243403189296050465711670543914622357813963152162902464252379269346198092831585249852488893657452748746696495178647505680320633656223159357569379743779270308911241607451203520950929713760566781091311177621766941147303336138356194155210340918090354319303735387743209156681178331668555661379376189786165325482089960073719370034754780906626259438151296557398303607736305144502613346720781375146698254549205966028034677262763667197732306626213909610567885852093537231652120428042027854671399098122155146393268454926733037396151185867456284350491664575232205968634665341272190956701643573918457838904138920219580607541936207871097997849427490987501092987799123052876848660635115419846806026088584122023286205587354023102233875060285373738980177663508910077792086512719459501309950370304018839496986356832590094062925940503974146792855479478928722479304733790099865880097128198361244459709159691768049120586655876174537498345650651219528672680359898934354425308823057788023160825204122908908932074991898073517028460386615092883751339850909917895902456597246257278573560015847547871205844168725076333959834621152406450910799342643381980003665824995575792975285159575755123659323541606476373198860156660881045002764064447309508579310553636572818574423876236559570094556366206453772204207889344823639726260330161725895468456890196471715755973722272122413695347384279187078244211806736259994798576760945139815583126642860805076194632444434451902017565205967632415512500264433338766636199673381746037969684431270843626057150843973632450155596947183656302728004133530577551039680023761044140924484992314435905952089034148580833570531987992966030534080573463096163024877907255756987440908002324498094596559877090923097501646203672330993312870080536326177636679479462446534496386990009683701692408539546583167906883949204709570759771698946705783898141614067622505755295491368238289098869272083770653520553209124700312099168408852722769089205884085579496771402518132982449462119760081710072625115342873206240433855857002504450736833230974486345606182288473518368313721380261784770887959805464916445419346110873885734911330671271489663937761619546282079263849029787164383760951145130092310511444692265274302854426649219782123424391850724992970115659440896659294776970575108339209498006395534879515677902842531618212727487646191926991382609494444831397140145044790058254905099754815244321449711962790336727000115940821266268387914764933108099935352538243061497891211841589386527911475279271571251832862521671663102305071055435767409845982408734406863885383154911226085410517985664241727861590958292955958372419918585583100516852030448875016517477207867324542860757731770470579245262335285017209622523238557625592127480336012241728785203568026364924556036927192300282615776503106851861687924617387795680250737859849288953521928088095361383067635037363643003678310770401753890760447105117657635074798548316813950943186202464828462176539032133928789147957294191944411535010022790033578961315923551773523939380930308009316702146783686554910053356265626760274717269933774221881329522868533011693839238642281518314844398131685873546288668804413717694315797402298788739463544110922725851336151368641292060967531777534783959261329103615929266015179695741898502870014282894816002774562795485042803133027975471871089227043369083087527296310201072316761954353721447586800300391434451993352487574344448776921582220303455580305915672938441486047809493221118835539997410132766272996402385024440274025918645353059454125383769208676013907326870315968776099821516927871491264737442747867742446536472308954645116160613568750065049327081603651715934327800314151102251963838225791516790500332282996963990202128708428589328585427720908687866000194355461073174707927581700212430357536320708030748994310511686519295048582179852507572990366265647437098387445191528319152001985497328730993941955129506477757384329306139282510252385859619191025441030066015412251774720563266286325028121535170428401938704883697883828286397258899704569515855365575211994514231826732002595178235904426765646632649402269027379749806037233427623052155375135775746692289461060537353320049531623262772388973558659246355888716421702715621255859310236714532696467963557474458905296981410180546578581570815734100751064503638292132508370877728833426626767941961888987538256436107467386781533271921911819994144796579462962599302842403007045576238902055970774765016806734824005439874302440830527504264781929077985244495073819809655762127832014788436538160632262656652913858255852040423736622429359488915547904136417446936854689035901544307824236448850057608044255705264101588591440926938697894072087591460361937077396019782901359110234595654069896484045910433210441713502948576900097692639581832986235747069835687775575754304502566150569334276257892910941992326789171926461520933514715939625313049407695739685206836141991613957465788558342399731171445260066428180411910251226423502503857560759618647231057540756159174482617574247039579417941560456087921807345475957470294287653820190858268658753997551462040455660502788988238426845700369196581230773543113544525659508249173874561171582678728792695238734965613525841451397439840600603131306448053895067855381259297505411216018279293075373209538091820867523559292745504697280548558293834478690016811022687534222762757445975542639671844037864282403255164687585649264198051304801235071897359668897165347730550011914188828996989064504506747805244007531644978677378978607641228328505971965721726432937443156663097974563677657504970577024671816348941769649932003130648853091949067050596024917184684298519666557120937690759602058620268468431551098650669599482077012182537318702509387592860408793700080553641059745337022593107702155448391004238217383861886358274150584169630337222109701045663250791554178183768548662099583937558669074099324184425767221631890363263516843154085440918351415780155794744013530446359250171423388295485589690501880249353892363779333617579027052428839330693217852667775199270139661828226604308988685558859985129566594228607538374389637236879221173180331208831553270862177508713301160569079558587239619998194853198412902499028144466733434420936355737930540732348335441324297440422952807132561247638234641180079133682256695819077101562706977808937975075673322258920320498062430358936741395156417261063873088138774433883968375102771472464594801194716353285864490798035582171699795685704391369794629250934162641894230794637140856561455298392622507180672773216786885919746038679908901150683102197092566858267877488768821828911928729065827429351363126907677292375961397610965410433994329232178529183246436713939956803351440524067271025545951642237770709791968107282234377961050198492164358743814119010637090717809140173969551312763997167994788756309430594484450373009605416185221494382008886043252396128407131015762853964911086090744368849633373752591421143920333590898314816178838726607960149653609471275481314538146708715714267302174496847886405239939736148969027651140612362280413759955428023576370540553977759210208536876488291197773232606876955491064808638174678151533487151247099316438766147061626701177927193088709923690212792945208630178805892958160158926096850724314546088116955284017354611295661962233401024025154285364843729953463220418987016806803553063543719814683057399129404793979101225539989958897733649813279147304298969104657629305547066671519114510765658160309349064459821387640194851546873144983798908402565693149989476006333023276651890798355919873211199927698984560491896069059275658175923427901881720460139264095947809149809152030324413695243728330486735921178467708653754171917609611309613028382938465361466783094369274746132929021403972381214186804184710982669387980263367894254868951338739027877230707276034569843975584531539091407140964966790381409180279215550264101068218089809216914289721384627768797713079727834004981388195004100096755673424364234812494552384450228486299442635893507559185544355591781170062864591097008993320692382986094070002855759687855322867370623713176188568722350754633164207887002545382211832230977615358168845594638271188983473912213372731558852407614491721563208599600393395649552961841764314484088651193434137951883023007084434436037960515733464402074881742990861002640793690735033778373489374527872062326551702774544814619441520455226149700535715394454394682537686953448514444138264999237594005616121397450180910632866309789320970841728302201953723866184530411258546097690363574626330657122175718994989587838319635337148207014075791311308733352426471843723936214355394960971807292321360992949503937008823330636388905274625366731853988099085479194478285533212741474977587900716457415608961761210265629903761086261826338624045693392145633497512013506770064213625304674865518721203138952611765144791465644862912473399691464670337258650497932870590887260642834627108860967753664675286714789970144521497427940181003819506732260556422480916012821505183538871918112933033828315593893537505411144313152119963141052821636631593213121278767515342581404376369405466772569683730324253992497555793886786888093078624022437125221687493679810722958654770609054500712417322254896530907248795017561542510041162564773311723027976852972298788824192228481081463867331311701349539570546659555241649033738980677778541844886257621281279414151027987322549425658172168111290808346220357915737786720613020357493511284356745781485762206659857556373412173305582251906818820041452485107438924690741293209377820440115386678768813671392597458460560252815371139430305343691945475839300211189223684287591079680726737916260154560775470660963867972282643550472333512757869327009003094010331797052241090762689994949750205622830592055262544784815763963050542732581059656046745107516206360687665523596021410120176658888464633454391798965987393343982642637929785736138686835516437919347555149114030331771903388277167030873284985662938369936773870794597151087972448527889433208090891176466780356807303510721138927579795240586470989881154154376767990909030328571869120242704313019248491402158008318322517635617096648360083884837975148616864310575166000169692946963285391006374958978129304942731811578018429768873991466653002041330131330691423987379979810099020700810027019961847839145147816070101589088601194223656102715164148398306597759136811118632584690352096108308695834852747344782250065849994943945422510203696745181036152649092143990402861063839812480967138232746290709534960279986088088645987743258903318465935408267429136977398363929375605847373187087214523196324441595895453719760839067758177352175924781236820932347109782549273225860623957991983206369132778870631612332444612245078680893376964617565412325095028338915066680877040880613794452023512144129794537047391014833473237409201369720388454415629183464768009295251107215497648110708260848308790000214182720507508982504990810044114502176035781508449515281253993946478638088019477627544928783584383218348028800640246301192155980852846696403202173282138307788871322585897789960439677891667080363573676579353839014442752247465570390426742116180339930264391730316191538474518960256700114987341383188259101186416793478786097737633109100064655517132950652444726114942871832822399527901516555533234788509162259473866217896986556023576979306941099744888200419541894867654951259025688882770077936995845968660324620711375855481457582907172104576892423700286585151336763887557386166797380591613244226227016965902827621485301176881632482870361104713942775521740737560803913825427825259525261371601395020415229773222703455482436399855591921015161424706485443039097192781389724574876162782499509799834069319193169216063636738497151139989806495330745223525316889615792653318313905897943065674890703358337091891989325143805319020914943557783834543786867170219285559435439123299551234458330606283539673305604600581214187343122842768937502404386282421349991815848826799711408324826731910440094940554423348879048596024349595393675375545244428560306391995963955344415892211773914341615992005981990130464118788628631375665220121178916076981114503792137903545749930043287246081382244242928922332513239052947612364816759383420780139960252611823974864156525844158101449506323899163345430429232077813841287471644149077692092576833698454927592918861607328836962396586212728050912570092597039951516279577015870922434548825345392436385858115714952415354288284751902345729304627006313651984262484572138308940339406025363146791104080398758738814487090323123415634982509754023439163476203234398666755350045042481554429437466349358828466865605092046814845966728671628905961286127647690732029626728541530921968004836941374827053562483728233924264778182583981323837108967205404322319463786172824581966512480420027311823102228052879413152630264502964240412302121008083176128079269325549747111452678802748017705929977315964838766354331410744639903158938643004218615085352114039372830821845604102505778063329861055848936150449286200865491823315831511810321417588289611144180880962229823695784612138152207797108278561798880913671587736184503178883275742776745991044599735852177025124163902344716630459898411112708803001068732505177950946513115299004354156341418077532754190313839898690488502548203532886395947272909593312430701553163639153436799442658441624743344662837641330240115192289535203693376487727951594400183456341346885605160043921851665040113629635941497233078828304712063498077097785215702627964740185972648431287993409158992335228557318869054162054840212981672367892028600336378149469403930463647624485125805747104160001129821936703982482122415151700164331274127937157100799330011899510379559179742030753121513744384549627809850681387970299582428685345739860797292690797467449305714325420848397800068790280226664953146881798261682201493224007292522753631475717791899630870437517391646610199868923918069474845383266514187518800661575603786589514589964616195373679352608845619127481632542352918388881009792388751376920584130986735750367047733693768528205407458593750909547337235740116864750539620263061830758510839684424476971366396395024185309929910948397676827868631598777599927838203797586712235321013370531115686942624146249419869124153734044903341743708567199083365278324220960909467079028636061080691608656197521166019553072860847404550201203391642374544229376233179132817067973370252391135681880325200202901842717231730888018565380963157001231159891610865646499639692723698598425605639258272364724989646210935070253082134028624189314458056758504564491440945593420135567593068747386246530530696946358968745184732903215682966116912227759516862427514575137441832685885519700052687526991884548043926474159188822300655517468742556626612849346676321727163509218912664446468730197222185306298324742241186888365851993386588017800828735729628289912115525047050684317825462697599547132999403552307971705988408008715604977639600142087615860448077422287561871438683626010607014921984726734844050247459415160682271597623541874838315230294189626097828441645859325314179162043439288399902830103621713518924663426828839241385741839796684728947856710844225006047916687027165595247349427755426882376966373053929964743653062113660175352964668258715100142489609939207324117668040819336969283381455705110811342119724269745353637769118721262889514550691815923141680792755614841901696349593405338797809834976326243227804014003094709793720825596278888959937101129289060989026237126586813462117164159751828013285350206087609411009705908675400933562901858185448452215119704266818134948381798987101809005938523076492575852987654368985727407333351080841306354487570804310081159754890331628023076712248727487247373408819179736429011833688452576053669531044400847030014372210229663218291758319712934950380349088815312975789789298153369734799828360322148794457598467512232735165904720960695776624920732560105678037308567170547701139083478311287624604026501217855450979748272459858311506720188865716535707019217236481472476643261546977420571774576222620831524217364257790449576188512154760866779245299634677753583493793876833292989875307671090008406490021154176032936898621609305627394571403302517083726204470087568669555652566041734846585127165303272710975354194243888130260967135275561231082509909184832417750089669370842739520524079577486849279869868790981782006188460401072736906492829386262481153016785340180146849448258128271770931929412003152844455253301091233744987690367961238680372593937248767871771118717988387704476245900690614563962173927006862590280900803356276550335484294286040062753313281843343573184309577459232626039562381403019830015797242227897836994081588170814611224596009525936866621410440918003126394902131823339490715685486641839676003157096210354232384809878334520161961044737625235080265360778794019278195146197735472231797027467077815882827001010190825955856645617693939913800989532544422604531966151746466607083997928538363142025557152067877233124586568981947677105706353597740252040718162792301151239543836841282426451415431044295022529657927808429187429672519996216101482657095132443651400645286834742889639830153988409385133875871069053023000959574851684762350838038075301202554892000135308783661649688468605010986791748991594492410889379633856726620349789483341235272772953460763652367436309768837561816481247069696712478905810364509629626467406046018304900991710613351289029143579739485858925255399734280161707389492357834707649460422014715547029449645695550040524254589011004913734428939990628908324430775311452819988091366495174549903185169061072280050188535213117895928552119923210406878134640577874194253348700453269250558238535341859464943450936821608615300723067159918475806078247468978438721472164915055349810843239562796473239515050812649976729016623635024086196415378817640643369169479202165811426038887448962482916418018430022375647918152688324630307755866408493957815857491917140554209106121285824536085279131424246932108809976644818400664251664438138343560757110550554096878201797442121952836924675790255211997266475558748195789571120574219680289292576064719007741307764217671078067428828078845709483176900332485453809653103224390425667875117120007031275026628582304448943640162998549608899685502433785561383416026943912119471284723752011405570537004105299625878947223746452163849552271281062324220196898304247776200714057951358940770412902490507145185370559613737374563670201016812282745515184571043747784009016038983522813578968235755526797525498205025826607100090121723492998791838564034699201876481836004005259362216823155818131155553356314823481836026349335829033188786344695768401777029226838630362000144595385390132197494376149420117158524400752585629375875411960552030092816138302341304637966440760624323337598806782639289465882172723994154435697790032715116401676103821261851317955433335845932878689615275787336904443707001845270710566407605313938090405828481268957204310997457585406089019561377441171711917409006607788229889969702931128594466273826904817923331417681840238329251848822676692162616117247505107712937439935684076785483773079769622245702874933518063617299678091020928047933355450292196486246427960771713626337442267398534570612954443246335033737859437146533873334693420617152035389565619618258027911366809890658978329602663461904751716352182849778007307449870526718784141939189271934323691175596345019220550549163435733865408710721311476685210420083670718326001522554634000804322291474429008200359894665334166000232045621043792699479919981870357379484116463862090754746793953939450013385393897194722968155957276351312721862589744685029431474763545877650572328901715161901616734706890763885593321648947911956587387317917861828753539731096630842668939949272314474011778879936552410466653711859670626635670141021465020220558679029232650891143249538109418198610127492287742495478563434740811523061073363441179775513920544236038323167009340124885546149656125497194272466385471267729082006317771702987802471230690278043357857083466883623544739234317433002408413949711198317875799439915956695098590910777766759730359238082395746706455901485231006652832068008827866738528989723629950659860454987365951066956928889189782455989245107060293949606201939206355611294998400154190394823527743265116236952171920683195434905106120255068588647557573617315585084361027880469391348661434142210691335514442758733721507953096359478807639523095751510161433514383244858729720806488672351002865232955218826863152507801089346136229925041701215395186544900630396222292984669979572264368675792500420451430520295028085133703855528258598624499336955232304720609675352216817612997888225147911102030071381271010666209132528821318991309689951493139381886572362069283921319122181529606955717414329265267052286003371635255992783705918391250830037295491666939879027191513190870704754745409109932145242240782318476197866344929659841037990207173704837318601986262430532436238202630424255121075918948686771817618198637514542643974386415729691825859574932156148864858073926821123571991915893165432342176177986737343526672475589752975727488712226084568523740852416605048431363197135130101862985291889621773821083838616722237860571196924977278107086728280223880899264498636099791819342293361370293475210401829421780250385089225579916520450626187496492324313002426192628796416352434493964620154194310678589043003115443716408822998206146605691417084076523779521629810376877366108201273503583109798025815980062453376398585098591140515620295754040599583498434023265375749607836860902826629644628246926433291341934300158277432913932123132993003699087353385666552980902947849025211760084638958043463714258061668784068152980837550653860797920365318122725882748867629346959257380116415609586512233422546349362472990823382333450523259030238925909565852912111816198149457730583227021609917840878135534830834956623758079563761352867880946001014893234526077015045338897573246162855095741382975248420061678572672672575114195119437655873914217490258932024317790751677873941519145830899315131938237800717592950982444712735327347095382682349503133332546634583946189062673568028402470570493165412201167760182319493778742894668625307417333176229956227665546074395791295416913082296511906681453659294531981206855477458023641906586818132882117832564057976037997231173566551020006103444012309479669357713371513339093021596157633769294747943247957936174916848781899268415164991819344541051607701775501659051897733011744870436405606679808789501426401537315330227090224109894624796225158368368933796512509907704065098497229607277109706002284125807127228944095465738007934417086883638100870993575564788704455864486385130342257687808016549382934098415513207098882273870090570788350487289774633957464442286431194175093737123277540049764502970299206429360382485383386230318982847534379238804419789988889333182002575719502612558134046357005284845166749526243161692056786483243297028167769225563318953050102478354057691451345626855852768928317607340369398318986118128824945265444879739370237920566441585356863600893473431846190711388610680193427259778461252010480512018688305749339044097239862602030031942076132073077480856181651796046609807854078759787446124168286849242026560993154974884641332047962214273347990388036906053342782109979994038592719134981341133726673800335897544170014613173015887421775240451041550880462602936654394254007092415121303925401602023796544132935022665085232438493442545987079455530687754202579993542088145527395295984354343738944497125385172451981598685380795931049845749646527034090310336613269487222994048042471511859514584488321207516696635956091147806647913182970628096833827708364591940582340967593879647696788146472369689149320705145161103439042911456279869528654273320952055143393861774566002604645264658587330448367472283202368020345678219078742132435536191668311512643111207558195304626727598241276926937951112810600204755353796478279273938088495278096770270439608368172364459170987927038497676504439644559558696722464747085051224432528395173376828659685663403644274479618875082650559795456328770646654502571769661948831906784578224628144693795517405675809425211131135352374469790819041687168799992822603252439710076300192209129638677749209236510625307568512248759053512799148841184864571138097747841311312209017246499878468212162860443000111978571245959851887743260636961352517383318908818898551560905723900366189763943081891299973173510181944525100787556050634225516368921360977146052873398303804902102367612898460502077758713862283066446558375614872086624772277757601310241927835254356212989333255485650453661378274349421606972718010724730057452416841612800281177384616181069946542557130337030106293434031572561071454275817818099338993288548588327159473215771225420331172533198827048488574378817379742716192311817467089127007573672064172679350570263485856952563847360131279316599978807105078463309492342868487096895040449318360097131669549604383105757922969124392101515993733148552387678850411360306292901919199633341042062822371540936066374770477535183332819680132096964166462523627749450436117029229448126012114518286849673422714402615922534701268240922350610919390562227357463060664246290475234177069081824950709763749747264328119720827250264581396898802803225554371870422797059539540776968417535422459630108669272810717861343093804560622912237459679373501472736078813303866207806039540164579843084584777526547470841974718743633717006256331173015217939584723914305076449983658742265082564334214823223844243196433748040428384865812948613601893929286507247684480321113800222429805898030985168057491377937939828730553590273578835531607638524525692261539699471613183294965863106409477633252718334736038552833087545383627691308711212472409061782658970564901196858931339269703760259176083982176065806873826650283774670365755193402908502287094012143825886965170990166119110365989826663156432567549935583454492913146046021067626540946233832670911126046451511712209190331542457633812637116477944159732587496473912490945066009545549574473617535599367863786701067929551206669291422239234158321997349783526068388970426874820834584271588906770119852867160237421612901513905782144821069937642705485677986065376806232832460656265181038351568418424850838939190544946697589159899654265761515130137963020199976949687523530526539204594487386243493416074230277695141059347715103199917305795325027847727541319343255713241388686587277976923906994433886445563964040443286877085688726555708047031501276887030573615587660579980631119503036573875678535895970692966047872736456436044919793894853907417743475287464892207229699919212314610501436878876023180332155299426858785984514213794002452212289332579825231904590570715848610841112009005059676843418486098654616034307320171784322231843734144079752980995618050911404422547881725684839726890059201922069395370887882592856766437002591958013730073152304436605928745945344272143866846306733646175443796727656937342947027600833165341257688592411141888212212691512917747323445161401623877046795550055154453764716371574344025772795930006115335777961476903634987217054755961900094795125543253598572462077676952365201223190066262344684023679536428438896568469785398679295901634463092144094705390398214537383255996405340490172666259832471131332532379256484176443880553684320413911065618240647452185073147456710210634378331579573299520926141903593585290014236441968203820706682250455748332143284358802346926130970319093161907101785651679176066476672292097482916436448867277068810919607681101186751185710761072623689980105585760632330778834249069839914999575089482507351611325375864848601620379292277705984310518219766879629838836497927801501482334418406489568883618878631707681606023877986054059000223251650697559630213722261693422167117494646428252314611573325459666458936427350576961305986492092957672165423910895776116060305996117804748795572376423437353736309550259246354208069503299553330539620270097564937506949009250235435279187715206257249270874919334351398912169419612834649782605493371732767367095443813598272987441179970904435175752519055179576577108935889755323236481052575497539833292111583388505622406632898408176524720737572595909737511782596935420782497360584231868686015344454535185478750588633466410152480066539202145215149712224305926093598738203514231773156945333973381931131089629565446016725435425278771023686328658226707982804332231252209222206662077321386480041273751827577157797529291113869514446065097327086645704990624260323235283571673460571132280495820218622829654548183672397360656868392334627877680482183865441014383433681983907212939285586109546722046382839300249399795202752684292353168423411071568379202023807998554446374227675549573867133989272237197285571142607405597683852733173704175293961821058213113217662066891923087638246005783718200962249081827279643103855769456168000713355476564698569478845749369259472796871074149688190080917571756171435362475432861804749087484776101931307383997941475780253939015644213438268025317214225790784445402180645123382206912914662300456908003313900410342973701206773955216024471122188660143585217909489648921692930806781615249860758597760115360042508317076569959234185536209050183105529520933641104481481684205262085066056184962144164331287721826431785741549866491487173653404311654570548321803372268758682695381106310891333336056949364391475328325869617323986098528370906365048916110975100695527475898612888580536993146283811036374731927361567367711198948137061451231326284674967156987965551106164030092997092459776448726128051078391450889878594563879690335310222001288651714848595907058731398525684243389843544963365381743651116484523237207111351890322467623382495653850159177597463390151938878956683739698818953319593517725015431735799000633734476384692648367568377326326208731437658877390598648948183994510281666075973857240985213054846209951168851001897296985308051678258691974999501830527227427726489343366952732901290977384494790885996351506262949595534222511419466069809221590361811232925429861626539572285490490799810265646889551491118733901777736428516353519188061111673079631791961559420583302053663494104632405997608601105023209255371803079330073310647419411805858049807801386087791806875442579448776359732741870441232601433722419676685830471688814370451298335328142992707275247475559500756124865096870774706531069953374003096902670736407380014122639465017136033944805893212024411607293249349339174211277234980695024747135067697495567262533341180164813677883704077863530397027899914489691090786072010119935374825244470691553784522738969166793335662469207566461537051903377012841231227889827194244228110906684541105294984122505466406839001354534470508731783018805753004873058258804699909354071948268481428061000168029864152271632536280390967971257808228612951795773227057479634952566072265845646183525483753186715966576303497365370925212670587541329085775117430605730895355714521058535283019190137598645640178149682015319784097525164524810400753879326041824863637798527424483999957828280370204992891103317552267564562283210031258913580664989619138151527295162420702302649173111385145776170632314763415810259501620112312165255118258166788484904240814357760383478138307170220837924196323164697409554149458352590663270344282842661125429308614351995748899604826086419555781193639708549188400489767676252668466732491702010440247597743788627029679524731861193763559096782065764192461995354730705710999167090486638433186971309782149748364812859640630015540499136131417881011042880836390280336952051498231025695254380031326185382230632088128227994465198409774657345497851166113522082894726537617173503157028121817394455934576871058054551694263617906405807786918515832083687654088197073713873263531837040727622880093834189934254607293275710757259095666710212504798272256539307949910408112998848682036558285190350428210889206535113095290245953368517802489194200006417654661022236341031746201288436579453095880537602360285579618960375786244317790810539602879490082703049298967803507945558574742589424258602646386343923847754317068522032611694089451778997811224570993072885629908159137358546651376727430776907688738868846835041549357441735684107082118101356352207661811141598183240553578634277447594015338433763393587046745670250432734361284817617826889309427296987555181146138216425312410026020423572111362714035581478358210874659512873883337064014439253494816208182428416299531976876906163867662262308598610098802225765409973724538196010114452145175891071868637755440810343328682559889618045544467894605243924028018777367717017842991904792824571571127128513896308646009311790176766123584191007967267548893012910205105383086262880993366213345782224698458312972803364440533189813360953999235166877712460726185708633176859306495503828951841967486004223895305595415389880614445841622988827488504117286916484959701907895765441125894781170061880194458156641754938323735038993412788063108359789430387899120606719124068773939518788441333289791636831019320005809744083063075660349716878298589367259343754500182026619166204376056284876758917910213731488567306444177099190037925155640199805003992898162666746187453293602695209102241947160572722028710997970819839018478728282053229468725490339417656673347561728485721243940532910146040823209092563206974310203033937180331785190998657729719927859326403028298820982508009291767540696704224418912084548314498155330468229245267254084621634400959185619523211822772742244196819494498989849195468557320559576124630845679233023109756429684964210613587259555475733858189263402742639453830936346886375724943910015365088295279343764912536741970177877259930059472875773256372303106019378547027467366023355255339917264618920841295388735399548424267050581345759187771642054673362778109946277709921927944925961789710672803993454398545372981479537138392047456199530668271510266249823204781065124432770708608785694956772354449830034058058290087735454644911835198778600504266447474921603365224037469953496815815964903531335589790020460001106298432507891798534472457743048916993081525169764454330061051322143484971890523409028114707738904021952999918155350416090239099361611978853844357321503892906562061999934035718967382395386162060840675945714249080105038478372539066374280146663720704716558872698656398301091202318905690023314427485199549646944316283979905570611980306040609843221947820681636857671764352452462070081230499194056311643218239055293223063358524969713517656274120931836122227696837138599234361836927098803771370007820288916759830941098228475749154959842082256696125883666419101792294466372503327418938836952203704562531013283420924932787760298699712161119681588658660641404830699670342359386460874782815357588772411364607472407861387202445216709867394805020301106230911418749778542221749300428425022835569689219630231323898925860899901505977116494694063394779783926385621225204891976196072793216529640466940697169761000778733636987276443746379917660738882821752619382074692803801434519995006509340954662327383293561381970963819020878479299588770817198641358843614621785228996736264842311041722673064943117543790450719384791238031723922042722434135856639548063323165446595855251156878018814434986504250213244364280995042194491847176657391427643579363981043261454757065819330682286396953339428637427875158451729936866496707002603165958980706094035063622733161247883385084987134260654218829230093742310055035026263670307867849298151977358258063100665309390643665519669531105714911439386623597749710342027412150781419818619756881826048140496925000928454726531907556247455231239867004034897893200391210428153982095990354550968288546079280776345438273810489190174260211924043283714384973960671717414157975476409713296286443400162216723813748280552478781860789591233406851322971441959324937365959098166295930768184036233609689104429994517145266494976025545805560879365481393980722099473633356739805109206191868025489590051287694832338465234271591446285390423552324639710726455560457135252845147139674274845758696919465837816144981491567042564022656694045378705933321757706336527873449654001848659192193893945031746239871730422060285148377877698236736676323669692934833259800294262636223748634640401423541357911740572215235592731951500818296673947688740626221077610369792189192714844917683662937626210823060789182708719071641818144717178144848180338028246421117779092937982594165215611281035437778447296887768133219408364086024744971688019539073700272130896903117685670516249524674034677894486868131951499127623055147687900783736643447750824196716701542386631774572027225983650861825101443339633867521172926824596208019004215614396143355136602752413725230508256434828716584617215091615380409365504371465102911346518201664203147905002425735050086372543070692700900211279724869495070605218490837724998511364922121246653213649727195932329298058611737917114606304109839605268422640286743438165003384588070566929797241178182724832972708789766372240960145933195536835346380306672192542708835641960254008372234939603552913471204829624367078415110790965478310080751717840100935638073134394956017128870395792494044139358479213031615561466946926742682456427198535945993315719565486698064025038866379981870102572418319025925310375687383465936017058511905283245232323194567952676289348934659684501404835081627896618013058337032433392214344634825753540341750724074355708269318778110576378192646949114315753469073456409284542528023549341371290151236535236423128843440058713668320628205296236883286740099752594943865367578822780495353826449442447858382361260798501174417574810243964235855830730262343267643227338230636547686742749470072750579163856861718796969883545872617102928767878998211499883900225815922250909148065116750971795441404164717069505726422762214931967393309152103295816843689868460311339760033216339214065435065902410941846737648590417488702361383199068853513446941617491211977784856349076924741482661576159518965974575772193339496358887183835760022568309449311970172018918759547079660182271929253520015391281632007970091934114894327865006359511715463049226270828121550908323910579458867544021882488981753224232337678750797503657825326745758897502865984679029470637616630446886457168991240752489985492423556683901595924102032781486223381819943683658704322059442037846996647121946656617329664572479617259572404150214075884612587240103616784715844583254198391331263349396653281393045969734209803786212760492724078719445453438046946555212939422791072426670384932684727653902308566976028876146627203262346622067489629685900675288440415945774128622751097554593452757813590944105378696772826302736191693409960686669092474585145908130811213605089956126833640546573154722974318088065087313533315589935926713317803163940296181873577710655454628057443928695307515682771531234010333822388867189001440052841874445991805944770468195885446910068649588578137349335121697606339554516757194040629435826979319788824488800953954055978290147831989265851570152455646610989597075475137101872932769052001526118816063850496832296506108655245581892109663718894582776916245030735686366745879352298365929793620194018098961603607598491684149515960144085474040566046639659450457816128005740484822807466477440393197554202948146304507708938260137504527252309810360956545272034607203657295521968513673726671786902359194431911132151332050734457689195534743589734921003581946339901252326716003609173212670122732834947522858176323641140857896245374402589209508394283182978537947087512773663071618525168131677500227632493113546179926132759659039951650362059042700231014084263666459645543830727024225252237852627057582103041954575166881005541765796746727007903744841898039448005476536132101479998099896975996052348400358025504278335928861580010469893938926167835518516045904688503200519695254751225275654854762380092367600183036475697493156053602586612292146066476383169312295539523433117405736649384391484076520047833610551308669367429913419709195687418788371462629022996335125085008029197318353155588917513324436496276056218588877883864121863379812843348091742123917753640685598254743011568773585692774338398700904902933425837872361968441132811125917255042638068715779058963484187472077648658694701486112796237094021224070794616262463096727656079627730682881295413696137168024156765221676794601934809363388918733522685926523131764636212680726371799593780125165884691168537823042968668368905173931753718303080173846705061802658453151374371974764660387521994909962883334085941438416522062618738075955391281281469638271338164589407221946574904827317627225233994023663029434615905630372963152547771040120807162810590168571482850009379357663624481485395955155844214015979030513138399789578970474473109492092760394906618891905001867405189308570508388991634324378689717459787284948931623547212123025429542620172348379292691490503870311309639301007859866784944759459373861092146076029337216919600640357835917461377624417540411960892955019854623067207787395683782615180588257824689297867617471495811645432073531277313804677986978428584985248545847151324970874959404285677534266820649323002940672608513981418478250269139434049892387846166262663055904785135116640614392821602387358708235831019948469915314548996967389856886076747287536619843235496246475070284716713166422711069891088324909244382635023786564608174755227600972805768388687257780984387600980756495721763355943900085647406418527561887689342740399753885695783899293710332332551968314553225865377998137873153720770518864150887187401001126930950300243931400558739544790792561912012209539428344899794153034726906207674615225637241214736065995528330340957813530693499599454394890122648471302361081998664140916367244294585696032578475974331259035130259642474301220642828474017284230598881315171734687603552737982637656158966181524339336277933506838527167896700136238932527188318261721734713817008570180155832013543105661939985642746598380090790442211066089537680429774468246834032720704846690201667227596959133800590396884694595563823677743003741123541348980771575427654149664501312010292785785618383076782073837183123924865242121919497081085662788800641946862287197710268898771651534104443446811090525940556670632976014017711794709525994171603076028470187077623071811015677580588049311946130972445849554160936741393420535440195692172176687200031747487779633715612617242887327800008126371989096714160550455690274441387803967090794196471590476803258458025891356518454226331925311785922579299305285202077609940575287254409173705367981490965907935044120194916544493981822053335549440324039183155679916407106230938652118306164417727359696074056097899091593030934048421230002980527937619061360212009146395488603042796212490065202231566665242297671738002222550683868058579964476619724239217783684487590249754500076573029805968819543767796735120944447195048899026513174675172457430627594690106595973861669597336242285403543581459612818171449211659600273003361649619576859070386632061563920650083806189275490249951928222077059036227249109136676537038898038816499646553615214283590175752559344394486535715124694588834017437514875843697295012071632520772514200755858184708966595706533312642446325610944368592606484246072653788964693959137723724846526529588981044393088467704919707611652932039298066151679297407207680153273844286159820835960318499215058608968603971453190426995225323376126994078005407210356555953684229083190057496720650353905016339869419674250570335307194066810669401872622541371426831689630097723472638865307392033659384301843494392123438407563925041282273601027030489214163249574400263908523508303186605876941867987855351744319012905715812883313498077839550635376036888291327961621681028127797955100094636122189519432501125307317898574983292965254594290276930439823737229962578585078195656434542010626106199073273321387797100467635284611656879361793931527723813324027416946213440102491494803934836507607802068471315273556210027080585416389849728812225550744918987346818079264620470654225015692460614269706059242428026482983270210576825872701363679175078808577970915548748631768992209774816338988144449271832189581018067082819252551749597507755608178468939476126494176798266599490121103910287299231168424902216176623607765064758224020776283873420436943067203460489733126552954437726449824671338623089963522561035886513206155103298845507252051493599939363021947583635276921642033142894833528677665367212260578115029466549712944900656290932784222923452418129458192875799543461428012909901323116950676259329090268316654032881737876181629471636516924587536556654265938594088104972785128250879106181262205220237858735948972508702441504581450488316425033964700958144495232677606489043475140797551120648076714825120537991766649877898975654173951958626507037814495168432601743620161427626819377739377733194158913581855261741586591506106902335201817895286558540310240899563721484607387329058415033435381386422942375863266459429251991987064287308250343594543803364426951492122881068871621366269035370707068587513134973702903076214248542342458570386989788321275523839430871040903655139056397719244885554592684259188903026130160614573715357885462304032727933354348178865849830610344505725252049607578360503571647756316119949952516194320791745066501293973710999494068268794904456625919545604801262640813880324620781863158512891199569330007581843250273146460803194239500240492251802260443195060561725080006185920066202778502238502039493626430688989742384503748200116413836562856025271987648020634312318567360651182802309728849887774425059864240968124723677449461070687247226280110796092515209706198822627574873468724357962252419995500203864494227009651408234934899726105924176566332302499819064933539995579845462922656768552111939458221306803194633204354767552647192595047493696341886642002650328726652351032448130366189232646860433004802492159539890284911129240893149986931845227376882498210739557306324838466301020417986379997999901665880348363584692773469742232886095038377496268931294658287828273847447338814884306792073126162284179472054517582654191385051984547641687528229277658215474468991552293631081575597374640442608964519491993907737817567965688426914225409516256981331049348441424307125339699212526074469397577010183858793219274587410554914038052768574089054321744457380860620784572319525053198626060619052268352847835205127687663940866907986950652062117981556744850439245721520444607025867220470302477591862162053431812657024726567486921423488627411567748330369287200159196367993411893100310172448572477744097911472237641788970716358413831925522208805839397068733482761530595516863186301612998875904622796312287154011748858651969669665258883166439057727312306829516482356690137727611610163917352918412494228333469461248893842752580837601180413425249368770456236294794725922644468076193267059531822947339366292592142114394108840652786693210585263030540477298681534517758037772247361675044231954412993000360701231429895221985895836556317562590108692149095066610855158825491287212051723184869755040784454977025451326319010564890455998252237864483154828975994793319249780046574955780991794428758431570889504974949476559280558631765171576916454975220025197991863406735300841847273534283709590173287836475993701947216200842176634024677581587690480480917395218847714015632902155200058868299796667017433153020833552658305005248020508628795722171820660109649357834911384168503299514102735560529828775383088133537310229985161448787843824076003519244240620054421530605373620811568056022063372579045410071980276635248382968952486998663795722082129763943586496342359770598616047892940038115982828383665934872369296091578325407884798552553471270404954564652211626918354380512062076069750750642208081639366815896770747486050640527840686640341967789188833201742052899833598294728757669319030442819261634611165624638981614557076501889484588148287746847992543407111051759639415855304226861250484354302990292123895543626888101571665592374920944255105776377248710528527363309115947248763914757270228208987984603663415226913033225491103130104519715798970642533476451859939525904970049436739292169868858853990838463622370372058993605903342655654129804204795166923501686754731252118619656480293968440514411387840818256065204483869079873155091551274225301695008171292625683826978591387990158871602628547156137021998635759126617077384100721856065552738870736623961994438082702211536929390689135249443839144083459907406448831004283383194521422027968308167382597491965756959715549658032333829061972306948205021432934572894947467495611973091877367070538851713350635020763132922178344248629124670162626252127794953067391669512755293685717873727105845336159256377885463739244997987602959188861815862994305712263413422953411339241036935473887287039275613727708002377637494789917335367403026414869874001899651350759652494087604968126209742955529321287764409208274159913592649149319807223698555808874859558227606194038288773047838619524383648076912250166755757089339020637292436620264906653422369307938324848018448812538874403443887098364377189829467896476961782583322426863908947761190657856371540586488884521309095207844950814264905359969205101443833915635930568352661470731276013492313145684304262820041480652107799381305174585569871961151189496482529926110353482569514390491038857152604561826200499821024315257371321149819874629636843551048495230275219458294389213231944856863195827320057294931929684728500392208647197846503012807860264487082163337703434327827643481026009860572939629842610133975258910939848169178136299934489262326613071006513337884634014268025112656788468443455314163928741353970351601898694813307912399766650032845463742851491415424676954869320961179897193948912005838057276808254091317955146153533309966853994900371027426452589665354632213395521017796994660366942239877145387644035634444161713653010426986874317569549630118402039909544612204013477779541195103409316770335857689835826002579199022899846424208163814452787403459868486982026123138980215149117143270472078401860641429763211388606618171259351203613695466422630908761309990930018772300427613063463288113681107304137478285233821493365815966028589397775121844893921239502654693816769669708382272350116520786133600238456836243500863568761065558026829609725038432618157212858273003847281704495570806038894836414874831113052794818860184444563572113534094302358659213814513685797955339474992767092376534744956707559763640087027748664519504635361978747549756253919532291903471085943216408838455875426122944663854747906143154023210752802121392690766491436515876358005224409130578255311907117835112114046932383672945360008335789264806113687338997883871490576352659057084279071487818003153286291985260916899456275314901593443249363051718782142525805652510519272435472183200620434337754057471657250732706683221961192741055355660720873634478795653053131904346771273814073725473615225290777025223781268344917516172376445684707490560989350496909685232007704412514405654603778754751261119852469352760371669271774652542129331322507393163830096806953078315178932160807571598355969323440044486888994503614572011559481474943413136308349137764833710479818940679681638414817244881340749534489507158066680748697156168627920575443658342207533038784010652273146805956935989463578009756151286748480497892915438577470460794369588681902565651874912355179735161840010849049695929929461828536815543049207210427334642792970222525329082837641885429682837305669689672347482121945478076488780132329743964031503784559805890200217085147418639521539615960483209448102691937924968876720083270735898592455970104724733859379627949859889675702540738654978660735671885471064648471659317915960873045449701986692009032973683684355597123124039159851026571981379378215429559635160494860530101665747997889955001734629810563626618921583521711284322504375026001980264914252977692754093115603141246264484511171676723174006598072035084389578552051946349498805649163217116375924092369186495763069817786943530396693213667177162526159039581029756561796764140774138692011662846368502917246198602238358452399439620148933699062752671086814653611701949933192243484109254520538949678745091285588019474660638327219858407585060038312514532920857143016533890207121744582061613912485244881995159020075590674610343873568122687462174358122009362641493917119230380228373455720055203907380324084219176268792056445006868870402869486501724966283972482722441193590342307389660948583232422927355512349385849957217843667779694301035330209993287921556354471857620539019119582764201459612327775369488908450296892073016426430221700409518585719108801836722996469422371708832090859473283255031427088485812918383662921539212449664567547311116226067459161555098709233891528800089500485601520487007180637492690664615740329996095478735266196780829455075810900297486442938928202379565751046901656513412173224095139526715507366029325422397343627328734139602758358494503997767685755717397649149810927536832965702546310852701359459987619131391348339796873650871092904967072447831041278039661693534668088051034078086630293138679254940221089470823779360892681143799150732917305314851011318722589526940308841375982445857965129149274506730162405587480965820704834592830826043211453901872861742496910784492634826751187699634720198616118170638918572721665974734486240147426231014915597731937433335515804650228146998632022876399246315314325080279319261565101171843513473020656685752582122007869580753708148098553203542684775168141651233684433223027110926216898688161267408539538186394577667079379026328260339129427122549423833006672157525811741063527590605652517084714905652469414654850590375108198116222281611310083070070474301482797104130272111816105110764971413044179984054971986531393477485166375601659410382605077887353063909168963551692376858578976232347090094404009336976174554535363530216615854047129515980257065703199230726667406422477194519338666580492097507688164056321972531253152682080629325701237064377300014535726489906646742993507969398445193148725010188145455900215823771486523121698207967945313999799706136415481649373896872323703557826575500156884422142199433058242892587304171175420459188283787917626599355561859018479551919869642131595467455046340464334021720697232980460170149963357751325232424898795996150908891837928400023496021888918607582308464011940342058681619026368193596161631368119018544599340081828122129821597200292446940470451800303090446322788142832905917866874656086749592309193407810260028591195634369593424703980566429870220147693089313114562931997377216172336603297366917818208973841395995912338222482609454192457510194999641598110357986458469946971709024545169216612261474263113425017414612914970169035248562813860304879592077269504002106017940446254487090356161544735695942614302077619129428247947490771865581128827006110773898330238082788794869424210025584905019996704430658289945202437983925902734761549010009754217504843999232459233639171937436236817514777507315286664172939451281680874220435567391604839006792811429257981902789551930754723156993241131994033735953758872317141046800429217686447008888629160344793381465624965760204845477699472444314219238304066039270458121678917257777102792972226580720507987264184929476557299253938504376211100494678748755318983695139567907931920545723281068868329317933709314518463451047340854748799382872262482074297392476567624301270527950953228629069041265896324042474534360778457591826714934542389053070244444169874616034024882411099970236098059837599431767795527948265051041990567214869579042962177553084361463904224948326297727260712047907022704665497543097814066599764906867497530941674069608405342163150186877337498366342594797140971026511446143382762467212971991289417484014219399568252552743120332672885234305933176361857891388407132421522824958821129642369145008810982583099957843690729988656414131031640639342421925652994548328672949943234880975500804572566844519590949962060165277958042988130986424777251841116638684135610573874451892021088400197118097853634040817407586899928640279061321409129815154312596674393267497873686624676309127033791248132590529137233406105516055408901216423117972733569531331772437244117604786291833879509874985544297464890287015792493081805587194281034943618599920070989417456461779976235427707786410694629781106419610306054082620830121772347721352158375165635255603821488568298183376862402572525763974835735582265676978478508514236303612431622878775773554572729250615975325332987066390251088494332222221461539257043080667602875131355745082956707774510192995453315809831811896967644687810771679469150876655530761515409853781478922695007425650530775352771037377350978929558115197504788161167728059191179924820018351267795035135471561215122401283951918084387042046719462498377569369766130923666083675361328111795924543137852853864333223748206926027482552144453842506992022302141487149844939933344246359742067037609881809283660165831667573238911878875917326377950494183398474206858276993360851267861973984503110001615414459575058580575909315163567271496519498347640587998741683500611851646795997743943034344745518604089505109443813442885775940782289141795627701257276571343078250929190960239395043108858553629262281279407506687699671646538206810295337138782634770506509130269206694557927721099013130037438337131753962936268854456684562735013372437069744315523022488581540681695578964067504339343213044395282329213785634012371282249888465750142494062219009830854026539900617417835933809476886516416206632283549239773259843515661372517792030590980402915959126434708518878410171121694667008966535635734426622023468990298652081016667903590851780436487563224575281494053370465723659777033745214805743377895834919311213039236796652346069434505380674878777128565991195530863556615398435315962932230554541909841722035791749088004038388090603364798351035443177292257648423994221523835190942548197399091203911833185497153595352825198625004075276587777891654367190129670184639484012061259375242253401375291839646508264415771131898253719692416592686985982329959838815450880695286996640116783851472190053871773875887426142581789002422772285535351714264293537565338848219214611498324349627024422781909908538129976532317558323251041295179858066833851794773278513582231461626133680506982396125431732710548518314969904741942477532919710431705049176705586882028238552029775932345587084677580455294728431532672552086094030139867641448169063315860108391127663830210324776456590541329719076778701554831347507768558033821879576541324670964655494824563782424662189444272516197777906969066512514281542011168023301399644550681687556435842403202073977781011441247581225099063247621772276660853619471069789012171129555681052908775390342953885513668304163099309357684654006741860498943382766864973162064379933348514733358627594115158524710353966217281859465745561958370178106599483732379306401079505997345889283994963415531643125633040154072835534576254496882971894412567420743437984905978945785053339117780419822741184106628138435461779854225209814559424713367415431089937665309134798173221149428877464023371915659705246125637668929483408073846540269129936788238922320561373604115862003753232613148006926146822122390189786422514442627864121104711548900757873750751856136484652317758677600117567606389022429130278569451891084302654861025720595437121388130925820815890903827561405319320240197004762528148481500932503563179966181199147254295796682153729082334296092310201964353643069278397077463530508628889549071503210362172630355764057384201644934895035836004135453370740344731910833478506244866014042715539388298560733396279916814243900039531030465427023041473508969883915405529289752683590565015845965571084175838474127439690956946029190752098585494398648024609824128842141137495153417415596308454744142935697597345254809808175863144258875368798269878805438658636954774654191266529411366999781639259390976142265028624617082336832372281413127228255120709240199339779734827777640375299232404820696837294873421910854087056128074008419259379997149065732185811428402674334354881385149252131841780888830467803844677644297449580051112264573124344467084920985041250408220421882368552807223164440619537259547525160145210737347853797709210930487497001050635794714568651429755278231356038763649629403797502283469479492948991651485491473865523910965418088945899695782187041386787735616680809431467209063622603185920722372811643790134210073338454181259240429154996571969108907533649575556640854629074954425762826333739367497156567172363049016422542872448563694465262356871013103927282558736157697077638283270765801434355127521608258307866720202528687130761518644750379255921806142784338249461861707100671334824609683641894359495566685037082437384620974588122363998151412774428816603854746726568739167801324814004506834921811610324458623238908658673524540465853420163273655100385659867761364943814133654816171023299409315545230389679478557575719747303048610032219851798543203975010132413906018533177619045435439352084115566075872651678769858884949310035393501881431843445096655679319659317808049039118124847872675478647332612240557510984000377503082207574971723347049475461186993659534222309321966135234697172835111168298784833917274716948760953279158139464353481725375594242637046639378878104127135681156712396166760602500492987750624601447482871332307889441934692265288595757121726982819528800948312447225053864970640261357058862288735144838688756077869938062537264630916199551689000606842295378050780758018843825932267865921226320897613380810452294055730302683578473079321466721159339441539768730215749200803617036741728001260362032496762638246374057647376314142668715762208869677553749047861880826223273530834911645488019089741048110114477478956308039882537245411047072969923678256716758095455949609937536548336881864956817616187375457226728433365729533201077711711148043084220185035482950339680525868314565025417098843197051123014355561553278310184093628255980554854197410676375916531756929245509128588797030558572819730864328065404510308332610227201212472693032613545743641970421048672415166720787750605048178787139202731118556491103061244519679488392962588278807856498973915741199474719104854307831024703940286338973950745166659144588073366470385369823308679279860402830520628376783880111073296791993898378733555305405593918991392962887808136438576757521669527494058150113834105947748264787228338572158290716159066897761175125128594217147311129833578873957262147552530081982333955196838870357265018378435364611037934108078445485586324168445978468495851474326264871414204585968245259356936408680875362996621784049676385193054132403087910627434765282495778941712589322320214441040978004209546165390741058502779810780377857498777286802185401999833241742375189948407219752253341673377702252147012555415863016900896533646485196639684958711740912840470187136508809143163732498681847988423736875447335106947621357138352791640925727077163776281464772471439064445508397306680434906470856259136863480011326848736472972684505370411805686021423854486819056577926790499036058414711638082556537963836876704699444670849709022538459038145129776426996282508854954966998815319699844363623676695056748493297878911907507701334742855149739574278189109631905746571840788172759095881854582201579500350979743691216402179288625645363582253020802197270774989168023460793636463235886913962481774416691891413145153237787547726019291932516526571443519441339431954335419142006082015290211554971379442493710435564469668604386424153885489459674740651020398953868228593735789512189920521491916697504711031383542731291692061317555284219816326363268236717002860365998728625364058592651752213143740108502319820790148326315182078904377753794638176349496803557304068233832360512335318380406681190205686419393629851383102255100126677754017139765597721330001075714377948246021029813816428567035711269104261153274976046401906429930622350107846830633463047711637579383252042046928879150986747684647357623075976274136277896747018666030636220803277101400559804924767560607068061887698739840144387944398746613326283028482750486775773095875983582910889530446169103528046115372392155758156474231896581316307253990824847836776718025402471845769392349004207056146591704659100660314525963885887041121028992971662525705337082319382442121736213677327099609974290049292349633551222846027310161707953486443174559575763353101035943262213394111670576736386471445655371756355432523947446783609559377609852395863930814758142664640499859038673786644555283180835676845173131714395984580692768635338486191463967545808654099398492244410610848757280909247874656110983303296232091945111806912428562928213455781201815436275769301234471704205728217481993290469049838445060967753301251756410604614227251265683651405157429809013687619656898603928482250200319922303679230486262019647247658481171375510152752136620067012988436638757003803140393207604319773367850950003047657068153570088312762324010165481820204472174314489333080600186959694619625269963451985053831020560462918253055684433342119126992729002655859663279375140704846541778991518175973964395471959657570170103996759455095255502157247885981693009809071695361725806187007935258297281800660672081540772599792787245590170186183050193096796201865457994800228109511489695937317281857105481713143449712698952444736752132970551325777647997147165953077304276892948837645165793558634325586140181985456857032533134335992792285419028936509303853562303555671034343451840342160533755285859380271259270892151635919884970575239398396785899735281259300078253496897149595205219363379360130871655356386112728193072822975574173052650651241605156432113948937984820043169709888987053313863116793911624061521113125795126998678439502096334814261102325782167710181944313928373196973811815369309685109992622270757737733745764116393334375913582184466525785094747781011511261728431879380471400636360616603367280310559279654512758314185849935586777504845150207415315772825011174998170615256442451377404306412058744364076568950946570323645882637353824340198389010839556674306236663417399775864323083789958759417553159551589178813652086347409572667899726260887222725375111494646546040320324455767296562321932821597307628326431930986926994427630666899182857116890121185073044759770217362292756711608341335880543651177880713676825202342823779121865099200461061842423600686584522412778024464486383249528377433910645735053844275607777599769249858211944065314452371841060082802809077598356944534983163435330162217101845660774573220643150992872776416659479682774936271333109879742070907338813401410536324981982209094369030023677865690362990762920781799077979243603525993837006853121807209609697092137058508842499228157437269141867355032797670660459253698081003236018529656447584402473545786465746553340089362945137847177353486648227802829346995703195816493282523721645842205160022576492803315842692947066143283795553267280629574559327862390900829854696684105767459743871077662764770924810041972182205571825272998286103034597418321557662383285543074944773911454198083926558370387595945633325793932570592477221493506007277863412898728214827075016885354065264619229960433042156191170825246100672635954561970436126244934127396462301202227874394565192193718067568235971532206972037843839046189103127727800868825795387780482226289882487989676064467917759625903335019896036406336744027634532251139668171599711431262011117558495416128158436782214646027507065680637023321466030591668676716257281791413052296256863729873150431260209980325065043387787693673874547702745762982993064161249195994742069059695507724665205325075145212980584789611049948920474099148352652492424000178103730163150655269147739799934825001394836615800110206358603630914908526811358303265195407499653602424837837290029935302168406382156690703870953573899455632577784834061527493861197718807490179123563938941365507766674041280180509296865905148893151843902341082004419307560462748866536587003474640759485649052350448212283705435367000358052046254259222191790686611043653312255423934784923203511879798505800697909646110682737684289097841065894394805983332295246975599143219787505368211890400962940627204858680502688331105087399296561395454021998266427293052257097944300385892766077115787386956513200679412703786142270633013954800119547926563645500668770243323219246977316241662970393551216921018862409223644286254836996588677782596407700791090784133200434836012402703181902387284780570512500124829737771056477466681273512229053329762022405472294865325558218314119055121500935569546817170122486513776469899758939197964278753226196415954622926696684800580046679429917273543709743822275899161393322895678009655035528899380459858109331454389252349716514538597267589490002027474883473729796403974612006817562918187467082190869269322110008360756417857202551744532829121722167995795856261874968967730375153469637536222769562228326136255953315095971936986343553834805949377762577830111477458331673103965828750848363071590730380751767955343991275353992981093576391929581567090872487946463468597509046868225851859692848933909377703337802990459584644598134607052366358834184195633679768712832047376925315260674657533436669454762080801045746945428665505964454333775377862011532007187310621721733115506330948162139519240540346201473701638114115571982857054152677607711456775211381877704665906361354410735674748987137787030292610901331242608247935900382429377685499076060726430996699815361946844342005841106753147408408039387260226085172640583595014897141936092164955354235956833546435551724110427931500672844868825118558326894322777406305060000471943956622364076837177441185262212896426471212955407915570295215411453980087157155497403302249762914601383599470717080046079609378965883004519811600267442612914490853812016203171674944623089154674500898206485152111367192011019544961073499006853998806855223651809543765585369437157808629148813198486335966714093308129762590208877622810863229819137387959615675055994129497992183629554714009896709438000263016620750144412813184060849203072816665930204424980393332994817257556389608513047712348045753846006817210243278261495818128773674122611069564600998778411179725781257949160793953178606246503990554348792961565310137713085844011757663731535699088112981132452383973613859007049219276883333235022699546493969103403875838529393377091569699799422480473210193783428910878510057079389672794097869399224010218095003906613690949452321853466308911419270915156960907802663827195879139134814688377275762974282432341550145862430806039768738477021949806142683514687130220067228443344453592101053793933796844489117674219261855691438415996198610541388193229389510948317391310387287361954277893140018618696131995260238661351897257328373638644397244528800310642055625650176993104158435500831196918261882962550821219871575546819188753934106500251198558132928215330567240781802678260207967560216760875987679273075263039014079010504810543793982378852451301581480423654327409650865503476488512857970569476646068731102950642536983473780032854167863944284524065710270864675176488987790493606467505015095481452006302215944412381886142765493841705527467340015133340200808759045859505500221412196857498756014320952865791927305145973504536067790223059143572356970637072581774840392064221449491264855442472607102619769938326365927773548801932837368736305686485223674444741575242741668837484596592780150127699404663368852078776832779410852097698222844331432854034012660039518149210804317689086036404230484678787011073084567473356699725101604220367504836321121690526003434094083847915004340033795744983820075838297096756845927045387557068562860602296802994582567238217039416794387924736617985781968583704950685137621527785618487533241375090480304893070124904348815961284253431808084238543554473482501052895018375689967180263904174808869733375806356620730037546034530190380779633371874648544024841784879252189763010612985074537066413012683943601076340373249246354916586961726733786214485858313989464018951717678159737597301584327162496793389666380282609749079899420932567226652057680535681141242803087601670460706537331137426132353397131128265774224466498260249879906888112823113579668912820613049581008796753723566992998893629577786473544249547872541527096506260311204199403988938829855605169398153640269269548798459329272033119338091718756130590982425398636872229397055862870652799400767840480354855563347920297980310993462975550585374752191128246075034031522041112784357519010064472723132408481145685752322302659676795927168356676906987957063895649204335252980841703236537380884339035060096952647216237156375939949727239111698141325067604679096821362563445430003653425370139144843746854055331367812375477066744051740878900262520207746117121563639053953410042373042542949382230855053197695305771310562148172217224440516224312855243514316723028051244711934867086212098463866606276441005655711553652528350091768320452687550164658470108619639883819629715584018807479744959813408046579245362657316863462197984329370756815419872865655271566464397317007874173689512454265222959148924802815135481419488026048472407583771267751747313244997496893479951575356465915065908788249450438808416213741967763588816931144575476403648058959167986551483325448348729159355722476888133433753358145909496018065584628991341347670356263768078010293239823276154087516463285924667713277598613080877817835718933868473261078735160593795922231013894167841554708889193483165019789242555936802914280702362951990484009691258285037067196314175749536929997464254878951481272112068404664854158039983157734606939122074970911952262953327536248724484845901558909815017230246102567064718717758956658896665454198431424718416272204058675584502081698119121365215392769694887640595645941851778341579698830057502814782792956924481065964183176594202210259878493857956822039606601129480208714322570285236666213142372159239945149423162757537976402204600733493082716146664890385908211881400378675618617325472575882859841926130883866365518050512677477025441064572133489443593908834031533762701788641088867510007988335760897776525664145941233808753122102114735723566971613929248790718584777568309574047943090602751719638578428778279090553748858898528538137571635102066873751016536665277554763060623695558496266663643750992394574053943511397142158629798081774461559138855902668683469720457219177905008988842115499862773934092881791524034796303701551386263566730343771554214676969825864648999808694439299776457855123910231171673816066022333633272954645731990992694412742749684927647491160421756515754749755507884457068659998342047560085716960080391448500241549456710100016470116307338318089899857179876975577734714602773817313883273321063197751811623318101158623625963674833710069626179572515405366393829841945631535984356675799337739588848351584336497700499255966944763003628017907502110361478639466427648531206867148988131004153913197003488075083879296062718035655715276013606050950453317548856976643842560783559534107025398847219138334531134308052720709917519463731146135905736350325549652610408459382723884009684929135042933698657922307157390794724477190518168960974623113346905223533349347645291503681575491768519887424465846328674926130866913312731899171480896559198565336939189220387093896405408497601732584153774488309746268504218462214958602300046504618355140130867961884865283340177778185695726201982488917288060906924160128519521907030187226142341519423021037091450543671543274851712114408819487998172468271214690195844406719572012230172993162210316349433900571535863589781208557765591017113080317028783897710164145737608134641755862841448686525581624557533599563026933101864164697072920913492061835851824522318621114809865465087903688595415378453483305280933070161579805474694404201648858132078089172965676788880004089609982377984001909010143159433534180837053792222204966612251280163310023254237445610380755369498391846514428833008827843005592408619596493179431627606636387143374535731303024384434087237345229208987830995353520790539727014394317289914264231144544846907608170495996654384653188437563801955609781030300856000803408004198569380291390910630716640877330784242747311334609458133880002469531792765660673444822837306603544451381027431303606051659537018760148250140013668916160445250996101336022296983196049181062051689759758181346521601364317975798374958262508038480776277169952748207549794884730026004647398760989647011538431477301028793376001816863999108236800459732825217770628270840802948227114614243492915278563755766314256718859953756307775133538485399479915009687476823754788441149764122495887921879105299988326797677002922289201841020523844705508900444704301186201461410525946566970936484746957721916905231680630400479416325731768903503968913410834725733743661926542662477956367278564625489811670262980676324082510509509100278248570846485786323220949426073699981796897294256630900918492338829946701958697203278167321206213907962860715375845935915087245062016407768401194288675494016088694763305845476820616359895665648533923346005572324698397003892170778586450336291604765499647150369291775282340342470028111235292010923907586604303908129840348071964908987977203985249130985709022040738217720386540624744599425107632984378941690522748708745905217362750004581209837960392826691188944903315015807753638390647362372636634541513672351180554858322325839354623787577916494596382934772272442617559397053351082437250551977862824967353282643866927650019958807423008738225520783487264733703153804444283870875429641547203828172139998785754938727022898157750286095552822148061563769638814886978304742098296463309396541871762984051460663228371771762973481515827934298174739175574200079505082018385984890216762167237412852820406531684876772101889631351793241940192271928185520934737928713996914287022986259585232324993076594929702151565776711671021612041000077686133622217550408297704825099598306467655474446446742486387562022606465097200405876985834756006671962081979040771633660506096773926191778869207868802508393402932549632334995579283411019953394487623042277134024002826434828959701977379843201629821670281075898998837819224334059622826059596603312294036685518679368485961781992178870835774261394003976279179167778284018250563178658250504691320485571326839528974138066129730269317790853628687571378269502788615395626595357666884593719462030322282081696066596625948138347692321528048540160566945480861498236111697848512082921120643032673438178249350520110032529959597897308914235682728740245144348647678609540230245783711517063530205961494476209763736843269437666716325331764489056716485560024017464223463324251266115386255715432717654841655780404546462066112550441299074013743871784212411835120596211260975508428384743368165120618232034608632078543035840976775971925676175876624779188712146201165156828490672343332104532894940093739615270618927170404267085971141897778348075574666870984888212150841076151501556008169705737055312807361123978191304891943516524766662975731668158672579274356766226517757794359222736562143816027830045636679314924238497100205688869115698012289172890212346688098811670106989140607075336261397650872006147676111342477504236420519420034996579556415759029187736896886270535835625954609625174395399279007371259008936178123443205325353595734657699707770080261920212933113932021370954271745435223190706063732513973889003046190403950769294887412956912101392104789565091683806977227980826521633243105603166678129676363786669678294844425192381101215806828222839948922177047805620530282600734129246887737431324305375221172527289119668253266208138644172858812039561900772541580044113976033475110130957740151127159199941946375194884937764059452024150756355189517415952777940837567132815219126146832095804862889430241352992911238096384219870191764341542378834171479317636930191303914922263223694276281230169325733291559314730948624774840206445445235624993381812053537352519573293986407266271668954342007626478922506534568327458217882512231809028545154316976480480829170936662848229277529156592415004999637781509847786398627711368601733246314751839523075625246003458113731066686172856126668152649777505145143638553977254581355906567529677211936549168804799959126814003646280586388374959764011373372073482349136923360571797962576892712193950818802156103438137348917028403733481881796837474584583694165327673804208775213816466668950049843790551535541328330422074968732585199141007670544966016276210908502540883955399038364230803728462680388510221690165672171109802398339264128891087338003096737085255872984079413653435147208907958642085751318140428959751937676086738321634198587940996587474931388292426615853174451283141867219285307426875675460125182102674436600345375498030569980821571322104248609345781775215663867779718191104064209200859697103302374721218545707826161696497410684556809651950695627333526072323307831653899105486653887999639668400643852686256513135387215341151357776430820641547897003147119696945251247817020215128883904190225460070967792886235921859624344772381942833834303338318651482288812790548636568702225352937943262975724000069378166313278018074578905650209310632324250563573918833880406506384463158096283633544568426991958164363040483764859680353530377080692685501753032775071670792783276632613564351981828540701189486974764495228671133821224237385251739887948848359301666774772733580103715660559639169358992531408584097856262717298618598754408110657746320134012443910423402549533988662201821843301040934890177022098137203687083913638651751289608106924879929687918413866807886594010725864702413993862996844919514664059925079714583453983113698242447483052532362882217922273204624896901274672583234999460670093136307548021021705708305142378668127893294678169035893780801931415787154528325177821539662644244626457302415096316075627006628416589760991296156545782155631875724509679629085520729565633177989273342652790239627627302255708166706312323031060103374267655373009520012626788614023146215480090893114570592273667483437177861766627724732529785823910992135014596067290197054601701422719200606104339121898106035499385076091692600720087590822351774635957686243937511162255295246366907122839024809182211136143138127346953051558288980191417860590642980679592040904325760808896889639218883076643417432313056340156538419311735314229542404541021127287634557802793048689521845902843777428532906120967654561811877337262371411777940916305274140837555721231415640423525692820751026425697181326576946508626033650733230366362477116154381700344076800481031189406078962686053402994160789047594517407042647916737517403524194137016336106331640518025576611963461495205521115180845966097735655310847664207194501727760155100976879053812053368720879936965220879522563647106352529806114532291922059718411161937556289001984943518810282436308874493319051838285806074611375321100663622255635162468168035441157687878630351731800579824034547435403997089673360810054632076420505194165302805979173692397066387112008735723800346260883548277518870355351413471804437844431742942307880073341450260166861463768313986159342459774560930713269860465762086533124200063926151316992836870130210653748204486896105547922314245611989818178228829549145434339917527868882368735504283457107824308377011960992494402274178613057329397183409877541448245034890717652933098661794610668869300485150209358785012675342958730335829819235475401069316280003449748482731521862863293697322182316676649448039661891939663633748709487123027532248411068888838578528616259653985263914687261687345856039327126326801635427822457867328764787972108532942522599756455939337817383903932002217791859325497673257031998232739012480505138288855236733155167657088605950198988381409445974315024766198812754287563016454716877888498036461801705656695028260002294378753666807798049076514932145474642102767321146364477197479214129690624905433359495243388365119192492972631926917357942770593620741948725777112868590954691569821488550808764145235609729718072716470639708469832697824161487791107826038622049284090038958885626810947171291010339704967909831143622306973080908250108597004789767345856955780706556104949060675595956457961168183357605210101625342057593068811082163917433652423856455782541857703606291040588222828576962943138612260926911221820794848774559967942410234953922084145497478962811470331390523567950972878421883881944690441775843724173004655118297050498302600965889849200307612875512085340360048363638352897496069990443143020659672410148566137328452646358964406987109680264550705882612622798616562065943827623967794612958064645073531154821328343507318269428244605503964926858475578717476630124621725714953578324865549357309063597235836794546486242368772944588804991581919615861763143852740073330026922239680570183426282585095167340178255636513392744088036579925867488355173797041409333855816163614750621172267713020116346743242746957791345491262918172583312758588683532181053272374162276666891910266755297204865177877921236195817804669625407425601445409639539340057807958479605834586250907350003826416026240668602201778214966985482146693188974437954470691900321765074036063496329237089747324495559651583570933695559262927745873195893166911324580620366811134453575493936476337552395774284332503778661473070318644306307103831989359727943876007224532759236505229688161596198074766103420308066426519245243252150069519177046733200804945648129781668206808398996680878428931234305178034841223047937564519989823142647097078274705882072355351102285755745603181941631958581059331278642871200049599440326983796667306131889313776908044038015175918227961664386527430246214388963692702312208916487789783967676059300617198533355481696906984394573321853923348595566787464614544315829039842374775112014666995609721232424003252455500921726232469908226629827725193871796481996226537596515452467060549699145977747210123938484333104029176173683811803067190338855865062276665658892579967118389234503825796580827562703670073251394089411164894549402051619677206907600199093678143174254453080248742568929843031272613006136748758733517388935743246682364256803551382879973299121699642413467349295548997990910331452091899816796517919394454012424886685871572582683116941440880911305837056419889916115607157731243470204373736168932284225025479052657831755768762057575128945353945476370129879859906629037591200817085070412697217146903138838247160635306147206311912464026448475492764634372242604608283586547533885464912065194964975584058659759614720538833839197975735989030861463106657282178589399940331424514306590851491609408269124040877349391871656748464553164435681607257198632949386996879245586393817964292520240437378237678545689904800351439817557550715340609634269368712498476097511352815867376738195801475583684071918921818672634637155620679704400913704922479078949798813458861015917342202862073928521738920582411607463662409563490373080005729018795466954172641247842297357213364697618214162377490701058868490320896024986360406725030543358028557459230567661498865423664514246310923747799673677396838880635917504156695840098445807573205460116503777140023367393773068901346039669988798618771088248692695153096788635415347833251873303186666093856305057681317942698766775752159751510785268958024163437445710734734074165949945946910530222114292961181180238992491505207998348621479901652766302597799298979045606108839382908217435657820574959783562499567357653152127120076251714052017586113121805496407249843210942433427769925800536540183741401402183128359356084772395624992735744676017279588045558445646854904401628952528367259670603586607809523445107158974379214104579517244413909064432027060230900649003889320787540565998977759573175373978634657098898927202233768875998925858179988259430712990513244406640154841994523896023889461668652345006844068151271838350314027376653968067588511593549606029906075599829625437918020412212162246202862678626224576135783160216908618117971660208214873692229933638298784872206661855601498074858472420915877400406258954922070909130135407163940831617862169302255039188866915743483641576692976545542745032321985324957171064930394643876401353771593816983327274507411041244687674143110289758208863613991689368109356100678488001376697189610269100532992566702417136279904441703173343179966418868828834275411385933688578045415844590192690613589142898284562363941756691790607051232356914674019073283952195756871756343191456140387338512213105617147979868223793728139884997770323028377502051824282622569495000052574409622462594123328379516741002111879995530386210282532229622084965736339300973340829519298879930969571176935332354855633209232413842894791964504226783678215279767997805301069007637802218322180578487975296050694419634373436894104527074904437089050621615588425460591309457402338891514583924115237869419318272413956035717169259063338383633862720476102713082830639175632605991290098006047214680306205033863651938923985236566108608249387287066691973302517986635465369364776634696853420680708386738329073264530817310819046400586090836062804120350917678010871253655338034705832535977353583978940106753997708727386423739639879587090319506078977033102931776448245910961809803209517738977284829857567727059208600263838937099028574986139076895560202422561898561503398420600787950619683146904793448603045475839158666555612897280755030411369408787828982303421177768732685269385319297932440778352722187103800970678176174130083032285159379330566421796478187397494565939840464418216101754193597205391193097590412360763627528817035086248627175802496215893449969661106517229335684291683725529906216429582811896165071611733284472095187406550385120497680024345586874148714925180562575500171360925331955789149542645820627331865268969082708082856712024247907723744955366246873926017553701213752898266665163787574196712018570554712745246322221283386045134494829853660017257955656282569955665881857802583981120727071397292703414018376402524288317152441716252820533211493154421311614802578606940910062867399786636019817009055552215039289686691461548620018447963404056430141048980483667338058155481313120324568262370751400736691974901982840308132399887848626699444377605774194189889002058547903127816016607226096344501292216746540629988845658453645099287874539293781691457366652705490968562221912849548078942625690868640548414200683500997293565164674211608186705082922123065207331397231656879528079931343441854865467362676385383358903101758130089030254796475415419846239118223299140888302488968901265075733267403518401028151491921585426583634227309439561046314707363224794463511293267868317119261591563086060889257745577334926758780862495733740370558509324793693205564078180202057449083996083561991303028490624567408314163132829941579770857327568595206788411899098954970336972575874721881251465956497791186323053723138464122398285166930755420991210649970772613681187781911456829001748906697183302745967884023063991444686647499773930057044930354530471664116345470967293364836104642188839634684765985865706140358057294906832770512748663021825446381562741198863150027844799455038582537494912461696208295805577828380652255641506686578299558646045513301353772829511261544533738198338241345847874608356797009214332062369240029663739024947965096106851692218417236864492397582729553711688772380022446102713430436236808381675288057862776258143884330336489531367615504719139015039615826593457883190966037810517381446929199318429206303329095706659683020660633274078455520065476198235092868549634642483059939673613179617070641188874250545386317507191815670560663305428289299167400137786937958747555069104694510948375899745981945915238131926620254250798746353141335380379603977911933297675629817868971843429185333936983604770297364474363891621260024350163361280775880803029973912455594177263334912332418825157967157835072522182080379385159138490851136177741969397783176166736091926536878297364669959475932666908367110317287805242164847969874899369589563080509962048468818383216947534303023842590334719032851158765966246936171274064532502876082113178361921222141521024781315241903929598567780888784900766676698279322871994824862369708153060423413950357543699676348292273517628910812471969707888907325154003566045761290178040362116338991720938813376455232186676759233767242406549350585277944300891673413205710737509994158527911634893402351581870524740024610128241859054113406870214257982480543007802612634667847279830452018277221472681775090700217558604715468513148103344448326844324414483575697157561996655077099644679846117922315973710396591017291569316060455331176878063377857980046583257679800886690738810072890278631081178526233208024546307485135940240379034605835727846559054038898150668265360024575926154949901689648803703294118624241643436948448860131184098462897677066081864841138074796280025722290898118784829036000589892375817487436239240678541538624250280635592814968524939337057055138740934729427501327560180059740489207246100493929882670538208445768814096072389523184354086548542704416224490321033297352571720666252570610547942576707975367378211687775043240812114489830002706762425361137702010029289169254662942042352782015882321503030406896719410092153192716038884217898659033620511849074932175133890756239388947075857737145554549523061437199784356004926489423680720097522639681162355559081558547622498271585035767911371744290082295949097472636969543830082153745102635294028355326792315248399693003209654672571115933518656559280504668048794183820807816793585585199733158179271715188717597703777814842867399710540283246600191815887901049965741117420746819754303433082908702824369710665982442547074804179580478235724837735618007482170419032083131702936397952683336276449644973596636959867720366389550004673418125333696709365695367379170669210400092483261179664347264430848722524059847681800957600343744855720060308660724303313332203500450001427667906502868666379164820146658318574656410518722085627980287705652464250362042597553516430777456382839432053952655777080116434861532896912946352405349759904793458568176801922796007614418389016258574771760487575890007441372963625349020834660003015201384682570359389428582882158494347839292092796205320636131095396005517247161473627941675546298981897637411155074171416330012912211429829817135069443597289236675677629305459098294014450355586967709310280712456824380489127957155129692956540371869366498481046165246734998561131478520230994167004721275631304513879662846656947386958363790522633631171655541232816619083902728807732699243729159857530662984026756592811745396297651397126636930185057317694240666610000551210535322879875610731824014251060549744248294825888647578101945220916537240930437700163944577923787573171285295267417245025440001225929878455666935182174515785217902959473053583643172803033120940208237739823551440592072229769593762909998499867259944289506040143596640482628328347179657937832771263031242021598949364231966434433699444971865797160016211922343042617102386647575619614485196439850295012635871175034141828463419852317842747465362353544274154448979447963024481340167058286726900585384595083038962746564189235455151570721894418142038556927805912569557480515483238053824320148247104438485959386285395595646052705448190976292244989877501062721268441596069715843778354670933884389005634724021111599276443792177250057049796299529759222466130418213234314319403483347508461656710682547982478778116523983627219330756604902077462591814813528949446949330961721853641787555414855846810981411610394089900325501515630797336001156363793073908852568227990241290130348690811060022590026075685551885776206780388198778814689128328795097337288702699067004338868733953498292859185889194280896345498256070196271925313460051809110668101472775537387834465109986832076473127644130647717146118638029334249081860016100440542707237840707689449746755043894327478950761206578723815273811934245897851094955926055649661865245173363816461692661279688435473021298594423879022548164313582754970801710827014358891074112524116951412276007725806425522513139911948354338423352404052407021640570048731241343875971238998696343086772975983615581520749273601323756841321461885803876310997820454759706910557331462484613202329353832428525024851780295647493538233087382861615257054241821168814715806656321332208683373983957243585946753284646694588874829425760091929474272370513326607032962906945784816203031914946945610993822229374663554010813290373198172443225590002036935977629448637963218871061669583540123984545469006765042508057049782384946505985859462477823448985728526471819373758445916909636793091350666446002924484643933770141555045919529606543833252910397409313745050498327258472112869697300619607935060012850798449399817779134482523470206097546102902758280515441681687032844932839929025679887640267728298138886168799149981084540769966179709776636497809070226516919837529094913073784537593201167136279669708109446258566663818658162672868407692526959950693282383951292448386959870781938619914481682304551458745702754322641958660531133202762710299367115116288897523350969888630622351522646516057975604242671707360296350225762096632336136198539863645382757665537769744986381157509458068320956751397907723919594408729324048705491063841345225346395778892974473299182310598677642122242823538780052503880142434389379753831427882074758470573771267031628310543943460049452591767815002246665905994935611049892319628317996274961945819465327309488379440436903454277551504193533649158131077984538099195429104091622697002462628938767493769366245009807117259378706738736860121529938359026951995458224286859146109175617393697830671676511999297214178205379709422758823148936686736289450630033059523035357177887434877115682673320186024625998514770957458160195550194758697280978060010607334587487250917315942493180333637318744467989568660029510690427148615947829277782301760708767835133114892713944888856770468307207366202132592169714611575137003397684320646027248189737217508777712726374752714649614493519600573186738447819505992727704821110665492143862699293720006382320243874422549884386288565216580372461489367684740844114277725809806221031257585088394260083519310495209813087399396829003514695513108992312465072409657345726817277006558455596777400018050857716375947060280152466587814947869232776356662562171144475662165186962041194993813389360126996330730354166855076444412556892179612940534306968481204516346734929349216852540685318492757981445085929120535365015828112435645911532637334065791386467123921847754542403249907632997304263069768082510093716235717463405268018801129687572620586057463047919239693995387967774496281976890040175809949954997102526561054110699266543610793317823665088284518110293475346756794354855971583497251072017542756935924858607051654390121826806224796949597906155664239906810308521764881277731983095694264087097493057533290204502320566156723049226814439687087682227795524698967938563871935966093638768983520802229950764982855638496305365165118064197560586987042037377949425136562821752813145178749912820112678257065148075237369505248713484859921113298583322920984716741012054041313251552372957180274388177587803849940709733552680332379113728795821421170037658736223412820160453246378148980051492753307510053144954678690297394077779105510288282515904011092348676352149782068711329206726147990620615462356310972411215542004709047419414824147531954731555270493731469143932790204642363866415175620127347098787177311495658178478705844338867690883682336180570241565945599382046938580630860933103995703053838812195516645749057263679949822860313764708815737310699104027920065705335728711315605532698779713622070689845697762298600183584660104214495783753763549050979597839726744499480285426647407435625532227541227072130193621094419707565903084051230900979712487497060800772221626507659379126754379493349019226643471755176757496163568001726136659667837250797870768433904784185044771207412986436849710828224971124386119735500185574056837576815705148584312442381431062835057295672423268368230210723795738040777734851335649906122863312561816085288083131378692876232600851318393636767979165724784824609324723511835433040457082439077980970249345714568778524605291721415551968987453559846543705140209222152642614851953245353199971410597758235523720312172376976846028046532947131678381618087519048941480915473582868663120276830802298847430797265166470670424636193201975029953586646130720174503158265254130786454054143465980694204568437784908862193185803165351395277637149107632017645734303046105957358461411522675419733348853497351741749988240672937691945613488972984261094389579510544789822995607481638608670952410029747673333006599742186541252337958382578665636912537774914119418012052164761885921658729418531452859410678035926197703404197425028599475091404908891312238538555137883570873072150498405021130584771946071133976077979390596472697607715088908630425851464988242212548824567429992357349695961636851915562502369149724962871587059293070904159549850327816286964504673972771830985776673058454958617149315485886571891787447572862440794847673953355032748797705832847779896109942403479958391892682535636094757717013069147218362328725158903104759709357979293554840334882924864165948364616950031793892318101912713893106959595822792131180902678020599988279727254471941675403137097097742118174876785005757775434220503454265460545694572072834497745495379795272055446130800000871221151802212043102292823634470511524479286469062895689859174831186609226655625402293356178291318605736633268718038889967126331122376683173502278638954607673467040944392429902990096385965103575838626452333652968010178881561839346446197868066039452463819634092497675411913353933967055717664764431862179031759746817942975078010872807767914577241280505990268803674916940495610882989730585846994399953479744441005761177763873698871789272168359439671063459040223560496431965395715351906256973253207181902714869858738486275262080013234443450675411368390987276311477440722244171020194556492891802467525206607494324871191902814821045028606699910113728856023527736947920841328446842023301922338319681255448304653859228483923074629631205229984430330737974947480705982496987094952150789014560617430268788988787810454829931887632428691239547331672031003317167553602880100354629324004290552167614481433590520013055947523137611982575388519205632024123452656169575956071840342166367054775933492207269319802036118689500678790910703909212161902051078403632495952874107340718686874795500269173186905298369335119282863307463935879326921729499044278963304600561394937776086099799238176222816993165120619917306445222766717668302380607085256552120686823855953164743684106111596081545500092620076766255751512159347600284889310479452851842986188385711175036957779881035850070261080855092580196311209883259744692344786338707124195270281133621067892453609220163452732359732740089444079663806487306093170719818069284174521217789417124006351563480450276013929135182355754049171343628713839815395388929519992075844323098263436442454336300088695692205285759804103965691327390126515372567151262417681092821522532407659072029238474345900383785395485455697547525526562828842366295297057445139662749252104128673319478452340709645268186682173090135516005579074523567334937134047195422237467606376007589745794465972812303370511594273696020143101425114243042067714413154636281655841051993836812085504854981812750333701927191914703020481319540209445757639858767667139322878496570856700915924618487170947749330167557185297637402390540973919709243142832153793002522868414666012389923130788009073286911868869008233437937132137331650634635597686230448876838443027653861588569897178574209237525151737564879785970738216954547892507483846881244061399773914717698798635259317608570144137730195272041334865853753531019223759362289557933554383198027389273347689964902283098836372883094221569352795324872922252690176345445858118360839745534398780117221445566334879083576015994611378233971177837844894936541259408017255153176744903865787758818741767417340712151759825324059268113787260047236926261538734887663870405258116316894291900395036556763485205258948050085328053553237431174183620829447496845013738245928903151045935850303719546229982235504843921946925179245034421484231306339059150751836663062042650200356794439903937411626932842722924235508161450036245493814349474373812595573693309626662435189464781366470340769338008787325379336946597593897055694632870685866004071851500686578779253909364777646829308230131937508645548761660379286012946637559786382937725297047053050264561597299456710185887956481887816721538267270107377075002349630896225293371236835414332773545135147795773661659638378727917716461800491786356622592445815576917307580165921627877792107240645847495605723710197172212170957627172139702349162988603584596369062784819632953204278142487882533662348016565016386904982826465918686700984018882435844042050976939556783944245149948913361436394475869098965216167993966553696952144024985013405982665530505670437055331085439208313726082458889572475049590046285091902582300356027525430467472184595665560127223646275954552028291392513449796323293997208650027968177857867732783433513054184845545021600362779631061823146728692914427065878873285598085316463371925776729282751332991990215055450519476883640224819858957345862409079296811683074054107802151388966852381525084232309336802398498205752234815916648099645881635361385024916742916736277486061619490476346364772296509839856476916180645631332061731391150610448125668376886510731397805891668992926690076126645173332452125365180055618228672145075138363788264474267696779305388808416070655028373742475703361087864787116718325822064205119505497092401376894368169666419858858545911414399082211960410714718653740657313481977845822408553918682657330769742574023431567285237443453350970924966831809908191777301990149144683025406809073306425808137855311088856439822042080573628171347188347195178204602032245024076696706122378886120375924186539928254545196485508318615626044920866460578210591108040203621842698931781408085341085021968119567255944102845107257938351105267682703512100785556469958164110445836241875357655219613495368531801071460353180141003928516231672154885618522374599487316137446391879370695704461567471912952077501061574274877589176318943308125687453893870233525826371812917545378883989487633470879095175379452625881944386705115801973819719834534829544967776194922162139461489595508776824550537929319596151794251510382003027448582772143707568676653023019404637636347721153913206468682111899841343535790655930686607253587559994244167032581467213241455300094605714479698393776348234812126495990937240423035772792899450406030113058452619266557822355726706687706893059124248702647065851308499711222006773664974808273756437856446890934001874298739366513307337949646377841597888198928475429453896854781041074338908890678530515500975564605897938053550676757521172442655226214691262027402673814188927365160190615653446741479555907842807601238057231785014054233928764519266097630154321323706268812225981737110721528441062034309002042719768618168609048050156937755051687260889260351301996161151088305193509752331799228305728645189782872786096060994715138637722271784971674875869593736284557922624886401502299789249135251810683799986266140613560889911752436359339458799796943722992936188119594661456381678542738816059950550600415768918492516103923622453448652070984311241251275902305358340025321502776847752578259437261122590931299090395592321497148162109128813827778430750740454232525441877136066452380392940666834562253014826204050857575560008417359177037006913875110818736036897614459017302033543418324652758293721689707016003037336728359919472681576209549767156059623642855787343063588305080954726577240818478345451445796125594543793077978850766804632803248874534465844656374090032490980649076550359537175491157063373683378931211071088555442858543207434851664164355394579486421644010880085866522798051688949214105039531465454163206486079072104879878610835778919922025358462492412126346665490538204108743687266233237225488724106148086275738743201472224510061955214003868614994295251633500057575655767378084990067804478955545213048430643124815030101572537192123776721879655239940688554462886455397958461288733828076582488890929038591095445114329368554247451799789135657263956130764475198389651920579053581638922361980092634911978438916717843097692477046674424464105752320650944309507009980809800920874000971514948568907528779185173347020906144254428551366160625190060375502597646147974348247099018880378138634370517256227561999622886944208715574838882363427230955456254211322102780563464093526385188886732600486309783207503389082910832562871897832623360234784234764287490988568337283585836319936268133931869771215079937564321377550420877675299636133176759265974731445284704201649683946851894226572179870539249438869475569115416936034311819039748918647529218548066617858142378861739366194789806838620663817936250841195144281041233540195605269413169410649431026873926696408258370875731985118618829457239694557651769668553239955396575545444960323424873298663717107797433734159017012714976054841676787753943372681462268806484225296521212230150395241516871254226149358777521179321195031380134206731053189432430228773858185528703506429926548692885944514381390116581484133493082126711538032090180960504938084579798955152780858732749262716418830458393134653848471858560081576819583063398192969135465573430046838738759200074390141063079857108910619958518874005529450360264051901689703656193989866180125102490231767473225160354382727201914348620047621866753559111206894659288136336464647555171812282879034359524537940299924693374820261796864942222831743335902992332682637554085563743982756438074308557325442244118212624788848018595786954447337210969363300846920521056200217763956903622233907324345196955328313649263857490931077579590295600107366014055789350871191581346495826529586374079451699745135399297741596235503918635398568825499214482535700622901287892546514147542971139739285986620771161372446701552986276261656749642949641149857744195695417044638434814361199156663983783459076347981007890580258792628210920797842321376921989226045187848944774450043714698882172804228380806963006459128637223521993895653808325509222450988403639932077510105520872484662441550251772331459345204428984641875642108852843496200825319990715627886932130550184654650004913877358594220344893511303360568176079080794816929430006973489688391876239736835330333180845050689822674990663230209845265795121738083262232120389761418650928025673680518554685242130352500674453751137403733518669478010800339217637418927514859449460639572815540601666009556848281556846512121530923533718554021796888578516205800536083054527074187182139740435390216654709174994198877247766459137307045104505936539820502433688379778937031128080917503381960801812367596520483098542807618492455932015592564810573446976086099268629030196111141379897223535044032266839045814832606638664752615274030639962259935879918812792253761179200908427220206118222700084979274960989331739777507558078020575306604389026991854514676623186389902722337735253394809860021268211650066393804129208330350057288235336128528948522931475570461071958016509849978657195114664327005922045429115486947628009780333800023611672589416862695858525124317529730709911288401775758867878169180969720287809263895999584695387646211589855747649496387743387600671141530259274293781185708394853589140804376279880800687013329174241849384413409194141238275695465175560957736908453573339925067596707991594585411831849415178616555446150688949674367354647836922352516004708510637272432820314155668829848842985218768448969168610441755104987240062823416729366473906222089373014278666552679025853963615789650951072956210029291271222492963876932599266921524471193878998566822900538672450960169244848199144485798812872529448142785873164343092530767048229736421787995957007085706136942601167869008962719696663401906825517460615293661009400391577725026989358821844952398122497615934340269339760187529995340380625716545544780209046428571798782921436179004999017771977891810000521578923667279540723846581544020416129376688028069885845380096252418083153910015204180911168442668290202850149578941792810855232255368418350868503469557627748698508743003393914516613674828256091693425592949654779450968098889382815436513928633391248383320073223680212521355181029381043036313376141214211525972560350027924450737139047067995186642837138305636196739708415680218541740264616760984535872369305663187711385933481772454007457177044461442134859458307230015570042855134007925022203877287837563780470309968356645890323591730151388069574025737905319469592924377257335200238533653082387258752314584710478699467352838962302984748350225821177774643524514292475062916941350931646735900892803225207834218572476208689841054302860335444993420221717722228450753874110885948398592684468629223738664986499439383188301106360517623280626267805265319209666967637931027871663085643360402244393545409151413346582405214437795072060545603905271374296224581076374174823173426272763261695981760496435193791102562398473758894853912838981717778486557695675068419199635296651750281342471502477079413883977099339536631582573585574159425760913626986114835372774379969087700692522362614677928000132859801409743350306643139514113595546003810285637240294539534511995953661213392815840047874801152649343660063378064363809642725037255915895608797327836736644598337160249558462599051212188069719285443411525367397599682629007169635918786250410703516888295479563404183698396864324864709775567334652629568660451312029612985327581921546201106753061011895880290997847764109853974034577116405949528864215901873757762163461481939463022160820645842552310215150829463673217775039341691387985253928083664117208762067665918120166566651983712231356838746179203020195577288641697003183796470538057160740222148119369177402684558498302430678507722868182904846438350669478899333193171450304287555164699567085670539601504425347271620726619721838295966491017343360479595373606255216875654146390991440178905003225958557034112086588297208524251115325003886984063093908334129522283802188478349291040627412060881954887126358087178664508687004920749900261400423263198841542363599057470316409402772806304602174250633908854857787234787732937533470021633109964303683096293675052952471001156641204416479429324968206431182620246510329832787405358897556944240334373521933961416517057330813837031561764151984252698876205689642889327374173499205493183186177856362134063224734729107922713033813090771702240398777658032907613490316026069395722073887283532896006480356304633427682370911283886955296740002343040724580848892027963572872309579863478165495266134030025327830924366205555704317279743336104620842835125594636851860107464898941183162283607841633741464547384245185657601112525518654670472969795540519046762895811001079866274781653480386184165036869676395381143011683645083422386957836312018283323165673708678559163243001389804187662468316389477954512469462349690777235017930812316917099900349320960071133128914204388137794337984905143792425281016520530677985700913104637082310947974215011928545760597472128851220129721146584146256229010388668550919875661787954980195194283531676251912529209247812300912866418048883106679541673221787974667271185100985519681641726206493761646286695783493543932368706246779803640676484049837410236684877202736966667364378391468343321122996345499197207673457136074013888205684151409978162051016724638641882127841822691221766827415686752966347039934521290520427933678047133042168468976044955056783338228775221656046130765225621698101527381068168490950999128103277937788721772620395290882221558920222366573362609740969952510114584068862849713611686601538051541130169835406745492129560152343273468141194103378200606724426325434992940496417949223483258444738597184910314895100247350862684333666179874644011005545558519115369629588057737946647958805014411630775291193668359983479495342625719252272491467880448201664808859615471403685606152739797319828094602620352148933711210202223777132994254506638864527228949726494182100320212560937955545656386943865237735426761195235754551852947126280416494255343279213781012536203508340241193568537244777842755829817602243992918409100828903203082998198730449585589022082527078936203695993641954369619688946123909679568149217141365387829816535722366152179994328436974905396618725235282297876998239817204412823887727692163757331379275138603030123994657042219813649008653926269784233248877336041220735117684077214149247677117288091711807820313087230193736737010546024379672066473058802775073611901283819554657218056245331962789828822786530652776447377742503406654027509053766179888660250623017708640328782622412266499743408867086133495123340765325534633922565625766004599435233408385259832005253841306180863417088623889512793961963566949114336133721600840936856698630431360379965175926767480223678043722646190517328670500413572324242892752179915459702388486803818568463371318954534691018967533257441245027827915037495522171653298818970276816252094165389407471895091983773200250743200743790351560923958118801334655323846442324329387732408989764174063096144648724920304562613086635670928503532549275411960276323567630277540492095752100820372517003906875451828389045494386669159408828066752385711092517675390158988794905110919077487059640827936605362733692338180501746323958793969648655192481260115436806425793563844704932736627755447512762250225023109142975285088525675208618916476645061608141004133324884015890499214477128379348453415482654662398917356092497240792028362819425986070816928818830091019761950426704299508130785105431589958967502369151015174258220559794882220852870787890028868009436000592961683061334739862259821762853605660616048278318846359565668418861424231553148960364742914474582142414283312001186158834756053524968576560869370590127725939066820820507174716124597754059331466671978145058269343535357617417165077125640711658711384512781419622945207494480772446058118620563952163824789574806802098855559936429063270722060335230077751036162345388334427662275327417149801706346710330386091186062419451817652641211082434585030964968053614880019161912168544787818647466651596930505888261813105604634161266151505709738230796783918109355097305000874977454075449689603027930106122845633735412701616267790673952473040472958621845658151658432907292075280467873031447550634252820062778839626116185028584879721080058963431842601201838809016724962062805001344150108776212553463658115258843344412540180218440995735087671087625478405746511114308537096125654810197556167605868235421303952714831750694089447939914860454604949812263556232642216867216366970586407976286300666722506013669623068309574348175082761551930051111353161984876763343204352461749441606533340787364618456083831172935928351594139132068809370003508605376198719204622474729385898535985666231950255325056764921538267300964906353950948241428022057429737255808000087977279963951142820352507567194652652875713930240591964672991064320593584335014876665014274488836296905887270378644643941468420214775415087704018326293566116054560927303649681826874446176285192099325881783082013024189904370555912190936929973578748075767020652952340434158458022959803589306329462941427641156411671539086659971521795476498361805859376228419223100972183581495101670890779103977980029927625278571724813359189717041010573706269972206070966804267009716475758929235188057513645646748809332760259350263490000003308286572816923831845149011728017141496008436377709280911551283391749336427363662276000387592113521352305882289349027767044326331027232133793340577915074473498154900675074470117596407846923414157740108094413681919329606117252035670046167310185516055010515163438863404432909531477215516022447729633018712065615141443603878973908588093034670615436524291908253786692116627530565882937594643041121858122711819056396232395775232879709362643516695711795897618877987457710786657583241533340601879985988689278596051249734596799591417640993106879850571826838829685089370778065192586810890480001742770080018026868953089079474853000494263911226438908256153201846289793011981612231067882932506269774522957518103229150579206845097078721519511323349017989883114600116815547291491858672960707153892877259564063135001442457719139511386844612559115945308941045419686827311884735658339126201549872299869811802112571244005666119699148159415522780232566926189662016667292540250834861308038581635458019103952355385426142195861560936887859772521568552755643911495433340064928543055257908733068034618974533537719574440159783077318597333632695879414476180812612800472437404713326045791946948547534667206129106813302153660940691665264948231803759620723622754409477742212877466867430625950348110521023074192818449831546963932297798185050427071070727476515993323015852348691329907684383921567104068620076624160992398110080938362594953275372099310614572166328142728711260262811611520171008591836841848480874610066151211868452870977316489086379731275240718824069623621746317169040988986233415114177881112084217787666848870897823207565160167590415220189739200165731405777579854835881053154764744316728931244126848255870928122278102566170013479455688992054383286236710601192669288619063159094310415598633250019736964017053256856761383156186936216472681774171324584486646699962125766739008653427210284748345726342638774820522424422357354578366078365270460853833677320060341462030930807535600580027792530261487952484339136894458975557100926571129068578974540719640015037493460629517271756520707163935081792187669546046006516661302280634693801230323896274594011109708947999382857164803412254474944697953544447391455785736589549750537762966670405625593325086984415577094384574857801390843535090671544390495341622668345921507981390196620043925159566520519757561298335249892569333451786306195992304436215032633839591476999653202938370000067582116952280746475757533244345006364704747718108826640547478410536490642179758909203364409858539653256837982154922259121124875682765438482203263115620137985591443452324631964145541140150026858294145468084726958943356311668186561432011542425157090428047266903056841028063213892989125265688374971698211713511873846906268196321066047037703442538499890896791341558934714018862922814920290657204968089273469835855936588949180723809111493795158397428617694451220525359782269761227538095238575216842879797888975666466112780403314516320401181859659299954863700726591591734331081904711663664164638042146258486144582191303357142321272234642783124964830181265043312621557375302795623211470880166175596067220091796755917445177416338264911445431370344824755698550102787903530171930949194957587510871927384159519459312866033254116546049857952965478828888473558599958563346320397566352480206368603911522474198173878606471097921282972157050129614960137227574507426960013257960321241367225396597356164968344980048058762115596590159956570001464877040861382091015670116523426487178931881566452130397378887287111829707107121638202546648458449145671980771831543980993094586138497796012734889635706520147520546000410751379422561824872272912281258686634244634797296625654315239938743695819861405295671424660086665013256502419169535444157487281770358911575461583123947448210215130417619694655384010664080160022077275973745693536517229739680270523235841890262679158072066853787454909225958813184614975511589029011455930240626182258960090267390915131328411622324204310425877081544446381956069088789997721580195318541295976123788340568486427361919335063603651211843111047446708332013246819280500575504131958909069943493066206787056553847347297714629398782954262302966454508531221392320202701398664392748240902570413314809299319702707638799829304662510437399013939108013162296575007938374759906758303300598486228067558618807753973244378522402109289998828553666684760713510887601509313788063838581756674172655066428593192741010392317246228988896079893986650891532678447656447035273492968808029484826932065456168822768279598287911378874625818655036319276060645451393750879525999203988279223513317557459880483803668171920903146052666008224094939041791804276190617303404068242110500377650517141994391428222288079247340998115993799226495639590958664670757935277427199491932149351768873134712324303749692499455370120342776697505461144707533474132030194705333997654011290981758944295226696652243585099885344122147874458330256644650255890568908171158285410117608006330771324749117532850652541650068585980666084775178821186008628473027588590299513701583637922645971885948755485515710277133085338255581357434734404806160171915241846203862817595907142318462925647906553877829326436876059959587974964732643799945412008005622217705139549729947792455639019393201698552320296445273233883446190953593395325265314990601699698829637942303646205832750680712094392862722812345253266939578092150093475237126304706715834104980961501094761771013721708237761947331500623126755163090310582503310407924991601085810287818219184338932632381939685616742000675974366265315298615710746278229807889922487124943934058486082191740745669387632738527172318155196883098854965916928434458122462100984512134436487130454015282015340778218163092685447234547801706836396393627787411012889751366970954466341603087894564332175539408896249892447342530261983659652924097040970233599798253993565189257937381716700652350408737776981384686106321781757384486411764129515420487321107449146095899029697145528363671531191949557073549336637137731989556856970402404634387565570700093166375509718034656663580681426159211107342286968364676198321621824513351160472402563323205779297985470671752880652392680716818817581805303651238796198323668644034733869929430711925276506556364319415499221040359708143591426002562781603907350867263199734759806362417273380710880218642402657218739329589714042270077710889593465637982197174914909006596351069834173766040326104605691089467578597624579059219336482705409286510049876840931027628733109437648248523638062166555541404375972401695454700568043570193694636000922781042546648370549151867522637117644436760803517167925031922492417535429697007030994737413935049094779321786299403423685704565855344562906085226614777034870938869485045091127152345896862758655108785581780656588587809347415710468299374087573596086648706148275653185848596309717507464703386773932108237542246117287882307082809532882721206250148840210587846279092676958876119769983173445056954076309492262797751807202191432473228230418485141175280012060777215203466427863278857640795111561616914572290466835740348394707917177615654702450514739581080736853865993657800909301015010839679190030976282500933397159479460005103760186056270611084841653777181033183743889603169711325428207743742173778754150277454002587719795129378059263204563718859567633982916548717974015593871539660310524965179058698459227422119773414341952820961182976283411643064940260594117064539075982743274214319758151866165431228315652545508615984720711311497313958809296397625886702145118953501130449530880542157037994916809805299769117170728937733995623506089849657386342928411565713546650986256135305107671356843385040777023375439004360097633199461839081086276939378788828947521461964835561093743894792053479498068927225871333516910691376217394725038514737140541675531856414330616167963455159219860352503657122968082017768530827810300623041217581643461957410133990955928998586135482845200682356279743437999694756766204450849818897119828240855993590580419604313561987593357873971570949060194357862420116736748268645172988566585459800008802370172315490878512513289003639197820453038746978696269755605069384957683462820784431895219267529709041592894364877835794605696889904368225603311244511462932714938320448411120142947958343689045781267687537284755017401498492650601209170313434106608180097495578685537177697655200895061960924240120328891108370703879657383882281438163941969204205946758543818131386797770407544147336910780840998935583056520264654938270905427437069387636766337274711964323079311096675406125134044545851634493593221818158077576267460535653896252418539965000515021677661615142289830038271810527983513935879053896051632703319768277077009513625207295563024461400389918615074669978272351788425551740762177417880417154282020485051316722285561761202010280634943824003507473314091735581162322655873437600360829487838715772779758225169908212545694084588996213885721073724526856491524102545850818534804777729157076582431936609980312214665200559541290356504327037999278155355751627656576610199979206032733481765351232867345830222005645328548780073028184063032307755696483593455370048904409020315927664806178633056248030562295471250460311784752400641447925555456432707349174891871003755178647805207201851067913067686230670934211953772960802043272125945520530290834450448222090730523804287396060171337700222582906625945996625410561798361530351825654955442367297487680140833636190920986762652404266338772767524296191257595775258168615627360873179058604496889754514823738209795495355502621828401511930962661503619653335915130547893400883945116417087683925598225824484427913748053634263902464251984437906392120987874836531659637452614084000034903085034790611462478848924563917639210974969190317386239149295653245999688393836535265854732593644615946964249381025884247214665383236081285441622088832727532641503654388959714822082535405530312919366830796550009917095209126072574422696302195488154220472906862287096058470036606310940601776315799933401353930162235400332107371320029641190710975344966205295119150247988491590496665151820324361949398411328535093251809915534946467359794687440462469341179827482952298861371123319721005044012923384116535265011272738897095139454027285290181071723281484267918762792882604608800756038532310227173777488740938604488198839829283349375737338216268271048423373149339166200614075095939517461606483083050304191892546705838590709619476228982624706190446463833027662215051923342217104613330553267372949962200356768298531103105289122171827351017725399395448979688668529741471000872044679039111059763694627077548416143353911973196570635590913797756529958982325153731731852262185856312987485834493934443484691969497915855969360320839602710392814956059685384738481649223096538343303055876744785933633559681087897168981696974657694503184018512507879355916130719096054666551383891614339812087115115730248507105412192448909364067174075875302369427967219414694072069589958178402138636804399654511743100646099864511666518376108039658115844588206485725099703049072983902810356159689063974793306697387044710954955621661358934396063254379158209452731117081915009284222421457474302874451300201333278804917141070796669142820478442692290736783122876466255168103859653680979368416085077775741228637525882918628036194727688132024744133811379198935590070902717818537956286687709002483449115206214559132578305490205189945743696547024547803737796268253469148054725221483115412213063912105325149986266995404346232263646335797830308573855559593996057875626943245275288209243216206617739584363624813582340800975593568774625355911865158494470666734886798943425906444523393636266608012676753289603346868280639102700207359481846477755229249912362629632373701136761676130296148025335248145661696252814288477531749202017904914804517322823020117167241479037404751356680787846582585091613848904802191031597189071672932971758619599514246795118876617407636087097165354933952530363797933004253690323240096367262631481371827218199184367274746524114331058188829198728158938216838282821116957350343171611093879656175107143055597601777815615436586489262064366290410808800701912203423766495463973355493546231464770521294964063990882437874559235870935362222384984777930544458601558836245874982201045125467876094505622357530588513414911712493399012542757458955590129883311144671506260237382999600514798365002763068267527492640350297781565558876860674851348436450227886199729862879799111976199935550453783675219898148737386588690494789770972906501377501003196468166624351394428740962326390480337354930477548604948754670276909006571604396656617610807851491122406548081925417867674661520990527987144014004585752638246732339763283264501535068302262660099667278924792661102493754098696615123548204288170949486132924914554555237353684815984582118689762999382857198478665459717480403455574784390768159850455972360168524677400173859258603063435060175582803916789451383271634831794020561067020310371841326905600077854082332574016618222327934886839193664129407796297115727738394933410580585805721057081706956694995473626854167833721241733086030277569433310334238720153269274137873681728438085129910903755061699751458720299517077079281914306001101075419132139840780289965332303756251311367129539931125180294703791730599856251139685814626632068266997141340532810087004913749660025118343278748502033137439006795377186198377650769947902589916862754041624351325807539534915606629686739655163586653076303127115842571088885144150950366226229163055101381669836484878694515610336204772962047908702194905311640828071805613236355116531955839162223597928733487385068069654432692777492648352831212878521734109725707983803440757475722962860547920132295010112628690517862310611576025398400262286150326986302027562818808250743804172559427306637494218620649912821400982475424621000669605543982674789841812440632164691234472593196047538023814554984090349829409944702180017066311811935958786594027561841326414672346260461157075011709798722396297092675346450480407178022757607579810225485999425791644263392479970911809014971450907056567249317376631940263326219233836501777180144275909652501388414826551630417565631003235729831396953709586687571369500627393964285083724514388508757919517264219884035680959626726519548253879760118766415226820565466585740932548659672524290637853750317928432345450839645335649824136776256684965314734879074043508232075539965270028341028660692321207598953958684544446905690508683625518483970042060630179589630443294268193904798105198399848238956938198513196690856306868468342293671588283378694954940992979389267093996038470251538413077355487667271913634196115140154226553563021551092088571909120604627608226794489327275252165854255239386110861730115823621493142312101531821106636548431749880255028727851779053922716129052837830490836112015616475909668873174092391513734992989237165578348265486956569693866423504928229864229114505439661318890925884125858189953637287424332533682573681052196981908152201482474364536624404364180344295098242485849917036016223103929093852718182629402243682411096328756726247369379009600715013357459992407896513369844530379200353104182854804637068900530119789772126497940621377898288137701780575196401239845920491368606837410568236272698708281131085955193389743442677746002537922025234814645314838927828671279086607224789438663103777398370544970885171135500570866323743870290046429111118921851937722358140796445174351035368427420691171143758505934518553204611019957381772987305144044020635380011165974190153341847781882670337856824336360087857002640840990289993941206868765336349499718436836346022983314581922883311012706748895360318154837935898226494977815160227888450092770950144080780876727067983872555474259295168363247138577937070073470643050005084314622591663972389943811791401361984400692343733019658755757619376665885377385211117755337987113588786836389245955582018650710057668857388284483818054758128408230750562547729152110517248419461993145684772647871572636654634459868628297020330417606190362185355612141136564551766643510769828424971279645892989202041346787064126472534340480253289889334809169058565072346693706681748655342881520183417889441609917013969420910058982491468550817966934680769946658861456216100472244068344790060267723225101103507239715743864477607620243954178408153134074246508642079730146345890834556493728885437073883162494460926183936949087705168966277875689329380366943001698587923093399321590676236790116305788788750074056073931285286912488525350695889987681696848153879128964913586743836132280050149060913442701154662375812577013998867590520794685053715809368184822476145683736448294600827205106453871674893908622039973269217569541574638608603234858851248625578676852337177045680732373549623883111651023039188199959682589402519713221863146147983308432337006564179470223237492996398386496259711830402295106904771262752959270324134377537335606552616038064523153578593650360563542114473518770416920498899231543924866878697941355894041668207070458281431905978082327574582265831265448992787904932539882001192311880885766768654304762049748790262868015576648972183103151129073575702872683746730979098297075070191089969461482228458089739306158464787223563729257731513244364260606471796030424166083017391520771426532058666151634411094241351482356107687207070340766284170461649083415970898417224566554492908015153764644014358570059163547926499823320341558344901273730403141379742153297286029570422362588480372903262084558414891205491328784630094182540053408565256438717871699005343840181672032495291687314122767305231615982378825747124262147802264306223717237271088156094916471015280891378588856249286298578538209628917599535456682365829919202006120581410373926480598229062641853724367323383849431288835780235596118437417051607030563832316547659460967719706351479868916394397651895529160859124625060510607107405790298957313712041982733507357048316048056139094120972744166359187437036036263085285157504428905072593294930553365399837178067653579933134437038650334839384203306872716689805382576043825039355836111039735061581351253866920858655756075246944820733626048782838134558171260785587871489349681250624839218481944987322617255558163493434917168629662225825003450424301704322357768886768985010032824175381331463483288838872422327087385602851957254266786736425782692206988928623663730600499417352371678144569460909466555632021419883536062087543537112684676529412314987990635722628156949376132458230096465114812913517350529854686518847630751822051273182773668106523719795031257609380175912737298117446389973736822600087692454561548520796653318782474574586467182684085515103991991704681160451413821005997913874359808767884518010701777598509952799304028590335355967236568401935449906074834149186257771150234417433158826060925296246288271650433599084321486242700772380151999871347215812369076752825173134766343049723781256076038578300579621380376339120176386370650925345457842529093981919506791788239774142599095391429661735815321016793594008425714943716295541753214291198892123974848714775568742568516891379883569612264280584409011395137671937764764567392143150166569409151121869373297180893247600797454824566985757347837306607994841861451600872096083244028557293154192499277640172266182919254490709974314282681092527652100245996723312536797404519648248758813810238952790164864017847309880000842883895940340151198975750329758325536770797866811863562113370970066251914954481321988873931362945952261773816141584273425800284252427591142789664651575377971056336916437344056101949643591984317898885770360036153413486380540242621394822180320188866489507452384213489776204302199193637646118131771246793770962083134565371982823413769806366764172814376475334605689414667561635103924017566055028065749202438253819580558680528535930316805077702911106844167972296847948758934784756588112783757250706690981113164804466630087060714769131230643240566761707571067689281730908789030219497442209465154442821718302979945654706713033790688722097980643309531409350685694024622779040657785467915139238017632669420061975825560701245391317181710508348479793986460950483278831477293409278117523969048091404426007659859645763460826968460239777903581508317782922206587751810027064862875350771902405434296490700546317511712958112908685773154921142617054046267567613118751952554750910706723370247137266807632117691986703353821288048349891355347950344288642252219604771919675901511499982298225531913384426734581456247743944025522196836834611915940398593881740174822686033468622809740707055080818132640512815120639169020879837027320172904049669170135688926367217310156300012827680102690409880004894120010571421209240600970390042137603800758551346895899158641755700283043649376309305169386314041765636946196460017423297547227243401643306002920158469983990429599519261197721262757444509986868857750084526931097458065529310448617424369272895045942711655482728189346673379954533701590443158527960436709828519730094696625788097413057596428413766181868500428028480961337930257012612168844467495035391049839794316617124630651921947028903341823094785036831963899144499687562895810884262305226516050604335515647857478890007553051320579285261457955300728139421578476517408567105302582331289895579993328304316194836866935855026258444495746714528450246699022335447929776895176015490395496157103098050457184364834027162830189681523120258616420810498136587981583291818030718323330038417896984514252472028472782956407140191898974250180276121558145253473031533661229368735983754049902838144759954603943231656391037288166137136448946974914891154653941690484685162065411356065619175253728334409656103397073941386178035424535682957788325337447116405704185750086005766289012908784167056017844077824376851321713980359570994230003366853234310655686297585100342273634898248701110713947018759217840653621687277017642765045149246213419798499875682276494127807709671748921026799533937040647253036817741423765705158865091870864623381857171163472149492683767383912697840045084294495764134082063351490234262203108432849901034105725102129437141134451016435577088737308122474856942072586475502792686192322957909839094734721238926783547226379225416227420531926923339800998227572850761450020890061601896660160084274841981960760064941401861694223347846370413420829161714187979899621837342271623158314884171017511271850637276937795057833040997370281041304582494761392522264098137833066663272248422757755655224664829119790265102036483249034618982976085655112771606190322524623401685769057339138825974039358099205161108417916357285580703945083778706321367971875344668556650960133069643995019213788813689229632408260191019110555301800965356450342586037027303969517182180372210602521205147723797115960553377445604929807098905560193314931532836052264714894097275625683311501023753031462271110438427060762495643154848629482953297919341457121765179016036665452879591154714826994018460947932387005167153088382836760550426652609378082650829726572703163450731508287246917518581245476346164630543344548002482295225326991256502256766219642105452887708100083960493243710185867858521953025010190016235529235888506735313266055674015643472119911217735014294816990842663686182563280281830350192488421188147458090044446903710708676872015465494170595905870240817122086686172227224063235667773498556790588998468754143036414956988791562172876474108609001081742656069956280910440497893123652253757950043637043327360885062427861691717824593303133533207785080989393799064099721145067384911021894923975988451162429800589827320240738168605560134915390258821372633472211394511707193699546527650294182745920527250853894850664109755019965150882862572493616026371452599227576903900139671572547120224978496031922610536715986667843014586396567275666510091087070447698289645446487066107577424039763980228241290467348381204829439062340353975819812291940033497696451216647444127459804557856450269495712936036199342004726855994596107190359575462741499208441900806673650251068042185207674070770985325943070192638857765287264569900130451753205508866670016675122775561397506738393929806739561486438122649876183027648743810628753781395496541104373707179844884650579372060905042925997684324129618812640959423888330034317633771104719723546048497174130341887788677313611363545292277383067173819312443995824175894400217634468543868649512100256460764858922374133989119505595785684387629437238745712282959935322005901644034030846991048574142441266832435023099430622490309869422789235248283475592289277871832313798421746577513922331614805009485137316677322064945673290463960382446236089660490891645777565788500215146389165741986339070174568632680345904889965214440564934780496569021129565516256083072694537982658450843243078398276034716527433543968758285616163451772413882218468668334753598112879558019853717822978464212274504587428450183663864130442535192678734285332738053856415452360171818363729204589230822899984698558625944813688315866673651657424082163607658392453789982226962448769763213969418829368314698788643125394616008549978513893671357226402648107399901726432192701177075349016217222132316370284768676975384379105837309060229295125773269935215374421151208894348124826195235884296738837436277919301483282890505083633847491521697561485819986049371531000462703912988284766322152670273257466625750605513241347031698540635180761712019084633523624135080776132362204313728949072764320309838325685858008757918196886404198404630660995504578762370283960700647829994757593678202419838746476626507876707654894199982350345321515521725931728093209601184755525091438358258477054252498178223441531264239090762760936308971581232682387802742438214011767199396630442332983861825426953470402543816336062450612273190065255794786677118697444752302678259956955761335978494534576113557718347962637079678530133834433113123298347691350434454875673068026634460890600703849524282011878888271650974303550298892566855676588050443538548762283856261015829550795444758154957219962195406390595903271081463749279041361543547796237539331814004898131174189214083205048839707097299788134621014441551974521433318896825285418545546499191749954539136137091170730658738137859355653700179162772828801567730989289528461839870857859841985686369969638701460066145961167644217980053579664844290748672429055852047637014795294581420287749171118113828671100146933093849607010476898677947509634105992496730179752580664065096840715912718541130038843009076634294407884689110029984040147007896506446974831703271116901015013674682638291597294118696757779241827078435376193298837601050094425195369957430009254173750642168106297599222109627220580629594801560324131065221240056919729326270375114854293510433543260995600792202568850931703778344505081298020473107085413668870359940297502584666950477012030385039391168945811209974972846928084024659606514634472698479911397777903862243801570394375554534110390240904001875595886578964059264433644414243385482552642532589769138191095377872309909063764455650097933919584126066759356253837756434863632549199342840244653468978438455150819035107871563113404436218149120261014929756033234637023457276150580641736453428146312572968340431161845970296567815922746005886656019507571172729351792343920495365207365530243614291963134197130357154996355804201907713496891882567099266448178174560378390686871228116778213138384715921223291838591514710992328603726584031341664046226588750291201861315993459607305631499079648606888235577911583405573392277776675648306357281386115331898842684466472487781221080227682474525057799464731808903809621538154633724880832366440737232069002211834925323671243867752998142336917493532992634110484598330013080441520460570257325250222854251160671822041720155527908715102634068065231120099999186929817818044325499648676728387819241294479375225074457446765689064551933474399906576695969062341125363606501423062166176485245301423030778818742489089624291435426138771865699744978201775870505354626805367097470153134637412962584214263210802098232888843928931189303585417392388812680220101005101217051005354677216220803742361855071027358987948450887333257400045796071783779070636917599776126282722428820014813484615226889439202264381141755603425862779377220055559272797312838785884769205547226485997577314264657338092744115050859499265810859258935243884344208018020427576283698598500916533066769763235067508651995409062782624052685466735092311087293969498526109902685424831406486355496720104802388891130682342182330598806375573082963090606311125200605982759210985492915364091532599363305014821417909242337554651699652261328228820791530037133432890423459411596757861490959887895279857360168277501365151344743504143230475336403525658315999002765239104162497929275363439283942481339394420980540579617542486723860693688361630937950045869814231902875981621756793185609583925715321224088127859288681395844379397876966448568641417687242153978500011660286658315769086743553190389074368646041963327025592676225319209494848111223969143834180460509292675960308264400086486548065324331892478908132844779680243292817623501179856783574211575594299958690470850148443751802623780115158650576645391755341460749192869856984336616518102694790627469189839280266140808421409075078144997356436111361839799527508018486845283235942780644706136912213322288803109038094679421627638845896001387490336567593430259241472674139968022759472086385961512779572874330368529175988269561367731404255828019797898799137003865382029626312971109245507919285798765836720512159343221130237948252930931040475322078379210031742712266574143754238961311612361770915172418961747338346994449307804292955265599047575437483502717923121798781276389969581326280496916001709574155967849665245628177423181632639292092511843845044472210155251318634021361508343089779790375853895151539283875700544678023202545017814914271974754255093437798621151029857742787551569339165115507006519710996182761659456865848850122356933652270331841926647293049063013166624213559211968266017326189917465783958423927303781784131209586691503240193369189591374104228464373018334695053795871403389260156189692436512419513622043018541944532927375472039483351243132041014526687196207379737709666364920810218731957320349501202399486070914190915271439100523721785780658160250432588041073037549848606467960714794641582477124611695219553770343828307441594752359678272144799064920395261945547228932666194405848460738869829811965167492090776188089675222234764741147127529992264829519759813562948485061221147605640079383484173783330185199424485409973397270425476059062743668052048657396348107652612202169729655396930959427652282197331126943616006871392861181393737989490603429244409327753214011031572825009695059436292604069165859162836832788858113964936961054833750263150667710468387253084816761339236066395229219948394157830054698063859571909793033099249825050291784337434838678885478491808210208212452826267048557867555484932622231705957394293920460274372981304082124021442864994106323970190858480288835059298399284778055606202036316895474074948850689180101309083475780691307392595558725485731710202423398396055099518352043898409214993240300821596001135990136387672820437485835588142206787172968451291243511451458765930163819032829724387675115159900115690114305928032228166419377771920963836558832179267318775775114290126226560224520644334131672078811332590935227305177452091040416317576839635036339707874031271149125689385895336694706930421440568731371225719691343336485868664601117930196761927942789306465833335620274453507499831389286406941170735172450121044867474716077770173707752100235072171236880794673902552029530630356962317231365080891131471214249294764212769031905332057871694528820277985416020964594117571311272211721156543049514892782111978829970263925149091835732660507414768098758958267180971707827513626670866572056148668309972825201432777784901356864564889153139687215628283441654757532477183958507991284505854706170242577644150198977203500432664064074745810855660616357815123655752147578758885918712750570452886650295185406904530843873018968605929205814968786533438042847664272925159740693536285744848435772240995270670224808037642655289823182906963801494228099821775186055356337895457559938410335373443666872797262767773682083105295730541511246741519240319730451166961994052227429679915038909883045997162699144588842264744240124233053924126110806610408578722313551026186178068620917179348802070554643823768298934574416320668476296898697141255748890785304152684929158791968819330366937493124022015353282086826273821604582440444708749729011202010184649909756774545431085308319463162985975838402435422257065059449166581849122115239097978512220671747289105461335208647369267865532621691562121327617930027474208905103645874481175802751851878035239346925695439066781140968459315836084552805207162597262492678926010797958001927671728123930066271461514511827255397111659961749086977867262860091023217167139963027616272358153371501624305547755194580753074093133514810378056123391595852589655527801090378033562949199708485887326188263793910210979286694646857571907427455074097507821969991906566402748628018483727807836299753921004171848376820498275740904476253448851346121416873114393458430355846621013607093769497858315706786577699086631666955007879317278130679529960022954343189815005764822983345611305044323138061258829359411596203198634940339448541308445499718056113564778465003446243920143642377647419574400698444701330767048949581926089637791888424103967359742040286217189228039387155984647185131439298329331266586748904055747748989901831737398721553080951841000899486866451360881764727815063532950992241996214871229720243859081879125342388246871913306473519682787558539710506108645299211498100946852931222853214847126761077303653192122025691046518714690424931013550016799601407416980277074272815027108103439624423883338936755252366139167142039941645887257036548709512914139337773609962992246196802289734782515421286569303827681829181547539849847511040886095192950133149997504753545970478104863464926300079316926033972300050356359496198308405602865234020925994758771267518310004196944994550856938534804551205375348133265705003684480490603878553864075195666359385624644766530733383313682302272827654693646961367652685620927867592365283493222637963670352031981875468552725983282514098685412316193718997036830509193956363357530308704978222298571918630397282556199107979529801355108821834122945705248770331467362042604593777667219945157013050168778577356914719727161144470006106761135947591115127867636736020856426860850965273935660785445038942900786859321955956770078510772793247870190130236444668592446384832652529086680686495553773932825967274075536844301380186987919872617507349861718903749390789446237112974897801796725547676150774417136016604047522424175651558839585823654323941458802556890353944359837738894302693309052875554875471388816971875572603607161534166232238308148503031020273990176455870404935437282464767955661122201572347046070967504939928748582358028684704797426774267969395974186834752199308658126261195678654505057303492874402348880573980476016172606287692967439067592377690094628453411939090741445652640928554410050439943867815552085102567592501425939034110293720864326695432781091615302372278301741191215471825536557670160924510402255228762657419912885588871386435769196992808407342260889023771829365054130998716467514389676159911399825151755389637184086961548197055781909639265677683150604123940677318249618653228640635484293748839469802370180942708983984226869779139496107707234527141372874659694726681017083141034350309243122390740340242522131457614702482592383730674212252320782159945871598295293261348164567675131812618770714911981824195334561579935125986173200896904488122174258615520716371752220911889281837559678155494012189012475769882081077508745675852700401682669924218928444692145861317481015044147636026038117721070236365488420137658297574313880728344383455489444478679920600646196549756842449260733089462801879453803261723364690236391444139470442162884549125710842669656010397134735570477736347288018515288290200023701453560653515397055614924913824667161704063352623472171702993821443049791923578652501600104244943270922171012570465442165588202103821232156604982513508650864613087496532628956120868656064652553829112681917181856218431605841232949210841408720161795470256897004498180491335914541108767502447045637733140631211858853845153847530583744228554140556762289988121440585401794538468552086686173462965816108383956130715899550986495570419506810682470508475539721191814350481669476856066925910934407052047365249317007657824165318183845057111033668511589180827601094146833671047913337490802674133173594590881238010014553913596812637330226106630118886546914043542609197054482049416378853727956175166544976956916668754147977933769874616460122903716674971308376652866998102361977717356551546832805603771608020774021771065055794820275609992223733393918283030415922198828170837205309941836169387719617592342067999446720761910159913278436940832250393958142149930510897329690567899333731839534820489485140511120944742942900450010138109464152554631463553445842494450061821885071341002203031771474266739596785702405912952048997138739820432988803579844979109969631930780202095681580623287466814981239302476392928747873999886235797009847333311944092627706493911601804310481616384659732234210287898233741295039135508286920990607106669748753357229317425064159699844499869112590085872931661327868121599557270600579061982526695833817961768475981037494277866436497376746717832639907828640804358967314822774402535158726810773884777221081255358793107112363305733874887322123167811896609922141103075961621081195037427913845516666726519657689354735718251319385802462252189367686424382821724270151029699382736130126969543109728819060165759275188017925608445854637141710863681661294796395028603056937086802882915872872724972263636640180528875585346707571608305025626867483941831484800581514694510403395216677822553716840269104796544045530232964490953815808673381432170538209060344781842106637194806890992170144264964285419501411896863323851983365108517257095812681591527209760660921232432266419308160823535786486280498016519566173275316809120249070177343823841909812031723930625824008957695159268365427781291150474571937009544292115177359803708069703465738432880117572239875804483694232303520418166130343647826102198522580226288123517337167784679016737921986501626234729719906800625279336980823413744791447190192909137075252819902351890907216567906904403555391495491608017480231286532707814118957121383906741478210762473630623091277435384453328499926872231556787531849370961657245726754985535661828453293756985315279329638184820223841516003706763159164475346029848234260873420331584541161172335992825932206326474263752314061640866827971539461906250613035668002317005226051968040941584807352875015299884818845147286124163917323783615483332884511707379076930165189398879211404546913451216733848887307032392199999670827824147147701894057314906150755672131534872948668666540266793994545980920366814969259026937941003767304126399997949708757091052278503193056843099518806084975669697589773197679061337822006215207540302819731795667015095352911879187633267209626064288822263692445467466192258069630204932492036333819800337408206677897528857645653173142914769669370289622152966024803367674632736793029019999307409554083499341646079466782657207746603455195023912627745049551150465164207906476522316182968268636700349328509747695159135130060287777281338275668354498346363198610967123167313326253658546513318957759233138942351677724066415960176991335140569796348396402688044324447163064061076185655002738160353022247016970294091493260310048617072306846161448181228336160511145922506498772168349832371334618694234645629994428632042827697122129958460729260407910288398798276526346255854768907119812098267511888543046181475897354466718004255184072679607632226890509568396980136938385905117368934159813794829453297163003687527642124151567895066971347204616838088008408557570546834193203905112336767497915272097718517012104059466607757555040717564914577309036895750999986980620683722260691499184442056444407394023313421696849889505411092663416797211440562736782495496075641876140628401604184780132032438062624791565400848920725552257409242045922713655072481361590659900597469987422338465578374227667185178680830301876743477553872676004704758975175923854052195203348585884291707402394875081402672594571430322957178299074301448392461653467772077112388740012924708112340484930502096711080482637754015674659035800778595554132913988154171811280271003494978198422092573041982392610429041964538849971964786060074635279631271725614051894771837870456832972759115529610339657902531059738054284125759833863003406521621796381440003851020691873090219597878974048433138488975480973742528426812458887657049498159180167050029155665057021279898395400048761328317217680972637854115392589004559684477437455962519479664754500463882188205437768017847326968657067272113300888507664671873131956121743558099772180020008369867260796180613380094973349227766640143044623389970409126524401332742388065349513630910399108560348902407790762977277586568758828848309747532407407813949675824670508711597138468145411071637886463708236161747284315487988836416661084828177415448186227532186706122997499654731728934114707401362157692799075387257270130473302604716936672499247325465858047550509371670702509971402196433608200149496015543492540918089265051728926545339394384746143190924222061536740361080732680535335142993479707505822809009959512687141389760415460396374863422002507874718186973973370177412554847061044701439892679556909143983595423685171408587709150545095314784080125679136705889299986412745256836788260314106161362697104365502056391017304253712637552342848543986723798447456851778161307863042593604449266625246413756941414222693592530849883920727946001197677097437167632785405529450093458327744439324820875878922908465050643372315629687114317666949421763920971036013094719356681799092994357494422931572119965455242445184375539371397988500835544701833534928259048041538319294183281156160316003702756685844425710657242238804329089157007037436215305990117204917509667188717868526287209152242298771030207290568874773393968128665665276953347345166604016386588491228052140350654959994195362734082984814707099007738882810151241550425922189666338756269324076099981510617135382840625492029449648436417068841178329398158699335448994508566912391173964173426215257303474475027151384641956366663566553451026437820668281270773455238087647570424815143412437987824777245133965477346644230096282064267321808443769881498467515603158820847672672125372065786014637140704091496349425734982632966945934059749324382565627310791282388422043544298665168674277145053302528987962802378500337419581456713204490672453507833006865866382599312103806673131400866330558565010805429939122889295624492059644843643224946194523080309611471589451085230075302654024247923518581409135356647969957378129614788986040885753461655066182577591519108797191617027579089763315467371991425366282332716862225825966539344044632824982853819068010567403510709658720441395937729481278966298491904211371119572871828638102953129194253285365848745721417366105635627290714261363381078623743244234984706399989059185385839856499443233411556190526162279121012270548650043022381466386489741812537121883295048695377440520892798976272678084129420157951698375384124460244382716317810598924571458303111248981992070611980729277529764010343107383384217432563651393120553224802416897869403717832274443744241419843607852114713479108877136738852599505057033835130112921922333033758276859788552869169273267325965615731953306520647574465610039498520399364046996901683878104313671976693279717897161599805881108141553059385014767708405021465337205248146134159484940540463069262159373838876486393587728806833739284154422908334297418128817106779626905595164932377414325998190489667960979745702135905552138679838018027053037782851274487869482438300315902168074736257548535188011219973507709800576581821959073372960883553073414888157345485839527898443153626134992336160223465127052492840679362936070163727499025331885029944641895846328696037761081555691845045906415612862999769042126039279615264381483136510171842116574010259122273395564695801178514761264352755598551087736210510645061666632148615241846743032857371998246358078708905088603999430463661012316271804565385738885435508829642646568004481072265916949716359169389817269646968522232407046958229392127713155735789763723323423814041371492591085081464003880836576110958094713028924111378029489980402144524859860211005416457116313271380198464376929226425912873629650384471387099126124653692904017804210855188408997457960669976399205193326742711815815388963804500078480319399702835612780029630570089891315501979724701626334566263979690059086806374352308205653208378697098008854613658697727310583865641385432818646084860377553470867251687118061408857721756186999142799431527032426582473009820791830350202248161691205816129136895483022639722872805744281908958132296202146475617255271746525020917896770626429554212735289508133453970554407343780150423942391190532381380253103554957017744171861563440501328041215672549150125717769465667010300917053154293407631833534380623218437015876780196985488291189649825767694140509381784604983872963006549105377958677427934475069691315829497671095894280088770350440357330177115655452481711501092215874426160722880638770045065871764702370715183386645305513667807853713000998286271598477503831474038088173425652744646760788685453526831845775609419128242699105551938490356899052804025050433022196888512758063098319716722879147006024872479957335675397798793120597305028014033207870109490131489358095138897616363805243932100108940277713688186474223601347989534209155317806193249424694776062756668237876806626570581469575804367673619733647535076878471349454704215164947465641494856826404714938676863808092085063198544072125181816586652152403296595858684702050255901154342728152999865554033551334653955437776273115061403475606072601421791781297458119028799734954391488586967348254063274587464205684814596018003785602225842262140268366357979481851190195592631956816390476672298279869966063234047501746474782154963082987750698293216454412492056265492693979468054823842505757648866604591021165856175808732624321950672814288496124159795996621804626790622008546070372258419356540596412114841260130058973518861604447759052860714457711883097671606367958868071942169769987413734403767334101038998001637763222252158495818795744518943590319571124714227687948975504662789876868853323689345426663685653916886335817299697226597907217091916678919035129449087875898950455547679358710900544745492824774740202105897134986450349129467492247972076797091006943413350923559353020959114313580858414599974472018443642989388121623459168422777929143217276472919596051412456781406865063318978302468819962693197594715057327000772683508851114079272429981119026528225266903546192940604546797185781295315971793452791546068291888041842732985459921679188731203065664057976100448064829680326707911366047107839292582816996768239082588753302654242145307685898872492132981204631229435627132489452186531175078349913857323377996079601310567783817792686386886198458339595609113036246108210294545054363990593974381966124739173431698160413670886649566964669471019414305565466387371058124213141957225389906595651457891489017790475358665910648213851091689499372684724362535505661816151969102054407450328483793398491095761548046922867833572232468178294300602827505796709978892983665278637722418249862874384924329056625365959116608817493118888232924396693339753706963002924290099585541767729489203608795787806920933020634099162878796786211413849475907594012552936770369577029248145959936027965535334990636527159560721324685665367764652347120857129476224583043106588723672363560960548381699278490409847752078298903712200455473731405696421372040415362903637543725221360003610144024111212850458391526652793562704185242187884123037032668364492267743685091656102641915138171242049103807785354916110299725155370840498146832560573087198765358695031095638450721590567004956559799388906524757697434638389311696139182907734699972411738302361186769696373662234525833928935259015704963473722762507739111386262723376370924918700943754426527771023775388607723685290926260860492509828450277868481099766326257190611147514614670261370947226774693152845885540135803464120429772882247427056016860175354653843834250616500935902452525162079165010702103848655780439265397321455067003311182038446003630424377158701475418365185206966030279238958108272659688149972039565626293233761908297269039351649842125369270486775637885443264548457269807153894046939185892453007662299453768381840674961202830948997978732677107315609678707386513944575927067183244810312551078592485349067292683578950699004466186433548297856004553607714840286405445216979254953891983451793906248583164884637267981712467855768046186135163914799735864448601674488334091702915078854649641360193561072640471484666370002286817092513261049019635507614157824149995225357209208423898647128917393557124089871954920856943029592551196868391459175151866162076035445707158469346715324891384556269359723880386167838375920176045480141882552511914135797626484000314231538131043477747079255398158189909013925398725978663408978061410756875041844575252323225333151881873784449185213512041035647895962339744371399296510168367284904443019493851556624664754874569417913741670056664790743823819383928624079697332992007668586043457567840822692054299115837257056541771627261123810379812285415174853553568074117376979279239725894991287595789934572152349315930648966861484602289570362007631831996592680465224375238043715390024467105596868775749917404407194069908268520913645588270724549404243771486965871130626718094306624910503820757378606911643688989003782824035496471097546571208465704627050561296980813438081515670628586119996429053595304015692435287806991589137890061777931521434920151992866238878408991967869317062476233220443963837425772136751126887335716315531238616163985419843797122256800457348830789912019325505368782026589589855119832411804953000996913639754621089098774176975379447407261124204413105575588579182693974277592474623891235993679612908266555317017554095262935010709579890170269117967924130967061264718220936924175924120604743213821038826354812443100262771804927533361954537141918068787680322218730565336172465136088492252474039343044644822053111687071325254629033622896212757403545529271249071709832157068606467328788891449981451764444721202080887832827799553765504007039269526097192469412053664446378179642231417588017280170990071032470651544819711868437406413098026959180556773900068256962085849723025084403280932320713470008583725383651164190362100151640710336131379488999185018765988256341933694336026402494775497684473041099724432738918192007644349743433949580319904784383160280814429102028936882587395447290592162910772443066745976003323224705010547058760933484151233763747127635817304372430680725875341977919063555905279327665970310504538124956333587868953186571782141510718309816589450775349829038361245525239605866226131823049701067219053214840436357036054386598164498554305098267885361050586226132110730040266871899685649556584352423793818021943451855098621268842049409210773057877641820144783831357635257537302357659253789401914746654973222979078845234818289251990766701571609916330473249985372872057438231968563372313396623488133316806008626461983911393770672703935214709936139711888409818614535425890872676824546687800366326024533478286973766499447971396059697559249409020325223029208663830065147810469285625458974674296935751859800502550441782758665146744238143158432054530573530953624924234542703136880198674658011501908191258997290907830589958191476577992200806520857380019020651399946536810480068246253074730379702686915337452941832215367901329298680800908230101543731748236309012906286276357034025431122536461006567611502123306928407264973378108978168786283594462729386808573048644789142929406382699030084316066257446844196883662876096712076858324841173724034045527186070386232939543001559996298325489249292579418584808333731599892634726126629347868891722274894636299961458733248858327254827283514742143801220717761863668750506061489499221921870229138055372327528855581235156394160169603147090346545997604788491387107889684813951692868672902028465112344604983210620199456881917331348224962245654305913741621877359675549099327778454291025699581635691838599675747346018743519402181874207317123245781051901655533488245284189259746262052600196826152905093191387135678865605282229812957816292114221090786116666620869059488780645744304161972853342509725827566375607718183089383787103309441673247914515890533682015764924108290029474782215739267730926624186199559692680669367011199424370343695663990338472964251836977105363788601503347242303793726246105917048413380706886569744838270145767185777068902942935468939194529185827472969038797195116719999012929471731329366062820974480885305711248165312333926434949303142223854494507961732301380640231334967097936290606439735259743051377676451082856413224401176305419318617469174476861648724450334789978243515422915852947464590888549237522968677270837743102769743091703591325905037179728591557318313636808286371589924235944967742756665606060406687212276928722646924896948219556801476687563963073146666960807100290483608789924233050442807665070270171736473971494368254757242657120348372748863774593983802367203222403477519072729099010315026903909601042330099019416299541476901488867669878254471625240224317231254495966423299347280038578616139168006608742565355012245230710944674205130125979229666818874371995101328226696068344375007786916056074164256286379589576793656391448335295766676443950756423130120740831288410036643729832967228237269591684427957590675016290044448320724273823813241018364661649751345313433445375395992950432748266170201650821389049965311362369001576036787695553932125834772315278953485539587035654645772656366667622684964850607653572791110382443237540121046743404596363340566645862908496263088827990901702820844339488860418483123618538266161301991034108897288020635967842814743741111864446270324720649192285586017694208258042167857531323988429501759537167446357111511948917248139197067270020062002688238708633242757648494578830699632876841719100066019820854719007646082307379721288165861989852973552265058878530967519154264777990946666252200972664257093299779804676019861667202978146528792787617938121116534764389165438198914697170728499773059959248563142616628812986882351546762778102959187891805515454722769928645269323105589024202989970456807067229020119152341371376489652764463990303880165638421779887005229156769938783813303664447353945941269840524089629193984480286131548620469509945865948302472996599476113068582153738376324371434072739156749852093874930467048334993677481902963967986815913339244076402310675152043350968506842028311120034816708959491662180894845344499702743531948865135033342569275957870065230913572933153128772321148961130362141008428708041610276597674652891346233700329998672777386491080705797408171373206624074349434106848580468425934676942991684638195273159386212069987224265818546293840733548045203952508803694863460974069355201567061695897897372928652676872389763756506076093645390673816374729827101031370458454603576780167056201892394143216396729020011803483790455251324785563950106509633243055668859955503379552757398521033520035470968259893384987024195033313623581982228515003203525416139189918449326661480127475258493910687276722492915396429990752651901426937173490440976142514086179665508424893656014800094994066316015349852244508534989329025772820444394638320588374865441000584148310368587287371022317264793735919152715823155716723528894358353530834036782484425786525415113526340600005550007174228381610624231986463839333135786223410341952744375495238923872936319100758339741652803005478533509418538224170479561184410945971512393059924117163888699264078724416582590495663943938566666194182489648998114837403845692066965807426283408131094302112579346817821879373711024435938447081948907180539169453873248861156426173403036783510472144079047678261897209028739768708317355643349197444378034757089445263068291060185925835866267654017435547453884551449666046194418287661151312772035901945554528402717796864065415650092136741511075410158088531712425623876965410034839769695458994511129752458275859555566230968190405944740233564312113273553855581672900319449745623799113777232394822895691537956581179930263993708667786902387165065138771305463730439010486854535695004359589203706760330441822963157236705899241913995035870115613268719809638712808108384567551451775172113367715211359504557283159639048185929910034781237862811407133251677168969808704789827206435092281393487490295517837651222771214082155147261170329844612971729460710633888792781164461462496668741684534981170945563953587797412616086049732932151230763183912826852043790527831063424105808637074600990818766961090939229626311253865799497673336460670512302368610107798146802717793269692469767407539323190224506780306098656058279032545182308820136656325124509352634335649697087588791401196938928929481842944763184183834936800125765803522986574044424103865552676871154371317463170632941098871902359299575983662425469255565567676039306993088955705830787177270632732529151715970757282966763093907884564672663806610866387116548283877256857449544879947587222812236756903170395141883797575644338194979890064980673191266882742270072183336789610848751278036988977291227023848923826969252869832320159537105692276775891803840083026545865309544796544569839167195902463399453361121489262391079163204750487687767259453473601549174716897501141607585693812363042173361580142975635785417617186895970262375654578240087259608207789221182567943481563396207938416919532994189794579980706343394371432897779255433909621419805742109940261502926160355907335317057449672713436599265120646275064176714243449375413790731377100146323119739650128842903284927221945766920902630780241135678075247686717534123256622231086848952810375770891766810364538091911198142133363933383559237156322916838908003587056480444006625081514293633436324242746405149369679043774419715870684629243367806897287169268139699349026186943693640077623961097851817079483501136308470708362928108082342393518451083223927173493921196408776815945163447336191192447598727420067991968889150200285890055125510917903420954864347263706426004041637105641974284824812435773481546837629855620160013755217306219923528219948779744056914941129298230794472775351129802670311633886093930183219424794774824151799555622539711716286002339292042488628871413090227870210010725791677741075204757273603882744883008008971052946567553449695376683119285987234476715338519741058337962770661903868052571578341378718160891239298027005753947353809266341457423963570730849960852261136927542342909649926626457821409572208949382333506404635530084918599945350216469361969663639278358187222277027808047794381324475985854325067226420630963358141495041326904026867517492975048345195834441001565270130112546724106335305837599737566333240372442308502092148790185139949576037526120610836850448613850195588474828286352993747978344847989712904043136101888675492225813461522130896940822649180221224652045434780883040953457224053020317034467825160574248977088843729802088911891713066404743055177164774526059036219378995735120377266818754937329132243391079204564399965591549654819837494367632072640913007975598541665076805682160427877832883016051607186344603669303937884812068088629965539378971838343848824711220215382564801053183344054490736317701802584683309842613167587414485265826150690442913438724256276765514706029073125159271816194510108805221627072232493272042313379479438454155028169540605679629893892023053682018668052046632263061172947572462252363212632616755411934861784916775287242301857832366886545840887982807614981005864799666557819457659871746522979542185534704444061587741979506468080493104817335667900878166444232146573050734796638300887759657320996748421071943342539937346867945487989364320666200005801797228939286961407186624657430380271868679168254225731983754815165726698424853039062749637703284353128157976459427762940634055002490140223959572783541518863369764272277237602614300908670725047786075434681836156842105405802747742161089341871338141037433634043987707388163178361451651671299736205181028728155408140385888486098107921572756773616944262927901105168117285271716326557049200540026320376244874160786862909354626106838305735853337608848410524138552156517094284615756489482678872063738053420291106418507170116427406082314231762167620375991267147145523263661162840739424942929187680863594786674130143504373645752734236099170390539971120514658075824418440953350416194013697542787386684590566216244617671848471508816728715933721861307238673052632690671014374735164419306190053350904627750278872829260654296691178087811858961442986761321344790681885440147029453738443336400687881638436032815311084872420389703182164591565582226265442095096532901658257989789621214843591263307914395030949699419835518272771710217208594263077851102225175668572979864987006499872372935881024283934616494893199556580355679038875458072690386207238994397774618719831859399884483359974966153713715496826364952653365091794397190528551283228185773996376437140712860842596559285005212382875476648685953265935243931142700116379160006356259343585406945269863282711687944166216182661879922287467942994004271557527856507588902043387031520042924080990626615608415082477178087485909652170462493702604971095136469705775625272056654911886602406318137860876819036547434588771233076437928610887082400100731438322332450173447902600358528220312624613320215395606597144722853077710397141108827232732809613960724662275703131321874645557408030015396264301128565875154315257514984667061378312446073044588133170742757567952554649468359834630286888112948658442482020847455194356923905990064200538368999876794502956247641559180288915398098921624581750284994380646915046496589409316750237252210269023109089526088273994474520363247380286880369796181949575557522387523250395011523813309990337556345076664843617226057817033263276826637846092554412562155476442356052238840508001844751375622443213865986205428394894574993333979877509973702252237938917079316551629009690279396004862505675993625430758349860477470152223775986639063798393236239930445289890585529338855164515897712044547798673757690524243117810225154123515282564191186496670568161827586014304359625017687787835507463898792573280845519799588067129513528486716959098571928625992668773329016764907807221715563806470391291370702142360234384619778129307829258744811385899259913926017017815190695249180058605646108640886276136600384764860542677309946597813641421878189707518591987269506324751846968242794505105078909191757121817249558574044425830920612968328067392411852122047635456326185617604417906813674967632150345289574740694459697379776299053260136973388205765699687445111394487131371773964789556764157704867061517086985667602346260984128201042892586464948727194866785280519272707035891963523254527968783596228654681880037396492814023516408640149138081159621025604069638392695053309253486334123550294098127183570407939784911547259318847735699990371757213393022758245032320098674970935845984357510381195280503457216600843454675550572346349842547841190681988467162656518829567309779756737458432126820742847322148417181238765663635775657535523759319289626640643150577531283413189027649784107291547942067157091810621742390404957256640758972615024931662721621311678053067041912029484000999241497954246287493780332917348462670692513043430789007738288010045430528145300905347134698600572588533549980142483933332577460157866462687668377121597518821823877861379470081849882875091759734192533257056281673972196489609469924390954670578571810829943365308239619116884651257109265743928232382126190965899345914415503144115098269577424280731368542817764894448289623175616983035107265058179958299725024282550232886063725662881658251037369902239797458205521242398216243602431848189114280307404600165919253090431554404990414417198359968788504741880774649987802598065163689830560662068316949005570332604651919883193352728604509475404175000879249604894437776566115289272606243255753716179551278101457549552723029795762200184862011406840502814249034351386956776571210341076485518998756621757634210965506027512528319374138417897352434154873130033765463601838228236379496554800109408987527941239638609391022145168708592873460948181910348201532145524973646377891565303540072500294736508579676235565836336590581927779198504974526113517380462511310685712206681490898008319667500723885257610063370410428679510713177688133286073374868222777557268269121219191653653654476137711010605861012012367937878452163894623853841275641054101274842752981098198698279845237794503004008906962854601053023336576064330190031450489890062496388787881268644889502545786957594976755278380242881700381349440213061476208465720416479472825683194783155787621587820322576695135552866762484076429451001082155485663706319462290036788929254109056982407630288647768635411439856111756876866045082412591974357777598953557300246385442937062174812987399834840656260810458058872592569051198473039117001472581209515619128680893424964669254967577859871847666169904994051646743865253429431602168330569345322224584863854157240459008800617510237766760515254759449344400635454109517076616768372771768946885462295576595109599591539626331381525896898766434673702539398277401815226896838268367545067256916031865552763060088521155481252864861582862400188238125245843286823859255239452580190168581510984619809414612696374927557499018396130631771502473215365331478741239767756756769927711554924481710113170587696215462779248645255890681864101024177602887544752147704624115683977968982797709257061587670934686643228348683102842759614977503934818852558284090444869659109113771313069547166532242347942306806704359116017750908151045774149270327283297076078261278953382725131297012556444637556004311766217919247507992030033298237434943869122311962090224122284437451492963807777852394705654219139474601005863691435426778006621300787543061687677346626065264106145731729857518120984857301350427150003402457866489653527892198917329926582033918452157645747791437318578386019547614175345253041716773207903185364439723011349750459100024021068797176472225581122200159179738967874640202889950642611915443946250091331104032479536477163909664052594335474654917817528165499587841319851306606022860660360341996523406079296417280354210994438800908284118839137386852852403170676794177129355741404341559405935985261384168804992307145435438308142586031789042274126025283486142303637308307570958741286739382098761694793907108252017029247721754493435953288702641811683080198002701897787354469857894446774356940973361986141024980061978926550496529725618021168600332469109898964388955189680771516216472812523959516039176904307615695420940183546457754100728162117213193339122886518740589129972552637924113373359451980055842198015242584129977408061707153771827484988573778452455082514193896164597696094748063444272654099279296471645274494594329309000398740258197801427332120448587129419790256009205429322469826984060109739680004557898489655804190687178671449697882810322570951677574193091549264839699532778031517441805409427418313306709754715293238151340071576053965061113507488753073994747550298872762135303080347173709824871478548215843222542983784766990569122491244520283982502445810576713307203775831743978674810935754975107072328617441238397233646060551133554522751662638714727459186749482762293456442681613996941820071036137335816840165672473492623715112860462774708660416220057829712891953764193484728628659719381455826585164151573495885792429385348935591240220082171045093140984769459594082339942029623831841091868347874308469754476773848238969370207316788835261237207211504412423387279199740452238591806742216141129746189421254116472399399524062099184890173826248270812175299534815919343188685869578261187751824509471710488769803991839829991169522852436697667088451135551447765701827372727571955242795932462076168899417857298742317073100039476351549593447104863879670917241003473829621512454841703752710105046516141435215700732085013939183450730496284406901563761932492246047363265830873446901827629671462184461099766739219107936333258742406244415149587839259414719195212730261472990131082282123465587798709317692641436784466769910347137579710450018341326999133830919817106387247899505350948902645910110357849655662189751729913223951433657348322380143617344144009508548013274281150153327477733719403950568136139952067448028166531401726821999374147198441058350762108997885633985988193013687267147376883389159733260490274999638485686321415480408781679067599702141838555787542990084932556813033724930167334516403065715948000944122529024012079701340716294692130969953755504127470145874209965259122938701140920105101002782518344075146293247109488027290762921574461840485165255481551407254102398476582245991357584830310752965873544039873079657892775745436034746534582611804080581512736848206753216162661069487320191925088448486476110367519873899179820997472757601701630912516373099125041967020777386130847467604541998901391373693648503570246191272537032546718509264685139329402730632511578380563140118360976288385936131226386898096288558696633419385202407306876283281518960780913618865379782210405692413610074285713055181187947294677611894956190769855697539671201304562004040648893742129885472034898872097293340337929139001131907677372549917470652685538245035802284903400092928032103475176541012356177667879371371338859007364117910916655416511640787509960902935313987501689040879902615407101286807975160015802749854252381257832504702550881767132074130321945520356109430853862685356948471524398050752960340147004190078518999563260697188289778708672101801634609195851002222425749816656810518882121569423276097526251947908718131731412024878050621153856184113830216803308936676827217608047478996088802720349122239946518509262290310921511306386248189231577501112504269393260230186024250819908314864360113206946992154007662978681525734820417650809465058760173634303183739686079672333008655642683961138955546207258363548666703317812398560451396377295935897738196555174852983744602605684720852324845289987866090494149784328755172091562381393054197109690083843155868234319982713465208388823745726300599654295990999307128518752901730930449003280283239551032929342575891768064452887226556699208568894797643849657053464600879593294577412297875290834822597311940469793142423081780828824362498277956966229050625731661174055954151066703970363629898187127378163170445475130798493213650366305518721154143342907656346932439299389270499207337696242747056529989305138329828388968010875218632374862666606595504155253045019879090691930186107817382839412459662871136698562184753632497207823026192226113413162178500736862934709807898221695387253234231791614622880418024970591858481520968230529290200941653071875218089976296158183608670962384621331903166967806919956997046014675113888610467268752513390013962571543272012164027036407840398837183658087563760814322428330886600175914025581005509744646195282832389170235930643895771048353514636254161779147668737838934447193220749046634106426670478900515789592895180528680272469660839695888386367494230528965991733299426635549601650289560440489439469214764012316326966477356056853626856135179314443163918747461509714810198733937096425945082055706839383765609074139774841059242893067434554815877487991992376368886486350190150051903424302280621596855121060056557445241466851704916777570918186116304342643324289673320513145327644190213415411768380635640545420461368932175630440352285799651495112852570987996124616052341908283131563602754148006784765926920271338509570581865015076547208191459193983143766580488599969244542358026151765184764827989696827975085588009080297026395477762347844082612725646398537761156529107072943095859304736275831321317323017172180456178141440931053490747351957038937853951288037644166530836531709074323251430010515785083836189253941664203512379045768708331948631883409978591252090843726395846700528396523580388968184281360418303874856821086068966439199290366411610359182943494779633228858749730414491770513468601480846745967651343518992015975686010037903980203942935384794923131153901034374022723446529925257355818932148505495003758850724400050196330579468474823946527216448189595310548002670687619831240764934221758824392291185136130772978131636533793420892340370292971400826555558271175221429928355672960240844915805468397484634371488364519271706331741153813865192877389257291966003015080157924282713767885115819145198614452591243918555154933131793060502331929366513589129576311345946095229059192734232651541109023476358233984207794014514928047470551714384872410103468151866764607698652076729487043325247531435023724745703684450874235264612692607938986080193218582492697592388966548486363979520473644055373042976844027415529699994221413629052868902253931603667635517783077917852787184885335390931626492779684458625859988758916391015436278654309599145012578326060027620786103535742724113858155153118903530854712010929040513535182870838464185021229255240873713604691789347148297067481653471200843829919643396312647541257162878638139893941247430104333732634946245599838323108183478242701179631520623604580898025514231499514896683317948261112054318588009213298955919805520335100974865354728217119126017855246038673508963952703642252386082195162411888436717165336446943934577130596406754049458561968064473153322706011889591985536106934594628715617846743101827797605099705130950513669616468319147602578456094522684799959485410422799876767652566843458964436829582157329823331280200790143331408319639442778769415797602818433884345982034766342494992907021395402675422812354480516629576169050154047512281900813545721098384434415540571794296273762854171088353257806216047334140691008155036259676031103924127978516264502573215772736063678957603283541214884854053125223050763423187896298656464436997471416306370675755903473802233529202826930374848978508682698481463666629742966642215809197838666535625507292929013337647907239717882523748116010024063564512974115787892390606604294242887843573847566219139739083047134852434482412737758166013074940874144558079245314916115207991017969043485333600905802435873532798763405872062912140076326276303061990134671002659233479754849987738171101601197655953014457891022488071715991823720644733425110256227832850048142452181738346672029636835529081188351912330888180718877952730563484150687356697951398386965202474116221521226519390086209634126228384551041648422976805076116182259573572982391395521369580748062514866352492451430157874532652040998724488875759021093943437954148158173669501690681608551029202242864272988142195869362645339927589472252083055947524825409851435233846156818756705013698067104507148922669584696069432542218941413894434167195055654016977625941526850890081954149990903262252820187237137679566096294174326662047760246954272515502158614782792346647268156562545872208148941510691495850973218799144307171341560365459980422637343266551086546099463777635310584830924932928484315079250246512232393549245868401874980468616936235785535538830915697975763820104724954658034531995956834221091160125164830744398655928591663624755527019555141625355458400082893576142316477037261743532369720204436003600397993628341251200363389359544557067747424997456274326873594354076893627572160629350407249952716116699450990921940305169820341858295285972179246417995323965784267912354460952793589088319346012300934378828770227020827794717105576290914184415269061482431680385839246177905790224222868647755825015904601719090698918575322845267797761488830721506962084237635928623917537349036334290827842125097457969776938973322204427555397019929570980421169767683879194267983131927861046372873430315346991813106485642119246013910337785787213013501315848873598225386649459226053722282555344427421489000283390864619401510335256958203124263923999242570820693848128267074653502190335563435772439752228417342553365849591688548270550491251778428522910063119061423249745733741654049302111187239416202497226037378238297140576398417601727930694475476274823488944895246530220468565703172825627983630481545711985774205837909227776992524992851580391055164186184595028322361160429204593265274090309197529273723638682217555518740835146477736367313283260137880286441919668548084075856544838841695229950301505160388536090819513042612677587953256900476775398418790155112778830600149664850198398460235138179153031394938024700805522511649133800251509949115834496968188977816427449735072086968067707463869489282793956545383917941346243667817311649351722254467405296040837507951404919256785798831533663441672996054031899001202088289274905910397748025077616868578273214891030148266244643629492395536360169586707367830498807562125940898798440576700221094267825113773334450543099956381802739726255849474810623258526097189501661421793539611018033132971541198407034123836588954745468017479582258914275393948896940114892601869109317583773255154603421300545619634802195108262169726581859105227993087166751273461427954522567973295073327327083080948256360543434165054649366171961859695382228388468416951327745273091273077152714077890873735199815172958882782185953079773583669309151484238893490934529783496832758835311438132811590171518051878053348855704876149419200024728624299340973209002509482451131703263453049999794403593070503695276708817265270031872286732061798933215096054780009679346539058268461914736685113448041882905106324049221093288264920437608305559370935051459492091028682056566184829501602980998906266927325562346137384903122166110950154459406113269142085083376058354008392279917485626830510474052192260766261488708123200965425136401106570049469035871631929913118762302120840140180884178098458904787117864559195273956159909875291405056389945893589319506695014323877316277907621493589277057659576623079757650477603833028532923256939189839201665796100146086689364404642846015566992420397575115282806540845792886681828682496981182947841526856810678059535512735822129127230677030311867254043179589485321474854660020309837822739623321532555644411059631548723945487917608679307549961794103486224594126565986404768690611198099760382732070623479682242336599061434587176602410660340705881154014567112149760318226418916582481594395483891639044285490785137705507456629053702932419480383656882538788055556100724352435579877850738180517556464698709866457388722857275699872618181907125164387484783696574454809493029730880096471478295834133467794604360852283247403205483309567817245116677282961683110111276998142292760897827194246405280175638906108092458819560902690199792228154401390969012865864287944253687720423811531720155653309035239916470224448772775785945243283475122554353366110053325162662287666738991566586537146064941178079549255232045192720562860213091480649029238229713826022728949049580670097299457937540180510772964817623050802607865781175903745723304143378205630136728485828677428495943616271943684915154647866654204460147963542565187517394292459393960514523133514843825467710402146801295874816543660006671974291020331587828471425274531299944117761158518450748128227798224180109763527811888123676576301837073363318005119126271062309272655282934408105900442313362282905035547631349313067109740275859181911611561197259035128365289504339417089991337699997116713095230813291592600323478439100032801076129936152232553651319612538136444241940380786136632978595979778400270666945835625326918600200132312243801710634623002979052440582905367528868321953302947093624796919536594325660394526395971345133093926887415546147616747701792618156951496664233874590606734788868770913397336207401642543729540063491638963720152572692885931760334940164582863741509631402435035934663934692302237565208434264213501370890532857374453253630652673019317259692951191842220476269544063580979477291487402831936232956335357761877795926513369560301281428546887072713638155961165830483820448701573158809453615219057930760566675936303390374794893148308175169350992432355800520606978160737050674414151044857170167793533783846214954559598276730136956944625198702826947735926404654483922376647377563303482260006844024668307084297713557153286881632316605521900428431025185311043850163303195924457206695678526770355513214662075426062383843387786117043175419931729639615966194266718966654843808551018511524572326115814991010084966840497137463322934833142482510234643427303901203398722037462385437769872373079258055957748929420454572623689990846701238277885394108382415072641196629681349164964665317244472738467378356767446900353480510750150604068292031726960046287114054071278403048251717825281688310775148798469461393793089132060776661693678544456738284955661231660169188919012974595368908784448641558916078049609276519833680690632334481580183260864652403527848636348481424115211508325737255803589570576940708321681457083470793138150327263916736305644261551834865083734461874268247943520710702475417184799423935804699819572943406220806467493585395152109972658292461304859878560269296826051864212654373508452185666348612474737411564384506496171853882982475397834642732701240239183204646071382090443146367589107150722808187162808731784604839655071774268103468650121786431657014433252277656372304661039782871367263145021642238707367520905472479288126688494625755055347294333286803112228336218992192810702008145304141721958828349033011638571004665755139980741490158974704790192193373753185488466153411540865858729702178117642417312498591398541216077043616244250779060967569684463983855928453807314595705743216300176285581568691541351656434635443710932655788587218428652999634774833740237214382899234369480970306331165489399614216713674004910723005866353761695542440755594838635287000455257139700535021251260862506848278953651173974723693824344047962686051024870436625074690088485192942623538076229281743314397817942382038540030369401360851204424175679550925501316875349066077834254628664131605784964889883882040489657593247971762794607383476361284630855527137511264610169724775535540577284848254431663870236223388156455446368883317490431160661062905642350628273379787334560965295863265299893187945603967778983500132962483547646016924316245504247919285152281528628597092242686317492721317399445364228484550698229248577590051219214077305250786940538854795733762740809398680470361405644126762326369026030657245152000776502855664113812476087184784346064486322204684252190918940363934899482481950691438066288088038020252015585895662970180934328406325917880629694329481440706710770776624137152336128060047266478770261379177883864702436529428874691331643195499764724798151984510944289995886442628521582702890806578531635721822684295040690420101749497014503811716990840131422776295099199675213810119148182631559437976984828601511424914496625403490656456933144585431128881451206468219089035359219582186343382117875545804482990350704828026464063187719537921197964309875134276304908569198747477337947498806884111265975878010110516883967779584909191543786967915817689615513922917445066437246184421867915926596159595280662295146021262854102580212519313115959574804896590882985745368352684270521535396399443949271481935967155779806563148878149478478312762929128736789846350533875733743024583785442253170844372763239936092404513033497561419554832334009838298226664170165209676098999303050643758852077570476395131950382027190058402586207373200071119223673866591713330748361842532580523585172369070283226613091368932010303548744142932383941152368067557536743419071910852608429428576066611882521884866543674957309100759839821249407955108488298850122290906495566211644494944699803665882407864740752867594028079965109784545345486569495983921105306813432011936779753643290381368583520714869771007862878509002180140791791809701019011614647381951004718906914852156144158707737276756428513066168170751347776864609752662069603865467098822598978790277416090449486347559448576285685920819159266759312179973161789968057716556715616370748134499664855047168255727747433803576277066069785583612918567394291883456274623873037794061265121410024358532042626639825904669725911102351400367155357181691969125016669506803723465957721532776156741923601891354823274781928420132121026163940947896193807727047233090453708735176327613705995581972690271972066607528938536064120211569513577102977459608882055052661929940478085829912427056953690636229146798846101465858603348006028106996462184203512652477804890109454115331834339502318803665643136181042955552459375010181849913997923952514119644090837639474398286302052655126198155157841007074453619546697829176173904139174640474412980781967071263338341873344143410746187650107958237560070050876752564642921209181451111061025312739807182469616054534849449882684986813914013132590522998948184108217193239829527105180791710423480620236250787178619309089945927570010403759126103531163745073175037039535520839372426829197722437022756221064533966893741589614874821574173673121012968257743963622742168245381395444073518609808974796682053138257643361524059662715374575660258918363150254921476360220319786063675549224399928310337468054502833126677396219586055497044212947803601038819668650995909709133524111942036722244249051280827080834137841625238964730843970175434607134686481501373742097185144636907172393463638505000155484675094164167133157592439791180514594266796599984878778924570583673020186177033668401811892728222388138881584123395338174985980297656293227371658832604945287062054935922041567890719734250913609813102598688331459706364672335879677316567855882700007988165228914177956427845422301100919836455217531262306272310260440702299262599879196992282712310256141303326690892094468071181737578356160816683074603699428002182896675171210289522709482091342464724343409394409363596453177079007262516581042903344589279578195658840748403628402365207557805338005847466760619831859183360641327317855771269656181854575987973941369578358406882298188524722777549799719462990995325196190399094446717460213711273466360609353343508993826884467833330470406811038871990680586541115738341016582537264144879433785224806121510838934096412954667238372555870535282647122610826661552246340016615957298315290235616800882671075610741377019296260664510603796472699312685118309109422744206018347568114957055907827170158660526884766270271593679439690994236524506464749619437161980105542531412811314694676449335244528146059525260826633713322445662122181302607932035443863274176731691165774431412274506823601946449438753650172064537002192226138444121931725804102892917979691532636632078132539087855872166586203217962448525945412644910211517199760945022251660430435900549665432476665013959983672656523319588266377969235346929032934361371991019234765660180141066733148935701982515880277063461675288506055670323092512817615862178447601388124921434315532936636073083459816097284428618571519368031739445379829178858000989627944163082432112380256675070168392627899873326164231012438289109667911531967970254894726973349355524491732060058201526276245544999114071046940894607938056941537217350879391955963394197706124778230575946245348986506658365503988833441936251708656684191909648117691235075537683980958955547703798999991046051317951657609834272355796463799525273076562130636012649781762456843486842604279713071509330284289918485669897726670824092450038485179198539909942038207082809377432570302008712607839271417306168284674883575547409866876598447881909622177017723054065509120887878253463642627357089388518904830003553904287101275219185971607112588483434196353814662018632506215856120749766209576711211501267395950662093100052280190870894190653262214392147158900756664290412305227853377815985932598021390677996957974102107006418353034928077878472168046333584113167697437571976094888692935991977306041889954167054558744101080269438209631109172958744577890599720898864788836516042341901581847522288483343003402307671940359297042223040524785028802601702873136069815575050755405287002901522071029833236482408010234602751375934024237062309611321930954719725240800009532286147191410836961094424274744766272563453399964841287909562489599638784585026111252592953907023871285739397570949361584044132631373606488508067937884164439703600013432805665287986536102898222579392685401274282185756539039880797891829253194482082832930934811504658205010346838321876378073817035306672360128620741232338038034397849722455898465584870615008579397662995779291697011248555846170267121237942061946891493737658039401707713041480893845999759410725962449135040621002016126753884856373871546919557745327637622777950200869404819143763897701165612057578490238507140290872933557289614474033710030347326998140780343461712880303706830483200724992652247556257060417475301357102133455560560501669844443313915166463315689017812091893561290591464128822718213036582805598640198805745256914884921741405713037704374261603905230465566093567425925216672401049243763796911572351364541878629993195525129942826997517352167205666297906570007058916726746063857206284455203020653017925977042368105287838419129611274528366657000348532038611221352876523666481640812075068861749742715987346247927821610464190646953062722151636622513930275554949111830347367785094411917944649835811680179684908359529848804626843891415511335388942072081599841927756662545061316251747663355682668488171640913091333258039327934559820618458443473019179106864127775144802288090822780080174404472507592138346970575012545593228616507341205768153031169619272831089935743557343644201492365426677257400443825365577222864061735476763040477363816890122107037106454807946983654528416920001344593104623438947146875210169494242935909318826375786057257252252050235755670118974975798130747695069565499906145913459746624637569218754431165875290193675050789133347120561969754479003499100266089390681281603605908652721854308974490748941116881341067630393226119003259591220267664152794159822891048313233913210250933904867793260350727950799363409249165924131195928853906067214342691900591191593073744651596965904622985387126728197676016171308516281170717460460591651115714685515114383546453007642737452402291773434884013769595226570919441677624843119093012045148283508718367540915915551714309311462804835966032899608904678867784029565894697330585749452430990510889861579867736798836443445341470953926130506256697474185685827147820088782885765466387173572503254193740132801392548660044902998073527305945221507692648730851872766028357420570999971741059758247739115563987969223480366619186366553962667083524313401790092764934882986216601157687626176608540187137827311725111920348111470378946133852409876126866189540106462882952387945811578183997375902397575631763276921059499431433510934713315458284228224286237361590376572641960812725953042860327920876485121938431084778100093013799445077599099495634603896353197646467634122424634567376114353983728239573454032160720901725088067394682457778283078165953999923444730508065554293653789473125504339458043157855895513338136153405098948818045196114788228315026552721067272827670087439948340626262153264109628604066143856199351440826856278274203237889119877505789540056580958305640723633351817030518136655410532725377565346345263919092360911522539514183692733741435927870324759714241795940536238172927085320709263993673497325295243132551504599742320594272938569748704322395318652163826602749385740563752502840379319978422618826685642303238251327086627895145016077713509526442114967374003673370425852163628203482025639204374764574750776273093647307755047598252062860541395415209978426934549662026898904037661058868037639895270357172590932213682970672758201627434432779342035354090719175104460656911896214688115624191276719867118343455922565707405456873206147970787023647473368963065594263451108654483810771625223518820919696508312538994607693735433919952463051961607176155899129733349491736669424078155619342910402340865604446553554490086588354527666476971290106758141810076868786879422686862602751354084572277768291221481138711575288895630944751527597571263416723659529469420648458634089637016857164884733901966713392213942035814655239608128880827307716663294451837388132448153592118817202504764513146773207546752606397863488109930941998707340620795912572857463946356433390615178089784620124571847985770985536622560415588496061113945664086710561197536792506594163835392872373608307575396710484461399921426355581469820526652033458492657182234578054698160894132606922943101986672383349610654735681121083351762874475656679440542736304940425890330585048078246689309661616950501460534115130101996195425961640147706200697542737897519945429226962129091269159080264771282326092094588869534941795203548111985329400058335792172432686798771466807523325521669446179053521949799162851892013701125707263768541598562950457758530076030598071119199662224261894466165245973916479748723611672925566010010357050629371889736403964762002088882622689451635185372440864359467007085909106576047789463348914034299897824757842073696874943438044667370727465960966827289846505233968037140337724476218801737747726543409973660051196729267887683105831745932291074182659919018818066068943719209369837724407838610932603952227261944778399929124754566198687102283174128199154958671010669017991446963926625273526997771617667989725622864224158982761596007722339782456492224877451430358838976068374446209278278179704417034400285728025505188122539392529040409568330232738052321156334282703104420500898195790760939924583722309856403062738123996445291847700246690653336661838452108392644750746212821310845064939665794092937108446859138945342179837658484537630990986609499585413455617448582691036589675681854360247511735750760992594655098594097682328673004568144984434389322855973581669995693947001838252882423221320512549769442697237875267240659710097044404006981252681692144510905797353198419070649597997897834623805362253003394757821566677799902907054686292895843608100431720108759318082314838856023781129136019635621669320793540504967166517282546961453311015475295803077367284299533799432072273207567020257325990654394311239488324762480990339862281487242359265538217180642339359905905917637394178894703001250032558128845948207737961729232575323622026408438000935762067205922287051049605466316792248010594022660945879062103121120170788523117316929011164182015566224114975598171098721633627315190512993210214416229503045338085223166689530757205291458361261230904221068861340072075842338296339497606482528097250847517873334491385316841540538261483288114306300752890184567727775425672197440222079606141923693916236479778739768957172892499966951665427592720010257600428421516345071457434643230346234323231683014989049136630162941543266515162547219273196737150316052647638797850797492619730234661473971143846127485684734159034618477532881505479115266179783263003634077042261231680919939882352441362857397399610584424815663038993525821692400835717156751875012431140759352884331901260819533135842937962028034272871682046551990988443274576148164747973537546592116032063292423604535018046956832579219498223323012552853688367965220092119542011176226513275097605941253049352719633393257681905282545362105790472231644971310943078758259777263397902723191324927824987423468595355211060115778691588877691333339218294481087289364468862984113517919850104493826600324491578351102846999912273340407409308526481953608937153274979797171300876187626859713749477497106857403639608761907589955355588878630951776481594377926827672268429927499946588786592609615147646175561763833729571432118460489767495776218674224913790730172953366767863047077788559904789760832964086173721629014853991482571404906987651982571829662009113252613422967947666245632192714144117875971722616830763709816251041972139542513413443295076406043454120148738486448109765368424022139037632246107088107204135368936531847503553769261533194113649201475167366192904222018124582828142126247039746167155741096501767853298694786645818433574358650237092269022293213232962528735789094959770590083700331995437906706424263324387559972464061603884595773050248699672718545196214618188087609979894848557400348666194081716329411689262073649397661592067841411273105018860309038806601927012644141766132656307526460709435093101137729038477421352148773393670297385852143657872535503116735142311245194988282899296425961985075626273932786674872021904207444881132031106542222853469432020747981334779903692488092445792000374859919971793575858693962857870703426294137633775986555527452852768818773829105693662501839481027874303206820515638905853358406851229047295645070951364440338665942245612484362956087544312487250641446393743052747989314339514599620684854143636061805525314980880014722904773658354928063072685197655191312562542096663915198274864288382931932947206945237709800780759692427047161166324367304107051510268688619322572258231116411397762311541072696258448251204449847789693450144599775904021003691226814134419799246608045626580645200091831782358654381692784704619868035234058659407442046923257304912900486299902632129913440909577056804386237825955470324564852687110220663922190208254930820029624679789037009794395673071404578678803206077443234134395752798577327947833064122069913910821317848919928604927091971101804876492459488469857966064396834924528082325823648526819801440309873995710034554283414745976591012910896950099344344644658865578756797535527036676588887141641941456575285103131372821219541146092209961326063079513146415248380354298612299784873629959747027655075365809170248594342860718314587226950059197655428029961390448787090593243674854095042282741983299107824255258891653291095150415920182046108560828809772695373160379449582900847983104642863221800996785992354177046266395213400603897048083963599640752507930590233436012337228148946212129666023463624476076408352803491676539045112109848732660301891643247081667137068133739662267144641033290210415488390825736996454117818303493379808662079798237015565067043773314663660403424466481393894612276849061868694123847609169670011491398747245451488604673883574266971317587532612097325181782253751758995804907464737203114756944520842172772600965966696960498426375347616635548570553223617213610077086689552975864293166655233987696684796042844894227128698674906510543259812817751465181770017254340244899903441211524679156767903507207548899328941487991243228624422779931533057471861522606038767878145280152967178759953720717666819688029597530194728775712542784123289926286051265434981715692337105716640094240791540659130059300894286500837416180242711251429706159756320155427045134585043535273778771909929324820123909117346706684706641425700539999933422112843162788740071008546452542924172710846394932793466599272955463603791589313983822149358838788468380220695720431680684986236752641112370875102500654166386913596170334653658027525368399757380839307830559275381277050552655614237250176529319923528598296053445074545462071730290812427300857265883676268805845505209057284420182288622101484226345505973582830022172393018833377537412598130226032975091072531290916959140667794085815402237105150382370812518550110560835414938166830803608812809019912201948085308701759973197045895079492571112788292326409852883064448817655937869482475959963475004835721842337101205333338783995059371565818773141202592155570568869812965518461555481413073014671410061396295573890692392383030488816170239013144010628346255758792739801449632474036919216645312930472698896906566450017852525925365778580683087352015726829154267476391042159955427030823365626642378916214107062789549322616636537406415269614036424857925808233204762076208774816201449619672047606076629572225543002443101944022646086939507950688061147251808768787283950666010009536972378386991106439331294696653592341069807716664820785484835756322423283222077885766464211914462584755343308175058172965288965569542455445452994587876129262457530767205651577909858956250836758460626213771327815062182262876525202822053232265718014867662414518691436242612734253892885060961725025168502533524400836437801978124909490370835158468387689548213160998448531201832409946245831102135592797151652350941357161471565486849561256495144057047996716822548671862343960319574450865748331176924996803906749615424816226943136162397649226735804187106738738982725718398586585861737748598009610387734211290335536069930109270023626729245283922011990455891836316063515512113978948494500404874573237484412210907680060307716172913211500307608106223899881899576761514799587489004227818810765113357179604913291679701451950173717428185387022865692338091317725472041056548763110517801637744322092532432747718627833077709265058222244015661765607628368422475525229563699408749794312984830713415244154241791581117254772996009790000555237909669704465024645264655370829300246883447016580929380182260000976237506692497788784202958960778353796919416810492746994892308890577467393912078495509938060000405377978944271549852207462292025721117839843508364850752741805962504147168337312405881322474459783827037290567407187436312092642542012541040068878788877342693291017625581906079684885384044209208827518163667991430729376527697106852803615968004543377094696128809155403917639490521090744026720780928908652281469876459615740031659615535900377436982104575440594151051879954572212788405752271560605935048632748426198157142126829495432956245193202725340730956991152364488077007712453727600819812256425790038045442178057983866189928389483522132757321395005134252140468669514093011940799450531427740672010278408924911849346484692884798903765427320227950893199175443282075919536963209564614545106139384117734513567100380346400126538321856694544287605050903530828059546015106283816218537771974479559461596781737822049212024067748758886584277500765192500459965638539613992784412181811953402444995107966703383527105357417202819677054558304837472862074180764323041072390506463280454230492925669825524648198959011570567289187571102785843230717341134995498902117629882747735328650131612019334764711993666472312940652909757472229913339297564555354185238443138751278821018356236261751732577621377954320074459122843455827303434303039492608698823178351470781140531831026189816666942640474377531047264148915102795616417677856811757657195861829510575463210960130404943943975526509211807294359739395098292373969614445114658228594792929344510904188969942221064980934690929693742395779755108568296607337658083761448962833908154414941898471270739388088116776166817056987410534802345011458605302438319602561040181542043060782099573662165026806112297422170453967647385011626424782987854571403998588642880596208163020569794521894648689589735909685899981372228369411637629070244819806237113639717540114250301112338189470368972186962757344273523714448351032862026276999729959290227796159441488133206579689628643924732110128037410738345039784982977200586796112570748110686822395835397285169512068529324939853840877837526104629976906730945753057223029322724948931520017317328367767582480422573698315987544811997158590781575385014245539990129412392405633107657868476722614415525508454709737925429264447606628650383354597327295581171211682040251433520848233330197384801975597974377229388358977856904144858093524671209657583535028784426617491767591785375067385309939345778499528112357399400201765461608644864418000229816061183693011489986725648196362067159453989073137332287064266274861119590111701859776122353002744834313503894041478596296553777641914953043788798152826949849294189493963155851097298814048643677194886270053633282087459623018415850715354645309795781054587927104391398122150424283733528416637787855188586851938847241261428754288154929325863701814386003930165102544400482223659315631620733822019355925793686504291537853378020770353270215703663096227087771284056329718695139490859423421494987846777345318395180357968225487441424346196016791955096402213588148444868696786588225587623445964272777623268851127106640722702701732344079114054674699178865885635417491719424114301226896071852824994442952492795920665930912117269659459133459967607841245590011607099843861780448689926610833403017487644638285814879780419088131381152509234740322792949174098478288145438540397176264918909956670449581969658571124937584973588626628130846783226583533704970932448645577974168225262800119133596720115809045386315011802847280578687876294929388830843888176652937298407830075593337853955830989809928524893601696018827156761207711494626061543858577899348355876772629830361769478883944695724447734237922680821554839925860047105811805410462324433685937842759696247880644611421027521993046810331596582395660878255476643429035304783953864666234684191221584705712663519584001533760868343647027061364827030060279791953114495463413050347705923339134668554887003179975349963716894698234033223144507700175174061264649823023543924643008247265946377026157404945036779885232050160028722679573420471290438616541816785832096553794861031392114701196632256183732844532126843038708178880877617405478856883279576436166681962697646315315280224358296086782900980445811179364803149108312454117493805911247769205006256460708389130778568922126980284835174935230242493254826154711000762533440363945770291433269127076444274243037179344980315878908613729075293886701109429766983236569817124566200742969595480130924321194203339805819405765307785236007708510843797706398382002823356416992581432689809732592996906194109941449809857386206944456666730858982598465950672468299985339412224670610701016625131929098019552155120981096283027518514507515476742036845897688918910589630472931307317612082197589512380031251834158803998172571927239699333738225308714638324764169978449030095799912333972393645585585577704456588983033193799178915082492921150600603782919146721884621439531885102991793523899754360464863108785224102005880527586270046624546481921200399072630788972715871677676714002144938992930091700905574540939582403489405272995807939305128152776020976141240793278361331625779946245895001648077931691666198541842652043281835722471558977740579566023903001828445770207868857232840344689701113375527840152320801603895270360517502551222813281901926436249378101259872512520404700228862048148098348878284215251319138892223655620457076005849050640127949734505238847357660843720367092299336399467304262237909277777175098639958857654729043319812815540042668930113071231415932627498652033259526230773852039976992202251394923432180373844956096313766767867818880122823438105025657294995246821886951165772544464025129756053241547387967339115093672009798039611624435314285647200540289691281750876395431759426460681478178168533503811443434847026621673249375069478483995708492655859661151357583659540667073378826444375104096462780571075119598307173045417952653028350885854375153072429242727254627639716286698277005734218945567065298091836577177304732890545090992496779214346070113972089165641387703360685903251114305913649097443110939013315180540177318556401366750464785747688267464322342046228696872034131983664206084255582827794831609180809186720079968701599108209763025170534540980968208605196938568360494276669986025472916126242657558068992831270059725533862079871110751133117900362173827701278819937723410724780813116802527553709463769078728285505816830475752807926314902002552686907588611404981014221837116566591639863070092707973885216700725473585052240456813692236049872891070924184842040342300515044341057423807539096627547533582403017283957929870028135659487616706032211935453426113450956997442981383280632100318046139230284314873832332047818945342563268634214682743995507736103782363091842705363775709612304917814130883092134983244817019985845391625838677584930867058594540873075283602029576850524896055549903228999500794208348394642270114249384272013553959162417337914283700439029737827550825383543708141920470360158145793198837449893271606894915112145903332128320793054567025892432711598751455442292821999217931482508293077885474692945592829614895893393543723368772547344428908843441383699129813396129981665237827163239020089492249276468930097240713412520908503626579772661870672222266905350501846782100938875463483175378800069921270831527050549573811346191928033366375327446623768060996870336899157073450594932131465666766296897635375317417806337457663204063159456022066080651521272231273038218853625294770727180457402706632295060446010938499064800882721172813329146924229136899196645182136824305454252811292556703730037767698696414185385435309190534676349724641846281571174859720324324383207293368831092784910920478275882939832746383335206196750010466523582072308031070809808367631550811666035021566857015547393507683585402995826160775510636121898475054320979998734695602008001640422847343708964594617918697671410110048702345047494271184381345679713213710298843255662448760549355518002594271633417670428015196401273578219074968511934841101043360436779047583778769737712526673945224766514351224512077531447906187664647548472678177973615945870259295669862135365362004278335790806253569085078794498848162923328053507572946612406015738801486346082268689595450964422503382816882414789969901077226287512329434757982898700385519958699398770388463787138601279535663262984020347624673811737677821041740152668303334788032940626492696753802635672136770336745905871275371163250516275067930558907304685084225401931150193753281390536599671648265311745550020327057086658009916369308791486688987447635717360292491308016839095570888873915089635834955227489182786552390417171752294661682670741528297540432449517232280711027466546259429484890322144947054710876068210111177810852901932144295595543268262923360830986223396441361567282910547127878702045630200770318592571662255124427993856017236987751879787775387979732929515454684728606691502965711454065942124383939274287787783200587494417420570551368123944547329953800709562374040736922252198203814799616891134211607318586104940894227400546605081976042615022366906638906124229832009845078154140976937288152087624727983300570882210961303939756867636107198552255460495367281775759691531912265799848652178121562872578000684922164710594121336391687949865057284687291282706478573154911990882000934583107530832733083952225531923585504862279667993190147803502692008275690383461748344280303399348279721235810530166936249475642063192802634644156805698660478618719879003560415318880842547742816090445991798219762772929373024538792532529088212137465244826697622427168550917323104591397467578227428217535632603192023810911924515867807810123109146563726025679397797880121013032694799629903230339050371439181550454258364189747704924592140837461113851757220050454333527862733214431334039216371997495488781574374633924569130890308941521048044225823787759926871673511367590724567275684413965248181624807080937108222507302189709457544988990315808700656177490686592154021602843983054070877253976384576309701389644171423860406441539537096140163274610875345659738577731470430824004128065443300642387906444315492751175524628835988340091523034357558557607161078730107748336471903330845719176492717246431408553706429900213872379173972310614801284604175336680302460695618469257049630441542094856887469726061998793944330815588036967446777192397258338350000281685473747811015231666802056535612239989682306105845574290947566493701628423563659346445759856146356623778092777489428670631105743314533930638042169260416854932638028051212949439568234972613552685365364985619408215673004627095611020477523249304763753270835385976155781196942816805729661856016668124014672163043187646452686051693027666439769340289073400922076664752458570841863959552145524038481443628704122135965769529706985696728289850118975873759333200193421937986346054243156313837847399367190446779694978023332091393660696811624788130683381760931740855929124210492342856738614177612062690052887347495486721533185769087994102897600678319893853763672367931961521838967195898775431900274988306084073677708058229985668381896526912868536179771371113165595988473134628084758701727830184247532327269804640977798231122851993480415406711492215275785709595618564759599551145899923390768144593268896931431776198302582940005337496720575234162150777846785057743943609455855104005316221033767107557033515675327029450225062508843897493058424894137624514130383403428777327895978792470872116231412553548103609257416698224298600062451428679465515760428706104958343701829227991176224877968366803510407511403523506615575645370790567980741064865438175068154592814623353176811336443123467862364281450610182186842479830305714966845256322484791188042945150726275635086206118276973901466455677457417371333285182364068981012891858030052368215416931286134673472373225873607146578070330638907534177054836144630942464343727302259128618539912014566327537423630320433373686245328823490287978643357067062720580686188710382465539920214204037132646436740064031166116222649608015351389034838606425077124764043898206366232973928795574614017127552648003106092245020088597391698353876520198744376545688574509525107429154183858974918203588156913012817242871870626677273580282241118794462454484722088868197401727472418260934403890546575999005610499228421496092642475402783706950029364889808373150279721245608979920152259071404981866986931900798625792415659062085515789959215366717012939673176273000993210507816063912332328881054288146433709549139842074772035651138710738858025380034477616540529692900500441194289405844642958200114855284465500836577699406121660463092154159118149795902484084328348867866811628308349486966925350331438416682334686364749609998737954628918931321197672328629327395285653178826312728984200855216533813714066597301166306083079084034058155257058182635553465576923380971905551846674506123073212098305962215298230397495268879807560303515010192424794957989412542356488128576491622797637081996427232298969284552903873455448844653351433482803723364583407057624421168628530133558545674572910457934059686118365408912301162082895760742784673857250420634493606494773585203872954947650227110617604727654491293794127762886774140783114716964286036617060565342019421157080632211832249067492537820046813944032725735263249691778865294514721417013415719607185571656687495442091086323152446497117327725561783206946107433160967461313477675494571985799619696774884287360689020711609636693629089565374061734829180790968047199986549082528479327153510840783083287177045924374341007668062949049907181076159695569001408831931625395646829398667637323848286813552494247809259503436776783672072896470801710067078724653384262562918418494079810052647867132885880829008335899395956356688205633027406306896427181743684503273618189998904091591893810246128293473030581713169991455875320790935976294286276251200816048403035213966304572588583373811412740460491610609352696958312031528693968834159739463380666591178584147100547348556451863199690925421431797606657494651496569844943219409740409511656390307114319903655975353359316140770058140215197769204080959998239290428300534354250177383121060009481160494423648190233191909723664547715480209427165559555084773194888345985774321366422440943000050099153038913985473098304006530672484302343464641251476678172819493836451424376076029358357442393042167259838965156616958244107110521888763107334006175756836165810729940907666690874111689158563199889648237372932726372256781687614144879171622642905575451470591834099553236054388463831419308908671907562859352197448623039220350812290402187926144175263840770945868915368254576827052394935898991868072410145466603090178099606699991735913118216282486477256565169316401340983757142464036403486825534134450521137197712583106899475086021059119195772876771121295396995922670377183749839818189567684181473361767389458622383577753210520817738327848754210390963460969558644299575813253308816069253623469656391154020359238468162353220033447499134626615031144520685628355143907700865006073703865380695449165550927325737514996449634180419892022972023495274755419177848845618245427995730431688312985033841755654717045591998940024756871096843445366735745891443645865297284696682099607133368587373786632486804498273756342980650027452391620547599357693292958993489570704147557468859181615043512371841859709442470000533098862714335206600274134619190955562943576310160748560810838875156018015024830669480016081211310708705953826785176879079053272185719222025833546407284358703037669905499016030910875168760952049228509081377801836470951399063578250235342412340970150472079263483591129945334417851476700080481497610205733663266241138281252496475502369418348584818915455485439517835650759111185904396608019317000947388832902367856625546784080420620089806891050083362515394682240599696486055214717944678703478849662270021312887436185912642009087594577332314771155424273349250230311738528661215911785890058186081262357257454712393307012810457796473339868291083484227517132742217358604173415114116745231169174136931086283963647066406671830304062315898922332049490222556482780070433956801365743462141040497549405539226275214952135079364076229255636591414179755386805315247017236241448963961822982160192662231925707237173898765097443775468666311959778326901142794989923757917738054216593569938847025292933497616704636849899430058499399940752238681728130261308488611154000330799541164712830609897154449347182070475559661069949827050794546230879055217335968356887991407876616076574839427521375273949392044077113135127762428016933756531921550621543280314661007106674867132786678022693908368508003902491862986703522393137950358419736143607552232833609662207604291415910524405969428568404797391859002064489126074698383685387630383028510839475122444485497129041612922120178589037390075633693954014732751036949869164400203719836978239814811706561896206125281266673272304506795994724218695830108287772825455630745963030815626433672383976579202985047895798381202790935998281179190921845057178617718078766620763530960933852813118250332127399393754035066455350006476789842250346693198876403252574802649452491802836081202259406616017423908335360617637717627540156205836656789428815379827394076673876232021657436464345976861984481229735580904936376311335546716134773040669665855295598726108386339202324428854521904356755732347291947710709432098507272839336052629150271653581343486413054029655816615610613246475032952632629854450223172992845684177593086376310936649125285604801463254865181396018306675238572779073064537353052776709835485013792993938281823684871463457931005980811577598400990211213202338590985984903146490786761717643663405393513979576203900936523743213364090978632552834932073744450085283798070452924110753165871933878574765542629252212434002534359566630697653614099715226277140369450563648728738206527109831879830685700341563767872239071450448454918060575263643400963040648981765364339961964373169040827557448647030628773849465566169588164832570431146244110774561258561939779290165905253059918940677368131347285293782643904962971253102449313364917330032100524040903612068636202731808931757275036490351991771871139767358732080665305282355130058643550359850660402556295561110831571776494206027044889664567061085758847900761558767466602743921804266236409298777829101853544852624235455210692838859631255912818075863163791725249971146658040906936586001732558318977694204762548389435274507982228593877465004756170190303196247467673887058682553265600033820524491581367005652526683208565846521330702290775225314130657527698781671080351336730962800598896239350311945743311926852578315148126455547864991373790238021111083856473607652395724485964153505350326181214513203425221643540878841806226912470187087733689698670061668155108121098580500145093283374320184066640306079770152375742330861379318304779999900429275347659981300646517124910374838033413945294660313437258068075778630743170025944804320333829348136070934307188765644948240281098845436263140104860097869151479294089198514663812363423247785375852371238378349186838791363202656376207737005002154747488191159867404496589665036397406737513046154226450301219920909907467462956421373544311173992594886335370040300732610521238815376997014931361146769156291837589162328597401215122106454860507763851580833712680901772677460905569128809704483858574896460568066514354653335634766554829905513087702459818320386364008242050774732604488469706680982914827229065447004076983506984009269160406421863876942630684416792532700112004997275290332842132933172192155256739048578553006426522985223310116698062681036560915985045931724479589340210335406392198550503790021706041735302269542640328881817852490972933575906381034732099135780638336027015593125887007113563212605954754206149147189071111921589935407052698955664312028545772093580804977641892030839607647819045524104922884324443602052194504807563622757845896427234667403481751348245437646980510553798484039933496836269453368713155045067630985896653189588977450406160899888730345998939738934094152655850259989511517552190446934381057882832489833348972894050533571431805768749436651081810389076496466656513798174552542719398465300333351556210527695416744725071201319946217284948089186979135488796548415096182032561600130749045798519932431367030464108351836585052022800480371297093774765272692797430684058909286971319369864272359426363882924842196430630521947567950136053729574762474924627362320289117849976679812511932993510649684549424272535459600259079650152588152718756165073466256859351916506196186009425132157913215037777723017543704001268236550230473893057498651199665637791626725550246024113084796141489489331092520277208298555141670618738781895517567857490672552971597295188629314685186083210611270659205771955948115732627350122488200932330666519845435626842393597781562083360275839389326255780474910743159060244533434555622600571238939046180808326258663704415990370662771825161812000304122943125943279969548307454022256676597315603323237894752761995478095598663729080237206255847862521950353775082454345350924533139141819266464868913693264836962332448379329410951595855606134595656802828277890042239243571131404698860609509807030863460653041300957406482443528691599232577958558956984746797751128032490887543272701172491499559197083235789093087265744532139716031748025584605264570257583105078091174582954046052116240454365201497695613234121298078263658265722465802712781646275777719280740060110851173954270414049171160962193234899255916329502063284215124486867437625044835812693094205495567841156997612972386931705218707241095710056383466121445062192672621326132552298253407697031045357234234964009982970273072153596696194216753595435117838567178884202178000534561515094614974825654437530311898738747973762573045613608917085423751454838846742990571015820425699507120924551171705893366458956317752473545971909897759523966809512833130351530308318102888406522771734508434688532857089417443642199750356233483689541434626499953884383384350402983713997187700958789164263896079408746803009627259957648558695356783712306478908900396219678333352428133339869881751555424936134698891018883532377764813073476540405098897147293363526906350582672877066962658630594631567305971515789146556540778051422593254469580806678685360602843107456284126854355951755440441319161687154365756956895697063677989041806626229559879030004717962989991061334190755333141250450515467388267277365042146406299333422081271812546153481633454826285246846988385529576117378151625864700752222003826606273347737585935170627497831226668532539489474915534724666972358500962026295670361777208939749499274080828471790077556703882905193458217191458293128474284539821586312562171793924861849946337547049704124458293870196991675904478188611472077896560641908991826472773608712508218153997517657053901636297522726821952823830823188619150184016389267024672989086717426693265280592265681255015692848089308196203199356473787657673785185398107518959959090197272563674596022082468953760063850496394004362589769376576523871892986455008074150051716089079812526659922410534491371405753648824929751789031803061475408235155121211098933779615129521984977378511340185354264478667820943501886856290705149550022783136541807091486580473334929154352145957315967356404506822048720280361144525310988366276532460858890348640642308676304341812921476398184494766459126327440571039088148719643983942286737401214505323273032842860166411941519858572737147832467654158261914124836834801628168800354036088139123801310598733306668412107573813216038073443405404521130154462284856345319855130063103575618360525000975406102760491228330911072558589686331300548997737882599344136840852200721730979008781320723672992642131827130755315147285071512089131579824498723911128481664380246806875623267470621690997402819046268373767032245577003669419567812186568988941868400895053638185979332876887725431084157618414582150728010032000910179092408529870408997894508627794237043373818544536809424434052530818026059513351278963792065422271705521152886466797216811646498381049180105457912450794468532999751974688646763105731928680015436141785591246045793917559715390019938226525306879526375956265518926078231422241736412704205954433100765878003278416060942578984647761853572492922085187816371705383980473917812270114817025418771045907943553289971041072314657992582795662064357157650630064682430507566913478183618952891694305269787007764328598684251649367441542696219997746286400853277720979303977416316835064142601008781695344198923452494661455010560489959357047361903852818240022211244180624128908004327683773459148697428654770853638487960741519870431594633297895633900929366782124337337192565362091981786097083865122414130751659602019545382459542372737646325298220930103773145071038089208049714423908898644443425035732963968939411159296645232889308711388252532859076612318935147124176865958838856175320691167887352379063373957406040093809124224762621852040725818939472441780915689576840105737591257172323520944441541000941158002664356156860158693389259766214697058758281341340260158147373354893479005332747425183561133499548082363540814527517095444976843068411110408725826316437189615942678124759812717097245191383552671966497904105352832018494047095369251041325906841019798425837867443188425765695611492143390112057988509902772402432624920303773863692868244233879222726920472924968919025800809726461920705905894890889762616059603799609427142133006179588653647685950827824554262730735070049276461698610544313565039476558758525527131665474704559541727726134962262537265491446120811505685726278661777795916602512406411439852134527955089605335203620255305416075080354870327298526541707522985577824556475640757801293990292793316948710832092923219903009609521974243515217323634273078756171877656166341323039181266456530880368710115271589249088169198760715571844730414657792514936875850890497928431171971765137893081396395079981690999431283884724145418203646700261389576597676488706381270941102768572327568315041845197564155428706487255561984947719847542693880727118721862458628169674081625779079290393455540680263076015495048739951673519085013398570785011550595204947156357395872062770834324084115388635002158969185020556800553207842285433339122558023078767341989938282162435317803719948347329760172124653637554979960465924081327403602530149016216400424551200077656612247759439352400463024717398679476901872450821064924102716731481611462690452226907415652705473361818917780568683235753044148524897844213652218123874742133933056656654990960859976571277574788316344331915352340754956385265426689608794360325711384318219243690318573491000598133759307748398831768414621906034781789729846331503877519553769621645795026828850880821417826054118872604687163975924120821721269489886490563477416111497419461097408698366937050882807825470175095752501704313353571460851962574668591428272606692872729548941094098758779647762383260802020032921903693663017621443285239861884849625537834604396800692487657380239023056078552799374268297277813679663550229561077556402756316333287098013503779455222644691155170589821634706702397987076397723213988967225995526519096328620296653559536234465602463636987166974202324227080972769336289139227352018401520313689959372851382749398816413328911593120268073662143843378528661808369348739007541237339435165662929391685046307972651775354683600022947103255434030096764872031442629325325488740419263743661414931673731865215721359646659273005569832437304940378017539653635389447494382107071880352448258939007479550403387669924681765920678906504084895181194432124888793569698891379734492445198036622222671233333549164213170909335888199617672665911059439488629796672547384250847593353456305636973449933920464554312103639804953032588504354519909067477172636314698424352023954849206759436766503235852922116235439675116515835118135428186673184522079993354628977679711755208018765461254276526765744223239769266674884599425048892429034134966606883027773228338012013630119560463859355495677916147628593716503320418391152022629390851922850251868239016564659512246587688536453459048801134524754096256066078870677124561535504475441804883204843255107912542653601400916172316213679569533543885646998109345569295988425745124821373813056344142095336026228047734357962700568264680264134610201740071985719861298758415517191638269429254344718063839241303858998478915666539226483521558334471839469885263820413024157334451136455316254990440881699843552506569153855710550617221934767052567361446844445971427573164969570467539498860117277758556922262908178279859084426859679248627295784576274338872308741358869667900620530673628966863298721900371695353186150951407497717086143162346448319993553011559767745762965788363476450894430139194848983629434166634507194807177952867099988869663504140206983288407961195920632148782003390375902407358685768661010355972493943621562057529444043453907767950035414983555895580294337100059991739147568842867982028053567663183062845787610093696495132256744706814782567379105505973367514795143829594032312446465550714128321621947609294971060843998457830563061881364520698061285469098066444645070458701418100415871013337651950445791769000551924655808508843285256160414556418245864705621617239562368383838439596764338145402983867749651074159193280956586389243581626036825183440941572994416043702025299156393860651673924179660022311111104839723712561278550055398521882597197381375094369261732826040651689783838701394281460087581794080746649303477943018083020512351712593739038168118224839629166307663184255524361534022764667069193725138115845263697456640625455935142719334933247841206010371799875243113267946045886024745635966033474212933800624145333138228153304735520622747188849345881362655009163142405505241723139102547180944003981263714632574080103722546679471896581422063590891050010953294694001674007510641388279395031398872422840341098632708505643047023644182078379694291975612969409112901648428022353674633362139511252110050606200369508526610417983241468888974687893230026747501281195459537777273089796872511464472729243067972299742392718885760555911879593774898601684549474116546208371754641248581047545505748254173983552936744849963999061626501677442751814773921329451957469786367443820892316859417760476895176777682949419404551187960202637353851117074219452244963726139566257395509737018942478953003698254301658878629819427829871310321624325153548935835890080851311327283365423954867788857817194569306533691175473343161674478285977795724597472293758395980497776784412749162329426973454887715772391583789531808195065879056790794128615920853609821934836999343877758262106353640167482465780744023414597381096303630035981308342973576305673049016577743381183912469069050637125604066992130094531113253199229641766386680120307663086349488051360814572404489725953024466114518903803862299945366387028570770931581026184077738084775105898546072156852306200815129135697755387829766032918333174084241566621512416509289086853624176989769923726710189767694068385135086707576138916871259119315440531731527280207969859464470352343434387517162886295789184658489725193683306806414136429859595197135794249163368474790481401509234771852572863122739229304373382078213105966867929507963002651851739575971206887190341898509854779523823005820280059402746751639800922472977054290514562904146356318614963477345296606537006158525258642996508558492374832273928224861706918585133813776524401678257490872928320684040404427613762880708351136546363631430618199823673167318488670968471026527890475596861490597098343268902731026318969574980685482752814711530640296535339750859767233656820422545318912903079428494706212404926730353281052335075629637733055690186760252444152539328872537043316642777604018654665847435350387774068550020683382776021557910205917492557854968155380675572199275929718980100018531998179472811978597085733818476568011711160688034976963502505835712682894848916508870928998362308560423208729887231454402019597951577267654856376184472026874548652838946290809199049826182457499972674752573195037974893914087482644013964960520256912488033230447803892464651989523719291086593851759960994073738240016063856976663108452076502085083313724216996041755981749028381278514939254372906567810061089733368229106071090131826101058544644175167661249564987324925137962845765215024698622881054686237470503656788950962890786113345405894242553450888643973934834579221364099025364379123064796275106131157078867972838032845492884606093489884478582938462215706543834834325938142140917395978337719080417128353155704305949286941740473492811797956626409929295593583580477890219084976659650940562383526204286848724940534046624608712105313768836337408522285820586852207087330965854831238108615857065235083442064562667627120411903907257216590739179081130282776926534718946091780899257801164982612346673189001697198017904675817580641307893758848091268696336672088057228073550808884338021548986033492865398459854978799717414539774419845057015314935096049131294610828970775742825350447283369568239594791892487225153924968426169516332019117603651047496409750254268567868704364358425614975362009196421113670272286544884616438874901164569701325739056178860383670379319413353997909894294743793207209017634805611312166947002427864648031341576574479080382350573548414515782648207277934969035731106374814941495509338462668359383690922502876158541083632939974025644133899411021044625027439132092980316645566513358883506244347844022334398449308673938122422429358390235197619055261393878854971390343050779690270661242253865762699484741792068132587205554718659412038084066789856356941806161073594799709296015739746498024659356075798776034254368569560924970659447729899792499433707731907298199728994735754368185337417370114134475774894826980467225557292220414406464246055285632280501037046387788789955980649751935570565551680288818483460778878163880256975542006566208038634770052009633937032221137109935107023205182108382766826263207211311667209154717179776029786454578274974105506068402509237113833248205402685331647338129309540196317469943210282274242699590338180522740853115069496355677813725188996384149969657957431632778929940363714268418593550326683663236685577325561710850634634137377351924690148881610004479191101109666761790660667388291621068432774581392596419647619380724392117553260696934858295473582085946585654117837802679179700579668077959057665347121095291037766000736998953797424534579212335408312956194453229026047662950072716387458251306489424207928339414737573490680216275857150179135069980389684130095522320724047408478033260937037893214202433301974316917850120179466948280782223315410187195727477170517948017955491681512663652737348445530204264702961268698905921019372290417890328284799270952233477923517252645929329752439238943771127588232133585565441857572478565434302912231823931640102205932481633587150377057944601249000024835335107291343446825145287294559639861736098824281286889293072315813337980928357533856189995966993240193728275479270083732871959034602770074747444719519906349194539808796448292534724849864237682153876474280867031036051131597122840059610755620490310046820004181867200560545833215773885440080072148459317330556043647562500328125770087037846094590852668778417609292268733601403273742946860647556489061626279056407707233395937956081258508752005801964572318253674400734954601042466737655274802796041545735829035279976501913955029999543755984643174595061293000190666977876946642624572280458908159232436845157189617633337241854156062623403394049805610412900642148552418003702770709660392514097535792500468720749747272487050050168086435385746153803652470782194028336803964333605802118450127759279157445466603128545507959785365218228000841272228799505711148275733640210399112239291437783887463755911783725840401560097762390784905203296444111346763070869928486690659689731954194142379583248802534676674788045601131981823021574326129903710484988086870618884533610593668169556548952450124575141545438703465545300053232154444027740632404584960067691574244028007710025033347509875331846215721780121732273324514828511377331109594307415417089592465297422028177951013285573279173661884345798923286397525885079592342936925507880766005521502264027480204488479790291661407468228501988905828948302691522460854879166999668003371199339779111382248371219108530690444875249385834990293832005368015975392641577573342061262509591796374680606455329273785043310261859555061887380712577575733239724628622119084002497548952262423894157336778700560367039685094292307422800390685194403912445973714714844451461981456387099603312847703625166545117147727090423804295394576385827764911280760692120939219284454392469298228618153819844093064007127410942753110503039141000550286106616003353004244119171945700614421222742356837734327856782882376960475610589740718059749627681411603535803637531951243450363549632817905992770148794734638508206372547924996580607360055902951374057328801564735006331173693870406658854197546090423395206058756728660778122316736005354576084680016585772000281171599835413622221050392667668129546834123089149425200442682446277444917133036295209268523628346604988992831393824365521833229523405220350361358165964951945690403818975711034613698332177388948973568849168128636336878922162994594355627841836941465908575370390293932362853832520693363800915775494467018852081514709047962470937474446019645628169752655913019318827240260053620885752252431574444975094876487726216020907526732105004401181369520351002426151211161506737987544254401551709317543786148196094201139119790185749268186999907354365813912306850785714844978789653717486985073082943831723272137070877566644702334766709088519054826804243021247139691938207924443367622116239202415696326990597100094028224245685358043692536838664111600006043438798258301690541394329455469964788653536550527067146959130332629166327900400083937176756358121565646027961466656120909316485024532261710658680181789992147071209444662863469660510643967288355408228641885093050806660571331710118660636312928963244176838930075553953299143300769344193723838834344371309918222876135440142301834137774774549548821392613436499490279197973886707769765773623139422581501121744498549988505963788161850283905103798384711070800321487041652124709989841192847453187394334408227739945708336801283603534919035618403208352700306689193920634192332002768388267405193437373176249064687916280433313173185464416144838625134866197634888821032652799501937248415942064213823411908251648280472238306201901991622887651281912003651277138169566822571166327977403677008941207794566325495074292753480771719826758019484105983346405478162519039374402455378689303743077751619727014326738113527033409951755896786655544701443104968246089768897297952872970805986396748612191606799884734950125512382535973275846057790728978175081346337363275405551292250459234175507304380590526225822902809177312195239099993381615534855160442971944176470762219130093211123148914619434677441319414652652041233531191152549796358605719251716325173261875555986536743643122944604926324931870228951714473271194298994239177684916846634341588821249838942982033312021472252647516562468745463036906125049158436003925978322174455784916390431807512016992660745764828469964223928485363099154380732501279432247387702276522020893160947481237939154453276030595326196832807072025444446955558279551434434701346203763235548826544567913662251987236481869313318579065083810935865957944635298813191654934745565665129397352973618792932035673346707817281621250294312888006066681964251745129261272414674908518638537112102653041973805228532037080034019091932508978114243500009591707504977162508669415927955150572089790107715543176325736664948011876149247828405862433534439323976937338669463325378796600301155906157037517261015174991770103796681878112252634930784380286398979096063042345509427550507341714116143696006464649384012608964528387878565807558405635883679087541292645877894020177568118869815601307169121190752510987358883523930154680285950089061915380817567607333590099588545376793015891588051544705808678892479055096921020569869446946794128891099519812383809058662169840165659571390955567498869640309475390705531826340243958368506511251633188694414402034912190533109637098640428320110739684557501795510353035969736578042590730340910606115434657457803542602339830220932642941535534382712508182656926669013133988302434004004629275908593849121546628567476687499300280098735228891956205507199820109258155451724455429190427339692710555150591511336465207712864777928504198226224534260353093969781365696334766115876755564561686285691594647498090493308687834871932499433620106383132116532869036207665587878488129441790189390626071775139833754449460898907971842024097495468981241827682986137015707491076549503375145935050147125645270889625934845352777957476294351817495127774158446455180443657997830993743556934893614324693200504783570659165372009409521595669420040910178956563084504923828815164083896400194669726088023671176423049459871026947012576297837174844478622733689137969408506224153051406764291565262227653011093354785186673556208701715189409013809422220652414840967465883894530918416600258351016343314667618545899984536151790549623086977850851621186565428608810576325000412785449229623956021502312538942863247431832767066296942914768934882968758572818916544341288116911965165122977782857554132525336954776303593977303502612027051680766092110645972006507422227906138701255264996379454695115497881744509284338296114628035257908341191342818953509497085590079372420594484070807780022511765948978316566306283723600728597588024216913768687763418326898787953434535410470868816408009517968525948214588655864315848802395837873756452608649760060403023005838184980248574022792525603928505040224839200208140175349669229728278292813454925439429621657265514687067058008789859099642049194410987561225918328569233037556109419693698946403347539365042283297001854414054628836670294634709122027445186950824023654666934938900579435424418228180258002117585660207207157926162061797616049891425630757485800980579600296417879434817089866883476878838847626714983710766055037207995907024271278739780442685204999665038640168186070327507991687345817411599945016097712119778900861540692054878303536734919118041767196632626296183058445042858380543834706820811501203141721689859926234093677901482490371389943414001932520963978280615404362525545551096360238352943942022083982000779335320472368892462070653279539006309884097249807861191029774689172589971231316148425540681028885546507355277797542545615105635070766105298128812864982715305900686232941968325794955114930697526547576394941779737940761056406397595703039054720263683842390370611010487206866691534749498040913249562820277919651932575675261700352812975647506647475829522072685594926311667547570725547532243114161698703983644334618411476014546397743681175536110840981986527611692983328344357039645676352787004158887271529208884124916241769776681296956457185082028736302704344728076608952967516013909551344145497247018510699984485714111354644986754664027501227037515813986384924715561701085970356181428559231892668599486656739424693644893625193846781629596880851610909134841047487203040948405865923984739642409138830789438893615888869060420047934347395754787000500538152618638626288487596167711960880610985942133147626153045043398743766776562874110496367357186607150123716103953854237155807667880723702244669787876139733128591627543713799880745049927274986962933938346688687889868139785969703153941364154096158364397186823773377382379744839813645805475757928355887755439297824152587910451161451224702124162286879742349989029015983781367783874677394132547238948476585197154267409522517503046511638687163054881563566810736464731677697020718744424426657297905252061781574721764476042693577894672260576866894267192602831448600819315256395235334299279055845833681388070040869547136883604769983600922671295339047073296146118402784906800642755356909552582189933030363446950899619421096833031237319169563735576259759871704095528143251591431874032813307929322494110996577275730426489292191007173840805071424029706165393573790792509170261834798673902026697322975428174169314407398798247949471620543976375432287558677503407940765936528864452414766712637924900781154383320078578510278178008262936296486850098405973580533341353627444319717374196232498896509146287721363085320900826406057737624990235639644127190965918636678008289069518385525542193022062896974602423292406864239227653017646723678219899726475600320509385532363520944121472225073029141733942107160637773175093761894552335496452891673474415143681413553801646840437791733573931060887253581140281574730310802489570157557230859583578049118495473036921935552115361613388405078215834703008878555073909714593778537173876657756887708639945098181053004639476603750305417323315640352290855156967586792281652516688315284866348123491363064331368850076167478126442831469268166817943218856627322377599539002042571591310711303159625098627842363363977571412557325165808581480386312848848550511553720593544354998512654338307190311971974809756987016719942679956936013113738409574200761027650733838022368795373478293365069170348871059854049168125384276660410037011901756111211806857036661499121952703251276742169901575510010198855450641114389389977372607467056692007473847226645249350371255218499304729272988839718783549957315521910714038574686098705654048988758967571565494591024135035485832132106868801364999465889287263700050410455870298152175636874965163455882924197578842186875303704362796190863833308819668141810298581480921177898160442365574719202358027163853280400661919661372036566175898609005151327862266008333760657770344630097470209976607965993518967760769550281042723789690045464267860304786555857260048073981733150993719010011676481499800457782274534060146159909733363629653376895324247363166544567635900732961404438120969589105351971346089241916033215459734858691716008543998431615521209357416349993073218464601477954497593956290498706212136680245597790381364710358764552593311716922917206268897616124840321772327216311526676241695023052842225650026536709615065277117905019859320982096870161955006631193949320805742619014869173071505199837521304563327927203427854944771768984291973864529446180718749598613434464022811080564576432569424594660372331932397089863208186485184590604526544589813347468641731285992948135807555884920708944339053787627432026263583119395924913102176269133676871034464719203345916409183382448011472849288044010469747040501303903840882860509001847362320548077329900980396402151268183900176101136848227928155010296314756884655818626244760299299826371655817582591636805167572155015600652096958366165878878827471791138974866911943936765577363004363214131551674055608738510977304752624435631857908693737782271042369459605386294329350927588043413134046903060264041399380058517723259004899948068891136996039446460880234374872126220159557016433749851218234355347187617132047660297052287883074253376264566374475564050419779080166299805569254190416449837431606919715522175652171396027199101820269284098438364967265962178013220026818801773301222912942361236803580011666932485755066286817879644908582089363972049523630670940835558201072228445882812028780887147384055714866431565151946025784545646691456889786062428016763565796362133289759214282523198986591242861072706219545229570335857695624617919051486657080168903497703703936279857520621812582221416667923965847517935223891196897366348482006365108862691010700252989619313494706098042807389139665001282597849114917896417679619141912156291250883424247417769156549383432267284625096552325695350923150282106547944501760632950955266376670053467024218847877311902752030082945731769848753005357921054013360496875321687932137044309656719395046688084707558362785606267140451513071354156898911628778255778926224006000647136313386469094294322626981427951259401476640750892806344615347462490945786130130200410049241523803182596923927586609973413169429363562544423056391591599370002819943015974434333156729438548221168797394341168928144941094841061888770837648202365954553446359147621763100942033503082783492411027022565779021631855001072389090217156913450002604655503737680861619570262904329667927192922812765002450619935404868498511545346949275745609405918070956588966090438664153016080807845641666975628429994297033555800890745644482511676936665289035169558967985906197817512157941940904845069595858901894568996615447642909543563892502314986803973584260365122610931844360996250218722365525449599322281215486217687535962430053299683694209674269486325154822386440761273930992999982638821607541361390541076367970594786132128624522881974252477325023046257386541239323816383878603573397978554334248271522983985697786322690035647709583725921181710388258442374797949709241391247083813627814133093591542000636260879425691298871446771575636812069744293221644315203585619570107776148414879218922251900512491384685249315515512447154959234395062991229366808128032724950436825152331122562621305132589211902002665844065189197258396245885224059530628207065058303210812757961945558285830559337691005658605931555896548162371769430635041544881741174153223055651685785722413352575384352385132259569146671777713084679149267148235929101339234496335127363003812525416469192560758213404317813587163890688743102550434124287356127828556451933515627898108716210347687103638017656322698386145198246530553702667907428476358723386758512667588643129935392418213312322293861082556152622654619159943617307785009179466310995817090638081151110050262024779160322733234772199409951503746882164504672229614133505655058160250224266543405665791619321839739008153349097770461006058942951406973958067968276748949217212820380159559964594300610810226268616831876662984126410118872440355944860039156304453158614937239416379296241127217549283317728389203609122966043247229631976868201124829732678906684424578068518274696737773961766191909747498393324450516751718874234252812149834808805925984672479724994390212404866486917475898098746948552078604570432918999857894309368107361633163204456350648339972052901220533766568732229340634875476217196586221950917673900181226592128843170217084559622407955402170773933071231586751484662405747328422055273301213765336195118719396079457162013784778919478976177664389041211265587369304122136711962922049031963004643588901896787960916004313019895529095066528452425605569792866135197208123987242952908731206353386931870868516956188891331444960588746023338085925836891913773578066620195440615758529980304881838033499821243658633005967930562088760793334380190937824100849814512477101083036952859959911987461291198383142785199966405544815499658047273915179748157663015539449216773809712475981215356592228319047300593149045223002489557119231194712814272566655816847138493032207831838762153249267342324963931105338544667539684504582192838207274358133019149381199576833403224305967172853800220445987673797563284438447044883707913010907139281317680390924099305800290770044315622888975587214755898096140493687255679221869664279251355834584650034628912967524893405257935977760501212953888797428990865130081448950424223846467615005530419699873597423960744520018617316473806145583767980306463558280352863189680105750958519430368900344953750570458557826904774016629911688733765305517642935696642758093860392765815186522222193143955778794985746568610265675233989120784014488167649244791260557174292916898113393782118743762605734288555859833182209047428481186801424983794625558663178502867973771526722091281632257896232533286531012322684285209137005582694102752239434603774738484595415320660542754575503590676826373613306124674492879130511897493126187805554860094206667597013873161100407599514259671444095527182738023560863087975146730221729490982748424322955899731940554445108132383771673733734167240603910595634027854113726811482930764648209967246046628014758600556618042159409789150878244594558799331422555897179742976426235779467784740993667715563660730515214349092722126527852570357081716225700566450515404943554903689638568927949704550836700080285647234421172229645039357898403144639759561122447031585076416854146306833271224466688847827317083327975579871315240021462700847795555799116305882933934657237873473143244233723159121246184290118794085510571860926542195967482227380460116096858085590780538546996720445623453347170533377484775085221167770046714766686404206336360401834396472286260026114910965231966627946006165803065561747097726380545209105567391987589779473836220532043431000152994016550267325408563036145527600963892012279158727095180795113692359960431798552488173176902586184391141972711000823805962396096854878137192450443983772475365706133894878603030628025816997004640683887050224892047786596351864130862452148483542875739197680130487122679418516578720206203664626125685211906894357517287977817156943653577639998192912968634566752599832740849511922732575708504280232766408151950867340230426279874149296280855081538608699936087446618450816400801380845872041813998590228606081673444244209882971892678027406919001659101288290912817964124325217854048666825006764309150211827566217839005690379318632220376141180285065668581635639988395395974072614204594489702164301568573677921136915106968127570285311154966852019287952768027587088450061814364664021166075162428884299857078591277313828953676697160682340471324267741222555467675578823870098047313054531083740605588009706898010332607464805690770189399460378284348429769814374037549300745268526818788375791941654336362893608641223358524358787930691385203986448235681189862857603963117437165294199408483946718236641064550419613268314410405659099965213227691602681665407407498577477542274746648633742301122899153138313311140854509941966006835070631540893479134821577527766614797962972269865542684449401195679060605906854290080777321972950305855008054290460387425596356758091585713700103067800864055830775099314719389892430311036531809919536446146438510588369433976064251868118754404441127341422763356666791108534267883368530544453791194161096573388391605649679115852107058577229690380249118696945706933147890052705289043463116090110164658029365688892007374357234054806342571421808025771482681303580695149445025596638440940633742646259547443397364955030005586561505715376998528429300779609681969026674128273686230164405374056103514910033304801608944580316444719966741022454433940290906292927951433658067277396851992593934562845580837116230234378477308710757631799406149149995003782249434017711290044104367402373656093141271394619268014102896921581964533005896349382810181718056755750344302772205317978647959470531076936290653669897036103953986727664218350084850705775353565264414007523614920217655543485964692796211874499395571025634961454687569481047749095239355450594147315340856003096682287777980594139895308950364606572697188450455860909439956189598965447078924819394224902169784863029491833061561460244206213505034554009953100537056854922938017796460308067601396739823594802204271302700441367983636841561707050664243509490377844124738764106795184786531532896752128361716111592637819989364916221007431008297922625302290298680647529631611119813222324656701783482758166406062030234466348368109452231873046186617884154848171796741592320392518202994153591091452894531216176188198603013554184581123567689391130983994570328590193688619083806998288123726194102094086196712055790059161720052545361640713617601990088807731341665309338429501961840313950790551713769379937407706437268028005558435623429313471412127932794548071878459168237333302418590750163945139443708147722782584881096674057546585559065070000320968948657849611210593936374408824534551917720050703337900132683620817418034132358122457947888521789801698048527101427562971929593375070891566030367874173494278369843987030487252737371503527668526060245955778106547860171199301230645880938363538299053497410606105062425809830720399815225145701817500949083150660299863716676019327513163059434218504182877498708559929974968602298845748458019117032086776371418008682031767343356711721080736729772745741773293924460658455692589966569297045848236773761002589731960342122750670976438041976893195126931787515589130831067668794107864014439317968225540222485034373292516463834046348787683810295547542292846620044247244213815753883879638884599905007805183289685895193695281579252799630176382865641520379660605800151399355073271998836869696791482805524278345641552776857299730951614853409482265826887333426039370804133652494637320140598808930633719042961658286390163177075789366658957826134510470527246121551179022954059946455962313308434263929304905180684303030832624002674276132712974210174442138813192823822731350762807962880778174176550334851901539666849014819134029434878549118633369980020088613253558529212255409451974384519973304503780262986016853240209115761470591572361876353525800089567042803764281280940106770997283434752444429460370920964180074846661620118916659880243080925132524354801396445163880644962868243074326549730007435899882291242534414522443145950812305546371521112370001069710026842953393150566816288170448601494818619616147831948885549246767638321846399337338712584283123682792441416935653415745721966359212358325160968908839624436911663346485526824362355100586439315400077070918806045870318939889344815812022815556409707759818672972827742538310290450667623994042809263580093177214909408139123601234794682035151815218883289504856002117478885986328074396371912417131321729691936895505435980081836242638408099960293814585565200563119381950265274248605189207666909943566254448161676842861957819502672963236033320674847070221772029275527782239090961779064445641384883382504827236746298378761036370070415211699800502092787072389084682420763133212162906586078752623877909875404655456727975537383983048257764043381680791837411248933737718427294375044836335439801426797107699979067674396334165426049534879310442437455486951522214334137322492346139524885753105255201961739387252208769467732774966419993607071462341572361396443818498204886713782877550659349822321340943384638068186796085512559382586321235548322835527491888577159909380274859086172293815529350217377817140166244439254691395401231986534978269315608448201014008908292532020670085796944686401830791020520585319043063928778669121234344948426586568775223636157650263043089569876388726876866819027431313802795570415789428692703418285856614898281401610909007793106891243254294462020125405796968264026797616982839544478160060542119221716938544322927776840385489062544890253780784862230958385393315637250491082753637748286564670309755291506477121315184369300665306052291204380928667148517148179217216834532811892659282515794138318531524160095841738905047688209669184661592484562905883926555567766482220374213296763335259465561271164176586600332792825235626877243027397888728001594886168168499845475264602502967883000889841749270927102297319746413694303946406980910286958266444876401545802749302025417547839374500863663915870055788533777987758694463426262846426722743841331108945789639459758723499191761484074993609566341898650203914660417380574780380323834795773521446777245089280114320269185624622796344683511120900757093389168688675235624396141048578701030433307786104737566001463851704400710936575740215967795347633204823829824299470279046795253925109006184236987610666201632728994527690302359193363315728684827507344924428184026833887847337166145214818182002894677524475192950054653595532779839886778309413344909619220348632844269871924423306599171234963849695524002620689151445827454876847257560425260706474470959668960252385964448027189425257822928013805133867465561709933258287245744350557452162172817219705576676288392827231444140208671062546003161821722095318070855946492699862613780448822590263560691323519185243651448361791948623827247628640908126377605651867963871998908419762361238464005734486330137812377686119562740871115376317578899677640058724849750547917676817331968246190439589942396142343916094495355744020700505343455415987680371153639264009697279821956422363488844644401968271544643875400285911653586536428638569764535634159947776495362507169604395766582932394668638492224112954151770934610003536574892405617194349273744285843370651337308278928786258894997590163600499271754069472772249741577670865277664121905014521016525089786729879536291560577202815607138677697283676879894607685244069484052343118980138689548145544214658281146158437537476388673344253219536862932263786073949748919600201566223709085227538305109694409541653560468278492064909977825000641948647895250225995534623935739996695556769997726147458389925267752140643643059546207995929977967570093492893414775288977301548399467715664476992494509479213510191885311335334430655118698936147437370176787115019485001512860239932643910579643947932396222254202789332046535251917510858751144081894484620913948657851285505948226938593277100200789719462520469512323621800357510085341557196981433818554979159824719822349482059842641100546408172629176767588846293155349467335659226149574789947018641494000695239406306965344159657511679072964100979497118684520972330332254340113668371091762783140200039494588557542054581085976026612177493580300353520566603036411040560230004994492301367155713170980470217136377363111063124441295430083965474041859967912718046226041325149875004687061438262620855334872726471734682010848535392399358249458422975561439287096781288039941390872539061697713616426320408376986540987291366771860832868787080733849179163678593143424825239959632413095515863674540788445779146974738565063976621439257728178237119166629684562396575986971567237144929237850020771424152237194522607290063861672600907686932096839278450762720013770227534079277822915265748667969074305781255686957015172774906282605147424112438199722282542714529896471180119934587286370667260166803046131467053377983062141987415076368131057168015502515152374486606044201145520470524239587962834636699485434193149344741882713734826146460628791387037310406581069967186061084023839918600075706564538875858036532025859977672226611630601751851336311741040192650760714938868047873298129783600170508110987364772433449041325126973533537742544406121852353190192682400586862129557466086601733648334788945100043022131664933590769533715134860721071801410668920169947075480277184883547004969639169896978515603650326543388377633494605423204307905713227927969536111091695369645669052904369559732489624761177043335113506311072618159245463653244734141805497995904971825179253998298904057293059141914098651860423918931445260867983350757935670692836181754542964827531488863549095972811728803616317141924810018684351420984821897110550681701326562037432593353802097986865094218844095067993213224043733799458029886475215553171951658498621068256846854196871385932606579686035560374447711067720764068928696540558699666307012823266656214117456733002336449156990281432277272546796654646236949052910414040018216094650780599259373817456327033665184806030638426072341971126120677414555064222863274670958313726608502747594395919159107946237620403337480087562780158952719530105175476875053139363625511525838508606692130961861568311323442128592246265747798442258449311498552206784121260130760153620213516897571421421933125443894557078461877726282067327263516446217399518733780333037595112874263420591705596494929455918217098445441599746270972135257049453531507262115733924084108192622325225953512200266140023541793839157231626782205581969409618943839709542424540592655329151932466994892203060143840827490869227792051539684722906961313512577736534554081997165797272913081040812821546050658283466290697306837613818847940094983736642362224498564203326394700601017465446441209532350905797881363601522980192204001283783592710341234479282329562069283373953744717095952639463927080025985426731841160952264738871321276984498369569666631564657965387019017922927742579199234797977152813738972739347095315427898467849661006593400444536919472171625501811141580927375066974995440057947640407590000796932054756665881418496617938219601592319364680615365181217951606878909596515668410396868742185501909749883971217382011202935050179421823322028357876686241022070402793902990962867658123379512030794099526174867345863799318246200784743445314125793769247607551627830101611595480154786693871294470038823569109847306220205126320787214540665519845225027565793132703120843678340678935347627265764422917107946131781013311291345180001841024430204680209623886799380002410143110481903084209982458424783169447020676695070525033829933184253828868478112986471109046507134145332893388527414240665303263046092932084346427193599218320231030279621040150800696675534438533032346560823255187559411291831284626545527368824823313822188124695350084440368768402033570824257854988471850805740624738424237905983043434852703068045528259028324549514805281283718812376552304488779011183448659205747061256641020068265902106958283584514044642966296722185516424277645528732709893339985806368377260054865504652975430766415655946155752243930718197744662810954923067555769231804873696861185612762224728277431633120024721810766421869705144003047629270585408055880322677799264733761557900905203537380825407994570699731669629252007430815729912766357219326399210132991262686238514731643590787666469193757847097711353970013397620504535018168198989073671206371860495572050746926119651670904033302147596237831277128365802107445909205147560877019451898958569415853391603871559705534375780107008817790497903897505913208948009721162066986605630465482358821153239627401748519489679991495545419439115967540193855723018395181250669450229152416832359923408489617279290879916484831794079278791173606219384212687291029104330319037843520185055065683409744728423938080844878044518014740039757650581749564741393323254288591082114634914796345284312315273498058241555463822141131228821016465592618472394965987472013140024146699805044364751230022084682603457009445452387054602710887382179222403300288336431470825281647124850226278442480298349156085713236249648366157937651261623500846761450249573048942698552137218837055996506411925070866244415283592231428721958362377973951735550015119111940887313030871287009478662214960231707224372134076460659195139324735408964090880114742872912383125663239774799308823347585189074736925888467747929935825635799637875417560785310685934288969473902379238926467484983358964045970528577234296610181870122512552369189258867545068808938731463938111178878808432908566181738774245538750311031847850882956576239380010145058404046531896615009729560201419182964519702027844141459451853438115851896250882562966431042978193618018448769536090052544303887830251402905167689256335152922126657924209710196455116893581049522341666925625752717629189446266473442367716099661958633522156424390129971389394886441488491249511820221631958407438509178231098392931313023630411653818000912315025232897716953296606156106321992492898799399635395054321915396082723364531063495520912681589132539385838620326517574091978245855336580515607983477053523328606980673429159215243402241677546584002455032567411076214349451876525749105278544287687906217395330775808665760994374670380343735974515534462556397989929058914396063566493646589149279912477316501024766560693528045034256293286537280534589234566209855403702911263327680389893588208286866028540454930118560893755158703728639694680785455612509239427322632943789276472839779800621690753245483350981432947685637305066476848957798796814327071884188127114495047604812675001853694644353533370476749490371180593284272943649743491028539617720548418439983262061807464834424972812088772130963802407283389944332926220912623396743324169151669608384702145196282138312010756971390955362695435366006913055325378917549384626590541756949900061448088157379861068635094939891163569441407437785124508208313444580936542332251785872214467622749352375204314068499867219466747606097982494997457776227560221058998019675622052455759068263654277681947655164859031071244295810217689752063475117800207049149078657114442210610991098369225937932815594835731221377081368170187378105435369698537358915325314948713358343484092804382434963744005134734993124093983066052216892108780456921673067405999122519761131812021691508744803687673220480159086676874786543655439707568790872252565461459845410988757335023695670126373245702651554431686119976504733380960968830031322136949461963418648316278623959994374627730133393200781814617940208898913638757298508894594804784859062557378454467583165543147018387665570059020202213185962144151524938185257100079944832869675077322892949808528643441065974521981026628525399788631996557447432973955067460353470089743638622099522544455854694027338071114473255188970524940377432976025121608505070163984018632486279266841995622447161028251450684847812750184762025118950461606469965118007376003402191355281060569715062660421621563131243368684389294109365058623836453438333617580634104105666440028624122973666858875804682405611008729776651661878322719129127704340798474771925333947984224637943439498463446633755519013895320222443362512646637912800897557855522391825941040158670174694272911245621829199956885371722120918523295591819650031610949556650148450055801973617946767106642948668480235286458468790146945275958030080820784486540660604610905284826443141922140152824507773940705945387991056274185769354417673757943219801924462494377580430104286571468411828335926006367110954507409486780466188837147340831670792636043873979435094690463321156923680553928955331455235346446186569327418624396512309940635958816605226119687732357839738041710872397611666198664064211384106749413195861989786494287220402655002324536564188469124655828423672801551768855614351312976174061130845539795051081815022199076331301824028401471829510353238854279548719816364462805067611361247331739361443350303979752836371618870735075992410466485556638960665094815203379519449372322725981458750254086411885044723873673907533835176179482973274533461998702305196986992784303750528113396110334189370946810302007630276218435777750661898555139110895313590028055840897972149096826341095595628816055482137744847992850767241323565500562420090641134896337446512269088904544759638440897111305517615789988264560749855683381264755946292512654534561264654649081251553592121280154996875593999999597930269102719301084318634271333105990513983090989827332129422997166720914781456991315673801482764570889533935586142521262638834643063190254998179262214437633789644856051071595566525510104951214667209372286069531097448768423641426005678813544173856523288416922414430181493479253705554299874099789232672504222893800396677267014015054286613248385204553543100748799076395060685908476659290520046824538653451498850543643341379521687556408995294449903487338297700005635314090934414426697333995540985152865424491908901659552331487123639643039643715825237341845687485396906284533536834532072006393175045677334113580496722119246831809582314758611541803084633353345716877137724294675589606352519584453143769635842374941581777987087422128328835963153612404105654588409665696577555407563983148747551802996843113537845394284919110180567936030006044794639670109460185356360177951609242870778640419282408785678955255837050860658739908389325547944186598002396386242658133484531744678075060128253675318111038472234523985969416022514137259343267429438279308123468112872335727175131350989713070627959521567132964772358246808409789548898419728286698370530985815631318643907820194491267889901075700693234701526707110335654343950408328831878353146298405647993040249320037702836460157578383163772053608714397875111960467995128931613436430454499877410887458013677574499301084072435884846585495586527777639705936435378993467806355573456777734940149599244348402224661757893679127297204806654161147971732143084227202117053193362105974828998815694342395639921387806255117380986889989862846552566764671232947247690453976603858856456124911475749816796992740342566512070551558235434339524442541836205004383100616792083679770642780672942590608020913658144903995581055183950530176445273715323801474620503907244393405608916555117089713931900641014202646415675612260082409014677214938832828988350579513069792153372145357106441916772479670205007784004326962007308790992120091480733458074372804843298189921718466328992926052990070345238535957124533050227389334688609537852513907099172430755336724901858154808620524849864469223518613868459549201417994631595551435211833825709489168058731390185718177088406380515530533301968848680534391900322539599900905514180626431422457538251626145453351924066407793071932938132000735864798265285863567763894503840373811551396974532112552641464805284926668028158089964827835882513796918407003832946867250718097919718770736783293667441009756888575107632713797264909169514789622893977322681449317585255688401032155834963830115241318072509852780209186495388939301943381193636031831147866038282945854355425420119672247271623803125921078827940651764197826596774821403626028255842507648562409629880239062792128923757745188607293569709249110016253248888610168987851851732010214118125598108028639135050653593364769473969653244477180864290462691155861427181653314507871822786585393985239990063230214487350880821093976395544497085865363489674011326180690257128718673918625874239797689415882569911918005719178676188934758192702713894620839155741397734247046181584316550340188821529833876814390055733900784788030990977150424303513203562992260966689911033068362636922961138659892780524582018084578384793506749934253514425166695732404098789872195471694958964740406613313530487190649151237227997564425362327577442525661026307471389727456429589277647800929762343189862224579833158753030369116127477434702061728234389582921981010935784733636608164504532429290975647715627052002214735002737532650410048524180054773074233293663405771091335186326504049080500649831414563167121750252806027776886109721871402920555472236284894225629735806612869011904661488936349125504553192632663016850179138693557022121650031851559629237011327918380689645744656039696538496619130456451932188225377644157939219808537380707706821632971265482775684267795861472110908402678141711960720940003234069109061864811087375969661403948163007453312909970941942599218806247086476782260783349699860257206169152402319330221203551960910547091089698931118043188848935479470357762059410527055046976725883875077410078150621122925867267297198587441270160529275686460068478975293999238142684236299108353670740099855110497723880012827448643489581957737862698401522558554916457919756161316557708477490996449034357255170993460433278227757092169419648245617993643887984346637486834555446156108917037030657229944664980099964981979539590934512002960992375496174491454954439391983667166655143525494314286333601407981371319828428565570910049670986067050806081310258215309523928503884587979208226002694854451992380522832186786970227062504265901028286130174082238818128688433241828791421310744483410824593616565507461946165331438884868155590209751013735166802848995704030192834789329438246668335313723992240044508618477727001329689576110179100934930694846233380680633800405479567287999169701266389904377923509271201267975104159386199093949365314821374237921231126473198197460743425737538910670431617475970205480238864619849954437003283479372117271470146524903191915918279910513880018212031736506654116213784814936716195635965902125043594587179266733424374399354307878823688241414022757582869350072767894571873187026806153000899439514599216163046222072410764528707096032036392917680027040758854576357386869485601921376654149605180072800644710483782909282043903866648008032898218451061450452997378793290335314761758073788453852341433156524479649781478012249220428229398731236170491516711546712839883990216384093414838364830543011784904914307431134467536434235447773659721089630831811357369944897463147583511216869056190941533340518045219093918690611460312966301031104375327511068310234514725373726716414670676998590749540081371762864145744172960397539218114942424603129198488857008290724991266825638288677466631609067724602745800103523079475785467863787310637175724694645437863135894437758504548734822420208612076554762059464381269081891079825489319561737080767701564225697083778341780740661960249065567210460750009348433797259636412800063759051540628571986248238121592641862485650561846644439729659060704389357973145104521164906719838529825835636027678850158936634213794474581444824634634287756720868125334708744779534700823118566231214618458564539414219511032869475721586221005432592629012468431234108435141045015459586776538281965311681547618595311611879996594485991771793269503903064560588312201192988502923814879587906403246999962248278335446527200638288186874808422539640940108148283739940419060216116169239217832300789824455267030968447318945675516264415483196549524703306988595351353061175389351566363474647100083783717744822318251016715954504292844774699559860059576708478807577712000683987299090676955803312170850693412450411845917780478909099849721843111715944250661868970485173857171724819805305959305838799854010973734905683078639137472345550852001615855446734209762138538991438793580828234219407706501291990112983623288268282731875394856126803229091654182187204071345832800165026642771531645313877663301186669164476239284036070045386725359108624541880077264273927179670157636532125453397480000412357112847999387138688506429028365780878957189138460451355426077727953683303074616651549537103451507708771417679295254117838727921464979118914110758484728615649866197856721274574867231632436752312167839923842526026615252827359938592223683018436318300758891199860709981480233526264943322682804573033536686744840083110286647269364159506999676778374171484859936613675919649599319973222256545523690557819550950933962885116282207826162238847314944410854076363881127599631846126638057054259629262370986870978921281985556714466701039558550953687877451069270198848485058905441402974915610625532731028631653673199458639855625975537025309694771706919143052555097273131647464855758695117663711768332760150425863038858399441180188417524133852956550584712469219521613857335609043636551047861714610095429375726278491425991916249558929021394915888645255656460072407710338387485148827645743964595177901719869159330683123230812191964857395692042726539603895968622781074359540596291816450944583160701304941336932523567117553722502248215781119183835592741065551788089047870355523798691744373090648102375921962141535558830875045609193483152097098620648508193726760837513837589511407351492249802401351328127013065804936710145008656208041052029516752734842391466471013097913158177813926225292923089467962739476035033811304066163823015259500217115223203438894665708035060919711011715656802549540626151477109371864888993869733223275294684019220503257343390140328706967590937081709174855065216356998641138989018700755853788850018046600851127737890618928162374067378376373797023213587552600723237217554367351478875269503831941673601009963053781177049179725788560799831419535462875432739424728479452083950009156216369595493301638666411938519165424055354572062353540269200452356362484201977389185385727767734563879789720497208523885508301482090821965518001458426080132982449603607883726341527642135241099150764076377847617465316171851949072994457632459879117330347436094663047826462030100165688287512445689233798276970948742674936370613909086949324393221821443922506919113967345755219594019072758902423242632191223325907381692701088926091621202399170463102861893469646023998971827268992711539681296277970863297169946687852324315672388023983702099716701465068058675333742312760719007351106072082168240309022818984260926624335050338770044802268610263144689466180103055566623790336217260725237304562433158369159180210737055169508737094766918957281236176976104936475157098547253133949634289720236485626707107813787756807825531387936769657422610830667519874819783525857485486275233652819585602144963122560095636679945200301493290521083131776927768025896041489383075205772743409966990173660379983072632866401039729597603226622430523141162676761526866583132811935253073725704054614677254031032267685218166905734902436387229242761131676395051652390337162109040958033844303260347512197329386533158464967053175502986851761990014820100087371286665470454118066283290134053447016677107634772253244663018929276119291932224350586866910847817062766038120714838116453950961566387800977972004826108015096532274345915456269223125969046888117844253139921817835880132460306470969356202111923704406195756490853524494442014288646226538169584607842488604842005150136190457760159637095457124471152908068197760997850688587608674049054268171584025704647950234777943263992568650776786997421983349375424069223203928248694148371352998402777251136335706606159229281351234340411147629287560329099114400367062518699085855549591240632817002885626350159252133307444994008697979952632933815543287850164677808193504550958409775749052174328081320974647920709905735431882332522489731363007485301507927335886489248849702818439525251186287605691314313048133228301767324877048484877482039312617877416488224758167099439948159398213266961019988781468686738764184699757074125909239401159714399721630885495882840738593482976372073517286360023602054439672837826660715023283546911061565256340490516571591889543462406254606731181783516166835504763215821057227675485107034560312571879250732927802496454255504012857599928888693292851174019318173418625884293161938734716991456636956964724037796964139429777593324112784971437727869917765192466125038620834110940896187049042830126301256708623370912984577144212514166677164504185595340260197219434421875793433308314649645778509430017525589261365261128897484492936352359107914254364200373487307236933740659513624559374555495876123551853277766194892810572082827936807298436543848250352578512864320056323330818717001552249314746085036432961170963811024017377838110363520959626784584969166388996828117015219638389192128315008686628027948791285195175908834403985593939237133381303500711156432192304287733876180463711249469489997388563166897359473203899284800196763634161782398150234827185540300559946951286023666151738186426370192591596949459804007146864119209673371363557042488762858748062804215080060646855916771039234170029496782048666179320109542682969107546391907449803516586370928830105224045550152890267841617750085343676258193163580756206495044948628940129138807124663524849200187296147253948592719557645256580139102134849794534832273977963974977978189441612341259514238282365149826776186020876977886775514408931242489074592055672655167955686686617104683930521226820400655676291596397809424490946116694115032028385854092862233973108205740938782792239853075327582970528130508663611164985517308258784242687878714905462913577327477524670997656490378438429205802280156568389921886222594545533705613307536888702192543883208600061183263921512009203265682184960574165542781326401026165570860477223561343311576128592725655764377415444852919079554581799633298310556533346772490270898344622090274872348592833868743256495875275927000071872850266013879508394527283922259243319335660065011597852734111963553810604823632108888039595311971796370512224640386854081448347693582987584390677572395383280750165191388315608355183446983479214183580750573884083150592263129140577235980298789801991655678045251699566160496187064358135887337091891470490118331839249696949364655129156937753579794642814732610467455774012150205652819113892462275392521159695232405373812041882392464550235897943113972723678613296818867446991579250294407417067671643414267695834375113111576262790940596966504827543238016862187981073986095979574702657249879778578552154971536021356564432734642799998703267612326034729823492702760174403586189412190680174349671031646287426600960736558894342188167192295940861131060234722838119526654049397313432078117800710471036183661905052214470021499074865292402200180684468794860505485210918460519772489068006931018662621046331337323915993307013045144768927120968777653910051448973348211794315955739449100529024193373006347261886845158521394797274318045986243551562039837343175454301898447789311716706684939677494053823442205623097255997347345479667296883016314016788981358007596603414999116489103647741496657850177679405396657888546621929561430804435833224645610821185507432624599772555925059070499126621187306202209795721584414784009595325898630140969186328008771136194447093428940578539921541531645527242613743912172195546117137608740004669946142074332119611531952052723228636894206304600855068375221286048691573888276317731209873989256169924248850042563604977376121253931785589091719981767742131410568673595427623204134018480102343552345441361465732520723504712002546207237614918376441188935455474424992512355539856457348411230667076497285385697253004186364383534670206290287294413261193048272245663938522834836920341509543428047367014272809183433304165457092606130471577016462132204227935028896128506494413243846812256718172766037068518626862812803338228428215006848365428624538920199088752786207753003765631268754123065809329259349267648371153676411414072077615071113890188951082458577989766664689959519392927150261228960283937573694798046446973467442203016713449249769301884064727429287853728117590174543905138127428727227989040657397330128520208822455968063055737371631936335861171211921730207952681179398653100178186499758965363834795010685158101024014964366320048141885081600214110661308676877502139433660288647538524731993492303044229487630626488287107297260261172183890364336975067158646775811713233567360057038255118125430867439366379065586721198916848042272472951491763158125493730355661676965892012434376836865536988373381628534488508737570646889591248297860825811886751462733272758061051473955533873117030832912668727335068462987065627683225091327443289083776876089173001587373829823790134128881558164083052638386670853422417478279054073187153458792166352813174347266107490042279227499612565124363191778500820983411114601434291577349766330973910200761097793353512253416756276872765453130413016769582727197439392648901101250516374897514994667638211471762945696842348367032647647265607404448605039219870147527755333007784955826082757018850400202728677679587799029001520058745841101964464019435740334091668718659483020233859524729745851934992947265311114936723790674258662299530074526634175930277873978606409105418974561055700591769083354414484168798978399202597847875943897440437608255657634185848602912155542108663017580156843500210047508496966695586299255903671197748737028365057037521099343570299308345908908570776203117164733373541748105627732579363337533388986298263786402448341786689708786937388326973429837794435035695883888352276081402684097675830032041795037109181872685670467775959045847682485969935743741848757613500789322613895205140746857323277212324330978893981211437880372780637175154435023805052020316448865047306431844342144599216618993997007671727765189593322096636295493307524789662268953059661816592540216834461664093329198895453512817157186399626212757673962686664036073511022285163349285006748342497888309240128303819334489084406827199556179554980662677007322993821494741611833042858819752876966603233047442542221719540698812772886638579793465912404573371993348138888614401784969564742511450897077344439990993560549085429546731040804228079647065153479012928747116450463925691099847197692553612199364315353247206713480977310563776228571572802049581728667961236610707595551059699828558278746796388644580803938628040262347430267575523323406086718849649120736711828180576546069092297934120311219504080495886393250419795482753931470267008210062319883670571130191324476997979461468505793911138240346554693317586509692530386500168365884314162402003847426935855448164558886493393066539827199714144256466077459555059044121736653328360302945637389932533613878531386089051677827993148092455159864041131729258506742639827490696723419170989800292131659272839693462881773940267522276952148859674577123341998251524964536200334584054662422326068260723656139453628650274060396750612353290513507689207721816453305860566794985307697265363444034993176486686751410239211490661149835234179610817627133534332649494115910795712788453452471469530934265408434180388538973187885458333659008749895776619482414155857751571719679553446667991327608295825712488020071975302918616442291868275364774703309024271546944489582879654340307141235175141605623117290782870545388844240631536675550226211209143761348294692335026278742344991872248263689922511729892895343189519290116902433732585627759545787630397512536617701089925286518422492659491724476668209689918380501529439322231695894553659591109030200801768142899828596460173417219203055122398765474773024185239226405747316966760784236723658905797153025439558571998680871170488900108482996917343178239933333646998433368784007240832416126172346243121570261466267752537797237399849008360173906650981940243257019501978825157460845276848006853270921125452843715338146301006225817166908472406890555187809377383579472994024090954740407241124757251736370992264542442871062550940102401941727011672159228618697313288780177224668180085287059407242095143529556467913031516135509766482221761256928373136910494537296335256372169559528835469196042865397208965067923289186542789898652975760875160325899621641740575988546121037572928015922888745364075699878691588462639455370139630966611140582202033155572805250839840000495179623632327106461005076387229923789605870375415078316256068341774653843925407969228603159931760205940038061663697978791861534140970619796405345648416596133923970731375598971515076699559279220882597154554092433289216697081434911144280081895417943418832458769522331631561683092091652948694936676518540599492109525419231753085532822863820048465789806578962326029637269681731274473525113736657929672164008642543250254657135538807457736065091323156053355290789373122151593735599979086947750276730710318335538580184121618702731390226606580997946702416598401735888108182449261790950091894503455550670212736465434192628200069390743005329832684717481576394672317876209590723580751555455559717336898775981648100357682150265044581832070795022484918713616046695812477405975572225602112438718868755520328124251906488198867326164435607349200507956900264556802405706421296715850451106936253414970361034939363664252843834886571295309873837091822746482684895907628948465587391022261293063699585465737293335646825900520046847736777944897541381293549718657295423690816785726772563046814755074177521923480029465169939621617181796098392344561671200016978348393596802657162451299492110339308202244002855739406280675458875214341131014291198362869898394483485335759450912319520218652955366383004588287391911641656269304430688169496158570236959875983941908839201454649359510384469804734099550576411924208436395135158325669388848934489600114410673736921044079347634506611405906296111254720232349813344004058824508980593234713819224268118182521638633918728827413632117787919866869442435726436400101590096050533351485843691007025124058262408604123307231249499393358635421117183336697430547717198668079485753267087127358469128391400014035657928410257530715040702711206180349994734044901108769529565630594324862018201546037743405246041669835414987395390282135270509896995895100131910618549774102359851974851576373520101389805079052972409646333769585024338465323505890818449155078367303768335354153401413743106157332061265068894628949244128487031444577439809529107101569784917012552379974119086998654563461641984243502665879417274167506670025011544367555096677686894467323138602170521916203521195755548436705873725465982471646827856999556572343102644095115759560107790152583835449153180338534366688741621766460871250360312544932814353846907551553977734326024136643450945652913012593222940463680221031298672721582942272350783923201657338835446651816694833346400072127296702153898487897387911716625239049058378922432300372690348532135014496023306047099322540788896146717738488686998081588796694481924508739290658663902213992507173330145254162037111804989209518763769977163592473844271828746456638230496901250846782552259135162199185856964719275197572482285578579993481906342980655231372716088161645178339937191800969617225254197522809894222131845081274984725710412089510558424911297634674449303781318820919705817245865091730250033257108467492858534759425377310399940981448033277747490482499257434489882408985576760619780137053795048102840956994657515319329405707765263073567476475233699447491337804697743589811718951833150153506509034543370746377866104308424979978365900427603045688735197464857166911164595069840417570923227068304825040866455451046440682474162110632957794589890589186151560204586679166237959633556028194603530386766242563779387432457629435705807208870863373984973953362192461381901905813623546171878466504317966114226761916140761528988855017463922045758683435926980703479012829433914975295901834313262887508624444150807129344820461379308442329303683494804752183241381472337376391946733711519778559289866690865474653830102823017098556696031544639227784221334575269130590008181221294614090341933777437623994735356110771952206246801155771874444975013987887264599062456417277063546305957615612725907866470221052453554876073902538335233432046583375128153129578509823960526586372208763347486499082190258695059955755904993054844414268729972012829422675888705571466511159156100153003996961367772776406656994460122540214563712508684746921863397135186347552404793778131864808001327200603510358614574514297473793732066837661734703173054052124414198241566930185470175861495532505197550945925285762361141835144572059529243799181881695965231083806977173454294720584602941059134375224939678212503232589319179753959046399256885903179795163577226848864904093243936512649984653242453362967097624133384504432069316525417183998987366445347121114247418145013733821368501091529929852903348798450406839958532956184784726528816329584133960997451138870389410880213410559276723500049117779609325117449526172423680214903343817446611312722510191106479045495445978818340899214828575263677595401905819310498861703353319764613011798610668643421274863296833433883378633022318083843949051738247840910142244565824039904972304377811688061068209341140629007897766882700759106978637541300939847729128428162061856508266310734777390140777579756370309747180465029879372630325273531527218785383807981070074083752255391868904188835360002336108179600952479639256587644739461239119557221773771604825835088194214215272192888979396824533598986204978200420681662727905604756157387735410203234562007145080570131138889681562116112829105137312586532159133066671754137515013506231267290377846071618731355318572797977912325302034301244714325805666464803236950478310178255603482719851197712425561779971387159407964546576948464178724080457423604312662424497924948013769697886276693772016302194814276930516094354257721732659469728869135994881178437251700109381616353664015724189466364141156884292298542070159812416138198883380502372324806070772785494153456881275942560591711870325726496919072693633057656406530486371555662745502811076651227779050162998105255830293413941720372694620815960146031608186381062508080905122839832824643898747582280078118784690531500716584538598890185655692673298389155150654722493737087266301447681450288581226299269196535445404869114206574182117848698996306150984407793580378684506787773739544260032889876365539324711399163145411717587284277357260325767250479935969087699541501510283962755315695072936639439672550702135504176446934472521947191520407152724865561876303929779475687916174507217748701247608553655579374453655474590995636390927665212130062074496284866446585094862403700460232929893343471342592945473984656710085141457960084457756931026447134202678135521438229004999193972271662176117422579276189718030076987577837756951797515690173870504196128470991454468261738494190970091813631094129653963251241069477075194861214175679541110092038302059922487162899521357273700181789956501381600021285333022471183960715580542849375681842120707353462116870005908382532124401041455056371105818596821512927901070079730701523217668824484949144543757131912268670135870933617352346782612150583355549704149692563136923397345771432714711882969985645983965627689412543477678420746425290151304025509335873037427707412589163577877581323706215571255977725995296892163946906639416741075877512782587259027783247528623746043031037787480157974407101964291484554268896576554150133392149010091846973098420426057376642346648884273238650338882105697593970963194929884361675841689499507590038041323251533851181385778911869727781821261313616091255648149538438214493827200851052087618504992630720019266941942465101767664794755325943178069177556312022911406919276657467326792600599811981132153139357734447433961705429658683372582914371641825852791300018747112687120029374677755210711541230802319823137663907297883824052273051363430132158042507913054797258049206565015253225091344738157412731123480137817683828931416439128610407706327578617428613210344598868837261293807193986150477167480421176787384410661566194449562950930328882745496249168781806295926720236850967975319708238802811397582429831845508001277659068370166715579927575893182359104411484216959489730934513848756952109261797222172764180469471127130370848635970815936704062546861575178778932700082622640305394323489584947325069084385230006729671523843091112226192040675306691884740177093451416913762477774350310723264678911737251171563895628483139345755986993879007434324633123330584339040343818648365215497396105018134388722584309598093159348712059080642793922704220189457754707833596636623893754599950453074522611868033966762932950795463317191511654877760570023148260511784842652293755553446707180561398576166728448181561375831296134740905983484189791042038038172573031263570185049220023410353501039492608043303267896239757606170713651498982902716617747755727338173118669870197531360060731059690226933691540705435727266628066872388639225123011782540296786657606929057943458188107595608342335807214002300430742854660303617830982521740543470801302448818272233877249682495306037732552089662802545333318982224349835363759842580778970237998382877275071505688269105241435838297005099245098305938446118843989950448132292638115901578675163971335893763551910998749835365949528005030393751294974138838943317876856112487687015416650055349425379113162150273536460651483779607060836730238968649906409566245042200805950885383694612552679700208273857663851040381894679293968502835083235095057685344119566887986689007832042102805785592458620147427638340009518641840018430560363996044848953149240800972177541789138707106604428165930445673665931369004267384269943954430922049818807577814518042342148680231124813299615262763368988297163934222172259983228638104780611895653522967176598231658260960842759131404408720580994350377180702786074962662984916013424514285544286024426558800970463352695768851575177215779796352037433014586679497499918511419207982577282319922125142534993340373391955368309889247921143029713332752605544984141925894551659900173330442657666055695794208193012473622497471522178829441048546743377426500861591946337770062507508820149052584022977491742465731051358190529227162630787545646477922606036447722116581030874968429710886477987294889439161842729465931159126057848030948807327593755812024877878171678949794916493719821568395630812184676884254807756017211717443672367879389353095724423126894608015851874308846975364625068754696034107889883864461806837960056145153501028323167004431106285169983568960975088601946747251201718106728441261160609760489755753209952555640259267591836444935725994052644269695194031471995032796057181185504073581191302018913712209412020924788771503894808489352590800080417164133177090402519978900709745868038476964547969897167665970025133466200404551083653113341492890636472948353816674906214007724403138064134937660801941179421403400599916085018805699782039937167761536595985035283480009633901344816842545860549531887853262505653282313449351752113928758380286052045176715086214922053533100305259239964974782542382315392637920895940441931015749338170755295916850220786837009923457728426741126602000427122786579406172923179891793494103302906382544538756310276350145085203174294339519901438957604802085323775160502524585361878100817902844683137271006376245358672665675750746237243063546802316942621587900695767147728625593134149946942370270931982778270720440045238860017722886146328371154100549723682710642437350926550304456407578040785678926351036933276356075063700971421364025550755789742905332963591064282946564639607280503614717481595637912398144609182037973002873851651798184030718165344132609230811545022557875216841990695013042242631841134854621723411526620337428661532763555524790121099780185836248109678460555716198653695162730000067820503977831309844151258688378217222159807838649101812453627537242394335706527477722893085127463917223495759850685627585438966508372514104149866059177334942874748948503038687030319773594768809333903433617796137372900713097735501086706465044027355395781775912840622682820208536645296891988385419773222246535509711043070735801958555461741577910953462639312820608026519617313161002325766885903373249249647321182417918663871005880041316883142819512681873216949731616734079922393175082930792424150439893329460904030152338441723125958897751019186167674973446445787201805664998532915925805178908032463618194953233821577024495030956025476730766466732130797452641952651103782783980640879491481479588101870428750479435451320668386906400783514714001881053196457528235844967823684577605740168134094157064794861558578409874287614835544463112991484634428970909996761609597680356181205184152146524072568630649223776484522473726088096119031599712636881336918090620826471635791854440866978076213404035871967292268607717830872293165864773682524611662853811128189794905939284821649236057035178632087282778369010945326982381817255021561361918676047244522090253708609857886543898883773877950173972513691427340866206029124311192420910332982915114328876282933450919480289095400994008370824829497169489403174629067300031427676439013094844973200420115066074691992413561188805619450541459586067398287472370455994171497773100526191594586952701334968099839942652944658277109141029025315328777517882009913257396470845206207508631443810549065656299134924633054672930723305423623303486110166944459881764557725016953281773340103826619744487784324328627313190709397005740451385431069588437014747505731047300705074922407457230648561517510978831282862449509882776980731608973194971887211503556983301206102940346615070839794685397585070790430278165391618269280548528470416437083468330445761970819666630005364426066549320718911830122231098554438321100759845960735124879910436601433813419000154233287377241854118469119805741250132396431841272386080706263347204253574769306504178538702627594897603668389296575334633233438209806996492330264535114138017180015524216985499224443181322671880657869228770147932702797054728608264345313945713994141320154771101681265898281861390603473657997784017059824933871053952112864667746432115125898814887918045378416988384354771979873640842511967780102571730997480225647912164928435081238806332189579921112731047981395135774149660495443593379387153459760417875401010434961685487374100731732277864961841903074445119082569212178775053844027091334711591337457295885132847007584678728985169847098455586196693631644913923011376338310893387644189092059467778045999777158902765464558395789842212644423055049395526379566557473521231922960005270380495879087664217495676813267155131931596463458736461679526631424383998640951851634822733776761622420351318395495328809546225365319365556909783318136130477964766791058015957272339647566632302087183080055858885974045209988021803649125430764069221001748859511703789515608671530128234489484855509269101332183725039395826268610184587198350348228317741581434105831506115238516265624457602453039573137765104526779874738076450844607688579160599911000487959106052221921768172673361147964833379114784777068311148752428041264338336776061382729581568418668126302792554466773133154803807553221891316185042220157999154042951891306883953344374686924619546046963128061438930736787332701218812973146535386003512583656158849346760885565535932008528446290102323002327240096672790113919421602020582856370438239061966968173889937534715558282011446100857808734993580708473059931944609201239295124947225773741645248553455783855424248867493224035631646043263256349542560893418286028133846327909211462486582991043081405539204525170318402017692982185713485838624951252569447713152474703924371994874072687614401212617294393915401265590128969717835506930730001240901326082729842110582762792991036106022139167891333621154066896115017336305248751881949080376955559154960192714047418005514366654939615917291477110909393744982383564148065636622441695323535071252097953152931438447077520350249219496499407127226867175628353214751568861228525598926187300144461043118632244866906098775114363546402134585143423859973502658484898965264964842928297505882813473760879784249880487042953152382750262782987086401248587703647124444894759892943029682510467093718804223212248136492031020167032938084650099330199285751805846863824561816946315425417495463108371327821723060457587471282736623971606991323849808494171733564306702271885476382255595945918705402544402493957364179128166498961976539026873060049534907386693893096014870500981717195357641556491538262457995656467507654520105340314582623093779288362871945790869051551699210097677718326182393943412846956611071189490260985992773929485345735478193068722072768258204931547845673523121329527923260174400075955341918522634259247402857227007617699529337736754029102578958797691993808789218034868441880661092651898872763112782902988851524801043970153985161003894003522549644184424132204021920960073124168373022065314990474413891502703826640923288186743678244829498362362252366798595146090842458932826295423382225956070710644093135131100928287305300534214343165772450676609803155854062427053922366377911744574223772813038167001571374073380803310354947392227102222530031685941951343813486129674248073316304062558183081422457501866537043115525294517683071981599051929512508752214223927318840534553166329863997910064266470079265347906514683416478874427244816735774253587525479248603441228162557079456257989986521597748337336192624154054571267868251651142290085563159304051328934679370755047828910840927866849391194522826235554200922122340564031178560733077849785424495616715088086945971408407541389231185876474293782393423383956970195396212450534357085260800362412931904909576245787166503116489353750848844024930060276057839837445915403374259159938990529608649584261020803139193197803336115682000192099837904659386601693661694237598587749664621878187364886141644310504763993726809180544988691289234502403622717094020520710794075479362553452403929875366971306569590201828539543597316457644032384513456655215020204492221607073249755508772952242267263914090021792709150108628465088117028369505235127813661957423013551238934454532596555088673606600339653369299693244684790623275394524539111031047787043204523467877505234795818662386770569078308563463759512506107878512672883129005383358314983481223884236356150334802513404035696157773828894591769243722399587749156317931439933352082673059534187975628940574319957818963752955225592599737569739842098040033542480013175956048292294852302517808600158944892214903695777355152041579239303891917778989804568007529606865896905637964461892519404063750932618602766854781253307599668614717911283216502065099755202657447559967717188210044573644379695994650753048427302633400398728898049009702520246804105747166119094905120979907699985631759555897523751073438960901656194653196343955126931775257282350566229428082249101730181682185333510790441338986419056193036568909541793487103139961535530751553274366008631199500915866330222983755617210812383925960140606469081910830721279209902125442584801916958424018127847387387886650134337788206330734627887363760773211108281279701402789731852079798565049094489075982500881011206386938808519970614995163898794370110626433403518734553876833443565149501157413425858005860850086020013549848027879869412911929810804692947242822074291459142985941106893138227948829163836636628498695042935965147115689354663943797628141595352946613371081944723468167578662392706889071622539027478868330410866876247976647772753193056100583587438322701247741703872162081166606017630427609767320529761323935842781220465115420227954177452285421300523283042847637269036906020775846424581852740800674866606482162873371814281412135786968888543807323170235697336189583949717439623962564418999098421664348362457955297926612198661548476471955015026906333692605435702258477579038392396883764094498297018716051923098363222666479841818931622542053493952719172285197537134100571310257664737090290959051968453506598880307484401169636298541022028421162143788481736535326257339370118239846410017124108428287879411252711868795113094937775986016504506348958323412893912191258888076921852796086834444881933542313871257968729348281721854111112423479923345241823600922288765107599283461225458238160637983348591318389849570757993911212873015783589562598658469495077506787478842137440564541862132435999504913987203314118669660090270278624456845902281035035100733235610990291096049626455213570594344378636052145290654903821230418000095346567178885521377468689714889612461608765822929444279287587385248421260024940711509245510642365249232418433827030153210591404554317577167854747626326220662898439594303986399020332440936504364720389873735508716392067919515724112743657024906371624229241157011777090786285211586992497158639154275891241712679102654359991322553997865984161209254325993551874954926899539617861163729913753160790915442409579689718437472044254815446581141511216315345019470203655685164221308773426891487525943822613481663777329548558634136592230332179818787958086955074111299802235720808790464096867003951501962070879865180194127781606340825193463497267956603100282912826184430116644689526383487306440093066895945657081613974880799405447834384071260443103470902048336740049885389314269155220062628278723822511367815055885894132978409985239862187485068402587645156412230619058412078336741920049674007850263589988925576990493332718424501310918145815860037154455592051647346773969865808631290466467485816566355371542484209792019643130200772593882027068911087480678331862675092578894943789564689430156655349353088547285946957932830803361166029768248325788520590972292546291548399055661269253195057295341143935214199099900541813754042050880633121054015155536958581515517451367164250577388506076774556106632948805912947431467261444032756455422022156308633997540706129626885003730412948703798104020500410222094130997907518851263208865410730570325016164805947765639759019954618765128059668881809758794701180863943348906888042705058997607658131122620865716795327155567312186637594393808279422322600875047326313578696203289955688778579182651629640296584345040482231566336327533474606133387015075710893970836645667682280443039150076709597748946317395052240449239572646242803404182454252623808653083901702003110166275936124612920868367583807872013292444863594175851479064386132407482022005041926333765862971632181778516346740591398018353231956467734752907272723194358676736114961277285388486631930515153055741811496990578739363415045650484439179075033439319887444940420952148141145586891493358214129895719936997088019142920001339553409337584961211680486537797812841666409892096680849574349016462554502425084559391143241057782516076238243813071638796477390433476810364685801100368474132590324479545377451684700430894679589940538587748688960745420554736276081409368043591892077820722624119802277835147311785638983092019230770622446617153934081652160587991376887834487225436574545492103613076224540608758304157644916500583302670879285080844638064655941558395204918833246264073977973310360163274589253567561223502354883675839254755580476438169060511268164031186035933041253598462673708417832414026783953171395049554148708768889959956924713853023732257223914068746066878703757851219949312194296941082243480964623348566075664270557710826634990324000802171986061952272076689798768304320894749088332692548350635434220833740934177713382583864494653716824617385241018564812267890605079741755455500798798044089187864943803365151595213849903608964412339343650711861216975843195149970337052489790048875952041681901688316378077846423559729158105686141621200765904417937032624015110089639245453627943107287345625399816803632194248987481386589407924788514906952900976557166966006599603790940884810078926363621021053613255348244548269693094845878747586425140930332291423266374124574072769371654429593776322018267342741272999645335750426104361062776965831380376696845202542369259389187057232167762062410582349458239961114573449880314796461302844238101587145366898719528482042814935255592351514748599582726261928683829858069846892276421615017711926372869439467290695281120128675802337627794879322850230716489578124229417073253013388022543933603790797042450450513526456791474107952911615241025085113064560873775538943762030720417400999544402819600724749527212587101967664048316531624880611632373347345447019199953494541916983368009474426356652621399133953340311535845637852755889490965412986698469616336069700814740172614486058364889572432560547656913807820286915806509657991928145514542017610294269644088162732163229122561393110218022251850536676590234187829398308330918597237061926113427190136998752850396258551026930546059696190024174134876579727375151749252628587030844216602657692132494609958301775058324606488875930775426125030069241208946214166861236203296256343568823446074989057692411326549903301063750452774114893175515583409283618509023068473729302414316984201939248841761579482138314679319556276389103954372376870606178815549251455651977021954993143668152496727364926341222110465345536480678462314118203308952200013921024820305776665781230504652673625346464695858416709027481002612179201337701735058116985399826960843014060664393019174618303233745795244432052938593345767516169810455184030722482161146549914323459205907061583798955852095719636993329400408697358583874663509148918010535894137117566177261658474328515945270987467602405291421161864912883921905209247785664298314872004312881346528026213417223809163323385115082038094462831051376790433387647851327888301560483735144711451432830730258253294845828052525572965005469044831132036114003922708461463178342960594976252390314012267060217477458618519583388412345398286265927060060757927945123314130212283837344297406190654822128440886796000085665161329120379648284975293041430059759703126526326430405307706511402461762888030884543654051587029196672154863975996555926687859962496533800703400869241722612348329920563205554759417927141956735438448964255456947668663461472579804799560031036045118871165936087029615606643541979350275229335696652955564884251296484099970712852985368737056938176220693303519072923720248627230887104556419484657460854017679118101188575976024607048695776041983690523348983324171958529546608555815514091432365788662778666886622013321664873781123007784707635782873574245885114335827975107669449235509093433711083950772966645463491669533502192263471015298812848175787391806257972337792417192280126331115928013299374761378113027996116646065598266638332840672842281574386099267835197888166671087167174442518470367413976991579630644198626762840417459947068700959347633895981111122866581583190984581072231397942548140706720277739606749257867371262777178044363807369912105012402321478434656984940641636204751844007787549865945373131344609230584382386710717439043074985801973145062397740123330186279592502024623165084133486648630693261690311070136318375003596059407086346626490953297915887163175681823890414261459396533349067241011453243673179649024745098366248646374849656457687744803720441197649980738402110442383885785739834025101452172577794537236795810628675323317278714655313014380028475077284991811608553229223075968273882257280794447143401537693524193811124945902185130565442501243690913073846317420516951149628248729580777074010080685518151116671556712745602512429955606575507492045182372382180543734365553356098131120689603333917673457199618666165364597819040886595065261648775058326082925212699918987428891879685809963079911365377694298735299726471304490095432424702995155002929815043048958418803279180266199081840246723530804380567359179060830547316333812281496894552178960628128978638824481281959484604891717944976181997747118174836418444206990180921360752903433068095542292662569841316524988530112477734012138265904349356828540603426480582099254076295194602583201967358515656304832282788954249878647692065283735551315022395146531038878796915651779224363727348401034710058574744344919141968846221136309775158910931052977305290590194818743890756332492653884231572801491727198714531179310218410307421738435812307763244639857605600224638085964832134800821979681516244996705090147877946275909465276063319708259345223087892695105714865606965535364117628182222597185280594091961329679337642650036112727765623368291672003325924313382184041898238005666944468433681453536595419232142503349095300513050487474564102704929015924532561567552681166183713129835743067831357250023778123992181150105690158731095603023092233156112091957055528805614526359727002152705806885870358301030982152389574428334487734355538074476450051087394580477855046125526611902301690734642095909827094704649650456539431593707582199501719938897967261623432197091215185362867358736616117147498100649132590144790104139492544972702606532215282736954324415054626380775160852201901450752878901547041206074678799836967092226432525837612493914838779336614758543839965945286996249468606417816599765390261697691658228592970982643107686742822702288930527191990199411452172810536808502885467199381384219106018115630589402144229757651401390276101617303263155176917524352616328526047425072556682115470016064580477874859112858310404291323364676271611386607810328365958197482577702115592548311861860985634341332790579898377853104480203056141788158094758027002710518808111883061172431636288709797877995753925402019908213468403069888034780350413891277753834184579069424418354053184280320822075453535390198748334366497044787752484262209438971689756204771625295739997703969563451823126680509244495612667490992640951270326567299172115601658257866361390760609323790281166436680417660556847421032947616963939829045476847331272263919898027631978036742421794547725852723730249527497697948325876140611642159640272504800799056750198838211563975919917733659646581040011245601887308075283574274641356864298926151075427851107346781607164349196264215360163137390552400631424015880769411413222898254226128096920026749851880598799876841944751655717044646833845455554816293508478295971898895881653746449438854361280193160849252001145025461994306895127155657208710266931090292977510949449224721884458269176317908548549528804109094028079642431017971354420768559436446369943765522411066859682875031122091432828957458614762779782383408219017210403839561591586065398203335273751899457240916653480775047860985958936533158497727643130499351261914877963388576071644303806644237596333287941495974459901554573144373565020978619304300858186595803746848907292846834999989239552267406284054155973032113641905750954018540510275310331445099608035416495650826531075851894409780577169772291427907407896226515323500294187951554216433674556032880722003617695873913255426681866567619238059153156728304732233604578049036171239177389621505289092700599761369922035562999974052697822819046593783708555786073035129283320005993928610926804936692831409357998920638467876446149975368628037474909198800831511873708169738590536032986069938034938622748735422005205959702762824634553333426371831335921336062544127390977237313825385088005040376097937713399653490264576745312858922691376580066675791838704397775552256129416650978410336384877354351601825285398035004120643107597882332123119694815982041761179352200360317048091822497496466126250946272682011611570186730136333589319285388841570039855696356418137426240305589850861438112169657019825586904452273320146625508788891732018248892341085807803963362209521345745408687598845309759074458818306886881858590361000578835058828272639513413515332489785827842143026830522761648166087587833507135195325273721707290075281754509859777185543470574921959352526142289084054869452703622550192377764629540969630243326999495992328584176618071318091417453633543889484258120493525845746885174999984042257358973353231463875944926161231705009628264793724939356855769844946350920040626613282325909312954724642049452165844303067042205250236687344170973002196307663159591780101820389352872471992953685579015304003325078787548780005206368522379094717088517153430448830384122228799222081354865743209780537831616848392959572094927312771888327095200554668562345772040712051365289797812680597191817751371817000056032964512711028520346798665549117048871324476403676998192223060763686416265617898630244812264717732706201127733361370174193263359038633214960752465485868191869329646785144663910574411358708599089072085605991944051664965774579108696041681893627767579097472100713453800431651853217535468855811810018150643415298930903736845076170923727726606485214887773657202678321772049202277064349523923843572234994781022507698184568539314666283178248416242159070162034549224974904274617832378552737943822784408922683910351299557215372822605239290074730420114100489772570550244227645982997194347507521002639079085775980749200487760692331222494028945312601445803485427159607958114956825279932698916056205344617400773784370441624819381986825347549821136356064907626579786644481504717155046142834443729714401768742142746823827340221324445903671172346528382543172102127102056821587553643520372635256284977695848957350501105118319887534886262872660811324460544159487668777790516089948896851671738168624119620668009767328528970750538249233750479636465180358673556718532138739434419096885312865626615681527974421126364771034620247830320111766332472135194232880066592654230028565263119196754181020090508061758760978009627172791316074222144395463253277973233698902180997586954564549474002596017074708163641213488849436207304290835364032919275430763201977397649259442348969436429863791966208757506937237261677984557511945116418350002406408581303709260162133902461907412972240255283860154556706724814772490404275103790397302421420493152556469232614069384395222126585344244820493229346364407895075664959217947729714847988749313822466665317468778490846857720218143249970303575740928003674525579996900689518853641537597619614662214092164943765796847394831629648263472029967084074043433327682084285261940304733170133251469294162962732500307487543037637887771995568750993000865981511765570395120859023542802577246852683988903377403302951853154836890407274141357452200335293164307405350586603354546263755334407759686338041878528903720878978002639359730353096626396074036357788424324832942939270210879880498485112037862958566023411831492508698198648849187586682978213411614559497729381812829635841574400759483573015216594495469185886967445663408085468611957624108473392289585618400617810272128610662907393998016121898327219084199051105155869134438391383212801568661964050160469906522479106839661173172658008859736247816269411647375975623632668693697525644148208179850101910179910031532959472076197389656273927154888048825081941946231184826285653869747259381102274880316187226466741785382566737940583548083679497991619517801379462177188583111146870607757852791156958040337791608002660328631093512087867430525464199604288101450476520951992068503771840285134239804279545924743766042129114769176881166018032284257643668807615431585904777323127287917112343435734707271197338020445301318115918394637129751814523914958638119173027716878351219190727021674845658908465630580916737577102052965626355159107471107496204497814259356375190945361435531996529012881054526004451299529386848760102243101680046937066206099215504074232644368476175998115390474440791918626598507745212226334296001020463976532311022586048398281969829713770111046565804980866311109652253710215525756639853227790073078177549025944894789787771822374603661927217531037866990850334581068325377629485329095042561501532696763667580758867528337901488781606252566264969194089067235699220431441496484173268362361431897698593459157424069058522904877406140954023014194865973064465664909984654926967906753349113536609431866850784078146256002198535393656859267707266884675470569591210933922535961254483737229909695191293086335598897370625581026128607678508975216306471179180123411299812926195401547676575082036304612756971639972999174126278809424586222006401389739603062143010326309623693906021673385777599414450144390973699739274273362192483072072179243413231532300946074575089112514642871103624902560634634215973845945674816592469770301114415443807268041286211129635924780486126975345803715941946594682478813764095496706785509182154945402996435297422696175124772843835180968840892364400918517229941223991393210736994185829318489923241114722618920930886155878189300020419986542663015981216950556884630250022523489886025098470227796519357653292397853125647655649663016434030423038428610625747774768525716395433171932281915549574471309175617063332955396546448653637184315607988676772278197163592640371339872963572829724030159566678845691580662941416432453575056311727493562400659049028658675005963050449631775253328431341538155951801892033061690697948468602242161870761657973983418821037528009596246319586585992177698087043124270694227993393902323059825312976561462692582724913707186552929902704733388417730020331856621227782938028129774548240834928751603853346665271094989619004038341470661861934362876508304700018697279210108776247435543258591143989574563615646942261040384944221384511950834641591393517318511327157210188177024028390074763958954692172482722478345258645162837813174951071820331949675393000200356429418218270057515549115537681904267991730972308233980823027695062751273333181269710681648523590957237073482508522888094657522378099480795239262522427215821439122093158979742263940752519665146933406909301376585747236964746422005394590176547534512421157801443586573298775456431824373210885866428746408224400869169702151374436254057261410464452175750151422137583776768861825135058330998882173349481467844684069539686793813989062441330068665027771981528557390664743263056982888356948176473749971985326659906212476129193753213048942803705642854078995270072720127755473399790289865821282444006876906699967868306432313153235268233899812321002016949353991055293390492668541090976161683828850547775142329905985296337140480609415400806364102374672145749497891195257671143009228066839953054303105101956214822781090501533907640393599055922837747643175311365122142615318798675874750446339878916650842874181974508531166346223071592216054231452952493761003282539769024607218775261743837608984428690417206907203019513222594658614437599110028391486905882405277139293069172459041114344058223046505655467068792206498999297280603884727911182809412542495512617723259050339994928183133627198068799681029015867321296269698757411727012256462441000424146299911550371909577003029779522512105562834815581981902290873550571875234610823351957961333337278273388083122536591391721693191995919707781467881206244750052638982640449964198051628031239821538688988680966442734762280837032574729202291917494150774057050577267706136493778100854666558508156573031573403362861870644162853080870472616060544415927063900002193285540673291369172717387337596916305178702277831597626896897894465599448385546172811865842387763340163270404913475746638880931996264207275215751392713927196466145756539881456910693988635219022318494676595006111111792022326250671692664537649401619056646033397366792289472226659202845907581428124709887563882722146775287989646473938231670858504758865770593686034195882686148021131107757838151216048398117256507581180696008271627327486057222790089755634835766501950214745030380549461368912192041308778696589878653226415969309115114137671480526740360609899375002318419225651956750447470213020614016985225288439095213465011214292224947478709551788672056519973825781490332390972471292630774161654445365735326835412640935626298289597850151391929575213487905544433503709151010781712824108765366784710168032135001928288303227916721052237255779565217899925709132240588885735662011172655001416245212100240825433946394657712222388956273448688984654332123465235193698031185811523193225706384594974416914522555311272503505919047719504156365251012886723900572259831153217438134988829020403210642111962855800762322050228338395790188583420219978019432817376104974721075422660000520100871663761130487439260180081846306264445088004345380958974820916033819905391524264467213560852793388034969925962613365179149086742442972023785133862849417083136001923222578507137538421679582151327443226320693062668125321165773049938216006016952326472162139452239518644042657570691513177019077182930692843448338460802601990677560218127512602701839561278643192289723016586554200456244017134681412374428803574128108855017452242502915845729429892361833853769249720797551923790901318954491277170427207815186203394175544104087916358694530113189559423261653419217429924547259465718858058388605949625200799594504408573592132741462638390757907545002818070085383776925072978919344650435663350189160895119594251190590244791400099825420752498815344647461206319159666476514709157342947333982334066588980577380309334880073246946103029797511613282901237736002651061188751603233376706964138365413928012590014450703323384978962804485800584808873874884227682336656653598904516718039406426557336838099477098344190308800760983440885116831911761797809799750869118217457545909115002448168483954979043812181658169111694182712564494108066579071454108079779834948672830568726817942145670868118636758861195483713959502873103811076009575628024678591237371590972179146867744183468604383236780119991390855932949789211586486203060133588776087557838533330456938970603305659864847295814628891448052438164786047060916149167282698294450382611487344095059514381834545590913297563941021819571166527496391931511528294332500464819071600544408750223426861654477581634816017263317483649419607058832113031434228941586917357573094059152994829819758313833096943956400294131694996529651379762774705255232869339013568433581970408087065193048349045884494342116053285848840031749987168742216504483488940885575940711921518324465755107783286194894646863975300550956037583114979917865279203786085033979413899397199345260626490797754474130014121571878294752077862791843052861652786181733357900008702949081368897113188619925741408955240654378886253813775834914625052553299056603842213837405068495089654580284707662083134849733851110361448520575708728852897800085328230097967842091128587344614867969759551771087719747128551513012125503274916148028575525812603757385165380867971567915100979824930727980337847133298099931786885122752428314070665497970273362201588905694487372608910217896809397649677995740389630242794384674876969345788800501684323956763709946593027025399013219732332857967617322135304201217966505855446393838467703621816221386395054494702245769652055268757498145963115065380787703916728082005780091340595309480609003252831182502831431123704090254263622639802102149198380195895149250462129815287511570747516626496146465715385802372245753863577075599675055695562915326191533194029241702280185891943295459783677594134513160175977884075999623784326285571714306753562991099656920150295657554388937455520128066085018354332066788883584280005234906193123444225730359435239990028466191807175094607702116082935446560060192336681600331863392003407064405637193413771192070653178810242881336702672116567165021129066311979224290559229128645922142446539362647895169437292271469965189488248920413874019238983918658073235697475044859683849873437480592740092816014407092242884274939121510255273258045394711010190967993105815582456241935617497704840941384426843640514056453556152244866423537429549953481556612011281410670772985767318947616915971799276204524541235281902773066437262713084756259685284963157282874837656272730718829829104954064589161630922481634393490196035581378473638526777242506876572344191861531709074015458480301654401213333926168393614593043610594621143300013150185020146787918550911621889437373829845092439551939200948487155670373395539453992821366646057440365975820611168666470841489180412017268346528830645293213357938677369346983261379653477662346152017802318903815782016495881744581464627295822468940805046792020516529972382001611838315349047327147566628097118283335973130136841515552869515099921217851729533057988484147124115784563856331931019393992854690697877537607710808241448602447346925034108880082207430474159391252390727375105552024175613169254813575247382536514982242599253774583468664246211372983521434942982302172387045802159287753322367839477586465090220396569658240513684229644674933743425026739543043894431199157050281836794361828058325440103311730109976617962619144940038443853036198182513387001389257027850267886407645044162576155757519314469880102550561279486658937603301161019166942557204221394885812005128303417075565178607406792891141366360571027849864387674658022834259110685307828375787149038977811862477062782341384360955009328002693825601002833012100527296927630945853452266286718500971313321237873493896445824494687141310250540188176541288802337755123155617047545834133579448602111049819329460710246346263069691913610959112426982901490027990960863680938510403584302737066482476422668671315250986767306287601301145686042622175249972798263303052018912772995528522563800855331790925508114471535468769811299351739036310278565757708375851955554909265510269896238183602992739452456263172560438396436739775031529029520749500636989942697146131908845963458076234212193526763051128037886029294470523628216010423867396399518715518210233132457884095225569511372641654970005404577083218411306935188789565466241259193898795261823040648291940216650920725895000026845892604707939699619054523998718450176155796404590632988585779618162277221197138032144167057551282869684584574671363366851917255273008520162403726749729868972810941189792612301268662941892905174312039995265875357564256138448952757824208389850088625992220985406443680447287865031410407286139772687509868529124560870851472040846894918047242541113979832222354530273965671533877498863163348421318538545523719840816582229727397498160296521606140385402573041967538061438137248484433624360163635267309934437291049700486290387677100535350592542824747575981851937800410199682904466276122613182982596972393679379494870661053544594428351595645359189833121226608636963892714228851857900265199339818189395756735188159379767461910484308460675705903751967126219922210092529827697053525537832298473991584077254333891664652203759435886297738952116611359544974076714833854435190932441057706812208434316633527474745999478115673139672675926395944370880798548430571071137259475201053927960319617766016236951076237968989279960333466187500967348647556637351301169815839746651966399624382134385337762687925591304903745710130978777920812114608588156108546041695282588872896450479001317389602536109788083020857387528144386182201385915326651004645352178660227084772804834332170153889687667563892291214894984809172859413232005787052989228455018868066423882830456668310377638833543874108341433229559673669814436816411060461568399050281068448205704684660156492302750595220756299554759523487080112899950846685891424699355379366851433022537108126637865287920422969477840704431290061830838742833564601250115588512220115303301224776735476892705031014552055408493924971756390822624398062552249850064819818772953306582904494798916998504025938352395184480121207351200639363647819932210046591918120561411717903507298994234135630150451627453452577919704205235614242770961553576428306040486369241850525962842510692407423623129947086183278412051348979616771105252998928485135474906762047742783341137616963314036191499981474945382132128782909059205709988474640068775918734430201795846358967351743416497538166412977790278059660260576540891530645211934734512679346860555985533100364712258470663361261738130299108473487315380825843646156005963214689424766605535764512327830623006132133366866210803085055137850227225212730128544255291841518953505034637817893860161841151252471730139481658283290822432959910250659957819739993151104655271695791261758967182390984371189817545713188416873978997798605430127828900042951975925704105578603602026757963721701671583382701332488405801013937047309013272555208576675051221368423704943343961465513193593128704494066296612338291904357267250994020877708898799207717664058010568263669752631718757953378093746717525294340635686570491893931125716748921543282736422514558084279272047342247621797865626298491522619392734665344119008460242183636952688755936253361602462060058484132842558218399075504455761038025576530796886685583340443618500816132183621822897371721142235632820348557467681414722815005453938979779800881875270214394177555607796842319696489255253816265913326351943081952638781799936256762150653907558333220032128028400821332955400604516574503720842879910512968165354137232372995588720302431778950058924421565810243046824153272956039405264093134398462017345428962937883105187848563331652245748807957919611180571775655296486349919372170745988197120228480851999721298611716792348862868315853783828875810452199885620473818538548262472663094507625725867991819726145219930130239976527103535753597410718198564784992905295009272823788783561987414084454051563848577278400679386288246078803247512965828793117801431246214624135797936721132307834908633068265716599658027231811134877186850858673711015015056394452948609208257326468197733863136093154147032182141842102041929122046175076896541530257667565518594455813792435416892084200826806001721238786369881837696581118512994097057359641458008062682457238224022611620618910871957916776498017449678063496596078456348536797093984585548341295454923483936182086915132052698802582672797370055123555086163019369033923534389859622011479891202235581289364696641783764561109784587641529197159413532340107678956729784067564842623677747974624905780995895850442767637273422384164650528908066434540902971590501047947505385530820445678421846910880174420969604912418561204105010936856583384355605203236263388997417422037960797865400164688452823816231111659676622383185622076707507827854996600018106580832650873413696110153932553259732429414953980284048172244412881586446657704567060335592520699542756908049102311773647712455621562316997010450007557834832308921320258616003463040245902911178491828971893267385112869885590526636665659317501055620800849329267371180804458865926562042017372062856868076641301969025707887575748451833632436429976999528678808415375117319370236520874534630767625335623406529612633383632893162268406227185657476473421345770018179005721568677362469164449753895515611782808649603240763988061646810032627461747967862804432156475554933980938785589415681121251606004400025432237532143212169267957386590489172352092182985503935759219403937513292206911657733278030838037567525162895162789671506426691974517462993591425679895162826384196261196604478844870089496085553721983276673269604327849483416095136131183028062451428313777299594610655433246605036630381109371228378354543554302409306392684166576642267044377180285040855811480870986278967451158883974949167309476804022319941140093636759313819281771203187254061110293711511026493779400085891520144644188528531331661330423515986480937736984664023963454640842409569030477557112939425606118911182253306199445099225907023533812707059586544082388169488354730397139036943783127042389804595746476776879836973501448674966815862116236029274130558259587924610612065976379429973875581077752657444163002927426695208586862181129579461352777804999122786616587797756992109378526143154096934729604927676719402605928636581237413997302809649903304049172508343032940095986543104564245858705002728950183212702967589471863981061890940932812206994630194331282706522778040414200347141076857253286996969967225610337952577643383458260146313447758553178595120954690828243847118088416601104081829538550910782141669105354879081499902530051947786341150673759183067636187011198711245902659361555915913180898412392175372214096672386603251463008185949360394542685049725155356467752955532453524200543025882499937657093361578621268972977817068808844238205619682166497781443014307642185023592136623545698115537050546948120547970582556988299959891164491610826337144207074012998575299668282087312404628721080399113762388342529715171102904964256409234500704172209909811965081779606878782082480333629493703679003051627865541090014069158647713226225294665386035416713694393217678425677313498554109506041025797422766055821804357448270387750217781222063244936196303459229412996333295046535699566210331635273206717677740450669592023043436145116283510577088592326680879677583518354191570738189274334242900306732872781143965733184529503534875744942748502593638541256739023184351376499322937383822409664222444710677184778590345612690710788331538579720269210069964954501804923873611725103057051449840121228404011309479208285049276345171112070699290035881808672265289983140545743640268963889393852008567400062146571501824032544090950678199693186654688073407061606604381206560137697233979118330211687965289458862361781822964055431031183424906350743060334643724714702917954478967606007550836441840266556643706140870098931043518869654232876009625400702596800616810661005536789146118552276242455531219595948871783732982472801331281694723858021963581212580311157405752902483701381046545971419511777405007155854526977752086374283153456896089572160344582009760205982191782509236496401465713112745044913603020821167034658827797478983402726898654818793995867489788444323722462188946023003951206480532871683782498730600474945404874138669988247541206940747410918994934887205655748332939171142606658537266444509085145825213562546342057529312176375642527815974931954102456618415423543656331382726798693035724747392979776225358132175857288702319482770533708938427277639394347756957328932854123450310522221896294224270783147496748443304136284533179928256215708114222436110385519785763548409662693332545114600991702075458228680226638162442832928878817551772492635377907573152727490839834207718296631701869289912804877907471194192713860406537701453732615577644301190731889182074607759583071473586973869341574297924032435241143477552391105186518643008704099848660544324564899339092137909439022341553336301014110610533599635348559749660930255441380997731261698280647262960212597056967848419692084604711596606377702123029816053053643949719706453080765288735884376574326405428425246231810616131858651321639356611315515286545832538726407243696908619550742330711403318843302628687019567997115653645772433972153908946522537438303130821782345452735198142826717143728448166372563657668318231053429118910815807940343283344090833084174217209161018788069601936675973287361821398803829071718348101118888947502846974890645434640081318997099727844276544477830507520127544207521603932301263526939178578938137309978658087164377955116953003241982347714620858966659549787972086046317555061707337721290989788557071677794866708431305679576780726700391485823651206992108782508039119611107136198528219797288398247094239051254868795016098090080632560413126699978105016535522181407139576729241574645543046182885573121288453857581173571697627082341701359852930895223605439935391287536193923595537301670147495634062780553146045605925776645862065582547153434893844313662793355141073572106006441936159011330273242554374084085557850647913405189174338362706663704030680687883370735283058413951465576894435584707104394620830761870284890405095049448880238283076287673575767695827803432702503237656549803242355096992700633178343619640724559648455917955260184458886571779753573176977315554953024477089278505555091737118068755240067615509060544065264074925964321663389023505668065930296869487164590889302683341381291952932014296659912627803099112042959030728761680771192982039525405434915852012111026524898757554183462989969541989932625748694108493934599222135046384196032924074954378045073993135153990219667262843666892671776470817701009105104794695286693423865604615102957983372675665736759543340646712197136029945956100486482921380096356830242169733219189264485868392193241371578718188149098600263689034366078582923162489279145364677394614343632836459243568584775181416523938709113610074747437208508206662454717610422851608309701902237434005408262542249386618186497818075357847550474933338773080252046763844247382793496306477820802116350805240473931859069565569092683998202653370016939200388622672593758976408920857136124111519609106435200396983631416775216416903792732305845526807717654938680895988244377344010607824269834953557902422415311571683835039254844321163029231571781415308352045907694944245359293592119500799443628871329163730910524759820832312037238525040706367984912852622622922254939517027641414996144083733140060418906845467128131118827237379236514845764537105541385353156585678861072966156583819518831036080459624168360518195837479120421622555567809228291728073743499294051484227282655007097788400946111701570208951133164733818008150850851511924381135837833562353283706966534799617878547969448213116231153163568035876284464769249964041861765152903763849897828784853418215431282714697200435229265767414610596662691112057910108950104840664533829352849659654055167102592189844112176561657165660283354272056008124020701444441260071662364201835724107175685437243518997880616234319528901722742033544101207960257513052933849419317923307011593265860205522400843345253738217320017325958560863124771849058218124994497071203038300760462604574434500734803554676878180338962041572302252511404799106018733069182956757795768574921319523642866796245077677931865869960722571492088870635334040678613038210224110576853357329872892730401450161717675908587995518953866723491202363031845892170581376513257997110599454513485551836951443940320725399028143388059082072073259406072137062636081174719373105944081738323569952491959192351879688700162639122152689763324361453984089505050243985858830270492366001498502270531109625866152935053977265151643856080115985318494110799753257535417570086010010781886801376653436427115151541533301165213987822865892189854567785372312906027152980016395086938629657175176532067948605832017273284304454926023949690068630252410939244871812187617685979899961067109200948297284113085700649563239291934711083194495536196236696915734819177376410146757058797578074681478838569122331572949064194301314926006234590217637725156600217330394083943701352302556834666790359936579671738801002241067112249175970215058264032208466801690296827275698544832932190341075760713731425845611294900925368428071475947851582510791094378169310878922745887997888341863908813796300484501956488742525331548524573006014919841597848823074170178801406265819261141461948006599373683100957926760372816325875836997671620071929337722809875065026106850554764083177606945152614892905853508764493824011458822247569241942778908518820775632777598527121986110074487928457529782639428625496810516477156800417800314779770138956247239372429518293512100572017352101571461812173457406736364599042570185066662380971041072171036042563697755851996189785961185542029037807786142806785358875254814181615941100323828822393511807346510162747666127561852892647046534528769443563402193121922784897563338059427673441759449092671938634627750161667092204986705133326496720298649281627699627067661944880871731148310071444776391377261357254774957870028013784049144756653535597232224882628440495035472712676414944025683068273072655007292259445797950261981263276012741684989063276248008978616523999209523276144732562438350841994688715865668557335008719007881104940689382753380885631742388279883910889094501521682960988720132044483704093949636918890777160136219673679355169641895114635215047082506072899735711852783778794971300109415469562131576381031606083765241395933234474299559769848344974968886191044703269618990321838514925587122133344650758190323252863286761345997367102235439514862982586057705439074396132293526013989499259713690931375584736515132477642473404925857219121432514074707615822037810251808612348237718089584682211003073770458905468431291376591996755544042796583031690209575692211055206840737339844030479441608527233604727456672931829878735184778749479255585170060469307895194323738883768293207429842863750939552931636360071005009764399902316525754570703568056456619248329078585451679080841739302875619992176078823928121898629338164877980365905497750906436912824549605762874233543174563989990313310762900666777787427913766528162474179646392515235137136448094241574757511302948179341077511965436770555976321890413214277377225418579845758485053207584381961376919546307460237941689194606081655733537411535997492294272089298383066369243761931790711005845723149637474858293182459086736017875071254994990067255374830276352800141393599938395996908374544932928295042678355618211457707743041189554022307261871545454975564518633759204231778073883324186263319514733668657932283295441655402863539224524557246845878988725426629081190671272429669141837752560409804802808294403260733874021397323280864021645419491455661440372966219959162200849114503160604864040059231473069867943826279688657652471320683875909334484038783332908999530122030589192204331912409619110322813036109281123745793747232816126172711048489783247985416441589344129593090809404889673983865925220078252409286140659423261608235151357737286212908111567081247687755610844198237502787356436131452180316705191393169675897579858943396003500943168838178545762097159294422860126864340524731255625778531739224706080357044534998433950656848939067896348537776230537990395839517743980022385512476353681284132005593822393938752815888750251680782783032378094647240020079727423145355406979439742983771418172776066911882133150947579045664932225277361651628488812425187259816578382828609701610931773971056666552690927050556485972585280992201820043532381610801558488041347448228255352777282017319789668385616857001480186088023953828185971325744103981577184962707791736041499088197132643486102559939810266911910133221707207786303302334589310213822922428130193982429796545568896900061330238409296046377001970748755295177964967316693812014763742576585245441281143695887100628644524168761285863932960452198326449822758654826834777507734717307228365586585070220460419786904423425555347802776655356177017068567141337287536460677802217762087895540517595122872774199395278633811033706262582360205671732091583978434292561772357980440700249707532266599028909638576231792259252769232879616183253009844004986246146723807276233180908359522102158863973046396483303393329682260005342219924183472188966416396988642374889663193395996888516101652798180063842836498299415209526211448749868126818813260860248182670792107702104961913436770453284348822554457838771794524948702640897916766207446745421356156487490156280607749279035902010113073330642704678540407644979510366054594128669391559566825442679956728139593573424986844117852514520809824051097310840190017586718976537118142879076119477505888619884892387821272304030749936227463833753252195511732003634033503317268984739366762224962422826606336075014113622352790737873524209711126842375110995582108893927078803697918815148747623425906433793436034915833551993275757115263814180321786157971141278287938634072435955038281607785127856805890941326891611934269380832899834459848355264178953141990623727453083774229900222852262922101570944132434302431957117631073505318768810214800309575786637107715208603035825054367374747641287548152532283368144746511908116578194874733874826785710067956996474285766040591711133873182765944027289783560790574723828101708640555320733129616331160732098345033099503044704137813826628524758281848242323076685200438287577658498452282381279888770510296194671746061316981076490994519684953175812505884039289609153592627984181105055461061654567288794058363525830324294756261564636965274218832885308267614123919873615159809876334968418517052484681282852367402405599954221404060895253233397111786830061432784219855853102772310634839420790222014618706677387795429297014007731691230133893541848820003208867693191920511494752781185494088694901674669592879258479756698411345183399753039948671271091637618499128018610670722255509174839740763329141987132586778156028363148200687194529942528464546688935283159378645176655352487710252761258530622828935205574751645599679015576891284614548403862200240717060854637130773417898445690414620314106628261074689623369482151493239856189098594152244373694009482892823025761548421211059253973941078444489587630253852327394103478660236482599121431704329758942503990791326310365804333253391713961617450741495123070815525848877306540804047780935591993564582058286080301143009581550919721844084815299328788169088799587132098016343016445445018855940319224728910309773937951432986539899427452498318333563706333365464433719263720377273057059113945068533114665640750415716088250009344996882197378183763046522735473187865086274768187390237384842524107693757965973011765901362375013438087158527811502123176561551628178196659405492581433245969669982034258561128687188689032768294603120928013864316343327416456138029224564615045026347361397635880739817132462963485547045579356892802511319940631831853208644272472294356591370120148687981726059351979949656167209042971306043361777667722840528022719656268780221485375987131387531265694535650338906166340160965748666529059816944905397494947640121011275854652765949305111990621349693301123372057955598585399721389456811186763778676425482773246610285828427082810350928500240814771562159440727990710891650129383394823912117159153112257647012660904800844672521335546692054444084423993945593021615009332767253551191965740880731632167251017342601636200989639970661510892157595536368472588506227812386299654615790995424478474227860834763877350458334274876388134730933986002201942422206231930624618258061680704347172017125406478145822197700642112652288959456293903494946514954815427314024874941169994113154245830699709234146101728559824708067449631565649912281914350566382371239852324867518435333643227111357208880570969160122382889896180424804962423432172145545180720282852774690853135649085630634468098039139794752458804973518643048669551778296851398105477863191599636944729682074868639526130599378168539015917890194851227194583596521324307931056555709012087661770274279889565180525421108661224322343633668022171730700797379187143083812147815200914095771136611906831411906453127083954350233634670464930627991609259426598194797554018450427224277867369037708105143940302506289301288949462267905117367474391544044638078437809922799483758229204695637478736184445143514993870214402430627965001535133643667253877106807010378778367562153342221233083984845228267752660247675788923955651985342959302298027465627431790147746638400563050572363775901880197381349260179679826455759591249218598293434505532789234373744039736820324191737417312416219697779491470552638057558310389920984126990903470218172098617152374878821860419796622496424819846221086121677329898244929207249540219624752027315776977650385236215682225530343932828381948675503315862303359347695644234172189024677697501034264802125564097035272140314736387928135655697127925345819177261358174678654891277584905445803106450936205704487822451371656132512836690978434996711133481145153141766847381794053280464775893880063964007859246458673180683879666685348230029842106122298618228142870756477019276232357774103229740054002023024428170728841536729458382570367202124271223696149399063068619748472142910712127285824852637954637455338671255219559484861130580662144905004389612998546724665729374838924501393232374220864342659440740456485642182969797949336790207264943608687621522507080605125643164266678083534566783359382729322353561910643924547773765712280098787508066785552104805902031806686281291941759837782411208558267058500387292514123828530901886692664062154106219319916936828581473699454702219770453973004559970714254380299695185957307230262484673731317967356810688117182265448362639408492640399896770570941464391943215010803862105744920316363150223832200949613073596694994234936991257600071104857513976337893527183167653710363535740128290692508846905437969571405847919922880592910804093171792071936306128559557605764018341028645694215715627791139484218890728278334360898336638339979549157241966422954236419924420752760055572510884300008447161596250753112981310040416710070687287359789913892876968505332637908381231110628822693753861098649091386971226371113107118647191552778103480476043555722031835465798751294197506110420719523447594906225408601545768506231444665499162075576109613298288715751165007671125370139079892902892097607801827757828055983721353068522421396103382009897673950613200473931015637910057977306715561404965363025142366042504381847567055400558982560700009736569902430605966691989272802746186030488977651162312416849509404756043452650126475332691322500267771675182446544483344385946269160994157420345918939039317367510998101106062765750486574967055970822354193262644699353720155862267001789755818135214676735025847825606429088659844141118575416458414353989988813104526082745261968420419063781026084227557464773744934889726935965840495852828075204733910406563136031076411016490263765152471301239080964150669229030454395224857680036255202965733784684427325151810629968867838554288440892206757312595715106556322596409305133314144218438477913273570383985864604303479164068345604315620278221518388068228738022932190440699274353427543367732737829171437177283018656351620252731083812950644983103946011379392877128463760009825611054862003332867995024959928640543725708505362517460819680384326153179612231379990111445310083539812968073158817303689045121256814508805091368748235323389721217219375248000879644833250469440458334307642041252918562619472976135210606083320301415622171006671059261675703016238548338627197153379853959827609503857846106824435698809343549835493878566867841209596015306512550130039670558778356777411358176378860529486002606491672061713614658393210779473116419051115241823369061398764197264517963553341649221671498733659697190189237248923826489442730846022178798284350605632506806011768692975661153171484413380990643990072975623609622492535037426421841363876951804637649021792747602299999687722755526427467832817641944117614907107879492903440047176779930370467842591552394552556847353895311466044752221119797333293904510781027808349168957914308271503103732242204574321177420066636222768286675258740199304170277648136357429835384629672697443859381990935597484807914361771754744974828652998264271045018985184566874439415802239510324187906802584131342710426630508542024011512619579175903700648434002963476052801332564046034207258528051905964716463490167485092858679238564229143297529544060520147752961089974434234747595820850896678153579388502122038224076771100328168873307894235704573515449665932450086947774174722096811908748820674007052192373491608635042517780901259386121837711835151404996600651740105910197766282479804511609524360125998397511494723144218643253917992998017698223841071296710322989762762085584483658904398385051124879028971591953541111818719071481268187865820882711541842004643090914213161127784367226747796535657414085579286064792766464743887102486819391704527987203672591551571446359083838244593369611571152122165265470351428510958475923434549059602179539426751040955502455151777585646750388675197402527430251892281231740002281233631802712694914213356926229689123373189179483766362429103666532439954529982624258010479232977263961725543898445592946120954828308607540422473220452698592408202425856222408250342908332424354821259881533806375767862185514955490355284415413214207528172588164335975599464226189572087801407508202646716059451763276180834977530369874644976694091593084085102013251801914927098045839473150325638099479067359007856842817114395230317821670533196766808387505020662794152255029768209356701225106415562488157865925640330378034896646778774628260046720945844468082819932076834244671997762741664122257591568337044788346087278549646476104014367202485304000999365642878023189034894665423684810524081036424081985601898075182534509435202145311065474503767297685115783198597951446832440156416005818365258372306978028061691508574812915038148918684171901161653578739866210988739917378999468175612636558622592647015741171065578801722089711195075704325416939721786617429517831867908208111038389296495216964974695953613929959051861361628446558420205425736539106983314632796936430455923604762135564810404308516930852644053585534570630166661762139101872356219311827977597531728248030675779852634293788702639323658268218956193805504866624504953681491382535232481365217146171189091011823888906164652227446811166725118143763120166803120184239113875652519088549689601951224510197829925812098306192917451153944732613636414547470531214569341363526957599687915882956219264077362884660050370444168494951603082247982243983625267399818826935979859017731624430601336024056729214430394926908989959293936837333533358723682951622185635937867880489115173002325491142032573511706020411709202217317767911829192920880574474622103185433878416057190232284516481032618941475959217145288490662209316493429038664733520511764953633023587948814254366607212737706393946967699004281070394101998826366283914798350689301904187106260365882204245661181315677249736016658688889884862518894619704566764222536674199286587137043816372275168743123976634999121981556401822781140957468580538692978966942025579974890399136611632119287082334165333024010619213031623429428831042012040194444080496868154244760719538703723699446898532991494316849442580885068417206463722985755471404660699831165187262411471919472503621450995858386263744614086793466325219558335760066301984644777678895371895335981688227421672628749631080329408397944191547860569409137108211701319065880028261213566387953132169971285446947532286439761283914822764227159599094556358612333217810804898041839881090593927682233972456981470963363922097519047189608041015202165686600828335614417420684469997308044441785951996959860058064957689460380578922746455366717515547725558142407332656123995049984745927589501005272290854206952567966727638782144246003683431152619236020768909347215911185560279589611443805430788006417156981179877992764968365453732276828156578392103140461604018108349128803942752414631614322905190179008718284398494795218924628269539327989641866531106069434848356192740964494572477620659545775753462280197491809266350921959580022984885023733970215843683762060709135303747648798050476662457830567974215848919910552233598514438923809847783192340045131738259865772520765463857878050272998825960510300256533581588302513089329651868677192310779281796887024434094975989335141861100919846512577737820895546595046335904470258478024312409219876849768800558292977161012950262697788214693974194129060639645101062741574615184988155674476366660998592546048740122001796955795528687299085939606895411744294528688694773867451346668565821909002940738738194185609664878095546261511260535885723499368313767259600954731430543329623296149147386464937398309970223003718736016777874063563598467176187520516573492108721292401113336378284226529843420112237016853286063395604093560586877290460538036438674021393999500333934465148194476896332617527530047135232263825520644716868539650476942655564757774005911531448718427107387972211135452938644901895668181664021395514024434612568985441783544152549535350876239534698925333367422360910771826633523400504765830077202373869961380980050937185804212066165772722015382276462039056663581573741106185027654604121359493704076753165063505806828690141328339135111491890161703385851535785035205980560655576200510416532577374917685480313485443176792364294886227413975997870934004875239910075684289113128596690949717288264514599800036556446718266189397825578847719189843889121531326380963531133184766166967596050902326893379348838772548478693109853371432286127416508453947408842505893361167130806318276882982308835902912818400378047658456601042837796273015412654526446099514484833170385158092092319803816458716834499280563509299236307315134657170850229749880561693073890285146832920259431489331542802633277709769555838842804475766491207233202651956056737575211961720065031354823763638047191050748550959553508735196262855462049049268885417170788952866838676829690980796617511484302246757662671964229523381813976468051344622870406349986442549013465402074332255827027158338588431079971286357727655332122800947941316312505814637738571293405642129922843213844146035242693484896484039056692097189385278856474141038158041726971524420028299227356110450827036580100896236568236432299077448922283168740043039093675697376842987089814574311466121958009504912705212704852375851904217847630003366564046118292789658744028923424452920877846200117334214268151451621885402451295739529773789398590032427309551885316044410673483830378892913613453363258624646673671518914327358557642585747543244438314858260618420155780273107730657197115098901370229758760179366610758488641593188579976636450997198199703626432059871667306188719754976439534184463316204878634820213825127241714651706301278634756614348783534114400943230392676446196646736029444461605876762724959286895936128438526923615247621525112944015210021573253429743855456818427447042690370097847279497764475625722048258159051432946421510176431893124989672871298781152709990131467862909114747150216698845780100910345494215975515107108212232936339312327345622311973771770442920006538864966372504722183815318530194115302667712598899317632366152867377402780430604517706868433577445056185382015969605228184231657703755121167013633276106923130303243141694676637987000074493611286423060725105608582608305851744462887540970787437247785433056134076311231332216312854543888523488739891600673334597198801363658269583139662308287956937375913804078939946776414573545850984810678909030384126993635621416944382271719829091339050779552963249197262969784802016334657979571790569129111840056800106690810926330158774285475016213181935212583700765005751065483716914446013255994451320315165922384978711492290493099678946814919236471868396553855045058403030952777112494063747151010520291170857113085961363439312839108135658034906400147812952756275948459993432460198866248485411972118293570088619029237600600872409624863597786376010998306998098144571551652084606898704334781321781762952103716387777139953820115497687676422974909882851022855600475811745054288481644530417955897230857241034000757972457762857989999852092673173357553248843453042188555866514565571346386219787975069939009283652945769899123317543394070764917072353331735486059970476902325796443649119291213006036219142246583451982260032394948273193971311395524909407261260178593845146936487057087698927442444496675491347607893978915973763214291864238919918090077111714140822991497245163932024057154365496861807880635304912287020269367471296715526103110221953502784620873414657446950164429451777710838714843332523327727732802635663865098175483914373337895342466528215333236705218391589073173513826924276770578505463908812903779363657553467405722424498898189413524258799271792826227526617060125709478469542683731803351776117955827258249540867994830319514483396326781605685187412973826148602084720642313999218996334981865613587189976991884929266696416043791866552668388354369269573049496062698034346631755690361292094162596149681411594981441088513089559706999643350184095428188606625081849133326334487240022130637892952001278462544060700908737362818857426174469621843143817174984000590801296604410289286683803008215978086036067327409544993875793441075570388815934049119083396521030466060101984555656285471323262349887389738847833165437931852653021409311644782553110398061180655108664448108000930728823553457178089547002885815270337816021025338618266164682791033488501913399569476801446742252613303910513467517743434944424525770239005831633940635135445801803466901171556726556224323443870441199074656979083868579855856291651641760149223045057928205794672330114413528911689102765270217209241278346925269756819820864964881509943150099047076177102487471203517406097477906352514540781872794198740686062964563771617718861881406964713082992806484356633789105637052461048685101142385653664103064146655998199159815018016249779368166295328976975578584377595872067695349049778619990010491436749094106976802505905610283081703772646166263437993541259280900312228029405215551490386883039172502775627752848075464768857016894320201563441430900389878074655974711280768145659923515434739076237976094151671944056476549707290682472552195117036494658959808460399393312170815024520728044824520909002420542609682312212565273805544707974311781849330564884262933380764279992365371858172229020794201825032372286935068341064311866021354079346409667693204861036948697506218123672624960203505334072878802545493476112460726216062327848000933773625875270565279922062101302184310165064434184123365172647597781937776192602413688360685500560720125071574486744271890464909008580280600883958148833050182408974040547775478984169199485641582634390622080605144239951917215001075223983960995374530641668648720463653735059735916248096202261979985276161498408974268290234784873833361756736722952376774399842967072200552670961853667160916809423145150781796496973181009657990489845836424821409868192305062386652722808020110059608901425456798416055136061859084234830654360665298515744705519109044536151811238842739112783561812369239039617220042908039976534572641371143731721216775157492913340080490683703671769357561408493410371699057225350257314297418992847816879984672168200070937245371116158386960700018574740502601735569966896364396237792240823019678168094663662273904509957502861905530554610796569007893226662507933797909889426335016452875985083040144261958318172132992149939874873735888527356997562246126896095710668228282938703036305029072238202535353468103029685212714841093122702825368728017236684051352665073219251115105909414237784001093768730221331066335051966134014317404729041143240942643746314445057868375182301158612207331837556111435289735385996703497785739959277669806565409681813095736667130965840942154377503806030834540824735199655622911357687946143859094600665280532646764156439247610004845001727420608766917957892621397572284538329679691419112573275924809902761919930145479358078875239709541273364662762698483644298352997556989139190983399453946829472515666295794052210719239753730688477931294527919916524672536256432129472095423121074228370369631938163356316557656467184602549331198225726692907812953063839129634662058313889292271322435284776311437158082669557715397856814595900256533775050590316375803900484478989742989450217386107941600522326197704383724384133586871650061795198826955300385331724497525050024958682164798040686823067320569855772299004247005778818315135561840737470582073317683729521674045340919704098356264945417957405137548114280149712861512864703364375384176596978812550836765171665245987746075452327417033371771572940544298887602204599442501177468695136585251550328772467166927850382741289168061308108193205222466450267968993629405935122578606273938075592942574550240615274504259929860874185296751608219505698747552780599021624328477928985959980414076710961738663840097291015569568279368065423862013984550084566282560373841195403705849052521103314603904095060485613015891908874025592988059545476822948823289285259329232645642861935027265354363799661143121358519802310006725108357060371990751107448325578914485129124581974646833606104365517203858107882929848873421043979514327771089996771352245708600833790191874915916211817512819009419712963878465572763320387048359024789248380844266750989005876069036036274851074166254023974237583352523580766157077349872595732342134672585121764443444754690225807275264746145076757616735213039836458131148366095165149141065034987682248288628042587694214372024113553749155292015896640071721728592338911553122170081395435988537140375808339929784755783363388566808423997771674201255775877397729983948749722044986949733357101875030896158195246246517503532328754356392480659564510971537545335897228544941500237627758175195051839108247638688619160622569955533487385664267330031699373577430088265355207164034595857604140948757535441242690511754038010663284535619643172120829766732424872988080330100066161719186078555639713209818830237441475803019325620501028832278068442127261348694232546493575005739956917713781991144156448455028220475063210262936532335639601986903352397715349271422158638643438067014365246705877114069859421204359087939645407041967591634471442087073904966431534164105652134590478699865105096063392521564071418639020638835816519072989527647037962308243372623049597305104340483091262346637774036161214448849574254852951187716576243511742198138597850598493904127722641098473987975095985687565641162490661976309475261015188400006191403069791981207178494426873528911531144690954023586986071436343647337855735005472832639463231936883415037999436258177851361661640230187270889797444368090345451491648606630597146567908041299555288946422933467822725894086284184779318328862466624365267056290307208403607786904639825460669149817235685516083082711061967893346691027789972436397121852812213693015658190748188304015643659155203242551870871295808329514871056787633170295533067316824895307376987258827617503853343083364703385534233581695854957413686009349732140952397195216895987711683869875248869913807079923281125617992894069368531781329619938192712354999110414899267095360265921583377155838132638187705702108311567336685944442315626306933042310257648347042862119852682194192615805661222013159430685959649772792364661599406512534199015636014878044788115633235018287369097707714413291333364697736792052875960765649722500724520119360481164853573049354129860546163185104601582259481199226770308779212925773153059333791576412273382525570600518615509649939170674951002295180629585862014592420661397295590456287407536450335797149092472517909579859213038030782330600912703362329793224734568583163625009446551647728869038558226371552465965420639213822284466957243590123576209017697914581376152313804101520844047447793462438360989676906368637211873763567568086161427091161499432747615086842943312996888974429197258473957871626208413270770592040927800516361702604515085655832727202635671393855968969519218227463574391018965194667641055393405698919595480325420782751403664972750180611343217854449059387353701404415026908802467598542572859670685970353751517183004325899764829211540974355554105047206904490141510884126364442809631128499487490263320575067321330228439393173888658151905817976128191135263788316830223901994358793047522427036156860000679522145518909123682333052740633788646199505179020454927151669488760811676826348496890513512155415624748933021871459198585942865220625516512027525811899081715965288923873062892914930652247672706053677197188666488522967015110090147872162839868253941338094809958119898299263352877605546861844229333760271650091475774927177889520979564998058115341732902879146527331805684156135577442416941123742565835422247447006024556715611909836059881309806273232187469947436911914646509734777459637106406974625500794081797994141297035809557577114660290494262176667896136760599445821737194063273688951942908757535981169812531809727570049761761054937999010889668777414101303430562914142067820012644219733814339283271190063439638726934616320707098605921378295922266833655616144083838166556479372197509274243527078328908870048532204579956827951747374974804810025208732684731532553559087194878151994365530535215481224141215104747817282101068403406609419223834706858031042783797431655284765585658923483322818815142412365361170765756932243839870736225415838788718561661853516488160510215715848440083983143016603984727020763421470131063512170973944911612007684698993220526673494973775607806351900261145282634537456371641370518744459551785550931029133932497950357439211897044305688741432211776382795648350561949896175897043602913008666913579771296413172876485322317917094850687017699275995369742693888106000117827931414367276650577129162544348058431589138026437136882687844366947757538851677164511059565367822781991236932724194098933190139877626399484869831759241453185170509200681225491111297810462677326882061936426186847674028664359765700541128318794833398687436041104576365440582900887595912116877066744562188309342995716413505706199689250608067915722736794235117099939838701460910363867299903802718601636244440742807125792625893336825540445357312735862558070279448069500561780780166190848358107511936765032201202828583513942189031935231415887495658417652126868210809424365105635016166585429169822152259719508382254620924464884234626970318772390104951347464516646909217561194921497363541544843572992301038020624783710128355753302489821152697460059222304340662000940016610674741592749060320486259633772610150868367017853734593943689180148386281480853304143435050803448149406753331044519500580905548244801833086630993891185424602076338890911428860679126577602855398052587133487711750308520354609897662402337338735123545198055414627938948271751447847285509161772365268435780294643544270174058852010017026332051999742585811973514946799723605338635025156158510696769120906560996902273182305508704807736894557963541429835881933672008035427402025406007428307334018355716949720666497592518491773326766504255380093884276911997171177174447151890440681417301746187894183780313625633795333622702635590966818865771172248723025861596381751459530953285551403398675361544570946520437790262717623170068151677207363723871867687278618967910334004095741271684759818032958403352809298049413520162543444217932108926845807739616782395940495416000821562475754800038690519859481859145798136389146512160522033323539923497471553321554497276198424229590867964067713393041714470009958367382755725263536375762962339940611568252989794724465099830257855239855755768332731791078712561001486426661644394462590683670993093220714584988105395067507834627077687418903284364779337263693998770684022994038271569595807478489186713282923534231345664704459483812955840891907136387255596929754426999943580774766178863684436944128608262392043556747664570397209739522511692725198967447104825346685759422443395817771831489799140811131330331594199679607245433147899937293977410064939100631623632945437165394386812287537907756177894615285850198580196216168242182096290090817433610439133126948371620670943771679896120960673636755481026892961817972534017485115292702336267308041330771791439571818890480004474213342705157246059315839624623757209785986399457942458456178476655613543885182776697688898812895214287530243924485521567476352389010615110627783885209720385798221925016866919160265803903744287459630987636881766310136141767635621886480865955543736975745531364541167086679464071510758129963185042629468486377199591284969659760079236356609692877417968166963235378990651819052718113305796220674260022584962700938104291146167186703065330934650030040804654525296552118611832207150903505813708265212782369637702913068682001297407349223020773577588302680995159844611827631756746460075568571598071688979410372870177818865673082001351445521312021703542728503064722317421119704201954264051363618793805693777101623847502299034572251670781461726733140797144886620930012323819625304963952092998519544364821118656108841414897522337472664628809719914689226876048947856479315105456855247969005423121061190946565331210052623760630364109425061718758772194744141924398374011200994042710514924428239314257052384012100400391384807104713095085550971030102743940912150031480950095713998386272920014947682344419456831247474240872326948918519539781922482261677291421622298198550048475763925944619638942718065673979631376231048255244104951248045408730354661849148764265322302376356549682356039218246375475487884711174897641882740906844113424390092614301390694605766693461319053262172634722397585258670394475175187346277564919975513109669425051169581242595803359285154479678277067308730012962323358454058792580282254161142832607642769972389746882524963350805062119972387335577126758066509718340260962435218149061490503789183763974758561406824652196180688096327105195462657457507684245525970544607532173236725892205928684670171249022255429898160623222368357956966364884008553292206480536121097908966306688078918136523392683827773530754736901444986925603359383252065799924842188141756747483000241393425225485861355101300803261698633284743229950348194588934013571702786657269028188380067163525644055748530108888542528749963320625199013246593024537765977301652048785489859469245588537288566359605274642354954621266821621085344703633953209487308408504070542579813628092932290191649017711806724023991488205962918326874638028886634664498286443736660317356435303092144170656202972381878353497731128701647502126000336443281542856123837450844218055801895289820349536611219891747316084866924943332349607715826993459348041487582016262117574473521762019699463844361360011858654330586393794320689133251935326939678138082850845450370232832665732118453996195792534169747475110077909541364738654116194843457368417675822319440366396985515159323388013259952957831329637169715719070141845465097526911126667351241245838135519369323918182554610694314239278777756814612840109480180671216171897406573894076916040118406575720583373331053327968326705932456433873333498676700997309977671656154986629394610769303980562739561280917771685913347327502603229169191446472475126017786541983163529712326954184831177062553850010440041134630979396297982477029507402558466064436378287243716278683844401117723418093955701662343419724469062110847685306578702819095649410329848520975681857579772668765571726775321343121097312965505347499967992443792022861751461887970719075827021449501717574212706038209734922839991591138454545805479722943541179875447069507897433273062615096877530413127645090730872606616100794726884858803234763959735537008228296539635072749529925938218793666191647271482630448431691501938303731046583207744583644444826311105401853552842276152251306309036502263658167236861091640148796965664758004477276595533948249410947744716135450563453902846538498118343783742763131990891545676750348197523446010322773964543103060409644707622787029399566641133063252839746855885091145930769583649148081925130511790883299550040089658352854806419591941608004149641394274646725306425251907172221926025278449377691859382798523359989936077214267708112060452486656727308180943641482746959626336727972392474760304091784647165047094190939341535350428382338273177818153314178447429351998125698656789421748172243184934334889864099526229157763011342227917526375949320879308877127821102403257562316024913371090935778045375557675737271009574355945187231902058568792276727295904204540894220101711530372248428502898482201907063989620296029504109757304881298197144233257908312514192060164155883867672720600998875237383534691448257458667358767201728781927579419230947084355833093801768037834106965493052366552354148696184452382916917572297697168306494469756310048892997650081741348630778187492395013872377090075614766750523829210619909774686101817565172604716717051975691842511441477264747577207967943753463332416545648794127332104519056834842724471362205930849414598434921698079396336272635851074517955673264088257301075816111287647840578276178452522582428509688494761968455059929923686834199138535121789174419373599821336547909330785127949245535342921023401677866287562375194434945388696078061153995947138035947660536949328885447726002020087039409496001127700363877759719244136334951025845112296042210751330294228428743366563415781565884252220743917865330633613020285078864674347186512991449361743575213072286406572341127097652488417676887936836933589552121677312286255429439620461073620417637610082453141859838480542776518351498534197545082551982742202430851038687450994491583984835299324690617531671566168407368828047101480312148098657292592474643012303072307573908933249696259504067034956789451388348820875479025127782079887473207898094617176623744412017587382208695882747635999641662268154214385124975965762315027592000185187591812854424614023274457951061975472727597834160580585294712834814557528671851132101897469848812465713553510057811787752536362252857343669110275821628266152154595102860642299824486745663827938177541467206854988379593422818881557600490620826309328688695666011651604272869326432638804283661958491200664079592408683266187060925331271061992237989721741509463839082102042745411477977089432464604004312831062695606271011554700946632080450885559803461389501376129329003179607676785026240974013203350311311196424873653918095866021263708336653774141565648713954767812779084042809935232114475422705791828551336898986062825706668146082697019616443781926513268928009762015002134125030497594226427447066950692787019883343506497078122756966407730185704523164413620371612118489470053922200767978289170556064330154988264288494616094532397564299797992305624411075799686786350583332530056732067720349037186291166133434218596436364344042121215067918677936181053312133329829079965629668879950653098315426316764160521796395883997162058442346980645585615367379274727912478026146470991475148983993738853298695771266866853424568786993125613242571511773926702926659914044032412756419522155100286464754883623600381619903906522614755370821949559540461594476427480292846945645447649850482870404090784192315245604158817699454066998411437405461606164974010551490050486043638614051309694930777975078758611953009543772043323885981378074469049594987648008924624078424568912048156891369434128212086712414121397326854739036234508247593468464861012339421457395374818867741291144888053675078184574803395862858847306470962910045963861633114185562504138399159066896001969871425521839932038122019601008095540170169666051909843927792969016908922095317904024062708534007908285050076012784157107547646055620732625913612279610457057266433055935905539376108503033916595534032638912489912281809867861203033029482633696738707922084113555376686603980624923575033935815749649865085614681853946431450279702408152334434852897121190183375236008870273065253736825453057404911393996737639088124967036243783535793643754616348487158828852486525708751613896061011674948380039161926133253171122753761444808502420251069317202376283940357876785940040013506004048781229365149643623807029563206387585564006936780485987239426144908245502563014159993587500345544794161602667262884391307610683883601492873687301998295689922570098260750475697964773225194013127798433664442983102710685881429578491325268216620928876636899356457622133177604753150924636008545633390718579760920051957600880286023288882228367258100653535863400949156275017527337735172659410026826152925083144797449994899143003616928298441288184095740621998060344826661580333662452394859419247245714221469621985771144123126333534461328978538152051440403602926534826210599760294481240506227020851794394343567806688146337679917497738342066406865162605370896318520966899112383351855366292980043749533788867522543002349899744850531528392138555587599574910327849565560515626106927249934238978807941811852798768860208889103134732130489320816517153216901165396988239635754335801662748171756226852883865949913803953710757761179746059723588606856600391851127896529080160089112857209836529730169740988246035762122604618313470405944325510936119311426722250676141978639273011599692134873682772098209328108991961571961924867580085402950271813334609303225837386039144587769709226926679915034542784256564998075629397140443646833863642713165873873157914919284333819977836439130967713522286382779838004308921524438615495458222130237205096633635183412631918661831857115070841021613338711551515078964743856821111614067069759753447911765589160799883724159173522256005171158241621210278818154308428683868332861962198684357740639758065448397499749880008694345012790216537080545418000873271673469866504740139240637516411665992367539612878004977062278273117216111414662716927112525807110198979423060162056095330164592698405744004595639278331232128772638057992704256455362110411667533063549222945448204514268442657593457574654712030797624146382001701052508985368509726458027677160681135135184985233361193182882539872088152934933956069564045953537798076481461045143514961245891411278090419418003690245595371984854495299930032606315961745386641529010155292941384401371603328127965934875507874195706726479082881467084518445198659478188155281920675752390434416223540772746154002944370190110191755282498502112582803789443759539982364283134001904637183562697772026570989909473634462552857314939215436444639056121718236243940742087840874417624794367225836070230663193958712232125190229661063847674945906448443978659031123517660179497482930878417253888317218154159652749234394342635032185005836722414607485701043284927217330590944106425030644973175526433357118669873642596344789174814015248453432782511997990118784978489277281730768355952672767418268968780642597717132012972396665357408047109145570661098701028458859783215978802617197588319925677248089771770769613852087302865374182683029376128230976871278270856945123317589594790663454436953162576202474307246626618719475379335085922490027757064275161120692824948210575224421737262770044570647665647602840081317684628036692451428000660992925335329937037295184027626657865143849061892346823775857465010529482545981729160742097520785161685164274682256800843210335291356268422435659994713795833081632940978708135692670631778130967237783803735596342393535010925943853166271690932582554790857265546062127413004801703018061014097829124525026899095898820840150881554455705601324658950433538108972559365151901435656221005246659541059874943068494407882612333174056575033122288255548520724841961197168751493712442445398770398372235242318673877474156750225561566517821381956454766310317297916188687691218484839149844860382742648844710758523488858589174358833663490576034974902924716384446992107155299690903486182385384391378055326405939507934774663178978041380514464627812389966102167230568967731792125033708173049701903013606249751884893324148253797173641423518010133283120181260370817839141623505027171280143873921447406056492887141825291350692799011770029312086244665941556269077933717512915303034971152681396535606282031760034670079010110144451148424614382679374001968284055887687990847630017796303762378647571065536424096867221405744962348630093908891723737797552757729516092773360115632550366432297704630868838140916304378162836341361982500886007874150963852019411991367399139180989557987955916082138668038915107249705420713008534595873392457981211959953199515636621529251427909635303905349569869708464361131347827051995087109519704035412861279809854587136296877093027588463451656653910364224229122093894730032674169193860067571980332425342608134590950277780316903399892897794245763977395543433634552875848591403561336384078810415905282206765571199056188168463519705304934371005713786022884543912592040249436016873939053597957443080241275033760104224601015573478743282111504065825831339843626101434572401203906053153928043313712824624983274394073224421131901354607158660437133821882129097470194196102626558963848987345299184239101508816527404553740017354710172997778078063426571887738399567879527312752819800174481516061240556354499704884460597414377842060923211425785484535576550796259135231250127236158517677513768056484687741451453817410868524550501303793320081091769339831564512278575110457914373723813823365306602348204759639425105252965104964113828789281605202766530515275648108717363577853308883670212540646270994252680510823149155170525260267663553684815428912838105101319883642248654182341512471663376081909869388635884859827420195979226286791950440326535053239567430813342147408083580298924876776758774023635278790822043388547538157990777901049920195357627285617613179439673382055380276426812005198630206794846367729585865961641205205901704056700847339501315442595661752780613356592917959632582704248937436541325060883040716376518060447760150596481652966576070849933580040395090020237890783985801709956008993133767661803356286697266840304505828974681460608303823598699026949700539931647061709158515899018559988258736422066865204584343072321343004646244430068107949275380741245260947028495086223611921738671406798595494480604779907216060549715381165536882808136943561225351744747474277594074122853873625955608408260053152111464832829793766055335754685269149331635953893826557917089576384887680290613272255395991128487318104134877464476803704304126811916361218075343325868900403051751110289062910951283835706583378607459627338278076814457895592141510839468563143477095463103868337489135543696505945671661874651143210029412616900600220574930149610180811394778382766094802091917115266423562453106870291841183879665475938985229585036268362996433306369805172186601851207160106639653314734415380607406791251312597565131934074018861881504517763911289162501378786733532923447896637502741141834088248033826315358572267749218278741900960049353947163389464990309768857760852060439393448257716403274416434651663818400481449317564992736491212582404158582283946128909405514605304673219098478314454409889523608753284083242992136166383038565222228572508779058480859755371179290073638617908682517610321691655680319548574464651319894867850100464170519925892574075182259791344749779021516703338376888438754378701230919171348655764665168395110399445295233262238546366061771990902460588027915223878173305769374106610171524959784944728332917321014874555238778537296008968095555430620330066797387376923403768880530449560870135141904351120313528589924854663732746352031132002950176026722986021486659938464519051668090602214812885336610016388020822157884360403888117559264215041618818626630886438864372193173621445826893253173230395641588353843074492027425688307533876137863775477659116795616010729664943389669723887658757161272950763887262062853498857976152746907518669680622589156870729684813539727770356454491812267108933985712078587481570950563459024632485789691863590493433772128134350086232208478203420734039915167298258995735554652019430135622640243358365247444301254545585144197518368751330480027171579807268288041551053657524196247826888912527710103365151986071801423947969904745689914979609040272577931418763517789600998096917921800412971606384412630070816257584355866524851969505196453006703613616862797222784780950482222457407641376763893465482684133215778718336920725475052753836777115764054546001717175271266732344041359435435764682545368519973452163232261014409678562407134007466130717521595474323553415216631870017073835666374681156981897359383100352298133645877321595965678892817673221656866733871734864868723284074561791202211241211380692557398567817383473297671445855124892260218433152280673925065151659163681239393759172082057545190842654208035363767366648206770154789711511635549769599646876397436446373781074226404964354490308448181700118766036500552123311147356282968832808134050813728836942129130577694658139530012221497866766795932206227776534658448564371110223619709967903303189891189035388917295277575537331618011567749042390646751788610194608214978780632462815232597552309942510535036867795844872366650268265085322850231986130326979000877289304234600831836256837668855865448828271396642981972685981722883219252642918685433182802818091618390588554872762879425217616787358130659615151985418844220827433164107008612855834630845128517697428838895257472706784819578560239920259874219618328086227582444693700640373008568935740387303485132006077022616622532652532406393420446069372120076723925210242763070389217768945182899949153291653046154790591922623474082197759212141507288618814406656041235093492909712751051136443918154520944618117760693765829834932547784411572572208266430935446470373009599120910624513647701180608823207275308394469851692713807999227898181259576777601750409697648568792204880846687609898736400258874987971764008855738623493241500196365723005776399462333546928803003599192484699917053941942267616614664638738833074617295942405796496485802487099291975406724106119488521481249529261900634406435618997153237682734330311456980960918763722872069482766449842511018386089221991952834897716420690482573146473603757183131335141864034150885067000119725652597023011875613889810024343011864346555314500387253210918213977628903295708699360096896291667061565206840117012382541781353031468242800926627489863436000293481665155955042851715009642677364303508446525931795956565517824179379467283657038976639035456839836866900132388458692608550725365543884004378702191499713532332137213601983401315434648162300147913716007543642126763575578103026419949960370439262343783066923673499126624755400657566533583836245898294939717634013758602413774458414917924656385074425791249419702312415186890981789314649302506684845748757783263237003925218060240974793975556991725340723464558819151917563115341737238419058426721878460635923660843285016907591442711076286692715855523619399593821150579239805958150278066982618373707501019345094812866561719394883677986781370652737077459807012742456396882542722093818782080637469515257312129395070602299629844931400648739972455894514822214990011949989922453368073941769520852327047196722785807568131230062195560525446429318962981018911910605479632912529750684389341551074234431246689285942513546324855555134628970091204224233325613699885579306306949096921303906605921683019767115810986760528509335324356708986337418645796488703714440481569556392213631303319729049773292869242773218990981699069525134898407622072860741886555834835126814376586108848117562166777724789857415062317990338843613978902912807318413601404526665695775127823942494804760320177664270623556755037273351655645546835385462401356018415281702731101158028911927128737271817316227107988459951723495456171755839847002080099114663026216000887545566752722421735052615537550083008675808971056080803440509583709021792617071654697930856312823369738891059162874597304719287871845226161596028110260321686465631550084863680569896463476178597420844074352365419467042331848619569193168836546381758577305517729912005444395936763873122201954950450993511156571694591169693973785557580033895977912618763232910963388043948648866865570607927936613265087396509906602127583510633344976115576990480952915305093525309194156743170898588141029029047465015088587843060587230920513234869712069978348881683668454136965544275977725633329254900244546617061836888180401447536965735030606215246413338619697168411276863937782298219618776099825006807595496103534316868921285047141420460054031605816252297773468433147328717476400356139016198212328035637340186045928290461829706346674911417541627881460287817684911490367571205840661733681504950006634014784864349229534214439639934245804373997791740457782974654373732489566183747095548068418331909111188088040216385672738410260499133793092392842751938311908338356845411721312801675484980120185968872685717466622992095817657949894200719079132049168052242515543027439211939219481413194509287982011455382386083205200731811584259762764575219281179245873944319668586851468793701784867281587075429425264527744632442606473137295249955734647703611353991206614065121926517848795664897767965078502413241962636134020426960996903163242171531837551528318032569935635603777031527998537410202039052843590531924546066460619231131828404818296474817799297693389848594604591338515568977049356388738902031023318433703056045897406888556382658385888296536042087844895610370114625893573287205662869676282499594986849152399560817141133744940735604153367649508451519142764914953920460761330427516469648515059922251526225448814331864203142430203361297313468730895147661995092485925107997698828574579717159137259885715150305832979358799146064572308185130017371467963348677953079897474064378172043705063366700725905364864411816258968975929911358201210071305525835872055098749509866299258678495923814335820346481687765678085970782060534560650688241706988153810055795626984075005112923095718248140997826559075443082728321511064295769348645796648206570249250793388756481372692076539708052025972127329407451919599794807810224819054576278748553491844469961025931473837500025844142296115621134927217596698564350892804702654321045436190015946728815474962465427628366109061165436215592609296627865143038833800036198155905290442806729852179136133990182820421906633960607342792815227738079886581460776344456979900538294149207165258065974022347016998207387320472133990074504230514972951037924641604071843410988499771294931535316244232414536868755512602235910886199836893324885589660799407265092786786951123996860819238758756797525702815973079794840186860555536619524877164926007698946892621117391861360469188470285981160033415450507729273728539449446781561231625227248108642740234073317247582731580256927557569722749865319582408884640558648842398516362998667194593357103495128964409606502230563300013344053085832215424031992073797761924693658811027722478751171224949387806215667432659782079954329799825361385655418243757516051115170995962124598872150954264439809658166208121061999980708057628453367635936466979247027615029623664173101903945853818356906492064808861933902995189739225723507243298928925446473895035065828512488101651158196274492138796327437769664697958507014817188709954646108884688995334099013748405163426892366269645171165160654830092026445962111746611764639804615627320274408849155942035954526117410415458590197635140923640822152443160354559082883420468704761736957268923438633127384660054713423518884779745513016270450502760942380307298160807566822652291117449214097421615500455953098874357771257964814701575745246998868275225747395132817399403323593997019062408561383502074428441663506601314024808218111062644653454603183362936158842217032669570624132639610812516986272983878810106409370787739542328761758011550522075603158178392868083994233200181990009649600440933725691023508576604188451690618128688997339249798885081916240650426325131964038996834556561100872442728565405790205527480914219430494413547298156613127860000002475282474764117452004806744986653012252304330005203697050304851714918785743783911631437631509442823578995127885706719875645244245483751488616272438103949693665078277569954516460582602100770032239323122568408345289241663363449364777078551720825960249180289974158225769743707632482011436921717705702006282585398118737754779226258835415928080298530723169133455968502367610620693268222427494222888212501460296827145071875906344958372994800794027122841316734141061567694738729722880774644810416754005933340016094751020197568446261527507958393493268619269431083580504646079626491336730752435761360115413468673201943079628544193248926385581419708548446540180554544624390544756939211289788057974739761031194474416393230198941674405669013348736292838416634119745071336355186306125735030720189133325337801603644082056805274067908782554903394419596100657177620614242065859590654270588667523088890911225622257507820930412161103711914629377678005728994684940999844490319064047304623879049224591780789750605614716377531932470891072247081042644371670257790950283223180280746338605863371767205844440320981052752841519060009433360189188029464214795145043243121310724823856933449169774876808334232904779507342681648126559236985021842206099668303698815356000481704361848730675792654730008273328342158863075538563573304610201811311130438864073274974672411321752027221368064670951754717802662462769254381462056830629871038231302390708134655085318297479798488299302954084604041112965288955473855851220452381799663187756284593022825985534488367472553414573704425755365902469612756838765147910417065928191101829891525614523878389156418460360702832573512591631768379871880690065321278344416046306833087199659410012817317593898771682083156096665222099373231094320989602591919028632171341239884347517305104356005787785365844463943497788615654653279604019900633478828592502354089017881957227147756867431013728313509435189308363703560657069566040540365621511839674406451737000991155160807529997658826323803304127865010312488617560849407858343866959276595469932405665849358913752210841087819564633796525972831872584457164156164705828162137034405692902968792251518110435185901838962694985825615353615376481164993605429408794286200582100591410255432265332205543716499506447767893716715696545174969034321198505793391611379624686923082286586537267881629617932043776275515759547498069030990445359753049181191027284587951427690979679771271532590604368456858724810129073777828271903750663179682902918666089040708820593870304068915789757063373721525568774145232678391465919329780821915852966520556754082278017982662789933268668436953572310035153569631472654872904105443071545484310190864422234659579163090404280809003842994034793991069865075860120724631061292162643221389268676274664914054505492258512768215033516465149977868532274400239295563328600626739598622847719503235685914323821226919757784083742817567830301981901527298461401485851494627590483419500295004583061432464374870081560663125494408205350502753615960447637349708225562779382945201896396427629089416479671435522365675910989977813818622610255334799971894091801193675559656858054010109369494768250703381989125580530173360564711740946767850218282636281282007368501765712320483861875060717277830377038112520004110659196168211127448839320655090000631820443727441703269468391434481458927761439007834843081832589072776769185822554261241438989839528537141721482681465336945941944054394892876975213538679452126994842524338466229658210476616070303679277426886346931738524430224889970291495620041578691938427405095246623541627225169971226575821762017833191539338383412505570611401175354047569802033191828771739305573157873518767826434148702688419725489489789016445162029949514339508089897752347645273091790597014509524338539903882647659845483767321751630754836864132210825760736766831833956313058784441003676284497873529583268300681466241093839366631021146924039306304588883907849784647557482165287978669048901816981416734710754859861511686419294525438149740165462297991999583875630779229260332837992451386603137100767166966811210847098800655279999108485435284327717378280671299484111834968405918044672596139957607776839578149753412126740473492620399407683240829029609005247877455598173880282237323502605546251902451007619010038661993090153230171200706291248834840269161612549526474124773546264295804885367963343827649727163215655341019511467390749206531618355489264723310659020100579889286225049739447448258812196458202102130939515547820172030432800002406606875658451759421768769728765654474638597133021845344195104583660177900670668553624106578148051096861312046815380185944747572086778523331124819609337856202182869532796321320293850352221544239840114848428043348762708088414327742004150087246836520831099787061932520032622396159253009474170422410769960856639245523384808914532340132870884469593478026589623839463313671908152246322042606218180374884762479729750566924140891683505337605969822601281863668012969252539677929388868221283628995231132196525967383915209051630190823766634971932709697856015439568452437074731116485620943397518882833705211833821896654146861182485856160912569061469067426605150428949615276289917598517504138515832037315197409569108875182811018249006040526071943427139568411212590828403838578802901014902844592054285336047178048876064737210413931137807248548039692981699124505779858498654496332395897890281893968650792323814513682160070496517503243021860112395654958107487840247690895740731883719785448570444591081188835077672541354911779444420478924673336800664429755215145866774360673925604354250017901271762898170810892484123676450214960437233415650526261132008127381830644056198683071579455405814380898371817987927431060493311058700756570641511248657154840954423189599792131524177511030385267886394178594207074803323324049427214479136545159362662341067224323274805919290479107916180122094719292407727214294386752227300941494747696258765752927924925724514793826380953113371387970968558623205742543557218877982907931308554371528064259460781801377533676273116340786017520286645762073927867461152139327709416315352575678570375972798498325938651310901023267437396555385233964441730868901404047033942792443895624713931454637317050973082590446304544779023510615778657098178698342443211439263808797415556789623291791623337616116297172311387424735357425201453012800363869668522660546861525829295113904415912005720672256515733783947538789678491998632564284268018571190830750893555767006714941057048235290785808667752585624397681203538953560659227631323202451084871602438453634174075953945067957371264725667213187254024711255166357594992453159693362619993007811199816374918118817323236037795445510170891533355110387849549927934327711241847253109828386232547300807946865210284230732863719664780840582495532685790776265855838967773926851016654025001696741029388754779482231033717535642862217612288229125323248812042034519603079581580312026142172593125960654413637986340874472911376905945633984501712969496410423733294178601130516677539074007560302343081287728684324134236281203550455401663666928378834981759126676241383081521383002336571978321202952712105580157804826458439100831259148978838189650483877662618856894912984977166795890502470270707862621304927612457971623845998941312348317234247695209897509072586576931347669795057912537001146077575773377808048305632466717208763561257525622909301413759469313557674949894490207905739495386800408665594960575313702107835220122815980388610839520260599143843104853922631600641866129280047391534110525144623081655169329024705994844037785473340594087902800746465097746711726647006919919203341696445159843043706818077616099795130253332157341952644239447208147669332222008005389138551739986472794162271956175313653300266467436001879176196631566003016219451507181201493151510089537229582860387968224403266562691423980842519300992155097560869194769520550063963002301059625846279947428083280868081898616647112585106157741281571515968842203974403838131785675404906231736500895382676310069151713507243482468241766591752662799291560232183189869123197215968111349982363815608605645723144282353521018330575746021128529898908095096729709884314261828891532105364862101914754573340584438365074537841995458232020916545827312081265655531902742024314657364076543230486527747271045246086479819819031738939548699795202922617251368532472439737123730070997415879995945069497499944797650909944907488541939198248412328504660543796252956549657355765515146644093873564745880041318563755004494734473174294567630079047697383745813508234899264910419927090724709596483577962509637692573767162284706598810336454850571710238845785159233753414916242067288434623002431711219349138740055987603947149331461162208315888176566628273274112253714168941497593022338923374615648581357746610737771906771583787651980448752331049461071981731294121699975869806901981495881603228955934483758496405547632085916297840641470773308803906669201793107367874491645276400594053780228312996173030804139143553958829761622466941156472153052178902008724835328057221949095639696164923714549250247372803895284610977789270868997681878182407225401388081469141577626521598241096592121166210148809498796672363771242142298651968003251789816513866795791264720227061361626905179454023211031714190837910106189734641826897146176378762282769598917559890289146336390828878760378533629758762416224346464505085043743104958399637585103886445594317989671045688561754427044738064846720739085554360456692739913688757085266234515215519297365687010527458756055638592918942229559291078930048543100024783540924782651151243484708199279138952380600132760732119952675611122565535089093811796096042025229646191162331458110873775308568535303318399432639435638110306511502312992356626319896156329265343928507972418544363578109249289415342775954467929787881389220575314151098882549763192127123754696938220719488489211016161930263182870965798286758599745484828942523744485739171041165704370727511011897133147464991364010111727258788599866051441857473132323907452144442657812825636364171466552548585306601807014721005975464419360776698424101639095219520101780766842270876641488641002441636207182909371159737938949469339416084561342069999044638174296554998297874243099481499235658742904276551894682120067951912984266267731107350866983711074755269372452739527328732890246120688768323530687171035761565660166315931000996397028679331156906455386381695278373318156730145201461108436258249932528177160289693678539153778838355376146731997714046118300434579749205079970660309553316276826536150787881858170602610376646520959743642813098820836185216798610305947506722803209332009875315042243957176027966703660040795818669570994677210004345476748597588720289812865882118981512657295615334109444107157602401454350138221972639437616465870406322278927527568730400756943028601206791920183359379840662056983988050627625597461661762948490144813509391640373145683100023060175060331882817270351983876999095771342908673040109542144762176169613339935725306442373690718859830483814343153148846737072838473074355408657243016981567567759017704186671160027585767275179022203662909980221707038622219593074609983627068903681537968613646691897052628934838233160453017241607091300144032865469017999207415206804405284799694288019446795057813250291183980434393670184500700460382702972158265664793592832037209711678648800239701153657010739574031332772782369193516872900823837308980137834388376334640807108977132846994398617025892259055907737181611426966893116496321578752241515519561188268959002630863546685816178602839444202640113874651702515789947799968130379533654428440612382816506791228582210158578220314005734907724205328290369924976037687862248607499179075259356491209121451972205009720919709293471567619668454364100935252550532121027907576285251894072608985790905641851783947640634757188568269402737239021517624222423481360869252629412753005565307732195725560102131036718646477230613659337243022350627355142144259856236852305264041842646577119882460464783011398473726855543760189247498715417390175098160457960282505589149237681940247612596883086229791167239592622788159554359538771560070425290182141499018281300736931213722726648070162320206071678887886330543940946839838810398019159012036319622580053728081231598988987222006056198143649763550910844978479780451329829190887412134290855760474559850203099986909488751116594865555005966309184357100008768605677710488379518768010687781301688676619526896361179486502724673417306675449642778563984310613882724955446492321046327130816068379548779652543719229873329342022517069153768834045702342235929573612591945035018616176892954371720351521861191944428882164966361979811248770533693861523883411383920699520447243048817349241807207233015361108414442311588085308992343519370287896908137155731138685069596250609961908075660147566288430268259929138393375190120004877972023067180195840016518585393960326631182706550443826369772444397931550379481223437239355164942079895153886222830551420558633544227411273039627459592378076418361438219784454467708550816664044860317589757090848513018469205448299807343996400062276512007014745067341881595014871945997555216488646572556033743717392381284325633178422219444010343617087117294575521136094948788882690679065852858398650220183651837615073129471466593401331593100477088816534358054045894406790380047664752689322681828564877648070392753262190680129974190378848474547716628093232370244454197015316241239445102702607281233047809283444512353998613678878873506913417270610545908489387376007143951160587310363856048651487432316017408788545655573253825460558037990035117361869353384194247954115135618753386371976873255146842276675836108048815137434544101215410685016755986876382283097411984301280569359721553382752547146687854932151312004088461425716923423778816509403611430130803750685926116037767012832656519989608525366566752827949885111785028235223555067551533112203410305580023005225876092828410165079080485281020788073357530077785047511731858492195308244306678584194215852246566121582745348595323770308649862109850696301403932863802010125925303377126262180812908927245807579900384719707624556974642478980515446329258027096814698755275232295541015958729114748721629045269670794326830079656580819031789421101855176224391634851249011895534361383872786611256771016469102557536551439337637595049540524075505165609811393856654096925139260319475484331083206858521881986030841501124428492695495119263721429892330790143833279367471891845896865134357975310166886235120369354499289150950122696735593126506766992741745935973040301307517074266286104067902546650534105817332468069626547130996126278148421682040604531771846250813352280104307363179513740667023901229889175423285136752507662325288897221355007620087972053672464912856327327014348635988193628310345757097589731539885774113221887214989493514315443656284250853553057014720213463547108339295955316645583397784487674456456386876155875721330600125704869428411652743726189830358026245036063048257551617895869938444869638753214456002735290175860057963579141238261241142946239634630162929246355670058970182179860918089443628647106771720152203775522757306234690866831658594189846729430882321801336690818761218114712423927126572321516004207426970757628034256401605520581076575923296928644452531657961433326451245576156880056394234900061999297749651510973724024363127783017182769756487477696303792330889538523156262642893423744720942588160176001366345817599616659720991964147694745408200893888708862518481463421966718925405644347653647579425877061410978607564370449775020330510661866548971473928843093198886822771612983246541648018467667430879935263322212260553146522699663854322270606428152812831041769221749078682039389537986952383464502758942212977125793949953824534784739329360719236488639549115857890142638843823779078195352635312687197327790359103670506781156959638891692093907824965366624946428934109109427784500626930360847166399430457973610409222851345961707805066415894565854740324227731616590653651361462070612886928543826230696818342584335335756947060928892044516983800582182737943323045969555280044168303780033005235178289332950795197043406386338489215886625620668281552562661905105348299278333190624944767317223717087796702091782896971246533295329535150421847659037381805773968794328114293278765893242964859480076810165986746859060824163248107059746678978018421883851940470770780950062475681670808242641218851930891720555230304645208865855537851801364475868770182692102270993385821435369339153124433691609567242284387602241230640346012331237977261697826776116845177089110042720808489369287988441126353626114643024876116246365812330137081722357520258499116680416703107717626171574567212749349225221963196945959636540835950684148452168469503880175497040499455898595556966281124012986163901760484890867459758418778121633183809998390799329777361480196579490451290974607638478137642821517168004713106943902434329391847975151611951480788779433920477444381845575498397263486966315689630041600604374180798925539017682519107764485350561757958754868154501022977438610964920993893578994233549687360453059991462594349987108781501774717867995081005261884571170571214520609278741125039003295715976027436508402032231964024244162989889660224497532639776488811193031122311246722482137018539784215071893644549736011625531916273702949792664152846978909684419946329182485612104764940113766878866184509612934134804703505315014115037554470823628717622322436856273578271882545015892928359135392836836485900953641224253591409304629561693846314913253488393056242084443246643443195011552841622652000724171988744385591030347864577160713922464679663715148566594857810418910854457397880979411195185411936509573478099785129287186828328994326181584291575137587636287253698096477032875415161301987898319798062368683715860803751637382723474622439710987796081955393342488455404264066782532832901994692510469567101436994427183261152194240650448367672965935737819789860551238484967357751773450299054180146883100699169586816315242019835568026563021414882082497767986158580298872674288709482225015721219334869191138999366871321526911044257109676349422095576117375430287293375994385065681453522734840581680061778803565371199103730224296632880804255751738372592398968788330722909500136648078918495827342930002220706348543101337043179768605285979110211628820855859085704829351356856351833655823669987397648709077654417610836712659799569573970501890753356991216346361618573660618959763984964201215186473559207752640006251074779816678532540463448184010330225301421126428531898329678470656267121801555419515651724662583045005736361356221892570931084097180102567161826030877649983547136729464158320225955138468854599705930047043946174465003135036379036279880710933406953302716325035189143644546697461152040072701291478593124151687427630173471917764841660555816927190443472836328404123592163498654317272733679183933910378484764081032804214504832285572921384202057377776328193978662375508155273655299438344763405399068531539600120823333396026855897490441662448722436874119227801005576927002532662490651999603988877796427602458557475835561735074773395752051737158171459040222552522080768636988860343908689630632894278650068806031006137392490016529845715473918537503177950995943119278763299135584519847182779103216903768116244933945948284634635159781873160545900767819327619603980675822164372564166427613652029535618165617150905760104648671456789187106489137047161691027180711146320300684527401338452552579491111757314221655606159142152921212062084020498114018860832453865183066547540319798320476873901733725465329135053078935065763462310331696942619126322739369182735786319311332992278753772846624655535506477630264332158404333085562656288928412777416540800989542597668926829356615249257094776426876767668255013361190883660500255584876983216040144723579389601277415312772464688586645443311719122445291303924988135399234788508537423929232218546851046309896017112635956649049608564731059130234204594414801374698314148116639946062524229275424788266434831306173985657887832241817033979924308005437690130493173180019088353029883994669363223017260974816397799919631387160888556491148360878805277975366318342489703444022632940165646876722446516991416504824193663892167538253367099456881308827376247750940068837152555344936833097010549314400424181078116193514860181823668319646288566595772473876044502261008167657692171964833388631649989245942232174446237680860760471338726079695033940747939132719978516944497515148862906080406964553051046847696773386761182092966502916476786425721282238471705077846767364444794553150335499153656664144463349685784971608667912988362408884120868456830175597734360224621265542840762929837053181553554142466898655422329028451192879235787865008147052024375989928659812631437260633497623507079352241175811160678885689826293151889599309622953512429935999803580936173700509429618266674395848220639408285988173048966271367771505563805540996604918079795188115540653880936605016321352175971518492724651311632574713908764443489173309887484095447123632732134049456533682346448451870971449957827868984414092048690562224355245841298021316760308625665032972423018255742351773113974725826294297980525622663752175677939980436061619715443763431988281209727756021839433917865679417778373969705395853670384085589126689245964280938547080806404050263069528589870744795908197858531922833244470290543450464188487159624540517053448552915511322588360265922501535514977185903892532542723980561190615138079565884474196030633502621300429959753717419549543733051090202042654343335481260597821915109714105939129637157548055570940224573100076977841544692365737694575763695247360167142767128306238514629614873128981331928839737965486935286514513735423695289623083403565419428147713284297896244255590142482004379884688608384427520381420770091183254858782053412976177268890199871668837600401730402473391869347149745732742416881417190307204011133474968144009265314295957826032366839288696610488674883295303457868634263045635037605148227500000950506989528337686205925521775346552869987529610144466021297826792470333816242063179455406510319972193471091051938337715777647225811500753629605430935871294175969473661452518155329075642777004774476342325532932386847478901918589147476366578972313209876102706010678685985905214875241629926824291942540857530615566435456932403265006569978787723421273056573952794509977822256864101486973860872313375092201110671754990085103684314053509810212926042074498945044801657437366716132475494722670704029151943440114247678481101587737008376747584505867788222711945828221531210252034886482300818718019842789918199648645678612937664778210766644618034986606276113651485834908840333080489077135260128498470807249252889715047662179209184148725462671600630831157069193134065657046538771891051497945519112947397171005074111435327378312789755595109780552953477178113866885912863463343460549706136909793355968079615384683589754280891164894381477303139699461547245667248998944678754628865569229566873786457015095318175831190741426205250612028355485655717655041551962495088826552208355891644477868219495742467320004845432292110690136679515081403059959974515913504368286905974794598749656627606647549305221895016206554800262070745593456525099861459914519688520843549124824677836493789655299332934030755503964674214916810656650170961811179492247415392999541927780623954037607305587683111539329407177294441392283109630813627316734540632092035348837910267531469704016522072614170158732358068828986373139494588501733338289227143275535691520011647836603233031332067728897911189689109700817826905094468744430837114482407876444276215534802819643696680209538149099586462480094242117532910263945561218649784518263144858075348860903361105756417901579189902568397170868763294062750453980328304869486807083588787775326978638958219794866927537563707566612577592941504490040561513287763591384814049916655150320303548817622920799915853612493377114760719862138860874567365681793413899847143211551236538308309254239546649422768800550149145940798442735148803642148503658752384695029336433391644922918349555409747582237902493880571800054236953367051643753328103708725280114037248754051093550655978605417357849543196061290946581039165745296473197714265665285747534289991493917267759513329897207425891002045656692626843517042925321626299898158947731744038253117770883772196582512829327798687397619415975445448289936937186767538368024507774239052675864179004572476546451989520600747623418385396510582820149305360745377891825000226975408477378442425511199707755064820568732669978886835086173871548691014622898103892725186336339618587437399149229477029177592403762525897385676801866550294925510802966623712322793813208440431202535689104804226667221840166797258057645640965064015464532868033698376634498589502216091283481731576303536633472564503093257544462605269883566620848471585465234680951223320688374372170118084065897466617436034572657495263610090291694604014862392324755323079469039476460029690653507264997012949578764466674070711977890302795566003411295992112923044189740646261534696709067431088611189676324951009423019050685044933181552634173171569976130574762542224561389239656606558417664565278682620272478696764269290780559250549490585071872925569688633242085446670293864951806013340907113342743010081919130613514750447669226426928538630460241586618018713950784926591138315074537488227735290316151002816462430941135563888646982595776646121275202359716070367540089191992369167013210440564928303447154814775439143150999575491475600070831650966434674531535367657125064232958746890186150741689231234906299694904688410209276444849662325123604052022383033642833407245870729047022655093196706780938888618011157763754533363953611847112246049339675619861580235411637695383382886361101528357760666840177664053294670046000422503888201140967596381565599070731756928974060966763874978812524095903788569980812919972389880740514331834740077050229178516511000799144623407456394879964009482143161842374977030982497603061678787627309173950008366818937520591285676634141542258448922995863806143089770594774001893382642567520651737799457454112458112648887805573215641504503644053589011158552803563154052835077384587139388796007506240100440582230828101577154670798896680596590150037784938082756574451254196736774394658745194639522456266172022951226902015567187881985559447087432705341023968228119145227569608154639338997217570328230388338509598512641406378883177468319478531821745445214997606013457546307236881285918135964317300574817504616741748664158943661077341145546365424960212093615183713024315659043381071157376151773641261119397951087937328625343723695778969154290529157421482893318045938989519023603971682430747597853947610704864966670216229282825576843574511182465184766784314664480831514496417521744588542655487581909179523226039387869720693858970029782033509353444761089813961375243853468454238907052396255373193454545088037930700837063876672064713414483167156791256852643453791277735244871444342275629783502278726348077761800340861792685944394565769274288964946254753507684377825899206598300443442471845390347329067226348268567146905071035931735217364302250434958506331049488116620751366444816329135218846282854162802388655513068044174939972297540482765316338775363780087364919555628158630636871752993160899057115615652569653912485265257292016286541957252276675792798596895824202142867597148070518149719723073028705272426898427736449215081745465255728605049424788636968601171979151781923004596878321357977564801106358344385357587231990649548318449485698553409880135502204764111564233373510656463259486229616182995415180198173051736118674153679486204479595190265461742651134907191630739622814161926030672104127199694611987388664693464690627415001456305905296203974620223601943185689817840017455909588977236548891730509906796525454507197898471494255055892032655153221669786761269107390957121889565665751532606159701337809032433433868107752091726145412125871184985451800128430681250298204077505550837940305193307991465125697932862708211348720660744489336268660451550985985697592959804139186818080427081119955792184019833522000703461870647401719356691290249517077634204408430345457865872056034868928724516231115811222264514122315285557880298689770104010566602544450536977002714135164547901113840836560155318128760361620191708310098898785875375689652376247222016621785957886835403630907534619237531688952730795048337318836593856214581604856170727668912802212025297123840903392219555806913948242409586829545713248285152933814155988520548490094007377932239313655660494155636004451488321645075369449252686337080140880597018624559574788811027737024043508540088934862187008732774874167767035492047557772075862523580698536346054702755161222145316285101601377312968376825452280468012942860925650828531603688525356462055425791733769349315908280662134550826426173699131951442070260309702252222001762298765442075078392695427177349969138354705358858046608131818123909939053058469996470217788464425016060001823235294278408360020371861826117395135967421275484443605122011875027671825900579890053306584138365252765898818135240500096435069581638434241690777344762432704077400901573163369359705678839559811952102008168050428105276709929462105117745625060602565267125911603582763790481266183763497764756067134022678323441695507051554075062838216808371126415649955585569610609457266512109823444842763856583944884141910958627016884137769274699843926386176109768301971757849473958176088403722962006046835610326735646687692532138723431000758119061170496172266491110407222137744918214109991696864070928303384351159847380022740929988001652292687696392153019058324942486978845231611181695806203664789576518749888094848859011118522565906244631953077693623154164342172046081921626596592496965177493971499778391524799496060598912590522970721392590491111862220442082464371076653835062998250067104716561937645342674686106590752604252173533907371541329418435983085463273273618547010091541088944214854162440059730827633456759467824626200411768655694114600284158989531151677871283963385852623438044350391976268792576344514437275132915679214804098921287604079443526969892500852334951481036689566124057235614934957842326688567520815504984433170667595657270754328761409603119001035867313449819189406842396316987978881588173319660017890237111789708949390929938430564049929151772810504042340552344111728861612930137799474152983890769738834727632754066868399908420335871702084532757705393241789640995022586140430220632593088261515727603525538012753983292097373048259551851706237226119582479767351381087249787143091819024677537930758561853717429731638492581853445489995976971613477182785625057283660807533917877877803388650350485285623503070908845186936257172898306991945686279147845791664815124250535520076663599670412211490240951785871561780177462791159660021027338244267392895444458262458235236335305745427114132491415163353870210452266647084099967448171429314439296559399683950338871994809625963407566654282809836061290438059869103418440197159053125708288927438524142542209410994040199104393111164190294540285967583504536958501200562081344301431703330313260683935194274452991342073655131181357703707677593245457889034361748671382107972935169454557810675477897630234827519126817492182713105909371626500192974815986376408022128099451289996605488185208733496348044734549187015239795613059459722298688707265728234188029950024600400469927073881092627249119824187246755467070577653001773957557702970720729475120057456143821082018466084953009608637110932526062724744629126903284761483184042311400926329402831199477491678183767202066459728657503723526610177497333816541594206843636668748759824633054946533901737400929555860508566182315654068120329794829511472823869100949839141535849699674821933080787004386524972327478745273047029844404074775543032826160986981850796917419975914966051470287526398829955298941174830881048540261586557357188464326926132592981885779990495382115898551388614868898120857623502225450651392771171586813793708617968924478637563226358731244459736714184937370172029024591237483914762661003607486101982580243915667844737298043971248123362491921667197624192491848421767015062753714881882318196359651187480478238688820244877682207370497468412329903915643740661501490551623040559860753999975047629404985712156266862839766302972572282859123604931258229508263861731781443707991820946194426683931899413750174488808326767678637215672875183321652309400330395466845351151482803314767227638851735936134476898623453873521210332823101529523041404360026420457001078829861640719778059141761310862281153340431297052131959482544805258405453662059486092973378495975455647363414276771136963572256884341190439393641141097440913216809022291654575185115849052727852213780494360894001432741234550447834723119751560825507963643693967963111067041164419304126954828959704174244642117931421593366131841011192150845433405426478873506134428547719246814966905583836244940355086444297741453106443542158191930568532171368590838441210191141836594484966604282611516479022677558482364101595030073499746868178708423159113695640117828382047665523802921937765287922904138831040540928174815566727106576770705711691366945673702376699411340632558190646213737424806634606684175586565777250392772924071808240653090889880468424400256409000526981581686404096439214154093772205964009954341048101161839060367186005984702390700006147519684456993758796801662796690388245295937118882938899709243114660722305595558686528934109750096912376097232433933277063787781199000063332451214469831901169721657606478779499530004258359775893696625099887225305348130888262323418981738412607574974780519679314083687453434852602447655753042480031088293648750008732611333668824885712774542976857757180051494014274679720746882213888997135750056266881758727813511557067140385438102860234878717833429515357148359203173563619166936401368746727436474203002776865908010582017564077691720493352377363615065695563098215330385706468043014401016651045984869036184827238491849410429663916718215857794137339080886894279884708500520538932447537524891873651346501830888359271071836126111128579820008435245983491874428579060751737234829862649437422170208533088548745738776654189937159557591800364064705152220654303029638666496763491492713538712991630861561872448042597902351477336959982560111708860224464649654962961846594111895495205348382995866062417099661725425873666384693341863574236804087881220830465222998943647565371896664418199801717749369414139186215918480784660232764892450929226087125837447893602493744053574170490277692096946169973173773643629133223913002738595843612448665380021661097203232788870989372127240067921727964717318445605292545195535045182317683925432209823150912793880487884887101400457603187444074758642559667016689666437268176280128161088392617857079183224525934747747172171506606675387449318535290311082614682965167091611776501637711628506766025725490323188479871577238182442100449650023993350626664111020776925527259251513667127920808402433803791261487398346951017120208896360955629917149964372312216200564123829274604315088706631947279067934514449811243809309910568203665160643285541380586756874131152182907749970526979936937217223753960100794399442324270354647208016892998013337307953942944846235261355015026995657143276564874800967229116855027721664786139258318897530659087985931158456763690915234568047929478452898973444063990983832784194892541479237820154586728006771424936420908417121489123388471556897976208260054103538124254530540661818461077224299676637132923362280983895868658073321580262975582368123712712344527366584735944513851412508820715747065829351618009738389049764814631283624477959205506449180337997913218421780523806728321900875953632094491422726335074703312018182421938236999112074067664322198497134415713629777474862805268928484236897153895139710532708039576149527462482841704037404496037102100395662922192752813007959427975070364896222499681774406773496328698034740088976730167075169691903211372924679101032982867247423837328830975502109852544678254064303487984155270246529209390404971591267844230703022851735582002994836087461942275322920722907432027612959739954997979929221422808951869853061392689027995824523153056212949625118452061423126434131411906705319419982261804828122276592281752078134584030940988620812197505404841425915420367808044541322288251262126558628758710076503412097765973017156401118887570429002133766362240400550210476891746570418119271414600448905997390557227590999658748650139761410384659879229284947801945014536744676767912319788082306829015033359346961671790418799627297698637192428091496406114370595865993227002255853464698384511822830461478877669439419560257834301663402477052888841128785016494973688055703014705406667909910677077690824971719399560298498119253644974892056765699997571126568638887509349223922534725412969994778208291983126939987265576553778900065392199606714051670464272019043216781053142261206134771017914025511129567107488832992538441913994627171519537199923532898650734388988715427811088101271868088953111468077481920275122538641951486709774079897190556860078757319376241852906091152594106001151942489693071917941683970785441873839946775026133929551188271594930359464138718555669573881763005016916483359943937498687895648140751084782034356488517948119145092094222602621651078765012350538262523536685194181515857713739145972682668068952921685500143366812089330271533560057054973490803032455148075897871992428289770211513547757394940810300963170459262151348962915621823270225395470068439917974092730057286594519326503753711452491988027914685799603930193898409072888978723144080346851917546802355462970292795652508970774256931197848486024280738005081267619856880543593412526509661627383254529008260427942471067983777348159269670073747017475034376516601054268059177734505971956877549740384933712806407917404935302512869611674019135192643349799238582831331076667473796970095026748662271428172571526250647500017994752318874093344416005860343922058294343052545710440689078193635873578167569109654377712952810581122981177614598065397094674425229188543021835657020034464460900509957095094692321743612561929742319841015294743459741847919275713057485406386545178450206106781290024405740775224462135447902596985378016102136590400123859606063474691822830991334906614184891105771828188966176329559737618839604119317477799194534549068444408628908212070565894203822785029233855642622449755496119852299307793367364166890759567775677377603690392524292079904647012729219482201179947071709748967792863192419171063504203519269041089160138690369934217321408754798269800118261978665328215345755921807428055670407659551348031597191750062492736950023661869897826917347045722178770225604580262788540294256863675700350769066913031134765228809445589008812371875222982774099650529922681631062957912494039861441559516073977662006514313852452055746220274410500382695208890372092380971082031374235498316651265116262069962391448421939956615308882200324182747087112715399555251705120090915472769857872478503634033333158628407280058554256062189703670368358714998731358191643143537847382786462238131363194220119979709411535962222563864961612898747552994597741122438092099823798568377677921511256933137317618407151007588955406063148604679754123526259777992856061987538090663840594289458606276548484884290094616704245871988000279413948699158318320350609048238143861653808212406145260117171863816194413851506215334473739567574457091951922456987346134308666884521198028282380218009210776384496633240945814334230244908423270698544474818980635362203209977450374547199513903122180568536248734254067262658758085725548138927056407172254447120050030981523623262952510431046475005120609116343801752938771392467006093440089554537211965420063580657846892535170188644414506654139891851936576046023366871293805555463216442184522497263082013414567359593572887885537971884734003344927523954822650596430106489242511177456443504408970364641143753879779490416081207973540574505668480875848487133618089384486422627211681961334944186891768413219173699325209117274142732858209282776493277874745191866378773840397211397920648370048701459393502256431012117214399450794333726814127361658734559547894585099757396512212978569902690852394741113821582990833686621781069367234883711234162570307503743168645094603121470929079199131551556083364966549508050697874757214602535566944419660043721145187246265843618351775506499001751689271764079917133327222543680266553513121289580552332809277934435448606423764355133780477612791209303185915317483871227279972237198910787750574022222369600996917925948274250158869870017912280197002411032267879616711398675336650058140403700760945558707431645602878527234144013351759253862605967406179948667550816913129451596058054302738077856318972692652845668395773614075774284784670025420852855250942739514193501885580126568210451581454322836965582407049541984839735209552231861825058572421907372696472569243118026096656856686340584862474110696192384265194724423146802409967459281741979715819440378761691881532045141883262204803219204558946297599660047425382477392930678267175881944701382409628957465070558246780689142123963695117212528822127659126027197921664555357741916255184862599565450289275735533496135290807739736539942830644867307055814105641975278834965751127766026385764225702532106314942091480044949161526521166296756069458209201385093496198546941889407190467076784713862534851412112676996860367820399985029315365609933961008571936189203999419996675928092747197296474057525636087816930815209849537039151132593242502415010018485592704480475672557280972800303312397258022608699914522138390118665293229986100661809327631024993516388968068582465045767747153209769495657549468380194775327922999195944277383773795043445233405514985412711940307352069720896897198886396684307211779546609100697837419299270219951933541533139554584838972735960348298197082478687818288274857513200867048683480575583875437260729749628392317131769187761724719026560383069698772893291975076195477670751645908306047941893520935216113018254830542080131665466996473539354845990704789982724240939976809685250148334747355710165224208839635189589055356984359348551470440288044667951926128709596424459148293184530671564623070262425097861758424777949492365952227172328386349875923489355717840682552758191870995323709012836901647537592759500239279987149428500426304174420945641255099526464969076753740610692452317694713556412329500252204643343335455816612366335659817429321179552215798951456543223944466300133140675103528521902134224330542076128703572438214273085307983495442611052450284432073668245153487708600774142692958785402520025448821983774359831532479226688853914396099874409293145555825246326523167581639686244322279322344270308152918787911273545836637582116539150157266109795213808150710625963809241348768670926609425405260759314803053400595526843196123830487413659363601569141709380417779414593529704855910211005993755952124966226815141744633209602128797409193558746563096807100312016972291389765835767352359146916991924088726516456177819252623082282360819945607030977256942423362177105502298343319421162022017928196111393409076318017647807655694938799009163467785187361911831792659780702202160259940370464080378013349786349214442613089193404892881017612537701238473800689359758719388056572664244671459862595650134780853184705778889722030750650327067539480699813226722526964635580151922665923002313982651163417252979747700298415238442527502976952799980187095463970061834645619671754406794874074460884667823154135490530904089799130921078430359022482227618448191878492459479936448944002361727500068603945743822634572176655277065975527982960947151071887362599669310967877182089808705611331628476153923950553919609586596466631822056002907958052919086974179281535218911378973352200592364174160157190136745110766166848258483242972637401948512435689739265906031177229776900330458548393211765311662245522667228971896855019876268180668068941454942195437720742296792751953108884041594336272929149763519877668088005684064933547872808957213147003234213705713499740135503011375462169668671186710448449296473036905109789637413902311295060270477144660577836836304763547185238212675048192100627142126102780303292411888382809930517691837066871736741716197598497944024082861320697341147107589025187722335015048152412895869229153680760499584037600110766360147193416949201095471884757402173656527915599376932037678639903054077538797380871504545101761618756614386661384134987343767190105840856531677920949013115270465969156447150650815812182497436149353945678858990258987965655471592890320675909674265109059939752035720651181410728389443955322072632519553055255418227865585204291519692138646942926134511620323968671990111369217059893238891258598637682217040569674001461126346461344401495261686076988643330309972494112820649966672992065359903080182793628684778533692673221299995632919133543534051092812938086370097697988463773088188810690971948588023782070850040208929416593394995501932617107482376075708581787024677607575315415698553431707968450514396171282166154512239014414514774345632671771689114347170731802400910325350454675015398709866693491741808234661630854779447151392180357999345555766672061149819185237978872228886483146117721886482802113308066249545145304573114873565396245922521171291008972457115454184171760163760279390452586931912146980931208504047441857896477546063841683936743908771914591624124385259543890713433129166169169527032993657837563185463933389439696344523767415931588960749528102310505466995564947039581153177263636598919201419870883407825062221092257961573457073801875405972017899744066563003497857775510698412518442943352437317874734986825413991294464422695717525003300836232049687423372687924257287995549278333210543972030178945541358136028042821574287954665644259543818510152650865865174972229390000009474742537359784948134795224616737598417547069495805178202088448621621153284043241503490984006414048984940836204503827366063427596973289677567503086847811585350307878618846282272526210331957543590118798594371277325164768946128716065112880548244161876157411104183408130026998573483084531248489114544068813136298356633510098623074174126442363237371907297032187923471380701912223372441007728348140452217313743023822538457600152599244534300000870116742652514400256250641927928696449900936041745186895034660540273547080095262846105250162157737743730778343683559119222181228028212872435682919792388169332563925481487607183584711916552020023473941898014584994601415161253340943053486515122428268246780873829854978293197444845952199488330539146402229316383953233392807455927085658981216482222692285371867294628658701869588939094025296595971686399862458525692619342354516912363788835821769999208772509409031061156562812649948306258063840637460105756694768891798396557541457871119485885735209526194481265073160331965791525545956359050269601313183987776898011826663042213291806331894957818362855483885937919890212677561377021964993208083358429378548906347472304615342678425195254934723614125719198899241019138515290671145599879384126443294553162530589919388418867244563765510391813364192791926604474033090837286481155405951838500208683358537195190528305324870917965189250864812211798473322498741528878771491663642340637468670245413578782471090961107442383746539625578515687633660644048633431932237381273525460150015824156151314653591671307987076740805890511871123823201431339330023909054732930162683770609322696163416778610179681285298813644276905361081165986424858182967374085179583914163045349506317147749901506859334404015493785588549033881876127124147210283230026734496374895366579307412906223823470485502158812117952448888052691577090428805904224771128136342617102361239120731234356746956298233855711525296596740728843007097797721957520552438176088267208722588924619676723537096462970824831871194657979154961073643127822644471206448973104389134238853974508598940193201745738045670711760799985413999679231933348648915948727730657936321698283859390528351983791533641212276225422999676979924634873468151359518817159020759066005516160708423238592940345351689522190344746480487364931853980796189402332021778404709558057970911265136363883757787594719296099042811256819032891119805292858620952560418464198614070884327107491167280104595246357272829005960734460385997171485900207161004530142287253860907870238381873904811065898631418357155986913502711923069752428678977585988389729345467814404829550664272172655431930180545552767728207186670764453841401248297146528453394121681534039434462079879081149357262568851122286511342381259179561051028448069190139920658608143570635574459987977305731095068059365477998267957899970623971725580247212681481630512622449214056511578697590995385047054203045767069096285695484401022296415911632511587709340603429664943992934522322224181016088598588066321519425689289494003756215615538915627816037609881041161868690679724347445899048486492341319735393426375130611752490274335779654064860214266636303356514572099200180882728077905242736072300662520919877634049056646581720765905815941183155791508439707618676500654503624967893897952178142254660229603025182545678781196577014894492187049394925477032734487792295652440200303237839750889588312953278832966517074539590474717692083199815214706970300548959005798055452784547350648285847481918590588985555800296332032651652864893447707827739458170758743118019550160879914274854014870232429004103746689399593881471908473019970338464782190352082662192865421125952243428932966675108053685609966743197590863321484123725366061548365772712402116116393356406336133784301380959269831583009892199509768356502018239293482401630863749792677853445300087098099618341776620168108538578769740850604530824545404268255351287934084211861481821280709022611298414349278231268546781857910932365051911750989078163202165784063100381989224941470668004737543496730928830665957496683632233750190507249526740528627942042102508431297459661464068717690771977746516386747514820230576139087983714963754430742961550353138442019223092340270565980061577990981776893372071406594019519093079435331775754105570846167802879629405221454754636950718582621666178437176648923985877655768886976731452607955808981367874558587710293871804679785800423373596465123253088626696805175059963786231075780868028049771457464224800909772744789655942744209792445950810722225501769694267252017625327536537852154011283181358034449768150718761574912930004577220254856593619205422104073413684654692922547413057597467982389833765030386915827919077888231382442235551026660106467582106256059511331311598613520607519951571622520401744585585727515401762019209057720901116658168312599449686268916809042541360020453837118055459912758848425353169914142386704453765283672148423477961208913803147029439687797914734012765957553747513258364757617473682663175875045560804685832590318861265124962974890285630624139841742700915322998461505612741102103154793571890555721603646778314871497865417065823972684917725595975225905333975944097739541995223621011336752747316841645038417969131383971692747141303110500977835321550065165829675228579765031497593632345771726797804243466682329931297366284176005808383705114901534011301068968088499258834142749587105737742947451542070793619432248151512095025676467029611260264720948765446714600385489250461440495046566412171892997974465469906769734833240170642472562444900390310285909225782915033099634708530762744279073819195283200965395546316371015314924402133061077288533464967502091637980640954769541182214166386657605152284040015881794601701140514340787109991725627084795716357739825249880745970777171372996570786178996688277354814337524443368393545436630553617400546448805183599514813183550904140659356917465605876476032057919132211354398506660565047785231870972056686124102241929574615387074416609609475736326631507772790610944583859439277138263625751470878936130105518730184092970946645127594112116508660453000880459786867834760063087785932607649028573264215559766980935431966440400949172998456664410500458448369847350071155834311681196331504741242681931021464124665788935983049571131169114358644084090245504554624150302289960154973947856093859203826159126886477458371725098294073320102572005076658642537864526539265485271089592118400123901046117674592065728017380647783762277187752851928152415928573964765994566637519637062413048861093667864285757021320266547915118224287673663405090196878867129491266057259287248964610848087049144611180343345765075974981349118507515357466943266912779399017862720503673868599441803152598021153241698027897246921226394110287766349757296296055904539081040770077387843687452874074679229185405698674923283419386138814814319886494891610932047361096426051940070847043870752055267793347345030344517357652468534482771997626669291494148609289851263225735917894340460350490754904456300360062000846658714099897881158805301262834334986913543130704956690050339372432428746778579771173855297883134983500667826233490447631203667901956410297314224421335650427457033978172263513924060377412480184173482520406828058137971072049057844895977889297082367760504848669020738537856766506385185931022568197419557183954564238166602871655818231231630702719837559633094969722640420334419958729892696612980778375463725219978684772345433360091504742993928231468401658878312228883528745879930187749202853152351698885346232221952125635641068837227555351593012401303859610293964278283996741802502189914413764313079194685237723211655656344334135409974514497575646386374847187486296084563841525819791321466387650754794701057290019100764265308090124697199217338835212087066401846320005732132186758051487904629997336614859308394647501105312462010221465076634269427482370725034365849863400151754612680869422214264648622522995310227002195255181584707280290734933969873681296204431212774086204699823387673270493548235718977324500610668059786039192368693881743580347458726023689253154269418783017571030273406368533056890668288868594539429948375893013119509407525126419146284036518424507885779641729537917648977676935688389868574633825890088544611061816255140451391023178989770098915017724791507174489822786594435476248840721269692663395071176073319050566662749022941672757453607575938100027172889663298889451216701164196766441120762911903583205966178254977253187592226603950047166907341917737351193367719754779955897629646326140548370160828805522072788745768608537714564688792426258055649066900815256628346608205852626019347535797887208911764664946983805419455864931288096425254703280331378244765114010027384072200514076150077698064969902714762784360641566302319036093847478233548802585823061487693145381783682354013186196398197534006598213306369601062833472375083251505600034072241047841359281099138306957214919797742145521508212743211507837180546245334952174537590673175644431641398922054495384849122747038419278086422990051755046029466236239000830585432262493333435820376407325653602703931199875709310283676836899758714047129980120512805204812588559054041632790613176906670269158866850228599531408135678209314309067917873259391666973886725107003681202620268410730787231035573379562584937962083368924500716576626054562309488053092658608399634503451405949855964010958055119137320748319071781288416717239873733014359360159246551777040836462841516562788154405017469957762029589091621126637211410605592549805692797154464292617352117695434328342139773894437204243979683337891813516414542965847617249379866791265600713486798948092858481397443136443747943785978265722271898458911366310528929932559773160884869739781527315710936452815018905933258515805357795361341434453514031440713240732565594715729119594641918062758284600930868187334597024829455220746660500287413345965556507862434568996793492810674218116064053727818740797931896039607513581659928277300597586910230856540632829575572148354288775760113909376427169065935353043093288480770428126090472886323082808964841434887285642063001711734727371810717615465832181223834532379251742273713423023115089686132640677481287440057133276199913045554150404365356507631410989888630428670827305995928828707734442740245898626838649435681589638829682412890163408475133945788171755656680335456021735406649729043979236431613802293846561196022609009001377894821565248946483846618214514735647959636838044163560571049596094687495048261915774471106632057621592020713176665153202457572179319245697596640365209363336217508323176312274099764624764730346265629014673085279011547571550961889000835327099709231466804080504237981112975849769677738682545247751916566277373952474607081043879113762577050164447415153713984836905020484665714636921143527861433599658096515214979145678467558137372340287856111185661500494350249520010602899817361107026857798189015692172899304194009881048058183724049044754894422683961324626538900043570048772403213175009035136993037762475231024711847898657926829374915920325032836369290223158559598730318403867019299860254492747983939175546333194934502328621164391672674130573357085179668594037598737663480107888656472250595233996364060697427997637672131183020478642417575900591340005502587346921670093172394262259306611255537767258867300072722037096805741394525333746819495334931664548085687151582045579688996664781920140808701741301406504023848162290380591385885316204863732460160563833574855117275178905167306978816650909985935670767501596286937670425857679518169784821710943545909213768268807231433355089004453826712233219534806972947619526527613178544728775420811165621613755150502266789317912722849768760072219527927108611959979252210981223291868206806724052986146185335076189376620002111056646084189670718712203514053327288799934616311482398623176718946549064230464141259596051344257181448849860093649918282585813801018052566164873702214379472183634073666881194911698564050745637202184178305114432247115505149149848702872651880820816970740475503844951364076099841479030953645015122119435910982776471349007412815965189407471889913193794865205813383706835141444480599195840875173799060832885654722025549737960560276676755598386415296163718855084650331782911670312433833207395248682183788819275494355245792715335544341578893239755833729114500788045292479250418763414869048035753311293127548309985909147739044118194053969242486984657280495241775813689452518118671255131947036607429759287589658269809950345855169819027176092858798997893033393871422801927597273033337329018648544120584715010587743918534038718380254368179648132692960717962531806664937063875380075836697690295108725332206520563358232126893769906450807559925872606761658463923941928684664772186785711992590773420350944212548861443389920062105343210323782955049553061390079579369313479873544697251250383350358990997094655681419503296363204552791871361300760806237428458184657734974102290364158611098391264305948882165442410642880460632236896295983517833875861643238022003547649769985992315106909412017977347481015290751080447839707936069450247255755733790605391152203450313735447666728228613713436468004770338672461509540684283326059889451556864158717978679006873009634450281661078648151069785170333043863489266670935144180091962996555494811969906392522677507844645592322601111040047606051451881712144024035033917473013308488403950511153556003257648689493144779840096144921518680519819532574254654663421287469466375698606848553659743153563269920106305229970347803546059848431111472705792677135714368493279506945502104272461800576857171465204978268818470018939716102139287800842443887913374634892652945412841076184053606765408361429430493163640697352684090883430549125340295597058954410314086799664045722612777767461636102390563527256479026664967843535536293318656724448077752790031393864938551408651581031981564289641628528798403574910674461601332348214275846418574521648859982362046475969297267909946190550478270567730708421555917476971058044560244831446481283306273122448944649680195602856932091487632801544525161827493981703133432618074254834798292575862943928161492805596728802823387131681350268446360239916631031387127591990876261894590716820821482414004965229386006041101332042936949558868885154534979917891801377976258508262911516642993208686676732094049165350877589820027142231263976949852048844593246423694061363367366213592004805584220106099756268266300559852309940725356452354019948744971018515243054775714502215831214478145561943720484458930126348171956281267581410385156793241257027304280017006441170474949898430067284213392888468174294088013015764483245400547223032911037237291101350072346177325712626700550806659650118841116700376031027031149332654150060187668881546733289890149934634640255918884971280510607981509015340019188685022952568802566900009782912897756711816758990766916721501387842420173952693617349915214214954330915596926194739299586492994897000857923246161505871313566601157434520289931224089476771459622781415002961126123807799986908924677614488109172729750205094867288319289981166567948273782132934594005999385854636528350190701926624926652111276917352919058119039116175301196688099488262709902262349380222708557482962835172151640735118151290126756521292790930969467601125010256026397532788007682514264100506454464849205177623667952023747996330776652497979745966833282314545357747159173621825278320479105066416152371366545203229823203127030099351558182457360712480444756563046530203044929572906329352844815584020219121466650116442761522098623756047785278254255465716356698512879970264759613178006999157402250443382691518925564445615986521425707377117093014146368342516702399737305334661024516622886679468739832250821667084346846627933927366443130568792568355100238322930477543680148016366036887501455373241550597398713255941557131764992910818260261008368705230906451476853303893788819170318499236251349589337472490985308487628276596180301946913795454664753218411530597124651721386590898937319699236783296064852772189584101295870159210314282093396854642211841553239684051159567259704023388192233179686432102433294711588372456797158126394845049107084823412786701536499766066571447102433929215396817391574059445459996722771442497593745898024705203040498148359197521135008681485820199553783897253310631857258662796995554452832067102361206202522941464278192398543483864896063424375811526037031660597324993196867367882423691814952058716225737634411415887016331041359078044144471877099165593680304556637077196683672599998568971973549866913514402114812958365596912487923328984434785144495621166736910591278353175644926750303229059654245037446273270339839303235268564751775649752194478227238730666835883420108669010677400874872571974799111829408407489063192286513063156132499232365548829793361404089472852689380572974646773146196512539634662919603999739157001125818396630913909361477523944732516254397261707881715885813916782643546397465555780356444774313439605072478572865474628363243075466119196064307153191021347599725211140459602186412384107662939141116969447814971180727997906916994623393631035332746595703174632190239989759471002400326474728056042958190382764198936899694840850322141198408912002728555154683024614512294303285450759926386457614427349995361552862121060025681049248255807085831410196015604178412994228955401424357369942007371050146728781611265097480158821560365077135552859492662660577846457957299210656809224089682960838067074100606400916560598491935957877113417883029996602645261175545104543971818131680953285554563682373511456538783565409665073481025464602342177655293021929053261007473845675285062049456147785454466064376978669860216174312811658370521719749681212175808140790146093031213250019409975015298061843225145123148279124812976632668340738571525941605585263010901706924137427836508701768731139666886992044861670308342903896743912502803912363150474143752454295697434829788320269442151842291813828832263889426787737243438838407815045201233345255987154512397910746667580082331500507653262510772267659042963977605832562005115377497157100911866505138085618862943813961146433627664818465975947730491240349872853219214492627531201539145666583701751143598641906889237117579215747626439256853314509523256332724321791838328921357985348306028211391201089374276131293932513847032416963808909593823966959027066042608910318661509810361898973144350715359363551963578152917493097159935982982511179510072329928441226926045765347845575659304555702350304769716159631512781614651903117275503947881912049411001295933849120902454094712660293491593336325617196633541663271379145498304725456285775111081524647266831431690269787924634972022083424289469887756723632806232123683357128791040282264451024050112062452985575308536798852663091475285295193171761115094311853209100609301357158207742261051720458310669395262886646172127091464894768737835709154594261820583987410821677878791091583897292124041821137384885808143687933791082643635723652664977661772276524816532505324828196165427328702975427455566276145853233317041010798512308241287952789423735724005294143161805362554952750047174385687056399918742372274683852813756087060277663907882730615441330362175603976358471197306410456896901569624933563824047558973921908350235679398280580560152900402975047324629350334013180930350216340052425046380878409519107704507601732712671083689369235194279074450357100886258998595024302693949860552535786952374419066397844833652137339847645984339634805401356442892119802657566449266413706480875872598265479292074144104859561327239155732865359551157253566559531638212515102034586973262135933471928811189844375660937893767891291135018562010136784481540393128386501449339514939962082708999353298421952719741320765086719881340006961566143410878475456210034518997137250247323657341029201722926575834771487224568269691797175568583143810305113735127436200329782651044227819840940756671839033802114469531066222818091929978758922798875339955076157204142911915611502275907082918353956082287887066585952078291143411392313202851548245272390781796526520961752005553467054798197615868376877963962743349398588686802114445520064280777633473050704903582161703113799627941598759410857300740144974127677343917804734900598899430562701120226349529656549018026320652630743758128513158149532167836160202101346883775035197300591100725229796677126582649384415263918183553836097675207385703202206704800460405167251451528278812826761534327907453441695758082599249631698228470973070837477031012511846418775066115026628322620722243003292676775522010276762254805940219588562972811225349040993691767143142813638837723931612422509356364369198867163006590879913729692037869689622426853881938456766184960005033934409707526728892408720774582551580164918685227896112847154860219196592916443996537335575666201323588365796694336154782024373628588982567849735837400849383780971814028725301751896320594775412591734650548396239618790601442593283287232233501008017407952877338287124998028491082685853591780031524542582627027562025676282691135311061274554856935533445252340939866933143758615558230956936117545492695706026452036721743231359323077618827625159504027196163837311938662481918234506463286148295077532034031222612362919305304414119928522006572365530198584495274438833018284003070677935009961761301871520718858449077530789229723005043369267436364481651480773053469826630949755671179864752089964573429327386405977089748717181136482682214464599760957730555932954138400413627173974544119776171505023508994263811468027040308176688133498445627103857079416553228833607836313536367273311909771446015368282417722952117248956583283803647287624111176229289649057596327714256123496466592882754393394304932187007155191893630084733839776064867931586088082602423411364145240106569313123424115109895355065965350899271964220724413459447485701507878238919349859942868797758948085081218518831659238990525983942129673423402235587878478637583349060812221808577305814935443827886885288222370599057921206132239877311486979995262836622945927829824500013333692858225262770387924273425453786520301905987640033526769470672185988514595108818807978481113793319883841828087131388278361447901978884877545697209111343463497119415501128217565892123774862564086299650867641121029412213896429101723757577184929985516823177316561117398481925252477485429512067818969008879828388817119512531303529745888463581260851765231005654942139114424026394313928635190661995139237709747510834669230777336845056325747515677564542864904773999791279620985571065734549459064608100818461748024739151328166045546172503138830315419462202601133888634593119716112212725082375568308812543332982258995754949912689684659585279316500796065714344880077697164575090078696831570935198411429363871860581446271205506749142314446394561881586225558671965922021659189246240972557615470539107637449653682910582108944332607724011896656094956542080909697862221961922150500052131576702220805308416679226165246436747629097858804099069977055812310199184437019319158391846402384215372181052330180251154818089080870965333239278702611951992942181217221340203845065656712755520367651868815409067580267388431076171836356505121749927101068986722967744978216129750332736498410901250544923498936605136524138301894920455613544928310436726741973944538533130266787375111851253694474052238049072715654238899617408953599191947208873063362604962285415124537237824196739002552132483146257714946315521207421188906856218723109019450015920668867264546092531815033505504309473568634244130453871659684537566121665532671590620546333765668340718899635973477093564532098580251330440356354719594902175094057856295781423423615687182390138213036638006546751976865247924026444697711123558948979368818753670149974609901671116107338149604941241868171652671091758582828574213828151783671395158574781061100126861707379934004832098990911730698012586262065773096737924467009727113201105912237070919648879360068520745650535061014692234765247696863507855376247067659916454127725122063343882753142139630428846044185041763508088497499566265617525592402050487029945776217758005551955355807153901875158423227604088151005024548720079699675260549332884268213514282196563292523113455917166655283469160067632851551593557885058492700556284340747792023878481209142501030174720050207366293175077091061816302956798286259643121907872200051374395239594108000474417672717829927510206778612015857804124828895590302405210921386047273022612704347062805392785065700531137501960358119967567194198828104156456590435517896319071152811447103028731560538836374440411786504821494066051052094038043943279217343420884203323890200230255495588887027012173731468109331435170329286093946893542265918525295797184656039046258429399066469862979888487368661407018704985922591781560272273289988004562939127127601420237996707357941075491863812622993620578825345052152396248998824718396482333307092906764954826425995123048753691393844150117253918593757969382691155075757735588617349430612021663756536369415864543553760197594959885808861098389875826319093964419875610330101280143159136020593810250417869326220278832068148380157485945047029921000162860120697134372819450689471362035334233289081525860956559491513349712263041181807210262853735759505003034685856329311315019780807572987032144417516117203885193253782092852749356948272356248748518964566751858464102631804115855880154390071293706783003568205073209159751911741122491063042961956729130765323188922427620399314196122165418288332743841125313479269808984899717725565332045617858818889222981126648733851027533574555615097698574353233647887900834489058532570138097015019759838489476720262259646575348036164850198457527245242620032058807819572705302238225022911748488596973080493353720961103721350964010150377649684888619163448001582946594999551938160931735787726943931586503372545052585195510243972591486311764081993661948054105383938750113205846265193739275263884104125883140914163118045757936615591498402735521025431918880501234753265656393296187092740958520523019715710718325805562706834150569724531970921680712143282132916051426485390914336123654316133561115956819421019848188848442729647784514499492196602141294700124509133289675933872885419973466359209240971618758797922020060685786116322279666993991439105650991683728105502432610360554472972670316380960487652514757929536984660495871146358790103348581113884887569473006458151946326887553251912878623773973823675777914337699673605538361154263015342480947828470961311797358613813283632978155929874322083299948377076818480470313976151043167315381102179625877232673952933908897592210232153166729784663864097158097689448932732622430080092431457780819270311852824519734366827593908895131880461857659298671068387189108050264623026276619241092121104885415577887583690973976089173916625457217938273086006095834611533005487023002641389463147796525074880262327492114740137843232538474369323959879991831547066358137364647459337128878473959025563174749722442192213493465538836803509032691854659966703297322427415869436602479843883799287800038594982521893588396086900565363736912374588794800626341264451873094452584169564022357426713569423728852051704453154026137320503249071979542853576992594576923807451618243191255280542150602049403600391489065697124290628129719473326032437910552315319788397148842501488892921109477291719598948774667284072544094231017584891747007414973311918384211850974228007876557405451446878728754300673082252406748547331122408722428901041417615824115483385835615996477596554405935237393804527043198725059078416736776924664007474593378763334068312379475192385220221014144197018735718893575409219776099910482641055289636259893084834090846495819292218385129275153271607974640103157152180881207974562457671298486821667918782634516533885745819605781133027922897037926495970185971826880743456924789790710017155706775197894225558026507719306340266156495564443077311228025853721972542151557402251753333167601805945616531106086136738999281146968783194446859935322209255896906174841574371444302743754079254776234999336792057230022833404682848098686166735495573170747658529773675719775667270576420301411414939053454184952933607465873372726911521842351865194359410912565058772974877095037279683792415520804453447357685874074032211101408887856620052558767711550815800682936004953132943118161630844285698128531110089972277957880721302940553603415599823587596769071094050021436861948843035282065135950543561100567832313861907682459638990513084585941194922950865319465051904601753389591756170111123774507393912133812964797507616387670981781918564870955258932299480354694715844255059861649061548208470394443881704999639535899075940259988409089340315237045378082729716540888486495927223905991770803516862584873808113453388621128149959748884991551448710729148763661045269645684744733223393055118519169814624658875711484933459401039344262059520986937821229700819574589856183118241313538861169815660642394905140363846173672963585130389043040542405049194550560822496094963228859785495617429314206455021929768570390442115671909061095514285773784925818353290744427812343792464820629322227495426732115074226613276717699105580198911930650719813184939889369983872866331283573422859509758326939903215416708553981177049857043690483125163648681105813913118418011582044447829510454495158008674265760887682419336162775141280754462635264590620664081725336702007641444273520418248879743810936306580743489764861297215980537241101776354830891134507720374261635157264345409785078275499511286225213449195287914641388311005465237756985588303983662934806635805428030863602626861853883374818294344326241057557382619532706451721527196649734709390881506393495796551082505955017251281878989930000713896627744920125595480875564311668047489206506979658044191797316614218723463393387287252536713096113767497515418324566439875959977334293560324374746177709560317157218830585077432284428193515183733484839380660590651525364743940100597093242221907332771379000115389605863414804356356058239700452586351300170657810577070429933756190024195218314315135446374984954558337546401386873821951152439555974706672169493288176396578334832215267583729418782907020965141344289519056801823836777639582209858002107794974656916995456774229949832926267116403794966481750600923775960276531542529308752698572928379432212607331779931774466760662096310867485434322772575462949564713283274523773935410506210433116034268165825855336542772454730280299770219545291312262008223206463206556407230397965436224658879813551733393629216661860743417031190543145468464292241426982761944762762217478623294146398834544629672772552619805378767795756300838739619022997154903906077583486777355839057234835129500911629272223833316831182563219379458016254605907731548949409859150143868846101855825846692247565139708340537795141631271390158147563387608439339504952866570194169255644603015294165146209858000492388935636734799924304659550295698425681521386042861886298695209457099416243431291348253966978391443262224979775486832368298641575397045692613393585093229682517343427113400607010389110850536741353132013023620759416599557596703066279925268430801654420509713610708970188435342796355362307688403553764626748826918640095927109573508702325300987538503835255359476983106354264033223259641166014505227070179172651857461530000310090612803356165617108989732655114059596347001037931656514721644305891427793869759066738727866581771819097702608861525236648444528202121519618788786807652946623162348049740215683190917096808670671237599803560227767939100173675528804374649609103168879890703121328731357890439694632922339832509586838511015998633506527631221007016405840613778996437438076869543166591720526624257304305388715489057629526477008718085723416806184455377074562914254542136518175949910568343200390466496417940213152757702659449217027058968656048302363881091068566521295844525132502265156088364420642288612853119208977119878625095658280545484252391766037699527744927850239395920933073776382974219170104608666664697914896501524448124922597305771488068514147889870739952888028930661366091317174267717852089064861977987239029751153328196846963790788784603542835315617456225838869233712327827104361871762885900623877287860412582080056168664687194891476160679902137949505812121647439672646344754911390227750144178877023229321119427373868297699010442792011897442070989955066332130370808162615949482246982068202872796927097170239366470432333061972343350714238882481745784568377829785237766820707157322703738003058009343415008072847182109521107245198157332414432608026343168171297173703282941797063925798047494486686213610098657538796988004848033265713403559462027534664031049382996201292554487636732550737224388628681171775926950986355111389553519711482571779603333972909186658592188603101781771338489970056584024959723815515799377369398127916191228140284444174660812722126610293608918285157832786231248956222143418882373938098854102633403779045680589335442979162111560084649593381818075571561268907438182804295688704879812057637002388443871898755176292928446126128522088374849639686552350836029531481387980132290764269664552128724164154785497687123621390454473627455184910789174001041492842455142525049486333978568582318711744774581823786413470968351159291581776794573952464222140918700875495640718054075632207997591592431418349122704901625139394132693438808302402689420536718272123777732017134209472872399585240808180628976980404615685739388032286420408743178227647729388554434857576513018926533274844596485096495773382474205322502135220158535953201297020898832635969044303746867016512047900232645377827364325861977134592171876450716981049972490973800647751484069202331891935829314711272190351580493434126166511087837010763478045680592488507880291534089437201812515176999813841094503613037302763466196085569305779028649013195945202464589721744138307504974601847316606662343590775468206386561618863330579135569198940666879717136466288177714451628738632539613497959513743710508225424350515196029118807932467001525895841765346054440078005221674386274600889367746815249022206933879188593188794102138086410652140189176516505996399601334183537932610743223626378927676056883363430302985602487667440215598197393638866126495740583738735725519638290629466520016115298250065322481783099047505067417171027238569452317640473731261294571522183598819301853433800817162935307139057183827870184354825328042990894023120697269732391720152482793906319918716349261751229642131300821140470977673823688088770391742304324467220738280912911800097013281954825130612016267619289575945726708126847473730573080626461186533739191242531886387309115255258510948063263359413298146799412820216143754258587424030734227835939225523918651825565525778230967594774899430460356244689193537775531606600792481196710761108895178646352313214140342474600759504217124973920864198675953369297338733574466440856052873603474421533037211981327911788788730154841416874638674562861785894554569709303932031840323788938061693746043117356487029592232195832661402056265964024805502248821684091021297547845870782663801695534182194835960434169072606569736968206426648600869498153592269758480128124222840803961540564934974893708882939300368039949287772174989951403755418470029864489325172875956262705405056717857709162961659555598928831400753925666538843205033446601044582460541264856194762443221344715046538740020063337238575495434017723390003617520733217244109799434812602065265322665953493872918220854638944609449565546444158168580655643941859804247422523685111314630230263030592685736125194645105875715225529871575125638006821498875425561410100003883033533043232496558236862985571193163736482422493506657435027155764887999508727528807313800912383339224413832578207016031957738905598380998420323412578508787136508537356683049561600343531437695574801998633286707895359123575630320348744077633471119174425486223639858652248026786576503008422700697508306473000859654518828960580885584199951422609537764920769073379685209247765085277344587594627589671241986320583056903595144647232981993611866402787127143220223393818664009323633605769371168441359741706783787095910125603311653111915164626764474914577276913001820470657348512463422631611077205319374340397229997823367133726329359491680375669385144596318526386294873978874782053188715108446903897493352687060837897228175848769472160472109313608635445157904243971988836962776284210620313736042970817271589409415402195731873886170921672367193621670780864600915547224470962457470659496780674347086259143652748372451547898077990317354836725220226593236686972343363001341245198021103974073961836157806191641672816307517516283775829421108641216670799542997842905741498136685757782689377731283876656197922785668760612754030886285782955831195768566580905209087467703242932405313848695903266069502628727511875432640394776694565955532770211342399568514472468247842777552220630911165036028049315756919577251742119913514835974655687776862562597363023138890762184399771934614598081641117627804581804890866109539828875237163858123022089929784291065345791319176934605770182713306794105222132363006799473327437573716427813839648328316255373647178008969597669174171155597251277484239809172528822421666498013855948032004688419149417996899770424654674311587114329078598013059129983535929361920406728534221087134355792904885610571007625588032304860280849027131192294106022833455587358026587126173288856666821085280781832070832672731741985703906631328640336671769041260204178993613897700838306560139560883428715250935469112155500162051600007957290846742281823715688584510336704828973578018420510729411427983571354164059176438154003208205154449411448411521641144729780463756658851672259014936152143338519845863151696970369919080535274460832240394770051910794150602745031172036059961022435295861971514674700445630292323854277337227888299600876595841725311026973407525111128228639945130679422336008038603550863030053262739958802834860367969651200029935966015095730319194174335705114262964420520439855272170380550521927476962508869555632927548965155536578027499640870028409372414606817270994563546601317140888532314785231390706250412064539111735131110588672509709146525028003785049917532040867542769049412886391197533167262498194801834922236587123398474536069412537740786344307808600071845014430511206510256818377949844591058735396820476689496357133339993163700406908413423712475542254159674112449577205813595605153918125900742791914278197262416058244963675527964137855820011579985719421587891993905253619932918093802902132409208732002404783225461759302583925590210070028018701729366040005753805824835304582838553605501472524687061284888107905726038063504307112189080881246865950702861361281638336319012098919411123062874249563848846332760831352224723812497174136075917729394791396303118804088146524775608148391942307421035693251493112723528628822862250687872339164514346056017064889189681440175393997328066334716220614818477007287691521906996056937662098584354055399449731068524907043579400285239828028792095896137052042752446864914017430565470436010138201544292360644789486495568016451772228366160763126710312654230155333995841718976599555151654928609986031272601942076339058700629460324921552790449399844431230606127724544312013275320095896484267796663536106346890605194843861633437657143848997189808051506946111025461639715917699564882690884403429965324969413046671863228184865368703840058860327373748185093613740116633637064445460107408454040417613910336725748389506018162050538832872701232165347847750595386165471834462347423467249405235237921103237929076264740400835246763189888171928479897740701674541328445211948694045648702413180840770203878275365312635634362201335391766528710319918419020048643883492743149328087683886167538005653507281534934165037134468170109231751064811868282614699078791870829428059972500161958844412619081539880254626268786872870128847720589925818771448504185833357617134935613765192685563152054645134983231919002348646846155607075789963154661278273694642053589124042340606609387879658856244591362552470262153147538511247332624864387590188528541696317737149409554846230732908164049547434120798189660116985054353848807868515733281557346697696338996494295440474542705285477055841912669052934720340623885265619733035465042549476644007649078595653385011708163993382706609496704657192538904798644393036414934871332477896949367757820469228700818788654674384577994180290583335739914264992991854211199611197471441966241438352758166174246204224424616366636167210525714628182418111825493027722343642422125907088920883971198233750432894839350762646183261405483471978103317506848319190524488228295965359959920766971792041607512708095062561132424859852395319693331313456982498137105988112438404420078457892058729142141411683509779465000761876938514572709183013230551095166626351219062017053732622771841395220156871768469894195292903073746853662173634859513782584532642019214043882203555706355314059302385991803359686813376193237577205830942780434199619540590831722899961029478399022244980655506447047649466350154440191304197024338626464341503605960532592919912406465213140534535940883625736502166169397268215778819014323564435701315745073703220902766259332525037382300803019487915347487109172959293246986925044789769604558774698273324798598355459969159329776626596110030111505518019729370281832353426024829224342493227305483949124553265628146485416796985016040162994714033757007198116966026040953302438354757076836028609685214135679058942870155225819275205005545835997123042937018174876721716212405146509036066526817360333233684149666932076384207018200532670281808865819619094243688603447874860359168537873010727591961197824601483639896843992158322980373389838300727317414419593330745011483897399834816227971172711520225489239281812756072679445682801338202932612488106925027720314201983715804517979685935148135288358579873907255833437083944599774732223230319753169364336077610682224002943877713993408548529271122411716549659562051509649887226928222268454892554860665492354432049306233022387681306826737639347717652890137158896215307021565999421482403868025530559138833674794917076449273519143380342365332616637778047046243150810917752604406271633855828682493525650039690566966090856195874234529291679780975020428225338613136918111937867765542509759978755988283038160852705732856422637970257382556146058505981062709720520939795223155414843363969525153136046702905029929655232589237829885730190252153058524473805753695264086780783391716940845217978609528728637966612660959682457795324139488963721425600076498465885464480251322154619754198482527742875235112765053504471044987028512368825641230755010154085980765452351858693720997400218719641405316141129834052402170940994359048470278915759351675006705568461131175006070809517037747334315894894713838807354578410787031494097144955016097119205880446975607219983023843660993063508192446106324881073429737386866036760514100306217544911824160040832480294377383723200918647549303691947994810622674225675172901179989750008963291031996554668969493146611852948444657487076954447447873245457558730160766811987855846448554143448295142647570011065673202104422181953007999925502051874184088024164300284384923758979126281379024506740119554769917217638892849477656632300580650869195162050370636221392282632535024740009350277631183170647905271932180609603482479391119086795880547681799420387933224785486988529548708871239900774804918020406922653331851945538475137899516423185839145716458705892378163926803644490734173313982696911673247790413742036120326378249113034620796029768163371882865806965472559903814571986718922397240630250980089187529099675881149611823405793677375984207402862221113288415396929213972862004832400883508857032247908014976152193839682484920555302710740229908361908992141858737935497259721961760374251282973088901726201312761612068116061808505890296815349864008282751580595515886775312960706729145410091360271836933065686510056967075533299441303351905038554481620600790798234506052039155841583012158166783549529089901726098702745149803662877323072235263751776140812851068864742337773470746460424279844618367526627753217873646597094649884129187433098443038620291481311971045023451815304758255030700200741827538865416685094153726841508487766451266619737976737846851343547379394953863617144643934986522482163413305004325220340976256636413627565950086301070209400713588241560620429182956101377580851114690927303267579227818472907386914999559182015058426198897430106671801037046948641409269690798906254149670425109744258178717614003375225253750274233431487361168304132735448128691111091044531227472573964421500748379112581538424638283640236355142029491975569237207646988756858187918154171523323280013329597319136875936263282717416577131228306776694369338606278168190328297623577708165009525819720022729342819650862314816010024294986106071649318299397581973518178530491769448242173065343036240404491362130467558099841861555570020537997011763148775567341583974749422599628945620913060877570468463430662813198069905412158174067880696496121188114956401629020051292946234481604724317939098885800566905978161914054553381751943773614731051794545953518013568368744435790643950004018576172965928576023462416501326834894879305845157612643314143801151623992628821269873766459659853030606854527030058000774168269656165923711299711391621049039596072277151766680362385489062642167064047126639484027050240440017574315312793056108491500598075315700599503804121606851808698553618454539978994298488231692499333261256750381123940599727645701557113894722654704858406160015216028242312482265416747608869445293176783544068291998180823688493273091435780914061393787901310771939663979685386490645208738526837511125658647516226038971744061039567483944076767691560009257737525844932987998300278299531191452091492684182395998064620417246218495865623454312546182921157457414115587828257806236291082041185103912629603652958293485622663991412654103581728674579701900240322222547666332264053330313393407029757973039495640202052759094896258656818800162912949586820197088291654283693569417549081624791210689852660559451530876528166061273002017209240663897994496739301553030781653020025176994140839512374959275881714947857900853507916933197160046152652379433144993211187504821640701618100727663658074556136913667349185916317482679203024685814209852120249703407883286615522836837189871640529524292961195331123668331709706945466241933041967726220976764550705914201937155508090611486712724769479512120619486361340183925295690058124285721972238341363749711637241940860644306615220303704164189096859286957870209400518632409363862142973649108456677881594329318359029763361463672337959969581147411216775914102139910104133615939185337444852019008274199695766963125174209987994818397438655543962121836797373699993359111576082940026259107443093844459827023497340252493059457090236506452124434416535661084220668012094843979170622777485798476690522252053984662305523799752125576276341239495705376562862272824623627964362914749956125814103019086551189775926505047515810393921872670355944736755873698969232458305558199090103681621760465911946821810704171606994830350431276926382025246144758143850270389881474701878031478040031320838476648858653661848224876209619235790440022738763469973011003726384642330288025646154741206142904386069941867624917702116066484788129634494136872133250064264749696493406890437988618195633663836816645270199508593943568578487749264187935488236449978889563885684763288448512998812742713646528210856124362475707726359556291974988347838810921353574220745536565303027498680898353569394350454436141676291597481731502564892642953789147250400047440638702214970524604926851935351328203391064326547055994569745358573827555833613297272702049776229031823596749046439555888089813701228641353149004562469587749032724906576695954429418010847366257717935836638509078637790397750632747064411191559002360908572657683788968981419855484966032016884947742892549382601820280650208523591827818258318365306386526576226314495855857361875231478199415521820426655983871221879176981610891742552542240424562175978998717216134084918519555951995447015307093919812575813547749032889448443823955158737226531845955379938408707567841618144936623146065555519898820683114936199195499133425279752804108075509269873405370170830162686502355053472885276190693506554825343828594112470445929048176206207645631734774805166484502283339213035073673869455250106620940223168078000495416552197029790602794772984726169269221652373694724389265349707712421611592278290309300002609100429913491460233445927390885453825082667910886847132964500238695576410713983192154483826397803377421962490495733415211303084987063496128599560730090377172951400518273998518729362970889061390057192256167304720896506775770064220863971385654367120299897839875286414798361792473831783051131704261330109214680800991161031717299548441124287279647616272749000854164422701787195062023747756564379282822626280032833014002255906248181598174872593856403798945180334071733546115507170717231238290765590688193431548003636208182111114456080108093866139498768003728827507827697204823722514801239233983204551497204692808431459387254912343920011288367673406598385766990961190054462761271554083103604077046699018893247541333052643958977755251707768446371651164670144324840475712231388080873016288031618091743436746609729276701469973923535604566044881218791868429697695912426528474022517597156435982917353379272926806862545038918167931567235156832639835954522296303028936440886565474000096704399409550772564590795591844691090051715625122886358753759321636400527890670591703253392796966775742964949900092693443496144181064997728700650449429716274342919291734251499253873177863494039110570076006227632704791101505670527047989037106993527560705442155676288903094987381092673507852359611674496757345119411766571149879529321810558333325667920533172180833119994549085705633084303139262191281353710956254776296085636068946480128815304194515992360742476381875370030648149214462154436134208122187767925647490635589223016172250519101971792244493586953648262089586231319565946235443407832900936799968793610550820777386792206043298554623872241239286230602435969227567669195503848335246995482238574343288453708103929269262022535240834197799486995918804639848970490676479844448483149037757000495945863387740522539808184545653402150828684794080398298985162025707723550570120220723019864364434725629007428213701705752559411414216640736334940364038239817936717381072027928529934084201169493762843280336859196079433025169706717308970813481832192344566609151154043203299454422366171317277360438348940070005791905423667265923119697423563648910366140856043391469563744929806157240194146397347433799135258454679428949039390588248606475757264730375364867699898140452296441485920188622344357876514296464749059196257056901733363000582450615071685715804845280169353655597771700499637924650591468257883579727213195271493376939427278296445769049637005585133193921467302281773342962103687544341858283526030312460548869693983191827962023910579844931030341738594112442099370167743545337325167054466999001777535652593134869445183539657350578802099780153247249520994273355477978154068297384890986990576956918620552982978107008677389098997866570059300813350999046823505240560134598965223432747414190081288094914682183193008675796395372370584943520799621487383542879854882403461218773216049727095679973066979744882489092138472111937635682787613562114681116970744325914889301210845069122556461940285450091507741673606760538050040845870082865912844743984345958027077284200978527485197955117459023422623035832175600044233079370087395755709460353337270051200346652705636102618393779715538235317980268821763637967343859663004291249294262806526810788568615740212123764445010496424556011547709249917170031333170660632011049126182294923031622208166044044067494119341907606098772015943599149573066658688897068866709113673057014048397683417151141423980304995029772563215975044758359039036575221756034378413817711335320642603841164604425885239073842266540204455878642969328684775971137892923390536738673553287739695100198986017159664276449499347042202405926957316857990476998498216013719063614017306857899967190378205928943060846012808838332738387691107490284179405020985376793359119814587574296258073685887044467859153302597653537423400494504461077474681429924411119530456058595571227534186600919564369963370838000514028519712183096416145857623195897062935529465230831064426292379581013851417852177988996133533730551454507696467600665964175463354513340100797537551102296959727229472506093785406417353320731296368542059105948951302843411174869138170442443616406672523023616561912165241141563353389787110797328989668583311626025733016510901029912373218947009713370082318097053158502456100109789383958114819852292971021754605017325347484676545416625382091817967376654543697961465896351518173319594098248950431105339785721796362281797470060445577381002277015292916996206486865330653956338081767585112424685284816667174517330455118161372076422081796587895081115987286595499393804591733790589463000308500953021907674730115189536175628652464906543744221159922321635998673274152360726724823279682490470244393865065457268248208736885851538846587025121459338001784669222116441926905317493674606456795964392930406202851505824168091978718897529693660068322701100325853429418503806825964051747529921157611988980340329845064604847397951063610986245223227422371032220636027541312829924356578525477292055617488898054913978189797358353905831268699274618112636599858077910461036298099345415810062047152035789835179406405069921850120255023340536004209382901728577000202242826630187270764946556991263994488019479520911608085232537326075078367428926884086884192029106510716230967165510190772496260161732220053046599549906293066756599591799435647781954390634973995023765565457041985027244342296240122212701410833603319664151378729151475292702807826820800600926099219056399100030188806510558895251631178973229824624711195144639175374395296719316063654354400711048192680642139561385073237734734801341441031994457983134800740377999708853473632855814888634589653745808286678632753166543137570382389049264097810171128153751289712699893431288779152883457464091253099754608542224345889349070088240737130715075149447049286368624825975817732920410824290527266747297154531994919645991660763391795573402839805377634191821113354454103670315615934727872799864357168101427014394253506101846412173245112009862002430167457674826255510107142964867246819341374133445757439541232323904561945281463282425360792340367762274660644685112490404848307829670604499304497455712201145402044765520832336045524774994347725444833920652591810041358781494329911957397367078631080880449920799259574796437934668062739579362167294471583067064946771625349864937122896710045612704788985236942844309601899909330872820666088165386710782619501199083363154500117881266825000587801540457776014907472698850900378005701896451959920212672171717126150314792477909655507555804786744648171755411018002556198011500659679831852253860546346517172161791889548433084712093940436487016456141706744466967436034840185030931027154795609694274621351174502139280317887975826815528202570394664807451233805400496847190755598720716594929262612448095424481026743170467095401390396916049500539548830106904135876595629337312000999633741190722007070372819886651444041041856334381007435720818870483719250857562535598423366414664481782388869137791945837464728100107235632924530345798236852345157632142752868453350017957353525880616545031333982961165760987318015726741211176729656317052455258301919198157391916372850475903114844935876745587650875402764412952956086932891797607061818275146406780985937102893957064086300705640893097877110745299491909918197179463159749765550016547552433920737772723541959162759050510202995454751765810359966810971959668346374504647896962798799597749335565352403961462699561957216999616504496380483658571130771424777053026747350402297986813866810116232421029293020721915766310835229360162388210594384863252113336441501555499228142820027426516355251076086340154361547729640162415674847317563192652631634225026607644867000528476170034883836138996196439899852645375013996154293885663134225566852451258265487540607020504278297960124987434974555099616533627073912447601079303361435087519948364449587634864217480081846893307903522227218411636749431752928516774890482962063855555506806705968391608824447586131214041062167718235964053190576773361002404017992111209504533022680611348816961540582136371715810787986329025954663601473724081159290989446614656229285135837272081664077928652114452200906360353173615050541529662738990223602191464688615523029711153588500342300828446367777206372550774205802377755290176643472684847739929483074427395356906571086407802962986457545248079681771970989839386084835022052556352321514982648000634066229386545288056581657040904611950954364224407714616205920130555202871294477466586757013062462587796095652654834090122824779321148934456565949394275133469702602996099335196745685803990240384707823288143260188063261691740017326425554275613034693699267475266949976652492833092542932535072222543013723715297288540007485429440151931415260253850005815910812597240868931830113139111844092709154813189991589295954200307324892897644776005782120386898186859620964396693637741449488254099078576531537918363848646844117993851171297990601188915883863565966935450285594072839381117076167600491149661382803193076881559265343936543617189907074104747105249648313404063213511164326696903290496608005847182290055020000298396545985254161662261992929590452650763955645127251934118381728731874696630328447149680059781782539049340987071423739544921487218436755490658050450370874027741879660262768068982156834281802357995595700256532024912283646038996663233670372695276161488460155568452640250400374874846538653662617872230849495350795105225388316075487147916458766995872302932539354662239011685154755169942089642545156683130950012460528280130704098862864104000549143483165316397646101611342990461478429930690633252712036574175322085456082183896214359333625115645476537708210558163921269158922054203599918571907758778824235070789734226868107279098400779244704142505519679204382045569538268570583330063432921185302567022892310147690191904910103402843390101396261592727752202975172973711972526609261499910969765452045517304880364421901261904755973561904241688176247872225024131189706273107674132870332533258380444311312996943116461041986495714990745400097474520168243358357595570010916378631860323507778854988536813176737824661194491527653296011066789214190381916698210261225438142215548644348011479260776692031055680822742485373427363472155909526555825883487789682329521384468291894656663191945714500169917604193191002368527279792627400917277374559393931241311653756395622895699595923322967182923088009446538951441672467775039873346781338865498327341147282475057592072384734825781703747269780188320481490152455006576297017309132367323864763594492052088425470106629353457233419016715072897492318721474996896021756736339383267081544558472780183980209803368545330879410581514363003250113750784616811928800730934956271948816585514793649729776189140487674565483882380374091190188139625817385456692335018753385460192158442882493497866539307173912086741127217200922394321563485625238050886029789580220339288179397234266087938141638782347784206479216920628449546402259807952195234917385305249193373237739290236614041476476544424858343286940896546611339768011650294096960902189130140197618907578504599661901967292006987352751824268374508716510827179312452396469654291770816577667078212309126261916242072278650214907788344334415700275564790925067807121362941617448611034327759671236104012547363601546762307751539768504916013654264119712780769340543747888053050295859068109550321437040696740066783891373982067445260625029145785006317351542862093849779067058979139502499492942239089494231872261864555498375597636523809625078800370230145119347215155717719559302538010457276031842180379062188331851306585223030950579326390008803753568679551810221245666189360254785341780397135685358433995057529308210789078517997918649895310675916266094731011514508174247726924441744635886406942863532353547846186534232938602774107975712681318131908239623677655735505696771776758505680649833396130458793017610525780279619318670972443627883487521265948531878848581373329927757852380131465959449233565792726777543572243670642379961195081691768393301045778074917867300252774211348373932182803763665905432225595692482816783041454181201940641993202530037101484062351445071767677968203072267030887562103935969699455269594064753280328974366203582468750830762194250862752397087695800352254283999014382999554726859981967438724571091960903122864708697440317221741579595084528833173406561864463780989848068316086949058788416560388023201047980150667048283310292682384908096199328361999752957927101273441604341952440997244782689811928668490856875703824061182387169884784906271211909796259450119085198658976180431186560467269604439148046417172769853979540485283441203847675940893236921829148611506896021015936033103971901085502844194484103695687630057211408643041191661634849630068545508141317067715816555023287621419922030476707919396758590483339818343302668915412378243396697119960152841743317599391164231730897379559764797042376100570381606765679245424155543451994206421319685267532619496005460965992766706461221405116579182107279801167269373294512538428271306128901370892473610982292145244722760812730584583096110481391338386579674777827128831342252940596361269890991448499251675725772575911945762495029576610762399259450364515303980741348888321683295376559045866367651401298058681499713804136370118557174453744344913731848707119659222044930815411602178981236902804382916079166625884487245168055942772630593309941036906659328894095867650395135047100372529785711037858790852946542380013405281772833296778291514507849392725804570031861387688532401860911748669959551870848090394948865523874163060418676529721692412936565018687302330816497351554179096670116584052886784540184415000351375146953249106962125279391845878695176255777001837366465739264847086992295980256092771042105651387518965814584533113228796300853376847828789543220385774083014268376828310278379671017196790148885349501014922949796662025417143057171451979637091050453299085551668942947715597854790011854521725232976201182645075798063037694235645267982968809819819481889432849113773614385708852912138523352032399187785634267521269102324031101828457197475404286738561766845367947882217080836466828248407807500035870888400716014264955673586965433577432284501189929203972103319274919605064808554298029251639858481077475291717232281186067661384096815744889683614692244476420761570353971037080071801365950597675923430459802658520344054271057437635951338419956209829386529548688626155449906977005090191052129613448498071721355036172056453042899635667074422089136983154940931688421555747276470741437630995284464026670556459630429555067409645919765908593195352154276126638238535468845588825041115329878371806540625609408830224779631491753950202639366067027624062555498555640452375133873167541483885588372121475602387319679166571242073912106743200826573475526185534589187047040178319893322607663892020826070838392941668078526377851371828892625310894488406603892838078578214068055922829252115134769151468594754063831545355148346760802550700304432388853395444899678115954210320013453487059898757565683110046026208289462934010509036804073879736200964358184884979807612531508109977720761191649842241892172856769915902090923423716998418114113292201792540103651912342143393345830395886418956898966448803270815472152035249234021496992765090748997689648129885343416263445161094143165349783810324211405277911303116941041779521448721036388080057509829897050673918966398338214526182818031128586509380559531916069976842223686087045255050282064905823491645410793242026484484775493032746580735936946211315317611834175469981436935279600334958038293651179642586174911317137250399300812637272309643988139812318704899536489574543801435715052519740782725848729807179026220236503685825988270858169141378767836430801171238956122024496990984286624463297949407751374562365982574321302571109536363080287456888713559227097478528147696682832009701945469491749845200919281311161466585019132753250510548384052767872279948048834560408773923959224691975584480904458010242280224960845163607618140903609346260392136151224568359961247484639260383859878844017104181556233386801916966110833903131638338106203705907264410662601424999042247804233655461080366390694068296054123303131459705030306471753342154824991046917466609115334796540540665789956758862315000048723506649305915192176273859088198402656121869382510229917938339065562141713085300799831906539157648866372363414336008308666937736812037343737380746276638648176026312794619227815675781590614865351130185881064947718731607791826781626794770949302642192818054576973281127912868989485639808405823088703933759063103474997537818663451472325416121278258234726980814292495619932879006909981534920923096079508860643121650233041043075289255939728207965190913517869406858840284363691117709412203900513890244528793389607910781190528251882649229789729584190133124066962794164911088642311712465796729822418261055808599033958485891954589087181261661446336267625973783784085103594463001453912496727801495600244159371000310427414716416856957918378897774072536916847723184172892266912461551557776824609175575029683173261416648629629392382348682704167125150031393493764736241261358577773330435755492822388528508622416366344640691872599020706556252693416068593680078643789627520222120107544385864055232826394422096712202641792441644819009885105796388424013777787719825367098152940334496959030071671257664043387192829020906383926628933095026439253689709639635278701693054320136668183138910011373973531103303582217386835050218823342738512556567778411853421946727583030987887864991167687776856096623291509105207868173857480539495334751679063307128116700840204488831583571447235222587114227319343611912514871276672638502176056720549451685706225736838095162683329714635770035679044571886871809947681210626249053761274973364859132028412685899194878065605011201056314768828997266019123161313674225411577046619010505730037174852772381517557532035391845262872430356943206595934450207716935387761898302129651102160091365536720606517834759012040361727220730150313825374785930614541438612070521075654002924128756828639714662787607947647392661914335296133855241032677641014731374465040546584122260132145998290007707426244245892979905391517054920225979477397773708130433228617620232860796699712507822577278345069983117752920552338261294125949489202651881668329335792194711294720650925747664597267596466604058002740995523786342956334503064146597435073823374275115823354233075192105653996092995868903211196009227822588247793393360565992367779950455759871533079684214328492976102197031950396911780105876061815860763562914957979771658005988851170201591678928258214529029781087986926641370229107985546141824295015868354017793297456017781822991185949690978325265633311663541488701651919777820850459103065951270274154025331451158111187181298979134031118700913338738952292357692746555701984583739319357246262522341734872065155165981558579057171598932530147407247221416461383801912176191366062828988360932029985692136384138495162376166185296502223947119284309769462213546590097161040554820812565993175901163465987940110593482290860396532774853237874980117173088451520032608046837684764299312703056714697214880896574950613723784636044009275903123703105504503982214523964289890200716906239257276801388132872693806279273595620597876878207978035717752913803640186940442149131522349952902102679048445201981523247288684850510061076588678547384150753311216598296454051872493762022501117591424964125799290915248362456773130696696734880118218782461805125147150795713103221579168591268295223314898632764866807769215316684974671634212337489502147101035184476859442887068723752132046709799620657152650103836251584732393215455603237587653228849340792928675254728116371637422481226546449582783041554912589761369570218724140215565139823478711340460497982719287182799569210079754906024981596008894974143026706546528081807431770930804806140253761024792894723263413830789713435849757872941600188979829854201330427507976428510268156728233033379610726536342308180383852568361987184153679608031383336600310104444126567160335678349953295618709384899473657026113681629309686762725510787581237146985542690714676978740322980893187861981436229772941328130677112484690559272296125279216532051921507827575841408623231612149144561466244136295859885792112443043052898976045141913965505532086214732919234741088420644905344516490928351377026465503917227694295394363299085339742555895283907707329298402697463024384624011524050226463531223392941379776889445105608488597825262473578479595315745207151245322020548877217694287838471297871333615880532458854114570184942929670947899707507943113594516908109621463611808616848581822655567965545028279012909652852929603550706198931060781918151725003285153525384281826107645886995701349103601691793181076885758996178762554302092981995791032220024761364344742844049334979141796439850162462828342484904171390657230702536715963139296760342144815156639917940524978408247043766523513862137127275630749161564546662113955946416878041232451736817089470217973960506015843331672092663104776936281108123737924971443182519758386674777771101411254639989040631339636443091929577310881101961306438131754539888062423602510669308742510337558961936503493964732521805929681696345841798628786595676715033290003068132054796633576790289582408003174137906611682119450639186614050914127691395541239510154057837698223074129486634422208348596787255485596595427140965901044846996791204643281044216577915651037841325638682695512625717443522413903044491533966475840461447490751878460805810926185918296144422862255843538172221653589454690088354859652110205264578704858214643862075290460194994695254920060012035218489474474076329086717131866189487044987710823684768968762977713261579574570718067067699816901927305112957036849248983439887853849162098719525104619629011040836992176906645666656857894162487918640779297360247311902646266562766636579662417925986678930788233385791498607034080500581841905919689485499844150552079625244022156594835256565414150542593211113011049848976504108288981379315867410406283238433406797504995359747029511886426491417723683680106702439686770603274297598904888936193167592366548928502641392617154080801641329039974460885282032046401211734943364875893305247545854324216364784499192378730997213092735990338045021966900148972137106900642388642923380028864781390357939709541484306438055376204307833021087045290412778100382445452873664420189066245486290915333326522513265877148806184601714900973650824652704281057892360090889375597083928539956279049454761943903944579483483704941300670465232532310145818893214807672704949955061853527552403890678043992974115884791029301380667992956354699337032269852774394159328653985134232669582914299153882680125942183017151018738662518644114564630365062241333548124771550583675975756226633406684373676193315652847156805808525380038383889881547828569528469105008236510845437302411778205709377174486378453615422314797897646300997650839802949594336063317155941168920579808821108915743388173500596935776745678763578354035348652557229832602293640037699081181695996884371692347801522937939685946069580390526383292643317081352439075956034437518204391454719373983937142484117662722847429301373151199635064678411801500404192893418685911326911031721549149555338014819949635752352068904743346653232801777687102093566271143672829266042080302505380686207566837880152352645337568202790042348114683808039626550088556487859333556231845997355039732089926382264794240152462354457310924903276539913909345974570470836796950444361033132430330544393149506950006217090433570713621503073687213938175256335489478627290196869419888995889576080388779292159076891346845634862147001640031063355350353592056989567920806561822137964957166788664121713985501644193202022245199352805344384719066386165605537479055606471170569805942044918175998278727491927867166422439765919958285542915621463173603353635188511630024781494670599457052510048340967392747236740344251500014917603470976081572911788907586713575342183856353845454666885614968512959326884592183125094694320112119734814258573188742189333362088076348857809630182700827010766155926418502077330403789487034292625973168004117453315927679762340344757750735435292007202616610702789690585755768648779532436672396075163778811149455565377051037042964624463360821076537439420667857558938835085609931678134065404536384508615092914122171299250529142190670832849782418456755694001219399404752849646996522353925275035039501497615848551161057955919269839397320294068038360052010128855511178142826412403939892834208677490033716347971078108120214502796098212833421589681857452411966297232982818168140446727950609728692821042357847803414124646606989652077903708148592981788359123609921489196079177758846979396886716935326146437371677079084775479395804867620615492205158373068534603440633042944441304806693013654231831459607671108292755169988024783537541638048427132281447141347947151738322456675966629608679044360299138293817557238920892225403749791140610714692220561119248051957889079757991664393295211351183573463175168410883979826578017609125651864143604381952138320827569759373359412395310490395482519555381959349219221889853439710594894930464601049082137468042204397140235141935339028300565435988091981078723569247714781018569550730211871912715404488351295831286483900217965463720881852686844342485173301620132450672457407316903820886290645752730766438696765846993664919792209063636252652690783104349798105199536903726925902672450640429407039181369677539539141963410723087663798854520278006633064289009259555067088964297963809206579963946344539543846435069932704501959646342595234986396291090354292370845525841533467519103286864125389934574276496563487830574128443263221838056235782208206868447329260399947757654028772047955813768762581514353013576900025787437269261900655719907026688397655070583953052668960276274383544914543102989842055794074188578062960264281778862990142164971430376123307752738436433917409402630598625844613413359814759915819215307110950543513598644229353836209404087740500789935687365545776593915706672639660135974096503989877865239528228177303021719177884807201877129591197248166124591764100074846789577048058383047681965243958323195208891986156307123789331084712406678559335338710616691648219730047498925558524748204324639445178068914963701143731837470792823742973201535004732079195965625640300999254699004220073404122111915147582927024735846511745815634886337350556848045405204070191493290486398052798210684690547003145807127613834919770211051947789501372103068182633890621221437078535065119832330082460939263816733919898178057526774838961706978583767250551322622777737367712804504337933041093248026098670891955385812951805713658036400030712050701721020806855892680340764001595220314750049813008470319436474265119841821228623457507264840197306571805935424500041386995488822226581734821968404290489026371423987384848412058245551930913233911288220057481674399455858728172481636021029485472814814336841331445461297492675761486740638124710945605771322053683884167376112403505338089957699899292048227785004566307677010567949379368779263104005134942189295858927622312664071349011332482761171927249032101837876044660476100808273837791928925141351964854007945971157800344508001319856234867772601022957666448905359422968992647009167602518516088612230576184820964231223262252973086093953944665516948801616573845613389193123213941140959212576818591009075762518006524693876404733651112597119687501645839980990980985667179709675800557591653993808604545472537232616644157073508511830728483294914117968393443896186237912739860875382912430447573652800946244290706429565009195072362597884275971932744178882242628149320608311921333670506960880491285891336488468024295077994752721417826587374074217610717231936106178039485954062271936669331207098569051380175377325746855927185555514937370120662503742926691064518841228508304936982099041959723185946698746038175193346527131239582108524033194321785967291042759913938864212454460380890824366133401215701644680281375726413946761476095972373025639511067833924239739588527334195848523885345980207182321911413492450904178683368046360778520497583831095765395853894388965996514670528353195451484107904220522217287401339138628706263658287258992310604558312282238038951000168039941493118289856150126857149425712831826862834613115191806364657798559611284334076021810557552594760374752255239791887596106012248015854786424902922588911789457146645690987164281489298641465779653007005507515945660142818389358661859737507530110704550133456120619716293370884930184844404834591024434936437767260172227420930155968161886422837305011941159118764872679105601712520574439767705783930704755804835571409647381528692120465233477824621038490738738637201592454902208021901245054466444759478614170314771347813939414577717094894740983735453619934100147315242405371894481245275782555238648308230003219994900342864461292049145358152362017498805542559092072001064532169869943143893550218898276220751263164493977143683971069350531385313035987322442517382974449806350570752366539550700136536293794177642367377526940772976555344081635610840625256616031642282419592952463880936192421147337825244070019142606303521646346040997876253629301130780047997317528468877561913504394569356127706792927867369227795707932234941492597210707318701674656363461250448673105650737486085365342374018485709232867516053086953338470396134328580633562197777041797786364787523635852430269276353162794896492747671189291479799363346455289036774793551542913984038972985908329329375315053035851213646891067525639386103155776418137552335394170539570222277503185269155943852476800844500864477631612581213654896127216701137149123218939660148041068228487187991438545913501272847351795233471147883296991095036367471284962543040607048230718963341505615378968497953215848913498254868241813299789378320108665021146835571782372043270114137857988679364414202883666948750696970488591944703035320837128991405598091827071490767043846190796641702040376220387763947683168636770396708651852161157945612292599838588552469201415426114939229882410294614565530900338449970390909123616555776373206637762613211130857703847085857685490863197289924195432279302577604935791140697898140447169837326063097933027493341267692796250370711923786823859792665861822350274585905745439523384020058727370870464490156332236575326247127435667631310148782299999269695726519822683877011074864377391882227491903447573329194116226235261664940151899544264808929424226973370647630856546827504693081833949864569488849572802536497469719061435035666955679414692740183905018995683444083839458266089706567391801036922560849358054636609512709129384448866599660195399800105945370158504983930395011388763008186357510513804743747889382658441909711110957694985702835316100110767085431889478570378428126159471805319830433134181172238979594964010844027592426787475885301641898719927261502308384286408904969325489830810018410328690383204065186235751210757732810472820713767769122412414711863175179848757701971460207627413431242470644052457218928396178159529204897582906098646398449352413027972297693192962194669708482989275765370343206448874247523752812691191879908014734819619312628330091733177252660663574545812558058193889050701755603326340455169818695146497375025074320451430471497427288403604122727749518959573680383858989968179018428917488645796819815521783380788373267880924408589442463691061002605240674007320780092556727502592267072718415045286009373145128255925651077115480751478038624298942246975179901634082451161009527108944571890114123964862823339928659706430625081922240481401048404961843081152484501381055782324862970599616169101928969388282166015366556523354886476904970922621783157638822834160191047803096412212574599904585204687168201415955704256998936203415606487435915562480473692418814923658525883029432963341927311885526414889631296648408243530322955457957647208450056724657580616889367826573751359764202593780068863428842768635267814846267589616232874201715993833247295033890694092846169548147608153496959635118400799175753101825138911435552955119794168742996696856796832043945758397798857150772648436728653067348180967585695041008939157935711502039224147726769861102369727853599694934402302914553098963543999752660823008989093578620607547553372582294645566403036858072812017847877242763035706487407951789179625380523472799843238023408472360074219135747183019430825722908752470728486096403691320207896031648169152537906509647152974693662658170649973098178116702308183219201060600575795091470401665497649392327206493547723475649445166453464516127550500476381492443539084004111232699000803338081034692172738985479297961253673280665327202536056709394066621159287115553201402966200333960822539914824142184026541608078583443270690606324187953570417070903313051716499251384629779223187204449059253501041295802687295878813395056290593069359576764082426632643775494734807094966333247776799782693813869705584677782521622965086339936013363462359566936090212043459500996236713418945254310409261465203244925446367289615789906149391274037342519863519477413624889239846022610333283055644116072567768407771061239627444850511945119512883489998542637523608430392798442605950643974598616362967314630784997758627346880723696419480414625755494460064140634126510712189015273539180553040224077193553651281918562781542457776288205776908736508421285561279441471344228789893145059116995848908580012749412553898808235935497769038740251932722107235674561704247532151604282355189786861726073937855484443999622487351042150304384333616616423369475865681345015478868444570205527895398870508842313867370396883498592794074013769664291718540288917628974873436503039293911455544832311216223653107203671434434719871316405946724801870816119176490678652188484228926782381285424456713091840271729181675339957797855283367177237578497431598551770112887746361720155838684581049853173286898134568372118137045938572544249368879897379754882617204491182559232719517328563927357573594203200927369987703477967426634972513367170187926071616097896974095526562485665677843887379461348313355887865001580103293342245791901153163469315605100077472515754489946162988126357196675583470534595346907824132016471701516281749915023235707859540493078523354747923625739935806922553483847913105977244337391573144962418317605647975391863209065711313981154275886921713333573634888213135119296573450487593146983482014115745041951168883709921596816017746957549922928469514222845597271080698144229243104489369150069757686105436371988052404937440840805235260544863250023113503665019600793974045838263050508196609873079688607844074866619632006163691123674115019553517230843813811786152724927182477344428782299909930926198014798026042766529025160095230016549541008778280884529067605929505449556384539487720066407063084331192645487131965835589445982030384794428236152727126911948479510652558263343714872394631635114415435492872040455411821626093524467400985284644536525317930879245973270674972842655757315249832407009554993397902010518747318585130742564010688737482922414750933423220910019656591770053482083656561728688336130865692848274999404936212413623725209179451269179083651792360972555191200664655254715754038366325631724264088349690678375400236056917790553013860671171066896136448733150563972299739991747727671337331547850325206890441001778773457438942783701849716951716295511429228561030463796331368552187110653341411276282110455172843419371634621511777492931441047565707544120932135945821085366273379030928964529355217162668458893798006833683486419737019747004124107670639875340423851551936497882327936445650259162438463476177324268954992639310248527034674111029542583008200118354197251373985903769846417863896391137645982840389243857602754652107466016998321912971375646140959197360194863570802904302825181006249988470359857902992214813929509045890866440457453715112174216818053250723216101289850339270992088795074353859130985610997022336457462054380614372186680191449818000637514823284341692353085306720913706631612711680089479797048990283533191937450687472772924365576940999649414146370739952385642632462238108491004688363352523378718919965736402480734539791889560856966657041742779904221470515879374057695236765393819401741359795491798201491083589298444821326864007200237753356868533282172386877752980603525626821138107518188516834859836054846598247836629922242191394029573039950245960960217680369824750727056737214906404292733742239632997519908888775920176640911036998552004125528691028889042317631723482453784982850483203680385742960876042494126354392615983033810519777093959894252934098369984014869218104410855316470663631178919680816520093221299708088043406146057344483766982232214749527326640851655780991704736760035276765909456696000287721331385961579524540544545562469452313180036224206901970091703375581925976742087998473854690035338389455003480566082993530032289700433783811727523447328148759097910130887285276947317511425155338479127123319150508305829314517458407955545866213809131431811537552781762411409465934178592648283013102971062724465627942635634225520353842624433434950139944974788119932088939810290383600926080442141271656251578099131184218490077575442837203192579742453503161635785602706820843600114977540324535560945272348001961063689778291862802588691751713284872688045650923158373554388220811240453434687855794816261020956645358539990781908589335779962607399394989420741465855544261175551959822116090554797000085337238785110929896558279543553437035097426745275590489250141258909056282373131526634931156816043018456950868464075052193832593919917879697156076000321670722306074498424919167277732984013852737721774194098793712815246390185754965358387390334135797484915129576941718362128378029824394685132824803744349050501080669264760662708618888939777497303813123972110242990438031572924092187457007322155781599300702459368279757034355987072219436426740040179589408489285198290982145986602105762947547744892293077150256067061606908033439750519778827280158188241886734546511058232716029912212503757139081664456160422157244608778581207946390240791655342759466362983326215831512916225146936527441930216576877947175914920209939472422313768752899044156772515729403161780341525020277790016160530655048048479196083850881121995671020810798044001713448060069614128917469287235012683564461512160313212245415769452279118667138109144238907714753564728790810499518333354528969389807662459094141568042132441803241231149530854257595416819188778379258604098878798301543156158910124955314291537761558761990066858998859171731197480762849115261237404995159769276113244432736411897360588082665189648706937756731431860039394915701247777038080073528662639894987904406965045473025866291663818927803808156208892734941809109776277173162476296726700493563822013447799413495443560019360261569882131531444364265051525391268538082116868504860649147204750139612625813973214183581272847288491464840108370869191048577797686665689205919380864810898092053038353635371915136373033917024963499121552721641443201128155682799683214720838294869649372297292669418102986513676890167801320471445105432331522372208899617264408165933365439668359761642534567935721484668470437266727049180296153759678052662583802844771761669901712634353715426943105321155372887997390828971965787678647140992733067784964351398520756118319827085316409876972884185390019277006174101785335778904581388806181125544630953757639646234182343459951893974910248951978139968845146865621469506256457292389857660337762223932264923740936973024538337168474818568576006930990940593514810120523044483827771624566896598607373889392023550800760697237770599563742281781161456302035055550033492007228502035787445274046990098394761980031491256218543390500332960889933999932236387239065787550253800580115820259826685661480942355646031503347976101139461036454823708723333628729011348250757758291758532080394968882730552417112052460519077575012846286053971108769846568821034422542094572942488203258926165552870582845639072503014316521287652476170719307886333123549407843226350542579647828790656262765077927937333048073497583760844770086538427164003860145951720910879118810518555827562310524623437473661269501054364607275405477956727513871259397421682431774099010728515067837856027424689187537167754723644119668645638162258120919905191616988189334068107232232983384873222837150147032956278422139557516443786468324010304259607105794455236165170197343870312433822140430672395307046207925676121766213219182313013427692603656841145840672520345883698604989759767930397315603567336016074192195901903975759362100355479957658259794857907358186581511359735329569608720324283559076431952784684709262522078468073488162596784209641100095953934654525644855178965183056036822526912367541058698675366810006050979547189595254849967806572087683965463648613960154292810950384415190119103009219197743137783743760347869984591357578955396311787209843480871284377089718350576886851190060920816820492884641731647641095924508504392316991594483565178873543195723476900209342876841038968619126964612959670900236392981367597497496005165226123820563041500745357594353829648117646505388224004572670558648015346168978539368093685348295767349067274281110092860223862580783405933363095220855486259805127554720140518854710193883358670015292758886175142109839760073675670911783147673326228240913121344636597850123910364511456598395945237024024705698875765283268278758356348521527902830928052362980270598832303444784508397637682755922965001350328933088025882221464502899200942387928206766316897858524245310866760346913014073869893621561614199347870614884707551482093965806420970124317083795126582676212284683996063261993303422880426505375192026171753580963640573837771417085370456425730375722870338456457781633122069492007114164153948731753115062150423478345886443410877924116151828063505747989798325177200623014810593425380866658293908096225617188661997503543059158051232597747479548946874791685162649072476068391751560243124345614924595329280914753792754549716695112741283108488303387325660580071149444444503242353246366783405395980795120934938602345241891007183468531242958155499719745280244309360833346671680386123515313965482722145423369410539657449872257597528127764084389401249519236283629176388868871447850156711430205466296855937594487913715410271028339173553312038664711574947746389179695323242487088887777793788554560888357250565212422173207233736822264869956735190258777088723590362567368524548677626362738139909530076205788142916305301579012017778536186501173628517586202183003594413238270348960884195158898839174596411407421184822608235228515474871484754382944490370264337065837709307569017413335351188069105085483153396834831335864773080617298243860333876076715516984988558493613477962949771666390629630367595631727886711490364911471435119946660965034893266748906363525536733472026418611188440006504628660638783879795926532642504691129228993690868632849873422574125449579837227460951065368968267673729866869416689918976994650417990751036691472552550711683153973596212407932877349978553997598360105866402567668501273160373806279669678988696917516387497845313578463969452754017890454414266359835759823777272986944820720552842723170057781478289693776782544238514902131687122200491848130094789823892953284886724033199303521454200660552841508806537790541044546996544393068881063891385803073834237238075064953708898068189468580833224707017019283299131401941292857902989143514280808125446666423871960943676183998577672659476251987175779355409149030073415103248822604796287525389124022164890898065431896647618865888505398235332764317438790055352980378376867501063518798491880005558476734660455355505748973062846539109055718223457804612206142787286459394046952192635566597354144470079093888660523155987319829526763387240640021168604622619781112806093595113277124157133639071168551768689425556240465380723302767076281473306717003874754455843573669891417566555550821146862140173223554331388316290192920262100232303029425631456334436033999395308443755203680094575900071110354300978710184126844316917818893184678449254029668250003744173715656351506252355102544778852069585753743419334338190283562897569472066702108675492197798302274140508536203611405411894515173003807076917213321663522516587399719272755978829790355678978463483684526277745579116565167272664703452285994324056202223921388715109962812957528882617740692296958664957228293685065844169268075570000484086675610258289544867185256539435127812338667447267009585457224997499748278812948835719890076112972131303239728346397952257403284372221639830919111872218357343853225032945655406328186057703508220661935954094650107908683260562392910637467697649841971919949724171306950186714697158436351580000268753441349912387580406929331692988233294609795674027217208218939347506764729441668809765252676468088345094734650751370338504863463320152502277029527392732017818531419608046798837870518784636117690757584378157147895409947410485373786369743412136531273984608668468351134410862205122723501938099168416737787515625366173849385978336596682953366903698645828215937214100646745430186853884688799251792891259892498597939740270596057301364152167062118930008838769281821009244744706044628133022191425322118354999603699075167364244150836836475167284819367383640297697192394413013690094147293287397197123311035736791348422443324552081617408136995202156896362114901619458274709655429621249993662966221935981129268584539202564618148829808689216107047894589867894624476307230757955021925094186889433638114033425864305520473914995288414219563338569900561314706796051080301265684549530912883643548567695682694937814209116293677416775246176061148792310951859727126330701098252892688833975631943767179012969813478920413761633218501228275800776647774828905552446101005192759173798382726599049650256128010169362778728356974308166009942505293333565018653512772365876442826146540345466688287529079828465555347041268765747443110107669830032703871471357730463816189520482377829218216306906444793843619326526939719635431378253505594489352055888760876950922065735103970429147862799216123125550615765056532226535008689954671650553544306129682484964980847006943575415354185112216615685704609199094577190723893789241787019515147222459626597837115401388365596029865398518429358955011653622417669092323274052506883548361934592268013919492408080755063230647033317035976012982232325144035821122649865452401972426192450487341029112687488183491783075479325604523116132048458934913045623211909007246553167588944105393838476562904334596796171572735990891552670295607469281580951348471084409535492794275983032592044536828003673219630341982474563598970010990836169561642503820167605312708316709156043933742790961813294205638474325145198328652899045663456331628968215836261221864259962350495387332232647809668413673165493944439900595609723814797605291031807734249310775261118051461895683827174660842711989601365632864101692867885682307142507394915309493943689264198280910697727822784629870480287036954104458422556872219222904505295496597379563472842533514346916815543844070571810470268037481373067815718934367489633511861844658524319037326091555555549841537355991279322444398955934306056388977060495749786151231758195394308818959297049543015628688386145535824886227024691685874263120526447588695488392413321501822781146251890771238778463737246078680743650155968936888916754264551225549236456675831832539401243773155516551226766408899423602070830192933879481018695298117181625547918431363527335479764225652866076114959304883880693203813390662016229748906718838243965355492149945260402621815422596999070666108040198659576125032617704343027486068471713041310264772061901971619558296898620031956631361817267886016899599190656928748621472910604119857853542642809507437860925774371394702056820311699600868394692583240901625927113573376625364934614479303488349241750068427797861936057805985233334426531679088602214204659226229359837136599430951868253938051429581595264521042898624962391918598555064570299064907291427182510542658814531136400980840745367508708811975615404781991547825839270460726831534716865574283813634219847958466682127363177437362140765580490028944524322351516413510093130162327343658029788900548701225836919949237731398375534480002930827543399219622846708656532176688501875381814767029895180050233335083307551057029573158071942457564728370503441428364768646195656776835247315158078786345158318573514666870237067722717748608697679372491125326397402532522822210090505658097349894921016633715536760344991176434955494266320239390145812835994188894451881310821740614115343964968613362968594594373929862820818880782249369937202337371435065727589605610708734383951471210943246375329429018780212662747051341703654528019043635420827343451305020680782468923548453508365229524685250422863526464432100522619353368669926650897835278810610280018689659243776411367082741496964983098684335417073463998752231364394061393438471702739939622053511024117352570621158004768799711595890488781668900366045896620619842920060366303734969027144190236116798981420322835785304183725739645822185693203279418223217906089303853710254824495499272235867410829263326230313101480978171385030700658314400141622501099414015024602651690471071716676941782632876082100159459553738337667504653761663125496842409903184569832285557037687197574973589292709365463197710123376329838549201888600320928686964093394061855086905695874543199322175435193260342681459280250429772923127927696070328443274404391163947325815997888075507276531610439399277897472885504423624261630919195890324459631408697704995720370098105902122528383398158281910610917561922928485118255352868097934962064482434765614632613428102933635334779084071749301983339594216533186574549186622386743797973644381816040775498354390922985455450950189687561492831093519123283688069719967085475281708554084388739607868234402255266773086655666857827970173532670021875867052378299711313989554239875552585079532352837400752822542138208167153483563473907410257698994302830483113614763225123476408752525492028005705855513198061501371159555792648916341485095465842592338726876732571295933897598807097288151372290031752826180379694522031406862014500527030624755942296134457570759013941433142737211093146889129068044518436001562755174936672346889411773656150211048047548431310013050598654911307010595678217434480054766746500443569893508419623075849245307611173550021948899567320354760954871818676865111770321205452452790607066397882537564631813572129497953357616548785027043701563988438891844564872907137665207510534734600728280909135299644756060589791379739626867189062057409577602070613892935228093533637316332947945585689592759175237271085435173979202555186316233040045943413269016623044056489879881673944957116444189347886324693565516089150458027085926171536361235853345621642446626960263645278147437866342869986641981829030646285220248447658822711792757756796403398457071814457519332507554237588484167476845240577742510345466781151040477661538728979543079207512127410380645840327905098205312897656729735932931953683483386016675009898654891993985936818012506445577924657941514023375096466104400213536021236866777314161333208084188662850755891546478191503423226314641887729031150992949181905967996771496396261293104187546089380432390558488177378810931533195902104526345640594451706484710455400447072739333722514022224497484340678890813791202831095559681975021557323604077675741986185898890319130090540819702279790862730120938390307848066768636253077529546149719700924345705405234166076870944619266004261009156379406220484987846702389357845671477680662828136125349828060877141891842371386766265080241524340316986308711808125809585430674013919359990576599582625611012284119300885020193349811307511692315580768151407321130431403006974593548915774629189377394643575419014676231419965823965265239351453077782264346079665141469655586508455824747150062609532251086790949605670271068891485290067244849891536373759853129442671251065600299372518792982081315600118244940244140343919690407371202397575135161309796578735763366241024931447390777590978435025683635705976515637252678428103057511470024193650755619692448637208419455477013295774053461500694574378162095974314484891613213323331539658777000255076969098427527651783891275596431960629791141528165859366373810479340275891827517671886104054849553662309564997102274805642166934198071306960801199191190173312837550398345389193394797997004387675040831477924557143380867068852638023296800405808225372156762323480636440970941061256854391026871635708369529646840537296616193503588577743762110084110144597084441935015156634087889871497578713202813734369925956580997667937807625853971392266751785575985553651150447148019814441114729096991233464631356362420598772383990550069887607113299007271118171566341826895672266868118117148199309348990891519242834134963164384604580755243090837855927264268607694765252972444319515778642206514521323812125190952646532200557617636674574755705457166083147730517446360272516087632966687935223605502009195305836985388824097195312870899535938596301393159908148192821082478394686690512496238703431031581154116150578642511133484517188563145357950254641439339597532670523758439472174308066138315767092551024779603931894003433083003696615878557130249932774673647655280839359230763906690941250582792116847444610375511669388187150452940804688330718095128317396530583966895060111342915429509812577433711361385819971965544268298447538391447610678890836721939449819666253882564049464533585406971421940007803989900588732291119104670289188281647752450144750791341915557385779347772614028149442706304016058930608137508694513403690873782752255921921762897196275673119796984767759711644604897915810546248591094729923064122513395507959320010669962305683059030128090602773961527231246696425354661901527060851410498619684446243797047354393459900979578390832955755410142431715977589468559622513642327170143845134525301768937015804074517566945973423919906061161653701325295394484007496719342186590125528062716902431736853884879148518447147553212102330477726806989782259898200112014322761150121790571722947950949982997086669580020643537951276708958532583915329183905807672377354528102000021481781454190190243504359141821911840000182246526576244846271450938616591432267866691028366097941835274972300593228159417152394607073747370151153193795951831568617762590187593415981406885281629174790257851419614257904012469495974074110914969120866794472957068482664440897860177382586045724692168174390499400477753661391961280624651669632302083016294332921355329621390461821571611668634437202786781309104762710654376310561118903083794969268508653048673277973381320381303694916458405327614432373763104803079366572877463449481063440381261071619668591616208126052448825616754839248568158310872442556965953488746629620060682705677650507017025352319786345672801752981612036612697757006156404146182795563715728116918969303705138241638719555873029731022081051320081008945293479837034699658289601593548580020660880319942953020011552342512862443857945057670612823141112870626005069349505815412785110539680162072519376042861868812631829982283066443585554531610803199875960505238029477759112892320874828444036750259618071283471243215887616198298318043864574813583412969939303764246165517059138895809961315185113671844483163632507545470758985440779604297632948486247850571844357880306864835016979095941362911566823881815442019745891461741249967990533232283378306872225720392599963219658152016117897188964302685976254627442857860594400774775422737759792534804078394316879212668516948253519994858600718683086869446867435257663985243072542239660244346524124036547874071315436560231943037072787205775087845823219304589387101777214791279166561872206844057045206763696621672127834180186223554692747277526969155779132025655893205049343841259929330222355873275065882561387860319081577190702276188400348930177857481118849136331743178802554989482131238745370759453110078253680958834885737453758581068041495361995062963683055602353337737848308869568477836041368429419503563544581985802444980059715454011784533467550863134793496181108218125932814414242702994248495036610381231415611069916652445042026342299418110132832996762666040252041756967535960936576648630147912587987260477691486969534628027665276415158801885132257434330559487422859614153971372471654864275643079251179425582903136938887156369222251092991048063809486430461720476849054271311156788171501770665215420832059702241245706108982383426534734268249930081888807099841521071576861266777581645632602256655787860622709157110825780523290860132209231542748256225262242008751853577878764934061533350189011248499890933590039599345647924066745202302444443096873692784574983331337664863802304964181655120759658651301741007546625949258065731222754995815469942562882720140212872647259620653820480214135118906940319421754967065339822478657649306847960241033323325237249260403597792200102979102796236885716062779858964833432274864841273102262442370176116622806774152811617580380302665146411910740362923091920084166566638024265654812452428019353248941634768687635893858108577653716419365544421309556383268568685623000916551212211456287556408989426645416307583883702458878837264958390401270182587346628127216752043685277933670541178674987738928760483132065581144737017527798427874114409901690875591671208983136412481365788028473366959930410497387823971870650514286818584402124446062999374738780357602229288927180271905850963503669237880580483923863584201934568133689274041817693375387081627136558910220081770379033798815269918607433294633312086426575318870914657223546338890818012752912173410845120485740576653915848271347176923983245129776099531926858733036157837969674967109487801819208991529515144951145393735649075535683466704797817386017320498926932807133519945995659181225581197347067266622345773294002938813769528935320310341141986125407714892772606555751323564947567469378317121953937364614003768550831396693543945535217556301683345860295135515828629160446699035769583152786559691422024966104942631049698650609890769833611956592305582600044260303993651698122399480886720188239639128793492318186507854613496217976262621666471415403563140673827074845123704411805532183014357624070534073297438854814487977391792041691657996860453723912726938157008694146089989974580350066068939982870736863177807589977403688431252073444892477875549516583898316403017624373268341413788800692865740929586168392908622793496354359944788330593596070154229664955204951551933028593455422361863286228368671540684752165003327850951808060220840139071839598457529503368588647516205892149864529760627270750275918826459733976125366441687682823929024107781724316820861982340748965011799377626079230577708135017008814307297168962055628632403839417894487287782883419827304319753243616210637630948388840947526441006565933555250909786238134148276650744022910871269537646134147046049113373866261412783214895961654147945608132461744667874608680731822032905697982516026410287287790730246517594660098221222817402687468220508822921044179547860700672438090521694351180357301403124217565200044942722870571814925986335040224495206782282535210035175566219055360674587443065583685107989524210701225446113313483701867085442518653475506651326929510105951065010683891299554073680651941875642077547392977528010489122728171463884447226287826904199699101832572226859996133529245301342441973834831826736690221391974321771513666107747681562413971838562995785999966771556730706358286894331535331009812917999073025563638242842493385968887546431538991295226315951101392247098060985490755154674944035406185148753197088540012053218705389373047808800220577824645370926331015833717741394770683057511488242718043856125283366011746215286304443294416144079107825518048925207472920738009183778093163632964743129595619498834978631480808470726693950939150793701757763317382288956710296208351031940534845094790303884415051780144259330157257831194416944687495720611670899722706905236545303190066208723827430601076862162396271622540864396410825868175191719906169003159715081412693965419643681639419485893537914458284633368880190412567084482378268463457820653365099897996874083653788228683258230974687725796574853195315027820320645793862803777392791270895476121784016222530602067916148542270857120308896672778954108632566987750686233915862509950643506596899677579770279775168652063239259551359139024219150112649083343073826333089268749755409730072162370015412282618162678863901263219611403980941624396843473513914891150984571932921443550571831826897861629951292067840169670675718080491191934357176733937589261916366586987713959117580377587028555756320875934798482829193282362475077876480900935874385990832308960923412337508294453859577368540065701544731982756345966097366219558425177371757359154326922706458967363054781649288357613105106060943829048779406922223645246260790953369354338417514585125250971180271224756902014821692356016847182299870450863501584162094617775871442678265421741968208045108831452835861561078219985014347595047956513802364811193679554537964463437161268365717883208586952421595005308372083546452057850930445780989472530470909599971605634159308942349325750480079543090916362811951330412405472134484882880178719825297593637143193565496026543114372005491491116113705817030398977594419758149432440288376916572082755476736668629789510679770155152594591721694864224225687790412936300821731021647895494848436149554873013606999784676858824634853941534701946272193427449413691900949003413310215658896015752523531634103911719028284763497775993048564900632704011782152072603128100849743309878974501818334437235878931678149871068730410328808255776082205528033025536443697024970314741550832624327764277339873563362581247564157174935766887061013836685129014808851539533832653328722574566660008754023902127113488185331385095769272358352011741629930829815376530140398181984385147099006481755320049257146415229534064400233078259009794161509289651122758474023918225014864769971500196006313480123913709252716029526958968874485201590754393214281148021148719176950673609469611915547486492172471634927474100077693815312777292146129318253612809471652491287350685951621202651189286488128951809160084025372385351217614776794942354496731413233413596174793673463261389377644108997342774292006600695030305349816937433149065134754590675145774969272720433036874626783677530298995168285604657400381768634736353211476395325827203924764728684242713645264326578649208563769977057372464666608423966593442227481267840111411964393118725403157299978777498485185180501277440930108713600562484781756165013413647395963557283061490496247434364356648810749163164892055033915550279386653704222266318151838697936280194492704641332656590556316268516241925952833151180757512941434128571315004670833474588848187607840213777505683615323552954236995815823090475751559439270571983658549116522211193624853157993377784280990726235492066361302650529094215807886872527314522785288804715993075983688836160421983089315396522451179003944743395407854372888045314010605452417448252056619712812378773897786741111138059489822648745160660825005930280918549760618502879037060621426433647203059633531754780964677768636318091334946297705434601121384077097657834323487107794547408893517782983848108010888781500525769073436277879660434579889075420123419151183898166425057885115660570159695916185107996214212791922167722051590464622356440695026514163637433748021981779434595596039071926961843466283051777186540110694475772900041965557777710825894752279784528595299207470281345972015759672275736668732726212520095029939044064834247776552834932215320810884251938648139520535303633249181576630114689139735330807155204955645472386517270188069210917909840573459218248573278842157364940374275087978392478187163465541729457596329752857818308345018218694820417652339959831756524296475700560780157399068151422381185051072698950237472170190245430124765271114872949717892727915893850960880149884465231275254110593563213103410339539395841894730029596660173345408226566124371792407299413145440395524562871226177592894916042920544150667652179740699069311025927599625629096807400810577819578486937716270688692993981372881573664862167782618180545209313729603421358361335946517240112524853416940506700728565925082208146480240723607402723745263203824987964292512885802100731481216317903110352408461693090334545845979191330309441540251216201192426055365059918664518516372462236008129005505649780791327090667362474279250171574376414137988844671059185603864765780674667509115971697476734743656106287316540409423436183491251505246222117893235209598572449858848556195427936545732335483074853196876416397615813831943692747742378488351028126463665400450679234132724936225724048724560579631831652159000937907003371219015955204912554455612572179430007664373085288899382475759983352511095577101150743617943826110227823118907887704900275168564381501616088106654846409967061763684805452940560123651369716398854881544970471904589073230797932357510480812332585436678012623420970506431207442003604120059260926703577702179477731436609789546535206341133343175562301742616130441550441628040949372007672962852291207510471500664375642185965446693395746448090777903953326018989328677383960185563246627301527559797427980653252258113993027308185721127383106919203101696646404242096394887905074959827951923095601193505075327734671683152875132056681365343272854758438994150781252855257416587915184349346726139548201266033500071854478334687668475725496882438609193927750296269510224143073170289057116789404417343969087759319403414184650854955383384983053521423015594579673429332738186895098587057573993849040294394345882241798115249966057993090979035452048894567961951078834418302523011010835965165121598940803646611606719134259159817163524993876792131715552182649439482368099798212464968402748068022408622535848287735810475178672720032212110371485919886839337407863832590866447779541168775134260338801614870423540506380342647247527979501986746057150135648055785513280555295312055341895770385534227240294764181052957232159922398189329045332640357736412345477631327930266927194366286041333496189525791815731280841557743370154316520935277983375012169469047521456335177311906744896698372702720331266429943993601892482358875189231263805919891967081829504897027448671866574081614982626102596274417438849936805894469376871811185182162099886367742146812740530771585079591692620305451647937199178869671260903694080165368035291148502161382191893653578100038745058443157598675432246471925800733212078222191102431922731693195032155376910578264681325581065885581624454040587724827317719682789592599472615504910686966398203473372840832604086100726759102106655201810311843367965968037227050608683528106564305885692888666207288812172705962348711927752073471468261789684840447748560638620702219648706136544589526849052138671955996916259123174264649866120702053077335785097358114008786526045775249472271555682460839676372573562293994143721581885114732138609961960279752229520811445128290269608894095958630817841320954149205490319458677626606106000492246826018789611939749558798383369920243288593926646750644021380034074510234243737107426780849697196537607409061210482199857007945173008122876904514914333407024677239002059723295869467885674537808999286984761326543309654792301351294572783269351058060912025180432263999460619507549253294910745586184110546984236835076138519732100739960822833571139849711622483625164178787152781775413987766134227605721431840513300358120804389505270813936969033185348929296821358216018181802789964796286341073736869293794793017097079534040070182732624627947535469361211898119149979413808129250238028812309443163436669862650191873469475372789217830624993702858838017919873831160239748255668780570807612187775661115790804494535220532771463766114397511326091872538311339564252736324871949891414294904707660597905670017315548204316538736594600998900836402901596532215109130039065257947049016850308393439709316235833768708204614443323331827674443190885972135890805132426946476278703252768895890733887225691146993542160476617431766226309002937922236389263087908500317642603249396564670117904870604584518003307709858686474078314762016323761118333331711251908097451378705406136488124517324094323827388934787751888840736175276545445225822310588483249013005374873609666735192824834816542257474666125503023336281755278579237292138019550057462119270699118665659135497605478021764380454023007739077183980213160175968261465310319341207153445698236690627374539015150035374306347970565822991622238199698990084685122398693555832668289180457796318859856782738263678829574435466487823193393426171398126489303247291039645191368411265200161212056098833723201965824368959745810512805206518451507671397851386248539025554432685883182470712274751367685036319750146972413754540511609893978783508341568873489847324146055461422476965623742737040262733764664892776573704130067311746699818459680820785603177107037332060629558604329952752094330442739705436983240322523533592466437889282580809998524279335510543529939170879512927748227640706276410173588422387605432548987615212173288042621001609965335251828675632662925269644792527321971245938711271640155101854684712587955330857471095945980428586188772928895582646515051060981701926878235946967849927539954152882607785623859363365504311136173679807367514524575666266047067714265530186395920960612972708101008710318297842583499590026346007293057172645501702318632165894643043069520910694897005622368485748266776784592564114202178692385964331425165041573357195169918136752096665529188390056802162415613898761497813305474731771343813481311112400119283530318935926583767115395286684186556406099626027626966970525313207616872548855523955327805096462572630191328149567499955936058615863023180848447608616499888816198336831824402385218167080627749104053938538914702730608440130161971262431584389646457041841755265485080584638717563066025690409165100958772612635663617199599995744789149604305429191568495121605105032645451101175515053500977756808690009491845107503044158700858871607552280809762897994369205098976168287348761694754597026804333778312445864760754400506444121217518541131449312783826833812177069589246949430657424817047860399123948416688030637191149040558007059256026743939113196495966659212528413798584607222818000745690006910378179021840718474060112673712924121712283775586981556022974438417941405282334008430686228834849525056404905731367116457267724916762998100683900094913726476654231617009756107813071827720125115020070652589588035844822413232427467734702605666594919041256678977765798448775554506189190056724059514588509261291394930999426330455156738327056387592395547763980363145104860246701625395854381413970942880102860779670067766375295446089985097441096018276421079194775696603355337810399573490594547004112380255582773081515526159291725932515033011100220349365456556641826715290144426633627653783688185625139175798416193073083353097552313889094524988021866553598511520427474384140658376467410483617935253411002404874396929924649288482945717101389454548758637249762248889691543512275010135384539365513052930204116651863125751205263648564753699540633237169402491627048983992567291670919811143621224683101944520899617900829056990505974885828808056673945577583054763461292641326825458462907877609807518749950542900216020302025993361171522586290539921564807252763785638762181030324525210333445004612981828771312412899664829565151128072536540782507281047924031719383675044511498983265722175104847896967790553485702764625312281290267245188341252631598547698958115608188949139486216628026506996143618768835276969190369674675675605327179358005111960257562805867373451919837000532195532811980477954735574690600641736990776155544968030206829907513364816285817811075780579896328487409390939253943957941837474478427110523582205801786089497843989106248646155329614423244559875593194435203236025404191670495499109241832363981733791686267355052418314479577488825579462852797975404002863399475622251616840435487090240574071202381462274050829396971367575469217231769986502925520194081431897675584813776433571620135736061861035733850389309139097439151146336820395946504567735867391233976977383756233132038387397196076734285426320991479682112335745363950354497562353547467909042213530727844592288905716683568780060681487805460681193583390178252728834864065213593528040650303821385520921195862260427660805381070738167528909063539680879105738398056283762210083239417433592477501200750285095188667869666798679802035225215625657199416193460212356393441002969251660678247865376201110029614113078737259231216538277426812051130039979704584340763739806601071590798130499063869125778922071459708817163769152582754047538010930732619422256865423565832466757525165562444011823224037728004774981001134208383668659319018631621059619442934826402304476762926056025020423930938636623485304746967357880948750088316636981314862423730243629468139691202604805152643435177514455451794604545484888926190714864834356403297888813357151676837628027917138011113543304684703127941919901695638173973657989523086124804205027125006608523083007999603496497471608545599178388985023773258676662058199618869737718174099262690681629381084429488174374587184738499900268343842880853753323339235637646940067956987933908367025015049426440731419393532952038479847797884203913635692692035039278430267078503601786055680276225158777433135066679821361232534040710859967625886491266477916835576448898551843697737418238941609314970979128148726407584533459340086567040064640310738381841167618533983769559951994073266769464237192857208229044642791820379849030479022692782860168914525055501174288349579463427736340660326743244542568023934292926912232110287232207871003183758610033653316267362715946475640353282759907697072284394860417355039612157131941911340115473781357402701300456007359263880834924012614155356680263111510463874085395353030848915386418281626264299246356522348700817809012418640078753737569654959911091087508802148384390092573753898308105067906212192121708903593742593123099721197984526835164140294504439958700963479550915028108385407853438890184386871716619697233836092157523770715188364742402639418253900336462251751509670689720767814940790901570691861253732447590339704263272837686522262259360320821935038068494854915067605775475645109680323804401240947615997136244592069513802057752151404417990140041838801234507459333146010805112239760344852805119514884279745881111728304573727650032802127352292976486823467930093843793099252737209896283362942972233636825149166695682561455610610394247211395386042139267623154853943856565661433611055494969917851062691600423241113973740365089754447060974371951025174522794299855888625688147193635529573991483865420523147684057176806965883139531169916190954473706619208430425289869353392307007477993665026739316788153046669534279113777094701945462752645702998906667275509631424906972525423456159244201585162817321493343545186806729938553066399297885225335743488036274584583140226651530835500935919070031577037607003340562473585836158741657936150714598151687839006372086678920392989812406980354403665096041189104172917172754743293713605788456244670396311938137864449861784560697447129766242820975887562847374926430811623160932969769054731946431995592187595606340056115808179781940258658250511201803834045036778411717824512293558929895708870077783176816300173066296646213986693167528717364627136855008870214932541960061673037161951270465640872434431147467536987759876019387291484464690195688198036846302784029445110210940914463557907147206505377678133628362400708907850577439599545565730975191600893468352751451427215183857036813269650055649270551487287285204487154392588880050012015472397068074802487787250996017689572089929000374930886552997298719042653497092247550521822351731069004197699303132964110269757928758076841029304351512763492472829368650068153975347751940767669763699373283202440021697129951862507940376520715817795666080909256151519289908753493612122970329292757462494259367112554584625337719538214783988967486823270889017184184322738668331050233949046906995002973621926204386941060180743068802538149071356970670058957173130599957888005550694436727944962050744409080710315388024710968214175388857901208842163396203153707131665316636613566574042798529304364073475964647112697780890490720918635879608271927113972163830156185069667788112476491742054668533964088908700956905746311287252012139454480939518398977641172949926835140000610755722724057240979740086774065707767996900064730295713708796453731019393742645427369772935547396986384456421491253701920764686348279742326477829509269403695243798110124316841515923159551918114754428300055280866819313918628054117214453564651082897143215450728597643845199241007235873084045045752875154669007822174746181490814452076888115733747853408337035279184849553042650045455634185488466291872469284284603029049805261654966733268463077978992750224428192612066675249975899137235796264092282526800629835881427297517930274107335865233664634066845475666735313287251722140254598385466979520839992375903487406829745251583430710883520960207782114136728025930937019954796150983515520564739701083755488801156235222470253481250931644708790111983761297996801683166820144956615368551817282223582231794159564914241961694648002354153564554666736001999776626695301801564106470089401095886490557926811739643421876984930223550439771251018219116711937608542316631971651683545799319657071989158643160033824583949679703568698617804438244526416636209650135092210769902139740496763897357661723292722864557504052786379525616109131430013348233114401985261840336275213008527649692765101991041941081499088203678355133548387897451285480762242918432869411695663098115397800181967058055557187835918622011949816696368124264374009443813245551266294519091822352133235813783510286042127685328515562083829666942128372321759270242963665974929197692742683848906154234208678401784903445859415056257420871516019108703220487724100482533988102268194461645772751262144064947396003926166973726536081081870918740261967594311376759148114127697024555395653860396214960675617002697971488135723833599801590847859100912175932308928515827065687847263102687379939520194040948354382495317354575047823899808122876877589340955312500182329530617125875253134580480781585821658172930225135813548220622184427743320307461912295888835713537698635298285035058626867220832333283012237061895494202926865860357476755911715942237655355045768045370793662766080279147360024310916689098351993475617854764024064517233961378631324616090801609583119963688608210543364640962321062082210251296602767493691073843530588915081661797643332092034407833820618683350200025770257364767570668850932462289981777777446271076907439597438573139557888935620942398734224358678755604042378350184906365756951994011280126665850003149781087226654046495217119706791928196779550046096301550531882051077157266876994527454477403044398697270712530011491014952223483098043591991231960075661704602942703201959484569452397486213314363571473712914877304590284978794624326834684279862225335079111176748055948918622320297478821106993030861710057814080397860745545716676300232583516829774341862884195055334294806481947402197769649143375107475019243160885212108145746972740001045311466017796923325757648364168668565883631913040413886878729626860128880404349163044457867884493925163769276524022840351913622271133271313783823145984693218559133706587436148839562241477174090745469098383630589880387526612078614330919932368439535098821472513949343288444032850770362730566197584743547886896262286795110621863216005152670714008162720469037905804694079818312544452901261187375832669615462644475957441990190359551704271708843394208892587840847800172698567054811799963165782349364607444154650172038540391649246547062082028599451108893353103370472181133912039298768748994764666391340320559332454795405598703155517101002045970226728098355915991078041307979071414901959904984159899145309048015452697021087101241753127978654686902498506404069331119879277038491393717917119952775846546714995022098417051933596187250867156985891551705757026813193625918607390747740093470676924002064216066789121884462414134687961481561489570756110493935471918926687984940708191973095345176327603453263249705033988844696019662337951224354856699740508272108741126045179288462629327770626162541466339875297712595111741477126674202555881756335348370920754388179202467864295937799195262843964459407224488688493828115504867791067550100823510024149125291784203757170401111352401687331628636267845622604218707522670210519636716484060532884830746603347649797758604296423065594283983399018123603971538922455606573923817759731246364244151363632763277377989473948438120351885696612365215685581091112099789142546834481392564436951042316097210157790069340920544207082668365720415947312859532301200008804240883697812315196660595781697091681078970361192382048973827327889003218033553742828938833668683092727640853275044042071070657881599734935309539034050320210181306787537611368026654617642020436311654626894131175712336448581411100612834155966491128714039144968681838569157847516995380639938176481426115275691636047509131763239879898995226821774760965685074711504870977935898262020428853365175436061723016467871055198403343167863178785723684648882920161704796054931920834267721164035938795264074513451074527102989594058660723397533392937288690462480120266397957727607437467679688490747923465228089218908690143525554166679875389683311292472051232646476157556436519782338507915658308030057377544255587436307981928536517397884794182707337402647267278272692120464717086194886746682798293668556361437576163353270824747195762105817982571429871193001379672742640861564091580494794062192163368334529974701799877473827060170904304743465145800939724633531984924118853189885550594899369080927126611330172526459180821055201802075034070836012627675704009092430604149346410130895628816746545774837974261374435806360118372734539255876198297594545922881701124048299170651267923874056025173767803001106678735122489110319225665320908385087372251466012105659841931683435567760466765308315200535603853323768138036666776583361099850115707665715457254735040499421732810518527795318174848033830027071500889455255134077705226373026125910236038615944594231338829354138091456979153222946671340479737291381519046633891612158832093228782251738135214398337884356679575674799898403992352701833086137023489277926105361661974526518091594706479240419922906561770748051479153598871689143401559405181931535112949862815473230890760304143908779237143360148754046766666392189151649321127982544549534502843092298347580859727236537215608425581319803411898806557317296561891535968806342405133290629605878218738458553095958997346123385437054089930092769601984779122099562765809305287431218279311849923347849368523296787138680610216147426269422298963622843254649703935645786234398291984605808432275097079161348711787849661710188918624875520963165944640652115294150710567624989080795655415834539397597195180789165415723767665889784470234644558207716934373260020813438095084234137932671583363773571423069221409229031500877597648084965287584116385260067522591888793168932517580415036686568507438968416157583203326635505727599357162727067029183345416767520868799242510141380291547056402758433052960750910651180517535852296752121959648604891463309781409805153404698330050819370258544740115738414862898492249565153909380276048606631347800542546009339659195583708129714199773911112713425366724855031744853481698036052318975780708378392057798205252166439324013842671227923249740460571580123598059662669427628553169214322035257306463108221135806382642568417757626394675974168404950539480991109583863232673273694895749050183923885241422449549701027104805219359554178038660077641883847539147008382688788661149819102097339963340451978924104792122400429173202259689691727003402860497947067589339272685733365074095612244409681332619217765995520053921118989480252101505889261240347252194234176533442677116985122610319757093954522654023450183315038005913971758242979849947837403365856328457450450889639590471607675449987009207384162742284301600841050308790390118999049080829040988487232593978890225908097159620603215323585194003227338588859558713127078188476375020704183299934040681442397597293602373451818623710875912169036287260494622400796174934975839278666105142828863029445271136168887480383649261624494779832863632223915152761003391677953407604073171892350260321897446839350210695064467302943711444384149550035106057456656701773896769610938115551225652267499938092761282340472448795221882649039632111382862497234611818508814312031871727092327534434102874057822663370670276169146266529260048655379644664516588868493620551324614194161874191221936083062261020073003151117547623368887553603676925199611789364637575151299479945154211433240021682241300362060648570057779603156654559095579844600577309449033016798799244279518110918334777788275552901813023912844777660670934028883015452870932382092088217245399067578714554999504125092145551517309449903473755517006863314879551958201095059892685458530443219007661890552796447543647360158168150513349293691199876421958187007117485657336263909211125696311905395426534100062708853731607871905470442291331790635601899143076398895888411358909465282026611281702470450265377411567202616796857932765691098628189129511576984453873896240634989059360984264302909637808202569211597810303434449238920794525533301935693811116086520994326909984617091472361209044687311400511431580816982772737226342663887310528641008769302556283433881469206449760339993982444437447414203875848682192272326704533510866405272751324002803238513573833872597965548818387404711704255876466544715546009597672749832375131053835891954747810028588456936121994496323130794933689250480551174392328409084659827069312229621107418156469202456362443637480164078595187995383464330320950885527606192325784648224560024511314171698556422742401024394800828771002404116561849699928447141744611526053692926563527338749004942428339898331852073645932538515436809974349244498541862451267323076604105554931549269009489313595713762367552327429416235823468876479288222510860557896411364686975141718865300243250608509334647533575295575083103446229750444427852878102653549417907298251396651741849135661936460264393620737047888254663707768781288690407884649214251094138193957438686668142138246920021063703953248770847746869200895973030105975111361554823746431126075656995201737092134666900846905556956111840901145113929057212152785421865247941694560460737250169751349290059316818852228392189552281078487941145391562136969951242515561379499685987216468497311740857593158868861792146636461399610361818506609390829264999992518797979548172997213836405210509976501022519168452683979034382659372705796899285207463661488432415875215531318255349043786702534506359860523086097049656499092691085244459148229036971118221838731856824584322004734070325557026915706200703777149543028478146911000529402694948045962669669819283624951985627126935847589387257745052865570263774556285549790373320379702307864306836630726497746167035483331646469072079845034657238636235385821413113868764848763938609078805561759111566193579667201395060324509244097587715754745449065758241409188945628699011710401687424500964318177580540025709686511868098785076133455853040111875953619766776780873834996545067742471377290317361058969259709403738090322138793269172334451885836242356737629299946825861310718848335166977224898249865501875451692550216870773625017079136086294477354229062462746053639006220002563366985823280577814337257663399617251909406904665085631093599877207149334146794516677682445901673945717680137703555705567055050100989888626314341361166832987449033372494296702283930104824914201762802783658250442396918460581910270677004922451820942394729815258826884252503924261138948044575188685930746029973966377503536343956349537710605851597492678018118613336059459709492198931889760352054883097808619607380336206159905034369535046581233201443868384874909206770294997600778887225585194294497791248608136482295385676969191945518536182344763509803572681394229551248057844366549616448669352308817738962959100778296024057616301538269097880634691355685661209669686900956009697348549216162500310024421695797024574943826890442129856220239555309715308459040780870425450121682939647242997608885921150412455220442291332506433952249268143855461401731551363580202100878424063844460245817898341906995697537597293725363337237567280962213436925999302955986019916302707086983773163953319840192014846915409719825916163074801716045163930298639934978583402851399530972232706204354327261927095028973862184727024929341331311506541562882739832372985759005987645843936386423771353006122639860646234893500177279780304184789655333608831888898705200854334728821148039992492922817527052190815920036444108796665980206310080503196218690979470704137451341066971526469780176602815072764906745350483164031286581938435018538414797771667512897959509578499747431927337349441581937540501598409277230566916744651742587901048209873953154411487680513471309635697253189554855514933918520937347662103987065323261403042201057971837067974696416565828594407065560348031624171340407330170238172914026394420211396210330773550314034236896429983639703046973823852609779112246252187956704817568393014332596943374539963694570348268076467957207811447115979009871513519918929568344921891362217776783814889696327890427004344902497058879832710696137049215153714441798611961311925825709959340326171526585348831889613462010362087401788028024308310236539736474063026808135181632373658849093966231738939990450244997542532007253929549656656104720145750622224403125848542597840710383516044611752977352739015670123745441359576255024672518091534590792751445314620876378569404406484593328188317444999402649789425268642678843120766012344630858841692314052039168574095283745524561549309381306278628905671437880108397995315493513367748186573063833491973109598007597817803103495282088588350052948047887228119670073794575633071093378790753874645558427655374706105745925699800045985604282682915811815923010956848464321407310416695204537193383575730411345306913448830930944240212337964498012433105476735155470208374997761272111762027430398860565305403597581967673137255443670475169543242279707423767983394489554815397021002179445300435511124894915780175713641212100807489610551310743826295904407022094291424615521160164389989650057277856539988321481413115657822107472573045951212446289743663978333671726028094324472136474943698522510628192123854050423469174829436072703340031124356161214263886742126208185451001496889072060835678198284521314809446568085688056858667145132477383585289804214920780168460925191947605081771734418703908783994703303692449827119519892995887812986501665601529290991003982990086888475149132712696210553089589606481527467252093984120467132685412665944284057224738371003900516634166603353725805184273193815856099718908127105811602315792113728052577227616610875531288164390767102428146013125449372139836099078453457059874876751924813865705223005684163150851871092691180397087948465191923684547561857594496705248533452131438145827484311143641936863804239477482593002400131434028507091238695634540328713135184393722333727998408394458218833806349781786178261573753603601479999168567234177343492305114491160928009375387943422633114535954899483008990723371662751126097527870947652384418664078060897762736264060319680434275727812508875053409329931757062348376927097491503514053613506802013582486946408140300656464343347622354408705712111104503910431577797600494778430566537255202328553642213507246810312419264580632789910828357487896735297942721050084367469478239469948593974551198751190915168854251521370260649905356480798351207298689873842696340068821208624698863950961054590549820199155869735695645475944401886172687103692640547008877052164459592188310882253008143385486930249695959508696138787581251186048149853139750246762568160784930131101177213086597790741554218870787018895805229324274494729451458758511819521797341443301258562480771239005961171202397908043092883465763860585319326497210388972716418651930987766832649345441347502484622785230545437966513684723585202586221382525319028745729193029330475985529468568307610639152131316293716694549828551493941827480449053109675182062989901016484988189742893294612267190482990846135785475947082303381037504280419770959377693901515655592035619643419573045226568936900136210575519861135028067872962498362196799483716355503734259740682787171027886732248379602265103627378151807891317125396072384973369762031989407082151352500711242691807571209205443035550748783423284781670891611846381606808381791969385714605072144710657495593267797006773195226875041904490929072499190454224887516153576704142008373187378409063911658931212100272845752247507418551302825415979194618556038881397923610769769417033202343463426950047455351739953821143911124464465162506290385095840247657223558507858225257075592208181066782185367871694262984522946156226062451124320182939604625891833398776130907469137584696820843354216944355479284375186551376623132338155488287062977680049400305384249899905240307109722941577185080850889865912894743916133569589651848484821536265276448804809343003502278912811592808744120020976244616073532321509511497225663044995229919921466733428770417628318988875607614722481919788080848166327392634668401219256510349044099036949117559430585720962497762393033681439175180064940602588957140720326521138673970328139761540811264857794671423354360819411347223324289353107536142483240199113040701846781221997603162090513837245346967020769001100103695590133031513108817902181899114865397193752492936486810443595586085260349945449832363272017782523844979407768431123805974051774240990512020897446796021674845878936438477313486903046525859338655118295223433012936389286502101858959097836319863372056086687010426912603044956751538147250698387882025080666096894913530376305383891934976440497529922228739163039068115185217446318198296581988109578285028318660816731587822275377366357409901944760976544409685709219794163487504467647109331298537032933902618097849302241964476223677149058597940282231792587409698749790537748361598788485861607545201831633657967769637267636724975270095542233830327052956600668132451795531164495984224507185466903144926445869897918504262846103673504818961296120543542808013308237789341782824423268320885104398665197802436036170526966996131199185851703248190505644048447099268960939163521894665246577034974525998615121485333030864558980168850137905075155510806321167948266727564659231458013874130625959240717111496201523140999812897457641373421597964974875842231629605625748178494011240924376749095537571947527261923836770904004824742122982172973323405205425119431339984339727729213934429713317230126488186599658316911984003088301355314619084428919469557569621123223325126369786159424774312976501604032082868075571442644158264021978663418298443898579116501334072684773733455035660327572747859153682986344953972352495612837061328135115097353589365040320828659422225551342797944676661826207639084094822907050491911116932917762886731978771767485437408202910053196162439694866077635768860734239881791069380762207279473424198593565317445525589950406844659047351166506594022398522541444801318696322913880823374962391418226052702512766115343121037055888858540899193912781485343770555551322924992185745123146450316863637197499778057560544106099972708836082792648197211530221091473030817398380709168791575708953285785634945612246216065536207307287470692233225708301311049046623267341830306758915136687575092165793914455648140526387000893502027200191847448852685850977473811986258407240216323058451474556406270877259833412883422645526257799282559599169881133076248726412236670991420167712695282817584252395284299942066128404030750498655575674081356373376189834163357551761532065031122875189223902840760510967062901913723784913770377730760092365911893603454375153489221017629418944131083143718716241513277135216801880628504448233110937870562637557646106870861782785781174504980530121995182358611308235246134523509036370354988614746516361169980860939558231556875840309473692974685656689319384186389594690454505951070785035118835873677677533441715602162801803649254203461491826554067385776173528777587031200405090685081490273322156304850324514820894076425939295250326566579436988259303795202576189719010540761250719290315385279996724469207385161874873482572678861623174393160464647363492348490490343696857157716442972409451900499114612372902689478950617537055008514972929169965181475914733122390082098686695958854258603656968732350580578495201571014422643256799773897957234018018775095816303386936118380418525236041724686924932448326605678920119850963633954101265948987935520632713968217536036515176627736285917627565300380433256417677117328565956857140554127114338321851302301186889275072936786505160316015855854583696115488505645315751582540413756163185491351488284054855548354796458163121714175813478726204432186013181561191902870076978700566299843176147116497511550393485479165462651656242771857754504038430191765385169625878244321834237187966910224966236754663839960359386917269723361521597633317965817619540066864470798658716065250900905764188200302974773584703871815235021344194010702366629209231044627080387061271768793882573151098199132061767691940051821036885963971637543913506673185424534526214295564378911533593178773158130741962712643033057035148257362980883025600977616921163492429090074437516612436559831280690105718280373302363824200871712005385362489798419215994535262740526160646837071738775623331709136263089348526824327502392829290592815994239036979258951650391255577321546875617867603874682325070965970601719260488747118210047361612398359460536467331799601449035532779897751105327577395357793895149243901051407360085212570894987875897405574951230890064011805805021469565764781877204606259548432295860815346094108006801705038671696824375297037939781911605694995495814773319209621218225806161672015527960678443173700371251860582084546543342262003472442587386677464757236767524524497116828376511135595249633175517931351766594414330940277557066017221955260940035154729765792522586732924911295614246215503430635527288931581203206904243810209689855395378195951583299737355345310137792313388233301029632568398672342185497843841897099554729788907449648773879562948842317844666508908460838245152833847274819637279674334776625675782771462810271874435920255473763998437403647796073993525187838428451276482415696494082930477701644985835316392074863451515244159249863510274984496284908749690264836725916134477328736874086653477896739142788724356182794630384219414402967766904833872744175860765704300550994083874650484497289897624549819656549834945599688029504877116155031527480891127833371971506157175940662361796608257605271508297444137337790053410874050224779168325583891477806206087196526113248641622494289977409964878751900721823328197616832155848360796550005338687040543819021901852751274323230723920758184853366746742063387137751597429376249969706463353194984577732853331765365114300039322001561351881620281487378852847460162724549811416836346164289766540372705251859491493200993576972226462297495925386419226277419453309831369265900909921639339883678324432463296752365496959510790180608114243024839819338199902205763222819994588555996251680965278075838098243325765989909530500652580901574312697658170713901619065842340549630643160596262840511728164707578387740067078583512707617293610019652887988653595565351098042166104656054401166008416115659884862799550664607154534898248144699013954083351885289772620794407404905201007326859235945618992844630265469050107369932910004675522203091240692660046454838863211231305105191249669281807164716727139502814128507353592410946367442529487947167912620545916549177565855698589762467140137176364938372379388001439126126450159350352393918695538618788856032075625782912171345387146683725589513989841140728584395837865873595759680766804131923001537952528612311018311118812818072652295793789808017400798613212589375381636299238624006792156045930597645183517619436520866655018999165272079656408858063027704303575472428564634069537354154306514977177061502091853744753054436264713581924540928088668746974943821015169326139567612638478595604024213482693760779326777536355494688380100524450459888492729737090501074393755713037323331383681257979815331259930200214538035969058383433684855046317588606024992527285508831715512525060332072875692855886109476775439359459969094645821270932844404868581128385089467195117490540157986980838547536924413340760710823622164292648244230154443084902160026209613773580431514094735510498525838462558083983929107059136850544189322566568419158942324688966366423480860361925825955572146540189809753882576627957092524119562248351375434690310332881040163449549451754612419955446190130777380430867338253516896572753888753820025395869181126337954823497587166635146937433596489679999968287008785047237483342264328525347633580046310437030612415804150830172417947830868728768424390816663414185454959607075748942787365360389799615441819655976088969828696252092414940470887409192451653927186643399384003882110476281058438637553962217736172229478251547054838110703194954946994657064093542086641538208173564685344506236493699831900513795497692386027826009930166125497277102508314656319724703217136438263235547558895230671483621237956964915137608170305249929964989445571227282087061856896727130341068124163208260705471808507652911516578918104136849256229496672967128910481654487562969292344772858642649153960935873680696861813156839172673191545590754403139596980092715794405480296177755835534546827091644302857679193065435044115174344185069368552448014392670380207007586136100588715007737029050772506201501016791880465914325313068870304917457466603300021102223411694840159313471793749423135215803547875464448585541169572646918237633035294709448571947050639233618022485192480023482707999148690316264898048663680590101856042649688881939564350575732840120185287943874223433466175562034698407743523165093377619822313896580019724573840431003307506550002836446816940894127052598853792277581689227529198111668514545337533457763604019487579438760858166145707922057112875073559129043496229570829033675586037234505673606231525682352291232325974780514094256389138598194603286994909174827040988215086144523830895712754142487633486880765930406681650954623084850905189873442332980873085602970387479970745629460330899049119172190602385880501564301694893495175340046271659293463160121843334484510876982758969153072642365479286915454945480209984148225675595609122998077813687860393671807482913547861696578302237503588922660097895438150380494411803898548612758263564123777704222340927144433884085938231886123384066442657570691744087151932838126978166158354400246384853514170972182501213762854432124824194677723325719816484329753623886350678381960971383946514571398670853885431425355630653412202824519042756351537068562137612294148102084875060661364718628532173597842660702263327303599216690303411973520496937887370110813321351386530328613732447336281131283932564009209108703248183192601988703318214287254033137728329239124283321817319151475067250839309731220794828255533188822885705488837444863701892756799395140676509748756422752879480948707550247153323726346809242993454088237323812462641753462297202449162809925330155436829550631720243920276549837273510904909755402765645098576498407643530710015199896203172711392994105034071171513559151409636836447164138251702373342453807500498623050564211477881579462616392852003331216650112156933417433229414834797234293199151487272533647840270874542875326428761040130514157186180451794254470938387155916364248243475459459774969829818510981560439167153698058974090696715450628305665956814115933021730470545234894322989482803449025067454588301990848807892813953134538272393737936605956956474737122572783231851712524640369007676438866792340110696003317233444714740673942088068910337877946463445901795283017887019034158653315374048668834685593883416789395183874069287054981042743891826535063035301702023961348344276486935224908488307669716377437023903421398442538034647791285083894247486422346254050540948198170759318949897805274085868923041028840632904157877305176492367250026185415925619788384835276990494725591127419196110079382204690503488612713291356586353860423142547759351780394779922946186856178944936684658058571005737918253405367748453475758485401909549070409963092419895448109097384572948042627160521286520090743709461689528908766780968470390475650306735502469277600793990786543628393348503614679379643087797714668249081039605890037777516223512121219782867899077414639752375093060054508855547746536562390609334274416835895716052900816519272956270977708572583269418696807974343525887019725420803494619529037522176604212194561517648181609874616927766623746170867531206105463493577518754881754181819009176922145114491761089741924950461040527143163715201429391495195163130950646207791456478937172841398839419396963874757056565045481567863573452342594163625423417551689757968396987332752796172613756595794232848384338369895262838157095734712440079781028543361220328959078515972357389129781977699095064944184016812902380864156656950034547982805448887231584984763038819859600962818696469062965632523428527023857349397631421487436467253405281764775546796997190341381559457062968810508607783905876302934710041530046419184576548409449960384844746458008554722818636189828315660395586109794206420771817541271919571563241977680145680918450707660483457083174100009200178600200933778599308855166362947792561354726837459833564657841954248086590241737282831517985607893691467653230483117866685145365371443881700798111253803269358179174848474851103071728922397911581168422684040312244816169638022242022350612037139255007616426229704147342384196543207419561368198168174486355569406591318128320534742395726514081123193328427303285261170848914124265208366504369743310473482967860198380234424255396482703785289317833213475423430383915851391756859603220383557690327268558820596488383779940282292638844073727669474283496012580646359432618073659551292183220435281568508863148839828455550784984324450616261216783047897726055276247085049519131623394337199620454678368322355224230140695609715755793495614362322071227584548990308954664960228342873424550464925898337367537741765496290561032889660295018567130569653338984942819496797934344996309725542661409951904078950715634747769105135077953230193795904264065476580899349629121336271428224419867569907647747962471152261664722678853924528756533286363868373290297424220394721500140582775995250126815269005943146359985602492321077536752937317968703471912174330497002676324141539532970374231979655044653206239970879139036109482979411902379050576746237337575765805515897320403842827280945530926024318522161127913621888158374600959957711569353006674683764085606915938512714061788488980919774623816428176070811172084376432642281164062676387643119790070394458356901048028084498288402230454603140987490385767958790275528017855320034930376850007560968442310665911598792033342887539994370123718145089897556927995443086154322843791628825947099580775299342664348183632323554390322478326463445773898614410929515101319443239186063320306602719321319654347539103448245021501858427990106422267376809618428594180335341743917527532973019080928237786347309848202034558199092760344421042669104924911818722329639824401417047884829000721129226425465660252725896996274083354883872777787384077858619885582812136706391921585601535526081284698049010962339480261296743735509457871875889492691372156318080140567720085388981099897834060018872352419124436082250412392878725805552003482658593901805506595362087701228703320560291823447241813361845159645268045476974694118029798882545966369512230181947209583826062326305386225050852566238285428331986472699742365039427368697495575439419562730308369206397758898276073790895612482667310366147587553724813338991519795418721520600712728572529209867586585108360026290728465476989465015815879358787935490835308485015257041631616824092834959773596354559676866939022050351269797401999333193419212609774325304658977168765500136104443732502723727409231014499061129029215863509617665268926300209642136184716736152585017151325815764805186514936265836137006319932919458089884030714557687857764532610331862701325080247660336852665606205997873076378761380901432048537303909022519486868768558486212208275821972417199200914702945566970333379734783888025945838956338830857048897357937383698047680291912874463170160288715214036996071963064019691926639121871142384657515929247208943188174924874079783748766180421508680481831658405987809313923622350301585474999254297790182346476993632713635268101488685909534157787975986686351674494062511373014330531617410059160194917936885584173508586831614209402968836577094875366429233105282174421699340338756038407392213642015031506343284307400193429080548422269930581259878039147003782038708352144538004967879604667525668244313322374615630564896445390568875244307939297735570424358685402071882943117367037958193905112348323440712306840515142510243028356643727344544719015991691725651202812890957783593489556948907274627420747072634902335239338071839166378172235579262812642863662766126722250713564699735714429384763963582187215851858622327111908237363494937772203110145400911521091811379434604844465888091383014653942557496083088418225898799302041241390214845920804106032576703443017177281232255087441119927005296958413445220835005256981063769224208774388692975889549946873415703158387413465543787495403955572359175622603296180240399571958558214748518409954096292276018787368432544881234551962016229398007947792247874860967135648199929218147288174462823933955658143859178065493438224189602130832079524441391215685973136242830157252738787036664760150135465530003633050381979584453722556711731145445352306812443886265220889143978322302775337206030798019535640403897412125512025474306151920650175000917716292945617887333432378098476464575221167065566116924520553717998649232128812290057904639793614094569369710729150920005563254131582373959056327303052449135492375318127069849784011314233835921698022835013157838261126208477909765364637026925451840087167946793257989448501881859788611891831075426539227717391401632435143033709984369472134940487314549303882075955035768012191104878157462274253996045971266338669480933595251715608447219526312499552632308884339853280774920816107362358180207178324897579251892884006565426372655888965248105577413614915014694367081120563801150068432924928950729060573730883322113496849440932425534744629888628743409602898994099764160111869146299657492800596133977570268994087435040095615222706452722689573975611709094799804615279653692817321232179280141442196096089192290667063359289317985369906793738874484312435016140548088261711636146947764269319519299769572993454348778591288653130819489834941343239827322813339609395533668219798741842857499839280232608962008191698502382298628326347163067044848817279134826472402690745940895373065199689504658449750916111323417115612431379851747492906217012837655385656511922863259467892366176336897362982704942320625543701827096021132914110070189758678974200897806427115821274690074034417423264001845987909865696514765392087998757872316782145866257181927874121439851496664932778376623832149265471688765769966712637059336036970784524871441078733074951391202303878928797861584807674218007704945344852154293618338191958217912118856887189912723462106004004775546803668942869240047480381679607714235754728050273394855370920109265483414544790309836351247671323824849781590015493069408620635583063234373537483650101056078182426223824023811286560417000125930765211848841113758964614221872081742206177099040853639683431418937792296259411547853968011212143088215978411514044413039455383209580861757197842836066465609650466767463684516650001054591828235954945140990745240242890460666907704139570293180604733950134034904842274308798377230582619135446315370581629830073477123543692042447536549088513209447841622142583736326676251862858354227680453609525427781293282258004698490077205223000101256785389106163145088691973330880468629692348452291613108962445185507899557979029821959365530212761906051485525251279097918308795976497125760445905562908280391750893719267947208810563500752566045699471276782713802719437680348589957904186382502450007959431217752949221422480881971823569974010981642389689798603510135894226677227220661408785444399051777872363108577399909096165403511273023311841315714268140227797715560392718386548658107606639572374258956753874957953523564979268755834932616281461977567836349382218703174393583781415671544376955858991866181943039828090283691904068416543442763631352279688514618767837430300131169820739567814456796305653373626273301861597702667451405704223450930899079012846057248586527839559502812919675980139448104397307063057850552245168528200120069684973323957133669485242280713770316685879355445632594529798814843445689751694364545526966196962379208954965622637305756292876910495606261491350345512607253456086261703014761690321208056263758460621494218100928440013439224726156451734138882779638064519063725946520953010970951402667900674064204038078244113344715790967709319858274938181361877957135547170056022466425205624589920205646125829067356591510457888512710955324387611988703895930809866154669435225640996914342233108170937192707872308181061837664982265804589551531415624319278680936120385193389587175881747550580849942622414158433406111766356299273770597066728623623925662155139037963046694589091755227938709480809909224734955512564877868526064638735912892754528538393500970413874616808472148782612177091552754934278751060430295331327795785046894587169632424937082378632039181343237478381740905432768050848127572540809395172032330500474389770567560576216045695437505638727721314270710699352307434035541953823238978031091456080078964462356458982127550997179841806143960439142207327096278231560040980057822015530249655647320515765114315593853896928699784472254175539025962084485877137438674115576322904416429549567553893900510199065394923207471442722640553002286169267966577277272542079057355674675672835853766849468407034386148200307942273938177432488644694494340775064300556600193396773518085710941769431381186838752092714584862475576717573592988533553538384649382011433347641207974656744758147229502097955993144906495617235188678443688004604416152589554135973702176422014641023581858815072905543356777907159785720411479431975814026008542937726104692391706327351368478485559662019297621487321974825848265027194180733575810791879957381376268027742565972574561666853646475657051533881784502851889189666149752241776389621718518610475604133276405207289963554353252969388964558270853008816931153942904036495962788141340799517981337777828085919630015087507341194842304045475203124410015186397488811347793797653494120492834142541766436834647484973227509801706824055213802388680982586717454874900441795457210523670124697847675617721838174967077006251968000587777854997755555305655347162425885333919017355182465714022908402503170420023688790044544409805741821538775923242197705120693434256190747895348575690805937602679929410691286089082297970090423197181780547946327178938285274943771580491883886481489152756582063987500288837605989808448060895670615837049253646137851397922972313863872540276250790780752586978254996495798635509711695265764447440775530842839859186011846858293660830653059723359097703780335931407595528098380864613185386546796986450449799949020042348910729823318900668304815306221860536730193470222272223780304549311711971000734280994941726811342508118976973996180264730452251468857403271062762576673746039429697818837268995223297041859725252351975422572011606219621107511132353328957604663276813499505758306345314646799878091260182168352767148995477511502277700747453829198544565901819434648244106167968287980114936683626563945197917650230768796171313565304663674506165222765375855905957376861650157380682804423123180465211959738342983059605793400566124910551219051360008007376163498488449916445672404156814170906838118476623258084827146726290516591411097970936865976726457174473383778992995248238098450291313742457840919701673889693611785432247565282611124342890815027893292194663712803516896208842320834436258647866691675940278828562762464932738340895166640981914965000888555438673589440611817106322270850749206606297154140930440836334770950681771085570462706137711532137345342464982254324037326417583586679244904279603805430208842758601296568353416674960973656353293912774055749787744008602299467086153789006929853145788438569059953795642185424504518804965926322640914028086631471562964689373296723537896140161347955599814973632548113223433803834291948858690449953717578851322329767421811290918972805314428545359960400770765928813200504249264360382327182285162073767314386958256470138386892031014576678769142994205201478154714350287303289883494019001388673316035929181847818033452753680831253660889148940799231727631513286828029556974778977364377508863700376198952293437237145791789643806256906112226952018877174649094090023444449964212938694187910406049259836736281395455461959903405371394284275309999825273177682195662942529493099644396420159275732850763472461634392433403045171528385974179434789445599366097776669756688809226075908043841888189133692926317381001109016564888235116342482623234081989761706490538977288502918342935764011306167392168619407408624787006811046409738311964822468506435658084638951571097269276599310056921407125340247750758693247525754088264349107638560314267296064998724726571808196315159458555611051165642486949685442892659846616406810116810273575782914000809837269752903268163625615540975870921369973905419597769412845676664947163060511559296572906718863113378844854557369954272367336589770161738720549800666794259557552874066551328188644251400311750665486094343424487459664790193689379394283359946703760094623833279586737649438727742249178868680949672152916805197999862314359974376963452587011687404426502042780885680318146348515661392469094374851709128823304265249151754734711332700418124305598362493262730973431160590254455570308499065135394706164209159897778257176557097190505590978562077411737067789750336868946059450578136198938159152012808906388275185455895273000001116465231193442270203616220519779360341414515550783068217950254639317482393712870283500083502286012774554395999844949264052062724753470402146681826281492809507969456536019600124005853530896434238345525106869478280642502018407208427534531966836624402902336722040829885786399876391182278552026891925970754625773639300015811890023434772671046830385663607556899603904107367280915801326996100410968395030981671109827452729331040799567219685092982832786332650415682767920357180368919398870953936467777877246124903983051522825797917785844996710836186486565855118566620169411672525482927103285404497863739752444484706250498762949753874194487364321417985325531567872953116415588773224610225802644520390545306385891742198710293246569831341235787989743086289026567744837280147157235402528973511537012067409527240728118555503502261446400035919180360966143650494562354735716110382185341125991811086386837949433673827910632201583270522695884257040343558631710400452009120590074785712440450028236198608506711908738874518880129194298374260514643659313243898281339987076086612028501949838094611092505266798479413992904936967296034128913711020239602790288061894863512679143930005960339063461875085985820427543756451020127024901404311550933130738790819165630203141103500820869731872693730257554614309234365570961324475999542801753816585703808187570270519781210498257267231149831291398487391767064563677921182117534569130419516572229479156610399492195621911658807995008628274560852568570287291987179399343226847978145634166893085477082833428099211050075864937612149728629407146055317878980573346982655394090681561891740873903446118219686505980444606567602187107166006721085073836073734786304159768655714772904195001713154883683783064887376084730775431569580088258938652657595822224667262817866404153654982329481866406221909573093953135710247406005350436595725546876433941844337510152878182019327689396235650706517266186206739260653556807143209262295797476964545520312960526631024940223342399558329951603346597589569992761177212408707474647893880090845338645178202674953547338196943652060519531641947509276117348384276994269114110011142405568609235888411784938767063097193222489146857832654826524012466455663397311145944920218636256275422773319938106806653466168951130505725027441557632608358696281819866324610632416038611462565406805006521309823246911417992041152991929558195961557961826662242229954673289419001140293702332370128752564685892378009022159636168706878964648775971436136673895871840994421838334831781985631999711274359456890340430275394741317651689881856717819806585343498436397431567150118797120531895023801310575855085369186151034131281146581943018738797222674423874413464263327122251345888927368637302045117752119406877360853403336460153464920828299211497961669334320694694778128462067840495873447915393902543131157160501890257508119423489205046297420129091869448321176851196782144772158105739541457470977260104151997603685875070957953874989986962029067714775434077586974490529468233280718346544632220799901951698757634509487559519354782660808456386391096724869707628286300101046035602204203616623376090156861209247407364117776588112847774295203134517661605395368812694667344166994536558711948313845110413860163139140331489007735789724320541586176455414688306054281943254127482769948677169379043320829516588469068731657295758832193832301730642778185837030810218244823263852420033797526194313907348673474965552950185720109680526708541900815864374725352470749568975561024029145847998263369895102308188252049379950430269905959811139977144563376011728928799204197268869977439966800417369332944017481274916041119150825692759387112279333268213172029739421629821611682094904405763519884850064225647325409863944692571318007472070146268345501486554628478328440248245611840591108896949169030223729709416617222558657237564347044142586493516775079940676159269740478492144722464148044201346509467833291917599510169316711260714679028152826245913103096266188414940750822024998477869091663032612487169426199018658640788623556199972620175271359691279856617792146631037780527833423981898172194042818226277917997118388512696889587561319258792065213405928926068861722255517571913167377323806152855216180825945484925414474496668155341065247298593060923200095478794209463170540029152412500960354815756714732634931288671590437332302958773667911807169966554960286095825724419445569784322191770859403864568285344581296578332903991811286023653571262880166280661816278014831900604835659671325469247594753388842076407217601091608736513782223656000202910569995535704828354012147322316741386498406688583441086406920389621678166851538422156813418319464699179702741265371926248407558600501859613999796909872415538504074413892745542880036937665894891204572913980438871040534339004601272975943079267462294882079459590326499760152785905158094320310049069631362547020133879100257989560986409372840811071313891162705530454989869451634731733884575147613153466121384288069918284236860144481682024310008421137310719370421016588105312595866844828356536483641608863704430573599467230164005205414585609842928204579825689742148165497193261914947671093196553571356233436067307571339694226619896137388346514016072539432238935286230495522260092676454666983033322951801848641572354219313477474085375363782578577744116802527278831112848873801386283609060969812339330496324361844284279158253316172798978095610823229145429253149058881533370865595680951287675537877760423390732427348831070151085097942573060896449291895589259579270754086135295354831673620065481895412853975675349906843906859547281629163361787622329016283049528017938093221186331191148157396082909980252732533596519818184995020377203878672648100053254980030267376160801753371116596291577672220930035483574814415051312220011702631192829654107144740493697412156252431770031602350400433970522490736636468017178326191565105510506529536245843603538889738070428557391549597377320615029039114907311591501593880107490062947684750644602119092909264857383943303339963594678912157323783138780670202833614942340759883124689614758355460777671491099334558623376377391640323996671344172092241705205343012664232491892958500277096046509070066592818113439633500534990346607917154199468707478537537127713332535054015923320722514505488719103347101799027881341191951070164407313522481584034820324376347651763829589318140481729701734769316362373196493175405611501823170733058069306325388177870689455703631100034210893747253446140360517214116767510267175800357924988288906741874654036146449676817117978942588250130924712546554641013833706981615015765161081872020056486464031639379790145360946083817862894125732189213419260324230756928763817747178261339911860338839489322570523764323495076897952803386674429217563009969071738136499908191581103760806835105643460974763255431889129493901816958267609509458433671945517344290352798702569193771200244454856694308532890042142009950571362115905587297794696836333619902723414931222013996277985594537719272108404193486074195549262523913479685231396173265478884283765321193791693151059694204143116135929473078510375565179691751053804521444699794569308692729590021975749075130065689899106835354985171610003233278382989348695357485840272889746633340364384581383226156584703892887959804744691111284898489796692015084272692585240701082044078474531803871097123977768688423317181330909263727415206437635896558330486261485084639888752724197178777266900280173471822033937720377406883020134275618321775167489138898169993952360388849879658560716734299272564269545379796636425057415126847643833838293532353423922766910649962007628706260220063256209939567789832737319399478843940982845402630845161583241089050246097954867744533198693633831255274849821736528949157861244200326302722943933543523106999557943707059884560359245613733077226428627914437550382811971638187228714216949002364987283383037086415556386356115930518483110307908413582760291991146861618829690564331551310462562824797710221560361233054277016774579708108030288141190218253148845377607003903876727009690492122098876737145864414263041542975763583293850925739435591599595293835146149655890527465777870530034964808775704713323015939299960708182701671558041482860351906840065959659111118400334795314583168986443880513684664507735689271941136820340436671780239857152780505671806868186062558871194323931565600349035581918490079326327501402453297257183693666357774933103983596397225021703057785422865002571906795143819949487448894846604368896624506938961981077230208856047271804079502564377983945745727911368176094159834434702070704094975200212898489831350837387469761896485421009612853659492484018971846126633874751396244782830659529708962068807646114568597078637236527431758127594821160982958579419330745880921036977101272162030900003307224969696487991333314771610209245883549244203758336935382016264652829352791834508956987073192756096815841394765416221455827486104212454943182989033862211057784704937080430799450977213104312620585579273050100581970702592744962022523846738259871513577719298017114217830728741292861505712988885654916761610515810315259531145300431695017215269953664416893989745084132485783734792901268164951197510106482455325468623105595675871440853960407476737006171747730449029187547635624633969456258409821365026146032539919807951446060116204128246737896339380713675725787796833505036302238209749496056405934046432156125595792377284645332847667364135622281826726705008446477442792158151719744518186992120269222014874931116561207702170863565159039201928179779220547411176764487232046970185797916218894268554072815937359075888979726656698234425043991990529910983745783904961721185630912702821271963248034206875522121802779312183446591261480253035651936902762150003679510846310184629695563934471394103576045423890445146234753864737445914978878176750165959658876784411902985615576568027214410846119510528913381662360590793322803992638520478060908836343740922518093032258987507803512423699776030057635756470650793442675217915707659686116890958593913242275407359391123956416450009901964916718085167138603687751298798513379305652164998068940116340930133709220717686853116817953492784296115147330431140946167139582440613301100371291651514073266804677078780843786410204893450195922701436060686901313953577655640281303800307165056042509221064224580711785120130969025991692887032773944164925628679058088278208614187158490333964438343362870465444012287704856706525164296999355425966287043781797880407742606359688630011340164587389282186945096322546016596334768306934850771695955671002154690082570924931240343216578545520411384825530265069120033313714394156468666217597543830010644775416317472861170180241852854663863349865253584494873996646693578825191619344114451084489313082941667511922836485147399405479409460077485264763559344066509620989417495692957482078343069852832865345919573355197472678822604194312385541912629833932438396820268840848649601100929263385408009128634269976861004881822948940798040612225109047341776892081319188837304132571957635193691457924916934270611761675767597163137668166840471058283299947179040920405069886173284216011847918924894984013056534566525344772748706541413658411825464062591740404192238211850279279709608726410676428544642118268826913622235535428893427022376829964342888136947220191967980900694135248033112200983468145523914235314134953249912470116195220914150250993939534271038367699955539248124584613189690097038900862813268007331716275910881914016478963561438221708705993110931100828112933243478649935417520401539017612188814586322318734650584722893299862766768577378966812310210889439844149138911341598311973231788978659831600669295893539379699302500028792909506332148299118327930492172546428074858704153585062390768903494913302544968278587091656075948237061956297560392793268636740091139947668516072436323869054087112777903685502341076982155962828062213808071126343585620047263483671237069205285041499369299405375665383830019906010073285544424426385686179878292146000200334224924472792341156871144483241354131893900611956907616077860788687914958149240227102999210331105978207920473833514447782233425465061919097899453432754852120997549633681448027233629849607857241922846869768977215549681655365961404691991182576956056676051717585923801377714337161518609618393032268926152746722252173537424100179561712638849211333826916353977272137640762531057933120169632088062636348340783467014116190393248128799542955590366489572829207248283582239815603516903974288339216856840682682889975308724679772974774392400784028299601082999627915924594605484236667861685840548759533837955764277183284596943877544112015668496862656021738471402901187398279678930176987634693016595529304173255969757892626234537588142890924715844772015981902283750769285276578921898671716351018103481067766372673375268006361784303268886560763595703246302981793760837930731690979833722280362670494669345207571471051432798011325643622086242864225456731823886500587839903753832946626737735182247984189279655090632208510820568147577524265083021009137669520376285084403614698818719614775644826178280461326444821165913710383551190927774117851712928574038809990238170737916830601526025254050871207167340947109860902210423359905268351110410182981400987593965909340216204391836125887590123708121505790543529984950427610092559075831601713397415195621787726212915459903992461134622727563771032508771012850691485805444127479607998020500997198202105896955766561910268925322470858811736295745192104566533465664188455764729411892113869333408139985491227742274441545981703430408780118186833768133377958429643899979214031367549397050056508298051282513243519199961272496699440336596725433043927573700877942740611975157811900197016282905962904818548445944952482165212811478688315370673863131283341631276382970891871048937120988328234274781083291659600630216183073582365372005119904516141724495943862286472718434355049247729965869884642763215721527365317528208147581966810635109161420041972578636324389481523190343342630817930735856307711761022092413076155714408736075729747399623244143652035434531816938666763430798605765158308694727986924114257698854338899478127616553582656038726758274770098502112765196508717313332278827946600589056950776254031041509493114746485294682637251988292837941158878824832034867780533814004006421777427825471309457876549238135426093962047120555155043799332124732168248044312372238205288776715623715818898941705425288465010587121907459548489020989409317501547912274777607207409089777334322652925195375534644422325165011182677613152261204333532681320196358904348469875891864092629773695442531599989174004877555239176259849238065516059304911276516786296303419145558197312212831403688978994022844979769197382359278213188373651877268282880502007402664426788900498339986317335806080327187277796379808262317002421227771762115387790639245335181592705681921452448431287840634759519471364473083324133226003571312796601819812429492918524258548754249106376080784242653487039153672648564209322785209422608550399141070784744727992992573755675510508561630822811800910511152040150246721762392024641602561320788354596703117381388224296741698868941020994576812306826123422955418131675299998889239099617166113403264929514762517918438950895460937709786521419753512391957455187773693908251323289823008128589665497302346483719260205202939231200845072460522869303444211418641592744442001166177066460912257229570980029187168230759072166859380164865979082520587694376433921559779413804065257707138641634791428836844675007170679555704497166332947742430230312857908291540717868063148779547465185231315913770753931257806532663313878492247239778594611328313594578073834041984294376694340674399070998867785989978943441662626067546841733847315305683903271092749520969918222431578675178207809282965308526464144503624415912158329757500041116188996372017281700335841203843045609398215572874567258067554138542823080425421521070280566935849142558761421534814644979076816826877561007137005541626824607001433120931915500032546139954967509553019192541584169890647326423355850052036446582935999166485677470357692295104080313682315472855631795865477678918440609438646629828636834909144275018275504121386188959516582238135278543763231904212391249695446680573786628445240562528565883032731707712145363211777316474018263627912475747142867825690165969209511071499146542663662149191818955789976223509344941729586180614969001455412003010255633510144712364200429745035077025075896731562883117730619936943718373062171652370312596261276418149388686253178331413041308334276378180381137992220874054607900338630551529213848350231886418867533253711384711649134827416408507970177605838944053652999050774859639747527132727754397441511991266745600998078892743047356968885544018923184832292648206121873330355192307107840137067825331169591056442261081579349771666623940352339086909329667855053812088201866392264142632264518479564711721449488804995131232153855872176568231032630519465972811258227008992292591618280119356412088485548310740312346407184565059411956461518342006113217623603290323511199007842177154415426070183736110653976939666030314269163770641367041061433234685210642454735155739195792374323970253167193557099325727070261903119159562480115846224383372167223718396443261991935838095557398991598738563537052773706954544025912777248742401011324728790288420105768506111724101367097981783242713506904717428199047939538166678999387935055133922951340168784472738625889068447504829490786169328136690052937424375382892401290840583924630892142504319131887108068914624153644243027180180306516252900375624554322013463384873427740425221693924189992028341797885117307629362824252394107907275362600258462017034637877292321594040614466194745941753569127685130363463812780508469167919254189593691067258020945436796221692429995164083911177787090542009748961204697845856119832550523889944583020125427134985160863752764134311368484877579232946724116524045157550615133203886040857164675141174883990335883133031279775578637559227247344057607749067241396221196690088984190894619603574815908500165770505467126409073303874659979200296423276905254775765230641846635338981947428855883870232428921198585732729035252498676383323005506977496061754547550507086947650089360716139016224631389632845721737218107367296146596306286049550880919416259656708001734144055248542217238843801111435318531782930415407186688209141911127868159016168408505657768399997461457204417272354207210912609413737640877980645939463871431627947302639492277142620446397244530576677911968178819535728263058185933165675726419735682381513827947648042137365205368112105684394669648697397986326507624396090948979450083528484116269365901501535427050852848722971044249411091510976970791117827083426025765131329461437981722783611621294490800177374446559564950342797222116295589624120449739320517930188046004543724773971220007065657922192761140402418048874319860323368242362659270305381686060232076440653936203173527571336216206582867412953331601206150825165870032433627441570006414381777629033911748127226260773480655316142371713917738880601096763482463039541307301262872407579650196517990530755149521604570523861381040298627135707141944173454850092759197292026082174524932067008312285603710056256111445993793715339420863450561707262946964028274273244206187438307201570604518228185010261711817388101761204055070563829277816312040640203231909988610477132606052577400259726656320919775854456036514979744576923234188487096349137287400201130375166442330396757112277785621814937877476197686165122557770251279768849841007933513586215636878064754040955489092701554234063146179511016546205989825134230888406220262369261493417447711334167982653192031331106154001944432439431866460505347721144600119657110409273815049952272660216148531038555083731577310166285141419750976401526829912905030508260717434590007444445344720541708808079553341104072821856020571172896567468670189164194881715341493094790130224465650223446006545522102480869369293736576583084235824864678222567652395325013114771827686235889724564815039706980049228943401251042965934851925454378354959684505110773230180566294684853633692075396679640220312109083045199983527466806349992718003387530582833649711314076145605811761998855501532357814985801221273775393255253051049940025242376518760191106440892670466660847355360510985127674376123712731266016149458496540834166062656000395995669793087385653116656392744076514151269323977133100002637558172843239529619814382502474341446839668403742470473600887232473138023268941638180843028884129391904413267722920601999167171034213478217824079441242578909801596515468877015695219442784391266696406499476902270816823433092167345364194668053760276483049132715259035486046174835242077363314271526297270090368026442063046608927267520844094314031673484616919555165052342269172326076175980689886465275143676580594249582052528899606358911738759285942160206134723363513367805596574185193348270977928649167553310798404656571778976356219883523836491142969774396800659933563670822189098827699312472815136721718772912902778616149830452504437322963843114431683528625856402411170469076511426423523769678595913913328100803986377706396740970207592542279716093508890568902155259526996899158913554096200832018222373605055636733192510284473914457533206721249383092820668828218244753190154450670264926222814025790663444407717481395394663795500670393093135652846127079276014641939688805870892801779399950522622196676163837895453033706810476709689756410210875565351520132065075445456095926615102561843694844329496703400371267725996724292668878712069319954104372406772546074812742220599448730244771872782803115514653665607499302448034336301928218600685742457825161239308173982524056697563921601644019941636377643042756082951055193061176423801922323182578836944224808704455310519726817588662108891967506193716516365176177918589625333828845201627490261665172874550205705439902124863766591836365543103849398126718314141976220204057094831809986166767268549370977322177355205560356343276264354180295140235478513220177729946223564566782898177480075998149528245727694925063969991309107219507707723644298480231981605613694996065087999964165119254661560753429873464662828775300581147694948858118728083409881369131979808633727250237266646246895074826916348735246622815875707745597208140562223428861879487216403557084437623870184495871860144387256859466600668112014769189045255100911792823678548443158641709014983815605488834563177371705781465840057023113366177148145378525628968396577865873313838699827954999627317444518444302711817793362806257957882644994395220260180355064277212642785865287205704038138618313403824247033267325597607906090366198681817657952072530978153575383929882109131195058127840056256785140468575752417522177972382546459643304450605925984966077692171766026070194135230927625932872802398359466921797810331074303675034405881155833018807849863426748577999988263398118811042021773299433583359250068282783410813753263272700987612412979436470461580406051025756511042697256314997104398769583739283876156449019578074392696574824532321460402100763168309535641781628700163779606051985496964317092977904280469118368426491244724003029247321601417242728849730119981815371579278377062139153445869349159797850347043772957999403002642169149592239403255733252676829105764650314912908749244432801711309447471779414216556778371967055541689781995844882258678220789146122409288137045405269215042293371120967123136112788739773166745367706063036309253573126609188168182979533968433850044207028214723656954545968925502404228726656230602083725855515946625903135512877873739658161479340400836946031903751837198865349039783050075086710164027286807022514833332319494907633703206235812737773691506686289300753442063890534886335000816257228482979145425798822290078402436187172894749968340445724031045671717625738045982056913435969058342361210601268219874959989573611885010160883158063003295853801271632928875443513652431734332048050582331029713933166391360609098805160460839114788779357099518769240480927576292990222550524119347089683007762703228359856957066052389708563645680368205812022811737362195997198470049916954472394241427063567905016631672926428693653883584379972448809455960446215820273254353398205946405798832702434837191937664460657305122399922430108751540134659791944074427382349386754288569021270237650879063787144049641114918942868484094111570749917358359733974234488840870495453102618367298816630630252390536700000802353467533136647982344478837126454797576057037782628246090602431067861445015748148676047706890835488186596904447240413463671234163800440581562273373001680814267230666665172128563287918363840010463613141301485593265601574451153808617803345337478069667179644699783784986464725306735953974039960599092523509753524314181291081219332521472055927093835208635446802732018800100834744216410183546204777922029979261048192882924540316432447178117298919380628924742228840943285631641901627201311329865446494976705703120520639913439812570731032915751110975714946475350409528146118915042463331929315331345662285557848847920312888014068477294091703748434827056361938015862127059217803097603748167702665219814761770067713876850918102701343256209980815928328003698236110826083012801620762045132965486439317530954085334001004034499724239763393377931944455627393721216120305167540123246705447611472220716092070978252386895448811308172699300047226155472486556719616269054077911177234381594146761001665729961082495359010902591841231794730960461362145272687810314580524778714580889866563338264634265527820007915562088531366582632045473052253243018782793536151736301695901179113034695262012861490567117697709435639727673960859935868578169520599901445340310080893972460217197358963782492636747206127855090863077658800436071930011129953846784090909853329207158834870528802154249126498745930435826560049896204002252226337763958038128129897892154466763322053804622206853689763994216401063537782594987740581784460353937609809827679279272413754542421883049522143400536406112383842149881770614093274880059521849133788247500188525194173020768993472028400535019664061888898324290807212856328412617814545462144100638450518479105117604849793709638962620462621687132232058951327852650889882349536675897787291766445271569262986552048077812121703051636222850128496593307823437433361002403838901551871484022314256663532043618525325094280440495075133731593667760657330257393123099614991840744821333053896852575405899112030943516792972929971794028588482306772456135802496177561577695668513461802708716410134965176053460760393896051413098033303116416889524692125300983302560196206814151094863081870033413523366274171795587881841827670644469798617738771176023108118082586648521986518947076638891989070002896988240038967522625643621452149494222598973303481700891332813489150861446470059385135526190924953255902475726371863026016097714516596822604985563611603334355211525614372043945536634232260041601329217842632265302974973273039999245002392112925720869323027295570451542854714798862831464990814817368300025844292782693201093668121623808276591266977578192744755182387102852958528404754962365589122407725642408561624788194444335187701449842194320436997445819391292796617710391834546632328915382884179779169436697864585325297605372525025060624172826101381434768868675736818903689633279073858425710958259031677217889716279878572256614265877531388192874212870099817461278218778029538934799466641326549866233692871387490368866620473083881235504185988651730870850013887062212775446661791537329080139416170487874773145743048675079214603532650069008213732512190624944519142456561178352416427717225225299757919269453363996307437932172063550144235041864054441598582956147786964362381541007857394784015616330899902653185813859593664660899184380195711700094981320889609520068616226093646350680293563512433378119374001397508098108127976286451010149324306912636027370567957829128840447023633721093591347631711964912871311378335879597909044471170126615129609283487222668899243227065552040682560991757689351476126197006793087806764814850132638783461288676879859957002501848219985997461949346052563261868910509049574653224171892813935495121153532454615509361465165397398274428424758437662109846171158772702437353622344869174753506794835368267241281110917064682808104202521424115052870676400353042839643712434919237627657731483510278048393402718382255500265101552167570346426716450632349917553795377214409868163861960407917823925299713269579455243901529542398873280639135049923656966398579565534067571149240933787786807404701261487977632433201823326132996616802284680455719207738544830107730903550379434106499105052714824873752630448695014357943861539648170119375889849279489929643348401835227384072304169313668733246389860678817210228080296824903718129963746002257133912070973892355199131766207103700678111989154413266223716079300526604852458067016316237822989450971148484811047492807153653470818862951535022972547974612099351755483436462531097337253301123988727853429938171446092315946810106260031332874395753349550340440843371483046333550595762812054072377154523032421648695160348463569765225678309709787123676446958558450301592917842617157991149387370786985067577754501350905734949289761593828095776887718298105900472294350293915176627362981428261349426675819748612122143098762481404347634570860993560802892809078759625922133952243879126641910093467732144299900073979516427267258799700054048642601669407907456381098436776397985856076762131382458011417655312247168439963914462556921239064990061071387857418409354310112304689963063607454346374943604836852338069580547989074240019925473410534164065179912677676765366101436232367772946177228615856391076574609395527344467784750032055377752077608424988238813189676696220782062633791547352226515084044920153696601566062697862792817890555708257785224717067224257253692264046452115502759363330645716191739332683382350741375316162250040934850386386973317647283464778703072742090178572197323202128747110171013715805518450630244433909624423899868686513293367708226169571720767021561537318856768657408348151199784277307882739343572516649455985456435127722539938342718985468822890187537486361193847202985079729531900071625860051656137660588217096919809004387792436583138919755590982621068628059256816408618555639659902732462944873551767668173207259862671497369599128997529792493119615855567590702369347650097906938477958114517996359865772557038713189461753202396865254148394550702263256754264157779234934283843502122106640820133341625884923054520262461544146399096209896548723363153495446397512679692812244229030699232309900096283416137161062711707931082570492884321286623134687101747658975506598390240485787689484915728613589694129305757795487424161232485728756148643289464987873487705490026330340180827252135374170487078225903019345289633250038779204485411854524837898254554935535054972930016127142435415173341197687470198144764720471046665294111746103133257047078544555614357669668049406787026622841826495010358724887141371602120131616310771494145468804669830451568502000166479760251373004803320441804125748339659547124033213590342647689769190281138174721973528976312060936523336720400427869863679205781602338198100837338782681913539408709182765474956386996068482912583093960219374385819305565170888521362082332687724831353985599116687804134850018721886096694307788319819988402750569640684866643886462760790346677010766022389611626368472903629262830593565850504295445708299300096743758241485565345693004918960542778127667362245267790691167891303579973699011031147995743057828409392486295179655479175739996558857860933299360587351381464872946381817976618617742091777254048568891496136440488448640951824095080566064045298912305505637562609637135920224655079402212248451932174164646174194740465367956043100003099461427407919567159258214036849578593648319991217167000460952900055192036019245338587237835596911755549118086624620257904840666973975758713692312932803202678322062804743210935645231528046485995184721651841629803954088545312563965770631668453397849063359379918834570686026709170170820163829340045124509981473310129358903970059407799069278240834468499862464015208548123188122716437488498866050129019388178018310793737904497895543230778342344274202573895163828930713473337583719382758593843400638878998532747446841505786982707623053222448651159062536973108406200293414208493506424174067795685568816393530431613856085480696170526606895744367237396057944946632186749960495601855316147436602813476882063301410471560891388550399774000155219389979136433303631965592840072475347407171850793897949727192453750445035251663344498917502600595623264115612313859930095279144047220843580206999269013162880034885426988166085691077459778786034895909346988247379684245731158197568924067946188322760979788624030940537537900944237135510878363026980227432086206798659174746665662650260519594148940367702252695893935847818998458752025860861441042004006145320668565770617596874337539284083914589140965320480068422093694703682614016796352367026024378530767570797735922205512718892260688441941815761611308166732888418933063553336613708621333294458694947791272463681319159410515857287354516094626130809499311501106171060035006373521546168321482018385413089974147070033172168207498137418957670129997300271477090704386816738131112164528161530192558920801833259310631699676366023131516167066900978037545857624619465340999497096606130761677388942601072241855928395657464911575114348984494970204588313508917389311886122589616263203388319585745579230562309265683744579535166408898761090318935757458555850547615487346163529872522570244903605744239607243533461931439838017535290585959945047260670156771417884378929164085321183772604388902965110405529800729396413585771495383192876696276971339160439881907589135707424908165401979417652099457642250219588751459072519396379112711064987255108419405686560557965042088171062596468675867894498811896394245091617535675706320130393738923925546694710376656824013772339135756931836767819140374188280157854626597327578283552981582961308907514825707956980210760285112749554213321464173335922336209927747253050189182776655307655067407758639178899249733032903828260384216998712166358648713469650285442253943887489584814369567355465773404208652100793169048195448251847781149846012720857735566794552178590865886380396704873251002130774129180579625485792150723740826350707239545677811540473490766163497195375398349100427678398540189368277246100555405979698657535683418509008779375354505486090168220501616855928640282392900703943920298332189880435006326860500684001455718316830614928308627864599021182524997144160896857113325166133422054481959716188259651797964253821117715797071975303890481189458200722434856018293689470009774784363288109768824690365094609211736223702781794149421881613014915199911751432652600817450031119673363209674298318897138878189065709676999449221953644731130716652245461362471325362432928396366255979068457663541271738228717974535326101142659892968393557318751237617875041645537256406770351191473566182248981250446704559228890552575851658350066241784128900456860718770667883413641506473340973668777010566464964022820702021824032903949808434611919399267285363801046335821138113219717100699759793144438159833478995191114835248240377134999153808428793249253136589223297989862506285831473917124773533908764336701326681428823006787809245379544431513458987287463614100258869101255482631078631323987463696944831092457497777404865083347391297195557221224527954638593138722837464992883012887084339256242743158234193993961606217901822435677459146550746621774303208955831581665540184431759069833860084962018474727960829539766591861470480232724726190092276549241766319189614101853566224868569204218590584559361560353157382511545878048490587127676676458304000616239603621937331218930749818340977095641475076288645588387003018551840665425940783988745301408109465436258795052536847214412696620462405212128446165054180586975311535040733603311332265724343708368289889085123770298863829467455004161068023387082424417908542117140350973439224119915764040480624791184676959259582880119017646586262226483199719049140574065526517204572725308347203858559112138992286516590089504513426402196092917056717576249411768130822402531283112813427095819735634682313395156847389930417940375676237168203815781953045701471940308708031151367316740276598099445853201034443728141509323297296146048240180174303415217947714149868321511721002933916519907189765648193768581315882320890930214516399273513899866765779956333440824482589184634780838815155903945535240626430928920630473229145030270108473839574298347931559692293470584620412212178574257290895690122721525583795675694262122972187060992196175840223798421049805645366839417589968553037105422790086802504878793559751360685594737504296484989840581055634658177125516146192645725403575322374302019449662966797214712303355763367853595777084010192350387745864870154551632897762824558972127961777699882166217422215944721891252876922786335406381026934259387444081270763636022839056568513488929288640965892226281294000249806793617517079593139109814911282938701049725293680418985296595213420335526853553788077430069919082943731495221176453872029952560476049414389856414335426175125228845580244729815499060262986820029846449805751850046910774262383043311519663908966627931796821028347783075244748423406027296332284773784469745144026961236735249465386171139124225474907360692172509506193237962533309736458802253544783227422157969064569033444324305971924469195195276162980046191235800248111948597294504586561855315007825096229433876347850596943384820296778931485316196732753840513604480879215601384071627617422235476805959565316986044190672112211295290525827670330316885875463056444076344245131259589421149680959598669764321469294588500221677693355824243924198651614073902741762817994438444438657961718485434162087274716782569959883135988445366158578382884915425513732293822062753170193270597054061136460799967407049766163229289901080877667061995421662846179444360927308572529929658067582223529765273765783817338148195137134560840081047609663507221000500061998728209320336466635907553732003270995525793121788237934034657761094578529387965068573827227225395894637500252278353144080069637199323795058322519243364934098524446462697916710915767897371373685326965884121357076500959931546798313470551375916790440946907185634737687971997123475394942715205303667830050081060449534424344679011830721616188768873008267226722125443208030502779480905446017568618087169146103244738802502283385518170414575796360482512091545024518786141376839548508807153634339579328630743803814903230890834129858727211187092747372297368412380778490618455927905923364932454585231674525359597204040165564241538294986100018432807167860889788582901637783666914041580697852444165649932398883984635284863126730829157902899373533228633926335590101844799369444875907238565970373177625076704889324522116933043374553982079444999513282258062877345345421088531127715643448428589163062781324807844468939506161623431716330058595028893009075021467088691782310943133534700233394029581991942040801872647543007722492444176915455820554636768904165570906872497869927841825215840021119928180233565717144053740496295843396444849098069142136684450552494160848583100664612461601517213986151462604554418897073313625605591107454947623840298734153889703438703749528099591025058131092409828420623062599355763589776598669728525867296890833162729319746074979131733402094856686789526894902980349426613122918220524056519962832497578192482354825032656322067046342953738012654923710788805427515128097918552906326970789852501218722804327128790876240426553897881513478098751536765260893792093466636212074115162078257669468673913255015284172447890942723856207426612203114538232621517762282694410589613487195827878658513057993122547627901762234593418625386331054540381507365705717675410566409432684208038040329631608918441941656505201666176225599460527612670930974987613543198352135382461437822682898260291714920652246675647962153549574092760802513634767386389172134781643422413142327525579022829192616975032267721187576673069365822334238323779036079076545329909546916504105640997700864026982862536022918889587891598321676186665952817081231481639933689160635504249533143298237869139393089197373227098523766195928702944684795925599466088530287342261071324433976630689060495465708395557258453979244333075338017921602929819141085775620316105418182204891140416117602530853190164121903246904585168733500199013612136261568953568544404213748962514979475290210446130909987206501516549137458102980696594789979513195092897329898910460862618361757881341612956403412803359468628707901088330777070780173303479376222683957816254563130228044008802885186873909308017427085119741072159069321512870951213689908643621716294309566048152702322754814537179384917621298048850203186053969797393890645736203525628827423866999581147466556565964043508076697760275468084675715591275860469766589495243541787392302482659444570644843770504028231829718101075330155186367984770017063482878690852117512239532974118147387097577232366155278401138138164597565190792149698569760976278048085261462579519495612847236912080191723384782899414688031906548648137932564415840953388251717511119076658970027327052661005024178277859989470830749613096327757738907210382731280308276868888086665841471051869728409776489887124877090562254392314228565475416874511453861012212961487031609137262722939535763440634105657022470911243580590237306509438429537562250737878164113138686050577049108876715597185977663434141728534958197264838215919411556428832757813423203545942266679137597473104829958863546736588302413780298504311137338577203140944152706999228672797824594176923108131426820818453158513515338412343599109035525285033247705115726488848977009127187567854004804077227949024820662440837259395161220346615519719297713100193030529691234328203236746712908186943793456485674907775268021613532849820264883593611352634518866168206986582813235883903848904295508476272660644898686207934823548232914068665936844076112741435814468942565039138317187125495781239105029547611478256098763850745073547898807379971107043503627487755246803980015214224041616917917847786941641099494496758062905273950267335474503573237057797955601099729877370213197274179017963826096316945992685277460568083410212988002838173367725033565747002069221406065305887860300435177943051616216142649941228484501530291975132992609150849776267722589730699638870181814991038383121187486751414489741956898582229828900631392497624222782702960859614632106795666514399675036292281671417512865658620536835934936872819232745385720430789964353410584001618746068231158991516382064305312835105211022160060943614703265300055560064935985405974796319847817964726357376160732763313559144294331695390894693368953883712236592204651557750702243963843152630906710588140068044996058219232725368158619508169264708973107029427759829365077864346140438371829703102572074604036788939419836366066269272104710040436189849472286177919105850644208088385767149418478625766485235814507686874527530303844270681579903776004148083568698904464805976048699678309626377255183957390248088367723326227062150089302436458885075945215361634329706821460582934580762831451059664224850251768039088770189968184370608126133924186666636088556041425923522385123938494052635127326879197766308990572350870608413474734564246249082710586204663649332373634840754532569036495951681892487051853916528329110767651975615018449284895510917068113672865882977989258780031787509209616525237081665429427018328411253658526309645264738918661542215012578358034012194629197698702002248063231321594001817372362716369380981823344837835804036370907754047509270369451819398442148993455838822553917736398259730659925826728348799816128360501226984071037511514372080849206094842987907086131841878027008972649120306050102562439169887621397548322086587490218843784795624519721467900088991312438224913696326612384688411856972034866690541771120152222952359745739739641641360252880732251773567160819429714899771597763103763491653003374306855756820196667959681559252561277564190846998589288787283536055318144651035053468004957262754727441732615720272945048231592319290495915792481485385506178990324278137748667317834514562776451880208758288968981697794260674395016789254938178088121871339862676279399165308496006477803386424541386059219650068282179009437690220779707648296675031483276893457809134623492123908329353124349959909969346755960057589489631407538019189321628413976976272682473023423829665792585740850184405948409240455866840433831871136345846214154142583782710297757829049463120345868179044231735680397270869377482638472763397715535993706779714324635655023735961447641779643198486292640161338410836303437298593210954503708489098328970497857967119493949125314032435060477737188160587306954982023470519563889240610869483542783757747607182811814809013428008838645457520795011537537474697127124054896136899235215104160222119313887719101820349206495457630390689365266266587465579814201383201512930277814031541245948009610483147735213657761731768670496316783844303691891180535921926331504470623236004324552210849914020944378517397397748948492738276615234249411318842285603070152667268273012890139141441128757314595373469060346776612122725595959257495960203054174656010708575794977292417556843252738503736773317339449492726575268978734587679889361629163123423413528114724175860471606772946335831919676597029832057056376320615001024461161999462756091105804983679962132627150425501297237074321333415287436969521702909679131190497633589156765078351099181148050418039393359232082084524171850549056014230281148704446211636657783809470018420931255664377026552411515751903292067154088616244945796491807638204919585475499981561264576437502063886171372823614660989664003667044776074852134825855696837314440032784107766915757692288856827331893298840048447360076480476761641086638225893413032325333192595588063511341526181951480225557667473617034472154254914345174566222732492221893204529501802378928708602574274945769643534066279914695800577631298161344829312453267222443175082257684923481454515874548085408073872496303121047002921713939001073226308820504442090014324099398606667353536856796879404832551668664014746825179916001647456763132990567313807252044732566887807426739568991370581975023485975080170428945236178801050627104512085304326069259361256682608521943530441947707331973227956415058720241833780549098037785340997352843861956895324406066725925079354611012994818113007449074506945121348269092857345906058524653851524947378689699244137196567215259835932082195599739234514177629869648806175538159395395137215177213213954469229363639842352866760299628962791937682446088778108455785471124415794585790252270367488375056923960310247733301493764347752075965310442169675662233251338757046585760571038769711214995575853542536309875339773552852551353273701757618693244693966857304399398521651610469222639742083727892725457518116958537034109351088279434527868119188522721594756808501514210150821281486335020627529821188230702794836688082535763148515603038089300329221036267359306285185115501410572154371444364991315689621719757198966376533919372789941842805152878286810485491253259606940924391807369257566900112391262839735052013956246946612146755824224653581837389733685591899198473233087044188830097922907592542788536940780622026665194025058126609892540585219126698232995312626917262207978245280565202450576219059764188788163036526989035468830798677782396456808244908710028758218400251776737264674688214068453553327277501567299016362125697311889846066582670514823388683480313608739784694684463775017684580345502617868855423779617962757206290220745258259356046367935392243931927401405492873323440623139686354546615037370847843032989245668968465235579450805046054840866736969021881448847276723035460280497122562257287917230806039045105398123328661173143383726884266000749216843468793260442244271768890437811938447835499036811150288246571909706648691925700423659206106012543995953221427172602619671132549823943612430264977528774795737180029998151330171334407363115994389746368177257706636843526306977023501676171621718818696203631780165222837152454257580578964501218989360471060887198808986938154345847692344656831116508775001559133115909105105678281830933370702488068427698113076856115104597956779957309459668219835233718570576071976319233329014215509605370250426186092559497524746337824418884129524234738010108163447281145043330707508100408193396889994811567475398889721450931228245826986967388020904326104754174320696359727901317433207389875259206560472801700559247492376565246251787419376954790182633914361107768740100783485254012399520127394625045255463893123190912060036314614210096289295957744419219159928843833875430539970599018029593364292939028485031483997124355576507973572186992094651143851273949325675946152684993284983330651466064063436735603986150425826468349287854028089690386761740452437936751963679496087891067046396317398242780594721764000288812084752302624824373103867267636342314327110806523156511739512325209305708818500512020886171958472181485131424827308887231888724606296003696192977144438770760040665118666007275422187439762464544679138738934789394168965037414687017303105272487063329908212661430581843335199522039853651538762238449329258238059940509939370210441797058371889489113607005590274691943712017720702379166611128499289377162337189245606066361609446342942447085494167396871253679412467573742739098011286627804357263770661260702133108840953058136423973888506266895873182564093719613431747455785327049301274027883718454805241593075616389266314719343001488693984366218696276167585694957919168046251224374528485119115127538580402887148031943099664181286712827184328326450065502604087372023154130775160041941439249845204026689437361498883436083601922397018816644111374595691465494951460175587776190573311980669671640604798623587825714048108222197494882723037843282201039618105965969502448945010541828474355220041057069182671358734593850980964598092777938188107821662908615479102224790193014329229045444608576525958295069237846401796471791936912201605328151959433974241344881705653683143290006354345496992720007908192253459276105585275367062380344665817404362873606945684736540286989662035855768899343960235447319557159900358761834857098663020173831238639095050673637792064070455584848974559097445251683629663791722202794644486760897890357759641805274501144132973325090204447133700177216397134707948591889654383281211384348016119662019542829035060786770002936753701852470784724888953891465001791376348587693704411642193943370970071247062158705661505147641056840833945064975208259612013113527803000114962878874321911548268293930632460047140596446705207171050699851030277802914714763392859270955253567276214271704954415173445183784378117911407811895056279637800732413796486166150793660892833797275694958783887775763156138632874687535004900016206445281273208498578720827654033083662537843118116280646719481393311783931390508120407242743468741507444593202907320672373160472628044976253326031439186557803336334084426021281006789571750940054466637295650731918495976105365066821716282366179172816023332236540490261822612128395413121350870390677542927297520727420836214327747532258632055944442348789058396168670787019419545850191220933453934642742592334443033091094930758117869184824871910323024456747814485735259410625672735255599263450815171166203006836571844102566860501548626106487583259603370980589506643882955829410699468378547944181976031087593400433281483742832336307348984255130369882286268817115411457144980278365140929254971880033423335849725396083467456531388263891545960290324894080466219071551272091343490456558426846197561457903865545129903035788219435622286714327153259920171672996231376579903536192492628753221926757123355195164611207493556240090939438144109644335515440525675159006828532545344739689635383582512014931895343061653105410124120804049096599344082662516515086022377305102966364633840362810526461076983464257752635645367456765288058910354458950869349844828874273168229437949981756985801956806322394141966713734866882100393485137157306787585401551785670755074712668677336519326856955394492326450565835477970620980711340739077032464964889709419010678345470591950595104836730950732782492558902516875638310875652885745059124787509211039206712315673088711569351148753383590399226165541506570200746545508106558208730434557444016874304614997240655176757744596364954972423491481071736909295356424799414946257874244028721056185678610566564656589684061558307704021771701978693494189305059322745391612124320501487117447060988101167318728040806964001533283844521841574049119275068280760371535878752906960755936592074107494965440301291672656787287495001876416374210425750317657658083633236902652858561390041615930239818821985353521191782668406010980685352271213243142540202151736470750616189221092835162933755552841728476390711312301810520190323079067371180798827349947656320551970140448247845266565443548064400119563383091685020359104712744935200263042014713749868410453422136954695186354276747729152411572487351611742722572511441599623534560802392431695593792593800059432984538720462590860519814783248882754444582715652278349904473652493896177224971167571973179147205274546895190393341936343595413250906849660903215398600680435045555153496954509504130555826794262590624562483509518284153581756137497094563798942005901137687931987599227212637271730820970557127602160002408945574185288688280996168155561320126585141943951899337360794053974891294118917476789383908019966931818226180348905543890459077529341419557843970921519404782481084083930139894941717522982621892088259277112775043634306477835351908821433688673821135669994280335286516658923430104481850293870286414371556954731174007743010965377881783807222462129422861179835099657740924530591675219034680228387085742152404756385610020798948472196696754298814111304578549209208628943580196258435573764794246106800013346816279538329597263541712428045285966998553569501719773954862466986868049377168055473952118340222683618638029909700887151762785922529377211191669906157099273894654904297891797664278372798959818162156167574749818464755658659832801202073645293867267469129714399764362976217501991982672100148029671639299621154584801608709934877739756736530903434839879997749518077651953989427321196787031580180932556287089764829896367320707163915430596335703209263282127027924219008447310952527772644737278766924516118028970807283839751255278042502804000737803717197290609456188883452262912363355237623591016008159564396493239696897415885574892689227765691742613833944321132103533484577059609443326175506911898969909783936826198262889968926976361706423996891586682320908379711854812472989189953655638744632976190043102661921924355427547275025942614895689050099572930954430058826998325139027430679717741539763152876298760538943444044886366185199675108198665654685937533592682243084151270863539684816972330741094685984192944816527390139100332925889754659522122068403511226655747846724399116490788891890870494809399214298900774390539956223254084490495456573061985758265470034318188531601963994739413355996036466726031661738630825048811622389699356507140308470639673671092674989540267056779113151776385296728171959803422557284544314021596725038038054327388305404184365751858906224540736023405851792704978693176064271132135797094373637558067087102928758303717985856099207285649198017097217649035938022062578351691491720891411390960939848846191075475014431537799657402856512857618573916540742778831205579160397969270234786408555013704547604120774376565885109361093126456496203095037961525373308895004131292857741688322400496077468999067313394887965795251448098395686272947345794073321126053254933154516730407487495046632178114954800948522345682751530188678721561956575756197888866746956709767514758434628448091567143544120996304725816646293884986627525606626954032423906758457532338428430276652569568643058237549205117031508539164861693516447334626598055571916104028836318292502994946233476039372854046981674407342098701989939086763480673776485520551834760990184812444352323837654295970725940913816495092611896163153723626462130925004742446349306868592065715753887206249466895501662170386183565674297711897472676065269287767746739671912889670979527417754077805135048071963133305521538038127426494569527987453090681916252894508271352456432855081765741617498228318352097818942120387919206445549994198338954509885847806416362818554481241109482280186187586195025839721389121653675845513712883745514550266036581213550299071813950857832523086857221060875947177306696729185617780558577462434708004305528741672095566779756108594723403339120877512817819532275570029362316508796464156447355223102873079567021959012458767395348248978960675163831324272110924094861888151919813927338899228841764125252677730730013725116363371854684317667902768627261049605280877379278018832166632360853190514096568940135347850088742657431797859369990254763357730914069359317297833735811685299809369675398064647917631865532936816788798476441317697211795669443710876179983509725326214774205574952943335478758909709393433393738922042881439074851380425497992305631156393686669008457806501639231090739662687883132969227577218206811968005357644536395676327560039139816067322678722019305671020451555999350868291801107320399296201794372751309762822184237057839374128669607207149359896173592244555796126797152441062215676799071150817943224865709808922148777520036974142708835970551900510632477593229785228721646051409953946565352191322934672024583315931524685721868253956179772247928978928288620682708437588149670338390169672407321242503707031390589539737180872943578786318585637528672444431590559416952150626762319065431246601987066015633124526152349905257812154688033718123990431583455884369134944257381454096681728744421497737213311734149883689412847899537161452793960070176711275878101669714187505445533999246506527156157999890415941694993784363269928110904752452939456618406644853896315131228007356962267300620072626540517889006360736846613248144574351542661415154851905199143083959423398755150724242594347504610609947652101945727173941422628007919693965099277985241472209995348242602675804052694871691477204558954740775591964833927106415424349247038172081073406631915702947045516700041806220342452363940328707176448847212120172084983921524839127381411278241800007989429075222458605419975145750330819624456277437485148459952238449561430876909598719966545038928680636433443238070488180506599567120271073006875962574168744889169178334028265542876850468798646915336297472162506416636198924523840794631336640179015158233450421592529877109444835491716117078920229522158711701992267659206707780811821443856655359019012158127831176636445197249860338161987224837864226090927985056090857462613870591064896804635426797138393317699137223140450886464433843068584757482368895024828139226298975984183598364319746533891070456605357870852375697697642236544182893254184336794220526453944586092808971710302734718652676683483643161851585626340916843287560257987398116527451306014308236593256379091757555679748363976061498056510820909424017992868838334450250527800601530903355748142919081076462717866238196374984985292520894559577929190895102740637201268341856731986875617904131068370036355683915632420593137233205566520155199279055103950520261340628032228176209412669999042920318972833421135647792401821253856917380150251780164881866119766972721596871268310279549462908365616069040033089062089715272546740503988964017425725016862939942975533678412498851250289855161873424315831578892705455232029060602638606393411554568823152282052473103203960604926197203221083892085865627657177511991031774623140125028277494099160048703005728139543665966868885873863931941215555518037503530341427895032267369350272553476602901963454988636896396683662620560871641081574076823360389996155336979888298976417283254262553640876811924820869053898676740556982340668926706870663247797743344308527686091886638340844730013829321243245403120458913476016726313187981359914394710155390917867403370703018557916491244376491879813985558848936754019152275659326277135505161964838946476955230586032069727375713715205283635424327393180709796197768012972561933761296317818368521163427910759261128254551503434941669366847919186374463471508820468963562276332278445310748283040956923893959400490500698975286366720287204982150236751229440541406798300574242461557452316265484149562574783965966272286621847215649866247873391731142612568944371791890412402074169837105669813317877045399573320794520789028458625815578714612448112566502216754362638723016936380759496174556032351130418288313239484985567868617457669863692006152615248115715417874045158852251225933685923179917472863197127749312331841449129852515713324350209936756133045562498861553562029115429037105108236471424804714634292531356493488246264041570594855955147229647082909898513968033985373284042531111090880565786059507266409286074064267947031704267180550341226141116476799089210772386089741634124337146872323993196598281779364501048768562068656559145244483782855179232522295747985542197013861695140096069776737712318177431744230221654559354785124536842867242467317417000948179372966058980458935474440987951415598597180075751758921379848102009226630617510994055035613196448451238271438910747447864523927847339156349600447199108097360197688201068890190036621199619582651378958404128563454192628395297733799891111848944362297184547088585684532289733256961604519995549899427207397955112646204638200784168574577215375036965213440869934271282271845592764367742335825926928563408989892806954038598263357120763725156816978328033081302375706626664154129074052445151845339125033799874681390716904305795598062869293733645981625166067262060299614313723332430148852802902191422389336158334770038660186448029544705499266708858297479629829188168243656636909934492513769682880637801829889893410481044286991022186997551671375748760640197995404260158953242424037951289980912803245430696245761552833004457457822716263326384533681553605445424479754361029894512100298099148817249127319580826986131266609121571870852967413742062296713060946746462749171693241649207971548069642843158676223278555611592524558868619823904744978925356066391004970379955092058721839372126709073134262486201726161001698009951793675106765207508947315200401434372002136845266211570241751432251515519936863202647242558145924425525639775763574610072935415025553627839991204430526314683824352711418835750824551680936053630405692538884206031787329392741633588200107207631236442174325493851002334190245156754257630596603355058163594407843361248349739895440107570658122569998339675297911486525169621412558587597022018548819418038310857309974367271634113364753175803216682521297103297798689000885013941250292503644512837728517440354634648292335951522948031185439296191382069605706977327416817314017660434587034609543879492777001405934572152226243204550622597922203922570506067530051228049090017392119962888686287278881155822610796848406728445080102012908451006465180575631664861166573533245869052736148343627539133870899679697100154814655887037028784141232675869523249761061967868919497334556816948927352775640682400091030525959837872070949743950067363210652812979934311129803030686292361037041921666142004840306798573076021270717201458754909322618273818262249160085199274393357455348567249816346438423911736575356411721889411647909362206715151971984603807174286210501910659775648062133008746292262263039178129897196089559155550439898302087520956009451793033391525507172709816182249174895855948282063282537770216562851231725762291631891336257505539698020480340886980468649337080808114045745863543742613135462210459400001413605789835529229531609896975034812437140867789220674372599946260998529842849112972564667571493277104169812465658914772050765621511322788330570983676491903601485367552858678430635044782122958829839066650967415717133183549242187472419840920718700789981372758200793206582126715283439124721953059498982714332950264820771065321578704052180055479857974173224959280500871499531082726413039056230263204334120171426548197200684412427314326492009736503177077631438355331218674650975490897779606014682457624040795052187131176074067392257072699843066743965943420520563423304482427130357392951923007613378773933530857472247695707959586204613242595322513092666637453273449330920786786705759091284908901377184019993101850563473122513003050869113412813654041552999016132956836163999059208811873814016303914372775145004097146036964034412645594868110645890217319174437601345334619086650637422139410916224953978566422230987141390960355299969609288275425231521655991634154641927875169448465071960559096673596105148044370581716075271019860886159405846815102646518359580937323852102994638505111714977133353431371974932925304631204666068571990204689497230527435542368815617219507624023802684561401948474090250805712720726665720300298786489767015470799395319595785581299965350828614111596861244227767582252688620776737565632429955791661566701795816800165867669611307403681084778618620162947089249892157320718575406114289587716400896989874156270421505787593923982359362312839512977567563570414523120388005713743919356588977020283294509640957943170428102021983877857890388366587490635136874504817816724921587230777517456810060846120873396044094443048912394258473042656636665021444161200063920954819829245423352388626174298696882778094819987207787874538861822077763038411205802294622582192451391048626029508779769155919882448434800682750323581399768728458046628187994249734692885325193464292639970026265886867524178934609591124550428360187473405200879262350952807742304284152402959726225036971547543550052700598633653481901447042392979939188484163819153472870323487166288206605256980187404608523088080703776340263051774576164806425559629960284858787382782057436797672827397981803209555705114364553849188346476344630634770645103505510727832649841242518759599522171519832956769403817232155770693974537736778264252032134197700435423811145845249543652747924666272250076139238663044033122209943557735174962655769246172943218827090596968759091169816278508536556665500951486128661034676797589118919508052495817063508574001362467045701373240794883536713698161480184448252848680094355402946653923100790841167542095301910159620708580301190773552385645238805188976930608242070053866313608059749095604532261160748331712489598475138467826980980219014264242172376925726470314689762383968207941478054036237882341355109515813273719724668671466892412218480966231633687733987887055705617612433825472532372004774567954015744410651161593056362971463194141237238650764788897762372426201190336664772316396184978488139808605812337388228073310139307950874053239163568425149044712008345824124113471477802443248303118450087612827037270631431516225330246635107942727333931733426762014630328534306377965315316479094750004280578355952912790952553394224455870938935789142001694037363649960277671792969632047618246412211244686595794395953087309446678097736152964816370222824167894005872275696265345097031850129896494967839004732031028637925692631913913600010726013292480383460729729849119543543903274373533086795318667781693293432891628602906937748772170631129025218484814305453815902244105810534006587871798403554775556510643679623532832760004757138904357010439761336270105337084005001888334028926770993324837879097916764816081048825600857821487086797460651374023450720979749347893291055281467888413219173644910068093622431893162029792510222498625990442408703372338778218400014206440725071257335500312952943621438079824408029024676945002552888154928330918474791176930097548830889703373731717765566038238242662646980663544423559425848021305800074893119005743132166398566865856419311828993215708410436161711841522852900929463329481584045361431676668960586619045346932878476844045315074659702560167979119118124825889885764630061935024952867473997745005484096533134096148827780869818472521894397741141740783842478702250483133268225757293717958941277265440647546093162724223804115675926948941550683695112932501454754037867643117949377773458427784117625251211429854039827473337580017330990543464189774976425362536580603466222696103874051456217209587457216955284259423128624196251109395965411176397852859100910618956212817917853492166370810259547404106452316312813906642961920699408536860322333690912248483622132068840827156833966439540754945766795437438831791280596703073643801567517917742274522808357279693129019181199910856831972540907068679421300175738876834511243510821143527037219530543495418373685871137034403183216822558204770158331292757190182210108988306405666495488170862518440843367518366739432741688529658105492575482891879461788858037696216384298505844529326017454246778934338334776840851126753054802416706086100874259638913461788391457113998336671832894951701673083675533481730427093623924528835397930253949419450717700984057986307316557170184117395262920922047856119816663452031608244790657426353020525144092659416941148141121466880712302739413393921840862157883204095633754846611241932426565975187329976203845685701940018841898926817799514148770851441347622787733726022630073410465463121966044287722932510201629755134140545177526135296505301562818005481831479143675956058227310497827923847719135312420782997130261164524276520643864994701793472759702728757881480375737653041815603079502253097726502216603189866783793018338719326809146885184584793302534313393208182079311844177311184082577961236708166790814191144738529567589557767180296697933683255610899364733281664575109427301406038751947368455840203456446647476093190974302785300213170155905913890407681174306777776667443548442396336655875351420681536451359515689321398678684817744284526842149454275210559782251799144581094869685622055062980690797674317896989839684673143543803518128492933965179042715999220871046474149931171784155898319338035550057781873996891389319198590967773288307028708252388398737466716625651972363569827531443273255510455041793105758048479639151245515870077216603915934251858970666450278927937402590439459817317600513510664508334045348306644797297720365552024510518613838274961660495640136536448366895582445775217694297321055181142107339092678404513463409213159223610998186266660568498718852648074451935736929658772962194523926372743143808892407449209638467959862876205690296007734265318499893320427950090120452845436747353201260420316448836043204645787602796403169633141301873821107499411973000364231621320981505099012019562135269754327379221362624990765760520525555586109002635701768135882123325474507113958262334005492950541583516530200249409969387478820806749523783593553696948778805853404384270027358032747576981189318795915029426000946536528848074413219839205527327757635125652344975284244649363978049422478453259153212053413079927420684635999796153896952174054451309537792093269007138233148089347106081622658026357929036449214939412697995159982660247262610174026938858541768286872345756702993101733577506509799968537548373157296155413634026471825744395979052674998302966041998921344314870469079490803694383947650169649392880238655643482441221959643308939147929065110527722420531066584406064261921888143934098828339421482258443751362452097394345729578031959419335823608060392220971650590944365276456726699279812540818284691227832136235090826462851688281373082189833104991898788806951189581983366172057278535877092468559002282435387005584138287973153347368613461207495162356644673359292256194470399649427866220604772572218833811841462282707679239304151584388390378587779495363429911127588020780207840736901173986794326930986218999227301436889539567150017246643215809372860576293657596266870325390141972803808764452895147944439790294174557604635497410580871565976461347815223898077752634319473251279126372101227719326916309862440058153527771436628020631974712430725684999794572167995373498792584725057747212644609004913797679746048396573161395111248493957839271057969016218436300604703790533592251776942515519421849921667351211721789119963060668781547296321209293818240576609988914757942571471962828123961295632060290104417030749600925880591506361876457061489597894629716904500115815082163352760933109206409807722959456813799310415815557180362245497806428750481751346516296173993419850466176271901590245461436916491729451839771093090316690190705928626952539931910015238771863631911759043953927755079011184705382802444788895655386675277021575917105508000862314592267351514747529696543534675615734956371824218442252634906318355035648655595484073963495085430126854102583860272538518125270174241868949510880581919001351238480164446361731146128991066558822957688290110748593099387929315577289777380483522685572417961156233221196443422353823071227618342919431218347165412561115811937978359827753526214759025119218376828754782424515457709935761049115209246470329444742889011781131668392672249919203999054701639679897379807633045193166437288560675858874225285436802803594488447028346487058077467521458378071504510259601786554493411790160019838141260039955252709974808274115793155375921359290481802591842197646908686325825840692602025282385986487326543428009438753241829793664501980901446749796773960426745575901381660297498007230379601597317053277597976324779063627352792009391527477742447020642433414022696600956007729366888622791920501054457892902057528335347588098739598725890972507988805514163759995536994425968311577947714006876579882459934424523014579669851666379048176595231888595048397842388080537183626929268090197847891768126197931775674784309783762751153808620906173558861258381697345399596271927448746746862131976881191999187318398002168412971066811618085347592670925819831125021890536390206662486094480818876207242567803372344381092476690046738136951771222876246244974360252475861491138924201047203185958631875595674481621274788808646971992862057187277517231157867811217783994381837780706728106934468643220680568403375172361200700035060348660844333793982114811461691845700825200964022333294588871598910264182556165466712264184053025271011417260444801420377923780306572109049846803823434190658719260110034061484626548735552617234775540300584990654179212950010478518060976208256991783473660977751802672567590717212998719916173691800715836296481964660948851413835059750706866055616217233583814355200921814020148737506645643658695288146784871191833828978893934643273275768911346649100506820178744621525998430462236490969854652558436984276896592982654859807927972500783713862135069296464457808506917442582425707719174615985189728334799849649603592420980366917654656150350733832486937323523491097419466460640924127818999361375823261281387670633990066398679795257942557068353974561705336671774235361798375449063968419821312760781942953164009369473392272258752334720260459980394328521406925940507949847529770378627954565416167474574574050636629213234609123224011059473070921305171355042323679067906537177774002879915202375867911725133243250118479594325572964731789560965320437827519626588477995608526228526177854344397391263278718763359115975951991277691971131670759493856668741970385645905944137302304871924339141184991841572305398340089037017428070237167502221383512559516654924942772155112336545284575965454370481340459469940771098221509876176295356115000689765999706734772859986010882452484450937113012944354340057273274534318014059479982548028402052118068411017891522503067849738891415606967322344267571603085181786665238144600225675526565282389548944204041575853204163205983458948002412862111048335810450308751008901979299352460675718282058409333515634067418309782810236071353337586056119903195333248148856656899193150611235686072370981368041555401347875639246315568141600302521464553616734150097613748099714764354569424290296461106851027091014696079229544484504358308496244840500316014343928783651597821788127874701353028384931707043921199581057379206759208880253875872661580496354041834985384018726670258949200790106655621509498999492808756283312195156122083966267721775451669885472093835200347824985862524795229443320076585636782447882435404418212762362488447740868508758814362948274319253599150991175648612323323826838703462449396979405368852044756715419415148333555307847638083485477903179488440022477754972221016998012886666419457400540760711329239532821551072482650436469266610292610974639621693961438868632148067005620717881049706862899643447720466675623530823552231600124047516992555122145777495991940970656457423174199579481784585233070856854599500363072592867335402308822565255273520035262567322650734316675896233176643338562355428680383841051111693272647869302520194122024358341603396599630589532451007085540177339791646639495543085168190271870343703203224492270810134767998143193478929602450230078478504839976910525593619174234754945894003637278034265963167276870367515737622427678376290822258396891372932349292496830016638245447126006219095256495235296074128474006280450637079401076821840585508311594686301839021800007882906160724129028805852692463943312039555432870346781197789340074972319126740834699297329353314254245432257003063238387297960320294744770825682015807806409241435801245086086046137351063787750111890946892739721835045264745280144226140363170490069844020965398854657184836930297504339719067947220434106935801238183714109621590302270247765019713340438259722966365648839031193796988983093713489434991418545395282685881016523134421085747645778148451757304287941850641505978248191192193969380430548507143144907221558997579990849363963333469018486466709388581954919409518475860675296646940040372352283215829932876869011566678215977751393461813879316911217845834551467453334445681345301951106348682597930485209829000381051980990089677622810751787146853474542892089427957050579217397112751665810161085006381630638223502145924945717774307883448443606415369174231336424737290289653544848447503968310671391840999226787226950541812730943693916268825581512641129026961738986554538000261663890413298756181025371592392768001401210002766999809757852495601943588646664928356540428520985917061471531625329631622680435339240537042457095600849012060289763395211614137707395324120944926218512664063915825026648131901822707505194733771980090248454751384193184025717899799455358111152838923684930157414794015579101918742353917491321961915765522622678521568807117992168811666612989045444579136382683069579252790973494543077819800499528575988383594779704914199867185270365434040918695130470039133705074806989465504316156589964744608279343792703194198442481014401320284511277379578808981012672198899198890074270611981390993874786153367888282920640338425708833173979319476021909557360980749070556081190308914375717515934401621991788520468826263421616533496760349014306404069963284011466753231569843091876085053580586865558404124216490481606958939763821741646482265789618068610336901906973380557356726037454493806997079924699109706243304941093924837824580761285725209530321259791046111063051373818182921728519411005390432603490449622340809930302965517151026460750527549680520179420481822167400695800744106359300419853105584872567673377614349499835938428064750246711624363036147083711806071029671531964616314179473182746893562497823642458317486727793855177605243763641353054760379933991438489186127028642836151443115966956685240021143239166681118008020368901880207517875795494994688783321727127285751662424022016409171333436705733211198438011104776117747852572532213595044866565731240111234860999089606780983599549572013824884445202677565185922645218631927464779369292705112044373556212758838848580648996919522408492580534641432457046384433568579794348771320705119290719039210667678549017216557202579529843770515932337850789117448169551199180792102062644974037396162778905564467221013898960119002489411782609233029795587258185544204296182100107654900193625111912630614405375901148503381491027742992221113032411129633618574097502361169300115536096835030667735507025900925934760567858298494254694459467820412304696087179840272287165389790581068595337932112866754413437739153558696067477244075519323797363705143453341365836085503284839930531473975247325297414760330820688916132487735122167290683772998734164557504543023991296838297940853257143874321319405838114951215534008185384855913187192413323499974651359602252627124048310602601132707480701272155550449240766558887048895473718312069967241239585323007327824260142296404744667383141326084991716434655138433313947153778036193756644257983206954688259380501551769017950377857035203843441041885371140578642161154090468318693843706231287777245855584299960839948432182691839710887568643670595773248631006851559785479746659557374279762991911780535387762073209221166678343767042977818136366430806332005943503621503097618436628457970711441886095113605654338033834805096908737827394028470479744359778408012485945056518037786853710428295677453118542636813277642659611479075565660361765712263799859288419300498834509970599402556092959362673580174739894809132099320487856094412366195115999631329170040156054615068033052283021394069594505060341068221632681373347372854486030636158694280645011422266082248766430791755104445850803514939783160797518841702401777712663806513371973305551356957018427410232154460712077645495118594562708889020541930513205247360276015859908218647103836208839929405447007552644196062131546800118612673473302647684949444747407080904423371676645356076655309162912354633932390613761037172896253522025153674064677812190762451594768733660414833415298487721732426870407245561864140766762889436357717596434943713680774124571087755762595431764106779230849501733910123018018317520687593348297666656901863386185909304289135041341787091876092651338139553821771105157728065967143496453387014750895827025444928490634332249403080592379846886003461405996351317842109256577023296997512057005585292408660147164858106242661506153875790471036257626095277403184506914155669043832541020263137862765494006003095532612929576363445133634203569116415646829344623322557908727683104129112449358026632584301259395913512718028742522488406914699107296645153064112235949821382049203997149437377646894186263764291472333333961878927274437956917328163583926825225568714931359148062359779007754542331325401699102953882176687353067886511825548383765999865895689747119984432607774424466934536658735855395763961485136070601615425247378254158168907795171980956947593051672835638614182140004855888570358980855962429064827642222758998269120212358724099299055946986035947057367354782436973465101824828195104210406447375322148007715864176209888994508801782491466911560146912296143744137600817450774367650131173924112625390938209578428588079912175889613090506318379644006414238974580844614087553467523564169328249086795239119874713860178909080206240497252805247427075297706492060395524460446328031224084409002704939365900618690698079506156422999075000650343295357103814009225030640706313468615811412298826145425169925267506830532482794205914589732140501384115166939811874477388579028413098003516894753276551863430484203833844804341011284818318537182273751170779576629936246511745173257217944911788401919408804154688829167468665966703223774581958644332543311729270953581696882978506233589707137021061578755577056857407654111849402198838986118789196484609342322240873508038074326927497592069803678304382720630309229937452667504900510911518490268752710093984958235043003763795116484316573078513482383663066925534961055843434728041861024788474854131346582297829437994364454953853206532048711213789400898625489564920994489485013608321661426487962956096149755866647191660355088153250613949218941559805921244547331583384064246111951401955621087066149002619056804143305877928590040079384455866986718867214042981568783268377680150574248030584590238867946933750326041346822939732922262235880728059968248808981938742036305175137106311481120914814561357098768288267196676315266992601158600510293027640701060664514083573027547666566907307570695254948066361279151123354289365796043153377182664851296914814953948692073296954411941247860398239327947059242330174863359960381903390436107965561717885442899054630230763010097991241863446761741797368913602730762608897400728086071351168108580394132539496227131829498064689958782409263349708468047845753509300492354906747188779059591434940311489914543092623847293887535549242850558181968748823728705952609190901503067279745450442858387541745664902605445684646517295200296863008765428281748489456336382106645282655309747460409344569463026002175095112522568849938967084694148393115759778622804997883567442408088781667608800535947806099271893349183379213264495782993808649883962525368585094174454555799740142946646787290473040458311801629392760255356805329460845649551294344133711604084554816295436246259886346476039629496449197669436163708487405485136515597172116857076354003154730514213208852196036861554153510060490087295640083289553038480105739070235624257556974176017064831836846320415590829371010885182686250758902113162902829701119011056771355289805506992981416002307368199256221978814913448023977754848020737198879212210653147639455344159992685492017655274641625789477821609912842750510034042655276616202101786541759245500493554304488086976837434650575512442964030276016252623639948776009599259284636271928411548864628525294059032191232991710487727872349505410296181557224303318824057709649487741655426875212486513594957884607662178237824207063564161892948768263912405963315456644741573736091239190056205155106239280812196154164472643346619370813256429930003528911288704006483961963399299572602119756258480615388375793315195464025248943369258393508980486124162055005519949167517782272570216966568891817610263376486350265767891082084963687295448050787994432997137412702871279118213578607138789962836857676316071218692342216622683531951547089536241936889339907307375337509286386368661230413433094239472417510166599307283303091002756990316608202302793608344268477018975074656173984313868142797770139435589793941204573008554120769822380769282563986892641853875932420251627310424182935003225639753129940262296038413401467824812992606324719633066373186254106649064755742509414349329217997665324967222685968508509528965123135927414619680324310388540818590079377793124847870758230697452696166942700283652229124489703499809362885361424065975268041941281992358241124188894842929579941240780237828640905197680683773177547130570905729647218372945993046502200594178970764649930826724391366768003702375943031514399248946346690010455169930775689999435712593126803062959060476645529190273008051571891315793218999927481512084048107138897452517639994070666039290988039257958932822611442477630896733983278196924190721793868668782784924538024174460194251797367433374222246759194326528109785548892673641072293424469322285575197372514200972738217359391312983300038178105947839740050469137326043642893156509176619097797566050336189575034037478518699816402227115180104877968595020561320209203095385435134969105343002831072680099722419807851889646556038168658663944355261075858610303094378668654207168493517694066989881012813806013045411088894054182716041411347338190031058626854785118103574141956936852182847767352081657861900786447929162208654459619872940896285222716796399625175214995196135908821229635994930520723069240674887678606762101556367149570544346015518447348184763338077868368141852087080419469081063056346637298369947050415903378785730730095322447808803596386978701379342196764521905063620322034683975689730536714054573755872799309693726333491368259114656748273095704937547493826375183561328107242430750485307094181873917384336438923976011177629275725132554292315243342342066893824173065149908906240343700588838957123737708311839225198839276681173364651215234292336307489760131178990052457440015201305278772468852447785169354831829879277305535666404077108211301871222980470660398966852930495008745255591343568020497426616883695490012657301680943538260342043053816616334245116186646575902106096961865014112405803683575512922733028138791535624796823300404703552381794247343739023843903472104780858016269537599596334993730785670245627370546322264914177146655475572754845038849312470767304188224984579379195520188750679011305480649815784412101147384801718135456075376382491169197382735324322457784925877359698624478895716898455486332691607166642085383303086808375254315225269715012899438099319536966839387861040600771571484634450735353972736081586664465016033119141995899642970026809237731899002196218971060035142495428263724341654336067717838859921453113615618356111621279797201826675643462012057601474876605706949758551955837651374114221382521429691319190595756940016254584858988401532077919994048876803766232743936093408258554677009394275413337752934084397376490716649095164260370234364029434811094293331783914026999969187488965538827289622373289877144318829470467443029738304471426078703586996182577724906712635780614070254170109558531692344937610540588239957823191519425343637540529048953133815943331987313210333710956629770289667531708846362068276306122926678538417472274772766293632710463871856098108915190423464464892498729897136951883236208704649950084067396979321951942022307832556499055485390435593331336493613888086235961871399822896801880951910844094743544466770596132343968567496106369481961452633615492090313164286392229961552183045962981718267241238291272010069960147109350839112408656322770195900362526523570443069605563465766100614359283142415239736315419434439905591270530572203041681779396631529727060345365413899890014162195917644256170121294732616497393622263158165920773626191227558055535809204198789659540540137130073479828361625903193193174095339719681552740893612582588725545241328830844337137897824530087533936925813952680560351293798091380914880560098903360046477037675769143382060054138859355027707889305812702461353821215381165755134356559408015826050170418701410270676314196301521351955988444735535105655287873547797587667288137942203752374832829594044185331907436786097039622975354744386515922750468101126009122267588095013651694859196709447101371045178680688576175619581626848079586444643870019726025000531923878062439850529289039614612424283959255124047069416871082231160661121855815848958436193549466888214478408133086608086629688661442075748379416754238161801943424284801623279974311377390645188703234166402120975652143040770570446329198074005996618010606578910279589909817928275172813846004884633321515413175194427134954928678616595296169150569508174230248846414388697456438636132179541041601692633515684349931533071757052070626427954786920683896802403021999532362904320904020993168226932485802430949191746216839093694421754489853489244063353156218744358930426980014265040119296006680932048027188489342322239795603935142953372079563558742141096453795372974646675678644606864433807525618861907300607849513703346603854589537848063092281025426519918160534275041509740323801463415835175171025400162433231148468337016576064403826445925557100205711016857730091779134701882780922209926328033171258566579613295306465349664816310783453164483352282263526482222196245640703961905942459536079702503027425999642384079389721396167260209969361886045308187286048393541603187969729171950182931085099659667527717061637243647189819397140288023868518434434390044600944788115336913333008896061043061212126655611659728893523281381024215954300807137346562325866940590927621493482890682251371757218956458773047108492092984655402516921656347770907501246429117889140943989686681253879269819395429963147223689562817403665164091032426388056274724153617619877088121748003776578028855217020705532221891172883815366046645569922068713050424740280281852061672905798156921405451640026770484763835708951098234074331615371253123333278858230983702641298942833767435754468586418465701476200885190895815739908172570269764349885263317069208813316863124751600942000034727339163311749621230697463424996540925891545589246376050715072876507721871169292015327649972249636464889546028502807460967971952616595838826922170843500734626929866147081228560278879633101144576335293427153596157299158082609663935888286413750738493112768468260175160052502866207889265213526988952978481242221933463339562254204389833442201362526736683240099374557753207400798197713467159654100970709055922012614044147996362124736557332317638279782545733317765463316907621950126761087736499847588290775768387843833281933492907295271388461198490385334522843302062090245641516236417566723033610841906096969231711692884774859564637127328166510432413759696474406294179815404428924255101323596215643405770620732601464572903130982209024342118009278481725221400589742866110360314050315123918494843077504204686811967787158329457309873499215111700953909172848125200912855437223585922973809511431490679661010470175196018147754291032372349542097664903622347915868195983795871731313340909781406922993264070949518411210671095417155491165658798241301992661933903850329799299259971100949563669877697338556355178548719036057997738423022447583352701784060646303521120408262346525274532252245259502510212135923745906128170105786417519186124200880431621111908400497411272507804478393430379746975063145092441731635787814339652694551445494505830526420269446833188570499026445639926973520157473059063071414522262513852065088463359424764442769073362291759168584916051160707204313301561833453219085121335170441894564394523887260187404297619479058586549475648893954123948564639229547169625432792704239495338841348170471162383197126662815471270768754443990178113695549473965233358966366378131163248021012973489503988078278994676519560109414703747741316853896286158000557194387851404167031257074832384125071936693720121650388466328156764450846940392221347760362219859950599558938529052370160505441304225268624287803395278468856116591724241291355008310572463060840313489602045524189101027683648249651546729303952828895772008909867532971739193386029336349130075142677739787921931750568951675875561754929897406282113648331810390414030297193201072651745585548211422477720675451725349778879238600417814337644540129040579069093484735582482159178478974561455615007822615464791607919637462540632829065333327490377237495180934604168277301083251327076078483546443794911385135114467569197579461231229808522184307231699712654676059529867146020677071359589577436443156445802743245055584115883771210083962423420488115713542727934876763112150203159751474568845147688029847133581792316843001938669571181800446594073330095550170577272039119731453792458500201140025768191768585764766300635936265558619694947088041054163398896153650265900068299573056700641447672830747747873408460173257433330302829784309768952919565963332306566020186418828926398111416373993778011572593864104582317949824987226619385490500766245456794854536230039785713745843032169362606276781636002711792412784565076676487607220895461114800932390469599212164599462937745917857620600178372305702142862119958382163433320522196082870958519617068918486976350793708125209793469276682572903447022943939462159557626255654908760936651176097803720544445780419692055459746516506775836417165315217361929649001122724759430188475829804060708378063293322644748177783154326005768551836611405345758064264055561118530108864668054219948240014210393509738539557239864304805903613252182560478379681696830239482964194447402830009104740138869492966012666420461872043655486720845032577129647881963678195679350229364783169265968030415837470719168311101304027928659975780301195952659219055526834170443870478738794758904520059583574004116006945302724585951347491223466381107579243857857955088693742869814728303915819332167552899565474442468924341240268121559378084006105755254404333248077481995349050114368639668154740535791671376246850236671071576371299323892937860203855395192322201958695813268390474741990687113780388209423685436264855527734134628355735905917801262294451852175912264327568562143884467054844374227724555193483841967695755065632034221503086392717957845304450500244167688019550741337600724313243289204396500021563500680704949683804081292432464372459856562730834995635783502124650014542831000377706241096602433466926438678878694824553127259590062787322639033616729169292903953549441936732269034865235473493452752871212348886708625321633423755885211889781334682664728255998715215949828477354513283513721852764307023773652273618417826123800914456828379543074994961116320050714312795865245232439231102059749266354061836071799297282941930112251737954827947580528168187432948356519921736372709304938564223845528899073927214128397739662386731391970707149175882435922282921747561157520934730679667934965338004047701780413520372387014541692597315206223758132790600380266477310053658440521186642844108479266970803656499211737613879547063695931321617634779731930027528548442365095395691460149023749828685145045399347362025754186062931538595682759793286677987836781596959811216302885351679076809884010122307593792522854944872909036183891317222492408609959942906619767030696111470712095572685371117914731796001332381245901023963222073006730519924433829614930341003805062102676911549940003668004125111705123582433333633497531727006920458474555691783275995247846818151310344091748809927474288694565677978422038286827732061946370626160348733638212243910787431579422690436974169518649306437739053514869591633094377161941258991647148135419748821487170440203130794854895998351989620417144496030150965046815643564527574879398493584090165372209838364235565123849277288754479432657373936800995008915667414429505063071669861541918053608244038839215227591291312811244586785148201907058007715949926463709405603219665771834116620234861069842661082150614802132020728516771764405998565145916177761036229427968189860653877695426250613006646598512785079545748990989014630545441913885551898929255274887091429885500152119554263843676171953153749491907951321416864663062717812651728280226371443710562110258812338985449263238177248954066024581416288557580627860886795882761369601379965433630084849792406926954984209632330314047861746640360208213202549743952508089084063864666365349684094955298178230097893441475865194190700821752968111491579064617542065235355286736587927250234162933365903748080571729186406102777086645922785051571713103603838018781450801527593697951064350330905318240303131423195000551862547239502252757682786278636495107434191624139791324992982513482091550530369910794713827474315298852415488371205625727416658454705836607623707407203702818377601308469940577341394367768051784541859773475100432441016623349271194011751272779056569062599069636133688226196528100263992835829847524507958460451251986499067479918116938541540423813688553013018705154840952471419960623407209367287668282889889715215603418381845086686386501135728222894058736117980834737885108574206753449425609159361650364881327732921940738024856487644816329253025850402571905844117623449012194276422666530918746348491254379062234542988763473799093681342671737822885188619590075306529586857944095370219558207724906744882712022599201136812194646724807648043767594147219215268153289991003800934115560215741025571506946653265106551339087264134388553501904421154980185223364460762377489846198372634382798041598480448294901669261197426905226658382171736085242635093261933315875786659946815518047351694790272357680749337770871837020322354713798006634371047801223725740416578436575040794913428731900360942106434715379850754708441357312683334497136818616864016504988121555994060477680988481820038526885568732370613505769930208300664689975292519487148234504968690055112338766162198201638131132843329387489611461040801349141188422481245118043608853950853606783326993083908894850693505281186284446504939290597215842769477487775470134100566749722585725368030614316178679176088608598423058102615899221540047229564639163764871487303884896351048819892763332691373084932688417253981858143818256618668772326803401777933296830332175119368158508217281639164270882050568947939920345367352712385183865190920461695540915896672881113020220718717985236022509857787820931469502467961580732252622896985104357712426879561216218689388088591519057412130346114921079878536690655772561192391193460670116378198568884103046423239289707282202257189834406882929004588919406607494703156574466026664273090015293440590864349118756962295037603418315004799230677239041999301395924007670865097191772140209259976393670937240534419491986485801439507442050466058187360247474227700989999306596186541302581060837390028317178438282896955866798314408369664434347492420000519958564501617753031389481610557549531478881802015279418785511933717935177089345206816900605631183815143316365845463411242662440190118365749041859049658211372365876024479829804288147791439254493292417172161179599348089931997494996130169787543459867146310048765616724316865050065129224657797071269871454881929084997417029163085088181068640631376555181205589234126373001005820722537163639377780813491959803232785777487190525789158516315152771122102586634497857675608842412507927307648927011747280012212567752469362849463178072608719115043468877766470969668418428501022942584011110265241908717857497241971213391538133692988094066377932792788828597076220179850650769486222228024442139543001553640464775147692626877529331799193258761985190494899937652136736412548037633941922633088779417217924232081495688459142775754913281038381868118325936279299811587944140934088067638885556879784569438099475803151505637199469297472942927465571539983423876467989011056477773029047088008427310484760928931884771671366588249339390405580041367552224300921566983154517726129676059279768854326163359748899598518120181939012951696742276656132803480545245771888390126642570824460645795089923497209928286893185556314895259451147279479474137295867635035841562784711835424568895331102940685580263970168884075426472997724645159138126908764786797292166100015959725777455211132131698524736283426688524373868653767353580882597047133714710547684961277414783221612233738786676001770809657034789642623164912861550780948353017315388894118924252111366628649727386288329725140967675024369861788228332262466142597377988531641480811811216459688711728157928209615813024082898370441576611267375411286956021751172010891096721330517177425459936906338623468062601713925641901240900708099552610994795790403698341926003692483806658191419290349650667516641482382684488039228638089549801971832823304769349557025082781553845693839670040413811752087669059802966752688891702166708333842601610253363314935291974723831738515773003936028967093394569987605091843397415970846941240924699573200490001456556824299847672242499782204833074475890781763468821510619793353476334590072039381464429201466837940809018487171410479116484250285669848007087907860420346825722258393328136490805610668294249309793329344983393203644930017095954275077052926232363293582624797202021259536776624135775268560004829267329914013186019496529330860550731544161737244805534922126960151383324727957876596882517312889336493994453247922164006638715960438538041671216097521807977982551935617550522418947729942324045206343758055024570520242660036487821940543844449906811610093899159315834304694754333219231456664527558479163715424153740209446830486107992042906434868683795080956905481745952219074575526618392753954759884570487249874385342519502691123333986618689381267694739770216622237305109337412367369550290386307990856037643260455665918502714021034148670876418950764809101619783158177262323326130422473678059565761735942173245427432264146240935356566695599606340423034590906230498832394799239041655917394583946973593310283651045032880684670295346332294775364528858129442908434870463448629444924221852213339731142708259698730239865289562086522299231729736813508677667831629615584915400747174743480737066458186485684912241115863273479224224607661038731066812520557689106401950069966960743451663359138128742723011740161005554302467772283840954898579102006446448367421395495043053656267400911787195624555697594899372097984104578476719869095821668138450871214485245597365480375925344883078886387537663584071450519853952228861174399771437046950231840994314726100559369922155588904366675063652746087412410825513456504539917178394390091300973711534457064146705834996940981437054291327434959551125119929143798030069047571744191812185328961704802730253581091149281294431423396043017297154817901128131208618818562501536568902678984933928328804476743952687746708218610913010348507822801977106330138955707325715659758648662986258826468922454561275054190341221801825868541923950504768382308047107088542871377141848720430948893486544824922629326912637286215714163074537396936327422112032996636247523751616159087720080924542832852741068571903685235746671398556179394719045109437841719210414446876133030272872696638086948465378816933717880336267620818153671410251830138962604276086129882611622797638042317817480484227529491385044081903269984779056114422794173203547949323411134351150242252422237138052305872768938181670399825453109371622991436616110119615321120889656342293866759197617621381131571826429587509585718872167766789550986306198319238134357112976438102829497866361667267689763769659362175823482944961177654366623250248110241242486194813546341664486141449059739398828265665255899249106415161026460796911711264570546236425611005867590199896142634461387008826676333127790351957316767939117767186056925393145666438207102494565166344922327823944278112964918972031896887281724814339927182092188866209944788914833104553384658187266507856557307387756743072793207823776554440689832431036811473351305123730627305187404397540180672425364586522886422800016357183866896929596758678651204755769749149203674065048670331982727520515848240112262915517217621609515928814131644373823856093420975471666008569336778727028962748163531979397888251723068597932671474440587565060719083871432896162736463383009946247155205119982487687140434583651160924584685555528267698587304369414159181085628065467259355451685109164448940340715739795109421097597765086589629378006580396630782787047693419333617520152766642336262791660343762329258333835704953017336082727595911858529892484737353362508461036752478810550448057602200075648113617440111837026906037332102938215051814861836978438707665207935882684548543485643114539524759942914218636592046207995792778793682791874219457153346478242067253398823370411531597605460380331087061886367053824838982710073019726349159064954209658487984140976875309499349992399730086713802146109078752224174256755473765949740399589837118168266577425553893478566469063486220461191925878615009064211539560946629566255017384741685471945380771477026964132068249607000570354182341312203719936888511895519294665443670210869931941791424282816394743681168551911439842959641281538166768961627472608128280832526951674598407112588136612254441480514410123238492958578870511803289244349009794185126451542590265033885803470655012345841271914531884926468173464706041961456830698995993813167594609978515868889651846603145219783859005008485537027986030988947049083003603517719145201293959318638407576454895313805102414955712908154274287563878018802004392117011113997571715239558160204906802745907089877909608263318827292195883095296874172431918438302786742705619412887456897449636093203890794702658925652920341038238647367928686250446086897843029419711036005000679235601707804619997347014531040577666272921801933684465954237192272613601958565735132346209068989815258496471894504799209451579689439908647876336009213393251183065982395767321436148427284588504191228206722579854852711009054798572880823345057776400456841940727354875345921659256059292220711726670007180331218956522373225172409411836313032276439043686691331692324007970343348190075783741384352822192337264561051039635541924902022010733935147721031097851491772785775686201740764717078538873293894699904860185423332266108929498191849112253897158909385900607889451071775519878096589808195901948299739547052219205781198719960191661519932108416468910899667072085320728538139786271942493096178430485925059023466540760532876441858125041588672922511019135133896919370151804271225852610923542182174308846057781492403945927558691161378361870666388254371854853138935428982076217350907841409084544577510191414135898778418055416629961471312154345133804693854687235151962079188057300108059397339112307994604502358116345961596542052173838805813994959750279312568386182484607906637901475150192393001697142813311998801837101730926267860680920801418750744040951171709511890817762668954460246310698222225499957039724063794049730564402654289630841045747315990511463149802521931477778369282295727217339250201037648869419798412005988836251452238488056687761133006527597228743411293384118536139193454232700820501431038461416668288072593585833027771861899040789298173734785624301362569613510259529219240826549040101875586995752855402241813888256121537372352754372566125424356949787959258997875449833029229887837983612046289133964382750155160871445795108694586133275516600421974261347585070823971411048726546733799699774159807687916401893837212092891973373802497801109048743728478313908087916174067880922074480032240407013268682653837500256082070246186137588048864609242242846306473073459967587682288873136140021195023124181891885647223841372961939182540235772009293644308706772672896456910915266707398426073698113372781580493526049501074716343706281503335201944061462155011060156964268240444713324298269005214688595469626239435009489773113153370914460757048293925718904126024994576318893704739970235884703681212700503695790338350782987220487930213033268817948188475937337939669985945986208473485644946350307432511068130463796647251872837045576835783515477085326000318107320946684740085981491921668371431560237613078668874020445931210050064647481152238125365921932006538219168734297961460032671280983833614518907681921644908251214224491858165806475268545523054009791340043411661325782388288524256623914090632981735184752804147403118642160077032725175985506579102709118797561530905222161604110615796040992913485571443724737127841787085269841948059764523725668435001191406196108173841259293414663263398130563633058951503352518904100680819103153277948411989353497527187454813588502802001435572300959158541542118401050742933206068576776441010620919518395067249551530224027937670360642332591217442722652964152398331718508438296642936138468445937808949359212002681670667990048226754214360479897253509999263753253657603839147609637024703706363666351348522728781218626599134288629319752606934316168855874562893941533744738212604480942926114528148379509543277468505299325012111737630918208454377733549454054576332771324376098229543205603442545084271265427603380817229614893025412650513617111017803712854825589400003498200735998015251895711263857347695054974314461301784228443552431826765299170511176851275667053709947888639164557575339557056166761306337938709063984455650158655823261946406781499917681416891750067078469727640058893606760190846290108415721180300211486344330954120915924396815597694780187147980112080278242092624613096571654855761264858513229582715710120269558121066366053277365123721709007191350060509251589857080310630837961078537661287033425706218209387168968671172904575540438855414486549210443701990881176241158606169143708432017960975147380723790514439170169022429052227499788667798161263624643501647490554263678985699825391549133904521403486021946228587542172151445816427283006236515491378136964526488294709634935121832314455451681938242594848276556216622745675356237662748210786507397258803615870853583428499355216075679417475901205038454927302796193906258705346506073078883842155315045883033896505403197586753357123262077493538013731212301913259763977693771579643138743590773496445036913880145988006080503314946585287119894641439151484556538195972345857004259150243360123875341628429697134695185202924962400122724411207930773521214808857535037672261826527245866629595720889648141259247356164783105209993996127921417176933655442892047192809894213720675391755957429433142371262548626892550875561126901691435426266382229356535452042188819117609946040444979727059347764828588465266121532015560271602761395422562791930558623197235719617895600545810488397262547255405942207442781552510697893933738348787821780650947632073348472746292307581509226304952116253763776792344996513888598655552696919836776339854560924219994945682223037281696736164628460834856626412049137675399968227629912946191295157538641861064773034183937312506808435178752037998942891014657175221582308975427996952705293009799347709822012216683003029297518912777396215064678486310660466375286538977032024156165255255049654340191398243645851147221362077695673469842288491819175454940518602972347784929808324614682743039110200743213460384914004090583831906175767734049279635617640693902083054289939183422369417230629844555983124126515748810890629110688634017868117604984214297268458255471414197294609091736222020414265627400411427667185439692987968208239628728058695528279529402929106448962150033943798032756380933069429406676236096104402411984137564982463207588787563525155940800488064633357405940235402025832961774147814623169967948314809007578560803438558337446790824218917083824936767937913414150233237620675894416279328842678955511629738158009412738466862592372822286865943767093224331762451492127089193387741836891476205554243502890558265065572221018055175872079702682333668258883594545527520963227096515864602844168614059276626771867747365730562907651104275373541639919200027486399357628840518655245021323253361682001897883295961796451760489731823997090307280290389182951912136323846848328910111714412169595927978836810180844988784696094641425447249564175985080677414529673120455610451867760660648345831515547502696657449674567072559235548558996212146604017268525705020992522150889057812693307028030745630187364825031612248377322521834961610521408092402375508614643198808804399188281357946073097297688436862546629314435331306726454321829130691025225592619969170944686457170874646116152951759842028138151248452535732515763068102434485380122574723781880938537981353152810575401730350902107402381635948968084144094903747142743077149078474125347121546879568134706105068647043661221463932860792623042006525641049848988047677197365120743313742071507099776442918233847369551040754771271787028954154580660677560315843073970298888680355401373875070152392097553741538303434391208391706010902580474090493390365347817835413072247473777725727458973038046501644076413722597007443760177344006668884903030905595207058458558086044802049258612310631664580819448972687263797808833076226395487268953811026475152002512207854349434167166739280519009063298299964177652849112401490958001665089181034900272787777785366747341556659729239440380604907507327856761250046458424666398663004165760716020439104470980589446489824146529236974834267327304082151704399301780744067117444158070554477056112526910681846942761632734661334826005199985908063269834888538227807253128800511421289760383457374456611675569354814037124809690863153393337691828037707745883551664236304507904002303004169895182160997546013485116763946272053671544155161019925184175925479278824317884967941372956789690767743419554515577627148076963157227005833671608642228366410999950669717161011580575910808490884781388517359263450189800731139261009911451131770516950332551544532638685272962056933505438243298715497928855845203091249909103647746132504391879147223313750786403148265208782360386258434773772268914840680072657616942117573767215385741560819025732503009676473861156978480266739070986593608055484201130976140919445151791298448192812165243777007506452750467204564473962120606100937660744132217089802038103720680408119333290653441810350071986698601845550528828065582074644631497469368815673919369087035496963300453941933561568559704537256563375732797710093695376117925820587717271614419115001708101103423087557155426577691479230789576945189796118559153306434456463850617458413126903327792341026861133539371825606475056197496323869392886250782077990652283589218981677990285234175319341813533725328755054970858126713167126765963505738567522253014250214368203029529647949352568707921315377145107942804710068024948634906530958301891765285258386152720999705787788255581027593847003102137962129582322295009694668139056683416123707381737052982146480658057629864781934765191910349284717012926152398422625850748137180553443097321044624499416419723666764044391424486792973459512450690183951627000330576967164559322698479672563549836572843033007845030262283924365143506889084752985446814955207303339403457863812467680527822823991461981085793267208611235365442887629079675132374491873167070274599523574975943244861184214208410214150530805111485534768447071881741603970972272618149300155333899817159822188142408797360871912311918441534308320585384665490620866912422725395199696583450577322697193860938247452063279189360963237678307053504102942766507096543940425002963988255373923304531381775164945176683236181252105068410420094262012750101713977173567163715145473743263572582706733106194960683556963328818027012053822497965629743431889450663314542867365691720332945073653007856392341756866465449067221617714919164157041766828703876161020392635382488974301458272031733081860782778858901247865100192366091943337820979382587004025851146085952873227570756951803603722574076416477623650744261420638156514336366703893772909598745075675568517133229040327756057790078851490029508438341185006473022343406875844102676970955429053441493550947671677455159949336141367927646040758093917255467069842507671223312947498143118295617928680443823572934052229187144342722014634109770784471387443690297016007606733931416142907923411979647199472157122906637889913380641373585390760076256279594616569005994571348623969682757465927321838649931060373656368237551255820693191406361438861621406963164220179051767032973751617165978526973792038698739421269603628336244658303602142443007559346435087416550926014398901069617435557961132554435406696659628032634642710877843699638273034845077822801218774168831767152216538948110427045427832009644664552672271098455388919503745492394662731741194223082990534847134595592476267809575081378210160255137100756330943335613859477065344390181071884330069675795763010722599162920915542434900415712172085465117105715011048399404742655472240028946089944168837318622989984216764601483410772714335743283920188936397889239504825545267400720540183370143589708539412357091584399100488047315827943291687186392425522012616049004182041564849798688528047722510674120449234552322768164251506814834217891019737346757000836354537876891643983830729502519017775989679867818461448574355882300955626736887779195197922167311226912235980687968679829200773282748903391451698817049670311840452505968378200809967588729980145131788932686581114452740977441431209105327523965768675939946133083217692746625207412093280630403824358654624077461322162966011360899501562477164972233765162389303860725647847953022496236999990359046844640492143796850324753552934650498757244268127400854430395107536110763991920727985035360045535755012315584796344996758913119264569495008670670229298537904116195089080422979733934964619571223633180393259101632356238177729118986930874751295437862404016525388706733333539754073241246666142662542075518120566583551938293093581651500196060546957285077452912378995726644004281455876774559558783118607732288138026200553224664790647396903785542952684547727548490428796881887155333664018502032884099301383168518836049640511961586636163321218556835984287511288514373831589598747738309848042365212065417640042484442432060112098797364453455582183312535783660292093411620000077989799718489933811809271592550748271678929346322422334666283875174376789025540385889407855552806334095445946632189419364604147208449796271887377194835423648877719734635766597441120839022384572521843167296695706717045274297538122525756138603828470820370003707897226252567653877997793943241317998640808043293186815513864135853162509483020250891380923373742353833233889998432402085377940423830388982148855285032020932785891174290952034096107365802597250631028910145637773891255611749686451171369173369202701024408783524698699549417568954602520046754196141623548081856840327406677824623465021084320739466928571405147609457351513937860649845650699834327613801236147281942348168892654459472873773135589975464778667297595228394325897150944760342425031612232332875890948946057889698462468780408753078184113396707037189741127927253461363091189614196243334007695968943400452002850464838598585629702909297370278889782482777376007145618887678137732546783429187755853673622968485697032659528417401011969549010686994380654281905243522789121260504506238897765016788972505866383152169124221423471645265745396740279314838440677787297418730081757726644450834505036337605869899613422731489825341254744983845951208772896228465598786288281560973022329565879585249736327936581290463701066943042984830259023384865635514901887058527906730838162004150675770433509019251017243442209934586913251100412535104966795437256889881112413740715725827088511738369686934710583086688336604685520448867273647693447415438908325984307799036810742751327272327894660791575040109870843775800895727642606760605058118351141823912526055379336050240306106051507179213933444126834905122571811370618214120525639041242662560910856517865050098184975393831455081582469443244074938917532710226892705291202146168256663013412219689190508371554987091273237768621068571916849404678138997202321349416974597200356857892609795765209441522196619843175729354461398370557723757720611780154869088780486971662028801484755195239591391675552299343520378303835047033018304889184812374619824089230161668123508579059136435754057323933843190179091718093700432204313842221843995537738018086572721932111437927037212792904738851555551279681008572987720114921442314021807079374379391540579902829668622809197784710463529732416653284708988634487986969408253741920108362248462041876621549376927422207409841340700942942557604274931796720116934237511818447420170536222388202721973969226218281653142721289559827513874106485070648317963635836038915656994923723603918185172220572264239631986211202117666942628766195529142334945776302617807549221344013447185108353758745734984546270317164863332572997431230396191630939702429471318339984271216471789752599863053998334275003853965027830514434152131933209273712146261120593465406923503796942741506448065215129649606766233388613718438980847574989317486263026586285707147779469405372476830824910361499095149968535317844983444014848754974060281725631922694723602142935560854130160019969606534341749088067507679987588009054455276705593756894783728389778615016000718343593059203704574315074067888414922090562633607490052506497955661203243557020704140738742722784188765912721423051938810740669706158798236646502849671207875223542754888964525552244113751817114482808523259013320418279497324267409410399509131866977672930593920672754783966227092187333156203845288410579696397406685560692060297942295232438143482446571487550188096886543408811411338438727472077633932996763542874102721323819424769466853207904491240907843528625817168882852411974422473444842501698881350634143776666463861999186233565522698705165915843817866962568849078600863684848130954490459250158809559200268740718935144233235249679426166953453349860049229064879601288336967285665535036791830128796015142979172803711344976514531871206688309371386033440237239568697626194168541665727491456170468667018260138121618520878011145656367332477341328061205164063784045490747855486325071032073662271236520665147998414123554294873846946834116715031712636499881471111948537345137842982627648270182247862366861605445165653356756449147749724332910623926369401117852345449658618218860748924261026238877556817590276209597294977541906021875842495417503965022348715801484940257023896342435721361700766904885538028847976567242300822885889664586731786186928236382244788043249121883280385145267882000045272584689618552264241892492384596292408036270996143321608438874463348213404074721934087578145045555195051837516532849960866296154964218721668065048264663172036000829028521906788300196404175964663566618337048250888763825949540234980977195852411449648171190215636248724379509769397461204808937828819216423776368023826808682786947629004329316452592778417210034788646613987762913194299997688537434888569999692021859615241842083385023891458230698955010899535551907674207015741169719977820402677182395658751765281456352583229641865185778245114232289854694455657126542952493431912367707576933275690958675025815417127534433232999548980809444610043241653238207171995959203373644186607079868871059493329926715085543349278482776525745551635720399989226202798356095369394125779373016896472014185271430851052219513024240534658704525586291068581903138302544010263934798874470691409562236884665730834452011828627240936625512056881227070953547950005423345633527909572698603767592506489860157709326986997321052860885936882664860328438318197544716141183092703414507512781291551128677175706703113412188071583795163327306992530927831071965590319967156449404877221508682371311033794653544456624484865888585280791094577260911517131820981781573981228139468545368770433378154814105026677729228271104046916734713097256920888771013753759160233503783795605617289942612588652452954760123352266679404019602457049694443563832356381229494562306517834220440829577488344767485682377555759774493671865226750734280892701947302871559328380081838870818169114728937085605604910475239674376599300342439411511097758024251732662746037268363618196048598221416310667954882475643640919188395550389629599724919893430504777612650397894336374244632804557074270506762241096205577229622734195178567423502549883995915576235052003411710371661485644597874477241051970887983503350471304753125517891847497783751999398753873597589324882822561962649647720133499375110614084238352371624914150304979425468324891791158979022905788927742025466574625860156738872383058878931772012515264681774138583887985140534568608405445682978267689129316151785564174375110693153690040232887869739830184243871669464393762427903742896266205249573660452503947245942133931474676438416329910337559567314729606901870516643905702378169063917817453420873386768709699904564701680266208101553003778344819972167168195132460168618290091834867548303474457307787236571495794831637191748050575674537290544077066920356085645879717968000577896078475241285340551218126522525492981366201741224070802376515718108193154261422272396120844142842354519569058668271379282711125489613236118312472800695256847197934410295898631228961823875529170630762042546431090066781827621390528623632247036900850084304587483916380124189456263161885878553482776210430264339949598649141694623087535628893707122575472521027746895587206529712121241786911525363300814358721090148271342610248660235714933820286913619155728883395209763192975542671912433026119590197058052742675162961381213829703236718375738115824629888335526431481185901728444113242568868791031111444134416377843656152723775526350452982606707913140387286993503847363401717500053894015131836101017212996367102026129742652777882751566697212318772275786512918802998869635134268756518364978244501753012950220364654693320438183321763810285511791929547848336546734150185851068349637799476272771439817230841725126369713478593992384831372743540706528987520529169843715853774647045487648759202751221120498949479153583052317562692093667414598484289882971642046746219715602426155814355933240329477734772882928848573863131021370792011994895282544025711723568357921271838198180342393819321657089066385031026537035531206281274383372286619140098148069337955519678760614718434401943397432100156658758473479195007405308237972036253221950029606316390733586704484458896286943951157352802272681166440201781940025758222830020659148371019926379900899471790162509529855753509427057758422897787805356449659337557057494664391021153090361303058795281480616568436034465490617151104172317496013345236291451721153951913712018135371249269561578429600413549076424708457669231425208149103805651752210038183898347683725266233818476346854068524353886963597566375788405352498761325730055400669757236899405005392433393943682995648873335959179737153025995754824902297058388291273775212282292077626847189218831849620657090069124886509486335967627976604533550145821099287508462673035021130074351704132293220935372005387009413508882527979763006352475291737551528005909611724683516444377474347729127353240256921510011842339406028776482118205188258894559023826034848381162770207857232251952863514712158779628041791575284827258972477054990313048533436317406837539991456954167323731590821399944725764436401254548776429830353623760068499885163753911586599176468189944871085709146146516279014853883409953534740364572187321725807104899896806965662725560441661650440182684445060722345518077113260009820761437799855421489299093327587532922308882291252431806940113414934357993918276030440053469191363427923370071795577130955170305890817791054007634720607867206420617347609089121895118894725014302175484959833732283863706091482175274272789919023591829930607595226114550562946815911777337942430304337971387152425175922948842512975955054127616841847505274580485792669995444930038215820476244937711458894084952609181695301191794116720215805387861171567542376769984567677978973027190436036912514816891808965316511393067543923860257299724460896857090705292271129909791883749903289776407342070689589083583353652765560706542065566081826549070092118780543456785531613209714012757891553293884312578318521094768207055976834124194148797131361432466469214846344484932976266531625045922945903729937587012091562397083286187765809339774331061556077683664828764729978696057961904174194659099537496337606868385398279356681148049305386419076154989086282020662278973370942668497667970959102599099058616378443292640081352212778007256970494886602076163427596099240883066985133385194855838884547813921479534105673522717327710621224872168097194763420330766910842291828071417296444650537204428035042465457476549404712912496634682540240142700686653898097685442974727851271792563081570254330708540023444964788437445935779038486595239836867828986342836222073914574936620067478867355214352436463764397510262080710681019944598921615220065569408297802422126106265885582836746635729683846231580160196596021778042437942054030864469292325320774684399385349692469188520114637434242121721002976428076437030109194954226859857274335476275418458922006767887017001189921479218709786411335832833421712948098566026761363795243389003427219906362734651327580175338434366497144378286188783036363128226515258603331758962845220090081142751843557049212450987651830823244102482548271862731034189534525574086903174918997764519604134032645829506624826151904319919521765804316358078543457572909353339007362750865503356907176796555977866490251440861071106106397645033776086947362645133955889484274568751910328733878237094328516237563268665434709902284187933358890654695057997708279818364505279663863906541115851472705709345362560921195496017141558996246821535206720562239340419536943736247745683417671477404402785177995982186645001349109479500477375737670081733160371325526961036540449251939937446689030802980552923476805426640739188764129315912258923700040004498935840431571535338443214254602226243218577519702722454372154349057656969573681436702189826914939463273106159541827717638138717879770947631154783742129422576547904805592012248946668330369929471433932032801912774281369425031682450200191530402365419334880224941438858276288645943714345644066720393565774759429142032768218656810005391117560160741667468411923356765033241312895977303903444229671404107689132358025541562112905067745082736932641440902378681489053670747309190690527214479433491180238193710051621987870759245788048609699331947138149030988543483269027876118473060666336361313038873985543989628534747219858958907207585294688740342735166823815725148854101032543250123017939979802233815582086775592838891636756938634754561700937666543136884842369800558572480337568612007362502779978830671928958066052533305841349389719143678606996492756199554731208362875983862582371647152002396651011716879614271787561473150640821242080248285281961964046861570995200144280450457260542164605704134115860010095957829556281769314119558977616224608219474790904300674720831486771286427624846406562321375890266952882258908752875214988334894946195345217371251459524448662997322329875140996324158058181914146435679767850031024144513393421255879134869317541843661262712126972238507376024494216295736714446781766472144658470912752907436023274147671381208617352358682719739480511783583506526743972477463781780585081210919641969586431192093634419810894316141853984337504563193748050160216163219640157410289964147580453616684923566447755552012363306238934965160132919840498711463431739644794220382125631561099935184644466496792839687096434888216237211119718526662883429068929085023464004876533315878820145168906748684606894659025920086846578967374816437119636298969355029161710507947505049682837217278523415178097858300501500924783826867044953890561656298764044391525325291976716293536723459477511832044173528350009394407919907939293381770491205654056914424898850276419546831058191772617203463939588457667290649708022079295531877358489524245600717109345178154648932778348334994299774964440412863824853583496449863190756411951042998008769143221267497802093576152999448059238708344764483181593697116083821706044663964111487180350918789552936923200835643107065345631512591464838424830806401096282954944048188741920334304581172506138249545862804854813526309835709619978175916601724782917453718621957319218090951496334431473409911160293074042217919400173916777266379084238332221926921593991191189594241104225611714374704901073661265138103029141731062240601714998890137151437063938237390119041682217758674831813376202918358784850661263653562796522488712807596194677889821209183916112661280204838266293883288626854124577229329521965263302698222168952739184995316485498517248537326848163802851610879418371306515096423549735116129879555077518148295320816115454831285933306441357818905221184765799945673116690050405876946361356976203208237941324563752398349791904208980980171721094295886460104715048915264746066392164657829324398077785738513569536735460176347178941301296965887727712312356989619640746018821597743875337319571049986829048475360681002818715603023453012704520178341782123899636611978361558840870534439595370561680082856792961164541975773927272497437755779829348523514361432198657172009161979668657189396252910883136877915212064587158530870630701203583335257882285228124546615920597761185712353408545247856299936189011932292959382829902600011724493045312183692178784999182491193945723961151974986376844123281300193484028546122987646433089086297573743287648466189618138621176524848074692322530032850850149134710842447058448950668539359210602354566361054663302178214010783671323684066366393674973762799906004452365779947943590754985324588893695854597989921269812048980375553850095531942872451533229849873030691817561916632409234837722327346785683828344437174591853492769330774132142385254273499677576555702294316192454327198621866395783319647388606818884432299441829486907998796138222464725540382651672438013348488238178654321355514881879261462073631294847649037577227290983495135871865208249305959380763000526527452440742468486722997374234717569075521563223321378621508143534841567740836876605264177034148287173335050764241416298530303566497513922536139343916030940220993287970549140090885079841329123595605103121774192983115712030272650437332311713429302750653036900488952559978283765332707083609038403204268988465748684146904721990512905228806521566513633405154665465976129732446595921441413725039731812368437997027371640595717705111407296277988733445372833136698014927743925644998946665726379494211915028187790776009350810405882615123319637040453012836767106853144880892572071140298692303954664342682728834097924176350616443342231523989928575949785053338896878988389959755732318503002201860141877375621742716079724504925006822658576439771473433357733279655550176079425717682659941128684775769663222411033226971246003463094238167334355786544003881027187456731387449188768319627005547615417491545786719553716153974082119190501553631834839686488178514385058043638340376173868424631892804521975023448178420391496478360893674039579939738137643613946080882129252718109884103896825090089949699825087259723937412662702123133349264648512316308067512534670208461931436331057893017544886074084632356609518491817885420310094823291600807130631806108838759512325664335032647298739649760374499923577957597017371228687589912637447999643908318209914375567654552638468576442295775437441630151290464310814248661778245928824088084860910807478788701485697657815489872445022169462654017059466018306365302777026034951516255557934620797069798015196264382356880681796112116280931639987148982870546521152424888536984550837035263309094257181432640210266781590186896979409473227881958152358864159797703879301892621974456068720342595445884600625139055007221959819361964459305707466700467675638274414989454397231647463824949479325512308813228173478180736396108937341225939496675179268155459311089331038998074668108651563162248615835409937135313300873433976609749272674957434312411651538887259890828156293940312715346709204351332976766488186263874730787853675747229466689926668726758575049211204687254493045527261202173128526739807010717464043010808938544415268107883298698440289919444082048019411353437540496028074475934217701029879968330466233286074971666023604721306953325984257594807416611308781928396443238449212030756900087214054815729978552798971471545464326646843587412904689524344415939607927288612703831681768362372534245504151156016848761966699562505003642318783572145455071841279037726407208004839550489432453679675212376752281932331046712360505323687307038149726947780666500959586732596190765813197034477461278106501878554425516365555512993383800869272818940333958528745906485548117792151374388433095846243414411293686773676751540019061825434359321827456069692816196368136967458571276868979552727607858123077205371863622691251365859016459315035367832600547269097455750147007812476147790031922332686204677077848171175121817784136510487655727844933298874261759203661652013464678535135155394690423796227019966474952022594496701192137025461358807211790230794539111603665084520645757059573532739586469527829473557148163662449403310468573743326728737685525866485216854245761448719002072152048366265263535279005399082173205053992086837967644554387721078938664251257825577029403914441247361288275793159455607286557305547333169493012632269697178485254747224545617258121971321400657158078376184649668816845981311102479084705195132809863560310571385390503906003784408330183077466275945361165140913379826225593824347890705810298187078558025362999458664743636525967922373993849054801996888833064303866841728171053624220885921635661388025312499215439493758087967783950417721077061503264042829608559427395731980840577022029950762155170064325797890596767150443455330207967790613113734231702707536249341278933052507020455477441072463352437992030269731334861808397767170915680232415317558042542351106538730739711367393651827154245838640120610139061901742890111390148425063861992487655107678807473352130666534319569406744069555176196775073430499824954463874756967716376516116001356969648344624982089592291274868439559186171089316843314560398662115393926523169878944857679336642355177738029938458335586666109582646717686388416694162142331038220827618605094184641124240950660833891749293111418009286842459776833498588675790592795653196328671384076514764652493441508112243963092017224253677973703101633696701402995514240043408682910674692178587647235398896397909614281116150292677375703385406399629633953770867812508729049106752869956261265088682409647379808015273737951289420785941047414101000538670993552443085975326761189574528238945614054438609624341354170025096786914716864438674925338575156026034029215256493860898148222532873574659358228305693937777745783120978881541872362714413407344464723752673118123543410097987892792725746851557058358590291861390483968435235033089209427279891701297493874712284055031300557899936708595624680818343309583733598896547386623195293246768564119482312367623682888557168946945026746140083745989555387646884440580443291021817143567085875312431660376880539543423653727285459766775779954221679526707793418337157264022149497484687614093304172087098646445019365152405852657293334138464114704956397862511906004325876755485207228040432057289751568375378777914709505043567966687186088001537595005314479345461039810205284057881427682195764704221920444241075316045581107158912141090068915085936118589185273194824208127206933084438158298916265928493911451684198555110263574302434142915709872113218534324328252429465511479234991811480149325383845930712030325962190542064280277731267955931787422073986609672090532536003152729253885213453907618612096067471002937509171811937057753355584183283407346029161215579216926652103780675858935894363192182833493674308509773172758541618703712152685235560226061482342626257850428773417530055180150800350115803290972545422672927804679150561097586637617830388060544953140976052431589363220232309815244821249867970981862373456102359087124123243790839033238165154739104617399327876250321351732063910996824056829962762681105214792410115303368170519259838152550308039093391030938347915333761282628973869818197615351386528490613403526664333744657155097168340661325043523441668547884329669989876920829964593669011942077784915499420568192632386521201817250493877608238428895788043880997722492703074405139461589877883415154901498349852271574063006307319343857603129408748877755012771669889180124819792872129208336947312116939139396949416848409475659258806399613609413412416869265718429624425699395132341950231735657241611100999770382823041815452669563895601662830027217264804060908429015482226593350377131847662958384254084340557466063244333059022032345732186189757416523848029799593050348840047817683307259811566903131936943881689483403867958086019042192325998776254636476308762501702950783097471293938010249533939152491917388166061394332077571176869896489229609352877928212346789546185628923771255575627330885706601736272079873309621018283454345544177735232447732982276547771434343430124135483823734996520942598377561659420101904792830880600121915392638853795702409959609042691276378452363148433176354942653158098753536844387184284350650525461722856379559611098897223142607143705297186594363577671461288863424631022031242382270134141280714804209073096825643377072572941235098532934051053493573276681468064753690572905129325061664608407310680033035727595841637706084375571760453673527762709982861422587547716382698620565532634604409539031610137807264730885862175401635333420948711303317312474885957343650600011177489641322799844006078358695072472665085188122417727038603455899586725087821027753716809288318294231965803225659088018301090127382587500100635579091484185769840399039287090033264006647686440558183060378768841226355064503815829854716596597914099610134904290923480547410066286035006110079054497062964674574871384346250145348550258589329735379036219484461525106533850562558193552278269626459075634727752463517911847017197306661528967882561486718011158705173750494936683550660059338564718777853442068561953602295858955313426847778494874651562013686641630988725476247772046703498390216318027157006798611685574718267889538404841321397873265804037623311298772185425078561919515729756839629526422746171658010534076315161155005182396870275885815150830923133832994945478632791007036003496545662743130963637705552997392215843474487721514286065123384204784573264099198932471341327213047169624730638538966452462228524338715475173500722815249823034828105308740323511287851654940321329863472951323619975516730406372729447263990873135887603255699348875731399889550689277581689526422491053257119703797924540123051406490803645141596153116134737104561230467524398363085212672085205340998625103771808398574068570346521824319530882792538749005232910283715616098153148639149743555372830696770144403189372179957351112587892822676137691764762624311819103487978275244015287751622279568449323125113074866290417903911355177948779494083082759141331413757429372956010656431863180219011646505858440294409231719454190493900864488809047740237895239809777855397982145339954154692048354431999321256308239254870181632600889317810464802424650203645837588665170330851856007987322495833921489281223010884219473401434294342391010485831404201835818258526870893405201357518244433777613209747599840071999888344751704146087357344763334737151688929573164862921911965703240046996383471630871195841036388732003129844910010077489424188353416782343367821565108809640343713554450312492867571105006319984858567931317254194793044212344996315985923568229982849966673574360133820017486165676890934798632835563589872480673018433604210330672746279842147121120512117261486246462045419539597764797220385714862632612907469665175324539932803043205181239590825022116209330000746107594208002590685211673235349758730575673008688414510393667064369076631898955735711166928166074955071684110152245625456988771376747807213085180224312818994869235385491403299485237689999638941797163673569133274452602738637395402261173299362740715649592531833668880875447183964740724029979966376012020294049244816575000093727485064440105593686768232842607332929856297834759905540324475692092775092775090777440352056009539802077003871691466036960211843679217410759968780154875563403177452376824271688729553311848793473559720041843026869980964599468703196356605609096909400898697554286177455728889931258840979152141513994586495531151134705623319494151639898977059323656395189256843419127436820965210038537406015992202230403656192107957941558943225706876177991284736558430111604013244745710658422634237278584526488967148639486690342326159025693340104441524966323173440932172953477283896235302200997379946197644725456740655112406013082549036044014025022296084980352324345653130042957005159920117081281548740454891200104225705193754899973236842823011205318408153173429427340585964427926265866945397551426337106301377736969832312744150392756198144551855141972213663312283601073363538685314495572022796665515851777372452981779250417943658393922267680073361518773524630886505732238863024884418647553847041908056472477893047395304639551643823171011580632066528228522212321955879436261287672349057560943624188791989282344235288843170295554489486342616202319017455103487198264962948744348959549047222949483427009397569523188666452294382776859193984181635697101544124382800885209835025795739678157675607331624240799182988319563970853679967814579214780296229805906753563144334536067989979187040443511096411012489853105337117143748593337596411335333230853356512868530662744513926270738353272980317595949918668742541564364486039116600334272947017405515734969384508958860376635531538280510746053611336620821043757684120289490742329288185384088041911938590832193286991700385907952290046718657980319445627262564793477344185031069380511258388771260405960153297755066860758766027190924807823599169474721203884150233517162220421537547226724628446998974219587419543181324944056858794712054982806930797306503286767595141066133556944479450316431106186781270838788297753321651652869368150381009448703017009144515623015223522610432221719428467149612445334002780839923257905898810238339117064311017911546114392886449767102981896915513448544945806001554497351530453588642674026780820768612550412764177625848203981959338905463649448260466646365819239756701890792467784568891004042552979667488469450818448092994876444477453956377826134041976538393001390376490059044131611695326565190711964370882611014643860265195388078279340654513831085308474185658540436460601520263886422496939987481434325963810820477527356777267171667317512587027024866026655533598049605549134028092443942473587709652482075679417200529438670349428873595250445634663015985165591114154817733177150020503745684034886915108304865324353356069930997174494828861421702476202938373280507060293625638423301005847859993130481397073320200498149748216716593544444883517865968853265058189407842103324454346592926355263512229997376398278602624226565080007639260052209331007394529943981774718703578849385205570041851105589889460830734136730649839605708464107023549674367115464335870958547603838095961204325889160163378491019625834095096951338325691693657138523829842455906979472038288748085451887618817015087942694166713783282876369623796565280409732046720094964564828415482579844682475093643076109598230484159508696015123690198119529015709775556769635033704929747841310840478703177822064351846892035969946060319918287815910243696254620382007062896553741400303081713750440996688816146256106431197603519972713787714266234926550016959264273247840876269205731721407434410519658552636765425253336629833826693251200177319866536514028017370855605335983771524958745081952325554908552973565015876897480465033732194483129020605503791150466792702666091597352196097778863826386771879011909117091822515402446807867968341900786157782181449809689951544572462497915951714546900965579159614224479307703360905474153717305743059979884721186154860055350593956819601426491232368143953959754860489922662447736406522093238608649945336702855727013784286256811216390274423462183701204141626150082523050674626212158942575243679967987631164293504263228755178919280229971788273095889283218537470659166836135095525028448502607194121736752570331598175271615586729812285308534409914558576635385307079638950632942527024721990894158195453879440168890251561923058123597105903517930505246727516481746280730145048497660501912910747500686886022531337614705176555618771586476474515698343655544498397237594924048150834429442838819471696227429682298363829781620063711681322447852645757096703318541881523759361558373209716523897024066538257981680082179529786581510689550201918333566616716854176335382889238806764384995039468653146359817211778210812099044238022044072738643028991666483389503413432014223205548553714580378529914420182299343736094681685495865751371636927618686953417837908836779060934059188209346265568176217092148309133332705177958925073523470193155803840300930477159865310778421978909740345701418558516994082942097284274490082423993115953136372763463212287036666003355542471758918478859837820638442647731570563407511215185036292730695631149534372365643550130279727876693496210534356132025193382233369107425100569236221552422469161354386559557741928229691851855487865366379787643276672919683474113510708092808107490819211947074269197039478329199817767681197673750155738655877640988796477514662882687997154811716936643143876130228572735713429728600824957027291169777201668515739554612857037190088201393464674750522485895421502606275155977270211710096108870171635484210167669127719924943078251165476665440057272305113428979426748400396532659705491789004221360151169646012599174743633229266759302400000191869551853468793891155601763938893382547083846071674446046219618909705107149515892564840340021317181101692110713152840817293089298491362830578409815240882695771782532613274326867687720665316988139106480827000718415712733564999017789417758580646670968202919654487373385394526667803734816749074185615929836687838787229494173548972383608620046252900366012724298917514978626366144226372791353454182200591348058736022891147358954864585134056884879117841735651014797989376570229610900220934750212939874437755144623518938758779093602714145249775890828253918704995713361813924797825190322538015558851200114238743021383609973364106479262777024388133252851468731609691627336022916088755632039411346034003741538493742846948229034777169001732118000163180568471435280143031084582893577642899661047667846162733084157079934199013203810065304877668354696886127524703677211613079833658901400174252494356208562054171659470129062557935739243472651011325628698941528475647257781390364842029234312525640645290836995829799713543511538009340925616235711384656289991514872821569623236929146539849069682297116880976531692888489846487574595661513115333562161639156916212815339642562195029080882250054877145472133124819471352369007599669403433723332694922004460215324549615999771782471123758731076237633147661434085848617909926369092773183276317537887204525175328491191542233397439347975707040534827486117042328477315534522107194841849737030513254606895930136495649875600810956839010371184974103910338050457204080858347936347686977921721168705226820139916385320637806449464149621783702465890031537241021365412036827634352299099699032010292462095645153569908612348212897137176514703750870686570274702317886082771971896534548055228640123547492286687952735933344562846201584667924902196330962040064977122441057231544193262589453717956669112304377160311507478295465656088748483974417793945220707820317098199527907503630288670767382190498980308412776671982547966610094304708675373991869546862105293989736201456778394242558806630011292428457222216861495123842748517531734782884248346953205610345186147558788373409811104293503404545877565421976053514152948574346393667622077869864188912127024672925429622360743616245006588008640559736903593790457517081987844215101417082578088418797792107756913291631066549360743095024645243444482824744993830934633189646421894620782787151061100350354725532605306991942663561738137384313427967052983759482436391839630583618080677704077701434478138058297211652907733389702383260777919834332275532885327315498147827268966518408619882888691647033296196288067142888221576179348509299693501756090906761913188087693728973401086330076107351633674533776823955267503356515310944190059467415283953968307847834504547814461096105221071941940764467975626495638215601558532442597462843581520805609380702093974831530477087853244433761745159414400390015079924411127645071639378206021556650656506290041989227314006547718752326753888669949181669410085002210437643551767357815413887491151017993738757507964005762770278037632771800481097976597718158463516834952314001849027625007170173028367238934020880184926795591769886051564854700443298079630412604424997293068861015268939661972039935322063930080334529816736131908107461524952733797932726792594839801200385416594830801880551644810669225320563660758430701088792820253881092679564427234812981836636924520278538632165605517920038859161568720005542600257607899807098312106200871915188753483546599460492778964248991882481610530841481770713062718485325864275577410795397508585469467943899475310899323443750921196557033808729823291771111851912963711036554071025095890018837820816282618264477241038163270204413529968290651782247773075223189101682281619527470627607598413095487875412878576440625752769341875729736052230701042971638389914757262954654014791027426573407841427975723716889001316146694989897359138123617363617936135971362791976139475003732164176900391928531901653740119738539868690454239264945369908986494295476768895608298484120565972156641689771079921111643690229435081495953871555504667172503715915114172166954627990829244699481442345810588629381257427276760314102863945155468514916875075781252053021967574438057763567349123941322319189018028562928731606979690174742289301796836835104903441667983007857034853598327011088967235999401213733772651525707955426214532352917180291923147248960024048202741228447719422113295386727009818341685093013747057167474431509342838099886238642035802391515534695477290726354782452009313476206758409030827806095913325649236328586719402762659712291774629851349242961778394893863252405552132890503370381497322872452082308132690068584356183971150742660865661924848690163490599213968603224915279294115470774909602438247718856671656971154146931907169161830369153967060509127790981537481703065332348638761492230419774043161086436311220192914895566265203534118950781519802582585263392276604006244586613709000393625942971253494632525228144370121364412801021661505571361475048503568638119833227787616694971819313049362061283959198096660725812207921621944375300249139891536631742807257012558080076651857314766781900815245375134766317838484670695115132813897439694790990270818276478867327040109735684320001763120118851250109693256468982544736724429827169542421210132156783524270794326882343894726271847287748841631443549309882448790635414318086672935826169549160350936511046995029982830181378285784462455555852850044422044768488364495903855868083263692228245199183818443242370011417878690387705290760768504495465044851856416590344737734563254505366765354251114642571963013915808703209865556891503048204657620347358740357132937439578617196213712661617391299415182438002928774553680492617104703172085454277335546381223390411514517884725327018969614502582935623468935705990633929993482245655197685747983131191135133180178992610309464960271724589241515179391258944007872211135312840385589206454283397035511039394504179463855221166988023785668744833969654312988466773968168784817747156413795982701902135615681892283746449560417303775822120819376259217907964049035010787210155279759309174047682815644222876515388030115417470224777877199575148644880198487993785884833884125203350974360343711228121202332962144411532176307954118979229501225791785358546613355121986139188151322838651697935469803581842248737105340452081206790821361254099026682306269571856557685368942479643317907551411695441439362073459069835279545703950606843355969823329439623965877099950078853367268516050445087048526647173041253965741191289832977582825687421682621920025802096886120824897009815636319439900687025942171660933131526411281674347734769244043974449297882132809081099224835340882669376928614502989536952939233763563728206912267642169558695472163065986083502630645975371776745673755409917323916196226967257325971738683815311752957808925267540453751560329282190278295884168994112155382245118311702319383270596897437527775393442803900159045928175892074322362597304228110793852743930663401042087249371997189150803795388671378469257574141072882921598028409309441606354222484489561906204917600416910108700347811267536546609945743930149536019838828446498459908898735869022599910405573643036911799385008905708199245691576011065632959254743649722307950240139289197163524831077393939325272339411763647906524865908931360947241478095280892327840167778605460674580599803619095042905972271958285506711273291996991453014994560998502169963466743573849297987989170328701837259017943946786179195971968343039538187356755067042440337471909514341607618260289053750726496392652491982177137089376874569786797940273098625638798713244113013985059241983481685161417831235985130052360114321453668944712826233802988880745832753452786724647843084183924094404916324998674274828748891965039769218500122527774931798742385638611971715330335130323242850931983050413676578424364482817420168640425373119054817824681993624996279751133219658555946969639161394075235876246618762711517061529061715192653022848033467524816059158467409201815202929119901353464963124098278049894967450784201238347124242761906834091099926470084880607229995207187158750522774249933492173739117798923763138974922846447607900494847875127110340657020169182607447112777525501922862978165904805244823841077504976790240860558178305354436184105137383339624192109400070519177861395835088983541004997805004608963472083892657829996419322284052729610041445251364453864229293666855528210004429734069631147537640143645662300925023126303731399912180478178166697014475778341199952138165532588037017245674573061693833268690335903380330854833187746443492363911023472657143122581745810937756710175904627377656812298294789543998583642663914081075154818893994262935145656649611228664234226663988083605675438481641921689299356510136520139899193498804500178605412188082279927604036372934344160469621146524555402591481957755487791183799565509876553566377532851442751575878268054632624726928227436823395365222772362827516690478786653911168399789588125972601186925222553550729117640711309836409175965132333137928083284327225465492076987395474738657059182974549774502119925513864829416734800702775333395383608649238938459005743760875084994244667797929527027063756144186155651276837453181522191728928581546473001580497599286551501568345956423141611170983513142921363978203051965283955304853523702819965108337110590493289149423418715173103474060262619268274723128037699021408544487319318806062566966144557275976969673903381212169804964070852409331857050590018948708756405316905031539835289487506063323042495648380873093247012197915282098737758924959089716077053483692840657445030483466777157984068138722860484778295266569346238137112565436457134961655633059289426803153754695877758907854874815403623833478802432698287462861510303598245939508110343042399853606121687708902144482430413493007321333535276978463589805016391444431782359499930473052633581933467695002026389591260319172998307885658742202419344822619541843046154829233771307522869941352897327556248854446300858636368586135483423834668082983561816695168352098963078410757938983535160785436960921636911293224847815927694348727832523388694623098219234359028331469599545593445246140238455152224232221987650455836522353287913709725726533206122515242581976618910689678762519078101765664852384217896851686782519730972832906376525970628731094751001000543923041633593699562831589871847643116630772161009880484357634993567957610233629510425290470269634911096905905388821294242129623005075212149973291911168372260228426844183016698122199807335172961256945452780433377025279971353243460329147695743622493121839929832869136683898266261614748033730026956085567985284496284231130161918823232712732460041572824976886670443700960455150714914429366336027209405877442189945221723740404988996795653421943451217939357228455504809151038857364145149428834264497693432783791638918834466931661928150072254507502681439431404760375327219976241924445809420943107756273291737933200803500537735881093650529074201311852940790315699819107005123080782542074132459110062614462687804531102346670507296195493376459179796222847369138314071566020827277081777087918775314706263934377648929821241659041647942188445462346826666688943195784806115528996979147120128104923428555630285819643860367344500891017485314875656369414040925564148375164525747221961311716437865363142209634120339004581861285362003887794422250128845455330340147934049121761295614624608656340152275584989538364198859148676365103684240186483754677742200347907893892676685911619560117299129314681609167543503099744376025730609894326030574262954918338376431577975216651835723797665948905481206482958618845366309126916408741710886974595608733576563494585105357985884223279798414733924343043384979866778487080276719152581610329085959679910071918836802466327974325693593525731896543167529118277951133741296157870615901938606735103893004005623704039872967327690818798462430039501519350647985956786731081243456456223635465186456177549207097304250203461781954172281999776922189418331853407973055516940412884817609013524253737413080591099457468236933730729151116351654404990357576421623435486147444795839936945188006490675849298817492060880078070272722131003869802834305017434716122928662634935511734787967094544055343383388750307538175133090131381345558607456179710539307966402903945985897667894333485381084554340200298373316331395455034233199342058623761588639703733593444527601919144721990569766588327084616052607543561071501107655643047950374755790407673694646511616006248619833999797662574759758598382113347082047661541167949997655146374174448183755192301964889058199067593860284072066552239115775957495805891754456172148197126964475944426889019378693027837620142570205892736183719881450810960291926376961526241414605091684299646453816506357842370201543467251515392492910114014959939310558612904064586234482991495502656206578277698154559281611654249018361301208416304734632467773010580955961324416925874449312969448997926142252731389096596810190190124479550010084589111999271123305526602824625413907356962255430889099295848141927451157183781591685725661154115236786172619575049497328643696721392838998867195621874135146399238319711637973572992900554764215089718469870395503666983424990805285835979643127057134006303615060550437075477057026640655127336549468545890152868891218933719389033516268444255564217936329822864493443630738864610172455807341521194185203824900284875933591715774845140889054577761761006438228981393057573706690531520436090237237737859803899764479419508610529693115365610720511326018562521627547555614972364579360162100432584149069763048556632233334768595725130915759087885013647009703157362171437828861375683081514721835991670912480169515481223764792908802418653833399229629954510890348834998998632155291643921939385648759274072392829118090650478092146349934077754073757127445885306475194345445551240726812478271103191813161082070310772352340533412672939497479708938361078138633521907083069849400438033300043719764169320673161346776059978526065674969846614602687845116251977948015827930097166235261793853511760833223758295395570669684231809659918563144116472282470852729805971638876554046936149996000886462808959714721643695174287425794308331489715603141139604946941167592294117709765754024274193512584107663586025054704217855737453818269882259599725407210682426016846237509886688008755735704639078511325975107060825735638799572677065458836275366821817244147240065864786775780657852223375104094574238141527883878475337212503289700544888511411623941956114718257605834941779011024006439249588141173011037717458568717820731172707093964956829226473088359954646375528017899204107004016446515446657559780769803279989514755721306210009215764154780567198730468994446332149315995648913007292013871794954477674297813923136431982825031487928616995156274248604975909669777454232252704036305529962685567048529888465362390983050093274987610416057070543281175332361583425457794797133155677206272410532534107655586721998863075141146112148599202752134955165371005998190239094748144630790306406014329587750725634780341516073563126001052436904891801394365487707137382845073704866513006477447151440285176512324240602664687854223432081899356795858789904654523968780608688934542593746331591982626743825458471083897250022837564449326913062858884010060534672332360033397606986627623900164767149738325214863241966800498178239654451320584546160429480983580102331979754293735847827149393518950756877402560783377622241715465515699716713840177233848141266468395751999200558441787194623077387273348284154326988234478421825225117469063168672396408158909376113587208241755970134860209907615676992476371373641091788995847388837421326035898002236032894991994639230584238798028044735339856602336158553640759551546055050712115137319846886334896955566144982247460432515628034021619890922238432927519347590689935684389805821563475837688822271186434620862235836880316968254667501040505825441787944078909147035882383209684676839200452315003303092754715366561609709359020828010424357717199273356650848554385359098066634112310025159817197800689995568171286633088754558304058429318075921143368039259732760485848303449981726533680374461503582429012403410769396750602481320494745354295622944826761960629588040683124606992746452402215947768837587940372024839005242597613299526658304147361029602558783733123796120891292535321715089502198575043816572926866751457059407519099492983754341018672734830153826977377542754980699519436702710737629468494123659661380647315503663566685464166963778682919574245902852605851420266373262087746306266205297196055293475195499405773068364251832620863290341317679571050381854549336262469539881438966664716169666348529822517022551393572835659689341499020697074728296507337146987065791688960570119915827948950534176685419066034475048084582174089591618765728725801658706217427276829757321319266362163563985134613720029897526238264635398498912585730952320005934536103975262558573944687466268744506952097140442851489497608415814934204437521395938660400545293891404183987192825474469289401743091973445903168634306903098452902269357179066410910491493633725015678894777932537825480580169212311083537774534036068972097450016786135844132116159848171316661485376619781568945941779669456987643071036332074796352988445531980584220103485363770290778237823684535536204154266466408759842419591830817450019252222286039174254594948855362041403429362698498125613301158828559667585621744784325699874374014107291507240486184658761516581235704058299863355743850249343942639311018381223077234074768366414206386566372221394741450204654317534094843891340501685803286414961747616808869308569576196905141656691954304825244527680439355474304430439534335685362051546551545787234025289712591184066580876864084049350681353929050232376989431404103868318704458475097146012913927118716516152610416122211604274345764765527170411980657173169964598174355889040988286650733017435196964958682085935320777307096864103448455955678632172372522373323334690995371991450057048618630599746029358076531367521915701567711719957759877539121420569780965841397077811280943960478862210222167631109272490795145215291595684070945256518700125502771598607168895117858779947541230225478510410003160223366925027356219112092863932444230261348646255211076271432208913096293894267131820175096906858450450335388453498078997309700475198932551146733301495804110479347196489308470891528909378077352572799983709439857873043314801867817661583309680168761289220802777729441988237095140747424880633809343898653511539917254267699334992834512910878904607306177413416049535568439604036291776108292902751204317317579025335595213354067006412300144295403141782073669665940485665284236723963121484536231989681475449640181453791262925412858464641979801029934325706444091927915662937286795905163209202703227792001836035218225014316741165475679916512281266182865118823053997327869164498078902639080334888937809783493362522094456256106200741198751313543353662242573045269439769843879502969637690543356864477973214298460966053009996166368873619073399551826749307587522111403540497443586241379705561351126019563651527898701585359935822880529881987026790569535597810079327341699105441863875169129324909510757985298389610835646820428517213198574386286047017466531811386630507254962435776172798987626810999496954058182023809025238779158340994088873680100901488974691470181160416702401773773086347864617065259742355783032826882455843373716859140852223507075770480669833588978738595899138899958185312343877269199540917173065971842518156700276842699451779189053051252715459722397206930340258557147587180762411846079329964270135750429880334427289031540947069016251255059953642362230011148245748258941801052108572875744496120727696797396304185704910757999652871279382225011795637680120764645445196772522990398137281141004807350352340556019456012676695007920551738664146671191322275567501022878955785554699848886045784075945522927240202749316007280857446462057911380074678774616190509346616410716405726551242636360808372506065118634044371709834895816581615160538861532580538387832192273271894191693878049091891143751160405778532060709111498681876641146965415405036882438918456500193224502900173240384544715911040140839528965435257096204525203147660767934831307268309183925953370237680084871766517020998224663588735310030551570655160117769373706578433839571049082614228784719848397506788671638005971342676787699661345676090106317156848229359176531358258759024630634323148024672644772071756285968694753914171730264483857032355475919489905403915040514157021553463323370916018337608977746480913100734551506858245210432645823633028024088850833918009262386327477921919580041155848363162843806055371197173790827825649813147234374371748087242830188062668653493066681994786792135968324425706166855786300696041767727088739669439397209901232977181254205688408551534868379291093452977869156984490996808136252927927220082406175970968409282169614260377867811373035735216652443373350805135165473705343374937499646062379747703525453226759557280934359313881285565715399941061767641916032361107126176933052455510556924164974883589629450418023048866689950678638254165932167743949288754409159371534052813369524763093011815894631031232129122201286303836649837219117058690574858184710678794587901078676793778057670891857564495213350370677600929702815475422259821668033009402976848934392832596210009302565170166785518640757564698876782013755675382068596144700234493994081629365228381099263099344868928632308178139442376803786431377397666961039669804267786638189788515960245592775390693868190794081473485678006834711909349969777545508055023980062788665749310357701493718483675404037629775901446577328292245477407114616714293260347596210331259173768409394024721847827976655395964796127411439084131540040441925417245272080024134513548557321258719545921538633555651583272454386572353673471860695515029681847745352500741064643711181628915556294473538749094881973925438739998461632446312256669679787134646994337817179984752864418473117955957035175575142670124382666672043495847433302551367681236557884285457279296406125683560968784429788122117281024544818180990103051463470540211268063746308577301564796738243981813729848936770422639439702621478007379259111920653898339615303763399045881980426027291216417329997058460848746177852052185195026963737982765332583286093233240884430447222011413370102071523803940355212930940224108376667382231069004302897230201508752260306600671934937579363795138151432812491085891294453183159681915837580818436592682679672395601367314960236868018641584261118728234127692359016174024201530468095073357248262196676810792536965442810764544474003024165108881137639658104369876676299392196648959836148490881566864640437596064836721005208414066980918987686539605423532945971301882060465928906271896023320328983907604790069854764168313519573398499529857349777626540619582895331661046523823784429038149720109564268308918837002814156998096472217952501555472120461975049522324958714085472805584585341411702262101264250318734956717586426868225672172783847748565657328290903516289474343769159412240778113690422804421366199205591974331068636895974200988487757660880011595802963050808494259249414103842108964881157220135561436820116496053449165809490382516396461690781184930153590336007481306161489952202460155732233225856597437661967065700945405582485366050045167411103922284135844875397257277694721716722740107282983847087367126051868383562715211670079795232658367772690409961768478565928111040383347748158576867519442967730762673902591742730084265485430033491738981811971145463099309016460786677238594510871126588553089307450854018201206524223791594615341741738750308559604520573040998890271125192174549134969354628235733225538041716819390220507329074107514946152990569537577930854581483719072555355053261179657949957537913967487662932921776249076503609608726355927353368484118724496490363782042538638631997877409227184667473356087289335792052204583915546497722147147825369216123887872185685022566956825988574365312869368552552802232990038364252409265895659820721462630271029310423852782065711162420007703195280339438392873943757444385574567225293511090288981989363835758400389427601369218882657686727949345435533969357663468205944469197463294129690192896382012458991053935740246226624240869044542210983616098172014304950044411479820519307931051237935563054808300848062312372690851266646162115371143031221834231260804583533309280280669683142467537033926732567789624054535323033370131577647623845843278104113976225959119910087398374630117224208355756973527212431275974468923832714355432910160009662266181161160337644471059988447554356548776996618999545416646944535226773994682615833426004998220951767785787332289261002683823159661956143400312237463051591215300458669723790873633810368434656642637111703028534548009757750191418891463339807728085952882465057414935890155751410747855640043529761759140326744130834036597447604541259828769721276555826932111938988807551614921726538851053152022532983415406894899229153617395719311103713562182816454888879275251731124064929241769385298151064124244237327004412800842755377807188697666779868283863263476053729572917283396097913961937825412641041965046641251249233011133435379372011798665202442330776647116574302257027638317239880762236346585416379363442239730585979999500340594050868372745950478997509423820877380421732413616556113890956040001241467525944446090401788274866334990865339228938030921751982182278781121629300073689031457587689272567036628133886535867873392302028072873567838195098419658890056261786663259025314046533964941934357964518194808865876670466601167557532833656175000473613451670003742039830431983238195315461909006866978499157205138040762024492571076354033135037494295531172883160908193159966714787085125258447850022145166880153119626465226008970597775628942186176779281991242480201781446002224286686691425500946582238821516120846988903452806010934035057873944079977263881802367545123514190551509277512445180876570764023281837108303622529169691928646720244308035688248046670678311712237497008120437980204004521890637722918498825073640521343381371787201855014957435406648690820278285196442124520927206038919728033374303729069721433109239079839933183954136341519211559255287485168335965988963159958997216773056004923016906666624085989603085947423357040790570484911322983092422026675026249579958461169513928910746551318787959703556934496755347192902812527561152267405874014077790371277106812106126959107803669745795985303505403743903853245353050798911462684273153996436733606986267944524389666192981272545491664779761711851498716333265612577550935293495584657866609919496680736685189150415043561177214309853348438449841885542166537158791203538602135375968385144854639634080080216388419230751262813138289346796965593092350384560069975463148472860873931883766182527026132200235094882082331871448403815625983471048690079917497210479887293633764019004768361797696095260832027789005645193927374203190125162675000138906368680887459120000767921813738986404027586834771134834064134273635756057455215772046329405795296897333053443600251060039234630589530415907258947235434635115543178379606247982718682761993688200991776838602966386297525500085457729331753753087206816108141292360068621031556412842716032729578701553609726334732883357860166046717572768835807125864184411250511425611613018083497718027763683458687917254510906278362461726785066229662127065375218104597742098789973821261278826497689186975554173813783005568094372996850972879660529431120429672998977894144238699683031796961855278937224128978755343537735571552433907905933034349752116485004583834178722215166810924304359219364366654834386882566122540216854801232204588965159213850043870987082559172961168720767317613365672894677120921493853566530891624041265957535503837045093417860283216624899209332659353154491038848271517829572956494200686216608180182304524527886206656434204735516381025379116918664217929956035136271916375662027506219861429443564685161648207875925851116727045601127172416183157274791434772849361306315416323619730560582700612331339524365888195738486900229310454497802666994923496037694900638451295891089003700101205561002876012462818230276258550613057423013111678736267388310572564650321637666028182677731781375929065333560073900237022218765600934305216214535304338955317644343396785286795715212951346491393724763662661167126895202235212776722790999197915527108611088828261306948485560720253469365862428350654814614001196818759999860008301406749761540839271281385026191836856866198779605068797116440744048602971315216802726544040435594899406964341414082201951200408334937297513882594589349804963234959726604757779371680910859490436252717211933795089552762294969972307342486128415948317259265499581370956237957604640015023144206631018552117413324679171843971618137100583261987338826836909649293281735416148493366830125506567384276449383964341354006217054099502766647644528351415006505040225431477118987791586315491025855024211011014367978403907774832503977917721118148664840758542220562467397553450294031525018877372177952352535417663447902646425613022435157719923600002771296758813922567357883152755634543172856740061048396818978446428784557313050260572597904500869366717227694689629516982500332172679464928490605230839886721005565102814539121450892650475863415170347743854291673526630798223856964297159119339039053736314498961377676986949056724711991263800752572750028679173825554027548917752021129995822595537254074948391871274655286982780490626413892360652336347278202345717370603318220626366806916007374041018676079658166933117537722417763099648306310801732733385485156629895695721642676607856901844472388930130936833675310884297475575461660105598518919440216507195537759303514512713688740664622374447999826272061562569827910257896115590019235359806124552065264116470361904331171238125979233825006427783162572786760942561621044123340544942113980342970403662271240643189610082028440726427736192896392966184389154076935077825711699011675315348757251966222335049981078592867450525881244257384009213996318057594611076240363676876233649803280158655821529163304151009193573211440228799320284067204068398771460715012617919652159042156485351131800818722734358855855993765877886220951776659316255818623526876745950929838837263991884278160731740746252894824854780993959536183509539909037623464319214614392549945338730587272720139679978594208044020475085008096375594966580622087753499430878922621421187480847121162414930128787994762277957072620609731438314775047574752732629304736844660472243625481610153638665887021565965399213169497791346428146508541974432570135029705408547828649196884651487813854006700770279584135991361434716087830388586637953766375776446207013208060831009101186328274680173518565903573006389976327837645007892459341679495283476642063672795668039873046528872368259663377176344698957613553103038025901836847846258815261662041293270625800431336508594825849088152466788521311767158477150910012556192217815303735124380773206033816059446684454394826777223379324922033468526744870225793355329754633963537761086888248135476687699711198201316863425546510571792655359167704658500401550202990543327343397165310717673333966209511506807901917133174415646486392789506354183848551872252150110357419615874817037924236050885513461337733266079029508217496368971093172973070000290157853631962735123502171521900924831397467878733273484714971087781515398690900812546235596075584945695534040923810263029037703166925974445600165130967258476137081055332863642258171082033799693312328770479018025993019538919936300598014793554793324430832672941020644134470002737929468760228014960933773056942716818924063078383703361568260010691003039287283745124156010315733023904231387301477664190483714455960367471553767668699743393526746399772606502782094947178799842535218541921138659227859809546941328249381003418650990949214353856972476979751665228209726440720338117986200489934076803190363507042363709848019026166828007627565540575468108060133769291405013195815135410746973262436185680653989454542651858573638016910455239572983784849110388435518288092351455940392089417977940308821489484167541997322508180599448044439647213862220857714088526698414541219226949173172380509688403807783266780375400004298114352490266306590881339600822745793461948461129645101759761701819599439760233249223283857576467726064027321962068140428739617943481698890351426121320437563565166991354772827865862564214175927867392871626621694187724752998165617688224145480919983037662366306436380756471563151403241077681273281472641943086783608713706946150003605671112798765366698812014848830979449578612351533034796616330281688260599506221737673845089798299016063558393489230417469006709779991307863672413520771688144476822992506858248011404962852108820401048795156435344230611858555388236812565444422645046089944581076247444199089246051725383064362548209264886574557980784308039088727265027177180592406948165632251079397262283182741619085508837148203431746090838619511723115774222361140321901836998467338591966080906546031776831837954431525735586561802988261794418914418181205625114524139234156341966586655162345931780254860421254129073781297340128836456333404155695262407006377237553949849479287128054892027504566886106931564173230281079587529861116707629845884172117059313691741611469279069964322145808815584404404325924154321866840032402512226992162001958472903155066750026421443970808089358390472248070736510395499030975409866360279367927035375536543086352623954938485397808730302081640624700088103639117266388511634593085687755149221564648691330618270855748850238463419236852233632913186706299342359963616120474247553066389855303101040766270409428038335450115086253161903310687408689947609110172960612923378531372094307535632345999875421452994405444154132212259355069023812022811998224488989723654868819922458910564628463693092725309308523613416866220590666967310121043323848007620875509448187359223773166088065730043249336162717138635040422382268731002664141158200086955500769402131894376341675137431346000921901225437243685983235736515392669270574732824887575376522779203375074407631091548748751609102073840678524961692556865563756563884225929741018474369618065971740011224319946297338139584177342141346344034738748347096531399538921751550802461882819692445002668996121424894514862746441290623722556260048596470012603304435760327980564762386084908924200317139691078004677317562936770554078966124447063659394737149098460343942551060292462932247547389953558122555113944719158907767361993162876796880481148183062991351327862859217123311379821836111447662499847612817272488728754008536140300017083040802941443672216854287918684290140311398903625870275338918663676938767330924188966587646995701339774925347409757284184247371215848910116835964275174119127191317885406028175279445233717400982628143313587402385214905205713319689829421044912527351541394762795800818245160661853820521424971992685810736728684731697846429700700200229258440683370860895430551812047336906040009656253746517421230293874191910253217695384047449754022937416791328391502508226073436963617841229493845644050802902202231667674732529573023485478832282910548914308286345723358921694339824200191449433100256073390359206275203288810167339545288153143545458651478093380919982833717616838065418347476130773666294651038966381223933808554502557637527832110928784131855574650363232339807339324497549119734488048088251010322454567253206239883874733270221986596577479780924462069772945747039946902197455882570907374080462305162847405464904703991916296108625064176702568913703734609333931783965969804543682525232530099050225625788669753716617603011045947833708937861238345945690391768438513297621802193907202686381596123639023064020409206818056632059293091483822963161912714918372187996081802264129935157842790549244977712382077131834313842722888878989571899760001947050104680225600523670918706759234751525047254242481512411488703934971428384985575621248608699509287483158349549864953942248046127699357052973516292570002981412233111197346628136581139459871282773524310567293426303600198169398151787187606925386005240057336819474736762576787339273018509440711177462435003191414723024488226809862358576021536482008039255284770444900769367947683955366692150015003407727507307099424343139981668132694970516097863769118918422069293283118818079870701170881366878212680587959070271298801469581461587932148004414957991400470882343658656401454899510856660576735579467711295889126337052474931602338093261761331154271024376702925577443695037100353557273807055232550631757265582609667321600792324020467733117514255102875814427200601983471878756864219073758903265904038345309706274732933687623394949002734846780346813765059132833580970437967786812601443265275868316809815059688010124911559428526951263526692412606570160987602414131632751434017783048019757054562209894852964516953077836262303933479304967796968027205678623148371836550125309189212991368662540702244651898318516121756574807607124489976130263401527893588911944648965590849262928243328889967095282910719848024747031057641991882791763540668468278413598980806485995856449825456559059805437274755894556415523820005028374133223629037313658380413975904836583444199600222599238656947651692836145997230958091985806797812206893134552778665503898117668326126159347447578813421957003994751674302088008195636234331256183311288495663292575198092242434484805155657569439582675249992549901937500673253873108063018200479141883998448417063530153533294926111721999100545545219093043888196310189155930122123547499368916663038419890190808016459298065425455045520852865002638405080765357819663321072058665299279038499688342257183475427743023163403526815021642651992883938931513833873565951244402423639805944848094625206268693034268446075547838564456657421866896995361005636440354640172045308464880343008534542542001659196033288073869968332599559813026648908273471442187571947905684136780802262493187439685632087349809545047616902539929365016281092806364604807283918022274770853252900902730491879768391738595170447053169690033728110521508322737221473817639952077727506711136166590078859644591299547025834619055367298626231947305320212031549727964598381436014429335225158654943431802172803221415763610248188996958731458599077802603038282872842027308402803804624771560546033685740442303328472927612191438205978759402895402412299007633895003122061790635246741521082956633571753516911267879894478494964752416292978878610754453885241218308443187323614515363510930404419246811383796857302201217952378549773675803927935935510217865464630061584369379588198239320318408993697818556940343474316547318536624519642854500634238583044060956975786967898539215396661194070847035277569408410069437631183448719965344877954619465300235841232744142796137500919138185923274484689062793106653912267378564912315187016085551352668026313422450300169104716613464626852577912429313030311236222253124870753537370337760349704695437152859109064228797572194073994643032279039793783922913008614812200412683829528013700606058128086131486152307419781222006429023453054861830203057186042387550210123418957595976765856201242151681127804157373879772812451697175230851523362493539119981359355263157778351052569198982137915600314902437699083236939874076352246497537926973609738514859113738731422942118471455860149384079915592865543028352088014736689849854477181371478728213151969378430853442800974898178732323329148803059881743357231855218779550160813723866064765347368239180440935913267856445965587363176542168422497166126377193238835305066375012389798427215802536654469107911747232935618894902925354754562846919081599191761404460946433201261395465091283829389612494915177040498924830685688118340768165389898222047346941151446788366712488961685147444716523302094454764810082046591246799896117622249454371859415639805558332939397465100785413520300534489763577013842400401358504159372892527999846289887333237025894445305534244668980765665057722860346537173205608452218066984262473099931430655904389959363771417997141589839147821145125140524052887285281756565943523714312934682397497976659053380499788731638062256487192144946473666882987015758019129698153570996401012641732823452571098114793461344141987469343976448515396334353191372846397647591420899746860989684409341041298120098563901036961243988324979069735268826280297484459857048271667774140831812374376132038486013949731501685668235048318192726379044824129969489388579003356115171373150788200623820215153765596280625473517232692390956898999127925093844580218129574478818886759874086256344604293552413036799589862549730005492942146729323625178825141764398311215246984814078091430414158046735200147875115341215129934670691239640782131044071359900057920847014309337198350737675716569730273924626732987529243658654894626740838507031705136003604977343090183355570027137637835174228732299131437957031792302008326647992585042302623415974613077989591381285498714030691513080248596653696823858343224747086455298046721584863687903100350102135735298864622203724689357741850606697044922909288796454908438808493797591426435437828030919589628020444834245337252927670303597792715093316723110923877916095836569980593098520895095310813128223954025574832361620338967654450419459937832826252954483420927026589601342710215643296027747339016084532057615626632005530871392990481334288219118701198023529956942137563102316462075331345077551714416561225900397135153816283380556483178054268493810967822248091764001887442758452268131466273201667883456616661557318788248784926121002248429107368041483819090526329226544919392711225118770364520028690236959260272194828953453228997136450676832031624979073333966300701660946835974624279016260986260557823618033295661914378979298069399754105756324282330421696347530881984178164721451116435190178640212291940393792574311564666247784805172648491579905823283781630197198355510039541842168034160558529657015958678121606336244885226723434234003845336311361463201606243618658159170074843362714733538500477833584183084946849213037689353739661149544897317651171602397188095284021789402425086267169682449107728331472203107889067443299998053020956553822959086779797897353667438439915284091357833693376623286403276935557729653442854462284941511804568296376876765036657285137327770411667008914695770939026298690219877084996833889345452423760489444301837868166980881459243847506761172797169002526901640471566206176916192304604810498406330093897275241597871124771791648089882191866874897854043554682708325779760092398910674410963102130938391268568595011748695591235575369021385330338234455726307997778491445569506289175252445938483095627611297774088053396166725409280510052979779390917541226918204359638484517903908525769144018327572321244345343823808957880867342170552058780978213753663556653760612428527162496554370153372537142322800554160651653994297198310242902199167515670793698218720232367427447587901503451869509965338368033958976392019475354605553024692123185450006642076796855824363185606248113620967988116114497273343926957992927186882134140461165780610285284728766325687906233127830387063307616362686940555476561169675194473868815608393942850206878713274384116742806545123230295495408518711173190111781928647354162845966116274439727321328574801947360057590761970823526051422743837576504296326672045301100045705983928500873570317581543570363730613306314206283582083976093864136972755036711710018926051240539096123378319593747074711426540009940118913654185253419516430456524764844469971209976420811462299766050241339354798643360436934656169856972993498918371850636652313845813750406505735205206907011869440802006615658008859587522406458799447314519676348443472147392381759002129252320699942169704593480332216301512085119899899931012642193067375692780146068874289416577256649199885907637021183215937138304621676057170452948365882342357291985441979271511268239880614903022872737576682373917257309501392193386922557966428019694998887240977454124809065270956315999364476632444082487610328437107394049669903413443196654258120182806542101467175472442179492036823718866120025034765349443019776965587609256844608496589316755515096734654550831673288198400624364262614423443416034951623064138862783301690672842350409585697059196752233003056641795744425534092987616004430170818993800490759011071560181482594107359134539943069635498725159556295704044499332677459625982959690215309428552358844264645301462648415127529725668319559634241552769916508363667901896014314283195430412502506300569980905702989523458933099364580029166551189831420993909479460237831254821736789724622145027582277769712793473214810449257291321492058797785594394689291582997660897782072327510421988190380716653639684452858113850063803655297456545025844453476670248502537689955038936857844289327590086071564223815508677676880721991503606781829080195601711637314903006034179187179104344772980118714348611513187065276526231365174452511733421334470599256960576431992398704860558717148502606956921589629732261778175236134113781895741677211839753042066288454149249644881646582407065329270691938112178635869310821612946987403300572547434101653781891759608828479138326619389661830644189783415341062438912667670939645766818008278674383399199478961206154453557212453715477074252084799931745837627249571928158513914160503709090151456674063887626330750659253954307470951437016521429176148914376244496671504615585939928101250375212164461316428866250948505177468892687462548668801189649192113553278158319934815254857654217770631945943372284004659453984635827251640816748692291595322773700641616595441824192004651798424001203525965311596229369048173704460146011632649080842518235042327897448204307336283700971791869518092586660984227848554046318040598482409756769931485316642615643869225178992533314241815943607400034570415166191143680586974951014741732349237509907998184968904199555741086289658472990208261261824433590928683649584369091818226421542926194977580022528607714519513545125276166164020080076599320627394619111532533432124776107135438911372449962668521570348605849726178424726474033423362725429426925703801219097136036221864872325939370200754400294461209965484192985585274869911073220815119982668261276323628778348622338818626342364042742633491906056622875282101201894146729258657182599241004280016669449550861573324033693885558638605770825693901558170755221756160719210404532067093681355206694355207823179913871683244040634491325673468160742588928291842518897507184582487154587990621869484602188212332783669293629598714121056509979793554448592872908646526572210439157952014946818927053416537127304606198500620126725445368446327305512155646702061554023804593355844538346608061356725358802164948862081282484550692360935319376218927948334852952221677232105814887769544000487233707472428547690647275434361906446825495797984918125726141681196724010183224478370258688481728629652390032369216728543356667338160250591187781259903827570836427502759940676189989658959788206609345868745950020562593402808595681550774854419175501394589817377862792312137947689314763412120795707839119084662709293755129117338256490654070307105621430699358572464443481841434183653201997867891840906321247501238229096502810586240200194117837044342235609873170370907939655558373107132710659745640464712883738178814841802633191582255625080264338229265295753246809127936518659090094558175430426672872575497158460568059209115034485842581520189313342881270524481371196430536453603487557112312539989275901844606818399077443986865478135660013182998801348975898701036352290789875296465156213237361287061717079374432753408060044045152510500059716654291430207858189987730670459438504726283542060661178530946229286293383409234448782324953836081088273649535884820170854406392977266636683644226854491346415328542125462851845798952076245740124445960650569047160497043274935961833716125615413969045468217200209004978667803056093474680135516983449511882893473072144190830670375707219828978596988733541368853834248255809702859451548434313599644390597996041027519635263868905158683058916337339212363510935566375890406493437431855273232600423833928442413044409018409761385709891232261097193725769373609366823401650875322710178698142964648870834260332317575185060590236928154192249635821848656389643953617802945220505328240667663020553109768940281786513517955429861197258058721841463281375724565528902651166628359324825365841581778719172222908858407517679408805889073496942950261340496759274553975690200323262797251034006092533760251217016210500095210971364486704042269318067228562998847607387733822987587982286640159610116709387329203495813221208437868465196693560932380714288718633672351981524519072716459526049984465449838843627350246053605087732439376684423232318390323869905460220806016151130337550786419739483147273722153718074174919558023065723424941276912080364433926623741124085995815759327115628188060506602575519354987965479991121578633144451971916709224567195452790341167850691440665140681828871922690336451217112891999771441436348482537269249882491529242902226753490222621239067950368098195923295770395721045194094500184340373179506172886870150219252253238648426483258953784556512106901784836211611090473442572945533455380761288493504798323829090827588697849987032980800640025848429891567297585821200039713371851625013831571043466551638913666486616747699866920209593762469191310507175002680295572917627704824392679224695382699336256476766502782755821600370920632748155999584483957147409059798955713271717578723803839358337479469946502502734312211165662931453709326270130580546106399388741527216671153512605933959832206702778827027036043832832828757255109299718227756771853920442256955840171855846946686397902140109916776900943767901684159410466032340121150442005984534882032257647493247181303132168552497943601778411690446440976184639915763037591811020006302794702477499219631931991018328729341990933509030277491676473896681268299827041478187317041945672922416179853738322973447182462907063632984972404242479456064296451637733785654006457747760063153688609534790015051025065691382876841307005609294153246467629660881895389741718365330618210928775704157802791398982882616971390084668051042417529669774444289274627624638281003012204290754027770985870162516773857554429578636023289278899695061186747615712829333375097536486282450473751642020794805211365689311806136138056007475318042081087032018257943561125930321956105659052616527473755669969834589597187547388137409937145039748144035775933525373845543724755357726262499919358832435868634363114971427262726813486040215297686972177680116594434333762978151115713042133864974674326268744993177527086248927122039876741798313482947766658427318114143298211588629532881360188065361342497792081891761205413648093913525887669103614089374054536718619752015942024628839184727359860420992192262705298654784624296180647718106687249483061126406176195159609828503771203496093299187797216759697794503168046606288137036544295450264613883655725653040008295053236198086501550521920228996672567211953984127709147198076695327160937197962273505835789868016430899620714820958788938169810882786578027436627552874962977036393741519962180867750881440041436233086692883958114820284027187836008420810513963815838394471097551330121302886220088304143304024722067850579211475495837581659308465692069150211880371352350541791520333371388677384838342167215879891800907276529114803804320216341352919091968918496336356084611339053857859834056693185929232922256928398457517151933453354159926676582223210215266756194511945547431734446967141784515064977823641376064525028482759142981057058185965162800624910735439933762357900886345775365430550844834633078656839760982228663085777432382097851040514358514698067113726087190644941276172280655636269799448645160749654560033110080722340337477729000779338292366350629296991360931671897605972320266094510102672834910742820938099161114834710769486031161175813871140363845467959485815434056044209911828198710412775763205782234538885514067794185098102670572860416494084082920837263880757788774077256491038452167950116423046753145767063316015578366026280635026324660656537220359066503566970746049532881956080551373080756053111019754852826899334297782114226952808935127628500368480346983086177002967118077977877013814043319105280905598699568959327616301431483054075890263723320141081443167069511321390789466118251447326747713019712466626151261201195762877000892296168232251750463301971385215188214772768267620654809478121149934656334740388228701631653533217573220398777280299157450960470067994445344043971597660412858237152510948260852101696804836635812588271633293112685250030565552889048196852517434539877882285569147080542932870858289357894274620365377600061333400762335150368821362737853408886542896684330505494828793888577616165244037416705597703333964383060191619581873566836839408069272444993230701569098208812392612611399682179934642085527557928590159122173222442530213680237882178754462794177052785032631474224414694999286944537738606899483327429161963025397331634512488168624681913027851457745454093924520770945032082025898347705668726095741706704179817994929430450213055042200752902656490025852476586991902723307876953416335303179966508005424247616574300936192335634834377203093099379098801932458521893028809196083633036003303196415294678619608562509664985664832329150252293923889033528940230219314249485845487084121927721075678526615687186101199368478410149828297989449038073468381808397765174207566271570870115107359145007636898803188910561255963380573778487913564370672358918385159569626711772206291407028359616924396835628284519363031708178358558998005824322088573188759067989969418264647373736961598311789124412731756313455279640194936664383087598883884489759034794910029802397009586753638745201092329282979075822928760548272470540472331027965181560074912993235413743648548516440972106726767515728319720732555984799160569470746015711634327114962000861622942401669138421215739872372020487865032280391190571944473984904912272218343462654426965855509820799845710547842272518437629285459562732109454805810935464215228902541444190583519294581077972056713517008209996879959310311930027318824588288626335723554651007596554008017283155431681886054221466442750326816815410705024899543478306938906137115262895903350520898944631691541257480253360571061944239505194174324061625443322596324497647506137690369820603794747226058126197186096788019947822087503077320323087895650400036993473617353594623649706937418816239309830537876893985197236893765497530628609184278553816353704113322686423359723663714959615240971745059101016782859543422807890695917452439048537433915750538574830311631511101190671569375562407394808370151101397845475061573441207492108476797096730668052274498395622134839987053946807817119286015720438670351831460206511000464252427413674994932090914281334315669581633008437438573472833482383676042211013353358487463785073337302656586857224098373582619630315611140715050598718840485429186841310031170623474256758318871781351293953669494030836560157964025153853379749414906234643424184976380891388771312058806285131986990082889133769829830905239479192065698685997497099182523466648984267042191758429654885692230438775017511429318833775223649529405286780409681873987390715525124250065458464271218286376351225927744499026893292806230976014142145060994940261442576309058647613527041775279720936487262075768391210337884490093676745787809215463176954090770875214102248369202222407723773156639871406546933756881077956415858609244891888723135837270137271760571105474176233281839786123640203844173473453462088259117500110164418511640714909443376127070609076350807395701108453645725174542755611242899557597959475733346824804163688473457539340494063522964189428892474127727141036777855578888868805584851417983924171203080407936012422783533960157727292165406072192951693850724317949539367563145977645575100806737251810815012586892773013744214602541114822033136117283168686331507392152032419017757792562287720950530539552765231858142860832306721755057457893215055184204860419943433566748844936190044218574779117659023733933451107457060680304104506384863798486502509406429047487066329954390670277368130080535992928421875301554750096488220751928631617526133261624792432720937570941031103458172193730223125768139307927341371094577623236552261227919420937718484634831999786644629525891868669050461674068859995420798055882470202670834361854089477558548410181607507281605027021109350388225057804209804118041512468611528682037620502785703113202209732852277011790034789718351544007257677789798256306155038911815364078987194971171266339181648185687921984207418909359919933439008765528256839800306110545730572367789116275157674242284336576749179085019507391207088121699093168387726920845042677571445050938097775397820958800608331505684412564083604558491006919093451715265834488203287008569389265418189102775416634196290286673007951107101684864820620447773608836836669099524332923810950044524199539833441305360448003797910109720799126666700518522242905306183301941520987194514463787461997198831476335902962935493369815484300347798386799573482937633289862705205469700879867575476824519184490247066986705895558519395496320387804631043857298594222711493034651678329095269051059847374673914611113045594232915732721143123694610047001605686299436230737842046435350560215796134251750871400798089382225246693026204746596378936281203147878335548935634415117546970948243343883909077700401779849459784777553080073808913275933514081092312322808816265607395979525633935352888793611647925080679721741457963145292268267159333042927436572408520841779015443977977659847319068058983032686311012733503783791878150753522335079250733476107120970079189800623730823003074143865131094380752239223543412886017650682429911111051917574628607154261102261389725800024361496409659764396199071810043510531083554877695096972789936176432853212050915443878832540717616917429737510739288552097437834323059723402071473040195125261956009735433672527989806828857139801086596765987119161620108297597624124510984397072742936409392396717050780062649807596149086726025894256644826133544202344471599463808525401320870918352848123643248992175138861772012876319959828394338569210885786157416942964919636243384309738374277185757247887900723286633537336836486779554026571803000188143091750246798176575212839156183985619575846165433102677538270929312389092541263029971193549667131254039051248301401933017908131716786526892989676132447701227257578731241758355613875009756280167229062269078936430975305812189566590028420906190836248641848356147318535383852618931021146068926680617450274983210658701059437950206952903202482947622728255106508649075053612172956342459822373380311729439198850754510925208780673479062651047750103330389178838928497547762554923790533151978318002515279261372693167216365801317607760505849128339756071237180123885529085172404028627879038171282869104358895401878858626584857593640834502791986373625897881497194304038149527226426953106239473679311532307321066859368663396307094497652067232208239977248358860539631205004655873149781962411647253924466136593796820929726168031274326037937728732847136423356470033403234701850711110659793380267971277949509448305925503018351123607712829103442608247811476157717288475333222288606908282535323260901229512406742545145694662627219781907706226572981747554537072073323237076355378230042235788199959918561261086095347981278208760446173645411152987876845112884187305911692615919895328248507626648687435063801280851433182708353692298920995750449073603488785302162147555622087120343752501669977225555549192448738553743214755930243535529638585813693371832620389525213904841137117886963479689948290943981683195153692483549102075553910160111124951378017833855565766098091929576334626114972294659081818676414108942844789856356261038790533156422147676118941269107645347470327140358336054765181367272659044488553696148122380779198889201141695515329303418080265853409388948875144679078213525057900727464785851873161034209081799046734389876539309393190070969430157755081152018548931881587804529465172869334635529366491559256515801118535189443850874265780907989473419033081465119829950266430202067392012175370251040551646289929477542688568088373272092611691418730732268865716885053727658093116939405129212363700312398385049580421824519334752857081480776377809760165275419428230688318847747870964874619264480950861860892197690042506528365254683557442281976620914215462365358420843432536709153311956999417234776656472915123022845972035854592301230816470536745003003541334277141462308500809711133804253009058382604237704473043789047206126271065485999136078952538383834219192785152389315604218298117391403107586761197169396236463734706804208786387260949735113438473856577976734355247720071037977896298317376150618222180718686073440199751520721241389854281793345477774362938571498443866918497435695768757292978485906672664156740028910402817201583162982304714183345635099149510783715391960320609139648111148259997800989567170424334737816858457198194825759659206612642563126255798890641042817751424937669134323757881517327222004116778123221021888352748384600278237210744706661481379660418226528370995930641945478719173293248544191332846178381115911195063549496793757835763463928241537577093841867507272736320232529654733902509952688198408909180665974271567718814970973437407608051117870515736521822526513802150084977347059689497904475597958626269058560238163109569482950129026259778399690917867527712033326381583576320135284164739075921103216065063868885460124853509838104492236963644812687263759287837506593099292587704203763623467539059790892389802549767215317311131134340081407486109069055041182306068426167402948663935886923079409343776681152305866302261665568320667890524357090503425081241167377083092146426389883467539821102667468826059339705936343262337952709098156672282836210532464813548906663974944607733029134301727173554036641841292999660820691796562072872854730595042336192839701698118877730488276601282354008224390614319222555090335595639456255293216259235200585643293983192718669419271201919437275423574379448792946934696489982982172125042529718329840830376739821751869204860664408645321489047628681514106564094085462059218074414331808302762750803151927866531283570876594319145001892372219413620616248675028280924173067644526152276366307720734974128244565594967193265781917965318108226715972955357877000987721861645040770210825592076183633692371800188639225930092741971951636862975939345393697047047177132428830534213571868795891059220357619422068819214254212129700637677428430309597955247929883829769876005150170146182942066547324850464085847234014151479977852778364702978120897065610642513966210911743060478163756521413608057568501297019976832532487664346061338820481879229250707230130850063018950583559297193937636508850611577120451493130068222851493383332576160537333143250875549442623944663470329176178552017509208425493344128539861155900941736355395287267103521010817266241266218550400177341509212904985846690428382361375530496917929510554000402838841709665891189583803825980308220185352484047591682535362635562964557146555217891396136197156049152115603109828000663212118814343195521359112049276377800782660385885883247726707003051353366255528024595389623368854035205576728608635460087201805572812561210228625301709388281663176258727573288417448693260057976041821566144843645610873607463477422387511276722738380955422623030729318332508823721681143573384412802159812996084893011036557934953939733172406324048422974653215567801719226325706917890532683329883344012080742557109495093965021203424224026523225373643843132117183461831373913854411992939121601399904443059459234757827260021970747380627336936081262294951119821208481407055082789504469484761619844623328934326837707867842850749056624299713565260971650893708843211093641035302004522553657003131652932914871438427910744717653284158696161608951536615669910691118034268158362067107423340383561359581700748316264509077627453927072440639610823262531904754644015844816529645955063555072115969248998648932224527960007300786306563399626636142191749910068703115481457627432359193863686178746487081857036307203829724728311739325258308877993886167313459110020700648493208011140115011167468546108627492413797264260965437678575341493706659120698027917555678491465344376182698795612312890853683979542432819484257256473349907094953959676924958728632927424853572619968828602778878139906185410090826428408292236455654137390245765083204356525631311446116705208498227616940883845941431512393626543753006558820217413901027880244023807185042706408155123596462933409716666916541459532929725993231692419870901831847326500192924185777625360790060734685400778680725890886940600042561058633654225376683115741264841487286335570559850373860274933156130892667524442393860563682711871760278677796390484642476058243511132081297176796402475135184878664730471215238727938993841462996579120824958915483113264993516923754674598995112211310631575631812836203745781126353207162093751548015145819645152300380539906225096359461634529145828347876285882753315624372808489025852966925127497298688541842229903464798294399545687200202121633740992090981172127811080686905520876783131280120571743176147837933216056486520476248045503829352987190808355158032355703156702747849862256863878198485536801158575706155604748182230938813940755685659811630546001553976519515799509413855303089544908243221996618750118906278751129651219407910112733283823817060571406095316121958632142309450763899660790927179990783207971986683364434886969773752777024518441765811588501698844020965267476500993858113680914378394061645679277592956629146283965840623732404801695098011302883679767013321216349282209600251774326998547343950611384522927878209303058914443702312391020171301201223111558006728035570915809568537483447730810336930570970136682032299119968751918014307642852724579582344462128819981503115051032387602713636039804928084463211717170156080524344696986390626001001322893181399763461092818914934726604703740259495144076855159857646338212345655452916500885728910391215023096173467306128977740947177271954441306653064731788776645859806511473770184609962028607096975275605707070933840751587233140297363070895983796173271268100567077172914044277212804237725154844078797836551563539681354279245226367814479459988451094492099131573352755184139777291193021258321842588888084098439623479447542705523937788339438513217376498561863805134923561568968574463657498100055017938630358064675365839634420001281850016246753570341282634393210698560032013783740909778860068409394700320085779632143412908280942167983703344755707911319977777798983971037731904613623191706400751058057793185038988555973974100722866096826078270460727681401899490583907924260988073799692193354731841075523390001466673459102510639022108144500571084346785361591654574782949233302682635884276860146052389560280930730911888604025033014121611683488918924634595248184837784467850522542576184076655233160405223257766315479905041784974223065962232442182389936258405976574237752107567694310488794260891154441021434035088172581108568163944162759408399638154572885869380536073934553117928261441152816843371569155159321735535362667501372819299613455969768477489482181573537133042111557947745730889710177173953539106485336173595702569976693371393855370670839745990681020436561899901205255775783306913845701952617214587199287248055805352855244981835593845027899737074873160227419623891742796524451525867245568450522951982868793571799738934084315992309825224926552623958014807200796197316003938680679160532372997796094950513244249536619954942972322067934112679420020799211850796946570562278022418526251852646348259824814813405140933635238788048924441211647620023946267426148020350460787998716954656036087424946228934909073433495683183495139334325830514943596478543573414610103326702158399167800937324026315849384156414792963108355794988469115301601146939303363854877458045418059993197019093138467855883889337719974642871130208839506851609819214258167287959997665183399148060031446372477005403818295095568205386804612357783888298576418458373660901482967896575679934520800367836502447685054114199007765542990796740494088504138263122494920303434963595011551409440524068226469239753346697124035518349094124988755167202014146979830533580369155495939618789747034461019692601935920884129476959075815489738333947705205955987565180548273849457905201178016236290681892297778830336484987303319507281145870441290199412908682494636150891205991142706421987486328847231426729154122498609976535778194144139392412856868758078075979130007119635502872142374291224385419607194259191239000054242412781144518510768747527361807922186235269172587989303001862837652539628602560215274637858506511471809668575951047485508678990556538532610621904398831423742518220929835136105665320591382393290108585600001305771804939159690306032337295802580443146307664134715307030376355766665374203175725000003038200707838399331768502725751081651579634621904091984716995692550060494600050160058562750872903055448207539455857865772959702431782289732187127676370509134455269808206020623582599475004034370049417286104802783025777828254482718230612162912425322245965118084547924824435560241319923528685943740423415243841113252162279788641275189933638277193277840665465341790606978679188704213369771033731098914952035855205304525931334019172364835749866947518643270964230435302153473232349798195745703647974040734448548880849080016697114231047507498265259485838197732646367532640165878004799291710411542083760114991771214118699154896903140638836813429362460227810750806325079098812183861846293346508126583286923041306745513016077440848048347535252069068710562126061898655117087606848462758579545415520303624118593476095938972410147758342416568188720163981729961693112652564407376428192185369527841025096221062022416267315283522788330373816607900883064867406787118437539875749646992136534981227587144406112506938141006827039820856963645688641063496349625410847561594919102794116652624801832958603230971964549555906997073179531313125616926438253896946313278268076295804740434881560373151961479535817507498285773934536272480322693269187446468508153054893518928254274317954909989062416060871567253200166641826804466712718950153324385770590623533940602887869901144358557458170608302148425905989681623265994788847984286203506597603955195096004880467696505307752127012855842579529291174288971070837428699399748310038707938437706418179169826498895774051631907216075634725928135649699266718714044985576647406239455056785607165825061204460304158674089026658538819336699945528809215742913249742142871500299652021434785960282585638229432571401187208294279714660011308956140208979534471662530346751562789178676419810605251989533581841185140702316758578285728285301997975435372544436077049960633200311977904874248940007447097984931316438859867179640593144746527871288317231256445920301983850475566220608692667060691218422819878632063641287862052596338404785966718858097923374001989323196711808485841246698702073136545775731193794766865738376878932735120317754407356846679702284506187284717029759718636560965635512387173149859713028340873917174074309657539073777406928629044610994305858645335699108718259414663690330541304708755551533976938219991458009039803759095018297299355745657409384625616167833655678939908517233931414765602350890245461492511630866551868406209533002917915870695453566469692748796442498795413710009103463556150408657069597600113471933352474647273283794481275737715146280241171353885781567804731629299400212130989539959689793728989263225843826202386823754701178873343565241386458351713036058008474382331119514589927757530012388834901078524456391242455693263768900847593571738587702446342351179117052822816369938418133640350852434605271017356202883909164828189221191604813909167032123263703523738043262247799940088912294111961864614467781811358528511704703107895096796045548157799059842818288056233875834761478373131509891783992446545945047455422085349831442239383149306864707841856195239294331065470561892526793199230098286858804741192714717237077749996072608942139463542578345885540453538614966951225236319604969498594407871855307261101498447640913478337337847359713062179562219211033075093200810790194559023304459506061025327630019610485606965796878291298084559036195714613243606014560754612541978259247094150358061379977177125031108746813502171111380019256566471602211220784602577209688635017825984470341242336405421906991425315228017544977924589404531189371643384124849577570896704531656464974713446919052558982030482346255435780841992045432479761927837087926069744166324304509800327491769899220389113792425376393278240035883691101433327142450443515054895601294089391015378752179139673830556012626429244941917737896168093885133482578178725783005848335250927415396464453467713067609834921506451839641239465513461863802040856663134756664108572626134926262287823359789694874109558980363237134117979571119718745814054096110457618945879785354244835570543340788123441073006956646023190843920822374936739834895978231098430067248427750824297440336181462823674021738047987881314381796569593384823229804191799475714280299191912401924086728346429233606950220226682404601585115317710437976145005400804894771423964073215984630659272701072881342878562361455616801382161282661169855344309181816088194269224652690239482602542670460919493845386740614554744608831538284794465798460301712287443893767439149612678130494464655406159865479827817435760042220704088525321703357732025976195196631985218601039316333722866295081867917969134551718247138686789056831927260668320375959027437977070277642095054714467468279502985329420807811246034921276428267723796104666854106253054401756027772302732024129973094796174162230914460432601907096282973423524531283389628470117039949460227560677098570202306827730152841034808960344951692344354462617965269547900850029044371080180278643019069537042990235272862166658893815819649702637399692170916887802328633742982162216787613318860303532433762735386920560334993809034984943603207013511801527497641213418450759484153289589184190316633322712698219959091639726111296724782832531240225273512591003481124477402793235546800033369143761798457692596126750194025335129644247659568224808648536962693514400455572956525452437612052611050036195535179720111808761782254490670496813215463805371937108620954706843977283761588663624927005190976716329802268657346228547777094985352219815150481850630638361612681623707684929815383892846582816869420841258252289011599275975976922229880439897966437841919417754608352888628152036626673067916433170609482829213633482358561520849813065279727332083712203165155911611286987899357376895838487021721796907407121165944313724946253988670254982126319792584969367997553091316387257396471446810140032594554850746615485966963291964454836019073066037387255953754463340080250542267337377754654329336733703783424406828771502346892652432326607382782773983321127750821461409882865853581897933008014100387458942022085777645855152315771503552936371647859347987727531098175963774309383365177671926423676727106986252889611802959654994912616050756049073256176070493421820142949930707548161615825061891359478075075550520008602157137041095880488784426143703000653755675168607835874726893004354390808058565348512767512659735573251799416743681315358774007456832555540470093015154166773236205677932260287907834568002001455894198446198337937373655415285122934330390910027672264480050953603686909135342933868163356031265883851909222870011247551054204541413407659263460026724358815539393208410571575977051728028457860206002722667306958873095139550099494313956635100371025907502755802192432233950101180259583018330227215879503025819157031326163242960455697151230741594473597096077489333949702502145732617806177186267354158934188434986733398186851316399188996747280655700892627589091096531560102652758814116723957280816464817650960906524916195594336595175097268998119758476893860214165387110036241826815126463757984113704317836801495348963891007382933196433451827022294156814598378543502316859084229032173115999923569342730038884636184701253859747148477679324094140843169254340963987221286418745917190148431359829069147666239492724947257316009544984025956501079448765803811911271591728027855239186019875836524850947936760126983736345186771869801480200028335256992375204051513810293447616325941630921986114053367484788358058322002461162837594162974989513575804654423899818424049362755739359779461136957368204700665768217501271566856023337460001896060049756654572516045075428796817823171171214409469107491900607086290782947807308469765092205631429023371216550268313667443140498189863374568862605987290018283729428293292301643797502137828755599997621836338159502108383703086822253585686872903103284276499178517460928702654964663400855943708379813536007721251612039096446286828147169342138477845668554921091885150394018508402760512988535741184562072947209770751108397445397946837708051371417515979864023918478903079108114189644882656564620960499891207647451883594523975078016673420444314559582477823754428176891420146868938385675343378088589785546650867757956842586124080746880117625024268511101825611531173784390126812118288791164677874716438862162635492279625829372878821687114591483071768689629916508611943850625804328971018481209273494441308123662956169301805386940823378586210421716747338822822291521173396808539553426076711244671906669225389221182217807426364393081108501829262998625614530700693144492436390856917662165943709837832866696282832503223622659659056859263106460101229347582415817887291030222332310357188856672763515002667426116977405913895598877666262512326461238964627543977973506905354928696497991396674736213295325111749380026767435103642674561889039059867002319931684160388345995218772727562116469815592850282563527738477437896524284159325940514828521292134314062340031356162597958147752154917328724459553958149335699329352644310274773029971197458641021641281451069719782249118678546254471990588322308892923622661013761180809542888007519474566904421737894210271574585494259454635422925809796411361435644541818049029853365500336210005875114928694369715941606898621782669594564708660433900419966405495698727322215735755691000511261931457189647600305758752431620158268594447342544397506887519458096180277344956358083137487279657567289163065143534712812489938747730591856119056000214533702279210113438391888436420963721275715038931849575232960135883951094424803655038987845637576761375880154666780905953809035755343641750622293912941544628881171478888530752396570956369700414436004978562761964202545590853699499787511631444104619589568562067393069962223530315965546320949543964575495328642691308683698306239070995677943689159761890291612726286867471283013156646455854683483155170026569476924821251789325403732325475253498336618215195984167992374962245413621932138160416550480259775899603118161174162306364430528127475172226137785815403235311998861563906165931744538217957212528933370300038258165191693316693185700655501320159561418314169768288354412691270708029786259260014837904208833323186095573702910090902588980834386540142675296746575823132949821147797784704993859010840073191072037832952048525288518696252590455741771966829944018493090724044500566060040883301195390646952220728980175044941834741089812972116300275222267261768596287318638371960007312164058829318832399836021594563464667486140747342880359409072963220347508639903442109155117679622022666886527678831175994920037600673734148398672575841886698789100042315965437386298215397218855692484912455134197067298438447161428833508619200370247068034286085207550236656753541602285670679570223545221363833133843674428571439059616365764891099269083545003556085975036371953164796325739367221518135944619676195099475794040470219676249177958199699141128037366172856062804156700113398766331120988055394726157023420071853725866944818585983832782366781377624690493916969345369587566279046356390444877550742624748905429216395874422644412702528572402826900492951987120567401101686030808417094101711400375803741498445702535616677240556550900295347111099061477329234485039812974366994400235054412730361397909850968820059448861223403642320572836956683753365171415103973014900857034575358479457831738317045513473863677986713764832170422354403074497675856771962549105113827126894501513716752377448557558109429277375251264634610058776059249588473980548509423462403511710564367222175128663407848486846317370293891190902268859051112756858496186844858917847596597545560544926228353106991953993105083993261158666376533589872711005832470706840291727742329864890541843421183741755506408018478759891082358312242052887038484828051658995168750026566693443293685803582584872390308095607203551375748112571134577308861091369619734972015764249956679092179247577850973073476033849732129903309750655805679111944887699436161809495137414486561162823915725216955594793708969065497119228066929286486679579157249293075171563643899419153691593455307882714351976815065262456010716221382945356635538688896074506979695309949976113632827207215189384393975540682559516713117642977679153776673191356903399121637926503134487139334247949671072144670612677918804110315748009470846228089550595450968194973373582036277426342609071992158384651215166285812715644180326046651917271109083140106245305092113410155186561287024952921889045184119328066838820192711267135871912531389690871616475906224216648783974653295204350845501169360528013039705166145563018752643458011103929838863662353235050667641401937768279253104643220493386881280121591083283734926738140646361890859500047741904473934311450274927229529563917097063769859476661912375315491453303989979407946258905175306533796593648810003819307369385247761415869924613502848526541795960081116788658140549599124638500080137227589569618407776111680629584804668926386867916883255790755779857110591167712146000345789783358067090239359843950911750092894060169795474628575420886753571237189924664283353463302415534933920919453297073736317348595142455676471753146600883269361953808731970483274643848965700807463484620737664303428337297177660242094919862482382635570910695860907655713433375946629163105754232852186779719207355653036098292662573190591665663823082407908360700222744111450466068826450905363864435332191188871112505986970657492295647017014688638271101081374785501598722142599885148568617605165894821514646922374977729079953855705118632810693305588003097777135297617733784810285471999636322812276522393854172629289439217942752914402913603410512347472185952073595866064385240808887404901266836030885644607012848474889991827784086067079761641563499075260150761527470499749859659223120552289516063563927302209468808357481948420242802792889392491535102047181523794080862591977660761016779841916161451640853767755210462561084777771146417995019113956873374956493987953156981059120953873272319874968435118345713512105852377333318083576295083091784744054784182014051857305508760462256709254540155558455809657905708641360072564193570017313029116080056853738410146594741746013584467128629757238032537384483892589808446167022321799702076860088281836098735410241296665052138730355217800521575498700098597254447339428400631569385738022028093296134777198947483775622073817726395229192227814844206227563503214026096545691879922576265667160238627601856717586777904443117058480150025447620513607749575322731889813655618109176465807744421133956988772523513328610685114516015195332678614258847239068387852110651301163201214873063902218557342591212230615168005207611349071412257753384916821857842709232704874857586196182865395248697885012694773860684629524551016556940780537030265280901560973245599467568737273307943383384373003702371568750370979874082834554684927076641213681597907230965357583290383445323116053864938137359372914237983042274187883505212419009600347612017696564721731070841393796843665238218028547878771123008067812562179212792336935957933430352467714358539865864754485519367143644760363796693757042076624508594928230945068231815506297329236798942581383461642643424739035852494610393424889880473790379757851281521556043318320828151321569342491743442599339844106794926749486805677538301719082911872447044160952615357750213014789131812558497659495462684772823460447073563857791007394537203507360659219556340926901483126008707961372015196341983011712802266701585939630557959115265465509704216394137428784386312019424191227324532941544020254714881199216941261875124596572341632863949843187593648665084334993108109734608038460898746528081851410143053877543511402771634345891226859558750420808089899588142346869469045193452666461803821863935041390840597987451633347026363256863440017761433570709093309791419239380942883474329065323775387096638554245230422225534791992589802785347857604866918526031693046677930589835070087100861426780387502952345904232271140597193270738456950694988072204844915673068594892645431037027369461634106343025990186339584495956696560911301711545869935911880215726432957135931367486679205388986541364120815540630703296894193187155557827694449728017402045915153525199784099583793325034657652226752255147970150568835831450587174785851369416251199186037635481043280626261720333645685438803692770296743554774963721844789237731031398831358531561371287476811342657889628118849413810314893405195025884595312359822777219939420784575242226458388202570794352042466798854982522476307447528635999811797215921984233033464758644899767525562212489420125825982914241046609375427168864428022990844390704698159851472107541649288701078620807657185499973506361434605589472648586908346347969530262098450375305348999469934192151657731554723845255835219761549886760986534759327936600507779212153500949609509542537335655294763597226278766538663529774395026601867325420277026172036836346190338284720721835189183873776154105696343293512775891320356928809308106038004823002544629854935926997055298319702106162115085830809281870002835173277880087666704590242602145541177545881207507521803796875117625378747663856704412823473736214982482952564181442227705114468096833301768084716132323082772668531688518488059400360585198087523099785415285444276836187444930931915020198841560681749587445412515779478447680917459012436807519012869363742193125862291601190573969633614396936465471389354895750552442001713132548400100051313863081696021319102091971123310956325928740842015274004430800039828169683621937956153348805474877799486902780928517990421990929973853103027932821740183940569982247124135763667949162074802242985271236380798557807566831918367426622370430641145097462018048640342621847831096883843337491010278018757298525128466673534191282311151422937442020410508244281494648831200334796140713596727624989504607746883123491205178466022196061860997980520021828569962554623170195026449748728026142190900252441255571839558973550566490818275307050396527031781105272886993866597959949225307429262388120965169992465567372655601608234548309926254678954054147242887991758458268079866805801876826037512929502566798049488933100532488060750099143108735668523110064456775546557959317714598246041092491062901739013675222291237980086939488157463737263452662162534687848981006675666837110648439793504515535027602446802075012439514273210882630168472461889239874526134317715449221963579591975597542306178214854425596193422516565614786701644191362707191823414731624731524356510868851591071511278839985821771059458242347389362000318049055257648091043539576223405075965356037925720020029899743721365245336365418534074050770661496828264526936834179677106074617050470828186655561373747260091844944846512380580938941999932570420438723261694154126184128302014514457447666707428517808457143510930949080025958458925171910093358761421350137974416889524662751275007348110302486738120737514391845890738039588189633701916717291993822730904889508487949511138230879681643190689676537206978307068377750581967390838559461843103465123752044633932543016987423506676925171639562805772237890724068684100866293981834398334561988105460449248410990576378122269518673046774526821880249515031219402798733539906937551953666036511889554911501432197164599803011132993302039976192283347877977857948100894229797981420609910549833454717698555438686943646839088915068566090617414458304631063599130123047976690431388426813880142635586821120156256064062300111961084220854208755078608018774741750602260517208018199703743870793173013106852743623980789003665674784477069972156568236714528712006149271486006418358482271958521645216304787635957855537703147942850974883593803574479733962614822716414045784067404286095837846423267727652515108553878930715931756008863912005909747162436675258354938945959607048217162975314799571737421479801631134856714180448729280396823383781187527372271215104667096944579317087647486307030008959851937685813971356386230734379013340314564574011227365340389646610338894126282052878658145117159092892439974635056080283172807286065999960038583603879943708570028682707825248424263586859528948633366274568831043761520137639544972448449336733522153593171118556759594140777027785152008493307801803247224970735138076167054312337789430517993352416323570441525514884373044092385543833880361614999944864068787301499549388997255999867100859745938134586921665641482498519248596708003283496872053421675317021320047954268887414860032257741796371809916246088384123708299082621097782423522316387346555310709388455617761215355313044300566879021218025456701289090595943901532769550391595995508388813500643697422067483053211617799065291252877372449073661583983880821933323341345251620751408966127372130008549628797964472943658518726662618195162463676906955900011981198608916331707106102757681830901002882715535950985877944603881913128474675917974714799269283451226381213931089528204862580152226000190170571627876366179487902428764352814371370643386932954322660788921138825686763092050398352174744433393251417571616886236859084166118266739107916842433466892774778900333834965389126343475630534956192816404718250092928049265849140254433199736007441912780342499307875651296303593985167635105813920236709491358945099437823548850787618316426203953559513383029982995271423696982229268322415157583548173357142530216196380485608033706226508394188711417772835381280577939480521703078668822842304386156396564669533364728398209538122348033960697147253304691365252894448767135825444131848932250184379354213447710644681149986215870905978612878935664256486623108573561984833292555928944088234231306031458123742243477981248191102062093177142282695537721981124329290587688314389743748239104779294254874571621288692831481717173344097854625055639546691172371956812873781518560136184242803077389600779876866250758483336642511336274232018470358937535305438653218498791530838911993285632797489516717843635388744387193710674165009939161616212422947128804210352459704743986400314671531579202122255208082326384758433838192518961789591461214907094572610405227510770836300435850004736533708082999037469829763251573969775700077735953640586119040090127118263398809621295104606779101977674544124988146170932006098851877842906600651710909000640694105941799941928546899470067391152080819253857647686311772896552387478232871165974209772441385817449256058809493426706017326071165211506590984126932922169474833976120582654664904248310857317447742048134026333155974769559384079405275668807593781766048468501952113674530417898783116463667066757590834968433955662951125469233735146173663996914546490081500435027804004060723823303183639791988686323110363375984779062727708548005681635996772497617730179324451619192716420631144137356885262563225068466466812459108240823801720572892168917239865468211629478795838847737480858215231142914158084689145356418141164941982302263219749629138360907227341013462483902694965899352929863272127799606062667468124901301957846051331770511442670659577126002535701708155130236862220200388895224154608415083231513308595742361895789671941254664843718264722735787663954038904640792557421615326627163015890261840807291016444148578976642933112012453972432959559300331355337927197843990215383230050817733429919266781100437899227250477407038472241597160743926341515184464490461590630740244676058165691896174022217640125827006372648593789371392986465370030435954855789765259999708216555073194851229031270294419221445195069145927278873284564909920672699042404451283771726635621297366872055367806074062447701475880059681591466492320707060140771590114231790169072323804956608067097055085860909137766964081846445842618781818220132015757371247465962021315425428580412882800461032315561543119721952563741863527234696705796357654114472017433303256925206128158637841894132843884887162888680206521595685618538034420208730512023768362265235118766594992849476776657826580137687934981837656291734417542107689472947010417043024975838394147983930997729897141056174080949083179621324946167293081241647450944859568582606162683821819245250286934267281928215683797389715286904065464573330858666076116045803326683090266143571691773988905644220436485077825863599393261140429351261186494147129550304527324974079417387837353335063828919226298566092595204411709359070844897165358961076427565752218249531834861743483567552185884554828185483474803943477372017789397762538467949309887750940196277786010194393214454376090268231734416708885688848793467564093174407611728216896847127675372795261827315223514547225630360449670799190147234420030592318995265108186467112800762988875530356909905517802332512162684604073817822138791075342895504062840384884707510981237470278984223882728401733600913609547100985869753775465390679264891616918763862762886510597062356587378756332010217485638358178634456512613450437086724193965436792010871286327121446016465679054407510096355190280619090466170329736045521016391536850852625601291359615703477988294276431309901585395350560235754902328391815035299030450231273258099485492250088145704641619274324168070168601291505207896333728025412674703516862520501435902898064271313194028849609502463155306847463093229727256993752510622036838009269083493011731330716152087614235624763352966678446854815557664456702416665295807638876554774493952936952937000937940693898319726910501708973528126819878507736827803171728881378081518672232938641432131766531576949177061564285826734592332747370395962849461417972664423622595830624842612567173513104765827222141738998182801370036346536478103466965769618195339952615412308377430343086126973127054454881516554328641150809443895691248462573578889953805960287219943892241132574840266237751729926751326129725151930356817934008738592669504087500909647935815417935463628624692130458402076388457879827375641053530854793765855167844671832526645682020258110869512918882681983798922696881293753622687201694497571371075167308452841794610431844704017645016370615172502810435442558154003920415894426504718067564181627884745517407241957572174632005123925875726903726362169699574906924359984737340536560185174198224356078623910974059871483976485530774976946388245066883480786396349979764643747390650572858530524087606267551646724941173328792099553875757902933466910402692702812506685289181086062185426109296329340707072254053109197667844668672172036955213236970979499937372073210247153515586648196645944054800865236647207512874296882403337923648120988491230030666190993833231744419200192052270757257895677371721705086100076615349259638781269538432016462888463911123514788227942888246542518137499503007601153835534169560306685463907484419046400725590670307370001872807138962229713915754187955601379568430554216564499496023360463263392285806751420857786760453782387474012479769131032202133760643768840547661902446151379278980510717733416827539448611103282841005448087407482726707046523498173048871873909722900818605565631560182325665075115299042390141022012228490601019543867416283293550628122138279934989055102212585120863036731658591794702376913003540653017491446270155347395077909556262141773970910768502499372607181578237658992123392727135870608344288020143251446079206861997764104143849820440962778367519096987165609669785565917564540304909037170198227516688869782870275242355587042832319757934777989070677812014735107866842585527461582484528605852092316697670067590390373341372096896674986668376626011122159026341108018177398045772567660676438462227177245699946466920518959474872765008588904450328173620637835685447764330679451262489001704709992768898535878813032612633651218704551307605826208823891390742079314220129006099347906201961005009582658236359928548283969038710662301528400236373845491224963323237394367648503566849540470889637192569526444592351028250117257766987123699298185187657330044614801893066071986238188299704815373865863362123922071345765615561820984706935225147149721737972532348310127833465871710665104972788501644594431234139925730526899219388829565986061167230340209436983984111672104848616578535658699970538872267005710231589560538429192009718779348330900468920182836682787757739580539879298132808754570392205127108453736756112442266771489366923189153936735081069624973659955227657379935214966628661003413277919963692489411914819746034013192109713543175387428468420587515534819485587772288740722300459636644120772664303983513084468523516050230573260704257691763786255037670561335384532536733461334036142204014115963174153389415956456805588824398230784586016354944720930753446541926666858664739432792453026200883810592393854118613199033078161487566145822280603969390722024364165079018835835655954018407152937898519972778710826970718606211273184551847491357085840250580555485218285636132890496526013148469150645487389111705660333065502904503613865260677687358022230890210988631402624096096995348678588497132268989975704023581891243659658129301000940578027834807555562530070424634623979575113828787598021127098057436459735974902444508769153325370586456187165396528806514397289776214883953939026314516938731723235364322195690180564328858413776372150170761513411258351988938997684246516489893800559672979640392732014931573007214011778033552464079529410553838919616190881606581945622602856816971843082341745298731058875073848821764052662183150834125502104878879128709178952553545377234933108781625777483933693967244054451274471437304717912603020086471224849476637106567588169748446449980065058987029820725613339043083031737389703270805396805086256128756027624916581694880532821759180930347435927199495930613677690723801543368842195500440102308186729753522170851670050288267630800002010634248798068509601787350222347553721389012136771462420483648187637113825989610182875271924171144839047398041581623806142854034268795517035185289274680212462308075300977331573409887969544805004256451271630471356868532666096011590944649114496804958054910553775151442786318333525812432290117482282436847232103849943365203619885049175172250018113452461852947705606191653723762910057390461356305907541124765361740364953096870049012101522600165108189917054583666202133865057081917966034037724261809927240773381247784803658895949385203407976638487776804530596046077936758865435473723745833736160139636874845181682773228549185156074887302829693970865715717773356361534428292711953198261513134182098338274920213081329112109303796458983183948601186838383665621012885750671550784021299619778747667760282027880911314286765148523307923788112601206550189703023271253824507608048863714731386405534303693551039765418989743663362315402963500478187544989432449552705769063192604194040577610446292837982965761000335920119521846074454735968352309903214452403930827425457500120907286248212810188094504785074485731475482185830870315850228306861781515707778846862239455596283291285414302230930932505895917115499851572276369726491170601118799462607005065674299556245062633762999521214789341686993389955413488496025872858507735572998901925086652331556205840545450757807160985216855372501799116490432289622208686376855039608150503708345458137416083861853396426818344196645405876520524815041372295136072127390398179270262865474030032759274388869443637393223329816414166364662084816999625557440368484813272085857695152894292302131481568945570600113723118817265293085725066361177107843088362970113194039766582128449146105085451574379955607675835278100708611057916757683538594668326273307569607672480133005145896664334629438044796210114762818907015251465603433753393036949682714695956347479331865531760252571830079033713453300722251768257534585770087049423200590897056790540707490414889970314133460824111079094892318858797479889980460902674538883627252970832629465809543498065432939455916452368845731555236067796566916713745183910550363229063127551775651087073726417403524239740035260454091683453329294780555387537036070603808926548729599460246055281363184044051430635858391558994407241804968821649540152652357923663678186142385180990729412211980529055092484234170213244035138946641242058485364017405089538849465656959528917340793295507715998864520142703384433222133291207237984519470699642192279724679813867851396275715927247310120311018802615123902278950518402802292206928160853211296614326191401837358855242831795059834323632028719898295324417557353344021530174386794363175389498825426433997121957583401899928142835288706458610808084972275586993922336349786788270269897811317003733886246630724934699833317871792514399377031613642729699554189490776981519844936285560552423012032855649128025628105173717393617035061147928227077507745061352776068733970679166008420914451479505827020572849806771092014632991076257973131450699749652446950474034990462752098974899997039179015315357469398051794939688046557281673969433808317851261123774484421957497115569865400663260288995206947238253985575644219865832187791023635555769981190039174068983001298890996428893066838625001411330146742323182515143678611366952078730780733377305785617394411567337869035085696966029466306630465509045979579141610835275561503292424592053477237270514772917090172213394877290545933069065374291676375750743217052907173599611370844295604127502075939467364451899436404942424609634717021159934920675134928275509367887300095906932110919730857069814925632347240193582623868984309716880031537936716985982794627220168860296284400762883825994753406443751919733155285249338183211809399369342949585310724893982530608825664183598891268868629598834117053341418200943908332494397832014938544310890242946577548474252964774148401837910147079430612995465880857984030267963877379757128656166918388941276346645228797512292053406828098900823182212693584662975105931310986946839482489790925241858892431195835025546242873717821583168273454905132055875571966196331845667110024126878118157102395095458512528856525692201500170692861992811371531138212303997851735448647713271636624355103293974154471475747371641335494300064569840489816099232657520659779020436391323922454137382042029401897556717653017643518224545119625032631123726233919149700077445408861139530356547683172505725042234280844999936714609761715269132528453895752370533431688244245189474152820690677654683820494574985247195888446850255800454439135217442912505689409965245867578653284508248637200103108007853512323717520657357284344349609952683407339847514514741203494087696168776948332389694246078356726273966631081136896503195401182570421855753343298018446568722482736466120997252094923693517038854518049750577055765691250306889207496957203771861482898077882744993848818038579544900029756979841194038549686926549109910824584838418620035710581738911997425963365481689213393430716910631452103639297966536742376864084994789699718466620578661390824960942532251213715625278100127703913758963203236520624017684285437838296412353728681163172730887486143129728412895919689031371955300936777981071393899153164068631036421352250767594128481445928147302411538649995290674573875898283840555126579458265350671171330790401375611513620216176196403073898226440693710286812259174177947035854754934614065430451382739756674966063578903923446129375994385658251835625949862332446877086950720672235154900609003144397110323883318845695141772176872202819765392255475174661538003783194190098600940200826363241764304142544444876986026760308015200082185565048529327890394866743996193181652389941858736822790723148548570918043869585224563089429030674597049093010908177804062492492197528874104263353520840100919772397253449343827307343000327173004585375580076597856889805385195714336290951967865979752255854388449104374458793173687179831418221915810316832833785698490557498501308384540354351270847736922600012714670061329566433633302826793953320524925901806770056376199703015134675603300112934300920747693887113478851351022761381391115054094960387319595711553527961013125614167614274998743481355100069533046708535942266072942559097018891031934162121378874034563967265571864478284567863801151830333485517615275760048124050182929227104174600652216955330437285708845825893655463897229549647367327756814782287446563547862925285693868609888611679724139838175387059699299016101325485293764045543303368873108362212949267839960350088294868143937439159221383684194639433339763932764511204577717045222465318064774985478499689466208067654423494039671488526292457482789803042320032483210247158163055940448937570517268892759943761762096219496283839552436934044850259683249285199637795571884028577232209039386167524560522048677005549034270221676834492967155405531854745308086396739688759517617485347000155011916385410424494680850358136108397174626445578083139370483858110302734228564599527412763566329692434117935450451328770757837381880203012769694461208069616502716400245537705368868084277601297599326111030382213043107053088833311460625447817429852941171752077545624691753210048261139121824040464290968080999131559156462629464134408106563450904360727929135006977257963346539209657079208979802341263684763798580261756061297906761347864297233775378287476381038780267028198183608223827508799115520922078798192739400389234059356771355133154294410373936055581698762536472244237931628736357690444667730821708352835894276658980732384566187004557929973308911767128975424718447348307679135791179964970789326318288672766655701161015389275979904273383555329607025559306595265760923153220786659344362729684666868174990818754560331649435515487721209753791627092463590210414150707217379247597073176295218173595691577828867073645831804947606720385092682047763005151169606761405384266143276492536991656904765593858333200668151465047838114948245875726770002136516900678758122102752192178038812893082504799516713988809526665434144949481371663957496417632654129623050229032705992165589041141424937139414739956598736781459924703814952804541534437850865374726830865043890845028740557657360510558713574355960063355233475892398173646769961555634928776839819452675107530589667845526109868212011844178584275835099640047911964810079595993585299927451341001847629345639894024605216431216130284209088313335250244725514202541139075697695621436894424804923109703522447357029260802048183567772179597340129696360454913616270293642895280074359066197573431682026284079883351624148797820035480079080303446984358411972699762643695006815168923918446152781446718227501066066507173058318414142806348363370078628103442928241720667621526769661893091411108308756244349742554174312659809633943484620139600196295478302652307834340473709306772445098500996973586260421247013540531083790653310653396249086426836001951083556938466220572659182052829337171092786818333148730780991212370850078800999437561962583900377122237926410442930271149517327685183354960785703089796571409207405018748395646479422827988875847570760378087830344071767264199803395689596191000570312489290890580171507865790171225533371797458118003868362005321675880929439087622858684847001678326594214542583580201119498945001926528702626014557529134920735292940814425141933174411664527925543882216239841935147978836649720077965129899671179660412816947013453853768488949281545473851561490543831787501384607582815491532633355389123078242481652946463411851936641138544469053087680325520549492435704384200906720698390042612737231715476388798114259281874818152605460561594170615026333921044991323672931514426987998515811388769675235498457128504646842971038474691107973315820876791178462959118771997852328113644076751884080153413570074798597214767430053718731723248348518553197350810237706955865589515817077821956899799916566780971018079185725497751247995784441713318061382453285597223595737593793528819530039273673256048391905428010921758264191297938267421568462748348971907777334423802775960659537041891081212709065122705662892945725331467074313480220153009740190659712985867342768694824187744301464007831188194352841871494284721556823647410290717009790417168213623998417148964829613111175831606450622754835574305190446352933851141470658482671111767541438541563776906184792747633584175642996227922132142479073463519970170043223899988979034329336867856305701050155998616785448156398194205477614065404486378496543269855073874546356816946897002893083066236308772223058826877767175866273555266847276346452846266201958622147127408466936407629908419698262367046308779424800682085863938430715839867377210909125290624899507295551981867427522825509047451494640260730333288264396379577009496648060270116210457503602992924632793544645626761797685480823205790037209121413228291682386200695277892632785054373869630892033296574958046573980705110251154725972123632463431947574821334035627405986577383187286117478383975441652995320916903052446151579706801006468334205383692323342554801250272179822079363965078937383972025470911062658569147450874539770875848596948475170265797762822458721613368618792938492149030194085291721365050273269304573100595928718438369461912436589592679748187598211829610491755658114687826973961774758124547702318780101625805959798981385893426011553297993266277805295212358752099710684025590863670744208002331303169050785368316591428108454126346457772698866553795711660390596419371761412931793111248418391902514944507488229765711929683934543048023799879482413163799609108476882003013357532937059239525782927483408739696301579070987943097318697945623948110096032504670340981393587976609613709311534027097162863039422259110043486411701021915520228464405061124374768050906836165136091181295278565069067871829958329843138215114087632297472295024765744639545690128179817610448985596271853307936425144922135853108332079826322377147655072953251193340908522392306725551451903929843106175679753712955196109983645622423925964921741443301664627165651720570664941670144296788859378068531015952976833632016115587040177059715012634750316110410257816040624974161349837386799733252825721030962686851220296270095310620699389325566805537520452114706629640082074752122408359422511224037259398172423965477675258396786630346836805562693094579525313794082358294457967985416291621269224378435659896008015383821216696275552524291050022400444408474038913299558102431018014668522027632634411808367348586720110241365061976340284297748464009491170694712927319079648883875613986916427035784052897567562776418042254029021555398015967664546338409149613333051383984914134102692647892501509518727832290061052216941629517313928607988610573708057589066507832210694381253720942649613519380547572653604878379118190818535113462918846288167127476612700652829307523834754328934896610976416268552683118183490993330066806428694353656388068300639854572001196583708627639264787626364058271212485979720415116527966210319756556414926469580353976342845377642556838041890513601842215554548692165080527584089894049301604571487615051179823153149729039411320393084539775972412183025854971586787796485565295790322863179450869239403221668862979199206145635365192175311157812735562536068022077491639764821728395642768575453554667947132227765067567109421215938891937342031706119053696879621523226014185504948734294119148411335011569995678703422445144355396915556347802246271350372261843389576276633790741564030896809816325614273894964473147444286571250732520282244278805219399050495290435504479392546934390809351651395236503634201005769199575145788702690054418187376072606649539619450460816622630284735399166259136240790369502731309329543925798938412458234238703718788840812899504175940451136431048283283241445477570437695915717198462403863553601782277597447104210349714224212721006978230239603827720114968244266383336015727417054555119127612391395310679231846912471125443880010271396542171768281459026461199334174179128557650918402145304998999947437058460516157177020128774882025838900229795132047952882982206660989110760958370837705332612380043177428821006459992561837498490125915010412253476239422707409510464230699080797922755819234928671836345486098954548724211813530757799701329154611899651663261696297453030843609783922263805154782326433462161392406045225353989979306702218441455940871482382283585977511832325077652454433640204295863248252277009012569854262936874801017236284681497177467513459311995270486508994584443890190875711177496926575739446591047369748179018369998072296947586605480441382920078904045802765856593875898710148108955333332502119421779768439472665357909236124437844985510664054121274808836181839646835336123791086992228723175690094469394156402511549161394095990284260871789098238902720011523324866758324276014980729748865054649675097006525073121521947203388624021188896521718447656153708843365889471019454819498049665126890656745310724961390978799339602724773012152903179518251726256726027830516091223687294183414919852382010916485313116302939761805165131392374335607679375924500776580072763749764813002985533613339054063829853084322974068650660155632075995725798564612898913392560969863123553847293028476715478113054309844444975325299545904455567319653001590003790683381061309719471673346303002019743355309570276549073557964554870630462124819890207649646760999765984568229715287346950288115612401638300343826660610491905906068217754395245879859327042280718709366967423947527897212167836526918655756242046686836050086977476552070801876321823065644481087823614196034641091291932160998010412829488258746599455827379905773623259211323093469309336292869993503393417840515138060800132696910831163220176666275297562947979373433729669844010641301682830489520233449852096303232558590509176818118273127685009286044517562653578700296225308175459634432613060913549050643737267562824516133738417199174273284571884235172799678270137590215709572434931097867241169125358261264969084563108666570750995375343716390347058462282818722717537756211540935697321837384797974194450462874677166527223138029752324623773518660127657091804804488655253799677197973886769905329775327971862066485669016896179175595934909864999953212692233374232821824036660068000363827518917790107468616447725810062300609425931170452742119042972048899494566230459488830071653763732115134588707072942555305758361442210414728716808821559847325826440375398392080680342660830162896663722559023468180982109479645030642238310129643693545223943201793019281765808694580389111938142067155698604615769157522041340168301720630995408541820562267682159705929641568299089181543038492251752542373098328821139969490510748370956698926619414003703921668067338641926212176716595820322288461985566195415893651658832409715490570392884768622620124025461385769716517111981330550735081428264420413794024184790188409349131302752172348639551330268471376279641531825597311170874201897505540265181714341266610678921951063326500407792035505939944645472028480418188078496952754693558011626317585747717316207681409431431265982512154685641886278452058385996319192106516178668786744334528763046955213908204331389972001054508590838985108087416566979006123277672101121498998067959760373122288168124269644366922248218846717065835092638053426785244757015667907721985803700746467695584040886135416975663619166586752290558393806768383908138579669741450304430020512835390591319629881625498195804431253170011751246944370925077555512958030778051241043958244788404930468580998305943452472514810369281046349250442321710008467301331723454497349963553673733103972768985629649351365043788191152885012789408104135914194983403371339850597382953367162136369889660083142225665487315438291550861269134802891863268785769236778597885883549450629554921100542538304612131817140613780279591691249592127789740523833009240643553991093030133397263780063040857119849912951443901407231059030001903925133512340269684522754718936573517490630615477731249301426832267424122404062542768516443909420049721735283867191326661629661989098980799752914284680923968369567295681458950826251350278819497906555714388606952077328998723939796436911931244712895021662807252398483383350760984918425881126489077010363870573678310191898768110234381191584479387249030296603491561510870239270879673776623801733138979449595669668795709331509000270702835119250616401229713973586446803499996397492958047765969341574066417016271645696511353495638672113825332845898137980359665606315128294731465984307366471190761548585838754823354452937119086387284744840502151312799132915635584557455083511610973457548275949183741756260076032332014678189505273536385026661333151511079895251957545970532416004378899744364708645579846918829189744352487371539967004888710189366447852832891474196438901712275626899288475333731009892104212324562261762766204965126726661709399804476797756604363470468521106657896907165463950518255723219985443672322184453107698030648923963549695233157496061771282551964976449414157346259993979617048239029719986379888875026756202596351959580419134597266294687867639961520543950572277850822280196798558898738299148189997640613941374891422053483140162775246641590704101773443128358860297288936618127088246987108501107564162259650295294760759543785394319216683574477763403172558807772751434415702192942842184184051701100458854309330355486366665279939857603081144523841552998353662897709523958128837929676586342217478049454174949498690692391400808471151350510510462229413704276791470656341112607572811821384562417888673734294989896530165447953402890056423773377825935593337082747110754773970739507417591386285649808178398381149766621742005512991335280127386684510744559402510355891802020332527463126171490495460244167849294019682545175340563031012272130502727523416680767891572660803660756591637598867091856302683579874356232362226356715831359601341381747575331505629786781996089605484267081583576858810992912198741451242856538773782187450208628769519597787393821804781466413117163509827346565351153755457353386561983039857792789083905285299838632324496755111643538854776555049158979572063456402734997914868260291802808646199083784628802281542641614135861240384696275631257041302228665484913297026936123186884276871466125836411195139769920397248365939137258558409272353472909256826029693591409614504149867700339116669381128440659649091312348451604555835854945825621531186844529242062442740613447956183962750208687096317842694568611028898183207779541641489507864402051430743405503871908853495404953475208917783017341639009543634331470750542329758948795366696199449193446814586997522621139361383564214880142081687511833992416548817098385662249612134345056351137622379738081745579338861070594558469357620386114528453669272038491941152467423518162532802038987309127383441200119100387401453537997116553944845217039898290305179376429996935797404843229211083767474390787047625442751854083173151552504217455872705786789704256074058329845768005145391972368080589222992351219904613782446150981873436318590171331251168100249135151131366467568824024910066566230476985587692795336621192046841672317256397085733885522445336780187506083673312360651172211940653910899496323489748599917103438779254673476018064915396923229722393923247173671413719082754804218431992577004267940119073861872692089022205041252391689543807622024201389758271849507721176240013041383791747216822255412014245761134370144602712658490402610719410480140379451646793672562856443631963896812255735773963259355626522065770587860251769254796811577245403147446820363914815652917336426799868121476478534863919779891185022703458050417263998316503641662424851919230855929230054692811253558338427652636080516952630811790322339533453716793122618910752831715064352552254659376713039886746461480641509675272725466076343658163691071357536138919867324377913584521935463274523081141292309660613946598933472707796280380090171995087444317848491058518239440012040961219807814460070284440487690318673758066161632949953264897666321211126282152086430617252098523949986735445768340760273626048799751215192048278866708868691449530775966433335860663740973672930224547564251134270845367651294134061409066847900764169548090950566126618818682141513338766004542466028821473873217089048168868905302062266251970374703808202889667346161238160470326358540650121913751148611887861209896037004757322655167226665646695053149584320778741971727951758556605720298143415400751697864713060087293850575836414488980951483570293477020277186642992399839487605069349453971947167271931358070349934665620150545910210490388627937283967837905984276834286490407497330596204257647821289523918135389943753904672371004033040396401310724077699496322469978690807633048973092491200261734737873179149073843841512836134209730733546057694891929062548389898885680785252399360013042684426216090521848026543181123273261313163750156969319939327120076097040337730720982256623896682655639746208453086988303918412998112798035765818331460470316970901153720638310545876303293430089678462638487164810021735992780299953555720921038811710381604928435547148156622024357668081070634212537293005892131264092447929551012252678842068667406039210370612251873076384039838978079159718489207281897493607984687946719266450013464086461685938992050804087124772779661399255694917918211771179025321271524437955275306208225702071162717786506191171942614817731665503273299456392509197917775619654846955431252592050482803528256509388679907613040497015974414532060772278334608333049940222859962604153364736813661885078996536195829140226760616904982199162296838264726976652053057589914630645063834106708092294872862138318289625081312603429045400717503552431374430673881194898297679550343829153217980523165849497285604674398705408622214750829697161330569677091368431066683183272472737635048434258862083418515090595738401209391484210424581013305465170967263088038734791035636013725589637392521077062212558698154949452517000787620583114732012831050448874074973439820947364810612257695827093548255458379901228427364190278559250541781236468887599278724749767736806246966578655742241832341902311807924949672006900620981303443771988207290078604594213828754628751418665039173914819013372994357063894387242305514115658225255199376497468947966826345499217996734620528428724869910110104374830868686499563841486534260548391410334515226918182513271052438318054840232458555582366602962500793937526375281763229587278869776031106647689306719493655979420312466780177693406091274135425030970884746116747409314773957156363620880148303652963442595675860131730264587139686462357594704901036370179046858071946110530627111629318434615549948995527505821025474244113144470010798208460371374277340001795000593753916434103448857762674819750965176856124205371178164184579542432534121138096155540982947363440538948309007670537305945746207662271636645356889777099967210828756718950708336236589856726978095123131351901292560173526118463277834748899903867467103921893382217250765868565410761924736354404353271243633761087064087741600180358222208732081455988060854082914120754248968569750639317844321498331255087243086876831945269344919190855991368184369296277285770061820819862292324199314427019559780009235349442336456967669485288779939217075678682355355301947354552624865546916897773155887855532929395691243232786442282475055155353429482385545487122947449860466529388893679996496091281310345672947912217982592528417755872661821469438123796344073451625747272437141558012376292314218743979099875676039675440544331736244413505642963710966118507473114923371082774683010484114487398897980798406026869024113211553014653754435298541539676293924206989587728970840020001218394453524021323596397390129160857151641482089941755209547419375429296680182888502235667104799074869984773040306612170870224856727316856976864015482969954757546446664434050910500258514438995117315127681320785538972028844685477464833820201186235339467040320306944071392461474109116464427095455428230193866314412932057039513257652087972243715253525161985533150774874131164492913619556839381311177790691124995358525905604057233979276481514479228614877256562125337159877235976837603153825093028068246009674593380208100185805916973050455968534176605327735208115274074729895022574340605229042900194744649973545779360693196368208971641808424115672078684373719920890063649673857794530218460848769666428977689672022493645897735488297131405262297096154370900480482143527945322490540701518173644035960624581894536429513269192552726282666633888597690177754287549408281930716556351886221245453745679728805134014827765623600038965739804340071406622717641600974276845922668802381443588511598511417300745324692650356603994200061417929930435823616735295425246056810188193829830534227878334615250444129799945187584884197056548732704400544353762484242618294501792405585510006654668237144610368206750561522946749199011609594160650851255460776320986993523574952132502650318466354578073168967001966573327512593683314272162813353458435274126932547155043051453247488108924207107104264951978852989911376810005569403461387820300379385023265974296291456095565407833578851993251219779215912025334240747179114070358238973513448815342972791788140018012551838597885799204004749800044438934817977176579677740254058862211411739867703905628102885473369668624438904900609263964304107227877025976628605379532259287650060543433354423044233125240767764282288647100507398886129933551497388422403811750177626731550777448915367010262725666986074294531163418114546539574355077533510363236833474019917842727783314387757496631944889171444802469028268650643428354917648584163594391826319307445650157214456488276148708942249969658708823345351042935079466909454948608982677701979155742529957251340780911329447793592110771210812757479270049142943749051509170276985078028707130456632775808357691033993322217802211584839754880512502483155070796323340057573641843296109680423788490887742590554935538808551025441960786852698162523717442268591913366012563393132354100164841651742943405957161252159564027423214049085609312264764426547454991794182972239941663783210360999034974674158534909896022938557703698715714289965554990697374068225078556945122990029088374387495749693998058143028016903108954492840314544848844646478466561497494785783724214864260741570091104397389715274740866095872975625812455906985060381760749274074965495248604302794532411895792378126635272648982205483187178980633818957413384737493604380801724267988571924761343844326103830231243527020324857155710988727684977325917767500465845754577191100080869284977895684649638985931709928532033451725235870381883166006319116000448915663053414978342339511337873475185558066679978306934890488305844518328187058577879113948932774021503871192605855622175821169877118702933195153027550348840980998472889332754004843644252830900094141045290750463821710228405098492314681539125683502394994871946558176499570723766162157164806535547718217061880609168170035466435391536282255237170631525960618111301745259252437022855037897583203420878529009111216292991118184799428551172857125975385091315535025888212642212159878560686984826215520171059645496845267284376732067642612594975430094058700008995540014924419399010440335666173807193638683693385450315071022083586239287368316012342217423786099884395928836523635802002845659410073128274295646357889436172177764575853096202971792843530545057326970224558785069731602147302424948104079276033349314516467220221093771068953151870520494037173932676506856313282486163434254037450263604462054210642290517613059073844087962631899676691971391839421535707469383167738843116782480014313476783932340336416558634977201600218725876883100419389422091887894016541117967444946041595623599516698845549278815524137516318859975586011231205089996810769259685440302831620860437219055952488799195117623213183918828642115038750152713111493131215654797398064248714927029077310167731740574949478857009542977035771075610025394574298756989050361433923040731418109427007054627112524409006747032959171724378657230558997064046914877030309018065613148903249544903323005015263831561419162523070621417724218566474709475056734605951867588400408745596822645055894706595594936144554730718962720389214079468926964409358589283300275585954159874570364147943244000408756158850983483541031247547878791750010472940048285819262847406600669436389126820982162163262269970346620580689478398137831272885704641085777307800565979713778187397063961167101057048286087424218801899065980738508502032700121764051393311276965397125332887124381833276252033302970951614207700651154438697720041027557240039889513314884523539290094011028515006062100517585477651035163066736220120466306383040790142490240505238263983417436531185907228025204250576298485719152207994390673267635617144093761818564301871604863848639879881294538924931181522955387062787286256466557638894496911889831290756482754934629933831220240246696981666850320296298043690810120363257086667599818575857509544768736155849321954204301802548503132841415156855373117367414266503905731516091055264760860659871184878619097273744673681084073953326560161164194903316040951854006199178034048578813964882074979532680964056298806347406888969513013489761383973767328154344355132965483084177944631871998010545212492770398371257151934002245078809864554673681243625042562550012766076410236768388938187959094359223195693765991352994269138740025553073300528695546975522403738905414660811737784709484823454321064563643468688885570462626564190247266705326986198001387364492707037441868429259053568625350212048028404691757672903703038930377930726416717059777678613687906591209331695261022716619336652729604837011999712571802798454066125517385212643104625976487450444359183922015071048648082934573185586673788284828783277219486733510790864420969554778545745050482757949770987046770439274710322925966264365225778142294532838536639752895019527636422432978024386727568942784697250225026501703929109743610948274296405820793266594023985558339006747032350928856226442401073072266964526366846937197479312035015318341342098688473476840020624626353936014473640701082373024072725582152897045517050150354155305804592528391476638429121365523179662190548235528014417177565853041563062034545001418468784028994713696036389994797216950279909263861545057227665555134043004804127181484754288226173349990665536780225539731070552793797339154849892695045355592187678169500228741777439759613716448280170885680715219061733120494103294509197209031283774007031833471836957997912728780938680925174470383575266415024071384054122112555023784135288266390510971556125161875465185000697030884934581389073203336794189247269829384924110508444562967186701763834938042690498943586404279701243696039669191775367110649802016812250458763417398017367204157930464416438195540489394056447725935298104310187161905786918282577428067636839746669541443088618377518260403600425195468936828991902940746581989470205402463227336963864305095140683148812361835892871189420644644032708151257723829521184550511490335835369076125824911754111646312531753188121028860599301471437973150956152017234360675547867885574838917509436873642741484694756282118438867562825645278258825610717556444724172599161002076244698590851729314887455347864336347798532440711570176283274310688377481412480561030639529160747012425701916505294454384291452522339615120505526148142307996210482292235026919771445086219469573359609800190867154587953429728101572302867257426376533385083323742665342920019875677559066433235751094934964270807517417195551234071047787845777595793422901053626653840567776562919673403019135123563735474413456840907262301906318153563602561656114939412899968385517157164200418511705833912260725121079111858744164816732175050529554685328929255504424712735484942765924749340432385637226819202940081727778056882706722486368401231838887308235796572755096378072865015493874629768314524418070925935221383731856121921810828651599562348644870309003578943828218973763498252951900126620176553046048723379430607846789121005575123567169651034455314156779127579245588948012103942255756429180044094864677205177436854395318760679863959072328490469762240503545850017031941668830926492043563344245034704374573533561584940995414917497012052045845826738029639122298432397823724192704871028120566465334699612998815919548425698675798922829772087672109894743862208817794953912354221678193172020873886188018789416744432307783639157321194650309768704081605526262364739522157459031265318827724425009030324342805099780840163795275494970663361277944747180196452261106057913744386531262576893476915639774583599090602590437239090285471373287296896120612346731008301859938440642523847887441666831357769102947772462818997722693417568160607606177682823437818331696943558073788168115788997699626010187667603238402768810345369397691829364559319376610407098708807209179237859362377772153198793120807320220670626964646761462412137607142315192141657003130180924578193103058971655472149188810759155486959910787847029839504919255343126396319994820744606837322656718263689879985107843654834755073706654372703657750064241366377899102462781384724718428912035084824771255131208955588172179425600698286013195901200845903362439397999153712721577995028278116414832416840764673351865151437798761569901921127624923070043384619362941725470875348426663100143838269531873568501658261237938590945534772149776337439712940720244570161159949120347010604977920203221229077454123254667962353117267827282978912428742796294840348602547117962861400830847802797468150470524360780447052239680282465328329965830705514548992265392206529912949593468960444287305234208322628055839562684693149776259039514852991985603626721988658982580459059650151943960506101558966034468352472015601986718533962462817819503163453351948921670967010076229122209144892996538453310819841224000770229640841742533207505795989239110147595134669101181270837734420427684421491197519742618293479808487516927368038373488753957389907301756732519722727044642447098383844515022798977364450894513727656725068750458571133433646749372493012020999027049189770961021489468806095993810534613574492210758832360829480773884739553754652214443208522899292645958405404479623051079670488094983448992285181690557117462791680472400784914614522705354468834298822362245783067828606214258783658209361397246374195751372555622420990324871394969737330131186560201567485949660181655136124652510257852221859580367583514176080622818144323121718292613183492880149253428747777148668886462687302575699114754634994411662792918684456117963963699521429120481429688064480402480371653464543389177681351243430660444085196536676491789789231536575955154328528110640144022531868593425415283720537728376561141428425517429444074371581334356363549338536494039314065623176733386538589761386664092239650532655736901199251315511587274815202887748194747560124839240773525228906765528433513135993494513816468939002370870608846680575705787180296095999254279801854665019687537239672647805746794377404453557083222923004873282943159127503390002805696932650575157054528150044425653071367050515063721625940970726994494927872305588115215833144021201289317829964121735177026781312654936334565176473244216766354735629655683211696770541858195934697048287830076102902165266608472921221933150474888130825736324212500330418081307635106302821966878146299923376035868232161194451670121422619999245805299687627459994685937619515983632076580885895736059081929445969584466248981179631560140670650853451549815744507123481157054759954330310584009834149323707835384763575207953562275564901137976282529722763289772725221638501770274116317246960642774844806923802890179986381159723712473092881848818859411505151956910408979832009919615666453040525579694588136847720925182502204540091220823265555039128688292959164611600680900662959189721129490003772847302808806311133178113689560846247199567720957877720498983205950319565854553040520401515636270079617009760443620777371507897461347993952259887144960331554572302481781886147213857297050229932843652183535018306162332047073378333966090925109660363399542732235339633531416598626597333313453486847815776433401117629200302523883508119160897430725458632543707926158616534603702178743347938218847003903524488349139649345204029400900323092539523595120080753217945061654423005701557378379231807639419277447614982840611783719298633615384462395605618330637282565958812972928094682403626702132316916072525313898344973418074710287119064958537481602639388234746978864441633631324219512093757367363821853395457653747054048099103496950901012620797741124700944051381961356764663710775790180162125190692764440011583818488327749069783623526629490651755205103007306067556752212547817445358635305045467613714152014349959587527114893220353994535275743245103705658334222956415997032399552470565318141572408947491421624949449989337816684098659488818473247267878207626908633461086897945135954576271936755443652115086041539600742280583920128444211588576957054644798889314053638150840282629785936530502334391759362920152625653760259472523079880647406881768447692700909459974283129443958573429729699603651717840433581239144226147035609865684011063166389712709396658550407529618551463885322523679626901693755521550434904106615530394133780933103427524482305745259701443111395246142125038318263384016502923894694878554899099986257115011318856903682003590829030244409857689900368644362858986253207294515482097488197316325538503415502183245672463542543973830628946514567246712565126327804423112781618126842536465351592532858379362396852917363997417395074474278557668305356360155868839825313453386200045897971587526154471073759457456506035380030082375129029555952488654603718681888372940230090585518331544145198364659949031698389901412487549832489225872515494829070297700214413596400633363259016962705232141125531120861986103459189721539430265277923761472462971556236137151717353702429966188717883396843300192078296376331082412304594788116219397128642936277785689221658958679826140514633582244165472193978774929518924213125986984117353575640128634245116602638157313320116847848155408192172007845821999508020855488106171504199636004746299679913250191999855560707274027356584762842742745687121367989978867479193781184682465517689991065436728953650883065470059700969475523940430247074701971865452010175431331545251441932456694093215128049552836604844776115480841011365532812379665590598944229372743899667076908528281648272304095283765266007721218813447716875696329814316595565490961337392096657391434120940516091243705961425112543431819949856454564159906699744587425279198197801172475161865099103031931421368684817568134234716287983674391421011814650733298004589392645362635518001435170527050096039291954657310447070005729632908193555062782447989559285698232344247163599352599912017222510565375196287845650223019751180095545406592792699483280124358755569282397825624176060769921888474979848729418058307868069823630028476315509686092899806674265512259443575505686971420073724458210778120664373892877473448048017608380800923607961986297389491668834304263399048286928081741927291000410382540328680533600257580015936762226362653366064755835203497395567976122276833860162448063461397027191175689811554779318275617400942161137944749801804030766506354579467239737064500431539168889901616580137111275200584684336708455405209942859488301905264319632421466143366083806128502361767801611615737390455699113527891011399187857753338802941331018433906108475619471825276373530635034724389444321379893980045655712324129543941955028261534388480700115520867160411397966158662467753356465322106798513301592907464284484386126439490691343714517904984624640684133146220306901689434345760792883087275478672628262806200833477436038531053890058170286511066561687911647355511938797933610031936185845653782241414435555107720155665600751503497617988940868339126538116215817701157337526761195883871099234134745127926614766000669248381431866505800686413097019859334858852534325307829291297593199086394399071615925561955436968694710574274394486709912326796967295914115715698206198316756163727258998916146166439471016195537894780181427908389660595458887527778502876335884247899864865905377680381250065870645765534984006530013237299414407613870392938108944733353197377335868253368408086366590184596680265624175277388368072159461448450247485882070996201032606137382984149151847907503444610204404691620227262801740532442018959202366843257691847090210072808300604671511001371053279970792009858005111824644049322574486792881560470063862985254574207140755482800295831357235311976315832794859118689293186375372478351365945734682465386007004709713064654918239221838100739029212659374588688633773548405086003248987116226053504582765607784874543612939458669828460517103383300656204219298502859744788849042809857124636471326898505911045606202989172562428285862340700094382048927440071541232983055536111265271462290443461776845016163810154208657131506415026654278859336465790767270992123784447023373890161302006176363576489839992748103406613329991518798752277580039297447113940924933226117551818655048482724842053278532722991171148067380530284370618795479038966853982675679958305472028425947411354561961585791566129703834856932671963872473114487951794132941741016459365385095364837949932282904084631490784514520839413577136267110752090475382330894877052152722026599356321213344856169298931597065779707094060087443318055801884353001871930998771023735156377968429945520733740373695107685782308827393558911287666900159763534415547535186864385321404782719054186058222100632785688597534355197715826607386223724567972044383284161917355495689760329650502318825424756427038621990127966828438884267444139715045291325969175675694250235598515855263017302286508284148651461751544589033582761975012251428532776168855590529309831903269555188650323377747928755871364573437076675528721547170186316249597117838053925275342065522226839717450351049194689223898525670146047327849708817777311244169927076216660608224108518466338301580078742057184045885492843662740760764874467238682771045811421919388922995448998159268917101009705981900489276496375052406647276473710271103049022451827380534029948663816446144788480647176095763018775935451256764795075613086381531853088781568547648124990605007884805537396266894455693829065959468153743986370895573913812607243088373045675512479860017586802104819727486910713166819553202638457133734760821859439301917596287453269954300471624902883041995689713791356173943738086821554676823662069001326368459953911458122618674316651235665592376392320556923097394498227112426864509742855178205585799272734925726100990996993298103109094320643380349165145154807731959356271538540201780238363994964646067368313469954621227833075706020511933018585787946603989681273430754853874042343194216325241945737480893891805497062411428902578157250135879859318891341567708918361384088073743223663478468174980176563117977149476273806076578810071707564084498619339618734014481006889117857994116428113631154597411036090461186560511253547018286492633896721686695588803566131505968637915120780359999503439358638232683193246123244898072947229940473346217142533774391724433092523219285259286072202334925245651894944137890317089079812059469614882448615713479203060846767088641133285718783023401319467955261551976236067748945561725810902739591177013415417599722517213041016956898999065288135076123430675710273778901529860027917918994917038764813245348754187657388576863471944092433796121951943197187369176001988596233912527995004656261771672826595860867859819103202751253161749952892653760800832496407129944868784297336846445206158276767855262386186473337753515013044895972785336667344577014843893473462644763592476242975749791360382128079492439065228470617192392069930893361611076076388586767028544422076223338220835965944463318075787263088729885874708545486439796842467943716077047659778401633968425242378745887412085748952638359206907065060433984143358820847738548235734954696009557770247800838211629850331086093258288379316569387931657998947628867933114883727678718387330328069020451425876536442203152395864922541787800957997514681367704396203392187753016121637439242495128200833001934762318793623325237741527676428951974756921567346608475125541827349927812844462164682168356578587024141975163929324825926652682763097008438971875004457000869112200210986942104099962649134153639393274813222075193597654886526116046098862630177659716827408101538805149967721201018033652618100590399870372178053795900298502803115948054567865406615952402919072631302321977763247283582308963635617055330350641105717939624964131968170777691178017099259215838510487777348729775532895224540766997475686561918718737477538999613904405968981301704354629760308532191835683687637958815315367791273834352304258177035566958135605734428886018255487879406305779116064710238614626312232755196633319831396796658497688224981561068210024241513959272064507772670927305080328615640018294461390929339443202075889067737622807303435241671695924053937667964597594605733232215558546357935102358554288564383805096961951206520238046281138313805460210234524072801939879748379598666693281155874302960377051447514818050809193964761141208025976103094612215867487043801908306907665496549753586387035285252060209802780860032283949384360130057575956427624450465620716746195868086333911429743746599663668562552310320010466820526739557182584759933175543323343675213357719089125997040961303657851507581871199163068915287087845377275459297203288904765576807519583464427088537363777037976952518521602616745682929886578962474869938055436442498040416964158240158528944919799823275829660260628725023427973306810235996003369536405297172181212704460585728574559190576689108322572527696082097125098086920242809660525992545506606065465676067302401027107524385562198984078713437176406872607879859671061664464194635634346987832039892699090526297290189502626299687504170317452278080887512422514635613244179869104345678189164221235194183521326251046949421255567346954311588402119248074597694779271963508558827429343329510699896225898214966796588667735354458950454510141426014969465305950741269192143539757514781367218330000184360222947881356944225903201791359727282889496843169577901470451784728829784508704913723332760580762692480118769261102707173489635683777577895022242593762485304754928777628618229367360529184671462131036092237173927458212626927571623225460931138061454614935493278751509019788619194493913424705078585116242175888517617341412507485907797131515613963392557504450037954321980214702777746836216546482775675444209387270750397728635729381429089844127007842721664318982455949626688064788847096020333526459143268951045485231403519005824311789665968746968985163272438283166289151180258792173027848741827432233193935935407814057825454911713604412494960513127450431027332744370534275286714629446476639489700192666288279117483804589400164959821897076915534651744916803221657187780211133922122550735168820172748484448174418712342219143976895133848225963526364074157848581819136585750957503564946448983929073781456931999928306327329489722447565203679897831760569086655804265550543273297996762445337574347632230793134712424987745306411460197218165529415588211731404847858408394402169011032034575198582444915561330796341852676657931996633623403014048389756428429105780545124956812590915662840076052319591653989812910028914960240016746076844589358563946445468963578026912018590444303273789727107329844110430811592784795240740389989680002059884227799360924085978965472648893050451481007054664126884065771676742877319871349276052894044577867372145268545429256907204175970293791539324570539670014355713250041933764928430919270485114513303536462112010479011913554725356328869649418949623261764742220174246454327377243560892045413449440663036929839221994194628356715857153053003221822901168777701207962511958390058818790548856404354865266635279838438466573791476610621157017992229615867442891830478904267213815970464951455667395765041421102997794055066411264058612351756630341541513057068887902192124404352044983661484641369312399958890901405436942466761540160063369145027902451925456288417855948150693349866449623041602247942272721059709133530437695769656843478308144885429346780270459253639480633574469950984226063677184323992681109053577267692849852797892534564737791772852213993543815884524883494750963570701138933339739976067520228056777739723576254285129735545939463781544537963785312850113176184378992532617423681521910121269806018903134891541161607534991613499883784504408305234346380887924481233622831497402897408865596340919225116612995686202484906827724573840860763281461432856657311607396385448835120916711523807059777354794032271001043781253060582557291255289294698654208578280243905798745803802250693662183069720670470383948660250502596410076120079389745045589269239329852703376766214323356536197407941129735054405156659153446390221604121340841730346123992974533172242718056124070333861921973505777917320064131170318379285433859230164219243941669407575218832629014153534505695740594719556330735309662480886159108870767380306113438519144083585859151518819144718766694524673646860804484897485271320654829967497416781475109533395573884310554930316308140309745295967174324385214612589077666074851669167669649482952238938973237796764584723870182626424246321725325726992356636586408477114540693995486525100578815601229306567199889574144769199859400812365720862731699984936688310318515532927280628839323953764512460077449465550962822503617781052923310156103752988867792534745114819661298195072494075953173448226359380278117837848199556388956834564725289100032546477351766374591655466531941218227002533259849501685840429813199483360876992788744376056498038908761720331581348167497891736034237143129939404869185115555960760668623401303334454246381831954799089648107891961659323161905680813857787284072770918210126894243145531482521450351495505539465117661371482241623194059135480247988001373052351327589457953979991014608873131053600570022679583467449429099007033562559975454021621738680662881865505653567036578030510156008828822489348112947576291644837957902527218888823325077066093987705805390756935272897309737235770582584932658759537796273056243165021915347374502492348766340894845681499304423727601413191632064525620587649238314717871148479232403957583578249597913273760215660659996596739734022434211619552070604139107595899713401997672630651052101332530921896569639722948846526774828958509132703466857928427157727735660854864173017234269427297132322068927219465535730943870081034478670680401262168703475602658419473496713518925213010580398337915160054915571882717262706907076269311703078631645545506710489400034878960172483886337404742876127827668270625498920061727684219544847139279074796451539907753422064624239582907410380548295151496531924283949153183098644052600944396143815077645274240625560325877120032342816841721172639665424278472654101144528479885557915746130263373565877087769556776844635197859492241229631952146847021364433048083835302285518363908831459967954954455677977906479226110262181128596886757241589063198602486462628107125882588283721216231619518636809961501691493215535028689748796200000125350356540133289321757601638235364068879397811610035053796548215560592880552389985648407058010137576268177150567228864701567749435527305424528034420114030873315926787618571864747178878043433185001149822079334136223507733115195246559152302766891751146376716651883986974029269487906882931840302183487149184823320989970673515077026256388675924727447139652378526931659444177652918016315320584324629268796326927265623814514285844751098486376499247617604017911386873979209069317631214035817585659561239093415309449974209945220521381113434957588363384327980393004442855842765666186110504562539607776734217752568867969164682880019669491698253519081324303295391132832401808634602985328877701667473037724951996709475098872914987571603273383873930582403600092178981047586129553856544884740626950344847433420697987275037578736076335627923045694228276080825545018514315423883381953067613764195506284640170008080547339542071551805260828591161957209260818494382057789945049534663144547134112406113104249680018837256294846034130604386656799472339333480450600002548741417096463518374239942138510218277111872511201242544286944611595223948063974532502501326394229814926517342635229655173404126106340165002158903864503377995230900793671582000772513153867576093935225768191117262792986593479950203152355431857953119243607668818933424220683412441701112940278053622445023671492703614252912126608003469071679832852300205066075586114088856591417920751179560948693462044297674336380842292247251827162279784491070195096232426973361553025086774970288166482375108826764087233684491622561723950206261857436379721632307889139149551598131325443812749032229805355113633826421303690372758526389127382487911191033578348218203394173077498888163640228941245768513652791545438695877489938134578203921228617475623540693369783438251669252200665320993265081811575073135630100951097025433638711138705431378636646923855642894757112633992545533598786288356586425849276850503024716756781432354354199263651288699255755002861530194421802568124992765091106482181427152771144256490223278331479790447250314453666370176485149872782553293184644508632744295733007573278187244055153061502843867369783085229803428408373136247154154738987896848016966566362021219207226432358980398077453800752286006644976007446872840736020375351250251529163248277735746504525826288199829150011001504358842846651561030718324129706856881853286158023963928574978764717789580285867068510175321763173908798326551433400043040075980661184855201085979174057972400676748332664282218870485281548022164364955672674941004952289361814094578670985874794252391714154447988011165311466045208475005590456583567604854411529420292280644437987824037891866834701242814451163727175047156396387627551785412643088354050637783783820948425087631821388724829107372973302245630444838968581544347379604749333232469373689890697706406653023696795529415021671410637305911448255693762897507148562766494747236320020267742445319559701626330708957281361554525585960479453374685015669887211497872995794107732542682170718057089449505492466691223449602140627896637221336695119866513626047703553102710613007779679426226248033559835011716187791295232958476172151658290283020049051659166752951446583769286942679483973040143785651545574346389012934572436063615149347857792517925852491752930910950241707094455868077251904563999558730145203258791051595103834538335335018997442535711436019482387542123455557896971052780064105990505323601226739829301248203437766450936685584709099018845925447614016460095567902056968345650696799228020041819156292350963494743632769638936119198378177341420468285534790912442993758224149307674070978615355407332339474020903289593013665387875019034015665164261502460848802406974172374210904041121105851890351335444149555671744545233235721200767673401517985213069491847779011017043043119716546227033575185852778211801610721835167122816737445272763976973720851847262995615778271046949954671879071375157153178962223853152142961924675268457372308530921427646025237895658134266204537198726489845785136025886849778198247812709905004321029089484184757724096681809007445526552195333654721818824696133200882778180140427049037991613817351921502221935874892844735762789837712318265491733954228432018221638215545412056499327849626425831390948696710708960687812152572334034230136347672356414475683512247685585300836851772585508797528104041325543676794366650873064394952571145640193840100897141277466852008002409980737786035838897962312607862779381397007330380555042496512905173658050654031664462715960759904584905217524640079790915525577481246847196644245494348887104735093740153173615054508569881685603463131416487259084701118272131860057265179706127278419358450820422538970744132763029323386385917979493953550849067152780248220746167078511107105082318012097225985365557459611512351158563086962634761201378240551641986835011555652776046637474705689777424977073419081608942138687909172411485665134890090288380532035770013627417166734553108663664174144775374866208383820585868972061194672275171294851916360649841397737019753218970227572586703228365067106958243828483190799580376086003925785059086390828600711612559240336217004392535476977445044449984747260810580931894192153611263383042662194736666003169383031504629028554082101015360324068844102745790459657767818922038448176385975997688591546819304397424990715453522850076656841774543507543827776212024245982327998141649291315563344239396480555667773088935174729987979923585209500991776179499493490296192163587955443128278513152340087622914405415337209029657237454653810617934194831041981037070935778661916341240707868232992242916501191787891365188033808635166932415415919257597107406553371901874884074405083491908518186443150192226031104023138027881901306147247416594897517587168548388347307550283813366981179415445660027609810389704070570010609356921101524764736472278277385331710272328476050460781808269878999008651826497823734990583552160090086641955566449714320142973576578297310240007216920227001610940850908500005266431071417644883356049285656992182092304636622553280198178453308343488902189396175523272983422324358877698080961825896305077875224508618286002828556043242735349365060056439555498692586718654189927440729699611406026676603840413577385386145422084482763464058388161758363616446923100887208977184143394763304928708861195885108486952903906815939144977845373212597752822169175827353443700282272972560617336878366839910286442439646970345660643881586178247312997542381195940966590609031278623147823596957202078289947809204722642698181924771162673292215481650512826718327577488210591156020132900634509815040743417226825984177953945442491964651424154445765716869682461494584656675981667868399925233500357839577789790906900282173659805721406026776857393451295469236626346648473570397007248328877633927292768494039538407092269298439187038934499390344949032318872669500163615735903511440494756385495203753034866972883975121985993006725063296060341932021316639422088276011360816349390991021092268308182322190801370438605613217915242034212019395977499428446269129592900317950445159662946702662634037003845997085607015857090072498153959424953763920341885553844942505328384210709782792871523499601521486536644247633579511128576978073254454368618277601718559043748558185056110381470389330481367323580305843206043009283252326978962144257627809853598294505481552330520430980214193827772995013858652122796841468261647758115642797137032938422038054082197674350798886013072858064831477712962696566330630894237989750997744162740494709769197463295448611648193357172645540996683235161914771957460286633752737853369450755343503875324815767037341266853824014974393540967881851404284784940478628237172611813259247010256531589475127930919304424192070812900790208464858561617667422669852511309843936705824814741854576896633247277662489708704188914135656261555434743696624614866561990731125125053323855241189990086078494782827106731844907057792454227247801622764045303463498413057236612443955689069905214845787833916226696523484235469953897023851966350020507351416859803244737833617365111241705587515797908032597134772231392624066506376288234909380647573582693899073442211560741443772705885564140804532521444910813060865382688390102652131759169069163803563361083074295063034431213021632733072544476346214215750367684878894080083151071727937313527415013307709333748859959983135782930200916077271819372631417725433662019452489352620144250902787591003120027209900372210300947548532953209416633785635884427759398762181324134359654854681854434602506918631601562818493823978472722176836226245832883234971655877245013931225054409136615139696130098260319209413606051821874427739201806761165814014974849988892681038609696552315700953341676983641544437075198759640401121517997853580991635721359381136689419360015191788367444796562142562262044879139633181238377481252717911265206110588476180578674082509952611404019062061407566143766272157845460239033146961748840914730404706057734071271243032344307023656166855898378340167817098345807786695703720650913418928885997739660147812455549230436136016727683906680613041229597355566960368060416006755738014667244655053621142360073771173395401090783348164863431338906063269102216813447819491156493281964199543485986693059162762549778075368047081393759671609392759944121779592044690666599282280280731514024063823871596420190725777505585738919768690203556802851525822786485209781470400830697939636353864560537876367810741961201534121951093678300387425892686770416628563828806549896398154735578797824862857578236473295337120628585670922240688969757692408482897339730156159876552460987193122233311899731989353483430384576948973641760379283254198190444488744783691694046189575568929502984861859590684685393330735813318038533243495451044898155235965658513511066592333652389861699685507126477304404618687130477262168123682448439774712484436269793854474831419242727082946773549033204647736242384315347760498291369151609065284255038262749824530880064152253464633885800059917466335019193090407863244258121075535816587685713684051589667152120389097529277514247662948256778541545512747087054875600757830652482405084408923660954713772348439249868332025288760788356715758606958488148502971392034936131040657304568041517996633889725478222333367331630085890679705095440893310339247575353197876516820280325936443802954626824488555326553553819970973809723023349152422619732359451754708809862118342832863824425461514052949555654969775940018597923109583937848993135206023327133638019958364107815017215726888175675582047732010539599493370585179125829001962521228898043936150812453611171373711116318450481200190154461267768246806739313366163578680699939746862330621837417091198145989004093334616347538612852772568949814436049966484894675409655691055514172522570851167883923581996529358995212463794092755847900026699684187674786082220999336148437175110941813974634240119124950883655203357889101499076314726019053971678753434752050820677347509191419374328236366693045659835388000377520372683807243248200959478528854141051095155814997005471872416693465934612426640612530868369658403564417745972346521105377979749521166985537505995658765365990620647392536040713280893446898006105428424957095756237048499861932614505987133458405344196121763279892244121134014760993312978268059946137569662360354254995545120756272520048472901675717325862961737074478446780173456872634197464747647282414276367646769436436988649394797607654559859436260486763856723131996037507757068563017356472830391562896333522402103879686702091590942817513251443216518294461807761950944860009667488467382448575799077816846936675699525553057326217941114436509039492913338981344363566790495609101690090514136181731703638817546421347288672569189389054823789267224547025799627600334594921673919540899924140388355910746692184264579591807252740547841104390056315160889871971696048414776989744577734308773111391136892825550634597758636067509038939312601446629133021509644380706041894330052572251929606176146944754356173995667638372931349964726856464032916777025759480413048779318607217156424935355461669484210130504588449128172398312989394833302146621473069946056374894452446059993030187099038501567187903195346280126233896590952352554908786121603875701330284198916294381273629327043014479336802351118924682242347178765262299984804011812328887446983948718538374839295357016858670679883017445729933788984367499769759879772033288398990036828598478115863985677838513016886941043097987890422374366147722171745851390297153935322895559261765023036000610850839972444578734896964753438396896783814473096103903544999433732143117913632657415404734001651895277991019595751344153662978801268343578416360263227448424494984976775309565594484966793353379888865718115159286064855717717398103361000722461624844591846372204235058146622579171726550494359784087186574759378471907659959709045222880718026486556452625579686923084264517285043830432147416401989771973535134613446286112856507738779515442408621182961933159272888219596878286180547570629539874391849634845245359659424714785554751280471002689928125017816525581410638617638158207865227647324176965669802513173482614024133274431757654437645842995691986949048131521248287190585694342176774953587761733038446984947676655610787142468538665448905625621150213265241493450769826376946986025122115961480747149934305249997207443443082280176584769937204302875616341138598639121375785635559688530226913705675925068684045560508777689649236822512666869582606015423493717792796653319709603772390403736499811238039951675470711122386775403180420360681861013905798743562477261747221137236660445528359214114170697365501887135090889572747990241708819211260903293739773243853419944303133057181354620055415689357681838924474729923203268618887778567033346751326455625897950455901912830238604976739399347457777788730508782571809473402204015968353294209618968001278844877186636508374689230800060961639710019595058252057863763479877898289600252720930362139442555985730665764784420405700073278111186163726151548310150063690385017726449104268563179843936703330935967025877761647262381749220372431552756645659112553114169404455907628256468026710477278462417755051234704719563042139398492795095093029076508302689062265420831454882887105386217712130840947388599967241429986246879593364110093987903398944349992332123314555604073316215731270665383783994712315272960567993368101458912463955775172148485250411783058024503846694214224998341330486703171686545954818938376682422138384678722336197380413687800285526578784658929193855195307646450034053702765290662425417878088624706446790131919464170715497416278260857787019881368335393874433326192454785406575879110298615089439241395275647510334242935378868833578512349755909256784607560021865334419926240636462016533439656924175353118483955834990833896487772858722323690348183842128097390874409644800245451928521437964328968988330147666394179452669345690519575171069687920366976775607520604753947462507242250157045085757992884164807194299263002407194430242854916425837191037494398439649430740754959612511458077658292372070093482495257319146128214739132111870698673940909127489941492243159569235632679481780643506776979037936099997929833085697251974178167950611907642229402534719462572273373272599264223588898542299367741035394599145606718562352632031692483123053446333847249816478154132850927985146299352250256251604404035929824606215431987583421914025250829881446482459014224872830118841153246728998422451321345547105400547099788096952733076502238533600316449883600531494539473244491507655871445237924678639771520402270461820382193700182958069854057588079516921432189622527588445481281064964866837851253417163525454994447487470392927781405648556833406225710851621745737755797762576544277124742574684348326394637897227242820036916547725960163788293963094590014972683087448710894602753607403740159219994893971221886022343162405638126341384143487677180766752642792611947395214151649706527567597558281691636022948146090448687454590622610443834118421032817439650335357615018402891951714582180359218959106596755469014351511071239924150965476398465389716032559446714837767415592798191156000644947875122651925606789923257468228546311407614015217347793397004423835592807483391101547165261080210812333806334722028816672504454765854196270687405754285122776055122272736842806234236763895831448439348099278685747713039832387372729096054881828556925745440409998776348452539050868885294561770820487497501145998270019097543503628687493969659319463641924490966584218112078394900162676639791215058748452664808709275598080309402859657249085820536027963471344159849850370732924279463077104034256358135442616638697798689250676162626044411183378724372332099613221483200412457872025544387986347464197953132827752657518112544046425967007492618800237416040335170379344610081620098156615513226621896354410354187159032048351846646459082639834347229415541025951038701338896963443585173242120365965155665328819150476951245077729953475580560151840631165568123431157568862202307613521713763891610039796529890001856049212247464999972606258946028169074556495429086774529336758527575327610241511283227868542896939825219675102119046619114900141157426512783223652487256564961033041475815770383621351754855068532402055918526563964069460220054467877256816983607788149450450162046609577793973565907709821582896548371866319323069670495235665201764282838105806138868746426663453281601878011751577300499682848346206012936824230094884674556794165278872061262203533178488499712809968636713831665368680632829354840122767226011482938120116638263385676753899216591179240376894441866753244204834602497272663135916411425644649618288093801188560666126090505110728279238008159222632270634830472802965517188235575033149972357236444728819414210193799122074662806212056483276280831306140897322830062301180992512098607793392513366529311151475688998800086827799518180877685583308115175695378766981734680217980372940876983336808304292493694985945767558781811482506924429872472835351966174496961419871118454346352601943755307055984436463206296102374591875700898007984986174377334544804002794529688516173091757729953774721294806939554347063696605963225682558380991251701252299583153363662465199477059603500472518567992818901798854079216531624715941749272224060062854136318839631049239623571313800806987877466683181880287125552306909638334263474166112739166084729524210000492433012488885959384329033901525231011099246423931016482657193783919357930859849413405635877148902848291692952612174234213834704711331102945326381873210475195446337743980362651366546575032267660701060915233460706971397281580234856246471677907697049825762911304908495341010262213945161185100738384377664073184271304611537957362452894974984023422324687099051969744893561123756101262573000868623138393052453800125084471285530773027977336896946237642407716714185403771335620198570038805870968693197363528625560002150296946702768406113952375530778187063867649850483570082282461946441846762593035240984963215902316027487553421682669211500170002434913159283612545694180258760873275075911842469582900473107144036140437230729736186187664422774326438736545698007853874142362214688234135794619100186725577824444091464801329877476288911851716894762815252651581429910412984955248591656382843059614389029353323673990591808929034605259430095994742135437613162204652390599464613697531950741168068020758267866253030553686984949060454390633295849897180002084958744704795645423874435153229011461054794190738821794169100721714987868917079798652506293368263361440557826666896936760962078391254983200629401345056853602747285705772407801751486145818472925059309223120243035919927314696454828324091896639718131440860081600584399314560087220541680728509505046430817658633105201161340535116524120435281000391865668966034941895030496293146704625969504351166578933506521594550441650753869183662545614771866254842467542981495776345819419904688235403958897028837333429925933226899471591074890035875769314806397012566682751325037701047524755674569744419341685977878846389970544452311659758965234933912001218620896497194677958907051219246925325984954880636174243128508162427116705319998079336075341341898626781853097335590188301176229496925034087954804587217836855278143569746798190880754049734352224121861954717775912340849775564359832945930242368617610212434172464304933911093450468202074894545803663270728066941169827144111513340055469489717754747434263285381776712970923344137650935387789273214907219534480091977622910411333152375200237297771247648910571926410372900645796461610176577911359382931695762581502305305358681509229069807396048578975069031477976215738822033952582638075401199453156478679686256536696287680314517857133629981860009876420076210056377568654272048364060188315314731951270705137594036363445344189946221047749391932413517511381703469309134375263125314199453273023696470213567191097952394207018706670856980623489271132390331049014532240774908853725008771539126880786188299037297568432678766836392994636373638042758483247149582448711981233659268752956379138208878325450425906810939242348162198019919247070108113525972409082099708964053956264142969178500982832120630876456214310742835049404903887410572007721370793800410869900001026275989105813486616406872995543104911353106402707741755277281232865217092777497088645284026111690340893992892436660906433999152753661009112537837158304461366913186490904877923436512253892861613771079850826077105098205620998361078887245142475600381236533688945786068164558022032069776128323687327002490098272824415007929221783781479501159885185006086807580718683949049018168242022216536639573002134253503634692945938080450004624304632921235005097669172507451624581249436075401122896781357667025755543943842851238777344867610602381087902863874205161691027681415561822031847977361078177466724713733827234838505551222964016150281601291135471077254929066779189244122341646443317579240150966187621632078647520196454186120603054347259614176653358934411771639647614650467274001969304278939547327551505581708801286055022446444367940917937855377711362732754188830662022041771879208518766190947605427895259604611095421424609149520760675318001030832541458620400387267625757344177465953298636706246119731484979555266016133419746825822631194530996924400083870468895950816674694215739862411986197950117975352239774939498284165143710830956047685863244175320517113404505354138203910434947106971230639995638749842029818586932098694559213867654276743261822651784916197441756418674084118471876209701498792934273685852644290805872987982934436090709670595069639936644821696427534344308882207947843930729231621840922575543124207036619536472357168718608984120862681041372999409714241435601969578144586387558186512409031434111253538367845470104902587443018787555799787576742309428259856498087904821260930827917218372435746790354336949285696495171545451605504612866580380158331386115515232275385076731300296384251208082383595327904525992923929184096576870209167825053169740663525562813284037377175157141842022641293501231270149172524188265875306918425832368766266376900708130722433410059746547872684786023865301799376442404868251367331692189262769878963971859634021839108391726704050932720517597778584213805111421643586822901006145223835062904182522146322830412306017828080588473147695110333018702315960711692016433652452584997680120403531001414968699912635938855317982856567686195222064298477186031880756112850828448026302045499067108311163738421062899584985205444297775132457415116113314307886483173906697719917748939085654894812983396552818431091651166597799089335449292593751488938143122171671059843138073218040287391724364420872436409902356530845291680240924554032527579284049787245282015950558274007713325342959079814014705150928960569349444055629237005007367273206346756988535577738095695039790014566992856670785493885308159273779794628598416272049375780612258767161091806748804075329208113649772536284948955678754101363474141225135836269470731069321063978395284216490176581261271952132400252283761350867654461164910252372892483681620296507145812993011096708765995079065794651128178687441901206286515324082229798422341290824138946729141049987099526929542947328918279242863113292846249690555019787593129525096614312587023340594534940379382565550513707342222307865110214538526629292775171537665518352776877851171041812474229920181455832152139905819235238795666159457275949720978932486101890469438988795851945411565679804057761834693388897194588840885666705562714947613229335788534578021100380183074836793520444646592045942954037542516768328954594227381406036036338135045365286387118648610053826055883540743517466034156513079281692230792178060885807418597986912061759177221342377779922168317502338990599926233883759104913325934344021461841441375432163864192430097105370932439528014188940570940722010683319720950879528180116353825796680303101670243931808975485389557500898466471306416738636668490893431441373131929666837479846037312378496793795096425168565780300230112582919627424655975823755208041183605371084412426805386366710338537989783144810335208019085146118667589645301062899625982799064082040557123003791841014718650300366966019537672479785595244322597157035948638776239344015689985320197586013534641739639749323721800331389695392260378176723425416123362532727477108845250820005895077050091817807463392008515380459234757156705722819018107251740097090000126304794065922534902124779903353376237060199516676133509329899447478847311263156476152733277967680041528134260657182705082630709643550184761290195568918814317484812916741228138510573355964648182073718119796335164425521209008604256455555096999346260266480663878221734798706567450792224360026370312318744309885074666976296609548402488877708828764565754399536455465707130986090040279562781808297885692752878678445950955880397557186939508245996473623517309045533338115089095360909113136837977948721698838725126891825035035922320338020918958590775685681433781132715258807477299126681279444403979270984790995827904982377914038043791270521755752548918232822495971501086815981137084230061132660297884070873279745687471223218523156173921100528713680684765318421702388792839879257278297978032618370117426278624727727847686119750306488566484901253540978925861287802714575785401082712409766452279674173539671863744305727137956829235334937175475271968861182286253819759814660378793196817468537936106424969199358430421534813660040814789659866789259959651259902134796202562126019319778827369633219317809974438066268136468104432245211966586872725445426501162345494152741908689560067149013812173622412793817938233007244756134511961724991956267914823234418181552515619012134937691771726367370956040935580269515969592884925705601278005325004451973067283256717006459234024111411437344132155740075240125067278184044444541141761877494640235666183012437784162365607110879364687037345722288962820938729288152592003495459674511751151067901388869822937226559259253964232964417394556656918292825808640045884959028829988195327215397519893749523128126708909417664772868491301087849578638146552533753942989558585242851964244366550251943424471675089982720944967569720537161057898814958033216778496250175780697512785406385653440056809439405680067043485222897434509930484489975816982752831003740919390109585224502907037289791750333503221946874168773262358495805064733764486848930871552204405346108816966914571542615665699939732278393786723966733125090673532870698012203471767268442921261376120043889481352278650160111064499590778920539078714430134497445773522475533125879570370662656764087354905917553577305461071377918654794778802771034105386477141279640017069062016070774066566337273751458893046093242843325865190464085547110560647659919246438535363718377582955860944679643233303058304878638610058845603517016816013852768410208284668167947824700906845573891548512639043370565982333321063478256867174419714523623105777459134986812072726645150925917113538188825722557424215188646958872140713535972821859317206856716898716623294900293837255632546494874111664786517994902537444071674534020080319261612991761286201735358342925502246506796955480153365655740802477770323665264102994103283540882105079377142140471385676308126447946119167364045658346741854429245176769903199160184252259181312157757407246463051194310189688636366160484715467411663283457866734041811067428869696402468268016497321426603915426576161150775156838653610195294324915921386164967148694764072559997204560270581498616620057834615915083943889867315546078647494976465685694545162774478264922366381455185937892197797014181564637915425514636585192148527511563221574051003976796396101945561822661676357799815634296384627990080905559745314121181940786243362488423981719197450549080602610104008050019619156004043122262777647798763255554999672583521491986036220635510707053413313323041034167874225506557881098995166585675625337137656654637210714695354451760827943641295031653810131521371502936981393525278615969874820521947287900824873943147787743887066968417615739279687701334928970618047129824141709227755841181989309787044437716500777514707391358845251813263025203521454377775007510704544689599399198373092570133687856376192170701315430705201050800312158955949582832305662818037750262826830190837614802940403506572301644901148619864334517352372044953881408322212952295267640685873782812126950659557535284666519996614338233327866714052713919998703111108667425377657090789201163811392233853756668896091495164506572347645409994615482276216044624842950653992850642813374839967108563142729223235896410313468304264112504751210530456865127521477984234124250188665197765583706993479030139974108682422132539650972869177808108860826744156276610459765196009618344079991623445403946037145458980448689149091362042469527216006595045735305983802433058573535641033007710722190613002394349287551478031625595715772184399742938951929955601903588187761668134777745105861227386200651633029606305395939689966435186258613594500463709932488667297870241500255384806494459940233293582986389191054650923082182029604735294336584246379516336580916159903404540155654374692114600742434658456522631989180269416091136715106271865789478007372285952167840539267625287740412094236562857889018179398807118404338105218606317198257801712976146482611968138260284759905760247507360026997359167868481460153608806724327923207367783454187388988121777170550981184590108586821751386486101370011077490740260171890368250733754392305643629302828763748042412508786016518750270258763136385258046899961512667141194310411777711360566265971419343355104413269869481883034406864100505094317825818863132926965129072924289389179033496769445258162763408365463103966744083585308323446828888394658560320634948830919103746048081902719861604719169694569521917195992341957091929174080180618965782052922883533637619998245244848621410518601236408308518539960437478550904155773319900921988651627473324603458264324573800614719973489715384358703174942172598395173794452155111189876067440200756000882995971300675119745696360424649128654109348237921449385355990013531318389682174890600778497798368932123563016460369986491255161467480319738505881660479181229697361575886703198701802837076177526003117715657222837637515980035096244145101012152039478374246865648641812349965853675654493008033467347267047513524673591333125834991641905214010310108796000398090980787420680703388321343009070567808336507480413399938061912376060265953669034347273030651278945852561220650461632144295183466578721124938165399743174268976064067369246360516486034319904509953290079877858496837584647533966425876820779649911917168535305898987529266110191695106862064957751412442701340992112266810338312352175494008015149020306362096352314420174402810689518922318728470946310394458527435044875023176083124542061359185205550568798901541968433277815693408235514962296043429835873434642897100404425653810296976413015948037059964657590471051725966662184915755990133300274582169631567342908295932910215173591030703758991292330427655229467112736449218658229022998779209279188644547050984070837723319641024226333686405929796732389437374136512568180057728717858448031183897231488430070110406333009948730062259101353818350687530480743229298061135217702050158366915916150863483221739263372757553431521510533489313897648904222351960877996394466984606561795643395939403148548908634977009788469236433656648359684946314178614485909230260595119942898170134004358831749303349819180566783374184783302881755151834109854168320041519620516609387763061981989258694167546876995793391826710805649722048488543245876550050326629482076479732804591397303589674740208735462676839500722488965899667808735779589782467256371671590978817319785197661442719099596518332067825771533395600262757500619579929824467731416849683406185788743886728188860795463310411696602298100499861790454961962593255835307477927067974489715792571216121373031178826027103549729988664970661161573413292956830046339641147623496363622111993588863730189090419763625532216196824859378863731128387476514841407313983160385524941103148931834260323544431925705188922105962669518781251979781531187053199480627806157678564286343398134960386505157578861801080314896181305979252015693392946757408278026222599584707861658582046775295475068905824613659248159883013343005453842530751990612599852292089953922522153057556495040929886130565162220699199695961950880599423680106746461424510870166778858417533244469837946582575772586090666836251923451018236202287870709923714258662023118227328432243414068068723456958155750004889189796116900317668605181350382125018042259732397557954993475061780736024974101057819187931106529363581426588564534438016958032437225473689101005646266562963782447310083515389478744095043528232956020334309362978503186916437521790488549271895413859530658568785639020928765152610674633721100736245970096411460962420262997300978761431271391386119984284881510862531519349777762593331924536576711379747752927480389651526490677700668902485567394263901074690332720128662037761727085324507870109250237174695832668319640980801873548677358910220153164516203613463021859463957805515919136166502775090228432092112394782875819499922032253450811650493463938012466960279027573545202572533708427732810104384145025007455707455759547583490808868998139765851609799211442045671314833581530172171363807116638752997699275611236524743711743179594917676752715127313534824807405452004129190617493865918792333939258414077122970748091672297544914167454626915151451639726768258600587811958998052429000593374784291782105357377941798751570829307960635924837555904749865044980986176955773368518376452528601394829027305037993640088278708423615680722559845390674802649524158387281184542055967570829215382371861482088182315720602187815366516697177862625404690158629957597966028869368885072943448388889605603205919799290064630882142796023068254810683774603814740112541833425954122785235687928587762582708253578059652572028168609526633492165454272249668150599079818337130169571321696885126066059677322435235541751449829762238425961959384272644696360257500910140797993816200356237568058740237677011407746669111041287884029904566950121225383506436685740126454643679948069833015683994656938415149575584522205868798251206968492987848162436816429790792844297197275740113691612468397767904938852648840197717213715273686371240756151455579769352620438438037103939728524453307393761117157134233078183353972830352434927534762996203973791571025233363382253495512149834365570200956771653334853803314682792045608789314191854796679289755734681586146676772000789009341314522550546479816095680077245626997601896403405615699710436283058036314446328059010055681405796884791675575281327065298666293293286426451107241039495318463432394252006319641997831621293749504999839466434809312699678405071021436118486732924643739666427067384289583477205380633997497601643366017189981658708857518657375928839860283958861811233105951024690459198432460429461646916046239313825720505965095513586163690405985629856916104945300059416893970283763546453746735719339846764203840955240177665809770746302039308217742383810237554893536351718021402525921283853550196023279120589580936179983847855686698103981659250850989644712202493751587237480756043645049332995614638134625301190471423039718972972517009825645468276532017962955773591709975616872099751128679106107845661556251496944539063151637597583003903602063568659394968152248146480689917593488350114370820737661255725848528256784699776809026541608729514872515014019382805407363677597904484372815416559791940133771555958228072001542036909542899236920056675108842960252348865932745362615353935221977128252083804390337194068285181999749847485194144295788139321575340090574321563481408745956829026659067946171646108840837541566556032744750449489950776018250799826533773473046774993242218511479011407344085982998006290111816288224255156035006039807124072273265909060118790065189330615815538019074940041837782403080583137558747324261065377340670095121711462098699476299352125167733032296632060160965608191853469921160149045120804519341187236205783988860409284493246419508950997603082002819038329620095663305603815069285419947983660007802066133107289718467576972616726617045170254755713371144408983404688102707038449653006529322591349880365728382355905296787828799113134732427737264196784194933276653328791617621450939829070120915719375602548901236986288033550333068330464805501849064807766425728307767716941918172184677951205259217253837364131817700545811825805773198824075765701738451432489553787961600497741673178318069936562628476616376778273451588927177974588234512416125658639680907089648218530882561778683454464237806574851834643846974953949151006517399136592041513337269439366590165425135652796175721827326336936606722280047244984784841872887481077182001648351065092302083340253107981820265170019844635298700263203943401100304271039012632875144402278112286056595672783392698660861291153011028771700772675627989310177042315559453826694527598373739367760085191643597791638131017628726161088933582655430243519797656152983620318528256026594045588755619849969857533308749776777494984909444695983017197982169146739239959779414543370818692939916667815442814929882743728971950814205811158936549166006514870623639456754652962648584708147433402033377898628114388127252261946197128413945211818440568937464887667779853890824900944789016737194350496209125916355139686738421335509745468972214474037185368037743532701798725123595218481122339000611359554119475818338509748171408078986482681986255015861926099673431936873860133465882919353951210402555910135327524034747108088970923470492614675064962239431449088494294202818813483389505005413195462183410373942689587350320767210701288588687654673259624913948414680183880196530139089911351324238460397858563200898117897268197574188875260869254493386571467776311042238934338074761850490677034760928908992735719998006621566919412478681442680460061038018243145822809250933267902428601528758542837802161320020648877693602295847924994069257924838986842194311923777722519787885324994159705778064998547775735731179145770824327402953256919563242569527771614008825849959920583209513519890125262288883238372235782864367110133618563825646311051195165446296867466525983358023919841950761030788896202186351240995186226056098196399388879512358987463743547193769561755186744131574716591759819871717794089678938986387057135593808813673664476401574872706255481022802384432582508467708783349441443581927527732147569483262227390035215802834921135046166676531435175494276262832651516749643994809543375789495371304332381637219252328321568315529418508326764911435854911550617490367943858604472846490995119212508333767096279229565085487786878153133031062932774870532640735898903424052688528952096229289083675852043416632808502730779550565525433344915998148282090965361811044911426210759256626199277785169842824503627265814523456536680874498094642316286114104152315690172929143943230963425563255206299878195211369152557492390617532764512453189628249741023947709558475058795581860200451399765579000966953817399093419828531587085847133903801063478081620534863239841668919725870964768256166803963366262027731155739799388969065276290926310696848729151291330629659781978050644217513264633292579300566896506046800927600943824053025321394020362062374575018282544079399131561978985265303268251155669436441587906011949897194751814015674180410516449194482348477437021795870221847509787369687137903062369321480697472965819244628081928592653521628541260324527266857139235742136260090976816643884965180312935645595788517035015671121188967736068555679864812763411393577260029953252506578870653824641796371094438381356346437696260612061446186518411888731955965730222079402013838839768833167130794937787658432633234340699645084675117101763970070091974765221645885066635045437083444680879075269698692826141625294572959806733125137123437109588524886999523527076535059987702074725701318875233681738955970025089049208970075394851366041912464127759929002186598765402644504192705862637335089738232097994634538968275478545797131098844741393645261828561669994669856450304879196147389457666486732606428796400182716037789714940999564978277933685212541133308629118384691805304993054864262291671110677646670549812980998428605023659654187812437904924360924136323790752170795313667628112105606554987066127697741491780720464596693305046402532138302421678124366431471927371938991135413488220657837126775042214069605450351511488399262269189111821678958268681432994754578542134276523850902071297098419399187090360967429527098554784528703780014963262746718823978922610618122572745228476929675496307213172070813838825196547411690181596165785804691333635441195864706889384920345307069599625207249283964154949641985718431249191732348536904585037455224651050751699324410948616340263305444221572291509542066850297563817242882992477155401345015243036547725811649331968574905707739627366470340628753054057312164038687427554898708303857856561464829740056244530954152861934600679840810924405585045578141905493239300155990668963024837451445813438312839380285310574028076136265447889001598112411923133226041761375796116520822832175110870630781310512782328162379452095075406498179371862509464192692736236061030842275032619868486144126200497627949571560225663257042576678067817084378327603317260393595514203673107687321179326280890153364264245188978119656621726396501120157376444647781041399366350128648318989964058501903546179369040953181016264903870317294457879978271632398701509251919931591246056179578568638892355197352886946345754380914865401246170941798935094807146902861654987581378560214418380049720960316370349725250496086385779370935619599041926332886735513492468489288423177504089454276015794897921894928957702176614722369420944869410228382417750995195170598853649380696722022854121967200217709838348998850132405058404260767831385768201820790025769265333783981237236768140856297317245371513587754066172268605436199457692754518037721138995660898801344990364827109310247747835550701734610811665008309499241050255553645058222210909798335196454022595015891688917577438593222103489578454469284094439189658545283479785398119930013567577219760549668463868985833707393835109729464565190567214055690731477683554135238679717092285697181839677508225020133796093113596512010797183942267967052791449422670493515619884456863984266947581668349362369362785481233810100023174787358287680633125792064195486163142224491576808030202237419829229909892413717530416395371839325873921008380993846335606034665258831467869600761705445723538981394062157254400789032016835026658569460654913882123606110445582812823787045594353423358070925004601142219119751347266667356375883136313337283526191824301191788128786488733298454055686800988332197616678808409213389516111926496151065748188106635001350315602277159071630574760123752003114273592721708355573782116567199186298922189169895241534187244147323607613180882414690338437004672260211647693869871493720657748069915742908796557341555980293812866448150080073765667705907780128843539556187092020978410186099421865032353918438751136958743424060141852760537306103824108579989721551236538234294429019412944440465217129318816230023807331477373820814112605284635383972518962574362422714953010001813130108346973600034878837213307487379455595278192279145310788304447940852710390516137376283507631641808205517963292202445793534919721331973240997612257122633131688313258023219369984084092444590806018637382606287671870239700290336766700954193194635816723805223137337591391793861622890719429966898782541885858825490956034929916626877933012117201242467674123458163957087688614109849316779743609331040522762293876061174167175020910511324856665512654809715660317998685724317953821801705790239898859326563908412709813229127422027083579617028362870275076746327404755070061128470342841729609428299246005716150050717494503740507086896696908457914500433237682153689800331812017110400571129792325445758057669842182993405196478947015340524069299818340024928738384979267140242583673490693840875662651730233937887351950168528026056807125020612799396904015173356004700381477156230457135114601763295037002979283320193225370225535857458712980592027403935089373967973509024844431532647405654103070862980640700753064815314194159365458174609232451022864542522845283794489554658596900736991759220039732378142375016376738311552434200401946545549683534609333128201985887374619598217223561996065433976100850353636238345525548719460022977890942900516611105736442249966720706682338695853892433106150453205522601972364372802949478319722117152863034127322618431949914404067075212438804336852737956746810316952434550165587503839172800910355139132894956961246935890147165587944434385157230432919871920910748336840223478477473874346852689000233059889078091415638135660656940641142014485085642077009764658476130418595328233042300164877565572669520128775921811591866413367440476116434912138012421204339383884658024679510834570167324732190035131457089909588616591730515163268077744286982329886239265745691044046311457275521636403473020679039747152409969946399405639762115537196677835153349977354163212278854422238750494474960223834134973362448077142282617425080474565359699612087161722456106673043329024073282427986492973784864816520848015282101810493148748851080689121391553183484144134528857877814847001944537165715549019957323438333996932455213198671179284802583034260131600587042098361234913278691008498745100906017805048692171355160328250688052899245901628259709388145306003305136553346529494021411588767685278378570985945575729901764870823552667436859324559138552655360965736712398395738154334021428423301025471889450602745548921194791077719695258659562847972611676113297800775065891368503697342223055911536686765527254564055044194329272835073415506397202042153624651621133063499703585542455853114249542594574816170675633924238037987024993932577206607926249659777691056287528828307382954704038870205277839894608944363187251396933110114282141482607375794892585161918489323986235337397637880815390249554968704635982818664516805956143018255751802249149348258193206872540547751379356733047606519242807611922791179817004908616342876403864649069349473477691741051697900915804567760113713761095613104194192371920137617165479558305561132021353782681684976533876756238789452251099760946070924966747108470117639253508837493884135274348214852200978658881834918389487470104496713456486523338132630271508526507696675377327780107896709629550308259444589035138616445016370045874863576955950128772320949567203496877524042438971324665362338064705197228596162089626631087491444465318743975862308819509707415097018852470990414467351363822745176893826955514537000947626307718367915277990812080786211770397263123858990731126135923468580197796747468897004393028127810963409108425929777772719394589374981937949591977414196118914687533264196499097148998732490172666118341744241378973155705965456705189352922572339322360030276272588583583460975544577460991635507776258342454582670225318334027969705057171272699500648335502301122387327026696525016217051437354702289584253557683790945701546332918886829547724923416563418918661847475497935324369326259224935543533167482055026946305478041704145933049739713037050734426982878731923884592930537402588003588812233801073780469403110633509621253161612889422463762825655186180497639167655916820097284495882652125943565497360727093590657181489272619644728913048743708906527845563545679883176333632464293908450714894387471550800665839802378377287758326354891284748203107070385270825411530692601792387598762176019555427179618263336943959609520842273641842724077903156627942518294295473801274339277691676877905471563019579849940524025464214321772857586243165074868446697768316789908473922963681275391506278788554748712680762572640062579473280665886031414221620605179813283257266544765030173467864168376735946944854583466215581931638776470533182425363224471393810732956688906016710406891358485472170547571544432746361331098395850755478349194027135725146930298302963887262754235464051363216530996074852291839735899503902779643566341150899335066859525311263155288027504023157787197260281645185742031624394920152955024522141603070630703972186866496839970214602002756699212634368523401738023466075874234580361684977880213706058807705889915879563316490687188366832522745248693045912156891979013286845498644260730976904151014187995458976543614456082677049624719367310028451261812255725333459559285719849913593343223071868938470145860326433064914746614973019571344793857983210640906400049298746065625034047471133947529128177333939057416882519613838153106553763238798433708134145533021632463636796112711442138295921478648754354236980322347038275732805365820988731020896561913815505157804521562027773172883933704599195132881670706454952455341562091255832985208867819085719970827895789059622706906519961532694261493094283884722282052027851959886412812032715988643173917771297495157262933559310446702136316980563700078497444793042800120398680158237613710999159411611972146731520040860225252092618675946050035065181861511908234882848015229512681956609390217500529089771274724102558497744940890010563543826711072324007717294826306832207589401973055952075562802570506909433680401330158030695674178099363372874078009499730730251401994853741526701208988162795296220351435767533127895763807218336483837045135109276037774679308037902134936949468639113578092490308152696655431759058715026689940584873189274839758465552139177766021508160671041247510034150149888940595228872814840344917185055816432257748035585038914625175710542866466847362690836117093408878535655696703382172651858497232351279582819492210768066082070071211945210276318470807777060656939480699568902411307944124262151760782755572284807503043448980526506314438627615609917844840052190492818871505973799191230534734731009871481537300375544819352723014855656632843070541594317498952697453688652711789850428277112652665435093265918972580390918452028262102218821111494011768500240046468442245272787565167547898429925025978712584653687803621451217562875248871757376387053646425039338577463162446212764322484641033558071815632260686884450943076534575969103275619792009638117556518499888542634631758510287963573784933507708893974624851531860291969037697049515135983563932094531854100189836646658892486442839395430502127294259960840777307326784511350343722700487495180491976909754946916385276890681637318326437046031883543836390836917731963983286391424492857039872169887987729776262570534219611514836017572321300564460898354270858453440209466063720034849662285869128057246487011672598905933222463356744788765523061578337805247117344949457675671546915150298325582572973944813471825887908454580669512949881935207238899239006691688248011269527989744120206069138996506614138584522573713789877479502131441954944623427625534487602677161633058299069586042423264727258761332296803480508526505990766135408867226583795094281515811850549428700983546473092631386156103241758266839991652157966604262117513090513589889064099645364838029276026152823375427685124734750101727474700780273654498098245556230430209296014293439452965897435909994629574832420909523218028335559984141562527680713002257227585995359476240753813059693516759448231721565988495444246775173799265814536132269329871180204341665617707779757884112746505503896492212689664523634244676146098111569463894948495361508969371853525468162545471327290384629279474493263313785266587170530352201889335118798291965259731810674723276852429809604686390495927438536884287698649623125944938833379106288022002791186146147639471297336581338833015195459676347287955415221455406690843847628453000067011428916755123125059240841487141201078561468871333556885854074831407635556716385897447850577628455414422397838662204486904663707671378932356550963390379353093111544440937467337283804302470293330973976356467043732094164351258167771510301584990854511349266910708146281977361870736073780905118360374508324888419569372820640014361679375537123630418072910744632785233601633329452547974241867100320630726218782709784532516723596356309173565494512516628375116065964081997324573367511253689822931089583688252222279212223263346527699453685254093593831051425014842041743663901717334332114503385823500303879030035614019958427917037375237662966641348277322400540031794342509540633430046341418153226758738105756300287439251898234158477987557638496454888824195118132195677225085846254001831364106146996666271985619034342228704513576722587035777475944662368668147636949373307261908312757989678101358082534433753673397899135845049911969290641852753017437155444541789828432100386110973873130284922933316855002274919446605057625348206868354881171336515501710622188794758807017804001300747338016677042360347082877662925091075195571131473672728877469201365874509548098132229582996532167911358074360143949436803650716531010749518046243293242385673380682395376027301680427550831653731483245518051242863669733176219431389489872587228764312539951615460571973756105425699953920981452063726935629061824415218158637244202537249230945548114423010079411288170992717309143255535251615332323371833064895701252428010231559424562582716721191904724162934202273947768274065270967261931740253594724515484132629081214675368025237129034015501781800197211606581609179323642118411546172223378688931910389123433193757905765053937457619061428951569212045982882856097931259780471948015965291877807404487432849276352783828607638612392451710550491356195570170025094193331057829648264901707948152284873364939597088595870807139709605032947150774513046021257531027456106587839129826543825772887008095238204690555889247383741637447927222580417763020508574174061131599778843484425118775971921519484339561442216228416051412725290575001816005197745792139344338332876623826084185492575184348940001454856864167634145013473043781777678346583329247376830718724048374345006515840984930152447528474352410042146243102632291748405580649967140526529419117800656631356124497286764626672862801302125196294348178766837651145854305781956184321102414483512044011100393168358428640256385345425652551315451438333089992202966325758876992978572275167891950895436038721512618510667012964410833257886633467818705690826890856761482954042815116444578402044264401889415018688842345081978601608707253735671146209719051388334535675014882134508664189966182456777423853373123282238243787682477540349749789464424005699049921304290336338007658892134729398470200308867127757813721924317727733468054133956720244036084930794499841729374098180094941823514734825446303481164107772770191550158195539468768425647040741026494386352475668286059600658976939154701731737666925585433040099760227386314131563587486669630883130190486186643388591483055230859448497627118807577302450300738594898573770454534743608431972186989788285751255921515960883092572442766743898629765398659002457228126059534985849602390431742730284289337676820801141434805200265911656918904082048083793115368531760095685668720687236851094442497458763183302733995424014395341227133089652629551986150611787329059480914204086805025098790028830941989616795593498656871920889987901079476226521604618244245382066645920584965760054619218785826525430888447374377866085308797819266209641646145907993091646621664534819768021849049286374068542874925439726552655431762976690538328264679127326684976428782785724612588409418019843415990719254472067613529040407456681573503738909936932877068676574243979810623547705149208126934436276679531209155340045549250010585859803408852275752930926056124013801406610449558465042426533387811086321878312881152025014415760468148488588279076019082842843379623630059293579783901268369567838808885176019726887905636378363925405573722840291099005796545283266564262411852296327506036973215048944630934357219208502775608845163843494037979272079438606425749822318953716205695368708262558542747427604957508757782899158104014116503885057464655276148552414038444802914875215616092573905919660155519579264835804192607748392988557326940613865726175961483138211888677271438799145811076673302361617280363098148085042408657254364269026065232619882159475653405696694066189004953659481924168302457941882231439531878782883968761737608049825918214661521053121956609837811760757624690234163566683151605073494374525617122292939746670681555042402536842657067689206998241084244632387413205652518951834144163098502021848305586924184502050961693222884517698914833818442286204643602496248646549190237570099356340971006715897474334857111424480637306523900524495922250800721748235269017566784908264444822497004724187719704663579930102402722751499793274758153007164709023348794776803749016653241673947604898483335253629554381761844471785052825077107268033583279178671100541659327460574299077847491225203620673400461672733198421917667032390940668999815916124993126368434818812505895830707774438515716039865077083237827799285420076292090289059933068367957927695142325794322481123857998735473638738571965925562184466767972011423154044038564041805311769126395625542098147251368215039002678769966052197327363452252448461759768416519184756804750152088575051376683368452054085668308641610036305737622114267765506513851604860671428182720343917054761764783999203382168930636257548491912337382643968390418279019512318719384929113486678900127438739110934429434040862790293765954899332215930441517404549790181287276552108345399167885589754227142489559689783403178049729698613315449526026554593368406474010746579434403028589762155655365797206086556900287224220104541274179297475380109283698930774705531560978345406658070409193711316289790374746487015442772164155576913797812532724289955965041735240378204481636144272614583025946165729224378473336564457877410337922343701098292805827089582456551419224648442407896361315411999700798750709953427245702684139628371185931073680440424993274936152507919462332360661665698399082966296097681554168518701092540510500639098922231431024412226474159026440256030264627238371460532621478362859697418546836132454651485169564440084150554228456197697002250714207980805715898835251387627387249415683517107752715715080936803654090807265365159703157054982153725949520023988406975996408381390326522045275002939702173134466144636422887614263282722768011132185030308602616304269287997761491492361037814539436129657773396083046640375344175460088130694607725017749700162571834508997414442762209799529355845549721946658705595428426725362948416038830749381675174096352966500954392507902133619429378127335354458196018144454202177025940161707434978792143915600702016427829720770375343719789174556262900007442113338412597187728365761026453865433407421027584403493386570925086683937358783267725759664604968687745157140257688379094928448014910703899958224732836967734599379120024034484169207131092157604059465009662342900721071832693027507239693440388118607906053591922393228665060540973622507900769705737901422596250620670987081893617735300874994778189819847101288191825826353608993376638400779955388116205509201400731035943274049823397796987628404668783216205337131950150836028978316821481586642319964496215717737637272925349997641407792644550169104650461641030759751961735271272472669888711763309753289887416051747012967650109675160890697889531379739418722117435075933966061870733564263266657008822141614842866058626630083873029318722698165481676294647736242209665909097559930088753700697236483106601928480408410928867866482569040144200369021436315113791872172833264236375606545471498259785811392584412885920602374079666118215736171701671215407831583915005105916235134618308993690168962724806867205963049806775177868129776459765647757577641778443671684322346837186790308024830972296062536756746689521722646347145408380504576369319305535353704327260285146689767858399055935143555110686683240016929323703113836038505262996904009720111312008952575729219094271588376118974260075937274808508744857292953999930155318674621669910555828818310627439917338987143422030789534278384657314127949800103948058197445798739859029720004578934253867272977564993032883969757173483388731105576347033857856821550414559091634481041136095171330541754980836445869371281827827814830695446662244862224683307370430972664841606594606110185750244246401833196135150375676112655808525995497956833846693153307473804099691827013529158708666424440638304908997842372012655064617723973298990536962240495412402050204013732423153253311984388726486705528072773138235202562311265177579911907688908993975230312968336096030692060594026440735861837385679069283710139114889879528158241494667125598388021194012161202756016770504500111590706556438696624371174803162732536362440333808488829276859011843578945898920693802806446855740661668849544966563355926162659023359527934346334086083792724121160419619083901934402344062482769799137257529684443978931786240699802566814506453862108275264957126082918351291464611684109341096070315064117385289868037521019004262392034173227190327633631574113551448449477948100883692756138591094699053258375809456073840277546613473515344555305837760364488328312478691737626855098879547445877350190733021824933135760982999797092323957339556915912459314142986635586922023823671160946250294666617303073429910011818542400484956456436479305768668252114431613534242086415754412399383767668410496662706835306077726041534970208464705028268282261300609543945409767334295293019383506387915013819627538223333774520645970807641079719218670093312878167613637043359478931908277264462029198546885639541684483071080709514418254924529024959602366660654779036285129110934400045192318189321729760150781357695629385983396101208382901437584343263755624898475631106194429047178227105066817266176354696334861170640289208753327179074555340007048153491584181186099788676607468170866327659698824900710484374784117554799886643713021916991948591965667285817637055487475862481682491396801586031825696156717439432568929213952696946852941342688857565849828118200830556433869008948980131010049418535431187808479808314405043528310433639207542409058231425947800100745342138286340298857771273148315864037839883922485943145728643359248700926232958346658617391884528237598370531180302491380714592826958312235556252369792543915237792469874080807916724185555715401746681533839886302250302350233110573544650360900743606611167595726307653719171847608978549491354429700348601007755047336669671016172334564832013477636505030482008096146020130019209234612562342259478845308481623773382338787730461639703502753026395703104904566919339651032437380614527277703100365371688432453657199039418644737530462797938198904568247474617167012087446590347989303980857173130033605785653967906549240561708930101779646973250989611746998559843899163598329546984905268718728439290660077989181075159775708540125060625409568118923618357760782435737791527719724918948928234669027894331409362313575652420857455552597545435036693466805019552900502268710121046118492614194841002894922641545458134473007377724610294497747258266427644007123237901792725250531675461153220880036019586497385091858889009475612555975488968943641118287033140039082798424554795412274213143891824183355420613893550664132928105463635872925810112556598817402657952538084042847516982681587784328064860670508971425059532031027390784665776932797817168342406250196315277987908764866176809456557773827161517118848117231161543865426015561117045428595178991919476444737124911371944871490989944558847230693288053787382280318587414330085630152581164750837560635858526953377441922475638158934169448406786821455395663039723959979283092901317618029393188182633858985225960733062156262533967085575598136683522707643359020572215688911494034474244004368623950304138645529515619230430802340725625964337736481648143717217681424930612822736919836257973840134755098469128521938158834923081336156295547506473439010445355623009176481243744219172934160156761885725514271990480220357546783973237069008458551197158843118750837927006559567123444291318363782967308329679263056178220976502827652656695953309795910997237580872673117496023515279636748214466517358842794644343182340386371825586495305830028673754759033733940701370907896632996519182572481778881949133111249554705448747538359614757724956451562693002087529702188548573276205518433698714659237690462812387396906506035807663473209335278658097419170463811275567548602853648761555059286237909175614290472988015268188387906734390566578486339174173234303370654632574514037079123846845952920987588411199943690852128404931334031947490569704838426091331013140606916945857003479126559981034003539784458058517526574432783172239728763759264337574403751394493477528369719182154081093345040193337928223245192399955990852382015067981075008159665865069780290067139172763578872470260640320300085374552639222168608146514560639274471027840930012310427125950624004744748038160850268038665647843284809262989534871140360671338517213919329822637904572337096971100419565011805374336652900841078543456033463129120531104589785347645429246644996895293878320719890611029262130905908773667054453718810697857805866247904917702124210296638264731418841472960679399692168786264188631897816742050660669009772399152751222896621158532570177198905642234201054658489508011232556393093473900526641428485618018926658353672890049313451019486753260484870376897956374859416259231133280188923587019982492539210961520699904142544976742096597076987570375190282958411447299044055921414865171342140211313264307125007657218737012831981504461999511563738704259619386324691907179228327112073042315119309556705361311028400820716499939384754672615552585336202844675668977409197964120666660419082447862292212022226736249615937531148779618115987481518281242782476247297105141798615003355017804274399766785184376039211983171260649404829820524690895988844136640849616228929790787687227262085540226257910007906596732446208611737614852261848735697672974235945557339231302225531759443470373257109366443334420370816818912785164786786294631553503520883323096292019077836226634129554036828942247569287514022374365185603311904878585505116948834096324519700081308897942108075335901792545968654880734428756814901143464057258071095501412726308507904682025602422308367881613338764673116144532248504045693836633779544673391166633882916211373333860912520933173658391971518437269734226977740428201560445789720500106495205664886375239144731780038793153465179173441130663137825426319144497989290749059842708547055633819889957665797249118299139797661755462201815607694506680845189500000649578677056678362335224106074129883663692962357744040949129042024891534945291170398891310247834820440741424225282145056327244930966531666078466697259500706179423810981319690577816268815426085646665089095143914716171192975703343295334695015300810438138843735671269805439023094141468253165459044330684127551842110782257089714005412404102835336090536385318306114762001104453772206293658307414852477996514975163657011885118479007643428122757798208384102856418478957145928575285202899313486002757444922166393647582023341277888229491380921338022823312746467314863750047627388365387607066160557914209871921022204174560960926828753746146475401394074722042752192068552506112757551127727376055316252893934466973823403843194971477710328231345937319227624890834593599282454190237621669554049783082432476508640059227167676166156258044430618353682297194751043034631957293671928255844740020475300329143917400220641404715082898026211906211997641882701214249214751308906335844392931422496605874081902721832675731428217502542358322284268162277385837909063934144642395916948177813751477711965454465449841556446348769794963627587518716581183419408372039406447952287946012267873352656734463837671135649379049509212023958065143335690902825877502976514220078716009073293748746552547091185765486129290669912162290881848004278197815741395264732058533154371078253258790072450730408631181201206010585529026591843133077280769120236573541958221142254182917789822499695755405508729818844311164446275270284260946884367548263489911783411501466533277910437219849493977237409465398698196490198009891713027862598697531002046551867438264647699141417264982241446558289622346540256414807216248890298844137867328150553513450598216449435327553197801751632237019520389803952368820336534651187154322157265172666518410507668415595183772410864523140466334654784409016932930624474750546290145152502557831168398136656804641528913620460244308673545458930128596728340632619237056539858057764874652386960383396134191706303692839985081186456669764423128856240715187727397119153241419889670278559654019528588936745274510625131910505375684522670429932580997374327984341299088779262752554786121966358404377442073332043570065551182529603796668135970626787199719112607982874495483538302146327182431175991229022025131833381221445509922073017831785891349843723395466319700040211132897246660786392656513957896322658122495652871467643826773861182609618888659908769641914028007742142604311370398834569284099200338633111656177341302208423005502448211170169036938538138887857994566599482357954314234279770884485065873666009471921470034134555237625576722929889097150883166669901293636088671368741259327921591524979824752826782699713649838531272379777002901645073458933106597289157947485032908957129277330765250481863498205428087815957157486151685073077686846946423083746992634281097973979864460538244119204934443526186448433699188286450917928749655334187230597085649386869985357681525277289137148088668699446005716780409280744818275779573053939483737218690478299076198554075071219332185306955465954596989528958657688338525306896309558294680890985400641066292778622430434924535281618652609968166139920293371816045253551863855612222952345711683240385743476999726113040392451833959846650337059627106443696356055151933138102634951807395283665588912231268402507459928403470905904624419778740983220254081963031602140592653596044201437395875931740005198480866352262777847996236178442338846940526301748935375664308534298376776313415827395884748804576846080643018059646535705199200969951298570558311596661531775834973082510417954511148841511137513553692407457132229691064264328630196947098087779258974449593089784663202878962223300712424819740134280653391079486044878524154181077906401598218060759645092098112956237962939230821092007503945666838770237117154197986896970462849746980415368273613404535642445504930236249666107993555203702098839314360156752016055518226089330628944311529084974336033000861779280663142407128223459817656885990219504898695799771314584621796168631346125461491450979878503125284336583993960777968798552621500087430238574004392229650142667743114012796219317372370448250900124012098024827962864649041694389752689210532242683730879468491195136810509084910575744639406811184586111054636439387065964867988832684464839486923063266027560469988813972851081939177057037965573083928386961375964409980576797070373136395935219464861617978358701064497198914705632195851900231156768111097259357466009914275478090506603673532000972185715853009642663880849736575028572602639118083709294852176084458684529766149142847477503086633829290717904565783650340190757595991786799192877221925147105111638513504662344057157852752308439842441016467008869524623373354477527115650862971480296509337390769506769845654569701584331237520910859306499999406257070190248793796629355585726220456860823498640848272924908346739099329186483383779713237149696659369621880165746952512307618828043477693405151489305911557605237980792059949929608563288426488628151775117530602464181083754526653644421468254397070148056120625496146441091642584507109143591185254860201542806662985828448556812616687036730975083188383829827745449283948695644019945266578739797058764644322318981932609313698362472107012157826479106922335034380398976151947545199336520727157349179103975134101075351795022510837489837549635551163625933251964734249801743162787183157883267754826183755551307210796954920688184970070908891679524608005055897624908438234048578312503225236340307284689936816070256261871913892060306702789042879236858028228347209973200033080850725251502963656069867990805389842289824750185740269720545249350707668810015685619929250565841249830848600617261066463513771991238132998670032813075016034965214150644945337558651632412000645143678987203144244984306976310382893875867656931899831849866714556523174086236177453834919568679829384742067698548088817593817234807691004835087818798302757026837288043389362556375476202801140088092474974031830047702269279306830234604906730567602120028171046769622453916037637996199171470613911444236599577856374014988082950753990817791311999090810920208140625007119088547610408026052992523667822007775845951684248065324290874041992767498245972325770732170569083539294893629630797804564794180735237056406691473452239564021383770919427194749114665486914542792939503212455758693399565324289238348341510164713587213733920936309615878680384798665211568546298277719240457968680420544128762967967242745422440528823012952350562778112065353803969000463115873114560930778632098399667279377035645963914498765427543738993987604750111339439281833870320487269472982235410778149323979891225163495078397659619777479165807095487041026877145352340904418261825468441436165239988497022910002136208003583888659124602563012272217613922728287566464129951909518242994458152961427215653133303056236109754362833131938429064395647968497210717728690948370668137793674278975257387286415586978651698145984736125930831539224672854750562311647300957327389626728107638179188462580285204297010256515169411392804747706565299479048043264984022599008532620242542246444369232432843576636998270027361129850695757588082717866585185535516643252081850210112250083318791208411459583528965477902888402727215605765268403865961460929059320333176394183663698833353792942138285896173036801479610905946899500411341527591854245331087532021409568588960623530941177100858245141439582279119830355718810939296796578972230862831720358520763602985024489594578364140454928883380044502372578008663305496988141913853678289843026047631609519293032535888634762998809368765571743066859192573846511680582673060533229276293941405227107904736927889498108469268503770108258167379065625604426816814965907389171032098062476269777520831396243545582833274227274838619461704964171373298138934281466767560442757829040180196604978005283794249496681987567449879752058594690451289906996556260233872403622522117258291000375834975016873939235791261599567992234278134101415858494173124101724603465761435936597177071095661004957915025931785490586954227640504215433058923860135427572566052475632042364918133187199551209695459164181788751876004977170368286385542378261989021333912141626314998218103811097925908562660643882184547979410097690807391142658458817783864743760068750413927494698663440778328799905887141492697608275839091819294193151302448736337157028633324745801197135764612037360429481562843144563261581054779593733193176610459349122388996273061647593687209829348536793000147865727732392076851680666181224371029189831472015260455592740885803626114815713221126646486446596508945807731894897915631895500904396202694655397030598902451363983753267579627728057254798411431088287656709852734312811789329467946771099010025542727805489734016430648887233066975874529841103706681109356468567627539574125125333201239910052597648500369817364018618230527101293247970664312512813027164078246061735700759709010571637489071261753078082710465511133502679370723940909795004065630438080724357261017641338271068514278465570570866544445271230580952446898727878909919735824478678751892876355074652536591480518329269857210381896607508240538458153200409597231083499699192156167922956646342759026321141249960287806724159988571069162842490118062553763317640384754151110912372639055490819869732033639150459392415694282150376235318242324728828239799422794770794213050930018297460802194081624582504051555349804042494284919471084146528298035993793375533933496233398368516385493598265844235805594618021362840552565248063603840347160504972282957730105222718862234871847486735984484465280549315869399861295685728075475899760589437065127003988081241653186047338791392006490399074208246035490213463325551781004006112976234313081887649487765373722814890803947739018814585078403565525378060798325263358849618818611334818265801066089612423330712012280473161126447698201817390399428665421459825349658428289158541905635647260607470520483581454845287419495648718804677825266359651023567816028261504319495814557694469340349692397042077728619129229528766474721799712849314638848384919090914285913115985284645584693024917182754538463208244548488341359930171748268972452045710917031493147351760098718149857075583244257316362448501910080076810859160864443520252986171540608354223024656595893174881159076767040503712079760039484635165761731790262948602628287082694697245676356823459748671195661765946594912612277531599081546095726213038601109949711181913025799140456341259058417278884976983449636955979215152816222665641264027777643467026276354643114438278863933199420421049228456453906839080685746844555286060067292869461493902592286896425484830609764757883204230411525648300922943490337913418954410098617420097721689177429483793777188174828682101620967171719927237481734890128902010199770271171355134327313587095280201766937931496564270879513932926755475915375277465567833663319718325708833059551338510052592142102915617792263726870364075196374572067368513852437788884468592809916103575872969915273169233701730536874566838970137848665115451410625074937448323673457853568630724307757718517954981191815706506928044309296126224003042237745842891006797897083655676659769713916544372308567661536774755193617494173601626312115000691837381375261207736849535922308548946593474373199524150031615845795013001327893762137076851090036652821929065542927505410591660099339914344658640711515849432201654249378169464461706099502542405018288536510949192455059682802640874619294320909869130923320542994276503016952771409671139658720826714755090529368283983952294877332825379135942983487084672234875666348089445649180659860079945217092733673878968650466819917254574753301673478782592583928988363598283711816050054461969269427482115968799596619042575582727871143812719677424137764748189036757601159071450565545098718766752073142523842808726680618010436911079923374497527047013818797891537020953164970577103973036733693477051762001635307482832527646291365090898928485841896710575401240611501547009206310267446115759970449076078628561272062297780198878631522195153721969723515587156825628722313165969311929509024941345541022730950347925655196948825587167613786155995312675677407243384841943069256535545819981180042721413687969925175509268738067303703513848235806949404436233825259018452640961129521991364580392401045520672850127370083511253478656174056162812645499048581318682887570596921407201954209497476759775519230284683013379043202740762113320904412681425963365777191038100297154492200599276775666834313636339375557209839658299003940629579854227336833356322474827503505335243442118468243657507874176533799408881377871346542986180903829046073802453530821340426137608628450018789035278427344615827023756569351645140608798059532989110209229862858687051159905333487542824022271111404880036009626971760858132648932617533059514853670150368292719926658097829636094879558936267159320351513499504036381960102822245046228166300480556545517562711228947211229259024999043912473261846918058426280062574777996125893100762592755759014007058456523799621783410819717403789738981538906867397139746822216440663147694497202917983777719372161958225366507086606182694226312488185642078024109573226566818142653613206800874904303574557768707139440984946688323262782681096300592267517933201403490549195846375424911697176282256431233087487216325845183004384546203545337513921684483703789786960478351776059174352052750976768436747449699354506521526784463384374190297658502294970246315921344082077073133871167812504376954038582567054550253911993645629620105545955542149430324930978209263511653257980054154010501509873495965152031320029780632112404807734058850186395663391329323236585283973336406484135855814737172867674316113402958830132027080428755016623685131350514304360645751388583984380816999276053098051649264571568923769285914084918438970981571778295787924205532616258440448248132850525690358356780057616771805345058360402678512307129825125224479593940770984856495305882992381648105560370344596087072196575285118740954679916928894910506209444437664549920420892494182128295678280291936277146202385108691421739681320321175116145095019393945714507608690780268557074424571783846789123251413863506853127936117366951531796352054865319725588276439923784186221875791163233483517357544310873637904336339438088072469543785006584524044091821175491443157768794542033995644754449407115241237453823713126627355174142385211557114705031291522833924456638138711772696188988065187567863519377800496073765228111664060019378609532487216594880444072631412786605828186068952848243443878777395703353582985003676587128028840579810490850134730287534317437830190457350767949330633572714825585617439468629039131508121969056873652898205462801613855268104281712529644449955990327754576258971199843584506028068207732660510560767929972842711136856729957886355811560838050578132219621564041082396946607756492440866182093985618260611141319097843831066647656083255962521511596786384916623099115628543811395271682896573473855554889108251510519649982589195852896618896480716019959097016960656172656652943584092160134777063741009795345736516548691755693430947905154974656745832129547707284856726231606010060156346714422780643861174670727759382896675198860855059604748711585988705709459364963839059330396736016123852458703704427667050955510834696425073791808159635242691737392713589071278519371841259551588491840708488088630000174093559939641046221747218678220189503430370115140093912872960192780031435951402106239499165708441000238092769741932656693469210962914439125272229015662758294699382587175949317436971831472592816512973731339831450874201842088360622615826469445136358087867400875728103704343370938711730019125664135335767483466558360380643944958461848459735778527540853218518271416995981556454904531059647563906227314797904419407024577834449870809028627372584025447782827778064839525963385112110982418172009137987510393073788264699769668212766200697528069931947433374857520746723554724184019490850837366701040949583079910906226652327996760083427895829594509737822899029530448932946537854686613235397953131412007261169028993732091964625172071731453710754954580596270099314644235105666952101152304938472565697163721842126689545439464568378181325357472142710812325849379064178239160856401889988704918411193797939610921935551148275861294351314768533321114732825886882354745199409995079076866980178137652260672111311534977715851624738810885143576863763199993650737619536614155322987947636418379464619797354967427437720911918077335201624563919999510464297708807211406427737340451906371332251181088785621921320949812274027146251554111598837173557134376428639487238643480561261006780913804468129140584038294470430877459002402392704345234161844508327529761917912756116078588118415577451142914821901032800987849162608403044322708380526249442321581311769870059037372016073730145906757669067384550445492366226954909490535858469363684698927488401340528290429688663742767930265792314938760752538043506931061412698926814036872507442091897677145799356163724530929039514299996983859754107816238037727943278352019777661326341458158267434077277947674484975375031882825038757876324074557078927308651397974046447779803783008668496374257489250267546860862728000795751123826189960259273039779438860092051477576592074048142451612825437109806053157832256999302906187643351844012445825433010236395386856530749173777218854784513517077167428623880253439547603190572734177606595808394917013475133216213450774723797538266852100028828523180234441349415995905697916036396727353764926049911520828953100358895056859645565850245723759775969207942030125392779814773821898892458734420959333943720199361288561088859087640402281650746931919836060101116445688346182103492005620876155676823323140106720694534010499063812631877741065174585339291790466345331645707540424873557038076706212084480616543082272865248490108075148676528452333255803612785035569151029912292984023059252285359036057371290781930896644301482591428617742818782287707738150166186174426303470822679478700890001653847438680918883405470971125526853050478523502008427654444517380224147471769526085785337817421797032324096835171194210744470654939011951297869896624266881020208379839926529339302454549538911523564176193622393327098240674864100180514692056937703705051084947246256113242259543547005589493599563923077360413195579005474077299880508352874762745820886922752753643541982917916223312424099553015482794060128768271000942377835342539312352902319509597234855776989950191102417796550935467584047826601056191017438357514240523497245388726527417542506921450898236688058687042052907685524900280950442048331952206959009718780285246843591378960087390211775733865576822601021083678042427382864829501574048650705852770616653195509657184506254268072323678566642423652930888685628810661710303489840490828378588957514255896272216946904471254497500131239278195720635441338376748878187475273998408556454204037851717160937746006087148170604774061044574136967029495495337117630118045212190482977925901811010749907889578770930076830488728627637082565968475439855880399715997252379685552247882982013388952706180656634983680919561691237969871925493526965892234821079740986712585181547415662415060823825131952928920706284963228182203043755274392958318303805800860572962563796325102211411782583180087563414490645381202838511161119078680969741101252104258098271603258247168796874786528122655086591228321977995949498004133379951712422789048206603033154231380157178366250872208275439638062898999196448001978687445421516479667031717385909789931261081283906993723587129034009460933084641451986554991775152840201290328627835086902059841112913973994230487508784483966481680134923728839707102723367754012765010695200082828495124572819750731248877976376070909307660096200750584169685255012009748019240936747533321436741858187117762043997601346445043227499071897420599882342926948445759446500185036677641770829801178192887578477062046820243878769568733210601616754990527948514068415587889885199298407295976463210860392939293475012827862721427498584837724450612626873619069446784572809327769415737448149690821405875386577453959528743641114717061474711813234539561218093540283425659565860651297249758924127014306309476510312009227777072188672214474110025085981885232341743250430884338038327079469192923639164781877593566034845827692379010829258736826310447877387964241473324404704221455102197412929742686542608815592029844255548123251449597974496180235522958145802015954599173310742613537795217605171730335427804574649502761878213424763267682426153634279898445693752386407088499530568787599258152334604262408558456924550931051501937181735367677007430609516854625929757539258789674027522097645911104746117049689219563832290849340664324085082665907278624714139301741201484121649117395725278772343532567949938951027514714898042986998193592779039789154086608399689830253180134383498436708267247417865357995919563439144665363736417770298226234630512083426533912458663841240464475946998256320014892758504293386361723533846854502787644844052750588439474114099527958276092024968043106859328468927871118683491720982559543312726920698531128225339259050273652206870993877012031055862010802087695724089456282034253449151870837775173890608361973133298517670345951023760415100637554492088795565277003774572086190998455164238496259491605393879122952076152041020365484470336566746809619447405043602254100835796947477405429459589647674408113341847269348676563051186692771412413600327308131466754604801715792880652961158546880807743562211999732380011926683975828177405176735521552900750443934001495385971793871012936171842346722328629278274150316990048507719009777361755395223028770734005356556430765503906060076805527809728465405844287017238830208053422081531176022923356740978063492665268372862574198623391822566325852626380681373557331566363812918912501259472064337516851032891915350018414348376114890589086990367996061706368395383422763898335299356121620883502133677630477536873370979469027604059852377970969207472471423041213676226343560805001254287174028099521813587838276155780153371285829854627100441046110900619981366240950711747709661276159995404168965882216926779353537197337482701814987007407908772912364521437196374404335134371933199322205094790481173978365563429260360400602461854286322813790420279360852465444890495374305784167136477857926544897227122190081993389588471909416719521023170870425591030381823162885107127823126657142655945277650424830130722600792112594600118446063061610968783561423825409374209526959281457891351630415477834162150986772545451507170312486819346032001608569550232880725703416613712903775857552996944352329372199271962879934954109384038499759873451564211267400847261201058305392242227128543661819490800784269668810450231836156356568911470273553840022086028037031838451702290910143125931622499708410920966496994115785838097863846605763332456110632738213560736332073209716684652065059649435455180217265455291169134336110396394116078798164970449617484714748662906176747093147556241006751063967935768127488931945033459724669099752958914851562448366041978830790129516984789649676715267584317038507538901916537527123553616251049680281966062879373734605339689127533057187800996847034367394659517916910860330406285315378074913283451606891881282591749982162135384017950544404955294849368575369226472751999217648258182863808738635241576215510913935539212022447933172249686546762038221525798290877942037656630118153017569109438454076196663135534354445717545377501785497803123292703146288255169619916582131337616608363229606864742166348730750255228895519336605018078482977032257211890223454150416713920130285014443850259725925414299698913679876108888799975534108602290818545811884657357279557454603535735374032268178870866340656809649265988221655860288331866960858549767152840083003419292915421097818996756834445119493364063550264172887355637172516674391437764900280804449797908624826617411169514148508744279549601844495826967994980964731441332189161344703719437088717067962658127562884240837642344581925353433686133642999290613362990501411645611175803420743387590892495828068349719559467991902548185812585239877896665679762641199983732277359203923289339609380137328178077362787103056103230470420468959811978902241414786106733965609154168143148938927167293008102850313366595517942567021103011355695652231572306369462447555194709709801608446837079136153597041261436195558881951983953587920193071059842912731876385420294899639932617342361552194831176054761916513041719480235121383541545743702905591381979060763651929652386033056487187157628210444784395478980572429427025203691877655363803048025062167343844262795838520590875541372942113379547573195550395494165047118266116725504313896427077546552617534694818743743216098494422195817750224227786161806897525754268121579564939723846039104741232284950632725430733087297014204631348881856902085740704200364888434161479979413214652990861144301045629500028437797323287031938503674393873168444224848206975314207484649894205537946327849421804328273821041440793794720554765721611488070407366381800354749700078303661584905060646570991186575050196505196440914941531763047537776986736370045160440588031854368902465243313521563468908916006234975377241535249423585658490525590294198567679997959026073007111877537781040515548153454365367949860139007963164862419387615442758224270407334081056850203433151896431295042264849368152236677402467081816907685499659478439868123515352405530561238688653990214212286588485111180703880413814419344405603155999746434598703339886396397749323372381652084878028166733468976183862998741797346616550094478409718570485393774815029575817361982654179888598193537195838325894827587524936453842396214844292345705939090882194431584146225594919023171685549515723432524273006949542914403989599622017723648387095897344439536364687032825984467457206923679903573650083251217487010823411834008510468583507300690947313911684977043909768620793527896684857604979577624465148703706746365678055116699488764613153666406707229890074622618433338685428098212384934148869706846917348668259592827650307213585297055342587794026452608211814070996178010982897770994085332163775460320179295964212752878583735454748322255640289254028604134412778791083979916810863423627394727473092046768537852057782603358104941186496300564068970386706982704891831964813962015316196771309493398358411158682368804753410535472636411223715529525675078099148483738675518236110749197319386127848965354007480332802339908708865003043023230979639258399550509993360433824520937876348736649759729892630293415247123942491439984314438766067543027802615922168242267116872742533054154428953886285026124937796953439390989791915051789044473042103083519162879694992725155518136345065901593387176517214903154303027634105375518408255748141744615161788301884259300519359648699733462750476453202648476023507273740315529808173255287063144589425382630213022370353285248499597579550946535398757460908481012672643323446098505275192264616535016529378770056424995729478160077674070960614539596479901773600570447536495539299398024968967632835869171965706792139911042316378646506213210312447854576708530408016558496380269993950045023437557848912857485280781672993252214057702590150575350431572724630570101076982236468580627276547562020319520004669450226328685681439278481504428304948611243280554599984298848340332913647274376640272045309515288903966509002559035564222817285381955509187004429873746850276440556939641520235194423351045189343368822658727356508484010664103230824673915376765365677067423650845821268748755747504877365893805874105894596823191521203701573728167524272786974346726753709038869030004470034517860706106816398411728007778157046367032403865927074502071844098767579659514796923093606257094315016604402909383475045253961494989795024367404097094479187972517780906859531650230483642107316110050146995607279910692695251204948659436970183406325121910286091430292559014343665010376357566697660214673736009783585073450086629708301872256241036014096054853221640149129346903895380054316097180417863219235407127132997185998103981356422463855746047635180586830321077659219744538578768675588501115934601916201800417089986119098048100729769028088100275749466119798055226913971930055119024209715062926467186408058489330509150601367583209090442889237538643752775127964664684223256034057481821364731465591490895884514708770541488597972747195888474436960922365399719010999480833700825583668021019582713642623467686834257292199155669428621169722302885581052312267467575397762995638838322305560347072371354832445063434259078352064558981747503359100320658896022688624032745698114963328132621189045376866983923205132528395346549574896646986366138082743625780393690655410551811789340256999161128319244767866003826944267497525693388793267327309489892847457973893968303034154345364069292235409678469356196235672413125331490185765048097520062422882064283098554836584483099147927441197187434126679909715533659293279632026750496470366162456937819907798889482735061075740450131468024885844755453536783670565930311664318112938821846627695373463717408877133663826025251842233039696642354027856414012570322003165406199820235829104553601112534829732192383040737080854658324645610120575436781310780413880084602567268451484556122390139622346892772579009304330742458182188033966391716446948758320762140022559742674003655320097689383948547419448043206331886317439549528739302022397038670682626880298556300959821006204565932135518521651707235539293458152024939985310034492190000270963253063262483070248058039781548164271898877301093780896144595191536522621131780128473532000699151823179732349251890016353125756744919972650315781973602273943849184959651959369229938212198957474291695225360165028215679689141570069321518761659826831938572960139850272306158341262583924967295002771816452698407881351894490347439016140660270870159710935726764699003713847606953030881561538757574418412326397176703095988702037493069241076827416578417593515781297843836779289481427840612350921123295068402015991925180843125238379528459518260833949714388966963671814043891884805992889663261817427264343787511508184214688941353174517946614286499089040993371779647657626510792855441639843112677219227311710580172513934708685512545960633343201988101895377437603161122326929301883481638058102469480041455989169248848877790899303406467395517983623099780643470602239191191841869004174002805151659931365288433017973524820616232205784473564052862352580179013384293008849687717685203529000739055127204977391109615003702956262561823660458967107287019293751188487333630981116505677384549324715281592937208510357332267016810469991181870080193525061833760857059783142968866787309899194189803029631895743979084362269722979738669374019644324748530439418702664303377546225328107263797706108065660661034393104324335744516347269370987123137042454123487381978825703614305874117122277952410885792849590899323444514197697962526638476186298034558825155845687906322788101612249543828803945753470573553110933046264164414510913568871656575090336026502496926919641353340173124675284691061068192143256585208959983014165017144791137021066219407646017131924314030446276856351062826182761540920763929773215707135323148086746525525018080664309325537452881431912927046216730038332546337852895178278987253172356920190289301854964847074040863838974998118355580277751108668519572719977139663584084457988592565947109196644578523031366358800943352248703594343138232123674892238853929753899154336073530608787158147281058082936962805648327474397677386244120017173176748577941243483654449401271915380985871386764535134837891412121635149799415439859916365116756825586681420086191733994351620286961299811178045477222531738613570558078463602389968727337647608069969438360544764839959131982105420913963356315916345878095696481803181936470828861616149499888363715467168500331594503915978871043385851938782500408565982711045220280679601114159246112153063613781125369190215549127929810992519025508070033549341039607679668033970118880351889157548271386445033140022622579720960097978423166509632483526449510567032983112762114645280070427948992592650259506188137401167527156836443048546218796889956382486080849848793199805541071593613227893033442982924222869372220004546802965786503514051373969327829119905538732217511683880337982574837654324564839945341005584399843098330114185466289777490691867053426319154884598366324488776552855001500672039871433928396699145708654682394707754407845524719193154185502941939347368638682295527139051179320469854979428099244856747164936627792061194831233436783063350609546288696154411248531203541832704656861613719097436022619769521994823282296084444933927051232302274743756160738872059886748495835258637746432537769403788777344879660364288049488231996782839351685944797421881157989585667724572795405919714039448843065917997640210492745977074016076918644558751225071728059404748842852081531658987733807884039033512556502856224861762373946831784919552484469994307715330755770014804203957486801329081834412162083386223665225540434724078110809811433448731207926414780774470890853751789855215564156537957604503813584383064927328250979078427199173532192609479025206494828261803868939201238415648260570424733045499068107895607406288512950518984315326865717577319803354557143907066618133288821144427880247881296781750466739303856054442691016464205751591277474171679300055895494691439508649819677263436176998036713110216484159183293935675156444823789809076641820754353792056830369000507087274227519017955798673374409189937649899495619664696326395137507278694331441438338460361359174476284314065635235313069233244126633978674019982347221394986867053923373789419970206659165781236858062571464477760469530823260730439346209897991076890757492926556780004450334172830755988504916406623871782742251658064003495653458989003231081196226185538530991099658009211109249171079871165522554561732956881242147512908196979651443272680793457610061745449257773075647087098741863796085050007204552768752431668889841448413678375765388193007156401635572774848254093522936808221979690918172814371182914050382084897567822543981118897081813560330719174510682512740593893292328886085687214139623073135511516250684758880035152631473086226961704164371351791341375828890518568691497272150247187280069374351617260934049262310697166777434411208067231746960176887042171900251751035781033404508017795852001260730577373297521562309748892614495385857424489453157084281112876390446370335640294082544986864809598796197111904224212120827931372758717391037094164407311511517457472899398991964448459928227182649268531188134054088785745495367642398214183225099580765311374272966527305190844860617128926864278103625653744055364843791099864149776361534095000283504509811878336359036245425889538514219654799053319140757778507894651584304316179499186860717529090611896778292361442804600564833104466114898452011763060361193121623136606430539547456141772208913348079059288036447703039670544953180559092914926870935595502258502781693955232717640854463655185267609615143330324710860613697445297898518747733771568315813705270108803220466049727524710250218119529196602051609464851993838504247621012466695039558215383144478668748580071110806086488152051785572404808906520293257639145243776016293863269912641308697307832490339161691372574007006128023990675659107611477708807842165519286802092295207473218370839090627044678974553299273193816177166550155497189808722696498073163011945351136915400320280235269574757194195404539556154939025146887745523990207077005603036360419625664511173060745925727172531748552956905432134159595388808818929312848357924745316048806011908111640057065404333138998920709402936762751793672388433061687748967623672137536547853203105552013844922400819450846654299102933132070754919051451305719059921614231913970769025359375538238223071145382543753479870743873516540864704859958546567473316708422002576361423196418462728862871584406120979818828452722734269420124596312746527160352770176655323310135812784637215588358617683782399766800096220769108230596580479714462652372339109544128491864621935589019569571064376648838484927355595148224303153802055658763731421381539707523315828523348280818658709690043330512455769205733625943735533120538241081989562093681691585425456936337680994915229284163672315458678388375573250484311707822992162505931389635329485916392030921305508310299733264259994848734241275116117933282738199253706792356671397295555158318922010864339890160179274402390551883729493607175513654255410022910525004069221282423318443390108808149723902897691484897204156754603607932525665968309498473632889424886101054014123227461891331547769089213826410742875997900351091569466627291597651093701530290667454335547516279505474030802955791180769853028245141518914490885505766013384179027454522297646532190638209503747048843748752076578829218022988030700953809774926131642800874541769915014959001792281395216056391528040693058921082587739473886750636079720388969031634986955702741329628284470040208751423724037421285197091002886303437740397308984884487831466441985524077114299419490085723311822321179326624024675344133264960350109186708183352372420822520562202034437102670745724451406439315972239451388838841547300407764806429677603604863225213481846297017239828875167330347732942847702318422964002411174676661727475778823318407274175888853139904003171320726548167927695436173536759109343905777768780895867440348698384217416601576853811274191121753718711500638383422149398026415891556939042374437724182433939462763190767935241469693952385932884166224854482295544135547065179186224647606286370748808119361689385842853594810031896557158728897424754125953035384034838640753752111929721728997094241617645694048316744912687958307304091463765103984876111516861616677078796173349236268151645918518657369586179287402267706157176777245935375608106821348019874873082987581696474153772605843706376741592828856517975800074646778655171292968489106820171557729790227463344264624895855433844797892381579852226118104201852293916588848209103375801925760999219727418558847200704644458117301790274150722418917018002927918365851519958303431504768973320606372969177974888124913908124309416649822875471902776610263522186080331038353415628848864229105637439690250402642273338037516001613070945394359744911111366417247215910099303064614912585827159866290358242790133798994482471835770765075991177267931322124305754877144086899868695509259723159524063936752485594919815836948963396555920199770758065566728378125076097240836503279970913934614206208224829585257522451641499499600964236387205265725065982774221506097545910780522411374473074232660179147346509655176487189180359127643053136197519467095727968687719253921247481818800856943884988177779009976389945158447290121449195831201831581841612241100811621001392101829947411909388187626147577629982298293117813547573607613906718982604102222721214768298311819483641185745787681829975709409371442118457013739600257670697704720858118242808441249174293634016229479663289934388693457031667565394403456668167010600692271339159578093537852119090327626269130896772730086171660726544340936303124641130670651769601822371315776199056817226599407241640795348298424186273762429414800923566373660383180005869586403913889404445610174231906730759099094679266386117532420208731336217293587817832700386065502506545699266514608295269555302337891254470888181159371296405665549826012049150929320597124414607904463921526670068222658080763376107041944844969206389777497505199417315798928324171734457071621630020968680148529894867652471881251532283360525010049183288948153360901184226048046564262021052290006555706308404479445000553292382312882206614712930721904564615727097602369688442329258503134418932500356953778021664506587131073620296558974557016189900138420680610334704119368834481057877718208603968658278591001313505079204975997939463528375700557464911915377986918377253646372403181610271687607518295580359565109458832875141210631053845536839186937653189069788792858965030365948962057642445180970591140856299143804903731939490629963180139521834619097180200576539404637736886566416026063545739312435559889330316274984431338297530374892841470381071537268813658143129206338768158505381673556157437112961708316367220768662676567218062763901685984436902392353440621773127847302255672824814181399107000722579249946101414388843271592205692856813526174487872336095610150383350454881195436807264722624345969669648586359891459816214256316660589641185935162016078414445393640012548487635053275277580348154024668024988235313782697123180687246005980920661803742998738219112458371761573616032389070001702021498438436459468269346762858172854628418560252837018251585110320564524381610201183601794040027961068099233112382885817161882147002544940207671039643767879271553761384245581457307454174445762838022252778635855702146952289317206289829725176597095888548437325845845393992129215323709460237620507055058280255842054113516571502842262446350352619686260180842551636864565196144412558535373405184803559131915962769297869207047769485042773310602378312304167894646666087756716900145616508270549798495555151495680521518116455740043593530485504208504162014623243020654948239084565904823686193229121241067202674370198446948111699422710042316260050259803165477372933376809035443992316383512351193585207309159469417923331208763085931538993825847785077543095746814031037763609077494460944600654589674751537862728913553738516209373014390566529322772382964180221998904946694849056005445774094668402864434933382169378950274541193873568063802111994216439294349308107793025430686229283141428158706030203652893758931297580481354308389761286639776276966743142414845742155581249427012586496644322256376184355158687597467782565197283837365740219169085540776563890661703541716536458057316833163015908306564244875076412896484858476157936558032739722325389965892371506133236686524688400383848078780586207856189527173142271004853409848244306655526207052485595485892768662877460117366488509465232566681329250981458433021508035154044474737983221932612842508237469938062848414452600820482155495534305898306764193246199791005059776306616045108055305652045750942204216038851975519416672585252060992983335920471334943702530084585992016745037477130748263607642626815897585435455788282445884826326453756375490105277362725027612040453671247581525037721202429638311642722108765133531289940102698666389160213686893527227657906984215568132110617074300334836853173007218012579227060247840839326830375105111865150867508379041265013094167729375680063322340636088831759738922172349693411682696099929903612334977197551740622514027881760968555948877641476916371358058720865516150694695585045440006686916847097403434793619739782428997423053904975606362990697305654444056376068105569501810377897193648841733738506446616981856174497709857205001053518362811432735532321897968514349605309088476684871992916240980943009609452183348265295773719232040113536283220704301212067939239057694242674890341885493635234334670252699783496311346570696720696441631722100336512847560625525661170521996579071248775585867117446742199070770371483228805666721476612133215439449972243617223864792388313728359460770432623171118575161387355976141774936460700277940104025294229807944828973748089488204724594837980436457547281330364479752354082439502344949332906228588631744784434703539222638033512050402416781644718646591317149877886253724148860666814063456441855449694679711680669313806524434899337204582005132348949390760533542889359260193122545125504983000968186931863020431993016765747003111307417771525440745681471142052304880941701021146389383322648173755924989482193783386493364140588233373708874894111866160863076947105792214427893582468584140707337143183521217303170644877832071519064562626435585003592098746939236991109846798118478248240615884137399803906108361837374837784072152819048947465510768372016837773862229062947121045197816163114451993443241333066415813682904027955240918341686800351496306814848724480508042731100469927762056638762285456981350634690776132358522513043310184074805550333509788102461676440535268813408930177573228707071684384030547401487309748710381804338525855248379748922717402569637893279097781266464795080593146570550568951831614738069968932327537450445259795364814945740038738038635093035717357318749444762345725918302738567481198254468185905938678984462922030917609312466551371279254258971967670377266605969510991135650045833558445546349259104226665984265411938367811938060330202822369619304644579811995854637336682210708038161903198634294525424404186980785709697500679305998958890227697030934876435181604877480327865234592464684569874869325356082188034635615685653654391760369709980286912625003398370675801779531017997443837405374377028472629396990186624856028987185556803403126320338712647630804730057573529328323924743900689855316891621501442236782489506704232985241567143857809076907200941596078877987010678841651708381764378542511557185717597444069342382195382378337288391850042462351177705356223881874883836585236735901397934424833647543695283331281246258044214298600510035577241981093245700143397668312847912399708663369138278545312442860914174025213808063144483022630622079223972862826418301237953143599477244469954996312708456355975690784572765080941515446744861500624875450040498547008588134168281344561681861549679499327100005866768163225108940886276636283056483849959945137153644738573792138407927348770994889699508258702818438037011664262572777564638819401832551876932538112391972530362688998028684547818632487090476184922754892011606964293471789437158155967043561325989033476600160792596170052475253588861989982895404673649513655412654988051574795405350148391278565845552973131892585098699782069815635267824238837753073062791474383923153278364389629575559682149506322382679841542742202673813543719826202671950926662688449561011362255227642741327508921707699614140584681334321614761039602203021308176353992036088263718586098577844239315075657930587945419206659437850336407420860991625705294565783808988050368082036143391733641978277877295929906085772007618975362654039044034742560023755761706918920000017149808000141621698195364747508324517980934362624622039669181403965141752259468738494278324027936334727980485688448213161425757806494028572561465543389699757976356627915192127440351404185277125237062283391266985315369780562826569631635584111824714321845179237836256498816237829577797152026571821136851298393787658505245653973632971102539916939942626029468117428622957164228086025003705656154713097032911398935002928599643875088042459766022370291669001660507145832350928541639751508782333770075164317807055840686283317823623064388410057708637104860374696224931550638541196270736400562015529283691328645462176410146495066477216946971082747321270172018063176772405684631713508673599010745231633611417559179708414927848207174697056715562859413118692204545238551426830150506671455132210097734829681815708106510225814132216615614344124722968727823925283691595102805550080339365140890877870061478607495664811052719904046734924108781562823915033237688171496009483450847827419622171506351410219605750449511851902429559562076021590973041324827246136682770065702266041023606858447426655169302714613538948778428526178861866175580994645790919167687782864800673476814590020621438498578168220888791277924996290131232969113591675602381288361440759456890946869793487916230833952033279538420121377430309996565672338624247792350292810238040051461847925087952192689482148755269665929559360221899339161743669505678707438110634540868480832237528398049854994181852464034801196042553209219010779751724265851077887921338216071242713290881544662128250894874668248606491489246592014551212756683733768584973491337657563270637037832050807815236289000521837064779727822069153941080044345221526392313627109555067148064571433235335696310529874983410534281020843210718945812340400843529742730345679668145179057278205510821186807157247173508497503169372394778584363406896549614598097190530887491062356276650547567241796851443165686198137037840121555242985387830430490603289045226007468217994810280481394743889868194541150674650577905130655274302556428202276362134060097680619297504645519439273782288622195839580944154952354121352325226760757811187158762361277926473492247264671938862877926209476624985576452397576418984724535534882347886634479549068966103406092404826703313048430959906531180223172298606675971716294767411123644268627568232233591024191086266602450801270488521448109689136631276441031193250174151350303427057626222294507931973197491638736762086566799337443718708451176010415110002637838979577259575610739498737712976173978408813772275716251975861400018597977024377840953246635645405858575965523933146688238994925377131878076340313639396472985825745586090539719159973877711132309534930023911325643258216849990791422903921999288651333170245412493381718985360119386241581910368203578428572743356953558904426654121565121354625379736520259742725374075461825742826232632272719983755717561934088443535123062891887923078285557637406802183019343547443507649101101111342817503535020675872657619220830666393046089548894713417424779969998724863686060353045030264157747703674012429105492701182529084504200350135258193787020926379971479782246436177903015936834555540547547055771650820972536544741768953602855199317910377758185041009789089526815252474678479749127366170512155975960393488921670853021127705203134510238249649618281052950758670275071897639675928892642651363549078159027062198019598769201805751615330187494416055475301845459022491645171684538156029039928413749784368526829126769121419278004111345458994552267318844604389525699722234452115716670302527146283425127791871464744987592663008844129143741574659258640182365229848248367611848501901899212191154517991628247948927454765163205031940448789489096460468259592006254105149210643028559852255264296881352757992535224710702856761726370733625668416298339075832959750374090583344535445149565227722803362922068069523334590881194766212567401827005317227119370895106516784319487631852350230995165688890067122281571700466095756771765284186348461490770915894446174608012378001573616813128240210744790145985645938921778141371083085399634271130883307914060615899657295600324280511766431604055759730091236105668898279955556229045532995283067739873419032953513894813832981215408833744859424638847725600720014627600762454117672869430453776456957961339624627898245974819824293357225021802740552958266699453031089887483784106962281654523332424681088203196738564718277910537252895401622452813395135123468635520883770866772145348920425224958108273058186148718557170600572217065252273761817840043219390012746030366021523691883429984362637849382094822465684021097971966931426216994821850243714425713469664675004535020559669143336834596026810821736229610333348676302349824072685421429421794000853530987454155102726702737727107630865729097987722999292530231404733664778699294438935772191367532085766132822632984053755507863103987193200824924424935016430983807945924457686875874593784533984258585236962239435443207181141517812789604854633365187905417306801392696288833690448088605405750051909520774041987119355914047307909607936507980410550943714996713600471422071415950615625801779452533243654161815260968860265350291731373379405600867891942937811176084694786787569266636127020969107170805202009760304765902262858330530888192372380976887636156780851809490998475129141039123476691004016189953189130640075101209492257492699574015328149122421819533187093098933305871423023850546617819226010704940532372250795468023173196152522191720825004006222731373506623750482805379966283350367936825414849408226410567736560095319998383964990949862805615997097360685331702748893053969350756731313633249138382099771273679915536376702506917487337395772320782242734377793452218996666206242177279304114499081265890349019838161117576643143114508631404560452917141022059455175038623207213800470229899041199638804241647734429760246566220082932281063496766820307225378113000466753361866204783233023659748340387949200208552151998357213725078165693306657862800105487410063684712034671807627101638855659692065860380514402424879954224380862781741554305609843223441559591133074983527209994983313245823387353792824913939955654124342181060380450629076146701403543642273015958428112112649604683372579611017273986586600082232691630435550713643034405949930784494540696032231166985858036153808225229596946591778601825318440571890281396423263362623392249322640201541826925072535553612194528809898634279205276417083134970930843397126267647147686669230666539448133001605509432404993794049219410345827688317350692503938103520727783808735042239325442703162744050716664960941729300620415055866280467571625375416653878505394935352028040168650169991713851073162012975804975703000553703296470202071264621853530236986233347937096723249542514422304895398413640633069056531131842956248290576811785692316567315983086373319207833955381293836912650736798809576210242120037811692715696505235341861195240101778819092844073504656714558078122400711922002498140522259893389761632308074886644230493354516552373541153251507486738924719559122634617644816245880470133851717404375541262695579092232453503253054573790820665230179774581621678003249785391413133512039303913826411762793121179630860235412974219409930296708880978811501878584044445603905588377125191978820138509725161842113475815110143853293180553067088440593544355004927066755538582114208284994273827700821049301023907125166768305746911008860595203171855274045115102472445359664317405376312665637238241244943739015367847025404473615235540589580711729154515215564134210025979373739780289897661772602536556030036699053106920035692326643224616025002791785314224889537874813657285084690633538032527394986623034599674934573077136905920416148873946777606157448538858291421212175910465685854023969398531980745305898544973027105348948532431205287115804536575743132778683144731253143982728125533848043030146510907184663069744091584459330864931871510878010770569930011265179917675192712411023812139179952590027734178397294562979066887469347022895453740994801785412388346789642824574373551564914234815977435758261702395696299445396083822992375021520039827025285069213710620194780154269541490428279519759251779551359536991478537490752836169777181882097964614613099173085310998705490266113622218796554351183620489428204385679268054250636180745914581384576541451037461178208568567568614473745613526080482337829631763316620810197040738083947056804295332325937224002810657498784036243832664636560677523238720376256513757330306793077187837358244301901746663862147650397627216991331760644276395858689984244674875661591723641217522122662389641238756156562868540439560810086958793856777952081973446006138744956519693908719237720002188136621349119235179718370786401673335414220006477064366184041184103499409702215966697026090763846459805445880357786371498170116959449813649202762587761165581030248477113869268356448624907138875677747118805745712540715334792066960598564562433168060382417081375193304685684854903173528191123419593856356415375949388231208339377909182787291898901703832926600133772528828667323479330969958839350900788777750032488694420822202258244866860423449854479111963511167139581623411069110406751816134839801020756213024510683834654750557226164755965770390257637084550870455602075798954369110309116260134945643290125584377235412347000511886640171154160286119574842895925069438951574640845658191919822321720736190489822002236309744945111191798323790443847853989712376165654147002527222607229112851158331670445004619402740469350093238225527040540530827056520436971211437662276201929040231919527600091185388185381764248335338557138940658119196251305565973377678138634935136706208132742591679514046974244754545879456054372256605372045048444952229101972941540091196057856565824012368441968215548155668612114585215954321177897392546875081220003829768641444468762203235201328598110229090312022226308590310508368601422016213833778582336060103244152434041487858602057726859953809875791646222138365473074494833397550899566539448528405751572371210635493694106615768743323893152316195933909976101310727185831964219190341020485675994911482220665178543838284099229377575449097994666493904463080919230284542018543846795341761304094030859198709881515863977275773573462340718506878754114216851319002294949642349941900735969030879373864096995781471305759251525931867668624893989279570182526631221840157654660165961173402550050480016303630334267990526668281692538965023733649860257748160227858174583720696407829042981442713181431675224035644311458481634499288699104630866894134593533092162057668636549517465261221508365562680754867150694994199267109132008562926779328706517995099320893643975903525332614276118615840532010827422085904643368310070768909076813219995001169896805243947387188223401973253055135666764943000022821753982924190423588908778334895629111994032906019657394150182825498869327619912953992335534189010008337274968513310477742062863487695197357351209778260155809690948389457174946689129347888927162778658562208165139935577685395138344117867880086538492532708409014437824241468375236430919348586926939974921023408014072496352582082239624794268714935592099513537295066886033773486829954787581423686462915424048353828654129448940420838811578430901064811442533352323514900931284215152884153412953813154235174265695378481525172949865525542288755139052072241589327619448731850722539826944662283985670222630148522961240555755835007807947404067264086189975720418479017477439516982432589664941503502272089824328231630565889601915088099622722006430380839705227230594992875297105378725895558743978206713719502864320923589130177770984662420040051002420674258556004656223144594714922129178366136500366390263621941541085531978243000557208794100805511842438356082146002729739748044360089280070446875536051980960131816987447255249935483077519199165342843283910822887014230906379524460283383522079192640029381640909435181618203999818431484136014280960756758807550386176283722031898314863302572659485120158299757345921580023191938332262965156650034458490390573068237368924548971836960261987898436500541563622301457840401885377028737447730967579577692221265705328003862168892982533265435766203967416343760101107631100023809727070528333951994154122023364399088683104679364323360399523548627541251196501223998396942319244938263796784276538674929808773598162881053236842185520073170302251770570553323491035410585463974932148349938857254189160122524270638186788926659100071988164654982249901531524975743010567366377683893880548054670175991342189691110253599173102969225548720876592292859219740929408381943931040251681378283590036401087291080708151819241476186590410584412570919385893189035896561105745822186125680260653016518997196622200517960714405541711444021192953590478242899389539133812098134065872817710551913921030078377233522318284935947907395621131987983930447729167203598533981526173736616302127901233222758324688125491151973756077156877143314719997351791409769739195421157545921671636838741761821521131025318670195927665926134851094877914043566124444691568114035731290985511914733740185850287745917591935316236213296030010894491622685640090164463030852781407309500186470739190406401514658969380004629654335702917866582468462452231214322405400109880609701650851605702035516993514756793874169400752871717044671309584329956883831482415421566820073320884103609729269247670039068184997201024649004133596994568375347512306803282752569160557483115874262099785924527649831317951357646204982649262840955113744674553069273251675971386868806990903993727315690231237308196957895962889382619120789558257997667961795526821600057816058789909878983063553999467650114253013443208707712020182933381479317525711816569284103177799136187047474540375850216185068030859015783127962118738929028802369305110512971461459847161754103708512477114320775450585909956702474618013308765028100033078845866986292915351139162648516286714277688933418419355312360835249208451105117773625466352813378120746997864193929486314569810863741810058804393356798346270062724623816645949175415591869220496607264589817069793723054355290993166998737290335392827001655656141012955828129393023409849176997232113721572574089576673243364407900681041801703906937655222115800957888671096755295495092884288208157749621107992396848203994633596288986527881224412327967738000512402362165020583614923304840518717812448395359488948114307152473482548980935842755030554739710866900115451799483971470542012597916568622270418914427669129374967910360606031005294987536816593153730549670815283106148198197921252700230271816862627024428429757650594027446698497463562405162690731696503670575759812351984918186768135474629766345624199142042590456816366302374176414767317536689842639954439530631386988999446619071436684430624284827412459542114378583448147752115184566812884903743865457710919461324132475212812204161055198426748135097006466981955860493113284668832148720377442699387673485269735421921053718175683704594573196276373283093860913891078910409442628315310614149262546575091958823137605856526177455100836340014313001607009382927808591364715131011753313586164775069084164018229822206507955894797673775935820295562805725034389983623194841214942880295436781258329509504182882367224734374944587969370182870677512187026265153651675422687394978027429336683020102556073172951269978363542904471473901051823278618238690074563405130996429610402188175674199033792028280923467541118037738096878421541745649808377146643370745976135529190016764775548174652091150745763490918681119791852584413155382869556522499422197505919583555405274676320665533496571775816852675638189355574427219263500556343501195238037544193128867797866916141642060055691004252659716520147581929152401726259671148787031020917872782547545312550063719738131081388513010059308808298928816177145294877620264869177882097593603827213205832609519854600461280048414536717856662585165607077837727068737256909646060823455794952512084865218745362287006975080315544103057106671239214095938390071772938236319141041170675793187874649300677585432289288779484097999438195117439056564517587822821861912945387176493850522000042153142354493404919773461357478945117493947039189559388901035027795279448651020082830337864635025660849990895551918216575862952136751868257387974701340219756071709888298007069219959293472153912366168095056736953772285543164095914523563141782292928083021473989270852836268914820792092862828690986765294858633352386500571543877718684760477832010928905670706956249285019577764682882844004677440924143072886602257306648445331373012122548527263940457465437129448660814311874573131228518699075980441326881261579488652176066372623095981097661898062914340229000130975626258371871547289954550178063509838605185674130206619275022276993416248315776660146123332353271705283604288519924052673816626597367201120487510015363521968964317599266487319558990562864042693253217887862965018718750583407165062837029733584558240383999822999780977973674014427361497098345970424515300345163543196587622593387304830570721885424247512532397259642944250255467594395228870402638754010230760678196158134167825171080966373671458082584955737222533441288939538615932248932419988441086765968449012871729739553378679333416990832145489505003157013163441739225452512205293543438547867018025475530092651227373222415467436818411333291166713329753298003319199300248544971055191708715007942591865470909318183385664706786063818493117235311666359847983012033250274494581513542575921507347839118492514425245381034194094266826960350193381340308240535399816050671117434491163301007952140011016499222337687887276467255991582334149201576608506384266887253831920802541461349997481250800311104672084503465843292618652487746184271871842835147675359623718928775669726179634116358125673577074788720594008949212949890852979982328288430334279680314113869000831675845689591392182488063328530731287615108677309026914619164550660945905908309603926319046735047538876998650831937301820666471678756245717933067809661740159787790327344192857434008617486490312463803418268285332875763073376814902060655708213553091909435681035836309655237152867905744299092084311061489206180241992099624428008581306110451544876521481425987675997141044283149712709118068577131749186323402399696779942470956559300694536263002428311015409103656257107812042241495767228161236779048999219627286418684583163030538532774452737745625992894555186796240861943949804652260934677490739125124442019988611657720287927554594166336199432379056169992777470328205593606341164203359882753095884968361120082920444362730259254969388714408168182533540042781635812478959744666439136773219818185512422610454061330693823131192504207743496031522662647559309796466032653666640827257092443174194063440472503829395047890622695880909662117910229490466647130823767382238926348775549647457812881155314405470962399032565113579428193936006691981714420577043175435966701298533419056985246671720516511797490524984961734000411209125772284420773509286986389047012738183630851009834560769566420705161207167065183874544229549141670137961759047125663075698521424518302781508992731307018551941914915378155625933129168815789130041402276969015063657426205291422409689658083228174312430299515562749283779258051883503997546678137778231913252692831835106247531448456013393731792197115137260317849334267634454263253371199335296691899706682012098520146406011472770155378393482590899067041865322241577551644776748817801784811049508456398205612693424105382328161968852195880623838242618884488802994261523801184169910479446299596593674172568579402825018819830664050885471220578003172367447399911208088441778751811395836879719722992273345388021089991087110463839937748162034891025769125423945259387496925473232139111866390094248875625491421201047656617765111854540259944756393150381255371260170020560337012638496516357039882414757176109359583811896491147798215503489276788251270943873237893681100771533270791739128015076306478883966128859898041849912981593078476679328249407660104490347175110651283566524320441277420985759862633790328513312880209327549264011479912297924669575533382345612903775258494137971282571948944803701374397682410769162493034274733201120865071714219349291218379112558855886921815552471800607830527372261225760880246335870342704783705523786456185603745629998455803077897206562339299366437293229108127780114655671217125623624502726705202024362104698915403740203322171226747478821604421723145689926287221615464210227839025508519255754525452832324723462541617133363180966659179516668140392964972765448972237774400491812238120178830842594435587250094471672602181425461706621096047611226320466190739383172757028510387181387809934013992011604896876227018196865163343522914593709404893229873068839173236644687168345520817382547683618576091696184708209351770613582634087232476625288000801793432382549916825933967344299388788427655672372903924100766887546704326689954252275877834793989863481981890867848025984701195072689145823663053557236408638667433351845080468765568828931324772167444456737804521260833019324869246728364561527779599280361423148570124892157437257135905427614550479029898242369531831214430851223397202333838445999268116100786416262209891414385561181367326901668832651464595526467348225814122200673657766144915160872926589311994891500750333988345889089587795855886439937489697445521426570371894981418286675296469388429804007151634710818124471275985682920930925336478353412501422946187686583823503745143478448018692336579897150040621374714312869810092678280711519562745159720756829403998833093440533328461245601469506694028814568711154411118673559302765968322120873319214991350881178230728519679399770545972806801945621954224605091099809690664544718122925717684848708220121956170524157096830758775668698787004194560035426767795113649985459658002117885881154869668131292266117428805793326519556180672362619213863751754487055294981285299426093251201211342321306516274170848726574938874280211119516460642574452800752025806880770196560850904955727238968505601531036451233733627670123953566866383699951724152887439195081299359924117737956120126311523553120160137282366953164681161083534755200729797521756576243732040441485167623721542227182700360012738108960745346925275704458991074878815639178828509816988802896403498621720441561029203699516281546367885911960008245599098132506985338377308992316780639655047948882440226885904733406315463702740038485188857279574660589340969577124731604633650948159923459572563133116613844292356837432061151102555277709777750012561352473888053403735651744929348369828394857876830858979637843640201238462212996396531255928127078141519674466272485185006351423068842383055028944063455019105116073768985470804700615645194136254880859104446013980452869727397710502166001675937443326791616319193434709892837966327366725997398273218541102335468469284445432237348048314130012834623493938061046926721953707580584295291617329034770581304754109994542738132808287990491697423763096663388053478635155536947237805942525440252312659415235555535972235893752484158222020918934330533728952159123099381039111169459639907226110952094079625130809746498509505637547887754576655796016659242798088492946159876127064591466572378520116707529119046211004385746152952843066012319135828877169810262587905168435286318953213340324326088569144914319360593720057937781998914994458583344105875896558612404592556002075059151415375587856164958842150342252799777243088976816592429000472042063570447645733454161007214307176079283104357003936523754897730805170597746161426948272479974798527278982089910537853794683141119167816556758417136643439228901841824224783791208056824269672793647887421294540590251482645678162239335742407229770999188303228621037025223008285584500961347012257096661886632936739069079155497621127526275410830504616392854716523489879824727022034070724054727431887677783864644517188862236733491603963430065757313707586999156936745983569660170891946786373095040267584328184551323651916970803571618287430492171751886259021910914803129377971222508209436805635736586778717107549649622377536427524697045331643590930588048788214863300032852071588415377589888116303921919691860206409481450618635681775288097798536815118806825400185193676041686932144732328511009519476482997450618565344362647960741948588552677818407067142351332959191859934477112052539634473598802972680415873026915320545604078778080708449374305830878151312759080818035386757605298643813478119418298846543753638012557705677014600073961648320915313060236748935505248956028348086962913977603329019680383209827453244770817953610193315309768511110511032013440608491321588515362875987579861782434587262922516231232620743747076683630724334231327496253379064459852887368089265434883051573611364798827337985667595463166793742187965862823456902716077135577669003180079288980371309088286811357843693197909202363065969528986412184774925430775905557138363311887823756489637345171731500356526141948135420451639000535179915965718395777732001419072741475006157783855887146139521703935592203712781572255336868087634663157887326321557175521701659165994784409421819915417133833298346048832099500577904512728604786315692748301904278477159112993933952209669975833065932184850821778221336424885184758257017537096883070919283488612816885212142313832620442164002014877681465671108011889583569999115940806678155194975114663593609351762619759084226276497749540619452358506565900857921242989487736652596971285315880381036820589012340568376119172613813562524301432920987603378275539344577645113846233596262990369655704603789529631526663647860998719607356111642439834515734809362967004504443220510360098132956341759209903743296471722601283545113144809425537705088724213869522784815183587747561956857202792845072350093040172370549571248979349581139876440194756584072589875763027870107033094557165353775001559363517989313532806632544718521923153255647170194232472360401971343681747183902464715256578162820144399957229408486641762429034842214811482177686552273321216156621739854097852814075396509460040629936816075495022431245155908675638896999013541308736093972888304577265745826146282884605401120577924132111868126133544431726518586272743979474718523641371502946968279980505575880410880628401879725544445707009043347354497509758840517966389361870220838802904587438492781271032754984398698036777813547616018376029324415182322867865432390143223130605320993873324521858778767948779768696829651178999149129520167117778388741877846501995283680587012054402510021470350084782263598237533152670554254792824330263401720795113092064033966365138424962832861733983416638897372755047868577536445612955852973060242612802013282109787180260544420050847546582818407236218743666454039183831344066256897859582069363427408675825895312482721863777353131986639601941358995208203652222967360665944329795075230876455744026938497991016123089001200433692423035672155914831459096352411296477231521959085080855546898728763497026894904112257317173744295536247070864688460973694729928439068775651758681640641648717563795569596535749719682219625188214389499358964741152640865762741940625311691846081780938434329564953589003861362846107498750443738211262774409775170164953032639995136632729126426005106056648904294439507539935510631241740883165771000094884477971637669151857877470759533801585530420309669093105193855223051199685626636856399020411353915139247304124372268109223516668385176290295949715701781252754168964921655907555277098833878880840187317078392725273976954642189260987655914520082661896691343057489115097612413538968987107797574884725025529849157116650226628957718952562245955840362153050364233826151244557059841995707278766408053945584531404374325654462673748078140179975488043097213966909977957515026329961625194852938565983481795250331161143227228010309131211198118417904864301832246247476222169368682506881643051928708790483717464858061754901226331435398802448784938839224355136726936477793022991428475099338328851180859079478418928511830902294262152048669259835937313316106019234521778744090777303994020256845560221202015536329733518343949124319790721063897517322887979529706091398914147688222670676588894683875899973391974767566762354912046564079682440649887095996857393966456516537120585332309772630369951864252017983734081067801121554232504481229802908615761614662371288565736647937389978899803322333572527351484064700850933192659235558008788218100514843064514776214722939213683472657754850234044026129433724777783150938693069923522840137378918418606485683722023584513770216744366874876557477716400984574265234259962614320795767148734878675763640981135114239864701138015468911853259376595540034432195370907487345289309535453956427386978714687586561125815760637584759237040674643519967572962767443479002921779730853634842304674091523384767683713844693153764750496759015161024838275025814828605770454732133982474047846803292355983003811087854796596972210944987565607477666055834264200987984834863157957264785737405900138422096907741209667236930420199678857306357228149558685870086482473379969140810972414492362481037785390022918776544592404658404310388852363609375064411324495740429057605301040063430882106577461644810130460713116257096118231131067290539734840448518441815868176335946005105799159073884121132062760157774330326287129905155771783244803141397237834074498045219747048404877568561175326085048665078085179123469248515247971019567624768010055268130726273024245058603392538119732239057461341539164135871832885406146543259550101619862672721910043757825532564101850427586095035781829250093268015971098606978568994236260912475566250816231759649213088127569716300885777544949880951200670254716034815904395867953375343128125623693001437400951125592055344886656546091865375696265510570594703450322714125054247466855650103704925901264154864381979691399496308957227377909769681877560654489339793870180729813963386472003720664824992754296006119925298529876329534413192755468298891092167001986518067225270653872372694071171971945389082446651677739530554010975456496264314600767792039663545210826726636376569344086819142308292243443679854281547838815103299421636168705789838041035861005682232488870365907124723250895085055600548714428227665176263001526586689419224417566016778319324162251349664353018646047415636305042078826682575843461033285298845243602637629143983214417545418096525296487550890668960281879929201448312326925321579266027053355197548729667935289534108930826915888262545160189756520678281729576453741653068734855744540200873460867228633757391508342064958829697262939795433083712463941005563808984654446596781068312535565630241764599734425349332045200694278992145214198337648708165535751841691083741643998005423857547334715298298656475103152752863416192665291502684773990586838782327950142807797230804587111547179442865741652684468415344176562023166478094002342467811640815779886713447228002916689673489730431485384831954737129775068365466209314936390897311468786684778288118837779464643391731062572166502889448924162091448175400677301328609205418521021435612470609222479106524181296194729305752784832847479731919472881359608722304763058428096857968516936910443795101842809372103159142538650274776617167988149737838083429086296137863059896533174330464374633586446740282168914274322577590720156600632357560975525097387424761457261613794854114067404405112280351895303484690660619696233852133274618489315871474378510341555020801506174469789559356725650036737613604284929773394147728284910253282310317238752371146226408667110886663857323526612751923177420366470909853454754592403560281111664781044751305205890650545968994888800976214752520758802449050255566139252538764820066663369414412349050417032073849692789491025570290665245838485858429829477829093659815277315018250184023469797241272184533058295755253300370498845160470607146397625031054584173566900840769363287455594348870635727683035014908925705093080060508238313713177673008993339817026497061221907954989692758995528535022041010990115235946289591402222954688000271351981659430901074294505227837007912311286820580299392255963645754607557023537893942773901013011838234739819473234541519337087216087107668753601696760306468253306168348594133900448811853241310325935220373764738823734400287896621301649300358877261461559979155004978911603187538782202576675662587022081012327343150753139180359248966608550946780821337962482852862872181389292877252285236590262437064109445615186279918268533221367510339500257226389938549718007215251004481976574838556104347211941323520557856518071815956117769049584206329412780581983787688125180205614387266627549734413802838138881961735073308332804618234436697018000573899504059886701698172585099749324156586985328602572594858799378294273639971915477398579433572717470735642806528465860716839304286337383063144989558167207749199619570937080339976748301629410524297943257162101812302832571665689444739268251868150417746481463331893683348230178435064805492137587436973541596798998744525500933329515230620898336157121413298692629812355476206601878981949983683596846164875154924601101445039340379022915123442328899836736667918721993472747230490935909484135274010162789578526537103087071518905921979649516246870582999282934434266319141905392040016557926163850904514642339840668553522966198966351980765395620677026194440071934680030677604712994460294975238096583681776991291170370947507904041552487944152580715171697241901763078140616520385803563737855626123120897915925331041708131357447620937619677327520826975482768537708705618417443591960780400293561912629165425019158167730620377458798923689199618450785898124359596791395719810293330513290343314724794749804866119791455797741755220314481492464200666452558156628303388117266155616787155043281397795677420634511729333492544497399770784825651658370285740412326858500078466185041632751138715757567512263936919339766497360024359841455444308042532411047401200170544131838707929197186321156296009795362735223721280775688002945617143669706291954338406627804264176126144972494632495528796263016181602836140787114670681309154440932768429701273585693668280212804622745720946631438905381482479824470559434848023184573668335610173240399488693468345894744715043744206205825404265146121773939093277919692940146974069584347386258211573551388489971634821860858494956903300556567607352303584687184294225063111798859336770958487497051975507438036636600357364082103072871698591887444370443903245520497530794370755477609178535630805971482142855670283546555537792251168807835397284815371086159237474091465001560925133479235694449493439679506751791640435295348430880331959686852811941370860274824688139332929363102377958894122713097530461251917251305966049071350037274083346856484122238492863819992525952689510421575702081434549239044269923952555839513909899089860336154366444530757011961206289084606454544198520484798705802614008418078188026100847222728476322161814239551951960799367086051027519788172543804409730297695539562987598204199136323635220268075542426723174675593815929733605554001649326716839686946279518595739648591988582214071208931631640868454666459282882753600782044148322163127490810712752956493722467274161468625868222541797933166179674811212911193292365981538951327965621923878846861329999774401941244512220488369596052025023530163096823604687198167060249715878110455315754326140243470059818146158122994015460942516169204195193153730592255947249494429078919291286752939824300787406651117929236544473238063689694015607547191971666665320576691346806916664050838015564154437988320318256360481744593269290758241979429612477382390410871926981078379987308916064895508772132149546066881497055795522353322622944013789511577608385932911538923514695159961016539420684397595036278375178072457674735734940205358769144934526175534636289876884357742587247711946258237513875101623840050759433351597881232241710300943465584022809813013203972445969216764882619650927624451887115669390861404373718104115457011272793503820016136134984295322737522265809310286562262771412596702082594957583277307690620095602818312174191409355498018143990183409939586999587325955548371963389705726660835284996333241958684684171168078180284791632102738436825516675797249557860333930271503099382117919080034986751559222343190443937039915092986367797384518887086097132846415188028389945410884709801052033187212809524344056830038157135271694801822579236762350267527399410612804967753916807743407471916404924343526926079119900641391605175925891296327997192333256513216481856589612684411988073391096275430999712584264580013408296673936006475009934834331718804068708942618628641811355792188908425677482192471965790126527172339132254849359074993407581176253563279650233768601901622456098414004157904014731342461041497204462197986219710440432460751953913779811276616731789271715628819445389354191571475159773361243603593757788269121199623883667460007021829220013529393082580696136063191918064956934433010156128391453171387959268948636986639387125533172695007902874542091534315420410397476453780289454665028360023190902523830401001363516182259534931654527300832041338764461221241279078411480343029459817848578146001199948774133398852047492555783507883935736571712612163414629508545555369678927600110114090470519537543457383788052209043209898181438453881600133647428189879661905876122829112657595656775221594159608785347672033911779301553658342012595233073344464601297127091319267477951630934379757013775064299996348451714249611732049946019053038726218273394269439709795289489349434063934677112494172052911468328441796628346564496908710981072440028664324395558362113000577582702870667386905400261128100901539594518481447168411469027692941659237189421191126737882230318018481612898136909006280952535332467620711625608089829778992760705120549512412867775453191262731725430411346063233496616940318346152308340875177165359138382689080765299026424211906449797279338491495781342450891941530859685682207050237085088921752231039474567081508693716917138628701330190603461116132498511969449373646687837797825747122670885172926224404716172407711378868210213679763307088249144802124293766575442245269254191118419683347808094874800143258138919388751631920166329615557349091081941704023505378516304837343571573105864705719704006641572077343935212592800449340299846958518943093976139903619540300894449366587978117166818016136322823232891227224330597813371952081086174344167644809795880053315664067722652184343250418506891974429777045908666244951740880026220439320962924914443123184379601650429363555696182097598288442057733522882099669126973686147458457659044396605192105042929970709792626698406549878135280024718026729376437581127383008093991267688805262294427095307968405250441607402468544617604542861766228854796876510204615442208702920170976545527260155398809705821077399316326117542738627396018418199628176366310476416602395089093885385205916088917315676602377291410008004541617734618344643323592445902248746959884882543114695552653277010429359309969789116519406958098308287057815872395033361271345579669585504507442664684547369141306995517283675281113736056725880311099132653501836182999473550297416193625534566750328178531310424364129231781587783419215651507420842246085155207415713025131153381685603938472065762032142396501820594482719211412624069379989878816051752798572523774663173858971324264214899470191449456184630863696005899934311976981086008839606922542885365176690007096134717330648228312291860286216439928161226974779624442101480941380973939406024087190031398445305738021203236421676586576400350070326088475959504136807864150109583872032402326392820463021137579121358949830097526134549528845351248786432933260624727753316365561743052643881333552570367158291323112658709848845202915832874341093693936032779609422333825056079312300491420338491581645875050971460418304912550092746398732412809892453305286710054415214226805065700218526636763331900494698710203540542693049887632012097938685460143563072295740056684400808538829447968306225485900237854767132438157851400647685283572346671106423698834913854769738663856691159863272814997874411579989442558443122310828656805589057693521353888782542259753647280010068493835788443117930060211063639293344563408047952780195812637860347497739880691613357036538278925454684258522434049541763270319666576380773601479853905911468245627569648190595622718247600037598497017539070109619585511515015087719423697139572198207490246231811003711898205674005808443857114400671207529322540907758016393564911103058926583514368742340340927634578146730731723349595506729351702143569743440418410373111433544150681035815885081843720773933621607324251299412091396700641144727881487393522627542311259156723135597077589936744797453522590421966542598721661612270332657229389367605111671702188271815489299124868902715137412264990513538391831783386874149237976433206432685890725787681620272074340940493260070746687316141065969075361735945826144997717654422353531810408886124867678724369019552159724377569621601308574760958480577911070192155021114146755960873957112504105679024789490277942290842684176648065044284684644739013630441577929941871456938815389562406357622859186832841313920349866330915531692137427156106412186040521465812016895169705364339230669039661425385326674424387343269907606247605678883051201038074959721532343354099988806920763015216421870487759781869185574295100239646760483091202474856652902882235355173435751775619446263515224029374734879465213101157284350155269328119866387655740129337543911780032034630461342510273528684097838460776192705440174509144584751776656737308305569414761772707908269286870711668783024184975770111721779891720933588369788908099331312550003884210152229138006361129004790588195091567522748236411747269482507143846823163685625304554003454191267796225936226741431223245692196067648980122012715895352168295316411883273070498983030881432767912070115429142055342260869120410343235157241784668017082627180739448433047197265043848244578861244004275933459515800133651665843508681097664487173825847181890875220798979792756789433177510816509347052802482253016517114238816597404699419398226245742790845930602723538583197037492010398265756860687619450829479816437425571612856385161763760281207856911382497439968784414786583859680519596782901879697653045624876331665414196477180062352928623701033351222617703764483770099424959843226410312017586203954427517272891852645820175038063677818897764855285781197459978806109024495166893706086429780264120568316595009146577097430694548658264813876891706287904658076158102028600018916323088912298325651508946378368644799964984740512057000474830916856818777941096132673983533760055044022068441720211785518147965986661971649308311475750046701143247725566771424395487034689982356259029375691464028086004672989454635066652942113108832272721048653542679633193418574757089070826517589479042346234239908290567858528158578220653665140666504204474479464040146496897331624727173911084745559251863604231005391035112782175183503932355360737698714591010185522649552767111652106918073983543578723510621570919250876735339122291486082868595259995191181570493680854352754030880738297374486953325976711373700284970730363232830079386144195413977466533146501189727623349346873140431568417201077543261820371897094920531432054505633541775995116721531252002744610543707624542559248077346744278013946238239340619003091476996348092717149774363506524960271413164240987724094173639033591175736844514372674341637936029706498709989823734781692644402115087879208573080578401379687954276639454331695560931760565461790301925580277630537515999001411289953866332426933187392061664569931460572336844560233626297226669476137718927429318529219989078282957314771717189299719681417550584646202442350762991031291308095847053464902714072293369591411988223739007582864498353109173846094387851762619701082354360184839472865263366489936048643688604158102401960315676621861889020984608603579987259206875864728680421582331753885713057278342952892023893487397929688653994506381501822066147290367112229710829748328171531388820732793281256590249498503731172496449051464568657230233268404881270168589818141616038215422697284136552901774261320282627622839780400510434173597981572743705218857702728379758205084175859222076983890859317745769511032727431686252633466265098064476808055350973836988473247231611947521201905253907395709487410531839728008018666939166622866864977278357335716870918758558296530302407840399581677586727781620724366936615598486279436220631670856668843992627097539122069271093238370688499636420377751163464899529346740684064712839849030087859446914004651372569230285444568494146395809281628762450827789774373564707951625707864452865185672636678279725303461975316618294738305499667158786296514414717530566879694347788972267584554171354085125646558962772464765234616351450709517416447327678446867358656115678866866652998170648297582862287377651247246435103670920514495471083784701355411515022521467507835763677069241001407636970730356623406272824245994009505926654474592608506156765518552486397806514827134761548512375458094621615969507714349538947631762653284415210936376172600507939750039929548107704923265171441783036484904168899885940198034641953769882483755363230921973061094077011666304437985238864003000980150787660912901054638520544250647429076728480488556939002553712188811188069877009367073482550254387022062021922804570732113657545866541901175726268134607764032338863647487056036623815394296731791250847919359135556186911087144709745587526245150754383427246588442229017345960189109207897538858264994785128593965188341906769168557640335125466397396640659865770662362438376127397980940483617654082427544237025094451654810778730288537588007840758124374102895994264888265076602201818354979194192208118151000682757764495443292874779907031562933600282955652442847518921675126217076640443844271167289547649507335828622765067816517409832500977854094765179532872125629626128596081674721730539769016757165982717026038122326230698929348113867811777078190695655164986274123195784503359358969061289730323566291745401021476351164385257902327322552034729907433189167297942949040125210136398814873692490791637003506066856207092168001942828586923015107375214697886202379441078264406955224673905953338390141810993752683853174059742775135640703919471271466685145592339579521392435063734690386267678620404155817875118574836686684396221696588676072445172280868895175834210593805975411625679052020801442945742773241041215034218609092609964040058782806548275236578960255379252715376518769584559880240435558102836371232832323499200707862044488730714992201898037775096277575871568191147924457334466157469245138565259208296890695172927883790517520920388432104809671067314658634133345834866813956700067371834889077935098514990037931925162179509979126563128999620362124848467824537826263547734517143225059133302505009697715865009001626950574946110403948743989574575231385751738173406837864870976388914395189220834355930977696059278144768724792013498378777602568499695717287752120593313959955225717264718165059317071437098201341993642551112581246625371106109185400398725424300942644445410984836892252116008407731063676928265977737604775151899856498231873225202274651934827620234368144464527633868023621448233119303808766712713655453593241459230479295912446882033549056031409457128282864324443805927485235955655573718459445713833662456259399932463311922025499718939405472589782224726066402207188667977736592608684993075010225326868056665254033541563367344028058100116859510874807777429410268785885425293619890746560592530907226520907743669368935836620921109037076981597867421928564083451780311115101791431205699624914315812810027375547824484089233047637484400394956688723319644296825493423116760496258249896428735747046753336264302805348216915782488660912209888667323381640978923509579458565257166959820777698076326109259097371368599482417720341774463141903288797002561505646198998832958003724436096255348716772513934801343246842179399915608817074406166946870651648021070851862566151666360671040718769021174290014019164396308887410590733195458585966199025559940598467120500159489298294474042630117507120457503294013210782385636389805942463148207379261035603613621299058141442372655475732765610482385193183406717845093099775365770715323242533832715099309228272199405265283683194513178944389385881491641647231967932303854981136713576389103096407895448046668618296115186495568837146809002724629015778164360976653582608478504063451108469535543202276939360006511558338195316384250264325410588063661750952328393149142427106880580962427779979757065133998413410357552353091589726029629465013766798261261474408837892921646389712468009879267063358799932680378578896161007125005514464694694699612463975958226450516523496276503701385609245006265700689593226344919309679041815249824438406621184132411042172841051009956757972318164714298844161467803914487500895134729513304176991943883107104180293583898107342047945369932778391507741955560610545982243634882034774901352125526690317104785429178720292460274579622423599932176130159820183662533076200088846160751259691720796139309710673278772384509302848684352767669035668855863349180863133238437158036556533528495598119493996836810313042393485392646829774488982912832978867650058221370830677372577824073083975708208901086813084614310496161770914283298826221332242312921914506354780510246639397323141258810840364001975969246271818823518402926209250382171423211808862529503689752541604912082208457803094802407477028264616120461454941321794023955630101660604911970957732225143305375543117002216508674927338974613533235112992447730747197534056422366076696420995470381249232917724651464299682180269073437293365280210209895142552740823999861865884291532706622664994704000636683191704285633297892930016706669344374338061037287550844147060981051932836960984028650652863757494015037078449598151977999277430488377807027785930598702583517850380091064190183508542129452016944866423400406846130946615552169990045841420711330149310200635722181497849617314575700227131793693202272444010328201239936794256829711319140105200165585912142365679420944409060399973271709410024900718503292974942836740597003139043724276357110865053279745185330543305633941333486141754728676206589264406226092987432586962706110268515696832166943356183477899741363118487772559306940340009351630671583777597247793837828627430840706276946136785617140909303818197513396591872946462329365570853516117139427955557353867162773596902232500390242322223564782410885838208640027423757689947563604988916743915034708753055570732035711789554960071827248460824967365769672804535202658699213431264212249783493547103246749598714259332672602233864542526838116765076849931734528637203983967756611075670477007920938713967130610226862556370984115413522826756452671924705680175513228203286857034965027533294798818810423900921363010153131814206422289391600183197748402398622079711911365969143542509889499384016974968699670939214339471305754587260956890585238538148624770312063763090712028447673924741237888440015860297879089868361372991808388939910780304107548003193101400657645861827405659622977650154789202271548177935492331742558380196204947662222407981024214199150403508084697743972194285376717635743352479422400035974299658367850958767029656611989543271202072405623090310345075446384644250090234852987628917503199498804408237638668374640031907625805216585522313840634661611031222116465057149914984470073825249526467392105410607851588082929881155435112442663191534093236452313577304391830909082282568899313027405315267182916974546799957322112896772685190175505501419175755302970760656730627081675531952142178434053352369726334482759207597232328489649572836159246304384106468666843607637250295571437730722398903849946181883198992338810858881971279982988346306127863722892483990686173255278296061071360184826263654602336039811782619486225313429906029375886443241212107630138662697973983491512967170827635653919624666515592979897122452372627205279161040745238422601754179509340618870991660924483044834805441390025097938587883087460222410951613765039834571867340550930736965391580636612454086688741519974094078943919108485544759135337462783513403453910451975870733441576663065071715116336985024182874248944552178768542271290313102514236079269485947978303049152158185484155120065250074942418513490456185230829565479653965849716583085961222639832924149945357405872980736893464957375601424218626599612576182867137582934023606839540322505324514640301468036138274283816978258565524466546019383322378594699741879299754103993897337570751780005793518191124171523380233706177075587099482416428292880008882707342620390177202666403555680964844491975279617974607164577695680316568582793864640618668288312552459617121967514018012103714425955305255588652794962889835832568051022314868478437726186054582149050480731943067041323345985697338610207320068776077031915829326190893648689200703164994116931710508309525417269326795348025803149648067912574786437838836927884751127235022858863731930998719539274944230043053241156506260204011294089233278699833903335429242222975416097706544420110616781719426338223264156338978617908306363351877799378433944604656870212472391284394355582274855789005124180216475620608132496539099920712987416406016637459275193571883373448290800591451606592267626846671589917514625481716125727096133852379046760095463845789802925987514958560745998500614478409784967016464244860140715923683093793418129602320361691224154091446599948421284299979430366377839463716562834488504063696010363466754983926467765874797234560882117661722973182832402101034468029358385183746994205848215179593516054841094756644261673518625010704654339455728374411641626136054440325750589828328882083110396506035389261427288320858874842329480510509844301932221405328638035478509411218359962818196310534345208409663720667805634195856177341313132916336025441549334184237154066368174064364001442115501416666491850553824155749242577126663501511759053310613087000045334514112074618168550237362305972878384199182680962389924542957283036177817939560181639130213766829688473876150555670589336493723593458191995187614801372408350127646483815161686825464013450224922943722576435414469024639646491982524998465019084070219895743070721160368027247193519768972012667849836063603250670015830335129243230595531456578677164868711536415684370523309636879190614950042347862183563402099854342240871995625334666313089279734017205278022393881111045820284065487149376299053262927838878545418207318944883076342190193728624017097122543751384588124866092159965269814219177813620074280550275853936976784206467002417724608441703770222940066244638309679573195565658021849994465384827499041245100461820872908832761394488268940729115915670073103663217392248735904668983281316331450463942756244588811481100652189831109873713774440647456449841967919911961205134704534900888718304335730387896873836569404117972549417831708711355175871307043539951925517123472594156724023514183890695369991425050198612060760683157634551602118008691308076041144053284841711214691400910205162755772665870066228547105185469689366409862657584952606478827313305419191193444734188108032777943432442729064723796396419428114439386180276058948633445629123370844208810937047002101622513272627843810567813999759504511406849851369473307564339495895210547164631947994854927215622831344000683281179036684971146105578070443078363675642169500209837847412473323532297721119698172238401281292260493363754924231618188704278863289142374041157728839830529952527188119099255536212129802579975770193163007140506431707923667075926140722886395384814743784982372222068792867152322492846667396389560488020059281082475879342520085342552054622564311305008233153281774029560453056779748811884281510636005175900079501550453566267824604963805023857375365856303935451896956852628666502175136447854221744971842856787007367763101936876020374501672115471548302354581996929734922089840405671275897102869560589729095644473669327999165633786214539373845996135204124698362524630802179517909916339358291200797767700143081959893222609048169893099544274643674412942752562404527507979969465890968676352455905279427899904485821087756647062890449402387155157936273710897504891276586828212890732445700281707637792073569152428079532509723130031450118358305135632342815713527651129921340908892644008178455783040389062648736226529349870312517218868609399355383942745340722439744870229100956589461762562617601419382599230518534124734931271416995936012922894856418540269650248671796879605910981789847786716323397530962431644069437921538502583197861420904955778603847860524092514713923676060263571613090620462526645644427996072873003483057689901554511108117096778668231830479867146809190419946047255478747351144291586745718779312239556755033003530435438620557617542057590641689730413011114536822198001340886522098298999394708899887262052219090415384721435178702888202448202619273318777272437397128893308507272179439807939193073693224395187155505386014145265673196571104331843227448531427572546690897389347328151630066120864265653548093519560652735985001862136353229517533387620293234954772111605271396050940560184183783859611713091030112488570440430842634780376140156404510460660314702606824006854401683288547619536572052279105919133692022525222005219920061905001602330178242684989882041233154961731497798747655429776022261686220543441168956649572282086769586297496853170512686785682203371400324057933941190272437306216674817099034973531494415195049314870615160591084266232922994550475785162652090013682921720084247689279513107963501703370229482068920943136205286792988457798252691971570399209382092400974403245532676950421016164467801230190306020808848862628138740333466414809798561653472811676714552003327018404488334953478682372253089701952839069002169861339086044849301504851700599300691760360927853267668899468495369495692300832248971001877179043941406529028834859292610362450477044685197490025307076412812892645824163591457290364364679695638845154134634953882995016778794860647257786980975050645062224753783295251748214529613309303683358276529877637689188926463940370310979692400924147526663032873427530330093144559166033163944503446751836575197375075144865000432927978352146477017451325167854128577411759282829994172401294608778598967353882904126624287129205059934997199192718487831696135857112789298922281016365713161712948005334810494910785093903961785252434849607550498958134112740270046329618964473111067636276625895886451784148476740281387680222926827458720710407443545876405363491127893531275391209281257487494275954972150204016523621573720806155944317779544177623622656026911379871904968751868728407806926398065974888166175730157607592788321213331966632291386672321137446896732054709748538663881048352263590835809176996414955204165372980890834950941172679545490612036854636840223355781072324998335062299909946762274894347271069204130730716895102425550959126441619573677438541413820635298345112713928581086265915248623704700652711393175770595123995441200926960086107925050868273999290168286085517878862905181676328965074408722241220599198740346301282701836900514497044361768138369468374559952833466139672249317280984856541189870817113684241289911050631943619399791839056331995418357084487759450609298276615366011111774885792339062552754121652749787954976657577449647187396921689889983794046074111216203486621359866973208742074836618207285084795226146938279254513331467909407848592218223805876357367854378031871851173755187299761616081926632956791137535123319014465585732302733087362024415358347676163039314557513296001290143144407304336106702979382368292814922361835376991983981370923931885911553372011468697464134481750013917067626017214731604376738962906351145363444742139390419457095857795559303693608122322464086414688146272570882966854236085324634728020983158941248313845499000726041816722285093750429428113037912880016798413393423315009698617091385351484009887031431940267914517533302090975589209482682579223760879238034140339427060502368246949363971086924739807750638209725108536918894623600072379890472676807445080435763249919106319003187175463358580240534103465778515379927356070350869768019415638447971341475878384558585677407993409242167697106449897176158196338199706803740826423984260678111757523227261992031715805104528132246598244823992602470217160597832625910881891790125476917616156462399784237540862162491375717458530303023363122950043753339232637576316421402782601059551722133960521984763715547431564787419364750230735995304730317611173402907266323929009426251849190725407247753245623655693046930605763751254987619573434699881133090512997378524264639260149993886940224682277359862028585133815735066967172704170880954219240003286419613514462571159879495038968447950331821649056525178595463897719675192826631972355494240008850859142766712370640339255600670775569952810956217131948192899188551598714337452037458063137397003072938947221136445964497686023598523653966202622168655932133115268477199281175845380570408923123571723529432511425346272550230973560450393846054655451914845636479227426727066531646886974503919317172583053275135421384664192195251567795943256154411816755647758532712466018289735728111405856004865654528403466534582779487039925222019075543636303052263105465080837943268458402800102447058907338829418450016871179586220368604171161955245443542278099719579221120211039410818033816129644812224309642443927322852935848625604698467142819188380312022719804444980575073178616578765587246973581752809938723836597505484422009382059122872794793143433913720797033896688827566703160610497371517460669944891975571324618433772350202501216251648996076402803725368821481874268124092173276734885569923003401892794492040020210753029762804425023958545427854251305114706355708121481752877241526194941183118805956490221075367551768754157741500716400872970650936213093053629842005476031229639932485596340943916849922557963767424258940077707522174440561263631661026906801760062985222981900067335907555913769423227964969335979401182937422594632259730624406626555226935527525968425622708292576508808920527581178874604999073754737179195706666223454201117164806986351731239301615724711583314342726564101412557105353364282772391535443569551973393912562016570097541187214084938182526494788805449619978867926427315196887719500513001880568721574359483961588828986008847451399087336720495601276125186714044868135292002477426361513404367086798769506269056816356801836288131963882966999018245808915243808966903175124406557637583864919669417269019638781578095848537526774323654933071069464499212668003130359478908777443054781056296351871649202805621339614542370789944879716797540222034079434391632254450044946657063715837769419609714917652934388335034104306344006366188794058511670971762975199882761665364916255127757662561510217650713293712092305734120300661561180026904079901671553141459820920415678565188308872232599712699316748100908754630899028894155354980479374980987667263404789465268296852023594385485882729063131960378816502599912567260049845859852445283115273562271294342361419185277074526274724286019498886382047666444048954530603750391887583366386291942917081149623533651945406837815944543193320211747176185312038920697831083090553921032627525312540909560637953581302703191688191321755066068405945614192486537725075370009549469211113538744470961232034739909409993094472702901031321753169344795182895297155131465711753646493953851842403950871656793100441613681990309409553396435624694187932104432552007381949547123550667903466518401157189344076418373056637691064916727674783123471508510935041277519643559474978034284456073385190478177873512537375679355491148420248216588426484926486842423710277769496202548270369982750956848293026842518639334340409427302724425252970892585247332456229884665584122904772658252256207176410022370265853498544877211182261669013666009707991007266016039788351979469931251157183631950019572847155311414806758999744405234460287552700853464839581131694700902520310359890101516076700739454346526509997773843330413656234741764570390600565507763435616983837724171489541792241203107876703797615586591779726506352325185519305016253528760585653417887510624728479303144397544060990222594858821072784289963102183342544438539422632001650845070535168244076637148707443565210711697699962439979363106559736409368230867877340090530656244341267180268258206546213561172949447997206272473669236454594597912220467301007433947368901491847558890241267813752167826688608107467048839079820015531478281862454567103008942275518758957775714590304715495465974057627022788978768708672117791195365264528448515159520752611269241165900198542663951910621289957254605513940557206403375527285670432175238967728930571924109992344027813490983743464157224512004636424095996256318822175648833350105886267583946676711262876003210197575073824465739744004849005928801962486527884807700001284422145603242470627407110628778204526293248463614996283228085139184068219454398718615235182555059579690938641473355787601133058367563605642531613667542003907750337439609075311124382649286831793238975464843618761520851288192339045656826638958272898983923326709630040904374291397056100140678444589472581842063509024944714813114389737681293416358125701390850112388652757958691158290896004686172914608433014901621950809387366715802538956266020285981047844114838399703535320203117105940191501282738212180045228270490330967639505335900659543345362785617290788244019096364855676065863525798590562047681699402817158235546992381960726005167101087831096523715158733437549757458498161998587243375806102619020560213693087180647710243590833460384247071974456101562865758145153691733336915789969237562006826522737822260342025245856180242576151415804334087327785924337404412465860600824868681437396396362207179409247211077508973536224477346124128500650802194878465219786141936313068379939328213150804299874561712938160832209084135982121605080568739875887409735379325891745831373786357387920686524979445979527049041939327010768652650871477703168208742487011816811062951971694346037611470135084830226544223661787275236105590264524197407301705582763268331655330168741258930855258887337623859292750624019871169827810837229429751590497682065571535158893931150994229018222221320371920726867919873032991743521374716653707586587923192408477981454308403207287819417451850915012121007892813612493688787985806721112015693551506949292092786002201439354424194546392701031968897626999528322950968147206564203442126795049669724312399136792380591274952901539454273659303828987368952858979204213891527213605449535216460347525364892604467033245180499764726362530332200888055055232592669207208828332716736071822846528379220669822702158350109433819820117891576324146575738827945251922204162559258819936787592325683615711016250513005971556978350381318858271373045835724684231600812554757961932205821532614968698444888150713556256971680999901011058874608248854697637804965200391895278782497038122272445296376785247440437578584858337127039071530515059268158416101014622585001129827289090381849321053517494063179859161065473393437411951790460347656975928335972884337401408427829149318128908466107817938694714545003797021504825036053101739721267791033297397378063403964899054472994010742529999235681908377246376103077044038734215650801929732766629380779306587391984058012183736945954951370334071317866975457372771875455161082749394403606110402275882355817883008392258281589880844171358724588406854986414945004272052101255203756633102803662781855123719675823968143452278203706020043613575984605419727277456677823885672795910015882980017581357350949823780932535759769335143313709690294405677401162821234820732424420610229877350084155993784284172911506365052499906887444039074199964755122243059333152365434792774576655407687109957693911106210839056768531839543508263793167371291306003513976584119355297706240183767695407722735074497302108106201214797735684751470501497536417036869902112766764593750894393915223129996846523857240475902670177906462129094833104966053161401527348988467430957884908349391309032845914232511801331646015313545990355315687563047200240413869155945223593388232091203218280794872536501927409014891535505917641679497824605416993962716823771981363266455231404341838184280271208765535566763279037435560194257306440831212265487386323317948565295732181695675613756820919471863142897716040339459256204704443356488545848028106465154040642671949065784522804963799670404210191449775498700302377653464329697059637392089333760873780508376308030313866717128405317555552772371251368153103619724168027893185291371700500184380634512587675561053962431827610282790567545996873715074158108616337730942241909536121884495109789658089522297763896852616159826791833402006627391827823640484887256270711426460049825849882456100566056429087781625000730422328674565359028947624678892312637695351751484163009586644101385538633979152852847688696897087340722644995114107710396535727717862944122527309306152769494747521018991540516113817786714707964763411357010594776042552421818080469703247552004357983457862030406236902641046339239030068962292414302871601156096968712638470529549954701782027311811560652398453299339815109308977208724736499156753211253360221138798115954744559279170400531239826009990152723565931463888880535770610675916189414592782335737226028779409083714534854229394479250515408319393176477175899672927707687267770281311330441865526112067332609318905920555367651290483902429144622981614135358949034117082625830347009157874791765863979270768621979249305051252744656378570044917602036298670686193848821656698512993131112498193653923489969091935712007024734524957309376410532436218153597482934758230000744895285459674486119506856111056615844004577482707841475090117117247269483646702589620907942983998132894612997042761967163390165923758628211750427254281461132257359487460402631388441894249010235452460609820995309360998845855919505058398493222305555517801202553742132138703820488267932783243998620175378092617635330012579032348949773262709802974448262183715480707996480957534585748141442758443663730211379709088659001514271656040982148875747467866896542039628712441466467251735248885814853652178328209424910808758258047785063744489010691564705890347557659986730155882601719932471938074390620346874319184526323638650137994272175826929140725618617776958739511945352887003136748018540138720835070938712313768083255433130728549718880989209089475871162103596780780881399285272558381478640230733015128887898503126421953184450767342568175270478359833492111685691091956221437995563898854328417320169617534719364911540525958193189414782038358489312475272541752011631643410026070470015252403705149561688786040043644072867714167348479259765784719208168193763089754725555560671290994990659858435792457432535494448411819989169666066800019063414759210299240215458869349466350128853699126128710155652789202614437548899789118616359364239949778385552100923259897189005930275486968129599441061007476933199174478015212920974654529104213588999421297882522053784121006553256535737912984915116491429025893666099857111778722431548907838751192809314429579058982713413702520973154753269156772106577604924787511434551976820262600865136062421308018369455034761714965148051367797171606521372565981650923853081983592190636170519220344686926948476873337308627853675921545360575022934478904760247676646910342990064194399949325886093564416887101575051826792955638718318349429040998685571579791117742454455329204112799357266300349644768231434512453542547059681546875774313310492527884459693055387912743150441559836528722402227091435204813143833506572732145562308421243790126776973692960922295617208441761546069690372191935748344953785387950859546079254644458736897949831239103171180217531387526861010463904428014586795094341299556159570846236184962873839875997276247472927056753021326436927771145170480730531295863908318201832780058302042818569902006012471640896207260920513366927974137053101003831515851803376844456107088499275199352147056131046776621482552518925659057702380684544191632512016407716056526202891768920630082389500177462951150414152507882253327830098078177034978642934521855321076894523194677166068812281971858416784807984969149913553002109080274861393219272340790844685265042695363019668398347716970214854151827510220793768774750121803078227329450146228741561534812852763262715033808325957821999587170984385115446996872453929683155345234198228783831848989385037636236558945437129241792583063430091138539802911682771107678634190898246665479905183866810029515603779567649462442156955605927687864790775930000887025539029764927521642208832089569179410859997328502613034053580736801174883098352555593742568526340462407951021648827814646792071187439741898905554211606109330690073857870671650898718385209036049253423507899593188449510751855026804528988079207655010284073339439030007005641874488140896809780413582960466287396704519825195383909326381034767192581054140810028906451089500849714630680901873323903176633150991104227887799816397870757829628246424163540471954929962611869591866521097420789050503305609245910345951680990784051709442178536814705777292942823693898721040711811611551035779144379748690873214137521761960507339273106322515261359587735631977371116197360572182859319917000465383698708280845477026951689913024460392995321737077808915395718452137763745010395477701117304516001339773282626795596442640618255585430189589918486971501654345020129042030949890732300227113771395931723248357806376322645861871031930058688325823011920349623476169348220868051893094006461642160711418733056874334179088376275213290603200233387073890187117314267094749818964074808708822426050433263371459402740414997415273322409160561536257375159003991568265082301721639979828483295462844453888927826583867414683968292745639232186173819746808262886719821201975819508631519299234253695955793191375804928813243149245805177875055567430414116081296899927628101299048498306006968621684531533680976419843701467074915613374231139497836679929299161975880064213844831907295596459123835961984011860916380395567980276710228824579659865150901866221943428354298554827019058903352342211118315436813897040988683630787478747118486117283374614759823747759904895198010168540913330931445178670058268823147541196233485784449544861750755439952527669429556863998837706968435678335610990800932158888807326305277812422155955688008784116487887969747150335314055592764627520795548406032907502184410381924070311668000386040764619301585082590299616594819489729751163784901876921124130824848665724910718466128710535832503216088343202146786536870093814757325345829669280912710547713137907735182154140892349495521796407760072590143815836772368203345259570091312348262456716384452730241808673285267013536207959728738001448964762001685387012733732970685424711600836388715470239249924467784291203573640382065583486825680505518214337338467356174976650667164584659538403936008075992816231609468846475080588985011117677558551443425322211864281201002284649284290159919588977474964874186371945843959087674310294277506234367634617563228806895231215074776211459261169331775005654483829685608517632511577962796950026854677901293618199417864049083277561990287251101893416716006573134557083620651253226380708239599525501847770319575630738890424956192856451520280145960892669871102518936482450399220464479743204433087052045354872058129657754959069647368284637910838510162283856187508808739213182794327894183062690951059498709062200185032529370524337592456308457985474989844068691288399579697877200137000523242096024533165973276789151800804321381672884649449424231240974626218876312682347170430719926799251632686532869790038424261865211853382209200851538037796682698924270212456840928069628843866073782292010976337516182895604577234080612242537059802244387079296287985252279657797256434229625957715391350862858177282892951387897391365566258180816183337190482701921523822871302620367053432485476023743060389824635251615825024351790505889948752943596557392929165152740040815712371430468760870842774268293333489434332923656755076194939903156230618348428261460796069706226800722739472496504562251511944817221154545583928539575568763765983329522634365146095281313033760776306734111022685133428045998138806293307920667452018507981567733197687344788818181451345366920189291124233751688936379379352846149568511494954993503911817568431964590121635346561365999163862952805962748450974737332644035582781642096877432265691182562385407305767156053477536777689378353407488521174800441514733005748023156530127437141595034850775430884794324266670987912359384231471906663470664086715404735762757437112345594620749458643959168689940452602530990570994208621013151341505170228870974816144607378317798678223813091849602136324479279525568865282373571811157370648146716752896312240393033810831088997530771870570272400156525638705163709728477698760902128314537080605454373376575819151980518835036911131372037505897609760614319308039298883751174358333469109033445052734035619075781820028529256048843031331347597962112115836324940416891640546466319048395103209075003301048914553846936782252070143083869606188896169526918670102497543028683317800850499740132089882463116679844044594055272469778953783528879964051527666167095042540433608580165007925807345470342575919853700485026943181963588270540870801116998397780820396269822529399315124590871805842073336917390501558317007076987014945344891652491831121504207795035474083129831920445689365400507767650416977960100771689488986443393818843545724608292659901751568593692390512932398982719682469884861128959190608524455118501457262589596467624672716763142236081565092418485048483460833969574297499660602889100380507044624659437890728037167700786939306967246297352310300353491827188048003255195264536777225994466351701620399523688998889524754045349511834285805410485877472417876011967184850238028785939967098352711650767394101470675335144041363717805163888074981670482999232245971872138910655167726031296300084169834118308225443688782140526462092868760764904331259215732710404785869692248488105950497568673225418875991320853728268458369514689291489807048784490644359844771884707252734200450742269725395115522308805488517552908958189659089587970576521123071358418526557921660384878245416275544796836035244041490705296547680199513780293027014831592181479629569964710917702002584141558883994267384210429684464432141562765986998491857264183085065308708762899377128231391951272137175757635648160777419624758138625424389947710082180764811183551064469215132790127444146124052342422506996027841653576205553668747306340566897871121412760649694332678962987805902948642727359071236894861158129154549359388349766107951459524487912272636218982115100943942935460144308453205538879225376598634738465979237914266847558273939371546979064326909374983297486379132139078140707648114327812116407754733373215522358018413167148382089923951996494757291103113341714229880283026077656256995736207127733612847274244829694325176035153184191172212427378233539901565084464487837730335882230997124580078618847896416871077981967592541921686390312632233396436119138621008626551151849301632243467109145938907930761286666197786775221032827679695118383439643522613994363636761061991358908471447880005430687444391514602296388075773024162319959490744083784740162008398711001817106596457717487681275509374523530708585057797889256371715304372787218528531201662273260861431707560362162198362005698685783419978176932230628008857511276040970483295162950211439017875140343417370034664753272449462626849871849087488943849405940309014090700985811106861399727674754674191513061076235297725837792691048061453474337833583047992079855593951275699112526513651157383251715880672932357216911113118517266846181663270192308881647848152971454237753062104433969509294281942046936002917107279881988253679319994773958298866817527902155624700517919147796699342080990202578029250061344693237411458581563681294687244570680835429892660243262903378365883770192113516860468009040975547558956250637494945593229547266484946942823393565355841567714522487676714792488586316819383369139802601967874734241669370289141047459292337486537800605795100899782547817739514998105325958868297091583152185387098978683227937098304339944380902732442281056935078750201312693613079329287805061430222095359967054042909044187488839565331083713538271077287334586233422064398801555824140162102973688356235519202241225499503465321179462346103955170168191219941519491185151358628840735015516269963746225252916938828177763709637196222878226841085889113737073843003878200299188030899898413512445158880578936389610585682168581615681898244905667529216794051512289837428412586098778876188731970091721679784353964728377368301603959849133196560526715236134373309428993083379992562983679860211291547487858566514072975996119140784060478526346020933659252621781146311877843556675198108859535280697957482335688395377030157833790722273571934785784021420913405664249583918509201754070975323313870262226021421238567091933786796688179413787073646548013100742753395530057464532137648663195691813431883498674756865680635970747623355166693965121388426552063469904456752280426773844878303897888704029566649050070806227596707261912633881162350820302565689494089755643330329284203794316356715606052131297629422766203777290025445071905057059415413858454887291913038962202459139370372270030271261982580755729475663100157362726705952949360871819233967033651343265374506579038450579791403417951415975821657828011052470325696065704525506850219344865777502372655718912025153498241620954433982554407742587864038026516728930679146855971174526598010295389356186584303362027614370707692097590501206644231393839776975972912844305323302099664203319464282064603952276568162171374139737500456138015852411759653477257991404830942203830146174550061621442032144861548297868053250680970822209904943068328413570366159252311423226126411965820769535883209317607351770741056237540299973547074436232295603804465976748263878370910520395077732988691654984917426681483612495806598534477002665813114730546008872588522395121465736977530209339100080761038298478880141221196190530190414436994862655555554612967602956002692139343586704594151266641367620615903802478477231694655381184270262557807151524689620679986347886068887733448075103687056257199541813832240536109130890245241510411817286978297750792064149851642070585283278301730516721848140599148528925591286438896809235972484353985886974689662567253499360092299636059821133226429170474309082292184506443235525098536861585326614619655989388045169593158136571737698393656092989820739748661460880963836274647706790848918460254528785147085565225132236177715672642314002262657623319976498436176165008606433756494612979990843957676729733110678767045053877955181219414598640711473273300531200383190909404970257570158526047338323116280150515486858542932710578070483439208409881714987469405064712554249534404049109833947987923395282868663717159945383559356007519216616768950204563242979558184658497012382496457873725936354233313596763325829678840755805983057690406924556140014798949475782754310675533204905785340159055712317542657184922644056819045201108437450715387007234935387505825134200520118422104341212867073729141572270606638073922655688177288083011488416169836244295694962623567173848413182917413390393263404367070426437371970408821472885467496290417183458179914324002188611520244988496321852074168448956133275104923197732253595390657200405727278090715813748687089361354363643580566471279265392319078474224615719219872224103814034314710864036817536901346507846032924020300831267143346811280103885957006233865033554301272556546152873716448608972910401916001626996890979142033209386457741908334358847937692019947835418759838912433928618846284561860850033076054175516064927107660529407076109876488514476871411562389978418847871905210385067323244362768170242434229344626245357269832314649266362535457472720590231336969775080662439816192293412894586839233369429883284365776123022769510415625442870844369254253577915829756999309626782390837675127746010804405037184818521655971042171902383756417445462007822891409568463419620141797514778126592758593014652504394186518798694956166575750148980993094523836775394764549317980197690224047535139569585764629787588921591373018967084072084196370222582265031270269709984719873053423624324549645179353160987458544143718026419251327534069314863115831860376293828960986157357211682103877812663771148125638718882679169619413840059433032435874532310554131243288383637790687544895928220380038619901996947879528705854446723369612763032587450518581291299586055131535105320304405717959487666619866917631229146780833612028771148345856396898777295280336753441141377934958080368225968473281946579725967513185824287116272979615907423748059358568379147219656795781775258533825417312066396457356118302844084307975288354223725069856752589932212808461643527198330142196740373080878015158002214817065439122336703048210890346520017829196799882332443527173787091796170062685820984500878640562379247898184137012270128545948706112417021290523342724411194663826214065577124715649898159472732000269473668336267587796668269361296412939753281779748892215539482736252718444640662438050340206738450348817912633476251560223556929709877744234898162899363868699096368926979183279748371257280368872285226623222849745251988098094580661856515833683944300380603902239682312401038729103933159080590070123307411607512010680496330015814468355470956960885708301260742863724207926579973841402280641513363387845010044787401507978954372588816892386341438045141362657628077845933735499314678064813567218380343234575196192363829752118505186674256215705605018324209291906748256604674688421166532561812683067354274735554411743004154294035106316101769716970226847384653829354989856708783882515915330045311474012194394564111269056285613476355145347864325224490834494614613492033704725477642348620319185580263545141834570074909454950821727487917065588231334166888291441946544892740541728031421397425542174904381944089022419500750883922959132785721002574920256506054473939149473716675861488925689771791967237201113442883399741220224833930534431982637137056538056707000955589963691018856044107476166093787410708674168470025996910557764878818098517032768589977206948523477103429665242088446084516109430058276128477504237669871194283820329986051078863056058132428657852710773331099701739804296656485149491327879667034674208973289299106603719292350452653303123083479181197465105901339571680994254173945291732161547516050568293438465472978360547202754685753061150415575153146175327283112961312028223741310624886835650159896723900238846109594682537128105222002009992444037146231677231819462884015859005265684129238654706099537252229293767534135672648299286796367472666539977859263084190055692183527702393250184048736126951717655034173562709491998080745283222504843046163869708717351282620623536279616863650462995860499537459668774497184989951460779770298878790815634023942053104090606132579898957291689378093655152087856722670972673585993953530840764354167625612973807362427216695193454932117748479766797572168988141822756428703763365996568580068352037677330686804964949243414892233428459345411082982400499681018640576223638098058174720417336103411007151725757445554731152457904069474579210758459259282605560196086483646294673069917737806361755500931736304219816448428652401839358312297339270989502924760923181387725046122603041771519202191328126564038237536861196937931762192134612505511122396238442741682549800039817263832193616420945215591146330826808029959734670825714848300605280102203495565539182525828116011727427773236426075762449493032844977180703494984015991188151858483671705589581498902310510576027867846875845465594912916673004902882805255439706355282516375066837863988258755344496989588982902065442221944673234336828529046218976569507844722473567581667311394828740593704104672507745917288482729377066595998810016958409183318303836404088056531686158434400076909885272605401482799195167538666030211496736154082285411079784083068535400205408313578841551163548688970592574999364864887597260905164803443233029827169689490830309828599546274067908135295840801106776080120820558372221425493502653821174273063422490647271164689446282497817564004299552439013116311617656944497568417309298158270792257444613023839869554623663052411199446168719612759100816333768924415449976779418321478627466622671085977965793610308160878412078605728512591315781303166464280316759850541392433084075526605010188116849968288201555110672327518112829798847798819448850204768098615732921289295778847227596888386973127284077064106227078106790777637437932251044466733293364573092858100721816905394363688023508162629560629904877445320678885180609572830212399692090570126670464738420494103423864772870737819656302081329684711293790289870198551036989876620355544966155511160801292577583394006934969122457713047359835135310903490612742231857343129538453040441444201575542454486135670481548601738233395175815661831818798235812194951267139115643872622737325323048341986387075224588223209310210996697924120060844484456948473276180241649739087432080476527114357187151564489130143210918137200650010637921100505077717198485921031474717157092013878502253899913913751341385453867136362567516386265264388304252830640350422036152805328846095189150266263945387144989959329374749574957251307506216287446455162012731132661965034117628337712004623534237850934744193102316239016499189079279218852808925104511461457371150196606041024060267723678254428098196892125486331390306236449879795989368033001420336642434412686739988571937673541260580440157286688059104171114043262571388461693882983726662287677446943452647900065931160318941435882022184582977700804013151597240958845025553102537143533856439337459712551959833200208048895239129564740216529042243680398066852369449256412857404871562599177062168701199746771507656981429084058362424260997939093761852470054608913908045349930683085520296326081444555612968456112849872633477925128451512113422070429905075232286189565151856947574199110224419674631211905657020579421088686420710351454458561275210827131887503254774880300424139909002587703525247408918109289684272766902634015872834424248501898577557177851145279393078590219618863275461416873661538308881729431618779798083104033717420821571496672201796911960329445206655354279183212398587596314763172525125012031883939977131836848085347549093569039561170875870669140012689942410939714409770930960061312494816681249736662390304135034934668522516332579369145697439806687696067670903887397341326348152741592743916282898365526541053070926343847449534760453778449035374176048745250173205814455682338764980086900522391401477926328860785766417591167590828145677211203964937507638225676472533634044658019526783693735226036662512997499124566709721063872642796005020603915065184695741730052795004660893264018889513809346868943284635309501728226371052985836260981693916330379655280667890225988369466723014403822792413500608211620488409891563921082198148389856465154664657385334957534850183991356564967728542006109146056731212560121860977210866454342009026510805623921079629834546116311480520395511669911360974489171825041917335299503237158871240413242056229719141262801511242795313121014189906868795213360245093864432177215845348213862304156940190589457281466664472988174073998973654461485944030285779884211323169400666776321358408770917304860930665090467400461735378063211632547868101681204635377422746569557477635868090431476476983036766298418313217346177200079918514901243279709672124980160731204608075240402214968897146552520746464758562847909800514750564824201011185504690169766668428070481603165018949661765023296414082250812539922573986294545531928877845656338755571275488797690120835923772785032065786227601321443229633750185378312736152096354401814622422389012109022492371773635688795551817664596117598761549118006441843444795667332536720809529879872902245732115064222502450169187481834415337446934060504299320380415506231354412289813587499845825713630779022094189994446245599863729387243493115019261713353807524945070980628310149239327798490561442137179042458851275688117057482358865027070475986664504315908802159872519389906082707322342915439506336745888303767379413817292581709783025735003849059732669189850969275078509044257805107740759703872417140186809637494495846348695803301919353935331870126537847665678362664665995223919153941933085764692088107553884270521661239461657487457416517790549310826341528309955253625499692259706806324825776845573195992952527588487683131172728417599631781424804721283776796772388233828718566493157551166663608511215125836966539267030468641188470845743124121703692129584214651285404414226776623011226811335311486782500215213557328513083843146104528996009163061528323714290319318812610883874262253097095939797460929848464778335206478160887976367789698709903916997820344840107793521452032556291646804985297911451018236542541552631414764669270937032811142276835927239304363991624279054565758054838485964041209828036080013084932674158639146268947955143145422023347172857751268378765951593231395277473959808921733869550445898366113118406932105136917719521143262966588973215673045307750446681597959443830750890768515116130734276279078919207885758025030119767011753072915676835952763649186807867890523628419988200247476498407655768850669116921355993040702840187090804588939698718700826102316388865845045760222177885964952944445620288055840204062246969789771839684317551437054016436236505578434620810339553799142411438798073319808997755842120983332118870053438452977510774168411911010905147304855561880769768595643113548423983706252091669564093148770103662467738697519887958845956285534864909934603999404549607135806346885883887269168993760862896976627891671770696510535299827190654016220375712197293036521475949615942345450055459278326560605099403093986261806502127972525474819541794046497113296703302178449097335432467290366055659967280348349930214339405638641230960687176263565620457558732924873587479676548001156461353189458776763014639314605523486189963926724103458793528153046253670579375695127851217955541969922144075920107849140643814356160729930289337444829976240333951618128899998619894775490952802493503674206027875740682882547201782516006823099140730257569789331024700206615397001821295516725674170918091709924091297704101308614005643945246275294908205726569070809376336828028667494627088567804184466323970213401563601764207513213258364695579112447446765767456685109063370001879705085306646272600827994105885017969771477268533202219227481941976010598468965062911852901042267130695384858616566004344207973430958885920213591039854715903672362014454313163717681978564930391610763806186816773122790558784125606961613257325674301849764886810073412747463969666746411083066085719080590527953594620535294276972752775245855649475501134971336611357585148082397371187726824297857846035296358628684674875974788722451875211335438762297030696940898262697426917206994724142375156220780139873957821391540270937143679966708037508031496293121575301891932150277095784608025041245131077736452444916878454108550778134683322626639804550171461189522799816321894345464131061708812547542859399737919908977630508116233701305408233127061333926941649409507080482596951102531231269610126203845847219974838406663092647046320280066643716408265945257078790866933200781078617348717968719163229601151265801952096515616150676251570304618017798814237479006588538738335244613651215262604621063221030996286880205225401605722338444801721590071161166033568769126848062741873670636543626481370811595268944264043581350661551741403579140906749142089697990492128110453132725831454062952049614573741242559479629441982129326641127445180787040834053514243862864430789545939722634189850884828844379532668284020802597606344939679471038536997844422809144529066522443229995127505518747681431954603229641671187331107997518937599566626514928536646682804801288606296527273104857006423936238985729629778002286258352409789891328132288434699406574941761669525679514335348580834371624647342156922109524075589415384462091983480061619638908286393284113952741740248193014816195256458110164330565526521026760816067584478580360226280367550215288125168321055622126560780407804327492164256994007576148602709925630151435300661260138065427470124459331967778693461889023322524528645561314607435652259290692506269428631674982958618775097597156837864741346269897683848032360445469329823235029431841895917501125746823263561512197615097357301564971882220375347359010967257132758031504880612679598478636475242373372025750539096797023435551197740987272647525270997300422201664269039253628587751591516294061842060473025081743795637033012534249257788511664177548853617938224820410392465430708405458779553967278388853795152451672346939541487712381003087338480785641174123573343957215354350058462541908679059322181235112743622200178859714551209278442833020948419995864418591595617756330883027652431799536433743321239488039556046211530737070263590423578890288452590798270564374407482535567558374114597149166105902186342725877727065874466000595227807645997006366708651636783348489520089483783968150898690595291928206653619105050129908724186539910026759402749502104267901424153095401275458985322058149104282875915313435496443824627957719082692111568331912248199758690687581565301971505262123624291184617489348887699254424512316221508233500698450261867845858979076078761623697792351000285962179399717942540103381120655598012625874664553152988791255948519903300035991504298337945143730259996035213988186229913922122613732841547830593604118218304195947419693759438675570658435443399960487013072792968225399903916037931053833073356698414521524291445749748995419449715659641568195636603692906935509727752869846893844654043174638294965179442185431304611522467869842101839564157816670294839314847052538292594535459296316489513898130377677389407965541674515940350060775474037989284966368011008818673780863875890665755250838141877323333336747685345894640638180201963455148672643259386223306294607589490332124048024525128705166945943235578603114304150926182072584124899833586749397251146032270699761225666935012801181750318354731905645723497915497148731597542996421745149539320731452820259643147541752240032949861665930032603134029634105276018034186564700163216631836917992430154272661786292730150861450177343506439437661706501556790196738200313845973956039151088388143665308232474596254875185080537700552948563416537854089553486255368522951994604422964628366170914074010456356127543024295626965023274388570951169672088119699806182965280442152091897070926468868557618429303435726106952120125529695122760587033607069856649387504597121536831634160739029412956194371003194241159781349420321543047505295176066261999567630856537061044744759522296860858785821981529930432877263459017578889730829783649137465857604940449400359617841198927259856853859559440053381999873994675689843798732074682553305699824549806266603602504611903429718607182002062973257289246802925375100365846259443611882551296829884732187341697179857669843561623413690225801968262414455750721127154607220666476289014780320629133482961998353232822268449236185497489226633557987815239780504673053773785402341260945769196657129783512303920747654838817063653429456671551045435172350901581916803726775186157204367010000974052624116196265570025262906195986964780843936899695172626004809656570802276890301361962542666163953428283191178145886754805925492153322626642629601727473690619215096479486746839807090808896111038629630740387515171821812763712448518036141013683305996732705263325597037463464301357394952568426137218702300340253519548774346106190959013618557896172393826602381105743091717293178772474988342027706827246637894885187428583760959592208898247293282761230637464340602649687894450505009362251430964554789912225314129035139894399720874879387727434177296191596489620057648682974275425273470417961253775326514997593918470237730963130354621804844894290336920619053501479281926066631130933642780690425688189911465521819882030406606455485694419524301275808760021252694068985000898923464492327537998221400330700510262633400976375828132047363026082562202237323615645746579502647009902781247245926560495454632317934779465038764107555587399853174037317699797795114176225390519193873227577594783857064117984289096115950540170325200655419931865372695132503953056841147697665626537711732380716742863995059764496882932386195494864674889735103099051464787948699665676135911777303549499599578008709662262741878318482632440112306788315374112720932607926788284347592038424527776275722876493500212200312953954657300862815119060380419692208411059210884948123757862110074935963432709137472816835339548121431983951328704862339990367679137610904174608058097873252536603025981091420867723977172685932455999092879142490288603883122869952636200709568640396935362167068817653930322107461645310551029829360321839823927839479004709377052133544306042973874202134229178901239794856968729593808820164304855165463843581197318271297319504274471392248128479143648256175564244703552590142022683825762796347724366230708220151213299158287894566343828063347594887039850304339018383899865296627408011882388663761819236799968221555184082061395302024220352251488394774037953484187033442285131356487632570452776952389257327052422497333688791820623594872176629781860143189166020833001192370614396680344875820890943328207582705969278366582627286984736104565271129043784158362897473132411029627482523901931488510774074638330039202212679055890507067968392838597552256100197894835123856915023970997153743104505929460078340740750031432280270650876819757013100828563944501684019816829823561007212645412190682270629982434490107955051412971721580008836769621429111108817208145690043702383577655367458779952044098074820645032520845368023713040724724870445218945474985677650068852425895849991923499333112716554873937351029999649312330762881538164479412961441434347199594409598921318822803400623128364634117891265677300785946558005054780199547911200682775146938983614348377283620925966416844283123180622780162591906019508687624212637663879823664598766850330328834187865692366364082506401396418560649506361427717585433411999407749585215871359823391210867672987724953907913368108334659358594393202913622861785527604494437292694573755647485397894455269886972529791477178791310418911843231862358057397729074460531429656638742672488148308295883071517878453683520719752736234597158251371970029941021716353835832926611366160390024298907970856225828739533581832738999971373377136353343437060038269558238905412156471380742412647251723856732991111810724406959566535585818768743216898658694674266489276794706357378441237902564788106354818493811857103976224706188881449357676386694304150084941900025186766861069781622280853117187555567952458486563499863155786145308511907469311704894696935602464213754189083866183165054707331740338756382536599860745332013738077395100165464793355053350433575715596666266979372119891041021126140574620885352822422009841314814501758498923618524559812938266733520489214825174293999418800249873082713357695936452998711867931007357551337880641439104169069836672638425455539761130828839012790684703018553956014609419189978083642525781882022187896166818914081755739853607990636110136180942135381015645712396079285981866091710607941765538840110969858046371708515024724927652561909946523240025447929377227146022334501687120798696142174533067033162801694741338551178120499256652617150833134526183350895691849024007453736235192469851922191820097815513097375686190566012255935833924040542562716287781656034062022564784510415560699697851211951278909039541469120748154094675360371703269397623008755338849113921933179824831711177675280834828033426650901742245663836273692850704163261882242335798428849051511194073931677354538196835997792415563354865139964069055740912861871746287495600045985504518067027854068180045347005503395691354262736211199919008245127945126853595838610274262091930871301270911083730559551885981637435017054463173846011505778800089686012854456069952389641104394101857955211004230715612851850461292436481605560959569162417091886815015961762452118522726775121836328077674042485879960545709296852294780462473340631773597453378777951308576524589569395299373971528630997721405612263226462585536503117799517572748948126085908411975549832924318593833664795382656516223813732709834595775483558364561034016026145298399506339992127848660759549503760431357725250585598770057863276650528104809188252524602009246472203549613900101647494844576757408877949773748801669017111729145433611249477844268368122827560484408035935932905461908665904473494456685613883949395266044906482017359684087974418920465661860391645535466261942453883151379927946762705962672208575184127585376617795292457163654186646609700961592787538829444892984120154611886191679577526812381557797191704572904049502852004934975126090237421555224452943436343563932547496277768846340529997598528506074040496458084981892459908311906965187030009446753510440279282402573329447313041930257169601482371692426330076441340845681379859803135318813235149009820323398113306500470774191698883361325179165905778560731792508277792369370950039092115603951524681921823698798764275899161265715531201833457227964015681104639969560604732282892016306824408258403548129621895952750914023978037685497787603569635791007216410601052117746942287592254696328186293442900452022841425603250640409508781642604809712147066482676819838156334764476438032847517004826028012559664915061411207148726525341047401929339257917308375824481461072778831076803813904213297837416714863175291696272681125617643718253496206941619384969869217570544643097480852081837746728583536030195455683039932248891906815048382744757164945057300963898734527093238596738455379469346533884016417373018671521812037493172650808926142724376990367251801113017363561129550664581864204829661278435893715871241635306960854039807635072036374377615591103728346849566061962095931208722465957370674356311804147694932085892005728238398885695339782936156375398526701000716976071551423229308215812106172551875317148285062406346408326801592869474787547209056050556032128170927647612509472572028635614057711095125789472249361711486975162699133343373585561805613036022685068957725755979741682154054816308596254553157609741930424217443129360845524653571174154758514174868304487388992837860085365968336727211856974223608530603503335228825722594824605961691194093998038782627439117396935104324740149363289389670914433664973407409833780105254949143468021191918805186127017704064388500239362785533096245062757399543265262213393269317801453830595621212335001281135313305787537216574210831788345453928513236332170915128409350725970352064569556559238843280491304355430807232027950266363232639254482122929250380424896914489103627587850098782773109722192922022291360018217620716973594334488062124244250632260435999500622935089570136983019949367740043427367899642935563277191084485498340753444052814835451310488411599102137721770406511024236897044453834478007818840778148345878059398452947999116202426224980254697164693865284842417701679354746525824244008003186427298328941255931784286617724614629572771039902631917681567644329679376404939041979744049804909744148841882382444915840011771780347371876104041141464705617067069556005954481620259888184205552427766094201422668372695867154702241485954411989868326504271352248722845407819303510975304005905667475347313870458492688102002551968527250128348503026396532300244566165523265040198789245436720691941852233240848501778485315407077550782467399858501051344483977219719162806555437871734592126709617670008662812642065303067962043432639777601311110478918616858180136044517610100606437811132039178637131147053747326214441807979313330797104139372402661697888205974246301129122912058744493797442556982070466883448516010030724220883125613053803624587608101350255573706873703756536017825404360679795855420869792921998628655916432479064605781729745944295652536885899840104681209740083824484337376337738758062469526397225033663968699617634144239918461886230219000988757009917599457568262189775857333213133503481193004735505960103924940987314389926011563256072339794862347912587802807624994070295582766584874643786570425430927364025305509053424917236070135624317811729494793486019349194398574507234766774615626583547114967924292031975046251058189640440720598909664564055290876193469860713638078073310076392564316600682041268929215493676203912662431337646171496692247712582578242361613014621657404425048840791758692459779408781951775236144685005572079396585201887657066474707243287193911111126648984505822064221328857737841180152508208465240524440471646022969954475816467173740472694923744826818613006584293126374687484382814485385784326148372453968776743586496079980192787241724975293040620323719836328601858284145658778913343654898457594271314910769201326487657299756334496953343785753697073577069680979718969695869081638715043429659854993416738186289567783488913779922942732604404648508359520007033436499718837508812978611880528750965469317874661988526863177694623674526627473131471368424110028778871064601160239478811412445153400963016024286995440885936143307118238396022543792704472117073686518558483767079272583833526934830380313592607753726300533927458482424635865615120629406561843546451674540987148067323781124031794199863573968168587157237846200381889847002998504934068461217342842031947309175837777058835203244015627394978676275859900711862335749166565826609384087365944994038330204180327946385040694026822081209663245122229982545771001649529715046088173568942577469934106091692790032011956020335084227178754624461210997036052124659284577327421965658980708316906688957341211453930348445614805972816735413208526294614841809526553066007907040776194174137004401235718618919756944599431657427157347448691235495580304391197903669031168454148383329907410445884151436631438266153459440490704819488582570425022131353119746579359428951528014398132612283754860780269660403570914208271741696071622882814677941811278558457586608638309411427067929402885102168606539430749444764404066966008016881773342806958876352766814775821745456058407490981905893050976540522139662030065467480689522906852239899327253884570729631954107361344092240056335159157025055695377563798544881276688537181182684308325849877743870969578546966813160666708389650115254089660080068873902952722831478472773959261064015516499752200689353382238947745975634359392848778222993554380835909771807555202610316170134494256977623875910987975569420874139537565255550496635747192771117372370117546915286541859974183651554605855823404043421002953236089075763219484648625542269118071102444666742766782262670088944801284512236023197770479554354624972780657361129737785272543917449117403115123503625891295760548338301209055927741828921572478295991011214084721651637472099733558104619270145706085945498543172747843818143867590517042717731344730341568037017075196338790773126347149425772513064413197727270828616551741302800883044027026750071829915818315322509854442966067476913177688640414075567512770670218372847994784780534121931357602234283332956423966241509497755451558427353548548913296733910380764615109542296448841323345246967797576451555035234127774439117053904502451305882529364284227322653197431196139687338710284771849455005567792317970300609620447399960166831138927632023480477713399144095327482816261322540821054712243953767199039904462667128560505346182085077016044935991793842638880194702442894345066043068828982391078766159323439413764460083132865460360980252032754217726274614124316719605189970255706522417008596875275382235849011047763249183004184887314223570926450483281702495875220015430789272225460031712056026857148278292313864773346687616345103040901354394882811341185454369207255649805148580961217007152315494062071920215878051549094169755877583579922020727380002926202377072033815730468559463589182408055601247307984320314276849154624503661719270807844100593759644326517422351807458381826477192679792775743582340857634469856166377061913642451497584829004659065625831334453753433195679524515814571541254626803583468627666651584585425154639081309080654357298902689527545542730438254220804337496542594876376210782264460456529828002323709678795259754006949115267540709376749821277868691654020662864832770275417191478570342110811397496942355306039643631618621457864543240643019268827535785478604737868017938774819723426434943381766105513396768773823436762005887212144845522706668884620154344371295011328465033669780378224191753466374920861639395230315986699464793659961679998662355106039204259920175469365622816303671491849994209550164828686028781909105899993103003465396947992146654363067850283150650938393404997794845888433569616828148504831689281959257247351268764152133340406406984597842202085829569559262467836360639174173185106669060081499882079931982422550912439673034476494980519348545471977460894694963151588242734013453353389499153737616956324214198699933282826187914118458199249907826809418457098568950518746592774786458318790587491916980507998284076886704564153170504495401469559131882034381618820970540591439509882511430191207405924210983194622553344522423002880337249364369021860863375440489336550733643596609871724100066808954019664378796522869395532795141588673639939471238089583493131771603709816049024203367678227069814457067355187082074238567708164013323116730617125369122860268531057884417426130690523155021331623276695702040614829006997557838920941096106080733150524438119966661728849938386990122842361033754932040147982937479168876933270566290151214656581275840409861377757255625313974840488235878047883246969254035646548898887007936444887609075442239545589715395754301355782980603672767375783298957287669105169976005482421791001486442576770173108851792935950577648226887948342392007337774558196477396605926365649856976395544784162296825918114057650809801298252600474124053624431609153878565292578070764177925774214060973965245165363100255780837616536226611768200486188859632726624654557844147332691666600991592924835965555873964808121309568876816136650071441505330292921773002609169238586391287074805427001623881521320579935058067627759376161740883097500544877799143864068822269457085446928707937767914063672925448238820748480520261956844562138097652591894946806264742697457514952226519970890088538966900201551241285623796980659335854225854738191211692545846625552962781136152856268102541693488879916871819644728649311045039103394846393021060867201054495703770038176415462617414666456490692937941324477575280699561173541915894028784501474538195627412197165119185432263395399263155175797019839974658604475848179260173469516194876857253420435769625854295705026196635338331724898196618394973376137948936766530013571810571770963697221333422453954665864568768760831305984515141031208008330590552501005717529283847315940403500260647537762014888213889187821914882728122335613616830488151622478993977732266055924633292300972941651347346491050063311247931979979690880116086910735556368469553407008056258193461526179246641614319394803374360066028392540595131122711444761403917046877946667809752086395327199124675745808670772047449487606382844061426176371994878531243231039654649734215966971257643208913639913888418346857610014550246169590309266845510910482037571532786477167672179988754194199772981207364645340168604489792044381943098842654787974719402992912553636032353323934715266707916884584125975307893248685749118572957830518089860708075473793728533262886088397504811737437544702564347697597245642370497504111779286849363027651588130558215844697146208896012947064647600422753422458086753068353986203537365550316191108682947349441603973137764482264622318807264065049737465168318263693064410796375174690562605527587858810171747754519033235879467465534609235884387158849236646117243413346670210294939910165635927317152275647257437678590151693111204377485232323492184545609743616758022496818801781034963871589932265621807729012227354275574693788118825151646014058205515775386863012293494328283802873679865062579590885239955093839355863060218805244321340583737565920829835059347410323471362862737373802435621453856086924409322431206890791574899884570878025566520982286939989636525083937850032537940776821854941316968181189383196946056380655703171401670504547943027698408780124919962835031181764344411870821726494198609481345080495330914375188233245624488610840605786054704302607664867663997248462783565817719254619160398927643986739580194808499794797201285171207968474959743517498833124488830562931215253941266509507890634175668631157109473499767328300850509407780434151564453991053934683012083116360940904603531919449762702296288934202233129274036881334624008101787102884144916597832240114987525802766723603268794279522198756616895460326911172430323748261836451424094964169433028590206712485456231548996711775218115497155409716993658954418041271121616876883295982441025485999286163588250953585602107182420760201720622589356308411233836061382610391128363200264422627186562122746974606673369138189604835304352228825799144080860285204347073451374037753447558516009976601099047238056252401613930201872150969337120541880097344657795734252505430269541221358665795732885249474642000734446567314978159676884139188260167302920498416232607300240801794290112256721128350099775201923723130326865230430170445921647569582795132551905503456350533059465531710369980859460428505675983904693578195090290404584941773852618597168812027209145580185975685617064843924562219268471985514565427985664659007221670676417791489089001863969284356424332856940460867217848861948614627337556070842497461120296702296978334516868507184226033347074465525953033359691599383499075848139017304809793460947880889776181460951176993777576546085633876479684153532765322446384293255294891363060900452309906121962985610144268073246201002094046211679346013379493104645520692919040245367106995304827024819622453940427275339605551599537338713828252608118757194920037641851268777523166658120758268253606792690603551949209031097022609197128682589302245646788805371958026093393757380716255286362100608083250204208456397671730002405572592734612916083159154312028553588557529837385942065919033798793817812730131606152548308345387944938016482305873133972778293300089609058993015771088784358740920429284728174856433620060910244260122763095117762214816712758852272259025741637158962435494095601169580685746501797525660834142408051586669780051682875777633115684748899813699201160133781889396349865525880534946883930889709032635639647070760841042897529994151383401688057074076614130792176663938819997017790485853098050018628464743454949499541415020595160492396675644769088820286158683029613839986145555337858639342975629111632888146363151976723790102718565495068151573817574815119760613819026711688811742840984915913210238126045475319467189128614562380716879664462059967009457637317470902035094024140076702990258910429776652214556617513218069674541666426547384224942395079268451372996841245038667908399510966203627748996190365882540347201151045026609945912588263896091991356165845994550449012850521118748282967601453637238316847961991174821941707544248052641228046613834707062547792051226242443124767702227491371486263084724676402425537565984591513960577511055116948266941772103359154544802570719467429244396753703570005698577257999594935759512756852307450882314204298056809202976596573816890550571170171449297212058828380013322909601322388861970947505683711101996807917595830947891244592739915046310495604963678806210410368770550931413465107022535447192435805441460877131388227447633086779150737400131135396981891668232136761951643820399698521146946233628584898336002270718433709839053348958286424439035374329621673216919769298967140855508703111987349270644897030036553976912137914240142939558433247841616129207071555517266464534853198627675116036129276412051103705522489908641251361886547011934320180503206171079215647593536166307874879251979778592993330541511718493577942503027680739763497792895480058361128092637396072476783900293929324372158292212362476571156203747233287953433491625542698387494274182343042080787942512451907858756424674350556861965917876190462172571055200413023404795485948694839155822551000370570316384864908992075573365061837269721134311172313872287293417094635570302832266337860867581087840874697754889955242086509621962884596706793319357288317691114323589884245258129967738621285904378693403409289709622939386913000310158201485397034184854605665298577787154164735162341335399484245198734327140433156111537132843844343706511134406000237392228597476502426176090647720198022979491991003941047279887074479701484939901575581159027877232976181569752304401286711340373931577867628145364155515510710519668932150237559738436318462689780295149352503639340415141936348670617342543537936242230953248562043729210438560380432220414356809003519453332333822647457024274963829036645587540715916427210221858817172050231214194854040845958097716445774845450677841121796496101168587844822837066814819480289125265646904734046073446175376205974339039865778468430755601573465906876486454005747186912425356518577663229673771073849065904520431555466133128747272369472413714610625689771593397563410686356234740404261421016323158464559772500605409661136479950605460501256067519892677719122709035751986723666552481833206910214148804313444740570955733413437074516509825248193145407779484352802411738622284048722077592622048793441105464776279997418333745312980773235394048391121245130657557382602397588589297402879318024660521255078560840658131463533718410806767418093187130121677258670778474367757149490319193502296740228133756304385346242543854972990845802254110963237673146019929944898904810793102640851207016373473416652750850698062166263960791256543059655066851093089032855740176104660808362569290520884818842373302152171126317752744297890810677053108979753209192097522140442549271588273501261692162591593448886089677946094344428094212088757749698790461840747985458680746218895764398438547340968946391328634368558701342016505422625696731312266494933434905208265934908790684720767570865010940907360203638001573577911271363598611576491342485915068640107009386189241008507885350999108568100426455114440997336568878615047410169184394470525293506043315251928471595599795691864479874162008012643873342214328938763374793926069783022258861162500351824732639219617021141559681522561362419149822557902856263023077345821605535387951875279327780441334386213264084688998290776612487935442313097985609205479548661281836830048084562568338533443117044476170733179099909133503447953704225106464959423526615388587006618967642129369865011467115966200646513388051212345809363999783551906651175364262932435861359587590103384007952749683083728619662261597795575690390160610848160165693405236407670447606922295215709171749173302825183525180715742644957653668928090701287256947947182414522947658705451897271251097600948838650424191323622610373245085078336999923304872424820091470498101372304427847601452748010160749675166768579510790458476789583133147933847741116418816301366820404984627744167031996891640299395201472427095406674370975202690363175467213730440924699294334368137802802273880910397311448954923571662014159949103556818110415651292712023494867429140605978587546087704572897007311069882828191544854491347265628590987087887769577115909154766674590275832743931653031284687167343076838647876457294118158155211091677471612679560991258487886097423147390667680788130349265921896249384202602504982398514883930992970930273914597014337585425218674143024999648605569053519511542320354272724744646219834497809099860547550886648658411605954526945467698018192170925418844914129587570378133355292582009047816639618347221292978157199661750521652790919916758397458653870166568647973036744750698684658979751559693278009253741238325621870477173743593957676257980867296856014083443049836563996532713695340346140677712708426708059819169945800773473296346721932545511186399316095227191165186972036522951899644577004225842818508200869267748459764566873951258087922563499462390942978103326083597269744925111938373195376869357188219582562956018472179456815411796980410493136711172188343593346629214541022625920673967750279665155328376234403222463869974276402734578255942466801944809584350713657949656329867817470638793049118105133630253286169357734465541195744816766744727803549115185215903473361846046290326196276677740639447365599123770590332142245220267223105800109094111354945239019336746805569995138459266397038464238259120894599577327665876514862924367765191857525972848052391879601986906521070628454210055355547137255970853197625027644143885234859288570696605204433198825601469204468108878074349814587606076715667218118249699833605217314345708247798202370934084225903691948179841555516852566224259433408289880446912170360124169516150602008225701713524183265954991637787064535232408400325925558911550018261987647729320417200636421427706512125834553758294154186505621288889261085768067464974806927592763971202588667754444519559163200144888505290403995803391239336878197371852381705365195270239965548524301669171767300989761835001605802849357383380150123232615706336957804178004599336523453664793081433559022683301633570020055685545812941957409030638142206621422100318613880617877962666070397276749390094305665130013508991244509406941385800757868760427195649193358411272370526181891629288497261263958857241877210625818319043769853931242374552711989196938960926087106639300984244105031998863450969546870938406359115065107523481968689320644300395429137871265428140319015556515547960356319389285252876775686533210087084486790905712500960370822878437959260470458036661410244975098804397185854367577035380508744257118950946460381496292591944549370185152711734752323589311426809749095861167146177957998921254049948249193312380785721730258787054357829479109281999404256822339332823879896599036900989305113302536565079344368004366483888475252481875247369595937613256682207904776218766312145150705090712375689396640302643832827689548925830346251446334855369100574475878180925844967806537207662397764791014153885389220984800807633066868266389202251240741841203583427033246817057771659588972949766146095195927642096276965618079308679959836176162798987340154043578474370224531548637931937993011640117956267214464622326963624308507138845181842418927084347091068047141924134263523525993246468233268653061467416244912475846534144568577157854380813078957953017385454556221000130844667586287976467745764643660479592808395330548560896923909681297076166325674838511158886643568275835529649815373513657818026509822609499094822293923725818764276049938517932318442714374168507435271579002105562709686288224881597778244726185754760270781578720929944686607608272601281578423395232644026664466173878490999668428874373554018792930276792428380408191100208165219972651525868785463045742749540407319690966487067637467325782818810303743258574560202979325574688429076748674756420124662683189344424205044133652555697463500494539227328937676982582333045012376974693745388982294536331022753931506173945337669583947134077778498873301741091863398018935077270216541402919864330177934878773208825503190455941377212752316134377936511751330490984096300360487745944598158200801710938161220474820467028922053617325232682748475508362747637859185635323997597648731030724021467773471368338365854685237559432627965109398518914859867455909713946733934787222689347057846146432285028771764044180000341743819536453047041104585495049818203187515755149935548835984021917284227609833902998295562172129713770558756292224861662279771236556560629384926304806225337355269809347227837820452241647515898634331827992560956936112467001191850822382663822352008270320836122875857016351199794988323835750837514711292991730544356345246551937309402186483238597053139150412959554937427000452273514529195649767346425561952769807900623131511927084194732742399630378277480374754660295683461391170554349353858504616174498761425225390712143565839824755977595248435480475221414575697903702681041180390425632419362395538869553247109473051041964080561187304261213836244252903014403004710327865498864567533201588498335700079535760151122652120004177469736347039683925344098366915057789389264865943493617511997903777733637063158837345052184292841244966213576424849532267248434726958441596384979922786458763742887813969645434930691115208636426253649860381314061387299990105215663450521608461862963358125820956539094193532726941104052852724821544016391541642551609313098743030092512498175218496164068401581267363665192550845355535507746988154935291067738592296272446500795233406779869698650037788844009910464506308426373419464203009751453085656823280007857464961959675926937483562205978834094981194837894958386582185230210269066419092943789916391589221016958933013825538530032624428199763764690690313800963108685434819394689237139696820067965762031441674621173875607163450580793018202874423524452546163568249416465578857908795055834742516478215692396515543505862851755259155911310929667691355412019013693092544740877238880641585803849561423642012852517092815926385419918084406768625643527993850714531314439486464661475925179479627962663356195142333187080673982186194821653818229408461130302832195251487101352073191143649606619784643476798980517400234599120897781390067843338398151891801343430501963662127428463739371047308892258451000877242434828877282117746947531085588986400783752058860120822778743581457646617000744966075654119324486987089290906047762033406669527003689500351372482744146370183373446465968856733413905404557389186626699528990850872690879851739199498906487370615280673522463819967136914724122787921175752638791985256032572784585572747542728254539266314248386227513187222226823923030797171166737287808120060092895928351855210815378625286869416638200900388064033410657915296059642341430087775399230296517990105615831432602883043103950798815234473063629480202044734553111966389004095834486716985363934897923435895015735164434426373435944372256595452995527108632402877128795436248548829324625733068153644187263844438633743083231481306335046172383370397746123668802422258083787575422428175455730563742146657407561275359748328508174986430167618935952187874969591127439191814286984741244739071073083099636882952237355228905331454044013394367568713065644503052907839359151112561676297708703607078358248493553658087948139268846581744134359799430918259413726739685922462713181340786993176772344157700979197851337670363919702421958462428655635141496652397724351526898053857388902240946023215198437707748587791858162362423923449863044206963758230216551066299845946621491658512436701274076042156057402033533016124123816694061430218617797163534173456099765416822244437284808524886087876412065990353418461791712096733794944271804505340882205366115274886076651759763140393333125108117002902791675434741904300196993153371944873361416712561427922801069382412855661566285841064937797681187693327176761155860522261325840856418603483476689205046391282384256205965559787882366690271770674712500940946581251186635513221376752669702250129106327674846069089650459124119949191815443797555913515996249442082491110736669133815479944801991788183979673462470253788378086495860327835483084911540418133850795246885869707536461237143449429115010049962340082034731693360195599266244134377541774480941422626701170438620345113114054487760645927293045680708550272667776090712652228214790595114296101599370412330191105840345578723195426663220050259599753147037848972760497380875615728275252251032730680983925739942543630880370803296804672490960810757268053408824481845912228934985497133718768454558656539835107653574522382762270457878825487420171465578500109917056076852114258426336339702762787847360168670759460396781151348446726768039101327404566319520458909648356034045289198271996676233590235784846352062786504995948481966208764075252154406609666709808789664838580066550690849863561914173633187453829158418859076751253376369068304734961803947267788461868600625159996332820778895530461934399647404883789556488105132683158266655736505701454086793254619172672946075655762569320640003691265573585994711053752274184433248376567034315207509926071868477638455825478797203993638235543573439800236480523128163296724506390310588521959326565484237185424013222636086151359961341172941725359006198731570438253225847988960842406941751578499366898556609025371666762217114715211126400713410453706204927493664695021414840761920829353929232540305316024084645752675704092948565774168642171065425726747929810377326149300836912616796724490565100113953417405982041477585067522750265982031777638427444137819370426075392823251224492164602881434584356718640519553188259383751795714486581619304672941715128437103563488933980712902161703100499224005132793735953067028181233706877717689323231843588393032586361288536793515456959331448289594080308214370398266924277634488889846182971461856054394797945396005275790284674448618717954189098293663100406365761891372945631798642669857293646603408711707118258104784532478894253623984253941125287432235519279100403929513750692909538847717289346458842721244996240601945330882891248810079720257908932535444961575589176920862157486653478826466543353482569185872106517439570806207782765729734430397543407027136947687450348120976766779063037261094230241110336104803422397298134547751436445656201444851226598003105519708964514145354605565616217181616694348365367676114892991122046050159193027227905437277439114803415319981932910380360436510104678874302694127303158900673098820745392464142913102063361981324339875571398731417597353398598689017005167109792837788355528186575070759890268216981562872058736152899316451592943843772703238164513847129959374568857381287711798239895376475626955305710108761999899023101107001199854690282104658515709253625076086706809455101544791620567312475454153133160997039788246668790982302998688842526815584004809996725376075639561098544774921579553548332701509859185259519167829382627566492135789535585884915540014106026210589140222583436854762979540441205713065265743428190621715651485293816643247049730526344180691721363241195395719519025912356743611555315340742814341353485792621201604874376125434874388470997376256977526390445593564210227639709707627979218791778513402992271977862835220263906729135353917803887517210399327123394878136076848334691526607199023772109724968228899611530675381429107948869611187051287262090685202709119256757489785609839794283977340148020116879418942386454410434083886496442539501348621388020022137393361606199809963426994511924090415625094407773550521646260202626198151546624602795992791129065383849299255736642462126374016979530891279538360568670782036446241212107371395616329681515105643951112366719717953915448813893974509818496120731364071546411297453573705125889773909169163328571077695471772003391216323815862583334861819376571313831219607688772737598680133681696612992230564304986827508212425422311999883135928913332260545557305330591729745111732107993998372296077376648343084005207889106843690957980116939522190486774815183022516959905973334878440861038851221035271152567111021953332715937664374977629355836579350249704877873820999130364478703054426903097342504733555651102080196780044736568303992389223096115438092867659149650031555097746707735128600488193080430048602082931485205416405987089722997154904802684201447287018079775615939523366334433210385767367797577426105964300996224510594808178447961103532203714114720235404750484000179317240595038347674449795029620796612404496093999196645409873087484476093699875346032530224055678067179780205176952002587293311596669011560637999083193342154373314630110552187000102102115004950759519029228461464277718611750098311114573867636674728758820878500313912194719771022548372769274399864355560209267495411273626839340967682047484613296805903857756810231394796347536276770454706134508846740497224353298172790312104706405461993999046843325964027653603239527752644886369854665687252827368622200260141360423178395140840189958388608461919120677970299588668987516036727953521836554944986578228815470680036095547124902661177093170465496652101678084357665297639332837361476783854813307651072937453245735966833066364522923918175453772519295071073320626302017479796234383288634672164536732301655706952290305472171314019710638072107981891220017775902754574042057337636466818185819267406627675955105609972059775068606704296636553680543700387148552819740411168089898246851188010040288013963012905956143858037644564021351914984462848881046015244120025412469376651916238515022971094689888619402943737568346144129055875501705424133183273584025781652258530212214108601421997487378785076605240206833491833279648382431529878577786192982340144014882216046184350990800914839085783871373407131836711744028934210302584707583187304569072907935495854929978035961438214673259019602419457315670871429508645113823381840159779188232727350766360217302245158101534271249301253219580871069777948745868259643434129526916756067586578117768986836792459157936791918660203713219256358409112390595054627836215139943161783289851751864622759146695506712640204123768916659018330551916337553061228025267738334668512375145409181018887592405428001358398491876940764027114644125638964108256035967637824844015893698135645827928897309822268826161861614521891755583136352189979010606756287347511387649761339850705538046501035697858913820533995149261957914677773624489111635104006599282695654938189009518871974900338855246898659609330885350522105274253061014439212873725462180193995566159040753193421248521817818184751162465492569071280588732662707950169748781425655458654395657514670346838870034366297850270483612219942908963969334358767331110902707812813285190538766086065111145268926483096709280179687134902610522567754457541705044786036631737006350096307364284139285927099441621983620372876849136382497725744449848172797024939984939849093611674898032706752643261397882468097981349917942465051421619913752462161789203729558147239597496767988417374107396986971425680943254783432944597577288279995323587979148128503898503393143327668252532401810973935704082471489106844735296726214988300400649167678168666453449982599019387572660210795940703722345021073681760630766762081319444515673616981633188723728510594615468302809265480138522687722601949204133600274716516740179764666896810602182429873933452289766434825930215888273955668417584536433201268917213710554126108136329508369183541213027277028793383771989922400672968038126134336015000044290004801082777127145647717117732053583960437837466586556764537489878403437870183730847223007106626994050992999169405420346410089588187625263718785486625307986703609445344324030391894324086065131447581300493363632605995033653650994687331048206295278832596578332174971114817423534264033623984811817913713274660098127182593579818123267850956756533431133484691024682238404709178981928862339989767672496229562702874228048257827963289456962954358275512587103438907073476582824790453844794535029744225492563889860581166246466879961220814642313132524400833696638037230890454116963657170617965229001675583337149639102167855050630909608490577217858834973965241996644038812712315890475786173260704890004600620573533200245738742740086466642309019993290640515504985796698699728839234997215692262208489782961431935965329500205810424916702035653300760807165675326325962926936097960665012693653940448618909084237543177109039925331397079746181446009005544022437067714474532464045420232669411630572288914967323258066227331854436404131165837506831313729179321781280370628551781588272211586083460551231676424995054977412954911156769124771253700048155727038166790090361686247453079617123395829719798594039974853153960788166473498552796354008823750440242833149804802524622326416451714479960603104624955813618837660733195429829333687202744478729494088831620410925207104811927255774048017141093306690595669085751143263911194413185609659307609106705488629811991416284461580155148643910631573750854872208058059696306663986107763888800524473845351939036259789761413917359257994750362522326333926542204155860032430171647937101006947937494388492190506937955164222657069927945850222469416449108274573254541067859501132527774539698042904055818619345431223049202314306590145980188743618322151893990578746693809521234048081180665715646766922468624177776663760444516069290918680876949159685934959766273561447338163225821800782537697671752678096743110842973289485569203759223163008085034816773382748721666017724419399390664889968079885080058345390568164409855494719221436112800364107420151577653927053541019760212724693333823416998791448778867044072107080569682732869311788170219261060494664201713109758698564681463306897789227742235311115602664214797566950823391697632893885260685465331257674221189102978284058405487570771234619513133790457534654395305763355285383844906426210206159820381710768379391788224697650430059593010994752399051631164653026016981931589957101369990294191373780514924889973471963259597293744089056867539870230289420915167052241392182705237729107800073610419018360920981506085003092044922750482367972725937574809638906070757735034550577979478830853890250077873760350586107829461574148855062305232585285393992789809238908890118884701114077140615594156705516765036526677343863320225681474404800126813448903111609785929895401779286579888292983823022075675816098065546410882056896328363284342460436544664354876742968750083547652333761495285301298179939992575196310722579715697421630870664234065021261643234360097270012746222588737328863089285250297143204430117706785224200267965727083864444835077410229632319349917711599367014653644611738966748115267176264287961584306733759716853879590139478626384180366976791897497440132636849153930630745627557967247879883069124338651134318254782788271916311621669620154171064774791208223057252038483405631532187024200817461421681898523074573911335686497531586822156048440694736895043062991002676581677231817034159473186184881381837009754814155084781121746157314185071292343738305980836010290047856555551226101142564425860109455135180910548350507388638041482971218522987988446824446897486290935813726598641917658257584924848465541524773162427776063096062975195329644295926628413015271412091945630435572654428734225608957624730086768978447804236540658709642830888794829965731332466298014329143591320282137388888008450610550677693203475236898732022731620077302396604548106182234856126750214860571098567157572992193908812006253530395745793708249835930653036944547518988420422956691876934973124803715185908668102330098472876757289001609663791590805225449345647605507292274847882102309289212199990117817598912123081890213977945333745058808437785200713219645965296850120129636613910440529124860159510136451858953523037238399330328728627980448882679048176839443986063325713063602133412932756184594968906472211982620524021517381537817493325058920778123052473095634495625185797314721864444009799210870419387294853564379211804651841737033071069149454300499679903595793641404986992198501267894696878941602149727395634473897559226520916151128386091258631453599263613500556526035409539832492795480721903529119922702990254191201770128795373203737394510080178882594936244353619225581639952193473273926914006981881806244074266580264034273281865377366965665881593656499226623166765527770294431963312572745216963402991445428309630945075320427445353731019962127437386074000644201857268797315693987443911477601869576988051555479635914581149812447856021609800987212203580392964445224389869303262372846506976655169685874741897938336583446150588156591054852652936762565127756974693293526880620590770175491301692643613933168705278079083015495031902081813740691105747694175776646174989437764956458995526441948347038476583744240327586156771907867306136035363088931511752861949744669047666457410083613557721227327545536402837782428005866531294647957004017871132103911358094654427938474539172643459242369682185192100122746193214446692234150132632186458057342619468089930386601352647093504871317431219727346774681679393554944601582254152303452747928035103834285409910707422331048559149608022763746486960296131601138452704657592633795751292715361366783052711739199326021259640003379236381493322827781434223130979261428807997885812006249404908817036028320079498114062982308845497295094547110712639949443373390843971662644412956762930257428043625021009855618112865153797423738124141140716593275415108634311114750615728211120142967730976141418164774806617122699841126794705046510764428251506105224782793914395620107781062797099860201293526780663489250081676324005123929112650137162761928955709093366278545390119514087715085619173251165345069062935933880949725640029994720480216561900729817414258848700148370724734031088035529281425449897188298835376836847870537524956192017318052189660292113375149812676465746096106036116348607334297177316542014304094444989808387319635512007042763997594389394150291021453364342799178963302561383362232793366983180461141892290146823257203168014600309338715070679498374528521554109214912174490270406022283864737932655125234064402078900774624592124510246281619462581742118586803721923868012762737405658069277087681966053306052481065558268988508160453579773795660620001685941282739532274790542744841657944007461228671653403510764244397847931828233008328040352916257916015385349858246207713837072836594817621148295556516805751278566678544125468274370371657219429860001439117561698438295308565854361446488727884395472247926084055091169634862818564114588803316960955175345069259199121780574613259666324643658726960450988022864099050960239589491338837944912130630153491574999795608852839451314298833817066352328223232250558790564687671872414834374079241057546804004015326369842356220553134504910067745842360680903082701966806190025907960431108193366508267070005162386417932348673391235964305437483971529700485974104169060334726270216096280767224806852359935666703737886423284081803402143017816457552153470723581689649064270705338766153719203319080814443692435178720790399357097520658047156064794588803770839985593105143071523261053857396457781980609507539713744224426646595282577428826406540991022163089651260592469665738048764761225636902521246623243050429038990020585189692610870810274060593944608790557070900055481839668456394254826402682975605832497530335635468313628761451946706011329099533644535526712896199720724246862302126463456228088025205035718410028368118041476125577397698922080116954401504926415837649570770720603039195891928521356206685944986055045442952956447270812453521307829281026617851957072677663863389495061608880644257273551942321733780031918185469528900033713728698540113675368697739476014315831442150065056265125221991039224561396258239841868455667885005760823352053983605693882828241292695137190785522558542082615966347102062157498998823412177307772568649071308446512127165975390672593892342031283674347148063108714672916567708404385609102900768565006652696693247834734140295442993903835691910231780536150164646177408896107695296237907300656347690176648154316202897560479319160543858506404731066059598750415291983524493976774922158835276837697451207037538483661368134359375349971898436035668338988752305131477334584919786109675512939704099861833777621362541483100276027035980284911068404575229134627416228125319010265641771024595828040293600612781186603971853862330851306359802975517139246813190908564442669652914724103717391065532523354296108029556287741753141940461095432471932127546055690302205895414812467110835436220769791122611579467858818757495744931759733706436082157852240188253992329986915752665196996881901014654372106391696105969406357220485158860224345648489269905424941232302624639973158262718935276007581373595349727042180088441119346526948925164213097676314342340604401504617711193024628680835044120437088086022375097341761977327993009896645725129699305736126746431948638448465545602710091103473111447173870208706864676178787808372409025414552990999305945789782181786906487571031042557637563914682274856698261128552008997576871204737926149088830772348466527459021062533904596452774137138355568999447255542174233857750382743929699954806042000780785236972104017297910362879093032966328968471130033023254816425513563900711920083276257452809978895310558417560767743523003082396274997940366450280899848866231188748940555946359926277171297763712999144672601235178639685056663872421552943267268399294786662475537817738727120681479310407859368156594776914919322568130119607027892370422274977201200014062157855323209541233696204186699482276180836706253056533749095736941633455325812580504368627583893638904276277121006363119564090141134206787220256017185203671114884273524099947899819626315094759336864205186156592295238911416544205404956254786887918659346026477456866346412800619061616776582670333416450383876506171191408369297789270071654029962356358816572384941957305180499858979387272749535850679642586133993412739826446153936696150014483831232626888743548026049149595429106157995575409957087939695498155577036898763892522824249488995561479291048366750877939534129151099444225634748480054796922186521827558604015210216039766543252068641328983902007663994104708649266530585916528780136898630321689417337335095094902958511687248992819818013575167945104886859461571192044207795816685206037494574687461158801871839878218012271434805262987029244465938557873852545932654632718280978041428369763015304958329964000023758584529343930452470025144337748819238825792079361433996380878681744146228960955518898882356562422271090168501928260729956591964338440643184795067643810320939283779104386628441088535015499947709619374042669140345255247609190531718662184617144133780826511456544145720018234391441255495965692879299166404101333434609407591915441810635344496705740718156542623009357791065042618758869475937609518874495231355277570509766061002653113001482594031138613519297576706830843191142111880249243634814126655107259200163347987962695737197421764059010984917142341090570996021026627609926298837734261668908609507697183748159214866625359738401038929985568454392504663294043406673117869529437393168504428350262651546454079912086511231848249074779060210869909774404925391511213509525793838296314393454978022292760490869334453676108659520826112159320098899082191382658170014119583363648881315593559524735085483651147053179739302260448246250013785135187939319106194604079257043232490825103351064057151518560007910400682705414738631071777391796216647047914390681236639569449575952296828386217600399013238028113328286709360999324779908010593641962863814124477738974639806859205178041271288866427813654945032212239803726779068612066996690646952579493043228707272809354729922831105389783268379309099761645526973556346751589243165639206827815898657215882492807720430817492374368065057176767774260529753093445175434786757513528043940681070171268469076169381739816566693644183487425883007272564323920270605313735658330651453295920673121799685222845268158890949492706857889357575906238689722896241424561390178315148363739670510384083443256390134342784237035837280588263189122988860101752501704245747957115346961822629099833556049440855013828705070387281106334675162534015595729081828916047774410299833548050657074604703704710216386100362703500112458561992096446644134085426540141770708733227620677950304106103465015318804352907732313026161779223747865409346242836713416182634211273841414453097553573390821397312437776538395900883237021465548047613764572769028378425265993085921677969907606339272437063716071671401177984892356901325372845380228580283214976820116828229068659787757147419261689368876550430843582017664105687738401195387727040962819771931326080427027819010024644258527815484011287094414840317057350843472387058717711885849062557642259141714345630384185295397627217409763703454644146353604939082070637524041315067745982052900836453759545254608976971325593762538505579093313051953012618633048595529324165002189291857206324738111843971206575168775547786452045451881271593772001539727351194840278740409131294005584719707785813783625654713183348353884531490691981944915861593394197874420697907185975390732436750377270728017920380312924461153222589887543638060926794527403392043266123525957876185934551528568196526510403460040615835348141836470343486495422149500880370167025184148188811014184568622326531345210414944148710296916341261551953474193568180381492325430984364641892509460264522828250211725242917923341739164746553833304330026024229120344987706814023037142301217789291114402653741449511084938689155251319677704285764267406056894808979165131672939521199649775188392927661839574390684365259671249976864379978236120383736520755268689717208859507447551916497103437610020181753955277717508576894638558195342417865922098371154849468944242270379889071725217113739820640273193028763333959524280505872783289079650042804351260158969140313477485456078678983296364302281287047668890045163614239149382765100081493363419163510389458329207652027903658284366007353685563863054071055721047033703062964330049018794582322627857548413217994551412696836243803700874480556947104948424970227245649066719056567767813551006789381509744645990500254474225740251956880163924937432135863792924375849762950755731752956733665103549344949292657341795321733606344045420572051719846062290501300296360144599672021586721185985159486219894252173896422173157486472037525379120775036653718368795782400175513088181654987669653357701456052662611571486150042819391774948682098973218954456280563810560482474663950706238555869860165579064843720014049449091177617386415563283205066027915417842203810591216361618393444104209109755786205571496362727361765660305430739736988161233331566951498857686040340947940575718510957259358961020327998113822823793993519792472648355944589541435193914100721693089284677045583610918572299465545566968340215462596660340895287046916831937653565522509408504957387861928760151806588280052617215659587491178598676696474325273847730383447631380287922744046374540568080635862514518374506264601289637088600390704301054520054440538061444602226784326651708650616578295999003307903309107923651345917283152095312360369970064052725730055760852100998025630107647627964692519765410408626517823903653379135443229245556385561808083706481399249391477884861329646325012327961994205081680070325680078044040802547282729812602601362603992181277786576303425813810840895871727920933123316380881446077910609803321286794589982904088658694427458177915232767769105290628485311226005216048533786103494313885892474936065215896625267731102267978778425073413517016582105116878392094685105998932138377606573253362339209308495696436276479487071354723423579159728583431555894011078001905360978398923335200873166334294724017258007987964537665350752210541603648754179827668516707721159419046722909242872416001761914593976908725770556120490670902993160799284830267450576938695680957202751747351758735539373117791936808624371982351789374587867199333974365065398106629194358475257919426282377095857178052305627726679822147801793250766704939360938758857995373792659788551347175294781238974844660880398105206736719295126857099534657136034622111798061349705139301505363977981478698575230494092673957036228872264908014404167369460002242993684989172016615982217791216105795116736813208449292089938652921552493047030164062979712863823032507958439271920654613332360866322146768041975862483942461645188745597162350581548812138662791028977568275922548434475625695010468459020493010432019779245589734462315316455482252837355048068892539420972833741674101594760518023873813089216561528764542294353026358960327032052422676663236655501327877256986216558403409701950593632781531524618566407627622439443264905968077596364682552990399577966841640253543928728049124836579206141896724584031376798952072704702419818150531503886088280006613096581348158407261438217788414233558492451974310332432778531187035331988138335782978062754794255527643972509267373155078393959737198564016312507330779169164603639238173765511033797531966173515848845979544746279238771130649082006495765178951762320877713896803808231486868573162623098039508228671113148028656360064245673931179949576697077415093774791628088897666765853886043356579951431410990366764881498756312220491954831189346998155387806831141633295603352152564628113669130426057593093475385326772184213266253849168328367908221683662947199287508511934131008905542139145451469430341483375588012226652302440161461980119136000510742260351401239403795652309796865125364875293708631100075892057261241645823865365795518721059808937635648522198913919918654641928471069372226250139902097690865528458462174238209333890883929467326997153092539709103228163125362059444693452689603701662095089302306260604543735576028653450107530281526946771404461382807620867519401532957069877066257425088395381175666925956485519786988199668966329435812403178126377085524837699115075012979281989189051713205403747124081963202943364975732740516289443926164452779916291696816802953574014579406727619210118414108582241653209201969675806237325741300778126417948443377867316808136318346256803706607057207233019817866941791136730969922261875705556716515631604928162042342984503565229502947172167237592043152722510490831186198370130676925691160946089080295026605338951106076885955592120160126515562599722729145899144312360951112233227199597538963519609048214480068721248446888329320963224483697985796445649609328720479910536180545261181579114833630970909904645214804308306901159081908754449503961271416876480358780146039847973663868573961637616929773924954306620251729467085360901548490670336612592714067428548364159011212516530419810199573748974539020586766721784841626463600834336318343665304793032579271730474482438035428703740837998927160966490974704090435275644328636682811737750523300186424054861386598592725090773488285900394017696708959984306210214265432598020328702506979581660376620055575213694813644123534142088306629033847947623818969859990297072044607808958753791796489966703213125965098337685553074281665893823309059259699510181980662588991489065253342055799395410629277103629325929581538106681110158627315719537661409839514836277223636185903951600278456206895875175026899382279068230158744108842530814867253500665347161267052751977198092875653276811969372531669274893723603914070705704381733085112126773270520168888082569105512803187881934212286226028381613772194493771392681271794205640961007687204109734096372813364568958455381014990400487590558923270015308737092094037401625512808341097778135835895134766902931405864667660727963459841486990447922401829224366732432609306956368500153580042222691779628869311477347757458427419441974525317911014299684552518674083705588978732127076660780119775468594708808104775681713899966071222623915632148827454477230458764133655241546701739982327695710462886856639867086887818451396511057573512255085004214287857036776191890780194830185665537763344026637968524120545273288014431604314746330472323146399304081255531766294570135190569235746966354044049463672067235645310459325140790590132912080976323898870556350548462814229174056193180981114584299618570485749978422116615196832681843664997549266784245117901071808706004028482964263720137571206335015216146382577918747298406497825122931677858278123886685687062142653093327620898660646033207769757438357394323154289524818067631818877722087702565982093265525251003975641604832346854013783565410132673920625727624188571816487902453359940287569017219364772169904168724720657398513548383894576135496900784855397482856537433327745402485178588458616306951513996752559661187432783470173100056946888572781437139390067013369583262418526526849290781655492974606614440230595428226847207755629227414853415233004615519492375214500670610396443388283607011274140505367475866292947423167798370581475557086525501073216948976313816601244078133050833227260814480131564709354813843392051477584514559977804357038381975688118628902598923103115640121217036970343215693131699242449955259887740145852772882498897635579579172957604446537009765496711201865549889874446419018536855441923596542894250652286406496701719923703492749033434261172071225223785272461949407819898909565626928926293338918473041492586788038157412567781333932230274827043665545286213752799507762434938382119047621159457557980883446822887422210443422912716649109549084001636880236885057044745962829182177324038957539850774761509781722309144694489738759363989272810569355884168221564204041860069416843757092062321152340717535249746125079615413521754062592510410067029665448088654875789482223696038833742094059907009047323094390304522120728108754994396862626158804999878501589798523165158915636358737845901597004674010417691656054105151482045206209176776924391668627546464749720206930675781763225539224769455838304957909111544783138129950646815031049450065493184034216881900681443524834242174297635946826756875235161520775328665719598835025205469393535709788817702698847788354773492200946004959585702983269541710002410609260911895512305687716114844462193233896394112200819985556548769138938287358787058652302576272126366472662103104058784739255302445474602821304289240973768463771007953488875659650525179965484646418286074308687485670559556352411459481460977703340210216319729431327846037998948288770752258787626885514709915497922095043195694249828200005855677768640147035636929462502678715175323973742451576798036651452392940758762189429904439289626461121240400690679873568628647130681327654944627985430506652445753132391446346995365051888266417564354579662617266214673744194002243065882906796486591754783881706456600481980237194274385708932946546712664120623783668761079229639224759484942613952295863485933312284596885802296976873898869472478863547481753661517178041094646387684292506504868266422563537359320732609550821983967991384068317759089006769567064140694735083431071261255822907093599624479197247042852756209083370074034626818113024767360861241753194419234563830683965426448248186463269143388448845088509303366179742444721929077717881949323098446553709890701346664084387969565003207003691739272273485428120734440303451984456529624611286644760780192895324125668650097147905124169257147798336725732761507978657538286280593486045780158682847017276002463423657640169849229265697297859020790246592637953825746120042962572338486617833294459805286002976444260203197722438661391785429752081904913098194547524510084685247593150594372072852898720169702605595244091597702351085362947912642680542730572248155780422217881356369505531100346378548786653617993948289010845136367669373384406593456442858342989283171988422565645305681159063453005008515769741661588067636760560012142656370788448025915306977902762054295951706817338842209001414127502121079078434098340770759119030429120368389220851295903985776411023646070999890652511614733730002375200242143405224384459311961433483197493175023869787665955116313792879901230931735671704703674913707065641613791426556024544274806120839168142978134372720097271568354271812716951668038520474043031613023971710961390827702340607075247199221612743197617561573262470520571648947491381556569884883134743589058070214284477509693402842574278365714178883294174500928914120167559246000322461232416610900248441418087540486162277345835396159704676899553234382389585708204930339532174991223634240271575708530288350262398276821829825251117343343573789742325247824006210044160532169759944256695776951073429321553332698826902123028108228938998406011608170956811688160383099466918244077462567897017936826399558909467506272651845382264074790198475138185639479164751599768655461228866258071624040370524579379093826751813014672153794768997483608537665384151314907195007490387220619716996271455138068462123588064321776305991692591516330606505739512643381599842793203391850524231265945798027699130069119666525756102295314386639181545427395563193128947291017127522070974956746700045364658423834997157187806106438667680859285523454035836830314708432356982797730864065689741566527383566083629844869334190299864538586972752005796311306604899736380856014089850376088579113593178859104051077510917468864963389817555846777291512718405512385148364965155799747263459357289827731082600619319999394034323615764597446312822375105956574315814264972044450863092938959987735483164937673041608306834130604214533646917125805640324603426374541417867677362391917834061662216538679834165316595550936927592922671960981624489899490612566453929892609219215923121949519172172856809914815607136822066938967111384367522874595077096861930147246778433269637591928195643505725876718250960252757219104959404564431331085961236474061293980870142011514837346867738478775833898686264412180604083852732957242219461475587708886602298605208363022722387364835853680813837161626765424947756011282752528807833115380923656724162413958685637872871850639643064568153531698808144512858347320189428771424702450400186844321640250979022144009168053898589535887660121257416255498381426141745345045080727270811513131611057444303743492933594184724128924270193830547919100089530233868579190805932839669782594162735935797089137793811520153471069410544468964572399286372460260525864321340541462574091758167608900369686137288738755455299124986908574632387930382045009348487052708630863916456155073239600880719226182861180706084877432651974753415993382608228923390039274829799061189268402284033786642761431714639018742176441872800674092623365572234863777655124605593497327809809564300018582163452228375094244201231030949341377639717579533191732680351687624942843193315973364175118534496675847024248529666406076482154113324940499324279692877842089300535645285723786198935307932348459783668939219646089743516907708818253874523012939159433905627349358495512186121587876779114889288443394964437379087388349987088363505265998976123360280166889817545463482600888352861260650467859830879633342627483243904764996421743607006633167060912697387059041308862890933911938802019263362095072473876026402311862360306123086120393443553591798131157925548519723867220868902782550872516839565567582996872056496323446267047194633713953872911170469951162527362705414091458181921420549346506392764274523860515944111736714976845813992112795254394539499470463951740886516123679160187637460779341102433273045378888397514262396292037327345464437104914761304476566706896925226253415983055651634230769560563033164890532763536334843337937505725471813462364485558721931241514818808544605805604995464566125483671271628909600338199698676344520996734006709630832581597731573770178804368562155466064062030585878457724429184639552317471595459189297098404629194080250204276933415715689421546703931339936795514253530522381806320071942121338514699324436321735596285731998694026958524332006941518926069902650677689138830169863762061076948640610644384874201253467932600627294649927390597476358913326498604572657176655968140139188941420277942284395811363499909907075065517326226060644687409770278004442969356969038567116545214729030725729826140877173459495183191422558441402100851372790017127466887235619208648296839929503588625674248129594272541651746102808563347599084020756426003924967178826623076452417125591908603172425800677637690229851840807082447123115263208624926438365252250488332275865503845733593912451732994113585665902918562749437452437849276333312813943643802956274001356041967385417226220616765499470411668634617477559610550448775133018660951623192873556065428189767086493650965530467529210825151227262552784210187853977859758349001080619350535939789885885403353434713859069871120497231421344693781288964134230312751640393577364756994930703601744386840470186680172913487859528218492374672323724467197101738252218066833572260814550152647804956701154379050299207453347378944258143066790675916632326960262032933002418626681996150564305584631942148458804732220658798049415031443416947493509783280643237128346124249220408666998586292066013016449534692966510397481874527862666618196814937389764218725291684598746965310005524888515755095595912424960339537757918114451372078188338173801807831387597689887976781700271716010963554816279753641456517120998767678493615178772260318357883848805105123960471119380736456920859144479919258862718949069792374485001560069686916612390204486622151708209265785244991604316955142146634670446968695870223898037923771179580066626496262184614997897793945805437291033867741858999931824600759453427268576211820235358756188635956959370555427866959046418918901316495810583302720223522916143270448802835697494202873572679443065019321872477780151490177934134424746285596643042854823582878708835713700732800108527325846389962133632534385000763873340343397620436882918310302518499076254865405012715302451528810881553883878218272729931652616331216654126820852478153818078558200689363593645768262200004120156260246092203132000636746763792431849324650714632418273783966301868335960448808902839503801942998453274113057688273675478258066280807910041951453497184560459623314082796158548146812362467384611411032808218490391197787124065412204106460403594063275243165168007066714878426624897143442331676056114681236525674131821796154507551409149504298391215547363140639026829968704659499532921876520863820249893147330435972961126671529741805114030171663711068275458659284587159443679076751016996791952759025216474682147501647394044768588113652199300475022631302498724376625384621333393809485717947278395369311740824461059321540040346024885426265874412898695958262688365646835578840890387527762564803052284754202223560401756417033205172845420680467076579982863972132047060893662183945469660791026843396203091827947900975727437801738781546722148122248573015521800574004825436596400757454997902092040435981167439354402808799256254445561024357396005717810413897469342292229752197526912011193476012689203704811010200038129015380704671821427978203799753742418338281690350904664538576460857687765975065549880011829749033008267807285966621438063817916198918636558073986695062446709134293985190231357703433906071071995763118808076776741735587713480138599748402659749924132726167062990508005437790156402758000872824444267321752159318287396568758313091795229270764387587887646186134682879449064758292468331947129524883040598181801412507612328486656301921408307000714621882075370940879958687381561911165732095231832632723320709386488456002849610964082120106777808112192817620544570616394133543870818848651926819989846274456616425256675259381397165812556989784037256208973480933685306695164351180961433795423269662574779005873610209250618476183189683751407138984816646411192175750251566698751008723566971167406360858913436492460304263801520981801754642796313538528103761806307345547195555414560137054413766269921777555007844221119285022000450050502598211025477797811096585844049373171594258707926660236977390701221555929437699937045414985457414120140784768310998433760312849038311361901610932471917320455559218571449853890674850213094696991654289574011236968425446779552071184633282274661061146970814610276267485434596260413317863871207486422167633937896074661123676515049251898838930767225368943391837898348413159594151629120507448035148848080021353279925826950323256571844183512978595623069330208737356382348677912416181426978848032412025779204414375150130812172905775996981880626223778616235582328488121662354878047970432623745088382196704701098265336935992847928703785390699590382460892495578968189643072948287406835301676280276444296041105049049497109256792796093581370790807134283666446432524516793154866382693903793658420739521185235854202939956271532839042612759410414870927349503025247587246017219916536480607123943846479976853733625893141142198570316453451687676156186147484979404169899696288885712742200517018726932999654466096743949152193657006407146874492600662720092087297750378244485270167037093318922419753793036132122094978754220958598820687364685544531448466830219630324423257246785033667182740897480907886548816678068928297206630796604724543052557566589261198737654149320776694464443462661182592648157412592421987166428848145142974023046614782145453074360643235261566699773622300938110955370943583652344330898084960784964514017986421204060952532507264488285671242697984262575777051098065062748543695113755511696832639594127151634538194079745221981059894714358633126176241096627871856449568376154480864134432526694807904355079853565343277548159027968991959450196936598356348804488008292191242702467006357243527743741377925995166227774943683134647551324673570337735784396479593160324704720208747190880192566339585630681218375398192965649965403590498853939706567938331983883312752923050779258550748954604068036267520846553299481555521628819899647296636266822037699518775937983601070810051680108451062585514441004708222947521504245864561592034565238861120084189760158094522595516511275665052837308494095773146462821898627567495428131436692163943932335639924321830353086659568439900671870431491885365536005587878550190104997687490822921189842545259177202811799772526286224588107806920501098633038022735223237242458222629220958973713856104034706681650808262650621969087606172413914555778829881740854406630438408646219008301325095525255789343059380263884734304247612109098808311541130640482574183207623594117949596162527439699238194706246790956616969796552012639630308268131405177343796706916192492893572947702211146263541347579628924074328132072564344785390171605538406962504010841078944420229541321130093303329752088469732538468806413816404552268287321203700047040458221382950121865999972004227339718472669777931387467974269571147971648687238581236845011754377982388947167923392909565218243517749590187663620671854361237190868934923920508715194593482940901616427890547523514222213809654356773489300976018973324134297502057955595478356333801658456705266469879883062382317893960574089568163829469074714816202675623461558582560078390163254183023453216349748160366142424004672532355025765269567330241127193824297341193702227006932111783761200050354921408875227170891903119587343351284216620343019060185802362822735394893916666236162180016869840960625356553629057499920298609089141302713638763040333727230704223773827520919001026886187026292101331917174855039374613755783303635857405131461697684505595496114080789526499699162769251317162083376649946227213933870880703281140148257961180673353206062366587656210012870849817542219616525568049676155419209469525234572443016975441529831787968025432273109184920100773950716361067522723751323714979663642777577163718062857747423058170313975655507974680251878634873278820853941891721949224932972015410951830062794307424952969985698359277214436893325132928234958900277003593468260440205569179487680550397286223439324456211752421019603424620820817008209840812410296486995824131204777840913906751259860654717708654964136600987310717203884074288077807103055749421537519476843620550578584979677127084639242524190610369328714602074053848409851502391629234968996932713094892889814029523097996628380786115333116250908612232332230714713707529182407008920826430383339288013963536615853407838846889155388665335572305501024007853981145297820120961306628291539501560577342275820895385395419977293513544330158967755320966430089824183563338461555466331929991337872923795912818854105132377459233866409628535854356265569895747504994558656360109391995448335649368553873195742166028798995276855736249054948701895801645280486998270826404933036191078573072630071602725749143131047948301124009741599754583347814549603835131910379950571022365902431668300845040450691472475820281708265523604639823643047728147317402072976207271465020507844406053421303292249027165533768070839134041179804021883168072854209174092738516203667826295344798683448159880600572709380286531882669760538054449873757593810614506508844186975953314731549876307937004187541056098377032147962972600227008679504908008259224322992360581689009700421318429885341772367347075342574490846806554516665774093714190919569402315433138884330119507436963066844578311449235095744915219376010313752084576933733825721328139450870880527002214902382156536906382519393568380886864092660144884116040872167432239071367319755070772953223911823980344963770913460540819611864701667657432241863117156390447918638192738827884546232658678934375025930467327741020055415832194909569901911929799969543261809524949270467178427969144294956145302635615348067440846843450394467358584437102328024455956345294413788993305437590902539460875351902786151781726263567568012403445981289004510070394287588125849684233750906930890919806027337076566255854763776128303032546948446174723759932319782565008159688009174481372793204252903574691009628492407888555837847724744309885948806063112907755893966399366455392370832521370944328893304123666275129701521647628222671853201240681463199128020081081801059437849022056606425215604509764071876252082139468534677408327934969701072119975311338208468539150491564127997481713372591246127395480432137801380688307602819750788915942553711385155136133870836029209396338739546886091011825833062744150022022887986315376107985886704763920782787963491693238459503062425724353051105981331106876767633299470850361220210797749674681793937680995102606764734224874401076578244532137961077196756706390893266767487570861808644851021936082788020689338028432702708556095991503014240318346352117550201997341711503893185424529855546432467770732900622167913218767939925435546351685228745261078237751042881988938568931019946067253840369218008154242189886969114483260317628584192551539077360528726326885701971457572052694628592992899756184791112311230591939697926861904396484998195952776509984935074054741585641385813884584969226559930876552389257466660362907810508702991459108888917960681730595562664471216233562666572825237013963988731348488476058762295818829600674255144894566691062425082314646521317134777439387562764749623379489201601331656834492065783860351567319902331371341274629056903028988396112826403240809319668585895002052213366579724815585515055899055455954981201901984883401772430761572928129075955236262597536812753949757754927132106327858092503869884233232167118580945566145230976095725386849189181210923622091183663554021676808135295864616018704328592299317566437869545829573735250079146818958955580679375074232227937787499244871815798871175696031803216519036674361451342650955954996487938440233618418099945077243763580027773095827015326876037497567720501159277518047864738803630122661705409790490115193666524775436107728442690924247032233268237184200752292121218656514757713061498951254984599047547920827978949748886188490499752074681288614468698793178981830031202838036129864079240091267321104059861862731589851307075651681480841365763410677653171564838344827710363222101124779768294177941614635572913361656113640815205069146344534302819515766520379152075772444661878967370548087554748454552450906361770018486341751839780033825297169661777832872364008957561052416967822314689796552658563114330023954174522976784249129321399454839965975710715582039702465520462533658159867156960872150040084586838771455609747155654516197853421867829604134983178932195299023147276643633423015778779188324161801468248455358903548461249586662448846810713900336289277406052741690174395837404676613590057923499267722567986955548322586729907065600208224142275817075676420373021451143281236546526577896330355498581455495313924420070793638071102503636363450741948436187337109510130532495179572520624237025079135687304091713907390440108312766752309131980559412968966419294492347900616177535855666523218030634782739897205353622428877494885026062148226172492176021846810627517947961557766587866694383869674224697222869149012292560794067070848013247902934103694183392998090229578593368883883326345752339973467848340388926587702960841756963996387060422201915990599413708136728817160527580496418052834107049656201478590803283488151903018172796423379307629236836165700211243270785950995134653679655659000363671769580208547956085458194805509302513410611217002838088920050308909484561722630202058839747408456816338743045421640153144674740345726717993350099224436578568842786242224098056514860728076361118961000074902004060344554228053907330897092228704468552213735755927924488058014716994912680670893212627791908771039203112119177389486062544446456464302803356286950923529856490035867338897788813826633113628089049814474895337013010490228285705025649035752770549130882978676218706185597274598060188178838430309469553777834172252340981088579089543137766442118701232073987265070360430585630926867636993080077580683053324056180800311562004909817603170919787751850666601495879729601331629933708240338790143629327728606942170354138181002232704217420704466483307113395197446004193659959517844059470472773821484961572540031984115204104457125244065275137253594974954012042801923605377360751473474987760003121410206934119260670719655065761558611795743047521565238924490376998286117927835479390997812126295885891673927515098532204363871540718351873513750373779793160156049964265706435914611721570269975756180632035623452777466548222731833866893491941365300619127258478911004037467513204470375139286773332758947100063788963195656314848135171927250895991927595367414715990338228106977040108542351920273539676026023616311936482310102807068038201410714439358346484919007996033790857717290471487434508054522754387777711858381230369905165022881497696338892019953340950688794950982161174134909125858477298137898101054052948583221422824309735827780375074951422980696639115163139062046397660926299081147647260763301531978043120486159786895389634043012273246209338381068662315078380298355390952684371672679982185670506230853009443675739459333553552397683937923503121773740234110349961052591825339814059910899880792237755705739133849016707864379281526997127804085604570307756621142443403051452056510153990081363026743722561980225574809602464712941848311134750965353796028434264790975100878798468432923150352072912975813239775253632799669460398780002197170340188881370574877676939482777483640291033622176961397751617034269868182054845944694099373756865327683088168133636221667395811824570916483592063329844992920995971842864295552556693395857320143493178081120126178296779446711914503453342597215245727966768308402608099451496454270253531820493741428525292613113991001429800388209868426400468013231756141191931869275728453489325212640136848723351433034297985456303370589043943962257556770873021963295010310511855860830370460442334455028525565384030248465772602171723878813834998910710769740125116916559997192272314088805243560452606386321486676957775482107817760656569454500742923134558768198084991313272339882540532940036243462765315201720957748844306842902905430076414547141722049900472792595692116899384954789323308102303109320468791970338254306099743941525313430591266355516204819824563712381903136460982164331417070988613708978421162122016054904626724813011064602073667562965233092548786949490878532460491565761317541276803349860710450635790199881138981058516469822915629611605721357786444649059574398535141808076431536108868708350028769336736787005300452632149090927095191728004305709406333658280057191838234535909030648436875429479736061957267410883820549735097834076187669448257401268573716183334461002474320469509593816991123668083369424117533570066905350950528164776091144485571537404457728499345879433305792576991385432307462218008659240746305741917217010249997598665667831385990794040496630562292479666767344027959422063894569536346890069911024539236730320872600120321439101800674836770392389630609076918427914663033232556668251155200736070143578000186376033743343432841878322658701091822260419424484008644898026417985794439295284838102828230079339882007211170145051393182509146514768601823914568773170343836934480551709675804907848612505896658827350806012466253474456576127611083434961183633482091776411357960233927484270264794915412019319375150917970322767080800689070856387677507671012307654803161704319067786327363553407698387894577837379393011955513994848049416577575350323748854103472105289823609556975438428399959735634087191261615527813971302495634443374059401674934637421960200987858643550028563934103312453083179131132414487890130416408461285059920073544251153170730537901998098456465792947989038700301748015090371054610546196183160837535737948832027832930184164810573025711077832889218847682716329729627488387097874787995612354050225192315444962446313025727324985932379429984704314218552719817465347779197492521685903199629335446666573302923772159630978981870635701382939818009421508552931299315393602756838545352116231879812473126748883434562935117297086779663134679055874841615425217128729708204362395135475953065838610136358581582489691318991140756884863223485437905277232964131705915598193836695559722747718584313612607884410668940402850968738873437535100796202659227802617652095374744724219871954632304692599422388819901610617319510263881231878204024808044309422448998790580100070378044990677577978217616206325644945183343533619705873875222920627281456205799783836999746655715934093382502333064545008609907194016564787178964021841151363515711388441146378995216237164522390154968457415454988737642422227457589053972093579457087873904522326912166985233284020581536344882214271057922731879997627588920159443192153747491702984498098786471843640250666731757047983355668970212026875108866853958646204164270022920510795357005931463109933286643868007298887988821647024973535660889979692250622499220132947872171321043307147122633324516503710192462212613221723026465534160093464104738512458019392433655760592057592335136278162426228282981772391487318930467688407089679977782440117481741285882495399143723499992251580736382457302312523388870330687363040877901444913970949303149047187420433108575941087669999272790756821293801484644523448010587435607305034864346837546810757064147956040745267924946210627820573026569519788281955048215898652624221377603797809722990865743852062104028121365674573221421495754345409330894365162592748937292806300513358105855466075741266380669288020495640549852018194378176339340497473152478142625768003998123953184904664717155451195818628091283933490491803331884524601129728809524401946215567079710218664770083745155418752812004436384939710331142766390364771151827336251924154005590736459412485789893833377114815205946733670796691997350602281762017677402033074289673177040274693406725998918473646111486580432947440022881508218749779066640340672464509075147033986942954211593367248730791994138287012590752460522156988539392749445786990768876201001283904059605598541350210743593669391593881365761249574105100523060139471063405215979253481834555663426729863613527230048230280806458646417393854045410426680303086692197504230616592006162691727176801263748898519330309105596311606595024030127814527129387827305419157396996186440994149484295716753705032009326116554392065905911569736141532545708854494107832510148607501375535579121634314724780456711358507593447769983930754321880628962274761943625409622266220704969422452821881779078945545197800514025335181304829317095905096769689217370222445858973495131467665787940687696892685822113198908837139551672981553001733646187707400530607602085269036171057903406913055854125566163176734796228685051229126469636337966204534133793346949897349498509511500577803544616047177783513687348469731902066330173525463430931529959537384169362433273733860057361521080165649956209560093001839668491983703408658785530250414564619726525248282989009332053490957461283291605893019794335006466474491388417286142186573760410998547993854137117675811780139185174593598208823306665849620678818804592694702620958516140715663015012172329480106579682657787461459512632096701759406944676634634770146279442311586281261618240421536524274839985091249920205740365532954672727681277096792018896717106644822902343281023023030741272658580764495941326223528499101486265673348040961944589797851769353898663009905559550660969628420915118377724753325387018473455686280240460490335910974827524135945972253775424878169087033109092868504776664332073578142503853215908854036372937749471681007586825320968901814078176735196323067758670989805458496512143152589140610229522932124449561464246271493887364077342943950029140974843874011273277355426980135502786961913804548493800821448864916870111265465444932955805257734727403224599520753595520341459024126380097503359337233117963706585925472179040395369693414350389195425233162906264408866199268925705088220470491484635273737487622393645194376632800500951726982006152913593717041523263279067265894717303190972466047465165636391198577010264095569393225880469234776235400509796239959872517480455258868851629099333159209489940284284777675761059741417551072826612615399986548790762207283399423063027916027372863310966280341520717844562574463205173272811643100515921104996444101859756791426193074531709758604399105707328756597057484870523947029902535661832823881730239902066901149961300105599858290319230232022470199774693232905604627959738902706515043238742896125089552466540861204180566821998764572108190782576969747607337286195681111917415455901241062898220249436830437019230899669135606015635484409600963070305670092013873644231743052772195873893116852874454401819643691233557121327414844161451245462333934126570326889440653655536363947484042743066054457814704659064893070861773917789947407454712419091867238980473678241380848836057270215988103398201394108239961856477661989980340024833595149806946502249809024718899523267970172492218424100254907929422214739248623448496266910602172772738283868431447969430244601466198206473778753930629654055546150920147057614040990658986767082251246958334837837570599738854591725750949645662544039365775327256255793302221962153794414901491093444636352130666328880062518347744535481413630986934042322608578839703134852742093160274436520830849914755121301673847703199312478281893104658028736598583138748376577498939037024534805270753712453898615138192922631576820750976822083404364034632955003584984880897987325374484782386573586310191821898294054949321439382630419136741350553293061033130316443579598373869042318707023744630168837622505680274777661062552583028898303253296024217634866393221983903829205577825242174143540638697774170487305683052510632555778519142766594447649399928711867949217440522327920038326331421283522783849523935155652398031566974589960320293301622871295324575683904245529864043911302957015317546958439617131792777981300465879978681863865331670641952868466672261982416574919958826367603909868123772209435535685612695028562550578775064003067721592814922125241544320779044831595435961625792874491501995645206566693986553324092814491995081530666050805510491867783673757666659906469300451340037978687370946397285545952016472746443254916591611844288017144729111324517099919974643240372299602179603910750224359278811235952767543150972366191298042304587344190693501407979220438040598420167705611799170868197198659394300095965302407770299508655318561112210125676197274893336824793644260867600901099590940516033510477242351831380313359112325720878870645093467817896533894622331617685474254001750794085445515052016318044802579195624687584266696820273937232529873772515564319481488296036372986837282385100298698375378890985654732592015876001776246892864273743451418532753446553370551559838138364210976685921641754143962797157351749813050740687511479438143440770952163122408904640587223274301534526997902666438524243940833012907327580912223113333237544203610667218712592493197263846920882315521280970737969225226346493992543380389659847007092073259282159369766585325339589796194837063852028777525221624207297810724637877621215543897547276177528990384923188473833355463908184281625522585387876220829986574945339042449489884232471512968714967195496749669035040143740833321306709054537919925404302132205677298602591055645625166334058330396437536970767671503102617207862813476836316233638646911242768633882042495922123401164692852049470755499588262814924255237703058661659180626328469180659478118151534619106058592678854270905214627364175831047544820551552035229404145660292279485480526177362618605389048138097053936154177535133690409944655338493123982632345386784861108759627900512284098121755122303298169413221190166299626171549991699529003093092118390455967517827890061754386343410812731391422332456850959157905866422182000882882204202573529446768867553819734457555001655288088157022284413943565732945729941817343538358987846249494612000859909257103340936257851531525043441904819095303491536844101447278629904246514707868318100608086555591690326975085118069289556385252591866440504824053875120680105892758295994331841188941492598996919731819158863169388821633726227182968442917747299586121727728676933736965961508855435069043370440306083214139847369100358653991075221276217401714101027424415270778923873339452575295368309262479425642337732884545028461780696289987170023019526902050684752077403884421524683940568722355645104100672612242430862670101749647392119509051558080884247046933820749181832387982415291014772712799003236135482427017462043488433957524992288360371285628789767375391751839835458272894837904157896567334123806338073986104032920518447096144592574578966015985322026697121184615092526632309584320114004756010334099487906807270439485682363641380387514151253874484675139850345467013854326809410657736422396610706161243199797954965111163466998843692834252491035407980009337223634398184658023461940257603875487242938394744120101127081792721962111705609066871443277266413169628685780460883187032652564559114229931875358051163809920739260169597660401642517897163618321845395528849346550475884798514838461653180561392480536104049650302347275679860513440058757613149323121243921495068708742487466707316538286339373286913482723305215212053172059477307557262840702917527124832732763255510088384662229243097780183150790854366483659175609159023340164943425632578410866118895799969247152023334867422722459750880681801009981590947072699762045065243678580898020162414443820455036620039413239901779155547832713525990865744312960702670596359963515124834632688571683133397722641422009049471164243045261187308592031844051459754008522083667401976496178443448623511242954543598038347770584007623646447131212465997566766255906000241292676905016762424707212730904128469432262445155459419641100258646663784401766839798237587217444859682861733466074776247787684919883229112143140243890456617020338443060736070036588775037953680600992775211697533053374235240452024776184562572256217528055568140142770638869983359636425828498282945798536760442522670616745098660723362021980627080956039037847038963189268402848488082694427148460825722761779418572265756248066965764195197217142629814664386855875719575948205521427474510221068560477460044054882088049271424531046817708628836673363893869270952637021828226943070893023126447667143538218341554862082381005161085441180378402756778073898238541223235561293636968188475248610532895217491864458617720506770624714587606631996936469488650603024393669046780923323013453556362764113986106928370847699458260730334553383275578051263583406386129787277064506797833354618930932518747335991244541794125095377648372459779601420453662341841700574065599017143531560079056748251236102331659267322971866284838227978801450098315559404628220469147396643142625835398036162134734480580006368943161972711868662094512497211195366971652110693367370784899657942339488676899869464728883973134135495599278488044845886189105158615741345291510639968803453870873026773318018793230460277923703278419273546874177235565676966809477199467078360111467880175278038365484908658912887401455491587732192839417294821383457036873082608313351379228124923935509605231035982065454873662839824977213660552293411723765741483888632448317556785101810400687219584540691302889035026717195096584514252878979986311178789079006351397635177363237235828909942477559471208131696232316723726797289003020741749540310840000645108328897401288360902569601017114376752181324754005395434420531674799185223966174722971318051550158359636464087776002148896640440488004097946758138023034876694977176134526246943269959435920183780826540683003103982529751606608084089264454418459819336429467500547944642698902670043010540077611033120845470119226301507600918149129505009562585112888263052828530004905185524346603615415629650675163257652518343696413049172677864428889944649901701176114566869591653701201587541627322163921944568969249188294214228674114302246017621665764218191837116803141028989970459917506970919250085835018160189853422541894765765292397594025450587508429894617716062973123650333398412365243180741405297247538663073845820896307772499645277382735504686877086944215904628735642669451630453780861688155728655860470912497423184035494579479250856886156709231581519035153791309764189097908274728262572575272664530145482847614675744124111291910309813648200016046732405517221640007142278221693906726141168537214443134420077418347373107925583277409367208389817201897345510340570478954930285654343357712546167368643408264456457852851325029709136648932239043413270001040245448483986382900925056347956579441450723335395971524492146740286925663598195012036262154860924449810671790548172695922846490537605844624142419450412298687747917127662129774629396749005181199855335394047414756826185892937505384013020656713334953369360226710349175214600229506158457696613879334195466382800252054788008410906291186738813052504184309338822213402125673656933963341602538859893388657195034791753412903892419363367664993880434874072732417810566465745847176402065178346479527793521483657416141632388405462592281634840082458763632687493846057264878536480760763402839369938991752825208079657410842327786265168237891303339385537135087980015866173818326583788054985432857618185274954462342402195556809826655304035168145423202573112139016897243169266791715071717956869164518335972495837046738558670509434497950518620812175706348773806846058528780518650991661669654040546495270344277804869487912891425557918915191360585076277051712621930437662205463935043424702369335327669808553787292997930868419329613075974031518314771324134156230295004900367460675255787328404907956545841481570038287963771478155796482501479596842386399589330895883180246149507836960161527950282836281490710312516167922328674637231292074486557620841330198479294449962005459781472169428072963091125946821267126708702598444864916729802632816910385067754194697583707332840411433531314473266370412289063155094319541117825433117987080986322243889758888705533453901689589233754369610643352751227218339602683710462974740095137948499592940775505135170757310823477194369341210329890807815172999470402607312733966628256078323112367369232809150237612607718982734150977175603703842431638190975607277985951639361269630588651663320107990773634353608989674388316561591198364287012798851881591425897698191274300598548472542529424319811605367638953813946569091874182299824773117382314515154524216865836397130995588040145304728351207530275354577276627803434698598212453127976934564003803529010456194997129909066574870483700599151231510150255135604754172236294429523072947442645337284656180892952815244660074409735874463643307541036020491029157240162490370432291690517482584195921345924389163262205355412853692600581539547602908528364522349806046291907650741246354037766893869834753622222366007173492141440191378809584823650995933252126596692966709236177002264092730681038984762304232752486739539652856847925074617303368388484363023105441724070369589009420339241513396572899205588442907785840656599704950985237899795883972601893076346967888647656871277692234632499132748645377996879960322348725900844403644885261674382917295481190107565328421447438344833578153963536689109981687499640741955670004969641932879195372580342875774263919723661968053863409052509457957882391589929382129002459382612825525941965045412029611492891727527506232979186938821639051394653664896386943298254431368798243332523092210843278544003467736303315318970316720800095057156418525080905574913866214408442585158913234726585226088889354729379266395209453213427865738787079542329935763945509147609226199119956378516231906931581217475059313493191467378342763727504892296465239828976866037043967122605109812554429503311060992607987128944525961328961588487199956790923788626445632272740020970910730811554826894045879591753086982346419888222514373839652239181557134758797098575650271027237676355391698868155938634150167689961813817025693163329339809563147955699788063552488273694928604913885703873697037130288391349640930044043740238127624923506464460370399922125381053220281151157954116729966518147370431401799798101970081373921714488699333207285681769319017655905130997859725209217516499553422928112377866209524276832536649345006057410656324902184245620505422570393519594011719290851347973482041404962934075707810725724991663144261415558285601651301320898185777303246230743485556633698427852461353759659576222820946426794916795714185273225978730891464700062638208232398264667961326599335561879295618154900678883816358272139457342002407390587276186903619050080861568043241780606039463463445685682725751929605176336732601373127164647964585257181566168916834904459840631306635995904338780017842807088521517435777600358540493525062226498750273712370582195692787371885236398286332642123182672286186682915415405110712390107880249396382522602634895599591409785976047705199701231567543996514819629806304762441951077872314166317265551719593291726777876851806435122869583743504221030764186103504488338597317824952988974750133942729642081017968235234143820225071621274054348150300196066108448836355729157908426667770608240308294829720293498335342201083032072780741520864545004254780990424210965148494932337904403122391127428558495931769216889408767417660847577912025996381835100821302662158856928839733331480207157301053870110768383352255393616633223924725910760004312675221155706548364932462206435861944204210377952540950097387934625528752369495909943969863616767138663295505947880201770942782691603224523579587297648844779183853419055791810056861013140109364328055712744164298153119609816267596549105169548082443405719231494777008672441746050567540262549097538323592452737529920348445424740492644647233402155404750186157493141164907473047086968961472444691602857839190324837566728452008980999367863191627164516934809589584672725482898409078838875725352141447015232881149229783740144039365666694546076869887319151772405645465437255496962642261840179788374631127358823785507628848994876246967305149620695130325023840641064677639259681484311549656585742254598162820906028246384810730788286039363792754533660588860653245211100309702870621802495160289111527158091549795681197703173812196896148873931493131288853436831028131409709919328515509472186927334108561808575038300899003361348337478053513602656009072632791858881916367587316484532545998403235126151391135772860608423879617696510149476919022408156170724424352766118504513593420652847725966808612818130045225109289399608747597164700653204644836833558634487447580764360881310448034689690322777098405294426034188895304826554913445235105850576782855083977995271884358518348247869091900358968711474844796720663944949512354201365187505198820582216236273742764953680792440265131286152756569009626783935713303159786485150078980985314285274850800344839723251363608598430929833928043394068492181072799326109022633566407716544223108519837203947522821276051039053054987217923479432991857613457083523617977064196841635435598822482479713479813273916591015217747992296426013285497183340175952215472668198062898752257825954976690969539026942740091616507388114940564087582931502804504070686884365933972296641185229338632373992157543297203886460233955010516112265158170914446670243688033332722668176043602743634311077680693369012318639325134818418261812996039287604026263169318623584363624654295572256273354226830848758552334538996674037705002023353020779391475806308186352726114111614433373163508084686356092526678732527953392441059661929656477882301092078258566133161047480744327380835624492303954555803213229189352002475115483545022674701549602071436753104505027305313967312959698521311009253088117499275087970069649647457175780671406778436160421457274554443138011221618469920013078432356592622546532723344938943571362538595969686482239114398710727714884023272235547756558468399662696392665068911924119925474247619503167616883200865730979413040185927964351731710031350978726691950722941819603880800510771824000283770737745168286333029783495425980811960688203698389215502480835300748839530021384755267383206546868530147394722793672564625856191821391611644726758047902932664517567813573759255754195511271613560516618325204654536122996743172329069207554825012760135379295679597126091315171150896371158061641172296170359047354965816480803932341923447633236961923300314616029932467373233903847834745764205715361053625209183281336354457450533490944002233791443619697741747084527198631920403145207904366768312337341233961813824668573525495303459008951877978054842378635852362153672650054853816963795053611281795261895449060533973749044292430387924581627918730670534162780725369667997311370458194833955549465558707327488103494568402663958841531323794292927337224657296019132321023086801736643435850755155648774640455113764992075891351074256404211768893792605000288330029127529530310847180853354689295338343918720274367891083456397867892127345704148585028931143033199826789310820479490494267313882079103988811124888440065169003340809561569647652652059041873581008373178691799205315265509134286044614343620249502958690695331943551482817763666425866128305326570458681557989539850513495073837734431556618429215493954375780963081651939877499495940153321337744131841580108540866256463294947970569743123098438447884767459896450143005745732553122584992747075039825038988247066266696813890593564328867718190155491142761406311705609051758115943709152688168590913269933810024451041669252311005668434841815404945173856289375562310332871103026094202610365704273782706505112578758450293259097388832219368802721150643883613240921191843250375372816692932865609331044472739980470880246367990388212956427084915720878357075508014988319380724102862556151333191990279576191421036733488112574374108362588773311751518430635798837134927224394920577248508757339388980919995127860326806071678042180167581549649422777904109268115064800021602786296762441997880140405971255702928464709974409546357532402899806715849457048011781525696718495870089906784933967777247139645224929353216028511497721532412753955485871305685142554961173395577348352643207780864721107245183227801636489096114294572856456696038953364014835855812837167994703527746207226602402145195696144884907217789133456898137227656205857118683828055139497202021390806084423022326642234851359685094115100864862587211062853763391697906959293963957593074125639832366534231487152850866713385778498274244239299006109975461994095123348866656431452688763194144331988984352979873594705707468373162414080395765758154648447287660791397446454145661128787889497600407640738401305955042576290352931200323292968843644425505294523863320360756053067904806217594702555584734365075627542601432965256061490786500660606420347280223859588280275744524313768635937431766458272164314772661048934670329242429528410248549811975878403709456681910639808053488798296938985908592023440586702535415341700373500354152568838928950767107520236316282826237748923144826807440470341747350873971049927585986515061976530257734606763909236160707688358198718706628995957353727233368993826256463146214658382273864901918889723214701353292178465780997886112805754041572849410806003112019209127234043156032588531589436109771734861672875988157729242759810026598027175618762674309544009119774460679100876264373636495042819928646155670528492907773800748193953311602477213677394303600480335059741742800233771784211688259197233460485628940386740324164552984014893075083446240007442023710365465829087400992195270980861386244188869642166505591442082199365670393351751967370642625808067083692292968682022519981409704646428979951858022024596079322182399601243608403547788368223862883893159804301215619058312690648015889874597766985202966551579606376069720603990475711036637315630413116953301423118988789002660154719990537653230169651957963645467847473844636217032096395805304396482441847180300831712329781487375963133126877112972496480682656632696409255275313586539308480648301790285310595740404007283359043238893301834249255923058963619306996825467274736527567488156291086399306937441956880192228045183176716339857522864407146104677532211419946539164936763608938076285424728982439010980664548206657619092569605299225451670305567949804213791948841539202276387510692276964613000329686382441002198496210831285475518743846464342696488087178940853466019813364192623120745703703497995278986362689467778001443880923091881744309286135938591843623831955414166667694174804090548633673224885825758349207069098930645312102838245434236241625074498779446755635424263961380981533549484316696813812108179658045124053956950532712767280892992072694323407741303913068170075957168484087255798559674054936271869314626992585328798621011239970530436310707867760673663690436828439871600142657437798763698501396904298626854601169111731934879361925746249901595398477615539850082313564873966760920280739583659582918381846108148236266310619096667229603933892777579040439934139821070697444591498932788613077476529479236931804979392848502389301818713525257295765153607924683005485145294275863358612705947499675334619656074176474633522878550930438425376722284558148401974803958463064882441140887222689990403550707872197159869359745875632687107333142407348744943196201293932089042032872495852295126294262477567682689255882383055538590412244644263281013091024458213451080392979218370388002400788502603574698627560606694027993990201561292702358904123682941364996066981522254610268711393529249477749732380502810067555713950549372885581913929423538720282807215159619794613896576654218195733369457873087072864804380792362557588922900075824663791151668786126826670058639924134271637788230151171175331902533704190946293172428715483451217020626096584447786598327495100263698615158828663723027554259444122379383167093923553544972195323816325645400119061602704606644101856262823286101949158181684791199556616922161078419832360539325143582385658579819894414100296100064118454819107576417184988481225403593260435534198080934729951763788597175123552884727345472892300166691751031221041881408961137657237307186122388929852170143638352152506085647368964716425125062897234339163533368055388689095771810780613322980665505767590977263876317253582622052544059405288101254963887347941409044436568523101499766954393596372189860982699702862043224046311477800089898676716353523508470960140576960624768641596050746775561709551359423010430132693887887450692445839193080692132833833424143754728149928751180060938347789453489529230316246493432995033779169605143786491418344560382720732048635533270800272578182552986146459090832605842727248223681530310094345317413216575174200711483304509736794644170226861359893902641635104817454498542449629281598517958609454761690100317333581723254318898088977564692558826236032551028849713738626515772245772505914718795496184143345374968716275179491242923272709903279735271419497636203442958696544693425420015322418798908557187363147554010371793518851763494579062009294945884817080140149087368627819731736949200821168185478450999591696132049369803317610340275968851281648193908126998233652214108726550201563943032843723528583235162338256032166970352497352691521000276822252984913183645681061311168392987808510838035770499131014926071194500232871073126587119534920616712416907528849680579650134418187969079626649383312004903857884614633258994871778700338837726584681661140392323565045346661274664148318215180709428254103099536948870506478202213504435404743945271270496456907149347620978826571414363314924015325593842456891353700149533441742447503622756435113016668734208012417249051924690692883026227237580093320071330827675773010574914542508606677625883810795964601238656839632868517485219278548073023722242092259065281839815363187943534336255728998003651706827175327199664127167459879361029890820265056607783936735073786642792500401277024202652109424309891824887272629099058466770011057280578661496890702639533921950963563681596624341581387064944645880670118786245821554528340003141986439404255816302510638716297813093558771503530734644721525190182623912945820837256881447837356452861505816074316524992252389394377558298564293828363834285525495402007192834279961724228780972443862013628591246438992226840036273055280572659294285800131979647431557407573232256826591650587529937602262050794593783488501549637012978118330969582528594411363587046756446079550171879873394779362456992274322768456975597726021371980149698477312549404870042043494753558678424656616898937693758284365162091274895860426601091012148942417509195343984535178583689172395144386797274785074197480444992788964110704493706060437660915274358137961051648274874313181534237529305280008595941421908531585597588828826191491806896950661270975139733584635975623245051525304768950360709051499376012177410979751660343214647595206074303471124978507448463429428744936929420569610775508601690313841521829177510601963755311850415452620970710859996480803650478483312922251923551794782893201695835112722692853317101435616640264404147965576029381889713987142857370008372352696551513283948330664685782044024751836356952366844680365676260267866418391430050752117168204765604491084011697696465698374805001149918244698220718527882883079174586177722857566245924798976679044189828241034116796071105707744946286907672209963707476566235369381754085552459670111016577844153143969589106835234909788888028965991711334027918963727457848498810628333730166047592456702675019661075467170441813252350430559591499703120650647665913573315710525090140420043787964791889130587503673720682356857541301388876638437198753360591693102241817887950538529470787885322657444346209078696685588408498444516878864035221105259873322420976754459353257724091311725041757033337997879374242415137992159864801711420416898154574804410503118025497135346436639434596504383846269040981260415300200749011902910586691975900734951465179109189214233236318143521220490997391649273073326870375611708660926327460449446214643056171267791269821122706235117269737902492906234625719852420883928274167577947897343627315022537535357811269219355635909254637360077396639807020324199837851323002932118656129480894815890274327069837148306165089340814718660561496092910821474838845026178711809680882114326473785124519399427153576695770989008064400621608950160461995070647015020187962210508616724896599329557146061153518192008901946896015125169090774496445260385284837940338393029997558384917447440803256489406314598861883220999033037775598653133657369011806172131314815336943662397338210322576489979905499015009259187010931309942317039624958777331392235181989789551022657198100769908644945137566208120913067653869728472001065561792234558165272318322008734740106630724045792136537384573938247556633514913725713181910552950746652576481071004328026987163014213084819171083725429479039567227854421286578962139971983703789594160286615053737528288009997545426866143933948002198405350767040213121560860943247262350281546192872632969551003498025711779524332724582232484124434764251812565216809505317673542252708258190834433446718718166375625859545351471967536628590151125162149501948338258359634832504532550297721940077758023320911629140737387067437536412871943282594004902194309472452600465779347799076791092361454289611849927043122777719392422269512840177833603329345808744841991453796182834163642778922428927987741071141198996411346067064010929098402285565063054157362724141903185943029513917347591227449095378119938444240171137083116899408912202176233700271513560693676157082212919954839920096119559227887475255105695274514030132544337864725817910731907166107243588611596142836516414337752100347195713056180375239504595951374774994452426110414269264506902508538589332409120270872004548891174497221071608434349617477326644878052599334583545424355207598921760264553581368553405724521964217779204789726957113500670362351081721858356029055566045247979549712100446660844282894396756616930924832141009537098493894427393500012067937199718288435533960237268712306267755639372605553366675271120589504386075810849274120486076709458252370906320082310499246863299141056773021907225954582313288720826908317275307774971192192255929542419384410277724872382650127534856341569302849557180265060201044115527438876005547037818036607334615829296320781160578535695714053324884077888960046719398330231433673037670310122561462508139919927109070789348106312494640571882704518965020822390535046057338674187505162960914340611103426752472636668135578122308572912327012590789729881211020992823028434962085840599141708638419153479402395729302269025508469956064131406363241315897775487844827502524234410250605091697233225942640173926778865153488153671215706893568171087164673134205195370897758375983862277282617795407761582709418842367402561856176777904511834844868572583032925152777837560178613396495967080613266405377344631122599215084000786666556961232103918786942036550143496766409461980624648989128804240278211652041099623083646600787809842898605198558359343976120240867046711692792396390555939144179872806243630091253069964278960096097510466163324106284337731434995070231851572295696640094092748521249396751205121707699498857941816104570496076441355350794978090154220563041358083513345934810107430701425376047614204442780112068669574472740980846842402696754834614481461315851579132624600765094678187696967712333868265098164580479312491952385301890729108497163243907932935492020550855820989647840680853043381791119544618286744635695376648770221283387257329511931607994620896070744666569037281494886723649167742745968840541047392046006319587108418684474999470446252818986812826161448593677146448253339930391042680344950176271590717193752658710066565887544965118372606052985835281867671032635772774882796540627075844330071137015031362932399463060777717610050412582698663496277579900253945014431565286222811719372286076594069762864044887892879549523435903388752441816216777972863866340252404919206886821167267279216173977713364050948754041966242457096947733321706747258576601087329628074175411725931097004246020707431945119407441739780634813236247100068893306398619682475977623981775293033620047720673523704537949126048383434398185666403566759885179024986298150470897338266065234825425418068342570562304752590288999578481079774813392186534281083358065615136371943342714770024310471287919168588619837029832101950892446541953487284292480022261493329902693565972687893342586792255322761407564919832334322183923085943604570017284991319553791155559502353027377090756453888280654047709125889677544980089868292855728060049280967923871044171751861037198744287395397250203118520363199400570415793522318008366334480250552251164353981561889584636172901640092000569495087516259344298893388057625367667459358981205385775522793372731533132523237174683110666106469788466410295513639059586801882688838744561994656996134761617508694690258381431324965452041676930847398063513287341846158628030246520769249795205151730535547838829458455730998398369658666476713478817249109785165633739610024216645888144607749525961736742688630875793528466169500869870772560601582934116894791557798336553389057323545211789785668780627762210400314302136525233903333720260625018130960413709311844580970635343776397422752755443741115855890395354730093129162433063615895581844670265588712587562641108697237552239387866359116551347115912500746063414426908704850618494488053085814157950516084468156505780295331877111539949459889369703561320799842945051391712632481791604306216923434320636764384359474002831731241612954858221369589832960094474863645784005001408456598585631694751378162392543286537068954931386508613761885340073086636857736063966808650548224464417441336264019898431233860996422017174310382353650354906930583035794322424201720165163679960919839740411883412941988740445210797485019591706564428375812333977940855826244728555871975975154588058631039052536449331552891085546700905325641904447237664759104347723354724202538962230784642325169984951059126208691843070888104847809420677672622243322267866811093797509199566161873743421130660518339742320140656624641621823497124037168274975667760106703580519683866902024270741180819715430835734854981578567826464680585208915716775200999045511801010084112158015696740027558771078777007111798300954440409303839500766512242049917168514371354770249163359246458029019173126527861599275782032404902890123268053908475849035665019535390573637065112080780968263866702781873579895465832691658157367506566210512845184219900740825839611661129100451014463715148175622928130872427931225881931323705569633163060501971787705099531556673051352993388509973481934650568385519825557976550748134559479100281002957159438449122751866517702373349306518147069322290602637065067137898112181854895150850954015385692597964142891023439688400565858301947676329638537985379581284238478422334526394127330360057094408007439181060727821772641093268035819122148931630676814494186316235168887850474899734265100611287857006392667541313741614943380513704421839389443112614237185462254907556389705024292746357449335842540219652730395701063475536896989376135989899502109222240040057076427593010112300545136830415047666201291874712059067108338613742626135717822929369860726105477530726936742688731357248302330689434890555761772665380101309384884255302586739324972129614376477882966902531607434911992150187184712445509613880372549958565526106986451470357746915821657488646370760807666795783688280974460187903268275356045314604149903090948681361980392278879014921285202539080092283757236606366281713822428950633726114166997970101483859453368046940493611230243405577742535811768935000213886113236098984395980856246909957243096091877337038767906837000650094375774990052281456644770143568641786741008473601805408773397975965362023530510577600836832711096019800460156105321363985812527087249699111035105935435782071498984053640606057589536014252119974124554086140360612428194225094025357426862877614249487628977694076578581609969201371223034936563044735853479540779687694576318605769019942869256148119107018515195267366243391382465892394835942930480471810219854627710626854875322567054740703301701294223419499370385313067221266387412572785525089836997941659694580371825765015036137494229524739650034530420568464897272066853990941821944466384901777949617623843950830347331993005589554414609369531581163497558712259330087567253048631799931063845297444388423294131753337135617741116636541384339396679639960589048995900220863645866528514419035254120517976797395220098756030648171077106017072887182851516499198269826013442883537421255188014014175678413696719321332829463724467029000630677195159423194539416905461201587229828986513547503009290363140733940096401487449920952967960509248175988365195313972943396688977455210702225881426518899686002310781707700119109178752431985829411381069123671159190065937896658624739836471005762173002533592375741473945928798058410685954822561232255225188926509518125136932366554226804287746677310718349875083204522977987717016038719844249959519564779004290732527373330410704398848255122997964037682222960375420694674584634532072397348758281495273687577692400148055053396960796891727101109695463889948252820473571557164403723209849443437025766179996838293549187015862132254584741437664254956367030107844299741493208858473669753586387512901515691120628034074307450853229098965813503373861658574643171640007656614872182432049990567003463837685369891721309686472708783607834246537921015465487509003695430261054813971227924914577633327004543559331147732143301899106681509439625511696815856845270489783014917016392736471180114637224710418955286728876903639430206856313672756823516573963761742737926026432703931412508186117431935091540098901243259326375017926952004736930918408367094853625797651284879029621242984693040495001897858144622145628889245539506687826360639552502373934783937409768098500662070283401853780821036998385099999278569711112687680990740083112722754095805063057872026217254683889690755938457118296967442776857116014140638659212931803140736780708522255468520984988941825293748602187251626279822309329320770568045489913534488880418683932174400519900131464555527587612416717032869195176467666777700506905956314638762607069476156102600706319539210493197004052088272417029235267833022066899702795040302424184291446603165754348022700147755240586299704527258995912050636319428681517111351672466997579470025909228731536577160361114321269042668750886870522148879391750096913530636147408939167841826167352107580854710720048717907869312476987014709039357471697957970837828184707461372537392937352082718079664679451006151691931274888002167312732350878628832021061287368381360087418703888915167352003619260070241218626084385844583918878171865843302052870090732066316093675323196562969017408398443315850837998983909327876888300833111559726822226855780573277472663368280333832007198851779821523698223756828216217797198681715886218582169775520166893724476120958146983004606398155208435176815422818395601461409592275255689210757996371241982097657797869310783561705502189347771548756008714758315558874664030511722147148769584843419680354832636195216178833733783629058833706850500269921963789226028745050573036656153782744047385933465201867397251810960143636224697444704877271880037278380613204430157467044562387973486893117488723770100488970269865413543238737651534728656089981812135233454274883799652178159477471647581855336829296930004292695200304666903278675802096966024539476638537015654155061153408869823458489471546628733113398544327934712094609865624238889886898245394846495750477425821450607324688413563350960080609711239956127559685456726221481792848943698533846261089539377902598293768843544902330341367592217073801920870643176618712613511855540177232225460028997376594283928115722538884655958460819743796210317087417061958600038915183390997681581296951604055264082842380359378037967600162034068059350164916992294758207712074534548963357879381768268958766414153779415908897910881991892590226671715060661943843944020410403460061592041960935756997226612874610124290651687319616383579932163773673903647815052503060561296544359755071683599332367486345768525077537732968364125342054352112965578383787344777773589029835303026945208268407227610147850185476231894946007040542546891245947641771952819512905672819748246241178282244655708614776465956463400129105860642220481375709639274750508061446689162570711300620977876564162717651807226769734548854383066662529494434631630136974828148968971978315678727225378889406375698138486801082084807579447139628020232713369704644209748107163321972645370446166542225991458667745471889782797412397066485278386325888824511199367470063897246099179568828354167911959430463850095297710291973970647776543852494465458008075815882937993603283579575665580294521638916315017435123394596853831857950810613579482688444988490590046906086284113269110398146967692021953082656577399982055562169313345110782663350774280645665769343402561836363252462792328359034995133499047073347080222103233253185293370356812893397094160421397963618500688833625047417907078063074047222570784573406665326905622528599221611038737926859243557073405537643833170841965794753918046877677201645078639074952546776868754842787513042293628303167322083572130244173332849700911726622927477710118448558582223277838412693293947703752865734988316553908921287972329951504394395765058670944843589343702004241665625564725808152587481368002396529613829762525604949584798345113144805786062327285738928406575953383979793704221359474795482484373889582684852741786739325537638879989629114391910847143875691103814530395702612829939497512320889859822850515999774159874486157618568789071265847233691463648773362186412017463498537501024721475982396832454222353900623673191595014311988722815997573054786662919400453059147774894360201254401036386885721587926643844117016487410530299508189632636870218463587872071930586210256982689702600725033029323281442528863169514926551604876221295689871832919050818896514388470149751550911867080841793879572706184916049477994701608928062893501075320733959346782152167815715374460594072851890864469106698098135809993652452640065164080071867570783392862660049753588370070802015103897568030686213515572822502813403664565912532850623133578151047824498000053711479126674214583175639986239625669044466633451742097470212868191941409739299807656368584735955326812745234439296483139689504976588402188330332252072098217103612624769577842941499237446137499538045690844005342324046069089219937538323584697663532218780274687681354581996636772905857578630103360440200282164280633636930863806346114875512799778842323822097977569098156448696260287947521593116711704505526117920802742874113386028156298701554679856112342709594235608913280509168180164631561014728025381176270352914368339415603157960325351543064619275098512358771708066842055735990574142202781087587152685058168329633362338667260198047858633118576349878711291857385679156232348630813183322041741369210213960351362769379175329545256284168143128909824658951348544504463681766785163466961792997206356218789019152231435486785276177586467890305786791087052712474616111504323696648407434568568966759640815037434067620653563979653748921698057051808721777866347302863409959520179097488126777536444823119306273057384544747820554254605404707769580286330071563094296044065044168257700469308989190181635406067429940526185418734541434206260306067677821671734895666832019119790809835498841662466944893265426251906676696793729882161255566933170246596847230932200279614062023990531122386634660315506071965963488845477678376188153685971491032276547377156018809478945398202564732789124480522315331582622454370138037067288740791259668085047403807340819912274864363281805645117050545780446498780620955067158849650551702016803168450814922313055400376819124103637599947622655492136952889781007272300724408895671536408138963928831010579291515664717411841281256478654674435849854471591226414401260965959011123952918396396504449557191980428665302725326315362799657804807422532522085141232732574528539749548820098206952423533840406334806731912425029478716952172202912303352106923174441792112774680123989281084573128441586519058703475679192101687081682385232644328030612985592030892530581622344353174349055618763771760368515719794817442452310360763256980574808672705110805527885476165567188333371284836826623886014134650004298707302962739495652455590614963858189623770885831402133608930086222188171240179240472106551973680382703935286373758641988329176722234945455895298014823205266425009640224414778562209037707474959468412964662995835710217463975455777070694863841712781791233963377381891836010980565391249105959028459573291516079936828133746790063757494762635185232132416492882305421858935749468366936342748688763855665905902050465841729113777276847869329698795420313565655158090969157200457641992449285184034010050646443848512812391613967095043453023457751604324704540880109273692220839946671032738279309857477717383060924696380983136629945003317847669390764145777202216591511472541028103954306085408497554953659528867475723410951543114571849579976601835301768450946335822680650989334884999509077407977377262755811303622734455876167855207715902856240196507090859640282396971954339169715093576235864807232672559469454356853216932562834373083796613210255423108665151057316473181680748641956988866594417297654448806952152975801019246930626016570576035859462338112380940311212659236690008986617815358818142958382877980757108975695828760986660248807163250424733739737555370787642216168562158015327962208533120485249072336201002724885268623216493520768596217112389949709861425703602595189071270259891594016490924961101011851606626568194249806118852839725176004135612161059951870271684733723287002408912626548768590685688179719790674155654145336807470315313036204674886633562450774655856772482756947569037912215003305332982568453485091381506772995568010168477662608410654621113814028509299321211593286615198912550772125774676580258445384531421645352161596417259503483919685122900376694065080828011430613714138661342829599245065607304428010625665802570364235170251392162077776960381612436262470529039969870667603692385477428868800290025888507541244012823430545701463289163988816041539449458445950752367450178396087193876925105383850699291698808409523817323508848706128948253857632609186935930448478811548909177274707977258047470574725465885526437909368015716937107333280384791726637063534903247834976187341146181689833404504852377259734821329097104469921124410367208399858502240903146029844987480378437016594909000530828591116263714896059729739642483910035255806349339387187198985917122040364153012377990123258215556671388181745647780158806370953255239710929856358875930714464543807444078885370334022737083475753118110381157732795699099254094819085851872521054927881709757223570493637707186844987212673957339611401167829857746443708639893590702793955102095518337420896958074522255849386469014425566704672265492233058610777366033622507737109095673550648532622768218851525436509954050413301873833562550809403407967925329638596918601485068915002123879944648633196221703557485923977463150468933274375011115658611705204438171692012654423239690374849117017261006872407354464371931413619065944005542279602239385295664419662888746825549020550286619420971139708636469233780042810770959403530322614785624783862304790643430247730320872483785978935837599300691610216347811944347158497409886728599388875727886620236325665438282392481367103983698112487088998988736437645471887321581585395447762191024930497466054603442138600644367549792834565599849385452004943819165727632926489690963752791558182777785890689223800091844202165469439811075542043754916616194354082020945006650319238666238563057143304979913936221385802781210141256783482860783075916076041346650913130152800028114746903258486515841388966482522884305539709875677818464485716197527848793204400628304913793042991919898639942361497751786136493446215951028981597007607944672560348502860310918089039628137215962922999893192975003540073110103025220290620323618413400373068919987922685744440378675085197962541616044978531108362820056679272898827188185306032465314472241485591097984006070837791856496274944208287336113924118576933567546521947458014257989811269598859241783961640093639376938211358308025773530038421606704513823232875570239319546288688249359631293309473295948190106898262372895417819483958231929295760812848879892932748811068556340633542322924857512297258126153231756478609685033678613996744661514419531307442316222582623623378791038830799020459737027972917863450943262991906079924034697005290509751931421024045164669219201443120953530267241908864808119988122829355890949155522082824204574773689228461346770846110128601601952739720265779100083641674190500214347636095056933978013657436449260313814053519243531626952008303154602511344723578558772435525379548614995187810689712607129682721961162989198368175555014174289406091659435467853312200747435093676211921665164549047141118480522168238606630437845340239113734297540963268582671364398150433891321588276359895247909087356952768508753341220320657647900273738821190420907010558185299482466568017851740647088862286333000611597713227105522790750044280162768794803432074235607667651130444706562081245288961975878501003240053689438487771415188255691751904187113238271386223463795098734423927217923622934593385405626330647221074266054840064204153131544862672929455349988290198557743223454273720837724230816469388464241655457137903330826718509980202214978790278676608500794881768943634351642442189343672333720761091298482719029648667256573022573139332785036633893335691916829147619229688171435907265408800510571795380867970680690504147292038408057794390432351637565779453498051194522479085855312790772975972401394065602590351359539548408669798812822217517707473415488725172751041962918466173537683438608912456771201857992604129609304458419993893639717246804048058427766375655418975800152185457562854253180916192733365730159442535776617597567077789261660805565623275320020603565001267862650546603107245000055986070956251774841798118800778192816823918555138958012641696475160248304537440610008125597124715102553573243135326700110060748846904212677179185385601593649398903669669317740439533289350222449111098240921806729022790779463159311004945060297156789954554218630242822102651544033809007408303304569153427560175944799676510988249777138555335278982516198638532094951887088724386759959475365124222020118074759970520446246454433803112946341282255095476716804771262084850807473137588776704311382647839709304722512128593232698153285949996084474582208996441358388728158284386299236359473187326984153500245969202385274243392439062368444441790058501203855339530728585829088938880323206756044591756235216113554835530588045646056987322142284573928001431833122858266418939222693605888183019200810076404828269955222348277327832992925675655789379122239998016270060335299731516361144221222058193440544950477732773380110586874687365764801909280067829611432981701738667454351825591147068434794504706547590201648524545714285958828649603240173696947990293229403263735108087338142816656954922533276613986740384126061825562597778985543063954472215730187613312487980214212967286552981141527199137521151763327743361067904736944069046665928795994107941055259312043574219930416576640542595185335730600531701684071047827973731823463385541949481449196429940476083670679761634121915494166419721583665413450702256728414019368919073057485404299066520381070827259000442962895201523067809869316752436316913961600848667873297036706199622579713338259861849066790452683184889860558143152938543404825487586888176082585010262375779714918069903277274892206430177259304852668953775718420358507367416189636694514868174971044463255731963091632256396248145543670790402373830185173003389606724436440786908398626355522390672556026730880862113314576319494303464685481318085846870584530969683338867134416475653043398778320369865989846659107847596682560995633682334541038596404603809388413841769935081634722195554254441973278772569707854269837125539905189294880069023518810694452095989425472258013346500925794315253366980587860618424120265337546693782337884458527812726724899537837534202167968008806978868741481238524512280651145595700224754383192260068615887256257297144946187134294978152882461886230544413462173575830519382238111654091463888510934776423942184411694982808214536134929489620144887565932080992580402641727083889130630783818836010280686975321904813319577377612467281261366238406660605756289113758439249951624506105918809687164129661985326422992966832638106333391362535895785245088653702150583117272271394308140307883744535055688497301143468437273190318623326220700996202460882632015351528061936832284124348868413810768813284692502907135943771865283689840900523110421540160984949588713018770807259770962909623594686472460905651007484398658701248148497110874755975903282533103008980314281531244597655184301472435960049634777799273204552357023477391497077954549876624663763555950498004176172348090729714297046223547582317459480213286622917591994417916872580060706521175128003607432185139543833003439212458412590409581300992206217161808611095872010715186073387206224081631088023485223764799761105360669846484913046398380891514254158057694408857145291191516623369498255125421786977382244426736368910812748851625612643205812539176701298532240911517021581853115133109379690512273875946536335509227508638625622908576540994476742690132681423456289422278592737225963460240402914611132384283023412424990622916932001056579274491113387461075159392939763903338008635930162895972699140526974614914805759025899164861344630421597899055589437465339036846265194495979186236104880265656075058531112639728652504200139468012081654482546989109574866940005793244556586354298879780150112406129776142499525833843000234590308154159016779362426078834156145232749097185431522081313000902633720435875507022986762902809893569063026462261240602023936671335132882720077315715660711570253917640127486338205509642928066180011303453286614023714226848379131413803191091680083488794064570249692143695074798433532236571777169114034514695990840926477996815923930369531744134692849351208497193926818231196523702215048506895243341680513740325463383293201520473950951523220308804281556445399660987043331292374048056759015392236187483537269912678470990108034995148592212224159100451725772956727201450843408834513420312495195635793505218385310086965689483588290741284055205360530399625803406582809979001709466027485905906036355723869700277249667602906684974052826603608757984881168654263225122843522809027760514161885558411632128974344352533589711996892496934715596561090386657440255714680396473302248236866404937758249459590805964318178860978660979081842353974603805255946786361494485634908878996413079616814995671084315774119516161481603379151182840286206242841073936996671972834652459157330596683194506286134290747135719699823944849781448643772948649649528320975167326495299468269094068901133824011620513082830262016121114039084799128500966728267984328026033470325907618613312638343681683927641408153050223087695170338485967720236394744839868709473909811239843252295067125003529696337509660331036832667162196319918301611849584882356689695867303497770983416625619222395907950827130215442181563325516915711940244798022968620885483416209454015387544575401744542832808156058042775960254748628998937042803858654833309282451830055897513452098795445433838837526706732048991804202527059520196557741922121548729907360597351215075077488312701886283734301137695259641360291214987314374789104793848861021685101817471112339469693901909196838173971542772875200246207262830002338262250926848293531251631674580740113133439362929598411961980150263085533496468458038926515364679023732272330574632891122461720251267795262742737337050902989711061786072811090003976231218605872750538615138674093870889493459405291911349424662462432064486427586167842490213518949198974584900568221146757004450886433305074220980218789390688618335662001205111207940644960316985573949174866742218845895972213646114791940312556616811222954006890083836527501738942318052020167838059010782838522689801367003836079802197185123727506048175968237325635429368877436551340076688619141976440254296843637046344292391572672477528526505474918776274688587206086011829750467509002709500505380066945837481492273509815787087041404243800383947618412766906754323970663282140632875826472228419896711268343410634045669191028101446451586057054059693832551282157047237942691468040347665744550832556469475203443203327314395344892605235019213060841559535195385098465282673192102985166674009457039076431027789721727763962441452290329743099816739588649192028238137853626597281391475529744132698221885861460582732991865748547969243106136271595932045526229551473444553633828201396531220121100655533163594161678014700797830272514408341810297901036944868866180899908535261651192834036953702773324776464368698267047677218059606735533720597601015593157273845643669738428158913698217503768193867459172124087832711082398738274328981399831154322784642042869614741220726616129297264888829839199407318973602372234195677619091827541447960617524214970893846581836021285561583142007574674908680203561825579485266887550258494059522103021793480992902139916430341992688505808663801713803927056481908561167750326947148997622702552539847241744960020115436498384770280544373839834523885563718161531016526531841738582498878425439512878537940151381838995298364942856730398184738213109244454529797412579655132385181990191786596880403726281756517097143579204091577340753462444528938392017775390750481731203851687281818314549186776174610870455822270849977067609610690332486464197942144109105002886603556492694670584735665014650545907076316224846579331889281110836566187932058115281031983196987440042562196769156500671906572542988689082250784114822888043240090164179603667356046793756662210155266752948595796883994690583924881655258630967740343717879051039729664467486093609262757360630749307723698918827342946630813769071655511368795184125517875981427440221772013136397125595011525930627458366915310801922735945899572723431682346020354893842911087064328927651767831852801619539851584713061034425749702897996579914612094429931347465278502322117628516665000465158904913800157462434083125448824611522014999007562154103997634243331643571050666279232723433978816560914602026058615185157358620257091991271592321665993535922075914569934543934537942574535772013444778759836928090078318924149206438603261818214378364690210891449366301851694019669411629686336120033546871215486405959462568944510595213082270219013665674073977623822459336062080446129162538372682678359525727718081519227278936016466991885202205726096499153843989733585805231117392806400307293602729471881997486315267577540465989427645210555354214191274841147275858772434472206645731766420403519083444637377722252853372104299046002049970067997617859882521192644758786524251046453473901838560740883234694572287202544492773497906808819972004966159420833935043897857097101335938763358575396627368175537174149024919609997494399438144819612924929959302862727782593454353556448522865538154937889252559982750637675725274801844457140554999625156436382061618134339109023228261494845527399724757215761373188774742270018223959542957659125206293187476241885268429566535722171943929511913530649936419251320722411972767813114071100418885635845518301388334580964285697828625724096156637967439076378493248162315282727933496807258067242791072659516414931396853431871424762244073090186206324449958523339689118554027876520812555196808281605292534939815026092190574251829921504183598585441795234393720464615659870079818784484676959343245100869881913725411238807544652368401892550052076904985946003996807771266988665135196197199696315236212574051234244045654092569188851631049355820731809653028278843380298880473285678955341943676685694950022532936472779777768638192633070759912768071382622740190778537747175233429836195145365944659673758222950439491161436040124592825961905942380738029312552308048321804635337369415173004457462292417129889370828442013492314735156110617583740962862185325069348365282011374785730553668722165059946531594223159862441699594907575945149019025941961769620657405580387738418324170249383004640406345126885710702645655621867757115440969937083350985991568515332371778592834531923132561359856521667130117390834318570368629330663670865750824071783791861634913586408185715956855839774832320581910841558271294864022034659506366709495130756594778810067521015262972163768391540906196776606093915002665228914066201611103405333580770180874828437550582863148061066735197174919353371759548894282738480569338806684348772019671884276437165493999289174974524750689040268426655496079933773819637808866776865284377096282422568641496674293556372080848791155481794288986659793140094039348679354745625279711175132203358103358339145511333649181032607285194592770902003217747308166084404548521644065247735550603646969286676369243898472042229421010179768348180009245298548560220472550846836178954686542674391426402739252671030616365728300133318372010141838840645674187540964952227976565188833211360212459171580977237252091145137519154209566630595041491802903861100162261048413366246044619639386742435443140791413423262569130513316447812509184846682644272719372217463825027778818872325624011737517297625937935467861658194702683172470844551754812642549257596569330669349658888976607267426515164470184271362069391499162114848796729121258488640885287774026872832028691798578888000386355778699215179237989467729593617418407107418957213928666246181881700562084159398199023706057669718348248612345438715412395188840601179460544521894066858594873827409194120325931303032779329386641896788707793497756513803942593990459871465648777981443018114571633893157060633789598826635396610636594805418150668382277890830004543542188552374969473683589780905658035630260311906191542066323715211578418716347330112247851163752658022022540478356627209996536920529509505452925472064294846281492545047162342183687050752204884331860376034327275813969898039907272862291013771722623671903732049256368255235330560143586258649198818607466856066400806455694039081425106546824269219020455060837234382997796147267511387266598395644865305275334161443519686129941179389925310940371290187385406685069783576042498434456085024274444842123630793089256505130856470091325195772472110648259323956056330714537061446620608324714109411363533195161158412062852512798373485644253511858606046998570978510358357725285109214317068310746531745012454900082570020965185101667438419549679305218877333954580312383576415151654173122806668337546824147251681590874286775381142383610623029298256466299343413708194683387351064700805151539231972928910656157649308788728804591271923345565011076198775733883924951286654291173172453553239499875789696922388655231077299510800604505481425035604386144613547249273345122986690597648794084805961356546336830604970689300951098482623695309877198945000263133657870675515490823958920331693505259193071116618879772877323075759438125564996847429723926988552076271274351771727165441759733585442070115026320608197972737258406426910023927142606909327332411703777154071852370402654180413781036796363081294727267021133364542204788324763328885733214018317708344522034017415891119584659982344134744383484119920338382961001823560526156554631608161402023648067200773266893905180288128275770105629597565154539756543511753992867337423898886574750223963508770671253699470828996539215268867475124985777549570810078894533687326649612940730639929155847096186631344119976902809922439046393828266499634595617886685226297780846549250551229719535111540543707437345302505895582715144887134460084118708058607503390200965134047550732379318192226233599734840614614127837985403954399862875942259912834546664483014914419498683747353952652753323020785996187355295188273688331110114668723450687421904607844615849420236301254013782329186899283204006738104318705632882583266401830484596043126208909524247205838541615547866928709342261953014146133745510107269640554001425520012746071680370260296401514002722343035066727740489460536152824851930715361823717501211506923914847967225433205770121833856852804031689520071416759589179850543837148899307698659770140545086148257426937360399082535555012996835514437946725337471752752457503239078561056227110540786376266120267161940989453268786892733719904793447569577670248767455446724530860782278003284831908092862732531538361874298990344741951894247074761694398028368689207150159582784753084236322068640563276262049618459680173358578470125763927350723389272487828596899749608578259603774908147323191517452105982308001618520512017262424906312244883362154631670016361985507608260808707515011878483984750573701305571881757407876509533938764397043501465351256037949000871635176538159618967331704707874011760772161133544572873129035399447210875213733216418042236424933655674660296817349999409216406636925567478954595123784270514273178938107859108713799679006464915351921240954978739351317705943867524916817056899571620846362183752774032711813970429388540467355596993221677295338691235482789125743839465723924130657828757194561378108252997561976414118717852474118048048336875441861908387282289320020229733378612114316993855426118405909421441384681105268530557993627331687602193224224950066479607960584669482198471112623690184127382476321651100359500274197240403731416449566959244082285197479688383323585365642562473226196317108838719410200834712257067623767112207404964286079189365909991954323684201952590653113856803318705597058640205637605870076322448842566631435877691707675223313369810321074191396835846217022170360140669884775960407207153836936466489067235606787119774873435483872254480089721858985877997238109294730040760636446821071305134205406099395823322635817336943330367478373036848391332105646834793255887244126502110096123624806934034681387760256963331521928768443431094902687676782403122092044349043363196406584029830577614727045159838291101234289706534346622800022793707226893034027175724211183831724989109060230099942047109742792338047110491093689459960775667254340813655220060192498636013668191143885054423867474284671018505231769844589354617270804561683245926474229161585185415892098182354741084447062449736396563358785657280921200852141087123127463712320338493849865191129943890997362900040308896747094714214254324966836655597178936269842566153860854403861902760824549755285965042371702598821569586638493505181814669214139523921101713646656649062803049982355230045604868762195410872351100576860841967260788364984461640493445262298619101234875651344127236206320379097291116805174414785875450247380033704794925139751512706488081386425996841133507306203385193432776166729093152729863244026019301830402272330845435313955622371123756110234007030102558830034153494262305894607789210075941050214981620251656561458583774410099356613048605945539176811935360577603138110270263667078977745404656678766748800406337436376241781011073628440447575417879260003851030073854724216264596542984101035613433073867880532835780020862990264878109615038579099519238281073647447043524299615661109204003477578113537913505548466609281742421853082811881145644746291529253360016255697647179566123705171841798229878358307246805445551503318772293278297435011754057536985103616285848343382911596365881337718132084095280794010103541735905533600537425079660661372152791400361120057588794226317811385305362061564801468074935610522603944143405824182328458921320138868727259425736031015115007381943345513579241708909852545694452703749456727488473669092383990150213288546844719196723004284256981436965106742985380774169661494774226352576950430376983073952119955223507024814412177010026135364227211510062203937693470836546133610119409991952352519372511602181996682215060203939540641096514096779463039559177991345952409603399926787703679052708279297182594979479369977196749903318122771863241137016858608044692235805784502585160271553336453566087021711987752839004776131164774540276088326788188437281027364005404901260395054257080977079002116895506240776198877480051373339153860905902466126674033015240302517527504610839631404454034209811473737324445418603936006537691961856783183247821943218357967873458223166867503095749651946230796628723998742724045943385295567439683011605342297232754502698315561741346522058738390623012417066627059684285097541791036051258229743384116264050056349501640695240261256025426112152951691153382988876373127190261622352060743236334771921642512749281073063986439014317340702246473025161812830619529415668132325473907189436994779157068885511078370353956674385294496452590947852831628609588974389489124267880775827192829429636073976250277451176650840373150677228973832340572513716067840906812867461678505788783849994324274746710180138497017236569190665639247736032737619408030646661949290909320977145894506797525399606482183588976394958846834576300853178497513814118458119126094957463800959907951750967041860641297223830103338380710701868706083208914814021048241238836184078648939922360735792570957603266973499539636530882346184146297319552412789194195591116570743845674394762185298856845920580267311417366213414429058236613104533939506483836836528016943546787984563028364588747975603960585196702768271781979563656897376911667834597759128562725812695622401378240292408000029877147314498943733603191325205627668034569956869409642204364338194166217944237284498052771621595082698079012210013809892827896375140441140278132362348365781316365460984661773106310775866114171146321090619669928896383093901638217453049075484978898219045634702438518801292477664189404817129490902911695103385462223608087307609531197596331517588934965829945487006147802541913294419702123302341089431411245330035343222864128981300110229779212969014640781054794328035863996065481347719656232450901732957855810896838388542969484943786503600024415010919382883165031029562519924240621739345863761585742331984788181267940255251893100411544956762434509285585028932784612026621125315348139627980517210834255966212265476647675889893612154464052147229086664792763915628733346896432092345223611364855905437370361669399356276081578693532465246225875852649055858699886637936587590301802161420186375580143417496797920315754950972799267938839429753486115816145618922084130806187871677328916842300535689812425606395619762209612088097398838591824750060491861975845645211771798456583177896450302176800730491885509984491942029866982970464468252335067948899708456889711197828421411570339143163205110837479631584629858559010395802239903585083889120310653654283365930996013757164849522873725608610054538939224808882412940649289588788730131057885607592707020523409797178621370547362606395680095638532968897067528071179940338128360618540671846177439990686410383252530961281897812306994462321169210171255441931535866365183175229234423405516061463011001426790378747721015408651146375937638706412308979522552630508119861403275032787560583402805763829706228540407787570829957964670616562884985796863349521032178024791694891900023373487545342937373855137566633184968419966369430460669490119732591666429865949634364267282227837122279194470609265308068454173321156032435566930109378196306135583395404087609525026647396418252731526650725902399394927525530467900327785780941467668224979188817534321706457881571348014991105555097753735058978601151617579867209259123576895602126801788563571486536597044682767699517076924081145405260118454651069681291748443144936632689769135903886677474049227472086633663620043569821678779989464276635519560501731298459465525557335735063099196307659038588121537948192713447891496107588466133073665502585537290078586439085192317231529091444841353033716364654217502044813036962573092003094551201821925888814162249765036610587321926647735914912169187630197033570865912662122643726572505809538096456079338025656634278702582816341630711892886658208680777135839044381233136292785201970059791609202668900814407701424848985674461808692761550591016046531136045544611486474786786531384540638729538108206771487497885801518567189178323053501043325714309734409374724705716565811162511722437414712653746835770618189572207182886936262527551682701726549536837161923716873210004885367898229973323788408657800134146347344586181441488697655827926412810478835552508920178943839378224031456713827664719123690035029261130040131312104881419193263708295605685352907958672115523465607649220639066257925171954772343154125693407284963922839384774754605283175688851839449055679018930102336551260846614362986346058386665983328560058020647421843071613671089720951420275697331156048882539713225062717173413751344706635244458676124085130163423517430018123533892900642471842024739789122797397112100431904101225720370228529354282893209948810849964187798376308180047988833301588094972128444851040318125132559838938097631578020180643947307890618844589283680877721886940426214002907240352048998816394763818120617891666751688712487416991667284176226358442004515361419902927876351804034866786242022202185401431300706579148089405838956316880597497705970902571196971881670397462654159177877851360931419330861719279195073549466692315031118931956305248851871202912009693634566632775800356565211540327466850010612262406564856507919437949791369621568895544598167865643214940332821373257670917904245916421465388200988956495236377648681136424500096419405756787376850497143474118703045589473701854492766133221147834350452998997783991386424893603456650966372085861432761128011444392715098926638325963412844534926521989225063467636369618681771190180178643376288029125186484170211451021017023058085721519718531876736060664370936181035235653902648132576913158781714426581377020982085260297583575699474682549322655113230442206025332570316652433512381455649832886372213388717270401103987274602925645682285869820230545488871735216954435181564666881950531740027015182706381068824129146402583965395981572773349665290326024054156700866150632713963414410448548653983661789857704269567682228147375418106745364650411328563793826898133519510047658129333837876841424882856824514505075195157467554678479187409670615672907084384427952005734723818054187858014124015355170817859360027860461831910919488860302026219565175158428402898099814762890536280338569293617204962111743540688327760161720738764654207263105001893783192936265010249069149822626429150745365499806204015245628553954334069606063084464105850005123314952277590690012014671589196861137861586958746835358881941232269674132728852755174020126566881751026024840284028390672449024707371961471004150940759101435083682104809056249190510198708658802019350869770064463608204791934868469171382986857161998546449512469702634376840424427750875666039850452472101967965364008500576245871347102398714219019023572246537733841807302683903691194372667167474535626104643692283040408463343036643406241242711350892262709170435791715049617450153977181584064232773763771387728601289568709676341048109030917330493117482832140791272745718660154347882355785129018459740510336081540092740182233561316195145858115822605231482982148653120969004267978395961670532028558475443045123966601619038280347179917805779563863203867551543186796687935591870940616260579652555881947229868937381039521987763627168326771822114567044147703647943890588126445951938125790122059356944069877249651313772793569074661306601838133455958049967711390021814540441093030590723547713758949045357220627055488175989791208281899605825628508272451340480540435664395188778107665528121466428376275664976062701658040458687091137152679349498112119290141704881554545589081892953224767987115613415212893112919983989927020511346445931182530148908217561965830472557102561594379943325264940402608437085803371678071821429871913654618397369508621774624353970800214822515807760322713347267815565077496719549228010470111974759391476555521810076240272480048106159908785091602875432654012520367883562231170081096934102059009922122382567457579457569104652943211547199317561278868574501275680080699356318343091355827839741498939902644328550305300554856283091062311840951050458686198255516447268778597488557409005902835454054738379964320186594362541856771378323445685241301308160033888394002032596362965228192278969875694114366645530103584563278065720531071845507172058540490683633120685098944634177963370218176778391267153793621693988222198197544991581007523757931556493913450599514680232240149024700207392890488642698664911300519123220254160433187760281039432864822076695426816182480442228419872423458159018523360980060407615945360773718683321038725901299556628169326809917709121589934196404433532071948119046896525141569839560930112334805408784170778092863129219885594693559240086957771339907054693843385048266848310169300014269642560585245654063073552922289720024122320271144290210871589861650874248033705831671132102359330373865514227003799285285021132381751282311786017012064018981626642222501983782865892693969166340326979014886123679386783825867404265396874942206031189656531697605166351669661546867574677657354027152127680822512320099157347462563966998078632269817614687199802377624659110238918993557960561596592962336979680407906524012172570452542172629210422844273596918467015602614009548762531326436311928962499150952140977727628894372456041723754595525650594539993331102851945242379874748987181428347529443669192513589425494059117417872811139699183722649333588200323150642113417379978411520807878361919678273956637266618900443474078914890497377333220544883912832310205143095689327765061658184424659312095899479419672966685929028402642777586311846363578785969829659392859027702183588800349927566536079243840883660743020634124990559606520525573555016912145556027197144249203685108739746972005033614728704886362981231771955125158673083739348944952652084147453608399286751405723715071651980128860043353248966344332219183596125050628889217809203589378149301098433125478988621344920330322840575258214939525788441018518004254522121395421343312614424475891053952977632663101306905757832510999152566283869509264078636661179874615757846834836916736623730469871961199253974726936758557459809228429276990271142662170860733315757049277342337683664539077806232193905822381989113310350990583041627391403155297907182060499203218069378906731143258720728858216107797790204973156504058280310598543077136763831026430187620864366531613042635231105374032462652157908509682883499861484187479713957142768301215831753931432282059331081810625468495712676499206099934110094676961918099205181671574106423269640766162338370715997876464131925000312301753569998556809953147361171161365687244906721078458090609585616057364483210987007774447686938713479929674924758830915420888770959605081233993881890270556164708944234755402467495019999182312784309777733733632390226531204539267968735968698536522084438368252086735724424404741093350629062711591472389554510890868672580363853651848106658598594817991923209988038658218632093493269056886644333229528339336273309228406792318176532508645313839889189961819408420699151296437568329543648838062213292045006154129793896688180086863772540485625480929322813683402356962389564006911268919261475496974008034734833810113699795531808140153158771864711199067507504597256894815400202849859086728281883878687878168048576412967026019625921409372053169190591840713436064568389816654113840551169103973953859031072907823852846550083628601108795013282470425990941674235339923028576768293285235713433811170532465260251693866206035993924525635096015787780236140113923948764982592474374268073664067045618843802040487429889729196207136625784454581749155889047362239602128151417420995639524142961040203176020305152308566390566542189340770154946060223945321672202587891679841532554364390489580225323599695461723443886895677620153573000186375089806940969196759087720983285920946187606748223803302575394401182907396451372886577873432792977964658653101606860304432269917393587507481429065587147134746340153769264677423016234707919650614654805390858222601940765397636188177337849349991011336677496970836552873913524439630571226048490770772408249791133982757020593408144965012565658115178097125483072053398149205136992061219068874345427965088968346773126272896101579209405529395267953984472738102642653899783862834682422715981292564121050317881946157295657582483104296167814657329524107002905139994168075269282391358394527029362387138554454278942985223028443479043490225532042243423237585174868983884526617325355323759891292268457565142956203185425112184872822224918141274298003654421151177714897003781891702101977875377918712426580268434006829096857437048085048805010153326762807912428819285420670061000737697791860944530792285777420233106414609038201473914652069448970784621326372445512238001640452600946375213077312900972474632729511218712346491247145196291014480922949447962578309387818457638465017453149688378547942561801401538226361632198075687290778258501718424433988260880801647813024501032635033661240994772764605610184373344486339118691608518142801086709213217237955977294294714767751201023001752887668439353729121176593288457179741208179337617156132334716726653948251802978490525147785487269764611635945708640310841505098980753286500506250777153956627725915866279226310103704758484061781037132901018813251512023383957646807048985225247086844654636248736826297209321287477537805585483093697372821739987702045738580037822505378234082935683805681129585374772794407310502800188156741731365193796255644269157379987079946552647811851748364160926216146369427752320536610163711057619517068118835209658353228538644442842957811973942624582832471487021081618576611511063504894529493670878166618735733337856630095757289297591094072458654861623576804775781059505533756685504068475100582695842582224761174922652830754107828140341621568186835358011331132828147298503622869881108463219811301248110394371815904840328196954185102953335918467024676304287611346888184547784439273654669076268294489225244202832126136036781009678262916690729408760084264991324277300274136038053393880634225831231165947687215835067890769593007651083043079033294814694228503167359531369462313448858682106486423635568238248200111507983166537678710370541760979407281164047424182966912978638469026559917225519303603575573945939542347126058834591856614747655469976644493525726460163945372893771890315776079395501256310727980517067707848597186576285217724953205259166998402314011459828878034810681681411735591503728275905763170672230961072583192602785033394214836361269636232406493954849293300746654860989851430402465949150881408450546626370767604278450423413023844099639529433521212984564253604041738158605805281099781917393572758700675404313253895294133421861077927037390257567086281572358258305924191407228823949710602207046808567927538539039064707065448649510125954598361110812156720498183190352881338386241107971507937143374009679967413706796832402869365185108843339013088908997814546228132679263987759741222317430660304726780717300250164484253144278955653965369980631982381789803999028643865763237297915163774768717479305162093960816589080136821539422438776572308793904158745237625740757062163085703740088374526071292454163224112795458656541022801141210847747322735172526649280986194428213422763261136942921399882322732340893738217722953328871827554744562584568229371934220652359858151128837110409300009613795136258802675626677075211303883251996493332592513884600740311745754138634860716448323953028441111870363755653306253365083411975682242842242128756002802573092227037910110994216090650686518090446719177561162366310369979178347296681050740123240629523459978701132811185398599553665826653366790811648073089466360945482392431863285141252529304693728042619963097925563483870057068173680537184259935710198152078444285391385908705048396549956339827148187032954871323363636317123778838845433118286357434671763701962619193997773607627160779406205817193626407220120200336514155419630000129550843711140908786560050826898917048135888019111328633795709454580714523608538422731600898668779788559509488494885276504460563882499513690034887489454577125241716389220945014378028562161429833064475730313549928091624636623054446310682569210627562707676995822942893378583112576198705700634257309807904546423062286739025813233234619557233163363437326902033194192958799045999032007239457608391793038470001749376148082337426449363392251766079970110054910237075236561993932116541465286707589952037911953681475511441715276788071192540748122379423659156441931028531422090751104251601601151543920673012123249245911684403386604847417443338198787458557254978323853454939076454270751734688721245234452777863149442101384698382969702658757346910361032121246130986538632428221417386987833935435487516862308355277777915550904369233783032279266846881240080368777176507348741693534303238277818959162068117036674648296131921353307093271878448208335071363262964465391510160184013514935100879505066821414353761281218789266114507982317193215283651418359251087183972081152210729631387323337576947864344218916170469722804579386551682345570464942998488475016831548583282052110895727995866270386824296149382255652409331511731392875043751196922225290514999712717896275986382792709649835216521855736686812524569741991637390597171269401143393908197564379158282581665724576608263133865261104987756480013419014566029028802948564906796075759286596601725843005545979549504693497384075427444471352315521355771692670876856739157650406159519161364972761946242767258279409753447282535171652205824842773524344526652113399307333967317646880607159257024621702262113924331962655405290861375549152953953228435439177187711041336748392215818687173617754192915029046886548190823069688079415923731170548142198415002228203337295334748124880940331976783686666305168815346726001202938649538209624403172315735777730752934745910535393289663943491144024999922326810416436564654997500550384241800961399259936430298565081784494497624332529965854307633776841521538956251906374316117026175568349347607155289694352541021059110359497736817944684003271081040633966603170739379958755125491110389763872354207375357348893269334954548728399163596022249215761969614822650997566614776048002828387541916000998507182087170392627237028287713425032414243982371350495354520507134520248349971556572658220400577065515002575001966962297999035343492737451186557654038598961219044613026543248072767987382059089970150511723364356722476240623821200655431528225494888193954555579019887802336074482572566923073704452794364331168583532885457077526703248041492336125737922275965317393374645717076257102562827285907042473190197007707341357408881835940791008136220219664001279456752009884729446937953546396667463634706196450385578704685004624560495172817362278790764400908883067524302874781540407242189919035195789886374684933658452647692218012799875050072862126380665780615431145943880147114881327334082655838443696067053434434666521785930866669486281106831862164726078104163562206082020375025984486479083855446003544879343651970318672791841127634890461716698850966412152239684120677817674791887838893795175268745803090646842232687593121564175488320522590863112708098963658984161376493594680854354124627155673916105326079807414023952928490182405635134664967539685203164753243402563132910799567220763569363748151731604230572801278255855198932717489277926740507716418793591165371367146617211508732995277266744532992227254547531270505103957110292906974279471429272868629312096426478770448198763377032243489558060330535201803441006113658519361218387373992519763117105291683472991565748235751631399377069761892915698848796924965760420839267796906911330186717289592626304029939777176895296920489774729607690284532130178666954573704278382406293979101598861754419836543400393902339039460190418423675007630635041354817049319073258527038241470810386207097825007249336078793494752083405955312121705682962409184872796489089458313810513637866036298286920809796802952228998298110000019229970994322954593112836528860799880200938571130128352664938542066188639426341419998298268163053510078817591880250612044957152013601256145097092364056309098085289816396446155391964416881270204524785749430891298980887369074567816245414633483131365640242729258181332168535567191280300364378271825049861234771398597831520635104868899118789750378114404177275649879783005531477944501717326821670805544723288467428197472523219106561004507572486917982868940557110735743262750460158919567681366340183103132602755031574203833024310378551281053999054633526299209568798019095441329919914813313934778730882854355966347040948574494984889560224577384892977790776736374734212506301929766799917932630609572736473661938228426441416439964003444628091454503230411510029766976903394936358970233648825607674729353762181441944573157193369265748225188677339893123616016222644952028465254953984409149421832136812774806889295296318254587186207675223045906194529561585400550547490396815791505865417716102761012675449246898595718067110942912090358064854421361290804468555978152558321203833055998696857229723955527354099184211855236706756075008455147388906400747353313052403305327824445679338781062949159870972246836847794313829497902784793343240041384180936238928530828847067573854311402922548866364543226543809285366985678186536429272577498764587221770646928704636428981795154640695246217465157756449618956478871027203143763476203792087708570005742152241137857294719613069879645777099017691519340735981751721352636059811299813148877793678730360208657922972301411673172149071931401171857173296096674828226506370166931043546272573039492785310002491901949138749076826236919083738948664386436613389126987102196534353196986505268271099232039637945856615024053371071299810404552835561771001627114676623474703810710322794789810886107858377881873894137137861972388910904601798314827061781338721214509783658557443269358029605301112417080691961540445616189115433591313771103774618112016188540675414361505034877101377610535816092941784066557059189314457623442392262959533790855422364763408403834133772154069086435105837078899366480777889171324223198367252123389586631800204278595067791608578337899796052573385114900090942086302694376320682069506293640972949830209733994386089331462227051389846722082730345129635626774222858608436622763423393520142775036638028260227139875756729579438497760851616687212473195166810082596799803134915063264793031357932784266153970285578987953716508756599301977425225042030537835829585717966647384192613183145629663881067294722242248341983113500905968233129972658005227295466310618506070592492286291148089805622072902040639374910532881428733266375679974349174795603956359875509616226381898986137210225090200048779814057026065660480314603748451760591451830734731695158893756958371166936815562659694159455436129025491434931585253299921976988566936407525505416634474687673309071422439722262097591615145355402002400010902029608247164567513586717833666209356446596783829117067911414080714132588839575292320313477101157128907242850276793577454916629665049905231434115935821347965767965881346506829097286280972448944747034105565724627394290837935908876996979442624107239506992257649077065094569855674249247811369878910583935417534132108096379252664307920395800259518418065803446552412694956499453814840269038714056926254914718400864226716229287912235924893211272304304965368244044251954234103163287020556873561808928483406661960861429706819978289747495055094553187231474687018479183671461470024023131622288892886037384161269377770332441166614862206821763076719620275717865674704817978785679300893437018242088366216817396362177869932379704088630309100736823303185079430748792020391377203641061754940373257679249339579860183797635018815155807525907457463458245803665086056798966742390785801588414065196349213568538053917252537882007691132543134756033593322395161206856732455730186687190342235959115405290515904518918943802152024271705332792350847262252809987583000448324068192289526899865920076670899754433603308541148637826125395368677582958297429428848551444275595230217392545747480139244879200391151797064708636243968225175388371278771183922063729304907128356264714262137543594370085128137989870804588268528701812371091482693272692229879299385423527934264820771860981299524767047414698677857383147946194212611767699285320355247165355559305797678169061051397148584503131755326992251162104383918982318229577926806114084966812465228324738221668670894919853148075274718369272784080783723090200178594061936141554429324159708152630795093636321665987485730874006948967203299242980858474472121532219357139144219620100382462782586209426750676250289589486713586607915675424564002937601291026576491047522224155497924930261688855964854788184257466412268100265513994696396666121122031827323652317592013441971494201599536419696058602178713974390336069972376010178715778286416879231200594142918405671416033258287404188202681489883977481894565664751654727027090050770688334179265250994827363247077136991185073898442757721042743940216265650294852444038378759221128169771976755912356625854598797856137333603756606209662150062506405955625399264462509000278936498356614988035793783946283809292746706875431604028934184982057401174503552712990417921363665849713441373211538380043901683933694788739157517527239402952892802284216126980832129344001635965400307856522347535137935277015948537876732438188808854999696325344935888442521290152586137121235474543513247849906700889704087336136784227538735412271097396124860073237319578799548830406329603694719533591866799358465470286143165288516812326680410604892031629045218910069119919601151886418332815250191176057140172843789294414634319078868642089412553492650251835148818657513289757346086120546524458811583370353631182503587967578605171795019833249666307964005579956600826850229008416026815048244425836175423955582758774262508134349590327613158892961211915946350447817020354617908912493999686726246361146064346693100659381904939739834564373415773103156251554497229897556281452182243900255862522626717349066780797147232662808987412780447109493108396421973661373309713942387473058078781684152095910663068117972318557731824407065450489189714458674782591129311236161151613408158651931794063745755054887499248691000838656841738442800208406588804549727213576040271333059628050652094444372175484285879317235470067265667961010410501226603749647521062078642596492018264391850061052719065590482648992075275113957146020997555980130298497387671426709985829525211152368761681564055008614597645000091651993943601572528018647020234246207887323077402071625180312787769893356569749647697695754285422939705820918437189546575294878850374065386584120089346561927755220186252601426252205166992140537091865074547091377467971785053860507700449670677569316557850941932693399090532470337283761385058897908644232194259709856968106146296195054986512221927396883201568985319171692163664227336918475295645381751189444836872257639810742543933957014598325240430019988419965133765789409621845873883390205842035204835489675444293113571315375351654144807106041425144277844463998503125471253711280265205352910055729192778074889813807312137626733485423672856560680283831674646172827269242542974292159016315038054600472788911470968220804144770651429803925015079730271040848106748082605808142005972073021640046241819918213711797259895945669980148480444235005746181610489686892275163509098636786969164284044045982296026363120783728898931249747559848316173413722635889861683368882673549163588466200671280106246403467716760480438927843839137408646490413498813624068874764208249215354729344450407385400525073766470628629130758672150893874562902097828589833046645530367365621182982995041526924444600148218298668897109783379825565648096870949392902201901512835387019536515547840177955619888163484738846805309699784955011653934525198730314045855706905674987466026683606512845955516384531942917064240311136694064861034988098632339577654508130989316917228283314443753348436607336445105945354117408665279837127198190589664241961799492388318858366097549500400850403167782463669916859898857153656477350164493537279249273735769114090660881838889939643006294894475910775617952340772406595356284098409453070893650847242521235511220672730396680251987614175941040476207445371856719972833521875742069308430899036430999252498645131685919345306674677665557235512793097967787230919677982006837944151851124164772579795236333389901615157178571003364650032099354039329089563303224328385503679667211307464525578555099930830917068221327889715293000735549147624332361990147115348118947349505534934981985522574808610978449383930211000695938610235271389860516019243444930118583443867384234269869922118743369752366558279375160716925657091663688244563256621496269571995057038316537426794945630138428493188265027180660918540048261328254145104453889219560783298039081329261150965477965806976317903555547409201489001628826698552316225199780330513313735427954462841644690385389209585802288056649570660150493710735286683547131396354164773243924262167151134143135272677227122191740180779252446810640999118455421662009681225768965255022026893533907378962834986691740734055326858486238498954481576974147738059822485570898484892132646136587079888374269750163258983983265329266957148993509988919451416150656331210621220687750620753665973076099890279249407333739230427817524804412448374496027618192027746011601011976102992707264058254517333776162648922363867108632783130595484003218414125373512470153876054520106374727488875219478914701641721855282816620139744064246260878360626789259336075606023394728584639230245116662745960391090304733700854226241819721662115905896855476373216895516831160505203502461873245670683722368254965506261127113176632252919022409165813987391432076117079652954211820235454936590641127452080666250919589474889579250973180454100773636448332263881464843354958612125910261015575502192883811665794577866227440182024893149586076406374306208955257868947784776844559634156893051811129952094453047596546311162475355953661356423743163422894850425080760783811241206017450199098993752352635805589867640762980665053248287410589268065965166036433458735659476190717870810220998991474896111557200165624677236363937409228792237304572625418784350210464593462457188595443944647161920955540593957196938128246063246287649157259427548742556030720572605813903858591640566473107960647743910639034159858579871509604094891809907119997361880885837027958653524208329453578231185912313644785435371072557727269105592256468821755696968644028594472342516531539320475728477759099250541164311481815348510755327438457051140660251079146519149760509278820149267462687158095130260857496887175071532543356999779223647777414255820756181048008086955664361558472521994294631845047447899486752058760413024980832965086874999075237813798556733648064546201394574031451792395742246029904963790027382833272912075851282126317680282480118001167378078706831001404531986760090153240443092484768043770038101767340343038203048797856975037227298707885968438198311292335110076577790509652262152163902298632787278232257413208835485109947802922839700324816646580127134898502328382620668522421948036489097794414381684344022424482593971802859840882770122059514792339170203342976933203317186671127304470797858767431690416499287041535320553816815567195681882835501403578833680043290110328881363376057469602404283914399545731762316507448482458910064376734262632112165948657270609979670760025796025862574491969804797907690935772420693819580185867269115195247432120070596227052576741979640739370491986291421609412391449781402195608550636618976788810425603647134425383896708393087872609449036312844468953005050833187821019351042562904319465127990413543637331400599853329451485763254276024730109931191257048378826548476434496234508232377727696644135893581805953737332990797786651649870908791704144559461114790892878361390824017790059284406257177493630190623157171557416307410205437861206434365058445150898197198693555884298263679883469921922400614578972763484348663059215892795095085708779232398541707244642074271935878215183306102742466043725785618914306453711524217667947618953905984706402801048630441593417634228735839559071774238983893375188885350271322142726378460807566576225648639820215405261862961970820178026427637218124287713199183065945576639940972697216124357149499192259108974976692359598906685002764216164894057015530248899402708544071841199441070479034453173329606816599279393381806486902618165461373045166595271392725013451838637207710458349291273078094671091882204203543545497096808086188483975911443730053051962756282068359158553098572530616129124013574997069726633830206434755834006794348023401996807650533480728589828577993488090285539979457063104480806767090779131447444539059464732067334446604570107290696354713500085777615969989813272038765394606050318625803819730993826625286260060258533070703980998476534830629150864696889038017969869062101991461198296563812504181962430997296703227975756813271534473030652096518371853191080056447878666736004218644163124503279638154097891683630252975668697136687579558375475297984687603722002901250481726850212427938180740424325568915198151759916502479830367912068711921492357616517717433615516238685865299350725224210654186739108435443742323482124336769383637401368581364177242528471175758466660427575896697364717948860388686245261181171727788171145366798623776429426847916987135742622697522904960852584662682371464830504275557024639899908461721310683605468960826086427835124271501824091836459736154986266513021793316981958969251134954258307880813043743800894420890553516807387044924937368224133130839782722241826042654339845376729178980162742269883993084635013585563562175035395400304750843408139171076236200343276633474285645637896552657088526347783450578045016142260039220980553997036132245918087607475660275987327474633523974129712518579160242648507342820258234057337416714121202228404709183952664552282430148331267987332785121029837891050334546732208266409005993924801729088125298241034457373762376966093761615629169666486427180663339691834774767159636840189954489311456232588800755825750570511530704119489732717188437914302013487663987917096587069692448917802621168618375860577031492567925990949215280046892580129821516630157461545799808970614195463626495440604137766242913256867190016631944576138266055456727006877897103917574353079762143465491090555568131067537978727135412857264018526926559299760683194523430535169261122474133849910624131927152926096185135260495439714137595377406416134088763669094752574488518492669498682373851619019535989159943010809058894487902891639946599919825095978474909785767253795101910862046135505638088017707956022265690769343984546361219618021623060462801032809889986069003074504806489799395321973791410926301924978290507159323112864806395366897889259349574701256615116011348760991028448271274203710365950672011031904778152932891176911828133177954433428838545341224488730859929006559215358272778493913659043540137513548861599156532404492541540886478980961763238898183116432210003906469087022920167045133540057774919877608254113966274671515412864240996690749926071422424292456376671913617119766863446590944230928503792562071157489679147268456677297921811956621206616213476796431988396849669946896264106549123774960133325829858183104542249138404251400708645528450342835781719020451350179758599599456879637317139199573921993723884300330330243275274929893313262506004279590310080525661907981883590483771302934670817039325747907303692421127056671970546070223187889041049676749296605505440648164188926112630154528971180757385186479340160171826354315083424375286093728237829674083736096563680578321339244271761409657265685369412141976437151870779349783365334228026381798542278717649805880306507424770097640398257532818749987996122507946344344189512222703474038575307275856247547043116980087263335523685725743162664469961741768121076824283942764396952515409336179527063411239582894785629394687475277614567485309024530331913063003014661892610713344383682304671901124873471423502031671571888465549728784604040791123130241567737601534301633022849329072452188763952166150462110906534409740196282232084588396238803068265024081749698122924225274178098194420970757555178391253836899242437639263228651653889527731640114003088733399949865491622060690801889843523869420254452294085001394791478914547044741157565593932886286340087168429381345230149944259623170330238342281784583124927823092967364853750998359294181973226424055375664182958391539027504667115199616064120617974545205060503117343087404352105946388225926150642166897535652005749471392162750820175838477848344901612703593508768174253077583909644174935242538931072641613998763703701292004575765328339533397801113910816621164071848584364561855993395484984266579760295838982808761883678942721653655219097913254193828466693321532621569214871518530739900071606586941230645259944955314204855512444746123638655953770477103101868760373203627333075118601669092247605408953745243267093477756943325545931748262334973229116964472428145418512824628331095362749036113650946662112217514026731760347301404306429337114015077498004712886092232017426019923082038504132887443790061213466831540576886216251765952269396420493094472658419024367352005655824392578259396026955131437343447840748070331764667705064315315521242456101779618989664305729067930177372362769679375659535097533177721303972167838082949515373393361598012151752840338920278019568910965686989997639522685091875001401522195352212309337173170972024518248206504605181308612991636692804343794515900149186394593073703430057255442316409176175808738441912115759791103611009655500410107442450812382902008394386222270779428229254125983850397262325704874994393997167661038007498244659064327748334683957270767910411573049281598481241962003230218565137760465640589326465018365535847147446743898792314999028598550709501985064249986397396314926341188004892971356928043079713748494867919283993908657216442846200858971333883587474258365575221326038648929059609812033090173076313872427634720307601531346594586737670045763951886237182011193335328828751446456852174740363462433471135783350156465363331340616034733158395952725980821548805372990839227542783659527204194028408001094008550616360549845016614195570012160923837080156861921466832586595548707390617809183509779612197858807096306722406425255433911347732938266213885876124991540149338452226390448958751607658047473589404068916958104461168131676319649432902120245218736853690961420493767835594224653355701423245512313322047716183177936932276431967680876937371970052510875004951183073723420189576759221632398090577355062376907443445008327383086736658514816866813177195285235741728731243463378092326187249271787909244878442792473455514295516102745729522894189947511121382862563784502069680180427792827151889911454952150481400165611193841059885847295346171925795024596261519796949197222762187734064654033446743071297427326528166933286804091014893654217901661140432456171384655273494831397031581864410629780968926704592233782438019688893061452604219365506691481356740795871980593115754033116037112478032164308399874960942066980553058223620258098773763349464183348645326458202644531253339033160460716336516887148749874513873737508156185833788784014223642837494285839617608130326376750949178248063559572064216506673615880943924192409158273481588914915720184080856757514843378045904936861790112678240339116162867816039310611990225064886779419878719620717765792775864991207944723652205188549268721624950819787843173966264163099931863485741088980927678434877629378117182482832636044664345224076083699135888114397960953047430495573120716346566553363742713041107226133340224052848549083870941139195471574434141375629032687730871017643486741914148380750211483355581174272673285810814525875476671216999836260859159657002051114187874937090260007174133370541453057257009003961795622010707447032513519665749121624448178971605452503877362665841299778404463749707089044148100009480508080061952214844416305356312112107972332829122442262624716986457398990939071665582956534330848048714572839545090464630682597236895221396147891696660518152223087127268200382072930034059129212762400163067526189042335291414400597190250487972042239501904610270759805458984073449131875909832440167298184379994714783270966232214456904699086246892684887150835803688470537620881957833172345497204831441587113061172465555846660455132141475209694605847777096788524557104458480729140302716135253249010440073934471772347565070579515478484024699308371781937374857377078460559977000962833358818431135689039348085652839664649571016786962281441445139960845142169627096353566312115495835303681324980766194583015332521808694937997093305261431809955825875524149436787061767544443157237401555990171576190755000652961939948627799758257331834180374586404871524381993665255779127499899122152450777582746737093131400751546548715821174909518275175352278156869843582398027187786469523597819681523030026548286969866261250642645340929448380135530081469962443552080277621459045699006930443602065671050003924315790022108607434733618186149613801395329736700868085351505889808086569661457493016590376633440327324457519789539013718807390623684194910572733285584604741934572541267973405662521246224231104479803223057530881411067760854587203843613299508154438488728792318128276530136942113112297154699364255646121773724124841845403797860161040946542845816094041109005238503165997397578743919038735938341429223738506447242341960739362847644351969281279207279445287437873540627178447972547613143569076805932558110780618904923074063375726408353423731231164171098726435191975625172722991661760236688829008191857300623184259577843642183199826881784890920523407298613485100588056702347934448789590456906518785322715898361979860957590042646881944007338421594970482359915212433881037892554420784236331595671088291399257310598694222201059695038635050305167807736527606464714394775632643665925260031537861875881499078559843620038809831974935794394881697818249134674485156683308832548077516637127676122151221016461375025228315839509483374880379130718314204370662586081333937693640267373648721112048435753550520762150226184746649127272810009272584768891483380486092425494004029197384969588866108041808239288720076776753280041843566789683897398069645019560761613568940493785202381239486419608242581938708264549078697620842003133308248154901083189877350744265018206200572845618615514155004352943382727022947549910373835955854426202326443469689488510130428768990050812245342972414035720406145818271754540275192306604779536971046495357902522575315286853605176276098222457405287904421545862359104017178892013204091690613590870057012772051951287527997431827350192684474660340918640235003632977473116126521549984314448477121283651687252236144012532771258998246706843086217571207307330338021670949241537315326035087988189810499793382690651196264446126450357973128129814254291863273499480129066280297696659119954808337927568931701504632216699300642633053366632407904973291136812763000260191170909482564755701934652466060047493642386677292877316548492473267157901457942730286170550487029156549566456974741269654893414365676579497171222790943647531333465490305152738889955245014150226652913025993955288758444393868826831661171352933417671112537460352691050197615189760933796963339641117927555834385381030336445707597592896433985727967534071191408185832729114015545590753555511381492368035809153411295431574837770109309621641355934086341688827584947350606515664907633884780151135583916198813401840564003416126426125616321823325183818046394001079810186892330354251706022208893841061628334080825184315290838322190093810198511894668728275734858179684803437029998446520891738958586886127771622352184300862452636255996022442852939813615499101636608055478780434161870714166062441549636595891042412811402089522517975562757666126150756635572362255433985625208675018461588955118618834629027720851426248129255888389325784279774997524447633809390457001970916295841950586271816891120810441567675530324609377600237792698960585348047134532901401717535480368524576893629215397358699048113843107610327310255690593296187201748347440839456453594990998569915006199441486282319710625041899657980830744536459102402954691907696943149438229277949778613347540613416182913788015899810706904500549701634383607624722877618035845201912886256307301711772643696518811679812529486390105134659194241856660176746541176799214248448031480889771503143512746365168647328563890633209982271292541745287246552561190637181701791557978888083011471436628300788995091180721129748218679803667816694452433360780706499982391128826126705622821534523768032389942392461293746010022117625988757929584909377751243998895711289456209325265237030941546757181290082528788788252635536924431007664926890058792837005566781048293545994997193852503055300816840238472722678472337212095712923918874564325988304388654076950294481995790532597348243917593624499305049565639438251312690962585719204042998374533807702937934820707899746268781057543683974271416871020311615192025003350173644750953136540666034133921263313248821110959850865418297430194326985575533492827973481237205566594934155934567031351566860894450343137534286485816274825265339058673584149752897078349824112874762714183693396746146044419639777832439209291590335365301031680057594161037442600545505432147108567276386945528984344346672641287937525378854367226582448379823495189095818397399995954384035101452212853202347657448114484640963786376072957478172661470964050110249798878101206665685369207613100073367589267730728252148241140461212746595698321158133591731699654717352632961925840764311961615763772199803348689478766952552850794660705807110676961659204129267066170396798432975463979937092137614406613522077075007718316638715385150502319781338554661657325177417530099639708984819545389301031302806617037613567164714435969301302053666625983627261070957317296230418527053846671477995145731485964467630865248131755115362671509312213334397572319886933339798745367381613640483607576127570227408906110608965186631638654809491242011992081952698338938630576593227271003990489107509327042151326383175928174974186608590526118083970283304974945402189855027508202484445519387369370355408535886278893146429170361569442680104663901815493512159248376225382365671504662952845913582171223020725397820613880874023601011076129387427500322533898104081244663881702806687300766698629575651666149956885313568107660927849750950420833995277416198175503745227866741618121354294356673050301259182334949620524311464673142653475573913128255469654419491086002087120568881798332929987524302079123011009874558788899511537310560335107307271893302359451191646627592591787619784473231031238765554340035402417768891386743609448178376865084056025763389735027808957721932402087494986402509660386776792302747566212518666320696489016938658022537835028063471825944594563881288881284029459838063817233285722586815886135721520997415768641092465241360274453317797057999685380324456119810129657378097514331056593322846747873824351795312183072242103309611772006083071762690115579486802262158388370350714061458304784782286495760581371417493110220710757117055805016574278402625218908725899121391589939536813687605368970593915494928478086238245881283378895061124590486781136951642345701276035256926391076958914300465075862429227899610903741325266109907017756076883041706000519737714137129271642003542022500388551716714037527115553483928635199266927810957169298471009512441967208042670079139110747770264758024844616965612462104921606669763996647904171133715704962979837786187531447036163706046478504174932855697127321296287444755814034938840923773322674195506814224684661387270388529123477040744671151317430060395013868668617467815696690820661610354465051473430554306436060129860959193378489166951461279442939644218867235068316351795501542284071391735210726148634466277944844897810006038000237320989500164179705576662061599778144829458645034768057734454926901137808790365257023715306436547457667290788871307660758261426125816417141629599832778342174187307164533221414870410730107180060710321298897426847207589877798749194752286919709624250450177906104060824934470420390346449470220355974420755491789821720509340014185785576923530898236771319518708520728504527026895827379821119180907819555912288850339428153807601771726366157716831117109375027462749096282258908160102852518506182074855266056777439840196890107411309850756436588365444718673878551339102118162191521443748588016063605555552675003845170581775153698392585353159605320207021026664373746223177286686073413640172604635274221228324774038711787542503584560715312515005207374770633477740707833395661261919045615939185439319893254698728190367654260741161788349156482093161741703015653607404280363024801329740673351969702113987165760640660238134277689036520357128946932007852554430964184575952564312823881376097780871571409342612335016673714189910445932995383011551372162162028696453932018706192356337426930402853018006047023125005501207958387744923830830838753038037979321435741283039136597183494741178771761320485342081698841346367749444883106626376198882310958709658547025303428793010692436632538132405758995200157856523942971758553609508592652330806476245530029620878941592025842099664988011336784627819972380652546555769894689973630687764676333786413111921727357347908623086140732957415383316232910394956016456762594091404868911052943928253196683006277794760078897417635057223352246302374297336112093151001150009590346231899354707153297350771135884734647272332580872183570285699547032169660749485106396647829113783406943823213620888217230637479299580375227638336197702959734173158599467764978480625731786120904137687871937221230783667594205506253157239769897295066800875043434119115541202057016640195712963287872215867711776251660484601670556759033762135324855886870648208493054941971141696631880499531901678664431947926796065069810856525139670711895149017461329895850813697604902407889104978183276671082188234804340071365746149246786596244855072363184648921074290526432626302737131625358686099926916076686061657878144921559650893574083251266128514489143678566529270068599623389940349636023440024541192755206069059146560845222817670884090476998618298644541092626772118126000461511129480030711472540993477562212405758848750503280370937481965767676891391983531454229624892504270877728345123969315856700572885425852225530814274098637181274647530003561493095447973633218507822766294079231804810389485574353482286162054958869724950547735963503853012936987853328086101168206862762778368826284897947784541718344500792876647957181756504087490880545830884851018334180425624577480032047594484730254650831110387584467781816153736068938021256054038120804888454977399547501406622217133036769425941903706827038570937314240874325918998806141579322495158392689656426139273737522170470381441236741615840275119607240521365179035158565217844647583433081168569287528945939390019193825557790430292453537510392752419918732143752362802678644563498271241568835935345405840609917521329428256213200276682435039029358153894836003638735530762154519803320510564505172379081896878712128888757952384566208926219060936235190935580549685893848647972424472721223368364521963908046716674434423269507100835136619421435994282429545657242765662633041975030048098193251011970205766710021011226808969419125019699453362141039259953493976009131150074775330086409878870717858165522207223298716638397981492071727615081183074904231687606486888778101099503222154795537081049707442266896059897926031858837094436373887184739210779451199841077192666685296833506978794346112950197721724216179641459436655214162114469813297912175163536832782107345586876505915463081821519579487773763611873711391141656898569886976053095247201865332602941747235073316799960396653801607780659505629680330896753814784346178733014265379359509444525616529255237737032941438854422662748125033770381767267522181544787911502270687515091352965918272734051619885425055123038259707271616066771535522692649316654600208947819181277159114790060065951836790010162646895512248368744810288882911588512660589981563995708406804254069987681175023674278551814045244214803254556632877235839962363999208702303217298934246045104221192940793661919377999125927194004119396630910986843314038760556867264659787400058740525972596230800394150795032212411128206535028436503682079476302797784106465599358535938388269319144974340816637992629731713005694678979491014692027295840235653582871682146753461476032208591683915606894724487257639680244167324041621514644601514381819128872818602630599140838193723530627678231930023689157035477513019202742929700489619205688628967941373075735561636360522006010859064099030881041721443023493348892955027873186867127009178946190099940435352887048511499095212970950532615022354201423474218648516102070321231649304271051078228724680190388127370740602341063676321775651806209497637084694254164521596889552553331792933665030454619581825147926644217075074205505492904282459963223864695726870791939971170079444658989537953693620526987200317837085935806569220426653183623414419111919856885733796734132063941860401533843008283945963494568709166627472434370422143082815171720103874129829284114657138752149408930003279340403032989401116670745883403845642412173514434602544703823246585968016253834151006978891521083749253806792630794897658518286970764194048434137263231247136739118258361705780070842912346884247278543676223621957807789729566092281164921752327499708992156707896042917663522760050656696430544092222206072611642919708725525364384207151904667032130518731393120900932169033300277340331579025288084905282594445128708631151317131269757214002088768874221543679339285345803672132392427594890477781322404527459298258919081422443475893868421766892036322731846980431028991337321354969450012417274045655425138656472914025598018211956458494918197494370557242787984225672308003501089801271966359913487951317633010259745119708761349958480818736475106919560199780966564261357149723047204699315893431650204446469284211204632656316390721556834769813765658099656583849271341617482167358773467057995826683551878989514311087572095363523937966844466197427671402269805292896547343316483554650988579013324244322724007307284004086722874643216155712601665861810529479608285863981454719120040914576492782673383388477842151352122392080366883383396599002269635869777464370489929031525028911686803909155806613360883194026014094797689340584479169154278328258343043364631417727401122925618137824594242422414376756666153541765816830392574740232081013592523520552774852295412845052116062915243436424170303677599021074695302171391756823099193325354427411332503652140645969310882654788670008456943106516638707224181761691496996451115096527979655299720831610299113634849892729679273547740620462472610228746589279023333753079525312802572929217239256144709696910137039162266696370063898700830240519437141036790929006758392494639573927959979236102262438377616133695280448151217065947782869693115100190430362654123878487787920239918356369424229818478772437238309471126609489131836107475403771340560022533131535401236305353299476042862898147955041786784010459878272519755146749493326447257930953675214901436222393122112622205675261672631747069489752034233781765534028664135099666085895000303711964438715022292166943358918562519631997107855135476875299866376178699742580456186644693596097024431887358442121531323270160406476890500273229198553864514765878488113363876091324552509642396652391778501931566184445299959106995112767818664251702387294227662599989257587931499010506034892432427088336467099058172971162507200305413673414404407738460184501839489238093597589375758746280518892347746156970911518416934924073850607571934399520940966175928166664025136529578080785838916116493323876502718872649361912467024504639498492076718734254551236571720952701053373089581507203997383158317431653930373947408946111070322475250724497053125436828698800169045001172013674819815263419831882975975879744398402165873931929807414985225105029704994480435911836212664885029173133730915428741665865836630540692026195570264621735896413171164028463334921053477876347610231795043617211323944647349885145846372078193406568821987990374119598073706510997700512761297350975242568404433670512390458425953751093051624028359907975240189958124396967052355676735172727615772246888271969978008620493042340221258590923810712209695058944250514981634457912886398960098001355129032526337971575584154841768721251535674835627235731021413112875040374593077803475877300971062899893865278466858175571159422985852056177920205282997894586056393566840220242257421983759038371045036435907923462185277991420028876906415002825873308855119852389877413188497610069380972057932666849726757027044792342444778192664071845592025556991794961158070341575044010928134981021819539401846934243607083428087705262963308280705106899127448537692101468867480963432902011335443903635845543630098444719285587382786171543183465568749281086182931431881527351147846297295517111918232570284158118789007024341505023124677807378098789375571887052250696867074138834081878124226668795444914224623166557871579889150554090771228212352960562844569504622544703744827334337306404397246408134722211038795556766802241352569934073132719925316829469766830095114407631677776894275653276802278462990882714111647724099934600456806968274971237238758444201868384691068463401457247405617838399909348113182941077451420247944622892115750931513676508064864125275546659415801856742691846919009463201794737161764826550893917935364188123382406156480369515260478387414042676268248066198433071968969244016625585413293684477606917210312390266245851221050597086481973058976564231812388758954232102092460186057360869036750127195079820946423244272172138430423767067667836640117620644537080742803523383646982841928551185077092487162287954947117486132361620144297969182131292667124751925562383756559337873942619550236824966662449466083747126886084712691714425147413051697683367157015181875910783094298172429330739406939375096671146235339365713215997163660971581656837449331564147980132055831441722038660964953540836060618909375255389412291737049400325862508971300085404239722382537427882227247118264292821434273613768091270201106152627527259669824884030894872386915438089219849232737742713065287369797300600132041425627944662399338855086928735254647482303424579159791437006176497465487005448910993943905687283911209697190760491758438822828082251280203156333370781283489573880679131349840196624284211385535775575467530928251256308003006926718600237248490288918204367598047818095731312362989047109844081396359199521272929606414026724441266202192318629159414933887571342785415121745113728501155834841522049898452224034385182101743596706630173423943309479393906139146262880107863906562369509565041560840259266613991811692595909943385661053209063237625564671486183081815901578799703125739148070044171457746366519435885323649453052369809011699896297728653960907426330193775066487681750578999980938889449204467198665053358479209567783625317525048545372277115150498509184264617618392917773985244564540059462022186135476137441211454710506384959091774253107280928468601727463553660888462693819769402447949369466890049933234670059480500286995795043149542684679407110534080072497887259994528088400149887831741911757631808603585427443291137833530309866976132843531723491457361588637694196875948394724054582630671339182333245463328038672866898632631673323028261112027194199487890482703598445705213501077714944244269246640596366280269924467673726428020986033397552809152891691952859170653518950296435969974023131987134011363313964626425602243960297742818167291973093618225281002973888509217244502459436905581158081172895077627261713172550891920280894870984677142530977173037124642736685595943304305875301085727411863384812146212631455944858985765358428546541297761834116088168627936972367407395839267525544105243337585340854152768480114265768593089640389094255589887072147991211233425632522530737528054128194867230209379081215306610017931594538472849782952935540444365637478594056353867943220940927090811043866610731253494749528927038877078123357142251840737834741424130047826971797506248245942698989817056582663541283065042704052481849905729039231575870254666542149320695083233898933845289108571123855255625852117485459418380310239920194395201676755519106295921874562185611885344015043668321904458623557259066568379780721586227698649895907512353846676810018725431419571107463578141348281424851742458663063589649207339041890671587484748221947346969450784729356411134392886389147147019581425349946340094853113219477210485437273429157686850934274919274081211255653796029835929054286323733662045102893007889845088075466074579750079914274567070562526377877730545829891306366097458910499939015970890857493043494154314186387935647024139054618558223522959559853524477046121060999688841278979171633057272536888575240935914126245234370945124970588943046186266420607628885659000627876105924101095527061069504211690286973271033946968939300343470213850773440738562804218534077863850870568630928916966185142998575202286762538890034826952431790190589612460379449421956896046709438577607756923565077276303172887341783277379725145846541419873834916693039158096105507478124345382530141222095379709238779188646834114870499549475650222360628572237702819075682922081739767881544747944269381753737640201992647484926109908901281899826508432922843641668329729000863617536724301677253364383273094625270676602326823208300685420399718213347628668888928472986220679754601653794600916752539732841421830826968902242339829180634100664573031769515846267436693922263093310133476185379913010682352023589491620589120677341052374429623138156266051383929441310284047669016891108760124414756943569138349659880435225974938015161106236633972927692728700574484661937358416435400025080099609763436499591118543994381150149408045268913573452889735269075675497392613998731059596714933976944847100732072452981738066680550541084090462666134082013648669457350708997096652503798130445658715574590499606012135044774644681314007152908301555070294844901620630884239753750601333767454894812036142068302776280382968651685552519431759021251244053014050502944037888210228958562491316497029135197284285195275118311796234183686487665729883946506654522088716703100848502296154737923216003506937634417634117879351550394143800895636401256875690678876496685841047432269481306791729438770800702531233575907547021350567778899112310934938887912827864672076554467914646155481122400114846669967139338235796321255235730485260594615406994952099304352190036591967999316620442266931408935465510250109254395753534453607522851859641958064960989832551986346173948782881411906716146911592591245478132537071000188846263095498774071111453920701565215139710860852540998295501837510892277520835182687750629597015123025145372012151172081258258848814129190899365860218597597680847925400719692531054099489322442874220602266993367205360521616328407019728290072557670741201155037176070477321148633259825792736567395126614383974380556353060054714167014940016188658694904887197531653331235040084442179112756117399326342642551459514916736899242569386568324400421704688635142757747379010790357992736096003071929799894772904476333016446030886387492191545736455478133804643535055065355144969534638715848139490190202914424238426302705139461729777046092346470923073839120826626417379264105790673304483029679148568648449172214661663162389411982681986748626598027197347709074203857420076240234109190007967474079415688133006963602635557685935190038618259061321187116215283357975384852663867490956611228718100226798329336788514259022704629614309959704569385213524821738341570289665741945150472955400019115385638986430818325919951645825917546617670984669309768047682817929120307267216667550440820797861797770046983242065902248951209017167084881774141982399052770132043389322990241392096990125597905116758941653596856746197803911335943303095234924127210466135728063469891316729591547173357248960948926124401004941007570106545629359688551140803996508851955812787151460519838531469491821628152991869298556430107084364201784862551504366998004919289355959881493858837153787336255574481590361461270505148765991987777926712418686472678989321485456258035470998228672304075626725288544013471041176512784109561378055442262735354118796669579072235504640156564814868459957435914162149172492008528192900439875258664452735087796744979390967457353137156676653150124279980453220593439975510510407469996679490539167223089158792971295713225993837299145998001409076111850755375289666341416851731704212498766188173132467629457315039977152388374201660681342422869822710672819824515717458140201182808364769284393526425137465951150928772747022803119273828090652670652603034926615584793384557063460160869428472672206800327063509607180274529464840182113779402903013922098715466889076911399553906284780045453680678141137903562736688364681144359321577014256340204136021925751293703148351342124484483621778776225483141322570362195420297161721844817689431823575572575652147838222654434267931314441727849893595424082026446587087412816787724797126115816260789379638846076346437996806922816714993875122953074460461365330465297622140933762426450808502046587582911170755221720434037580199063725388235936095624084933551530162953503433291101608884657557867376390097371891168402671162802955927338615048248262134649663296450162490834582552441065368435976713541695211568233277410057207100733235361647250577067639112842501484968474993752365089639809765754953492994642454410372623272000783266026674146098386202908859635792548823736798741748791557507357225598149351000569567528669942470152329433895262834994804285179281909424561391371706877467083752629811112601521101519593817946251129832633424601842605838582280513453727240076076997397042182118810918547055705135715993163938805500464106015823446866468915943696012103373256906696892863665666638925928807065301983085986381430103537740077804141139852251151382332539932630630772612757944147914554513439281473299774050282296139416085109660975785385166135832225387937708002983229761955052267763885158589069485043340921210098509766630296428035125652515879563989511938471451692314123083271282208965591018705549379814981066424496464896268651214468519767110162479203017957667203813379371252902201399980710545021667833390957060315547552171792731555567529001561282907582919268277339281870353423770394333457900457977546324430337912470121864019663779275911600883910801335703772122899685788518536394788672634913198445410491474999938121048970318261222416482311748018178700702443254407720952198298018375881158680473535408526187066306500571580383857406929390114265583175557147310174481701863076372068154375832517623905424712273862733120884865811836550460140943896198038758624987811149206462509255936259441230580845890819390340215130853249187319089779161578198181822860738291662602454172208305278703788305099809761935942764109340899371733390432613493354857487910344126763452751060338268493384962209114934282296347579196917020022468333825112252078602355862121635149316515279757082285481890205120601150935610958531897165814316551468018379635981834922866508850702768644158761114589423867109332972174402082718500437452465713359838757682593214144123264933923369582515084243709001899501622830253750698260070742217120920042424602952502553141646780381038971895691165209530947900777314380893727967700556337913968463054447523409119847212232481298786187902628509945044787267243467841956828320560001541182070398665321534211290741354536767982974892470517454840542879614929758146533753296639177119238589547490590685609093151752574155772202439234822194798031421986982275602767459178847283467052481551506438501282212027480852442046670536682215763864584551652244520914560657175267533932871833273128405730837983566924334182974960437940994653328767045298113586447444575499408563386945893273771978986129568235387859160000979196053494547688190897321626492273116989084694007076794331171341398478731207943050941971235511873292534034314319941340878425998225749302730630567460809629294651153006392604705315984286411291277093195894346441639493591483641304202315945611043328927685044933301960932266328745931267243721190495158973154807663004292287665696511664128031021778889059083719693807882916847389781779268278498191776155553429482973004541753344563455216488341486117495311499855522803946763653612979917255066479279315086630880891589148993821042923987602822578601499398291809635163410679418274839704146648990938484755322663349538947305266253882873360641059399688112405213239844575601208149822665555671259326354119355908471069670483949956662065810710407178518557825766346133707641345138480837219550614430141105115257550584029403415265759359399169637704042833802756482204043527626137625034140530473603771204891042840927411121408714332375027575646112582111768221515409629919899747297393381053769781926549521407427478074504654543465959198952605188599662530316719009517178908193340368397354606059257127839663071888399305540535581516431783288110483413950903686654927555882698414431963905460021886654850371498408233193108907505532221782070817780406782687979550923073010930751847973697101269617470224341717480433545899539190575908621972155641954218278414217291193341233313288497030888257859255274901293735598664476349777466970019238136388907620943249404700941768978049971511633992465141872025017799916114088952631105933335635349251137953457044683549464173638842103920451580323047441446999799352217375468592772522664328590753984134665731688131866221415879797269803815078191246536512111929781481225315965989714368726856134223039832615544228786362886262968284124215841816597861540711884348365936888255781517885472279614426071593654536195269102189847222316967472052700297181096312602377197949015768433800750360687773173450206188196699178281697525952059217902284925112684165986121496741281921553039567329517373406871400946181371420465654171876902970946976426688666250301579560881931205848265757696959687318467576797840772799562205216039243460736650139206100944021815719648198607204854537460365125738372090760100806559369234311431737750472385310034060738308674545474902368494108826815045608004836182183355007183277127414725430054771873447351832156090543732041507800899488591933714173114733397308809216947864173001961104870698655181871387308950271011333580369159161881070234350772873640824655404452979380123546165022444872163130645601433902709373751970759843958877370929410409603321662468887829595516557924130524178487898385076574931869678749843787172258418776404251516203084945189003003859726577950620806600875500787404809857790657362178290266428394156384529267359042325778883761591428001233938760961471229474395669719479461990004257653230411938122420350981673762509737681405893344405150297611851862999262317913512386839273428497678643118889504657845620384166127749836065609040632959645435156306332529953510498162121481575262069995258655426580048556255747657773115503809642404156052761978311667958722553519748784764607817219370774076668066303124294133427794519486596923534276304328732947077640572256237433680544434005626319061790586509979206154305972478142134269363365092019145375295978018877339199769807127097107543974577598479222894891776550886639137424330349456171894043728124984437389392967419215831968960677276234593690532423862194489054998266541732240705827987983860119680973423832674511338181872342166575858288873488675018353579365447747242917475952626865199633593527218528643261332956981584670436133687449479194006981642876839006681617145353654896875306716520851032961528848833222076501431428528530247289783416581074323889455057079482799417802955265513385588061646586818164665479796673779862593357482947522580552743669806536549515277094505738224491499163494545983133488604597377704417383764242619428116899648556756383295856570204840382844517199103139401046736619636209145682559508303179911091101907430783192222254348132930451925995373129422445431885863675190417588943077244689814337777323180611653145347815898712997773003977294648153188187608943046067762172839582259517542668425128566502185546738529464346463795891134539260135901354493054902864871589039328757475243373401895912014951416711649245652764081502604946422324189768651159704861417655162182690615271756485889564974535962556394198310237280741815201262761275225727712103691107947926275169196699468680598447224546035862166598895110023010126794239985690921397968456516358814508009099199580320119541620125723914774655512101006837753754061869317326126417834324867272847291788682756009355404004196620658978603488109028806698686806564470118784120079442730178068293372706318601996748000111760728184788842452629225275608589824597964281122443395653804593927730709890747785265843046537600995216347755828260345260591303052175729758043443231593963496056820276370267863857104891264421351821450771358771202870447577877215179378593124175178990383236283140796624386305367945443682670105607202170679058404633878724111938141753189383531477555645225618571499559186494502286138032209398411103858776325041602236530747070188889735686111656244275149700469819716313949611561148067335002636268033263345681572784764053897861355628886833320460312844727243527808248678448859016276468697900288672181615319762293586245336325296180794904739113403896051554315522246498073466880245322301846570217232101098039074786157218063826699754019836625128478116423228927165514572237218770069819494336850005392620121032548737849834816692328738828636258908234922888198131072100326082983611937362856056183446184723174344920122996124772277638352148228290477149819227995539824866130846348533024535468631334441996414513556224939864277716873930804195862838320327004035095460733371098197531211996471949191086441242912496829920305283045886957135392503471445515994790121767722557960371092080426406300967580098966141381006292616565766815346171964834785598178960234020822372510747709920820229832612953846332653610773632773641680756287257418393447532267527770133683410003199388985753289140815900646140901729724931497852846858422486480553599116178822154159148257642002241325545093411445469262670052305080960835368300472739949808983875656276469671049658941951243917403792123530641084094932884624668669719227351721752718705585921655547639270649587651747730407072809437368650840246309089318554157064970530393606586854498035306660368595230043356428629358212863125891425599200453121446896967840010127705575437434187648182906056365181449228196302679131200429828599209634714900977166901042182896797532497238033235184765214055315611807634527859884957461606790831301030024226998522047577874924997320285985328302160336398113331492525433886606045312995305490351730718297442865270092415711618371442991871214462554114218894635278422415584942922239243774248312396867282326946861686345158381372622446065810137685475889758139207223512391088209280657106962561070628525012051344886959510111968104658765981407843088475889167814656977132047272541433708754082711287169899806550610333950673901025852754751448383438569020285934240666996140161127431316471554421681728862851328642550515148675353938865379371855112760392659100982639613017165974521147098325835724031523065580525136054936970389099883098472152349785734440202056948913405687189128090856040399722928210289580128324122668155888596119448704305597625143593639271160623507846621808659176401047790313983638072912660256586631422843575889588842147323692000683618209320513233410934287140418336101225318734859757168935230302227909325151472233974902871924039175522914879366511507696253809832411725237017691216322674575969009859416264571107820609166959685529416586241664139363957195129045985198314901538601782472588090339794124366214085209321283979522543820887593731593468496675584365450127096183381014342630324451178239071614824824665165086361497968312611524960307604285036591989207323062251750521573800081454976625180415392577985247488476710219673823232423673907172918597856989493349594981803178335324136472300225650130888150391498951608681704224549721940500104355256387727668783939541968452123338380264788715142364617764986990044808579619069084245143113048211318536000709158427695468288234016999998872658286357419421116914916263896586753024694624337073864010720595795551527813259959673594890031278368511209645726700388722767421712378751491081972733319805702388860320720689427691198954958830702587717317127152641365278814748740876600036604840680249337486039567453105833020464163411314938618693294573801143374526587896463422733558186324548014397054227518951449168434310971217300834333028089958184036070962342007359759262574059971236334643682607274996644302750765687890269701692930324871428676962161226392249376667202700253722552905069580565696900502775982417962397281991549673601741847753408778058626467471929007228722649750374316086663781560548987544020342390671809334013918277077107095762725604789149434178458753182619153424184132965506213139030612693064366982315873326556601009210799683405939758647522459505454936895423067215246188818041378292183809218073890557023023779201996558403148614080251102709098657552079955649698968090717118532144416710658544804581506981857167787834380738517125090828783427940625910667327842736854970657745318634796170322537878367880673650400651291839772345064111599555390340679733507991758749263957274964612684194702876999970720072406185271644358261951979067959765455086605932087249397165651253098276970189307176816167897157769293044347018288866920008078764584909994811634041582997837926615430666222516200878612660534976305460397503450076848669592211772199143618244863137230080638495001270746841627573342169740836090230857687118806131233440641544711093093450781441347494716063943578654131381608203898491919688778868044418232151408373664960594559305374337309588319753554180977995591559897911648309967812240830713029888643809272751045766708204400488601824614181898453246668943140414827145555235078082970302887738326874344157310495066961108769267062312369316724817583005195525557073011127797937863344553185115557926618219131672261123740554866114003428140695922360079762558079994396680385519498954407576770335068438583689900182335321014990962083902012603297858502310835757892243105483559953735828422556433563499076748945104829690888544081627183941982641501319466367875857037229907528306520135268078119857072776741892043391165133956020222806982607945965788562158204041079215432579814137703659605476877309900674788102723112077516854832276966388040887846305338052464897551412708808968613018840546470283970538972351923769742734504130030745806630428538601442177283899477090300142253928296839384860003875442533872498254085415751664848787570517653018428076652872613441423948481385342138389862792345570814890509951431236443050948035980877269688164975331999440408466983294993299108872688079233706294300247742689104901654547025227382525245862617054891553581431593601431182833794034088301718959397131674132128601233458832178935124309978737091524915569841487613861500546987145167329395902081154751707167891176552072605039764707752992892667190496598781861518923673801817323438937428331623597480386590012333181863089496065127924196439319296986305076939665565061984368360564947563694251567941351602831567790893693203047622313470466102327777618097117469156380303610430271780315877396322824485147718201799935589121474093770560487887757100225219162496294975652423182987360538250108179518388956838680149640094254751932522498545784677805138552922749133080618370091161542938791397429517993417602202347504789586799918561877355287085300321565565234472722375426248700374587076356566957630732667467762826693049314003668798187652596710927858258302851849855053090992069053851824663738311357739389578267211793962862304021189170755438954035642687132257047244328590060391972454823812098591459253393845082478435693986867042182863954006275601229418304168580447463540828313003405040746292991977317523005929237556594980365296827467388529344315758385018731422548091651807532481920588058712810411237121534740206515735457195914206390398689478530299384931137279589283157382014288105433456648326584381694533889555177489326358825228434303289935683689667346543105697466506879449629991640158264066124510767286486773496519113485106822833075275613248569562440104725831189502788048570100634281867473366889881266957487594278483925755514270726063045086822637478043367489975314643668095050556903286831603701085769870748799680280922857905881872250167213838188406739009675923964138814952550236764324040005248908217320153167991970137395655264338455129593537700665835381426649492657978519426540356971431947496493602608911554113914594227670005681860566514213658369757552453756426359397855735171557308584101365635637927957392251598378847409457589471082133760643157755064262165589037728086676864353788329739331142913269414588183853117015495636845142883491430894756898004983906059301295126267239747465942457655222308375813579062120610772231330725992761210433763567473261356220521670216020514610003879912727173769928190686267802265440560735758670925669693607355656992417705189833398117536066103861386792942681991477338502324754051231289398000547147750566450924366724316077989176065734645494541244756352095880900960190927946236775582865487219255931355168460751092142700193888534252112967459597231672384320496475945372174372101880178788419060340780750662446579630364988270562103789843694904402445770962444300589125274087902325998783174347805844458541657140157288344812470506120220255339446657193194984150697323435990975489604444191046638212848838103155509032614835024028145005477477262842635002861650554697778857677829779058333757922907756635147822514116597973870531879728497392908879508785688558394284585115725059906454959298663812417385259680166496904511330135661282363568545134050525611169241572741815628762146608395444810290481942528349412305307815308070500727822596925326392116220505911205639874041678807221190238750819758351683921569242899703373858482402234525680110671614593629821993142523289320187671553890129655093325165013721700359996139977951323563763653447691378478067342578087442591254429723880983235232819767378495223481029738577505767750993184640986534637676572782957963276964663031432793735609861271541498963822639752597367709010778407662200542093719721959292751289622529004635940472299912459257906495478015290308785032685298110833047594564766977688916454842708171926898494152137300160311825237768196602763258615733862027491827582463906715724285169923810035521391844907007756637403158683705343043940081157201849598015645242415313832754569027274650165272781114133105153872115974051566460354829031099152463095522566821625570690121450042228600496068337876037062359879358578000643017599995041039192025538255127060991886042325377788095648658792420883709121238302620288963851163969445590072715798591537257942019059996639708669911971250654571990458804208596892792317737539282030101234584758424475608509695174776820145804660627594938251963896608801714626601527323368153786215305550804973129277764605287641166035761928851925031376051509022140295450518348911268450001404107056225604885739057911816586774152858688225155297587774214536107190185236346171366283851182602561474070802420140941165577539521227386695559563607004408062708301607979092069628626931496359681509577738342627034700402270734043103999420575647275928820830432506480981261591340510263054958789946192611908805893031009113306923700651887600333176712127945068818469226191936976736052619323647423106579166971681074854961127066343912361402837717294294422621400472523680187308182795672017969464644869997158359639371973394920840223315656664507108366981860794171372216595106350154599474920243193132195644208611378937733686913348958864581098048786011670499969123173138456353781172381286971817309063109209195638142324030836123270894885881302592373588101372499324830284660488472704784709991230833633196084158726401614842544639695218502293790587772358502586800456126370598757992184943797876003729640975840154901247694788045779920309168352912593615408557502936006541835081102602257526428869111499417101739976221753194603237287682208439443809360030667681384305863032333317592646263296457014410284744483994115351560148612457327754391207010530403970044495089386298356575916333341683028706729518864360231456051665070509348000653897986326917472915371045301849822737178011439614855952144107549149457222702604890293868061408298853987551168664087055097875055421918292539074911315438431825976915840562003044385893753791027394248783926228975263746287946034511588589175208137353747878764679699140923347701786726027963092216570909561380054573556022010596524289056622595342305809545203154563153245652063789486218194339272580955931414694497870908243624400831234034266683475630968426504791059541349631897441302797740601589191074997972663236122770362662413439785090833667762873928648638090331919127216490612744738190594453485838381644815036181122204189278978493490851842532627038797380011544762992574875991340114988038997492076911076585996652756536273635743857907693777804422912283884919875300678035651318133762017511787606570494083868574106303110426099034114530052981424304611136190032452481329517966454297808485976876366045965293709082021083814535453938205781878117283835879918505430751295913786386999079695958370520096062618468940635593014084473974464456335725772637849154188701449861040047200974134088138979850745811763737170173296862225864058939404041792752932269206878092926020698915539642398465397136260762848695827742949737352225742465559096892218389924200499355589818705340423696530243754410434213187884005495106915522217674147989501017522484069035693470664539372755883863759305906178145482266963371455804011422020097041651044382592983018086442049564443508077923518896575096529568068765071518766218264524055519884396257552941376477719117587819695472537425964153144006721792011040403510726364318523466901626083686324742985080411917363525610041846734616025609035732458702908885123145801812969500845840296551598123918614790776586455677683520862280409316332747844756226134231841655605446743134404035873563139680600147283316395119746171929167236981938657968183793082559535263883504191294048186153467511263232923831860218137168901009671088679048685619429757958463308211625255644139414193410116172622546347910168324984915868472402416305177569857557750454746318908903606430122985504603114084008890819640792459921874387913983671049011287455639201033433753399358176533862167228633204611480912394877354329434203013817513033081627325001742007635362312844971489801703759836935176579952804974859069467165091323671876636063196632723426873280640443056862199694932705328247048054841253961395227657894500206175138076931688288853847584521316289299670458794343153412212876152093006442081239950134250963865268991631796208248014840121816110765300267300656390803392822797640032937799756178838746516805755053749518123909765054378241174268928535458305157110291782825842704555065353832536775317728421276749205679623222441718783582116319061544204394586372545171384129120619460363483634734555591911405251037800244048162342638684689148343408334518036233504061210227369538162975699599687151094832642914520295377575138622086130144927868034047119441235445608715848012446692921675160652928567605554538995269687790827373157174634245649329126177024047871324076481772210798774009047741115384655067818234885641937063873395948285271870229282346445565561105648304185548066194125581686025760270559749535512600531950840163043843399295797557526369034276267465950044264742119902727287065748235358912846277191439115504270973152138165851195421296596360375947089960256508536124091121361015733730780894462877997281876749284482761985851993986673464326528523486700167695144947078186450229236419820746094968582966645294057123876558146973027586030870284635907089871156634901385286931277846367079791999552181157455659315520863928155586913365506553694299572837687202960702930411426897229550133406450806585037724149787341005595576342488446112739256946431308569678288129842439809326029958903333437834386904533019154275028559570243173089652001553179981524504824903922106575193585205882671537260436320899353187596922357326013530889092589266161500722451034330944489828223471704251850974814899564596669637972092441470520880077976050427083283813374013595318233765228297240954394926626481208704497969227834169738956279851088968188033925634558258487088301371695823726186747474813804271060306037268142697705169086034687271878416240011123026427375293613260801888711514604102015191991698968682612376744836774869676733484444983079658739943345886453255309564751802734541246501428828968762428205776183214273492378026351028067320006874311345005738508698583600284176946857783334722063396267391297599780570934873503490012141128542829205987062175038359212054235803597966147801037388436821537630360998712943630137111115352081368019701811953968277684129932057930392281633789147747846693875968617146036818641961201912233904106191512537740011086738392900548130917177705319060610061553969687596889047494836143076432667133822274234362648626046770106994176235872114882621609711199803186378313853094643218979278167818761648932416810231302586589340057564197387378337729900106099851665693854996410373416133407590057756108709681416610196156081591648801859552451229270608301077594334116486559166785696810488129341163702616927604266145021685211924522041737090979622913745733661051335811893085553746989276952394425803253901574337754342087238507505384493402140437188814394536181863634749834975162619249271856237816812980766368208851113126958069838178590830186368018800089675961983806389339855219333070583267741236522125033775479085236562036749399995525225609596473689345432479252961269754389564357563680157664378583123499692577805916776983033792150054202501055030549985223722819067414309752526477731108797979072894612360084838484427098370650248948021482838204977324962501362979222517813516013532798630700628265606035307941206232711513111226348818618281427041001671065010677712566728645264837280010408488977564070918584210800483861592229753244486845720570179672379779920342246932265080504895417580309028973016664452872931828528191295672810297327669065546495549778344883553611082697763259910720077604284064469944413979807207016344304463125230151116371923786226635846281707416301232304054447933945213212140249915049349514858296704670074277304478610323564848717476796481732602735249285443268695352050989131961731233620723852341290042909427332422618269746568631514789804973436295406694099636889150084008251402392088936851000817371986699271952059156461658414483912534357676577537165771585814769765501156428524865180434019828083055896048532946420127728621561933585314830751828564851799326449084908326217998701606613421372951562284453485849607521339551331368705439162088062057684720797774576818010738847140510746503341470647475905502476769582338830444285054455581870611337864936744197054480438299366252924500169299024639371181242556210644876658208371018118659261729891119160109357523496585932264173265892721826103912586911136860258281118940768375447784972946570245781526675072531866593253472554584541384223049586906406643883405654523189297059863103856331084065437860806495361213627445666591323559693234921862223306235858081602521830501299237112082675777960197407330102785089257410701998098538871337618957390922275329288605379509119331813530833967574266236141099993339473510028262777045924352175331347651628435912441218542009216493704438736732178561107885108278744803774228143606477870557601087863065011862121731006899129854825502308865290783733245119628820525238713400802180355261555146049107500355549598261127344087242050021670792414504073520608585818249803876487482194579328352412115518957837025361824787305979449833163554419080468451938657389033373387340330080261065954996368930664059725331915389992866313348708275126766562632610058462052520404426027741385252195373792188497530363975148752498185598453507024695264669692884878460049990221336338744690882749627943691272237682091836086310242522374005600525883909102110506514394502608053263872504845105626429154499392272941782322870315381638460763864173406496727712696205955151474625897039840372766923324694365283596039756915975840640576999969352363834715290693422313038504024357528036312977082706500849964927559563008290008839094220698359049513166739131461612760257326806630339091816246857235379823668577021286724359549252781285751250433200406263615023697834927734511377708115417491072798648288179110073412670887348654297306047259858633224493526713340953701288085946257030315726845303494918400238445667692096973198304149215319256648175516216322946291148057586128429311805568215871658517480853027522387813211665601324972505946841437875787612585475364361798126634270115718828083058617896506721794887882005925367284280811526551974528433394055488379215209715899499476075040801017383152255903441854674825117439402651706558752069891912939842824364933770625260055592549942218636206943086723866500090403897165949361060569713996647578983200754568080886237547034048172136918498916874489507407124149395055990515432602085955126222697542587003598231279180319795218882169648869048972074979125345371241800620205202642446486425396662396750112949658838899526487800202602461071979845695720652026581415137114690489485067143778556456415311179068537599827766639287763135248380438261844187272126837081726076758056406183763698618852049159178889255064435488675674053854422873070501848217262756769399136039286014276039565221835619711036158348901874057595821495719807498293803658319336545178108485472496353415421796292349628636328450431866509917542692118182973007774148335937947028680122907759194804146305027943041462947066660628577910571190818045374361188953251883048051569174001880642038899948087752294363711589179275583975959659381811327839363739148790553631689335425580584246654754677735227188192304909369234875504580981339408484204209938885457851349091970467482898692650098341015317056736441518091342007736786555662483964960366399223615810790084244978791356835299210810847855324369652121596563646728441627363011612061551540599925242594191459869696196117236287369479158524959009054722318816142082133219307033575233055882794155511705046844271773329255253179440530974240076273409752382081398376756603389876616920722747840877875745931675975569575704050636864356900502960190285693976800222724532463979703977402509314587380018690701942431278885435418700952093601942892020284185815958287705005147914214834117068865836193886301723279678023987764813539164954474838955066020735531415323202983572525527301849883597420453055713447028809751157527869031675646443007315908840471975196581973601996782660805922746830134636832133211204368975521647311197216912694571358092407524481977904333923377524284298437928941493975119060622381809072039348199232613807598550589234833942054657857325100049864681648296646449472316334696329649599540586058842563756973119120528443578937238447534499857826685721861372401488615083863248723241412886446023443427195918863903228847905087970834154507684406777323051017859612407289128837747418654214620326621191836926419814220349309002983992137119017774257038347510897632891460821849208788623178977574659446688118163522599521587904970244971877008878733210286578411687742005825633136342135798565461009257526672643670563335698817104917029757584726042647500654220054646638559240752780419549141810283438445667642542215740821826244098665042288280715988550043583267020182773584728403619501929394091152647699637657887038542252174748495740135254896777501080722247205970738066542992679652311060855234207132229183868571767025327388652526841693217609430340687827030986475319976299792409819328304811677222916839522449883649306766362565845473104229956803631060751373253664380066972682606149933048410533438652040672807209011821654777449676390158542072330013652734546810741184359107188150213963742710926085726785086750638419451406589310755967492906153852546507553629384897331557073661797369884688635945907455040389159233291764218739057463987898827437005050102496811686883491192942562971509449377033088347808397076971267302751401669358042766663946946044638741591153986926136914224386523592815263195443183787619134384922390448928627944871622264292841550851738835185703065380558898802971521777327365393279843680094546499445945651472616281595170506496363555912699114013748486826131826293364249049970825495657834712956210300867536295658478146759745050409414245555067175450096338987082025077692242109285807246918904691801071973706935413336954745175878540624949931597519637311889054048633593641069995111777232764984212433275414890208293278241792388465763949222440865321438358130136805541799211546707392390402501226261394274141928380402259428265033271801252051143124261956931384553509204937517305751202895543677998368560503394960680348994301516613085617375485561710359831686167403376755006045675417873710536945978973871998737319440005069157610192080448324164035011021890723657322704943464820958823811013152650829107545246199030728535021978450328808217724010118320415348710477263144365680995856557071231075818160735431521999195368485518823868986094219462401004274299066114158295372962440423691721628484225597514839147586781862888102314619199524838886737233171696843468707183380099388713158377891530410160040963461758988573911249985936251198414661519566326497317525033035331450784164061833768633863403007249950751690914267115379029983795171326907246447156821850711590503699450498485232228877583285082567760809935875845695030610340220947416626958659804712611096835046661872334273574629758412065642610778609541796150171335240705031210350801826788801642308178203924891375216796409794923797781313689867124656735907106055148423662421677470990498232527394909349269145842817342818962383136540638691902744113519742767735541399092104952182174220830213964828744905505281621076173178912487122218952422952032672334779051920402590978176510644909604960943709459692208287098906639516673941812075053528929279377520434020871947327036355019351994777886620760190269891485084661740300438409240944428088820526852262109247535844394747372772991840848644076267147860375856863372193536259612104599805065451833512272375950063049481702930827859917420547194819775367442628758131303622105667756781861185934202083027565664018834631599039645192044457888020023653549216458309218496819564523484349423062035252397144308955601004340852220420707974036206858707289191107825988733868095450206011827203388219060524705834220685565438551983509029611724630958404527655567053080522810813281208512226003270457029816555247877037907429432700755561158683082313564512048429066726809363409137014491844298500396698577860689187134628410765933355557564135698691837689078151895852423919782805505844977601932816947280223834867045452681364905439982369544386563310863660561974792887263950316337658027658140832289550157057010144623951506046767553037794080450589324136769208246342115143368514555112608484989523806838940209606413523831805411883582326762281042955812577603432568229670498575152837306268518225433523000749961865465950142419469170608151106754057138318243032405771537138884932063253080467453916375054923681254130992844322622728980431645376239446388528283651358075112343519352034608881505964566772680435468363031386359913234507059061254741411430199829219113665794945786033788646380345221853560079406267370452999355043581013345634848125432123857401178218619555552563978355383734260168689149761913626378629116340444015845858430650149304417570884473599154473323064779741288704715523135804529949817002991339990455104902136265250689439965538902660003728282787214615909853825636997202742867121526432218326008239648280757405187180863862006187745041542058247410226527283092076071954975868610975294033601415149457432427328576454659984183294939962722295665853964527816613279355123783342993449028452111078054920879968376507317302383285698847820518881747489009556582782534929099307403521462185622723231748530343283823073459399174969992274807863410892927606770851557320487896702207233279523778789305668761715933180026546464476331043875932395374688879052886050274965867986211447115718962576616366419632618036399876826057324302499027817006240240386075553968402368443970310231917567346350737435859766295388144952059793002130052645801463217022611103784025676016767108640945736263854315993925651936598563996471699348277478095392278857296499151000284836479755847680967431102602273808918406485497996219754437967719543579980506076529949891388252092382574749178013406722555690672623865401976244465952966045718976364258423081707784129967727007645060132325456457754668872899635970779853241637871026760669112688172454295510682583574775043397120889155527685965835629711387472699329511608857730247100048861853302522179380831951399139965116645503188182729591247055346271297020566922486902351270067381852265919231310874473567033861013453891344068422797484823109327179487657952491174534300959516518090637282089542738867888817186788077153416554327109575777511879701906338728399155586434390089842914501357978059931415670424095102374489718830900924753248052736279634287537991303578311718921619121730279692066816379826991569886167146810549211144303906019293466343668004614585377964058697355581687950557894124628876075117248513773167485177184948317457875189045760371705206074266700281578684235161157157046632384979528371535965463521251423649859547405354979497316302907853874855741359474821700236165172821103816825518063999880693768124375180837725865622757046535688782692718975521990794859658231078783083737554484385253395343174787315732112093067983179530771770486776482348837419402884850455317602043508024932993384925879565750187401505154053416738703251247487733691805588391498578078573968801030796367035770671164447674713085776117869012471971608557163912187501367114691198322495273750184043914072931472674232150899204853700113953028738210800080058356338944189961647435939690607818680422822183249517035564672781916187482882577114780218816488351944144358220587021679338629429036604964195767843459591945249251394049522198916541506576319872120016319451073494641229998364874423340509019612081159895811883543626485405962639703791239355453056175570727311696898636827158050686786618862832679169814708198034722259417712204336644562007798047634063929754450602347880980255490364514418057227548739741522698283022332254943231991554643130873481099280921548081352374762069731272900015898100394471849494551885507914738662329900169594887257327445741030773644924060893766459397879128210182424764625680435474701955172127248924912302694009793310073672211650713829670992264387531496936126682734755161951016326178578920265844958978687456986610418175332951658182534842559860778372321763344327643546137630362873472248308720552640418167613899829687259264353470012746754329226077651134748088900401511584088472077859473512022592527689035339185130753170969850383896242178162468377926611223699844653232635781831249842073444997204881869072872268312827775298969895332545670761065958318951547288870356387599798568489833402112682816975680146705868202769789467904675610771543876518852848271448761003221334675690426460811456071683977035924327733534021266788658761731411533972043992420086981400413785179266100947749085590351383731039740110673917540524592698578933991150938623603862419768250736387598476955510686740007981790396963564138468863378881139208423541864323500272538310508593353523647498003776102082061491307290866438888579187098694911361467436260808467797620380227847868977963311050219519831444032867929771776116208369720489989491339890074481338002617859187719329987788678979987498118703561791299568148171974856877517984054744117675195711289679058025271047812723697424161185829572254320456064285650334655592486704709898284771774702932412681399227939767880668844773421789511588934179489452914334937719447671428257793555097176661049046934895437680059241635839490466330865173115298128518122263707886365080335974985233393135044546629047203979009864992559997726889400042510682769731324690078690782383424392455066928331500481174110655389733475492487427048662287510185255210403023450525239510026616477273856646844070065565769354711411035383332373009976395962338728868921478606719182718033151697819216079489605129190780221519299959286062094768631039272635668679708196961663926334611308620782687604682661540110666962934968838464842119786751473507586146889332763507071759933000504462248012649855418126870638081804613915256340780239265851312679697155737961808264100122867684403942007893108617932107111031145999108994014660606086983619479310597476672874637299598544593933340353059886665474651850547082660272944558968529633362087073167267453815054541781731832919323078045004278165506178865004494377644460342150971741958705804656540296627019077533784104930235009513316384361455900786534191580088581250934504020355210900450470793059409838860408642082873087247744718036096986819774350019874773623109184454981818371765635102098422468519147696899507160204908236282583138728810219084838597695757650362617426442606935283969635676283762859946847771876999955786147921953933429808544428764505229890640727615523172431325239710933636732006385449263871356059312933843646328431283436572473746928840396719838807877404834988976574132091522309967183544917971492881521906121335424526758417971728087842564938243059589659333554728089109529954656436387710705695017782701175220063761530959782530750217490309473724395664773699269148347241265486162567875632746307089866516683453097927778683541396684597287969324518111118858283401570229450364615672337098047918105247996223623859934392066743727630626638835721426124278646723954922434521235153898636144566469573662992708333698549983957928181356541576188879646807385887855035580947695471446006323643447576103856542386161155960060933186609584463938343103055473734009343909094600093365459581882071389298773700301568884442367897149584138829307992986436151536126260133548570890831487862944204057880154091648485365853645662403425820552658402256542702019099844369754392144073629213740968117522771511323845112955310827669739187667626656599084997121570353292163156601853478695323674598237020522762837715330770889267222007944643374431356075084380983877410897342558491994160274711370831784993320308697645441039238141108660970668712538244116245320138350929514277747210844044410828513031252318813216505956057578436328955299196626410211378434987958494244385156808155760784582989861521940720304352848224869888060505479394330666793655133861542977793012693125008538472801723077459402776322964402293750815125087459520926486704560422462614331822378438821082598931488303395538548865573115628569710042672019582079118001470357044103380234225063094784109948116157239640189359874723459014434719180209712947837255279225514281434669886426188673324277946012855833542456398867551342640719902133718025560620198388079683131563266183219443352841890969547386644505443405034384924568134662004039900368290618412683010665035282551444019708879054062443533755615361931362771860913799483163842029140499304175133459877773902339735813778732748614884221546070400270738280197126414755784373867738350560103717422064514950565766049073993130469253714206092549998477088694129696794771223001780275847595310072460353503876972397018318839240454324597394317305955007160112695011894114063471306514145131377675129559009916298606782701615183335628642342947563661898289016759705909485443182346061891544561424772618651988105900329738941363843406244687188057121701049262133256136066758220280679151171571135549338466412027250604588519373382705220997127210204243096512523342090048278372201816364044916866961186300234003187178237996797188408941017339588249888833727376426116392151367942556029253743952054898391487760299193452952902972562933489933794687303127931675689304517435094455370204738571050980594195878550003181480978526956560459968188394420775780123116289731525917144668158702535151306039009177600050464216603489383015081914030666375095709587428682586581039595994211398227405912896077664500248823265140888260716298616996268254762791438307448361230092265227722651375519589096669599746225122293933918816627446077361712627265928908452679532137690555593773076851205317438398079130482872415791719866957619344797407011989885051521864797437850871890486500082231060602663354770765319206737529923824617241590173996419795235635589491595004183383474745298011199262208724303839195262994026646898342064784731538630202851829246670024311274732410849339750317992522992352387217447493854961926352226991079178833658313382268057460191651023187060125763168084561047292263638027376883899665165744943626442853651873089712222847972967070842151443233032534624787823592597053913472666463831251110194394772328800687863768531518913967575778718812336042264980408838187176206268582240041169305039543521507878073627333047463899851784377175708896070157188658809223437064141894860237762626267089834918546988827708388946340533924560229863722482002513303970709807405596349771356176329386212754714524873548906079495060732828896864238595113712129751962590899350786236994087280960984305020447680685855709998750855389931532312198071796167188261454536059676631118407407735235914607517953954808339328077386598135440105343416161167403419427587399477486999031262322050934250040609723194572403136443581388605830322317275261675852311678747004064624439249528559581378851138057403571196958624142484689790704410916310383054915407442089452931302472537377109321018502339748772899103703718564798770450490762918312873241511601475000913689382594251451390031692159506199871659831891801112393791623679249670313069761086939131599102234729292632549434835477237774212808555021559421152178733746284569998288905266894870345202760657162327810069181182774661434754896207594117333248108091233989901075032473693811653855996563439327501501462722290668346532956254027175750072002008053402602643150765781745319064765521656185021466300850755202575365801427810421153958377488641311025743171422867946212630376453996502324869640971466864305192194607178665449892827135924808639058768349932500882085771345704786914312060520379833191454332617497112731101510138382670263935939548936212378386736078751953285730958882482131489502547723030200506687959169366020928373086674781254508002240489572577094981218323201784126870049113726127746199323491538358604690965523251384404047146339034565101018740655953951393665200284009372051305870080667368561029383665774040821619657905277180898612991510271036576058712264603790563414353952683345513521031326165227439626904242189353955270310572529124767471874220279277338138312951589414213783263271801150296180939557689682448152693098459229974506390858789303703018025720918375234065697214758579966246163290795589972098943558694280152440078743676662536255457353934320865111496002238355504542356254207655447970720604049570795318584269446677028423261001562022390387861168321568522119541825174471120131064935997223241430566947956593140343774079118896663760744847148455761326711160143518460975476380914196107573270337920599781681012174989207596513941511303723061660708163911220208397049497097935603287303713610529803194554725659323450471389406385781670070284620519681395064594107399086143517461111335384905875420788431391091041541129790306884628414995041511713295529671714733817736851131980567858302971674879410785275654997148475712502937255547567557083208574692543620895482796551885716841822880279260615898752026045091534980129672992867189068983124887083165809680334920370171349010851296130458161462536893050677678968631954860606344852093990057273898550536965328316628637723323006203581712307885021187437052838476414322777876454902140637682153154622193883483950592755847537548433652075883865251441520260742830267010339549678947806936932825859167832238031062235843936643604061312673099214608414495867795602324724148966538229567768046573625705133571912371307610475593697699305813918965436044168480533477595078998493948796800474460936785001901328284531831886528430441794261685738637913612611308978242279561120179441919937806286342891674403560119416330642206995203111727752292843143868903242721855508662017020030229992485066071512751421764453888535369954227762832768765730728980788755386727093943246259792043243590574294095187893912512155270254073998523678788022069194964942666866330142559296001992397524233328738577162682478788007860164304845762163165876480504889445715793275318722536539908267382646168150817181151809068483896090791966738724975872815368899006918979622465388181809207579258151761191920989573142778310025205969055346146151453001353579829806356624085271192126846099679316677666047395015630619754310159202030155675088249075114831789190128129463548228162795149206962855881789711539641591315713655791839346551086492426002371304758231609353138439384799025615691263353163061589321906526180621403526719514714926116519389400478729793361183923826224128671200108995572159304098897269969030078516495712037443108644866487425890458474763211007280500061418051287408296309392049698797265636999610414703946693542232319859138768793678312886293345471279157055766098836264709409254529172708067649882953235739867251160973411059603478798164046723479128972097961616271052174659067911819057809395874467300420471269817910931403057724606613232497850641422484082523561637055816665112457075657446790166433504423064920510590459211527403900040082254216465988453110507908210276027157195253299530024548795570366214015648459857986140963704557351805981540125973163435050553184420830985095944761187316875108076534807061533616476575030339949386675885885457871366674413539571774785419142291065806856937057358418921990744294576637336806893893183865689422242199572558574254815658325104529021776244608069661660304438823757527332363336865832670606247088807783109700552907462503378017832450091443507819886110087604850657660639231293752091518470373899654101468511948356886202363043469016235692603203053555420764443049458138267325696285893627383290145567817718024122668584652909948698262339842271714265214491436594018527856993777478822548940339559129539399408979736804741725067447763011843511460239550144108864214801638330482893598135287699060347887359451688999880531679339669799830931971792803489249208241541316647105930016693452744681796170562553440712730601846225286583486435466955053722514258024049141273162640663905692438181704321393165580427881264364937029612394632615816312514798416574489686625557612874558698796822920704650321726156097130317440780975541839487830526552292464395171190097084524303065897094830151964486314249715586628917670674277304529422740736569838979429563842041965590847746553116630300837521735017124476371601704116590370384739851875794006624322489788258986512317375277143652283448852725631311437668842083025839253630761971282082295542167739646713810909626520200307041604302686924292558619913153340037234494485175938310064012120979760535804975325143908177194732737702271303225124568349172111718036739736453094154618252208391280582954735445710020368376443970293371249684700826643051807480159837627150209112518226162912572776828998041792421082751501108678565689070523044469528349114187627229092051449168322077589415473693486540585652542614857693145807450961844574204448430569872668821239305476012500838140473069059419479671998912359803165291967478010948549403098204669678088340868570658721423816058576466245562347061422763679106231502338044703062045211421696353751688043480497437018789706971416259940736273443911588739976716905930738840555447009711533517059477919119191878938033392932542719403121841803852320575139095823663970882697543284852808733504742857846494616916499546062744993283235704434542144753895738104230646218608466844938230853688880505418927923244990625797551827971424987321597083510751373360903319300440287601498433847679311274643005840059273931150542822103647140438313544364962642664535610867853126711597170601789499490766806295598572767850096153375483917763731716460140027604479508446313842015251299307347511228310123939930776387619213133699760974301275929063190009829275715328205889197059794990592389900062709150361915408046104913932142964639669218289024241990754974576565759430654711097921455210563716494719416035152260450882601370800996636014459032260743918046757571071500883873211464265967625637432416058331681384742309696231616161698705782220378134234847141503168110305859155577211836463002157852149248677409039371764798045703063456880723945525488823753451860622700500533171126028618378147293008131896455521328160677379209190890402898219735836337412420990248218999457606950895351607127355656473434464681135484823578693891226834242555822118345963844113577230797061234611477160047023561080859872225850312144094845607647432357640274865751098576574460730956469087375958897857767961082498100755823991495257026475090801466271049685282700318707279510228964131475291512859974987900524874210899285212588191325283882217751942729415078684720200648002906282416763357829846559568484457764773471250482188617999130257093368977209077051606946376975290148605952567290436475281819173151163619634344606810375864003336387038589705307034731661459657830384112181897823310183990290642494877071115404424679535088884322178437251359082402525956473775606069372304983998462717692255448032454852225910874091658770119290430798353260168225648490477323028239974635093043258168336535720866979748295393411666281705044404190809400093737858568366490507126643794386110517864173549551910785793648586080505618316709286440078451913868950449069892924955316311968694440515274652740928042469830821497966763759600811532769284773494426306018049566837015082158063565655867170620962598586914872923075175185639494048614737713047656818668323554448457550536459598498168079511163980226783300842624052664651320068832659521350655974531142322982925051624796217960633520315654196752195621859013197562544564002256986470728888075096889217713900019273798299297807670297177481780848244555427711870826436755886030591496829355615653542936158776052471848242311508088766865947410246477346675960248633252658981947127767760720135955165703244887694415239894848865303168908243839706000599316481628763725128893406467197896319851888360158965890477816605975329684949576483185360986915432163803025702893794102569455003396845026274059840580113471482361672723308507914891027977924021124811584630546965112002892340090060816849580004751938553368390677979137380199355872350494760214941675547630550588733766565630279733319903358923112213519131921189781292129773272889186539850806143924327035034630079239147095249264048657806909833303946699911766693279425302961517433838892838578600323015439335240504680030570410191081793245838324941196135334573618205801884910963456684724759620176678498427640382914186741798817695284059732213190043119015301581802810239135540483269985351231339096431388783079161186517197204475136691317475324817302736394908049139605112751437231732186100554620049340727151690616647847156622277032979077806482135114386075031546015066663575600842241661868354413722422030811883948056910262872712142925812568620216390395825145133352848363984177967791139330219398309934325847139080739245099799701165703958501381813780576486267025009206648711115527695159486881866472862961948615093612489109942629852978874500029554696307025148328997531438852156729997090462655278787580922163545913523561102070033234145437649353102217196007870700655118664823699245515241239789184634608895606928224857171313680836474390739614897166937644231427171492374864217658786223649507841558670911458598021038846743472508168500848005643667712733941610137109638414824944747528401525391424541004269884238869761811104452254295284723014907492246574766606531007993228522194743355454934805355582108260385392011078667510531201240494440830540992864354679129408754459441165118267543037714824007926168139906897367230977514333237604270935266773582221656283545455174280292454293136843879741404084329171210847282121742111832258560645214430859122951217033729506415944295195633267464089842690204148269043299775920813392749299622801557228555269140538757120660771921246506383618185901639362207089630715102870773406346375684787270723204921233057666998982495980337104213512819866072996270456198518911887698383004598304937785752196842711060429996015256331774076053325775712766438427789157079761433394545146095670371849494897938019013132318218974889079534221179755581717409226659944963059451291328606643941164070290012004909700035812468958825479700293151273435877718185965849552188671269534588826921610136920399889058028454897659687579966625556495717954370829725214591481519850194433876758077804763580074096494630415767212156780862258917558811826176349605421743595309371046942901340095297898952991740926307637757155308601758631827363795838367271579845176145829052586500592922593413136158090610998393774169210810550745452582590383626525902243823880725707070386239332100179783590891544042564229226511591799359746715839114216658901220431146369332674661769629386177116564691292230127766837252206158769280613463180752711900430903804383912166033016335873468672835902240215382930353449533356208465764248315283902492551918501411344636287295156317532102426144714097749220005129433331414168137941780109353774881479374695306663211938218579561087256850355735167236481954766903915589565876406559376647185178939606281556643127333026747748252813391945551280246828321013067088049803685323532826778624924154409665160582456075220255584044917393346223606716717713065260613776383830721652512696047450093396465603486811159942384416216684121701773067190232647666752072253695894097271872780791036390676707865630121466837806755089039390774052865516781196536339077385678903785745413664034112941276477975760287172718715810324080991868836654715700423741278487275506728360632596670422479660131664226524840820189685177008822303635074179664180943343955418624047864627382889704703467232568073349726733030365727901504069997443035104450730852987474113658179051776108215973182535979433305282701378887479730885589012762448718213053609370071841258344520911949455979227759500673575892735598049213950284636863916392095304307186686737555635219655358563135672013103562744144758323469880930402039073226423460363575254009030253987782550999065452458227093461072567135843306864859877896459847370299959302695242690201499387776159097976619219573694027460140537580716340845539677496885898146961729131658499909699689303180272435967980690041630851472599204877326079904320780171694769973405101189575344564497951365893887168783850931025322670315248379392800370846172607216100647653371307739231058590914619059342131216325847772797574766902393802849184533696966465714783536031342315700174138723173758943753974730266643375081185426591455635682765420542830529051335149326305906272298679329196943083096711186442705730452761633624895906318950003491945906827873040726109264544312687827951674644230709630560162623364828479839723795527230724277423272234153455586053789256641744182099745066822703603418144803503002632358717245908249939296320818812284417507636507656508810983601142370012096587721342919836993016014009341583127441239781561807664853464694342908134855115834867596344964847756580211941915672981545348895866909578878734987928801482383489147458144583801572954878741667342968651416012252567475676853207439993368369231614646345575222649137330633349722541337853613127103265183762480637584727700578361289124047435556162244498476534663343122829265010935273282866319092340494506974004838799616481769386349849013058042158437872028133131527575933311152835419784385231783676542386662412647267969684154547884745201841976959114274728901288368028308890314581153581958153072708683865369896607313986243701659166256513717840419798749722365609067446908478886686501671987797035492381182541532352176407609960810674744567434568589289715772271804703879834381403697992223364509521120339248252293479182112578140182893195142986269549061764945028686181451268011957600822341099123195621008593622065615122708548793374568828954786524706252755334549162524007618761448563704722404061083406106949102170281606203548847884761737850128955214508687743544800694581487045532518669900101508884079113350424467969306287507210944143568340088060485751902784483841412762241181488246180441012574564390765053587037965644418792602199242204654084212896576459349454468354841491669403785633622687244247463458895158814397226459670441455443784303990960204558901924071077887511610957745407804338839262637268738018652164016339552317836160427154689944641122590036043595259574875524538202266866251451386307395911828727132911154810025287591257176780054347930454683959533794966199258622946349063294932698552681825138250339567119412990240365860970869828649512892896638818944369512082836408720757562566554846378827334430660059487750285267552223660960688838710564758179168805738449850581323019438649783668534698781049120634700757515727825212162669854271444593484061463764860111920907313086470818026189104424943772987522460037794499945385574021233214796504695520995956928095137572804233550984166406775504451074907615931900699885313841761968248917352769099432314939328064466388797707182292922519760887944521691450599288088420738803887717836395289235485273258968104584503945442687941768038448149274969226700379884381976693165748717686855828231607713178363726887940044668640819874036465399513902344404059183849464096064307183448957652965445638936223016120852789762810036090155478774228094870347207820563575827665167963634499350743522931034765930018526163341883184551095153235219042850888270365524587477612173269734735764868557725764401954365360471122734777024833536683317433368942799703808861495222564411760958852161605636809875722312892759386398034189561134600620256199318482860143712781439003801859124815885750643188613993378223603465306945955901522966910808830178504492356487033704729753688201037829166794937559987524123884815732952879058204445916490943814889831285890284426574575419638614633684353041185391923188334502608065938030620443487093483990464687389221149354982635791233955433363926307642985923614658040595869526287153369339279879073151834000925967496903973674484151181170109961664208243918887570743205612372064688857311017248902190384015258567760044564899807644953095132343913589066349835881434424579732227009291473987019487677342108961102771802837912693628394901766497720486570445402809987302950470484933254758668845108420298523426535562080616650725984454264641810357817419827774243084922554642795274872189543172280117719646747928863331150293446992337061225701140472196662492588495465957887945077879394784696985708047679957467891825091799104878515192950972478913547495377499663302235422817217110105707095656217697864152600509178027893520286631382898530080046427057848264503043411445105893089034532090498335328984700090730340174562952662715656427756187816068638689169370096874464552682824642998381831675501519479390916890539984582169215444076441860386865855478196954640640586552898575251495374960195995197832224596219559302762033067938524856692271579390677881958681733410575145411845098484491237323904448291157023902555557122482719223479509665877596790664954941787519137931543238931416993136189003081590599221770120816449516559185077941804190094885798978587751553505489455864039791718145204792681178328086102469000671271393785880589659202171159490829411853073919225830567497331698331667073017383813304479328100847879172500565840018105003161924860104340022458832403905995293850154300445212874949895677483112723361570843219386559026499464044742629955082434131628196741251608058140592973120508631950087865503639861779768249922629140953561822032244969992774694321777867779481432781904320717788318266498539291622675810106273828757769511002843305242733453608314242656679237937372613086218386792196333918962700544345446265342094956145843941487373190561403724524281918633857665715412357364960345826041891970162705662034032536586232679032100559905063797604323141542593124668073019206700181648056700292045230669454679497248935132676318712801928007887996001246019834990564627749208594784183674624792167383001867300533768355615305815513286456755061007875588360177102662716200313350732580332001790329754391122930241824918854633318640273626438872123191195272131430699739171080680350025926582492720327984653865592006944050140285692083491530343667944746820758708983064162160490463943070533041514752960239242068827582367995093513211920663324156407650113501860801770166377507031668503725447220968006299036697006071131232044468469426526633117421820457584131359917722564320148120700083841345832065391726352262107454168991521438785191057041793059824986244842064587397362372075520351908372112291760474720479530511222707591453063352410377851516034632658696527935493173672589984316937869222444667340635850884838301283964550144581977816925069566009859507732802950724909388289226746232332628629159041375185206021242398516109593817345185279802150880007450615052457935169036691455361926248936159068156668712954547515241787051635652489646650523034312685023633850261547949432102068820636213017458379898476311208876163730341953541523406435866894136370776744731664788830702837744738914603354776326686440529644119641586297036184803158339851273156075744827379830021433927030383041873895663474084713436671796124479735550430570871685462979092652219430343664095343328588236705580518126273058353101187518005110082554771364934890893682182912942392458212598612039473351576426055829581477329384308227578983312590586066952540057754714173109094178361345720208563334385392676471015489594158103333644534801066062249165848663832399768765881618980634400323477608770975705751250565260876554219194313962640995980428343465900570005165182525301306639079740045248816302913472851472062802487257376688104683651750092007001416933248938832909141732103106113133380090521365746314312673813811064053353932169269702937697606644192001388418128714242703817515083126098681826788554835634192984338989605408456590338857049425755667300843962211378820157137991845635804710051985985428497383836091490375994868820064510202648520949457380856461334113154484107041776056590887848871884222713137409528285981058965466571646588404834915122511924669347361010646924289808369779182481093944256997774047818497829019976689225870342396003111262602072861528157252602833949465394489352791381823896791167188991090925941421260684206191619696904108083622020479884284315904146966970272162847496054615423532687700832510902881213404300050553283621816248364498983569791465999110287419796741359548683690240459117947208720078138774814489557427381241381389997496813621728239028333982173521848656087595528164767960362703759996629554690804131934154105813473407442047878145822148675263317838798130424722360203368700240495248052226385163179760120518741009710877907113891207212531099058030363778978402060583281362471552746830492103691469705478444217295431932920211780375933408865180960143184114538610405908898252378019382672927850508848149882609988011854378853097852787800818103300202882020549995367576572665543851730085767327770169878898582279805011614562939713947994110701681544504396702791081456684210345504271256501685957002771679312670208067489773585766638115548918502450983629549677591824114088439774542391214628667618365582629595034961468996836553004806433006095930759543380218295726926496640895191518921565737908057434828601504475440965453682341709829423130421049231753826297615185479017035270480524174950366351494367910253617124537587814373748397767507951589082387385594055694412043818465878730629881889867670470244070424707296752411081008600483316397162577895366109876897723649211396395154427728111616757223687133452982340792760030690341862675219862373601696044426634840316172179474319819114509210406212069942566039020352053743668814384615421455694209168268783230510985313630292786174362773133097605885608832501209631013124364161637061125239475004983393424609281482831750859174659969926328800776590934016699358249291835155512032954594814948317379051245643739851662857642321588046568222404346248113671305413669394068892486937488661485947963660900240642800904850899970782162313813583765001655507536879780947978089315831179126153552280691718823843530635245562915848749311008047561201162978356930071937615289775187621830390900585707246850244801240643494923542899398776358053973708951409214176164728152399871692846691277549251824360363382769536383579687745971134329266431530858620372639261248975357031524870235963724896244940697045356036576017075267013288931336046508326600220807253476448297338281821257532160423866355412309896942999123973552556947823989071195152241007524419214945192153606885500311727889623921075585874913087912710653295056340980294555328621443553126890595772740036023406369079491433200963796399787984821297268119176468623970236507209981636043419230425897982603519407502237414260259166104643893546621460366823184395045701098492089665440903040834180231755496685255628251216920882781485940069587307483366537591439870015561697028617336840036898940692273884010679102058731782845059193529792587208450238051563661674332553919291538084712969564349901456765892177718081358307120693093814705924069436441260197978520445020352135390483258697782159340915873936350401028185557185945117257568712387169143182545491737693142169500562800026657730701612287246826879587295201843974013794408954560583241789557669903269217062989873402249587053896660367492384668169718173079153475441192551966679301501423808140622699194626409362185965716524381935190003281071971731870882382780333654107649178246334138255059157734811025838772768446339747353023763366219881448541263129176326301719942610057170958891364394144043563517677520288911819630801571969222397491170856031809334499784449877642503683500608691067396108148145628210171400669750016068908083998909720543411883563770524425349111389077322217938786603807907938551851591034664196360498384830038829419562282547242988409637987939998960559733624209634866940454700304195660585740142824621428493915422511036753684306190811842668729666540382671437301482146472517513072653345102818085488664387750568423065261489179899880630106985102700077267651998330653260357605991586635208598709321957817359460655781265744632755381234510715198903138977271203519510495226865555499402026296267202395310752257089189869910325223128783681265997539793089326372062432879761480079756028427032344390832504622868800803725608436390714175159648662073315466427331885059619169217304107660408947341226697519079598434935406644344704061222103382535900542315792615276448090825081468778570159283544348644679241610029980872569385957674461540345359510431888005094451116874488187814852997924227184384437087003016830281582626795846734799214189862470543818020808013904164999962487948208333738213278007968119474987296298520928266932691076260097637472087013653872918037223371632564707065775816510656228607293657929187166803986007910977853424308638119364615237967392620164120049621240436512402076101961036182689154849970624752780143810785503247445068501297400227652573750670642321166022060344648935122661749794709693916835632349121560693648134999217460849463649559259293401129371381826313690798916310966621087516623579715882716075543402907099570748024784363633832890836690237804682658485168499707308477668064238421907829447890842285185873141765432234814288700854973551318354281130942520080298301183662037234447725165644104941130358820631319269358937333660621291172796370289630782024753275303230100557517888006860043205117722475305368248080390990739712129083735800263710552695178102058198439207269789641702500628511896057098068310945598304900513109037590342796288832844002660020677105556801412328765730730315241585955489954745123715949579012220157292869213548005902967875092024501495854816811030921421047851232023575614018373923226740912152322153450166418363284159647500296203652686022900128225925559644476950174196836446164471734014545414203830689547810004908397775989033790314456754569142825017131761614945698660169931104517189114124307093488280005228265897767693700403054099097864897906762570042622272171287214819616628453578902310347468891387639609914616683818091421700889259977122114922803238302927411714827648756904188350310710880526657249862822489359222740585812694566000679958723890005015478694293809371199105004659404294352959846168309453526614078381550282565496162399319537012969594336264034972195586553884004793138275706080323829513514548232139251045604655812574595440160299658070919160536824942714978568994119253540236799630662868798631205127392074379351565614553680734532275639435064861894991789567112999287959640811658330893859929850373126687858906521761884333848263648145120988638994995493096604188485940783047118531507384863679017982162495674802284830345978808336808437549574485534506709227510574646696796588171887675588130676491097030953100970267237376567971534600773174519178696640443144933285895725165133455018282256074704791581998914425293684710941290975392380386080058977104897722181519222471283201612529590469485029511653738464851901474452552453041707211908630312075619741466388185040878321397746609933075516916741858089454304528802944353495625494804942284015066921171067978072164193411825093708093994950607735479117870376084543992458153756202401320679628766364775172888199148580326403056465847100338062809929905108521090281434742772546224070523474446980889936495701522196373015417555432992324982218574791499265698981278689539101282047859646219415477264355085178997594452434767948443484653295212187408663603102785829209972728018024984423293458347324186600406415899746640180797199310655502546379219452368061570187304358042849100075866066006613343994857817120344625136578768634333123059111908650788698601480446774532540759872614711194935388980228858601080487019504125199823053413556452147471571775681578100179738959315277591715208204465987053740414862774579356978078532440146866143842098919700957283772567079639170926930771174583588712163061607729610721858556045368018224394277276737253688510706357488940269682176469145384525234575088247093641275895625755480338160552907266253790297435834541229946183341212140259416422681446486210329724305476630042113368748489772319157764060679624082189630777519416191557908098196230473246815497192006544223923955070805098985518688548677222762258235773999497977146003343561372290713235228496815198307193229217221944726594923422845704952860605044429501572759675097095663403687913715362343480152197910185254880829732430464228666141336056565231049528902492974191127504467876405799652970609562714674762580365325729949590386010651856707379727973032232239568024180564120854031224738087810531795978493074890624093910507981391707957996999471983431581473195514223591050486780663906634179347015980218775979592093484129600070822530348559101148243085596365260732476142276472263732244826714479598049574936920882788935489577391764752822120293130222798767472588726894943515335465915818301717980624254926490052879960898104924894251614419373997733213869378290368869779410857993405431438540278720392347038869959728253276012630104501820449300886076509567319420284210398208157204215157866580548950838631628538665266813018327542608597657876819101701707205971139351516598405746688876338365273484660751233141318151125571287291834527354106362517003116662365070919569114094279246879733093130891423992758652386642140012988397335816386784499807769671608808980936405789601754266432435249407379221258243972869096855262765808898546294424626309225761255916934057301593611170248338232240735850594049033727966146585415423100373499726484219954088824520961898817429746729686791840859450546766072373432531318840523950646838677854925814550894378046134567303474661280052649584680640314390261946183404650715568054176566680356516672847241505390027290397984146269301516936829743692357040254302021248892516195045872569967095036473739390901012769537999373011783575557225447662531299945634103974926855946624111343103937234298195608111383766486616797107269442263410529715742344473420743158527096788435569257174795946021116997201504014327174167506873997102744314594306430689727329332720968992673394765947716221300844916111989786926370156102431076653371469404880629046839885095568710900086330114814349359869819832081458765030998167780548135187286032876128812064972496828533173247390819553419031311991295720211712751707130820243485205407490563781150700296598739530130982752105625136985949274170419188787781794368317584025078924899968608500272691271679623572479413741097133933004748940982235681407762955524122002463831358231524974167718344203946903102964420758899341174765546086790149075009694883544292473710042670440634988326777904364372918236139410356937107248718433810928753559809443748744175975764779868250046773639751026455173036451946838945703357985094125540747686205471338789789060055020589582677540965005379977997139243075098713057974968036133087818680801589747523479274951291217825856374399537885694361980123951498671057560979893003723023870833552172321065179461340922295155093352007261813243201686205439685390916029584105276577428783705440357308371624338781433026004842268902760549873211241630432604170539877767963691853757279419943240039593379160011373500038947881855432740073903393032886485655327555969838120986954711991987847502141400661056010290416292711287787725323844700601968406973579028831308533230519468114026206420224797780539313483967087745673965362907199276331432571577979645561343399515507553580872355459513095216984525426905681925878427805825152434356381011687808220315092140145093629279940493814800794275492815058192366930550168867806927624934553161300407074139629299878932955981248040733673030223432307671668048351448693371940078293996317732929262105104415014606437749242765084720276348382129714381673074962529652367382975237397286416498509176547951876078271198176343766606568687401390153824569036236208133434215854110216416004833759907553020902423547850412164662324476302913999925644201812419026295899829798111529639610782922077028890644858107217455198938156694257948818093020177143351274041161214329204198940213812021000819349337716711560687518794662265337608219981771124087115617720085624269461727513118853260645223146144076901365918079203267279050918085683574278861050625124669930238795604940030499349568435067614403918685919355870045987252414373985125258563527197233390073904492497775356908041442533343020403337798559640820261262153632545517309397709322177749187457486697820302256127520179109733947086441518692505907564656576998338100385199441586457721140972326606876592634567033121647062922548756357513904447017252219086866234922728397279258973964188421602141440002341989813520551893202779756071789381114513256142105814217521639268145051481631026609981865051632139903155156408212771658517825037725847400358352099064373865387747879263629515381068171904388486282283296393983845342236836654934203605250560207319766896457243773736165580614585097166397252316930475693624322039454033598406484042328343916276673492016300357032447952115448287718584063576994228942378362473986408458891887024834950187438536557398970544499462030309521716321281532486168576469845636850493433329284020086339876660248804876294417618229139243216423474091273956981655074057132939998341741748549853133057917753843500530179961727834609302053325141348189470494496358070222312956230974775703633944647117686356061129787295239750922616913541978190830105271713427726818330801679200975891361500636621247254851274009107450329690800499548733543000398759391699753214182774143714838202541024204184611907999921168980499768126059436528168079808569116260643008447234818681112198188749094789571628155657422002919486639761315605713540166171382118115260421832519338963873531792931935610835251487207166512603173406535181914436038270315954908695051952501449044954551709625627787840494304260181629758988141496159156810433830413259538775189668822834978557877874858981955960393112887893509200771548772569884207911215435760739541219424036474619663574524305532584692833170566892189512475689033138825434997775775175231089554774944498605155442554711213325463617575746078960681874482733600867904786068142951703045007896729332605592045808630834821626114380594653070593341791025738326451382540308242586767785054088016266827194030953044282863301639712510809058080125030026785626882717298564776534853600893371347244059077919938588232328410378764250598671469037928226794995202258872474393463931626848994661517753710342159107211707480961869610193137784393165269466534920463217247829869799679338519333201177079984251093454299792083405389937999195507513176694101904035492972540953306302958787719623478333714171962453296956254599143028343387258897145580265326186589080708866585402740487125525335288213373185150659013949729740354740284717645986586446316790833189822325463360771551419661447805062235401431811340080916564315476234766960748697510119511275159468838550849787549981660439534548088397563883447125728154944164235100899345407749188522585412445162308648302705563125196310720877260683425964943300927103796287482950992376590508623695026537964904787460855217139318689128715896405315459526913457410888722458348252024609918155410188828182538633503417526803792248449183368550626199389068873422907531712908520037273732617047113370772874786410372799945167918332917346343307737744454717235752114101941063908938655905964873941997083876705336506860935891071815981963817014861869092102496088109912278860099172875202384242902661795904762256990116725024926886431713202931499126911175851037184441003600448686758673194886130221178175290592658006525416327618764413643081014709319757836271923716305639057539606440296748956225617963013731129020139864094391445503250487148927191004624028094038888097141917949995120577295858583721851644475734829072001098466283139607373756827031119325894855820586018637814340127040663398149811134012927717954824221895700847020768584860579525493280274375582760894019688233634542750092578490575759193107086764896219517705764498800459272873070583177140485690729815871386815031341357144934811842214101450593943055452705139138790962199588807959407933597338026377919523371467326331926265571200753972404743269049273133274059109197322842697661871675941445513305831055484818962783037080766264380355152644052286901366253572009273804364314480709469349851187963936038847325525852944533275988775234739484417234409199885130991622479838652364279453011911904326262440092576728045979334955927122809113402146019205367584901474319899888038753810769429773766425131003388149104966854387066878317815039567088608440957501967763562234899686607538451261065608161679525924868016287420138454109739987285799548312838281360061301106440602338032471666750582820238006288680167405713434977762376068298227886081250323094786619723103373521065880765709698294933695126570517628700489390978652505336690390021153291101474661042953467043414816173179687175291730344317834068407078748901702775846490050301820601507365907335252373717445697131009828462262890379074796508030757151855027030321253463324476574453440432252254184160934477001758818518830427248879566448842137200208898734108367756839952963473990716856519007679577146225309369553692206943780992952044150098432206295410298113416362029733175441726555039679506444278029192691429680890677128946193451702130852452736010484716316210865047956046651727333174317825202392391776282276172706989944604858874662588340827620959703472460875375442411649917423849810125582657418441556312289959015611246702868944700842803652038901786121384181838011731976987376093849858625435215035388121164408620029390224567506911063667739449686295363215921555435935006776391424985242479250066123965455113900850406104000832776734228201712688464766323323780911397088894364996690409711648882384043968563471355068820877623097228605260054081328615181843515964871632082177743911795753995891459235114237473926318663601665631182041143688990629491793441005465080635510630801847237308800954277833834209364456516493859039921874266729128783185071433265303407598955174260459659646709700497428899579442344466258673430094219445852266965659533519953071611619344111860756882608509950148167949445645378065108506899696310976636943766884860853355628742533883749988602421556844994531036728816290952549369481201062614079011203339343669984513052113754738951637345626742273630077498380098595837087835965305329390363371290533297585361874110053214848501520199731114735350024912737076982631168288035350239993798710309386613896816577671018873173088716910374555419333936113362581602653518230112799392304323229766288906072882732503008342310556585749632439145019673367301363838563451220598777283768436327784767956937756204489110517127043866275679833598928850819662920888802187100278387855901845115084494818144340403109557244529722334923781482882416005320604095482724795724595855947578430997100690934583522307372273508887079462695857913145559868838154733641024181313979869132247525247469813934988738643737915274036942071170907692413162013633812099507108062883996823255639036429782547490022746666524528431882965446377474486845350702046342944634407254380113852066956890906813264062977428700875936406198556511240425840629141991917222682379146186605128101681195199048339526595673319766026653102195821416724520855844490118989087199602666945608434011576902456941513040577400861723064472963709313544637267925101796110489452872435367046656331375427425511101969558009441478610793606896841343329777573753467016572558850387007959648639771597381817114536236460679646155875944786486373030987021627134337710084858680402174550879954284401824343258373933474575532789431648657940350368037970990388019246394234817348961238784574481025746510200056840182081076874344805682047275615223904686512048429571468858957881344093519375132550706562584352628583227957012177532239290187969554441902354469591224169197327871027496546950149572302569541203126497849800645658172514288324717223977271536418201478210025699153691280943004900040442353233524731619465843359758168413208619399210400554265636120650397292582785080043272383152624001969290293406917802880857494819705335103126470945310684679392406242536921937378214096431157611965592788220677085527182573935546047814691902070282571627258996001252619294589494920967615170752260649676557617639158691959756508522063988988499004571114367619633486669376950251250506193959230200491493654010085116005084190476273417042878364210031214882986895433195179296071457852621358289525515268106740964935665314891132106770148384762962208045987848980919621992326816600595043186458342283320763220773229063427381629597273586076871987261764951045198927827264386501505771406644848991897773719168656780274321217423693617008237301621696147102010669630989728345859619798582486685191474194696447585602163511936369748598522396056408687338844243514151542590053012778496725689673367896993091684319363274823349483108744228391156422643562741304874813284744482811217179300461949400197277891386631997691124567503916461215963225410121250518041948558370177179038989479705394450478905325625848556506302107765704721075212254422451736611574024889878774994032540131704328333842792372350252856354693507818479990513267817591084003097181063213769561333735492821608377368357249769279477103222832701206093399541394578457956806350299467926560411096914437329072705046078860599445236793427752454861932380146620009196147765334927311219485648607553719824259907334802968481446658522952617581092562514912998109387395987403800996446399789854451419775057089043308774327347304275684315546940821559452276248487296051970242305824917133465755395347710518550059657924610116332031922467013659658445271648657490382392505525319081863876427313515328876268482078741276936872107987090014835652782173799024452228222866883264025088470249874545002185626579210515029499921562122198354218053172736823832622872279779257195538373205463278987671920269303633241887732985616692476838424305587786035270017703135734605400084233128633563266092989096345015788269171540830701044079184318325065174101136887612435109310681267755547850235230400252789947870399949242580190030636011371694696709541477458028839540327078537658540584322445202012454456714653369872341680219508009845798216143689698388302390597856278446362334905174582907251902975279659288432231835226018046169047565457836146545724010251331210657501666234601675035204850412398909635734241896949974908852794735618127756653241853741894043400591476141225883703299334785989490594196261562850076749031078610417893515832880093039455557945605649346606883860487943687854818800765766263211834173260459426371229760337754685207745099674816869397408603885808829586845514532043994189515199541661608600780291535181892789518942161533277512567034373299924243145226529625975550088550166851201931066619830126922404934603566775887014923570809023566597025229606338343480533006819359580742174883108606494540146766595144492849995020737524951237557026292145215383857454705613839231348972973228173578131570585208492684874984007565908370420164614450132190720770268348137697753813020185126750725149490974465718765186330765051572716555039574517838565354884847928646332805662108218480621634130248668612719882548548865383901686371064103905689652337555375765619798739865895376487070906126305624002831717000725068051274523595150914064871586400878548890026591761350058418421338689601294773047385376859270011767166253584203399877135774634771157299149925275361991848579288651962225275597076759129966088641198297145132598184196992486805703069226971397767733593224683425097296634010605671272221088491004567988555438210561882420128428102577164910315931022041930274847328305503482095456729965411091501005319416630263177780173830661090584347712727128050436378181493194740561811811752592873964626548424821265560392368433702958015960752070746307732749397615951901461151637354777320492370890066978048326661565172917872069964604695107341431124474434422210684487367176889797867819708207661273928067950284014638354932623171195806651807038195908738214827241653453903740627106012596884266151053541526589377359263136312597336287171046202542132059809477511606381280722906315439710135861141039937171977931669433056142187005106262893858294417874325664723699108496967518198647739470462508889426854597516487291161375715421821553127946797304742303793556089586989568369755618883215953713584884618850958293096640420462971183680261747462331476346303276360976052100995618729191327183197791207276630953018033168038619843210506252687615669588323340867306077156065635424196245791524489891118900603434974690950049626996012260931271864657256568898561334102617812634984964956720936885972002032241316002663019474938353405825909712650293343293267090087176498040604836774298180067704107631119290651007676745106892681448161785685882734984452755778625113913377043920264145050734622265200229775103258940401164622969919523545655768147254565436598784817736796625179566804341063430950164618623004431610995320166535153788577028894789415104090821579909436125297915292994827075786449427541493972987412038203141587795287747507052357442666614292761504191381864034483956679870815762121300104216966769865319886826791710792851853236924129912279887428594547279409225100155269923113807417379700412541381693486722634636731686801701801078914519096056774767003264048764029461836597977216339407582225935262652782097073833121760492892621167773050003315938523143681158812548970084820134276553129916521558740832775601284622398895809979203455611013828590115154054441118859703920970080954356537884010459133190932837878224398243711575300854136925500256255492392443929849120590901502644730000119254143160196806360030871148020512805577663073594768630481432575884430842919985927786358719918437519783481878927377980271902069589472413570442595066975361509233787526482440772258365606324640607697111598216410879155083364023072462388124724358306604573145069119057531052771758991841827264323859183464433680969305690047353600397986051167970858616731670885295351142315363091642452427954595113049850040873912460660090382675022525731986853382040699292131170410008351839392557932550436700373400449146698730671190479477101843535819322294221908861501347122612176506455187080709136031219485153860673162326107652665249752702198810646422681969702153346279546328071774065249446843034451961758832630220120911367912905769200036087940305803317258987086449070764744576231811167979120540320805016742771333739585563027979236115386125752871917096634231286094289439419532243653376650297930767118032915185941470660863683505620089494778985737576449453208980994677336191256382422746610079016034492643791243290616759478863407794831357533574700446604099259894005904862381064105707605448085732064583991197600811940052474004150850215556164215502519732851464448191105782661908496494507675621648844829878954942254618388606497899234576796483932073373221603074800775278771545635150539129911795389314924300386918989344831847426687876423607459476017873475520240998746110680494178800278359114527346035305231400840148554426653967712052162557581610575822676060649982922480797697026628948796608326071260050127498398142595700051149523747815478452460110968553223630031299970261120022464444107555211492633239832233900282840876042784424527266878110878623964085666069574412190297352170179466252901530234145690651200917337471002761644147341945712077832230291425691591287176567989391324523456056255916772521526409132311675227883994006481058009671748731347615822645901814190192485723345053087929914182099156245776494343256372818132360122916293276992645291708290762972905201336556399786256438220335577424349914949110752583436312895446550835134056959807550190046170359142415181340196733272865858499504483849922441558325255416797366444491796390248614614718682582513758760196549868188628337491591954080936033154560102739474777677067794859014878573318953553730114962771312004859148909349989599348124513602865130589163360320690257648932015099751138538868145987724041198403509489761363689428582711003484586526738403937819247138240741375141134615543481040905976301110679851894805484974979929547535032208477386650704671206192453800070273380812608419686641139654900354278892224710441583067640843679123029635229965629480795408497781715814926173032395590081232287176341408404923812788097982148681266164985720083896083791083162142096457151021156537472812685045240227442801604334430711194504627837731345433151765997650305409683785213455645384993946575531081902991310961076438140240331528112842207816107903579709608432427403964436274241223942875136908799683454841153537982967555775230582179674856709822995391072453112767516942498909136194968739252613158581536901824729326437993448988471241234695558270689306980611391313242413075296401771906697759207144674793206416792976577330654589681613991184108032153295899385752972963615785016714740728035961632094258539973644131598023380643050759027039200668986722585600842442358851035706905358985383972171462783572439364694943043770486034677714716441473301727827521776781016557324952436652325594958317979137521595869982766322301007827232566608149277142747855431507210572093151117892632720179168652128305050790726291816417874369875191206063261514099889565062005548424971358090685553313246220473102961517274160991793164856440509290298982406853390701041962701632166876780306290414980330657585895231093782758883013479998522787431791510217052106221260696663209533497489347643415869311143669862039584959052811374347396018177051344071549016784885966441965218841131987652841844886386244325493516584461831193741026400360807771051423884215551515183108362058276112475000885026500221566446947638117800369382791027408707418311541137757888979718102211037596168644213165057972817844651291839358340512195846892855964610685796389077369849441187483484676776106552368662294543081720603016385038541567193101257577883404649250792940069734572861396212909894817344633484130804129272708734770634269564290252285809593440269068509337433190640673580950438046179022732060120835444985677212343355465715632875552498200344075051478433690973269584234077271279432739167792374873612022939054699947393130259456491842689120110194473510582596609390423639370655407902344621311451543325904689969950712201612101812870974549851200498569554696519529313311225266657902369193188844835207201466558492804119051669312559605887192540555090975352758269696300802159445103554858229490964087409934202920778658037685882183597969456134999019118252843221959518542987836066124270893271696938984554923090853662442708938027262888763818634984186354310089690753582451965966525123267838174217923274525299407392381831224850373970131218416670913876543199185148344390974104086028999625999818337430526394568497396920142220268069579517371790018392252157244453969033120464334565600106887972365109236190831415369126533521754512965065413854094839434238704925510648866343104717818099241973686316244717365173029009519937419112374383005094388950017298531735230328863894595742503774582206028866358192770388675468822745741268182808960003166402616031752389385425155877808891710460537683103055966274451235387145767533930514502066613715363059994224055855596848752215096547219797775947618806512943563068696000191860984310035474690725466587885617744337720476172094046208730331973062893817833937200543424641092509412745459190687971270327652309659715198666214839226956697986396008443707336672059921252643942836324006890092863349978302128392626627631040769486682404709973447875884342585387826951820649535026277233113739479819378173291251536057721768899333958576123089690028452057209362256694108525595429192165968585411369855902598156945652685267104497372689895294404503145329714242635622969678142451051244568440071926964066851185067904022485398665590027812983231845890588925983178562048129562142198927656277959693198562908555803823076566777270970706038869491645988956125725705376585675953219033681066729271200709801977190849812724787629623660052191514326151788264497360596891825971290099709821945716612098763559952987957608687815022044540461169087153908199881513622125598419222410668583138793977983775155341794718411581523089500878458142148057370827499962864134607880283783455746223097461807097670839208478501863385485592628053784573517953134042334175836416937688078168908250275042056277254319244786255256190162665278112616261399786213725001241247111795306985861776870849431928223418607392839162096570792374282733452824571298632901880811902329438414913823044867260561556975697618156416592556865954569331157613766477022776719512202646162079131513549878117718446659762528746788407401334761030741136968794387702975099175064321710255398766738712083507307796046367036614194162391638627272996636428413043032465978363123303773638509285089629327934457631127341451111099407475512651843946238928891779469591529028051665146359237759235441684588357044178963813293196601189889873640667189724559816573722780603426639729013977483693013339598269939797223450693030331624115304484078696923654228203036668054124234383620487458122391907559614589016646851885771451244828022322099256318080495671230894930327152134709885380386234583460727786493254607560971505320825628385697993299262399161381077597098969228960401994696219398378264504166299599044759624852426515253072553935532727057921894833700091996693692052205471891270837237950085365651321297760621471189978091750471960861150919943165030957390901429247428905615901859794904798926860888436943927199382806731552505176789516497543622428996640106736271919703856039419282358060433352301275649103133849857758348405432337899387263466424428387318855868702122758174083646761041581471855820941619916454152570572761691477094863843508525659380676517842741836364321992723078897026313191192981002218532262409299763749992444765242553907383642378614027784228330432262447367024567533754728104444656096700833412735402387683379996565174452351782730550410142270433093252345222331297742004829613276500029473997887014816537747539865998433587722104612940259588630432614196196852981266114764483597511514146120936228540655219493886645259472125822091702120263552501351283303850795371173535523622326227875629272454799004987268166015630988600183469204362165605305394689432002740280824546330176443763377086188933021216959691140771272295048526820996508434632963606371611631658435132289005344327200290212148399673333216438919207331109392994101015341495447782727243741874757618573961614356487195965622271581160443829208060587141215352032738332325304671265251225078023062779993472474917416352415498520169089711968311706564260396033780222353995439863488435393015861069565087514093294454510852437605616432045151220167109084686128765779236484911588973899381486989190139878481751774004583260197933097466008766682201272452974277523114184123022125633387043842934115597986357514449380014007574519028712385465673171871667799262723442819125750531901818650540798788215516061990027279834894769268694148177184465009424743639728895134794266439272477993018479200604123689719654403635940289651446463373629744503658719822820293913257188429018004395471381633687318471637346635656249050310255586800922819958511724394463525790348042687768291394151092909838572051657182340786640810572880353599715951538200310876294123682485842160965984438693526296525965358102277142503613847138477724685638568573227673253523243395003017441598572705135721564239751003087972027072537678231625005057096013218189398214271743881161443451085880326220215822172888810980436110445266314116319859828979025307278804922838571824832295728011682528383808194836377987796605453679489984150802533866831370084370683858377080157213383702799031753095378101348034326000265070133728437515461297563604485803053308704663626847834648705394577960606343577403430093612119605704275577536375508969598622451371555594876688010813006156970123813594281488732484249885864831362513320597897146396349146903143966121904280872782633075867018353868441019784781168433995436095301366930763575288489487151126490599582090796850848788989130019038922761995114781398160515920204600794912723173594639107632781383016590960211865540647043869755804838829780100137036300479637311814979489429976948186675732410681005292710098896712167051137378825426974912601210922523784720733498459618125704937227351575354192086500186177657062056886170025571215694264565149266618516802882792978419626946698127024176657985065267440912318363535580619701184753680995342829770059419799143742886952897484084108003353770396281580643326595023759783157288225564499702348592975751234813306546985664958870269147623214736180102276672307235910934264679637558854066230809052529987823147110962844692187058952256957395997528989626430932635772250700556622908896144848357661609999539616561862758707874537786945858331348985908926460821151998577334227701404605314333187522771644527953781180519083430533191656402612881838198122466990435908825495226669683525634822375887093342326367805625120895519941254063829462950119511172009873673322121333078819390014294213946953172251770955494294938443438427622612523592213119115152512168061577835971086478667554367123750517771805295960261502693438434925147307481895641732551483757961968750084258609544375963104241103318083341818479009432949578547460778484130217002097511674733734210910331400764048815366913438973657982081029343436175131829738857894867902441451603175739208657317003360034544753309070906020305607706080974542427364721861388152060442649504112283323370539951184720234084359203376356008828731433526866007811122899630178519668181746348805061087866468179052937085803400846027937515187356462467516849031112322864417821217553376102546597371929689536053309479285159342803434277440185799898273783309824355451663605457265201710955356352129774770482798476913065330556719976879291245366246460936302135161065909277966027126750281383169567093609368642172794388430523814280096538848468494835468702866568885764214474656121495699577169973046155438728549059946074551175631502206895962218867705678506838630058926947865459782141345081995264977524937493071032582279757752632860997765008941604963062959611086526558347562122287036044806003830328005209087557312548408346561496282104715252210251687169420116444487963287587245931903240823980501280406366338399414562774887618506031377135014822644488156115340430689631172449627499954023570826607296724899529239160451905366936810923890429695662252529702014786101132926034633366993934580141570831390530786635607141268092984203181106044365465239699785497700852764075626823529219275172577288198498289588143506976851911948458374918258625133235800582975840889032229699788475164714646705635358661418765460180984215504671841563857795751002205637498568971735734891391845033222513128581693312048146846924809429159193137517748501073972845183517836212840516500294244387286858081855328446412067734825962389040667308051448792402397082756356362899335757084863740111590968824849330758569199283322921047365495234174670217108380360345018521052831641952210071331438399817786554011387049828513025221213050255932576623762459981557999209710510734408363050955589461289655925455040597692199595971954972060933870216602510332431589303642897584588031608887313733102449774821420523404022856676193826737396253050258262493811368071610509893589628852227198115146399570487150858654214728329073373576100743937449464661579341613093651618459630642342276517754271841803128188173521743217085802434300173354591035825898627773354895142211443820563745014275742735863852666861118400978572417997596633972908226051192949035531036117526603830320875782618764955181110261344077174661641019772946802724766634879868882575178065983296652645915248033222350879044358531857296610134099446050154973696611188380567850396495516299434682812381255369998323918578757094762536598160438400663301303410566392114131577084940517445875856381560357943940520025652310465288354110743608781710948501658725296943115035376036467311107968021752045601792653941879705884672028448932069267894803309589809897193380144259090952360463802913497846770995928682371570404102125241789908579877264225700257238703281534463611692741343215444961397607601110804281986300051297854380198566583622820032918291706701544374522879110355881215416534283084905572998330231519958053386442176999640865506426418691749411564731771986684762211295256512878615582259750838441117641975654959638137249009802144822928120259612509097248737631363774529972916646634952945188698729261699027301629132099660369541970175925233072047870534486544779399000813348974427396576183821198995761931755740967606446341930327157246686020388419114477005464223514310495659633499681899245427715464656328254854144023701916641358123746168857622801085599451703384390570707250550415239921305661593514370558279184906601629429502817785086766082307803997802922021663791864151377960737514864284505038871357654655120536895168302650656588361171356982088183489747551383780429435059224458961300775280280815280758624276532835805933560711394279061924554821212221006850582093698179537989947668725878519137335013041360081414250637608715857074068544767133441495069053153836414702918385994126838080168363956578810177330148863741828393983202149419955650061157844576953846764141305409021526829032950489820413369608155675747279603593476715413678274342527178980814551916742705817900650732390686950148839782173914809087175226666218532904084502383521269380206874538029457605530724040775554092898202981744708077072884380645418436450066742337216018509515140242094110120086576516478179377109506624475324933469216678998286268603238243199318952004239951400918015342036284822362286551904849376268609892686529254446078604974872365522423192029478338599033546484395418298081629672505808326213201461406487481256739858893637627555245999811129061105764945308613503602426407201015642728830616358796169522400647065197162133136035744952058483100145131952897006852441383956271103924321957836356368031144386159781796582271090917038970667532442142298167547945344254602528777018006065300272981271556021067664077857379850426141126284924022119405819504621122882608877794416188585884551994976415521396572377964484696985093845183256916406615229436808823377412348026382043394632755728831900181837138373009466738235836383721870227466469350758957279941550594935457754842792400596394161992409236260689429032229344138458795251864193727732415020496783439450613169637161278756981678213052860701374709407744512788858453142792745971593892296249943596179309454402030786187396302459572018465126575115457965118860018718834498649242184029710142140704433111141439843967188136943032018896803667201743947246671806706871677818556420054578002834436002838952249076828053219940188670358236566246567538565542232533726037018270903122549398932871045612868811551029276362524714743572011041957909405488050396453063146701353364864451045762582325386710061880802200286020443250094206452519182778653950485645042492378387774900912862777666345646961395727258174913535605551644998459394979534912036366787454349556316719797343991023885530860458095503396020850389783044146098113533166332727234089045189919154768717318077970811669443890990971392437339565032053665349399187122664857257678791630578603720884470944697548733081580334142921961383955504515673751320482088230295485774254158979903504845654279131013686400169314960227371099198246546481047230075489606313489625159514039990096190059356893616242299876335406315426410990954157371931614382555170444413759110049790132594949139339840617072154444122335278428557103109855742743916115578836763704663880613874865937218869045895510216049196210853462901805695632212855206943849934588523340042515937513782893678157319439874377644337151612333674201887433562594100224533068779019338740213490645384672310870407244425227687860146910821037099988391404202864160380060751022740231830271135232449303104330799233460124103375335011858205295170574902797358532529086766743867309130176585217003527319679967628968782488404663850673876028746469871355097164900589555582112437030236452268766853976825495288433218480947796552298770796082559139029300367001796848105623301190910887519480388672449827471139676834998503180255236388828837679368519135541552780844574154527651614577942437802019959429104369119856722554919888497633436283521009002316754578110938798998444725379350382033319689984472341998843593379904493505076126095210385988720478120212627286028477098516158175277381675351272512286903930096552093208560925448146728386467810489680698331583725181544812627153033274854188937573006745634256969298023147952469739330323567673995033883647579958116540013789848210553870975471812068531906318820808804060119500936532293393949394270412988625493982095418334720715058133787726886872100787703913018081139675405537677990233714073529217004793353941039216803118475827858996493979876859180293248603397742082910217092166334326801865757133741690316492480711975806861891653810835987878713547050987437079721149704528433886075230994221402593386247052390378369444602177986979671417777587002951225206557677215356751394399937952235018497198434791258873122396413026258018291956413462300963855264288807267612190413359954213137203992352617647235768795300322556226739795132166148165201078731839547694190897188174526841406982188036720971170874524954740726678500797923683111682782137564596991588540946642962306001773409114111901162631409385770592816304074447939731235908284882031225036817949669764225558903971436052815133452889399223406537426417322022108200482848635154832547614309266040195677907751905115910560660118673991161854630514613276467772344623950098789964806753386093592060915858561788969408926217258275606320691109247183863145840269357652690984065910801659136923491665406193996331578955862483658418677062624306444041243421620930650358090937658389267448199667681258830787813693343975967067059941189507063475605467280122472081174385684322384963220346318735352192673942749601262776491567099533907689676929663657274390737637167447325217109705857216288367581638198240953082475205374526142323778143814668810013399529693935368425727421644435047729004566154232272266601213577043849005788385644065408757835265993588638942248003734125770746364751121605988870508576508654273713117050422186546422640124494937646018534080702936529391113012157072002622686112654184761785527226437785430956576572278839380642849261712179788750997947717734696097353496234639565025860004566486616780344438243718066590854705722105092565855433245705367079833955798791478166184442452050225288370611301354114894435320846899720360059548868890705916911374411842458115300466717939489645998113172442665154964157813702137965024756285147560703320838033958543212811760719967836421144714652726408798307386631945203840557282015339594144900473094370708104730339482196809745084243276439720325900095554839260622955618757951661202206276880126326683176840602205496375634814627432718873015147554793592984225690614579260062288655571031494156585497206853253302421405040644818019869185196390442427802455729846245117902353882525842540107657218883760299059433065717727160710844937342408514687370261606640783853919662650977790612427146705815817409166945011496878866582047692889061651282909391671889543983731354445844549053373542732815932992304803497338788716412482055926572311736114745396934125997591837854129919071081752021811324533013765227449061755714491024716366472689225813121508154625253037755130526144587576432466704230937246278965408433428751594486886185418647201056830137036965640577038006991240150342245490884260929406545205478327007984431572865735056178737167846443144896919430634106244916116564634830208016877340639090202911327366524793938775857163703348379822570021118787084244313202990916981986799485271090233955442165280661590125604458412377929121251204895038076500821321198867947026490725117960959932635994335121469161819296203072317074988722110390761604827362230028455253158211946025526486357240653033745926074959144356813204944683910411879981876962102037788774519750183979978360351700865347248154717472923862343188531242911031187729786022090965398384607849329985747665694186987828978746764703853829943232999760004177199232079074753426570878974117342040510601382089131676385466811314689396243361570429304567851869669958843585486608049513810098694285259716628059809207403094085480592621976687932388605071085585913292741448846196130669335090795455519447108760093643687970152553523805389431418233507188920279899432956942553361032082271264492083972426504720896388744189461139752930911169725196423985464799066138302203919386028478677190434953998714478147101797393984821343223284209796115478222132847973506841597742110254231277677763293893280899288589594282394531208393415141265247292179024785557973771812171416452326306217909562057715480069538619239784866019036348590259239450807622844186900783987668771707809758886442853688513606420380867471149310704661083731279679403132184328240693477259233234887455429052501122728455960881100960944225556287351775980589357814204828002658217442382260460520119194648169592843928909039133100211734338807878493024535053233454170307256813671771129272180944096582154115952694051005733913465385017364071480107062575129436839646099287279088184767624037533877884133213292882347616323377988494208655475980053007771236134627515914482798979357127232314827624361993517275161934165156805341466245142914711404638357771744809278574458708706388731191967651696469436613622256785767469548179549361085661293760753715487225447774282701982500355908747457684940901432881415639285239396161024026939499949852290117889041815777557182769350258248122687835605992829609435555433295203814971524421080655932704072312307645866817516658449701471637638090716419589217369395220062065347461440454958098120919961075241055088985761544943307680537805436472027084635699325765232671237015612047462824453033110399899134364628661002450194583570922415378990901973141346921563081374494301762820176624615553227154301562409005088937835843415160159240934908250407084306012905020539158571380057207437859126925413393977853149532343639289245383739231313615423946594686819534515900013865159988371162427156606438614041938975030510944523431206017341601890586715435861163621593310267936187713612634096996066801080329475599557516649763307723745966832779580379909301331621113977515663143838369304162259997556490060732192324109069943284648582232677130386095618392277566517556832643659635355495163364576778187220859674676000678983301708126170818300896468811364192075069153412192487931173758393520826954516464667777641088477420913649793804958781682448758629652276416142002355071793565631211210144970947832432103848003769308325621906527032566010526115142294474433354201758571389006359864296363070791098312627920905132032037297794029714101527092821178716352665138060862723401967986288932956614117071491589721884029698546052207729806581460507868543932797980764616350871653201251468193239296309327252078686943843908651783349044497160301506425255934916850054328090097912918780423728304529218962884152229992363405568391117683209240477870711959658703257860115334751721856010487124562710498524227783005973510713077454918453224743894217158916171684353510779913067754100992062215645208388376702099313951337810073514967956498445153803719447870420377989852591945748246058985460640088864187277600714162478882019396265176643615909068485082409343946530138354386690455860951532462682992978941764913007935228376184527700650802670944929293288388851271227710578699088065422423756886253677871208352115255087749937483538310910663434201019084452204473143195648490634619875376637987401381991851539306915183957906202377199307224128493951493610612567913042327762148473316465610432843241978590926119198554879540368178356158516835039290753644333640430218609749621727776601694115124180139985168414861291142872375223819963619494880264485084697484674397652565164086969135978427904265152027088663483041336972529170664472661575261298408000603906093936903824233810573473594597755869110868811152492965619723744950901372951212225425153311591290044151515400067307247975287393472528517888422983056735876816703918471117480731946747322606969619324992971624559378789554438767878794943914944135704042179308186437164817893235781213409031523843490720560093804197308069817623402797980939217874515955920074989417806415131707458891413949121497912565674262651040173266956676288077257057754540123925001265857851911082035502210395307707173292958134410317540222812963505333300400479757090993965899638402987659799380548431114857909790980892677553947506916653625128108311696803945822126593974922402823787188038036326507836859242901300808413230208589220928758164444297342191579306266049094738160645631610196155296281981285536488974260769464318055752001905211591445168818066516545386528325512984997441487141770222667337865113065917868588879202413732560683033461445515176330026605221479289313466659934317454078075244735736077472280542660744732811298140996007779173255623722556431623481558802448808274824078510138360478169658216765926048289576645862118451786178817112527151363492688704401647937398967849608303113925031136719768003058118201085651759663305406942541168167159911373917983940876665021162932946463585902526154161714917024967638414091039517237497948367707759676734547685763785552611633281131113341054964600501914525352267060973057803628381323348944804689162983117682578721831321494739391421580604071424052371011388338290911191130368431925592420751604935692663291624401747184409545670534090325475673826307881065819445534489546422365830585359431009741198854476504705892135919923983994773230438830083452908937864295037636513188319517740824581538830931414861220936743465269328913074010373939199484840678417361231606068128047426755416016105060352874539899889981775122091572659706246824979791610840385190858353370976910059170726363037702990421963499700091486447075956590558297003619030364930166865628829273110558688432067067619587382104490026367897514163542238107039146565609712368862867180988389658455082941857509684730409235144640597353431619586906702172777739105783090681248529490063688277074501967436465965008860564250288107727160700425943556162413128283652715144406353440051705023885798246587981830504872708532600878145307978793413462240342283124036854993274273824017624566933869704026468338617036377544516019431554083402198713589938257938359579123961217395893279572877343055767456307192709804040776645806212052998216266141668617325075290468619313552921930816938242332678169327907308095687362136370086572541798901183399054303353229025676364127184340643702751141610220634634214531207322577547430618031922517982488643199666475772592738551474218911164025861845092341694381019866198627939483574234922371261753456408239042420505053005836754569173973933140454516098638757499177069153345001053326244955130591312972589719945990144224985544383486217371759781730253324460818679859931034693075565666239902753256723044263482842901717711681150537554433922189316994823674163269161009381425131664444850980168216360554558617296886476959375048758748538243210219806110034921156875692230720569531132431550527644301544505678389707889584764226487094619023806085859478437540803618094900592289636881426312206242205561336553727086662987088227887392976920134781233640300752789440605091556879978876141384839952356659064150361450741575240699191626425675978724946577225802056103628370785820440903100737860813044815246979986919645102802562629979355636667437068355083539003985670399442743968709612951299843084307000136588254644340068587161089067150583639862033350474614544239240128058633166512127272422836540036068838208820587410008178386333771733208103049681160676993497899803784853729600098764613589885911556779080631098405233165145887831602316087130734402634343881993619165245597887197022151321473461781836721528022048214184520388315091770807644984918526806085509141656787702966170801128129921803314503354500445558757692727613504953934613921605963681922826616604114218419818510795789146348373226871244642112757152849406115691914757830951299264592391869085020114718388780338236979805843244327547920025930401561647306870930411933312862828504647376386137847936757185261719702387475405344364864535224817549695687137512230631266904906733468891071067038277884641016167058493289455670753203659647096077984266769668245094786339109961432410016234989241110106776862275683617134807080225767750124523734319901433351114194441036958525435731959040191295302111625683294586113329472890490677643960727493993179675649111407864395330424738481726751255276047754228772572184154631006866821385850339654991157235081978038096127400385439597917588475045256953150269171990977276944632775056381949708630315624217331983689048837194709468928729408616784651694467923644289117881544239418884120581946933434746705265087426516209739846162201228250974603346907679076700839914193884756970282406658454517834627013083871576340109410606551666929106157138556543467132325403717877451268620007941727788781221744929063824001887032464097676773614157682815483127596083581336198235371579723441717731249273995534293962279455598720498227230548860340711143784670288726734045216045765182534917590179513200122750058454752755542252758332018930660303717283287857825748238784241330416458472005722134394330299293852984662926780519222690176658294855440401925196922139056223184048633428564063277170060890906342741818678622519860333197093576871024223920344366244852081337582325465122184041982957688630405512147865695365670577110815904729029678538037626664575803568952882325905655752532415285552833549086077462220623571764691659148493464181643518360077865118754724553797492940532934462337677807517050259056087762036310387509765406171553043533888344098528230837649152011209583566044112672905656346083582894494981813373236435064066349744619934907772326170677610817714610632923311665297774521833801580231441449455818478375236967340566831046036116860977056725479637748479328457351536229158719944367874188427908201953912317609184227319415115896187626275308739207437635339747162406215672165570728198740814857100854494573746918077096864535818560157233953648192923952016892206602120648895644195234721824484224347102557212757342079440096692139086538178348735838965204767268218497578382212837152322093137058159795805185969686300168978466819053508520875685190838483080156299574371811847192429325830063703775586485971872890838638409671961866748295901821472491719395525343703903202047970225230882057363771888516481591692514659950063136190510381592571590069272196857325114733302705428461070221984243451331370416773929601537878752082753881603497755621956529959261285485474521988080005457291071682623563038950968470271417599821248994125663691459129546914128608627312811399598966419295573901276622031991017698866952166716650303861572401738938914238456484294891785718607701329318422737890018925156861482768080942884959280212618080235835075501582010685172670353491032762546127201482569838072411305907153346422867820522696399264611308228201897668112302628836339750084592887279652455912166364873595861457863729390717318778146569677495858287402172647411360634169935734208953741877265481189791419457246362098654426516652225310077643405113727378968312207677533886865748794265119994486179629839613921323788577569994759722562189519631238601862133178577471624689173263544122424320283613990279483207433320335586686138581041553259140207583265376648233634388579475686589600833185328135844783946552700582340575329376190749544606031837049175668609062667508515978367476011254884787032185745098719893702735977043770758978405058892143443491540395524638335174210415495829160255968504587981941209736669906095500384204294426960185571306872109490010163417083882710509574532679467948675167021240584668686804298369515671408805786550657539303762784956881850748266334390292312500392260088589593618233462458306471524265696341113376955779439681987872153551626542920232018382169766391801447377158689565336143615484041409951693649377486427510168012325546123639255100318514763609779732549442175559509752482782303735861279759066709239374740922768475025728471146477562660570219004269637824694721095402788825023961074009384027320167197938403228452640755533743976114411017455541294109321147347433729316472733963514000352804627284732772025284387789537472401097128995715489378949888201595458960648059297909930227218872625634671968727699090003095362656572899453177042821325175058632543439403016563378342417771453015923807639636620055613520771533661177320143487072749536405908434834268147303528963144834666386835948280249185974965383233514217052764651505244469278538732401803901750656914709794309344043467930859270256558487160124427622693576892873494706477504874352859646585478424992614041775149063885367307160656586112501016507606719375487296171994475583338362071451903579279296932727875188449573986364753900335808336984792130157500944443372591253723435964004995730714028329467325444223601580751687111832067765899034584268486084867726238422190181313813172092361989690713627833828479009910479243745340580550549892566712304743076785751460714935075287858260000273651285937830219854928828130181533543428618956349998031940166279292033670808649188604145382285583647127821838717099283343734409054267782427139804032262203159277005899154785803665856023806710638671252470846806435780277811429265810316035591604338350858945524291797976333910851453616827237199807020167003685520821028878280744319364558173471497726431275368150729110452399947806119536708451486840003075525178209318445991124703370001654625878907517222989438822309469810746089181388551214773396654684283318289333790364404344654975454560778900195741779795824876021039704175041450524473395109424635025483605070860731650128362332171467912550697292969429455644110249657810872287004656904424264205237403061023267618718440596631604227757553119324481948510594213930712968836701722296440924596886193981300476369876009517538153426247924484917265565624699194665027942509849942630740525665242361740680878123907132885169213506649071364638220865082284932509904793257755001248605236376419618109038923357110220991511915679266841263169293705406861835645598834230951750731143604700315503546014449894216944707134615661414341079529282016645433117322880583904536532676986720905481579077359227662122727211546564672340363320456150202685938109347708676972647208513106351773810827174887401290229641795483847934668528819543657276790812289721040833072935228539973329049691598582426033821714769298048281958162161369155752048387000302877503473848663699287436677845227452591704869018475829301229537986633878720921810348961848780647398840978484062840240639892879177763648130189948884347864745947146319296437854102355220644903750393533741280183106206420049196118820676925203114946111393621605500191326249325977221979233289956681778555020349280854561724056312336905326596317117121768829742170933957197418099352589467885188147519730490068183636807900182660698884033681604154164349295121965581325145472802867770587435757333680355918241481294497587762463796145962106164354136551039250099568074092471023350811650892048906034427923355907522303353027843675755352734034406572340973102180275120877840127773351923285049508954306697702951774010918778894031343710114666257853615807524469089904753109519071397621576180176501431594647878967157283974533779152734643252376602687977256444675812240390897190244338048694671469017306046859633178948105422900571085288430534750312047998000406710431332368218053946322752811498426349735700307743176278018808033451585692531897531081228496323398942547283712621133249108015459056577957096885398367539038815250009330601842014745754003259115425135797870608237846763332919468432458639740829218361908224770594987728839782349603666021281360285305985728986450650722844440084196987805696273869476511315434182762937484408671279321541723401943162118651906550735255885993336968081816233404114570398868671014367489158026508548774136526499660105445668492118048534551125226647161135085378240875577918751177449713272489171757388929112189349235304662739483851511348521026330576930846838651496874289825937173663805864798771581015039405104916489916866192250293708939277988663852329284256892876239048316280407282610987773077713150141575709125547809219244123472783442346096183734789419636175311250577625907464583210889645734784344397399930650668281163431376702269830070489535301968361083058400108524631966748002113659872237371777939022649475769265460864301329075875676353200489608153541350649238873098612015073030881638619995563779321655577409572655492440729058476469833223297416456510587328069432756988125270317283944005429345361927245248726539992009491793843358470038552678928957682065904275032084217319796295338496390895663857970335833703295747342137351221302423937406768820578620568759568641691434773338085238464574237655394002699628530745445841912550191160712580434218070737195412815773592191490012588819466612195749763148253452825027730490471684949991552166755496534263487449416185263005279419950125347390314696452150466113611620747144364052178242961520500967412991339035373271916597916373295955134667586300709002552456749849276380447286536932625345146216152038494760740875793620078801387381439477294076577936590484408419790311130260106100843116491705937503376965870624911658204441248149569704796005724633397260253691369070799279989204052533879072082884079466907624849922159307046613605888687633124224854578692518717905865493226296760558366933580152514662472224453072857182391226092247007780779605042128035687416619627586353482174739265993504564190417811866888992582766353082628608724691985204678699925379256176383983663781268953266956869537038802559908717083442538203816034684304057097770130482204713104406441114983263965372719831817412077605947475836605551346807443141313661766525383491880399581609772215026415291510632894120105329731231713288479064342640572473939515122077339352301182345447347791353101035094302980362617205134239942148722322413593912178893427270525675752385904013836542936126919289517162498847412876475367356205399061475296936816510066504490259147894519726985438856085863367073534432662074514264720876127488012679408745106598135594239294758748810805223506960857139474977057500594483360748485664641950770607042087299705821135299539670954224224173752932775458712298068902556858515464122031180642419047657988900355293502252643426269547672857388741909660720733530580351613970918112626350170025916034174293458531929321386258226109818200533709218426788795288791146012655807327813971715786168414577659776248306375439431623305800028873206537929070371744901738758827167238006614186868287795002908384151518520501199584071173720724135406779285866305282177958231527880432274888605192655546206475452533326119921701429892210412637853852824729890817726416851073856437727086800011007644960502117807220464399740152007463232664497822901358267040899056693181123145875946128909201718369382263686798285632541322722401078974579407413123486025199207471035961434085069397630304919292061528312917776523304219389681822839305803149597404715277072727117867326507213322611560322190721235452527660432060846802864656994364894116149480717357840743941834260402628074288081887216609115862101924917697970470394930905469671902946662767802059977849711694056434590429453947228559873735989109634970877571750047719494559206678528663332864062256758839072819763611000722610585704353130767888875840569715785346625323213345531938105239558411565165585228890311981457285962467570071785217685979476278504734160726530976150522639366407161830886662487939427275766428519168836401575404541128561639650269095155904933730669557962241670907869441993049904565632440098323417555248766955706590672513126067992015729559898116386635485500702089969114884071686124057296657228466418786103426984403931418271055598199363137745525449923454648815830043466413897295425094491873733767667623285032671921152231173799862958972278947743397814198634300065386896700883559751971554047092453469155591970112019455675903878003908392647186836451064017862542529414082009774026507939155812736613920408849649013521887181301299879364954417598033040984268662292039854227740923111817424960858401423642234908504950873573806370371751095154011383201048936943513416207482036483827223235879298525045949968990584632880706707006714603050607944414203344645027140492609501227559710995356655081569438804645258975222327050079256558814745508453299526927493043929325921780352032724421503126315073330107892496321003970325327274562109382976064090583851376475568627930329467401795692985199024802829340441539656747479501772612732686053963747573623622128435094243427953145574426871917420211898431974665498981090663696533711251910248859179405198575889835386722444909544398940757537432631286373822941372773589556392280993411103121411469419293002679769752694232234455086006371753825487716063464818416763997340295463662157300638775239160932598891680355915199374507335815788777920202571104038652364770439935041041167885530061140159387764591978678634461674899824535648071106803171737295357290487795041706488697332216963920672733026223053964642024833326495491832062182428526045673631022885587485913082230939640293250538497695850545009769659596688068638610755060818778321817717642846229878667237360599584328624849715720813632517472172695077158496583276988977345289340760310455819440508797877105532485385881747756683303118910939697137535238794315086710077717409968614295209210547952520861853531074283556114572734387837589830341450559467169308132316560606557530165961797202650692840285762164973539850013853467892252464066337456352983838079030007402825280276087457043463943436756785888546013997337017463057761434306263766585177372402828513820421059704003836931793172299035508364522431431411293497873165508908783469675851075009467982349659722558231690838533119235805008489060948630845791352602703734200553844193675694609084081674667779525721982740471828792226135845054399243461031353758993757538664569997223141324036151088710283782519330495824328073524231129018870908761114855438753552696380135355467281013631996778405378997458969799685737377550171287790016414720305213941104402821370643982301810783233804583648610785529550867574268138650422203677912397267445044258781684374640081245229329408273543435331397199622998556881956594955243829354178425609029990937811012629704128542572783731674657685905257391769534437280945141640545563042503762612545667406754509666761648143311994006134530752524889662029182667628491072540437731748379122757947135271996901089882873891634151995852594289155154900865703280397649076692186991580186556872070447332746540372364803525766909514638602862376267322225664973291766536758849693159142740104238108153399393701902829593338915864623881596193980200947693118568999842057821932001364753733999815255148996249423236725330195083830282517034097146388202981585103487705675676190788975942491341421952726588704866684342625071939644446280565016680987524329950922660476702019976721687294379081233431209162562508547391283433111963602242600713521439830529445353478378195652536823487709822188848536455433444711361431967749305394364414732895283007748736756318333341242515333313373342492063143862824391365768680998471650707037737846723973404602195796414846168973387287829447323317337028039840447224643837497096855838515069993501390801067443036752250067343416752633537971686230570779123618905232931106571375236584318593561378606406430835472096731059437027452333140564559943397483487562717254936534455189286921277332564546931996205448170237887875358797633591082331118522386537958196800950248178672960082036300288574481554284223976261916817901545539896100852278953681080005971112010224094769596171046397598321440330355867016889328561288462421529638390742848569805212769158924239556213902410096301752308032730643114964265322100312242316203663896908180045581158043237219031766389903728704931771962930196316544831001521102475050463011719006030616201539803857679582956429040107376337940183293602666170915151041505040585957882692578506777593866541257260243113728726154711260999825488323590313200355497226856768725259049671946550073439902971164325898489425936738478816595423673164987428119766572890521124270346021149505470596092613553141368180502265134131195214699214575160360134459395565126862747253456857191697552906486176041604574168966297526919573359085317644352024454044189927889884559055656147313004760873542564344204892218131838942036906846811824260041105870832759929747785876377889317523704525384008576357942739252236809584680842185922810147915572464820389399821097835212200563435879288026482798506262107525731249772809032197942528220714486051960994630979683481216529923855851096946253540682124703572961596956647286931812073974387325523286445019038350926011490843422704371500704066891983249969711383125996377399415099384759535378702213188905389328179097279492113096243871136578676042162115425199405470621051393853459931262377419099565471438903657245440185794480342927362354061550483991097675005755188042225958323808764052578848969402154452222623298382643532890179615674289547204651303792111335251525670090257778415806289591655774482000143236096559282384038926754723757455488886927948266109300856876324490187426586160493615617350967838491207421536525137827026643914172151795396621248169991764489248984866670749977197440901857596917849719387457614252236707322836438821508848054507531332331773560888132988650496595106435478818494260021860094586614811736078625471019039953973745457132176403947362346023036379105230938535002825663886896766896168441108344246689236375730789239773717993907837276593718141287021918717054949638511762097358211569759928596605781744042961052336164679903425631948007965104439366373417699451125926975729805344405085252229743256237066939305907796334744559328497051512454207197613589587463895410217757006519090280774009460887956829695298619031742442961169052172383704264509854693776893561634563573009970808472811290680918431309800345438802209750152497361658798320504143988184807731133922773448152913676571583352002635604120261009919791273495089844330280000434778260163760630890726800351510259459090538961126542781659589297653891579070053138580437993464042570883383892526721681051102035169323956753573884431411163005878092005527775718199463669607200271476431799226126387447143364164531189963924714870593779411682398900116635078665988726932571213005002831492217280002437084851648069670646149233059628511341920916304693780442563930975455194124757139189183177781254684263152685525929372516019980496905088896463899795660366575065280418991192904104048651140884394159998359554555778678251446836851326022954085737754846098432967663106873180430041295796741881922940765082541450682561402317964097691450008464153075764485515444728291448654972144740993280338078053007444160241744216113257001288656365453337018436554469085944200936701538808937862242798920899327569927861182481620164575825436105203128966742874158207218604999642676545442696157474715231363225390933079551519650746952420897239579679880249093091882992555659567622720752320890485925735594162197420631247908767276451666610096232866359878134953954232300261616695746260635782159140391814558556087059132083044914856617207991361796135052103771020723177490527665522882807136018162961096288943772503242640228760768832378611268600466638794892243544996907546065525576176746229569943274048029475446290234845085752817929178663565273227471706072945825854777536315022823517190651440125099477879190197773206640932513926471817783832978901617634633431958516756583920211555523549871884086828063452445193228515381407995955404369133217424561650887822704793339808325903457132270041108199813454729395159255327120982449184980094875195218966837436611805315124988666180680382074303118383456892336341808353063067605759198467344761232868020319102334703127675075780384301794434853455789009897195034712489151873619250591481920249467808064872111936616793600711032445816893856698383382535117325442844462037714508522123154606419045155657345517892658615336586016959140931647681972934172516216187948223107216934125017679969297610985421882288706458992241249240714143996736177398960772155772969425445654871547429417603839161614422383069214832188397765378408611317601952103973684282125937159993893223305273259445555922813594960137336904256403063359623159527767365253918383639022370220329317458194946940905864107849130669254881813714600058541198376188486397592562815016011689474435846257339232707321888897313445966262400989853561523991439317847092511597989665721946628852625444993014787101931428024479405403429077211400735762715063265859350384288131461075152380695258701964103256902243873677322510932179323008711838099882084738816530968056083629070638110876076288178549435677190646914305742340090641616000695786149404832357080492808710723322017877016801985671541676720259395063246140098146933974797119403339057517085535346705031870254241647633219758070123905880280118754815802068951723418579609908319057662678852292797283882055658287977772824868298387337678424098561655651328863456860964872814225091748572194848578809020092351072508244410646131988817133648991350065431693452289258401184872414859699470263045245047126422088642742971892011142319153459807819532232776050223405402351129021425155230312710476156610383493651761640945529398089661360791522330727852005082179315703444173254218041515914056229458947649396165293256323007281537872799358314995435215553622045605514502509081268352882274143875360143543831398323385089994081552388661460275751932617363428890975689937088387249723471442617382209485451876391165376886391249459864189308064117347860474363581850957147493525983653078632560406273696870071035990574404760439871110288988229642855934866120987887952064616179129611037414343623441069914794744315897100359163649968480066508454923927836212320079509967216052693099157455533277166372237600810594324545109976057985869971396675435330283713468132911040570596640740761086192381022961115266733762635902343502623834941776752998475005688799275709064987147351864646865739459191994319385435741447508545690571033206825252834136430908197232521686927364201451939399494710423621278000872102033718868531589479434127748140304237260636444017847331675763207966867512601908251637610181361604949851656854929790459898060347269526660833965231238161782510624826188805239141824550703301366485627397468794959060706897622206502747270902480050016482923287246717122728022939575193472029128760512344221481007172262374468038589458367712289966922907220983834478761079571690956284283892287365497124164439619843069328916257902806964055369399933372244618615896867342049528428547988837154598886683881309936510938885802355965348216824169050286469348326494737510084000696257046304783205361934531142772696951949194485154753226882101496577006106033284419461472568437327736050580987793603390307715637463467507204786380088588291431400139697380843000197674370084351524769128622723960188718930594436645353063859840007952473114535664818076278747715706295881956019181073308559725544089709883967734985987461273924207283559066042112641838529865565665460419747860579710676919192373739438806910876842959658619278519046705255682406292974141901904968941870777265760461666924210691954858488531408413367105397378027263053504299150775101638974443271503756958399140565673293262022976294327617123363491862707321677902729096268916302214159133543904130648946569172355768938517340471819866136699570531839048063797751967775379943505751750233819478496942434309755765469009904178166661419018579043491641183325803446576781106345484088966507927249692735492459055482788332487601935367017536892935838979390491240415358470766555632998942246111677317498847880217135998583363394737823830625735080149094875362340853718269834910635889101474355605174092038594839638263495191695100451605736722681889354709279430311931370587113071560346055851807004174275864315267664059116724469874029492167513796521194218171401853718785835509378813642234533066857495429953099367381007213041502382627754629183697393982717112607924423487896110395431325634608389645765627022242168224838844354624378957943445630387882452662851524764954526531483606072835996050966129662326570024412774587803230548959354596442297367009352981213619789871842953319616265339724728241674876402323614156473734084289644532548167831705962237253710047965625797832352045016819477576144584599500377006871886041209005262056354598460177182428892591117364561463445569950311449577210974504852967549614427955210520531331583415016578081434899395327101865907241807882979847796695996856194236746606795058946743155640966489735934169804668548237656403903530046402283949356616765558787554412734051402990648961858996391819625774391709834268098671929405581042338579427865379345526926031451299570607405340497690973096973903384018263377422430428795529043116376391815905963119855541668721208663442573538564266193558578130955510491695236062346208028111083108697079570533455506225084894433773739330655249752793165805741975355772961316689079405572993651260872021558717553061943968415740416651331921564844758642766155476755112245702410319751487156134444062611476657794099822099822303763124091602787961458727797840752636897378961802780928026479572569720287991650142934894150610351529599589366794000440661854447705773676262730690312559261607939770414755757449642220411433226371457646386237615580491887451479571370555483751224407853743902236294439797671349517688701040382668880822945059016270296090942750509513009747705940273219775622143342003742913988256459802251789959603068618163670863646861150017762915839223803341206062079524441431769879237368739569371643103301170184098077655901756330982987445814149930522678036216136826799917829345661129312469755590444879807773663305463165568251541796301422701504319208629959213238825967756078459680884762935096015023624566080494518477618591350535643123841590388094337813835116621319566531415552581701715670124352373792814089655270408997235929141754885412666970697449640855105966983309583867766948128006454911039414255874174801942185788164764174717871144845684520424637563941802568545059793253131796750921224559055546165284775201783696837935866536691346350631302768856860670585168431946596766422704191882236644105891541991317179814037977434384947714034739019311397082796190098636131444895836166304763965123622352278293997356824664811070659938587120938139645704454950705892161867902173216920324930323776606971043266582004845859676765642181192736748405297981587022341284119736027334840326189205220400531935942058323821860135427516879773911010685105842892205249933910075955107397288974782005686206856152400032587255460044640040413474112526955805043019151344646624913412106289185764480702788161787119007166006716035671983953614192625859064241104994661019341908166003901617258354875847412851557325065487301785412969447204064422239718386844683611037732553005410307583517091409757163966050404321693686942713649948141831856777284485187024375044933242503442170051670810719139388271904389937729344016823620806595611579591422900156362478778404338728680612313520473547791231473528603428194432050674759704758883865580617892108868517438831189018451253027067915423449421580911121217078889207272567277904998082522418748509070022804227079309102109322960647858240300735473625840626806193917222242631144763356834954980294281619597934302670955692625808601554498229030252951338968758844099266989722708623371544600911500908218190487244792234333194425317373856409888408404986798423385857338904810585002657815622363410568322336044104254042030119246289302998313827030910348939162663095418746929142891371339317594167848542504863065260482519070650261537823938780088311336085065421644205435882047415462550370564671355982970083569423654571494598359184738736506397423081611673891819159986687350416754727577384291619813760091410787312837713691757651069980891875695104438331703869812393103785003065639023158766383896570337438882961729752080822935846420320259500367452465764033528502612022338518722838684688754482513142648969259164477671124550031810898576854244496482487517906015964638800628980506989391649452127151343315123525825625474569772488671292829440743814237318504111009874048591715806900917429410737813383728070915737460712949390957507849511148146925967527692655251096852154754000533203471807752046413350491629453073931150038742473155458195980187473281525350014188967352628169283936514875749992332856952932482263349686756478901603774092811255706894634184832206036678106984037012421120364842472432371917960852685459662009031985223083196912382172363182392052937343064918336513490090289351930058037469584946738874618347799343552476400950611444937922433327231739302053656159354249589847655877431214672082315565240119099012567444694497368354809218089111833287442887129110624857379906764943853997336159823934377273265140807729571688375910923572944366331681942284944247346378053213871820020067801633312183747189935996397644281469268712477212924129705479511551102724059718194978471521923270224582742259017465439156858538141992239938114779720247255506486196256732625947825607765010389908991525879829339098290481512710568962361710628037301203140329051194324261792833702205558227348617571604577102266836527118222060724194856767949718556132778906344180784979627190019368080608635136534165139503573121770654473765294527455508765118735528266718332867038839642029424824453332439062313540917363959594111347519577463235283079047288419640335887447566695217370268788419129713421068619879604262549905588325530567914954789831502074486412881346912700251937404256970553599622110466478183994106194088486242172639305766371508660423388468817942295057412352813247327842246026906905962260791405784380510123596128490889640241174393938413239423974046172255628821280651992216906582278428202865884106100555789866690027479808198374669349162265401301392590521499952719505255377827082246694386034976144897036001477962066774012955357538889075479698909661137157097816115586254437814057689073244220150553120651820813398541497794516334390455257366249401294237416102906555889660877397500788233466094399214508925671645521924327160295620991651371704902582483258978319812532723338698813373806634437019993995873319269385040107634359963426021455817173267131020204768464047524739525539318463114581139708842354060605361051958061237011643218098802747911629787521198103232893093040361379271358225329369265551095942458616284928659143015953198783702619603998557253062801624920337061028438126416662597615745043822747670337120577478589816776030562041367415669495400253666242989209169610326091473000387686111406099893276509354739382019876098035542247679505990715540770328344652079569301491033607056678169696256673702592878554238741155509225255172561733556125109712134248238222888248585817571804041961899640067585970851464214009956411537912706010780459604651097862708823192547757753522404672229001030134192089276300354581382138950312554028424645175435310612794430403317406660591716566878147956749488558743689720601375563779656669942797427590903685630711823322456120443618810924699483889916211261394502120429715117549830277245967489180933366037291777451982159929394467255083723284141595188018162841307507193489104777483339034380161527388848434914771111962175221898283593863219547811566181556619763071002053165165845294791388679470936701587869456508487364826893152131819300018878946536491275817694461908064673957198461806277790614661508367741304355029575105025433971306577822645404884645123755141928571733437721022317698078929184572502146198918415915063841489735052096441333582850114483028075379711104776033731491865383202690589526100761586279646682464820076435101492304911227976253179057779128136816474168918782493821998452224185191580469936875019643306812200204320313936022629174832416662641367775732342532330049529114402454349002048376987746466749392375408106185222112315147243324368786348313717866448522522532408771905609697768404164063692730329425859625204910630146442435537857021912052373775899051353937075597763369659361837773498813966930112134888186073281663116269179172925376529915465938497005657238123246358088431053814646568913037619902411778060574190989823731431322730879551351391505183263808314698053728436877921147403795764115435360662033435429083581427728713610260352572063916524354919240438149741865055733612201791744875735837451963725202849448989774729777692120988737633695672923583283248765712477305442886418470310809924954679712084756760044597394877918509920413641626937406007166565721283449420453634379501680889598142336211926897512330700361739731869963977866125394325852169219708486881366270777866695386963437955688336401631288936448830527208842387942936533139519721907295652073081075874193108533378052930000505967196781088155957141166532511924971029800850198967266370276159060189773731562541686709317424688184914615244305951585419390117215614118756088211817405803522065011654871075642958936240786237485297921939565809189344341067823494518552303858513280203261139868051055746763162892757928913211179288754403325628286669178428901776655405818905365292884746150773084328780308930765574631786441469511612797977229591961577975103189707904141356605181710276767470329133574690035072593759078968383252801469691418964102272661294538611820949097819916354016905317284866397796818523055973977478770752847148943521737360502057762218041226661993912554295989781496294090902300479450725358252809001203136979059964243003663208583949828211388621774979999373061791138811845791046855763044674550197932911780400583299927571574784818106698306934156665496464016732325843443545905943928448174254940582767097650314039371616377520186169307002054927414121418073657403625118753363279192468506042878480328851265194266360802784466623451908022481011462642072752953981946416527003688555142094232168262969679805678773879532578955296954662762302613587232046289287626526174009872009191723520750406411679359686989444716968506598948167359448552791455292237597952264417790006144079062015144826704849419763102904235232913274985698593250521469070184451577279140045942229827673472014547827632125217101279926636161221784999654189934343469463488182223675335612043102811956957842606803321166669202789004611215777307272869871185582014492922137669671806923614137636504276324085868425550646256913528541309436115056188342328253215825619428230911412447309656384970879686544421647586707704538041675327415720440003034977686384886270506694045031759590926312173146081014913889606957482256282318909623942556714013778609482223668260228584096082733061854232382941459717017485831681355023198384732182891741932388190483082617158697559280909682909039166285067338638557635032887312911146428529879273369907499158657929226872200109142050051020152142094194062074875775711638434866477317538339697830151264362376442345920654983022715813581083267612366012211693268531252154983458288637312573105190097246511401559793509233670433709449196479186035560192871326534194207563175593750580832283663686158195068063820205001003716873989960346134393590499810741949226752564026642241209952263211033467529434616977156737912997858668216395701070392004841011932030682461560185547946455140524738019436836943263385233005147550363998789220170571944094559202499366955885981370228825359294066649770475685748585547020395202640114870992086286506634114604740188622887264831785569963103302127675246912558527286543159937391759976602103370983487566403897724195357004658704448675012470498653647160901558994491717122445510984859104594055057987430364070332692632217792314771850175417969044142059094138613654994583532358687729333534917825083138390802838531530289219978092395173282556492020547636919900947397815365023088717633146336221743442870547302168345518510356263618278938265675958707770259866787110394236336409809865272812570079076398154774799349959321768674499178560165075930910614744407479474433990667064905565297695215466366631207002330543464426348111080965342581423774989989918894475972008728241429686643705797074656529157411993928042314281151741087634717309340832272746818585362540053215881146185915681920598467060263007787507201251295536780270817130554209267969216760737329290288329082257348635318389439732152980074411912274922166079887869935919885316231234823530504547253406030837326809942214007570913950271747360668995278142833220131873035007402956628156393515805123577183011911586460828820227463320374177441956407121127204635224444236745880165037741115225041388103753706709072939633748142234246719462858870930121800642391713540978788964847800659151231372939791755262808667093647936507143675666182539437080304227713680886358406728667969634791095838843552348836264850823969939151742693991150915374106318346463941033699621463735411348201572015878471112711056015855942809173629149936416194367781842597657129675786451536499200126851288499545364015370829508995223670865263214298734491968705743635235464241793590374969894810490781973402429360157841490301240384020090090587464788660575430494194015600169672456495487083108146029829718570737465269436648135475039958812147211943005816582988397892500855759637241917401461243870457407426469377122767843527257756816738161485137579083869720129964256752968365623572034777130621794143110117195033081124511004582053168387714233824663378269760620242851821394530463522500024135821671828420310876166355217019495852445790580961649286455268288946720012467309209294127855562068871304340871528352418515069693176685005589102782531299591283505379435042407752781770026486605929806708389074974366963764748190736147625109698919605936147224475888354022002665558385018085157864212447214163470633644405561019824005085370151385475767419277189910539776102091051204107024443519034082466605626754560325815080042240233362213997879074803009290208683195023128477132183805155653716032561401357900025001969767301742978034364989978801401185124120596360107547623612936508150740717868270813308981666869864692084144951800512757903620515241219746631728770194431154414520339104769679922381572884148199183907361154859981320798179785646263652787212951410427954384005560901816100523521580204258375686856836612098422766728240171367833926553580299954077754012753892829460230231261100968657617193597168012474746033240921259737268306961716617367500892592382888986869680281578386550835677287913212188547578023790801077263622159142145362959907363271779570016767970208864661744273618826413608635961090359269303031738323247529683860000390708097363058161679170006533332563575275231179195492650189834442561427031294441472510912437646209084343730632213937410657787524715330649576366462615280538719076082793745963395319853053720767605056521949099910778473168644949465436567573317173721450890479925287071275892988973650450023409393573574711502959412149434991807587533682907749221152241701610891498303422129530000771807412585687431069665165488680960749082998657555203813126239632316450325790135899999475370628417355646853807780414009231741286321888737610239990680697699996019151896040842990449980319980399081679825775558698146904159734900787433831609920710814581149217565914051595021150535382745111447380621260027567165441877656981619966725091502807457443220909669529308000378984108928689803203252638363330515257030876335585867353471964753676645392137325661610084349130527302381148171237351580667175426643875766764260410071325242257763810577602653929630329837362484472381048328374684513632246091910860009554269341030957090856346945955040586051204486218832587579703670509177576246584979879146050951500243641315893140401759893053368173332594739699326663934465481230938091372138074211821802897603788706929963442932332954269440319569495634817183212381894068217962224307906701979376245150280355117586256184273176132182843293734964713497886656586117069477787097092968749632505298418371628626895591676493201760035150145004385821422705907959978110789638549526633147671063320725308754430651959682562816446603253866684456063022937042306255521225047085339252630740454710070560905630226400207159071001542325218136604063819588797890868636881516719627052769927117600040304588404297603402858820164090129151858001089126411342700871993146569169817469851050553818418627560235137452377859817032182612050056855931455675461535485274652291884813697855532521987180330177934340142378243641457113515262986877498152959281764815852658837563900049622216121171278246521910913277218357231372872150181336294623133291380658835799310935734994442770521779284302863812431402474689050615061227602316303683201434586763816046307978649057594863601120851323532896713818850316192831845904284009173599875681313697342459549310701271457376362231407769117569546909420522886461334613180432065512116569253938064444732153303255162304801591166277442239257039373310100303404618297933501332223307724639539591499453283704184380921022150724006101444040596838285075610759569324350426955390296716211948532711781315922833981697859610783209521002866304141648792797130278671690937856696544207702974968299471194149514676849987435465803633110614700014593816927949036917339808202723976123486520724759507034788261042493681998123863016665688132974811415160159692337841438487715654525543007850142572517276551201062960607780069369563994298713682865686826349826605620470268346213054907422053286942847186071407546115483782465381380762802513036782754752587594754714141366774949068805709346046191996969607063782213435192265023796923946353933027557828558970714257769981466576749788728195001560974739467529341309350496850708861968177308144728156944847216669221964228533569407158332071148978146134676915373292929690337263798587719696414537047116029199772288429604320476071620534680270935436099256194862377236789426994347545756007664437973317052553160081877449920754720312647008385780217906243277991387641452643283454803034181259212308420240728019554999440000316036410269424275954932503799701147614174704547218363307306297558764589638139032750039851983204458973364628922862015839571961798299536110470255093228190157548556498363347195660327227753388780399090748519048942251021583077213768581819334003481500403471053770781945642548032849293565344722801192732151244428440412908683260928623110414448221752554759539073654444185416179999048728219482453940153074448998055472146091840079107641461660365060457197581465684297740100449870364284106347261368159199669239077833729148169148773225902773836670645669278941091057241122251680400868470028724113795771149243570014312975629887243533603009016966029855642781396087274780736455918979772895776928255489297794579104471661230107590697240691190290247652370274020512834264483230433232975143515351441520024982724747891293587335677870627904110564214980020740120417369778533522394999452084908371062449576930780605070881811173262499630378754620177965268853542424912748458165640880760114188375655584238881659383318856186787059290311785478048312175145542397905985238874472842758151482255480634751393690103054924030343309269527475753360138270805137369253817684624817653893295352367939478860583159897414251333573401012015019528544708499020859370499763549075390571430764210780665737336005688702115222651340206348110313257076597218036395069639849223826073693885418199144597693939315461245408166100886040897359927697943261646798629820272129759500601748531918084819935240406043192580154872655654922584820598354924641577822883737315102956323597523987349830616471199510912342812279809624461453689662874276413577317354805981033989809481864711193999047723314105232735225037332372570244290358588753078557764174038982044271640311934717862965542981018466012215967420854024996463827823247212183532789863027150162125996179017314559518954809620360351839099210178029704212492137626225012619753151948897238805692797982995688744074550181100491922614669205244378870696766977098867197111334967212140659716687462959519317522464551777882178345593846054014423617944878614566096762395358887411008108185812791396914033947818597369318950175747431175841992679236474887008146287867672832604257644976380947714553110884549054450039526379004078186679918470967700363071144436392483666891235556981607948454470914593469865716385302874625353855037435015944104353592232435403798154599415585381736796237182148999357586374141470351721956168394475276461269514181863364156970834635161728116316619622785915187283407867590254454218353440446689222518457343860622271063653023262128098103655372768792914404579358866544377025118945693001840171406776379484444824045018960859649280792811831266576264854661812813675203821149415762480783965106483213557872879647158998090593508779479761646756868086773139673718124527714963467784082038816008184211195793259970674968788518572556510188712289674196338159250118714790419710392089802093974660208927823418620228808641397673178639765349425494444774389031886445449277278084037871472685737855813008441716345289098816951569844296247525061338841036771136688799734224933147010741477200042722611928838565829241898090923876067688557219309443683261394226467306541642007755578339221132852290981193921873087632846171471592283323660119218481524056667499940809603737042929818053514077178166934028880638989798539221731482897965943862822707503871404663227896794968027904822526612135023761628095483997616227509729416881942827656959783824024471648174067257644231839552495688755131634638038655542947210291876730158719770590316355588623532725378150880072727578556430503215936761925401495445578878956901128730582424894970551682254209455325895907414844065392855654934462744932734142810615962507797635083068544630045837105165768671947551096211758340697453168858996566858128652460386569938015553936680092667148575248129709162331081122134594454177361955722413967751435946930491628630159230235244494629652024478471486084468065218717602953613189833412857150664514173400215632468636651831226034047530467779592847744340521420345060178277052257066570172556443881361404306738531662678332768174906844390930227570588986796329397728306616549022989475706267891222454458260724294028001104652569797657872249144341825887706955946577324081570555956876487729607502037552600536331124645252190025825271013174290796051426439041627445455250305450920307323816709518494866230182779859646839249552948673661994306774044562158477409207176464807899015371548524750115568593419833655628979827140152750373480689873084467002249845975292462932244167606213059904953052016638251710926576039552887100828155065936477472442826944533637861090113678961397992340099080228662593454516441578276814030692882289712531132125535386115719026907819993430449329053938834196591223239349217285716925509385076044648111621820577906166210341377431078776917719957563486641682474131860401676874841364678080386061644546099063377405502072638417812368071459994234188267411515589153956274285496894262988106958873872914661151827545878908445803816703969084985059140137812972102578280245947356637370863129419944773926991704031741123576954078579071888829756160206963684653103200995382529562470241815442008072571435638300339992316083074885137913837923368926294421655572940296056243454373387327414622235916415716785496154416331234697230196161615388649034648144432719886999216053223982816820576193636187756652140277135622323351915328539254446889348093241546859093278946692809170536171947792397612729340847561398423750711832137080196023707301838089813143001761771164982314446348925157755547774969998717376756134411091788974123917102026471097766151950746191607232169262313681226488458050158595665228468766061018366071725194953851880440406548348057790766059317362435665832875847743958774188188961304364582333598438789158327144969649060899227987461816410906346811572457548529257990253825193008319761892085059869665481951647575214318007273725659024530876685005566780086988090166109400036732117444789568212821642412395541710525620955601809701719660939092405728120684587987338301648723966089258508936773453672532419515780690185888171041868160323867312016271257721123132918048814971654920665335052058126592916908829356345954532897492746886194997719157454961320065747609028627424278291553106580991265816560000123443312502765395869758938331731223015969717176296473358280399223128437623425337830925451742223385882320148033483673350032072469669207921422097707067525863241873034939084971091688405662206820224881582055049474242441611401254713015223335203137658073728777989267923051349460386395389342130018064422215087675046678926519532925925287599486358072921455888575206330745130680865264313707450569031958230063533545468903182868881483438153513600561721471993411740448138283567443482652292528924098149305352249454162694958380378974140157117562371387277854285535745247188790700126185267538096300646869347725891344663505584852733154295957555835645769082280760868271163518288869865341938602306919975643580151425959004511134778511926021045867723572806078516990148965232635195223426235543807871521869423397520999931099430947635425373902494559126452886495282726123338239844928370219376798924544207147957335151360250268466121368024753843401507305711244326333668013772271032657092476538663083623408095337170966574671299779548404115234837446857944908910978445743338900363307116973998790159696198587386714157582116014486713883496113806932422667522049123721812511473583512844368963744760647236762422149067300778858079178771164079946836361664908369384407397898888571985540393514950741034930275057625138534570774040175288004130921607575513777222680937230761860252287188675611519646260476299440083605472048401856595022304585099392925612133336128588966449571180463747792752011289734343431934532167482458764990122904680690036276119226116112058382235987704322765486476815500717783888855196816328918030906363506269220015928043402036597838153679569700698595426288827894180740201390868351906335814294513976614720247474110237744135149642444208614456390507564148212465379232698454559671444136765461273814774002894870127709763223123208296101560825374889245519177356692357300366797040974684019209493460653926686785796835775702613003680407194834017716524588576998775802536451758019704398636551144827792025387460408851443569436677754813193425125942164877873844280921689812650648051029488171386595597061239956536932430983458153744794315742886841026973816500911892585404281913171829235632546305542855507475698479947412111947220902090400088149632066995392044854652357911251688265198667845373477300759498170332239624905932295551466526125512037008060322444020665579721513424838880634254001189603215785051735762049599690928462887285065096767581194296890080795270866811723909982928026225003502686649548281753556535322217529733125728120651140627212827320649350382818606883943470634115218225314371776297386704345489039674824314413452597993740917921922874639874963577119480911704053850502288327567036875097899218416563092265997046709900401397818800650209541202674561969978911337392432050619706253065587941482272075118664657746859788024100374999373767145713438512596711321424103985302837295920470344907723152781935451057014930628775966771733951234262792338377178070484798105489549578351563718682881567724085906627196768950849744402795588662065610576203995315496283578567160943219611615902153591547505118751488620303355886621381640430163353799425049762272392092451426194931940165239510520183534267044484408807905987823429585207217744548995937015415577235707383032169338896015566882986965826164222937995919226207003231971858853082280276845374106373497685887383930060441985518313229745365992178653027764452107171420661718404792826338581188174559867917837087707934703208025269713882922041750922194255489781284506702878645904518688071182323700697716248022391119535449277005730257293856575134633611402040136931513460804358159192314152691684305799180911343336828930065766740328960507390437051640574810575283926253456194494460130562305125398383261249140196105425749163894958144478798725185862308241520843780081137175616143031015321719104194353025395682087711249688107590085682314040270057457832728902472157321652213588866303085601430449482866159095449653868978408375398821496106142132491559595693146235518120028747367172390701680815627583019882341292314485935497406359232408016529807088204582257103090026883319710554523232859996498674941734234061091117200621119279600001168762480809896967316002620316329966726675230849643399339781641413381366420836997967174240051230471869830430511288557395918750898015959857908111401979382099432358703310777365764018611592816994423151502983419406546602746777387982017484196518433287609886012591043333119405492932574885358210919893323128891226014646270104380778127211334708974374956919881877135078106921080376594411584441695934386072001138937730977386617180389550041204330766718075799477562199112569298330914514321003689642208158560722421271027909828175909933068971544460590837412236447218753318617731770156210397602878539521480733164663004247416932512355150640715602721877273656442165123621028265014389202339525489743223101115978284351209532844075797353375503156349125046645530701089368149140678568230083421653132612838723893429849398871186750273455368572919332396048025056169512149264257075936346927250298497905271715879173138614493527256128521164103911671042774641581754680239127916268730616875911247878412436602411764669394838273889692610320730748918571157500463300587380639631361924772250773704664109348904035119326194049265217612950497338488189344794889808340803968929669658541978898429527020901288792634683121373632414004122281039037542149293367140427205871266583520074301995879294058359165319703191272434247370378814853194229467897485067328428742939839614984562305109157168467734204534101419466575231895339911428804358073108683596491458971086314626374286260178765168322083503235711776818301645924662923140610378431663627973958606985589838568301150151382380856700257556745206624920506113593501226115124177561935216531553963388611705008821659077121542200515773483865803818311669335346998041233247272555488733776474392632039307799025870371800983380338692770204966667624236170387056982779593588952975186576621666780289180286998751973261112350196039367404791594388948830965620746693459502115114034814800904458475711911014379198387448930911689357755321909743460823263738968851665909047179063637083186826240658417853220844124825549798379077123909511820311722337762380246614542548187227381624422294529968784827383888233595494994803462196447692591014727055337527844173923808948552811336340544465762741929454251154228173353718402008090657668626616727285123122372795178460440559349421139349494174595531524033603862780864840539718179638534670369133574977714122479738546379565774705582661639224365089907749509284371096974363869230363630709933174675770401860731872246464045709875948119747539468372629709509466470481390586998937532373693291099691401629340775218166174788698622683528579747836139196905487255110796115105094745902863393624162465059366312692983591544566501803267350872276750340518512233840597053058150403152262213997483579668716696310032101918477858460637526622384439614919291106337279913817803552529755721494789013767155122350284170206534986943493606759887795566330707004545686193385653813757923552492720081164920970641706800399612430798603542243538971422911127866122134303435517031496284936227951127901645329201985694156424106872351361997293216518471634674705625248730735057873533706685291850475352885740433986711087730829343654055817394075865495930617793705630043323460307047238011937475790699426195670812976610908743236089354174304911998866552838331584228558281780191074043494211552189083367483563561354550009102143735471104350032071406117584661963532630245569658357118881150018855395510736900268139324764294419666142545005920741053678008392074242522367189458224179456969301806992629278754107430354631785752005814998969591916527440839223638254631915792158722638755783990648929979941065644266423182837959569032394546805704713978530282598458925617153592583694788777618132572955866051304532527622151439816439574927456713260060490423764083217394781289737623009336313520633512560444490881573826638325684135413412758639921345556988093025377903036350425698090564891757039064706179302619945290892165034066799164730194162291448313351667594165353522057419195801660010882174347219986497799868896798005812282232487769779409205221730349231023717395236013375397327623027325917479599446250724202219202776523378680066143922551497532144741945721388172525672040000295201976752532915473618587826694216330803166713732440660563541808570899270029383461983435390510688039114825538027561220724997252431204988454185088284544508179915786520424368330909651996002138976414946323412112082543564419999365972029617790193698418333402944830813151397936312414006467593299680611093848359943842871940758713818196595437523417712957974342421105634828491338845205674425695048557081075560926419754775852821130866132905846674038018025665896258906828561864763010889837994820703037234771788584520126559192221680283453378885257252713255600144372483350322220699824209499144302706929506446387180169474523595518098324372134408440139393915487179672504960309076457306320162205899689707475247102314601034052944478868685254309657553910421506599387969058430508042926127601536262439975580842589905924570412147438368494410190887091053682326390613120082457355076930869273526865495846522925151452112745174935047006228446272543784320480598984556356196267915922204727410832747806514292522851142666460983952512186041333673379046754156745129362956906909432316806396362501148406839898988619619774275460523665740627952961808070551606629241557099191307855874554852050010667830766037331737795018167561482517667871780272861597271884142869825967045126175524757513257664887548361193040264867212506053612716835772763726150334951098105250449755968226399232073166656232635649288278419906122136008315377127523511960095579770000045702439367092738434446005552936753270995113556357176611431318845351298988485616490488710322934327149891348188205898259375556210872480473119447312852379223036535718205588931627845346480661734188503814413699778099453233535465938997915173907947273156994251758998792947900732977329586550543814439611268601282779353845918259765318307317578484706191789479864381918307219643256307981327586836890119195669754104134409864114987752462563711768428859099662136241273524105957635064733134755296742894805218471063157731450279621928346606904308106433875682915517870089835143997758108819108520252019372555770779199758312236448521777627744485888834207525878661741143401531415069477974334589522991683620466433207204950142800879740114012309515789356287043578067250023072727731052225919374113455009309165208506002475778038137228502885247000525011802501147895339692730310118329969570914011894709805424282629455475346426786407357310045108028929560769307254340822819312637902550738307057695301834124335661653555182384001787820289249477590441533865509190970322234507005857208752878389308765230495578909790324480355024575654572380267261384407462939651362656565900395175839642268114714106919074372708800896507248326029559923407313816961957182555377324658522432087912985839174434174862965145712644945161723812219145928377181233284033811433287090857528723821663083196719160128535528567066393874874066339478026477335163661602407472338400320422324507981676208068910726977045448461126034893115390424795250012676984054325925616013641492588053118286800517564230871226513286052584361492878427886983530477230908665451807123158867172820916020862016710326066127014535817791495759053403069300150810689168258704289971204669028712665471847305698929064318943991915817375964461016166484844985873396423643625640924162128329654431248719291520663506099395873534590435483210578066903551608127514475937288052675204588588439872965078689038801808407606239470501439599342148371892448277208912319771932221297807730030226159239515054825837031561084426326797205620507919280756952959061983668930723566949382805126388205003528841806210431054435755885763769305342405305810358415977946838820958992947019138852570801196577646848621386331265664973681006109861949378775516546318511091212610207541783464108525196745360553092526311955189485480490714723384658303218083136216833187924931631329697238319541294504515210193690360129936066268175713709439601349899775722506814641008196668274967406746699585692745163929990092755340396114434408208822556740522857851124569725504614581522701043612390883824592208888354289020260701932292875486858785142586992093122328620838767585748693765224784582869936125083591931060292730870233324549234975021183470515917456879887662296258551862177590325929724309968472997050852578728965005897268174190742482408753241312849310346422317900091037193986432732389119302918172157125102305929465415735086471586796301489084495138832932231348816884547618092172829246306951185089726118519785324092058737688883951091600328797138623683537742888446157191242405837235020337599865646232482919061354681455170684412493295708281291205240014695701343568632463909840832825889370654746809822819197903104203401340441523686390782054893347994840953879619861052429168417837015984011820339785721217049031628197495169839485324677297727349832370500280384806943491434856771796108567631513736605723533365642952589673704811583008693545429391052791363535471233322116101533563148198767998163783589115902752065362124768163939121461781410803463429171202177421906891324738948935386105024228973619934327407000522750462128083044667287884453900361179196189769877676924448115526235479862604748867430415399044301044350594756171776477140114573615609222320615184753187616680168404957282138376270297437961047881198008123091729050852727369902196209703887597436645175340132907963801851672947902140430471913103511085923855391366871183351410218026768693208137391225980963306008454489603908478180951763634580577400523134304564831748521629005488196601208014391055121045833445192708740462723134476187987015084430740781821915279223243882777865969433607387405202377895805364772799148322472951853399928397521192879636412373726969224598847262072301379813797561848691867833188035623650011371796164808008606663293121175637837290115065554105185495067565992037693422376636056157749032955243818877485694058515073544068631211151671655916949461202778016066474643235520944182242251848876239557263178149316152931739017634918035005851160039018672821154642411558511540338887199978114982899400979039733532107507164825380217435878750246512585977132437711808627056762200621850491217363895029077860111126606667859389922673002887578519471705346599837462668026755391203478694620361064647039738610702439235134455835714110007465460187043707837466122996290214281257751063727368834164447765651711022925970682150195237757310362148387861946350509910145724661977742804963633917335516032096330680582660688899719714514694321900411837547850329463456611017315678850008948039163218808653282866088232697448754674174429697538463613166999428692745913378930157296096250079491225884350589943982000284134425002239041266045236000868022757714274985514227631214971115674010325610159990633775935981728837516660040413400414967380995437590680528298880684520653991468606595077093397704811303136574703531876850174342852796362118954451438848789345348458459592633471609223820747389191029896055660777023263191523453501712696521146330891719350107133131280033523777382023229718192417466394088730135370591995315763249646600452422649936869735310815224671511429735457036172844752867814874623812199453052690175820904471900927313200562559620224985340427748205099584756865814855644298337872472295176755410181986232138829251559564499709126096352675970768991073662224146815974812219790296514662052946446632691227476054991581704616582855741405759892357464469258857080841857690362735425021385518582148244661514536603261098189241426897660315192261026982134051897986345302054864170693442597195818573561171379387180891070288081922567959929600067063371987502196268578021025248540522937793066033473075388334657890844730338444135525137454084264943406196997635507087802381967951450055669553766465952412549639788236087590962281771807955346112593231261682381567914679612826257269529635926574290021239814569852366404400131095801729581836696137541065822896394887644680540019939715852440313406525369414754246534682600956788449556000185176868056603963014498429318596732379922143948886839399283934286830632089087036952625847942148343575763893543179301573342267802435730910153278215109183557872429588709421616634850950308468069964612304517948406676395722396501613351212874214182375288253550069581575299842914901486776228520567743304261382738614780296076542206604693212792819797382869917151161945738325151384284024710623771926777958213318799080124890163716603073730691974906014684118715125250490331013523173862521875055518005302555555690074697454884775842749214058053881924439440818912563938114337551261220445406603982628594198806152092259180227373871094293006156422074037164496798513229412839150211101472051589415355092545718410447154063611911938561862440644978594522006032796521752637361467428391517055062000746166512863607794047617273010352687587209730259410205874659683283236321441369222503537607112807620235064580848609577818248761052019212159560505096184693173027756769617265914335903467993551006972082570731966627976347213645438676894718355637440024100517312546747445586313732650567913896884912635191899447994412232978167849285665645961417326791658876599205903239952105350334885101671121857054236981969587441314094692479515815892152866450321480511936917777543866582351454972134575702721792255596701191256059888622299221417828253200063961327231908242463562986122601243482206489918527775109992093788527988438243738698865187626164992043937266384309608866568447948812657164462302774750944990830005059462235109245444558826996923162958742403805510021056526147735126280682435434820037548833185545384138719101597706581998497349841753115960246929487899615449698618366026839521347044880183135076492543564729853311915871954285860817940290792754859342796637451848037963242211973721355476912324828606634426634137366408233301333818621520302588317230288607711572303268712299295889319901249353332304304345214602472591195404150442082586252249564186460369611851562926578569085803111429083509980364687596178206481150085243659787880602396046092586675926741447310240566707661587778540989240292052920254268093451781730602852055631052922708904242565674647110337453532645767391341712376904166165248169404204982566593423679288643294402318631584705199497291575050986817985434826611598613719207480013423996435151349878251753729994144810604607437393748751417491870917982890992446648969405360626342504455402450952945398234813546007635952320560212515363114283151356610571489465956516722072524043364067774692125925498555276392523707454810454061137941094494258852794607915909749769962857996813102611089041379640599470765000714771658124549314555136032756514740865849282627414446621556026610854423084386497075231612916478450548267271853952438791608631708394612644243305313295814500770828157899527873039749878308415185563258333595102795236019178653588436489629315202277641364090118183414076802316548758864695080844790971011450747562886914676709435458453351023129864522149049702903368932015332892648130766207635975696805473963779313961741946541928352010374618919907974199982773845231470203468216117296311486034934984063569253319599325345242146132129767187616942381447635547191801106450727787697209138260564079443017642190303799312824375074419344759766779894020061362620446223253740841830282107684321622998633918163991264640462019173158473013155061274226267684373655742410878805688805339999658101676791021929272904399595634585427326813274894949981635414420028050364217753581227112597155363443726768068512503957827465942286256596552966515260006390593649397290002345756236147220608796135681204809971363486052412074344412385088217946195135144293311128510066866874855513128441121759386575009337743298532478983560572319310685242557013751707353530466206670911768960259070791360813215990911905373274408158693940519278746155089136555771364554971977801322855002169946653398834757229170165593673416812255069204547014018638569488660174875803263693917352629691561652873002491359026280852726876371981928816892147393490034582576331477519467556048979254099605089705990486892778650600817696948054561578036804946172353870040009414217255337141621194874145228934564579495938862932502824583356441014478901422906438533610339543250489736688499148001043512785979129637642708500165104762840458986359018726456842126385270551216601787907643316012395776964907460135439999583799550083001057458935937503437380391235477636272375574403284169405342222161348333509444101945846050568589627123313216727940792854714760010692229983202022337873681258645479995797747570731563838384938608440792591060853691428852370920993841503942581302259999939523809110961020546745233031927700784650411219045742641542575649271000322834536881960383502588293580490188486878465673268270542545781328662415018390818612996792998218781368499973030078157363437343817794145378514685149892436653755238849845067716699807080386743634839793337143661094672987697179293881324890670396556395096035908374409853008564685539198246213725008742802009167065297581999413346706713037378155465075174531600896995138447196970418439502728928256617612002947769488648427892226822258441329590085670645577982202691073501185392951741869875912285939713669522080650398132590414616057887691079084337476299496355202389912041975931609992071649748446979660226743379007346692060125564242181088326501518844564454364108369399446205434610630164796774633902609291388381356754518046895098367564645309450212749834543130517063931211453184283075477044325295239072770973112395683026137307519124113480333217928058606135222225465742099540224463530309513478151313601709772574674284735651187067823515885542268338662781331005852306762411596996429065460298677648725818358490182785557691769183433477585142590275669390068781362493276458614267115156283664302979676176584388952432134332725814757736957696157522624341615190968693302043926829442221272905013675224852909915027151898382573133657858628925269015902863534677270678721086165097500189428819355060141031075640831449852284333392434072960504144662342305524238909884022805567179465629701212127339540264680717214442547320537353090935644356554598396536325459414168681466902696068225096888064960169861841012802502920161539497345195962016559172018317780301845723598291314030260883092317199415691250459043261296282235639040235360524925941514518446153629955313108413840247230181251392489784632638640272782654947068874535949878758386372139324077634543035972801104049732095427577063876562665558976659197119394971982420171792123097025703257231238666819785533205828494883897894673923944861406614638240153943694799187288852213637279027811601017534858986268075387518346021992096918545469559329385823713340581996110905827673644080835510277753535184799648318141042448252647636406461692374784407696457516118536433678178748315039839920135306680991369510432534322902631727517771996124233991454185924180756411064665367030332590003041289257808155808786416881824954311875370668280338270023152774702521499225013216469405371617290597679476231578274024682618004787284583847191291675863067923090451543245068441680197082344111166322476958545438154765064988918037296936830152226014999804096113110726622345018766902713159710678188067163499459515995203588815167934064533711382768043290226253012322621413273021934622733575454883014640600792516628949314179805440246829014388344249915443571079752688289934376118272131022971626855230868228353017321298984799356115873984144572223964526731995540349793828742156884657268013174330987965698532254027483688126487897316222618094086825854702882582015229060775690759313665197867847925311511128685451186815122560974365174087932528726559985298102992542494244884088121456089967795493061491822505501943808387652611898262707198946559410571655414430542124864935078148713614177993547450332977606247772560947195211790148508440968795007800421300018573939564362688363349002713114640776522923083859641573938036416533333751991876423214113818647808695249738880169403755437537866856527644140304410187361335245284831657666429612550435206983661885678557389252224302466521100734024009616189365678259275337867121350320862225950967109497798331681036296231046911400689335999156601845447447275061968393555309775956596026832087535890278671360505677750173627822042078690369585452782932644076829767539098863434142532775350849202063162293665819972134368440796389457019742803047000024782583970822661886943900155717731844036769909944506037534415554019734927453356552535946036154085961090918526337766759008652294184012544012595843740416904512366829272396085888603543115729316295675525726595267138797302379374383477138041147338544972308404824879426737255656962656619305924096496966359504778360021978425461206680911707750491740422722292319139886678828098977219282785093978095246766195774059721431879891395005983352728415959660818370833574690979461027347307689132477943795007217095968481348082638404426717157107043820984516447478622281914065340769430295359236255348210897229968556807260409474150444096474065200496911281849951419426986079638462497266999822181816360111343751108660536598562572371424431497647694086173080557478569031473608952286736530350538434287579185745564075849514741515824556517933387982031849112748831606852668653689913234455653851365723661651626082946639903835442489554265379905918871646538236431164171550321762891720316094400007574307392296516910606802685471061098681221612839789449905121793949064319499595736519943157557131373286737262684225567337554580114342776654699451563846410566955073296869226089773500582110587689908536990281301658235566841139267876789372821651396673205040828197583420059964861172760370716512779501479750884403356489238523059388363498746805624083214420215770070774854175482969568528768622742627376633364706382182635425565002271840622733559980761702075260931432887601014216371187251867148903498941730742199223538370133385109771434929113372360249572668958406738022575275855917828587892706778271143718896716255614247970266400237223138591741674505732405301068562294452947271670705071816775105980042108625996485519681045858800183535908198392773269016426119330147312534821607830688708407259717560422044099962631903714813805235373502559331613110814380268764404757341921766418264002523967510712601802992688281569717345476841206819901529747933406918626621554653480349007964844872578953937046492087858411833346759126244444903700192179902393201239640363434655505372509088116964768959936385892865210464157949862186798166511382822601496598294654539953766026944072878156962714382370122494655859159040626876593980986999608518144788509392297247876436503024545037514222845528474005292532372585243575147848517485435979119739612192424942133950462039209120636787783263437090953977151247494024814781894317246954704660840251525605323032567200265810741527241524046489295896639538466278590472682618037918813954711309560716652492443909563438244338419801014759460801390489756925265834778301733544175251536209260079563451766947789555898202559791596466696024935164185392355521673384841394320832496592252738519820202166246481764915832109193726469075213020083637621392493221775982953055131718255108242539582596720240207266294455496986498272874713855373736233073053996474742453253130339011626174333307206389830677476353181553655393649269828975776220405077769409758681941138512514356074837545147950240243768627099297445279688240420882388766890503813635015704512668861772416840978408677848319990760206663481294301113322714267375966123807576580510357839448591333667720523728318546333277292135183574363513523557824373684673419792638927892041239847148239135740641015732209770627981993601893898150245612111336810915370479986205778619419995024297050221302002987473528431042205278413864282321583346707802208658000464786068036862470684954713165087805758792518809519267756465499418603799960704048881936206885247254907719186489312942967776747690409312048227339555385709599875656625693130556036331811255260437689597462713004396687666844757975760431880246912979171263951415509499109400653083069477305824933242152717288858319366669197710364112712962498539559478229232773702201143037580694707406840871607519376821726419551298259611331732655976954974984774534435780113528086939011094232682747863428291581270123525071453483207407137011149025624340662503384281410643273165557470052132020858074051691401377377522359134065135931854673869130662191938029749588078663328971670227547951088354407091986798479782885556552427414497043088575688316664447070210356148888626166541054948358606306269617840431812362707671490019881431554247074475579504038023423973581244564299924592435980441098766867838217914776941678307812711217527407036007486545386146763262765726350691836622274029249736904147048455057093040360194967166552292710116996906503381384213311460600737206126255483685411893156142824374003218220767408497193556507865568391123007175885517850592451266091111342895623530604883999925129880421807032215036993913984563096860651016697240186585674690271662596750373339653346622594638511513372637163469581212837513122456176116427657489879072879610698682180846283138726989692482351359413150212001122349974095100902400960355964287533861654403278031871249110316396965378904823985818242905962816117788775522352936971615083428461477811032897707008368866896643512055363956491642634114092823461121909587931650494898859172715058269802226130837639496132308647237817585477827833492979882256483702158615493249860083521389330430032189843533833918277066223917076387379361374794030152656624408772299333695084673452191812470309078787779272118861285982082738163540003655817731648192843781701316357650120003943149308235853197942990076021111145566033015926984810691752675198501914196331815446521058391476551371026381484225109400585190173283624115315574832161984119340484425801183648103043923584226324501657944839580750569875231508474199213241697651291049576540609946452780470507227171586359514993317283826850124901879537044916412589782191571065813825380802854959304692942462711878317315912294956701051701796803779836481086900420085379737827248683646417506666078710975610540532022241121994421935693671341972806490169830274184285207823358684062621502752212206769558140729609838797579507395297768905698458665362862379833916260036434180657000012384873733314895960323228894932726652805185704443926401125692163862209599599807142891227872868666058081147419240891682109990526630357294967857135833822421971729267293079601648361377787842786229854127772060314570014563934426647893796403280570739591106234132110122145242434981082201911183911372079371414706852799879445754689656015654101136469982926110132709420004638362046053673168133888896097044848365590895350518672487891972173481129268615947259707726016472323136093237929414449327797875798498046414222395186161295904146357059582863646559597817934292876882847438735414705498315567580062065805387260145453384770255259545827874525579047640686934935503326450878833480907145479879845179699750053696775466804410499786820356484052696169661362087949877429006522550086380659300166381339729375856005581413446627471074957461743503417663841943304871003398439089768448424588292126355638446278165246268567316979743800053427929303178898028137294954424574970738420269414638450738300580287102771956772639709366170358406560315737730399738891457981781011813904735207525793313272154229821286016983130584443572164233166140078597814101777212438496211969941750195261596719591366329650458502177940447820723901257087132018389078208647132084881725838174660375080760640998114663984778372687696759723217325993078979678195150406846689389886956755870533921446023351593656638102388525696299302235766808134579771549974428091843692190090405530810623573528581083702610255269607837895002185560284109929958864670942941304201277765862758505854193620858745106954259741728794023610713154373367804006878952418547595010207056340031572309855571653320852532718670547139126802830605534771552434078807646866607625626589059102089579931762195710776573000576523713372222253149042309022395394340991479600421099641777709392671556370847400168412722171094629752770123859484219960894658650429986112463058961759719616587219231616152945122980163654155473243222056266406233599201995469342598722437791205905018410464359605336583319358784566677142772693523737457993067030702769062183057493710264481475032371728537041125817221411789965934727365548638344966666081480314731780527356658366702010417703576104714579365890239056691805060251451165838514785753563481367567588807767187015785546358659129057845306187816849420396831183693430413206676871440314224711712196658417263545421742521514005372202187271626124125994795979030361130129509592743843246736643552799564012770011926011089828683871552532552088537143440076887857732606963678113871407598103652116242831954026074355954847891827194373859826490143204025545115468860490196566722277057092543164689354308697771506366677864739524319033804334297088438020632321140416078104351973319803383685211993683256203385780655319172537410586220079141432586789517314906135508957059551282689303386334536291844828398389210828512803609502309357958711449303536418218824748494217866132469997951198289880514054645421274637060664242801849149755733504311992344944630215402519438509559562365985686985480015876468804524903701052394741619156614791824073946645004385740093876929286312768847643446553767461447200256422716828777059438160627185920403952052749906235651807098707113647935285447043729768487330259617295018947072856695800503212923091717057016234754014548696485889232491719016029042574223789826157858526217946930701394246498972229017327769185022524440800682016151128581608631795331683972639762073576761762238247116335216593944260316243428952345111156025988162426440282173529780914503733100425463931487324446230788263698194114380785134684857867491493967780073633445495672963245344586052400616801071668920934785340610545809557536774410766699184101597654997890444818882725852433564438884315264673201820756120594920176648136605107542595666894302005492217939049678557381317871814160113761137238486373728446391247215114807469675905282523082454486798906320486306269975854395727603243409686421255436210835724872142294580473151610789661709649701462274193983672648730992339332268156303624174601331398176001343222946737611386166188624608690723454195875749608332869999025963385380648202863515617906595639207046029440838374541454044716775508173796435330415978021800694585504034682625997652248088151791008008152523196870255331244844755317177943017792389472112133182903295802965788015980598267819113870034200267740184482957517102128335701326341452812872203301746803641045079003702584998765740964142383366454187649818899854679348776843170492389771922606706028622155292571745732230609098578468172241998034711128145516406788696426012097470433540007356239864852576881110757525856179026712399163416883394116485970609207171377164225440382942680140088787325459923692973238976772866630508424373858956900362468339637660707638023754182514228570134666679067518207721651254330077166294026654268588821268141477689053227443556715261465095884271849170027462559681772537693468147639980763785368179478098874544877188647039466315511760776950580103206213536551258340341381536482203153253397013582824630656200188483467415670765841769653523268415864204795833812160306174257158990966966174251127109504392362247355285822683078366476288031800298135700554634235470390844826869589001711717432006186693433561091075948143813367402265610111684512076873709942219263331673491804199043764983386409612032264152184650883769664541848817809701213057576757644347663812859552610701969449688318181911555429309715548515028396866135327769066648109402256286829642622313967216035293831830100601859959370866303412085883062539184673879393335349187061808844155270874142878828544111991338282664582937959190781497266468702925142720643840920280267886279010469050918795591238362059005250143637972957572226389609620464600228162924623119275136068875194311458281362964534448746100165474516514765577297165313496983799470633524340705634898036863376500713811033912381315680546967582710581657665430463992229059275803062875180907173675202898220667799616847125453551304522869467590342685387865031246737702689067135013778757701244106405376284645736918285676439802548631473225740730583296396777356216927822979635913435263783031940470546569127286147414461759146525615285497410542197974007547484752586766300841541624857018403707541382723831297783099683544449737110604079699940236308316762296442066993210963247049335220895821440414740135172640669586422068910506983626497064897254345040133168133047702187233070704896769070317626915373834942909558679330030915772852701854421836936750488749940066221323852314336830324073084285560384035322091622735292388845895912832777968248473635841790360153918549932550929229895416000301779664618408708336686045279227788884125892852465960524443189486816391785666529905588574698042482513739376655171045641255484621858352803091093258923705237808635570232818245423758881398438011425706271313988923582652751693025687296019650885486028323316395474861167173453479982571673832931293040394930385729670071919231744493996315253799454073540285615530900917256554578376008636238561136589944244188854802228402558690261026176879541918535862563473112643649738737970469076263304877561600579845618454081052299966287453722138651671650075502428581243216414550262265685666055911344301423241925160039409314550041673965253529895687986216623996330350482276455574700307259784729418023646073450359980815533953333010136645808320252398282148498751895424609750448016928729854411782797832777059354806540958886257888892130565555732350830871262860032480972347620282952424997418307906112270635942293271643758636297960177816300525875068698370693655846597880606955406950275211888854989230063538179797025239703666873047262341161440596978667437389676602976091181614094886984308354350726972585738684091372228835254811330758619023961743153568126712969539867196880471394820420052743341504080684670037240963496821665143436898335010128374132364432075795074644423643201067276289111394288690146804017472713078712625403476711956054941983671423638503997434340412745402607078370842632550950214667681381556505774389676761895139910226094275144597409882027714970682602865802670868651280521769996446323973959137345209468203980507534775590533612883905541023966524623602081154808060038176652030857640376734297895657145866774879804028805718786736584637400212129335951786196356275504904533030637527057554254845247556815557414286029617849709445223682443299038711507230991812703658307626643862133856060182003355375192528944205002843497708360870213994572594329582032036057302209914446860811169494899158185650878654389903512221034468983039433540412608780203058166430902539053358639827371101514235775260751749183025647749649494449314223726753336904162954146775884459503691242063062927550380153225308804611660749212859433683557563415538741785813919119166150030751215674055011945372850989500321971385185244433296290613620466768243265365322614626650351611210124777314903113992524094875233456726001574133863742368240545886716724204252647110274502120003823389965392156534580698882201001543651449407870388086669586074264596001768609669598268376196677656370374375955664330920439229921503412493852906339115940357454190318915974778706518944008495638353788207402407263237681333316545984927086721335338821586334246286673097548597851303239556057954183640241924601856758270519625814189038284733099770802102415095459419381943232592611648116912031528889074039784636281706775400072335609291838492202251332666000347697157762267092634890587671950438769644232158950333011150392261924728920081277648932931083568022118157955536239616903079332649028825693031932418934734312104627121617349367044237583840649017685990589198719550470781502640903316299167626052119077334275574463388472517240218115109792703252866704456558927617906811042768569642561869455621097268278827223868661033355326180138986721579975792665487616332237433489188293267620607036359599612264733629940623269083860867630791673254575121865875079051421313049780039427939396398387109030818824711041597921343848624900301098079086300039174232534141569544753765092375329577312444424291646985699420830126647525067319005049316915007710754724560654091035220005602419929986548633440521593578203597633021970205324022060446080380719747488677198884368539342770749394453590773284769349853450686757578788627096286476529569165763414456662604309593707253573427609501046915263132558648425116595507434363330621825915119874884654944603677041351099051854162793222318275854751504456286206430673196387039565253029176558404963295896740814574088326269198943921843183292834488074270748453114899498768901406993180616996438377053449314337110295527542628374911467414291128369093851826439875916153515466615357027611564243558092274435994344150227890171249414598395846551666922729066814712332918407914375858232051282185281782081445685097031351390042777160518683460226056259353039920716758843711505707252449565738452981130071504006339776713605651550958417532458369569260859426407882649929130924973737786555039754748686945350874115308510886870972501326078550085658942434072528018451373722440112586280847058464724297476621423976328403194796027649997277155494428846497074733730468865153507440043761217756744201888557282515390455741243127132688532255410773268556370140813278470544468506865964544914879145185114540842043355974400942662081367350019001035634369527147589573102075859393854873722539630951118328435279119937408408562914714606640639141015138981510511849186907161725977342010176528591703814750294614478386243781578097454430208448877974189876173321655901452824232891933765132066591576684538532653539488928480921924410895719841229116414343763308173807442858756167596044718181892743451382395922216357432473204779799257535101387999025439089870374734619465035863904659644107395823780232491275783244294671195468133719011405532772508462438394419645106926238203509398713501400289961392995678376209226934192336534427584439708851319979809181323320630080598315124519460441623165220892173353696233210247825435889317428189891580604399022953799389911776193178678437304952575455771554059889132828308579372570110941909653163831594354391998172229259863193909709745066949748758977664000869938291499419814266455751655404600747099084623265746961363221676136697493227336373304879009493449492890074636495641169667455711788738004291571185732575337298358992750384867381450872845057324730760108807457928412809400849381110166791683592025364963219707305119054988913396178121701477051688830774575096875377353244440028588916308562760039319471961851562326933691203697804555024482450151873582288619448942441832549027380404202801355646462028067145820312396171436908492218823923041765431089138504065882474200657683320189921810300762964747927680464240174377802376075803376354775456533700827623042007569816276354924540343010150206979362699569068636654219902868891539982215746831526617900368563953873206103582437211109038647478928767958230368163847519292880541850930812119596353846758479531896168543761386502709451308303170204590738396067914096984428469454348263367539457738827249736391706567318819754745910341723936044112693529753371214197691516118861057909428480327095675377672811959028286970072827461671021083227593642132952648933746884174458798089918842266638334703407497525733261738203131344774079330934089568828862763179159952422264122515173068255086942522914668208129165973176838049597903554954956361353028291677130567811065345022544719048388129600356791670592980880152862987324305292862840431381501071543546205250034323747189833808024540925894518410763782297354337597871203456539301648039844195835648054202271531602203676037777823919809906261873901932740085994559325020627090649087456112381338486674082749056765946908571538714377197021623114704387157722893896644649755642143018035160915391312713430348232583458013424475957723419778682005547572481541966531299815835295002074249599851726663956041110934371294562378355511376067513781511775873120135400130964705076528939783454004054027765201359413959653826366314664109382506929426341565542293111334855090484356006661383738054116584520166758475193719867805786755538723642701556684558588110547265568427825469661867328341931483603519771544370067951916687863231475684465963435889760197452799257049666086435154663024509587722714450168519280800552565406031459410820440010847214300659154841398456323903678972493230133000700166294239069494489453231999536633181633219928842248927062746065464912632113887044661362688415334283857597046652597852036476573093110105421929213863111450347612953170862046553235843339600846213722769861331530131982901783095188137945849432914579489615186751015017525617049556888619047711384789767457190440593751565466586308155922236926030668333663098592625374618231682023840091988568425160339000513673970885333298140752717438446362047818407021005102902356162566445887964959921119073754719581637113415977216040558377032891704560448496619938793593244457925928036644973809931497838101635589712823174086627257582110080173866920630952052307988517587613874270708576030086805563385252390228214126316676148780363261294559956409049223717793392348102150560874337378047942525743244361643752858665117278855804316575257997205518679162496318661514164137482929286403370821522147728127803711871144165398076736051451098687915035659550912113424109785835376261806937072188441849332949933490861754571974307852622616774447398475702550777932882610820379496982347034931732988839034732761066281551460541188064434650124672689744316449780657123397418635632515671741025079247140171493172980787343219191259707220610562389903738685731729253847247192018245290135736670796564639517630897392771561642689733814081135098529382022898280916558889406137733118091657098748443476215222435450667740807902939054748413388904951971768395614404683434248785709432711961888129759391872752228534965316858688796924104728153035971369767508236774172773636683741856736860381487102817198748143044649906380651908846148387903017116383988803289703083936419323919874113740746003765264019490241838805424636671350661900291033917839478468904012032861778058992949283768507853792886886883288249230953882055139412609357069423317841689328298353142262158213941906751988729771077797346663407259881818325474637670961601254184651537605420554319425226203530389386318695561732992469933480181317309098151595749540178186800459667942743590841393959935769603275789699200325609042244023041199309097266163278412944488839570276231966121722517366086985533325443686251159067712715879043113189030355378384982428975582660050445535630529908830740383861781360887774780165487113504371032305333688335116192536664579241847824001413190384400233025370413125340863033712574232574297067302844937451671845509047306673163254244334604490412494963856778532018045412553099472757453755596120549157189107609211943484184658617711035909411793281788223980129692908717524118175714753781653811227831438109039963947923284282189872683738210841773791427592275248522029177465440939666524148365571656110751404652006352317144115348399763861424731124553257308480966030946595173231033240807138405605811918142465647291183204183354369325460618696182710666003946832818624765835889531610190619980277314127748828062550824636146655077809869782036672760118691097779484094065176478017085819344240199755626228788615299008887024902209120823309130779176301496543797447141970116836900008607581206160753583110556560856619699388784161125813731919171753514407602965084122919078645943925516352353639435744148822436407230959441035643743650081311644600576602680231267457064734835666958972103436949276280033522539906495974502156519266330214264666662632036151873259225145435201213682555661617787971877840667811832532399117730933367872826091620232262147502042564509677825519007304790914903456006844774487548924599905499023296702342624637347017285565455023322097423867224923632643151427352324137204878821510343145910712227699136541215971293352739113273578531191355675751759169733130962620778588720624994330920718517829221381664369377072754066451630437529124853676679216677818695291231570717478765154668821416796001284818641105227472923374616835244754018328764238572152028337151551523365343972597497615054621844457495245025741157460466709611642141002945671179539010553123140018515518751215638328332870644972804776639391199089482969693415595670887290195039181752173562407565421728942458076978115366338148622824713448210400108585926105568446053814926166645558200259852688089916952866759060826307975165184959406616184460080585910527696454386260708970260576663446068631800146427324456833073223425139015017985127255630278266672412662000844803006153318994172275164043815219831146274925091216235258098084751912356724742879253342505789076908211304810733756955366240203123369085437622160219614932755352064743100625348233663500642136829312629588944696014605815441775028321116443129175490307724450186917459835622700810909310426878121651658887016268950842334673442022455961681995821271549236091138822040706725443704302853406871722787582711043098309480570840516663694336482032987242281570710354776197583291447096545282336555148051242417032541495595794180183178053719576939807237749504720213596048975907330806953660036572139620965608902913435858792822771163478419448377093688706689418853042265415652455708749543702962243209506461932398482919162421861720506693338401345465691301148625527535228453308878409619637139525408105191059260736437740339044532260167157163716449254826086915385612386005757430030017248750673053984910520391486565790943527770207832724282271190874099834379499038986769235195074624113272832301160869856025328599615863074102090348667674738420116135758619818541966966973178923733606592146310853756262234789510786171238682036843390608449882548863882966071444165520624981634595849373543306979545816070706708845791847341055500368863900783053835838688472460496917329894034152744014021238567480202413338378344898125612220767601473364253611530096278616992705186160134960472176364784396836545736430295955779510680590378133767651184275310646516213755093397168113148065992038910404998301806438832896796957910234929885980426955646714312045319991959343016603532508410875515719058463466899229588255680515614328973044976383776411181987305258064237953918542406946099603874279028942875041777893684549349930770985823629742819009025072022271132534529425948322807398047067541967504125527062618575818803094541334029393892782925714633313271492598961831265455236147814849256217342517467766163055273988909141263008037136882806414992413532822634966755753536152016763392829903973033080655985144144396418030393712885112720047175226190668822147182086805887489237095814101828932491395314059079915334234718118705031259084245276257715450213926565315490471658164813141029083803468875166402589097892587671734823631380135568936067173358225416214957980967122737045718938636561673406743762501321040413224954828720731713958942924253192458766688183493837878413978615692211072602762626621565181883286138753394423808896226481874551447753474372060276971816018567473322538935467658336672547915994343968162459098577467535181678477692506861239295510481670851572795749424394169093913174089873528193356891581384337111017546558766718263111197339604534249315043592224231668349652675261140463576563920047540883451122179606200435519887705994131046962742644438130275721550341404906933413328517718919117770413409642104961645652157879592022754816685617589980339462091650628596708703648815044322948643694854015188128518442622767280882672601817661181050562647310033032315174299817492364485192201553860411568701059221900949881220558154138719401349372977175459045174990353246641942320742939748930692875345030070098070125706624271932821556313170483888971815463321412463646577047993937690955577431262084903883435363545223885781009984525307980251130394214739579324193273194689103689521445067761602602764013031179010775558694784875162544647347363856739993217673725352145316310667956840141715714470540249855025745529375788443459608291880994501641138770332510666159941632290681045873598327880444750201255507090305528291613791537154788854956702093454014815493941751825708037221395967288881479407271192056445776456773983189157031951710375315788204746883858871137198790166767520600101738034777709849043656777982976650097568718494871368072783642123693897124701567601704924521599277608443472583475295609617205816117276689727969152809253331920070333142151136970402323834052268696606405601064272544494695970796729149956303106032615149493975662645063831699277345786495861298832179652201818322719085313590061105373137405931426658601274303318789217801340206579244027380812756855564776420049556562475643614966813457943759671597716428818538377507960052829198019919967669808017667544291282300591629113518326375808832356097592373993117431931045264646847078687310607612169333633143273349486404311814722150500591716989721503526331869306450686800046116927237278427648036224227816547689633505927730594439465850046801249116315732656766530655600535444482651146525342385893122809586464793842462506428634938393141917671319903875762698815224276483489660244135036716049054988515757197619501856564903523158777130133004632822859359018988894857841342864790057066500987705150161348980483673909933517036525223639703284639654639000252494187857005561926107567240288761145609613430182682747940828401298360587301658698216718738547073084238670805630216052145327507359549590655985866684734218894497624576939324819821946936180928341242848682167031807184352515051664771358180367773361883882078827813138413620942232176221673925032345011530253039107561957425105991660857358280229750809842307340312059934755695634943727360652100917550211370775188410872797640017332141789052165773941874194231339015677220359897680809528431700085479444616113422885940779192048135959454760580203540695187171342599384977199823129603985670971974947296817538012081902629874262230930415585457377348292197030363569763585659004555140631969722579298428068787278305049172167364023566327555059521594551841669262294592715772050111644008467015218283153695753173344198479506223075066124898567350098487654758708281624373396348258093341229534334482008861883972823676140350911183210904539929168187608397242300465473328086730403956835846320765293591355622552161834239595332842417119420417300615129505312805189989692845529854351384929491881023655619461866506451020574235901961975463531231210982292022734444424295457604708261101440416484365625679011491793414164616482900107106373487548647651208431379029015025119491568290155478335006389741813422004075664624499631672182477165945968378839809207754843044620205771737793626125760398356907315133749483071080538574508948285544674741867188382463399354450003634363940699936734923321013560159935004727505697930711456082989638554877375365109089543183359674501009553393051011212608850726880117909691597739675793152409539548936943467497161582911367599803259999936186635914749148543727077483980230478878987558696358387719196998351833874622149052898564126729055468400586898288570777701676521486509714204313764297669293314043623692929347640303012497953423379697856434779043502068363746204428597335594746229112461486486659943748053805144338792793737417553433250490957101719855712945105905915785516400069479984750316109287011199201212993686991834351066270868795525077797707500897986798704183033996707234434438019805682152564864470134759824958907604007838539583374369792703750436961653223573113566281988383199518134078791494435373785203168701326861952853038196298038894344719963040067757153774992209714795702876857620750409087218845503660450288195742732805742478353957497328288413279896099745686488668129034846761492162201544481921539901339392399599470100986822516629504054063142550697047025247187908985759618554270594317480321748801478543247433141536439106549331339640495812017139205955243539115639269647328369164851987939362954094455416143216924403301975738610317760874340449775812659183228054203224495072152709473985131864267067140148268024001656079586776054994874940218815331750695976575759219174750117251767618544060753045128587311329201203151050518387738941902487222181379628151286747626385886290469961594363118252529409328085990911876108096785225132009934763124761653092303507184376239037398020458280265659209933366351690063874182083133485956605671693561195852874022469753267175989825788451532030593600233725370597702901358478279112940202555856275591176357404129764322294374579531586507568764686066479025883909469765585129160769928605453142161122011061269307351544491200877464591027309847208594271940181049303612461780979953836080150632922893323356972467406601885921822176113976852817140794702187508502846089669864003045218830052755443595186750581075290612507514094335964390050243935445155231877358468271230124942798026960824581924350027936759916451665094612750930700143619780098090071001288701218820943710539900362529983022031558864206218209963303853251047132876848825005677730047282337160122163956362825276371275412890623423161040231576258404867860450183587770074546973460869268649557435838963276902992491761328632234923064658438981869871783844369027919250099204260940932361371321220205562697361409909218996243397045520649339647218036145465922805065333243755049684045528118702990406980215482184180449327357489718142650676744175896954566224896593553523424996627288090085849091322836802175489933753403969765914918197741535379859467387731993529314159077166671056706946199371385339507241594194019354941210797520623052056977611474813581270498266768827411244938973135637754054756156466656097550444240432449029958500871082160114121288817783435592686112668728938404583321316489849330051762749249059501092352435026012448292056819359315439556353142569533393757279409588422980366460499599818280932105040946346850706276464745177497207800253728972328898567796649959749295391708037528829420382207302677579073430223750316983398123662363232787556221920656478317303765601843360414747499052125168265322094127990127127045687743123111152595268716348723046832216404378456802391517180973822419531479760820710421352121678851845582555140306636711440926663770696218294505197012978565106716522097012996558170667165516614158779977001896723511154904109071902596898375346072662987767376027833800557670632770097852308159766941591812919900498795781603354743339522502937762447683171684510896020074270190317532476772251806927161905160495293795746891230514877464988370905668198380129806983548437989183733639080758471529448700929945077369022589713266345859187884265091988661086324082751177750536569487044362838118623341970142437202078548267077170698179598251052056896691361996995265937635979879925211896194114884666217418826455129082368895201438944595648885396478122243660669081403757117429103459998545795717747822491897767482706495171925768869974755030518354191190166527988363663162338902768507648851943251086902027361420903219281110444805008497763327147286630153243164550057506574525133189068467589108786420416648713898836660999108570885320611697491992628654290385541904770497278700260793963750294066954414401230295505758171157621223022329461261571545821637030380258552359037366869845969928391383373055081803670113923526761523804515218526414422305140816444578786019210888837661389838294753074938228655607744363606901489559756855595515541578689765794266259925660987186203688835797237787925577091180122019773908319194944759628367195490205686928847096025640379100510435277409463787624288986459553838130840661078151968815389696120986994062339435474877437158813602936895821835777119567745464986947399651859102099002035776122069722487491935086822814829372308039486036223985573182238961951618145202472772085093185209101393074257304744612700836287517630679017344349863838126293290670941867705158147677058575954657230134295204428603985608118725425385227557713476679119077388796228295543076061365582919070938001599616731853003447615376784926686518904439292255811509182242173935491620489057867134998006973831562000050853767320463761509977780549023660748333882671640451967063083042863295771396750243597233433833680696514388820306824652214601562708183807862612795520551390503661570893786993894191445746201063735883293234786317518497823159178739904337681861194309970795989732587361757575538695300672645204811076597383178420611724914095866073285671780082261295394470588278235908346672138000219895933174898112357219340305037174291155688802819832508854242856143208312222347926312514196695742716914086893419681978252691443767353896458954530561389409888912911556821059054080025419619049337847397132514011533148486574795983295703833265976712641890852753835927807630417660059028122399150190246520524104347494960613976112553622808608691082364125170877711998386854392264142238264504640597774381921751362742056058272274234202630155610132594756470983423324063645573528059003764728932241872977288705033877824516549097190557568193137448998379944695144348861934535386697102580596347470786704832631293086674827212747615713858666462261992143988265700245103853557593297625257962788254205153707558996777281425111429397245280941423081152483600836172589622112501911963035296517166175456104668790904482867013732239981390582155745727606152290904305723111514051885029775383642249387406515334869721266982466645352681335369200831170598903380499785848647099362636142543087676861466584217733497860893390979650983451771480377948623849620674212548763333948403141353419041623817137489504934756044729284722026039850460223486703459719095983311999146825634965192517016291003434792012050134904625672394719501608372200266879741046327710262560986590044382770321666897973561586193259235547682905469380949871777455812431178861722270759521425305012665150058967124914689457622668201432486954173431275550503329758770083645564964819374245516794861150289878167899417606975704294949352460660780643202026981990531712257495777862971986252428633262635620179309799776128322378041426802285959944233136214214672199140492542591465542696585112911759421111097676748891954168259342300770000596156225008960468625728450390101262316219597319145662199586524240515155925696825551351098413573633924625796734455177075592988340642152128686141343931665542822966171744092706501360972796021537943904680126883747660907407553276707784830337532598618087469832778346147811652161490749190315682298982141810016031108480443165251362892954674715005581845040773532012090363559849156677494688627047157882598825987288284423274489048640649861442630625071310415041492867923070175563680130044936367273337319067508894490707886929990316302714772511565306325287874846613856370750609369266152296533838571800383687665532225918390222966384261983834301811762036938952585622028638386385013265028157202221263780887437496689990545775859457133892931418279413095700212925793016402741035276604068992223587273991921144232503329087422029433574289515179815603528265511705967473628263477019446906748908126183526229957188592697129718369907997768174993808321162558619258879216708025579078206561525862427312547509281636078211228958681736751949650352087489872210171537331986580885177679833526985717805518947959003736432209076033071567347265443848093720734139398320040291854963780044774366155345557965936307974330204753728980935439015196347372042910241064719737305404162562302323590441934996244626892209732655454632702733171036208821051508127823920125841885408600123356061463651116091667704432434908626029318390813712692436756091703998079571995055921741938930120021487860510101074865879478066056719509761449128384354513601689453524642145724933419106948531765635482136381156028928859206806016215129636465418095581572171414065731082856503247794017243911896270893941415831381631202792874767832687402515432857543603019071988358929258025725337592112144414587092332572870566900124554450139571850856726856275969128788562392399393186827098795121924711655869016534585520513952387744562289330631741625887446252611131745847961445350296056787684946829726709099139589750956653523318399059329235682737877529696621761774152602785830779983261923794434363644243189755207958677991896947867678277360948468056305512680579862455378108655715323297478128608156714844794852465608119617013173647282812322752265417557413711752674237981646075117836742855459836423699317992822816328837962160232888474992813028477605026092259291547196830182272448134506122149698846399294534019228558611074967192922066245498210540131447384801785967059707688183264358068118886511258985033677553725224846659032544570758869136243041029188894263660745085466815220524490041547054864590877350239337820101122917087859876294551551940715982819604847802175392497324880310776015328325889725518374520569990999194190779895930382827519069467916371462377879984542086926015247256884054419484411265624844246009225210576837591415180632773678756274747616173639047305506229505301905705115124395112714038522282350694596738975201999501657319463503441820060122736197086178891114962133056035582174028139295574193398945954359480936236823417967461831959119935794886986213818868455469975984748535493674928284611591448224667843407416914913332885096456660273941170917459046436360738937666841012930142930358947768462422216741294708110347609698985638022660023161517201741815350347473978771648809571590367784554683206668676678604659246227945303003886475856763365960008952528066544680048439486500520433329916265655859322147825191981566706374672809757973965324004824287976947680081862134190912738510817218579559205379755331612495856805915843370974940936785834825105945026928632810195313671296186498286414101364375370699350135315423069007212305202652036253403668940178633981331318913461771364387890155707029206108704809087216533930412657307694221431531109768171773043791152304197646009349752965390464825787465294323072850355251897026743321254777624790268532655682703663381116613081620992902016855668604291284617971612404788071220698608667369005082797659250654364088878373799504265306341423329753193754099278467908297288243167545979727457268914132045597637140791320495163092339752029150185516154735259167065404807550031180345047513801629505742880254115149848017308592254146905657348841838465132754103250301422693606825451752252634788732614892059482479852479573213870439248875820480312116565827179252210603951230602196640519822440672172856509971072996446810622783689782358338909296449075783846624602983835568856610328581728231831813399013812698128094492431318549120576457964722397275317160059654043278429349129605883385737025902244299414599643463873168089569484671822564002909567711895024324278247608983411331329284744699564691970406201667761170722040129261015537410850598484833607817852081319380239895189288887759126937111274110392973170524732351779644600186990258405304019711541789413407227596384192537677490396927323022950506302956656192975072638269667992781394894028606009536808706270660652542666752503674931962350325383593748382843810023922459572638962689073506505298015218954976707198322819869799479558012208483035330636758604710935893226269366471865821683319906199276230732007585252919264734711155213706367001994093861676155231389763436319075387269145770945305597736850006309087041865598981786908255290287173929235576997129085771650573974866736074702538688025893237948355825759602467069359598971227519632275184324653077916019723395919116211048537496704918271091555107965597214751155270024174807617213666389130462435660659252935964610058107545885767178903963255260239807353024531117626881955218598282263243167732449971240618607225734766347971722606316886792228828140316178325027330618023126982806255829206023709032293070623348221655657727321583118606231007629497910760178811821700606303995949864964931351110001153657575087284949260050437520844343315235681313499992126392339016678484776452199198953838916009916133444962430826907961271322548511591796197434514209622380994762355942971235458268441650115000786011955503601740976333953483046197426551740440478551353005376040594332895144857103473288666018995870382997063911136649188033051414462327973334563649345014155577122457920050488386231085749823379442606840848570320925787223769504288503465808689727784145918009268617146287375422957690564571706215563896587933317817452752530681081243808164863365466339340026655952123440879861121587346276545594886231100910652700065303387247155901058143528947747442163582947120135052173493562616756239527445608458767857502738483139237812212433473305364774251952029363358578951438722696566531243635263771806933897823641555771898270390657153485251333735390585135486414195625898595089079250559528262396359729848503509593569392453418199517133193779943563788074131969943511673598833319956188077469175254825093455397703237525107186653444202197207605924591935119769967212877417302245515775644536891636302855222892849934550966083583576857398967449268555685881817586002291387211710843121261446826950475310556148870055719909540823583160604564362267365526831005454172713740606387455372582628548485538751325328058885590883432293982617611427947882931887575055802728993452857292316309028353349630446306695271654443201769361493547495751209503248729547160355496789683903535268851698169522378985690435275337152170649826207758021075184273597333045143636402549477222307896187156446793746243929668132849815477079055747927663863427028453804858559365032028177785435435773309522748026533607965224104507552346182165096583856341921195882205314136151560375456300795176763333233613132793371083620056515321733532946932966067390520688016227499540761612687800753048453602058572990178181849530938275163774405211796143676380607021307128581171583435391630003430570715929351037145718795945418875879881433656213972700481621494338908565221709150690260862046794906941768195116823052192133420496646653707900391496551747863906124414124559134233212123648413629098758302507123802844837055291703504366018167295769777028053498335020412570743393185908430595754030454116136362299927964800155179818122410856357780630441433023906065127998626137109786983889335139035171648259405974274698757342946842655911786331993608145900865610066664804670340956662144789134835934620428095319774544126376993565283016188745118949232909858494637449222948236774507091233340903517463004550796845276570522208421353377905125641759126336314028540378412955143673282778079194083629845809287501503478745341228277209836064789358863616502496391436436716027257128798821067118025747450529183872070406900777424625532851792664550506121726109528948390743131739977612083587463245996931811368992983699853008695346868706475427120365461334609100716368278040211947255260515391298272271983946959053887364966630085117862538841588218226399042874044683377178812980898418772985880104889861506831625227694279327547933085135113426914948892121995289712196342417438265358483125476383082054986523275689205661977194876460102409770276118964771971708207031331009894240729764788398304865664140389634180132784284824045106021967843384128338195021838975449171405406039205373400644486743364169858320627555006710687257810617490345017966351215199446592739840783112616329129016757464705756067182059880023296837200771995292068055274749809164964399049558540127457950419540076482023741203722376419901275836960634331667198326493690607742759996131838760040860430436114167859025704755926678771184988916227902501563764553008058416353405243350282370540155187176382462315390160533223037140701566412939420682714794574042825787029167998293202121471491880854320607183523891576327479899043728102531375029102786140866735388236003348695651186919133793865278977794296786932488937436455608610855250276345024176446506416966797207520381284807245687129750537210752025924359206681146522305593091921609768977743891787284015978939089044452432578199089848990236111864834065779682951830714003951324122648010599492876544013755699033110782905840956146013099176832350551047904559137856655522952770851074886216648198462952479118358425808036467435322234955691355748077697330654672491827700626211492324729907278107381008234826115940327282183129265798057915595722635556795507073031263003338372904062687359829245438907691012415444649891656357850723557178878530571815410264401106693700435261915187072478134430390610125190067517303245523825486592983928667004790190629504567219833291783626422124765107971653443586642184467333314507749759019230269823620057324385712247937515879020092340152144726488403432531672818846980135703545798894722966429680522692699294662124782662448820695096468892827370379876600928662718215005989502619710471715610979765640070655783294326353574393035863430873396745461256681456701954774983656727042830759514355786775216395742476075128466187244350772306674272687179563404296769797462290806250258666989749693377491166387562245589387465899656691606677694824053115110418963839951619899532476366973012512052882697605882992064232848351541925447405083959048633489071421566857330615475799752748713384612852420032062573343315591295774505230155119228435404457815675119785147464807730937067303965087994532640062035805405357597900941128895149814280314974954003283492233203865359659617771011829820128907519750159475034340162343912067673067099179285004973133140318876399057197484918930272948424855548430193318637731823192977725733124536087893673615990240199431287260600338894501410837095170484145067816113162201054446835331032262875209131894000106136997746297134844778964675526700714775823104545069672346750977674093223417011669291617435530164041398394988921377609484801161301631123152643710755039131121610486087308797539129795754709414463234822774139890729024287542707209484575095430585218569651427362418506419449415635766769028412944214700308337954455806530139067503596828985819985556176537851343888354250719549380409370249069885716500793133917385962906410853696579444314592146420478741747320356528437572548650473003705345995586772128086934250595396127683142400616441019864295070700488210105810290806435420044434302705942355838128695545481782744148764168139586683074011007318570377125108489527288945380729413196843121422465103167092024806687510077571723612455366752264414340602302164343313275354754213006124990434907852862997257673365249358620977409420650538383156216525903317803495374706580890892010218065425510566086861335616795806849877023233589284669154324988556230450838305701451861441051802846482964994860766960096367234322806304456842788052409480270267088601613547999278210252746281686435053617994239583224061574590319774125180458931108681790545927139396407797095986769971476479013742152431068731954098022367610048212824564103252805544349981917838310885462323829358034959796814042951850138389829797628122899713948336581854977450179060965790062941625811610686225583862489371238851415958455704819844439292266997600049785996814195250466437168212631785494139726611338905309560198251796766520005381816193128152073572618859333679720842761133115127013152204739023857429908541154044660360391946496059450938571063561144380766768897179127606314298631086600652761404390410393101549044829796530783271463830053921979247262409618351370785954054727149650086947895484258519580008967251858225372374595584313476971325660846327238176076892847002826748595765874125403010086616054984825866766494881019066830695166602595963539150629956435693101531857009192105654823777373015478902620260783155035098385924202997083355196971076206169324203729664216361120722557170906761940852716153638400683442667235660637422796999300968692625278900465875329152731814543447149161296653749526593589947535014018067430096086545441880819898138772762920481536481658926908300861452497193399353855419992909002489468297465723887881401741062905121973883573257576804968455471663517075610905238883507523742327284307504432963825671632339237297289604670128282312596938397286047137776711050835735318831827188809966855278411627519629928973501099410373927648156643668778316622831782941943083868316698412894546864610203217233412079008866898829995913568638029681577943877751126932127708414621360300661777921013068283737175268657633023849554924008838090674724569093231047381476669441629397241720164178151910212664839185003302232179791370917168618742238156928700720242751379456368872418140809505451918945889361246494520391387828418330585649517537926489667976211098771579400938801750449383901160503903576329692825770679386276006278731913938374159744692322712467048586007363355574393489138907038272450487299305778671855198789796362215650818341968327198315349452855026067092950775685921247141966595495226555332718612215977845216108678914050226735491486708731946183990184806743329409268117619780220410941980248546524951366524663875993801052589425161530624063644577784236533638194301736217344945426233011183373510831447881554451860619937121718884123928642889327416821639269109408531648885805858020170755649177447779718896168968985671442581963509201183772659689720831924479674914732350909792362049515753060038111189944966981736255376577178651391247766443960179716497362108117971784126112925009668963853934025283395452135395651833583906376018886506546553682207665771890337573709571388782805337272091820574236326726125674430064183988605181295216459777228478882330724978924961231973755277577951058729657808438008750593351933919198329555931432755997988990501390774424315662740937263224282269212802558958750535133342411744578044857760138493324032923426417059283064251654363430917438652959121865065753590420027570430132319550617052750896557648347981112944779044056650058265091818678159233928969075334735505018321113083067606345389368124329862183939264007017032243305006388331452540166331302023405880235353816871012776209264159270410476329510643809004950796869994206291373797135791004206326469514846469354221507940351062907911519453575412169685614437174625867724433943986133905981897252281568457191446106076023867057070613872552247484060147850140521052669410652463530332073362938056161088087776321930843775717284670212364439883681444722633420164495569266655852208089041371839387751441856842516869694669188269795528345890566057495903895432230252491484984132551780867497799965523680942852205322686300936260391551506243239628154528062541601425827382545465978672835065663250875491206629190763502590314136207449869226182635241605977627872727867934628610647529203668295312778138716046020244324662028744993566237055439611372415945052333583591455697911378055816846945823147476294156440791104547873331541961117792792621895610790798544123850707586656555110730453188098835425698796230351996734862596605448080273432175756296157683024318715593134177230495698515466028758338332322594744381275989006607944375899197911351715332462967284516002530280024891193843689966378627712093009564836873616548056678268475792692284004846254683758991139193693453495913367741114430525292505146615837709611507517191850636128629953784173511671587241680628393463021249208657235837275153686335469410742421913160999248880160254509494241374488332837530074498119578081054126373507761700353160953158760253654599388305247231657481670686721017216613921836861212565684457248869489372374887576811513401325685540457040230346877120564247662536104212632959650345755725096999346604213998803017011655527152958789192430415625029876224166283323113163113462873271749369987037434335776565109588996874659524509216997883104678773425573237721648563688973762931476049656327836563083408482110699553647347670970158192855016328281620114838171018798497379536393511572102215444974681891425357238819295623852272299346477830744501028193283129657063798074692334891487470933114086641058565262350652169040629871485891723807401718848294249559631848410192648842446574994883346901856788670414492285295359188590167419534320044107749761266473384552322158591645135090869514959699646539475714657021632939754955461839137176108212008213005086554855933321840730567694613044534199257635314638397584832627910606956367032162415142475311369579513419931946867250804145550634487154108836776918633973456903676314325350481882791968949648172578152155596970204058575605686152991519426251414658548194272535879821591555205059436720553715290230644731611800578225892946920083278249755571271733951655622496684932436458282380177344003573799928210484080091494410760459054865258300004002430186681178101290925271391279126958899523464403111823829027998480774346736503916402973421121265288650932121780492597054876814551521474510536014584113016011579283572956917815905029077510202451208973925241021238856336398138140061728415848820003894212014128273496800833325678765958559785421347538278551715392627177205853318553250729214917666245912903610510489824649242788282061300832872598259961025141678784300435124330870326979327339189118230442796497889911796996343860761154890877099197192271775569597283903729220576272196606866089270356496198349875061236533959529609035353633445644500730634702398886231874628736202819803592279072191382101463326335415623541584758121587851716092702453863014921621945503376145156844029123708590278705382785327376865466177648165068402013303790252897655240441181659080912853730207576602712855008644004978968698316689707420150678012180130763495466190253271148421466721106141360300889618665617641940238646952475709482264836307121528069657432530887941892142109679678007426846355951622745804068961329785490823788216688551911539260718003346246091636501188647525814402140827040774805810937714294041438189671091739436905346652140363699229706704500792152936841316319878342340557631140022081711159776691255783054298241429021842413384745959236845000943551484790835382768661191603382271224017246186415569446906987862537896359611585416625956100458888671891851763947883774444932555708654326532167329783666836055977098343756276144163022433476554132389990010294562343347083837798826061507512149688502511757277775014383242252356120587736973724803761324085356336049420726483330783317132655865222923501391391807842922584846801509237845709358423182014975166424844691553520419363679141814447457836281433291830352480883899731391266967551278156897979235469829776679084162330160083601289284420816309678692746357086618260387912425845498172880051297742428033232915030746520306914961430602778623341608897081166083833265306624682534009770104574731265164798182767145633705536753248333315126000497071979594424445028238827006886494404726421326102642358475097947378749231863473966857111678354475304369206868354754508071321059961233678038388642695548813116706864151578885375167844762594427666113755093699898512493341922636877659824975811005350240774524469896114524059312470371170753994150489075116887166255279397436929060274239235838013433465729639166554503882498773842168142356233006055099825733737981467134422326558394312743123903234342569671447035114202211745031030118457627137557218061550491962296287478817108628074441167679352115053315660452231147197703056026998053505633433096341080727988729273448712496790909727448063658247392658259590125857744776039451778728272066133094858344534383882324999510448497233680319120902810396486873352583333526480922450487399194491307195608613526758850533147285621898106011525376095988880808267544743653067188610337039100596400934842891084000585481839631565795124353573923623294019067601370060669267201113575996798335166273331131526025544097294154412036080336237280391839078155368253973944107034939962075731238094570643078277693983591386506003132306561894428778087685754792223915313011881113001242529144321068566292796948267052388126832685944430950090299916458933714062594698939472043071016311165354856576671181638150436601645309279753371952013461649283088884464423186824635118115048899046062002635372047598759678243273529614291606642579084178823799460955304602536062613277730895123629831805529250137764353256144602293263897585532354057613974395695524827849931452005847384455341644657631362310213919354148126049859227025004682893102709175656115589293270152833817984013702949314642992381415620737829595828751325849226215403865244538121874928036741463756298864965309228537944394470106253000263970500633947355166277646472079868190886877661189259169507920703325888141743697436224924126178479167798107353117368600090587742652748574361876590951298653478218350438233013338545519468968011179768508874987443543547798395497386573628691531795627897143476069865597000423260197111818932635882414434906543311313424495524590690407517122661076810657940042492122626166609828876628105522189310278825740086151288535118999271850151603326177481419206116288755394645668688598918655097944466558370886217467760406125523950869329069677448143398842961731785721808867386660833850752141084869487921771876061281293174913451563912676889592692798457574043230634076057124179288582224515636682114632948663027711626747593307403877104247836837265445328680052164488016436497651449621883263923267870833925969099876896051764084156731688616741313582260722178419527101640444096201164838434281913447765979257717958512873470573314130122165060527514396317602317119495740948915052155422181414146736208539572664194447052619778507587913796155999741023705701452637311925141022596416399765511086403827790440484462528524320653250068123821271846672538781882361753077898210829797873684019015423861132272368829340740722859395321912687239124072660421520688771920608054688689216497533476894181528557493512593571059753374996983065566719562129683081037309856003550216298678483210067541545806259698861118791679316808721809903651854107337203492098222162848388802522841407963866260560281565625910933025856260382424961834262728836358942725074135784865022402933704765901457126323963654227340258430451146377814670114011362230504461761848641011662286176339096040141783947675077132552788767216191959700645415471460006041852723927013041634105348869944173491619386754779913993228374187481309547829606958254251455755013399603619750454120613872924059484704507293991578729538153815502754411951573829251438435813465502822804389220983861159237321893820632178987835330155707751041294090165023969750953856077376257175068811404522061875354799605955240857072252560727977635131616714711508898529356693794504071168817389047220798419684415783935099950100636642876962622651709265393770857578098912340204068453330046399195530358483953309791151630405557406749982988552841178901827577768536882495923685750607273938658918617733225459414586561514218626176653883969409069187748623177594510031863966782718366105754130279061074765100068014223197082349254283211493508355684420914294264864216274632958873970472565410468791003905621801930615273752732794467129804113749681889868850632000123238160797554951434761715120646110063540143918656998193807999464525676925363026586663013754874300265402589902945143272787274156009041916257763285007964367345790363857310504841365685570459187413622621211762078891087336833350630966885653257828146274770460487515320283234620857997302457447367788024484704275638983703833236179730579978523303562732633503064264547170561777963380846543096542497267496296104076061158809896064233313256079927007809555718914258571234333521670913438204676861715490269394073612893845442108463508744851437442487668977432838538607973375808121078358498825912853068370414098632787685263863915142884907716459491665627502821940717262438814557236406876413625345734062037421595755371645440805522623166479098982612717477151487556854954074332910810579315469739396339836368125405388036961009269748244923023326784641596250391326381658321435877693141951579195228798833045733164193959468912404567782507094143367707382792369671395147012323061846346039946757871056815150152476203433297434362477709965634923167668880608332000158378881268987614506491257555263855816460928251125924326404818911500617142963176018755453739534196645801131940027795239950724209685888185900822572361544174482952024125642156909345353701909928833511427342205647403803530076011024774759825824212973375834431999866772250695661106804410434793696399012540211228648121871958108684456352820212775377097578758274344522200837837142936921943955568798988464650654377154342145851775501594229719014024073579327987164372427292923232180490123893535734672227595501734915307497115163236208308983174721278519668190237790168865261810488139177490112946676389409059459929294635085065094281504179214143813053778399479413724093222761851072802449358493516148139386134073675213244601496330478001880446702326283572319476759867539607492254940763686825389133794572740365129433464129095856998011871421172135488372042145543867989444767439849654246909595427953213676474188877565718165110568555278793311422264791350947621144960719578470910004858927317106189616190898279805898926323820673817459426765454819420973379453339560750961915127754961032559014852500133514349716955832461556570138021947025153481328070193973196653970207962376389997570504413453208784552456636138563301021182299370278527552870147243980898427327478443925808240404492341776764740116693109503401707395814951675835312271217604704652272586037451027156671928947057703128626403426999624379040996429942928989295005084100404468312494880081611651237572671104570995148339897565453432593328806176882843467023575796482764019374489093945399651489154497134820550230983663945771737197613825965847190652329495529367632914992548338769680927214537815375880993915723945907816275710770119613776437712701463695743960766681163799342015910782028926846737470472949642155285534047135038309820802235488165754494960928385403591273619985546485287937673096979929687496469351134412407509113334463805214057520565543742792723806683525200789512827193337609283682608192212729107214722818597492897171602762379344841384541533171920199313086424325758122114651656781369006472425516956407438553947585567632093926142753546313840473346598030132578179866979793575903110604877256667272321361418295823232309373174882762913883641500586776548595755704091349343388821767490738514839032320199988470890016553602989912226883680396701150255984759125993207439091274099301153207587636640037618151488616754290861055187529546582646705989981824498549610516576811323064018188454112839770285352893459493315886792009696532036271061774723704134562247488814208561303925442014364856791168433786388845403936697960727387500771023502183633501197180573794834488318172564688587474608981443097649555610299114208476180088401331617050753620636881951100361382961562355759206677546457756783122741567716503418283833922060962704644699909122781978335663931627268543984913710878886421685067028464720221216727235727631336537538490719778936503671608452953982626094501511614155817121261505578152024497155060610242315981912129484335766130771882913401183989955916079467890594981863936763242299475244349447927889123364043884114483001479534296358118623848337720201254707379427245950421426779315099028075448613722553677450179067376466400455845662609172451537032468899163581668462582809600123433552771294720561597033589856706738893251542868380829486741850612226747680235224453384593815121875210099792521490800971676861765448307820415620688323479504222921777066333016652143471771336046523676681347191406484300619219928781429731816128619467723936597714584773156817804701045215284248420402352927062029653658843859530747055395990304813548781598754475079159137993667260069436914941664844317616502256472417935836306313684552948401605482801897459522188521648244280737825295364936452135575361495334578880458889452608100978405804674613457300574672011539091003454925793311705839059071712749039458225123561160172252956082640520100026749194627832129383383310433876378635018324802862710806851757235936317028016309320810723528067672170732132128418706146833294294429390923918394679679405075515954955639347749336114047956493827509967173955378988860933504955303821433863723874328435335592264043261373714770346532652419698049365524905703813544148460330231735506656828198339431459466568649004579671903688790374326115118632101343452573550014973490516628972586043955068370532805983347039700907987504641367191273419454816584930636159670719730289537147641349021737477656110541719841284159352803908936295509303060908332124226541241516559915150245711156846235208648563560202993775970864349954478997217719634627861659307916594096750294475027799500195584694521533682312948406054113619887453283777826969506238543633722549883414112785134939512756609338261857570288684912869594911081930790372875170538281932745350011025804231950558658004362219929360375089557575851493447936016100945765172761969808584835629606888978567105878463279947677950657973018394075226346799195974828537332248347014356257069033144824179760858651561575031180897222957099063245004043612036491137159443846316824061109162072716204278592647024085352711243113781379324895601554779525476274181029500730823671615810355215155845748165456007516605063166775659210420012973320718996664317134982908883500822865535048335565929393842698773347019284865467524686003222030835846380377524449420502234763636601952529669653537623741832985079332185009625124813590807037947091898964708298432350001524433613630739426271238702253785845330049978023867634133565160085626538346229378499528149651336286590399224595660665181635690505508818114852591502242244561051478518843890345024686515795635522250600723948841572412758357283699560470942954235184084696784392777365466886582697709244976199238354298517266275564122626307175453800913955480523630292006231377323446216370405188772785178603328996997736833809616984484901623164858223162805604633457453741786807168832811416053562439359548762469894415883340095715728248829274309844569344171737242681138255631375539080849296493470543587087712689822894206147391362608954537581670737691801875541196727116319473879847437303714014146667297170506577606343181319846655600386478741960472602951922005560357148945473911857228196557914173044282887454973919471067899669078441913064971333262787813239456817186405982176644885372243924515346761756852158538918820146241350299189256116826780223900426598649337944644994268944399038578781558856247357344383936248534249754042436004527367539072272586035744686529970048214952184107990621034707227001438886543037704235580740048501842761373643295133754090424471022095458527278978536584021406364096683946230747294991609251334065374722265595453453801415996775088419158607197580150793516295856382539599688004310357049445442842790064710181388390342908865372832197878646510608148079825141421482495639346498861705947496705589573739257698505902719565451672987772557029392039211387973896184746770834243041526023631505788245386037197979310230799979854205452126169461622743891913496313187767901511115667149222971399379048830751031981059062573619270629998004452365403277284769061150908901171751141508624199192952353763325751450532131905325208652401624056819692548884034923345936892275037036444747657959904642659103632708995963428922443190649630405724286412372742253482989778277544946760142958725311590501225172553305356707185371800579744192795053680331532843072024189880240583806767013781682499531927112194300161253332243127538190833718003727366437520710365249397846779802901204677130832904005131831276577725780622746114096112799879220948617758440066055279886544753030489622726696988469394293083330644886924986338408568568597599111530594298653279252791267035264259734990232161514491033560179479205499539677298572875442810663282262758877937255244967304124050311707839201601025850367156336402506617689597591097128179753149740298636669788362854962918255692424158861975839213084713073946807698197916812766965791387802817126297481761763965870750090655761825830025763021705840132572253853639434467719353213217390272813458631310100230562606566371759889461119064967800074495354088703912054067312394246736194342097422896306292108666992454424511156051574909162356375870887056118617438892729273154494481963443817476302278766874255654063302825965373283540766880481553747042879080979587814629700968597259364527267438647254421222692727606266042191010056129444426688917055129144643753739373451666470428572082232940665102744149377921332126192484900146777478414112453018855663105638196747600185088027376621302394868426288183930924169998945415381481991145297449177490040461857025541033161053572569031162846395767713067291836704458862610169199073197937305694259325406888859226406052954700837116916155017901957155558603270732976429262130979784913334999904084295324035152143995667053898792671053899456017481846025167546416633506926354233527214197843924502676377859648633452673612201961597404077739086820193082213691178744189054528723054757630057604544330239542237534366576514188318540941147337902964253903075988803599962765944665164220816571934650260774437681886735945489065072972987853474751047822027784402975003653534219564921739606034100886051991551176544680630808031707330514880935161902376721178334291197474145813850641218022576540599582079016073154517670111785502594586978305785877200304349490467857170339417099783081436516513583507582151112262787845157150340266991641454739097729018964984901458944100145080332049469561171538087400153713250848399077334395628935743453558463758951837704251609157185805687735542271033585130556722256542531454306156718198487092845757964035344130679551916850137812911003978550299870816739367480354511076883012253806166909914028640776346547138909004689168100958932678190441176662130289430227994204357734242532597538577539528347904214223337025030041561696229076313114269805575896168692866186382156720083352822110830151002191659370722366265064169795406927281354050713828912497048008500945007856093960488219954211693129099498374831908312130846205045341856371493299175377871730683079256171965919790763500858990191997934935356962399278566278722662864694109787575140336465023697669878277897294365573824636791621540868204703698798458089788399439364136035028317949098742815314376500395433111606571123326923532249448717389365684385388825412032066288837833345089130860408212363781589573391553267570345335658440582678242776088591871618544695549818324209067489279014612728708184371888884361576184458851238045596165154447406950400228469387983132666156055626370819791016373035874639588984508363395361022341817878913682206740540937106938342623944993721129598938469411153874121515554070723613329347438290229122378757021335949805515521631984941464734270583210853125601244927647367472502508546737958036086526776513192046808327130520715230208873201139735676450087211877156497531785488622530036688149217528834048166883066098407009326708100678000438866141880056264239074105183096747733275059046003035983504085582195005845332455146994282037519774844678256278499544504956217074098874695490333141384823506063649352965551992225977332962923957475780487020020821285011682834144236811675718278494738932150109034314729867484614715013564551182186623041369891867803497439149634388168761359319529186406687218492103555296341420164215246468506537441992512303522783794076524112262782558918156272437070695536108144682369790230201238750333728366588886666907982684642257473544087526265194295982675857830627240191249730922656599987641087775351622684314774967724662195586770890080028457237743796621336436082561929197200528249688281681760447643634725822930854634682959388418438966305006476418913135345693026864606134285778158736108123539659524867756688187597027157361941796974763529694982704990701270603047731507310649596791535727424888233270754202281209117601071448086948538433016512071621789004670409292695265566674515931062941572912247555367369484068041268615197198005640755486663457623583079561576710281762369056348358987177802096709532754556341975208494190952673709603098103321647956931911048701517621498923676842173045342235499550684880938247183283204384355381035549409917639665026840537086286878387892664777089674633844770679471171818785894558439129107506568564865815073238158500258132896310078474980164324091849660284925107124561657013770981835464871099753571501624331147912088529856088861821036147433401975938450319097739105820034696925475562892751032794403114002628010253281269104284424244857944002180893698559483818679847130165328556734916266754502885736901217559430949344094758337336059262245679422627276477362359247454852721040096922417946471185946154144497564396132512303803469186676329011600059278856968385995796170063771584600551052338751710175808411639974181492897035710552230248747644047433746034774643329000895012670401704059993235999336200575772864699311122067047679343104761307353449750618668395821168326613826702615007250572959300020263279940733537392642812775058592570665057556963885174933233191778458523790026897183393362056500130993620702398391441348422779208946474291078651720087345963667195320944416433201208481714094790051068344988965177239862227389482698256999552201166848295157369967503627408006212083104052338338727219836996242556878426339698159063623943787410566102447482303031139093322319331720741016426041816608703076175028122322937824618041567417687690851704421477061824895053458697037273466849088860520628385500746042972192725867680659278308117598518837634390972746590476424162527871767865938258870504650713978213814776682446744219014429298440339234728002463084632789050037182592187666047153122237799371689586124641388581884453728305766496607026519921754835657703308218056708721041595977593211238180175843677892821625292757750316520276842606990400637677522859436811942084897526108732079578112092456575942654347986602429268181889664532469882490838201428217559272542480647944773144375807715770635774812677855133758780905047265565304981891842311493702653120388905894010319694850325696800971903336113983183242648676078257490621180553381359604387868952528264181478839137390931175936968201080664280571525957935943109810746924637808267744150423318917482578949728526877660119911219718627653541485969138529382607043234833863565363369642957408320363799196576235120744317950079625431013949473676013020298584501581057718261589394459757353954092958404218222780696932049271735872902600613613622559399411074471126202907407733451124880633239530940714526001054765514680997242917934454086082002690311699781924203274032305522198142367861852403751079340351053039903084331187422559493395171089346752756582316908312796315568357006611317974181632129624466876551249187162990676435340583947291239958160447558293086067776970533320621154022863151249992875837027912141407902526505975841396961789108036553009621876460451650935172215002707763226218231296700423015831389904820820299583194723226547976813710899533416218269298946127838287903676419938198200045440218531159729582754070985105519378527511773080259402087778303441180704511837897998428481785976917428156731210243077885022268432303078308758101148413609283723057477796415547788528397079371972517390750454753138844009108802549551345279118184940760488934614755682318119779309829041679283945133803156768253162140560693417760646010934290969809916476844000733868882207779651650849025581640795000693965869054021629394551600842915199207884606635885717778639294333866180427964952919299638352073961442427788125449938112310862751090760997403994184053778122676893773409305471143561391914802878867039423917967481949379930678574278491809765938244449590837664530225860522524158091587821829863316421265104323536940723105284460960374228531003199007893453148645911176694522203365378900277277087664640276487059044608758373891105506661785257706661765838989687387355943123642855363163088569700246564585604919678327929954257788182559165111962201947389184006863195980769184280977457032068578405435910297658428909566430887042466161143148225338167736733368252000991561718869391881207378206558434997038635543486674568301769370274906270528403006153230281414254102378387646159373998253929189183489269794232006955138520958034524647992879427724741658268408815827027245438341792671254771301939652327751012070305853418028787159756722385123616621556611765087422803341913019569206336656667714701186969971059689593379103364599364597585237039961805011325228164657155437985985080064773667518841300921966598325230258963399824261514362417289774533724752436111221354621385877435108673595957144724316503446129650297281772311025349947151343753297257312004535612924689150391993762624091762448793744165239988100673857862484354552524870979890927035519085865268761965829345893873003526292756403633477940993005752937119361787254885728762617992293947867248046522309640163594532146244143291247793438914868720991747932451612887831121698623503859364991145594848135526576489496743400527077312215605289051944396498566741202656466784019554329831771792524545213373308578820174077215397835261017245161958162343865159723189746291854762758312058199975707992962719849131523448442924629178252282748041593442143647346978850090014312666083261322600904118157277444935806398491417815144975743858211880427987887849090025309626447440173772620226250579279606601362648219291318351199087181513255902371319934921290493030201172266737794179033644638977574598004299312206507030058627562990871323067164862257485807828653663847042895080935592480615853909922585064810439318388890460264659853166552455629545599413958538568098284708130703008870759746192493386417038604803066174259284384404110118343566135732351780946261196475463335897241138513585214718378129534670951600240717023029802453505476369320644930284400097609605723725530150757539143820465352909031807869045983598104060114675336221682965430049299800537751164386089966897555613066857952510799646058913502191658864799091156818448287009045706500744029903513437698314205228683619531532625233530923342688949330085048044398621463267441049880419508278822608566481346957875926188030997410416007475718753255232921857690364961617120712221691792261247918157096674597475731732593767223940184043643642202143439115267566127860114227842226280337007001783369137320583240356890875936614224920496461744124010252288170016001905066239365881124282763671608969895803992369175249470125552077667880772249278868177598317975231189254733643586415429358746817357110654321230311255708565132395098809501441589402204907122987202642799937877024950068016211445260126354752752053478108291194426626173804768771097322980391134956157583454096242143350914303202938395745602755860778891064384568246396376570386307338374717784623244913752698142659190416983030650276658065921658280251891519545414686207585216994699280395277238100925455607157186080524117634112078598188332202849790727645226227514979494095938138648776614103229008317659404800303737856775141293598867429376666804603823662457776218722427013906314308242206874392672980958447110450582879407307835667762319260144667736149074820981438845704331679758299656783903482093085828720614256752620014964153507845958357956125240078851372796471549785075233076582870301993230999982591208467331663684037950963733478915166874962945432444109672673655573362036719597386545814446788373190178422138868743454036069250585742037617984658063399339123311639663026018280178542139529980908242289539588537693076170337088910248821902915965216801715378099554458694162205111593461643724793167458959735082815205078402139219244616492938815228498706319988720880181232841057139948500693318839880394976857325684824988022053884357749721655486979470076901738202655894402814999495793930440972917681855946491335324100697385466509227121579612896303458991082124242715730767723072011917633545513285985190754603314018902963586310696998516697109480062598146161972694260983183770904081409609691084418766874436071166415547105065972967632027804099596807348075296845520326943070726683342152773044460563284127216956939975683936048862736571707857037125338187102812924468319146613631086219286865713909263269466453954383154642193433520862180642714815251594778149101142769550222717051976773191879939505001691752368797779244069821088865926574665489245796083247879653949318275812882210722892130927870143441740975095547164318028727386855082109373458802878402886576988909488129409076110311727838496959007921158062486056464291199125041674937425665712656406273001829298477237578544724026429536780387828317816165099452617010406196617795430090519066218985617297587434144936116322418127461542920534655408402071957051581621440527951994619574389111488193924937463355440310768993249521008628510988416448993233775218586011838598225260016057258661348598388234923300903748147038431574872459969198460896348277642058487559971290871635146519559101642234239994911358501485905829536398622075306998067822475489635844790896692857321016415697799778558733761006118198713312023920613225921435447318121840917495621218898367531136571696978502465645001625692867803191770914709774339832598832419848603837085074349066913904423111081184739060488745556933327967134760848567614625089190697822292539422232157895287426264326658223005160563569471734567886410565759605389428780304281517880338396448574043240822737367092526701776469787806173359553120447290293550623854833464668378572267239751631720560442762392996805519459294058007442742977839278466913314982517608032375435590409059357509540276812407637246758121827643264125689518674057894040259922960320973901287628880951100840002267601188886660202292334497608682957946770879692594038224323709776193605288767898187145648373554525696195527029299814960903725569082809334269301370917826062764409614236950983379561119639662456711290923187160438941633532299809859139538148032661272138275475015406218916052058102871472045857937022268118506026946222136983017761477228322309616070404921463764813621420794169870813420135882224212851326477033652079682584582225515062415262242273109674659240740011138231610040084202788816721908742510204847066391595616222405127643139487662620779044525777865440251164506427192616129977933086149860744208411050154178730350995989046069652822373481730511974276146908807113457788907535422000348753122890936606323943110961754235909862277405205274794215876455820410015078105210110349059834287281746663219171601252707516491292502263108867639008687360983019996869768160508506969281091810300923829634741604452391307761196228384731191630704979733376518285221184445723977201660198403245272637256380516839686841833861577832719893302896534294643366520250687048204589723305718387820409610632668963401732110104629864628983943165147041109481960820921543552766573920656008331956920304972011237242976082094183727746821213684542936026634129664270903779640762583516872289136516156959430433079025441693189502794810738824712015445251346190611099636736468424094044950748639650173028676964388403388478645780499113728481550016037441043722684000676826577376449397658766903594327860355252636049283350814397743481793491088319475419151442260910703600534728088480575643546655012751546908582190434220435502037297289394459003841343878377537023267379227758215184278041258943050490396331231768714626021346346339109274152146913855008424123583355343192304490992794439438475616506914238895418650067940377314627857558358054827624533472874682020832326531926995403695314965310716453136198395671812629181163171467337852316924154295631684400105938136058188715158137517190534352855539105593460075063575880552745464908974280991094504869963513448988982018686701436449872054743870226483457021022794087630057985977845309980973299428304554854949348248974542964684529345442937550532297087557390347718649810434976918642667320583674429459947315962076039439870872467583235040533019957557270819239254707285360306740273888297323624580108252582200662256722657516982536200924602364215906679044722594555951920566327512715610902723117966601022230228810182173825214212783461459302694181900551615985439573326596692355782468376463843476924821893037767873287641949919835768207263302401136590741217969151378948154081659311855469374881578369335563558688390632485829479527922503189395055528755926645606926821501910438736190985244343667611594417878971068386755559731056567695126376945036261687156441653894249759837681705623924053114694461200154727149782575644193318535496702545975861239071623209615519480629628245176182694052154126485591077285646143042208101117841871181741039312402913401023179461674423397393624214318410351347266731941862094141030081943056729810987225418681187964057269078349390475035479944851913864691826989643597103648749724055091526871320879716286475754547558992239906275560366393249224891513746995665082190829440863125251875193283665033239225917302672781549539419056107929617399479708260299891814016978625258562748076865729336766883077634113972568019818898721476982324177713626458036686856656968454828423007842947709959569089800856240141543454168889433504157882914458279841024726647022624647769011804739638090868143096837204385702792370812498551379498579646277727629948242364685546060847571986080705546052016608611124275175757088566302326108118269765629375069341995468916212948597312865942843360454414992150514286764934460628437476929671850999222953156849620163606364106250085991575979129260986139103772251242620526575134335397116989436673305981938400778337993855991616129347259219439643173037733132370756800183358719224656126094739234818684272357028837970309811537030678458088305984027900806516399106509882103552029849691912464811604786387720194411053906248682716775458388951226131792964437442624551293298099511859761706969618634129652624703209041057077846073285910536754010540856537032315148819644375799069716778587226287135795847207741347761907211548865427424982252025310864028849222312326940807356275435457194499132680117887385406192113680372662322756551321150079432590586429118882876867342486942653996860563355583960190538527033967153829801625746237280472768441798697750519417671579948097151531633720003986354834738992575422909426982931502455467879577056755267678716259778520141593378356039643404817190433840209705701692250646870949396439063229943963288999445032098667940111478137891657404580220531971071950172544377716194354181620457022686920180275382273556537536934416198934423799954762274654642768629267217435659427693271577125624374984456051950145494155615126279991688986476949753927173973451341217361651922632646788785175086344886020436700959059451414042871966320858845056891175046184576647911397792379936010445228720685297189442459018119449597096143584934894275169726968229001475537764448197953768485169323339095727380112500882122537756012438395950131779905553820764611391718853083982084789139372887521613205496068486334069008430638533353959887479732382421151966867241603270056641756692952020401233581154257893573720546747625586345653625680070812069457442528870817092361382693528237677865543218415895894115390360383877533903161210711877129356529935845089040833191166681418342571659826846661331019097937837288540819276330809838386291273876247790595009167311473743269942783713657880084928826284335760996151518305853775498579189613774668465943047925018569771033491864891634797645176477061748868759955354068810522655351013546554212135931052155641158323397652010752669874002434254678133439331698441486745598333222156126980303711762761270396554045712045329897004436095407230738298486013330734414490538108577693176733938580072234214138245978564074340449483468788204628803495131697221693960347032870838278160025464056049944201491037632707230315950924279558716324829127380659288341529354624989585207370756680920514683465942207567409780184078323470559435144005751959166638133496241075125490728875720630049821400423117959566142679620220710581243823908954866758571769143291880867413939573903531446106454315802074009041146299589887873863464859178256483490959959088599198288382141038933109578184476864284826832061812723987432264108306017514064116038359301989432577911546015235435975169961582972981952664178372571987211168634951744139406287640314227727303692430154307962085773776443185508777752093163026924745350004484904772896724542126605319864185572731908073521172556731570355650243330609684973529540249029459448092744167452419736801518514110731016481300636275935540460086039270860717251024901161461250960796728597366780971531936272433062069327949814303817476348385601854874558553557208489739165809774673337298472090092817832829182068029982893303185313682041112475718810184535013814500130497730923636481257931844272618448080763039331963228210843848833551222688103983503906833001629952556555421465197313243882202766025979582807724600852447630004857165278655002852720749690158444545534695356075072981783510507719697963527386004753937336057847432242258055056540208631552297144515091476160113484488967272229920618728332171169328573753004092191057593884343726681284935405097187084277682426589384905290074367200663970250089986709214789686400015609918426484857615357996806957572329262298623554281438602376020680020993815314077840054663260248975809841743923915148913271887881308382400279789007557535142184955987815672397504687117434170469367152863467583770758419283362121727162689921199377181775671304450485092675335079866436959581839029552934034107109284648678615521961786322432618344099218045919804402082549466533193659726510836395442770070757860348413074509936480205632298158711539508754096678746378154055627879275011286443688393252736507849189105193305295842807158279754755655530323468306873466668348034003192575094340732997727665521476810306396982559883087273915338442895555224610741982610283944037994356741116122198733297401734516421582795966851326393474876373724927266931098863907159948987296028460944048417283795636837792725869078604608427701227517988883708761234246551046478461443728899917309356626842313684701086550926534345228016151943971510536276325868322392273999269063951557636319416903975428737927844992966811488398329970503179088627277856916986159457263736411135445331577383963645594467705209797733495614777751706159662038672808639522468073191212551560776574922844525544283111397835907693295169257454577479754076539006186920753716136212773970466334523051435372612861231690499479282119585212714147157336187774501466225372793437728003018735113693967057544370011708338339510376275928001310810810174242889084109254904406949689314721357699489926442083725320043227298923190252784041629762566711793488308209879106358426374350574468220674239403026157588294436905171084011141296535346436606469935018884244808316989805289704113895126382169798936366156622993775053828481130039185812179242099807132238885623728862517230593959845711687785995086974080437493764008908985228960193361268060600932282413732269044775402432716672711569408470016896759015279778493176769010646597230145162010683109025731439716999700152134534039127821243609467157448083389646737276573490857094271469037186436883678594733056392177893523707388779571708518810343413544890569808484326227850431827979769210493386282533194562927752750522124349461435217541365611225056857687213007570589200036312535460479900248726176556274328595673996948303680235675841414066281304504792905893164828444625446759741512012263522013424452320420366739783861222988815888322972204452834456351110351683581505337132785120187714545399987556574483253857217872038559748202939197450502063045714764160431732160703950559971835955811191588716914995366751408720062965897726725638755525577523741037845916818388223098157319859244604549761063177210521371261647905712615369171827973403799946576541974878865903212442897093873652832492040501619534011513650428937129040528848062204122808450834693553452146484608213043359358669168956909187712541690811498257967747147685595878999873314381975116711518842919143218559552641835635447975077090925696821949066602927739195271891918998381442471638581523512534249176732622547868882945612989687248565806493677270461276768234694485894191991471619895913426828825120361608969254195784061559451789445185416842939210730202025046490414572523424192126422860981399671538032384058707367634805234518854711628115238014746753972157239414370177810369048948891920774405182502763060001990670229385872907890394403046774838419970164241955598953508528447733105538534292402280939691957037094600815279158353055924884792995372119266830411126048464814677016349839143853048371271047129964422779762675633693268896353751130576575524198769169291520185356147583290661926615915129914280202785807964218539231950185414459420788079720300657660323514436960438368022033021746679353993649643859424366129051427755577279837177140293845224092987067899729148537793116102758480533463206579698117022531254339944523960224237438301276671212435762947417056934356086083319651976326507868949101806158783247963309870526019847831396203176003004858512757566760819794151316634113493455443028579066333682568003086629351563421538773155766022619223395723735113700911488089961354971310719401010915077826812668497617436396457749010825624783520590999418739918927665348182422312958649047222794481429650885262804409603003000287990911726953328163507544154034214015641604929740617409539224127768377859622581173401676479880210304634613826231006727696717724808994519710009756749972927006913613396753043130332268668254274652228616150521109336068653676834702680394210822502522091762859293090528550422075033121861802414471297577517597256450537688693578301171913283568231622323216833923905517127521150038744185487219220781907378496233705454594564956255654702500205027033052491363438869475790257467893593540461302253364850975001914852900723323924060851663263109834135030204818029643094922261858058244208409571882162580458149434726661367108602185881324697393915578092959446046386463430307788992032619056539785994806030801757268866140041683746812541916038312269135130474686826383317472813051271686315241668227614600331614651358758069521503069984157403979468511091410252220070432869267248037918238672153469966712182049271829102909815905665394616144142139019557405144999136200048997534904623848145194975494871264395487645449723485904062673230010245225872478470580633816118308475602745327604133353233367714809695064358775101683665967096221313883205228039970244046816218277724382348305694984696779824741439204249549337069579405336664351360012532957841984151098433535630910919572946275964777809297698634509701376467877339306971362900899003964779915508381293869366771199005906787718833778489151675262666968298808694042903647566893983322881733320777430472921928377324033240632166038626321155603917202502961169614943329974316230858286921630743902811720694852290109833305826031406290471052830573977281805234211854034737181356178103167177248441748393649059771342863234989180561492033624678374478134632267660237372328121483578056544780116999014624698392409438014891744538744608264293301917319141041978126030000674174760149791339674708269479922547812043969053113219442509901089932465486933135732469539792793440277621221257998203274187919946652125153297309885171938247343031383083374158137854850808548093515727903412966949526761315316245971913373918931596491804504335202962958740437151526811431236758256412369566720694235176931833196705535064347755783835530000458284666470371571430325791232516758271910279866307769924304607504162655259608866098838597861939060736340740095992276877969445729169823808124649624038562159636672520038534747584120933393540363643511726684271894024935854344908288927598712359542463370783997918430241028379759285072898323833818460688493625207240225134621401592546582100232994744176413394620850781363676270227656118816339824445166670592659867018442698239749116648753899685550364635499175375496012450365979732854061339749265628659181529869475468752018343363196493820668759862823300288660264306796443805088421218570395214030929686022925325869153341205978964715533184926270516251361057097953662800146924024747363583062935740715354103294827917207297573127877607967240259786433684917812260051304025840771921241072428905205805399374743795116869283248017003337318556266518558974871026203496004330355687274360666373136256347453405298883498043182230524278163915891045641872211247138800764974121077184080234736236265389915314378028678072863648903465329933235173143010714143853104701785794126167877414228374324570286075301331276418020378633504405956208407460208450832631364442398498398517729125575878705846667868699136324364128126362821012105066994560469667677456483181937911152016650707855784494352111674857222480912908093026719426856187739895872957473291553882281186882160877538519550035787511350683137558460676743142911242187226491628787567979370951738013499515855582942245576381802692885621685754994165827630491444886433726841204644469567950823381649402017193913247461648879009907191000102221091484839419004616225267136814661977834502661564702530901308606049582505069492316574325103327716982849272372767263678358598770227241070312126080741270386156685669841904662851675479262901995382993001882701680243343378294515710141681917116530347316933737883341246060503733863714504640550348808695436887518290326581882162133804162898470227468682234261894352238320221839600337254951102115517071853217896429666433184332182729520081078518358682897071018634043926217255951496847010983978993812974759256832547985277700721957434667606731378028211051299846923308172167640450840718828186328127903381919423621941569032567906725649941922687995646390933313172567079760179151672306657421719497961934001289525803937249987031770957792949494643054602960324646324435354490741224846439387850864811818387235180568505971752457809840570392835212530849216427210536110760006237827493975363549325820042975632723249856360329587841994357439198869248955867301637986255955672626665133001933986429543750627913102952596247379574474603824123869694302792383760114682419919457876646528073045272407333490595062069044010270908633082879342076077049443616215704063724608962570339730313785921367766087349905453887812118325752553836371481074068937946150813162178059637882624866780174340468633084399365074873679793567888528501246787148976988150998139622454345495227696343988385250774669403210231451326209190342574788555612652892498447315116677334287310612103415244249881974268692025960214198468106722721284701400107967413158550379752473168742993731230352348803708782826163136206129491254146814294622293464207181997981929939946325712351389399788678850496415821702243614989059276355168090440720652370724788815781388341202984497574761342816127089471662851097845387081116935106734034848802879145884006025943654471326696558451067904147962174043126996667131376502737337302453994798037003140895972815168600872384181380180365588126981112462637463783105882632187216600274998481494770936181227631624373226364373485095452046305364052378673143060299251525833526948164002660709934966991809494835727961085546752602672708689244710008708503418727401607180329271468803982081032859054239322980951796755976612980947374777908967173880707895876327162307667830411491494765759963784685208304033399227267828970700425969296674769510657034305322808792556517674161676907299998300005255152786322698146433665709545019979067261659925571251860976499937686916312707397453841848869437460956372817413400759658881675825540232239722809272011358539145404571163380892497303302475915751088937558302356354501881265904757732581458849414684239664608563091417168711105684280495763315994561379968615554979593441945316238740668898800994317257687270673848065543756966929550340457083417202528150198295168423661098841112115082139228348380526095850519552090064071800931123056654654844579592260856518247521843904220674309796910996342672460833818100468835141169737882291263231905162234744974047948173634677743712266564889815330529474724520607891808646830571636941414985253749023892914615059388415385305347330405992830896402370375133460442976113619279049584645033947820358366183108616746484419338117998279548975815721102224814160927386648880955259058698603443903474004597353989576242392680163039820990201352135006066389898731271978861916888223106660546426243254896909726857053585478016472105991877774420589060416016924192301494886652950572726440127770654188548236588259153518045192177603221637279875021609232669255432131017055982376980123137218807765035460639935609454459854120927688850730350191754222694735754514037364909046336867641824883200813289032891029953396804682421510596430650329498590751114000613600131706525793985640504922735064365920106461933668119380815246905370347062827426441432147079795482627456645336578810309886948588335138904741621741572968980100253314462822628861782137255811474622194896271165909441594775500173742158506904556815100279312335158785586661588427860748042199886338361171381172208170471211109828256895983602586684705572281951563250187452692195280522417240699503540151301880154875341683794082337133819824326304146320025377638565955220052338412101696068691735897369199924684522793251416523177881797469908861224689674572485674672309212068557654799323787412072184281163138080897125763132194864018225755986737406621440574655018545673143076592487948101106154870268979735726985985011672114052334910297985298244898723390282222246490786763690386776462023690890313298919509353952754489839025379114067936131206283227592409318143038724400770288223807592688333070134580240662809997998034615635378986778134510297178278693112569186973941720413621429025895640067951271027927741319142681901917352721672915328466661906887914651969921831164195979686043878786428787678576730378149911212119606817626344161055403730429577222557741462437745710935972892403373793179876458990729818641069298843688526518616844136576766620037465208496267643678303111984843527800159855989112267384724784043203217957593919644608646315388254550501190171807309565178487991547561143168939991568403005557180067983194517127213404380607481495082868977799551923630209348771411591436757817257823174835482689541147533733948727073925387213638330271033872493260168636895709419833653515246909388584821239897906575804110012302327461427976175371234578737122252546068691009751154102174402935096171751937093995018469386473807031498193352936620382109263845508300690773459966540255376206838097587294375382934262779906022991283186455832358120338666056293452998826896236921800079212302428079207811160128911872895482858414906728128793195842057745551215788221403814507367208420264021659447817656939600504766036321171864059296117447382456720165334286088309458738222318599251896637204652599327225057251169274226417622423086711906193066802436035624146209442021350058988727180645074439936212989011513133766324626044411934268411904131619554558434437957533721306611600006096280057572685922519469517432977441181815872370267651179346100337303364380653324885714333896792852548075796958554506487948338776884447751529886214821140106527476871714180434140584110136314709688446249248412920892390163551993090178359687996694918877882558714897681195428811916912101190311731641651485146089921582927971421170473391779881995227219230734904086161239484241469008936543691635204824398785012983458309103515722091127606296094894037847311643820228641090386636114090338751507718846746088988016115377748824489751306869532619963254164494420807975506239667515194338989494956387338155678254930899841995647485224407108699162755152855012986452054733883099206086774878064748136551585862198116237743681809666764735063703327584737357342842208015723191360412184677563324287825918873600493889148957671166697036149378525352422393300427895955938352324933950503060102094880973602049996038392757833664975253946984419414326829299201456055501424631296203931188519108924673188977870528452930350948115978520510199398400706826385356973628066127936694600255777014013260859959039516077174192891745438501209006947349825478443107307540528410899546369640640005781103794003787530331789789708517224382177983711378779162604910112250108630166559595115522211411723931905570735293814378184022666852546297089325288115908139339331947922737720145749743481451925937553434258841719393937642549618251863874261187711008354455007248767832187189417530287758289135764816847278266735948315671620439144888890454930489260984095970219301197403137578646769415767158695688773462152154454723441784064357632072071579010127698519305258725088045582337419261141528406016078675755934363688452045232011875231439336074742832066480203638784321591935049410498113999147432856138629090738183046778204016643729336569018712715037321088083615834996308326386128253898396812301135663453041613039874579437881247737959008141667439928470440774268936970644710403147770291116169475394388105692981523654137940037397204439802595546173223607082508584430646029296208868355424192587193974893732400431931470732768281846996246133496941027330482076074185544899111531934363985117941193233176010988962258826354677307060248998659079081379032654575209967576753605479164838234584103561471202916372629950121653734957733766983144568138230485573402192041440850841830085103491400827033148161929596746050382240910573661592613545330809960509977775715265670820351890051608786835623752280039354066803431175427861905150736127099699370670759989988341684600924501183281438153222041273603583343586552873705457551295292752127621471903641003492815291668318950784765820289245494924381490242190988277659604086450691940992148439144576233450610005951831715514480795204790930272780010036721397223372164606416163039496165780882291334786623647945980575722778422051905229870899361375350525570103460429454236808716311107289045139233511597307290846578235866633050742437801567015498495561163949326590885552162313349768454225938464235696729645618245848291245429703479533206922667522219917013750193405714727027958044310736169954701880198447040198108129575087988397984531563145843541663220807521279879258783067072252476166153212396257760879559742608569680442450278443393684008909661402088698394266958793437260544486080631079100707594961505392720887610960044276998149000467299746640170523965941409523941770033839569430241556037403013747261621074344357420430021708126191107375629254878778076912319497290417452986616278321276106175132168184704270925799439033281528467812043864114860165927509135311247735524058761891218677416759115461357529429750964363710532763841439912070293217104642761041303414307118893287898167854710191510005860626132766225177680064936097340297584010839510618654698194912304248558186032751405728006242658005653562977593689350332802650132434833645690140073045164478045262147007825090786591902922696684057214337816623852058343370524162551000707758195534637634927420812717984610509155244980667204659074790790590213885660918440655598448824604524822964194833202604048751399548702448752265479754896645761454769000044133172528405814575807954751453237427855436082191177577498897033352572361528337643909196087312468846317961289058213022531694695291695837150026236790018852748556721588212761022457284715293462850441746616127510883006182336286876419481286924866764991547133268568162611565519769673407011673899870894321650430847380339739837157260520221876032114209610411151968500415332787195087800229260475523072804961619336675191858601658041716540615242649501321798929559951308386878029399514301364219640909258057914799465214800737701728485987930925022367201799948782847117434606426993978082624565079710821474222214724310263840770383124478905438237132847997720969474186893957014042876163854665666637676596468257356857375845043882702262625931435854809438288139772957335951216911118925404440923333709261049727714296114647270060747006177853797447445973861328133458237247621291929975910733073351670283732531482813329135831050980083352416576341776852062180915517699547203495644162769209107310871936552624565157871645843765448004258079951053467593019121386063805648520169992643333941886807452564456414144279812947875689802432507694369632823830453999176342669402324794261271834375404481669249468990543444795781042089021637640872689628323441554819499363222006001217878836693517492030043407965231454583562144911012391174707744456572679609645618305722774848076151525683299960329217700537045384794702218032361553585789173103273296383753708876773620780347548859428003683707473692219690335207854648875466051832483766686382381804415229508117900643175650260077777193584391682474266955518476821413810418485279009251468537378679546113226868931629766632982677903315295726227812845284848982822976496793603724376533532462745047474315653224496345697724695364966417717232707490264260689326083495544182322572974980913675785878996983984210201497795402929705760949847352789456079321374161336412614861302669103566490685358520707300338918190054352710696140595403578432514334203710134837865577053302814502905430215493608862081905730301287941197951244369353978166911458816937855451819553416142428641734060053018629539274339653309138310498053586001635863119899816143785386253122419628602465572115716673375456770851029839702315771958141244180219337437920721925840460602476732208423516752835726422256387213406839712305552552528062555651394199889843411516415368359731028332228159267488824936193495474135374347463309623980318835424677617933408913957420709925949092326897512057077687153370994111240522922047346536891444518870507888444975495614641649832846653917488817546780969717449633719307702241805427955983028757702192690511718045368503709695685412416407842876420784801685286861916614184010226895480685057368066944490940766110545451762058825418159539856749393585569117920376014811464868923288898585400178997046474789843951169062922144624058441037505576055856341199854392891505959916091795214238059519763010966394840588200704665527661097050465104675057417150342550433973596723497928421793409309675964587753498217254213156055938277460761720931909290421539154809029064772169390137447221762568914120270724175354647215403158772897227451882818081460362015168820370791024457165254403281096185873179887864633926308359316457488139237626706164287769671135523289383218746346329090829382029848322945694302200958408830430565700634550375917322832115385283743545911541247295866114242129704830062991685728382284846865202048078626216259650209688254147323175749589739338618336576230605356109774170282226196240772518143285358086772234458243709741570428601766413344741276877571404417784435753364394846837394736714161547204998213247066130663359633801379958443076040648985558146800168618882499855739410553771265196828167161409647767852331453628898470144494016705260987435688062341851371951603740378902528400794443882396820860242983709639321766477295273273101481075992268737442876356816273526345901428390301700844653339873068505154896558830042414543522800013209627520606620227530982337777702870945815851341156354579550900406651346046776091474223667084582873650757361601987677289132105006111103281173194495693497330133445080921005619695253218794948994879540276151721453745005328340924124068266532640967909985790420410718756533832570042804977867640040816613450554571667120553291822240187823863639969267055164825045653393703447667629975582956721334692256579887468972391245531605020170183226571670009190691312962890899162750596015186979427096075510671002162191879859056001349878722395261667074553961277939020945008241947641920983548785115526542804928531152960339754956057902296127483928744934946946140903390197323993169758435062306388357334488598873694194503273140066087364712736872817018432474076923126819723666233683778817158525591712895637604584570737388395402056329767010986353275633282834222365150942779553526590659635973039461381125677540035244857642870253193898141174652771186733400179555942230666992300884168230229704998959233600457928463004154607565438343250872569244313329836565913803609039150940574952299983715431922999840674370753731008468239268038672924442441028366799862681258076044258108866917549766098060463248435879111971400108883590355988713971383084420945548791770229517708712194950079747159884635385028623127016581084634947875282659877562702635410868631794651614218794265077169199272407539821626061425346472031713120328796652827957640495808994951503520300318929192870828194254809801138882227798072421783931620727858612928509907202689540565433713649411851089023945712742974458373993534049029073076691311313724172792690777424786213637452341095711374754552042146957419361172370880795198855600706080297009190945723014279378084028761798114339890917924668281784501644409991952387566482860773047534983688593116486187443791455678954118712579621744202012513283580091342108702085329063343785873225934734500579274035640998246434363181266672650678890509659167694907272518626429216147483304392013707546139119094933528971758385003331444856439982714830867008869821496139974651930130224595175538207542985689720865965677787763701240120054635096911336997903387395704087861507707430948205863240015468933370495949066508881251297093827980043968745470080031563745879921984703901248989091970857566844293609499157063313687995693605182110091008477933601063438259754141898578983622816176614285778102411887594971890410369668055227317784754631725070500118792009849180486187985977646960599701233197486944542020224457917818017466748539087830915417819122055227011573427048632094921569676444688956108558320269841778948330342523743520614050762523797134782950491899430082296347148948917021362688798345331977507540308283778650629603347420883027178360956209093308582172627510824057005280810802582453183354239498230896308206949910039473022148908664788853395060033085712078838715776949591856645028702651507952518937462401294096361174256554241826410178494854187314781217964355293832327847912947186597031176469158542367047329326307865008041950283317209096726676786577493940760900887248056845903829714678052767045363975183402534907634897111492593040965939462237778875400427302640045758270633876335879723799526283907100011480635077399005607001698548531780600625967626507365072266332312068817364541553692912850774124532147567767125011782454957803567846932385951922368074788213153540251818131134553943376103329428188948434668060450362642795143872631113450985750886629615023467719594766971661250629633249629619257615499987519549348215468246655581716104079234852892050837505699913119663995591961066536862642075665724977857819041474852373061432359102959148792572409511100996831156570953521074619097403329716157688365751396270160436150875462127513771651539581833901535043538889627416269334498570111447196504007919142403299250002064248560681440449829669028776019694654556305648344570783962192967201164475896962680132847715338700892379267761100415451162948359599925823113480259682197207316010077765572098401286677193895335056194035488815807411457027211562859477973947462490874050378947775950854232969229104051818783049481557747441833049556769535531013653582660423896776829514177520975713465250959661301149152391020881590335848421300377224481128672910886179060288448437646138278142158100365983938871628904233916533475472822052593354600891157476229109745377241719508424063887563566918003128149682854104397926325839689095300240833339014859278175201942930164139459406855015757125179534651039556741890355056331599858305563415501306443011071356366093514892935447088230533109952625650676728321634226302623870742015332365253935476003706153072004287490649258395062308018012483251251919442451609676050194830822425733874307262864898896084065761238788083179021695288894936065705835036446324001545766300548260740852734117218369214595332088647251477569212323046480523862626240515205728670842239224887379747316858950302917632946940134418083474283752054969938506935688691384666513298191822013641404029572699928327811326010639673024506943094704420758007788443775910986859135645663174272400497317440101777117552954199285944032694724727090673421526686466007157301957283983023541330575132281416178432388144298024953154699223479833862606064360070245968193472901798418407140605695740063012766045683592296746867420434930949723548450853731091648740993654504927541437676803433475046112023082511179853842841605123661338919107280006310039991914620032576704104964143973616627506997602859852948401618779157997507711485604236072149772350495711269468035188489222297431971447175461261166088988084892107140706990859928494755818942265719638098781733327669730753596580898708763951295501543415643284664624902041335951505619038937265230126918436623857687116931835259154917707977590805948401534897877361017230787488121125658707002240453148498617282211077492208640723169810971482476015156571600826714137630783082741294860110131362281752492376181991956687158890502384800765955862111294364581963223545809311672779535237734922697844645729460424274785043244271217939899040802908550457653822141025003364526910256818605221093035283333788023834006291317212877984548654777798576054173238264466727804480723295214761319726991610498038945070340568343334592736294122653370337667719677698034425222246455022303718842942841623395698203404522554315004152588680063232067418209243213724890311564703066924007418092389293245034788544870978334789341611908784366110380383583657467346463078276522252299797845924045726958325697220074352779285350340025876622210304916760455680000412416345533362534376450755000601918559630308786093723177537218137114187322036202059368998194710226028906566247516658751294289571243044461275162782693675673360954894003370795180367785848613770449112522089296292726069816165674372700782556509151934859635299933440167030808826366820208308957557389564933520244388570452237307210798172866715081943364254504769050140152525760265835756636601364386964811962725863934898191406262287475024920818425405628832748618901313516442919709128663804957680405624365580991339348842724898791368896512525812057242449601170672795413126369241756545619492397089066734589004735182352443252100740601206351591888219436870271325663087283229680901183284964176437390221918281072469810341544107472413262163441373391507548076189324534446454592146847049046393841534926087354618366242951604276675173306252147313223886284234792329448208608253428385350667917262711631764233599229816778502079643277829719470367970345961094428624230850223985349851659264876245197583466343929528429522825258308473204959988828009672814831016555448235986723645420404716123184706811647761771348592524106195166473874644443908385880295545328423997530034862553330538826290103196550359557214212045959932743973810301732905548741457611431063088816685044710822078834273258503856301369076028195533127380043011641831744706169406715766127593543860068897924592501386255070948174682925489904380199404520422931533625620491439743349655088317626526663216977111644332342446532614258352840727716257275185704994124743867129640991242087995451432123937736980470180154315875098010028301700749071577322298954883561823308991458295144960625763880895957916325654190460607664958360556564305892828279137263578814337266219064705362678223662820588137176210926578817881302230172571204639105056279264684970027466908208718480718663818671243723653301544545302866617303350094922609703412896313001569745562353618078640574667034496982872270129776983135899609631952186943984249578323144590386261800955607248083063414850706431669978839138239983035548957672421712004591983350339754924702116651902287749034930744073705888364887839673764035023498349672763433686411718816327780447596903685137229307668787496630212727660138615354805492397492054384207124032292139294287147222602548712209141543354447486291718990294518576921736195638976779474140127038583784994108967154329728653495464968060937688923696703132213941889120795951796803922114866724122913339198045396966031549449166210192851443333585270216473348300960187927069919027220135036348404595995243044940126549131662654721000711101995119054204340826082173529374363928068451340609178478578555104871621305315525647674977592395779486066035886305752859647051611303123066715123862970994414942949398854415224782972280957616407156191990367561828398171629617388357075750156174843643427884764021947137933126476186853607800350611830502236219565888354614213750094865480402665180330899922298592976614086610395308176850828723982700897174415264092938006893733097495318817620713770918953502829033235316793184063866158017497260238060649477395972705589842674852405494149844142931286094676823009934071199944704350645389845658437273028049838806695884066517262838891908014101786334693101564602398320055050526524445489079838688493718182998484901007975121143500750997811343912311742812946713460445133888711306598671101339165874107571596809144926573576739963260082842225954139824021519144725577212549752388962041952786639707173623393409620096308280981274210344321167032790079706416171915294125316919683796882537535189227189549202453274892378512716746437292059651541146452509116436174968231005292516500571695763079835868153713579863462232151760472655710998312090888139481918737187574231200798651971503404188025911977362422957547350600512285494464437115598372845186669610756967632139216969613103612815764812632246617457646244065421660191309640489736498029998623323358487183122709187266685462271056034628304171975543282974511890359371039835151573062843817113265768984944435663469485788236778355921492078722385747865099160229335652634741912983434693870849517604340228581065423332866071240166766925556998066780670465292810485643984957482365974867064364920575299511924699362649949636345808801981853404322026447896966231973665696305222300846030150409989093557552038740248447354427758791645410056232642412928748289561568466860645570758320041679330996549697457832594215240886438505367936691014156923932110817511390602292393470705412570904363817275523248852791362096308819093411621069233065749903966189431596078178533386234975445568883835570990763459445124373301672970516277689243017683147530489976465877813901947742343788157579595949899042842079787773212751135869627620905277060483834703022963319278833988718362882177098447631037935940649087045506980287942325127942134512284488304478056263339858109498054212257613677146080955907506639657373604778095135366213771128356006900913444327702808159545150327390437981748060921727350685147173712912232694184327394051493852899888838536449683329981572532199320014723696116336174381827364693546321700460756833795415826039987610194759186592811204239256067459099357797448926065709123674404851256683197045547099296524822549488114235335855384081044313691393876737260064716846806404996334727450001136652668094603920522877231696054438735491816976145758372303675716633581783662896321987278534343292049127575202989701573757098647764037840246780321047067245884695302571930362183440297140473598281880909393731184359324090366724523432741204738208015941703393267830933608488967616417750861060982031379491763961945209046708074449011013429905728116704298822599079122116596458762883653393654341802232468141571514004673632199588542829735903729313540414301373219354774173053057570830340241197207716759449097725579473724775520006007880114237936926406444586275888578038745656591178242537822199008778720287435332260379920144163654366297311212316670345296340278903415802367753377407813726643036291988998248105371990493673269486878346027349316468837213034304438795092748779845188626679302836408857736013968684077803109632488532645853277472167413728421206572649006080065539605902249423837430521780293945413401018250180727652839092353981441667608350550943738249136729783945420020801955282326709842788362376325533750301390137189000479381046090492298373011767132265506123782203390348268579579617057979629439521326284813257573901895481967875814938115362151613082277165171211362296532315910154973686167291157510220891761682720616976758380042953586366517361100871198583536200820693233550021502378898513645894292786639805707958881226985279820255071530665951470950551786968076807887199406023987663058881691346901968690023554755635468852946612996841970472279454535927301083029848292232491454140282286620863861300031137416343831070493376022582761136594879057652405867938200384693139015795976931755769747146466053981485689415136358115187046573292736642348822154728487136275195512680451584956783335405291038351400801573697503530447489718728747910261803481509612375694276791844657427899264796023227194954232878981192083683106486607004361725079951048114180769729433500184893400788752622026797943834777601205167223903285606837282455231981605697322590207352931926250338661750340094177907087299183939318513716511880784459186251835745295865532268392081900075570808660690478664537333075440852861692655865724141879523764174980831089810028370859287945770824738750878657388905329863560523709917291096274458984239941279307464776571777000957666294510452050022806572959088770788998687455400564861171039755966840988808272516657015299500553340545475838457785943226759868830619995957703423297647382652853201688334087076144227624045084472431319628061625494448379540511285683524977935685641760034144689912559392624044087110887286130976391864987480325287718014436626642153985374488387689812254036348278542220254466184038070437508741302288039755480044175285552225394413593020952276101145764411700770705379996099539195285002911194455073573687078180793324653113376260825635003154877526390428276046578976078598454361822431273207880578323271607683215297996474082251078786381766988419416436479724102292992981960832457702999386358621581236348796228114713142460340223128241657460634910956136033406639817070481292256016028418898720454763426085378910775353922801103015796363671808114107936888032162559490321215871315918172094715569258991006925806726009970681855801731848912838354361249610040451688811185082853518259964706895565635775430379556181155336894756433457608001523816879549576116263078645474524748054463112505339332154728838707193696541323880381690535562266376193732035053310626360735712854124668071277537216722075884713931456374771774644389290553752736642710828542328152050453056877161088605331022271605284442290280656881154474073375834298637841142652221083686186445035113974688486067913736176963689424244426398531447253404795036835167370965269997331036298958784285010368405607914271661470788402764167224683643384261750264633844395128229360526731426835552063971264660607687302138335526515074240321049754803133306341283012825291416414502440302642883073294056293509936178627358649660184851624379630104480424263074689638293462569589854789844191842226019858610363861422797430240870107702886233393580851414248857893720073849247292494294601867036541772393324789943365848148873348728423399186558490814699182532256386805231639434725297978128977961320485978363346690931049085271885119622470842750216729785990973862578027657834063238288056983489731981800986067135396410591023061934991118579376290196838131916955095135187058655918633289127114895265988378640209785653325025436404762068763797238163832599145532171585639985303325118736419788369096962857036727813623664151420947944771238940412647262759544762701976572222360124283401938031933040828187691308653379506841312404390310002152251436761771011488263352276246989158485891450480963429959674933439742579455149383990418280344292443010476832558734771295936970453850021481956837601886887124205432441370384622971987583632561887857910206707605921670809158930919931828463256951468366768902217180122282226299836299097705025526579078415375049842485641223394434693288973057586981286079054883789577852598187604431728760053690485372980913553799473021206336898449961937595861876958479274978481889038726925320466510635823517476652881704773903233820879129447154686888101222519937950291185029424618369223830247639910095455192435948017308560538585943912334360178606301361251204031634106913526161961653767232397472835458566517055555664508765682282913793903334698922994280508702057637853633393930906710426909762210140358079187598818498773797600368324736906096224057902286258541353232601427729127516655405175703162798287711045231690489139004749822034981474168779470173790705516452117131634001579729095215847017978234619475470888623679463031394725746191010472706214513688739892336751828698121469411003460664846239309841609904808704240534539179199824704873983775489102132556116098978278839261320077115723326815397007113043087670975180134198730998528263207847103986435656445653135867196896188148527134497146319501756833502925899971934408963966391669143202016969886243551575188483491155824054854188247961512904202285412850747332899454068921233018756094104177464324460885703463126277334069677762637544508775534770384227142542276904980467350378482331503162038850889268884212450773288060053910992893495478030912431216948462485639433350658012321357944833829095195455822090007848411442866609199811647561573482300970244737468936702449853480768549156562025800412421505766030210241750517271434682212718697745665577645901372813542878961236405098173638582961695683005198796734147333548745229969963465015851742986829869619141352541193827693707509264390193148715711387234145156598228726565099104285720183554882941951718201594271712337839207265328932472147583484569989871079276137295527619698856447699871644791751777807502804403392808576015139439982467639739549842383884388056494445237902923739816502712680479615337142904482305091700549445464416494643481647756712849164065389737137022099024557821152059824561599473016284783291924375736550405158973339876069318501764266479804070621196897685157424318759711765766125994749434897871849133682927640125678351689438999122048338119066658204193461251616991989135163825518792799108579456414538724225111115581462803335226640846710282352759118033716794647937220392926939636035056889983918114775412776166302509663521109279247489759502680518269642876477520311796271902006699709320322751145950791893761389096056138831138873980308939954612362994816888968172592287666891051965141515765781103747374897693834064809831000094907448091999327498426987753354848912907281167499397140017660987640826120591775438057057109940601745773670735355385751910418093028695386431645499574951203569085836175033406373524142815207298446546123239100612926683768848424627953720333379511679123909982298628221624324548698668818824271878105774382627641652394442597230593319486238995425634811684121712821192921386317364951196944016789130739929566317864865414489505363827040641198252171198515669768888812846195554134803201432591068809526023194551171580657439537390338746491796600827714969775420931799658280586328891899360758970911393780430339879824590686684447112994051784106532303959457509408745123889776848548442673735790801350579715519719959485744035272210078066865096547679330693951464631168339266116356885813229158820466732522023363133792064247378424437146130192184069386623778540772180709095004918986072931928413160125908249925255751735551411817187440467961099793051645289828897058205604635039923393535471435324725345126467983488604340649024626813851886151337146704426424800151830655765170896176510222617946201862266554965300860797403590133566312526335552953022249902459904038599702122579506856688317408480942690292112085399699347192582105844159515541118163408082334047927087673138513175578407471877652173805432926290311808305101328169674036014409843883150400933307030161845439900260627756838584758918120071665380054307538720246583210773115686222079447717222169611028861853007051710949708560815436185602912367059068618642866512174150693853952774733388356245239886133142360729027644686942268168529537446903714931159293355701797103759996632247250227328680044012368552057834828838978450779941618258923572904769054820717149430566635548056557222806832114392011069715789780114083147801977495158909501991440846481027836104702144931016711562668140773147054389644621953617270659372459919480940797290746536252609063767451695008442773080082000701120571273993261935232341700505736150706863315512857897371826769258778995543131616051827984325753565101940421221166365352037652682478040424680175169655449038919052059093863211173410228944596478773270699877803662629311963190869412418138099482663095938849964733237956303040478982892511653029287751310060122798841296601954352287143838302762305369366012204522116265303515422684407372160701745429231289997909998654270411753871502643427957102713543874657057323213555900596605218222374163189115509065645498939290343390828672308820743868394452806628527839824495247025822847596147315923281429262919019537674899668963661750801159067652657223456825513505449463301601922618468315573636467532129610888198505993766289097778988314916400034518931562723519038653113829355411652576270418937374958988646052141825366970185198206376426716854395034015823328436896844051118379263629952201856910747588436765675725740844147085695621304554335459128344880435577222112466291652290041788945351058569520257208078991288930120696615157996871491111649204751548585706436529213945341218588321304081098870435554429642364945807301181952007056886404990614056407283403985167847621283307575240361240831196124790834659612816166326471481459574811070989700762369909722505197098107620271821767136782451547052067695019284719861856710632401177341649892292924657796492727128364429876766545404505072567518827341688166557484911597777839666818114761939447143784936390310279494862801420338903644571598052053047751784136563139386776013386409990983602956616573018237279744842658695617913089229116369944581400345707107966986944035148997300440463571018980726368392736080721402894901018153607383593651445502791876981595904690475976555075366735655269068781253850340144500199726978611419172223961613211106435004160101967303129532065183048139898212276195662274054472644228538695536849187520243211616496228844016626021559515569817994798098382201783887263484928264087447452995491680099462551158274390080922800057358054677290840650887983911354677375990895446602148595524433775599821343978893196258253376193380091854172876467034713626588870920482980877944267005754962244203515937459798014066330917988338486612318087494815418524797826929726098664379841845153365351265712674982461278608073501474987261759862412483328129474775111111507789288886676793244215983284566741927784027965357140356343679854985499513949608378225196594735358782758171572146451561764871466645137381960904927545337097066610719371763618890458084154806374129183995196503855198779325673191526602838426507960679866874843830867697705735168891808387629655877398638888034364223827193932140834311794984619418487693356092312451130129924444155427752512775679532264352509858637861656257111195698216922709225759095315239994439663440094212781127333834159317953944997694869909638041828466591081536973409583242225312103799602941786586500216289498264269945629784276917174624549291772241491241681964181027154643140178158734723131088207443479590783202310672085724650991147173342550597712285122887068489609584909812540399640384863673326058190191988125985885029548619068743711259485433074997254483665694017762152829405558852944305816462927315724161336712821517287171930605496821383157491789494113058196867461790425460329721503520710419915517296246323936011895078835617262495420099833311980139308462355445221512932773690002304690992000958733441899753193026732771200757289859501891572253888615038804858862301575994593673425080459751780686376811945768976675202750599821763699790332769487691601968528410135733993942156459237982000678983961901911751251608326170475012906655967496661548179225100787420870446936989902973228672529682840272264468273080807208650215985760906784390987563484101820631609417547267117885003052532132299787148132014466939357520240053709040888279426116647734969071250681434040271884829014666991147914805015104061495403233923713620818264500151244270555467053308234742867863631875578375380595046108491943616017739070842920797007521849219722169915752405760084662421222927193011243426472682106339804931170420480947481426823491490976633543179815054002714512197124762605269858604111294572153120343411311306191330091488111889517412958019562410159390847487214378235153215501926568512967477699036268815804245040356109842816301916419151061729020602482742519500917046616306719090699926860686311998750048569160843168091777733975942622122569325791242153828264970387198490816976682956701190880076818054572428027051324424674383470935912022074339830904321170009088240562338010949283053988344189653515008153209233284338128600695415600103861823248912605028927725164194255828698443085610784649036232978123824065553686480260777277726644978665230049396784592348797389326918720103638523861963847118394824174936148674008135933206094695314964184069217784253749820936103990736597406307939562523461865020644191382850651915818635798715898021185499777999414702294980670794325089526479738181540787524031802778151809017029809316153085688130654440007089478956243388899526637864054552484324715674433069014945013182982575826438010616148649806908864347024783667153796716583401437785323271297677289747940543357207667902944968175485589223768820448420141573142974193663454968644499681474246313806204381066640303769727994947601309180966493896896098664441716622863119502311914273799582425802323586338612028127526484310597556968521215907656313774264304235412446792457435864434849263286732601251694454405631233062086984446452695963940233850893740585147845554293765007591416167996089889722647230552603829663723703657986886731887869683891854320908700559313835206723487731214492632472747811592074764678559450154409851682364678905174165026863199478460289075442212021311223839040524071561384071791304365664548495951222078112831895884529752845099641771347301464240337190010055017267999355604798882005471359525758980857354692766330871160302737306683032146800093137049827394240184247600934037629988033638359843715711013535492000599397226087274621197715530666836193511047512363735616067884292361975863318250624077579744790571751367398898862615590018085788963319381743803658451974050781920832414574029954206646026225908805872501483275866914237838952623143118942490853476910116916581386124584642134847598722900915058052473117152403641397642913588913641890865345550648529649466546486730804694069874622440487285804915464586661160032119680178329358313436476620949104296146198032698394467462582078019388776392989862260270307805454629369283669132050003877257097595239306600764269753149075229369627272636447962671896840587120043388654449565175969479473713855943842451029716468532924795220175033203288771083165471905104815799680162985905063110960056660192343090948374130938944073788026854019290910351855136126274942777880024175840714942332224632271449398810979085212558289216371030872214911750812417398845240394323581230421085101084600027348344595956765428281579864315188029337994503269693729281585453484376698790443374515524419440538720914838225310112264787972258838354934485390443991252463804441785652990120209574253838035846733940309687056820471601028555295934886176595207642458637473182986622550089174609698727154850213347476956324269225173251600771360764204735689250639326677214567784947907390453225894596421582782135534573268067374329030682324825982957004327018433054349078041678702897327469639433255208965051068071227654722903382622525827450721326874339721834294562830218758271443030011860455893736881199590632665909109157600776138477958500521025779528337564323124194200344143489165517714075975733672059576994102219174852557784682030328402086597071099923383796307437422643306447036359772682303252342032030068370620004173458610468714184202437341304339208961100510138712259575791802672306291231688870768378605081595592995266493363880871568837126929148354269628016215469728781845095638144031518228963594043669587486843312061076734190243740802383246774894219519005925190245062019015490533643110426550212532105096433934258760034300299112535210529759109497097951345858111594119815993558103879426941743658602275225441805024720679860993236093263697598230002200670371503359964413233766750076232669473013480088752584511218742876042127744112952736746975188343927755802346997838544010018619897217434139570913674225726078822782360128219240173398800227738326836290128790335191416243260750528374844341905945929658698618338144026879599017469553954108938485132202290781360760359938763904836058788591692737462075128574966041909200310106547339023128875228839971690979667598256308047663338626290839901611183300153088240199435381506026694553369074242690278497010647336440313391376917379061185824199022872034314489795767250408617793310742061266382626723504357787997531688916025653664919263438625910989546194483291675449410722805106790346193527188348558718285975296852381109997196814240283614614356137871105840633549672070218001948820902680266892356957330241988586247528426249638239268282824687212077878904720165704606101574049357606036711587688534123584871073921417955623632342058824363481910779258878546148398786494248879491877768749116256174225622881178600320836347039881564312906039664328044183232057384247553383330302755913020071003446887717917339991394988993248797070707393652233615002378747125319680861349587950659277331707935924466439524680021640436563573438752872384387384757940096697268770248664908026782798896655020417051304043090694650562993043497228983452629547413147673542854701713787336235201348935409983056654911466309407177685572335484837957020907000220225745728131630375887173813793044648464488918453063231174034516602511361625247088621096741627775473802872753284301146596941042365145247106501861631459326971405957971972560865752606764429894964481559151849307500940380846341215978465614325278373819160408604420274272522462078284026340998563197854352249848488922518996180997822816551678459592091078547156529675880270572950336622049114487062313947914101958383621837775809199722844226698143562290459690420446962170647021707569920432652981212642386423093789824149532040716989710633462601173210314894409845702063763999687283741969916452112449031162446316709813798016974048149861413814040147326092844983293768229098353536883618154288750373144765996125632950465919195367545632757441526280088619908614312515363252218900395014973932150559229315654691534566426494596135755145066125991884643966827075724625842647095082010486363378038463810870493381126178341594650240391099517732025963003163133199246481978438152921378066849914723472200564727258401509333554851423389973910471247474143185157411242336925966805258646979550372256683577119103766010504621563239809542608241336440994999491021887949052905205288970080518786574470608155398271888036778393513912992479213820126603265958942764191818116474916630690882085440486409669517539713325612053085394373919149783689706022481127508484075683960555907975114672101032013833196095474984108338899867105340492528938010128580622718724663106837659908311169932949514353706135829761717101960100939150802679153483981684811955341122508991095541574853692461270222390408767572481410473860999027191056001902935835380760631610836371768323788263646483168331849646433353120813355760584796842386069834670194124001862367509342528132122347591346416028101729507576194707222288987055706613934054772809138967691370385728886647388440625376814937183100525722564343263599572568711511187826024220893490244004917943254153416701724721484008759424240211213869139122502161970043947155658889679718468178135911460535366053875040435677169645637433022087581946480693669877477812406009743509206142417474759060105385515985606578680991592355284649222631300530840373814258062092974003826805963766645814134185917737534229521244821175391170643250926827680316513686227415250174069179520445828903806090999058269012119088966558140093483837334730685345372605365462199369542828559884024633784548802511596708890787771526264067430468588633801157192964442188027170693781326973986969276070753498125030216907455774192175597658409493908970909700042768536056171757219756039849250757169040801344029748523982646960797351318970998587943190161042242827803728581716399141876470231501334049480947176467309158738623375171533520412446216679079326850601361060528360462693577718607336175762234362264759161924232938755330075171230203925970687870072343401221503561199951652761099279078388516361781000140061840652767727809700255546200700966534222501330702781054347472576033366168874395608789341928521668807837759477789155163869649635579634545164318552310681640812339947253506213978995802875318611348416354612990327699224296973723013677211764210599680304283189509698105330323619861381677559518585439574263083209756283481198212985919272868432356928510946113174900397093370475716170514155955981299835060342326561246293662319698882941342002894021205976578271261987725243793128496443178469669626000346163346301366233917067744728009412517801152212137657737570127962263654826086527215642321977928772762463533426686229891472855849863932437846956445968991304122554551362277904463731755985376330742290550771525130889886330542213696654451247139153967408404646533230583276064129218799762907664884972380421228267398197195220727141520053170132618054945648276617721331313331227563766395250248211889300955998561592017530095085019473466953673788117659755738746422655949600444755021574959649093419034152544798128926065430798021912229202580186647800621320977499106948197579785070843933806000214104375180046881466689842860274322570987921964331769308395494462182154366271210966079294908475318134735732174553759817571257663681558958955485521708203949754271719362102906404721070583623435690672224885280042369930385472809539077153101126619789398528475694802534963727137353699591341438069031287515173567879145816423525916403290741254234863944205641889219030297314063016995489112137821182001726971829877000181983586228178475855695407355795911128078842583416856988168560680219154868404601384287523056846555443251009519896677911438180542298825083434918698418473316929938328256699657808757371002807969846346057411761585354872640487742306682625370698094531789346948065559462575847720950953041476865281170673219100524930886888224931805783060850097248817168599373945648193587239701312024286261573061136666737955903994545161989122607935503218857069242087415337618455163045522894122749118032024694327581539146403781622637310833061832306922636429016027447804443048235484707890389000192698676711468261982994347787947349522975204343313854541028051676522126918715885667766828258401248846754193498222065594207737691175230967470337857008884890210274380244495524469150401605109755689314668452044374026385132653756302261887415627666319347555310948312856420847114274336382852206276573927287360301683736890200346581146091686079666925062724525710006756464517569380971465772958072703725723018977746379593231367744388185848934537719076237654218597604735896677416563541872039328239112835653034487834771576814015411790579121800838257770503413288104270986853540544961526974740002371556980276441625188978010126899179748091057536582466690040769088175205122036301725984165679259551375279363931216767766646014058719048945344700528804205958272988434403436809848414376605556590746682463590757214200523740484794929943143160907678210954142474617316379712897918409160453884268416103267779342354911414312641643767299049215095863315129842489261416169599826365623629557084681956523893088674412083458721676267814389679397586755624948376768373129654475364644284628870650977469351339636916145876561229414702434723063628897894078835346246431333695404875414747163833839466246686427308515847287951677354165145762735291217887241683070939779250569612028609022709554299081292420066647782446329799717956816876881816733464666890189318624764854034882276994062286722059644050824426350611837615825522574870359828274259149012295052265635333907866561010628509577777892073535290778204909691726636948392345835690231360133508697174748686388026859937875491320038089747270362814831389591551674070037384526326108067054651974434347216843404619508927522800885301625937021264438349718269957616391500397317904472127199420839353752988052069433042223565673342384397451930753325628097238022081514953750189597374561942097726384685307670672910316330039224416841719053551197297568297241315838151790945386195707158556715930246903897632037060691055342701091578981197913531326568729035716460160831699754955169359324333684034210565325832805849747116467847260806860344655795678614056331709265438609988853622569969112100184583700620203473300271926580962084031718888968155819715050147869943996589267993648710928406833209123540917566612716086908786731641000276097685876381351908632172442786363506047960427695577994152539103864297210807294614349318986369343972584529793505883829096557593488429240157509583320665311171798961334663997596558899399522583957720625598542366601732094813985061379026731129299593394137813307817789071373395185428633191818929940225857387652484766252770658400302947369160607673746350993358083935609792125358885124670078025038149395468748288452404162260737814104952055812310167895521902879167141942820419810634003444013434895243689575864658404464925880402922212307603165510033906006653931375738043705023526318179883741021994421645488673992318886631626260163187944260785254845515147525431628502591012684739275484269014311347765128906814954016119898301852363672493406176939363212858179227381021987611399327522197783313811183733340520304175350752763050368378871717629993472198218432036293572810855620498570078464887770155605835210403220859627955925617713390997064568553237679541543458613373720057991188567212151691497963604264782326739471039130070111198960411155309916916543813646450107551785918330091604255938779854590647068026752979768590124295088079916425188440581209513478713326534194604579021011620417898147880354916720476819795272973711701612080075943888947832800966745241108122396272890266524036705805190462015647282068623750457330574666094614987590813817562879897237579965448336813177731832207366164574177620556688207158528532345956470759959490616817300560671726096578558529593566646928971483805292383961759559672520084684921364270277283417811495572965786524458792745010622082809920172997622245087155499410562705551103498377978980256575888693276850174352468166040881874658177848724013779130255250689063755917571728158755769542398186030360844398856718700661065872071300937688459469627403384289624976341496643553780774568805528747846896762069202836311826909176157754297634192188032277716583419335432168333133976405028405866349051022196939053753285220259375935884883783810538829697976537870501101326552427359771865479991912069429333591606712164500458456864177191663721079061269585997423687824723192494025074261521296501439676131468064280785511197260224195963051541173647089708686342592308622122029599496733995952194654048166764065240598464904928189739571930994560793464412774883170936816574542363769051731965404191116459028143210299176845161490909794719244483244218063459650389510558100515116695318554719669630065135172197820014925853284631050798521643625108848991319028681232228047299195696847641796973155185182857826585998961874060641135952296215991156953876701950286451190124459639743477595532422017824708573879255503421921327149577312618072635692828847224534509259331842780174247805239554706144428335520997559948622587430059309563749386213873074177358687016947206794182213319709699656366024031010999992938394392436163663510027062472284418159087616279450318651802992935681774248500269743253075472252050691613119456948733102594803292550238548102760980008394216784956785947078057752024667400145728351866362035869867136298515748221308123549321990749711235938329659182055623219032261012051412025227116649060668307069109457918014409071029451942613432417446493827310694770466638156704890729434588568489711265738483556316363706916730728843335041203687621644310340460067469653090157109266291380261069538969130664800828961646345724284078865519132652582929245955705627960822191588899279044098229851021932261026244887244362401292654534640127999013670841434082061465817257190582577078029000674199135405485925408686888987190280976328636838302082516197328383629997733424295294063997433123988546742170269483211516488580515067239381608972008635747027690312414603294395690306984376532670755099116906536040082621659822272571866849823470500310238506251933264619305945638289145761444503909526701421866400058355485683034753720329480580938228802700149257802828469041300429785605345679917340597468356701311431481674724973910747097486467581503413038106934215745029522764844003824030294622329632686720219179806337913134006040547566715939577757516888402749121435722482877912536355211189457207360845689209902409386301374813711285671871613321486086615960293391958952617788266019187270750055330703934187805433844065102174728993064940503540253475267620896120431844993906037534833401388589183060585298008640895874361038314246971164215320004061391816743152631963757212213796528900839053696244991598537913730432732775973329195814381399668294935083493563226822528126113338872806371119625209413444670447486297489164437446984817778991952981902729604589604360050701171673306518522684878417962788114248627571070499618521664036624111661441771829031303944130840150954900199397793014430906215571147307658794607027511567488353321438146872787878907065869291098894291490040938041063443931330296648560474964971754818630019282990357728149879407020351480731414148078966124771765315675822187890699121170945023202530836049504393266026151912172531728334455123110617601795629937732581781472626303957751687191532351122733994182131038540344962725768950539321040668378065038111619397302368816540850122636529700141235881298980628131437263937815322081232977908732253765989541054606188961158749547507317937881274506307831885258001344891761324483838172178592285111532967370665693420963547649011126778612109063089151452202233912811909556603635232341668673292943110883015880625766718970116513659375124227320068894455910013876294145990322657468582889856553786735559186659157675869024387263272926473548255957921319082572792602352864963183646614405885329450145990225568713553032803784297778028380022365695654161490460711050457969021408091964097549928949004569200744013108397343787793435372035361478033825991991204291985706212769120312885602245884413013797064262306812012298761151074448092406835296876267311440178536709700388251732476827754843873235227620232130669118478697301532715116916370321023592681777579296347440177400644010451583954018257984878296229925180350125283568317878969865113381262029631930744072061077512115232433203395085630475078426635684842373764239097705670436347589177072016706008594527009735342731703512558245929058168984108604616375275807828232043084152354395967927233532872354878184103601432537140483097399070165928862780010406262611534621987206571564567611668056423550964988904388883585250188247455900277722671691535216453462879211536888626200540716124201012217482184237900856041904283345700780695913481769736217562741139190675039232604158193630697799076944394624027454173985888331992858893831624390041769572265913477926065468132210851690557143535497967884672739799840154810202651882047246601573173829160493601818337283551954288333186182761031202608649584783336286154932042013823491971380983965089665476339223511553056804283551720114595885992404006396445861455043165576676461383346246835720323303510307299614225528777332569171684950064344181719263542125496904541806991303224422800690695254712039909341592965498957046462846936324425374635648297957811051015279604309446929178535017896447827038535774137884920899026615085488428078787431723149287590636988308200679556840989364648312081496548212390281107676305839937370879221987825010493672019542643782481928668989467615809893969738853559763055484391499853993316026565374236563841539126779000134602174011101707665146186270641710192731274547687441599692245791933456661260674329499394004495886048256264287351562287541383927627251200815535796840519287378232261567813581626815421044702690287116696995140187269605253558169135253812168645311898391160337611744667723472047359305466384961933620260535492015301657526080546656317067434526804370666747623596919015096979823268508343448338730242750370825222114255311937115844376975966707619881317877307704159246595854427412583808841031400751777584308348211514759236321365680219275413530564124629508484667723085221945155888980530064841960408636364797262958794556316500843475902952048871945200663293233922507167260227638102693376625829228458685504219083587042873918524438993117516209867450166523857858733601156154166668108278537242202415222091999016410465310579573612571897792782732213742143588418609655568106307852645035186709521834733099527739750207926996764545701010725946247071068053151255805285461795198592287856589533340707434224058735859093591989742128493573798599887725516846259848388542754397263485519597499506209497575416882911793209590489759781230950709162181089752952126382814617063998901055684849442151597561244556337757603277263808992499338174576561028728488295079269048816423799854836023622464798838551849268934552260904684508463731954767034635180904480259258373757559260665315208862138789449659359994043757932369672955702772608155799061359362797096902753528505371622466723541862222885046748277286016426096411672706530343139688760076873632827061954396409414405835822160923440720092902692274645048758823529723419803289279554501488313477910318832083745910395331643224521491996948258399383566997320679381213683204902384406227995655589678284286357141477323622889257504200036317083078587695653497958325309414154843772909334708042460237330521702329454765653003200157228778015156228514072746078890226715092578278917100873253225574483504596963494603309055600702599810099822652508615794200604698373520490180002538504774243325758063758051192649614959298363293250300261152269393230288220856360525676580171880418153862108365291536041384558449173744740277086020276195694578644958915266700435640067050302488666818465267597027449035284282379367673476268922759457913378346649348026003888399410640571026575496295515384459915888365702864154594875700461389835861065721227918901144727202224244960539947109342534452998741259362503431958464913423278518985785740189675246527486478908868223046687979193570574512818901429534288894314170681970180819567189782069146171194048387270473932301756620443396980469882146163786312855329055912231862157979004047809896413148551697563551903378845352510940154830690270131181625287493879017095083726147832153863650997318672287116750490498071850031928511061071281555814768156544315921857633632817877070100697860412669119396411527113402143369390150691642102340070934555980575355298306823492639872490331816775044960744498939505797772889001882578041843172393488485439613214651801166580555388215526553015300996087326534998366261006523908308882382190801458110497129258355738897978690042920707674688844509124626834408063523139091116187840581214654857193183388252007004115326220121556562340657076697632706929805710265190157377274147320561250596176300491244073564836385903721761132670769120614289769632916957005087644899554206171525068166469129872602591202163136244468569135230036635572166376354591405059564040444073518758624192840422358527309013294270198989775620242493114640477454948324138348572977717205908514519604512649219937300254038356830507810307244720125904341559922656085264866909316396673723773774700990626873746336834507949162944612874563554098155898695694650225728908452366765092515556639575291135891192588910111330005275376675288956287849663119584484471263585405711059437909439472412475764301439916243355033466692360853750226161274047826464982416658977645261967725166429910275334300628420805562030903808617390222217549153470081957913541151350366260641829682010316217306373831235814297067365810548165834983467895598468359683431683156513827028021251192711358712795242311073772436745108230494283793706769254644895280702152228994344380758199323964255104047014019942129452994938374760822973131038269380539010170656207774593132796820995581166405582277926385232364598109213503135918229041285599131556445932831623286881764792202843216184291254508569019984838122274868471602782589877856298429230595198861952879123253560038675483086270121158694097836241641224875027947124899565091585630686600100523744293629997114661177065896607467077557950028873842243253911423736410986021784172513534503702753995890686613393803344159165072838715446372715096170588301328640328111135453837910654540997971501517834815328831781468626126994962383211777843417071079946385736023196558465063285025790713335316767237001071959257454461217744412680405931236685705301983247925006789059786182400765066557136107449449793306179802587125144176315119881849017906430166897373466648217305328454288285378346927685022228823788726403172090060789210181615080832566168306029343541656852081834416688277805960984667469323793460889867250846451079956751583752488095196377658282378577504406460746130037881781455658566163476502835044815886500135696056052906967910551664003376969241196868144742081410967749990850451631506568912254029382252454374325924593634278244720157656303339324537632031606276681330375283404666338559457153597478740983669356089247525462601528034068517139135148748568778714456302829562627469147964300503905146904284578934137334219285728748556139521860513434066183904183970676144342975722605614035085793043830966787295733368666157373809223421346816908073905734673049942390700117014321167849920303743422272863011924079845051370451546712002261251448795348214737560650298947761126244082742368574916280578698363682244115687220375549394505641526009680258233803472267990883884635137479980151847614880196417642180819209455058913997067159357968685149926475911597758632148501187421375204727938393472817201799863629101191744240562124985953706916450607937597650560716639846311599143437475525000794224135681125489154246100270693604884493267386636913690508123881733524947137658714941811351403461451418809403246078884847820366974952058837081610582009594825059334969203954525134152076079192881548620887975866155724437129089772938387201450102667198905093854240771371561063559588642401935927185251960177262392715959013777896429797522291954661570754186037880943965711647449801903104201231951949169319820616315293993970854572504256793126111094817563260994703160462388633007190188350237371665817746736273236771944747864718947268650218669368737841679293355503491061452477546680731385537274951307100732863841111247437551464426368119349327088073961279783231176489812354599242790339812906279781972329919109325774933297021914519814052202137669242070532849445506523999710769570830006368125606310229322093692823457107116047549307827535498030506651608262365647705223754758204057843977446033195080852897791722329418487979282324350227823948328568824618798998635756151261039957681625047202551484707877789606096965739757565703980338959365322845634232468946498738753536918545642148078167676840917163392040546032067240257143213995435725902503421141041538911434895787555687070997343987988073443255346407842419259003789858800689653954586241984303886165372712271234808954603390840680145470555578705972177406095893695542136394285697009341127049143506329862836607655944592087923591099209180859578917108830182202742825573629924170700893830248697431679586964889170189479827413424350282875021823432275869520004171937094406574756755575765738224326459347005653980145160295775313405488543408188153992484499754073248994927416737917903962924977827012088700082905128160059512889393449707762098000864108498526144854956434720276176848596509428287878555767980841968945522632607346085113070341990042264736279898218176958611157948167526976698312766848027734935148069987784643927565174658661135836517735512228496027501111769168794372004495364927786634716741985441588355351415766269295059604142937935535678650613215884749845899051213751383384967004962796463433262255827725476026289348856097607092475982063427314658464246302826756056521768675314615426629172535042552786883385923696151354084904210358117240632934883443430618450176373365835234897418622665659759011829598212131103647428124200968097910014353215553144146305394854545492543457981332320767606260227903161761730817973997793218808032301790732111380855254235542024452453724177203315951156283936867639513551291839388518433781729614432325472572778110443947328134287500790585220739125248830341519195606690673040430461121372150699908947008701218692367675352571763639726528900286042440504151004421672354505584659563525433830650580637959035021764247159877391768518244620677462855265843841707080066027088469486070387206240205467360788177815390130200213783343010044087405714535275346682072480291151341172443071382918050264293376836738356914792128016970450605460221870088298865568366541225245775905892107058862436590909598469679068544556096940630896023150056019486734969895975764695631183376964555124869026928877831471689528770549315670076492014834545868363645152235858120312159896610092345156278200251959506344919639696609068306230569014091644949915724086181710696434076051055177537646904378777307658771085351520009767226057979575354867518135723390410008585800243772060407316706741373919170463039414953830549737222969772966491200238345739375001146885544785554094919815868368395294380184893672681451184570754167959645585992825441419903104160816793358356002682046000018850000559031323413352951179795976330392755206388700820054773110739525117264965450298245728083677081173128749092329893155950694311265348819955612129042348648689887884449590969390997905088533727469214149053359577853475221277081811058238623073361179475134022606365357231163426068481043391280236256210197413056756875386044613486366083461657147994871194610994560761876410817321071653622396876738446088702656937279234777113546722730848937575037010179834821405985264171778228111312011853377218213896426528538742515340457986582622936726492381186501161913222539639023690794859408346589956321975536396580993839470547159912619820192952089364224540992867440215143545855844363244117382906207483735194132368883179108650364206904367392846045009121220101051458517734351722603166623174081781291062076044134693135782688568164627055449327499008022516142157547983965421910822508711705480492361253362657696963077843587360819078514533942660501599465434709933256667375303567083245821659096907872061673548606831560242591111247019233184901837186693351391147289747896666307517062346290753309141125815916448493534831099236861135708289896229618019305572512310344457337875194184766828492638671394222041873820790806517494792997594781427818335104550632893406193410400908400800803931844998271980133415668586836380471784519894159805227526402224308912587175170920571655880361616232643912956814553500328439898031488854335108344873308984358976138660524847372935438201221935888213927619599315156013750973704019988731625302146325267803854416269842760347407538170521228439426840770576400736009112295020785362267505014504519350379311721933981438775667376849716269783251664361074298268580199452589649189633692522514328793907292595354470543108348635196211487606589191915201741521196436407135338568939176515632787341220314312506552360297640316768127582152437465504182884285515320775149688301723263513338260315872664151155854095289124638344199947505261826919507030752390123480998305719264574184345574258773445071083581169769297406940763108521767948713075772635172505246607722332259532553403774210415316548002869655589276958449350524373098578265036955132447715123704572775901946483326410831672477450980873727475871059078870275400512605363197378234662292891471887678729808483391330750337368368884093767114828704545126613932117233450578229195335421823569968109013865480458652463414815966090693723810197930851147254518235126177628905433763201417168295018935382082336145008192297923991783467006322901695968648189411067120340506164242358929199532362361387528416945434684678689533714617248486955798029621793628896785852248368972262870167348511571561036516396372190781267720023224701465728108993241836506061961126328502749675242552820505001035810829312521035194845227076476837627988297938981141619131486681875258156854710840455785874868394534682691281173816971275207303010969352821870096386441891393392605857098427228782546233893830653372278305232344325920346107606749682152993204205754749019346522036918373618975505009074430277360310240296875971278108035101587947523352996279511365408844980816500638888012224972784209303912183966406930500562370152675643250751264876645610039621879711291886801249990394802030152548952327610252913865765494221012182145374873873854736333943313167740331919529391841381688033473822070746592647375972658549551610974411449207813684656027626835577379166529257686079939383346018688169179611916808788518591515957596338790355425745267335433428243758871880585621328295438262636162190731045569494792607801012294589441255654096655256953714258001903497932244429906590763334286591493875065204846530443276640631201074647330315997906685164962304408567846082924306891861695568540003926587714252545679513346391619175278837291127239366003012249530184751039923051894992177874933734192538625324846181695498746722042806460573446061636651012894823969140241940132158347823523638839165226485102553348294215422152080792039114022127288892975543696421409548711875739707794620647921207024493958828325163654675817371549178489270579711081929454610336079050071591262182028904786794339026855221688538004747040016803379342537171959107713816973372799097939315726222623373179501119072348135260614636651285332981611205425303702310465882525010379272170527687934670339030766683134986718313610959510249684796350270754667921877059647564417965550214085285347420638658405518446353377659486307512922328813043181061487394255904022459004733025831053038523528536775770848128586227855342690073784547878540110429200236270960067547334247917972616342825921572351449538944498001406892957974978590728089172167844011147880893978701804656790949458908322949496626343875290240224023193162752604967905120967938567687662280761047364878063714351021928264794885017017543234704072162040486969767453562807706702527965212325777238464979868166780255914709906000371114478431391602469049183298616738386195176915892559134103132966204256298123517329357309844301323038339781522126461014129499840220072162677755906812904084655703162529406669213288402133415248121580765929082092003072532242721461416999555143038965490435686770561744290334917662482265542853625780983811962225479605130292953761565567580144858593339132699221402589155374933318778333398349734160986111675699239782775882157261038065394611638552412626421889148597775510775019591967958892440681640803938211969343818722151616094075988008254111334077938825448254501504331910755645360904680525909602210222083223684919635473103970666599082524199278737726712966638302001848171583224474314518255761028157588925848986171228410788709165914378723552579973969360608432352992525314353567389096947533226294250115849132951193021253109640592540486247177854785412750030753024290878311614748271593113866140157289665960363434610732271008654970152479331335116631323574571923695532652624895664748802058203575431713643885884659857593250189045962793783190573190467587797754010187462186018574572420439621414072393011745773004216025987895114886339621163543697329826889797940561186423875350404163471797653757036934008759377250016523269204835097600554092715150701692281429554751039081761376578474305765121000392742533566595245093300286220495063227382906700670220396837140738084997610315004906857535781637622077761969090456077087494908415946179573771623543510180075929126141463259722485639555787381235513253510921639547702500697841773974434028293313146689043725987198907668922965403834088688812652029969024843606470547933143663304275833389074708357691119188055751133718614739523503257555291377584307376844894192562908158539450558942839466134561092914114199175852796449796586632533539117719078502532522838156772415563134197398704678333743699600733964457665696503281647282849706391985158875941072874529886912645155129486481931185042807825191691979677912770977197214271878069066117685113398436610439667889678489130095635443057331639588551144220880651599536867325542522440045007804373172407005516124226202407180769205789942148279500856754954965969726021675281732178767564225542583748737809382655363883119990735156885036360869794168165140644582053737423071697402461941320451951278847210586727330404701223614672554494813539181673919906552579722683431390456458016535221381327197361473892966931158672330989486054363900749822623622463923719015844459381113837269830143276325462191740429373474012629194213796366173376139275666200282261524580903053900323282301090405705367596468646864349379877503577829000119058216257694795557431557668654169760547680159202052915249146713040156149458979068747999071381566587393243838410995721940778928211476686677580670299749077094709535124213769698256654249267211715627811237136172823716847084477822029500655095970464511412030198238830803803351933689528086190281686285012879466391652247662803164357869051963177764784591283369162910419269171578016348890808597434937410263064472126082885613686706858959108496651106926701101628380239814184719289355294683078820621156593224561607827303747364765914634519337217157881962737365874684303366428367044461360348395647862953772275669060952448998349003108329747290628943705763269205692747078638926424600300115321275463160443811802327393218292234627143454928258263411910422630368000676792142346021299331497539222211075544130619730659863529440764521699005355964429449589100365193028994072184514028961478342839790854966733143848828169316632878167805882215921243830793050516360098208234907787499430546107123232958993097615415348790749701829035504879152099735872656894972916936257023103479588992516372770324820628324640451736431157348647003738148029468685287542583954169588440824177434835496253464630415489135417826095004832519698237559401079339198781217457329340333346748808877754640634555732820994744924513145565897548648168950436122857392423030427606643731267094803168920206753421115482774371158626078674419096221249963419388049795091511022531309491597203449423073621095286304829733325792538160855771768474822622319471533939153868905323011995468313529776855065192297918533207340813550691275918830211669896858914405954080212075152833146404510424521317843494019841209163285060526183179211758738889774674705767291806606531817677450133560352825563283528450758126591493897752792195376810710026803060323496800819575200075596126913136949960218513702982410411449265916439547551021183339277035102212632282508049048384364506744992695348635700708870221812155048523940122579231943446517801059738972664751232761292022128513124695914730820717800430759506453646633309852315034614707151481627090820380152389012498372102142669543081475793580285109881816623076769374943012853815362500577171891465535012597637255844793545793119129313171837063216584885871237018129981645938102524026862915856255079235747752550736662855448800385564727568554407258010538349792943335790107820038208372484641170296281948080021905423206587548518536802598247241139885344613924196012235531515371052423446322043523889225484807959400913287161551174323693114726347336430350518106173653081175605449537223340560933706539060951482581532803204428090642161611198574212002599760406678848108204146757750517714532361472553497465915817881913456587483427900075392748157976555007540180774249968894292861430228219866588080769684948818736176520360400325402372164759646907696057054499979654092974736257374896261966661805976980941916097282341691579289435811741210856616682969679031370567732034499778671960450873095828613017370787500549592483622968861965021951472350356662296008798654727135604844425696595794039213556498802274280208853146214711996348091100496308782929540036634775044997744475071464174209377381429594487038363881519666583472553577691686040503347388240528953530856077325407519659711260915886137628988409826519132115070204386856258030243461440422607378895089470497692918614164445908232904600543986303865025689365877461057057813628296004059434314058281112403287385448720307520402456362970788427370476459297384705174993029470359999410777131343921680310837874930351257783134220066071055081667683356445578485491337841068720775935383295679029516553547928448564114664527371355255181650555338305850881125442716168363669510548117621491283433713135465647159571704726560846670201479752765894172965112887228316024137585378234205187005670312858934184133998995362925146337686498320266296556825010771255665356360398131011933148521789260761849708887285295222578188719932877013554563371376004207992689798970518034049548237510101479752507647790653535610760997128527259633044000107417978756401382424260833582925627566919733125925294284118648022440147479570218995044736319786663319023028077661170092680724533557711447581942519633070570680072977767669351882346123496025163270429235614701335325300729740917006774395666905537822078259326972512519668361959094540934263793063634535157161541635883228148460461095752266614681465406274689629427704730453905358253236498711842434389713634368848607211891797069870671831232319514353729524926970086497919924090319442158193112114453157466237109978198031077674253073296002817512790652443476290374999507073614622369532187431687264582919403314456894459962018571686419430289352872994035968090283887706660810521985786173581637981737499102193762454957428941296695025575654761169683501547569230280483835348808441642233698636405015744603570787850777143913611507247978196020677519212992087883441797346038120499311795564206463422658305671686638939996107780496089019873780799949185204687888866964869314842587421998854040566574409879561924667595215719642168015147739654615540552375637885031819716307479973795686913189131535143614096253145397593433315314357728523949607908708699233960938929271224569114378814311846780315607626503600013483045926750673439056457643911292170438077873103528251146428152082816768310877383060159279921923760086758162553446592685963545133540572117894541470128512685863957750835765869726669751808558256285061391507401016223844656579985073587524602368776207781718818587913011417783473964364366646114821264651982845521600654412904062173855478167788889398372971329266543580773105889662674918734816767262461114901915006210219146715538450836799952190947825232380277799957385079052351160203477096049482185128201736408634917473225321721076192565909487867984569820424794100667188021733317978872414072795772254472364938670559847048989090131517332583847151842642056101348167980126754843947837515923424919422596466303404149824451647429982911624684519636268080778620136541910424432942124847824578038231914917045164694034346456093134363146452206712010803065187489016121088818961174333034924268377733377354034329424646371067250939514319294492805333851946730553061893221756632768305739030325820060532933674380025824609054467766549612539317048919093003757256948020673752585615105113006221303087700250197790316461979034247815257710026938652041649221986384899295131799380981921091767331423761314801437582189409260264557652548611722737091288071033505429914927554307648594372505395583861022738423879656412289739355054705438460379272825552213356755213339955971490381436510734853613741825788523934579156152738839039734338201067604596117744465121025741359141343168037536755326694631497312777836498089785371317670972770653435048412715862244220333565046995106897909830918174320230621159800678256861026449397963889453227485269709649390955837511687452079768184711224625994043147673345331609614417949315522248241713988988401876271853505350866656812987685484378161545227368339005285251253403478007778612960001596439364927649644029913078200537709152308799658626595096226382057033563057157086155019437626862860145329381673508286296515130661576134966435711412305908974731878302370313256920211725766074232325924492368374759817401855708394537756840202640337215661639093808006645417106877034078522808691627166199759795612596626688638142184283387435384785382839130575234734588373385205890953519326647455667398507078786591178332839640903212189795562471269284478094672095898565625053062280045766519744343730889450691352853145105878302978680645435041923482848245882342576420220299315216643915838341760788177644352128027233958795970578051786805119965757821780979830556486850159002037534056683593077274881579374447104600658394228578003614252674639571636184337058919681092063674246478474570104422072431394206156249645413564732757470638338756612825998131636580198412128675605441978959962907010062872552996783876229081915928478996023940340874017514743845459025081045132276754375283605869440422327883822860629947046814327754704386645140581080733585873984737753974997422646954061204803779641361677285375049895564514682212039893892184924353440938786036849143742394180279199881973333646888059623792842692384758424491083733981720880268089406063500363784253907546748481641644670945380466453305762246187354595341783397687223701308887261755722590410039062765180293780921607583122476938651469942324600924477306740771291752149829277194085142188235379345419852417400736247716676372047360006561401653786856731741684890502591658077239262481480502218580033954340639640370445893093571338263773254811429255313127335741437083702921715897316479738736010787383650444572550899107766391922548764400747646799798909042981244803776165139102546779537654341099894252111958043847238156136768801235914556259904776908305335138334560465240406221251091767678164280388772273612711079699376091237605392440348845024561940647542068951025363363512543308755212483454522699834558153987211480826233417274825626106544339689341344927082903707030997181172084753440543400049456765444644996538283039866725143815742194654162629839510125138569974438252846184181756312666492148042971625664005387841553870570272576117382459899085570841923997449758065468593371825764208408040819031223356498286009120968775811352138922364322337643231531377218525136071242723954142137203134132720292881458041251619983539298924216818774726368533495394919911522830750744061878425826270790831647742843544332581985733573584352315315080075863221749250558175042927220605074857142644922019378544435015819269270700569959836628935647601784375791555794767069134104046667899882288279419401558039775220870424364066134410755078639650671454148957817144306322389913451188025086787070448205614976626984879030403238622165589331195817269430453080530729603185819956584252813301979137055843738507490393660292037487814845890962803069114938794556342168508638642625851075324213973916095600701914093831684656621308525074142006165775660603663357478762489327315234808820584464753823048237695668279364710515614094736584915981649820898014251299088477138316290496673844491983670339250615876824318398397941409248591867793504672027713835388278671127391020105945021986714048761345317850766444052480062939030078968728586279431968065423042057493252449744016986235830665540854427677588448008609759121782939423592841286916544154308703132147877454672024787107834636648099605128250230675476980436961621510153403511375310113060148128504181938973054135256536330055599488701248124330752050321968318863332142868772207925663267580172402604157082153188381674856423804181746403865721737821087971070789377693756875359400471856249994336974410395767042628027531747064008174571960384022620557923694505659889555369974646921317690902793973486266404707054296538342528706471299951247214973902029865490247852514838215607803022153326135134620583096021261251526861386714977348979572425049885989961028459754735251509807874205104861959262278660268774779360077891378115239831850025307141703721491863232350901385666489569579316763508635234614296106212151657309788753083257345790383446945411150279391255968075718442952770533535958504168950845640021188700651828686626380847528410059513512952929486052574623678528161551392974282855043783506525209259339226784836091603857381373202360629434074305535515290023188999412621225690479655944987733370702309749332521356700523996249989947669657200360444277883153018546606904099667525783093339442683716663633849038682010197949297893809423355380171245429475492981347165326334646055402022627803414098949047696652634191569838741907322443877921786896563248710947019382331477331538778748162959518988781634295194641982826306474866657522342492736094609450520025066702742666705216991356268042229704544941432073109206909885623196803424695845271889352156952704049380542290341495441717120809041478115532071130824335225824386453996475522820069818213414584038094944622446087753894388084039728997506585281667158178578424216122298450045924429452556842621921526386129278551653784324788820279570554439322702634583861526326834627740788808290635042799592225409588399371512535896310275198434407565645842177150742061094755208984925916663261295190913819514512953248068857783725776224194737803149670328058759472288134210598283544751657577638291909835188347126816030817327697782460546711044187973085457358758555480160862796803072638509958844991993488773250526931212354204519648275056292510055974443715093585285383757752504679670025095044709121201172814090786294445853381261018154221966995260519736703824175036491739168516625785600906146512774278014607894743202592574546812740676347397555454438816796613956414733045717991597677130468040821367122396896573185699203998558347592647464868822367761241172090720964318400253919556194318753067791170627140246188118039480184205560071180276981125371905480077391711134633139232612968135643394138434645358169538077056935034090915589721852695721861102536495706383428983276154537507314454556526526453690820061652804300354614491405557917212326632212017638847539064292774392307943375130652510504472123232139858233230444545939416699468529852807610665365959726042288172538719101440467887873093020645222273377533763436239129424878560686808323549817806350916881744638832094939048993920791663421719055472078201024115632876975531354410090883619985638604640629666674004789494760679953667754446473142937825469082402295606696555998226556351797397027459143178187857924374995080598369136848713484116605109297523517469845646144799581996742631508429037100539209915272772249619683082843530154690782372582424710155566539242295459262088007277896210839734240957576403396885665252335133220058298962180028628295029242363037466630311586012905100062235750113190946955081505565388133384297394036556966649258447457017303240351656968131877511272179448008141845592633524266420736553265842820405386216771013923265217258951754194116655166876893822444201764964855089529294587224526765436697843533001557004304144720448157314188143849519370791923211593109868764724981884791469097427281226510905112037069472784577535869861399908269203165244493275117431554889986336631397536574575023536371283303602233461397241438248071855842005591362581187535819780327536907719895624355424939563628803962199862331206252791077259508620963397006384208879348870426599482249542467146831133233459527341535929410545785715307240234204943877800921151413197988013663525141114636338125080918055562916778365717573980640517521970256688281395106122397458917173809570089754892677262495805071316079175083630247792258303738832153994146709958460860321976636690185396532625880373759330741822589832743065504654686933435150342025924240993575161329878440100914629235968890055020623339111635999348198730916046082576151485580816051943839442287562174760246850215421183581626356058639627605421437093745636801809532804685329812246877236456693261155122908682731443217993990314570712230616511942885279944797991766249735057507956416865484218840588585311654137291478499752326131136935638631145995920300334677143563599294646606135904206143484674755138466426842677475287158021255770502179424140024502461292669084473976489446144535215615506041593564430665512335215933608684468312028832967792489689030727545288501026375009649455260394161003670657853514816561026289721788526010737155784203022071847833463359230121318924636836232993904611713793998002362215704545949060213428419782916663127982016548373373928865946805783012328880458435530476919226391740275151838571396646398847281720989419181169067279743955971526387770679908673029084374937224013024889639238917614084708923811513932751236884616891213051488027115837687263916859719608693627384857358636086225862798027274351128261478845330895861571580774007595421557320845291519819403560707191580646091424266909307116185017240683831931759232528225971448634970253947593644671678129180842204144831460387689435605635539743792925998929526896128038825103943286694803564890972034786799140605102376986955303436507992877853937095199904885187568937863319674030210384713528172923110290167575846909031726154337572863811217422459276496832053928894501898053968141886079189357156945170214494882653027305639975675231939628591655131657155895021904386379922426157263285033840109088097630152568786830516859614855354796304726809721931590540769389105689919773869710010867865881439841605991315272447935368271386058177800243879750270941468136048164635649947648663151456656778371680621997427000523388113446029097326947312602998277988533441055679051657349880900272119163048352498351665186622054109598034990033881825422089710142570113557729738475473675922214899758154493602169240519939320306388998191883566795068652901129123632946889718421433959350170615409351041538849321163936152251556993901955950318997058139640450572070457053751976823033139193334451606316340002267366219995875519890945095453726603532482092778000707981366483766795967992701925839888520189011463685793808932239880319431285467396101374936391158031407877205462360495090635945196547114710557107737155190768495997495669443758911537998415466754087206926536436240251863205377926306484114836999793070471305423718917710961510682844726370137009370646429665489063467775693997549267508544614769441721453997535720510501306070677194259599346758381751202625521245106114386352328909946082651326746536658238663066405743425562109414426437610723792589715440799649913435534382261634216179489938366453690503200648209004771323130370134151669722325752393416060624433771295542475550937397065835268899113746303747988682599625907489960270839482891343528394138185666698904152488565739921213657417782591748162044320700669816180496277128139347634228345389900600593368607341346898273820033012977640519035721994882273811946201980003506961002946635976593013027114670837004179870951372136735690021963610684426570253578168300641241036480137777464358296140048695802683782369298147566905198316371370619567810563811393166028308470783976418144024766663398954542821006981296982795812702211210434065449718530680498050320887041694947032652154004238566558099826850773748807122743628011791776520157656858919415899539905315618478945266167323415933459953024591801145588886326545995277886604261744648857683997392233180355830900825750470238676582516241877192367193067187139760185924407779861580515562147933476144292969796970446591529998507520435121344089711351635418408982045151099216520383227750153060416663152458662810825042846675102799238525111966272649473493408367361863432317125361973681311352943500278541963235713284082318856714343093557253684698095172604811512080472290472618920081657047824245384236860044904031852465393847375357045109304568687559797394838334053500567759537483273079907274854633255204828327142309113163114170688682299993337423401410097759180612977411953854159183277801960794954495305098740219975223292504521738171440418620728414549380035797878915324563554640401962778090257024297828741192146544017236156382059435723176386267873438750336001120326235149842877585159546227666831557118587389338754476466017354065864906406917607177314865795253773354755326538549310158374214618800163807487844269585742572047811385278332057004173115832440561804057588814847000457800588325445346543251968819263318911229217683814933137358575032998658793277382952032772131741576205662766496140764080990869254771701283310153720170247800981208682572439648416226258088959189400012407120691157070928817008304393779212089718550606649824695069616738200115883511136883292258127521800518597508475434376578741316702576246566876495626898423892307482034701693687681283656093084024479308241154086474721671871311647190012341601859258815342234742436264420427191536567139974037628285935867104763418482723524131835323994642108051672044330541607549889230139160546109346264579616088438417013450156654095579447359306923195716169744236041888678446725710041559169004114964261589976549619481053109731978852952556761880078892921281539285266199906893671953358751984153859716292705246827051941539320985642026557850802744165532637046948621014010298942103091333194134250993406188487304960899099975434632276701662184174965138498084357844345532079932182651867986395154308496019470753634546019889383715204836244484561386614908934715426883300342111810067323428123315775863639988656508983072352207432893003594561317401946472742269592410181342357664225247623875479071542473204291875186964633655319841835491613731572584758836140988549821810819490381880497459263788579598647213012394540449489090608296744103990520137468545229681557427438728383481054827144559682343116322031728372682326188705488645007292113684016677659278320075183298953485195886455841316945180937367714796605709649659499863783795486777485376039698129139166754475481605321607618851570323820340787400059575542690553874269494492926807786701332189148565254519893536588928746062031173018484953340612665480712403852692333225533202807113254928082575344021512831008574538331560016919294954712364231854872833071978052162875069797653603505646963191938907656476712923938809973847095886693737756907635713880282345396028267176913954984107593461871475196364173995564004066941069453529557068603616179359916448419652915116802299982770806105667686037161061018386752920904364488687734779303570044376156808848792821456336412345613238548448016307288286252179027334041179052694708227884919666902574811381745046906263271131836148889084983103085332640034364123453741264071104098147449435406869171465485109479636251307543645990418465025114359605449817769218208356620890131104344664506160351779370805020294702212053367420597977078563116901327099307286388727728592396189168785340285840439245841223287809508401836281612966373363136772584792437396627839449079302079114779118179105057999360626759756955162574376974404798455520885925642964888159887449927844669482909482932178330805901645892889913458572054269676201367617940491529635813490527548632149493453436132643696757070096313827056034025574900926168166337830775898509853800328776576535518807365563715800450046991362816264585987654185060635552692950464057482636214772511663955347772949640916481686910933350800838867228063298807808265938616605361938005118617836662609606481562419357355160983299254667529315844737210414084195308194830679827447969393821603787358945652586259146263148737233897047437317472389370876805051779290665746688495229510460110718689767724965310394122489013222470357501785901491105843631554941851425618725505596415998503239637953090478341082770188530085822924303554803640984669244262292786647824527790036258059887687047525257583048472626825546174683506082753467567252222818605999449226684867860044096535765908797474613560184127795831289474078423499797783658943307823921001039911945238436645448040664504530342626246609288307353273028961386044651323321702363669246929173329214411778306364587544284673319606547299628857790533333191178428547003934799683014795038197182965130150853664485817235007682799979600763621052235038162717985679973851868994790619224953972186416648916275242861711710084458838944315085740454712921701784938609823693537659754309569652517034380365578122510854861889064607239307019908944245355359655379500930511838643985384869025700653285321488557223464848298195923028772123244024760714990881232110017878981776517079909298656833258053539632878326863541810517980718975958869634443463847749623784237983188031618464536889886286050461195917715884401433899011405076876933891507449726708617091954264331925608663299656449806624449049656828450655692844055696434802444799210225732797392558589081467794882524870453696596053085335448698851729941460111442132114875480219030383966621812652786833056517532965290375319227620535360865194369046463042925822576559570094465851580797175897610454975574528045893359815038581342772237754575380091899661083047873531196358225795879769138124909550405052623905639579943859921517604664874762647059319621714022742162359020778598270570298276167978059812271538871429630931425837000013138482552578875769245188157689496776505734742288452520579531572920913479410466210336121386915240272003237296810570591228524066222332786534771308249052010859932419988414009138093512622450447030426472485086761065758174352533052187165638042755771692124029337395311626260635226409513470278537343829989292830912585271247413322138577290131287767920407561452195179992173434370993538472163250043418067878030399225580647898048348146714129267709668898766413888066180428491796241251921052111526086593824911648875820927464329696326945608467322942983529442591384932278344441422272417866313484590051046105293546363517714865507182470797538963931945683639528593338149114961368660804518712438908772098489447488469050554556698935809223499237344690308434588436819284915266173027721186279538475695443362857825874994162358277208557282206337640118742760105438151138373357553938079272665549140921287121264045285855014516054503714452470018600571584666740257072920961040047041823171731343529654569920993435761282830627139845696982796243122045209453124542775104051838112508193505440241116091320454751658046728744928250701812852358052193865526579145412753071086219083716174226989679855564203365191040517101592654334195382635995118056198673778507171829167030403365921900782158707199684170622157955289600296736651599223679847700180755211917349864869309511595102215034837176921959872696643667729553926748574642894764323232362825662413360527542244746902972428262172389447019589892475610157950286581669500277801967782432723930272774979458562085904478489759183108435289804707477394443792971058975071261883976940664074241447351810504663237322695640433230723650704586419907033875664454560465605382995803083451085193226382537717939991992680286946432925469897130876293304759079176670377957380450815533827016508047894046932116918637908339378970230249928625709239321265744633474073171463031720478445789686356068210546332308954619886886988754889722951822410414461088891051240736997864488554334991484356538975386160697566672602838357502163424653468436926838487681884844505549058373093176801472744709124057843084686556269557300831630439395222224892641214966572151803254080093626739834191446851423522137270344025995350718367866867681255119436907585083741189736495471810134707352995093405575379903913259892719832938036514917258629534351535985951073686283762967894153111897343768568850466905649689190000709651740393847036289163035842512276831261977001588183701502414755342768411602260034487285210674659337196525616977726798947629490971567628009704293027897081299595419352532376177236851792095226191128580502701654794180323792949774208754508073140732864247368506070136124602476435849572087195518965383490548836289367698943858244437826901763442865894937241670199028920752529644810513814459802070815066904742698950657320353446675802860304075287865881091984927743769541496304940974092979785987482810672772629800498292888324085922559443510252326511718882325327681109990372797829500171852526834019802513412952559606738598037070885548927136413421941289841799197076422109048202985153923121436361900133535357867245602734312391177864504133163075079176680963023803649224794827245739094370719613663141422879756019862452832232131707656777582599534757267275002138092860144348275622726884841946159410102649705236471947780983715694737179041949666692902573291597361581591180787340211855689587571097139987240548640881303094281865081706988029613795626366561077204436016950225578435230627854088208179496435243161467532162695686516059906277049435162176442125839974228461271964387069740250517515864520719133154815059446101060744174645924863043220902774222425541139793964504942651929243587506142439159127297839047099236918150621450459425507002956671357570757687890476865846936884065101925074493132295672244840521782748219452342032736808107950670344455152956612477611228845821445091131434941981970337382381604408702885469938596299903492486374314368970696894216647298932040651807159767025710921501752097978842776995000555271495484015915968279782913087966265821384273408181751402410700606921882868198821078081499540053336792495548532864806611464747560324552014301090290416954210813308306621511240493541794124661260716556603439044459024167304930643081218018547817978343808655231312314348310153238318021610030334588271410490147112085608375485333659047093735853710816611348076450428668884704820097047482367357216902425999004843380900990445351520951548250466093940995619141945871465095669322906248471552470952990665533743359581151720551486432997691359452176077428802344182620155490420715551593294655513114008593505654445415702423984269766731422645363006342637617020029290056300060318535701343927023199440342293443261007657607453948996225276158773925426017871456340894783449928612754141364394868679455364994019550189119659933220512952331375767560701169329552207769163516831009581807183228700032643261171809225199884609660256698385217092808617123041860683364121115254681612857639377738570364358388508540970396029424037145221585685850875407080369828270975363476202190066025841915077321302052872044352643831653557451491038609726442337420169227580586724000430466857644241378239150872044611366841913387050383343930878698328426640958079092512155538190845465985679217651758767570132880009808243655211365162320061239561524338643819651044693959722268966520043485075348429023454084249725279975383595455242520567821790444207953517284230487298508723647161425704794841216619263099453270805800933551891868092633614883181128059557582401420437094669281275939594572441280049654625229033386666254053219413744713525886064488862431185784244552214785570350216983564054990535533088528565747396429397806157716388624391751350042764245849067956638312073826811771540914127872576690070449420112869757005056170753045809326234568461874610062469196399179716368413222386261134215631971466616531602753963705930483851722424512251049687649737171104910454299939653756836512869419088105363037631668498306436953212670071216393445135344472474423603345043021290027634037960653417391472365122222340841528883969149810463298155051369746405983706188272141605942489490835227635476261830464965991879806785516999948289871628719395257889974690210788386558426085475088720321769806570422269392122255783320132708812791972437767474813669652274086065457422144557259236662737153764759208876666634383054337279502883426145086624721495177874949466442015829136559326134060537396991321633974588431031742028391415540957297304964691625786332049561155011429779905089278910791432014073905964994838571689975282887610806090290795429275211453152957447088767385605759668219556754766287892517352270772335476127309464244800431868780898993647933342236546771891896038036475434727289679628140997477227258357570985003598863441472933054998072416846817820522365170998340203323168460432077809457404182240183599645494975487019299854810019056210522699920075782076977684628575849560891025672573001179851639481434393409929774113766265648877379241300683538394641073810023145968963873442457265449469701101266404250280063205653275836440927094412386434527373752271628485589979727605821158842131460906930592735396539052233765946205280536831146540991847287709466409834188399239969418612976668505113172701955240284634269695068500876548983546762592258092231616253047320720407274901226871071433865688263631573329905178031002982788666334340903985454182944113841395779334339799033372460404470062649115005075056864114056292069563176560466228016351493773982741591091082880082763806897004461109602211495613652894656323967068050236628779796734012763530891320512117303229407762296519097043553451743881989611380825967580513648700712928679462477539646693976340660171540547137576226736807112988857870929267454724135371160251074992091728605457416734586493725500587250965139190954959987768357996672226310069694482837593786169073914152231195823181556999931626999435130281430026258103871194386130883017066548861834240943888064215097287333584826455209612331217470300720366999012648789345082157161702291115564477675087095675593561970650204098135033716159425543277159736730111306311629057994958296990758815782949738785837688177128358017746342921207804227048429966485187580758705393397065750743183372735510129277127624688856554487171180154052421458543101671286632285576608194352550349202451481060239066421973652604253993586924858482037244244724622735093974659930491597612727716636617779316441372851834139690810693593304733912584692028824917786749517275151762306559827440333676305732057576507179986901971843108448129633298615267825785717084748071445166213808036491996108710653341689315419924476703731119153726516550457814846172641917766534502682382552200920906286150000962460948656140002124067943217938298674517499892680485419859357616925611853873913228603888773733429619874850287681288600120060223154503430090450528951902073361375999784183514427752291003213178207962597040984206388740171926041786157694189437375395504109861318629496705027701456644965281139846697189688202428986189096095694955092711766827865238078514363842780902025880042637984192639334208882219228820547545527922984644455737207435849555545428455704492351167695145579567478559889529084306832157576265802532812000915730609161993985795849127913683863966739046332379483683829125869385624497365409216945307875892557301758722046977681294647908131461811392002302245893203238123265218051049310100752890902980165445236973733619673491211355985284564854508970628968577680734731186090517583816854472084025167397737277918530828805777442320244552985862968165515244344415589900480146032421032382122558090698263669100045830239120562974122764209308874359160499307444505086597730090911192671948914129090996532745855604513092978363693550833980430321256941682109293811175304450443187739637233563447488844103221918712838442460046004544370350885384747474585644797528350668796716773927450676471891123281791038205627053346205435744447519153408251929902329938322263534907054886543943758832348411851072775109609358561027698518109349993533491688107136337871133634171816051068908156842957454800764521763820626348631777859765359664819128357904573408941191391024656740403548233178506698759075973257724871644891138773265166683380886308696899879740480151808373623223358200403158544462147068472862884857261271520810892600215290795010390888294102275369748496938334430490673279184479133961438748233000740270683341267338206192392345126022284518640916214015730627606614679710463064752256649714697515565105138787200690164348871951766526440487475457595370085786020325510008332906585847612768843322383276927842374671642479498461143262725041913432832968539721258836231044127404561777218202767490557060314613053486966896859304189139253560698976490016600655854537451202035903202591521766359442035058011674256975441410180198882275469193663956447494351346898987500516831719525309072835359466336326319310588599674394716400355787883437260139484867736526109525511380828887276850604167784186753162345641075413220953434631596678075828910786312970100068858231129800657783668448878667238748158099948785701125329449380420159526330377689698144068994329466677391624303331826707233071553846957878869446391760859067394240489735045428777605601423738824866824131597635647356099379735703673061743895760919788757354591265143926854477319246827877180788694634240763249522438670949224840593111112600126773424260856113462291071612008944494858846629476457543970958659994869782751983910273338881902638689201256219101379051724087430437336521062584796866413210988674991610826106622837908574780980918856723791712622179608423183117448061632162398595757842683762123669732386490562236056681642669136117571227357734555671821740102491474323494461281132754960731185372271411676427710646195635082365959801276282974172833090749348156908612770561751974887476486595726748765814811423409663253614987753699229787077928361464665249261237813168911214320762705888047167695552475407776815955975754139526981598107633097561829948224416432244082471544343377627490015989406246749389655087832546878894432943610932125887587541453389766139088892036055133970960192605457965773301295379932118175170179987167334152861088363821363400138592133987930573080640315429316216469315153044576514357516536262824509314530496499421568416264783659489575183950208672428828108404001622730753481787427158741054544525136063277445853908120664563254554101791446424657919565717647531046297690497700241809660649216174332288863668777849488684125776912485611350427734085865324672176490868882627817662469536342574423772315036092418816682162882794608606820727013296159695248178411472230489156477626949541984185563785267173692335784793462887792497999591159958377441912499500161044116373691694342669371426113145056166302410506725768189569471894222935763747085432072226964776678213314798352130746506896671031579998439707052010210829520416115658263724516698660087167961600283847771380090919508017428596693567464396834764383010217137679695268419329288152897625501419515202934562548975245415404507872372688015066597986428181284402979437827956132291153592921217230207964721495005740230544242239068329136871786034599180908303012651363286281969900977038351314976572304256357579932375626458584053762467602047560692196807417515654566409684244798352237744249160437302434412022818500751703491001433320715651759036696298239128347067772753804572371469048769070547641992285508964611980536828871229812323724881614119072872716805427425585909044940599548916994032994588572612831762636462239449268692572249733705024489906630460261926448948139955510530501004489522272559347631625648094160540249792298469975078054042650640006330346502299036312412034145114334159533563482467257704233542015249427517680746714832843271447312717612640833271994284811234525549443361168072062747972217501737796368339641994105773202459057045559789343859042568947930912184409798150111579883369772956621382004151740968202911685339354723441861689854021517489894648773822296215135415103887201496759895017617998115947710499599425750447983807402712894379617561674761873582401193439744178215062594069166022253658174535484926820213303863789879496257427253880464420142016816399075972965347241023330232896307580030422301182924622665253647156223826485432671572005791918157304805258450923333047814187703304728890777026937955464699554297914402414908711841030255004351825068332519588266713802266137869897847121362239149572646942397663333229412725933954342192442506284652849189350319959807940439944894795498093259667601972052364262623934861881867065866770192723517094610955457649355955617075885109329064579762110914275824110965432970693283259427453721459525702950843560796341685715239973292651333412761015647568522157174160348286644703195379127511180613681363441199815560870755579581111790529431565634125257200141603347084115018262406664908580377706089011689081517233880983943053902079742522577683990890655992661755760500881526539908478751094958485157380340081409501557142950526889176382229292221809478793671922960691328854680684239875896745054404484301185203705642574966499162359714455576736464167364470505914019451951160382334682722512105261257037457450974958401333979621687609320579137869664559082638901947321950998574843596612397160678700661626521573974744553365369697410930864019899023097466450954108147249928732214375817670542393399403546135924825588004121517248205320614214572009734721180125782930395381925980325796347070796468916271626377081723990292914677649868092118373456516832593225647937939978877165051525903265991299384510635735442952315380095378311453067734605067962348277619373972986354869524215751839178819204108336905987719576892558175608350928909384833981320003117153710620219278977077494203053712596114321253131532493463908654939306980803487817619614927076240152174734558068720577297390381468064083549660671985149810980527007198997104658278607343322782185762111439518658322835765159983618777239915821256008342737272254489942529150034541393077312199849899103791608023634376011545635163589528925117130780315241209629986807807602078139470966957922631456489747520548110592510629160392723398486719774180752292805740057701644295315493011264347772398261986262857004368236884236661390358567894005943679453166201173011365915780696277881991402379762223719558760323526953251344251514290980927802688270925117980175444913155768217492300999534962099676223723182812677445394321733556748709365336147429069525857080098688025910032658950649180225712574982106900617632979067489202706707373925559919689784362968046340936143670143734395848725713975836204363118998874399974429118578615410266153294115371707104757586642244238218904360495613935329979878647094485032327367444753900907211410802016989357179266570085451854060298164224792019296876737839574662325495990145621845813183264161248202526594761545332339681105148368961223165767816676595468091134070152465338376978588223972156682577595925022364110154238095715402969711963164888568449206153443925866153947686306360497829108817615066976137169108165578432465721234006064167613194541088211124599027306088893536821771309830165644397831223329220741921915513547375414827063694206118840076120037367474361586095152226601120552731199441797742533960718578099402890739850902091097307646751815462373698335799059820888569129327604656770943003243571232168968192499069990345218783366609521334479987975914691443639788496905587172812791708399256789331221705873230215431648391216505640250799538944604658538777804330658703088400636487944283151691596432034726608799641958485490071540683086623473999432111433789241619071588144540616772241014628379803295637163156476659434370146211029604677037077029625639718962098792071472671277004036134440527883161102574865371263209291914194129885983641675778309516015356187441102704206446076843079258067090512120958810140429907459732160053778237452790212017047378728695241340513240150610052506885222970986595582335089061507412608225242178096354600129310516481917413704034126506362500488151937349672156810374300649460231749810081943010542154595877445052644276715920880766019367926382394702608782588840922730259205223060985419567244240745069990708150585883761804767018080762395270401065688647135068781795807566662094935927277550075404152772609733836494603931588980164317656801288517127357356257831878340209245470930935241093638601330059477943830464406148561328670324491109971168469047458702791481387686938423926259587580314418306286378980291369177946065547188856688289831913540194679259897141546150446675754478697785419425323403702529587197146185466018683204724692742779861110773717367812978814104079812966908560964018230103849267108855599696828027069413008833571451180772027312174554519737517096230175850183248323595563295708311658917587924474131230780069723910881719151644908496020422574087062981946599906127254221038600539413393613448796075104635660853349789654506631404098520060782579971073269576494915436632554100239938053065294118022314384892247707573279184827877634919071443610363633294221070664131876299193353525487023550015856312791814592409984827440548118010218652588024601507149723941198221200828046666623576353029984594398994559173974252844648661452151818764750769157537055786309807290614167091211740273221253688525940432485361243671661554190142913132913887679062779392716521891844959239679008574273182859271334883331857659858805393798383843175247875882121879161021720536134307943550986473299116654046979992537495257692233145169815463392055816819252631920868862398365626308846622267395874033099032410602750830165843514335502404675638868165750304127005191213555594058809769654394172069594125512498074955992589856968587621718925084971888905681275688067979848485971306672111591269855244168159895860678499545476928619249082242551233969152049526403976301210571837832803227194787370619745184317991548256778622986038428862022283645184875668288720384882256447207480652563739530759185955156997220369541435761962466862440257341107059702886916985702528558039581776496842376815157326079517020420688068375466122440501184485064019176563693093889169090631994218171920850648836977627655566551712354559336149185584081215594783498701842355100946337365602376458108808458688139683292928156480099587440048929261570645926619219011313569769442419327344824828777004723899472691746813797364024459467563248115572950632028439080425802534765580529328597337129305838573604222959552162455125271988633465087517818249411282430864024824165161590622102091495962368839737402305679926902775304933522740927798282748071833750497415256729568281487105994581790820902462143076757324361903786011711629082080919805626466231527501193419157569372442622716728998642998383618368065992288737804259954150754995334056310441529506085112539539817507764548178974406006312793388472844104998017908380710846304145193413974087002148398942762624644030971972012077435081242833713763596745625941166391671626294237560043153913636218368431108585808933161208829054281503643451380584880767554135364304632905317137051835276825502520701000173927466616379544416655212678201546745191871317553996479408566062467596862654831648168622725220042527907892261292378212359654377069807478724003189200258349424739525599691269724964522119117836377352486208900398818112230849729532300109706705555372159778300679461170809872750736207257788859129099597097898489774902899235811838215567448127649030267617678774864112178612623456673092024086893605898393253371415302588838152242210081694178769464290313015594269954911574316540213916024230605175220610853370817153673365721525854372993827031378255866955072062938087667871670889183691555438227147248408753492019457750728877380077433129241142148085462268695524499301846840891898121671022650199862552535041360024811250572696540855379970543951311049459385071211197523785278012814075569692937072497804147086915947670909884779366830760557123575199919470693625333085035509226239329260873550884165484184477979217186954776462279961729469273449389724834589152360167203479593752351178740468209785447599812165862033970244900423304316306914086690803866615837034404261201495208858443147436973925445691555789805120387663840966913670682023182408535696724506992988099265020698034613300913088431437718713043703558700982616563072348085216395308308408068421539347522486160676066030367687986075237569032498230874626357501664065169138176816940776579146951491082875505313389646394757625993579897164516134259757919336504214945360658978728371644945565255472024593424596579886997359216022433729285814018786036899112589276377396869813695988703957097594259565442270706276936739766898927444418157620921317200434988216932058105361054338477795815613920563301789483307066748756526143812300632688280245574416016114882306046651126483069107909366230253805221982938088770665521300063668190672825239363847081795562156744317721518974086302284778013708151394933810061761946002175018956208059245210313558384593252289142725919785143239735400938589734262953917864074977952481475656595536633924375722213681150439994120610439929201523912244588598287325720822201008761735918396755230138621785927769190177646475063405934040821319293463896110518133707583086427745453391615294311888021977349843763869804339225274780718982782603859815700227456125708480234256666718187228441701628608192305102862838624982501802213959221909125510040123412409147251115207678202702383639518070277440111255924757000705828757776608720001311663387963881617320975835453099924432918203661596306710533069286033482854675286037444701045193626715260077343123105946782834055718887669227563079991760837303801029813307500471276371759070861056477138402509923727879094173125919313282612250898532832397293274114459134611746303118909322683551927947623506255327897070392936191059177564567803629989336683789965972085689543601591624787807247370176187055338106574719526794159175505941515266048786076224956075429622128535578933963437963430517671246141601765213576186866290881369635760249126827338941460360627465780108740354398408619266391511313079927910020325174546581981267682650842711915599016010206854609043757689339618440390613942588460160293275142947976514252206166483966718516126503868441784286821771292842490138666059039234210649352531478915457827693587752967803719917391106795446250892523061929478609775704110763644732875593686990410481550573852113453975004335687347739646946356640345453541265665401423039211358460601744175068267357004472161810414413150947642527263913750650612880905516570520851539893247458098327352660157400599611684438004170055684476023589146768076880723327725412975325177356700787894452696228890747434760286003676954318845944516165543084147314697365546739431443067982415473362342816159371121000788156536111452715689325210487866427711845189690683213148147899384582638229923071326800041049877096830106007086199211399890496120159569938361488739562333223458926372170597489611002305676895855476207271000595823271469139088580134902023533628819870082644558300344074625556301746937922686273661638848572590770197597889429120712921483939347031649506808729538659904499816702106603995483464166228736086671409824636044925781934879429671293109630085915870121827738910572180125010290923647616288720746175983522043724017655064308350353384321196667228130425393494007085088423234417010417205370827293106222777104225912341258882221786734837443971047398172703775080426664790878847109975764714679354422633363455527957591741048943551605995894850149857819794036441173101353621994205437200065012506432230703630322798519500108065103427694587531227189388788189462409868485766162753261086641840568097800656829957808003082277343984376393799887122273003040898595619654457926316352908368206617107317852846148908922014062759565420799079750428724642035132531305657068258733980587014439900753410693798921891364180323658820477601465120933840303545408558582459021655638091569399391823470424412158065402878974572277833774426357529592943416852042913267249928067255265476673891554090116212723656739814266825059750691381909252287361774324733355188174859810385946551940726171523181059176886079399355119482947494605313698453437008053184520899388670525178182546311821221021273732915331913813901947575776261163140004028324633442943606850423349477946223625640363031655644252698263351424368934874629340438216867322542263348170974639253711885872177940900800259396723352677014944371185251141979546460799157043063091651259444359254635427759814153558681396585811324482231240589918243146897498528033053932017784582853698601437869887953974902861805709910669499056978971918886591374966298992978207270681850680792440437878206832352870342190124839545367465147957586086681749198015631244451298424936907548610899861191787260256684977282053907047177488886299113815114548971789034285672592140625090256298960167338298502723515621945582776359076745848852462385777695226143129465056338122517182895733485721177585269964704056444408800693016301746353347860093730380826965119085183703239314011317403376855803228026038954480798994605596736458167747537544252137973096319272198000672341545754292534340975322581372834736136288725689181273021070849347925872300849990707088658704446850098131765939302366174467483393174781912729614081744297163467898382158651754883125985494140712827915907446985843567511802675433290646222071756630676499878840163679358002206859722569362859391136680782546873794066428976202084395545013418742425892613280554957517246094735488072022780414730498937057938931952415957207894029197937252156153804440511707065071809413663927350319010045163383913442680914251058211176014890904867522302051832090484281053551705975555070476822690877445252687363005720772436360892406147483240366246274556030558849067600071018669305119890936860937599195879980633599405834406403243412818693181059377264786661402113856691274237177504018382004333315478905474565334566643483200126929649072375773969951931832949383380089925544285094099208612186354995037697920969730750868441741849116440940333536005756534437596888462405508712347300837287501126317440063316476236787196863785171904577407805702978486381170480606110486219104357962376980167680680086814044357171091319909373598198374875530620965898682255405121204665313255163564151671637851362722694019049566969073601830818030139382052554970061381770064030027884733450964980274353034567725468164508120454263600910888607721017334496186879599053176224202126401676576160920190348248699313811607573597650626314678490271219161424091950890278295075189183072278614407959772133494923487177069497089562048257517491022951411954318685782577475536214928899603699414031611945202404996196355655956855986720923248087590120638448932906615318055898779177526146724144543901854918141054552018653704666084788527884779810943069240636396831021491673986023351458806364049900495168681201542680273349628427328180487200870025783182162900540989590023732420722621327639522296873348507705185060063887282773999916574357763952545370422003607742956106630777940776947311178535159615928364571642052859284330119010946686123629417332816775042013288870632474580295478142955346169403529862986180171794575662329098446747596285538521356125000562006933538192189893699755698131270105610030618280560760427240374180278567859365128294267725182006015174507470333077618505460457838836716063086189063582129043318361073474514914743552399993793692000120766721139455272489757155584168612433970055748296983987302042980818337639720680595448947280846411464737279440226703285673630116301266270020828734398683528652017396852227886693007606549252666136879607562257292201805111678360263525634330899740092559724862078937951714873349651900849064302630492341968983895765675365286944188621247682800189884229417775846143759917207662051564358234177784565655831204346346941721751012424254300790110458785246535771014704048517179247670362399122858510239972702739075240478327030383803616816052481970214756803278235481938471683248767662927751965118883466806740102060689207957473195954717675902036366711173374016960816071916103782621786759078878476162300348295754111501915596940618856437519028325938940555279639481211828902709703147944892276978823238734644517854744666710371794163575099923590532176516055600542680025847396553578588904805857689210200980209158012755783748135729218747453884995212345995394349222046602632624668881703867124464931335173991633421147303888090072408823534392178249319618162247256704138337666367785608301139671991486603150067805250780114759426747675712772822902744749379908311876618539382854752517819774644733062410988663991052570572543219885956555793798891874906741303748092712921598897179572400912852530890130398451980125743733240359913329623355080639829880698908942154143762614229602615062819977023218788116517053465241214093740764408319625394188402163734593484895833071151362597640430301849209244500138894170068363059453009300754328810924099466814740060890183335309151677220626354326965819097064366323011621600406843735846354413776137013086160994331800584611296254121541182828345218196206795146136014969268135590075788471157676945873383437637466453561352030164323098431996904145984329607291882911386252533427193784734993285712926615108522163774265030044125739700472705900085309163168452840550930489108550496228160431808865569723008681349232839893163358817745670960070898191483378614836962910071781985864234899673964417666316685875962900100924768702247776781980775879825947090486178535021298771366028472563428704485763224131669892868815074162547099896169883512962886494911216100815389267685002646607960028526484202521975334591500251963754144692004362673673227693684078688738983810245600163969128674830500680273693400215180862412400150504275369958407700440749599556554814006046535168519984238496687317827506722286984394605876663939503920581636321836134417646469131188553921168713487641881678999998022369750135400591793586809837675815535491445696001794493705212358639415342444069185886434045963239376071758181084691812449059741016167093583637965634073372906068852610443193962349851143759135679703930316148897876230137400079324831650946138150827561917967977088983458530592048601395827146270777235034086552623580401866882834915629119816977128306074253399113992907430425507774155332852899200577099654322653967536465005530601135237529847399023712201467858784146806713894425299236970489711819252119434238639208657394541247042346730736208535331811001516540076197063788954497324391463124435626603334715130932234328781157738396733544383715490183298576693246055545410111943650668454939949489503485339071686972474268491865389072643308290747935644764929134013967981652956002412227139964654996553544142560091390046781818057275319010764472153171308564239760817994758411196035047267274020623340086513110580249016501782730802983925216449704483180059115518510309839706859409637551075937334345214821159604364965306395543876205849981764036328156422469384188208342670536812269559018737757353343131322640670435065322433749240860390701910468159106452922940800644781054483424080798081690627829238965650336703651558121168632396465489073859404336459290173607766651629735158327698573359176198878142853191043709917220241202502545204011357724665081085292033548470496110686225803793150309606301784233072206455157902191685040667840734837997175479451314412346324691576541532365338571047928241359202763894988595544528462207959323576790685653958338107165791194967810357587535555518860953931054853207403660974580954830952550845380095032215351115763405469698320066670930414140727567914559820396720165803475711439664118471556064793092685070870278217625735474613027936900616241089305353618403020392572529890115677895750361486360477530038061542791674709269698271769279506496375160466629257885451114423527067981093630400223156312030574417552786782068524878074482503221364886660111805089353930287691592839557603884716031529221299860874867862923417283367233163645949499367978251068837872223308293551881548864153462885715238772165635683602410743857983108460027685949633612035179912052708230753883864972068025361362799188624132029283851200989619784339392218616913830569996296593499688758071664298816979474374931494656628382902477610339268600603818445673680121667332843209243182770469038016758178075404960710083533403636973050404953973102283536265252912645051000342057220381012947651133802150989644922245757530194581626889746244567657182253062708457924286228289530547557619197216619254521511605277581699076919765520544324347117193476848064118868403398776289085480168694713013707054058549535744157940395315533964103057351311052993604231434227378382874069500278692499067321656464637251722054627020548893581275207957350228931915161101610453883141195076639504647260768638618848172938531636699523908136617832939094225402275477061194876134489261406308763634890472177319812726068719566670180496593650334913551488842615559555355981903237690214848085541101814048443792022712477015876216781538290621621834354175004156872524844146758744661247114349995199767027663631503088051410129528938652228830543453760874214983511612552373876698798925499776802745342565924959223365854579665864310068656297626885669957752687096940063267446138547816798975804689136422622667233120492325681599805408102945630592324197384876864511242434945401922522905165766205550159771694012125374475396274742473985368215921253440650853720271974839965027045917662672739849872283579136099315098647947709968136921626931647902986051957361114737488161018006933790049872402122759872401096209778928539106855823253497126562590251177587674226631564397628545886613837347584649534068963279795422200633519206208556796509398345353109596651539534102018613565223289821051681205244161172615362437353649143126153550365807316081352146092990682174170471208451992558981666749667037629839119454391554905540736326280661200677552753328763445985432845505395429257889613930812722369750974248576956866343716219999457328323133508191281224477099997456641334930088142050258793783982881469533013936067681333417534328307624978133689961519335810976346289313695931843381730194886383393971010328071387176948457465161920113304596068684843607167455853476103775164134966329048566367189692693639631326070206079557380875990149120512696991373577217357493120998167902186957619084129862893392862059891804035515067587034163193105881282075153462502757090109263521917096370212136672941371845369840705120246219204966866763067799543055246258765948805695415643796594239010063760883045020848466065160712986688608454590965390170307306019374358072874197825789445836404451325505280497438376888486225254521059736611990515776164481872728401753605987474196358129145290483593746317585660382063109459065143945228845212338080826211967842851995553582467768388374131490494870682047478257890576838515130868221610344331341291798064611720595241848775110540927088235094148823548546386072084168655226159091761768302251965355656547619496434702775522120149146522199651522495259308037711331147305908747077866384226485218346324608927712275702519625492349812847498734274848718641450993988831592628219719479873852127087617976242631636558166245210714547165589000221414089884164157215255649700721848990670383244290504561519296530313827972511115607487589010129627907787038182484974433003856075356741298115957677207234027084745638632226482858396826737858338611214197082831483382232020400579162952512182331319922587141161723361647989473640531213077516310850133834909989721875743072006034774654944510272582973199092095656434745830753419124332225822079514539140044284191843936980164878878298445963431834669586363406615903589451335820779067890223872946029948111715048063760629581917980893463071638848908761988945396045056540296734590354201324736289111115071585871463006057155497481158066626167030530809791497090042573442732537378442120561460586874063880106998105880820810355320742041447034264885258182838556317734427291352302283146146187363727094209902315969672677629045625960323753779185080453202394496173891533478309994837697769408698959001306379762213973855715559024146417071624519349709176500742915744101053133750015570761481197796204958954638015420901943098770851188725233001575826350673674292088814173229015730934574195702899037627026701604358467645770539516194195142256174610985210380362108415566514313841929951533121039848232567887709551224912517112061061856812513655512780098289622745210932211008033280338924594760238029318982426105291034363580117214494663137718211801407842592369791888775962881846508903823953810996705677641915047851723173558082084922006209857222883412423045025831929366437287347576205860141281455296416605159452988703451433416794778024971634026768480556237399377183601275870637377494872979688544492469873896796953006387550219467920970995528132618996952180563350841542237926769491963299250038942262718100269779366044042096297333765270810046028167208138925895155345012877036635173868174174198212137001676166197303357025168142880990221088118047147026048729464239304105764114850816706320845426960866724351447728608859629630340215989382765921590947205293044820296805896602770935883826914078500364121044823925510266718580599519931499828780450307478387686243837232078556653311855960617256848528096355651725262524981428343574428938504911198847014109184688453150616844175698973197368534949257790125877354203324591560135876668171728548250707791248570167753359778419982048800608348172896042086108759436190250119176729231890923611766882614985129680402007229094298838130483973284993154641206628252510873138230070341039895570759673554670012766745512161005739733902053997082509727676786331376073896967164490653790429586911462689190441639463850437349400148813013919522157518572800830079260567563623350862229193217558332149760169534975511940783838628115365344024666668343239543501011447571011361991153519944999603282676745927109852963425469444086077657363802414220366918314140074287592217417556897900453369063347830298600409909550645012037935623651943899089091035185682636055449358207575061306153598069781793301701307855261704794402088482486744982086739346318411755845254589976160957160930354383728433042667256686255647645408054217749518368955667147171716005925082052027508409206909422578435626076668660628758928921665450998199338887298542286684393663116992417189642753990736085079398073830846955786858242597299879221942951425612203086882100137093841158256508299670058830928424997913178466104817772921764541926151605691106569515414824887874260627933436208338170241236387266672590659176648810701703016767382480658758017505764433342456972360045408946291145211624003952437556845791679136035621725943296234152557265525589153483540006519835676949545771871168912523940277372668306386113246781093435757035739880217164611824152850662470954001555093352475573451897048956596582027744086321112310491053213426167190228498844052748516221617119303651621201652035110638761999306171229107259616636526127723525930982919530401320838639868515506944288661550131097670577240435042800973572826353726735830334329535659151582630459468706768886971011639625100475938366671869183199858528396824992958643624858830266496897837104052677327316132012847633299192759857796440373127456248429621421743515169329447766556421081071474685523625209536519585357855784687262441244794918843762300567605255187025194406951106879792273493565998168646834449825698055291223833391445947335407642213442211799216911818372003180595988100307307626897425094542513721584344064584095391102349986090102015835022344218834091215743915930718792467689318953163986267966618807802762848130769140502089320495879667550952210158557906569204261870302008026501356167330516582676954785265390206988620124422367636447371892164185902079734825544765325628574233341335496695244724996628652917527851073822952593923817174544999893817192999545232173101406637419088874312340724501878789271217251346148730906907758295593259869641770072997106860404598587091240632740712853913657305994710490033507169864008427372046378596776767807477858497335925283009637593137480339255154342220477964928177330595445675179222352328116955918890512182414340132797759991123832391413525362548131051268601141326789230112336576014091098607556045058952778866284204464855078433644142298356559992891373586843022582108023066120625328885454298009678621991395219015442507064065467384895476375760368602084422366666333206253133762686002993500798875285726610463297287334660121736625858885615202952987801566580208028706954148470707414821601652235328483708823034314962764817160386028544565009713139319529810996006260653565314312162482010826896045149876925007393687279894899740528685228875546641586467638280063945810346479069627160532687056234437595011846576726852738290606325825298408249212572734512893854922363815714364183069873715293996642456269281552050467979362060951493028555065030763113477365131845371013787563067309609183024490333136598227465920893985557120568338434877742016391435250743203742219713812558240881096706838759871644911570055429197275152447000815597351005182614268720864936859199560217795591344522673296207082369657532192417042356660074162712930323894080967497893470692531573770532384061249837376797599843154774266025421498701182972495717541858237263063347361624102339337919979745069374573328138563430040916382701264024106079398138211475020366940071503145936633037021398798228089031361795736912089821937114161284974976372802859069074834151989532757889365761049455728975622700485472479480440438942921400899495345681891951425727072383975559279604533418977608130277335650949067855601943018676481338200699139800280496962383100217009623882721496000580081363180541847720961774670087662371257096339588458437710277944955863982338259396668558835532626419241015432336112406479145567430817859786593118279182168727804284796959743073547686032501356990955654617497593899820068173014774922060370355086647524703884678216692998311682284072984751917227714421550631356702099030167871466608088877459954381778833122856498862909110346004447068720644088846197096986415108522290396629497207879129105604239472509343118384714288208940126007379225274677976316883709667056990137155221195676307414259028032452414066495349813070924693776613290336357831260745425538601035145030690238399397244028350361218163450981574016566327280033556574390694789195030499137168420477246763073672954971359853377814629347110089433809061411416647926636648562466937909174649166923077218512720101118730599218426121741153007887359551158616587561820894018976339687538315933838921696630434073579415225296190012383570462401078491426946847317155884571018874060670349135157719581452140314869178251709463376860122281410165874376468321373231805366584667863639614666572845757121457131907489265846538790556372830614808345117475995039578680231310898775079283594403758470615089446734180768475467131396161958105432231561274887607780087051886496270423398902522108038141847772755188932544129190922336518262105067223852918529137884004045399239099296838971513177859192204378812515054231156709784882449575017223243457708547402933103126523183171833227428631861014066224559140930560773365083645140444136881611329099795765910552752776025992779672219889677125785284358059863787853619523102391192239997769872035656237179320536718949398544867367227954861415606596269725529177206946471106306010133423940478603101611703681642267585059463602384606236859619302297837026940862851978034694893608898036254968646381309104943627429118659275779205059334214179588570659256381006605157512389485184567589911376709773622714916888544873060446914832315310591961266963868387217920078692972833046935526997115313399404753131791342563029820732368319359499418341745906428596207283042768935330938946583196636875317535005914075421756798553177758901493188804267500767298552984229256624535095413067105377274886513569917189920594008457419890234068034408002094130080582612162621830220337571328075643715617359445304047472891509412091614220574674049426141552335809714166552899971664355483512999069467089406264974675851610262375846082886538268396911027522713395892441599474885450470679918069816723506617663383510885738676646860597451269171542034201477378846589253093130491002677479987263707763252960835106727045866008419295577253872645214337072647628458846211671099063749391759768387034783254074256491915163835515858556457484431019911575497017402299386570488923375944576442998643041547350450501944542685567512696866745030181297089198332842702503906726531796290025991214381874372166184518172907480649480693744939896465348440079235188548711593182908448159829463363956020077818956335783772532244919020425515130773032716535579106833902882943216730256279331593796422666645697223982115893427514673210390908490363858878967672666684805989516638463807452732536211965409391048000543301069327217766641664952333632185232034338851521670371096490315869010564280066729040775407515155234161738433722791954765432423215936691340770643892115879406406999857154002449838937665323545697403050789027282538738863766068299939291331371244724966353977579368063197440074967582713488566557800511175104928265860507933512799110749940223915352273531249606560897483601684897553428293487363411618861252128904611082679068885150964775835293420731116282701834639740053775268712218298130239217401122842281189198316789375534800922200230182142859274554368574802885686136394299323399336342593423180360613185718298758286674793618803408986631918568014933534667339802006740020135953591609839493861318512443772073914884639258792248801221555706745252872940798256114447090953038060978667755852565957371925384560401563500697017352767481704696525686860778561740997384512686730290491565337694113557009144031327110338367302538196268668268744373438703057681670387040299448781317578624440842253924020224125391744871346128966181122049340419164822148881798861607222608010222387438807851648237810431847647486255456975681944253830157037145403209154016035762460878880431070982041487676674731796403917062022959039285204436579759390096652020742917976379942443018232483297096642743475969698250506457602229852891496575298508087782944763669389915554238571418811827487711062806133809307168500330486549503014024517444985085660821759288728100703683092046425060422783451170378081860837415970632685487297847292634863713826342173812688579777899175366812446137382644015455573560543412881183417435885496651295433219571691711012803291405019552447014568582682885524380739892946312730038370557566438189344923046210274669700869218516174997495310063045545368647405873902113268726001366461878856924629570128172295177377303926192083743805181320153937504627395402246957839554827834735698439682056295042828802749656414602084402946187814684718271954074251349041647921011423215027482623085567898522552881339963640439911521855600119244926741796318014422568522632579390092463991271473912765207058515269419406608664376605590458134539140758548089873322593355444018491868871909302432204634452186796516525787138396451303089229958219173053113807154319164599952718962686027101051966450465896980874930299367806586004204576520203192111759220040675423172684291687038597261234134937605147751801978497664723647443818965971109331499396478056778535358941665620054101402095388645276703682062941002827488704373098704580865072043729987111236414688703108225711993096615435054588042629349477656159256159722470345060614620637968597554590585227397829231401470698597241330528720751158135141489842744059305945737880812695595442361682078390586146928064978496566255774074072032344107534533646338456540618939223040405041706815899790252121636516354711496994785487188603474929200405239142492787476641556801092311381771172645793362224361626423510312390019205853570218396194128372684564442340932423797513209692676509470140440422956420975301683200031917000967910293974251031830895765284476953041470477074048341063305136204181474697195942375320286200783348085717299693190641731252527766206850014004636500909795811228848207759326067769589092979884153963794816727626503385053185578037881957100343481546315861278076114008590856036646991582165917972230926697972646381836875015149668863531438102231009733622840589026532500149152721884591989981019851749547976013027033508174821217503813857830271402550355918319124759632815325410845943012371002362012501640790914864756062632393497220386715279468137295508821340918936318480573193367109243092138568977919896779434374363418380596154483480561388690387273368694542684904083321362924988261854479651980279307061503393750888343993422590371378286905633790649992549961585171861990323366908064789305923341577669032824515183019010191288517686107912999285582596094078888246198413315208047295329230458209216290217679277550921184464862748957160250342134398579566948358624536270012377055677545782216406811262569997288169180841087262909294099971845681011801743492746618523030221534964579937945409859485223225912691686343557460648351183561614490690613258838270420023076652362891268333172167557559007376767784230673132427543314617690165703298751688143158199648348018702030271886068114237572638079724856943020580359202266133442941606619931104774261334849650496276046794699745624293330710508058069604198997469246020748635337727012771942454492486951715430440586630481154415869658427114073608585017199458103165667031785407799382745238340061347820927693220740803435183962093772265278991553643901856596502787970424934819472325556127079472124127862666403563861096516765011563907700333088629481396376937932092862058357524452969789452240333762183137869295836025837680867855580007190118917371907874679908132746923784666913023294945643785968098568430149960836448991906837476810868551616791721086302618652355135152157167332358341124144011313992514633292668404942921977031932578536863362486630407691555821348035780848631151283233575356858183178375487497050693227694731124187076850804492627897523588283306512219085384279420560735899919904629257828933051469976858606451411461921794366704427372967331996693311688499764663013493852550576366851595507945317636971175619309379608796200701167191773436776631472655487834912556362248320556328550995750149277685899357373124056233297658367895827031370344103993051759651100139862194744078135640538804643884687099748008710575215734785000094412146232847408077435278837612531191712758118384921203849957154023036234122818042479103766295394607607217938335033467401330330164232850566291594586006286774245938409043485096771715166435989185562084012890023478194384620693682817158885592141316276386543088391326660782036759689305158073177872978322544955497088083253989831215495595788986163758291798987566636010990514834472448190703180644473161909654544121439978361688377430162067132243684620475411163011166099410383827674289912447323166999972008387334311172485316423329970597205469403762728318975510099681034454350166830014603440539682804687917282900878666428348188849490563086481475882613050321270153123061237945706841645787591033489461738525368661918172067002327328508413078101770279133068611793083417913404346230350634748933193942720208224753107777365620822025896453493278959975155390428001511477935857971702071416967382790953495652304352811624538437715053911372221217707969438750562268102216620307053976590069444895439948782635160828465193271343859207367041231891512249580112184808559833066719974233202203264788408873769208112775880239011094653466503314612601764429254655516492584484424948582149790193869384605256739641994484488972651805990108810203327571777940324659616468624485624233807949042724660573787026477496792330343041955795002938572867543007184776685162796694279278552777905498667299698407569814780472469088840570275304682289702153403295113808710318584578178564914215775309667761245336457979252105077233604090988568770722134818299383445238492471506542654929424695603328390710066171966491482633934300623933773956019530171459403890571163688506423202536186642126826170076411203766018496137200030883423168739074852624857315256146877161176241614943438685039282852639681981167088778860211059900973200133884035901551937542918273423820904363656115101648002140193911485331141057244397957666437632826186252965150257654870552021014056860956869370762659390728942086880339449104218630478599448206899045519314869439679372656541639874186480651990047527848293007686368186644363298804027502310093228999054973570132014529759595874828129868066749278363243306782320800365375437343885210860230792095613880819885925871015204257711584226651119713907727129340344081976728728568703611951808647935641925356115949356616463403708308531019994230916421283676654493330375050105022745314803059982901011859225439162249526913823931149724593597814539757002720572649995695309305977273742244280215488219520889570968168717847918966770210294772612116256731215283710893973151406412901478591299559402130249247889755751672940190075128621595277593768653961677801939734279529068251918767542481465265294372222853144694168296285457159639845125948959681073910418905169093277478418564566601532122987310945800244612615721577527802865279492989985990323366015384392883481331342775060263039446363861690187367716406049134902540187337735629985615695060720661222188903676210425190003387349693090702796787551203159191921582953440353766242582704703218245725947986603505675838974048315305238871175952453796667225842418479145298727473426938497132038152000288301170604660701252796127905126340475527554687093553330396819940238085354866567531152261168561942932037746012344756603535844427949157107660884015429453172254007223803135956136190586304274366787335941158468741669349503998909442646033781750313059529891627647908501357828632262139622483956192068659842270037982556785159658352708137562592272616026792630701979841085189739319614914452761410521515802193995715004848268880207380625503079544895058582529753105166662800178160234196638693726221144308326344510814109424938873141914228164286123621100299744789829553635841277045037761633437366815419631535272912900194509783564270355823079575347108914772172921918728990694623454159235651011962269407904719787155878594556655912486449335823620786690083738995558837036280892412132057755192774483912453679620648561400982034374509560186085305023858438062811681851331203221656730463114696337864053313305057029872427121497289863514214991577296553577940580257792554244112076165335707207693066797924615113128879077295046996872447142717991912626585420922739992038010185811605594253933574165590042230783293064266972773455438410059404719849229432081125657381683906650748815155844980326866807556768004959638982891647732293957884700909411069198913317570182140676106921870170945631819510862375069161065107836019629646811625737333329381822827785329513532268133036066316976476843443289915182595546496205815993556112529148209093511008094092578160946748805436500545146402349297087153620001329042538712240425944388125243237072612774370376840432486244668788682892891264397095871780893483488806676713643765832037032472090582699108428656937400093861041891720633777563238718327526261233220569972854488124989520705835646178453106510314212202839714348521302725420781656716072314804902432521439676890277158781538616185130970204640696650194174182203993548775091220001077961156659092383217672302837462365106332958457096304689874444851711411332779257000356021576939201341722819095812964210627583223995065866181831618100611092309335884367165403138576440484353965794453757057806955132500631011853356762978518594428837419923289812539583808486365246321283962540678214169511115839010581706419531337449212664211081939323806840270536604970246149065716594262784069769400266258571734969114524736513068362892709059464124695746943469148121157113122112463929082407337542176669290079770143640674379954678860543454639373327387435625951430494008289212978700520064922077793722064098292182848509273533547219789950470843487071381090054618494442831918899849044751288851770985591210946004636597071245067637827265473275512932076877179325297429365273899760383599708292421929663508925487006351854908451624709110781462933242954311994450163368369526815528837188602567242451600519504366729050137987597830406392739248224227573274294355853899777962932376274025759824582934448255014254678107261769648115220295623789256733846957247263000876925561634637075254630140987969467650451701399967509685052076438256173468677058297944147584397773991214945244925026031335750368695764399706960464091816001907263511202307149208575777248958902178099279491944377438834332782902930069710408737236092840058638875694453467841914054402950168882852073070474453834599005202836399620098055386310517904293863914438031256286354872951765904450217982595216470857444477110433344011206894510039013599229808168656716659748416035757047441509482492151544087155035523024553098628000498157572346895722267431026608145353269026775813419975414073456688707357994304291756629544591045368349231367373221043923107137385330989595025999704634444037467393592443985220600440735890588645864160858563437895828171097565849677462481857562140386556510666351765293303573243166032983588459937517907197638184793937169061986081949284195732514506118794346078068630750404944538578033230763706831363079183881281895497817418970520990170228872495107319719978643704934139165859419195413535852601100290619112893185464491872819060051505629110300464106360753837849053648036674295808188661415453128811451800399166216534664951771315250504189076457652202195527879224664942233453255894676868893661345346308102031831741004994706915181814009973113745462299467820412210715900786659400340265850468409894374663665434691844242544380845281054275809959555787446155716065797744784623291795643290026470723810076945873343079212194937613360208164369301869478356019369684190384171364398061885983297870071019584760297403358306256732914690679462400659709480793699268622600685473427438030696755402203702000789753696399030444442952443247799266711561962798076149724271910585358338439658253477448336661084870040511628237567361541400255148150936906651303182470121209016407355497631901180521255317612049183850190877560785088208821382368143768752779938752201924440513432155180826364782938576976751204443580573333794852128369466037197501483984640878977549355234187207976872736184945961290467163117267125300092003926735068431376724018213638230477022513963364649061210905012807570391020361238787130008282464940763386906622845060284877306365179821630664773924871446502463015095239780166323321172840143168169096223564016397998649024936311622972538599026874547618216291187180225469587309733385194411654516467955442225206765760081481697969753660116733388720888965089119072170309619698559912970389952114704940895977630717327918995421590547534509097149868997221094768938861493408643423551956567705487794965965733575179165415339517510529539234015002341937053661029442523398254331864754852325585916832915084861453177082632515220165349266867022861960137958467074433100217284698779116753622107089821464927637082540252231293674616037756445508951076339568326544531844854387819858355894277486957363357635243539730239225671738310968003329096948203420682850210094806306124775138158881890715398708932379243210709937531345016419978836702213259865695166611803799727133193097175943086539791778708584110105127221961328884619464278001847808628610618422321560509367440276442399771768203958163396576993045782302738388329710226535333685081078571287355662167144958372256448679442686741338442105123688128272736989131536472366704375520962448208162961730229945037017222534259768020521239956921753024431684097460060102417393179578706807797656032583796900793811327236145243446654517943482158310360990009609554534701987369262508558926506974805880710849556546325855961444288290018037054557441680459870934529390855072391717312892880932057874814074443170238009047767425923091697739815400255463186427539700552297742194476863748104827239249024809173516172475235426929253213905825475824368952371073937360943268931798005826175619077964682585487159922629390030742293234399720418387588831459013523907841410766050109189838306922097656495951662686472524418552211654156192905643232092929198585418436108670186101648237913301874855704873506815180637337634009090134398648002222781056016913439865687518219345902582158385871003397393344448280321872175126859156300322683905662275893899387436637396884483844717863019244959219414538510855624612306306741131406248400857200296914138119222016299107885327044727610689417584334469196585235483882213030455834960582034410636836024718576503071949771969430577425572161153759040991201080619225559707195233229818517725826301756047306318565333921377599461880288625759617459487993293351963798257353272774856482828141513528542345123405061173371008488442195283145599631870637414755892231827892861640033644901987159167793402699228836921306934053189334213652021496365453823294689188494036556491942691427537184520523429254591953636790968843257078594390170798558879877636735205529393568728021930934709809766366259425250290903540567418835271752388259165946272120234958180115819496669092342042458549759352835055823079745452477193046707264036737651838727619426256549964137003687933014902285937636377507845422973832953113649107957197461012098282712166461578021782480585695669380212676750686562714183828091734723348842023370511029444426610287327701375701135854309461992006054366879123256206023600863012648622740517212544385778653951619236411316743835220439594540341640371057176107438532602243605338446680986908179848979099557887021949302893594973366391196086193809133343110949155599553186442905196510256729845756700038031332233250225042207789439383446843881465925102378415780673090630243090016932977340861781357583132511404491713729686570701154918091590474854167349144057393650077408287580824941874145300385475822320236607552131521438358960348315671289767963741840262548103241979466140696267474429189938572103292031397634264558723040270465562069848732787465315092665679232708838141206327698160568328471000317593617722924096263624120091146854086724634792790368238601883656599911728619967278638311729329558830661479251165632212019943187888161532172805100834163072829833606755564998188830209843093931923359889982929375023956203732127762449987666832055456717511023370400857045284438664185608378700479620907093751137404840576100067279757975304611821710380689579793598471674985407796484327579553392663133483391332262377191852686263091769111549327386798097050067511581335560379970659458782699671218693169253936317222843502815788292540010370947114585145502694918065294645254233821648812267592481263855176862456970777321194821007810585909282915498112939907488382698465554016349539792658001735429898507480667107182229933647356532242100758627978041206702135853493268450796576827057538283180241382656155350004054366910973890974887096242476621540843868319126365080421455864261119337103297162389078244958423378482324893731777791306953816707456299689748745315001667631714772578120498179781704696078936066726771377865067520061236128339819989275002654448297532231824797410501353201618659800772253002347594605832836381536731107192789504480307868771860588531364666640610717108162037508381329942471900964915379393824665280195460350653201893472830678504442704910909872382171896997178079322882637250431568434734744583695392760390059218150643466961118198201910258610439720277470317938766934754860226888478598463381226828250592073864362522364496456941186311292704266348739374536032547328250634843765023354649123746245938798542601436736360853107676453639120038778744529512096195638131114553345783093788944702856810704991223890440647218643379520790492808810041708916752681138056433893736228907900999191553250696198534682210618667247005259705600533207874350116852665973820440250557668411774305756432936329814879663444824009592323169157396459667851582284283906655996298742461629277053066703264547648805565791482763781265369726272336368514446070951981130270555627830389915291800838343297002014765108661454013805861172437416001628983665857403635144747313379520805431892988193698050969847547792340115519381143247356085999689529629279093635273292589711023265113860211375676104403958529672306793331986022905413240386171393018909893332715507391356778458465347250568887928403381631434485779830567273427528017653842634757831467902740770152746639804024628835818484012104642560065762920344247661559870575073021819108509661377894950025966651803184723146998890953202037954996433251689942305835260247754792237672104360394768804502457643909364401826602264511319020544658500314486544261688029430588763549195873969499698580775578889215545242384571202721280260432764097195236170241663961350273186185607960541409316303089442409539734640073301890896104633186930952609568168012064097778807775821776024306700847306412319698177996851417993714221585021963740384419494323208970015538960681662992087773378204901850886617604153779232153756914090738153088587990547589793480974635872643796201540106284779606961941796084859295242934870746413095278634768969333791133338323490846277565736317721743061219706722147119473498760058255774957601829120288574846455226605890768004098387312962185225002860919675099338545676794161691858405335475110943737479454475451091342330734363914585648275232241768163166832191629897821471035369000725046616506015691284064860827444400539915210103849705839450706145711907876836342444126110720180759561771978593229399703409679806715544667229085973288060229234115018166252006568482786921647034633396651783748995673811848910017952300003406390512481658726107210838317305724709408994053860210144657475951809840624486754060365331249972213639666725597918616397053084254191752701348185401363132771983584622665128968694758994225382506635445554567197575509948162298185160686377949350084336512327381418166523010087484362087714579483323830499746962784564261672415166850475484336120135755229220447577592969987658765364330030727404747296269324323494288498863196449607868055527547712056710629969979879570261256282548051255960002225464858313961394790373441686126265093446295495819373687354441888460645509639706565709499982951931013207608095083714801677645740113899263922552396372318541906948326306264640813867716789779549465573645186431385839810578806825738886815085225887390216803873205329950621217653053119067674792730744596983586869296382776216438539011903585293366675016655909241916230975280132165077476937030721494994875799739906854398767807753553265645025794603305161507057811708207161868184303334897878211612031373853862072933257941537766528506083870425363602897297349527653704333888171266213523495196319857967058293921087853445925910467908036641757437792711504749788955952211120785502585920208422858207783927781789764814767323641350498192062477163847403745940312569538103741076119569664737886355528054483134073739664343632306863941643371361033193741400668761406125412769125513629203985096589489409796435078697986924722088303490148548883329714600636229985692598489443763291205423638150376594916636793940182041473613448806966530487887557346397337415412311485481766143288354069293273623555112447614078277656528531327846017220304909317078631886776614717416097711713083173085392445562261021089885795018491261551644614891542721355942480260186636304488531467078330061099597742422450519137265448043489531881053387485655788626808416610565396268523712398232269536383145255486013467053043597984959727552019907516137358716940469049861479288576817022147977443384699915186407282906441180784326972097294513329144459160342032392868591867957391531359843171122517344234620248209093696783103439013360778710691211886858073740555648415227666586564820227077984049758200831008665196016233181279096861335386748469009535321192375739565148206624742914002361985758019673012099310568547400538581896513242773609200188982487054133432030378222170851922776892641895368427493839000038251835240491643392322240964764920587408308545787751714775290341881169977996440499024762934172294667697653998068798034926726982603445058848084352097960032318162186093326522303479035074213111061613963266899530778292917641316538240065431171930866708084818634093730893514826397065923759095185662280787107093229154594235874572742430314412110582103180655673538942420387198302094788645752894485950530582089468661079244283882625731437821185449417701723497803947357397158516786146901145038657718313205555275154013691188111251964396929492409502137519733365923200955088825582294671433689452865787784538978652075301546159565774070938204581533219836181712945727747053939065391294505331859089701160238688922839534867867285135438621252559700118003141887551558513518289288654120552902345326121609053003410006264782231017800976355561128024557490779251384539896872211487994275378660906556820128465527479790309664884190845061078745624326100862489948483675263188138408022649080843227180490263874622359813132125665271519679582616372850311318339166457207648042309033013389225345040014383142615662839829555603710538616048666386764516591783645358016707171196136393352747629798956119556122313699076451574145933567753013752720259095490556320897735427532178248237202324132664481557291164694840464493949979439052346968084970265627200092554666058126842374050581806873360238686482502046200565000768875010302556731065576635753097503318369019392560839131722234191552254988909233071663637999247535707315248094596917328847666641737992511670645851382413388069073557487509246782916483672682979351060205372348741059988755162984690362321668863021233816530358538233336162928926199482654820310927390224551041125232298386684279869905068604353982594197093357436353113870231233252029970204803796954761237184741178620238726868610228568772765866184608611435325098740420148008964085970455900027682386605855301400438784447863806289844270337211658999161028056310336992433746213842831932446251805502612922469569462017331283298246438408100770756155542337362659342068292409231449870501046747537053289933555789458880937743672875104047126838101281854726183426827030074866246876510333526652591627936584458048238518298315762231813737594465647009715221340296334389246642316717172591740469024090171340014484441637322834761644878329559407841522147842359675016627316627478312706708596072920303772432958767785958382278864002429747379935968601318898045517966907604644048535579702289106642723884260364902561496723480797587733476023651892745318534481125358951723829120817460733439779591989119762470350967835122309645793127878816752637484361922335563007416521259679276111921922223579225149418213819691668538891800609703534276117743988693229241998963022781883006321333234068974701508136635158461672286405978163623786648205163416218550875729399333005766551910403789645741997001352103393869910082962791501105129855632856028704650156090274948166726018154476396694811183439937194462126402811166645582314740982198450430716358773797677143423445914649536883497056265378098905168279966083365289598157767282885206239186639862430411721400174654608212047766659466004863828661358922129159030093105607041340854235910340495804745710139998425432465149270472073040674849480035836918283029503038993697640292772029489711051030988202425401579609066607379858473410180652111488251224740670943199248515930223131781276491533585238121921200770892464538671893272720998671312959286867502462913661935674459384421307516467208486489183518026742291440884019548132453695763587928030289367678221191362059755782800152819717570630331793182958954360380965536362380177704405062877980392681587589463118646469975483660892097342726524787946900917855407548672563034053269099847809490495424859291382650586370196127601265412256598078706898354396729947859953972016956536042009881740976435404622885556151658394873759992503680140711162297432994226483544896990965841205220042686655340581351083329508636064492269061705293627382818833708811585360594470881728676215429765312613891302328787366755624524024756848230701398124455662833289014691410476163437619485069935882283748823807441897999709516164683748039244900355888740655016657971926725228963083793909620381375277173187618579846477500132306140149786269767738039577925552580927318287649498860928897095247050653546404724793741342808721348027480928826766230679532675601253596793038806249627834753147308457125144491344763029434261528199630136168809064134863834047300299192718215830836318524591579811878808092468900634567241370875766824955750762644582843271658424495704797776053512969504138747746366554336076333610487513648410357402813467421942651922063573623117513612400876657713451831414559891743570834503046519113464242172174092641334649219305446078655321710997065513444847396030115391758532577605852840803262623493634149102217253313059905493480423263416175057758358613621102262534766577626814725416145129759512291147559007685733932471094303122795617042002510052828128311984341850222965256606013695972285655586249632106542047231959602955675517444173802190896310594112303996109564441841225527822835293341746564103703171733528068051061638918166981503676201361938132790339350996967716334769995545838646233234981468617512491010275477550898372958053991078756336632551202990425049801490215518505666394653042842930269773405790080585771120451067716363106181239870887805265307966454541280486374340488397840362875936181859162321784839019656146285350235829538676375188020250415917909783340822478196756526358417707364932356074675123720747115780385263226666134621696926600007058761305790708055573500500585269504014088464586647879399979811848797625957628880946693401451313599934346325177690605652243691860767560961781897944903549276237717955832427290013386147404171158894050349601782610692461440382966548473105472894034800223113409495671753761365954482220240837035937482912796471295287005445314647510448334529611978819959516166972515118082770937723365485861899729115710266571589198417541290073090681386621548101739379712711039164190887936443670860593651583585405869569454385287938932912159514327561840112570626851846656831067980265175773015563326322875882475315246247426384984103318304932436042444777060765016511850484351232008690577198813188532124866636056276573076241360720686280042349589446235191762797306915281645661419474368739115778507559672572909644567684752795829478541650903912754335871309666687811809790757554568855659191811223274159735192597264400817749047952884553552818218340087764161247964551187833564533826764246112690256197490841049365850440532723795415299448415574692698464432649566666543796818133459563154453608734384381861887192534196710757194058850382589260826767370228688369955182585477540455205709342173807102276997092468762466978636987504612262104952479154307411887339605924776590854752606103897710700960244774005947415095377598262058264464088320608511627266910769777897450014897917504087787595388663632704191455907866819843302798311351919249344663569172784631162257324967071666098093770011251241404886429386252122439396175227349280811642173377596241797847787988710990603103913932318729462662354706705151162581085084202149079787238648965777717744272578571841616589397505312191805135335426029544733049476340024298336548796226556404035516249203367086074486174275610116194085753921093517166138966012473796843458377284906169648196043035060895524242797838622592090213126255155513956359828458757194270235275308526313371172990840378012470158899173493203891973991902530062231235615799868663006164977381956880017824520421026388394140939608844431976139672772511962071586046033090482677964679206856885631356991081817338784454068188855289730104911430772814922226918251739469816647792523180997929407873883453756296329823328926198070701415114899950662192542594254179587195740227807949589259725980783355241877099246010231618999573614368948797083052501845209409124880816901780522611166129556595428842487020064692306708499710439126904221135717519502537744109387737406389383789588239899096252055883384896822943611671938663675108701603956440124195119810048647879121037589323440925574349609037938659932504470490903940126328750632933608142912650807736361027716183063783267928739020119297425087164640465287366190220512276708874557450238641466282816448842831219336035573892354162179389281366830340079905801042729413361143314361530718355884842917725814537878355698485854993416032833580031301950506822172778002866255230805419702591565649837933864718009110297832712751792495086070130197006457453371716189879706404313455469145428959194222011216430191432455399145819682512415630239328547284076537314755346545953183477209759391771228089109468508721383693628953681258974601093744085515552616054713185664386258089553104889399051083579255801477365027382940074160272741887936296482515545645786659084003332192725027935339514622566875285597748071537455279410008735807604870094072475484635174118144838451242253277270746762095540669707306603626573248910896843654156936366513790768194014276778456761394949915754086302339004752178632032858503403415680659890933650603010880964778065568368930946725726828882212470909950820150108556632949513966330726831116909896408319839813071301361758756698629179293490087536036153087434808604474097188147937317445449966670536924511436560445564913672686764250767426723307031266298798678783210218939033494073901253214347478892904204629166770335867744271267668822233545614646830682883396808088594750352375283849108306957723920066359808326916193136922386545389116371983936773613245357815495322220878048703030329530056132801703826644159928014673066691739669288861854760333736530362564579610530218223970474800451760638284827679498766650064058504613217694087437741227401812398860754489640101465661408829096663891027773891130939736035291090591695597676210733780279628155665532047774376629526607960974338471344586917541360454032392198141884476287911049342140610198534042760089814681264818602792772774693599861488030085897382936057832909126891121310106522244782379880162594558004312395989590613896357575573167523285221125077810847861240957546678410564482631918232523952247982895838563629139771370126940999183845917991969637621881653345504200617601454474200329520510045836885537190508561672845518143159428636030940305329245523628566579544361957622033252126700238574615978907883194827824592480166455946560716186948166123327091102892323391629482310996949218673686352810252279134301025788399207857081217227154724979024917898513725189915910666123646926066868649871408882754919587872313380287388400032756512185679806305553576554191849334860199216940989126316276810596308740401532383538341244914597781500765653355032173324512142750339723511118939658170789640066864984346855363329817391017799912101802228287604285454197062396873813277679631824081624579040344475369715801712407668654329110958559814514672178007818932617363797262904433838308662467227666654099659942972958871573210737052364020826864856218600967321581721781128221570553695604265822862863715095407598387287158853454826290227346642192509208457534506730456617242869449856413179168125705603414314748308633474212775850033986588627823670314247097251268833303360533135287353643032704044033954768140452067270054931396328425575456994018190378686274446078195624801463517194980089341239112653919187896377144487844683857736857321894380128675091698569199903536213591931041914416330842819151321014529007397226708149078882376933979844014291672459983683234444275997071024075463035704551022110263749834932930711909488307789729288879646421662114026144110430988580252951902344239031159553106034130915206897092224049000685987734632432352007172310130947778853110456882429488887517389945154026966701992860925265210419832037213350574904910362803285760915670613000676605456348731297203121304331773706326411796931137125201435409537086528996572320918392211708708038169131855448288070558629229523852386341579031357647179547405106716378060836764413402596298102172429649449573351939634546097320148378372037956617611604878761499119071567582806995976131535016962210942510841740785312006384410352868897599156494048246719171081862018943183259741455682629812165893966781519331018611377321710086293110242561440842144372942041065595782306218534384967844785011066857564986601933219098373449203738071092536755941762410421365589443412939224923528777436711239862149449803895118912505225778468589799210932450992644415872687520757765825753933159254033197210572431930814031774506615564180026599656935578786011430383888319252504597788077542321797403654982428698403032062055504478971149121019263739332276742718260678596587254555003493337007440205145086222841240401423851388331076073610521633507658832001490704933659362877762464254819140163832763793759730800558960865082767699420817789276884973294593643244051953398923341003803614569315005783894049469058766984471033031834624457168957859349223718214846547574977998720190617241786448621171985436403192387252357796839842680004455654781058563249466789925097053857189542009882745404580481594634167308329534563177219183124635912616364836646160362555360002667324849652595119200381203969021019300248477715739070189772214117437998466598042584115056908616358724726291424605671392381418900755703775429543208423982280244358092203186989012050134510355189268007034436527171483319951953077156444788691754751725477580128675345435762078544479197121830476138248985253054796027043236833233421991388266477308406508564240173453472878813182181546525354870600258225422732002610466238410458597647522900205971259903465188667375611290889842482729581481002441146980590736186180702339611602565491912532432421091488733195701267612987226023747809590980665661052963341927761998707070694189558154138138937398642741098238783371659299368508987549390041739484606691543568425962718822572568628399839583590539999229956149467298869364055379813937904895301458073267773950970006267232813386207556087936073647605569923299323213573723803228077298516525534228196925272425329357449743218975743668796798828468502994082995091401913085424890504110468197662402442409193150549705931546541648627578321476537180400955235495796788627590929419165536227955951123268530045009074014537818635699170469163407700009951180985343602934219409393146999704381702542544476967507706952684505827617187243477084940915123512752615967142120560787036685354618900260074795732069145745573551973765256865165604271018434791743968776287188827107217708300297400230121383233360847795391532297496901117424614271811469423785206696614542501637180772015598406472001933857852151277257235307878765014738705411393441017026868336620266529934023824760010132010175577927545543992335118846752188975834805073410180510386809305545360276221003917564181290881002874755315923435496809841415991561969130340766202268354418361411000799566687113538546955566290181090127149381149718941333955956194869119117422601493057185084156839346754141249915703821953096959865025750914720798346250808327432889346444542999850229652688802512662102127762678249693726957281302327375428053307854200050527562718592278173566304848848945477907343201156412652631024044832570016170512121966384344600160028692100278352559746609477369110248339883673301203837859409208913059744029773541779854951166895616788410769459687645864636910555259089071173374560583876506514736364853847672890182555467397140461029008381410160470323191911684403308156576508131280544834133668460795903245583382143210060069230284926748463544488771969461159639876355593821766704504656760796905985677050743000040921946486883428656711168187942002075365232111135954207729483976829955398175889939085580468792441030911746790101144133179498089956453331812318022811107829444358247633740188090836142481608548517153596707849240872428115902270880666398753901162857498558561569595186512444955155159084963550885455883816128008276352110388652744579110429936062370286905720790451542119752657500694330299948908865132155500239428251622635193421904262403991532445877902399017614783015632614345142005907394499029493683550802288262742082968599240387808296768637999108193877554972429509153441880418059810841165480795094081416901922080329016703858248363526763351330090846807586634502152973796407351797362089563675820146029271168832482873124498400115953910509787118910395821205779318119496860891982232080549042070858314493898358451444594163257200797279675272468664431613017049655690464064069659667088285458061775511677913577569517843917396271589177340506571301312443677295642853976460203738007444013701988783986736965632374514795756563821928221131639326363588227907294654545099370021754923205703389325882432711173553323457305768599179601173526079178850129621119210759657674897927581669799284502058247680070170873271590639422302476476751436206434313272151791918106446296486318603717944066365123571370847161794259679859758893592636877452475365732902734141967707573776118972350866188141543776964397178708530912893000899146070216208617086095160072747384539536558547329059038060662878066110037110331482190751744857141931823665959095160654900787089891276867896594699478913927376118482249079855561223623042303857468154317091596856894234190861029315896345232064858074752176988585346698796164780311849959914131595571210872108946423429900239472950081221827383426700061834861181546147054593901179983619147064980036108285052580855906261011337481388365166441206835398454824327302621627230924703597463522970479215008914841713278336110303763514453453696447665953907615680018095099783785614240158435875398934257725257286562069524164692123764689634263652433761743136048765975838569700262232676039318319836073642971811571651668275786749962775988058268148870820769480302439187056307568262016711103590132657475228937557124844340357198521964739381829923675894649078089647551168989471505269659680289774683322239838844888442179610826255188264617932154620786888565018721858127754834887533701456847826178596997643211875997355463308373287027445691049369576290911437454203773398264442646041226211042282825013343209708295934458848878260134398118152214050706251923469961204064906223597474369515297166087026703625440859264443015204930598292166677295040005734820276666252523158719164836541403353464997192701092543612178636214212136492636308638902283752702001269078281183447042156007719755182851873168228733207033988012880303063356482043287776373068866884322395707582020574242937709162479963449252092822064542048687433189553248052563397291101360190521068310100594641240661905062107877411789255799409630002302436003917406004246260061779178174541746334695977523294915953834200414114407626920245328773541825118816002701464625495216939985392109731948734627469891901907473786474845834673251994116449038688157687235734944619731377213968193786549323595514175981602247361481845929177455473713774267846594443671834663230612649124891224702908917895369367253720292121029555196488162064790567994768240187264216645536784735207860060649193751226296358042289799059202860918157063723321810600876826404462830081880294270979921269281098206302527357359048092868025214365858032331346045331424726783874054520223062624881369688299928567970919725755557223211545531516755721900931352332853186545528993872295614773543949960149613479565603628298665240333006598325408308041474530657079909840674480664403274244813667790199743271138781800049032580419443261374761546585858207933619686169658033861882571454349424019766334325545385738435773957274376232090773555074589984009158534621378649057834821060486763095244621627372075172264373307398697446713834402843555649828490688732605754665843441446470753066458105741681772645328824823404475320413461957333651571792598218914733413665186245977920205230377581454162149154351170434118881402920640775089170493030841383628491046454458972361498553669026727166945559214781300975989916800132663999962591284546409438297005031276121258877482853206356713194990422614715687165631208458242610915989736432288028353437478497364557666974913070332267716099977177974899291367638287862674782028232304520575322429239404282699680149725123347146078871963582271342838588139465770282821841212405441737763907953893103151917469030938951585701873253773810238830922369587093591417331445484282070840183091469102775627232451757595391751618569886720558861014085113308620406343732998600718414941026289854858494944538176388621667926163948876926279281201866874451938387509261634155612938998589762097679069736315476162796159625469841051948649529307895763427070250196997030141929629530631152206752586688670693284248508245712033227751065159946316921429274071106059961713063964557258393880200871554319819916378835937735198856842502634031535453876431408463879144676468523477358488306901286347308596100679536726072819260886152171163308900093371478492660192827926788436323223731194018895507023946592784269452206529915498382473919100485854366939598801307591068756972154834344909278905993387712740606328868216427760713774890757156855006930692990328511094101531618815355650166044650794414258067650493737291361435308749168409298881071814691714382434982211720128381105175927493495206229972212153804193104697614263439025923208009841750981915348493271963081135271927308979270349895592319419867666074834760892827950261016466186968473114354198786848971428995094099134207289903430176364219612364902463740681138957118814459813923747644131319248265259720576305292179050151993969308223101723412235478903281092303265247168355466165691743124300357416371825372693835151492899977832807563551461875660311110607831172261330598606075879041747126211183650257949685527766781388315735704787912853885131040071644807804185355851664953309777480171320307476256253508618173442053509076300201545873615031949426058876485762583655729091560058166403331401129231442636518653636929170319305878908336864259597171576865386452470761507942743651595014167442193573931472997886088011671862159782644970291787398299641433091361363013297069836430840243830867398840479284603883772286024059498473667568327425064042760039871369668825820800732094717437545959169181901072623399419519770533302030000810629932278517389898403356994544868290167414920859254046431805532175727177894478600102504112339544547577292752013847372757690191009474615341087828835626384872121308852117587431746131037067585575843482031838886062608333171362440518755893288555256719710405735106301344547467384814462013131591502146507406610333333860352270677561000169399851383126379620857781438907668089921116403242147549255675164851843372848577372775995502162031281806286951658108879041292907346404145357273340644700191922409945373019233330161071333343317458553756837759574271821375990265361115768698128431042995626988837061063225345395513634028381360455358657427830498976515421101542828371765065309047198357660489857587130930719743475971602218501233967574852468677438156895347335951564401345951298408933646603034238034849817566650865712813228433468828939239166653677984364100196388767987484657328279599209604602481847103027522121457634619741637945420407964335195022983795455958356210120630596650205038792238149784948374391621701005665052434110661023945969517466252203541691254711075334869685827423643093266786579883119102548398835346694263873434961024925127127843172274150353059799568470532393582478249817473010598553058287753615656923344206037611061603289715424259895781606142491033378676148539722209041931781774490342715502333761855576805265516855380063097904812292335398360981550239932650610350320626030754092133629629540961554036426786261562148570162439595947595516216563033396385082863157286283456295110078437813167190204496762138284375553891900252103272233191720553150449711325465076430759346520268325107531908370178456995890507447350530842655723214452268886929663947157127999960813611958154171050983032522349975598334279075574198515179549658250073298102714860708557023508032279455869186080354301916444930684539507931964113910350700554269529282997487689329448996498718231925104204675517925977840889288534659388782151371953640455133051314283560135881240786319933915689683586987186305147193990694367112144085351694134775524198724299391039141927006979388472878533879682361181628629731797802057235420088539443320227615281008904283210723513712998645438427055683113471896167960598491117496965144040775152061928039566320551902025655285352378781552696075378608012433786064811394833157912127799582758892758091097902760242808130870812444607569895017522980752997382684498567799402073747616674468507373785163861319778364295604246434569865022809114867227540668009808751083980231758942387178378029062965888790395098412877178923903141181208848102867436148375176416606388843018422213992522741818109006927475041223685897716589256508585579439370225492900457201717355456471013659649084878005128701174001901597267942256113085767769488606123717993156821985188928949198094892084143249033278639082976047444097640427521063805822299448303479116948781991604196652882817100692651075119533822375299658148537271607013239278867083111825342088628951552444416240677235601217138386226049132583915387922315647953301769922780860208940798162293048670400654406313203470633106960540676458423443324727215420220405779016694354076088154329908318155137472160287984549699596145319436438105317294288445438820859057835528585610180416411103699646180396996941529774985808014419982563210575718308445041943098310202532304608525266355363605818425263468915444793972342479153473883704600183160632058466342270037749127867115292064285346719696008073105979115319129926411678292242889526501664015316656506185338475215383049375304379530022829504130125315270266498110523276746627210592851710517499110511529811046929639342764911551121957890702778296094767893957675534297297955243757310515584131758628784443253020932688935977433863167326251433269667039656611678811864066848687921759964405360268100594543944784675059278343201951154686579968099797241901861402792695093000625202710123916671507031283523618824804638487912382197800172112978878075211728910840363990644026445746932263887797517145569770572186161228773360557919901021871375899656279905136154906523574303591207549341554265129667518766158586225029718025712466737188117678898377955441867300112660664290192578667033015840410381507868227930251135327165330471762574614584711767856744493527359603860441566204996496370370887404422353081824030259557142145042635199978500675142986581558599309174679601797212023656036913587266178716829764634625373668101537591418187755754520617155524917580144248720983033485715871882069746761024400387451179872269734374245561910228585746286233713709185337540671521308133196093955855383969831699520601118800127209477018376733920003242538830232586569181410974370187197198735420056175051148845133133690191371764497780241750533152405205938529597613761023860632712741531033197978545891049320850703785653260914750748324077711848743700741684947001022413701457326671804676150766383013619127524355578063678365771586502019795604211086542703169637718379487066055939798091992759951880792136872750148263631298972913891710578844777208728392190958502840913973484795988044595379465681217065342597575426993549012761329614942436154988128964679020395458575181484318924485859035160170164614962036787848206078898168462940471619335340955235836139631908041352586801730832730544817942982386828627681824777327556188524384779184369281274393613621905911125215247098844298383961064365261167226006885725411502047024431958555398010602556791757607083461908498245375622014384664270989429913738033583280552965719079734384517494068670933158242797576088849712378091326548547464488818104882612637390808848353292482223273300427335318402758199173323629888712192630754765447589080996919008661642751821567090988915472529248670843347204286698012412044718716793928994852283369649514100426283130601973726022266374617154509471826871041709132605250578618924027421699796030872956599595969185595484481080660590870683397481579182882188251987062816493680355744723475006677000778591925332564855771531188242646770261509640109771005094010949399106678874691898930406168282290049408399511912067654990085586776809868398573043446548127186826307173509268888276163962132361370311837728472406429432915795430917049335946528695362533129796858606802605751977129542482426080333133824159514274540965588501518804454935123301349157393515577140946978740582370339653969093013974702742264641290757294843210838136935966289930765641300919107011056896715426074683501241226975274271763836472017138881864844877005097690932420720487581532059248027024262079002431254399251251503159364879724714222234460931628142863475059138104422389598978387437706773967429181851514019332659612731845130919536791090063090498658233812481121393955665670629942578395263805903761834543917482244553939745954223787178134283486815023696474664419463818758518186676569725720155497163210406815665016324186833457118918689299729796669102216921309643577863742297929775683234786255830114367395430458366469093693591146623234786516250578685777508263406612502314771579808949303153516748385342669354603422750160458012529854749345064467632529195772555641458190084648469967714618883402202326881371367082886123423792027611419824520566082420788853501890737091521188443834569301966550495559543888114078877952651965618793921115285573751298901559601290453513339695816159774019236810801447216179280138586142566500063923827439393837001679155637715707430829988799161893859267140746756946897395000829072780074851639733017916749431688052439468025305339208459086666084227906280120784291276107274356343521026398366457560777234117486917337400543009147199481900705069883562990631432803804352809486976783802976510905786342222035147022674497529352161514109943076316392259122693239779864240414490859665688356397995808753862259046952538439689970847227730136277953311826868705770636479165605907778936428809826390884353227293206344468649874451219276386100704046695514302325471376827587774434131806886609944903017866539145523065810785816930923175448818989793664582065476022379477587596705521045846651582202148931272753683473945737205256797540938628394149948715743429220828670939053137388608098178159805799930599134055789155136708953992356995937731574121049324386759803436440480974278576322728643084106107604652018818259833984255147008867971630916102891509753585076690857742566553417984326436573291123425819010184979008356106625773883233376631491410656799079831093760402189605701161672859648016263643880488360865832397287185958009241180360208648262798026685918293295724113520689333639301611473062348327245225092576263438949356370646034224125584440604905750190234730969512541728842557065809147077332840539072825242102451002362398574779367321213632641326271847272930770087273748267166243159143525256431813190115221406895394288932326289328738881348640803456096782417375028294348317912163155085719958642613728990461263149177396892432411051595774565873779455243145920418406921083759669530126318860818374122343076839843971336321749951007907057110355271742313336726543512638981396895438254197111703152704072401244607502814776906798616192040145427924126000055582019858837127659383663204354849411207955434144729595532318492625624582564381501429666710431477095477922822939785189174199092808169079656417732431205579767078931984627355753839452542211931015803621546414575807635394091821666661759597533564355185019597022080544491553418937298615628814545827548478664329182016477287223178751791661629994167268089861786254752766679347845413015537500638568784068202573830089635469439261289058773813971202321729742221860197317197691106854992271780307509659655674778379638760479089408637633638252183412072847900135859815896211300327434668041303581212656137988596924986800337262787858661052130664176828056917536840848380630923464740665255714020645743768931929846545277598404166910430823144513413056153814434958430838690778730744320374528718867035398899589274411038606365849154825995712356389632116121786690537882930102792163284364990168928310553065641793097628401051186886201293824637694716119035178784181363964929675584449976605685686524630272134866501202655752071813234418403444292379858133917635440502641945661741675655967183020691587534827170318978259995540041959434112819312773583346253733016754937032452981041224724160896490269114330301487406376942712712177229767013851004416090630663492438076151594864061209094940197569100557357667186023781711260659565989487863856585782489686265549040677305886320633661702224013250618754344948126716671676831423616287465658468220567629436098670080622862400227947579621139297744900894833370553712971502427995502485519006010697257478397999869895820213140546678800562743276042025490320346955881347448098432179248489685030268428043254593018151205666371653004249116740980778462916838199090050068543432490279790194577518860132705962598813001224033197429882421659182160954080298921127193238321664584012478093499112574819185963985471351921087045877598353992736846656878810924662725290421016463961167794371714419302525756307192523416548007852876034760103053406872015764263739413666832632482668897736222625336462077292278271004207725514440253515816164548342910473616051179820201694976984734469592545198096888811539054964224770271235618501287435968304752837185588668618871066506333912380435449428732824266365083595564823437747452347582545394996071491716386483537820238625157912147730525944711189589982376075442271527752103632739802822945614454119370836768718291010372481738001418860477785831323117540770757330644591410665189788794371397031562156731138176705701273111847521125235154355437892388245556169888130545932860984553688818019819882784267620230930619031662679583378641794185908764175144226969736281008528832844357935384082886020922026157701031072920083851606005108879665207029619134594319755807502179902929378778302839851263164081281717225040678143499866185554905362697009373864687826367453286801997907984908724912399765164279282939120291451397263743715933760655928772074468545409713645049057714497995233897676296690150978148317843407094057341639856060787704312082377160252348912667365257099110837839658036470254527590153480896888744432378397038054172685398845147662205491730593092734192048897734612426569408850537744053979629587144853683330405536764900209286632824480555523610602756035473403024169295278264641067404654317983529346280267398132244800703958776675029402332765668149588830491182597330859952735063965727869540739982650290117023011833643265399626267758595814303772436009310750984154967818852042710173698877219246811936603322067442004998138999298173095762445167578747716887719649531280547647701693120212515763581880953727092520399675489195272397912068406524759113235087131369966298743875631731840473821270111169336010861305582704956985184349545125375099613833981486970267536116125693217761272926526891717210651089904074215478428140141315426114238662647502344021669130574178758071151031016725068351021651360578987386881892575402306396395803136837313993688850694228552115783793680547578636822051953851350835954826293349471441164443665878079755043803213397411842563594845911176110472573385213296409286938894183326706398728690268685188147702624003636045221578078807680572885651473425384472088562941067517212101967936487128412336840233747837341241691407737832329478845869415310680400574399201740876428735651739488908159600210242274077871154179638662851679610203637862766438195720484626115963217715846851930364162769066806071656814720750074200455968382695210354522259214073563875736103301487692535612795174576609465247355788320404676807291420446076774714861520416982280083944659537182768634136549741814474120692198268346564500550484587690459219655870029570267107722269634351701883619871165968139915080589198582966934793390876196875285249084326847129594436704054184804590034051954693048271272953165934205768001617691687911485995726435832761158771730027234205577727820330952909094346836152936239925484561718129306203952029830211313403310577818938133345102943730037873323374152581534046093523538252861382867407572772715433158979668125539148970436746035232498990716026810907840029519165289695754811946591262470228557664794898864484211529525759448851794379187888074213657640681838319612095218315184273553111257286478884744656486452830294583680840567178770856589436901030002729978917629279789962263077444646654961551130031985763088896542680423572069929385932685488162420145645151561823672461242492578625418920919062202609421742961261992664682590641422263498207548404998381077829020744593218835502223373505229554627036411175594844128991546550884707416028074369678284108212585295507403420464517733280013811440788139266910497761372141544376601895742542194135819912988507643902798244003592287276893110953627491482367471223406439593177455187501366956361876003160496920320288481745345632937286150653387086894497020237457727080115453629096093314025059336044321631926560527430153542757180867045211100458171429578837549709278601955897228262890760015131053656421423504402490134429742918225166095281389052388263839135034961791603221660266390119368730803313559862182536639724311552359192585013539553502127679202514768967940839240609395157643215648663715858266381228966492548640267321915187473514701287059557411495077083299930654772938547527725669548710443243365343901317970581973729444923833170093675463042321727051866084920090494036897268055715584827245801168056325630360601262252933445562539874821921875989415264148794495638551281451309592402637642077502487164235982493874265957162527343455706080508925528097199730596796624307338825753985001733018884473371137164756889213945170732557514663407551864117163444642477272721869274812808883038394047749295608435787527957925514219349339870301219559012727647419934901656396889838548286338704026638151056587957296834244325287790519670158847098861527002362147579921268616247581510458237820314530252355630067089659868544586215060336986798010468199221138539849959219689467526637976008347622905709761683334079768634475880157981904091015804264942995645425020148143812751317791617365388941828777272660611444839565961134334185022682595667023273641575243074359192223221051044309505039296585724009747003036763117207845006065767770881633201048379033182354852955379398517476953318906798839956064961317030735758552029448111019555977018479789681953347577678026138791910349865410808218734417088601191632449891176126422477704982158019916152941020565415748865031506018121405272059557203437081402237951666328723361540855363831802387178509179876576195528477343836081150551715678086169570993981984927374482238543989027084841153130491540733204499444663247057136780295134584185999311713242034213740424753372259935335971655487011048152433656583836058238066926573356510601430975464429013694883558674030453061274664634848901231021159367174242236218645069857281157244108492566620863406397137959853804371130918465846489067919193227797351507789837072472770143857067065372001729212571493362789944489589454101382151327290846439926404155325332463454061202526758607427442156941088302022290711004660559224899968418303176147522230908632307832776454824860132471382083417341453854015294367570144589905152604957069023080634863685618629158008717853909756031662912889778518014722021830886393154625042970242660640935443332262556221981570577600812651641114871704585824586860665410927180773628912995474131248993671404416712078820076240766990121167978140324278377457731197369469039114550051091154286976900502287884704383686529335855437104625781908345663799113940301789461056587906233738823296943353219722844852453985867688188635472928688766408963145313754747434649927527695744123825743705675754076335036871873136667166529837380346208416355794637603531428481141874694475471455515003789535739945678614801776776531040794489924530081559909999505153350712841160813739135860073785092624798340450081427533848614607465092981092936923570595292832155984439277580870810566469098110655643505669340878282481358604613015790552066770095002651939656185862025709020091178496255003244964312807793606005233026407983064215000101227508777765180799406794353110358921202625611205773068267874792671261924088576747537407188845609038016153253425049707442952331590704193057880790520625165967135814000024938132287118698912141703061123596379774409591093977342661308828728376632470812673985584112660811640336822004601410150398717887067178100373926478893996073107873868298175349651643575768670534694864649690979767208788515072076947504759956641309470068967322621886263773180974369540862638529428776464734132733455961586393991302234359544437173460964033397601919112645179984469853749192750567429142298384300122196186129166088634707261576449657141480586172007573511072162076668382303414660321612442455257652464616746666028294340969699636189325169821750761722986691133309593059932394672626294330134527532527258082539626830594913751754213607146904132609083519766956199632634086148860875841661447614543192658091275500871793633434111663353391897602315067673917946413918951024549602054472396086271900402568149086594594810293159087316910662344478240083571597817073204621898733640643496627488873285032310891670417844857623049796458284270619350765944038574088865943955427618161336780993627432928541847750860879813766269674682009089167067545924838366108051995747706611922187159417890887299135665456088023117107987392141175706748387297782175929389724411164430570365144799619305703175529077405635342551677230718282700849748705190351281324454362420228765617988326136243571827415816506481254406046100575616669630635457025047327115261729957087134672303679798218505381376687723652098645087021483888224004799900086505275858996395043846246214995513836464089615867823855193400881805223618048222791134324605598298921520183333226036299988127113584419840768969816624345627693217501028716990575949851193374673449036897617129747757489165785522822417604513287442172228253795921483781124578856035485880923190057443178430283530259364496671036679668438810675832007097973701245766717358545906026181074658847801226052902504687051730909822920850468052588858472121133095030838864909510118797020752864950207272689948320822087517632403144198722418776857254743569566050501198408544031836858463935987343899047079549540098582784643431276909678626526680081685705583831064017612390712052023212125893456875486755480551009876705518845978210949762178750301217153058980426260353668932896686541960120625887871630260442694400901008478339075398571570631824382059492351404248566036230552982256908482530237360499847553992402933282662020925769048637010339546156454227901100289238908013985914992704101397389078156686436092943616063057186204861616374687290967788544267302153469044632041061502842764721782897436488606370656675748956910033855264966613408280899395481047761239466146292922987161394066809831682037993527693335106043431149089789866997045468768676441068729802556572560207697438450434635636214172686674878383503879301832762021268332494283299180806999157147369375800342362702363905010118326300419038273331782798651605193968242207214083970736908504686738689111484407805503205732989180029397066550512729223808381433342906098689714810015273047619883439723352412153637056723287212682923070130474533208838581695452796996257467235856113554685808806886984816039645203364933746374739876751610999909916632832305570500671927510205288679480642843185430540232553906940995157032120161524330332592154785584218834858497860545283457197140584546520604300046784674231122878996470195916080080283960047014942703384850327331767853610592271296794649149258381676372284815558747488839936898800468295327316223617153930364486896677297484586925444924661037432489597269481045099313677662540659889392669001894184517332822145331107405382011098298745383643027160605213700511888166001120637082802774596742714457405843991276082245340038425257265183917144133807468091394113245606714921727589420977285350340785958868392477123154713824321878455859649919297651808789473573866551632030611235061015195825678365503033533280245828958742798697815534476613836721755031033582824336963794298072874552945286474160009355242615136787463393284532148881058273829310696726205714812761419660480942134373329431903687550023710131695888409208345753834138511000186787415144224861720447032859496440831551707220357663065527813115004458992962040156369939845799161665883815771631512860578180406026601124100291076789680420740222314098536522615716709589696323525534467108481278723842026884110914911985624078409381429520793084907269400171057216776145433109949557777044254960286461093042233814455193701991975767889654973166948668901542451583182743014577944824278392520145413512656649842899974349977324232837988738713479244026003349252240393936746356014836034760505048308095821044791330327672658710294761572173258487511517573846942634609379935856192155651941280164091659509479318932687179171967416196280617161846381247717929137413657922116775287851914053169218523541888743626563291497406512075970337762589206374594640798133288543164167232416636540076639916352506651542267105314695210445204023577486194031044540437357269111621781835143878156577806420514681812832433605853812047077624499039155864436052451303210676605861588500358555214803335790962838385265935380354043053155138271141015590423672677957799855496514939733174494819846798883496993446723582671600598631067545953739365853141024085865494400829546234970609884552880464532850531412579872338348284588059384184434417565765251661391670648531411877808236540116501432733641137475177557347937895456105373874409423768368553580908630342409127552544539745614025009408899111804766010673459272301946313174206516779641284829063012062763654833338478763471106136178027174090386549835016415537285026691009587076096737505228804017983731608009235000525538662301501578711556216223086620447179751848075970777622265004372740958276844790898549426368840823843993192210494760623757286542307904381019042046114403715134878792064697610568096469963521812094991133275414398127931011153683787882569624250577685582926730294646273660700195401582356451475594602045068381219961400816945691909192673980977740974131348265027273076970520497597199074475037109645915796732127757872595024343462126398587944464241743412281238971102596996705517689537972887620301446208414713094026856890266592041950165108353055142197425627337892202489707272302508929749470266267979756169401032791117679875372236871398669264919966321848795057085208446482343004026860295389550431743179336091244544875498553028741284897601856598144193712148301684299957213162123625085115488807378380947983700932229844509891414276427462723942664733546146421156457955709065990858532919006956797985285197766087547093243976803561188665245982129836652986481396021651761097264276580508674256933459621010705180443903963426663419842457039794100662561258385642099341919763062709221518217508832223820010927558623304968396151618150060382817493174326155214244546018046533066924003869809499015448328957031303940494797047509518267393141295410044704040695538154509889258120574238403700967112158774705236685755753917077790828390621620763513996117922421950283231361622478491793365487401746255174520244849507614675568813618393781859472236158812538930285026811587638219154193627723264351366569453958153503594471012539576703580638583497378222480141345561522984686228060424591391394813777613949428757645296959418041374539527065348612563575727513528126586947805353772674010536682811222328249081146766383954041998811624792561908780842622572479452584113189214991773769563823963845878277678810031662151216718206122332098507814522738835199813202942639903450492746746020562513995342261397978382075494693363641473319703610065772586818592052983914929318407785002861164070043403149429547011618394848975269153051298732864480350483825387638912132142788779934263499562480598010537946014064193216085908101739072359675311138612341657422073488242013226426505063651021538223417662145974642870483403554100792672839971669469702078104182199503125262220010228825833330455259999798750694916399925002710606439626949868333862947048868349100518827946332096608485683983488736660368831698863062062390485669113751003109924843899648488546943826159593025447237973970650523734563596262325511814691793749677524631395075802170620671921584206802038840954185145686406029484168658511502625120252449632698033526258580828322614452824057906931842794555594993498675407106536333336941119327593216797440240258767557980654919880401046749192039809131113806113724067852692027345028489619608090033188367800241882660866866810820738877318276329880455964573552545373895393385650632306334229240062679884661617694155206155275926635371889740880579577408552217396720426858910089583804735647248866362492207519439401509801796904702035373125129926461091773734311750178524418665861238890325183264521111557812765503440998815828103719900614873665808460543291769111636374443394395794751456493970946239214445993668768733903965609737526412085840674476831451466319036360409714814860726257208993800314011113158677139046538785552921646375323241304163061999107351240173445507314248615343466416884701116574108986592266782331267798272239524286353480135831626790888177449441129065437138682348527379415359406353816266806346954231984885817976524737476700338254443310120284077105314365968642750469419853194072935552682845157635378298730583441518651903503758117826957366130779834808669579675580650823316228395479018336655086380012786273918071564634110359082144523130988087234662357284316677518517849769443811948245042466564096437804716482857907161092765966540480035902807259168493194705524414887072638462329235437175118659401744708204048184629137419508570142899248271648635118930100612744705528541465374449888039361717469821588072665925901630923528915752119124845310288928942333106324560428958264489544054541671598483927459260004725136478503648719555682455934496327721967629054036269227053794519874755009684044353515877114642804710838679107177652330209501456672923133005426503322230275898440522677437206263142520107318340218914945797195991688382158207602572441458722900598236737537173309958131865024001907717241067667714165507712682738601931769951516000384389273983352088955997142812402191452964235278108976871548451521105666355724147080683300409397795950248711038469889226556567226119047544138472740795305645668379173583793220104485015830136251759906312894238971458711611053712707907411965844320911989321543472696455377088462426113461075995910476135543328508356658777428609524543524474128964204433621863032321032669986437635055872528108475604785160767114396197209483536697913849702235997379680068579102268268331760376331133162911179869756592497768483181313963297439638667863693138561134517581224714550145952142658441532775852200571590806358425843729809420876064702916925149785482131972872252776552451389171035508777510877230121702019407515878522151451816020423489895101069232269823163257265726152064064522518209273058563280902811043011655949709358911715122795014215881345470851445346540477864579895100491898777761962144057176684851900908074508806799448961075096339516233191160770766995572027742938650362488917462054231701387199635331000227123257669212255400605638288323477457500675368960580731158592478302520089535683116780347232990914243033266589180079643873262886438240960323751258829348666147966001341105622115772677674579685025300254856174104690787892860308232502308954992052020216666217763584687763600637934861208116573263021473967705218731945150960737363191737434664049429482344916244762922757152655133548835981923225049864938323425256772713011266359766000303011358221647254694186845840009705583182642981333782218850938718997563615876698205440305544027712478835389595586198958231731172764905782157718102440352409910210472158249466151254530161043325177506097270319582567229719609236190187199325019439618582272582171667359029361712043126543105720695285358538126640899221194947085021727591744918029658381585776662542199521672091189944473600727659441638213728158774598020719090206400634682326575651579216478031069845554632307376551853242636765907433927868477256231684199745014367718704836436584266498811381101609432450987801139963129627706207362308957472122000918122488340272820462818599884946973873415680446832848046866806464069696840638084837616367147566743240745650449868540669008206163164615479969324043268367890881721693321964981785617926020604076372124589512222139413240758023761279379273959478450642166258903398814566690883352932677338020706722082052941265641539980682946043971839484669530655028844348111987058254823135885109629983695076561259458707266052124335351730459417469415816652908051464069947931362402765987959764403153155414708623986855870548892379883951419260172888841357427657190191428586430073076177221534252647778251909425762236512403265215287764536555117635432354855115745010396137406560868618459635264897966234556368215749298111740154121082057054147567504363999073016331545808128655970946595792927267754985395678386917850402518011735074040046609191613007818225524492712865921503514215605707708832208916898039354672483380756063501394061750352020797197624779673162936241905197940159983794247566203730867289197355626823315225155032019045761945277392001974917757980102379979091944526713624846089408272773175212696114042534087526899631406960676352115081771712840107109456066002680434697362815266839286162494397516875831724998693412215721010979467163664048278015635741262452623939800269455145421985860296234589165952178892547059460747952275940072642805832838138801459163693332416043594271298223865813943334253670443852836114124067843200852373845399465659414945831978766544346718202445073926504453890685767898270524835813562277320503707404325911422348168577356120961848430721844017622811306061303217940097337764318775842616786950180247543411276625874492757932299424685189135031512013030109294489440567036283088833759721360336991589837382919289803100742201337434513331149541456623761306393114741631031185607147116061605580937092751019041809554619336751037043316747568746890867301388261130311589634488251948958803376980734950313341204576266651651678305582944005468518474732396689269534589542397505019225671871033123687541125944860608271706928201247495423928469363218774485519230327922222412762161279653192851251054991484553790064140239514538396546757057640832592790991798711141155634928327346351264234339993738269148002411507252945370904710646430530742895624048509622221214648974140118621805439427431545186181492365238910342102357952962042951387786408406372627120286104984481229340831542133266093258864438202974142798040914229065298093056969889648607691529279787778725115956585888207424226817284521150957373217677839793924278029729343986975583928314875170397189523929433585801852341934452885860035036002299217049504714336653918570483054092660240768249165801947369871227885939660293868925072873468722845131821845049139718759428894613929528789329471770745211784638430280948861249482327148048240008969481639821162893570385430360079392760105154086873243214290292735946818031631027987561099747533806670315545390621682706700973826643699361141704699589927087874126327055522990970312377082654641743475627815090403318085749384201985828252204682159089675843077332155301759068688927867767446156196067802439307719834686884308952223533935949980162445146249657545325430372115626601281020173223432529474071517883059460868637504485915346384967195804994594475415052762085440051446027902617991161296109261149882480595100513556292714103756223995991577088095979011302222787881112185982389472483051764557379900781682052326228816081366905325813634370838917634044700729905744508095279214142296326008697146164634220598240156524166127626567936916230714853184013668870037394463371256011915797328907885726237124496519485230123514445430645784929193788622441444228077819327421987564929471017055069793913939002734171470876576119503291024567361778887283757752765233055382992176570352367110256303952412378206546666732354205159918910320066557028274882694640365958437086030540212426673739252720462108365143027113822083521402287843663738877071237765298983883169522850194885453814493801985755402403433421600776224543350369876445426397024125268782412844320380268624467863310148567689150693310728257270779060827158854736436405554982123557561381106937518929371742537029666036310417677702218039502018676075968026211651045153247033106523726541534614070587871428639686023689060376840732852199544334144018455343771059496396729219191469763623888597769156653627234644508100217000843460675298695419792931903210361338179901796187434467797110398817807400262114805234951830576860056316150672269544643542057923280230296422465184739047279463111244245627703443299819809923158441300459267902602896703814436861984236559488787932610340708785731987944372844089137814834370546382925016391969949449310695298773315350699826712211795039611357904535720969576123121730665561609973774122245532954837530409119549050049874919201563665381607737086772888950827522564254994562318076273131626472444346985205894788483695788885354615947396972702829504171482175238314639699282189831026803054432391935520652973409189802761411124629188971889611954406855927644934716961550246677109348636522506633150554130014605747628442795531012920605781217042867295806233054853070046855851327127891194593969442219754512126510994987541492943514262831108666481072737457878832538230402923085686493657308331139642828507222690056306955449589041740339153942584431191362371137234345109740058329595187697280365007974368577657811639151346512668989675714262764258478134979746743994317816545053351622746544306830079957597805167100508489466519451424355733464859545056318968848179131923675291757351543999576322701190856514536181621130995769355047291006468152586264444901190251161038574372889768696479215360529244435461747001722263460923720254633249133273124417654333635612041733815850667160166022987906736901814216341365029881800742736460093519407881283480090079278429794729864900839638504432832602637991458605361368926522870904735854084528970029426274724673745890523069789073558778068221449287310240046498432938633380917610615013823256218403384954167404453258826074209850413791752759530554912668751666825097998644008435395085074429388154471090608344538190503855855522153636202893258970892438582805054631519814362286853488176970968674475091391744888463133557444540527095718512843215774228989041066594409895622176111198265209372706523131280595576422482565166327011157088976339834102637294191659566204869360035009479865277067454813654523430890745775724039679133327339432499096771816669185956516417299967460014512905584866848336004918123728967062042608165258611016921428092935510173442261740387800510746524698315999766441469025405130427608849829537762872488052192489639082368721570027216705286109471611657583313634332601780909973749797401588520114394139128330544423486759816923396910146926136470609871057030163822115238904524810387316502011582679242808878351216493857586971666835257473821214169207667567983858146253487128257635415985787155588514032806670713109641065926185990356744579300871843458422317283295599367626529040503561882461089209415060152746222914321809211275442823201793808798832970450697616155893426509358335754219869536617488585304392471037404375997768634848568603580173336605235687998523524076334031342148024339977559310451032051603022112074204986422152054184705967409088440292889201749807560397272712188551315672021172958717891532742337773829498129890538526979658128696098061018813659059511009096426865530170066462351360381789757560430637893146600270162059963157937677742136566937398130033957393706698680950880638198064731955206757554917522842484277795575231690514239613239372588294599343301844481758747013295882835681791739735999567871650948303554319128367363388905011622892335214609716496614105227276164821583834578888821251135425172452563498229869612112219846319163095126755285614363188896028863518135571231344244297719352270500794309579798888851288940870832448166790040418480448353141204517917836256485589445247890898167226313049817926949566487710543590113955138120236002412437655924627438460970047178797374264794363055416160486038905632171348438817762164276655564118900880498166179698359965128685393598059033461497260296742475432718210116204873546837567502751121145545689867704226600048792528022848149178183256256863071800460636378320436043035611919462054438008190839247929111759411247489663984812430545799509002540338153301758676251949319571376935863381561345709577160282571250548932947597784259883339057639008550488189577955829366439316322124797510546416355730840968712722716249758511765729323904298553194676783286631285152308292868237399120746704257603929523052472179562310627541540314224826092912476265823642089611072653114585278815384486646970949567384211893545265184691745752954715951159491419844086804839944636754123773270435660964417104903995384540237708649686123523131152461039531949949776455083929289691604444426182161954232966574157397542137242937193928989739424746439273651195731374516198880984735991608124565526135099543159113992925183684977438748410633572678197543968044862709818971602409045454406007899308430308483512116279343030909539977065413355466200532284293885858399007708692922964404312521627760533793683434614156927281615798482118065166396589418077650005384340151426377231610373673911190121646922982082779914887850515482496499711755253422580414810131500169023433806260068805143855978012718600051035539087787287804672916112608559965373734171779673857224214023965020183627499249366762989890085820391568979313327597170905245163409439657088140723857715484128955772672830331538519342312483647618577048597151764691513893242552641300968693388803228893652432006756012870991018914236477900973396075841168423949345090370869362542827203917100004343891246560401382858668199779471871635882128439662612067646508498372740149388553187052689208459744678287204382820128847763802258827891433679298014770173285021815429446997767327613124852944545651973706886556911819715025960178850135088474551304755177810918028176069356290057985506160887070724096498204975027358560073967224139901481673592068636846221382836959076320895768125736395656940095751640638344804725179131100934802754938859693241837179545307838254537288445629265196900463782051061903889092337283764709628485689672130875545459837781094437218016552165476469971419431279182841238127890613499054662297013496775216788553126539890753744742846599893105030353951397081856483799907054952983033907788235043005183571062759496888525638411517418061016306951959530982653337813993534590299505115948847257087483447065282819616471684659825850124373373273246013111016155894943408562927527560394311876455003529994567035795761484042988095540171679535996430099272209462908343861245723071932423050879966049384513521124393349444605516457175934757389516025966194522748881909590970102267664592268357357736089065748205135133405817288561822188623585547410943558781667513959688481928695102905507519932396561491199402124341795919655443442688033295470424215529087907373269069203058246366470213852315490640661245260110937487980149723420130678384449969450093367127427127502570863748987548376958375543795228555778123830901293432353440084393368948088859109291825754320775713167890848818376099944080196934989499814121363439066400342494671761764164518410545513030382724977282495871061447186253541425591469066233535816100152116846670941480218249729181838936233313271772930274323757523350739125634376591391332072581040540540375192319702827646076720678541915242483957500939116709605824664878322882538323136578163523334902019799412660031184550389871696426327945439288921018419948254349174283157095547079480773714274853949792671800285272348192528735672512237783306353954926332870787794613302413160827754000434355579848261627778105344659300020376377530105826327535042331343923367524961548758216464996589067360439993164247281144285726641713285105191616467017766418683219286265769219972873193607526564693331361670177648520324693181401121438558047445017005814976854412128911913351436350804225412054789504244782125688981865717317608797933981105439483906807531302468510171903096879099980400753921465072122274034044998916075389603180240105672844825005800651083097895823737830525778817982009656734025555067041905560205304398361253144558379054939390136582470837468888393821203865908699917669700533193048069168411547051859463598166700861246150318253690098917147108943340305772902716782594603679676389719190045612665806394852228992137602006256391601881379058138720976427295949805024059519979626213534896590360344692233279833513374543473083066142368677221408795139794970156429362032468202924881389490352092084212183249105187458767159892757078549443150839984032777143613900846744916950044792381573588411515727372310361082454475928654223067874893654766684232429867609537501630396513325556117458438041877594370029948206492342230609412893694533038600675033455891446439209056588538330615962527095973455164706295332818932289118775735641406686278090102081800414346519450711386247033498107623084138432693865712673979631651385034442952372302102229328367828584548882419577717729607935854320056533263440322966016727361540481806782121678035697014973337313559901240393095075516500637683736012261373431547033551285393121330628390190238017520347811841203396379507719928473797159911945184781098789687635164628502098261340020537045486667844658611599415176973471579856380480106917330070856180504901666532050573005536690642285906618103765486435348895648920426317497237722213742078540074745572171436117220544788460252036300978951978857318684545897133714163932518255424873294492668022337525805380959929364265028060411369562975578174122258599797710581904724467814428330565071743265898834172157416450278885871757385863083325257369175983673897633976187833193455019526146065529471997210202384653845094351280802327658401911357938888595039917435507080232428685738753571680859475424962458813039684676013344357408776032895613732534167980080028402673634044665683686501350938514916090193999843701545560913983270352503216869255484236078889031407592850372293419373546614374631091981350210411222168242373696060750367985157453105252386823816231316778761325467067621847879951052649869024982701323006820598904290369673048756923993973558947977672958384165898100045516779017131886516972327735980059359997217766315713093077583367318889046335329251588637908069844559607702057059679466374589815634472505882654893215240591745751620822245145867302736355553065741097183982955757497564187990317267786942627544879100059703829951288494697389213038702228185920974351631940700284420997076982825812835829774163197997388892317484109339840097800585662557719129508467890402852346925814292534845784558708153309307046824611022245178348671825611700295203186192390398760944758941874248077876977306718975158611255640510395232566132105944915646627134376007511717930454284215021027986657022079934010494960747742018412995785124971843871176196127677844603852825418367504517761121224655840108763304865166577858146354752923115872541572015361546415339651704750564082437841286594926337335367544347563655076475310822604669643526960948266727679439383540238249226967759628271469470859770372243590297606296394049049198577432335287427965295930378632350023874406450715762394419607879268027234463039544004031290920606486819043298315160058837386371607262744914455929482611484220742740331566783322369447199508561305166105946658826399815489693296536398537253947216550663248707503946279859724080000074086318684096942523887562456849790931326905697908416998103520039427226624649546714405597585841049144693490979101706152292310270924653083446829624133218732362047912694328849145572318698507371789706076840276911928884877792045192069480149538642619078548157894863544062659756563280440536994869260382233948532248165410913528300421326309052299674798941213444781649598970082948836089008992959370051032524686464134864067158162321907025016988033902856097127956352714473217141309842259286367931734752609685742237919624086498866817070570202897822106818357701504562700994189763428027751057957944850074924593603941667396266025756275719853388218493009157067752272071878968134912202594358394342783240317461641313427361080420944612667124941448158871555246104292174665363656949917378574722601548870363062948615650681843247495899931917605874750483408469877568754678626342816946454040887740868532593448547942056798533645227243704893914167277652873616130826713269575333260946352470115902000016401108558996852779867119547494308410704687482325638561752576102372525131483634081614388531794596099405797884233188656793681315491862950180737510608012586010564612116210647977646113044982763823715722476761532254079780568737343281649388630324720690930128363384122186209961926446256225216099709641113467589817948755646277620545593011312385859219815201656848875100771383048065592434598834047084485120240924778577349590499193597487835427046663307984900974992854918218694142791842712561588878919010788053080193951834097259404425314474472149170562501032759594567357941198315466070282596766362907651287663466149626554113732917525968891768359290059262962771653417194905021979952445269834996461032496297450843088176721951186467028828396141700434384474248131538843815770015587697098501970691436317690944390437846163713682459478307675375342256121782501550554433074174691888714470836372678079530235433787145135630688311999445156107067519482654087782419762437111857654735795220595111690473730692927875788608857753550083372087379208835862711227093189006095043095431277190884156875462413746375754157545710996450233023062938506495149723784413347687202483016367663008557071878547394055271232087926074268821743325604355961141183193524411476431549713221556899888979182208451166408206087834773482276434174870636815251628793295695198557152347861839555222833313641814730514414159964485688423842993000029766270302968061899244663214604146956772816195075991512068919993117657470294397319674544890435027522170273171851774797743868716812060970219944300071349787286562555581274817611382335195582162358511665038536278523476757460665747353470643489876337463306266227639201047630441147333322824308140764668663491652522316693979302785457120832477528077010224406168059656235020464358714924733552262361220775763421200326421534128344915202894793055458873956770315178625165936765585407657458622167192700168383979774765144895229532901391056595397515761884939682189816012481731400300029352012490807554884918530288730184639334353367356467221380880461411411552690874970586789732906646933113140163176525913847772466548568473822735690371794560042647758406037367451371390149923621660478123046596302132056656694230484042055420279320016678606644742882933792635296315507192566757447655437328990499436381154383033034462785438809913851716473549977731096371767929411833253317370739168553724562762047478128328879076733677730361304883122754124061279747648718737227780862954109193650208776927744219041909903657501405694323354148736386953223697969741242733753967387889066041731766926101325907716982431193672353982390393942772566606762459370700302507930260747500072839635399809999494649581318189912630278127852588249709922996903187121943345092932347392397975420291452749527835180690961907170488805880894370863213539009552914940258783112536521771787644662612044218111859143005782253016525905036923596870958031841811969467726542088969813906871526738978951914641393105090754457389053617978170198491939502748953273744725949328186704899683108320579518580532017928379093704533446163971678250680770404776405474480208661649918629517466349716891313386358744294236062038275067250811549306657323905379063713373846820762465697521902708555738479320732398553356497799362786958653993044091800805276910367126753142974565175750358413819498676170259588426110254121604033345785323874062646057659626662446575917487275875807258282063573542665859277778252637564392823845959395785531631513149104964445374528043515350212672361318618779612460447798158999603830936410769236268056187756586601257704187343693405820571854769031334329996776854590543094614313778375829316405231727861271280774609677892263900667098746124149287493059109622050831425077701874648803538771299307288698854739826895173455794377188991142239581440960445024870442358646670428694919258417018495607473168029930697356190127683616990381536569359556186382817060528312716003842350463188428165901255713305698221389802958414788632509309628253110773460779507383887769670090049813591753260448714386329064471001238729962860993179682188087410852750385672346825896202655374375599328635735911124440393968903440061296616684790045348497062503361753935796304709916086122101254878914127401041190942296040617174782521008009895815404134299103905646570091991142507513700693088209721135249905290305206531546092437565812619165680119938852625254436871511049400547381379535309074228966828278703194624854595080055042223581394657074060173698475539507892940659495588587837452329482210387969511669599509227023984733221243631268712030871896836172890949183527138273018080897527038506936421769143745405296547881542368042975362841997459370897904883776875012778279000925254027433683441683068830332558967010442196147063216881023177317951046837108444462841802101164286216347994673063670989368798850834539232248840855007574542423142548369006765169365883376796507560032384002358451397649518500572123972967809453076973376441028235757085187875157127737521520296097336563711554759229952490953224107684266880325954920346020689599903390059317097833440175943658949088767614277417057145549323614813308394383894655346950648882299346159491939357002732299381994829626709090789522070072304614458260843860665712051728504865012067954102475694809100212425341009895067078247513907184768993903730588936713001349833885844405518594358122439086456942569108382155208592470544446789696497795887199689848552075926144652010682481720424470345206383323074012926176496484098225257331748202415876377468578331708587759054148005296180450685758978905727569359652921244394676998897888510924440553574929208709395729793572903357028512207791030595629813696889450552105766923617701922598889261177726558670583013958547073236861711004788698432191347411955651628305523295026847440781982882497933506187989042928304634257281717062941134482088315567424185965917371765718843555758527838594518565798045793421043542022932758476696585986984263313836694687058299628365802221335128633175587684986274920902136588717395754481862071162519155357339579859337202719268788083555531038822396872080846067731950527342937368729333177824756158817243194582276562734118632351148498741782696017790863111836417873837956811201729887871007631263036192426280166582184437842059146100880886221816556362351774555107644237482351658266373722181265232640487678305386412002709658559609020104574644345434080740433430004888959412944206114209628509906059689947073298988429527700516878434417656175588552105393010211423715505366688649432307482377226848805892591821163058784980644659081361859349937190277953057501116103946050575695782624820637736117522908836672249891702646001364528544853576224715823497682059581850910863833700869106710408877255731540769760394189326605205497641576034411285085809455258675738171313323374013068424422437126901805320081307802718396611004168046704942077905380908320299080087076235745303626697286203296777347901067410475561301746464280054982001545121027168550878430717999704755265484021751204562306684921034462597940396827714702237359600563841592608118852887121019830875477986344397416343561051365877311144727046445729281524558627239156127955496148106200307014522158764756481031708297611849289178305605337610531637552986521757941626962934520286185292420439430206773394787479118226831005192696834343536272954049141489029503773664788879348362757891456555165026641254881204100311538685925115537148563032671710170012288611785909078202975204964909724198105549690297631777179897409760864700052722136287308758820609583334070696945580933588889439198412036424466790114327534709010131992462783910120555941703878321577462245771095533873205738916614019201737940646836513088419283346324291138491263620193591238632353202028495199605842177232382877190335070854641365529395597705360865207954373742699629126169215549271618617562383413871153615546908070379084849260676231104925667409766844588430021038160781871619236187185225251510035528717405232178802143215592581908374191479226105627945176819083047154664378884082232025373644916967979161680607310205811519492177550508737327291849422786103418792121928346486420850669328729702014337469776424781492165274267517266501130097072683126480117594325225071273417135921163823311519287653269779209819135019310630699663365849954758718045146879504646659784964165681528535813953378893318811911939450173017588767095895736435662438414865279926511532233754744755510056211913390301509287468921815782430501224247150555616392676034913100798363229449095491823863523191423944428790260994032778933343135836612022745141102198173712685451917659318334338084872457436267005705061492038824466166794772884137265618975449426743678796082413511881847433357552318843716090828913369813745890956138843158187140626207517204941986112163852617271335466660049137644251195056296331198067702732010530876900778596700263162448418894272502759770288253639027560226302572710240936952369428531201495536538746410335643422654900769468720425413010729054358006767620824653911942062624509136840804726218081916578426484395277834446905126941322789235212982235142698835132496343209907556450769664242409743108385561613455334477726042498599032775025088907241874901073070550410757968316634472400607599903598430874602275860579062683397468700433385491330258113518755705120728771611259026972002155175587900523220397602540902943382394070910124180880122072409010146305060242050289536475417718863348344813666113188079270738329020443227168497261602493580092100193467313356840642627006286643536529270709989474493854784109487197196041413567103893226801230233211333607906182665817487650763033527419145668819882122625604666691920791769667226028316488401467459675035945032226866985413435339291600357846910497935437085514731316302214276380692473426003128779565010357172090474973981128638365090179404036861662145031340831285114842702308408715483215441852678102001241114546306884248903015139760177157689659390252154513120557933448485794219580129207843899202073674264952742141798112101912990525565876573838549630259017213469975614405528476828777690483915158638148394673915017764757883342291343002209076255470765505889681315503254757353877712946578053831808766114854683295990206685969333174527151799185223688426636104843758536063092640597555647674546799674996220500221141390090435814581378608070202087445638184964078330026130705885429480096332035659281639158677301545059307111757069054600570150909247714612232302144030248359709761863061335565076291927258380664766930465422746456998067919404468196546099163942794284469469502499955934055078714375393231749270219482614980697185710297144639871076977022370460906361303667537798866064693121906369489879411995207429198845260791719234639661498161374047470539462999839690245866165721542787206289268982103510563570191453744571163442138816650040183753059479599259685053345035078606916203102731845908830960150411907927070269465011614144869742344258155303096299883527310733608841573896070261237476796471997423615155508102844079408430284690472852496333200967660458247352756123392726915864874687707259586231203064080014796671207823282924645819706523654109554115250379277984083271108328829471816365007981361351241475067183494032545019095500239554673797013412489107607937260204322958390999116190846575963563004223431169059386530763406561478697806273634245089944113976972970682592411318980145762769650342521147161371580626273063678510994835475229151641979170961112259450481484878125451954752412684997316506071498190174727988456559695791713964032897839219201320380645592447445106121782297311843351515365239163775269546196666150177713013545927623486398913740580565655744244846683705945658380018416047101202283880590362112914090208634086426776188703419426647191026370766112870970937882029491237658435453558881198427184761008910464481058275413246148777430689062254956571517857747858177769675898527559051671794657575066585686188874183406184877532941776719162454310382769987713954437044087267313899373014199496992519335695950625780640972508481309886910325771774119814607176794772286666031641908560081560275659459150041171759797122410803176370531677903784506797397242704743314285705375861513807742294868686742859556059730238621590913010995705227791709671846246820672745418753065401802686079012897798301037679757910099922380494525964681733786398031124586682018224156378168372696946057482736091261056174882482219514114816968067903181539410811210676542098919111200177094771003298006085618625237797082605536079570210601995642235390034352864390552843868611445377785442911235019710220382143223474852248146841782888718591428193466541708165357118877301620936418348205157788388716482937719585916181697096555449375338655951579021828477378680032867407005127774257466800488622398615272030935142193377240126816371071335500493175819372106451892992213108285796406452126546189030624299823420101547052152908003793245034424785674309805086706645955005316373979412698500352342342965352408581317665572001085442069038727370137847348729390824686382598765419465234599815579343545509427407752249405993255148754927529315020483852321224105749263832864131554616613796461116723423973039191297117204570426006040703939786074088418914340336826841850773746360125874103844984472600823828905154570168021470175066003073738156563360746553229680562403823849030979615000910240587811672183387220066553709731629453572547820444913518451481030715993730594710830211877239395018186256036479809952442242614106144817962533890826679517694655360592834176123562333146465476151664099614280763286830536045086139047765380573083094258481379474643871598735294374479992824985890702451825213255659588632518780602953063674420400394791506225909030426994755054033769803273352656739119544047727488001364404936541794622687878300498691029389605897653032973625528367643149156795433806337171538310692743724341160622214603147519853698787266919694634564246855995798794057578526235182183189705733010206607599627612182851341928433367337701786497089586076457818704404593284962644007328977604184560334631348644542048231434072929526039513222633459678871593492055841483171261260618275676995954784897695392261514043973841847205062765977028219100455864666158273113193535012064857292007219598906569907829394557435878145585838985224560910224115144233486915105749927808102882000006663132767341088721432710008067443976044856097542409498616010056992901928554797765043462835065163949345185982951338371059373702447849516762474430361863069773276441781113247907104538353760466022388321526980561787470880645129995990151813192620517600586118348858580241624617457546467608575679382531518799348495636212264708491491216733888592142401010415693832884383496615139591713469612693130894375355821874714691035636211813084218798889818743480508701198599176926608511390501552031399012670974973390694577289068942266503273925051049639192550698471017790301227074297059649109293682886745109173417485593283760967944402707005331270818723126062266952466025486046732125958809657764293469450311423475906988955975460716734316465004075298632068190879912519831276858363377390457429656023374186604321043967018239489590352229963909711623664197131485384343765262271334613216239840838232901484334378696761409088075076066333975773748329631854107241962278095867288637689246225781218955602823404949652980116492764800581960400568316340053913381474632820063297345237046395823138225088842088151398311312417963357840941163435948893625477238862985869099107335477436831787702461655202982492863133931397921782409473945955773001028386848751356233970032131925955468575228093256902572867543139374329964768257426783856689987570531686587089046707675445090663428777491274768361382728406291887244678760698960768386400929239264337984638106359451371610028518847100414335692125977251871602447076710179658275505773350721017193757150555436625831805860025600778853337060429849402021130200815813697750996957846734417366237844712047448575875677312590308017298502047647498402927981568019972525380526264688786640428612774394285526507322769523816777951651423769540215499376255144587633489783444500620934266645955659982502365117502211496052331152533028048248840526691613417041637941165726333544423004516133140670394999210278225021802852437814100623817803123031777701164227050543551983737275587871786774330774619600695961228241340277945791510166347086441342147063200089617953831806628387510893735847415245516914485970574750893658948442540514536117867056742822962909655195798923215368791733990420575691490547093715685073673910055119266077453376554499380023545694142223810920792411574409586436073937776976961331441969239764422771797550510103816349563159153422599441487779343383323514681161648174078335276863748172695226313544389144632657011426631382000229973786821088861292767828843566778926221961096183531664297173832417796672746714914706652007697365602923917458416402073449122604455480050932919469151910847459624017242753970241488802240744078675385184203058302867963810659322836748205882737516169462547437683127753942516278989799374687464755524320130539614949904199673530163385056684052240205810890577414783420955983274118198007484371657074120701578095051915143953636751296585873769397374413713361963809636983970055656140250477584399531781079164792269505263803546296169488955364834753064046450471598920770906248632964969046059100178076273292359229048361893143508916554525344137216619923338417768368908851015352071619126484931617009730664829333561298169111528349924510433236821449490586731749503029612087209191544374652990215985683499937002919579341133857584240626590758318420051466960988743313129549470568848002917297672535777226236850410396156947549554815361481074116099629685022130910386418531693307514496603539109268879214096870730206106157686007032460199046091197713177134548797378795044128491184354795844690862784480002833810596543835392588903097160979956877030391506858734644140646187981465253683908816157405777437385956198203195454045351618328449307428529082563353755295853146954680404916704629318886159478246511826043137856574606648008538883823729403518842741086423757320785406754908829559024164726918050343117419369185466655042026720043966618052746894407941685851657992097487509087777767828863050718032873397799780345104037857697960652965389844034987853882469586675773112641477207946984483609329880190756969588937968089375528751032420240997563763765630588403437704300994677369581900585963593818339726531892662145708189544140985593531005167002155499468793018691081492049373045217443382415809868923394034579700338909135144964739142411268898273984170928859545503724624529771887287414907266247589222853663204759145258856431838060357438652683811961861932280468170861860533078531989934513356223340970010720858631358000425557454620342209206058678315057723584312982121430165822641643718618140774323251148623641258321629490331787489284850407413858546905573537556343252343626833066891943032640544018199609017298140056479585493424685417974476037914637623706364655967346455306241763201692209153856056471636353305782513785162812462793196370931128915768913420348404215441702940796750979902278532986650711783591556696006029091865528782481487806649161664630373727198677312345587209772432948496389277755729620934989419861401171083694344209225580035502073885306559322371375072121226209554229027331878524191735434341009788474924011399471131096914729277355057477168679090582164545462853777597758941892476581622157158121268062702800839412127571817554762080403177350651178720990503420475873031497648548233455802726898227367475587050152991649902894125054081744113763194159745663595356156354831643113701053594386020501259672984125719430918892349526594143492262587032258483012597758659765014223892320216044199681619855576054033097169531267975754386525285628413988434983651703613782455414066620680237175430672009187660608266464844031236088145919049765132690032283640748133416187112990067500074274429161874363006690798641086646817834690684181095125335734777107485419721026407904196779946174797501494961297442735406692543907291298391798838386692798236725027655710714666173846353695556694776525413903706570558097994224343678867534002874194028905021218360428987735412229854484090996451418786872979480183337538948458243925318484832234757150944126313867165321970433243712459492505536972696171731038583685037106828452324190144719968783777759807467979841282071103951916384602054597505966235426441667824832609804716713764830230410644599675723490520614188023458083864787356595949127652665539835391615902266551533228747760349856815729989699217427949417647575805861239613985023693542004252567468934780312590903819657884646133051709933406882773220546586619869886761231364137836565455039520902749213879550400153020484867369758416618438242113837297018449332069767769342651346217270153084643213311532946490394830716247108717813651979966009002565701536204559630122921542821569208538978609819239413014517894843271174935176080486976820865215548952350218807493408691040274113745803916415037829127029695177722525037818332220704897498145695786170802380760378545487283871857548391464882899887843497310681712700143479290867930906093716646417350603157898677289457042939259232982226076859048805282187432439221964377697704359752461193329853214272155210123149833747540069196143892122974997385734813129253591687212161008205727170541206865363689729318890699261796537680913029613962162545065620094802398644599260530876088960614168978666234712708248236554549341977709599511563043822256639954829318219926732858722897538644405391384651264062133139508931134761808046706347485558175823715138343533360437096587715701441755133566620818910604611808769457328008672648285364762927667327425045528228527017677294284448495328873607790522291357870224728417552385800244835556974650622156940307068531199610694089587868110830406784245341446414460321078180298321971645318751117627887775910882930912438553784910570243788818256694721418228636933471846323453834433002991384436414339428497029750442089752141788505858648838324196345830381357904092148933632611297819352336443119157084218903225051887685374270468328571227994135590877029495830678971705794822284914618278526816521393414555160244612120192905968688658478379290081069521760799803722263431223155872271445850968735225448725184012730083753824026279428971767577928234962717797157650336668884578642498673877676843755681701015273470216154751443024632442960866883442975084965560542131455239518839846973530874558374802599812676021989492540912495927470689878091686431394300327749992320684780336473980430411157708865696455450450755174502862743228815718469871686623245584807638963766036319571106360229505723551380636727864136266675192523597604785109107172852730051283170064444836496945115203049953403772756751839487233785606388526055351107784525787075320652786947758472619258229362313241576162756946977285533551923030500715087436005832159016562609193965475948664864430948844877312882095915699957372581952509240374016315772908811892841469840968857891468722707291383496127942262422630724409510733000609005910069404000552849595172352512182211913707509243407806280122339935267881203304333239879840316318968439918847226510705903473141463084088082216610306318980574590116143393603066206782349290379561477453656983129208718516634516333050917007695319358394031768465101790625608099892386078043297488540965950926181964478259207712521595880662824734824727958132719871545497710706026360107036081503905831277309320099348740420354155161566330135171576857424867227292678094034958760369951560650682373504461674270196587954926547309080439990802332814487159468819741135773879112052996165735427501695630053260294114683245155146146890463257060467892682157321691726625391764421174738916633829757507511228253561097929588988302769382015838176843872793983728733389888887762140009291008833147454944440717773536911866260400480790946520330078208930025861110515300916691825066046032422511750192613498337534684036039655981456864826919494151558027260940145569590176619369123163157164700035208658966863061232749048650763522291942122292845174686110138103984275684389205344343457068456361471166227395777632989137656005242060842620256822596742192953974048338451105765604279856045119874043495480360031897014337539247094849128267025909480294142999743808880831549127568177332957097105099807515667419060113483978698540114749140444881614495247641160476588833128149936698478467543611402247315524737499094390248696552035343915621396006103908708952052097367558444292188631202156314049756410906120108134640111825960992298467498498267801141841657859458633604820391749746480235679446490171031723731275600554029198577513171070282623862279936909502244967942020356172223400518790699560282758878164370310720518711429241761060044583612784428518191134065793855367478205343203707853456933121621043646006433777826251145380749533097072123840507451283385754330728855447928001715632050972096945880854019403151822964987552356041143156119263906223969178425456359116283601510080860255626220114801114095731477048627589105478902750179198919555060360942449166733069042184594791536002658058052399605902494097428710462620575871649770550489367281532307251714177641958287856676267642343590516993522718395949888341984914524493584252586414612368907878824496392150201525804816963670713340728379109162069060839323076224691066964837591101274205450422114215203182661907721798950451559573933251211021537697237679698872538082844519475062213753159084036305463331859622249947811864153042596539440436951879291841763534068671524260937513375158108396453571507253877253640097941930264850636842250246424884448118874139999046314189363881570525986072305723810326386521260249480394530395272165999435182671521502478410227614101436517976920562636383604287124942866849416072505370774220380184035512886972259152454509375914559868574868055683169993506262582536832296881558637166739791911931293943152569043803901025906853741085532252644240251603585053400928047752210132725167450868369498053697762758193796592475494194299885476618420123804249311002386199682116190364935735624538111569837636946751922073620699884945575078771518299766351286334868429336349114196868756012183692723595939172864858251633180229107122793505853757797235331043124891542546650770103023705874567861247372672846733072494069400873608552592201398822371547682620733416467415251404591095818724939728402948815570718587822690669004402075190177353327349452075121762387159433267913671730764608334711800242650275725384682154657259554949234119587666557543112622406201699822972132518877172844021330161188798914828903670661965105841778248726585512791694952012328876710859297985899941183234095193938841774229255301641931362273664093587455380314237174806480851665171139685189231905272413083186175159936495677512507712994723451921135339904868663196652055930118171058524090480019933119775268495219243215701083776916304864660191308223381499925191749691742053942963763701154663241630068871293430246273809439121034595480744543641040945726279514760907949205891834685259659545240167945376392005991676058365038975697293622506371220479804089701369713953213004869171435844778986316611540705193173158898238152995157617689515299008048136431498328431448525253986163986876089810604055275478141913150034102298307132848471776748743019197478426535047840585605015006499459756048552968617288967486112482976093660340513230743657450739532362981700760954784371805869581890316088109363424304456388245815556104191767359340336733314381299868492377592576082581698124286243527018821875170832574978812866619071701481133151368581365315536601350625992807308942987186119249888292103752745287337716893070165956498241284014753620791194633385843823489207651838224238752694692223258268573793313146727868557734568994277752275915840673429052001691222898868560216864655120174667055660273016863823932851749387908121076923981237532933371894904805643001910563527122972131479052651189089389754160347882435481872179511830226458404424248269808294319141627448840709463165958927577311801350502479318109830735038074579104098342995046508749327040672978847723994021678675934080996299576224175004874181789261913852000147312484322436246751762753555376425164138629826140498429840893177482694813858825641085652051842151561424449887779570653034130915278260144352059225140845502805317198141467665440624998080717033012744886918427237865458427707604437610300248066415415482549976619749127547042709837820602985711981948118812679607826519852269706035635587953173232375983074578857411141722707151864160607547227483711801452677068263282963279452444685366897594929493820263883399041818793644250586635539646155626636463029731808217400619113032652221653885551532793074319813042278477945481483809166040064657013121897069753213042811601367970698230309051461504254504886456065813187541113376884376079974751460331123734939255515834545758289694820484633743109661083166012262977694592207942160470142308360340715492176911636086189246840504041112820271714833768975116591714846628919689522841521482541102478725850943292904689282572583859019764436609947430372923577494004477491994178628765287678553689077391296895655110120667603294416652479736174510405841058976539228460403471806889571492460708514951502551370320427890298994261990755104773656342337267418369338527748346558696883180580785977609620070318654755249915487218454292286640130777413021390169157780319388496532161532788569900607479141233012153406002060208854284719347656253177616694304764207931592010293130437952867514170736922129019670168377436694054095457407233714658325190240549421685094667791159855411146107547429493090678165565244260675932619399210593974800314712800885154492875795395794262638836580885051146569463471090248607754984656975993993674980355001135839616858348925054873805477412929438285045501149450678596957628627886791696502518777373194354652947096770843206891752437813168439762727974315737325407362627870731217939136533480997538862507426025383611259156098353275317146891347793002333541978934120362474675841435112095278335966676456548323319953996795640703594549577989354465886174383514107133109274972316864975885387913139471940524443584572440810133193596846671159539023677958777117528753385010332348168026946802149212311219743355634944057555937211681927173573869348783658127104386035439996633210841506953611624628288075750142515833891435692726917169840918112157752957389693855168809057684651874523779689455740703004415755542324068348520166757644445457931632070380116374575486452504128696121526046170306793334728526081884801918080937819008587609965543375484850848082130121910611298625867535915863519863474920687079624304990322737396656606713098715283622608814471245944068656563724375550022369392361465639689385678937036120736730116719968637799484022435346173943838501887335720615196296184278013667008964680711352475633712691302875212789161369252181684621502626577465393579182406959656697048374938366391060281854685479146575646084191594362515524568831244493466866497455810813405360122853632973775770899588720844005632783641519556844716242945613227130611858777714024892034608351541720998014091507837924177025475345769196829976494826182516127977962420379674176939478960517584252728004279172356205917479814895315099891785299708711681610246315067514819257145799428431959493071351366206048446215123679982109179172252049031781389256023367718005229734086713811913297853891294027318762473281655022444344740148462689026782480931126030869354813848979812795370392685080173415095922608590929862320017536487870326525561174616989448223034125578430820376763121568380930362523132205218012692763962136543919530337229029197468671848718532459545401976735781202886939648962355640258987105066869562921327954065129018950376635931338453264192327766845899347852660002097865983033585154742460491888869972188189741188296925274160318733339362606428586314644059589026856283614339150068606255129798084407941357235649420553566396301252866336715553104706867147772810089986354399386912845168588723003639028273528086460411026339760529663642273356918722852606600884329501478995932032814553111521142466164223342528549389503361706745266420247566944525646629038371857323435572745480516026953479952947940863427722000315780457403172014190431840268384770946349365303364540357394729317987553728570375520149135593680476002713240515466073704468314064109629187647324894927520618252880113993106347054628703448220839240586200872438304113750385227690477766270678986422790001030878321486009956970452829600166392364805458995829251334374586371382588611889705122820932643825571600930447811913083823992869490102258047771869516151766954678634513588608431007179577152757487059014631893303075290356752529520549178103310759664383747487340458017480686517957690738606466852039841114231255518249161483493173024427190078584418343869045373811069296391057146483682601743386444664449192870162391307684744778465550991187018060031058925971815678036574630895922387415504212538957348125099472223660742294630095221996701753091191355466297936711781391720528761749581961544203499871148597696685478030832083179787321129745971572695378965438977155695883210223614347275681249875466245771099687455732664456640992959081458355345861287028924046332048705033357328058564310687981044663980670435504613310999862721689856803506284178224215675069772119613638109387208816161633678030710242578995245261445415416464151421626172967143111170979920137933245963076639919244823272610333933883677641314435685108714743600721564665983816355075925543990016892726332614021197301755020951379571460897305333940993245897168782539641726754179711993122102520785870729908105129808470993250676324496969273088033583157825444006571345424397693319948604306491724813349846948380396646968073215139625239028909001075868498388830654801576677381344434435220236763787523261512399252294469528074537270448785345627382577529026118904576134543497586287075120622032409122829536502723779449399707024154188429365247948592390450222818683894697810798100746139009652935620958734646997806071930663769303730289242805964492617421887452612427201008195949953945711750129800461937447491903367634361934710772192769276518648856392183880302089382200888026497749432165587910781106466818070503051254067966524775952906111281454484115620173872074646779276928950385994124122473144430262392813733707722097653205147253615953085073139956992325540824285957851944746650872427983192394133915519579380769108925076011471123775242246112714244464828640377077708166161081427405787005492957462461945004226662620122001557241822497759520523362209446329583330492559908817069528244978816185961596585480582345112323048876976029362916993405937367915885120531558289297032367456714179123519645550797571219672241438898695772173474970715580931884402842555744762018189833013505218654848760697264085720565591664672790371119216743742290425908394254525956636813915217120666207080258015740791175443888000608606720410047085860700250973876562603700298827154189541500738933582296141889170513035037516363868101752715880146684193573819004110661558187178994785074324035844821483419943783099718076430059376410164275696740808692605486945129276028059528519544955655953786731151379335347446294718522593048280640020712090404303778750551673146602120026684274041365559296336712532515066517884326075809998924520410845100446220493485010566121132364376953489014529845226155490415713776091630256318660752115525400896086657609225627264447159020854099728134990783425588407326229922536571914002834242027190815778343171416199522987578921353287913047641999116233643819320785093383329158846385400514862761238276902165611496495035028542873099026553785230297020533138054442218502558139084074746584540851547627162295812739776481735808732075646840762439344924838612224513348145410452159870108600856833014977387490796145455194186679934843511713487324427189271799871639004727000205810387089611465242358736806706704387708803495920711751975883820102755611181899478566787402361176354704485112469714966484410465438323779597302785626313263279154930088804636471212669938517237328082247412300660181283330669755856418852270621378148643882202541283840969419948692145547674410972258930696610818632554891725123766575320392906169504834937196326493705015337335613662137071265783601688105450239350594840211784539575867149349829152395612656367789133490465288687444439505318779967295042932975598458413473242106510471440276664919200085464776700706142302511239709802594684625998758454636658931581655348286372014669487112717983307457161468940672032505398674455446426755583059272304648277025574020666474452637543783434696436895213817819387313129592111420333067416396512299166499386464429002278874998564907850917496895041974392556572180198889981679811755351478613211093223397481511395004671562887330187101747940815214638925782554374201117375294309010004131020593813319425305226847777088120529536254152342089794467736618466569881953882916043468122312752632713668896439342375890521963313297514817504548056595719571823495071540762863069591771908863298474552736767242628477748398104623031936678660544629180452322365665652600116659216052155870694078702869288746937018861075904977290939977788428727723293299398768686961535353302063958107789167087198483207329348857756104474697594681021760042729249405075591992652717927573593165005398656329941949041667440563298836988868217446988452115038897947509751545788901801772060052433770274197718534574277105623281550765054729177695651581386626314500423102167754802877440992614305442998976922803463285666022838664175687938882218397808145152079052989627858768565208987134880621109100461046912306021957074055240519817329722155389616401360094842716656064123149636221966350335763510514148699758703601089751056272145084605758313107086091451939935636037427727004713624879141538914810187185911461101324446438529799725002901074417076785203747515196612966884162401022946421442218502207608622737712531324907430665749984005188607662820325602899774637285999926989510827519292459768612724480871728995814098404175779846386240108213557274999091681712259549965662998144950672444190664353039312784317904849338296685885960836138852400786550110545573734182465785798392283777125809979526867301197684669113776506617830279703347678607471412447690791041500516061533326311714585997480698248078418136887300912734896016335917424241180455177481910105394270828404606531788330593481262245920202428593894251087478364468704081126750496143985140147498591535135649585191413658790120952603875210518658330673726010636916031149740273587856346163146915580168243333014118938073226808319506566233013403633043353766635225113890220717706135546361241694894682631839057071643465022704396393151410897086341740407163784231395203807741842339749443392507867152115845475689233173562487239729256059806834319234836463688488328204281228524039240971796398070525521771630716706133253685494498975370196076487318011996165588186520020255423704201943100819611758678374576808301429719115613603176395038569887404287956901165810596940534736383631655523545856569507682804210093038624211432010427596652519509616182633547115053440849441223243211907033710459758782488797731040455163933426845765696215167213908939108816253641511122595929571341317987329746730452377571478343374534131730499716478389181561913008398934763318212617327011801645333096750833427739936312657743139198549870747114935013680531918092914559682364774315719385527594659402209966129415036335489671949997563831201104360727579160640363951115465426258283900946628414151120185366709423654710464778420532856668749433151873943470096792152941342950468402587071682548579032892025935086416805478233307067978312057530103004662649403402480611167555363420078736305772467509475158928795881804812082885431093833032133737062816372394866279882448674651288519255853577724132627723496015083881043765810235960852448790171166058516286487136153077271613434918129411928045594581129633989231861199073797263910986659464650206202113873987719964726864846637290103336247466218102498168802331523035577844802734998264496868844902138789372550323448763666167089812826366953317208025310571275179102652366410172646366459371495875485657630320075251320367605848807806999411625842881945441047829991255012651635093825370808001738860400254527525964241698788853626401798774724960054933942271600257120948117810081225987463157916391474195972567791291660517919773257368038062876681118250129163250102251828440243291230272973798033499157625843177895248155681429882323410474925500237862058431322099262999128728569874691792267961372865444830600299140624624319904397372892197398086829300894859912093752226830370716204869686807780612030742697027214732285138712808148795218259644517478457334697584096936159068722497234820108166089880936398256583646108848665446001309042659868774129980210533175541211390349361998316516692393494732621222599416303830996061091957274357884759417933184893475585659804375758379206400888192998718864177887606658815100299681096182950560145434403887294588452332693821859908200639435494596321350526720900055321252238311133172688035832702171054792234363443365169122670585918458996122241244532830845415477803194365185064678336623868322131058939429303336403046896370673633710720364210722761647800295084678025728041398268908136752987875604084432341632546222883975264608453209442482437238132028208155404274641989576245492853199455197341795204690115315528612532167880326372166438203859154062797879210379969079108001082554899276226238910267568765219090630882776693144971150698756188438170394173073252625331451522499619641927158850629502548759901425332071591310755161241727857888073629295573260651045815462102915654950932950540689502243751592164358636030759362359279413234343701889884964765999290863517638022428673883660212087932519824903510106631519070639527102402225910105742155143244805766977348873854467000202730705506999064297971935209887935826163843713498615190323627457412272469300763060438223662612243411163993425030208708234932484581245935750559605931060919284394061562814645368962709958454231088502785765323590008525658101099499532814878372351145962642475339739479057674820591582066136969515176644385885801004590060448446287088023376377995220410689167005221806869851078285724606227106249769962949157921458303723315228039680014940623651148240156778882274909167910570293581781395424064348518208028564175288241382801827218727938428651223868684327805878273699467207941283619827975661986271150179108203496870644184215176012062658820327792476432509749469901997214853841139252616922710544520206740453767933015150778195968914643566246555712350116002292614079211415342755281895076578495227960480120488033327086927724560879464716266766523522604582460756983279330558309080175320624154658381130154864344293215724963971034863153446385702095674721546646088199629695846034246168850750086237581831898342314851264631500163711706383517138511082311747406848235907904665070074992308485193280772103402666965552893383812691214091809173619344347669358746788250952922556080610690222758981618830562884929143693702637306245471599354785016308047473803248569734162062633748266254506127643352664960823972292739296898157854853394205343501236300506876008944930898679747889873149456825581709582632211267190129335546686533427463753751173249643866704399309971567843332256022815518006751093511819393056774362132505364331508725874150031525219429366159788015591190499482520095124343704075261849020701938056386938965258669120899506360396794987516368867055350841155275816635265491507232007124688318885867436983649732102904226921194653983611557817993120317029215116098788108242997769570716117197917414935233658640542631906676079125491184933551278544113917689293462012792747992751559083486988452177080052559615046526183127284695765142030283718944308616219429900185538083126070702381068708289233272046624006072105995446228022281714477776406975993338676487805354049295934320429178794605702975336508170678791838763533980419496702803856799407614337622525222930279140739237061892219013031040298980745690002866232876994650913786085618393925070728344998273797801198874769717780264855642347741513168116321041920292899007090857393902285379796168864430444869893479831664399876526407516787141038270530845423527314056774097551879908124117785675689597297965882463994092530291461648865407303316236241962021617866295229283514554373277982305202193318547336092599022328948935510233011549651450555680104334797254249176100039380489784059283636981137996912101093925683825527194387593738149253848532537873504918839939488152218199694010175033098268656293220588345798719355625458280766094274045879550099950783941459678295279596198100842134091194415176672444578037572952652711112786141462136060837886857212026021498262663248364201424597866003051164629488114817378140127435763888023723354449085416977744655182757468159889132891069035992814817256122467255733176569987394286248765513825539839868748132160614549376068341169882928435336365424777348997164151794145209986013164072396080091880386548223108904346013367916625510572249134975233124190564383535372001008080666045695800184776641700680900007056772135942392739907961927680766500002354128185132531561776209474251325146496511942769340405142564766961619874184495293727255321561782167687282662100541806378891990571823726154990090047040282301683607707732543352441496690139153633124442130264697330071175431736686201479514362903459847928436830390715827472041204896400728816715462577947793009362949092102048782921569134335522385619971152017918214341024440201244629638151566226641953382453668689349528738322940580341629365408724282577949257495648430237647174393143311896102487312569762601443075257481048315474757782253486504762378422339588461846917868530256993264631683980053498110642125123295838755003599401996706320172326060654206379235395496279528220286478620217579732136157249561375009922208228338082515906001129998657291325031496583143209669873966504935541086021728540688981053678691035100341084167354655206277542446476783932284490991251300798748655412680391450131771360143293787054508864056845640021778605367751880815335667623294248478011560897224883826443610539743692604469058836741076951189550179876776152705983169185944575820098128701045109211335230219405781988241254450428814523697460835937500963669706059659038141822075345790872320629129923808487941839655048573035098602697847692218766749937944862880073676982284265574323343261902657983140302858918006084604195182883081356067344649845211698264658351278384434839600680227661103278361899223668548244824809406084696913178632479965462382120308586168927676983052841698215772624006557131675455948636167444163161157231661637822577915078737309241076860506168111794953052985728655274497374092649231878003825267718413081887980926992583869135009352033176965382777776518425651549751361231446835745735330557095854759520550498217032785668040114589909542506594965975016520881446958064632802891540324466622884492134455043739455774818535686545846522630772379050996879068368720685737804858184085075434418672310741058031083861265341303785691782853441013671477544028714941701133198941384307783539343708054043182890601524304584674023129323609528192509846963315749394395629966765697820379407263887072723382016146867230479555167052824870734381745279684788162481974107524029692557223303021219611020870809638719422735725897799028455264123240225526377140149262705490622359548636112774069968722378165915363874762288565898356583394339129163837336666162560379431175236835591529545355387998308558955550172520101326442247123916114767074391612458523299250505557846459980623755626195585391878097821712449872199183670292026035705353444065241361206960277668696219635401557007297182580606341932648399030668460502170891975619945048003399581047416348800813792523777214091516821700565269582571613272193585694307444330563655999891023316992686989414244438224144884871640552918941498289376202029471264214610407144842804676390385808854781499298318163295080922018067059782450312896786117476470838607589331408866835043454515352664162377805313233023230219561485220204758685436444540144772699327079561268012148177708146000961286288068067150673293961590949306224402043546775867591796695192068450238225934624025991230840389904079751013179685326187979544667761179361207774063528811947942746571233075310212562128246137989624394101503430434329752554118417485517408661179942460734499176905592660010173799123241264778125617355932995028384079081389836686034466418235534720744104712275728677605834773773223914836985787389501160707028629246877497111446915547591241967574444614849293255397008160576186306052909862783975281928321089243611404943771174696321628824084145246163612245989424698077986394637327099291652929987008535984701980439635599121099469293246211114933195836847641698583147448309118836201199153059068188268798121716961071657095889994934753040047377228451642386289034322162302195142959467970105325060157017516789594337680817412859685528113175372769165642807254279107257929470591018588690454983593976488495223887836253675082016881664785114416329156754452611307501738005030503133722418195119545405255585711978687034994317847030927023973673913922417814113864865275244661924824079818778595042192354347887404679496816572269809803104830357100626303419822230676045562802174834468072726355286775832111513000610674513304210411904859728503973639406864849728082755263812316305118968455262573136578857066725660218600157023285446883737399049032903204236329733933719550658680177997662414169858614886397820757009079948419808710728796782134890075747717163963140286259757858492217572693153227609542092798449443973970071179035458081432484731075987173381323333925159126209367426486663160951141030829339973989559592432130079012155618134985366429552350027432454443992773992038161259649193513609962128322255157434097134218719226001200590033669646025435353050907670694285835035326666127558314748660472653448030432130270338122621987632431008723817040782734785683325535364764998094996675199543792291533313791880558746242395888357505688904042948632696766805961230357356460293959889030311153386302486170672237590309411526100617250873582697290604611886586236391830333785668427119882291911957589849044429119955964114509483279026783817501297945612588546842168072888627774522480910999521058232125354413601602223839216851485061243529439421321490828768443988303259351109322314570471924444302171676097528611596756266605879632489570915179197403647705489608445943396934895532693055464444881444759363810148004190758910343971647589869204019900416745665701947115987752170097426548593457632078208874521952214804831636425278056554616185345168456749588906844915247403586004000588868086135200864173170042286155850824707407082910067445557182092017074654305984472516299484264437449529759204080403917560779174942787590952419452620969330601213691070332461493255725574637908984447799203754837437914329071058889225531568991451335907398288021322745834441326952557099186738361020919484494171952695013338661113216997844440933450049582465749684597439113648512205935204561581055231235072311966232547835898768053217133974741076929396414828529249188750066160054783150239196937651519316116498993369131437954212125517938057671896974355138476089626473778839356122502260282756126596866938203089054613655073224986069396292296019329872813551642462669516647627455797182601273744324478474313498321580551559101221213048647201049009762372664058854091396687141979758295998742066425851565501470534846289778228673654160289577882425928000477663819272700600319601378293574760040901818450110382199920311848817991915713701566308395398844157992825106459226351047343952193625603334062657674267228638817535119934684331651165983860232769328712584678181593627235145192155599714567535326489922052249815969363342523020950309567103734049202852463130948979613328558723771314770601459692222864372800562489165147101644516698407835868847134093352703439080222802071802550424395928084542534685848345133447559522063655259868267552785696099279877793471550945468796375623230277894015811403016892053962117982965556834441333378681032577647370935718000452837059871469604051947831160262166873374992734559650633608863385489563964935884819775336531117929394835321685755507042575414625155515764022175029983027154115931653154122473026180043466076940252330077497423488066476660417368136032925990711584182865787040166744950675613958252592566234072254206281564800740557203556621140794032845116468728806503219267513730882859582323808387246764292150271083063873802031117067427005146789568182257793213052933728729081021147668908604278478389021902085871502100400085807865094751187502482300194413801220468223937100424301042308207086113180617264288235090552287201703530268246308715883820909238547743755181925767589132095367923855136459611304813814193933984673066481146827935148191558980859827823925145172139308855891157449211431348886564453064543425696170954268088510441818795606440332086561329980447691150493006272646434350027798186211876114970790524678369124171883323810580135349997160394847295687696021097807972811244918075609234122784108161232682534468662629060036784152727701125179547325726673116081974331801504262592915233523470428899242793254824992667832847601334034764964642622026316097215447727606315990488843618565760675835777948542128887735790440893458043157756018088974533283176673458823442023086089458972945251314092181383665855639522447966412968881404777901213474898340647118190924137132308721356102601847147132162296149559007261113801498878651175967372848364396120453050612365929256170374184765726523131485654132184713594367309280250559019411569403237751441675319191528004654440035445295935859424421887699850274641886331299722082835267489774023170157906568044471816668849014979232968255499903399324915352842187974831482084714042344973834577767618661001124158091074347365035392252466823063546697051042799412270272162223142875002857977606032890502977232957387149683720388897411797851572767360341811673662317981278018639101901310747404145829838826421487491818690674236844173844649355699240325711029472289239892253534739412912893690391169978782635350749994005871519396038454455756246781050787695888387121495297296819718593830436884311645013455731447311765161548934353727164143553192883875357860878381045528901241892075046689245186946514142680237950391775442468911397022094017328690073146838400596726376671169892832556346429111501950344082346826264868345823297567606800324344828472362449844957985549767156775914186158456998376899143667885897242805663800009032283973629560662584272181231362620936386706121971018289214588170070067725778793221838327780844462392755979523939660215423962112527990226347913588371952175711491408404447681596704016109710387427715899292148339523303250878764762204661271796663691854867658706027348131076641974685012194917730564496300899717697293466611888972855539867035419743507842812511293609108819954186292491624541561071274931690095720840124096576162361950177235075845322845999048490979031211136122825737553331930140644823638527825618151243592029401950158969283543882055282032594661193604582584550670986467808399139790994063196362588032346342885356103856610313164040609065206904818897658631652417080224158181751805286903113321174061056882815220617986367178774682626131272749186093299388302259507630858180206512556709310375553228211629490698224009630356375955735010140573116027613732137863772629630016394027535524362013486532090718081508582683506754748819142716007602791082810061196844492481242618720827311475282238279355031447995779297178790420675180397500550451116249634535052023422489837811992190352503816506738736315348254020689324418665055668401195281644026757783834624598141981721564781913188878372719731899030970813542906229521811932036420729610594772977583495749041657316291521278466903870504881127997696485688708593946973968492547787785866517688978294746229825022456053280666024498050449383767694306839827112913440812678880636135247136544507420310705778795231723504384554872922644896054690439656023601129714421161346774644401626889432316928485592685406720494176865833450308722305623091443369235936518729527841677811053932495675694408965519771429676481672105287170549133650180452763117766060833653795920341512626598853453175730636219169380546533926453600156008068533941653455590610466680106196878662613682147222005890024565059327012241837896643210645776451811629775825529841878183267441017892517771529479938561774971260087753126907144935264351835756338298976719675160827299843190036331372848497220361212867561022792068947289046146268688821789189580538597086784747799915768352911933795490144929267438359003201607232620695842051566792817750993029643879953963437163943786279569880200022466905650259193375595072691876833388815947492161345527035123161896763217157551633469129213044301216286356342750613924500635244470753402087690138702868383632528596487387679765404833515134747602074101528115483418807810106801866356927048088171569601282586348732458558814718915787941393192170033620371996968711169038454935049717905934500255599240411456570501788900754543353403745234520720591846194828246965875722488498262332805432108301551429095763410990902975533709282272433668628758024834637941534057640221653743902227319375303110894838690659163115921963587935895329336067720522769381425867062601867119031834748099219920783439512093998850693391202469413640029242605704943452312956695255692867459362212780222514746004597032973560749665998065318113249174379060522344878054876017645050917288216042582402612500921608553487156183081251168507445676935256770610443624685481716668870625498380374005402416719189142698583677295168511468680998178315315127969308164567435881524370139157783512366528880995083804821091190198326553941025920739689213710590929898455636569820081315748149924907678294124495002370817070506596069001652512922308184788953221664133859225403334185709563719754956492328966517531204237668692467711059356442180265121616431479476825344599371869992433193372191122760558292181443515196643705681384329319604432501429484393526418492025240451743676487893175941289687552940528875329981950440777770535651055472658665340995702836411999664544116378797042545348178259363678759330870280678872845815938833852522286429126559862880308207228013008335444245717699027239085499666619190087421014490768927717005694653637011233347142505941773554387103636316027780150837021652488096569159714498471551992947507695396226868292549237637108024415834985094363169903286212489973347609087090429540591298212777051283821287377018995046323929257722913923715388477913076685664016798890451451724850303605823309637821489128563384666778574622500464378671530492235994357592546590926997818056020885555890232668273669742722108130474498528609465070123766649535336175504872031453086792390564473520606918180027349298970929384975786837147718864667434611519718163395059081011386925766791074661584408294173669504869172922150505948787388065826463897238092157249509892701545528627011766075691673443041912990859718070539364630509182329999960768992429699680391112099053853693981217470442679929133329530787596703517013439394939746779273242738836025903904215889873443060910349622038219908535436189402461327616721883614536404179833287125944516086755135964866819415044441285331116414969789892895143460020676663417864775201548653124142629049608204868274684892091736216626309984620665698083937302653204201104069464844299474191816789385850476461274598838084336956296506043905781987779161788632050229872239649717227017422965839608025359108071568140272113326847796619651517767050829204586196314524899494253460307008066042874663979283402510720041102823715320173921383447694237325818930049296775296015155390598942633483949004044974015132658154050335981257310217695057097800133567712301802462674492482966607043816846180484732846449830426184189939872240502696737323819280176124043460443921115238237477199507296259262389971583849242777008158742712962233707662736879692975546649138598268782502686180111214102235300687087043224557733918577575627052183042455764895271010151666878897990317633767494808575516254246878326809495038666910187013418502518740623084778650826504418291342764069345395881000554691222687451364428897197595100056803469643352512736363588402957133969770119696715859577198214138483153703617536557371900015000102600277328303666456139467439590323724178278397672758392974488514434574933947131159577104136537500544597822196510446894568667326683426232377159887364355500800377987286324600053637683017639007059857840442460872322568825059533734358795908185564538879228898442009798330027970782991934378370270490545570465784186652418459933898762862112971653816202622871664519545718672173021908745532697305661930160321230107352286137970477756303749208379329925640733936150266822430907189333275422602231361321582956923693883722465292973060713293869585060010284478506580509025970077569636636430629350105760043292386174244992211384167368184677916459452137131925825281117058017695579883561446109051107231792704898594176926633378711692186673434289102485957143579526720399689576399061897523857931693879973849437159423323394457230360774340463553544073880560209754725297615214969786311343060867357167661709781857014465502597817073159804637313803299478565079638025579795119608669805095840485939044187806775362250601857958404555987855364473204622513664181635583599225832650333538352871501905972801324678675233607400433199535066991443913039441885219504116617959696405043810384865785622694677311897643247106748400893965159581107997292714429555785455085146218497024917340905923495317082305694330654569172383941764885245782260072135891888431142129444945525477977153078523977287659433942073731117485761366227934468096475456587053502927977003533250642118533555052120425884854751379977544218708687894564138244178977528848828255219000091933415957584900383885332097199623600184308975025897267573411237972417598491547492863710435704252490686458006030649790228340744277633598657660370980782733576926646411177946868945830913980089454447014104707233468780350360913882922696534474543192486172664881360075436367028914039742350525406871276196673210028796431334638885034783164174687086963280968327473215750176043424527996584000710953107450943821204303587423969440256550376335106915849085088318232301964762529722982143030261786038155993379224513149943459444297831656304438750649381524041902154054422092354770090141019777476257287139158663231572464927808115119269125975241699225967789143706854080521992707546189694534158362116541048261372589662886262881462719069179948541746471593902785692864583911140680568585282742652841612030919697165179936148394135595635826262087461660372298052158012400492400642138604084315536352262017227511485644444261671794198080058144727203126947208738425118591806734601597218424190009069692976283578293891675105814136913568467191520419017784979832270127836245888027232545064611979049553983274874167231928137539336418782593263618773368277729847596505010786545812256092197980038073773896555603022800466433892291022216038332563132980003258339351386217388763654404155964188485649623048689082579137129344825080896539966407877610279398774752029281199295562581182037666679940267513459484947072366173568995475015155502522016792518690417401842962913652792145600323743494461342916950847551023038484001094045834599779100368244647699908359208285139726232194840775767008908525483074891626307238144644776486652884806144451295252211350522416050628055031502349838517630326255976537456664714466363533384790980642598432335132923943118508558844650442354170133790266030560519060163855496277532331271761569397374497932351803733654541548557720393085109553853959607973431701700319888569522445694433528026895850943095188156480444040219572836585780102041483201993480773646780905649354206546893772725979198360890543602799193275787017075395062091890381266654676912626085668843656967883373467419171244204907745660375499597940638159090109800177281329735900670672677794789464094897634405416074634358359971808484616912867651593298022431462549029999250832000247953876556919804513404218388817235155030288212569043913952141170137612266049501390976662542451642151994621959050477493824336524690928058130778365703184462882955472773475577403222394065365307480210107781020833782887246838630006272238858271739855670012370498986072936482913627841482169679453945240345412685741678350893709821412734897194047628866154477612498385139311429377465760752641374822740429845105050492004319391496899288795522032973458461654724352177376593000535162443129697603484046139924007466810422229522581236965692038400777485934566886197289569440953138304441209677890676034261002499448209927659006610213341178327295585241663083595733780612981188739100579661720757358036013474794441212129704531065809206599850946359521725947736706097793035271114723533820785264318561516852457996662135514327851612248323610086143085551938443598363757378468606698652342046422138159770555808237558383651879553590572504139820634550538180614134725028053384460670975285967302352784881735755214638943704068882431917628337655650372323466490723446660307471089405373574811010069542131036610336842764963524875209201482461208868802924493079971530631217672619530199802314305150314968633194887375922931645160890476689186814376526777323209069922472798863680816498707926862298997397141756254621543233345352787396834363482906172358570938206166940475959136128545403061542789007443333087691682939144853629359275244337056572133343708900984256439304686848891076574573106355761326803432114717832537597369913958907360326620086633494050498301816593210639934882331476908004196259778368240629537847267995735961695058888809967028146145752692815368851912844806927664281995332247751457178538545456894581058199387883409098842233103709236821979164647978473302037950462438648381455590762311276814749530051439014110617443570930170947146865168947426902278550761323376431718531551175816033937022243047810605595856682140944290747866395102604800523097350626175656718402000240481811197666023245137893933061711131347860765697069398586998317787108133828074264204745559601199060189353887815173312815169519957403113596032470041758280300305074171399889207783139782492992041866838711570648990183947943489598598627438105930231008968687477277923005080418573935207222347432430688954166643751279304717412121816800051577353134825478181481153372933878361179943312290505989687328870740258649700652627703471959280458416899961394560478046714510928600990146169223675420957627662000493801648612877142842380487929915940899384257521992686099745172252913318984948991581702271545144201064755352789854511841982233278061702050367711496159945212733659667074582957648804039177241666762376184976448401321942513567914559445196110319225243641870927802805274898165144657573365488503041433347662528241177728419502035468808729599368735388647367428249765593661906507967580360553843443644271163416058636375952272662472760985797804058073493040380298175689778453145895242905844894396452396974346833034375227613403045521120008160324523751331149992862926107241297962930645332458597980630871765180217871693998778247979834641261140354538781640614242912369935667535887939017851437618150378247610737143862575644094588213567395254616629210753377367699415463449833845664000137674093357493400517811680892655803172855535959414303781757189816166019494515716358451640236330865315584314023426230688898107608074404708541700713629250015359803622658826208005556541025409761029169898202526385259562998418338707741855755199556715359689941708489699644504484168536579876544926107251231936119229440066212735479678072985129280057492721112084411813457936335026614600102116228530868630822435233392548664618579075457436921087567678034319004566482057035794052459498213292788234478255665237391173172591642610996230783234750214807456867433254795132142395329943491979631042257050831333434545748557239432536953274525984039504306848103436972369163661739620102893202523346299513353827736690321066850210459425591817178717060801108999325114363648988726011409438757663575427927896101320966489453193634857000285464554922745131234666315175738985644456235491174571846774920216268649322477312908396057963849852683552643633015250049735860619340152901300529854417433633842235112206754839279860785195928956123996070849675472690731409649756056487837114059141215696880543102433741926619121727400959210604254631477139535091391366210022318483780519825329743467244662974523793491277173887177964266467559828647051186247347553609141902546642245711599647662025193207329678841155317458948584431029957551488811069485317746344370315252391073697168893182947519542847473751232228801750328244141800858464386687381501764679458813532911241907479929876009740064317445288418661088683535101375495048721769168334549001506085140237207539937054193384316526236884514125258206886548799966165388002889112351450906905399245062767939122515194503574841980423060337607336373606112190656108448915676893306015392135194359920852491649535334108171824397205864830022124046044413970457599915362890726619911866504045622893550732615893569937703858547966705512333507107194232109147029248929340353231621269580188863078363551345258166448350174128004936473696807021822798499994819658664179901517232889596223796388192161043629689739431752935568589695069147218621017270024324100340743369815788241292834578535637599632701675782908589345491907707814037213743648274625287498516619311154027751918986486835327471499027350333226918213324485290379176638862842445455086731370594013219786086161164930807273724718000222168627352071199760279856268006650145307463178353699760290991767988631426052114780220546729607959759453440454204688688042364364263677232052441575094208543295849328681630974135652905955706671403563306631869446466534286155842058287750627710807231274983891410790000695642438329485196675348240803890760026829314900581732689307761544723407980286663831073181184574768075759330742193087152284455057408989881613263074650422563976994643837341501489939461951504247823208727504837815188795355500910160069038828965403938723821042243213563202339405483589868594498029941188388136479019817496635383359061560843479799968135907934699463182681749059221550506782983209601900697366166774114809017390363129652533680886612202878886633290893539614359785242708961273232074244624335045582099880130442962580152970463864887054953667550460078678481254431727020659048159404295445589787725137683814493269660092845878634468253494113203761019141362612530261670701486954489468496305013876352508793446577964378649003560661089539700048547845415018155997300728711018239374470298253396532800665646293155306074628085378700237194427486304600564174449128747459413049825286069932442904024254508092829078503244895435171298214077931446631370928019804028231447399490969819244851298738655289804934058050288121482675213204459990696392770164721836221788362146571967041117929863485972863540097844325830819539717198915127950884933544462973571919353349441727121121154860244673730544787216711881696175762295959037185530323316420484612461797355681673108432454372674156866447358270735850049558865848800799173895391921189170409658133722528449780714088896116294640913029838784904111961732255821777120018952608039726678207006478171045473608550636333928791787755531351413753376619511146008270787223842811658511756603528577160462328363991135554091655488305763857614231951921925644104072548029584857772285327994886258093827404221576339072809241806190960916170036250163563019240809486208788606259422626357257958748658727805649029770680666962543597429426415947244357733173927657150601865400787499144902259945327381936204896053713587854058268580344788176266084878105946636066054863678672221534235440666773693352066208390250735966041120412778020524823006146360958012286841817519638324872080110100904450038670100182285414540280012846162063165632384004212844452728809344433157117354325116199379232547901364903719899563250393264837780837011606841053545788992560369808511730970793008047091959512502149193163094876661236285420156367878818177197677142578366082308301453240306837575928142635205831707441871497462739991796577410438456061363958744335518896078030806161881057693496315378207203806099427129528506437278941246412838136346828155024255050580383698883940591981683546204652435688323694622050516352382630004859610522582743653569266575346218761779743310065220336654674546366992362010619154848725893588342957716745141877584020971978538052642040358933074373774997145745266798170595413692794081047589381695511258357330491875459622508750595920721635424051552948888339094843488463696912539218123506535056271534709404681782740544800160517291801660049772517301392347858018363611607272944609048607789978498028395586800245672597079647488557804846541636361748574466062505376727019129565821880481346018829336706998666563055136346028473722902656701917544604082837729069777823451503496655092263614358721114918417854997883722654300017768256374936035708087800371544062528774830513243744580224787784863982603078450799371534786203975454890096819759067903174609879903725197858903859525110581816329200601480017067541505560442119859038411344376613931890695859868851661010268268124027810059327778992630639793818467639179638473694199980047591081932887363893668779000114103319945215391311402351713925361156730749551629872942404788718981052788766287590160498312055006169456005901694777818616746530638563742911692857658518181570291381305105576483153183242421286297304584624458964012871387930779384410022425535902817615109575319902466252732212457703519485485663313329917200751117019803683341038937638154377989293652543972582778821003871565635507623506871348192747452789225568870593349612985060128045950489055336358903319690812853002578780940172018514049201684581299090701456365177101885455503715863609356989998194143063534097714083430509761522572459526702538843715451262894763899835652188640883403599384429315722939228217462796734933969175183255795016188450491232743891920346940723389851540669664428898537644774047726733190985911125038414730245902170627019234419943315920088605970504952478831976202622414720645211198979438834924634657185787913384007686894533619237155047321309646780249532626943226485655895035095789946266331631846320873834626999238244791929470859097353430570020973709715649552025931808398659222005176507463343598836956574575925731367752641095630296562954821656836284714667905890873917692516558097351623932899320114695714096543625665356628962067760863016716867807700291864836452440492948395974607691484151508846990797573440484870906762164421771529878761081237826493555396510440987325173268486844081556932793676145084570462752048695194185753914553017607143491329950905348299669034502324413410930582226044942925638601738549608711207843421769075622416045672063565851306974591676093867286898148420258877481526738315025890852972661160037764540867412006069362938181444504136445115114825009173582785200617665661361107480608537282849568931826999636697195895213491424720222268416318522371053272640133704012007190604334046042720665993550374255371944849796459612926411642785532078637412968342567672949845275319972289595564173997567884547591737380811857878228404788312272572319888447979480199148392326208881224558219785277357967160397625959216856601062226450724107956532296071608305501856457690462353319669109121329042887703039594059634775849724243688226242488121547445560552523524935132717038580009226796730831910234814625432800073507876638844399548404324592010739962956391789936165131360611395706328168394670680177522750045522891099750495793649147360080498427884971265061445124920301790768475988828161385278791709478186030158210782847645166987641868571206821623715899491152942208514327129783342776977601312680515936093576317490472273699335263406586269626156319006365828542516163933609609750617138332206582527021307825047841195849972001698564379907960237492852940930816634729716569834173270690985441658093423537179869885553605403709833060658675475069033997570279911717289860492548025435028415751037393052373426736344705090084759240979579082327041860406255647779599955409621194769644291887030037353350552022169502076942603080334386242528644606499470566714467051802396382889261317074181184283653528283174925815217522533785271792660772709322058183864766724521656172864940669335552512204418853677812899126314360514988019449833540715048919734801244345457207799454283864491576038994475740517587139807331032229240192710397256707776006786645547214043594524508252638890650616251076617290961619113656833417724220159355606516139057669724467277445129843613032398243548939589885303628781168401250078207625354034156453434158975383616695212877997110155293863725547150219562182198839886967056960489946870764724908590965500381356131435261796859222322482166488022197533441264902491868784030598343405765309820989757302999569407445346015895510963667452323730412085497780004754389951358212329815510749881693256300209810134630622862771346640107788344010937755355601160461966634724721012238690652251339021429964442592933797591308283793502791102348252739576038852798867187675903659789512749215226837559405548852537901399187399272210014936289615247224103453266314740816948446813778673403552330946591030362510949982222973437604544024087211758003467294806913453820509018437752163693527494839004700930894116092342335900514146468560594089636985569394327480170323208417861951448147013345853784506036684758498696884912438919812687859640539621813520866288382799544136866579176688570550743697250657735108136400992353560658915841293247174306298119708724156173435072078450528111800298009952046424713935337434099268648618061754918351522259638593122489271944374764501993068174917519413282438532107246127592800703997132107586002652070695670777225229095090187590695597597225055672454325064305993968684532664394990820807354896331865053619747642396405507592693868943837533760192059780462963344493658607074746100760163338006055468929336464412640465841583210397433092602024324574680810958903653234485614024859302586155224187004043328186027391042931295166223479755282284252167898446322532685066050879085140410180673602928897630315268388940147872345952947080667256826501497410576691738737245050071655210293658094996085842935584576612193583480787884219355265091467921111188695420136890939802491921436974817165300950423036174981860542730826557714668353521971154088001872192920067467883075591630340897667077248405833593611494295304173028340599045462918342154776659167740770804635106623105892764393636113600525181168728126236309447892095362740616363610534812139572126130634415549338144362939102208020235494022491768439886027388271498123532562917827016000309697044251805693904400681994665337416353481660788546721561252798095953598262578012890440545393586642131341535030059300759267753999406944243031246001816328638111411316160380603791518536554423883158892108831952720366215904790268208855314986055663030967858619974947182917665725082265706064346372360002396029845227289689603408709419704664343555766325701261587488421549547314409523937998648814088128310832139301619029580093676148094368585041673841697223733159676041825137686144317663572437455669483742726618117550450297081945186626201774055324596131840199737724456111959178753431816578758886403066039917199633349274183453209616917515597816581101435957873614196890854764040444965684543006418157780895385302234678564706872653416039138826666237294148545397028320894646240443233953268453135197385135345775696533359112261321622762633632307499659979895030684133697554304227387378169344939311944040598094053037736304312798912806905706325977206661057562003912057637530192891849414620406268166048845189178003839846775248860076861745164047885430572472444468098046496722797348347495959871382756327814906229435162549192491624562909601873262880762432709253013977510329284856075399616770238963879359813412172121626120222096189609106635346154805014291624491666044115035979122967836162355561916677234801361615757595666064193620720682736179311642607397842035403859381479743320045496343002751354695321069128917687156999713380176220096454750726150972811884718402323112361918782883375082088677692552398139377499844656766821458212705612692655269768073194613351360654101335303720186539863224048191850604054942190164511545575164406207802878273272661174781019257925223202714870570751752855961664839772460410069020652194625970385850868089887811686890559064999279726274198853513006801833219001529094362593066560045702297883212694669507268641861209274979932093084679363466730894328368800949632594920364946875308689887144925987277213870265694697650325498822177820777397464577887417963586849614030681400425172201277192103897893352621911873675408254542147874255560428817552995037576466631773598976669633745401414770894400619436678266425601229572906009362218177206908693347644292504617845036048784035940152041188305542133235856796328832415297263789100041940877768958773897245079145844605647632633182882114629818109929012505976547173285777812398297458932640129483724369237427561733705614630819418956869127771627042246943623920327018137281612266274356138573855327503180420440537049987236132538814387389245840296897152454593265983001936710835548640421656814638127216630967441507970920454180867259271082846777642362581083417987901529605397447515250661615234729503234809554285793038086749161587564438224560042582382654460684304082984081471344874101745976190652042032369992930244839581840532686980427150401059512413264176904516846759709165585049984139652714222786681104146729172155961841159302625278321713225550389362096190508680324027422609781843302375992313009209061286089969849789348278068861158362134539147655573375378858659054639215841661024926629635225714127241720329333499651281562745585414254359120982237706127840473842702458001142034397716049072706258655189058382175455210220198266196283804886569880057728652965867623210953334208722090857323632112097693681460321454473243477199843904997426859599829130533969718414675619369675034709178799349215768093359382105780080126547005173198103845627668503195819476843469954480659288165398757242812464205677380091906792055013696542874642743101386661496830740607725774193725441245541931850961637281731522882093140914612427746563624321890582459020423224468375559647164142080227476677340119230529214241011539401922298127891756877872114151149917214728837781068468641501507949291039641711697887828710700714939362027405876828933216769407268353201050271555166277896407920774806607192186468851136797860853565496708575141740374022144117234167805764825897282951077950400048017570279439353166460925542985358088291585316263713847177426930094655150079939888417400943569131618901887881909864253734680784186068653247362229443696894529757858349710447118363911740494065832463315836953499453993417308510004265341832810537304370582332552904949950081725000776917753387003861840719068064808784355276213056369911727388604229801047976312774906246084227317820977257354030570055145549731613537888229932880437376306336802886160306379997313980523566644565890256853954159271826539080814765105551205098304510145247102281775762814096604833446243730943671270485982717394685158363819886647112559536270663381983181920684416340965792816210176760560419132341663763736177350318519680018139427086215805147601855771926714283938552175513982933281044685390945601899622821469519318895989547240787548631707523144672971811842439992503658875051197159129751208666464359425977867048166587503012246197435230828127134862290329269234106840012983460710401872488500715348803868145351034252742182128632083348609343232679993192835210085322228037619351352358114207339026631509925301775275839374111971472826486969417420983101299018762424250073844896986411068110949245237647964377497165471982027029531373982804631413880505370113681779802366322833361547166088298349553507152899357398565459425305033570769375842102851737074915712224667719929493270758892294364458991500858678380795906496057377894141902649352488592324739098693246883467942576790547929373091530207373797807706850324552555346671331508285918934760732519216712425776801090933554958946111042354768163762542562850321309877315391787633122329468118100205080229959366685650627501847545222612179519135882274249675752597304987108463568123556598153262814937124915356808792082435855217641109345609834451665556181417842095942981909103624694062963671421017123678452593625412071368371029427177961210235459485547529628044147587102730932139415989658374582200541836640114687968686312906164047114565731263055540947597119408750803637826987275553384657265294797181153755761301324280172149261421169142546304417108792792040821444665155290410127464511464053800338575692213501867403142068668082195294338353989857987881862112061480246798190548574750936862178471064593119759379579681573493250778308805613072085384669710776359716300927180282048542612996408031057407388184122171716025318261968263318578094543603100523843087539324630826644864908708725509965078009834176997557965811514944021723927447619458681276012312326901389192216728687631472461019262406730810808150849278197939241998561007781416194215963231099191616184291496707241819160573881135019952404528013961963941349918146988203908777279897939236050969603912788321524186411030538429578725043052010273102076581573761523686378617071639117063237904594002708809899087160064620392942949216374637962908934371455973085023131512107390177641949927930813972789564341627215760665613745159582014524141463015385610594005281104909968803046089791360409234725225222519632473432529167394189986141843785936392920061828377661529827480969140298798320353352017882106703086735766182987017464691866330030801362523174288986750790749057855742091957149775117977800704275733047719636131342113155621345812776290959872906526220910289285711394148451548075083288132257607379532611346781690278025031445173237817480788463037968875320987265132146695467571883285230052090766342321234808344688723393431396846007343956832525070619138173358914827771233472686790079257654728123836406511817862127384769437068234971498273951899094669948194226001304756258586316746353283770299341724955118867453656923979093196944783826405548086026242936949929444577381849770703144883579974600429740093479198290222250257504945694656234771252527611726497085042981270428961478906655332243670824325807576742558773000047062256587449829510139687991751249850518167419786363383994319787016524489768945736963325244135342618213997322522313239033280251842668157697225593563132101498109226017587989877179993026243117863909723918468247641353692090807524219157912470331406080703359667565067873156991576294349894072278387964191723154831588347982335461118810573096492213445190168034110002255008264585650596379383345944728364913332585191996248505030777188908491415551366683579102425410347324498985831384213081480031469379429311782768968452445448909042565559275022249323693054206827198221899079698633867461524607285871394781129803642296136946979422989172641883096962212560730980308478671256088623278952714237981296603396907925920084932627958570742076395142751135411548560836326373153554599001953442353293765075010510435208847163535305631657563191149967257985596945594628606053964560171350593844251648932201078863914241187461309757922120886111908733026487568263830340264268156568963965846324527315342740487698245720337660651905339494300042930187020827676186474296113387448501980011470740673316813414438179265990270204515247149274625400035279928527744034555980112424024065000980498693135127405163348801892711862258940305129938661092564578656684419870218721769381922980678773900613529623896494528944894653303883173400946409856542579377723452363486219827939504083461753358353356323297793915410954146954692192823809155370937443980323660329043071138249136652849439262839378118525311077945199591000248054099533673050672801803758188272803914683197968805625319567142765980818220870583936843566742117280721609181760240533454038333306566574475679988388715330224238779054039072390716042383897715500678043271782437639410661158010396248971977209615733515693756681141427484255238416686238839896643680538127131209199169677478786861649034395646494170783671425355134394421555296129032545792318897207248043587308049648419016243860925182817878122835959633857287109164537163875556729661939303243122120211980582758105814343245607699384520649119778490138077245117795915057608561913296916857337151731970877418003712611047260770591641372030797754615440611376618219102872311791521646197028532043225970740941056871821199630083805540969311220731736340379810119773801042087809592311552385990245371200168008421605813536053549797235748593192904127720581377481227807460513280476432793080941277515430812835113025725087710741265098095028829553962710718627006012457949536155128480802038225243171736397140690401540929608326838892264909375232367419310654244684826408840816397769882045473128821308816934277922519570056544401436922760873237759582184392589824769489559434548105130372151511824550315260904615113013295936568063813790171740996031673355466309375291109391461490109974101410113025704076818599746578761739182606865989366645872202172508306968371104471650158613089236403431136821152469020540972948778831331046427472468227133244053680673998385391443523758523259178359910882135653409144260512136924147582692751121975731296131253357640693220794049419893480827061329837887519421385364038908940460811952009217926998771589966459285634144558326635896380084026874304493122662520694048848677298653021792541976893977536697569097755576416751007148331712566421538036711508169262221236516137231988143131926258356147993860810729984217859699301635368451251303126914134980728085825671028277197597012329029720671351948326936227847160745647065825178446299840995644103804918487198377789855036755094156718775930926974019816264193528650806464198414253509345640113143227567233642468564062050574556491578554624609045117479665717698993232770127449746188813072525706059867258689605564183854101365754852226422105737013191569787175518284428737447201189734725043371578112450578655717317755236235255695137746036629280858923908547065057026075580533883081084217465310084869379660533670680419296695429181991257468733288204219161871422713770499580290273822387837210511319197969966634622027955352306430448971464199319184092393132264811259904721846155438106260382066504472107652506513368796276596161084580217949383203984872934060664652773924247641620932052322462041019382441553833827591608267183396878613455593186918564371018342633630009975727047033051419654205687793585275968298589199473557571963192736645560316135050452670033357779003245556568700302956018149168750203478932872780130602209195118867763322692554971508091909567634069497271232312972437068543557031186110659515983748121700072623115723466911754111357654043124331671888663910612859573416763193518615707865108527746410783467006430817345944335030908702149708780992301235632711420779877908972677273479873807025486157607455285144205073069752732901656067764473281420349935262920553944543847297917313512169469104975406943635904548293466701022375927587619658323428155689304248454528136936709947038084586538288668328173885652044457013409924442434238288807644386849342304936626276174259843348884597153974853758334055035734772674188390934282623371426289688830456039717260341989647087447539983201533708314933234410895032758720248119040727949285047369339306352946066522096598191040599411605182755336956815235029331925915006498762203167385908744391673202333007107526881796970362535985312241924412520607064171447281894934955143005067353990418572154572850210391701284203542945780104715847420925478425256178319676573658694756872251986675777243525133200619308785205297382845810389917333671548641491441395863269466119035087534094781235032199338049069565407515414868520059245514699466233558945896841092963565444508752554906776237617593200652034380559352944249020748767897005362351231838162782800294612802642667757996125376734746756085126449026472637644196067544413666390783879553646007044334059773650870086052601843653804875414982427258014366767992505275249340702949074671741222175814027336930734203128670167936597051439017122636241587836626134872198149090392530554883279300166932613920928639772433565547807588116634360339881643114342250926453644174820846086417228777350877301038442765558740114609461127954038195217880503550547600091087637427488344310971532592364828833134228221506214215477899452462093740422683549147032748649419519788933509580556362342937738983820843224708927564460243196651587033135634104911601530511200834415765929355248485519140151524487229766580698950742924978934576191827837663652320754478367117256929223203597652734081173555344733408352329885799446200740024265264134846453327560714290342348139344122223279745147989160908238555437824007193622171291368567016405746471101249705512436352431535324501568226179522480407214181610291041382136450129299739211968913160303386450541649416967516188428797360872322638625354452362009537210560374922078739245213863332196626645821178642540913228899397092638329283858543448768926205125812035286745388622446841978673070884887153346090971437792883876734816430236797659612121280822516096604584163039311429411933919561136239008268923954217172877866818434665368279582272376201442810110990155511429299037111090143331291609072917720148599254498865946094450516719038787348332015565567971946038098664464155920061460801793299013786661126113016054457074010820201339369491844061075759123722854216066199225217491145916558378414671046643504823910775696719875886805494543211289820796661785232045514035806044960947793326766794514488430885256230275378100973543932440138479812452221149127942224987993531128523492747833726617873437789268922309439815233220680773839787217443325413940940811833393148096066207562451661768630138207965785499622445413240896326919075244405159622877247345922835209792731508968152160342497015682150945960337087816344094757529924454971474561704010972974362510296885741539282748100723268964854258174462058487724490506804830404969120266815977079617143649021543527509542626525439556487460590296827648810339108521964053473370614529879676506904325962756853933102930979943956463316174903147632274692851953370066805958356089783019895609599379668769137909077610128162585611792262988917735702405487347470873463860248557711350997642648104344141799655397683844705906657350326534307290293925422271831443747484855276218757973182326913024993665707667839007055370654274995915107733469185831007020167324819421265018634988983535918027617990202514503619694942697951113219153499717731006036948906582162346396969332120220745702861726684792433397932012155050541627466135654020001946455439377674137614907149451941714728178264040550816992414122625387893880171131458447948160937355135413437582667495024637052711875772330674640390564252665654323648683015803466913690143254485140023753955190191299099372258877503627511765866048577227862262349746497685685704235054482839469814104868144201416477139373582348956748810027780565908269208544901351507698917069197379139887091491161715662798423621938865531325645908703891394559204671570913260171346300099403454099074471615478369758231167232586328277337327478628476089496392944192963061711021896226997375166084061407306549810515358055301539624168064242734581882580556247459550931400907356647125479112312226130311240550563734898497154927806672218047045160352522772045304214318841862070243815194146862215505657710147432510484754372401441503433534455172702024502370690967910524473603331174582030280778484098220312376123029403984024811404697523886701317147568750007764585364065146214946270588573392599653254726320927289431659874950200887779665335643214416430990749212145406965235871317076954949575204405823097102206563951831412176222453875427250892243747461080646523247702646921230691505697271934823619337010901125118709890396585153229547984836913455932273796378778475555010191104905161475629361284640749583222860599314484308018866518512960550888530829683065362416248610293321489438394216223554999947724457028463573444453438352542676989549122233963476350982194003118949326050507678299515805763185802457686370563267369009525429784596614408560737022274648408600449056359487380894711960761295753564222092277769699588509976400649692767077364898882021885369010535427084177770238034172927579829829032551675111760992979283407224227703398722031431697661632040404491585817249666807136109158684088689272516529387707183623642171283644270710285252776404378252562224215399209904771227376366540975820151051800514745027584112379333667140231131029153902999919154435426201310730597326919524315716816179925298894012918335954430898546670828188008571256082437771889168486277076851144835046944950045089147848955028062200014822125912642849030991390256527336638725974524746056447471454872822677449917822302546177788248926344081179684558040949094930140081254276593773792186095949470577198598902810704356798343528281818440491087265523367135211986635652013654022003859990721511336819868404879081825602634555536355004231557179579759395960170377886185399854657824027247789808006610393887655589341500187014753483959559080767890316441796318253569799160703127415163509555614500362942334467227908748987504915988928434481959384812303670665462876260481394799106506244961405361759273827237041971955541726812516167996503646237163976482838211813858357878586642829742750806727848704468533142931404720991303303810507785668027391978096860781904134347836573335605211004181170684471097213443302787098219905167096911997569385643586903418619590380898641510396864490417028021140659130030531696295857257060664716429828894060434370808615818988372638155767870489815137209042786316893064408396075304937380849989563487580847554324662160228560713026688120871193651032885508873287397638376552316815464858246573427060451634282338580186048799624484878224979665669333383011312778007318926721720674773765425003509855091658307711816639123746491628520966916860290658350189299297016643484286522736180744755044272691587307312194494875333219109398914097700387640618627469585574499607896691798879298006150954825656514718675138535237158295428614684685547456908480295181973488398946728474128857442571699089451659180510065188353841757438048245574634273593481706773000098468828615981796739837361348087734890508234739428795577933712717205006339833290093129948558952102909608230247475699496707980966439854865460459265300537372618146397086858009465969966687567911235340022070281968619654255184312547450395417437900366825242363496495291094365173102128735668617654617941949825555167020461072591238615376935658927064682778055826128302086259292221131641945090101114791192104381276845694499073620479464638197625821178785040605013257153965333857221820971138483512887055880373228414857053585164340637300095223843028758283332889027002573536968683413109903073622949587672940023375607238775516616734652256039465487945774530955561043642741308778073279982065207831385303594821406979230351405202041981664014896891879502474301418649761453699283816946999815286235877148124439393857096081960986601345984765873494018240161332234381019521507436478234544884638043569165041911979367617776744534158193420126675714123288266862506307031900897539051279990087583941711542384175882356498384312411167640768912000315867759772577049155982186228986006058625578101333147338324284257471651193745250548983882177587128794193030760081810768586691410575867320589392241360354329622956035849087848733287071078870393292586646716611517270244020068480689099966915366880898168803441846858920146806096509890657241933923873631023561653261581447092202842229479461250929750278067750800983605786117268338847969121013219071309711581736649358521376144213229219512419106379519016445692270875992638954940115848415184830260701999375791231844656789904521211260280588095055483126485722705462351180392604219553873822280476696881547344114873940930060136626614683131326917553663742665895466653903781092077329101029997003278358385248313449265971735731078983188598982486476596342858383444472196797182691026352406415634341541690998290561815595566806090059120611329891735896319238005013881321708596199439318240868635368287040688649870480136030790545173410549359444313893961619788846774144507493764887666742493958307506976521067398512036600866760835604561425433168825875635923219587675663117076295214762523285161729980657538908717092029216297504467856073738604396671956626263596656098537956508294702674975050034540756059620075474504131184285994989144031086142834451055786299377925725147209542565922792896161425898132419964241060473636374706564549371032496608275683878430067216152244716840431091824343005958238672682615624708005836977923812297389744258571176177867461243453434504791187529473205221703322875508508946791104846441631102178014158476255986268003983884368792873702968478682757034700252091050117560425085759663286975707189850790651218566043331402014775712241835245637204352968060298514019063544775884123438526705091753753968899300706094856011398897840308870611040268472439340088435364968091452914368067587226950593840893750433383421801559259076657741675184339640421889170258488290600444346061286264293667051454373915893705368496004973654521834650220960966306792397774744624956159876727935515423603373422634644683001502256136120438439540034906269935979317074797107939304353282481107736501280761225318841806599966432596713300771336896430648099321603602748725252828712157013817678696858795580068864001866195765502654798248957038916052416764341972350380003445149323498780165330915892614278954108664678767628069846369769527400334122774402755213093900114697726422122594118929056309400645712155395519001311037705435221805224742607747663738531839474662028093648040501008979620739945125066055265270198935802608821543421547876594145020039539075708609218708500847341934124544431526837910606306316841766996214628538689741610311300071326835450060345434430991090385723552702883741666285910728063465050734856841639037446995047147839608247275822992212062619321528784562986367426287243118397843302102675058139576412896348936464157684334937942027923562677025804493931044220797779553344815015021232309011947684461244007483062803103216113167506046095192785713210450507999458903898068321012691213400446117270257075579426746926713493292741707515872543148584310200962803983373766174629953177809560205875113941003120904808044761739135282447875199405161953291258598698443145474263422280191755549911665928566056674082481156710044197279420755086669143256351271823377777091659281857513357882547789474141679864959064719465395996552760229901862400401402041828503965170735614511477944421954086617989751204767296190683492275037092713930778737194513431073512631734339763283178968570515221162767248079246953161490448080494488453309022574261839977103457876241963720200544962683959892344210574424691661008617823010221100919413763678545500506013877619864592285547345797150074827148306374915782102902379116919301667867233228498209725202628123149378479259267104888966641735736535966777596161356455836713611780734466945305150862533443864700984501592420372199933830910858170310161491575383725118695607910980309858692483767966588962582488335184795468290248971500220184447663289859999099707493270399202385124529687583234582566089588922510026096070058281890118736317960919048619976888681523209072109322658738286765547713910419352413176989267269805914882120017089368029966474026756782505848919624494138055827021478059717808935564014616320322551141079255481402614425285293335776881887174043963431714754234634232357756401965393141314370570372572003666570318199653506030669981149765622152289063124635632427980033949849245503921702888493945686483707785883324546746106792983361239575738517148204666335928543914238734704571655159873964096092658713543716656678113036570633737874022611454091940188517276342563417821815762780239874761174425508227808349581813833965665594709222572418320266839971859929912624404015310946304583591832462807969546069280807154151101280816164934895335530735568976725766438753374951698973080676003264907909833054510014797141708451743345451562758096275033897184288575932413808798745376426545470628464856365200652190289856203971199670825023162739857602592560031811562811605523554560311535790553024656069519062922817339559252457368577944535095374429579827255777276054310190577458198431913517604290176928102793728976556643096999421714356606451321985989046120275195133183479851743525015173919493892613034799471425647299318632592191020065514484540859304673899353861186600045585847693082315132603771780005431634966975827585526200392019803083559602544841180592617938910599509476826032039282141911287273144690166593044712574882692650845966551544649965290940269984827347400624686972702074902463542317697453155177492879361930284323370780603735533416251978758008422346046129270779008810140801672105672265982862928844852879272596610860311666914375699851329971590372255387478244023783753377665221360693048039589853619258639597061383847130835601956122477095610457770104870379862871686703472895893368076917483613674439775465703831589388508022175636477136843209544199001658389283725863765535125479407227722867852744490123389181184382597049610861196220313216500297464957142986122797901546550947533696097703317961856450556187165950796864660143725066351717264839110180385345699527760315488284180858444899433610966586130673517165443716496155238612487005722707544784229597413983545271550734711170715184096730241065560711140643866905643482386820420638571300005927078711073057138846898773365896234834117625082997846105593016074689249167030007515850039107293852054798708669882417479533629064277426630152779761538502047134290731582887870770872859661350563006080045591244449244570667548086804519463971715339273227756955623041672499788086732270540008077536564504964802466120056297483599481110284760138436694731724264731625787442095398318898531537451412520813897324124618201001389588793936501481038649625710473089277613155805408539262933820536303340153943510757976356724803956140364315775814528358398033869823036631555721700943174618711357553154440818036687696614088732851549597217222910305084208648414711568174243806067326742829469417766421603971611755476886418141009604109325049789480214937434410090535688412948598372214005896178806791781264203798503493729262079167696551621394008418279017910764563710226519805526607930908506463771001317114365943082364883704055268714334664269934116787334048651820311176874759848648557682517807483116003417456347027951998038260314115604394527071896110831628824556387352037302762184390566140566398434441245298887858743087364735984415827611291918753263647930369618538444573041106316602646091620656279935883643289836829661888199283153718223028389891753506263685455206289758079041978944215054303023753194273211282695707816336709027827539284550777051725821502956013619272618032439713424085564106392295047308388247883756369792363191289543943215661960788645010276172682395443263928298036599312073806984611358684779273406065220317605288592291771711643293328717165954697281111692610241001605323521398611133966332547914340160595931501261088568505187154578888051875230572330037691944840696406198449364375432646178491799376437354522680562738874911159723286303284766398246248098046141108582814831825203701319582225744362483345718473140134956343930705838572126457031899132947868770148489516539029136927243771417867452927179249313432584411585081565912598411857721665206518665487280074182897120431391826787316225934623099837678873923480578532534790779198256399568607482223477378610279150010109425488298398685668938268409803380502765446425034839034227664877354104433630980768418227767135605662391399651683775528144198544655220459044129701855079472120615528807994742496330500256288729894705169896036443410195817082435729011399999582162907131766806122737177176179697062572200529925988708475366798956361295342482774833410571437095468742086935725383705679646717922726662922590402326543893820956880042383167456461570488592344072864439116664687642959418717049070848869195210531684153252539268511763767312318676400720377494227321625647390050265925461461673201788649776419964140064593843521423441150010008618002420895356754599453946889925381647817010462062430222044661707732972291201003292730645484268928181937544892031098386828773955977972598104897165406096517057666475002807826819471211098372216420066797997265499982264724474663590721231123293084312769271040041249567309729766366756097973497417214067667228263815487087787625370850393791363359915863248924895648580295219181478088188405150712761965650361799439298033443520385085319488240332457549815700060503139058722787240077695994092459440342976161512105285682908196274304238088569501671408161002183426366304496277628442127845657972021476437978688212622965729951538325079893975424215047959284769423551291895035454084634248848142713944026766578716349053066359540297824217402357224902889835132499255353537134019099456277275122914983922306449405483129686844547515549881202943250353518899151835324537822796037846683565732183032837775713966300441724164020528088668543478861997859569050103851366419252604069716538345030756666685604573541963479469469153579908908443108401540741272977045737073584664799000366622071042551553546633265029086063879906516568540034852938271340443069526634792511402967443390863007034059942034406713663678768205618823506756260475943772289197829117807176504918330031433883223934269601866449912163702537364726517616177485655947108245147027740985927329367663210221757625987179577932819605896554710861931285413002432738956494485600939106288323028067859031287784341864240273406798018600734003676804118224929386455811423750244308833098622243501166743235740328356364760475826239144669726603594360634976637836238566078144999788299933834731711303954453608587858246428455830935858969005385020093555577552093946446599489935988724124541210583568458749865731618735214252139392806172232529377263269902560142076099217983010623765671117102467604199351739913796191854564174446717016523822949336919424329456840871909379518365524390595246696109894400282210677977279468573657334528123471916309318674291397918620767117133874359320408107804572310114832949646684087784122718725267589344495032516865332650896365703691908672310220146372884636556263079253521057956412648657268362682469226139363455810882068935456596973516693520801203782589875269419757494466963539691097234927458044444628752714632917121425456770144336165011622333868014962035886843110668954013115061856866730164043602440518068271868513781598721066612453012146145522170771218685383801670825488837166763498269743538881205424627874674403619998448022287943089976497639762281852252852005000670692037178835610145874212568347374203425118588450523112392116232236412488145097888585654685954953855384747297724605166289537546738756370458084277540760395670870737934160991250197881110704108221380185006902697097312700647279676516040499490384501745891216078104499754542850372549190017787168718574242449732324552957995592759468756968037306465927069988889741772385080939602622704819199439651390697806252531681222868768087541103898836518499938505318717359125026838116621433334789800610641282228890670631772779558764820904781503856810918255667658533908033958822982858096502577979971008637628573060290908894629394654077572296924201048453467203151979177933158402417973018209481605128230499269708564524260179791137128497108044451325142343617509341061771382761803637929037075532411072897647103753542496078056917916698390714919856847803105043607239019563044563193448789354648223398375379769751819437081040742647588690209016541160098530326106843802599060118127251470208286473040243594485601291335805097084569275945593886345592033878806894297767956388013337677990646845025128422206264737310826004487106202212130549402649712423137632185239085802965662901025551628079295815786722561526344505903156492578836039323178624590574576280546048568618177473084581464095863713718748372351405147836343305638160200348886196083047665887321923579290470628299218774756929883194147867044490226189377558114068969245419992319224801245843079739456661441641618628848677269204036293125846669187596592768055677529505520402081988889134341546473614679068791143270309452154553755984977193486876407810419349028593461087679929540898739905850395514361965811176704180433429977180218912766284703175958254435508910135651453909282951480883496693324175644511429400794866542853175409213414375290613048454135927637121817383515376251220050815501386759081819402265520848713119408404106108722234459566005643580332164695788593901484974883095276577392338888784644823132485231845685502725726596127084060379875484159312877444842145628499387751518990979843018311917194979410694345931090103015650076100354473980175115438884384873732518148567815054202227049009893336702690914714405153710968567920516046237808133934863329267478506789131611966816859508864539189943892894070865424080360484326787646382747748328868985958157425458545575077712804308819816462960401485759866173383664185908112580929147085012364274417699643348982497484734205522100182241992139522471871859844451149130655084324409767132926596393183474814183971185066938886488639545756500680299528362456686706036534071609490656499171714407535455277540241658413026066450385738926228213064855791213212110538416992178036362008988655922788116595485139729452249651920726306568569528200188536948712510603148524880413355261934040573877988321024649147993142076381653871151993563446613509377341698989089726948443357456681928250233739812472116090565227215887028420977940298671761022795816076961908598195322405966333730428457859576273129119434446218103447101713852435387352928458740359624778876665408790993467868687705235741162049041506140307703201068626934818546068212767670811168978469504529286257605223653380037845601569631456583905450245251372035069339203410155769076239662994213479031417108636565258445163999195054367515615611169865296045129226665136377876427628245461162397536953559547457216770897384797102214508106555547755556360640670526314818366135020289601840009537709852833511775094571088124809559880268729224190293178928486198387856985913138560135153917263392627932276677861855830928899989414045549097420669644915247755296693906443519861963932966843139094938051709949340472791234092382063923000073820309161858997495246843789427273066093514265585844864697578929647121570894254669193612954375609147211942199072003312869531514793917166429459954269219367853344597333775889238118301089221228725298567688457001203484419479541886523945821955779675653399933371650507883425924798027750749877749993697478940439420061613019580732331625424332518672512572077932247706871120531752482909930291061091922618322677072927512966820027464163656516524410304783683800157441136415883736627840313406705339556418243497878524423216912959990816578268026983792377266275914287502883148941847268574313459355440720415449075271411691710576618658206640731297101688572230264654569519476817527248249648937867840559902257550703398770733848628448295379282027397138100077258842919819819798645676886915849774225796858945233247397287103866135398264208486021487642831434313270622361119105998741742735595156791350010362072803526732433282360212944174781553300754706449478286339444687196853735227615417270213512601563741986003846898016962033419182504899853208700036733595314492271595647879588264586499874856993232319200315789643442961348259755031054948839385637161373020696532069658934902583915330050421954728797855059105606907611378054253462851700691739836659899889974229775574910033507132603524179698765580509274148299038911679906832795546589595465275872904885937025663417794221842245746704928588684458529507910388785221155859767920589483386735652650447131531897559378137964925684924221070920379669783567962666011577695383171187020325257330676060965849324174686899191966810179067274483934312164319184933357428205909414275874595710229220945245514955301160558634681397253129758677364626573882334378912252897178449586616626149622072036889130038206815386756920408894231818439365621723103758530543086712188635115211692466917130494690300143180678766050259618094390139181858589392346331946891885155085474956024356908487675666147202414350323952200008719973667598820624880482189716258098394818522147969054357592262372351822340758018312061518915657455996667358469189423689125626924297304106996432882421304403263509031402817645974324052945733789438607066321489354280643638390253784520911963603759255495145502495281004175145256679362735981076874811630399162738438468145440939684141462093769625482049955399182493707265384107662520881305968902397098507474413644183694322587226551547304566005112287250317116951534118534892504120349924066259971355025773557904457895149562523040426881610982149540589086214183537831798826467475252008341597222127995917403281556454629826849167096895815302385709110501678302438242067767716004007740981080883703263231183656838642857814137815301731123753432620201051043719906216013761592546771344162854090561798752526637914291371485807622634342628384968388025553797971016024898205145692465111729765401675572329314831018305663215101547980689952940772761239509076459728301016050578635275998456520375902437267445097529332873771512318937664120673789178565939935507704483939951920296940469012222733275955195780244667843672432716345315110805809483983317205473484567737328998938640136443956545332906106479631458782826851358693918620951775510770796733823423953361969677954104188565352250163004110981861801893966609077492568801963253908645395174878301192816739908126768369112792214518272318527204885206321655741964980881639891664738746184828563747909612460562741653238896894265279271369111639955477464111507133612500004191343160891907209678544668212858015506183010330671481126357470714737437660650663371050025022991094614316315834516952020252143096980266071701850318382052299560715414563604077565972144903460272653908564614392262690756801877155135898376706838019189831566491547580829764306647486962049392469738576512205875954107078761811580488959280554981629574708924957879777733932616053970828238950244649543720519400671922502159878686620212014757468997108481631370502096041515204088225400935456530125777093547420850490768413378495952460774491418651284596334727656335611940447633136503492184465469757568712535694512550413532420522172156275147809399318671855322911703990266598473768985406426381572575616429320936624500703609464196347528168995335840582136473613745968006103886744813215032714164292698285882451663167252346768975309931058659510848851228198774417579589796363498801967457577554310880741843527441080462509362729954642068535862328816350778176375009321050628829693106363773581270404577007382259363340701954199695307142856308149099855825789849653433825937900674700039383828152840605692063980218145766100584987996914900524841724823018597598041565621863840586876880007446754059608114918974124755732705579396602467847346835025807291067268882084687115106711567468409954113678290335147250088129907209850626638046444557251491240370953089483499809492808693224835446103880676622204621414047362054158337844104725971471226955172303397130526101477339584007170598159766446056880342428359632180192621735201505036662667968385901037300984627274332097636411626929305718462583368222078028301784137106472808010122775890169017659019716914032729654845576887656875588639454371008009329000565278083368540326420614448519604819128242375203032970957391136892560431617980495905359332449606894806566145852436196023623866137562451489080566619257048633804982818263064388899124899155828300342490308658986935044565488303680109275400249809316844604396404241827194091516869207557875748714530443131727055239792159729944386159719912735376132317837465491575311729194396149412805449755201978415890572205319173071936561918648257297237817015406007754487039179250657331115454874205890508315680704063704261099744699798233108485722558975815956498219897014483136449022165443604594342913505688427893639649755772091047601904038129587995783118027121128028128762530747467225217674748877356915050184514564165671114013138341467509368099503130321057140257671291663981834053507747934106370805659422172365942312873646187178135130711181665611068648268486844315844550205222886649387263403743967768250186435397566362351057389598594967704120188347226140928962436988702035066900060479277067196947278558990632123013695404133010431908112631488321202458572475825647032811397139260587226497273270268202447170465714900646227333912991852104882070027712939303062587001798747895216229784551374594250569112528120434873089505094719728224949146987116551323241324963534447734437391503423398344181503632684286823276972963420450651115608856341949065828441098619930899855575888761058701729387002430306818045455145012566924584350586596057797675115913483863182753751361756006843865204373087349119445460536270748232755592762138856535155003473042604204549655439578245526816530874218835823934570564826734887424966182067823766898854019555836495301306780666319095295540823643304676498633375341943385446238109221724221032892404226206202852861053649328290433555570815605219235556256593560807367089977802918850935272328796300754574275751352749366735319792493675568480578323768311122352853666177494455269629117686781390588865523246849193651314588423888401427507460993749512540013408409646513227976749881593850347285901321753696476352854320894198566409936875075296650331751264971379712111469166658105760171612941471865611280136195989567908540579194903615794994292571497718241322134385469223405003146093133641901543916767501733921560031465396398393853124555453260385726565100577564031958334039195419291778031750672232382344984969489317064132851832086731374908759349391593678701516736632775701085089435559938177773447795048786048398092489603333700080183198321120326610910674654249402488536260182532208123740275191921882173849701177848447909826815066000981176778951300093638110055634346280931624907467896759645294109946463598186075272966855396661289054690977907866419094096792925441243709724560772997939507609204595862954231433622278738356750908908555438237462087365510822801520566579446024539316822589380594022406260859494570929838911480029224362954494719769162435636978429604080646390478294028119433832763877885494776762739765578492608137594014494010066802550124084254473624824486666345477451853938938635063781426572471488609861613017703239935833470757552953493784353832026933453957088293923979454542280254762436675254549339181068086451866534757421164981952706361268449358467174276557662951103047690070438753842570612099170338996296772410186622173568641727853874655097748905473956208730114291407855545568627411209789513568081030931383615948947457857931322205939828876424303338186372392506688311073900579564177447954790671046944323327574411376643101781685908799932499251081858738680316092018802337813503317819541149529601868156179008667941595935232013609833393953054741592925643228362043505055510244102734954666523852538194861180473245055376864145647991296759017212050604178465892243355106643593728659169045078513930821375582121684009140497055442866559455716936723686121314620276400122407073267020329330706450003524509468706717297299969660366181433037718703380491131104248895855153340522425446365513781700705285498608390818391408650972765278118035823387818049493846568323519366148517628467453088682535905741875103290960336760259506093522930150405738187408150058670965102506829054155012961290644014475955920012525313667087090935874795066763288000261035200513520752264569504325679801532643930892476983305642060073387361153047741481472330741973978809081344737578859359694176258378810808155848298640619426937732540309762776334591632631333027369343866079496599688086520180955599315252334223391218152155401489451173702416075282256474641851041994000295899040804062130354793886505057105160951012507432478586144784042015350917838571421806564808806201663089905907439652767770976831971497537813340518361929383683842821009632532225475425708104127287323886022331110342481138276405546093439883353503391921821459234071401323248814839777205963621639773075126548648805239335059957994237428433642458312409585023122412756280954962321244739008508820256622450801393125196467645852415853912519564455465185717960119939307581709859446505290179103367641161747612034684719424227872260734056226621222390935476758446526187134398884061392375611886211001885451159302015478332819738168878252091267931103897002802971126238458842096212144024634808041405400804635780169418321145601061839982906141124741733479252295881356097819959030142671317853725634171876227196673752336245113621144324163781312768826709176161438233271348181339638501951145860506702519390392160136974428463800229982914613915338506777104635849171872015007587502721625256525497416800093993411441989308865973946480616608370236129074110445960865947990032923795623769028963141410325632635077321711880119433071930872001651032544644455096624542281953820241406325997446343495814997080435413569916350472432089873501410700633099165496698981206490097641827268256903531927621305132829897191058146032270835208533490650250108841382122144444751836655949344980050746667365578188039223521942887003333469418354924110252249410278667862941862618842454028931235532370678430187424551892100708122207877603415494623583542104228977369652109378244850068964943275740417657838632156542156151500877228992006015209869312705012338053586508446950553950526827655450669692409398787006926050977294079032820421639315553736086823167029371972549100535035495288628697774552110485089269081558996218565755652201509441884338291992063322615152018339389055502569375988983292770742366409234626047302859835001519024414345151178322083742981727820454075934350361089578378655272073848174726480403528011156396402880853892726963548213875621308428609538652673583318937612314061072389631834140092395345065481483041368194670010438978378597604593159379332914287976473816420318106153467709709594993006628576595402500512226668571556641753887133388213502220201441061131177810902803763466501992950236737238276021402467516621289326774155178966551876713222290820413550682622754986457380642758308822829449945915283006529168491860150600802763901176163781754403299142352370162026341782932153088653814688894092493780335959538366479145474231805268897611858510890645122835430581765711050180115534708026781174797706135528786366389786745530038888014090784152196821816308907427220164385962624959032588399140773818931159778596836203658598790407020532126492473826317383619165519577991584839650825664051801739752171372546276159728843696916717874969979607440832278156902495086828147507229823792837811871797949236612462200480728236471781562666613266227967952875704304459649771928758854087103991474433788471596347441142536170236115442981448998423378893698329618840292336436045695451256694695596673795985575774746636275822116615028886913855500879313223032875157925565429319008849283995095254574145019837374523933780359148450643166119511973431820091418519913534985626998975155776133523058610695064778607958043122672172976920092174925875671370971327775901462403487493727593331886523691417666995244800498602143322720882821623256748076148408412413000639894906503662424621135220064438703762633818478271571745347583126104044934346917377108762226857171241835614251501330405423192356462906227943611878255506485024670220359853689251970795713683789694659081073474209350743687477054572001305254485148211822258116257819504373953873672884071883485469036823668290492852918717293242840356543668358527034053510937736780138788082280591077308696630282000771986344342232211511070701926761288742554836038746276416769836438195051278995447623700810737460965807893101462201481745314074179727146012564521396352900823779765793817032197488989055556603438020520853468895833069469115926301479875775086971649268018879618122820684967956937761818118996271979610692146192750573238904034839329756649236750013858030759653666827465388622722316314805695625063884458252025020500666260932848837528951559378790234454977437653476384904701001710550209112190373021615504837311682546303835039536242891031504504713716264182756455311195194366296033813549088321651275223153670372635821871658086509257438010309651107277882234181076104952745279011071088161499748110766528230436051417083329333421149950343015323766143312791085819399277693714834231271373246647389369744592569998899683322691455076792265851034120300596955583524650277328688225710380964830431590125903234310450610004360442856465432674596378571160465454604523583947871099247306945139569687166973870666502049587691723407557628337495222776355714677025938594883345709863458201907203462782241671421445089924113666697164809145123595103539334043001251017965642579784569728831572891329566158257361597256848352374476217472759366821123868606082530225081632508879934956586466954624871859337606184556266315805294443049222172649354673900991047084000297612917020765144217233056365911947588059319929097537848893214985320424103973964420686390755144144856122819771756476595857389819738122521060935870480701162931189949719417707841818468353808647871379260446118523210750512389452377518043570800249662771791027204776985740860702765314034177099980709931875669299262191769154024603303452973614784253782310291856848672706644476970846009843504579038882389897234409093442837200744471606658583346054508825662478959760222640813674806888612220215857691452197431255504957329852618317005098131125691303577330974574275399776589370310649008234874248332953802081206060268827727294099577330198748736194169628236911237303724396554864115544966158399856611206565315560409342329416770869933090354612534837138736167072222214596454925277225377755920389418181357107673029673913869747379945226126295640654393400023686662468953355328947525074431739377781623668230879058504958597572426478881724953069962756022444833293529119655256485872662081141023973250308360450178468180953318471285304274551234967172937714464808801919217592566887837733757756379707415944943472695575959968301529082927075383925176222714640556118848701866516319541676407619156722140819378309002518657846015577375277774568895369088621485521591022087490884791656568041971028880861935030101144664713994099871030920092686953739625715007295407043871781040187607763275741022599656902460555252180203109858228148958081278150356078987173676635669718121273865580768147179180899423655468622047461160942391001639761240156016683820401279962127709692791948208674950491782855182331568764580303779487190994203620889668845616581665186088519776983191384277064092207315699562696048191002001160598893428470965665164753279595178560178525058644761544275236388231275459685854494408086193128913442494192166692896415945720540560727752164579657248878667744912857149687267875935614906483082644718211010889904020623757010362661992993183448514624164754308605668719688168453280860023738605566249287614655579109146062959363883287549686523670507425395867938311991295803252239444145113703356009135939039328800012501441825990619238593462002569489449458615412304138520565736069828302290831724292070296484142161680083037009495997401742516929946204597511573173041400980897010838585336409519938367746618540947222852529312932187373305214763283353309340544115098071656782835311502441777533756789914991983592925454416427160410233269769697462710785776791582527846455481384776535126024195067932377333816413373674768286700640124828191625776686717552040320509311399919114166305891492915087609547047688237695089501056666607377143015452678282044643716619489228309662004111066581638208959203793476205354868853555873962047457206466844209347847637568792885589044174334844406537435506580783916023508815506086370758403208477209468504732681395725304130773915820827227374894246874896339139992691520498498652034920602765548229710776491057539033529294370101125078911118323883246777239012393345025164832034315884246002445124890515148640250266433203644633405498615842320875484305356109222002477887704221291011985815081809033065304415920619878112602950394615283976865969731978257236135049935012719150362972465645687081025218694303616001583112508867237698529080480103838300261698683830663209355063211849104830498820811419404786960088642589917508794351025059502065730719025465479229879315526024150345926262461302501873093610693927333793250933901094146466701303546242717490239670321155527886275404605153768251731229366310243487203241935678977965285564525541351750292978830895911144172254983977682609989314318101613655163065943803238612628310963543891136303171359265655944570263209333092739772241813823001946057196774254447141068572103919292561600962331888631183843962265960811223682148451106009619978278332351373101991178566112467914749455187072037332393566702631766142523784076480738683158535412652232321815655508991393821251412867387813586909631207208374671972006606174088900303680680321229558438511281627301481368057493384365961534424908889006279824776432887520683068080833070928732808687828391053215638289822668628779288655968856971954455882788143515425685788769792894114792450059031207402662422653779563296013467358142730857740590775773157337337816509188025525298364022381659865198572543722341598487856306881881206540535125020967646199872131151744089500264196548073009245837318940099743479257351741319629833636916252425549221198506105917352474447325984316674213623434970547795501276658777781558556200562677952458319856528981549152623409777388802726333783216311097289170468896519074801150324958116892727671167111419101846929028196559784296992961281822730507743034448253056901443511736667006190524460642498416786976735998256428616279938578080577277834037685690348111899334452262799091567550616011411373741290923033600552987910901502488128990560820864779423997130825771156651354692651518621928071747702435463542138914433533248998949106626874981599710817999813862988559355385327033545784783127879403845183161812870891625564629081946832022105926687728793728476162743629721534057533708499928485606302346682422365748954509825377268325534859667382920272813766235924729547163372649826875806061972187608352720294585656235477329743487978965609633426554216452364100577311093838148713319762766492096119117301730324229739544748009608926206397164089270639606613808695803413197081337348427751514035422001862354309599450048777904139684037615556746281108679193346768616595133388567179618259059571636353822656526261375533303479584653372252653353671052217674973510132861821885954952361755186629855303622472852713663562719201049814960284130314409390491349122491036359027811220042193748875899666683729321557664326370882788209975231967043774767466369023033248328239357743129490264819144149743845769043923332686648515011246477639866613579456773002776654002324477469030376318558944095631788760993651017224044951211452158504796747078021919765663735137104639763682287128308091386846596139950815740685616596903858077442719745043925458440898471650052896630743487342095301452442747052561835947118213084456437820752060038718303767077212136579029270007016147854720022417323013176979327469113449739773582339667013551457571204542678189398454985705856856312170881582729536626831814519458052648683034442621265258336672780303814454978838396190201752476428595059525631702977379464074006065385074522188850306184489584414904474976302334168982074642520663107681173522270426908974997797737794806795013514089360971604953886294945934180378027561967240736828531965244097658866168493992886893359383370325651367814720176221711490750960191844755246282447712932527743394935956744519239250000264724716536666501561919212612406307993303857861847121183020824095709287868413687286315426604693843342185147200246066653242332246593512033189099363727553218349765801606833891471359651477103581555165086136549328544595857130257791648689560742297337758435355580718977566308931206680276153134258346445916841457194194978599184469576258107082682366834358373021052558715368005958876094183768768167173116710829350085853948884884595117784231883954773786132119636591258389233938911116146134001076208202298153661397864341445717952255807911387387590883997470968025231555702544859442063204661377711397511687082291072047046590536011878745470911126389485348594269703578487214788385664763776844841603988649973005063591429720743938528172843212005012015052216955516011191348497354416115256314861710682645964851602309803218670866990715835872708063712995414361252816574925542033349398970114631537880613465115855269434197893342774196940131728208830758960187891164716544783683149768942715313426390785973003060199843140457864603313750272704973328097185939740437529855583877401163453941258927630182036772448458460082584595418095571539127304403760585957366092458693843231470341327663848446910910627307642150779354155464673494283526550770350249869514250434839949642255039316273500658185351460774311175795484446591061725632605732958373095861751128309808917236300429098323890470313124864285003997863742428189294320769336075177612742359117235881396136437971845743222404337725462393077537110260375093580091722819553429923891258536516537237931346820048566354981111846448756321843181401689864113382152203202161702170180772448206519525761750237455866380753432643927898069988971307900263595367567721209697129086037284439407506559099294255239764032085857038836719748978475420977159951977264344403780536756269094590818421097483378294630777084699380772044376102672624192468238970881441259084141665098135133458328623109642519080118333458602751958968327764429937347091057872845411517775644139709546795379286675892881215832237655188071530119689237338639461109603314320883787293842196017974318957588039488064184336638459676550705742462537752994096524513010144724625335975064441108076835882700565469499381366464358499897374741697473645646951686219000991786359961595970690255894147640396210198032574326333925534940230243813116404235153549946627253580994278405535049397777701648319591652705721558784102990055738879974882081083510132530029802925915424117212229074244558469612298230123337294399567994064708490347010293256089497992322457204577860633873985373894515517199323722529210312790287436838345146719195135806408857034058556342700321043969535402574141580047583549639425892468149456553783219080423186420945951734982635831230687556513868327546881854419245476896032941041963258569285114383857137283000257466570150726416859342831738875684618068549080286059167857089344318461558563631404454638188795166292038026734217801153210675572063772715109632781880116118772514563756988755235623661727755583241705558471419369335911941367000553809135356210029592204684516687174129001109897994941845043362982056741032485562264807876081485318670188964131945863551254699261803648459076020954017751430817618785249314104683556484933801213575222137858793632745695231969798887758405983166636002408602686009257807091342183858965679000966486197087395881230469643700842998717477086742637287245938931619160111974190438660015889046510366167680188785203943675134142686440926885353757821845522490519756965217648452126648267760118520402323778545331206787596602228837610040587134548311084854669085436763279367844390619453513781944120825960809538459252170199975909799298174299960060164814452484430797455362594114348415529677590933416239425413536913176653659842873757648880817693292425384992087256702963187399445218205525136982090113997406543189255365249748728621288960416067741023052632252362163369439583934856274587324449983043870310154991816644891805527037433448306240185305241868881135997160825668118836445624841237595295314947881563983917237310289965194747284882075648737625337796332583686305172049817819601031283928756309559177558397432191448838724615166371661001058046238853889947534016182344894224450832746451168522857372240342944596935959471547949886431479423886352963688994770901914014095309169515835145703073773070213553748088990509822654270997859756111871539418980900102935411521774012706347092482633375934653951905877558167965288747004662717522527965383743479323384234210804983685428257765068932327295099342955818306538687076589870509320068263527400674229151585576826017135071261724918586264315990891699597223846828003549559844200782628949865278836123615619303938018847369593809767832194016684827159545562064263103841431004310276026955218678395959171794368158433792737751786075879052775084811613420526229068323905709713352037813815544026221065534825139720271351751523692703924921979186433270015552973691201495968846124650507211038691947293034469665088510655170495447844290069777834989553104556850821498856984215742280029952692425887262835072700164351928204573235516789778903585384995801195892335117412545248136502247742937100813317519010964633315454537161948259136172817272692106471920116343448563048697867717758483338163191514917577307718445129990004418162094837711979280377447385841027321664262581296169667498152024652030971687202115656082836544675664973569025522390644223216047734441922742794156341537008655980585721036518465828066193410613991537376521206412441237260205756615996409352021831615689889165878441105280428907212583801675416121996927674787020558251572752309091561527258487734885217621006414252195639715793351652996143687325901030443319860101831542989081951674405386310374128311856688349827023337970416566274206959413616846644051249290630160441417334720165793803969241794762151328746801651846337093436605614459669283317774871622385862517658846263565662810597472243957941045346876715523153363338088463202790610305674433107542770828686273658936978608894263209646802181812745652851156386852839911004940329260720973180047260661683970152686759682397286501376953179759724593561319771320481614171102001948866863265941771404139847445116757870923885257470472073896383721318916410619226169013498087500460030691443616403295034835160241668028645015363781922209616132392549097600204607826643079671425044956786746433915082855012439176065830090821180875391157517350619248748059908107816696186823212803521472586413755512362810428287655611680079483062203308674217709871544542122424582327645902944341143579760158457604101476470713438222216245662964174251352002056042708987076690768494815129405148512900647487807105894736642768616449473040293366709279622105933129267386249603121727657542234607737552012542381763702925414645099719227977761864298237078422471757190457412409901093361695650997657237521351136231375838048354276852839820939477494853059860080644516813550752353021116463530181336322543514349821348334687842526430467806065194059769687844053406519830753045277145020107318311619143637174337649090059276300702347058064614350200124029153401946934085481043695075159332766153738113099930182708580910551326706985854451480183104143673506991946123122506292397838502743938112606515569986234077466903856072937004684776685993770294950377696590573190862460987860660546905399635735962382491179427166392032521779048589975824828861596637213630946924906329806019128781711644536336309678840730738101723643155756652160704243691072465170675884215221352508062631137917784943968588481647114076659381729629549435893188152232174602769156446115232764390778994082823740016370977342435048311452172126319408886489084128453923408113083006567452499637887115563060409490686762151252283126974405494744571334801221916881377801341500678965537733563546430077671614888583264568560436387331862744707598803378451841506178046071675447846787318087190119265644543192113381834054259492036178715405397750581301667640228654128586882050186369770749151475276380745662181289340979569678727080034399969075645104274786712712092328692423773005916823835824629998377398719950170581248371648549171774689675945001083604449015787175031424573301425231615226831696811091712746578976053178206283473618015258815433305730959471643604002563723860792210725397191519088661806433718008535527400111744997828801443745048698621901403952699124965814617707206093689522058484937679566191862689194578489629301326370442340032895640116105546193403084906355203220394040374592129452500533354386320668223040669781090755499268450387530215221336863674259595995002248877555318174300618900242464030684133009807753702667821771417286533164273123522786221874321102851460448362433533171629043183087573847572139081056137419496986554971461970608061385951656492441000125141849946763300673524677929603977201364478651049107444150618703596437966357423870963687541441134199410368548874134066395532339547071192697780926105782823654108377075466112982510780541595889915916372878486074098695891267036880458958322738849226054053710490338882351142770337709886362309540461623548947415576667338847879261711541516584924885911560463213743415024751016692340396208128048541319786450658800999219174269156267620081621578894104221435566659793660837414527815644220861465887460351744758108099402518277224212370998944681237745957574098308248027797541430569297087305093446882169177547220585147852634597583427724606901765482539843701016540595158613485158783692754178095919867478183268423889820082047716117688722061671549454622713626814088346945876464829845957897588758796144502763967017290752254548407599999797334755535194127087790772457124896861582720677578395620596713330271117327472590781819545761431788045591443887205675368128565405066551277566814922660841436159738925985891360911760937421441569216144815484795272587952332718681329775110487551169731398923155256557098196096361419541978368813302898524928184904237779134311712234162295923412351230200736181201115185256428019376519639014113015228219365210904959650879040644740486783432026687801139639684037730639736697934867746281278853066047205070293708707338794487596913994649118620280776786563334163821709526177487078048650815319009025475278630969028944463585639498983366248732002208649893466458040222767917061114440784912477055810431222213715660911637512432559044209888274944412538663075009936773409569326798995471579969334468776020957803691468327909993830060301665775045640225412347966129020880691938890115015339277862789231348504967250837966102026016873880201784008414459122890250854707886159621553264629227144639920361946830128471021682479781464104216266368337317400459792214194866348071701956679019417184332657387394066787595428780053520033550047168945629835472103642479671196181264707603775242568463471123820775031263805140876438784629827074290056067692241833523130572883651401383021773832908205708013635208548945381910005496972235464754631954986367496211926025994738282585987464319719128444891320981261646637697495025191173131184967971604074929606902875166479407435058269303351906291076741876842173063644479192371723126271999204798021497230938192849390002790261659551726985226489074779395239729330286366324166993471800050543894106320277402358424699586355233961518885860453387057990218078152485207220394115873124818869787462706246840911543423943827227263586637439177725388789467609401189555004240755427262786168529240884144198425136993320372026296320948716159790439406802124413987642596795847634330185212232475476642417299895885049707789361514019252679368612202167016012138483707112489597364875227716716389386325702524469721053156553924224682868287581958006987351761244851501336948975155446052815740624756276639242856613537365634154755825348999006699273321243320886072367065816979878188931872792975781223978174624198128733148655964036466000003507372303930395661125275874430879676917506563488831571476782793750471314382103872880319576441722716611452471782380188526049344752275190448528011927431994826861608425850114490259128268871064710376835978790371590434074719088698513950834393425481446274401818421571434716361535415878228194691942992518218170848738205715773924099607618518287664924436655899853549010846226736317769799524597045946310806764716391774124705630805673041580113354153542978050793202217548132027440951676211329224212155400223183701895836290533222268711071871958136114084625050407465783472269321187423623190959736514161206256204330784551368252175323073670443545814978636156322165421605926391275326704074804870445744046953457315602927559560247093268392239461156101688473612390878307685928347179798299519139126457442178287704532071910467456985843968949668993839846422392900207378278603694830085589878460908237748853006564099302839446102972937100220236451212123594875540387923145670399228080673650389102639019108825776422032693280136796038657899385052855370015904086804479457889456776245172625104840220086211264463674333278272024897001127456905807929115507916683475764407793714426766750923988529046057099415786486572410824370832546771970017514650148839391488454377849287296423097417880344056049472340421835298564779678663922964472048937418757804102252742891002645190497891554839480237559415005741694843319405281535987254121607089746780105112417837454132696644253275085657294419211691304758432063519958990518249821118955757142831491396347958988015880987359593355774177547133604964927416978963887274226630773036053594817698073905960906516287823308114931250165065572466274317972005683157217937708830470070657119212271906290611609861039052321447034777545657321786436116775914999106274460009395751351494856681473523842410701442568700398717788259991282342580841432252140151818393599195141987605885340600788957103798573927672462485796480414959904557834989933659848140107742866728426737392290042544751491338196725162303327825244408322650876312787108191869301690975149566543626670013242092377381324926130450688686160415222700272349295953844805518389573087452441780635326746199944615174848348996510850315025059529661338634419347825379043658076976260959097838194368583414518936124653779108585081864034364239618520286173021539215126577144114985862122450381651606882004206841128462662142785652747952969556108059317081792398759500768026439673903046524419161471887681691552179748307803063928144180026947071961716639795780767371752580002020483788795948946564591838487025142728450155254126651503591377074701276997120064635965877918881321934215392173133209868483167100648938330630644257681912380086976802416874184902164800518127064931979784576110864054213698314904142001682634770815968507646297038479898903003000765075777160064301835373833764123890643651288696570628302204394827201189370012191895038028311278516924467019542222598700409853013629464198851341661780982646761645289557092159093440298988612907560914408249657077552750284149924583413587979224111374033344881900722011108641666433484635070475496842315798185943111057487778307547988737839890413578458232489316645814237421790221529077585958417656145857841728792229217008450115675944923313415649289489965868426388702690707311733209421401028581302654481801032012473757182192706499140279405959267135569634758274288535074899955774292262416703341731030475425584229259760247749637561827568594170208335439921795747961586298101911223031054869485822810468255803898930342456097736504156449325360489204902033996134912792623798535426072473031409075954167203049996975123570993514174332206916624531633386703345236271415746339919954704092945188849169823289701764367071390499333077623325758736354759821425159994666428535966298276143945661280236127084808825156954019078356955454159827157048003434363630298732739764661478541508888485230418777988071251274103142538694479939269804574822094910845973020984217913528841889000772564739977887800190174672281445253538463675070290580273865338688175841646245361117612737864256131920175478456059295975255813120781018052286584882536480996981622266231737045669635335032003962123075564313871208180665543112882458154894632775390640031063987712130519224542301092035913783746757618833074457676901588524467215892221247450350238972939110581961876844452132392226198076601939569155624761077588873890294386755318513166468456222856892347051232331393650590631136970397521511115321645671439027360628032466736514211609556680481419651007625317672029117687665147107313365271971471003468057835476251665473447208321702676029440286269454026741558353991218121139568956222866442299439984239953973573927125583249090813809430376287001145150471422138989671290273499395313680315138250469297063756875270545801429047079909295228258825337012292901491091126088164242528027823056621346939187928677285373189571616024498338078066595065106517402989381675542376708694725814535878195268268398472322137542006884853056170116511609076958992648137718461585088358389177443091008749956954126782070975928703903335530204450385985285026466784199430968798396193740557053925291975640896369314801137088670639986901081096593222895026943945859145624428400043290506965448741773654517558283129218200486636423340336123353955064644296085238045779576112618813609281666598022881461649263856381538790980463816984487105975378007917130165821575242225197562782261549935351736229818373146492284513152677637812343601363691482693611123660130167280082633471175096714565225523545126883315013435318704251073729633587370557414540140527988720494237848213541338781287767709986774420440233214992597028851179302435742529243518066239304509593198889413066995745135914168033312396331284555787139797581254274081445371937202196905393197550856875223643811895410360191698151809919874145851457297964187008487185229828141570663151270726023486225671266243216554479602643370950805538779497104881341339387911577755541040393741422086490927409921509018816476206019662809270163876761434593648310484414631741319285270553469109336456424694999818294429647698954670832344611429563833913908073132523683970490292840614260971814569586458049007427224321715911409997563248848375087029354209398650927648907547401073446321049655348638625027241193759910733364561848938842171335895857133777114564394109987701499718753743378556001925340976268953164874952443164707508981853862973506415965308108511584957795669900214180091855362582365134053852037614648070840170743340276801288155508758659011638406126014125213691135543374744836634429967799026557768256162060528235755440472509999388927394515040332072097000973586753024312270499332599902522895237741565039144073084694887241375866015898080998991848396553003401684024008914197143577909827802279202792863767996303292438269414862544581733331143960849640518955306316094927058600703834437008834577879152390863855862847167187788229868288243664793729697057504426102158265597178454365474828860862781770981193077524901223413426031314631583647255109071354486987138178306974905895990394510644786670049470487002607076463490065372150085851517763481253812591587080537621801411914865077197476304767096815666834436993747639506000135549420934376953086338672634693481755375968793880428821941045504327700882918402365673039911195802755169873939977492035656597276193449366186619978854257988721652218426760387153839608068488479718073294397575783850349508498408846154794346175039345741738658521377631873696215296773958446902871769793703836681196609395435737019440013196662839886245640797530230079455950211052179195509165929952030183352901072309863121355531427524630380731018293695767150369246867755877505336087213049605507136330694082839323918679569566546228536970686561688079991385673383032853408656778168003924491388959314728017360542771594963483757441441385318676807918685351124798421793642484235838386072282267231550258054455588696308421539733935903319817369351164836809962885485380463008715628907119499482849881667685981957896148437088104588032046725984466008163811544912214927913605259131062863285164417023614054224956537246188715033208692774487364412369740203318927591180470027057753667911191840140594810664725395532869153403966588709708557562464588537498010851509720804555706369418577404737697209250833459600350531279109616358097097516412221170128470272549788827662069965347924348407529536170822500472161509318111026313177290194684988123290732668022886342137013628204258724770382116380138400126813444014424245739683677603376405924696019166186662398794864055215298178798977223441349524774461739889625713180124802897903406500488775098770700255893345821612678698036098880707585852672790362016990382243240702942052543897660876112429923161243200533975713415948833907196374862430144858388472937066985631690955008138742433607492842286543567773774077224456567258508817797147595590210945509830225318507033042120738925193595314034391323749440171666171291162314989319645306633737171505406778588876450584931594370476562220801210194915381293949543301096114454169008031348956854169679758605241706071837745718138437225537313253034434308179732519317593254333868854536801863707188331256497391460172681584244391417116343096084519312777085646178706565410252373962720075664431661151905889716356310822991961540327639699714595778653553976347783093514150772177908471367386471155846902552716664691900029337305469745988411181538434684234685173655903529706175330721535247611109522850122407417539905869516836279226278426566864281181717259099801804143893812447204409716620664480076143735042290430336427685383240520869599215342566748136791943168095860402131914060337494271073977562422788488598770139622025218167852409648548891734074827934268120918063673934414989634235611012275464179848886105467459912805465218867443089462160320690290953865731929008078332053724922656352414846306044661424096605800023347781982209412043196771487465911540854884388197555529750307790861566037518542502476976111847828020649988831699580444845558595214580141943794079982681112504554197819636795540807314521478265982712986226798461892536049830426274142075817203040298811606361781218528877689562881533719368001430067367750086581777745213868294252264591210922329171626565757665585679470977380471467744605790211726309474193850112921917137691095560306900936116731242493205797516606573734564879908518410191015479255124947191859985803428908855750353620284067831433850541527243536723244826474349833015039412811538158236839207866026892752628504679405445901475349164648358914310404622729931535288910727316251584057273454724407227793906000717286321679479468748134626739525384805268251166699739214138566015659865271970242412303681671850834030963192572276621647777578139733573974994661032285584662676859897057688567949599483071912524651632206688798210427229354446188584723328463068987783491715675514576267280401914290028745592644651886155254306841296526713720612682328970287246525060724803573275344968144098363313626931062748768217594376034317549165993744582091056189788794718015193226596308165576485138727568916717614490144788965249203215500444364590345591573682561011330654721794755899192886463202298706015677189279046576679418202756554923234049227523136591959654351648507674476983868356432803189709689738783166724528167978966010516534713613648178194483485782763043692712606126179747380486594814716368554817416006538244007001484775462645531934052673896687723696850619711482425636632183329986028961829466532050353441444633307615236253498591170569480393131298858144052075953864700404343979576575767955753641057780196524550861463354402314140399427436665199617282267132458541672034744801341245380436111702957060258766755715696285719131518837800998121692219114580013582830923465892535430988685387121142876764115356450107554245220099179931550722857725690969481538242043761291172221671177668781203485995493188420991368334473846261269253951714373371843653933337283629909045738564695518497250068012810489610411397463948018856502742855443320891812106754833894368460703483833601787650658028075766043206069910047108258653072315869626948592930302578459490427572925194065045034283902472908186567939634874237236509707874370627845103416289384492537243545780006529277981167245966597807630695107924923290223032206967089133681574134628291634915531713686680901888660635439272451330335433863192684595227403147513173707221200015181990073143421850442598577605090686006874639655586725693657907618937672967045752691908477029107891296764950217633882733085434950444910001154077664749045342791276503161600669517999864388913628497836154636005033217532505842789413168451191282158603780526131811262761738571984408357307452304976959721334696647655320003658338125066695202174650513760696801285841903469976400401941149539052542408166008513974875251594600051078652294418602859089254766991611113236334163176411995195016941469640835915134951993088872760763746124779509527473313389360034876984696080584355262511665460325457052961787591078214410483578623789200290386022216732531278713719514040251664712436882469598101755370165526678521951881007895696966640865126893885019136903048656132716748676583399389366042650883929318346918957592093036574873529352579683849892045454816631982775498051797824933856612032616665383759629970579749458501511260537761382272218240434710201692834911842702729889370760800199791539697944660076209024797550939058666449513043886073476459483213862836720197033733489965208491386049213449165436687055164830494174690655880847329903979757888410645598368369441501989862949835250750855830025224672659917514978290834136059737317933491315673749343084961818861405314491159701832641161199799804584927411907883054771061177897124282070250145635808391206050060410898253755378780298842548901020329370751955499283050259332355633742742773770647391401545264315903720820256515099851460251562865479331457924753064226581246904806713091846037996613041231867166061493848989722764261466972573241299686003780376008079558664354222134493157726379015856372557862249553000287250194240071137913901225042635453251228699239522914790906716255353341371979742094883231260543501361416420389009898315106574848865881816075413244045107597022758019703871727448170793532994622639055193493517429825177684438842651643556329623113416300115705765082427927477750807117554415612003798825408244267092494632834651156009256378619781239171651794165889599569311648816079962555656509571919628671179617148770298446816522205469941963841949915651509025289815592803687862569952988465934995603478930030981515861664863566043065744857035449504962872943702831252527783246372682129735320336134196122047803872267243296210134226289267708611185018317553843908506691588944081927632447897971125593191862557323862700850857666106033893626512839105741795334680568523101794908151028318578856117134989947302600069636365499664192882678965692743143296539928612557652190939047131449734969303994499784511621179770874718677025614366919459890117530805647399277953583892177865031388984723879462708264972646082109744403098829577983444944966510624634004770127180783215090012008504526248932396635947407941719275726254700683870938418615623499599600507924262547367681421001979133518036536693193032675075942943173681163592741894466168469845519378449718550471468341572878714808678414624574330663474721833218491265608318028079950268525506012942604684004862871966087929382847623338806403736854439390597144380528568895812227776457688091226947228794252627563167629153966800167862306483904743571830266160642184298519620886141258639593437118342758665663808280049251946732041813999819798720057764252455998461091449120561423880486833690694054246662158761734229971520499599811060735785034605253178093531017691721822641464712715303308379353567417364665874846327238447225118842151756253651112947369697035407756479058105050721926282820180378675702199276784854545595226226727843017703268707207510912488633017465283282447435307551274098460985593745518184015115983544940401974046418059466185314761918756678957868539284986859757237511296873647557363461312402540023536435532979511155177337237090937514365215885426602661784552632037240815000761378909432933384217481931090782038277208724929948041800961190676033799857232756672206995395309947046276648878130293626727545944121487778035143216728593967852722786666291742355762112856085839141054947218793275243587983802982576420974425639380597155942737128190010104618734023761233266524272676813365832863563509450571448763492689068258883413281420059051523666987995186618596487704403938519198681808445557151669392814516822124944431702117584729638117490343689083848297385453304483859105085666515810780124543163756972442724417749134078618521084508307071620630677462542580636603481802882090496229848728588891455260415123776505634925665938946202948632685768397151163672473066657135210585854254491374734493703055718912165417825286501362958152659954441933450529508583701893722226302777196788408027009235892091228935461150801053390024076364398063550957819312311615909177760336711228348262780996323822254113832246045497608312745250321998563687404992521740233639420851869823645819633018029035949620822970949763248983992692794724447997933129901081869644093385480936201759091579836857571811367138279749869425171425714313772152703120510812577555948631409202806752695576531621069815463065326243828100478329285134780119534338819972866055252245438585806460973756492065420589369275120124776670166783117616191437719301934199838500154919038509002617431124335451642636881132358809990512010609404285956652860648458397406330731927213515858902554591508460281972173528430594454640028766551964884549162825931148844134755270697552849679718415983556089766591530703601525005078704542935216701784628208067155910124828655196179990307954005735492572359956422501870576098581349060158085953041216534752454208030535978719513714157528959874670869170770354984195098655055389875242447996783680958829150718358693664495141321560349431967583751774079730859506451632043636728346550257847153665640209727701198163321753097519830957643074073350985474287167049479005930428792211897008141956457953066876075308614607271975580833264207043486617550052061980686797669457790724859813965856944235252008233152676793164081046474755159724122336783265850851673629130112797019403294300120929123895042155746204054197417165259564433661022069587286638660999631581290003779757402987985129105242715679858318020320058297130602877013292790807724173486492485774664753260329091300519235473330127651589295108672661421945556371330063486395599366930987934084551098058849608937182306114172583503835913802861037612694971617245044347938287425375942749723152962760141959148488364681307211203864254917225622378692778673633418725564749931640629246690171579721241854421892738232507157762213778839184032614758053024180953368990924770101597697457827873412140385610079973491351954283023648469363964997417942262761612129083779380158221225831487144627923143298883910237444199375286307685512918275013492468973017582658121587951215197596232261278233453582634096848471188721621158300426154948157739819378900685423143525307758017854620456572712135886701612664440970238125967088296316196061682002471071562589395721175720407618848177528634703193649091088894282567558739662270129687732370932790227725290190767574918087440358887430704529016287259610024469504363526259301078699564107473715657208123177081126588873351818706763950839129617808155251333689107430670021763466891066661706688989441404690637028799151794502306287946865840199149549053450242559272137008072978724169790760328753665743572032841075824837728491809595883215604717065739705861689765933392269056840705010776093820111799920445491458579184921905363695229310918556256203547340263782715385066280420084256308360349210234681314045727624090349404959455866015119521157811593971230498879063529863704480425513329767363116552216703073072672730197023544128112559663677007332491615881354133927299506361298803020819275519178526467952401967429966815878019370656747706961907160515889269161649384034385704345261193732809587920081633568829720496722352212426925994179698592923938198352363483916018127885359644182066363649140732638219320584530939388436305985899456627462223272838591494781135282953655372642564270252829595224516512702215393073466895868435840509681976389266178678655546640702773269688162882323379049255475132599895551030895531756445233351879315724246909701033933931361503595290486634694241231463463977136427654849354626653512389141001157689471266382556448647735381513299868328420685949206599858286260306830515364385066174013335873782051661489053323179176983511871153489699911170405327427352524726361312799935835747272512368054303201703842490533537633337722588502320701588984480979804396698493699820843634072062977041344459769029418139994906172947241227615634783138113359736793658089311001971403792460221182406653582399124919833657581634028653133802882818504713350621118408802944010759601953349419872954482091916988580504759841007729993612857289156166730748513467211398930263765484924195365247362114928019824865008243075111767935197387286584805006798632622394893626362848648615980936452193214909365095123974079602987874378116673596406734764625303586715849179472071336851919028041684781371167616566360059576505880661824195470523559092037219770316355504949958611132690616442819933910237844831964550555883821376567622716821317692167239140283717716164082931051228582201891529786301621082130804179095662534200633930133175458984680453545336881065350977185847319233704042182959667309840274066814825862104097137562314554479632051698722537253811572423275717365927784823487813426193085349058298341780781766636991260648114543503102829277564941539666216939824419200330072860198938743946576055065158883917163672408527082714462911910158296036710938178669180049423908796083471685381399291038191250373784043603925966014389502979227606827301644065115494700156932701481246395846053117076031270264477017219770061537219820218869503020218387327689168605324863543968763149453309404980580032916849196949804463876412626508773923182529625344882450392159884317490129083640599273775903097426422679125133504670847287720016490080647782160717978501720786967493908076893519818320073533495440411918996290148770090656922157703837126970290532141005453588526597030527338376211330893631569307928135116357766237252525206334805400358821807682826877442357736297746411524087481941529569708312208517980599675142453781891099909977191935721937420685435598299396007208139883968839888860938360369615512486843287675526368855172136160290459388881867644538841106581527724234910171829488977445442586216189811713785866935310641010370067625679270933548653739741420280356295836664524322096013162918730459643803097025740224703034094326076106550223310757815488754802245027668525690895910490978370671892509758705865568779912385929359853461379058782891976113731064312898484875791689076795075074899069941983339160842283592154373917373608688992816568971289603637653149229839085035202100976838707269377753887038434965584250387343234020509736815047693910861933761806352640696886371772371691255852201807552544101871494130236525042479678896697813903544866749445592988436259606018782226449324212556392177879875819848921943460940055296101031285463035389929803784723252808512492060177220361697251639796283428840402506174982936472710765269790483111435067009017073761311114433431470828807767757730314261649658548145979930193844778086702777455818831142930785232162031354138672257898582343751811493763668315366105077374566087060715180054092877776130445035440006920449691723125926150401033748382203062639560260877004139530675086198802478339692302288830524924414976102195259361914987874776912297738076849113513259920210201717014455544253347465574725920251834681819234913631901257843701227513859354749113497674801668502287661872831307843623990440491098893020595600670829079533245934760030627595169933494626376946342587074065486744856450298890483892760129232277640285914571942212909838571171051544225473120162788422623251973757521454912084500535284225496671487743535740565299963676960248950993232792590515098567270561115832796510625253110241612371483405607708302828668072316414185850288763104973056725247632406943082118270984750408168104861407331776732572209969386806082231806539646131099308645701574991062347048723596084899759715788876803238186929552932533056514616862892907102273715403553817808121923103579739350810875473982062160689638516234715324379886994354894089307801320845604254415104368721572785467842413442211724712713310078317033849499135448187783200230459978342879468545615329927325178635047504524099396646323397013100526017940580326475145932724431563665000298051329707839606079079255844908658623955483898842276497642158883102747981222021611907786570833955403465019014981969952921774114903346516875529851603848497196948976748932213332072504070936163142202315757290219046983264051500429325642518987635185228455863004149459543453068444422477188394844896072407412228486462182851169585598375441666862569458353568237846792505322982849493323801329348070602861807825250436312417829546455069190456597204325656694415498439847081273697939261640994122724623387526082598830918176925741171201404718382932818223406042851211590936038632620737486276351714756898934598489789670930953776255357681667336001769665522150265315039623236535089303606665063901983606859453845327717277759428103770823617532506003313599780215405843956910732794939599144415480788492362734539276897173451197637115006532706755674818761538900530693932313116708146798548894367365692278125353292229533810297888932546922692276912231397633492203101847895917740791631346027062235291656180076061556675576565269577140162063077063983670991377601351640010775450256043552511330195568080071595500515089452696977418878479749261039913820153621701974424053380970355550045005992853594174102107363618076424454621247381278794584258807095051443802129050391215976254209114184919431445895855272679860031325041295733623330628205749394666753115366498804507697552769080233539038748353219521712985401564824088980129908793254059028471593172336094533231893214885856846783364395055270444721295381037570383406330627526456385361186694544230009596196685578499779515729914210763374181979310375810770223213127588148492927793839684273241280715766679406573760459243595343326820793590402338061178076941921205629164720159151452429006731182384248767989203467726573950901494657164971325870721246690769669674533736859758114115969571836016895202929178680125698747392050811726444556877419392221011710376498594919705397821136376179558625873832729408675757107032394661137061404724713450450689694945720018600325985165725418230704800819469980863659394092166622201482462053227013083826669769687790962453737370144230846791727074652912439669205172649157773583599310084475897105007893744085043045100770338636412752663957472977282231507211032574345986650789130916698620712476763398932808474787675806722957280240916173856097294941270538826115536859223381853250187919722350024848086920288159910667149484414764341760831353743327254615614472896112951399614967265736919646575722960550052799146885473584401357687045787199657834821181619222943504649033586369923031383375888563107620709130590978728430995714074456673417828979628999607689700333104649618319692985857331440375585739278391064600540502890234977931543642117810254480570530526824795077316989618367073410991684109665850649879627789283749297285664081299127645001071225336127947334555778354946052550902734053337936791157074845645710981002538904290480704487726793426195387636163744110782647245212386993474478347015902747474786508679296635673189379761465846121624779716795762559222650718873193318713833281867062033519291715423109690622994961330891971356312503878527047281359875808863862447363607567015437589512003673402702326861926580744688995381222103543566554801344428744203281985162201711357817538009214878964620719815753727449764234233212527897549472699290017978655052169014333276978926675179665872697587184747778217630264381875499603532863391734516435988175961189743582305073972561142542211261636732291868717056676568244141946524976750836342396942370991669831156094085076251052947407838091962061298568836020317937726933078744384522826314204283517604814845408864394913780679417006407507993424110263563382602479166615978502452511944996807466076397105148507764112195087276643235193103281827334490759047543115077007327300509493218725783817292202464123384777714087161115635861607665763115018612348360998020510226806355455131284294594725565656290023218086081792509494312156307433458019739597524688765881761718686014016158094447341439134789583097529210274124827825121313230578061109588735977505037212267243950549411898789381479413419357499082088556726645664641448170679445528704749629212090085432132682580635421962902360340623550916993196228316093816151882681311285966829416370059514655155756432990449464436733053521063416452900818833029420374032399812369051928787154389053434291905697243841732384339286778601423874404993229987697607098825491056701883753652956627849755216574262328843488991016191588024812558614745387163323223021319717497621805466550680465642936091074454107353658976136048520253422328703125743989295591117142904618618438610619002936506963767375195670848005273505369259645914458370073702895187742793508437254984953373985626837582778107228224250900394054673536440702158732174666777007005488156445835937414522255740990127372502735872271833491363219201304635275197967968126605550469800803947378751913997403614553147953596687225304335319395535482612386562961408828235333089151056668926985635564176334271423762409815058881877569689922109674656396562939716900125080560941362812970228155000587758314272613684623454938747964218259256353093834113254215717898064350746331102920819777813348288251593451038543380640205339152132559443596108702537412810927934584924722362827682320720264759023822781167692576352013516669358705004859758999405261672880449569019761980495875972832545038653797632200990731973859145842663149478236394000383178634681561823602995556342220055383157882277127056266724592893389575986090853791611029476278687905123090026677876243601558030971424455490250182690573254659656527592942016753805144234359979326012551260441532529512514725685944789745441416064781162003817135458746144132951816271474532238600603699826705223672439048614881575059508017450524044141179812784062985839987239103573014575035593524190187741617348916024778980658801446429894159276474533284010408505743628430676622614868255758508218676116187560184886168883770709994534931486209865025910782758243644941186316297423463169111193829384532202955741419368331940664627052794508925433557594296369566009641096907950005126337950027452266504398853967589247052106201787032968339515566595680078401760279072156645198627947200667062101693384394959622701503036612156083028939893943117439055212042630360960271159415854056064376507099969164406693089182175836577479498180503832924485741281013539996325702821821466278351262808069847950689638572215193477541505638140894390597184631808676878298505344382682563380461696817466493612430391875444785066908592773888855702679341309121664409106113573470950935453205986887702058681421357235992574921500638327294242125301667121801088477141460192602428677483465703158710806482976879718047952709605458210891774497176997528252973159231805769381195403995554314417679826432563085411207405002081487526818359407282674942389770234361397679166812897148664999795259424446960790655248274401764931666507988959477071290519457261311703466648449176851732029559501229344614390923689466605458036227766943078462450011235958220966955767032578858319243739009440164204508127847071961016479730951774246769176263791308340043980523098833876531405171269278992242918420121980015234966682270653102925145257292154807533345152730499754375407058297905571302851913979367008401483392949397679228159116616661315665360950871047063504314615686102862957797507456488948111253682644794907340796008735853504022581569641254457350547889360180469985357149472432428871432765390956511803514747259925013346420731985158549991361036136742382886643416214378721681926172899968961361835503029986039288106590257580907693973386198321079339455226062762793460000423501335248992082796687616030092512137194967285943819340417352577270501631803142948387618193109328338692431636028651418802212129917660990384497752491182657131019157656594479431010593309003294464146373911069782836995279727274310320804803631822747995844331863629926920032586787404518451895280934281213842837238116732404114130316936952678309089987130826504454034680086575485009006523524243311471558937842803556169630188628444364002921174368603396036898235151330510631962791685436822154573468320102350976411980630046656529474146967582480916749653753399380501784556249713567354329429197358519935068169110824149289207752059592304268998096489595709089093454507463018267772396627910314699791212430410006973054965305656241049669758171281577373884871400605419177179564242539523569596479920121194270238010448766628968470896041851454799448807629428578822850273268683501132389680577962776701390419344456933271483666588189098697477907009121739463807751939409660518917812275472275447561667798711622712084622862025244028997738232917547453376301734586271637924261740420056596893378038833087769367569111046885197125526322201105127035316376170647882264859773353803877426659750798334762207793303055865884611044682686760192993860284962440329559872263355702495089023034178094740382687321281346733997390818701313867486830849200083894038744198251556298513966605325087819383962707639008617504584992483518918994278285541001689285492220602419831897001921291637220659319315772299821560734294987282802250335593687238913213678586388808856101945166444198134117077989541028792195581648511055120116821487996433973111567456588360578756879420188869364896929688736594217737874961411264644273120733470668167053021910490946040795849071912581426149784542301648555184549015003425570660583584580941429907910948432905156415239778342458378076473512083461900131232048445233950079273243783689527826205396972515548482436741889627974606209598507726619940199816820798635155203284667329555562052429366417142806552443548725744108296821309008827780302163770057144124157658797653843083583287999015703760154625219221842807225890669980534943979527880640167717282514970497846412207125038041278769657050275153473006020284124483763721895506447575507336571809655506183977719979248125031791947896355890618915047120128230516118597746015323450265664569484953275521893355592386926340468127901712899382724419652093862101644429914248636128684536844797028762271308468792655286487579905993578403447924407919428597980364095164211708605379478191346837394236720458401733899463473178138254190117755312735424595825986395246191630523883452402903753931349298555979164541997074043533412838242989360961375798757591732378694762538079546469481115152318383665726641281399686373248397744282496941361055323027691403680455580954804900077874532244691010779691447764222142027836152417192162714330557996701753424245304457361117765517085760143529554965638086200396988673427670263239384035779238262442026152400419576675129077671108677613595810546321981449540563939650286454728515103702285840535500508131466564143708166991743870617478107452062354995688591051818443768327686944491796849831241270996107985610646825830099146230890619629269099942800051480929248149553488930767540440008591058087566769250407127898431737730129186834007203328626211541896859498855443856977983059351804368540500365100235778854139382914039853317927292986199158927619616200838877300895920512156015704562628386702988808902227119700354046401922927466209765955689345637239884987208016193110813778566989637366243524872520435119747976036462436214498136744435638766761072737527112382283377747815224596060599141007517512592249223389515759536199247357521465230157968646540299704734393173095504950207912582342094053375971048737634447341321020375480622889846643756278659691218047040078226598950187409913101861988837354121182582368145108335679587343708548785441897292324300304048902462942300526483513491107263993696361522115925476073290600500385672050797215511029807247678946472842238917481844997298342683508451057782182411346555504533000209139256451772471510020831227111420190570981089145343244567764987289917938065092742016306448047258278901154609229732110588444803293724328761962512130640854861889998315911083260086250124946070179070346959840146822125329916333905860763450900850510999595145210468128061039012568100965747199938905908634997589176490227529380771248191887660029918482899923758484434901299386488323826713110379243241935546279948010531365724249400594417523085275073984382048017300011207105632413280211683810072653863238710939592780026634458761578606214192948387561669672443188220629848453341044411300639452531186018422432053379620840487803695403038092434731249750873975786162821357314507796921584098009249607732089300817541374300093841987009766559667913202785326935592474103516319651885303545456097260988014913455830877598766422609590503519463317222664356196648274268700846667154334036591517446081508008556541661387972898259442238186716315592804692526284996826772557581906449860474263560670539237983533952098368727751865927955655844945574396047098497130400145241245083774451230796138774560378831242860093781169854689725980889654357533370665195060204002761041213437891624695405787619228501211236704223165057189202894229968298251606536361505880660732803098025756910338972730465399665748570119420172458346547386396676529889494393176033844681330695966229850403104255663361870593215713951583550436940933397851780788455607953496143971338929356063527935092927382225043997511606148038707662598731249849576743256169144815890648241987036553522407077355412463859799806558576776898534559894231716286436455546558127051162831103056751936700931276263159496355340907409409735550270223828615482762045269433124089164673802922422706905080837704425536254466276632570051671290430926536714995291481723392233081006715668404711669619901403650835816767567574427426067566051913829238556273951367348092325945463674941297946303454939206078537117002525166898441449787989647188580009678561909615712892937477198069194815441197146597005000811915460821210288291147968342849701806273316758946933202196981834880101767567678713152335629634318056991558681563853564570747273567579306813857228121931087239248345816519362211949588794022049754610936560266581723756205688665746860312309305746712187852541751007587641947938364362008664256674317264967877832990435651797129027795637657212693116715063694703203980742664143048404439183700714726481567049996266749846304432887219141673520303863672160231237175189042918150614261981183037916893367356128105049864473076063642517834729318556102859265146879750296740620215362946064560138134125149631022715656189555261186154287613709467548151068636282447672521486481914260505974889339128397629596339202869819058939006686839396796308781136610893010871096381170814812330404256950315294245650541215255449098831279940172957610316742097273405389522828922651555042159130489279404565230298588033036218706573404358225708668408140631076770017323908615795366920801534719267701040864441147889758493399442078095757334065619693401019644705513484173079551621936969498951705089511935877778217172023932256595755263459475622088066012429866489494448229399277598322121651458343786460850985960789860387410780720075704823196599484828006493223745051327072291227102035275043335837300128932834738837441828519718078134071496672525907733278601023663628678080057866730458699806919458953848745966312448479901093878436712377626664145228448799268910936469507542040305418380231095977881576720056331957498334023510461041278202060015096458728663061842394606229757059524745145166812139229597765014769258532342958500523794127188011877039479392626807445924612951494427974477940001681352841739491711917807662250692106081009030639109938944117108484939769832560417768355940647487296339843963880633982959758422122330261322457170525618615856406081433338179785307716772404808209995889481823384113617015701984737263431012572909786159735474978555262389974699180445830813759137492198398422660334343793500867433095234548042784108412028748356998437132516316997525950580790263957827257664672412808154341082209782315055178042972749140915707288072176596293545192972564819390940825783148539588942082374794814729765381094163012827424464721504520345155908181912361866029744065510415451051949225351617739277422171381090243259259945179083406579436074253291289414005852889811248116284929897103685042426093733748778690008661409400386707683806830177331991398832019741880189066516038931891805980050727592260987672044110198854099661684452327653267320869488138793018719244165165601813806267358762626922216085780059909717030825689475569256071018193283075700389987578923339676883424340611710374516936185912670211425670647368556647487938525914615077268073819234189674402666649930565468993597968914903542526592549136297306080859365200196863704181059525697752269312508246894031518102006352099018382528149485397643047378733138493061569247204678965068991604068684213162194377646238425593755159745980931985322178189017267071003715885904417849882391265184492599726616419086878621612188867164835407125522758896579930219292539616200808506410798143893043549137355314175855143644361971195766214135295257330141927860451973041112062985669342172723772821738754767646264067616404548532435158247305837502782301799390092866918046942754848414455676511950216116830874785172223073465862916989519108885973486716247933775816533834809258275249774922142698976270849957061847090700331333676370316533096197944811081265920413783150278685553419964902633282684129235303857319769361256189081861649486930348428817791105225967515880544080572727810226379689554721621075558985481229679649706044002039556263277813649342429174886246116008886643273411209803920538758489919247616537340815145294288554422488394345439174599016722885501568643429837836510365201994432380609636864365898708617900981341239155678704482902989621354013861619191318761594596051032175131539429439243268412909144936875118768448843782323126786053508496674529191355607012438657631268639801644785621069534168126056813266279370706145097689448694383005741382947760538147279531721029656754085634589280462993302812539165754520454551795510986852328826661446000378721656680637059606447043200883353156148438873478445353835763430866374039893360164122281670660853784398926499586243588793602301212112188524248262033833331792541156730307504029130833387851334717536350191628085436144784673861308491885782598103210170568377377844141220178667360679982003844144060136728012195543618820932958125873444049481391759580260178393686442628360372071064597425605759998900397042158364845894553399588444530628716132777353121424419454413375378010670805715547416806087849883696619314743792640737491325511223383189669246598909321416391243532525917960119587705046184101507239462257004512700837446754805035542893811571081464282685221305738185910808380832705728667847692781603167245410531500833053982394270162314619627256819280168360934987971729739341377555638604590535580146831327937067666836088326522085097720103392932564370482974250861286395942796105557320815949730499717930663749500840318253230635284506734318698669330792523364956922892846926251173633332602384577978781815068631366597841694262121013599366178688493441813643063525705406647776385636126359542333299764058657966531292209762864616866694954952962901300763126259575546143147981117870093947858865838736143291924736421241803847859821441003564770875260535364400403567092320531687723048136595537216903405103003545071884518805216141071829331207426693759268767766348397760934490644933519539427914935310947640934325029090387045052243832741786818591447272597970655401229083952321405942659561800705809606043092482465992546246905928919559264365101719655698935202030604237998117117136165178288680752007922681034597121572288905617027632271167542222898854878810867311748999113128132389603219990686230940208712490776939481873614727149358334603593391845685908179825369907403487093223487288597136351672170817797633943687226707209926827878359528505325641995055977006925400484355933657837970214813930433965011210271818333637257074089289184563914420390799704328085932762958281355469484178364270570998436296061114444242074652640808465950511268706261101681399090387580746162687929033179447588928200775878739164614512350918239077181963789847837376106686264157246193026093663700918133657154342720301624728722519982572887767993029102320969489319768013024335646229092688596081332360143265498455279954202279256349170718096623366720877188352057618908462372625901637557498690160482878684209985980042019980095302821665149901713159096055227333833313498448866175180794603787636211534306294980240479149368703179636622479159165838252970989095198592173803698965273977091289862515789015936095238880627936680773209344455773818027829596344357382692096157906459208895010431044897780789118387321299589576048618371806407041117837370968528730021112996368333493301288481933443902127152525625530362392335309213916598117621551269427774049553137389699637108714728196710994544297195766806073598302484967886989354711629191655597549083060044716407027594872390252411143707367205876134551670977429313689680576935491308707819985480569081244497995029284469620787964301721569367109360671928699585230312862797448283419617220956614103211304459847454278009823806583124243540622572428543804938246750489904360500949578510609130528072874491571651290691826205695196348173204420662571540276164514265163851460077392390183240759442125498624613484350798063182284302447199822679358077801431542164134575006790769721569132356656667491180274791600962225767068746598351047954613384360250463452413489532937273851669399044727553162390914813841245954242882515479281078494106422344075651937980209593919683553252719880232305705753186373237777404343340653048053437844440589424412464766142167586620718477025003194520307172346968550492729802737240029483641581955071427725708867620599947349377379921014370579935663948037823934808792718001146488685727241639592188444587211548731852893507771619314069355883984001566534663892525278719542841168208326407814184211495581755874014521215777686496671589329675661098150605246038214757298391703709940736279984423058164096651373504656538449782081594427988781916741850374708409089231909242831308612144983973291634740602683480661183385598857124906479881070864532762715366570945770887150791628511770877159228926816999265943373364754088517317910557513503458596455913349341947941915422164347604037325220878883050365096177925206304867749806828382010430222772415051691855139453228429201711307504059287937220011491919377019900915358320762534741100733847986383024077689333150595508445486161704776929151137757662074769802008824238762577734009189251400605734914625816610111489252064777476865091863370327939274268161492286562162231344532212766146178895237616962258698508833257605213083341876847174716870476975173193372987335394586363932540518490829894528825384986361203875349875306548702057284778897463744885349303228330735363608112907948912382231543347956708075829453235214483390987834061306773957748563655297757370636098195269481376163715448901401469583169277884129346463183889096778363309956427017579378391719495263295561506290459880746026278594151053359131564970224276980030331033896715482873159249153600617414161498158130194867175646588446782377345794188327207250275936257438502278879792336178228433033455329111773011189410774332538465910459411927861437922981946055504563331660209447022372615484865746661553351250673092246568651943910759775784836530962818132535524592305837986868893692607958591769176145020677118954766595823674370056321976749053035690841680737671197509506374249649190881870537167997413915865528597470409559216988453059863470581783220121761751347977578389680735425762207993411200593521423447366599554799313340511523528803376063320558153619272895496926420621932198344188101498332714042112542371157011270838829172127514815754004201833483533090033857165698812774600538515723597509633712635927702185925797038233719658728090092963680549333470419294577018192434538427307232597151313706195230249158269775218081544751756007415048964681411877585383723592534136457668883867589657066016528100649372534126697292814813574523247684841156183450525235828161428328915637266354268358084616613188310886566884515877477898229515017653052349705654510950163880257777552730909969497221034855630364365500250558825168750940066063296580974257403903249034723622534604854840643337136494613690393986108796807465406057548916464560921624487250147608558879568693040009368362176895499905861472583158044026826238027264637064233107505179372593899555202836322061241545492744793395163901405653444526503899984571853375375948177300221664871731056531121301630711140652646280608596682031037364346833574367064556036742195746095312004809336636979931990687462028525743141419164372300118373059342888819761730799125062653607306905192725560587928264405149405036685670034666912423090476187379830309480251967539474744407735296891336246615858452478854313352630595705214591900878723101705293143238023134599670366143141158807085455172175997502970164449931546931904437140863526144772317004006690862636731702018245346235316745129774438840321220937242587432577892690215707441266200951085599361956023695979889148450684566718480633623073455435383738836264151579021390786464852368262699237468262623204417647014266264583141530182597548591054320386684263874279494435419784523720130794196746318090391794471695300792213884429925606118026627686509761616194066818534001836023636381314925033578135798273346708353362782389786284861348186261057916991728056201110635476309947878904247442833399114274110630199179090809747975503139603252235061931829735525368149364929882911777335866100862837803385411961256447731895426226409701127091328643761503523239342658840906412385669146516448348458939421465119154613462059174886555278898902167156720037030383373336694022280220634037052054137445788645126819561819353566561550138058307101231760638872150035424302246895010935241572648385000901522650105873078037420421987059461009082418591184751672116532490203842128152307649288289812870103663331714519419935771903341192258683658253620004651352186368078542736027421106236703442221754599429858503607648387811277799237819825561470746056174220534075817634339414810393105017233463490922147733396034203786763847829898617784382036385289209495466022530546737416039520051119265629716302691409831662778433323837111901990616093985856981992737395121167962287370918033229762317900202873027898078038017464751379996815102003696695661685729867194760084207921886819970935950945439769769027828457304762685190690875994182262903436520566691724621972175652893131206173499694504131216527548138758197453887828079158737033013868651486295694087157462107183640994282835791383160881671606928046297397882709881279690684255208033924114679772556425423043043522217592676269619543250172560983942968256040679119483768074410117467407596252112047835858246468357034863149668066015066275304688551748013416814728821665105175056812869202526579038710462134613014280262919202844061112846994019906672261508639154706716617319798916268553901133001279577812163504587172045827315203226644574251742083019862679782865557332206115697886588587504006171033563291693039234042496716655082790136015113725105941312876743860715041241974840341257168305711260601098122334174753133830165079970344385343967684273505909896623427931533142971031878863334160849364922483114773198490497338150884498529658599120930097808348779935013757231765028523395134701863525043231669082308045980613035860261979821514786309422710268286645790377837364459059393709095449379108590817461965715420712532118280885762713580954048301217929540166731743067603273101118264706654855755547789750257486889554156428558265343649085144313500395967509264685479719360048870217673467483767746643622641447195650983490922096218635939272844885627967923356963963323078194735973041534696599448611454703632817011529240830864660252453625025366231694611743753820633539454026150602671292903620136065096980842868785111676191119511892790658971607317384729535485512687895241649102863857029360624733809944837246510747801178617888891113470392760098324684646583859439334653236867676109441480564720219870124524486413483151725871621422759751559494284708542210466368380954815839596103167155161934757137658363035228719989748857087037510447206287008469091344768278351135588961458429932246100295833093594972782166435162237316928644625764476762610983289445823685760478442367619269648396779763312443707059156671908398963229290527183316016427502510829696950502826535852052996891066127822070001380460840928892769578608205544915008855134964051323582511206994022742162905911334768260412022894906274517373712130563794315481091273351012003488837250517299311529525676666780966042956944451136595179185827474063912614987052201146029073866966353600284070806961548271002630750764824991081681571020415295223691661607837734256952967061867559076066482271333297512551431694033594434726905005464003674541648138026159633862754729818515789327201635915285696548398557379347125928278904295844411025185456441528412940459312284003089974221572366623309788349091687120800224535454025439061246770615904754352501061142102400052895762885886969898227431527025126647184249240095554777072521084516445103232609393108073095332459488369702826608260544344364383620440040991846397917177081905443667196089864392672125809294409596602253393786581822861115874671714365772007646356883265541682608572770552204089399319438338886427499460099251944937922852410881009774023088341098906632997791795551888168281426339638336591057384956220900233210324139230215552926962773036514118001385453449052273338421822549676302208932194248472794692979848063073240342155468898620512297641040161475719149620012662716298146358393790704357357064835135073325780135510569196439633265580383908490900165516310359905801898669191873861381794092098237251046278564947607603887456654566053867031540624690555769702396294907832931367446728563502973350811698632714772374024008058577649525586350906692428151090349406654585144146351602636006939690023472746110398944996237293476040948285209570457209563354865191516957635386719189334749195213862691097133955306879761070151949545647599471604003072001548864443395448373704892678325243531379334418978286837066770667043506917749906059694315735539612743952391528984782679053860302897178739920534324610368969434101924291634414642835381408286724419321772400988423303344399881179783840596631772206640513266496921338887088016442591338333979883315603813622958758793747321719987178948423375908347629579997150366062345628120245583813234625473146268614510689518191269960938303500793232152253475646226555161896189487931392792707718091593098047036027210637136432220322249419070530022102378639069659261113277464051861941861891817630362666462447530374800476368994448020500093384327317761483322621216843449336665208178525271828969156524469272309912405782284665024361782428290926570253909255627236332743830577279566884205744612625921366662852453074433638096025734740110731286809713266088185174131874701452213129110036056291301331885981528959275875298665079028655451193643240220577916491252450569620952969464764555214168792142667805055763785377807642231878984436225320458792014427287835620587260415122886999146655283446056791620195604643035875490267266761055274744651300481499121613064084681610091866102745488360960335795239509807027169113375084370042581368031742988889820516511130406729833756479593301717863391206026551080877098798714946107041051863644758538371554428924881759326273127202924201586989622420156359900293791183012693233783272291176243117243920189874504539632912508894528371669907479278329032995030762090117449977430491073796730069227112985600809953786173293523349141131189361888009892641037940768016409733973992193369343353757886847153510132425843282730708692590470412796434218602439372649465997423744149883911205386509952683113442708842254984989556844551831263957095293100261794026785432818894411397234900079729128659179803470231173291947017655350137066725845574580824400412476679237703765560286219910198960262348683153946974528473451834574498688833145200955903722011424982197828232027774654632606224637172021595039347726868519903044990799376993895026895671439444993197145714067770700237391562034564909520478939878939694637600801301018878268399155592470579550268538249577510884534709067598324527801970146604306162551550242853098719160162140862160377114394608006317099907289889970541824167686590430986310989482633678870512206413804844535426521578720794645980664810560745944996412154700633597620736869215262066304501571780840599601255875525816279877091992551047344397077347695933309723858183441341686027099184550420390537386233536989931458734934195621469646696478522576868850037036187376420375143104926925076935769982661651308309072207623028771351619121807838714883401909343045266331026966263408420490742471911431412771632668894178356767617181384083062137926530566562337419290455730309155983615763887726071700704118070590544242061586716246495304509653241225905719795852836485750782380194388662527503095891564632167718855108542438478120326673502027525169957759036477039793073140060865228509285471665848596561616628901966696535654429289396123235329093958245671132632235723191997946646389092370355577755588906343436119628444705515543887919932749549489577313468509643088570567859627914416199648992622981571601100220901356706784807789927986253579049455285703708691514859203362795325217630189675189676374043682202418704168424249883695541451956737166932560411264251776634587668028185501384849753564141405496404768182583180563008483848692676391042919840521808763105892194193691949124443209302112786414735218927276134339635295622677952262512685715058919080178277537905803245023479695021034253029495738061434343104539836377779168870048505982997339602463684556567973538568169231194649060479576321292521832669029462151242238160101436918759781721049017987688314438471314689085947590796752382794805429567101276690870267206080281015942107962704327467760571277656735484973553731675775828458562023915788459216025856590907086921629008303996930692763524937162313110220791914470122235208151464087750802269478773490061910426754199057243872428517149841501152794541487440434731834406650842608196489565190107503138546038046964864225984698903688062784581221907994780719477072647577787913496028850825006176584722876667095143569474734688495504250517002149766532748750526934703546043196198967524870073340353873944671590638387461682465945719758038314494521512937950684358476441178090451056106508654815168745848052737316152925082475186568785404194625565525568232429213860288445297031521697053127453308915955944204964416516399069017018281983921706301485387177525860548136486150172174829488911894326983135103928364043560595907666790094457574674757075973862318979459230779934110200587128515099440810353278902537424799208090593531094047265295962078996293988432029435453303510441884174575497768227649936992599280962867445741154448268727671759869198338430702542434143023732300378351696751255783399339740881553396688375852270065835114014982769513015295065108498781592021426894025894491333900233086848627771341446714677929835971087951856303509697957876905067528177904100098694809453224108750730591494816337784403142053503929946797274174094274992854846732438935315267946475864358493206843257874400075214130882633010153512675756572033717661842709782725893719479466346165932592055281782703417581237459332454839752509545331102300456250614003153887930519530375043913908238925053798966496091865073449977333436154897611880795649551158691138796516714494078695086449829120823290081482060485054242252454628173723018257045007380112340750148817193556069494634891029221845498541760187425673466326547251962344067019394413538482459439979006901281199661915547194128389874952760481342880328296441641228171326606320839545381319677121916221763698813178938790027586617433847803116006486078779653126351906240857799624210369835816640571748548612193040462365744695366503847418228905204109274128879733009257238182527604513122813380109925331263087045027343224906500736286967704550476956638559555223942495818123152394683006974141736237249097230098687430158370789892307244787244108250917661129593394203960046447642965846813023995800718764418637473989349037340660981012735355880628764876075834221184290239538626206498352178732599800675054693542775627829405744904410270083330312893213278482946114870840116132238803462619795522019187104903452395696651181210509921052942647426780349704093330802668209879171851628752006153430486341054831494115471270077528793424611402770688888685502610992092873578116676127690051700003413911654524851286571117731089368229477213770779994837074598404668249573942173322469979032132450372490058846250191738196313046887028836629071867132438314178067737948255608632042409760593338582008959757780221027813550731804922835605729383657790781644341287716945259915098780006440224156073036838656251239127123786446691740190439397622376626140159636669640796583741385487586994051705951114784887134379058585677863998168309253886884122939851871954969357741033523509120826765550042696963659945860381364687328314934946423085410653131958727403048921854202850341190047967758824288761305861919185527915468682520263405874640153753425368144793161789450042756428130478585003102372865158416780614289128428800922237978822507940847278751294518901101824714241183674552573036745133016953609935138186552499746198524869568990508786766609186992110022902940362723119562885004413149232566284681229905947953915156563796361759396248776968937859228331094681172655878775070158265963149260150391045551183270008445969591620960731456429254012906912325137474328778634628101748524716993567930691506385695884634277829529050485602738390120678269614048816781789693516459199764577609989518392038587876353279832187672144961608121195719021524492508655194241266958146601613311309179906136944391526109230379851229453933015761577446768544278978490191803898221117739148119575891845969062265437443649720334588620747952873585368428097171065923027582224550322145481264468993299706899681341706263473197259054440583824276836013350050779436524067576656352223781898891487476337318422773065516283664198534678654135135377848492550678838071561278131895173951246062610498173182160113455339825910149336698142708929093046184571540160486926777928019019537925835661808276915099446246449210579894641772492375259600423401508295369729756088301765056884883443389592242934143145045237449910475996193135226624612947752145196860818916149404054708706796045091832443187765390465498728229183175998331895225694861747704804075303084307041750512940741618171741677656676988436424893809412001826053382527679635567327840271311304537645887746149492159344021395725715076345781875699197929193473407280858274959035921530691540858705631406716964264466368244197952130191420375752102942434297304236494126405986951567865443571458245540012537546636521492703253992158816967748114966597816773886878093661408825932313577850769678028556568040746338413985795562419493339364574427291858037608129901104604364409937296351187415952035316387995863064038002324032223846528115516826473172977099581937474177593511535289434137088499991852922135537240395204525214723049544002953934065140540081978231593569997717743076079853542842764429916525311395612561439659741229360493773309766199240460502111982112411780676960072125058642859227516171576592750708773011550945340444444561432594941933266785449949971981044831011420646978258546548295928694946676683267255126299299004806847862726557543009250354742135111876118321757159779891344548375488924445487323589021002834267998424510478878474713101648453942297627847587788323072835810086373313129674125515066056398734153473159286612114847968924924204292730095511244874249416681283006864684946851419515088266192239917408782343627363675633196829964240482284275175103534351843486385439343657892569557433121433338179723968933285812888905126596223529073163716233595794576141724998132420068801845142409208912365950643983849612871742380490906608285555343253787661043197162276206176730196660985486079627140518619279569724133245433345281685608343092857090735343986898606503246442406881630431784936793265584927618303636423117027618063268148952287009389892928059880364811281053414519891445326495340278341004901905094028223152847338412839779704891729140458375392487938955982925468176744668934204853162464956247098158583110261146487476104871229910371106417875655118496396644172542044128782340209395108338173477055910420963324330435303195153873046204879965357444712895775301919324217843812688161598654560307925870728837051780294358118971329935917877152400427263719145425176361844807774236029283353020361695295819094421145736650731553730923686629836157929578437776241232158212558834825160810577027494170768282219923563820558830372154984420470802028579430487116358745099053174283317656520608257314277721659011713695833226799972111955471259817050508956807402745811163057319107666869681643368024771001614143472676950651741261826140934597269624003419576777918466747325469615620959834433254787464108452511367555755695455397648154017772493625291245561212846903152591572352846233447001510161388946834376778847104441238779840496005778381393469708848961747852130750611128831995128815376227245236955471738619122751869228317849141831670762143040029929650185765248031480858398580693909612081416019039888204974818587608820138786932867016213945540524478463526324927611860490438138881331610483466806585840759366115830363485059720063763201167559970935381915560668884522938478194908875470295999373367168785955248292902194024246649557013087691180700669049009475139266960475528970622592449701187831607053199463510290561380229454017363456072367784371405131711196295632310802851301017832862787867221235383144577925316157705241057138529256238248243979496980632113027445154378543580898647159717341418023317356829103330647190104623904122136196554090574678007762266634745395098302430760385351735257750366407638999569272200047628478486939468828990124020594524880566153181896250187190628413500198570180948906768430192686424857928438548246526458770937939515668931609611912706239745669032870303602918509680558270168436526207181165885888567314362838983820915828947173573871342367259081803955246577858413503951032192420811510081947036733148037940215582807175954927962124982534423842165619764225317828055517624707334816133168873622931615670615713178065645709041076726724588046590487201902806754894098598425741195340605847756486996219849287614639350729639639476271335016424209471397287731254917736826719426910100323137085118985702128286903041790331194644097434614071187252811330248376951131989024979186535942852256737228702987334198255287281975947381718016179422159468495116840228703630088757209119503048116481765507861070942172714165232100741584535556124220978296897568110805484234552507536812315568021387683303580863548153218365414609364935512746374554655093511104188577916383669259452484227039961510452260651952690542552991945077059989446405305208230644707052532886863323946232402526784389901708951348358426630991329411371509725912701792724884038895361549736775860800064634933958291843679175858353739583444540138194984108613224568160487067907247394994525109544133746826216174969080096131455791074112856911666989870331718997499166961692696978565128491532376886832576560828648836115426182643587753818851810668058090978540697921562120828351129377074278166057795448605213506169069437531802350646392021877183790031750533939564933061902936665455604444972556862387323220823144438297332330710478450517552303474054585164891835220242238607610345260765180255159910233786426558823429351055819559138969431018820597831280087606022050171455833031866413159743685887920470141431830976372011370171675595204066769535240962047414454059868758642521396637765250668717370048736420614179951519084859329190794585318933190264197087312054614279986262568966050198223346538655377380339874895954830772476289086666300988514764897180967290906680226673950794115928895420679014743261306884017166747765020422593570343959914341368750588196015837512748274536215142574774658770909636514026570636285817696785272877379302493442347520537821435525911663006392418235530970547603055482493511299866245842230892767553693303721523187675879614625924755075364785708685138427569427615585219794914482006110438396390566052569126965164492908532460858915241260860397656815932478594489164077485538185139534475350121110378746599079669740161012396027037334626278138201942525884768526172642862886098288125182149868075019185417053204913292299121685324564849045738185518044253911787245469287088062163148942285339804739539096913443478601234608649617070594557983741864112917449712271479498411629860057289434420987912853279276321353355583201328251020661121623481470548853177466982777227521862939930947773906236977610068950502367823933279803900421251117780649061520887809881764276072455705160921817842501985151134021467101766381504640699535706006898428022930140135076861937955589838234484513950220016507216612739089982894174746857149625034714508132964290893819480824927199907448544860157371246955701395973223181652026534654868837362603784809906877365950034540286161981112433270487188520046239008389366320954251394466340370173975537929813280871295940850512235109385728946975878931191577987055041528247050089076905556028746120444444226096560650766898564192644196281548615116903359280353162038471606067389153308565349744984851266359499481677764799529521472410775335914126716460762279215296919243108250195506913341537685645419642936237463195075741374548605398919722774971711563203707598047321768878306581673112996680319412300692071844007141907897099022936381409882127459934172023529273809076153702517834518918989390770286818236827970191409087961671239606572616785690504677176872312706408253056111911100495253170452737155464300209873236061099023150618608851254670781136280132792765214607957202404742235503411438203083591899902532353918893710337481353119436971324185896456342433973665009886901028067824701393332246843074781707583214508939771813944216668767444628192675145030711228071912224279701936436398374933233571139257017103007967074813818683999527279771984586755718008494497198920267013389635936963484651191489792214578723095565223768660074132655853428301253294937682826553910975236782094572280689611703613259049059497001946803649374269813324594687898719614924469761146198435435731397725387019565515520140885197317385605081152908082014831024337237523087827032176437152547515048555285484078690742788589330695098946019538125605563979280940343986576760041039942423235464587461428696300053588784272250483714869220884097256903344987902788721087732409742972029786622002154660970888113426572827751862709457183137856314422610376106087588653886662043814867102105186076524518489902575662900666635507050316695513433762194971738883203524146427268528570137337947734955221667609501616369661925475556879987477429152005093403692520249972430044391781521143941992994926969758208844503456922890461065553310608374211442997785436070423479782602649850012347359905259896756577332288856251081505356891027393594028428188550274683648470024055154865683967267314727613638749571492189438768748381093268785405316368678389183910765223807698142304554031474096604879183628283464195354036016947354010234208341704228990929139827433347741438527062964320519997291994123781772165303748527408501768329444228083069190086458549944675629885351171958958506537640552415699055328950545638724943324486141631088588117160520670891900108956092876222114061280622535490872513238725420154641419704326729237132356001688611856594836589729243662536317989006450856591801862753146148029772994177690277851589697950774271015302481954201820250959022522011531194234466528446787271914574208894411226544544139635435210900752822202021991615632276745955667025034621849524782952423365374079407667070191183129373153572795149641318399891694477783824011724992923145322923162710686541594513880257527694823764887696902105679425772347745544840802132318865681412276079644083085812432402326473742377118120696575028464044798081477594535818375149127749224998040165790514655775306053545083505619841845651225459118626576841024765813637827854916176650184072748193598199480082421792370027332828081097053910977634396754460774402132137163210304687078528462073929644273658044201801504380946907426800996222817379731657959503751236444027531636393250379802564850551027830848945659389114405522066378301797239335002573926042842302644036744609161619095745800778521935387579923543990031323504923316584477415864353366949881814330473376205582788136007832178145054032268453386090934735731887701701422871481303165188610981830408539405794642843915712117094856318086407725912755717186059983690868409056395401404229086138729362382004738216690384655208392133183331043380893067309371482892180481193443261054836716761342989378815243663510787030294342030667380526964131932233629743194200211857117682861755684669499391290151078525234306019137004090201355605489704291109868210937363517060512336105302113013907502646654341724130606000483060242537621035518568067651325749461726830535455396179210870672165300064018761563011363937005441543012081178299621390823329359416146806500481801339628688616223397842575210997411344092781902108497801545034420359111730860679681106507072550121357205790212183450256506095820564441241957620031152576598129544882855903970178649521636705918534179902475368235456731459442921295481806393652371736882529965833450958427940308928101277937132977852331040035183738663585097130969460377032972888218861240655106208938343829289393649357526511684429037955112897461633171978796848346689992400909107674300146338303216732801594288545623999675498837588644849156834108646864735361450258757000237342312673157391350160367723316789934421438281297928839403863884163975322969324247615603791487315810961181100866050240649162326282311738710828279243679098756022075718589455566596166444431487913321446662762296002645752852201327287696672079861675819662770750160174863250948930023081341179481735043549540824599962862019773288944643792503175010589913010626908686508877289307532920819067195102552191845370818220313835221423707097776219292950698379142931811122958830803456217238420909744293733808445244040047273126437227032016551414871193773001034223540864688023735785157758799576686330564241085087769168102693744253106871388588859849402124339894828411256382694912311567885667331306139776778464070859689987242975538875490820761135641686882556149393522243475207076235535980460091034513097198774270954128265888114595376820212591904948855368092840360898614612543080946426516473847291014412730508766497744534817143531563968255791016036486355347305542108171312326030416751524682798858032760523057575353647586916367038448467143363911118270853426060905016886879377478036918231718570390367107629881506164512601182850592184271428602388600411951858689511765124375690473501875130612527957012966264564718866070704830709593135303047927044305127739055967485164695895010521623284857611681765970917091776877831933047145080233363261585187296818817638133971345848548104177614335142510545624502274780019364200528878363031535275997311036702097165124104157901130948713868132148808376500654959477961410502954109580183074037806244152933302063837017662428735200195001438761582793242130091340658201506171859454211539185012821550022216133692964708224410620979516661901016776089471455068726339793412841527642918132818691937203766980863297136293615037609962602096788768365885629080172449948963944888519087437478254182478715817300501725553740708694240116911239406788217265056188129159299271487722452780814285560442770830733342867717173857573102873767422746405856641105511063733989052678648772922454127808010347728058722770028616880189535330337417902111654648829416804103988749256425136274675547016985391426809337939318471179093009585931615747619618037683738076616786890177099095395583282421182656104114934503618283669668116500538312418634320808084678397013153275677217587006229681350300749503893478992064861366921002743657446764586833979548105518584831751776604632148483031430817097513530562135963079740106474805952299823983458066567047922468721229007930532962735120625941155636666622422949857777883423660749985661002773656231807726654461302782971661372133749938201371565606552586339149602720013663932529821810305344448621181164691750274348222061882515063368102500323224405566689844438975069042824563367518091413365049528093290735012276020433001065873424821169040608452814344658963769095319383618676393137298103852719782244866017022160196116019520569646977606926606097215926476919765058527234912045812182759187581257910576135930109051217053322753739701431340789357207347043812859890094595867646694580272666498292076879667162982979635376811173545028322904573805607579742453795521763159243282167427705874875454216960324981255788610731849781874590581622065271983059759731318409438575504288328514652341113194689881488949477907923112860189704636747322918958472625592674489496351418397183086617095338826100518959482705034446971356640439391775859451814488759146271527648023777972512780603278464206009192340684679491527509793423636806697829209203248238868592581718300439524113222378978858583514112719978681028946867468125418675541310391542704473522461157148284999193868415545147772669510974832240404535201557679316379798508525742662516190568692036528508933263989369189251332484750648764125763589864721694297028932893207589877736174549040075835885006520077266091413563818286378122331391415872357952187914991865743630726253371047616575100567831831896681183924765693924062030645198234094639494363421843654708963989786522397551673559806392097643340211386485561044891009235494510925464140430661311450977448808697153569298457230131048856241538510670611185171267270507290861944701541627804931837107585142657575839342446334851595884772297932761918098954889091897716653032695378329817173173443641284260627065744240225743991725501072085665298716544243518011330513354918666760333943427990464169153431315064773082423738207224903524533131820241147460084876181870750004429819853887982745444934928769515374658243446284984395184224548228176180555065727619769243382392772029628468887520387420528181655374054524813954708248002109688865184226507981699651329542576857023675098984644460046310947744354352462962778276621682990283290659925911886489551963465215124392364713308244826764521780560246786934635394818581466015957522531056238214083753584845435056972242747332676912740170665076819237154756404385393155950046198936727390249522027334744594719384669637686830430499506733862776294448770222445789154399297691657155333594620640997704316377933602909808743727014374829122559151101197104668035274809616106280761351787446644891288766500368011583400567746881355847262563948280475399928305142500370899785906147794937281503729612134352254147711538402453239763646969280650400716237316611751267628389027552342748707059160151376142580986914492069874598155003061165821133132845212032741465309048655965372237112197289813891904382707498526623899890966443504033265038010299091632854682872440996231331771819393495994816800959687875542336741105889914576372314663477495619493006281537876028679020483025320489720622645782566637814035565963266048498343429031522577793446851377687535551332161650728817058820186689248872486768883047452622448401907025120432974561720831492864201564574139734552267551872511750492529921321989839499034099866584961562693328535368931207092196571476151323498728042908959537598839042009264358224476825872085144082010429541373679281827510840052983985436434640775637852935526982815524889253487454408501652928066939291767629441832026248933917864406048111635268672396228690106262863024924363998318308237910292775169097878727287147026892021586102001398305415853812380249282763622846057792934998454948795050791854904370422722611547153270133298829256173866464806307081108149586421908584165963657113251383723178609369079590993919814377442983918359310416592400454606498284841586074903704221640156227855579929648420565248964028907341711995414664628326285958060410626193016195248447292706215138129003260924163208331863508406507046810941028154653508095182510527219420998950152157655679456195693515797233860939468547192015451147847902568974591149961911137740298758376158491384293283935207951530271340721821629174208757143149471876480713424768574522952090490605515840766335808414756992114583015237182073940889774107809657036059793200716218398939384568941561019389296852857252002725693290695302652326627052643513697408213913509105304645771907711810989612577738380999286386302222866497387989075273673308831877520065313464894309616590692570121350926351976142863998125540595692305774565715400243791677735272326065125164794343257047474654513037961621819275360047216078758971171755497745290272460520367539592579801494750315298902507489531835436412753981320190244281480745727283896013192924382517494266024585898950260584310658298117528332516794039657582552035287986858250118738564595614512529715770140699353729450306156784657310925403614080811447447135132183857412976750717089579767762754904610561586673803466588186486936332210274791049889252258877224822302582324072181667402829652106461842536418502934653639185294770490859897000257097716566987637347684682465125907394362864486508188318187018532454561872025108963272375745069423992316125165939669211492656893578555804556233730636511651153909301863982310727490438724120971027053170982498421366736486811227463385859154739532054131153425049806181933760495419362347389711907199259365955755041175231315084766283022691635654158798329108387668968637708999638925759301248238885059427794327054211553724321236442927096442070783712038103332786890346250333275790735240805233631411835409120375706909002620361767382484052293889844807786138919039597430338958319120364565863752103264966195341480373802267636636741145974813705372190867793340301161896589207683442945575796606525285673423403650981332503279831929631604535980111570991868604872786791049743188446462831639534157190724445717077981127512994990159013123933146537658988461440537789192704039202222620437031467785703808628983789991684368027594928482034625050976828160165221712646732603024851234788701026519446490607805824840609156798512713675978478229542496277594902239801724122038026778368136886373864501416557720279604485052723666749244148657612657190352526137667594835872448732161910498986258414315041615959353717553583777234198334062374692974615856806837033211119928228788667620963257594923311287673045074732271615436830858489942511973951231927212649900583500794644055226170356123932379236609146003838987328380704870669280341745333702129581585210886057143951601594761702260028555691095527921275567996283399744626151848243870143269654700283663994074560176411020923970023244505102408185128097963208369074963207524380347958038962190090395510467052661803659842954516080115883659960476641065926579233889503174736496783811685753912078312304763174635127642865755727018593987766681158544037841985907104589262379409216521414859464845207249613273533636028583339756937218102522745220284305107572901700986216109821884625686437663628692695546747625441168986626426062532436186816139998683081878381403586204890610148989707350290833329069057606545678588266370088033142857248856207303360246456618225542894155939584178157632440513349459184301253422813306555432718372086327837324568238307103392446582719926357218513529935584266790497975252484228337032787163320053019902537205811216135081426087190886903893748382511918954099435024469260807009383510809058143248739364326545163732691195079917584267151147484329062530471055243034538982288344907661832052251032047804530262868897721483834393123414762473567779214990595453049511102513054278391063040262946561936498573458266820682165976422187130222900344674420573984704466529126206249446847676619948257638801530940927464622374793197536155672057609962690142463509683958416575995474248623498672558887422153688360455866105858378671661066620949435837711783765263486612236184067905432605007175035635727888491411627494474261345874923176294902955466009337908636107534195631011883906964293274694179600198682554352119374696208022638636178456067525247454848864743959565624968190844209986049993324829408158168234537257671673322497882870211454205556116602732659080314915617160697927592533946786725854184601597039896698261312756637970793929865340585346157192861355842240981774606970577767756774534495226660010766748121470337714410082334654442540684140190800223857111597529556333097753183748493850078862192346196875978347260040571501654914044479230250264024494238996624419737175126505831827246930236878173828898541803735406415873756700394710237028451352157420826270167550294481565126290309583518980999337240266914742170087338234845579180758229170000293443519836915656144629869136598883040043111078091227001115250113277210539039612435687638561692728980472681370617134222064231306066329592631446929061594450809646060904084170564407115617923325074416117366027623425947038357714240703240083413670136599117699219423219681483984001702848501552407345662511821683973835327279507910990519082747255583746936006969119235552775295011328052067650317507353563201065960181833617953679677184497155162481426429997897222909189250756569991986406833086800902939688077152987420718412305172180621760025360296920387388917944061115022616192016090494574630703117819984585323131866441027702706840841980958091570745955276498939020706764803266114083727328410612409815314255722510349743609770355363624806432964237000488843266209590030318616942877015221720465761368986114983841269802673139561031261556370909605552819717840235322007480928661456479249713582809696331499847002339031349853912898459989482260369424182817710576116831192588827085528040763384725253024857146730448133866430514895073186409581603901257136524070017673451293450568236636459678462254217959446354764344361924220367262089985645038999741689913183919080711452812680395759584832164869790888904648090678145964567667834312379006421494385922784323689227727845447457978214373060345538275369039503416577740337197580450166863729354918858743306584140801358081754082397849616738898265787785018484202120082629362438794310134128092206334197265269306656238598950480943583131355022784156448583769133469963569358835975223941011045700118457982070067281449749432608898208686413415392641083704843304573325672790666093418588095921833655317626938032252083949116694488261433783993619800726313512180565300106066256058899228424085408089347024812762431372587637610344121198335859743660002045236555572711826393398094095942836223908765324995720053626147239226917478596681118664647968302321095016067913236963689717851774843526251204664343640175106989109891831294298238078677080491013954663043987087502776899435941213268002279364424827276757906668407346578893209255164239999256673496865251392513118127874374623406536698300186226733143420888654726994334640940574282829314076877817785492789314990693501350556542228639068581372776138912153116935312907553161485598084018694519170527943165507712317464435770911598033377375924245338078035838784866712730335953110610396275452054818106245606143226455479070602191012270852779882373865055585447147370829030387120371184816620804591588859576369786412525948558162149374757456417984294176708800657017672760752013301044723621203464153454223828813062266020205203342704472205781083070936529106249532456173303492064562722418273667314252909910426640818150616500438860700022441288186974085383264575531072547606297056952891969478403812550048750511748469003896716319180757488116067031980662872450592847347651343341234992471489603328086083477192705083442245356827071542114904781891340897790229103352805056423109978947403916128809753551210481668213635640197666483593051960752361400822277745047339147636882386835391441526468159423946428772580745562273941986923961527319117791834788624921024923800777378478685563835576989420282229527978670535100588964353976395889440609802599075739765387183785604910680566425354322813097364780898760621752600368632315071375874706594078036184912398798953364872830741726187547596056647072534622207543374396517341417076051049895894321766802400757990384067290975202939796092107010044309526992991476693456200377812629426566916483406750494612128490495465801394968910396505031481286993925649460033221940222175206251965142821274785278986864103803420626952479242103897906822372897621542197347876801594936249096872590874614783723177918999889468604284593279231758831479945324730894179568580698906910897604600990014264351320488507053171176651257534477117413282450971530731833778310548084650485253113088668575365730275743985023140882132901536361202046429001943492350556256563472782026290824015557295640249793657813563580426863083488162233625317475319636631665728245130532415034684650686583691249905186699931181806315023583556084597964899293798230908837268164311386717910398714266749620303410777319460622657249445679921213099119565196973454523866380490555419050060096349844008603538627983837129357430407302431932172037981232457228845283596702652971506094056877209906983918574816976430346361583501358756206523984141121914089057380068698488122095893053194722108091542021258595155973290487319734899589668197513170890766877281209850411501846669552628458004559207606079661617673660019631230336693577309262837024533852300598684386494764313898955837415668957149796736105124223525501504538499485327491679055464900893735152847560632096580964370582554092266865085850136932959521001982819806383007232219471745249472062688729950884584644601101701488877544971887589135971193861299942828700531008678742109145447107601114293127402526830806227980818329335457132764105957926223408248167888552697958027280686729503824517134479199547621534464023933849773544064818161964496086437744238719381793093764762352131295451796306947677057953997844235119278047237415534457359876229576758056160002195083426431246950364948747084271923068097993367332931636014730847913078499154696058348084524924423564309684848865605114041101898729977134318133762688386641451325006667859950112932760125557594885785528956595125011123586629394228640863871748958035808176116976984411948319068874608791894479298551885258693510699824976390753913839805547258789403117176966700455573601215369803610866795059191762202767186167164230592920072761907614255208259859784864673425048818454992913533620808848874052644058414629293330811016307738714601983728928149915886136371558407108619110296469261172143534756745346350896209741751451736912185938377190251529776780216027170226049724955518514570356083306473766274900898309722542665567353490784974669257921808072102887078726309877228229618698768334641130629481525850306979475896864172018644361038292134602822592669260247337119070873246021758583089322149833242189935094593592012985806403940735719377189389951039481413442701582862506490837773087078784854566411024463764636741121207639368181839649279109168926700167229257864717248358204345705441838585212466957977767218626984583994153809212682623512547409988534425698284076611802169705988573500985152889303110285621256980562823323549507073592709238822924248884388872514952929289181011678759402020070816717130657404777007937659781559232663587867056112271677074439830012425577758942519842238897358983441274239583500761445171326002816161205784604811808003508917162415635159016858343833638771710396253342383046356243079096730624989545169686929584414891033939199879278085951643685392197496192990700017456197309386535136834955208191264921789405731161649925469577605352992165650363092558117743824738641184547751860421020129878349585381226476878353943796486699615621386225944602523837648436671507817322692333561083151598339723425362027441449810095333232968103212386052361432648678237430904538660185153598885699185189779467213256748251367967291172931797425634350925566855474582301630092779952921836336709506720204664972481576474377211714059736363338081960098881010070175143360904374099101086019724985502900669670199234015839624513105868986828111610453836166952063667940953405816546840533214879577583777935404453436982323486213714518746148998168857144294682974261791662224451337130820302449001053529555548703406666042774592285177598139190689626392020636632104325445651081551917505806820313098458846587734585913577892895983363220206266577515166900655014942199172563037378681146430257105150754099816189924470370109676189608420225932501269337040498228394380098372099037785198179574486417639598174406256543545933382299379488771780320365519654462978965050983107514659476354854719144780368858165800641809273583940613739293622499535122378914220185663355454781991894272767392835614169970452353338057673257903175710147124965264182448835117214183298039774502649633764395670177781146637238465928636442798216029305142478832996250299439504907837163456633516775249440314350605674721581039481081860821677461332311961739919789420188421329132300323233135260782847640730113035407015155210254977713975050442563642614546900236441559051139382839838953300125764050035872731518169199502374974328123600053000692491611388644194882474192515467709378938351099903362959146977226599504246059210294376397377169571172844659218372268541841840140915284425795804821725782590973781815844689817215852991025293738909549357561964601143519289290305912760162463069407954159243186650570745039865040467996236539040858802969370585112934234852283523857692269663651375772635288040265566829165162177745532311739219648575131698868345343446390723072760134442964580172665870623532879342342283978664257305867653369046458051532396532698207071046743668596308585075224733094040920797015854442055105321077778787522066565204883367702469663347477767001281012638981165716526603656600469504433647443960293426383722477103977147730670214994765689691714442405390444049820189693235810789672267744954443056367521673252671208773343990202282590042224756832009903804279181174224066375113686328563631065991735094545213240367526292880999961948628399908052384337260805320792776105624582972707259408637237420572716799204496358047476533921142943907743051860814237171401331417715269763412269757301186143199547700010871716005415338950229438687526103848233743975853749325990830090913227745862343023705300035800871840354142054740208020814679252929977383294300934491635624761636090356157891012760467989012734191677620491429610436839693996355784099709000981814302221712983289067073362609585506453486114260339935358362339295206567235014231600115313762719450931898000222967200493639963191342432690728395592015567348087737879746898849358732945158357381538305356506371234395745290114692299964921465266860689468097717035274118623231878463270241781112295258578352905666918607154661420399133008632918029793148418334649185077546412763785456078229391487886658154646293866684925476788585501847183464536681831782578922866323232493253929354592760325429022879238152572193734481753251394554309242375453744629249547679113135206482846476531570535819139230628895505222220284154066199713145143185273639781024011282082820364950327580786995022158134421954976865274032423059853450588857112872864825606800745287044321254193594681303704794871601328940438000673094937855692353868979534757685127644550426918312523123377432749246909853598447295514728046889513100965203374554463786251389838463007599502966615329228963473365924223029999233195141545550026503589379114736212568645815766900660329556388683277614623580688489760540702915668690070223605458224961565506461596480967116927637917348190092267237535499317693432906858373149298543816176436360676024282361030637220391949657718967718881638956218586359360086891426163701447244745795803311724896374446834943346790768530372847669743885107870416319793478324643571001499031730301082435962961157266422708665141464294108412410382703203661628891093157125951308635439291658572258933596383528676069257472617994768129235605359887489200530744037911990660089010293690052405922878743723856879875415815932717717508304535509812630036161617664719462944666022744857724553263929903649427606717888300902279033295402660878732971116911569019510841255258516562020598179539513936541241691737210532378975754264512534782612474759970802729379029335473982325183229858869093754835275729322708310151052995759783363199750412354895060642649640834091313279539312297509002776569066254726256104646148466736848256766748100030706642897934367639200637677716642528104235750796135636035398537476224490224863229171582155333961606796137725819446528845133310163678942552342409395669943498355692616046140885798818991418513995029282216261265192991976501970316678960411592061179900435378954051770362174861569435503582076190794307300070555389633487833134477137719143863739597816610126529754591109198164798138222958762372603616953528711466449961483515627709974804476756247920357211459309342071908491290945750802674287152766027177860064429832023102341524412839446211623283011918778538103013832439507407347486292939605375073095564132550594954578631247793665107889389100128285700573298286452093412862597154918846936407653784431232794603460736183881816731993564200026489572515280370227689320632060184978834146666642937874443058649744523500696343042893864810276572029078891697872403261747607209302048245917084780090536973604475405093197633818802210426323485221060289385734290503311987356697702315304875987845858541024541545433326913473557557365051909853246787764791748005150845438859440131534402812978863747048542233381095456436479793727977656086025483551825715485390225330224291113664438337471836640839268440618915831967470898077488380391328277867596466524306710175134881195664801477267914221606657611295714866551864171894933689377405455755580579693583596262241057378170180531377006869383895088093038662238833402903828403399895484471995180003207367383527980368971175620445586949478403752393057579049898992077128928052576437420170970071371835367736105036608762527284487449234537023934562190955955908843903304309455575060843189071697916507053737123085254860541162354598338849114421291514369112975851256826080989744799453214626601204038245868055080843580471987402619265749492323146005007091363974161495687975983799342295006425032995243747274669278551794336925955783175116321816371375322524554259530254021413568333501449213116268791087510369836762471181479234011684982736188647794799109217468620085893692603252559791575640150019946498011895553842622479302279651580517452270988240074698922377895079022969083300220275104030706143402151826132961575262648486564125780351484881804104202087913213475650134332659874520697961298569840949791699309342893123899903423915188405402859807633094210722409378003355132114163985958780103652546771474502828641842998364709088587667837039035378557691139351750438791147496957886505028478218094654973356544374314897533171021862780873785466910285131865402560406388758454945179226555304495255268419719391424923852374447706964780620059481253759401897641095993589929792282222552786056772522867323945824588997565512205200072854314764763251120299662649225456523978055047635464031548975962674526348418513504438261109354402718194179906617300417680220399357858128219072468275681409494014916073005654122368771317393914628746777765673742852475182981112941521309048731915107795011903378353652313739588360792467116913669442704894866219326582294202051663539028049133326248865393236768819270690295513454750153825796063712054420180402329069738381027338879199239038228124043768665145252721476417491342334501791019166395769319427731421982337922253372908855829325826251736067883043731014084733583985635295973151353170488429085795872396549350478277296211465366573612226172881301642067664084686454121210610729528558221415666077342378722610700503919118541626101367014010899618414000741170497658249576538791583945447470316999591457801640945027289325523524106980007286512103573508904594314626554447011674722386259426873522884706085674700470439432843539894105934313031869225547671943691926476069844250016752810007390410903558715658177462183215296008252918746024156001308681557683723463992204553405957888556042878830130351407270396003987269434539522857874064412716255413884696472976793781074474720430892505614097711973450025431975744748951789517632143379741513963934009641115406504102765616064619755737147897327375441566057625780518186186160250065193925043136763036977820759888771064518868123015780025815470071014506330029101352612205117169284455553914705936421774312642196224727058520340254147942520359881773209517022733705463919167248468542734659563164087233326294821141429871725190483541039883783219511368620326740351062180246511141294218724366618459165379007450258661489970242308171823988919647207434593611346780019451830906708529073391467507711843364587729256053574730768021186406759089463286987823723015226703164255510425991419038009251947227065270805368018767391381555929407733035254120479974910273396626351064059627744673581529114398808710793086057582559803844538186459167022022311798395508673887905910633115104984274765869070658431820011518670721456266525819954168142418433120765999210525084353049609274541377943726073130641263024909126577943203862505808989719342304384843988231406475600425531997080353349468896475218784807864333709630457673371506505731181029608598470178117980736086424178427588529055829699408905397700739492325382823740347486051039416189305597859803249815710920831294905041274227033566290838622865790136763195402376008677622954669970731148094422488043321982657815512731314705893543764268911658508914375662638762634808265923868152884103542930888962038989144022848639311654315148845738645117467031018407837560854518283475155301935265753091187200293427876622162060542117357310950757074984291385285323367447245895312480797901163875004190320130280320479374978566616180023249520583220051764428091465829487116040589041755057919724423955775127680133858871280726512550303308696540760885161337269945105699286694518028379183132548610955799301118103558845929556233363900606686659983796765436345298485061693021175273487286067444189790706542486167489211835930579849871334345492699327769109710805488249686412051679626836347619038087759580470278145273413670226175526397690410271483236157078545579875416146046087810495419891757216088501831531187276380143959561374871511345419161136619914839466404287916896614229960572122087928773484571128521095025194119476963453061498845954286605203516633456011506220367657496929586913808126973163305855444495819161714424744145962761260167909628296383984684089345075857500563309608441009539617375297728657840917842122466379576298026093432075443373596523434418879048837880073577864817279414565423500121606786137146932030145092887981229530419146905308647177875683189877274720489771909621398991725149879607685823576336189275058202153370117631086749971958030453020816255855169884867027038074138848694260779109829552316258773515201210763692901331203982753615688055748668630395429891891141127135330473185501334607731079958809339676631051943174043832579609934070529853333453170926354161144990892827801741066290055231170159449325661978578280004796048205571252557641266191321812066479273559717492398689581951716295519314652002959027610122837592577340523002330038241812621211001626561582341992868579050335064820666570118509740572986787557048375839198470057581546492988536675918307557369668614851438683694201289482652521345363953276613455979768234062503409518310550942864134569990951383046727470939384751139324038118825587018642932497802089825812264838082850247109886237004172033141947940128127404834468551562043640098647509019163056927540468855274963862743490627726384831958918933867561972713358442825564454546500146200493393669965130843154332928572329221874324485715036502427015373810832075065023634002642623042901997530289532840674717792442189578805817081130514988723470442345209089633914686785104825574915062362642708126357137373498700975279638597196782513208233845054862665506844330911930382888347507595951930117279393545812709279928945651924117519140875875513068231862492380374192103315900120696198947636091006437013440815479496260055105470493690613671271980447193605977335788741337351570381124775872059422522527511598096413926487026464050272916310208152471983991116154106378891884245465128099352873441317975048733964793915181541571436301156051645539190037340673428728291328794974404627815010386891738912887497494838867863668361694463161043788654975835722794971374844519090254002996729881566414460170637932876239038068594931422686717399451354285590828184979485253872086594411086699900757470157454733974016253999967507961303947115341664349285003053410304971756134469309920727218458145726040008177069575980122541984550712918252373020358534415263843093327367639843819777475632884561852321028495578288518270201106796103754286526941782217207615734944208415597581985185552680340394348151203510570575231470623830177318874643056320493001116754960642494818639896496074950926911649862975411069268326121979192803870147087015096607798059345848853454699957111996908169160823298669914122108702568290204436697803668620052163583296871096007359672911473589858582406804217608980967282566777138237188017960284265784320644673286124677871256687191829200727017557381429798458865475595700712684544635361905039099714085494036114838469229105117370045884155079343203878042638476553987486951553050453284136155380361809451966676453328198332204891013095284071808838245114475491050598699862994194652149782558446571334494834038951391870443992563712218307280286185624302855281308548103078683189298467305403711171048982899981784152300507932151682280635933365613108317596773554592865217331158141749961448991253818857846977756641188655835393367541254493692150452949106112435847859499438869618966839147989643468944332190927645481532439451135946522792719194150344256523830540670842796388175545063354663825395208461457074201205660874564241075701384657535171147421529241092898077675845638299163667979760731382648658004383355880775533262559546887205243073429836674015956498533338204563057787773523370380901769080859491357923039344531182598450604693879688463828768363043435391357644830128068558948412707054850102758254971825280431155300888869708852363959532523765740300514868540169532120569789939731702342810171144950706805224523735128941835576979695396731097047146813372274826130967320790551799920758215568928569407511336678594103272280367519749368382894530646099277336692416158122529203681542481521949159213713613351454985867323152168291026988533031062462203244068402502356275337742649834383000923183569356065501525868625203436636103205868071724996512290384753541826111134932079996063431833700361533472358859646634235940183515200707189642012338087001017065896757223923497374365260518827229584801529915505655612816314242595220428659748861979377582134415263466372242853673735950767850918511394937254009632865880234403649344111625055980525349316208041666154376331469503185371488792630596602874677959615165312134829297824315646086991729456881312546256196337240384634509666969158406615584268829281884925260407483501931693439941771919634286111275175928966608775450757545233191444970079943286280099760393445491575574224541188760283409569223569825573401961039717432915487117615566337812942883080275555547950306686373017422115136564266808550606064196991740804099165346248467243071889943201196425907012466427017854948019484890239381099092819263791420274474917334076872412444956025009380013467511297741570564553435465316819975129263605003190644762820724952012258110040136602251316584160283002958385325122422998289920810936515295566804584926478082805157759189124494721159654791004144481239991905591006219564169995099301425175591237478395534963213597106065362609057106411499452676077921338477715202397394290977279529853540049546133744202452781061144095059362779793874022966209716503091588509784468676446755920178486647627698833481193869387617686170495491916186323975966322439569202498509044950140600537415930111909899681271084044911708723284877527386650275804554052015116786920294299755497389312519345676300675103878378499533572939335661659074185507649988503519529614420179293526302716482090179552816545238328515770808747557447151196378798013024632493220643417683105829941543666760361364338254326200945874557409908848639060606927130525262806461924478597761730740506206025763780087072367076412504223723991391652384123028611337234664059043115809993367499326954031992166316302897309548922206302830607604466148415355088620392256523302193771516256870856252324748919464185468490021624220830331212350116864894949459608993554760567808683089464837843751171923291923921883918407936334124322574027752565443318662986194566663243693660903119501046681152895918157726895149896122385178966270934500173566281200150922454831322578336131740473246948189322454843469134940640882223458509521936899858654238326604715836015420142099599892691023650692492516468865644532209103177009236216433477814010519641475029787733592568530610099779337575271608328482721021482840224185702140786411990376076031697611855158728653712560739424377576203818436760481411686077328000123042852225397787040492709727960614138609354213936287923176066957203905350316410065262987026300796454354335543268173540101413547109105318550442434108859452701539314507944316730996276059627886751447477281083527987262950883665192939090395044109775971610517896606815376110404169128244857849514180544897033437503584872169972326068379584828851401552909748355864369931742962883283866538191954006213155557193237342100428861479162116528970232623580739363713155873373565688495023279763193133829287025414220570445443984163085424696705806844175395820875118483584758001484261496913164089261967627098471873321845613288005909034762932355009572182932308962232081799654003879191570230272809851304777880053463515542289346537747060910633992756651461355343059184554036416390130715747442977949347596634577135187787833983812622913418016582728423994609015992401546721970590570789354595768587562640854693350555687251172138039842775452185164700096273301892408089680158137950555294114513392147106023986681902118724441082239122400898030047551182588369896126577781036157035563332807545387219673795506355896204656106371547722343989693379485160224284214317353024571680016989348294790221064505569457244636052668869781333691332683565961898450033261634543603719894005500664920935532203079618437407464162112409050879565997170533733170966721036674815903719981042348679514223544063143667522543925209060074258268842037529645066693714846219684155335895474509390028001064667747929637281299554446547557980651753457076694464639505093691849641709319417157347713514855108878052221040323557755059837796761826206953395481115055737154774303039955713788835144907715245289738898731333491292599847802910334548607881892895073080509073739941065015561981962507420165301990901022185952596341946467216805505447946695364462434861810590510880751767118645743629167043194611192738891594585354636539522404922847888061275666647217562233323559689649316978349241695544059726225614643147931135582336566969963321511724163969134566455397011652080981216023104947588650749353036530637572075924417175558782040668497229585149059007495605271598973140931905050732587566177927730160929148344354336007070231009562739703812644393098720355651945170468459468670913004704374886548806962306324710192370591957668216239625521686687202571922378308162726121479137520044306630754020727498658942818462715831451471407914815793668960203569573466614685222643029331629082632087667808074942488800358970322213480964313964783772709661285452363656521666362424644471704519560221151324998042417866095399940208954314733850264503878603328628718941304276695583982226134144508589012804785257504305402132065179053580432854979598716033386270018768291153257502204198368933836854876472578829008891344296664717319071969893085578000813503283878308174277035960998188157912291627531046550198475462550768097085952453253037019771322145257946867013257667562157277280799853500483823381039113150336598257648418819065056900965556386118457780997981445665926134751501644331097856687372823625997924110366290657660612229680383013130699204622783279103873624713348670185715546944302284506104619372363238902482055204565638619287373733226278149070322432585468230886081417453804659781748338206922254141354056457691063352079815338756106389114230554228698439508099423818191528360414297382364538296446644574637396755633040531730059270536815400851743883456910315300162493046335623878520047573364456464037514723304752552661782902043810676874340679253294864661291240015907049308156558599376800596062097785043334283393956879978837492571348644128766012804600326228282806408708629786330803531755156677821667056496229134196069835981157400460725334620466578230073716034707211665809479539384903712394721058472905453004002041104981279306571839437971392462608464301538960906212963340827608738961804393578438042261088176084100392278112205831845909528137302980796956720834153168975564024546980792907539643689325901075407088206193852707034770171864075006109772451087499529194206878753263845908669152800333810301010825170220699681311232615653304154030351805558466881473141546146092150942193371964130817365195528289972004810717096319192402340088436187368228649405222047715245081401244823929723256104710796968705671049511700878159158094533012638385730702384509070771304154321730818395790012991885981379505063615191624008829101855723213935319364720752721299507049801284743591760234369001871702855879302121650776003364375735928050849117650990560646141541866955162059818809946611034173479473555313326712566804495934730738282786588568615098217632085133630260056107580598672528139793490212229985779009064565690643793449661357881137536854909799233883499440347900002483198510433964430869725028929330202832309554133722147533151228163639023473075087982371024213435862943791229941551838333637431827686512072610762669635048549732346145228839396406210528708493397964081060626616207276310562417728632981499669359078078679445124628182176680238555232314964181647783646102177790186978845906947818243616049148820414143221705722628478767300631132242539404784099880695224291149552287420004040376737603463296500277234661507068921490747993157251708085547946807185358079224305349976886951119438684430694853353193042951331036870425940820147412512656208809385552066263140039999468725090555838874799183635335203508932920296764461182525465112376073433240642477566020389054131734195309088951306866840084282678849746546549147638527978096698195640114478865565099131128333712960681131078187751491390906294201660550679201812730717088047279524501618217875056295316841724887188206271080153883322370894340763769140309898670146232273231005578937801675280042715353749873256146363430569191159564907171925911153919130550277891266229959445094000749128192729044862241582270698147268299560734504396337855502254104424154404238937014269902391427029938749291095949349013201008302926100881540167777948421337659157685190597929819613034804769452939096189807447078126947740252529965332463148819169202289784713060207679915631822304250440323710593167042130432352888964605483851394767531033316917050812665594146251409400850621912523637428708158093900490232874761281382517620660424274368176450087576048805568345613325192489061174809167099815035071568809576191013767922955194699605355021217557298266468295442467135394223826743653804869364933596366975281942918469611949127947166856328717896638237588808707861348431994218164455097644345331694970438905380308134049694458407868624342111545078196632330910317356743303758351146550308987410180836002676781795317215666996937935173222376994848926188881819864973362889615991174687686868131410769513427980772743082853105465709404445804980230908472094849625908746623947160343618341371386682303870129349973693424373529398890723391848535868498048011789978815913510905577568146740803271131550419942243159517527883471076303935751523081858307292666868573493342065033260236197258074842281891791145141753687158154169713127011512786083597304311415125475069293668524821468827345425830828641518545323329361860179075852052169649739068532656853801415414573778024180541063192801574678979146154331346364718244068391127285088025143880907424758423437541053390061398951079152307808520943672174090327334508097677774800173668804731420590496335949836937109635050809523920258034876372189696789851954448316284400729856756693351606894971373597387612365894646663005234754728766465178515067680160706602070100636587763802490230743068055358009240975641717875412404735876099972859300307345396784040017149672688666341424341670149445443866477798324309036304307893084340852973448056559369511370097682061750160778509280028898128984588072440844642464202510765152373377281019789581581408876438280745591614052241660086134293482264096806899043185300604354078638029895096403401021240960818792952188157299855123752584678484975507077678634131941374573657285130418255736633672177396355420158146178740376627116816400537010481231031144092291220773864166015597147084338409140342646465934609304147214316503740090235720202860337452947329377282291511166132485763374573169986256337375023814104383713544714304866041134759246487906939967982283911364376262167753894479365342232608665437721353535416366402412254691173324747935847293991595264221270506237033491417721602700842814164782731829490537016675639743006990847593680278406153880811679530313681109473774930176541780216776231115220488915935133903810278623253233436394122776138478123065939664025173357878381230327713681497293143763947212570598672701942751392772667030198649581692832313872728709011081448381406650744156756363103184894867150584194432514804974796491053770683502595616135410857127099957781350443881497887610584562951842695602208026388948062088291273819213870093104636615178692527421909797615968708018991844626992233875019375502972350459267744924667590256290253301194160963599538465601874981450550654261399513134232514250062886113471944006571660866141958915860567997503302217688808625550080602259696786981099483706434369151180485896282275414140922817941496178562866925321861593029644415694824809943617118916235890304535829307826980160925848887365595506671915019405300796886889611466606768398617033204563771106171054957607020511128654530346588077989909449351821286832526631887903799079662087440711733891973974652225048535034716717951770381089253274659784869345004846324698561814339934063143578475530855322612096846892285898829623050022296456784239887387580221657789277303384599033222735809525168320267796289935559260912689060326911328960246837235902506145913294190727035943805773197140162081183978588206736626948423957933847723956884846687452245017656047607246795072502621583703426546141247146760840785993805992290666952165883496321935714308111765565683883578565411564808308922591940177254369622840941543653166862579600755339241665314639650051411042282295402680066510337001685140250164384303408366825829688845772352216535327434971122848496507689087068486067019349950308201437889283244018478692530902447303002449446686723150346899623494162338890326698596037332354070866565708000004111801695128835092669595185478732502052910457821615944649535704754453620691714779840452364753499319728254766428930382320183555127790202286181039172066070796140207382572313215443793379181082550933789036610243160752891604669805000915132722078029648627540241359271690691452198299691731996202346992592962580387294356736747372951954766479721883716764105125971795931506609408956315687837901837944749687431441953359775279353143470798283447429112311363863081911691885289158446498472116115535829687056367302496240575657465909216047603091159689817015945186751753636354373874915453448151417414526486800957442212996097579897952884979298951004312371730239354161400780109226813537857081193964866825376677158415810213652220137739444473186097611506963100144677343921817502823291146517407506501081692204200329196276176838586239572956978235663519844405461398639232838730549555966389649365208886395660058480100521851489960572063648136469642463176319375496160578615717791972485446189234738247241283491955612628852541990228421407454562121091505870978370919564157990751067548854357038382965521683397232362141498343462642281409764536891051598366765057587312112946050955009981358511373455966579790223249302109770458464382205556037170653332433286433988005640830929597342311183804701801495368807887052212357464992338402293704423502786317100494399069234842480160863744591148968459648439917638244997517379096504346700733702266455069105371128179175819474380748641040926018658890110042003539798910740193601372103740807282170337123142748596329262450813656052162061687895019018951624182098262658048561088109385906943451925630994524514713300399159616666862153056727220113459912361641457217366198414935089418369638258904485731630995404087537931284014911262438157329440561500418697894904276411926066898727545151237148416958574427783358061522275251329857165454506438869552350038147222036661948635833899049375675660070900020421664019981547115153031452506562552478180206876322724099410641232471869168599289397880295372804268192836894075635216750550582664405832975907164063687099257993667119906754549343788636588226323009238186655401027056733407030660893235707831040329319727044649481235161254003850733821314055534546634112517382289756468177570665697912310341388803905593062837098061773633273188014541746819244477887975389574400688541348873297019273121061263250176139967958636477712939962734625474977232384586159505078029754976602042424429383385717079912526073704498453879203309612281640565299574543843778620999742199139130081099936426093440559975526361905270222519399917688065163936115550616770010777819003958400260847841113584125954481083710057376025206905753273111872304890020040075977260578291953952752567538374672093868260802143270325054335701928724694020978780689705253420129706209741999421389617471604530480223218549548649561665979444626831856635152717848853905563872083900891543190099346401326223565928488576313455265378246901492055246485279270836635514793697019512208522925779029616142628575783275303185182702590582395991479458046951947909302609464429873145079196557849075353426679207078002245921689989375726605474843689986913173142946135138735419427567740589148359060884675264480010213812982771629641180675102262361926381475560369053801687540404243568609917081229820774022565239929058998661859286258062718147358188248489345547415631961019309041041165192108436400324049797003748951057215255644403603298267623964514897371697719928505438294155791728372812944510281377776016657369992920777221281968922335042883948226734740423969901982167223483769730819329835014074034187943325377133598110523830653060513134078684522462015110516815438592815690670663400974592759790631478524867456444379074643708271916120955737750563938627448889368783827545865809902140740884433802915683567189882739223910568571352631301206330958841907716368033400395972849061374698881954531064393035795440104626171269448559040943581448961618817956744100798150174328317606067657780954334708811478600285230508310262751207922211702844970826729301407991604846512347617008850499990802828965165267362937251705987761160122130603296669665619689269865379851344838402346861417366293358003021267780787338848353356267681052660716472310486945631903740216205248676752310985595969682551498659888955486322823656284370203125056718150998062615196015812779105434998737030731097835952249545095235695965040500151376036291649891647175034050577641181492220396919264106117246135359428862623705170101303768668282371311046587689460473035254096391155417744659546422039852111334514851728863430315948140066230662406864488694780511222134079943438478814664414978363405104316460421964477804644079097835727402188480639058831835155794611986389297435663009108333034758183230154022792430968334079299675556315827274415261896312091509471265137259049104616751652599335749105845931364623243628724768341939499740524916575362689159944373834399332144534304905217017085356731470810955190454514448105021300182392159081616807347880469020377067000570248013206728442062090681287570944813444111297431470769635775400611383069800305136996517722388951753935022472315025735178140451433846478804006588362479812557343889315316683207504308882233761506758971197601696835018124717858527421882060106881775438172725450920414435977395882030772541120431562500099278958842989052799645145823951033758640742770846584850227057433430374149761966292501670626597277056632288537670058377851251947764171290737541225615393213078451808323602154035598825151605571215107057574640044590260276119087000563107244794591741641529220136910413528044553676583281589455615503822351267245013758370014029659031842439135896758727454310546372515163991033589147261231077519706738833853214350999474924459316330083545771695692849608019468955973867306935226172047103813209548467301253741577797151233384091472527738024304984886956730271614899561642825735391726083340883001275645985423568538704863590135862893929676558167040123706822647000943548515557306556637684513084963873109425571053777531403259518915444055935595174838216992760441211250705756172107748307502010127533263112053219163611638656767067051634815602265509987298466455954826802150843852816402059504940820179929892930847153903279438456786138247374718905398678985686812748553562865394528973671625156335267843576473560880877963020679713628825959242927633149130181185544925339774731149956962861237653089198941427040666833297065392211850936200027750987074551025884679088087190458700426210082181070681605314651334756536443364750299299430598353262102029625647938747591290802612366566272751777195193390700131857244390141568377719625251434209708915059413876088058965149853039460468904862096442990433670962469484477425245445165809642872138555297269504488674806652209592904764531915359115832503388710350668318010161223552729907874086203366683411133828763809485150628221812465632148727874313153327055084142589464886730353640496073733488582104972955499814479378296114340284726015458554129151668480532455883948175324225967541513393100950560199547992196646188434680161466355116296699384194091573872415348677450999498302438663540328609957761874176329602022984616696571078417204863339547484893786611924456211627790888547436596181867832863840621267486605760763007711548038875210763849878351250591893173166233560555912587952518308709253863281382561140875520156642741046817845008798352102402049869459009201187560992006849794604102008396220149372299959961399247302774484190585334975932488872980434445017585177148990173297513774996054152329435784268704647095002321894070278451647846900645608110787534054638288105002042197099739641295331748429617065086552968748233888176171033234522805411741639751647880533487935535679549455852852894747520858805319230258513040985012085907035477581838786882467346974501596105616373991093977782240465454681054542198490273925566111247727755952767168498656576928398273634703966130838283740253117519943167909996429119862345581040204536460199356073102681127867410969436029663432877713151574309730175782757302870417904401925343793125870681112998533038736844630225844608557137034395352721940357557833964150802288453902829170512526819551298284003783076221871583891743884317215027296690891167703108645587454316073509222596727066664122699349516403541441773219373497212680964884716598543335449812555501860813318463715261408044849020142662737722275281732497919303906618806329085964562116559246723008291510361327970305722681370347479877457146997050138102222894308003370825497239359276184122531045306520549902971590994272686934061379172956389873390215059358250945636518468257443924147372875509925797875684545700068306649416158411090727402972548163139037327439865686719399722816850819238019119391217742129096938016690554990325791394997673894749043865179138837973092324957574192112675628818023276557013136774947269592015576664724510774417209338666185813278364412701625454260098699986192711632325230374857309962471204428395038611368222345223663206522601842227074691279845779391420515116813032099315584164269817761857519133652323968855035893965136416323007141040548637703355211021027791502425909164390933095924846281552009006345765143798106322540602917048629587710306395449952310642990152030518971724358564041776997258004178793518958534662042977027084606743414385591205239581959961985883289470817623489963513291246156649772321288789812999389014281082317265381141824197480988187286421113712513649105763276861353809213613486334749922213950761099049782247422180222348981195784182079423074649281978830537498145007292348317852982426687819285383599684225804345033382458207531122829170648538243094895328905363141739440417606871492495853457168966752509389850220319762052581640045933621030827768049517399831064169347032166783810992094270961859063708662837694331107178243965504428666017173793576458037548732186168885944765858841091451993985245859391153733563008501957992847320434732005075194841786414720031794167009990696045551306191782115496734186714879386281890816761795082015718055598157678085164160836307956828916621783302081282941213227439295392432349383044511304325410806852048286816691007899970963779930125712801043430652106755653880046141408932842302334020903659245156550685009956738541752424569241213365540020926240909652733020303317007290564298994469496180779119587297391216326357545766679679661914452166560411359289779540709657225661716676995728266905583810939588580551823920583523417436895769505130264214881377815169128645400038585409644339348114942600104498942454809034104637791728386356176421321900940122077510351893677910217929501954838012634858880729175765939672259454412284492999100979929993878720835849530389491829051353677235834673420567490912690592489162264445292824939281689953215269435609520683203162016678649574461346361910930807249415082923022809832487929967175868059043214536630940749599511863587038282427518352587769321512470781104129601258053224456846636824013025583214473978305553541268160025608378334003418338897886958018604623991658698731460445654478156468928968766612215605642067698725860868397348674780739725417954136925015399378141643585215067772441631185282514148526151735345854492050464235507186003488521893844149191981130704679325827212969331397579058702712320214663010258881275013383763147854253370809971533690013809371189709999922655211728443433616917381078743253895005497614707924599537035743977459062914197409404989867259591417656389961756530699767287616859295798687596605601179706208048132290378496893408216584420290907378822664699335720476036191369251148388349299316941385126356577758557396397432796584835359782041523473866800394247331656057974361599971466935161331200298093429359917782998788269401675984735108562738164596417650087157902436898483068991635615991569791960694832620846367058043634577291828035348562093225255464208888710730993096988179152081904117595746556242298079045221972186849705374432408475824232809945884512605948924044239659749397858936077021665726885298386926049719782438203818613366030248495083355631872343486773124730424816275488666733014183710768141151481759989741544154699642811103175626526899211613942327927958372454290845222077984556420870837860065532342414241969418352951419922550874751227227861372592765927950891873458995267936834612090578032202912416673490408647774041272946270881793046942305284956827061784960463750825376068086009431638611129901518588104346420996449584790055820051678563430078906838052816782395076807490122557456891815213292756760038069796832642302584234402181407483650478465387155751523249047464704981525423976165453072920597908443406727192691379429130741687405278486348384023136015970990478398763876931783030330590771367329837773476307061507086407430043184328958042797085216379345609891856017898707388974033856743376055587213779343916141217219893855794216940572096756958592356568654427653055408835459528499702946726138039253520002910695812150399909545159481823616105632761000542437204747226339892955018613489357113547242914156790077623896464794210441169369166237039316495937355018041414027387732992523624132675788540714721368316683956067594606579316479165783097188876997754404043581091702842727158078603808318098627397793121904761856806051083450317150946374328161562443684911985965695758598653365452477463514384328091569355456757317443321805945946348209789756415014975509249560438414349398785559173345126115404031961620127086338510796855170499729494374999070551796330006043294590917698897570928484628034561263505269172062265541271498523866612582609082345466033718384856539583547072471981110810133389904062885977322033002147026076569543122408212824074806159334902465802501075678907852113686519709282292667577780560587261027920648375999963399362673295982551020764458122851961802526557751486950107991973649814217920196057949436046313191110610833402261854844556745641700150627016565580477348753326874954529840388996775083583297637386702787293668755819944684204255977597251366827933892123379366313406851722666079386393789900866314778815942756391795795629609723782160363310175981048990073770551619250087292981296516379252804182176994268347503975642275894726386653112815645618165679624907129997648597485897015568222776008807036244029740589112263163520650360564561974351601197481100249254479286347062375986010500836540315975764239760870757976998194058833581035442682858703641688021385104566675338402986631514249769937864876246329806840425722054261886793470466768982839895125130290443626343620175899617778228170642531449909780492773055385188414411272369442637588666082415918909367144616613988543359028016847135105676099333846798822754166803949698715831434216158873034037526639755546445921384874529460328668752452279566249114649363943476014958572754583788144160206320115229180893632967553195051681869662403137706975593024578442390259566012631175513962176599947518486678757955021168097845363375510618994814230276733883595880800573652188624863055946044594122177128132051378184733584154538407206746677822522516756137832396385426817756844525105279453582268517005859760327958125222874726543840279823158255495340984443169275354469958214638356489348196583229021030984358447342996027055843085440894361103266061260576913750478620542277555778314647611207714859172628957089436592816549379014382315620018428622623365257560587968279328854786633387624714603708105367245846149467579537830734452955756997176716583186028075475593613811377059622696771819239611858924382651554805363121967119432356899288638737932545056195287886713028838923322576178246599627587502150659459904503220844099039596456924625219579614041102992051883942130624000139869926501131979292400730825393515723957043103375024208396767535358012056866896571543260577447739736232791413123954368492674641505065911563742995862452396905380785511061318276580175119777925416292012071439381981028605060589844675634304048110076005230810577318659498625747535047809322348269072828722804498653661072990588585289274567288495165915714571268746099851631430634995038438032185090066855853923985845089321378364189283921039801334050793784366055133565350202440071017819849479624455586928088116063676216121504739236056607231152425957137214514020936734283082994648865187072033471980964928926910660177835701616014811719535519177568832522170457227851101172367987956726612162562721409905656343962502333255656545461957300442908685021598936465636999685025422976553554481991295810710587397489015544142224629207428739449704254318639608555469969119467406548436092582368619650427529356901184085673780735318545504466565463672548350174070095768887242886989421875383156761606315469072011719184892021946305985383838905566297091348370647009899001938333903783404487760937340848155040463800389947035481522238121047414965175566036723657814258772272404003905194736220940021095109709211413949707235479979489317310229344266179422686517621139108741672183751385976766607812146609861793969319526849044600095257157139794050916501764149104838246634928927875928012570050837196245856114534215084756123901697373407685496056710692672573698247839437064046365356498837158908520725318412535057899993549902941404860044117652818076911136030334379425593309107891411058146501468073908566305621394801525619104460929352669863906344447682579181495614647308155056693104288788439808128402020837218307941132860718459240176309426683454546799414717969322333534791228660585296698144781055398409970902157710878681858669042516276953402001684777875420100626466578226769427022958991791781872307348191122253753907511911631177536198496707232958614347431771066640423795042798227837287519327331871304998106700770679723512134089502768161406981288142264028187713284841722872758094043341132621171208186848377481863352780437190059818206898941390103381189636258086903773083075834192325271247277979797795769288156587627196081905802837661331596099329396577921388536201852783546891264980208422602337660049846789036651690724152720828119307310621672317265990502253823575620937841806137186028499517794176358296673916952993801200800627105892685443943937846009772578220380452750341138724821058246153610551775681669198338973885163481076274093665194684226190312419880681664130614633776299371106745893664407314424805827151526393780756709230007405426235006041267138407079254281202823384696186482047064503631385081991311961719426897888952169292148620868125518359326629186217604788396223587781824359824618233313927926659204502558873282444983721366828789939825839268027227328919875172651565402927077817097041274156203030945583286431301050402204448263760113202184647853048782892728134743884312558766923393054756826602057481636274954808647637216165802855438667906201045722733123029318085174213932159194974020492519646883046452469566619063242547465945443848828185587691774962466827697168534988512062010236553901094895402367164932960194869133861267197707088829533639973630497824259311713397336779246416676207332418671792490766567140869007552944229529565430799192220727107403679037459889836336181834183769397023088403440390379426264572424831347814734664895998439219330835551262027018123025298068319751644850950641902333938660277593863348544162787180437857609722150541428484508319459129520537357694727392626749728707206837332249171935054743573571229337875387200900866465960202540025759630736442084626668575132116702209332192987512943409479016534759105010473602535109697864283334512116341973079051944856151274942668764369173878286075109245161041135864327851258112109230580762761060990302189519191491817708157689851006822060819797455235925957853911755721860940149653451202537099391743034643335276813322216861863581970044130327099882249167822106470814219452604667028818620762073105235008080768565078445192983937548899805861624193486177323486663212369842008191980470380937450692309512549519193357407710446521012075406127449510089090203617647068399328248437735988111580649743377271408040082084146374288276327152333592008095534019743188734987021073705336117209852115489071998071250577988042632745181553271525499354286977227826531467295284639442600096591008532695783472695176337819117337380030119579254238304812353502472661348674657706421766314022612380812285642459283258716195989567523080956908334436867460275584928390299968113174794571774665168277195952487405303294570694401960664744585699255724503107157686814956747549257196677219803376307242996810897758479622435991814670502704552026987672989124371192558368814051009223453350670922530550744262485653936770079918630973006582358278730526902975432302075448772693862316901433884476361391810055699679304356656953518203809849236909850042193596301430814070958060197944756897039419743489245886720081422291448751316954308469812942442862724617669710438545832011375222620602120436343674189230728106234816502579933861630137803393367315985159094012824813432962580848427865397226369736044422934374130955321262537521281877647367144693331254055329884892592521888951180185116658499710205984127270393847729195872178692187186576061815116459641121085214611912084888169499005430505945303413853524222148113945745979047454663485357238353854113475907247525423183167358143840574284779246726660929636299388433965024676763914015743668803992095525339291989709796410130912975538138685425684019071317296457124211532200326800427035551205392948107877131155014845700820540217458688096204182788107627156525883014036916913349799476106087030716149202186217252753909129773192286219844523477156185227820523060057331634122336293894369055631872584052547291129212644983559522723895775586148598650538944764931293847036201743049524163344138270626519124673122977446421279424781872818776573475923173992044477428451585163664643291882543221290192301857370194608639039997713302697100021503996080366712124201259859111993932460894483131180852627989730051130105712338220557622333239528551367721466464293911671672498302310288173316644160147775043326394509576130331641322843835324968770970018285014169526823323142980220857274433191397539568127335445861646207651743496059587808603180842792858829530245079433380225903952111464909352216586370092978963994666729532644424317178324710294716205313309395555601234267664952929273842870543939916040947394121277124434943549885006621010762818091575170183937697614481735522153734781609451025778986119577413637316674904933508426016231855949374756851114705659670714063852682158494679377746634166317482860961695947601955778318663894730198483249945835690895555065270091138003487710603853636267691349001595023590323525586248547563812992469392290734687418171186144614402388718142433861553841110589796493936412144146810652033833748081902736907148815331054736066427299220433989134381213148437466720203062192701038606928662243013185847325985126108717821384535630536190388805855040495529380515749521215503086957223379946121181962615363094023305640373265246601384422409135624277075205938352418674326213281779643352229799095563657771033938312462927404272592714940948452305370431761471864710494462953804351303371103566202745562990746818287644866383676244673314462874605644342851632937178949468888907788585012646370437113664639198822919306059334167526659319493602165993865715714791135142110447781152298173642703817768722183783503939654721255623161034074535864877078058577842466451113684118376217675320664200494154599100423917462664114004449528467355796141628331710423523999200512649927656413101324995371653995887950035469089374658044981194781148314002895409064421958858268163468400005426838339885869701749092109862697778237000728216027278012256791244914819487329027248648187137066860363569989494739472658167817229557491055218230811146259228135514845369221934356210768771570157840398550559585721491139273740423638319237246872987215111667974581593572380044437880137903349879765282461199155757483648620737349515794271789914158413166714669202544796197681828821066343982497126511637155999315631924474757296562768843096410782777340720986915786823629623089488671861528169252095465909461848202672674981816042082571280756192659232704414003257022826304209910895362280842007420661781370787000183499742697906007039128599450621686074287219652201565253887150400780181717510980194474873355869880765278948297306460324599803702469668413565800790637160554893475082767947360676184029971067258120703338999906588878909225042230044601891095720494614930333774344377289411537883798765977043556042767563616176741851480029548790798751845689947823446114897047167201397023967807323539421083498614667513303147930485518368911178419753535073734709854299047598078940343557752656804643442876642448189005174863024389650376974444129716849908354549389320426967061131649859121135208390860422182237598391397828574259568987596606630415909081567332427176350365757529210610340794830870780558719129942867914215797319523155956235046547496602436997222416890326374463870709791489426558097561771913735727301629880071076255827023949336951528958755076114651584546505013513216025281422627346822963141183600204384846050716254142214647532618511288418845149323609646172505560379603582329607000369782939526834908104704193091490131912052933990323334510554505661463651598952043442589531261924549189190404954703148459146328860810739642543592685750885338000892209780712385938356866145100017641059437758582095113828812928185934573680957696380911512720958786578436029772592462781472515504184557464614102924675772191961324536033693393149638953286736021988826150649538123231366238920602784891835970571999522059229091067552288845129778103961186439933229605011350962525897996738873818539618472761301617283110670153781921929370001320218227035103886407498205156997397200260132474794786050710476995499201763889820066750279723034514074750936056750914545544787614937377273035666958130052879648601121265724497581783356529818475983622173258135616021471989761490344732328503071446953425421584393736614893489536944403896240184133379942906532783261045626223495363338050938699434948617447561108385046777303399949281321385339318438252886070191803752983003201183026438634222801329068842627735027736936101677137893752756525252616438259502892460927270467778981630340877011275795247245492154512400105107184695544144420565464357457567365961511779375266227491045689232823884855141300793354683128303045936343036199437832251318719572538821095545202277763475784077946851212150428004479986045718775658442269444249294916935458714678553993972596994988088716232267549119890038434369484990336790266414793716942506834866915394151666369090124240003075325822560990045216479040017912930688606406116409452804284138841561946630758633980762465021196308802193453956497247414138608549755348331248646269511671481707617945814012142960219354137518330111989329151730626736770840577746093844520871133210594467924743562082312684977234935908577553403469137267365446631321063080883850573079840807813176632555717741409232923678867201795668691540707369536914415892808105578752185278923749796448150656458413010535335615554306637195924190749047023549058859152687036879631940171863243673461577706983929850985969817165736020530701744975858417189288842784181202601456673323761724492477805839506337638264715999771117753171937866920170291000034967937279756911695732687378900193338852846515482033789403813963603049227602692998971778832729611635813395001081913070500327111830746201289273173678295734653710765057660167133593632773446267908503554094622477762340327680580930302493192529458993016210083099834946937971602599470367203687634279744406328576720301992744987352296713058194053263478845529635526843357581042835582191718650241527582470316487142419330596522250008535328877879874371652820115771584942613779596033417712455083313012380496509906951320616319612684598476924903866991244856271757939238888219656198504367070033238070422637132463072846512449969853801386144168272077816104021549218222615683744532885789661103168503732620410183567604644078297736497203001280174251475902866607529690677219618899654112296676921751441097263211372961516548600711256185581405282335823344083154367960303706215505008411469823215092084780473327153872299993288501290154843192021427273103312486097354179653165134262103210134318862230670696008392183205918615324115937986187066133303781852191481161217146934593774797432953902464012932747674334980364536724728860351594522915637944097509683136893320793403599385274987522085767955338463921433328763379385653061594985013546590178562447999326287602579268860568816198615386158416527664026872848341726098054751974291350340113835135614699782108913944148186860835160925792092309869921610556185479226839812048602707065364590264407002019429660670436543712515530781667065775175676788046073163109500287114147138775903312459012597207102182797167980552714991601952489090483517329944776869296166288109528518093588570037761588159254388190228634416889725425844123832544520012418192040142439467212903996625069401318518156291914474369005009257887241397364556303816525497489959441872526792285402229981966388582750977895419386342523790138598406213665223074165054627881205618676071881943200510446754688657933236524566991565286129748539094808990893832348562096397427676838609507221400085744708025329654070671335658199814692890343422714715146340924040940930448575026757700371861910316243566282377897311507283819138504068828644926589009216699258685689729300931005066029342200204581975166274606277265668532879664101852126572463567160396569855918637642034160939410026995186349835346213713561431679727123362712425311162058697471029231855041135365967908510222762347370227588442599168700375096544663752619126246311548913355543723302723919695545831878674901994452267441537275434425643536116214762320610901756908937528656592230061877904210635471542298501360828942793233104948364936771098594477852671203952580335242427801308527640069885365036758288900061350521519131374306983008679902292832084212218126432554035088474891056666627323888521464547442469222672842950038947989925269441558849787584838245413053832495873848801134329221155786199942286158638100925895237940764100753063271209858732824243849919908782011309868532663137103149415513852596503190200289610858972601799573109818595786319340534129469769688930716232818419242404819224526173818152489578208075781687547835122202944717379472985305669428843141239655748110993264647467973741424321828738750233664744066836156795970419378436230554633465945452888455502889095263199615196034468554526874790967777341020156689838117905231841577316012404189144861816260122997443396713694116577882085544582359314671876423614090114907586066431980415206176694818745092742568162888438763605342754715668409137674160934166991316821758588638291444780070385323874582316169082371126493021106389643208799485069498571956337508113871823005409575894734358750111933510074183152535660551557153273289330127743411999267437746560953244950670547380631771530979752936743156493554909688222274300581895705382368730637539078592794630948679260394414911397893523033753777837997398330816290373114854667747004349972740575511717915422193735212576619333709446540733454898590538424443871236549571926720042420417426775649953554977309512024713344058786372515826980701735100671593989446067988089951160340936123065780674172600145958875538349982516908214900755631258899722666856304805448252473144703813577931491301809016924389425011037399726362576785401493215470061307632097255768481114357913253974494552916573313353519652823604789012114092875782795879232738132756151270958725031449911397514793531894422237265547842694222084367496233254572928963901266688823956154883595614618703266529618532730849023507325854656791552768863191883775997895223158218315237382168575746553077149060598488508324450958900103135227566868208881844813625727074393404186875394870384718492399677848250331096100516731519691435847756136284281943209747528164071166068584670426867820766307020876369435317629894355501566266426361583617374286470527746296726167283516041521572258508859996784478308617736880697941098462599907510084369337038232760202542484195310928122362003496641607735210145821384158292954632247653123050608015593278712737929151048535747994489508199790648029552540351689523733707519905584096458811364072793106627851770987617075326839831680029069745726128477983901273003406611569957187628276672392140138589816922172678971129026764629359448017989550737384813866599547169713425433636517360723262462130806395880895935542612229127436505192827272722266411453456212693055984538887156915442363883333273996868226751357011685347230379577371412343076964657858337526699375155764260497467409364641584187174536301463877011532867525819773643384396406496375344733752116667690574954362880480334010950004542907695255243402331168186733251844017957775896756508897731631127402992341039676746423806549063245227400307729030594982752701096342070364710111743723242867291167322413764227410746325503008464772762346028450059642427095836698520077944794750475427477386092146323733338336460419066231280685024063716993440450078575259193617469882560785771468749424783116993548019753307812136926495935637243621038609106494319338101839289352735766705263757330897593520542737362076760403679377582568688034435016564198139866856189449806761877983060387296726207255620284838013956679380902926365585417255459709322937860490916212820452297001127358545343163678125171154440469482815087034473770502247780172414109232139479748519943954876279604522614820660326050052551780295434747213876637693399794313063584232181311502257070761746226790763814454512368377615467695223725962526654578394679303726201012802007969393331746844620005635383306681837039812368711067158716392151749920647766188096248338074061225800887828177045783543778383047846250508721752976221837819419727967083748646634075061830615898942227510699278266976713908808666396859006030640245261693093778365866033095081994298155323890105790616171194211095231501533767764877259564115907983433387024842305039717911949114759245476414585119665540476362161416809416428789539334259984901507602515354724315872369454323466261249472607312125081107304420142828701020050614120044671896644531353126172590454546323354365222915945534467341641015886365275794730261003121889950727076831426598327519635204804683157676069067356729592319911825670724436120924931015304944805219889022920242394473546095497080968730236725139814143803037429508619642831997552948569737955889116272664080673489731505865041527132417094064820162376754830524906390244630335182465898928306171119221918150122848525242411039270780471047503052400989128149735188607906904533546066629543573979232836093836773113776661712617894225020773639306007788985949888566312301343686404719943390004944058462244787974725328914353431481009053851687052706550319261330490439961225409260280040782193027489953695227405750662972974471201180593559800219368454618080463856151925656571162671370237902645404145584538670343412119260767241752088100474427824773824502068219683088070100796999682517255100626253204025828223795238115611033929443347661276270766903455327544670065426920779421997951794208839073191592795879908873663952217658801233921965030281927374396131773865546377731318323904380503865345143893583231974228298373700682983408558558601890521513141118114716115259312372460671204742626189314432013295130212114758286783388790395416302331255246564128268215992257156140949560838809256460373921426944592028886414147123098319039771036784573620736463421405618085585609839171381468471054515856973059058630353484834323551857538946908195826034685510149718558784404573425488539649225841680691856547125354509777329786120054293062486661882703740709977574879145849405922586819794561758437068489203738545546144452080039838384655397786572658721489634332508996198754669314206636016602300133962391763078504585312891399203836383718745005928455827143668488680573966379546464488663031487204547735418364188790374416373004051602443943598531926828375678402246992912625494990921091245082851129651084408909791064070594617844062107482438636477322740083632590626544128076901297562695292804220545258368547632203746347761228161693001473070432572360366643984358309980564412970007377751804931668396975680105483085413602682963929250970809855874578175570374906652394364925891798215875414919508815611551664793174764696032603677302625915462352949622606406704051992795013155189148081052187549626025515632253115130401510952915036429085993637247455610547155268891675356848208948034277998799084625514343775513525310522524026034157321536686438517175913560696550810885764980651765727603616997780380456324486743772461799373812095515276722460395377847675760242804853217127402955125982475762806760257963223819411468617377773090308877555026837360380911977304065347667677977175567433159880298999467586298141276662083569920630108964287943089820491883413306054366644646975122366358356480769419790567895071126286470336911412610909284904187578838794022138564804954687764691175107703775948228722556982198379635671662565220421559619042405403802777147035196748249559316830429807163503636396446352017464519395721594706601215007308637734958221372660049744459093938857964118872547880001496851145383178137986471530413131261140527424040254840617241056682655976805718961246639767691049160232539061937002608853603209645505009367282243938732477839291846297207324359470132363975395190015545482403534435315734350140775913191979770130040556608768360286663849939194180362153812837373172232272806122410883816504668640789321392261163953237292340973375268101229463342528511711890786333522500565095301391970791647850646466152645374075095781407872443145330426497472819847715110472255768361604297036048664272097675992431773930380195929737434770903930326436166950603058104328003256082958653349370385525757314137358527184688527310815777868828246825675859661057347086477103997755369241302862253422505186925079030695546794103511595658704053481200289080998699031671681641227819481237263793057448197205515273374228467412289986999259423066798136176993864884396778372929648865843548270638876096851058218269586660763950157011569794827866243067362923081376962127197438487596607067686249042503609376406842867657796795093069373041260002662270213021168569049154343956116114718438176514358720426049070710967553759174832880675585881535882978750049561799373023245039489986969515797304278139680350487902737117871179572164079558432805513726630659864664241579833797492260295706234575184767409190252614534678274786484639110434062744908239962498609344706040131389720845307354411948333497346048179165936457943481861427939890725941751434789724299044269864311920642593427731066999233691331773693609620351096645022884041122390793525823924963087390365621876478636789287283745334594680579610707916018158010278872718072628435089365295318142234769708255353023467585908451225737429004092380270970445579652046010027302730841064669637084096321112299061229263772460784226472705865750089442248845630311453730587128243256881207702668983885928469028471119657017358700534378835623936638130063496057371024507835319500369396848099354105544744431811715553914475470090748281446034098248606410238106201828992972852758658026986722320570681457717713594603143410438146776306280963468188653251162597809270645659188154030628908049721527287128625893072530128414305712344879223901068300721907722767008282312244560738828425071548707243836304335485352885312427491802615688153669311229037513062443516456259414344901348012013077703239688965016133788358042159686517511381093608509289384825601544296588152759727644855954881053001944288241244815106811666015894151830042124105558970485500880259248216649065820360246429904095453008250770448225096653692917125514247957793702688409356694474938793753404820784763523348766392802148292021667988557035446256495681451197815751830594970910518965147197032692736775467855194711396684225547445584730878733450287329713001117309994345166075388399778061423387741434141205275515496666047086824572523568475854893212694171215030235325704945905402115266455984783906348279681423527566632556838869049726240085661369540897116803689174344398097552011476368781319444665712288068717515546078319811686132062485054164165726793251618227944507185662793708016767420288192643379610779164014755268173523023721954422277173474410190223425814216142124601387464568269346518059013739089482953328326358564431298660731096190151492031771948078831415578061142045485636705911271816536495701756942697584513840200553361474038845538923992583131249585668130695387409892222751301825160499844534104376280665202429980851374375866615257171885716985097925802164030375980893370874405868554532605036093149451764499259919047916442653207254578742441662981159539073480009137380862561171633417316603840677402178805342088525212433818450212591258907840400439649070025156963406724018821665349472750584734108599674265166235768513685528809870683390275699576915415350238935902316412316162318872907613852842887070302268864560814855053191941537865442927842994514154600929551341634475061671686783750050421356309422806959636359131468896768945079481024607864676461534488490722931644791480305546682250375609767688789784289369977157985223685536900211375034559235195711926001075799276871801410196183842373329548871182912649287549363102921787046067313170663405963011837587488132803623252385881231120292659324568568830980813277229909832891084423346359010178058984953077039245115818545037430245939776336079439617345217578352001150553536860913466736532022432220019086129437372489972548355525975391674586782533275309209134577504682535311476553768482867843171731231613966020321700064445004334299797947768929482472884773370292192778777553530416422205331616123638424291739919338111918273810828584975270976617596840238909634185066304623035653646598573880812439606138863196554662783122806239749083010230298922293752241510867469890750628904687309942181582537303946177291859461807347083601738471271014197468620925893697750919165793545252292420115852829168087968949712899247532310585236675479372921218529278703003084817520564484571769323381862705759619972300616464583122614426505211414382881347000682328121780523729875385495504225036599287984458673636778707585572487513289956402421878847684129976800789904082093847779731789687401423204498808022639349967022096811404160136466470591050303226526985276041416400462413122791494093526721322863214676330150234026668420663645864270355419950971855163714806828699080937461244955239364680454528364354688786708162080364388942946859383266682637662972221538462717974561507074204356283480827420590950594713391321818610277751213005080165714804516901880153056596105848822556824797913777298819236315984605061331803335500081029637650869380926934634884155225560841350708276034835416053227458443029895712436504642857154272116866329528594418091502698981766152329411414168774716606703316747034456590262137801500565866793027287433562278355506699115407494641610552569133787835091321649811525617120894829520536643800228698089590705143263397554304452090106238576648965856377585856844894751622664841655719355981356963976042703027858470186648943508630529691863922134371162087055717124334540697290577892903466341945286090742832622399390577276491663892374423260701400524586962115114374855136468596479292138660183615474803154408265833638623097345193847005525420294263827293950477046825148832112649207387754739578218116684837916586952165256504857189446938407154422828382638828361923916002361137023413998876047843534610593940617284594080237417216381716417333159355552390897995277682030614891931242222368743575246646550152962417172198129565020773822374537265898797896064459301324961090141584527979910598294076034198271548308062534815497371293365711310936171327027250240039352277920104335582961227113526236608053084977009905510432487941819104460946193558455723338832060781541323661211257520935824068865961855908805267149199908870831738563613682075646947842290941841297150338264640309527915005914029294323594269089100217492507818618546110328737819876966854484019395453509770818356067257511325306410824731012403209481605122607287828714275121529069382697963250496056462074961790419428743506168591959635620816759473973563352824114114337177412927187054319686119883336906701130350710589023684817449586005919313487522870275160778799135580761070489156063686539534085386458020682361266868348671059991864360013008290046059785645185494527673464826427902084127698663115916018915886357165977803922284365905757208506560365235116302132819247850220986332246620305432656672808072227937040958055712352610863813122520492886122546431974743292422257497833901681457223821391080518500214271041495250909244649843985039492116220278511257805366459733454653102762289931455292629209538933311824626979307539652372971278261246921441489705407744320293919526228574458887801204983198921757984455273865571635935983019454853848071814838952765901103999052603474540540960897109923832857475157160077868983746992673531598567457900949777883683144910923773910369682161664653683516242548219817744179032348056506530851619970493666905303063058530710449670968966087669394794657578611944348466323983419265927800273217928129363107590845090385755947415812819934802601794391536442774371194113181581190374683478396943906464438213834710033198216876630238480381893090775596077857255093386104925544006225718848034674686409265207949252874852460516083487576420343013990938434997885132411841838975592666788849245066116023820399554799460207111876428792467285863902886174261166919570018337389081478849963169386369090741372827193044803691057360170769124588430369644183964752839315573336583043103183489131754133903288057198496185743443872913800267034077768709207848687409790007239396256906995013660665230059029547364515612168302268154821277481242922195521476789408559362577948420520814098078372517140284452704960627929482757977963566785407152047512675124961455808422086482191365038126697118648615496651573084423384925777423683997322074827626444670673085881708266913987586720367676662287562322682729726834491461592656080357404638287935671699634990980709723158782787854374010907163267896501859902564860185630120847159195180635630759644341367712989187676110733332452606924546245928501902666575087640300749705694206726591161987501054619088244056706032236483550325522633467325814096031404535917487589534595248223729038278723279720775761838485401934139702411260070643953205055765946360948475808975251029906658162284001764229294229365636535409454689814450967670589470928280330320129348383784189247715976135173512784145767497562300913077068523782694288824288669350206672174889383774419931436494459930599935215939191151159341432855381399420117791334014912439205948206054536838902610707947215957483411219454831480896512130186869626045683984145362140530302010931231484993281201668092067470066694322632377301497238801237739714325406348961883948888247763876547520083850346792070126147177394934969111662422194598761202073168890724296075984531940338619716562203401122386089150763400527794079365895004545237068082064139014313524372546146195796246101293208508775316131477754487785191653879149402633688912176814612320069978671224312553892026061594972376975370790419016825723321602272793015340049891120334035508955534940571550589654813351071188440390828337264315395289541343953894484628106847561528600455354941761334595507437786973842687852460969515384721983835292627097967664352589828106211874176040181248302568734762536191883295326204673496156919763536723592561118738569604312114360634668650275373122078493288375397836404043472518327657542168984751541079516826775864722569868146410473884674034063390571529947409517698890774532471779569590643328942237214994823850969468185693086945424500358684806006315638388102294417358606728169137755942108913133940166242748727205388657217732585914987381842276138865195776644697844661148741642294836914555049328174068508336808454898930549591594270073854024086943267670193038328627999597807696323310237853467498743111602061109084619092508605195737904921866987793807186470356758766839562155936622036479359908346935184964711922192295152736424677419667291452811149580601676032579529080145336590883465670142287768758307762539895745023542534322108073715378513676286610399189023273380378794144840365841822325125686862631431577488700419013378387449648000255288259687911236219044457964133299580797734377841432815312939224443261810884672187383231893957030479842944365400889378616689731951692237511241339803702734029901958216462847131701762559475693094620490900623885060144071752915580650677432461393993763611963460345699471100777127098253545592536156103490949637394855576845343653078753844574024618806425610292597885160170496102321590873768232309637223871421813742774368035748730233386504663167435695246921509564765805882816141845963577559434629897796351463287125066290183359132060143190522835726810853341048299827899061192186140355392324102949656610884445939575331059190412185652642549923518000351507973579524402810438411545876525393270882751396603601159302580291268452172462071904309408939605566810328006094788750161207508976664209574758827351442882266023823598768844598714807239425399264631377917045945729137426988355522943755284725004478958864268627544116317165924406586102140525962744258591443688188363257490224396513142436033660843430988393022258831440026871626325646994659177597380103152367261168559042790871425411961637150957646931800929030450848505895633533248850599987952061618438390789028542941746493839202635388358467261643352654370600517973037703777474534140836895285133202699444688943470076548641022861729352318864403936805039740811665172084296359718727789613532838836722156902789584445641484352208741851401972670375818646455210130031110623607174964030357755601004372861273274357826107156160647876780646762636094167721594235018543067674917655028582668711745301288863353970457015228026228588479143876574844777734719389020993134252916145088404856761734592423886222735977908104840341406373734069760615851938785559768625326154805621698986247374172665080096174519693133865582954198439567861753854365444435553408162431996460523538803593935380875298084435233228812190415709344229531252597251739917167968274883577496239365902612778380128169786818474794459531044145457773661359262424149573113110397799501242735108774540331906865833159978247688699144057695424364710526246100642617639534402753133689707742831181386958524930224887633705005674658171921850794538569344814015245439804259555868942942335739329854869677228028848537551544405000925753252174184559716953016269232996062679162478342566954350424841634234310910500369353832160166921603927673710472800975843602031386030272260522245776723724046722854213664384139262542240216818238708988236588803147689900509678609061377624280307472793763906030469661558281390589343063312616704580673147574946499098064136896732994766109006566265671715152718125581951195976820735525210365499666152652085776934477139318162222624308288592735869349488434778270686563689865625147229362581704683785601133203198398627595647975847345518004959219437452277663173564766269179719422666550765515135349422735647495967204893301237702771283590782334093850202806617704942539996223031177828479355725222856789757830344534888374597025066354240881635687499881644826347245720052178118088598382693079151998605112145229739035848348944274874604486782181494010396574390204148638389066199259092478150241556837262747177898734489043941237666307399807669304672844793869994846367071365432704661920495653239890608238260506371087041071918368894138258187715002997709130730635483875309210369992719910620121477305355911920321881053031220216627948620687672669527199854336084304766774257963098300239693449672931417760461270955077058952805940215548805964832046480357509741494108708499095804716393784707219614957596784864054433086505511033249506584875092339732330986460238772294472094959370682965584313365927485547454094229157070362346126377598403221227962841544822476838785186276383341057821581258854968515715526212344005452033584163421524545590928984247938496058142350964844183046450639169622753194310226365953026758675351820796499332166368675433443685086503076430705016801782188486615870055526302277539844087209986456327883941901089912940213932162398161535729366530116515805906888799335338771428807057791043540968316979364354552442833228142419222361642696947224809695452502484794902399454770897594972812831339102004458154255668919284270783857974212018318589378610550945402206796659292282400327329977143294969346862797524171657124309121342173156023594896283035784875159626246347180561035850139705122452083250177620660466553389848666884836812480657819389321243888607570828518670463365795478779023632606023097361228576486895948839668222024016518932717443122270836981744768743023544161441638426466426371257832734133601792351284077352188123318669930217408318275939299670488666448855587005625529030902802608336163880329265507821536155931906393088108720301333700753631271743247319086058352603052105119345916719020051690999554045024217352619364834686900164520515807041265427895509876872865851010476518671182599445064849668425506536018861809406278898623687566179128171617093015409035638309497558674755339331729274927781712782657720491791731995346412284735832146659083169958733431911427088526591748509068779712954444421131581033250790983428523858124829836394525286439994242860398605978399758595017020115604982920408666367547314097331603082826080479495128912660794827266270822712470328797919447535604988865776803268666138863708892341111761318785535380755291197169009404546075387524626175594076718488764535844177446311347700444196066772638660353706591591122093922800842621673347474985699963394528063635893588574685385468230168294107313218865858505783512641170125552699681808058443867129361177865903546261416338049420653829225087306231577347805834699142838040123769316625614755196435844801314869372167795574567322435246780556260070789043103426013775720660570032734478073960837833513152260855439927551889707013987332724352042747082081114177239009349249782022179089029735833290862013944835688543445501647069834487042747426397785669666146962253736177947028192110548545800703935373059233406414014511216694846176214956274823652095159632125926138407578480541369523651320697780626988641895646296465437837733577002654650389612526169464075363362507640004379004877041096121488297067397577402079589885985129118256366614222258865556940628979402779559972820248866498013085820588525798391775462497487339629939156415465038254984902677396026390630135367937471155124541814417833459903735869311461243511846430864593998576761579715758358525561871937185016985436044033250057242987688361506261763868866473467102862940727116810475095010406863787789654339334116435582191820012115646954487256581217356690383319335087458037597253823649201619384222929853312795732708192696801584431323940755159474771490855046844983112826413054183256534418499748624042790188342679820221764971716178614705887379604565769227690607684651871641937950852705995442222792846434496456703969477765867403248555809519490111540633315135071734832236640109736926935037252066228961226639743226405174573776033418376304458875729784883003764920404160648867487147598101797820909064414518444675228287040166190576777648989805538134682428636507613502994414399891931717444600235235917870966591849691851269851156313327710598566244863275637773023955800821441758211847192862168688462441961656731661879190985461453026388819178902689662426426770868773163413908346184096895538481908495592422780282731540153046267142403605831921559006965769328256900007277104540857037918530060300415753283383586253916654000054081866561844571758345708240134773919901978643311211730925856942117348679438241955584562419339553761295911910442460739746158622422453542557655033787272675676612017588629320165701901335288135299813099820371750664264952090813785126554682500667556651739434381021507224121846098863657074451263348227721054747200993551633688621187777677787922992566959929008243200848146984734508702591895827214134025828870759526962870056915539452660974986504550463404195129769886903579572572234973743209713439978987180828003879842255346968431713772638055579893938387287643354613772351913731721122721047677144566216377246895960784705483565728364888326452997364124324411078685480854961963232107772946383694070527512914658007569984578143629829373885449086746678469685173567557136475157854069913677444306335820072921107508964354018911448712212199629241662707942836335408151984412769385978620942252166158698270850906055744364041671912899395137084437707861228062169269767612560927524183875409930429853991732497961246531178087742193512718272273694414532882886971640083090002465678085528942286399888482715111702881803907344862485726443303597986692222302542735566231946532890765863809921380672639049224220864889469562817548368797937244498000331322199633841521267012853404840375243265374167862321527196208645661628321400483711774468476675621466593168580336546397463159244676021182610301380484716398311356906621079050445689143473568986698139452618898783449957398148712367360188049695994731501837835063431245211623147792976299523934097159840977258422144573832937334956167055056287746512410778909637412711911537254522181227872681124045110004119569716894134637395210278743804111158743817801258092619185794492155471985440657585928541718580403151300639385841553756543319954982056681531579252175502546622543658462020507195247394886685947771478810664357656006801700798412037636163424546733857922974798122758242240586573972817871597041405864631867434307381383206539668119464730118710146068278143514838616465723708391608077956027280644586661926547634713075213449180469096215121361859526969461159263692991052456668365347903746910397728576968559504181991274743171025816899924458408395659237821097848814992588352666856437265757691501381676875893954043550042595713638037030172493962000954432149632199718382769653156245862013243121652434379278184644479976116029853523808010037472623059813392938982479789375629808331699800770659397577646726931959778825522686967275434028651675052958963353216460064000537983189259348742254841465282861719652702619749674130453631960928783174020446405413275895382307533138866484674904845647852929540034475909289228101708977991685479989852382643483878556742245278024340972570782546563680071859760489068078212453267476193358333657817733748235367569969263878203360664017722796096797087196685063963922845773452717729279849653932918493449187062910894763314245848732327601227922598576288381282593388084772609261950035541004781415126548978412948061525501067819925100974005844987495220706043500175878872191663315141673021975243746201352797006471071086485712464394215160182162837975836385394383710115860619737666579599309661248042564701564516825209857771689034567351305664890357217475922112284585071249667554359814113609824657224526939039123090846303213996877426836176098116607950187932335157391321953069863502139456306017057042386826278504518822208873777705544807038432157287438095089537463763127976324100177574704445133604908238778234484237489839959688583149571063618877690039907400669871975563710615815832558583358364063024072218148391344218229972764416380454683790629159977851844783690573238432420682933650698910394053008543707600665837079093219165947235728481072651554732875711765628829771729435475717452847193928434642770028777704529219429671038426916423454701084937525139889236938808477464240598859829636813759750274004286984203700356070869830371167268965698601075500460959748412750201124485242926234926163855172590320617412521559990999277163658123816589068825653933086227956727943027217778837546233736005094593110853538775990367899029638524933448956958776426749324347346457566287543266457122654351791754423035552029708076341953096625302030940668708823916637572932705243464109536841143293936534863633735676052122058882876747140557327257063430417274031951912313564642541397535586714080836435166141981485342952082876574229051397359577263204453833545887461133668830239750946361924779830058868496684230698609344212252279845694613444588130119207458076075980046565081265655266371350516952158553981641305718566786291804583581218468494472666956900785637719369541783414142570262289765577031594400064280622400966046329883025853189721802747941473202722204108172128325226808771446947235359257917717924560015326742340611542231984388734783189277506143637789295942836491015632733967941055214910115179597521322201177395389260149785553562059648221793400423836419994660750073346506735625467412416727543600125855569772299203206148181635539883629035997686202663546383859040421922820794857359718345034384759710968921551695816309582573939289491791072408576036520345001367018368560428150067478457616339512270528828639698649822409119254903043224138826380333406710076946475363526597736752901983832939984362455085633324468251514587510880121185255159529226057648305482189784790721326169601753581760303258505087865266456795898799396901997652014994434630157335028316711992558952444968552313442127665643187476865911343323192499938242388157883701531664619454714786682894469628979043201251936019922902846759012105481304148012388577791413654230650107441013620432155888846015518641314102399249376627384342843681730308246306677293525080628994387104096653055945745527077599565646537166676748597582291552846583909273984701560500009608190490854759417466954488718486802154321948914284672258694920042829613893817782183434391600780410264276899358856282893817852614831441442479070002322369465884192216840897952868387408267157334423140314124125954963682839029607145832851530073058330436827171503121177567325005286660403724616159460557411239375582649309750962950661882661859888746431667271704084146575751802218103368092443982357187923085508198657141702424877875684519983837461379385464067292090302393860769195764954070850243799234097562241460366641464819123403171659245582147706452358980531621641705899342297359742639787295217866639385175780338018323775455852459592278610859746969634414970497933809511259442320202259432544179553807522595820089337613526257768581663573942450703379299842533696783101974020873364662580988607906204818532573380759064050602710208347197088812762921952114565191490652743117837147768413350079817877504200834730105075488335851352307704341953359659858009700002736471013079787698945191842021290659351087090277592710083500701556725636716532830029960226581539575986179475829963648120376027905410491066485149231929619135047130559922896137782764758266765869120074115386067344232542748448547499654793834692264199576470044734658884598536469053405909242219608448205043618972280565529412674082693648567111248441171523850506749126072403774888042694408748172231214231530384859982566725319201188486264786632753828605448221766028157961272404349995184839535253303817078467200385480830667283610162928049027684938658934662886877561030637589746047271122288657550579957551783080506465994935950634254901468704107234902219864384248806668495447483823903423707729134361166117134622784499451539806575371326524375252852049609526062829832243307444100943542514471707402089805693276562702851854401965716332767282694023816471992944076767136114124797194658356072272011018169380365348314682422845616910327778458600037916001674835679792376103404649938057320007786394305669759545715248449336765981799579145705717914297320128127179348444022667807963680330645389259281236343014867418409720841800578724056929075196782651324389182749665911049478309024864992450947442788556168711768860083121994408067979751446211721810399821346488710437417182737823819167427613565686779529563145543895527788445068363496814021452615413065468436879444654105170132181845918468306381041232483537369034751055931936303933951874452768766955383990652633049936121203691621010656189020926152206905147687816327731674811190905183156145613244154646366518981948934680352260177756507748467649199510671039052001447266966816831763857725213313967985836983001786361911351185353986527304727684629891942646881584860837423664980063122408630339656044045238068247047578934248668767719900592955682683046123573064211279478150232338600518539738373273458607387685614470041893718648397568514871058284398812002671484294895970417637633122977294425184492978440264327685055664986912446294598137785460441336775940497134091535730319083181173537438667949535834257731722110622047116992705661891796857619753347528461610184427140994722762325132790575619265570458623453645184054635454337790722777355947158187727649505976937315340721690520431507102068990683691425832200549256928397708351428053769545445487265653779836786908518154489335894888191436935442409927523061391802068112542205577451638618027685943053418186184192049482937405343714240599937852983111893079983000920615489997073416189274098230516310502526658795073687205762244920306790850844727399940012373669424745239933115392982369130008652452954554606243906767594749359003007725815057246899647292833016763676962530280898412358523842437531921697201432691123632795021690639309051599504741797675287248631998139630740524161564218914992659994656245539834923502290774228299587322044813953567554765882739343577984571391892160120611046028361972167068293202341396142089581942394464196564066766393951211166073979305162920146875220504737033613149402244735706682975961033278760607908039417572479648376726123776910496582907862177476298161403646451619775703320593606350360444087610291782417071331535636915673880967406315754587701427279442636083846292820155916953539123023110463639044443744251317982843920227248245433240345817097834686680265993800492279517493310213108831857561334887149788229756091565379884166758851739512308944025679643124687508717727215569709892105648332958453395165458588689257689762824933622575916253127193472163687248519812684299464430596582748038302243723659369756275291745527580074441475949158885394153092133357767986190026679626450037261159434203993127289243676550949272688695708951555952050913485479207382347639423926988933672007948636510243183748080553539373481356283431752895204893553496945307133079068296034195184154553430703475431130271976635486833795222693650516938327072671575247023924385969137079700078730836478178765690812410377443191223999860571906190818379463821534383167288855913256620802647406462876411421193139416026307774021642816150634591042845047488179420632913018309731016519942681614626683913039155770021642940057338527117534231881413478760880930145063212059334655460471654195566046049741734053950698378515647985950974306575977628850027460798073497418774076213120870429996657758403591139346978353900559879178631072678559295330494115045260751393144979108250544249140679463672776199429739966151773104908393659532800501906263997734031908457672769460045376043880966717639837572697254811011988878736098889514347377525461522407736737518906999004599701413146481279828452211186504594792500050658858320468750427588336947683722882848089587266293748367524297301518261860061000852739963603951418481260315704200649385060320011856614026923027553185478998752777857760612061510207227111632665657307724564025752933687775775066596021482961240120837751050748858432295839242161491155446957871833125882629817211998634861115483576052911113481155308875181567106441044637552145674652047379048342121138348891012340926556561132544333497381225326811937763992034189534347897420921480767074338639930615942771299843908717713709626650330007170266448694755087008962167066082591435542612334103221018201769468679592550286835140265384224985938010537571249777991656727375076041171193640817023355462244098463495886730565478427179242518715068420656919363713722286571567787027409377963329232708321024028721911137845261916167846771193277899915196633525375998762992673032753249967280353005689502791499953580564579975065328306337777739570886343681689297101275126850719414914071625097481930129986099489330311633561552295732974952026459300398864325102711976776831528583363582916653450566884947762060548370809128559703172128099231989590808573506173195690738702940931580453836149839216313580250368883412351241242904343673898086725639920832253248856392877957777727549175142024223340340285229155421349121642571717333260139627115610260058393882169309939272859910590891955957615341276746800238008376441673489933260201086303764924691990851534029967684685889234651379730223047963582135086868190861457344183191526751675456488029739424620868423720611950008791942246746452517522104579280587813812157120701192054727490018396927927241445422439901219234900960231164111847261704104440040465667002329843209928905299602745653941977112985275293702383492776945439379755612648265669253250546977193724149061740770073573846601937015088821433858506966350992935311417633357643668322935691362565117771868433667665978546368697607777716799618492549748077266259243773878873732037708817922578944198726929498278603386244010093391843027133402070028609912032183198233017225723741859175823328177002062086801407022467217827975832794277885337697979905071161944134802636992737055829693883103888879288160208693214647168769567438851317359616945854596781466259722123418238555656701098678227381063659867835455893017052210165648063522154404950629388723091255672396190256826984799156402231182670069932899894737448209216978514606088732870093577871751640447651331163637842956766170819998018096308676582774156500617891319657091724775700857597059732692694505471121594940647696398966395694399681540807099117204267404693430537580465458376412842815354583383913062264033398054295030736016061007858789346109601353600769620255484923455985176042826326363202197234444183804153515164538225024696626074024424366986395380617573078681105614090704434315034143994060643393608882388673670759010543914073702443818264928000573034299866529175145701099077250095291273662822661047905938542761496660250065680094661525753397694374882874902280931368729855516968587794097119050890509175889097887210742405243417974008324062014776186724859472252326492067896735013145581859349652690546236566597688663697337190551875152231153976514912998106124386493058025111784236449091224450648731280949252331147400565925199855610097323329603717223716199895931860485297311506639986647670514871581500583557006859249343033210259161812426498906950174156943946623142834842057495255771016618167304805265336595960531375064332778608987170234429499288417398489915725547073873122570113848591763646009835103731214760762026483940344133917361512750508576178834453813393451169989232252571687077918362198248265316029761903196310372657245355789708153489033878741214060980097770300953958360586923263038749012576341408507990497017349593787941366936885621748158868493858341612142872481137047733563105612281593144187950052092704214384719542207798519005911618457109659824512732342573245929505207206284844390814025956652619843689363233266951174456405156430779367090413608655031132287110327098259186694470765650875969448377932552981851385272878545404998410657070697016196867069052586715948122720086083089227817921065455568843150442830795606744805509218462721642760177003674469177934005261149405058893316068232831763968301238572479064677983916103001064273092126755329181461805633311221642783064360214388335307711498611964348027217038098456269799331093957665375733672583243416611669700913219229631528071431060830765886844194303828011853982854703835609132073898289404830426895670893355578638003300580202526965552589141976507250985375780019688405523962733623842613430002898425296713111433740806475239949290496963091314443747297268369679728284512964722038948790805238778960519910805115464517854389488097012175862838834913959629033706725171398239570193106685737195894664805089421838296174006457016688057660224252215308750162255645581773622374925510857952410343055971250776890186718852251842369885940959258241231809941192256574557163204101578554751284172798039553685038675478912156790643439959683821985361369688601409234510933960934735017926027972198323676957858528911643384181305214047837820333796700491623674660289559509860049132240466101584233692361739572875660015509240595959465887735187667995568108554098083156072736287063958040827801166770167612049684406476489330269361798537418858661285464596439509827844898272760047087967660974260464470237909974363421057126676003767316707624969029313579178313314307831704020603943779441126825446698697339377716781567948087453597986921126853333903403051764387423516081647983258923423701503335785769573468589604805643324886686048508962923965049324128377524965119269629653087858240442553505830712950882875559326913980223597604354820035524381649624938265669083981358144921461602103221602926250111360476891368172903085778908903287264813810604869771659076734148343490519799739088572392736826826822726254539130802841640389197271056508962238718267998982673594711534557930149459973048166133210378195024937414779101408257880819430031645838256485727461011591027722724772403002573968869370531752666487081382145103163723710740272053442714977785727064572285266545999267127983761972500852468402829779935394390078936047579335471282652910553233636979609511821453720563304920908601875755913038778779623108718962188917710873420247406968164776563934118003044843723737842035751762536288089053118497903367763121863805342913491201210002733816966512231929131798127836210743663002356320532258299713366466243378247157794143067734701321375279103776869974937532346074686174093390220423058524932915599723282079402132836212542710455411522126271106227780979624455708547307067181408026449373237765218616873353560635285521247907257951751539392897671757640729226368233929930793319326320215711869942183667491968173230191606489526604549609378933608975401350058771950862432589816936220842460397710842018783113037582704764386198534242812600998997609395892222807412374786995305677640822971706918679737114867856463626035975342726622653157572699668279088930417006087289969110269923235688026941311286186354484357444919921782578551525963604149524983678872286811438436731938449273309260854433544015447397676563224657864788973449725266506382949956875259197498582727257613189501590854305994008949443928326032038666953324780567468658635038495078488920038841467941538203096232154741650969575661796129185220556712010744117663038548091637081881025352606883554483934740058330197387646005696439464427094626368752799938048073781115143418353839492623046373555009129926595484119299170010326760896899106970194776031514669269911883941272209265444639562221471200535998526163965512181664856035347840163068884972535714975977741871676681650725070336970042750666660548893035280268854553692059325873774411905082238623481979615625882914654419226838454506891270781324186069639423584840428575951360118154371332406806340700023239475062465683533959619691300322029307316276675394603577145099842406135134586344275529278984568431470272835315671369719395332118213049443642793932798112503688991478077649513712117701507379123894663863524684799189812499060706754798118844780045036252635381761644372067464466695354613642081183707971095900052467432936649104122158090997429892542223844868317893632200336470043579886828764202621018859311838767086585620441006007604865430715203041774187326197347910074251430389043381916375087257216501230734797822384668788061746686787114150053143266761594217840592161091932517635742851067821328293483460731297751622116799717185725020290845808625180078698141661332223259563207927939138992942286528883753012112337049104147262913595321552800702082663910027331481140655437022484296844008732467779341140396457520085110584435751502458389322854737359707439160862683397210622202840862797901736883604769697131175990111106698211751389575339825853328837085288168764083880653970841480476976263708261491799802152430250679359302507192929727173992205547394593155070411900635711738374250769300412200329323057326878606493595606274359056125229602566939338850720356012284459002962259123346230638513147354562593228377210486584095933173886119387096511388951055351867888586266410229571398748816687985447521823485516433566097974205163280604781225994920740428168800201382662102083222317133777264353618158667313906298307676692856792400597692868606964792949330385737285643564333026187930899263602674037083027647178294662973494518096658492026255127568764894920116276204011901131086295481335748675974477117082690777186742161213043462544752639199811402766242084499744324901908951663417066621390548960784388031384311439178222869962936816179144966919216665813680849013406211870389531446831453817898423769020928640559247221676878749710141801550360718044900324134294153495192938845472042173478706262131006601653783463234486293288897464290625355379934679430873524219574287454665913157397567407622916556202752000389880451249362442563266819109874541378850295882109576901295994523257026940362880715326609659526568392071676863507081101830614432865979366536247823485104071763413680870778276763178977798397021229524909902848656204108396516230359040751724662403543381062716648812524506988146409102476696238692933582076792183324109858854295567675244289100269215995585283209221912153716181828505333804939506848286254497553796044600939124162412469788208987464183586686996316399170779465454069124664447177596425023826668935465852547606875053566428077256731724292356416776175951373473312699787420766237198191737644998246967045164413804372812478485415495069674813484466485310513737422963195967244565539732783647833489765660413518028200545602184218251606597178345081811184151943442823999371713728240344901637720787407016535727631283800197248008306365553994837082414815135743323845202235732846704461669951214787703896746995429339676312491854812907671384505230355291365756421320482474565598128408450845111528689160142058081481397840075337553078539605340676543230242789476473864506835760503808409053018772707245592537712144415052223611160130026491287225702251850950358916461771793032075862720409083300295686108345245354603306495391240537288017554580277529153485978219204460617143322914327244294695696487120299386779515068702552274634706670001115906810970276036424882870639223095611056900625917064891094275342000147403893779349698436923728170263565396555708347647138205466022921101550126064875279092144303697652830231726035812735649623260854220267889637743383749812865516169107379011825749656976220091802879986896172862425388380165768092861307730149799340296243685333961142675145139097970379475905489715800763531276190514014644573732585034538733865437050185246242231578812408698099334906853689424150580401695533771015304670563560647792065374571875537671995451086658594176556477971428695340073184407326667850997593170933643929956912710230388817068270489869129851226692199628196107493923398455510396906948077992974922161336074536810901964590352669821690679312174729172290140201084036469210641578732767498724657591915415297524278876898634991682091338153606875380887623519012355862721548632497886419877018184506196838041921445680686551175969724919977675479178067165214519987302002817482952738913424247527894895752765759420976853196992662494732857228090242600684125488468861531789469455917548368066815556973678178727861092458292863699957207411202938517864726112101047038748834426083285207143722204243882604720761533364272193078779442404856836810024129639629435417639815194013706549571074235962617421875042761388524980162759856956516936053835289687460145777027636178055198758083224373693793842883473755541247977290232740031925649314402257559805017119463918477408180221873587773819087931454295585788914607926342857455400272025061189211287015443358537407188490530881846500766659542624060275759454617617985859836548089655801272081435659334881638461486722411212032124724310917972977545984485078279588601997369876651838321141029025001127525925852742575818711057632496446128409395661030568262767798564578328779332098835367479916345523029198049894003827448471219600282258676955744461534913850623755496546834237950589693540724579553440183329301104306858431254626996916740708380702404924742660654101552089500963052914205658827316166286457742235519520761730379906189772770986422438854082300789019963291058950514714303660659637155613170348546856533245085076282002997214778654781709970846648589847334258300229053264963919998617770387416976132162723685801669422135384362315126106304741044314292791954400256862518406558355377164315362104898491682126131392071184173808110850771275855373207579847517467131375300565671773545967651880677325796374077782510459409006210149365348645807821659258922869857015952166546256646803002290770389233898526091800820382094271874471602679910906481822082458415179341525126005153645467803630827136891750267237203079625644812678809129811108770776623344470432821868004573991963017837986862739020493565144042269672916796666683652736854800681236222317320399989645220357461734084272012118027327279673569658442716782949958669191891406994260142699976443627594076713573736772880791061970898050575124622908654244619870528753633908006719725797296469395935415966833797922278433480492181960233644832606869796998228111583399920308271919628526975311376129035327791157970324268844168323836966534656427293397738172122033248903772623863381116079275478919182705477106164267193722228849225674695883207392689007370476339806526874649543370814734367383675256744459855729062564250231022908051166897488920099939457449203778532660739738566870904627145893179937392139609039325913406740658276014495348517502585958860553525783268339176407172303812775451317752179922480010365881629722913036027268981706721543736123165146219170330953657697466439434954296513977399460421861387871682067858567631535363729774560672750513808092349500389056707534164925428416293444108220787735241621592805713251164931455813501580989372807523845896551377390060013374445484836343090473515765501728848033920516754388057757437809869543519320337764892403137381877918564651312854333252065397498631228629414163168101709711244481863581273311519686093756946527904228321149212238675740002991779154264377916193991220699510285879508387935969256413632555365823725392998018725933392265025237767594937190673495920455869885949465449416800538358396969860974943265324839517830874846602244371355477408677703207925869177610382894475028813865295664595064489235280359411581103056860004920247272678202491724817782884762651046214177669294269492705701261906179717274952232313429254912260116268290103470388557719139187546985078862385823836364380830687558527322082303745699359620376970473596630534640647709164059020395074808411234873346514048208311426611547126438760257093449290594510176893759688459480108250965357200215587803089376472249777338016242122766531465830987917519852829372187872684818868715833979791065515734149785648371623843239702840077684247508057972881574489775754454109572446218362674234954932077382731315159869761618232801249808781954165597557661775021307438784399756317877201492410544168202541589727383146463212568142683904760601744466551444329895955100497913657013910114269848397232275042841184679502325589115914345269092957551953797596436324816122936612704157575880328686109581767713179817986047130045019986000423662039692245067187347446896508746004250470889688008657711258553145702908198361043453098386308391682535271408676755524803421650995495081193781500686062582457753471595714252548644502818773824474792192561492203014417814450072838891211069936212763297696851676263946569925781491299742752920532339015528104481988192944350324823023651180192755886382129536725049614296099017508873046781471485988814173457691682427899444171485649033830201057049666879933860905008529600514943462862408648899915175709076651896453843774293428890929924304513578247007435853161001101495327088406485844404456092273421264857074205956145622798978197073456194482977864566897060974355796858712089056294211217776484228662923553108810630356423731040705096919698931845236678667572254874707936944075357338601902735070277047377720283993250716104512109785185987889486333216178926547988479844411277039418510160221535452476617230101994317463612810359223457040946666212443980678823734642162715626684708792023495816090727580150234448699333601733711395014898412139506386364872478544650478823391404575867054825630169437073301308337289057132242615462880547525230323836920954334948336724498799008686815065747545331128897618622454681280082078146019522177224503274659119206205832520852112228805815938392468796520597237486989786312629257410433015104865115562535523029616752900681124532139340882177020902255598903092434085338372675215299143264816864146205637089811701122928519974600608112179040847871379924470702537013001963763526075012693931005771310604665747316034254983627928276854854581906159835938823084223475014456274285346976350234614850789138407657354771130203114253472970731624863809194718059581595100311087538007726729359961422078527652813867133897255654296764437784979391413145483173170572640420117084669892867685460016516227093555819960435165683486004116231767810119169809913830251104512798943331784518530502865195446553715165947829330922559870551725435075067505405692511383826319323432531413885295466803698394438325032122012759801003218757255288087565586208772005773096732164524276729853967324581225767941634378671230453776708240795283329762735020593551384376798424665812926689982853380254335703420083085541041158931208705936266922181865059787900787361894249202377999620593105523411246149071998426284169888490402652260550622414843207952732161088951032742295601456409997065515584988310171941280733774361897373792395540196106980522380890001218107565336676318508941476072874569381740337806516824115216503973208798012314449796024142096134258930857489472125137850835754206567319110898935530503206764631155213631087644795590315788968067043090952842845623412854502650442536555580121209735034387943155415201759635189956554794814885640777904922809465124195039751808115903524085998137930972851859375239621520394023937829292876133163733251223078916036054342476564073158572457567002702780543425299499493016993229359260035149360464699921915991359268901422183798121949549840161223902619182927510184681356843609489008003343217418593945731107193806887180822037437332607146286489958057221130858479302510101625883966196541121722752292801847806398912404380332721184195136117853469797658954550317590912830416431920104677379222969437628302269589750397149001351856429641492439393637178678761358666069818788830756121522032346389066835746297268972021524650979827877028445197912733957203864387917801124985059815137601298764979553695518671538116614797202521019095926212928220764492582462776834842166390649676116666050290694659923254136894207785904103069068583251432827635746873077511246957944764613866182470795307462090635228309110088281569201389881708614641968175593417167659593389953340111771132317497083086802130174420543372574849971428927050687141444853449545066618313846213241423885544584177555120058518804738382196504572668067484287299132758728414369122174434125616663218069897870176291748534145433195557960273743794990439185044649141648140517633024470702260804601691698967613007656908047076192501694929985579704649281789221192160059152575237454535951509202011095440522090962349446122259822709092852877698742098878450517904745907868016857638057522240571430628662944788824875588485231523119628140583319263389931828632417218733756331570992281630264822037696572149126248766879243092022067025558463195210192859361395718409188692038598312242273966542051122459045816125972985811138406754160054869393251860727071635983409770334201104987861560164660920511077495030947528445428462618005703891037353120897507447198506182244073345630266374655264059314008945630337497331216528565392816160181647529531288611136469184288410745251853331171735804826258972478881167803762981046057696024842411554239186019369533558567439443358935763864658867884608435520118502891866083951912980978904468637793509367725960714402890992756936647538362624338102718525086497142557608057809919794757124757955413225419447962388891554565330739011037370759724857485749861382801326906001449382062620849620369731283260658244142760180016547472306339523027422245224578399907145726861237670643902191376544963743378318708211109325457464686519669057302656709549390565839779521294782443328077212468744629207160507361708163270751386542721139799529124663078741751747921447890959993137510459446692477622207231038942470778194606106076551089878939150414368531651370763298306805691054197619195792988693986528166663641118692563152039575913202026187209584860054354361983094918000465204249121908374919952113330134708303908681635088403850710635349938260627853891574793213375352529561020149559639555077181595920071023065958540887799383311443352836638947255863686798629546105591701922924926612891009144139560513887175655618356400141140175713385786839887269869984650710641741408202824658425119017567233542408426488224772507361536264441076753297227041489463427684523746652685559672438497283548377136832344968193785177242380295244194342184851372404641341242491627335326864670380307391771991447636790600173901181725131758374641842405723772902355698833906549616877375583281168060376446125134170002576190443388785625873543069631276100563218197997728914258077414422403566573036323685680480200114933450911814506831239224557463921201468930955310267074883960790630211331455418906694948865294903657383278955083685303549753998895385438929604777079401405005117314459156435250453562134779625156489191066707915560514753077451211004765034415205698956494610540182515846535598093206421150241314374787693516038882739349853456729681036034742734792880413085256264938991665926769789865065452178760435546618889189825398383689825872805507932207154350062269447629375721207554893836417417824755197684763252801473336578598214941554790843851658747475511618589054779943009912877106929355767820667828908227879709267857795458876114727152161617379534387488432556290188742768538781982950427902772283949805190954465614520248188858340829640147002177743540463105020522452394808325191728922409637650056268958140224763065722212515769690567834109347920160042923429946068706307638992716015619270412143239773547525555087131467384033343053513410679065295179814021462307964345165704298708918316319650538947354743527657127470897131372723419517659433483778084666688802697941123900097597052595682798327963268329250391572018195245034283799500198825467477056496900697428344141951410472464579003510152968064231630545606590622241539262482003672568824002015651371183085727295359627325766447509288084575412649314696349652077342473324329471431216086390999194639631357920526692278712073266423249473407314427889998629359811393766477874614590812394723382377500263863798459333708876046889864974337123406630065266108635711046973761467462339253494657282606055365178375136577840388019609855830216543460997846403588154325479760509496704445492005680088336691730808365332664499931463908287850590783802603318524616540284667823338392251177180828679028046848725300766662336024391920867245964351874233137705684720580321183214874970345748449197092794713158579260333099495171419714862875048235875604526482056138806123426273550615291741163342687556591405825005274914712007173150912853189394975810647197554604727899601416672301867533340096747330080273611333867713347575282388028896867529726551492862292328202962876153716579496349913566188913533218591876030646797127290986037422564363577070273340239092813739134412873963952903869673006039265410350035483456015370532627801243144353312350383610942070114367153980637763836532479556348603578621375858370354956654269798892949442633661380786877220722500297406516095657249971177229777038554596145956541990161134879189136442064098054733556390800723127776025454579451304662925516273754064873780397198718677378760988380268251761999738853780300702585713990285334704371912409197623142955799072650328819031774630415724492698136844598523815504177539671781103549338594521893936917333075470143858506597649788879891873794226866131321000725742848700584528070731312094890129804781098909487619832916802236202672519619068194038595602710533580202235148063822435105778018099872256471054561351415022690350183492775689384529085490070212234920463848965493651336207317047866349508747479374516550069031272050076567302186003860641508645016317129048210074731387332414999498580651524813508510165945517146609687513295762352429205697609234651897878599329229984156332955640989946365971041961212676712326878608607715829134978191389178676546927402470342080809800091763993954291223403289287828658296326689769057094488645201585771944300555625311361996519476865801711443814364509508281155797533587428027905530221052868667839288486751076496791295787865261409409324731045547582102554203813380867191577045872401787068402551195260313456023774225278858318716990218946746446110920957037072095504533373447418571929924712774779660988674156415122367383877359654033501451397521266123051183528552975485296990089746785089420442015617451041099877770970052875879284293991842078091442594880548551504388942936850320219205052665503427525243631752046577253386534792337351553385595068853602559099538752615647413332257619788034113522450906851474608864409713826380494235357836084008280836452055853139405896692863917199702768801962239708052845590069480238874346791434665859099437450403117823852072638730056503824748849497947213118468579703563257483109750042454439108171741187174646865804429134776367778529348314623625425138544154087612041023104477249167781100274195794655539112338404644653023030556492557531449072101770874319392155852492376617355971413271152388540041950279671733553477553612455922188297694472977713123089304784083475883035973136238023826153280976164164398440785222083778393886544243535616129437951235317021555484602969521929950146987646776658052397187951254073479418723665149416947734227498620033955468793464296435265015512815574237889029649854650954496137087393733960213342317387943657451855943881968122698970687151215857373570326965753378102258392643490874685671900174069709745546033285763136793659966771553537639500459103326759936474485697390754291498172558906266961166269231672339880118687984713585254248472409765284205531999642236996117762294484107796868557050888028924016453790072687319164053294759573122554633086414874063466521519658977992203291659206453186794291780136641028667573477690480308995894286374481943142910873153255453221977740061825207046903378718076849595450959114693591872736289824649866921192811044390342382641341113324317464046502556470668341424180457619889708452891353037568419949812311614230992694999678162043341854732857393986933897839556116870068035631766872521392122412965949033138279974827555951888329441907633492469405981225455780588829537204428313486525825638608376249935821446968407126065268639200462384895731409672931479804188728841281612303185004431860462851406548454189217177882124551277166435583434524202024403348805293473722296497917501046843563539737240812468022856820019841486090190534068785670990476969303036599103536909978997563554578972420842983669514001386588039355604825747463911055684041356004883346457215667742757130814588246676343812444686243842296860335535268058876480047837200060631602865257422426778200100856707711107697340055473088267342682167228832319303058776662816548881711305135062206934562278621395766405029357255233478987112987609690409812109814539872247383666330976293140631060260083378469150240869054696417139832900770774918786652855250058180192101942941670606951243443941586869657518286903764591766114880488379489340968841290220321520859001622336153663097517291840788253763741784101991604784072470335910590792910313159967602774939269026595872469469309752499460355154862251363441682543843047339851047890901846969369114189740475666552002779471337948970567691109574648770322787827025739955618884181314582087220906110311576180588172505897980942851652661689614816624736039243370583889247112090497750037451983322791914125838537188518046882274200296849058272608686317044176909133151313074646978750713053024595838806570347766528764233217677252678381322716817844458669657952135728243103451284381456507050535817399216264382413254999810811501751078035492966096582298227884905669564987445837488584778647191091650463269087439045737329515520135055136249292138826879726621216503618377665514001643419602434144846415836043006080699485043282459180663020426181515300704695107110570462485951617759079846030651468610942729935650353147536467386105809538797589990125225709888702555631965960950993438048805306615989256616246943702330664511819117911241601508700593987802532460140075310989550012191777516719054586259778203704954945333578750506645428855478666716665056523271129828629593346353419666749246810247611307656004698459585700210414043064679047971018279989618854065171520208718238807657912529413261142686800945206728546913191376762378868455776414944539100954590048670584589244947275893403163932905191176254192943336908502090284039693958258979488397328057555087418125585617583988914062072727985574933376595593924310954800924190140578571324262575035337510545498544282670884834629994017960121781202204109098590386071246453865959030933776562653909882224201374689749842938227139422047036508382056527348678172617820230047710929638396658718537381657483543216506926744099081831685212910846830075665212950105653745616162155632489545640541098126040130890925008174646712538287949854125850465822333493359165375360190525229348009816840256746512440521022678721382990195048974661729527955424263571862075845608684548230578689447587475557554419580103568957300467974681646077333535697356507866618773957426357194187938943931841123997637473664691225996027615194527240909332386236576833237297432759057114137202869843474986090380219078259086739465158834962244773606352028284715261863286964424025055533070155667498006590757757268331226927759330175552473843989345318585358348658101909125272696646462692096201354408000608683378228720440359037955826568623522708580220919476787468066728169315960830605153215493527152790707956080539443166143579549297405014954287069255514773204343489333744040422614708262401852180457081050729605346989261493089177595561605919632685020672173306934289334156371351651173960593154387028589488959703730267252722411574824366586417597366908913972790071938863759638425427597423371454600971933626942452519323297181091370233255345173692868256946653112267955338406999174226207135154505432430248671170914635828787744962692783954009539151260233755635840793142018195256858738006702535246442931850405469976679211125665695327019039663110033412159794976908401895532433835916833921322256412292771112360365217693644901433358543044585650870727615340949695509435970512842851702623253656411563257441932380490131250495254185131479199210225159140647582676162627801026598217200159112217691728113234774904100009335761788107450939653223078412103529736089702800218584270442032673837208147386291571198594514577736348404265198739895192012134872842843108939539731842293918044900593130613951064121010689292755596104197086860971025629755619506603239526877719743040869829805934089263691498306218676552905746958224294248997612459833401702369396935973646991862047694288277014987325644893166504936341909942886103425798980418906642892577739736217092761518553611465408736722144938770925550421283273317204072630128061503739336703626789899138790123058801971913231523220486552131044728503717250268607871721498712288106376888213228333111000668866433563587074967676779837106010461986940616552612001703982522575985155413515731748595676338609304284880347764747638216556841040395763306192270111003283219450096159452972916942980181767330369410210848077850148045097155085596399644647636796641608822291957817584791516604981661008629190283469671968760574981549305729987026222441714892704360492154379932946346472471722235960712432050134123025633490376320492808951918642586397405158441510807477708384904374523374662621690488628022757832436620392374076118422277812896096015394494168886093542822570008965882886603457936336517032779869392268112392819740629737869167262304601851918553932043394483418441439363769573160210280716271987751737135422234878309887248262387642361050979830877318342133266116230111729809361065902601822065901084024293837232665596112225520485093399802428929371119716446980680482839847589717659457182373624557487196189309737678046320853362206988781767845133181413208870209887072107461222157748548220018794979636922017011309438925634737557060989305435838269434178987594491040697520041602638418445251604226012315401342131530284291536099151601721625045636887442130730835147019443972438512382146556382314587881635533408452853792211935811319619417664746960784319170891236769277707696343638668852261384076847317811919907791757377170263098196849232145675935556533592833830635333770467822865303183968492640544780585155981001116332662119324399603349244826242124305040082412169156978782191412663422284664684835534252623105289897612470945234307904273278251935924264805776821628929118253842911374093269538450498381634790896301412640318660329176794123563004292086627079043315465850124522099074716608164912680568710906521132299725400842313877385588385528047601939472057032510100630346254987782515067949005800755995857378222405815793929514182265715889448583153370292256163546400759669304261261074551617088319780766586582308254592021518599221860469174800363367050864570014085236742938146945562095315729448975324022726447486477771954614712499189630274143573569427815040151058774849643130387248210092495932176183097581474327179324303016526577958222804596214811592671676452046114225003439021265375355496084291623877695254747153921423363837119898887383236547172686223762523162697577549186164083555476681762577399598372474775092734042920149185589062194501350911439469946003538666296696964057648104800076616370315575501427477546404955596203947760880576910259436846330639901799239305316474870113560289575282847184990742094928929666034503006812111370455364434951374784665705089305321585773309340811307797540690708732017326739629499036475722996432918315133721316134706233734305542877355598002458004107316974178545717310264574411886960013986454769432863142488133586431753454721726767926186428097724007754631758879359260308829967561856742278990229573029186560950353294972277930792340440763748955458804741103113910460866976878494664268507847660069734836299262163681591570085962910450783343411028362526059490672570416694026096115952327754134697288928969678593130712666209504394070028400268089190358831696062286170773717225466833304003453035537284496145586352333453061214766665639965761692811309448671357682813364311221061922975450656901492750730980346530588562829555460119080244974129347845122056392394693690264159300783951192603930246171212964165933038611788860480818830163019255266791993291098688470796497891298837957612769379601448754032855080274413003034353875040705887963283995610321751013674109413218488328508743173988607457365374357641521613036486046118718310653748419335673950229771455654762060870384498507683980253392241307901853962873816839391421345258609159034706896417650416081843312765029991550412275357067138336889677230416314486212342169635404970752557267793793251021040309834195121383339644412848022570601397472010486108941101818369784323845703773304215659961065293509934819195650799770610608471315688083393735174651071022997600650530727131918764808220590442473278486860774647931388366931345306070003326460830973185518623516479696854171702439444334231121084666630227014742002863006705722183861240076003459708044282800144262362083009315123448278321887744275218478383836187221750412296171165021046039463682029631685432546816628941901360765109212076819187017161536695538283343591937584083640531780705452760093318441521977976793630436471020115882987097429843018680622029479410183675736794616514992004365553841726309541587751058554723680040859196675256631604771170524506849608116571752710704657525988725412891461521859988469822147044734832406624629325333743131158403039655972396647549762042727370468951077218981693175290522170154334674425440168008928279797947809279082478128071842539752115288061757825418416717450934101901249835231499113555286305238634751380295974567852800928813417390724919649212848247466857133869776053728981966401523627891030799956200957670712430413788234646943356215019048057904367490579421089913284980653664941042321735227187002452977989777727436466211901811605748817588034375275822964898097266847679668626073393386295490825375026877504698009975614449443958650688667021196328116205349573608365064935072678824307508978990672112179377670562973345627322339766960357541882354260513515475846642360789189153571682246987866461296780144091512264035459977704554201691152568090573651953448343729418374062946955846066071629109979003639018496933628972204449806740446944028098858128939515747866113094197224703509424786157661361363416260088519576654327898488805743661450908380499507809231914291225211520962257965971604386589707983230534652084107481768011795556523360598943230159792009551474296573086772183955507536999816312005903029263003662346270485521431664211579902862124228723089993854846599227027086088349795880191098928825119467058065698052308111291378506022985154424914030618433825727288145630912167477646754481546679011731119663881666258391475079205009482849148562821436938562495260485506335404797093808894664856912269041481527295547757686977549074764288671480091247555191359911485631435563470806592320701608508011940420078648652749068930825629851693651273879475755712134464107769996676321773668126518956447544269018827493443563188294109600947660346819953976209496950763278982878194141537048195663091965602802837252122441176160729124182226339670663592723404698283644352181450429216488047074154748110797334515075971959514679003672765378141564368496162608984955050092024962604819627231993248243003592846098477708856936063937640418465501656644049882870731429114714675974394894199889330803809120238980707528682606880837642998524281869140087614966767336105567515236797971277882976998877971430817977740895708858404982959322370933210678493922906227833988782484133550085235788042073343432110864006057373146703521278294027400552511862031129509937567028045647824959815675070890595789177657438624049033086615960733223399190631186589336611239729275670941776457925648784214008044048724897028280642462730728446613963566371174589520544694123025489814162078358228802190352859485830281860716468484329644478782166554142457341163051913267149178170489287181772791156942762238687488553807962164327599328061205541539153957670250350579387530241688482112105884405120362295946898919701601816888680923780199558779857237605453342347392761476360426236426447342117081116942110873323878086186100140642189715990904966594767275640877805642961019427130998041033260877168782243904377934804464065166105387392020659991382697887427898725387847166933647148976595348586422766030074678757750860229421620646313976702222463003781054207530182299409880289963918802958126491605612672068081553655173476388935219678502947997854482831215612524254544093476551856015895433202944979420260170513102306676792288499148971017501757076154541785927502816632951697953666794280856026184228230274995997475445464572918396271211022061963440661006152087753069289177120091136093705993553438207514204538162016025983908451928743381473657394855548003320441466595690235275295967466020468141203373213167105543494588737067245459898037258067468020417948124913325995782792843356578629330551279253564976746687663283178795405071855032135119358203740360528385196178431197546910812506664652976149394415726466182920707887213604967599025341896368611953358686450446527537329052416285036793108668636949744489673509696111183100926230907015395246302875790845260195107161144321823798423338885792958166520747410545862520937514912784436095333333991052572322992090887850270446781259229837248959216919921130175789367895295691014615160665172296515296316916705912762063972850228977194583511691576675562644154588326459838780841329008797449613005451841898544841914023483876501345055079948093026597484229350178857989776813610169675692422385123799128584507710993296202696771917573019351330989990318445135017103380366186298341183843700726938427449329193066438763451194212791570736210335396686918458500969904217247158925301546521915190027007335684927871959939227540396129638778401993163242645521736000940808238757845329752237610673421294797038513224344869480317313856811673408220730773129903711913017813643350391573003709726692423211620034874779400568425545312172481360670779646043881942660950143452508602802246744682382978324315731849419599162758700828090545992344440175808524878399395073309610499566920118290248038968938582464355616839067892853423602295893507056364295661362303133966047137504869621849611999357657693829546840644085777878128394729322353503834546203867511216750560368069732388430001258429821342349430493558261581892774925331421383409825938034016442194695225514572750287975981417443769058018790229552334234809076594204160516483561035649445705313420393383537693838760473368156917868159970764853164022346880182347394830167399987069357026828739975010821248467782621618887598989183285795507845883906597319020222230057301217426727882804745219063978328269524471492129299111804468946181668081431627470496348399583640911332041542173254151185732012667648426323057959839017340301254728192871915603531057909913193876512223570688562743844891964094505885688668590781574966379143794859082611775774734299722655977012573482027074802444053466187525076334505931479754278188958258674774460428798535952226671082683229735058606595835620107102906212417323375000011926356148654720579683887940684539652670964467896820393361800096745308937854465237902683416559179674238306369959918638551353845497824431059648186452924886210251572118638520398391886126074579137957270033966297448441672572391174694636093667233426879066501808790668268569693591623396871532143619215684107096230454207164358481416092408346337547452446460760275032968270680390612112857027918460803143516268434255689816807966979996746034422216217396124737140532888863421632826921876751477114313685111790610310264232939127628528758228087899169184291586599841863650714038892141225660244280304166141046444921207889641372661442482568242407762084971777625395383148270774114570596279732709085861399879693182583191476089248159963178570191624832017378160332104767716810341845656570310446977379234921446349329111309312423467582936216649967927990503868732004207820807256599072236195069598152910583029974907792799278714766699928092208393741815995051775872557714791561747782355284533836050522415143187273116491732146397907582183905413714084624875846564231059623571428293615518536730492333730973370277223304832325944998372783243966772495418045101446248257384219685965488919643934932729715947902677391956343736253784236328327106860308996858161176455386269042012071834257817271430652657039467695996598681660463691457601511410740204980683738790244576877266296777014445015842711777542308093766131608848169923514927528740880984798864603095383479819185462828167092817700825018335373142982005714726392125081972966181472855613469885909842971412249902867813654375399011951322811539263788100571746968137902226374997813519338925711079980889021942823656648944094621996998528098033220196979683427298434130360445054863079266424870989688498576741790576782327078336566614631382512137097061483160756456988795374107004692556741862502396538755203231227440440836904991344200791701995491132703629752367565987383609897010466906500203197993878421326927872579281090012478622434971548987854070599650817072087047760466991091353606995234658526308764863913351963256499800582924748114420601502162054124789637034576873189390583343178539302617126303879530555729272627804852926646331172530283833666566156619099101081133552777797398993441363174899489411552807189261704326810001564669108117800735737282901611903260957376692687147839055508981585522015433864509698243485754262989022822438366341720631139001784445605496297394635583844329318453096002648712794943227091078829349213274142896130986775939467223057504062377313051884434505971267216969556397118283139262873178210578377255155203986573853192140193834696282476232165924118605334597865620500954938549841437661999536211547381352678324323885654569117589452717890640015230752574846939591159033866217551115257596186008044198532882780569837188669449966679220787112573384132344874309111166760157051808620800511359499014293068437576690572850878380014722918326729870066478917458489501049362343712891400997248666043495462218503233417602003704505463330251508762365319833832405256724884262573185412725062391395987804284346712443806044915475870005762609612032276051584047217475935058717817897193586587263620476348627483182613056085726974652541398868949242360733330386389952014629006206589341760107185599551898319564669036430624502458262595598157480301621006613120747097012678062745038451562645009982316012115051084589149285482564801197090828660921848231445847775929590976428142644019297826409694896349327589296842517738192198920382396370307742295342613460393519074761575417456219982016901382970875278185586888192158487058465591028726258572318196340788890777413533643532445800432628483155749798805934067732779435918869978309049676957220484202899977956476217622748828252797427420008171309661560842138937248505150382123054608333664461296243569765839862348050908226519652106754905537047198648126675551004074141548073321078020577236825714638376405605340356695993438183557681918551145144207425134674107085441156248867720480721506146302789928470564602054358586376317096208694257810968420965547438519239667925162987537056997502569307696063647864090178210395495815395676973252759839061133605742083711789135018339112902243374371236596316603315915635421898511284648279758318304821967917408872159033814397316635280806411626520701308232569203730806874497991137532787425513649585900900983058545087740335206823852634128458224864867461131126219084877185104503269182809322842521167968369492970753441690904490685258594597989150179693860175906837425190779614614194851730098330805679826494044779229820408693941363470640705856005782631827694398887577066976581547778118285442247402064133228440929224613651096978902769090666709770540542094769136528101529539307100365760217829250762135128230369804834619024408213400162798699588160985262565896469208299599514953142403684949068665353352949197890293572867654999564096137695871904626916532803499085723946763111018903525452707390518094656632914954893363448302507810245876352611991382888276723392276439303057603761936975113375737162694709758821354378005670843042310237840799374701632689421885861307598590597888709658241285278519345672435649489555852898876324225441989105036632659036785989827012301933187314297100336598898513119229286671652778461188141863844678933076974057087160142019241780370325906332922903470524293324247831171669057304792826790233127194547623377628672302992544618838737579024026384924333211862382678355129135795987987929295912494876383914315437741182919954401035605472452922905025444667867107877028835967747841407390983710878936537869858636834062969222015242820817451870384143125479896449633172793738608020479605844356923184283503004046044082051797321995745538482930416633576639176484120007582757584106707682207037429451463820045563054856279697143108135076342301390197599246819490136665193159452464296516234629201686265833514629328871988022929871212749245245133258523950717635695349255068168280304099522021638466071127566378129637222457675452884574743773938001010680600735380986562223413597482238602784557614827199495221818656988746848151402742259230733373166417991574895443338713730331117910511527586823104854121516592481323901042425260448389696019508298564699680756331185432036796027948249388733922993927235935452360562956326727491710922862716614513042985060386803141574454749016932668981810547870449148996083945261193564038160025874498342095418183312918670040581445206300586716106800042109980526292804396334952570916636426434546979994215538518221978792963317090115133530996553161638825488655801926887782559743042285168381056783457472930401034509666589917745203735572373694696873993751007225264137062023257922319501802604223550068134846507074847805884198471487723993526527565293488638635903932157224939130447804265635425569961847045859802900151434364603182218457223587263504350161308794927727309596382634709646071863348369908093745450820489468530684938384301022717097771535388464612059340984273185082264939778816841838462544699017760139423624830698159229100384633914908863067481743194618550229498482704131449236412057776477347006725630067979328104607884111342792700442233964451770174993557551868495733141390977394573556211438595313147014181279556301380879134950999732824355081694212542024206964429562429248079809984288955832280194250734542437369131589662864797239536086315099739788556519925225005082024976226679808141023496100531461469383127635176086320666338220366445061912344307702317893720629421926427745151443108416748015920438930615176699365172667287997805175122355871206682534503517619888145104853637752359990065234948483834054115098935570773169087841414026379704846213575063261238393828291015346224036308253474827144587187006215131416472809962595204010861672534382460745844816843626257327572044459898849366273124596504387283900842686334559385013853625527433755767611972352371935378376544126637345426962768587086119407899966510768494917149774526819562340300271709810301395042410896735382931175155160708457854464570907510339851508931980222122718179945726884691576634723824824430920563472901412673154031020537856327140032594745650813908338802614101165158718126953958188603904089856450431428863255246567059932797503447372025304756449916093561616687325607843944668060846227846907347839790896439779716834817126338098019297000579016917519019743103197382349344988827871849298428486505686264041561626931432006556035887148547029026037945135790836756922830892818669271857120117313061356952713066014349990443922717636707021879563670041023354257614854939679661328133776636782721700544929547663439599093095340259704196234944686598967540203783568051902901423393796531934622731921251039513022941124790847132570616564805488474605029807973886118544257007611165294618588007576261161484836545568906300738661551114771764176591840835564455567249808520757752711257390511487903264572699565113551195528504247955410113897361768798986688735022921909160340917078420054931138542879048862557742512382838687526719348543986411336539637742513966838835886200919279607466423257064390007424750828345827271841341074488435111104288256157437030957849548819732747341240399208037768109824509413687036742733273892442206339572264652590741008291993206872341765059897430693177603923182027115350896859889271902613001073873182169660780301850371078188436697823624442792549193273282771127437941109686247940123245970049384473591504039122555922941524065920759587157214764656756580956468859108018415984167619529406734883279651387344638237889393243584966466179607505889900935215362798297439829707586105806517687811819960319883758171149362559312941550453580870933109806634231435304053290940433223886451675277527980288766504411494418264453215862131523033994881846058266626170336836952836134479523170526234783740236356287395246692451423777893288233991366779773362832525153499723401921890238292486963663879493737305897811278569006474931453588506853717842642827437659802368148415538341720103213543279148077488595684216716822444862010673061106005629044992503248894303920000360619734486178429943073369710893889255647626189659528692941798447449097030422757587327138800544546795529940096562137949692628278271612608728861005998797009142890278403057882318562464887304608554779275978014902109688974810363044602438664556925860802429953077166378486940282290092811990126940638141888102377100778747454917645053483426912329731318860196910062850002862968235281945234156176359305483460788569792383529010973034244637129026584800793798635164455098165604930040274242779326509600859018872701239456780556014605430289526892430697309769530147321290627881601213675022399235722391997985248773576449125619900888312617864185741986757302279063275274729226470767747474516702878927621887169657051595665918443816755090855412418863869536421128954353193418292526526058545874903414265226914349637933467715429865782591030407349205349654779680401117959340886675823639915314571597350828810001651784687548759514212410679545942518573967184244424809841179661849767207669225341602215881120278332878858723081291807689641996189900026555296436254701522178654027752592422599249068265671131639117475358549337719152963120994309934572532446135203918589208226619553617598697656296040850486204277596270807090369883110690378469194077106172833385728855595487864585852324028929849503444004460092234758576868401631738574449276301286995405793014813526549045857442635318339263870729305303482337935675447920123427779407204369974025542902661915003395751994019695927569071904156662872611301114686361830107305050490599292449845290647625382246029700092481251177841343692133692587825699880610289365002025906171602604926647596832189305688010946408529214497504135184057885922113675911371634675056842753146419290385945489002729601798124484775133764251554395628585457760657756959127155102387546794119655408902595532081037201104935940009728625745230112218774534873073427775933427037339524173703352746187732908535187513101321945355385768383588479020178165401433344892372951548085636481183195290108284787436462074209360355918228075415359991910143938749961475357926043065735609393454103261918257659270856892944591691470850246880278773258014792174165948745269752261006393742290379475709833272297787887461448851501471828710027986383300043504594828413669531249735483191406859119924880694973113796455637680476449779817542650537805827929239774364051299648637211620544076365859133721040569526836447378153262176063076940016712282839657435903959109896899643728679814142999340769674218760695918489447589819857679623881551071384141460951677927516253084648756292365363084291098845150630091757590870206050280138099154533369362785389563814332374969338086996098796675229409757292343983918563448697308888480064387459225429887713925244355246360236182721596509534022791576129935939676118263379013889702050607205414499843500458730001579205673488260405902993511475797452702747260295822365606490038088966940660575025345719127994221634844179309479234261347645128828930629797320914620922702564255984231429661658175869238951513133066278561316907054594705098936680982958788128703546557395502428352444122784715980459771044684495942498814210369688298465179721831716798304996348804625705201777865432743447711592845778176145200748029219525096446902362402084561930723539260993479328121615905522324300918241069191185474739286050871067190666200395020046463042731430622022320323350506571816549074659156181901868820271411309010942672009031692342347957782959395669090153256929413379029490096552811591209469211046154747699693505067060979673027665598027036787750352120941074753219965566145562564372259784226462728348201982069218760467438016754679295200422871106079018757550427604383230099175665490353673421754941673394421371460165977378609337261125984647926600949255549821680854356972629113330482706743571956614303639587666197166520259922903749484007081443496189274646136149195923511369403465455558364025977038958079001556784237460577685445691401723905416861375731963880346059582416614559052581669408335326237152510351440489197255984529245827897924459101595240739477915561832119296710268469737610900581072849666184628121706348367378311372847213010022152318291258413557546736003526090214608107488788834241986316244829802542097402990123707462372044818379150662378061330874301521351251517577287446030492393505644461554187467257858020711717195312398911622464427365322037473229760959944067345496598114205304295552808350260812882722799548022963939846271249172899558474791505611820546839046871170589959349290660367911190398535151323056416532842315015460401546605418468324936135657937433549738324622321276638410117110074094785960388808085568550505934364527577650287893459456501170578365516742660642976719471397314383740120402879253635705415759927196239741089254712281515237861727865880017160466360412622611794117570922974546541256609020986711948966591495980322594983582407506783342124996350701739570531151502925121691928683537370173146092903827909228689167047543202706702684057723243822518490944241841815264891374446414456208997908786334437577426610960860294181767054397808182315390246369694020801702799538097421728059905331521187721089641035483168314151476626421367536327919108347278732054218202707150932174836755663455874465938525997099067454206320086637381046359962591105860668177565494356670678466482600585803307724733682846070396395731194128300170860363895393241819974395633678382130134219986931979205377510096485807156805601508973906277349798468751790948668726296214236184061410285451903576109178952386213566781815371921498699566755530589813729329928347282495049078938331035838983176047134343167392835612723058575289645350973399377061405563092774177885823853986807647472009057855218074242370779397973910956911764481852582740262744639584360102190646220862278039220625984785295588189324784544305201207962230398128075116277843947079843423970943290419529349152499611499068621089543079806440231552976958003741033847114173279951963838950289564780737306599142014687146884577633507831627972233356704712120264229304121390024913011732655129831107282327869421495910484359841009686638509047831559098214781537507967936310523257465390294466159674335774716645950074124519767098032469299676365463268654798838378128122477549548987343436168196648064651742792948581837285954229121660155454045775331517661962976803633510969044836129590644828251852861433966248219680767094237806833902780921336257243102133087943636170579420335527673009899993561720131801962942907149785274646135365897620077987822994212515282245965685990412479028707104572791168625739835276396980678737522560917634379729517481373801579465170610133743321206700723872738214992967709666219465059872513630509701793387973694999656359509378906719698938079382910967787882015552304033971382461127134340101642293488677565222431113211499651591739863460242156341600054108811811113112367712371426510104078385180446634103058886178426628166863314214260190910281328198397654357464670510365898055060441395464320018499022045693207320879679128272045856073963161843297286037285349076856932320212254966031828036957467917379185820099763905784495934150286000784238018476089975649732476720353924068300562357264088081740235089311127284706469318928168430768420430120702623723319505385443345453981027217930204217811254743323705680082127707050596558702123018091379611947716918396795482532745558244194529055903839317994140459530173573091175321969866507003403412963048533337572371652827096298801168825494062572733483969613584124779127093605149510936372854192576657866748288741516326388430642367254477940861601203230497693820513273954731382591491833170510849968638406513667001418769769482150609862843818538745824178681173616212240370456319328995281707887675928029536382611895547568053466904861280229330372057117138721810175184009299256600945429573490408562677293940117536283976280076014494388432204535451630227321213452147862566591485752570067630376225964563904301363809352582172600917177222633337639420815627163281847864451402180087478485937218824357522900560878599795651649089141320111762632074796734375212954559869408644090062641043248799844646459124732718342233553414432389059497539529410815071819071576665858905943295814368598126725698372909750649077708544296535985408278857858263196304215953350945356840614606069718311690248030767613830552986841041960252576550095402832450248490068420733782674969885327044702966844139775597099393754789324446597987957703259241305738080308372209542419790953061744822844218316105873852287972551394811684185243609676555244521523432565759820739562716701193997816261054477360894146840469901569522417717923198604005761233490156100734859144537009808731949978628842147410678405102013609267758771430390432968817023178792366994890760994002140683474401347623299372643495578290179666817695468169536325658837177415250360520420620766192585500073034718234205965946460451411183625507971331430452119640762437408371769006369946921950998565192432441597428121209613637431018742447505588063421985069068898655001456146532631499354599361103361642413748526285259155685566357662130296408963617958112078056810053030364353076792669290753135201384806783738844863050427877341801976460317115967820287674632357142534607760187261796629552515348385770249840872900150485033522486872116591821867832036385377595759426092098419789554494322049832538342061489562243227123413956589488255938005564212616797945787997946149219175569415794342217575417041368298299440456242165790615127601527668131481172537027897455753525973557171897009283392075997788006259858425829901591049976883721696797165366832396469784697746165175819122624807725263454616472339062373745285274651429894939893201558419002921761203322413884233249457136128954087483210107907755533195281382413473603925919492870864179394647167836220548967240440592530692625204722866618638521676518574136757992671997704047880461343837661188446421306511283929498088741207805181887474882075003271484896170464257702628616924314335210546213394999232515939375941057461785381172049830783297884380881149216051231650959959614047592986278466103355597648417536658063515495643611039348292599277550349897849671568335014243635861109416339918998454473528428829370281200660177067545562601016520365201098752045366397596932656313189082463381367058212739722181526036375843629350126370502872487006850571707915572207163003504812315261621759022298158321578776177933821467458700631942400552709339640061654254910033014451721755959702215412166345307888408634314741660692703547202580626925293201945735513570544034187006089630094732527272832231230598381054841388239118171044137949466987549182401285718353858014409589082046894356622205070620287075747247765539258065931705661187035394742367332818122849166195447017143676153871342186537404269372833089173845485091611424407427513140787993118300986180328092117016938568737980511847437241009590105811499910936843813101843832923851829638540630228526381171402999185423988704382271357166277979729787151774922925417436840939459658836001974832829082481945697703031493269724422549557259064081743521146785211775634174765618708218017188596109876818475180503075060761502736665432710094297925934296151409800410326207901219986297821065494837291044987994790936740702211378321218451223811359794916218542264906565755559166671855135840887859608229159944916730068900306675774129566104940043429817905919781884653603198880746637918050996861448735295742010523582201543572553452240770166988274733069785566222640345606734200706241495357665098661704010660802266732768226613651945828728085323998701502020961165875152291100715321522404474971917805912024586190743105675941839925590639397350043045197857055708912309064775766488502256336883992503224921711478581037495875946616948832312080692646796009401611392508763462639806926552610843953347607611545334527724324047923198824728962113132040835352477278574719862874288482028732738086785909238708038643576376202791115042597653892770058559059596325640241124817810218081032976081370741274971056283421009587916547492580145826938347622191639471104185876088117469786229461476279834629266073516778184283210093017571647942471732564175170820484166732090089601084385660280493075563278794757770172909975880014255339964168287139307587712527022869755630512904455771629120480448846714937758378738531851993429968600863150331308766995837023992639093740466321689748775958645490058973739633659833576769480417330646312029154485751809192332261888227294300033689325554465701481015149649119499169320139839402162356544470592851072103421570539159306596802291779400127924687385795082970808435219784312905402509847238339443612461358834417833800297097275593383185854993407448226606231436542159313876104511650974483090636805020235436384369058730532495347720319577007573716011714709119818037934672659762747831181717479917122495887650838532858717991279796540951241758595348968409520858108554144299860211847560738878725830354547611706722563886446994577078978666713378726563196270669864882972884694548488163598761425155850336008530658176218483957730563408581810908927343285134105418633137622007122816749967713043762659799098610416586855149990854848728183498476414622917476958618011572612783803605075149557559419932846843095482165073461664222129196916903673775975440825666784813667329623586365124453043319483031986449712056907996361304752964945616063478028300402050076041378573594837815959109488725892882888725525081959153344187074798687683825900980673930554729223252757555289518980941791256319907369438189905213740998691952576842830131053887975540974647319254026630165002887722295892182158696133190713255948818795662407552634506893465845770239168307448204995912763129755313143882278710750289267362416873365601314777058356660391302370839316385624603636958307191434100218517208615157565422042944654113730664316015990987357227126287745940003027111970226633818867748416840007134940409049958733505468961840850350325913761680605624337554874025780030940584343891498179166896354004998750943325048783920353974777808495928975363732686244183922294606552693572208484699920650020429657113277921199657038904746682561513571440790085286444773010477300574671379810938537304917089046886281349975575806153071379769993418557274564001332937906220659346530300953670120280000854884357975262761754111599185808462716465763906748723005945266973430827111130862218922742428600641362085556889331370174163328291971463340392689485314740383382247478888509007005577026207265512614775709608060328133464146582266379910416199918665792638005682111585733222106228205974606973110026486088121550576851341414578855421097165450053456146890422461236310849723624550860584140240746864535753964293133521291066382243491461367804205578144182248891907148361503503944856834032643924796102406543393949747260500591791390001825768438073363057974224041050661802510889551158143502347718940704695635310600001211507369966515785815967145305119203848413437201869779128978777973102768425556820043408654495156991555345140732580360114499951300664247979471613864021833280877851234997250451030708111368209803847860856505715825893270880440405021589619095599417394304896033771918711305099397611928796985358239495029346035443369095039022993780953965025354687031029870213510028590116616811264561720390595703010004348490163311252202310966419919071274464773245811395940237379002462096252868579042209867526249673300508755970616631399491951136607042212948725349703864627768627830217088015205900256971864883125713856990341542374822966163287018927778781380387550143294387663410990581830037767440635501040687074102637449101176225418556466438558012136970416361975118778576836126254972535682452632352838635477166411178251326580912768531868593187051743515079759966649156596395507204035438547422869542396903875257875826759221079417679459752640165163625685393863907441316254332344852319736770899952388997707577524711723580413047039167142844598165356165192001246820797667680733137807517307415386919403826716406771437620351393159024801282871757508091277588953614156792857805354595552458338384948010359254717748391574058556247865056050536708033875263198727013058342816748493702852217729843107882341274384330786885990041337206598037404039488946188543054050663487124352184260690848422377019123346181484934706475764878580597162050777311324738662508244927282571488596291099838289082890108172859712762852959056829449843058111994637051262355433274688512263378373510699402547171030641599137137364934821181955866616426725362915544665380382817199383962502699879861918126707502936228709038380870877181524331150086174822691957404553474071791389349359448014355667056172159747911095360507362089288967832156676890405527059134289577584426491640874935063344453133198861332319163836737590905587734807174524176902476588583518924144161448317052502203748531464984041218740972672671824238063865039944817006593966344047055902175876832780229843435692910730312442281440048169237005003612963496320463062698266619547084651978828097568712510358467463107964142129582242919169005725077793743035520671361966146284468838354592925021377592353574124662700417808483191650413324221336966651970630743066948374970234586501861456664511211923837935271077947828361765693920495538544652680810232002359781907313351513647004350034959266349455423425663023101794503643979340484357080668382080511421438141983917977897374184517099711889804309216548569066339754856975266817286379129016473886812657968990219764250828272293921235247976778588371281288004051088722877144157485621923927479702595184343397523264364688070964452016646818287432746277652129331086768352276257413310144155815377636415434727773594520548138701489766202478386433523814245446892746577806344331106694861953835002481541667545050275696789425306389989756905190452478924354018227162838305972395775973512910252049542993024910479732956584235633904577947509231312028346455969097380688956122661511969334443721406861441836902433836862967898633153892034405138729955329675721508030085288371215341678301631246747024477979516687255309225848963150004274334606909058578992356413058338470856913026415357790642893611509795609621684379990812925936487704103724434945987920361434904240575952731862194347031122306768028520151942362926790409319581282627744953777886033029992355219793464807530482684554746705069604601390142111038699205652233084932521295850468122268816508268395100436872353431984735839171037105558253029497968779195152539834200831736401813534359709716973602891693186024805798141951981258796234655247283038940296033338848801883154375430531470302259640804177654046909362538716085054324727538272391192276891961607093594233604721435225143063760567350620505338058752490258922017085412062630869895882360189988352803970346188755473702717077872284615470707011570913167340370857092374668635420615355647644511519850860835449012503983403766224977620114352414294533785156602794669893188328940761338144291746736246393086229868166505311441952683692428704229106444129947925322301689601485400349055322789527175125088353867040381923144832243449715094442517650614130637278526042264766811362216723431156676688574281150565200322709595367575998408160421140233014508566806666172792147690465435536551951661373721336827438936013490233807155932412271059166940062321277405791284186334120324671607904452632847935046924879956909455581780824531070340811656684863005555151780815394348777455955668204252225317174444177193502296110074689127489625591793845874992581109302147529687513987994927591188205772335118984816450735553561731103771127139119222099640363608944050118808259421953446573759059390961054830708224778624336583755164303108764248962402174641762299474661491097910016131264303256447635188255873284146864260258790027310557921884721865342443069235461447159646565917096966512456568077698073436309789938035527705169704950121498558102285288541757329019124100431689642201912828608183452757473840320236977493773808334640062939757507926660513001927568429560948279058526872527477883273366773257854512852883493921990574056093476803707995606277839960256141422355100341618461066311537840514858983321806606874525726121754721323240587528868599045817516521115628722343653434597695850851970662318489990339167149968384516166682712002465066998338678273422139014010571616989034345936635676141238833686504298045854612560257714135356036571970689725393372629014756469114564988143386276946109625484555487774191063423656106537028484538712202729966933817077927304563170792616882350144294202609332076589406906362077531567454591227687803924742388369539527189742361723658041620513538157295669795026244045794299854670252416713317880240052365286359761041831573024664566592465292034931435197422317555391339939624732491242580078162901246992612050456321125045197711649738216769768778485887304409468023741427769343847839381012087456119237388518217601147974455261563158663130450788561090117132092796279497885763138554419916292958543080680469313404580288263902710899202277875535901254240568002175114965671513000249152903763534536672857984938397927765175315528426259959620106303872081843406270312931579230860056311076909616783611117877812129698347673108412175838328461886888632540233712116992367899614005391114778643825453151444332453692254210106854551739230355241794511382020694497286442540847795122518959581358056567004902231282865234075717146622821605635854324320764797090788545226576005705917658777970839227576232750999039380950146197070536075901924836062955579096703047543259765566663831225544401521109080241354058929654522839556686350160591721020978693999605319752866049831911423267924424767380999356640940152025826345254187051667403766882919987353603750878864688898803000231772745090990813400704072433460339947404326038624563193038880163710479404950671996994508814642994203049708043671374770932526161100350428980781548651928921115356574005268410944202853129455423000472585470127048534324778446155502316490644040592383893592750168005690454263665085369832352786333733037141606770142771232258141750784818441244370816155686860801771243697125756007353896363967696355199104997033423523079388204637800521087979777667045845070206546946636007989917052167903631064253750384943658880559081427637386554338636490166614954526949430414656356743168739134517038310149664090506687927274584162137297295472864448025850261841443454184465806727454262165638846149033599564138252571461747562939583552437258565753981178116143864154253566959509333775783581343708729526082146757292400887926377308766691946945286762597882784492138853019276030585366107898321075138024374107440890612488169241938032413812157252098723171447904673040342867064683818453320298872187545255046880259685507188866616392681836515602036374510912235840496772984645731860475653073003753286668200335904162274794078288927616267115570333291159784784010090560654876705144173355861050584246806139325926962614571728097423211621869805222366136546441248257086869014152886754165636837595055552965362688557593473215210679424359476668208200936406969614808058669645911504118181298663464931888295912250599493499410324425085340187562192289226422087369341827230724741567604872297907884827682812151570973637955521047065020884282623679259028114872421177798931461914148121398092499774482946908357218636249219652689734274732112454893154611342705121417754651944082516572241448606709480364121721636658490688351011113534734475965336359685842099141150583320761978814226694532506891140457435254179907471120152993310764226198217373181691005978276260857081893423077977498684241744191904690593138034991753196983940308384784069452153722745955798509357158803905295707785701248824527778234819577648412799148818379481306539209409196135070843663217799245625172209642232098503527296063697607246034990936778870864052538565875094627765159599154139816952502711707890447624418986980006088225270319755009512962617038904664017138657353714670630991776025771200919085240032188673232498851870863756386997455182635583025534333034372644151823723180750913514385953119212177372887135949672936810194430505410486617601973422301192908196410119608964715063334631571506316462897059526119199723554586166357932478587889579234822010660413628957762573522977897850952637259525380567640858870788987531925800835369310882096530219248682749278324924646428821467070448217614260669649086837438737851902683406889061268726117900141386479695514064464023320371367901380611203857800845550032258960852263349779299780589580584205399093146487152647934300382835537079424811245988296062881939691761402313472626363532204613117919265032912249330938840607008119886791069754460047067397796084920796596654582198322966678013894682799393107861076875182102910641529471047459496989794771243583861205043328899771133427302820407040838808439735155752400624613845521250654326200378772548745385822924379189991207409564181693046213495538732560476394213699101506241911116317523713237339288553030154480984060469319385768411089898011804082762989271368981844869037933542046110559564952668227753000885464625437356427933011469810847071440160189096647646111064010217255532006534667383418287033484918967519894392225583900148771190239316903419371467124141103557019710289118185015424451734474191106836798474883456204345860761115906764253772979117407746961483147494274005477341032197271291379839070812861935688051563819923375553392552648573907009533202610530314436300008644585189791667641908958651000382950973495748203157711193201491975421999976958607848381864731203553955150862647893826901258760434245681182629880479708782405980843820756857365885086830375496939626020843951051745108908377340388479348883141528029116721728260379943973732431755156952941543879364562685606299172947194088861164837960030180020945508576624743294325899891561300607386555682417567620003408019497215065430325382044366205446454075724382544608215791686199253768581780205773313058248915727131604150794066581727341676318800537843982423740558601665346508354578614957693215501622890650133079154641084845890734651399551718445497431941817985899039046183557368581678958564207057641218134589192633266805142613954058443047045174986688341931275027933843711604653148029085091073588808124136284577806182706224018554010462392440717818872427213385090438091673836968584574609998880952960203751067487616938465898093885799021126952205841818884254990306245108246595987866598992591737184718322744148951278133404169016888958803532342156727029583517524860300156917484312243085019691293688407587358543549009300581158221157865971386871875225903324234827274714679364160797152680794182042116923479886330776090337538793626066514603200931058579122160046784715844050862748576336461450668465240739653653624890494996937797406400203634701112794230221418841942731343828127338403063073641975041359530810245093138936479963808770951281539678292526355108336611984611204190689903511678142197708923137519783971099677428413287461054495705481543556233156016890385338907035174859103812740874900347179969056701594083171462760784461636113897764067914379094031563621318493858458652957673527048942170809375086766542300602508827588913292774175358184852167667595651217952174211183580964926663333839924852875918816954219949895211280490929802948034393940362268642708457311505405820431918310819079600037127074863604765586315383922290176592359483662727922104838923764880040358910283133137739870438692231489143768582350664872394048840721188437923483512498705217523046071345127973541251776950031476110120966031559404706969341797485930003625898558785537982174211447203992426260977004000513546907923174627355965372048827170608158521877026249431277224561451661213669330660879924064081744166175936946570658511609622512798528997243787706323944588506755363580712333342277104219696112808059158619511237334193259689330522253537838009823950967132092273165754440780574794987779774202866918864949091139097847380300181875540571848359772687564464963374281037947431801717840919590596399708433945143598198268724191306642645000245246392571568783572634019934041417489823593911396894939721823011410530338550179531027067429936083680092672832241330377521048138142126084692920553420259523404138653981370527807977808789501193858828762863400194365131601081739383875889810814556420084573658196195223658789874802484794832007356591475236295043829247766731663930413011898701512431087281224180260280209462523168535898407934927329969680808107796533203131131872517597077709189889315542125815456249765329512543523566401571823497897752423828536730982887213429775997109029039604546385518067083496910574893599379547753649476822267958939377291456339313186979256677524462815455260179234515938944429329645835585034705238066210090444591155212448239636294349914703147599752946427681919065264273820730838414250147373345782433196748903475249731423937412780876610854599863042549850058946401001221246175632413516043344947148699557285277292223881908188414377377037821694000183496910039279962449332569770698874582596908580431122112021730419488542549200891133868334421995540345827167078399252220112339442606428129722489021863438022748153526529383819718357967361659220488385493601284805786909483273923027231057020046861866174376592396007983798678586090575143628959024484081250001804595833297769037883312759898455315791887455621524014246325596377868159173759481223092033158925488521056445550545582497734544318217059034982430608494861067725215975378166015290091077738776767290348262598102660736236294156782925653257301417126680104983770777133169064416351922846639057786727457364604196908887292368517753156011417974559538151910814782052911584017665911977263589431950862157808049002516997851423614331673227535792637660009006253247750743867603300148395523119702551658183831071679815486630053185845515170480509159561521659909497532507611957906725763234470676352346536878344443060009792154799334803530809600983323283988573179313503080462940199575918666414861212897594194723400536962271055457554856814484695113134798947152878012493671939580879944606006960640255652803583112739371494289505491335535866769942907889328114904904388478412788261663463022747468441999017052307628128480470997528579863646152847647584819612900702663279168448607346251503587870066942841298253919164875504228344317413784576638393962841752053113578533486009686184300284824965553868029648392680222208855206574036720912369474571367485444356905594532543592266048475497946948350178146197256565955114463579845766280717611695514144603150152550448453260377579039430719684357034795841555645827760686173754078105280204091623000982996214404922731318043539415924238567224118439228531116512785238564178128487050120755606120758481822765063677611480305384362645037078905928399227498356263072606554397506799752500878690160088491959658047614557196149462418495324207158254262251266006020611075238656556291100097527682586886895493573389980889466566626816118163928568170408458452948279800109448732392228860469410822327549311214451060965879307203650431701676364895887242658475545342815758219983850787423143528880167424437221453126084397419726268577851480823089568547668200565862168244916321209768009184516213820934864806584475105085947504450263906496084847649013838883856377997333259576269161716828703197212627465303453820499037612887837110496986351283376562539435562717218301548061530649588010060210400880558413293732283863845582427593343434048959556455928335396684570504591380662696210945691627849150959281375699425014833924566982182438391170163905759851463020821767612747050640361363059195323654356640370795336711709355557570178759387415034006618894664672987719055040515490277424795215514389777988258178745702565104681560321081170831979691777069855840410054324785487937416209319853904984441930473413452511282581529836931441342339102210382615974283321528295507822619615346855740535686933579291031722595176078915279096913979179439422104278581367640540529500957312924970362203759355689762636102893075163885028486074116538865093771527893116605363254509424443255455266189366899658375123552743115565583469531130350603205663919739586764457417322894659833757643448834948077278479246806205465719558186632072619880124803664164511716070830583090860417292448213355137173300896050844495982888563063011390156935860590003573045518986802481675772567513548241328388321302096766938359296518302165352413439065186475776476776861240867808558026099184438735534159705154837671686807786065219092406082030721868174311993518090638188903464048555385469656520994070095345302999681866405294244444352899593173747313649684020318928438308170679152823253249720996468411340907053385608681562004933008432921472714719449789849657770384317517332834688863192350276784009930953230528713420077192543476750072003267959648579793886017478352797212599850139504633480882895733586791010271091994173494100271557365854140244741901946826505441247416526398734381165721461164767763070194836553526706701175515970369093984988411623597862964845557166506535067840003682849688565671623292053065870715925799879924911334268244597485807149802156197993367495972835752953269445801078028020040857629239700722254183156320837937127431497929589973906035225162386849682890732096416085820400669133640943807152410645435821151052247893396665011995012388854028546581487805045030467196560373544214768891699106055778704675553571543847648506278870594407161592424323330283519333308079405512448583747313437036556176880507920368874574744874986762581849130675867194727240463421087506433581967842478124810262517985159907463814564815230039922641114647264814423380038310976803794900406621805295428805549022254385714974335096408921639428361690210596877976077309828910200498021477814613299547608979118310432875140523578820885363363547969989884985747457159896513600318459421666745151759554384644203738059129295757922643188132090847511805817632751879439514225801855317419003026575513276072694925438570051518166530914616919719456975286262788415473591491855728175309989369555936556423972423756512398070003027222602132773855830784542259094001924297835831964989369811570856118406440871602108083511390087830393104896447864387156901534295360630504657953292974679411368092412644356742288262934784549802547187003238750551062416761768738300675454304339465649061284265135835179672249277554180000481582899898525993694959143795008850257115056670086315875029928817494336977164460964036880054136388638663499260549414376367822007122747117440820026055424859903045314536301834079161881553296316088316270251393309797813540835756034731823645472569216256315632798058102449385261106536269059786438711106667996336112164718486311647425482839297467508774779860745781349649599723133894658875049324934110193054276178692506265974208908846151759854674181339039663213128501661141482646505447763462654686054010113924572457080123166371858839394408455295818329991286474361884451649706766728490166431235436202148028778156907645080595979221955509317124299014873672253857120156755042645384558896628458009181465919394214582736207685830037986567775744176460917713494089454620215197831034599402836864590571094621076886269157911091880552084883162414413366069065290388458753740468637238643384903228280899366609872201249606521669874094634043096527774299327530315154101563857729331166938438491794183484625142624506385284272408089038191612948388468544724036656823164574238860659492938991504580614750710573844138961843975965205786303410851413395958321521515392757855970497781880880963739304207748081190226451861934046569004489217069994455392894539438491131550038947767735727472590768400830597728257596948455525043207717912580278734003062279109997161825972552452217909688026051857783320273672704219528326298292536624518619096800036029126694641180396572239474094436817579500261230801677588597257394981943019640910602748567306781473654115628849769988293518074766397520897302609038242939694546616319510270333577308996836212450098331691280531761715814483675553042447563617759605664181478717628770774118149884512717160506942927603313817325797881673366032471162800573923892769418043912277103126499336621703402862993901630031107697431885992477981668454568618878695410961372342027230164509609490980765384939462137853714806810696256453671289325017872886789564483472652268754711712699087577577305888844526699912030528902321951670613972605733113680918995193237664683829462699340918346870691186280270957369563868048031570227250801989062446558146781811212109053718186696204652499524417106782333160472323496432421600028535970974978646589628518037419762648316849842606622663063340363244462427962685099040049251607674154373234290840034956471595476541499980756496880247951904334568816312615558331789523995783524814323507249224516351995635929974687952133955313521152789442906432095729215378351122649387424214314809069283798757831106416010085774735345771353905897879570780750399365735454929449742016636666865639015539904502124781108755699513336791744868203095852223820780657578838124519109497025073505861503890271911359102176780608969430398974150763746333435699300307152938092115803082940550252112767262410093194977453402566585815572398616356118552008792053201176315491324792800228183029717875099820369097031566381373284164082302613329230865690807046440378222935751507756128460013055158266372062862895268941139169105981518850275327444600029716347000317261281572149808838819288480147494018797311981164057702944881173043025871670780770521416045469530352755357037894592887497597474264846154783657935163461026249422593763591797603711217271770813982815767507579548575555524093133265717473696722677964267930418022319633121288895466367345513961011844223861177955281865753859901572593605645939347520646739332446569046812669990460117856050521493416695721466669463712260610333943523570672108876527076167427438881459330360785190468616482107138597372346244692760180938741210906386778170336792883812273822267890035719066940481962236600255256433690222844972777892217551474076523987539332339509315456119616898071415236410202364061919537580265772405935468565249062802420767412154185274838354203244903796245391681892567761498223634318789761989680969973605322349753174507302343251487673087097361201997785794404184892162405502020406671306591599849655258166696749440958183386388678355739637366627244177655331226762315257318119140018904214408157705302600493573643423263976555156671776648804543031699466911039574129020425850153380403587317542969845633741901425272425144003096167337294943362696657897130589749980621945956180906753810481403905510600042454237775646150889179248042324107235850664636094074762833389899360442907834247269309708683766082913703354388697469306021028909130275605652914609825599527284259472992099526665962717921207200116248326248459665039296413039525052029244462855607972613996661124280177914288528253005534576895039626804402501114576173783700395112546600733531139169205088664248361921717895083584544429322076806223122440111938515284888454550678346694907509950958558153575858318113166540903012005054441473615074780747512107896587656604271189912805033870903859151987135771696961940122783897208933669265955474771346966563370238732726124718403782468022531414744020443995042038693538866411396853225865953227191646399478003484164149707468268111537643840769422758300263296922087477982284793581111847709472620281670588585361225222855964698408712838155437548947147427523290515880339390733720770868836387247445667671707573664424471186548975102166028813415079844897438566517875593579742657457160574208057632549795878494017956229812985353347168986927635195840680378134504850524070831048738293237264963025259076267081417614518860141476077902123283231472842257613101346214618622173904447028979596239529685840112473822174612024512209803607909988884018103402747450383514568017305246341903263017282776388884799455319420349843984286101270955145637403762637754166329163889466164072745617210969744347407889359124157335003918994046710725098450064989472801312610844137007659316863791453403023856267589513437489048938322170535483425415196302153618595841729611526440568139104348894393867337016604586633549233644232611384827488375172364228659309580595934521784139412601022116271341683582533011694919079443278557896934737488154368974479379685599597772902407379010622930448297150763416011154771797668241355200891686408260195497184053528010950656395454610986131700270970089028038604190261475693171698742570490088250021992847104009033172712897711762677611708312754403855620672601999621603654227546769504184834680788130399925596244600809888468731271928777181235161169420774163118191381694112435405448114887785258956348293819049260912264632384535782965328370505744195055646553861708139740532184912951140415631728015355108563283227449326239116967278141714392219539437933962001817476904198173861854166945540602399819111716948606306287752791252092249551079297794982101024410811056895670926209726054262444262078725470139292219878418003636460111850317418959175541769612674544617339440735043576456377261152657728928621281188536148552614128346428055982351372263315845621739729593103523031345295910536115614750747924517915562646828432197838989537416836381371728928213064067323434889191737893160050765206934157772050076147376374439522150235589442384362917045019722877505436980505998738038547466053024995134975590858351237031857624503266855886459116567617248761817863271559738480804324074374665514664653951416843182538118216985189016202083767696167167306498538603165245814993751290643486451167593800503550713909149422225011700462133316900749886058157784641449111464428230089637335969027413048621565600997330613599587422346493519630781169794135523217556212045952002955335130398946012768471558376085118307452628080300604170224108695915660483687767073503704779205725149404994088361089453805202710031038799002216676047912603752694709080238974118727482241243549078829581568325679852440593054689280442887179520847123429162679681862660864369709813777633682808006736530888177811803499298910726374609598802563345982606416868465044697089372893165386326743675770009333352580917960562234231083990510789788345459008201202221843327094389244889049606749376723039522174179312272113496156276595724924075023275995053308307822142535001815997474944739681735587031972530555658996913030438813744394867109814281491713313984273021086356980775963976349645224774873407441783433927754652070805046583700854924277961651099150271603970013383761664834128275151415942251974463435828755312223833915179087231249876979311587415939423865784066955718214813179001526201480108260807923686079076603511968486528103720448807033882834598737704604736139825623457201041648064405208913577537955902777921059509414769441158004308031481887022411778822348098391453802948654438621880994485359726741514453869183551297792089833320153549471857880882418427000122603711937441410430307459667950279433553973218961005921511617479552452211630958402771665615332073338085022170852558785209356959743266401449988987166917971081947103089764141126276154920660899965082779226149079118190057504019881919510055127775056268973412296838922868554876777334800725581457265699984343326079368609744473523167924518396561476909719730146143585492790125853272894588871812752967366379391534981819575368190564938212061250363974101176671250696257860715578182269876742213604335078319839239933675054933346856367926399830195679940748609911025364446649459397219379468016694384475536374709527028441161760007948589029113090663791138028278831114418929163489204586885199469960906380867078528214509077035039645705047398055664440128478549173248141690797377557831413357475359541265979413558244010428118370809902041674104475793593136534237483602970947685356681764001491420492898836296590548512542057227366335758121495475599011605505994867561606551051204219705495993020383158767168473899849101807012392128821673943917659214470357644464173770964895164412955434414481910539170786103676554547536329896250916283593546974523478146900234329354126500671637543684000009489453892580825506197228021807708514991198540720630187450989889207974368552979128750468556475427170652566484460950225250115976027984036518165105142481007038993628796095736307601820106305431944416390350083265439934569753414450805585560029185442138832494179655297338139689244103392616915115516601835571659550791725758013361084753787938374559877248215283741264239829010214216706866122917121824098593108142226294422725329735991013750251354586671451906995874313152342654154663492390656654528285815940453437369236765111033320307953662450347184980652130041795606398193813244860215995903370033485479713490723892527952273188351057026336416948167441707339215038416250021399539547152787776599519042458893410090525775134476592901931350671788324121299563731759684070442196593079764725436313583838901992083845708565989769765979302521918686710761541845624128229692628732638005987915962538605634895853074023827562094282731519504661845429372121112082037462299797061613239444972999225575813808293421733229979814945211309181425785451794775014028154791411524918005586690350921830720210292222243345110275705421254791406391913867391943381535283435788109529941899317934257716127721561244617270895472491653425092388212910855438638009114803551861721098240475458995488098248732826205725675198534289078938268622728206364767635530213714652384219132146044144324394568492050797593344260607075957295101699172606214115278217969332006061231709557855769872597022709669265069829352966124235626442945013328317656344450352424186712052863566433490733139632125558881502952328573310062882738696830954718720810466928617067298901480114697856286939000047296440861347237454527746548981320465344292949118954368051309458300984439636326887372207472039403405395403475268837280891277403467630819048941322032623399696557631397326063910979615563021172677609597621910648368431894453343743117282548961702716251674313591065348640927596019979488452195766003510457940183763733722521764199949332520358744938392657084994404690267166237947190498423079301390006976407665655684483475287851252658453178133163177672791479638374884923486103219209302823270999325624872839318995443652347266065092062855083628349119916557899226134213049142680622508555765746932561055286125518204085485628055824217433354345390513228459745121467558065822986609488551948129092270480203987608018759625168378711809263129883644375269759007975273456342603923518064635962484009225794700840086538962265855338977246244021221889345847092560568673076475102912520539100033463071262684131999988986812362597998301061446918298859426425469972250340530623575731626362004348840691777364010819387933418090270131828209207994276661305444709312430663921981723382303277062678705118087116872322354416984171865773007436603780825894342764908204633339980814620082258709530791598382008125211682947501043629813172359846475569398500769059433085778162820211228723214887136784113485583483439063710347936694560847185885428498335763447601353253927536970585491867419846580426264685808918460649528665211182605105296572754219192225023249134401241806490457466882722803157828916629317535790144997576073917571550104268314710395134774851784772084171918385602578123094093161949726858420180333155826054012513755158226934550440144615177052276774620475015604646254369361415612968653732403674617225092403989988914966297871769388892232556772899882537890678686871866363792939035129218385854807966410731182238322802976166120387504253246672108577551122549797306627317986715891549383068168780640695078004345667647370311068617442475476504388287804646820538627831576610394168373134855091404663606474763733343653441367633632274138166100143862761234041157304260333992144015212785810657470212936532956435300507102403416773956782305542076606543773569665844587229176007606925685369176621600369649353379100030273540096916702142063916867188240993746085025215411116613184995304627496382570998184285950523317753153055202366757442914692570903931669513953096136980669136748762204062248087946288771222324332744507503140507391660514330039045436345940742524894045240754801891388399208201240976613877523326670796866610319604989573199125088115892317671226558385559340097810056337364149594703814010703791689173240236406016661677457730767000562692814828326839120758373949779846459049571766973193423271300236030127624434934204166507603963367737516357542955582399212957134314280582914143256653714101407386417543400294948599021607806023449337077823624002635787556614290708707523085107520965832137541949574313885325047645961083031511608794290359223515413900718107128176577444969704206028605874779251628892015920820697306413924741543850038384890599702137616462926704085832089405359291153098983656563285176977418537879910596187194200178003944735140410426710696129443360871773187028053295526135942341034058723183431110722017085713061903040575016190860351605209144056985808160861000245110451385520190075437018410784882957148964598887099621810847913113676729881116028762445712285861159498081953702785527248996478497992468874404852304961171266371062196360976385033785540490240766770906948387423722842285908480423602923981809818287521689086096972951213033491065133132517766387979454688159576437207425039710516021469800224718713101353837543798386810837537911075907012061538275771925142022934947015940757567385042413971297190709765390939003871703537484082327330638044853585204247501280792061688559256277963391381130926736530998110179289190679360309995929150918471874191477799929630550702855464894630437762213932974331549050640440138300437588738043034061396184099205109177532319105824704300840733121382870902934414185444507185241382478568898473402068478083348338020488142397420461448966391304637800580171685898485443701954403767648398426243357946321717232253138616841744158163268880664262090472112444694427058855993662164081840329354746829211461071611126746187163305310979161645837722142252521639765035676550752447415018675588829719046923558318053814287691567180025076239365590171729524272660344897236488192467628418040499175741701757237025206926316393906374119217899106384094325904115965662065571425831137992417846007499682680038144113524893010025959009370865532082599208860735095996147610753594053029510764648203798893728193213344331191564318610383907662158503064988702647109785041246043066130598333767216918845080189815346931245969627597532703316207290844234130821376798169323823894720026724659148535223645338438104981569669536025072886209239770431889904090288750866651580777720497201639458360957598018474825062814704908773196703464403660686392179294458888390284346313731090403658251204889749122520616632420428268533118069589828658818710603186543086801065747755445528111726141852287235533462203734121467158871355669302073741991251899840293028034219667798767451071235285148530497589676873604806909856577020118494045821246336298588613760565704858048362132997818002742564143095247732756180156428183710616697671525241202359303373064740897851181612838785739962147247731089525563669252715223719317411126864257967926838742239282368130111275877843543069637590721087667066706837564993597322403116296444759890935527809253323599775846629299653730820116718190794953023282797284735126636213685867898830386160759923651868400886811499960325927105853243435444729488126633786496693922795033608712747847379858617555322634333771445875594292846215662578874732369186287370875979379469820250909614800150827549232517352533611060082924408178569154300201946149145817204432193614671451912532493446139552960954509703764152458461811735777290502356179583356615893576787666570910397535224789834604700962150734204261940948988253772804384196022853606392741256952437899686766719607849338997526089157187892868088671344578754786459457688613848256194471755842718812721640080120529981825802859941058385459322248836042245246481989669081445797320363617080621547700786063983360744120507364678215593982318071571493625052153383933980596297096533748896781400131236661819372227188586269719119331022734831781198886356600933315230833053940737946331677030842998903289082975667493864775434665902066501281797565019737138516815101044244702725956926365502727211691268903511883922492427951735305489014935493575920735301342914501881304485642635784761375160172952802695728541696355925813068101519352142425574782247064994488392693899715612283939340455453891389959675074070730938286770168617104515663897095366608537870476393580580335573216305511306567557704201196763460288187738381409076002196025974914549114880101009489448004186686127879204993359321912244731499949536245531278476251145271912539822849008379382927367800568961843516302733944339142246858379119876408822476272242762454291638017167950731910805799042930852258947499538005947441457174950779070159296822897527789021873645954780958282636707503527300515952209769993928442277188345287806314244117283000338065434582726944031032431986667522460797580004316769697855784123010689315617760368422499040566799330796852362386249062995288442073891771546358347824750514453243540987092163304713769845218715256461080551377845388735480779468371869678134966679619481216154970613139150031065514898135940760595046835538112939286109943572602195180605824074944795086640756390983870773589739673802938592830107533727797622553200598573257017374222251496332799943682617520556700618105089313057245115647025658983955283135065598244906423109320966516440862312933907632458933126180482683176619040354555125307697553736171418331898311832000147074985370304623763951970593321413134332746347030762936874498325073811696474535355902019626406904624634190868351955905414866108957464023038093238239949829527454945518941684849904934183377540548022582628745289343382704283328637528618682094787773018363279451134714196680743276760620904621008001410372408486253397684087530970923505839934761812451455588284217632153914737841781125351676305672991227803800448524826604877234040998364155131220803995146660861493117945223330256715506631150755329148717471349117656879475952412206752643079432418784815532730241975136066496679139233327230400229431932272023557737622167647241920331604168735638477928767901303801060716327283790847359403264180719544353273906595550758687659613049116752481203802657608780226057483400812875829093566990645943905220541039698700498159853384625870627833819071355077622491275595874219124040816010834933159603038892728150650234131529086475544735639569158843931227169138025307629252498626860774367766307630427758247759884216117871636595842773298967656537749936326867680029941460407188279535881028096246821098838405582763663590461949539826618637239756972676035020685768236943318355025770026171536470955371730770729079720467239700608929372441636084931917249170487708559250750589722883467511691812168824886879028181197597921278271136569015549596588399903165823913448586692482899611229108582626860860832082034895596002013370353491618277440079147790414674587045067546831181888939530444135838341614206482780557347707208992509376371764422746080494118543413514281021913273581062086045296644454549733489664389821528526435948136908761204512026369885403181165677068028247756317766937595320265706817723992790829001602694233311141214119286209023196324898215591677014095805040267888772846803704063366016912849750128287044783057722319676132114011967405101527842799710208932983695289379977465891324681893631429716658098582018544233798571347130768719726114451562701511522564081754979267697553717279575380184647490308365114688424980735714101099052054353814325174562369652600556692768271835128296963707833046806355373528167050889110367909315554810553090982324757388822427972327978850744998854984460317060603981509124157382039045537390137852866485561437715695010219385135320132233521673169357657509473636356520436529409682944144910288042617165929278028678800525414521217618852896978451338481108893465560841542970240849382102700998376758747896626879042868722008418237935327978135957066185617471939330915930686020283831791391828671304374980309677433934883331669534929079138142184271337105365027301175645929089024121345912716494026706995283285082035914027052770572179843977650538023046036097185038276780167450691023722648642693129105776250613030849755904234783045155563483126256979684124695994786425485695343513521743643315597060087888707425428190730669249447805996583307784860777695150045028816031897235155851410869694955159131360341118190912954950196144865612448256689012691692782544632706578608970601822795300368189600011538646879214702613125586302870593898677179533854609260774870883963936140974994430082490013144671375728061143672925426184418998812181237591691162691294134844043871606072077590555164709958650391309573009515627316441855553857093292131216176735501261283840144067749745606846015081211252457495547439662441842202791080351819867542205515425251516627355912045139983615483633112088924963924329470904109569958751370532397434606138529621850015998135681726070254348679877675087066615803525054138662810580946821483142484079414920027429926745535539837226652607855104333440916099119734148463445993221024439743558920550798757848595754168685053503334060310014682578975046124324474550867169444640297774010527182046718038959518436893998769117834493270316845303744270678609349457811092974600010127844883305375863068325270480691719509595975841127163358684468279960622706958756910984056133555578064914301134481480692643104535928896774203116115363739772150825074897312088036445368211496627003808930957728368477355528296453067880006519136185348693909316712737758615075029167114289324521629599545654368038669785820924421673883015270787743803273027060481924165827746681702312528206388224797589227680405396042165416289075499009734037975689417327111847804142065122483620434984740846407866779251711395194447292337526990952099012997932482848096858976954513522827026969222330830336887260932145050320382659616040016235530237130914029071949246791451579530459701816785590483270713130292183835182655912628857420503597012179183763419444448692605442960598754904203471829477769565565759633792425670113730140817338108264370924973141245206537545270857366589001258339644522766964781837239742268355633858967229585998929465681622700301685943506796273182518148804243930119439686439834248994086286974992129862217829905401714694623889891324125115427924522164868095856361462245446851669986187926062445185660062177727986528520258658494270122724957897971521708195982521613544897515764547343974199583736272755429767428177454348296618071688984155794664850684868282065798237904344329050026197223114914044455242976454556517484567545927886051267264004218089181023925105851290531471599752301694949253035150280012670810976654835217523362670622115864830340958254996630939317735190484011614001638096215046996268272239868208811146052757882917022265226308471868270121296023383673226659677473944755227575840725763605318915602870745006899578636919283285766341834512106162113684564160792146532986740197857428112563356961947379861819085596595006483001182373278140118696570388366056624205499430224419195153803795510759377935433673569216571720504680213576939879362681335132694953488605637964140184143481543292106451301985464495181958026731238131842037298706469486338648527090830942981473158507373270692503764500827484395451095441056319583537797610237265543645596779422019029023383908467873924795196815522502522419735277788185973513944762282509861641164172699552648822909707825112109077092592016239972937687491463692867283157747345071823405094179844767594447477866001569827877089878855123763517205247587326899418548344414520006468291705334034822307788077054870394859425765021564634565005086216630434621792076992296135095359153714086524780226242276490747453068421471823709062643995676942798265050154630859593353143877321781434134595082334692565922590457657537065637746681883508179173864526516646389198642475629726899499963395207208073758868256884384342956568869503392633528149610730384200351334995216493999267878849093224379317162821568583722922871425088009270952376263087192527407841670743854534575900280382570329922929751041005619701793471422185196348536847421249813887122559330606616518279278702402650031535706877110061999549018964298485678853815976824452719210573992235182190585729232404285562907030659361280289929203006597423409550718251771339675143610895237767122164428914333220655129115662669534771292683157089819480781209591314840255404729964939420171940435086732914034939930673819865660041483245316593825142922055906442756804416136348913531572428582090312179816651587829307915975858347727603959715305000720196588358266316866523944383922726319356599032141005466834826894670042580376330069476933405314252608000364426885071181506394454884024807457628681022956035524642447477863915859106374155718046267127270379478136639446547547788965264327195147692711212000339183861758555006162119884856918542648729295968147923476860603709035660482054346757946518941786804497316200016084713210374473166567809819167616838259514322350901891881047548016402486904988365286355157056879448361604839238885402058619947405795289183157325611496175864960286498414998167472742292812795042531371858203093738291142299636793525439833291497831780185479596708029391372301728647913895424371803862683043136313929243425106216310237496133878883295464612421778552601622400887418628582974027398521459999405864223741725663523178543913519875542993345696759530776485597725478646534369556181131121464659988723164053743804676960608598968250668289848238126505092756582573400088457522780273584165107880256437712869549187384738841850012502561271647950018332287512901040040626195337663966192376179100154376216732257819033094328017405991190298664785028606343506919091356542651690593518785117239166875214035393250749466369958339652196155387987176512246283678163411126771063259979622585218666575073706166660399895311552519922563357701601051292896673016912268016242917323382058921738417801679169174552254579143995836401926207466138188600331161344839569818743071101655708042669080836281677951758858424710463402169983320141653396219940038347366716693063613329197214557905681833793331173535956990320367981085660870382380931877603012815245640895426133110480806966336544060643632662782083812849542954795526518798468523906318219376798307295623818304202425087021516999131527075683289712703420780408977250357183059822314537418981783863220944011738804802594364141508977327215947071650872213559605950338899173801434713037563744343049228131596803337590497320074926607971251289893813306401222433163536437828042746762253231293905505914237361017246686195410504386453931019851114960781784060718514665930284813388978056375422449906784178872227207998960449387445117466503290983477213531334447446750492868191352197446090077893267259103447899678143969583846888846593708392295003001340469337000077129442209597567738140103868513885800916384602085556220826217301452404509211919348104748561683203674557652926429024768409528781737892813294745058441987797866466472946546530086392082296220034955194803635241011227349492388014648454661834858274914440927539920863851112988359132063814081437440569765844796784577111397288099870537347195725972155614936759576259364654460423180238114721620666147759209530567604947777866131603862896578816002228098332862978612864262270146918827917697375604815093802838443861131090603686680707652790004342191367978900277585930960984317240859521427473216243085685694889697314566711393117790793564171006951860355913650865827877319186994014071885903060146125422931979291707767229605924915819204252367755500701438387881553469060374276112408961696612533241416491903466795424594515677898553665609986177541943298123135853333756507389993407036044477690810649150098871957021528239665414855699060622208102332484233693064952802130850745894196546018023263303500998465482054520609546949983742876243893760657946034893825324422150438250377220423128221986428462640505530100889273708406155804984950168028961710820263365283140102468190257722918585827529631247850295903332900447775000115878251761431529377856965176687803782361020771023769772719783041555884685625848350859910029697199936207912739409159816027408096745318567659467298870554440155385591837544887481720674982270701211347499203564599480861624486960544673369266899374956484754915900528932294911288927868046894614299019296445898631967230394488857753136022772140797160635066614772222629931109432342083902903040733500890895423761730184569331101940291197626396279729341495550569170317812265460729115517309731070136388036356768220560767900658689032358073690987497677081354109479872411757606883618690800760470987231273397293985320145157532892766964730908737518287794256617696093207245787391502064444655176744874289206712462953277112641250226112125657184521167291133022699782853450557607273487776071172131801213718064344962204604359264080466658126963245692717514540177255744228128993992518704737509004524057653252956553234295153177342840073641219771234999585284536625719313216904837677157968660959331232505343970282453984244826646287865658217111683735406615925264779906302699630875358762970371166829792596191428385125903828305744202844301997961098393754391567555045478561518513012500636507407184042443052033008745957948590883108404675917343652175953595152319796741727611322929712264750399084283723372259236659301997340875085539798165248892920617793969808647132637456550762301347475512680137539146810653157710372557812076281166818366268835280860199537189413974868384838407079146263943225343728078514644733928760742352089253644488672275445717988178407387272252871124385479192775541851532505320795285198909978527356772145291344931952536511178982754732287893240618256799023879507388920807218979158201228823760989068953422000498174741247334074914793832103901639068530136083310599456255184253459439954026245336896928163241770060334803759444482433931188458269068227785380031624707769635102457800536555529339367329318145031759995695021598019697193503068183226815474036076511953278770225270691947856612214360947716276624996057086834687482538283518529903059218854882119167716822852828618161724707168646351215923778069235617453000744608823587479282519736833178515296551127567323648072999636694923745954501036148146963077609043275289065820315189180140484780015944743570984762959076198524639129348852939896601254897693670909835028642769537509513485112889428834547768908645818537202053260953754560120571747837671223028235060026900778189043239456490890242210876460097442270241815166618279901954364345397711149231706088697652563225254797868261704104023838181030137551299533387049761527086409135311722218353168847165838607820668934939640752052917898094774720397430713227256477028190838209553957131662476928359158656384875061738945236782736292234701233841554982371723119695635565995107860187689175910794626762911297465999640094559769417122910095878597016562469731614164699504210221107716228474293955772431632812440687510679022619062179290766313022031853841468352788536281295332611869439556172033699213525089253182712489095980662135180821706538997046982563263666674694385436735436794730310066319289254603765212607409623404921482640883339649825267322787963957764966655949742931622250972256636495726023352105564328946056041464955124707285174806920283166122924624813499631155173560521558625126746371807146755980789009425615698271960268735239209893825691594316497921966586804053290222261500418733168128943795367396367575205263875015901735858653980843755849052090117016277779835839015283576112127318970320374359973552417100821092244650441499339544872494373543763084887113366056615563139965170345413830993506588901624880147781693926390956019253065774956746700839745437638699382853328460914555873828268898314720250864925477235074379942442033571497668797294100411374759860222748843672655885713743100837689648503605750615502156235920401213184666996403645506820958493584770869908025842651238844532783196189087631478568573342320748003618554594916886688553252517306656582238657642616302772446012494169925367161498446653246859969990436540498682286780472509958806781754549071394490478663959312791755156008490674150796961441615831772807687856587349405154949259026742726019974824969650626538930120133963021341736619232210642430686961954692107460808547911727844191040865114445848645319976621396690460016014018191724992575889336079947266223470318719680207222425937569974732367550530798021968217199206474489388198170862769264117001909271427589332759086520279858330631580882213567685899586844117369680787107615946007287666889481179787787169702507685190200359347300079869539525966781484584712774050090173907779072584577588546698087392423400033267559707626481790333446732637355640807869668539192717752786258415238361154425050850327099910289554568726346627490669465627928145285507269231432941932248812573185556845553470420729371155463263702554727199413321302600474280742038415114263256069874388567339728190131492801628290758905283502327977215372817152345044162807096757885631876249286522227947541611457756479543632913142642287458988966027867781202965420885394530650894956804430180397527886988232185337646789525852705650408253636311305454351562468465712147970712880564737360138091217580022393143085325577378774714664653124313538682808424738522311017539733674840157556457117554131256916263624173812068039324069612312433090440758638889938981148560207607361855310336405603577618366340527467421408782338995198928655741496045525040700103733734103203427354675782029326783399412852578579490166510054323687639155818411893522935522554626344856422981579233469897124223117731220518240283390113609232284450827262125972133287501018734334560606242240359920225097764004939564298526918457765527544372308300880135447275361876583832773708396438453195757519629988855066420687995778619245548621355395495850353598803348404324373977579688709447985520575170597689052544323560553096837349756431640649319407551798129758292335964832403501168229860840967189219277823728923498527399184406825585161385373021557239520951093307812049540883140470710660078807232901190662263920112972103309223096079944930870416469798652457117600321980685044449996095880365941331252863864153703760377761112436633055431053582009393883920940718573303001340629072857540303902244733356760735766991117111248103516913227920337014212530307571843127699754451892724107519881721536808066550468763176752784773944683393884547063961837618436682523973138219166279004772164515191896389664705738417684603450498208348522375781438777585536629500779044416539772171024339404568249973665901999614834695395811662956245555548211919620214050171659624782440396819479278856459005283040995554138955626758352884887245990875827431237913615656990307154541678696569947499627579539043925480767620798640272206630229714260281734694272706687809914408559325954491281977630788262329010780986330649511657984992156711012959182480485091445372151222896991852768984884867057969813256914029995011721429578527546764566873039184174054480183578513896865755290726464606242992200643337301097664786914482147004143523230245524032373251032294626295702364241252568210553226296160248293769439689378753079883890586795709926839416613866449901192864527217359570701244758883641191741068093853203781944323329649848481960789994480389258517876918784624761459729062899879574436509522217342690943411345895459521267697289913804755625246146096408747357439376801569874852030405129439593878916381118715847236548132396902570371950337850685742166146414508269007250002991108236097137852509840050786248417212571674606811162052131059578359501712224100792377192621523573455710128108423334611556716314580736317887143086507546072997494987710076303958673360880011521433880404044705633242664765763458615227054165833572797274409814691465438629373991853014356097236793593558056378731309090829084948057609448445512529044251364090374667738117396105365098116614300514811749151762445402916281124719891032646222090958081590259756807319760022536624250616358698687217074548159732194816781056769823116540581957636740151016704682839756607384262800950375998274975890834568927746743626140943158436331722059370244373066836801746275381609923869315278640127743273756909385533853594275020241685577396870802212255302364049958188748367822307118007773048245761837495489960311266594705241844590934559404479304281539150280064259670719004692840744718348145102131089924047846660579011250866026769458451592909987907157866975079538995309468181516357202230866410956832823923446395316259990562558373985566176517527808857698825030851143694421067385331549282998055514948054144266926643344023526207624878791224382623320121057182856722703109616651089230225917908921094793180124811414790784044905081129882782463166794409713113562529678640384554502126602426089286225215031098760573838696343701460100095043935317045060926080518605034737200641762255080368969597784042985287267451601049067885764680348254211052534975605804959065986630611738647827669496739324330151873143534346801505178387996032166838130704681063894238958046324777400363498531226973352503692215685585402339266627843636468951957375184696392038277144786921617360969506646137200725285243609633331824145436731819520841816207143431458510535649135101332565482001919484680782037267560990130685813582374197717687337542449621461229306576261238945358588914044940254550933264959422730445233506077689447928345853759147478770710950666227952519595922335383627446207762180134088465234365638646393590362802734056528551325106943088068808279266889060846640478850540812011748844103024691115672831311587889929575428743502488097855558159220438228975302143660149231069368588081373853147764561759293270179087599487541222634194137597100941736943730674456306561908959263509849756996840469099267655341530288107705655386264571854240647704083646265530205037231115370737085160527491882869853793442114706466790092420740663150957522945292449961022195663108059449365746213006510101971942632353583619624584209446543034652750003168416055679614686023939543234494464747712009409802219300124830658384036354099126484627859522577597484841282507393687058136027021958702410165857771981866127541975359906993266281228967784447633530728550051254121778878874952860114272797911185534635455711545814984561912708694571478292461300316856665322142920735291549399344808213542054773474702591983825510573367048702276000980455246715160797003092311970894291139566630643620148612765057202356494329754473549622785800642376797433863637189904627269373316780905131577383669473418757855897125894152497533114144869842861099684685561032360057107844362791211745816197780108272290243654462571125199325337270556552487820256659067752178554051013852476095864903087476314389077498216376142217703007485452310277658669886255311173593970651418695885945604290035044307198662076704183080734042315496027481749330646626014906886671914550682348904127759349269876961070476687852860745448392744358615297803027456395171662083447626715177617147782317087304694362900013269959652431146930355091713996419325634043401636747301164331660766138583654846716014300251051538753922706428609979707346678529618532044990337519366976655505722453974616379462809336187469890859563298406891640607103505015891310667749145271666788820095028882397304123636809931632890130578210080423321601475980357930867904561553061861026367850023631537636655607624441522464945724056962609857676990027763140532562593061671140291616629263164364696765982494647513504845219060804853952322899602998893464109631080072058414197390550998487475052247950393901147648023968945668284982555907947836948550178436609716458221598393275063819631597135342174126119710307166872528422497555554087593374992892029818967067358584217486043419802594850633410314715742805692378411869263160837855844597113069769030562472395613936480282370200956582710783269834655947735770898440528895584235283738168769184295828564094537406769502212139700790927377521718562636952123433890839989705493786267599690830904675238999159497933645729348616892692183817223193591352850651361400420075865328470055045923439232456546604002535881623615120381149436043933734117617230585571079179789473520969340323333975846305400165015851744108627297818489764242285664894443164001105301281551304025642749131496301108822077344199288737888144260615601835750526209835673093198796030074895009566424012687495842571074676083452738947644258444471358059932789249533082106338512358939038294589262035667623502889204099261087167967748838845478545957326544370712991767194745106885557943100358327151165332923169074965035242939339584114686237127833024242950170745445400703518913129846458018687023173356315653127328107926242327575499995095825682899528310357609148974759091690359915510004233152865380318661766854511640421000626643452358139748914974964987362134595432142512393784095935988641481926038595214627387493698871400946998002094529609781791923238213889804717719189472877951352860045798331947659036293138544785702950558418341140957796106287181886018798370183256433044625733840178646160341264576714097462570039650883038717146474395428921666867612489188673085680014672578349052699813404989238333829821975532364859628468545243737327819308470771052862153585178190105335738057777869345238906218283637802911709962777422761742113582688845413524034901209556776341479338997601850803484230274164728824132976837157820095703312316906645615965356158324035387895947766192371263164639829967531502592625731008440254384016849299238590927362655571487494467976766982186923987550243638499333757186497045824662991517875712175561990683286132460189055333493982172293072608328785093716247801691493381028585291666288173584060394138987494020385646852794557082937488431573231315562127607827534683142529941935932936747999939812875931310361253391786747592246498307166405567577155486197549952847862659784000229796102185924067359634402604882522181212205073147826112119487729874228108387723549255723459966648254334099834222924709008561455742527952133565299931104166020498555141359301577025734445996572773014320143861725332707414146713085405327779604699854038726952241147240690210581784012695337338820987120179948743699729177362232486950983686053224684956238878933574940355459519715976496083045555433114887186273499439573999169657920295451328721232715122635638908180195883157819080261369487412306927187284056663677510376512853567299636773137847127453921533911570422490948575382446578051208820424870714868608519318649940036212437625476062533739534901687349906762400389306228485186012419274317709877841729444996503445450253543868688797187808471022979248141331721709448189572519985178861778979715349303965376504969767805048496061125665877106401912016587194146127501185242276516013781155549522884093931188995035288030493150159282817988420893526703170730994227400081332468418972920184471086179498197103263079979989925237064841929597308899581846724361908727948548630704175315253358644051873962284267496680877021450838988345437918505934048918969210797139211357961354000696497613344115348653127678726673753957304009992912289418485266700067181215268053873998160433447394465009984330025724424434296385275129782360973478577459896165956801724273513947537204641001435904477942970526771821928927411364191896087800417941622194294534805599875525877725605183150413361982540218782281229954764760291408967583918229503890643806548990530516755765330807524698527791543125901945738837133371578694684668343865882250388951923863306377637539161425697044175728795611784636477521088479389607042260310827597099864783668016299880542597696348926013322833842377646253226613186229983399987352740066891090572657583874356493942926840896990188903138886329396351800632811123141983416121123454619158875309880089665836265807357998669052810170171081679635824292423733932207623972168129081050158920752381599148925610811032045934949797657878423248139414334611332397753200548090142177846984114999153618019323380173707999307381177618499855895423856518000094388655942192081733415282199950289275659814937235743396340772216059664315598489988947175635996746365978748980209657441957360350114219132588177749948625865793836041064071981602421101449985324599141915331918122321481792200994721816760591996112994872523987439927906547441078624131945443745759992884879695228482934089779382078502083435526742819328150261688960543374597406324597230617375265790490604724859379363968833962574826477157843863916628257845914862148240227208324019473416129880429492199884638598496185135833060249499514632641729334422792601984225707661389111852394561803515081442568707111240982298379024944339052397049720742947743826289988191703833340608012405705604489292410828194683727028524350986883823518832032639994835442469280583970057050622687184044395923588515852339227565240813226447410720017299460399587296584439303619706522564088692156990980983340544290358214820234895688737521094652732169566582550573021094061308391300921847337520756076188359584794658457514557757501786072677167584759071897921006223547369054637911050683013090724767753457104629679124179730237818680625154761710725738732308300537505415851846743527425896601394400010332209258837400352243870356941599016508024898822064297042994502343498757855582583657086269877526054246669572024029756889550430798121135843224263003083295279328908049155381167784063333858679382279004036935059638681864513048475546685814231112392387033290776588399911136919277635269203209956522344927745872767172068607730172697683498706343912144297482050199384888460453231043240781975559437690385092063012717562984907566137711416148474128223230035258104102317343729984135385049288194090354698499890512609607292287526137319942747557916815586171561510178144510132868175199289988402935175391372181463739766510585853698682954216560325427800421165526012212921713713701758006789200226610391242844783411641501400898467918924122931197115823531211732674452005968494258449918595149880804481732164105489303822142073519305066606008941088113752834922153445139611237258843704137487161444971443185855958360221418603484633453028800878537329731179694853999424597037277728760524821382946932456556117425772460195509063702420252832004557851971971759243409402218380465646392242552872535081659305013244745739492603503805438375542898456212866987197586615605711562237583085829920737682385255422440796139065527038101699988599163690578051968472729294372859422101666289725963662719326659400896695168774851606252183193455267468641207846889888025475218247101483289260347243078739322880499247791483636069595109725305072540275950717935685054070798112536980770620515903428757031081932366752901347945846678461544014804085882600184845930995871612666536851404826805742466840832491004590280433755985939001064604639512688187906424608295603866155390958770049844920801477953834183282514393510261488248909292873010234822020098639526762405204147524321535967216635284819643311013312823104848280931873182951547110697983495024292350580939153052409357532719602819711748521845889934831720133711214698097979155439278441131476891012281418045643149295248518010812112389853486274197628226225406804119371829483841751564625916337760264317813453086075519268005485589712619537485530990069397174716026490985459236614429396887891630877560547049301280042025696257662775237623195485759091219267456900261941126899472999218152372789256183632354020630430517346789470117120743836266459752991531970939147869703408182380677947626891248390419291377594275219231383460641894483955472177830769823417442473760475781936832029354686977730742630696200995576951076034081151998582517601242225299912678279201003288767076635410423751635239153382727384151491140406938832213821835635834434163861039923461434191451411017315817888748554252869689322183644160202842013531038833906721634800949720952012708454153060778572375576037141467952843332662111906254678316793294290848575210891102311004046066992691919657109030391152452532292671362300352126955264248798736721057637297485116929274791424789016743505936871807478155223851293554310846395514686977511967107533364994341747857608085896612270526671579877079336188198587009096790629199289167521123218037504061154310925344497359439067454261523641509273435788757191193113107205135777168047880643041330753320315955132472961521947290843140057408041667456579290476312970056113675264028296179584321639503207772480230181903933808068263799200209290188881100879684247794113685980804343742661651099551397463718188688680897427425236309956941330119701160190360882687158647444452427393531532631284008955022145197423728482720971577238636262501351376071558573914676300476555621888581710073059235607532190095548053018462725308277626552861053006674150516772934145678160491432680667141214872331365893799667284997797118380780814991164441706212950615040814761479974859250179012275545343179552613243734677589739154508421161840224681775269389460896425980534032868935113874159674564455481941357859060517846628744820180083441870598841222580230667206777800720438717584577243617437889774860750536525229410512390262749633627206109200196960806377212132004964655944742666631861369024261360204675218211544302175610473960568842849486284186254475320874155287108114514244545250352422705018290671509669071698370067153732290068868850619404918944513191911181887568695660768618255762298042395227284476189452288332751583589896322869071064606118493883083400527778163512171421328846880669699451242260309366094107637561667223569094958569746374930914400193895495049931746411056197742618702221279049650071791445266539289027111992228511024897556879543751375942452398356811989638162947186333279806520579972674480686835740755599566541706175241752530490692667006394632487265427684069720656405365979451656828150987651874444699551029649291198769402543093247165327318145201491142529311449509981858911235263447990227259466449291199566824262678711305630970974505329091692044272649262571975099338478959563401562171020186453206599590243320723353293553666030899852003032252648218178085739920369181023713473837169941332312621664069284772632077664701222892013687069436964002398783388014616454941184778429957315005103385563887541154802956447423911749026687964828047848112233684257403924200863939525426518050134488789952089450406164299622798785065693803622853009996048877381610954598964415384095048771332480473778166736007335172728771337666507591785198857809370807828254528588940928743392765122591232381954473441124162222381572199899830111078096328896986206160485188285393424425017835793384454671087501593862102527452045710180629664807450488429499546665198659926798308842788283928921206481396285347790751247990790150780916061841018511375367725200234691612611972440694084930496363117690839295871792391767136889580821678444422311908230049647203085631365384126722963533525240177460463769060574606027343816931504975308382532406898004250691133392659058036521750640886727347642419256231931950684269719022917711230597750271872770287115084546020172644419980716683359214172188656539947801331234631793065325049968500079043183697554365496995698504688478255929502309304684231755798016700083008043937074436254546274454101653812113477398847936867270583102169939234980561704861933759816697671127635059627441470750842572384398076740674698646527319941750099924611847428754606720393270662909061576894645931997421020669404904253591473425818027118806532161268926769918365421202718374838574958722069083797132939682828425142026798917610843326310894082193696433203585303376470681570451093181693036295340580117961741979257352689780681993695824534009618909159367582189037896904469906624418487173103607468174536824855093245979038674540133036262475718748956277576606547750669581638963209950466335523446949298854223224434211998077213184421367824491067479117078312185290414100032129963313465098147062391918744217882031666173160285211996238983359844929625401108877998402794316130323289129143411491497030450199321853396422490033322656624481058780767758704321178429645847725370612581146574076116344119876604491585158117673367620364789667241182896499124290045045873980374156751622250462927155724779034345680409537613081819614668494191350415887106268608445691161345053155946250602488659802049924124754393302504540447895946652719823394054405526047684905536235866693310672481412230439877828461218032675335524000148180655631836549315389752091446051476821007241727173883961176317333883153502169850394995114920011471489019894613690356350426506721749135910113071859324962248605566467357039831004603319462570870810783202742771523243357078663010656624588834319267625389755622077288385715501614245112749456487369935351300518969024481062671377055185500802897962415855656951822949762601265459398533009780104172273177787191940534619544059929297456851761664470964430576580784880370050190062589283803796011598861574261256440454016811872624890455909802585674720211206765105224029181175642831058713066542418095799567558058452974871908488441919706380220708283319143937447116885762765385848899194364162389223024152115854246738106831707953010160928421027401000358959738904883983229294701073772139230524140031708095585658291943308868849617212278983522434125620567108315636972540741059506329996321704233743617659600847030080527437348087348743305309711402757109783240797495658946283862235316345627826022004623013068438297566512454129184384046366823171678638427108098549819398907521152729894874747729716389251689104913796608668283616671909981096894097458464202858585301266424844305175628824143075188835071632104117924349147993806466828506901116279146134167641257151157515803370614961215222292710128062773402079852401968217491604094977171971403916451608831531455333014449769218185910262885448118784337373335097120614291092717378105321210386290545553756500823771120490830604593312166737747063031083738247946534529861045240492008834165877117452743071795695134445783576856038690968649814508002821493078362641792526125047736135581956025396649761313992886368649248821818928813929787063384364946691542253313833671207908862455874575986750968253438381155919048188926986088952358223273634806390874358225361583193523477467774058976958191236001451877293700273599048089811904091177305309588517541646871069068512224513543080212421151378304668976371466121027763793582057059287255959391466276408932240876548125603199701757477009799637785664114362839873827542673616193065843684748314462331496960426404651597919557976547859318855099163241722445334463367743834105957797806700777280404826145828005505801113859551279230100022930961547223675707312543334910149567715806076431398403392721208390804134421992122886891155018715915946256956748420741629703900879278757204716891843451208687661162529725265834665983059445367522094636799126015637612043175531535048897579490486585583438855946464037676138594958783456949047236299118455752042004991722522351911318476951959541531202427142373542462681366690687860846624987024529339578886272212908942438907830819322736083932477162087390475274397969281722006294325556361936334458739212886312259276174346378449837270107653841443964552070457258347874281035629847658744932387825296035780685591478083239976783446516361247963808016120981075223135144876986443232526100358860001865714125559862144305605613851375276112485634232385980757200126394620948197933026012657045006136897721735895124257226193556817317199717723192598813398235927813948519749856467814526834412220343213849843217665755824751483662014854822728818400405753911398924226380606078829984983101881505720529815493867924582748250901566111792030016111039935579639646447139225891388450782615009589803208352418970450720627827414851215811097931652583467762164383020555983267057977282719813306320599029747871785743329395894168566249582843977313678611325224432917244172568963485991776028614068679437087349638051288573714792346842829302119316244972905685414609859484758918563051009121841195452545698712758907899840538584265135689663198983831956483476894276088251694575910759027950916429377926164605857449671904785875153030925505381913625955141242369878856079100791591753297008594754705297226198151385572119453424976417590594546790671291451614809564543257989042387324853666612043861680660269483147327779665383478943151014209439377600442694179544482821611736971529809252012408372324833571709782483818576220351909415158082203571812743163112691542492092339065039851712343529908839836605265838854449648964727854194509463627663500018739872369284909811754764753510309940358353482600309466766869178839232855823476113417014949395769840859967038931199632850418593949251701426332391781074896186246984605601338327449170538560607871778212529012089685022537079881821933235079459811276495589641151202769831780669329040331416514204987638239587049485879666771366954891317091350242745329838013577383493567113416943675444961568783165975959049032456257905760933703141734474394044246679886667091528859551980494623524076481568746324344023399408772603952280455290995695725554158131432694511854518957606206952989859099195884088379210935749772185669352652899254276227824961420919913821011049903041670412174284201494367062937957413427468996914352300546560163271818286340930616075876141506936143678924156297141112761619125458190320471451863712408198778133453260351405236691447680809143858205669084798216354914477603298340481301289056083187156122310437166601978170471709904637805565600879587914498274001686100134858181047965772417663169957523546590760148814416217065396003683491876989025118358663018253871007184290818706326837424956265879225277015958254937515913239831204108375753616080736510996252179212867851636034950519027394941933549558368609613852434519053128587128391373358283126193206296859510487994624963960371240551562232091390793225772343182209297004283432067673491162016533748419030231742428695651187387101736349112496913783548622238844828575900312219524020213990075985999276514519853457553596109398174327190932488251445549947109517700021956487586258163748974133261155106239944253690926068622058890455601360087925127218897776758859336544174740691338564535161757167181652689139890165064631933054247747823624002264126732596516432557756289793762579301303566760296299342724326514788453995225343500269931927919960053206672375038406687290125644672992114690691293320650005276223349287379414119314159957168331352749903077463394494856054239883382890209754548802307727487278923818125853152452128948162364046430738967450098867803738969254125979553588507049763100958261781961375055664671657037185103347710378595801360248280580140300676476785750572323880581518591860137285046632742294349901220826114193458015683396090855544647364992205470797133430627532698787270504428751942740907131829386854222485148375470165498206759158495926389194967159853914033052970621656853313785830311256877476364660588219432497648972829292801735901751748290148960943904836463677930243577202245554799741625962336453390685499396980512300882704755257779232693219545834260870694409735705681101485325454367016817756719387414096651442569418012467407407516962096063454309520263771210854963931242172983899215509809620081825700110019723395930103189669344841308198809541728010552837734223811794770377427190874757513005184920998925782834814859413975169998581087830656957992187821334821839283512386698514689168846245770401854208329927874666670639762513485783066059320819460731373048971170630281045409996309691004449201812900189306251393267869205909576242461028564426208187713058217105671965917667913004135456132881779069317029580667513197596159444040127129929191946917055114780529897977015687808133055374744720173987492722003595077203642655662877064028307103523368171528546623841297933134568169644470789222111869110771031617576078160024470607553115430655989732515883525019162278488513865861284258228261362602805071495512398162922299951927200533208158848302108332288480635513546455233428956631183189939226522722086748010410789366746335386610349316934692537860524544174419992581155378151996089272251403092014021616693782121528635074067890530719072361802198955511296578098725069602076632095406727323651687325959531525887567971290458542521790138527344717825841087654979984682195534050895859913697594106999893707075689504352655130281485708665479815681587714692661714568952818890008593157177595180138506972718655737428554800373849786396359358551695760220225759842719242645157454771535104996663425096072483938519596722883678122310977561848132023837762893017571751479371333781604942080142322206117091582641054153799493001570378873195403898087106215392829046131927494463380308901149190660227984517041242152124794185227048031114531458858261765042724948569140741174992281904960229794041710921039620990028511326507976499224822297186625828078047271130453388519637086599544778916400572850667599605860348109898704837204557770038467916252013541334638344335473251874958650477401113001994798507673469008954311809791142567485410181486228833722723485739720721182108324677273448768371379944852927552840607391101048051609374098263372397608966031340365142954403408020056948108563960201691610429264093026308259433265618981326183685340908322039640473349859074090563022277622375766468869616874705758065588233741228892808339856372869763699227345855660415855779642898322940481669998220766701628856562177922340364159653429633172856371909212498037830206694408253505386024294215966151861415841168683879440898069907495681801625071659188253895273039386332760927197458582557447643475485795836494447581954134154174047943263916678959836832648337043167696033097804617197582065901124740764065956801539547791136995953546667333877812921714059219968991809683298242135613971017371225695172117179000141542095106206185224666074958404047240763279543435909067925658479119331071687274557339957968982769769194549549376335727740342182685300328278034529301332244409310781197947729344095534520433775672310246761729591493926874561055266052963364812609372086624608239850410817291436277166667682054588219644219414293715097033493255453684128744912156259387297686124991704811354174175843442328656963207134430892091606684097927299426094856077261932237338734795991006250632148361022708219853269541850933361122800712152660788676350744543690724042383824954482044002709096952562257782864349697647271249083020680564881354189279921835858632410828704138220105610263414277246635968422150810913212673843479533806647937011029488961291503597575167769226917313819294227406920667463660680493907734373599128544004190409488635956597655714104262375998051037207318480393562023640393140126279643565707164643603968882399009990847632592412438232204411779623459337925633976678613025669085347634483910634452769357720171603015766166485535375896420446604730337200695450919724979525437855247506339456992826544896799441295838494170589938220625520406430810443450029728340914355111524266932999716468609558703824404136220364737298657255107590117536370595027992401471059490051130710367349853265037084649988066754991544058775510649896398516825029953134721934847078784716598465431539503271914206016806798363241917913931454536671907556648388918084497072728284966056935516579320692763499401640667475061074434945133121390767674279706403661925307223025328978140342137139682484399988534423466692109177535757569414745359311743784607673706863660616017017941591328725266597621142797873711107955819918131879458466582033177951278456055513848374778846041259543359750754662347050191391886383982375361335141606188181135108823576190537375181534235541607957873009437737951221164206808877510146415169087244369115924725115115811155215358053265515991090484950119995346829505981415249494969654091992772470323564248379885077721448523757722708531866128449758590259604860412502022572828993453056136470943440931473024397595361397985775518969103916639957267735559685166952252435015364958659209956574243184463610162877678833199320988012831101149323278105664493757806012089525732378188145298787592930330795599332943443392392328620846084061107536331024800801101035140511820758577894287939567925079474823360107959533322515003519176339246760881044326839940541837408880162612618305401785602886381798357469541917340529176547522257687416023056522046122984122604450667888515767961000254311265483042768803639680473886379429391950826717115147702424344209806325728489077953837903931534436402339762357472618240505806134827606649317557295526422188502050668628246324256437168709014428865155977559286087285061846167923312259886245232895105363584303668461261640921353054568328834290915553238576757578669835661577512980799704346848680784738587311338072575340426706420597869862281310592163388626885675111287418277808558027643756015605178849932232413218737715505656869451593394271607688883488454491127488844398761343898060952359182919436103253676406941536629320254217193778266238165574193878400505346408002604121685228623532870668028182220234039736125570284488075553093165720535602562046358536416520434689399933092213140274531595279801786612667685376286851816617711205355190663395187103017826398698358773635053070953748530142057172114314346459265479883933792994153765596345239394030060309460273250740625732609465411542321727775103787641896712217020261568242978045609003118223541262983061892798062820856794145943897389881856394921859776107608257539518673684270624571987421777612451403900819205862909151840366033635498180109414905694680113205194656316165530855323591397035738065035923384877340971685574382787720335468168050401064756491071794505874703446890934743406567584760889148871395537728300931867973512556118861481640843332810211265011365034729505552711826780038506010623259119705689504014679500568533729929495076914056461152483502683002338233829862594072117070523389138079908194499929645760085872436611793826101186019995210546636814888889210423992345635908750023575667497140183502840727344847142163054465677459439470061760635784886804632269381209203734975335721166815802610200697633993506206232726409104478613090794901537366348114697412255931494093351298416476056141265352460738057360470917663633337207119015407396642826098579641507708684488262823214453609729658330905158534214453432900503442419929010735411529164013984489686408084648352897944732484143966030729747294318439340700991742129521024483958544307280829110285498927408907788438878823301171028957544432830658271034456520594888358606192560735926967990404650374173745569633658645167130520344908242469868596449329382845477444380286972937833172031997638701109927124568282666262688072078758102108778051868295205658928769054106672671524113872146733836103235827125136543131858294922422906755355242307194627957825762174855468949111034968015729606458686964688552926590835009169728576486261475341458384889310807577155759425697094228702475763895720087422677847045566107599559257280883501319389853433315823350250890882340567077001100249691420266935586131213579357504846366130353936029490910368401279183152901599859919971109891402955221084287720745329667329980262141831318421283622177314901097185777524042062298186718374892323135916551065083850417043436933232606159213072292443116882917100019709405436826189851422532660595384062614790477126071145862135353078604499770231191483709908717897915527787103424996331411731728162603714278710378931348422800220754006798685222654097054499369837795942207984266936254756141527551813362880725448579106222632175654782237441370719756746056576598306027354561282754340815601788242532808147832770440777038615924966365339539505601171978989495513566140178794957335571787055231491481494349742900156365360065535239282580511578338418435737850925594327018730609145500032946841787306557181873871739653235843227845849846174836022099440293466241209213453812870419867407330519430038470929630925492008783262405760432639524583195959603867797508768865187784783066040636095443184402611866264186148118194242371872185009705308847925639674812869275463185203850051664845766908322788263701772488548314870382559448811781351182455562271174039019743039846351902164842513911588747162471014436858986994267484422911210459488639655927314094005613968312477328467946397340745737372294056926510037818251398416761581453546831813621019516664782165454662971866130046994554628304248827737789725252192972716275182270348336379266556009623762035546145434711887277077441223342929851092215999459534767709759494286034577253728635761133309523962630702893699906778422392768624361698764517644885390259199958603840895057435589035902576422233137718564361016591078439537415483463022028813921612609465485149345200002290689374589155680927724620697112900994939769588688740622708987078662413068125123845672986149918567774794190351924719055689740646399237817182559075010684683004707444670864570447693845898197935372846015452262861272713525730081646035624286018545945136309731038704938042467483273182144008637698288902864824603680755535519684843538673876512943217458927643814728422526125007300584431790382245481060680652450234493039669644119270987009944194515696266492721234986440124061448529404074983490573165883812111312547930930446464051879761354100125030435944671614523876544617238836480357513372502389501791291531143216884430113403723402878961722396573448110617503498098873873242234948365770945302896205764660622425378263675879580742231983302246956604207120636111341996175285737402956633468595093470521364176252960069125776491718827669290712980026781141432185684624722640257678437350581048638404093675730393501953125928556834406786231763098309406525730551663596767224704255894262085245084128557482044037570210734865598081366488062294159439360136902366423427293360642624213919227138822750437104317983017481005562301014438964535005759016467785006105657292614283371400944222817170663345849526507261572510480121975234139521545588548247751023408330958653237212376298556938435205816023575664215328733248004301373672565621375074082797949448872446411541719500490205615415711355376473592382021357814126251567414369239544723788472818960446672162036180342383154880387352255479233558641861416537556528786683981647090825009759421659727488477150409300086545686223579508446726763233082109134869670085180476657477004657048816045238671083485648399775418235589691959598902982276585869592917516722399644562662852075947202886911181327613618142675866147871663219815319090312637100493178941435989631223121702296128948609170698789009629078722017736856724249097682034103776530710677240756608252094129571862221410492699652155800651973871725114606860793988835023658913074371248957533017502487051252882926248514663373155169683919404841989812314437113917543132364956886449843303609486576238701709344629772972849874688721981035564329069183364079143585185742255544556900938885778158574105850841203876609693554023650779254692160857730642053643401932402903685666515676014558339894596223747862881769068916938620582460658807747146938776931844568477874556266504040211737414259375049973563789822608187862997212617263630559345620243087992635339329913261181183995338082387230659005132593974852579424967978541214227556575040319948477850124300720316070294961011667366735287470935529378800908316314545689832309074631525465067692015143053019668344392229112159278642800749227752788494919963656144904527503631211225215314873011089103077713947860518512835194664177441832740779089595321842139548999357999573450598708958618769921484947815720647640043981735554760179148913253506616358338602802194144006081572511188100275519520409255540367415304766192227140529684117697048432434114648656581317721436448594273638731482429104443683461193946379271164543322544794274345392189307593461347622543276034175053593420412381242741612162110554273237677492717515886168791971858467872713253754271294200099809536652709617159331545975832442732085630979831281121937154036931700903208162820091638867211844428950490707713661762899529350503427299109694466488316948162454673014504093739893467669342675137634992062097247868323033941268227708863866641388499410950730820149197255208242180478254783862220077174072117099894299613996989626638974098883218415529466215345738715102235001338414922013365493995110160395007932779877878917090658542959839935800571201494848352887565182474308461760572207397421271853961920744901320645118810693537432858110133039352942459086300078142378962632980988343282268129880559521102849919691274443975391361761676120672373835534546181940418222069272623840725781136153372152717516203402901934779597636193278186026229055065203247643882212525204753365951385170424395984669852120785030005079325466859806390498107210561533190085033549929564048501932515787610641428878092255210303681301935251767820778839634398677218076065768904619658588096496928427819179587960063320481724089836842680159842414364907006827483639777572531294535263357426350007631631211882807091283517576918771928324730621655254416824309562757580818199623863091212186581741297185490446396110657334617837080586532079517722148168757545480341743635586475089853332355580924562067115113401805665726574004708332397988511844605634002090446516623901028997021646616313672228164423485676608816047623648212747038560287470562829206184860399988852610219553999277069036663144614911386064382620397747112468798852465826529955414127502906721717075119990583570859298773483508535428994019061533686847235804944609098611330353128136863453274167005825093803136163291851207888592316884939413703374606522161480448175589071137692933984256852514662020646373392181483182726245348196086048430063469211867090276433561077203578717802404778046867731912958627428795716923554382297069748389268634170982881299045952706410426913146563354425492728522069365785060822213590171549894844790023386387057259837975870238897496981774781732362186536027044434907321552328236690863976449846724435006729567046125170881403967908846007924925327307467147571189650690404242494571795961727714096747285700686682574846937430293897827870609161004239249411232910865176756264993888181189670835602333041632114065398820198238618997408682457499739307103439876150862112822456733135350436561067084935391214467357420043936824916396418570286755414875359086896773340989680013976511234035420276382424710589076995826557962205362763559772293964170128886317540768655744053806306266180236956448883888576898043973074088960723414768232932948674249864899448444226965954325195266105894501380572335218315362375739750007045957244518709002117660248186677215264002443483972651861707635529052654506999377680801476124406590941043568815155575624097997779415489699672215541738960419873254533486751844014097973764684342141599543153095077718304989299484582604155304634323703382252603031904114279560530708837383284423798947681631176227205140068666622375180463581077822831160131243108166652722894611611685829287628911697212895372158451377553714686276179912073461556470431028919413502197015481489905357959817584615694210033088601523895071224147932594326702544143381006309802547472971756313696469257579242309692649221348229953598349131142347021658558889104487846964646657045405753350391892235787631551532066073599684313884826958563148666031698779329945020013115614934702066342265051402928363723137010012644077119821600167291968316543861904040145801919514897608912966772453286674077729977178263200113134759351042502480768607185011288841218245640609796730898297318853812662625683453671062549815980622275420142210230002034856311988285569997109055304713492384846017186485140005229618226079712225224709148817859102516693815091799897150816507873345239493030805897526224032078834606125836146140005422183750243602403118345603075590211355486038178605734767373734893578548570093141073246196395093311648411883364353569718006845368349768474924455347934994055409858565817848047499896703348189756835238264412691945413139204859658589122779624679563427688373198446791891610641068208755466235749662733353084489285875168112933371140098291138424430193636765601349225151137459452854719030886061932443072837223488369922606839748042545431529456829989262505026034067694581890205991848226525468123830703138165344780357086731495987769685835249190511523337354821189576257407276277268399980351052240255101991184328788372150272886010126696594754437167645365075506757243343908906625831551439962134065251270641784728691168371938377005540045991339634407127758635878688535952179497576218210035579179977245243777523699135689460231305268211733283484054815058532585964028472724691920228668098510743391176162000004927860168507032521845014942063357680734082295979517070722481489050284962187888376390053102130602432926297753512451149180210762610181556355820250696849754053820896177159922757994676414008952039507469331902191402760528558981849674047460800196082489229617596979654497835196689890964331028011659842452542891655730537634407591353181795470352947569535276945377227823653232293118490646711570089200359958104010417396745120535312715363253934989802907906478302894580117776012307225417395602444294797436515760629890221008999453619388533433477740172193847694620855919888111344439716395509108965403515875310765868018239100460047054957623605136065594973945111217819333218218339651794579295528175864695792527932409026252400475959708678593193897436117346442481971572221861864129786105907346294587208461766353420585857145809586309504940782357953739207772430147688762696520799024513500401684241532900997468345612520273305897582953813982281754465369654458836688504024479887356684170748175966636357414236484106898579894906411033767017117190180914406107031802401619908428606140942261851579830840978854498714884050405556834422855947439356000716517505683326839957161346927003082194257177128881112280000994676107709150999640077429828163542670534727387942189951276943491983524863973487145644569990426996733824756780850415124532663125978496263811202780993329942764486771401706181755633004596874143029803583530393658356783961982979468436929899524966703236649974062158834061177256393534242859511398341367482120920663758802328135410093230537460866965618297400853641114450939123696463424942227357977475566302520436163886601460094238602122760854084402630946289693583368263283821797827417026437752728308843078307418287153508090873062416155238439086999561364544673722591884216884239193989119549018881600364490034674111806342298405733570558983625601482294589551672313031027710446511988243830120457761395929608683231553977279346085516107755772007046487723579823556290187687843958611742053387223734999129962008280781299613304539216136675438020060289991004264892161137732195005044318923335619080610890234036322976183695249159500409974620397563963852572122964370223378698037802139210279742045482761513246046730497232536773768284552031261723586006333869641365765694991907286910732168580913162488984586521802347464369872097051759581920517176364474323520500284318159407735486703370308001088447387669162636413419323475105380474916359580980827754056239124322120612605209822667625398066029139107371362770240073126898612874441813515199574111836225073237118768958759332773869359854820529613482515601909667870475925363761386144052409889847722800134561684372284312660238396988347372171959308865864111561063680639169162630446815679496991063698550595171768193114096926615758251038024884138358991232741506486083299083440391253097204394213369906383657119214117083995781872638996443815335609501809078405793900096689756404529957225135892438850616298718551933009308167361913501821979849621410312967229032636119762068613291089404763385417392420554737390139646896923276612461143060837445381287843520631287644974725249613187589897169525892246891897739214193137210878361812102870672116113106912385659198445960198178310774149582777645927732884219908175800539469878586473895173869446207690547280589950136565675633166753705075820718425499723647069951738054746358990781302057132628163042442190393877715484215521987284396976087299682705545008610899561440080491748198849716863062111340403856693845234600182895265919856160770364289863327646100823702365197396325146394870764051411818777187780752857761308759281883503577746469926876267159543454580781646247700485264615826396865042319446564736542781288099617664865299069994743591994269774313634501710345272622157678686283152045854509575897640418019713555857484253031031130189893799620837086061471708481498867807725895205662307572841170572426153645297344691204283152835919065101504841279036943367066348484401195458047351350639223748524638876828660299985636978565390002489128154677924880790258190613535751472745880788174965246716421204757020070252994429677647352619569820601155124475263592323921871940564120345147216477242170203681502769480814423323175601701214868959694632621872924705714767227524604330527336063767157588973318051847478948723221436851652798113517248877457594381359595456431569125968624738125390317657516125332654770389753340835005123000205501826662961051705906936060281450108141754846810709974742087718483221101509727620789300899263372210609738554398704126818193114537669617937886480004669159339145820121938976801851389764160901497374705354743640124681268232956665282498760185008175463046016620124154845097497433140995297055343663781328858935807078493993369383127624868267201540692355289140485248174142971735377819354790598352692988465565779650282899323326462533990976625266540870641800100231287472089286453388836697662615090909625530047771471591204917329571503636610919478823583605389440154642111882491166126718878159839808487944393997465950152527011631711511855678488871396656747734967318370979519194979408584040139252877589600601497723232118007211205937441519684307672546718982533777809255317783262678881309450685433751253412252658983659996133361820989395940256485773281972310348904657750215624698066062121725896816526857083729825313666455761487790274959928977180460985655337801102658313896920376801737786430776022191707147634372680002604863932190133919528640692802206568674388418185814081601009214103065599847768920004395528794095677681294478113274751731527941790716434186722449638880940843601329841569583883291336847955853431135603305107950941908487996183789210058836053582366203669669750285434750562681597523753832923067384385397241292793821566810782761341508599971975891576163323447516188579420573954227522299545862594419604879655173263505473930395101252290363987333822370760512369751696469197677882767662821489294931322768597702735830474978607924807491155822985748077959384170371085410558159824668161716588657351615741666624930906667454005194668513014956945425016369511403913147578102793733377869722584799497693692068055333616055321792465764166660611865508998784900579837747367955186018540203074478775646133758190511167539215218520786072270709785848786984506719403766539395879138306934829872480661087395233016126068925005033257539935256910077172012580110932011714029564801901259496208080784480158331714180034339269606679978898894935986797604667263459509036980827946688480047449070032313725854784483555041420149108093038533271637781242651135331887417273529976229016547949554331068840952062463762200105214005938875864204932359053344681801866172196451823478084780290993614161480891729585444076770396840635381916193041265362668743690936014835812003570700219821089583102575631248435295457484286308653327849368192986569373109013330312160204668996894238991132229890351544082584704949915739303037653724778345771543657484070196491506015995073468632746885245506960590914726832279082915136535386744409895604920720841929922953670259507647718976673151324277813651772383345603030193821421795874522357679094289189635985808543390538774892805982778001998793664845937944318376847882769398977550939458493015953334487814021834115685825919809498410920976306206036241965288281166009245802837492113189955700408876937454394497540533128665921407803651045268228097363027181332817861267825020343810373375530863463136558400619683638691421823734435398198025050814532532919659008369800298711123559913430514288220519884560308548971697127390488013039180204912211387181747261633093975419648022745179313566646952820456821773844306615622923837135088453597104897152414855988847254233586249290421356276735038624055748449493962045770137487772406562804786082209497433217212762224307068837729121371060221783485422656382995171440890971529725738674498764037516125111994825735464017164315761384706283354306146902108405938630972199974912811612325823918275853325792056162255190226215815049755043369880746187440233487565565794079972077171616660845174426653035012377840531194333714843827081812278547296693433956034396799177579335880247465336108998627657147357817996815111002017541489947670605016071089313443260082572380891843398771287154249606578962939062178677244131690924855029559428837067885678574442598795897328716973367547560123199546155956857443617047094339380930913873301810326153292013876227948292484649354506423039310585799973910298279325620392090975741364986770666351100976555192776814011081645581042476753262962860999606514672781606299569648408769461884241726432399385514879262330412608241373724522683661427845642066785779076483694583732319705192918378559204537689906499515604870084957371657477740308972065741936072318358704763552157470044530261189186976600248113428451466949658025273304252285081476649908119732742286321617562378075567241224419646883930039434765895666162476855687771341270680761048235999528258801160737049876854523731076240544232435149575448635677677695354065596116346042861072759804036114249671666113007202115279605267009201910668569343583384844862620052815336240347964691778827930640717732213095856534193282426144933072692931195346849960141441781352983737686409119820503437992740043999349925570982576811077678720718094774457232591949560178854657018446353306039142929154945139233986620054530194336731786960969893781805903342431676224272699794507556348419889878699393157697418674443724282220885345464610611779951489327512455211966332735142466398852874288207253581707986715283549032897255708937165980378097296437089105003232164921878487920060169438531517309510727743639856990573500510131816221658222881683764012530965524494947179361241197441367831664573039911351144102094470686070464190978764945185403422885345992244023714911107583787263398788771977644818691109638635826258357754485541492811624004153347873585693301612924051039710879374301946953437525068580027958766543808389586472354346930457118076913286887921571427394301532713603329315059718356977200169915171054796188617362533851556334067058514931541919023102220464588072550467360776472363906849157957571456142336109274401146173220042397107214702811319495791259157531018277891208102136853057864887384925898306354109639652059754697684989238805483567496573636794586097465735041604636745607231183366051382582014731778594725576220701425536584358984568913659243138459453056799753109913280520779312589644159292933661655576871936635944250102779405500985328052884558959907320441873396321920611582432425148529458223176851120168609112968472699751580482913741930437311441743111289920955213513367242789473913758485443495933057599840986695796165892408477320544981721634814039051169803923088285051544341252678642002070378097374662145443751101875903519111220987600098669228995325654889276792520291774853020594177828812369268793906440113835465356058232449093149181462684497148814882850492532838395256992386268708040906851022847368327196542378208619538127934846909673350694586982713238574116472238982396073849146638465741244540929655328212232221142338043095042324788378779214154955016185853936034748210001252383459840964820417849892537454138450277482213151250461416753666674339327019396132144329143065275319312007931860891736149144986261511880102630246571008901086436371685016469881042297121872348300677090954678072372920138734696452788020474056100915906226292241477776653299173485557859389491423985251241328056597494071106816687649300811160610124067512773692785197325239448549944561985934151568541395058210384957009997522650917216874776532911230164902078557711197217505561712644207473287939240273243167549586968075618881863910263334310584793302012206952437223621798970393205615480052224538228023629763205815405462239171261114028161085039095765181864495103721360068806314788521587977460290376435168363814144710233893191565138761994120748367013545473620074804108574484405025809134911762519707868776820975140120705320489940978442787637495734059091948536601685599363482224644941436391609379302357691460610422533467627715724188515084753752942133800492173591366684799154084663591172834210646189367040692220064559901587733587709701371140844319760793984453331652064995622789723394926397832707141138270334010646304444694918367358977538535061262673259970718525753733675718333401472745674347004781655129069819092638245097832896002150252118442785402397659577549377228454322187264774544076333024284214424733167870890175698510436492513439603234309525509150385622712401691110791531505743974379107282392021051259701090705841609332626167041822937219142565695445273387067737637399034470343367505993061469085961810677222254400462751425583912964244957968382569561277509545609493004682540435175570935092933143230324039965059470205834831906674910846603016574751356150031876595220924407920652765313185773470553771809446481495505571884635699841598547456543692792789641630782752496351223098558611608078262019983031048480737238630936165948761014941342787806945284950469067457655352404081421984697721034704354303558291004929677122610990382307865282549862236643034634834511716194286882804181895216470377750630831554313417635892070179984325401070236222095896074854350246245774346979669495596797524361782423770679035566514878264984155123365666450544708370008063941460478641070471913762359884477328803160834884950809259798306395066033925427080227704588201037895807864361157314519429704797403723392467435893151635359204204362668186496749430526439314167260124525911371598985062237650210768691008840679197027848917913566161523069744295779752855085208863284115196111794814677420580913154261960658903231937865400216656547194810933170566364949979652560688899952632791450041240671311545063332485416394977751573426512127797153108069417442253939989332293841101816442308668734574287073405085898606612549811983932834020706043315171849147584044622502402551176993831156212541777549951018889180858990502774620280284932807017795303021612330370813859965987945983039289533229889127038259364590057907031606237306825129100163315787275107050572609909172315608993130547026458755914939443579287975135160639251979151522951473754435287676478309479530169210142227920557723777943330504640827327197930792794057831128278197212197835750305511595529046909829882978447420336059834858278424287114990462126103577296092796097278754188127152320651821166092104514923508757068048042335092226338035439099472790048286463465730002429310359264922086234047394443699957266471929720991620369506970987174193228349873075845570123741800792182133017239744803368981666596973537321792592153264526769470851998550967435590692215835404254670408580043245003739174502122591292700651602966848365273304926776251026006602914764912632562347545455147699449884656816910846558820658736281556271784909195951583507829439015009223138059846671916559475745524355498229574640447874057223510400487512315097968861973242621788298514404279441792305468029664975006384552437441609036209691920176057634099416996283622948191098862060608869772559398509473589174686898037728609069930344323908879224599153875639479177947657692281183267271736531832628768479439855276929573957226122891182085031600704360724048515977612738784640009630450521777542427609746000392357382352036075166126584932621050991458755206628691331553471805347214591771164129597330958902989780131222349072958779047416204762663371046485161588918464131484212521308861042159904596419799751394062050751102474145512490458260740489974696957033979498265199770124130509936674855191710418348043619988811448015775680043345663825131010910423567866826488551191867801191729123279858200826407251312205667979906052115420037600177698255981090111016276908984090165691698958853507478877431578205573113895399110147124702794625303203403251430665413764198270721680768440519594348133345584711931280295515384131115362546212727615219336112442726660069417090933496917051728918104881549074124708217880733379910238933551047170105216479201440974939765511807265839983282935946658094979175597827548688847489909251329072697130817508041323703559720474657819254413329279796715135005909810579186837818688224573424764957836089253946605793128782561263452289200138375710800481217201439151675420323299068765290897741856762473783166503045996986247254592986167993396163000452447668205019597192541060393775889855760014592038411406510748361377751568039130249847519816924328263900810333803606761687214240614648102694180714464974313633615418740673150064117364232243381809315104662955413626333249639056338187367014179618759359286880207913094427703953171209973564883909293231630945760861963956313224727197456455050560284325472179792625485053957082775880541612359446903884995183995193461048426137335754193571425275187660142907220950188914721416638762352485281892041006761164443274646560308284944587586918757538899564606197885296322632929556571157096469986199281249559292975847673276363076511647883664089475622849817160707875422155543398620218749225905148448897346323506283121905267861646932635683879696443594198113777260476292133976594131771064096353193131453712027195399980379254535235992238755005467456791581095185532119985634856921467387683111618090515517395628524050604361364830883234384957626992446332256211096685920403391959662489667402811921772326501055297594331532389679429114524602631750181336489025212332887570651253607958017014259600887138050499054507873869658327092860516698050344900450489468516061955602335091367078854558912864412515853463469212554296056807804844149581276318895393496880034326503255673607968110559030778221795560234842338435623109784649525721976400342564961807621644930131937813934685582939067220080682115997203277756146396728636453142654201078998952074787366197449687708283017735150616026054741111049694741752442631759665625227495051546514929440564584193450047950109889409218212919150821950204513581168656297808744058347461205602286102076308922923666539101215140600149898809396281102741327072717099175428916296140923134754264339089794652697023931122233011944516221950934431106802123122329549270048684723512846408566212016232129173355581077208369234754210525574246758398231594100631554290197684326920551170882796899039975883184284893962980451234585567471137698921184272496866560841104816981165415202602775298358685193925156535221557925625183645477788397343575338364751190384544116212364511907115873473838387865393403428055395898372791361497627628613586909500313676662870686272941796500481353212118331721276096920921831106512795107815441579263651565548142205768176077931489643992412316014346975112588523087656042947641575909053309154265508804235085363185548140483008440777184328117641617718042217051165640211021217379985811830514397867554373267362361346577603331447622539944208160252140911299508373536706641732680969288998639303914980095428997710149372919696451474951718559191640517175163622644419429838294049201417581803480670531309484475178277185944474052025419091710176291667898219617665849372185317985216959427142925285212796768118482888251975510322022714674054298075230723410441047675226626882250611297796043263774840082146961005945627533409926735319708743593218559997389066631429471498013378400818134620083237674083485326093474439790116248619218819689761720104454109732953334079321321621851672845583147490618834028131099699296602478915820724021904307222350995717834055233310257393089333073975300143945580129496654232365949813515914366294766188099764479596991087394599027650268015870319806931860193037347779376440842081405505402467001258110672937796156629772904799192136477721714475670863751415937611461785723663815259423427721840622975756016080751301985482697928315501601540415852328746668184184488975494322540484102845436437604394100531772265232858855268409559044317234705768514311350659652013281653563391902538454504882213537231510277385543048144185443924594143167066770524128857555134987528850893864118872102923468097215159732721683654829928916565889525561459015425381895390335275090617492204668264706689579142539252006366852527046533017096043781715653993644914414876176386924756726837017544436076586794173756422414416883453529230439899763468898891220560538689204503214983587960740688087812024630713455109790967810374841330076485929797834857465121181559387912304564739827172989420934732936953687751047530536273906003371527159205143149103753730335282126150419632453036238333839230548678112889247454139926277812135825808545026116467599221783223170499130963147122102014346390038843310185112222332949252112018439078232187733030005340612031519177954594397956017151615446934843715281181604099824187714313949528523512521280352845561293320320816024804467356064174843872515243823137394093738517333924040437310340665612240919753015381332691847321136548265586007524890338438695931242191322808851786897802386469188107129879575254709838796827611494889350768011047526192874636963894894899521054050430299912890501037164843781791049106968247523207046921349494111276126863623319678949987073986676137240247393038779685399324514319443150689210309567644880380385517643463964033442300740850615108455371824025317359648521650123046324234306174057364364187575825588414729804364498016140998662764413621367589227832564914757311785197495596535355130562800419434517834698157238206539735372999977599403022754388362378570066543562594132111938491777310197001836242710244090577737035399276503919573742051424917168215030015421387655906224027247080982769770638701149307521591115262606876845009749582316925437219310909695703686642665265730718909771198154198761450699095599325705287712486760256646272529424626368315636483675501613618795448670963958087316230940286394597318623391942527077996129567957854025544415696378407065334671273985583595027490927677049759611646360830896256430947599737863661800025935729816513938219777625898694663812265951849504174316443133879153584228422986418393626616650623654842383044785766459028094138742293958043308197228073302601093776974637894210820928718485996888827836112402579602360221356555807261403334603787194719831876862494713748413967795652672863552745151681434353249020234408372995552883395762798184352867593726437048297826482588552831394711556018568457139009026532977079725803683562477234522667019327095313525059653519472840573611599891892478355123160003177547979293354523141312741294786569702764262043797928330058930146110425903943199450943831957900341217864768421094232299743258481047059236708980763360836141628844745365017649637389274613833969293774143114772733208030658245932339701164403040191234380540972690589658961774347117407184512672882103490627475764991038458933031490151453719669429104958793406107476832398313646385102111924588825118140963495745850203294665672797370134546449970075889895423548003996424862303467215975121183146718527595334964657766022174935530014987987848031887905492905811707605826965399551066748677597633677474505164057702663970303696646462027773191924888278241528287420372715935276914827019541982561587710734256831271001065603473065390131192592223270500286456445536126231802528444598295097786918410419045941439686603215773474976014676005891014359634924641325052377809303103215689878716855253127872606951354112040365813167607955015616744185774357405576487543615333350813680637086867340519463925819425083739487228744417737086208685786807900243732694606158861620756256050440537488860186751096590002964036338226071547210879492151258427639272477740770239695179602215819994928203497876150330997183703510170095374508532446893619598053809787304013886858753489503723258757999015886982765865315145868540876811366714212060356871622953406804604823968593692283256887598277417579775227185264403221431460409177306618229240815583167718070431412206448416368144765635133768891650826308175001973407548566406404408758986966942517233353681380445611244218201230183100981749884610082053451997854353271755562873596978304237132175860405812618967394781466361467013656691173849858044809495943128999776312621599018947853259244986991284684401069386186668235560130368540769094947782366966344007546879046889354084173693651718465027429871706704428811594456733303209953303935556170031374277137545097917536467421658995042829034545828743701896220405172920292448797500288290752196993584074447782856821070539746718680997393727344737060836155757622639573161768805227051842059877976905515992629335435737863671069277947865149001064737771420870139310436580464256762394052978283051697893400708880297376136167519939490246273450766072135460970672633720917091817845909626981628183809599265525780812059043276863181084027627391717477690705928886473635679662381307876003268445171209401305820180652364479601091563231374485062174165704761389257017686714568753612934198718667479894694178098659610574472271296261144238531588542636917961092528308789137828241301691431092434373227872342371567889652838486805879683942252320515661557420571310646627435911489700788697029958596542390479567870747276579257985291658112951950365189870872327178033443008070097988167105972662033254701269016004603907409407255446606407927533693745621514630947177061939709219887884149878418249252267631462671219192752502350295080708783097564413864519095045018210479432941503778870665728008429743934860304148527170285560626653625584154013380054989739989889538710810464847662499219620885975537780127357480898945742555199274124476828275899171037823356954254144313802135917291992431662850548816646944789754900873683019932306292822903329429143521843033378695233509925734157048131783236789595254899524954306118033093814655906479878423973618488169584674593371712717698435986125335974880791794349883039383329727709062203645097161096022754037119480535595796865409924568228392162242752157771857855409197780395984622232354787261644199577670623244661490427647549365081393583938412170939953178798497344533114176470275754842367456569598537335804262472053260008312596188281055386152896717221803509407892746675169975020248069728764677955554064487625486279870874625358857112517236625553147252897656151434483551332554062043341452677288204992624668283499851894628921392706289868977886818649017481799179287325757434645190433804028868025551326667752349577560181841324345889324915497098895694151028042210084501899931665120826970731409814221897773323362188905242306680410301412541350025155494577810565302022834627728958017392135234177590789423113537811715648631228012264814093274613584790364268044215958821283060809507797661827947053697932606108457229434233186897232918081178852767958811731041360712511071023184300906349076346473361546358536457119082704792118650632562257219249609675538015759381544063160860127467201179204951466102043251977120974444987034851594479863069703145592406253852387759370036194036709706372166340953825733124077471687274529253638828842859895696012067403100525384934021532713647716566054021740055699380408317496644234478027731365705077929824657063105081991642757241024701399742316982641818631899882643354144327361519391051382708383158338618826188919442176818442963587947366535387477680072729136432606047665290743738067304583019205797089141279137730398896457984676244717709694793574014019959360676093010652200112097734009110000455529525643468600383595475400561934061268286519178310424754704291518287097973560231593553560211143803274081796833895189770137387177350247980346016846188674177591939103204473662475189656672622080472414528734855247626131145627874753031838108166074898484685187502537383489051223793505593820179033850735450149631410948669974123204773613494269983029800248615603605348902983873593693114244648151258585481450700570473000949257531372785651272387314762379847201157223149249985148370612042614106268847355536539342298710428278714275462397866720821261225717474635543469443653957996717680010523483804529616994387834250186120118643636720246491216737346419455063616833307960495375156461410187942017759589222262588336943504116123061411070272067650967675876072853991748126994898265514678778993495878502376909692449167795266387108671183098632773284347974086567834017520407713585797606980872549662764689923199484978640345288581538521369960623205844802683885136210215216251628152349011451983494195215481202336491215233440908833788623397769152321054220049965265953746751331013854777576594708181488141428600083885803200763567485517359842776924748019933196412635816846056689536851849582517642973349349503525032839915847167045406172090256765498932890185125072153791516725324276185502342586013414990943234232776356409616607418702694525225947824900318665089566871829803756558777399167978929715147430592831266012917663256170106701504303200344341584629645906033478650798489496957844818923916010514481922447119143800501792563508396281625403805255100912246962280681510224879698419796004328414767127358990545491267342551417256445628122978362917201422152166890334384967077843507041466065765347340161845240994348058805022631896110881643599190278171923359771030509329375038259841976473107944970279381459888593316700200871546258551601865757835014631683680155471051852257417710472610469943908161216918725828497874368022177866803571855192161357254957642974919114203521221822840417099742476750528595867085838182588601829211848916340124137019534120179808686304851093594240260235212045784376634061962432722678938019337499074660868071049721811410884335022550632841300663433899241026761006925715986641799431476671338624850847324940176880541477070542941461748778251955480838627216271417783133100736606563325794194595998253833837115740045891285383607061322299158060275477681781596214238242540835264095849382166618251260808882986272153383598715933713683630378615054395250258377548781574204940833884348305887406564020376240432993804746928660205564088123869072926471757622327668384817775407394625194987426655825705483367627194842436463178246142965160170247048822276245680512456060326811347928290151508345754456403946471644208256015339191986761762693259180540278068041946675430849265716501075943983611571802684259803218380234443401401429113953127415287644411137641244629556287971353900660999529614996262566754947870358880422224499929407416544330422373787872698655619450865750208628644048788619981477169371916066335320405323964876693968945269602638264734278965382899321666468474978368692401375956250345222659978321594423832215324934890979834410480255649558977298447471367927313795722522880376234113591880779026436195370824193560731828656530597301617974615455191978221249574774111248393777217521267605409088199377341669086908946382513131088463709820926802877506353906123102271813547233408369195086315222735550159997945991399043073551289110896398168824391548500132651056983281275143157304023674958752002001071221721084010244763134275075911606948849359507019203300257984442289913534829033170235354297388226700817809312804933066546136873068142563689308275945844840593806464172174390135401950886074651882465072951122918110112426338766473578615080590786251161439196020662159866717567999392515283285721131687802299129478218618793047064922229016885739877862018225163855404280701782680324952465584579260843448942526925568624519441410651935237267075663360011524753600812805928579105590465476003437110813889029732532493572750066863597876065067757637910384167478308306529930342066892486815558949335575077086282255732212651213657715441604196118984246364131582948773845593275540005073261580613669185567298587051997421998336748662703622484779374782154437365319617552705907518158700243879563595403132191819945851378900504227595356939364152844699395112493512014085647462416988360938479172165665919280285018039804479586034529684769721936393899627324763653575943583620753004612807337860924960431772609033591652099139740629497288457279535584251360453425063647018336041579717275715946905122801873455941185819054071162902342899784047129154990435999659992363487377104137229073330806732813092423862047545581262038693959023755525904401175543114176225694719811004287160304667607413562011542320638154655386803140797487787193953527999533086942398231478750460406567328695027057184823690504783073099569165887420017019615366375791287899213558710824943487675541865293523008301999285640743978865155771849978742828773209881367371098856753723496948168198055666403975338172518771251360383967076356069408736923458689137640297499029975011391605663191630559339244441654162589525677183372014335921425849261377227709265285881559704694499090456412187987046610051003188137670084384668809048046818794364077839755847841942943872576324957853282339853839470751168526997737842221299132514740490329180307828824903636904581751106381303889519806132401151688882204508251153043133321632397392684319024507584978630105869302865570350185167239376246300542138378104061421914659907722857768837807360841583052462683600023075149250203217234344858208845007333493164064690717204341110941091566487275537312378523607652900122389466605811041011522124780871226941102148201429559342623014776504281072934622996852382041607244938571437459225668256799375762740265467287202677824107252073204916806839728414776162319669634850685248306332381702178022758725942452118146517899557664760172204896720882035375620205796020527167624838876055100435692064811130642861711605520673919599249316252848897336520683056793136990425517031134877662182313892716154920524262075136971219383925852651781436938816489833808274742267880946322066996663168166239857340770987305387237097922527142411122042231625587250202865691515278683126733707243362876673121098214853824700674552035008668436616237366841061229797734243156432900917683269101942652988876438852135837723750626267974657591831283793899805501502432080564731754038591230666764872643628214408635723213298332734285940485211934449769780546177261597575224481088041048096507153464448630485178943101092912133264538500286380243996992324431763876385171227003330952978532082513821273738502465939268632882309534996090482925703145707325073801524051737158475904077814320682595593594958768322792941071830639387232035209610883801076167998733251796606939494836734576339744301092266486830445989757164774018252438992500822470886543782378172806953963836071606043881619600138598819059951337545734486402289233290790357514021345215508362826182012256037916050613045069239950325543553203614272192108694622248467074009982112840209190454659303824980922254736464619072475378811690026995747623921716821400007925021431641060292689495282376935615598975922093857970420546716568353986356389604080893352971983352945843407114241222243594550159960156794914986632802354531387622819198963078867916296070625694026405020655610725066974758258089024821715368201778825087343721909474320133282994663211396132978373634312741620206542671121081270284770172230457462578171992008439511257063562491978475248116757149843946671324113680836931663800534356266997781539072738506935719003924028633824507500722048114124999655148391788866401006746680837321478608133198783759469850772605668657297014785640757876788009984027810749094433008037957320766738387524988604102861101077334530724388726339811975898611352052024090093463051889945988067279347406727309042388200292678820415094349403613278547827990336419733683523310586965196786779786874836975229187125350491515494631565091705573516550271689485085599468369018967901180576590765492130900648126693862837206727504154462345559815872807568305443634924251275017456847380958497332190001735096243055500128303916484325391854589385407030371688655307164427852944881377576837786446189678870935371240879661232482657782481109430475292219642152151506510339155142129563078441663655144174510869510986010860916870019100580698479815353169608352174997814382213982931818942439809401918907912036381553866638886010412350489459321327705713692990498829302088145418715208560254543645317875914041299139601523499053709399172167480497175294574268602684929725795592127635852364179952487535737266561756957260964008506396302661450918826832058789641225092594561679146825867292765112994162912652221548031110236234569684249162689946780485920372389108231701584477223537014966184428238809298256050017894706483604773009190702979768859178904823822918764838446191312375698231943450865067505467669475633950873549448515803807554862209729817159805791867373019388332259953369946444571910438867264969135150857855631051337260330052892677834606106306879449025408690995578571621942925187847324408200511516841517106142285237607977278737404310909247086515475829482894951815767621285784397654378740156462279955155512225360825760001327010850493643337699036521485327416799378259886413942187130168153538824845313601920298677996657106812623810425543041867524277178214579730531624112628257256267618742511084407786583221909478197169255848499392441527604161034068316011063633358009677092202135128833157202423251975992035728388595849562878653227328327407500324455092879933691253788379397299427068436591605498520496531056227650294461618545818663326622303159005675157938557459080026733002191537402353106043368497635142855975838391939006161754890512663212721254767006201206481823139629033504326931411628158698141303572864780990728188208646575485137580966932363889432203364620622318581771188689808099963232519120966406571335998110438912960524099592561889937785013746513809287923778711208813335924123562969931924938603975745363625986949028947354444166351111143566667799495182869066535562661208292769787357119346950667407415077244587161927322347692862131251910346014318888023975757234259072412078797935252874732253607108294293009598391602560316230778817699599137737198923683218992337285541306089329328211291671348298968176604189905988799106300009896668616910927365506568632047287251182777613390276479749613925599316905507482749608464229146015693782616606378667444864404882595049587142522011589159438500165884179507838967653469401355022785221088346285356767753123997594103101409732425634848070218572262894073964617513235821252957349515480325636254810298857220054114970694565749655355695223150926053714598255219329368613719569390270445708614937699330157835185292742899292438415525646216524712989898071697158835783292425588555573544745473658714537476642081470487392988505792139228178633111944060917656880026087016782831050904738123659404871503233837958059880797981526105118537831644441934199592571621089014795487673579406928862482411144523635386976608524783448630396708116050201048028979864794701164934707822278267282115536044193317873170608455274167905231411025280357055813548354674902471618167353888134127125499920115779814692479653545437010262433018111703128010692125858283203282182500789244772299409259889157548086091982398666768096239588656210000443643529223912835117458990253944133988670047508351915233485184595265104683021040655462772913893593183494592908820138971607739333617362064396983161069743538047788052065465921824984293472507980071054417115678822987962305519109887395721461673243697355313294336612608841769557211562787111698819105709872659206815860604387392034477734633226908619870621213477370329832126330204978519689773307813600537167216912612513633461423020445304103335792147147276564169742631116199439288813909021558003605708230666772277369424619389130062643975780437964543577594487016101042509785605226841186479843383014012284963983630984350575269224273194715737419281641483617768324372406734595139791599459715590547212907977981264195199568481014246502141375343432139144567891136259171120334169133586177194600308584930320782461229468091251925829395760986845926161933917102718361365076868066631074920502681139734512965649003718649277612646745153249049641644155785470587689535055569097562747418326450439614719516741371359467704084686048850623638272498706616376996732357108633632646658655773164015505750640442140766603549104977736295401439234044880684196406215509397221675455635801950013877092409468967159743630125490534404499928979047279555757002470037394977387868053787049334383709671714842223316828093365386664051350800953959498663692698525950223802508100664409904295531995203214751714642560346587294510974057619499985093259961554638411931426601708503561900308542101817933520857432542083169987397046540678028644155120877924139887587207357900950287679335217972688704447896045912953538108421054500125515683394002878948676899573733531841736404750493246317983204836932587243104615534075466229798762986279476155735824211242854296939650442213155783373974053268170652954968465008211472339812258908639591681536588563401978872048090060597573973006969168276991270981329349799240855647417572292800300532786961929493223879830537619804458777425533741701154859295654787092920625169734134264506983555367584265392967400719444378555092255147492339415619509321034181603397014479311693391553103789968051964853687469051123142858258006837610669083591055513289233887102579836357589005262211799631575109354817253412101162204332098691046359590932228201812592279413403173282218537426936841141482682234968833715284618488121682157779408419318644241060077189300229622632729388631255358390987980198133880832158079144134774499246160814144148751291117364233242770634015281142877861104112077849674639302862460767676361418499325867993089853181834465003892344921809260346274488979293589336661213441791960031246544463611154633766775002351614440751372817301634153655612467517795002983964553174171322416446580492900759371752295915643407107682901781063916847051373082111468615708605887672582857096314191338558657932712306635084372955528144790720805548016053608707540778482142624242992677225120868641608365773283647933667460789193092159984904971554802134450866660724098476619440066359912390874894349127905983129242083182086106054463270409336818816981854121319536021961204791187135170175136728566134547611142234497191262839478618228812782565240619630812092483668082975016932886596341510494709311089600461829610109703110402177325611767858669162715698093168430913382607784842722221187189202492264844089405057338288018757520340902633325114842360562901603917233350356829917225227377296878344680285141977172480414535219887813742977691502596056680900517460490675129163521919447816258396113073672426479785240125117912829193923323491824059116605810828717490576248602288493426355121552075774308241779287548298770877820029987546246672337407292511363054783336800149731809048607165973301281149122886327589011084166243735010810807622751574355433288893404713678353982102494900243329262297484493131582207176638013701889546268289354278584904142525761128608214130171028603793836078655228665712096949333622617176972873450521999654640533186872317011830272216421074428724128830060941832172565356290693964327142778232538848008499161491398351389299776814679538289046307011817191503501192320867745712193115353128272191561846734625614666430729603322275379869223288512153588100194884395200320082956520166957817781753965961753855451279551705278702848829245646171671433469488262719452058674551201036665490390210654387590255232503438380129973443181226871482412501199517988418536104138373974709090605116295632233625001206446168022100350615604909950431273626153103263767882687587681573883618183175387402060890012455285844571181198409454956203246874380583202638494690605725885789814742758047364133826214671918505896640117424439761638771467385646367957457009791925762812669824208802318109553645335752877394880399443281971067262486677303223177058217418409994986293623484872659859247436076171291928833923763488544214677872833368077589691217813155565871060235576292267126463626037862284346187165800917438626702945233760969002264585949192506128786745324225341707991054869810321785317159107320901924201370603127669506952413520852087465607360481259734949284290811927883414441938873648454974344989966077746387899417055714251637293035010720033520079095490817316344930146419846996112161340958564945024131185380716231860620455515476516412347213750130428986418369701583752595875635438914689370867564056008555037298891593478248549568302099470045384417791761896192610101619872448957653143279826746835791519938484889828156851037363460140278174311445580140407245512656143800932192457368814220561716183581410089799830689847356759743864249653698899504604661144910144658633836660979426819286164082948391587796857458302099238055966076019698245567716264025357912015364350421437385221074332567133737248805435573161426039297512744936408251175708467630592763624706494514590588949496064046494234357996736478670694901723465759286879890691510114010067260627584497846188801255584762881762778073532275676684012198548775141680853437534800546796980919094847408948050088604893920134515688766184261657500274681101671129060768083129332463963320715669244846764398641896408084544299804479374450599292864714503495006402151569511139685824999965994927770290721622464167713496193417771789819363900350463601074167288747475800468412611787037060586782975644206332841029800665422335161392909424857985589447999827344242395178771043681714438433446572342865471581190726151076694446202256620763950040550072134191914781992072737369283821809933118362139995103361350700379665161857051571531913176337524746863603180671090722033690688652510754469076536867227000803959637957533394852364707156537356523946893550102450287264802929093374496972076772189880795562437840653212265941817042364446735517426717351590100057523427584374811260792530979632513878818523809972310320428179368387118143204996050267657908072794074971433795397777482095112298491226719683415180656665782711859278944079834582828037810669006418369178602398927638994465698391033080178675132114662913837218159055597140921050340570897824289948194726740109612184040826555407051683549645452205974443009022044186778739781627105693255361854324144726095926778954016577171979513766022648129238309966017269317019842519529915961177068725976857156617150217961441527956652632427947374838416354170781948979263985125027017028575353930359516744720547455865872288681632877851808663741846668019942374164289971924943978157853967022255906127267919445763978078516998185795685505834699298335556538466693242903983089630714482883833009774559373088656771566948811505270434467648424636705517345397586274716842291525676497660108613698188371592466211427192122612529305410764091096927804215833889418494578687720507431960872530217922326056284177657026700432502022655071584429051719985098368722746855731630402454125067860875395359261610068088507933732067843476510549066319737285982196596777796874480709815301886215940320252821926071166747208450760234292667654982085900955341482988852759523775259214451875406193275810257714014523688641223689657276807704465521201876281624127986321755813244251524240181108974262273711237622255588768227759496460202384372322965735828083291277822215444455500521168263313965171027356214913616605178697495739533791649756251490100766964553990125341222700486026165986904166170540145802653224873093912497377696500110436233169282293550450854027442123481232743521331655826016642935313253845314675183347585968976586441841839147024884489769242135483306330395359623671366656904064528891863171662847574064019234069702169975437983188272623637986539415741319793757923496954240167876209025208823013222449813152659666764930047191843822668878993777783262307457670636213179758742194581745296110284349546711323425153082365651670385352028795929210815555648476085664351562747447707253615394169590470840782391011231680001831006237083049848725273936301583592686304294633329152196310826252298225364611467192661265603084611439166717663233518866226562920409219335425794216862684224739963870574351188547442152968685918899470069196473636456226875898990668258013726162983058809819282719521146030217171073406592410933267941301268563550925529544937963413755901685340617349784545950681778957338504075210980493689457329262743542511700095751148685292025634131601869620096998744671094696870292065541488928430341608900866752519458264850903528750087855692671573832283319285721063547145321309837203490063717220909875090285979829615584836177352627138017889952528813056381719186147692035830387411668564760924320403096592020230954261758479336472570346014281236157100373087918237871121042487488464005930071699120741960608790211727990673477786915239267697869958883345157531341354408525303823982332110481780017226397279343524617859010731935810844854593655530901959251090422839010316453145302673617485371797019616166676671117549609403694914900700950337267289143359507726254112294622150832525487101782715543783423759714260558388083353194149300883223165809448294123396169740033454325949423918759553448787759223076510505227369441202485832784708785578072902082575628486225614180315440748352648820412214267203221006190181423431451200843711085992665726814269513872124209794176057688599224256286797618397378665190231661255704825311541724299448656929524487357856140818818262663230590711989258467305734968453592586321664078753114541061083756431355669702490869553280638865602082228024492621031599917591810977938505196845168153183504800113095478242556146153503022916930867937987257818986645570803847336097622980203048108847119256220775375593314209925765339373360323684110398132858455743254662237629014757948957306445917242773308912838291587893551417481967267505554105376491118484699432760400601862104908432734920298868828156238196458305793939957327149988648636448503554027846354991116970766576794085345110257060275006447810891567478107945271348387268043249192398961001693358363532357044216677067057190790410879258331501209431704579059735636521426695857485203632282182073423426951892724726059707078599242396952249700136902307705351718471963568118878505194765622883093871961593378574277406341398107607383687392303940860046152599016122610005396531652371194081824481575456206277130349347587229776350557592366355233827047132225996882378993697618580509986162052666545630609448631317928884994183710155093914265126237873817881081247374105131957026226900149588635127624555145370706568591360379877694391237624101705459873535783227741140771697621176948636982421033905909167749696262892907477256041826748035005974282176712350395977259562666026163007026189321786813000180785766903922843800506422034367086924650671033039852787498066337779624842418678205083676845769146385952977923174990568825008665822594633693694778291246833175887416281713870253906643781747513122116231798430049716906042482642623040775238747400897263091143729989618301064626944622614410298178581910932052172070869260155231717793744371277468830313140197844553890292173855353942343682277163710237615019320837872383249283548721369300162804475022778931118612452504494665785397710633211869293890015165885432046131056218914710532556161563922325065733765964751737400583361533595378529526356303032071479075267822019926832100162916678876423584453229518169260183047371294107653428774986096771240232437607483568955235219467299574207637954948235826652387594439828825253428285070606514675241024204737144332712284726056482595953997367195182555816457929996163124339883909323510327918720885209584445157068951703801063506036262737010296271120777639800216611688393685823607923032087526189859510979147606256892284968710068336220873497837589075453697313406135899690072795520895642160552662603691617951118663456035905338890874712044756527353419476082557003810720824560378532820224987089099222023957368293327389647113179975646820549673693172828098406182750687428070655247977608013557371829777687625953811237714166950412850902388251430570448493735633225027654065470016064799430639744639218353445958639481448482486206371180508487577326046316353683432192192885576858706040740315866231394581159785091074356930987250177028132032239785398113482435442593492612939112002938920757444118150176567559157180816948858015949990606001099089350181184106857998156741573811812769803027864698524048280492553324576095681210750900560544457673506390654228506060836833733970616533926857248052307838562761875676965726319005430033820597381359166654297581933699385349333117076725034377736292974480916297122542622286383374107848224413580550797967076585572535969664159626113536519864125561890827797468347466800424113214795139759606254693165369930749526046840336896433290486928587422572730908663893065987177708752952360613938916252097784794081747336705576834374220200914442474349022618987048190948820663773645125903424930222302518412826221519060475354312905653140367786072393335723526140433258066368670560675327410638686139841507560446616942625594080212079729131225666738034990785103679387198136534231867829095428520945843466135897623966578721301617106477655702042606150782580975348585543089772007124356303726639167983738411826317198933785287870519833098178779095809571924557809678135724062422090953341022197039271534280099828772293788930554321338736806471748227291334630902195836543180469270715724655016987855881089154845114593920699535681276375521370381501667326439725587741177626760995446821686389669116546125290794138665387916332262186305804136253499621655376917027455724909878668936386863837166120044095655017225751600351343789371765713098138807489004034107628709745101002783465508279809130513335390307915133246345101714773417686048030156056274851605870942992897636453811138395508010194907883107655788154266664748747441815050745409534016832388966548042392351700820240321090967470137994188402395078699517202481407399466326424414446216142749280544947462488269769690529681485741643015962075695971393981391081854737222820657582097581043388377404139180168183407900581953529483043589810964695280735548851811376074520123350644740122848538875603580204688632697674480302547432253491487137875650477921716019679699735952959758972180266935672551545209264227928935840593001743859879462026489143101780897352264448697180309646668348392096363199510011840148124673074684593650055838363149889568605342452606210193579186076990409181454165250201738211258408867180159189559887647130542923499815069232480942944349899760779617627535818103924576740290472339633958948653486587577781101628328326408864412942143520836618925360066927697845402424738713152025520311275982059042211113269978744417972051172385912767973321748361847446828584094129130164423549970321715511309368543199302406042434942470402246916700511473146720997533714779747344342294185884247316378691813479560129518869993677629862799851400252267329332725908957972489896678025906496738543598168316971128403234901361748113705703197416014633898192182857493435339595491773432439691870054469871818418454863664711106536691420571842128921792686761992059964720484567437455470168599870600736717036268562062740018933198128502157251309755723813971786333226252560471998570787492224213392082639611062132674114409110317873653565771000819514834868490170172233812342740779477319137178943499934711803853733155781346071844045603887273337183185812515097809768326205870839838147141937830455081552196626512608306645590756737949578113776843636150184269384830629578573126710403290386537813215505408106259127883622220419935925439018392184311468969385343220500993914243841149523906387067981344443792259963987210768476508081468438830619769282388588551054034471953121860874534246324110807053079777737947370285585997767174983943421192771842332393106528005171270478056141053253641228478258660183724931973008701573648239317631116329116652455258231946446031202587240054511425244053081027745305801499892660283747031404065208301704017751865804344591374370756232380494975401498348405191097640128316451154965428883028729960193900658144215400946067025515463270254092734905203372647763275789063801479593823728727494836763084101495468826448180345082737839884676659198759655515454982553593051714666616685630373506978732705797290352533246282981989088013891301232496584217999729378341649797559846525953176337102767228118422337292846530882486761450426550089069766769076270321622912919267700570741516470346200180217597630089787346148305697488309597441386536215553398098248206886748685968146216593995953549067574771082241877941195809963621517192743283467836680124761176553490404987846488782621386126371757374094660215447005247420839164289329900697103988063961747097184160178732076378690575903926259100835069760293616503997508508896349034233212577333691640023516628943003534921145379457886444207361297443300585807416535805842388906229884847439236415870857686764839895906271137314782491723854346960370356063810457749273119544573008917712157346902110219779240148435237069133548274437287065830966320590238870949847788545686198564100879578397472258875342460422980083630540377764296245286625199087150274777241222596672476526934784119304412940934930231199460291272315656842452235908268004279267303225312276426439378330865733522970389862134207881156421788786260340001303113749119128147602732580741263731313644622660084366900751914620707300488823792299849593020774500722067322919712761476004090757068383031927441059239035175257183047715613230821224634006400756211838516262506616563511016978880653437435211548078372033800624255585529536790822690424975614522662966893228368495737008441434223208512927593861515687777799291121970063266885862735358003348289982431592678942452858044424472394882841382497258377036410859887172015672762868110575677335324459597338282167384424054078361514265402260191767896346707427981978064117933700785009160888383655986595642391569965786463959679821921864794865290514618087991963986822504874883922942879259826254655718246594315568646944971015674146658161063173483066079094294711922153725628852877090848825029751043000952600848504978676522138724444277184197430588533190253134502530222121213696221336742676701130116674917707524375295432885282842298863294658033577446027081333026973864983537094609289717310519748162740281323249598057472464946059944530529754411368549928465969638886158887387681396339576814195490500451866802885694213202167906050743705203716233714186882934129932524670269077510649278264153305697117594345395965087080085236050218693354524500138168658754415001623111748153760262654665169995422521264487838187723237334812609891630352259412456559108610014401162860521361726199885341930070884858142236457259630319240219521176020557787882102984154611064033707131122552850936825105362723391340206539253251460080508266249976852602417311142074600710134949662450790596562211140514701324684978134512537655638494126522526453260721392494178651889623381441984068329702718505930284785992118062259842052612109004218276613282071575565553001365187214689425012435724140119077706335389180358892927507990983249361867229386357505535513001031232151509579872872739738080371960479712658658607184765197024346121034259998911481936335691573788785736935012871564888300438747016825364674374208031381514737198344226845484120017082740164449606210441431185546543863463293145019461763782212266884867660630608310895474590254176723421234142581714185573680692787126274460820722601599467809933426822698304212403662223434287902200624029528393018804370466361691179856865395282720457164228298658103542473697998743287884817949216410800877357223094579966207279900195540461064991373054012940797517005776827784428973024217688885731544636092262499179687399952142526357580862881072524253746436830995880431964831297213961334742712866466031816096413090925969069032793230929627982117010521400065182188981102270737335128273586385908985775097737975370940023168995811842333397330819676921731878885604376795307994975164270746250168223406569776100429498274489819508296631407704707691324440913271672062336199577371932608812365922725251387142679538767334654244889917397820550716583776027916414979215409079892987794106863636482355376650503707125659412107437673662775407823753186686850371873900554870078226346201977527146388277946422783257496687781895299033593098303455086307755486859438721130003452852748401881867425688924619533643479096900743673725460519769080485418366892254969242696165705384411682651119001544453630087611845714671264090709159912849592621352049533970243704696745716395089953870243621606224470108381919618404047338103429511200595284818789183833841398261456136831359285382391124462738897591913117316842596749763392783005415819385724067014745440875441612766088296906315122059243790961271789195192160953036796301824155181183074483523355059171579853666702995322783916670876716083049304342352377449319213624807802681973629469254075403768560129978449098029254546080808097301288554047383600324006649472538377410013044145682620935196766492403396287099262125397304289151167988552715186170079442217155506641559526509815435323843432913478150519132495344069159474984927195563698954959147830978186069111763265772346875924518069398426131994452104100322389365602729412348996024943479480506365900410169561413300862988263758075163109016743156190649461802325264284839322722735386732838258168144636356153467607122738579068331705548982192153791675375015512713743767823039186364144982097596580968604992721099153981988450876002833672026167600192890832202477764632200469078583870463866581692685434490908954834832406979438702551733219638404442021969961118483541671868624519850565415295286817421525939309182303824708857624326767821620905861598861373445628799859520860186829093417201357839626718383301824252931621625526117171044359016118672870219288735233373112307903349936594493670295363657120355978119040053814520706447772081759637784491575316263116311658735435795794011942129060685245927174886104314983087383038306224600510720698754328267175581007559125452781872387291447136464199660213849029483252402252269252751704701050596532735088782720274134599577631526987891916439504043525630217397301855658100390712098096219653964811982666272048210063901968060724629144408669605712555988830702397105678191648432965133613186686934389217122423548219899467876078123637133118822715478701970245769584143547454078048711890363744110080732453208678110243387713024690950838026050270528672736560733354597217072963740330654062599703995809948677652740651777263616122795115524020783978040532202658932141471181469488187484487065410278516789604888447559720742718750747394394336195915757716838336590095786917462960807652550640042308900081221504186300128916879614026918968534647668902072037165178171517987665989950008311787747256611378924059892208665510135425336272764447617658346604725246381843055594399451821757615374618044573786338277861987428829650241367032394290988983236893528089096730539694967764002540263920629870620517042912954906477533385390328672553994611541495051984505685329636047051143626712987356001910088156253139132160555210301737227848650040990037970171695228590116439747301258311960148810831453960726459259077256297123034578484859060043923985782918120479283232080934925306546735777136904484868098100045545590932084077189614418075017537735576288879132176739374986443398445331250539019257715408911423676702311716503758918967767997743028624109202801634702081653569910433707747611279102003402455045720284562611419519736213002271689328067584570887692416623645305158754971018743737696240315176612752570600115396857516179977710917995234426743857101042575829183317639128644114934208900716164405474459433207843662577728217966591359058421142655368661109414764717517585268571994730546335258462024969489762764053687078408444666181580438476652288958039433274542096055486638304372435986097761877631173294221536096651145546363884779501607341029726917614598673043680041436822369872830610573657282946790826630279917030469769932543732181517009743442359376962851560324025962250944932417759067712694293921738508668872484440562382822006181291480406534513692106464387966332284018511997983407701889147983426572793207350746983659281212927291832141757517777267302719921551463089804792819190153078501423588664916739885215297758515755854343756641561744869328176873884098810662258458133798645326871360772051293893911205609373722504763726581972009657823503445664728648636785221787782458190415988548570454466988690028339299264227613874047235736407584953565972295487166905466434702117207145532410388607803813783970179624722597467140052431830570269809161575169533931593386040823047915509557305601223903923594209355635659042974856535990180361401531465953022634687327498416011741420681525557340207598096908786994615254474905536702001244261834901920051322565352409754713614487624686484564113181817060340820018908758463196928743784294160904999988321314049740889602699934079165199021273751067655175328855868570308717050847933001701713137904686340262444686909000886280019949459946810641406620433361828219584356372754151623468308442632380740932582787425787346017608733167580451126218906876166114195790194863791088529209044883119141463807175328166103702667105922876912711885157500551166819737133820632411988871157078466173873192641570764150767808981973387026681770891896696515999573728440371155498803062310781436468953632021611387823025378274649956842729398123027612257791845047868099145328051768865051509913771578677886796369155181519208815309620876291150040504692203401605761926918436383293443864608055043515959513139825268395548444082674775683626645663120743231602782261167604580600583350850830552781251499813862860340011348354510383484462432541233835882776241467248725255888048368406273913084845245014831546508205634982576192158857107794732888168764710307662709637731894224821364976662368171177269747822716388098888133795473283548654227638628057762742481180627179770015880768016136540237850186707388275829803875250341896059341538513740604058451198470000031770918650100605317556574554665223010818309855691367475515008176670016330679596440351824244080865981206133329099719599777931681930825826251912817614126689593079049647422200990335891115952842060580582861645625176512201858947455291740741506865328525711753048820979394320546555194342442206234151744302427434199304203294812252710400968229018235900147208036348213599586405565914785274781562140374305283801727593010369415916285750086434464725504003031388421017657249352196058137967146790449862420843292815873913321204911351900129794666917818012488436767824584268234575029781477554489687711270094370616970489892870479041136411992290160593492926382642710103122235972100862202863799060079753303506095967406733870544486319166339121266734973205382309337273009667126556329902924647697886509992190394460427829301854481923858821188743984308363363926547858801925299062305422392211986415059854425149568285895414681351789053811984802460166969389511170365205805896002972232098407751524826373452817991884339105391701009705809323866667876315017748010735738082363411992641922326836383569590913106210802434519028920681340829377318413457180072392246581020000184038791057259477968583614851883858446230885428678050251424031916543734081090925483969430307503961896254939401000585769254341030258870725390223273343832753062362788824836915237820278129539454265614792815365762316492251818235529470410714338748694787986041485373621980588422386030384099378248863834963249704052427522001757518205694451168170240901696457505292819611176626810692299774322908984907158615906635142255439502176788514252723907078866351192937250452584208601162346754653986274398777882429240184123027017635966756615606717361825048535416399149976820239337665813654313203205130568286173367737346856256878304651024098521600470164329308311351309533852611955123513346545867567040622154505004926965647602278300944058747207103556191739896628603392215798439015669864922365330711342500235186547049645000034156337471331070339480994860365102129927012711279681561084645192400703641753800008709146341331710980931828138450391259521376556477650494842819662633683704938008822826215087440967255070766678329696763750450741526224197985300104264630851594231156887964621668244690988410860940539598096601132490717897910463529621358531672943235471094629620534867089218942757049032782128628102382907449737288356128901079785860985249448891432362401362779822086309709276861715702080589834432757349293541644844718636266615265033606057489684812616054830170281658560766068937087486346458865806906559507219905707335556012943083668437545268775861858693116134222512527644933662493459918131360596763914607964815821901264415353697723628443424972584032383978292098728223371729722535466905594125092907324573850410106873768959962634422105470242226778566869157524303525836561088723198457608397893924227889087994956277015515631070413640401695948551658058493068816653802594826455217029706430233682567740979260342363692853359629964551213068126663074602370177035299880401468380811718324485980270192632631188600296037442227610676398630537040303680062144904893644243499696224292233271586907751330588567299056558446328805449968987061324237810955729150525871427088996179816655883938857416063583485699199726187809867559333598537496586929107350921283211878389747494242985461695082304921743249133756392212459836928602825242186763390499797305312639725542870140058443372081692005775656179064813275521940205150640572992052822664229950518404915293063268375463447223243984278593330636589416481729879468197545514125794551875741537251946717406049626355527651420075359890094803258104046831992020267990972370064860692896431688304101333782959636145212403826826896393626305548455506778578379571341334933728074882699938748902462530821787846287767417066145820462621103814664525747828961023880524205318886597861743092606995554703521341562123572178703525046843204422444422844046479141050436158090819169313924114409348611180086905652387622342261787199209131985532609971284258512200828654331294643775345286467619207815443204155551389562925282817420425064092166711465934345971229924075833411817799405832434774951899548430614655641540800174884733307331137468663790313512989841825880300782833297207504558187811343608787665406972845734368342946840491648466349027376298209565328713944107158369239157895918446666927119440290246357075818838816926589328608307953342211882988536622396725300162006916278003199057990008380012266145877900486293474371338396202237870615311736278351215960567431240174463436878673172608054527365356790483797881665831862316433410404464514061820340072731806726516037923390539783115567117588210507358085819928075518295671581309308667760590922992907942362511556698811864856650484078567015805924470398713214104955077407717294277848236194303798823025486798264738680892443380115730594125511631515410083505709847885745006386897880334275734209502167399316931578996013300128900837383105609906503333022965796315348819601645805463247526258072881886183926435698626708940532792432301629723154758427078662822155896212468742775765086511141686466649812340245630984060098815543016120365942064405299941790490366030193396334503592300943760722909801956899482631313867501430138178915302689615290744862457696231541469845504162792930227175633943152942283622107075247473248404983171255218761416024146051460770828993617849747736710053205304547771611068667548321612273965880784260369251600267057652082929128606836501358408779298386485622048386877401656244235340805080971264449289205194528238003385998356671348559115191994242407128990913866718992112023136886366582608236343867617814005904678089708350786301782180800510524074351216385547227054298455068617638230710417886449356772549540427681317004287547288023723781482467168536433622606407567252341472004928578498234754900641936888704510474367194090463337299467460531953495872456346411027758598352543891204317071867114275387158455466475686720434207288010782602921660403557490805810803180572037127402343155764857524852052438801502990758134816689220145075029597635447742698586504941149608312829319087101059578456179886632532142308337647158757425079541771710913150411599051926821159599722873073056529913827929993308243097917453788057157872919481907318389013127474577011086226284647664426389461191500478999033856377457841956912377628046661176046124238674109482350337011130737516712160412475804986545952171577305881439501214867794863686512107802420665601616347960871634053635132374907584233489104713980861385940275416605437200770663784168228226541329709025130515636108243780250600571625359574474680596941001691147634947292583525612305392843513125018051172067940645758998338475316769682609309981401635333887027445051896542835779086038647627516159291802632827396786597550689990188501845361707038846204516010540665568054014610178847597924132910298195059014085469079453184188743459675809832761274049019662745422078133086651733576359314246024432354007873473572283560546789100769629332410895403253930369117846308791276124532324007016237492681927709960040516693218495934461922810226320357680479980121294571622059233369248979963824941712393678091673363102645203565353030940409040002860109375195204083260616895958055741654699684067058340223128821172335212330935574660341305288688042324355523624723432826468214248363644690849691550660703122478903084157416842707980451463200259628723475063835953093501725757407812763727324967912612133366397929547685216472963678019982985189808949577611512597025965078544215934665665142326427294922548822510528270887073678920450200053414697264250280141670011201789747561820188602930586970734963470296575249362759253685235789655622188520543262556377827851081841949927648878875236040478740118025593700368725441922019240226974428199875700822929846905551734877571338272665953768191862747546723182952396889118142679146109974517439847895556268549700363567353424048886906216108379911792087140864383516761165916190660214834124948350144344239697823676343520796319123480288111409441335362442635658705765119005313789785973912688457863275482513730468526278153587839906483635768010961747581649932557181266363726828446870343721488131907660582095540520280236667472354165064801049062053827259135572653576415182534928789444307078122872916567026415010768765325672086488861755848683195506184952047780442858600410335556502804979004136476272818840261634947392977289241829717274570310045417281880904370214334387040470038280000662080655780792923892099569608008562076055911144731717995239317803103153949748515184989830075825308119550958634232946625947010473622656599927979457684045288814729260655482817854040409557689700065219083648727915266588550627207734123785814446029327964336621003434171896710509526668161039082392269034183812935614794011447351450913279665678018463911141400252057516857408338909931152654153830488343083719653747184726923786895524785601510216532993467414023278607211765702817206527687792974685127413756719454109607350721536044170111244523259907608012986210980057523234986282375315455481591581592644449130170304815606031592816405762187648965802305430558107959091277275291781379597331148851396324948891603982446448674068112664391137450871510353605156304299530562435728513578924510529539780834417705324436871577101645273494438023077257459871522844487515625735728877705234972524934526395604772478452765440683004754197183142194411434760244304095926577827409506531250666617839696430189857631987258856781024184307735831530234932034262390590493043862974176988770266685948305189281179977767599291369214988457860706711773745270073087401336570609959250497557332619302370346234169630563988730647980674282400486128396555031918909971680424747509347814273391200354793840226873034886365038205440525477132379382694335126557921506862767493042226008406401925390393200749427273473241124309156289091413918655676528078270511616163400185286735368824212466879646618020518919865520780709719879240729780382280770012380506834766672828615073796017364559274933586544665922551738799655665813089471977285362314287892424681045329428691164796153490909457636155801385597106093758372927792956118422647218256523398859005979113409635283382393753719124560964804042092245721332860229443470044061453511955070306326181965100006264580450113683197041465101438996129968113496676551840081595350483392484255442989748706813647472218297221933352638198888610650770267939083713139672272123219652030451112118761455426442439576098307765963562108144060454151295327359626213272107343207741103773512178595633335915821450526797070259868859924804719504584637155995279835181376952493505277679717727033240209566635145751418975247045590245657676564204945359529652951827467113236899639121358296952701692647509371336642783484457226010328058476320048102354217212287630692702233064864828960689583539015893183356415414676085588288334785623804433993214212195745466317478205779691506533566947361767675966141655785004943491951641451291535580311475106458098528864098484832732642289366428286263447949064686271317891588572500736192299116648409469112303954266682031739598762134415249967713402306118347874521556353087365289367592011925241503001071679964811787225393685587540152769276870286549327848029666578460921896869759883299728008674141572360437494428766816986825987888412173155589518890216408030883547921257272749816320716362554319886383019804379043800216644799534834941149847460478472600380724241627190875534719684528846836540506487728857417742408446411227353409317188881468406662760742140809686360437126580337956275700405913287590464259890564627548113450596434385421688507637791167401456692864521141733093483589719774050105390165754279078621216111360886112758195205853348388947263275696277192054398400359192210300836828314938022092604222742782989158892209455009807615732867910131804740216317092296509856556602646488959431842380176012077299244460830237450129457324180577671144473067946837597628489096495020593921486582850726569708044845875182531251199301991020703017321243315246175089657749278105978401122793542590725567943419065857781052141940092789951368695727912818099455765832412860355138919589045496780973614138882569888339559112033179426651272679829807849120841408102769819175141243023865324687558382839780501832410036043592194740085586605657504716616985613624741461687583681646049924180571695767636848902723924269804029734049847309446831958170203115043854786474877966185762193164852168688294550903753739696788130793959119362377658275746064116066873341370995625296697578657782501547532019925769861534731692672876314401406870758831022361737506099769004582328631330762957829860258549576252576154874485499687688170350559098919537536178070363212373687262260640244229926466871549498494324830534962035684353731717673938215969949116283712551077579540255052192913759574855746146572992929156085180719124434748074019452127248571588822664390244080288522768968476038470923824198069873487431306674831683490758058045832373330944565502156881310309840038405504653132962923578076797101324552693825708145840420667369155942902978946339549592803536789077729994314600868402886832488016355384160920106473194319559202855902920791385977299953243127526131739795314707403990759041453212878994774005396494695918212200574034871152016845870202021316798747382950469034126923135663643153865047475732449526141023133911941048548932866513555626308354803660225159639101008042580321730455037303663744273334261180430311630739377997305349796754020925275484654006996261425477689679959338737531906247936088294489348383262531749277741679989830382190220741126422749109558067552530005621071593316849713432956330704292621825350421392830677918075614292254328289167429317413340361859364051821578706202035561545148756231363372253681469281264834313118744170163186248211961482483515126429661952040786796057931398810714890532918924170313138142225314226245007700557211597674460314498348760335944099595763704312746178486188964261404979077741560830220837608259719312357041846441805059756186506173331369780309428618022907949003564275739991864292201689274930168728496634339345453562438327403823010587562490611428254118346371874624792762913663891362458998066048700843090329204384545623455363660874194694844861219024011227719747057707499572313026609913036039229291270353606955425519302612767119733493760176775133718590677340183018458617439433555794165960376007438527848188432274521376946996417513668278040856939121626759427811263129434886285763655786474895589499810298497130093595110129447301631007747032161024262109300942657921443984171912528433041406391532734550663774412154290138297086703063676237566592068941654321934258414806492880565396360542395865124667446176987687751341339206687552178370182194507488196833675034438683106937519623515028386241605036717855667273223839179733157793327219535370202593637040693059261483002814819061058745009241437221809307033390095069470974207156508367010153146681252229149712614197974859450771326168361052674513475692676674716804703660651549310595704057701285457049529860117365561119621112280944971434206165340456036315901714147114049167208080328517626345154131315271528087829189778819203801914032541524775892968202680674233324812070292950471462960831784928661244036656809133060787342920923808087686060137177866747353213654405117256126154702921779982421822660801807537156378029123011989420734587280493123381857209058393668029566720160388885260394706722345831632715286415873831816161894725969511205545125749553453561786827941752713314219348569168911133541994531255621557671031340320689733602232235951339250540456248615565698306517518518565387145700849774148224808807013952768093791014531247626967833958699699821467304961873974498720412039148086070191902142939276361897416978989502829944128366873596707976561952752722742130158479645572977851073895316496707182631918990241605951771188530660785283339015756646721541535391524113735040694137915944396655064748463174555037414316435920389453111550832803476475010606211160524787265217823188906522169480160720707775048501209338348677813015348796398210886364766086871875360598838477917177966008093704823409168320103176539859710142780670697447644326601710542168672114792690891474241296378358914393712591506388295795319063714136559888900265437707048368210912900438129956200168710469328005216391199737115087042287552922910323478964619546794951470761818213188571803250521870389102766126512793551267021759608285358909469934744590237484109210507472756243329254942453891941284059818038660538431592861240585724609476247909045898911386000371397544810371786300070510798621102448157373922578163332671741214731802877201800288508469146656284183308223151341180815103863589191555942146400374318916593199243596954811781203405050070427047581895123252852394169300950171146998889735309581931723101046148728689118652482484989419757008616906025234355184497107887747531513964967495883182184588544086757751421197474351638279284890609811959432104266263761744539553883020889766648736570399427894831459272298426635719664887425599668574763165810618285640447764970106805016975036580191443194733714329283712223082074548748272980553646547519589332709262218651600273057552805182796208455043775324698647534391271268189658777122362771270457907175033825946769134383357664718642350688622593751549003649081495152457788507554581187481671050712786809614525994709536690356399189136703486526373355469384350198586391898388122923097595374450902247164036716649642654050478820542257154444292856946150807404349059324702294830882914191303212222851042922341635889850879752059681580001959046928924259544176280021506018401354799546122564253288905151190095000830103074293192802860831320763258736201345246689600547076519579728124746490280026108948558664146060234520245897948959060004582549012389252695119496725322898050738528454245120457758622391100712236079659117203801602189322195094286288972320638432035215331143646341004518162520499956886242353655674574438578009762450667085392774750248919779063016290702635789758408234603760900831531309240343363421839094773258993230127997038359521974755023908535623829824749904846079858021601033332149064554547766274116238235082139085892223421271284424153461951770806884083031259923644429794197293927297661438676433806458600069655384657485030126876026180446039526387432037457177508548245736795713925012288495221440988403967865906360344714902256709782402206070330587708728409115553934223471489533836827653163175877542406760815856214694885354339917678899489202650844063317365357570281231874015020355687416931527067293972528288552108649074594399743522125015952071154579531649552579153815232279718396972782094493787173143663873993624127384978288855605482376822198390725698127165384687881384475449840598865233450095686759267056797779331923873057126117703491681660596993166637635996844130898724573159500092320516545886654559504929314362822688696088998658924045939034823984609785429800053340924203339529255822344566199427737323535395492081473845196187604235722198501523642824047606063168424787392951103311390845061378689666420633239830183791710082952199700972079607062956627162521824588710069627060813013034060035725199208567747345333911194469717609054642552239353260586316433606338844357106074274609302795680203999859810532317311791255431569683991949456277261703007642183283143160550010035107330085496854110002811955401029106825926903908206755161151866722853938165892015222263699980345208453724139371677752884532984810306735467273434528066332399057102608491811720313816436515261925691809342037181876682872197784197736048410365291959100196300871813919266683900200159655468879117077429415870673699164868166731479624082106801768262815839999233080546983468541105801515336042642033757001786739248767649330787854284957315466182130129506590452941269662339752280930470099748368372793026811282375840174414970575198535256620252350756586247471976492404118158876319029536616129264842089821916907891730348102261510575561149861266632062637368473964793902142313869868227589202231674948079354064337786736483446864849735738322630624559707537115165941182779379336562415010472132886957192289398717795224317932924244088779763904805443349749635816820904331449073697702902470775838510693728382833953677860000646974267058605271091678044441809939929291290043703668929562563633791493637147587588400128019615190348732910416386353631702131082247202235355129379798493667368441262775191241902760714019074467494535847497611476840337455927738653796686263687353866544268288249426710285061549051616163276155472573342426199590065993551190856390992889833341881218315769977933118180713198050343724955146906778186083641361634604566563190226981934564229909257284722749524973065196974857927577654655752313356615212776490320408952041784234089441394854555436193056619748829239695711530104502363487205046994310569082704985457308724302330551369872399892106899517811984258660948364236527274928709010276616602319785500100258812408399746346446533837249394484360747718483969744783826423730484458099943819701241668617437862492655523403595442843916531120102969315918062042942425224874581931303566174822267548672801941340647704195717426453835997115375992632495977241896317831768663986010759426675767575204874205320191090050901494840210540875571370908126607653673552204370209069515045176800933046527089702992823849806989896207481004026268592297590376763101237522912223747522806454265276885707411538199334026044259623704601374145175388183503874606303564528631305325901218941070377962090583135993386075324032780222001779543605966179003725624859296684242584868296676498460426675197061419779822601958812614535014938218513331226672264181643095960960425532913791659056838661561223695168535654979082751005105977955912564276128522339684508169306115750048217543151158827832103048026436017045446194528154318179936849909590663997558364370842705380482503331782982123841943088390511518971265531474297184055680698764647607565842945985536614103746086074278347446200891818256003281454190616408463274559186297578988453069815938074038512300535390760361282039032806127117155169408938664975550532530951926843572031316235890090999746967775503046506126658748148576440373275112720473428154932451090103456340657687783575812221253418175388672235736769691430738098628194360200259698863578201505229104548501102422583816642010598921232134043797621364641750212404391072183952775225160976940675399551465958761138889177225240521504027201210650882736284270223740643721819793986734187919784903174955176975183552292426056936501102476377804933934884540895807285730370360624794758178132048236345663083294990415061591269308542087560595004118665050211017298889560377137622252441313177215253260082195488999443316342918963639390984841524796099059938167891845307258940833071720850590506026493926985634774275498624379085204844106256887538616820541842665294283616760403900844875495317075040890574042621612564584010600825004186842609739904999324725696931390304747748748432935858140388890146702640783153986000753194502846737008816343024163809615881575171934689783030150953197121377361001618312322857581481321221109592434275730932797670863520591548777908026830546438350664059722845967381937520129745809611699564959654478015330759841948237818434868067275477702599489895542781284674891342300375639183192754158360270382029443311388340457783235054238859473845353995302333732426488773770374841673821058148313341770621775060859290175927259081601494693537333925201675363633534903518290734562692911761313669802246721447141118572100857574435389605700244089004048815346582978064374186777054084105786920800189538509943294903845360407989224093744913906210367317609065276996738801151748641412266690586749286732627072172695874675554382388636086073275355731020305120701454523512257535560040332008779155764620567677251186267267331875589430228528086346455221346874898022806983851363336641338332219910731251340727814024877711435825329139470552245919286451729234215488007186702851049513285959754833349346466835171381423455701915058034203316550910405225587256005044057358792632736472329075213599943795482852684378149650156064254341289216271033074093159659164122571854508371127719167756268470694275421429653838670206320838448368579150387343781689164277949107231861007404826814804145813948290736571658813804089404248456162316192778187083337876387904823943966754175728963746760479652671744886067478737279051420976275788613683684171400441088815559385369076357790324801840754473281491110083408315602396319899607500943104070769433169540720685990352837982052215563022569188306015648957049847147243435668934023256539104162541003561638374743538531175790641193212845642675362985523510319247432929048469385334251493028534738911118940517181862416229805019086589756326239053488434270033095650479701005863031159247049773473137118707956251844258944233475200457953403011437671348731319624579132553824475704183138781387392321502104309112032016297570702944272603989608970467903739825119718994908991218233140512294674807050480852942379303048966770162488113414878000762175146772215691867656100018983202098075430966244916485562432456244937035273045327722379491241433555083945445501959313342328017850863470479959572622672809933258836160321071632334240354568936990871229204555827405768092528148711040174148487229110812406461510183712428784252144261286268902119616541594794302459179733863329051615000486755743514971854217118983539214380593422823648827980620066615470097690767682668867386512877142592958554684387586520271025414389563891509096475654489495583394894482268624352704387196234513280691302509985332453887979438323900606614445390759033685182977052181776477163444996722518289031425288362991439879382452152460110971934260711182840507863832436358570522930617073166758984514432876753070877885833833565622670812057253369313508591440485502370781354342235241552829357078293427189576976848940125577708309039532702322802662981551725182180481963376115248296234495684915480048638039056183400328904227680848898958938874440764975095800221202199982858804931112159178984162011935527185104301665766494691713893600412486619972200415579421229446214668354209322013367438980560869022587047708576004586412290579314983949643744819213762071923128360445194889659637197811893384404684214878989152905559710403560957290793482300859938244568688487784465301144452477414776545914104974464498846299435645243201596653120713488854988166115168527070682794058063305900823772989070631411800344644978154434435595045635376155967515239599864027618837143413036125051553547578500780736935849096901991115552487530521430840734347063729428115697092821308708339378634386408033668878593525143014181416435870575887091832885776473350073604082409779038142209257263374584984543162057332783261071147899464030562279857097150507315358622774067780935215181477804627254378155044504131384703541324478543726151013194277557464687379068687700451628407458309638852229490130853162396956205440576400725425424439819496363544997867041839418731910555717635753837988678251600206135869904474974680454541407135528888165518693344087970744783305162260632205301826103202521791813189189356247443757548312022636943781474875637234906562381000816512778770723079364320254455162819790258366612252568115122650167110155843520400528877921302450084637747166270466121814868814089754553673913676748677128965372096920076755966659980404166809598455200196980634003029467050747869170894635535496952630425241594483572252051841757222418470115478172763602712675428979662474688996537177567048143474899015342089899461875343934279573642864969635205922162147295284587018917649557520562730386591253954344555380784545127665436616393178777030697313232546079490084428853837735905193782218060760664346082447290027522249952644811995648684029083146836607084410390112113412628020004486581428994867618385996517800721074404788491680466772220504801352490068765395061908715810365301149613002254126254984230559902380354923026184218617754408917607806858729546406878635537675396400538535007496555295312044157125754616480025175552014913779827409430167277073746479790502167965185211097953003393087572495171219350670746988502961992735595466573453389178963690446605912371198120059701689799397765651676522554315097447472084056436367821627899829127431274338373859558992500494100153268883252639804010137378261560447484846460348976068968052615468669668641649219631171362908950663540019136567944703021339058607261532259295008376104978609536659426240941392050636138706449561767189644510445992320717939830996661071885575302222359178249263093102259612239322060229072083634121384394677374121279834957744285513418313004406283176055839581130930992211323094249905948703603943502963492542765063456722024052912376944450294133534246105842777699255163625183575768464791715302515598836786064712592686746150268912187502316578901371956352192629048727113463778863195076237326589500718210649821745273716219414020925414934162292145791844204807659687774494905600464485023794192786328365792372657954240531599185825218099437794546662623981929281466732674686335083774933245628947454753107576227538104610402657627658407099258849273395810960294620215380004454933403296356369991941943533064189983733863803855436828479238632035940923407548036352641666601261320977394292142694994829167283474784602124777725703970980748639931999948430000791332708258150893985577857137901068129375465258180040220892267738086628488170169282306980086643616740777698236475421540219239670008548734984709726782631186860155749443817311757905102311841572601535435995117732727383855701766428119260840243290202551233426238890823512001527709931663201622369967696302042114710025373826580596435894901333656683142505986853770406623154010231074467336465084297019401374897648823246807072521790558575292397771736904306087111188397129308530005093976279342028232923435519673884283953827312725874762121977203720410353973198287741227919337612430082810216512189215182482872652584663137221242909008040297808536401479030126880078699573641715957637485831191199188933461221823633766304968233582015246019653260328309371333229297640352300055551882827444415419076967114954307204173043489897355064557624400066853256081548065202929789858654027007095355930930970727001052745434450582515855750326223692593458407390712128772641189935915679432540072583850807273243919457149738800659401340277427043395650880548718526365320552735003160965992323661878584172846399882960415445540337750498914277467404623787290926826845219298714543929981442899384919973222703850954042950285080304499762004974974633970189435044087596584385503699984430385272938280744438862275818376193305784725806737748507565313912641206617427280933174586817737647284797772770173173404178439377358846837342678939345658480150131609049323964211707611409358195055028212995271434778204317767788960037843039121191533149840582933912237340509581599396415307583927997168940518999669777514254253431706388965708774610044378379258754717818112864285066821373543905174203084996652934543365940122929641119097164967633375271855450785041806723006350905544712794140976720400673005595657978104670271320995504784214858577519789203529948993670798606452501397306611871955384423512594896671724046019476970632120766317531462906637116572884062341887181963235335347679203264235642907294581319622782210610774150361740035968333494951931599061934902434304235504663969302908224467610108183675839543342995464995827249250691714482195425397590405930457501298446657946997084797712849994639539607695893432134092983224457716884899934797767850160862697842089242228941450109315456288911371715068851434692004791152542240733156735260361899263487752796683495989673432156717662683003278161167850149042782597845310185202270695819457102949631276803125726279976675222965730867429368119404651283934538522791320721719202251151105405861310030968215862720483787237746592948011118339477262722274845641837629423803195957903963416520771011659510265424392742756960684950607777651832471772603434843953151780223113393516661723384660431470800821996958461863463105462477433403130104386665528046992905448735179149058433065184762429363113464014674755872833080810392916521283055509963155587686971263796440134607075319830603825270033195364281206047052273314953450653420587414808241113073842188988210104429275342642981301800039184503889065543263116017640160137277621409259915193305846814871829447276828827401762915387412853281423634806446347206738032531137093298113942828971936767203283395475063307862883622781802926785879293075330231076649011617905277472939214242660962234483147776003334143062014547452997802193302176053574842322735254369342248240190061781348842849340669801514995923561622686596595409068768677754460827142436715003138092555508195283512944021482990823335761460952919815501120406676239627650868919250081471045136021636943803091054840756690734827933577655515648072724150132332253329407596175885961142521400520776342405036495961059494918410537275222036137567933903607053992812448673665884791401131333789116865541751465327396966002010681433884941086557776540414856931904468675141125933954570639642454214285260184505407200628202671339470027991863993758061578037281648089100121065473939113833007003571303986613031255894877203185284800995908853394739965398617846435756878961076663047572193784741335190722517417777748016996230013043011476775385331653275377238285661851723848459963110573274246559557717528546176625597952737128103684099094052336596220877160362758760170800788182770475327317363928137760718610020302640017801983946718385592346012280542778990611115643595402957643168241134713126125645728010525243684650147044626501407179012458991829432694071052777898476666818334955478347398137629797532557269252907246660096017205147861770615555028944591235806342505452647943589557494330465640754478355998079422719303746116110223281074610765605901210380110368063078851257539212124297662501462859598154451720846879604758637446261389148380554618677896429583354516989326477163364935485899339256424248023392524973889295101160706565473912770178862367474478801397721569353271849721647553730554835188641815032527696311937303574513248720920546463295738633564238879136687432381057956179658781798819911403150503932402025203323717187271397468002557644006937458540128165923585291146314710084950613409064144079445504377040929959503611034509730831574463948183576302118594686306710808638674871171951352365780019928406799060696406595278429749935655861799360399683772535158299049395986318788681632189260217293185151886388466094363054263047361179852374942663800533110846140077973714718977549758534570539565119973271057494039930027108074903868052757217349243657868145377832002844134088464778616198569971522676377297598386750325871121494913664136821493490359715730881159260966581668632004392352666865956487315820451199965280797790755177381395868104338941261360815316916061294569823711256049506325996921457938439735714264015863154798699340931113652244662628569343643261432612085085015941347299140775402559461302393151599959718687639699495385925962272677038009567929670217955133286937354703659187961080064170655136106679468681467346290284939195101790505235948530480631855003876793188429068386868081271252591723253666557036296588207045361594606844925469664773301320447172794779148183745039611142903421821474672190046027389994089666723329297276167998032217426599466277740407447526137004895126093161211004745113789770736414009672449176187514752776009661357436616773334487564546097139163257788108218316035829925643640284208966296262368898384484881391023239794816808046586681676978756934672847407674272982754930516178967089482058524903060059314506754881034546544232809567394369980771209457806250628527248628672490065339310440860266970278354046761475357370812533017579768434117251609424291572129574057081706883867939033091635746516562421169544374684851253472579278045392094363727497508201728939695726395635837723478044139094396046327172743515387226067422941405068223620659177482510585827365280110873323995142122166095572586223241537049098456396923284924752928588463899985044242491573605678295848032088206982672443631301040615482396269404463216873146274707331091373108317479855579500634673330777975651484306770223285846042046004800488438885612137968961253053374136111487589977909760759933935668419593118660747682834167209319974229543019155173845272066643018590083511406652232748876643358136710907943740067063395181769327134193510075469524814323340832907616417716909507831846973507182863285784665345125197292924691861049941434238228667510046536421300091256452068676280582717736841405677663892003149254711992125945249372679909208576525405406050966965997975996130103500356018145142663174874716091603830974278253025230331640401410904988358490835982630279168219630616054315654745985085247648429528347006815436465423814456671664558956942375393804154957342674047537760104623830716559154726050327393769509942678918699053842306615366477024763995467078334424714819188946543729604942058170764748718020561642867144662083918213408993022368515650894622922531240654343876888485379783261847073372300040178939894510006388379359513818904755352992865367110470568079093722086323574075825726811852936102536821686738631166536869283674332786520404744997628675323530345305419668728611169440916827637536024982849164925277488873856686356479006468802681355825940532297407984563184108449766733025180400910299847351050127522065579935748329668369061080698404521913709365942264175211434156916496423689543832486476798786610819131067528499922641531640033105454850367516813217135470890055733713340868949304883847159639344831433428270074857460094787595014385235665023047518619958588403820030701608272747987511018640591795730535089446506960224593754130613000580508093613558924170184778051518112610899177360410226770024338388032261728470766322780207056748197880079614363530653872068633118625997307551681229662003839103207875227993982735685503682385003470088931063811308412291741526498625070972303322679604863453043332084887706752295999703312751515518697517158784730235642314768491782352935207625815991244672824433064783122438297839251271473442107928991362441821971751474481164251873716265794909569640973728411811844962441205991335221530138411147225423957857516851831514550188226020859390354980921453799918467042739470119906928508021143273545625204375965581752502678060206217128379796037666247575540243279945090667085879115919404949567307278707237147201951705938059332261956833243270074877492051784325786771181228773387856597049539500027166213768613532239220266080001869748836300662609616177105951203301334119861226883936374834703728016058775784290596324111055500469224734752948924506084129594871668343526376061318390298293887077077082596265406023899815339265683192979451518502286498769528353192785647376067353672667929166592761455085091942948374341579618956368261378221382028408573733883975278444501278754900342029194744471776467189257266840190350877074294759459002157421334596127994594196085131013143317290622315111775918667653670361708189523449138169975778783305740848217081829638341908875487563966293589558641822999772303528072313231476017046834564926921308448632121266252669233019020449909745913746688142384229457487156825295688864894010831108733737792837783535888267449562497520498846384342551401629764157457087077378561170575293589210118432388631964738211363964382196726897559813518102180625597990205482443810331332751363999790494166391663894460993700244278796425489673139684808222162927030342822412823355339993141166421844144859472340246880425124201810407548566001669194396230710421716833889581981547316946689213701854454264751508643469729368295949544785234266994307537232795885711361356912991845663726849146380327207694890732778495411984172404089636535604324449886521223079611855055186983445101067761845441593716351509661847009324223917893752001104729198821035102536210347751001343472343457483755747222775707477224653447843843728547823827448999886747350419477878397073239203316331074619501648666957609582526826072052033900845514269959325114585066388775042647895647604251412238976032800187468875054073811102556154553019818308423165500933971173808918573702633775780629522119679486928731048612452864031755257474067497066000012345036510683403538459513734616572847419343722049525873059935076222992315707718777734308513926599008202703225258374212771679235469388581428095281185916836568364603485198229877565293890334974206805486785364783603822833567204753437220596804428053299252465592314480824967748342171997513040987193751715574646164046903724368087287407785028881687203287176456799756132492205907787773330406426518504068463656953833716388185680883343970511855276322412489826049036346743656553634316457575597908644854931881932811408399646329010864507832456189873770038222826136650931015829947226791086255638605869765474384541571150843479996665596629000812655477235913756017815790986594311074077580319956156679085143099857038305462264303870398912392910288321537422156343895192858746758567026355612280017288152473424671735100914498409093816016659908565483331112646889310910059657086348180603176660674365263173921910414521899166405106692290105738210864196990320667572070031779962109386643878680305034756937790841026391475181420498304287051893582077346744420495277456859091532470852111285871859472618573084625302495805978578283135692540972688034400851400006879328919615427294744516277973440760359246225131113960266923021786994821130241426343070765065159596156965006700761774425069075640851265675563733816044785713929897920314249227292486857673330210304033466322504123808773868017667253634022326299813441334703452661507285313500685467053124164067159264341170812301826015263202970601475711204076539850719426560623844956144148260233041847600689794500387571794093458327166270040975647045122266877802900141439628338672715511993703383458682530580094853696823074402127191417333564678332704711589840821421606055424534326947066446701172172910042015863496671919880422346200323820156024712280132452975193681896439755250888232973939638415270123060416980139384968228268685012656369313793642280140895735732070761475572891499512352317543329053571419609664588533539470954127811285626636190147578718697237379610683948747025877976289372784427590356389344019804348548266508953420522673560913666687659926592836211231907076517876325363768554799096723400907826584202013191238989174642292372785765651539899029282713728390957294144441887991680984471452289109079890816850136796732615392060821959967768307778426834883736674368569331527390104170881866739373677466176406435768165839551851171816892048795840280021113845834615717682202504377702429400086259871938282712672328838759182026056125048162933960645211218594819352526546423470601478721656395673833209371454058487350580836691909658253269139662710389447471078156698076696341525495704553226979472393090091004674348937742638556768711057088516494562346779100453432842647294349445923072881105566557566338328579838571707731918695050119456486169188104979536057217626841643799382020719614812350585260200913881486030772631458506303861073034337117339393027195108586292396712650443264024599037476680543673965745937627342626061688975490929732020671918984109001025664898706862164747251344901366276795136225708014670557553564059555721231638366441072523638630864239727895052606457217410146789622847094095399937259521202556857508347292552840133862883063534511754800629393727619786715760497974545362477460496525295972996023585191372169522589568846665698617473021943136054253203999370901957627631431899327974729621206903777114791038965278569665267094433033701817690298468254417982471223386216990726903710404921598922623514515150206942290888183790010219982659749476737902863454515936524250632508508366190734184515523426812288890243209160578819634915951791284850766586121485223733269398078966415634897907136487527206125911025864025426829292899474204243913410143822938713629793489560184339183485327089942272189269321568890870030776913691118355526826968275604122763439741115374690591790024603382859192095105965324000624210310324535393076928537661876133276503550833610014243015656144631256442975928727054062659596515036329796205912053115746837935508238603315354147091116838946929051165627772361906883739292293606750700524520397390934996102628807511201210952836548306021900215604583975292461474513530461164848247952961293393899713841276734212406391514949086765296464674837581336197657585668224114026905328703815021423515688647411551184899878256609756969921848457569223467449722854998466564930878993740398680501400452041693515431231462269419447235930436446930350268153573044501005560810120823940415106425708060611391084977491421510518884212742524881004183358440893101046621983359888573201352631379368542959181006902017502496860663609763215880852035263372568478555432479260714348554500146976499454598352113544760573298819254979743668468177028197818122036835686713920133526451325321900535339385887763615877386120895172282346901870363800424256991790078437548561278769559007775911556605102904319245334921347200156321244439182478067515607137562354086201405537195459300568913074412656704270709972540869113170557727928005350635633386913052994971379924307365311362637671390072588878169335641530971845270475367209113831591861961926094328845597706247788689385353978734910515399342866744228425800782489790740937360768350656655446369502051717609684928162008422014915023669571953224159397556791726345407695709835616844035405313752707248376280013889957450847023770077311983890770428473442693412520254810166946841869368005726591025328844645104103790786287091555672831080880598896114172629758363375038049369200344191588106809106079680793235628446862304604697660139184464723399847500915157321744080900488275280195539547505507974803213386900768263991602795907539479522550246264123761373345684788550451353984858164766784380485034296786527003350509680345936858789951036494208324437604647590957651197771889823589492625424328681509873819452919375883338754479003214042451302297474836324178031493893873399475642348679440766793628222701541838108125605778596340587442430216448426783558980567773480689841123348078329560331794286099692715386911251364194593407058206383095680390054076167809490663558920214308902815731538092060479830265849363566234973926753931000747359605955035602406229109271305424346724452418234146028145625449101152933191629734225217941323439826119248949335460752190668181797408231758539920332333544361395255490645538621422784641845069131060774166467976573901160209358093150900676630264457438510279425012765565018270975300741698951807899157520338910018234464909359286407139711953570756918919630663561982005093358047319889527796586031234716717052092189079469791922789472099646292192769479069803320780391770930778308499257570612802924957125905757687601579506836719193988066980108696700179003221710466320292830315378036028589398433453356338009030968743674182603228496018010110982657295319896698636410968213315477237062287225009480186874320938000471391856513984586626236932200280067381958666219774275833796142416196970146536002211628699970920144390407245160170304901314392039952782407258082494426392358715730787921759960129863924896485971390388999258126543475118662939627767820020936730019336488804908456576295053709063262320181436721807797814888416419944646021071812812691710675284174150842483634311099966379465508808894843166716507480634385002985403721233315088842412233756946644002692824402841969141627558551858633016916443906370135794673991593527134606556046241289836999753465263927686449161554799891050291483049987949531408633832403562377447840423108350419332588786697719436353509893487989994188167424990364932862496047897311292590649397062636413043630860906193265678288415591794337440780169848055547825486978774957253886729743748802402895069396135203765279916515281572509848908988791260683439204119603087229130266542891973463599175918795280861761901667549452802680327780632036845842976577886304282901401643334575719546532311908773914498029606482812070716022546167230946590458380948804565118628946556782924471559561804766128062937681385088972872501573483405289962541690249546662470817370251917479445515696115483530972522097803856179521862417408922650876258841373566698883511985502331282516337920235308796605398252823495631708848054533772505425670189248763227399136353834427437048307825320623622326872593100259769315375045383189393762610442872648461369519027297401286380632402681409256042709780712167524766247298888522904976130262753880816083703257513263025110663588505736255546661484310935329962146338862106380882652906728741466806614361836247228541508257930561303715061752635820398309194470555318035573975300176111495297475785140351676511443454243607614614823104403177732125796213132629883250167967083619194391414936015444945386851976879291595414940256581623262872884814345316248279739294931312125641875142486256909228665644621888530999847985149265539801871210584383110701983926247083519843438947585614217452755192658534753650715228182547386676953335268462772548974407257286406430303206152966013425989434038161719683920674616319069458911544192121767587087997325411817722942704219326882773433294458113964014799842452252562285689941947369609618590753549839067615153396287031786266086115472986286026467379688755542359489044348939170320461356491738960630014406145183220862408815550141636578436215356082909120632760171684173538049797039543098356472212201026924220242926030063958366534357858469289798149824991674930818413794523098036829060452533361721988603721795181144809976693422969370912398517466730306075180105331009928792880711493738644561531967206011022552700944857325229354635724048806932437077599518746191267045181568412034794612594565780304705608025969592598648367257147647329071677176470076990086903696727261393867095180872264127865913597204123013545341829111330850123079185349768581986796397284855979873030051499191865114500882875996010141948705376980619553017213202785591406379744076315389153214566050204582253264490721642123808512187160566236220725854415931142838307067779260194765666599032326838898395005235266564826192631777166766225103210601304174177550610635371750444988268129421199284216736438853091103798512007815278478460261187164489385175192090097819021807720890448274200965746047882045280064100852247518316270571478270469118329301096638556970307201036011838077449032019533558778758110465518958300740662135677088642139208487059091054199506756474211160449039278664941708369097398126882903074386161493025410513097160620076899575991947451542412564783960525557588303544181160609163790390159577605299512396561674632609563209117724858196953101999609882640614385154735819029486315166609242254629141601878333121792870023365237564887302393683978299748860025145342374043042277828128177381295520233665794567915177511438751566128494777109240554870845793141340183035777273629113614766697672989598343181713176151955289431340007790355448247790878571078424523335989071072979035012168236354206693856778482532331677101148592340631590727204857539317316042250882021267756028760037488945527214220775413342320956676457071824777922861309059620613829811090061529849808364378342994417678631800714983539646776811338360557335009650314162251575538682210375776442870569452439138140024768917599645278972657387679425167721091416203191946894402810400629244142387562269768498754412355095043578183647995130091257663049015151327074218147401860303119622298018392691656753969871609425651063521680616430128066642294381067061595111621246561153400134029914854672117956157356571252389757957099259235447522774467345736195748302344172991563382013536936309929870034905037694982524249047260116955919330237422893096475389194736053683822360262623385895624674382555788806997636336471472147177724559341873420217218945967185095905408194570666088951655264674286999840360390757226640764827307519943463499197772369911461641234966727728656332701834441717081373462827581201224346413502888083867749588982912485675036171106322893268067113897661459852914080238688128873196249461355471550479853926824755687184980780167725059323030455213479132183488679373019804536667731909431771451726147965143426599255966659228307196549717981825857489589232479912734135469246457041831330995448292986080439739935426580921206411415237504261371378119695173884894843033100715133445397182724957933242728545214470486549424468341058712597513803288721665674200898332032804776661029654717073541176647310525541646173131929112531966512751832142010448198246938987042351695480844512159932177286520529637404809809067780798174936233140167919229170054973771226012083243681219631462031928428294302868231132283984536208784117990179924846129882295135599185958638872441878383513006996256131360097470649313517177085697698440791215440294188642571070448013299052593884736021144850091582817957165992258213131911216917414350985792841534045684382512987738537919940029351379754899787511520844624419215391506459978227419491824167103134433998242569024546341172808540772638702364162413345618510234530269764279268986761774795405681112979533909285494795305218457155817030024760249228699048432429901917143053800833456338373334339616436384365327362997678315732490797882725882247265350854234807167736659933981732255691391854214306913045727053419580341266323951062607611068126215058347803699606854177898140249706928130965239908551231851881308823963919653524594799776998286334033274228007263689996818373307477846516058672524977229531624732982295259741250343978792742377690070922530672481734952559020486987679507997203987434938621653825959891660443471413052884696054932604148095865614564828297732182974498460670499452023864677186275273214718302328315717097322849698122766051114969732020710653379906872913460803039834883363755362104967675469452975219505769899655572079606348637383611116719558965360335072023252836582228874833835727403362470859017170575747605469300425289174077948561933341392864056705972517453742724807660142197686443841661224355003096333810127481299318010140759137261526907947892378957844086933199239550454349597573685170433453499475033551342394062440363505717153515084251849334924183390187612837883663286168996316929644875733634225086850417391288129990369118854618695985536540475790409196651974756611915781698277930880631039417988338827146862753280854502931090541772889548319098992368427119182595650198805651448700497493573457422301980402488959905586740505306333928688012845001036010135136720979962053695825781762547957143974670914649258665266356093192323681912211954779450475092471826173951984467520666581959840343710688226962720795383454062375018033916446810615831743504393062121528952400047611293178096912163411170312830133712324798623644732846844819039081836773860576518410945540395113816639769510629863075614972354055829022743249558604090214627393106221396920554439066646717770426800506180770024352690707131293599473941721877893600032929096079950502465411688978442698817343806331213685183922868758105385429201052515747204183741191251648902968567911370347389891313262149979372501827184024461720981638282596846489518868387371736083417920694903608782679636715007885499817280975840870199666530799015408591403242377899930908203274432937807796834917110890542852418427069587904784101685528491952858001598446951050300330442544500598461897128689769752488776127269630160718791088017063327543891506816382242470908268036913562744498849316770644795681968520995012221552390719269715231351639491881373593473940878161534163962721543519516984201977678264157849990817581104770738943025031782834025593953638075984268871385401769980387798035669393579833827671515806410179007254367716976659031365222569078839885301604988473429095535193805631749857893291874718870963841334815791491594125355551711175536052072273003207376820975631400370444023310743609953329426212207995481447472155118961203950188661132009537920385729291698443828673400961220729117087786234214353065063968987993083757779387996748949642312069588973787545166448458116967550399046882172523723649266902834832942035906082870058535916464453824458642001698039772565515967699615927491165961021758236756832774964827125920227329592850289963970667708094617229583026864434756452039402234337240543201874729662148012956729874993416094257724629202702414946204972329707719265068986844676204638724047854793956896434193187314688711830697463936481204362018921410451482880402550128507231815318650080097391799263801921522926320926014066130997370629040483755359778050629992827278003933126985691242012249662263257831869487390929277088279633549216145876831698011373714816290839954620320059970643951326135759954543972958534098514323457637131586086002374999428135485999494044836123357364308935090290140214988027661780644297216686786169613961595584179448340391193416183992708166760077940576563826881616824505987735050697023504463843873718104532879929985486296481899515839296294570131495413191635324701916489279132418051110493467642113715951557118484370497923050460164101013553555368788543452215635589563337988934959288549322709132524561496288561256361185236213147172491743314397448777950849416513996701769999440782605615515470962651603879124530942613479606307784915274596528414162887986718801361525705125117789065534588392868093721313499981414701320369162278985005459329034812447279171154573205440086251188460342031386234015338822099240628671485487154388223172646573868262404700178326395807251333363936128421827522131101683680672108171988277800771257066446259592424346563585819114714588184582737925997556906303495755502269117968552585329488797809378734748463074354276274659093454241645080163180823415604698530120606727495071479671346504817145223063468228695074765080811471306495907422947493266640813978804537275037102458759542533148661042889289171084416400430384044446226682156986246165053889537698810913158794501611525558818176619532903955225868236065975930632857316602481502716840844145657044942294027561700177889707492118861404247880116931074852640916510717812857942136107723712121806614619323905235790790697761401570103794438500242471978064665303976771651432901207332135428891549178193630853260527157108167327220217132399280049981706447838461156297881939427376239267820914873786664078021300895750632967808631576413687371239622670716288589813527503002265025444781671367025965400599917463823311959155428692283436095756759347794471640163500924612219319857625910430450463851559534064135828538969172536378174447877431708751978445943319078834897657979938059172981810687671083773415138073462019116431302198662226667725903971807227095786472594457346769345249134832313910256130712750250649695325816035927668107278620178072404367581895526647025129455365187081522844865793453917615263716458800256666819978202794848909105948011940047733092738731581885723692004304868167988989941950092366549705891957793654944306913115609517471582168295789356920744923534918151741237032901239793078916982304841329616581622970851214738393429117641219532422313330827661989395695995997467611101326585191623049161673420505066414420221492119816421271051944425215270228405782581400223799792791243660692905575703679297009092324669379022785825771637197630624296972904133137482045358020649031396988488244360114008404568724210275169967317901134639998701549441970514930822541647572455289984394580103451079417716215217408675996674160822754343157072193428657028226473372139182451224915190130171096455120608682090615939847858909340317893388914466740615255872890127948384863358397807341865659992732530532082003199677892436795357659934550914165776258484754213483839103294404158931853555884027572133140370426983264102085944065766140192873490206613992176363968454911134456356133193756998192761303281598408400343059909855835650534636792891412162346056839831670417583557436847729690354826775290870959767914972891105615236753977495661964139676659400469456676668965675305362533838864292704793986636312713764581125688719837004624832792802852151584443308953755871870002074844097249041457185286999722820329873072330055593718310323220724637492723570515961119864212319921105922170023909552216950903013952453055599685657354938132462202754230992720496853472547842994229633503411812223960704787353166782977828773818490231903936165051249154727055368533859424283889010363119755621538083378010291055807949995378677294260909728537221032072006814709219957732287820721953159704393242646016143203713953092659591246304273239947718964964556752116941993269022991889833702927125444098626991603179510337779274382931222566761553410200440681471781988154256791079583346266826980925586358610107395781048503466495484074118879695704440501548219217884463667877338019855111283372129171259802608094664428174643901840118798962237964213616529442942182551293877492866713807729136933925052089390234548098305635115540241920820829249553960399430634154654020881088564726168026820397651216035774001097990121536236546828284337823019030143587871167401964701032884855122153355058062786007676811810614137422653282284300953596343370323508957215900456153125821753298006754758773063319560546898409054661950109560215272993260847642124914217291468786621712255757226649973131852913598840586580599142652037416506074887991149535227676655450405849663903590590039025318651886179324391211837949371507396520287532617831459546524809245710354390852953959125561839640359847513970739207902227015057160871544893825416985707796890184035749958957257583054634624749156698972629612785179088942836555956426371945104204111758240448991508431252923980495465728198409853150952066959233540569179341709651333704090614560102700081321012193128227891028240249549164103626925485349619039197605066123031930106928241433727450943354309525529967700584478704033297603389191859620560727306314328440555933374906009378499691471676981534066169663135675320325730679722608042747984964997677910053328581130845418847051811338368722553832553904430378801672008335516569897450461198645349634733700276198260429164581269163482273006496612401010750419362802044307885305385363385838529764027206189167423000049519287175978746439816261265622287192572961311715658712158796592913394113108840753836246960536351279760306359820364469121603420335314358165702594010377229337739532318807650384124868136776451339616192804410308725871213537107234688775373154086803678726593944659780638392969773317077767622703616379884016948465305170058092262662113532347013107483305254805989145993748481026366441449722503515204652604342542509781616782848901625362792332736731699923694297475222067049808500965633298048380809698261505566105655906073917728890333210598849796482768904144938717969344993758953226099141872106733989089615691371825307483848219733424786257141587548384364422648315062797921052318540309592825808105823825547302711223332942585788209730994167821895850075548660702484114004814616275546595578881599702872175513925376059305431470598276045816630476296418848428685080977260085528049071160093832588288565828869495211316463412124588124951838147125523289595436771645220185781773834555690679854864025457973508821153474743056526238481073370751613664880783905698518994966046743796059932797834468638077109697129361571216764785940745380831650300191696170530569905377058915340315799495179483559409011730986390675554243189118048467155593189518289652994983458433256561507886102391713230511274141841526338608781732980635475419854123998519508146557163371824675839312190849004446877107504491077199502270869661217789936731800757114827836698682659887658509116773461135544098660801211772588024373451173358846929503165805773841325797448270246456253564221955178371181613914193501630016865865569581554505941092086915098099524299676432490778833837622253476643791133560215452135085104948145961139514787139578732498746343143868847752544555828827217780596480807900216572074624425512724818078239086343462253520325533987726997048418092665117922082226899173842861337967332561967625045169626615155632342351016001312658006888125066817959324644591162360307754489230780866241278026875627006671866816379765844547260789804539082496194125101061813072311728903237648698458455993956306565819451387854687157310589000665769736641298948761858387886008723761078827915457789464959750348899594257030275271945561621551915381007845676715626199160197100679891886180196724653604094653174707157863319944415012106947628405559748463622259556311702246391727305983545291630112549744789767044641504392730407139524309019078255014360241037196221528170617187537718184398932543292856839220417559525635487859122185752457623096399927136373047171315797079372404029842554609346848486695233684398360540645046415999540031379150192431422939573805976693954594789837192679293776218665710611652877634203880897973359524537483348405041384650232523105843093749858148127429672336641498212483510849385697488696421509843496068156116449649866692342263447154614464187565550568978799863781249085327159773376195915542781868908662788526218515343482009341664811188441250032102637269659856988674012269964658858347732918565163473178278283012063373817298456759549542582365971543833656521173748023104972956852970100627952605807572855692387988918288273995708148604543670624684469459062781393491986915174140855632541682113459919231643672733556600616592865928375558298206959359654224855448446037104422636676846812945415369177073746588621306374057302865096164410624909615973476218321381498965142513458066573393520229949437507051519708795552418476794186000414506246262634351762488263336615670725581531051272981868759585109606366418689583192612113524258715622560312776148426312950995134292144698524312939602204902028327049585264330769722966980598084927188221785364754114920201768534268146233434895945695476365594887919783581330750738482554750564091151184978641824190762595643504955088624842384556898634095101090613816047875666165267120012757698602486109122087741052273083810886622610529800303307621827017322286230827322668846892589963128448289179852664763247726860539092694768131282481003239441242439986321782793109140558440664396314370048500175425682467160116961339942061772245640567387584218201105847993651741007608200823067474242319192502328556383766105502521004475215612812724806895995415965648072512072439326385397597407954709579299716725720558017305773905968166724985843271204533477654652971300040353481980298404948405882248163434431869356023327003284043303007937951794197723589171430706433932394765787764300364035282563533047075526865322062937031844358593054494010317942379331181106478678690033140557503259920943626144200247202029111538129458453129607367447771329905948650877981031773631276661755654661389445238525441898553520761803169828608746457081522692464185898480004856855935561949713744758199692788785412207897831914691280789112016021756905822465112099585976547271692867057149550778979214453122191194203484935188732388825091949180656569729143006150379707033270094080549300892364919859370603633465269893435789693200211578132938427765587027802342289303827381365375558744240473456487372068368168087229369792913450886580647067057713594688952336262125590085090842832875914866608078928967020115472279958815586360618967741315241037807232962330917023983331571618519264825686462015589656988699212747596642174751509381492001344719994624844699724916306712586745739363321600035485981804718615317614364882435091196388517332277699068059364065972991042323841255195466116297956820330744113022241829072508303227675605570225625100071324689512787951964461690209441740703015551845547857645098708335118336279286816364486199308554406941188857287806084973224252257059965718162172066865050558381758426264218124597177220827983335825204896004326977315686025252907498110403971702716555008621534618357869462419410398000627718004715525135965255703568032922586749478064935316486704539372912841872283899451130500959391471163090704146762516190324979110710865829080503448488611740706795864677358770557223835287345002623637017711407907411495821968014919192610703111305576302145830511012380164666816431214909850653324085801905826292685198443670938152271441035954481090249526649376744556817082158463517885841271400984063486658706656094886365179671483895960555258496853602884069838546449809632066670481670044013833402214090711129417389694330389734376204584430930677858519616318526796894348040510918739789827021124503409700503984743242321294033649306083038125800597453937130403086548725490453182523511465121815113102661002917849940662319031746419961041307641208312794923236440380557951889764264916553688982969651634914921713368198505206922774415210574100554665622144290536713140524628569725466740657896369775618766964409695211681607075753005663674871193225716966584196088794062905926161700814454761476352048027121248613560364257969846850892456487718005673739567189508643071044486530826530312116827328855195966314094595574693914181990992572053351361622024872300015751775818571783460517634206821956235859368127549094953337463429714648802446091123716847180392745114396557111247475861850540699095540681478533905476093068342479698431536140756527720822427928770309058045042096767250221603315447348878154551117461222153706122833154815288197739217559695190450031327489996472983007947982894304895080104716219834346186482124032586517442393216801922968920395077372416476817048330521247468521519758787492571274310353683259820701928067353494822123170821967180615946951480560512946328301177654991071517291265880999546587968920186877032772667017109263603021484625381232355642392998346261420813376955162932876922656554256568990372779339927979198087861786214465247608331949122358958953242222394111459767750796347563768999367422331775032997571711585977244857743859415182770106036332805081466829400277437494621632072583884086379867514156253669704880509067855570174385778850012023988544965381911249655080517954786388264951250050498343707304078589264991210783647011690533179916818377629236679893107481885775269143095030210269880559792504813712303754437575489359313856754709567240377569891198729512646310243415893060401249566518118136217339175340290167471302657411087229769839360987492128902647278511910920896373341473616074157395722368132646938632744133549100307539162820243981896402482549557102202838791521864522101646823870373270400771851724888405880754131471031326826925415980631127930524152067848194870869776102185135801242664501300896595053774202024241491549610800000428788910215146815337065767891287729930265737675767449521631600416479454180306192791486407368131071133439374920270865126962005653580609306930827370502254547001665992638129180546508520669969564594489114530355553198629495515159638888105100585057627621330591879248777115525524165775939659271953393770760054753954898142359438940016856766454679377515971800760488165080309589622671961267485530645487957640192780051623546423980565266227531931809518420697434087990331238453573970633143777335579861399169989258732197700960451868215804953357611190321082319304522693311421582332945630475237152243426526313248843165578882909720993550555781867561005454486209965651738243705993561124826848813050383704532617714472955692130563330787772653152277089191271351705702418461283776548090310100187570665252169713984358457855397407797795493856584728443574041415225327008792798716396398736691166953415773932621976417874442444350247553010233227262836081693024314885535798439558664931625016613801205315932639474590773077882523822528306557544502626980743963348285887298743075554340423792682446350781490967673275131714657378879578013114056137573026587631465529685036769376888502322563664816502450969487991733512053881602078039049641793381841324981427038831088046619175519116109451272114480725299829520482844158182129157131147045712437293442196602677642105674875310077705775960422952881850811269444657521557059060577329424081492243872206500986813266102104168389986430913467593582385593194449054284914655214461602567401974848119530355607794329000262470732881164894855656659289024715807497523013394452570581332971772191280526480275334270812780716408063536127506245150041109591984232949820619089248665822458943278367201946102582081305675092326343653826806655291007205990786130030467594253938253358290002219496713154541418794729570140269242952289171054885929769080058209223834153985420038290165050452069518873972591654497477069689307645746460986497375123362944974086140693441520691946429397348599931519641136679278482064946442799673572713812371074945221401653329051262902354804198906165344003909558617576683311397808233516979446264309808646480166610624564247521398898841982863948050396410466450305625006980017051076561758885290874503606700879542680898866707364334579524706665404965155987883325160158721196302245712624076002762754451985764768813466322642723800347132751967359027389019887413864437350646011525253700206172827029095064414863894081286441994804522013010046070481398417926986930229598987348287575975325022210306641480120436366319820096581858845203775072133440815188416628977761095164323395163782193784178620745819814056258497983184162556133420486217041218803705364272670929276400563608230432054098058068514049487727634525380527829787719281119016338802851066442846844019491570683499559633020109925045748832872433572108972258489988291775362961982298147252065465015433082018937504249115930867252487335638473071987582684936857176786552391965514902238295094998745536299876878261360084981264942720814241624584160035923034438889338275473866507453010126265238628328372235645917456035862726639642976104325799054042492593084111250731253931742141791629001854458136864416349503547554459516821782524263343580230882904275390089304342792687418934201937145787892728546588200960256650080776048305173405243358714399071678798014858904195614688200697483848802635741899565728411528331486544379573295789423713520235210261125339536204712255881225244276268336740141502526646001173507425440876353518651966908568086880003835693100800127719639108729884401827063841750601169278186513887158761258273003496582504993141378539351961274688822694114522028168173744674939245630478619654097558481033215398237682781279046039967366382577990227062770277524070915346326159723820940788997115811520826476178872521593246210887861375267934346778533513696447161223967012910782395906060636504075825297125881183265133839984462478356630344092119865208387784847639945589892336372623733632635383458862571949421430138233824792714338351621558904498577551766762727656129734763668150965192345823315757080085178110530844260370551584129735883165167002352401392423239313205887733358263235146218766938591845154083485605751891181165056731683647306630504551357849114969343484536735788311124430574717871157279043504702437816879158471862305330115658852290349829135409828501808474426448853079863717677257826770746170307571494538141628497509498989344745078916290557907323327449569748802440852496423905530946462701790951574798436675732162728255193869480820729912786474810021879837079193156554218938998233675526075591720013198793986486841181166091490410509531683556133339969289263092611492659708152315879962187275267510158970951306524519097768037865740194047575462080864739760669979796545689512793890805868433638861442517131289269556510753515516410028134577641093244509440383392510187725287882184457045737941415404127139976713196269801226075199181555579818267186828700836458980602203406317659154520765949603859543968274461540162638192374805954867988380030016528861107115026988460595573671382229612756562468974213335609948043332154118789077075969961553692745485836018531393016799070604037582000594815380629646848615322392252365758867727499843329227881938593516082916028522027824200226897258750602647362095190646564933399968324031342875861029342666816609632676133534084218430498697767161087324729376804990870564942514489546613471720770375551136412571689329978185305430163386807474447768203679795622719444068561957194143731884821332140867965433823976119562332296663636217658290487691345238461995807570390069531966617395504605615980711103829840044178505957951438617495585895327626701732027754598918791479277873087718321042519954728236758276870145208727827994765303670696988232548129333130963044722487948333555590751177476746309122451479551577238031856087389071172747627722671041691206131754979965540137677178353605536469285134079539845785106694913697038829146905794384960587657240166566131155833598238262569841247456641632362566104753572914760441650617753804401755942706151689594541700766602057565926061915854564135823339781846208724166632847176987693062285572354174097054731902180443402229722093183349462897194107671591089971277240163002508592967033561882012545232842215780676238537306033549052728417019313590980299467725066817507775476934359161544703187427178962711003932387570451728339475935952671800707957606580856719279880362443967537224973731180901535501410104507287727013166833048780149673003831248800374055724519621768864067170027968340923584416361875744599073826938452142472656070380518292583810488905318499746917635300075295650189531933966410765710270475804631720747597644218219753029158816597571140379039705603760316239630559901655969744864754469753770472139436791401967326032740836232238405821007822937861225595742504969892980462519075246348295641916753863895447711268729401882267662254284634835190757420942820474137486387123638755963113295144829316905664471739703107060172489721087692856184459214858547010555581605668492205898848126262271705417262645047497226896312190563461357949867896299008982776398290590368100694721648759409586162508783824799319857119472813348692544675633611536351268812320713373263679548175699416504692399855169833584812283694565520542977918127155556495652026171951989912889650129025822214453815880417252373993659718210785145282407616365607869009554879466104667380130256664906651096002670513486496145426015144644229424237032682025627642407601310876090943395287978525456027149933713913364919814972541329194331355222507854776883086984258244094665347542689769670842152746262458804939236748776648882928770073209078587540708751146567934835175801206414067642259740123277772794460864702954811838502681853163276048475218592871954602343398987862933670246953340883523929476795841945538540174708037735159767004664530714653046573692563727723558276173416947868708536445628269903103460390887446040168344784590394272143585849713649192889790184840182286394095680650775239765259832816148297528770048860508942120420989924514596981103288050997102797928898543170851045502315304837972405700529874034025798544147090648849827561459955213122102943928906824764368101032978325047851064915955553638244593204876725034240243652065117625902462588168691481119835782809740882421844558086557699415647491110763564896108634661879897400203880563977989996530859429412960153824810826527073342192168070897263917228723062985117478922344494156204266110427674781802041707928545642069160241730135292722144995090617100567974327620351019252236227452916571374899396484014866266971441694593756452893121868936740070759704752303881792316328925030174904016865328539429265447223752022891521724005323131609807868277297614964270342985285503372246717158817164397144916883832210437002523714139246598380191711222054314673415859986118077749512877018658760991240627562252415595699317152747651287908385403958804843251229687226214517208650708060290276487354355327280558565542631517476738614319024164991875248261239823373034552339516210197231775663875614186651118992819402909624666428961895257186572390057679601539816551918675654208173602637934159152935732099897169112050506172903601773441058277673512955189262919763074570161593892629478974723849955716413825204353293620294047802695105829166732418522131309801574059386320264108737311019453794067377895859183500502950132756370455960631431861881467561363889452614300499151169259841970682559539225071325807150936274577674392267967078503201303223811951706141780775701569843929450184020918071100674601936946448363998509237770993975652721710563163960974743301315132084940887011818571313437962155030225410972680521310387951949627068135135712627821405232580214697748404865632460936231509513784359828699581059707118596074851747248490154752555497656674788478959203737188066836343665886417401631667776476332657566907870586400988879096476793374627118606800270050287566863648646347917112855576847131788092782664859910111475836665757955550885118458652878534182484313540531231562651620071638651160597036039516021716138450634678534891813902296825037015610910841115323738303465375598379119333884857598526956810332840901010128279383417381508672351500684147323929008305294291879743677374504136493233081883374332085771652585846623108724661174584307668668285561436092379243618811706018650965522917323773342680723639037150097960786215774006867618692755204581030040459355538101113358539242558264562374065687005902805884161250904302311769304811717565698610874714204174018797534794968154078279440004764221463789430490723183528942839941214659374652078870019271695906978960957176984052325205035927163259574094180167365278518507820964135615616828225253615223943333377300270684297743065226333272200000969162038423689404780279859544839003949590259371974057216485730756129661828581998769279153212042101235755754157324720808359557223462576323252256879589693250042017315888233919873214104389232447388318166598007357050743645737420545991062304197275743187142921248644131891053838810738945640206504720586725110429573803310688769229173695413624756077180256980803772805198238382501092208472179220856998790066294600608779300224974963539977621971250417202195959597336178598584190691999507120720586437565918183489312432649478851064813730775770983021857293585468425965547838832990114968933660818425756139571122565233126693551520724802128911780473144689343285646013125889559264222222422309606640352317715710019449990378909047621378589556692098230589771525924153763324825125619661655983180101343851193914119639682912469271218527283274367751832579015473858524090660253157246966935592594862178275126586349469374430789787067597614792831760237540757333670410156395585947661311838790048581023824102307825797138169180783388042290658329713985374259218701697871749613026557199896364713510183366317434653718968815014800205302538326277709546885531739410581557385281707555598753106996608988169876146439229586847819581600788672985490810430162907549464882516970291562747655567749224494068039329163418431295492190038664108861651838919133088071143079089240449214100776646866468910790403285137358309529620276677708173505636243313322388277883687991197002300756228937840870664979711945200960301703207780801262619435100567674114240792371309333357786699501545935294101351076459593156123778452670746146181068870985442274786872760385918436346907879757658793077900211725763511354369535305876241023573035734578281836497601479739171974449619681032585423921543764066898398466751711101212897639786725562839007019879286406261610224522096562250488478212987268206505504592901045588743047580824417696088989641514981853214059743172844985162508142833996668317377830730832005677706353824034350928720416109758314988380594455197652309738021034386542227536853898308196415504557785658452247668917328779590984447996059114227266076132685818397587538080675537974636190634526788819645152328745692900202910596814666821403399104035877112182219428226081472791106830930863955103142073656176456280134042317552703846724333776300639209590849802979172380526613015706106979075337827029743434697697020517766077269279497872434296836831810902110336539076701125840200289264179849467144894906353906829403169614188650088961348393472135369687179842940149739318303674645674443848108195808960470980142033281080000926867470274126102126377525029303067756045512512767716606628940964719399351961780993593448796710386916035422867356189410820833329486748687977069902552490531045414844541629951232738017352347098265603085417822632695060675573544208979622982500906763962112780563784149555082463715770001194320771493662207612525709572153119367229903726281550484349444620552976986298954327022425752089891005277866347651102655160474297436220099770858318306119683809635958678953331787079962505400258606507868847249350844738348620984284558189559913952991369092115374784624682282050560863008083153532312773097672886571696014936164650926076466507216825997608778793908127730964024751733093802459269119356255569146775806375004552733878736945075948394954225149939394976070922415474716093812626559097993003170656314882275456391882055917498736917669023640753731269784289867450903339635389817093305242615032953961006948735270997591560431261779444768671537603771161517202268026038262531202194844838430249921443453872193367101097396604394622942856479304967556332453808287930980064572638471995628359320413650162108825456693253470274213607506703152496394852474386970649236414225323641350663041441163517493390486327515266704980754437959030744542101094445578706457065867303341923098932110777271519813928624854666013248892600632674424006263992548623483906169108279008915829652668418291785683203519206952972218999422310112719181446739007886561907986766481975843826027167708828389871696956139532911045462619770194473394847557483078549999086517162364377669610402730013690222719340115385801709182831717982886769471460009990787655052970583876471623661585754853832117170538135979581093905896296841677467998636611757081972902155735197057154569319277276203492464494925722003236681913179028664703694070655089817391242797597261811387896750072476291183848607241564550397124351058057627917578119655082820000712810585815901458158997346141923373283253657974298118827841696224210338009145615544910579585217289767773156008695822258048334799485029592137490333093674630794062160108219691917627474671587861173873341255517228599317434323635639443464054018140098146064977122866492833345409581358274654194607654547585286161538351105268937430908489424557723513524295269446451002629829403496105447935798906506683690139536588598055223969981661513595172746997971810700098869264926733413462675516988810084657181800484397515928474913827856372408611688640338715267519375152429564205586177314455645369331890948606515449564639151238305170352973539286287977917974580531077576319807408514650468497545584709850621600934846411701740748092998741027708532730289959945849860233698498332717314757812182363738566705056656990658961430235386285369885235198665381594489760341835449641191478295701164868708459164692652888006706519920533306185420220206845526236617752842072885391436564697591530673254118828556614393467859364771346568143166724440804594107908621567114448741546266460989530358597937440516935620001241236441089606549310985281458503112315556208428940953973286935422387029691663176546858576279191916207260820798567815813158008746417362246052785224429265286319568711851464920450098765443939336259040309152863583037433494314052385859069825167181612526445027803356488336808629886138698882605961083851236054089877250493841872678954353380918536378309107708890186268326808788421107928917234890601970239959789900275525531621746979340799622024296021985482032805024704557824566761337772405424968898515321344086469245260331737401791481530323424701438020778486624319126431089786852266241178254104873273254577894118429750652950774521833603507250201212046987004184959784668797358400083795654526552748984062908063875075234701120202710813685003007079835446894681942876739329367213836200661866888164519147089279142807036627224894361015285185574202380962954233480897237157586390148774537848812508024917093351955766603595759229427943614678544032199157145589245834926985239436713797170757873842732251414221631663987117161503545284184151632113446992557312411480886058801212869349491148437460815764780301535614275145401100114272275618093987607809539160498140543517695940427059883929555320424443441683256167694735768293745734664011728071566033363654733876102804417429992944323527070540229347722505609762348396675346850756545677451203185022134128396070050444275297965357424168004987356234128295806752806726650980185364616764783524683471087470081297971503478960869167321778969706027261790591894303526239503172692834460664176273377269012500195374273948055453764424452123690339356773491551795256822226974747458095577474294712337693285785991692391272306788016764142425376989772986410803399364425239641901313544275383309394933344870117673135030287931870140150398454179674097910807480471914694920807947361430081333537920802631630192741572865895109118354765859412506686908391709314550423293830170139275030022102049202916214368580489481479182986913678233561553622581308543491095432100860225411817751016026094138089826860780932592049710289977940758304986593352420853975189666992537832947948257297101303725546230220805595404008523207179519561809026614013405817795816692362234084168993009710203348431231565240628413361471367160538448527312990348996654370788215682478784293998184708372985740563925971005256709601243313581962563239555813410413700098557263995341203635864745806734617863650561590824816066464616775051292726191128759160886040800848513791272002633550219267342582135780975340985491057848577355632256055471295807647942342023464697077008379471680071443484585156769894272970766014682856304293231539339350543756562450515028254516613866913025946473666673472992031167636902834213597099184395471843363831567292935055504273232798279833941381645652597520230147298899969491950471531008331510181710953596294417041494845746280198640455283796374157781675518236522658118590644073229784802224127283396230565825886432915324838625612024598411544404509811780308012725505251638647005243692975524435350131711266470996570859731418371325389173237471068148163758382796246599992385302908574520014720941217022160635899116721827350293357651514231684441447987031705184147095881433080399705688292992750772766228973372255612245312367376963667467952129628423056369993946881233290449948354802964097329044054215277563387570944340684699075272133943989644870976627713970258661991844813995982213615584642768748745185808429114441428099154333851717803701261748638046964647164083832385956485201983044006560083230682304212271128392302889568833748396979276541600029760432175488747199430013755113292529999070247557597095389115911091579921906279595941536715887577664510356203236977363523820066890776128660477060276603392158034831739413639230278220971832859863109822559884303442219499554985411021638404194840270075451579086601643703577914773923999042373236385997586840454445145444271330166317052651359067560652291651592634603983265313782358662013166913775612250097018726272701272363837314797525225440925270665480653153047099972688451663074781369605170351849789869966112253799338025896999442207908496389608096656553303369897402417163147054282436769839062664889439365203675770351299278155010088225336449052042963288767357508026127866947274532453105447845742047855919100679562905560504928695012641549625966867499484695977323404880083013350467797636273461342139151574316842374421893012900537952604411261940604361536165260887975958528971041701531900834871387904360748647578793022893777671371940561273232776668584790764768548060931916301414048049816153779037135335625119851817513294658450158029845153208901974176106461212458090178164276499401401972843804049595909117056956474190211900773839000935249757353749031780865808206312916172062024933209553437373461251256793780562243924533669462188719387463083850378945877469229626927187109014438792324247041016460463875490512373814719540570680894148626078905792796800075660353268245297190202609709724708681388363768467362330608179513660780421131500946588042451587220856893668837335548639172493364622637306890781654739502456866074100203581830920143682460748304840352559342227728098062482628329417827454671750149595308134077732425858095491898237329398808004347829089943432861665466276938639069332282671560227082398719057297758146229397955699636513635512100765920642275282106930707436410894872650629331710189432764365451607351713330899314292569661276631777928498985979185334145479123008162774690586104428219168637504966105995120395090124127950072903635823422011351029343801993958271634867220901219065103723526860010716816299476367965959043888225490482754511233821519783596479263829594169140860806026643785464725228588170406733658311403714392872977398307839809541720182595238395697353560698151605316621406978720470011188201661471551574561056298870687141789603388575553386179819833333367257412448551447390449747386709323011927373134961592943419484113963564242603296096559571058727550839821091235885251738088750762806720188758984957047135466222367334989499814906780269410278220667077285028636205391339330353488572361870032196448100195047457706574034314725209516202615808671320934012259642926826086317442039006303827649296594336776233346222648492071924120756873765138625661716811318246022426081086302526034743155982027477086900494693412001149996569299876130780086303527486099560651776938084121824686671356905444853653535675551084348652657635052432321274508816138072070134703349946738929566191808545785008524922504886145687809138327534306153447983401405188686291525864104218400577960181276026894522979199731745139795959262034987082438118020479945287740815798461650448425781787902302691736530119805970213342577915869338102234936410185354488354644773816166509690051396958258553052586704793134732322352357692847813040627102507102241234766663261881919773808085453003752085960793822084012654822853678500837011532597195028253106055674514233595606565292042220353224841591794844376876226469254009286477282068263544083761701939135518643292313746165657568065613412617205850301277300915795600004840439339596484869893742730841588980353357916204760440335903958546214437212691419733346244998517452481329491857082403952702144348159832754186159938956538506509690870625732921324266115300915941802868352367508470543684935072066965102821803369410954565431091120014861703541033719152162839587696545521039806961540790117144513436524470821872186629941511117938539904408130430269309171935605933469140613701433717331864085566088826343743921947930096015727990945203056611000287623411535816762584518098036323312392893381037939407684554035962105802265981228636363322825605527218451334609463226883467347685225725065785635000630563373001744450294598637994002507529947243727612362062435860615350411405613181659563902468400810272185532170559425905967722405365172150106486149749163344998779344900450495675962620863125774283872066088768141284526160397073827595295023762907628910159909616344039240442791348882191038989678025359304704116176271678112199891187712377276345273052263301371750044816095541189599906120332713105278093103925026849926822408210280681059379834308406471626987699252944646404464602584533743185490173327541619116486258321169604829588055506775367919593793232379121466104093593233945146955725171927197077670859831713309162974673264327882839040940551554901615013376297860097934568842836254167208682910783974348433792317602093026819078307210641920474176619703832866701627645284364112273758318749824092316898206907879657361008561009452857654386893936145244773698611117614040429477485947108903197810301032632444781072709883889477354425865268598437631825493965196759257756903748737376601298512672559270494653876976356870627386659141204096264577161815893427035205832514670389206280604723819078174729171723771709574730652450922819643623980667885116733277897677607056168702441104208318443531612518150840395170955490118914460505174057551516046387901207206181528129946935844813267428417589853641612555844982165470185009327852091051317282083426984397230141683680355434219618149810518256972453387552887502503428136027315199603026021192868017889131192352583451938191705494923306326070757758270404929803001618818625694310633470445846362247616918051757453840894016194907712956543569661918861641120319646837868909936545675291133174233941322496515057481500376694033761107102294541316892245142269940056906875897443118895286719116369545984868367160149018608166744821674231112362821461924631573151870008742107049952462765105751498975415775724369023776055179230984772715744625640410219021610421129210456209002765841161955541450724928806731762001085495074332468070353768678623217333928111218788025917442778169558317811060238996031943249442304309863083240879759239109473448121570321717434200755672032643007096014645056968678639764282141197860108202884315209938397141387039000928669581098281787994231678372284355891608805912518569584013240272072219712798463073919256379764312969563812944597157539900884015286563562759573774826238482271662009567149579708480873428655128279709823587636217771869268811198379312423203649327724253436188607082574374116585492370456898153068721557560471136996409939415361827787917826691597632054041599396876848834549290714869268650886881386560119799094695480171412547150109219155106436013207006493124597134177468940731590607640210465619120491684786456219667397483493282372574552512445689457793871538308299503300527715855867819803916140008861367577838211368391166993330423001747056023580820424565284264862576656575463056747029774951456346267696033008693286963069467289173051081133187320906034565682660393797915264638360158458516761624878640735487034298424632601455128716469124386982755207127787827060782819168046886792809482995769658891164108765998041860612601518619803685653048457295676903534183220737084074877964413753413969145520578583800834688848887343376604853715422148512269643560517881291600966781736441608694573486921829576522608752910758806694371954137311521538163353291256932735096251332488443999863018645539530558972473676730282462173136077772560884522272789250881877311608666090825537078354507081899691583981677070715187819908262167219606828734469111709752069584244582413703591015942816301329814753790907068949194984045247879274029623392984953252016126343956285776136709591622338065944600939260129100455446685945785103518607937995003028196379830288121470290568682856241965991254314662329062738055592333471608548017539784081058755855598449879135026330721079545110150566142690023499356666857639607264718512773009138626592207712467679632579702882487138073078322003502288771023980676044975091034644542181394218694053893924675863164367678576751257856390611026353405409861910737601957833330186677325772546273728360257387983101122586583604867195659631489685046186481835871547091637359194307769151706143430917068857011316721111578753478895875576071674916164412359278436425213992622431777675450777826193183930800039487640041011722716336047192746615241960218444429225644586216854691304340436656475184674041264681857801539591919696228532186083337123017492137944791438855185121396539416408832800328405117535414436633350360441427264581267608416064057057590277098409521034535982970268844852171150692695789253790687804988736357471783765225008968180034466860006447980730940277627688686527171847753727168134558453348645105021934356713890909794374982795887026879630549507070690657614755817070763755775538449144282501544698318810018297222898981793992979363145179747479726197808749493292322071893020880805047887342106517973425688648498828057589773599440755140517588982304155261374646061524619082996075273292165668482567859948589417118351031678536531538868430261253402542520102852788793020400008656656432465919915903425605568714499942736851011565715198361426851293589041289274725794897453584472544702840286927511885224489949572729015534620495112705619238341074159704519232103842960566637926478162904075492458035965439829685677227513349645930730188324304527049363124924459980710464028222215360801443130751901123992796075102457380283327148620366697525304681753928622898537686636892453034693999879510044848368554497252835444397546661704198155720846031491339994778690144552086630824386598375990572059806071858478236465117774009754844074649196724949656799900058051468269313439964537592694775313091795464816074565377491173661044050353281361086116307510983246593088505304567433844170476804394817491296512183192650026848606776852742946711338072114690005218279651546145872047266150892033735120873664745520333919041647214970839699542473381960832352471942491879878877890599069338042968090144956139986619349910205928167891930127183692238022011924317684276718600330242100046201735942347435655485519234775468082105272253169064298890866384916459491806831217087347675958553943555312336559958899355919562086424123843639411605782078731759597349882003452735417136145174307403477613767991541333371903659233536561748818705830904267148228894849148365577673470510127762680527845884219569643384251214386177591015331822588209696761704324858208634985538319358122927422279088826078753267438733876859418409092392130097330030759589980351536259813227408868576245155596930132038330272229085614286597442258913369331861050221467923515846445981581945540607571080530973185187122203128177995957405976336684137254042337878497199520064488806048284126396282074397587318735154895595764921608378006660502856304638149037295738267479568250188157448175843366391042410233161444783628721886394395853954723786594238447160883652096743029105605219675368476707623538686775896017631404672474727443694610000047078945186391526550464659837339340712622578369020206115383364209599898132464937349813084911551044371638952005600919245145784383515128915999246326933075344280387127391154157207843250424986727838883702418795150138330300889755630844855716766541573191886140083271813673024375579720891366141559835141636000681449578514897207658333607122347505985922685627436252080034982350422422523264134806175030953230877437085667990445197377353997559540902842452606632203071895676860980047484797597235785959369852058790918798316703602725661675362330913979512266830006916730941911226393890968601119997301591360777564476974108416984226379919954267794122425685062499282423539572684850949508290336200024102155360882397562332964839213371910889908305117886587865020634533839090576505188783892570059887761357021664832557259575303260134880985078712213963557213598106349367674180075798078621853777339180509373626037925008323256673952288741617060120995756913535300763133663713493176690623145802946772406122436972422008107850310023011495301585958523597176967828595142087757781826815645629096803041257658607109813555508988628284933882624191664037645622614213508628410549391677714650271557514412487063871306943103793543454198035230974198445017439415342318687047636345923364252034667701724932807196356242928537884614629186883716243349342461241929282182844909838608759138739608749847025278498054918894151481244270590481580193819360600664092794439064386054715231712658611110445388061991051461248066251184638285357593913523003270840123701231608355756774602970956207739608790376910264032440326504861885458773534150628247640101963974855421630631069897911859825328190253904610990097239090392347065718796062949985794861889380680020744174187891683818237377535027456305455584166628437258780758441079831149205036614031613525671759477254238028874587787666423027650230407554244793992815586173692900472283942561771990579722774574249361226222293932398818715897328496449173133151947873331229810464199977143980385353325814254799031744477100774955348203859809817026981166961912674389588454535390939680754118095724658147819559344193295131932572246995369003970516830657037741167039256411536840146452445603862101845203056398093779198259383025507402575351635071170199554936679583772308317474438945764721883708123449770586657486895810759753237257281887095472499463991693479421764411103191146008452520330209292783977758959261887830108155890775896526006078947891023198987378768833366704041301574614964310058434133578035172733611710961276369726977935168871585310312530670210351051191302498183983627252177680844458417912951616981804055730636320050145744269965226957020484024286901104757133153576334641678733073761490871862188134492309338541816430914951744643886623163715454561077293203082609271583569847665468951487681892131053729446563376711536094370146583709005956642580623577480494518860586477118318244884551166176776836672068774371065894675436030865301002522437646342558279405971128152867557025359306662755300074244946740966077345810288398018327010671032442160553741442394630381734009019270662503401238518585729876566269170693213363093915541808575197884061382944466211470897852283827293247593961913713153020909678581299248864122964822016040608905221213415207130255348916393095090532508784528237885524874751433113354709563479777763799346153414386380802381412065074238403037173843016447118741078243323321245275276715145885138186765280321204993480834018857710554859280596080530149180688767482599338544465935721295892624257722208884700585867732289082640295487999329076515010386463744276207309997512492820035453962092113599152908754004229407036606444768772453679165609259435094611168577562630231281970676559633322130539988985100239412022406278122524238165461841258092295881372413066579968200037556926112985969085357299779122398144159016811776859915845103120251788864427577580324902541858690421958492036361019800926518960881206914537966807994233765225669868743362867218377985367461429803219118867669337043757355254919955237118037096047732608218151067350029884983324680448568698476145400517602352158211112450249449068194493812077057850653079794612142237087248272227551060028927899114526464861927616929583371328890320985738989014784628939006201132845677978331090134432252813812650041942163667191762047661075979667201995112645305197424913744917547142692897518955962368268728008683715310584480159434204361089768755986264837921652886944410913359180453313411062797287337299312986238182573285640046626472653978198506366298429847669451709775785910369796585898075308121483829739913079122228337754065474657167673316213673966699711465873714524835433291909160635511830917785748306390085504098065090469497864298130465477990121616002788772131170769243558736910054841931207490032652404231080352286016467466393446709004845588090065621962770272668916807886518663307231532591811324255352918342725269834217998825845610878713294394608947974191512907951997620496224423254656321901801394694723366702703838018345593371476591851683476794039900373676595455405114475108519926448806837795498337212231969753447531368850135597337450878773941661183903368429621755687272038758973157415597871846816008072419158961860225687557538103859342309832580492188420748192230070205632556174088801902567796427796675945467613131218019216264199277830551396439838910566798207311309610595854686274079304168845440322033879597672732720570441321672868403354742495179943351337171856223544079286370376605782845218809535160838071456839660752261304423685031424159853663557782050553599789748679782782523854479826086451177051695960015544251254342711155295880082206846686040811186107858753117626266267603274772472346588017138335125080315738929449604594694289044678005837119958701176517244294255507203644320333312619595855779788071235477994089315651029649405728272205097994482125130497774217495237555102820873557260734546374897153471148848254922539932988482931004389528756509080427841752961451864990023961497799908465827248001947779099971118933118380983938311760433719743621092279434311039518081266171000920888756077791579341732287564659260253133014494915746349336959031452811073635107500826156207787865998333763103588815024241683025752309252470171930291006127739447557094580269047915987648992532667127839585529628323916964876289124442540816638774222058058257719863591521379986162660204826668830913376676334806685675081372740607295108641316324543207867711383381133914034675764888858478215081365480435670942358721954498325699305863253581226484718074160920733268906698345389777243274201538802085322627993500494459217684732884989527910582573596324063042095706401006623382025321180326194051221045866520528629456817198142164180911744157657042715035083365343092647934095412611680972200777267624905453419431581590914109121599995185613112950481799632343267957157099327425447392611802983917689586513679902131506531927366830728624649874858331077054682065626403606749959002730678509971714494192714470316383366349892844614099426898423951040744790985305453908237100970894022518694573042340245116896168953661921754016937195756549762095083552364276742902651530238611063224893585860328004534941609217224079480440483287365274871911551201833857419126663679514754026858867944976239615530486822027551983400055449092887764858863861429916714680029806210299541812500188900730443414692547690301773307175183506078452102611205982559506067185498400297470736848532096606861119212151332006923130336654298453029993575399013174655536774445953836876851134521528040963975396187351453278498766064433138857679375342960975888158368629736613048869726372165397816371505084984943395972674284166074091158391297463968958218384292487340237261778076312195301277602153063533619563266157126715545605181299499130402852900499780135077067526170934334946879266370042100005248285985995458671976411072852110800486024801515146665101600178514632562046384673711611928348616396116135904739611419433497338562112646598344653423785876337179450790259266423803847298551411160575255025273521343638504511166683629940408766090849336030802952431929869853173557731315115004136708399241440482941943409365319787831082987316031788605392669961283014733559076701038685954752381970314637913404715997825678897788910857332853210532423657845667021965462533355592085421899720352211694464565162580538051982093251101280995800972416899413382750182494825626239453378342044896613198397567022471844507301169271369110830390428522868759481658717629137359632954634582817551491275182162008573926339786920353328796554418018818961881504748845683640971083401632988960674993541070407175853446637982774830097616226784570474293422859308771704777137853233458078531598618003348327144820998499375043172133202061179282664309644307829838536423854081668185291353183584606185772408385868916407542597594267506410943885025159739848488546280446515323266489907270224337775714303351762351913948829790906352835611123172814474192534169025310429843722896280999639153886275140104364113377080936613719077199147120695055957720326753282518790721659112597709810540237607063477711495533154309682883918081605911126546834358275668780043305922910031320121097449532475974338962883101045664326391581813219137789669130861009569805268023586799200504719080333266760305983606809103559500546501265334434181960619384751430421303174045573991587197373561068725589694639697394219267837554519117863516185439545595403149972205042559787647697996880958933757404834202750959634633710610039951268757930933384531613070006839968636618507735761245046360255492439532318198439102260425892585777187199578168358472650997795860246807533973897941649945972354497060216244637480745903856926681128807512134870248945333093463819334447081307927676579084109923352248692577374745561473276321480883901068035787544166171452283237225554545186526746691354112285201356799828388067627936670182101600309171629912328009000642150592018460940791595354707266544802984606494531771267174543132430282248765719540873429718854100707966078199761590290593724309313346827616858437435494450773456096051414673850166561261156986579285752099376870934186945073921451223734462013117096061487465745191108794444120550644927137033620498454268622859925593326091348538415947797332215931997586066213355196771855409885913711739452682074248132114190517476020078942787977532347098654398889170980978690540456658298175398067550230677653024994936639984374394287922664859638418650796744757393141293798666912053208155687580728317976664188650354501244243561473801414260770124363198912393602665608320638993920318066187473048554830252191593048121941469234472931499517638680208698800397600506177683854188012011940576851485289723076326331248736700018002194894192000306830406444341801348018867475720038672394337670990043635490510330701690937956014444507161142574781104801954362778578050250509455814668714761696509138812205372652588305452004503665855287429792245849958850411026060226928593603444965091242783198198754472481786784063855786386399092720932031418408922490450530194597700826810524669354721322279560522034761636893535379580509388651623539358124245125181982108339844563110227068988242204990982516835553929514598881306861045971495044237952009249982027471559554181296245286977765968353943236480530694076220569940884345682691197660155616948789849731983602550947749307639448671502062137330871608770079095474968870527557376378175613488627794585327922255278399086374304021440385858438460047526957969230960441636494109536409590055447554757964369538018510838468818747055740821180964268038164995116599945411581223624038202778856163785357586250281362465128020210830653210229808313837332143112769350459600952078092538154850946086580886966044130141614411215679665048929051048295326814042655889967274115703014738964594095956411339607196596370056628768317940028342591885989921847668356878192414182453253238488778793761683541924470489454673507750509142197266774569051991975779520978041271174758352495371546351448847394011395373777938535934636702115717166447534558785789013015896307101341246040985681716584749101890720217329419431843129316688673325354597278011993947891227631368420796182004701328052572616824190558981410010533123471819401958581147463271505664043887337229603307466007497130387843282107145640975382421398080445245446045566568678478631139557064224852080154938372738562364873083901628246957811412115640812976010561241758358671616632860087265827304776187720939433087244023852247111685902528419407998784869429259824457241370274019379589636644973540970946369850333462757537897495260687729425704363137921297498015251482995467982858688574385446420503521708037974136478840290499967702671442001555589095774047470319506323373498646834814772447865327985430885434663945906774905509583049745882064021518832394458127994622922953455883178014327743740079261700949306415891214185884912580722890629840433189707082673052234620497584859911847809267368793961169449309649728983160360247363179016959306092144891962874888907125876438254366343116578837173023854531894075583884327510036276215096613564225080934713569508101601896198454243620824235246324567512917529459328358456159726853129834495641124016027169706557357985681438588448329360762500706475056195856248757696200812226764079590121831255653962251867045863320809388339096800667724100790819730200169020628282532216693484951155687288179641903661413538402206850614196831123873763983822281308139576314289996440542532723215232349320903379212647688543868445061399467172885357801710426966312542918711192903940313104415768778256913064407954225602428546378110606881926458879209716002460608860983633196620787428767103968519705165241536201162289493716246708449445303855664906797364866246272117137864880238811605924076131170220886971130349831890560164428270759353084681788991313537502602095989781127781433431568883935112376322774457790129090507618184278253245201705203185920267592529904963660788318670885676830566446781464821997777929648178963039352900028676571131255481358537462745666294378165919866390329302695267817093255554378641901072468713846106845510080215725015226306330789915294417086057039347939695812307801416599776810546141898350331589970560836748746100798373680913308409696158069314736633029746205075873015253623486196682372314605923475684251350477933686713104946173001571718553018025373452788797184147742030370879967129982838345268138988439946333959854853743182098667165906892494301950504585410474700977157536426521982872221871112391594758666666935530346500264392337773789335877496040045212637470648263256880207123877669674170753054411671776862380619495486235640134880342129777966624158929864856762685397618423315772944876748397403261467082621724550831276931297032710956103503786106375557122394876458384738609419993976512129792559802657441857070985155187868762451326002841979245631532030784915986686805392351987435245826823482077760158793428125212652065504436396041917807464307466660113591413483878761511445195640316289143029767704540304682339114516119127386374341595960581969811481124917339883366656480521182328611648778695099150100152920666167273996994935772778415458678368243959269802348883513629176015753105973219326228842326751280918610200828036476296975481310914244140689375313953660970909142052953846789164116709274488044403779155013369308837580458110236645665804385533838961766213898643453290920468781648936065157726130363742247937774197279669374987038599692079942091180397365739864918897709683772806668547523397073350394407685850895640130463654924294609977133015164338941388768032801242573397864639120892670056104196822787048224893365940110504421877901530815213891499931239208432369217134572375039946646119315482886427835371261638727820202152283608541560056204882812721934905185884802423544802495171856157086225638471226213100364717247258718198544505704511054829726694072714928042518055408107869233537337962964995475229831330073334312968347272203627208838964084378517354533143604080368349487482229338411030260247696428472942054929038681442279560965875570745744248262492263702418512612381940192120352745663891643766702777310814399453560207489215743576025195453691991674773186423119917068764824498537012763902638340345633186945016480546173630018451512065721271529341798136366472576309611877864066446764505317710778049029501232691071970410667557947839604180715274778355402279578639012095101465732806984791855199373443026060871049043488986519480177626064848940312015937737296301023915524694136644497757247136832601154612283339022435860356227898637391869531319660328619503556536293120251371747707923597908140952674232251091735774444903179094173019157381159978850357942548494513381493231853165195683338637600489391092297329391374672407516140303968289584053059969358088231168499917049942048414821796704514772224610715840243217288819639501703239578436680254503223199083449014308980033154303477047184969955526027782480588403784676078325402980477499073478052408832897132176508584481927932566217358700060946764785357374885551427695097570445540765997241924758248555118459267416686034971724291701407650901006242067028845406779059187695891492453954149321992087736552112453767491614115209322182871502856141741955328276940178667483496334911920575486797403016404889982630610652468415962775132032583919752045425760339219735896603873456860335064080249000907079916781223070276909846820129758367712871820946695823039144757955110422862564550369459137494331942424369845090809118217335082284253374552378823373142421912345003264765312725489244437035977971813025860063498689364086438242971243395201286627339044117891389015799280407889250531409695407755806479680248500772047450104558408132630303626673169111724048186228873231476180354700019766737401283665093996195074883020786163816010498138204136129544773439018822793950894787175287805616140410426473222637319047146112391782495155431575148423622839166122082973417898800646799331570579620875318952772968662138621853839705201204842960816564134099893484908494984824382204144019680807201918718016748479133598258382860404119260466288968334178503840090640812416729054930732408631835946203022809153219163590112130902637979271063545095365930580612463380891512179427812575275760524844518394106291613905520763147744837199519436970123764335228540873127206702528918350713615063691588772722901700057785759095176882583244173797465103655892659620747546128161529005257922706008768538897159620947991173064129447508199642174344703789156936021802551735631427391373106260525288125770941999130362738809757481062220891861668072468645964288618751332718345053271044249771904246945168089458831281184383093884668691282482061793627987579844324075331352513645702929069786772871832197725525679120513983392078808404747022878047451618236710344413192959573015776230011569516973513753953848101772740645242784855990436081929754157211654861560188185971604107419850145198602874519843449428219677585585878272437633452868528740694289123067085325787461286256895705997926250953257517693881194317124472415227936294528326990245420622888930771712797780597220295069155544532362462989044059658099997147435005773050312092834397333148955769057732528481440193801003937355658979052818051049776556228471856046256061386307516073545818068069561843020815895653178674134384429619241493337439855397508361184880203385033847635616560248150861736313933263585241940162689681958815954935058425209306397345561538168810701758262743384188777041183185379414223916363986833425128746117447866510461650880395134303483444795200680769639714298499643616193603094010562784336958878097129517919162503625414497373350894507940267515818580848900941025777686455117010742962777744903098921740748536382542531869074058411825340041301391369561318609056067671282559004219620302730348435334163284965530753269126546128862745412575762725035845788765000434465018254877908357869861282677282924523693762362760101731260305006573283856583056554350215096632310918076066778899320577248829818108125494697844807302786146618791469182091386129954067670785606816946975377488814351859631471907638865456504860426311497506979006595224297633688374636764145386141525619166214546901151888544206471277728282191106510608702337964984325639186610401458355723690412196598988188818376252548039082362578352577234891936038413719065175998729231940197830199166386735581560656703411569502624495271252173623239270284145203478032674772273299818964315124785140815690591274193027882440350772073368457041453892240346883376112882686771048818540789073040625843366890994018861846700295637413308653943761474511821033397395335021022206769378299399968603834483413571865933360381245470743972601142788061104950048777596512514857792007545327684251308740661896697707774097558556488822914412491461557161274138822888425758900185515638477102638585287205169537145508922051437676404349793639224466430134601470326857336371867948558994651858724141750100654984018358839460627308862844743652098732992853192578633794453562355175072432363499879060322632911638505250213003140277729653996492995157171619268390453173409795060955413897907426251872687442815107735579060524013583582015893686856379068139076823915847753549866856263856493950404803640371979647348187267964525937100151001945833361543864112104322852529146403696529760867646114569382273867039396723729447645399039081977914004922461416583983303856869589513087939225196956043064176495206105083184435448244188958141598534755831581002617810283855581526523647684691981230522735329557320614690813522275344994940108154952579987791939682059055995297393960511528838129668514401316806067700145070135207386746959960535068994378440737002218143795894232005059267881672792286900232153819560481235339583182062843411740299094224598280463641856044571844717157586355519614477298615530505619890039759071494004950815779075309339863941089202773749817723398593630762539737534203972799662590221295275918985600371042682371541382601689610647999627987606423197226127649477205334174254277153142528943703519318461279191665529146698397340716474648561013663902931078620109430372879294067667283305543581038072764388733940424464422174168684242577365086035046548041488334319819958814304115118370053324035400417424483499152572273056106445653652387394436447577024390658962333504919835375243151371856511547686040601634839382205278773606061647660917439077025282714792879201211465473338328032799381573587277955924685480224090753813174697903194893470755221984855905905858707638212348234617558621459554527336787453020142300987495581935226007118545754095262248218446786170751751454938890005373245802957151014367654708937895517616628706110610331726305350128939190097099639443356687439741175766762299085901640778239606126219235614505648490220861970807595766075904779403282158410116250774449340178630623012141497999004321759256904298369147508026911648979987544074158492337625822789765560167437619169905225952226875039706997749704423826054650782676507302773673768502958514600848010356750467473634233411763666398445347642493985172971325296733081039974817024416417311199902328044058752425481486864254457196707501284641376801987363783094417276895403908861492470394648534320374384378205524718187130279225369555593392807675206561499613850011421669761354920058274608351947116981077264412105094335136403683917641421262530280994268026982889743157534770858406645368574478846813696123961016375846917382530022411472574416283808192400664223779074321928811309516212447771207310288272714058102214690772738485266563355540469760253463603924959536775792741259807402337851562184524420393246381632783651739772366166845798313667653846077545979557183657251570279736600979403668449357197201478490486984833829288948460197107635785423364958997112192262522411021153004492958990300318424541473965487977549606597642106240759394380655073756388174163428531739150869619093664854563869147302869871887548943557438914317462772997334295303683112882900687728261573850916587219403182390922024656042762086410004880090700468295831150655507193952513724338707953788144353064750810319833817172692077923265481734804075652841854996476077771837743734647974745288766453310643006471925881324997835558217053976678346088599865302140947355694777426149653000387715145094524747090410839551686167249751458493950442768935424221008371812705551816019364428597410394753071444512359392598370184599565747321123532372205565436067413276891702638998972104618501344941078439208888898769885093046338085248217849293977622805655358939175420079596167216138180938501664360814760734684152685300352342492483994334917189603928000771239331236658030793041224821379520275181738637635287483597159146462167113180003010655766937604518410498862715445843420108789293892474081818985391746893912073341698553152779233856754791517959520390047212959391806888217411138901410386138342770194779684012672483707996063288533261000860604091878058736737632423151500454509066734910021358035641163422857553543108248903193399537974244727928104125295517987929032413808092609122346654036635578360626156238486244727399960900503453660721341586602628071615117510421968824507479788629470259640323971089481467687405190888323285665357407975193756129568655205528582128814803741112818195719498114406841200894983867833525233507605251957796925578736637245770886692492407787138036112036599814893037323195092155030033342994120965543975820528447816800157065069088294523072485033556542523636930901948999475529544334493537215173645709482871882457262309903353897949560976303991008464314904544674441807574589026661669747047996018365839008703601662278876147720498972270172326499699469417013262303646710034941156746013026120262914339023699406880594597896301353606638940757447198727160374079992412048961637203777569657489962124177491205838784542182651886121155024523202009659429030914447185144862871851323097977511083697974869122751140367758949123198945738266355129872805881122549296710058142367075688569182248081155071058526162868095817827756314710890610268241452120307237486128602499376094788445543536140419494544856849244112992310104803935487239749913122014184623637444257493406203456455270958431011125263467148753038850449709658838189141870266453607952315588416558906905969853657756324946539790665387814194707423357610336313011527855897419801744855938947900534346606758839035840813507230573125305329821598261312070640245042388794468488034054711700104680769817320359933677451047835549802750734008956554343037987670910163709940993122681838739352779677072960810542449113549129942591138918942482115792873604963001385421630848653206189932244101590596395433689935007701320915458508699656865768147001126323111000162072107342285268324058525766797454828307174133495068197864387911575790696171181352130033543466496430118706911340135989035839498195232217426736554507259405448047996399926104662657995193541881170966853759692426177321288795101850219593245435188038705308417924219674918639390041864838567290306843771984026787119555151975710177540400031717998561921286540686018057589814956585416288314728978256520356874698790615177496306747015764792718386712623651654753663197043978510937446579641557906135417768637730280355381213159212377774897901276736870276590473633203968860629727712309019725954258355297429071435951502975563979005679985469098869843056764253676178880804476245194928120455060601686134736908946580864666146058568349501206460686230641468191885088309613817046460889567347518936190483107423775992841725612799979799287337377705236709677848692822570556466060952183873741178511011360942155740942554859849349309838071860383217260670442519063574986673880786589120983944289740699992682253506464554131728753497863653602595210384294528538945087289684545429160451239888496487022510190394689908888684386670626026382839852143602259170295758919862502000307863666248289797678328699008712985005723102265718244140632542936737492199849462999625500868027951875031053635432768589961250230466373077052040969587767524939940461332907933252630033747103990114962305025719272189121918292314679813429405551339162589271049348307022855914321234463449428525623633682196838851639754932499481507503035214395278090443776470549463739865505583196929472948325438208831751072059718844526906843694530587983985538636185809077711514310938774683782606559885039944732566942489465026973580589600747642951013559381068626251051314101562940000406480956772862288546652876245185669223400934763403632550814884371077157908916313153170066560953506613039079054641237374461079339046688166817423419670352864058624249590718798425733517746796893888594573778861050062309970747845024416136122883739211889689735859292614050983273723320700240488634015315528685941145248178372406132358134977049122257720774721353620637031517898487035953795651870480331749935175134328001571130395448119540909792542257556590458724787060594697260151406023401701791380852546546879288808577774968984732405347154585063539420388941890061058977305849731697480758516909183741250772681475699437194459212396172067344929085422427559217962563380541230713147588181418891642840401013671393927486922341364736304384385209455926278686858722154788817387948052073096685182031844570396187972597632570767086435534964012715437712613578562306844622934593984797101098461849150379499349252159682619819640049596590188917239283928319173801900153805833039198996110697967716129032098917077024050406209944615996639300664468838477774318268937263795516347214701822022494114880049712593249917812000515734373478727317034151693742622809491986096279577425722962327507426744263409255443206608783083428621827901797188986003383702089938132478126799091936460470827622697174071862910514314580156798396701965286211418286987658765105165231747301784863205017277509907996930632679362241466844680856550839478362904380819374052344122634071895043543286464971216952456585157169623695026734697950137310564953412335279237428368342199338043666688103822756542163791894218042751263544647864204022290734663075503385036918820947665515573465974639066614567643230170212538843928106692228532533222435422035285646455972545528101590597015438812819398105086102049655060928999482602467042290980405665869682939404737309178280799788628291210610866550551283715607815222879509849665687455898214163614769142551365615392854262630786890666198202224793774326208814383294106874777453740089052436113917268947423207719813474600978343677284321770746208692420294268145499131327099255695054577177292261229327712624358955488551459826658434018542537369844940938319215238450247650835954868868246111132565228216705119977573598610464675363526359740547452410604763623422516410518450979812516694709668364172685556505092606744045173043275074947528723009906816377850841658723368886224624591804734853703038627861847531744768483925127309700139347283696737107187007890759268051823502637583236729146112630639671838485201322351124131093461621076973646225042792658505277273619876338231891601693552924500639799699340129429831274104600247170333483404236902020010058210603973879467448457921306223480687451323513191764275307026591943567278914916659810532714076935263672714316727889096427346216853127859203248892266990716199489339879001092013876359308338012124503868729527144188020174175946209573164265770365727780047206764514183137625846447147018193592489098493910585991393396011490295256339539040681511925214778057323871254977385615932164658477454283627964588836533280281420821152077016181399866543180721675254082780657680906137276478714479392826140801705345447020500761185723761419948055651981662181841424749813455871024845991741182330792208929848593644038149854297047896337079061057770728766330158720784361687524692399404431295191067171810893543577716756247734735595794658274097443977645808907331784461032939996975331498645717220538680400011333271416947067352162241044247022645854421025277958718939217483339355782188293818471675398371124151219236106398950329518718357140417922231040084607049684683563576013920854931967047483461905126286936522529540691544448307730103607550546839613967035756191927322124204345347464086119346737214909856512386664740214410001042975364546691009960873116386572928620698244470540677543309525573452328686432217747862858503527104251782096890690753266530500790933137879601622247469411226207661623558095137328973481707878999108900722309852964665773282809290102965760414769245643383637162733961699002716819507286395085856270565375375786959454936418333621424587363537957164954266430815660054810047401041645623355757900555292164812302637271548880456746764009304032804479118216277360935108725298364465531486450802766986881344201369775461679571963842568983880938233177025688150464414571833852204833765772866745653646955583333878362574550797583621902016023323107522872838288639226086662395592413768196042588330541131359967738836234381798096792322687296690038339908443378639681869532960590435234121981954568173571131453008060789055805727830615001346150019238587543212258206964697935184832968983886613719585991696614747489496453820609877074311540797694581931564798641405735179459203836492838606616453215409900847575382650814602122372807152541563318674888993382509935873421302384712719262083043924547241347558982781896321479129350981730958441216923521577229125906855025915775929604562097981738789100501641589731115242446868416013916260371664387427931023346650923121901035748643592560211023524445805281675000896086929431935571154081428930663970448868441821955783101388519586528595405041210184728655613345896696274012299615828956207267964909392977999071378114383813018276987005946509333555008284862745066450606779487052265850596744242879785761821644883408222949073013359298191172900312073591179048441348691837408983304952318480318013184086814393007438408874747865794749573571730278097857432828219702841474715928679044535286743532947845088233115562008737501053072336553100286536208974850478128443014214876347487205310489246931746685891993795961742673023512514058531202455491261184557092394449520461619787943930915557117401765859441191916625738930912808334961391854745194238561826291335807505247104618188441742364687729371510547072747914133254587570990330217145532648494249875839737436872009943419906901279541668600813822836444848516008088090703302652385807360294889266832706441321652054243476548568096601374046349618414583400632621989210446968137021520225615992935533579776753238898704440495827468876924544849365900822255041521797886843483904848751404548989185673442756855507685889874595336574865688083411783266409461452759528078842732515814474121265846344248257442297174034942422061139434230158887567272487802863469033517617537644160128061617397978397150766059091769198207233402509916940514562618372049812700860980909841846477721982341910084673677923168701938226506571166834127494888058107194238959691095552213476820141074178498566575936780420061182108377044705290355844817349814948474096787151348375641764677982649906434505083794277365988716444554259830032920908606009859020003732102722633704800169853915637567483047102861230870290330266736708282261711725650339987559455688027181924971204397099135870886127695446760625481562294481619221620514525536445233249334217970256078125182196961164295528474207448346041812616301574886416460097159769690500423564225516240266055723284952527618661282435270779809122364292142276804384207661519737200537633785811374030049855578412035333661705044903614773879108328658676920249407037017144423297279779405865859044318036140458733973312917207425980447619144851413935045154982352665236544853658893142990778173019072474958379468426642699342380387514431120361283691128412798798607443453834998017509540682008090716261205496735532749019577864508808534038087728418321171455895219744573022648006577186561510484738062673100086902144850360485089272886137181572524495469053674887083587342529001002050698831849761905792668527027754460575343404461235543763467905814648756773755790170618436293045151163464854212442306999779675737448642055393214814831695027005786969988871988567369982254352087891508343615488436383492907464090936406773302173335590174316163993158837149918775461172683274687815524681250746244921393829095568917024620453634342854860659609780135372193980284538669660256851510264104744511084398535821523326165813978075452400321214787871490666631186347807178441972704727483972785033693059773545904699733371211581231689993354540470923870793243669853148092237138570022729950685261234246556598066431462384127642237864657685374222501695320788468830385397197305078688522648808226534136355781884630299290464043826963681671329323608159994533718675051426717398234658297074784811564405866985895182022255856013375386286030140682380560459644466608790715454959153778592346074274789094260223523566418770013077488451802877886778957510812270567935326989734382966392949427515056231956117886361932246911574635682675251742328435494659157368645580593880956958555944383739254544709804412879621006625663947761102277146593429478248492860443442247907184391281162687570411647801588642368238725806880416211771907836844604092082957103710876149775493237588497799060509240763565169484390125608820673330209830235958760459253528659906575629775254695942432398191078153219309877138968479010156566010170756977619883282276909573918622250399306885742209546736852756511067147315091601485140446598957332161407573470386422296030294029727001201630449370260928305208162333144772172569022205698851252970968776404739693419106713572916443828236680583001775644785082459858625725604804880571670473057176577354040251921628750823015076354525324188991976581719962465038628926706208977049967587967361348970685947315601820888389571373925696357900394537053581294951369447928039835848971526340593509476122264410124520315035678725801662333420542608427093640189668549564585736233881035313532371278656770090544650106327169910626800229850212312559186934096647789459582464926410069116516006399719031756220933542368849857393737819274504468060829171588988859406846192830223765235840401222689742827601314112640924207496685806893957600795000068590810745427924952332366726584136135473273426942293293990869881696454876165032300199995145669738993702464088908387254187456875948775417677899841819548712749849134403851783438055397185599426596368574019875823048300490629715455883803030525987371521393560564821667229487442329472055831825977703994892927296046246600633022249842398747123360587087692542121185165465278672017451772222815763528226982594837179507331661845544682927408026405979971939584889799058959784447624655056440317128793683740559935236439651306269554627189618605593171483074148999444720134204774545452478725895493302049975286004916665577186043872414832926582805949194720027322371874104264276584946470961081265823384451905367570061395470500762984311652875712891676953818968975343322755378804584436790564428066475806925948240293391302252935120432874680634697085820995364451758943491858421878165829678992317000789153923006224708279077849561986029574042090776041644821835286897562400734527128821346959064266293597752765057334062281058920042336119479272231100144718491241043207605388920094731590995115448314372308436009007639771504799353330590818792080141460230541101573021167825286632749930212934502854546556720996816402227895846110905335744050414313681838840627495752883500619498195114555173535864225261900691267691222119887291305450615184870663339796698723354397962321103003439582208887926632150289490442312285478106940064817266608077171390811726022590449308675670367019221482489084905293600292721438604576138840527752775204665725859038580493072719787021312103572111314843424171709156679713396357955719620346901298303289986694876634127953737484277139326995238590221584158805925398739977806677448620774463552774736796388816189008125485213595313847773110492715616041459512922237907012966592467769186196470366006025215948228727964534319319346282413129875898076341108476904178577554539555537909580005637963728914896554702310596410131380850638757962120471304495241258666579212653078375090765356987041626693016860655627393676593033087797999646243329240112021164719073723514548520821935713352083864590511756626725834125037073601371586171094933533039189895714705854429088957659776899835141312234243998228695370878350025694954662553105146216059268601100540948081734779677464911173054254445539127102630705061149797102363702949064506503893827881122230467236301656308511117634039228835066524907582545595258625339929299594182023631883723217950596938154656337541113515520677871464798245021024170569644499390324512309481193188126109353688855064191404716044522472104211255363005230409981205997607711920500687658046982746824197950633389780632977504693893776843544500550167383145553857264338921251381560333594273405101694636727051596747421106961915220680301290094635638992718289603956374874071181901549952087150722467817756529348879443983570754551301202433868942448615699587935060242843494187613165906132919149572750978992658428716241428468772168511577716746208208501285344975160952955532979148297328260999832586878787301899151078661434463783770938820243030289042094504588787952596395887316458106675049202717347717707103361495011712128849194985270503777425783808154663227890811292764001607245064370857634338079770710829152502819275638868179235650644978053627313767574028506443234942363111315572505935448549108276037122151144512839017062651315872746637988526458070107137950355624051005056810586306315739700627780819666227715399986362819009604436851309473879275327284011271910808301872598731629340613077823536235932662884870851212622654195178612704665939407840511367364098541156945260508929094321480424445946304117867212684020272502050930711675801363989198680534267847488760647329194825926718121788898790152631037548369085690135303131876261758905728756570326255585800153272785710622378744949054554312459721601253893622162623147128118235180415592210935263899724830310924134812803735082869249264401436644972717380727875993017181341802561683478115048080793615170425072809057943698567733207409851542270732456238473516683727514627498688559686690198658075137082491960287591867404919568449298998184083921716230360092301700533066874484403051487539547966076315263012137594557441552608642848590587666459565642250146367044487217644682904118052705644234733696795469370384768883161061722261108269924402245132839481202535857790376344052959765382539546536391672675545963973285049214398376663381673010770930130134657346488802025549021942728792448734250005546714611666867761136297156677755983005173625457943676223230621789296239460505639531845412065429595394921408617249686689991534010706959274072625623248164833327161525045454844817722772529962339747218663574946052664786037277967878479959735143419729306724358018945788189187454438018672114688888686488932261425259882126457696274908868458267770890677991453214619988566602367076056138509839705654091056571981916155886563121870898516405442408331100468663008378314058862758816496245636985995853466298519890122182212095084926365744074768575359216205041844880934303866493290933507167718032209290297767188079471062716817077733184112772840547561680728424400338250244140409909323256796108483546376679331729548003576655419012470537319776123993056484878534406908873661007252683193544785406253640929686534809572815807177013461978089646408885171594277740623472091122362859237743024018956643314886923969677758885176800859234416990558748131943805089378781011639300905144531142221858935863994800306012750227661311889108569361516938805005770630997427863615839047708236212821768633510105721729415401889465321479942305132650922427777621478404463010319858230101101019520319800314597253281537558304390724875980619714310043446468999394414393469431700177218083696148241352078426669173342527519463802935446229379082997138221106650061968905846786829565666213232840504888801953972539390277531570208255541861682004610378747395013530934343216465233706124037168200587532287200591818445032182992254406952030691577653937143078579618161360571666787178995108797654590718583355883343468771029405940961092301296338283082750340177086741693534907343233284744448967619324589431289937684047862310353021173350413376398991898587069908677593824064657348348521293690763093092386892790844042089948655549828996871874060589019302337757855223250957246836509381676108296856785881364409120084117193994407122050051845123970387779614911529219592105834611159476089551045318891704541930263819253784743337124237531186424734533217681363638752808761535783105662316064810680542941207692609840160966089159685272381017962541340770038457554162676041842905744643078799281412409989738824616321601832511404068990930261703395308560576231635964663553812904084345854640608423433060404314212804730837617088887772708374857689944466236143550047692700095736319697946190489619720225100579487991479882539493377751555676532623273049679605510916852463289295101263015354381384021756273201557451798006513048085506419789077141079075181782403911518996225033132662426350676623295555601412203260449949326970723795803244278900363007017984758187788345458310368504263064888291610126805174635225391657081549587827404801461560224171545430521185821829444561567729418459511402052617125473004932398828071156441992961456734695952817972861053148886159993614352296732457405752761008715951492961171779231369963979571704546279257001164534746050829892420099915780201581578101470635039077101736444624552784754994731453965618515891364721666799950376025573885651929476962363306959697299928384572176452765211431072970870196650954850563403771330250446951669890695736045268756816074330375998648199018508373930830101200240678688764388233305604830416038609438197098136448890432791435043531780666783801978232353350254065695288798706523542658691253783669238997312701794088677582350660455081125487151671680247750957520505298005106288418897987953002359268676969181399934465790322399793536410924596507189062966529517894338739840919891748845657057811867525194938628302285031281849867085164254897699669588180749255500028690174100008424563776384618454218688603805464596744700622420453658004896670357910546917413415728027443868354569708078390863853398626042446372931009436128679178617910916437598361227484123271017855744964343336710782501630888664862558036306594594720449291148524525891191582262055974457843496533460143665380812327687997567335173362831209766874307059418531950537129042853136469295360890350774615741149979879652748719845629372118814310062586735672670370656345641011708163377461979453696943274956304959396649477975484504890137305320799115834968833339884646645479189821521787295649768149442046269469254059367061080992555082355839357966742947135474327151677992843028549857488976928528332751794882238960597272480014088921172324592341290299321328669592372012529805217485751815948620860354458796371269910472246548118355030248435846907129802351972833252064918634931031503071343006378262572332652155912738405998026142820864856441445695161677608965770359875982553197222100560997245359509733203025872839278849840181256706151875940707452408667404973378115904741693812674517501013388685590854466863835053565839592738400952310308546257451885558122341853879179993688652122066006719241686576199657645877593568003192900202009364142099197823276443242183852779184141915557268352917911620155869012543576132197615241319466151694714867339800704998547671936466507433885150149057920209188256933445303422884786221810819565940181829619057903308021647701869022315583097822036758711434657352741940512580282618077859095780496665394668895329900308401197285977696367798607598203572262453433905844794697205505312999328889522749893896171920597683729394565526475081698591940514001061147039108071439638358677500845394477420189984875943250720719786269184166320428473500583315000645751786788932106290306369465477195529511717038902380718822440229954328910952515744130806228329899942532320696702442075078866255315348685644297937900247960513412703131052366371784151467871888918454442505189416365351440028620328253034419472136268817319866088537473655930229535138361601711867782589094007580100587403134335189982904604886734322577942456682093422941796171956244888278367226327444684460746361983260800259810739626222641098421955820272515206715625336749101582772518941151565479589591314994397380855672847701912002459098843331959063940739830045818667272872053222829267270120241510654415503425731448007221771030055071046408661795066315292357092957967121919353584766816308304051645805389179379078015244127417236444788048714744263009663329271120300705019104861574622117221813041655770808601899993591501020760456840000445273149363295902041800930897033744667614636373489676209668152953481311378525064024751492830430630651070522734083347819825389892400239775144997833667740875145332293408062523478819389035810019731442242956205452440399496686567843207904903210223295519102480261792491733074929295034522419342026697698712358703463589579736862777633471523670052600662166886149346353796640374513847054416131366318962089602557735209622962151130465668513043832646616429898850451160923391026530716755215508061145190100558306951728500146232203830982066725738377977654363976780597741841892409234344301782179018901458688946032837745495139834895021613445812932175656200592499069009849850929317169082750784965864030796392793740843593648211449758248126755552272487403467692085468560726580165708007173391889240273999585371716274380688719099613379829452242106006865629770310692979147208052615096380841868101480576712932505837419369413350153458820727710517836201978331423176060118696401586269809369978292867401263846272725101829659515516593452914624871713429083321278681724687936080334263910444163530178212086397400458080471695214175323926916974545768288874201917972175845515289268127188751942276086275152927073996360776297300952636699860971791749713257903107781030401886487178850991259789864175561341771022631860640158132892722169882911243621692822432320336516914645994905378180150288672904270618372219362482761033998113648807050639468471082503254192393684780511337932382892959726848589294859273026613650811947760603973961489564668974165887164696338910841374268094275102108100260640720170605581773505495638631217235866091661236782418430772055291379559329440483869866768612184902222584182019073987722658146880513654346248716220430043747124454862818152072303184231277160136125363564960471194679547139955306597365409853015073314992582096131510383197286612357220477769108699305780905784755300485000505100837903698941910442754001477237004200504389599881983526891156475632294655395373264236396635548064356458857599229890646204270401918186064263370377701035349007959065957927912752383546928065842307333417131973602820151025948497020565535795530545004301649580470274257842789116444048876214436811821241211461129461048600042733291993439879998136869880184045708760924959741280548326442953326559252034482026067192839275398041448812384629295169702841722453773721314397338637215461764383811301227197766566367464484019763818495780753364304941061124669906186471017326108083539258863584648000680597041898751707418260783975950242575059241385726367476732220710589837485132464512276909893693187872983169778288686707285605374397316816752032555416828251210105623148326901170091462071233792090533813178420375555623377257197939776207476166536130297512952971987327791981515850388964919167961330492614594724210348404678555167466755463675832414507403270579051982610795551645829276494693015533456504751096229400384248728365418718129868263400037820624137127378267890817916551546153497573250679420430960905288362233042367882546236249535865752012463462091092442865417295972739418247869109695667523842786236665184071486147052445528761274615729721338367307281485916192104024922188648715328587312285299492433681753604169119308890121027726125472301951562643503999764357574712376140346261452760048362417551461710542959742133110175449298928679268350507762931057821146094639868400022982273710931360893038599283424059601269194032149230388590112559411597884260738608818278901957499844902785416179711505544349446896864229382210768704446560612923917486552706654607334603596978317316976792446683384476352035024255140744381376995299272123410523541717957280645144174147411810852629549451116731844597123652155626761261446497363478085395525611733788699319801416948981817614361169530768347973086920948921515997482748161831672525863911541130416748136469812588956730544721994304855937652735108581460244171381344377337520554251109378525362464718857771199610352691266424694969729003834011750601750704192655456388413510162626484320615762887242462124320915263064539842189051103648220588460980654229606469216055204944823930925715581243349480858987415216075407964222838383886069659915484371220464011894305922327372540204234355234181310513140798674940153623596376025970288384480243041551298347899791400724100194296076607715202369050240960984991975434059057623818002916258687411973681807676839763969810346229317509580313114332759805142591556914701070605388705180120017006502004581998440277768663109132751471731532500006735822974650465145124556270575811112579602212301304823677681710357841340139310597943141203682022827765045402240878850002240628033045652468774400768798965715431967205045327675064614625457441072154551360135106479528594875045491491676073402579456093941367777913557716249583892292621171886185184707827978675187643814557393656464966962097349993552795914526403878008154524434700857444942586008151823577323517603822721576758160877769339504594083385742843441403016683372635478965101178332164062973547174728385907746737318632504404776763028454177154915903787357032898058062416441757296023458231916268509133649939431070866702889515776788586747929844911521013821836839705589680635749078200204531228593291812761221329991815181777752158036950246959125940860583091466128507557759000171523895506718243827318156381185457710038693805678207732545774007189224341021179537211647489688209026197076897131056194632781052753813140985020279745600522816289477031886888377574528091313132406638292246828910851353715298068314033529889036285602858407494387964625088204158651664923914027955417280648156196000922527989714046937255700129731629872237478181224715320372207888742360348430092879217905108245584194895427140181692488276332506359678761883633365389333956302931697113032154127668397203640633510086695644332349700819306576073329507685384154674443218739419067689075060485293794943586063691084172509261610339969057678461867941485410569493066327627929379693764577492041703137712304211998071344318368826675569705063085241211113861320893245686599799575316348412337306681181538202515710840274390611966970635524967644226307143181822263376812652457635747374743401251059528013256267566869670886427761624450167667741273760069510751073635578003609154145969711699084666130243024277930523479259310557736211376282906225593443023566698352373553661998180736940582740961062861912585007005796549200612062140253071245742813824862876649602522344793252486131491012443193823332305382290472312119966448092163757661480627541605833141222641072953530960628349028316426750231070649178432111768353161756420363733878232798484763426659962542440206394978233590931093712354317098198518565719992703415700641430481713163106012769419663669692673107446535773984835413749271216371442362945081055436490776402413156428628949083955443070919264713795051079044057863559856670657061930072748543150248498084072466544361789251685067789423024708810019802542818233768734108502220660598867038855389758697499211174611488565788390964798247750150552923842588753111279815008857803510982860285409454298003914703869831334510053166320815491236612692424742874230951046432852050372603372040361519207440539151674950747247170057949723257187651465332051193958679032830980972678565331628805250617808299631526664355269924946641531646967281687116795355505218471620271968953783116400653670443545537726566895775776933674069765619958399591654374675107260993721069958150363099691859739520505596714059632562637106708472334743360018112590117070863816433716978805774608242109387692022894414549447294209733656600619593539951639398292667565448366997418189817405083222016598974058138229680825599521312282821430015725800543909891442109081508562958193544056388996817998173153401905811806081728491962123728293639806839006718273072149422620121607147913278524375946774391138746512191689761118065391416117695772910660613058535736419797935427381742899227810261106159153802896017912300746983840270866897256080159457673856275840904615290433724970124779181623404714485773544341495025492176144119251364022760350921438200387720886749036907499288675218091972589303512319874794370691067912159199889166799803487394326259184414824202456682808285747609829153099707984579981323132576066908774829164207035014687732260541134659239108767251227935735087542988018943179495748748486430473138706641023838430576378055090004658307065466063941676382875602461733888355937492652716565759313584080301202478724701602716891334478337849704286144304552400832036140818711033240605622952343264216609467037495547648273297310207644575245122093566384308473945532657088927599944387445243851516149348374723762053829884281681068062975287981908567316396214283239704495899496019570317282370135113607864012674221134110006991221768314884133181318731311779888186295387208005823703696983850955494029632611060924322517805341395757312945978568995770129688278892013407493208227615581177612597285994542031876644416940008419049272921594143481789145579973722464408908382567083331685788371119079615392599287034377822808204172819897052407024562849346122404707122110712411316797858083754650548816901589130447436292214196082370530631041033164346456744239961881484472485484153163993565557069420611759004703007545628980208496739367400509491815031209801545731218713565136918922343984137936719613231376683707005206461966239703656179004203553374040845348332884504641077332716812407417476613304891911941382245933857845780865645203684392330493206095245362140359363054176594409754486600480639577501164189064567370440246179929411836287753153292300766138509405790532315577213916648551436408359986666929367738379667231217534441225179052204598047225003507397924149245200282345284735070842591898639341169703542870307145106209794041370605137333777497682737646574173590976506568469778004448991785921402646183225239986617525255156725692558254220289468510431755881984319447352470429426592779701938685767951292542737976984383011222481643858616193011724697402307979390559868016584870828821038019807819615395979676916051920644353027671610718020374166844752875121955073073816837161498524469178095502750617717708256860068648195139825672872386906573434657961747798500267314783561687513508829695186625519934083852186824074073100460419207807556816013422525883073916238934107645259265977096459554587222052052039468796517854550370251578273503362275600080146261342437998188454378684061161224929992888364028914283274209322501080032619991191365824437175984173703336178222665830565343265750907612877574795224865301597202190228801973425368787642244468489000376668858679189774925548312970741649113798442672936316408870032700415717688112601000612226646490599248103563589886349019531152204878713593325859275591356125387449860597266851883627099228855906087813595278645058837773736839628071324966326667620457240607091072149205983000692366031312206580284347003365257365910396605932966819533277544421771516621270410419002831380732470139861939542569219188966446154901308139350074871706097947929735276847514282582357885332372272860871814291716701374867273542120213334717092243608465678911830001622753989371275969459961405876494858950959808375738249953164232720130509647226874744227608591139578020720543358484703608072100821140658079584528758329933237404439833659876331643888824419731140287876053370949067007874253236510917514412890101816628745832718682723068560956837971016061601890705240944458605306858910487183684474155401390943897207240836934400963207306258766060224644210465114396503533546125805799344797302064346194767956575846142381417491238175051092545094017940981695576653247639116597698577543739534484322041809780448280994462604568845127068002065399564222882012087832571808030601498096518559598819653582464982879750231624465736730831012315114991696566284582261622682131594920396788166131501377382832341211361834160777187455047959711397722330994584152831631297774579565897060381244396669664273982114604435094748704666064023865970555403499512719727167820686877811952912956620914729626573770233078218484093117595267748571668868088598053825453877291157410790818060093783154897608618360818358502623574756201657706354014499277046899550685793545701680018528965767262395413885431840253327313238813523142572987352925083805024847443538191254572635510979179650223958697255268137657523929995493349304788315718693998251379424302037904886462837463957703953712907769141455115547277027006471527505362394413129975226950222292513403673761605264314488444595612166702457206141023009656520811792021323900635530303232690155191973244819273530332298452644468851430392244655081808705890509703623913769621608555925134355929036757830178815942798393550255626532508878742156845051676630134962468106448295354587683095680199764769764916507137453939902059342890500475959958064883806169985193005037925255646866680340929449704420804347478968047197405679339314112552974078815450798791638234235661482478360391871249291484844458293618654611787278202457336913680870231731193975635459402886002630160926808404682484162369303638263882674399746260182357755120624941913051638194353585352009695796389800675848243525771769577276749110439729994468869229658291356559569618345787336384112549490691681914463753756781681768066565918560995607703930895711716273287967077102410876029729892910274961581763610834206279969969753452130888863054420764978099251489718766878587488059899653971089624374424288503337347203776858567977176793428831151292836128910363260122337141956155240125904092668991442859021475997920486326501249356542759762891303989739454295893475136400418142946836296537377249276379091449637477615559910042358952955889687091650032463364521011145866413775261319367027048488683003518343034944897672873816435291798518989935467181413080713670214204644526498698685353537617739347984423928458893683628248686610904687420659562439105895729553276815559442497986497991415413721815858320242068036573886506724978813497427424385481528468550715273190541527757401968034680385011056203143019977188422558400325030630894038009009774417770187290684731258606882345208464074875680869858405946697166140791702290151874109910991639084987994822778053904029009074080738314936227591560839175463122333728263852059139563490185104311617094305433180655273064739135888704024928553861764191730861094802225162269288992255599802554685577032391451114424807910927098453792143129332409697462466932992695466673988539053194282424234174969265211295999806964297552783230888297224749604968074968425250740428057966461309873862075144292546555822884241952447248703923430962403568454276518075485903126791029322886816752315543535087780471404047318522758058054360520009500695933979948441249723899181514378861842938334978487972810191366126087640663885276505305180043412989365081303448572667684994104624770567130457766180138706017657315392269821458767814841445183843170413371041805533385841385274617800196914081880500414322242594528571206677505577964982904651500504320338910102946455685506376353829795437214966173234810799298157726928818249418453558034874165296147342363092514212328120518234655106776237027013984276770969737150689154081064307847184328607568855400929357584781344694189069452968046921501067143044469308360405095667843027447996430655404284692367408127198431159315585813951378707300830527387581248177557919534322384136259052242115370224276087457143130349088499084417789708196133982228402988501487188906338512452612799417606098819664570196282236526125770962573516954467465796541855056727873565489574475367409288711549909977034696036638369013428566728493930262870949951293329365459602498861444506779003184312493428285541787704128852500555275642963801728602804155071759406790060458236217965878138694980919159756100025830776128791470122883494703890469653695493035537413602267109751441940563724242556012310985131064197343131732433366652992830472471757146638702560093695032976009283304599390478424670592658784986002640232046408042224912005020491302282538216445472454545855670704336859229521981117268437226775630888587827633173168533557750637953596155988225382265367366902165733014527446985514668967790981804745326761079458150805228915521743493009604896750160854669000172040984972406600188662213258266057023646588372524149143927259505521126767479215381527529096019150464222666776523636735734792168356580594280426573375096661016834891350083796830307950113817839823640099807047522536378248783367143930201300047668379597820660533816508446305840384370266472456842000803488973286401949690858991202207997760361154104546955142428562338627287767590573723444987482247637805973510932915357549645943531309090495909958832888645832369975044507617945137302391258833710567909739964320597687149199979152470911190958083672780369454943262505393547240541482116393954106680330767549449051342435589219021871047983149516384010635448857444969402139898464989509645458657961201723334423761592375740395810289625460273964307460744121688654401268183967921214803796138480884940221405540895261007941330567248312209265398485958353506117971964505783397550076651490471215414710229799488157330666531854473341574613831815436653328821334588798494777829109157870124046268852787555039306490801890779059641086896791805353252540231286722167794646761946718358498065789280827358339103733016534269293531375249225341933753580651701411391959989913033223661147294474471515312304304068359267528862397692943635033004860452059598099119707744230349653326051288186150713101554101173037617443222701975960373813977525991362648540781443304171313052426522285366121713137775038687134289575629643186501737446654245275726298845280092471454116092594643682523283316698680610781273795350488295137925854889519490580091450431734491023529194357682023039377822879347329595997771907365155074533386983157135625221488770364848692323705171782162752051370303149427006598889358549944350635580103235521249451248624943616520883223856180823379559556746515739304021373468869541807202880961539819709169821549468262060800523693922455213348388199667896466466169869002747486804742304587770621658714969448590105322964888298217825040226140085273665653742445078800706761692473044666032088832064139714748155224345413194127840706784202049556988950606296861149452598858184844430143461912887693593893182964682380891654812519924452080542604517013846959343291432008902994368650298176031193694418875643390857365593165572471399838719589522484799032923294353465327123272639183686206187124279946144562745551533252650304059326747519603076913257858358445373289921830007362015614814067845766645988487701966659171004019873884504479330098573957701550493825891693819667187862692011503648988155573626834692726640766183151546724776197992737494796888423606514661007779607170851689013777945753030918960613662496805693889499495446625285313510633340727410296782182794355724768189933447331848199247477865606355285144160474928898170139972540845545333843721996377981939490291147726886151723504575531125505360297952159975940542704844684295114858116761330606623186956536972356566140447014955528778527000542395446230912719797409269512351294320786047626577810545290689924531712944513518603048098711906405299303983023585434157542974647794677179141971273062702010854993037059819333058548139681919788974699985093166855802782202953305122285802729677663688215039871049181672584831093399425626907066588430373398975546772194073851342081306586789064508160928862491076672058364244953541606446904961719486428888137776402214223573372828637077177752891024194448898932450296054933501664024062509577854974922641100767448291327612743620610886505751063823497289725662278880799690239302796649616081094689072942370302748700602997257088047081220867908172176675296869164889790743044773330604660412016994104880977068760385362433991005278869430665662872400252970913284624951908222029477308318602631593085010767524625894050889086946262849384017175430060998968307813725731088528510394285437544454245874724608926222699187588675007072705867878865119526874739498035587869175173470041235781878454614993783063316959088128519198097815424252099701118438556501965832384162021289127908761941231217407613344141215602632152228001415506950440284875515377651967231659524448898858282495769016060857587584903340250893910244768545399663117764277459240388724853717139250391010160530579302309775990015197632641913530101236236388709490421078624688867130429806595003468384991668472615881962629470851820081839467303365945631247297787092771282912163555363356370868053173905326081786057555180997407653761122254779983322254519392458975477892959376525056161593230251886752977495922244016945047667828905954989459699808850339516415687938575024446608436088468627427852459087548669148387211955250267194089483254749719343143419833586311115401944395596083540985412349368574958177954628208650774108048421465598099632127876128797640190671982993780939534795373459080340282767861128012256480473299819494705768501523006907737170588318704484686944235348266222851140067267929896336210661229219017477517358805366886228618942619394467616716442066489359675316624982466082000797102039451012206493760616039293406199993703339943880435463161764214243347161216636407911173862665675330815237779965133767783783121526990509133042066700765543328587225865071416843818844281575279627218857952859321067434598810560881983880945053899047081756054380411676627053042900008707791052668605413804612065429538699353068059431384037838642896261918433798568128053974983948521407625886087665996316279330353829386598416731005922869637817398532616229033651782306504679260453683441769526826384616593024650002951617253451375164510633166577985533565164348019915826539449070370394161012600260904810544941628568532597862729065197261152091755219641250970835371251329310403040052740200606376773673911935483879229592134839249789282982177186133314840704931528901700899292875040436501769011512673416923982028830067136108737384746712350157354246972314373722778933315480078363357719798320699268189773629510001250688203353344450031522184227691714897820890106631674284040007019447065940396072468846898827801680201669054368121156376859654812754295176334910622431188807280421573707876180970217959968212350196939999902425573763051375715165868553308356141733818214972640422091550171159501850405627747966156337186181205506332037602150216616795743541992189306383789139110652629534252963234757463111635308842674777525718216266421886076409315856908461067418374811981730201709322051866291250711934992181662687151348178639538424452613452093173757975485581171897533563160382279858062791190842189928733183963980565118648327914372976806070849498312356518938606907854370891260792669601952127115994688277649913289126781956443866612747676630158903311282034027955435389414811280543630575945849570881641024568993975874197383124358034507640448088063556887340256313918082831039796969233049724140825316960398262869329407119641757156010241158572067870641434088565862826486671416947484064302557506951779301637560075275765144042860468043440639662256967185516277407893327660390721023691215769512257491290218059488303005316666943584702915694541731943570463959443252165153755119342992428726747527126704231740137827545177994500868482129802900304181141475785626362293167829770630174503994033413066164667221900347605231185407338612773309431042958163763389637535913119785693205452600484776963584871477876807056442745206367382223871622260933165165202620949563683908923728709553443281447591169118170036466648143923868690620785280446006017033739434832667714187012532605927689182788765398436200470616908841323535207177905796254998878110348931969829461511040022329055399167869215527074787176977685026288769870473046854447133999175378774961247017826746174177438885040768038198189108851019989922032253075785952027656918891293032323218449694550362019689363053803131432769738859217588907628937439873965970277340823973125268640105482558798063481878649706624729512591778961398896506556036688114586110539004670754333214278840291131489650650606203179023911174426871062032066794529515995104951905551550461312933880744064286729628389917669582273841225535311746687192375854101856275242216744796876765145664668096034983876836227890642577652821775311455210920337859008241821838489654482932778947374467709973583515858535228067673386161464816022126452116201667156645385842660133859998795507644778893694673563054209744143992238960692816878407722270724365300094064271642357512033757486956147025551944974574432123828495377638054618214747453079036611851215389749107911177617243291631467720525025296254618765909546388074612771479277232468574344220026900378459508746521262961444681033121619357407625219427606111967855921995625684628108932721938655554907357793872697636498298926297440779718501439147682193581512217268662100125946645273262606513874842957781923288611634472071134293270330250341644848355175557064178687282572098013207524396442740721448032694049969711498516597152069849596214245014887248081814493872736016223874523399083314377004446953672745370648591320564739452713458029562971799986448562228520654029928221169244934171937785281131188662356962677459329657519489147382292519790263047885409483654984670421645252379708883450934781247547789613726572133965132806672443508273620353424594067577616539808090565003702357008724574828627389600709605305247621624656184795570209895379497218704086889425239496367850901006123165372832476201585449127627931624720322395495591327022699053699363578138305193212565096850998050018348986070205193641588772727694153653536292489751639614411039291825483225410993219825410780854738479021993882128173010123559649670214605440294361343273320817569271596359778049203404109699610110849439705248890760765068803542635847369347261957441589024374367019544362630224036245824237140164221923799782810632738633608343644198899882797146625288865178507830625462293184460171049458819313535009726499800839306843699686970563695070559977377942811323568886816105059179022719717536643245176941634062246919979516325422079769296353571987512768539157238805059576643929634626698634955970763885668711848370431753356077495497716838930161301198742106227922379193556320616174205529038318974150780075341782685919086132393861600144710913584847331423544069004647780604812886098367016228081964524254647665439213013733808046526917502086292236287681485940822711477825485037208876643423804741652374255651832257690644884809430555792831764539185554815533760577715274479067237713168919005513105396316448135178145020574943279875273503257247470648064496521013725195738624263067712218409461703310758591070984359193148075567156280323926289097060961426683750388234391188880591664741989935719303477430440731670866800893585639671046475390516717357420758958057713024565269673610944365556530461710973989397042317414371536891081530378360680771000241355026048703527721824682039162128116528576950578170486758618824452349164362081008430032355730688032332991715171417164099516609101758359035936279139316285481589312419769487926121498467308317507726065132128118428837342787647328007457163516879535781303724942993330932682570118254145367385580997183654467740454843501458850363444957448808775618390542530266315249467176294104934044447917709232801572250532515898617451714317635477968299973627862195785244964026229382920505494914653257528360706735099667774491509253383361174962242755128798432252041044106737815098636363445815221010062446019056826740771487007174683623708462725752099557473190698643089763937642319153494274482940736835618753214933931015743924116168827347937728506839326131063757289443734338723196483204539497610635343253617608451581382389305314549990125425523485285215369737822676477785985331967660051958422820946884245769036132016690570779981878111360033542892407913519993063765645511766259692568821806668881160033817075677956473461896443988223834827886595225242998749462995413215037627292800050873081529332539922722838711407996388078869135884608805338870409573038918986350395687795153605277966938963891652013238346204148553072925570730274895744245165442979463896164382928380891559946384742681518013960967788565221442513977927497494495694938478216651587958441263692292962555860021472660122368351243997880024387466067185444477595551903635351190768558959120745183364896789762055001194854511664547891572530448954841809978799789394646615692487288452325093730939304782876451972023524442126338222161381784262372494683137662486521683518505053605950548304028727740477292454022819073794839575561298847066933379079757349977217172154987031037057758947442698904813751875742707629843011495649378195644770856551375073840688883552951846720539399962232390399026114200811124135126953274631987258670270782590978143031511026816378378008546086232727709160238488384374346433160074029995826955618690955149814034688605001800023995067804663099776518897613306858485459320486642397024880044357543846879475517990333550896411243206188267991652757890512468588085317331900951451783635490829671507913842217724686504711797853662354473076805583510590182513387569053137489402172386328676370960695237784985849042283645721597538087424351907858850371235965436891336749883370158335392268736427475065243825850804802858856901617413135115183321642919403897275127075694797671600677957363243830076164526359036554545815593907310742966002819508671858334641984461092089169506580934370081371789151313226275098050226632939638758006240205808952578892387399746043289912474439056923337915143132438290266597787969280666525223761085299256403791680833719677500091021145927223829266869726052998010250015449094409639022547095384637328404439828798243068608618585340639768123082456070367899936793262112966172031008678561144460846818718257318118882550724230558291746368115532321974179300763492566071849177091800019606728651916460221768243211071087924233921859261729154690809274488762279935452327250741871872285283406867450207826304107028037408262153002299333811687371131162784009068398669643080804298570720621283748671197064870014919844561433132392776927038777875341067677845405730952502106469149066212725999288761400704738866548561885369956362228151273415448103533634436779278190087311578355042360586586767460713703811323226539339069043458091721365899490665795101957162884000389707626918355529633430831497941039117371958656678080223974706102539504016032141849535040277638447685772502061382639139499498732402530612594148122150767169627521593711481561830842913179656236561840378066564311600489981266383214465519930054596557916400468504751030414343326786303879257004496101906428564633944603071747725946043943254760402735868983460881764303582572545516985544884574212122339891715273671801057237956720485315131894931058966538635588966218804350003763320814740915088642317059693641034967941748930359052491471503556871305084287101561588031904180307816834264256476157734144328109664091845330676750111653644374607944176129572344624290070499621170238130716441290189366127827106666485507499257845556802301546171336593758367226290456938102128425851540998392123595233226320478130620134330703156163415576106138400938630480292019291511413410193978392887760125630446468479413917236950576801449422278186226622543346050979915975264479806170713529866450493679053119608911613063124353130790916320538747314794520642428066504207860556496248899386909523712400493917249632754934663519418504522730830103766386387797109562829334980529656329377200459261067139150464890097731446132107286095927634507939180662430754552502324506884227647711602661157796011181639699945618161628266902184788536019660563090195914625022662199160977989858394506822829218435171942044159314890040615817707456248384420612463302798520384547018248272162346639768990638302002082411272368500820619379646158942429186011676502457074250758444792813062130895317706431306710755263545906975509544024767464152632258411484065086637618080726126538922485490142249612375798867430192944210345787490412772035689514420629245392664012210818992837454588831231088609351877112740881716447633368051779834234902179757465268089991085302043314556420946341539028062083716199909141608643572386037125707159753723385422692090529913356530544930779027211021770135699652513532099819931549277972707570879155699844083989539521811514953645066667897891678129079985980977490020570535115863920482608906385280379575681387176401837348568011223077259769745906120592025888003987338597982417907226868421486424506496425962793242568670729898174992332192717634607248541998066017454119571049210622982715775065908751885333522381035162408362351110380799784371707613361030068091691051841999740355346597167872185649160263652547863651501144207490710777834046267152359558169548575634543804795919360139544785575385980064788649674686783834628818595658765841229149307551610258070945804709260301131921660559572438974274142985788693340640066860708005248785565049655983648126145973845804922258816507892304895944275703279558458721986900230572473205589261349436974646901157820921315002171079298987200957439413505412953739598636227481970009704150240444954078600688018075645812328857263118326151770422233815925592973815176385028258836802108025656348963542487959114406542844386503202687129350703254209088880048538690339782269424418961434663717253257436616983798673723652543387356908981239741436383480242070895064466033601741087143334007118367692070520998792794608787713196368648607636096599380006407654882799979100341296494989172164441556155757400601558836799948935431883578280590463070356374920595028955507272471880176074350460965475962666640822866662166849291372141050613045174187907242848026991655986883260954537341376433723863742246829726671717559349308472420242997223348732850135419647254435690558525379496619076269713515632668481742202096879112142372620980994798589704047194956092985761826659723382120456278696762165959407084170891643277801965113235234671616628546266395101744776792245044355485484300168791559810121415045865902336156098929733416261773056638772882892216062969626298928257533366930449150691615233683822096635809038567467687792176741375711307363629275843759931011086027284642533115877543206836651723936799488572357885533476150438093007003753621979888430622822364469731292911347230484869109087911673344629047060068968274184607927809629538783418236644629740255756238650575230261845049761213637070744777716948261788551528402426691538439934572035599931675787383466333015176805740675187046641246636902784486576875082654195069411143030216165659143757850181982314383734036843144131457834815401440554079245645392473470988742790114230553939366857412720075977996996868930006429543712273668630520040040284578131014863112035329017733778784827175692638473227794299805482761083900172675438645950873984679234302149906026816028867028237894343577045325620517616176362116524255834193802848149923067444868178158207663722865602833459319593264488265316567349023163382800169327794563552509712611378915646900267431721359883042570362319380931005231501695580617555781658710306083760018248198254740848009624221715093991875505578365992818080159385677955829292386672596553325333197500713309302939392643486418077681982744703587196130840213892702336855403687277015203648178363474305257434375880090764456457937971942176751296695339510855821293669212480095792748816976439381681490761062383582667542422696923950066136942856323283715840192303481095502448249239909445105032138731264966072806812389890712568860998561189940098162440531579369347279588866023514080044349460861137636693206923178359520702363222719029570918777358060843439101345720640639467903541906983489768962579476783659196088689313799138178207768606950740492676792647576567617187707982302278324455336804297327417345408412845608029578137346123737412618139841375043290351518552541392228906636709817301092658370200712275208148060597958813922357007000496266799230412926345707552436827364272576133052902733334899264640945468311748460942160793891349318570247973978904769316011504803233232837487194852119184319484663758457739907192475986147079583647919698956930765546476213272776335869477291458734456405264674321415347229002574122964962939059428981958908318940755874624514805023304010341454330662104746394610155596379961460624999254767747054864059556661197465570355275353594998233442415932049085656554157505008424115060842675994958118915359712872670736164973966831862639000317564327640217447547767886155936380638870387454904999924980630773648268546813935827984510678636005292988091107442303566113404878152945152408545361380050266651030713724707349209495742358706921576402401247367509636519076408052882023086131308135863676414134622916000229563477982383685464215211570501395270774601284264636298750841997239324333074745625485584681511194999875816370561271977948293243300242931311703795109177889670775520403484497678597542909336153034071467469097860597856018149483930050765557526560196424622112477295633854066435418812551400128306751773996254304024510763455586551499117459432839399109564009091432456210907543743574582036874213129823496934216239456727407140074886201512475128480596417517743466269678835700716363264308778344625617384421578006040078044435225016027098877235941381445177571684210344134400437376633711740175879834497152814732410076412499749115284739710875664880689004094898931045036449918259450765420486073225221450388698439753753632403874651064360487033703774965346918178143695264025154958830020761060688210265308561249339592059403325468868574986917752825877462222876079931954465281233473745558827215583846736456876722046101315410971688064964477407214165477938056328536953775311789536684891642212671948952856880773436990921801385709744491711970567875480723158974786980818342627714999331870904000403166326878987063249722398555632295409161534577570363430734922190908428629697881887261095975065647778400105096116669288390241071829266786918653147718154796019913812389217086412513772596405739235785553359807384735991118213885727199947001167280161124471065426631614053011059403641054738559906260196196682624587141471253103035950036526478185992705436433043889301191248217005968416338995016133981304876516745313247760223421181513462693814899268569962028042220032576507426837094892916555589487291538614799678293984507818051371692027419532812593156281565942369120398474347536022595940969780595293982626536056816071877786080097112897218232210674977208282140773387119172820687203799136285735712150414736138342995836771827899818710534045389614455390020492396062950806447192966465020622974452355250501065919183901032431422597400972077878709799360408945539977569756450432404447481508788693602045391994012420540242533670255240057492469996641326007621018502123497945576431473042213327821494415366530532292321683373763215386215896708629591810452703196123478261419336503843632185756604154224347929421640143744989636947782589283609565645815631280597801643648775657978391254279867721189564684535013894432405972193177960887641963427289792349754269017339922427949842031247178694226944685794008077645532135721468837182432937586705983317139591333301146690129165223736119271938463220402953460453350495674423907248531569150103379691070965133266903494287026675201014673147679260964815199135778887827189341184815049938601800587648917097141283356578357171517396935699298373282937490227428290460936422153851897603361346323861979068240489822225691923838534341100248071774747107168340982047880290174686465056597562178219698710976605554076575882943012321171995283161412030720561547325269165396245746044630096596228674288376547325659518145239864807041792124016461474319087772516062258121713255084580726256814337635509993640530719625854590647209902967052102669540858366479468488165816861562245970864145517992375239966310205252173124496846848434686932175819509354888857755000384443205618811254520284585964550035921404910631601555196323317604952268366383443881894560844285493097598469597517017407423008024477121726224651450699171491576996289882353961895207592004193094813046782061063355882171957971233555613754244753262080052176172053630265717350220747744779005740557873032889906054988391055508736805301369726155444536929573043765022115538610679469820338517741891739784648483652917332095382177051703590043044274024513020523622972442833499191366346518670809158846886116995980641883216953066562380001859486639182827021252063137451622845626407604383273457708182188148274818935164966321747231919880848308683016621292622320452963023165358270549307777788572255286958253970201286449652006979769086695080897750858946539303070798381825676278159139499979261138367453392655110281018299788989160183985843648172099745648368992787507255725834295922473548579878069835896983313905712727984104523523338406782855950846700623813614126781183530644416471950676047499246969329053565832645354895154792980149869032586968321966531691048403664967746456408218710513042645982364130412068578042433545909128972103421298070947595492366235740792176466353702103549957321858518632096841958573917919858111757383839421470132308898568835621507415562015828513724546889147326578944302705480198488942341741439629130822888339588100064842399842479223893661544195816765356637506630644713780683487719282851989560667952252513032801270217869216620124013219559943610327099020118598148106612695691674790719257580016247938734813758533972857663340158809177344171910353478079286386820541697069189456819154166493331950052734342106834426602844568020369851246644835351055338062089892110992858337598386815822052451173517755040179021353247761639024989228793810494126970759348546659646858390407730280271698240808034853297639388572617887190413148039770951693810109054442558936510130762508125696703717435477352464271967596434539677938525565729499421567136789375808068055664327883842275283893065638062981385253299697973366884510810877117096655803451914151002816254119212574771126338078993316897304220859972473225429036715202056923688390725349100704556323748688851297487995494650768041662255666226992939514020801662555296413674831122569705769703253759388876023359537391214170650351252812732343356508657778600403401048448154861922333036425765425274644858576200114986181164981321940064079514984484729481568579592263194720685096033312789691877695665500692799055506322067661474667080133248094992339455681531092513366092177799926216620780217971672737253962319582759599263223478856972763520561605109915259901789854372286298073278970475404554437354135374263817880334819671856146920553386954598560598226819439367819537995074942253023568057072522724993863366042609554762395043747678665207430001963226674358789541539428157538918539451947147865080572121048515105384905667364906546024924316856665838318536155229360632373592809358979929216151604094398091038766778791413791368838192369631470004472646680298618996039056885648089131856604304310020131941190489550293445192369719467552332546738267860001761969178376519314652660096912995896562318590994586736793786093058725509803817893190423666382960227899781914050080369606914198979833885555222790274561033905334766170488203354300479577428593402132734868696324161601538466556097428632028750115638241058797814230520715349790519608679487669871625366329653953756777706465513314422527748451551934215217566858402871412566424309250249887382946470675923877087348466149750359908859719120142503366181150691517981039023909375727707163276552784201951598205899141385808865762190580586357758691468323065517494182165631033006710625300866915568364153831693630980645442780643840041144973208179123894277641973713464979687900153054473584163552577016612963189102190725205728366896339549394836492652116254493732496913370028363446083844199331286746203037333528973661754698527643431153799249099705503578656798210766011092830280235320981523292525738329885832881982873808909129274586095807480208272346571389132491100539765912104722907146995152297079459029655293894247042061688102610452979205105529867325997108664262003747209560416108821360030806383617651155126476303126329459819266493322516099215343645692896075597418563436423995611520361578572388456778508672232356493232520994572151722741444213086310158568542496051504743530340972532453681599184731217888964827220841659164550883577538865127953612412621568636724921939273738785278012772454180725019145341941237156962108435297802292046586590494920582169600940935320331264893878821475512094455086290461780220968168291016553743162531045963555073364215960089361266049482418762221995743878912722137857070221319661735976769534352814976359492340288942749552700913692872688016093449180361558470558391811047914291812993549641251460920520719360444842470676571707287289012222880786974038981100177046300852052666049369956576051722048148484769526945777372929408297354394834351451859235615130094264068896762211170468525185120815410104639799625150536778850064060266696022027436131335589192736624080645304537913469865110310681864413100884372727517781444388152074047445722670256260417223596962968639467712876091165021493669192571516085856597099458582737027534792743837366201519677981022823129029966096662824930368880224564942639881258816442635708923199885565978902989589633881659694730560432326701501807556607974541676343267965592495656492131477536265236714868804987876419971779948069348995805325878414340541275444580436887594397737189528918806022412939762727345722098514333347233640409490418392952158503723685846132012954082055733231300947113058775944253358747492470720153469271247061753174373467313930483951067128618781580269556333153991039744253004392602026545994749704088020900253053666247138365888507143693492923048233328904252389752345120810674569399187407153064375471236568647916218101768542187246186988034868758563568544308482559398190807444000995680549592121449805655805357495137193817906612535424669586023474159829886700740929517408734961600596155625641993446195508213984242389217171058219307702444660287790732885587647893041126948137256640152040309210265540325512108637182447295463615394502344675164771665542583075195864255138055567038798862737320756090994855891913683790192854578071333102530957786574728204256039058040382380919005332548494681720758748171607689761007213260258413520755093005665703812122271899602666499374797542331840671552412553639484978261293566372725928220119576603534363508982915011882744934561404628926125589525635684262258476379425851994166461624822777272368983034452480252174198577247131394489287443413715058334037592109103505323218173841755274115616221525479036711779538754694699383858743533746126626936849518684300573395928255295011569746746354753943824263360020482148406067859661062974052356177293169887984843882427985427087743686786354672492717224384573009084872986214199397170212080898619735031847397881072984142383610842958967972480068339585494852734485384461243485715422132107698669344387350271228319607162284666702419544879804439994458287558420881934380072876017831630270480415848287260678887734745985593477396934393753808472385271672289088066717400125855140604084098385592035394470015084183296079851993683929294168074218137208462735861771040591169923403317879018601414143617596394448968931803485874883677775160942530249528705531165254142009510897924009878556123410721232965235922068552733891353916867520982790172341275548221280453422848167762499193377218483197467094958125844133638223669037929113123598891082550765246053000824098696474534371968944315871028951510764240942802324301981690314338324316297334781317700864573955488101381291975380004984732358856470149717998272501882172762241755355891884915277758104388758892673739365318120674156547710761626490134512853590059103780025777454706862752488662333399556987838293614807426625318169101072557853520941816420906895818997254929298216615503365809477969171865705343753765898518626038937996941875413585885758506405867355563468704426736501713817073684815471810790252579259980493849825408799455229492405980636519844152566695087970636524110310419304682628850969489799125301422394407786395661436841794065154456717428595103894854077063477289829529165299360992223933878423522757775886402046969339369245379425297038747083146654358335293271581738914920189258809457352404547252110379967720269663779247676947358903898030531225735353071126274506063944256067033801111521844683851941494454132850367923376232934165485667226619195159405688876287788661179828112394015367672336629562600552719591017858077939400184484675482327262381358479418553384785194120720190247921785221281859104215717957479015833627602475469671054346950046710852781499414966120993499289225911600943599904209854335959605825131868374837185844363959712157547635276187783840223260858332262087147940311423285219363278527419981618609056364007580531587698766954021959165256696399107152845432549102800015074884994567352105389682736685994636009190163697935653952280119548778539666949610073913847837614318391633077090440943424640774440391865998966674166397296248168271385932528499946467185319380903735825138053957725050746278037329671364209819353237322758606751070537747621605742064989004077772164115807436223671560171629648596104123244524390097043641841396478797273694331443803186612051501767870108911906748112824864042590968459415016693584187990905910108353234803107580786817896753168413645696043598259920767612700441210004426503544296150116637168317316345790957380163029704488762363020462400924562410770327613417533056721585857171542271723902050908300564349670334900775690288682851181783855874479813953669562724443873852672518797228072023497809024045457060097048957610424954733047079420257937207594328671642634810309698430273140852763171210228966583411524623868515464027305236917202750898709656377317464683190038596176380467381482872238475244876631787009132986914285851729902992050668565511900617597222895711355770672632557947491963145531365376472783939442616361997355401711867867255366153674652406740061514223873338813539951746122412333072926177981216184248293961444502711412685164845675383951341365721913999581369598310641307874929046085473396168138556260125499027300883863419986340797534217659746380012583040701235080628083753220616744000210344496898364938988911450619042535326018194307986868318957476179936157782475003325461276985649134645842051615058277219224494288448294316971080829891835791019844086803001059568828895847466809211503106300934544411711784611660862616755726964604847619386667224240363307531836278865720767179694989460489615654972875509501335490703516120107019346310980027540946138596639972409497858427827492780520201221246976334453800485920877342246187150837192906442615058549755505825935911394512500982367157547991957094938967824180527274221505863366854988592143631171080253588574751109531164358928328060716322761332349809948786195040757527681735945253648030214025408261010311354596052573480790515972993394387265099512903336603818033041291246081504521142935511211727999221261784402673831106643259102741511354087518302740030376907637766730986020284058680704999127093809910971850753724969821415452586639083247080932761024684489214904765078399804913574234262248030934273158029562392066616557276219567877671521705826543189015066690660018764388474151197914421754567169908052948372459954928228267567347424327363113885442497236085459775901778388586843913119013191533457704637551813914994525366770919076898590567384983575811322441687616606756535197352082347832968358486707595826077605863302630890744419645460005212650689062663076652375465746291707056398307237086826854361870447254855284105432692229850974202843470454809682631661251174024720375778158804699957439404070170063193312472670972103281786026055710430256957053393723808728372331753363916505342984607446804925251604344330795622867278333855124655563303499064817307863893153282579474634251079404316310338652583981878515833699593185748126021846397182734021867748206756221243333176581314020280949076986759704189121736097680667828554798531479016363360192977849999727742278138978741780968708510701559596709426754903754581088339725850204561465569659626708776780385864254799257465817714594565427329431559886850200963933984192637756217740056082365681003489994711847761432648387695644573716978727939136240925144737908298534754921712933171545661020542202189863567419152045379750710345248244231932742177917627902391603165854716074584469581719839550488514248298452329837691133188847430836391721310941174965958103044107767161809503111562220050570240378194870686491975978254047226841422863650546914192810382931983814903402791424097795207430812682828913978756731305137763214457937818260012904727654332971392326389380196309617409819459299041232859127533895704039904427173156544866290926247240322229371991469021483200837040820220801360868511804657074645356954013496959803449223019341146866486817049974921099073817661918085652342382390004837353618708580403889774661121782217993009837371383812929230905384555027827226039095945404743620201662166384749973503447377680804165269934373233934064982285059186302800857247579120445348197512384505294976265716989156038046416326712365086546338963586442316950472857328968523366808326762221068828614138201938176296974126250198503619959739451598005212313854876105433864577356490337353233435132896374652275772890320712322393045809246549420088917380491496759280994360903001691471850881267886963908349340975715549619273487812557392952325389923831344381696134727931704132382153073038538949878706883888563167817670785337063775745140223640888277698834863141298598280049715683799117633810452605706172013513767897231790040306289188804834716582762436653345182654057206187023637008994399824784178905565773312322531486457815823586964315364773064598412583986223400695376521286255774561462773494577195184810557049815718381559372932257956945175736554283980261271343360549873463407767425628007153191212243504062387195960032447200446717622526839709832630551973895090828181041718469442514164442408782972659309767206712501143760330062126969328878064772130466366705908319176122257560991866160024955950344403341094924989334143521325030834455971633277089849908349110124858163020177818298980951780731920839209161109439933408262323339980243843651819377556474991279076415639609377585877249653048589676330104406534480185311404299702870329964419867501111355860950385807124147451434877577767946410024060275516580595622541083353714739131129969620617520895360393282480023569349736818117268024947843803512445432650274714333297789789161704192892916753349954560323314544313973112073198410378212109381538557665534412288650956649674937380274280887899581956092079059220819724806655177321515633125133957090470298308518498917542400664254095288443697230261342405031314730806792896267647437325060713716208578353131354380154169516759620139276609469955968685370209327975603886300753065571663695891665596732346033063677376689382907366487195305885851245952789081293757547981871264578447125606121752518037214916374259059370136839756702372426468604078523270277146141128988180713343260844729054149758573924297489178551554439326246561601636917747154554917114455047758914785304597696470794693879127760594604562095484012922903651078590287458481074490017600822902462946782586943361177341114282667701329230866849088217580521950311170242870051073418360111763197098088032117640096732803041006423690838769974161859621991303950309474948478749067628748731909116543571075017423954457991222866655473865053016884509198992556118816443627684937468316172294040020335190406441358534786331915463134435852632027088879993872895325981091025576767208045586148428633912685038895529116739526950173170993296206395001811872754832574731545325114033786366612932577328757954598450243256120289188765875650126437347133414135503939382265254458909237472079682370050442356699561749291730978996628175574107469325865090035261265499393483719565701977719585972283185820280932084267284203403896261990132379464698296184424527611331737908810723582070271445258870569131856029692941575922262812743854272370222987546939491809306335962284734202580981464557311677737005468112659181181703898490980881211495654518473901850059006606098451144797892648685796747340622866663315308889862142949051033465216918959926675890325478026764618636005354839031005776252886929847703622768796013436904459754751538428699081121986603296800068420917529092980181597926985466862395745622209224569694682386470461790820280271585891712939034618487586136220801307142097015369754060245080849628661965727537489009862553835597274631817855467523702108809671999514371035813912485913018750688183591132851035800958486893466403709688376038439260199389779011970398230727723881781609232129661701440687723076344946665255289681190724316806197253188577879806279441820333670654846457602430234915277940251017903900529148871989648194116904523317122423221837595287848823965979262382525073106479222543356420549620894026363453018051492909882494443745734321791023693643927406469064543570518467373213923645639692652049846782262363380997021788671217139977215117261513084569247647629406971172141275022489698172750232653128748872564072492323397975809894609333394589628649313525924905915282088149153229883331988187929310755764731577236460556323001373238412260640626365199278352219259558514699195648127193096275680751408925365264424785012140160027207727623829078209994484709375193096660516767638228393940025594370035710501286424231554758621141546171872027956973948114832653153889529047507727931578126366732907141511882699967165530855761433147134436688631132113137413821130092930267938999031960467025377766556455968120345204530194330483782452513909577044015719565053618638347749883740644186343203450562359108572482903648363436145903536115763099018005903125863443681333857880058497021724166371325698933189072080073958721032023199288905527742442758849447482714741214691615993324348185393041085719326655081902089220093019156895101401026499864901731589868633109990434634765107198552223345136286780025483992517090694347418565226917210222653565432223351323498882569219447765994390846854062381194090890925406636249369343713897374759859124050426945292163507205136291673094054800068126460088638284920650096364574863588696422230215280083126402171759622262940875238548320382417813295955000003772124782073510504116010215208538870932672462949859082592712987833301468403603677592420535690375349593918068963703838235025013474199306423834267559951879479591315269999571946383252386305365112222672538918172164473190245678047350242066472401749510533989170740201130877226013453872401413889652823567053845561844232091036847934144862998426116887387980140712847487664548623389888676461407481272598396573138581794568922506359570632166805570352731568968305023050655895465028179545678926773167380336104502232736275769661355650072979945347761411053730714320569724860485795766305796077198290956081730873953492246313453853536332985119735673016017049341053720659967793541805081946107090081936330947812462134844415077744929816061482880042183815435824723305732977029504625276578292167811179065555077694231451442723961285592694631168824375113242179523058860508113199805593562569463005248391881721441498035547442666104564124348244600595681730018004649517109511223370442766913946082877459188191682155245722128736232361172597568001363869333205875254548768704769221054798823807866611634888203042851702615362449343502349187290461525646574412953420587719282215757580498223616914331630258934956411062724462492876899085988009832796041584820409297123577582428012220941664976707026989917486804219186729596246901393639587024266635466878234556928643861582688444673946432022713635081381834796700095218272762398576898134720687200689534163439129272378000218781779820760300087272234922701863937811573686383946770577287952638221967023088578356731044328192746204895540174857018184368197815577654319774261681937904389225293902038008786518949896561193896916147734478749193738106509280933059673921604889229256223930241812597242824743534919788620905762328140237945816042868795889943432738407672802677637313673756583489414564675944274425197009592590160303026403861137765050613411251484697429567600342788980141944938844930434927057119713373074424492224886670630504864073168085105658856841907641185750254435138345022244241512347258646233978190063173856349894160978600640395112844792322015577054385376795618180891763553376918798425699263330530765946139477072573118502068502943713366694361576302773136559098375998068908028316629156359122454184633486033891605966935123533044029871258064734258879197626638944865329821212847564075801393307201619013110674955114313867935572171115067265412003419110299316556969249873693335399440876969912271104704974138420832977872740458898336456551172482069878957284425718057240064501275733725994469833480364148340372851528716711040873343847120281219095413949388178792022577552047005580351864124173044455928316032029850359908594813306067083661991867053265382187956150550566708003744285914418676211823467408454775775879751644636432608163652795287279138530894450273597934376983322785711432402039595744754240812313306923959383270402665972913453130842218099830170571827301008444866370207337626155244181846176801253184139730379736015743612258689378755915202438375358181585750331202122546756447288641763404724213283792892543276230083535212339114173558119541584935309416398931339727723886985723907930826749458358666075996239407009086744163617747918576337286545782120776557525157661110739464266911488864555253691625088955083918858066390683367617437113782414363003232811270576145075717219967445683167781042369056495681214994692009666885537433999177135945371244701460966797122791428724254391478266066366818276046640734615916999728407942997685782154426559349472526888151050667501916932221583362988345940648374854026827051487711662609466653838221234145112034087975676710965973988043734735654033065672166141930320383146407894902881542259368712014695418329758530827094411597798757925956498012911780691891975809646528141883330403366741284645210839403561120682863099501937030134265933128448205990308523859980959451518801997609809145787088918951560605144057176342455118255001926711573971924592255769189250717390401647630904943771393852107887553874446327707843146812526244953233295588809582955278967356689279171392535166919370267798163231089242381691146568146143692098115470891118638389526788447233159763385724496408108160559022697857851445463027128843659198193010518683082762850089929221647458204543687895414764411475505789027117376734259989339644401116281513177871519801082957343968583538601088921319497306411776028498621444258001839979592392970856936540023962108588637868948079590440887428478391528225713925873138450375877486134855963775789187878717286018983252305864423002618678846825775965792970127307675171741923581979368510901720776669749467812358764452308458678228090282071729047695121467628209357052750505818721270146318253710626381200323248088830017871135311008990324152589698066891758615684513990610972458972769105664708917384976868490797228147622615570609083643919265124866034207897063238073870226500350509537985314266501464223405848296148465773753020012213820712643015354706641100358639967112754611716912200791216341216735080415563157171593108567065419639464780287173304641744303048319012954228408392760971917695478757435141344208814270768397481763117564100246198464674083397058766593454418241666835716266175882483953824884140841185248031286289352783391419280847816423297926494729711355065697612018035992806368013411793868568407039985649630443451639724039787498359208257394872197375414721022169731708258806738458928162271953580026440337562896840530678717027328050680858068890793453790551189701861116447689039766365703942081906956198717405726903566229417796962818545406824626684043371585105678076160019498441179850355598073399733457973116499432954604845544164665511648795843937504861664688619038940515134628462048560306503570865652827707488278455894287916311584697868425545295227999763271810333120709317737649641222652813654681016901854670505157782046383509280391202994016991664819373049853747129965488347906358813212041149439029081214211859346692733793486141650010923781655732239158346023927576999665665477014548478577220577744150425706507751310939306686197912787719783132788100448287403324192725016544284424149772834068563006223778494421775086696846999776943753273474466396837779510745356148168006770418314983871079978363300915685955579696819291685083834312528391296918222953270375065693306939492904218278969745872133272431826117994515559544432300076840141457578124604294039360516237227597913198818342248067362733106148689995750299361042062828317016680430398819130908271546621999501302520286298774612422914530594863035506023373341748142472360435650647446932458198928770024422710731902164518499392679733568068574478135073051646653195157507848649515532830127581287120101846851481552868765833805534775026872071058173039070475173973803298139358487591510353147169534661561691250366203260569409024221306829669097916729940122080496397422583098135779840850050057909739531649693808083688162166997528532655266343672906350517132281718016698195541386945588072516607413625631228147764743204776804760538201780647164820603929510027435010055006605464578877195793362498488865190848599050262402798871875363965033601261330063615993108219636973601411633745069935455448540518682140494985702884694671953264869685931739582711883515780541541923776629536256099737307449125181065698841312468657707020553869566772911208850651381844558223071793897589676152447082464705708857937497442110463889707134481931343170541976444418805479275398491361238211164921354754886594886049158502774207033736208060920752030900367727778209820537171748004655679221241952089268272571121560698125944146024470483299041988022907873913973540045267323992406295578537040859741605003403374319283792179684410859388842337301423398791649987162195661538600611487217363160880989644308771481653470513879519302652195295283531761619411384856205635934630208887365998453130561244623991764509377673666051044219631195387890548469603218007297783694293806031503698900131658457741451170145687726667865769143396103262811043748989839944741498632076855295825871468325720347785550927750779194789518572537142682903434023986204774967621390092290134791736596964619041049661168525979286737388303002567227396656638686314360166379974441858023800090206674647001910708550915410583598048818597686321796127926950889152885090011575261260392011572577976576781491978903426894958134256661470264466865461382556007403120098262590035455538764422833991447247001867757375207856601064466715351403366981732722455445422218864882523813489469423990047352339450435251729207007820293927824882849424291379895133214919165206049888225076634065841917299103863550403558564812669790079384515826357894568560325055105499425070463987357554843108845213798229647275286272187314282424046830839339065414317835763032569739586652657067764853990354332217249883572405418447110581163644673999366264256186740706477550291478282590797077632270853346433705330159599256948416775941910442075865830926520585667698686640953997473510984160595838660124975982648655079990301806928631605374202752123770333977251903199984042112228162303311041973257011902704098403693556508960747273767616068275659097831969841228972089560924858725177259903871396102298368712746172940249612597101488166181320476779907152581834582663539744186042357744820805359606672592084718175487472847461045394810137752038498899497720998731186034760773673423001739358927754737471871049655595455126789867634918578065277068946356315013136321943330950287424203495571107543227530023212082137406857975366459018326724198326076455687575755863002523079526916428476369754350229762281246481385837145609362544445169880733191460469758780669911548248820088793544049792132946701731344199676309808210730018830407937516755173156229965298863834574021006354970459488491125975785990749092599991004231108963868225168446689162347528847412590912648104311124422326992662087191278300303946302231520592099275156209486802248835870134912905634735288055496737448402772736113181401504143863607443874228390203787215322553843991104979747131167741716993259349314112905351528594355792889228171124433689473120338219773014800875760706814858148576676737009426482058037563719937234717567870211934861200942530347123146744409586454890978886351064754688459790251163667889308862353575209224318358773918470951489639441607440337142251946310250887305159417896968267293022222614290356817860063528834165350903130784076430314954359306309807965416359076250120696953426214499322852404479334659840414671324236832182129472390531802799640834419507544454219891525745369377302125339776860646189472499401180188214092355032424698440113718657085076550923906018305900325720760280955649339831247307587871429386707685402063314955788093871101225306587896203524772395885437529954112911632621894403112737312085912753869134843120506063342170163533070087999004583669540036345319572568082661253120581548854666902199734756980902241546691286342836525861705875744383990536730219523811263250611332601907535096504123837250846920923634579130499455762396980836013650779358158268104198967014260801552911140835947028300603878766753634588018265797349432921719820830026999207464314352931180206153188615908090710584675923365357368279190948163630850811302384812334959232152841990392254136304579377551693402606558159430604663234007767409928684682792797959042439971366483548650958640495245072834066825280919538847969029043291624505927285652432605184451299594917466540665896040430591551691397361889351257939568247722930942109329346824417136870329411910533843595804554872576073751281570292146800097430211216932134751534089986259318553341103126676716069718767979688590202669532648798169183785280851395889714987826810072208356354445906625959153496203761210080355303051989593250478516486283588736117250579198767909390340840238156055051613685192586995849877292633934480844290955169012157273939578274336395205685870037907997869710873552619909618689007099793458880462956922727454061759452755425483076075138289143313018739094616374503011465625415954142721301639403688766378485007619851972860405720133140148053745532602148100013801946463445643431960446989143913031095299688022027855481998803445543640015316766577539719232066509949302267165262230090907754558814798205295669058013197529615282081312821614818488362971209448520166049621648579802198847692714417819591404123498025070322505189004446543009088895329085233008911072663340222174437577720133751216216413989676297001337004625940742808875483427761691590291446172594364443237417988140269859857354416047101968230203690345653571170891705689148894204527681527413781390488020739273015547932210454299900735778525669541122927284111613884620561153822654506240171894914907096331722222642903243409968381662513980540646963014135412610426544802518209634263077865692148680109753459462685170297105328879169675092359150887628752893404501926887392748643758764740655977103901901098594343940853812482354631606179165162152583630864094194861192964750553332105072894224755105869002402686594240607357183212156442365624264004507754253086675829179812842373352133504627375074297701952013941962593106533657273098671056519456213549467745088733031178185012920697208594389350047500759880293427035901415891126099482414080929807411979840723868201181065152131352733926663354804549952778528709454579630458092979282245408991197819790168546401210692048918440551744792191398970767924991690871344373433736598507783623907149826468825212776505718806626651207849483878001158201607864420286621955677905523373603136122304704532533791579262009565763433149618646274780454309867163118270161723942336724978247110009245552351414257969571534060931776788759942078870466927702120383773042587313246329150357971467545908673034266182001666366937900743157683917555736504913742601018733593648036190265176445009752144538957630469446580926957724336699604131665233712922660307981994378379351294881598589812675004914170621294400177492648015307903000744081417624494229095314168330111314126940989986140017178824666445174644798998589468836937427712782585418997576042216298495812060316464651055657680841122444958502208336191733976375175997027620688562656854006033422393133860832971588971699975449492776270685138387300347783041410096594370433348323656095426524118320202104826617604542490521900249419488739090821783855207451479926148377347707990129724158662130256087206987800830572693583933746962837217475853255915858848975781975500256859356821006965158153335353988744188306335847641316570847271046516547500801974621885513453591362299445939784443752188303307729564353619961010984555874595226953665293760327865436436814844835578627713970146851801017441842462776602181761067723355722144499990386395493920985528076488796723243781872498913253471769366831180219129190440249428617786272160841535826048810742595116352703072386553153349558821389235289055893369835853954298355766133828572885230676787146883876761705892810215731094703177876733561263244809916889866885695628994413180382846136541820573972667487299433695697776450388112975922448729635614859998276641118338649933006616223264683299530905183469130498658964291996421277275552486743299233044155430411180515345819721601763879612922805517576650836402915260249703139286008699631164611905127650989327192444990370824337390490706469578422801459066801611109978720313030870633592817160807003732516183342903617244562169608328726035780751667594031402076978304641366715299012051226594218415771706543026841358532082928026987924528832328904530964921510392045968767198542557453793683717779120089942548538304176477010618524640195210175229535704790791202923775061804207324522773910490507132095208441525847543561581966199688494866265407857048507570090165753444240541084893001784712989852690721247584493932570865540926499491561451242688482852325549422108892148726748676780624826183386489936662257171977608358302202982778590867859414265880792010415221769681378712907835857402877002282285505318529389591338377744765821873727567057408886820146949499989460012768896342648373005090025417981291630957848007978913495116260541740807919831256658738060767478975646301999703585580104471037818908596025203246882741017523531092565789194813527857385822559058590693509361923205927617573921371292244164453424148210824611095098194610381779263740354415989095778786708272920777661875168657427730175803918998284275998587746305605143174512278389286542849905429975483144583288251239306332159521699488332997447127678916223977010161967809534169649145227942025049883389927359296937960343447089067165465734600216336129887074579294085942176950558718781824260444907812963069174097041455142093323350578099361996937519929940625315286029119318164315233834355960847869050491528505414665215534535153177862654814496470681717888168068351701674201931403405501522705897965080407773708506559341650322875470250149394346826324072479290651896154522222753207174830691633775615089078997107826499294238360002676630970170425163191988602143441639682355405559294354797428119492064499258561059551428201160639053250505444768502599300930291684546251142517691298033197425482407600019258638501845338024859169552542691838326175636043759383293985187669719692059685872116230981864839431950174082155993551005796922576500530658201545202055155195423032070349533453865284117980641719096441373317008996491155605726644242243414992670484077609998719568989505039378173077620842632430893993941989017504700621895815656022905407121997737324284135322392862071934780508813740458272084930258393019679545269140316112151039874108555281182246535883227776898064203961164458159284247273533889155434481908659294409969833018468429318701298475973215501923632128849510804631978968913999975854814244839642885752901786526452632128400568704452897321214691710540690777590599762295433609507743201158269405050727209031813015082452891674062888664532597075520021702653600614964725775209579703981049749540563888372190974250936518300728462181180789761154769433584450873254782159876226744664862034118215293060584799483498979843904550701551092843073359426774867543227398597811269386574903421053717887754581779529026733725695949672737143505670236663044233925389830155059401064374346814761572202321425579079879382463419307862267437248354460757152890946913235449624052437775848463211470342185405008935472123193413139149526003169956172411635741806593176401806387132932845499714427337117133875568188252123694240897310041730682438963197463822530324727048895434867524223238813704532932253516004025026512190236938507252352202245061142507812104475744606194133488599525752346820135347327652133804772936211755130914579152241781052693966491588838635411663009456008473717646356425858010918846678625400008783012195324330086126538064551529074848691876012075866403663633674522494723247145442433417116978916573799877621862609950896136251699779846559649531634148869542540407116150406135625283751986140253279882008307685343145004797252253534083000412636130166684918361494024679558027470519175392088790891480322615076836975068439437896008174706127825077622644096023093614847491653469042367842644322068323945744760837677638333253834265319347572044678821401819440650201580575359845712227855223302930206270453214911782502469606318324105189467374048787338957799150977845300379644285865427906593247769390659583175016585307156442053570116205511063393519280612544800344084896831253372016949543064759167298443135136383655863409349111956641788326992423143704365689713887401782906906411452060124306060099478380331494377151803913018338615720074946941818604282600308460376626260582714969470868571681060912833463516560087075927426437304085997024557334754290182294177722440539315021703366151608541276194946051076326094074280876155895003569464577271012763372513974670550492949364371518795404381981744706878212389729622882116195854173838419151067155929868343992980504179962213616884582276282190033461269047895406835552369398660489213580170440834995254495415940431902228320823289383463052967437562530141319297522639716503062331020558362560305034019984166888941049388471529571369460146050084283423145597810522271648511504675319502103582405996685420469201464940804374902833110191958456119174285244536929212305041152474356248910052986618996387323183348804855918958092905101399001774312642782961582398010093117634543173175355236131629797157834371806256370868385633428498167796909936583252510863656510653626645531017144539805816807216548703888116734132150569471502556949373050465939550505351775481769935767425619192074968989571175216312819206308877002236364627547950947221918949758523110596395485837886221517074523615467888144599385772307716165547118498503398432027373624108781667200829610129791621056084290609951677774203654750902631245493091004090878292277572311471315941509106733090452419005628925561741375973645086415467034121635906110492029359180710330742688795150851613902627719285733541104107610929576927091596104713484127587716096015279825227409749137866068705353571978427196093840378968777726369666114235363265140908349028070078129574056195143186235110847382692697793081263910563198034960840553028968994711567411282935627362228250549093454840191353448704511975199967806718698069578117824864179239760369865661525210425372026883062861044275772286206522830766728559622529572647642830199630335936462397209959868085508401099693305807470556904584443214809750720353686819534715720308927638006487734028565920237252885530438738428985370029148723310169044964696540246130491892409397973912385274347832887892043179032843148883897797686288017917433398437689864212184557508027248932161480992559468597358812664970561604044009329305557291872770043410938940606350535283942687801691670749207018962906504584640505616813996874722939629971212216913921732468019520694360187464385009393092933353561443325118616142148218038550142321681933863855121769410582316964155833137897913376530238666140276371859534974996409795364228089758055393179809394330080062661996321834972140327678822324441646279965073794379014725422270187699910367978747058676963779178004037645288285923044159763245635923869219061476776755414609989073763611575881056826350758174881567168709451233074636851311565291972409964023987193558481105054254111946363036456295632213538369169085792509322460719178119155220770007287126971960202820205206419360899357306427230034815392139472680402296274670735530169494903316738679455245200453910453134251056220346068178671208755180835091552729139792444535441975849804487338806188845303526911965113086900383673974406409903930982794561336729613326414056232145347959141739689909713059912609139312742112807891927111566788502519346765296753356865155146912969305593107262691683486974856048811789947226076252237791022138395750080244288018026334143566624305892863537272945590765627493955946154623294138342384339697889306220605173029227941485625667946875419711703106540348741025884165410925268456908380616184966997620463859030955477883998628075818982829735851187116256453691450422298108374382922815648671583296107110853402001446990153684592679860825474766619182833849699346945159511927342481369145844643051514801023258256441690660667420595991148560017185674702466246782281530754494415923368556296527148520341842684549881919933399992366229089110654898930408514626763351883895292362629834483037506984524351322983839329783580136690350796794327533026981531351340537349852291285662544788507871641853510331042649444059822841443940869903890669279218423198540647950124732803552202305196530063491568049430757998095796233144278410038744873581117901427046646808846314754668769095831579130090315049758120421475319260276194493924398266900834276218959757650360327456427621608999804776530711229819040443821966075141453980601442984629490488176283491445419130280761249476478435765157781472148709730260229809200787583665709465717417110039504801745177016159981948111319628928411355530805927939344693626256583395196892562979813165217807825671692460645582268975397006445966248547053347151747370210808849867021460793117340479605084180134174853137238325596019269495714868305483482977113440536455235573061264635514450189885723473862319251076687401487853683588243442808888638206122259706164706044592375078148357279529040058526187081048524193696791237175514810934862034220822566964534591941025558246436023614512962268380561596682603212640352104420853037325908718915616070578212708998980280278601518987239702427718409484039791062135517619151132760048206945772196983247953258909464920720968712499373698151615368655887300685435120244340085079780345098787080563810603956572049932808793138463866796335259560588772043550160166694623164551757903907061549242263374444131680068928488116507811076140052361332532432019934134514126724987425090451021700070442294357775844222622874788932521844179476388841381056811567645940322064679245329710469436107985201637873181279303866103223910859765566347274914748449458640142305845947350839400252450553917729971424298442420087518525750323993814512232684728590598476810707460821373328173415853577128906518907302325893011716032299268974400692817810498667639758996685121476426050492740642456821549844033838690870955946072593083971982498397699844699804209473644261009815587570761975660262942141697756878630528715512226278707547872359182973662927823630336501830805927251941612178385656133486218327487213525879184950174081938512215641578397524634308568582335066232644014776187604767048355554070925385262747630312802950764222537750778642621920960377479317992937638882491123029597178257734347862109662503536876619684177389486484163789932899626867400032469304436674763775102621721681635989567904400003142370086116001597408603482110485385205895846743227870031941884003185512511439280686525942507282510280146517701774680711692374606440787201200708492127387308062224432245176263303111653187458325843353678336837739679674435487691638130373286985763941016829131690063340830827576606767081956236732055337900099829652289837342072393354527494861657154538482580157190066654597798341661448614313405913564106414995684438784867832366098657625347812489909677483150966434810230524618164071576841770120626980553341700569626163740603169911400571797964247082110089204722661499999709782957626299300540227186760997839044753196283106409654372330985376337294768144931110971696890092363952486442840276327882764518082965986337788692899837500924023695734349958463216724932972584518296556614516219850808457271324893353456860312889711604276282684049189221434775681946931848987125183048342730847990838754132193554845478577234306855574576333482060622833014808597007843207121364884738891518863120647889195029898620974536900175462719377450720519231714023525077081515523850097838611548881345136951361711628202635257998064350824019972613688867424916149986288446408814302952726399724348897774555069614881783176034934421517801570084428241478068792992456457578957502218634424721897233045701848713767658439141955070433857372504259494634516314468106820143810023679542442936065401866117885668136770350413797634119131864893083480192337122832704518189299039509622479855001814689967632416712111704707217386194570640296261427757847452708372340865266534344130520831942054546903864536072034161899706327305052492311489716407391832657550225788252157547730069925921934592982693235388784027626513730785382464422954203925800964232013030409083998659369076225532172163251767530493051290163808307077644898006503807551765177177419196510345419032065409053601179562201099206899649796348264241569471810738757317956208557330130233151816320459781953727268186640120932286724822103674046760935686811977944150140091333320286223011326336629698590131003535192309990557792476615054905237468994117988517124948046764671616984590492085380161720630764730727183963393308055240253383482414756084459514903992724457624841866847419105314232403986605708457107680443253508575087356639913443856813944310555087811908925857365012202729240776419563865460442319124666948166869983305068408768492981840959315024026682162483032457733958723575657398089762688430018134072440609031684208045100417472119218426861970143306502592917695237676778965507341997244005844510477850570815490241199505012989367712265985208379483419213448064064969822883869711481747400423266234055162083215765221790129422250055052833887166552329405841605008531005381112276444080458632997845858519283715080472724048620590855481044886129664902101795514506442673659745515664464319962476501567133238148869551764931108985463655217692469947562666371008549604422257966687930477887184040982472550284535880960623138484560653588240072623950520137586047527978624465376052490176213362594303724925803712965152577984674087438062043341863736870407635330926505343149480770079326667594112505504830534559800775158811859616331287629167732205626523358028665471254494315606532045557163338621167427086336477844771089338856834894865745004644046568300014132187234176454822059145883116155430070526374254610698226456936161801283831996059327330337080923876437945755669899673204915917446964766389334104795742308323501834627677141527617293696706001923742837125621275709642460616991167819409470511873095846706801878498451004604301175076565946849559892302872072815848260689808245776425741251395088494563012153594491404843435808841630884430946220153518221321972392628586957072013913926630778682708178249245344956569214043471578523258126694976748231482511071851806516160701688125109772476065454646481991984858815571711137800556576674162542321065268959529781646661928774683218507974016306710819273253515212577112701954217647206012892596695124827844389095104133449402433308158663208279284019478963616099643278421574280935876506776312129346453449804986983384250016514175656957813501508057881575311639657866329302938669856203667972711311794434382283203898542229172669261845959643835941459743973357658990846716531796637988675006930389415188006285490842086110971512935746472445940525578689781307029966355749135443808712948380297395854882619781853170089030225431684222639325847497448858445715267785593025166548042600900922906399534120037073686355780878336448836395615023195649882838690183497941965622044237206329727154452093465199601437331152433535794555065199545045042433942181170389034795967848552754078724069143468810871642636468481566770037771531180858255867186819117941327783531848649329443600576802679649627655999449648195910985449118572343677636891176047941939414680670090933045667383220892102462668016657866819783188956258821493019680638246289197678881102005970999113127136979382024947154439981656714750196665455534606153680616623197308170981587911188444748398985961336378072564651317520921982497737380562936278132776940544834923849033385736432536188110671032326809457226269348960533085887400034617620720699130291518652694399040490079747945416935344479456383820921901821568808592042215665252043440201903746906473834381446559453533282454432617036457116760630492331235929659131892640622517690689889311061997563763191278925983648818549891906644315512869146736506572790508068238288976457318929056906297119841272894933865949391435286000080197529360223926263311471811168882655579747481066453749837922015368781032355794804274883784492797781527756829854602718979415063233129829494852946410682909646864268016874464431047449611374840318111469941598387281363978000473987139915874961954455929834572278804916109845800111301112884347506181432595292179234461508209357832629951046252365166262891763289659018112945842305867628752839504396027911105952129716928963498958677523656962966766908188901381139797045781048010795379389839123490638455532337567084896446302173954866050390199813801826157575022226600499329439198303640931812632675255567028189647525032566281954059925187495282336476894480646748902726677417794241397531835092176180702338330729803130141800489100574455587388116770676390640766081736668844812166578566734855087196857014585322340152412283007457445327088421138004975445124808071080373697786304838866835796350974190939280649195508550375102533985508108327637128134600839153031984078681294786865736999034073677354245374407666423702788386344703155622291088568266310664192755010205667939313415120593869458408714758323488681577139695896034547603237374783345374770129791761875615741169343556510531328044290572266727341854216019838386790859192204481473446630158851556623817289370578211167312049259329320886907925739524735922737317500892561234303450675525199916514792142282109914790272513535214173191818731450026099428007044013439105278155612663753107707064422244351007520393555888481088495195842591858857808289683755068701840585938850116063489752901519885500604824729531549566599073513974427675540374287169628290904916587943673109455146761884946907526681316210730839835538351482949336314592285647545767588629789421315338820373506310220205573387388367366587084027302393073013112780282239546866708575479531634573417485276930368980192804169519703976840284340201144019316297360177492829129646577320598331712353747452237960153685130526133263485740903991041612187498232236589185280557593492634398151570507953221795635472813044876204642237011270350012010517364992555838387956379351264317856892347456590158958463755283350666195773457657277282094198354925123461758646303602153904335193494918999469540367420400584401390200046010580893288279130731266622822636533559236588399074700503119832989594367112753489504029787229165304496917401319850781627671803980361038815642658221400301235059566607741341742755485418273531274243975448265770901452894249269949815978490513903027476366664054944196543968076607554883790903514180182191517858876984636428016932024181104642025432570652331820017356461942642184605072699507827662334612286210900890829658677930278430397755110752992915092176758143221117426284062087973350970807033896346594432935590564630909943289144270508028546819974320833725380716281732013460793477595310818084300886193179500080913022313255057232959203889036602661965386588778268754384101029947721800859931264937897106265422753420255102807258627604354947703722001573389400359886086903932795082406312448415455968020008279992156471644354259381749578920035037586191802041280747647463302635227619462330040719706553747079662739546581588994514609125993818025187614575956719962742641316987388672597369115235558962232011515545189019424601610214985910102319970259082415294073087222396722190663170345733609729493677309857003688541444808831463915030089592114502971726955376093353623062078899282894565880138829931080801650608611822611087424668566952094978625774104319289314160897657940919456571844052465789301504258109165444878453365457997495088243134141893296321463667297951781308536275330857758606587278089504622831604063611467977704094107482584753365535320024141920831322269851107519571191807013819563323955904242986902868594321575977273583899696118351300924980433043501525406790371473823042500398037223524988937032398390223133787340787348756190312765676406288986266749589949931750349533632462670790153618132667680114293871049126700671027667858185250330157380507616343528415464744954210845179068380188139361025597071200222071350833660784151213588732080743968577267138764255556347456045056595366116175715256882714197103850978725074853187985603561528237899757599892710692859534159835592758839771067853522630887784860677001000981948554091299717558488650803441734293649981471336558120184724990463393602520268014482179616609856909132713510540879177785210478809206745317329856506373339608347105343342738962139616838051809879381508459235736333328549335150483620253253936067100010963307626100408775406117733266080717545731978435825217056157659006093332031582783454524095328869846108847978678872912785570524909070997332564395201539168654324738435164171541141878636965278302778309370334973057423903761109299584182230511035848146486993683018007357491370276956766889626578790096390810724752142904726642500843059364829739648379371849339086053060151396490617434689625610968169127175747864513181794662111666633159119212489097684293699875579552088080076182196618239387210041444906950579703508641553149470399757950864909965111172917977116734388078547877576626251114322350566249550065683294409172587197381655271446040342575133542751515660988510714331174945826434308417620445732169929006748757398319009785965734861543567859813292437317804488667543194144255750882886438192426395338050572996926754377628912415950722434003161280911848955451993243492417874996720636289904591664125762277375484226614395759438444384070913940066979780029117196054798104062205791753558941729394043954282071623251668013390108193467596211015498292216620002006868520557066821594440377191493364403631074742628292505657221276620869595205048952783227754961363251629359464351390047594298561862245940607678490437112875220778602389244463319155041742803788331431373472142011740176129362348543959415312664629809426891020412021913752511517782190307965195850181520876107379859621989621226647791687632473700600476161358278074904363549672933236319795081537859780432539500681408809905077528548344199384520389092573109317241439978849552564193924301392786119762784150824545147520701514399954287123494448889420853633541238004337958513289103133642140108817202361944151935516466930210962633991457021688394256563594325293580691949423265879123313176161299219763751628748886002850450595171458031860640813869073229243122937852150675950663689570926011514265342714041004927198587657424001827959396738885637655540331776446748289127857174996926981213261734013604300174546186896283104415263323254191413965046703081833528553548429731100278546188255857357119429656527722958298000802004038326452779482207969548080793271592518151753042492076286914100267497869244376741824242654858483761861883406246884026556628891858857337165318992657294872510611955215614141900374785375179654785758635864597851671656237489975018015594728926468756685229735156342791245327245943824678802750499485994594367782035015380672561656340872185067007998728907855717778116132192762936456370419115523934039125256486298451142755260949230607987691483462507913147284748351073069291865239338063336220253918105176086809834793828472389594500135208214414423260152395665242346290108485842545070358434700939695576340393046335048488683837452292112523115383410576924342179277379072090007832178264977700997926836695287615036522563345740145635094808275262387719049853670547255062565556505368455145488151293694527464976336788933248508639572382976536733578651548482873791547635010494414238362185533545505243298475869894226363531094321729488470293267019264668797870715116575909622530809860228509651061156951126687623741784609684488526698148819354320853432996513892773312838930548046480946990660556916965844399816691601438327799584653126884131490545910231732785273316613034664783887455540099871904011010635643676496425661767427669234352413346640927302646960353628830980830851839596391608974771122574496572346597109889237415494444998863055543573095393764372059315934856602506641165055256608027880034555771214140012872868549738414397539018241843150955316884640782525496857176096441491454139058681772918062973370756680201927563406514692668525052319477626277557627123902170483941822538678231020304545500354912696614048739416699373752491375894345671188977777269013912240233139042485617309186090932770660649497334348455696550184242607468809116509756579439580766777673663829638430209129428444531680168540017871783366570905967648762146215786280561445279922399486866638754347050303473871363711162661831725961493238172985963346729830668925572685609304244531490601118780761301429213049369934880873056238400125676396227813518602598172377173308138844877073187538906504838402102710839613787442412397461412853629529914454434867320578050709593968514035694476186543137543061134533216032866449721150889741888910162161000784381554864255915561263822971016983550097907108505487136674103200408845179966372749971347464417103626064133144798108255481458637921091173967747599228107217294868395860920546923955197894387187253111032469736451926791072510719067283042824030275293752924229533635323700612850758746516671961114396599221585330980655143224377034114183489516621368949168076155299082134241093022592569913251994002762541657346515536197064883292618463632236538317799089258405257042766552766522483764010785253407769700164602949192205219883727003803050173628023698093793441151035559604870852453749190717241540288907401820709777570065021828262999706769708036802517762039940265882240368787136592349040658703182535866393245822858869021112154842322216589506464134676161191410760182838277194799691746559009994793214769647486106274606146338185224731235399363549930888947243979165109895249303418508261225892962943035244811360795440596119650478027635364181221256256670366588924040683555052120945399924040584185573445998975898828715759568160553640193409404090031020415730236386782685637665195320345368158922863512811955505270727886519519016847345379124805932004220052015259391357822646252838404462614119986447165551953862195720580694436490450781827019753265575103187369182469190766188633931431445339834886706124286049162433538206952016486341466058673513990631469819958590102682622252973426278573573425165783261523039855143632434789002413902828873542585943153818265488516291201539779394303732937664838679963700332553965900674666793805112760589622377257852150676055364684912265082023535134066845326681693681251394344329062761499713675722375352210244942678318230319919874144940501873159850365772951194167811508089812774949796027006199904283555942712062292934055026270045688429779103148174575662228617476122184828668987104285071938586248213490909004033163017400334030942202751489782025772292542331039890843360172138316646310269422726257348486585523539404741009962814054399478576540625507643550494296585751670003609319813903101327159641157184566883202278162065683445490265429563383549524528755548147168379249140461232451776221959898453188424038490083598040941194701643074868981948317143991194575960009932018798642644349621138940289053335412008511913416561407166941955355963646631048464529448804106460772724303863067305077375884557468950254354369089478434090342885972926337172408162275689213671455444319867810038697787790568217158249062116803188601197722374746675967034199756425122782829241401121706005301852959218747404135052567827867869180433675458360593121694269763946785909850334651389749611438424622040765928704320719692065924059090329598306891418657776766055136660122753086360666491068982092234270407700091776829909864852817595523835387888906171311102672027713100468962098284746205238079508423132306184037421500790795232129347166184261479270812228506128090562883021593793353614183942887561890362823240685549919702401906452557359819792672476221303636731972102856518050049017452354725491146022463642645311959636065126435462037213217134372828490382905849119711257728498953565642632742705986137498652232287653488842710044154455492094777904586045347908153265168841963044654408197321320727857168950881243965900879935433923197475214301563385411286336901617828951713006521617263875779253986845235570242043681004863486884260552640896745703953566678673376475174707953826495363815084395038605299974380480816532852378209893424423648242287601128085083209832880297946958811585856804642608779629704282614724651514460563247841858240013171396700661762714873544033068330834692249762249756766577362494478739225769109770715760061254482683454965208203512783671259473909768750828881489782098120653615037838487307755002643586039003082943911401853758270550639797665758495399891122519177354782126973826349495178951458517600236364309543136459612520295309090961955664303226691972908512097265664115393541225831024627250498606576822677739994674955637050295517567380955479082925995782947818567265479375087465563404431825429703616862706557021274048423686400619370326760780368585358167511787570842645625665778890644223092460744699552607879873658678352838747667795290253897096532449352410410811917468558412085483489275955998730499088087041474337122810181322232415157689002014304651629899526677001202434330341342903440595824150311785785199659456808603437829883885958292725146939683848593991427941040834312560307353189505522471531610393336317592741956472952146783144559535646792344564874986521936201278587557878005974684913579133441501840564182477787876887301316231383819356025895606600624357516825538595184310580785770354497871188198119279050377900613532530722385947876761888383242657684209965675126956589115317671011009096147497471944669769151660602194375831114507674127745896518309979575264013900182968647075502683624888370800661867691961459837236211768482311277035324458653222242851766863878160005397349693223370421928027913339714707380403774909366619505589284572143206511418798921606372463105749924214697235625153544974391703158816637704192998181371669245815147331255498188001201580152896320764857306505669691527480741431600373936664582412636804321924396040327190854927298827149410022956372847974219632651459941622903764071937389936516750529072431081060820635230100097160856754610916593257514745287858995828003989377857500380167383373057379074429480040304493030331497156690250997069789674762328973095126838373077786683860879684452347142920722203247465697361988365129018765349495737120517193911348310538200931863531157829804708026446929277338358099479986185267684746549933181222262437306505224249151159845032975458075431247904508530091825437862573436177096014748174573413784611591302649127960243756852819963998991140288527685304539703808765132581538442613129555947911678146637547632786363580442006394519657201151415742079832201289997550987601735214184018413055398216400984408080006871939826214953116064681644605889086686700662855808899491056020114202913833514676382567713495645295434407391885147194754405436079040596079291679007249182538364744307162115281710979149382645862946932125633218963666629516474352124860263079587603926351670955770016895154602417080402005738763515738678052961342044391571758574441114808714545251547246119702078939496060775712331827707556031411466180060511915599252717599931885397259065703052511550436121037486869872087934516198981307782027813001097071404114429614483354274368183172112348984305588924684737680965018250218957055207104549634617038299019064866784458888523605740492601573297473046370993551600979603025257129134181548618492258198154003900090152014456235983885332005162702252364685141683424579479323759825251481557478613160603241289683664990713657207600755115142618878086326178345933908324850839090449022602890762422497095940419001882826330743721781162161959015600177888771324561229528210440200170239303523920813604192856708871913734417258155411202171661178805565572534110536376629427180865659305389868482670711950409448236497575956920113970600914830861520006999053214323035513851690329711645283726527084853367803999952108096892163487971828838575710990283202601348584033801217494458278927056664939100424680674867334775373096240427241278518617396666747285301197191145181636709980862228153491340001475806457932038957138582255097725759475915991732958170803515029043570363909222461803796979012529326669952691334536375951662049134253691837028071624264274213461480952740493927497489063096052926811594640308739806832884431673832568438767939711075932141287168200591807497117055077890461511351081039898410204990593727534881722341287843522998263227433467836542145854612877909349779997337226691734364762891262888461693310289185171616398981089301449599871016015719003283916514126808635838891239064718238114162767466982190913105569172116088516978242989101525580015240149175736855040811880919743019904686882721545708319855876779769905960186935575727567268795650548342822767208114546843260904555685720232961983296140878943793196300870298335512107573660758705463217634568193432017751766522196081621041082227858585532908639286955935140855417796417133853172174005616730356181916094929572776291595002465529626866542598495280220988483384608457254724453620091637914184443620652722166200071753761986981670716221216648079143621826077067699800330346894175630417096543264757608206179411322132356999900582984410046614823736635500501969659142366773233727655611999937229477453130741504522563732049698378287646723888567791749295550295234732402968052525763979886231723920586725361394537138049625946208431955057655272975782297655385051580212159465973830241273543608837005709836147507475095260276215907734002623251524734249254618671251868012308682058532350919368757087672765791270277933561706989154987151040662493475883388648726949265320046929466550946421714050895423263552169548394439708477017917607232809134967039317945867771431697703239964770757384284213069918270139246864700807971988130543371144364412680525956046200803326216767272541839616630875622387427695178634744375689286907877754430545896986274934889660427691941440732457329988266528619711202199807140848352843679841118164326868506618313166234032415096729114099653513403606505492493782689173773320768526609717680751816863418594910400605890984707722672607453521184019749585178883395171504458150816086862763055462153862402376760581137617741975068889954153319908663017259531652863013098025804092401318926873537270705804806657488827382099331037722521407405880954167637597464560171262663958153030556780735108281516102483682816017267770018578815161152471861370851498021497006620476196799238484732156955776986928974002697978949508139917795668536525413261724060771574003716492243803054225891742329209862067675735946874026831312993680901668391841117850083078002723328441320987080647856221337679705420921841180116320839076274002793916611861285677284661206969313438593358332792936967967340078941243761303134479324492658767624165917874611027296842395960539866961873038992885409972799241908192799078947911336692496449414870086855825132378001907410129086130599766703233234630941330643852467375218734575079347798842068907253627293997402103944809175351930257254147657420459388415407425914426290450290620369159905835187840697874825023964385010836263209077034410922485722001536205280721831179290493342501799171852079931735797073593854597417242788334118742268090595985807609394906039090029142029355293916114586957985073675052789710120387926503172590174519793772025383316105550560983793866729363644706258863025390576793463710728610194029193914919146678736084179757400034491614057361626297517233604298175935669800118773771432326802583325991136880326941481633544954902671646735143460702477340781128567322694825910377567701374122151124467196630467899173581495786203406979342956699624834470747152451895803985370836965259934291103291052138645073894474834490884619548483700162794453211481206042898829184149433970505440120141889619885146282362013822357747581012437018891745368556138360510272969477263975237844198864612509888349930906353682255882565257610480295559008219233964030682505193098719557137399711223814438495725820577883952435371549194616790868251383069373993352617902169974502339754018380888348672463456463545838656158548687452596680248472609344990080270784904586386188890791078777390062591603317262670591428348341914989380232665717304500473536261509078581054046753954731179229089552090071710482984969992590054881197182234980575428472127542761525782913780967886612966734361854440560479590528785359041787279797253933700348688676846437063939493400395698092217072406118838588242355533918417056139575545433999982579481810843227562444748551405095065802027484726829726453875351063253400092617537541674649860819855322158824560176642019391148672792485128158154390853612153077559672677552046409353342679716643824948553192647603692706724559143406817374707961506045940883200401548453472230390933070196030631197764817443199648943753815246415495430885612002138227205147193637966593212605728091338600359095389924701696972136979854731374525260545292346887667907780321405896419532727294074810324344896092216608945727004764766304744176615128286882021348884997085346952698957772638754923789332889918364246881140908003627851032539985871940463215752209843776019505581517336220010029807415369202645790955953404818602942115775359950970391687182993602842256806255217920180197311158005768186349443220650039596446749017630208439472803699748094493130980701059197625714330079025186123286400964675231809077548508566413933542573579564460871476507357930649762438925037641208985369905064625474901523328960701068171887801066781894177297723831970615111945014711920907485037476683400748959340379104460413245781083049077585387257831613924481849877641235753075694014399502455329092935647640118185475269885809510216892598230483675378113122539156030730675922512600491752624172227090174450076764630020996152311576538830169257115852147247808300110224802101981141689372692114380879660364885821564586629785926054783071248405506504050136198652134314933661354766974664804214623857376162539084460482643866840879533103639176611242611877648001437773741364738763917600195404598680538656381478538882473473196714320769781979106552282704867919201835577679141952529353816023385267141134177299646906624074332963786795576347875467161976857200876245612096419774358523852834651060460316364793140437261250119102258602929787210563370758526783971693131927658218665524591470441306625058072085274847064408798271289735481336289117102935844630429078565866112635817713293592977912977685924584136838779599349228243615554808942683281269255421447245859721963008873949941956156352638750705337337099439933277761485798369322796086984264912299063030415610225207947078765179959791591223430408811705930314276789940472204357840055207236152413142112759503932394442733358594543667964835722970296456112171576316981938838562869616949218909699035845080584604080843109148636140808206783921605053507437111233463003558856976806719995919634238116668111471818777661265554424707077009908932985750646682925895117778063226981708795557947814174452918901480639612312893758520093945143008342023948772543945346872489504590111075457349937764862950385513795856375288119175647134651076736438016017859043556837924838139312883256673525442533619368118114353444490003169654188243751064401621314308489906630778286138288272306077332190222467690978430320101708713827490614010210904356141764174735650001646103221205178798962277497530029294493297377664966402829080818160324855769953428659948430697797693201104631773333616680326677853169553857105020691120232406633074887084642091452517727329650746140130774784484975012600853576491892356278482950694939484677557349353994829935259752603040861714313276247615381144699222013333998134724193175234432727239668837590636273088853150497230421123217787627960295623338543791814985050284387042935227378052798488219406387234911096540721776144794502944056728767036364703930230538876657403375179508147627257595672869607168105903530829391887105259319641375582570452769801166791724057069935858685424499677536285844205222241098673204085129339641453135895496721662060628181704718028099364198400983431267562508626592615972089211478264171772224982715302466669559199855696184109439473470309738228196643645452920972690884101542971683557893382604637155054167773328870646776319277304616950021968964709992781662693696802843397467008978397443179933157788651134357113015861828732172530309199209054120362564208940946712666746479468058060475877796010294451302529905744628291966812139265311500434865318652833411363614287838324068336090097578819639463215390163767250004303308137171511086839905496315945469693324023886480240754225397723065782975688097534861230875548002647723062875094583410663785486930447671354495111582790265628314657080262034485019277707499968094522820569855005567098329334640963574048275081851417254069559000114199490056905493691090185718598605897741478152509370177000591173685535319609244147879551915946932398978821892275796244839628421273991535717229414089765477080115718770615918826006446385878880527477062766440382818386883572156889733255888756425442691369150148355351616727329426664280974868582740072540942558643617255825974712083974446311664525805731122401275950687161687761418286352847867863964423035806485536204443469836038406591189298551854554991744557249318432696123771436573961551764982163208161837132918981786322983330430929543816229900435726429010211519304872981259433534986733248069384446796931132721858472917752356608840655724129173082249057982159199781939465920367377766306825583724667781175525421315237786604994952205398333751484995329661661149203902526430194314478722205598874090173735358529648230400593905561628368120736737215824811735109215212892433686383092890511996230419039602970171405394302235521823355921711320826735457689489434010866554865222847730588823045976688605853138487042845587911257506739557543403942472007402720919326958897441254278686895989825117729446064894843048759402039264638506911568595914816499880474081587648688824580794195416165983696136738382229229178288808026179736675105290159648319291171133327109556291060959983516060114530964364405486014607936173646419768789702391423630217481357163076026303083685844809665897378815439386937827563691391776802054629853229892091953100446561160464547516974641263158836887265164868570681459289570095987569733131679313033151868616125643792867574658380673673366637975688753673748307023732541826715418052129663654249758269723957497468105278740873862242359500766858686722383700360264704869386597387383823592321908271267215357064782917291119937776670449691284356281749800147425529992703618257023033721914478849790756989305318516747186211891093244701586859495329076478233208113452642658491947026617625637563165291495810417916607332251318592182249481884095807640814860212151839631381547012700255773323555372099844797417358803938143533435630830432954662007204700937541271639478062537154779347660765148062905455804563572675840647633757748334929664531262151167257549055068650170046300840631575443474701603242562588829883019231809726766252062851793402973788448714033634797962116958619630945158686281009505551865206421487475686240505515408551734396376769543325648471907229590148299120900687274251589274224544693197396834222922710249487758832474508791454885176063966176965000037902042304432957544291000150037796582987662650751628184356449680702967319070453623019192567603713231706275654627581552453527891094310050076733947059939104264774145214948119388796450430496543969166423577360183416975902477892480668094581149126767454413550478003492426810621038754677384691244413382428413306201256723174448257476087045207235665060922937789692230055901453077021505962369656615440048250238604923341117811245542571417437284654719918407140067934191430077443341424982595601513603526931011144836003928458633491563746915155719769855854687197585926952864924667990891193617816266101386760710778732703284344991283349617463756069886708137296730922921274805524274882708952240047810829236127315913364711213289569182756846944616034437665692655951018880582922001377932383485046257179678417367137380265684686293254456701742667539913560558225339050718031311257814048580058506596415421552588068285729437448526901308726623576563404808170033779725240380222121803989687650785068905426771288685717176510065990141875476573690799673565373171792144660315723628768679046003347839256179748604060538816078109644842772840971048751419160414378599149533559224123008716718214280187181662831572547213075493279605381834231718887236842340791764859143058436707926998255095308047030784125474219022539759539509673611696342492673269582056407709293256853506383108558037721343084677235916317439907886807315840519964581773825202994949644240229457157550141093216062895465998645156852005746413354761020921205693124488927748589073630888840501080019772987859255114968510366998965952923176695581561956373957470904079614404924025278199440752775866459530129426966370778626101406161648332870451210216246728531965489254828474842896436592796055766262093879991047134707315633437427160358572545731916214748443155663167137023753359342687717485773005678278390945895840579348161580959451610350509204821320036358459352681394171009199498441316250031337993096043605243181952701061696478070831633506270887210797691607341309242428356560850344150355662036508360378869640742327460983279054133422663416992848451200534019334475270265191639204626297350183189588204080591922724062177547194587447203216083138820025068928495046729077603501653286198825092374001832934795974375572958666559035453548809156325282152408672351339158163734174647868597024445621429663530599550572707965890419682583119583872152498062456360127392448180410118282554032037472389525446626033864576628799165444710420524934118552046246973062383678199423572225312707035001719714900441668898517608989680072773503924216311137418077069364395654150110169258439401507390780148703666746698091942111655729062212887203405764989007663823014486682230017284855318078792380038950449057591180628610806023740862242645331193978304598218074647664649237988471310584877642283805646228973896204354083385132783997220291884648225926559596591889341468279450169807323933975475140107468256359836386864862823217261876106855257366060002104094917293051582652484493837275495207347462411690112987096270870362106559295934495715595563122698573805691844868051516284066009475117144032132486141139655656296482194569371216872972312229405515731374013961761303816632651274923137711755066447457135805389965716547163856573233599039630923454205351952212930197465575177704279008786745831002525009976014390249693854522109104268924368035945815971558362273762330328881354641690878545488477471245568620988351088051348808926804518448681680053810319142421062021865034373224333017051564604072961651949741183635658300080466413635009202857252090508944536749075068946379860199726743354306651247365425985179776254609116817105507461545973765304523952969176328062826503355632964895950314053625774097413004636258343447207834547683070356811729702573733862993218908895763218637057291048228926682746700454156375806272222214910356347349883488546311349320613165066617852187019009594103829293030991520090941697603654266698213689691161845801576483654256980303480141342633695775219470765366200303798851469400106147607907114766718718720761805152845080311968726779508805724236654007399726748803770506240627126252036662621909988928674167230713677020375120445746881859875580202950274240204889842601015605864715460779450548012967428192499286348067999665058233733331768462003981451564139789268690114505542025907873166142232152009447687595259763143855120497738455534209251616985490019164550721333907428863472819174995502841196847919298038201841317113592706377334282562823509443457512777808496563853797846676721627292394466146076884022627331306370866964854516666116236463696587067358607810821937790284805690708460719983007153299517748569221085606911531481001806669110957673754574546789254110890665653055693946380356439854514353867036759888837327396156268958464357921598646199674557431327215443710062502681233656271346442402088038370509673700730928101734377423546592613148277022286883831856102154650728225961657264116412123906632652424161670955213607808417492870118443565537134195325407102516457779409818667028527044839490383097655641102349968980175159273422249596244149143005600767640441368370129030840861875276987150589015559459604267441110234021981075366463368455418825392405736404151354744362644798019254666841643955647136970120542096731994194245265854501864586175385207173213703108298904484549873418469490944714826850495292248483740141739256764432915311406819250847688985316134277574648784802333261137727969095200919417355749414037201482632026163827181098922438372090218070809656070479999955561108375258696300141530510095778674279111060164956830337257258305712944628850751061378675320852618252664078329167029681859182588019130795413693587266001953055286584664102603844747073783696094136399967313836111804091372610990177534659588219663733241509924931066016273356375687821964216074619415376526328137220026363864929053224457985894625414064934639076008228848234071323729417131700089088692475074333024057135176887833648599071710488416459950227606564154083996982980754455962536106047861378091413579911723585356428654671788490180563244836093876631471597349725208233560077573861432271431632349859246660047864358636091815187681368379134458347380461131739088461447451339219857010171839677342802609666597727418531242360230247548611273250400028852802990476501769541541736661999128350415231078527309719294073104271202873811765890504273346189971550213129653251844140173454248366383514157593735921730213324596086233683176767513308808044023182489891283057373218108665569291489653058295506682314021859578543060366931929298732202510964643706955313107423512985471759664970508015637307848081433253885047966747489761814586736354958301747943962763728357856104351811896480179648777559480240587474229708965055912769286750562502785505543548771264656347317491253396548061090410904851184216827522164805576042549296213831712169600323313574955779151940141562294502491418752341781120118945254733468137816637806128836630397934078755863880164500414573125444660929051756574051799395361214910252666726873521885335392687620416782413443731778909558375600856088112242721569836278168844344376693588668576263554061811987138238159554232336949551202964851751356100110492609540496074755225803809709674396098109439496668886413067383069003620213243176527423638848930180323530069364499746022483408715874435438906907095389294078904882118444448673216626638131324850227569860839613579988302101128269305810008235719415994950583857508853275285237569973085984408192186632326955917480822032695191332796274969859033989043949235395954053993030950913643170055608511073920332973944628803903702674758142970800438661381199395459106513745038592884285616051852325734346532766654239487465391043518840984520936262972324306120201366966637541341742392024870951257455416422076465701573214162222562635080613925619382707479491952265489990444100291707844061339008951006182884897680022470191404431419935603555308556466683802180819186556380354026318740125906424595835785366596273583421287105596513114515172761672930269880386449813470099159225535847929312909346758671835657616238491028500874619676840726946527675914208390006846761355873728102609292945718522674055357275361561524676947970845802026332721534405446220004933040882818698335657383440979355761708309666101610472204363388270397443362092808231004464589075732380897582238364772279170800663332185321845062582599956967795664071548121640927142415005093714670286191410549528346025620070418891757342688860606048207963230549814388739383971620450065364053022599448264903889552914987574341906956512200783927279925273202579884465435015924808466292988773214200000386992337761678543700425849792401530780096766411792524350305895734925748216467945457497274489517475738754534156370557541933186174330492578058065283280241870204667841936257310561379613296051777941993101869700101750638012192989976250806053780397112804628771265386441509152071346717813306544829735999180826033245489638246631693364562124516877966970788836942678009388503429879276473542922498348800541246717368757201833812797216912472882741447280190590585732697639668601219246379922376338670179971513344574750572325945650925379974175763064212090391737192487374011511658746460147261478449481435113937180246137637241001481361491543397746057992677534402778437842518567194990455002951858157529822762823007070768703608231027579527214791415292957640130837684695325233858732412446079480002482701319231838534629086998509094251565347880475513392375228278984347421405357094226853504253525463803656579948617797482429920755513985735067086984083081480720322837858043843543766198964127545131334347816124970944245189040286613680620344177207449768182934917988219043636692356670317882380661219833862495088506771531029513528604753470488311174092770816062039695370674916413774814702397275387496669863329346339450259838805988074059944413322164498932758763247814129348395886889100167100884060782480590694353366088164551710461270879967346245270790890997278975799539229924488757562707770851715215785669313892198750002466483901146813803996000629105835965986727455461311380405687560039136233577154398370800410338884292901150176804844061885181414433441285900986183416260512495546601057260847275891834427327703295683751099876427154648797153071864553040660843736553552849180669571989307103045670398977649038959527229990627400087732594318139870110378316544708584934557904622258185903468164445668186309878423541099724364183485021462297261272844187964825770627145515779468954369419847683400555105625589069718797859374310918214329124078608107713252748404331984206045941150818286204048101024501493683205486224255068977650649449582073213724643622048135416990628221123261127946549245380154542397142483274465005585846631503100020782334098760606309339521643169133067231927348385769774980186511005316785351680202894345008202796131280678127611346311911910403579471778442623729681757511141263913583770973633741966531748643722169383389864022885738398050309578013531799998329946594629260186431006612302065167455423583611983723053296330234273114925784234386404835419464065396308363635577139219301679210161186035242080064192057132027340840285076890478497704796595424172343681592869811947912485777007165440378928517446610918911845883427358128101380598621070720396661577067277418648243795362521951464119924675228624478177993112458356746312935178575778215407393445620015919085930439375737128963334579982278547785015386813710648539471186417940524589592394431485783356413017689403498902699400162255462709845206025175299479009243571524716729458146090191318803385219832150141290980868835816280360230760337970865490613547167725516296198235541303949437107506420614681336739528642862689950180541866858829075849645234947672553856777505596038001558616985028113817171902889056144898688823245111958736572541120396361843476473097399754271770551069862976881289657334941985518496474566554887503836565498472750623732655039612631062431641693185057995027878634111415106282026094179127088691057241428469840822830957534555148759237726008706213804053510391192066873395774689106671813349701765290077079551765230159013621227555498784869317953058149317253311567173761689639034056516524249574840310907180934445354728513793912041550195891682450896474254998783478562482971780133878920869509333997009044843955846462964086105560420008124232111554199170842341128317068971022042344511608298375110202088439057251015223535707592806490166253310750475550096758907838851962984421728549115465228325518970558219737553129570520959525782919885027276820336704688822276064135798848616964184955233337961868366936201609161268137807696899770958563486541174405958180020400178407565914642184794799000492120783467766076666093754553543079565745513735417526998919742096515144747022387952967106429331199593060681019858215347051706547811595235750476104355612987828576498115885099143586643611037657352985928864506150187796605181049588991443660561732384259422686098479868893897630022291960118666802163644254432299340637258269115209223501123941868417575030883657872592001703210143729742702697419134621503037349821422004132371722970205586396355071247713819454396404594350636353086122193821040220628368256063731389856577376132069413399087610609169480527167735927398302883861533556515373108632407143052508011701842274785363340665063721634161312953309041453891101825989829766588126404740799327829333079140104518948424133104398752874214788735289114101467206998356815622538889579026768912880549122199279605868196381375741597058740608472603350474967826857480435526251072174366990171639504209075853795151343670928749584407230843571190095890285603703813183910885545649756763995826651083606926915676632099552454204181621520305361619858879604358438826944216406121616595105354272062661077847322023374419857007505282151852937878643310866404593363835737801247599658980044638379474611134518858151544181279112708214269129575576171105927185226182742300495816892305237529971203360678839624736410348071344120366082160076368894659549443274723076885031992979035210994983668372098080512968987544713638863540132080867514935598104805759891298199650864617299613691965466127861190705932808555227774561307852734538342764448129353782423372931723164496980190429924669102267965213319158378734059762785601077668487696162201249221638172494725072937346479640086632558696292763811048900327186034747250923790435652353115347084868977985493299419627331373169212973159069648894644069062481247660574007707170390304888373191447181936830640475458972240433389136187104114042474145372739197523979390069125832220253854225180860405824724528359391895698117232504689372561166266159422938195716294343325834087741485689071908896726751758364128243082174056311224010696880141476968017997778793785372260391869477556322923414343981660820316280384284712005163051374306378242489450937270424232160869260888296201571741373186216522431379040723965065094497880251868307598636455210274660008209379568137648087659426947865222095426922345865473814763507889365883154140686670739095045083749455362619554832051006988829026925466889372571370019509525506140477045294926527028901323326572658488709287978427915361046703380996575165162987450571909173886475470224035175202860193499227926570667603827802002657816982765788492138482564469655372781409282342746939072058726766631373618952310319378263478574304602806207539448485762024002305458146312819666006598290667618860784488355770507042077654588600562209594473423430633111697461813151625023582299784833423116440386415229533112078825940866314209977107823386667692577202491662559250780986242060376180889654749400616922123993707513355925035217152707604941968346980410159707904962382223843427427786832034751912377714490829776295731278313350637199647102649627985228071958098085900091020545784386100566310942598355293441889944148071226941927172962293620785189724886012195893900314325346596725343799871113650604236431699907304808036614985620398047906580339728001319699436592411592620306740788200064501756258409317358091952225017224932781249077783477767344500711430044693262222148046818445536067606488727662352462866381010706109113844732717082762363490190990305551372850910908631722310578346504249962257249988287739296346804364355880086717846872881747535397396459424143964395586951828174609660505084639574235928258561937219177528303361406288745832566713226669165740996195265193070887390405256873234431438954969840500306635289961481455015410568120526126979103191081971773917278772184474072343229197050332523788323717577284100701143269088460859236973523338228145907647904562687772752645504664735819134938178592264407856118585217554723162186650163966858626972620869088156951997800949809713365867696378502051525564575670621395097068368043908669336623214022565553960745683920327929609014505823965134847814832780306524055266423699893975188902329751641672001801804042749882211589985984027199013010808067195974797180083539519499963040071223958030193041774933337365280584807857387826820606339821780461103724762794318264870555148202228579113597013447935045578480480967835130897918696549258002171505439925732943137211929646714409585645938206801513055924964680236521935709317996349577358623825175307336519410605385642374768239285203824664400357839512553916675360737054831567912528862590140140157193539096939230790127390970600216610457368525419303686980252016194456284364671095042667069931159962100455352115461120818030447018244407642558338973977211691242394682137211702868143119554361522979369292824595367999095729096907983343660679706406168661774161845224557025169726114473650103996020621055421140764733888522315294579351281985201186441839149169009639162436164229173713933373468131995447793896509017758435708653828860866318319117812459912003804530660312332312877209315958484870545378774744698747783625721058061066713934729926663578135587084831773584449280337477269240000957321388950052800720091747216931134878595604853854053138982718499626364992115937820368030159497131454770277647539131875678688795861292299130412694707339457392262178773721150396155063650521135552274692384843979063293053056995631011080774468269279524910800328401780589414598022484176408757607034488069312321092715745133311295944312791156415599205096454435836446473424394500846400409760785667456601327011083679306601069495010681196228533791517112807227746739627311078522223111104629744606133696552022920707115313314226600234933241794384310348936544694310400640051206401566526735094267762004097128686686989145963082119072992109230936742928878227389582143770664558132866017545800049169228565827659185305953481616452469072781927268739323214813840180726311863232831366161923549473843946174383632424944415990062588255989459579117685362646828412486373885331794510504840924246405851019475138052669725514885834811738010849605802679949122455498191222186100595548791840256549297497123612572626062074762199361193470606365665948136249706901746601605936035193173848675880558790011399984049292216310190549381995338058008841687380309260098613195776305296021061079951245613927186123903517040777981017030678595328610200699335680183801065779337198470009904414219711029122095004386117786711525946645918279854467085761317639059299629489138261423078431210191232022772692639867306813948693638470471425998610865656300293756953963947187643739130625924572913203496954802014320080389138420399419085250878131860346844792653498307920868954746171271180490010405382309089351806135674104500341528039576689147521581809467653525305328084267353292513098994991692003789204813117956966305187639228065762118514138345951968455814412030692676870247386065842426572945869831418606929322713607512150368208902382418578297352173213945821478379922818113985527273568420578420413978581099858906723032713853075239720086950417147200716185230349231167125520464478924844558329592093803328062982881621581958321086158644147094915545619209687872957644691948549472914366182607124302983595423259062921010307378223428001540941848311012645074263082533294487041202787788123566890058757879964628857847585419921234741301765629629240230743496990275335012636243726260026455695752189717487520172010109783216746407072191654179271689696105682495085617315595470571613406228308859539476701453175306251301428205338016365079877158401172427087943234958102678815585648292480981403246104908923877257739434882433409843101176362400163428654004018473747433564939152396346112476260584051381368471493301430201422614192122880320558983870717104789283574586829793881770289282259019449052576673790277610028311874028863814153321201322214873459241083372761470742343966636835077037877708429134467403796847993195506093318612285888164242609456371422364375376423611945040383955723939170898144709758056928688675823010566012967032790146952326362549427624766238842136810939236279074378734852265993027180573529703130130788718218275149223548914798027206784521445223256251029235275733131632711552346014583068338525903417529832115561141542907629370802428089709576509309484972985722556279914972285646033920853071415645306687397323275155899544971487693646584297997219529992893552531797680990488811713105421544409208597506169441753355924123073046074115126515174743532371652657113638894763690132911439045530367632134404204127028948852566088735563854603092063437216974717506815352753213146774108813818412169233527418739321318103147370038074128636985468914577677333697606770591279436527093833430108608288895232212213702363967892294532120353913026320289911936174998330321890008589805378847072645013372879818370861521324230899968619641618478771738765823519090487191253460093360496709070529544945588596751799543584517695833303224188864069650399248790552275040279906911830105496664382453842174776167388491834713092132421633702486558471702039739863329246914470030225695054511028899888350883106706792744354119575110840754085845727746376848785211002540033814464779142872086691030263927077036061640455677784870435193623710718036319752952457994373178791817904700188525109182086007169922982638657339942160561641577031145489110346659266989980544391381081712269042415694704836226379177656634158797144897982714496722062547300448228510479328236395995291492005053092985915375631233206692193104775175981515852133429677615621829331458747554155645014494682486506567003344791196938479225136926407182750915640745734475775021301732328750356153486125305761688972480016213740266508874729919663139489796819291783094718125348344717612176695549765757899490081908162957135069353152519874214927534428096507760537104071477455881867804751268929038228472322673347936326120528786870300271884321321535969084613765840326173418217807446986194980639064071115164221333058584008827595311773631029710643726547671393125067409538113436206240019869005617439081206197711793368156553735763431045042084989219392241937017936911404852982359494207109862477678076327581747856583016941050229742588985975184777572649846009752134163650422734789844902238233429820566535327118848834013371244835785353576940327579026994447322563454121239870313386234424108030549102207069768181054961971614532425324763429544004247444272516726899136172110291647150058068122760888879016684106817013324526658676697991589979678339633990318684649247794365405154436422330895776059806353726217518913808878222789264158218525144986553868300604145398049452417589273943154820488405853881353898549781285376798016731882478537824932001982896301417271972335427906915948406304731532482121346536868618696550123933199128452781707582248815464372541317704030409724748454526379549892385452506792827483379657531191144853637876396957921862906078407977391089319904868085536038604138788163211913652056457906416684323300293536773164569199320670678844542603577232594366761409013416515847115329657223586455661436888210703754665050341630043352563509857092490442981696927491328453535524729404467145806122043499050716612816859327575323807730118636403762747662267249874284301780369636718648938944677296117318533863382276774362164003167633706031698559472190284003175908548157275667056066371805158404721815678722840750761141066994519615917730854516170646782276613266430917685378743328697133756866659953187712627668100539172741166801870803647053785448019339148222486430294007282289659430978885386302027359468434555181793894340671156481679201171161989751534999050295640021761247026490435834203707174002874562411571009296078810522191543113593917960708161946804264201425877448195855609754768729902001330317680230287957885878653895774761020119509608245446791263076723722649705960657232397394397569315441550858746422515741037264295743094788658567335797180971521988881195819157166611703926936465363497543197447399062249871371313110887214041677626804758391528590994107868495633153199259164228494353647254910195014503866467185215178647186036284374323831553723647856222384570906237800285503010270425470502913335362701127966448141173742817247178882731776965509291249630325425227320965534714058727882891689137602413336427075215769811867797871149400617141495253522701338691584145832764579809675382853960498713065229872425377973534157934361307657835480876229875396335133847955666640246321363455363112223502473833308172123933737119787740813015539523776932200966008686585534848857977443337283489891776240711880028459031067128032959850078589365420605523406937112829016946012196429186383012934962515913902478552352016427190500934258446890921028723277566644173393394460226620589719740102491318122277715922823090114852215323756451510932330354721570064519969671644803588641351052146774219705491334768590471898314627274935915345161584854979898613558691102966826903325141848738204264548510862170013980374586702209552570906631168067156762282688570204753397415451763416638867166708390421751008645156010373903436221282254779096873509470914326363668038616108322031865214261524010749255823605036875550536625326327523200095573244854598167953200299174892580965372578962080602208910469127883512836881564418234501250725932853597506327089720732856414312077549245825123199908012733046449699740154297439970499048027910886943676632494865947574695618089885822563643784141167274768321410824065308448414098201344717905722008387406236387747308048287695047423646340457133734288024719302866497322281186608319110047727690734877124776348771399880168865766799133096307335489750496830514402841694227161739151345044491122595375260952285324111850948709160355105576497924438854602519645780146603030668174315962880955336687512605938479251873972157703620237423959128780420034002635185901805849662075129931010648667757449894537416421425273584005718566770798583999811792299135296311757167419365595389446348344801295896484725861110055416444478121449470576679082817042979244846408932397119577948377459441701837094723517366536678397628917648434577231713045081787769654187752653315870874856494979928704717428730708437879301877487293321247577948226188754775110521301139850290328441935275141098809755597802170883930042884293521702430936598014577136398821644528017039610667505561462032593205500922845312532340145319120381870038765741395016067748743106907892222336121524160467104094277444790288634534908814990519912896685373878634164911008734196842508612611665896796790651065600306792001009378829621525047232375171115920864044280388672821137763622405628865169415848040909195016071282661822084230742576992094173527631541298412289597719408641759731707003910902753478181061046888900699392944301146419323455456955644743789264568147961849520510823293471895826538412336172039153999508505785315316184597499208113412241191794404553318558246916291483961853987411501578801321938011160839679934405187206688110398208181955291203466793039047743335253535233206565058338646528497097388815282954039120125303318720732052394641918240064867913320672521359502353856269969757701418046339502516708134593464102196117650437569968620389477280548530499777444323267981331030759112965925645577313737487185088882106634035746386241812901412280667362687610392241637911891347836175609502645577931094985119785438732878447292776484257648617461976680957798767288353045942505873950770738580616851540835619112079136108598788625648808633456278339312780747218720519251101745732104546688881260251805708543385743378801689139729588319281927050351743990877290636140221067693135116169768313951596075392832279459496633678907860281772756908575609253723719677960149507378968527939508045397600227785666992181168446890699143863555079571302448076709213234875439530501803088677735532500606099651018509416540185732542401959664789518840909979513453343676905449750860320591270466682513740944475110516368237184437031477127666246963918352084856022021552785975635804634857271400613963191754678368212603139385149709524886624928252313262225662149100281490725062176303337831664561351411870896041100170074966828460087938091002049855200975551893170290358104872260707442775969843348144540656960927212583187347359550220020559944228953267356278514738114542255809490730322612271122043500041686662243428084146402939891659193448695234647110099901701740720222899126801681386159606293334929928285586640387357371398283428106641058565188096164658248877545494944544710294638001172739830899806982229680235531084499126768991821021904786632642626780513272465041081804800958547951323780798322504086241119099816984729479147668335342016916535550854354176867208511511080302141918431238349915779082992692297002103426761557270046447718244121750280364895267407326895400686133808248412306895687672232457008162026900591426572516785238972760772296809189732278984646765058120850714258047461851670380132229196660934174278489442212950938981549418011154466839275732473256360495860291892135943826936260116053075560132428011931392807439157616601480502545749240490793765110891146766527760139280181926311077716076510929466115336021161166243697170096247658404996474080701219430781374248963284820196442856316108987161440653698623827352609045689122048945235490490377377076656772557366936948293900222403387971395050506893345578763593303821131238117043247164727333353236751038546336159710503125011688134615795557236877327226333088863921578457999623824018503341521884296629097320537172336610363505697887433247177633905801982676280642032462861414975301102509030356248114685569026118998246062686970399160904154941606921479497362442364124062207178470598856024035785311790313572652230158005066398293895200954965025877504444619618486274198670611637374490496890170657270423288274393174478087482360558787240324486823591657353418151764608486396766456917078512523859289668224324661050726976590435477668040069999535438111807005597112175735773124769028706676161370980473410242844508794564300748318704000267805720976553958852177670492555494460010155111958217119436533258762427883594217860662478412466433705525836286088055188775891797164120717975448928621040971181140792228596246121616401827606767093559347225537657322948935810708296602629840128934977045104055444859712259997843609330891319069257841833455618123579712009556031021962659180731517626755189306709754383918656451082275672433225109012694712723564449722641861551629056576821179181429833919785688426609111702484792981071302274065237676826883649806513836325891408892059488762018169390605085495110694898296756881923600383674363899101804179610350766764949154260295935778058261335075643749501299030787755631323561912111612675163221143411840942455371169993659007233526626699619052767685348827360641597319077811718264973988856991042491666583026583227433031122038396030284149086840814227667710453339808171132691498332037219037464283847226197368951894039696650885467119603575424399319010037428055158812399041806052066504044169040423712482333340006503644448265914931203389868876965387113683203081183655928506704344856610078543956469604882358687942080701413175264768049494237421447630543555497024828044774467519987533075345198205963312606260611801081308243563959862518396952811142392519349643407318579645107500555248388720861200113086976511273225712992777884944064517778800595474004182659311036378862078068804403599884681585246658025832316648572247146585026512355844665480916482631641571119699414690404805575669677092746754532290846890069846242300468768666080668108597058889518817180289116141237072471965242621271141859562150359389637899270571132676637791833290273436070879366389811013988721977767664591216079608993801887955408658629146381267610718574403209142204256287308057371833978679641516989451618346102067569986891042688497567959823317196492086234291082731170946403685252299296910298796813145323951890074627943829906316526717570543615478716978783446236070947371664818280993421399101908538977053709462815142103909612198468420445233890153590280716071355491697339464044161452484371903594270545983154973438581002383057112531650165414161501228325397954891281939840968901867819382503853730499925672220989734318855991230322762304011620619617792548340971017428825156741075626853573173709519087875641583770720103300848654593538548429281393781741272473816193035217715218409449161713312157485304409699296962540517794938441957805689610295098100369354468520567459552499134333029620464016648252175815918149754263840528558545658868032844401952163135392388977379943714569961255228495155721392388105951432382638679064311561719825667375373990640530657965230916808657795100938506091923026336078476958868333334092542933145123450075611860810376042552550981952815072727682153953688547538843456687942698390112561168519545544906825535618148309769032507067802639422784426472833493010869646333544461424695111344192217408384563717038740126310905406984881710676645076298213066058005101749160722084182543158208756686287217696544136431719958045747957831015480476489316134574462726999078254583258479877502579410999914258473783587271219245534148770719265307374396232004462170301237707118594162782285078966643383506566281078250768476983322629988524375940942189966491950680965285696193121802186162676859665248285843671310898283787683704116088399249861469358045015562038513905195904863239436996704618233994751630868084597455418259118280466665294351826535959613016712714607405256812392432985660809284448230719045353212954333400988724765529312173137411316684607706069941979119605419903377885276777309502272848282476271246626097867326356652334526983051126248392376889659885723820921520129657805235443980811631362475636490181905721024394595336412896333782984020068386519348024676880430462813675993266182857719932220546252393801775712260398894411726050810836799565891021581984262770346178842271243085619632727290626556945681440607951685117797517811528439679392072481670912312710511253239858559271735960472250961204080821203935784781828074509702714705463634476616307648435058356250065517478916510872138022921784578631759475459305306375295788637031341877385214712105077421513453145895034692271816028335095776385571752594317273612489446626964274408071635203103861568325775769888462879588367176731502905027724449204613172821124346736414075243502596241425179112495485797416140631733693815682935252272265711683521259795885351905016403236181920461280415223728995473978615657819941477266266854746940292610376524292768267143481898586786958645701920167087048687983975093724168584422521851404008882074518026495254536783373926061341026323548301990101095890272573085616586850538098006064913846552904375231677342291313279510917607912277613364560147712136268617714449374146842249059752930865951377291096868043018660010355985044674734733682362946565036306780393286390983815519086804420362221319237755569730911440762494744405497509457447805365368854027653937688807052121892850219444911425974163709540882493957837004490213249305745993337916266364077979503312128061230342425990448241080224064566984300910113087648558621941603754542779225291556745561875767953150591200418102877943103157840216423259854684214189952909278730288330498535098863003296611952868111919520856649475611534893357109754910584481744886607404036986132502009406140947381326919824934014991385977319612468786940779625682042551490905254546564004261024581013370554416633841985957648729538042340538966069214919997150953227927634639896721757693217358558292086727217341874497462319570402616030887584964332457551766592647985926991341809223177397987458083682953347387731834244923919985758690016212849472516197184882448426813417570436840375538283600227104442968454429887660454053012154194844216648937011611344098389697777923007813983414344582656729650862501075847055396795559239344164182204845503308487800054168836372129466948546624206183898316839117834793768966371790359919158385018125467185145765948260640722350887673824344758948275659633336544024497759124251983009553231547598595127868260212438883423651933558442720125365207362374508254805113795797892051566732564491696547661621191456793516824306873273976770525593341418212695646167567172972417132037196546658532786029792387734704039752442813758755071757482040077410689435721745889914530607171014237440942212328686593102182369888879509904395790995605332770913066925984331379787456048816497537410819041421737910604636068549919605476126550324486125136434060205569164467188935774838401293292385505524315160079979480983282907310524888077061515397762632309042775666473848194376076326460191579290909060100220310749293856206168206540877057313031384356677111962332593520972171365968192550461020642884968747339447425147505639070599126878474395835446771227422201481847549120082772793391783676096809230179761421723342309213113750303702822556627134357651872784849216358232499978103492878508277237626512649644238566544032118141844557642151676424404949573710485918410102790378354145967002725217736404162586972759726794796835651046485443149052378639015962135349225701087028104473742526255081176449049945777280617524801675074565868282866465079031590295839546339936409828163365423319548554820150574718628342344958886658679296287255572599335721260532725807811929239998150987374056215341901943179635573247429076515539810734891958046962494482378773403558476730550565134885115265990691853495927457321962385769191277082232773336409541559461637539225425661647342423069500024056783180737952168119637873974698066291890917119469210975884462951039931019228546590125856964855072482185428226004933775970991585746909003577088009540809208562154845540264519324425417910725443699916149206452987521477331827439991208872621874512386255321430203106206381849516624185003672892839558170358261370816302022139776216110564788138751545561718420707142272440248160915017223455734139997893128837797059737375285810589898952929016297494070880482043102270874454296282957222954163683212262589442131311176058964116804235374399344805988198573942489783279381839350814426892333417799006887575704418491032918555841077940596961900700741637455701514906821252667174962441151679299839626410869396366344367426340526921044694635892980423057413055760518900277058575204649028608917426354174825744009635371640664696628193440963785394163984616952202128261370711333284179231056251098174692495331116626174490739698926842688961862513352606481540074687546713897605099955122258398796218634148017392773005049432127867042508726547742589010314586389479554848948389552308289357860353394688676355793195677578367039227460146103725432497010236478087084129746709044507048146201190010152921035363660847598245250289106699699218704716674973736148394053145270239428168065431818059045411679988421208046138087494868294793306016440171670069798856652235224567543207780491051698302576141214171518399861686526594571255473677326534596857640825606050686213040826338190332275476422766908557143102927191437900011073920885003649702003592606396794144538202101345131783079211917038223533893220486352667603324602299376336948450507133862285961704003765214676908021636504384896181633426833750233002118437810318145303577499553909144170342621021760414527350358408105136322800494413012887041300840910013799232604420245869587130587444622776645588892577652357030852104016730034903026895738031087864324789370876870636943685931537629199895248827855275009912300439799734745368384313147926207872598320767187774761392253200774607709663481561513035888714767577393694977605451808630165032987401986831780036049964841973051442795547936470285163597266464211899278484285998397435109518452647891375782227072893772904255228919670204809534535407670338492457899061886620152768113543450086502265205451194972789880850188111533573876498401657390462613325818194471987996308382318794841970836291321507632962106787214822120461078199895731819425459137942045491359995900983132354296069117712907565494838447132763940044691726948494239068346016069346454849851105604096026495879920194357757539963161813751853895951869654500903911702890597579463727385422163038430580095383616415570283483878409338181760720762241422153898616656498229865468843197297131460333328222399835404030028580906825177233205396395320238949315948816859697418506103279073883807434534724098638341954770070769712180114324021964055058814409415677205132358929528463369233098063309166954005542083899824519254133867586915682935467554909732892647586803847282722699480168431528794921587050548203474801658948951273533794593237648600457771098215349045815028285229991063878941358451010027627547593679294996651595448901062484109915032969311921948653376015368152137310136265218778372152198974351292598935894488882027269275341755385149060347315224218209176719377534662134745229863562162987147113666846470676619286866634638407296194957752379143900858403755781943397270386147898817242058518681155294883479098235897241630833598315976128188962990260498450040605929243028302051290334515591078808937118166370599284831676782554078422641985987559510746008847570908120945765430873732274016021018997661022602682915312929160763251957628294908797465716943925366820996385648681935550296469901297067527785766928380540902519299772140423819457306629264620714971962521311490981003107465908716981208994442834094807698751491133790403954225765813122343563947819579303537601571933293897362421194291615980628061131455528083004896349535651064171091055795268937340967565440947600765029373069521835038027594480433464706914573726104912600509079847500121479439512077174463230276727579758727413888385308310405607407742447988263306285132126721632167164177772715580995477158351472127504814761897338682919962851973469400245497002085276945143186883246831285881840622112239521413199341563767230066712302599772486527111899095349307575586874702362017498458468850439219038056650937505480916875926759619848519016867088265962201699056822198987033875340152608371843399047665036660005930122102413604020490129291416910669804432882383719115002302932055371577031936540762966308635017608684253521591327359261998098960279366993172852595327433805465357074414126812767539096473266412632395358162535638248812760516453496271657568704654764614115245083029938659522722788830967865729485256579681271437359555146650913172704626195102491893802072333989633789803824569864185640136501550774298582101180743441461385257783455001743858499153869535794120066332311303631630370819739491326282430577342745745566386198286106053561014337442485207418794258868321498586013708029891321531727773293866468560903118715569846417183914175529341705305201334599277395380599875885571821135386592062642304756282889605897180318893737061363211638308428288394746339701176719438233708397236575846305599855999574915079299469224335555628723240207904563876485367004372848165961334667322189552816672694364087440306797398505286414874250884313986889629480771241238740430006600370931489421482963436299648072638265170007542858888562506980937075609522598298004975901172836701299023266755108509800023734513372706359575240677226529328426161430666575492383608982516880587004372337961480464013495914725221372020917848156959258786027153880742192469632046067598626516783755904394836306868963955652149444536395091924992933649286265823051461022797943057045896009293219484806865300695220452154420520733763016803043123290320968420944543071829763310890806682353773505798206497755934503828084353236889229012102944434020896604746166676483431477032884357440306806730386334576730063859902334155006833651545177635682896950564814309516297493268216376648977981859042985072847909238171135897174054184366553600461087834246364662608327998990655276956624591412187363632835543184785466717942335407356984322827197979515461529278215202043299828497817894112333502435591806079636156940942236249733851277492453514539182689885222752965806166063817870812128888031663540468078708192317333880812530801886301150310931242152736386540455190282359811153536896700297667141108643291045552408258245552115371949876303196548715937430360775640138627520154764639006065410465065342589280763242181623384550655806914703416046008312602338443776173314029586969049799380406675724058402792087346640302400371941405990669853930459500539408850366105783440185410605226300755988722560838019976345540535993120111211526601759647129303990166257583174523390135025261355444432059785412054192116389169079915818820355116165880477240558388721555171826855283115959725509001601245955902502061821852982954587883851549500628088824078499355883332804674310880011380875997143466954345022451870418926523916944389323772355506023009796683549603449584939669606581900257926713184022965785645424655903747513306545746146836162166193170063601327143374349887517056741124149554376548554603437896404248648941500295646534607533089748262121021396136085322708851850032844802426786845474639557164632316546159541449810327615861552875397115261787803458631228776077579099503895878225949915046061897559023179492818676624622663279218333625292801190158381809078063874369987131047736062945513430412466028204090278656623828510676167571354652188456834400778880364049860928920873166152035106010959507752218942004307465620622849746596263943844134444945098508976976658532870501330531847136655448650973721732415936561454301692161514383670917950470662225487447095635121524537617680532288615062255869079669677607284853160779277761045178734881873636987486403032202225375228895621042581143827269333063163148595521664122223641340185478365800041969314773117334070102840584269524761107572040362781211206917303300618719669357774428907286498832943104014367821162855332654617011588818372884393215528850226094681184995037211351160317196292617374412813550544969825488373727184943731361977602723116222559550762977827016310425778257038402087351420415026090394723079038130928928536926455282305965538281220477195100273189525569608699466144588012543105427285113240822751040670822053441486964435839183408839523047258721086865201220811205678913622146459119153257161489897137246336644986810264308653345180595055949228346699007249064848884659987141652109033299422050057513094353259148942140860090906300319499016797841380591361019985584171258148706079055746819812679334886795378363444090989876754152749757430466030890586022272893055497006704177069967062039929865876603166303138267033234859048556637149817792528250222076195552891244332479035902264801359405720271623170023575726560244656088602204440532525889810593061275831680956970101494900706070321293061640025995189483538296252065575197151245397003669022020176263502021726519018557402796493209490563757291572291866258308531497240043681090676265952240645157489320367052903232645820332368653647513030907871370184056887539881374392575477583801208010758079725022658230330278826438460423076847578346576110803617213348333890694032010895964835271680247616916731421605618481823491608860998654517830486073574895440951220699275704226911045843312461241379108204065507509158239507610520277704297728359115151495915572887697559955615104159314598636805677633159072679110911792320951274022032568069330019621197862728323765987544835433899839119899300597312270588748320571167157597963196645453977671832164269325949359201796275366108964444490266852157551864124622495310143013369538770903448170140214448343183918776617322428775345735196761299496627654795155739659482132464385967235248898925854475624378402031642848371529226453959962388065500089605446354772270479449123986632997569807227748424147888220001922077215132063998932132247346541549058405947591733540232619457211955962230069118429170313780251843027501274486583625729257697644047187957164354166137769054454765200664619427224763130143900253815578315011543806978511909472477050390875727591760544430006748746676818237497740476711234021695588881111573425800271782559491534179024108805102917935192584015848122669442389770097970226834937814423123561684850759644958946207185297544525357751107497701404025811037152824782649578244435225215640228850616804612968391612379319151570381329321681090186208045279040708724188365918080114743135488829806324377032355941644307901698514665454198758799389000787710690202389001029372380951838966638214586280323107611137907371376324348765100429959373614944412626295434569335425643795758099073571422412861111906299001628120258761460195252515840864058540150558911159413413259009436272213210908594751597731986371259495397743899511504252013864831136221206816151549713770003866484392978862652329198674523075229742461622253943555841387562053184556780803850783444614922940320776428759168617646433030818077167063056545734237163515971550837167478717786186217371779488444885460193818023177435284367268973128559603029240569462472947574447674261104804408350882469576932116770240744120212259600845363450866553608905056492992335023553151794596453558678852750758318454848746849829504566976503337364349306534950726193959035325360823228368296249822453359502090963409876773275105211457078610705288759622626317875698217491402429030234746157283598666596416678312908254563117459198580884447608762313720842818674718163042106294635834246472925214264439316587729620473939086569367017879646976983115373068438044733199893598223332003642808577175116415370588711656472694265672524909626539897234570512363856063034153097717716276081050487204553118125711363661535758678899296346789054848584317153071788810121512166041042197762036771437332505930189304045980266312333309341322240457856628922423501490483075014492963195328319241052161762088605355135085147692854005299296725885769992093092863481614011545334026414575159592326836997826139091726694007918081054246570622505771467789857087322666041843013166116482916083624559097379794448886997594575764989107169087592281910269246922066382565510758949759624715235713324211538286500597920717940201144905786152474237779823452098592492721553824664435435450109212919979513693190974239401070234395731119328956471569370028173397305286544512815414918507810844373654025669303964334304898048103784750920062039222885879655581006071411213935702288129726334491236011055463797306546286038830197095338502485609381229025418115526801707368900182381853408109417191530155973313726201964787047972922221881500122573469445983099891375283000155031280065547531022750408644423889388064880435242391225026711155652594129744517744948791226717349227381233967378540055445758835699778972539232309353723014487141454122650448227888017151341630244913157967937823354232309983337915529495680759266081106018632206395934524746184591983660389900949653693778395050125000955847012695630846170030594716920255943550715160539582271653803009236518634068073472234687904679152058077840053495609885908361471562777091478464224729221288352673104274566017877938976656796854837870318469889190376950851299663659949469063488485489386004863341389910776993217027503356111692155317520838159602421174200432076927197096351559002967168916225065269891769026462564577523843045933572627716035129299602861445023835852398692137370495206191882111743973503612648007260623766162608671160597773841550632089681920544486422997884581804027206156292484366365714788435804439734505800025126483476787372161212018412852997126070185082659695144287738377825674659079095354030247933343480051663412651946576250489853852539109093686557223685717026132277401261540746939516766662163254609652983181516401467711076133837570316392475042784439978991837452682613102126212810069182020983029696516656214660311915786996597691284019359639354089226134603010760885153906439822622585061228046286989931211870101739451313413850866437889632273670421867423274513456342772612968443270259396231771263031946744370542643571300181570374942426030994130019857825017933283027736934838512722729033484889991039847117800595356191534357225007365510014326741877515497846157463259652667522580747242209066125570531467573386257074421436128319073058055877387477428988274743855805242186355105890024665786343281703395481765654878187182528964420809361731944524123076336214474517775167392447617919602706313095932768237712983165254736898975512558973800196657870410881172212641489091932282777797885134241608300163146918595352547516372547120760060899406165248364957256013723827309488244225497654927980040435120930904345468880398240318851141213094770283660177095048613036417212950196665429138583625668927363682467743104398908506943454690371383897624353587988384598814444415775569371918314336688928050693880515190467515421941150091724267847657550200811029596705091014704112667835172314278031728918485958653786163214505872799651581227499378822294811044930129464954198162651455618415050844576809563020962121827896983834385627421597307545743264072979763795848890287049557211790386069173988405306113898827538518410814813108972029474911367934559874137691105984020050652293951696082516018748956574944602444595069726889973516945596139646353139318330780756010686600105447657327279288742682163157360587268722512602735243060724809797761404906850328152427115129797602326340145450632419975719246240801748792156129321867396792884001726389817196282200604732915960906866257211181740732332982302031590287903678128615224514497444153330891243851639691586652694902055775683322587782966350247965857471510207650724522558462838048621473706645296904685829287036252848257426201111384962005269920681922007081567202517642419979147493011343373196497206912990737704108579637739374480647903121475583993072455561638246697204913217175302060070173063033292548167001915491995968390449095579425115854213671188540225724246231345498414999271601008987171563766211605903628312607758861874290570646093437911867466052546401545478990804241241428689178835896884858857720367950443160959702686265369898573390398017964682424790598411784350477212875900039129540080563533497616160719525899441273719610836007119568642875107817770873710671999394784547737630608548327177164557726217972623714853245640294109099347179888546081867861296346099185439824055397555620314610316307356151355535169034392126122032733227193301507042835654667720963034178866571277033173115152334056535055697571946365587235115142112173542171605344015769273219032490313733655294412732434292948981637790307591386364060648441837675322645188915668657724944904204521217786273584325305720898481023387998072705900666663411710263460275755503190311686903074108067352221929120507259982148843147480064088195392846747608291371061041278814227847519185576987610844542768059124868955601958696647788353238600414714341146620510681105339603154368496928839641099425477826760939526847960152718774038100263410462125545247692220860809469683047226428029013463264663117000557347634383463177889738891404166914158931774329601735753756988447492913843999479029664268323917946275421768278718393442081726784790384136472766385222881186907954771518130621160628337188901550741807198938254418600177369382689800844524532485849477504935578474766884216232875404202494065739541788232927283993616192413783813599824801244588967250477088757132126269798120374950408508920247006821555713272817357527361030703473560130254541544385099086798572849616777465142157023685450156572471718516643304344355142553100760029779392628694299833164288734170046794683940647865370302045610783375714875320218119945603545934608534978684434352904920032827747347336600413174160176806660498431263838709653890275600927125533180223712613056767036495934382942900978787602911903483416918648270182813541259743256965165129737690761291924778984265136833185670482171453527690471898596133188819705070454836543796402823841178901647923325194692793103284134093780143974272448488414803297770330323299596244831004674939949581092447453208415096409811871263190222755236173050753441510863986962113693280468415208466151925847943578810670526075169380140039409292961609396827606895958642943546886604441463869276863259999724117213164947612422665084779500222192054574670093969399340567421645185252280416311154550885033086862712656437966514026867182087596477159378491446451943227937905977947581799862842273410260107658021225108363258796754087642053114697194472034029662585232720758560484328921338117544726984558041640156049736465612184556641901113288801621752675268761666676471653622010921357312573198613020751347168957340720800740991925469776970046773593325857702700052731480155801331423839643245484724692460819703122127929272362665690753251842683585138569794256738175227996323377304992362546320242334943910566704205906233437223319495863871344647056888217624849406927260506970625945431005222345738129935789265448005095870704934936122935569257196890077140633916444794732450141294696153055319223485346367672202153883846673989061102210624004568459906188254563923286102067302670730165494779738566418861043744296214334023848210123233460341288122957378616018134463948074126424300850176998948233045299597307947696180385254340595446008726852372858094691091816948363226209145113309647657207500855098567586295209256631902423005127816801750173841939262780138204895701741920440027826858318206948714438806461472518758510780113111254611054124865772846194547345992859820324590176505127671043215648837746959185558131232533115733640950326947046127750238137963143348488878129845280859412837166272615869148390380469358484912117374092548818625362326469361072627233783153319283093618456003933754182004380732993496765239922952693254185604593572880076510578372563898158491802630363387840219335767202470791612101644490943582355851314971807755871085034052330719482934553888502662928001786876252948971189159417658139371620714187063183534892969964664086533338918649984183462424341688386894474444613422334180986168691731342867327706647621964585402727774694957297988499925350779057270528681273542808264094677175313673245903555753255625409988652284376618341922395577006245956826596432582563414372948303764021405411902519402659818557701134444585722808152351301267647915104824329694965714854828088795378251511770390163295414381875934023359388992299300316591281006239022863645783812838099878075845946273919334904682029985307389739893644089536219078400993851790394292428325200028791255108809399882050594819508652327436138985704187342471065274796099584248346344558670459404311848625583352323403746206763293621553324013748666949957719518203120401761529641115980213423514520225419809565121883978093186973106540847708121942644026422702872259254168489751742057795373531080072175250572527288749286032746774688113337393710652674418951734089346533882352855221251579508058466151425627844363878704164281940243090452281399397328033560438656871904176909942640126605604069645097276952152788072079612799350612365371231760119429946270655124174557954342326582144254196770292360298047215878437188399940515411057885071297784687619024560798303778755106293496818552142156642802002527140952511997593015224842364004580465467954565303011664181338213004008845029828133948036704913931635769630332868718301914258206156902400517852269440567970970424780898072367144955286077083892188076335810888374217135629689238405897801810020158295918726838428048444551733327405978316320984447979333018768307478594998135618109930062366300230381779495875490875621167305590398643240560905492364085696961397411124554146270026411101656123896151800315598172871272992659648085509732767173790975196099386178063267742090394199591810041199298102720524653031855193576608477684827273837395622654376886324788935859751960723723502378556992431473734950987254639541721471471148264056302833420021688203012616727134956553422628382049686054624332617679852886506076237751577133848836139110704937488758305855784816660622576461165836401183024652396657038300869141420940896241311745251502154845935855683518873574066243222618584064162134513044854120512028345196503743971105347893253755867820520126665759719707089223648716263594800107023260577612449522629382721303459008743639508746508650970747749245874992532029928560287090988026420322548629588021741972048910902441811592885135308306001797682044036771824049855214490018051694358969280157300992226211799609970984623018442843631037902868833415760543956685241096863394097213546180657593082836645836291666456016620950019056412553811399823839069597793077283483179953745433741377604599384418959325409101621988142259439310010654488670864918354230008732451071839942579316130200115287915834349547511738593034890549710949591452815220334658219470474655464655113590968711850761568655689424981402205687223204486215249618289986221876130258695307029080763352230579297188827560718708557172543213821069505596574424330736142725719946303702237110340001725788427743613385179743891333366696736126537615849747302439354687378316672245553675676161579731347219123454329079477114401274371087803768788858192448474156157140740841483603671655835725795615498486149364364115685457216273253129845841533872378577394433248165115294348569149600800380221936604670851483421461911487391139821533165279731479151326385009254417630970542576104553858662364082684437544632148977430421174774625750426997304182869552614163232162720197290714240377048042844264348007057753338335186633864792620157699665053312490607668475529688107131591657811280265448361103998393976886463625324512475152246314175934010109041817269918859547268947631009958581488229132249272751924691354590310846381880125890670345507562728886251394282157492103451025972542546680373119950001044333450165116157602082943247508829546164467467421844574006840772719441019472307700468269212689125361250516943697635491193839181547581469933714364672563385952350741984905578334476267783183279492731477000426736962433531326376059345614788126010171408429503277317048445449643613165405337589154289352913819421198475187273958249827889201114394015741364545571076867083612770312598245345449135478053299120008689593334561468493503404115593731493036109118459850598983883949128966917766081757610176656623921157452004855713115709210527491960830841997957654702563368579303280301437266880313544898381557634276433531327803756039401505717590179198379984540650286330143119668206642377039779203694974148304359356549406696608095407749212146575896601085793579098860097930964933502604555180988000313259690390058411747418755245831840491947096564539498647427579823082865173384216028249758215505617407279626126173110171775391439516181818334681968639324874748683878078008994443736998935904061687746499909042333428315787135129503593543615674037966348735460642741524829884836923880925554347928443860413096373373229779982568403007678992639033965290641188148886322650087315297831433660239062511531747295786773959536006452747117456161428689320047466771756424853327542673888558650678665144476235186179629261439655609501108686199396793491873221938211965800064614197672037253560026138645499029586264453852415280626778323050645810340181173024595081995321031400135885211665020102640572830304194377331838335682752742717173403844961865468000756621660041711192769636284597180190351553541867931261104893749314407657921704895855981931132568424146603836271148044026964934271180861075401418857830900711939190134021147642604683044963681785364089930124841987166916478547661381825324611992778546716147284363302851168600170663725873208977527202534102176407457015629373939957837001532751946434398662387996921432959269622786857520413472653148811785824991857629493609163946635850762942012765855815195441174436702922036771977011633462053586755492096263589409555340302796869147534567454301468640764984430205658159972664501268648671093656595796678057686902518766506835225844733650760361192791187114708136309698979759520149540404677472659848702808636964200888769988910621072197394530120209206051048164116442076371767913693742089462345579128640334789298219482345015218957169873975194596293162621493317570626019203241390405837613597440445120025401621969705356220303198863889196418920301336219720605702233919452768181776896800251253846197345656046358664165900835250513795155909834388131268367131429898357561686421952075984702130428311137023886095183177839643278829476039785987250755967184384508309230403387744326111158941336160198524449544914030385344666526765208705406781253812341741620681247292817569581893089949911254715660908500475262039714036344507181798283774817392315379029307726495100693078144668439417002740248014088598885180981298101480834988688469509357839943536183246326439973939962529282634624232486042610778094899414445091672713316942646564766877957610301505045520386930688156152402379173427110294072456070005917249678810502466674685385429440933759940027632633391346769807233107482897534623180458945208367719756778729250017617852247762735167946104524948503367456184601427696947802932832475672272402356190802682483497030264925630148511850015750431228753360620262331833545317401428696035429138464478894000576042534823953722910939961792244175716855130597125976908031216417361215157531330385043161827666321870763257637972605893270639551436172738431396434685579129202368094833792458773894035029894305751291253872599825011246805361711497249912494194953595048686070102079910909794404340391528023870541589267368317079044585546550873077262555822087534212564574349643322489647849166013067578462156192883268372544001545526005279636060627684313899177123911872678225928102956492423640127887946355056945802104222932277443605680867444947396300264269482837946048796965923535642236006407336929197178119586917111460374703527382423197726201957049874174015872155790331771314579984897695579560331036188766188460515139040884347352707267394971013116079256604254902696728820957005913208933590270655883473692792357131796990609629024497985021181857966853163759955376956835948711332381663163821985994673212865522967109365122094213514361304741375356283369681889639878440893561492768843064777913960941221888631107651245905006558926090876832753171650043202498293749236041599230247363998883579693622542484837232558750094293120167174253560590334137874022913672512435481167816786547391521997837797264210081933784548509138645574041774717240640931607331817609338584085783512337704708693741662684104512504265419745347596997306302269690202994802591823759169653963299156868437663641543349069568821696595335544287687555239259267405997437977888536961132779786575686910358768211836547141601225770993848220967696597248424012498216651940862670661486878985493591990224663360170976537976847232611482826802106618651284187931853665837406517883873670694543569596247480351042822810774846619519406049990534003515205156250927980639875230826442029932479906263457847081257223971836721608149732652167236114760084323962212042979901476211678531383149151017830872282232187419170198315826255049079492059048779000100316685901421354108415831916551350120461466252519655352282603723343618089694840745045673774749389607490147119246628607850252801984715653225805712721619866868496952945808642723226411757072061571105849764331436076305855027543924851821693934333627696206631562778302484064914554581652631909874463167324528942595195273395022271710276655720039845354158821477938810939115124818893474709393201490566181983388270864819957841687781737748860596878427918213227151115651263844641984867702674019010258260921203741036920812689044819786640461598859951350955993262042116683641752032810806665907741095635895968903577558169346856630675347621334725010064312507577440420200757231442794609711929612021481063547095288299846857288213968244108780949496064239025901912090887119857914220821738902433527112815946958481613869269954755857388477643527523262885304967962643814287131749318456549909652670346228075258871904345360218577179295689780647839247623694060071052360136393836387142890345859188124988537843968263876236961213378762011842614078239942213045881779704073570385701272660996790539592312795556693944787783269005020455428235184333438541523971790929997923492797770723611459332027691256300567853604653963598586148488594167204312051509678334490465138815310404367680124145852094840914603403409605146632188817494896792927773102347939066642743649737223133342368768498305597303787803988124125306409296689030682041204557034917053614660983739457747551518444072621845980203107395583248811033359063336441064664867372614299713442368243998086733604165444238214484035178120642162398395040253083801698687357928583620703268262181622574909649030629170623099121879414394732270350385606435333190154405966312731583476270782680290584714404911749532402245471823738320673852548166438065248477599024195966970917985450488616444825476818652990286400518920798751820948733765658889733477370517448193981682273049974901359744170131414361854936116407865753792588070519304136404840165676940102404805306751794168321854349823981394267024594435211575485739675716313172785881354624791492191057625730772380152853478719763974787809132446346533729191256555523894881904671492668570846419569853123852429452334810466467606164535716817116165913650368744431745012503919897740997019664119945813776236694795102568337855888074600617279754843500902410624058031643049466618159197001752053157969819248819916557352235312994930798295458634416714835364011798772051532164420831750126290119306505524495884433283416745830182292170562778573144941037222356400383292081511819793793179808568189561433239397089796860142063418752140768557555139142267442578361957721227099237151130670635608923404612682354770988247884028644390626770537170583491528719488514736705523307162287589561578388656949649817672742074109230606166198758969873631156540281913444301207062003111908070147050237627432524834292044587072157119920654951553671954623088218464920543230834991059619533179113824148241651286042053776539861284139094237588308635582879276735144145889948648035615878455426800275832469549134978562775257997526945662900036104993688896406051144474477495710660549598073560781268954486477122018091420196924378544082269991911286391785591364607306034147407971330236138257065141852775568906293370458244334071366934213619995071103630184908422035917075974805999407006037938074942643413908377040898793678552850749244973644638635192557123145336066098612790656839095257086466518821529563184335846220481244141065323584870624955269633641359903774723165276622466563713982636571067106337634814953029137024901387957344926190295547457513329802034223760282578203701907044137218170279004530392252428200696609000002262777981593958256612828529561479167606369537440244623283396075911850545994243359452465055754362045462833890803407715469659463750715155091716346774370622075504024875400028377986761397579453979258835320906639120570200600139390786799485755500611297461758022423656328574241989739155817239681741714418696683752706346689524630400387071176848789215922164093309610400047601580275660718882512497526880388729043605616559153463296757313103908109865417355102500476453512521023785874081798226267363091427626144514649795506188154762663443386827244889676165536973675453755303944978899859389445027732062204757679074723768221845119682052182506371140898904864382673349313478319448294214138557872294418066531740243066523425205424973288575899795763004878907097462790554478299748972354331925695351930033369104130401420635768646535308034333344411698713780734538878935543379811657279575323251103734120527492902600463214451287889161414136867080917646314116389947073062190543004184282565875474225699603227839541633991896262205073547648674683736283314712536920333993602160902654835850395435308661962642966547320529365466358290910030649770048092780601976376340732518739680523883592522820487420559250196149761834018090035567589502390313492291053952915088597712198396514251676902685647615599849701001153263920126750289773022640359163681959689844801308911296043294271694320683483451329902936556537291472120272475610549813898115818124377149754932224833766469639469922317062679672678601932956646109464770651281173654521220018606625938231611470983338916975995223613139708216733656841471322887689809090248839397002490179103693047716113652461058309561924104157661042905658600037163318857787151297595056048506297161412201019759686141639330554811343068640536046113734943908518003020024106952293865858168618396289452472423405091595849011324254800757324362534435515246242108120449641618997387705400706844674266432505520940525187549524311488297750262410318994243591892261782666519782383247019395618822488361931589730678475729489163583336349406437099195071775348214398512722468532501197129376537163885552964712545623427192911803079324151258066433022665380176606626893035938335902981777540895695125799620640007588239068774084624778470883117681201146845381025875467202418087754535849945633350799145061990868569973140456485277743431008754344256991095358694053779634272951208819761744985097976005505789852811419639079998847307804892111260983067556594897351487846627246533901455560814573884455583340948831636881367601440309395894354240215227898199999225245786327164066346285984871272912278612070727940698686713971182860092399569847264667950067053637588870495653759326463548544630760298606722723756315995032660597970714497105371649253976714814743189682628360167413387854917964838228537471474579937970351013892218183307345832818868459814110537480430340390491989267981040784868189522169229199705646023203836140074223421962498412562567569651247378933770238535362556686391177970576772221752649373829408028891488602027076728420465922187659207335419871156107676409675044630650133460048228952124898515596407553784930692423281692617739346283764681461195480466047850543905543974636511572301711096747816918219938247869966204870796980361498102981314556498377963794676781620357007026283990159141470803136660065832301196868462328984510705971133433341135445900360033583731197792706416927123458233802007654954087524413993096098762541975125561720141095728434336287889258250539306948812880289816209494991698866429312646000514882762064607466200709564757991270426032061173533741700583043343667043413749286777998670983525358998694413647406004099652874232853889655792400950427357937631922244939940791484522856136415652090912417093104519894079611290720750949164947518859969632353872469591765509248344610505944218675780389286838761009862117216831350886657948113118647736730766965660496020853301055551425731762879727900318913144565005954672476630356674571673357443414388473979877438138837417314713210278664035424094652447359558791979206903675792619526609580590833071357773292537921680625934120344241110640173293940391088389082185310254147936919641020206922709067547060031045777927082601185423408033577484620976952791549307429653023214986792226767395566963843799670530654516589955055224030592710874873546199529715237507068087177015848180943372553269135855739023625156167995531229244713486270555968301814384137785159324775586787005913959569571062280015304360810798536704285457265996282916533376301467589062983687204237652684920100730078561074762672824755164575141893198612769351294178678812263857305437474752656367932389429898205022018596125046191328579320286447908677922384309939962505481827377194406287765821685896642061322066570269081916967593318839729133123213034113265440644142708838464302834122987102525855241970056675413751477544303150427648992216240329314316931209404725886158319314610139953779388522577754729657229430999642539489628990323036939610100438053299597183734315971999379017514475390266439491965184206828920047598631732116640105264003644137152026050512751314040473297004023905873314674040786451105014807470706674145135481083837891948574453358687662721008400384744133454056765323760978918899524393527902298530329896766213554921115208614334485452285786731951131916749888242415109109064673291931299725723797976935526096404278368120465388317018762561908327677367643221988512423304023171663238588334773721308654201881105926536815409885127009443581520252665254847447966219764353467360019042660622868830281813358320013550613319691988682671348067969672460943440546123021901288245196980086095360893939538560854379667698395814035732342614885718420585367580208293302898908037843550045768515575410516931201305345467426797008335670690595282691717394776022166116545385301892696506454467933593275959609017862576325491883333658560540364790198226942285465290741479134952754654763523947429199736196869368585461918062616836904623754104937627918719404245764652067865709186051587648337480011649486348528292723835596693686846991576744017480310637084674797758564207102375513327085015945217653568682997090813645010160491943931210893111989956203376002133332841032406286297763063692617047314807234575437329295922446726626883392312847978604766807282436630221198317256967765644787215303950129572993889983740689711930873505498272239722440296546625979095340897110602470128264231743351506376884264029051591808540549092717747456168596052894776768998111342869581435848727770722138679014733169924971567456463562884010632479152804629321988808894098057807257382759978264800813310497795396281765449222012343822082020449997712339575226992323254716310989870981041921306270874597505334832054323172433704023303916648506158251811896661718855095028416418180178937206028470058278267678874474620707407734474508008746595688970194724598979897806061304197010688738802574840669321288437045632366998502139566178589739884419342449676343747567090181682772516762874724169785138772483850054283730791764007043979522966508020553410923572838444519090013802072670943059916048931620527095329645357891140167315726255363688986733144305724432786295501918349410893499115197775307347930897803000612364507476806555365761642154939890975256601672248101288088825710494203330534877569854283714166805393812269557786070021495036821678328925380121759823005524765125502558488512389303245541597120654414417688660038168127676542368082081973843916721023433619049539413539453777013753955904155659992393713778047958216732295487289098353283057455930545007489890171679711447215825442642382366312174628860382678980657455539894507587585140739386908158351358328439313521581784390690217027264607258367284253592200771389957037481247850815505705008714529680386915689654546630068843229753053091984430297473360597722008033220024067918337119924465674142572409473330666483517444948805700231181986556721823813383549913155766705734728120558668057818111459594519316281435941591173333199583971796581593017878044852449300332818374610529896922352874226564084604113273101313879004935910201046644139438158168938471984901037558659667762797852681122173535087508417983381367855862689600998914095283812020053643808671261136641801878351779273208354895433385191562014977080359459113536315691789876353106162808786186798325747687369348336619218802351692564400083075482005379447459987208663124939289220294318500485798379202631016497113529192661685934626258222885201298804024819304779790108754980354728986710947198849264916078628901227450960204596710246752788892032909882286926675895487596092289412413721359147359985697332813750165768797169915154268019801041007657784892699856123894724291432416231819388359592899509002435880057622633361540560001644211369843284107148751408265770250310287946928239382571665761255714388073224469546969886193432648543277929679116519194301820542729656470595373509892974816497708682722298799973268724042740302608059396967880106930102992973428697628099425299323320908601109798713840016841354802273695208544658940785848116373325825442532149351660464530767532690518288770582665595709275551589900230951491017827788770963991232612435219333932778102273952260151120807401544190653915166092910414024240818373818609681485019780339859357361072034216936477484220238113700934085483640523418239206869086492411727913803111285376720216153100684526538425140661427181167541423339670695066955299646064773476638109074226172951673346944843264616961127911568978612560498570131528222893527226950570118251274078177365206611711604071154162641322720910260383842137086027186780309026176301330692381450454596171225556178033158387488040551168208242309585467840458189969443288580572472970061206168385291208876740008091281433216776954691978864598223002994442195676947794625742992644157140153583181603983522200485423225766093320435263760586801541894122080865598857486894705290298645755308879423096750172311697719968005750821656742759021613268150908415972140995758702781257746810165249431080055820655880848787900982670793356985898646502391796113423573347837920776188006941593201102600080894858901659802909956981887623951036870570988897380178363093924717193947943563196925091757040204120816847728199079722330653883249454886779464989636016949441530789139551786089641229229225737068927126864041304079674840630951268506640663171790852884823375147202833406094106927951991431121977230061559290967321229391438050635205547970909002991960964965574940155209884108748295525754934255817832740866434612152704577510003702984527010450352508058227707829134137648512705999517888632627688194548436734600194311531246692674159065167610693783389685205710515807620426592043341267234980939179373541772070305709718126658486280421872167379625791318460858095073635503071504025665089561722165515711798795656671407540530927185537732560232529630291855664731776483340159593116989499480659247971107467450013046167330270625502156632421042249417718287657096865768514732965288892566179558126855632759872619592252514216848386488108336757256785187267660340442469207782164623873638827887669339035880514499677113266552957747985623145385832222272096168795729031350000800213574510806032133954288406484781368819439830632772011051027047590687930289433850103469559165732531753898648640090893374597637625242272467331657945371490050608932657791691503337557229701094653319502215630198229462999949423070624878585680595578772089525076637597459580959698676970696299147062038342355772106241261931166591201634386634779325528336507611657309887054050546575914843566665916251803155167172524746794054074590908990386044913584566582652057108594946715642053641838084426658309024656843681686660234176621507115094401248962948825164985725602496054493138468575600097029444931719152574670656627304761448305462452919882551418406761362554064433250736905745132341680834852108998426747123666950196751619746047688729699955231586076210247838039818453695408685996005619445263345651505029807219321570101129840341162210576222247432016650724703635857935926962480289679829212496557326799965241811449054520726497237948465177295730760088095786697175756734746417062032970721707265723742079084210028293777368974025234562323792181438002186737176960428094810019502535722156298832646636760144227301203237936501678036085864364727098003095797702256028692825117188729481015869090324617185367106197379480653919527536184843045040622700707159363421021591205080608214848440253859442145495991931409508197274541565946349453289820726774309032678156773286793753624651229823222453935180821032535127007544653881763195530122563683211380372084910128813300282490558644360615811508972152066031629849421200974339921986992895783744364572161767817134810426241540188647418463581852205940408821404435458243154312082906744674200825328079580786928623635097449816480478760779432092568763775780795647467541537510812448344718297120669044806005771054108236856472840193254996574468904266011080067591309569836394156108526497227012241072017266954393614473745455030934810460960632005592133918825854977027400226485380588249297906247466729646944029425047723416890226288355755378893457211051807667536269231178946952862047784384759735445632741142077977797454780827260752114293948622828950531689711114068669031188252619911823261786871317257944958526999534685408288513752241317026997958974617610960359884674362410789042679084579985406239429293548461580903973778492744973597272765587731475959223201139297528697843961517483026958436614669030257547752217939148691177775701991730489041399797446889707840289315783527992022602014527589254030129938524559891943729837321436848460543943657400421731416756444826620502077749610511598360299127312471390198347517328180916456565052409365757826306764856477511862065806568584876420665450994755452116866821777637337665302149495510360889962346031436747578527110349298615132728502331488737821771359211203392284699352287917788563051310570734184663514210567786486486876859525922033345522104208653197208160087325300444337820094990278971449959635831677455077187215470594868935713958009161104624849068641025544961583335567741777043054506597357269582611247003840359063728646442948103522324608189722882094317143820078833797618489791754521482150355599214707493734163842622930619635058898875884267367025286192854519832439376021421479236369912783082537175301675188246394729059670854066344008651329357125708854256308846206411064340431093082607257749939240470033721479669615556144961589409842900873312481576760211402117730744704546208931836828364767141260197718654388074769628483792178654678109149170361050636179790274206767644694406468602983373387247964156206851862626905949997053956120058807695090552640078461008302474503281001512747993301172558205042203549785483203224018826315119203068293436729689321038512886397020824847761973137769783670843780440358823506291307412043247623645564728714944375258394373306148258880817859833151517453999946159881995372674021899562881224595041023041804578250510934534365795968990830729762297967686519121356068290474571486895825600596653589533196940729212070854131783130931560126000523316874556756633036714159585706261671193676089341423367833542943041561559152093385958860571280884681000366207105325282513354272157229905243174447239920117578991002450207589731534919188265431626451227476559728293631187482617632041957866799910591796519931316283082381604398161336027880186660594920427897232668013763225274022466743792126454078949434510860469171403776555966345916731495727280412093335960312875527550267858703536658123123179365508327264452849081062167582409722653065366049446983287834216836711281047125623876939266926301796929947262334510189709196545303461518423044582518496263248933761294272514143123599883297173592086329149304313977700587738095398334704328140845069120085324390888451877245104580369711033123195559885683889318954638827584844699175857486227023273683882114580344067649661146802186448083902802702976757934361074046229027002468043362917805133924435161831930928451703576876532876208723077042178385178999361706240172460579819523932913960503732060065650255569963305794617063520080241092768073162280347472054486456019485089730908823992674784770301960826850083155242693651449950468240332120396082140360050977940491397858105279331769223524899772946494950823887139542262432137843931854895999889932580272810543354580115457066254209764596992680927285783373800449178435640856919295452313664446418030018585722912265621359906843518266430948289789385440257093489235209109459248315065336092858723800831307191431646789597619669123067731255218874264278420299916955810719038519360566254366808426943560235752532810576022079568521509934067982669337859497200149807796201745710050680093517003211624953080440723207233433282754938612015105699337327212212955179018620339750430227885399557157943341858524484211289708224591882781133336408280086055142818205929006772787622877396668068043917259306158695221509942634829448976334967695144508600317548977186050103467169251174765220917113980955046243917288680408735694288329800053354252562888012497415368966856893816209147202318856469300520995448701667173773075729310752875387563556272860896635624096249119142032340892863113806856923047202288896648200025622866744415319897197742815475893938118397471333501138678268445192458784724166563896056699190654879150907023494618775753621773579001692544532486015392120507732197185933349757231162526403116478997403526271037124527003208877455852247719996902417577642393858110799870768403179108894274014572365657655305699655847829816440160276155542924679473721857815622541379920029849866285420335702456189056698960366237841801261318768432165583506744878169149384518567654241964436808803428805678289909923838787119690028609371686035782207187324355910022006041414053968401504125530404005711335801266280698323961676106184372384105912577972517423495192721847610590694066009194373789608501156884066383695967783679708378027226046324166241022444794075210881740968437445695884158400668814979523270262530439258052206545240294008735381917728463035697782856155116268103268758053990583255308851668030323405455625860104164873710145823523971555298344545092878237355893867306304329032027783354417387245730183582440893908258290747655229671870004410759617522804896667914455122424502116184278939816221434685582853099594162597044405291300619679726599983112542955008556771858623693279187632934923690897872464007700315888815044887511143159842440394941633867385003234325719418894154382119008501051734646441977961990435289606021956375815847512330681468065012023992293165987529499551477940537268534667751632992002474236824357446985103122662856435516902704488697403386666475062196286045021416066669975648470191867599250813475245597385911048749580031972770913685459544409678641956399360038528266784715786999750716696918017431985035315973099007310328933538745113030541437496359619596354994048548905963427467031704964537824591255339636529739578270820668836299859173744420046534729155119539512715096974758347974515598626443242336377088748986699698796549197657595217779336310586861348663002066768409388899890967850999776541909113878577706552115399668763716853933357717770367022856719312684431629724939225925823214205831499694297314789038935079253989064400136786931004617489817295672700994800826377584160374185239231451815157782591069435179383593094673546514458584119301329692743651199828278943779967224198288147673509939303277185068856022686953160736215473823037712461334684922103586447400303911161975323472631136337015406984810519719891700986156075785924446974558955473257495659710860193364368458756700766326563448309294996564640830170220091265882133477671051717293300358209959180897504882711135734797435088641444269185981931469769556750160372377906214234140066353132385851279973054940936773169186496941013480973117364825902662012122590646395101585762994087231379112290447384679516833718410927247510758615610552660624374496689115682703901084955107831199068652068901712808521300794724179872790830722338732105700451700833360855016948216806811622781405820188447152330808488801835003336126232505212268213132332364315671500309355696732073158760165718383763185603900447399370764966710145435837200599116976512107920012020923323896742106148888878423665025634257541000874320361585153969113155047075636292013681026638293080298865804823914261971594933939812986699696574313030298255014951427293368021941970543290159123444785183265385070410188533882146767058041436245980933177865834278977298805207743734679077724163370280590308901095431146121272757567430306193159859887341394167956607029774795021833044815218976589485489565383517281952397591413546001119788418497386814921402510716544169782593189933436231613704236154330830555284497086659411063651738150090474076490121985827876035070085598315092603361425266250295647953890274827720831394109962307115084411292998021011206185622343363391988337654144637559603021582761384551369368423144349060525434763022918462528481117278630145734154578696654230439160125110624024638583654551085371710426808989994836297546234758026198178715265453299137818893813526035477631868091603889991558298167642613609404303540979977816659779419577340504067970912113457708348276984304094255444622890561405594123547004357000146160567115082955970652196084659708691036786459061083293717792055902250634435436970054856353981780057769167936130282215888673077806983472598287931988653239217677139040440173249717628157173251931804185231216836300368665796510366010241917258886917205411739317329397961181714260638632214275156076446765843132254125190541137291510138008759388375009835417461419953553867533066831219873229121796404590558262776406596895900133977560507639092853383868092567363466215692622827778577127150162176609377711471629814051096920956205758220712552409017464667222708280829466963476221531102461154957211306209042026892585560801290985477417915384242666586474503155040444763396874168796606237843044963371074523235249997787378390517899046928249075561539548207217336066792503875317899785057377906133373546369446771290636336611418657517795714158171054415279747200368758259673660484364081161402351007883868319477245254145126229842378201383943631687517589340368872227274156998626084584605624333001962214980324874953753650566165374697660965719757295400057016234523338199374769232185083972224608062444127852114699169112729877346821861234481657706997009098909882836389846223393702487289990148164570979012508277241087812954283984766857666408951126010009671645255845937253998109818860589273744228087107322602390087150824382264425351280435876084883115493702020328140461428582347189809824314285908457306250187762611865579884797990762571153636314328204789038534119984017430741266239904454051912203346961105411336862979676833660531709823875903377772715716460855400033286216830872246762836937434802175935018448953838067987259400591732876561896590721999525285970182192399276176099406664005552390757948309523636646723590196237771820061886443163922974110091622803700161997523532534135816424357219104842630821013548025506185020699708880481637850143032126257485700358906755573188997229655573327573882506293382512199793921924711298693623889199926269109656389730523279111049195265104016890818083767397715247790697083930167159376653557627577646258442604557509041559729157511691075438651327328468205203633694531979079032752990677623698523946323056301379615921411447188592002806744629494705048853801622521334439128754223524165448417815803057711808152967541643485284670803462178680075652910296554344601125563292838303398195049845275293783571956617589500605272948564293686980443181832048631760330358909501566833569718107856187388289514392023345736289481524315284051662029695847883846272171435157592635149173029993480450665133557535380725453671970938257347305261362444579866595545494239896806010898144110965688723930603693288986689425273733266591379932728091826935415857565227083287614909586804088236427689271027321773636713604665593843177614219720372353383982006952292346529483722916418828981610746063534931853269209537820136822684518741908797397352672515731895543705978856241200046350988726805945205619185069698866685140285421666062064721448453954615705810077759716987534399260423117055460005751941626425959730135111847634596308191630877960626997617821420096731834506672245319098346554778963299087318215007478800764705365296338620000156016158817763498130282952628681852349513303410080157429413406965300717505289951323610126918524232615933525828566617888077125653387101560104867056630017842043059098780324686318380102351699528735963712921136885244555043833054440423359591161127075633261437568895881941713501174036450163046837272955863621588723201910349901979020103138419701775035421685013727696139476258783621528998501341454847222507488518877018674930830353067922131509961177199392726195880062928420332071012876671592382704514713286607076194734330035640962764395171416675745083846261684182082945748630955100398489686240674809247817497635677706830465951146958044769296073826448441074685579317705228863275149594296207795023712269601958056330755241334497864843087172477195810187836002405368459035988347305648473528404132046318753912027971916538910723829686120486165940264500232875117513124558603408161252530919789620845174213121825697602163065753751036038458655798567250938293356319121231953805106928069956880315807435626368517243943704733144582165473644158848092488456373641150077567011629893996508408131065914484873508551457063104339249302442632722839162323175059305274250222385202318107482371140387504895861705427202691099823268683318647271855036215041576842105353984074853869510302608749674580290871924505385565784184702451870057048463244662198020476210439523415267709737753285358841988234180777934880560461615205162519121641532914425942839496300331120637965845560723900601079799875112002478349690113902857166680193998703070379202800130977642543023278003879777858843195047225571448832052020689005870398147275158368964588536891661891868473512257021697672877109079144082868523143186225991976749629737836493759929576394921948983518618834909263493722782957288521787342537795956916929608027398211524920572991124689856870798994585825713232561471612679280298837055975953501936849255530134997207077715088790340286318209506417084776290979249347480575265785510511225270430391212628609562639259140565819029658862966312196392948958829523015759382805571199442223103440369539655469158685137718311201900708553562060269979942897435675190596419784018019701656967214751822907198996849181436211775242028246093079916026889329471464515314494695430366786323953804902387903878328113051312934612263360813096628080089856343567385642976889410787239846808120822605073453385195529040427208631120929613582061888816964738317637453753022166161300458628727558498931958657984277395073709408073413161200375565930463852950606063425393695967692265509359529502064449521469501942622618691842458199018541798988810796664769386810537762578634350678975792081583687469558294611706428640949885701988435398754714954852149707511869143394117306437178192578712614185697037531523619996655690757804818611241065865813870879108318207732922554824403251213698371585298030775161157175850529959776248544075280603647734871046926259393751185806015445180852219171446009179226433716004499464069998356449096130609769290993375040531542894189873194984257052858780917283806488056142599137949021910376154623866047186507170174097845875377095205886074257213252909357414576444215310860715503338671200513408664831675282007579119926713102244530596780167249225368477626762029462641520032240437230939937612634482021768645956217862934981779865510994063651093092257939770549237440255249814151976986555769413026602596304433339572384384965333303672472120834502778186073892102272638997098047968033835526350134758704458767283417233521525124978169997241653259548982758095247278872142183371185910179312451757655604759211170693285867222639293665132662616099827045619403718598973141593782938500196888868820748575148626704543067633955637080112587475385830536769390240502297247953090946279863863271182903257834025498169057954804757849540359535523572744798743508619349527512300564662534564233767062227441892561314757443019888205990603245514242347412434424961200321545272218209628080817128402507998518157074568797102531834160576693588081918342969329033954004674754679527670269826763241257519821021166220782416199404204957974496910011671348442004750393438448397790963843382403374574950204884728342612521019047331903898258630028943420941097489708879525241899733764704395245368483870217694616634636317251923519684204426381703111133319058498362678043602963208681264975473727634037075877902992287931538460737649373373975464884146567018406056702829856575609858011829958363755127564392551076753322881901171424311413129890830694443981389392316996821778074158901953706724216145976713277613566393498214880847779373048869911954767918500677984317345960291619968115931150557993974506930635977577684662230142853556962395831176856493635005492858001303126977177605657238826133669084197309101767616374009041373898972315417704811253672781215775186841408476984337260587532443670771691802783903804811564517308463467351791114288863818273679898032279680063386075832877483018084198228358557517950037547350087360226131940838273843074566269289053616988933612772855900227969987505378828549724448349332657053440150980718905713233290122186070088677355327252044935610110663027618656620775182067701750976003566401656776738629258443427705778748449351055529227008226958581732976023481035691769606232407206032337760791006810396632609115104502907878979173312431206110376220029229805702367949960141946266584621945880028092931151485387655375725017217454928730968766322501071075239742105558942516201474108618127693137702417748087463008670657058389985228496035887096010299928816759031003623964618250655288287519535524045102940839327752905819980074295839329966455253907698340511190992930059759150779265621103427914626053159708435712904680055404779198728013805142478495000418540599109732974489655594559091839067251427103376260371534709999740597779622422058940103009681428055629410987141878887519302191618820527382401977651828587046694347966352920086938952241295022198860081623609202820587859956360690298462833830277166297584232634293943838070904216861177044446667482797379476458031736365978082338769432561570169561349855544913222756811280918433368362159437033579867710789929601958582283866171730377890020860635154568769636264623724577261230872879021064297113688884568006936760702505613497113294585778166432064745847612620671697894667453570343729669865177210280972723252630142541275676431228121189877037566659477597242908320527884519768668269063642402781103988576312821948948964757309639337450011436682669313059370166801967403972930410259355908685115764111878421439726527994898202168791259832932265931966774276291678669293365685424516868712593066515095740434457948121587153067584996677752978169043374552065066171064238292580932503243342240939403803195332890744816572985304387092381191894200624372265108453376218363513426316405961432193924768808161810048727697370385564284635829203168706638920733771601525944536926570618862470997795439377621738051348041425124940346562092213129275843189366455896292193603699330894758167843009060421550374257712535867160552135267985906570398030518665523074503111205299728461090420942712824037050567865027977695689293378697971889001402994970174637816035823770500569354930056557306262847687893425484734361898639362145314375358333480674098258059094563910486847847713719106399928066477961150028415610766055085226207502220660566828206277946187840073261313127632137653031091144644320503881668498213878308233918069832604608793439986673138149104009867545050130590773637964973166750897951237716374958547432426841940518323533167502339608870878434714427515048232365908367362158900977254335917076921403059890529262935335445839294017549799660928938800898919495658285408071792610312966569312578752294845906579482520213304645082999245591377530873679764106147763813409966180879420394528727783104963815772684541964179723748976016061419257274866250231962744827109038293598718241885504112051679046456322813922622816879588745676008840605707460558663773269830694828719696994077132521772223906100232807866524829157997903583580137299755755072190878988472631789539744921120467020706109577800380730177745921963678587806084692521689821764125533526000713174156950492191533009012264048848630747744024849709973735054298192111309289378594104218827503328845149582655457241026153451451974557733261675730897728957285084604912931810758972940802856216169308910361730180570341985116828366788181157284877195250897898090902911595050480109385396983226878754197411756785973883766629932820384170582582959597411656266713003352359918108218184403603762108734105774574315844804004555841138955474294997115454659617665932417123774395377798196749891742679152633709477761068981975957617231894951468128303780497791705162586087470767727153477674070748350923409809619855469728486445397188423019816008449814328920196747602445809298042673929545481626203461319439960406266918846358079589323208883550086836801878273680500215754620749179366011743089284815737952775798297318895651217795790510002304449228777300572150053909782485702339424375541056119523588562519636973485216754026610067484489612236594895762807254906586429342971813719077493102709597324912966774813091491291736670621413027300372995665622995430982696586866784814906146995239528637071570741193114332144675551718486822516318131202369403452870931929255578090592259216933818146255598591249542122368614508010371664161443099103465009263892490732436489572493182741319782331495703667727759799635774292011933048800839357022571864988648562707843406679049282710402956023497394818024374053991957853792733746241208126954690884372711091271785113778443489044795733758872239387490859166573886433823296532126497483085046150492253418573198303856572455116219203011871737276634514566292069010913636161537711694745599488648362602289401372329865542622575933324348182341096214498664870747844428705368439635919985442866845675969845159327568005703082454677597357962817593338235494454381885434798684076639916038115193047991240181257784314076026862906106794822727848359508282718912726293241517696404199558530102906587041535452098376976128895379998242129776353276296405223236808655615754768226973185688307602946519179164710267828782935134146884662583852624529377868516839343874739957764026026488456505032053172266459708424906424695696083924161257778399349979221757522536217156058803087454480462524857355534870139303341186371423095180986481702993773008401118621598163407959075911336340328520960558398009070337922667052426431255192094622820742230427221211477326331653448593969507102834704526618758307909963129818832877310449177547334590110668386282312762458459195626243456959382864466234375049982246599887775256889944355597846483470607170391432952258912404492299684349057240822757766673537968050282892828595725011754597386894962790440801693687617323307279710888723629396087570508739799300112025679665391146402708737961927743341946681053535155405938668958508737509094320581401471013650392741228989989105904492603576002655757115167155838459015229186759464809826251022109527338016502955347312579914267447436108868475474013869997636455162370480150315423266677464895268634718749625183928946034631180639831989413155896813695722003732215325735942883590200219487286989917289774857953213668130732099846915085899721398813502854533521035169953184576947782879543887860469233651048074225077911348281231405908173694449605531260795180367688102813641481990399668350341374872503265807366618632913962092515939236097579978290130358690645055793386975654984772516175518511737098915620168207298283603463430473595188389335885385141164715713559625342543193948048669462112832660697439543418453243121280547976329416392689398384770212641645043249538133454113392757988714283889328903363805267428240120980134462061119388859610864564717635204240876602918717366946296788626111290720348489865858967949477860959674027148522299937760417074138584481336401422027735036525965384349750469413854778271049947700408028731096365081141265361524833647935119949297008571371562710494723074852437376227529987438989760478623933224157910624477564048583334270358304660932247235960823518285042873974325606671578751571264733749638136668428978841772820880361939751392359884944152296788046146582643796296238408225390865188836193847326606152475363493510986240154407072780578880348577052340341974968315208678664634829882787614992938812391905373750703528783500229019643027328285208789873564798708026025840494140923033045191123297267395386485415789775870850923866926317803327583048000209312842644184665721070022136430340746239723348395188935027562147679303561007697972197533476459941119945166653578862131465899017110637673592428574837498405300245822690552542311988715930195835921239262135763708840122594562780425661186087452869461653824479060686100323590885130595828925669161758617884749465341078654179182785343728273931292896653241859251127194903918546315855011686332460178448373156390582082375376862837393302183990042350687052177261745150194464256815809424508048292697043543910787260423740536150412084328532786179308238419551827149926863999502270138223950417488720175060224387590909445604786856563508748853563143615307401165561375309071765156445385633067130081120659945834021414205406057883641701718160996699577878076122225937789831514659034446680507255387291984785697034764717910737447650959603906951541310246797767583199430263953199115899471066042912903645256010440752894427579432433849411012897897055827944819194817291960428691427416158077827262013220812899140979517889716817515675997681574650072984103822993716566536327984463386384953231121473883416815179896575950211742905207491763618323611133219251579708614897289666194095875443450637580254056818671022999996731010754944435555651249098160838283351271483555880660330266859992839712892654192918359847201582952856755235196556202310524059858713814097300079486798823072188703598648639775372049761721834663787854414388760628649284260359910647244177503832447996427362238176500673563940729536430367336680766883476601751349397589254108600743252452895503665109477391572314269097366054010905274607923068953248034496831201838540588616727246980292400915134862773811978185265148729795317815332752546724142045118055140063199937884209582890782567958455028833257510947461784065634599438247139171456805805905037964531521795046361650542300280970205004714896292403657280478056994218680815553721237418857371781599937423750680931544877711015716696993603392790501411827001573749317593637445536681870919691911876603073898162378532462134667173057761207076266892431848221182271969006760910778013849162023923172544886499724481115333864927428121082311493985591717888910086248956956828899014593916043834181536137547960823227988427913440261868078292013884154699521007252866995295003385274715060194879809290520490596415018749578311993036706102211967710041960986885626924689123105923838169104774586921460455766974213948167028825746751946330019696233356658429557619499033106839156125073636631884169660750228749813645768607325575759363309297259538081354400207093714315370013236981647435011599408329778867793235775362534116101317869630628773662122420910951099757000970384553517026302065938977401037076253288557959999501976718114864882929457826108318100609214142680238646506763077111554002910665698461041406668854834894970382873298213788266370578994164008137760192815065421319599088784688976748874647533480202494086133909919160620597596482450780807508504422524200203270314438944360559279083088443628160612347593732093574580238507053613762211499236122388041082350047068562343472357290359624944665526420861087870915171742774804452867152626222246462610754370354883692249233318807444086748177104713539907983164252711357242252557346952629989054154119867541090459272342354594179675679039816281191091276606046531939960586870310284364409056739510768581821400188951700787051374667091948451422948115651522425745320191012307313737768640873199821225933567594488617671395027650788763106146416029174501335368385159490946076357524364434390172277168989059318987009620499231199160687000752197175930963978898279270467379533051694962015896319966879873352481906433283466567138575001752383707506236821049212363544372408857266830110270167501966854705380915339459139127990637744123269406162333491911603256015610935022869649059903268126260307538910716666178349775014604273266118210304274145374219108172917281005353045349203139728193087820035502405504812106456582041469235967658037883488859794845736407918348980597523360224419606827246542093251312205729523026232309194763464152924645901264811200533803307602309683045249347464946052125181063957541589342569099889664130180782515580779859648642208953623525420412857408405931687646044360851334749933869611112784438715627357243384389130581468324402608318366521056430268973532971862177449787876441683919619544859293742387911393629436063181852579871764494239441715497864583123911762579445690153574347306972008446735071681849804402509454583281185849263245532657197858738896546915297674779373719050575309593899365868057033483593359382653797950389326435242392890526479634696345328247791618056369605612849336557778368929585634461079781861321875238455863753163940181383642353252381009950627439331752263361929519110877536568493891104758569162348377072592498106754510461954516969186705324446814748928611211943942249284791101274292201762413032014747207242333562882858418899807671185170299311777109305600886821651346377337829792340826690611770755114927668324429154782876681050739506261278082876875280407520433559479959420436325401371467418785869219554930906189362091884495700579377251191131508644231227332937379796568108846339213287024364769860262531551867225375836312506879014276004790965368982143441701017798994334478627141563563223726793901907962871362183678566748267060296393517096535085456200608551503962410129203510324489866726173290786058505956280940967096942498272041645930534912064377923154653998086113348192564942167995952475111990750859971643478289143719316779535323007615937835523068903992351321002003701012903201437779486685385716165303777632934916487195566539042880483241881185667342854796749268790683886550320166626938220215225514151605716733268555361266896036648356973634313041435514966999442832170635553289424709618076665439131732896249849517720286237518487324074575476602025054636602439296503078793827744611078939973704787959060877961628830042260551764813774205249992809763750063327211183707365904252446071899806105661602218832690487930596652169736086993447105375347876629289367632428393684544225365917333134344503501317158596038734349541964150164848699744595654453192454311127283343802891783681317267747511422745648536617188030646903631523810351376781427443409219052165891321188516006794690421334573792632501765974102750298972840557158290305301111861127914980135521703809814348065548987871414377025259387959996937988161086472589514850126912785927851966237770746696199541651431731793589424839974825992030771486138144798397579961821626105444612426548522412681617213541623109210053158249780821403017209959155202382609324336056939417126143173773826290555646190482922362323827779035229277482012765160890026749312270168994692841110215628266386842398116290321407169136172338163528146935984551062987765912227760378182804617960141739428546650364462111160717018151111693123236538956148478601437108859410523307652175101221373085498715257995667667429156589561503627856551411640575245496422944709985999754382039354647506101056092263440228715792439419814114208301192597382533697053339392693112471272048258590614366955773227150194459579429299873579081015048805877995737780018125821014508669423570307727475030578237899978191863810593878172747283930522391839653590682538797367641495703700373939429764056322736604031438388725551114058497703849935780411221456200722724886219016390674716974480333328102653821027493607816524013027717200063063242238098525424580211521057895585278230163232932219121470513780053978962727217553779751578398154984111290179602918077146077940167803117797109024938141402831468402183721816324604965581948127228023409225837918887397750293906577675010867859576335630160061708293743688248347270467296285227892171846767114682267577920805861260877455644032613881791122007145609150320763997997895056594276023001530856168812298522754638308923856747221935751104242015612448955080988001222281940656428703064123990839370735925738802664383739968156429004402022043655458500344816590447570314642375693352771759617854881183803009056793364073063506717588215624443794280606986527294879943881321341436404082166517809473083329728858722172435915035343915967640882608229661457161799369109905894165679725916329118662300566347513910140873940553821715640470466034190006477746493309299334281419716046928478831124584510379952216517217626449868149326752071060329309960357123878130904308008488958084878719570148327441784040425571490400199071374579551589519420505448361550139337032860878298647533090085046139250851436111688344420334057598404642503886348213403366163557087895818938427241782940262900403499109467526083260580402665484020849462820264009502813178429211189039618169744880205011979162616281952721005687182563882512643606617022870881964197868138551105513296423954338528695682428489772855586100716013424937129161327801958441179821416774218989932613131247329250983742024408413545882614865661660524390388454725091512368165212239687905509019017730912166371264336810031337070040744254195325929117040833300474446499129517632635749546587934990599430550020640822870954341863199042476354787398523940304073414664236385735038770568118382761127942025878751346075827599674953713559735448517483569460101397645792345381209474521387899382921676664508612064125255794041771604541893079154058111569181949765878431229016569034768049897430005503198303872285812292272166433190374887162460745956245318314740420492050552878908910696365717204733243938935609570520671083874304493961618765861734424121690844645687573649981229388661096964582575456406734232296762831404575441843238415718352144897651713416033073859807163691224573387041573926330650240183239226273574069414672365347974480161519297948475842942279705548516795144438660657540324259541127436143169423211580611110150001833228406883160029865488016335622338970643789254040508323408498886531780481366602783190780050424408647239668223616306157835879777176176059662057579500370884101455547969656568906164082437922556133979544536428496604594449509915422478276830230224813775246924313251719069821858661241941194668640473797199510519178368505921662335814294714012159491744556925635892146931094806481595133871080927184037678202409671140891560752517131284707771815944324037125972252430943646461434169558602155150681879259563163009467429231064575462418037789346089113551093350158610406693763062376081701403378785414033181842247330711147769195451364066141884030973606815492182974121490429640710212838280587100220142988429841320057699536239977121151689526882549906245443120923159332592474375973999907610350633422182767477002730822280552453873449224418845518925837792804674867555547505704637568239241605828876176567327207518285252802749426387552278943688493145409991594754743869825979965088096136673240213534037392455581241877293490097282107625571225447568796573468524259017087223952813047198320355059182757654865645161686340788117891442474977033901841135599094469027834211615240942272098869818318210850330011263703725197850603232083817745973357016284493584803063898534113804406862359131039791575083767874538660568752795751431980500401542682508049897289790505480760343215706416571172509064509377377698172630450124232878464855162000165214059659878105847624266721565680710699205458684000150954035490466223319408182571278810694175872300158962762457779444205991376619400519313743131884659192951501500151207506352373234826767076034648822050192876099957560636105023878271957405052591336579388227505058924994226968079810506019519160533779795279894757379923861465985598425639379250572650240076840390823243559518094765768100272258745264607194302829629744988805609867571382689625242446111809999694850334419169743309268881302815850470197609482612306655781279006651824510655784296813293668165024954967705646094751188029403981180263835618726491894758463695688174058025252915279507953092468349328758051690022989951945394194885927761965051916907415736574646437481349578988365688312298607427311528023657902704527654223365562722398854783567759471986128423317757802394942956883207392326557685576624641859188571512193732397727961729876149086911404573393321161211621848142816435700678036926231010637505814202858422099983893477372820371996271556780742261867824183937498660491894320041578185938907190758847267204128878836173584179032058172276513035306352300884175698033859232388496192240190769519362587606295117823288513008008285456233682859473826810165528431320856687534654310244482796356925311611383949366717053995277766940863466431676752011183984105835009464646926665111448647806617661262890901313494599183250930414247397804621975101867076211908444270355985455534693551329998599278144156768210520811141288007088657462912552267015050669994095825218616412522244831276563238902277520340157820302661832377547368819263476382563988740062797996342168887145031171978078308185439568794618814260011494089204351357565318078201141540629212233967104342199178101198382592211732344487444491813917658629168390953224092030603612656271330789885048306914170503541032578133824229248612952558641970003641563649907509170972053763304070500562404157034362896515675130252514421767447502033080502866200609113810360415804809656948564129294922202628526531539130679064839337285473568058652113193084057692681055839854592896465168648333480700725961729462315436365010757481188280719074532181981502757717677143618621386724481916701701612286982318161002990380859909224337320556149808651225865086869064299663637978682976718631161926627414062527740840295229024406107028217432223326757114085397363671427102591265562992622667083104376119094707461237573030638305846060618397384377459031883734424532575558520779566110789494801051937551470182189836414708732160801700571235889261804408327182960771848671053518447135785577944120830129677054205016179722962417110509305384566381671615291898047546248560179630966491606059972957381960280953442909836612640274560687681543741494732985650579660837850881659793905191656045254034826187800613654113558478752906811688469432224150319630837262692865268049700328511638292767800022075012322483453987856259350288619996456650742499828944446328728083598913549304357556010261220322400005889289280157791619123719775712930093493371154561010331535009298437196690529110078567888917962563306369431137577235824553524033723878241773447859157313327620915750531244571292034354087117367974657898587333039808967150619658902330574872031351131972128925742635643887034537479534782459388454104622544839495784376332170931948437377463818306415354349546325843208041972136684271733542029172580633707980058336506318296166063951939459095415258060381185882537840106273452009076637635640954245901610580385163850081310343496637366547496236580829067668929255794408914581193718572487669083548423055163108055023623715964245098356474886268180066882557470568438659904707925652601623434815980099933640557734068160263573485514909883870384427601221470258479040447502007077107681657725185714406142013411328969560223244766393253531088229732335205445909227287756409516183469845762770677310901626328344246750860172874652773919334351020264501345341134947807773217504099078394980193252369712904892624652835800641275769280402880441404169263468878272644064910384925471674800292679600429279860379761471694124270615939934311438191396595045889361929210674805738680584376280306106861544772048110815321573377220003573233776243314133919286687905413485439102860962593324192156564081747225222743861523317768290193298086085721557676199902103125813090738853426660721848105767946021976702217635062433248707667410513014465166105625676248500909888853594049214289530156991996836129045991707337999456823846457948811205615070769762734897136607089653258368099273882612031847388124917021278301333847240584825263835851126047234266694640629697887022955514579422642985947161754341428245081490310647348789681704820957498344986745585281642348898271635689327047669815625364326936077170890043784090534661286563023047754362497937582809801052191286337617747310437906367690576320940270887707833877145353319795940936745545503458734958506548123510799192288099455339187635467613916003579528309348467766322748439407041650796756744552598500122890782372415782385117511529196770677858141326158211119878543504743948276494528450075449156373885478912524377892619828696058095286900551190309710787621104808662059734191952267545627558096729444876913423713801412657936994353298958534868221213319913061615415707259012443033244281370954440115777108944982599226947375587969566859327342668985581288297690674880915166823616932879179477395914625777368905050218753184329497593622024339502815250083284269478586593407209763229182111173860069872992249758064975852890593871221199393142832225950714529478042633071619386598663243166743102700553632855636805057290267866759987773288522246670175045281715502490846536367786593433946201539489191749947567005396567947037069291822289345932294395155261286759772088418457403389174071077816194268472328012099636222964346361385124655734669618496029654713296802257276556761365818414237523576274799357287982570749653345919289038010618629410445546020600166247444118510269778378395479324268300095684898305437559656489127565768400107707537061895026915140392576551493777272776557872779692517789828815161912967545874771909496568405742444434162929949875002226507584100361171881505886754210478079438408596553008272817794892451229442992484840016357211028774991765852770843106730715428065533569762464204743850589474622677943736213907833268380270947099061827831564402636172273834061512305637574605932121163236168314325210531750013431501179032561970723874639323186178032487278992743989124723841306507794907140681993568278261093797906240590092113765202639988350443656996638837007889503933877958958091174736993397552846010929731647860476761001039927670185968506851993203242253056367787085267794445218896399576766063816296775842181829943928402800299977660541678079560593076062129108758933041954525768946024937064372243815108713801708440463881664419530498494146548484295518419393771091699234575111545507326509375953777586072701376194131645631951948011275248125424311547812554251630884868339116530979182781896836342623542315355473964624421189848967580078027005002167330934611042944170341625040014671009623130451583185363581608671927725288569274971738508827934263401792467527957833401459126044241213757778327788498801478125066922670888363983834661467016857427466456427075093665344989143336276856699553497718389554007269671263499957828048469152095723778869177417450432107743118557445523007116258261363380487624020207465709720408451351656329555643248281488876685765017403602034013871981672082691492374908506845918732040118833118905200409015430278179189258098098446027351808967109518513194868458137096449413281624176634394513320683340417832148960723901118126752707784977972041766052601582376239176396083136945742217133106098837058062877235450481100627154957675719444309026891030361893391707083646191947231327877733554149860928744024310584551027147708175066324122848104957644533090828770641931669305321605160362106912048198552093799646708571277746040568467754427518961918536635277891431346343788985969898537742893028826376195090740815880605043731382696896170391085573838353489364128830724505421221328259678278385100211579530803559725970238840545744227992270642245995238122158241148410711167056254416116287548041304199849049708867248057387441685123804572859387731422617044794770490680601862719368577174672651990097032548376195840066195420757269895487625174743996970641688532333419444090587595782568845002213726770916455840248445578794312275844195621649052244191901788887987722121654014156082923134979963023667242350315707620647914765918754980149713398054362096737241282704590480193114820011720363473541990729142013043351821917726894074108516274785654435218074333775556358030342921790732993973144090468273217266749319350520044488266692777443099266016415263845332401757786053076829913545066765798197649157200491976620101448700276197149552846904350763323230588761995014157956075277052647202571238529881295829026465054543689385759369665930882667097590139327111282575049915686959083955842802440527479053528789084920890456328893258884712554672421910872108352195356314788732104230515982912368804640520240138541011175320908308715295470851308615363449399334870589671378660494222081919671059269601127450587842109427619995272329147518942496833956735940811577263094648691530346064719370751717503417578619839534124173851326102575345101221869406011349578231908090364858768981371557104497387721317650372429070361979960950719353161590717002900073849590658894973257786025221504648454223551098343493211712299406628019729429732766526655667785702480398580937202753207429199138426415394727592845747278551214287124126557223467955260770046457270766243556982850345490467485346722946902347576563426138119655432565684132383881074576869500249319668729836479446900919638160887900992285009960590860190721966683478118959196092252826454489553422255283642002273016847346088961236412719493776567711517472911029808910318559927194349910950242921452385141552231746482976994213822720475944528154631109554565115422556136306914647069007258042458485930691298476214394886308002637957030702096804548225189504020584870668932571930190371919818023267166116654309700639645739397177618081040832721443823540688822528958855732537874294368888375004731974927179595023090376140256146305836306273733399552344320713282029274851742205130273538299751462627098826853060058827094384259810938227204919756231681100115382728028250293495745113802273086128219010291116810542598346065611335849106923939746453089520250354418501130272005189448921647592080860640169536796938272596333426351123764921356760882536574861018014580779408710643192241613734982233725669276070202581285716680130692477517078861050741739744358944379597278059485196714134935017465901634171105459833289927780552246325761826700234319074654540085778249654323180089305980977882554384612195551932669387652998955193211861298523933952666418527897608932039911215538233318591531274752367108541412689892708081156439961605910189260679275933991830065341237666479196577590280267416827309506429630356243107651823015331655840008343779674380789967651973102515149905139497276559466257448576081678101242073955019310606741764347339101220650521290539070968424129775914974223007800597200153778045073237709014508580387505203142967278522045539966267350533502133058572713527228030129211849736407609941711046873496204784554779051813789662371467643375842115810666791193082623284206273487969463201643524341420506513576053676147307735796179881748223112583938706742395584293926410008540933612302474926317930993164298940704012575028811256883817481262523298328503984280806626834991270730439929242195620244813763355735780543383626732934286924397094310366400155206642988590412522184177750656656189100147831636065653633597512159499665844676220528772152680155427548631057659969209305532451987406955722010455904418355357081016556674304157304725108832741326163595677866773690244025169236338604446906470722419447110226647761509904552670982234903439272493114675875172358327415228383089658545189142291087455703038468889822241662508447954179098861807647482136452389951154806102116772571216445424071458017847750629981660485787332989007719672221811616125278757311874719694981703233670074790764356806210750472682030102385137236701006670273503645131669087653288020195814109907730217467157856041938010539854400824522525108851940596202996563939483876715594411497902075282374836015266322684394183930560276873521386846683847574865620477777166184410561923921992852741459994812583804973005393480985233005429000751542051372149692284282977836119283880318319272667567172503794416002041504935799355327425064977187881429942594126091999645437975138713652831210922591811444482113519898910646478160616305386355057089702930264606139797200964289828589456292955695378075206918361418739963593259746168421409122202201541254959817147069137107822647173676279007354565410110967288831146405452951704870369168347161077570511469025985910916838233570304606514692471862568977642194366408196796290505233007620474339599774709371665145094846755977720674935161611740855544257654738982366297465514703616763399343710925425953325296379501821440331627347088401876863484226006343230366560709367826357405156032820128593907084577115516695614901236057610713937045749028742701450892832791505497936439550651713348185384060357526299640775461495016003324742077549384981710148819338423720380420669651754095508512927090068994423164581084644701818566870081038797201659262290395124381485204463100204708419046137545347642184808989184254850513682794874206727965971493387109629518747644470268899180374852567746156019619594607122896632267143083802347952889056554112807711475407248414285312160208521221155597494683430531833825165130491161614980744649901693097366965104158890584108171944570689761128488985732822707858720561557065332123042186124283656448060289847415417386948462372537196072217773417085183727339335530307863441793429349549900046494532040867593994060119072189484346111598271255332933570428041337205009521027190010583587721471623975621633753546420788571053786296802528566311969358205380497856999003262418212039150581477479255909204800864367683270290606137166565939700717530941359385123293348660335533425548038040009605039798398192803693867915212332221667350012457049315576977842577167544312442582278309635728712326315931605893451108327748850816607986172575460992399758398274109114501423471067195041861796864103390453257819477173237573224473342277505601804738664854380576726563347399656038526195963759043741196937070657743215967523970705539505102121714390699599456911087706322062888489969936153836794673855045201618356670167407240000732506579834191166790056896887591460235879472288184788887141909274915598645596677855354239004567372921890302994041302908615667615593635590690158994093218072832177143695532590576022819244214306168306506300514564539534010944885383470559871837766669166372151482243829724841313911386272596668819302937237468485077747252126254876627625791183699713169428159529863512089943847229690209524760468710361958090106799469088705168957921744567202118091172939688567878150142061777487667368753504902352245138324541542280634699400630551837550745710101308082018293318420482081665687399736981873769680468920320700853863949190577185232134987656262868604154551915898223154027394565607504959831827839487850210453054080886977153332005645185368604056250826778218990300557926990579049741298599611271616508872357563107253880231231126183663753655919824594520849861073801517638159100974008173102287724895413437354649825428889281170665775589680214139668866589572066549432713866481600214032998390050999000357328498070473955460917903464577952960613083220661326096255374178885018355861542714990325996003214912644511657412720828836965149355166001460525962929601878259023545752943881415529935750368978110479682657046145653272227974065610121896361377987745064530159342932228471339956906916575448344904279423359956562881034391877984590253551081997182099330533985127565852571925450374592775093778644219834199952332424559476232036501893747757509233597917733458701197412493356387185143416782701710763501112305197892963474829476039943347261034160535092068630138652283805258471809263239510991610013286750000781329492115781717036398417752356504290385599631646487294635202572158030914415501198937609519731110444125971177310267930343279829108773422543006474180069556734057037020374932401712058927755102793574977878407203959820871615531807224864244693332477346356073584499514972765183836920499361970578480349475332182389178717613226494899673474368014672781066609099723615643898570255207231990228995480221399192027657650726550203678775995631323035805391112971185917907493487812405042756636276832950860505862681202903544599916565837576272135866029305699017342569188811632384683102413522015377413765080640048369808306695149068603090033858802134104301106744102605422989620930423714991972039561182832848081369750248383513029321567992611109909333873910211780310353084669942265422390573086747419057030526510865524646035918125424311585388903427633502240143996386075438081509988616297216279102303433416965195475460840145430160198883534652047703464191394360056946494034404351354495831118655883684084831187538225608764459073860885513474522557531425763052696507275967780204092216031855727028167600140023576659667291631137414779301927472354331783559989657252677953064031585021392115516725767290265585288549459953584624088395303338311530303480610143287496865388999793578146598711988937297181202776053261679495708266369974952540329863292084972847933875387220898281618527375921747435955449335066388444694275721309550708559156260477478318413119943943889187757153118212815003012557461713929591823969824701380264025078918990099997765049591571237943374963628083768982865381246065916913864092217885540331926763063882909908297307380841620554065579698854366748199493612535558125991336547008272186467690161394592574213353283783164009634340422918990923954759145647246086406373451066079142900819713701332291097739828748350006831446930341847215410816143760139690662237582622303514500993394908041815613617025243769972470306710111389722367337358807233998235852496846598762857222712015471193091042365980809679263768757801489648873223561775979712942722914986511646138592143096917782517597087471905888724563380606452533653982878972366379356836614081557247832142449020508647206359903929813697240768807639217436217071130069451740736506844657353315125147878786947349224712412726701288707401799305461770539413158021828124734111239736473024544366414580457850705674485061993475792710052589088116008787209242633528623327219214994908928233929024414359045812807362239391791955935958167290097255232314813833357953863545384873356984609342556027917334342463045940752276522263752144238040782924316020078551627854373534635236654307130037949878869675981638636630010686226646786119868071916150491159892904014420760164244491945458735704689938746068892433755661579775766662780543231986671783398696559849376655129737510328152376131653079558567073428816201562674994844269932580863974482818468293813950551118043982952231711254686331879300483407518576079160829241799716037958637663335254347053537039355100627803266666779492068792758901120898975625444396718211283216219403560068370989343453123239923093746664505084482339363704879278123952936695283630568873889732502755387941853114217914944779445003244831807424731288556846061715362213743871227010450065356871827766182446766118673938479954520256759321416904244456089911126389990885118748813298544362989239932467903314691665538790641545088626712456990280848878744251561915033400033618730504833441409694043623537635303502810143352036436000067142222296883734099209892258963716167672291019306383069009137999623661071062024759358535223060149011554843674476315803981217939685409365922505650882558684647344408013835263804327448893218823249712629865833001285385566786651156295080245249749496952996846409698288349355473247066960333234896526987039736368735072195388597768929001209885076046435356588269815490514270085594008161689210607717994810304527422402689335603908626409479056691223532896330525242588056773029463712774990293062638620026107958477803270193835335377493477700479799466474559574055855791440828804775995303136528001519478702186469838814514750283978876568477491953421950054219673232371367340849991271508727964838135188149986570426717021250284071412094531497011112698052256640784391227343260710573259797172472801515780792078193425075648248830106757039755714677815724335643709448182534268824577121917658738272280056564330452132625995161327182229239750706684433040537521799461858400372997193433420149008457965396412196396332252572324140074977508266269110915454266660277586112493728321945315437559217345845265825923025220064506367288405058539457248199088963920639191513339914177351003897015711161563493088921392176126408016911842728706090232622246018476962628057830921074839687546775518232565963634638910029451453707118997987371244009220367642025783862794501518040506610090770911273092436205210234091247736751107645151164691052943723811187365135368010709958320686687152033533332083216932063327369928660563324533355985861721950874926732985116085578509903717932450663015215660690609135383782558669696292341024935450146110073144832471045676051651932585621054387655590524231654127516222999983979598310580253699662862173927160762924088195870309578958191515377204069316351200539845376731203692697662795047194276874956257996010434155379126177720002164913953888205272621172315971972794150368202449958356795079138064045985189466690790395271312981904089337642819533342026398589725392551321030773038784091003459843828284050868798289059448133827991489617909196814751603426159130751892554349030011389799897541336341935430933744232507659154141697721291712860319402038251683178227150120950528634658301587814441687397465825526435503729720595581840143106566845881359479159244752052957630154474847940034414858689046735126358512868523832288273577773141532460983869477065354301298876994434724542079856516011533130410622009509491755249763439661322658704651834531107046489901900921244585488050793326776933964019540768255829629611842590810869935465903396835610686398684659980333351336637864991263285117419792946928215641828885616080324819858251260767015655594298271606945341763811907394297238729605857440205178798421865379453565122772713987182476520624682473707075593842414161009138981113769625606858389880286155810394704454559877201747896828952442820985434984571988770316825420647357174229641001893637655966924826336930382876251720579112475673382389508003247086521471641611250676410771444026393675295713363309796527162905948986641554542729862594246576078929683893452357721556168202655400005799875233274726425261420327765782646051518720962774855789498661055410918044076913175303019779973168815765538026258751528338526578826525569465638143630428615863150010074539894078208731338554406111084693380861555380681311569424356982279045648882698744515674476880698574400058338602069568928463200659087258999501828207396239306130360587704681978799220544788493991054175460325641569527695296070737679195639165503888136312714174109717412685586920140557536239691927030411078035228305701188374893899097237234650870566931225856149731793265234012529886035094082182070711523619396248277231864886539246370229187958749672521567141271075031194769414520343033327076691280857937750631463437699654312050170671760691877568764532439593927936825254057361856919607936424975245862517595973411437806843046342017918089593669902027117029116379814557091155581228998732557436772832694098054120498124964689881750083168425517273971286714003988590954621399295240957790433249335157553163314789268575903958758018482701518525088334785461444275017798508699828791627012505849242095921538525073868520666994115261107216089144754035893117427314295145839817326867018610515804327559281444054991995872458906677165016770573779583383405934663924829631182160263670517115606515062903610254746283494932618885156261246470977473910305020533684444379575067137947503561137823756634066376994396105723219199604944434170064990446014024298649240470250077426614468306737915704815970381715232281536544722841189207031151637967003909676237970576170662605667604048256158900322824168504061475118252798732736508957467322425565539367761152884595632427962641856710297489171688545356799016170433637283184095556730216260049422139800709350724236948849453999888780042274356192724010746532712687509277561299736467161016083878196483906280263401652265364673131540059425336353662499621878754004035530538136479886355007183411621628108973855093601651718818093113572122425448618574157932689373871939831136060418542957248561561959392805204826709285435420206451835147828097989277972770682039481555458812086647802052719676429245271233573939362481707027774208680532035117207640023480870719391326011931347789466761526514905177828887298609654428011146721503921787524475997855582125359741396938331573811361856071983564888360070506880520397823886099996369235378112887251539385643185657166063351024366920952461405441277707796562576359395073252507969371963410013413618363195446221395156851126160637673433817749127019052786796801749506114629516505990604480354297672793911584543389159316008845152957672965233188565724846672186932506854599288992647829042721932099818556402377766633799247901912293963928583465157046766757017116227014317211173678908954468010529577709267878370572404186643345878868344836231301347390353763496713557937631006292022801135612109782685993586727165940975356429894063106891250660508985565760472970909344559880012122828590170766217501138833884729223095623617021746985333870892466703485870492024955556387029241920608096580434483652675147922202562440387657007805797623332129591077386761282264727634572097796738257955301239609811593081864721253983876974200529223866167351993535372447590027972200251151048463792447395658965318703133579743789291175493176042816919931215814096778543903566953494392904096506658369153291118909604369369611833953698440780338730069279223182558572972474893129912984840153276168906369459609548126464767517689950675584646239405524974466862132930298700911294861015759280353214948245951542021516382781788094838676272918535932697799383809287525626132863295612957819629404682377692159451767878928734878893857968463141869954143049346326659912393722962454128755501689214105714693066318598178182051872995049714636113726683458874934376626414655343011234832847273726848460311841621230925264187907293098575080484140341598085931841552351396533038427584719291628936364212985555516438114664222185202283624315197875040880484123911062213828314198795892825911107204086614493690351343518978611249722983660275985561411472681850910553512339742063045573207587641008970453721826688441009463578388403891639267939872633991878202450877726926154377414079110264713178603467712935708880486920593319138733475982555749950862374398808260220658566488612469712834970097143039803636227272633757220722348428305166561311017978601006422579518912799277820780476193283230057417443711023502150634391672972213176812736345480583852745467202836576907082153470406453221946941190921932339194368396778582853144323722607815852863217363452091604056091115284760892754215318627541808079690478579779336817369649083325747877188526203484155046550001650324061381901556129592069074351107419226222379643605640253344957437593808950726341570764707253572098056492756590398652077528243449818196388397551479760650317850262405340377627188401163327338658818536353227292010365550090968276415653147521658594874847589886723509695010124360809245402133876628807332677516781759102457124475606857921398318269579941391420624390140277768958932748139887845794691258833385835838092997604992793773797455095876073537288792056914956155347753747576783304208867731771604715638651145555848408311061511052844272636208937449302794661841388534551367646356993999826435085951025362438664293923624570086721259166339320340484704203259561014754113097488415907396068719487606810302983529083542746681713843305788992873003252337806299264587428432942543584629026122844007121372676501981490796410345865751633381647057120982395626037727005120751616540156350304206225378938279710484651333450080604528920465828814106689172860265203766366875056966556136692093392692592180648732610749605732000935556063604434538723102964724288938599458352307093871642272048840099201308101547409246901966260148704766334147981719118272776529562140310904739541176553955316942047275120649526552659034009154255652952831235657153040314812624172253915303548612757082374412534812897919772112441889917210826442257156612988649071606323364781468114655905618556898920616455878949974261286683394627418777850509412933130495299012325724522222294696975665888694588345045678434284214486338312899199221076133644853050385872359378723681934843732716930701384403878003411216465896110850653224370159156004780101442617487631512538590166024326899196559776012757828281994385683553013812291492523507242925332774030948747425731222624962807413224860237309686396598098744715857405783871500570323260594391811811822995428025272599822138753261008722033655094308428753089844783772547318172576680486340557461137808308040225701547386770778401444547633059361523788658456449156524441873229677097730257537610359791187481550424378057591835798023737596934380641135066243811795132243244498433331105837359875698045244197593939229180283611990305398416723831027564032245617633496456084154895672919910004518893961716596473672373302333201611823850963938434746256731395539173422542432965594901220750537675662845014585189288213734870548870841591904382215263450039384209718397572801704509382228540881757057563010927239168237313492693304002415404800744722837686394883243544972494094639851013473231048090514791451732703001025628134152214935807411111609783570231826763157392262588808209502418240328741387976814898118394892359317015937623240262051955958528682082880156326290472699481114549171898453352990097547478241708996545865061126740975449995207310096345752051636308611965999422020149068977383386529072718054355127666779750887605433815132150524526634420622165716444020818420342469023670189378425368425392811335203306829423314371967645281654753684696507836660055537692874432696590376845956599821555389154159692371497609396303641663056606401793472442443727085699049109633031906425074010577644656609222820846783305316517475192063498977232134711266780678765607871579576027170745319254209891859959009227783288290687907758838640239246473726494398145645532818692914682002027144816439138861510951968766520812500253475514795761956591114262840089455677751507908192399953777164191920374580622553729618969826800594980836182432962484502688385294879106378371166912865521646755262126400877817089058838086890134727284986092184329524831099368392476219886545627184364894723875894593634312081600461863684425017589383337512469167619485175761719505321545363479126768507871975643562813662816016262043100791451810052824574881881148789247443825946935240262670822061850669437686040070150705044161926611732633012903162509713079829858726759039187275071526426595347956070582030797877889563323331027000159469507271823607131155684284468713459096913384730322207626804738257165899351013865338260033974768179349389303152239367520917246989035334036675675574740179937187812860325259227176834258707561229278966821317280269430815706408321728464671956631160820722753991480394571624415885736766100770076477389532384850810930284844571324156941701994876215902957080466625362191157304876162924478658772489557290987617854797477500597858475142949329881091848309776180876705746694383769537323840050914318536552315646231210709784042682274540979554181455542557968043794958517271728733726111879238950505252562444066944465165288186175707118678687501790689924376897034507108110407145759582114363184328554703240792888884926622293877899532148975147931395837504081948498268331909992812662488435156839710039069112061737000264044903247149733676744288726621274681376409964397302152413489216530203042264810035289790002882691784331560868817511656411857847586720647435251191489644232411279218627066634952303701149237590870343909279184810237494943149932423183579994441797891169717439582755913848748733862977593962269461598947191923470986417461800557242923506453626821301418665978318456711127507885643807846716914862009265382096709238254807342617067662682183686510827077227858229877328846309167599796315535461997833286053784989955878120548863107603423567852185380739550775707340835819186238893916071163420695321311773201959665241735643698371700995890676047849039362073788146974794248464650387842672021784006419667529972047018623043802365065016447272622961453190026078611197970340016254568833120552341791094381212929220803642027212013359081480516352944494195009619217347332362950828748664082505824496705059532926586657413984370331833091252145471441994332957428877912962768568739455723511898094660197409286331205085905817083156472598956859511790373810926210061047625049497399582327345334594732352502489610929500013596735211456847623232364183447181545337548861989935028382482049064573008999874427679235865941134556175262094389682235166815444168798925452602259758506445129770178967683315350681984835711072906747176351562152047562743461957903056513279696174002385248570672637041025155101582350561835353519408963432526090536020804308030602802405991414331918084625679382204966407822267766971074925933445828040485864213529298159291451579839546852224703826250396635309210391602632526181616774235808346135667733083306625435443449193473738445518204426807037117952149344581439947852819912836954053535987786472121739140431523666660504399630906546102011146460699616064294303206995873556352734780699310375902742997343513321487303065059923810353718074046338279705472623249228701368205468215023719986001219120543406045178579189235085775815962761716391590976524495791413891047710291972768940076181918103795780385289242226675678171135927996371942213582568176158170902140561197095459725844399616806804896401314423135173374926659220085887815788016275058828072548783880009111951123541692828864812702528239351472158038339034316972321386244933901863890061024373956748676696604505385509255258384481079625852294321222336297398232147062965374495239824992418947355808442353871149892728362489608883624186928461805753593377928995796190862738115725819195286105668704890409001757295949787646172457722602640750310457214999472109698126459515927976512217832932117930644074798389450906780348321909772571735105114101105977904059779734053999498078993333105128204723198077171492640758016305697980249778654744464282659412564641548942235796306459082507059186298754991067158871525015952288634082094117634307419271791750431906877212404835551249577894771139964388323340535139201669461162735185807269986904265545456360952302404625263169202581603821615182146273986068307940294656703883307088307016136147158658373998378193842518721301768965782016701056500563655175667363026441075230800663188797606348594171990024459948046816989782159662221351323120779474462641419508009963546345306255030888037326167614704080319163428245209249209998112065030814000103605789805893486423783952654237781086402518576807104828829359636158476872515185056881823259475657480294698305222102477905855500687436481010692381521927583511576705686727954352352712226940767975850669080758792732508486221133127161251597576835807907618947817278103727575439278725799650147765853679521440761763717564895501605898574476046457259419133081994814156925764820342249277596512972527816426740189499637862078241939705929959341079257663409084959224021926482958023107620064130351121957612502109924183845090648096459366924537179848587481285619150788425949511944504807195344189243905405832968437565270008504862638358449283083070105365648343227043559854517735347801955687185126162858313779174763700248021179634641750497421133859839354615794207056181619414330202615210198241360127656474879054142409382892399713145811969705120768288556199652220961660714596167708743281354414972291327150517776333544953176209317708288246387760408794728333407400588065603734751769557210637118579828175253022342618527577048534592890587506077205703834515377358197627722830496815058980415191391066462382436775632151517513589102838409254536468039987810202943685396498895891698368810369638635160767311342348077485418507065474066812906451242698981410175589100324451818409438768124956149631447999316532728986836502173479902807529648150965715441070188846822137230319295927273470800832362294442086657307172096248316458054132410191574652249849724198473165428385221826515110579123714605460056724478658417156926484498688754140158380253500396146622764481399530885624077278882493451371884404257328560974022106550143193032127801797929763178061847450407969966747444654421318639172642716363486800815430173671219668817335057182513126560463871627841783001856923485616439134963621390400623944533542592722697706705822804079281869298098045712212893084120287189762795605942031654139204410261212807861376400401512254038049913098518245514188068845584410113523403651166242540696083261411695007919600459144078717697504265374879015215273578173643839830682018162691872626596622156532052716787566607276616908082576912495987816757184971286030077191353274650169188789874596163508949782266960687763601300672355039253794238576129415707786001601845380137047087764854176690304372588671304537027600561709436157070720641744824755611286812198566565325295981132716723685381494346952883766053721246940743498611004067264738779107556388293945823217232977084941487569642838514314539790163816137929296664171755002710135864037976802526903684162804737241225608522243335296236121486196296866031458725745653488347032680895050582804912632193024666431932549975609099383237996851053184459387669016108560825399169054057055526665132171896416159960455759254594522846660742573820045038857375978605676364639327778060890739954031360842140871256420864042512287586479418388746808716151361954149644217755705664824316065998050318711894157159264975737874610930136520185142690677652931723964769394167632124209908964602290757565148173968270295189220451157135852699711511549612168421264064120133565256072984907073527456047264740703309289903437355559452184037948320212676058783574721313020343457487351815901430911301421096915133924642023400840942302486672735155371151119056399153141019309987830624538025549915349513517654143729816333584379375214798936845954857140351812237055114859789515640421453584912522136078934624664035635375902487103415415631555316760135257984584828752004296608704590530615084728534121051334464401432056175803693166911607805308880627079944008264641703610065069157350260524353951544891810350922475777638877745677908503284465882694152827396042942367620899648893619970621988692610672758940870636436252128618478520677802731373663859250619384563621550587034824270366715527650342190432869642388681844179103694435610169561239822732635250162290648060758497729303695277968036700459334684845225009345605584523764235018168346007669717812691194467612584673015877165027870031878031291437753359106264431523456050430299370028774813121097037582919881617280210090981159985436926232111336054192190071003342320245438903453201103280949022003725502658857138259174976248799513231050232294919333271642076474013978344999033465504719462736188171777868846746549641057569867363246684387420669749631262292377191303048703395251559556994660532185284576637974862762696249995106541013790626269679505963385534169878109413623155413066486767867502440746401395834869158876278361061574395260050536340822686842547287758292899835682315806827068781518149632407525133892208854630331284709586910100182560844854325260241510869575984039428304500501631763831276601509824362061394812969147092865981118409544108076937773490873335526977059736627414505217727507578957172527163058426762058196258031860093834749733725378692941910964725447934175419247713715273980486251196198407527057304081619974039192941593187015355139551982299113304949993574512592838927261679384306022519987894148874458640784736712789935482201361914285841804324691733606174834324848624377081048051416681691707616146817827617093231332843326581441312901253525531648683755016310235402057513494666478995857542562725080585300936359967841467816965246624473383130872079348794099368524859082509493386455575772995753599131595326127763669860668753845503068896855519568445743964953821600805852510264743929320631899336647804413564210488329563544705102482423809665929873471811256353974229137128930315128313889334429737953429467362593929837594232442404804050196664271726221393504115265020899148208867337715081479892047085588349687810432898695257898186690559185548661781356250564450700879306376900812812616205688406543845784993822006738140456555138128406179239425878038279098674581889498224085993311557121900141190206690361953974389164487943185911699406983505111326258132913930321681349118662270425605797398167328163799124475736724808501162629470578614052185059527405340463740877995986253542973769507517142747217931782636383110940647025801397459814450301161959569291616459070885089199929605642776902832326218078997654618430090250481427400596236593924216105273370604523304856249567336183151350549405001798222660710029902381767555066163287563730958458322570473936776947665224180289513862369548822954072083785978061225913781661506860628982339337576176274174764359922797048382138567418864806102330793090643090183969627097018124090437634394965463104760540177477541810026748072952991935355134756668824555903974905408470209335277218184288317230789803659472667811941059411868357486439959141421434887078935784973961389010700734107592672124348415244682227466452573159660658797876445829789745824574680605472243670868998954823838701049213400138614844262700991494052959530034885576107535557260904380866483229711373875788849871459134675553707918793405151249481993828799952453243318972057008555590719794017054608505537198412157167409175983665491132250463705794035071671327218791596959690486390494742650769016844330204043679950580973434088754806505302156328411175718902901537899340888472917071232782295295337009420815559755442550102139672894553408395163199280273733898254825650468615807680766590060695086532551085941951624675060177645090003248244840088912267524896521511199460163356965562883098637752989849704693102765292702667894257869305870437247909359616169480547049912998304140077640521117292119207992849657231916532759094787226883500232164440150277359004313301318613609714039340555039182620111079347990871570269146929403352320108588454390470316891787381375820537998324111812325303747441358374563609345484598563776552053046243799400354224134541185162376639561193787783656906407163240399911746396512175057986354131892991726674935601001379189344189282697400575037817336195722907113275372160513990164419780516390838534968203623285300542356368653043572793533850227671835618048634608440262725353942639560890824592593732537600493426557345317973353684672277684562954285951273916938750516224835671419780621826241256357830067808994148827247932217419768983132519827274789981590186438229224464017926684559122613662506001113794613853204518042511226651323957055527178463181061665257230894876024496863359312980713307512473602495863713676548458781393057137013466814357070554714887350093851828842168832136964442773873173851541145008440403459553667169894876892243034034824818949133134196584654520720798362821645517328612775749064471757896089718701402361771271119480811030560493322215195102554669323547883221944802229295943982260511193179923667923906037608296146674528956369548919813394373883104416273020847596722628217559865387362926056827313366080447674316987113492189675329167907223271057423413761864453114724705069270423387561209521251370460761924587298504327346487153024169921405039149477796390646619023123667353552338606701311917876598590380262526803065113137905581090388925520048497845779865952830568344496840615988620511986686072129568002390748465053627599276917615236313309126827222417187248365754957705955672477777704284179800637489018117157906894274539037150135406927664504883282509180419022277164047353401763164720035621486361119827424239831150948890505342419742663907698409026468561210954679282741998006072982692268020428477561401290649187313800744268221760293025853636525697111298700547339951269989973688052623224859260754881032849526950794170574858973371366011975156600417614175662002297948803713176745295574230762604163586560393410207564591001295678594654746056704653372526527605922582208802256882034413788058456739427823429812904944109013124720023889023394983816074128267060480384390471245156517450253954284534052328320645156189072520362178028251395306094524424696484136268266901998571418194354131239150577272924195652727176922989023862912244009249421963987081618689212053827045204642634989359543974400056416665168339775055832528006285075462932905164598871840475087569408498141449659413952262112090504743620932675906412997403743698463439187714839805610422292544690669506677471883695720734087424939541921912030795486196520823414586781365299925417464705971786856208460740174036794902760331835343548214421759728357104201187988255873301797628228942479301923674331704675681826262771050810289587088577298279724240774811692994124616723162763680929948932911528302086842361397015483943537742045768458145097050439774585802613758647005063381620269217914128420397837705987122968081352431631724636734872360911390311902051513912621226727811104823794436294212574363519560543509485932835396045776923484122504181025201570004257197464722115660487659073218083387740942410515555984234623763092802661750621869539003975963727841477433797156195409170088787596571894920143601135618562769700352059663963820698837002591401838061787193008819938703859138630064723150376641458134946140562447485282629148075225095762246703509678265400438660726277113615103527653388117392092829629144580624436863234430284806662454351894029775128110989920622270430918758990067440048729284955771709190453558174211470673176202380840985521758115947183902905763381727554055516324722307931887206088011917377688234223236762169398992137996101834177923560743596230773491448036261912311802495248753861557034911442318911449070866698999530821154938892274293824158173615152480234944774109195457370986554497009190080668363922813009399080018411680209559999145654417398650620204966345570799555959043544090047879680894939462222147310839908535128443390953340007449091479179656414022731854265194355287149768767473969029025489848914799829468531943671384057527384737770297543740944561059393965854389386837760535048484976247559615747589070674019165361603949060191108347651893370672147308506675443403316257185138866997181737142784787049627912193271775598694632499114821732045026329572512821355070189904137575670478979889249987372381344869599449648276886156065301917513409236313781102994264585501992025029030877683662032113376405988120833578503358647048757105034899350825441951421370853232859768274617692880971734620594407654826496905351327104234888649944861209094262956168319828409996924727234764299236029513773215566120516537966719731942187416237568252443890135140465042157026708669850025346448058904954162677656701207928875584556126925838519097511166348926457952170546432617095403696656822008166704351718607927767344261161759740794424740914916603226310799876913858734952063337188417371831007602518795112979044240183439063497157842648695977914553931800017066357760694312467071723490554288990865408998416413939204328703006171079800510732250998260508132791092408529596806049776076848868355690551751204395155012741513308793198862524696466141359706048146943816415122065874793408590429480111209830698617306614332724569769914592571799656445405408546723215432263670639700331349019808224760566936007112277587668739485764202756596424062328049171892954284481465562152131992343733064251774870997710137617798619903155893241151843073451701724384562694627195987267838208479224086870525252579804883701795058919659026984624305752876085702238771250014516545703170967997596360672215741970320089879557410247346526986967913581884482673927544272290458921220160167211687235196083594838444300188745866760945541010454486257319241925638771437042570592040104845661272199180150637384509451271774638155906085716844665780919924431622112901520009101795189245894373955161967968279896364321228846285435750498048018014629296999195033742450792529554827521621595449302162044776335557960258226861393617492871848576832130554858012453117235910383255694001348864994986277964627873156845494187601018981854376451082753564182627141148030797919569104928496776547395228458230630345708640501042527602935322416165845415878948841468471064224320009215457504379601071818471207806789512610821683228419561702756572074787074134851857307518995764090997835695946529983006117125882786867035078966882385571187074678101380625394471116358729999676520138493545559771183023238109226698391994407006222351801248554804751127654078640246764973888816366807651193373401102334179577398854762700579661945815895016927571279484473995488437413957195685463235366156675145954169752227235741485823207436964291949160259902451758247507321581993730493824117007574311909199382960242976543425812901631590073126911822826775185039447834465652003095463001257913200500884029334025590380169511112716022773535590234025733407988516334385246193475725520477086074571318920261948075137221420109956007032600386555584346438945256303525239990815022861792652158852820750052611682728639348840064918414571022200562021803986524287234710361134346360079872836088226766298791778132266147655866825153303622797793396941630722760312224556410026253495572141662620857885758147054440006575143307472306156109638704680269195736578692848760377862195752181080078024569401985295605393856754507224009289801622551460793247622115798422973127586658315031087711922584411014506791620507015727335651024267984307533997684382640730450233801527140066805080867726936629666910328337429043395457341136566195169359758694620210908365741426213296219613403129719663482887697282335869082047417643651360586799319475595828174786966448312395901793755802598261900452499863980452162637655271194092796805271498788963706047021965823348287148822236347888327073907903063356667094091874298802083116375458083565314097998492704570966379436827255784650638796024336205264524299288737972701268710303341128319562007212960082776075040957926273409381663639134191106649139366854502757727490874433452361940833502963435454713780249512804656105139177487224562754169051372324379539626915454636680499192270709848537685858714118499618064452136655234968451958379271170080573765802738654778556411580572410317023554099994789738965993754370443424605529309332597244149860137103970447613087237538763539393558782023689797470110112413095113560080514774099610445067817165815446123860526658323969198030155314603274029519999151477465428985574541487101765833803654296665794895966945792537636409925206494192968855875698858601682752967315040082824247441972558139700983831347095981968912907857483445842242697415204136840667063888581913240858876012023172605847009246670803943310628326549876020919913984598455895022858533058430539716123161654721918673685396601967630813121012770281871854968771813711218268725254275186235209945061921229370921713742357765846245445081425668196387854980498093350482635630064162879643449756803896477187291713289229778750167893959857207988848660066930377188854401088805625414069440794848080049374696731604356431694975850737347484248660673187325195784846089812167649455116976282012474501887082329551803601561306033622002028886826502375331077567745082952562670926675557948351215362480595286989535599673670572658501311266252883052333264652973346066265358065737567113860686475130428950460821285497932829955746768284285105864845684673754302007743328409768881634605686505237576820497521427534014700581259801692703022293928168241851543762288762957819049105794194696517575562871672984221276909114614172344012226103564850886184755693845530157083131796702468394775102554094470285633885337549138961155569614888535126367185850401374325257193843632481233203747936531666332258089655545126794302192240643060187411556488190381189299807328235005899931600418966722891607066451652218452411296365917688566349639913501179182216375558646284635883595481045816811262189488247597065270613116675519991566636456807565519835090850093252340929979815055816909631534563846058211952941231852340116341894269977615558830177573844237371955068182867970571477402279489793505180321968189016236428465881159262733357449432997937530466464256062250263314030898844292837560833361625274809241598308404097855270837637042261686211414156008334814459408320500645084499085951085532865378883463885177977196419941757361690597585760859368007379474735898912015598631062923688256791295144120432375758637497842893842812698539010354935011626079805305304617312271070291040305308206335092957190146443845995664467745946042717374714750545693729298152220743331034831479422004214049851995380261918735912405642366748407443527820082647320784239716490493939235593317100271215797022433672022874614028364008882635253561586828989585957945593339079468881254731909092803209776806110357083582666661346038683936611537784808496210970681701276978940185295308862601702653931176996753495605763343280916878364907625465895457775970474715377271389108771308260291292768884802134197229081140543903222484276003227291523874417930541283144054349723414094537153846611189120673989670638524186877071674968372502254657526886185814484226301831756634817791381522183171400635463082272958572635037651037749068739525730110466045330822564522532145585810353679828495129564403855040385006697214024694210873480632642466377082701595787277683059491548169478030424222906866131701421129889475086369099269692120742618077971245941610321536759599665646606809068266185369956334498196846984373633086625855916926846611604388542493955784617637508832618964785753611867069115768515326087179462346994052366311589995936468220921965244335942570883688175919127231963776571982880733613118813538038824514630726099559090914224155713145021702633627810736940984554775664793612294515821231554186727594472249673017065989275601521607985674256400028224479834114644164758748152694920169065329507903892074552331650382064563941804773121550724167326980195390650813731257660572693178004772661366334745788741509835832996045569738085707340011791129518073024957285658622451947149568625460264394312002460166165991153692780717529149600411083450895373413358595748667356490002952694952435089241297081895005435332312466691615107190171570524463386113799480761040919715337812414806627151976022250964359442572190793704663546039405600564715193757122701686213017261376077246459782881848677841524516546153279343486823642820445329656425405030529668998597757198021250080684809326648738920387959062865485407513859596675714102511560039510999763905857249562980333569881636190261812738356054310766315686368082838482649100883808688733874279191100001185270639350898880886402275669478656669336853728659905819580503622547051759802495604908328237266376219242234803140760209597985660966101689260343394243417591217741017290764732314462040892953993885933501158966127351387536262534676504246893739122483752491001227646603233479480484594460968322669922208071903285018555161587483947268534438789482970035104734961461208113192225133884593260043004681833460739533530533383603382666496023715853945409099520899326792100931636047065905799691974968307455408989646431568750177913090211721161819396464569854975158430915746188849745533940053787153043781692721485273892884863419236292858379514144391834781931582319726664302284708836198430543623601421708680048585702829420459134916752685929278407375397094428616435090967964467818614165942142383313561251992306362912040364951552675647090252977243915065223128532057482574411757679242384268411066407658920322102387807375268137750106805916976283438862052885347407599513758447864249260853979420593171154153316437779953041191028393580350574082753082017883893977503972105379582888941027072783274200728209049895993173524665957367589848766011238811296443328305283397530421710250297257352005837126681712077037097191866149140628718528749825190087484842127322070519144626639055856122993680842715899133839831741274756397386249714760392324143425238165400908865008010412287836447569962755447317127533291684138345661103843013491777117520857185987855631207823222042484449817545511750213420591882436603022523316134637925379246581489429732153661673743268961632909683812350278027809415480207926697145043231656656831890343251107724858823078481626438021735510038877950468258241454667063181965619535379265076401662072499903943261239811626287323365196589301407834041829013497542394281217363315862249631671983969373592127184444844575203046860898412092874650707358311017628058960377734045113782771039608093243037443899888527602317749188419328023438370115390440320551406592472352997652640295347848551459886648316542649114272288615215483886906732180388413941449296581179166683601294717430586133153246899554852640944777039335528277749636175033424179413662231239302674662822444025785910617709539938069308003689684137363831587359435070675526402564879488439148865186615569884627007361807473441842955697175994962672190921989591681937778543589835298191004015625911885050856340381084196942329656822241285929204634263816287558610842001772086366441796384967359484811588525572648582759042225537527419824072990150257143532057221554301848421423534798896504726035594476591896694179309772366381970163697410808267147289276170403307105680262631440799114408748495679737108738985514657003794150721220790188781662202187703855816119838125128695896664979004223220923404853560639215740094800273972434610683995691487575373147273613968538991176064945443914724205493929128071127939161619989402707745075675757921543338205100459046066014929487359662426146384371878490594037151430961470406638756314230296565213292127722717997308426501931464488736909250785063976698607999346866847122954935575675694678068532874837958657844941458083276115094317079187386292330469754998711116608606199475117105417503390562849825124180432818223770967366764662981013975745000757890742766617103292261542433799636150119611218957041010142959858174079620969449337014939663658584340276299493319326892761989054327093309326153394385717736706669796834430766462790238626487572250986001075419352748166039123678859180910355539961403684933445345672980864774768093182886147260390179201897114020989523371619347965790196602408762752128093285004180004549778967018469572331799262897953521217907516240662936446614442904305226531615341013062693302518574000203552209675203524157808022599054976838751146662886544512378782176145499890590653805388482676283548420097119532626246937932490584633535946103481177104154401994706126682010039004428639081804422730410416448118294753295583619508329788832768034553325907480797436028668307946436035383286916365877260690690689820793406129976490629142410575561800396370800766020995393889632851921560400615020523586858673355628002536620829974977414632425702394319020958082942264686253107036124524550535156596712948838644271017382321161383790024808627854344924612563459024109943128991166292761049436431845905643783528013107225180220124145430236313662264232362799625551950563361849602895186748534882685499948944867560983181044096295676839537781593020899528223057111535417625034495878936945048245016733330336417426346943146725152247523440485330064267391331418905697164654936952693445449258874633629503108364194961914109905060500311273025391039283250396982120970313721433427966606208742775138570176264968040801010735819547247966443540675102256404708612954032579973891226529944534348799102843911397742876712765625934552187155806169474068468006606783655962025600881323115391722769706014677290812307920332203989389717226190025561226748620126373168408149256695069743459754711387340618398403379713706177378738430131895138004183696658155412585009245614404566107207394479486273236808012283721028307252005884729015769395793999213452954297222644196657507593390504750419491733183419603124413017740912650001211348723309797432830263734477183078553121108851497707703324014689005258356241329223953642259075588174812845736294547876942516911932411090663197214158237345793886533571964131451567899697970620105178266045999874688128909181816862765556659939798980274279377676006928333519425656549238329277670418034258176761955183007413629229891841546213534754844028254629702693317731851420464907632083342186619839334912536650170695690646851459889663489321344000595393494883643617698359525854437727104402246797505653931424828669899234887090402031522115474585758745899156352888789980899655635946189416586335175675058551253832794855332020682448502950867766732564035689119721874332450778573942682256299902846466935868656741004297132267248530274384995708413835206432717562584706359822622453528612558466556373283093742619580058664152763657572317760955049546563872667451776896205230815882315160084147833320836921805827236211645647790164409559826536178721216098040737325659865852115794808933791965190754467785603874821828091289350891264305114268884751630611373433801320994018787118411816012849949683861840287091028697741563552009772532105444785132797504686691006849569098262150727507278877525588554062831155711646121780606896328207932436183377975516599586753260475957658576229536518439047346113314918727904498942614902352710673310290442979316833812930839829507969374777766389680195955521404667629892546684069924508876488608410068800892348149007507503726394912816115484286351913983204723471910302111181569175441079239262027714315709966401157524149013856445712781357772428977989193032405406978194340363506184776104305372247122989351067988068407587583030258629208830436714595665442958225842801859019648842092850290734202249923838506191487808370793113901196669910075094954015050139345868214133940268345325082364407213302427632780499255001055017464196504557479133200534880545877793708256384473944342867523519091869631196807049646136588983243482105868766971300806724525957719540920052171301570626458464217115053651985716957155925564312116720149901870133574319084720337247624206003668578718412336235152251666516715779693661237904416624947367270469788148204751009644996739634311779858455819867387717034023659752740729492691362002731543356712889960663107750672141051801579114873084499265620158748538982391240419166608064184356442516583778821075270696700275214082314560252146818913116564765967746235106626661018363038370121339082350824410812953571675273862212380621770278162977590751774667723033197724444156838305477555674249304007296403950358873796701003346820349578664126192621165420820220734881621290163890380744332536592845885345877122484459957259636860432243406224451458473369474049015508797365198599041251112158984387580085582331622774778678453351984385116621466201339857036409785221428081644193025147209642191867279566350318350422696470460511740187803363765776283195096031725366325327631723303402839514355376213972695311952930802138736683391055655918263678788690335848704093860348554995919304161948773326996832069546737251698594641277993300207058674032440400947026678429817316971205455427237134001192276465910998637074854000968859105524031623836129442718816103741135150956197454445099123259945883089312716282019545740279102111079217779968218789401770143497520081968900726488410297309956747457357425389251436085447178927632470714519887788904707897255431147430885003335825468962962822890281875354721565111363246316697249032149363972560908259780529942190757590431518165774042743857865332291838231348928705730228767663050156079710320404687531650187004195709808880139401080375621221125328916895619226067566799525349008653942321825464726720373650950119761750845252792547178539618669972376953765100455008700931136101319342499959823634633953652516546035863841417073210275705402665747380861168769781379034907219496975274655196150460130532112705994947426632090433244620312555980608992015007914911593948766138616672748093618141009436900404387575431457178448783693200552025394914109905231304714413342300120739798262166849371382090334310057774816198848213340634137935009362347296220302888764026236281769080595714460962344795529612151875348688145064356775730474571828188145157108597606210727808489927307846366563018219671622992950613791007582686967582624693130610063534319764195951582336791262132291062267489286950214721853758065338426249087893879511312667655460242388893999163312410753705339256690664352430668809321683965674367194335825673681577296401250801999756147489184550212522740111793438940256666221434029617700375329733533559468992566138679349023113064457637358150154434852736685266855078171536610167809702497317601752380073288581776225956222299459275144421730104034733204313314102967593506192661506637790724451171805856360039328036955412878591683773648260613299547096655987864772354863418535164027572797522771196258506123207506442402016621441215409162157366445671487372072033779948219399734835681435408499403085189705847175595300360927904829776967131046644369355938390695395455897361703295514345253269230245281857126509467267229782879124596935182076607747976388796883932294531791472865949036623244121244502118421504914290546724498100412971149556219791051555780779240286045924132005570732331193175598493056903166287618960025227009282182918223833595632350482043019301794633285329012153853409739473065918662480194458430716486667537309038219451585363106198666448993426366917237511194499810693787503061312825600657770073097612255379311488881454783943380071677373304415665419690153330913178792183444518247813278508504554054939042652344366505390641343802969072398870622555329279877562928397770375005368348027346912303040145753800621618525721406862217082370929704725109297241761965884710327623426794433675645001147268905460172234464966129448761788928567007946506257391971222366361315741628940116202577693179557377710625076583472531636095604367221678945025030300622379296543858786909940707873044276108803425697329027420303982856011081160230378597717082726779469031489429628890378165704390391806055431179888210468690028077370732559098004291905265200852768700280119962609801542613497558490647278095743283308868379380519929621003880264623021705207268424381304980617727140179746248664197756464524959874759822779165220747743770343253309119556265111116455991358240076060996126901802311153884076099072393827563330260819150637992514865579136190712893734985817946192707103123556234340669181222811795302586102530274081117442759387325749673158434076018805539797755061442937812988134171957489873858860372445913663850966150264276210376270286516097275812883896667776087831806675954790680968689635826232033619868099909924402297853665604935107248589550972516732594437865840548399406581896316237149669614899281416681822425779414715489543363795468429198793048432073632064785980720418326695679278772364897830117349090863365367705652454844684958817474366509589445048886098293212826375035102558951920493827255468089296160693490859669459492705912824372970488126789570535604287784168449444813375918679775795851807240823076483831050255312011423510037637739999360481654909460687069784846868002870957099780352380270509443851603281202938848136124738249798728816559212014244906735949033060255774852190694127906671822180686098376872176481886768722853330356192433733058432935870240420125778307515203479516124842363934956118201742958064294949276160046557356593508855245341335264043002270875230691380231163027201055718500727372140153829431730129687785606650393176084022997645468879885272390723102634559298573310698618845315626161469219481975550608043387462726071997557486020666351295545946467287162234854935857681447415428681777096533551798696185315344737040542793239855350605650235377547886082836601151180493027425857970065107323252800697325359853412232879367642782025847836389230083373109533964312989075021284978114810402925548566703638632370406148769347865866097335376152957865442708899179545478789646234195420736419458998786789944683898402096382213318186124809191842737068213063092315914910764957044178900676148655032245176591714798498822780950334388791303146843156764918181414912469394398441472430161367330522527182045928190525196139459637660426751943362155940571038767838426491118709561735324063267271794895671997112037402184463060917438191181656259135393811469187912404446802775517201758571933359532360046687890497114595773300243151389628485668193850385307090996286591801320438172856830120333184941461571632933717191794638938772508125618075268401662287431722221726498400313149175898337983541441566937008336802812830005309784285361059182893749709302189919870351255491607153296182397113797551143429473768737911858777878821539502464548446609172482088918230792271567801691078991936124190739537064694691804695305781957437984207105344546219135605706960743922999696858166402814242168857324058992238041418724015188142690842923914570614963151773655619577566623124629389864133844572328436248217036833318547198597578174642417599520031971922618899568950575707858095252000528063669376753590560665829340470646744655749583218971849927122181004488688365990514397233231560790393148496782155322105439587396606656311546997782841432657165385390663879600075935547883368273741575865693589906252946704277346951778294473431983932372941307535663328265651542689901095851911079386371204355038515415482530940107498003098242531377176556858347564632529211365679205050636850087012901094176777877840022032695023441050036094219374962448348811613548475815608140682428596540497066240229338616725470020141586159677479977872749961982420570651847767724767143979482199002382399629098920160413353139159952627705203740495872928274990888298888078705549091628696351891622729279717552480436231365336158517198687341989651698626935334218645252093180572321379206683251368367855817907079563152579866311031081504340526186850761096659419015450331643215092544044038575762233212410230578360476550964075324603373407702545647171792432330173161451442260738890437537601076747955361581726268981219286761984479583354611740839106773756023399356662372489571555812696112530448501578676161874686906361499551085341947929413096162640623309936464568773976590768322493359956421857253085563173788144244780608847356213637678729766031901247249155200029658852560344556422149876243301215527924683766883251285745975426856365729540883592642284208272539575375360140704660763131702779156426603375320739033643392984539952544378981700516277041314246225973495194326754133652496550820730171652170880422699571236790166887220996136260247465274853201902356447990119261686054403912767298078028668033275561462059144991969107605661735721078119575973808407689017758044881592789009060495309886957175541231837071533432807318618091014825046569406406607502127204063660211706416257016987093421531408709047990137324957876618378475547206711790654847323178513306832245809042159986966563251854944921096749265183728846105905657339584214404970365291533628486321101023355163379898582876672889266008449309652051306019067834326417525788544292196413011331817427224717646535266902716187972954800579902607987250472616049133670024147702809328981183669745597465758784711556139076939596260624578986999732862830783098019323785247095627631651781273007055191943663748377883254911375825108141140742532166386304846817774483592186116916499788282682341519874476463981072624965186785553760389398682015497277396184522277311348513226291664662372498565484381566536968995406118558752799124399050538396755227124295379520773360049649612281421199456076799716504742590801134438973564088840162341987946814248374285654224558764594892807060069251881988009194132767363564824061489354204033852813943313121987091880115811568238676830474892122668563524727104072072828030421724031267127550932022646340581287061593028565619136112722716187849992822483841682699225200453506620909055293860336395799587961632486508587995675889982720180092491359735825398770144218125789945248130473520540294564235038482819055547547720382620368811907748981545503025316363451299591707308150418083651117864908303330099102330509732190405815887892977584797194231918937492489105530280525403416867845252581052855339017817005207932024629961926077866638360241538368296379359111998665314854676218326401420894300782624177905906902247104576089998364168097919353299092155780167931971594709359156591598241056529013387986925316931886207630825978856935326031316181766162151140623479959523967957549063810757872501735284838797014957266392316753869656964979752813139154075594225394207058544572088623493649916023779732923574767129105633493077047263093872136069023289900651511276799882751113262339821869899419829064252896463222528410937935472808544784066729715323380333197156345805372860396358612707702268490475938491635715354859191291336166807883881979158405744715928867423098774819590002394652723328126637862110430624010146221567496905545481205442928271103317471812525094063190200271644427614996490335976383327507528452247190921824654384494708462946652212522227691010533213716836361608985854836489758263346171520142601221307490543893855023865351951884485061075869926663921582077390033304135768911645363818962665031253502827815248002978324578112184837833633939104231682921107262477729702928486258604516943817918233187646026971374627758067482115430369574633905374052203276220827003994346787845198101004740209702389372481481792676477635497399793076101650822471001496697322653034251337013426690075645190783164909420420288064281939711521094409054091877097556327084089089854736551253358707346180882670675887691562928910532340354453422971308932067150432170904602068761117580168563048026801704977069567192107621855442235521988682311629868874868104604947969671698034761389887443401039546153122468402540244295939334373951071529534426034119242115530394455925239415259723797336849423216001005585780699048417615617065195610759220491261099054648880943456881390649864694516954901580373772474281614781321978416926165279455374828501182835688632625632149327195968075951610208737225787116891854936851208827663945797867219685462503479419387674284181801787391242280992569122244975878124331814822268700333847837346450959768741817693369952127193889689029255874986977313487045659283215591364010291896201517397990713408046306818863438822972589757995526234946593092770632479746804294445674971903707823749254618239657215693169557183148037214875116227077786927882664841785186303541467455621341457075806276490349360992564293810281375783592628894866352536477126108926429010258872281722262591550869293012387879481272111617021033836203892970595274424276666814198134637265972348595849921221285520580102048934320933739415012525727227757929139141821973516000326028447429939810969283325670586762219866803873355747059111242484447507576642297012494251573099885482014952838129158062099002233851290531092896763498107713588120406197318786672682368195900729473696578133794706292111216239824534382052975729531252209126432177402813942973756990456573834528221845605444560933951541548598744658850190866116254992412941352235817354405408884639183741580184977543071739491466818310088227464078571800240835123226669845415985345191110546406031572177604649383617816830383797138830786119904402383836811862411353229820069708641912901291772852315564573912440793227419810352646610815114328412794438396108611331665503520913696936213966690587240425634065234754509105512141887997291284150753935386401322952273631445561815120822219996025110309126141782179128969187869433506392806031876126048823937828550848469209785885312865033290033484686965542035510997279282028164449014149857884682717788438133330983774067641692375159884562893146601543863556040600242037151770040174069829001305893402905874675064398945620244990754308523156485515844512537047896689277051716068538740325578221528986468319414462975961988777739771477282444055825720504279357267457430459826094272989119583320579547835040641599613160795676193907519437622652483406786074205029592836917854518746618219910105172316620424358581658134680787634495726045898037600535643700547078138909572287976307032029240588948187238660604496505620082467665925361184727610086990865167871580726784131426827036614395258288190477357521188398689609642733885172881374885612040046376776220952538690399417827087672542008418367549260970338749146843528412208477201391695332388051104176200394058670940274894514713188528627474502190040075019894507587327250094360968104312929481439674945216313086601298478224314641304883428774667372169123039322092134155087045436860703823954911153881551451520638514576532850422252396692400360590099230530477745172674777261339871791519907439273211833804265844475135571602798491438829407708187540972281198647645067928678998889022745473152063738034241693356041037114826233371780428905708405267889453134677445009877378949636536068324741053775961183196389128994362192723287238795596010898658769303660902602527431845914023224298397050804017075695477201145462473906401377740379800356632272825150787159006717540039317379664445822371376565258375579834419608384505174233500389272061209923842927138624500736377129119058803641142086632516776661884433934332022525825905789540229913297397060171899150663973507453781457010786686810812993091433484046150685371775697425145082527029908596840094198362848765662866699760793692213199155110686139472836846670054079690721608974145008418657991863647907358716999339434262538598015193323371399661498308578429024500970509058527903621093884690138570452504481958243731617531785197652249956816137895391259742999804941019275458051091429019315769867200888866517672647220221643318106946243819228077319565229913390889274091992704065131778391923097152510871269027864751342135716837243139515949672738570298287760756972739057291530861730408857951462056839671924687039234223387136687286139222498412678613115189748290306796716076924715000919841071544028924336704686549579861060512933510502050936251001294545615368293191330590540506833732416100338815808134336057921480122135043587154479065633043339116415384645501285081104491381396831938910319495616341431252445767834588651961994765183458372740459728489068353903607005427046773113245564157757516256171748456490578007633959130565612606802858234255279615458846439470127589031070887715789249307482064862824778022179558052669244342293000016767983831067820459888575803509128618480937753770743490927157867838219271697212577281896753398537826287675293721310035723825794349966072240633556415945766574285549260973960573973593686908739531308938106534982465372799986489820101355924326005712906131848848369936384160346074677078024790395771012447395248718847025271541885237886713108754571707812086275616387836674114793284043027029083990134262045897623767261771694124879605588012640713971101986440846596062960031835013438996270219819848650215527289173819376181684610363314752432476919037090252451413684602883891165035560856988888559634656187426976875067304178948708294423410602376602751082693190134781199526440014456023304640467109038076254086622763080780396725000806892141495474649957508516929183799889428395398496048569992475164755180679819039317598987180789333207616390183901622996693573197397866385919288291865863395928199455654441756566583514605915099982351671705161743173513151237775490844953602751829198476179972528286331884698932178794413447831002082308684347340542171915566428366994429111241388618104460346461425816907409621240824457430297286824183847446745447390846716059416036653426605819929849897520511289092344361813724114026231299928536939273952027821952201164343145036542168685374917811565087959017649147028230332772199947912687732915767670200841701650152462342838263803752427996848749886200096996331603670847404166591359057127065242595176973428152922584028362897945764070879554258103846660617861611721399959087864458380757134258656620577172913111283803616394455546789716249368624668224243853858572678808858794597927705247780168640097418217589731740381707172174251249892787130780618242094805489424883984368974317381952744286776571709677807181989592751225633414563832482328891768452495362805636141494511962598600406925627947880943968474294280188753659883712354883186988932101346846030155472314124197224851356544386235899344423594511426167961931173897737145095698856408442247217144479084249763173184062628184844205124366364015614335571816475867459648408220183654418133113016715707170903422694191983951844715572790299730608158504809521040105656973691625996407767173590398593841633097759910230165370494159428917272913328172646872360043515912526856323937331310212215783905853536889768699560211754315493605487182270896992221463081788549474196714079754999256718890711622644897827996327236471045209755068434095785041957638897281780369873620859118325613533290040960429797321854201215639507581635735706047497170471434569885376730156931284778424001064555606398391706567815391085000858986883201328673232703068703947248077183037902660034168939671412102683789261407220548653389698455716825409731269050104856192991093591180306966534213602969711944208848870231998089895110415726946805186005598362765560878989324863225634622501115230230558629764744495323354088764614977999294602577628909911891591996935552139675556300060836520532312511408402669823709644970593104193455959546388022001349304080153437475562942403488645036331962246559821180869536938785337272764201413634251831843111175577970004622790550953960225556611499879001981375995674538751542194093008293753343247356555291419960495856824659061850695621439847384672156323269291796329889995176415316881666026138498211938825686496247273180839025037191001079652317172078371067326477389155039556216258550423173062636167370482760919290133289229655300065069067635796462363667488259165250565680709101165744313042943565926966330774582309820960997837108570057666548812972754863191088783033464006062123836791927080710248727610841820311029784394619973203426104309043465387033865912004555554498709399091118923874823974034443802228888618083506118537181752558503210248936927442884873701537949478768356943680059450347540734935743176924932114610419607275284416806332915315955092547181151794204577235890899875448753034094435183856291824506978272615013508387059672802845553464996854005937666295662430820324407065772256729335253522247668838801228959722557374079601960508061013824147127261750441279246767990397589908720117495173617248302066546250937566225105504007285336268561890882657592438875584134895638837126313574058654633107361912633548646385273344728108736228664950837720501509239496446604626258084893680584494061409202023039855380704902254593715788410156182147136059237632428106430656596825802918429611592024679776394690878030664508683487819704555279108108838889123967870745639289938717875954283728623633698217740524425568276176050263135224807343424516841554683944200958082061781886740492712273152432998550663046600392319491568573622177229443586553426779317113414424029436642099296118870356586789461440545438628754783399634837538579465383128562776880038556273940564848423470494041752600426482969101599168569773882717816201656792471344031092098780049068584094802531388238577156252316521731092434672783463909766415270636928716518621398431022724284672728778131996785369210972611923457148931098322840614499719145977319355994059674204389761231535244346833030502135972477778136327062612171956913319836429676559415636339637356402303384416206112035656939884218620204116936561019661272395213509632356047036642744764045637539689375591769050449790785750951894994070620312546904097134727829948941702049095538296272049538148206617392757443883721287222579215725651827593954302135235806212701351138419607521684394935767875546117641024063649181121603920783400015534383233819992143328552972021741661873396241895492412699165047994670810443423728584885610280152433298380436703615554067593525680297798241164152734519114307544595045265894243962410389093692329629906362415406411031197127395006995562545301781448900937668038565780908352814422738923267575836476513792827085405480590719075100223690451382231349734415174188230365661812107229849153184628106970744160656459573095985823238128757169049330632928449154002176691010147626798334052246999961003257368626604923000719937221878311794694712053320547776114752979245822607916300195841045960699453538688349716123453946157043362529743122402141856704981316599368557001497656283835218402847134080601072600212335016398043872624087490866943006422388637901680900532519790775749882321648873358994519177370074583308558769887603648175030749051789292969047572767396797945688260186561350481359251239673413847792276354442297706328319829343353884365193639487499817016267055272194062934423527369012030108833063899080643838556500271168124858007342144897667818587323913855219344284238965704232454861913839188490252195883839532440600498019237426962469768312985477874599146349220365344182613836699558812367040077562308729036761458864424630979333787569483931974457784229978164877051062012770793135670691546347280695395369794047572718652340369472551317940643386795294197297566990760106925950925917488308693916038505121234891891484434417687323381029315570350345804410844244854379337682478737538090940976548829584272144059822541229145886635199801315662546666462855972376285364310093329515990701795466827444969610057169099459045225779423492282649922528817540563508236285858852902742540742372422917173941310479713678335528132712131994670446402738073701813617390843843545094639952989883790545963309528783578186695328938855372173861015733652747237787668123540858472488156971903187821983904021035855592719358895143116139820794613407220756170035681734139752451233943495343933114925269160503413123935738303418304524233626656202598262640408009482274720788268150239974425172534817204315741411351781186315929037328406704479320853397552775484586802673935725133254856908375310493303817839709924418235647364191747420591488900142995302248185758682193701908757758798059210445512768292963354905614708646305626194210818703740979576381628620745015532325483379056399811091656657029577992183283083399079755799878055694986438089792215366198037410534262294470137569923684913711287062032731547495310586311329578481398578414882606980363396442782009282668031494992173620890516375524565438173565303051083593633794224343580551925311540308340178775991837893322735977408815134927400882362701675335130281770816829318022629762366599719632848993271885283454909469532396344080795056993704028004380427960055173882511608695746541328824571544253358022907792607286174347341361040294280994858077963518831958013001171444141380106088291416818176118618010143790912922844293418163433779644452253853261289213604438747372438265939533267424626597810874831326472813126808053351016481002079726189667668735950838976146120634262473895180845819482766037217792980636499212832686037887742570102211136075667988618233032939114583951944603461772347882323303310056996415976499624005590111224833385680895483767739303793667428147859703269285545814213214807941083108490572401201963602238572787629849126105122390693314918563759766987291793432131538985478330318084334819737885450604667839407307662675025944936053086185352107839133188947929207133901583006080661558319206631308929730649967644793592935344406389079035955340978595773543112464130722808751803939495407605394003844713073009890874383946575111967947501356296125592027057067817670810498246980394172891234174341277605931659283794624936110994794013384523754314875527664447687166416807139003850162407958722033919932793505015135449794791156421763610240979182654853061033818607381318528271782627620010500627677192741212769881496851725061097845715884729379522782654243120291786959490206984535296800195444476909243038332200222565846597124680937409687007390181997611009551158303736698817318481919961601945332121039075480078620899212713310051922553645153410128684020125873029153889302606465494049272597427857754898624901341092342529712396966296144858228789609834678971809628690026076244553043230325037432842092914596158158560955156323955063553161084105976431042451325998297672839993171808628659375268946873392162669487110723174455436128255565555843914747089996823838271510855244208583692037837665188774140020023805807551827739938881986800481809774880433144430624558906190031315614769582629637762503149860719509394608781120259461513506520844133088677454838619052934433489183370250535476712079075366746338051280188725720225760818322477483297752927233512844740650268093558601060922345349636956104445908475360659655028582563668365272787570705566456125580627648365291038307675657309084086060662064566621842947935614108190544556878148636530384867127653368653280923975794121998780573275278708058460158703266938739110528323260107336651020921111608531276626898415632602485013826257915295404139121741911942873385427417506890287028845075141511585688362107090596592555274370886309791800503712732460314892839629234587318518690102607206524517837672202102384364670445160549784292179726592060111991310905631803700220508201229196794491197331825047081475212209773815691650149832781274592129450288031070443658531927981075712781109659970611668147396921817924969586627446088537432122061289273885311278908272356097646032616054592303391846809310073998907730606696730251609326307600154377074734418646447518329777682710599156601231538503919032489587868179936409402467392632042719074349209758445455342537051386173811708768135216213890737041153748364960520598344195032965579674111667185432724309870548827629759571951224052610261538761547786663553810703262610553067231864586898232499636767907551794368733280181748102302274387293897378068959927114000881002577077365479209517521791671414566998898702233601386313386048403442394492063339877757249611963605743072436985419194369751950799906016009281317114690415909281382610985343316092092475044733509860542536700656515370619500486654591216491615562672879218686345396238341192823197046120433112184733499049426155187805019609798854226621622541182652525998003503802790599005561564234782994627035325815691569411480398185110518036747707821732490542149849691652978761103076586246334109254588983852742815177363442338483474159561399897672906751088012618211987842602926514386722348426621115660305341355334622108618566929855259177386796404507427976592931271616407767895211040767485105377739858246385151797166434435023528125368199272985988497479494318272466682377310034799706278725607057788510651167702153786004216807396016464700877423169865274928428731667298360713609398834234627199103125484737945119857951333030242070257962408619235598305179665884639682066728227898445035127135052242145085199896478235834136126189796719897426333008477196248707148028174505128641503947947311514885202721419454371849361725378497169557524969470959967435919081111114904544914147757686902222203133779649212432719340681083194890448338282333560543742522435181554396880631878633294299850176242582341934361913636976558885466900312765080191959247834291292526062971413834203767778849734961374067601264034997572092976918106505201051991883047800099570178849318287618858855147824370311047877018621283555636188620462162051733626180909399073225527715897279349443828442253540506879432277730899102060109107670553907032789653031813528215919743796850356193882746004826022934577595231293532677100262495733904707368300397490787208119565290541611084795160133984143133277577417823751302750031202715147874736070771567134393588740960578704187367266882252346765492610289018763492934366319339917561809961854525357266001578014885206605313014089942413828463203206292946831460642549745325318209699838953010584140386662182181073485881396591141849033262405682936136787621870915601841626743431420882282917354063626244433727115391420221967774001893993088812512016496793500993761312286154564014596247698165850674962359449602253486700496229015590943495108375675803953119150193953422845888184466490248537209015955889609859783915836763180947963033287127491330203500762825836762964862505175970621720826425088061000784316824730946500379770133191285708565279776820745888952536697855716676852585574936433033292176887568342551369053158977926257585755372694533403291718619622678927174938875868856397502653360092112288196208596344633556247123113403086189501190360311359253977162182410593291387099393688011947900286656578933615709652090743425422666656245641654759498657605290300550744617636201046523939808734122110554585298205973899604096760720909528375864974607766377935114538348731159792748760232986461450652192535744304188309513933434849832226529553533542773116861218628627502200675138313951291999673542869852830742172059693016325254355449758664762867089419422345599155381301419910277459207319337624247588967598834369847335429491386371709116564421785915095822729642143740187306890677743354481029521905833194251096043987246021956584180360037599537124435403808302746006840251207451418886961238856478703219764635526129655553011209421780754451894751997673226274149155029567507016519348301796976276951209209718040056260294920771242347752793846541621054086809566229393457661057482533438706051656524163674492304601217570798476158660328384932421425553021963501367986724208494618903357802076532161724913327533545543530970462360439251608597714749022543420752324759553243697369451163455898616782914476887509607107304003386823285305416615501789613769254213376936645502774095655628155731510582419780456623717713714622939741263163234495268494747943700530987300721348853734084716890671925392613760412142563686244137770154248486266835181905895537593765218555744010871498920031212932405309353582934329147711053892020343627964044926215660955674547247669801005333421796242026262695953002420082272141812292778847956116427590309628545332700184717514196211204491813382100702261400614209123314455603082711322170378065294251496115024855945484299785958679630908380278027590681652356978030226545211796824535567796782735893913366459146403091608685854559063832122074458936073316448693453753814982163537239838670002309019936566507863816933108511834187233655891317676619672439581133108043675431497832313986994508908324081835941383719454783670375680700202279199830572684881646480855739219317139446494376678119220976867871003620499976921747917304762596279167299900883073037181854397925861490362373809194236256523303622803171388009979364210140202909493309941387446420281125656739649327256217184863166744760945174495791169078268802973207766937773820537505927143851913242463295985231074537442749119271633579677398107835488312631227248584009099503423891614060775332121227843526362759741525456075689921503698652303191977254270044523085029526979947433765481913514628391926473251227413350788164223088922606514182805196646677631094607231390720033135495761655817810025133222535441341824628504146014391572686481386909298433818060066885643466113470272027489316817972978534095496226207172695078647973205014253197411216417500850280457188228245535780721587977364795147385775630720557290866822262837034373366807610601342138617972247697128465437214799171745050115779972936266753652630009132194562157716087579452190713500448856235982093650061350188298189596109357434621609667170263614939165093418932720064166930478792610527857223705138006355149118150817590502558303241369455756803543044775669402706281243924726253390402823036157673700998584293313043810952667589921957709683776674650292056337351419545199299370523151286239077543026640991989468894683287181066036953038165872585427274006911971248131280939290417349484316002701261964374360359628899685447647435565893197899215782006916494937464875102095911566195830796513256946750088706225215728621684914828512378335247136238882328504037416793056963397794989431425624744785501314324122834100463645055859675958516724992759345186601768941464058761467367043891616099899106439405204928166238436888277777350928222760308199640197812317345732135236472282738955003687800497128039997012598885667724618155441856365881650452456547217907603505356904260670021879446293410829627745931939385844013136243662199933044920950000183627095714108424197460123598553738903777963938744801183278444985186257120292034485302796700444882212919998666348657444507125838332961261498047969735478185349326843794074698385931649817108475998630706681900628287741530398405118650032165834412594723810894853656706541001292492628784020586757319912261571170233150078940663767625423250575146034931810374533695574938950114882030335023499617433108245602984356228575907639220479944121551118775359899426982292936790238588729839247194400958453443383819058939325963049705943751195709776340799977490815828475842438189640549890302874007590031428455125585333562643912246499218018367501408430227200939757091511796848167502976604927092148656307924512955395370472337558968241822888130064362371188045413463842413133777201837408183110856632470609276772379145669881564995083613758368455074059592450697510471113499366341264341306510184745398749589921221110708641765133154192269654456861012197508940888304100508910837264097437329242481198087893383745244970070950606757036766565303541053901354763765664452831151633060303237821625445858188619355504992992705858861160140431741739881043388002800855012555939706497669607347975447404366499802044766176008324298653244639331566660922310010310736209658420197841868226061974678062301706161896546004477098150627347298878237095337141697340253957510490585409706659940029749383122866031289597447907604788289607355212658024964575622082199415667146435464332521647069370349222546377554378439225072744785154514912536987194990564010724006450040124381034417977746707840652185798916901273920813488642553692783199327917758059131158180538715304146832287301868426380842425305946155748271329896708706727790693680114696169312490460720253620721033722613483856669730779135798403812930650130674796084301828697786121061769945617090789284339209472264582990025591759294175259886070532760994052951654461788533467915892244677263934519401688573670863334659526203671926785498000183657181943419335317447657479334108720768757413274913263940871775148707368840900487024962956853042559619615487685966715202461637165860888778858652097609019292595826612052214836823176503965710645051930925507654721347463248849997685196835049813986667862326275573944619004482698777481791519525431994237571913358789232628943853997964265027616487843234255323343157445258754619932927380520683066279483026256128268495197637382823318339408167440780641289283879845490630172851449426443771211251684006490644885976943915722996479554213142454705249812956382138423965113159515917579029161600904241657666934474666349958605626721720391187972971070344416881913874546162057715187902981636946737569947568540776581756022865051003806337312204979285232625864559327887595873458674515959638731429369714900807021540727455426906591296350865051469099818958500428979026260203267561841040536464298981193542756749342143710889246658388504939293319394595620488182488707620448136674914794982666875421461745387301787504630490785148148871133306967431040180841969220975786575627228951411293953730784856191003410235219018846958152632337475757853512736536227418979602347298862671850424200540794034878907686752089367606496650940723102931958706396047297831595150460087013006601941619522499523176404712921948658169286736506443251648817897376766297018021546885631499013695811279851516722707966330916759724386415989809422317186490497160473330656942577340437365959507837586553274730466723331734726494640583429120554642105904472912452734071682689125864548842528988517040853873479508891294937679044319983366891401225375929422441287931160829151680740049956765085447811628514588923545285393334909582072352403922868654316789550128154339620913181271666328268390682773579345794251771970711123165101732347757031382795639165089723652303188106221375630454981207096484958990575860142881209592122395625311296910164405304748298566717981870860090110029052606999609788419595548284587289383780841315760689973721262487093994267207880750712180851717762603133323111696589727738677678608563288939651264718979459491663411054400745510664196689196127462782810189079955482091738473207397474220194242383730682019713609435013267927955784682104427343900790973311080065173345621809931021856791643135801381771699665249328639293335317625929992597516370561861584006916518686434159301543921044917203821987533613919389916855306155855680927062071517082525041003474026374565169037496458389439002764073831283802427839649431182405835097612019688892645450393297607393893174742658518707596457093058747701640429214388128823170936977362379992925105907713666443464917468464871742403738964117795105224444755650808917797970351573138164547887205493684140623951585469808376418980718491037651791706831783294392158330709109770205304392082605986218695267542423660333352766615474569788422794723716666465387373939353419045841729307425075426543877905937909158815814918099094463282432920730288875128908435613043874987521927330647765090068022503375266435721711174633493742810085147117996421132886066371447105704153982653569165435612580294180213443142795783316959937385608854155026887422098146227378449093194887189734170253074310001449973702901408177872780586574447518534314350370695159440234272675332932832579781914276228006327559344662634536478264693581775968356374135288628469266449137011807927956352047078575720161139545008777876729441505893493064890490738516945528286053172342933019392805124677885581902189247485142618201877923053551579599017750128442773584897164128430758004836883115517747236395102056314307095567174910510479792052875692148505197793891931345950457466312680059733106793168490842804820840241501346474920198307346809973444427753467400779461303480776480353936895702087407349320675720569033690834391523320364594377358406990642896944637655338567889071151567868572794179804825635087087120466086019594349703639488174728758739346464758755400627772574231445923433970354084178369093700150180418699438505694062046978346342076410513347822756643825869907295490387969451510010912431132874344860866911572993348819175338536171694936841483660544411494231728687802107118707993279296692507382206216249681609290598464193385204679345024080789115375439658147573959979266111401074186666529784563187338956951867120585956230402109293011818515945292128033668370307101544152265732776293664005012469298542877484449774192421362655425244481841374205756260021937445741567730255039353085843106244637724048191674352653933163170907225278432845355492818920591601679495461667344949299959665890168294098133283950546977292032796578624176138496589079438960243822458140032305619098963818827366190018682978251943650262333452775374789339776659638677667237579095008912822848650959830738299708743529516336048535940813365148839329091943407389928913812612706331661280150804269220293264696436326786496755883812659043772513980423812172884892981013921585968456427003264594814703932388922878118974927935769788762271294307390655947482992140865845619887139205090124121936900317195641671102805258519381052175962433076510340796811341971146342359488379420298739211207624018688405891057188888317397511261622431184674176236930976401032773357631433597314652834350523506136778214925201612376126163507341365311496076381241107377542943104817733147234850853354346544122400827725465861442103190949720961456556220765617230777323838328630951954152539337603262693812785567647166045293374218718163367447590443700250774020351256431127794743652104334394769468347481132764869168411411082513976526333532750985851506959469756500455396879403634820264243424730615793080428196939307181486339705857895346201549379210076702847858896864933161959925620080957510760549579400622988152470460155251315303054604409733746378777109952295602386276514512586494393527545201916879189846483922112979091631754170213498260898616786396698476299610130003197874826410561813428085988326523026507864384380665765717155997018854080914131892466251280226675143374753841550975062872949323951483639483462304705261129882511276790386950865929969983892550765704336036707479293885479885104252585200724498125277370075365492619363585808712623975803058008970079572277830541821965361918074720640287919981835853935461104598706076889730589152596853628529333550582264274489903323219092415793852176178877064869869321848153637783663183123691176628252982816917890826855667389347661239233740320327430807738438274656820063857709455117714321736014121416654382541584408007417262093064609823651761681173770648627053026265354631056046950320224635166083240066355495624911484806174492329350465115275819424302085500311916050680350316099859302206533443792225290543638451387204403632397744774412962081551251509417773029282668554137700888198707247140429535882201096472466346357145118697754716728423964313292560104791646499609527482287324786730979715885230553820671325389552707961199690513514616259249807732636138672500976060696257873972778317837117027000305834200823827080962297890620679779817551175546124220398600486214991512580377731841204831432907367783358903622852788062877936251567576881210198872690183421565987117569721167557062141314817283995822581115542935464825926346027843594022636404911189564724252580933126663633211372942709011051596092657257047807228600067738991410435289975580993324783587002881336878349100667875451224769161610564982931756426910429813058186751668519530778504671755476452555377589876596052643140640183361716788899046138431066976994190096454519425412783589614532269465504105875915774669349320224692458927738951277724695454635201318970150413449022044670453620470007214107163713928794588818789266421968633737534164425957827134651295684723772334141656223915611070144617951252976078388911285300162640380909234086926753387944701526665209780869330014371790864414108315757294645601532950273015873311363069622976892539068179103495109001842302012973264135338479448421592351779028338327332876698581864925969104159484665313394216203758483958482698874715084275442014426257687299887566626058840058141050995503175884060479497291780089075853011926628898289532434705554745493023877466220677756971805381284373267939769254965703358233700264297352194321347005562708305546978579253339905179567869412960822600629832382416001878221907807548848023926358289342298602511682614660886168059613262378790529866520012096969049241770476249195110019995347494343651378833729087815391786283176878467812733184181661734530617025175628230017642239797779382982228556303484792720935593358596229490218610435251075227608056648584502604979553264216630044080540902488545684812833943830139708186250414213160836784136296516027639851624250807762175756963804077805553644381647099207087393272592068651956230363912206531783200878416274902928340016338071593932321773716168379621439282551963121053757197804126567514165289213681721033564813585877853906486475688359669433277726997897337079366682455249262162639595126558233000433533272763190884404132484357985989375533171562613015116725536673140515271862243675258649426554202822639239498415802874161717833869257418302720216625319419995489868519708770639911562785020589900581114428004522910294725830374992172794700067810517046100803384765327931638862482381270387002521062541675070823052275605418955393480246083823056814007146342321568879297715243565464908723495117373995929871884886617517713165557942872702430834455496366813185402902202722694783261784357034150368930930940996240348495826159775358605064254848446369484662299141911817093905985590638257274483677644577090459889448456543132291991028728474564726010450728125061798978592908261338145124865090783914238503376850232181824475940186817929324264044975136979105380264907240876129717608324030542232870022873551146506375675141063761551483050330603442084149960534962100678438898713041893002388896877898516899312853284730090544816832774064708943914074465212528523638397580395069097928779316957414033613392762444659115527517688741189555945826844230405125184073564824189860145309495661171467846142171017044333131126599229149008991225780899518047101849141072234195254628822050656589680527577267586038514828930346876439573367898600544927688680170543371548852443002435815764967591416585280710024078217370813091825576101594716135587315575340045815491839448942773787358308697658010096433660573881695661698703505861804833983262649925836410071338320450039012470965550522765404243847381094215598709533710337624213902492952149865336273828142865856724250608962478606854148652940904438688569969382665475233511630539621762563846296344735596823537515186588284676136377841969566776576450918063086688214258546201149086377230075993545169004617321774694577274172610842309075209339668074074407685526998184654560613005137124673860880894195790497818548854800579364426483337148641598585790441050976262192566745151163438508263073023410969234986826276400339455495450578336747756527085973289714795646556158295670203692132680290327636243365369353018028356467223380620803146757144560108907383045778406971587746948680052328038500181485390745445837455435659297181370383292517361164739482302102408916450507525618477005175668124244949201988852827297106612354144277951541000342967200771288773993353668452543544739924763942105066153298864738307684949120178593065192557800404632583782327608052620274221707551140963476646057270807114546861571438132100046720701506137074395322683041055831034947875021857569114137327871137888632390873130133634575634318326474203348303656132260128942752176802662108063743055252944711115147358879673160423831857732079515710322712598815970606719707231652085336272016170516995132519501741905409859142331585872496583521032396413403203337983659087184780582616529606794894329459782158759758457218301820218207354445632534560442034750659157525202544800669390096635427784770968791461891171036721370715817589334778613214429465442115481033383497509917295798231345462208965723908539130642232181930286542146423564378285349232011713237393864953663088983988982198451450154097503905624432152638472952044619551745536623265507903565606648082115731172871612367649766708492247134173663026448866952040274137859772406852629119021618026776232981638436268610849301427491125776373137224243170159538289719805626889654290550370927509607145157123888473920327535293586260623627566588274758864592687800547025225190373924453640386107329489813160037471404405757784716703183608677796546059235521451688155904442015328219606849987711138109120184264045754118130629292245187898566925637820253648639841803289892584141301235265050838879083288386425672586558937587789872283708348337741682642004301385805988716215184817242582872137770004105193982319455597224113145876418890415819389826519603402068137909049013686468197665256709101867829587742278807318185026288449532067476024527676760937622472536796320654552230406220639162516331478956267918537115462001917043479398131701128340545287851907297805855016545243835978769795454264983248147752195443383113200334385163355904694147412812349355865127377429965466596300291704116597252698008497619844663792878727525147846051716997778941269280979302210962793591574774010091871741175373508982929466806694629884303317760641866137096551737229044837083118634992017718195227397969991856705535457236581380072870766759949059624584436582200900614623474067130271295006788156741694477325506527961636714642694504987947445081064097604744908232888464145195380487690513112884527008924416590931453307839591543920189002045967180279141669359484476587544519127251974921972850411797609824674313112470528101233850050334033822599893453574624227661213679919032581074790144888603436941312367464901110006432733395409713197700308804303583250983026533418485017140900835590247479287240438267744276891359836551803477934194091067421894602448067257369586447835727782080639430252021994600158848588059295417372565503801318895796615380869928903498925357951942200339129163074628989078053523849541101206099683308539516075502418876208842430890553499656055307476546612921832354910649014889766308570284590373424618715523694164089528970832065226778216897173182426096250938656133805163167374635731669085304686562273150036852034619433001175087911135675699303701616885210619916560252724483193251335354728478299467501028992432419910865837678421838578138385837541932518525642237910751856470164362922327469014394042322053025800279298692960719292224368645912499604078928167963357126605993980947844481936644792232997016001479702395742593762732115762808559870899131520219661750000496022196204788186778428651151875005162479314653623079187816985171981185738218338446993844148622788054575783189148486319567567168583402128276361515193538886512076647736318732374739232514811001415932175829252579470835387578781192785659415830212250942953346496896293396826957685435275402563153685945511722987074447910857796181461364131654428687976523870472842584078470258337840701654580405963190611974615923395202015928010589670000921760568394952495287972453479861549400778335712085576020619138093513736442146375070857338667949208923304789931925783056687105892743725369291118418279863382505633149766509898648046255951372423737364519826761311765239951251431255743453727130921198718716067777248741315702017626936311722867502696465774665035479812709161486954342939792341378311754373580161343153933283758737286963261407779516895512936784122017756386521344781501091197005400985534121229241527465347458498653799449427575406743617825457562779050458175533576539136962010199678582519269001266567724617120157192488658960506076066844178778456261121096406727355537096240789462153565309227021673128030568857191691246277094423253300286772361451634265626993702126135824716977311070791126096534225958389838159105858209081930896314592288005524255504039435011425790348739460933392250570976987547896287136495703163411530432391879494817118704739824626111607518078608850436636592478699987714789317163037668589635776523443039276136914844653736303110117421441619180729446097626479295507468651776246441473734494582113085516419643555952669762822048948058768043342602571447425342372042647806512877728350714216283908417353411608652173903573500275971474961399407199649096408722360925261370378889242491358962079063972928989452963956815918525016710185245817954667693502537052591977546336893011654107199562934692056172551770820617195851448777812125153348857702753800128749517490201233291578534723349224827920312493551171851864006472823912339349232912789390052680507642737009329875485364210296207090928326329236419351655779574745818508490858013441412509827385764605245651650084367132517761852198852906672133072087076231748517843491775314881611027307583345811338347884091910254105747554134769740916249036140514897985750124894875433939935340768197383939515581754831479143204717150835567908494636296272180979760595728160715223777910403291305229044934585893089439055858119772583013306670932215368069762291562644763461888219150718380927712156863178582840096118807473033448395920369143703716363942445851928967602539152414575926984653046243081480640872163519999562757490204376231407307658287320610160279784722715397167093943808829486946560546822426784123716531157505975076175471647986669265430828265923832904467886283315713020776226268411672556802772555476431230152375971785008585527652322616872237236413959177978450568062359245520270313803117934405818084598832301170413943402372786136165339086797447196199491022943262465027107169982919412850151233160729174109495923515044392451952441830530471078755346264788504846472165110723872099003066052788707599488199226344882947509879785188230553398915362061762332021767017135263532470789672400876915267998999761950980761609345074873788737414171908766263476640851179725688020313854467514554957459230725380097639811753172352316490570466587634181463476024293335978870823498527492567296070608601214961159245166472930295924125277513988666941612330326893458472016394411887871507899351057526578357604143767819300238982459521009464719311450281195655750253657942051951203079885619646152584877058415982200395655330286234841087494629341021332717587746556255099500009302929955164362130041329465492197173985549294586541159207923829252521423861645209483621243438986366508814737976092881598867493617605068623877982339477228536104504505175239940116868338947773019317173804722341479600915131465508094856552583992629033665780605339339251247144900885291265939407931024347401267367638887852127989052219771431903833549255196664626863792305999865167507259965685366987282436075824083771107841718179905815748697917642232035018742045664427223335913067258309838603560148876119805406525305842032840060021504431288064377278001197663185438239821233326431976590393235511840784049522912424833125505796561067768686475631593139066191033786805353309692879373979874240263743383711011588087873939891521489673095888601840666241742035121463101402861413732881192645811054673163134804563653924548986458553632454931728806222976727932918957127367215102184514839915661302443845146028949093624369533447048383140327940443108033378846973877358579617786703580350624492353809406786147977223801606396475024318905074569836573248711772609687457065873743271520251395132674674992308932771702530571385617947566173837861990833289034006171339316927009867216303246093197079361157463181782764984707178916089132190662103959510011795538260101546374215932671336204144954641653774727737378400696515429219074908494752300859081739400586019317719711270049291468010480932038020792673143606566638510188989174190766441945860806144795438893990813943201172003103786497482004680659069217540185634604293852499611912866888849298319853527374653943049846145240484652169283928927443178036765304072487705537000761382859752511017251496490370486383322010557756260178309316886868197084901166371497903106635945660957118248373584595376902207800320491782665174425683961287496987448223098084280930128857870176915821698275873837367443629983311404264495819467207397681076755410852859373646676784766022641761036462691867384778403518834511320838112822404176205488583388708966180400561293240592569552260315024035245471829397287820935141950074088296896810523107241367812869602649251417054011266509045759099427058624539531065508974833904087690420732747308578485375856203570665350555844203959041760583162366672477877744323681265710388898783267518256257111268709073272725358045931688762399193849184948175849904702634940762752274991730238138377913836353593184173327752949745897638711528501200762841698714728822868934149005488234447280628069794023866225622820405692944079655695075531597570733295728876215752129475775271563685767383901537453562506057486480322616875277739089245615037935581440703345923994981975966069247961615576273441564863703186208218285192852235521426104861493099278186757126749084494564732553640675136761207150302980181786499776509098715243042771785929141148435072583972239220546671624431159976870457484389180664788725440167009790920723366455611241644012792536977121743515139204510717557558898142779341528316874098917570265238643636157377822151683946283205859345621890020639950572835857210560164047878613428231286711329139434223872807304749541892270555093552288087164088579739493382975603990550682760918182592328995092250081555158392660803146340683311736093317704076997108037268118576363770327670876935564495103214085577287227338487944436357634616814871877095307640326660715960361516270637061404100778479011553020819663759621342297854671250768086275954670650260910783480811659639863966126251823074670505127321544333380876626993225624261780135971767738782911562839397172633048861107469349386270793707494632190641171842760224423188090946925944089658200213193245616754143922085190333199012565920024543036955311771200460056611072495380416587470275699542425619980895614945288278166371481685612033956784832110434924970497414848685978240155838924576471029618016932459056283609754738619810220932698768715722541363588528149944222159607829843558542092056260962334835643951154605627768697249087771049243588017524861302772866792813362568345054355947808224329673333848801379134512619596968711110948759868272809770184957676758613425384328176042488343429077007747403560684149948030159485281645665774696822410967058569012778656426617418470111548134488771024391420048927541803549216349466879707733530996795982445980043354790792664030457849974642743832430029262134780440136687125148596495363494541039726327521543373109144843540758237010446746177069634138687847117111076514634407080931257186453849319085769540425218438494195877141202224066190447968806229183859494699137492709691382124229183512291136083608975346067980742637168061846713534674814893411652220336879776413991539691358281450887394977071168660115375201890033195934138261909961860515086568294560144038344187569046449413307950781706620097949883054227326200997484135004439208742843566848273269998958637736140222920988100192740339256625507742275903678373690381769767672727903997677164082850264463011370633629463397740542861128634536165571014811222057982305938047413096837335597057880748908814088788249702337429463935818887094411205849987907010687586983367015560600164000527187037935116107702781079877863575574710939194561495322217268050981942248302641571185854354514931100361817599712456822000070247317098472447985700484956969692939961869730156514110364626876551702529303980854612617269006207035088579186171912603314596319682161676445845751940593245461797336571814209812945100239071966352182637891120530012782518269080631464059946841328869639683387541744820841905712008370304393127670647790607364844027300267079609881689985674686073520824080532214492529265362876802849023758576882031479293040972359646906330926811164937554668854021381118178334672850846376022507778178342056334125309411681296744670764408669441882183872098714526858948129459743629092451485713117043691225752021993310051436831833963185517403132018825573229836923558729489645196866958118975972823031971490221905590072780411691027034368653867582023523867493565308094204178516434298920244694495555511385853124813335672948141125858070805560099366605916420861566959670989524781746382680030455652936166082680290709367551357096286120836287267287289801308457515004901497983400090280715506561684891377203854089640878198601665983192348386173089232687773984819221754941856963419346607317555154333787988517001619305958066577316069415000181186824138777067869811695976813488667636246635284537101147791117875284546252322185763275440807998388062990704735473576603782060224375259798470194210044531460224486716811462665216058249603301139786080940304718665601841171592876986627133282943654143658181425294986624913427456799593868262467381271188006994254892176892373181756227294047662012985520139919567444111451164637171618507568823890851149048800610791406468698227505908984988045246737429514532525654156339596995619173325005109104877868086802708255024477154222919618463484540884915438436086086970312994407515739826926084795422852531918427726463022879827501417577321321565732892842335165240234071148959572120970363679689153202697734148384405819799016535149225956999464501863621681874530861610021414017090880959209145123260702778292201054497392279227996266070816654385998745976681508601277872504677519566684163051754299078610968362896310498974320283398489077237782777431294288997525714720684517484394582847253258361156461045447070316292943944278026703812546577717668277742481713321097787648427029494495114164658307838664542850933428854098948877565708381909157721772234704351501109892620882573740635549460614361711377550863281228585286921000089186801355004989394859649895224296700343512273753656763317702049866355540846974923128479707976106709111527954347765058996572307681923903372981153724456515638114133254696784788948765319770458834425691150632587032906086106214873933472110004778010843135622121301409110927836471039792841606077286000684235976711035855483853666667335902405424693062497387863505190715143502094638769950935525596731260937083645877361387784812540814131707592117456630657790340763918090149296413386242889535222529487463205139464039644560334515103821142801258222274672895998897120009676401109537193850192841144736002413003781241453494194359673619260562838193872192526496049117666127183319865493012196007139733999435436637434807575598651637013763929434614858401275434516918461943182269506918096677401349530290139362167389146084560303690345189946290958508366891140326762122100271237402238404307499239818312566889133812422366689116522474676626289801667854677080588872759251769852530564795477233434873504306741141109553765982532407950066355818937042021676257240245402729150361779133164026738483431760592449700915028598650033008004476458799291650478864333191953409820450553499645433311365570001782291525254933444200381728409339902701118012440403614591053967372624756939172583016100993143821950964626316743685006700273034316479771554543345529625824424391925238451286997097842334699934940004188378138605592216541374710785232954148409051053867719302447134609991166865628933738058558556160170601963350976022894275810064202975705163476020186212708109175802637627455266905287614371132470942803133316338103999549801216381285994705782540601230456519070863742341602478211826566507830084235031396205405646883383786981029641896109577196526541160428850928049586534430994530566206503507201700671097815154885616733654733286994526601398020578470606000916041225614393405192937228958497948622825937711472433610055055900099231813596053838006000774729900502413989466099182939902146844320911215676577086578617621725579875766747414990085412802740167386691546432055690769680640198259857887292515419115766872130586758235224359978198802211697198870131898796122870780644258043718805330135330109446115327366176034291975429321198725957615498027853502964656056215897563962994639906577866794893470183304420250690923122249149388938523585665900595780606647265183616294862413130985561241940038285395789297094445678865465103498576598266925532216569288945300909920896119625795631611791898049587911804604595238755127369517068725896166845122922225237698093056337309941304807447966410793276175255267882135416025137532099125093684080301160073673797126703055020682402121966439413884682075517465842217456253184098998752104585937909011245037156074223925060331754508201043311855536984874416202669530147160352175653540536647021860330371193129672562482409875888123346541899365614160484159215218660240445820913991688472777491450308634933376312310568045080059652526017752644204130874078115628833810465342976426467342270873168617066138615213038503760460814866165791271202358442776343246026163801548496794848082103706605930060301540793594975915109597890866249342312396704807883803406157902817592154841103768392179663090298481571362891145389430487416120315502758616784008091206375046791466878187674960346030012776633585271298428658678930590902598276564237885122855460722482896095963992711030868532132605640866768152681932416216474774554427935411352471013967141723531145073951781272860254989512310853989294184865815551486805715208201769865590010151896085814431650568041958839422594912958766550318788029854339885604958322957300416320371988330286100002610731817972246754140754982403289161572765205654250802296253739746153286674280082910809464066396023542973605774347801682444865719555631150471201019924431470840224915625061403139767302293245578745842597370822794661282309998281107803565293334830360531427252539926390731851085958815332937073771373028560923843595077200428463075782458352286940545389617394659806781469336971569244432416685445494483474495434104229558275508120219332953525439727066703315244443358660704290751707460929220211785822147369921658236464232199459638759505463653226829161367216819919843874813694971149211162049777368625600652510392408980508535744958547629685177686101365140732394401354116205269823438501358243024197019233649363625895083853985024271228964600365388713443787232212226401146849628266238658098802505954098515701619743629122336304218093393390948668996760106520976022912170730644042539933476200279583792091739411639822274972439720283180949081518811791521923414461854126630441284629702571080561948009679280296013880400541635536937917241788715059523900285283056707730469997510273283029414700956810831858294238741126407184123798385429144492349891854090631910364749887090091682477442538217590775383789236559087238706773887619037678724915974640720068332410503587679674806302621977661865389826717592398021914964957378050120373817920527405192033333240634227722198133907656279048022419396433606919133166997022443330193116302173283826053545356387547650983850525763125535371550151522913297256968322237838722962142349290704121822200080333359880228891344053784444793909608465924476602417393959827061938792127293216388860650254839563583923217399058097751854972694265170149718399805750750431412645550924845177556789542890655977787208802206165701915068150795496752896610021729467563623236570834335513642509401779341527865540691668703928472384236563156240315312840165801785225813314882591675964771932241664917033277476633790899814234692472038424054885064519513464417932941217319826569459393335954870371055408923304483449616962302531363030388580061223617610399884727945978480000966735744718913995585332891985848465955420421063952019618046500744641688467679819537773418522081535918655990483600128019331110824649521481801342412887524991579916223769645692539170204829849798035588288898276915571837577620373707664131207288737552409389203919876182026133539961997257334680466199722642284660884966658570288528327074028828344801188405195459990820202128605115214534220350828045076678329934386325374467926538385040960649842750083130054479473910331269913632181089805158318281968746962999941626320409250472090099421723242364444739118102701750995689745221881187892658664008418328477423551518349875874869414410784887193572363854533742167293102901037216248006550913197693556995023572137599543835829541534935732852311614042740356591125480634901213615670525934501367724569157328220019448220284707265439087531530859844363961878974866737788861194759068575340836924944518224156217513843476224894828369415280384735990797876192658044853214276011772473477945581410675833053823231367174413673405468663869176051219712745815868096154165829727673174807218480898510100298997056166511033012796192756508307623283586118157391929068168458394680066786095981060715018817380677204158927527755644317988885160615759657412951873762942470768696965634728409382275751564245730578757091421075850830130665619219446630204633230830794173317966498628689290416491110783601040481287282504578744982571040761375389085954786009233237357421057547156951602023536722865198236799356736355842663916749939245101028147314733261133494058462583388763036486918555137778126805559024117639806990728724057015470633408241026666052533743566745592275958761196413673174042633202143281951232945107820187248200155390842717716033028860183441743549001938600601560026551847977424093069905511212461452543554214177361116321376937109288012929802612617660303451191990829170770588258995311394385378653930765235103642547130898130415634080941852199804854928337038769533381764154839487291772863938539143838139193725940538779072152255397950016912860411470536648364233746573801926689363110190436906206649863255214479300356586056659125064327247992748711045176010726551545742723656638006258813559318508135037430806218045599088217194927198086230275253039533715553005449278383956752728002504659940177112348101727735434442602989888967780373455242205876778891722939140844947037252604530315766220175608768383445476575499185098078463484925356105966361875983382907421531382379688444291202700114925127293903885636392798759490377632763101767625380651734270777939536845972093899978626108612444675698493685826690013867967569802859650919065751292718117228676404555126336663840474299306941321712073508897096698281160238780402333938160083024616257525291110179848314554916001693747942562632500141659183215749102089282991575196206765537487671137557392884663021194816813366327235887912342125578275736611084692264898381178191714165981647907496837973044295182781170646963216233577863817142847435561845853634939048919688693386182347261102337575653228835675437187221915132174159022456484629196500350219775806157567236415458569172605079282567378303975279364443210455983937635583774936807488138790660131539616880656913270837623582302631597280528173221374575310072457313018563109811964008276417688854938641929627553087213765919695966677728984997566159072607643320274477624523422089149095242397938955629051244920648412756496354646856500243278538794887378595959832569317483936425480584470187327099838810806037850917479530287836441210058508852558106031705961109117014745356541351749577766716821137537946325649149402164453409231828269953662425510180837203751398694332943273336052526857138241994514519233225374394873306267073574620141523098383799403356770352283164271351702242976694012947955103922955352662726645008491613562021561699080287423033178533602902145139900855763028671072984895859191389168962456127173958108590833182320707434735624618750409736386807042131210720446403104996820774964156234147358135238043975761842683265136705567991423212360983982009205603895191135334299067827875781868940119805315482068996273593730145376383425357782720046120998408172972338209637516388984109119115832669950167443988051150670578345179321793955786028944150054790180388790030268132280412438458954935238300324730149661358328061173967838471670218574458793802916376497103698019630349205508261938043943248466429747693746974905078349944017251702742126766307714834233436888282382003087957863964664862807001895036858384741205915790040655173374808564794496035380870648609651331004570103388778557071660445805966316449244327291319048159236481401606813168679179173250474045158854693382285545368812074293651684112791568873245531603991610800472470951665024178621710092904540410730081224992638957517994259001639166675948493490058426308456585011161782805667475936494508662061663809714895899973001115320942433796470620680056668727045892854248513259574290181421342970457075756120065162788367406611027555646567967907934885293975809607227211334164768901979564441746332208950657753096778716573175247652596299312145430081463823005935530968791594405252383351229778309695751265665394989557466760241098475865215617601058148351849172390951494895576218733950269808963911917999695329154174993428145519687338996070662574443613131558696864495175255453712543747571812866658466227381413990488664275514170269402006846518253261450357521720667299315026329344557712289500045692732687419652955042168180075710342992561902235636540488596621792068164659637323782087463479205231708003291496870499903630715240247886996629326708668602627179250612196630472037491392043592469412976377252816297408222839736503550755946891002001619528974856458054416362647097466748056936446134240529732379470781741601664872870838021101008248464589484223489310167361500446712945733125730442310108324042777946120225340964951312596468001467421219217731222477608722649320247990469452077810843665521793644054561339704362423274137033873463441355668415454363073528690672576850581040425815095773259816987806632956179060648324936570507139118510987789698275906539290515548596907964677324641601370409353802907221212593376939554168943866082699072137151415416696021755064857883972727560497009525116902396100292774252909920406924579670721820791669370188394846270157545338957243760242857603332327831605196565016590551602092702791070111081385589097848863569275255984407510093273456641917749442755530072078070631433566101135061011171771374510109873495572324387959863766248078257056620280055169924349193304116432548796869568650209799611605264161109897907307673248247594680591532874202178917979047438996850329462151339447521260083604990489609493246775807808821272595334849531304191864367430718628066335634499572972803070846682683799148531362979845015319605831078883505390866391732514311500547678346377660124695519258773110579744985127795063290037202994916099301969954904073725270404187687911688754105586250554125858791564996231422153888584450049456542675630129850129547275317412877289451332633198629355519163677055458277657643120670640404340400401416358213304419759897643209195826135540423540818516613475581386428866119305279091007935236944815589530277317464681322610581456207385757559758622334352162619969346283583837019770167903667989160886400773020808185894263801833746312288511322246570516178101929488438699540813256824430795224639422059690245934310032814153029376377143445380383778481190853432508372105499407128707775481040046940610978437390899609559990324519806312035708022764588681461647894636174816446693593420882362730876211569351976653968934134731505129383836155117289418842735365998828263298168299128529887927113630950659662852763420806867608620575183441282447356956328802136718311189127371316888972296656830693170711375463199341719300162963754410494416415272059677652847232926477906426306477359950371421600401806815260961833381689733194567215873859714712409338722753793112793265513558985442231445882343421316113241874485311982675650620096078820462289910474703906799049547011564371924485690708768803237016310010547149516851192779800543962721884993944752924545706600325718517305424370395582914569467390328569094042506126272515499220117902697459512940892801878833088551701620006619044674947689249288773873498275657462061774578941439145319138019133700623743206281788447362080529983470014062158757428138498250692110055081525858703649390980105663628225787978947230718699579763334748417376633736451355271328085858781967455658815938273567120420911515017466039065935319068765254161305122570645099589350581950815524852760933968436524275091005620411375447079176989253596630031204752858841875073557879545932424942885172975632467336143220728814707378950785567774442579128170958221811645876737820104116170257817594756437455561593000743851029646608074045774441567867316229583630734697528010197819172685422069378896521473906541607396479434651094178868788474727081523277752513119843620205521850209323741184752531695731434081300444872154561635205266837134243886770413923817937239241075072937419935817882450143756060847818039856185154910963947311810849713241589440934772628201106881181390445595920969108299424513372401198475171862612575365034037128914677120337713112769153010416660740521020072619979035434883760983058481891758641891449426717415754005445042255616759055413303050671365704262634247835851322442480533937745519203925804283237169071855519215319138729521800908589610467433426860455344056812639796872621506453512885142102860979337568925381970524414360261756359034953800922850744560382521649725835289537154114433954148498125777245047333440261903990408029862687613503403722839320758217820331990674067322788735851571946341486337754003124031600352443174585378743519873621523072027880909454310685510872627927037415890620877907960511010924745621362468489812136170965235050679700500413069670314053033474744872414897621178024553922816067497030670027934273388267188081351280157548199451762103530378386602887419869382993932913588772434932895867903401769798254430443375772498508578612008373968314113597737699261012135912191051793514789268486465379338734984909902987437874997809184836525646591416313335388985643597751013196369565601599227365416573627220108559822363351488781851757149151492000246015512083904669425888818137324871258105401915934492742714475295767284267634384817166092811342153683912259393290288064713028263017755787614097806846829668371975379132862189292785562066570743847748845983335987653225663908824345233973750248599903425142726245054682737494507090211671647718473201286598693678027739603210042078110167293084596753699745432810542500179841991453476745433808260358292299176869377891707455961611257212715621570860890517664301843973536581379749573351724922187876964197910646025866317671915141573636274919487931029778122247984466127065007923268436448893485442172394274798483791489075252461483691474606412296413179654543340552156773803411773275373758885924421863701761367917812267923913601627705409611655855032564659044418708037265918898905590151956570582417178699264822151735106754654862070478509904664901134222678299355132143372874076464356771723528340997929508615603776125749960055834144628917205821716961246581371724280513212180830843605419520499473081514450713670520027903673011878607192410002889121246910439166911713007705174175466082121630434652584877073225115438956953373088866491313497143595612217129277307842766491957456630143292195538547433509051017193828734734381018976547986332633826775478775025340309807933421350282069157522337361350643732713998935559223692161969429440088336073460891927090142736452537471538694558496380743596151233710169610069729038533890554207039483443346165550509445117212877385516831731347019373606565391059101187787574638940315046981375587316741840607301944836434268759428317159883402600102333774685192328015321444661780335713986406598387661848014548693849274060321756900216866963220254854479715783484292537264601621962758042723067227727973665705017490344543946974765623673794030158251356676660759063747884303272773487591115728911963852747461993227095850750338290662472493936456687304840248544147223841461328351007061615071704222613260865840238701991179928023759059086226299367457411238453324793405899778271093126838258680457718200745584673354737423557607194127305980244751550693313010656487910723796503722553555820321822052599333449397244352437813612725144726681163779652231635539219001424813553836999878246749834988786953255100694188904646308679821487857323543933364142597930703900667858424090143808154824983143056728806201997056511731363704202195534476257397178639715237395584154919052574280065855847316822442631317071885283302771211710767414040051387728050897897840792403372383766415943827735295706653619114881657039398097597669741393414089590221762000206216244634423254502057948358933609654086822464994509159888441603950746871790889056155654169225262278115610664362124901538136757339109552138902626450585237048315813744215529767810466654901798503377575200556885579610033378627578375828967878442652530131488154332820147731676071552638611955545854841925608050177123050611761999297941516633868173500791716942400406490161035850482843212968924132902192893679712855493030648117123023365030413127259222555832197632666521275956730543706054245026142058847705082606177875008827235043357060503066256101342007184969428836917179438207922376934558695750457589198730966201395038407288559262895353922217163796954374636490478469071586498478887102113507943531020820437609679333915527666341931655440952647749959298707554603610630872741049866717219276071057096783612766883053428916423195980087077185844713299423202707694988846548894461563108473342295607600592761157320205755713133910310831290495710533138794566597385963505702247646979727417412350289023050325820603717664433729899292948465308912128084663333068483078053499216185326385397235004667630375779361336222578574391823773107181435277062249614045439207323351881663203152844361906196845095628642226859986694430214148843486820866256541779721714075585116653863988006649121688520392105599695575861200553957302041427217675044414141536577406329298543986705415950813419430139471781528933116140397671635001735516185425295270702997569452517781401417121684894348074854154265949148991915492469084783684883344794567317238530760200162644939946063778644892985737939490261877511665527003340925195270455877058179022940638631461481645524166061956227054662119461426762623273986391470589246996100370569340834987570799200866497392788021671467669347260539292892704691543531686922784054892089850286847853364475622417529788148767705580838441274895643430171396659317513936017979375500802693836142025523490100463102747348505831024290643298925443659456201980027737738626389203094760367531812604926750783501924527582502602655705321863716696620191403953100376031252261364682396711534625950716048209184630748715421746583886138205236855606656858474206251767589950397970359556710948287210216920806542478660655373317301915748745006981360920965305145813345462071904243656423198476700627832961043668625287347482688324765238608423933328597876072581590343403604056940190626436797772668347687239667749517716753286762792833454069564962605781224130926789234700478095921447480890916117860303470190874712970071451061130915319477256169925560237562790806174859587198081947399847065386132906897598542808721979827384745056638301011051525129318869669795398242253272502948907403983595737089397706136936091540710374836945506736507279154362844784302753512754635703823733619547113125972792550938923909884582076133141742438969346506046965928541609116370974587161366754819783499158091106170339321362116858868386978269520087317657430259629892565125903720126895360678644142370085926722250971829133306385080186771724738242095097021976279800488171956975593214107829060483349689759586047700213055320165088581280136786387588693901554421964917041330171836746946484054258506830006117228621779375747963355518478126730849359028628751442328127241804187480447974228393176872998054820411146796176983237236060953975861316156816322912957858930444291655627681283543114266988054860178121310638539302092100807979327298056920168402105641857954581019073310627232603269752719749336714746989191604712536366745392347746460977219657253696538249256837057934075153105866648918390229035039756716243945074737178388508458823660173671733105226374314124884222231236138964848800907072574733539443885430274889985107321509860245514284214236002068988144708594531153293725470690338808810882806016538875976189688728080548812833222914057648602251098253275039909585576474006541854862985841151122638604884041972974584725547949435825630175666507740626253401980093071213619343108769312622825064445412415685351013457659597154617751999270907301755101253524671915286236214725206012706964693276849271635836779650738341915736229008545688447739935701249707361666005822711163836122705403050255702130476581375733423140960985737476165042125615605347658505838814176215024712250647889780675399261112523867940348230028869895830348768350002286257681053706118369208024432107816406688100289252526309638541074638638570594209731330495707662246359033445760900072199580491246778208038911704327132491363444257889534582704409564018573243351329016466920686471311554986477619729053976198525858420529412931548473403271383270067667632579174418523891680364057186591402672150013494882702077012197572371347819477368624313574168892393286359108917281274141798908102875015364088142306693097924134076368096426135931545211665786619554597699551879399341000534868356154960162645491615156616646210434448138558571829919036967033866169414724960829008661261956036719901675761402944859371617099578468649274356338276167547313949992910048270074054464775166514620622862811349238321931841827636555627191922551685743919186556126639509983309639176994813115786195637425639484918378726751183460103670215325003935746443226840924003269197753899709116707149520585669156914356211693431987181025640072422903143534040061064719535479163985544094877544661853453543030376221041236069954979365948695667832670456876032625606876334937529033628587129181817986627729408219588385070326423086280847359092096840900967914599413312299296670411703678743865785266886807362864458753345261219932706248831841143833386689754175993175053037066605482956176582277890904850890452087604243753293592659914296829583154115753649599707555117642711375366140240374300183930996134567843657133739342451570005217033011850771029123840929282221108395156556842977776747837116098080118791483048992871916382690535359622290396031307484351625481688004064028937129617030239329411278831136000043887259913858330436592097735460062221866460750887792997159972028022380838363915878092158276647267216814298892708771688427616478994853584191762422042423259401202822069976795031283326743106658115481723160744012384802935597146386306977383808484459340686679181778425889052371699090321924277350806096247730707406534883345064315717146018359722256805465277652231826629254197057418768117889595896317832502633498789638107691372645561654981084086495865120996392854981475264015410717478044737403093172683291586303088682157453469734318625396256731101384323335006445248431878374862337929020852052220949639772527326588609430276126553740132904103798067982978168899788857074457483693103845167659227867883155334539182058980240059854273885667099313634250397936714635518306883661634217599192664190350086536891167268504720249903980533667302362732087960802634094399585783011864526540315966275774517913463773030731933813957927965675871296195497417463097469188862246853046444122529812163371498132967745349234111111841760963688768735154005873546205604058662603359241688644655964637619053696904694394494045894933312672369647406292433221957809453007942763634087197913061340530857498580681529567258413527241844865402180616649915088266688927449842597001017071333402016949347529838203694068667494831059714116553025448883423972883924014227672927152682023030679809061264917633968333910166049778780298432642798637203028577124989669455789573991832768592067483218968612088756511660845160175929804414233721793588636695142162292679659567652856593296656192318192810979293392743117606292676131682075000151098111839347566378877389178148021295840395842583634223975843759941142151102303230925671352179009454362315564259258237969098749215799962304013006803610431802171626316815839176504220790938335751887331845345224481594097216745837350140364460855619394182481278496391449530263594875595439974203379686671970545175319115568075272518225733838973758495004265381296796509118767897881636882888205563465275005297162359345483216835520210934144364284533874878857529881032083422669510464047626583356134533435264806994961655967689233932136287143581873346781765445306738466045958852072116111520062495841822965768752505145615504074871916397789576938595679441882467106693566179127305109301621312657386984804797084660388633344697815509057701993570608918621018356933881184397090492079518917446232195880398732908177817347209088824940945790680078468990945703369598755425016134589822218245460611384749226160323576006182654359973895489759422856837935739371017180439345739880899869025940712566534922277146416587797905412808691585223764576346254409539293906910413055142666333402457349822540763895179542898967541754808313083823030520603692977534370721735821427704429163059829673804181020508257359948179755897705461081068610558108145265522713692538687249526630438763338637391357135644386997886221754700969425725303179770807666077765369270672885855356573282028531546783352854791405456489358692228011823457071967068494788487899546064470214859749988193227835177053975333981566523046462114440693621079676216946186764446479594903441253828842072640073058403493167302171806538372965291421510687718442634087477470307733286148881161764944193498185125594102650826013633547507476525615898251944774277573640944949466062883304323070866396162322871764068804428033405506133531670014522031359560072265862029945986859554551546803224041103774744435870127520818726023631558566238575929661873747477590856760292262629827970678939400525239616930332849324025755703664459057279614632308457620606804712167901218777493892312223630390438959037805814300972932314803034390198542797521883629352859474701585479412740699154394152277067246188230750411748327836710397062097782449123603927930115890382122005847969994811768631806257458189092542334448486987645637505974106637106886466633068708454563646812115366000422160439422176094470896791155539792680898311578738725798621313757971067230979588559924482184610712509447204912624462565928797782070181648806121524861140771828148068040436804266658297135770242356066040585024263223374506023853071249548467673288736913195754215719794787179260953067155033417360215599927423867644596456971481219597938841166664244713537770898692712794005871882824356621110969237841821092254566267223133957598111754839053587572721636094872113775591667599925694079410649483526830316870192003826818513495661470385558604524689730758761987126171693496504669588082723697564306214319431225186526276328376292419886702301569105673950592421598284804691999805339682239425394081458667964743936915992024561235512547715012843960747347466075803513593694921786021391649036683439739378141361351943538548712585008148042724412355358024737355985326103616877753288854924648096982760303595395589631538975489410128917575840102330957153204257411615553808755180290929075357113335082720311903797476552968571514672173423752880773334452072596936607389017265338527727073846123756483600180861333630511655555151177548681443959953790456618983133815152148350844290360502040152828684815508292318765301519256348787820625117760661106600254934845695769663527395590584598598477200749694505044726628601138856500254714910991059079173559397273803894702215018871031200465062965936583999701282630444152567863063815122163117784339473858449746421232021049967708092932333828712883207330786054690642652604331567355462492156511200676312865212672922202888692982183765471016644793542849881415420183729157673175039760617703955234927614766836610825605933971295324429231203623724992657939799306994575186129586081042025070023005388779422518782168014910602132575671871374114711250749927630509780992039052464931505340069230087753921887085221238072874129844927486960979246955583346259598574123114359086704492882309768740408359598037008396241850097394992769537447129880603538137035579475616535799816964974002406388971711099560957793217925174687711227147816118186661283289658601591197590946239370075760402003893563480390304482971560354590362362028968764257209527758732733005416272075923203858843780755619793200812973287825734628371777533548989072004918525128298007210329212387161237992929277260458027266743605761070992700910184333994544987824926550443145063072250831219114648870204440175363288243802714113825021768246265752367358924229826860319289181615591753601137369376172352496417534443317517792556539016678748040309115378712077011915690518516601119719823000396871666812331512665984398031684883305291912566436977243957591723043902206443333518153027822199146913980460275602079688641103132675443901892259681069519427899047347521737087576691183898505424504240065908032897169403362763359768818689137481785515053393223369940691762864742867095521945244454165345947063197905021622509967419884568863142372415358024924464630038142112866140298324118367736128034957353159628185949093958110920339291676481873528380425674909831340908430650427827773487423376796038932350902376448520519454495887945623818244890147639758858766902207413120320519881110433393407297593512021736367295968427662008623378780914490181575277176739222757814778909214327443159635638002201713636823890740363538753262469688524664557815105773462375654273571325201469538330222745353897245185331778936143007916528119227871093042205244739208778089111562912375368260693942350233314887186297427012035827042856681265219931088776604082095644409302662877248367880905173626475230802638819236002870548070031340708726448954423622992302864602977620839165815707565370876525075582888316189030520497497497034289402580576003315777454077548022856389876305740258783646880883197864897765129920808236213633604752375372533332627338673234858732871150527133570743941955988618302949081188788943787179346398203410766265016150306659344001713598355613335032361902339659550622890764573906342858607291160183161084499834772937402536030020139154388856762238659205278705588275200819331591358213200190089476838404414349277943434687151800709085454477747305686801054527993352652106161658800299817281652030333506411736884703876108619935609173508793596655166308230956910408789644495847416901942938635634390301994238111929633356492849991244209617454154081646177133448501039383523950963804439301518323439429433513948593946503892136916019802913895358576193194388560595176058674504345205441123033160072080450011811209024187122678800492070332809115530224571249391791671927158103990759633297911699890474906589675278935943615051936548677745038679610615548629523150561175752048661723675565630223807441661270209855039964309532791622459991154160353285127982002997132993801899774118283253895459221566486672723330145134565544068974465110083083843385739716133017186867559868447999217160318219642403331640490192341990664108014476667838027370635698343786833456306778368695472838037956766844225714150281152720531511984081145651448433999847200852242331495580779172250180748435037551406037951187299254980590427575629780894821142698271795575289691626666252062686928355378528238577875217379393821196982017524675684517910190232137095521802123658530079122543728343396443235070814453784904367391515324105917339739205464510393974095242936785562243622239278017184471807473653299958202568330107402880481365046569774757520213460685705151823871356732199845400412688281634203309831813424298740345832463305853028371417207701012055640464895675724612897840464840100185253490416372313681813025024153453854229794840491860240051832717967655952369679251435844275626780035233493908312423837672713350835409301172059429906924652357319500264697255253792663063236317213756594007764975713032739584559726573938297937446112527047975900118990244291963428332978544752348754141413504514544779115949087670457895154257217745555580336091753800490271626157443556169887799551485655682798486349200415622422427874252116890804033157872061531056673648924386655541189323499010220591306066537524945283721840683369206258565365723392362389749544209515171530692574224491705887592713555861506535133350832136260506719116370291741441628886719722434084755270326104360555112247398573456034823577761803113863270110400711612202931957066846785125810517713341342078697611939281712554593604075684688218711344214681096253195025504285296872079921170798764024088757328834751703466000099315425625282989119104380494084711040970311433034880206169265431260963450542559257981262609861475143876142191521897989239040827108722049631510001352545367344361896680275673454224372958722602725157865833193342016703656414061810828623338970879426750207743512979329253235470762150832092495331866592274464103026490554197812005930498721913817017493413794037957873459368364996288129196062495459131050676007129612567856604829084333292682214279298015296643130989957959220098091800327853328851707482289143749295429687357786315376926720922328494398472211654633305773218218263053842491786915772382287807755988344091978069626361645480348986327640173982114762437776760404405450791308791122181514216364997277086611070164470734973403296484798434014223866465254909149998768445474988941828174449456031583066800115788575171540808393370251931591708828906203597935642274238292523791410255741474801960095077243968466766718037978595106877773043875789528762218864039701512983314973772339980009872773698528204268568918187563896520813094535967883552974665095673548631663055017527979914254460320774454564395997341802391229092791623944009872791595416812698040141398790258221848188606288685621208166728658344740667476659912880324287445258808628781586840482146170359346441557212176468816489502676007631026508911533481547223744688610941620125359568665606584566773620493436913423842727970585899689223833669568939212980611581479658676196659040153220416394167606927568371915204482160894284573551970499889674140417576716023121236065160399046029567556867607427864141676076760965414497503744838365280829275700470318381166024431510456472634341775160889879799556832977895603411656892398545614572761070631799539263654423856361651751404801089663837251832269102646332338305274323225580796232931677740994130356849374217903429491540334874277734544374346366841476268295217340621129163524794810745342061769220735461098075474721844945932570052887553148871098110514147230677474581097077932536352824819972016592041706745500796385953184364074877760078725718862674049159714081108970181075537318361408773029105183857744526041019970082227407567438861470463261154443564161561182286666303855544951965919971262064631599328396560479814203968287608554718357220075908574417331543569785160375106920731620408277858877994992604810444147466737521644895517848833476947310690487831099100572568234936120171473559476287389148514778951783551768672590313044617006543168568442404514411374657409854137818879568153830243525660311078665468921762886001063665278120080375025332915658552935049999138406718244976037208463468913079072640720693117177119888648876569583766131344295923405891432083275173729991875723421489676100100754972694875789298254585047942248414068795457369516541335679607371001242042722209368760744247480534768252234522986008834992366407910346554641235794579794974393698776658743574727730205630544456901668527335073586263123434350152822573391601508793928940776838836795539354077628579994977016065399784125001463912267020966167061188787260990210440492756881240711874141191986290083768104837254875911259453695625445969197601644384959988803980094825009114470123428388091876846854513674454648808883670998513211328240998000224513466636449516469950641352154311931044477631051305818165978674723067641709378235349881465485977594916379305600162911070246404331837061097066823776414364777666629267042383453228084350875103110485186885641960826011141455779555503710448293582722291691247335168314791071659315094016542415713114047298412352424746653457705277389940565078846380781445355774842848975956805311566613288686377043477669075789879276616825721813439028914447468921304657978352776751589376062344431194498710009633503771516299064903180022730718087497956188687432689170365100657417064300805164842512626027122875125313520802531074020622304638715971522566413533419161910243008642799879154098787628347712543904747021765682638720613780830869121869989520546015283071059485693099847192365036999614658214371698269812551142744798642275838708698646131178168107153719619461509491770950105757411458126947567137835893831150211444829946998110849032943304462973659456952688092745229172272692124969438059217501417694323020242035180855709193382679538658714724439141407216109315614050858615401719116911266076600334282744596292974014382267177215801047692720650084064278025481423532886062732709480243220097473784034885323419312995545791125823033435348661412161853260103271332425297928644527962805734244326572494729638843697087349278927109335195163805203660128461572935678998215144793300470409995337041310112414564751753508524895781080932949433680924946434596071811143508721578620920591801998667465847462527076826159434361678293602989612813422339095616644776265140855413028557348382292659993485789572740256742978350287920247900585208447336676982273524242709590584447748327032009435170172318398005926450662602283804818563889502490904850293326658268678017021881511417718478516004716894351372162607942393178956459560036261889537676663197607363075257704724097078766207863267590169562983402014985767168548935440166157129287614442374844854394606647911384882616632635060252514633921508884897948011119532786073070628819656813768709870170435426269490547603926267753119381669151068269294016026764090217648327033448103516071214145002947809535339513995958170448281448747682906822602769928412663213390128845157566748706746111542237902794566698859915441580843945940852853520884518635027603175195365922879772686050383432521741266283397194594882306543194433962185844301817419980273682869448874877269417510909043351530062318854764542924457386070749612582680571353056095860776533682114900792469351541797785866532913634387563023893417377559194232267022974289670770712361459075489059006942799563929671312523919234869083140330087272820774286254504323440754910044178644744747690326740087328388035815194775168185135959838034759080965393968865940818768223101313185095845711271115234054806544748283222322994314777335880042623632979005805689039035423478753959212290205837917032928877535587345538597229627441661112436635025954605369738580446650760884000937322273307728693957554804432636559723535835995096803250892627181008303623057472930906899982586702670185717178448750900566225157196172486069251695580618694973027547284376231740261930356533803088576335468369498059130263020459088742844888868518698642622230248158083653916126034566500750392719242529349664116734626453228378946823806411681464380958623956656168171130005654174435699304437991327727620936896824016532824674151962095095925759029892317390162538398500784451446040913697945619325291439859129126677100315413172727601476981868096621045848022716579750941275996078789871599787675042965755912742894299291503263083142710899452981118005817700587490913298846624478098222637404335301065019735023873558497512545802972936296484300703234004270418460945785748802899232361234356411244383997077635188149984450058304121411400381034809733957444416388400992352557331877099982535352149590126767848914408261590465931665223432885604120893939175345320510153705562090161908226868287223899716728882468455100081266777322020212852540148917963289603822544635166209480227467199702067491748436016277524612910054538774103657118960836369257651286931673139731652534654276317582553885797418499534365651796632631090211475300100406359466736504498641398361865309277339298876272550888350762972281350044240508440408838900641534063022913191419335900030999556649467171669620807716066122523938038746372044124666801028137201693840389704205428181400985467394856601912623785952681302011665768324452466946442932174071092052686315955533770470391553412350937143669202200728412363327683326118394257490317542559138771139099639058171161502594495688186916942217668890508678306105635264562644003286134553469925988206698139201410463200003494522541543553630157986144779317338208084714554281525439411039094142215341257907910093461104311184063930892415785379383219296886809814835474494765972561913428107497768963545593181450480962927166838484731999878262314012885288963443781986024403843680039407921660513402868227174228208098892144107101250259937055981510545757878065586111235609678681732545747951816144400103948848996568941904638276914724520812053289670987121219178800486425564137043615194253104437654384967654996788627669919967787447187650940439852813003901810806607878653817758972111926249352322550679859621864130218455735518661999474937152873726197105789718687634660447038164946294239400124897769663093855126516724340396099778027143523924787962517548183565136884198319993866799360870883364260876684491463247937365070839762046353093140680397548502203506993419135055641914070048718656852058270395978326519244024573094516902691116541790688570532714552504837214973641969202139258598494140227767938560132168723397026138742835501882303265981724515204070250372103635331893030953155158528542246668392225350597867363035052050221553662122893809060520069249724742382345135955847518189045355950016287898152041083101976453172758358532093562510407256307323272692744892273903012276710583661244695055456026341662991529835604045796998815740938779588566746147457067204129203995125417495776687026485605822182319347609632261216691952532296564563280084458718358091875701335372278740541083373969859650177411382525490196921303991019813698932664435061705452601222467993857165756121881822558930186266029041299671426835205925099236283454484462705916575640729139887008916819002283707330844286104777577860276124198160167872044017044229761896634891899868139154914238567297241908680765602080436378702863452174715436200435188254235933880529787291145932538299139905828448831159987938361576619928981419262410571490059404249755113991920922141312047059906436417479005940675698106590110280582039599539503252852280663892846620594972722551463095201466869298886022808288436151507540443523513956776058002649606703105435126059976748743302844546033362234005989525881566391522780928923736217012832461864345185360663040722164131196542249737098187141350952367059664161515222881783275991691719674625631810046984452704227201838178076060608172505791650741490771075873364207432267724137405941011869260157833536372129793719452543625284068362141651284089350010069536994115936315687701091613029421390273583210456038348155944390433115737131688897171391395565356900856557869619268303866354466310065035952990851989479247170034338939803020715476520292671851924681034502206960822069760096994756308756333183996227105873435865338686476106023895831561281913023547986223062411084376622596749052092412489298065745885303710530877195786587970867892790523575325602679904147211659135332544563167021025208404024532066829977497987271125754975961234733615043102792507208500661075155447046175321106283380688952755054699668999660111188071356622712159946033806443297667729359734772531168947573904468304627161261452848251118244618324585987123930753618668092751979313330069509904650181681594357308944037249294532340303757022182484556833302374322550677092540885085005541891006332898373451153605712395458125807733562331989308029576579670557680454347718118062128488792434266003832571195433291247292988149759452176360665489015283542970155794666587400826705642781466611950338502140174254473503317793180616142261850928789249436168868831344177132337105365755649460093038743599122483126891745672463844142937990351438698449033521745834348714707601877318518657236776996983283900681511491436483561800012292919319974774814695230016360663488652775962278675834335482462128229446902970232271421039741153185769167327296639713187016021077443475658696996354938465937515717877618573169694095026226150355429058987296782384993370877112172025082703921283270335050085700088153892130919693111654110869631531430767601128530616993811740464204394102049056126025206152506416015207908473309507754645591167616056001364066201623966073359687971435390609964014739869004980113956281462975832876779631380758804000753061297825420001147350558268710847188458002737947391860078693938038689572193010661718724657672237167256029817246022827199734385030548219180390121019312292968054740582595561355778373169227742499408576603537294852257329026928458227849555227489363937813019669253422891335261796768198245390877672437452866617362489410004751571325559925002440662616918035207218708019154975977666920195578201309952148375493294575036182874961583632073855686584495991803533145581427085755402320219305320893877474342720004784996755861607288873550594977209367457802839596224347647641472144031592147360876798869278057856080265059799106075303465220285939996798883258601838948787206552386553503672591827970289969044587526516298965860237647552069669767543679811041457657494479032734838523698075922306523660055847470858250022224926175458709217958224473238136519237404801696106080371516396296778577060262651104913821732860863090160190076600043562202593434207561334341497061021877412679195808411601965954723753649091642672912214860189348058186604590627317456253970993392603334914537254412943076213411576578187609652645321515476986749529397122031288193343366953291675272806224134201040436680278820455846143815736958669707153065585299979782354169149175582840517448463694074274404032914141427652031928788370333976590711087433853322118356604266486630729743561120683738787666659582260513715646648821223632041320071422578088556893531393847970077711572596258188465386391439071877760880932286743645278980838986815558430871146514900914862987323674118692107589266091914909301608095405443346120222624930777748850408093020451636780087664330157494319063517987743719319821233482615208590186173983363614347225812143420901043123333242352253860388651362748786590695429354906329623391914816247614597613891372764195117098606184424621374188328893126694763542654486916800464564200051559911339011766561541872333838426512692142742324663252445177980719820611778025468530800665525116534219926790703054253320654344939127449090137697697753517111144216778026953903197946973893152828255898602023034368428665024089834464392761824591899639820926380409670986994539646339568292360685829574780895070785124714849818016798440725999495467997028564444627426748134707528481505094494110927499130142419724952812028630267074628784423846309637858595614871311815128108529811372027673454536101352511754636468340565425084190840025866684184189103916427833011384297400430847245583295908513430881842452898930008117995284213196501167567503748436246650513534030476090884764068242142057989880744921389195777806244742682651111130963175094501782496947290789379863392795382397216854403761937449426216889476800313758732243649960217434660645160520261907044776873462194451681455840532227077463687076166175292984952042864395291044703165523379515152142919473632082968328929148336594412753153467422896966891058625423988748422273319948816298295150683411276021696160727490097036986551896030174655852154015931550610350051174620752483149910360258815896289483844077489049910824356373081099234064177619770251461062951508683722677537750678883106692677659180629750758998501424124981466448814513692002538265737407581739597257234016919667572018787568322048663333582373198501174523522500139625787911843246676606669416286994017659066145363784245105706226286695113078290274060173579737396000235393836846242044389665047666505530407190017741121952204508588168157333352997046239481865418417800617264346292167492324726460232494057611169113126463893798048486228981451933457971474909090237424596714984174524033650724213319695497364962852771941956750718686335496290001907707804288163533410103530707893916660994273123409359668716374047855398470104101576905673470608134916314827893052216028287143000647102334733128454777089179161482712727046126960259928696116765010297610548650921844025798010533221288628030210692906877579306597855568353323840521072775239982470877203683968818093628321328296997342068424475543031573157608563872984058821525325015800617119619177215667482114602123632970470531381498076850908027532843450466540824121039613786382410472192188977524179266355532140487835207839896188398272685559442485288212522369259470316206313601660935321557137382008876353416839797421793971490508488880625896061738119658018762337527227163987048280341741840462591436820046054587983083943993581867209965306138141297706795773289148823652663727940931892668503025974581632948413563950533440316269458172527233433655982558564508157258831335923685882507898079550642576522983791416570396109307737607062322555553090389376891895561120261363480700713133524146677118222212774144619772713250151917494009569809535399241756221271579915185676203439595864403100083707192836600951672845188857356901587703151775042689678841895827020952832068631900810610925142549571025391590821764324209697773826555561747668665402106903042639743203737131920520286230205524725805799672258498102381122685120217182939557644525408225261198315271822407586769000601966450584174551493000011235924298199775259957907051877888398763604756804944462890157599526184027505886411246583576991224070013643091063078684005261270673055872923957275820149658658615552429237499609391230357657402212899122964813970293218962958971390193431121531948374885171571155033603432007137761629563369560179566651573522283715140043268205737495902894260745898202910165187519210538916138011645830115124928537102715831935841082773149563392572245256937278815645915292392200696615899792399740209937195950873973196318230776863605991271366790501352561182857532824186364890182959353894147293435599076567729244818934365328726943766080751740124351737679077397342830595476670687063114466074723784034931621239781627502569645751857635091207712482829887139839250207521458377592252571842606825735023397743235579154100363295981754385824746518620741637458278344413767061806017516169267851002478888826103113854151999489315866797373478096398184064531318688526539732295583174558243857248254695016056006221305498512127384893984470003052725991070917422898838831665396383672787743611572096339270536169131745266937355208817507017869546243872457304610401836281937663337869307866084216108548826216756930136951075458347527876402801357093462926978459979475855706076998530705305263381762508296055274443300585134380535973818874314184547832573598020213615657310427776116523625050854619023871674263591151210829509436692267930311570832481883936537046482227032330232629763721940697145321168406571331456180121052194985898106963123822987587471033042514973640696512960331403703078982611852387681199720560948125602270012697013145009554784914526892486575034951803996357597396527653248122287798473684486342835362541111882475790759880872010533413894933452289950877844457204347747316614838735577014833483590003871451856907340108738841458175033264153757800592782266680385934247903238833562395174251033426732418626449925858495044744804789007594077417682796228237162839609236044932493557661877735815594027347306781899330301651007395343079522934255719323675833760654617072806511321140472625756159224867365223295332018362116716533874362700503250025434458765757247484281305961793517369755619455992073660407382254210071272718830059829165050743543082896446292266579043114594783588718929850238382274419765591190598738178187819761086050757728324009337666769271183685460843424888111224489635675948053385917885642225562943046842736591556565537946766200973305873940226508777462885450182531365213309021147567788576222583291861279654067306752817638939863329255814096620029672042823216738206589396244613529397196834264987857665657535020270041354306077986386329895483247192092936844764278514827072580634533725333070890218094739218249816753098399227158043754410787724432351031393945543837243459523403824242772968190642304678204238205481504411915586450054835696762213529167218043938822607749063795718249712016039913173209664457088848123628918158631076020792285115978091743457675690169292693753991765915604017246124971253950558257671826754305324999886276248341682868635698642432505923074431666603160113248685965156183980826198192565077591030759798978503475713514055791541003933317467605581387159021053526546800274262767167863258751724540576041339617846029709506914850172714844612491115516830204086897353200665178373224359797776411259194355608825267591243462013316385260114326750238886952959261973677389483984450581177931979526871106857827373213224436001229273714967646531568386106116719744150059922889380864662809063888645737295027516062041352595463131902292431427061367516172790963969600010900652377334684580586155989539997004302342156883403397767327921989016503561129158842994831431691181417871150142945970120592171195047581184951689859404709153118911246171473094309156902151081074318488261531943640488256852579157514568496537014129831498387363430446980588281645633568059942701363545927680788071327426333908457632590374541357135387329225404535936030532534851189241201340570925615650510391743965951560114129242192800187199166136657748219372405610236220827015759663021598758601426862079690695926577680425976381451637522662247022785755211131561111762795412235444935933967151759191286446449939573024668179669139310680397228979394878323313138083220263439903559329024649224992308284611059009261527496253150294142032139685772553045948234240514029583316892533285051204277808125156242283327904102186428101603033848792941981755663724468485024642563132822793136060350988157253169234198717629109273571588710239821906783951702463039413062888053344285529097404733165885199355883314287291814347953332209504365550304979125729409410630254982829654915880633229939942999724726365123334538006414427304800521106073513684419122902335033081858965286792068414086843560148377359792161831597102099059941928371531104392944037309093823890938549824410512080916082834583564595455536217107199241982967105729276388686993925078435820443568571699860536120275064013423266158983765373881008269291897022198196488207140352602962905526967069462088110860117961993813368503788907121754303942181749347880663555636990099840645229270708097029986777035004811355492309416717153433376548895524242041160801054565084343915902289318888666251813396476238451419574852653948987288379889685514015354233647076278157009678218391306828774715684263968103158062767117453562179162154415036042841132779575498469826515395976969038511288136351759954106118968018794141894331155232768578026394229515578131332203006907365085609356743241948176360521103016582350536129279245477506996581576292876637308293396928986460329246131842446957511666573329701035900166511276394186154230583732682627870632060961396157684908055452325393974277078551923702037998746834407676220604621449990532709852902923416392953968336088035065048483614054688693559870028584634705741857880589102608721347622007984366317115999360227381476342342455295217573386302559089292605025438850751364411135870324339756052363869317023962799026105176070088423703037403509759126313754998778313395330397856512077350663920885462393525881118441169576645324506623464686798318013481922926333796389361911513620460432136642691701993615196533595400447793628798097390238530862330181139425217649800612121366824677548461661686500025600789180077295116120450083074981604044165784462121081357567312524381595527635399387311511707024791230012089661690168162273925525162285974709790016949274597627746457735476992602018587487411033162855369786337297369725539796269719635010579164796038030200492739043521997730786740852344127685074648623892551715629166377244390731718848403571180833667756756045665523105187873387736022393628674797292564921042759441457013193553319524317792726868744629728118152417717765489972451301629681773136668882580554500815925707796482858518253004129334120054810158358957480875085476398664202003445273582586356943355963935871189565131418907202624047374656958590984818563805688799568586731988564171376380246004990580087826395620401906029799656659262753332985829926862861030340554864589899728658549811836023054712229166531111097136418136631518013544455084416769165384152885832540624169084786749500398037899812023826379562591885093556357940666539663409296542234953482019723233230908437559556390824193233741591990326291704051439241967566648516971129116233561347561063408318848633502865046416920949782923482684768242498853667747528274456052008939115152380161389769199142262468568549343411138109934421247869697703372497695430764390220742323792352998912196203810837888992199098362522377052114360442009968874164852459621093588642481477635594757500307291435229575216411926794786085781921521035287193920268352906823876311919199664378707877297949215404860625349773147232160508297292361994022753789109235968506781638797718538994640437394779934710191771422286448930434567572460981877959065743054508223630423916469608689374705951387036105064171948060387955489394756812832350012066183217871471155401270558915122495626223155651571606215954996609148457168187065331979934709690314312822783699821895508544853920809534670745975127468422850701842937741809964578097344780870646719595045179896759972974623827622442857267019984146029938578853683643749580603678267375059194772954094357326101717382143070829335770663245687395751918604776734977072590884709972984920056162019851503030200563145912786433003822469336649033012694041624546542949986058371339136491711583304715141769024279734289944701903673197649098400755584435311715144425194908121631444747702502946541761703355603305238129165533387972527281544871337387898782039035929401159580756214410985052293761449779669310364967747893910498178741317075700846217409544438925272209090603166142426125214566840314116686207846657923222966532789418488955746015304659338534973716258128466537845042306481972309798252610110202817130779496045461824990598932298458151148343419676644138630189080935272972564700159345585749672114669054107243744846531622726084885628005780538335789933123451127002451912561199455051650273122664077125780405715088929794455858523706009357422440876122700337561290484898261193013559653104224403899315758654047687656665767766465359947763267028455544411358521550604231995024312010971883601485276885805061427725062377094239654109743799469059044229916030107957211707706608315335792316885586393118377345589093988872838873397887651443685206588020209510988158017415155980181412788684178924868156639155046329934235896622823533461489718162184194486220595823513529684440221122555107232040877880148393136349891779723901009065328323066236453103578054267186964774683910456746200892910447075376176975171526961285136419773127813868565730302488637536572921568226391484710669309042374091485193518397491276707074159403569418721923745996364872085342633426367796194635550284565552869871301889982924926818341520389539206449160917382279626297168320332263384638773314388441505037075288919451064755855037157525871572362072615410425516510990231449103518706437838682863431225358184445164932139647527644636151046246592614570799647243162099473788911075780093343330924895758426515665729600752154043668128104042764908311065134129351548542254965494039451916868280355218667435568200811272154803132249800040594152998130546922388617150711739719429157119438076201446283986941300707749249076137083158106939378282088158185262480181646242353205510858334241257334932263712268879179838075511383650964852505855932756723171366933621076802899354011272581728911042628450842315126597499811377512083493458215888573914249628873524803516677288859053708137640703150861817758588930094418664582497517195116262166840643046331022564696142746130789790597134772040342484462520973897557429921453648877103903591521539891370024421942338156684989907566975927246878432238954772055082742345619738324893130125642787379580840391635278167011412326551966619687299820774445816811143060215335034335605671257950297131400639299840248698227814026710184784715281171239395007668057314528023609213404632786201050983635319009778946456313786825274769549864492320276543274748062410590359368897564036134309943657845941388507700556113890237277385668181637371529520396590289022824887810905345455154193359995138265669850259104575581037847019124293658802780038694565689708318477999036047532165869396713704867720836688952637318748851350605131638621212827819152510327820632722068067790504503433311873086885189279970191582189340143788272116086380920580546804895172093506000630538230625852895957881675498892352886974867940096064018900106284193385081563712661219274425083998335535436963486048615176382282091530260348766278907436551983425387193025714956630873987135113228626636992340670009651096316213898911814466748404851790501901114980951227133473533616123299362854098959078115604142118317867583688515234287878466671603288136464796770706747400982914468016736160312549868420112936106282088069557675620986559670440293463000488057252436992204990481389746787485730872808822934998137942078088359883145086183343741592056823361912164545211579601914399592482362822220351113002824958811217960795277274955623282288349612645769998542801801286248777830304717384264681973466819630329682159333731631668927545270719002325741527712559374131842948542902980846971425499418809613386817452603117949945738516920310932961452955433692560973155901887500220741012118197453092954733988347694785729899720879892320863518876411321919869682789290607085485702771401329967178771581627868571165515692908217438625712785623550503395895680296357758653279909838154528318512752066643972263769456455447803512498249997247481419230966557497188858165400640418720611735957892511690507227976462813136525004763976151497218521272417444062016127726599582857010808730591766835826404994586346154308072338567024999098282995806631196633309571425011291521645386130089705035115576588782496173348341228488167356300167175769325058777940758285851459304776688443140709282509651844128538586018436082064649529839667797417758234707897454003483775431727203680316384581053675211968533911668357378896523191562879741087707554660826532775053133490032322118109714485845239385239242910526630682587929229417686836290783035149695851488385365334698667121400988305527836275961181409218491815520643102924522935382997178512507112167772079001833583706160540541066205858675827156205718819250167118229422411112990929264826275740108821911734954580226187189742184714531383010725561798490093342318411087693395864504099560374116872673575902350726126719354908344662979623282285657888953280247024787625288149073667890039676474311658702705795026319779814327709993168979480946676787646607835731843001356891743787487341354534949831909094248240074878610497551444061168041231538775923472638983802825882076745775747554314300406771271879818488378242418356237919817111344057098812652106407012062418479105379497732323376064162517185009150108449112857451592276020936329491461872598790791015220893104003240000898161598895917120756228856508443289719203301614437495235390473099484626687174311980166494994909012260482836601288839439377682138072001933990286037073444672415719104198873998246275180120423926025887359263209445729426817733998784370915337156795729126302953344299445163328215652377969042027369795882273383126625350626983023473920873659441969512518243768295047923678577515133932113599638794354885325447476991627314919192766673927459231866258426894804655913374678693566900808722770466127298513505602957452208869721493478516348159308714918480230773684960727671222823845242159610003073106841112389056900481870315118541630506906345346695205852368904147564096914411933421562749915912352886769507681376304550714725727780319326854226308413324000463351208104319931902136752977434098095606632269488204160683201476121913268888753705721797440124244306191805710979425937814785498792678062684825700506958491406828328969182648791862590572658987644314160543151224453174168559180432713714477276684224608854187410338808006933410082390804138163152628609590192627052582234297836611251930889935165270986955882907651432624637815746883829286590295145880933152602917145177071403177899530872445786612318914293861243710436389660281599170896771720223190522484046715128505411444410429710887917783161438050352820725494938084113799977728931385558107651263347472856520025584296793478499319402940271608633372466334183997433796379380595228091015277605265672790871038685247624851611935937003759670051881275574632510576818651190439816795820222751440334322662673956371199357041047400049343793962540118123032273719077782292131507236052953276721717779087006708658677800669314653014994738032011304625005271002791469082812710036710898441115547269967504259162433016670135747166549218872070519165586108159090991431129143073494876394800177170497645716143459808952499236547961659549884543121630896578104952690055746773499870502790627486064854991019336976126053489740098328900209381750818295191398658208844450162734611071545195897579653456913604415770415560377405483104351509875518769182103149499449388221595435544569695087572123833472331236139622189525445477934626539693690024345548957782245994510309573284049568669409735681038369047251320453716554626966536524381289063667297121475444855592197408320081772258390659282447498686449348319963380096586451459282403935916873137161402249926348887404530424261980448506268886041401356815440025629079934723950938513879347764025656445799377589885012908315347061109820879268616471350725971380299017148022329004638527214485214271589623321025965107324047890290921372110088262766282623855871293239032816294763485160677323876424373751912946526976697291466334291622162901190127448191105043949139251466828262734729502087015995211107403522281114120673332264705219431554167251663409232968447096551850406222083651556451780288482210829779817378637702078935325982206052634063588604944488445336291053424563164318389848176665322685889123580400743022554500499749880227933713395737395102919092169619674897956104726656286990081460617425846920220969593842021728012753592356858221734078177791560366092334150862158642582246842647919933205476642745026343297159902775908636109155054073197960786630184521893315443471108122320652220775426473402172400376618318282014938916465727511402880085941881070032433022891860409052089467941116773103411275359567116605131892795236667549221902459346519315677739811051328375415388983615677585601112901515022213038844482088561028282371707198071761908650344274914886942959925642557950987959324396444602125904096836834375216591439417599418268554569244791473161938094610955104299401727337388241613702940105887382682801737839910016697486842233399808824458828081908390575021754530543820733458347974334532740408605310967109760585999044859710204041244297100003477812823174393617509473307276375414045535690804594525004896187329622304781012867012001985555460313277033833172906156271523647753772650383469438769054362071815445206411394580202994204625388042517895618703720756602753788191104508405813013818745266219119287341003980335385747777990335368544467038269811602642788467432453564588839370282429568867604109826954788542984764360304689766137576564756941700189095844890500499855881018082470725622797302859393155074816468467451646513191891538720423336996510946846399051320818609779224536081670514085365222780608126877731372753443396938794224694355880238599319827821477993800970646921930069752610144790722308076009784489506763131462174333941844524462030988351969031735902900009552869168722774485930319159852532595993309174854204146285286136700344268014354184649062884494758107798999430350239524660485098881223418097934580681848533711775509089767174868277034758055971538307807726810436311967137087921897830512253327428902926044605293935784213510692894414266532526074198218728120934349107326704793162792716540354834496478623032266462214825148823887896896866565704964630655998149917402054146580302141939389416173826144223108394030743022869611066855860879645394645327227772435575212006395145153132099065721520981393139863679963842792527806177600278982705718722011776471678894753305259276382245230712055907071714634581425552161776090393607603636307990709713082319397098444893972314856486838773699952846470601714661433065256300585517979950822907828445733570332345695439144228332570474123662638537539645880933607301994519981820482310342848085838167718605300758382811349875912722648443514046644461026716365695902350783086555876879611400434394128517015393129224804460288629693231927336389274846051989620458165586325199724344192010198044167549357656912789183294870951474618600698084154245109463852253069031307259395367232231946199701961450830635669913489438097452392583451102700205745836529808320682700748328063500877778491536844091701198924726788215101706811788432698264363835824285977803560739974417645165360101415480919353378137290720433979446323349914309142755815260854447193011846481195753583559790612853583837655932173906671389264202686033154097729838124553657533498509733552412144564063663815006397080253632837527528246031154352170780423726973955886487387819551239395446646210278270401986317384655197608167746675605574677679485999651678098355651175146090510811974811429060395359026846874391643347809540435742668974620258676086555428766570517570765493423648799952501574550815314882511865851948587291206150117806855999328642614191577912638486059892636785116522037874667017353664768430678456739893124452910209256015459733464988221111891107678082381524542877702914539290838644138959174409391580305516429125282422682608506596857438649261631058332445671183668166763491248873230106685147684969905286734980035143789819428301769511710143627743870167219194861698406157561723799340504921626849670023478991621737930824316108503146636569387260395129185137219566891007099810765295947484278653273695295300719771709591461501229372956627976943426463782211673813808979870403001740660722732367811738120806866958196378028707159091078347812316684633747096477846460076138857843684235427220932343998462969643700506246994599106799996563021817020981937400716667799359229078514287601975096096735031773515532856682998886706461647691590383212795526780605590985640630326523486626272710544654615030036594929158242919602864363057537653453448727752116396908743228595598625293820241643732107907593533039808475065371779156704330912447138856553290093712023387366932262373333250672610460060727113289748409929397680576666204351972100631924497701540891634866203115098702503198633843945735353858484923189578163287530458540800279720409101417270561212473058118800611435957538675642306467622985463629150056846751473368441387935171186852615564671989829188876445003836572695645085434428059419853189566818451696769709574755610876954486151153401319409513006911262314046646298753837888984047775143369701107960522471310122141434956695628014662262783464185048323515005547473279349519954629146509136183290106601972555012355967554966061251754126944206701258760776374991590161729673172466317981051802453996542876683704474683362675278367441330929204108593344530242053344489926973429008562656147063777695468260434684826420130442897516082071816203530772870097785905356875707098782330534170026228463908677682541204106464060169627220284813381743526657170223131468769903112616948594044071685310132540894332168146221303029704909677588304686477999728496679255889796863631561119850807185434790946739472353398520210000368701444730833874357237493473343809898000666057332378722595404946493351695057659129258772544169442532323107770684884641815100852865653075486366055386094000081965152962948641815110105029014943178132356642097819496392481192363447646281891108166722862820314472167253876550528180302889709615259156995728411867105908911831377204085773235473892662359875003569771185111172881729791028661668266096735506576904320651925559462313746825346989047682138819074532852209442522058226503813959930711428138619930853197184303540837738773333181107388324832047920278512552144688527818990317148635725752178270902145530595661878145998576597703264674254897581758398633245818663920935578790175320770098854101050143664039105392526630443294401605447788315187413643899466783288756896993617293049112915975808147173171111779563430789118287565630597462712107557771264559932047728010050652286887614206871104769758452707467303647543461895886039561881569780895612612867886823417342135950910463256076944363575053546232997579100460471002392821423636792563840516427810715120164567970193362432550239615605077950050370410624510877896992843500293700465963722870446569230916206343979997418212927964017026422913513894324434591574075006336232157694791727673245021941361244079352968124795080323673813250624776433775797981962940217324225758371168846080971842743245741624662469101911028081997872786695869383959064635552489698897040373253123860056563061121900523995836071971846475710185597574663844054876031748723766864189767035723669282784232165963419721006656441726372028225292019252517104228426783079876763176271683420085310601542234090564144054559319611837274758380724390061271417746195191240228699525336817527385304878372782266257370122744864048740118232795051712597552923496823841169100090633393596717018456322174377229172519701773596693265497155030569761251514015137477103480912031596586386169536715501416639670148497353858277083319203086663937555889015682814454403045763417457649179682066819120214046615015965192995797415228038869506998594998691161255276917767792508729649583195645855400059144326944087638870000751015258378516011127760767118242796237577788999500695173032657074060014171774014282507878325763335672055416060023867534086752097597212747805005743586385679136195331195609536950831006879445564661518371934638453558926364702597054073108539610965879706421286755018072226059310320790581393444475605302106071819331090440710486406880762207699245520651562469736902236173001136605499838821606901448798384535809454351450908785527552415476312767619695976599159597447849310948687753626907279933539815596132163192443504163917696019252760295607310872195037441284753298527061476122538386709597949707386538699025878609617797006156292063713638519083433935146963769249438836230960765769681721370943566965810417290198500896956646711812909822965239591324133345985685793111699874940475315872917272930505973098164232769645466080730495551901663700390669189694477930228913406071736127848177309652886052911383121256872717876481643746318200402227760620084261914859350542514584945348137480412040719759613797521529890812087046121107760976392379468787752292477869412106644084020898178450612320781946682983343376642857569768992927165049814092698316105383970773564783984730084092221148685591981349437648345456017303668188157520383725622622719488250214461595181257324142866409684109585292679116611549895361533698200558615185877183350037146174955631966563286369612264789289147505420893067587329734240449001510937667128741680188593135272488768955990390172030631173707743022938761169758086388045793284708627944856323068437620114062132383768023202478613567012589088828226609204220085990063751751190060111224824338820202821680594304943481033858861535943179675234962653832641984274145564725865556852018831053876016494992740024386074946942578753611662296271064204741943671760027664892448149030133862301723581671180510559075813842625879827366918274388527722215877087047058654892711211197646029307393458724938742968502219945878292783220095386320995870832974733599023604834553173288423574815729941711159880704588447173486385978214857604956034010713415628221493278973713769410872717793551187413808275485283608786547200790010415387689684338299079012571617895726668918590201107718303964359788928025257607898663954954448011347478435204385359000835938889743886463587424208224605682174246406768612232771535278754009614300718175212601801905247751267800223337819888727057805649330006932625415436151417942727220751654342470772370270262221756212031627470580844432854056456113492991245335338085168370530973024236183831438438392814340710121362513446913124429922311998062513891546911176631140755315283325679916752518967724800598316508267663120741808807968707448189248174199914817311853668422985185610642473694034835816265878929118170823004953759503442192201679000537409606052247176028730566698188622947262878812751403419703616936098682722096055816870634589606503406589672647332627824331499930436626133140082477494588205538128598132308222172815828613915239838336370379359466920947815513794887400188505727566768520303890450813325083336789927925867369051441735798532254262857330610224891094144217942290896868960045103308673910313678078444153674746111174224235236503679199178873691649069297066844636295310273544071760512340328045493770916167083990625797040176490695569590494614917867747427054103777154412643885748825368362896619948493143719009252996818678261835893028105038414078732016331784519092649667388125215554250903475355570902260893946321760424529279193760142743580490218069973355746000077091292064963330908443180240473099876750928167201200596506804564994368197613434785214538066509609010276890542825843582408029870820704047954330913936995009690818626003337347028832666365506625515001368623212930682022606075704851504791738679539063938271381161084394680476040656317610142682539053921398156467134968991165984269018928990249739822685449976307536916661558732157537731967028373969638229973646729916355377348632581666101369151456042507343568699025348901234316339929554752228852984920708566472903998279186886237362700534697323708599118195897431985766429410998645674697655582651798051605970634602021919745440803531906501215851462060025195364335179827795497741336795040003870757094052255644061291990804995501067491506807417956196450778678426260664176788265675600552795761566157276472082103113075243269537123362564406854123658723632097715903425810304032976438972898148227414771924219244149096731201983888495847116694127983193658366783055702093933074456300665080237131531314226486972765542757396371793105284441596203810175363388887768826097731844256382335578032687873646837407462569488476799787645844566496863362521983667310817904158730674576292615985948202840288555707205848096964323485405837546590964578416002344830269201876931355535269901811394041926018316252410428848877135666554043798067406325063552266431284345412591891868102070138221161976381243517010174090124233670322879408916280511904052178157907398542178377946888029934721246680800579996748003745578769294357870324614565030403428473700378163761388496433107841024900289361594038295133567387438207191650448829218246804113541804616449037560506024673339512133575407369337265396430487355000732141240104515594853289747022476902631924487067336684131861724104045727542438882185077733069584624710147698219153540378847363976936114061293039655633084055943731024047838423907031068887165821253695874623731690309345699772433696364486331057771600390698480507716382702712833039631573756936267005561519740268256465318942297301253235615305695798157647023255534623598887004088234954958730976372065203796836905470196799351277120138995090830457077943813031696735982602421132873524062251747087221187880629278727737195433263455723035411583607762503292128721445292448243880902054826552068125734021909689774406755270413376395156145198635946395417322122059785542390392279765925364654516276872286833365084069089941150815684615580067897641236349833257127657144536934033067048636752567036602417011477436960140850335503418286816192661505831938504399241679956561018993601384430283584266802923511701242632709678104782322152636705951047637078758552173416907886016751764486060078670932922503853569778227533442893830809321754794421426781673140097321111060715282151052694408080833165005626224641940095217097641885224486865875214434778522384927464314073362447944948954896206408672360268497142867735701270536579013193804400911325264567095598560850514226626381215891176090027455402962654085685128843765903962847700471318187681550188581594320480908639525951413106216453708030662142369297454088445497783493435969766236876169378175847688434902143662726642836551652743538945006680815192754985839809363280234560573629703826690215982211467073672380213367855200647018006526601850336529902452364893516905709315038340319215992508078403263696882076894769390574788996955937178369306753838802879048402801847493892525980752107238296161642805449216156702297478501188219462377449101738416073033518010098327361166996815584948591637946095041874143303912135694916218713861187278348137068056771789426593689217526113545809308470392485459899953973525511235569064463878977193357120905044786840714516790118313613046992911812234952316408104246505549221712017386228250259064142113528254790583871303455709432857535658778075013498251816667935748206481136084501793125838062443000376601335947239254170682756041262446073815182166143886325884812262600963443593040399665261388858532278579391805899121176394298485512170764708240031374743283446740718679428961959634093795768524687651025738766012107847142340495805880773035124711476889673710468070959088247278787701687589423582328807834975546275286287525197022959958435413251046899172278621932192730809442666708616033284621842958603394807544743485604018195499882082323078167670890372064569616218457098925727589921928174536991221228872771105790453973622836867619831634867596601111663649091108469840871293123638469654898364224221473076189669964576948223162252805251738462357051450470067048239070430380187054421868000806755629906280156336246631490837721273030038233810470214468963280763665827507940282619097695763356723676032015098716592561514533143606088917812801543247939796759205018648410531412143824545347184557608623330479688301907131161579327624601616312278312851443339143008014068234904574419030095686034742478857784020123700579322153567711232598063303426938334361142140241502431438954856200192206381836003595355419238451790833303817059076177263278918155747834925252428034196254396768185130195762272868512261388806116472750233865832460678517968557995876976891532637920627541898150438832111078939909969368207559913764065599005117551323131645620923900385693135032604804631031425739975543329946944831577375253295524475104790719197182120157634428016942128315847249047648126464089501112987570133492836558080712891065554276388792169702094648293173231176106885121579315401092316232049768933787657589172662838149497878193759366727575970221074956281963295825852175209121697736530877620555536040014112048524559456838076961523663334404196451919113009280442881636781257583883357215155150565230821002382917765048700628943116166464130409907137249834202933979403208624891533616991683906400044710963951120113002591147522372186509571387492559763499953887072851663812641378547570824288136538676028664946141589953059664167201787074598941775138030720436809045336896673032259449822785262220194552203209207580364541601125302617867149027521549398766436361257736392683696823285398688422144774351599503218974524239178144527275209546720748959144623420569755219975838245182287617134246556201174483491871834877562338080748491318119807422950426623751968988990247618639662758506677332371859126410775834840896768694108261023890146759767513997756644848553834717822401439493201093666209434643427701923160217305774340768177474491133214537179947779969059516441259961704328116057325017701734110410596578702497069513198193982739111056593886776446376154442562749499172295792768395281282549067174012572555250911780953400250554008102849161558305098556422790833918055050786069992211468077160983650653994701430029267858862369607633482118476437689711255426772039908300530748296798214825405889734475023286848692503552729474213648140766211434696050238325949463384171392155717093729505923243159274332249304489911648769582841456979529926194887119265979170309208170533835436270147482555525931570084772470724025891996663020025402568437081723589961757137695443931837167934585623710984440247101162720608319356086063009362842717558521885503323078325501943462232223728820308023162671628956105983681304803769333273890266276529904945473403726234431188114305971706858230004556251418826741838065280229574344943474892194291082073969655838584644655170636026684258809131566014113675155669394414368357848279604681931262604108930549585086453382167268700791155672308820551549491405355127456656179939084542822215911420037922168975061382214852322970802914202623321275448061051872130374313501225613773208482108376427921468357773416941958452954054109535025315407787479229818359127819907550229698788315826206306862366047564890714197269716835736790054432742146189803514064969563282232081918895377593235137098265970878926234613971571994779074008899657415059641602099140822713010918575342096222485801331404139240783421650196225956375354837365200070228296747692277696440144169814561502932050129105764051225288171527819089347043143677535931691699336470393258044577902646170306613921680903949803879802770348120343309974222011443209634000311335502140351318082038137997102210930067681694155668169041489255250378249604944266106496581804563480941379978339596628884760397436234983723669788381040502545393005836038180979309096281726343402669946834644670615212464794309258386277851897771551369894292692518913223056196689942313699342945514568625479303569221424160978087926674333677526475285975389266032867586583799581946028760258150880384882385507180208865557914345466505996637249341815713097923081945381820204926441747052308505646601000836255237358231914294168556783588639289069377090325799429320968603962694560107179292188442445361228728970943922824738986893941830195703130084089354982574167078372801874085000724177874707483264013568627008532244193555515752648690098520375344870851902946001564454886564173183208758604378587448477596845685567261389310472488227342571997577120534099034802325721853127720865059606245136534513009339720737380706917594502387733990360130193626956096031553128340759209383462939543467072769144210184622841755203180873249322860525653125438737154429513486172827133905469926151248590533238233086205525437477403219873024421771406366249438066378244891537415710593388903155427617990491468009876547892836971059320968151377669236111172458238006209109209752774825584472458171517892965371059658345041128309314493841376829521185136065802774295999360116865058714903328281975853079073845521491714990749707104443622911949345545015595233595778341022899413279170707814036079205632776492117724669500635789525648266548337565813205929187154120833668713224830596011855818692727461715499906210504046948950599654597252930698708420860024182032497086771537724330652722275859951258968929084034932554450996031780047649183011034563395935482022151556466794872943171394237480737755118011722858074888570193881267015702327723912508734840629463806571134337348674777397971977808508402807180945914423485854717328178236748233830943317970991456899768109707064821928830413056159669456338467984709396540677436839172617694700402718416553459217932042335286956477268288637959008930181720599645196725852288929352724787270244673852130049417934878400973066239233413337018273776647031777874054130754067085867988547911240083675352332304158667664022440803618229348322224936935111788296003880509475750196151424723584257256204472733395760685603384982772065088478757535255115304241845806284723330525000290938593685131807940081813446070720595484627077239023808581413133803128908500888703544280054129084439823021224223073413640857534170483914698425986075384602777225599190993787648863069126055506260300698486528147960643447974245443019471452197811633313426464324806689978244274683226322209269877132299747395108250525738647931320499719774503957473180536032840099951062620997938774963212888277203951107600527913865760092337987558473189186810651139339590192235397925627440228018551749049527270782875139640683637978532592705311815244572718079902662684406887743129228024738504797117514547863429865018315509250563891115002905525542570635529178738319269310972215648595880037974312379589885760717387549041736252850367216765420914325485086463592495036184426125673310891568296963923379975698543698304569184040473795731568359744438180038783669526709471957675304642241231046856038402260186904386108808909794834104041294476071980989753925816465678762221397953293200680234380678538305382590973240308154401239502993483262156447743445362736544602004466147875057682371116134899186103144187868632464262091883656413180857960668613674332426956780392854518323145258418419766252852871197860788723701252120573319978056336136662378221246353915804792357548574869986607742574978460033865826169222898310727347051552656413778015418507399227479158453104763401811447191726233377120420130777923888603395996489083034018457430330193119413080406158499944644401341002233084237235716273136758886425826417384110844890938606603675789202082472679502869981051900157011780098291188827589141608029639222308977259522038043749014322211740881905658604371891397532380700371665429725603901974532940988886042656044066059109985777716126328875047175947725712454976007850854129523609363487446102059340183464592690630971792210302478281024091618709797523573704493545663143813152428935394772572496664890769153869011389598642402858824515641438291281764564282291474377769975263699500199829469897744506570839700056550813812186026004960837436703180014711529255127134423107263105913605164077656976981456441447181806204615953296179181680160798456000938530913307939776127004397297849151803752445079220795938602580909428884235949522226941251917670648950859459007788768478057556537786883232802157588448927707003155562237896689637223055756054116952041834318996932679633356787820017350622933419826747617276945288834924194733133899473818442149984553649926204628176633136016925109227626496486918847824869606653344256444825304131850829407214696744742776380377394613487512469218306605351790303908929044663070242015877213178012971647192938470856233739314414549597064814572506571657919846133263783127459300553040591859903168731301886065537250803353024567697458013497768393734770905698506088328655173117757168121091325180316819083644948001342916553050497798247909416721643711759841252533103026029972939522058957079326478022370873041943813492869995768500041229333932000417581812774266055222205865662528693168081655228561942779198251020754373586746581658970546557318370632990927475232656462394528943125180866637794183145291436423593368630486084433032373549814912500865292287280180323090155516278277363722505794737398894102672748205560989134180262581745593184110763394784690676509733023581730379802332133334374750410063886930764932875054415399646316280387955398356943953440733698247690632455858479830706212202358867475833013039251817077395889104492996894617091441527523903272234012591798386527571559288883324844104593706308892960700686363443919242863988309295502350400166771272717121470115982834855074446367516013201792140677603208154508362754669390833972868522461797434231009021750434076080519339317974725962584399778171250172854824913379449270818508372347805214349882274039138763267549940875406522726782169112238387485133589642087590385872607978084212849287790360540526213837602901076764432683151395919748128411585095330585214301463473020217002330318943494770445886691113538527659118330214823972647661864726297413550059085304328424919712319977218728291903682735954970789974615887117314986206996156054241172411276558923763427082550800971567178046175197740794388057519898754504005179369014820828002809252188692807521955100122050061185393083583936022366250215890607835176561472799254174982705046906932441523689188588965923348658358781586138412450990068285958020792067307376181503078046337276582646230002838118375380755905018321448151544482909718121012311857256530042263727353437879302988466342061363501340002536892828836910823150273808291808022487949053399572266628771961662151654447293407973567112586978734782336856033113210123791777818460764424567362872203599202563117093461403091743389097845942559858452101402008948916494363719196779773000865794592329745757328082171354580023929748066567422707674360108915295494282613785790697433155200482993098592218658220136858745773879675544631739119450565654175913624397221591195053980221165589128482731187313004593442210718131429249559983216931377310886492300654226155867634583297277390014975083138556788581188299025288514832419517435224773595898898069425726454195892657304960784319630516137648064294529904011234764722381275628334806891471584463792984397119957877221417450219592065391115710040099604949797268014117746878346136464164991667477488945961751108076448727265193654216180554558878128996056519956614193743699271437290711473985290212043600973874989134922521158990055023589277835834499144993493868632943616142588069447293181672662611367615214568923994346533927813536384542662140218929602017614432465309145521390636943717868798888851623514706341596900564753735970477733303804517721045463994430795395604565004086661199662898427543285462310469661288077737558988568175768007264759056919596751422292483577893101242729951027279149311983034750299888557056864629935918628587408608092122370580999290972818695867147211576594765173838941950009697884322450927162927387497847204919284089998430685673571958114909616678194515185580226915020549134596997308351432878187580675429421502901866099460647685522110919909604761758743209837878144369657615310225644111682222869164765426927602936994335197145113230593635403309328319932755128856090463955344302731309032140829489942378612793225033637297613538265908165694910837615323354488990711913091148344913537391696851614027533683163099025720592908003345817710027926790080771632103284097145544813557490116470131847805195402812916756810820901587047726272411145588931109936061557972271681943939083010244969638213966671686883082530089209038264795095373460514290953884283546310358095514876085272229100543527428487324495419336844863793375424031944605092465580440529186416331032541384741399564942141460596714238159491758518413604876702714218499660614186771569460621393042751375831086920535889662910881083713766068086742171000499826385916599680446319680547564067206838517046984707039536462884535769395963331452529839668256399057478371504811647766683516649267713315523566021529615028982985189052952699776741240704970242680809031521986880690232008188788987516483008602481957318524782877292431349589336644404930062396469108095443538810803722699264419501679804419732916132743413636960871808947173320283062893816501606900286226752204899432243134900643258643649073319509968307939982179505902462459207401535359157826406572156232561961349189192591025050653269273024471909614684724499077364539482397441311086288915456866129281316468707780555382645181798582955836006159528285919772761508903815089369775596345386590428624782957704431914020474676258367271008829700068481028370568208853558825495760067470897902228213033447973418365411757951800603037556278465100923217239916926913236874121687660261630156052653312679736788619888975475085739962708838147403498881840501260368523732413371110754083345073117925027709288872289021854989235766476283550862762653169891205899396424394000059365331870930751773960131980947570825073933501703138814948001143349197000384506392422637823452734557884605502446425105236959894392452958938791031184006627859085324995182309843317504283435571425882632507312933797923236503052306553178358345306881972920970560824098974583784563405981659218245821783792370525345763667143440579083021331487870074324950502584697123080323414947714807487749441180050667164596558356476497336474454660973364446729013595635963669303162450502766892129802553821906463760733452483729737351589169721076757456699691088917740794396280523705834255279084231917545921124585187332619587312369894365418774090782322951604086964667078121912492484645223855505556961475571218629098915140707702516805844378583037176285032272286798026988919467098329004277787535255176064525813813512826105974729729247273818697762749848435416378590008498907891275832928298018840351938563091542988623434365966410805419981921604880422465004015222517242029768620890508362211605968413787344078940348442061409823224825814742877526728129276108881206220323723098261569812801652012147930098109690839796240541164035682997660841428057419876577927049139918356218853642006065139732079923252284618264907997274934169926515492323479922393348215134134005068104914807307568274884902861236335798471557969781699482768781658218633768076765026397168402476237915809181460699100659578942921751840415772856923782233860313044985231484070152935799526109687090455536160561166309284192988443225202252536460786760557036870045378410468286166614568696038739089355487252489426555996345117697120137478298859888563065621659021587475743236187015708037525804433259657121867219685997308150408341524414398831720530719565094954367746244423308995312383314774847239516307547092478698899525589921814816377259686098026263758727692775124052902289802838924268171980658279027649013351368079675183830811288067594015246526046989674879322260472609118704271301411705568725137198513998578873478753172703569289160442241746130457180200886957660028902827434763978154925062721927072039286492072248799502709587292528389167758516570913942396211451815614136850366229961388110805781115168579668500052001500996189410508751155810593746970947123016465636511018128407010136730150441963191969437120812815843491232990938844956724590294893906142982963182942419744835230605205089084958878782385910005191010224679822729616635749577101467700467071521969009679952656661045308689862919217149229034069161602975282497472878372481501067329583870798047207643111905102753985693244664345200016553863898209052444665420819614653429956122555864659902868119763095979978327649047756061532153856477708924023595667027980643894480101051605898963956850746790028934719830274223751760141979455755432036489099986854459397813384443317307724760629948579711098976118260242660357709699991555232138136910217660344450185504608667647808443896968072739980602022355038714312788969228082048823220264670506373400843549375876745982880125850436250918030481795312755204803268858164089579867612420490052070068731753046487346411660346955424260231298483376891136717787452583879619500548386406605820973444289563544188657209380397361180878502617479531053767401059641944644435011406963057665560409251911141253595745484244503310395737320711958242562025857274791876271794618906740112887004422220395331369564594451102490956160233329619583025610037134503383805553140013780821124563440750117496320598407571327132753757342992320175754129066537537461236215531454612517875459418620088048882989589793288985762521431943575132045670262982872495690170385048217932988190275219172737076085244752562499047337140679808401247212561395950177767148467908779579936601133055787316356633343100883172594888798065232962924843939072094610338927768508070057052286954291208561141252340884636030635869082582352224280518281790865158144080212422224619010308534773472301562809325414880210106699628128763868579724069172273082198272281647690969196464319683705286295420375538831041184698005262547709555285008371037463450861324194136911141662155171437152698385553618095373573738502604079195260679320866039306523958140277831818363090426419254889165083802305997253041816821863225350223975616374276497959062269344216170985144550457323723867999985841759044278928634880646083763837977315504035428316944986739364616443840392825818893828907812336564137370361793963186714706206167479592505110964329649824068813357891723743230953771904309877211243295564641294853982215442867637094301191381387338737358819983898556113094055464571774961810694589712041995377963631574859815243741334225709147491660901828535709743348895747586909979064378529556245185530708243685051798794225316547298759417475465111037109394681206570633380860937642599780886428995765065931060251096481487015287732268026824035773911741674672382196459009296912334195544382543736471906298476435697626204239459614274430700701550089922761357014117578182546229473835605426532337803742504858584724199120514389720787015788017381465684956072992510739094966232021206837818068576847075190041381307601325674555774136510108459605488101905757557606979503629661191482913853529099193052527172632624863814190202690293659853429938801819971808963990832939359014950124060940896834982917308888025613417550356508580377818682965178404214980875982004791950437846751763946489715832358163308447802371403021623331435939831450647334983279676016119200102999156806719863423547082834872294387634198287706401956617838153985350236388130558260836640281231903264648071095019977271936256148270477171956917751369536894376504314303561912424621241497041085784275557047644784486479203073159390219318325137197813023839292387229272702233264868228188832180182846492942312036794481475572014765658384175391857268871731275999650441973140595420064087722043414652282302968585729277555563830922607408510461064558916663495533480719986052687960192122962425103597237270826713521366991810221230315033836654602642306281196025180023482167420063599951113135664056090178168383778635283749817109454622058631948376792539921470370528487808191231316000196399117452224806476082276168668933900683709178135952168902819965717519919330049792615184245048657980403433668815844805072323549488796319617538071340077785260843053998310285166930154222831765372883018294445546866876559777610021980051328343166884155062057616784495892635828251804542134304839796334427209734339535061648376847693193029255472605697586014056633438306214133095204085273438221960016253794968278279510735889369561902023814914203058940757309990019248825064210663194091227590290514374096615015634068421374194609166817520677768537527118441656868587424812264283080034007700810990192930580775101666775985465631598143604913188852877759489084978323144882182119051268829182474778326457060867814279822245910120489404456157975551668756891533422093233463031797915841208263361021166315574732206872725119156966366049820927967510419986691189643181562046178014659569110062950359560381626560231458347465035857592319955577105650205447486281482987938796523707519382817531936178452992551093085582980704152717618281744337395423923986836729018134646974093154957963872803692617302652149557698552368896849941123193557540463630111873390049314424964385301991665918905520824703691580781849699088914945269867594820915463942241734388624741739577509561464389514263018430864543937354337716467278547294422978478073257296090414839114665561690343770390617038809932625028618222133713456085978546786787905938352409906633885524771956752710192944970160057676962222452145569235874741592166869195112767749891559642333323228428042835349798826296871775820880647539688994150209241613044500673782322588641449525795278806947926905933531877818050190641402776438121866139867422888369270468388421455733907733740675865619370589711392216336401970355677002301368863654597576483550421821651707655491629467945353386193051083205067291727611365156724620816324976232347022554713019065636608983691379362616940186110678328668138696569296939147374359071806812527580614172737088222895696613802013439273636635898403278884224628859442375397806993136013395546608414284752540661249455317534023222476559486475295317471053715662890061123338414299867783727087663086875101332316918233734870228048344653675969437573879848966314472425100809705955893025309418313572399986288009092578743731797087460697625177105814670481368599227988088080466025915696043962928692908384775271035362888291322935327399243451692494080712648321668794214993604810027960615413452892717837618373531964152128489046424231199666436982004821653476624572694516330196600997165252384599752707937606224191516925863787980162895519907541031747032557246973019566722090693878811392248357363421181728285430208201940323369126708078236467004746716787986284525035175414988073068774686335150102927750658351933247996954279837044793912395868342887454285358577423211041798401679834006875140186573237347751504800667376161224810575517536820314251700098652905908455666261245228575483536621742454976070965476205402442832884007308392986793654378790461226570146850188279688700778544335898545002005614587911794400892664186939257926832375813669165633667289054121190372558286660765083936126284132420331503474477184654945579555474398367523383715629092600808820332646051061230574632691407720632384878347515523205561769811824544694802501338415236979656212628391176562614523080592360432168210487591743097351266787305580869792093478762755940057505188112465438753016762050257512585034780853867884976467945956623861560984467366394512937323750812053969405028709006563579792684775082155817245108075115198133622340939224041985877905027218870303547853479208948224873717999364976629275368341629126652978580744734573105785056043266465474651920883297265674866464793626477167759107277653903267210904647751730420635693641199917081546183785899290143793016785067156530198500751668296861411026525612421565835160602185634153160835456325621522934983196785691793368101531425849812525428221512962458510104833499393169305912476856315903601648153433336893156969356154725493491762430479485937780009456653079012541764530243876789415079545651689829266770986455399032289685077252052273358462486289283996193645806284170298230593776142808718226109263089232147341110186256257043370120749700391341895152935496329394389960907820614925933886321682392785770274444194037249227260264820755429561718024267821793457326080978865970707081372308484132897446013193554687960194240765976306748925216385106871151593009727777992309130330708457680465916896808677597473749541669253734010671474309433315511347953995124506703788189074106361696654489391392246849934429853713754529934364379337239467654427718512902883059934796911473405051835737632951483045062604272887992701054743869637770218890046063522732960359887610594904551137852556633682045456989068527007678888687088844651231954285640491266882377213177329559209854666656470219902763373146061527141304121300403680911761036089709478069809273577093124890700244110148830924554774324298894670017387844889078015645569519200338869122483930017703270267583798382904585008061256010400312287651787982689886123708323665521787538840706155476381539585821088782368700437268988508767732768083590942166331834468369683338776774377657201574023991194611676921727361457244762495553216520329486489614263287236126658173419931014735170411859014202844952019038261649654990791658165651491411079054725663442846443812857888448272907071955730092116307382994976873570381859378911679681579083143563780440185761584342022235045207805138223701828725978001523210616435747927750902800793457975963527122111922832692093304919255783966034517162109907419355821617525547393882833562397507728602452491103692752716471045386338510187115337708493790600339343921916419995445436136119986836960487865169905487935135240473662020405674863531513716968005937126049570123129480166086901036401983316974331579970539052373805835721349234137698297182626565754397408012389801527349522068305246043818023790858873763289948241880618198368855114518569509659505991555194716242813562263210344324096597854542361718410850631319863035172850978779817356909275709739621037672009755740706563462776909652978614681744047298318678593924842850093743027013372633526938486148924392044064402293734217109498438379598765967381714978937262256102658097311722446160184358754558374854083235421700714786342077779384756788651005105276364096973754242928482396045081324073895397088876354857978970692758100628983483600639043626622737903648255143284378422141577341507181142251563901799185646093288977358547009329428449834064081382418090005410019936556450416457094947768970468180680503712058464184595875970680798135633433726390600363753659502864403307345995746398911490466869926642830983014511189660557107274300460870083920859666062731966857229935683862123938226879364133345972155713460346216573628286054933654408010195315097588352584623010120214033924606371452672822201581360445935486046092148075438173337071655645306614914515517009125401697876111738611045085772922188978793698601249175287931668071067799891387189041949477904803131157435992211028439159481783153736637552178355916897415902219077417674090318501562935299338403440364577335666022548792942359044754523985097479462090557189409754227688435515418084423267590023191173519258006167380830597832750615471472623380904549362332247807669082349454688805813141914969110474478355124705064034475935335147098597697151550274113004859360403354274101246768330688740507869879911247967773313573934488179412994988950918885834405648137628930324764742407665448164671252312320012875615243768660132627300950583629656665887333848130992483066708362968132799032300944766342311651255720263345447499661024579468874001303832110345832823029438113531124775838431973798247827414911370189458498274544631497712535257807593374087698408333112286653754241712908674818193665104938375715759173062756653002561864185734172489781567415620883408289341373935408449630706876946491897962040429714011712173874848688562023516361813074708451991922834528652794053276365790338524972538665860020353560286008586208648138924056936190630670985851243905217410464360848741795474132429187853182803875728779384386370071429553822777008629533082348818659394215088865242547701828955401406856257979272964592467760817975067066841927644086207729178547500324324877215162441017172132182260302113722163448021998537961666127295884766128644306436721224115289056056961341653267544797415282871163522420617675150441107277433290065899440564762781651610292308652860827668024250976278483026867793888477520891412630405499248518699132305185129293416705365832148460657942974467174936565448482801329582553227082165195752099000775934152388493024985024548797220667574411585655494319324237834062098149822533848978752316028597105636762231163378820347200343299221437913526264046585210518262744314565220733975836387207037045454291630780638370883955871781076355288165659887903900581016317501814059389625654310332005093908320602430924747069870608016838956005045920087785201041330866083141035917952333293922143354216461729234426943535396532004157369040710883209466457207713424016637019411552761107501792576184031973663801977248146491848158817998360495284191412814673748476133553433710824985188639741452276783594493793350750709237917114176990376297036363869307501469990662015552599765670048537194316252711448456977384784343838544119158620458074250165571281326229933226722429320763263159648792407347086449600747955596912576353055898814026425470486057359444082795627611023409100949175550166135125288636239912535636910159144488632005089112298341422852890102327985422296113563755990595356257303625828830433496639009865905696322117137435907461639319777301495106885910299557029764082374610068034721160683580115628745397631492139350433454797377383273860047095766360000880317521322560012671235186740855603428335013189446459115449763284397069683889844844458475728261785175308770427961368288525883199838504764428212040171095950388296533901515039775851689991559036135042245758378849412754899852230126285748832537342284134107375677349993086203477519288145040025163830754694680093185444127927769812347965002862581778954690602779077704326970116017202292986037085283982561193415754912673548980964776071675440061046094389342099256567110679255426855039976186339168458995064231323291986420091098421460171417948192895936769302721661368023138609727252185725023022593361918991517595913527599333227362072169473822350447130962497181939164438428166078711198437007748987458125106506505833150471386680080990553726086977823330357205415816626065249731096437722129318209107413493199860815089093115502063987266510770282070630455540989346058026859404456029328137794757647108499441968619805957092884765360401068642443257946358583162771709234771844539881177171176059444157375962797560897818049772691178326948243377857995592224628040177431973157719227959245679668007048129502242895716386008109828007560677909930810922991202003461810237987588129667381304220453800959689551083126103903571470778644179740331428329900198646071811770993691530252122297720001061971980814723003910232482418525002615665531567654810190542089893418795471787162113477642534080543775749532774444516159077184893094120505211416166347273731336345933232951199974601092573768262555822233413755490405509792743277063462928382439403643871811078923290147430999416531353149070573223202674634555576510746449689714733588284931860611831307589951576143077927814299753551195271923147787406978095004398378199458289898603003175033324533231889912744657609060182970254255772811376410919581640061304824573990226981824885220624963763572848739032984556642019327518951850598212186772318820710446362848574363913637633119510638824664824285436533709383678420847183141952342746083222472380449107362735595755061176030723295368334652318236146080399399371862091397467951021971332746879355211472799978827212984759000876390257177882452455322892769279908901361522035604002165328264235052672380797892440544571110153774238647223469734733365504120081373676493973366172807641594067787083637722723388439894336026644399574405331597588084387826688359256442777013370532061721855672827441659825792225163363943988834578158445258755236252464634405176569874000354116067030029344938640476857708870891151761668740250036819151588654070783631511362107011030170619227620483661588872564236666679592852521137586083186916917116743731140611796735747293596344644690199326129893293437019619731315493194731807604059829928015332676400954224288075105942326250339917682577814134469189234366865452401404055000997364015821536826243191178237525461340552913295884868989520365557360496061720665190968704555347464587352675967923164813999344042071385806327548509536460532694638193539722821764059581083496593894944986023916414155066629794004648580446233065242899861389198815551736158774656000781179361889016576591935709201100751585182138365751785289760311688512660801561228664817590701352319517831194918930859868356517925956905655726791802706065007735296224875168224782833426810487057622703688518517986815627807844275002978204427908848593518169032291378368907328497546993776181371875405907406303570742092436584502615311460103937404996010558345265390738215697171887175304438967829826431072460136241569876920608090718969609843215553913189743017940222378914539048321644322309556761009895476342970925636040982908476644662341782039647825802179369110109526406630153167328212000860133353413517656321942801377670331076221986828343549566799359568345301071780381829530411153309533090325626494754023964780600753869422646897361562762278573559801067244850564961496996105716190212416359875350299286246086892351179388582832119151656991578203815157169086595705118138969462940194790016369159498981829311150446126652390548288040996918750432554251334885508687866408939886431484367421480178219142486004536021044909937411011940292981175376453206231608063395546344597450971731327239876180857831083602341456882813697280650829213120867957118081927416233166674125402011274549870846403623827456639739386223603674513589910851458624397849554895363669980677003246025840230556161527281714203035811416067133302219916723764399607018301330830673250673827618616255863426282465373438926840940931648023423015974275139384739653493359727084098629295002222165632792553607382311847286067017095084214760099806276746466121664298668641886318301094433345454639272015567859436080885428146393407831414462119214327679427170856188771784995576331821543520582068069518563643280230371643822628774112342863843436816203437613859733875486603542119441984185765269553941737871974652580365811707329453171842275238297289089323221731308840103776350486955677666102213983137217099631437953932687029773057548662675421844302336552114115284122300125990557703809790644162874235116048788782715511025412528687342264612537527742252452395136449066523991364756249465831392129104227568798403941789224528141798107448864766990002006837157871583463547514201638164863776743915471943623556349965648604434100235561892051563935532685164356819647418889006745556576285136790322295715075801280568175206620371566036842775023741197422461773656036666164348402305427069530829357219578610350731814901198391926152998386492564161743570919283428960130035270544399789967994916802455570491821027143182165200425766617527763448003553883375284064047202975690589810259592218287577981841919211127934963149362501501345430558778706460150811610167033006794494603227671430355768007724651904231002466247636465484428991686691651990823758983183499440754943731165053533117915603536641392151490513872480944387032275156359287038150639154161735584924110600166925822839902140728285586877336626723652357539510579354941974079508584493597163173890374507574313897854115755238481495093794568710451225200591298596173155780313490474041978757865247695956340921065696165022804878287909369363468713583495889313878846706648893331336346721204287785277109217849011042226543107120306250839667267482593042026526768679509293274478242027604182066864043927342509621310180365889627395941137424113904734024866990029261265986915965178675476847740105141718229949594095091872906077119682350525464560973189306794729129823707634183178030378391851792472672600795079388382875011836233618836222040339401496255355576622290968082028724523150340278865788941527466303459241929356677921777970619884181235024832234741140276850088587275954756429485998291921737506168924419882331702646270702629807213831756139015701352494548024004706709643992719137572952041478773410869377541329122440620344426874020341222859138949422612288586010078459545531356159401627766895000141681259143897012002294563684230688694788755171618649888854801796663713457287815370329494425360540017987463762291754590687624821998419193012116191305703947584500340525990625162948328625148574905540551148332686762754720843827326626965489068529714871833137218683036400990756182929464948591637745794250666755903883930439307264082258566324121902288437614697366922163966307969012966105172874636940101078547077472581142066094240745329826870682796276865250446581133810803098007276876684895275829139544328928079754501025375185602035074462081554074421425275282366875436973081326547272767501771559442531733299892553670747227843169190809973231374310527524740055574097553434430459654693518845786096840620664091114214623806267207432398232337247858072531250333077114017799882429725991031856019514969654586235871499299739617340385170634796560519920551413573409907642871313339387332063597947012691397214869929970876290003036988911698948317696605366016013262807307707862613095185187375753613436428509346063789935315674828790373844009780917681470348002368278509571052940977156474608898020299011731048007521105192466009273435883200656012434580620967396335667818959440725958675804786959524282881096706305178193656158391226737219292589260801964161500031123378002206602593182014220795353018075368173893809602450238331821792041611858271447703892736592659567784824585632024932071837103335721954110186067354353915366113141860298192843419517456773067814715406507032566724398784600548478116690218377743318462522180760357802147483848466534852050864145938608394334112758113292614457726644857137578235059358314395869737665849848868671086531213143689119380001687417455067208218495725180923203949082933811704515303608413731873480543455055474479625994859738973107255674137863220547702966910088419827292264366053007878227118284162814570510881118053210665714779136531531123447483360444135100387720434616554031673360868919882300033710386888394033253378803364976412719224646039146842832404406111684572152064435478523663361939274600199144501909409960540201467151463865119096836702765030775967659593865695123474097149155759945889960365908159259328995241428206642401258994811138879778780916975480663508773485700446340566320132809358738928515241998694394780124572403660368851641262403769532107857333072310842922971836417658253188217741390265177959513710910072406580737366680564232473511172302746436461364465976447015503254786830140093451792086871020601472746098526859149065016313699120426318459013077100937682711641333610151169954683007853030661841514624424022357585856736261912593329677618712912364501471496783703084364561295222102636067275287777953594276767265834731893892956461108711251665487115028472056758170919535639642157189826289525174616751708213232547479866415918006797248765111920359780768917554222648804727369257283108733557921898375106985127985635612431417554333672165103739426328731114341727981483889896717112167303303721582156362525235650966907661900933766564470125680597732165713178765664605805501668422840422817626874119182111264994189091734831741276756831029070429875714510266127311552352285227000302426113850493848695324599941157436590715324525162689803061497238087965916305352382204203306982797881908214646657861640986150689633046282625553623115941827092944034688010073663459764335011147810490480898539980144854677888183085946341423686157191646618686936099800852220359228933238256784502866075060859324721155589106167993776755592631154113328614988813140648493742601694631123099118929431632416053173026873299648773294009928883043050828291218960345756684604459854383814886468607418518267704338477548187172063965592166406407470113040263027264988844573585589695080308461358771961201301651788521609201191745619507513254278198807674228726351465612915916223690477960490853431616833663857906477146858486198791212934608183261590814841407811306161199236557758850448633530682091687003232563524299016210411076420969518370568812572800208624283733251492140502636270545557960002298068510503236354164356338932102282418497044062487249029706500524559475873065763579126819289701463637469355273123701385223186351006422709927949347538539850200415533193381990306950850601340401335272873415872145450013793595230719222892284407111110702376863503281460467506006803028242023948127180093751558208050409546993699045353180781104519225486823540998546929555569393118941467185213825512579344243320145711640606978323419063069674632413053256709454774337472476112352160223200391374356746879673850335187836618530056887120774153845193787751996272382159256193719553859067221397513203495316715761775321477483518269851909346365404417430320141071403105016638370288236737205042260831353248201727588689918740295531496436850483598912756075013684388369342615554983992370736729006406857444891217414538055904691730955299798375390832409989966304052862265880953172217876904083613363803806246107222572810344658123724363291129769383241304118506005007231196221029630861940471763733841692041185179313276288970293781475554002613706295447530594793308702982857133543944292444103223173473537417225058871718761327156266543876131774531935256840300226132573694534549545775865463618588724623424515033683962980798473380536924323906119476631596213650259469631252964674100158340630158935516792783738889499322429930627835901897863421694839094535200100872101200984464496253864824771896450712857210168943059883074311793980383874355037944593977813541392288911204684188458613201691001593880590336771323297810823017088115693527646671462471335356628085774376467544111675229068871193619377156417882201502630983472426169093660231821802490727842275691459700287143784982435222117921275820873204915783309550820793210276987287886685178883724521182934883598968812740601723999208213125732396398806220836488760973697738894039696558845879437409862410297086186073595008083245799819997990577023098182350043803061764591085298473616524189631612099786371971857993641683169480670531750574966172664555785820428499895628521219333863949482027963634340329595563070538727318168401297914607842206247423397416314634908660699832054120884799905725898696396325326999918231766172549329629898280016762084169495994569967236022702772643636119716969245640038783708078443248239294666517747345867873164739363483941908004111973061902239543370407335219579734939688645646603881913862501389060895944042306847198514438001613701951702481809880949848289682578591100542916199908119210781907308847521579691161569648986111469947613900946134381546302371037263230148748723564530074580516483212494358065527138712175430089440911692258075620424206379874252324467454424378939630573235159356336151483124019796445986051702888390532094298662720152434200172507552192938719438495741069607356195202707148716448238803881173887375932202904998979109511277139029523395015348874700629662278127508569800828271442357631516395872163488192588105171867068925272722694930600175656659563819114715680675368227081644407401726239609726872404505837263330048826628708242991855816599361965421967339862362031849051376939888422769197912002302024892998344638417759146929894030698763537658492989367340186413096422540219058773383831673747607858010638588100231477821488141445597503174157136820330744717829881736814703456945478371641200926784746472234594602400733936765523044933983088124509336795600351686759312668667912557225018355339503456645126895667495540585861739022525559485742857237556423205930901067868220668538906532781293992568612471787054313203596184066854906338465707624827416862514526281307211255698414252457399626643048316978850561827838394873708254210621487773744563935119128038538807005486458100786037999554109808792630396806246614040607462706040749945587368162596095638589824091060098658945814716385175195961031710965887046686444141718218282721131549794163110975518000450769271145255465608180618465650400074907955302530172349842835997412933275630467625150137942984922104718016884174490663896018817904194566917023850670150293409967700506734619885772671440531489603106485100951536115336208258728761664426925601424838693840041676399316712191263972184937408186704549129381207642605535543066393572323260533378413116114806406590648199202399220610606369287594857392825385144698294974889645393771607906434199250094504935340488342599687882804676634754399879649239541125348784535461294789735092927164307700714535939812919201010718226933211903159942601604392781133729774063273415780650443299207810892130153267553151360385685711171174043044327240389668122635072209563234341541947378067649071022229406635915011674301015203437225618627198414459275530918101597155895615500947142904662670178461430485636268005176613860675615780081916181634985469263304389934014439977684092869912516881763398858602714802502307495591273632375320954634423111763130347011433004544091159490095630230576706103816707494764774578191751316981516159762277992774327665562615725183996906499868855607000128729892275649838583855364063854322583649515761635109126320218692753860377998459761189851557297815733932483412076750379466397379393627791044454721457431628675573428225739442369686834425914684444323877929440721933914549745077080867380006425881418497686331457763321763695337866979635959012213999828088609464379738628955931176994204514098081148371954252134623803268350972614209547533059885817201744555196305528146782903465694064838449975267010308126760871944924728562070355695477161457868521159591209287055490374647414419138271366006110356216590165768721934723782708961320958546441030869960264933493631450290891695884298571632110013304366049155618000568420801506768603738539858412953679773962571586143816845916510958448777983965153605916468575287016098718449767609161814652131285291573846937647144696318526584205072901101582568781645702279905277466019289714252045808946943743358118861561693249329195744480871046349814274436046942478222439934325728924057640315891161468735872648814820920235840022169893853305711672901194825692106148363599436020269696044108707745051332675799323179027369686802632363201191650910526495884378697429908601275570364554249035178844019080732506736072274125790483635515421864542298478127904704433979822747284641104650643003690931897462252322607924261358033578935961331985250651086980925596217772394440771049111896717040691471628132237568298589848745442835087256406870820991077150055229930583549200180200713533653209232567227791514420506254705282546772674263090090674365469679141606897282241670345702349766098230270977487113070685205881594968367755797037533438610029316183153428778432266654319294331920325153460720499690665698014361967207328256597811367345904667094424849936179183136811099901298434027378431797435696244579664152528236631256926668629581762858437527084487672927555772480617649252527075139291912390353300813738931720655869080283764292022579110894788310294938812910302919750761404646791276201268950658148767004756411170549601297917575310067774908700326578566070477659252541455802865331438077955516497663086273053926422923520310653986853482819503853598794114876535059189204139738158551932631784018549628122089065471355224679578571159575080141115209742342765828068405509542412594904102032801297949222333697235170863725649987870621494597573183501930296699318807768411944751770904039555407890140047901487348725076207929325544618589703107816352083360782293557125733555195678335673866681187438935384351873049080388950079645188556756975615077726604742266491299957035579809884145010121409819476223500227338666916114659183403672455698204913915512557829414963696428524490348121967736700737909470134544612110184957008905090659282720156798096826188850623069452925574430484785393746482027961900480547328089686015783282888650905369291535252272339895911369056087219007999704237551141840963844043473965660015373586874145593720021358664768865674253533512411227521512483050435190212808275965541684815873496334946964957468379505724995374050908215463275579519724869331593011301656156458185267744163767553609846466943418471761168755881665513272556570163700115335427414388204797162368655429627940630195429454330815895189728834219437830332393708641479321996254082695809022859519994782443945490957063591057510083319466676590665570503988525422380467376454333832863454790075001707607983401159433330648990585444096423394222185204249292495385870582162641079002676805990775784027408968482601566521795726737153821479235000660386490215807608610749994130867607443217578885502357166462722806816318235814960585466278207790113565855254860907403430376973542288658502055415389192865672843285620519071490560385173034517080960766972256381039482884379304123238206311397688925619314216674107418089548849231028678570062603610812740202392692549082782329177764664355449821842439304166504324376791266781466764803855060679246174240721339550685030784522686745873138090109605179027105991516898067756394871384503080777905156352686171232075138135435704760088617735323023231228835943657125793816431847918785899926696098415528734093589017447626449232912756056368029927519320359879291227488940731073593336481818995423296177646720845759536049823784683456938832171422630683707421939473039862705159001737906863163538066712156788854349274401004785183547954701984358275753126047429386417864615803088248958976225789065387800923548997888428791911961787646042108851711640369938104945746655326326977050687109022894245873690959664771708508874646152903222701911256825103596614219973563614214949651039184854644194180718173237870893159648653670411004754910195361408226175244612404391881752487264480160266385667805604511827028184229020290393782465655444618442431569278065486958907691608272541994748109525503928638194085230498237236932011182985971037083836491926336973010900888074573788670456548246140820636758953269659239369413389335390450981755345836586445331560153952956081405298971890817210390836288366675086353408365040985034972528386784479570609298763048614273285364765563809085446918551602878272979725298755875673187161186632851758656596031775621866546194448896813349517691857206578578317599327230298682325766205184567516705372000510828418497765563420356147113125845715402556619431688032408844002700620200225134938530397419060485825743908430661313266942099577892846701216717875003559073873777731844558840370464465699540535650007170902975053118368636213298299520595557451787823621309601229371687203312363649682104181431704586358917102059699644381316903253272842121491036689459554864146824980035098325890859374962179740620453674671990919885875600487758568047160596098084950858491887585544797717209936859545841740793746765500133133267999933603612076564087567630655839525109397738031313616685244436317611254880696577135474898854742650595182498460346917730820850131389249005419894186353887318369274885920332968676547587823768756686986507859003861507376980807496955527766899950156830137027971802947372158878716411452895272265179155008645351108631012448008802253461620988903318169369341201177877351921356854497519249678563421602487897511125823651029577793807871207693108464470310692030015235277918311246514700417969403474214709409699335378090595875183925332917751936377603601150748959254782505993797089440732899676904134976864154705516761674240783482079393837361986921001780043288111576673791247255934463881974824728799103169793215735055500514267774336465801311033103790472488682996259314110138586360407511497303170048614322676706746254469795506280733007907134708728416982241855804396720882790860969978187033983115816447858795138041616452618339419998439247360866482841954040453929750792892066664896784263034657953432593671517002192879281384979972026628377948750066698480284259864189532187193731497945739593201700455933283174796857861328280321441224863146338816401251656447671072630980894532733498321547304985021721524725389639291776981550419755736341233933093454582061600690065562540934835787553150491520312790132604038400124654746845730708898832649353724877273543279946008807844778158375283514250180105693647157190935592103856001333492234532079444781400558228629159675570634892390349089185759799881102832217282975817292533855843833229073629402308978362185120725557725943882940926047140588550051733319741448257130643277711555669224891252476405468023467839309222802551881988755191843011991750096650112417499913317585648189265752116716806705500418329913704526599887336683334825318775819408426514780047221792071428200219070948244950699252290557799373739232349229981333214908174557427739397659397233062329302765783857626508100487561114170358580171306230296854874768344217680870721209731093439897996651442811835686259572356600720291481846009097725022493960235373965547115254564235161523789273008102182732984757434928144133110571575955986423151583362474813060992023060228140200817501786063720743527043380419476212521898472536423614072629792267363313894621645778282022045954436676604406480706378007981789222107825353139765769022558808361587668051652920494289382233395579280795829789010409929355580970767650083748915961473306810699972796016944268067918052562298777427769390240561671253216224696114291200552332986363031610499407764827636589481945958398958115504551479361287689008673779453072876379069072665442422736867993426268961790527917711901697232738940385327976716419788351824697372121960962788958354442396825154365279396705284622134391151688623689083701851997622219983386231981480602436306041079112832650985340293429070404883830545773598247711808327920522336381924522787186321370213103398623285659439839709416588817075736809491199781453613309308016969760171660507703135089664716147420316758025789740954287798315108928525365836733959165130182517455307145490311451481293271650162453266157580497626070532886177817147450999285372502094410113952773320524313308869882936650467699472087082342336430410840523852354467746445272397458178639527306954721187759898538894294771410751392894339374955174420217933587900258695071372820236395968822673177578018133165364465507092679086501937155936243505820334399358722192703148366261504109807402020428308808081442871513809824940702462310111216487506928573444665366032912105416633882105066602727119784537959726722835396830657587307426033260217493978823401582970697610289125212222719448976712354079131694463609423848842797411217567476364553438085905872748345060028458726291745068310638343926540236388758450037297868253233771767007093281668071160103933355270282999025826057806594789662153001883791473864881985668423422727368663949376589527338395479225644156084070589129581126299319079037729688229344479204508676632541350067315468494724930826334800854673167004616859652354879577495882616280259325825864750735968425539091864914937043373901094913024269445325223573579104878644121254689141724388401843803453414222277027083698494692586534675539910342515518761403279655078971024985921108493709275146766120171933647353609790597016046160653872929152094767333630399775636539529614145627413305154966347968578226698611409627272488521959026643240231861378979270686132282858664373912492791460988176987655091767997102349825496117851093760411990971993212467767801800436231707917933936406010114902922295343570191003406236284631700821663824729120221707416280684658451494929335990760339542334995689156626245566227576450907365524389523283149449460706641995603195946101750213554299179114500002800689147751469836219505308162466214774736623048272908981807651886258265363594209451714097772461734062702319385699661783095221451746931864860334825028434297952677125228522227274711153775916461156092568270175049481158113290870537952583048666681068350155811243388773875302849966834639879838825434274019826439260130582831810942701321971976562692588685217218742160961173369878002739010962598823391524783205166657481926917195560155384844423328613269509529550820011547157072773188279924163817102692996347625267706953139496289611597004789009744529811189922255170017549547430596592004439142465399889572509466941134723509305360353525261006545386284275833224091264436690330345080146054391443651508118719883210507756655786940238548717142308363808180719721868654167777753867841629826839313949454879817054687612784058289335540015059875751167084827930573754125758299222999365666187222590955817820381333550828410630000465408864870101976767305666700200458675493536179756859350292621623366776115960971078339517644688502396414215324632870799537698342884015767167562849040537509372052139038525057112647704876539062189178603358406078840074149185938851874979246833473965773102602168742479448463319796029454686904829643241119652632014908332809859258413605574166917658762523915631966900640891880969794255628528246305393726627962642588846480172065482241580918779842971591481472232783198496148736216442551896566850595146435873363738100550204550327038052146375503176677887620134259905216156934359960911555317093919185659994494530105967118475084423664205624194836344029209983311840071856934479139110188009506806936153114379805115549207050448864277318944982128464024437283953699364052835491659907939852682977176123574561258852385993128786766470167654637917590798990833653513922740453481994554305922933168513535201917102972319305477999046477068904467569208265310081950883160216591067559335576964222120256034115233937964238464895615297191902513465496417206835542775699943744057886522715961748596714381933195550699105389490203740564724026460958977825618405052665396619365434463614782618391041888078945975351352971197109369597122331871435847505872057039995628537114413001535025399474708785069470527708498688634723181930628294258050608891252343135229157293865823349417799754576981991819367439535663062753951751777541629545308604121415622361501614283589889279010007695897652665484244338204630972174855481695185116102826799190944254726180470772195554842357723882697783636829174795658362405447250792944594734331281920123412631177108228518504793570699209962683245645068217879379262976142426613553302271414500581425430821734458533838038107575884357235915306464809616336500011301197092887711055930403750190708203984327096814015794005831297087834962973171683692433599676605151392592075478591162883010299292224679769475773008227487166092267839826898650807685631581390993816509165029108327551017667216392250455917393554447178535387759759409747323739806201700696585655013720742336314677902112827687510681894972850697171824971954208203260762915660829267427794925242606149978904876901508566343594945530657888143529647838230022583311734692931059589883260317434114631273345614784499802391018359643040838947231538979133831842553730723143123427157182325193175262677313730113077269348835674110511046891865419868369810858046147687512664456397865054834598708646330393972039486136846196889229239662104457170262180628761742551558197960301889055323332889152712941468241209540354385814545755752336411003453833307298798896697047170384281827682991197606944615255763381554161284333950912938362693270981576272083667919893161484527551083223171257526092794207207370772571798608522749440122041911964421645935119381777109373023170926095827916525708173578819243253674968816918958140884421701861669031447959957236266955653234234325168572123726276132577778853788461605581548515315615330874014864289744692165136362863477168665649305830688649881615920845760346128888026572256776596078646389784976896063345395475574148966269984366101188031183291519321772119626705737854948322942949527476715551379646347763426817295669409758845097484320652578849721977631319023179938334000490277720998521607549961704361221237208575332508362234734149799187192190507611907049704148931189055345108216896926619175755520978457625683623122758829089233196918308025874207578325060393058382358118976097316791784843690299830467993195767069601084700405555409094981249237913842060636477831370675866653383243848643817617710042778178785718947097752332244716608904790983041124580089951730042129066170095746956902995102409894509824197201015118658594691219180112671783150484287966004693559268354205386665709145929215566414933234726938258141089853327454431531641250029722733574939171713086386960129168954388755525417607050572801626846785539917106767204741682831536096209581740502588390713007146968026390243994127189976915009057649151683190204439521732076780594261681434413844208433172578924069678495078094545688596657340320022059318143601353807195420971190619960366614857565513764655312081637567339336150893454547452999367037606139078328291480539223140476596329991903325541766143493434459829181748244742385720164047282526548334114600090242510264487116641981710973975480113462007806443567208141403509667902546413770061263898491885372892572236374926249828657123061374073776920844221012954161014936025032167680414274681125375162979251705463613562808274346747568621060513584993713134283771725877080908410037477750690024094796942336805875655690958091045471367176841639545578623213965509579341112670770206761012863190808220455368989520967723526726148215213520411464089503897029660529743982636943025488855059496983187608471598292344137553339996613519373200924896108873296470058719392956332003505020427785939182557208007165433341991049483205340090226267855963816633905251410394920274789682894841095128583777789851148132263847166477542634348830227759440503308869336699831846902933504757682999690296372010438824823600727484774997186726609779095621224296282519437612371252143520805785122449961619403922293276955183775939372858662642204971318729255602966990192236214813972650743638857217924514948094195271026918601634455422622000357239476199380742951830670833475893510746659818880667941568822326599332752186525453446876428801495498557657722707404074130881360666541464213498447393678562448565917544764238305549703631448318777032704007634871022644569436465127559241776001320535160281819216213078560522714387245489676741190282093404853893205940584183099804603401158877644438995138258817209510681517449335099732031506739863609909243151874496392093907797370252403164001512678354198191569516732628470725098367784114097767850746726933084921994993858304143692831692693431654549177965407322080100212268929671276023870611759702233270799681632835488761183272820563245205582772944524891505939416989421958422318967744289737310842661164831258351494186284536449656747241793309058438981192744552594006180578191254321491434882539035123538259047723760911589866863125866054178555683895933234718904099517549835908591585340112165534856335401827071115258389807551996972604374840555155679624047143397216717947931401526187059324747982741253804015809463513070174592798801438479217100847145405882978055450396575353043621470096427396593594922395240020341031236374093577841519898456766616392428879991932811309614559211673218399745720941675811782931083704300499750407924911907633902218325838567151400644919771154479388068645082437939354308833036850877366903461688724853982685923043881435361688586695655418873024875203014030709029355636151596870170426435485036076429740542895370719609553092662262903951169386724037833499198333328465292831760026064586711402686898330504067616792426092080735650243364072115434239410779322958755747211829552313295188224376634152373271624471010524484789721376647708617180076078462710931773477297025701638140974584429972846285751329625984307151169175067212983517689324256892662877837543971168111485733775554910162659597249067803844184360162500354680972869538504526404591745537919809858878067682127726711878697934796938686888786671900913370798250145521173330700145367897039108293782314831978409289769994032962000550807003572538733977052649689637658832151811668281482021117950040817422528256608635641338616321432229412760031186863041113724570639391035118338869294897315679559125725808574596178702668270568628806308483684931490641171292808613759263720936931389901831943608245421287045076737393993813653049045409828516438785573765998060950685306238728126043947870024368991772545106876247537552466970219403487798234052981796390651077312367897194882604926527389879674460545810690141011507731858850612609566699297592085996450039841952690334174137700868086122003254112427219983939633745681801611194662467802860238506491399269747475173549506003011101205282272237602833268280966161651510648270624514462233139689245197120776905676827836104045268740256329120018644240081667377111796609311457450954473919335767746137865800277441114646250682294326960344821237875194740612606888209906710255417209591118597342184655505395934481782880878181597569630710441808154809407018051948968477604323351868574903597121679786263590338089662851294464547754393706051214500605728617909211897618362418707227485918194016764728970239738411816368104725811230701591337199507367258735723975412320255028939483920202830720675745654568708669324780917330662889989707598104539795356390059899983082966182807141653444437814653542917193936394666781464866249175068604379956197719840700654844423796111777073002817215544100794906595317190306518586890307116530046694631837783353530430958257834591177925105401951945189804319263681911131807299078589320099313801493126339596614957637259544788519840451481512029924489376494573688698943871817640473501003781408225645620500627982635329090019540404785337877784357746082789914867333523925252464322549189428529532323340045231550050715950071390147880659477928110459906628188924481019307598629558507877992886053829995607481797558226243800227254110888077952791795968211923643647242182574824362582624354407594751713962369600017425426623718125653778543556529369579371451810177500767066915278015332281226088362551718566301837091058266623428270468762421827282166900571843615296937081114556219188621838210248014077464959055305409412262595835897086223898069020187174515419473529340683951690121797128811826377542897580137907005270294614401143169290062273727459022498706061032424446347086805481904153730995446362908725533163371358281631515013122416741921925867844510670657674685744510823820630594663208940651322428214035998533672560948313011575635814443334216256842544382599326904723279401045566182691368077485659187046179350459385631846833060246396963332334580650466792516274343230888750226947839179193673270171687074621602382165134466065961227767141291621546413864774828650859454133327162498303078863132780740250060611990387686388836635946657251196807764334074553931787422152921835069769447450576397888277905327944776165185715996949764176768953641492964091098036929680278006868568716959453785670866318939705508711708675533393903432680711600454704178802027090073662937823750160370717066744795284552048883850083222219467591393855430230910940186523054159640690597895937244310964015056913818508383331258138350071520248158350287153274449107759971064721505751027526549382716360334226871285241057412366713483433658718468840892821857692403058464929370301313036285949621314971506037881816753036775891886408247317099447975475023393359044599692625578522533084628962169470997427242271259724543179484393247001729602983046810399340426237115242024250029395553817365305510744593239919308180800734924586382513688899846032235476321023067699843750466961144595922431617618993567854509927276748821855704015599059860922815022915491429295062674772889309350200824039194735195366362280740619926279536655219260185106628590842670322815749172578882843388201354673405713205670039276404965230101694405387312498034050099891729839986380718122778912277810950713447227431561818968084754248740337289708662291752833492108359557332573130681371287999625140600188922860047117385541513357163110519475971970848729848171600938675011497964524442280512168102750933686458993689824516571934019475293123604763012575755757974875526556275254135704977956156216415843450860591841886694012992706433087453300868531793554657033159538937491347769419464482249521035787881742087478160617100607662970719820065966858428038668594846593200454197122962118716899399436421723172071417070524145853239205489247719883739255433674064867956441650045398540946189926812350651500721052830584411307172816026410830787126660622675796814292814142410713950812828610258984957823023116753447005678571085609200535543782515840111362675613183467879816286927677010438456634834294206848928290457429285467281033646243735757438902402004921950351503497250339796958665848061379619128526531175238630701945332138674052959396381417866223852489784559931938056118822795768508031220140439243872838062254515626822876420738938652605338953586460748773150192537484782312539877165852456256448159297098829326315557157534020418445765044309350907666445774415204534622906490040862917606714226117587306544377730563509280268109277997959067738805742230980762966910755615482306847160809947988880445003004497566336812412224537222015248700617294405452249911945607920012623515033680948011987648040655673605108398003796298684273406556771707238049219322927672193315567981484827024763266102378194018859770320841651109162618936134361746174230664688968266960116723564960587284776791128500249675816257534625329044016277729601698403071104360922506567599217730264958025831039908984833996373830657609351420565222251125909415521517564308592648831000166522025563966052340624935029901293707966300374760937250202111419813362403844813500114493950194661701086090796523423659890581697122371087794902024865520397232344440051012648589701752826962201330748119992736758652411708083475244997091193298558796064558739476225168615289421717011411642868807797985681316649203184021251331917589090466487669578363627960677135694712445225249403092703140053101470799341727705250316671386381010221354217911329156368506015347291939565803968065946822877155302792160597767412344840883987756497257619169522866700539746906678336414395093851029286321730211849316756455368455673449254836125809547141466868144422795514685375493216484126685922759288567078694645647123051439163329322471932928734144639669468161831145412557499479799190157651458601061936269831474136559582155270450225785777136902262905595980092014904128164148371574146874715283547550756109046041145883072477813726903884783744800949727428326220010695314120741605973864938518144978463114575534766018517730288097906526976677563989958445044637481657433198449059033731688554847852474100580959152721565367043100357230944235298495695354727913243499397484894185965036271289737691161460362591779259222339616493261747914324508644051655137318807002861390607776783655673129173780554255501575872757765372198933217395898929591204113800516476640954958269703303228224023935931711184850514889845698874262667303027683103998479711867496834184099587876836038016504656512712352382494758744409285965104091920888318679222995541555990729387580400356968861768057356346661670255252822906807207056547155164548766488793445235093412797715836877703047978180388265602401519022140698175120116077962903468567248578227231439814028078437941957479290441930089078370255318857372216947517922899754849147360552036902964926389919359607865089311299891392387736409600753993041693628029740317540712586601214158471996647260609281974264471367919254326604158804696675479160031002657402230977695968446038694965517359384512488916364104252487932011453703447091298927784552749778937228042374896280713047988230740163295880380178152199016665732670566239255210750472746775375805385676051869464057026423726545486584297069785532716250613072372783687312600624669556403670124532818123109488409898150373170965776397520591253549346273095552306456208684923702899744493409488239414894621368535218584552499361995639256021276949311286010537639425313258431304279993184633772568157192784675463890685782882779934129925923188335832747817331650707322313338324857431436475930410786247901213210310301276180224824927059195537685316752482719083819667512167083812538248578356732241413753895946377384123395658551074105762179111604241838092994042690044596810076785667402874517187635668486814207385215869024604368880803696701706307797382822053918696171785042011908511351518935853822656538596952121335971892303739981923665077744969282072845626229070738762348835109823923600591016080786883830340974337708578688125198749789560691248644459255766747579252371175189687630885168632232127880705354030484776155450896785115799461547956132523539682707852269329068532014708025327602984462160375695733611772590786702945018160084335969207643986590922027738804299044694838894390062934835832828757564530015853996467819051770982177209185057969573030193947440092376061622474029131689663715617642569276105985549708750375789232135349039100281196346413971820852743410399912246852565995796624529432824715460743156538718982987650185255569293894467866775783046197471001301529168169824439056097040008863686944786696065781605983313545468394956949678088204000078784278886870079101290364132617632312382687965660212156984707153286038276970761502770559520244111038905466618101986305792477065642013680255371712176672546330046911689586737919426358434486793917385090098404841775794672662491887195670992514273820272444560794599637521611896174192250880617336852861726294055110079801122381448807888278826870225088947449176591358056143822435429990440257320741230943269195463512508162762271705598996124557725577626487565753791969035657832550958858200682788589965467003428027769952627677202576261219411235664000071858990599716666680661903896607804562008490438661764822449472438277754817751777588830502168810180900854028916560886433821714418368019586814342170109979063794686582243429516947469635297829136914893526074638072301843159377829325627381394825307497727608637367586808947557818951819578641001496516253529053551896770000139486603237762482215334988004807449956509263940181656521562988122230949759720090901313151550815964581449261016496436549636908885499765187498235927047253559906804098811482086256725554313079991661162690826821744691829234872317512189511222345173686642528360121451562328915939731751189247846252668170020563189275632393390390016954926332270973579589411057475441904188144961617376542733213346486261601346080251023405384030184072900579531798497766356305770522687131172229900987113089452812684063228798019073177582290834945380426567824585000945607354737494021961378235648950880832637465428525866030505317552227143025510531713801015719434974411765658215444281475139816655769828297653422879738487403399652132662108238315420564016718843359813282419919480200727137848163806407456398518009713454024188720004374176870908693093421685014559630154019082288824326522839701465245113412907104821499250508325513035548728169719690406496261287386362324890530111861755416017731229307062360269278894753966073158414317444768182175519823734824225665273296668245813172493106831091424714828470689977975365718906255369930453134908096931951344466155938575906841683461562787449010822621297957327700870283399485284434788477034383859179209044927508871146013615269549276427110563508518011554507763170694756338383701302486274212338658232142241107984152848651194590944023170568435907280845431939015196225443606607581393915674280171522947687344373356827297044322264258023581105878074964504726219284280692155557510713430349718655840262926172129060928063640912698104500778099314308171252762363500897208285130672863984210751372310685897717506594807567349112799407617996192614954160485666650423476911876118002964850047060911760462635308200307859706340415273898400394323892938324219926251745718989253684300667361342448730010453860831507353398986470095306327961321914243925406008789164779551567093412513483648516381842116209633280565903187635708742677215387654942487638201161217945941788983061619771741355337535818090791659341396202084382281902905408279765417517275720431124593726494745383748776684079769207944319934106194999395240882223645289362792391062406920695428203306164972426761661714364985470061189876942421050458920803312682056382959681193481413257308668006559245436869126018919743175849619183935010104441908512992037627639054216581670804119730753124102067675417443279590699640077831783457660898623409976949736504394592628392759670798776974471113186422060160418891754331081058916090480101331630575025869817434291665974147376819036467528340472964043672584952734540918012546709278968001501165870291281649316704360593709464068007609828737560690327811088443466577649700726987289231710048418493413990757461339354714557106338509880917689033313121466747478461935497358507988631387203971210557033735772339575762505055223963446238596911221857361946846227022534246526224685033960687197108956695945189073335628734901316801711611249963504643663616092834133498009771580732393290314923186904466584127501435586826956769897311643285264470757360552915910468112431075462750878207521892188122879732985827226163672479042062432370107872674562056635189201349724790266102388640790398223379735288047322378426060430311276536835228593564655471011312289383187604541201377453683812791051511109082158805771190387151269182897617186838739699181532167229331960377136540885989925528544585527590570834436194770947581573362353378075437426229520343264613881741906612962505526454738082348823081921056462474514925140257332802543156862899874718333213877743314095088720355697658848377433365981729592702163913884784191962773592230534444221365294902298095615925846359184744951900277240400195137706472109618237616378450350924086447650492222899385700268573352666993884283170997288207909726024113525041999558045518995224503689067733703692627880034868599545956320111685307423462356396233786471860420470379493389326649739358907338977896963230505692283736062402432242192133214477955069336284496088426481689732537163824465247633675275879864020639546308151500691961231328649108381040790234918060107178305147107038047560982872136410976952357289594532957514261266035931843589154591884403113891763323650817496067375013544670960677597110186880341298995387576827483380719785063391158569869926687354732578727762554923094792862859497582768231072811466807326568989841974485704208130127135442412974590556047521190579456183179164569204839597926620031303652909547846720546655722036599314566503032245929587350586216122024559141149347225983489469511025142316367848680087738031047467973761874059497649167471537360661619448427214063824887737715995800480598725355578169131819387526106055143576104578657050232242471740408154084596094256271099730164034458619505826026546629806921194916761677740627585467834503029105532513375008674262689680477426108072225972755545035102706869598278038415572252802170174001750905777060180546846912613147405684109267904416139036369568152254745261129785723131490302871424963705745668303564442908104120582912245182797716269083855194653184201225019940931670912612045686468078007500799462956249520540110396769994817558205989016481075305649081790592916049100079936026640932879462158617099956518435332460899290641283870945203729941679938076092143274224790172172529978465241103371766306012524025415648547146492260529843004825503385494432986039029339981239990300248972440363744271725214952131066803502929179209918646108476848947724635448285510852396843381378369792886713500298451926890268699649222243683590164601743735541881565746200190239949355724239559330280550113925382031323434876546626670985940762801451755182175098988826932266909773979780097071528391828217371015488879610202334247732052129729237927356743234242049048870932254585247799462345096228366418412728073294613034762349888530125535048648035784966126039089196053474123411817377297857972864338814611745204126658550346432693247579474366126089285502046997409662531259129179289655480123459028396516134632247254335205620969000389234847450185973761881572278121727856407521279065692207242842485297878709697185310860729009432798660936190329798085305590373522623133047248363519965351126556668079530485521811871564381504096098327948761879049666701472120336014078757034164252132675447049016880391508186989702892276337665515065164841947941579432628392653936424382293054942895721477228816122055473937034924684724840053928537512359088518524792584717606890396960938751985713595360949702031709330624402963280096749740402434751748698294169252923032624858728315344870302528004219106993813968085862969596143544887453483157388869833618088430665501134720538065234605179580506037677018230197808562409531153040844923676326899382257796122080565531173348948945866727021263917065728118189063028165187636517882199719995079954759701658446774290217202641254480411349048653278747327193353463583013172764831980398829873075966494018404695300230884267737829253710403097742240713009206970322398211388285019491042122712557319200991694113502460783312729538622651620385787074107575501931711210527459428589362793258332721999688980835264241030422926947771602331229630033546509731617894623246202821348395577248687896612212761467166555517072305908285578402307185032903026392196890736507524311064626982602700645836315894565383722878604414797734671983305846499456375663194582101718736205193118960345776126792503962518515051657018785180353894070056681729203776384560908613307311657343082590576154897442948092031753292727731506109159782062567165221575067358263928561455424487350072663480070701516244672563542649616378259352916100095748710266278643354923264047984544072185490067332325353164120913213061317455149547789098918571975890814300174814069138962184868624498162549547152883113645147139650708238284148611868038182845860095756833281777291217316866667804202429624451449803899056847826586162861894425978449617098088012449740975440493582338766114814736628058831242808056880975051263293260891017284645487768649317440404423293468485023385578295550458409456330923940139200005541718033355948109616904007622890537909916820853414919383809129221380833513059841241070412274434514696106922795717460272315752085887773733438982052147188237767044965724135272856746661814782830768903641924276357424900217457667886600266763313457623152345879739506628882871603774833036522235827716994521840758733141153578162026522366281825405641418557779367129218161277809859559579110928150306163715846785013150688444747301834632194888875530580410422545690239908750096677604813841464745667185711580305605899351643966092997724583957893274864191738325547464519622725648951108401530687849969226536251875310950729097002389581166123292928606293832517550132723963898198289126010961472205462330558641312649280383423694289600893686589130513245313051599358268534292588635515655247488897882061106609406642944410405532451189799571452314636441060769934390859265878018258874323028810774300301156366270115703386552910266163608936559248623163454068624652239071931953526719214985314124574979099574467011998271836717226788412093046323531091408726810457486126868958647243846437017452012185223556395380191580808878220924698849560300398719507482709595203637080951822165535388887089878278889620951972004974994460297334795755420479238764749394318178344751732820382931143713051213832685125107275106261329268239176561007617901844989734005483803714506781162528848128213660539923795265537807939611591171554552472546463165631286886116923911957750940991175269485527263861458382628487209862302844371523567341360950402039032321462408267093988342999119114424045751600372715167219877914477050972203247562022410268435495547152758697751927473039162260179822018822418917976022502088284003603705877927017026092708679194082071545904939196238316649292767297364101345522134924711291072370399716410678645956820848663350733454464882450671559062608800683545644761396186898035193633646534948144658255472445543441830750415583614578827913663096534713589554060280558609080385694265124965464927388673574099153152664774760632287691251400952383246385834672013260609928725937281605089095043096700199464903275069169126265543226467910754083052197777525592472580900770542337493650828848383131847716809909948229268755638766726501019827129617575971708757056024395892058917363923692515009673076747936107051864891475424505062839085131640482025073115051627036976776302557821054887207945439748600871279609816239491888368259227136293699207321313452564950472672636733712995014363649038032738319100377628608091713942645513975029111044992986541788341789818910042009538488779559577025397180220303050630924607907907247361055508690755562343285782891804221144182303775232711008870697408682369074802994548250431222937121451879560459679272026711567062942092962171427629688908694587580845920239443337002697935598619813356494320102614387421713428740781532465202541263808252596642303656114265737850996377984819342973045885475143837433392485064060058378393179069149397869328242417506189768779339488969409608500031346366402610402924258998426678065805477268984069867794858180475569170974148950790369602513412869420717228061709718136918705024677196600327902721401079905998908379357744619927605720457010751113615170690228669670764934733854773772231877099042225800596384093382172553190667651004202383866778996674607956089421306484998190916798775810434844033188994002308136829270534646433107735601052775472212357762596198962873782666994009817002199102956404640533235538255080469806654918620780160759649812786247550009681873408328906683449549110157020517889368164645365447996933050909623498934324778993566822885874471794976681613446845533220393035476249572346187269419524854054636780007087632701208150996545825435727834376772498463879445985804887293880003617029231166338251678170703460818437681861464680413344410265604926874609060320197408200353599834394463734722815094392096639600616199335036789559840777758035413840214177393803785660166341234289789667034254470368743708803678187891446127793597106938521793427687199356891481747925475382438251071301483852254300356037789187647116813674287313150050767562854901212243625961657422789023437575603120826986397476548041628516851049622026498185158778392464024334781315017255568618102298100444054357437725719608638280494867120900773283655675432742825889129391911542831885736651861288612725077355071444424701043102213815429075503463782955494411893447996605909566337863587160966162299664545858349561507815488012669097880603111695049218517475438169336364363205271209161865585279428165866197554841240975249855477906624034800354551732726753140026396166108213679638303157461302231154161345940160857156042566151184493763296466608766202949085437998356905144071367903172008908053375363479645301805775783634040125618383013376646444724244811172407792899846385151412883853841967285583633050750945780097650850220043981923161666626610896218605439744488900339455232125049357473424569457547034156420954903975894404924609658021293524336341018747769142298287620564328863198483598011220523069021005116962143348191230318715804901645091043262624459635223155403193745607610880156755338855574600517216955314756292416291144401088538336740464751494302342992887761698376121338971473045998758921745663544952769528526585321452504480343547802585318208578742733645100998358876589262836427744748755299924104236435588232094553110861723335315745750389319913089305307033003592394596539046202361849781993674115586756266066099396470548999779902248165764840263159025854907781445347829176713635825326948222768012232521904815143969671369275804007338160731175529123353191170731071593241853344373923575003805850967804691609351232370045728151098377639310878853115277337430212538632847645373934312178472722045393166655432202573742143617683353167099316039635085015694217510437640740356953712690252745587836323315210839615450161505935611000277027091327536743986258734008092631777844347087509538954940625018280063179811390044548302822609517015246804792391626110101921857447834965351767626356193760346008818713545306576044900771486883008334523214176064193805200849939100786992282929367798321070720649395118764142861529023090082643720458681547390193793907623314215521853280639486767360539870640048265141343656905182232857948784496393605318572103706867372071046700198261446187724511295378883797727732264411877306139441104244619091644911317125323532090008341444534351778206649665162942257479546268329315939560938155507681312956466276693052988374199206497430598062394595421757438068926869480187418780540174286232062029173422615692612000284003711363636842010433348333516889008125387596965283324346007311805807226949099329058747270201741798859328089773919620825496808430384947375897662748868582131877615606292951634762770609419739529654291421504549642432637724805333986476468155568158595296318463201053269505375772566669281628257641755434157218380530177978796733466026431974154550696896265835174220993788618363159013571084115666020370939863338749053886207912512746911409158632968907508885339485530858581149705791062808183455370305561251448647994528401229585059992488777413569887425255474264243897282974502413930347767636485248096094618528765738496745498459606199078310707344978377331515171808111441044206671457953590188909651344218743576003760788921984593223339901381853351472202396462424923902764288157183440839101932090564492845005487386893979229240932599946897509264433547481100855972582210534697837897111897792715008092678692224801685547992830913521998776047314069290246332285601240085334984651841294488682867204890642320561431974804127693381757102304432428660199604367674737142249994476193409786496555299923518021355880563582728783174916441891751379953107507132593898979012728622995931677848839705373986928679041691300205059949201591651090380455725471173422001215515307874612138954548556084796408932110949385007864030397792173083149064876760734777390178766223000296793696642651667567636128604919407038940355977072022207191634338564123153789981846245157438428631111154284669537784966043369031737785339070413509697704984022591876994836761508074859116130120534800596452797862515659548125659006102235159320720955615961939819276454635719725470929717052000393685648863331631628198443818791848840635186926490767690010786378101508263550471781744977237001508670376912268895728931834212501792547651145819077050609810129417842289110738780000150278484638561973239511571367289492716487605844427897796827933276704214524667622029035912100166451645880742452365516172460940597835560006033914873935340109953783531583051855248802638730086548856372526982260383674639290182670764543684420966238181077384399822793379009484471532589072037738093496432155860250017608046047940344634529531394182651188949355900591552367642641032582135651539368172698763485703659069138916424004692672682824603548404628125894513648537356075345506982021776389800147116500854613739365395785309011865461268982259778740892857277469320053498912521461445782477538756839469638213785138776885720435396233546778407717170266723554909076823568318490124845732793657053205300345708886171814375734020717762269096801891432895360500658144294282304873770598773562885878523908380863676313806226768834615483588356120990782987158214555422453088720112035119670859792012849214544207216800453285616877584615512078497778100650242325661818464665180208829957645771940700261123691969437601415262484597960822651239601845572073682645703935354008999730609574897761031444977950665511576130011444556675198206790380523858192977144814222481400468287803156676793995009335009534732345841359251244923682818237456350022390487901971979571906943416538951546306485039966224395002828246010388411497236869223685527087562999412830100764039157646131548788557818857419668792572872948422032210626280257983460035751086346680110713730894710178641771905894598759400720880512936480976498214724342827413047260849553077911038927021606975151298424110366077648739885840905349279855982533549652378957398210432013025885964472176302842196899962187663474712517646985442299894558673124552465237019044513279196718398436883620763924852252608458272720965617141912999828482624219935303249341087043429627340108209574978750556666266340213589972574575123086142595005934469513842467339930508230653262035898122138638247072394073704776299253432209206383378333376948809483960377515824432216651789830690864610927196635620699414159882480949663712713136477227791938804093431383834394646198553543354397698069831192114600646828109325387572644272390261236884323387330341866588906862214269289246853266537356010942135300062057084969394254472836483021425935854555492556039343309426621820617403041735230266870172605137671218588633000435923425712486542050387109923181600197337075714993330279398820864398698459665437971997661465813966778739152338784788126182575406393543997276985126984040559387374149458066577750899781600414082914429682628873441251541331084888434154526747173483352566353616219282612561245540582601313603858548669105372252653506192792248563244634159882302290516034344198268778417483586611745251221127662520319867886354436872523090694975767156612468034082695559745454849199314179133804702172830278208209606828362722433333622079176978806653593707590140718873597067738954091358188233629121487863085948617257438669161917292204128096183637050591464104266841300032995988474128871184724082965665406573421064577559555830001502858992750906241376689451518175466641127933559279906687930961429551315418359348056009482431287793432016628259916422690272777132980075751441574848056079403277791124702930767787996671163972576571115500017153815754834068151758895728795323723666852353215642276304896667725268468809190986683887624193481153188555989879061807963243253140749907327743411159507997514258622935683884849482105841850282494557526898371966713292061603801326977278974251381183160417512282045904928849907204399069251382305060880078608213579997400096288248665468512265761997745216758673848910455852100708814276791601240650327730722106643914482261785948606327530943711847392809457678810527368138326001014173939267058856763911449600735218522247286446717839418844973069765575445696827567012967151719061203988580060220549650885196714453865559471712731907981706566380619349670172669223142948868481055504461250511083628017294921123501643959875662803497387265837256639558676149446785936576625403711064329719791977389001768795619812750570961033320159602608775478554201585442684816511836166304919242607679882862797609672106091414466461923655589116371748467983107222424014611378591737334463908574833309400269588224036499449678005944667010003413990371432403977612660453740449493073698764262611910031118563134611232155100727864919916004796959902361649308928145145395799509123689146340931782603212544429415130454913446951498701539951529576743739956852644012175684490447533302841583356584940627329127688728584983844009826155406170762271091768462290332697623602560616394610680458164246956356546631306932654335026406861800287921334815157058853134336077931706905897297830834092513996766341547423467835069565751289061440764977614404716589227882444285450441574338001458175220402289838168898386308751228741706114607048983113568218634860567211582206095813351152347933659071352608606506362034762122677368676609602743302956750986357960422152465093396977758179940585098056621727913130942538703224455585367523583606212867333540452451272314186109063558614452614686451346858656051760919442429211992373433242793903502344219240458230490176812518106484770632459024044551248753963762411153190879566320536229915401436377732323156160513467099736491380895720525576057758134959314834848621040041559031253935535982205156925595234080958460912738876856822970746742786023995919593859387980349408951786211384083944005249627305060483362370061088063942773832568352995071785978463399079772192283937045602355458804286923570151847427757475380014045824676277919918011819193732700548250740858550903318349509971350605217616270524644616178270647290568234875624704753245885168613554321059857419018353010957646192693333257634522695989196599637570322827766842210117869272766268470014598726263383612202374920592924121607211054003351609892097599913661309980022157797565364124251015745685389629160380677048678279446787567619051684628952037305154825171033502305820228328188764022732336218949544825028530370777141276592330540298883129613197930063242760379952871380871068680991755284764112005385410856275445424189826931370722160885062347308258591638977524850101018709590602328290362800300821794484138082614509799792282414104878894836143136235154722135907251591216166759930760166122032089822913827368344346173000238939486647123410211460283056098432622958023037790402335576836398797930967358634245684327794247520872014064690298085490637112511001265151004250903941989304231659410523986802846645263986595970189529639880887704082705386737940533604720351022366589490915886618753735711877321228575283986891986414551362859827777146149948624881093730505089113362824702568636144466557280760157261507318682068421171021795794553779499526722841192407359278175636479090518811799683189812775418374196844104641358126092711725846911946083496075322483077797273589218639631175226853293432670100724882899879586611546531941533895964816152078373210536364535534382790724433145847785668876412275859645008837073562904094199111448945165795535530426256811352604045040776367898453566752927482498793414594962315570669386888850984247936800712779871746746617455823951978524017478563928984481159724277511350813276796191167887016642714264691705367253297068551086340211225693158556440605878788056625952585098559104934173018347805576123062704702837682980531238580591327942928656745336110534174889049330828292877569501730524384611392910977525599277178014521571998542760946796991711893300284933820056844606779285581319789246588215018536796629655025598469007207241032393808350147646596352881341337011300781524192381590330420157829646728960131630607209693690163145995828230285030173670144647852113002637572053628466744956582540198798078704998195689381523923574559859071979427072271383217714823234851841377903052804943498909172723698739473081697375892350045934916729775527592728367040482284275889261645207621965597359369745159926449937547681715038089428765063323860849932710125280550582634188207828031837334423849766080941334576474391481381625240008914597159566084066064387912053207695925364790313604546032007898673727546224065270021920956096541911926757290751119964915964795687630279911767573006187397887346027232279118722780736496540219445132428178951118739183966574705670337307736167802389139617452383485078710177133690944261366810116181456664237091682511869088435113545825197274666564287961559346675687297216670923465333198932208642580276193522689918179100313578285586628647199217185851926301948012494856076033742089843716005767226315654887753949569843330288544378240419611882766575026489715243327296450031431571302872345591409963407816034765297009664788719051353813894850522084720137040664217391797397650675325554388916161357450381034966752087159150219548979355277922079887831753430382635560583872749637454571304055413224066182302402395471044639083270820339857944096920034271737683371573338454131182796280681246095009146986225151934106713507701616376064144654337924378441733195746128876971513928752101345059174798407556674061590119889144134222165599216334574956794938904989778061723427152783362330671161816414343489504334548262577912725686280422859422947402870720423738742898963900100835407878543423810732121185824412735115522263047627035682824530421667448116480327021605549480547406512756634831813939161776900281200533027507474676545412637666767437718732343467102625759521241118741714661975546180716218569828454262980309728895719885163214820642046273270065923088766127880625429457143841550062570848905535788621353687201571965455459194750981265958106061786051387575484378745785820948956081973985258486504366688570300101051727786270909398222449062954016365805383169666823505288485576694099676681417863185619354487224376648325754452302795189193068055695745833830988578710851538902635812344507671223725078702765584379099901491367652215800944854486915280381804111054896523904490509810336310415506830195487486151026781925880267544622553310271775272807561637403348060308955529816208949720955583687719929360130035423592969748901929058403992061470717318508456038915355110188331675546366142803835470801647502074598659821799156338876553115021853916418330712237346579111329001302127991657510220433481932598145551483640124477084310409011611506078409426352026040346328915713345461621852152006384368470689903959551484065659635809583064917784356718197665943236084409946879677017227327261632008595245583683064038491452380252816543402921858623433146674402342885686005138293471861259465466886900588872192174584592038341914908861604008061061069247570121063004477411692255475640030513554761574175645925330582432405037073891278096868463135115172043356624699891222649674354924446882030187464932084484132814297676162634854746256863067480851895524261307122864456981676987000034124148412346202227667885170404555833744394239026328211047691013123016581818477628477775955454323113077126297007789831741572945429042669902573562603318597124541658935155173085069446452796362208234084761026939147965973275916764288208804021817795718096117240305290438974904860217246016309878407785299642027753836664964350755521628514475919687265876322374773774533841141691922405401669247000552729167672860177038792356413656579680566914894006387370152398925462131441342594036151940993633837986371151577566623181789215976519707969572532044285980094495276356419371498624349147954898842419992057331521509005309718657300508775663962184053979301324180720677311848005019068452656001393022840712249395171832132835225089239730450318928828743500543923967831642468316707374788953572726495163539935339792620617527596048161430241592245789803919238152046864850367631848744882213749060465179073614244259372550670064244476144926018822643280093467036871894791119102026723232371504941107622182255790051094723424101608956949981601941279877770307816622875852822355904796232417487683252877785181971855851647034464327247527418099533295134058547446378903233510637955728992935214164036984657429184850715876731566009890356208402992580123354303980697369844953758555858614686905928674435189974461569450688578718694861343485759086492903243995979795890908772361329266359827744908676826321156316332460055451189870104100118905104069759248046847038463971407894749475976112676776663305740519093911450423098865174815809145853269821461917577186364239701040457033626781918374400185458461414666746130352761635840975874369142928914362177347387411636167376528620824305305926255410817715108211028292500010018269790815629065120246788539529106991610215771097720405261178289800248068293734585370880112943163409059762256233797544001622703794666198550356449097336397316504648262795439339651924735146456163200015257540080465293690036186896578974029545938571059592460037511908034545768428378097597591150095677455517454348871752176354501513468084085558353492751755840555516312850943710079212265448617774809377236614989678115596096000142594948954383201520423094697760080400660039746397728968707916119301876664468226172254793601583022403276553556540975515493390306977624905297660149970124356381573171207860648049189363444568398164324462397309764913768656598471428057145195164087772919313915859657007859762274902296289023567291801899205610330557842807380707545261804764635496251280905164104012950713838694632455800371661203945565490552721692870012658801349027503636245431075233534722594983521876469727623866200071631942080221135768348847922701478792281554138122680018001438292898776966956282417624207126015841554245575366721523588346624467334025013738569568030482657925916172912116660020275760723616296812171128076280533800250018329027490428300834343865208953479839912071354217401629737148690992904413189664447442933118906321413681865759324229327549904255581625080795510895315392677065401929599176096576216987989652478404582188122194568047393608940032120505291407260958081160098744710054088970855535170113997929158741240388098857213059145263077836869845893096228640379461680541950794854371136973281529238870012159808943910946969830940841769280948864353018980215108850878471864306028054592381620824630203543178403203809000323733793429811867135999824830865363558070419223862272551129895095727428276515600121008659185560570580712728738554064212211087492896616658210610384555992216171642332010611269512368654357703538412354246756064369249089727093107893196187721820894584203929323091812619732808396091589678187978366537995863547857940641930619232040166904980339025736736392718624198814141002001921171478623458291242524773683437431122731710711190256973780863538163590856470107283569467458959792676326595585021316139297203803363564295684785320740433403398688199142444031582433984139644130128217667213149510097116419442228011892517188831285362343836346685409961076206829003362913943732521305095263479328828121167262250798872022308056345317862355836125620053845476501399308411826169976326078792924820025871244233254102145379891459232297521414783646413337685466410713334012455895140122351539768070050857874505583877399623624159078972312270608781740458646156360115790570370244808065335115058929552233502995911513645087118153021508816025107217013181773325982164069563899661418519026603855900549629654095669562392019138334124361126801420857948824999871751432779125874935786959532646262706933293678640394718441450788513640545905342931770844151662938952523386022548599741600442969293793011849617050186967278658326191635374282358660526972148011583816276191739949419002327048337554245993962821040683647901788459337518735268870931182130920496847792745652210622773525868885345342763985922451340853372062642305191040401080083314516578258194881224203967683504174008534246380040286283404160474652467452588969578080989411893924055927190103764687266267928460620596703990112242054671106206391606484758838354008109454903774441658493255992025138418732673097692838077787529162118575046085610759122351809362451754206331499381997367560460567741364194981001622733534195381577084457048138571219138965554467968363648533731956142087779013521490699296809485391050458873706595253575642647085782586647429718160885185953611916600478622360951260248715575557587028342085550295942844302830615773275419127056753718085148783414294163303955257790279191608845325252204678882162419353284810615944226715548006585661741374398660284282399269490261158377437452454092599303789230659603917546319398924357418363570503180608035160545379971983531414699527213821163991531021976317369451450841219698884694796708329528372720126012896095024262376303125764047543920180213151015647161004482335547134626094412662592796288774636568820833777938408509179053364500085157826417521108775282906732383465288666743049912939378286147851171880442552375726172688615932639386333548649885574804012730058489867072894587683115355467043755704140506339417297895277543274828543142635250043117351703495708157305672899485179985355252158946782705010981742921165758922096944164323807403263219942610295284301700164498846372110948039859156877574531975617809400490008790754054215670040488840567763271832260049961916431023985803946926916066382264615294888679292928265439038669580055292429254998520120220673663725879733559669564179128662819463935100184059912185018872214729940982419952012701318932017621854316696839736830688939825886907221793650598812418466336473091331879498632021709236587599977400775475579410173035078136505433591978983581730166793845316843048435804154626549134895731413622254398985307107900096641916602821608227754139801712981913320593305667382416821950852605583084333208210160776962571185341322980389714487494622612595906950402233883764536409738798333435594705072917140191682548064184969943591904923444300454325586292485420060994993621647127557493684898069307173673395654082921408180674672109626784035997198019489319728294721669205123174111996821278453324824281692480824369346981569723594722129306010223267143596943940606311527110444405212875035337684036877636566966903070298265069515764665432795005807240665073862549111924394619672778637960749503458113292346451598829988334805524977140585669141278766428355812959125083080482187118796610908469395905424212278138364855539216654696097962301774572490603999716552098534127202096829655201107655043241340110185527358835456439748609383994578513937524614648654034859826874918374746197423251426884382408221459969732654739082593216363579718169372251986631568145867302221784017982640417344341314503568235190250172043235665734868062250324886980783619147483143674989725727169778386214243154662421401306552531712990259030377863726801602385802415511090482497888550219117108637478265161656022512608199677322704580759669742160342256857290721449766284731757755497583051417873435355875340611637438471861686503685575959041605164941190387076789613186992143280721965549467124985672446934161058669402554404073657637452641942382778459511682755755173838359247589152223623437735667971832318854041177470263615842283097863064884329213634370894980872279992247013895670228245371534830980700976565826135704454980201361901179756650824958219503214081084621095956727908580606720589354944069163254621957867740597437491321605824577406140122027815178221731483765867503981222175330503490137468057068830129202304055962072999959084990816489340968173050651930463937990478882426449174382328628796664165086360225658613058197522563109903825610078954385223415702437864688914906568017809506034483200384060690706017360406424145263272084567190836632581734447352947777812083868126367715543170740315069632913916885295453964897131498185563100928599482765575772715650157222725646771412171450421529424850772294146086942159261320795652247580349923308341705101738173266812351556304557768054942297444375748097338270877029975672725749764498605759292285129733026552291646597717917142248382953474827341364516495345308711353051611629531662760744751928568016600962007456192863082874067151745325244606341174240287656897159812937651730080991977504961071931324272477641527840364572413392873096318887796178812752884693832059229969506037153322908694726794253379380108151716912327068511006266029227648253171306088722747947389527894552214685775833458936841294255242908053414490192638688636535196156126628461438691059597086219050646570393217332275897058943028549294909216901959257592901493767969573968707122464341470153771862970980046284977271498482430059930992416999278765620317017888945830987586224328824563554140978583845274394292742140514988547031772461349328570359923999504429115800319889389951503061775581028674758083284244158600280688303807764952391636653736988345454152484232912467371474283363536447956297256967487496879699178679870401773522000277454015020342762963839859332948296657208089582485786017384051541244250474639545481118386785618220574595658922859315250160962631001132138007797911077411907431428421681219575819077239600542147880457382573398569861562728311978544526066778890620701108683023605453377407562157219378365548879264161501903510165171817777966896172629411572940866595648721724795893666945184732989436139577576513069138493798160240212359235076373419509636934315220491940909779142771681014321208301175931663410319011934250488724506827680838137568633914276719154060061704559939671496581687323922144196239203884599390608225271836790742284929555552516545228862058226854249186600561986760308344112963756851669876560981906276819202412186959537250815233238295586635942705686771227653523475083548158710604912893593979480248990157272567120838793960984603043881462841928434477892517231294675896691102497370789550764634697814935718485375899426268490966703224847622066378206773712863998519781679719005763479558266590374711931375276155424627441356807001451146151412716797757879286445960564369328840249846699602633009141742253690694905376802728389136428304597881707854508825031303421201898708381530775866641631082091418488736169601839504849261208526862425425506371668327641620419285245563548261829907997499505145940086331057625235761263380239500885729663584651230374551787982151403994598876966482080629941921751882721407264582754680082342934921290979057502118926868343323006772839592039625594074682698732042466835608866511774353673932009647667836104456059549027211398848710723718569059947439457994520564326154082103632783433657240544758613754257446589241001682986389170106546098449141018437166926493019929070911044092772896412732624800929375600250173321981615667718416479997837938205903720590921346419142602983407574851114370543994726705143581695068200492383814896867656092960339939184959734261805022862846555727912344350467559900950010304436762333775841865219901561841390401194347759282324371700670363882717440282922694268378531287703009074338937604071505628600362379456480055840466833385853587035551016387999575338721361309052113811603654481868647584636917707182816453014653384038257502584077311069919226646644087366557573436788121376980160273931450120332659721297635183406264964279266499055931773247738623867761188229035847460241710307001083479760318175559653441229841244894857104266062447658757858632186101287577334989691838715937340113547378668920699660667122643217565041301837972896800872073345014270994931951793766345933908723283739211257772579713015721203068959251931924526743700227367866906807275643289177573607655549943728337344867615115222088025190085674780631299427466043990655315640172660699322726758842614123418253872718869337731477711142185568990538608088982891819913499056929058497505122500304746073149005149018001776826041567922860357280225040050594523772959241593758636332749340087140073484799737278582211178281031161335779475110473414361649199727429183412067883064099457452197750551848579405029647005045489059216883517784887836617388937993975613053328519410338624322109423646317133470456425804531267526759751789810714715235473551165244263288893488137944823774496879670796838798083390817596854995276675363515720646821705851852413812794283201092574532928653566035967979084909411958834064193256322948676031254908191512050156869044342711448109532341136683211733947714747372476020707468250329693726936223501665178890794745754133111541437069749268859079574188803354133497219524279690907521155340871389730190263329205577493107052133851330363591568695410370872462486046024264484146594645816132002962393555681700273671038363870802679497708674765590642172095327080420686198082338672831627757724888544167580471982757172806374880833631437157636091568582937980070425380044809705250273508313075796126614225632713294682339211712334685362656429200927078050738234617892884840312915839704127297146450882345392762889394530735406509136300547888366657231330640263495900345632631758788634539681351167631587657689260542210654292513472604556208651704214780915844257727106533928640670203021179280975712700227306960229107613371895574858864639374606583413602511037810093045729953189428947294239402348600159774023433290276969418085538164369172188238601998997927981407967012619237658822056127756765032419922556840259906268320568484608371774578591182791178993909943875485398046836777531451131057817524080552938632451828865985005595843746927365053842752577238446549697256984434708238793062983318695691332095385405848644764317502250800319158300842662700830777191366990080898483495025952778077758648280042784597471794253346863180475277448822175082356070902867449841554960210619248905967825019109439673954157455369114466968424753137840198321772920651029836977931994682015321166093635036365818432081762914926996670252174893818072600112246150659092658316559211668938442587247136028992178629299280172417521302692390637255015865076740772811421731679932545059380877528851744235719071992957376303730484856654828333343626766666435434869098162212586728743362002418648385970775876853975491012218704201317116803100954262449077740387955943087326401336686988711572029562167322648283463809135690800994620860416317874224332316256521425190073570607784213640643817317150378842127203983407510698168615887954320345124147450274905139035128362055527729296669828251836872876200057118247777133679525549582100673613896367361968581929671515712332028011926123829571961056855579467044564090974639613081826155373744223982316326909116163999393472373251750608741027792698986464957928090722427431966863009996855435200602611138126243159679061311346324035954017702799440206736958800154902667225626647347778805947984357727918437055746244188343969057217229712607770696363524352082603314652232989784605531839993672930249024739180176482391391638127398366997540272371288934708591127483992388440874825303330147671511041824397948157588459023349797946859943951010736614159155609371705586686568818211428628740381073805262526798919908005660256029833807648296451956200429154257836710144365310519085973127382761251786145469474523703403806304451055834281901196448771028336364847593166966435325156748954420502705706050684300203061275896119418196445913276144303891071021910777045112615336727247707608626436236549088335372750078281647228145166040857268367680050139802048045346570838068801905419428940640367132525628881760295886908647215258077831899365748356865848425912270853472818109584512803085463666545948311375957538960739029631581602825685100525709639490603018866252295592261638913270385254264752457183120461452793132188745316067621129885624171999363621564544810224515220998410537306722033059297990260544554766794316297531829101935292120905868329089193493581890832537846455505144075847891803692554119302923867278552342581726760107918678202244039880260692264690126187476830344809157333180851435574573413485165668662317850574405073086343862848581049681326433887562995741373433420264430389329815947397714982367135503754238608504893681151147154013668179061853203590760176511998764275489457285309903327070566351082342872832004256967892400012482582760337824290087234490368708462523297503660619017845201131070430142151003704810070746605067096857250916373203665495729968698986701108033185350833680765629508235351066763224507560573453542276338960241688591700862998882060129853543963412848742963826662688009420027033479559494465593028106347661559385299226644714675048836154746416201363740610049614963614705232161718545670907047259114769627430620894694074724423331199439346514696169168307209416196422238659538333532834410214447932743303968416441374312620080123486944587295482870651342978828722283259423123195127859987826389252950886094337380043852624052660740963309956986687845161468900832876317877479844360716215978545862845180541178335299600409811522801660762080974240247419651993971113681086824038551537401027429001488094067578534031727055061350204226752361932118290300244338368839953210124712204172073755270470658668554639300639670564851427461410808491353951002358905402460364715660953618669006791747114572838127307537736282109443287568400968327642072807939506374537003135608923513226309966253781008905073925768199587401288090723054464321602325493416634434761532426621496844400163420538106022577416742849529453563208546676930976790390171322176561348095259693727418598722598161441393779438772593840268779841550121077422446663317102222872342891359428531233097558686363894825664531392006873296947165841378770528763607389947222378161281419277172847465931737617557432920286058223227751082607612421264407902648938555384752348781525159611244888499008136775454238302835102512361620217212400234489376718069143462028842855827135556413090407525060862005937659747648794155897417970770239063510539407157178216919930688638682879117791880546337365763388107824702022419016220491846618313285747616502854447284097626292057499129727012316569417525987730306225800930383864031406510263781964934899852716727283990618301490151200277841148407423788012872306079295933242036581962864241210236156287125253957047819329487287275008681163400896554065114884747688820877478320463810368634929620274414959304406354575391241452914621192338765660698807080388630906615448064772855995680298293518215151528756323832784722075317603831468787152973847189007158370879763838014182539176591545081932296898316663644470829185971899740300547263083404905028859155097204025731538830901168952414118580011251600884413992781160181338291594723293825802197559651278414924196662379579664919564971920054875655984363726748543105243661322371852367927471330321335652014676791073280022834129287626988131711863865789318475030824760454208418151939825608580490766847100014212751407559145543640611937674255819910407008086530705510065439300982406356318901910879666894439754848021146158507812747782034987636466798578073764122246123487589004296055357521217929089591087615201986329510133007845711964699708317295923759567828532045767740827207392865262443714685546322759633025719648244720602363794981401308006940822020900454653695561676629181759276943471216099385568276414521283602910163090611206678377019214955373319761034902458112443018201927727117193394260544654172550040230397900417003049306409945688846273561113216430196975543361290808522973772941871030233967122468787680309723108312172149506499714945077486962352486563253738187376283792817267154983929008479515892422244268803068519183619036708606555140202690043878195639262696116202335568078102459860959402576187342657154008831444104690641637970580875053062166175367953541615025697744056104564804735175451522781816890459956819056070306254143988008081672925998342826200259894719620828709883544374281925086849891347130954281586503992145487858844303959178553785681076914698639232419669484160481497749141116103468005302192386203499604418106376790099656763579181605145551680299542609362387043120463482295867877267935444673208859656279632348332280689767445012698634642467535261902790538727192310438382374329054942164946615146985243997403867003692090284094872998266428671661223151941730312227484115073002907458672488057465142146236659597731046692506602567535749346872283373979888477800983162285269758795866943252131814348727773578700800604776600573341731154605068102770917650166780456256938151611351694511206737126427981345689275835746822071692851700489438933303343225161306950585587293724055070738084590177595329753962441851944106400655124707355476848850746379994506189661806971734335256986912349254475950163347091826093432982476142946850538790797229647192599841195971723342945573826807433310696279611044523221281163425727079100031311338618806766130948028524538937273747435475171523268788058440314878490911491919359128009756977109322330434295779120404431018329533957525168895459059177966202126919055960591147245763433802437303030182354483340168089024475437870608959100301278904160090608992008771754945421741416319281359743622734955175197836736132929602015779456349097407377478927860732598764621618130974889902035103377553517504893089692700678772734564276182977313532269832369602565071862486439504457789460645048768181668795939323519211841404476912387802537684567900419633876676095656537072924203332406523571154070307547368207520044455324206559933424389623088334337820120163582117844298448115057151002331641258471926892460635247086576721230664132550855677712028022692923037941485985358163006270170391800069212829624404011764836659358656001015223909412120345582761530409308790480382936087541069772758778174411523229475907905480174688023817572567121265530447684362111577688878890058842803493187967358657369859095964879255776643570105139296088282272318560271462538146260509131505687580269577497606997705387686233930504247840375105884649745201991626673702943011148231523899696256223777319095669978369731231643210706598934238282273460880240491172810383474727609407538972979093570543799669735062777306681574087816322729451648193299588722338503820697221937779542052203663383149295314083534655493074958666463931952281232211233474652238619102786727144847260745440347229664200194634297219335950439280464124136612833241027738911697853204097545523377998000070386761131175934639177980525033419287064146113382807453173509418528302220512755456760971780753924016171764064530634608998164260676347363655344529582633548254561045255243517751354209493687476171941980111861512267918403119916186850325978815104414334484833422400610677683499271614879329525845734397751805934957576138964744840065359928293342004476588221371664479073006741518733116729068204493239006525814966292242534452852741150828382758358951170526222767790266245163787619359020362736907681623883098142120095663476149010745768061414657699031638441612999272898812139264082135190062330005341285616400122885180136539398759051192594147940981435897623296835380609850248462547975404061122317051108949360054886794362548858351360817775499492742178439230763056435099614204877865888314418212214991634507650827573254790514943538151729479812675525969788185111999760865292524976969274497231150626070209612624422243326990677172796101171800454700185948390410014423596091978304455957407966812628086514703695287066185583027078934932298889555149325060578630015920575531597557106149638683135127498781650578081309858863973863350522328645249253207750488211090612252270069205666222735659432204677242986102428071835768956581388637901767289226689594131249793537369381147088673325062817524541365614737506072015772989473068055647177019263986363306658273278305443438355718944022634276633051957479953195542107504597750954770647360765121403437443001840847077327037547297238198579836363421744949550960463830049202217082433126468700066768502130478064762754685343717285881989966745497504159863043613008137398809926297872831908884398221944985922312125229024621042052194117158014771316049921772329974935850980491909152339326567366059011452466561503156056058791177015685499359528380821148856411850753955421677682668735058645769858058840731132612020863809889896094781683055503280565049877172381383598157460071260812802003225339950629412369170134005417704899202127761450639302453513500502642536735388057233956386486484475350685651724668970641232878437170718854685020177688589180692348344328840635240520338020490999063511816603326740756037406688317576159401587042464143710267790045939440049798460196189091614701396479491311261083320465170727718621133260523939247038014659141491659622632806792229640471350650802815678154410139520457696314743370339449494070590145358273404053566816468155916774644800798890208126538559468472933017180776711589757566294232236086423306421255309861013022124224247335128708766623328941342991107215927656688889067509039770664279866125976113838503195331218507237284901560457131356372994621743020833264238879476427879903013050417613979952018663745774054050310058548996549711730585831582465163012172413490089024686327367591516396243685519453854139711249419106893542794278354411563134596506593173354530483118274053358536875853190064522717133681463825314147647330539108483046922083599475049395503578176015065998256412935947057620808961306625817032955048013662849818929443950890772415606540788055833400040653610170998099100637490200678592041047918604574251969983376301696302279955356129233490787804815523328901995535504090742090336001404673550525319347292499416529659839561677241772973303726888206068798088105823556503069134784548798684732900441568487459025581146482054896736148479325661137745241352809710994128807950475589882167993185574280011405574802623179246750162150330779033568641456489665591322487511583698712290557543525432240606468569565619837242505301913689807563812802238335212773665716936850240608157311680018150260917789448557040523416184129440563810312560692339564077937761786747790152300538612495201214384177275213355772269704155391099427330516177560337818940606683662764479507574570620940468856460295889531523325149591479151509746241662605850548950672831119637490598469281823659556453315067265510490156518655316307091063770348639897430878143142975210824316621026815904954467400708008670064759534227665549588222315208597037493595709139365810245741571652916774498040262463958496568080864334956059336777816026014147513198789108057002412212077177729007052909258127037197327959496629287921947857042273792742524944118468618847233400409725476012078687434970029374585621084808636719694923683631482480430142963126098287036343641247172531094669233483718018560919445709807520992489495300654449863421313486903464281630990571941867458403033940801954253983901468535609762963309046915275270666409269245327152569181429080130520301276754177627199098609943772779587424498093717999296041151213241197736033926560576417517640302753634175611184984602131557484519619843729003262330294427382496172026989095208694099588484908614270123377537757237536489472096285903262210498011954404783719398931586201792096871865748240665154352698224021121222121996758356479208970398497159350591850162780133474450713880681413022297096064872800669164713847096286073126751565235109681532948356125535087269094369257174466027193017564091904857076954220060479074809790387943547551506672932428413460128514538968019193074068772857585063731261364627849240088609172116390080980517616448923780546330860501721743328285549417114043645738173064765415795195495021788507123554735617080132396002180532704186785406985563054811831414100741532886163820541304466037944661551904730624179931145652908649321213873602980690196810631850274260828411631906232398751143214146842054646605914224470591763955405884728486367515266913702959923496631226401665897819448656545796618919250395677055549348108992912647636765649608106449227510169095485649532711457042842206474282158034024233716815385895834067620586047574372863862726637064713322055715447210147835402757888741327469413861751103023601778168258957193751736139659194440219903697031290699928226393802385451512140105128635526480776766663511288033924002179618260269115742198003443674691586946195817457755554057190475181759472074726567438068212637941844296528806520719418094652128349676591542108541453709185760981453621707670506338938413483440177265359346267506341169486212744886803662373401490385838857817475402624501681143057466671353167772285975428576787325396563874801663317069335064104732187584288019014014733772949971855826359361213505836712947999845228594924056034069000781046119996742951537777061493638863083727686393332349911288717496247366568400830768051733697363930664809044419283073440028323984585901932071308056128316189254317429774625007834359777996612413317255622534752790878023767289740252657306977579524939324804259737144168022554053726556957047775045209710510269196228673016139762476862066574088550960490274973577058019383258384511110187820748183024607809205675100745554543196500905890409719795291966013049376870609199311351066753009721254835160768732452827797627942267418469184510675534129673410973778470006953273275184599540256059262759611508506391841633431769903218523130096812139193581095420430826321682960330983049821838754464182614374213723626049876238194763736640216127070456163872506424039583860724874879047054254607488294456578172344621497348554031675684907901643112556446547638821373470630554004484513026100458215435487293261364089292082505261392283044544791858756785924570286061403153747329105378720602393835247669198036657277075781380192592016301539942758141131204405501587129811606468059907052786021247129283571760876960396573093371195831611404172207517220668478118114146899712822878015372887981957300585372803522577217240450147430577725788872733228708671971916150953318570182632369461607002168126654249310523899609744407920005972221363029284884420693727928432603516628216784506242391170195871061272640299076655126344435233782304784573398337372496705605565601552031901000100073713147830818231621966275439636686819299944341889364884494583938037098818140486146385830430399885893169620629369349675244020166608813558870683053652601089525069622022411764505681331088051852194740299327192493699292637185454938255270864243951144717103024311329519706200920588405765857064468700164984204272312433131291809266625262162925864880414310813287747891630641880895283804409864266736785098471283719502557374315036728745059081773859239403231613279758520632611342437766760826013274415344457650798353460475989346109554167762200357957396126713841562671796638549444678116838380442449770755316073287662698584910025944170566802477750484153891088954791272248901631926652312792149423090365655098610899668590426486552325721932606057969284473643134186263537212350802777255600821800891676263648673855763849679445414811455491437340568208031463150008573103133751656400839768676440696727198839566667036614453095946534088476567798209367827564788232989385387676835882990894429560330656285700657359463070175201639571952946352286734477138346274115924828840802462984844454873426112467959094156160184319922661894030725013657459214490464719380221173376588028625500828769816604500572617008316992808419363128447530942840325002139600577338068265182767620104555869503938756043036080659647159993349161925449879970221044933807437035164032860721150016875364493391514584946896751000267580376750524369980287569165997658141810222327947738942028491720991785234716540482697394845237472450252649892551882740360682618980960198610425881869121328938684291560270417903202713085300350220826938459529536159035109339549991797764120122480187477394440598965809976979211431182687304583038079768138277156665075586224338207237717564076368277553281322434727968497382639239813554788294862385355327105416931297541576812496305787058442799550469816674419262957364889237440099541850585303247059536296901201794444145440983778457374638568568632275091920204292158322165742927919012975971978635757657859004348383540609992387705675390224305880556290941372133558410469522965787465659507277214172906551392927047313082251219880429959563968755718263377576501979863516594305059753375903470216120960131796812763718010575287476159546019956034758783574639918672386760262548443484939799081435352888580363869075777079340688083254170449039000561083836186822892625053391482391018790153724496947551456871773669941390920668219184927212416434465978880647896601540996428108724089519172247304573826170453527808100415329752212812275162209019070153195352236203039017364699652710035909158018284923408150301951631950749535890521112721808202092200368082972161018781099382823334041709058160796836996592279480722554126577280158122608454483977714150793858075977180967483950135012387259402594876660048190895379833056374297062791578004522881695429750976430720824469250132216600091945680404983098939101936857836995366344481682288502189627409816779505606428906292200364789097341381497397508794549958970623989181864243667915267582076935127761179353142990670769549252006197257216900163196062049237242464901261895816993104523710110272365363081851344203087854812763390673744085367779706446130956130010474503936500126431760467213668371306569778315560142321526157001977422104617917337709448559060377163348598663613156005999583292558054723866029695213572561079984220822092140104973341406537162331195379971430911329672485860384764899099111135179280700667724094662167858427235573380651148585373701915599014925425064374243519102870462869686352654538168790209676323721087151395015503772046392119261886991732008128607731572315490357918015644486038561290068440373758993417641071086084652906132554332389700000663254010481548341528398766033560300757718193413940174695623482648027227377277674497415369511287138471534401657376208778942109797646509080402649985290067039315035553524902368831424679815588421018940171268399116070821358202582539079651030485389458032226362273193460692593931220981397375251187964118359661220430581901228410023025613437677541370960369209847551813664064707428761555180093519274441880904933603918383302213671409818027201516322268931023554224588741923769228943254015949424905125327424684091709673876192467592522368902880022263895010009290476262680587172733726799041389072383117817294098546830636854218407713484202855322277810463751800178685840359217530119265978775534477671281713532166165175336980127703310316437025585590834325854331411164445284744788815028339088230388354482984812664739663446506688306611358758607802760503336700948549006783434150969047310790206636024857315528336596786375105875134971726533156993879674015741206853967012341918667585456510273171329675412075961564746172301297024329099943498565370330336725438830329000062500586663166513533647475705150692443712884004157946940087095723731324615763143849772854286486996033748778188955967181201395393762709370222121976470789928727672171132446733500327332859583753159195141942981887552215534754218995414420545095072020981531387251504303095950506129799730330920339308509597322259183812743660609551081675016165997484831493755428239521259006171930062800311594257432939654220082500551812435151738801270357296337670035693422938552636472175937232093233117373432158879130333692788571563647069430178251683065972671827735650327155362317583268129419231860493672694633187018931793511015742941176353770329308355579623983101591407997102568209003235981222640673745885501886522497979523664726002609584324370318400740852231193529423580811202097991706117677067809195763703681476997418515507618332012272180662063101314948743047146142607111820173262795984865418366214068152889171882241878033385883187945022765530537128254730976267769064504630796448835898790702038536358590253104859133156642048607642780649326419985713559357408602908543099745277724247846101696602344510841555376900865323832035926725870295603784086588438319294828973129808140526941483324076181993120713200168906956746967493245047013287961997680656868538069867778119967743811041723529011430069045283783580707689664173715538582552026269481253846771916943901342190733447272125375046259245477736250257486708501196810486690813810991356782231128350963300906943621271225576436286142846166371994029074733408230598758834503753367600835570237903283442520090838857916078210624622864988081548764360529173672145988923476763329000082051275579507189678907491097899663447587507523549805036057716416932352672053419766038022718459111469329131373278763694760427522032730787181046243231397837556193498372700600257587904421959870988521564427312385153353908682377955871845481890536508132328761614472775743610627581195230402687746363877820233662447024105651588615321694064841415734941752534196802764609517189579655096810417548698331587452561124562477438130561985948308876531825006759334520787026230233716480062690792939042520704966981800708908753770190874183258113643213535472998623284597151179883269447843950616348786017219711841058877441377749975135250079603418032972455182010369835574782317827505229829713546700803301181209770251469465306245643045002687559916439723427610539759405862752401618184698367268440922821629151085068598409360917005719627427116157505292033289701898655451139183518740608833978868740656583486555990493038258549839544963976437896407506264430531542176333993339654865951284307621670340473924734103072874294937125635232936905509579917466431001002448234998433661657678542318920374132159640623321987381961256621521542305857283760868963775231879710656218428305806473168365237441781176647263229534174061503426924451970133768625147688825091876911488287269210253280572460522589569991841341646134991288386845489267022669502333476101196206849551949379725988601716298405525898574980350849192478557875494767694353332910575109245214587897405224072698175216215375870950329719867476778391664809770813469724217343958933398671085936335639227140328395557904950621448141975488291448849454734727649748743304730308057579207471156077133140672183272716454528612950866619369233543333821873983303090760432452347543984696648999138145968627269717687652542409746300407780557912187351935542841691234435599197808096045653348169437687871348872163054180865021884890279582247495714119239126315087723005115254259621516876944233503034142340482407992161706099596882776158867269072592685061224404500518958760251453818330196224703090799958290401546223505666158235032376168141500244478373008903722926458297499014701531238916942913155466170184711968592606629798289330781289340108792248250672040299971644313662444204971809122804366865614405566872631046568544364143804366647992922358571568183551002329278802673602118049466528483997904931854468934164776686513939147555288035840677450929966821814344534950659489598724609366123977892295551568094399895341137117835187616547747726818288867275148070222625651606239703031893295263684244820758577612629190206814068241569293966149122452403837353604180109716801904595198072114996462704339626019724763287811310587939580110175754559737203840733284785543170922243734556691713684621389333085470668864332993559247064569281797340173934922882405030845305177705179201141397354768869550905534195966224814677529060999698470219887270543369479473534891362996502141135854999912697446441215324606618627043469540906054577199859607812383279364505675088698688383489731093235904729555697037546908264367966655431918806287083481270771529325136819195196653602851844139306350093928905578675441791833739000045872985170009136232979676106343970741038259593220249973395663502157247462297161916625569597491629445298388442196777611183882974628591099244276413254377077458240513198156425439021845408262195189087028571316372807808620064057787862312339036195519763333094920219982883227374232055813670241333199487512939339446904795531503337603318921927525906014040302575171257480923952255617577402981272370326011356851936841365942294696968603239677289104007587635060674212362705425826900686270368684665110571122453698577132745090049846640291230007698223796026425082884639335148812251140608994302011276066518369047023680205519976892124726353288066061909868182332014220326075193102866988694422126408023052103466199070488622087432945032209233810425167932677818237892204080001492649645953007578357447082481847351117424055647042313489810009469105902108671446469429634107646854725007609202524021867522700701072783597180981746707063330222559805320057268061190185410549613742638738154802771773048294347064266011623183553909778772953057849319948713746431834615412079116282630436812914258693168669792441503468576197499294211220036457441069699115274589041557252467600991419961970851676144576021552321587627766172908935863634680626736045223294320888467304660179859271357128514153394318290405638279005995256625224807210399956423326348305786633534496114338274317871594196874150371607892717460050786717056254507383654891064933650162578548881825927398996023651432399568826788422592174700436400360210596623329221238750035761926153446006599119619586468825077299109121600323148679105560305968255608826257010059260186844024126499668149299181724827312251260410573616760032685636488525390095264496961262023060729062856845680703407125296952648780097766150836243249506415478604625415703776465012088534807069112234687517425313910554769477842585244896346078715811671399820014337046434481421885342814769502925422318670235947510511068696139361145460300283211009499919287044186707225915867554357174456489730538771693859813908329976799850504926474630961917224488550078368524720340865573796635333711988130712738860642483874381424680100361223246300434349931857101614175905956229034637917958599992834099868052771747017163744805082710945796373456011424237631475429902664264100858334889406218237179363738965422766076286048449957173780845841427230543840991519449970849253686918666121713753986517218431303695902031384144265005249354756883297268712266184744199290609112179729993492797399017805390506889840608784945351050953967830586762082196803204008931448487178762713879597733015738478285321032345848422746252980497546398395758944615199123539667589611638568320980316232527461710461979186039174592111984966222077052476135338348759096772472089532379594377251552139203081268810614791075830499019919973762309130532330774702814114189309329450349988890717219853415232915312320205163544311126309941385836997922497712800485587988649657625236791862956550582973557777289024597452694156134009756478423512885381932535178131501153936415255493149203689285200499514574294279400156979805135746902646263120454868921856796973941018454925377709683982443578422453788172520660019148531819112650120012309497576246074735129178513134911933079430532913581287825136377455803702777158075372242113879549491569384155470443134576555676238537340266868313851109371661618643361859096606899297865485098843719419197012027685961660613630844812359888797267877585438928653033820684111884934752166333659340930891923430500142653831851210500788291543273973707955798068775688836237827514705428307051644429295648665817903164169857173517270344105723847098788788591951400704342723167176193023720706721569078142751796775883483887667117361725689424813364467522814008868790129081803739204066716933611715691701144177831530573076395520560438571850843465108737290820757415170827317632253607792778779667312112895094271604178548786894359556727971194804532386828993487734942688985210155218280198876935135716195511411770417845738262016181470995300415661817883354079198681678841837514805787735408735659702438338788497207180382165951595556334341442111169074927909223701096431623181781494862344700306345201064214298313425631747925773979672711570652879296845062973415737831266197389626458796412827078691951935758160242987514074756952614921756682419617243419551028721674867421150031355156364781965172848761284823349042907567822691130171579101644278731360815191796177475652128820656074096103129444443891520097803268231525694083985371441027327908007311941978150317550588902629245256712291295894555061201799073677474256752542155157144413019431592710217796184573963177404249102613776710372767850289841698396289530864313131178432780277059090469296761122283856979253887607516644879565808815020413429515653140600153853923063502074509815694963624642628643616598242998212690370996044592817630932851157504978172023111942681660583982481097236240826161277049361021667042887902819196333178852346838435559218587842215131212927123061454612875744245432963134083852497138121751806699914820348745964439588538930386349976571845180306650876928251797378768746290517215254707080697757379652169160708969347667964964656790998350926214348306118467164676960133648114198951115486073660591430556757747739461886661802167145403869887860212694618128774356711451171747879755285269994670839075925236157656228889186777933001566593093891553627834871306974091028066795240807606414854855098780430175342959104386293765457894601011218364545854991238003640104063938583919762826820660793171742909641796394901293688330993618262539499494016942705124865606133438978499061492648428213821984547252245006484858845930276609896551601207900289265708719230773378367983327304369125218455873717298027084522620194660382291675885600871988059192947991888816380342280961266594879997306119779837400104497990323204260358472543989287972702594317157861453263800578445129633857602670238954139284552241342883228236846248413464478862775012586860777477472210621701704914801535027861736543282908472122395745455601027128791602383471006123961262945494228816347742473858164146219664653476344284349718266320879529615879271040283963971995815625149685762833928264063029017143518460607832409771842952501503885057403104422911206558148133419101699429608834226235413921577390277720934279756888682963084264859262368865555171048453228178108185302345826292852946936116115091010719483582795925434689480720666986328693874997792937111778342554756858378540238193295295347601999038086507890025615896916339271950585790310020751884237502123063742949740107093495180294988107773685146246301347505786629064143840847146743643050002336157775101962337902278894088799490020103348183594187053670709541462853161067890930341844493298504095466507279656122813409373083952574482393385510568249245362883640674348612668762885906708556225920152944574980445403360513408615385813828939600106237493017507282598387308675342959501886696676609001955031634220155949680551778992589508906065061529696974256378280811682836645676318404371557453974903406148047563659899402313092825362396976236915541224100622416203703439144915603635019603264465695333023157220477917557126336946247476187275413511742050128670399624838920613457236424192793162613104573005759260192233829599654045189035069953720356393614916728042144393805113646708311704262948374624778644952943368822321703512966945165643526028070930712120933725317133504171444461722619656090468576517245681891408944227391780000008813383143850804599135454199377190738887655285198172932339591741770156140328427408551626409577009255077495344399897752096344667920115214519505071605444723063265614580919098234441966921981071256759342016406223392542283204899476044953278116898202577779261422453013044211433344666972399137121880860732973958337585827314991372800913933665904330703023921886858049996316613550362851290238459019500202252754626580896643889142546546710477672696661131341734509222662626817556829515401569631710904685888347002623641774486443500324489267879624453977472963509310197104014431731016748554528333575194688344839110835048280837234585706338873159896775076033698557128752363834138986684855668225796170583118215098362022356051972108025386446529571660585875466085199158465675106173927617692931787397910409365757689611999287201746342597843116647640865258145225828732836140656030984316811569248363088971528011571336941342329277454966808296177688927870568619986738480710806963995776206829217170175931727728307424632899245380689350877998595170088737486778145157402505466480760898058494061836984771899582450023967474858544996514794898317294269090842734172659750439679694515644637316649715660246251764986070250662985236303329820652758744366608467400432312084983424377331381480780921003356239777479657378373257914951514067968207716237741447178496603488149662345334526205053325023930868094269415327228965871602376041782499159135258967797098342118398942037603126239809131722783974967405067192555013890862093571776181466688778000960242651095217552584210625966902724314318902278026262025319756574585871815743431010291213543622757864556549437465147959072556824446919189598011902017234391151970950415056453090273893180427458108041619795319144655448539179596104277815509865625270760162868684266247113692124809287694167192902473497415579400797007081380864576006894458722772601429436869143131166037907473409140466258846804804266248495395514159649141049587942502620824036405708041818885861169954443498888137305168419958838023923152632689462477908590505359808061274331950033087491074927859762314500930139351322915791774209622130862445670390380648814116278541905086930319140140750334943522574142339019887260124788419761610430054956930640704757554119120753316557775731667641714281155237578527558522267269714641011593140805362468344697668941167847476955454777165680019553584195042985879668527047196335399175947710220036428391851261322902744146468808445559842516481819437653233561492472579839527960234463162646262761697281445240202190883865484989106305966210808554231871345274398662589466373311798809081746995695235332069291323511034216863938457778751035443554797731718887086709485890121440014292320787660459697079537940132730487149922835856561457224414355465321468046771243523437334854725988307511142080950859456774864416172727381156754052088518633499221617004232921622276107019857152183014214057560909005018524622553049829166818520087732062401568230731296140470496136102683606084894277573005603175247245614489910159389357592333471244652116655143437859427165128100031873834193738464387184105064706859642439750437299516378201319196796661723221711731374128894568440681462145482538701658718525044477219544401704435601860783518406508131856039822614607739649392708686355091126747449573278857602671304438678319195329536451436088831376732999211890906785812556209025419669519456798491008985979384740357501216977176320903324947686055638870806759076930797993373754525217887302013975700610988565490681686521253597909543793114726147773997429084147859660093684750820237317902426305705792508091645998409928881344671492184951905131500703882586956473477523902058795976500925229004545386440713478889617493264161796923045066492329239068279810868339689655255045497359592318678675874902130749895853918626310378565824925011515979233805087078952966410674661321506773526221753857538135329068123614149893459538878073742360108355188242351396330133503170575677730025541551484353713805921815879233182244337630070455302893046695249377286561281504312627564234697946895036767098942616325618433841779449809375384424979772014782312585755647623626202255776699026533868742669202902923193769864389517505763123093735152579215563081194908581509814490823572318334739401481464263647574986259898938506395307317862906250483731577996133321001504908959489309388784686082172336585187538517558966026915592718534425582902008951631975899198328586647118085844015911629330307063514077004709259188041772807077506286145493670225080231268240241260673222095815307274665876532522605837744289608237607910252589199077201078154807629051678484323764594726329352963494886096902115532400855076652382268877277235605546847072757662216297458325117549055641225316464936915958311193378622029468350367025154629218511988277794415949744074390288831425802628996751311987025852656031288097249509561427295774408223141361963666728370016964664002766026995434014613102246505454193175371787443597083738151777188981990891274721384302827007254021391814821490010598841531182685814530724543830157343375658740615306459661982740205782952231017288693223829224573177801838443461916578811461687637136319072541079311877586968015387981604692510973456675983426529007089283051974558278050600116475718188278632878209242523325794249137349812062483271367555394114199968008141191709027992030168092287719737752018478137310587157907885414004421744055334672519535292939062160875072376861570311714347910953408577137618050457271053717447260024703228124089447140618643815623288252503292911530709807944376875627733601210053664529295696643690005951879748835979434710981911490676585668420564059434261958762388703164560568738760754693986715134830752881311701635054487666491478869088534450200886644167440913279971280124468663248195180280794046369781416099000258727563902475572782945278095493465223674023429244941128721282378647749344751096847919906440044864491183727678043478900756622195718812941832702298747527513423899249612457373702916155435373872335353323560200395601529202120563524718438870293581804471945018761962385596467576513961305419346239952393554073267237486656196279277363234962479613795839482987337444405537099876220022887525918175555993930889232052304816558383082719796522588101790464196177405497174577328518737087967368951840107811486203500374847581347068004578062934078623319408083874822079531080942140484297802859035890949085893449697086948404569186025628962052897092028964042698309924694025539405095983969206870329402630577532000166787728091340868774393861307778780030148402889840617822361763059805116092392585869154411610784337153780472684379929356374718672946808230607912681243807327580217842746649310529597808179138027517165089302657454241858122835945176741566472773789781373077420000654928544610447344514862603798900018796001363443386029643372566659475492268058722229074315622566486207672087437417076076581890522998351011215988643340180831112917055774082464602027192621920723178705837197743713973009418101201359033815686754934607373584968414946982669884215790346847070424428419177870028367172342134280918013454648722604637212801874053217078365059724460842849823590276373750806845918905267918255315674412265352133444062422220018017774029141523181397765082553678679366243280101127547393903698114005781803880755381676705211609701260934054790306223837642767954645233861961311158131557011472678357892638629826483102460158552805160368329008264908337581378084972784535747118878550532231083809419798441569995920588648903482797053845259888698320547223621978360185434020757422163267319340312006044203385048245799565762973656415305925568164581793772300669880929321026631098277051050748203286709509478698925821422450823005196872724922843811005753407500769490006608941391095396251055577713472789540551047156265701066400495215058330062509154001290626628925966975031961101842982743520893344352263527864192879181649559422525912205142119213545455229754679615301658116473184721547351563244070141317252960776227077246477690685199208028858465683612496932467727721902825404967779844699076645044832483800435609967217683162323426389019885882691023587617696714846714931229328568699665617942134775160326444743425547554795030027769943570233993943210039152390969832845176418232775537251691352815118991446764604212146978743591360448493006046463453820660147249219924752597917594713074528491121875005713775872750965029117245096880661153610172111751008622630582884126355491964013518541507007802686426724154968851478092541626102375683056793832086348749960631490601794890964472206017340159360548748229362406025605488062439773338870198800587493160345845078114943005502005518995501951733578254799116604021465136668552629113091489621129297771138524327428891056272518110534091012939304171818492026000165984807041201126535502780433559578603330731649667411939143245157481844216877440616965890858923277826728285505393736551616243713118040527182357974952157286805246951699634317492069957608668930287206974238492448489279880293109927229980833432743041298612075730396158932117022197829523540899243017678731520195300172412347790986285265622049027881832048853365962656371903898066335912217760341978997427790538671869012155748026353780551965976795863767744213377280652873954165235090098168547671762521297373990745685539490617609316579221026720460270128379968128877964117340756748679519188482999837891790457408173545608859284489275662564816239815214378471349219259428952889618165673570810525828270194049496843174303962394586674825271956155811375503541238374579691707129727455994659638114558382456628875670736889331802892845660518357963368786047818123058760743272651021789731284686027437790999155543227862324424295832064503288711858866437057865135093783135114702432568825784142032950968321673583544362848388964006152948377584813095450546686552222011654134854342737129365670012602190765883615701984530904037531326431657386094829573220809617450210555881134319500498687746571501540875592235807907206212850092017786713665137969479844971875188463030051150183039325007673975329213718364281208571924306156692725686414390273325452433837721421061749534125724741955710757717994097763967286458097814799262472269461501954048835515093571464920395361198135537667698415808233619357610792481280095876684921031480643623961014166529617812991363401912090919669969422251287518174104259299247683694153506902928855653218471734811950273381126591187144955987760486218483414539485542723881286322272869484062099669878195307287437984711461148279407379599867841958680639561575654695466696735193096597931326082999888750371671658613315879920127032269744356496477030644657412846378609477392475386942490208902516710279330260793145373782820974047885124595687198410060680550183396458912700334457155121707203482874189916623105160265580299574332765053326423679311393972288959241426182318180107146811101090366683977177619540966068492754272626775411571568957920724798757015396816445504913528627334462953689743682088800136447235417135197219767573223071571616085502672770794643542092026645304154796376281023311269215383500393935429022796990153655444846403616785297697741569511218204295579383989717316399468506714302211531409497661391561085689782951497300974944056561709772778872127803547043663032607536680065711430695221555534193570575458295674874081878995243117931639053348140077657559791316239015259008577014791293498712754884736692153187044683016395949550927971733886160382857006239825745342783112275960571722585181359022903335645605580616557794945614935226262728973073982103905340846225462226280048865780030300262490745294108397865269784781020191454580174312339925602478175327112397654459765518375840023806176904277843416161017740642928567611551023473911137550376992378685460896048577462307130355549636844914831134757323309356190883124393149656690798103469408873428502769951400152927656037350779111909944905400215569052245060371093240742154448772942616902058253931285170140945656143557270405731718427060707708215837094329201342221200563776970231985231459023052342945808869411110192299901109203452109147763499379472316927988296745992638701047393050762043173121657513350863220710088697562510576131448460452642506655199752690720511753159377455237024279754390988377779928788004045619401483567914760344767358536817529929125897444727881511322932724544744949210550150240897017032698505323986160435269289472069402781707940268107110888348582544732891916194113155836994306070021430524614319668128699977902478913036023334166498583482603728777181884557545632135253969729081817347269142765395993738941209910197731851760075581916726518220305249184716782616284352215806482771169672398145493897852607250518433184856569555379420272320812473097690985995003067323224801584744223372193799273491475778680569556255104699094542177708065043902634623365725292651650608917402601693758758563164078863159118099663592073387126637934540780871761746806598716354044582068512904267909263022089922430598828758726543006504256240791130700445398850951144222062601995418745329701011691376791905931855370550363852727979511106107803449414201695178296783962109176832339031095813797737942233192764110259592840950813968382123022574925970452638626514535486241484468580607768453929838111723129660182446705489794207613589808442599773383936811471298478294174658785529900011571558567522586485250081682311011968918690728538848483547411676662529271528508053050361834353739954294158148082660658587910877662718190147855935884866865351424371321353913343278824362722622489576820279565967953570325839106742300801357786384420024022271164450008983946535806712978022377377353953805071159505617719827114472517767177239882249884575893046327878222999696065983326238195731600005081781762431700568260294727026469782002084844617295878483590017820071751492447238703194091404983898924396801450938674337603330247545695480338249520643744746334007851295577288779280049483623446495683014601829419490449361714739945686693395797876844048648477673894958590606322117471187679129963751331319194172736576634947586449809825294261359888181237520337720626848113156193697480960416596192960832351914758367946898456153199277165425475892117695125537096372292045252121130743673960630010514562763897443599373891538075626752530579195712821197096773369271662884687727437988955230568363586962011158008520988721902054696903137125008210280518295252649502551319640985119061087735513064133676689220721067857293478846693793613112691889928824264185718542433468125013570362775980797452465876538072218657909093486325547531888074664426852928422412404075653948871389869194741725168302660238208248682924416454552349102448524039908251522658990576745639615279698192301335428947679750518843486505859616288870806562062660675107630192531919650742739849226503540836415594664898840627634058680504704145997845698296699220247713768583632158042917882606320041523513248349557951472763778110675664428368169741329234168068838548528567540585062120962024374616459523330495141497059133427094946210116038181533653240997805619491286445779410860054647919855592856098360210975207988077130925690171095289602171535641542932707046309669507683975120949120458669360100728868915392224797611531356212721173341068648666094573315397431049387827434954392865434966979724699343372201852639571781224456573776874226019482095010678169231825487801455342525098307904549124159708907605800072432417716638688952667640219657680128764425073494841343396260781231216888518076504813400534076420088133250270751235504345534159555195665689524820746226524117956179225106540983531267498714147399126076851713869490650951019882990488163997165451178621077949668072785716713484086123045478094574559194730445472237194505384202187376451800139645067449073079913420593324397274797488298122568675979666791791234026975105967096517915896530239835353488511700347647229159888082007790419486635253706835012414688736805899856921172662046273427744678313368530561329058401446206785518579272426870265638966811779371548824880708203372714022341552673910198213455972726099261000674380073688724908617445951784218643497335863859821235528516707813316008563730257502621000473346210984736512787427345049746103289897564575673880218912114678451266949661171862442104495734671021545652242797995645534990012853863031057524122804582614071718163281593929626792888946342825165807108559563489519189436514422305705006784647840742117775809188951641822774317730310052890922106698906573517655550250229513236656777664829817787320674804359489384235141058640639222880065395515267550357126439293530107097151395973435898142800449964662686412012236809406964431730582440117132879894295928952748417295022775630266800063822347056206760581639274180830025961043838216022259068797526068756576965328410140405551125613523776134613284423819403262088656310488220631160327035660454135690109909624299325394056531344795121582543218052217425409708726787336030104760523238846800974401684940213881219566430040859261452171990443230833019759997666118373517356324660249537070841728853949951700129174316642740593834131762062655057855835539743930658292931276778098505430553130473308630077002850846815005693824600141085828209883447407494663902686498316318718558497314113064512199040754468741134387979977169134134316937764176690075134527728702991918356550771642546961192747759018621663962609888573385742676882968062744778635377146806188993693319758495683759246758212168745814888676250414266000226042782424819655172621639505308560089760895992418624740783350495407890234132259963984639963402955282814517481021113974631578384626174145094015822708294876154987475080088338014370131217534734411599949944607997658268324081087578887404196149284438847643011981463102228514749171210830985444302972240466168068843851449981059760615044972904250651979429569002664008807059432337299573603712694204188050287520024855271810915831660385243726134862847873060838814243150383945828451770991813763335956654405726549069201204754034410545647430237669690718638372313395781203311988813604917318915903190225386397776037323181661463830070311063983353788708028564577842657405866845029945677026242513788412251572507322160022085204670223418419781018300608112479371775704143913312638174812305236236530537021603494514341657574224357215365067703538149264451537977377594464237577946175816069419003194387602735814893910295271976641088085400896103387600692088200228358176823915275167648268227409830380028266582696727145722909682848994408216616227699395440597556862138472268111588166141056361893472203004237164331835281732215144569049189374036907910473151949300315043930890921951352747053465565694502546394069929726054982730566154400204943583105125298077514832198518298319397445654983231002172179728435813341911880572748186360616235295675461153786129301402752346370938927629040807875032574171453656647124545767964344967934817710030577229023705597341879493439332908963987857941888757248770943609170643673579831723801317778026967921853644708399523996264933949644031714217517611241827184241433264539832651047107787528249647927444526073477123533694847343952749361467040054592338683980169766635548052582078724167448539087498372918941508735382506025757914351534503442037381300201345179100700046960304565642127235041006107259208207235036983393633206407233422835366348287186254587698065304387126857396595023873924476521872182264356251068504345265608966463813382801988132610378030381599274830968034867920563708696319565628019300092636430347026113201762121511895102933457017629307104712957987780980788988974598112794993439249845138426802265390080583731216616326463901780746769231063670957585804431313350451887300073570878065340820684608063839715307622096887398846442895365691586669993954876611034997060904004687239656951888288377078821851726993223719749844982815511442753458533368736808536864671899302191539643017189588370342609748343532799266442223477031669315974230365522973439532744385570618895813789431666745923812170471388008310024732702646406462634089472265798649353797256288899483001358748135012851271273318752924957593564541057281907255499225467138086449231880961975498037671424316976879473085248994899938822699350937446686670209535364677543617765968464653365454183833621763040635359129160038682311563139200986267318715943601212384218831135797703099954566553680525574081183231482713479036964784822035005130619680824319425599049197374099354752989901245430988737126656628148312042429641170400448831757238637933980609703610492754392189421268666031791544497630352593606940339055174000019132301881131317890274718582326228366544868217387147804327190962008517556019495180429147062124156395074271296415376205598952330124756983017995643448163563722730435276986044841270560599209349432909438915761342990396789330723396851431681590933294952033842156476444427164994327891431918070902195555488946648646906776991953447462145180640514937819609706229016901592267502319380728414009879774756000374773032085233713041424287168597307922336940223874278655897257648996465398209025841045624458553721563354427061036215751039597708114068233964949544762963905906709986515231062288870195409497045424519027525978100985035745988295430084220442180142864628708891442614879661901671393311440021370851577664045771527923174996431354962466707534004180679455370796353552846489889273867758350402057734539760998712216577430956417825340582370760118550556954265607933297792991908147137942335779082518557636581721283166354112026950039955487832507133484745717031909697920716707939420208695110184690396347941035702084189800310636778898849368917112896893901090152498864800602121722475809469395583992893342066447063235373226465553820433645020641964936098480957199984658057581728249044985554808498121191457435965259369196316248565347029506996303567374400320407635196334144755602167423164802151940922641876078993303487304184137413348936968918932876050477653622021823128301898116787721091137772184757624551525006919433234422529531425481745434802555554077806607518550613806386552657683109187036114711569798103343213212167442896236327690240895578481832037282178860774773342319377495503213651839389455315763054936030984923797198518203896398036173712198676737301751535413740700490689848320850833426087620920600027828736869480180352732226058532151256743560347541027638846426015168739746144190822422267922473090342331724672820072688798220181556690941438624538157052208426788919003682894450862134970242395162681678084429703281838016961606071844434896795140650111467640241725050929653043405258245536445279757701894157461714030650817751560426649698655728724247378782866033103912837598998842049774248868325442986762617123237526670667422566157606171013016786109649683693742487954010698687978307453127373082567015800332612286629658756255281444620774959027828356634813067095209601711057541812456850300381579268401929486156458585027249600811887337225093345723574704389536224434933483135398968811492647391901260492409098844312502526605905165176760989060259827896314402552519420403622405054704715711151812309698578711150625348753882806197587844443334341176897519534648076276833968286759008291458645045051005486457728392231454837669911441698305129897465713183419717367844182699870096062973975087560744569704137667630064050448024929496697265436981463752550822052501128626468811092779922956135522182543243594377872950808696780976894019046378160671408387648088086465396930253759749662149784828857143316245610616714174575567244805129100237390229914238062529840965074569008313959350559799706887483459178452739653134202912231828486544687938657331059846540185212947700314133598851384744568466798080060337368808453884480109743954749867050086318536217334524244510728732576811364189602758612492096178287537365026615944834909072546526052402825398660474390908639102857048609842476934512617364006417359455180184379518904268060774294292867414906216449973185886029676503066444303736415080739170320676120058786295764327189945948261670064900509827749595007572286286589795466260081419750650386618234262685714671796653499580138800786796822531649813365795892944854886447687565720929707803955239617290677823897908667369006684010047988127359936373278869885081711794252018862918724753374649124602767073971394793053919139843831667983302688379335161690543391496927617935743909612843256942422485908611384808763893431615658890933523080822387009378337655438515098692000231732934869472864952220817266979633054710326023591828948767905117441697718666397781157278440087455476865835412243878298479106965393363031358207850986110237336576245391471865171021440276317798269723018908504998631478924682756949547881024701163490358545236346509556019886133488730071352753002841885523688698148455049561803745529337655726495631761627612638740397918281821911891659223228548106039485215944711190793483881180591224063133838306363205786405840684118198303875568525644974894557309081221261449545570088926319604709131417718642671904501549635683913401580621878263064877349628900548178854693544325129307913851431174342271658365728751167339075939663312600172351483135565995115290878445562618771862623261637047205905241806874985210651062361533190366971421946203965785691535765574877442853014854982070019367895386820190349142627017200599529131101199878394547737041932112546848733835165256096483111189464665050016904001003171760099941426499702796690822962018749004993097272004321072332308202844763171524942278268524894715593892635187881840392465872506145877214762639206387489197529245053793014331317075220385302951336840266298502431626335896630677229528640585015618893215398116295983601853657358499793639893623116248867977970401049001660487089973480988678399785873375921994669503041433049163303332161085985194840441824878511730179617990822631038560864392861770055512230281855951131005117636957040130097682053093313553602647003959158513155147026999055452730747238728698299292963515535156925701595789943452128984234535585249127547577578307256487024545573067180740497761526730181425898893706084512601985163369646501351237173556539822251701606039020283119969407811824866287817055870610908143197898087985560448747209407114151518230551323154996269001480184488171742929935218813920194176639642975029765886907835356567942710802518193805023862514929301872652415507853937914965894925078658606549622102161182984829821490671793764603216972217862524620783760280664743831382337289170246213412105483621292983214498423556729975257172213738971074790252200670952356125236571126525756673202712655045217983859626657064774821552179200304910667273941497331959475302575921539725040698912897034039121367454146570040313224869261751045664988045288165583768409297199068274051346689153993864085407874011578759610304968809173077977192375578670972476864597768764078705737321414438207520224741656724842722481696411221960761084807827655844261695509410228581450109505157153808800325886828115555055044277081301791081520503690078371982221018076066961546869701387463630576753987841143499330235276110116007772166271951483917446663972923160571771756055724616508239654263423103587802092821710669222026928369174817598496507419405539507083496482008956275790591072047422184494747471536853448121671763570733467917366696933405432872598442027593933432230645305232022034318186469904056206211556191469536459190003750921026215915829055683382726907250479226498493348893775552414637487944775363187401674549657742205277478501586815391985568026551943149085219490156448387059752268983912749245363744510416995353395930144817497374136751031296559990549313033150206383644027097608532624757547489603074716741824077560508004288715494640195477413646291527149853865312922148637885557061078157748960765467200968918602714024106068193598749730813215839765214639683775365717689612034622650391470216089457471660412764748789783496855674595661778656286947435159076280354287547446782292242480853064610237008645660981864033899884718282239304196754427733693865144583756859716298109015237413409680182343390809441688116409625397761874680565683005562531446922103222275007851327127140903050828190671796864665478751493041568522446477865242397259646797045175485255884732844331933856207141216399289432544656085595072670455070527087892361251286169873318217642310897614602668879241161616339061048671475716669657391225659479119379416544345889421612217773235512255605605498310489569097062375815248883618906696030195935880480068189839074423681082324145658766464700157968815125596309747233367463111523230527290715001711806624359849615375810696023662286311891259034346767906652333916510566080047794331419330030694398719870207693330164031871146780905958986474912217154256716394896557949635300743694538754377223247900168580337023031397460783114671643765277275571273361421592499816979290365758085598114378690633180431394182943603882758502782058894953560847380034281740046778647339202048572090415825069992887364148188278059001703125989452243917515052985444040778263436773337689415213235688820805864153510618882697914181510055882769387689412504072655405303758081512815630697365037557911823149088817750896550248122706414067551081914940991569249398755642214973117278075719439365797176067974564759176561935078398739879982557554130171920637475757649338405360444673728388876922863187318422955240591061666315487846646862063024972116792741438023505491452989950901261871788850738652725822782180902841429060113288034263465518356058976805361211471128763810834090054794173559474693588943111994902696955756753533771750068519084220285320622662651795574239754436763634459379456780811678145304893591344028452962513902539676590412428819502708604873065957879514730365545081752056169606077001340387661600781881079256615559687549231859971619661755713006098795264852591983003658692639705224455678136032908298164093188081565850355778369041087310569386874045374467915752755848574386526680092366308053140365233963177417046052180526740073298575015457735941508922108619714571850746550129709428807263433918748951708130800198343092952401218640391136126762798987598107394701372124392939900343490995077955889034188861200292705754575189929048220762914743531090496473894894772795719352972560058010078441622474610566130230134884661235579594102368496679364072104770560465671568932357928300222335330297499905015275659320719993769273242059780645648588759859885719429993775288863440341598759236221143005178866773962068584737139307183295283846789458308387852862198679224870946715600524124081908641692738965893285624984146875886834964842569073479554086580401125703143786916614225540592925204305534792872923274097240842027745254797004945856591908820805290034056202461119218793724213741773774857734454846302951618101552044780248876311202824322334744064736370930211986884475036566244994779340034120810758791785038919228141648961012368851248386987134903077954037582786956082136221172749359174624922549688066324893007103795334297469877115899270742015453703881213134053107532415234534158661005956967789278055392593306951429043653050530954942411339435242556534073684370935677634466664553260568427695664338831261288766940685048210357153159212293130887789763613614429628145249410754175758521267658913999865256213088452849075235551190175965718554441360618322954444086797682959159924478671186492711349470426139634813204692955256399390270310057766313433790556156791882694612595898713468751482011408875907743301690640899497934584181409409426141867459083417004829983319511324542146294136223704398694350700733649531688736892295962980220418245620171500138950175336804039020496105783834466187921882704237278650896262316229702953135829788733909009742557489469805458752395864725145439843880353129555276750435305801394405899640721779835227418865799112777550896899207687705220500882566582538535696894853406652984205246007598576557151109803001667903689129743429641116861705625482087528157544839081915770622649219746620768736466017145759999813660981410124741735475959530145551003698646795987547011540136747236514209536291739323051011331411086539726852794508684710412639395901025695296602498342504590977590671037743066512591068292040141028521700809086220072273145544479738078203724440222096877712627447241749949720249507315923481541733117165197394544595994669652143823120984253784897930464760501318599182749104819074235494951524853724353612014650537329551050912506419277895535186345112359756149259107093649521548635699289318254518993875402465826295701833611076795645376595756049945774965132760189502139465255518227545387557562056640826145672486520977091165195494280473602945034785556799577535779736379476825669544229873907000798003304988740424720689675363902901884897423663139213780470970673909680599744255246314241880084591230979133333686311684059555430654354126608895034719394260342565159139233460269266289364915359732191382837471940101198071276862743484495833223843662654336889800907462300705341622846935501781584759006647440208451399218762104982762256413732305917603636296110013697808994518819893456216761122727375387115347101150716670616768729992225097422286931641774226598693969412799640155173944877171175885888735335164432627057245369378052769174977556088537100942090674943814008817154260938236855818378147110261201816076897809453152004761337135347984097337766436588011356050519512498157026433391030261634534455090536101163143126455596386387655766867150555641970335059540207183388622494244500598017609479997685643586620044271063162419004697792695862924997337805545566218422643222251834528490055080095199375600099709783049025102701825097170634517486550939577365334453128855459321241291020043868547559252707506136445319964921727433948794069038255285152128535629984032072976511366804176976484405185115826097561680978913627488155020332156908404789494644558734292283291516904110383211692612168182414451483555358991435001874508505077465265650686131331187654369087669525091980673641396598250219372949057279137949431426839320523026551960105077682216470878735539933653094850203700738231914193223830117570191137789275698449732858446995192440181376620150143291128780403821834705947177718275595461097039334565182951802817275852996985768659473900914115094413512280613255075795759433738120876339502627196017605039379606970637409904855347791496471364740661335956329129068639708407686409942977131022582149688800482017501764105704239392185534787391819543097920656892662051556691583509722279020059916786794525104961434278287516798031367734055409838295999449797632188486420919659042001712186413952153755388804300666230092606419156541297480150081660739530054069514547877302335600968867569193678760697095269825349622860935314271282531972796832086896053179144361204976867322526619319954664715973489836302193588083442541258518663051033223620297318496302159988886618456280284597710135710196907088349152473840610018640453625953854781779987681998286984335460425192816341963017087450368799762994549689876012916653481487218044716262814721030689627576179635313734550687178699113531020935750697483537922563003337715773597751519832718471208416157540698167060501794679905867752055956517964534710103037342971639167484135198633886422170947502473147365467605160736655256857401829868379996221525033585185432231229033090450627882135143650212655369767885804291779550635961511693410052814886571929441846429444089195483652080407914017191070436205098222134635836521010363913093585890436904149662672051449101243172676938058687440619741356544408003463530735479512148814780366780581571045408484422402586093299014880313692748605512308069772090016721306146476410985624026402994725759593558912536454476172152259601026773674594375411843844718547417007080880539154759844763357750967500926939116519923763425182653413773792128049983177771713670823931120354724024423786611455028635587902570676522321970950972754602050119110284130087649578950457946494156894307579772797104101097852762564282820064088554043487850809740343761441118237494540866430199802712727316431565177140291268580931244450814013725460773907581350672350872862136722719146194622992771899023372830031649433180712245790816992292177641763638789073070244958057254465325469325365059074204285184462825503558365951136127902474252764729663674720797113336559473580036301584158678887941221300850710796836620021451070839467155277476375226337862916321969412692978624974246847025970746862481954007966039233675857254387758511149779590321576034541867753396796143356267494057683351889503971518183809688270172346673386506185439226213687684308779751175812143449263723748799278884111365955765160176262656619611673434580811270810196701922720728117592090369367427242580301679136699618304589236332781267484357142935987921222427445512493992654719551563096788197670319518612336098040675094994166097918082879303768424261667892858428449294713279949624411392476311427836098648493338246980309510592419325016728077660942582965809795968231967914662583342314987001095444260621051139124728052919309560990430034108613074371817652061357541791808758883945569786845101349418086972354414600766603908807788317110789705978973532512853956758080294278444921130550188547260237494314374899028491200349847985868439558103049392918189704038278143501762016716809535630650939359278070115116527182387906590544210969386161236454137690972446115565064763171661128029514606737364091540470900155336157063892380626510221368915833173164527525372706038057231278396881134769378570192193229517844844937848296474471887681535967776994550882129695072227311071387622675471624367117894968778841596522357222096143299947978582898239683604011311851678522304711031871815805161368900985623301490872564970766085212711221772428614866140208731862562598201929083790981882830915419681665726531156333675912988506541628407876670726080809375608784388132373089152385814516783113327033436276424302137423861574307281296716539868357257465009226856121046676360462346789880723273722275887697728845281090742043602515864856742373598744667437166938875174731251403692707355967901942372543773841582625341120029589663247832909692352148361116255080985852472562417445589627996395899640363348111038209889347073582157907629200552149436113340871027868206762735513119287518969904648170768009682233636938534657403659237501719040019548822842494811806829375120875198344534270137929743428098466524788748888329548964859767666888954489424311246722513944982251238467526599469454521521147407130322498111852730442528151176576288419657081029733499841582856032372647279710583772382173677159551125798112598690829514693996238336033410934728465943703377120932169983146655076927759937474600596167948659983274190449622705652178895892997423446523981830025117684981828421043744248432455655646490530521533293905077173925473316394655180493496840380792848832087083383963150322716105392177754719507137400150276933285165701000947941472545281043845172299097444702652614852667585752865329395238272963686730006958846314776440643199208599415281076481151013312827898516751963981120719448800395413537778352033635318157396022088176816292373372020404466413616386289367494246154808866726243059178444197598044639300450378675983571849480435417728078620740756387008959638249851221757901522746571998292377426515833612517915561041833998018785757578537613370479265616529220517202589824777754975102388669538910817305105600101706132756942006443571414739033044203297606332118636902822089994734604485590714488542155288074554206262012524497690691531715241595501203720049346067981201640838633183770392096495466699850929087912430535302210865597582026095422406333256397962240362922832473203683870871591584836430598497165119770134637309445838995645215098457058032771238197613712135341577764522989520275383425834139356034582959218419077125465123722058524238703141740496075092797620184676268942965340466031640962013319202567090803082871135843669255962967723292541299184928797089401957634375450136317774324293347235998728147194791869509456190382368965459674195743394005205641506371750958076618232047674802184668276291554364577826213959899385567727882463318991633544645316453112274322344206995373283462788150188414580289544312014795296634862111806637537040243619597417437326337243187067727447592063155612107004689244327977529473650721640685993943387364424006549518557346550701173101253101298504863656704437778107427008787575538263274186196938534379438445211870364373989405698805487217122135577292776525475191970462250871713341738913011971081434920935176260264859635216230978072093775673224555708674786852035165033186550640119114414868392540964944572807047393763292074759000045310168084365877958252318221935443956941895715030508309068132287601914636428968401168252613360351243141582809440182033854326482526010523414383583861804296235032089875091714623123455011637749804830025776582875701758088793101529335170216642587284548228254955166400303116658620711350622920045403104085829758829296296851599203063716184021003998480287445457423703840984292371794015552763716816384160024701572196033938534279734072566040126504995705529676550420585800672688855523918288337009356053644757565918724836718725968707356584857533485999482849305238150178652614597661601774566032547747763036012224926941216449512104361469603761303295421872847463137151416289112960273896448594789991147717271475573628812416012648746226321773719406530223628941217266107067849815452498050949322430631332309897712236831637835435160828213702229559181115193641142764682124524103850735038296593604612469511059559101953637171105349128920408231496520337201400526516466941206983280710098156723406511878983582532075776961984568279076590278279531571513868123558660256479503983297441210200593063278486395827827422806159427713602217010279230662658862519115350775606134936171800324091000265807636452358698628412182080468435467088585105027960976857028923265462823993052835405116714101699744944774137876292087016011624663336352339715079413449530895564317502357704905793351278056033958885685119251794988191896553456615131561212069736901156124109872681977590635026939917961930293149557439608013192442249750628912452839034274810734447372948576188288445906129543010332694216974900243366249937479420413304200407288861493324182545777353641619426336136356950415315557731498328879190324381414583323004135774317023488657917291769980510472427958851633683594999520810849798290078842595195639156708593670182251616275588500995783867025664708822642401200200344007974373186770945793188589724118810879948994605509696056587812668286200957721647284660009299666669763991693125003087364653076168187620790420919781766226119304123447481533507393182230357363152929375800141100246997091940540036838579843615230456640566471855610981304744370821790830118107468004207402066728579359454319590477234699557578184446484827932441705927736351980277297642734331071038511641704341450760333442469990924726542614298153983208405562919839514139405211315268830167939045610004354501576432446987705174126109432424421783564121069084026113892483331199389176770722869289043861325946147200832912843250572462653563374267933917731708348839483905526752498395374024630833457004497293946186758255821202998980808352081815409016724970362207703217239957660295248848230985708956222107595805861375399435825394391750563908940616898487003605476261493975203693440276829095317763416837617459935897307655074315898243887821796070041977394390529027071481865649500868365502823902348328810418901537966644228646980298716202348428648865030741427130488826045438642564712635013916222671324554959054780826257233273196359315996841488930434551006563690975532308391128809858441920747185561938989521891730346755774412962344512238418701094896733606527955506203948053775333036857697012385427787586815207441165960427854250538814237218083609569531554738092162973061583519264420521864563889092586989090930940139782149932229716623305908768153934137793115976888212200665218214241634381644920392561933770740784191087808660150135708160057368200743622239872433063068856636378824918570478959502731554717513561704814310035898986497019230299950242611641730453963838974001362789362385757236729478023443316734928749204447498405166720078528110329077809465500768299065862589840511619726085377511236992395877634973979283895544291825398429744851321616843230270159604674715757664379145480480581315140152203624963130994177638403861687872917201456666336988727476524370046725628475887681718534906807337348019806246916601471826555688998335949572050431711998566961879057293038170255338033673854216810069250360834526343857847562192750906792198224056556582135811443122366183853698696074403574958186003543623823315946192136300254807720114403723364522694596446437268092075468959021972168310957407676746675061616846316812933306851040888627382989384197077211363403032191459653470771989833400916961071590792899803439545497479857935694446410869780407384562114016303878361115316878050643573242780491510295074438892373465172479385963300402568365239879846227948331808384461754889195734910267998932235340099779035595871268072866046201348823221854435658633398073359721700765114962852233060234936035612387064224511382129513752571921600439261005024002128829570954101678097425680188217666693353094377892713096818492829218837537769266606536430917657239796572813137197103677861461764445550673411549291347154434563423730012815768246609795957157530620170152664019469452632659174370501992046429993855308217169535803078248791042175254926558793700151695878910099347740579192914855546401255232347432394261264709033370602750422225311545261472530497605474443144064492185891125272531246728414251300511077359630599046094173199405334494068775203147588454306173682625474017803740339276926435237428092280492652659151796744230317709152332730273994971933127953722610681608056105318574805697260489994401523688953529539527729567356164698034327832707711822923440209850978747242893268748582107864075966626208795921336855770564598400105996954045049481687699496748116644180617428678555654698491974957858645728286842586192396808417313191310291607168071480888766650268336754361916315624738038095714145738787931768498618290500389466670388719450509269410214361567765209672870034603958466303849903409281967064256499753924885462557783552223295907511699897936686639147655169843657840470886025791545068698011052407444281339898642880931360415425594499377307767993744584338148164850328500752965031040411296028352596613389806056712641328372079197085668383241117644491583667367327501575572946428569519757675397348114631105263910218600271978189275740553737326234045921675838628081618445218806799520900294108345318125441996974986213897222333619077234265714308680201895519380283718974398574184426508895246879328451392882489299409310281269443405090459015680785870472256570685851381679437651080148070513862425031328328173626125645326578211856609884659473431800538311843909099778042355729900996393355877267302379559385975544091870065483536382898919985634626728510752930841296602580963436592237026492338968695259126236622704326594357059556486994791955729474084223577096172847393859586721427295977392156671083329255039823657575929640786255294117761608771076046442784623363429500880352144098615826956660751068583452879950410162376733463161012149745748610091177704634373741904232284363908081487215564835825573647742078100115337509620999218929599718652272010163155463972324772488288473614715239722899022847074716431485818747253154690633983676197668476367549208762803462776384789639548528912161090632896785868723368339685307497859750339523014349277327184229595118562576517168702986585025243381569506592683146341218143194696213882516880971615902582490547509919717728290302389733428028579147813139612549597642163646266997891980138293650315522216014198380264130904973894848079334304685325624177450956345227167272646482865143126202069923325606917844149735393502412365634104327253394138119678958068866859217512605556915202194325339652834897750385065403337043251330601825339343602567169917369260572850285470277441042070737240197933224590841541047807172375644410676744786766754659744707194487119161621919810205126482830557964774457269478729007378096336615672734067852731731138324426355421876237058196859266164218821365524483719595554892847643291969386133566970993314624950976779938817872678693300917390772966933963471481664338763481142801060955610929595474006737991728759512885502315275110537341373194822754478892610190330503307624052745089170773164715760695928242096014998574282990260396075590623658091222915291987873157784433978275724374787019488811600995759214180469211180112946913003471586751312742429018698600051312194853779587942337124870405329338397869180136266110400786513902091011925719971572425358639591377398624334687131935763728228983034469720423804462173414641561059406592473664843013638582228007948909128989878007080841608458292862430097811398352481313793912361834845778207801139977929277226596461538104212615419475740346339767080882559078308831579705864497644943711881005223293988721863484091401718974262777710421694895011410170876858200556027482401228576378004916166592291408264878406876730532919534056161177776917170632184800738821683003564371186216008672355573330894898398676380454244069102130469730135771654799059203310126272947256985764252197518084965502575410601392005356833070784008428489954382079976616865244632639185500420713771403102098643599643989731767140101959236640693593261623144149089935034984369455127172412400121002642140600299624882709848726406045010449108509102763545239575761570080664202036413445754393482280902432557440795605113361337727227022947265371545728240719128900586475326717296915814065459031561303540381474561339390423972796054112074603581839081322497888735601689438631564407833683381990871514460782966602308433131433766612055276847628123249844182066809940444604143156982682473001593418150137009592043487403230523918460693508926882034463951690829465951093749403085632783145742494713445766990268955279657452298616996652979067626439255829943124406348950839038663805297010540487060479288744061144890837326469961865622499621664365978736478640084832365866003093254047754185349294412042654255901964611538699972359525644689245174988983077563709713784835596306696560341660620146616300920281696846526652333275546733149237216736701916367995136866948945280901764397467033318508415326650801536699178122076026919999575297788663796553121166500212675748182415069068508570874234182180965360703381597136985388149562084776739656490484857144085024905915100042738727728349778439589291788853926357474657386142893204169279949782335354142452565919245185130591548766835781758552729883570275926324019364625545960212226617912267548600368602809049070905678009360463431796667001333774030631629704320327062783913723769407353183587288344383034024866395130382755063120462395834355017317920018215865160825696531704221832614809690530517311078574465175297314025193153360382943755146579719654471560604625344516437597748462419384306553881914060159664688660793935174735653938167208681217944338950604442817365141417619454604147689681101748829684987649678408211451939409779579827661403988625823838286492751723625759423531501772829329102882370157957108327527895704289520773162845178956031063736238191249950586568973567441558938478873796464153578712680286769541454254148790413059639641932951248112415951735165840640556388556114804636148878683743947954390537985546424718296887360222197686397219853846396521685149920399644678898346473789232905036150816671828022351231609484306308290312958661111859758020916821335638845579560051798890724540967001520851410378866676699605773721787824603967101865416241902947837276294621528550809243626880877930167662055861003068703257731791882028414407348277783046567106491128622034073997768607634522696321631898706678913864892062187872499433983205955099389606663399585470312809911432988316053302366892988139304081310976541834365970456024331167880940051517894645544490197889418515816918826177675891887251091271482557532423923618371198688477680841420189240810858911751949006962244081254997842127684256486299376121431321752080747731640058240917018789490595098011125796131144296447567660796509886442102074359941437911768309385301576331675187848926768289277812565878171449836678189301767323609010600032963633443788264476694126175471280940306392169594298828210949774145737964810253928013797884244834721296114049509153313447035753875231724469937645265256185999004496744335992959994916094101160811694307044875338104201732537988719725922905304567276414146350645427563302627223828663326039778540305706520733479454393822945983246123762429568319615241391196591769429411504873694860799858267596177149002620447603809115933447670280798722651054950360302141092756395956757321381767303159630743876155334652083497825040730179265851763838499771372844949676369332176912263446943424607766048131619562392276150223657849543178114920879199525305978093811926374658978146352155830831153101364491396858161428384981269625773002666478794369282658799652878414156026519494867771621170836428235643065381854827182718820155953034012020088444156058718076706296267275285219664554577462187477416995804051822659337864386719341204579961885243257248209004745351038470092008829336337689724731900873642809555631882790913419674204078340226717964511150283059219507600587879752444343053987367857231000641356861578855997862880892258584171084809098271115373267660023202095126311980927987103397138850829646728234782752412629666352321502145141944574694040383990561267288428622268744312786795300124288025854769421486166327224677100456881555811778105014807469610758476922597105496228053765669299066875980928389981343446391990605926643065535099330656764087033059873536058163119311200810134959526251297448426274157494047542553149486571012973902710397745407363095358167342697245965060430152746443932744744828789381079745458741169114260859154023159505823360988786593290379617311308980610044510650836013877281058390551599435686089255208393743660620153217073901595281100997330340091397875755152560838450605844500435367517228057127037052820355832248891429935325938647580586184274622516930173649659236763574642770318715691212344394196535457457891256941011944346332904675642959962387171374017372917622959198438579193252197081799604154892807762051849399866505335340638925312371264716729748741691787236474390930013421620098864127451330650907716592445464964552287180470740156847519028569372606445191635217622194366786608321698590986695794949647880264192127673974442098394341887988347852169818281087911625098317311803210111795728685667433680144187004464743033381224942960597155384143674146030432581765363868290250591230151894887667731059357337033657337548787910942523972049489711674829017276546408250608247100250521288085843546719087996412467339435984017204771616624143343534721985529174624410881412478903164658174246043088538241545770949195044413132326011891504410298495830365836398784766654919389862198891726813961705739987076523659154728203616797551176040464050043993243594256815320320561048268371714161036038170344384868639159926968746072275179641685216457626456324510363093988944933442891689236330358938016232552749155332441267482471165807974698800750461315231065959118101751292240086572804287414636768360760723908040580935275198287084234709187185533110587653689045116793104694839873295343135303298771284147111374694580826260768848842675956457003006832019116771548223171513691431858758867135252645575676703258905328814008116884967719200482268008806156345187492203680792306817209125801812294868231453046056147006846967870411360090283585302306690165980181327828931526512147790297355538196600812536363411603217994518277072538644054300152997540849904319981665271031069081421840532992841122224777877813449011169671252843805692360677145090996565727400277110330124269169306344216399709099028500817637104338547476026324962890350234546305682105571798478809225451639919017943157856173450059295245747531887207932036578174146149084736784806300385767204326568736234186368419079352032784010210570725511723304280327819420761548657788820022937344868713717569055785034152664111235918525062423969290434067568869509118790873041295430665130711466687782254204748045072124377094720646838369219022116747218965148676665606723458741048976243757179019562300228240663761201909848812487784383426532603248128304705938313724634247792179858780178795683417786266163434859005048388835438708942702374762093149491579743686890980510470095051769860207689044501008303681187135412341075240120223718261961788313671256080788380875511698384062671042092517464477255875147912290584342837620015551378246455782815883599155833420955458780880055646028812509797135401797377253423457337922999818652885052793330906870651500658631275374187287961210062937248050753425068399276445683894450023491058713255032570225631245577523620360177771756842083960219794060203056813063304087555742447378633197873001056862295009332941187830270028208448588704900022332723289131121550094664647453558504788385727997743501838072429417933856939069304935812375380548013540057836905718767560639552493374767118371202667834251249889661099600053411355764686111744876378369583660010979106042866044589779055925473473753952760915147141873718368526710478880983644962893438736367225399464290726216436503696002839763689785094704130258538993929210506641126050641257823657710666917408070375052547856635796745528185391028213273433219357721817187637055654948105274048720186182425113883256444399930916888413360052402082406134500011323393353918619653246208879153345385569199481490325931572716191670269096999588751358844397861255762019877027997218650729208937184593116046725836267703285318398625006790600320076928399653785548880305522047481451606337608021753019133394355606068194822213805688737356619632372221179856036325817519049525156046928466179387177123040999104023341112195771757496444889344953369296332086154992951980901218153584565600825540779364570092844945432563231628251485488582961240728458853120116070757403425550355241969246190652053321357504013568265717855829440746598027875685670196556570937162000515326446156981502071790675066194731629858556862390910187235849511700235956015147671946750432030093652501569566295646630759983713037988370577663063280169012921800449851338952363960788702351338593780529540175411809045484080023275950024635880795493306555976622190033814105118957816310324317638191514261348826055684760948426401781750523993789964436529141208195628420158469772357646554805723502798194920127247176816076676416234141653823858620849640314023863469423966280401742256188062349159705254022270741679781484120193633572870711269233561853676942957234625005357514422647892627239396905159527159114659698660019916228737402940721796376003787485818956319395985580901609235708524378010329857065843377563307034342557411912346016194804898164447457733959986900300217005974025530587441129559020765882661024657848266774832023601175976902159311144698096777571509473070294732524047168268981711010286054844569748675406076667490920187753448254342438169546535888405352331115171294029699991757175165534621780296452724646208557441073341109187572715193703458760793984904152960348906668416683369747027191908288198497216616781981842600191104341656616053746612799614074035858811237347486359653556884771900769996909272082291443418950675774543085627912049455268804409997363198452969034088121632433012560136081814914667090499386475615812789391014068131264455933028185540422443440640428236913726325757668653944247956355892294285484680954911585606410271636949314994337780102510215455467684280519932319882102065941278290281949778718706485209003170156757985218312568607993382110979596843164110284314420801355632608810377474612645543972199032039480482417995432063967213291041668649167038343621147627324249210452195785215044825997439850681117458497963314006799790762650496058811819076637106195235715674063841948123189393165536042966771152859270279463269475713230991973518031782778975786849372530391399878648923079231960554158153410500752586516549376508584391695370362331235852530930462671863777701409515345397064551279461930059037012325240667798252795855439230346782722941116768122550297038567197089413248242881584697859926472969160058937656583946836627287553551064306229573388088395350117208736715826517067068701709241806872372819467153556316824622283000311036824838713943342659049040224045621316465270837479274963124411641015694751041601312115776518154724617070571608103135473109678614302857558435383658322832178418272710779883086988934142785060527273641059810072178819344577093573660634055626918223913746713113522618219962426473655177201668767111747139021727947790135860380586019431037172745061595478477237072041598996753219572758311344658668294204992570287282340981493737860572620579924015418500586062432515133447123048220904146820453627343388923117344030864660106027487627991485452878277653939327216661324539906546885586906229052454672575101768903604333623830595601342159119118208561502042493848332137366451066572105965327908506953103136783804057830085595734613462997151377918435055694623412226907333217117582357297548610122339110398550865198498442609010277911344059254442981593316572408290236532244830881658151859704134444312308076693450031968958050124820376491630214624387804060066899328619883572326236506892369571461951950108637394583394276669396632362421925822610851640536055942200383015227347200646426639823198767822124643747092901198703414186715502214926726320968820168119098127327587088399458868854817004957812149786307848272458776727299001051258696342542442631775811106932908185096043385444056810858222294342468081486634920273439670602570894697087894384176455988639163724566541538824713490146580625509045412648686203268068856212878560333727867382045253014602323525398548604461243804793023683435062858572370355976970599132837396418758627145416776085076406677407544599056461182470373950277005690078703911953860794075297320007674751430521120925290015935468570950505921599681155927882850293767483262562794839727742519675299476783681338396490966191547022992056010462488309290912677369593204035711794859813456935970023558621211867406857843111821452789848748710437837805335830425461084243904194579422946628952989859002228084232194427293615652713120646504060017375239540998559238786014017041942908256030917108325365160253878876968051702705660243776407689288839203323077707313643533323018513703589311485089732346947350761235480723127816571014364720266991284380949681716049889967271003786561320906629317197622924977355601841376040030483050367703762210803660875977785150389341847246719049145017346614259206980561791365361341308299279609814840452647031249506492122528115914465394700870939356730337501120864275480312126255685263695635413762801972139169007112750806337498562171128320032132155571575036013921254270626784818916361825926799015380644535886966242455214838611362477722133371892743313010196957622844000060066400496042833027916306742410247273950619399552552278239133301509913683250999054603470802285236665749301131224168694478426556575075275397711613545732370532336692568149459866176208345664719862397385975039145118851005812239655819541719308174455961745812015397006931931825984497234210533853543232526667063892319210743591543125753357725574299924487054378030969706901046675849188536965806641217482928975771629534158317469294872813629733840959831868317184989596897905231203873162263631449635066740870149429408642834709917495416184089566928936436620047902785391332900914539375031253374712228773194231800435681425019155869798125472473104190816445965459450678807370583971636758811215120993307730791234424257122600067917355037573085508215348304839935217911915583484370758017596918642806787347687428148578605209074192006818341428767736240059726011401486467745279574710998345863171382086525810990975756238298164045456155170221093991709028792555627910515646830308468033622298963818454338592361605538855672121115026656671385847096818241541449655543327721377803537836515211994044217948632624762077841533935415270072403492426285249609497754056916946064680742293292566791942797463340245302107218208312220038135742408032229968502179621765716065921881785678032422909161533397136257671165229085041133468936047382901202799382398075661552571294667955110581585925565347435837596955456290754380282131026414169599672268086698205350304371653294570251267281174360510281623725770072428632235461827394920859332699968600147432003976892459128627028979023907083520092425134953822982626134788493957946588283053954107059548274951816085660582402526828674169536122216012241187868586247200538595778946627880120993257876637813915597525258106384495861882698653415740752835010360495930831475171966091228409509299809221686268262970971996797461974074875932041889439646870677298086656707988497396255819997517801876408443552266700300933629918291694121208048012793000414587983389693212733797747451194364657948912658834496792708214826438344701473017920586301583818429416738221196771839572527230187622579194539665420736515943249320501926852198100022295312449914525970058641687597448668836391067744119239754834823008747413779328878921291734825424595424511553940691501495904649468390564970375766632823306534433813343841533872983122913225901502058008852984408438217282197430981079415580068964789952062612041085850386752078875032204723969480868583846123027554912867642842857162879653573797148984991687514810256093084339888049887141006776452266405708298913654833440318207902026401354160787276147900728949909617411104347170048306959272200061954584235969836725540186545057887722766735279762318285235157795335209951755083983610720389192163661093677865101566945986404722007825807749332890129766583122217163491302784824949077689138518938997084919691208975810646146623403637209019116614320589645729766528784817511469743115015817362445646165338279130225733347069621862053516299476787649026664889437273851154164384506219708832807861758613496708069562471885047772392129144982848810909812091236163658375804242879000713854760630093173252207392424339595603525454632560593326585216638170478696605311635690707437641912730313769446928018316717410721750489762668277333958536029545253249760619542992338668839060430738860996124450238662849657742277460910278676527838842080084529364152587215687553468119490191169049899492525675125033173606975498694804066681634043162407857335386931518926191214353097387004653327265761409708767208740680244043757260192603670245409307645676931371364555424179376231694061390936074140109138742993497825834990372230239918030085546222302806487960797651101868859415216817222184579487775554765130838162198985954406813349632411985429692996456721505452753533744398874822071542215618102850219110974908476791762794026759819968587826331372325738777158197235521920952540522357152159627046655644802609399762425030461408140107525015052289278566779288822529876868818040330587071936707697125700932596415095897774871027729839725413510879536841589754018146187053821004194807018854560631129124959701857936195486696895792736862140334514895005037551266442178010913168112480607617831971859974396314158318025353089570844131389090223634292015031741722328600993179850219692429727533279563280507323588299425983060552145667970144854570294996645034622664818011849763185294128905260638135222431970310531662359899508734235930794671293765900136110083992661679214333418055809562391519737544528372718072017269728144845012240655916042617771909487634007544219764401683690374668438066504785309551287948846020687399320784632555217721150349021132741239244521490796443520465146647354740436283638489750994719371305397798620178888678242575473415289761019756238071043918572512646562868538880754000905999017379911955256245460055408420383936843496698961656856158780624886100499380776989852825096821032978875351756062851009979704144274969412797038989428308329726707129570127196791377857592015579051032313697930495532370169203606166996211750398351559300545931689454618397321002878481536500413441312259381733404598882696530802770291711052796976155654058806996230386523285141317024417209122597792347582399462053432139334450220840895223554749685184333645574505495604530903583824896912021161022838460120894773516574241011313545062162087677162028292280688509030127825145257761777610094984090202025047188323194800414691123070831991916189153249998516568969467547884908515602045745889803315721957305362240525444643716936556630177644290229778411964377771304177853287139958104997230665822031795299797223679177606612971697462828169335332881083597735899285879597620430686103654956516743831163071227356212550699609899325100111203035054899061742537292606096173688124552699797383698702445682501509969482823072336078948268933808343486030269740645993969733568978121534843576136767061858642693841364305498951139744738010951584982625210912467852700423794495228653328374416887846585600103556088469736034260721342252695463895236292511124515840277069963540768953091541958610812833630012258987958424547758062540363451065220442485995865817877657925720314606863431033677497448078232062860483934790296264639583745400411540739887904232925842583653022301089908789573759126226617542988960754636825707483726253246818696147982559853935123182820019972540698018118642211922057744426655694621259630534408076600051289323942959830033003316325873793560066673320522198092702805199434965857488115063887838809597038367797098143039584439561227630736722801270584046801495550529848272851608499753786444167793331505893977123244058047046510845289607015455110108504448870193770313103865586511673402466612299269627279133473848260714656184450119610217501292844966407284192593593256862632083600370416005437435184991536702894564782838617775916737058252490426151454954022612650171963196975478896511334787243326043556368900901103791284243647319859192221449338910586563126439358083423521554115208944257226534678243818568520513008644298865934275668437350142711396457472446459380520053149200515590203622380550063305376925614051437654933741639321496302124557969475387074403142146429796606305279624677598244251737365282399469569918523815079272372306933665189439628623144882797360107683879590698090391308024616278977382945498417643259105953716080870653328195148493217474618004190046033060368578229559594977962675112786299606841585298094286576471503168504287902251999763493880071706421325876453905422290573255457196152585320467935068009268758653801363757143909381079629322181371660323256260061208430998951541437468392125900839654148507515066073532048737792209456530945728455496353264475545870400512644290033408995055514600954835509567509642577575787806995118617850875281169674901726954063421604170400659058214366144693790940265691551029161541969033664786528919125214257181192873541147614250148165783574451112714904548757079100222895708414734037568082364916498684857939884782080167755279890862363348270348543787285689583929109267397678468400046515827198599735312615233115397193668441972015379870814847009678011890693745019388761615018886446270017449302725491080535506121744933453792478459911050461166220213470636374360290881348278290241146055388555325784110624794073128884185219171279622537749956596801037196070663534122601606823313925645206191823513138438910043657134114289258382388118991583663939107789226741780527081996965138366157570714292473953283711111313460932707723631560478255319331782036616482505995010966129864286814465854472058173843592198915554097346814463885030812444372214540976200227117701208530403205101497666757299239199909091848351600390183274900210108501110929628154618831130311487755567420304636924230562134307973207786443632982010080852585557815796427022512483289915637951046835152771522197821511804659044282076005261011667262730972407020934545833990885790418579194183916868491539665355716089317065827616637494598089898148503406582877407353700166938989586565204751416385249235715780115419345192152487286155556146723473596973281947859196053413158565514368556884324370687625913678571110307567385679058771381737850144820390248549589142826941100727521989144622796747530574219979773560098940783811357425342648615705417122008340698795020919409610400557914032248973367504510184502295734045440707155691926735618789705340650360510548556470360898233850001121870216505498782523632250875370231973415192225317505537414917324740869807139542274613157792505077772726627583186201467798193761103219119426788519996282740094647189021785983551789834243271689309140422595977461461554960804920001522981450674207302225264084526433675398402296043749906605390674955113177731491717807754444254514790886988253233240405533365498292203915731327202949675006795739699390806731095188078063477157178251624077467737675058107794676849849428879161636558358742713114338201098692080140592970022026413064470278570037238527814325640608371651027152245720559797434073354579051338287515010373919362633710070626768006267247508775635354275743603055029177179264407381140822749455150263764573705681331012081806553559188330918486420464148891911433698612633818971429014269388811954182750669484513821334869435034420124466014984789595606529643172052601283530524493602895688265169702115203551340445532007751998667335689813033846986134899904832677288277344459340222778874329255982723271461104828375616370328253481316082667035040254963567792466848454229394116959323453217393061791260506723476011368859184015141087448377274341508226698081859677993241527374395364016448583738513699196716921165940792556107085805339959027832042825289456044092210329428184713505096121735798578037992268145273670921942450288034951396194630100165557346882188830840606626304446705502371117616642651465726595212951308450332263891453279823149625751824920273235907030327678296581592997566666927699773600346886205840297357415029953134944322019050898056172096787068027903181277124649380096432431256329784157804622231592250326382895680351348397696141497868405204949235476637798798785183800660467734686504499937668625447537615459995295944329807923562445005711052267910584584679776910296543344640711744723834227567339338453064259754073991771878577710159319070464128158324244207650165147222617849972121750962351971732820358667811211944065569453576547510438912939757015482686478279080522543018371005104365218633180722423611851236175059042597743173797138153902156788020438236195618027497095541496586297124632578430289663475608545247813897429548209857412317410932052854091080992158413286330013531575440589421426706002696445045851987091687935737626772767383560412708995244849635963879586085963528580191222779700226105977271301137935228586884537966548229190087776958891681695853611083043736122989025216824293004913298553942548611223768194620864350902787525014125284380200182309419123450152572190022007129784479204517672652337222618014306311541476676472947628268426935768428599956930074993720293625527000903206052827109765816509070818003077214922806980477926567500167749886119418335621659539892844551074812075519399348860396845416680917232978822502273939318646416223859521924584552565518426643470044699301851523195583833892284241404719211051441924065712090440013890349581223639350297067178168653100159435819880948928391519856076242412125524752329479049887484942648404589935691065133892135534290675255941785807783317131692748774182967509929932122876398033153098981611447778872447614540543897362255868559894699795802074801691759655973560914551945142998176485072095151726550124101439549073275977123693732283733533292104843329858394631756479116836118974011943589697062989427350716688256104494207243171692610179938368856170347733831496911537958756907445260331607926147782813572110744548173281385484378445426324344604634517377135013036831851493780183978216076666909678656226151168551902396503203144383192163445537868733405457986403494704207243998995781467635139544265674637579008966587016357160718470557893038796507122896326175166653279850017652994861864259131428941065019922380716646016385083885507309080638664911138076072442871194276430543385657319922085305227768395789327061605532571310665348117577327648252584724040786127173895932688611326425858623771056965103332079669707663675859986587511667107672156391705583247230525654591589957363430524635898834105928206771075492505439028781913389139804764069753715812366311572850781045396386727032741402184265334232806050242665643051949831617299010131709490564647068748411719564838434046872031764878576696500884801005238586318715248056800364039876401005442418207864992251702457207820617976630721520799745984467564529567938704169714003758976543300782804420461297045102189094349787204278555033368239659186175148892480884194289579987285312602078140047550139172300967607067122329235239605604420320513755676769733934352516965699606826233023082883922988572924261541908330228320486183625745322112995999607097564785681539629938393803860885773655277529661908280654078847568191641694061833902586648451392003647889780391806104223768428839528508756539844962704842736203648713171021223317405901533498234683129172185004159787222955668523575548776052991906362191485596858502554293472250856984010339507721036317482747081996868539617736866447005639973043216581988698695094439024537760816401823562219532016212575590108546005579233600196001300820727420666488397599017544972610504405298729776268760258615305388889924927465481315222076906370048106202137008474374267607874947174398890944770935514922858667355788050171133676507512628133925843159754105127102437375028381966469363405101727740993935223205149489813001465423409785104909172132005792486554987808050369123595865429145824316691457591948321162790620409504313195570967005850510941138561731583274902116609376481937505407928540774075701757767169589893302383036594868284643094514487755637195806143474577763461347371691830555443186681018799632197746268380485633047037999747756290423584004769459046370599319576111417797819847226487476999613432916357940520549934147642184887865411396686959320542950442159480000395689278915599331660247503485989992815171055434705385301576814285352119376884594413155693050570802496619076800695713583797044257082994529330955516193536558397915355195372205178992134863268098337727156283369071353098979262458370003493540573997992204161558028937018758649145340224216983503364458016573591414947067950706625149262301493653341237030513114062594106530256401933327141193266689875533799395607893395089070162255085186647457622620855933886978781233212363974555072927981739402045864954299235163659287641905675312036382272440626419744063162790294047046750272191043981909839420518144613652086518937925217955473260877929935600843088934026494137537080497195142399455569663919616554767659537781702507038355688032369399464975771844593847916922919995998447499399844837645847964418306336162159639503282191821867276156533890114721479440308275258529623494798648562829645452664839863019208116182921231474602351449435092561300666764974865526966849754580124605363898877864968488622620765709368942276216556010300133548088879150576865738697789073576202102942938201309377135149365768189199673025414102228769583425465134158959378896988685398292596336903049820628218148482707499608685442401097921544437485186674577071226233158404367744286760190363426521543201606999969948040235685107278892816796319092519801569190347312350351970368337648932522086590593489218752490928522241603352079623456594800081856340053411334475853901153962190616555109742733702779665299707444408418913298842707568195958679120142760750147722645436814227770963305292647702363173476086675581058077063963931781817337603098664045705926022419078299766919507373485613325039869346839080557754391376819769077595542173884255582747112456889701307411475579012705138719423976553708585306403717186852714188154503006678125437345245559808798487980870604406615870468861541349680548549337595719870948710973155168853900318858652614451181003245163354927141162638416171806551873884958982527466964894552976783210152523572826811712439321010890580158196203244435570365414419747314369336314502561751467073091548140761686652805242088375007821908608312146205791508421221291233887353577822968239256783498526848575048623088747585840826563919026227347223595659550788877353818554784090478352691147880289302212406173993377673018286386505666398110335426520628023468559167246720002032400957903286032842614063831953760945527261592197277513689282256781378061769430092541585396835271264825612989308675706271351509176660307376320006552550182287980712137167492225613911343570405803610846808433878352775575342569778104423335575509235758606529307476764550798926571614723485674077597396459232879290899904681303495206555062959957637572716191561726890582614303325244203016177308971545167068105765854044436180156388060919455374665049948550091219291923593776642846624814629868057927357095474689560516667876693804697388470914182895645156523685535721395826359048520637205448192318200679853811240084050130645297199942658338459428772346689497339346421103642151617957918069468072232832397185424664626359367039092801821969034810294044431763602184103993805193255822801943757785611814362839522888131199371280805359030140360186065980063583896729007805441975847113730428659726938331898723468372493036184349181590863736734558768820399696136709260634734263614526537535845058570752772997412794932082120124611538129026387490545042703250414642303954359194322597452502991560127961207998446241112526748991136850802869791584119579061031779749863212541293886098954354451812063634095400090094714513985849085600355326491618916290269067611676790034111841773708621262727568281112737723484533651725304921440760279666372563150603324378150116761544567970166988171380203042864850812937882241823519623173653118409813245840504440770378260254818647290443432668578408797137083991207186126897087200095367491569476834562830061231061186522750860068993388017095630735804560772017777613352784609871599003975678268838029237077335480821205123427810874651369187608867435470920549202150849856021171905920402833068834546561524467660892712745830236418408457766224601264536841252158231580295772950048219621961552064143271753724346752221793212430424731235279686468901824906463120871606674303020733573232915284352215527587068641316890735259637694531133611172654190421253672321492900944812227300666624396594112721909484702853677824339822242885021888303450201396765095835678476769901016113443623834762067807925251792561060394817655790706862215192371302393387188525755897634697852896085075278241684266335731303132584846755408548224774380777961293043444555610166157092459254255623543512744753445225213691547944331698421749955322493847328747562150374451393614060578353559001199095677529000574346301765656837414001601745997452715349428445871302796528639476242258990933689653326862440089772341403292964971439230065332738343674850390046346598252390442594994811971265865729954434705359207895714367668386625471253033162606484208783077557577606816337542049662508622371936079594368322433623931478408606095647361421335605041426675529022929288348555253721146507839430780571632919374747431555400764445509796728723574072096762491291602392263728541031601966725781728228951083954060410786130588705655743305873943252977059818785774956748394488349838437211791677125011230355427817427027567478182928967834120153755414141237331392886540139838198351273199464596388947459747883653691471783795182734810231517366990925193806206153593665265436512664413714599410937089245649262277292215796174073310051226933168083970090522167030502565140894880764192152009167596497758509582260578347464323007824700990531461770816915320541400370704758013091305332184142135388925402808367785358166984784520815168869284061173316458669647588446359895762581176654376424624919846267440986081661679281000289434491883102498700060312976500501631712476749606523425642525858672831937657094393836944716608111132380143068402441387673712577918524247103940900825492713593626361408214348152189125629746712133663146637834634895336155228090526354178346137967121639312513455878717440394131637961672884868775433667499221372759737366312637231110438676717299840903311897515586809007309649367843733762752175649134443381158908478763801049928069472470554994547530330579161295846240353485929697536153690667676683782364042309022271408279889893724063750487841621945168710748792229767567189190052869438477559790699533128870425734185998751911126636409180729143560784138087590511318651591251175135782861270929528583237519961200331129174194369885498939095652314570968952680178368058443282126200341396904551162890125217215598458627278617286211672346058814336995095388788807438762658273017995396749686773871939055790437221748214036937001365674320189814627561878451711508475731603419732963107548780225854792625744764020257004544408129823857404045833081402502677950450390478602372202823065489992869454939233020615520106563207247219012793124797468494384115493833267126974222034965238009593153143561959212740424385150150250828366356439552047901496702404917065400787802232778476530916062851417005639259502095895654652923439241899252846253420083541865432220953332032258031216428001687125394686584377804854080211285202482998398291705066224472332229332694851719634588876761158398676611443488576823732156920770017801280723479127938949863997914049809672187774051498071232895375280071107042070625001074800754729322130279370394813594697940462763132160788113667808179448091044018289448102215013782067013250370863065108893793598860679934592598024162704205409020947838285349342556286428134424142785670507049031412584766965521348424513173400090505449417954478172234873210848095479559651881268355187203874964823609923959926280628120596158715986961873174277041241567688563152651201136338527056494277789092581847496114024491858874580243741011416857356209565224211689260288510634830013046670785408936203653106376262915599498443092550359583619505623798514344637927924519608685518721680077021497625017502256598859772526177061983696328022724202961270452434270801285808234072210786208100330324534719964092531177249913605229389452375255846930899708078385575525694700882402057874272078203059924257072837293638370279679841505901712633086003945342843754748726930569432459761593784536886787804457834694430738191009183474786918800539143890951301618010613943404147031740662690206872611751214115081184066028994678939588620621361303861087743996909832391318702121539399504396058999611906131084889469393670713107634538527214537633185110520966485155162018874319068147751186942621120100866143817085197276048289690954905315593616291170302052162636496027873238640330831521863992778585770899628550801384242805977777562302820058660107710170761905448830609250810254431513256777564121114828681510193014562536655286675374535221322144235695232660399704589251929021200460432655413646666146450795423508908498362269800564160319056609128053396326398513404221783943881690236608583162385046564757769062581334388189383231129742011707265850560631209176210918390852749630734731126454469334083149865828202792042104406204385593779620405120885077397545715891963166875569929546371976642954134194083701351084770626327568510568657688520049536958812177434867249041450857556814454383408899400873200582828941327512090895079443385390704258554471382293494635363722501136018582726327963640873581586377592662166293524107013754346021023934146301321944978586841665006283901764077691527464134846139408853601373008938551161298362255311304093241305808644013509400081250722263591543710022619647667377513015175835895317048196674755360821999330552691587852283895055726646118963773582091413314137017063335293117027575926533903206471487554405585915944794181604273954971686474307348278178012772300551682274438672592478868224171260251381758149113530219569911077356755906512758472479614837279441206397198264116928812828190859533517423011378422898688662572792541550186924564210864597606114645291012731610690880386004592492256063138801199900321119297883294551286814568255889129709064556889763664420172205081315104202244753722332438393439879378737473134439087386013683927545591925628160704497367097932446410455446072822687986228233980354475662341323795389964701975079878328722397738844516478021263220646745573415604118934570861598505254049332396298470113905606116816592292500096787659384268773458478397676110459523641756334533372069888727174520715019618310663244391895058089534245045179028079402070387856091036430158557092557023407474518985146661736949461150618471912495367600610937646586557850960682725580470167839208055407360981299540884628812322134518292406708280059975051411977222391586394255717229854062747601187443860614137282593426223864046160522981202976812712312024799215144704217601438289121155779345538079594694238477262920731147013696961506524063624827388639869975043903691063923848299039422619106965207628173206631702261054412522443667320628312980217864199621477615592998626274865725106865384232205920768665265161412254288185918055898686093648989534594138840519974591164976383993738486729276131808204481841917235343013052855424000619522020122921111217880648985624780966482846426713532839727598318244036761725449775134735208794477813412614321787635500180315610144493344412567976695663834390541849251131244347385456415870263070760244966501217382832888869494100610659977286043439174278207478274321334833563527656175907665691861067371332715149560248431522666005883556299921956153962018464574508659299073260959037061714160337525504662622560336980487812931693915567440193723628509678776297562052659137432638988916471199748938416481876982836072849110435619309673435834783627592532412146108782398150338144346460836366265707837151769930647632548660308850123348115618303266557312301594348635721066958895799741888038481947093636565528077470056210593812089538783989002972018383412899750737660919045868804322740649813106032072249394710729296509585326140726315936864829865416340491129188818239874834707964834587225985350991956736286323355156949982480291076342373699096150237154356991822716726696532724171296179940042799190788815298459970224790357643292375233913161478885243712134444259134933883611196918595442097521702180979764800811885458643642449600379221239429702187913022934786317757064176098995157785154505813756621192736254029164968200971697074439472024179390837653304852239002275870636830476797630968212135386556641148513947393880778796537119635460681140706396425921361334429655481125657507754305153518098315758994092876496272222802318108410477254110407898570385464089086655011253240434329965465851525313499594128151164196282769346880139950167570105494320425220544279683296864358122264771829108793546387542736950100433859970406087871878226864086810378158888467842168511994397966015255543157449375424232898084263492056915834351789372283697696548001759334706841737734355398750755088180595446602908378506394685880276538055587702167315767537133200824476568297310867020056834762285400756858351835709988279630323361935585682959386177234542264123694216401743856312180738873457075996824170017560317014214951056098643569433578844395883520452927693395573475613172874021195874421029073844580332725793266741474509699310454899806272489016845867833333054664712692832712973798855199991334629076263249718869828344897943205164413783081678317217561085973518846329173180206533064689051401579299188915532263180613276520858494271633126249520180707483749581592249967123140981217526125443568579118261841914856211201808692241286162384151192765906913125581496654002436387725173828023224170647690921719124561570859879910115013181483217770562965338697372996301778524016145548078178733602715580440914913963307246182748616048036340126262331320756617345610448499675676591282456411027039679576699809310122039584898363646355672547578933085484684325063226199767180023958354643722728982560724630185167827541571384142413508918575129635847496141319442275297968071882703179944231381416807717852412881768103779212208236280705785447957386752480181838686455021332774686830344037371288796250817063449007194760883135898824153233098034938072238760971897822277546076770321652889147436250146896765779097746125940763152141301222512148211503054024913782924023344199260901322099013204742258703133736513147109050463341638419779607761210852586658622822246918353736982972484698104918790036511704066394847959677639803973107455603979405207341959738384655862001836437992901592960657703290308823049462309736804469284503926855282040702236757741105395564315725648430682947339224432966426940891994469014800911741186326406735103945305113061850101838368078399882261912801425125073270597109003236574962715879191577516652354147923248718155269375181741359355361649509646307183100766065369384531296671879643804115894518176374315839256360069452939131073369558052635142954629039134685504689804564390142044151415370737904092489876055790633389649757043734738148234409347781595499761649623153139195817719004051149502546896812053995358082002090448631851944591626782259788200904296730505127889133710181599549989840063991262523738527346586802181939472811223239761640551776023119616656821443345567431043730623478219479403377629317867802126374752493224482372954466344600541365733403079226289123650143387042782549629402531655298147524532235128394989549828862989067670530633472763046437941878498470496583570314474080230734253864987651434719760427588594264101242019590146363737087922039648268751340100191069296673660528515307288212782726287318459721603609278013600691800389584480938165978627959891444200918050179549105487767881160964403083413619283686209869130602795534983363013774696031233355644296834460687930878110217387114923222493739554318571295509998681152402212184980401831638955438060060478434507106241453960508661487487980863667394691207231970985258682423643396082429934437605940484226974461679718895756338777987213755540255684188185735583084207835632521212374723166034968936710343889905570917154873695658699662337935059134124024543069946944517897827500322674259639098235109334533739879804999122167076498974031949930088582810275566438642571949722462506841783780240250282035101827868952748953539359541424841381405308765374685546920593951658713920010247199621928555607819601673872728905326006143655424112749315246572449831128592433491894672717956144927656912510964140724178170223713912699141905028344383997066621284895426447583661706912594824602384853927859535159812278965159364647360511123253827880032061297108909192281339660452065244214722922141008646025138832371558511426654310846955050370132522703750334999744563208753326144208898874175895609248649453345817319653163500071033279011800925734164462316464004188643991652461540705223955948754385860594679064872009374669136604652510713809589760731518285972231112917158152551099657432685210009726232165578851158733566477021532860324347590267874756056223174895214203940631913654875185354709732449303909809129070705715569266807176567601755863675721053752048294754590767253231038867617426418773316850842750175848992923402819467643470516608134928245953320739777217172232578172998077557222585591958486074155158362552814868963190540341476784051936184664778604956677264585805907589032580705530228340179332400380783186078447039239416030689396066753883995650971411109005264911613927563231499161299644911764667712798339579879482714615837743188989983148842037722327668374291140891990015687767290174860293650409948109833294153015106046416837905442126396284391709366473547919315537617984435935256202136912729660859178142150723321601835569533433679617456665888562944253228909506648870752799403122770164304376293779436005087388381936732609001140280930773677817427876079580425633177451877518939871815101299048689193024287996338407602636565806613080637071874830833583885941697431755182796059124586023647734870336195493613724551231073830052069669706292612340757378116357377446991023382367638764916305155563052208629165789797119820927170751837134187603520377140927912866231005176415037227906022409724050954210296304447578486800790895399015915248779341708040456189890858243129027622377470076207058371612725611869256528072474019703128746402109653619894000982535263112917556543595646259923075481305850388156559233913546055736902801949306885588664527894580945441452277256622743197960732591923112504545069277864655725530583427977421268484030873517486472375523652328590107879356737296300267728428260401352914981712255536425275028662935989281950353492450409882909077360841509699962872793730478529896945303582012364351470329858078582525260319540581293859296345295045452448196580616371838903314533925205633199485833411342616754139725150780446831756434285194942206996761434808596199300850206279206471737955743585511225732052907813558587864410079296807084162373418854319860915892451462690994757817630241242956920992456320221982809056473652595688871651806584514993930387210329953646252277972523094369662667429744742462298916530238374826545894254884142116297803702855841000107545225649911426790778744579002549829228196353082210279379298205872824868806613807744546041340051981124028614923350229763023096779920959953429184955671045896548934338938060478386543469949628158858611405254068262803287179148547479733060949319808317702149125075520068489173153050978964806017539901450652713047606412950155467036327743948962478522149235979804300402140359488931129751007316195330528681575252832783666752644802054145470301438577353593458703766885249744448771476922723898780698977948546366884150620500473834515097679588239317776500387238730712221297428012710856357681075635262696345391364024303131239554230346144401520669822046880452838078052348909327504489626332204283166302843260907354280521383768242267956616903710654256180405503321759441894792465957415417421873824035699265853778154342349857636728879047500809515293298908357942559482299137250786573363516770948496960864904724333859334499797630729849798391861937602015133576686347767049397548230777767555028498561411650408384934223270816720093352751710001912458892372230173287069581822816573173345155968052426355543363319033821906804290058887174380848328707674620907771528436471646500247945484993752088771047877559474130959689272141040704634143189114430808856211327843365065888997138236138220934758031396760469111733998768105206022402015522121116172506728102927607433980327799776133414535583875602322769078084769909683623502388347154706939079021351218354085599000920785701365330142938948035929209273615040942025720465533887817198761191588794137503220824432168842548664172371860985210925027307165248921646797172404710377952872570494460922288482901890721841639434818494006542130294971120384140876229318436076268997876662657309389696498778769889043962590516039053500836108882678227964474875143233486346694553528833588458316258938511413080154631384527194441042815685729623991441298415376121032448742503868668395714591227540956203110966286077465453611391542880454008989723432748913515796129760237230464088374826477171839951199492611067863694131500358311179623207319867873787406152037660569980570578786505292770610040284372607714455001918619276072010692829029415858867200293905365563412634495167732930055493700690592234666690117510947585804971701302532386637251345955232983224934024278134278774779725252376920708547048414842256026172258569959513212445625101144458221533174152120495205595549854171782139216563862682914349422061379680031764695935366108897536334966437385543922026948197163357063622497838061114635737349536024837983069353983824137221873097859312443281014353924126888597906464486168902522216256407915705008161448413185177919687011962686431739145354811597010814585690771175359706629185874125810925910063952242962758685283947138351173393575420962142568759021596978869705045372712261444226570575932927137520289002098402515315858885875459032231495191076406534145369890016875556321252558699240402211062224324125960972719607826834353439493936358596388582392020299209175745614882844861677731920864094058217428435703288320145531047702018736957374067529170694238264797557071346955433611529605416035386494205155634798619049275426751656838813748173841410694442791813226692401034804957890281902688241671290664884200357814156599924182888305850680416841737444704767024030046758691478955879429408903793643316852275718631338865074907965446928679424759880742074243516536670833294377857492174044511440654933735505749691995668259251309795539875427803184943197928686178549159545238376014842085264463423711305990995274532864617867057052605102573322045119592453384837254413828697447099734477227257458672857001489690256574001916846246180644232668743850974161404949602443720481048150270635596665376710091935559351235844829641030496192305387057373493326413257210050169816728911492340818441920068652467989730577463142270020975834904669460022532582343748238955196739233441258514252836218194500040103414901959820162554749097680205129938185097505805200733221170891110958387637215725194156761861257016076305068115403414617357424661492807186932398709185024748497371160980606739641830224285515732446485320738453710660127398081557088789464694542317722841761374009398587000315959758256314038771344667589454637560348976140802300513979834003942214141292625204719297362832786904010290093811579852539309642842644253765337824434961628458450429569513771211366455160648826799312334700834961825231643079002864585345797720359201938565029326161378252481310699897262648019165894250970967571301817142124434824984588906792186889644217628873071545709583419775976200681482662499380089472416860493785784579430484989177774644930451748298272540096647804323113303676393961970560873507899608315925224913311572395485477435796409473034565535949629611358959266508705468303000272073175696530381094529943154335166757663563582452460320916806446821043665505554382937091114465316188706192103189623578823316453207567274836016742167468915863722934836118398957434994629521740462202724894904700862801587021569535164771001460502449883871006896823365936553455713634112117205762751666707676700400701528483824088241847646873658616958894954015127129157267327196526958524612517978679480967852683881278573013077440220372822913992613424598800366668959428753293108493760063822013081238158342823980587612339135857012163837133115309855592975128659123023110441644564276265567698147398454566769413516901518020343221834406910808003008461542998407354933300302447828576921692378356617057450977119138292446626029342146092424635899412764418022693351259503288752744292960688244483072727651928857971739783773673127809178940561827222726721955298365040021234050407149159057351468782988120604685596673377926908396668888366583984669763157217077603398508849648240510832898614630376909734843949103687965375034304306675260880238581651992809122632053238111261174971434055657133846561312369181997534976366321399710780714798918480255421054675313225917561785404802244932186215650960683478554696333141833559778540005838021901867672599433517309437853798701209655185755263305883471840094095854993702845696283873076860756373604986657792334660538502977540611251081337672519884057618221580424879813171571087190089094449624626839199637443527374261344003821637991503627947648958636154001200247297123460784067095994715480897190601415201585578867371617893633413515852202516569974996354944042870129545789332416894743272400663425686713344304339638048414761647963208096414992851864711025761466248633298166421093903319488248257356213997679811922357428413302884145661220303831353479141237368129695445687268775040075785150039034383610408368166871303670981494853584349089509094524195013633741981105923175073955426081761635455436846007381307511562010868638296638863578442329651101234058871963547317067087275842013070765773591559076441522205084581281674704582163547429050984026384206433307803091931743939847990769747320528481712791062131213318171011422799880922437826956398297501794463761816878075582674564143495600826328854885086169254990602588394286288464616971476541497302665640380928543231558619638025006511041706948885747918123828200124633240726881690929601873996459994849708643313511538301962772067281796289785040146151107768456915884508687581162811691997035699800044368173924272139617381223205400615858165686704574759419375642636833934284518700066679758348421973840446714054712570381745243223818914147211421417395296144973070539463273872927916892698083969517371045847406868477636245493517530513649090693278912083928068861209999681578548765163034791078889576320536294195678935630536112039093479646427215706721000898019073324683153842328674396228517662448616373495398921076394249779180655940394972395509687521428645309776643589322373763792912729114125999722775825225148900184388590016692333472167838458794769999190690782631675472875086241069561287705175404307654390107931091042536181368443149794285885771652101906753097846763455254556366229211632555235175424838983385055259286737606575646790361058245240349939816908059593526797318368176033612356234219527456418068666234411434225910767880061964370508664727402095075128133893922062458517230075657198717675514443019399073607385738526482351586418014276818263737420127403029451882050502206572944778557887392432279438788888762246341950700418265857324307608835299155916705538035570753385951529625432182769752067268711651144610038239389410692081546074810843813359016960066882269576017918746914659423893390276310312352510242099075471502403648578580921937952201894539229921862751846225018729375285454619026385247151640857243842805444754458118601638929669173164392033473296312337464430298343764440632329966039714466312689623615017229989035108338635584631717271312910665907197695205256088366872126235081218116483257343341445233059223439129789563005630084224888249869885756842497805553901839952246173326129151444286425934677542172875862473013988923825505046696772251635980417030767495222125693887638506267688439834552535348152983325590524576543523220599634135842617242451419573184749839446155360300885459391170047468340333425045294132608487795297352910511767164228254180838774666392201939688183983830943025613100725376300765586582591305216079571977477438887560836369184382267429246548921956883499992705637681021544744676239114026024565855401540377778892983260841672810444675574641163767677024090535753896564239889360029719275507472603223423438027791826935188405387034248226863515564160951343201970753132143451367138833727438707455143982673620659984593886605631811493298909403535098637469027097540308489002413225045790541171541430912825183883738302490350565409354740309663929917522456545586834631148735485555052436864677297065351935746101598640147415895921916625004439200807536263408259463647911252691289253035506800099667260387919842839071937299689580654358698188333052364097869351332533427253562563463785303848951227239471686779810087137424225544889927000706430633299043024450819654951177762031735739284497725555435558028018023052895750073016881386794105873785436503995703035527491443054396021552791546756640467661471476353582164868380021177796456629490377887652077460620523873993076476287386383483486671291846862048981370538240436855001251939135028541726911520584767721106993301480564099834658312582435677031495444074507301672071316179064793731027504271055643462645973336541106331299422926709814242623258174021993755685338766600175122232882518501477655102690443580433502145086322090479179293580568823119587529947340325137905881783757287091859752232285246105868337137387111708965114225431162723012421876419557407263477077964753718348534002085286810736914144199937393340589815283681303280699231096299647333164555707468254211511299435795834634870718957642350323549530217919740220806717771848609067233794153955846362737153483503883507812060283055412561400669849985513237387762916211130156399023449509084139556590214478883624877949445900788107136835825398522195405952983894151357245889885128932262164378228616919060439241436152875593079022083281407457129071992042612527996828432764810039071850799385084174384960974744037657591929377317595074502126343652624657760968797484939681731732286610091483175011343963705889312003980268372926725394770117235729434333534938504480974141783760544444857163649099238923329415144976353784493236383960223161153186763141138035065815105511248097490431124484840548320749360621208543031349940993204831892877966362125825703459017834239304764615712351144115938044080180884531910332613441012601203366886681617400878468384280194797561004748484740817104245231745564336515603330610538549490674578975097473178819584113473312384021338875673152710307901046496668498136733643827030564970983537067003188886515146290280018031111481051236242131097529759193223053943106267766208566384688433564381725511987747980057004788828133835185507860978624394622654512627529460511594385419524313085368522272898954187796300989770449053924328184888282773786782123783132599380948463973082778110968010344391832329149369349311802939796793372220953598880368147338595965183244311226288314377292238483193578253891005746144668567771058930856001481710391001166510473414159397878852066140014882450212378188122501068691835253383824250880818671916052422512971015402029625747149636791775797274183893446563505604981285549871631380207584636257356605388055337566762192600842609462935356426585987995760079858363997148397428754046582171596368730836081480470134879413660008126864153773364017929362625966918418059358640572729273564399116654161707840207008091448165181938719318851426732669019377695315833818668132028675448689369453558220110158199928732438016342460333423482212842674480760706284260197652452879751627476672154386960488196982262948049246542849615960705002170407557730552629066145345766459240333913593135040039889246108785203739761722474954358475864764828221711339963453597724753028014688223561639162337436708919372586881308886407974040946289551574409480816287451380328869745509303532186168981752856538441644018471182909913910119472684910229769303107932637114752969567825484662752417767100292480083327572145182694441002060543299870490810235898668900866530606109397041853511201306717247100963946653527318785025348791246458981802930093133991323725216124139427586701785525561780200178660085224528954415075408590323320574142122417207207016569337001661316388733034929087523351775085447501861218808250331451763056102577049233030951613217121803294895705155947231792816352999893539839935969478236212446333480020934946195021226660536762269568219798448027552942860957217538201031442262420468281547120308900466718754163028351166936034111591173212247305107103311790601674170637450468903768633041731194734386020844742955702437709953764054077445231620164314329111149424746061041162503903943675203957724133858139670977537137603340049949555098302485913965654711565683632019898716689437989905372581515180675843307426575776805573983186530706482242662427696859918802357268433866220343556307172896936110777517896428828973303288440933916315290408503773452674799423155344701855106009745512290657607621366269497011550397029849528754182361212491270777114764363966356165451110461012220433654491426732102885357827025957163834910094155281700707856307263044563978549375053245118337475228428831719568082979200692964589434876408498994426179921298786492414979642394140593630061265167906339097983554800623359110395215850951862697943187633483900617564668741615690382143025531052605110869666852007447871348578587887220610058056948989302367853709098645521730066678312754113544895292359653307688543241042700648531970440265293732641605302751567720348894116067523857601687102308163314971815708218826573634600919061293467780051868179223210974636018828331626893916636212202943569936985360677869045821060201937172538284322044020186574336516426214487444461434717717165906166958388005427590712815753276583118432611346296192328885229531680034202857229231450400744505777158516711399246715055127499224587796482232297253847369004271102793762076133482670294512204047122847821007675099470272347952091103386069583011837598194639799687864148822353170616301178223717665214072001906895286458659624339934067844018426256988917721984893220024163935429440215879402373022003358637906040093988589163823859016183428294231007013061505082951953940755084166717892920942180130684483989734310808209186383717297624590398055273870559713061970444450051328697847975436428916439730428581877032128339587668831807499190607388923260783658649344247610790448540465097962718040489413446881080374420685432916919814010967159654861087530616483422090136317386964616131243765683099130471117913977022405471334684522933053862085987325825118963274258736949001925475684551386376011136285495955626285489225018559685901291298086003748030132943446428433383164627287755983085965247513431585236475075311300233512641314274401534152305867007081500105764471673307722131065674589052438976782346635932119262222374670398988941172211540395087101484640441216045652134969651707483434703510670706636462433712501921719365825379353286259392211569223149742526106290627109762746686455233854910776096946104291629723922915941188698832038462969451111310335457938605625661797972929074751193415638797799024723908039341154541559459636115755861681241906283005089682685939055497936145041036136284239271397126227216888603887943049630903859728587257596991013627362851674265150375404775699394474568062773580719830338825053904758608787633850090683600219408131219781325898153491598674246277881704180313024828418942119325488737299450643751940189186146219281872985570456635328167921245358935013185909076395070015515368846642417352254696517344405007479365434272878583147099115429783709511623780268192687559386894059372014570557970977602012219843014680150654465716135399564698597660661980387745321649340550340076724044598853359304972381269940415668930298013904321729388924056038699336351460289574775540768851293700708452148636053920965341733350722021999989978775521106324352723055423684517528289056313881551340700950659599847113884038043718284474588135347352989021370755003282338516880598059814764792079815205664652666999417321765861558706656432003828618769144431116624234717023006192621933535463229440553426612088990045595604719402446845533468858934865083103086574555535582377538895069239224860248600805482161805863403189318792365131610992506330159611538765317396917278802958793745320371789271207105441501452532844947405475569598119942834858843546865607709270095359872932750984444880424253818250938673393253623015936030075154518039870548559759853844193300409046538655835449856882872383984408765970719113555316385827658035280801691177251512643119077136574340848407133619930262868727958318078875911024536916433258358869434199806770182749517139271560242347538178179457397423785226143508651989724884123865356576120606834103367863735738696743047953017953387268468947465812473283171213515891271343990657091498558382640923399667482997283217297224681702934215957502095868783199384841035177753697030298009987847285874041651272469940954196773001721681492639337070169814830930823631456073408266102480598990746102714864873539461393689549895278707730951132107995391219686650388446363999266030705893904541354977989547963758122899519188472618710131049632821060895614736658970046564717476101959448008221998066140569492909294808116999554011444992533015507494535525484590156938957939009946021549265921862401415447358143551757390196491258195970670308151533461607724700285474311102485854204619679956130098447812309426712153380043164981197525553355142405046575871388319783071625043322429899188195154682386314316821026608752713351411022478479522023936896974885473056428461197054811967422480546218214078714260879538215492981157108532933327496156551090042333102691412451553082767727719101023167696931562369962953749288193137991276750139743035374753100541344406148077448734577052929354833038723046423545027219196732533336445511440012995487574116548710538596680067912147479042443970890900492981371145953387021203133681061721766206939561946120652252201923630695210360655135894821618980947922099606670237743645962624162102524715667334396648970204422350851483602956225911447042556879793834752137459378868826492199158597122181893970254271586149832179546889668071184466160195732797401338331535816438159065465505733599591954905538429783997092958582598135199820275026346149512396334353070735487945655981624804811576591635123468096446726260061995182434781953916664162264646976213733845447758985530509127875804013423413811243503638021146675221968890100358566539645798887464752599848772620293188840959410583044587369851531368396843694479036146860229418809154055726382754707085466888036520858340281721236513746803879438668735962019425057935766416442524675201159183450327526852679621763789518533993220029599536209624948381585626107676481323213571108076927132707709070750085400123419835060657646814078419683516297435268406770985952906432145812846607638212254616720260860303040035749466113517092976178302652158531827921841617473024550236432053578644446572657330850726039532425803178991057895260557583145263598142014317977879456667092496205067688273298774619480977354439899053138194110797430045655933131440923908902008992901299807015424578861062528911108918544974072300410480242887655937406130958870521697216505170710839186471206938497996015923065327651208421565230767304753657448923884675192149526461612685781956770042354466413115748829610131816497296123678316815700226491782574437300268747319662176522009874655096821556490998648628926944285808931396649132180516890744681683536508472046972435938442680547905498803132573104120358521349054015508605970548434134050909409903662087997115148957066021590934958863194528130804558899495803856619278376839477134399620305483335304640720105968453649837768878517235411716896009851617034966763821699869091076188528516637193752410300593534442869570684072953809640256667398716106917454765251131523146503290911403224661573753075155148169429738661605678241784808780857641024994273194567817009584066227880630058732307030294975701286754508408052768216426348415491147962970560480256964500279012897338543786575157176201231524251301695092312506539112398353768615792490808324412168177939441485795349906401595471207423920507495511222629669921671366388763473732959105456646488512558151634561028009843559087948017307307466811071527650172743300828780638115754040874296631093953102458688729830565437197083367694300478652498034544593245671510743081587119068976735526877945485158294114946960533425961860206305456497341538152742674616999165794664852613910189081732250748138338528536991261099872910209829333541498798062707406021652189241812024768484723049041782544076297207651368453019335870459182420365797982604254036280762432323331870793353134320585011657104614335297884084801136522506256611982481229713673597771702203461446014940340086962872680339835428993988261110703044719712728985360117464083052839438292200234517984536068532139743457357527131974911907956300644348300667879999704342974654222460784576568331395444823895242667279376560576843389182218099399493311976534215744411697620289343175670868937527692298868137252955515640799763262105524399578763354140294406099609280575632897782277612274805367878327548180529757666564262025083198200381038197037744790248864988102081848306223969054149287239499950225641036221536628758260342988838645656495316412392134582075614799283664418789370457381405266606414981388954843047074044436570576510014421601163962250284448159135921467906203691052935198793367877064704518936040518462788231869136326520137565981587101910729469017257092433044521260925762143967395801095591553034731425427681162300191300489987372680881494409255811568978742088452380336050008064936254993045908128258408890678992405272434283639979750374195558403596314151873018968941150848068404897136650420178182637891591043461371717192781373103714443541889128190764949651635849521917950608677318902360410278475721634135522954042265524053040087527833507091815608930083589193258617266012524384602555226662131933284241023074784434674366712791177971399369083564123034549299540506564841094515071369999043399309917103730676870558259355951551481358627656668091777022313678707240103868404432360399595557375066323639537551883645008847060779176749696649180605149209562153741187612390809378970174355910613637127441452564082331238877405564112506296306505789391362427837336679706253704439297438306214074700783868414620683377021506731873008298226112756582093770933559944567518571470726088645107957030089510899160531768648940413974262415348963879643574727446784618579639488880179016949201864341363410316108208365377077185243365868921931219838708141345698085778636015304491504025486256137200159869679487860743537526505774704036948165176005719520782284583366077195922978478683977053911859315137189855607980371449235083474453921513443184383396857380410042298644711814253026199176017895084990844450022326884139281894067873777324828671296353136278347832182060400252628109067685009824891827830666816462005778453530617556828717671956421928037209737567433329122858151839290020709899126009954589197234619816224931199304019610923464876841124361501634531133902056368763203849823684698091351983652283748105619403576159589215399574387103258789170041465219083041690952027299850716007638840244637038325309432124003920352037705956821336163969386806878878956322764933950213636918974952071015359573598099083669080054576487978723702193004710746544641535447599890138992309081863025393962355988416037314744755636209221744979172210282195954180381970224193889278478491532901296246098704429580571433181018889866271410590912971876237948060656412670131540100990734102928849526138607296935081546134243807292816324707746159159192750166246916492408916081125998641103350955113670021754380388750045618178913676684420512352534413558088511488312011516329023266107508398448828275823706667974635426495378079276615109412737460084308514811385389276481780935209528867084556517496528065440218238891090746100806738857989189783698107276084649408987839935264983893839962567709962501233046777534782411016053703723323805708590640680680392003609106653910361433601210367478391702919279665978404614820377052575776924059404133765109666063052204349755090105240821923089843999223180311247698545431847412298836870727027155258318060490857690240522398440424356351501196803755836018656223549754283325309509513341620525338051125705007987696138397054624706548525796178814466123569834004332398357927508077359448180570095015392204391265009275686251873318747025687922435695842333975691698429007240862311606114257001173426594843187063901622175085484335063794361950165903410124457334025374822334621154757666628308935552270089229511218916760907773978761710148934780447865785025287530314734332965914001306936838806910062299782792193749249190277282377739444178717686785086163510010432082271241132030094052850029366796934561659823954079283613784284333116391385022842807024848514068084137164230547576223262712471479359840036404965076146699437091847419067199114220879717408312491984050822701458097084863933709490667870616564599880045375540146802550969345925806659983114341448869338844903062513325624355858141637375899750091957882072701696409889453137692848902718647021424670534312577188729214257013755057239501658681533559304382793099645342570069231450024464132013312035771431839997521488160927198755999753360064593259832022668875411838090331564984976726792448867175270719505968353264274061639394973987782702125485834087786659912144425441666730161607088011728793444020379338494498687094343303153733487599535928420020504924726480791584936715929088853868410688841052329022342173553966066184653006514882775275411511650944569474813251685239927849469692184201821392349277562055688857778737766393457897748891258423896437405459292829099399169288663817797769765757653758766766135515698118204844218856669328550758506179953641437044768661949979391466059080285341215597919108444692139697142525241495805600804887396621488873174746058451698007176886612359003223774164119325412571776818824622888080896603690058159579246020626541087438763937567035913480717470840105715481105514112167344431549204835032528055319980991586155137575565830256615555357913821998057954553716834454846261068226805356970788877094351902437591122616175869336991265615736385166252450263183569044302122628934265574201127253444924404437566359881933174349670420933685476119166247841513852482118943186084654505520732596449797785027413522621686439588136994314704002128495223735625056991051189454071296778790937527329998687014215112381437189889030989986029977497625639925507843311382650933665993114076262748959540264169099660986010520819015492871946911744875969787846252740549885359278035960897504167114578985007483867069597865594759371690850723496091072862249087721306804743195443064070834908115122970460328875729815253285921184415579906796406452675679330383981801271144521389437288064277162687112771389586553936084678828422501705322922926385723579139092572080115170153659759305387529230149485738279403873546208369750440917467141731467210116673604775715178834886784520029290453372275169367129783948486917677329596310819651845541987436638818333148427431514684783961249920176147871119891022183847944035629165593587603424674182565237902481420761683617284813678419457036890083795283414981135788698171544946621287402434234885563716584473239827858444453114037827385964978272998544869836312559697400940549378753950170536403109697399822084088874236040556541561143048917885644937125438909269982961793995332909464747715245909357160424681895915220201852539491003126918105139445617546953058090307080332914845354180219826424820677829429764491927872118353994759962589707542314147647324586604556413348980670906488016282364448250196512548991891844859544080683224200212937880952771345135522386695930299317932416431502990499136499577731324389463353544163371193109003871761394297117026877522379420060056495388791073617560356524182120258314346024903811129347133799808804962850205739762593506929154495435436772817660525750476377791845040450479928006545228878659771749169556705435782380037437981091055727659831048967788843529816796068382013088117556166952977540544545688086042677303440397173797466397182167313616104166993611476649683887943554445595727199427039779716200970919860690399962423641669485210913684483873504524931184058888179271353202828051266321908733986280632224542584950826937339662221207330202446844440758920692978841316407513464628788762292188696177795432962689995026699450864046296998342809011375549024348689287769561787544249310509826196625103843767261084764739346573698196076635592148516676122012529518227414245194826195247270392573337114079746019695772385050613231487813126999107732161674439568861366104888107520018656428562238679566366610690481977150322787224649283333096562994735160424456880088845829145398514585548535654848047705161827730765627938511669930303984142385605100860355161115038253225081316327670041963609324523065046374975746054904797123833023890891767782808221329147656670453190626457324708101345477492809944442450556997689350959937644705543850621581047962152312047615461097935318042741236537029655650594352154975298044298681589304594972923215469068164254340913039737886424466500458970076371897419079078515830593766558569292349360894666966488569384604301924664205154152442858639854628853970565015484237145957092417829078054106773123384169875496067547181749850387566499270627032503654586293119447730360274244618716567240507464202755083975001401711172992313040301946142465365565687010028109710536521649048397331541647592995701771319341251493472402746321971553554502165675446529518297708130289124810358077144343254130630482876178535710623289667367088476625590019940581247589497459754573351843874870772486817108564183577322618578709181673531695557405945285716843486889163156460307350411485638407006374513347580119408523046240709407144530702820767359184190760688184299356907857082076091228255815053098667802874599072026144505439130782886125317121012444302303666308796267073797965753496441153475345969660606300402270371456310756317958086597189856008814623284791764430751404284086813351748468819102242655254158049992695230686142253913388795029700306171017299758832781706094336558418673332545151552615227227560060043503008704915285493497173775823055154625305828625699940861712206403348296178817100539670571653094939938892411965985171777651915712859332589248391958072079084153704607736715847243473937285926263786961528043481086035590427720004623289231537590008869227194187125862301597270439932200101180417936235884456037514550577806268656751512673500327427364362457006120016094141454552507891016484941430980987872769794390010904481931355234325982100688397693034037782774794214730101682590064179128440207458497514585535081885052955682418290168320980255761068133767005834273116205668311890562757636029493809802489365180987168157297289393035830866870827759790044020807742502763516560603037660182678713708546727844128271701598641832908768740853696825415493567328778155075928591365066835751283265800842523402195937224649114198796753743834376402955998744221667049329407713316498673187665664960855196222140096995478074494668564284922428332166957943209431308230019718505533575388801159144761257302569999018930058143127448248587995256795316305859585998243271437146966460529267083219533127568921358752565904842260735648348832813188007301690611308953526088121067790090499530250843641435925383392725992584058083497215281141148538099355063842768204067539324125228149989119214663785656711683321402447418850002337193366718059467443719563082887546279783317150694612366893454067285963588529594086108692678283500935315094382082290034204839129862710211108580192268165055267166415708157178506663209706341031944945085573421815554420779675775591292815396962995200044578219916416055986336185304238937393036271705563536804884585342267743982652590463297019206321661799336344240339725153484921366633956676770497736370980226021949474055612036513467133070407459229869143850781530172286993427512631507313917453147932415327745640651269930044515767035794280374734910298661694207216509966122983083933723077039855950775008798471016318127919696525163292006632795335965787823136834066398738829065608442347470066000610316907443944161439780867647178832867989184172631369967474974949826945005056976256001634460529164728811781698099311024963207171811538432476748452359494768231079341800659757095990623781600735320278892603942157508929923634920858831629404370542522710271170046045847651740611912901818250538339999995880451877733474257809857600534194514203358932696774874554784720728175255062453429291529741799511208004794151676562844946111424736338448582988071313938828208509667799682964240121676453004465120940633244973511820267656326886935694854574240390448600755147401103014124363008087487978124397844953933530639824205787279069611162784437735497558741175267346870697098142439082583746821005256484120205095761988203278951040774477990913132838641396217940405590798643652308080001058099196396520532214366862363398263543213300842849437786760227979657980659631704274215150257308118895877823734739557769969412635864323661104285659998442873687200076220671738904055437622150776684291458558970946835820032236610450866279649044666112335234142253559391218677798964758594573587977269125657898478000453967625693265881269335883623964115238419055676699350016818326089423282361257248377663845201527084766070248452897323527111368919888973374546333393765024184551783061110492584211197503094362534566090943505622820173856012194124868395390492444137736737456695901896678360050433043969737398563383893882347552642943064061591048439917449127515151464980573828285550278163996737521386100683199422359108137780494928487691540678350931129593701459034282329672694327757134382628708531618993530629900516869914759385838441481138578089449014028873337514382523542351995621780572935344973952057775731396537313487973247222975919819250092043502759286110833068614460462355126491574475395802836680020938793349865003578999953849769199918319899727349764063895469734030788078191637437642053621573700798285056335853017062283452514983696351516110531615339718697125888033793984377554479221964632078511356454377907565117401767364809341110284271498432012363148018575773443060166540411262837678358080065922323267959112525397149719215670157865651193071918137792321614925317362878191755343746207745426438613715354571888497924212099747969945461693175972566960254558645549755322962722171222652459099242009878761571484392881098470261103977009302194401102096893344462015738807432768795856858448735502418653865557439846505902594891121183395069787033804053357874257832227835222931298984881177572699287773019458149004284926443883619426468517497965255675812516817130233869374340557132320576729184584201634376231462943569262420002050653432572376636210357677900733536054062884744668584599633512282771822299901095882454099684382910898574911123113919176086173546824899921555667325479154293811752505314874059789197358065332732563829070018450268092098046494724131152428755684322040160791142377226419546723033338857480351500781097670515228706418316042385567189964033110632532663093110913189049329162064188838566177599871696913182762835095860007818954034066327814009719969720139057489674994017920174819500314442685386257073152443187236576509496795682943059673738543469077060147034368195249136116772428906510932828957887391802864815482412774446504952173284662977886379265806473824115824093726185215787810748735392589853562098226265251118786072329551889548432272762643401448183307351621409132591226600984613072500471659554129893076883627620486237300602134468219537540959658297639965265717984310253176658925577826751517950951792910405925466293345372569163347015447263578068698269662908958202711637771851522574305110883024892227726540191776153063023523797386730859888545101563290915818576562827022579319520846122644474849063393561570013084748815193265228458950863725398028545814317745272822222891851186974565885914105538980509375427560446476374806922548326687258167285133045626987295384327889844837302562668081659209303617956111825432868998066854165857645879234089425934738910235675692011054223891297386347513000527732127061800392588265187025778969641289915423904264619238492114009085049372107456215458441516047891280102168933386145916290050638290956533830490965072818022156706313713706349137077886557109328251529298612547914206918127337118188145659003141960779535752945645571410925021492779024115422339578655295628211003353697101019912111048626691449834152209385619344707413430861336542328679808873441291597319895501354165573825082327284865844503372860101321327053438921953874059452711758089639657698468580726944307825352951898339549874725843067834684036350174457962130349362888305280039425341141515918523737460786157511766346013606870720409011521716004032401131067201595811783610714685644993496615232063413989382603547439640643027978303664440801900765819661522973634335332072076051689186224663318827316645505993432856038861732141195771339558954031072104047310948765112421813404006173181196367506883955404354324815240037976487154024109960966826785791306486875880127574074980633194251987180238462398262369429022839051439001411990451010346527966063296136450301766155446408591012936180126028756414583484536393664817675219956197883434047465261151865307069107892394809397377083547591556519180529691760340573610530058329510291890426478837822563417316203397278381148769557887109071978492307864046162322983423947425747601741414554084829177706869012082411576175005858009237439382768092868409978789379467214672611427806600222142523433838249802322785783494622528638532218457668107954369430306134068233481772639162024141531623236596433134029609055813199166461773654136650609514396230743639085107937779627836515993933050559214033825505120428180170804069235725381056654309828615375906691468690652002418117542939412704412699462544014635530679066517329337551790369479309954781060145064070157359626433053959466895021968596010815953330120633998377810777631289351487594910420476349139191035101042874641859163497716641632115334700098468854312960006432489666570954629610703288753268021445313716972098406712920709939158853798109545397695497539172997520951044984080389772040106760610917549824941867566457898619571885034699968378687150078252103074825225974392938559771321876846924459132186446650455547383445019014338055411928008892073960115709360145070608824153263570713440992893602736551953559518412442466903381770721844513310918163158096748343652565557600501365816659009070012318126701078719376323975769289205072157195446207933988966239348401166494884824089885107862235939440144674645727968941250561974814907291497355687864811313773375089332050077673817848817861852950229685271700060056559310145650921511753116855744635207324865142238811878941535834725271824924492943563131540410845159429699460947280373998381114541087329113579022147253143994920433641498951606076962049052913239647143179522989470874512287120242939157048014112035956043761773155846227497997642778250365000012674489048560125965877083526679873725506811616882718301971064528548561551562266712475162261319269843766992369207412589508032908617941207195406114942702707369149949360469616583837392460412757672176126334245875654149192684150091360933617739543003070971009337578283247254814428132837671596604382461979411593538721638188315273778674035195114260591799492692476934995610219465938648534273118137370729480021497795641938868489010716593448791886299749634539801030796329052664784539521742024516259959830768341590435519838931729870429085431569908922781050914850881165807171419130728045401090901936361685537488948666619191050528362051383151975126703903843823159321772436394602130713126491698387705367230179442913802727448926841134441881868280622796197107562469326104001665619384174623872205619998711793949240205142914035334837096961236341479001129155747235583224263605358015592003231944152020266160388443675106382807819305976552339166060115596883214511434279418448772288428045428581493193087344471593889901784481491015693740593176321829241960673249791421232471463976350603879109273129250428041532972954266660159682775833838277819830501710056598230154684589645531913676834097025014534306118969963208480035852188030105365803768555730074255520049349909046530555434688602641803485090413001038227708116533560559223520599199824533081884277448359676584277091508558870223412046718652200019564988459751644756095890405165692714691683992226377158618382996242358190500923301551685988542000964386757327369314078688387988601342952081193269136859361412985916862383157409128804997462974627811540136778202990912953935349679323552909246041804833230283962489580763858805995409278229803193832481933339776960740269037118055137095104624809153140737345013331669388818747084780790895394630014819151845591085719081262294436025363668749716478975890473894259813065276400765364683612638024052164419360504964058813104221534721197638497468767690201253477337367328086214824783789207060790368075370964839550517387302861249316193550509442698453988375776922803099879607118086936416833190068979527508963431141991546335812101383777725786332568252872222040184388812467227242576537310722879266133986693030348508536509508048799315794185556316397381571821117846823728113787817684745899474307719021162720417217866807512883749256861955377722528768372242480128154339793746625610463905511670330581815825588092167718139848840927301072972405294703731875358897511146945610925398600496776373676952576987347467333755488017452576967528102818465853849536039256973212198901002878189223286213243380105978672207764477105538384159750978992783197488105479651357928024530090272905446741613909819379356899054550355394622996027767226008506317508438807529111095140445541083049688913013265822512995247982419240320838682920613520147376457915951687367527480082933938730079107629131872318807995734900940475917140995228263547649078187814027874170869435651249592625883541743755368112073605724204279751969649227120243523760966520616466834951927060112284081009677068824390214808506219240671127178346832109516168533831407030354578509170880202049732359354464635291012640950733140722744752007295278197932070309273757341937497954534054703981386413643644929397444887430717973704472985301301844236470443783788126623295268781430403140712097116144167137659452089296928109012904825720037026159499079945268259569733507470092686349290414027660790396428598305839690680027655067359917026969242400890956149596084991607969590512142516273446471429517425302939106396255590468350920672556852189898047439103457248136822624683670724115358303436252801749102013199102210530420490267337902231607963045958873453374588795824430907185415085380787889308563218830455566720602759947424972897269998376262484746340315280108613417704463913356733151597998468020650272108681741004857594672457785544879456192217589424462427895101592999892428862053480296585811816809361297776743060152056041266072303076916440635200668664840772935135378239150037696481920873532452504638218008891843228201337748653247592553423178802613202516449221806596990861464225834879743765817004174279651737960782822795677705251107327076449538509871948069975133141839690340120457575161580385965538269374401499807201160385062025792594093802960084249895266949438479754716636778053908675525252866000775606871158385326059123972731675058883106748039789884136800102621624464180194081208312214555111558441423037596218267897826290774258524330653311447998868427937522743191593780254467147157852129491543664610989990033274325648502915468821827618797574457335107921977420313763282066909524122436708424797827419527091445586308614731440628368565738905196656274551013202769968741377029544852559463950000990456193949542939097766277198653394169957722317134076325126280021701677771388612298791470655082190423230034084038700169462912336878974576715176229024412701192310632059804225548963207538323216483538726145944632997999384147399030803650438252581755890150442400297767843715750597617527322119527044271990539763380647640411324398584233292889007082375434133785980393669780060425164578252905284115096184870139593735560310088214034383600901094532893709518374044553367825609105703606902334621216880891952369622702343089238833205812701192312101353707680640445519332231788450954561334899627707472209892530038619413324325373926050929978270432513505519855613493192789469573969485165118864581482699383875105923929740625761181191152200989688857160162700982599048936895369660757356072990868671756242182602888290409629869193085400841176654980852317011016827038911944231581090214612261543021307389680973048932194018174071230413599705364707385950966354510657372719365732676948485886279383906188017046423803856818551714362696522347410694191805543047974397493196981450932053150547298870705478809664816207092612839744588041761655070151400577686019351305645047270735646579855964318208002866511088875212532754057357986761721150298697628734040953350370899492917185126168914759593997806225437014001382468758316502410771431756904255710471757284773789090804165217800192699379015663202120185741844035297548295257685494739506927194522448949348132251316901395370578381496911836430292686775604709122503887103436794502472536841338276169871508933634348631641689363008395954525105333920574975933691233013572776611804461058654279452458811190352552335234928857233655982501039208269924927447186185585473730844457164024207645892614082575658288026495489644401845438921687151507725501831513315836731467057477550429422964173719936454886411565855952888416116479227020179537218769716998661100835926226173994451606051720043064185047492711712744725679036400653563443554254796781267072813670239433586716008344670894212969903251595080295401686022586809583625353718339498074119043716346396114213184452218714985051091902305986225299356508441662476919256721501463786321485884802814141090913303217975730704438887167083714690612581155634586578662288830871989255439571976389878329176166835084880455295599580245774733476533006266469674166100224023036884160212222513591445399132533670737242191313717736866116047937641339601041326332213206877120379747956173792667466023884011808858509797638127557235220488989359236889015823682091275892773745949287062422856811388728026345851611125841148562526711308666006884472539059503743435312650604154858756644598620274187256184179517693875507547819629090078856343408503380876232226229617457670507600246254731945937727847441441142343347112742274672524296271554486889454036237831361311366745633121795855117086895004964105075093911605330958368757450312513071821882801563997244637315106041169306740218498023850206738471025956407214604065597646924091647181925802400217203777640419354932528360911374568394269168711194073298276399319798274510157099613946572273417082092520999758730893277763722321451591063356041382855077725005181335201644937156143582528713295701092878972282271010904982113640775488817219659158863804400158916873226979159877420439870297748024725393277209846964825706668994258901695614126733123782172953227777727876823821163771997154229664288567753016946100849844852231086616583183206299027721988381703234792355216377762789895843940876976480774491826527867640034621539482209062177738852009208754808986543801465867361519676924997133376692302612372510846644726166606628826824108874588815366593854130117946018688214968944169808204790977085288351525516552008187587166829392567157239634491898903931299933527041931074425123708399044945290116567950917313482513172021649998769914122784074758556549504610601987338962034735750957643527990094484786229133751177687789412608829213849389036632281074031655034241805041303614168779776580513814531276201077906310785856119175046167989696912658958121235375853598343619458128185172882708593946145759843839278388840595985276194445307128709137573202218466513781917503829042971317259051283714459670005161142215091947086227337498697606585717137898577309389852494609057537469632511626416076782485780849680087456711163499697683437438799079527008849955876658023275639167739332317507573370342968345267994977568167763621593429325391587221127549010525176470899071629479252956404125344867242208750061441294862538589148336825403164678757163804391658647723918663394189604139383340651529662581636758025142839310643473959521358240699686126628396349890224663468189487368709185538329005910773179086520787773690102195732546379427949580686572984857432821473440411075640327849072235712646584597024048851728446637178676617416153914934057577856448147822525143867941506480473916128378483482997965183880824148199425628957903555757242706766038002267202390304763893309342389917102637293234106694452299319494196148254432254205420445165252521917522954298374850702874845893313388978361016908171200051329861423909900647987483590489573460689725289933539511942037195460088614402065601507867972066493985225338788899553936782434956123880646386409055859261350295265136462383769345965127767207333374348859143321501381799304726343628439902588872950194576397588535556622148224697479248570350126404060634828487797727017490176853248321659090640976427434550333398598941884771373523224699467283686839227171867518970682994771510564978219845082671499981713066732437662360477255338024474080974965099888088127364087582340521677355791846214339334477937333403693007283269026561119004136149250737858615368442025905148350236497675387349981415091453362213970979281167715082205174253347315486179857652901594344675277792078123853487355594859566586332494641723094594009491928997557593935329370477286527538177072058293969765884593653501760947268373713416921298769877523305941313154096221646475746015102547927320577936264501446095043388999212085505097341854478040030063489962592705104215294585638479527719036639042448095001047139722182074128189151846271300234325877661083939264455226922156795451210427665566000786395110324345950218168755063695661248033776366977994378542623660342171704172241074683249521177476196421410354480279876058664784176076832666089964798173063937538844797625311984151230468832805630200919572923577581785782628574515621999755407544572482640730812845044252424607670523810650703284364214966458583083006920940284752436233271868591832779103467392572289374192772254138317812042188999640597212117368015811017405526540342397305583294434037599360339644839917478700572359904721563767553227243435162752914101673185735449734894096802160132367144178886277384234385773761823148350532923851322878945633338506321723333502575760600501898806271044911062067281184645859761256026224965948388993760500678960493781685155757545770181324950509614258868632328810723681554366453123464122358893788350803454835395276334322641757250785985150495608941058806991465022970743446067708796748956428493460369792309980760443656951243754809355255385951304038202198736450507030724916724178472072879422995283193998487610740753315722595565472357351721120345805766531998740065494103218924529099118502429301915078517904324278266434546555841861070825615469732579788708043133019447676313484346918262327414691882426532926698048014497391758078278397735235465018709316270844732091334290364125875656649616663168661493912373263134559252146598840344055500242436800790525938380349619612229819450956957064635463025647882111150371011241143853224009803637394100627024975614846747536265086561459755812408201409381591746720058263426611131938730333714683204945813554363933558004134410869221622835409582582884488241237762683863667179738744932598601331685616853456857951542404455028031112567021719779902293550471399645897900008245130923525305689749432619345919868311340014853571431931043995581698039816463823420454817082923352999128131442760521533615009516049248323510686927817584431832457228060419491420452899868392408143616839145602126555124080691087408738712810406146161527753607286124061131214461262633039165837218633733311003156012911580227347001559395836711123791904540494826853691163262804195898829978490855739778901250403705133556859705908909901931299269225517737521505870356066288933543535618933406044622528687136590530686564634554817456734629034654589467812476719757678444829462070181855478669749722081645002848033783269568717245975374797822760716518003998331443116170302126027170524445839422238904589412130394482967447992001130595515122178105842065746768393510360827819865633638515568590078429242023607436753996896193274425583098851585194600548421294078404082285842529919125615053142785068510872610602098803522227090928885902935482479833800802719305050826283971552682367859516433509381696918020053421423427902631762656150665364771041954807233988139003976250188320076194695082040108055363157850320776954749796290580087709191399183931224257564091478598303849577596328113843872562559153251390505072907778611761645179947821138543958445281520181058832217917276590050695711806201872297750088169532070671773414872027130314395122117920089642892118319232314309791147429495895046332730201724660017201138584987356877566691906233307492792207675277843162542931705467254718951725401131063099690693971897356373990229311047301390414434195397564669187840932355657134225632666824146142052603929200371766978371661127542356596026095144781127409607935211237291604390346625014009851636994580941943908040349824035732025582358463152066491171590651367233403277661006151672804138257027308850089262297969141727726479075135856736727705434827526135459152505189875813762538360025167071724065265489898896740631796963846917896643652930499925315761576829671047339072847538886751427396793918649671704386313757420479637747360011443941041425157686593640004324172393882275454080745313855492827512137705756945200253774094452679079039294948480793754747183845824920161321402393099881427150312445838634393961889018254766170485849509370833272809288196058772974420833077941447127352370912625250875089564754598035469786723987578095265027148529458363804595787686836100255920454245176035071022231976505196411756049095040243772292435284233873171774999688008028153925823909175722834410873395137539289181230353741040592927012149968964734824434568952259704389011909132183223757389209972093601723829455936937371608438013145041190599157251961079661919483988407418831305386726477433850224802903430247321046324870609671645714828175098481772432218750408339730450623938289606659002820165830894455872445737633637799999905273850688715944130175807954970367339294921462413431238221953839604961525783479566534851862642963702752920304262841526392364333088478560044363103529597758410051749177613000462347892789720402321456926436436786855500174358021259307296063453717944592009459706167866554974321638515237929714820731681473645792499127191561132121228960419110505426619632906921246339085867994676426772716116054051969398967275957214794837427048223775114472086908414575159808101561964327903343327847212082879541930551550011397125133570423549861460018556442899788390926546839981689941432127248031278095364841805987270904983361683037586043861459476953913510595476592018886304352109833485792265623322302282697964367677191285336529542507725052510120230809990453836604388377379433184367365307576612685467195879458463729009593294621347959593485932575256460487606230656278845284369729627519520999213175897291875668500020542340934632323473095927965489598878466045240610239276595542819566672809460279177482807813435337798410639023056401008072201596210617903575556451775089147899847343483464933471131628637397503051847809825776951594263282464740998045054760529367259844293461559210488266902516783680854759987228848075479024906528297790601949448358024192672328137960354676862000443146117082479057685029334231379691980951312974671229666981312098614838974611455587742413588968293602155682011856881832345592225933529680927378165128496343149845792346772895676852591212193639528837057601962527263211323063593215441675537429838391877414514030663589006009871269125359530338967617740783629797010946433713383829371114310419240335418971298430370798112845129556925325287503258527756550929258114810364673011649284519231179065353902230948386805058111977182061386777207140263261003497496262123348721940351154077335806831704814783611746901312622107917903388693141942796072669640410587005012771720843984276618518377522375771076262639907865891707229644241622080707837290722058178335835492104286877258625497287022083657603346890463038907426782910390982245861909078941043191479936725212391410471509244276790245165741917767902608964918114092608110587978276693787540954362892554187380833422996402389087332272279941577049980626032662824352459646492434510426048104019091679115661207810825851597035610490423480736700244304287226691537646550979081073116813377979630064500131442076136458330427249297071272720772237509392291988754806624948401990444718908194602606699742772383738575533582198112928668206235607266391199466008418415737260512669839634879823783700384067238665162664326076931485110634362972862494150614293528721106302903885552321145957212150728598987250420572692177079065977630990774834210389126916552153193029424991504829860629955393250607144807895631124112951471327651131907188247033059782588807876451891078667981262714718008988594100754239612731312976269343284026760822733718287769135844330404469627434626923143228947366208100681362661635360974541315686126205173773511779510792847566544405942647680118979787158381965343825073730680327492497740427531132003970274606151901336965091069131551622601570777061897220654951272201838112205979200366952993092751302751903041695644872968355485295351693739779378553959286110648741695825256892393496994890714127904471314190506996959671561094285871024160126341562911968186228528487009697953108973512553166115231971333308525998625889070472051647003568977689927775634547548019895108152954174795177603068432009305799164264358367318401685356637338301048874527592022980642152850877717634277980181684388156411624248488947464405993361598476178306156113459053949712066127275105762802330106544684038732290218613258183462792584530235247756654092680523371166440856646369117587173581290215511396753396813060728762236866836323084117905390596956136024517011748744853777936162421531780668210671082169426424576559881856069388944257271174318035508226447945166062906593520532753202876249242521745830549398897436062678817801346437402617419479844086033031276540130743638014254620415017296672252053299310332350734527192149752467294270570466179700522073245071512564803552554198444128817678294469906402798907454152932648318577417021585991749538348432225453878515272697072965667987139551917116738846160058644329614360662803759363820143401383621103441349694749136271164601792725310569767666516154056271693932890158358982836387828225956664644971991514178049288441938934876629737754820514036514109922611968565520090605128829724522149146881536072217358922123812136155951832504231404952411504821726077775912223709712579766349200806087139852894280436008951647539882320042673775263936141340561038216047658760158154571989677778727082809715229525963888785995531444496987732502730328998474937000743116821912707561607944768688536360027685318447079891227797753484750754946697083211088837567131591757429640903724094252958735234965323150645670827908386526772610903246611253960839283001040995582095700317027347198761351121044009516489027065372760113052495308264790595725956737677336079121426546129646499864227126282824635650201854438169741220489191530041480138239738733598113821000052610374328264430803699036734778097837673802160653441971089511294794927778308982557948614244767515870595202168462561300701992521667160531792228671727039963856393365389681134976403492928597007656718315979144555771262589759912014753191615704839578576869084324659245202655139477146196708013613909515990849059664694980881033765711100826300672510666641188771074239939634447159991808691870846905195661034049893009737686638711732014078678289464738297255435523356173869450116266722773389098310222119167534656874336023140472559535173678239467779958671290209990007458503307316651053900237516339316775544753824030572137661664866227298995255305885549458567533827434843570890208248122472750192034600418618254373353617644277155769194108994061643141586031411248670119211929704881326333490211722948844279572684392639911420387288637115477484177639567352542824947223038527095038722067365322804845285523531206914711619849562481513851577658514026937835894282588694221413849000828119538129059714496260270018971171283810763377383338829005329688893227413516776893656860257048810633067132784733492408025813550982332388250433823069265010832321437938961156849890725184770558955649780288846474059489252028252097031419796835175805064926365908385084246183630199825830244644887565209522947874193238861785998647489301764713433324548160017822397124480899595724478588130251895760977047299617555247559895068592012782793722181013289953503641992615523545075502130924927677823454124455724762675878484701847422422381813925280632272663108192741851321582668680841991606031153638367188853150692619138260560472465106112869782662951341483311596364091174306953080352433589961871357918611577431802493602661561720527381482541053927522963629387978692479632692554403104568229309994193637162959688853161745019656133774684045259425070911818989633855106324577047195420980879453431736965110752233480936106133406426351132864927309790355867783640280034840756528870900986911571829941139204831135632471117724644295636092997380770502941142842559093349793968037258239843676806832037028323822818305494810452601648656610994709708740465376743463805688806940764273512031125887336121395904929759771747526170189192500232126940512126652518693857858125232725699264988746466266027924727924909004538826093202180392824911113884100208725087622977253149973006802529078599935242819394720173230555018840764332220213416251675946139016283128676697465141100070284676056553516937710995205775469900578879689562233144934300540185013281010605533763191301264326594427789491286310199643137882480685219422480821133578705876970518400496185459414818139247957017664578260179844462635363118546830215637256104605505418216791681444461531184281511805488080691625497278517500773237828710021897066731908340996668950626666899505473606394260970716889097647133602296687117864769710358673907793993560104042233403158873062488611336832680254621700558439162907005610778387281887092268118793332163443908663860629495652491754209907020683592948843702172784863802960782580975770464440333334158114142919929719287955192980226654829180254718205371229964537224922824247026906657607748450717204879061380062813859615735897846886408746200734963086110284502245735566381875056364554808029655138610651248019332541157180183494946958772445367427384315626925258759717641953681439324906025953374604237823378046556881714182913583226635328946473919379472342235311413028923854436037422536129254287208605004609345398892071446231749198425527677516069544415724603395456038381210084795208054183746206237834695607710151632396443430844091147736994673543012639259716909652446861346164943668059938190050629344314833805781977378779631129071562485828871186788145189599975408924807793467511627229357828361127104590234296199598241020915822734012982790165663916395804111709253996973399368187369185335314944078201547786836988551930983591440120204326809928266506247688609662583787795387618200485509288639343486671280287450644074050956229689902279723498081000920993226653842614214076442333698538139779068701416247170759320909068173988011391940117700542579401095695308280492952122235733750690399704467269686630891234740984962691681357244662204272161726545652203712321562731395453400552130999533734472805737079418283259663685898240476963038513187657247696174807510934533485026628061387938767529781528688241202342259752774960903579972412071319430522810690062740505950976987922142265081818885620221566474460214575464705388002267536646608289336752789981232937141855865689794754147922244236356000142804874653659207591352564441670262963908664212791502700440757332836844565620218273422668189932106336158455167343951232721736380682674508244940157169489555138994733668392189394284775369673117433306305207454849044694231866960500261917119697417927359442721607915637292268887467459223043547117568452861535172787536261503293738791642859038393805618965625179000613192930925959482315251296990453897986596042304109173313915409063141119039565082518424039546158191065460299171088071218172306769016344020661768594565832842842356754068773164453331128006960794651339014795149904734937757910974369764688681352681139811338062875930475445255977547863859286555634579204060552426479351687908215709551301634757770574595340482714556725167490721484219727526846464656897269552171555842011137123488751167645647317212570717083951886682414833238006205893051581386849315730976046267134642915213192734044110006155716925454995069380129046224046859499965861529899650939604972746468488772680509211927503699825697115886239053240908217580989858024039792355207394470829981767046684175391196938179510968068041543422803558608496059980877599494272359646326861246200689769897730771052415704172129797962590798545298993680841409653212645962729501624773695174233801399729555782587541709168765401151072528495421795459970353954060609998791782926234734376981032706617838942293022324806269227095892366543091493870753789164902082638949439205530560988914770017345610125134021088213503101236296793341133339864656579732864670753755856520769472616048548244798767263463484970056715344556333107523211114080343629439953109524519294413476403674426910016647092450309863614979008454675124268921253611315664109710415760970383566037584198484016008637589011384600439855330394359730727698148593418273563780293342362263511433102188724625142181315091877907192582578813861186557745021659476741143151032320372723191141351306846695216471798864652371060596308345935076737184679135344573180452680591665033210540114385339039223388791835691651551721289078885146532550223845936179860223857562777581291878725569586043715008932524818772397911033776187487213962978838931558447696890052281025836261737362036238651159136332103380107993748634176405951005432768068622005368999822943666974994859865914603187768344628257773066820412521001423353189480685235831882590014564458442348186991057800395548213771059297603856280176391235639719723361117189180442729683653390010711896436777591432798709627885860310670669636499502862625466620437598420459149619703875646416217757582874082101323387495569352188609687918406592710909925305558816583862790477548052995118996649682813769152083628748271676728980383032001603235235103680047167799904358320289690607713397742749208796280869570653497405964235096165458944846772017318565989695997431549959083449375521247084442973776676215054271553839678213858550369260031864830713854732133598944427082851865575605849683255749020679937472572217069984678165470018335448262552340021634079258979928594563008589817674200940610765142082301333869451820405006233000504428994249269976353914877506213561053865356600622989620521700005204381090682641965454204734349134969613559618515188305922571624308454014020834971200208295719196121095332277112574974453663231798416696677437659552697806994759183795685743464487576291902083252588483829870897452531907570096497342797186673223322126856036111800669897456717711375710162355057731545736435749302818735770141759890011388134683083587473029246403316184385924549401725896226253742884472846671513782029477616065363407367352944090026374345022420880249257391298511331781730169225851137838864502875911770116966764963659817928347899186161595037602551595821714359687895529784324441066124710987390548313136290819443991018619172551903199378387223664220699881384492429908439833491818385927547600980378660025372217169222488510996711099976337283973265647304035354330420752354909879566149087185994341736494535985156532813774007628475179398938911617372314966339601335245362850529668229358843717005887389430000639558298110528574543924850228854837638101789883116461814393918855765213142499805329968839709468318880846592127106790229217169109612975327043751658237720597451908176060455100178628725399777403168530573873795986137658252094746263100697550401207941065374258716376071338098257837806508496150975815898453495876768088551656571968938284721192447286089989306998572267296054299978267233385510673059457355939407798610741572391768425367195662912373604487249591495875880843954366105523894080413815439141713518449409429146329382104906355220741057823825314805946197453760264507027189650786330951456171754835712653341364792729412347143614017759646549426550987779354149335145081387588950641796407404550535192861522986695667147601332741117665294785134095566586479066510021715671563479315669001897506641742722198800681356217094799176946822707520784812204242023250526715426026153895406619938203202382084754314902077592166763157741393026285933984992819645299857426640727637394344212438737546514251384108175526937636331078418597548538610067118328505471716141094184447125061115217948380664504308038110254874830024500299141222907678227331988510491548168744623518727011096352548360674161893138890437163756242133052212276416559055346579195932418062169813673743125073426590794844812454702067434784174068573369072568910653641499082939786039961823330892249118866196324253295032243272429683714006611632707228309688745138276547449737300182311461528405915295213649270858089690882979802264630041189479958057566854686173106019860926514005226947583928339063755664758193693364634792876193634242878487498988385488484699436137383697360421595399821588880416587070075764433016429046718384029649093695994722840479448977129990183599107625697884759254799634579004953455221491148389769576748906867034781663433287060180527604867399442147530150940421520189929414881748534781080779170367443843762926194698605053660034757592547009531594354195922676717255094421019123847353824871400850951190225381502508713435231323123476896526597907320204953735042481676599011068236368931361216776189105967902270215935566675655161728827427684810096618420402327302700291562657428859620219453284092494043669083279925471500370588617370986888888004740717389011793571508461209109565256354545620767975772733978282189947692822040592209635903990817849508747643688404945749414706748017174750467648423861217743475498088580428574577042983340331168232381973563199761287244197823754539283003171791131187577877506193538954894128166342334944334478678077727154018575526426993498047896129150310230845240466242553607376192521645003615536906580984763186733409657625761197283330033595943622801349989485770590244874335779082250649857781063629859001295654391956886262782059032408958372017672987875066095923432159398524510788779960234714787282367963100696738655658922212691142893349809711031879479034096536953732785149555411165346729732953792947474667930855745937195666088225153652396077098414275853513755906970982364661526711306977460627202924241337102641215567592098195190116678826691889613992131728904096699704254035316770659330370656924868849518839799038653231805685491180155657610864264391661920526254933261568109302557889411937278515670620510659744899919787057717072437168963028328059666773187649635318489391067354825074017400281258341677701492117228614462123047257943071645758656144345591684191506454171315435924998223904345205297909086726443873326713137874910889789967858481553466700235791899566390265725199528932246430516359465369820735011986780759230201104683402274643513091111528306204290550860835890286986392706512606173362660904842211669520393471683805897959899487479083487805395125291362052307793235566704309194648031907579676817175872738943799500352343127602477581618039071713913588159008438099385291186283607562076980163840854574686734782712969016472921154034170365505872226339737156180644839103538058073327431963203585122919052225074957794561531701001228805322733319964094534356861894859539839707373684525753929639518024391190102098820253405400693881025899893374647319830258932423853385322708045921617206628799998855953618040201303804174846754632735638309564625157654078426677099738705003689349934726291939549934362294171883142143358074742891668862195597834596951347043270077257408988508100276517021645644172516721665520598086642442619985576040121185233383604982871574825537521907197417745657846149939683201719454995831488334306180005875923732765184322069422658324994225031354100992071521412624408840960748735890337232616785210929555235381367805976911927994338168181603360518098318149879744434723277387796463055149159562638860363845129166194763580852354535918332347733539903600549141561315164641108593952707529115967842765354789637208432130654813619005134208251126323597784515910378603796568364415397775878019059290376441983175375877699578267072701581130107008358284078322573523549942081077185609035167275603184409169881791497422856956684548400637429458488314175935985307733353772074759120070270212466787380802980440273002375311898221675194606177511938004194430034649259082988445810731310505587546540330626955279559029179174403861750673324601672495609882339869205501330154041714696576183905182036582199375782595908368187007420393914149242829486227477869741898002921622057901525591243577769984026849752432287555328755171759949630239956193667512347440846979914090720149705779275674483588947899838095598777362750143735312421370219855766312766445925930069765269808383366381748852483203703089006098789755844251789384604759656140726367807678483544138442808916567154979871263644521765521384233609443625105863816034182997620337458524374761812495124823012610492685609595696672914427707671267273030887301939829575448798769349826914086106651855256027545653114847500633866903027843009536706519282288880785399420491895109654953518499154371987717185877649425796266655072040957659628589780658152832841266828862997720674244306032598861321315915441528912362400896606263201309452637976405201589373932239992243193388662212331378289896756743524699426466312829311454025088608721740503156028919841381840042299148346290287324502738232922573551643648810920404341593927682068130603469865007106243287138132395404763636972552579756931540668022451898796197559645801202190252771205091776941091243546144570453093827281059846754089890714409220719218398838853247195123448221813965412448127301548547527609443202297012279904107432286989330501631387093851158259839454642028246039404635588092772782988398137457251082006988220492149164880927593474968004438714227943434458387872899948840757926212916519667503571022940062453729552544284299088265421590718651864733657243953020311042214209383020469958775710650483316325267972754187183912632387285003006096243917307602806746558808757701118235388234358020426452594562469536853160161938204938796906470858758549843910298713314019647603364936101221527981899801563437735405984774634562601608244881736951151257609843148562874404544092101752697820757344018480582656900507130236278434937780435731907580502624862390350703330573575853516509870969967123199260051024366232209294193700447507827305197826946668437083603860595820782054342167585115348628480490424986758221066197570460681127943456789691074123400769533610431248800442796943634600985660565088033413737228784816470784954693869746225229738368306471889924704986141060920341183245847547874224717550559961070003915922387610336653612241820480155869782732324102180720322864931792449896710929499682754518430821012968967196763646069994341251675323543936583768653721639879559871495962568005883757109359154262926532197305504810971165335113598183791714864129619417479964256567735641783613959114986742170966264493016371368565474507465925963011429057821180924244015009487367812813378634063891188008511798488795239587615943092077585710032126968947115473405853996038167008247846995420516630231634488230194708350926405227006985025413717355603284816949020448600871424335153840587738706525876381089916182469830504571974055199833011868772661286798604938814894549138496187995249456458863330770755283941956966734048608179496884062417046337191362559712340910810247993394056301133121535099842503707251611823138088141913385016739673758682499276560730728134533060698136123314483929125248077578479575432874440992071403530818367117779296390146076239777754147812485817068429601093565659201162573057587690516179738309641916010600647991458801385839270877002306730773267689321136827895557005019071347091816875605423017101303909037415381181716018597862481111533507735292346525667574244404326866114752923878128769325433265007548929810513625694290759538051496628414331820161906514784780254404173466296230532311178235257901855270418858126264723849513359426356853323752222773928232240942298278160535112135118911921725938877668339532668186949574778645788986660565713735042892385485974318889853646619665786215586502346615806116876524852524392927019573220099543970526169757908051665559447460758176331664447688608806491502156410791545793638652557660726864163440988763263069440592595519086094313217188167291238689405060013266082246260343699269318130626946581852455528101841602731678737475523968688755213407006545077265388234410762216186181836876714878800817048308732070884632325480748162251623136791523095138788741656362132557199779877975433014403577880533174351046217592852418853432211463566045073708840843998928992520010490220987235731857855053255245573350485836431724744721517142215286748790477028818637043691607865312261045602225444812640885808197856275796850509680411510278951896313595636321917872795200220372028671890499278034644954958986583161650383018127365868500746134636087381420044460340135817925281370310831027785029619190572159286335100297581008856541876854011576090443319325294606489676121589118296849691268535797060622671678547341585516251309362289181652273390684501797008649936739224557098823562770927821964019669819394212818821468433534349420600102822182951181640258687335366255680408545823878491088789742821781873407697247438218702988064002511505353163396118805945902663898350173943992413439327585789192280948780497189353125111606116323470917569574436918685660723604705363482002658067097268046198141493780000921400414879175874895802855434306284230759902305190593940045409559956192498820994461970613874793312287390204388256654916664012012716508001808736910314034217284476563764082354943025702154137811124342090071169868347741171173145463385386788744889379266327443099823825388536794227240116725946859249959588274186428796215850698788593615491800759348960766590099575442382847601905617576101140216170282990523301645272969749997926023515187594010804612738846243510614498379063808554995372875886749337560954684257740464317413847253718200862470413821734556063609484516781704629716739727171507510713257379901618464219677144215546553283548341960405645168860391010434536181703077566885839709891574066878072488729370137793638391101793297267670475919039211384485644515868926135132989676512094298561258925832208869648373934746461600104103541334528207821759233592366498456997440998464123854642984013544635931826749403502069732651838708909918292263151563373115696387270077765081498612466261745111976375024401627607670411717866894105258056302646508913216046934907126458844649177758087352277174761236548464447764405455218928713750342958682758751280136206683670405949676211241513904126353948932027462013619340701900150835335544057685132603874649154182953072282418840971960353904293235555159251598629704616714152445907164575577916925195233118987272035085185090977763212363505338894530080039848719758924644753832221343785712131381334191096199681549672009437841552328598830783362363770173053546996274609169860224759863741413832125555283014181808714502771870164933028900355409053178731846010406233327098371790016078839365881556986059033176129370018850216290183368649924993741568020757613131899968314474650590124274987252633746350344314104785698865747766834847422040426239914012017296138470429476971517181586597447925733157834558243653141587265103725570694796808598382561948541518079632079004592043256523385712964685686549779436485876595700395454570450848907635469401690044133493422241121334493081226297018205366178883270212621553503437167958747040726324598910238799370578128614432491303036974249864581282514206068086413564192953005388816118036757163008275735027480551992732039136067695234106782334776180267255411446633379894638703691511457599702683576903387411520458214730505573186855318117187466715737367265727501465247663197988129977535647591631669073903220859672562479633945930236814738601820366326011749141682628683426289511540959089949331918659466382765016806888380599015128654328785223908144653902846180334797563078214371521336257040004033904236337879701764438100038337112084207646582350778229771731414563464168248730385383202372344390037300607944417760431251507009153780471547356401413222719388430691705350119473087132874939051309414927288943749298430092454639874965643692455767771264935028549180071088282495053308578854339966965364521432761824312634501660942764712586636881889394340081520845306019531779343365659748605988275844653238505157851709174957076666365055458621130051306181734343383155885194036048166431791053894119435007170173025680238655772377286626234187727947010823355540059056702857316944439755983297707234684842250844225291986906126346926682112465222468706109078647902091645958842250679975244706533738103051352145161190869089260889692606800351996727457137536030217181422256692849341207850945638490825760796459662531356810526216312341460411375604262018465045333807269902618310502401399690778313998135437858321960972622657825171394172586573822612714215984934697427790440334516518057339571404854063317826720487247074465141449453201953722966506237118439214648387497222180254593365303139629116561595475869148037568534580731467300166909994038877567106474880152105264566851268139445720285488357254407434196526688207767002171988973450132555831506856035482775388949540591735772385825468713146923800542634944366041101517346855464261321787033261499546987549095982365412767742222939142514751201250118371770212069026740248478816992068559808996373580072586780112870142182421170700370935810183854673272170228322408263864318539562537931996768081232869521126680490944082808651954864036492112325079825421015185078982616230529896362422578961221949130295377196224989517082744057561375892184145394599465288061593108873416691545859630650114025400170783089841696387429407316402375413167250196310474876296941937731496717852844688961228204119661713472419403901173073757996791181903011723057281208498599009633416733674444035365487854108806774527237129392253127243134289666125531959164325014689576060604830959696267603737390401093292808550607372968227664835912635265078603223221680751653465734520654139684453521066668780163643063236214025663678545901903455465383933342204818675072008616095651389651172821669479094667340196825921248516441147225166550298686544092699414500129335761454561156948343384286310071994294065310763689380364417569861798967164705259627541720311729037159435825900744482966887233825342717805521638335059489652211872040617389977862022704254877508571646216883144634303685456658892910393445383929120507227336089080067670750239975065628147643235842370199531824140316469725395907956593706248213371595724957931857838150092502655063956332202681204126743170428404316901984326099622563145018912909907593733934713542079023851064371272808507809521184057359478734347727155660890936069563535634158539700107767220611603872175051932863777520015633608736531835727844231379746477024128546702241675396745482018860357179599357000174574507579487370188580192156211913185552521151679603838047714611860517584362447646661007712497374403750961620555613754449773844555205808751617409882881812422690034075942738139429895758269976105649534186117312656099377323111432884983092953569398891766953067358674856278102703144327417710099735002943555436985785740490128095605077994415602058915055470676525095321440557042392530356399551171882256163294336891228785396928822329987501481883751091986349732369057222560152226807606721299399717983217093718703174442589891595431460314021902358041425061613508414397575934904114571138389854265323476181355823692087891783080236564263400584849396992835041055054720217608544996861241582102236476662346595789974069466908925893186964847603848691596574542973995356215752927374713023383535189432197035501364239617253864564127211156215742977584943909583501877845600483238193727443504131543829933775362045709770903259466867263676580749252498682837735291410501110333848447041349659773502678430534890064509688732827434677476555798535584679212627400410571590604971261017242542225773093601223775066277592026211091870770793021734759391789675060824535639426530330463944235377350263290016726247881047862052063695851754558414677628713893412277976877168331064629026360465209965627281117748372393926472747509568179259630270562227616068911709649257955769952655346113803131875264411559089344518243937711201518175392937162401653897207345553992185126342404314775551085204547599054079560097779292075314620262771988403512307432715388424335876092827224254904103896811015955131138362142371874124903284451080145503449538426086847450465406821836357465156308870058044609674130943405409245976956477407657460107524558702042794543665088771497681777842148038984820387600772609202168631571205262215979918505704289915092662134610843846251919770196077200209341758871201278179220478292750722771226854458731004477476135590683677651530334429818306253304704657527471846783761546475595691706911704424037830604526101829142033671018268295790966500614118142248892660233835104798779818010817367757595881823277312688498491993815671614750549378248530236504909684221780013534625213639645848359279772697432126580384466534775959633069452420739831510190925533696851432340720619967997272909779520611828337761390439014175920783613456354844338212014096847634216693739537510472573877679605417324172428370414738131369041823918444819609228437326172446297808397874553425567275194229647374215785023364575771046487270936450713000205887671167419236668908214082915072719182723128829492266478446368353057090667132624500361659822229640071813228828363582695183573257045887574617805267522318246235379456587850154958985270723583121976488725707474154720027016641540281861012924022565279827383569299781209684307382688459008284621226856818534513397752977006482218973899275532760419386728337881406242787796366710704920825317903176012554593773310645535409214267747914553321411338580309063277653382566172461494317251789492705644156651272549468031226663978536427164556640027209330415551763216318775443125656673717682727149173967997987985512573220870892496269055151400188584589142486476520041169063124545162605590295483829079513391810310427650343503021579362156943661388854489584169276876971657995233988124148073506258974515537855261881003889405709037407380258608912717790000472753996477437110430708251288614371316382177023004689385915835266522039659606713189758597048018261221070807936747869683729241520333923856885351781440407060025512573751121595702494907876767582860749216111096742754620580928661211752267940178393373184961686027382641646021958358207030988731362442094739806690408182368683588275586336520311967043367530533609349207708920448955645953794992365326172930280580335680482894671773649903965131542682778592420044372526559385410607375298869139635325241768060712315713437151675742389970545175868665242973201068371069096233666420284858835739813511577360764685100641864281540419206692462663209058292594902147282083637358750470314534048470093999311599337438846418407420113000004315751977539330733580601112374025005098216862265612052481383085557756437573827756382684202043451706008842196407376287203423489524346163422791952943656357211622754021610683059840818743230836892671439111826945243962579267937261125445200253384337322494191329853808221286048556160041090030808542888377038280615222774827181257549743118689317463105688832997970220825554750472161903246090047742317036950734153042956695762766517301107093292775791494227219085769733351247203906248335548575687353752263870620963079059105990920165371761831822213109059940277552920167447802930294301651106702710675799284361836109204298710507881015660631811018683600276936246984142426736186576151806844356667030684204317906166663459798886444717479050177663429994897558985157268484994423980348844037705088049246366909773419391130363500977488043335901143989297452828009281432821025790033608667957379843235194916558920350129077905928195512349991681026062651241091241947551583026962723452565712115830006577391086985784683742816033117233751852644170738140906788909929715483672179540154000944742117335742271993793024377411389595550913608451136466453133213568182677764847115117808090730774098149796075568601767196737167687801023188207783163411195190229552966885547077359184315180523387894599945746545519723159113064729452947633618141130743283238864881888358642423919053255037733756467847883707217579696398131043628309454076626200357544201930330234150476061541079619302362328589255851598258948905086975011261627102963804584508970693589072389022194010629663863600674438089789580209138652640471388467668584403793650867075820850897661004165255600164782933899902406292251317154106163312503587854990944861006330657179376585960082040921305244741636091338678805435390368387988293913276468015124480062312865018717472239184301780161657452770879892974053497306879595831758888831924079589302431349134125451003448870152116501288460611568592934274009902215329664612416766988807634057694433555131056393345821559006633026402396510748332364111048060545701550930468168798359234826360141552386041255006505742899171279622179812393075592768243195605892539301158363721090837495676997087445764182560706578306324094477637267480052273547463077902971333878679565718078120522859632991213769683234984665806981167436697809919119025012374939057402155511964716425575706717679515751364611233815258711995002231696087782077621100502566434019578795683844300818624881615288564633464517920035481019042760886217839579960103783290990592809937904619095845623647766027203241576884791409644493215977151194714827471223555026522319802851926304957815334784662598422665948898690980267799669329243930568261651554685631524910990261709142535443994404402648934577655573960292182886859437825641360169188685899508160728040764026477059950223742250512656307794534456365574111483419068323107796949425385446552915315790422473058653640840278800013264922934899947124443895015146625873802060758570006818071359788307328705471955209700937639751379966396449675540672801304160889276375145866733766561744034662173505550131223182646920064682857743087692992919615143964505819169056703529137869914129889241868501912412859674887561649838761742919674478424203582993478410485466549227417699453441416154250393335479011335803184301502684957851570342485930746121035092588310109423617989170292177893343456640581373547704122671498604971560490350104207831027070916041962295926294276963297623783594036951037211750585586879454864216642670680149449896142490313264293434124312858401957311397155605340106381572254099097289760759365197579334166880467364163824637626349860891084221879019244804754051344092059268392922846086395627100348405302451512091254206462660860067134863970200989641368157562721589567896185836193668532916493947886054069533592513902262850301722450590328789804440068273310190135219335067263911362376268574816390527567040150301717123050425983569576568616551155705201099751191222930868804443289035509500730445502410768312758275648980537541714499312833350548072032509874210002039698921541133441384583057977756910382627556008611828168386092398657455384299367542985009236251146120812989432919942601868084815215235871694755965466019559829670743720983503682042399612777803089956329180144171252095119999708342038280794424343930888621620566409483803402852221473473747816226357929960386166720471822972200299144732544192619557586284275355000202656468081806669566159871893039598196503279720465255634679857968924772756636015074259614778313023272921059493345079121265281398448373516941079755034118721532440800194903362764938399963405738515929576341032387847749238501904896004505117360716831165697274831051224939189274316664424679092415689813411888617575765045374377534589278681073533668365298613994121080446490311430731391331721422215559392147172273195537549481363571159786474818370437420258259803090151213794055133525666096779420825107232399493061955820210722047623088202652017438109214046776876846045013958822631267552954646488052400336755116655290484162390756919682357556546562979162315155220684097512926982355722544472097930129057630690440726900717541746638417146488465775693129537118752949910220954017781137520760130382751817420069448679950773489573597259000075658311011125117045646540582230922853891235359353029822082024939906956786472844487466273189884013010235835341679826344364160848521369818100977806210222026979227432915992914625777292410249469043334312823455189146436254551294877762768708155255903368237182242012546463956810164113987673629311173716236782397323500621326295246844281132482876432871890451022705677892206926871702930940138516144142538405087890005049204232877604312092783872274969885739034410639750054649496227260980018264947981579911621168321771728942593663659885551481242898094044305942080370901374113414555021287259545036389610725584646224233484178227634707577969308589910830735539557327249645687096178619595688361412074990410349390268436350428143692887986403345788364929451178530451910792283248919345598831135551833437828077630548872968870363696770496448658927959130298039930121326613910303358641241308843557553293317918444802528590910743639208491531806124621758460364427226840862308626892150595962082687291503266936317513357404565828510682637984947998431249163605144564324330030083374116501633771476600881671264911930721607150898143161969392087639459424517025581453142504493044778912404731513303578556137959843719335452774731252866817654433858844467622704200465756605867461485543804223630690240170583994844837925677862000236398969445453983504585311589613631029230135769822992937562993356842548298636056113355449289332230402478378663348583736742902839899090736078711153280404772524849215723130018060041754774263539670452512108741509052052037555159668072497139246745932726277998358337369782888716294714817829692203504226041604760048780264805471138125826055027710434514205238685493364336052175423383913201619669204754603517793954429173984992573241573708284195736627900405273588210068925230912519119271897352907647893368181394145270642757615857014553545170197090589794554951225885718421755139766416235909459257239758773049881206287494112045315664101986192764779621926041076707170538292597026501713419712969486595242907485573689877960665006378269138488934607030812338072582946389846204711470771531239071466464573906397967087513073303902574526020213217796250671203797649501200872305456105829656871179739217407669183230318977348462085387172306404019286926499895587462870192860576122609298134602354905339818469417228977146126524431604985365584971396399672119570148183334403478426422075579785792391630933393297376654665233513159803631076757381224950534932481357995189835305829805238078906932841037644757241126357891507316861626292511007075604761922028630271125361354409871852438301954231598048239258172827882699048507376305862190114510833203256337198986244768830821128076354591912578669594428273202793728795158774745799342141622735867499973692221230417314348817431184914936412768868672794996312814647537688977867840122428059934996317473967071230387026457015983556038862577853612021974412802739428186840586472534945457704179517713189859084445518840010858023233333125296805245599235164344517471881501873202767579792094352003338119827731616591248141932132807087788305049017694187204338055957324389820117417361242146139750616887572105598649526403728674137217482356205379697412751261441239976043156637229846143754352958781550954926421193952180800545178121272706857773564706929810312073806630556661239776653996101995600374320792331359034613922871852799940537171340481255251510715340550736702127559302778189027663089505066802653130446035046209227705111239583245051484688318287106031467499663833090088400824088935010622784391116857729562179056959787579932150275418018313318971172019297372084236267093723894295813606335948617650536853626009361130739733399376423597909694868248020342686135156439221816535728311882863359745666907160912033508264592534204840370297714878163081183451163704298442483562069231156356515574747097402818700743752238240199387252060322916822622357387625111092970973620411975276376387627813888760246212817256663753982150704747786340756339595926577649356530578851178642639741771746634251528395542940905133921339969789158318413314811037487793551544689675718623637843627473242819763804453760990811936047138040221381875483004118021559982852406699031856737018828809169704033318292325163657055797269065704643594214790636945215806982217621265577669933545425957113155811180628155745562986472910414531584901904482102038143160283679870029800663510327884313413013246879821320335609571095074628863317893898842668839161705690319501154676506340034047488029817615875938583272611404688045077713484719522424009944475546976348214862368363831575424165892995484653035236658674558601727667084110711182246204786862207146516861838224723360492150295535325176822474186621491007322638902299653967952978166426815183256534203474450319355754606269581074564867232859726631031469061753358121357284694219275131753878639745995410037119898938239615913375913604231550272254253688166975635650252651804727697212242589976789730172615383256367333240616468871416668791936390034297287405304903395023817599578610916524447560589618634591986386619297485170006330036860215150360085116587550117145572846309091314602097517322966667053429630260636347742680914900991891095332465853400566353198221665353595556123168188268010758255945834336296039238819701991211791457077346161892372613441153907635027403966042397390329149067531276430812100261430038293172823715944955140000511961408127624151624620831934141933864581295835604808280076539104512507885612023691376065881512923235478588262426178076423231487227230250478032660604340878932636455797189415728767619118051977331361958615478839577879581645448911292538736465132559785491058929535798539376603605720244293834928970524337555463226584832467317691418465876352507857529007500448103847088960817700501954326125392929595826796310747745090681412304515910438454480204258073177730368345135173128102841157137022440696288113199618114395878254902395387733699422670985832698439707075597201354058437361068451028124229474223135183593362081320199837145046923083674019429281094244566412382819522375255263329023682527259331684870957114837175289872264353282666292925451213173947080110889846684082813361363522235883124648924850092269441231706136487275878849798395555748686076925324446490920613567817770673834543732750315096356496519597080419925082840825325703113415709093668782964168275334316322115669059392031660572639691534968934175183322670558972442185665396495431553759800185451990592849529283792499350633053139915707194589896852286623438313628096957042043018250031545779327774473549713472358899264188299111466202372987240475909537971570329039373554218443652106573344467879795205996391958385778884011005616415956710277481904010631578120161170819981008699680318722765519737088796272292035218799321549663394356180117648661549274936052648279626918285576574836614141790790280460232125023343482174449943622793201589009543116466573496957455781402604672302983464219579466881231281631571137033853684628537018527753286326607666616668071353690548239631632772370297102144196147038303439558780418438574267400805425051845927585275375139923059645755449134736284857325171340296876611761377440723775449225210069046750357740000249874895305057797267653022194416718366452141932369196093711392178161851667609558420336099065090423016111707243573713749117797448874060921652004231256086303781796814247119510397476434873010000684131255630912720292863805440188948553152994647247951366335440888134545966332015676436952307631804054238301974241136444394599114183319440085478228072300496225008217448561228884154549058166637388332082569082471933322895467846722038203442870921799411501569695724197128000424567575424914255855547455650774756791228925073468667035281070298942931799247428923577172452990592704468664175028739749447773262271853541340537711947215600453077525679745485428896050988544739403167276748759842065308785986661621727075185790142029866339044733717409539670082437123632891682409846826665884202670274791256605944328766533145923814705483954803979465514663755581938860013563473034232838492364573011761190492780049250224378282561032243585825393012926635720648598608490525735042809505533868442549366716933525468331629533388847575697075179022118804335153740804921339237489901890562263121911229967303388738567113009794801473465590166457069357394491053710883756383767455532397815650491305453083008415272178609854907942589864205298535771695129594209231165088756461289483310428914207072725680403270123259503640211170328457327409018018558887751141138090468440822626153379691476995101117872285154987679341491495568215482597264643798103374395141453355459908712144742529925114791043384573582304067473403861620400195212816931949062905537368899289443864854953887225575980234554745503724680325247534815707168807142169172828349849171480460971893710375551282851503415900471054240325812689571305016618090887074874155991124348050312654197902451873400742153279923122955947919190639757988561024905535545024599754484500471953783796315311463711056917330897166038628894647718142450961836065241688627893795325462946156991074155384251847980105886383637327764480499703119196488584279579907963436925200784385217116445114198230117069396066496234275350907336284768480428381442724622848330809454657342412270355136129445248784367952769939900826649516986801872640569258873644361400835151292826343724676230848043120622699699734575341827847941501041961055177009838362703125905462807429457342663779114529719696397636456910558978029197843971294850787484802208617748221052344398659564962446287686515920524815679802167240450379424208069878191196064541182732799955193306088167478781239010205650148707737519760172014780837457908453172592000168764920956785271770200616532036169713239961699795840942538063102527698990809364786217413324841495372286443103363150299579553921999516112796064331592293938889840427222071298674971230615908650504201434277657162015772236318726138959641887630892863971904888108076727307439190683021743939470785439625157781426799784554507002527494514028279180336708929221936812066615193345326165643593816219835796658056032502947421201640336881071128242322105064166896764724184596953833763606242485991815495174493324724797557752998871445505577363771901779395717026065030674545056255929702646238661793736888735844878534456490409431746208552129491152301593256524201214509010420427654809747736393929948922846986250468718974712274217473104133716361661850294426222302471785493652759831263385880862778598124320633053047267513892149532603604323266761628750138729401179895901650951039883643327344115526794873253305061711398906529030882343735011428000391357477350107196677209576549594756835507576059754250693205365721711952256926580587403306074995767241765215421063639459778824083401572611911985404020434233680037886360846613951677811480223932696873248058942642239514169597489843534403965949848528775760044074775656893358996647993477185763923986372187614751146004448823348612779100131288217129531785466484492332589250711383077092749656182424832289155829622656599919181493901962890981037788738764122059758717596858680569191153929070094149882525830010616379689824907790557006529926240231773612765010131706749594215893502264486355472673604024597644040988958584079842488504820587574902481078704972505879077661989928314170965937229254663197277348231574089761253692919833821194554512962478193307433008844760396982947718642582007928962620494816267805515058337930478479628082983632361067631992543440112085671713516364780245400519154672848497035079630905502963228967869044073287697343918609554038553442777356929198185223376075026601939371731109281190577161684852921266815081594665573791784137222067484240670850661345971312686057227282204785745786846560887628027815827052150256240662014965072715915095151213503098792004625372817900965373161420263558460756017450841495096172062200786002981365434362173012626252276114400681510754764692743850431515250951326705721863706015969177374614834536974307227375182198416758582629683218145574525193219881224873170954113407129422178079013414761059374711566816725528664162373627974266309098153066241871411706602172185297269876186228388019308446564631595339910635778703098393025689385239707817134053364593145731987990475354311831810359357465035079624468275567370613929531386345474635901334056111589775394045998925295564938131860884609531218575418993297242115853435066260877667568373460190694213429162455135230105669048345741720598569528699328657840624850543770727024409278952350659348020309363938559123476967642401440646368292700116981092347973583666526851468934113483968439036076129767033492260864201281093236747623464976916590291455306529691775101443786948393173484327220952422480258470014098630703540639491526800882042595376222174743072210910950972024317355594520812837487673267735949609489175802802227083828646877879138384885184886568417196457601142882286543731546545502352281233403118153767293430954330294526942357643123311824561913549976185831639152567317446059855230951717851637641764960900889318172168419404055218058252825373193706506623277959473968604042900110841325541178669717867010440044917997706928196222073005514141657816310070627696063710299430604038844319378486332484292414721518764864229655924829311017436025790128563344368593883645502386804810920954206474686830753011026207379123663705624535565778852495219367089346165162597347029658035317013596999961406615753811787097378908688146595980830361423256773954925206831432101637221684494216961189242018506445708073852755356198539128775300033103057252671809859760324094476458368541877640899121530961384524668845708524542704776247378463018199290014227898869704835775957710671838184620639501356866081543510625468933315447657428938093002310803209802729037429497469761615414031137657086790518009189513557935269670777160246491072897119625453462685884196639506391159660302841496472512709782173637987438367256208142009674976603641361323483934647574833821117832032453214113050111711732821896215857392945954025186722996904889897276595515904881345182922877965009342896233642919900012032957084708923174577746495044954045308443663852257068845739246476119048272618011355064552341182208219479510775968223621832070595929450219078035728455121547162623955689306227732608834993152383324792326494987123043122582838886885518428892243591548621939384788496960927346084626925419788338959531181922123214806648768692523999463770295399807459362377728734332077458462151377501155667158571141023024439204614402667150226893747601789876572588627166407358642870803138633999190451234659158854725277138480908118851455739947245671209477059692914015078542436154909629134242908188434021105403427889187828434688625892748135223449320182493855892216669476531331532046426561070756331189904300842702092282133865914836391380102695843422756237460152599725269849241259496204281215164426346565238100540321152191771218691792662732351213699898260034263196818360826413366395157564169087767125045950611814638903571412228369126938143465461883173693788307526931411374771531500796192218225761549568284192811199296870647718852041946613129201407376423411513142989937153715285302555185612003827716020144456763348749957061715632683583346184841282612416690062164976157190662069694198860060710281975436603200582098658013254947431495796743106900397234723477882916257504239735926373549616107280982702254365052912563289882161823449231973251357839367696489301590160295818100718700883696415602190017337890300061188832560770589667534875930365898718548668409835413142602619822511963501111714694716105857824375544480631946611702004292357310723373988308839508886830646411343613298577868091566206900542704133070018754516574103973382711223549609438533207069992775612222701466243453035265713177624810826049627628272101412426518800729297748475661343830863131987579691715248224525963084229513286962531312337452056089801528120702782375952682109303287617971482713251226284469486978445221159393241061056473643801438163026975493389167852235785497831709659064905093232439363428170054438226784479448050194894037584992503581247403599578845978424223896865665192883862159360599349252864158900524316411890292712737445856143852829483819329136864317220713501464291390083162846232717433268074960539084551296090771426056137229249891117432992473508935916146889591158324364473897384220025855214644672823484059027922766758070702303143325943407651471682835287148579207600869425436146414032057526774805658564305658891151971780162622267420672914751665868590317574488475830756192922934062205016068242051948477314876076332003307567394413269645977917886295234098581883648827197788585401393267233526742642078377414098653766775971217307188733884906104223881218253449308093128131623051289908448291275636873236580159322231962424181134460860635124330663388755461619577588470935885367636321818404663598094088163576182560413230347193156439506113548181789620669604588797862749474989757701408884097602814406928178392911969815283645269787913142649085685025182725379390716509992639409587570882038386857708214136955449598628571061657515623123196919032965700231143106141391224783865645842074646590286778535343539909715851614175573152263903134571996639830551658216252047393999489287596644907922137347619240289928436774069837237965745210687793811108175191148785219811786873501307496702760704118022619371462194435464299340610298941559510762534358909537805668773841254391627054537698043122489818349540157587855268672991871313630551122972069736287367301151672373969683865339013042483743151782099983620254802652611769206546566239884522818694227244407764812146568409604830024632880959762855159440066754148554349564793088789109040066266467982477946916923428135049273913118852684037199435492204284436907609811629828349696273418066493616360517387102511051257703051552338483083042749480233046718532821138014024406033668522166175540559384880998191461521556378891788738598248733210103009183301087432093475200636235921775590494242066390129356493551756776519727830298828788473089722011643589598128040873433651941620036731502492395086441910927869030745273488238483843097399550536610457652532914161734305337862541570024455987004201115442714341753990086314429910762299325597469663638396348641111577020390732958378446070593080758081605446624786850720784767554538974026054709160736586373522730117115703192098291259554844505392066320683777049528653100982437627037504209016100314032849074316685313743455534480604986495865637927906096601906354321030031053770830738101180936581908982024346090946798819562683326651906149789465062279315765885497296917676250204765856098394850539402587883732912844557108357282641143447333323761093842049818238987250821176669487323209120362058270441263987177117320466629145094385840350180970150926634329511266667929717654525444303817157512587861778818416646609540984685554853787695537825460931170907546912236039734613355308784634025726911631311440800753423077276990008970811065985000939467161651016156074914346094603325073992134950424985176365987483725718837881589223553770394977609830092563230719345950903283134291094012109302793809846988402203785486633319414966505238639693173785977384008513051724994625726909655121285400889205750446062105038101583670069113815449024888256069025028965876422401153167397874570429408753467045788394521331107825419374431764432107323323653610609596427208708999646624563299839777898760729605628866768321659266399205798794212845785634443459750121808271934194588432801240642429459828606259865401762907887432455262740425609566667524030222424252975043078461616283161404071104010583920816382296852430698724341332293494454801353767087335422672996897712288891262290836313770781803744304770888806842849507943132743505262483563252872797343659580769604908293768747483626591749647218435946070226673594045890906801867905114670812481421352607568055285320942455258076737245117889225827218913033051298996741844827890400434813450014431296648010909099201997821417007944048326086636745765644890422276402936829473381854845187388002778633101049061233095771714383889584210079604583429537703043159514983641646739587032326272134101050064831227348668989119046953337021897740492728400374873196501961386038203878084201377437329758178952909059244649850604742187868898998123073593216072581229269455436897490836923636533687457089827313014285547095035724230493516930427242196274607073542572387996947260927283046273601284328036978199719082688421523253248849045514680717315112894705427306498830383101955918588252141180083826628422612303565059126925517007204551126751282487302063587288775650198983593318998485947264776952197356514579038023873272380150299188955533249361370823717923101485610532136960602497609381587320007432666583002124004132917222303026126656302644940105584094045497627712383919564228491977881623462648441554453044817310981068906677436066092326543129800048452386942655405847114996602735267544205951100432206300836953525767460084563143141252720009613023750325440022160162942561195856636973524379612591548227831192307976967345700275636446071790124481868713220531787002228685449599421590038255372927986185027903398896981347749569744591420831031158676644024384769804752117931945003358067108490843775413872108998588272682351533891010736292950253525705299615495474256805617016854482528605728491125627997035910102361685342681788719729574644634343871801021882773707111805839740943410980486723594531446494541343136087698521260503295774533250827126540879874218419796024874772487296992413407804966223789913832099068027930128945879975263657031592692832717226559662888825531957052873082707231636095023258416641341393119167194646432240145447888361494427719610721938386692362675913665714703598378988227026246079843882350441207158648289114553839522420711747530909497271131285535253932664274614208981390278290520586793778358544732027050641707120143019523572070446937049369114903246745811043944560891508431137249915767191189644164962518504527917707896200217929814839234035597277306360101479426866864719624785053411890380184655471380511080221157347264496128024609045362354426282353442790368203301501568205944327813557264475706451924739209349157226743429177484146662196404569710554418230284565699365399280995347208553979788294997514403640383319118726248502777128860798345004685528651286783411608120854991707511630052396512051151200209688474740092831956451965136688610610245616932879217711868738621058678206464570506709811627869940905152674309875670203259983714385153406265594835305961558227973113114177433816512220412064153588638959829998592739079247651421384311685596388629994497423182276617042299737828003221911229743310135766301623581268467057283979895355771159915359527267810027490747544572904070425666488153429483868928664293750201267841414581166108532689646562486183751364239401461688737409878174817966962665043226657987099999320566281662923796764514607860740563780605178463184669537590515851006501957458042039568697017864659032878186748307804270520383971679738099331477508611625158307745903091469457646204664273363375785400458777541358336685761277844587234235824761308911415831155851413996459688422703202317541167466248888182122737906978492409716530070091137704900831499985549695844592063798158245862647737668316618732547807450276805412360213697412206825957556361086542665150748731146878535740939747088009057149324536835838568109922720706988513080488914632902006533349744098864459455671136841429035267117693254494704082183017432941767074995707519513196349328282821432302045018269630800932282046374417910972306049239958196391796057404541225084619788430976126028716897468859219148161942726527931344474513083622941573027585004192202678432038665082222497443359213348858062171468419156620328363230944651535615851116179415759451669481103750268397694026185687629324997833197329561263245118692755794976635423451316742872351949700480371648424108750987243093383657717334612652542500772284003772074250306982735976920970006601399789620171641331649856565246138485270761184258098560493066341892341346033033224578530605546442391100592802451649948257776874588584938986777573316719139857073412618008227353071549588596134812097600110434873205575619802969888033825604292862133135164445385820435200033453053268030811288855897911687688402012798899693939269750653185653360782322093187625344642470606121778624898606788441039444300595040519499307223737568047820321914699950160651753314570725339194756094181481575602084811238993936860811125041706594717314356636869692642875087195984115208208369899830913420649716877758244461872513178792792320240166040284995973542226864235360333473856616519474662923301269500843681055903588290569313809096761441564900108397367790876288095062390147403571482931684744602456797943390966493887215058567160336382588256793217166457209033111893335000823186286813808915432100131420723955974342598736806131702586940685048223534149200076715259270653569261618389876339231559593158425636280090749484576875315486666660748314005262367115475696795119245075824632755162769614467259971241924283673363836082178606433452265901233640249764796738902854111647844560440637112939567184115501061978278306673069638383884101748315820362822155169111380563900461749724805434766017985136797006342736692846004945487947023900676897073294934530510728197970367501751059557766308082419883537641720094233079757183457770009185984943054334635771862696902248603122524720123656805745701225183662647100945075221040859367186178680730696946326499258247200249535988704565303982830302231492902226196097831951182912692567628669368673712159999000912042681520759797815910564567264089362404195282544368363849884937885918920275344411764321053184290457599778401724632817815615642934103670482419601884563690268816923475017104574012224344977538495862116510196181046808495718088624784811301600654059483113483841711702639435156422685493954345744260890385197056461942026649088237548918194407071220373704121428887882148296978691194661309627902035414713323074909776911794122040557219037174042816278268070233820813459358717494910276885747057407666482410011497819099168524251466381815112726705472709601158917381536379431566284099555351442306382609152852823698458854086312459018495949093946187873953512780895834770654864320047435065562809452357030518950438733417768963377122144819258277053346077508430474052454303857304957654109479857623928089476133650900572441922564228473195838833321090094182049061155248444236502352870631741506005263968206366398573774145603226012391477621709979844309889655557045242398774633794589463378559383488654589455628674016685847531149558571247419202976981149730489582805172416544433419711493254442219113198456400216206404252833000047581605643424208632485019353410774298318668435751335752069386805181767600070785879639704614211203453957017995482220387677009840365033052589346102362077800099029941929014328963470722354343349798579673856603383631648679276234130456156048269642341232721692001567568174795601694364105881931424867886811204741916861031030931437780861140056474189156571805668598117338784574392487424267779308463206520014716474448177214195494604093170517504725296372506335330544898534405112761289995958709717828228409382775915710943086405002810991484555201012760395451863808911306751810243250372190026240689309213588357714072287070783633087453025578782883357585210927860321814089482361844813770945323276782054426803520698357886487510846271820492976880268756706265059642692851697572288257725194654521063117171206159397602482646092964287681856057382721442750865086703314072611676218502660697688984980459982289405140447321052351089277427458355729953215351860780718214406114506590318306881268608591258521040514982538839874782255265869233773903460055728793778272941980257470443271492445459776522510379653777711537172936348002568944917387504055582069336970987326165673970162195907047070464795178206849489381933705106756952859359517151479458780633716635935024008281505038037987868648321410460198054661007992068999579918860078043880765765790381933018676233502992402634453887185389754148116386845953011695227122624292819605668428918265713344229971206917624299079829180784583989180617722099304663793192601256402951994386585970774503071805758989694053582066974761664344732409418490479815962752820827372273304965759655231082946551440347535987819551761872365046313916683904270934008425967343497315924846127002633952503147590034242696260960426363538773162259218812865937203550778845608910553970189483618290394133283593708088647614077039105744646195967860878228786972561547678028827095042492542576533239095640950054486926975899063392938465391549655453827047130153149204615553394500429959945625877718218395248514704603195716438619400664068068924466641082144509197979844873322241153166422540663092715007535217887387723827496407560843992426489430931413449772327657441916004576514552933269969799408885817735675296908353809743594177005661440776415713119970597580115825761387087490631914916957631068766797191786848725311428723586306099046521841445822161163629204950234569143798506981912987748594532850550708199680107716352977873438115696844647699161240265325109434830194168842260004623188063622716615290763259532004899978885693853198142406984810589790077959285501290323097614918922042013629958323601672887113667610501420804715976168528442763187151794846203263211132063208441722921855284315106226616697490744016134852037409357848864891993497346862213402413543073790207126614131475889567126714791855952319405271181184335551359059873419112509774447625421901973459305763342304541066911217864957228990776537952976379379791759291408379732064942704397868627680882767184659486583860255796364042716566866637859692859150268840272813392444106253009660795601074203399554341781801231536992121207663778126493569866441564838666648194253360817576305003267827258696729655834780838010762761910692730215407166311092594424208263522431180781193140918402816200412417592841952272101396901988884863534459650729367768364615360182805348673402427720625827151851421946291849003218113157651572158947940714528667183041599973225821448505516922016390010829224279480975519445764639914887628578168240964772389092915570011002727935844253607120692969385486779120630793663531043698659939827921665839654821871222145616329367338653531067363138867384817367144161896898267356854815151361752149298374318961945427784031943915508840159693059465202673933361807713221509390918412940144143042963001376519379753181161434411300622860790384397334345014631982666131154568436165902113769712156020001973661754870329286948220413682776015092782640484712942961215765323975334820354534648414884241761907901681989731909196120232648256620441456392869709512369248046144580512255785898983925938833557446152869021707931289188171248002445720864601646200154876714968021461955704361041075211868935451252691137365771089752197507710821632341874316029776832641268925969935748811948705933997836874703842979002681492548431312488892304016554164273324192086620830195673906509658715067986315996138704700099637367742460351936806587760828294417359273859230459490519993980486433388271786854315008087444029906728309282700592443227313337771111912760580168883802650103906194985685137681350860786992484532264960722675761766169785554855458764555159186591533645483376387888445433291352134943892173575544221950208872786086012101670458478884086295568830647525359462055943061035281030554874778788987015955748505528926997625816941930584087249635943788912716570553665424550515373436223228164714732346102789032675550592612183851811718413789914367781057691491574359611293088329708816573466968577398936563261578164055880316862998765861189153030190184026507350744381147881716297652846485541189879380044027192831910767809639912731265430284398678957369593378876765325098660646638629722514447630953308790746295960615876964721673997017728136102268811383408260970563021384258380996764240481821311698018586915894256171460174389590154827156949117437147567422931382099656072054221350576088951303571309421948896129561741231242229744048379216684064282475378637557177845913154022852803348661640749699723198848760702578289966739623315751323678645512174862979841267225389228947213531261913440108845504800857070548622120819188986331263134504948789635134310234559982864415700849104641729747112448359132212114679620556097024561421847732585444549777618912823599861459187974764672280693160138585998215631805376045719938380734279923425347370911856360451746178706287133273762616642651565425909797301013711606974980181972389756315368358106476546679733572837847310493330088967519266212661442690980748184556196076100167083958078052186592696944651239906702389043132442579820200947528991128075127558685738172097936621245119255943123757524425066223043157459736670197450758116986988267037165024813446584020693307512059574761829518358359380946729812510292359386513261002868300355197211426049409362070948246515172448442427989335277410949882459580613874275876477319173693821655833448451691711646300069418425703656077681901946925659255627069722746645321675704854548098944951496722995146871560761682275499910471348026984691507646029602970047935055313358267363335761889043414189119344510128826476226601367363265463896378282127756247553417964472233411296109616411825526447954953820368391864933448002808788261610268128551592629557673489999732617872026728464082505637613842680819041072766409749255427494993553108830047540491470423905269091687313305516619266617638497802089577109014118080598178351767500825524176357320737698309152648504704075284073079905072170676949413610944639356070274960823635976306362487837501700385037419959993218867580661113608518482382844403378926815179038057192555983568800763966442536642341037357070400159778341148116190389130568177098295227019677256600507268961280051789960569368177288228920706834908202634809033238361567934537619150955200623637744051233557535432601906813091046073448020914426858591944551573953596910508290023277807494378220700973794282164645324678264507561002697656908611597684828207641084922988763610931863944670128985921105662628655880827898964768748829962061975396225291047804100439469449289634307590628408837685552521921916868360018455377806380396680268312041901477096548042951554167475660698736826705272712016008946476350292192057196057178998042962226692826269485122784602617525482220228332038447750490763422078548042131912344712551864194553473831040537489074455796072113594880867751685291314222907439680422708784743149693390840298131533336353635815718328818431668745361476068383089899526928468431631885258282758727172465281464781548893897904390179193119706509252687345084124463389893138555383511685139494130730301043468524778922215784144738060984049405292763794723874670996496190640779210232277554865915799817846264807543890382642254882084259495906256715637242346627607669530253427214070325253346151786638150009349703554233319813304169113347738104958518274482655208638599738084337522128769696069426830090967818521160227078015679490851921186279063553578918699125320399950990936895054213220647342258816421017515998266137476123144102414890270697405834985695458548162753389314176571067475707903351667601941808473247928894925767920250980145538332451157544775065814712935385542545420824229869578858488711598970490144307374370752023036746485489305338561285716939382494327286061884879152479887619021067430155888818663802954605292573262028566919140002708212955580160999132939686839929992776586719771372417801606221076208690376535832677612696695158278187587700060348115467815129825475834441967587731704077290689747835246164778245808224178693578995902143794782401924226466197889085355535676375655570047942095516276397833833783934853828647215429748843455784149792162696128526309619077833399688840075184535490217635375412573069487718199828793829758973661352234939075625665821556947342462136420995990132264532775060633773860978109885222571538998346506946765730105764539184097193846937955391209584296144199173354002097973413968229651582166415059736643955806173391271506079256618161390378166783117985047410511834313960965244917506429148909424582929594418265679641726982706001861882173034622561931249453852407608637929883453635399483959423304837885861496534199026910751468140042164692819960325448987179885042237308975478408442570376888162771740189406395285632738108896349425311910638683838352703803061644946123730565126000596015646422499430118723327438796945206654063382740206725333494454748664299244897382209594115754060393348150766291657168625966075222579911503933227235937506634453272625917256335469113833734610992758339762998562052811967284861775628557919683715897843492072639309291018831172787273336100215771366185219851454119053567961053676082560545679653560112161145678248873307182993685997063451479794445291053052561482038013782541652901952079352212967593912871259257618020715474369708935438427313610496085354262192360723587040892991981181096453032234716480914609594627432222065274066873479392808785924776778996098949878329928728088431372150725194584473426402534718364222839255417731361928954411572160283810901371787294897219516392329037822082496078291264688724215361161091339051182615148868546378884485942087647536601617636010290819884441035356704074897281281330909786192457740799131483152632970972062550850288162841472304456927822780901467554641170823467160735390557487744480138357511678673294377289966926035146845617450416678901216464592221221667974227284439865374069533847936687235885325675600136432635757429602890024076728159249767080537761990245663506686413360775317827081914259884519944550828079414085658354802334957559736689563191369811852322775543729034872320480685574965202094608809013016640323630907987917515743825074591617589659136779928925464589911933249103645767864113972801404340463190427636757298289344880687826686132607171535512421701674950312237946503006119572589383240239667163463465469432924293846822276118805286638853127458608667485784272796035248418101629446687055038608086380741496252139369753745010868143239079792928624695996747581445266457344806710426412949053933273468907447231932603610779620813300311003936177876504348050431842635556375899577201126279111594165524317630342822854464720625157099548553653627364300975387947707334907616967509803983096723155900996355577848112615319621854004181318986037517044756444671867003585012464505300883040273441506767829895351354223574351227331642268097476598769701636686686032619828210629384341011123178903690612815727694807057957384276841109627474859939201939899815098515905612703947765284004380531746759663133564624903559747834533936904758825709726294369552252813025972912485206587108181871543519833814181230055355108674036354809596264246316366259003601331013482659084732230604847967643066907051187420554121740988819626629328744420291059829257438845457033543058241570589107594884995451518676220976192063780583666520153449637049618668844433422032149916345876122764127903092622862588232805559436596878770439312587815268668112555753625701421815624613817994781176550481914291102888160452223505410072484524320585136793606898086071105443521181723291875293224098643922513595450606376068245693199987910236391604100793164385051163452296397528954675432307274494090478726966532795551961814556647058390073161306566019015753799831981143581851001851267442830627741801431614130628993052653841391382562580549208104924278689593759291038193165513106764871804801750747112430191474522207766450332832592747706008205804215835080503234392205738152777379736004209871559832355965547551169164738076015169530137097327152177927702484313049471057969600236668872391050174081809045549956163146477752379199196634216616573941933927170524795314437444614174950734275471900230874226231292787763304813751542147414676404239610500181985203989082417318512115548309672527102931852523922386463298031856368423629069906633076292919582309851701768910831589975661343149649397674685603670279802863313051610933068895035413955659943431599621088026752912142371354276234427500087304568430741780217609358224996981922075395349772115170524676571937653341632205618175397387045130935366634838861989392030712159734624774426754600409025173396876237469290575317621898294560402997584378788995805832155341569184058904463456700138236081441818237890660378890693025102226252334831126010463444759471164093241970595475076530485960392704167033029153798058122191752929282207170769515150593829561395786989714335723936479987970378875116560998161765021537895889585375529459653603390615986515834695617798077715927578028436934944330257292149610672269222558863736706226548959198370146859829529940472917603879318328731832001416213636301519249370555305075897868997389628437644341215458863377413055470525986060409804116456550309530378771955756252752144688006113400421305331793215488771650299022244964782747256069949135914115526084432219461795523571784951762510848072994769465886523956927569348743704985581239871063418651465048922210661091375834223818725482550400887795016519227689276915370506889675783706868191922153277272140121695658271553066322536209022908093476504138013615797471491079510768788011281086500381662328224385916939998083553197254107491307897020799170190445102604053382691666395247431886972795107270919641836022921993725975819072782921819646716092210561268903526418408662005217171436467925617760582624134746068193273001994569149261936004397710019698354904961672937756237112527589509837707091924312781464340273929710298631614220676001436720474370123836781185250176987709858397407274365353809114942132391162375823166093074416457482096324290185854658529036123621643749066800157282988720177923792786337846514525321494924637087958695602250164394589895936943182567736458041535758126937777826481320501241792981787838002446500684737004028228144336844769975373468231475595477710690278180243917557182727527884308912216552474637257411886006505920747518769479796521679505553739006066191001515977592538085954752859443422553226465214786908095336204861646943387663051937090204092838775237719124876131983655926367767084151305075557903743090133800629358886620618852636186618993469221810486375422854000554647589676768424273358760278450808572865086569169313705528034241480175984241186580805497206020793689840465503830613953500325863901619455579291651139223959129730458509251758641106139457322041131771775093164829944010929857133495229412217449304183073139853529406445151505688542172825672813613849633850876660167881368471566408719732774832911969972146349862084264977661605181182168438186115606136765215789606945625219758463468728398437217968642286467481056547895521676959041960865719221378742807204957051684059947470325247168156506768049932505922969815272228138696054556209398703221787186101742496619173051260193877107767709446201299094583944875054408053346590009590435447891912602265773273566036521531263616664641636385179545440310752575332853107493502731434810299037084330374468849817934272874948264352320827379440419523679121552540076157084385240873421575676024364872537144537875636640882710822240179879813164101067268907722335784650513447710159185145024299055843399754881496260928622298876444789412050297836066108175445673267987863310238471581494735228500195974416237971930666025602842861442413120807503896584892967175267901455605418016594343421130837245357231988220764385940134502401418077974911902545592707931084663399677438052822748616560401586987004830177907478081606842494197117401012589767036708913450610983919836361643462012466019004470395645750309971954501020397020701029111155780280190645519480035661498040025959484539030534311004192592691555075899895882132317365877102873301402149754131524029091447325133803756592616508752568864018250114623753337367167623551119306226521052439864075440499080824733508824028776022265655088831042859181882735935185316194009385169173011010634830644250775446018881790257164277129245450598408735271093866224162556265262819295523198249611456905586908083957814784614498735727786089824318053505959037011799884598049169912958768992643726833789671193328329208958851016217944741922370112895757477001599090486688136181266494883479419160862341575057059400685531254161157019256109879571147553495747107556134689921997429466368716928130697190552792340677983127262531193901513602052130614346466284379483881630599994232011472519150598035572058063792638219716505092023051300846601329252591747326808214967164813177033725874875727782276995396291431961755142024946484523242446428174872525571470916321900063465132095006973469941812634183464782983835401596994297368996105305014639837691276533783224759048043510716751493623135891936094379143612202484505624337755257638970960218828627889579934246270806484854876151541352578179384459864323385879684486864133964545334396760566933342227159702594658238592109922956382945060498050803914610321710061749470430996173008137602917224568006061643508721120345973400200837765191624495290294955020591686865363266261206550118822463120438044327682959341811056180832646768313957055303980665437475327231488432292884123131713346503226643498234388814838852935308524540473918345518272501173204685071801964682903902254940729178100135059148677227066978974318556706759096134128936626974369940271457502989279298501813759417716996814447815044003428538408034484567383201701687591099410114044945296781470451162285965189674096285587806712886516127933234774077998149900680835913003722051255542383619643284348833062901460536748506828481793186802266527624625163435310285890579153163528963030284702326646555120220042537948603162204858486528994220570161383665982400004011765506803589107861137299645847705564280107374514669981104897307642914203827086956066390066391189663584260132462014135762703368819778515491091540955352264748638162946659158292407410891788846426742335402149864825595891496971262336702973746426916457723406686224291870233307809565208662220440839788008080616294161348442231525491011249247469363836626018293036834832033675816884534251422872243311816893336177727972919365365039952668692364793389944157660461360047843148377781767070528945127420204440897817787873594844857223385168077344978286621267465654882233240858964845818107789495771632594088722591097770942397033766965096180937573847088639973576176997171512351635384876985154504430983119569915662139160072075483609679507458053636838378518661601858795311827166267618006948328964012771650149395003333013440282740214675212570455229675722760137286923349102234113257946041052800322913999067674579844043364652702494828576308078038434758247084238205618514748136541813623360888535794729119271492263836348624271338740676802639329339210199544193547441765317898944069896015577052362299080426320870805169143965213049748857459174212768757312999953044146703920903612082649010311094516839577811055877634360719049058511791877011335005475005245123422076692807702566088174290855869006995676805777367696242313131951003232595656082908087602607938681691190952555284749844605847735790412841106135775319429457241307158899960498529630652427021720571154531726933717582195631402788100876629788135428558726308078191663366597819768129652342641594686331396463960493631730925751136652234767029839037016587446140729392067307329511187180420131463140209415767478894364689090982303416488702096374746459804174637420430718263754056398233640706784690113937330650750772431979972023531218963373881907203666842573162533717733462701520012927330414986666721795603531824613744216400525401487733190177822188541519405127263535997881278704395784923748134284088648166454084017658494428200188970885127287826501598841802245042525399860734297249365902852209560358805065172017716081044854488150613404873468650640762098042910342841281297634558918560865900781399032306305648375534376861073098326333535605924918535801940879601993294943961631901200546497759666006055944126012757765675125726551660741496667007097867047082036322896569223938879991597528064631281161057893875983291983216453934120218892483425346905744249845736386233118000610217933314650145876236851037647994463842848812016944590693800422800285264043053927299939732175528417267353104779026139418403725618197021621722160133695956456875686992933006887464135104404441689885113424523947048709406809932476501007824111793276859099645584869464708129688891576226604298493931322003116357824434168616853111364299803315663081706175133839491971179833677485656566413870265932254156702334808281356962837693382633246245679300706278288394238492679979626927380374668751464095139652708574645549412943588572601323270232479870360044337988092522132677784555441268760172307665912624049871236160243125634309392386105636162388334508443769254824434473005777836737172010193479631475293566631163941205339127826042567034023332320668734251303508767740401802280189208794371063428939054264109214456988942971469815519404581647452624777098636660531512658194182647606541388346275773455152547655529546565676659269389424015750718162908980987462614483031050346302526236400510742576556418387274587150568135319338292854717676200000486553509665947603304167988982208743501829609750916503366367736642684305603111608830890112694049622656378881324810739443731424718394419696093803959231142165618579264582830331956224662573712572565320392984577186135539836071009851672046569906085289288799951890159399043985471010932892654977984293403142687242892109441266018925843499943813790022453198578125120011700565085225829914167837803235723507401188699255830364031795237557685982179931352179652089200561229074027370372617991612356581896588606145111681707365967423053969883628390179011688028237727370259706948197494572668851821083191098456201317934369666812191989938046934570858365771223948955080641946668228122767481596610803779453346533326422513908061491730190312877964731580951753501991860206790718714611549008896749584256998208483755695640944195047191810429044169326003184358069414958266807017601727740533024167825327267968308046177937563147718315681324236064460423647673711808546257566553825201643443899824060205569451611340712241327354916623894623571985877502103971770571147210664027450533145852868540938039601271316430450210140700218308743821917901722057116151348145808804817552373557545575122348780894909272137637577078921831882496030793007734439998029388591060345995388660340434556268788542366332953361052256081746737119971110419679775920445391667376223561592481880526061543941064775826634322857102636413650918140376703234412720642991327382429636179619821915351789535646867704515883579339972524546548147104156130946201255198924041154719925120267175394235975649178467699034010655121106732429193545447499731373188092350849125758208146619038202032780848162906957627203551651772210154813014250278158034126994972057925489825549744774601068836650732129862645534645131867233340054576709996968735982842723107730522258629380705992687719030052931016474740062211134677147654776099381605647615313981804744876582387782389195808224357999853052584332762866158905994843642187168664875007608853586025638587449393340689328788095398445877034452423002036703705360572774397395500632204133853011639884516487824676093307321762514871001159041370775071934532038233843969160459562953852309847584294100288367586697666553703625670960584000375173396545983803024333165663088051843942398195331085949119682809935121835073887539787514847237532736996481994864013431059767713388784768828387135944402120466990084130646507439818247289825989142468615330163001615612078730895729718969121913898351513217089723155832541156192809323913492495254466262074762844875433796350202038620345472677488061390974241269504343441035144101410375470918923557314932188768396786093393890658696045815669343252679514259457253022735391675636233888424691479963263886529718938795842778688029818117192998814078820525250890146293963481676306088409179433482063817389179907863448404165333959996486896490479340187262511931372981265388846148694555583656634203054698248528704969683284913980464436123812033468218990970257659618144176995040323430324204935935639295290312000869322963514540171974259012332563099998683628277055551038957164581940126257030441650264453262409895552221694083760622609731402005192609608939516218692048019247733044782195663793272294943121168935213570667233945958266801829087872754306514499122860094607041278843816445926807883384955497634127698335855482950001260593526874322028938236662723120730237232690492065823083500080376634544922779446352256599892317973030939721235296277266873440321799348462525510878673784021977740038612083506575688017563762070116562569608485008916856362369854927931907648674158272467845034936541907912143476573791843715815424043391346660428524607047905747157108061445606529862754560244746772498096789961369988526481546213917571815064195482317638043087277792554070677078991305559146519559288384638555759103481956227405482171936246250147387137917895548549009519207294198729823178817266617139091899596181362519512905123041418260265154948787119659314386390900242875146851274853895566681616642031653636140400065564606814030576110913344360103758607062694135250338377111960359078193291817697484276949669049997986002123641834969667141804078668284168407994624662938790342402576553938053187304068878816256767615212523685289546372823294120886796731098149501211723591594107899589967092682164610719218181585208235136723401793266983308629604377072341155389316029895464320774353618593721928237977929294250322380005048496444068420486734534212036261153040573534348691972462678479394379365984619808514118291948771518477970497641783583643814376675176493341384366010877031624524339189239416670615839853159294118558691739169828068476441531085952165501894206306511099415575057208912802625686049955131122165261807760763835373814827583864406615139531506550311767686855558493372745016834395837510865300628399407650220299519772407324112100580533687303801203290626536744806316836572363166260241518862237399711336107877863533097380268067577323883458378432025388284475548472929266774570932080462979479427773716118545044892097444252023780674522708262783548218927103207466053839153765009351342403766318865803323721646817794606295518122572965348826066835749355397874149823210162688363883644615561320677038988508899685154578620761958537033493721083103833445736242417982267229349460620618132460446746616248662866165226385684484092345572526244965422423528509270447365304688994904672069546269354113321209314328442193006047158355542817178291275952306237279786954817041258060636750176529480492559055306593414981164353094550359704553703488105679665255655324287319160623695612721272973046050552772320706237650933553089368565547761006332198781423667282890601275612306762990059899897011759256106973587644822323846283556865932920874156828896365652995510255507583082606942929520553861963875157951297638888289688897856518220953093034717862343849892483928929513127091638447139621021402212009570623739699106116096334373806325774539822735195854269667852263037099962551070450126094353278727395237064203727968757203798693611698644343648128567052835520176971414786073223221460566322892078026980976870642572260803293360819281236670315513229343318804046604856188439360922516040787078037074806259740128050507130461353704763894765621054938027680026680669779447022307741457746265127781924581251047727439366845959623595753155565808467686075146848570886097960519507182931270054065353328124456465347045769015328354175392587331807828837953304294974367864640018264978886540160557801448077313900300266650368276903819673901726631771297104754264252541009716429691221971438957772984631321614705862434120216578246479820337330141576108379290788169684703150528675706116648648165399920118916597858165828822991608084777744089436151074213250676425042297670667978643449129819328722801571752395097982786391627223118047704754254311357784683705808911590619052623643993892108790462610738654369214300169819224392072102759121130673495127448077038983210578453921472289092141504183872618315740593147473477112282065400388696113844988727611308852938578763852223993543985778742302797597416123629813156152277344665973962089159518945577850144528799023919429680794853424381173394861581315135764877973539453288695246502017094881703230386250270835548065358643644184551558103386330727930754873155856736688288182575972486506053336805328984207044139519833195303468589690439002160428648592797906330313557828353587735214692013412589792760058999546769701085959327138693989904226724363042423334004218146366542074357353075872621006592318124193280335639123794950388234846367623021270867264597409602711939573945216100859882480776454252378216872481395237935041271767051660930071773403756027149692490414409437710368055064659990932219873552768150863838799585427039969551164532831957083434911816491899869989440385060040339661231240606672796814016240745995929776522278404564232288441973559740205781021867773934059276564028783267561205271253398231450867539222946745553665957344897730708998917991549610884887748901432933731785460543605006910016700290150666916678546841265926568579220176752038613835291836607348326678198344613754697237700602232174023620780534225740817962342848248533841325219666482638937593700900432836732647827569377685864461403253916737443650973253863859682827965821644869647208841070277793797436582678215062058430348736060819664523236650949336437139670657937345599154021952610356545914514343962511633141692590516870077473154194899104270019729437658102648519794161500496501715370422593664227547082442208161153427592402067072984409600367720035749463247509027777870523073427902865884261143730471471485747810722060682490075740420078726280201400265306488345436979857473127144131595496274413786574644750997621158083279034438436763750654098953933571147974997444131977733440333271721239516366719954540886232700321177480654394243137554056270907761494584521934366962808033420055201599848196962046734245560686804621041481333664089481417676559585821320551212760510222112158828324076934331308435798201372108202685711866200057409598239337441343196637233464372802487370102943099031099104059051107938044426010271406512086188467598433219470431329740252191782310916465540254983539831629402383000593793234246900955448652140287642740133501747771073401522284651113355547725517986905281164199078001142638786083396470054085245482741103803211171482243323704004742747341132504997110311131906232170007926733632006394755334081421577442577720922685362767749285018745125874546643435573917508473910771107256846730922169372758507539712647716248343257038933966303386129529241008648005132580836987125022625461420593082275331732823775437169628944483159384551990506541153351738331498222332370018437540121477169545559652863845155515482021141225185284141956348900109613499732948289775843669727302403801400463345510812626057784993478497151739865117040576108241383034290719612227933844672923456042153534237769839977510613412963366055135047743256640061492589701308756362717640790653510573823613807154775791511735378455768016371056307040539657341704916665961462521579511916884124419491168115123966018165594532213188498591010882089735512898844948814328003198940856495225333268942604505919900604283997192932170451046478099411207213636810132904906850183308731324281264487323124238538018459741712105783733590277247966935822022540727382506011844882831552849439319507971331928097267301375684567675802854729486158219283655868358887417213152441131624775576953144887479981229896107790121450525983193222477895284404377729568602905397691028459467475866083278351048958222863267981568169872436385454909539747928107939481184883207745103243500779124674763821306163064244388845860532505346987617908908572080359589856727547064756122456175217423705662803463364053978318794735814548540518441628677828579858623192560865349857864250668098732645969242339299296133904585336733510265970339963580294619107961887574977823964735962216009342867796940143901187302075531144251574499121337924721389633497389242299544670952283182724235919978850170737770548492211705502847245642338476502857836999207788380124704832425873844495659576520342844957662062132236555828784216272763469085911702749254841256742507603371153992991054604642269296092710390626952727520557495663223708322711104515121710982182782224613209247146261309496034039343108195075169500683006722144493260070903281026492589534850941910711532877622501378307821438698093790725551611282025090137288904117879971038908711844357260476378857733750417976834979452347963628314217213028752743791658488536734207629588296489619745644209145648764624246338439303402698064239818238111010607982708064672373180288120390842742925591995947740604034456605704104622628709638247457284976370175914780144631066570933786816427283057841814063869696433146534165697195553230281915591154324324631072804387760518435403047915815362581093568155093141096896011634981197051632015943226628184403360694935707866462048134652646449227415296470421468129950922091814851070613412477316071746294110062530552202066224288526061313581642435870562166908310633725336763702991491856599218063393633062450750272877925858358256966867018983149411978987413647870726720824302630474078522904311538032392756565257329814220117005268945119562189457814579853980278313007161211890184873603671616418982600047636367852776245079981603012406738455290230063375162822906328454395549865789473136103658447386197500789889758985838329338069282515246178980289801866635965442408179812933811460478157632728531547088962751264484964592047391896162794064928725239781206161571515747110636940432201370639603592628524266209877578173809668197210133533522811638892007804461537554491135089205917004852940560026567831107996880229149412451298120809328184787442431862147299592187393918683574072893464099331053752833417338363846538926583098313949231157543926741083979263671328929586396028321657008627868392180882060242557836907796953905194133708182110694153930726088113120909711076284007438253095519321617262927846420797180745364627697321725921646263623831835615879108600930485445369106025808155493386714385668129659957709051877249088060674629768006134776572031594910002882233723477742021715389049981598006006150452792167160621856009811148948459230094519265552627624148590677517602876877047872906779690763761133454725515294541791455890933025285211174238074410228641441415139495397706619446418675252027129738362353405959200360351391936155716754141923211494760795797412925176058124192723822066913155900702813585628878347963318804571526322357740546910864475127820412905017478296499642085536817490481325383815515172901133951283077756550959956533819450554096785344632440828518405236280336771184296561542542342346366341199657728520696463301263875816558031456164538890235860326262310376558742095048440974443591843022559134036998088188308077881950458396071000648712115201430621249009371605562805238332480490973928455246145718670380561556146649216289525793533177916868040008837809535542754667306924435325438106669576413926618333795146320259318625768419797850603429718483701445333151509354219903589829654013033939889599423018113963296542971350269788583205409007952234233109347637145918059762415791631019949728832601401265251364233547894452330252418316035519653932821167059292700489554243102834310689370036892579609397347344786557041423118556369091064300273846335353168182342815037841503593180282592391587490580061352151736761579192740351369327880794965673275658237504109649572264482779326201381995911151716373589965643562316024463746695861893829773663198599533807146027737161292403510408468560370093428528654379507474505713107264583428008275087472578462122336345775322118083595105770109991540888113559019763123466727604735541626772228970538744739688912549493046347277070894809598659823948255452629946950042853786850496529844601170407495374313487665751908013578353283262960882270480056014987859386890921644822122206599970782958961080018152107186718705711355979017825390618716674859268951080427508069750797108221637638088051263113083829557006514224633187491396961527048526508389559044333315007686492395043596663309020203276201793009258339289910724646226019591751996515636238219748474163799851340169144048957442026783091591983965253833364858156504692276327021942339156198211425098999657179423906727240926772495870467725184641528142167221761686976447810082768072942434683736448896150917293764445797288341518775779142886610439197785832516851550884472934010301024931057875611321797770976365375645939520063268477508997489062153271596259176821847848654399533742648355171894438006654222599657484619109042265775308898147351191435587689498556781191694422176177601355181608387205056130741131764798596362158406782623503762469478447948834464210721316521867394120316048519377008386655084550049921183557745431726186612848192545337984774607989812719820578067581184424478832565454384639909845323938636576612956764591931496683214219286276915865356037973966800435249184885649988975785776515601794073582782565279877412025440138713589892470322657884927771999764809689155097021020358075709370107499278402033234835117424703527422814026429062770461738614410077543694594968191912824492241624220221277148831888641470177887318736099492180311348779191159037699619140168962589287758026940632057412988253801540498009408967092848794191715084679438068479584588206878272190445976478292018317360014773700318732743494114610251003152932940311427144646380203859838005651057869750642327508482053694255766121808612873369857448407734470683941034217891651029139029692874393613120157222257614282890701201391006613038422410019197596972982676047433673840528355686932058233480839649730652666815787029682895887002356220200375840837410589370246332490550948648318400908962353377471415557270472198224563172882069852272574757922570354851376520565433644635522064986389060760853317628435825288500915918572183624043719917549437661078456216803048005706091091283152115371216200161706450664275320179025431812696294576475480158980404743271839534820366437659805369605338841349632969666125293143690498427993062385743755697360081355730963547887114086898223792942597899904009894212185264072868316213366113837052189977068885503943532505040619713869299857352426328472208865655753659825376220083947170843997971842661799808538829372982477620562998989609030032742048118898716983081409865976702228273014981815961933140098536909604354130678576100719381313593191709969027246357700608936608257776643420901361222997477528548615892152390391425221739181824898354757727433287183981835324564674179793500087035461917133712967403966000596123664804691140295865519848310523632441937509566565181979070801904171214939710669239729788021706258414998888838962774193311699854983332555182663511184069368718323028246563334725406026916167955366725849345617490053312347329069860462068003111740688598536943678382939329110181778290560701623331102195381143324642356304847799672089545517348366094028503236542571776814755910958429343313434632907212771484927390386420621235907600942625850233116591215791807585511607384587172355570465366125443930279143167902085065628486356511842561363247888857676317102195519728372817069082654377417944521069568594162295714151895109925834979714984830071228478182825678111836086831210866968893198944621777033677929569988704913037758186390990249751838633769832127108739763606378199819116678500777036621883309890883094772669870624657111788211762555260288757808855511880731839882710793775329564486733331141333039463050253665400950734716201588146560617107773573881063833720775734794799362178408039611455944727614829072271899597223996837336433393575774050690604270812742713095254629205525905707901270653357668990522027987554195534417241011727764707362879075334221947385668802030770845322410856802442673029665200700717532137605564111443286912186729936008868250960076231843205397471804494532197462063121262702351079010646861134702467935223996843956086589409913781253340150912745435940690769358039891418490930219689644048042779912018827095799422962226081321842002523195390209360536759245967730275392713805374562931312822026927969191491712069793416779782852660466649208245767703358996085338721535408003974963322378810867553500639018583756427704967842626813725769074338423235812711773332762748487508773628106880888545766049195770854650015138042742320794589578896199129441644795402464396357896186537144097759409392120950883206271782502169735127970793145268343871981482625028216348615777421486384626048761696501990969705199281224006933037350732539476744339244291100176788946743707985999903764985967944636391538563222155923619712330720799645716623882456617300829251922675004188142756998048443271653744125612166185347152897922562653051521453311791108262696965513800899195706156299707780548279916608187912162089294588631566058408453860295739937413405804310005982159384314923538576538168945803173507869171851069422444435369528013744315158006068691105952962318915922721405782908263571577235777162739946359440255479042412914100044579810201959413504941037335165243701158484583208206579454912842143276797512680594995584058521129096697401893612191487626258613967501364239785310276594889767230849951886564866212025032376996874453884065353046379909919789829906893112995064811414765478522296021501469839423676020138344112827364653534976237445566363911201170307212448755837253404468940574287528776547391892633319405814843456597051029653650312107603200460368192680033489683581720703247139383508053317539306508487766388832162034935619372047181638791411801663386998317113459617947347353659186190833035037392879411109678434989533161117962347284983919862953790800308217522501634789317998920983022078720488556251087691721384509136840441155123372774360150602797248043111005443348461560354796965786795583472772818373624744548408619711716215393227970150341343076668737895638061401164721682152187743135551788034418480976681030306068306650213545172395147205300697108752694930419285457531747063337102791335521990892451833271536867460201814480031949471135111989306869245732217122936077279815940075049263164910804467678066553536772183559491789062067655626829242240748529934572820380004702838766189254267749605948861429546323250430393189124851939626025819516215038685602416474379855013094491465793291055246253077287110925298164683371366019507282646640951275855066978069515560485313211714156774883895752773387606012304302667044601768005953331795113768679483064327645533743936571676580249932474423859884896901922073189927673693405542600945147423100146288779304440653658906324164878301013297003645883428845308656653367257201780143470323460666131954834014630160608101871808218831474459223235624357009874653185924808666173296113183454350090338333976176463624612324398706345063277992619378337436621109880135627189081627088410421143248120542466112661079728186637521992094904225586831981402677707105274479018207128755742391453899549408287852123869829883968319364779818242315255354994371609656505086892825725165407541089999714845470539937455518228700255848235909449058732468923939275814645431886243599221956118008118155516493604691686035672431809748140778829585255944077873125686983535418503373999005887176553157623751426628495447598311101743864623319913760017487776339948777464103788006213903593703299602598536509270463526452014706529836479673348930662317858664587306591700370395201846118087960834927640139561304946951241744338679045865215196099257535709043057513694619401520322521984638967063396733252536726899401081989750339355479119914664241044231661769100705071678130070315735468776249460692002729229157966378640568983990426678665404291015130336912821710570419676080049472920415578978794809953797583445571655874614640718099877933352277485315707440780620210077005035447970364009717030637480154858297284413191711539480562634371113144412747005801159848140131717767446491692167325881181070748673014430850344320196163022715562099933282782201900497444287859452601058953549830675713252721482209014404306172319352429084156733701631949527921343113934675693721271595532373298578154193631138863688190893527502576051381790016728774954944069862520623726386736127601878077059671295050787548124149583126575494171583638903354010794888022998814379870251277592116929858703962561620395582915909156076018801968404117631981649484053003682272537204614863202620064672125869694226527701810225258093535864357673698380955875125567412575442025638090178801826489162766719977837650405862392243015239479288523046302622139593922860693309584214837250554828060089680878291023393349637301872228024789280876398267203994813395028095510465266596185541795049451057695899744752077848924085707767963905617411005938982070933769410294100183347921825982447410689197533680419804432102940086003284777988368108956872223037132670340978002268498459453007789066623373781116319808526825496543457343361371831041762111869039025104577628281290010268594966232181953235867758507729233523562777263657213005849141167524077003562133274929245823851070477913312762826940951337022752426125261029821220283038722210121370332083608016528624125688615906009143704731572625946077764683193403177786537726205021060317931252360419926908841679264884450941756416675268676914660157170264283929191295417401690114111110607115114775371856270435998460437979979186807518466223847569643665076920265462206607982371349591725842034351023075557019202586601802060866479698956168687143698132487482133574662636673517467668121172419306674859662166935238675574246357763925865561946385912969234629824999036733034164898610829625352593237835311747268002722946873658613764321714018407744790771521194499277000379637886629838317886891705913574885860243459821076649457697745167355842995675909403318257128229549934093773547119522191399839050242068807117474277991237897689051063354647573002999449655734024872417247312905810173300821351189076771655612447026275419415786001007569682755734696170194991662011376489884635961233228959676896344739442329982132374576155507897388334990371319552039244031524201519898434211658832498108420270640285458505392698648544314716327539243415833114184582301708847717219523576532010310649689092370564971839037917742978816593411143247218999407677189420715927124276995050968024448052701433628247284227141718533267289398656715893763584431505799068009042852096433727055423783293536664089464270101337397413071513864671135797228478489915400011417191452844112045204523563303820064437786638754280224740351074177125404985704404089353529865083686381139003695862822965085430656758283170263706077048263840994056989704922829997388572346096480389516746621413435031715781094114129642470613854062108233402441277896098395784627808482661930302546318486106954511889638821641957293311723826039968014040227945278670562327895235730790863235310771339630402228117035339197814017761920500459770953483490595812480808097533045651919872543596920025500399306684761859996125372053568902069506171260406440326395483930409082813959663599644602419514901388924048449834753277204083094769988397275761531584313797873557141465697204024820436115199581603211122024820903515861364384672525788229340564785330755277161810460918443735920939948722235799439676174046485739788318465007681204196853269739480496686245083782982686893191733118403344975888869019027270669329549768206342589836195954909863417273504540404819267332524953986153555818069712466119368207147156682280458028197238148229886224166587499884224083590522881050181206085109264117798684419464113273610137207005912636253293755024520051517214771931527987726737934066864284480327242453475120879425535613852989510578717766335759979808816616702368830094329500814779761663347523614698041950911460381434354238077746155581515656075645702720955286663920600773189704117267393257891687772670045726908244256995522208947320833960807131576750141916827287614422338373861459420308120998159916059897249668355640888483509424436392595317711104682604203097167639001913429779378642395766455770729701609925861994457606782865484431983024964582524444427146481567895391143764838039622030050450339285045120016077843420261669403434879624913789386811695749884465713890536368754293113079370589707166156963840544477820061273798299156582088566276888879635540480352267318120405847077443724082765439368679862584047644629164775967816024168050696205950796371890030492724983015433838139982444327780765708418611088811234297567401731974209271944579717935262209047289636170252690011573401215119596251692251674805366047282484474046547406341992733545403616008852832672603668176080872786654123460858242899298463371878195455152165516323634128909879222574925555291249675049725336927568573062736093522467647905105487828983838857305676811445057749725733064734276231377914550252419756687739009740528013598948832684649641421682446075252399980160106757451234079886276060354521123089448198982000647680120031584518477742373806030166546073517418621280556517063002159418242043996835300092083098047485058206412524641678525674283621139020575795637845982354735907852453687826717673492687584703087491787418150019657170421426525651404471906668141424641721845141562764406555436046906929995277024547172535579068433510021619946338849296685408150195014619800045934353916159788577919795087591593743727669333856449845643764880797364759375591189553393718808776559939606519946940856847065527814934706360250175202155139488662512698328766302682556958978740363216036860313931920199963802868245542309076772529866198566295967081057530060525984728989474064376422112089062096032654663370813589185257027947825654353978400210779332075810452430621430280917351722599581499625431187118705198431733594032492998646117480475487963800689244025101376657267233881440203049051182640131238813587800748668483271798888134509750833577863673874772954589211831221292309320407224249372200163847933882146812776875130576320803872431616679086244072632883046012258121873710227201932700960780001727340824779817460073187656587268732697749579464739326859720226707749631050786105836506431071601148224958066428456349353389035180355417137561777956792809700217823237663752231870596460936865848072903464412918571417576475587180081675847384132987437936460542667806163011371726177751367554507939498299979966895765061492844985262478321887935193786386902167292629732797875671698675484332864893041055887287290278768169892575138194544804611045371105109549724918065090058646918768849581586911341854035225395761362274847731296108546308649591056346371243031491403649632094396853044191863302589078915498795637937925153351228458285529144726108493792700205763101589041250837088396144128162890913657725584195712523201326683166555907926837454523126523770595543020205991607259658921733977922780854316782614103898540029731032902708477029937529080614199396036239384038580497357458238809795798291000431500891649726482121136914182677237413060217878996605664917830532739606405122654630956363469387180994730551320536756844399223409238628212140485897385773378260522437352832745174082686454391160633853461015128049822134572154564463431030225977332356853366605226769955804234523442023472957704031340919628407530086662801909246347295334952861141726690341871351336047523099618710259095424733065918790505294100677185127730747317046989685284642816707453481595273316921588553880872582201241797609320924761735962584494118495504942937316336173290969951978345538298547943768263313716368965666282679854582712108783550787912894744428248449646021498849598183054635607128928374236084519731001365554996517969274404141887900114634208192384226703512766923518906195130259902340981891983024169921031121609416694764981385757783216728047835216872427343248650821242567638516276952873190485563373543286164579882430896464444987932648286213545819085168037057874147362305489007940751643490369597007402398126526917335754810407634746686179293906363451186108283063721611753954340516939264473655797401735560074958843386103860704987316567293403680240812413574161502924514714282538858731538179944042079227077642012110115126498872965420686644144523726053120055384601481263010147513997686583384864715086642717252079876941632932685971439701981590891362229766151455095165512221784647549307050336050167376420686907316192726439949812366384958068953614640111973209006113726701497114333311996142344042032000426160127475473612007823118049349866986279558699538165598693497005619604161033390214117207416819521447873937780208548800715629553805883282559930560326043286038692035010995015459943663801248175688318861796222258439847401528298969431466803543870223125921159491997447086816168404931013236933542280674868203291048268500590158043502958292779954953696649992317438144373762303681452161097811444361541193660402058522862462767228451336333701881466388290011596100845653127073698200732822502092683049644817515396675429235573561558997717697491496798819663020862481671711911028507668525307438598234938760484423513613656248960166205132076904107537031254127538555164971775776448875533821786857690509509325425260316151765052340302883872372121254148751842598220548801428135073412906914227982286413952663730886574153844075174132649603568973976643051056255377482796006707703119651829869345396921702956565269679523492279098841160976842887142467065786221761208929225829571625110393163741451103523228011133527281622095579614117095960954342861065660987945549330157685594135894707677730923589286831383438771573916448630439148546010395700589929751493419156395153449331550913653761423699149618974428780145568664054598287089900951202658769756388550145569260761961230317146104950013222704755414479343696439454413955792722091716023066701144326044448925399523317934183179028510300693281635341882918895837884027326074600372385623441772085261100650490874795305731470107224990899578253758206536498429164772326245567530186981640321818808048525450356755178555440434117227909800149315015858542286163389780636074495662762371340261875174236883945784582366596734646948859848372993100717996187195909371376335387594470497750552261535730161501836105783853704728368763444579581786481799240088168722595475507826998251657352045442351268095281561799605086265200058315693051855347471542763745881641297552499590316554200095923384391306356642215928622847496837112402574175704650880983465920119539611766908970378222805088578246448946550568140210375249825879622931569098022204922945783446677719523379234039247271625462113375526669616458776142192678405714838926147851723672981354205450321123568069007804396032047298871426253673411142368003247775205450610784544718424029431280589804241527638659820879990722141902747714848426738127614814427969152408986230268463793599225002710557011379607041086079545770770019846510673181534938974438573367259354831436688165612455350614808939960050536413928915747047503512736327275834682222690933639320523524176493341599184571153124819552273517333687402179063961080096343305861093023004792572418437303286082155587141761277877418463089643032229483506157242378797361850504405444084954694706641385401684055952383775454979309934547193495943353690491035075329016870911844107765153215508106493557731295224925647955803851907693845829696397143352728898102210304579806895159555380474340846999354484518360954592451628208530690635677602081852120975090206686867383537752126224256304681753789532232905355618320363289210312420155998937108819830736025042789794332277270146319218364771076618748037138453220498106158285864014806567559455598268963476331610113985400920953666964831528966515385180356458924829842752306228289696928864561986815535761254163298237495301506465470216544757973095929163946843211896131863083204128172294834714581586528770813036460133605719609902797021159932213471966562662206589045500368722175085379946464512471937689972645496505666269376274147805993096842783669354879622652844681576534168426292556980474721109566060913657381011342569183364019397389705121065133980831464352107017737058724392297829687699047760626640582071981221227771821617620261117618274833602138493678706242471107673421311920096231644554663030029802901601093582896079286695066693072091790535416690294465860237368189639273473645516765882491113057339077556150310967082322117113542137792374358539024849533030667599589438775195802187205358443408139518601250078542772959311099785571526506678087314654631823552201383417152066488935662867178046905284766672445323619981542679609549931637511362751439976285070385398364011410966590271518259094284400404845496071729290961689936345769246160570235189091163415395355200280063544071697826519518720071905024273562998623958046527299029261441505879105808498137989651324007032630775296171039760756879598895522721845109498996254595084104888244694150757647244268214026210284701226846312804908215427576329156671394226172170778625698329322508021910083424987909123494911357477730556989197174476278951210569251609781634582589589066989020836994837339281392148357218763053381455596644214931142951754832037728442385071468065786110228227903654065121393261358943894507430526667072026552201066128077131655660723838713772985159531243933182570793292497630648737691654200459780540332139858692741142759509628033501268128247495722472085402951878910616139551117058659472867240572900485134303175882085689502803419457948561902381880318996658147333937828053557161387300998700671209672199695127570280559887457208607781971378256779018976554775650681845822971667545419460831726128122749588066718801614978651113543793444943687789144117358201277047647914928594553240713442639018027714810097354095707171948016145733648234714992510158649948459824125246137427122913409641924587467748268960694677826334704976042857348740171373077998133221314284388524831663139363269196176651505012548591766180766645563162257469708202540575792177772858085960914459772176120417440676329896206736513080464449505633646382320831351535477663908088627220130451708279512344623142930669333022914457122686307126109495330043401774285884298798211650462449729505901872611038676604450650866311761358823533187851008700419625753037888556264415702636147848381208607582034963571695736293193165969373787905630830277754770901865406726552782268038516869136105387313817974354045239369255312756265239684603165607199388052090749125799095976375974275706381337858213823957176987231918834936454298210607922551830285233521482786483009802428108795403068861424011287216142418703755718090259071765245102909737064473681809143670263391957082525040378607245523436737019169663649595482461582898691978219862577993482243771998748317925901129401751783331270791631494451499124124616461896549498474891862130283269738858588536575961442807087399433687360043310385405390644577475194719109892723017075745162228403951302291194656798786311632203830763942001040323684054911208735865341931490819717916897764248598619137490213759102800619224792992068443539472586729022165945883776740080685074572121174701108750436461770564424498496728638185687092469542579368864369502453259468545007093984379263680376478584026100584972587333728705416254022820845986042920107143380951644518348321192931444723927030353190104042763388001403743901792854044593541499606699988487920484509902853884179278091065683679890592731322865494283901013041221690061042792141075124799130054695970604627356643213339776177580106072477841895341178592845607924897041629598807125986570014154073555754204405849088483035969362774711682992581785566325354115689395328142966131202214439661065503025769444963014053079373557170282657006550748785538737387211104074143933201987736805707243865358176381499933515158478856105396240875258362813788104413641328796314469486238236588036775960078750114371344837808507621347832242817807866285382278933817241458753537176527732158951963597780276621550819730149318771151628773672655717502193828774135038296177735451965505755207215693645935005472259359805206702278810009332240324315654390519944870584384197479496658838593903755371456195976906651983604338952899207136466510263762799936828485031616367225483565417834805656918450445894372796894040739891534894016686276859621177496294665100254909357902856113060506501627833544670688164245069367875816672979280373510259517376344283845325541445062926187022285052251220568338171010684163550430603130559883144275054525717658050269929610128876794823905808279394991297917727523822447095660448623082935630983385745567921342201854060929222864066500752784555603957502336646442124041767915578457186960592844634872325700219207987098903734766869531669716414407600147738387977101867083038018065471009822700810058756641799901884576465365611384846974431477199204536290994382244838912603399987855052944356106820471568661002700784127302834857463252050227319191813141218902775496322372969245127483711257446976402707949006719597886157577198715114286217453395918962841501587944540798942670535218445183065504757345415708380651140146552419246030773678584008225659970146094119345697437681111098526810801849258770014957619784608567401596184943692112004955497581007613253143076714388104926370420233516099295103699272274671846348491753323343261633396189062100666226035109333884449699398663315592481869525523990279952138464343721648978693643055363928797191188116490302458187701702112396877554317721533540260097310089501507219809670011620737452848479679449839906376952481903792814552309563519737213310176785402213657333792510443375850891527668516468714928158288362786006874917607973382809706706418568087277190456701351110915761271471933861903675842759967381988462639407567551392644678258650749414851469687486747942519360096089015921537536166301708996909555117538771333110262758775172778109000718340338658721614426666164121024222854535651222540273694265949015371015531569631864408884254510824882731009470031065791066415997444265019564611700231778188719063837613233516548320842848204354244812356456918728145038720084544209974726955598536982849845872246230914638871925008035263431861484278874026308854045034532197087450242475513607083012721467855684595801208614504809773544253047704868891385994106037683612465066255689700767829910716858910958338124201902701264478503843609469066004174153715538519717769919434611687128525220352999833645877918055007850334796508816145733867314397611974842572921297005822656165031723412657318552751154807048388736774112324842012704030849013537224486829595939098500817984509039848410577433934756327472983940622615663821174642394902169022450760230335292010151765049899071088309799580808789309269138387481111820419532455026148923736506984522167097427206994359643321159809960697946265812016726566594763106883165616636828927941208650941055373437934186697287831477727021457050675422578477532062630180281577146535935163546979282680283529450871824576142880399338687290087038213573433805985534373936198809179056072083447485828404925828735102629303092734246785763870871713522863280748430961530875886212474908946211399589685291713054576500209016513351467353021131966019000899956964092935644340432935743633513699236367191212409483521165268946389368795159835675351950406302934975977361168695812004230229508323636521600050507551578221409663281020039555069553406283444276065587453969584437575409711997237950931537552867268181692145752153087898310110566548041840180989001860164918142940108197262920744113248135929313379224358699557257244551566001278426675006464223716267181564268640946488738886679142561633559932785415974178023418425971380943013307410299272888462686319666715611285301690725349528080305336750543814011759661072346895329653619749300780034334966760531166033052086252227381487438993367397900981332632619802476398104626368405816528828882917988086747519603529822192939056595628586221837892141248045536248902769141232521660591305812103847176795176524956893645395327530956671838717227981144798683736670527331586364197308900057811493174437339586912239434609467807224919484151326979778569308410255008469039978115022980050021024411195250731588648037486165693450903710803747150946396785936886747440177140707200037991396110506391608390919185385938410118335758884740787173652635638846628753081939910797563052128105478292678275787821024500232983057416883303098224261673730628549226520425366694539431202149360696352697235750242176080662398414465790102450449077420820332018009764348578798028994383893650092983415360401023245970883331236993063452410556337891663076534278815852020890656373678074859583842987084347339226619417075975303514477315435676094256981334279589129547549280327293433012795975621492941892521300366507162466650717345172334557445447509073642849598892154258652936023417725946707766196475392551030978442813146477695019764062975924595233454759998979528158739684932543760497423965711746653174982497968260520928800241390232756741864095476176465430664425692222905279317859331051449989608496128733227003601937814572275856262694117458011922157367271080492598251655636946962884742682343074160561005456887354020893048644471101562772551811860767332056732592446237073682565742053047854850864370166953469919086669266344906775360771648218000258540689147772821403402433660085730637366803829733670203260782951294028963650856723180277772944757468995146678665522321216879232185772372970173764481257608653069445468057499068484883950633033167485431419007168847989376868132051215229378842428645841027050752955743445780189808538204982522739728296553271154226738442583736380174943603594736457899126952381119222678614135095273756146582257382318127012227288879286864211063739621239049579274151533705489819406313029416766380494243187165942735034451271343865631143216138750671612497133405983569172120719035757806435200969213315597300151669200767480333498255048360694217101267267779289935645217537379764905011554045240031966848895821154353341276740016557126324632313884404075698698594680293545677166016840804944382219967414542619925156613129310650054889537790958624546981088167462879850841977042788085710811280015205203459768821720638017728058734790346354984614565111589542895310150370764853344186338855567509406551291342408661495501444298882610493169732358110471359335892445503658491859649379155935098621433948260911342329464791704163673605027086915307904779347762258981636241073003091941649057029109071508130184552999637133164210698687312871152042262998373548432220575090143975066884408332702755007802589919159798399134853202241657536007133054162311468371519998765392956365665167341387391433483146596438926046339544072021709113410877998668810734694899457794607501440794914656828803814782667791928447023163097436438748297815494894322032974013060944264356350572562384000631404897959196307826599368446479106019370084395082574778888554467139217508992470595564184246819891984019962724793358440627576669921196266486243839058065644605851472888810675663192880584974766929429355961165758092204196398326975768257757067128553622168911020416828613736586424255108000391303389390331569560801482682449471827793668440745507697736839373879850279835379689560414614964097803039758267127718739648135200287709444249522739541954914038208489818646054882827550806020250037140385397792954370237296898494123748245465137303476886915015919727881650315867923750837846940137111206087870848876796337960125939330579171087465294217821333688787750583200419348332508437554373747163149775800671024091329038533518657280700707219815172996335292079033838788407143130933464251319334938175966904138096229838343312587311510318563434085589981573360719787767692167815746104538295444331668657203308941224050032311309508404242565431644052345603210609020805577845932573130449503458811659804596695173185846444798803248775705631026313027606740867200744117630589369400452122896594316226046413492529658411685672346595115361890738409966516311064030831799111806643811816462010006535488176809193515864739042584277971925841830213626090288540866582148723868248507813954846254684071214011298736932277682282465553233519526650276305966948694897891098118711740706744129433238960523589587945332160322250972941926102941919409806717658868729762810938094687330785184708043046830770386287425294744122838721261022979690215915289468852312036282129345023792642885055070764031281448292491582276312599442715268296711630534807092307418520600986234616029557073073445810136447732895240507296470817198567797034650715215787617728428270094506138328524014554607779691768268195252838258261824413442215466121127135537690861564222416242270610140546041937642040356309587237927062705134466612917604922294786697635408349016863853992438312847193131164927304842213053068642066468226142688568609094291447145502531830523779033324973832035408391727034342206273147206467866933333664647337567272471781498800337587874965051438913682160336356220909013521928945337388202603095616658613321483227657876991711254845435353950686106363820137301303564021740664228901647725745171656013520383682352985132844185751497925839936403234058312262892135195977869173908209243247976271139729311391938552238959866304003693834543745078060406319565562420527403961362078020209788416794444232747741119996066770093250255397732674366591130192368199913884881124921648261585541253683004672031010753971417045764553200491442563723628767786727638840774237567638339999538278775191134276984250122834662399708737818716506819921771120365082411493553370355747252307440726461302856813968046197513652370221007000749492940264090506191325763405566032803812063586016424765690471554023832461085678472198352010473056811719311193710246893068357265927341165988234075015389834221326548728858562512150755848905935391074453321898940051205004034869823519030288940826121259764722913233969017319074096206289288947886761384947126808120801148180412073492055670376313961109438029725973335352774586205609527944261746304175830484776661963097654505346093244185268376330828682964016805786411470222594288354982465014665971637509975665893694316290552608430224691826160925596646667242474040516079290193424533808657184921104911796320149316285038957631828456924332647994543382201351522594821709036703188596370200799474148512163071587051601679805965070870561594626536617657883300312132591154405977663697057696220806791526974908724772613692413433816083485456359285121318215468652336208746742537263525256671577367088723484489416634880120839479265069999991413683369005886221984655706884415446454505073516787676038171285191999908878491387529763072119733384612347161790484121191155165768006068242500123960832273808650380724145029907270051672891104857463274891888963044235002234604300534559657207509588007897538011923270832598558707696415515231101735718172378231762787105028495286889087434791033452370516685016304854336274235774891867740024399629084123783873208336167666222796155704441219954418459197227878433538732950963280028436232948851429158189265835062747916361308542292413596015872749929782711007782675376277993320251645436006059326560952789119276138846159862934139553357224537495131740228164523317844551465694230994636389408133463537521708173524672792185863716383431119197834340870007910229984247585606880646105639342735810137031637553995932096682916444720554598272105220831616495374748106841536499037397818869469489234787732394516927991792055839191428653980993919064080158109131789271566797505269502332534770902982295619710526038108910649250727069174107155985679853863766021134179674051281378163243046799662639650884062333759159440879826501430546365946134819310857735704146241423349807856931099178492178047024263118141652542608354600705588948597254566941592098231102619406014041108499905340175034158121161003479700414454610798974659836019343564280291589288074051083081634858072993834434378490167993291658989544690122415592960239686795581066751262202353554855908966836461672573706919586823845412303682498091341738920817850476416991040718755181297226734831108007617036780392448622160514638444701661172006318789320873470833331985200164921639108487437658583673715844905545464990373011591401760218384422430670297624865600774274914928200859678900003587254563383808547876566893458938221367349772188230143000391465019938607568866411835509934957687520765937816801658267017587062604252568220983495969285298991539350187618598187446626763104156669131181894491572481008469348139881661421081859891806246148072776993967136652265792906204713376130880355769300650233255159208337836916768589381897837008436650621174746489746430180862233737464437740761849677155428941358145670202188778623463967687649129620723322978374836311153710907989994044474914736024665523676708115143445333179752224832712000582158841401426768782706746430828325699176878864279806275861022101612430727192458323212712124986840964387267259935623311220801454831811205625476666341131701504061715912619470473037210720484076738690243922138845862252350149365727946073821396932760630763986607609284872113980668248276293174299516779781816206148098123107808463458378498905088491084577069711442984034253035504789493288481587561836793182864967912411377040490022197563761755437821828460030960085906353516551577165181306611183937896205575391555553498642551743632556678360172401058332103779332430194280032608726351047746862328819290652819333475736603006831205421654095674167651052707640533777034648842387736074348727049978883119675410752990217338599774280004239931512150168991492703049192607787768458637612916606644258405796723264124675823759844822882527773023860063216406878936435756955318092568839985032929130752636620345670150624627431915950130321499285373599205016569863083956118416174102995429072171831158053428923375684157108462175304207235638575898267429185546855795698034672839929012781213449357351513066629561781737427917521726826296578804804305782965242942423166114604042545786887632510964239183333431638651060783143169227272649505955559552609136433139658497355720272903640405344351493955648228522621316484046646882351099221907591570490956823675228963299626556415623438879180896638378628336858300726125218755072580732647272653680677349597677769612030908564062723021955215352059196763222384718169682909122118843210865008269057618462907257965229245264866233419399929572274436379182914113724795797049003756566988450568635087540770872277498233454634143147185596264611197097667707200304665233624266230855611266754573463461192334461471061349541294907920028539448812045018978061229967156689786640548029810341901456119207027935045994550293779659540561498808838450934739255694812493185278639080853284190150245816324328334602773685648400333035973453932304217484406050223353303450267589573399113757770144839182840660831994571714976910533223959964881031447056576961535250688707027146561982883714132619296772966484465855476115788879558900662728856402009805338542736786704298167085357585573165944168055707919931490693454119285932729130679055951615399498549449171870179186121693185302007841611098732482753313149295014003668939421028318722771144214719869580857169877912456728543348733511661240363579597194464404760732216393218085450109754771326486391800950386953851977700884423313433578651830943221343227612786797405344332483881100940851533461858457454204830680583833020033654110511428932607551385493787953488457000613912550470266414528669765496267512552687775911930808713762359374545428507514519482336272908348589643813780011367298796056723058609204703094952445472861442922115041407107127263716273743550661167609884283616309353190609213514890446010772330328936666293654691581363079505618969139823110424791826415689021345082361089019649667409957534814625088481097831758245815356334800344636164070905532694895294660926986158718131892156666751407161375296104565062863656710144892540266189764441387304613058365323627926732169617627216293408188620996225641685271023962079332637772872984507167980012859702565752627742256761614431843025390926180526924957236596686892972317900645797623872950019491070340784324952831226329012785046380481965104532880047739514839634298113620688310234073384396487247821251598670510990124059445859432721765851065764907083718495234998965924891381519395726354884002289303412221579353180401117316339226981965985829455650642161836947690944455196270722944662375519163484148956263463606823377702254262563674378871753240947221339521264150857145071962860199830067843921681230296381919113223678471654380910026830258601313743258578636013871828209104863777395804538412840501524751359465262516934670324293900809853540210985764577150954214577924155303521211045483639409692156301390301313394015308440883007986026078003117598129419145294484369451957426193935855978338249131740832005433261613023497905119732620449453519166538324287385893414597906074689433135545003705361512746303502634657123030222821976186510385604808407743589358058425179990844071707121061033364658024934298441961151139635955070757764028061576890893254291861793388609439249170413935693894779311444141423444331268419443867511511373347621231088508687358965704201996146602543136104912425123117594006935581239207519701551741303244238624326880060300497064963281017293873384918581547985098705996059166101604463504341544163916779988368824857019590920698653055589623873193738773223342426802588104891085863195953661734248560718470514575842306116211163439756057944014734098388617217756512259172354303854477583055156522900435968913117575028823833136425600159905525392236806776124383201651688018115353268913657483743456871782467496172501490648755275663906379236154751561832402417820473064780624850856750456234204254875671180346512674896290686354972578489345375230415747180748355753512769274347218986923257637291041510119680518906606174659725533367216766665402504089255834963384824250982487476338668318733218541898518302988454535384245239655244700900307479209752648477446891479074794296423420724359240643200833058037767683720644546668870926977127165993953542969610349431315420045035700432861970061644023897760016623427379607990111591329401254668775107661713883037408764000049632566395303675106658079011415508842301461402825099932801512231941455558796853543736386741556426980749334069139299306407621707605527464010749782497623248126596354675453289499824474112543951298369790763774221420195227837960173338379756761646220369113275127395255844631267990318795182934024023959559192847002696633231627325308629982513391167642994531708376410560907219742808898113213000619905798346079347538766428586867884006164971536348261180784015412917465177993444897455207166164193766099312401278228243118499646243362764990255296166001305964094092523928540046608045569335053907494361100243499405132777288948604708230876871067063167018418953443434096954981489996162567839409856764540143059932855237359794917023800610211406898854033335379398344762651064780780205874447598190680577026691134757913397640481172841135582870971077883351542912236132136641648563778088161576529389729236221185088140710836516394156032226670113184425943006424772759861209667592907282294636617440850376599548779513738027703480629838940323102199908708529182853991168376896606535020375788717188191376773598187284166177028682455662996768171759212121406250955879466597320128029977097661237040081669710836874129406158207402448987992484383291004668233916523994083265143438158655187481311144084458539361794241899821665431354217415674439564149440397271540873260444087387072664264415643395387723515514595558139232674898516736936404416032559534172161432017062827987523220449713947830706312182723391953028582082616146870508937276974006760365281742601530574158733372737802582694928030034254615571094848325025058081080297038508678144122673467623693239208810400198569164392779453768678060661016378494308216186444424914694878951858367049533030202867608639063606637421552938966882500842783543358814483232865009256224718549594281054256984580128071230690831359807967232313622442145557167134166044450921519174376622740675650432668283487974469960067946575138395477163338932247652322332676960485020949707308090681031714187466103762391703422853278031098591692921838907432103644291699280936439585100852583510183177082593580324233218264662796774957301663732891624419902723632466275598997064787459761558291890330119031747024523073729241166953645583575213556367621507113957721091539199225622214135384904885539164653458430715742479403237794080754330472525585065421323622335619061780840406150853790371635580965998453423429957280652394402594036384894394536226224385323643344812142187196455629666980217141359565883564991040563016096679380410549141767732111442628823409730020491193379406972771265342426611721201451147856110882735906754759591453998038212963472709256891093649359285377419944418817415527523553390607489716173238384353994450992679011177574566406503640234737788059034541257088795725632874090820263014854502000048366438600902336844343905685864681261028427474671858724253895280565630867931175509619314331408069805304063349446036687746570595197966427313779995658418589967368041187334719296363546016211106111753718411713585134144810472410020414495308152590148994191606614906361423589831969917669961137802999243854898395104578361678078487827672445256108380164834209505159951652755769901877829585670095348747929814758394159283929309924876021322252139362135958901411342202949836134139198377344731840078512714313721637498914358240579851680059578578367431050879660205471374611086261151360024681243969916467175768329660532505567793774707193555523231515163955272557973113269429274202074963044584271486541111129122509930605180875134646071013228858357421219329024107324012367565182978685709161356855077007951790542713265610050428176250172121149722698693456645200870933957170728371133262683765028535339928078541018941006544177576510670431489963459526686676637836385508454748972697117180396226615705153978374888771934217854230219060281573482391249111949889915217674298863838929327193714967366833158681671174463160808651457678618131554884849947123782714123839115177849571137854081715155323683596737952027766021085380697586049047598791644059328130790477141692093851028970432304674154216392518780943421019787995758668659662812363221250242037622338743483187363618916970829202755508739481181875759590834565742074235727915240076357779743564279459426216259563157084048578643145112418128193615174290891137220997470697831257913603454609108379136289465515449364225423751013638162557585644376222340618340344634890984069390686805010023576610318279880871301933485842319669450999341163960597043703031015562639456175397660923793034414152991249208272592154993660273167680827302434389042326035781620197164365955633057195079918784726597839657132752950429592371923338202879745531306714222379286154887161991349851819132177805675670409932704290374243184753976237896846523196148784669073177667775011227376431960576601496757791707828775255363068861592541625989037848053046553860010084170282040301817284226048915957631167233983748539438618637510102508446163979122194612085191143437061859105522073990662524070156142748799243524450928626684085894863221095196540079728066631286065343729467635774369470822887426893578307010905197246509902846854729898152109021520483354083901036688799352188250115045167531564343676053349557938283170001260435379439028603773593761645848217208411328649468437550288267494600667256323753999603221598516503939273409988553489409901379006131100749395625045636718972180853174758340193798045211936757937739734022310108691015370924382750491875700151729477837772527901423830970904853067175381354936562635314533664149282823150931754314204035738272905018784679419516473810169008544695945921605319124026046643906544878004634605616402922187875937440526059290989462882343719597677713000989320633682849315214455724058665239378440865291144600934028419223689434622515560891549725556355185575593158454569833721355791309734541757326513528092871021774933716231049425436769934533786667267569475064967136434663920645882816525006800661447528796036923218285218049629795448048705012846979063759105038281219309722263528884715247914633294992426264517434496959731470893118602658585810522047042715868308952431749249664760779602997780317207226973339589739546483051664388718904162152749819137526460896436954901348970883922304460801388034236234998400133988558630863372906701338529317240133657847266076342777469579659757821344144648142531031536713587568998478669926387260452323115179901484195912875158858233416080640366560008573409304600712884846847156698876470240288968704430581087653996089806356741502573504184509072954913330114432929967687396562970114280923684369319144003600858340875067172104802542441833368879485721999763272949436691027040435333759575030119475917591727224231777991303516608731860219977908907123984515265712912411080472354503532445278595394815104703024862288588793201428442979580380024495052623544482840945917948997184602272302523429956077531301783622541226027315675736956529964615196178702714038101926384833783176988088997744074058352930715502189580494403311805099800413879890921865858826382650179690359386362981542747477452423137991143970253058861291781293869910882112534413818621460110736665665189543818112123745755651851197057867187621460241134591740645542958730870906408908919001914078788120525699549116585697968166579003179524314906018165744756895111136108595482564466189776935907628759641590433892294194663487180274040221966041326637622006026668060310711605004981508958519382693100521016532901648393368226478256197239824275917798146537891272030122108343854051189143585689092935978648899814843371628530591154560353776900463101099139458954360845025147935294442186442724754783551142796182060695502951809788382620557090578313486985561370229801060570651889908916835864191333506305669658333062938076343244867002602503492503747562684768455745538778933456104826204891859786961291530550070370945945267587055790451724137555301735324127866212296503486822555798420233121471894802071104522781019601487707189029384340908681197234185613966101916905426427323036906227540793806491719786085783046563777670269142510591376014229359371092982881419435766841868995709727732215905915061853384079351140222319059544804836605739187526929492239002691348100368767680733130190525120232312520387430310554576972398902516183292466436582442358538076045980613100125846614737192882817261478340457823326921626250225602311213087717763226931544922579410291313343152530464488171050414276645414473896283347283147568421965067651710805801806312510622642520469133025919058732885611699285803451190155680475654650099120674572606157679510731791586990051827350480955683107732011883918336110431161125496410003099987890173276392888230993778217314987274262154843776094200731381053508314459217050091950932829456969430812019997820029781135024596221130986386734167393936256663342597371554700810496725664583554240039569867863137506032228386995486617938471504247393933261648278171072493907863543087784684837615748135685722095542370138975778593132384935322058068514176908382651136315676047650422733412363629675177298803137744648295963523760677492554189546624103387836404103542117626531965664225050093357038644736022965509606633242021652124898895260920107249041026902227386420504369773457750176993910233460318968835498181682890159976694073670161173704870613556072745399540380036681998119321974386519966321131842357516194449324639981172723729399175306588509066438020420222150698731236904944586098136572536486616182463930705805133390394881522069120446051409444382041862637011931804626714017354564840223308304761794103873259359727056879271613709122941837385344729124373781624357726900085569104143960173390283355254594918130173860637896864235983420195551811436179501237224539976513087799880871128983468394201935861555357480186361923403507421392308700820724771058751971548588774416338092163757904217194105461903592686863079513997903291038213609043459566088870434884665171256030220689941266587396948179184392079779960057012307487902751769742533239481352887892506243331491161800810148030511626896418077494631526817689241230415848415241953652992756137973361948413101587440984824844733227697775460248300392945857245791776839275405961266117289160182138368651284786532443183986385714051127295759407350922936487458044503134746409331545390394869082427540688202852434470608929949157755140383202843772452163881872855643803979453800765211320062405966947947160596315503311628360954869678045616266432552033224786942914370164561504099857357784118701062970266095823907675387644276240744504127751861244126079793263843263472195715002394645289943335098759790903171232915141099222972269830700334054467308295115496551536215586688929512267006978518684937161921351384380947123638331426877479230478641508473187995901695420352539274556438041357538195056250329495168784943692880961064174992583038867779529352531147999465219510104619180230540585086899278619712735699768836762075697226369160432003141799475919213741442939818807740448541877748145544149106858488594799743612404057624042305759619336924454698252338413049930051649508225144472958956275349114954881331792586430493718435231238846432488729065784246492214284058017893203920956032189584855808871610333288582133623259385541855672874647849790656062126173806313738011067519181020253021775904460729555115979432897830173500305046220505194281923447866758370299118738952100105247426808068038568846042573395392853406448968716159364217441278033161690026702594639301878486850672606040512370833663601337439311405611036884660558333634684814097504132975513697174875339660768781346640483357058260923802689329365831961111241852798987234427689739359209989855672389454523391972675187035170448292809154324764569452390219216346521774681379409098553693773612474425832772418942957168340322488436606275862552333485488040253899722985274903162583689287203969256877208488643313973160236891667342014035596412628676128762087343762946854609769715126437326529854414829664134013776781058756691668861363421745856266094452488589582275280486688067362822061010288621880560442835423960762419640145459099382700726287606194177938706650519042206585737567824600041577039313175691516788262281801208975879930166883723108607685855910271831848664608764028325813543538808470603664377597874750907288238753001110129776659834297424103299722733799118552903241047908911674923664544237707931330535097987587973723632074051152698930558384376069151606494368744829998616390991708509363336837887169597314685876299129086042661903842424709651141454120799443489237634035443598973501519456194186004564375037458486896740143921560193258584049881973132498472029710887603250507324035741778742220092700793481563212539829777755682763380096546511920967083734511097866170421206096654775602532759470530857985144899601530125944061711666720727373581921398374147151959882072401771093448596754411573978388995388761430357972474584583267863926247091598093008221754713269354112927096467773976131276915941440550675697642654384849867059851627597973178676620640759126270447956190795112503604032191384874149387427731225567340296832434030691919415409506390856261035644848251361454737768530377926185563146744974382663589894991669510167735953958726379249268634825917845966162109527017863915660134274555611160683143013172551277039902140511387013447044324451622039127244377692012665812263373706467875815495984176772578825694736905927215603081304202079692492091377698665300757287920537167214090952323315180802426308867143063573286227851241408701318080802398058675935653164003210865272341742009095970104335876261593352606447343178529687711919830380964785068250851607190039721776484941369400810432573421521512572142209878402075107743256312854401039097150824842249091993766749954681204792354385797787523064955213433321392987064637253731434318624468450906434640642813784055860464388197421827871140287432786321663421733567497360915501473195895431773223041839792072877598792713011278476041052598023707943226382775447297929502159951186314961220361592458227521368042746480548083812704092761433111888195950044245597412220031610833124826278863052820542259019704211147579836043707113850302490298210193563523141115579371866371343147049477699172485094391312311851340327602026421873957810284054310389650737411982872621368461413631759113685005243969241073609055868307493611797408177909655426249566301962574125736479169098954621041981611080790339566136877396142713163496378545942755117067474343682076229168640766887486111017959388358452470535960813749007107616717705563451866646327654339623607439391062126563190568514354901423079904316869667103413835027771489075069119763197407303741026798365509605511163833896528011966017681164246454267667074757965561626720646690631518149686320975833348788167541007470680080196168349631029534394404621393196003826045905017229866571327125332911972582809614143351953145798570556394264150523344401974082118812816220859446728258555249905587796929459313499288211359173747999573952986657451919077610403066212058537452873344543303596019876398471856953868203903220073527875781855243395751327246108474116298476136560450309324497352580173138781527881731256474066348257559150401321434224477159496784897860598971386164843597884489908431750492216254083786668231043437410842545193635074460977298162813016219756877462716242268865589294118481566030153495355676388505032576731699514052648358889214263350115741742319714787191627257364767897797972628778220142516463097991690426348794511501915349857186900102347043360115125274529415858989024330087536568159128478843761215325263348717602919050727036229514103836300057656277105995598000535120942238296022899366958707061616498740264711647523462483252617369510676766126948045125647920335010643133457971098588811904560861422964650412463577745068466790718544974367664921165608873203388548888459581846006029713990604880318020900093233865652206649859711126338000978685734883016035856256952270353924969465014187608181684119455337767510050736463688390864335519825746351783807683739537879778721620053152074518743117001474043446287840930770324181194728031632335547745325930748284904453028150779632354523376539002820361579799383904865988675707123281612170253417260692020922223189623403442151232105060295004459761644418349816752120800112090421638204697325745200752695487903885880484882189093187144125466019795188717331692562766259981281761182266522955673133008641002075919487099141025537608384120468701466173369977422390927575868374031338359569086382030337421590264992344687982221960284658687699341601506105735060195876763150222344410873492494411770020116849390479346626738496044279372442546128008850335789203844315137813765092531111809289022838942306542959332471762467954775389351003641902015625371078942333850343205720658310248097061775412882332259268306558175203604644035341863200508023972292170845253978988758854215198671300443790162996048146067138204425672885798514956637001403236818419885980672879013605588267769541979952833698958355214113867419557480330095232047540632060910612120316146231134299345182991587890458429635704209588932285595748497927455929764848632353770714971643590324010896282887608068732142599551338216752843610573838287037877602961522946363786183602835949052667743952084007189071326258238627420313842620099176447851768185439136892108277033515456035774149213973186510609650565437150079252768981794603646500525710754024933478884114336655222116745933147052477798569965434911013958195660533304658866506990880561346932752258507572788984368090272145108888647975840641213207649543758829183687984352300517065906744506556430432119859603345837937835904020709442481269592829381873661523255108339748640739958412048178606858981888387199564011691885327582534192881346664557763646106294720922980123186952242917488747368925040528036529369816555885082072449713038694415983596168285807972760985410273160826465057791542708386173173996722539138832395398821811797318788088723095808780096933128361923860261325390941973592956281565116332184778171955618040590616152726863564542142118719474584499765820206792931921141569636129425167913633880350948245039201523561789596105041432563903451245836979150877263764807937994518896607189563160789964047899328127287402755229231401061337351020441023891116328851358650140855705380838440581049482926996183562771801615184359654473048903122179644804786686705105401494294970889401081870351636910108508287102697501541414378185228453497070952449072076918514976948174530470905719677574198657737771860970732995178032438983904808848141954868018858527683211952081625533154647308426559261593928548026716039842126249502750945516493971201890920521869017378890439261222110712427804197004354633217164327205758485085456304978696491087497347674873388952185186387860360440670877040203708463453315822181334299795806995375445576413998368712117210689269890336471250345663453434998083953283696793879522816611025685714705805558252412969175889683471852169382660130429765496686000662305514586129841056950475578492925893025921470477517716655162807670659592048710503572228823210041560397796646666396888521694389120423270505211938968744441523209643676023914759360858949667684106837494093574897500509723711453253822664128589388384649500076507444191410223312474376883092267972222139134530272923524285818228603765491907085816897408658787962759449041411780765415306843260013312110634618303952380507075006587728592887366993457011933916654494994827401865281683641182316861682391332393765543346703998489922076944733708113702071954015612120690635388347432477233405213604794874984283898049401192795486924826682002170344196480930461897461578014459895159108509440437124471636352676448260878066891476675356968971283257876031862999271207531432940349649196775478048015068457616366337329808222086281027782650019592231563086126233368901166025433597557058073122175040445424096105173063061180810553058977329021940677957737126569202431367379129800936236380863839479839240877836555149989908200082517555517429635836542917060205447860792458501977796715557682697044182746914800977738018461055896380986444359172594314065367851176332575260460676010469139638243484780644844372440039356324613345554133415045451447171834804265866322008829527589197516266573523265129078120036136428589711132557702386248968002452877822527720876703300274673390012101931620435846212854559173937544829098032150961640818749721005767829615401383443779576365110957700827216829923898874049923790789697387237719176433486820537397183756674762106625896917533595232969048499885692166767889952118983500874887330612578488914571952294983706998446198133320506981996585120262435666700144539010080834819186453328567746697893725132858664119855614967702721179627407806750461990074268517563870096433371925141037638943469157544817351062691935896259564254823547770411630195722400298795661689293331842938290520088830506582559236518159533583004013377313685966196139899291089872021089039389771067993181250812592554384529609430065494339658758729316845656527907948363236499351729685246814652739630352181775901777168270905702138982718554858854478859027677535223188384020507504404035022186912244544097397889511806176692674146910510325930144373288976798982063398946779046619819076248517054034171207126290997208636559494108566728388711141475397059016118536996583180955623769848850533390187754492176285810391020765227716066612074389232724790421405182781483215900207592895732691210815833392550507779422398926516658916192625204265659585705590242005628577114181462581463769432705648620914943353388013044330121869252779763262536181207228799642175812969123625387802923844083295388075853096091898296353822391768609391496007540936747143786401847795055399083671351174513732001686258107880537770602024042895988995169502739866883949583503111419503372378440307903789912973941627543541488161851747194826496219859078575511146638057035520439173390578670137587193199182548992924420363984587459821023491347473312239614075741775207036522152741725759263955738461546392437241676661601554960363307814275218259477467716737976848689160403442142651764955319132187361444225250123926917029636996588671374769972210449694345544552219797429767495836204974257268185413524936394481643712979246684686806433930236264580614165580420853401537404133194911595448972489027951253048969979149354113547276033876886580228814183107877456632294341695366615091669030989610227043621519876551358624606283914856711515989226958603130759597700637696519810085962649552887625366583646704349699433921240096612522700708265280880925325158226543251328929213810287378916461712388972190045760037293465141932374729950749281711846792619708779088188147789653453870753444632732151607845815175059803329351534991983050614582656345749181391953822608775707405247421562217779902755745023656797636301623030964342059402935664564660528305150370364924527667536893841884969971471170474399276306968702751345266031938784757615188431676222415614636979597078520015832575430395079328973866027386212302390837599646647915482210654662673527377228645394320140198815394054680703784974922640031069792673267643000489268130996258333568206433724949364086276916195339691395036574924877676854093023882080580186668094639285210453148333536359750549453577809335769434327907712128359588301512291226792806259582331043070507935037059827928949381758503807798092042978923793240639529192761941964914468002687457334269525686466798256252300551314405979006818197499177761026774695854765447813562124420415652667459908730452473655150080375388649819452330833596422413718723830935665042821496815690332740342397068160000818310996178465254305664729340777700196666312207500246555662434773240771477635835813939004064534543284134095037797777293488446557267188152107065816399992100813565854391584551679519997053669097118229269147592116480631340419801530129390788299004452129670630230139081018280317900975989203427204251560717557155972129692130895276212945561301973697657504570398250671414950420924083472893357836068872665684306302957390976972388817238681602321840881736998547439829573734856154907616789266916435913100349463247607094203178040256552907451802006739879968561392145773258472000494694998481489500045797378899559604622914834008347698467592227104007471232095693915733252363694751531551388826398634893075066914686853060152784335178030160177158868774264580941283282867687951363032669821609680001642075496184716654628272689560477197140397212453890067424344401836683635941802675498595001406842993245632007219197811868334820313482377217879989517072038254128715605017400943179983415156030504773946178450641962683401052127472268063542158715843121623655687294422958710827117774644135402780929167003017431118306728731880861357992261892329717540538060921461100429706659121360941014554239254641226252255114754583952897598926070317067807742518868678766145737018403752397313261116718125054650786516057298195487322442463141185795666015678105318038949743593333497090538985920733954881662353284688569370239347152410532158844155149722908277619819079632107364615581708108717569137389904047968287278557969658267661503153101621869213074835289724012985526866877146300444748398589651884066570158600222330505917199137618363144943480073018997017572059829896686215708296394674859484257876508356732077865068840504464725515513489629349492751407964635559405862221649670144926688777935699957443646490988329228801761936419271523387392568142478263635291807388575229215665970737477123768930594661515551531421302321191975542059800769246892380861538498683297656326269364831659660903735226941379098873469673612411577355138049623108573997249366671364886114671975599808305627453649241015600364331371007650175418002308866002788473346469997390777626164814797064810658719555474685011917314786110866159210911370458711840697346015248994985009906364857301987727727577880166409245698638278606687675758820416824120459750897079266693087087861803923024652815364816078572320941781435317786316287470988139189536931762816214643605763512957952449116020851720840393372085148002499541316680094481458823673631484506535790760741466792190875774403881765021876957753881460654191450022875581262348570539362543324245501869867841523498883385864384127844855422558584546424222177053758378023498309175936875432393430492179850386469743514609848892258042269247390015592267853871718815488590437234943392879400029039978091511652980819164267447125305265655133900414731543458931845161297661716021267815871835414621450181218871049204551936001295340073929798382868182384131837620248195861739684376999175457980080247700292031299489995499614648929761618044566723165887319397058820894960017395752938414154434290242203343689907665283487413991483955498873180469676915405358186330940035547271001374662307345374288330729537569430079434205720068740845693362898039323245385847493019884870706134992864218998831538133715462882098102274928795667305009434545720019502507644979905677232207961800293138254228438353036468148599683142724340491106000719789628706164468715520628364254622919230606464383956132893495266001308862539408016660890012069819313142195159089404927171195383054447044189859815596583313722151935745710718087758525920810353675454257904914220853031773865939930197838429014472088022123569192272496283057487283559100472560816912821709995986587113680300258582526916344753007366350713238637655149578665423940001125743064695154964068251018655015780807296858376529090779265460157565063646240538233563979013930858659124821116876368340860143977716328365121859647438833483954797888170763862722710104408870614866099332512107320735140917565224061983236760686838230963691792239300230845676144227867574591447314598071181663459914284803951775611326164134427326715430592584327338883175268967160754775422874772395305541620689468884075431927342409048391347049947368215039915834310653500483854396014841815011623381791737411346654426787212441146618379322212812119473320129322736776225348239533262687281734753353317785335568686147638966755947862300254472470615328669221239240563121834138398865543812106561623143137114738155852513838145587518192594390201242008895169759950696623174952126347981925942162939994744510549404046659713218714329981588606849482404597591900447036489223920414464950355230240108622358804912305568458286865906158249633918958820776975058192705697991186676589747738285728451278905986864147521174795925218055251226382109070536029589743975256374424820548251630774554152047339977447320530625755104675838224058158207202663768148811664546525410154581958696894402939090428514114060242664272399307230106807695220712748566716391919538640010813921074993506912235995720736770266933689484799667276730085530620200085298053410700387557251774227942179032419971046001111930332961460383336176194908287948836350102562824548833819705184497637713011389530204838765417396483922207881130420456349559566677887831968926021623663564084249970967773161845870286631650859613786980468363835122391472351333149087047022248456331652119304797165328420030721885508721009474855372167312825730331014650661717645644967786492694272244027163917054610561151877889437674146097867230674261527556051875619328841160829977670406218412757989389458474762037492526278683877802757313831139794659086255586451095085110952154209026387648818402564179040739360474743954984284706077484986972528089618314578228821439262065803726552253664257727277856161169958949619067704337680678520719184010104762887170258648060718724241558725692621377326217626029806378407406896002066264288048667212541165290692731021978135172154542635107673828315774760718482611228399970701038157073044775712673850047166264440647626218350211722736430319680835754346371356918861885642589640671687024748199721400267780801665326850171664703173487061365723220416873626404319515821712865442637095348883402761052899779548366412829359402644420565480644135672269254168045255431522100565612723784150308295905090037740327716775537972225792528450342000501740302657640093416158607963006627642111012029879406235874726745107323385733464826463961161532864279839209200368773283845838082261350295824047677126837764538761384620552874304209095221733253161485236458862646677794757967979334063720560535467810459530855886226894311365412745457086205139803680551575225233165383057914862215854560283405723537134971813059193020224961891751619886512664658709945292815190421851720944678528327530856223715112849871605218835057767862380693729933837795962341127397539214790160999260611320227497479741258387000494316706182921105987789619814050502357757738399402381613656794132670791093552725073790388977070525858766400355624702484688616283530645892426964913768336016712083632953668239755093982737441439459724351051343240058139143760939809052707756811470767023075574096599091810438146380399602266172803619583415677037345415587464006313830525374933765888126762718504877892662822738620320140171428809466361297279729424790861667438232903854497566063793883285464406346213894861783135503702395532097239372470679940635010867667020731381046516280148514030656801384831444057509089570997181577646195836329197524534295224960560781329615924605888701350570696540398614233915735783377669076092762670946914671143180831363319632922612160362069574623216695532959298566847984730031568123629237366779049505611034208425712606917492520042672160913530763452209141499921772574779649741337363829016126149512545811934231035946517717944555060795996580066949587735386915066077972263846425935149686575198977510930710929593664988354245328354716661799802095623752327532676656904283766214879976243099749363318097106112362859455651335633842801357701255325341836501756937255817271055615436727657725576056389611226528579553043648161915193275311293848499252753560849413769749478300571622299656592189114791000227745583889055566357977184680845691393209539613702498731043122399159642000096254824117240338817801963588648446981878927573940221125842119250832703101603470516193949789736707057269545718271422996822102767160352592209213657429494354810037054358020368131184020432985169482146990876069104275242368993125557528566792424838417718239579877434670347325879547948258523806239527733268289083731732713614925449108909980162427418845721262133997240469218186876792195513320356900115220235974611943711694533865596251356527309158173237126277588902748372847509700288356346723304682321778643349995538586119360237567611012389881313669158164947114569725915287448383170838957980559213708507137037343703000451277791164920867989676902660602145861789846379734849428376935008640925661390589037069908819092358933013502597851692552133257141672328010510738134060395125025980266189219567619648969361550326180726606283361446934175459399128982044894885304760845622247525467730016598542133981017807230826084856974926573874613225907293742746389829146833465094194905001707732514321830219038588003846249947408921302558906567697264560629664350437157526719478805437275622714584642213952875605091056041442189150927900317974306782968277827527909047786890025972921387157414429534217991586761386362509864617824018145036612403451046673574327647602171356654220072637475675939405953993633588361654703678954225728915682371626461492532768490887513189545326222909713558651244229656047629448194828188580835327275978905665613393594091110884973196254202536070871690160322900429500830530158037761156365556661413911256448062909806680233701434866572174053211861929480685683180479888237139268328604213476480039566697380595772826915238064419253315708287462548453095809636438249036523094021728813064711427254400342746504006703886226668820767291039389550641416459919187517599691403983783735704821157324296173451065982839753864908366316762589151423286552388383489436973796297931734886674115912007558918153756222077475476115137832528756552620015550849838070120539706641902710078407850891539888317955516398697808329066761964964725529122690095002858223523672943864343308770207865060411665249073557325511944810702430093546220037491949904144986035168741566036468050960002393325113570271042027580999456304336303332787819162238464022398790791895598404135771166107065115721357592934294580392830675705176133043517391277634651954115590844709577191925377312366422013127003073803275735612113982702816949117300455978622476792355403139492907127935096731417962037150002596589637850250487610460975192033694674433180028016786219230768545194091998540353750207220720166859414027784064221258219022223336871524975071411589752590826731472939539833608712133891296272602393291890191172538285069562042962737845699813752343530259029798712513761335069076548733545658031961679347778547747392736028793466878972829212613650104564210586910285696386120110140600556376561074660164208787550099974088801641409360635640346161968144900684231329163946806123059213938928552472306046855203345532461878606759016797997535291586766491272849702263599385514713869671442681168327083758464541842410165046010925876190973579028454444696487868734263068736258368675896590219476878400301308365598202715349445711633955592829749868706907968169372150253402587617060882329091020503898922016992347696738950513630532564986173398643535187487841657385461857382673289061274476654171619670898893543608037613594618157434613721388302238809756243128710453273418964512480225666237279388908493549855899167088600434353408486455065401116335338535821408836355090059100775745949026554538980632839617608194892205840833865360197644789784136483574959399131925058681341786204970306220853832843892854489496857029715974467167203630500583974674847029165474659917134311929381156585755733899037006974022063982583680712389838468153440393377875031033597535570507511229453460156599121536337635941588284837492900370590747185737736156168789455009808510588017855861140082388413852999765304110661370242828157992694659838007847099343860033589098149291674445725532921352259763362281011676854055682695031405676296921776146921120068281610916351891410626575805842370709043672067193966772151111227601666852077957580228279127850511813264811683502393635148884546327583163615897797875749996142329227622009647061253307097356049273369087351851716238553935357038129550670216224933530457771544660588454002445194531298341023929518961554777262755283358405706009292105885839347416207899014054605363613273325395151196083342184659782187828509092473620090555096335181663658124835706759657446881347524427066673610932020030741658980564805403333021548425220446040288522494705725711038662829710131301071274471192131220407175907869757444530308774104724163128023883759154829933776563373031728932148941506354555329308251383322285096470188409375188528572285871456564912074051400196231906356139185549396904322192144303911532603686882592894592694384341061892549348585607559623743386557651281835996296216631222847585100704518493389840824343662688228921422195195045021543032649654491403600414538402476407525988725918603970916304419191700560067049615503797540547846055638255810498824913226913011823161139596049858900799135143373057630913292514619542874114120816809266576473504011052141206124433146969198984801294054638706840918086580694993796974887580717717778288408985588508205823867863618731650152834824544662488488906821456090690442174079003692948136639034244446392304257776010263748283813565340394970967743625751932797597158395535077161778934444479344837907313513508724235141804076566118685710468969661555031008681249097157274127434860335478649659233161972854092623385419639003695161975177509765566176448079712006352818705357224051526527822998400023097705450920685620166153631581096747945723714805452981908053047876860070518602850260983238888768431274992741465125188079085024347331724218436692723570360567906455800680953313519376708155989632256053975815864143135976904420876715068948748668671090268371829531622343880190964692841694038668259961254340735667111475111482801093556723577167012080685889419488215237906917039172913628169126152089796056111531994408164145086913485009173813967460527420779111775329237693056523613706522060088450929252045676817088030576228299647783850525322874848283429065340437844591711753378987990941305285991714616614771700345081044126675104975727294245600014128463549058322272090299411657562208186558563402033203711192184392902795140353546668349050809117478074043388006677808559757464985702869333654886743345918699443465242445284423438270118627332483162353740047000368313001905449654110914652228204132044315171993618446399550552879457811189535838572850003495279125884478417963436433492815705857832498638475627122014612517714138778103056822848852199225745335267369906879147527242660220072980437327600187843819821867496131950094948073628663077102674587124408877923398921854720152098741005644017276047402314934024607399764873184779412531486555149943040972796938516598897515979368020885288276777620062080068499430537454869162658294071102172535763491754422156193987991974514119396754495619668168863357873196164577688443354973561417972241863604292965592337151242865663038833169634445901555392404285237081254990848136907291209050548226325949901046519430671006988870528517795862367653874162100856209111582407559103969115803210448802397228891988619428520778463600003266560439202003919237543289216393613359504009995494908751042292962037482391358695132014061619337107729755324807522362293908765048601143200009500769432542174069434600038550284351190491445337387565596518198693508652597399813748968353441959188951962302624155686107400456590906254150958559898138228008721143059878535011906926869903942661885414127105390324326352626124994323324771317360955453360953682644097528875815480546503851839678761737129463545434402711598613017374951654892900757133843614507248684840682607213940210416677713210131669700701010152791873669082181918427059636782586053272477067120064839855561079953290403451157821045671074028436227733996796050872846182735303218216936023710512490440244013698113701641227461848561244058851093681835615851608763636190494685110471807022558868108203066761079436917336909151460541408325540488215744872922978832066566799209764294476314628404872331221898764828413991680604650951211666659478946995519073470814903964717415314001560236383983301289428299511678587794722849101864888449619383737681513652474805864282189272289632416470184715219029571749525446894768836305656782651954455618311424233554806770506452378032860416961506629553414470842440474190550095200247760598360354919739590274878201413574910185350588662727744799855272000006764349735695795130644267591282280552000465811926411086314126615958212471752253942940808355326391895020875281461730264624940223031059950665307505804434543792387790865302515300698208800793244853263057268614561279384168776675801727230475642370089803126249408134607907448731264542500572070333475117611030962588434497314638964997812837490498989799360363330783339651905991407064489980714557502145086492569884001519007847250551423177475400185278418459770744329830027377216159450348197668023318447788754495579762493174897855193282891875810674506141506919410547299751305130206301204166662010548239366482057161155894646953366747812365400190793564985584216683050520599544645659524958756340478350718448273656870712701182410302673985371238012348415154900139083593342245382232629764735549138236791217571965378910351816870504440010792663220022991246150574468911067849928435491268866016340934336100659716433582282407087323944962321736481084303809698925713663442168708345527402279276116691203447215868759082872402685710414227458749027687732371014128688912717921122235066810148177030440196712881430744474971037537348804514231540316977132156902368768872501387830107617716401870507459920879427025433132683209999469596180221094468166219836908915566337734732496929222203858142383301045284619720548007266284391584714927320828468881492672237077884542579387272071749793059862351380087703143035507226104077625398633880110483137412297119739855894108036874973579240972187032463466637867251533577045896568801486422101761004987336205061411396253175391304079702652142602397476164575178533340884490763817335456680510281345431274323601964142905097258935886416970156179996802253187256932224532371757361052641041488035895263743373427202921767874774251906523775763691835333873785276479661183536016182118992601782810319774759343372384271584350778302758650850748117043399983105563821968196874954098180177503028634644943935338682821419646490090861162041376866753602016978862451469214941414366921929761355599077974914457061933795627014766605674865142239886424373056481066412454351070105189507536645489192766318773364434275490590369170519280361339726709324882540264635527224159158362930460423619813868222870263663017967620312015359659256828899574105233379261278933532897480854157483178928340678968810193670766210641260397527751116848573681362630936377288099993648169089931455429288452549337730616162344258327867863113931209584425454961578313109613920108988096120688684288732610959242251750300457607949358665998852420934040356927559407116101935284630521180415963789845256994072366983339273438464666557209665670616424355020723310028766744335466771527028401744415068606547390549950311391079996543260409041083367019620838267065129745345443971832794829353364290324654107116790690397572931245720408313047878356526117013430215168133174119728895309650760793493507806777881463773584709540887125474628649022095855027520202801685945453814353505532305842548741029548456782343770426149660443751986148883889714237540348066686088024094115708485481754698661769298851414538944035313114620402662745574154651225938666891659493599521799214623691812809322973978670221891416755860774099937610263493973184208172787583987859019474298362981539307206261669588733948875699143988451626086409980514136895229048687842947287690157507287937858556441939827156616096117879984691043163976171215030118533409425386745978405493691162701688516330285917437565365515148203182092373165466363400036586669318659502901264030394233907302734071830149724613764428747807038211951709652132743441926160501711718146590004945527379531420826045497337224384646312967880272308182486038122873193599057035498252975674762756527567955337654668791359461769004728431015341302955596570239779519012728666957548620715946082153644811709158418727376786840589184510019173207190053470605601255117261356038676302338266024527292654985289398361552253599905328026100830913480202375210885240732199267844608325935377631021961834549679058076464885707589682393385352441153132894210486729235426298085476866184801174497068821660500208632021970913508058638961695995247707891773969236636146866739130875281761681417121245763902271298097376819363756042799991029203797086041245346592471218826830689707492817240592997739776159900658261536601615097768606118492602922224414905563216294901318881323406686946308537887660700484966461733610654248171172784480214623072920228680830173596161923543066705938811592907999490552651795060762102648133610332735198759564649624676561078765506441208538711908472878976481675423304838236222061432462335277517132664820082686999233664350769151742453671737557879137293120785418798923080853685643437674576028367875255347889040537430689729092949082800987460603892800283312118188321817039510722286470076477117136886907893964124102869597908328013346216053715712388114830693459829900819539007040554788738316640461030266724587552571187787692308867752089458731864009383654784001068683677264972019487746602703443656091360139676540807474923425751690756782124986939747801216091963127815341353292138695474456325098194772477018499875495476954512253898702286637695771576300781143081791489772315671199411216396862765141443747612045004041645413943164203778214959293147938520177564203546814793013247398362415204972747645958173792162346971255130679591141521136550269162469321692388338105099151856213057288551384512626291198036955928392747658395906555287514039956068465645189264971283920285998620534507087706688298216412089931761865499394170146616742925510974368083749970566774212577543068350645329492817035343748216899223093785933374646779334415903900437798968960461164575384458150523218823022719710793656230492810846748676840474259908069568145758892286130020519876775669214439811336175909675806856323720332874196124854276701985028841932859981682213471493009253704540318985066444565711814995311953094586415515389674672153965686283904411709027766503842169772231077870769520424442216829346440369358574317095117417645126929340894394483271652742785277285776101949200754332062319774106661014485356534490526852289451917739739198598640056071516776646017027995927053576050254396733633097070493183312043735228677301198446451890378953694825123714585894354502719945829100308901230492114494699069223548167947747120511075317615500992227849254721277383039631755758777181941238350971071213342199283568770582065130151377027935438720904381561157933967559934521597608170264288597967947772175087353622404490060447537567143509952220230212558514022671012269476781272174047703022406074781336532954479769430511264459459004547751247059890418687638158919279556860076474066636637064141531664477122075833018224828891171938903619506524084474156771277193309701506526530753457445181817341123132954027215256910847611677133585950441787929651069283766618852938402764917919376579752595315453492317160167205514171524593001959646957508362870475445836749747789934476607661261407901071093908589860421595174660853374049610135405137179898573829642581989086137073676568785063739520377176924228969790586363567015266835882687869900826824378029924434604664415799766289009265421676501676964446675352666708060623535235209658476649847469888696400345882089771384073785889250426677675305972489080258819988733267001180460510035770183850855848115970778555481285056465992367813269332003296239339707685000388248996486078818511708498103480625065446845382107455863990335494598285049522713881670709663767860493070325812845434372989906504807116759091216591604365597483926960990626203098031663212761974469632470273938908590484468132472443516018105650947752386497561135482060440576472014555763683092052554791659733956627503170737806678151142144020363085607939462021925180052236953910029572736102191765996528034617965767681728247369400170798265823161131690046051414041077751515936790535472026753902046407255070057124148031307698975209528931531823826520470580950476839053175052813230838882681347420876809800996598038388127897795314781782449079447793663185312158496098399855482996502306031058538167917765478895230343939007657336793631384406001224214735995168405021993334655342379208572110279822419899576819444611255476972223267546884862499648954871517783270666535733419924666580288809576720289864322874481467796029281688384308818245058842129203971496055292973092652116666304731203231051619087240514126289680954251457676766978800122271632004928991918651418498750796380799608720079341095408498320173675799048380000920867869899430408734443080506483977656567831848476455001910172846327004309264105399666388770997939208762691533046014752953227914043000002713022479654895578960161797774395213571221113320497175444072040990906617787540079194022869931089823456639221379645260027499981406160958235717903043700321727528580863622238483683989752017918754750790699240738349972720542249520707794203333843181918639232298730522499754391750528737024385681168464153733300429967711671066207185934694176989036535646217272605163869244432602090049992186389261590310533050723287404272594920803198085873348227015900381181635177591392300011445100231970278532983469400793783489920416852362593965852256356919189547309690330997386230206217464678383680405132929997584857718478420855203586190960493433754102079075556003056063494962429658523065571665503293110940763353708693727445617019381331514729972242573175102281910673653163734197827706633234137751730110451318766033407248555318681315820555576832734928032467030583387525010519292398521650401396218115785086659426396047630463326997849246646993545194030823458403631896829837646315166662094449601904014259661046150133221487297136409822173681256378062787811796693558512693762920981328959449758775361665688375698958231997495108848848560784862587648477660248763477706212981983093295892329856722451609787451578268576031049840148318172525164235085403127267584750430674197512810620412118230478879458630660548606595564155301477331020247174295736426337417667775585645941251838541839044406585704962422273855439004926584630967106014787355513584915653376240551460456019345317672093616122005106951545216747983942925542045360595981667298086853145662964300444122527394544147297052720961798405348110057676363194830535136709262881594149932991756716408759935284623264783765539292699682929033296843423288645755205590754455945978881666720589481788075261137961936935039328640488307402586816793192973822305172855263339362294892783348624142036798483728435345268442829367310990264875716955312943945025842131106685129563077786952229021127065742846934882269001262163468293021398098027553416763964215284227238346082423712802248048221720407351250444336406144667887168864730278486512141197657390182187635392336976860108321991834620998663682673968017312823564857051396898782954921589003215288732020320621491831352248529030233596211926561575848306540400511002267651554576605227741329408379294999488147258944988730124714354998906497837695050785958751057043680042171310729476088630172119542465938874836253851149824910474417899892830712947947695367830784190009966367856223243329315449397295000686360744107615113270450329138656358718718330940736544932975094311841506658687869587148983802474599328799305742389771971800789880091792994209430530953254832032004607054292022612016981554331425915797957054825025543621493687531592147237858100844849559777874667917411843999209264248870859889169718588144932069928029090546917046145372338898210315505928690233767417621491214796866742914081226076574900777981206183280405746750911010637924455245782316485183329931650582193395322914429828188630578512012830959670608440613624453398317625448826529359471419570408029281709762552135079637022201663751147189448104424607695761308823980002131306421676147382642800490676993068808946276746069141127748475233828464852070977709799986200543554240304417897365379744672562656414256081144362318145119729539893574289369145049999676719875131532771075149773681049813861571818840208259381937609849162335590100789605832196287901558692782862573505657831380587796272451266591055922968867108404571533909591327475931954721894923679657224074220995327448741139766661553421726963223216327322320577663225380093378339777643576665395943717441920517738245972649822658025623486270144974574720571819971288394508489784291189645814163077514374400806289192898221517471004748320517631545401886388986284545133511391705715495961262599610824708690862420888782222288138905211466204036129275849437446785129958587560321717368896192293638532239887495762890535563833448870111113641451138801414867829310797821472295805655349735755363952197628602135008263441732777585749217804929888183622117655506802248577552593166562144706821806637782254529755649537517262305484038844983904710252483698386176946321777319934180503204083732580385787482818806900466306885641632484569550310618028707955372999428113239119583708163817859820900376074340846220022519029772640869311649621975812070020331210270749488640926040732159748289376299475424021207655540274234118310766614407929568585770638788958425656067081045867830915539557158846387512845613586384738559539997738189031071358468691415649492604019340818817500416418905603693880884854823042931530143456943228540438137590311751374072423020075366510830573469473373235427190050529217788280386665560305915745974824183677780140215242825482349463904164493306499498414622839577822588543329853772247255001750458935491794560362843954746819521926850455437659400936975469018570523184622750853482167664266872554322897109770271738737137621689294523562670662227903599188029447692862893124485525370929766418113700620053863255478079726047192171883910801314153387349626882096865901130295100023822878936439178221812584420343120370006244728233773138506017873479530437625902462335293311322369908727515706810863936535474691630241669398043766377078882131097835827218121774482047633255786501703451248710577712784176067081853120640422421339892166682634728260894715056982281865134541589703718131895966584414045156733089470868148098039200533102659194558885185194175997165825724191662293558509027581981407828458969662977007176436541430181559246821186288110207495422883770271490562863730667733763019647813499385708256728635652310303194514272143867483833068352837902663078055630650372667200378748435804807568068775258117587405077577467294805748860338688884955153312658111426799787536258413939606466979810649784766263759667396395109603570679108781087616351040382349523973477616568758214450820211731861303367144203861838511621795727800914186472149472003885908508961707015814788707112894482854143441783936536803629640948752141503418550799225661388202640775627904525144620765663533680461262570327329972900052693229649282129735038051919081056314328467258330768346984192650215490126786141825119616354867707547796940826001998899932837278702002945028873155292260533810600054387322805924155943930407142510750754207698752383093918793947957097684468961409059113252772811489092542879214767255521489788680073040671707257330830562523679420034016391077255427826105168139978416152507997105811809121691135390904367107883713147026484960628346450703846344742595559259023023131129520662774583044800462364519461052895389012227811646025928747935536182950277010872321757178347174106839993130944654322645261021582460160189893262483515608367717866341971830602550511074272790922734724297455004965989434323913002008474067457994213898464299558383789695273290097176497851714763157707671621301119970462380143821963800154967904649900125475869978921569710166376816842061791391245532488747500654644599405799138173369459273317039771025196692653221907165123227209153622294038659291703564967018183790530764460885680380046687168831508447320946684651827725595961893326640781687961855894398267776866105054322136533831780977999693322079163265768435036010512386202512078706156845860007053597642097473639156956038565695667369243848426534824617566403787754641643542937373094625925474643186829083807902715942446443574104579267285131870319814104744601990615682436601683401344819896558972579547353385882058901327052920890546965364336575251773393215647162030543697298652927506073303365421120831251281008969436576490858156447524836383582508928648737318940957635866876156547051880060547422356962713741090157817897134385629240105691119650469573269127472669225992514413753187194392160827928804025822114037742078795515975764996200520233552320354673928349352365651974920216849805816326484974552813871439136070925122461956691915254492200676435456073521804823490206558414879600824356973961136496518352607847094473699571690268911296382498429511973750669206503075954006995385384955393718096845971012796805769205927190285354317271242005752475937155432413941104077797589712992758332051018580523020547552737201754064347793072180702110510334714080127020744405736984708240532268719783486894455123150341766808960614852072280105906845111518368119223397938748243739855410798005120129600272992349392607905295026677020944174884806128604821123867701880905382246756211701953708684205025030657875019098140531951054295935636146479569435892209780443344766920573265905890823144555670435230133662313412791947136571224672565930260135242584473329500615540553264950678734811794124423022232125261029477487156301051762920719199702634960732284238020787234197096343260424587726823698585117682469293112377062358557234820564285670366302345246061429291261113765534991547158289787183765149159799539648473702770316802853344827892863773024811050772361534799363541063642686869812410143984239831107096474817163850978061734337198926602251542490268193788631542624641637218124113216646440644366227215961299651872016629445735883821802681422975224053510757637607551647676937667594613137139558877922262754296205950398818015854616899384793850110965027400667429266634630710211246516644667369819738296733408367524452495606110315619642069611435362579019665823796028195532358483110212919917127304533041051903355707537382678193318056187339109479504360411330453313846538867850272053699122147384655529869988664329198452215913065390947777704006708433697033129391282040628731415047050789519150018599491542557042512635181204601537240147254047181679426549382367733436460540329033534573525644394450081522909134822891759223020235258005257335331805852840604839604340275406223207527036905280215324398110245788921761121280380369650466768813930185368017865742840466509916822974863926286795939137188880076116869501215051213752228401346558188230147284729851800937396613597001162061970077506859809254048927585342150659613486082632263801194928650257406325818307117453006664434341966908236344221412328995204113265665785980382695911347913526797077960611602393497765337485473804518538724929914848526633887041203523285911384874713247916564793995663000542842149493628686539464637390260535918630254483776069857104278059778970462818949191301629172101967047459472335716449051439672799367182025904719420975083993567604861823609251167066973892666950921492096424000674343413106172532960193748846751264242645647560316531454607166475367191834394654941563055002922380128166961422436716321774161322522826034628765767734110184937815210599237554392145270087662583138599415683038164882300508841529610558736895534305007607216035686089308011066438910942188755809415350369765652275059564909101564222597800143391774290229291399979419033733893608663937681913484430543826739306267855181903590377089140054095939043638558335303153977349789895752123290066043365840951483304371567185858767222368215437405221720082809396908987622881883480760614001585060467035260885729917031835699673239116973195543246885487700195917798285003692983841415012738600004714916455007853664943036560883666923046355766610140494110865405490220263222213664845684420227582266968548709464420704724053383104592955211212329732411774617391264669010090256088615697813488280173152292529760029522555996800244753922635018604289499764486814529180118760092721050231248187053076728717085216733006016963448815459170443963563607310345346067885607626202074639914132010855913425436904468681021281518612886068300671655652204695591479816472417444998208607085905791869148144923333398317512721187081314150872617988020320991010589908148260153551654990450835697662052848005273902075149720135675134152537685164153940383461347988712790412532412419370894267342117605482624807907287965573907292895188054217301201511515124371021676720422724831672146616093015386198234619012477868612744060747801091118584847109921530905052238378970577502825017898743018341120396190558727254195772752443946366867872290656404564018579704629304787033084234242011436627010430014660220226265086126676232464195288199770628063133551359747525300609781383753181394344492199509428011800627296610815005310828103809275798416797145159884249077713442934687771877568656514267300374979006327701204957574030731496781420539455953970105626676355651210040615179151576173507074290979004558134256864193814630126271885000938772564704568105496515613455303892883266870615856806224569197121162284594412488715285711449022525110515466407364770747910044299114487681472542293328652806886212879945374738634492221064806971266583670525703492618558264311673171496333836663353844394018644982612542981123680149258093362804126124761939206001011187357481883415877244238997725845452989936267077529889130874142789147168059534299108028568596429964112904160991812484788080721588607277495700801022379540614054145570856907473857825622563613510739358489235376181093646570903700121410595613073803219489779121810809525923419244642228310865339064021103203642496681815425996914826004788543273539754942213888893938872187296067583902247737846768826581849432460225128807569755972236403828007268742490160017616970454417729628247754866039736593196461630991857476809688133744772057389154850144053563761456133167214292144331679109735058173720066455669154575208785969460538506554993491565205073816904767306567429968668354362102989267008085026793381266161503902931205869965325950546234712305221876196492886888312548630130902605265569618037817455293723015765717166773632544560031778337072152737276827303731463958062415425580998492397751995499380190418750940785175265201569779421887337778740241485882143511004263496130393018430185228908176364016089014269323826151518657207165229558321510270395452643437803912891874927726503916234927656670467252390500990266676721790925679542666471997683041171370677098579203523217413323251992850912890926877466187678103293725039906524357010762839006062327334629638678868219854962117402923820853616022610376648422886310796211208878614878829987668672297030680423930946989409557095432002068777955080477434402644981204833784701227635631223748788907649974572201720977596803831103234295123326918673566102201046228386501623593457599836760143182656928747711310091134081654862351684240800782204792014721093847411040746724159476524811455275119861995620085540437504968745868164371750208354254083283435713756364520083048397368695963101658641211189005893091150180572088267994256729525324056674267914124313903558840037449832043459590651381003780965510444346018531784407568315967167159781410372776191434953564956826997007243052132576024645270454184403282228900853356390305734746977981845291884595006926428292797586986448284468342866185991793601170802280070988985296114515482467794128844962746950123817523320630007486512062551579717301433379354921848497008325415743517511589202534858909714935385572707450546791618516980134310837780335712390078447126329759476236058322916395396106573664984168621039943710239762614664215114432953789275049063383199808500948063189811962393240833347865707281248056491083337364042938734932836757224259342190753863642690954984042739334952564923242292374625419322185097437252095870604518725025182472422134725909133758872633999428593801804713793900807584059525971672892804627872599823524363601595995850942892543479387744200615614854052863958899652843273473702921006226786947263254556361008969903637516902749552149938278577686107672944267953306459075891112009258041711155418903915421327335367206727770361354724709725657179897359341172015803689038087063501551548665234245369762665931707832706642186467496664567815121328551985579037824093021184984671869335633455284929553810129253754608523665397581041131168547422213455399234263931738868334226722856157137207085493306202775621053285538930735615303010021980467984913185007770545199996894362557072936585280532667379766384943749455241760098733254536501960444842840757051978313249949193553341743386877880454362049431424539716632147702112763710717584015497522165319175455695803046306750536544096577702960907402191161184380500607914768285965380366552441847789744006037866297339115131243507695520875282626006215289044415416314885719958674412675491106096664489116789868976323533257149033856294929424004897609334901888691501716675005286615547237908335093472053600270784812897531916084677431910386653663662395996319712066113185150995161241711117630762359220379873006712991965705239537663055694825134583018192396573397376946427124454350450986055599062364135035170228003191295996797672122839671276142355510262197470338172744910551701858237033159545358405376120841112313829730329348974328452558745933016039239427383936191958204482019672169403458323332797611137101812593422511905116503859737048025819730325518690805950245731948523365853533858789350410256480947507966992376909778388238729433428280310698388338117983124108786286007786717604444320720841293969974850315197365662992579728618275905498037565588808072562386077243022090379972635260099486861308463714878515659862314909560591296760895872617556036280633082195098222454240331071349369711282469750919748317425823534244249128344120914694355926848797854368532217123426436144298290364875873561563504429642620230253961700244358413028385276448944277240781765646721175228836402889096266343032449223584276046973142959882610055789927401502116054735043025757561803838629902457888268243999434509687945964875623837135834148233511203157443179305732551585704571692786300343840027654597679973218743479529828009633971515511459989032840721851964807072906225059077713087722737356046965001992523620317702266011767727063981058220718744240447974391205480588774616522658564696471350869024433205123981563953970850671125558895180501956245831737645720557405519317213546141935638603815754998507198824797754027953432375590934399473094239642856609803462089142665830272581250297259492255151512738380759085280060189106895125000811007857416188499314405074454968217060148077626270096491507580880865168413644761266507101367161414819318999852623839196230444080084093288897787305644874843437988589602975169380623851064835322696512838050516330777058490152073800220209475497226460212465177543978829543953950650283693306173554497357201765439645126967352244591479340099380022498127415461657420241019377059776928502296413472197217636943892003502757298830504910384083324528247757465815651508976099405863444146271856091519030085571870829030762482833127944484425073224614752720861957823549744306897685038784809641561369114351194486066529889953468886311466841182754474505902465975399486891357558197878455552165144885866245949182526856817464954756248267613502974054075140082050884539271182852018485171180428125377207815078650127769850499198538090877403934352394466759512084603010612011240382443003451736316172209726314629571529835572904209002164460162837628822663389446078240207315455879354857269730205108654745239516810805879424365415172936403620958945137817349720077799446392034221545993791967870768851499823085876144703560784046466997888343409467939228697843791217335493881699317402453054111927257622420659915125299319295541236745993856496214804423930622662126627529375828048700890782220385226325367422568430715460485599080505465307455264083641136958713914651606786235026739254811325511694856610431514148956772637373375556552203692675615133034166292282384316672254969332463528629549873031114765340656104954699160107836390267814190683762868883395827089887119809063116456065871107745035264765085429895694932901486867760207669764696092307318507846067021488825570803477636780305113794413699639170956688496944041233890938368751629269727189123852675722856051959576112984234801470695796946405376275413776559581868074894976002957802151297766456896045777554044583371839380903710616694016478014320435440678630743758699429288267260477368070285548655904641507494117783136689511404927511055760360740950292498699594913206952370056818591729310063450026298318734966062881938932590460669212228386927925131428672132758739656953302566346141480344136048518767208283384768165050540193693746295020762258551267364658183867213550024648548622993239267850184169720962912485606866791243737356594449881878428330216667342427659118168852207446869038293448348496052911221208825567551815867654926962672832367447470327214199139476394519238294950128167018187642735600086529737969414900970449033535821216539900687224980268746064890989326862419531015649808133126123776671002691170731869502529923674518554207016625170647666578589596333023162337679611746073197345899304576458627555921847038752321172475086450057663031155174155015107261325947256992891237894958023148882452056674098089985317131880284478488003628844064790335753165772523007681235212243891304740716109154358537467252198505680686594696754992432855419947698315757137643338356999879268625473558390225842665208931159419260508596939757870449883002269205887211926770884711141206021656147863807589307443366886857189892203696139478138746730313937994688647061795877024762280902181015842646404391449702826163285013656711041566495003706910186364373001620196803901323966957227241300074994114780680799449528769664360827664723719905723186904328238611520948102091942619886463923915507567451777485571657051276655390197562991349491308679320416357989444504697681711541691642263658930857342386059339369956814249579130490696741015052760165063077937471785736319805498012879535863736050161065793397358321968793699616220298792882558591502274209328251485173548455599988520420039550887835556169155739049631278334590270062176818040580013132916581537534520958853812378850454754615371167635359155103993144676773923032011803210685214761155690191646836879694414623147562394807926597054833819891433123576063766541340286353462895595662732149217687960951898060724248993164337483877549322131824067831103031284165477688301909350702337268958582737442761402130534463123021864563493109469466199424827566590483134308715696634231483608767181850288728480357827459385302303519329960548554664512050838875528440130345562953179846203617466555092133541043473858137487215494755713102979365270657961069644639064301204863529515206705178049021507714407299777714336043278398547975458329456911714296449351658869693975360098404757993785220622588291577404041763106896834291069672298670220504466894242135438149390132761362956259250276233952652706939994562258071772458312716093591185986577094705025372445319231120187090151727574958495464359439310326785589876495586131103684454464625115470994445234965047003128006544742960250649048208654288679910266990992636696635796058025967511301168687479724978437488188876704221297844407585617293023526182376779246493732805047960029836672855116440870549007461614952765815176553460370116937092887288771385015247622250354488514036977700277380436938873305855444707163511274965477020681273019399573719827919345448137821071268397958767429376179192009530838849346729870651762437984283654260925426350126501397779055475380499375471778246009802234690441057056469259006904432047619006883058639016905077962278221548979464499393417024143432028391014594358869691644319743638787564725257887709727544821739516346960302612343333994138885588733995755325040677806797340163748189981004140941151205911581155186750417035501598465565958175679375023007747967789220737392821904067217578770765631292869807205348306840461386302619749987789889551035659896029207280828122442961259787561077113147092728514933086576636660296084868258242320686670650810674069012110189018995793508134943853171569366209684516580564629902150612499290294891605597478904420341932189432190383362455414404364682353029671776422879219180069143448639100817213715539499861511423360096077082110291128869782096668119113132705090019301688768900378298175920927746941806180323404705038734678464332559464899417871962565225415177930878481750695148952695469480119988618680101802118049973788123152913019652352003091889403368313600956765685545975813357846806380742153351071232524413165496127891278175884580621774625040768696184426912936238506349411392166966912903731572923650558731125676268190588472273890993888040303605040181281643365738801616039926233021294784423006286991866013298020567090176606583157173429327146616195803467067426623075256243579424318815092650030147347589509768671510261151204246423871521021796706174788902627749525333667086161282781814423420211979888571918984725290257978150762143582939225130458502765966688499705504316997685186801139004379169157021020614056370074520432685593147725849582533496410064706147313726936882349273868083076100261465472583415510292627682912701958359504247890251176703446298053383213538173284778629148226259033625170236102806309236830678509111496028570067640752025308180440312842524806889213207825229465727139659718729817348848977010748541450830687420647746940775482948289639570495571467105133677694318490580759793708665779104522017826571654404011359840272885236752137835499496481324095654284433194681640724668384896069847200829132811292843457185751613522321096472095627628458493861911656801067848947378385233211992675309433470619676864603472469244178852007605036462528471683628945529469433517532301575748914150224655383943754795005056909532852995858250257544393132533841724571169691245849577808224396852690878850234941353247139017261926432342048946333191322800164469263529432872621097542561043303418432710999312029706856639368979387993458996913985695779972105595125051818397307202681867884498951228859056544705688238472608477041155443863939599791487747666998460519515532574639035204181259162948243470942859916373265282459337980823206839252420166753671615283473398875967694510095655687585360434234911962749745589884004210412597168631221778254467814080853393870605206697787905824325749937471597192895873304395403965908376707893955327856318765149287978971376005948942946998368878624753363919128366938004690483608141856262884910222538664579798602144892523668674512266918604148649152323515764580150954636798771963424216926702934528232087868327164475461415967367245977727478159832719789558831305598123041325837333679525802073695598729416685186761445494598200899269062598523451579772391256753393387192323257870039697101356892492736117608254714712381317988856456778455947831803670403798323544922441585332788819090868073597031932484783698827367258319657677914631903024141580003362843787623033769589044034472917779005627860927283835520475888558956652781787527966794028546158696982464833897550382528259389205044475708693994349220310309882236598257268076408027530610500177685129631904550579233291726494449007413209362541914168372879215056243703601522112046078780550085457021365358804489956041066841777950696301030245887816905381628087855291117053734295369272854825189866377446883676351586521793230518983303236558153866714490753668329649575226844238194675102284642774151742171596629699077964801155830800939559479423566198813653067736440918466346925779841928254949032640497855397724945391211695424735893090592996381908085558954550526760267224792174167563635375416744615348313459125128277250739964924152135241626204077045857876827433326925259123046964598584758915567680770909067300045693103404383410031359903874619444878643106098598681066277782051446739497672138430048630529359761394451354772522698711735699505563339648143842332682780931061472692219646020871865085200305625598078427582278739924907176723741185404833029543225215892943326895922494120274087227364502018204488557136049748962655069590507060565399927141109758062838114921585620206918668462259012419554058323612526492506007067979803744616436677127730954557342150458899634291458600277761736759759112056911374211232860713718048742185962069871759166620620978269224154219412277497531277599260373291820963592522228294403190923362849371763689579801313886280300263773329832759452824371193433257563842611407066122658844993098289590866691983280322986895452501437404688512846082290159133255552143239412787593526309084295553142340044446731022749858610059415980237643330424263704854774707858837553668790369383373485468746112227300312699606668728024538846773933747143013529186347238986958568287273374358332565272361860153383021541243684676305390159872806946156710205184898435063169293253012508273578057916699918257293005441919877366625123712480171434028915378944569013079443128923937667558659763389675389192216435473106911865225422278855520484786209910614419240248623188394158300799466129450208547283341397855760210921790020776479311631364459198946386803866983540577513134626592696930292657150183435951019316277413004586282679921727782514001000607302237697179660791575494192092714827330835319281291502160671619496177787885338174927621563644298000950618867375758412125548340419925842966922696517256522258600505411682191915812153648323264724414629134142076530013267735839369268767752761400507787066159952596328816147174226811813230594597641294114560649829362571619741931882706449640563259284727645068559289424123152433183297789987251401269749394745918069536577135084538725892408285058912091723283832904920816221199066599077443284809260085005532993993888786686603693474977743849493437315496347640410323070766087923055228686979877889009356064124794072612977242931045094124831857768040009708312256735175649444331014335945338681414032988085731633203006919285068534651431222162825744149061914250478921067027129286765204795201527567683534251707515318171981198503249445460529497157674303379638155671066756923882763494195669947805061600954697396666030828021549415411851897299395374705891493451939014898521778184029818255501327458246989899515333819323454311529609137459154960706585119180512468081055819276291713709198574497301015545223926125530806321205595416242783304122854634655783115162026316068292999283177505725413696063806002008662840728924683178170214082294456210076928079977301532708385970993936534286796624854849215246497949690416631666642660388499170363447738350185499136742985740614349108345271044708527078432843194389280321688038149904443343163469698478017367397199632084412867125756278330541693049738208924136307811407956111523158697857628648405423739662452207552478178694387895128146320642207823304812453582511553518994647827154072274829011952003502299024891256066482244888796192822218684701584719516801845957221938332154559465324472444356913212052818364378507800777207933999438470557392841843157281389078089620672948334182357414847002404828765543136834172471538596115247979306743599401615229707278298819278441457367117422920530471257234525714581304184868775671549318229505047690066033000338410003447281175931429059887168477610940362555373765228808789265143752318420987073677584268136757362658448061959539641563300361077362332900732454307218154670888522440245536442985929505592066862791686879594215581301228000383316810730825923736700921972705101807351160543889536430057158590277687267363328592906294660331755919614620303033430076603675071163792818425641257216811261100613394504767896406371816775546218588970584194851061500700075241565773795129631326499485819281527092724959079926094464679071854146172590571265984336501352326077602640553739174852951720217085147766152098817988129641884999537846633067039750503462975384151234242294789535343071092999270926718720928231205909913340454384934632571936534790831385034206792102845060616662018267840418073005561671942776196993938178011138915972197481719569115704120254303268727771934090259214781227140283148816557827814634997979699452089567732183948228751281425628822831433101704170892270703346745426567258925437042636006465930777265062648382163702503260425970767735617315122736814634262413340538653422852307493303073076536565867259890214123650642184994192086083674132234212209206951296143872029511519010770543642004311134946483660216838871880889236845018946186269584285756921416257296721452292875377616138345797585601157892304086963180329467614312140660477930042848645474976269030811554604519860648789199538683993241666792198046071501676061593756006924182150012117440820374068383542805046685103699369879278378651775905599197233978475094261189060812761965348032746815801273976083140085715425792621495925728981396072085712011369314731954086736885875469917455978350961232786891112425179301840910281931206987188216804374716577927535440646629704144947595328734944429957386078557430971959906490517805807652704230034284127604327078490569565493564551765965975130342938032463071487326007980741176662838771456241633868798467173066337173204451511407960620164777501039669578318288588407617134291646498683699836552368113574137212290420106709941289437780042770331011928214358119832354198784638223821123043536222196820587373336836410693215966266231669898835894997045273804724765408274379544808331866760170341689313997331355842961129730549280059685869058179644192805075310954359823798341540759464002025242541996771937095988737685577746499619006753789777187397708422252288900480744310361986285574628917814689911870964573874929131526230972112142392020603026143672613216608125896070156928335027268245728067551958866111859260568529768571389853802625310431535017923154662420789607200669614238851475068489970494923501163980876182401382423014278118448461076670045146306290772485676667559119900976758139971342962590611320992331056383130414485967615983387459922331823203350496407820011823978004211670938481761515285388512255718957934058071394635063700150121771225744016435195551357060555567099049897645017515667781891685512678789101560918688712519848307925390350448527838114610751457364858555278078625594391868957001012879912972365286557623892732235816414375731992603483044259651579839531619676092956317333734106489571829014660239397256036742367436347552307841977209353173312217443890516749005383435912629033613464707829081715692547338309476644881965531436788737346805802573937494425769759232487216795855471745977158489497875161990689070313208300085988044735366470835981610384091969825565823896315067621979212519441630648456102637797834743413708234564209574798141044151602828020561083274481698677496672608233349644020860082553212154464097365564162223521648781422494749335596031315553570238790309303521792881024763494747310795198452771711966426830541721236394063785083338372831148006134968683390741996772554813999883925067097278772672787578490364783080272351703124150353125847382041937254525658233009464968332842072059350863222990754374098897492036270125563869768514123011813174931773537433574714347830928033020421911256553018475027352501364124109875262106692315389835159285582645263486192787220938154903345925869292720546878993299351456613461245164156003524715458514914204306511517825934581379357090919069255799696976009873509519889877707875981452975760062766813490109291619851680257845534190693673628612973929646713919719367455311143135791733198808050797711823979546348890982979247408638220438078913302676240196570323780546094803196323449356611728834568395156525575031042256004310887933421708847481559000756591014872809618247889495197889218586466469940388652157073492838911268659187253248975873852446064089245487203263557702076044575506611369865136869872818654891973148034583522061940419305318524396567609851421464620853362273969565463933868971814624112565463664507431231153427925777161337837657724250978210207467254083906018064286912704992115661263558843247697478850677049953454257112886610980019016842681291951002358618158284168254027583518669548040147051474054640932019203101052431987884853043836945586492668697722722340000650936415671151988441608542126011969770886991291989671731859106082876074179342706970615269300694099426397199880347572487436146024909647220088172620519742539913628044766810655691563015734962327611235128421828877968135344438433648470044317336744725429699667925677203270170806327756286630221582407255483661087747918622289435845804366181517620310779377714782633947374033911329095106021339840404856284686737445005331810147568089426908418953494843916765048360346228597842161395663773571995812765744100523169360157314500023443401047159602365899351403707796101712851022976434073255753651052449647142701369512811714456303834866994484947990254314234516168220752922717379944974989433280251872875729359425777275940653718413778689248277221408121259483384400256011610248345768003549583118843446374335713336254796567273110174236524280828681635265466287751315578925478817582560322221530145605933512029962111464688465832078931558407877849143658805505993406041805205328310842764178599986880291170535027892307011230227934065592695996500883999541525711944177048962253869217196863829087289120279970615083549071711879314205731567884099900062562589201201025419470348209670390807010370797064695712056977975371645442630563964338636443311729650204053133668561829007439529897585969341462111064599526382049952633898980356871871273311637754339029216098640765302888779091819664283439808752420849315302462961139710358533926397051604027368462649098105672591184774715568735410277047519981723843962919149383842616134864138401453752847063865568724492881183512148504953928966946352979076793974567358955389977661126724554454617969515668905307198097072736674484065688379958481206695304767826749332287501538936780050558029990300237057303375235205907875842581476807556603357991187046670523750868747536434699323900837793874789588110368201411102692783346224587753908059214764220476672457100741824096060408504490333176032645720546769012954623008499501633754060235971829189200450333726017135607111390426200723096170723616081058340570752078219660837582155790603721680735770676612197811110167769500882724944453929401673860449716480075703721893784333464809545601725684411116410569015904775389844030109205583647590230726045866765479381570861385212959840548418921568177997959136655482094075884134228129499630797346524563039454304695495684588150899479851210417369341035730507188023263489313945710912544596441376053571615754852416114496917233758065349689546929541104800593450271049091080819375012930245781075310004574734255832384412925087477413315251310142389825198049759533966268327213918756862388570660612063128132780462520491358888648038030985847761372948401728856081610841949690855192599011195807898684903998008757341830627383625216909551605978181585900876309567293803524528934482629196366048659139776252763741375105633520592809994792607785757237392234465570005031188665944263319275520208371629345631987797607398033404354652723262463719629750981427256663081805886973475420370644972952669488889757903260518984890722732000923507649312578510520142879330402721475899130645009458236250599874647693993025197592016901725930504157809984744727671396316126023151907536323370204883166615571934621386998472284922872048616029022451829030207048733376093541886450124645928857078679418268485237649155051854250909310490901500162946670330572768529950133667659812532320355593744300629040013888481645023702166282542560100112464128838384101931432198710521479189941272159798923177623107150941485219309160602989711156437134980509908090977273579621396220781501781370869948535709979502523999960735572393005230412033260583906482678652438188987067967977349714562312197467388091141914216331341997753509615079769691609258065615675473150193566944083342641942334072903308341631157231922347790056453899662797729810060111322665172582394140479849760490163566499060485806400865579230858183035926470658691595961645010450018725657987959248358635441045700377367336637242390093717617579648598332241854075572749776983444072211661694275240543424577218226797048529242345138471879142007169488262082721366747385411522783936280704992724759566730239603025004072261820630993399641602194287410133461797044278157569326375475702315006864006167739575635662919023321958991383249509106679810298217115358959662795909882398606909738179933189970717152513078934626860761411717035053642095615698133233056355371378766206128339447682790732009365812934838616670395250088017768267548917350997702399991067462061870556233648718032334686494336298423205289707866858598087346407275385464284493471319479708908518507602506598603011421249211490425743260129105973715222722710265818726880285676484081713267516281138005442024194008619521691003880230700954742405608385952510973991683016085641850745320201952979350943814477269519734223474525138353037992574874065858378820428801288726769714559687667038661461567669393592492476712217807479071962417884367201872713732424653832460096884764967566473482593281211493490272989139096546110770026798016034440869418352452342228650528005549364335169615476621179268540518808490217778236074865217654186829992316481951852545969884076221815609144380275471800320930019647244819853924974261737276932035098455695747591199880505560105873512890610074072769679535882065109746073144937263751627039509738688610732019377272982501294062145044337056268174158759410864001258116501715809765906763612251263403065371721226911385922928248344979360467179680059174865190536707749733703765725966168313229746275522470219983060079703248081727977229440024286858844180884319133278586870617145587636973097697658034066944442143716120752466177440866288870060632911717710865742051088047165542998917090867596686089888219682437946960404532078620021081969682300068908587980995827705383420814820167623600871195541634331246118668886026384277024135405995180368961907105540906444453247141835803226683794475955034878931543976625754725534726270957623726690930111411048430154824610608220999821651607876945032662352627641675834680022688926540234965325015172815493459597687725293048265880484101285293308500991685699743726415366096172314635909788786314821322029553822801279267721297252388233862626455580074674065433681523966199514485922386422604849262198521436108912424526659389649286898705384122887490763292565145733380225288464472324985347391043669241324590229757097631391110720999108398700181594751632002064427819341945465776777720878207638402403100801967076590670218063616471191790735961790544508739315916161873382490576737922514006062857062349434031050818662486262725896251224871877145045268939606296113178880530457681557835636319658028127277915932770938209807113023480720364825777050554376106450656573270882840833155978699303197300925187868615104127413909660242007350597026684389318270445757685309038360995239822201840853836290682058497609207746248135083049752072857964009691559244228229863408501827902894072677526300338276571109170787435291040174094997727874782683549576972856149239390365600624203263898044821360675032303328806234237843083627188885184430876739764333610902369186957771827550519551540399666948318207072915494212481286723137412684383494338321121639627921898522749816482419721827931132143085284861588573386515172821012924180483141129096218411430261010884001001147454310508748179042845486437701139441795913613337516920039566611385513040335356100209753495987193501590489461270990479714841858841430242371852354077447393244301166564239516959140327202931201169496592410234643332452958353167268451703029231210387255953434115873141161246363923086475760649344703922237637718034089888164137607395477303984699856058158623922226115900038470416945227345905538628957046610120564590765034661421436853506051799202762296436182566264937430794165315736100640532190212607156800757258271615716036350366680343472226416982516336990662670043354304277040279156986032233956430679587235148805898791577291887882598568563860988593802702217297219230797571101433020579833168014536627789746897790340643133259237083712433829096545733754662426517316489339585599588442998372141762537681439475236814295522027521702601527363604597428808538345003276257922039626596679841951522929754217384075221394178841068520221602738349206380304791439684606531009619592989945119619351992347944640791428974331278018492090308620842037678267759138255204620913990849836132772547441234405501607792919664426770079429507285912318337968445382597347572261283893599341859273437093508127180430179619386841603071131138018574061470712767675661789482546342594723351813727011432204621739118834783247532654072146001311769222763879971152135060132178835410198065654452458393601154940486798869567003625850258864095149363588188130104009427801932378935867352634622842754532827900297391182551714395312178643026759302522896315818928709617202758949893171868967402990836197670188610761675397502347749046376682689729263379106082871433950434622333215420530994700311628577413260205903460111455548733988212120810198492448756980807631975472394698647262836755890104556332129525848893488019217313972237103896455416694132655221785988863152586458026761467445556895555250845535868224897689605451572537255626448538968370534951866809515823728064355384126572603511073645076138635169200659924342477277717014803757485495304008179950750516627742547409138730065402296529461000112561840057546494369864387658009052880203215700839322197986452521015058356608127345207486230213862352425361725066317266155545926653538397639492511166777073461472871026150695306838113583547859870170357974935825590117158735113089541132099782022020752211373107723779196932928542333708549354451909946388398105113848610622723245214566560909410259017408326885958600271411788471792568727471933297062436810787197905054842959490344240634554263007059108708660759627583770934354638787840917038234910535663831555093831224602659512041167305140729741084652339714347686297568451871778878415603988536372723891162493076994337284863867653185055064413840976556951343005047894128514772900739524918223386381748902078393222460963979093365920507887920732801366804825720397084593735334770500163541971767383567618241377794749578941829124885877623541912421606842978582433093602476622223204586113727631752398014658158737374440936383606088655388972422287116614104992415670950536509682446710471663508328269458605419538025368152600043702437243859174157904522931675344496461530504902929688830535341609376398311284738366295999402800403585498334117299088492456487162269133268698825918461701481552896343490368705321054304384668090030308322722062824399309854181192930924489377721263827649863988883937647454922884456976799688538282143625987836475206855975672688290131035523681887401124117923682652669008191130976399317254486756488696815911123927709905878721769093778607778778437602692565127963922822023172127395651806076841546553028553646837316716443568349851175886174254029902320612147845566759460458502803019314846289626674861657333473023370547739080956690833086406474358792777289684973737039836769062985138984246308719057008803860824241816645753704437781518582368844599950351686264656734778413291319971814918818507486862496905672242506746243824484016198175673131517458553256245868821419203434907327991383534385273287996317335270834040855108850912608682077883203851827360608980113229291582727486143561169668753301984431461456897960563414530570746404896659400596439388359012544372481639809504974001379739501590736526067731176716929087521519655464155969756084601570581128913688311054647554553218726365709667128221424610641481396509877953936871317547641661028825134381739660049459760831897723134540726018407421940723941226444124412029766881445663717267548286043602538378910446376359034744166084241789145877546784792981390472995883609091562797775045794718797022535159987336804799178632018466243097689723820710354872209725276498595135896571268125125610074049041276161941468241216781656282675318093434570764109617469587664807045233168840121512736816342307291744290064693531248475758224026130014306841476801438739537212041310898032919170307920404588397845129733752632547388084229975834651841551020369499326916279616503596323129555292155179798498356453691513719824215238467824243766535832274986967852237229316389163541575709580435307504079883467798539981696994510664949989024199535244025810685039186250078237933506887732863742614461078632675560991645908147558792918966737299344706203727963707164610769726988392011649618192261045414372177347192644353131086997222052444920455870807789886996445148070019343590141277780217358698327835740035560523076082465071176576851736282658681897884813104225381022937957672503819344721403585464112686131319085179733719561963331910522875079162448143996304810219742308471907556434999128664194637505288717014467526088702005923733314519148115607432874317764347983366295872343911027831498260149187067935449576372671128409191869640146877638634537299489007788660523397802980889261539806134767116687437714920059446773103706792468655633873178548896944160915111586341980243511600891705733179227322380643424407681269229833807418767876367920406071217771802713437885105741444097768133534347449523688853704553134296797499922785564363708714669058369405221531018437284922909189726272497303872643074124618922446021863103228920290747611175402441715452001240934579730601695318763416207284117377282369294418618697205134082142041595419136860225501875555940655403509418840721213730473455517138680055227317520877701853652073011035754610223483700914651920838615611768031313804072316547283849935438944884997232562769561762865398151364336797049827200933878318453130956390608596596051778911896245089118938505261275301478069901457088573224308668912958242372767219089165883657256497726492503396067827343533751160559063669971354047554150559412350246226644259811589571041672891864344027942717702114317207628036089169870443708232909723826036701355010593133904041874381040921015206795995681734203677413283873392941594943432001098032627007257965321910610382580768710473714513360590628901867178611801719304796935562342937012825052590361987914621310400055126506770842585631384326665210965801887769002487111988905674196449478131958563841180170563918280439731719898734836453347839355550555996261178991514540990548236731162177133857190592415687975596998105316237248095132690433332485189794145509507572869367746962133756374778145552110684311478447511905596095846600535657657107138257863612766277748332844817262048261023706681548709279495964648370468398848663185215374447476106405081446507938265763426718905894316552184865060383549070787341279867083687307954295543157625787623914699141886260464760139977220601540763803705456358966315399880476154370744483841483462483641499736470121140271315409355847752206973594272532370185780647974578627030012288919274891097644294932383839892767473132826699735595383256638019497289207772535291491928127618222387767683836152404272826389064227228796954470485594098113130695358562474267491700542154126325688628710501519298381961101554675641406494566257419320594076685838893008095324619337005793498615667507506690510878736747369212981417891466630904502468633449853007348210726082519898798983325394044193210202416197896489295652502640847814708593555972928413072586574987563309767437796177448248181881223261955104944500366721124371623858075069579364816519110988047423776619055089716179830519541637474565972516535052100525001289726219325817355841260702015237801447959039290074346043613933383389909053435030114101430163090395866460648529438282656633384214438583435790760291366731570421314614908282285518263717904798669559804551836895027253210174805226365008390968073497763167993711744112815009662741130153319008660888764121905953253974015863639614052086760338612855910086563361128694666899501911496975081017907044982708671177627911125897878611461581689546972553783806791878912524269883072706680467841833446760191628558272160507996154603190492173538567560612926041152370440477310239796621029965178174098044144434857915646405153038005206530849818677118870262943212754207632747612806042662618148780433556167176023790457737141876558668284104422119608144816281885971910581401965490304480386907092648673265402120460531765806258588480065905586926215383790225246246289892411149877401818385300033079765123691922243513340341084363466093978705315956674905911155194857278253172695926427309593777371510889469210580474459725220844151641134902951285517556484829292236311256481859887823121871834498080402342887670893493144213875998170986025897791724463340134930698297040409222192934550057534669629752709927208773884373974838933759246817417355463940704247463689512503440411356852075704115596161583629257148983675829046094379695566839356469238965355788530799677771574210725773766898966997572949050251986131663626914583211550355855299532573318391525234168424646454181117223124714578777653973936370593284267173067571174365676822050265716672241983584126192018373804124617618715617595098897096639020082738120697241973303296298861486663868471217168537379168090662795963512088333460942228420377926822376274148331689145264477791112896784111728606211930275657473182087140208235845175142061287311742706344497652581868559662296972698456154416484202573915322943529013027529620153364531136057995152958962577077940625770992719862326468819452987776062874754087118803744591729944550219393240840801172441386523799296214205147099737711786316673556355388961099955922656869774094406565967952108154301080299831577366386638580256285588883918064978360185243506674783006023995190759476965069787912972978427360412090724709082433906584282505423713291552778127717271725235431492886211579336411601953704431845879915090953667974588295646093107527183248627999436680262768729177469861800655157085937753372826131150382534500524925460569632781341207866118791306020760791210927250287348720127401704764579996523901863382403021324937820636999733635937215900242235967445288633681507768059050626692409286840705174073142910847880456372066688630355852099975751508994859465150448490620600911737054067499052381808335746265774610300645942045747564580921303833207856390574424900785285058989211763986986781135271211807818944613628491663892414953477946915278790595591800396935847224034159630530489328058574964347221165218095906977734025539733936823974414306879486735587685021447423979942225902467699661058285833927235402365760029305327748100389438067633030600954469151659322381083455329023726126620787995200272641208945461708629023702282883272995807560667993352741703533928820250025869686263523980363435128394262501002653819386611700423920293794159085876740889621855042705877065610296837022965279183724970166274095161836541221611482067742507073696200829910077051638228803893443145032407300550916183978901832624327765291798163129755010612558720147146919301499045777874348283016231201986235609236223405956130546722015738646558267919474584175186811932754471534798697245105018982024820170564154808295763789716293243843064919696858210326495009634096636092026151427407968694502030032839506274331925637931212302536484834674264429393905363553711083846617689265079321526363130011160529412310546628259245623832197944781057405948656013096903457111565005826927099870226551834033361117302424866256493249946280746637338778588779218726776136948036266832821566785610989569247039285114288198432238457379103224759320593935033748026105075828196386000024746175290907504005770388903428514007752369996707530547875834379778269927296476976280458993784567255218317853656889608857625410314881566102986889020669432584595262638671622552791166754968229733711130119460657878798931271057636814521568722145226513753189500597646150657914882024836245118720205984382815212074988107126591770435969446465562767713740644053570224628018089149579810614698769411528951909451371035948444120615313027256136978441549386909037503101442920575416832167334348484981511962769093329257379168770048932491149355595658934357981235796056987765894506288069485140246622195529583229512754593915008845258072189513780201681976112875082329160638738981173643256573497543298139543111145484494950097520740472375169724258555851479651158446653184020249905787022224349452091812780561972312266888986968864336521421736778986447791597478842905706387339018808450087999141503840545968891570774334790250364891950633458397780505504953269750768215582144444875623645719494898973126114951143829693031122140789242590574729148140283213718130390251346463482318150593839246752285202770961321168529279209665728295252129708392667469909606344544126848228913518985249946029154978250153612669137715072367597351168791635761404140583239490512129599281125302999348751913093699274709938821746193810616220275156057786646011603527005311184782666911160463165013836068034842439460481962669663014392822158278979743431285188698221354411748166133785468352355135206602296056646365629900219744463645327529659704261488534143001475706217133317347468285264225461842847073917874270936485717106682495543889422589687084795712320161791800754484341602422009152876411218058751890776119790823820505492595151229625713354211878269095204454505649093350496883096382720786256987387754755900916437110348933294510175848780717250848097626751008141549833082802653711448991326667979687859148757606048153597567494061438262991124061441890874739219855146597193065191748580415563108514500065204587431676031455618639345033417409377594494208646339826003047174165550614990709732123560371413777451116304552474001247080792716287036810605190234965377135253319101037152647889566002249680837460769917815131894576156386543779917404508619114267893221518596022267867458569422874517302785755267950828103626473838894033563366814156386440182873405655091300334013059332131183396843139150624675843629410867959475359039084352649384985211077272227816171051062148039930114648038920649833058290095602145567717625734397200194730857443341626003358269397333516020800781432496594414186303501294427208032173603745896057456026276778289141733520455474802110886242843787916737899529434845235926802184434439754730357815330867530993550843567348398729415271990745035818739282901952733737001569462849148406518046970028400665094323295009277982017226678287641779981698254159819670283065320318333512721210539182878331879030135372422727790007303320562605217783537320220116382451070554381184747919164225273298253228443283405984441660786427266060732935265252259213972128238829173319516968123868033063126517960924554440675744149970565760651524427743059447480016642932460279518162461831401013486805165647704182300905950491966555645373048586691062229464852314537499077228426520994830063917090634131637583130849031404081500240890593108199548546174329055047022851785215144257372408933390186541067318054203965333957020488505779192855133239412995171686335670312895332605818767347606322285086127006024082685069616470876594706220195562634300321568977381288326847152020413078228972845308637583268599495480270927950364439768949420213517100980765744504833272618157685354932897074117284238420883822096785566588687211193359816112701890686197292278351425712902657445791712169829072214983814266641926741986906413132959952638870886646102870756496221047700659927267444594017352748892027078892016736419036010963765459179191099704083503205262938180409390450557751087651280225720931091561258717506483464812307406235529421499307492923943832660754268455165794219078142275511309510219737987638896732490224803231960738028780660053182723552241392206897805363889387285232549076172631974104931257699837076957804031606803117231999699127107646436693951654789159662704785215995194962576658508399599774554462590848052683532099281635821054406653119264081326633021132750684157973004824730231180308094716500862810383100839031506582543858986043761583703311313074105960013060934965651772386026535606471994888617356202084707126966011670418568192865151800856840271707392119079793603968910348536565366047218490351145986682101545227877447860356975064746503061525117460049988792265160901592535866864779627367997102333996590045754902336092532701979036309048512691818620507341942089164656554386507110902970763656765866505855772216692737290401367547010589934926584853264107080173479595117049024338617315284612522564068797323899777376525906196934911843592322023405136951320206826257864569828618475759754305425235537344128778999134986422625407281363512511326447571111654529130619822465475716601364301194056817286992767359072328994055412647205743576252242614108464472032938555445695586049131312867964701247118370181161004548678598345089437627499145840693178211529422005507212063589575428733072833893351899616788732283708471595376831172734370444978223168925311896835716001480669200406768654760551450078877424878490447199416918334619364582990946520878019445585629171702809090286941044190470804558557588259246868716898929717498883703263751715111541026556169045059070198082197806768769507900350044087682135730079797684837247438827511382852463143450979580523838504615464286251008018786242178250821637623818738891533343576852817733778281360024293565680986154733459685879803372303901971126547685693636502674882226482741642991202028605520136765338811006476122328000168947822530410444097988895760107999134023027051223510573707860641908122912892637295605577370779634964897812318351780703488832634175225503640898707325430808880191771883804369464711752790630672236549136539549896446252103530100335396490715797229171741638930618799723162832155113708101023229163937140077541773440207110807447673400243907835093496970898985115438951365041672718146836227619417617748707454392423910844641892985921163883616278284400931282002591797366280984085060615375996179867275072722087242978144779971266773295692357211920605755846417539788728443763371645624975563205414975045281640566996209434667104183025930284509861027321542108804341946728447314902627986272310080544323378629707338457357653057845655844223948243704153028968285168251075569229084462404669635309038776643317477096522253258741723320419558720781668871838740989469665203998769750971347243307353246960576244772710805012219737813221268315099954761480697409574212915757451470960828582651725050757741916956001027762252700647702164434744602716902828317407794370231968654820777276921065087783851429623307297880246184447014072483992393615502063606231891304831477990417531572058660291362247044433816493994784142837056027248754835550913318050609095203087840755672211257492838423836750051957524341889715788240985291876499909214552422296694977259076202223153125434969322779793321726783823956119396666114138932676130237547459497769639858517863550825042081817545300027057900339775114025482074410753323610803432319949900945183231205425139718083259307987177233927655735570388082911010003901200868630134185712699910394549082008904087663117226032798041997796455018695692152278449319760847451828232180074338268626079448416995393704146333654734290631583572709798696467632632652100059258248684215742039331995487220017525309010821867547603297604476041092048584049231017993099009760869592061650499946766417131184367401311757394510761055646842630901166104797332620611755437309293285577842033055371634974113978374563358171594567276229749038672595269587690909852122437378971272728514764690695345029362679907462939531378384443506124644870405989787070433401243797043273819446570175691022903979279627022646864667958064447312618411310304824243724162717544230379463600214133606127324772941114428112507095010223338473059066880168561830380790331316366890516620743177904001248561324443346173298447468213197834745497508830130463738552662072820185035923459676452179120143983660990951160088377028464412995149610490436612575974359527808500192940676427268795183044634163411594691204203933869987213604657371234658767555119766850738666488358401106526359956938202018935381629012081502353339445983083282452036670692240962920606782654727239475575522531463605832670033693501158851693559940653887119106675596638121395341663369315174812253490242766898383526146938707635377849921923925880083352493445751638932419294843347646868747050530371266821267657566324848539042191119656793048133241305253507427015277435139568324795044038602378620051900491220044939682373045809607544375476209112412995616928995883915921041446890804654853376783411725010598995257183174487370226077733083445823509525547008187266613023570274803708092173873132050963835924735648828697463312985952720444868430285705048088327090957608490195393004043850808212316863007636691989545868978816155197012949676995382595241864601738899817183402429979743612488753526830424738353374308564212733536798673402527940025767813952132354047000389642765604123982824481177140491812013632358812619383387482728344759689554297012629947902122308656080112948361477045748151900592725372081184285793707015180183580188285953275073929801223940519606785544722091552070972815670240013410189062953025388894149713553536462005689401682015893437791594709426581830116948119564460666166425008327704722992284319432435691395686429965777103655654433222243018954817333926833115166744699043423571982489688086819885128431161136722748461396442453181884590043223650102556539757851726504575183342603689885911737521645179969031441225271811397455210794988662140437465277224956937799627249544866298778069897397252338611564075704789379567252335199385450472541870762598183216317587040097238459943451219089573634968298736011863798805140947581037185561016382208932388681886785513619928744265972456957037794803165505947540129447781864692398434969059362369426975939511053831899160605989390486452249300796345664560452898663995020126195037897735555560921912671696488948889121229254414497843867342982745183860247026389857191082842623213606603261871522412070836682885814211743636135229656171833185274203739875335472469841585208939440720909396707003372037240272998793443449414889668768070543556761540853438114803811330276617808404965518465410481219520785481802255137434679171521431744777861084528268679179233222155722118597979552667554392330629041038823884956064236574236843604422900651118647289850661364757219286289456678187699514110321272610024445780272805636691340122051765326314397417537473021356076202145782595503802178061478353066814253572566470715325695146991042116686600912866030780394169057763259294104636075991799918185729357259461498322114041211298985444729537521518695476231140079487551957829461177398721846547667678122112261671759566225924074129005985932335634998647492165627951028647238113932700947355040868011477064511391236627580418532330696372866659825455145543488985991358918735998453519642548193235649614614242573128279722505039888325741847414136259640126560127064708360106334264038205794046737545408895183777245985276507192130998590863535825273038240386843943746154860980829281753662948055861522479530167865762995523806985930897845071901347346446527524391675283493415429628110174585379613495695300662642276121669475534443992337075455167006005169228961935583878056768466386299468613762315964343221810156575179370051463851761381284846946066288255147701452739340761881295414981131436640809712979324275924725756266654942247142125821452160394840253171329403699057185024595892972756791392991677516548620088548504965035955165540350236449031132323514436837691185856495185862290461446071765557425426939383584972719540089295525229487773504953266035166446320148161242803422720050489760337093990562021866924398019628103700421871327395633339272891625132188355877038452141560090385767897121602864117560574162836531295404882195089502509640043531365006712617240123176749782999988818227718044634378816301835042310512991353401733945143669917148645919508194512365707140120092561663533476793011993434427315669813360814540693659939104001123110130950172783724383816523452476255143649194256262014212712591373058819320846925472486163036569907420606431090418306887037673152704989967614149772981885473415366895218942571169632785314083626958281702127003804555225062036661799744357384931263403324175247604558392081554399545887034874283325842722549170430884341217310961664834871729270641077371001862670861040871427622356230303254661739202923412504777785669139229408400527265191417634917923542182611437382993858540444359782563852156206726328689180209459513592508428561400855058792405006969529331874516166536657843170477446555604518397981884812276843772621568602175277040015922043243544657685024478872736700514315041798262184812719213096372586913463247744493919382385907913762662152990834398154531052522207236000532882335138565417329878342460369898479059157828805267383893710821085067807366690796651259678284999447124074990673450499631584747383288719033167956648163655652639594102468151126574718980612514582003358322477786822031207094776299401363813329599898708533202407698733636256911992388885059050902076961599662657232587018471658090109268465373346564856638859371330119785134166062618548392106972521249698773866940939392096233030470875449399246676731116217710056993192303915395705054613162863083759534380223959228463283639475699797592220062833070140251536559072033145608800173849739825279567508260281202321330271845817476893699222581204918561267825335365681283134668704362659224694876001847738376512726581070753161534266058927902994888669131658804813803066463189601592818454659686561552987343069846158616934334190038955750454579153653612392195495671611156666523723815671930385619934612222291390643699114389272815618024652242761426080823584187598229376037580834078629491874329338710547919131567893226999275790955789839414013270683072263890098437640879606454548351891793077361790326240676981560272968742392698884503523192016118732881539221639889860773142775371442098513495085898063059921315348474595864165599278211735781684522810933417897478134734368341665357991930977093036066780847015421733030395427218771148894507170962189914366117191003752272340315579369606466866002174232256226497723380545103494984778342783330811671994610113267197595499603792593587762934279487818119758655605864025514192597490993323213564930238971680156465154874922390233425324141095063213165792959563274938771908777989556991576934753812256575545673684860435194544372666560218868102987577921792174655919672492403702885061070607503914052439898450907797487142431829076852985933029876473308207330072994190461793859876731765444059468008223647317078454454915734641039772631238343628296892326752626335744240955877919708969675943245975707744482127898886081366327736518455659317941413192636170677697501003772553206777256006680700765769636390503892920086352715844420313315452875168127164108888493865737389531074497775158619370923287555061522622715230712459996796136665573495714328296450111381594949737343406049970576439952336652484881872782422367098027881210248556287604401768302182701415735946508647049048048777086978816134643657738299253941875355394399941028757300581706324606310627313002511519610344602434530190926140512478012479988380420159117385454413243947263165026651757728748580381346998892476268936323687945860095762313109729240419790873217939958713333076769573510358300644261009970315536685632700723307741327030058282141818573365179888283695059452651461232711819261886274723399509096522780551853411616553307931148457266351664945731189814071498842832915754825442548552687965844913057407908936454851842668472210491007292694163200752710954395284712954431952451686075770268023540457492679392665046228765883148217427109540493385420857087074849555612150119944278193206107384367024735920139319353494756010263538638931400477334043442588953859270204071037296907321904227213195047349878539190811452684268994543471933386165901832341718137213874413091881702493340361454722945522113412060184111282096561747704855445788485906841828492600208937241066044258712649978408355893510990487977701402709126622920521831207842087619470808439660550695162358779186434606030975451603110922794154950668404256315283966172983466555275380562702463748080061614733773928868798476090306157921078008303213470758910569102523133919246606962302852173548982945048461871187989425292378718273842513063026248866247744892971581841536529067391822772400432185713325535624432704848307649473535764145475298319321056775468782971120481673868648529067792073654280280146443952434518758655288571861883298711529111782183500004015482228529035833667065966852002706823717653265647382739849701193723097124618299123267083705660094205073872466117219852286561772384988467571810912167521523030871333754443857966657093006738456315773123871391397274708299585459561817208740000052938753145520929146339373584259803651308111914883869756049503288836474922847565251304095562923081374525320431410511351557105787750938207733350484918278897440885871638988742697470578692683561791533775706097515750751227861526725914511848258740965094127549011739847592854440804065266643326610949106858232308397769341681527899628211795542988177363884725413045576642254247438294459704895395365917396842587521356137078768911864326440037533105496240047816873577964919773978952836473915786635060429387562785704381213494383840050536528213847322211773266156543604064248013047741754348530854604488168806880021316701968516361811328490636775200824701527766752308693196694208311136109095486773415120963780395202847668003653102089703215556036497819823647561020711776150933874380003314454566417422521743523305912351304519709068954016251856469096538840890398436257280440899624680921249370053380276444088426175326928151763933514204013174746716154085660499709225238060815513766368973016205310548940339766015048834462681979539706262180861408877006225017866906457635633187625677222248002605867210045817220839412867774040071652054247017032102525995940483703929092333287315565136999562016651790783802072437801506022172264942401157206639066359682657234398279967566645005191248225996705163616593507791085218687256121192913843191968483933157489440241259056741948802273232294244304551661731139543485907964225549211808778670418641187620718200652941671283430715631742243185813335646824742344820634845820805265654275845951280012266004382710136559562966494320512787139929024826469570789882632692227597815336273024199594428937815756015859582213052628528741892377731924340600331430819081982533820934804200319607552893439139632599537231872887795762453264242344705366940565671024686514220213657606286748560217522146457973462100060018305137179161185571060566472084558737280227035458371239211535986272625810107678377324595452718157107372552119937588037212853070596106162137270445261511026167740984631156372280327020375085775918092776969056195568956639754960719178441320709719918927926235653105008767543402927942227415807884650149813712720393129214677158791378581746992541388255316644485045079605484922533990574208443121448430362265881158493857519088544142977872451907082501654534164036390845594570580066937045618068568330249097534755717003400382139117054301170873799929522642398687985323046218043283486889710590137742148208651279278648060389372182860955465555660923073346547550766257843943559504692606691285725977077020238895610558002087850358193544783923011010581783784005415234626614413518613053076043203508839594224679051149090726471362801346997143556197257305082534911761111195320082651071725053789840792753673078329227398630928355340407713924643906146068227508262170070939364934928164479332974400292102221884469475493429505376187966997398335972602920702809595863795668849227827019591417381412573492813114097363823623439297039583661125043958437269029631899813733093716080224312853792034452536678086111072293319544353807403039111411040530495121216351897669461186768795852859822323944190487391323821834244259230818481038941416768895433328281051275009504994848165846372463372057398498733635190633108404699328912330815844615572811708800789028352992277619152526659868585714384036162586151052836816771618548832267348721868681645889973993196905637567990474537988930631494620207477243057481200508482554873281291027272351908157083022331625117834009961550684343972690369154597706044308054617882988730258262669395486592719430260271247519871503513498594550098369658399352479123747978235783402503749224957772321346930910977101809825773529068056269142267068867262993480962088516934077127282461625040205874205355181003855180845110986766462981612336635919395611645206903131410957079691499169279203314117114635420280930977484399858558260884022218457960658156829635119565495512874752269524477239056204759461773287120477468770817105625133208781868470708037917151551353055490461176618093748618161992211800166613483684266840758363460356883705572688937695941403559521745638635466320473103581841115310950184615420298377872878418398426446761706583601573864041214315458393566084766699980836297067231702981756631441382612723123836840869242568214993100970465897119485755263209315936323232054214505078644973180742688645390682911651601401080125014481817762201947046540680437168249051474087429254380348964054638085430471743159288771924087175715648361790360829571746301710016315042463737460462422155334677400538475013850635563927848968869826955783911249446923813767946303218170685434340334909632011936487143724290776301126553850299010032439649756230445164081348057423849468726439188783776451187990251669229037549174764887051127970364608043720219783074348886024029309968275477739772927425634759696619205996938523778240056011628024985677609137764010088937727546154047035144529334743603561803788135023790436903322866658354716267646471822353820511564871887153781265251434587871478589749493454716421638333050209193645228780218571501887407906578456781586753748382856024271176691223391553333023613181600852785732791889657411953526628607171523842938341542069546070649951807541777468538855685467915099597214797311694281125988841164211154530794829142036826425726143310032114780853505951783637425723693049205489601803549564034138895420194637167413667024950548273753718495759544166233115786009576236700827534148114928010622469047847283533786229867599123824854584682425904638418787488285824466853557012156918372386075509929883074416795214204593470801219625538443360714450500243564101175151700413708864976428633749175815685887779259773142188672216393270364746361203284283416484482676601203247042739490822220561155398535013942515384397691399387608028659293238889921029135320883052809079875633664938257090640428728033075113723104920628878314071563501879348635610314808939072695189426810149553146710559859786986236719294182086795562746081384043184456005979859931690561780567085553182644886756290651192752659968762676229380568474504912753948247931397345643929180791976975879794878962029065378129831262658175902491920077224615707418601484778039101741301476160205284750485097757320471245614321405691642422959270652597894624150998036652233394101965712286657298603139748142646088318440505419752773007765622733517537678320765694693450457589830376518714615654740228359733927213514271872092594159015409271324333816958739591227383377211339156963966485076904031855671189922618567723326573870856030582350256762103894138020149298019688964278541415297022330595676497023747537950790097172909018570858485551211007309968237151235915498662826640996113756155147377658512624546150794090446049469062849921595852615813178969772535903876126800815858698324320058164789314620097978261543968868408534586759609839292393083029765812899434784055174656472591345387840001690133983320700937368046558476072170569327480945157689232067685279300097652732571986465245827932413488929321410326809196865766121099592889920566060618409513517603617497719217061023406266082134249611184152074198531553953424095709283782626380728463477715201581007775996362414345221809387088837796348488427420836243738152603032004857001621194025844894199465172913845627045917881308109400493119588963324276105086079938424318016805758868718498739237560027072199023451904543628257695430420762331159186272831051866749878185003057223975956098263249145582699201423931195382727647680309428459805568409459712842174863834628223058626164123661890125482203245812003791431763065488972600846949531241668579218719162164896401727474764269684741758626753883885363559982851973647975438548963874356561567426763535636653982234802698675080215450597900568383440720227724462955527550582278567654674809985789546228441598833323099377274686399532192324591812436373007394210020036075613198567096751079684594462742024189491288799142757397526162390874203811503862059856645203932370046524399267925150063537155530705903172552605724075206194101941962326968454321373907159693605120698786370770787235955015755991646710130304554925372583402933420361053927406341611361429667605700426187942485123584229246774407316443822743343415710857374660012737362730337734515187425927695825442072748985899173508339377505686596038810632856923788336176487140724922394074689712179991549975278709557615544764330801539212308335711288700747305097291256283658296633506080842892024592370431470591583061824983276943935201773462179732524893799269417917580904215284275971171135754239390865484619661746775501867803387098127516492973870898328599768876608223702579979117688308720157537444566070225859919412650131327646805121413938975219218152418624544466952311401456374796389613266057669782018816316350523969626132522871839002900367712283402069506522659297840436540223688339893932569613612867363149539686382818902577084640665326857086743679688045344046617728808951407452440939601632608555277032824899885661238105855969789353445382136981829937622850786148584467094239155650159091929337133410443004267214897717867140342424934392344918866629894860908364091285695116264721143205471228132647363660659062850629944337775354501880998551949484949465925182624070762081433187033962164322402670409188561697700104590297921642240301387352414807893766390687507532888810223652660858769794019545707868766592482237849720712065592034724062410938412138176852889271451641098700383146229055715029660312777611672475403661214111904137882790528678142540106425062815142660868319487145628176721569240149160279575150887362883905116486308703769516213822634790360174640226253796087871280100266197861953695803600583987919650204826721482278884680516474848312402916284365019223100939931872154287506684180298795944627536273000088622238123454712113207725032386484283185132002082267074670654004268942698909070004993080897148190926818857767702036074298420651805167155763295135187062950767988768343140133427284452271969646489666241551386734397923251544329431610372620655252275303020046371120747548104024623617090716157362908828009714592064150747677480989209036762500606362421321581602684244373539606310353037088649786677281333775592046999506906752733470986387163519683774141154816351172835907329711220028699682616851054414559471959751587606945140938713536479057109051029109699985309886977058013562739639803186141733808395796342689774052738283672710537899635016476492336088254929523770449494269216230617063060427897967105612243963206064510984537524092769104503153004487774938972445755718279234968893419538345811022663771722894439332265647432070434261422626192819845164985135492237565042247607830052307545962737831851266399757798266896831171523593895814044200583822986021530830159707233985138961791801298967858234438028541322896546427362405221832087212046301909009941174632235462845746800918244248973284302761835482167764984357046379679118314791421258814045888240723885954784546966161345810641914868128871479364334073573677311983034858799175966418910259166063603988773373879034359739161107298863538238700376082996056757262957625053692914824076932059843485991842073581065695228265395168398677681304989347453916176054170844862697949953184702153797950917638069918675533230866176982551617444262542944136742276327608890608360992322690356017441620536734457478719149802716425739163575562103074084121423954251247722121695967969206325750448519420097195975263871491365216754667450912671506877153751878148373501052481994827814761292169635661347975614892756520622783590966424881511468990967383718616879195410972134156428750653226796184808051367862147938208579350368546686674269879434607411284496994380433748508870179752709515710415275679706797019919503529870228955626021408600856502257133968817006947270595234946765532418717286984468460697176895990419813902456892685094944326587127850890169799510974291591586273903353169848683030682491989238362365459054006341015796602333880099873146645807825214293499585631447742724145169500909223720471492910762372720601961780534256524284094411890577578316052429249323974415349516067219427191180467355927763540755522242518293761973366151143428173429437648991611885091562305993333344446192986939343409263131288292267895413051926734216499947794224262952449416274020378084068718727024485795958069202135027056302853449547694704934675623398619208875055277122048545961203381455044295259940591192048057231374710805799444751615134608471466057916695220426179922329480189348938374326443805771356506318946257275289835791003381990042615021524141223652125994506045669883129788433160542646336714615486467815040844652216970117368211619766792374650920504260548020939336729260801284097902390865492691063840334078686851620642674338637123066450432648754944954285600989302222375046753487309515330557719369150134417015042280948495903413039167764835099642475193626606425517070006538990285911132460152096396827319168016151940925783256676742076895549402461636378162686232094612287633684125849483012893303786059621847674714911080408943464877448827173966500270621700675203346162528379391370344820709171124709739706528661619106537881567339562916994597621822535573473325276955729922927319280187837726264813728874854029488474313226150613219964795801475901826293351811572244886427726779896711724146417024205495369600444589618223874677410189851340659461176526080638119733930111425201275745838216474139223933712765631391591941911973732855234216185840324960006235768199104094273241913715378780138550677705030243290561400867090139337029564476059966972628017680873590276165031318717904495433917560572763393445180418609610672741902498716276336421013420194181969686983381943907430687417480439609273546349686574850740006948570793992164794338904978042392748287173110356083635833322518806867645797403966816445084863992643584257379964650620907566188536069700727708857477192910184580493971633620726573763578011447362923278622146824583745193868253871123176515920560801430177115959394232092912296000091466485347456771906922326245260309118313295308651571844113229348614934966062256314121294667396550510178366828793680512426109716043216637411167878784925842747944483762433719641158976711438689658463908416632773392905363217449975400693913659818010900272083537703745123985801653451114721022903470568097745684298281986866792299295700768375140346869147036900119585906929440538722750734231809558009682197908754839694233906085822453455101673857977695072187149478215548126798407950688305205201095112838321790250925408614501258157866776287965983185450742185519658217699538687281964340740369513826256286030527935631337922681318164046019190462155756759292917556695680902254776079819786692415083436230841230476906764087059346099275056760766418180481359446690824676451830190028027141950360270699308849873903294929554741035514433835134821634985531506086648675294020799886071417582745638779471966951444277476679193336231873362642587431785154079204882714973863171239462038103646834761163914113497764173907841036255656829476382386144456452837727390466903723645904856811353344950141797499700706744058647879477477144946888323653176504623993328089553050518439664153907936155869421260679745029766870085448657979009840656140874249119232068170088628234029444084704617443184555999722336081960143692286624843749425375302066951655418013113796571510035342215740338105764239602035387787213072187563796210486032880554851823816918246367386360472802495832856360460915771234313851476571753220310738628108771039927281913517530915132003925471812463093748110013273809855978488166397058465315905191557427384130154581745066001972416347398966735725294451652894473698267803488834940093957042323173913716975656426721079927872720110553307367821056738942457203632623705655330357190364125131687374203186300616867907267162856380014472771557012306068199541483197040557424261746653046047951150524641259738747235721540244666962801446678102871648389577380437023283048535913157405230722441464127887160403261311196135825202933100575649945086572800029438278260199974768510809105708298824239690093612225870732007418217566369673586097533554608537776620486882607480712761287289709143130543185423584870822590114751977736529841555832182665213556893214357813614228801485469583785278531282459648422720000874016949410204129292745942537817114003726747526321603695474001389946792578164482229223490246982853316875835773547464208509243384079483228656265484334970154826505135787749265965439380281484939148158024363264910553773265232963785437250846192897747233895269788133952432433977715483922406968839515951598815183004819543850081306145631530785387140156009251414847372479481295186548378919133589197644323001288880760103634546392391689584330754425904204546071148804639987224777288679502341014191574714860962890551884690818776428552198810140580787355310347278515180887771732007862635709516044013788409673823894362368694103151249372543198226072426651767317247506217845104635837177495621474116887477736397225153842583143477073361885525584624596133412970593118550255470696177094709790477519068311696366269794887846180842627514007598822270816781153073208708767219255376258869337719665949134635444426141922090442049286289744243666479098184951325900290073080944272090483709855138025260660029304769736491269128154402052996157356219258487395251414886831256153153622872035612659160392176414094171944802247366885277815332896279975338022765591989458823193468840330429963385563751809024436776074000802040910150984959468814216752784541018286724994286064681099490358109695867939824811576165645593216389806853120313653811124208065095864933657111347418397963512894820036381875260909040579744068964461196453504579391733570389363604896425094197269845595447563525769686996143871231824882658005903356316952733639374599636329369924144855765851820867061878762788879090084800981526740291647318714716664677022653304174422201901482518455747921854082221758368208604848411966869772736124432710042789487142348737163240095838227146706713145712853897276326370415061144419707999621479801479738588875123069271715538068830234560916538363816324012207242997756508413354771735144028542675094453846037272509591459066600257079187179776405031136497943163656165301814764611236673424285786142140005783873586697660434143402846486425586741718602378277640790652388601069314893318215968826720547744965371945679737542538041242836246097926973997403085201865842607188506904711669103575464408037225282567730437372031309735554998038167041562930501626819476641959267558965384757321939764577665820073700707339574329284743302854365195280359101201110260320891362164032426692536395692400142411824763442077679301628719060498225158258909594828136321299789403651762272971128123940572662482240244017920537656267443994402949562679753408920202743132769978752224023963761562741480217977775894949255274944693625469867968250484400952769571670943107531935068350440084953480058801488049411198770621020478889674204407763698313713226056814493700447278319861147743207606560383105958187000622492543681250413347029076095837499573847793208238353412118592792666219292198884224538954531860903653815619632867894470591323358538674649296444682479323707330216889636100001549502746521267439030659386855267489917766080712034956623568135607109719798872769330386355004747991811684870213558909840271864243037690658369028995076027876537587447133692312787366586143514995297146195865238423854608534792219399555985242681003490358343253665910576331429593779318948491903289316018898819401245673876107046261269070091164498810398982763220237078701737579639624418860099867800470104186929966547320032350140837467701186685765286687895128135566081395074057995026515560380701904172853998088241475600541106998436048253781186011776067464623069189909156577803263474052788958754215091455088834296877753687323931725784547738716210267277059550459131343348450285128422648001055019033878228365585089180299518812975396653137594057330724362044392174731437045473233390517204269575742017034407549777409575632056333134244651862815075942280945069236430943816477671598988778128999342608758615850884256363919269140622969637571448445075177577813875225036124415048685322536710162810492769841311681237049471304748308292779975816980447656865608725553975320205506172390418191939462849719444767554326449385465490818425222882671633269016762520738492794656776411502420083397773130483795588324551838741346588611473297978151883122589838484170929694217541239144004017641219569865524808462858339430456417859463677169860920540902583132294250312486374317750864100972770409720745180995007957036827301504774751495130920857777614663491236646597367305706352197273881612580757790911582772457680955328195374754816857720484540499892129999689451593296821911614536193104431032023527402470209487544054229072090632043274249880387379875108347232389945210034940116852575899643469431954367647108239767631711010408700044300541846676335142941025577836019070124106263357609565814313499424131124899519631598680408652223068921039773996571120461313917144905769659047809426847002734489714751516945622705728310630824792019222657120883197536192069150840360170377568865727917179286257424682815094128940433977405005165589137508964285158949502676881313700538467567636041226345080592650565387502091575288268575919209413961799459901907432459222372536570661834558339327205435720396858767578646432652518492597653261106169585645313227969879646644398811744118090703267618866863885085384458984755539843265294874167866125827211795008600345716732704448065160709931501280206101161968138469692579680182147444665854910985397904585160325341952211533670154207510632323977577274207480875538967662608680110329029058307334814165623609320504953997058962095037827405002115460078542792124528979300100430852074760576569684187501680524176796155246959823856316703628657308162109503110796081876626688837904830836089083774788781007666970923514351431362442252398998979018632141854977279829037024305535146849486931505346958925100238307904269311680826239203866862838948276794463724315030415541307060511266139875401817166938997197334987718914711492557488262374277087634887566385045871753526975105797900441940815941315017466489395571968813518651147162790778401190317957052952422929529077064760313234915230211083637051372248915884156845306152710579215117997824027316185829605581084952925481401873128911513709394699839058487642870591684367466699285536473042501925496815230895603463563433995539994446334427729288035581436449988427812119338580085299848876913263454168441133349420069569343341864997490680105910620805982247430077458589143991778395012767547694759391866039717691255356538717530618190185703338002148762768083263842192367773659896349219241600547098616784660990822730916623849179646917412671149125262027717441210225918598480155273863436411637387256038425468566111159412850257051074765442370055042251424139537098575458187085999033194231335878611663036503469741789222201099730901820272823886780677855329162770576189029136229800143697083788291080708998686888993474722378119760006988953779387446462019220867977369001028026767193720224826551728339908206156645854872653890974097901213776171790066594451306957669911341954704380528552130204637031808625674238758135098761852641277364380429992951015554807314321541997894827560194009458445054498708876230975419978835362263663126055473281355856393225320532345573427301614426905848727634612567476130977940337802434373617830171894138863102294092963943630315112003553850154562661879935703642469195812789419467347475219040224160331819752994817868119700990637618497553003990496812057425187608258421124281345235625252488570072342109099342429813635057674705934078158865805482470829434685862058872797497503120023190500578821338810716052595982365781208611287183126011026325198788692909285310982928944813233055630858885200090251792591100998728120892027269645663460753035393413122702519475183648029790063544413707321630865833987789335336385708352785617343456658031246278389390273392008511639650021700279419589338354175424445522320967415106215178371996902416476864456813242261907372816374280820239494941187510537671166233204510992698401141868955985329295943473043349586863579763672382093523123666427154686490571207115276032921623508307498726329767131008992448363952610449822073343072851764833842938414075634803780074640008811332689431116197743061135826894752985456039391585399921406568379305917792783385283532837800875851989752645722569716212205504416959214493672998048461179628635449784684508236399345481476869714083221476809663781128474989046681195517873880838943928820473033921774235221307439945358032229963217227714869796759443035039180013153924780150149034884113449903086335572501705569902192284869947888363152461662959617566078425567662309071467614848951000155710208382255975583642245817751348209930169842374953048738593940107285703839853830924856013371887616345856116859359345911558869103804690858417585839495836911556241932093704161749923709266842837694770374353836076958086060020831492784614109017242022412616835776476087099055940378126774198064406732486823516000876446827443701042611829580010362571638356753270798699068141150884081783215143816942231721451810148111301452180621272632453548310392382812661769196473050902191743586508404072861834712896088992277861129898795058973502482906967918728140588399864044571583278157745013004782995843049647067197869666520977827415330196029240326852950737439214889631339185333035443386653556282032558863627437241476962689369577204184329248332617852187004636255375785371108884197747494469407964749808027063105579792580268653901660682042996822226717402235047266822627372129548928661835326439748399312905025648770948706422249745202068267317879543988742193424598583207711868365126897797166358118136048121705263651428047248752253580932834214191204239927678067422679089558946703840661293223120689543888628148196636999608617802073612032618648876549502113349079626647397966097829764794769373854299033254941464196366360375000253063598194222556494421113886828033638222463073833545925533068585460301071668849679572031088682066404804112737013672669147076891401318813898135266131890487270213269164278704831436460203523287766370792215373697350272349362262287941936763137497373362933825699247047533737912307797248402932670940620763061299710819660970385713220414777329065703991401147690241131951240080372720705453566609621519148895391092414034861487903768670527718438951541121914426750692451253964983760295621868621560905157929944943575710958497756304590686548544074284829281747971325661149541175723599528562224963456789132368427789759460962071306856419926949339078512767697725190456462631040070015821111107179369838526603008446646214720711201355036777036324316399131827104496938261801099426803542603814585283580449877088430891672800402209253803910137432241698697834995922365311652635606389917149669952836881838989141397110675262796848476865379943201580204534606401262472964391549528804004639815654012935684444141636251684993910475109651846101830327518615094106039972728520978200275849475971820456147206825353088342963582554054531725766309584667867997275551141785052936075757953314709323978039025131389321363484083323084132971050925288576150297941066427910698978814419768710677576220468811598405782547083434535393323141712025386250703688647811721318362952116786522323672918826969338994998295686616376295283219144020279780847661930597203273689412353252045411515480872054703639428665859572644561840441852887174517008255930307887768068447031451909525893309054060896970016525920935551804991109485783854027608353592243870255901844882834063460617718541798515254460803917141045065868778635560155493136514239075055577129773932189538685350776665670441322273662236978537020424320263870856478787880254261967204387630164522942185730369406296644469353930924245910515530926215226295383354943143742898840050068356590396755821662457056934245912014819979810003497829901651400296610416217764626380292992834049332664502862657122408903102046419884406828608373886295406826261090008012321232139430063802095626039779892565579790373332258696257913248863475371391714390898747369062634461509932497576709160333473587537386562370616175777006099984674324074815851754807438858111045582442766759113251422668342263486458676091628957378852526580379869067460747145819219010960413005825615873218821783205677972996421510259035189304874482994689432105524924227517157944962131459767866950518729676528044170040767004939475417753175743030026023062218299139294089662715202033903984978594934943416204241469143428691421675898368054865911486414966586132868748585627779595929647584115426480278563160759781235347385868523910032964017891063602930263749073395699786872135068734867679706565661874093544013250053237414907451434817500401311973182412674756161953981737944375240596964597275040753901340293843871510087173942488475961366254935479707631086162519904845992692953603846953940288111676007388228186754888692358099360828356617346682007883961243117491001854193816442281440946705408629080564499275721920673749196746165678194515199860600814845730303828939759099212539801644021776084064007158297287960411155357652550638406642380677890490265675212883710318196458399876477768371804358257205911646806856453428669524001827509282742296230867479309604335466958661734199127203165628204507654620016958426589309816526129961897178004129698959299715269030100781352002187750178879134485331688227485802214855168923625703060400332957535895391557643493181239284375910457146693628881756743484908849083499961905829525912809367584878486173654817627572795744616224415373315963996600464031770693757298396639393750867358093961797904990027505329364208579021446671086918682546118255868127428546637479708478826623331317924067981489641817846123818303382285668173919976886598267015052837110454129609182604416145482194303657587807498393743566145067455943178714485224265871091724227192550758609784396503531564021179128199330842795819439464016962410578296098920759133594125169801135905408526815451508169896530321962416300095481456814976984522542903413266721237444260208600146785494620543562951065649691123815622535236117162720855101540422092396797310592238343269616450841126058831960535896678781353355257568628003084205786233058368121699049755417989921634122669674100541560414308089620833378430039653090866827573673666700079600589245462430254665716437599200677491006665613276661685249728998634366322600809448579766246960842021406667671909144853584764074274401327575186577100181605684966775243174482306114840946374523333265409363265606279602897701902186898702037284946330870612640473819766517726240483004493961049924488052379722202388480826232381847253926231650912345325889801894458111221868737932913251710600356937660989352847997821444695951475570544604998539843046989059815943459296102695753888503426567750594801050734798759538462531417123099336377073785680901712034468197326897612361341565510396276662841170015920028577807825941777456824719074454623197547096210872676581659758651401133985507145369289489008408035349035538643645466772888711753525725505744372677169227057261787180986105760180658103385920680162970819767580640313834407511261289013139328178849654105202886849404336718448794329452200858829008802934249524312703797028574135332560459276624523282791615763055126297389123399337489179934846246188267748786202340926446921361955263394709391668369888117437562207110058028100427233319790220540404542690899310601305984610834788749200772584713191357728989615541621284744873189498271065164332086450038235948884815078142440304935028439167802275843556738571879433966590453279456664406490215111139518142203846321906899329193696052288100006707483443223396436777797194558756795800500223463751674095156806613423997936891663950442243001479320410596342832262903473203018635285320279497200894628498173984879574387784406083718107357782510767797898636814177493391982556314972945494368670253585761743375133122640355273663353624170480388090067179790634059658750867530744950677651780524233673227134579673851297638892953980166414531947479443045285131795744772021388238612673073340864633569817519970947573423049647256052720868670915539636865575036548183953726543055137181454559802874862445061819159918391343048512875057061879787928047504107937154632290407052640936947805574032057887381193576111571225897333531213404731109532610452657958420499920308603707269697232598879854977408354151973405764215700673874720583291354211483716487327652678931646014526412595873673756038908183693542457161554277680424066846384062216977917831494706684474230040270376097044123436296845593776533332306047209452277137655745147351251128415784514313335778179743319830953387766273743256967394566788629012893612598462488227923443763897195401681861128336703780525601578818260928871987090727491336706284695762100661953152579812331238852921241494724610684887653845581554706873790972329917716170472665242442736908634183151917435841681262268125951473911966964935278734019493354996554112262260867868690224028612211998567441747179822239457817553567692892282979668564690731472730606928989128349996748930804746337842616723173833307961566717489978850169250802784193479982966423129787184285080331600086085375881925745236315087496321701908346767599542404977752572845946017638602878719294034519780932664568007107696970808624226633023341977309644034239636179254104512533325955912068356612325954590809369737136440149473197684006419909790137613629038968810842949564390393747731184102104944778987318489668964945943480127333510691654162794956392119622449771042942436043128219278356739771459698134766566521913784756364669437292072880262629976820103221437264250744750368010165154954385303198980123923408546693880114214067731826851179720679052231208160417646417277866445073357545282813383116090658422779877200816614542475341189660870456113663855075268812552739162973546442890695478175673350024763670332188204315653783187791983439251335753619676514790934008570523369357101649500490894421846957484530606741342988280304760705977028834965846715017333785206099705302432364126123618622724378256390420000678375747397754257553744593190169648289927395130723676831859465221439375925273130166148414332914163603070277110142512875398043911992879114843071540451289808293556005938130483954267861341587275696981933167726981441565636905168779469633251811860093877865316550580860836370991567684760509147579139759653146133395570258720245857927129557301547225594553456402152579189733229808488129946823986092854587929982247254954281478667949939576786462910768331042508670216772182911423344820284207557778002368435443862239490049439944278291332231203142057245485548849803451657235907568878332968912869470327577322490046897421952366525738726929616546854056595610722864204281702120173745864655271664904599068722443291052306424182903448449492499992810120069958076434050498753102694306997383358778324986346035822282725139372395510835112141919504509943704504869448781618485829241318795781423868627262669867404811016884697170315367269067312695786001431935089116106523052659786743003663520515224111217711064738288603367104967876434117091087389298347390096598265295341167710593795173944931245149713624869444265826671317787326820612397928059008057597380161476891287047494364195531905150062912525191891393271036894629418935480154106764077300149943634237895954133106929717641630441982725450365358171683481260160172541355943285738346575792251958494507976903609971546267154451869250473453411470832206043191578642889033069546502050357062210063488209567791877714345732544222017762695463893266579955449044940554567208069167598700746354798754749717911393418466627062859851416939042152819775777110821044892172559671354244882528501553832836228687230248813272489253418360898379926099303676347021196751354927803477859067149715888003885163023530646648420957559151943396865331291861301478654947416463908890707630545376651194984786519599182290394394834664432541570972204234952900576746768576601925033929204182198568817813245276753539277179868037154768911355766612006801683845093621040156332931090746219605324868242144880789689614041630074810732504658334543735679864420074685911791589198413048226471805292179399048784762319760468628697494200850638065370848313348570779889155116793614923340170107451875463931788924828558580174626290976610008924857910066920581072654480824651113755232343671593000124691538466489392276955070674661646261564472310419067310877338510283165237562425069453929532547659666585879328429040035387381089838828283459562043220722204239436377966950415070410308906155208572094074121938616144628707257886039553975478479679700914363162596200701883794791448491895561162356325629819697517067314397415747679105711100523832560064990492821621116680206474234843154219356584372219120608287050213381889811075236130121187397802655445384433428834096227813312057786256335334513611468256881901293268372309995679083015256943606113510310878913230842181817428351668952915242918467994576416970287221156710063738364421900653509711765727163909309279376611373209316695008985708233661923618217748696887288536830140190980893785918599031295981323836416321816286610861189713318615915711132629357199844425302274029863170677283408387499565721767848326071946237345252145867192095523066540523622087347709008066239666860698231595499867055686939961049426549500669083876421424987640283140628261553187934433633825229254842048699524645384842158921638099740708090604400022040892504516019729373908586886099702680516458436261042546423227918066565578239328634302459045186017507101964332962897423985932934034550458620013936939506893407737704946397384007975958761439571458834134544501647583645530782495374365831459205222892084693145009279383454181561382941774372913362939152962149853005051374143271687134369392780357012374206675803566861516159479126277182846416488584619233426697976949216048307176286069702320591175939100994711853266195821155529971877304212004907078282233954453469889456422742854281135205165988600918057423552757499800924552143354655221273165631598939449026211878263598600168262408069015127798605769726105450932597661015280078881969259179791866099765451043415540677973501823956678085621461914813230883727991224629104165348263395766850129405120851780211918185068084921139784427072013305055506215708492357105638188164908279780959558109580263180360661569950372180491090202993731712040023611939784191684441010636237757721701118742561169361851754331621124534814907714153945543657128470129863603194047877764242760218674672996421901298796165267200992937857043811035877184350299324331184060727650703921898861087321510865701451425468065450861830624723341214933412604234930686999214547783552180011634907089575957652907566963100347047707005530940735702314664482921942988397435155620437424526506352891203996095627745320834595438266302624542527669579218550970256464734223562879246365778284228302386752720154128800316419641543501803383852912906001448097858828873491090559649572311417665968787468353127100763994698777156148674367044368835859242611536208516298781005841261045352160693311128249668694829900850077229605598923800098249205306702620549025659875210044111876286187160253895753666038085213796546396320157136913805957881210885787741319062882859937579105831248584739220896611912736241035583481367151111484642396218038243380939082686072800951631888409358295111859709159398020404889466672201658327628658010025041488719928925224812736648128024381820032797587204804169404916751624335529468128604792454152411318822227978779890283176551754602871851145117491820386979094320965449110527139027837505390058686124115461151105379330797795335739912967584899177132757413050849651478611345640768582004434217433751958888597203319384471017664394905105216140099589580343536593644103673848392965038155729366071443327302313215211608805120010369589558875021799231996481588477869089972997455867925189127654597563467481293121975632301647237837993277071782405485360799501429864437491419467177749346528790530203662901863319292914150727408486624358287217742311137799401900945981504542526263241811042972417472256691471952793187535132804820721867418168774867206588816662341154059420629088125416127600000455604333626598217047381779726505799217957120672700616978004437828564172417677789760441814500468970381194939646900948633490522756476069138959442166331530718103710116159988645179620143877220410008203872621037750160703853669783573478562876607701615700824730779316322726647153656824527477786973997931880136495858892740303451796089723108879821155616845284411462332618276058414161908699857448830984783129444460780940663647901529976590205934328602180398626680673537121654481506143693916092215324573088583953280509373387794824017106659804263285132719554902717315088039807591584947425788945607502001153287946756540807626721328903938583824757631161122870225796343560653144521305957670403495452293688586870593856605146677315051026504582866632830699484327697266382792151961194975326092466548849485407941039850766055817450670453678431967676886578105036905726620991256557817247011212758694616938242363564963991571934763597368183048805052254491597423314368606324711811934370087332146922380780453680369253471853231999433590142908704371723696122469338184681216091635772333172234291354722300442925666918268165412871943658444601934588746058761114618719138597199915823736133104880261362249132809895800969813180650483142891082357936698179529509759290224502738700331036903127546914953963966232507834202503839993606531557487359226510894509340431395587955081708027245424249851316161259575373632917491519095968240890383326659822833065788617085949781556700471943317724608925704179279576014953532878326808840195347519099253359118292314196544885722422425231425945135968081328568831057050093413852144618462527551255527099007653789665456424063995511019517049115429313370264977846589748384788772048998743161080877347298271042992175879572513045254098940093883682770730794756572956128381954199253445097138012486550089857912902224320504779727036258109891287537798139474071969805257113356745387440165262557807453703261720064991330477714158018343854647736304760848855099845643802815606152818007133311367793646123391747170121991604872730309069061748884489575976143234881333010951945956673389330629966788447113367625904101767316116662281412985194760860576944906469083683111035368710807167302536261400395779415275299156322891477033962705773119443716231413917659651268354798266463076850891254921354894614852447502499859506154161178023043168073362580244698652137255641708211872543764428662253084298428132305271834037041742353920679379270011376317391530974994836760244667593938480421728617400273498315640275348430476173454346609535192897313781589556423837241860763819994667685113449075670577107938936463088560621760635731681752650320082618161145806789331161284121309808094085729674248242968485135186136040604080598753302161176568778083663796286207059619078807921692428282529802329509419626028506646621957805047289328064472206378516513753583831533006028257627549483744495359450563238777346691947481364037460070160713709741947847219429556465208642958211758707090975751315621070115307900687289531773431552389925230238522999907034428125147984638847977410449185509654968920467581040457859784419982232127457004451520143687841391405299960990390611338162653735394565238148450727695389776374080799486355717131461350590483756741210748729815939002452092401083378321822172785747321835537855165087046746662993700905305367699736542988167794036104783350374238802983225240746589083013314578925301433840878617743006245946925531516316518828291443369382139783921087550702426113734490366762950252481437474014382606894425788602656380325128157147498227910682604025705033031419843304677510208129370056988848422491040135340075059873855258206020050279383158232785493381475026957684858370172392999322424355650535415714192898646567729751250949001162084693879054576818208791439217174192044476590900069243596879155376140467462372893034900045629112232910958171208834040428867071826555691356658436086855857511039353988689693487359399917346655905838824736056603718809497644140172001633123639575057226946890016391285028018785237830382197405427194520384003788752424725832291437307685355533787678893068475676584365585291316741731230948857858249547495683600091867612968433353214456375731311054299995786721035251294840198356435281953236315688972867072845655708886257224434905565671987307635344596271237935320678972765545776705674246421351204597378114974548190733794484436609978292394241209338100318142117207069271054223606008018191290439037819092847201766434805654862239624413380056411829329672707718856022995544730760669455513062658265235971920424587681248177764974262585315598145555398233804423531593475046890557158959930260303720492716852805411247677962764676219550257452669350616701459324026996071090621502441951553312321854039065725207305234914990085982896385833758819731466866373150984054566607304190404950757534055581222319628413244603655791472038887451732127710138592668733138850959620334731681603709972195077666510164242232330956551518900247050988930501438641886608024768760842747378139369393342926885778210085600584780016397946857814074598367132811818088595231848585979952122343476690483443046756146194140968793103110158138619155833985088506131353621102897492661618077198794353460438542962469099013247389212954271947568834134495042797800793136553011594867056506843553250606120849686101795623000871799828000856620536392107449508789269673208821463035577710966204345699988482098565898019844172042632061603737192175188167777267043206558864110745597458638468212477671003831841010829906616250694355976426223611619988866779171799196500118471276935907012333571938135077123370934622751738600188365624986638509237263100933958486743074446536202755962187258991509248594708064554531231031138488151374855406266827339738550324126216347205210964268184537546088184448047206072174241785796222201209011210858558290932511286433433733765046790772238398273893604797037087206717190791841882415735457387187797400094705843683195932490388460260075946737288643934624140669540927188041937347554992380469209094815770234383712265304276321097809158891985106670612970588742023721878349458506989522492298906150260562487399279697425230037918366385041094195780073466790671914146585857738468591678309884549564081222841509932844804514165293142275559476268926088577841449493328149087721585861804838377475458197731846301875640686227397586530354334560953722273685094912427861644443310370762076636743402171919662043684181120355427172304835586927737833455127013368967996914058485565315033947401009437620831964274277630922551108354409759461886882730402480216073176830793406047258380450016401673788467131044292957417945233885713759568508053555129045194086707350244906776583972362225349449238614357446142301573659144656519064922269661984359650435583710911161235389564590104973580508634672163380767891503289619749102798469762158790640800532258132501423125972774967735828150020404343942928742186311410776751629808388925078281397200284113036036539098418297698644850399554390908718097119642134494400305618349620766645262500506889225402083226770463180350749535125238237466909038473678340936648115167920761720146608458256786547957868677074235043469954575895311875852628116153965374139137719813155118601598016569873517309851782673744847548143134089134057774041404859883240813984949839539337645372738453700010537858448925248710739110760347586310341858773287108618548873242999100256180860256619103229579244592766656121404907798355226054393289535182984896673611709389097953406463739510379151748020202774430829288506741459494082751432134987766536923570170956664030976943102558776586689638439880410864834795049563605794034340601371903406101326179179840297096141949946073981668521821564260753375006895150694391545950425832897468904151148620156486208379303721568546462277974252663894307280786307438926028378896325707923298021120991501708050617769957989327367156283593350490224120619452088600605169748314330504899449306436090026035649979331199190543450913730734452236491675520696168103623354725823588970228666154955830230899826402044068024305280503451750263054689287881678182340018088489689701394522777760742517915228495931286786432461399731663547763763737690717182434113556744161032831998260149563612024585817298262268400809390499434950811685278742389300038855206231002810748496467271389397219280468377884960137507055721037768558468308657667802570707129130850199033773173111204457302711499013975889480273784090696554163491475273017747002054797365975252470534964582021757081695309951885059692590670647989382129537365258482388710670607733366580308622863300944121709831709947769978631956818089949652594298267314490771964734156087746547663257501044186760776133343748322400732841934839979681497688247643033281342656899126661627145740504641492977836803902564520856201153890155128306713947600121105844301539932253880057654825350471299452680774843799471201599448505125204420902499269713199128412470318523888702502974634040265076126203036134182764404387982080556495174734496619199641463978405447628179876609957959165077061163221617530312334136969640901676399775800104186822806529628728339473937215441228362453978135686638220445991316850682348734435293296853647931088180624761090970939292110652336818664690024632632234862734691543504381392727061254000778385906833453432560991267923306015663297141593425700895844257181285445947775171386687374752630064462807206651551684684353419986462772720968866309234751295977321925103829431999180198709519103195981586888072152618586465078335087099340728792867541567006126053217594379421539030155817051972164360547146230972182701045730526921615696511326778426050520413851220041747967446481146152741612668769049297723956410161264562608818513240470895663218471256698941584285673764122128100846694154937878776133031270128606473427969163212517040748911408720916852822578365414426364699659150090618990792688499294032510970861572052139081622400789910825027761183857061248638284495599269681160617966690423248706626847551113004094385974472766623305691684615318051417958774032532011457372093951344105476594354698665131795082701806422860343865918680263332817581489052663208194832990632467582394489694996154021679218367144955436181555462280068992086844227327165990967885304767939857522655740148930855825603879704800823801285808322666287256553122890973901925255088548739123439504495110440124923891462148924202686663843873930521063444986636684854468013821687362817368258510750981278837380191338074772874266948787817463628136226377519400637491880038024808361589424127696203672191275408943682961439875854101746294510151241886471200519700113558913611797170155536424766663617301366523350343664061564328636082412164614741799662105832823035376789263374916180074182961158233134123288360385536737123061882242754786795401460501536923221313680190699393196855679950301999119160470417612952310681701261601664105101516512144765258266084880866500680281329047193147699521620917686340281649588320691079801307346566961270752124333967038642727749321396488652506816855608743266839618209370515928903664186667672835599634638846359002392373372299158195018788484164947126408368576206051476577029916076951480128039258970427500952114808680877376344360258571602343819756294343453972615367564896585202841380168443262227878641749532183029123939889726322975775426529373679830054202418790773542258476658664859263868906215300669810928884722610752304974169624596145691030996000648876123479117735453200978277756259573089040002642445889439622702996706069024313557391933493295382989778619940793891658204907192231021769287257361042841332239471382854215490128405576171417651289485340518537166731084145225734805933180026292888795529482203637577039767605086115880750702767614109524709987668535308691742831339933260395031460564208896945858862453440036661538620889658000835093967417857750381036267110826703692643051742805464650597364804132961263781403872747578613658690979029501009975134319605820739089358482390062040344139469081734787232761245662422955829449669814441570883335766033954810181175797645940098277698165415289948326096667084456659581770058760011233711776036400373665265287870760543256766044258664883551093780693956618276461632386390260993282408624600167047347874920837110507611563023685979120197122334442944661775020923130634888260696356785154830737237715230476712550818181861814950178420943575474270654428737361948392959643656971774046883773836225667133831012111202363180923369108744934496458988702801329380646799070667222506659504829416006825967478548931658348452271566509907832383617088051732455928292234859068900974304422066655810223139095505444936032241657927074369674338248951214725027979686894465975460739146563329377568345621661699357950985608621802711370653892386192836030201041520443835812785273127787303079258561392340966976709142882233010372002474921574191192161903059749095971876619344012732641305313600550799729353405343004385187859366515141224585684087540151846320568852910478456168859499376324497758621901616743270831088742500709480070322261508089947356750490786118477137184265918013330862275206775530230533750522561933270839713095357132266511654478230173200340426181066395087438706579887364523688273026364638902770455449816591570976979742302070135631152566656457430991106965393546237301614708238048443226481348937342196566097588955656464311110106434313057892167137001362463119827861682486670979119991551781249832399827669596607771462064444294261255128954906362491092373504433139847647168070754863478419800187904693034836494031481426257410428694324096552689601584959561291670950828766728500003444004012076433724468912418615943814419161007455286400630598068456051803616447171923397678039601835965588947319426576275293051463762650706664173651759202902829716698771727588785938675216297661102823163615459478208021293763279854052028168605051906159421792889200668804874821263119277505228918760068586714365399233011935273418888632421201832014011647930878304696501892395250002594128643341981647341110117862823124763480472398193412873877980694778323332840575418922637853693260869722099272627176049290756883427964072939783174934031816390360181455921853006291486924197981165453957643503276932807351775627021262884010150944916210442659438202227890048592544261837254038670619298137060230732322767388127063770201756544864417183583362021207948988437257744115069969218237988981326457533130375103983656431857165434216800409682338297461755443746869334706827812473805022324595164188848956103607749021820337160490467799395372219047576003049628479614589232438455050766771803177383336478130704221605190744533235227275723463801566546941447811199441069589491071884903764342580889277367070901949281311851842118349031157311993312477284300487214029725133138328036890138645689880892970536208797627043098843305393998057232463054358423847389913639532997165000364862708347237066894804110528964481779442066819090183639137309404540446631965244952476323781796342017167820727783610442205079213309627015593704282668676769194050854387894817866542045157061424017781163339686444000839156085792047293279641491732688406418256745697473586330242158322694893489915093461177946599192342909119142980428332882566412734329732898005539450691715773305401914153089693036477911536553625819362889319340980189241522789751535198225163506779277123242924325611439033658772736913354023737666508050973292651309573940684949125818804710252184141103154281181487044953995381086222623118459195395159421682725317615213989779494014774360270138992884399527740163882487732656815482501269615280370571087759356808352912918474245891362030379503625204462101189757341417229516969162369038546559370493748508995926605130821513371107374141150825506793479412470572296441919567325635987357430977708861380558108291979221019740857655130532800528318783364695850270942695449205713923644053597709211314400470335657331499638464104594548300914841050693222606288879124584895672475955201019162166134189005519148919255482177250958304760458065243800754017733038528071736483047973470514408941322898820715822312465680664396144010158485068579430879429189635126075079466191984653785139763781533774681467453893016518334463243498181475284255123595372668686392995324022602389807979288688108117663844996874775864676468805017246312253106135554490361989690615635822432342359999564769394761493102758929245035972581175736562713010092978665466172591442521137937636239196517390433883732245032336132704472063194534076749851959497912435558551584242958422928373169065046852286710417606324224225194988627001926136206606003627823507691450796207042192911626878739683063894829699963731983952195557063450731524171955435822450306218198385065931642498030745855761792800720009272837571894179288057513480026719955988446002674798715617126871836998819271892616895540820767176421309795056854500816561046044918167207545285745992818568508868476013779090253317377094322522567974091128525825379672714334075923606532530503631753890731345113427468339004167829086247088845578509854208814934184736717934376344064971576966740914011772774882916129487818484400395729111618309301752362763044397768703788750551862957397168392340223043107249289573597961915742652263388529025961897513168869899857852151998462779083770253057301113965108796977409169944355725060974144783994059541458045840632800332763071890978836599717859967355028450861653048057754856471298179366683167448090043148056172152164025559373055512238865922210785999948785879340181410640239491095862587119970142081745011620974764347383718143166424955096508781894397901846506986098182476046722995722881598000851320164712545097925236117631893789772465337755819577223584699052365760295062483351484403836004241550738449594855893382885847230970444991522909223791578959255222249854956956350300418314106326998570208428940876343012234281033145820208650520045811062745847511261031720972645304144763538055376940023868701818222734897022950326918075894880141193002137118591118252099585639430527501397107729692864763368990144962120185880720648064564179786369314492226194618216597922741278977193709884581120560057500982925390843811926036316742936233755993152414515358575146865214340653291528738215553138875436221235321382653491944204358804927888927151497611939062202031878569051059874747213416413035935154604873285076954869909191414915389509933772055915254878321036574891255347486727936117724722735310879490359339925980549143318511974538190706133417537781475906680165614006417196503138301461690349693601149947710792638078583661420986013652652167130572000565737414430548006972173663038156466810714170076185677704263612737666827876827855979456960296494820224504337034445821870660032240283596462821916335949603169062753925066531558980772121832179825516088638573526785606432338503151891221373530641583826384460607003894969595074397050870489110295507170766845523890633181014848775437898128329652013466341381483292784454576002243094045386007393800531737635602452551688078245293279382188287706626707783459265862996216175547387933055133155111467226136755092034637197876638503767487808862487035420676509817783946535902190809349658272281601394806600680121524876898451014689503404198318479772790738368751270911252231112876668492252656669623614889107626433841395785993948639653630423487212887878498502057001121740518351737319665058172107275430087577646615047525333320616576360335433802863843150055618604361200988162767875666913592403600800319635118858916591250231160962562136428391348101890073380705171469059634204771824411635221850821737476382623051740908909413835208752819349256750290224773337715725341641808033781063975029592785796219846021180266904281888676882048476119578986865711201156154109895329517909335576940112448857714809127712967223138041359124028978910388446548128538853018361614815938636276627668903839143646048837361982652138031453751787128858483209558997978953387612299594367554682690262945861391638524098486251493750443084576075118454320612778248606042794160179608950769943786184185144244716866930650229323959337689456659461013513885841382834333710932773437680352406064101683666678556423079937200310504093276714530664834733810971976550580315424853103382366814849387718850604765792955318599297721199032713203280339797703641162991169838604373865355367123635629194604292268248291279143680644689943464162202546644385533798229351447521215909953325486365383048594491196724456548156176570154771829750508667809953058564222589792646938685549370455153873385583125286278615998045584076738771914382412051240634009081703461325882550749599075069513131789720691237537276397301329348164093026107482424765684804518723697656693003304574663871937008188017430848367929447123279971954629429994344009566421933344270322592138481827312127982511551607464931157094052771508909591085662512248941118828177557289118839312210779074110275337703869675318177337470452702521265202322166607686710177515724516962731744290991092903430019168859482871694571973084080350260597280847167305570086773481942922121866539851270932562712773362680944008111838922848083944423625093752339791094627409610431272987369035839857124742188885013799321130505469876841282048060533885056239299208618149422000602238244190594529588674320842122884385685222489932057560258501796855464622237031928321921986629942549297677546063026377305553090193200916469736631821905209917177865372336337066480004440104945883577982423064409228031832956001597588912501902571114458100869324919122338768163787216820101926937726993769094357635028211684037633039760128181045797719626709338234468196429418792175370681584638650235962408843431831400124609165357584151004754551325331566571655262588845459686652661227368430493705222536245323820860435925561386161266213375873909495643571459159321522275603960557312020580775440655812205058750786982758750483009282821834142345399731094780389249314830832047923659445922139047309565431980354161377693018388809363191099788506705051418454918995265247343931592469362350495547559003681980290444019113990651700766025094716464167945590502963597664582230807342133428538511811915621608929531036851921730016177386520997817388359283164355805849853202073087195247521050616156845646970100310648063483779960992827027577876797443769119168941403145484096238086591956841323619239591911775656673408270037432729068165044324986385376881438804546999769497757211584879734024053874587079252404209850601550930084860413176088169464697733473663663190621353645044521600488757998954679548862748505670896287480381304667435887779105068015724705516415674604867095100630845923346317410899153030114279329694518973186996809616968745044276042064584826775070793791774852316841863218196396344827472589083747840843336765852038468471544550599800342331760487755003809439662579326288467370476713850752787337194368717499944426385785853329795442630652360047578608756788022039323198907289354613558726354082689946950059654410203389650308962883072031797029958812510536884890968061389386396843671300105663168973650291274532821711149639961456345683324513112963346284837011824059440347860350619661988839011478937051336920189852105613350174903891542262708915768382955789700062573837145507147575058293175180884353895509407935667246260401105383308041760364891160323403636732273733492670666091183408858154436962445836443423714326314298572602465501120238901874817868382539709750711089441439025154216124590234343967325389037454856621139417427240989621893217620636174579139510500319327723954530365921564172835950444193130705424599099512809932670022147685733147342716731014859006725440880724986932208880891913932193174475100158012760611842360237198194118615796018881568491078333230923680320901821537562402228337115189202736779478542585719312316581041269871022363467693174373257024010824763761453896575037537894628409192254687930279032267750345764853862666094222647444320996411747679721430257234408503223386965708123428930811262830797349925790753990544694707886766216308194465938268807819530979364500658654640134731635845847686408573686012006275185829075620665349015954156465901449458216213460644305422984746441865002789012697737203852078750859792455549926550122435225574310005602076001316800478281650151745617752894892892318066941680935433517641802306978352896373933793500079401601630264599687462942815948797505071942279039907368114907621682047235884281781702944989978062110542319001490352422815491598201477666352502444282049885991964512240169247135765034346050811405181147729106656867869096996939867761531330623802324683230497119672643121415884668862014024839232755707136117051961499382879766673610619563778096955387255380477678151739950163625548018323381320771296862581590869488176394592395241287200441534001838357858157857858428443156768230817485958204387137647059991720856181732767629257862214856434080404555223286602108526605203108071150966409694481562363995689524260224638346403657472813867673640846095037699502163106143549351495545177581795834915313817924451146043316261854305270960155847184441616410087907959359937856465417002636248836687654421125212436077217041259149395028933103471788627305225806574991757728210439219848675667408297760464767609104300741595694933465006676216204086396231151329124699200013270263958211974021324244627231841504305002921335815852904501146233970430800973290399476669943172331261398755070684048482353675158731770470019506073037613426722147992001996215495205440425052167841357634017244733115829763924820253674901876509637815074894114185048483479825166208620422801253932829158713067283820525474114197654559145590849015464703180285559334901518060097015388277241956692875651772242144181878681702373390282272526567461722160306572431231934271729915044292550294317346590641978447780269534104349233492830276990378605190761843258566261117017909502604846375103355224916292768347386887099626599782000190654924127156734960335337591731997948350056604537815343019786353999543872827115622970685687472245539133378145862133962655774999658554884784888133934334130715866037866657242463094400712531819234192459044738818497692778626824356062721090884238215337266150835965976169259866369138384459792949116081455241628016358313765414413078874436074236821280756010510457326738368265155944798558952324623878531897695310009650364345000419530659071251418340139047318945868654171404812532742599523909677261597020228446096647703906817164083067080871090451468478117972256913064175087026694848159310702182943268861317384710734504347984784214073124736212495563813054358235814858720883633581830768691527034119947222756400000100752742834071726364093419036687807873568545641000811612876808325912682203381922898870393103399214961688226032775201344614300794673039076609967551117734410460941790084889393785377071143588299444211886134631624865432920114580460729756481345722944481341666095132097251001455399093319127992015420605933878214192922069008115920144198314214367913467504428233335678122229297656928244943139086797628698135329754507296443572337330038190362656829369692244179806966737510543644739872325821838114358312854738913668177950413397795773511555668439047549673323298184277490142542456458083393864837945312438620191570183835942728515964696529247091139192794571291322492352172236493356637543657515730917961113801766889713538609225789579738816573793673827238170208684927968670613554300218976423601234184175408647307803312727638524766627824034131395374714581011078127820879069493911422587499300150976724923156958074588797470025887469036624761644964867754384209501765171678297837322074260745353431211926382928177311948481270978445247913167423135567389654619179652157309491655321575840890848485667345426674853829389753061407303147468719196582691776692890694007792294674449356513318134116194716660212788474623406255054921327527866153243910470424540509261429517931940838055095085075570779734534282681979560324667301707445061945763129721503300691015143749015120282710355241235501794337440542124937232801955310373135411826141823998353280882778874380417140157551034918607729159876002163798906494945408896535326174266841229755970585407874915932114314945166294885458444251894551916985923656737096231190800178118131155645449318483656033718828560000478960210306310796831445134865396406792449001431971807927730035632221118876334395385269283913839262490917685761363184749181045834678118926369178685860683906928767403634884696177688355126778510974322316866802457980169238180611860998785059485099525179923181704657323775319159546509800259898257953049881751840119369611769569464251804715924705807106743566115945682043707629336470809079724720031089856514641694076039590107810285192895840583660974228505407926638244223501368524079650188732621545532511801507125750186925571089918608718228834255798551953960436616624391710325564272189861024163231307648005670184901075824328620628904088028215007017915796745039832060726754480467247320009694665005310013006137771686720616004803789013811041922634269072784829764297971225368316069914944791109481709039825186546588503466308177602422869222307127417019165711730792512319847880187542969709597031772709550337754367545327226825941420976996482348981892300199114572182277439009919027308734600376755576717297975208691774199745763199714074709907456593581346975729136213462552003938301386456093355695729901672466309112721926642967017631756012310305618025201388846290180500825500391406056720073820581447168762861515027209773979430385766369284263371327965395223463084124238864338929899524585528303142494622062874874180076161336014817579582669827069139757759031419054446311607882767565944377790360532431399964406993379962002847709233933517907836247318394773836639959903534520991088953395230759270091868350099080436049271650126680552507436704435443915464030259195286535341297447307809965138290377459416743291485657113574652493735383744372328635406267871482971746422753318180135319064071209846661968808518321621060680602382603031517632672112521360858831079597956275126040317614829043135487277003166233768235737565328611956920099594659920833703742825756770660827515035416325249301216208087178657590403333288037638509078676106552361111559278329191183182892020722642884932020502938711087795036041965053322352685192265569680326778601344711029178210766391291994660423584025817552209922980638738443247827136925835337899046523456320278081292814439102220771038413772417890142309709351983366910535155150897493388149549124552513687760418329837224072803360729558553263656579526547014132148494110158990796510326496250078363730760229647302455617863505016716755367113591637403056792871323518304517790055037072470650281597568435733797503451705368355343659526045778258851422915879947159119472652036992096380610405334631094779953183204669232833182295644834734265287868535625104905140552844802736497863045451370643935634059071983051894964070180154696742480174416276308718230118482048771920366450117579812551055967883548922171581126946237528688844002456502957931492302425648210563681421437972262266444932603141156176001352375870944900112543543959483502592047783482511404857692109426679951393341216291372459081190496206064510280265433834165156039189827272233931485875292715160773716061844160416881253150563304098282237773727242398010688521197678043164194364934247077007879405102446813597661808934756246708026123307207544917125035852310213870891149308371855530218445776797742048080308668412491906681490567035451225138886708709838881929452334127939000772216398359415840294106337844960590407232536583677420325894047748090967072509574503268815822135604517398088626738222898323667146633587375335327422425764220628253485324963962222205194292533853660079570169006228180889177726589856002851706787190482620252467864801168328377217546502039821322965188569097130644469780196831715536598507899916763902611620193581570478086853251828369773416785955618078911144611527106249275438807052731518167074701841818727642121956154700205460051909645608184148127604158635381997287790899415138446568635129925366828396680056436339953275849059090791322995856004919299736829758499274976913695134591624209860295500278426929355917787424245159728499151467287366364348801988227233682916217048238389150291692221085278253133753230404750524950646932065129198913138998705495740805205108107856177819112591521773168432487971426696174507753833203054016538237825173390259602656679903767873815888510846809592529139968811195723979658461839674822913783261405291298405872987244945526571337642606227662572802074757135229784410433255824497818054004398027529463446139619569942119193200833213647042983441880638752952460389493953805938311768284131316949622487388991824055116707132298115563164595078731412535241453778982429202150177732880115105668301218457434856070733474612207236153068223309710947614236493834034280368024436134894155740556092698859424622437600884352646748660265936079839570747264570418094754824338956829102196547493352069432541914979049162617312922267693385057689182374993234949835214321243568903395483864069615080893060909108249079098416905761572630446857960776027951462277631900361299963367459625240934976781721501719871013262562691075406557983085428316339629025366415169029156291836365615888210703115524238180462039769778013620344941621258073134578026265722496289980781021559123727324581811804541486232859130392331377803916269880752120301728456848039270381568912078217018538744875367318306018678055188300993372392693907735516253387981886330418009865525594525466532804185144512502108491679538217795616976382602407396129227386346334863101380611535510350209926855770536904817673118232028081980207302633025648511763193766240587455217558415765521138914713177389386465991109335462111594678360329013669780860078978711822157097806370350590982560499333284201199151980724995154522891811898456784543866074953085450680315842885665977697965489652057088731046843089110358302873295685785575179078404914122027873067779928476599394149878253199158570279539130919037536435677260278020626335330707182426393922287049491020558023732036227211916637187580462655214251311317306808428297473214640903380132579157659157593148380009916060305280436787119075208452274243399433449265962166510734246522078046255159943387865687953483794861485407010295852538999513330706781073219955690736849108826441852871582334453131999965685812415091796409977806366144383307422849292314335264685709829260743508921078681232598425220274343239344354132402441225769688869431978318935921973327247782050535094194756862242079282699627872435581230484814053404070776760928405710550859074678697839073364335952879628870641168931794478843286606755335432184772827686917364219314189099931361275290132953481129743828819112876134532461695653448071263895896702743776286303709685152898722650466029795719198145479436394146901176182520969901193621184097697976803020340023816460625338201103019610159716790778790743106992849423808012759137218679606640182710869854336632528783305045342656877298269970620472371274065522230381452262999305093734005684577636206846295694965577214737798334827190506860102830899368246833663028462979973686747985319283935724647010182954305308513204734725071095554831460675272311683145765553067643408077172687014591429158766706230823575918623987797013856572234827001052730436916056002979236783362337830337177006242983467592033037201916102650031630849269907058081519102083119684835279136166821449090261881294897462646534648149487132787386953872914388243320049868609535900688294680485967928563469851141469925997034047895473436683900320555122219119533197600133310545309704515191681222310504035697207828163562478700798843914954165113742966575995855251884086028354172374288904124264197688446642148743611198586480823594176407995287984769614325317904269108105066026866556391138355178264357202000765540723334176915815738905165112641173848444960825313555993570815500654476895852167849961544420764339636674155535683935029504550299624728216940011171858417512297820270276912219518665486340816084470957224611404640301942530243264541016305398512456127220739704506769672564243901584135128948895336825587289505637408087238351970530147357298463233306839010670488831260611593552661611384892793341709789570241150936260896347693596670541573264406891435807246693092975604422452039415562389687211460151921884250792507119288871917890617142631417698456045270085451584538174072460131723363472668791967142662616896923141970302196389518221733294234208778844181196194620861255840535034830824668167173237227926661004384691222421463404381219567600920916323147089517204907805351408061797393202313425734969731797203410223995737990609726446542551838556873755593774427355407051083295060146764172507875929887720748341634294875134860266310074997422718643291019819066141761690809583377180573079812818222384164802162953661746220825454259328877762312029921381013265357367974233456316251935489817407373908404307851212016739916557207617345954148095677191875787317210548927064584045472629784482295820183924425469820816767689769059690468283156435714076252863835589450357748123230469989206499050035658104187733751604722215645753834893085975540259870320151966959612519326493935659014557263890303598835370602065400266975859463543597762470655795322602911409274374093509352966976181662184076762237113754369580510213660822758461343326568273134351901037397432133298843729768901316882888109369428378219972591606640197698356575783980530247409054414895468437777296572903281129566702559736472587974309517797395548949728103299900137886495872799730495360072307654823767489541731416607844300684200758549699848454652142588431534793574374886649030227895455602555741186583958813619858429109160851238355841380303187290350746977277802233025575142948450999203661448102745667394154838446722623980185219572513687633188825839525241505484618840177957642228872823279002265305517188935264907506610182181676259367531569573130783783894721799604030343207345633713116076860581104139581358163476598287924721346555602273013714043421081006990930379853197812402581650314416155324474174578860830249041222520140267249792413928282510224517394287209061748551582512053643671078104062235790022659181450195402298671838352592295462737913876120560579154448225880377613164036747859957445534950270614884460087086568391185253875735333085308869270882360393868131023331662332667642331207931959308815845628903408762063596282501187231224627575452295299672462666601528952637538102668321077312727571776404035065291220469338860050046486867946342597265061227284754891140277122593848379136803289335460144824311054547763255196315555637816171382868472995441578200471677477112891774452779045690086277088718037959567405191624304434330078451439803537460529818236872515871126176280879017658744502207113165248750222477576429771974798021826639255933937010001300932077117979188489200611434423735252900625437367696205476601078530775248135409494716105121766508005570876197555504231050459382888027534257685466011813379102277448426497028181759376560518702907237200404455641025962512214453940304134714086442369669414903691523185959724911548048605687412984198820514886020956871196645876465332624984227778792739384175097981030032663098997152348247525430976466309044798368218380391036208879602844657622651591104312718238353502340904188677761656917273978090760892106146306002484549975068082747831626742940759713232906954017763019846898252376605379026224965459857123603158537613740811626206197798355547464455314856244102568187952503854451800041118214324890069521133761227140170416925436875337627728128140402273931862140282349562264247327380341771772624706993714615804564458863153008700970322766937036005035839854196391485538034641135275631309465661384811605592845351135441247574449670508789602549837701110951278418600769802591412984842744752873169018866170085902774307861358106505231074419512837508434162234874207444488794647044758771404184704118453323538397985424252054889848506982139673036559053391781982123079362529795476216977531735094970570919966155675920729765710840697951806245773098316798790086577926230158061304083852679896245206177500091828099435432845014443919192815355523061749913316773640927808069772467092224561655138891933662654563798921113950258869395690164299794919550909290488915444084300310491031153032547801046113989931590776735487573773474892381990684597409650673241907893751394568177400400691920229332955780634409396184720809733847197022712045556679159899721100113638807597715827472570035123270011909792701101878248544218118602640535958922673609729381746054405988623170766114621484402385693105055157761836888854581434863412493868668934836990398589773645285215621808595360596128203421133099052779797802616918416651360665276162741477769197733875566519782923822996063865301482364360358775532005828952445128431310091752946827787125407394943765402048509537466081339824177748340732825787627983915012844729046823853322556261327914796299067105968423693448126354532545550458488298219858164810605520006826615146535779112938404777302417670170512954141939823429587156271474373586542049939528165842829498478188236306922984287089653788975302740814036163005152180646985831714511684016480495306042628343257181501592828503316114018695753709388581139677007612996903111068363997269708680610402300829347383657911058680613874733845482888201381705148334681905580120711513167061613528911875847913110560205192327010308352845492593193024263444645362727729706649299237770574992906056040810279856888654319445760456215590635549974808837904304661578136799182011848651108776194188381413517111702778569984376487225559909723936694852310638796631603366775417578027053045692278146041315066827636242134845892930202762893758275417998683073471011157813930750337970950798607433859395835717877222717405674604389996775722679954507487951046947412153665007271890659528335934770764208568384652108665331763772275691983179098007842378686855064631701288410336645548032468194592251485929855819950646387568737254088505485269678333460720470470667051169298535084523704911718829507492588996075918639282071137130394665845513521989614029314597962472929657509336883945892329486587969636186164070444173885338387801806610576031808637912166176397518326134069869738362867459773581517764543571431065091131299190214780195118324253478819631063239704117330539576786174860600959089903250784967732081268913397139283257136981117728950706903379718617614525547846154728629502629343870594571494320670953021217322981357586900344164573613754276062764012606733578380820460869135217258374455198458559778109292170950108267034495265162886386175742282983625265530530352981537119271627950604209199546878961252104336136351886150250860529763768647173845660005962641496555769989008266362095607085345134995084816064024306936416571139577021526615408584488804967132282031939925412677434858713164419576034786460654935814015926884047784762110216903114892789825321153579447704530275606411358546508287027030903292303411294283724821331400778314603653442670463208915394936137874542180570115833106964337651503569440970202659233933301973153769764445032053974590850000626396285934500935493092509344052804358920460754895810541908060917377337545806356719454337259922346870598334242801122200580740449632236708860839803611697484246188748548616439356397472967658807400592410810300225756604051281937321646486284236984309148757285267916149963289067247715789334776897190095264654164013134718506092287309016823227980763710088710486969026067598915257081767054964601784162799958469130186650029113526562614146540371115334859848183160442975284726622340450949846768485651688777005391788996601305174153114910823377395474182539636012957374215119518377563362810203914090915371520698010790869579509537446909618107130899242754015603844610915392123781736785533317937786975470952637130583603217096051124924512719686180211036804579642070416206576725348307695942122589797779764245712131553938657418036205025172637685144003980651764999255913312992236681110150519464543460473326486577655071359288863283545680816544793057972229965400235339405682452041852436399472802366265955113251732452950816857658690509952652905089824321663263571206051875780330976813549834280524061101226076729874832630734422770060917259827359818760517485634935737923444472056929767022081106951383408995778411401260100981680256623766123976492154636785703759265838545478041082476051331985099395756590073571026720833145227467065386888677546502693478916828514533890891989689087668726333179865689065043442677638809617980723470523925247117543138317515470340741512417968861586782192937500931895979967204817944068456546680348277585662410775113260829502095389217275833711575977877216438774653946009329366575012812143552881000797720379152909551699361811049999089472491062141761162766754006637950792424396846714664706967219122017366970852068259029087879959687217673362121478607977222164861319583364814726356665158941219256256055301220060558324063005187276347994416181092429170600329717593229554886439665342765340836465709667137159341517372940593893511664919781167599340853888088668809013490226088572748469040037321204284785399683095217366890560590489988553985901093644161817470813083598524366160748925302315029798925179557199192633783183914797782205917626277294344550847460277039616408136675408148023175442613939597770855733996365113537820604311574777790967470488813288118491399203049000792157905634589663943701697024541439198686690437776630366397480264994337592101312604559716205355458663134779244461428806983620316882319926101789751309297999672763105023336569585944107102766385167782000416114158478957252670032522045229009051273075558373819906334181912109510038157307929729053000074568587876280199448961229368478537649378799440418555374345294547414972256223927318497016014966052942012249046540501851724203503823032105012209490761183220220811179877850591640758532155408636088639268787421019493953737998178220962988820508195348180659386372491881756521173067848205413407202732343398718945901346980755772712710789020816284549335012052520832038075869015764773251048104844363727457952659040280078971983077063600388763495579218082811567203815986215235753308585370063757107510535848910337474786550062795862089118182836888829278326844077447516115579196644844655480914456730376512800601689397867030780625248576431961743668522746084638458093432119923183743581832667447960703401206488022444071700411996259003951914439822058057436058335536634345198680272484018745655795829691392383198128416403738385456914756936835255219901935306886094497188647503064527041443141462067870076547636429588637001880750455299196947488310380317326659717926204528228517684305363815850682512344621026602435115673558471044032020932712751536135963439563590919351871583942625219442554172288798267419297414330731015590027880667728569391154553548956778180104360969847764344407470143999851823822174099720229879782281133681931623549829473583943800035609723136510253323615722608266473199882441100836792360438172623329957367163153388769902113305928039710431687655728307609689908477725201066519936124786635498615168618205516292047987943042839277309819025124821302457729089531338541673263315527513772543166971498782206396092718028280349959813629101444055791891217573530637227707182718665388746508220507759790457751543983504929793880648557776826191168796124016995753115348365119700763325077753904984347790121714473560859268786324554439307804076895763734208040087433910135478717188150544277279210731272385439491094481381522084027578979221364774904145425052300749513849372960239343900866159750293860259843651732078585806515693207482176092698859419219532786402327207126020022089540999267107991456021552289135067959000868770417822848833597935454063880746007001888016673350932754969739788001016754286428593226441778045236556222312075544970450211156659906213053625151147491823033750713227980945790522526819191179778818695190370190649314926610628436014805615861028792293473652488390746391943577638015323519755836657834771380159970408853028399239633644522438069592050880792277415931733791643243322287831333429624567234959826809184689299945352763134698240747226368934784720115185535923563108495628158977504433832360583382285547114004125637429173322681427034322481667735162970626376558396206218381168725734259825507529299746280157521150755295057794331129736318548120166729715096616249729029043987278915766006593926382669983221635437623342823914211394311867950104003899172900827539018885132050194953611021300083207380052278070676400591184003197160804228029102519475540059305445040366296397239494182839936946175416497883162184676443856898160368826533815005303035343656549322448668897194475975147650121307134213978435210521772770160627043796149932285026365489352558843227060924828853037128128420838195664121761343911989538386100725724722364432450136689977645685538963081912668881263951689764569904464773018177863927627049784681620946778136042474099806747751926812069479349322562767716566216880934700068376520079765619519020901325318032163260560003605310803918368995047095690424618756886633375663587437114831896879868428365110188815826446231088294050861982222351809955114871448602558154259447836119448560988161876371828767783253068427265517848364401864114273816659266969843189844146143741018943465566676088965397064436599967664824282572971278341673376521037130238676501993285679595816554574042265788076361686454235992213020954613574662363953628396017343908872877451430235166610971187617982816883609553140115122614108684092395845798600908397549876005843715169775616931691087756137561086076847835164706742868438169485110686616773044496878277738634060570450129800952958798022854092327166845465040789319455286874070375552586546910997872950390589292853960780508938383019375846242905235581404679205416885994321944802504757339524370235560348015880242042570794451607523688268752763697208189428109807395560564965710320941508169574395552131161247773470559659202170930494470674094851905952893213262053221232571968327606929177461385675885181702305673521979972093914358131537999287103685481980967472108084616782217353485506739748843123139222632838851278230718425957375821970055859136161505676954876371732894166564314264135316393124038279213901437205256057688332740505624701343812948697160163952701049152944453032947585965243766045255045997382256183263821760194500513579812968336425814049305783863321767873453856859915927772532939257945967876584566667196264791570376380073787263393554478475199326564019756118280799268744041442992122101204244623834081917910344939525266958240613494202855069237556951264033405971130690715748327510092855683570765967118752583455846245845621464049473221598910889434970500951135635524013334929169310613287705459888402589538749929898194462124453348381777433387121085039332390458570309334547165934123553694766000516677736964788740284588238120871395956063215747362405247010882428228979652501724446943326816170168532783071408673967009853504077006240559450428782543847491406880212031404573167879448359876504908750328420398774542558789871392027687920348108073943576553357522807827797500739942482846625704144303322394468078665531480342354008239022453369242148811152363245494680978983953137107106915606388347797197772416394946374428206575603551653005163837091884107511242698323150091108428659805315131620668757896728407345231365588725262118934654194133101095417253229113694535054250050804034573711993928600361937031851090766350119202109425699734037815845554523990700287857820219981245305425922826381384844692843719984812191696500466578954271759679749501736994958064016853646687254321203245268978801009875265497922612814005408332409897129447808271372267079004219557575489887467375526679736676232121129757279528806073517167737043578232713609581607926075585972974163892026211304702572450952616302839713445522131822455166670508448440976491409150550496213209247369013082466725807798393304546801656634500374459686183300146829326160137743481160997781029106950535228957509389782328962399051195979286592501612652187230659517046083783306659182301384731616275225550363363412327766742317969279587703777368342039167192453785376639166281829866838243377246288512872299486470459977085990687984163502444675569891943606839933486565005629844268220742272662944221878239277956608995587125974983396899759187554363033526654254958749097796599905280778513826833082439884588278096319472690597937859880277256760030118820498952872844772532528017117980824550080186613454383817309190248458753103739288451473524584702684673872869440204871436148876840227318921285992409784927983727166128229967957404628175317323759416117280103927782936844561932367108235710815172807087153913854637512262048247122603517599906747926555375472467768717610617561660716410157718690881743123893463115213937050436067956364165423140748680362403509094337165698457000005480193551073397928218519932188556893178284913440513165697144188846385035533678622494933176496570652753092500291881586826902010412903170244375877738778933584989737450579143225778390324910542847894873401213697946515542419326434599954455258610926817412859210422306593928858974621012416018267997625416827308381140741735406711128297691132056551709822591929974529312043721155717009223870419838157385392848123418274223280436195493122424624691354170570257015614913960387129118874714401321563320662870735179721328369599370959197010761535819208511420266337077529486836781989689012301725519836045044377964802967412291399453437128739281753881875515266796864525059462324627291392118703760397130948441616851013889778004100344688974957037268781527075932618416481116179515183887387371021992554020300472896354710524432271422256666872617759179978472721682842502439580121873647467846272285348432165930261098987764287221254882347276839260953187561987497034347090057674231023408656960512677946488229797416534713228911830571263225272004459077919985711034085424151754353648393725407412164433225100030890677666270979171790544208736795131983821749664812933581417215673911495924896059952144546063250295823797061618011071172472358738043497880230023207265824916287870578613619895099686419181454224621585035597352046143615131395049706303310647943850643302965997320133332850156074515311347665045201055001782759278547576842540844525055629141753726698468176669466761488649667186721346375373325508766406735586347617341731784661830918704636694674655747214951834597629218692408790202124531794269880336065596798012413610749670369069446802217740723053986908740398507573875765548737118168876362196972589836162737437462372292018452680233861215390841956143826716977450006982474941043581179142192206224705381819971058653730423191634346354116511621300140958773825751661642966135954825346233672985528549857499766442836648333272083309276994787850841046151430266726523321712194708419685207798689855916104548201979542794711466823938871093357039947467773493746945671883250805672474823914831358286175915998614044533602454929842040788161346474399807153717146751467364609428236116565204209230772746803993655326717572513353198928687795389605461884173684428017869870668667117901404365966419725527155061905337705481165861232529982307086694911276410367859090745248154082461708494171028779847623049419127866029992825188308755109219047427992178879529908762376669521896770425330990097534331319042172265849779672645572857023649434384818651495315839316589417641932121423520033313867592575056416100974717440869168711508974986380200594807764673326829199006524313684474896648307827513142318625062074345802556885803880131874767697146543972035846481731531267377741051327424186659261365651019935064061542050308655562417076670256082839048041575531796282341257974069131323985005655338244824751377285212024587979270587808981127962991204253586828283733133027157760781252971576719048580531042162650510131995320677355217608328980880193381690630565578153076366629086054368951781175358943021493929413860167129149434959326554934361940644270904652390396626667109565811042311621932298773323804355850740084081935866482080505262542053373585418408475952887919938069608081918460258716906961347811167149401805756241664649070288567774430925416239234169831475907252695213524248947393254608307579544317962408242901001776570174903797442258809177737689988702870592807143315507891739843342109351328412441403617224576814780299848584215323709364731457512078584437322770217698991361908664246610295291217059544868419520683034334225368062326993657264180007216889792750383582394978416812603783378457367544630191582052354313876180215243188538753218937618117285820980540325801570890169531100039012000515106240229662933057911988899842925816397478669284649481182995163615812662938570659527280332705631613240342364218911646363154194856756921572696671066262879745877621748486958857105626487932307364679441385023974485750327293272243251362842958180823832690611291631685327887898536546362310367516893931623320355492507160278811667986003786063884281810364514634791511075553884599614866237583790245754168932410818832649950683363787857348938330838147335954779513301088982506402703547480300600968061105009803319370468253900066102633740643474095886787316037389822713424295625162308177584875241129182825657707475852549581002846561441203589353342770789031607374989672783866671442640781627185536459550552634677679364090559661906945829120504693496767959892399906847712998728777911471831097433329196714105791599213852724762364448001441400202182752640452565565754418245682012392252384199800543220286505680336039227008700125393697165623151813506464150678775461230967278801379820202876624249232427335961886552195362309184980543171560656155235339498089616631531625923960170183183512024383441327790440561467854923504784955195863968821542477900638728850047291765413818482853799866147208512714211580760740730714211625885900160310852496677677430678302468077512604651910748164156476522605500101569694915787173312367686528485800614960081014474266899086925961180963446305872760223776700323970334763063561872242802475092242230325743059434218541089617051913537655426561286076877794888549807727212645275171777207096402420459005857599005676440662542639140301814581490802801688065035584603263311169729450908693820644447943896563806995854652480802185921250820894802268240609231701586906621652114512353180640430885599971772305937817630028175703120566437695495050653353037120936103111096037545768674983302087320427135863115630119150243840575814580387871849935365521120921386260677208419778832153503068462971402557438917052731593685220851531498168719885511218745378586752052761233288428793118102941127062748755845688798631360323260821981274802595773109045456721315331057589662401513817342644841797671408362648083488595845801718844553102386236681439280929440715260307157972765042163164182779870148922642456782328107572592069899333198522975592401530094473761676802229358308058772947637593956967968560899024116023981884208284630759769844968159719146779202338418376425589476188970243075395090202754049577241752544577105447146282869121591497549378457763115528467807247890891997790436951279479725983300756488598728038796903400145222793087908801685331824751867137553743965125259407415909587107719249654370170283714899471803337609523396453866928117271244668072294771763184016046126129723720237915652693784329755054450029552893555882632170284206546940394737077481280595721085137961654558908238472747691223978234968675295271291866787177699451233463104893693787509439674200638079528779764113260813860996885885363639424639443780585392840454139576797191396219697138444328152860303200968119787278980881019109827188407011893571683335212031261226728097837002857937645133235684900434672811194422746091021263150121850893451824846826560002034398451476051211651347993531395193616920599501260739607955162350389825132560785700149126792049779532702778803896186985078542985124200080732800884511256789047598841897812792740707197655604009650924076761268784589605584889858610610797077467608462463501591901760720717493129403337909945612914352312087109272993144683473053203463593871314808728597533977837001441724974587640710823375637914385674000892378157499432207575821141809095384402067709305606687675795320242253462490493096865050899230658311856647040248180409831057921364618460457706800054110090184344936872392032357889322632090377748540169705872882987403847318489975209375965094217826749476886092212424886752864742684002775187323115453439974500889712661463216369778899949061490300109367543841773357091003637362414441742777663216946901795036891341798933801154783826178832694248942593347174705633194957228942489736789891343369608771769018484352801028350106074300169191119785701816259275494410781137002014980827688205526814088339030204793923068416313478939033446339635407145730215040237437369418565080764988620471466318987184642098065865965105424712669639693193040282742331503454935928143835824239655119788834862217616862086291378043797241182983061170611708111836054295986880319135726182174097807973680942408473665276515430229761287306850066101864168547255658871598927559715362909204992833353065557869987745834371943030849076248176369410749836534884253073706404544583394987194542296479402115359345635598180452273279148359800470472920595015109759377308219903456696580412729021968567826143779769556624641807804910085576919553430843197668534917419778309380132679061673099745656125753744846832622968700126079801225133536751980668948180029812387979374710249969011291997578496219788816588456064062372759507042104311630339283868253923586901884161443316519958079329896438884506205703256550271984643666533715743984079547228781269313897588089415988395079069355992088627919762970423959910003139598279945216065286282857712124334175870942005500685574126042876055802171798203945903100356390193351974813046533243409119155934845214739795495098208625190555661496957945649500812220742995282309719345262310342692150275602378269817723772735028352642379009265332160642511718202158021534678919663602072605259048271990114073042330890597474115037727051148606231528196323189666495323884675165415993801905775172362110627330940426432939237897052029098645222677289852528857304190334034998406676430684713241827737113482489593073119393586653327745179593454446404474857700322754238311170072398077542549833561000894610909002226156125634072533444970826233741413383804167637640642435192749152521949381147196222257973991028679930770116530609034177407939233353368601841200071804657375212391955033977907102138315297466209271547924819549760150477499747534790236763641989808835893387578512311759124725529739025470297167592903127625977562787055581126611196865690112603551165314491436578508761158536326975600061066400212022702740656652042082052829214256358124532982373918532015660677361485336884530470363233115742563735425254090911906377480575511103872888550327518297432580395193332209937713804764666407229565716040422832022193494538337926884515761632171364659064715039521025616340289581274157118516224506405636253026381199346737507309360266572828468292798757639997249242181522656241601913361012152329561232812315183042784275534685990964928294362178948526428740720329708786432080995458305660028636567318183830484473260724034529117375583670677452600168335324946428036133481578492656120348491690994982600205308603935970136719984330249628226964976492047970681806317290975783754696492456588445120482677245859200881868701025405359508029740626228448037860830379797921993339077754176069241354608078376969824055006542679428802012493276210415954487978065105473941433273232850578796061426553968338433625936346101030482380546561071451834301847843980703602907134175138871011098565411389703807805648109052519454507748820346217315153835190674505580074397665662312983593321490854104934755201025698711032731717875007138798306754902624684978397851757063003258752968084992414026154584308346110999258201474539452419049081272868814995444392857134340473241385115218043646462570858939837207104176787586203985923361678462283720065115793091000567446949829817340365684599235649105530351321829275286109412258399655637724879549373832293643008659752328707749185275941392563720470922547724458114470232197902251829617145782956917612514046750654636360902103109525926998270933820303793450817025858095676435292908350784001552287024138310447814724319559909776954443290357724858155112789852188421333175308156873752271107774164373717317854069099992478120401428705803834222669430131081749148518911243335313603008239533771592334379519288662930495455740200457241401425067712250466972769790026110786148357891199729203350453847061051836977911287764169729372128380815747201068920517117328901134746523254169583383997806370738209526593267533438078244970650018242700301155665005520323693304555645293813839325838609086379210081438753271831889450670770026482469918392550509692800984807066286092506433679566310122509185088351579936645763615993818386010946928553562823693362245643709587004750840603567837097572211300416502703039121927178656578644414450037529674348133230450731022189495951834363640515047670083412667686656390483798730083779591824680109317113376211206398868100040571470798082060888628251947189051104551109852612874682757533512998993984986259275372197405799501992732015416303954328108758449293437312690283113298503327253053870951083326194711271185856007220025318696342129039367019816317033825862763952377832655450486705467626643354280762190354934197086685165179515965418198051365780930442216953589613357259253840113886802742993812234168801224602584798841524208793866024955428003705900038208743417474075716040854526266885472075531968868199443562304465662525655499182100047997892547158605468274314261013291771343151045896751601397046582459380565918014590117598287208305409519922084262974967240642546646901741665434637284722741871633301517479258685113997271079974539255201010743577327660485930924130497233181479770269034991872719605728259852043858500732027746911834567622544849460578630316175706501294004084125268920621359586992634569208603529956555467215239074914749105888706835941008953456446210065682357962136709073967552272982301074572685642166119586140004015172256156155050927070008674914497112678929285620117395759244806365606620098322482644411526661940710471374011941564006798824780475168420485478945093450044137488037987478371102745656472668914654481408003867857397210164819550359506845808385684970079598299801664200445061810550461672571961429344799207884530684812308452854169373104068118252685246569397348526909964265965044070909711191409869357126362299118814604885206256552668282700640761687081811274591728266671380755677422435915424302967274863134504533478418853238462696618674801967969553009616808424711030713694153537747909736922785066883248201699327143838560047285647989043000616240624561314172434671683072383199471444846847398499210561799390392477988037582951427929490849945171076354757698278955261366617312615179991602105586444053773844733607655047544500538053548456839902284484709468046971620778389721061479128744660327242968938817765989822104248646053757855866754822745948080648587401148316004707577394561399199157554194238916187601208987691154699619988374143628209204277536013895702092519883367050616586112283847185522996828868213896595868251463821133824518261421677290048061251004350753951076303160912165455318916573976911985737602264893138017849509441249202139495429248649202237002233403222086409843290491387125747548489605421148103757731749307707205475599117885347838237796165431415642201521530729842889980295051512378541357398264273100972049447660037269519553541322680507346576482934868645188674776042880075477784324248745386636261018815300635664927015602419454479464341244779931404926503038367049184724472557883618721460717645314433820286530813714524867201419484001075613379830629857361130960650704019198828645691091455246688412822513556536680439488186991858546240343233756326971578906243056616151538306025416505026952288260489303406442970632460934609067690750974165508838613836888386483506352133145875863011088216250256478556895882226941677301327433968978596738162421228099414155501895787618266353477285024250506837850018746482269025897186494833238485028101775376131083737875486259802380917587178885618820058577555775705986240828671037153995564300134645982032936488175107601454373063854375135977539460347559666320133101255601772559942584220567733449581289820978195887681288964820593558928631286717930824197059112098344740485106956873910929263118755161934438712875561237463757431369330821526970780826956489358845486476091900961430754790327761354831364267961808644725991597051906983661912732952492204943182194251918828948708287884619796864260028144337063890495089768754375075327614575796654710003887924401974106097624649526581995506691664048723133424903228280152069196065897416657051283651939306528918662000866768269838009410116445573997540678485532469730693970812679949156127104138710926330510338733581814855831265327199716389305012504347996205162432192657058916251335526774208634688380146618365786170643527346864837560185271512493503898781620093719936028571969274101419805335512645373336269070653485305301678237195373817535499041723218767869567966949373550555877161708603070598720247424661822639595136233494286883270859782006343456203075371339058588365477303692702083789019502691580576671070921510032013630408196582045463857122463370536049131672652462294629882909467136092124339787197911253903869601509079679276032635541143594410931761512993914025349438870416581295966479466401295487026815057901617926729986480733328885123146319597960017695630649807167312288089369640252766645398433612530628298275244753084508487647021128762533171089639311118585105677941225360061462210470148872363782563143000039777107442901004192545477391684702094564654659680708877169151463616519013053532536930527234299807757335662251261618176682181595292236440312385586192041637510570691724035841154833575727639980587113135694066213758159415240917232505355597831912154549678725325550329054000398120592366640478491679596233859204110134773986107284207606029704558743000759311100800499085730484650220295764442597503861586701840978394545577861567155852429675252551581023941125211331579679713389042910526018128622657349924193358807817256051127976563727977075661459121268138755113030799519769609878871596961063458700798641739540176193956834275481463622316928047395772194456821974819603667016428590100341053549539208009885018168658477660568303182176069624919968651032271034720651006050231790568347474908407533339689679628438199435764217743852627309914440124478230199479224867843137556040357202238599378955202916593509776431372004946851582187649122572542126559636908611947998717057012437483732773578814618311701718162966469253010631223158785898630507451698930201775292080307764635255341547856549106003159939108164523056284387289420224655895719307617197762276224212742367497062615715645914549286926917643266352287529809698376977729125697837028747066276137867820834778154375571069970408814150542220912928776543205116673101091596075528887479312355787606781869754078450950384746965355784560186430154057281220221041123578977066516680482281256367435372798581596685012859588210695037740728982400115248002349835537475498187520553328529535289133483187360972579161788620429757386582116348780363475616726643492623924511085554200581555851852353225619929217148255247184639305953904958033616183623968977067019417376634427146826068901937986772433238575183186273304477512450723807817339662232138029960149330573821544990793483560956026640050999385599526280836860954874766621750485958074922238938639890154922371537051658049746049521973167947527023311764082176900863571706243938346493377060957459056664394074456885767338938003452034293718004274619400554147071253174291507361338143651879537548232705905408407090916625302818774822046370450065631318478610932080787544340599510963546151236873242452650861962560246548414886115555647259076193679907431197264063838292239615590977086960064413809605540922631193404096937447474093980241709409715926350280025847440772148749236582880442990248666401908940117184658081425555456408847202283361832487567927119650841269182888407547384577290964776958717381939530160651861725323916456369980645291230706946641861639792943129636587018783988306443022956349587617439254242269166317714266502230378815161235977705603338796716761554152112609360235134869553562702305848808089372333213134744062841496511557825793404807986457040858364324270291071248288689714532207205815719816888883549635998648330135742237360313360361329767881157819838993464765830406914343506825621343653281319342229273683287266699773809713392960008651034956143320912467802120230473511862332732178231808540689203072543922694728138474878864051773916360589200043140452505669840290785771665296166103073149661929108150123572214657525642177240529667413273802435427377446724073261439738437412237200066351190701133398411921705289837682739524772113113319931645238318467842913329892560259822362322556841383608803175935041820136540863862415408206842610796329375842966723464356548447257725934110650263466820750447885871849208695275926004801234789196798115943220859543625027408958039964886178451008145749629654590729401906780540301791027656887923993633467825378521030073367379234161534908862783014127315930656188303970663369165654579489696958748962737745743690968330109198758322985509214008169716625664271896177619327067320898472689725717827836139157636392305091328499336357353112943644918932312968570682955762311419111445453452900065158154631057476517556104499465760876626684268510046784135336371209402091747226088765215306108505143077626432644932993999711929093298360946196515663863434169176004836144320928040723758385055950393681417563911389667288207029936012783525503218806771593211082257531289363968813863874877553039142638908084129495888443104380197586757664907618282921999386327357563046723128267805521801733902861615719916296343387232325785416161186823093645446071911838915145854111994998003055540496730601544638237906428299439183632116055479122240552419256132104401563672250342034490027910456607832045993377517081895079715483552261413060424370308578757380065667584856067685999602020792387082397918866968323164429404510938645266651617159199037052144624443667063614924335280827961142383813105191902849852146648811329435611273148152020812635159355732342505370231989378830861415723941115437685710344097498449703576533595764833198823023573952346219641119120058150303392686589695620726062564638705214593182960692889931769604734562788325189305204875452477713347787505229580791596158542831217507140888690844936783147786158483930157294829026979429430584712855266752540841409010894059064620513008845833605554634010263928318830698968185276679231801330162030265346675033594759237780710144206772269799237783351748391026442063215151969491992810874748795666028401258329161550887954091847424817627628405007398178102948025878905936160475187405435848413068814334014282398447918330108352179232973673784835460726691071484663737829772328230889097951726959601692832810040972673097319946423618457212529897371403157520845121313457938078933566204703378108640512464165198091925939524416626550514622273614360692279656528762417162805292864343224692632144163112242812007621453912328530866434233317513684744704553061973219743505300267632004682376736838772332412575707579322549775248877813475597399753010728590276047162326312727351479589576206717174003843030087734102951113933086830232980112913956383182356837032882394346308752328523799837075441025871419425304585263428834387448716741446465941285435781862916959739668284139345513508204129907258433654437177192438591136670327860793848407808582105620671662681349938759371275829092033833548610467861819878350071551023857047969326301903754530478495821386437558460626324353941535658573754010646242086315958176044200338504958673602313836945553403440024219850822583759094150914564471005776582246674901374196406522502464644266001847867812054041042192739527228204086626410760278902930109956398635881185676955351927572414090146491909175231250134829227053796953988288908190313767443345992985926959078037291920483206169227473540436131224377243947224271282455316541034920438984156060824499006924406040723207524968683403535614355145043886515248581739365275999741181329900532431090814647905657958147912042855280790883857800904911992875819656930476302350971461396503568854038557777003441360720370495866500472736661679823497522362270049034665566666823772725663901560869664165076148723979636637377036811590930635732964233490270271947061415990570171059772022286444806217747537910182665909155031638521078471577352217216019329505599870096330085359805026813789610212425888206508912113646132719360345313260869370169474034791991441051356398867830795428107616819080115534632230086728595744459927138882837292007873909918147981111057197832752907105194835105834935285026001706569501487903724370850974496272509392758048783517807059078696272743806785901230153188695245497971648034868816677651236758503435494281635906927729017734699346904745021855786828023176892908295931183383273988224232361400101389618544151838695617470314990504466697654348182618889720137308145795907226326927967506636536690606939975202521066509912487401249963888868273887658817635381962533747376527308769860032463075162966854849817731405011440338349505248182481774425068280291190394882391659726597194796608193667607840021054453090649110439257732665114499218572142598280622276235394511781253579074323897340532255755475612618274735598398459827589924329495235521834445833629295251663747419707699915588228196672705320522169141632842977383128782648459136388087062137544701796782461762417164157700066703781657761558356119370462018746842800941403839585736872468051018582169652169036004876689032843862178127817272372005559339663489722334270906334489538802355436944907093892840540007551132711940975753907729773425536964232020398228005981063139930440569611002318367231801430517344614282953156475842118022846730988246956611320678049469011648456595877766488851934972268669775215621169683146325344696880126009415402811400816821953146045135483262285703061555587836650953999940505619154611317634782966847508500710859840741942438185423354533148870333678643354385897567252107506843586271024823105486706125978975331289139530031164171650796723181247923639088943780658995607121200899449391276505264611152694622443005021944031087861794713657075754529622705771973332101661450403964674460322487074725290744996409847733839920928034609165456962005323488318175104842161865754587863641676469597942016876063001249003979596160382120027859793299253514382086650977048525169279302002343880499799236970933260062145543247180338392873748744634684852025025486825095550234700652446525821051218795006402495912516664857512960939793996054094067971575773717414622237801535420808008581851283254472266746704934223130815231760170006204611841784795214071413298456426974946323957386037471330144498953269805665311291483908019343408621308926527489903859371975490833349351316171872818285642851796698007213434467581246555909600231018233597350902555446158631272003224617277212459347274535172134327656203077093638795242879412751091717778635614894669136786359241553886190143225821149024581308982508690224353232258804863823095427978792431581097145864709050891154996301784779465644578433262585984093159402270451272938654889933270526334409498575603062278077542234638492462767718551707217147107658011307169965922105902057328867868388823980802760596792439351264345488838331910339807279806095367176205221334862976591933051096275109990856681824199938162854310850145096920661386853408637930653310533726645236384505382531148708525814776136620109795184449673527960348024769331968027259009955118170033846338011564910641689796431305376080656037863444564065556001470137585549630785105585489620388905854967150773967415954416039788393090048021822765913002940558657056163720986893224721853789769490837703528474381047644145961419700817077218007067885946898493402254004565832363195247862938841921140375621894694482920511404377302950221936880371338503421903951781062633646961190086032664117356377706396552437590849424220215663739461995829917177178590594554597620961800153973896675674088135821195611469437938158477014894797548544684122492365007531250598134502432281722405093978129420046266479392638748287045819103655558443466459302965347796211701430510891487491541289402072450607301296692848822097396736277345956386554567147394190095342120200895984788519613903955803783729240909578131889000930816933067604031713464142700723675820074742381980984168748814056442791967015609592507540606873518464609784549164099193331957468450694251280392967165970137870286045330282583647095231577211992234062181823086538439017062446992528521447238797306783907372494715219216890423262861845948870803994733421484648617364900832911765843850068876312081486027797622739511027153651034418612056094546292579160910613550379591186882101727062115062039829134457692465401667986084919001815013073901018610548734662523586702489227716213547778755887105544927111007128211033951768299728700222624006456510819244634246161634339041849273502293129842615108952567664189024093516822188078433631688735285498971136535265435468317366504146015931637628173931539570575549754759846208877228828801401958671453288500951575019090095703962728668232603229931852276181724200430659296133641083782698865475553254913385509045863960044530052658950263131353849735073146990910573347887211564171397752180321588326278594702572781091320209963653668225023086454333607577998588344624425417587103698817975089269169937342701946470885632013295585730672267952948991138333121730346789500067118329481500749108700622797353829548541175902925605096324484765508930555219868978229256751153392194453728913830477937077647665190495820571004469860150230295133170823699922624866424417248460732782049444177119827490967444024980149440903486505495968345651413038405608490604764105831071790922852828852403756533227604906062303863891660743592253258304441576871556776872835293227217753214630075714727285073242438299028899019726188363433016171975932335338376590137623142459885621146804170129788004039086421064217808589958649704466784872696803747123196664783794077215699168390414125742845262528526784496861194331867978078716104210743478225811992470365260023794476698580938899095046272966651897379077407720091411192519394251495082806724770124524313875011558571557400527212676190575218414110796523363018935348853062099344403461954640225377044680292550463287166180253524813430258519940251235154719883244956652404271647217899882307747487992952758508543666065183498289829985837523925947729745670320990968059644501423508436428163517478583976708427719038039925319170442826019305124395754223842901389388668558356203417328494092980600505927410780402083247885782658042623179053243386582642004331582175279471037962341648522222256134824536076943548148939946151601732072610005679732553216700606147859361073823096462474256310711696931635100848794777099645709470796586611564500672389702029393496412760270905276637959084814765549001745103427937162688186576262645522458565609719518394149643497489058159650028622381743458356418160378058093665262361486654605345427470303943435443461114466523953483135226842740789580163165937700721272385673982117458457091607740798337276596458698158209204727726005986486316286790748436005603639524535682066302396159215058272381801412419070079721613124812865211197683154721499026671991933831860433124678075575823804152691797090164459296337670010902453726308127525682420762639094821308420775517210538939861481749907952022275942582746298742253406501599239639864812163620453229333345929000167530103893399313497928056085042567473493751342830003477337590604111175286904318791064843602895172388254371126617732437661456133010840017532673983336147091438941933327580940941153960287818485235514054268411329034223054626481219560514233881821565911284223140890033414179318989070177609524670652680721865261775370046315822347695288549972334086229265469483137648323454810725992009753764335589882842169476539546454606588530548156598901886034261049726780519303653867827920081858881968185717324887588562055013324210600610080012062103995014929082203024418577961929018925920011907150577289174121675181619566407060293632409565978573660500981051312042419594781594129721877648264820925114169242868316605397533872335208792952125486511612470983826764738017374408456682102460944641054375312254973719034718735527009419936815304502339548926098008760631835033828906385903432973928233019811068902112186290492234840815594486062574694744821251585297612537607742911153181567631299522252481582013560144731321586345133445491369647679590546990504696586890047088274192139804577684870645274627376976649756747076811778583140295477186689542465115367191621518429198166586984286085115464401434214771355327653411406776811360719686779568956615654126588627785852583563014112561954554696763094121193344111797605489621493345293911481778814394521879776995318415178767723616969642008625578500170175761531210482996352427117327435602366069785415425341997904468923105625574440210339428004693318257657519716426693277035524627362338324371806288571733988569611521699883492014928334633273250777256005198975896837954782978963791722700166919591577255974133328933551548897947400978976512509982710434234380251058363746680826711137408386803237596798659551418646264663376379703235573683948442327193392322244944106046918358584044645002394490420774892497817561133932801534296832767696193270898436353305259773814414118524214770038761233272526095607712744987925869041758614004131693600223499214501916563336976193135408271712374003342043956886654527437747641512486896993764313637784461721636625605926946115864219592883484471037668622980987016638285128578251547155876356987116595260505848000225274427867674501081626166943037333751388409384752973348880071979563822443469865369261877387021682383711450734536795208161286899109563236049390849002691944671424869403089688848495917911751425377904977520888049121113791621555802541363256418912405582526821459665914853923555324254200293966473018957591848117807795619582369570053649932176004074799971086568401283882879661384767906592878478746993301186752100088113809945679024621652802483005527219179674115848575864601956006015161629705678309830218448532670715299718042100043046759171414623266147218249996386329136691107747817156184421116011484586655686342754868993834898920422654724564632898554385208591840884261406697477289102605591805014048400398441515566489631098437726267292511308744913823440592293103805655776752095721012370995075341919292509631011079451204699265241897409715256340035504020914906948477845761122427629657102566085898517609082471736494536363880610204990054254567466808770205706743178728506698174717790528524273494784836049214939737503829874354058797769689325468623936733200680030567363922319686209877333627299919888743544265135383857375979474276483649171365897237772673224291357598974139863456815866924878109378641518998663348868608995821979239842001294403415548443000479311876664307954721534972184000943594950989174168522788214705055215886297916296619474665868763805614037744160767673466372711467710731203111353862148994736019832834359417671789218647319716343373664403039095618017042447309395140050540979098605594450636022380132913519057606168067698320231022166924619562944004160406976340021928635403567475505988914344756541940270611266465836794782737855644783278583910357738918878920080249056738604368219686056895977831501828758261291460102271826277224159404372777234825686656947101577575743048626725680290731387643771035265957042013664398519767416836693170906413963013659145353512384328174381421306180597259510756765313105803521349374092054784224654286867119558508523432591615947969371941155790142772202686399226246980234936542705757643475619445771461401972530475481822808326130350370014542408854559646205478029704758669253192958468534142363392046764686419806280000622028666306838127708978629955520150637652475182991981419380809059302186482580982501554040228591802509935586108940473437210457816807097368336579377054830598847915838794823613462202257019640368862124892254107459720175668695089328028204716226101662673551596442193643995310962431235556962290142619623995886282041530118821742548196406671172529779393574919279405319369527928475601098054712432542741824810315204414519833744255508623535570976827651117172916397065168673621604973825422809097204116961188303255729030036325412817258472262057078407794707583515338713229149179311000016469390036686179305400088773491063051857857225072158322542078215865277796591012843839545092422206233836815723901457072434204006759834853364501367804026533752913087838293183892238616752852710320065292241828013482419674232481587124585256035220675206992249379460389522311194596478970671726539595469515625200251086000476410157079165603452734917550437376140575831108202913920599790515402221631072347276993300184659137863353510198680740332520432642818610963861165965053287068675344500099113761266939412648792549083523688452831476045024458219876573063220621534264609730658954406795454254272887957658186400130141970096071744800707563675111798390990296543077635450761499017754673826910139254797540599518885498660622357496618167994314479178980478368966678192014949826082992450436078582860817850467267077043182575165165503615763636576961974557780611774287698853613041963890921824849921899892437079051763310470451539009978849428817447244249510813097405289224062228188813352894741960458556639284152311409792537315965816397783504934952942926665734746180267930650700348283693051713369556786835127038984729213925845577142948807152128130698406912774835049072056767896834485199203386868869997332028730062282806946237116031103811689545399757358211665820740878676487758859095498558477132756829905844155951498997283642703270892673317229070689538089040905019835275747270561921814039805844682269205030510309758583292024811210487163015605798624069504834871560712101474837403482671850990820943791306304511005540966556068577190781067364249537764753756732932435992299558492437304350616635799528414376678635497711114371779026833409143224527859608797029916956915179580040585656659575757368636809623899972799344202763404846165194809059144859098412138665374446294264382064053533920365774416014698481749125240204372399623230837407555213899262611465189938579895267616680394363071693884533059853841866959435063240046009514100189142885497575440491225565063257492405790379898694117040436452141951414259975518285595635507271673255911764551339882252205363764635228460568325966891023310048752748092862749672289042369539472111589098091203114432003660805944117882568851083124196807352254564081661894837115248216891204203907240580847510077585298696627948975949786459965423755172790461902793331215590563464190143867952300064813125275996741749653055625637461458285486621889565303531448721403805293782356999371502314247421486360864992360829392112629024178878906365172043118994803290258721701236980786602637424973487974682290262080727980165647870790638617756555099621405197476805455753522921314274087504053823987908756124266430855920480261266169737860582416838400395865852546423120714694454706486673080737851666921683281251115956839373899083364950219706838128165645480887607913922749935693679386531957402540585983383588234284583527548469540223523511533656937125840068585598347634215117071402925276885116124791909263928651282773848572790948027495946808327749977343128491529477825847855051987276759138181322845183209577995436932858923985781399223454482801335237791448872146757831434272445936659370815981912777230950632568853606315636052729062211146173727829379636169142947671722986047297734217421936074202708923900457197413289159541508596829967561088601178787144318105492971593748369923456740712365743407075822540625878832047551778922207067122822510802454121376045852611037383715113589268323926813824192383013001567105484057033717908304304655958570800278307380019075223128889124179522679608029318621336706086767795867322474337572932054557755141502571343414485681140161674491066650650349193375361458868192793129827214255210076577779339048968316983746147390308100817859198517406396178687550562950269986218225098384807951014077227010385817917062209528680210796614736444294795791366837022697418841921262970578713360054997942566332584341783179092953544746650113398727860488015747946739303113589359231518002603080754378742507012706435330335014150407681722127666101815296902615407492251702237953740797801962779342961344329797609699406546468747880950566510521023677281428271700322876161467793275273164355772946008260470693389474394014086531027726350215462026785913405733893296494326318560502994834443581197628699620122505573857182817468198726768262660467249541697733314652118483054518439172012810198273912975180315729883609511052250660165183272202122463080520193523955983634227779775257756180868028510269317925346687314434652306061432309695253872017909394308688652020143226984357417431952422401863062966820799758296426289471052518083588796693272914567591701478729878312551350584860646697732423256931529076705812604431146953251040685769676353793614519428254919182182580173551545743670730986935018805880327816459316463437911504291249188157327121767153431572395996445857908990408400416921353193943413494526625323884005187443744136056410219960093081221475385984003736058000522611546456261790252932672791598422419838696880191452212078693572466781854284974364463613307393553613230350630586119544130765585475894933497936037253267028800673283391206353322737360988671439810658460370681193561764671140017164431349450965454745699319825188656991136076189451632196297083193861837277568905969792782800727124107088311150434934652431562076236170757216979850077561249272587436605493014052661965354709016794683414094471853392489166761218111925310025673344896090043369402059444056959433125572758336152063616594147209748579125004919150039094590866259623308481722704132371010726693911535451334798868690563260378453248833985645201006324226506565544863399428553772763054497683236444215445024130289349301925775228733265441417308803855478908996767973687659516343779115500368966755911032794587863218636658979120630752625755744432849397246324394899404965962399925051186307995767835988380152573080548623437613828248578146027533194538245547242929792084201248458146103814261313272984733802402355437923777220138272756559157077174473290637041432613916459344878570631407078767241245496234201512232049356795775900259255208700726124232685002838899148612990408061977591060340377195158994351075127504274243849181145085445376724132841597358307533957973864326927066484492488503143786670825784756822620609739056143305498196795795943359230332655950369522185551965056939831413939282328350669020111218573835450899745688559796776623625492201351026085746843950339303479551513215336502498674285288285994471658364801852387061175387879063318066719422810503144697244571233542719774612621310879773309105654922697573102947891668657120729312097953880370800887844213935356908395027701032309963308704085205333496195443143055158002132753114624898507838068187829568959268350684928293694423565802259041856639747000035603367957981814155618472184602282464016118452612839858032240731366878386543775500424541092373477247261780575493598168169450408663053695225109252206435162608730449130438844785037413574832194144477854743629231650877233117556044474357372028841017953541335135891051673663898655905469417546014958675457886694033969869181529338585245195005571630946188280806804713882015425149882395421751011120363987046038635693756888497519518771606099454908100714181992445393991204940051479856872602164959809477759938578030399889874642929638826846325339730149757923238991307684695836173625060661093645474354187179787628807207611482843748670545058272317985986372728442058812300303097797288198387841314211179925957162702482538298941956262310119371298064597984825395067555557578444356601735301672817692277847928330487862548104011039834454594252752180961304696157157961181650441815992925808937867330962542548630716427897767014713171065722000569768038628936871985309447063225081794724438835419997955093856138951346253837500167576036535852634464648726758387083359073990586247850000620748423806588355809657854433185869831777824401994683085490698687810444260454475895796676788590179471848838201453802904066468172245555296005359092680446924237356966735842696402008736545902356280003190505069253579794316873092949628899951480530188226598570659101321690817722953878060328241575399692635547924347783846209295988897919539174520735560786512945579697824196174465445181513761933483958075123681046516062283636258299900898757964492639125061808123293644564645485282315583236155451497677243405143496510217202543403762582518473187650726518008881083974169860511862589546470996149108539289568986514276429918238067827178426323265295974330205713183965373448332802837907216991496885632645332562539603958492023001462080202575184539779771425796156782463365446783522763155202637562152983382838607512950165933217019658826900251195156513792979377079609101033896406519617545301197301283645651587248799247836983010868513419291322164870393903266900818909470301676777541209026643077495284302438832391412170421019223442614091611782500357444784514387491587649350694717442328069908495548295266492342356169847630791093636273820975938365377315839027956870499338744127435514833847864418826481230679804378461134523536687700976344928068286262202983002191396229817522999693735173315027346176699804549967583659779000827651130796182331266653519018832497997431644403626410810718506534863048999173612621208889294625869060566898360252813726043137461981873842416392337381798083236715699220319872206573262716798850015239848162209038843910264095793018044751263123127447401700742009310681379228843593930855479054329545538111973050263485488529635671521753214502545720600623583329850054897742232626617958824345100542482104796354266237403435565750996616242682344603481707975259011944527370909884453053006631448061213096473033260699045372675447087482359544485024294434596675638450205694771006830007199609778943275413340483324233420526594705687607365986951388414559582099522607912027242688561510308085534536551781921327154431580315725748926908176820085078870109514048040775662314150492655377307751724213127316458245764226529530165423437728924499771753452033140961082453032911965442930641619836850865450396482518808977774734900479561241250292452278943381509073568405003264919416812047719648558331434526631536787095118056326770307307424580321019066729916024593985728742481909702640132865400521869643481098460512238737456929176009904703686321979566601015596234476751488952088494493788760918967031414686851789292311625377207838172647393822743517214440345543851228254831721340561584193250547867143105469613635737473296626793750588168960012844183340714816405637056892966760161020739723850702344583219714163923531707488097257295168104620745203997304825302227848862115960100924850672146217149628753109719993525650991508216956027726391390049815756142028274130076071773753989372906132703139586628078660397194781452029993822521275226367399078359385239712673717124321207794165805952149385005095583408759165015609034070596320899536227362948072878641763346758272973036834287178339114125415829413112991026936067003998184559841697820740465739785779411751750917912322733652115925519953786679050824489189262068139751367403514768003048664612087586249353393255477901697283212740176986189844511032428430198432507378029675501399436104414613961788518002345847550928489212896310380057570348559416704013642120173330806337561115567183952951082248936137777062495129825844918799422592389078775427931060879686987609409194823038305711394974880249974147983800352545861193495988027334312394827600986881921438016365895707733265954391155556216014514443676762920762763165262956517469228467200304975390734209087243801689627053771268726418875192253817148284710158200642814620530176121283051454455803560505297070927488758521628933455512518372679087087984188651588454532493419295783485323987845803473700518974528026309156824682564034290671994548650327893063899664039850289772931366713271528314007070615142108862308523396255568044218319329713342051412616808218988279782720512063470497475403999257514112877620245133246013377455546848866762849510657717764344788095240028997163088232670346816903827992521283954844812201757812613491357129877199912921868826972247411384434280427548471048264678950274044945033651287379920439654625128084480433834747210523541007385643571968637181364641907714875619092116254123930318868484165164621092492436796838202213125181448008368811000472870069185501585524857517593156272994251296830343170665132584334782178762439127923138647042137324045115763214420908105460385943066971658935315762890182210509731812126407422902469644852042963965748662401137647832403752588727213549959267878240174675131301136884288151749493650547171339380765962042383378276755223696072848406187045640854820524180585620909391863977337274536106701205192787574012884120308933045823810094200575979543332957342453077023324839034472728088738668013267414303983100763437308965087764111457434728821790665469522963992922935174265017314731502919765000234850069276340920237298476365883235508418123546897858283762053169323749261950971080969965012895901716283071970690705815930799502021073059579013716793524105326612693053385021214272574839305666397408557549255517138296397610172225348496997823951612340356666014337642582846764721493112000224649971303089756457159089451827166023505997646015300626369859987197071881793069619844308836863504433522021331176530986202650869703493359857028072283981971880514405606763118344367948979078599815898778525818564923029922311825076593585736366346864821273157080183967398233254214451952677607982370935689305641191861126682925445282680710424463722275049515713199434526464341067111085204244432256647491877751769164562955892207758280685743893789371440100150124466973901602873568849006585287129879039862687430185482458797064370667590541694557715793744105242877388991216180012759861949014182972476690743174989072574888311346992274366239163456465866375526029303187872975027799718876955305636495750615976287426361872224932891704641440397315320481084411305916549968566083359781812633384879599623692749169358504697505642507990303113207067507133983535642858372648103610971576024692132981514179615591319125067367529071838431665474832152875120513120011950626605667048378043266934572531576827101634782976356926907653149968862321559335335451821057367183696698223542840889644297020054990184915051234796164030851031100263737053970560108705298184925945923728962637205559156346161898001948145380694752729452286898648584083413568582280490551942535050458732894166118418810602310591535935999000547344365419818496358856701428691052583161091417043276157361090092148717744778827712458904303844491994300820569848654748402740656988741280922478735842568097991361060611369445463058140453941807679839438226482791177596913387071493647361548427449601555650193980853122491544388523901878644797576370485514516665398581095745660009280347633102602334005825788660216511260046975569367388715381942946435803343294996944101128822955847902661116692463338452901650240572427587196806221389446319932805913525810797606942651712923702259439056739293454325962863811709317508469993902118068474966196459083787119204568370305996708648900567698307632217094767538126032106180149449382459063762279728444577330358522900345697807662903486820839002449305545310358005845688703828554420518869115687718991420025680031514524672886122997220890645190503171208750606755165932754651503775959163576590916779012928026713883620037057728419555536309174738738530463809966154609774777553944552085312997818736900073750374640967556004772000603430857421356744528029084854661970753717149458647160585951563351234870950975160962368349753529820748117737102391368527413504305117543511341319192057364346529154883589294867949335368379121877410472140539212303392779174506761232011238048126346070224874230533760850503330162186039214326791860824829285024167378107971808030992612627301142723892452144204624510959699043599093368501136758528381496370665401663404204146071912942349814407749413681416390592428530832491022949060861443088793787173927216618131927405072650135836160929914567466515229885129056073234458337081050155535845280714217304411414498494849194234869431571747672230304196239275255832377454195237938472483488637723699530112084580011419525675454014224833919862100749919969649930444664497145214123000182605706761219888263733607840282737358100867455737664837228231013711087946614128248662079388415293046222766590598071064021276325763822512959789902552776913652681989163940402865514150588510866604009248836883685849932004746535559919331633620142378661546729010386006082090303214312793843442554157638792672925595599092976149024825816614508735296818499922735223088494731010615073939960000560120594784875037582895343622306021492575252882163095775938562412059779276086973164400712023428489158109820148676853829245701507076902450896125204343613875087784683218858454638485226353029308571791747741624279589967582224397451214254170453644430668775299672599210258220400734272256932195421950542577397244017507963958985650909218222608607495927840382557209360524213842059593919878720413381098153614396446853234485348130105463096709994143432469696211229225994175817870399322037101502935158874728485462114341742511779193381609436059747255230067247742861450710116577933596922671470752647327750131120103485761433126138957126646283161357643528495748188760728997780141842041361657533592535630734580671948887462305919982526977593220451228638640960174106652845625737672834087887065566185929587211728422485955236984705665463549100580045781340370242162756461593565497292095387202494638262525653373488660491737736087692249906663349039736603492236429361582412829511485058829050837661449364112511494326923538550241179137901980510880592993349430465588096233964445173517182866485258202843581182420124180675280320960705502368160621944859661791323339619108073738615065440756505582508926656590306711027237163389135612423119275061326407923157596337430024724526209695330680658358353729076606568333714556283833052159144366443940125041233349538118503749235155657889730820918929245919017819558416798115874505261374761317490384284226574777602253650740554139730617531506914686176671325142746448546498566597421269822424514812738292843788285268362902067885798238258141511413759596873507701132928848521022586454874908171031266661965041618729807877059621005692193238187297680847841955182221414785624268680660603630210827839489016430407540233242784605038359016316512422960920014591558482518736341422074087728799213084814944647982145298507184432282710949528355687829852849317061965856064389613706719399417776045315515911338564439510413992728895957251425988625830255671137147373527988936771036357367059682678497413862407771391866282890890754440756634439796145199923455768841236147594324198151740903355860242731051368142849796626768956080122653954733003259041491921220934705379565635068790166136786038544487876220484604728533693426325043906244427767025356125203549656438202970521839931257675150621459604166578301502283257338042850318504575410838077065000134949089628642035738036092530756882830868410558026905032100789481933601622481373605761408410376007106212252691920672576987888921766637427008575562895860190662998125331128512373124524806241033481834388207510900295383808138279009633002066175421841961394883669678119997088707379357198932877721806373269971430831908579641837243861483835811761228126950269040046244304521242915533900011736449174756136042551729688032191683201806711800355588491775910850008186127948179117639477902049790853119016455299423348975637693777114189460909019719358069026389193910255256105432915697104938596344014403549671005589259524539382328530672835939367014898490123155655592435183009304621069856583221432769029928589927013289479812139576138012259608777289859615353459585029061581715466898491903428844699538899803496984990016090802945360744391241622710673872776951394908769644965552488685084639130549744633506817101843475971017307491590776277177211225625863123853018824053411355576340489915506445026123091057313769215666282942798472816410720840421167535662660344952539212291970011669996965786900809087713314520926857626502157961034653593086542296631366754101667532193861698398344643953200614465378507458719527407399623822314601557893344352869780174861184058538133125601402166123689060852245391196462565335689040263874487018495784858977800565909219162142776717547832639460006720418470490763606416528312598671870158012897495675222373935764216811692938539806397641941054340240963037922159868617813971303421350495662282061705336183631808365486244404900423671229368922130647228084680008922943899970785494022571899588915789338952973164805957704518434160447474854430028571764550783932067408446526299992095745584226144209308010757481088083034344504096456890103536626147953910153558567517895004440983399873333185430065393228059087938936203303337054842433088980317946732310859497051681798011898585931130246960210444700083739284013240956877281254440488773959037693773438501409614019331591633317525211487947773218002691694843229113402252699814599381257040964693949502931028262262028363990842569273211492333889664222538765074878109703009026685338175396722261222980237610546989630905898298884322003979142477729801926570808220427689886169736455116266060295946927434161039479467977387817031156629366334460916297696939762518191147759883595147007462150964474084516382313706782060203697417059494153589841651768224020201651432490718505311509580225700599180454227730923570870278777908207590684256771675775654476493283707141039772165849171524362955993917181193814504438767040555491317800629471833368875922002559565626121251328663170228651969087539929977495294339684404793312970888799021159097106636243379847542685643088336896087545505571564646319158064860082681392999208651728418574858669208723316529452463112773847646137613940147106214670644718189767532289958421160717700148207742974474404417582144068252039718183060663593307179161033340846872747144182596886620328351341298852281108919789104136754239898723803989885894260990647683978986494214489772727383931830433622933199999953016854854517871032748666568485675266404326478331733071875280754399400373287001635196763696438865891556430928298161945373689797148825000635446606050896411093034694379062338009194548114525535098695138957647859993417825832646217542415689929134416194905507627431310717734012138883417619588930200963578278032901609471951027855601496137610779997586634370118449351669092742334887345991678789146921416616137847223212354260115020322461915792970215516417065521254063204466164204301093470563395809701931345602423383662335657005266875583734960302013851440760067700385897658609581422628986946976185463281610745608227420127381839814302176689250797734187410431577423034458181575610089040237435186500414925228429067864491862924425772745300629528691445944645039454348303704303882572252796861206130410033483059407985781865007315253906530023948804074565302711979819614926733390883494455817601280566712485496087345458390616744146834982082289679710169061856141187162169192582018174420321181165799602352586023699236110655255888935571401232488502594213998546378064622105427178541697877341130946592998094755550126124564481878601077318889806545150963730144589689412517065964126134616835790141076978110394196836719506465933515164206385121092359591811839945775917974904174259039125284366652096977130590840105260123363165553709192009488569085273828184506152807953933833405445129269824245920147287859589643377603772565556662938678847505782404169222157243352976992186676831070499650008370632663177990612204097860137163835722859019385282818905962027795073074546856855326405881835643894066055461461702712789563986737391411146831424086442848235864528530086366366461235876759810421444455406643666002231600707205433902723570329173056161865825867079009967329925424843273151667294465904731757354034924721057139362219270665530720913004569005498400334637099645615888410561224182921439818834297064879597849868721293407152267994483818081332316817991834858463751292726577240641326784075815969643380744776993273367226702303192464365205642296721717710637222924319333585070034995447801025484569422596611014723790799528312933626448568357546120679697760633322223679090959271731285728450764829341521359622206855201858920159334439667178866332355398879826916206147070326470626446362041921422561680705434769388895201519526984668763150402636545846183106557625975735248592324498165530685411752707456812838603830838638292001939172638330419458570104465873884419123955182582558624362264682887490572062883581573250412028024649327307785613260112953447251243553045846929682502361979982043835521629393965025496502797209844486273939573247839297920928566453782811548279106375156198199033832917384122898916229385925474041904822614763871610140038323801513248445893075099247633464682962288987349514652252239713146279639137333972886695262548962453428434030069897187709273427252530282608101085707881060869120322293338275376450757578323015930842747499551668901523774508070170791782899468353678712888887817454196637575435716397768612059200524025903069063278673996207679874438046565936751344936310885741279935482558175981549585232891011127869983771267981646640259644104973363551091812030059093298668613960591192173641825054436286080909229238930095639227132195546525519405015984635411502725809702355552897371752173345749837826194094537709288787431923469137778550934642639838986611494362616331139849324662355293731343182909119644462985158474755208746418281031303790491949877971292606338914681607853258982215628742422904072185708812670360698291712287856551543006861973398248131210535013332666337806567117210166729834876778680561766973862115511368338239267199648537971818325993001626932073936618517868980690397422970171420830454324472319358682736936549822420453357525947745683559023183080462830481314809209509992410165104295010584758298038621065063983999114236693453164260585420499375623885605974294058866430917899825129198670665618097598992352537271003458576988221204299592333458524395812532259986890279883713818264444485277310099133552461112323859415606773095383119344876779148704941636902287883048441806888098578647296278292781022275285204215798622984931549460100110676075844513751748804085320947176170137864271890421043296605352806760206333120783925123180718540276682894336000371704204131284742774092276415555864570948424243487085926122153390472186825022186449017153016238015659053482549926710012524478933939636199166651280234095829199302680981317513779895025136093493034988929300318093174400115009354760828478400092212662537240534702737855310630595443628882896157504125806664391155937205570179813228285749030772860112719651763123870807487654484434091135134109633095686411536153107819251627937407256630986687804805857152111735486142342746321939551759576938099592880645041616179255593400327531800712192284211132891612780000467634800434934033894374343368983754128027684234827315121660242023889084758602987584700878132348811997684781565218655006887420616367759815793006330850389794930642004323903070946506414400574886911455282526287418541448383202643315200680448006947002077231291806216105518922017665884662528702552940722814113182201998167989371430975079824028460063359302668428665875669247525322177147804024546402219009837476200219991172939135260414481978328091645206391606432034901219089283874491069824311260934858074680484623244748325906579595944472044645874833499965110204966097898092025079617807657359529669615776139770912698010595043956942869260101707390084305037344037396802206586125884307355785770484916444578661602871220818148299378158802862545923209471943862278934074681171584037315040570006223468304870059142822510792967002062608787313464620422943091380431332121276378270279922117772102981329236990649614793350738995920113236494047929899015707893341900090102654325103347412282405486749991692136735658366905168387662301464711438590345584961318622682931165249142403061151073775712936640507720472867972379031636078943260300914473597492547606881087031669291458561570726225459770042997879435532888068607520417700693827075254226053894368809084906917455510556602721181552710480942819080370004835392199544659144147951686294360650790134812243129592205241339253942367289139625706219635428240016087490002898888388525388146011486615634487260618933651585421460575255249452160815132889762992345659665139157039036312214689896989753519495763501125400141318948778172393928414678160864331908015996909516684938368512453614753849031123669881820244323846238527529303905887285485343280435328356191007223049926270278468264932163840278723308202476316434298749942154699016113092241128441703417228663668945409884687364326010827950308761828862520845461976903696367674829359685018057474485687049977957053169697275635689835841455311465684123380073964032786811879741051894651106495768739602737396181784426481337112727988521487676094433699957126642481352377425225214058051174409364771632974126398894081133681084028178250881149841486733383811322228823407496343900135640666287737317256245670142772371522618130073273980662098950035334094342923481851065338075313958637014447783559835595197358623392261655958726662416017905793289728000910882974678839607598123221456704661725256572155652371587332120836309248027326724788863072630117759125958857671535305208303042442504966557978184995706876754640096953696837616446145008113674245800789124121675833371140094259406725029804449594578274004640225890803761111241842351156377925150002256160715586248904023287580737411082097431917674527160990476071026435149227342193909048115521544227579465187513525272946489476615678001353163262279037758439729291219775643078406767396278098622598055091826670133471631842182023377584850549290175087272398636541651376923566854334829067522684711574906680494883308063577597813638054754800193862550924071533905325535808059377157911134749943425760778045217533479384685758325522169368799263411813872233467492290364429213496075342054302730208288763146228331242339825090642687332038385489109768997276809990750946530999219077835651659970285723255524147909393670351998194092369277865527779523659793822783649321972467081762177807216762512962593071584726756793191944090371437715992404848791388030391883083210716930476133007375087042000485880696026765789198810750518600839738202707950544870831762871976201994986729999064452198807452811876370471150195536268730321275442611633023877260785863750214643554781139338035278482171352269671231692121984775223919752403630340299233970018198513919853982229597659373415456374041100190075984827056052462364885340193704516153901856953230311853784924684267930688086545976627120731636448622677268016947995701577664625182999305805657550978949076502397426161099576541224512043350188182371860091327614559084180993798344671068738166030319088354525893826840465669040519947959094205325905597529230093817648246111646064260742468806803486100028642849413723691133977416622475673957538895036409647336259903407143211170751597882731723998445668638162168410550921785877143756676764029678752841379632602862264444349760594671712792642495888114884624646375862493206226512742783441343619639129275124355561965235458172332146557910675806661227536478852023982332624854762448141248119089494421322395607802669165602812483850030330308700389828513244665316041174242913656538544323686650350795388904935815727785665918866273010717169349866068333230003565148533415612260137619348607505258930613218801619383100672191794021899858790693928350170261289058449078847897537528385108793021413744476933858754067600070220310351820090006447436796698999868411459343827170479961148935582114182516103522606865766709457273922162167830683115948001607577143200297409458387577986771431916148471805059856942731218711030415021521901988485717916786664915798538972012588946430572101888358810882469255864650229342052777221848094305439601976845182206297459523151173210066010767990871243561589781795090206034764528494562458424979909366688720440734553285905851218903576273247829984161086877760923201979683939751208901558026213197030842680207956224943553797401717683292032606910462505203785647873338378829417688555679578986902903306705737987864690880801127713435333586265292693707039843584074184127772605172217256643309788151470604602536774538036354218236447751141591854404676528204949930657711414134774353740310753271787629775366907826135238710347809027892149124797652306236632595054224344748810570940811360491048957029245477894044818401188742959572334810710719319727956387968617989201342038100557394065263497563069237394390111917038000062028550040572731517299894990463573720620202893481734926392215222925034855365543645124788855851728376091260930679530131917535446307591380740973818246245479393790932743084600180689406666091277715486390862937118232602003449399991034075541708188921534714049787199525760896163737763914021084225301830922914602920125335783329105868214216336126372567844079710202142257462765998736315703913455457171323202629646007600568646472336012305739094813644922226097297243424806785306138120030752961014757116893288628442085686555188283714124218800952289713485268361690175260270565784990303045711907955718698107303460643719892778999467497812694692488772126588242971964787014912255875514207285173113130018092402909972313097551653088094617673778315880911384123676686531339076553237864658810453239668487870875903640711398385102911184668576930284914081118121860101171788586427903508328983372841689287472564857462125553403435550706890576573341765459683678732665971380067636815901471525744710466586783882153737902595475726195305525957977857305868324739936363932679882912644763809465844246168041581620440983182196186839169656918034306375835707139514861671737339837616305123777251194647990012308273584313821456925130390247391829288172778559864073035575841834770161781697348905047053620038829532844013667283224033437660672265903768528203520899393063892840106239465396256371905307887272085885432198930343560327705437865287937346558514420551792230448821086061901742183408579158626925501259959059175647535288868157181004167824148509992540866754151915279147121316513591034243271530439728494861171991850571039757742538721138707399791091523423877024253395577196125823741456573705564304272318687825115685089924832587734809599191694263520536227355604821277435055961830154692289023581594844838706177419554288696147574545082360748230514062861345336557292099327346470300723404531370846411556641422687397194528759518613749383223017810345312871558868927025829462079675994873762645772396086673643313137202716376658026344527765383272299563804095786108625002550855965503473904496315549049353512082040558850699336701422182046945592319881854620310604246054327515305581679835571009556086417828088440272494266872549973789882282068645829479914812772547319113817246920759027753092022467925528013513972090376887238183000956673931186961267058168075730721297083586481029569897439407664127265334926527163188104507126300728497405095188677481298536077777633476586554169142120070773172273700027616561521539979361344454597510010359988311861657256062318426473916155596471728871099461369093786974119578208733293501190532781990031649088066563876178082668504029410620582817339894774080872426300172667904340628907097108512609344423602290664143084239176240179662290550844211363250753817464602416023289104101400150342271733327481482485453047305081723632769325113951923468553870767226735712146696868999256558269149809437547961451625406119779352532439036911528818291280316045100742652865841624589542272238149816600902194933098484178486850505775906883195423187951641603863532058317378758266097259357324095381104219333662671543818380129080949043175727014240492358063291662830306826771046084917262163628221667249510710806128417462650623487476976654683390130078827981935776045919849782679379275006672041395879656652976160313050760809270675792782071190954726126330452257354443940156641268236578917924861351872082350896091251519937101057663403254716655588463710022896142961786264417350024986583070824973761984005110797803148618425034562514426940348643022243392860261311462520125332457334764712898940644489537389025565702157698153500929624663708581113342191098913034936805153118710863770238924987711428292852987420864255717134345393656327686999452938273305799907614777702708415992735713010797413586082735839605951021910732188691093530829091225245806692007872446479643632249668385885999342228368218040389197932818425599836798967793441057977516766875741505812379591697509671317577080174332453598401012061272018183249324920968893516144280553388265513206242261928328249507281582043429748377438706604606943604424633830164431192822998626571928567881020998589698326793574926154091817158006394191734515198567335976325544643357268530592095937174874484178544524603373195952248549631421321178890951194207406143805530481809428729810849295886236150709822332366272521536868402384092691618696296685620208525152748826667234974739163964620657518656287403799540568341248599786217216498345664311170250737868429843584151489217513010343630501231355383067170751056039752587914032158877929566921610827992428400865218722476109815192254847173002643346619207532247045227483715647626132093198314644831802462909898868376639719356552787501919687918302580550706738005660696942424054163831701879187327475270283022564578739618241251308351150168749459564385011266581160471469413301280865308046526208222227777855935658829320898105758005354296384644950101407239419909658061090466301229117092205790264736164749325477318049233898117824748131047601736729011234490267925011649414769500688966548385245565763386384124495455446949991824480547658894198637664625994478819742069904056717150681460956632286297298224399517989609677353040160539630310411653792304111651663728959517079575077430891167427162916298219557789956305755078105870599341519539491445284185383804040033803752443234828948111433905864822695848243651411560452703447191920150780693055906270263252330931044230875598338692152589080198594223066341039214892430693970814373389899474597634709781098206440384752447302071062595561943517112147532342619452715187131926460520296751851214826160916406199945071236337988268876106640668817744183856769498610533828482488689641483093008733857366260195494815176869931885346240977501757605214049719199471108333248874187224075710145181800704614942723639752968423850370939018941694633192277685795301021763325298023399220693770627172839286430441935563441566918723830331411680800672800671962268865972372304600812436223425836930097408227776497582406587835901150810296180146025059905151382330268124588956929341622558973472719019338884877945092743637769944934451549218170051821984843643629711764850715687785420726115999619480848448693660785145183135185281584147185533829876522635319779062092489775039777281177870795193836536005754232526056879510202766526871932586014034185277620173896317932530823848371004615146229518466794919520773306581756033742111107042548846784533066476942242032792571536472480572104035374665741659529218007612047763805392466925995721200460038999875096227883952981726903815417830963839989421726407855114464147111173177090031166972430510407322669941360529233290728973590176988159216024003052377285587116217855057926669682767396546559312641580424195570054068618953248838591760855943767770852059811582066967252698299139227530294891344068085832237961312646474241046767873502765701188876974082782868791206145417866236184273816420869514365550074554226807812932382559765250423027183332588325880102076975193926376168150290196362401377153179783953612610809257512987326798517376195894189815428162338075391914726744306832740885758565942041477315434159245206518268010760813129404895455098543731663176927466105745452215198511463801017792286642399569843409601107063386994538701341178290023018613074608809971245980421791099277184001654466240082805950020727651529408076927844668172394513472905507980843777715456948603761441943574539675038416552963218494147074909369531660919724551751345195205896991818158891344567101915732874171675483400545274317085182032366848004035640997293627512196614947187476359405512802398964228446918624695172672782935712218614586152564845690728233394752732308933379113895698842698701026698544944465011502402159578756253172435848445136473625441354721321217176495606473074378827419966338514814921824339307818617608789283369779902621101705070916491062546675229112261255562014885628232201722624510175430247847846361069924884326677967926542943722160409477976034484070596551321372134517893316305231273400473707859440149405088500711449352778851698513417199587389951035674658215105273713671806195529779456341228470732608621402555246084761275010266557393361017712711620314001034180123038990841410477116115515101626463327140967779507467968514260049031507989438121777969100305300041901349161222640419746643855000499676674075768789933835154156639466050656556852036524915282585764761310147170085770502193502027504179412906108405418198864895080387861008473436833174908317917344283006452543450298774113666492780422280638882827510367297411973547287161611314953134002542241045268439448178296080105972635395745455284635966750324997925579471102852772526298625282938898005136545700001320648633557176373154475452908919768847164376990383610781497032820504268836137764490046978367455194697439760235708597160203302023173948176960558605680749820491833225245222881213023929015190674922953932884132872177359484956100879075250756606347609629726313301637593586999828182275501691212219146232613380958511246898192361819043539879169389574150968609611781838054118843290432620459780876201673301069662505348574065858675816117886768746118724367723480249459338844119355448220477426399188085721282973467339871884542542925602721616265558333923735552938064896259939690487882254672436771528341038711588705309564588974317708959904690887908675550896403935254753298314814151281546661085913744563608261684065063602030220607315343005850548230975692159148355278716584803466691649064595447451857427625292456659173873891885497391061626063088013063785026412831047832064353607356235195068984587583152028722421352451453806380200195149781838031440494032151726614608865021015547713369868082519105788139053905512942267988566020657035011408332667415075642057502906320540318644995506552633326069552332544597256818220772196577927409369281464153573422916151922049536764827989857875743236167872598088476996331040731131059982469138910631796535464164156613147741813558344283695967447078272778017781845636890206930434082621642659870333369182119447558123601010619887274634681440977652537568890325824780406311718902395637878314331492473755112749195654952362365575519942008834120525222736125500082630919418086152979947580503096190563024333211579403889991716006869959844944104050407467703384323893427647392765037194756061787468615311048166937556717808433657802599999888298928929533218252601903501551893994056923637443631368479975767739248562225481555116944862923815497750214227963521228651507310604857112817741023664304801899648805441296630498530386289093609062260825200570875118930603125436962052971535548035748321224030704855181974629447494344409210159165215346498084486493720601585043304459348383206601045383102475252183476553425639143720595225933749367171213282763027237756527651381121948312806523495870097895728578551338178303955571855520448474179363534979295489007146815403205499389538949404501713327054539490094989263179128207306967224466506341089521826167014529682194871328058032835067417791040066131870553519967270353903730641488871462014511117775490288181868151055868093507267102456265876272297838938016320556369484520296294183431031442291608073470460489789602287576840609808186171480389286954734842953452958776268826804110759829192605054375929365634827633016237378583025114306748755478998565472503693007769181723615561630328075237862698243144047039598112780185374053577218987272958634889499348930821108823759805628583506779458379039323801307820590500643947466918292893896913523126952629939934982148804728394812747454684475177335212732748333932267684470342719647150292424485931600882770776312214212162750448575650136286433348488197198241475439582007345493309801517312181466339994827451031905877209080953494535370854129180360816699697870048424595179167007848083315783763167065464749028333461571733893522622880876960817024537030452481608882618244810938663241289153306807925832274002177731697365984430391860211444751931657719828032272771913328752173756898072993217649454647708566079383609504185696247164168291955126287352209715754105216352091994673359252832096832715434591696402589247240346175985774981951780516975733282301327537025401614354507055376423298795266434274949029148845108832754173998689793708942437274842035362833527824087682398864669041439046200229261550894206195113983602828845038382413880212134088511696531171058984600654859283610007413022017494077035932197511795814305721495415958781380151866995928524521078985476988830002501400243262122589219084488170174733142164180854253753938181455658100511308073131761280277020903221877800660595014513078437172873929361606790005331797879775411473296907844657572694688544855219800495451730232457297754784366085799797232204630317066393456984899255529683338711173200338465460760284909371310186605835298302442057260222208885630726755493465879608438351307398314501125147877041256480019270336667663531519444218545717931090564817667219224975425980961380131220584368165610831607820821588100977999063427845964751363353597954562846090839923692127836608243687637614765992759664444226950250620457648148562575925187561801554659055851606377511484798293905316269837103412930287880586996228337526335291307642352134865475849200071616025058189017669509414986676950597443148541221753082156660023131169334094960851855958965898838479419853221207446892618688209263822415162035877278635880431507742480183171840117041710879509356917277868083492639551101871435409939119737840223548493745055782829493088328609671550670846747808285451286083450082814002730946965962358535092528838801485519225730149259585129828600137882631803072511167805087313233289382800988173860223251717100727424348948995652778801127008692409404733136381619284055549574466478518617314341919898652711167668591727595983516905369264102522377504025566732149022170515131766303395264866835084570030548726994726722358126277669606040069735817784269430757468133797736196583426167717971814291074062856041618160674516952049173474689257389598975643324927550016280126574933583376306769565134353632517396149794028001743871845827500624222722567189421345811750069669989612815464347595762307734514094834370416546142104610063591630729060841195994274147697707640754020981256281252312269354203408399352162880359321756918374685373488545407799519816111418352866358071506991110141557339924434861480000075945233110985665865138827398325998475056114871695674223154621278957942885864409831278579812260976388792406671285561288495440941968594365088754730769218482240754513383904316385777019254952855874232860142418948561588349728464203381689450363571403935764682809780266566279843917002567381655829459221197168880806634199007101754944291783656861148822501226282472534156696222115115682865295428468948975179024066284356557521088554258181912071767850969176673639220150148606292564549317912619648203215559339553039932919058965288784906292797514755341933444262600665743874738677063423406205702320805946041604897394629747384240618844566461941612461114844396280630909658699469965332610575424793676540751758797481593128181571031872171207590782439681585234809810359474392797779855518674422249934604677146963839316450429669517218944179628000120057967809015245081230884171165181666855692300226594829663353021846844669472761009397030156103319044987720751215187710765799901495440032388651088239030662486449726780884723298483644389144848424941090882077372140369570929033150871948907828932581412213411343465240106445395663075231131099578630232775402200987699340413648512462306791263505583890634616361257685157670870217123093317032263663320651113422365930938063870936272594304591137016067595194924736346127331640339698653620260652263658507738501212862560884326170790669780689655220343397181284988124265104498617956549788303423416300357359075192670053441531618221528148971761820211242638120756219178486510156140231606598654300388218657651030992231982917103221675345440572624618680386592848057823377790001718330627584411192904166556621598025109662873430952758885330030489092523008519021675889915064689559256876590769768409417771778643985793251908806800571340144944305871840397551674526442492836810198234206145434707772853763233028290487357851052611364757576111436346088128060924047860289226894734855174584222269374628948619876632464047939570503241823119445739816747285904734462387183559018439710667342866263715930300630930099312387549108412375930032730800274568582645510430281353542289010632386765710596275865355205060646542571761203368882596426564854637269583037702803748358568942738697485861003612188646151071130815139571014048265795089511927081808010821088947957191462889340877283273416230773332812910417087439062392710448888926648440069711718474467576269381298367511025769329247093890477119280852105528636113837504174760738788610575248279348072946143360857206099838033722669260939164580574875320715808467934202479556363214928274282017291536076797847822798392586770524857462044203080377507244714859650426851209194619782251242168702476443343700651747731740854002280020741491203041957103554424031627475393699067491052028766490383799755451162092643879454545686411123137447330854736587211482726341043182415750232769055229448132187414863003940711390362459665802873814896100375784149264228592518422669677885546085316190711123035017347584453473998270940362957469164918954376642918508046968307676170562051769426638177656123732749485467761136304201375661226274952690444881289045637651614606781891053056966463436494144015410813585082782703031759097269093356436426681736666466846753660395299596623776840076495252702700930596511057782632724683336316115791107472063119133592211135553297340356875112190268940156584511406637700902167878745403832118205906322555440813182829057165934579611941870579447165689595654872815270147112971874710156157299907775392794285049239983247613902938952340177039710925490184374398768065073110717704536545423582177658323288145232563008468188544081253831165006030420621819603430828752523762238309057101830434261114746434410217957759551877191176665284563553772560731084962656881519480052954933740289007950692146192608763254328501123944027459382686522530193086655063984689357583202511301692257656968770465312429148324024920448010278337276125266902538275534965020090003465304757867631597893395123054940793813477362259060582634820727755712142874385758371410812372355150606706468404289936742174670727709393866041868617090645800653190993243467209801430769763310889014218850420216757267076763845342063658171479014805829314505011604269447102434616269733777019617311013620041014703241477697264307690185850919804115316610205110845708082798570974107465313606059579739050641522986676032256617966119799816118450951463865067921047406834339769021550837757620917371457740688966671766488052251033911030926108958278638349505964601233930245707559576862249494388789326051060661954277827341798454613385680636223787123227919264581202125218773472446431522039510543789348858147401534682507618487322878249462092273920804862876328941854475309813663960031265936213180577787609947516639892475335004456177394406055358344073068083269846814180630163913997044794795733500247096438701318520138219365965860356700199591761167960603976305268556721661572934076606951876266908510170689862567554049303706335178172558453246287710031211615605792556173869236368893951456646870873638193966339917177522971903519192978150727509398655192387526172736664834700008527212986847777980489929008275096594043761171087774024054020986079117486125888302259394230417708004150836455088087205996658758092888501492623834491245051734868578948334357348209709917909163730170740285729522903793316772356285613166508816167238306904659338910592614921433277344291039220820933360540771322756789928202383610909688177008812748079616258184281247759967176605360748686381272108647901615162131118667865772254217381644380218858288587482737595775818823329287537275479593757025866458859171744172977387377299825194676826977329937611231715256679268477782564234342567447238901298375816936417162690646688455901752214615343176515719585104837080797124828078133951983008727248630911096026885372311909609954554139746747273437815205924385065797446527250442682469653901084660489855089490176269647859307728377880265469586630882969963814212898885067601893610986649490908814110615314221275629974525236503076067620204366836749758509039950547958850422649457172468509591754036759776926962774230513384282264153039666626424155277630943240381419016298623455140139315528834738705311385288466291357334461096619986490569445577416517405310911611358918496797293763195821942986116401462861498245298212809468202296164460354986039442126988327007583016732996076411631475260557547299421602956915537191226759332885976876126675974136124217565382512902241519172735684147774481685831805937364165925465300407390827722936508101015448385013352022984348611867171304051301013691267916332289057857951081787737450995656943777741963696376655886563908796222911026613450345229420167117844801124310435035201812179145593411927297984110063708318358307456804580541223796106508040571416606160965015151964018599123637490886390142520752610488573449832330544634762351655622624490145309723921250748744210441105196934540689417781574795107255372626366579782381889680414468193446473277268191743545026669601204815569859298983122947207761021178838814094998039574148477757562815521532590250613163827504321827274840869117278946570768856433049721910249093259882475028766539695005556016404604900332816191184205852279683757683719200453850811622596908923629524754036591880919452309735887364346789238171547934278378994994755474528009067441593641212054785596473381041761274341716453260406746534581269561220410622227451099923798209989698292813211083700235024521909092529991187469333174029447533107270884948068309421483290489793495836683947198152843430476758757672683522122865153090159116504876707357152223808402667211822320048503713838047765324441948078583742304340967009070754855476483016794628287026317066985942410951876886217355729522901542820904484540627021744169116633371196918352034965697176481026139862136459552204977007954933856978318175525325967394199935208576500569678384111958593443631476134513118188069673575474635524175778209615090776111793077498924220165013481642272810944894655378385538974529063707238959257404419407282844405692059466648937294198873969018422226590697785257579945044930423729342066095124155158457313365699870871122488237549006173007221551601079638280149363142323788036887755636689094240999251657199350976901197725015526037119851733150813161013245681996627977002133916785724882194046772270624629707018235120959771758531659716948862484886860200988861238036291983872475831347684005143818601861637862517782023044650312224490792910854365967916070585625510476483252518659392472993357568031181860424804491290690338730507332284056014152209203050372656849208804301763225467954868584344491964078534262399690771277394226762809470355150375868770022267850128626849713149928047645577495369102039569082256232114914805897071206777266630347999212285466823732350068108828513648807681559809272430992990023626863697333509557058135454528536852435099434336042954368915996627585503990559645446715798553556635939859843274530441549329088290279871690912893355705126363691638690353621317675116502426615397278143122688685115979372767576078509898397534642953904119862071864824878841660153120482687158357361060841933887693581725889920038745503833984589529864733294567096525350592419948656786772586779267447093376359425966790028599222168403674377958466419272872603754106799887093418175240692793801954305553563056540770584950741853688941052149981434666186731298876984859458885403496681037766867147184084996027950908024345791520379737845480882017194300881796747850110340196846618861297200479294034431218735204689062402169261386578160104403257236770710633909483932060455182247505803858954920208434474194498673663554075511855790322073838965414652228236517461052970698369749698355541920858124237325972853056316682445309371690725581396469859598188353125282859256132957147534067597690323187536591747789003576935764442104789212421225232126441105707031149157696396757728894531172121455845685065775565294375835549502562120834297312552666659015036258341571008220200827372534350964817159024803258518285233209959938771833553978846604174378182938517875194094163811407891610431451360817252325096215291942518731998103901890115431799700580469705454381248494766254931746850738281061784399693179797492417454458048753660285499933386933252746167739378235903337526186119861939959227820146731900510482385925177501639650015354296992143409755920021379016583318250485221098680442455565302105581517352253755939709939610224070981493828712009906149785442463355030373868278757693912541014156555359625838152335703989674043504888802173198291924412457611554811053112581594414374463810063859036962940450137786468442384383822841868160132411393964067413066372399499399725547841321677350757479936256619954832643867168076625174888779624227969936062742533185976376672450260396695644560398499110215220388961531991503391955241069759871784759915830050853601314899359567539761058783491154582391749869607737102945041461537729042865547940651705970647842268009247409874691268940993646729251414789405351221553479690785375253469789197933058199396035994944655525590650405047991350542377815459479402635392425739937850053722287977603318325152150531693867951543713246377637173184388316558476627467114010342834234432414774103462290357267714024019876394180883212772424889116885231333095700941681231100008897113257692562382742124042950579205685693444957582295271033673439105657232034089632672673579105904379218467865273280848432730093317398895281310761760839427964708479195747890805436017183840766352838073591098371408165341847728238143367172681744506383103837409673460131659524119452544194251784309169614581180329083026128545930875538108456604210369861144050509666640440951597151206474342827094582408087759232625947727637781356876920974255440623622738158123616229248078058804679820294217567292716633581804126412801340949337594099238870141764671607476119863802273444477456226715560603671212761228195627298958261245885177188847846809228317704257770606991075992806504121110455857444695468560780763859298200039462364801781556124643415534121249644569042288070351491555492104542331454045719231301310531838206694341495766471435539123801814620494695806191722919520372059878536045136331751882324148278524780513000441352231224370093756679954078026944639326027912237558117373225922183108207552945629591641791582630727496116851990600878421988767252338747152707229054102294041184786557220590818654293655666629509962775342832578567500735789213479823705217969326328965336037501175837506159859491609883504085943066749923746728674287129535551759286822873622546269130857847813900716068215265877170331920354444781271188434468541244306638618485998592240770423287231293285684416569659758735843068650865874867280049853706643603659129110320320460630203146985754023950901238748357553026224989901254197663999478687887213399664179788111660987586758651631191163278979446737434600076374184884644918451470360596879289166317504555056595962777515620514862403827656102061578661054156365438828068767764861979110679400741505651305385915253069659463100686682048577462164603170960337676286101914962514619191492973049585836742224415063240983187694813203242455979143496788359983128689226684018112784737578900902430214695603328928954967635225732642223986453253635344469072724876436391617744905754931132733432434287631482806789244140939952297925070165016854446385706205010002376288759762900778401771525164779381271102122802543901876038544912679829549614914095105244867953018562949476433809629934927653747270372717545089951507523245951595919892986584304776544847455180515310968258991029064629404007756855446979486436721339805058921998584634099242995413587084275764012157283079510275860297992655629421785821810686195688042063910530168508428080188019841891513035204371572647925936631874337693337246227929961722964389576824455245889888220270071981270803382884807636130488296382092983836381498877852241037493850083696262980035012476005138944406014950314775572183529459295872719925896848919887403337104964537961683761223961575646097557505095238428465413921436794386337803681230009045670691771205390242196105403327623527829038111638437226933562736590738799659200246756521151960102762524330485851423227775295987528930861976415559700978562967350424859183318040011939100688262762953328357616173380455313979102464585246152775443626938754008596256421817718050355251003254094468674919048049843904876315992391700188189357211812317638793790989842741471149128493826369790458914593205461938167505130645818826432264131278844372847857015567076240168022307393889787110763514767548561266489203577577656063180254536775899058142776535284150455128028366435975382061228373296085527015166604515784119137250064797441553889164952403849260121404455497823019616805443411948330116075303124540948228653031352735715814784439846838966721499016460457905894027518812623931569362853984437602329619818656548760942723534693514352869646735615234982802112459425630813094331961276874788079476952308261247822323542592980171939218139391194937720861395068575286102365729635936446629700187378928625870280312072509845515414491659934036385054435222832437978180395215785926737083238677055478579197477421985640543925593678747932004488327736111528064998372183344350033527080152684827272097306307628749443259820636993855128185858623914618776086978217232436697789272178994180737319079401089652861799902676155779468362501264219842854427958097160275420096704476825809858040878788282949288691244318227456933676298860082613594300781966893326266753624734934248900701484386721927690983735588825643965277632865577806299037719746241740748412541513041701009907533718887912811753283048803973224401031477285854666737940475838076529771233840558451405288240678172157213970422062623888845875936192872736174784049744970164236317141109249532350321639835757610195239563452881181825871420171687988643938148992695060549080125879723790775461779402709938814704982309490932927464362880722460217678400184470869389351548925269906347225863376634846707794488590473907971999476969682277741617553321371797415475456597620921353318788238293850287328766925826247282404627042165926806327990073876294808299294438667142387735923551882844035876478700812639119872698340936330890319016520136001678727716798032075712757792016066748505678152885185071840170190432420522770141163315606417140694917248751139325812440944642016785741227166671026392244346819611084627695581468880826948931260199129844666668160546970969021282306048591098988761725567893899514735245270604416782782453592775279512491461130458550434593236557817345898105525043515594484010333030840044076684934350334836756800422489324346581411524438559554893371032226769832803678376994349770200323760053950954176388779585924317248764122521306828789013932178907590931113485437076521967496776385596524821707560044608367274720726857631198204173172939783604800669992836701755870407971076638514328198959037849427729898619902801557706201486724223384445106736156364391866721508793978130135919858021030215745176186786077490220219738585089182168521616319315910700688960195826004200418075272323793650344146896168762805881341236953131804237976962270858421686191447707806739291633538846049570943826917783506048410299329971704172676747232780362042773915355243653451527518517990483497876722383409420438149886018606162523290251093031218948256310288780433471338295202012864881746828089278294444049352250286670763508830030903210198236498301407058719013322521188101846064639092027812377126546236283014705753676950453279428529855167140753187862284095656261575195446993782861412286079579227614360627719122332964511469505280100520210732394800879732086386983528658755809757694862915239161768926276482409795678121363453816036979015392329837259558088048935968015970305493445037656565596559008625610758987772008883543831119444299652316743822044136333183306475229227933641779317137046726819311246055534982786083080248043987456520452832912758607104175153550973301161876374226981585584122611123021738320258210126047626842999030227153915799544293254677289023612291150736458522131970177216993068396820868707398535524659192933642571038430552866701684133242899365131851666964176864762151821296607343096841526467783767316719873039310927033448836897668480910755139394722471741929198518704743765765621864930119588718693307050261496687533296066118475841441460702323667751178723402767552607471624030541922651884503563587602458356274666859300664503771546076526890739840491678258807775729179889679780587885687456072360094070466997501730724773754474696075431406492540423144752760475964577416560984532926401795359913139955412824082085158631872524534212630946455790644238360659840203788351662928189274301079582504672585947574877368003873124399474794662285334897091229435200800360408432241591775879195508183303218486320829745343117297164729338632313992057753553544329850716069906880034427737551176076151510990225556215971395831879661537926690544867803820506111233211062265912945220061953959055942131020395919441313168998805307358976734951765096471666174475683871765672274453747377572604087554409379625692310714158568897602024343512045593156958615797863632108366331166669171965569567339632414584640665853661276669271463055690290498445554328979728800624483048904936888804073956796341431306933244908618144494529035599673444808076631466362027613126410519806443917796313904035631525716462060680881289259821733849533749678394373538577120452790568494236331573379360446165439841103095700677114222183519280504349743509268636214273380194217298000789542899875209910305360632076519651989196266089021572395202745077523757512324395267515195284240134534060308851563694576524156925685835298773365010821414337884033603693158868728288206102766889869685048406217976457058029903694434495848170412983881950001815938614851284644265067856132710986201856845383898061448450449238101160866444923361701659363014285098251994404220465736944496055933104433014571350975272467681701991699754011603219584179842358141948374879417669337007433721241056373308042302126502172830302980151263250016734383632266722112957821442035967362773009383661197079307589076879825715451988561245887720525999215081186476693050287466582526655461599877154907405040821268984042311372052654288725246741480802162724746966128027901978280660040477297267205740669888166210948179838014716901363286729568772162461182610616478321809782557797631612803919771793722479564504042475950641129244682792966319959433499136587683591405754504757195372306448036109863791260405991791024564793379408457425393567652080096195659434032357772049041646456962124958802034413502105303923218346462958170666398828599359496916712545289952886431818750328568475328918085253346748691323668950946589996822394873581056120716863403089306351583344729891512171176016535174822025875721469704250726394771643175434872524759044107756921360121841861311721155356216566975039818989078553174995045235132279524479842551726395601564450038821917958731577948102428507572032769233203290930506856399245793597288775033840362263225144498065329858789661692333968917938924093929966322185217237470252496647940725666003288904723582841494626088673410512029820116929096831291732324505071134142876712204537541213676448097956077341855251876840191921206253289016463395985433616449358945928637417895550827371462607200252883672619279667680990242065309311491559788116894664272391653496781534852579630970010607835216449630016118929401120805081527183082444953421577782554484262702252419668578558169798207428646151485261755141003979896839354861796957456503828604995040568791467411229976987171593081278377986366527243535062286588563147478499225892363651042246732419135674384874413245141069309154147012768833141552381549985386437271696950130196763300505283331603807221962410158616475695500147812596778864642942521496667832257333035387828287273620807797290328068670366079064570510200280856450178624365621346256789086387229799659220751541177824987314191352957596662900316457101242005132853239834188970749843399263483282334045460273691044852667900170477518587943282318196194780257961571306013565487209832993427176398917673575514857508011331416223106980091628548651587452019027308053110514089135740392901567080497496026193926753268958449801641172256969021237115345395130014034033705432638019507878022733250122664775457292626407502152898149267067404426552562039116159043429903093662153980261687058635517412433254357641835449236115377613827488800764204563883750015578061032441707887794638353446541683700841943305201454668751678416612504077019609703016411959666666252126448379803934107540998649852883922485805711929223158497752735347935101304133921433875230061491155767958416485667517134571402039285776278615028793872919135017558194421859072330001387172183453888237830961282924432946879996763992975134400907872840563273652817781844112500295028552423246661027221077065054414761802096200772348104124194491921751073120796438483722908604146608727882757824899587171228594103162869824450584871057730018049703456686658647446953605424564226039872151139044150063143715680290520775956840899828558406341395994796652827296053638424895877905075747314769829132812221932891329174452734250238114934769761134057349055540516299224340436517634001106322688169549164511450228677261177918730924771908071363166161861377928956828980430350678499724969862096339257715590298421854454657194576334108538738791539289017252731269746035498561895603837827771465941978501923527838878878130463709120587306925493831173161832567158491565128320156275174174854255803117398176327933401243403456200595786190691726400784339037326721884922897227466862831558964689457670248924754567696127689598570876563617942357213909212906287757833276882869182564901281413512420641896745423558102654618850005230248705897995416729539177533750927184372196533978522678242156410244757594893314340789122992644606424701232455933785324752216718711686825842124433914149493610467183898176985195123546664311956610265503667613068283001411160862678149151008934722024774786827307304638446233044599427786080133406877546363917807555722992554879301642065904895824982753463731599850916090340385439751791095204865334432432632232826299379142960419882573895889709048029164176830577347914745770841216986437778525645992007734942630495053846218451303594977749010804854895359945690169706477158429321487375410824245634244495892186833179762683735174922376347572559752409976986314474215305307432465894361489808447107856364353220744106467485547340620573271109600430899539285601933787161772405214262484914215384203019610124155258871315382593861481700269608200509474890359154537263360780754822968499293506972566155253160465070648311687316844820919313491199680305638415513271263579283114784184433980563998422833773217205483994268829067936923818066686289057901583674546914368700821689308389072882609746316939581699787726391886315454399517847337284904849146443605438532634436766789190534848460340028793725112142363058446501274674875205347081231888045405306706878106829914272118461342861999105192100751756689600838155956178316202617426960664115405497580519888971396379082265617165337825264537166281388422873117542279536846775319097366786790412014802655741783528358095281127071428548497836890005948891161848181429869677600218648144336988240520207630228724425972294907242928620392439767930997836376492142147577359025154322828473070950290931095192823991342306299451900524638130551400794162284873314383764597171873266982716290821131107934420060402757413627877685672109799588076981852705093856581533324211572402628005311728880953892095694191365791817491972131824050071729478624353088835936717570808261063615939376896466516991709200007653386149243709735534988822978521560815537134118926567089026500994251059073719475545388292465913676600488859961879764034056622728280409630231537930963003184248796964924935270654610610171635405450512175201594595185805016380284852952112113520427514135831223012633775249611852326608348832868979191996210210851328519775466237895053336356560928209868876933667223950490211280613531545200675368256927955709234197365743850249925990789476790219475046074855390613935106894986605559482145960760630058687015948611045672462505461713263309224781489839699081309676279687864055731941311175581757913110512114695079107813048301419426215383826595172862066976137547618868830785023229391649467159100346815153329047057440634968194758402921938966537713635989903241792911490624763773685110836194675306576745570415180205364888133120828926236822221456078704601377573958701613637685529071870994132199589064465948923204216241740128332449381368048553945072237275800270793690539456681723282009511723912522328744816742599310999526752411603291540275195536543106203428667217019242851513806159560423805410671124811497793468597390346237251331850238859421878915013463298951783134719218314774122696859380268093032440965715083487420008675479598345790398478135924384338483286886901023453636024625480908145297216504916395398557714841956571840005826832141168272590675149428397849225291072324229506851715350974948883055208990876825215401578505391338680762732590971962962748914578968857151256559156862650387963973555385699153488055084774036329967198135889013272909766313766307541293485244973733080439462592413267264464903729640907163079519053532199859798795259389617279894945973300424844631142811269151884154050394024688642461401712102003484068211216828661014400389084262849013917450620826475081511929793700080987439886787640639116718606027137727373444069525414777130730792388150316687669809788092205042004722572108789827620660890246966908412893573138042904925460928103945615996560311273205484104026697381932528861332778773247772277052904152940333524745005342103650466729054940331385539048521654363000495867775086405490576472899324912552498717019331326769264774065252937316854525131104359412458184999811340139951813336770595205379033923747113398213561582487338216329937327586479095290367831866865612663887896460452444687989884414873090192274571139221730222016697121193730609279005867625079702596209682943074544461357891052826590837381886295003916699878659160339245539344952630713641246409157363313308723247220000397546626217548372995690198803559976550936657245680710587508728182591078257358047121882976906405655969914422985713365422073074575909860822190324030453718738203458519205550222925136859630399101446800211834487711271189698755426616276985980467723406105629973362243673664257348636112171855129948952523640773709460804929527217677827815586422225240239594069074913284340894240203227674955115276379012561546408294578361433286941213733420416756673124065295463944725370704908113492696014890989520470201832465258490825410374341918185566730742155017667622589938865193593629616941899971455234035692787748213357328718330633273541263917825787487108287133899458932860469119764217184928057829974337131536271064890394714832697178222288246302203945583009382412249682173793122241672536426425212794105945510646808398487071168831849460015678758345849029135455375988865473957134601143693467209916290416683262241808594772434277139422365408875092970890659447835950195775197575047228969414905396283048136768631060251189219260143232178247014926925964680344965122635726249551501575213446226720913243994888976445372081155656090033032788020137746499009253490185251691150368573410399721216926645846094581836290278423271513306763577854854809431147388235226213904437793909483470436000906281204873060810437995513134072877132815175867896171507540885329294338402661393868269244208877864525074926316359679841296102543252218713807969967433972743228638986637938807675924555067446990658002680935189271549419801586891111367098830421002240135746809241849582314351068312678647649616552632173501433836692181605126712862576976732838984605819072439133549419106875937007583750480700642585173087474073104489527156255803434060742811985916604943435998596097613387977374341440577433946238961601651045470953103414135950416487703842137153835333894196906725446783084676546198376746678840870845994676204243320424662672069958616940004688360470552197123838712221968464379076877533363212929405017388088031959644474418811223498355250246702636693560724250479789377599533726528179956325321813643858119174977624301998224452525800733298703380664890182872638168606347537904742116587915586433623978535609107652834893658379365048134216742889159877951602476415189913674954545153439000387434181931148631340311325450615636872556075725475382762210558542221720221993613641445964516118365592658738822961804749475258167071460842801737777626926885900019556851777180114147264655426074427665966631805727494921678780144241245435547662295069516827657854125788055221634073665527019146113266885302311492783715836759886120200632868380164390501338367608465062439190942911878570009847145668332749475251484304281942321531477723718202723991982534243267304963256755008973143364524430351356789172350699424068593502222753277185031462012640755178862307255885562875052725225325742466517100443509766869218530581644079857209289058493534150522865157827621047838092861904240756886456645910509019099983324248314646496999955084594025190493719070126645390125022198539293841176962976832284401056387954031231473980523212520257531467104488900409529684111835520338716877274231917620024534146256989183575562816841228410455720988145010717336223361051202749996515684461586891650032567153172305003249187727951531448194519246802164108332562412804727511988924885674273544853635162891656959311338873692049672436172721620730182928610614739249209445487262844398982886916256655713237043949667682649848225321690026841218387675375064443930398262090379029815430254156076801116582898358554335443587904145962372367836047168370584285683254560598238033416286104196608843874682870055367442025214290433554112166788457242107140692749502697613831394639317350656821460259140487591530248699702321878932081352230594620629231440758313257376901397045983851491842780524350354830876683904745014929443515424057605740289725937336803187358839480643640991173344086426233757190269479547744223072655905667029607163819601019758916340148619129929273981157171595768724567434044589056602906925433819189301621908936028902475747032445774908445989511366544208451644613766091294425314285791530575444497016021012679970980336300390066171374678863865102926773290195925506881731343840895364503437155948400615036213137434532004761079823960705844447515182709344124660364966803964968869996029060619565577088144980947897525927313050882455010948258630524358699056724889462125630354117990346561138135690246233290722756180914393136177740237141082356295425251437552813519491638755459919546273304879042674458457186541129100215510372710480476240137721833384976712252281788040488137010758247891234293928674056925906498455626149831626093388896602436049209618687315842112664897586153068696816411957658423421447268490575134008195947868251214517987224264714899616455228516699048591011917195952197935537221741015854455205361802316956974951748999963020362072318080723485430778257443594798570344013573854166182721807177663818482904215209356160313583823510902858768740852495389797060704956390713934405659127202663078184011835395871401452424678725706340596333191935142952481836427987279087945596981325120874033639579931809382087184926079994014823392464673133575125418850778615146551709855111745330777625225485155634664634624207684217005015304190958784698349697805205455185768881558797930950611455680379983618872732904946091127456825045807533017603133129670830743333149086300068190890851126358550417836751189126091953305260278793958621208701224229793306157337926322412064125933199729998587881216410863701979119126464847027298438978268107795906139777465017208241987020660429604211281219564659315029256023678269782072125720720304912926053607910962258288672824438699764949695190588331272815264870787935390612075142668504198795891760115717043731913512136349793552358031650547842187923888883141247521979566779083557920916894056771321396984498387529261635020673953192972545189825184912685778206474344296009268290388217803727587778733441686373387864225917869581434371222891865636677472565326924183173349310773496159679859067398408604256728510367750035034973888444950392901743209200606943195773262868010977334213902819090757516158358830987642685820123613255001019468518455971914040119963534483909811002285460606794183144396519287943149045408881385652534428879192374798311851232376295076179937657236362760585328115345883343308056650058059032319689493093956640748808585353821769743584889921755479053123480158562256416527055413168309548594867222795870335410697893408892172054866218273203870643816809727631932955413171319995803806748546883684231793381831061322541198369701439867998014908908154101081165998739632494410953390924987536289063352236318377751935166381591470740179254637971763051532783472656260971968903591643797185472224341875248891057280603798183697079363068182705490976737538842622372947047770982805432388383806261952857961976831130075246460834473520287187511462295663017735401583096651784108820773944756156477231469550736166392537155853775146065583706197519677639003335434697939248834169433116659118536194794484666612193406451983806088379282329876302569706642044092091426472621058349870228088907957879145725722241056802014246821955205682547679528513492296022352399418844053456733085366087031627900335574797026058855111641686547048095775717660259683772298931051664713840340685455528255059937511110241150997638864118631829562357693477008671870002857406158619367933200021438772389741197112927106861677280694041326602454941384173151262253065427657307390659324992704232538096849651748835465245207229880655113734220178427191616076897948404430575727402274370467958091265301637346208423660776670407847350377684914311154616218421784000928271237519024006533181031386243640581839418485332691073789957160665445665439852904126168696516237129310914423218516378116291910967665689355420026380351025631769824906062389137263848970449348849070517360630760934050885076556091122813739127555464781020358539919653240990238901284842989036969335155505928250428911004761103634361339587607909042855048346133386387985757481024049802746435486255841519875396653686885862645840252925469923581034312318938594485999680514938193133789089540714121623264846964253401684596864371767335017736114079427745696092233113819593668413191774960305646728744031747077950028401147079095061721793187117929663073301663396299696747297182404727064809046569821318282415126149474941187224514219622567627801025298890594299799833816985942838683808529555757184322969469755869558537563452818830457964602955487866561181587724457264187766633404009056889361097952385101029870712553564305900646587669175530526717170907719893303399828947672737654106373807792092403105853211361047797666864567389169761786240844136360781828109354867766557326099018863528244485316655994231234705573383436291660729092046323311217760508099969811446815406755269802824775940008545598859554404885109389491055377516141062718187504851692568707515780363717891988485629099267171705598252343733988430629900190919486721515825590022210464936670385321665628177883129437881867075620080262054086515246987190579051024186504241964230538886639737387419524157847337487691978147807045488255574704229937232769487823679454584941227554234267684636981921756387856265696672605073714540442159580697262494647819345531863689131192194485115393457051043803179435479979932354902513299026094789063722539651587335498519916333615411241162034462161387709694792608229465878198729813976545554885624429059198768634388031240884141422519872374845433167675917279254948097932332363212505003720752120873596188672362874174887813069844727589059920102756026648609538589883463741019682529363865825019742464599804626197893221930580461195035278808124343918621063800248749508010004314445072796825540331805953002305364088408750150831106954236612312796372746336494659904319600519874328910295913809896030099753094882869678167550259132829315588790031382553679486655486435643574688567424639155468981535028290103463722198135160982291953350654263356813516273918183886835508843042121911143956202717512011829517455539144225640978888675318340188871755936273917627349404963599734997776093773006705958964413691791510955824037118237024441252714989178004113129540728884901980694313574502988692406930352711365378644075577192720770868402132663322739740343518947358084899380609353828981241419511748815107759056488893218418583276602414636811760097510698585929606301074377666260411491360659337195367040333719466842720341998940854182755162026203358779456090408830642613586965589968199691668291212347600690970036143629876921077990525337681214172604554236993522995654759594675170934172425517829038491820357305481518090459159851926081460443256008237783423066123419331947437981040282625844172511199353600633714885356430913501342826697717833230190642635387335628816099526463926355053010517781009270825389213997350658069986709417548460323707650349569923082055957444328894665472596965072860040610115002653691442336050721170233150597671154267178204870880282457834350312549887153258727485963875229292458494595191464508785882441065545725896715425413197743595770053880353843554856511470126420647868548655013663159931806607620997361111262588344885043397809686444276501270061429666393953714325478046242610978868076654322955226466209867197308606364307104865718849327003190725053187226172158946783016825632692584913471191778936969784527371452923941057263137549288560918202227560198286654241299878369243646782505279211365233710935756725898459675708446483543626053411261787729105604518070539690143996053738841375198411688057331888642747158014749844793018169421712258507957491044158817230170146277256136160690806792111876612175297785981564277573029510509129257041705581623574097147670790136034235528310053105095558557279397657891695969831611180447255295828907254352610583507921578914830982173885543206903702601747742812817666846331715438873845432655701732099220359479353857937784782393640540210664938413954466707968074756778005056213175687002662542985034079807671463259802561400600700133979058665506016254221067548600477890368355745056673034418770213488162719693923335062463092475208847563668648438816867977745871945365145355592575852206016136004758377227773292868373658166615086209374517509274052021545415472165239026460064543114651045887062132621586892062875739133672134011969217309463680157457684457500972173087475593735791253532980625985096841956000624501085245028958975283438972375567955784943938196508099746719060519414244862852182916874534295944451718189894571209784199261215409412774461391864791532157787893460166081130903200822191797928746278838123020069658167853231149230029146842018408698442813773177778443771466269217240832322053259176442556620085408619703681126609484959617488832729494856846212884226275449546275038816359003820173144586295993058994423092175497130778896134667552016992141023820147474567123875768897529758007646225804738973080454797768012126017041417300885243447331745612176363062988424112993046597179046928989155774138510339079067773170771867303116282638535113629035108112196734565161157442529115344359957143152793792157709953776413813209831274410015322820585569844039756159065317104154457587912055780469079966510258656069563726342576878921601409425445389871687694862027174022476815026554265544177543511422412789329419896326309129679831203681403782567817891835870087391546551689197936526040379994880397754458228118920647366323467382789079372169152615982539749614448815867302092635185844740566196767782541288393623031315407071032246496106120308568989285116923917315123616774421746355474635957886772161974621556877816845987540567369789298378342349134669229727505989828345792955348896319008579261922544405915050870286081629230752983971847907523698324314530800470889292626528890107427653550888442149981004335738632505154376410661452504467094184178381808673602026568013464366842055594100506178663898855344901390217228218142513512841230123991129894632958567810120943135868588563853593995238984858682747907462025155143365272515569468327168625149306973496680935588227048965291929751919787434459042680290896543572970056964595998185871362032766569964696593034244226362159757008687278644892734862729737164876037945435896320340366766651015873690802471086998017738792006442545763648127788639966339676141436622446641740523646567963468342127725610833443645407944679865703521751959225502807283339436646102134968691381563880529527380732756899899146767502852312198883987587904546998380820040339756158932226848190207802433595527947326522548211971692488443916655591989775807855425080059157580166909131396874713643990458281715616303338583731989885413863473433052152949390500882157860830460098205522871179496635403165046730298424955427288197378981143276171205889241355755551284616288850727519851622052466707146971696060156529285964850644474136166736820526067384349276769793464588073887298514242106751056093272960954194608832723169815255361603713739526935866211987097729203174640639551671894828250485857362997990214639272899135191243635060171753968443462887992015564548405161003061483441763168737151169873997969877292729247617858371945661890299488003254261176066723663663083381679454391220549459426575496548280767069756663577317692820757284340852596511898849109308777248639862803215296232600193178678297085851656782371794735785243164875920081104508266044782971651753625608591241891621685692683607202107883322052269142880225271104405455401615677231328328786566747529288270961185087439135408018102635165846613285145213933666754383312621216109830344283179041870319719026349741074829420447004043929590121915022046562893185711061851770306260585865590502181222229386135646619711235906826575361850098675715704840437052308989875821658474450810465456125153101941708887233277803972825669929428081061737161333383476586586909616156065535212020784633680885503271933926986824851820892554903718054517926824233060227919964647466335707293434524507606375007517463987351471568095895015359200011371894155276203914618807098471710581234344280101033079095424332744991020636828425443835638532649072101955785145790293936313029308212692484085988753706416089315524031553957464204489621624637357244673156039120553203850018257524702989148398658742632274278735055731502690890605363765677954514246364552348639252546914275011907349315945150691607243801132559145361935464253247951789240953382498871143921342590333783084139487977182487279139080385389491583717943016414721789019596704657450753210536269749093872906763640111603025345334552758034748716293509847032979393676247435821879598277765841627908898383273415036249534638759747939611213945048411103329593128866271641706612082922411845495173051123183004853542734369757147859180431260533889049034284159056630183473753911423845931742326622309621872374429588459759861614120483736045134188163005414312166381027765264023965696145698271818326870979031686059324049675230640808131917944806489120511518921093681587018186778262838348019138008059076588161702054993965126920636163837713741342140367251709139023503942459358080054126009024508538628096390659237770656134053621776707076671965590270690555034883074623903272170918024883314341434113967346554875500683188697896950832559868370553475130852937022356314685301546842214993480863600728029041037802779755874937784228963030270792173181947539836899237060137012935282965930085254711588382338103541724132467003527302745085679700085083424058342692978755057614596385775499060179440883908676635600812177358731396668648575871988672286430585030045367103325952487515441563941126246330597541084583516331673256057176178276487442713924062707164806693658559646672822141438324525040489410949811902420387373808714237083021709984518326604958771387337486540647283006644507631283569199442311736477433033790179154175385705078502438548628788141981087930743885128093893717128215493358226075414065888084116911879915024391706620560335440146717299547391525254620418367063398884770411853248577987430996356996946290586406226545646190818367979028487203864339109272041992407155617120900939719758576793452517812455484136319422515615298208324333356252294273213981212648539071096884090513981260628892452959929782959698326131975400425021963168151847981416876132626975124443850953428281680986450148482889086483185465753396357184580372107292559381887884816940451277108117303596023175272024000573475940283217280554431786430924697600836473987291901016436939280483219068986894389349353731331136710180743014610283930746759787568097592504478740725342080881962255504918310972294342945072435675801480487241568628431537932895232315341505971377755437622233344136321197003047425766387760679413125771462760108419438439415784295227942954266452098487483221587218421421531574747085114816679561218407377673396363844030177118755900710851006556444393788495375521156482792178146734473951061833299426304636978832138860597811319439407846800402449130027367167735727278701308214458481416302075254907261543739610110271347791003958439918967468539734122249438664224065499470422048441281454250772461632579477255031271889497707553466350906085177014114469707398075633322194492939933494672534788562827285237324635895854885905043279111948786895472439419722593549498094959559257199957542646541044773455033795730179252225962552319468569058241825236049439970858686036998927203033045258125242032232530032701308630246124336063882288943828859179736512605053591130679573820425916428082710230264663360082192344554750188900271688176921401656495848347731194574450930983457641511209083805062936492199581637238122280475287309738792038286391979069495678320060070653633136976108868953740892390429460910263727347447328844483930495570918849564947293182033044873819702156322781673883417388692186057389580046033306961976294467874368899022434185352829281864988661003965222171457283489654251275667037140384996494806327697013550719385436499780098460869632237305375333361541262061100321609057543830868734225593340106575264771691315019277490671638247031421834702399050434794955655845645937424836856707484128595505992139831227982860339327171128596104817373580412636980678947138825443760264228745011554741584680483331231955344520539037736869792846466027520976971312594097357658726908123933478750884931121859925710678504196128179120904767015592559110783860166684101101027554930079074314269338966805890360231215140488487813403262831319047873804720892627218252084165091315505527143365689693370930013935129820474061085186448767559113020399020987360861256224373130880394050544517695939060752298652390214727921065032594287796568275860378174937848707129478696417665432121449705850758442147479096029800754084721143627074752025948880511619577315934806526819394361158641223881803364904036195979560797233327205207774896103904308100285245479251589912843218269320147559909088028243754248548950616727803879573770572155156413575135153360718716003519179107158584298048831075583361184054886281878783951634048925871339231667079499754114557448661315874767408098189775800738154220066286342074678872979516408321823367393398091782166190820957187224109565507398786062538974442976590351341314053000367295651493563528540985530001655692164870215625662331390201368794632426260721137173119106491680966861595818265358570423833738698412585507993909989529195295795290286186991398628866744325166257665947162216940930366293024317095872225801628770807471337695236171788456532765806488537288749251035272089564774957440041823773192890194515330762092741559711380704038748563502311104261376307971150497859406964970482042069603087394707445282609910742516970772232376219311804686612822697362098259189610377289838045512316083649635709535614656707348350799104667765621261895618391990386531421489475056203008924085938896509662326715281784738783684994620536938089370438631723966867200307026761390288124036651289009900502402721005217868874473319176572790435840781978215473232408681612545582934150685464060161947916068239176866917980518316128700629513734581588432516130007657616637621428131989328095325260491354806593254374983368712609321505506052387587546755012949480417956607812634573759059557664237283390893584875405507807974293222827019373489369294784339566759606535775821716502711301633442154027017178480640446357708073209392116478691681576700534067020406641896523042203499640621785099431226675547969680976120330175189386893604123744719951510127525142966127967719318743909310192915009248918986670823363943931877447866147093707990193591369750320580730665087400316858244498099767346072812257010666938950047405896648891402847655584288160623239362714837532413937434809689052501610763734206989514837170610561249592466118391819440012328992220115437565156773114286980546980099101666071253995678537922087242677164831715026136288345404913085692074321427010763395022398065866366444672261252719066174361100017162442344065092132755653361532186358112217110319603544713007315810302276540439993010811949509037946955087232128053977867270085629939478927994231685910439927627129570498185046867543187207242598780605109150873348407819231658664145480096244728742336694120063320254370121991368389095810316331847601996046442369797216206810075332048186960139698391090590011527641978831870144000583695396817022051334071880417471303745615857000847027963922242257999477726669315217207090693523286899405172696602005096018011913684074657993784262363892478316365047777714038387825154321429526501406832760276896713312809277717570733207097677341476498879582723185623379826593627693313077111481050957190009833796017367136699622351012897163971063281412239663801510511062185804990036906234761255722250154298702094231833456138184582283975010766640640762093368288025260572648802096093680367837262851259965701583522749829020709339512886386703674415037746163461881763091753686513372142579022844997807935814656528811551086998735629724390000042769574175814066881490998594179964160627070548880295209088422200146781519889034953536923114020051809385843167500025140678863606231994576068251581544594759806449864217014843388653762445476669976581215727611511019162542943310373051880547654440338901770170519937191790849589672632737434661984214937152354938619187406115467612707093067336918152388078104298872561467534159160924977930160926913295322817052127141523664842251444067770299384263220866062759187342004397352795796790416615608466548679181005326746340231322364308648623036935592925516547087936426417674190342120987854747516941430483735352882035327525638113592794517140735607503129562817376575441181796736926809738662539236265320814398083313042315270894975607317896324179868990140040818938790881377229365171568733061222638833898494296423160833598060191392762559390063236786483837233039786850019338269108732835088878869662246216096144152213549878009091725471097075211021467762792461208781878323157011343424675715610835818919476324543981441264802171332888756758559706258003265969408633971101990611959820550455411803230271713747577456954611983863841713799612629393388565476690532023734732566376289497243848646504407383894076938843350560936783534439090884362835082451223435732775735648171363364006117537743937727366556379339621378977731911030416416475875041336955269541117067354957058404975189868765906681141808697495084531800445515650924012189218056590025779229932379882012448817956145766141779713557391119413472073725876995430234668551973101519920125989640258858234465195563246134569059012951250743363470498866852307216284128789673012229347445678464603173811807901890614977803344356474589735758772963314952633774339123865978350621563328058302586466658522679117415992977700837309482126084628276367221190580127862668888054713083077399151197512254534027128473136802820862060505280943292392045780778534944619167241034935124723431310282707882419716801747520501235331457014654794393374668519391835808335384968435170103826414627434324047427209712125240940907637846882344716788978404881584144812066971382393370118951860398030607907832437250244000079690142476432369696323754343580660533974387307296125987309542857039728179269380477283272363473997469239348300606028359876479420704795318468831811021371143793358325257790279990924203039947471965877211452445568617170506856535729946561716011403707338544793094167120739898440221386452802877054915775199776693175900725465080652717160086405579829882207991777937420666445224320299353577922750141333215704682347329527640104701801887584260647272316072148421462219110438784609783513593392958324377102642917072932559399433620334837799270215956206406031098275903552538252791218236492511376302870877771717649437907995460328490559940766767781824355534250076559081328891881264762158180276524838857668337869924376269937888113820543911587450838965241233403019409616426689353150271558164572388303812869705298833937915726143791342658117580111890635144667888213746630886943449111999639905459230854990043673530474876443964716666865652680482188845791629586542447336700892547290402880711758917166640573442738837669305213564408738001828384081017209848651617919148584596395891333263389398638426918282771439164881428135015422335179232936562365354450977061483774093050473483609274064106305334124158084066710542729042435545494036373813536918706320512427564675765006485521784414736190955421694516998898070960786387455151959711258690661220974506712825867174617289970356800743341795885968820197969514884499730936192077846791737407122068615723686206641309555863314007259618900274066996453370514783816163260990679941803017309441048386626547674468333788860208557853301890989578459106468526341905493548651496393724770074578280855251502381739683707378808310591707930910202626187254866841639978849654230193675976488871382088213908117233059462910190927868467860295735433271216740671380147350890506655422319627173418314114711616029831431662911882304836020092370032142196957310407372087805527939385196181214156102924756738707176733667131805145359619882623807268926692590840250182420410604804608082504247824841756828536040496046415712732422463535281964621144818840480252112641238717659709230227556399778383488140164258050097988087178138445149085211174566345478980913320512195418337862928693179825807720244959632292780008404739947217274686972113948597714230546757695943470570368099817725010083863744473843444673676720998817045583445983201467657630575838570813711929465073948902016961921435417706512078912731535932017215505745383973422610877547561924405501243232372277417882129790953197208331090961061776728981482146294232593955509252955793025104054183604093406989318384646454970117096135192824473047598155796796284629758852407153347995369269227679515381111786815910163677184493778764686537306367829720731936259724241902866516648294231913067683951722807032879618373511129379887777522357659775578377246796711873783136881098673262049427416942576408685350362521745927662888363691054223491382952180113512973250934148242323868646641304832662980498683090512112511683155662184285382429507097674827544982022102537612487745054929272956651346765939544433804861817867050147701809157435095865206519753713479104645609722697317226178243962908887407748438115917915174027301489754819708264834156408213584200279905329033218427969869129130083583345553430642094150857082846826318908795715915596421669160280370953573036450510318885098824883099643993963669334101647767448391373999065869735381957641950504846330102449278051798810923551458152300591250513559287727929520259855581292211682683601138955881770150566498286855821609292566781395756934920174282005324814476591653533877024748443641041354095993982405185715725725769358328142399810306673774564990206007333024722773099395318991807880055531041668697148975189602158470648521362910617469555450889609536315894750935369890683004110214550370747771742989548650772812993687059249020780465212168609010418253956273741359463794297486228855323746116876983803108669903656268182212195110055783518474067751258704724804362731687040880140920959307973184918856669922563494466231860259505659381966605409926979076756644991619255620831280627050147260976557075877547955376076845069292392508955341578570122993559795867427465400537619960339367457489866342777724325350275334873019981642226669664832515221718400653391541718857967338142499604467109241667341128932920240268243677608445123997169219888678312427682156152205285467163070113590100032538655591660341964665776858316100647910064538248383315055912402035436075320428720403239914189455181073483757175005398542096072665947025733336851407243635657872606404268467274180404432254190075494301437150121640057096415138899764011943064547863734039409268206475356431634743062052288535399219252342591567731606336043537909602764873587904099446018077967952486561406046494090876641936546922400549597321142538154327738662315902781575016934272135885379925494962370086724707334113992502384333021202437398596475376476556292072503145202792255271772465953670362310202078979297329527142772097386892284161359726528678347055383614238831454421980603644226815402325158520901707690980395707365013460462619231698717049300862883525249197236945046146774051572949003623299758649084814752054141249972096805598754500708520644078482835927358453091850830047003611630699525145039613981525167442826474494543543952000334927223810996811978835362920342021576095547779254657777634713652288806567285969392427528627944554446210209345670044230588148034911980857755724363061939442512050395202549014751883498308258504618509149611301057100627226821234840434704814649364116051970688735431890161380318916151632920725448215577052584151136348290777551739937871283038187221430858328426814402651655518374308657071463456839602487056023763207306599381433325811734772418108613376417202691429370038678811740271161117764791930562803973699402800862233047892345365563390110191627560232771858330183580765038272100410436499783983306125631054923883324754373311460578608194406254414352874817551245056831140080888749920162821231762627371630562532726025768847565722939159047983043875079708650543463391847329543868707089036071471466938328388457409362597643370945795775577575415027172043828668268516867355567870906612483521060547615789927837694850025027573379850505500121732337830560410575176949195805706256900204801005613488664474480554496248045435131488456183124803159505121672254822955768770557324424228158200541077879119941451564135264949497448957624719474898272506462284227843902275241561789262831849533439073259362602192079127780151058153946690267847725853900395845283789857477076746659529059707423964777793386479758273480484329261338928720575357263440654666776814528842943560775422866778690774645604484739905184869416721263251221359840548165843589351208920561530920846085697013474901589297416710501143784959277605963957578247219376981419414539042376422602206533819799229394227887361220605199491678152395616688760330724727197743311214524292746511008748578765971626959336534881525463581772137814338436542991895076376699597027715966657896512240346777960573058383102001216834810970272052789784816851134051066161763928367532738099014019219303259035131117021244958846420174876121904012488392097749674262388230100770997430666838138970786054542791244083083356687395538426576244359403615667918838689502004196650694584836789807970139920741918178562996750769410414893216227388187073819668886044405609374379963934519875948364912816694703450173059416650381871843412309597668506641059735319247912587007984355830996325050807454578126284332264928662491966180266255730852376973423286605616260882218169931254513692734738534311537334309679776582425666049653573136359832161372942063463837007972579776590472454346059101507327952495507875301548498467189835452754093425896290640491441754689316156708155739320164027850874399299635144790285982626921422611981668429663744603203930731854635638113307230056925659996517276966933641294331612500898202693432187519264371683225474045825353413006109422084349373684474820350920546362319872651716808219721589215804466527819413404972062113951307142683278705379837383655665156104093952553856172163519130876944827109258796039188344280676531174918668296477578216898270119884700811438868175360840602747019817308050725842683478879804528746853544446828485274165663010804225661866810932292579480699789156918531208661064390787424499578709492372194434387582299080048443165782534366668256226951042304223305404733654286085782512290473193074526172372637884078426353929200718904730244670452584266518236167995286174200311143945167859362274211121864618547714053111149390037122276930026857794218633998736923163900735125574213692395934700636228796676011125990656455239717095423090173903024826617445635904565188689695309337209785083141401748283818397609936763281065723012607958417008517983194623862597677299255828108774074321423705873565075600892145527323353193425479909975831754299236741046081993645548475667686466615938625600276289651864070549072428566871994655350670980120784848789910647356337254781944486607211423933591683616135138205792563146511614782686674619262391941586266990780856116696700044396235443176515513320744604819168502373013579166466752418079267785552611947115395926631569623984584493726621889267259845651844937521221157011871579345400885706665770327819505022457119504787358205282878148217955637667783491518607416870415619170635222024739122192684052605787698124576730921741468699984249572385390098130276142865882309959323416737865701430160659067877365638550601078595771024140261505430676503699236306055382042514562783576429365471970944118337024390039783425490345560497159768489370493823147716741318208109544073093228389539732559109051509569320922198404783032495261119948938831461690942607935403646680215002108183142818127540704591616203862684714427582009147822306689723156889611857518002310284047483879551968605126237631240084106028858036734559165007306781869725301174510840465878886446011055083137512383731292803201422155464194127215669213868088562905661068014037634843300979461393776958806640793446282328079732568589139624487470623939345173765958751890933095834395953335242308139254154644842120273591757122449586542217573994729940834837316129083078367421900228176038608608343642534601563635641995436496466362431992130909510592358949861852042324578024641971684526559303906214797069471180135453402992169590655452225639281375840409980679781387509937972123938001322992123757447661912596031017243059451804156311708122833695840653007009454263551857217652483082750010706461008989793707091912428522894720609471698712968489780392790619433240386162595231484521607803116905622871979381747202907633494182258155340426448984070616083740930171657776142320019103273150793494256361249525360478237390074243842892554019992162113711203204552303173400582586410209418202171914568736514958170166477168344524017492970091794305735892429361470793343326888990984652092322890730719629516276770624750257435893043384463759491166474254667641672921292842893298927120566959100114954143905451036102645878768906978037779928186679155663497623525075468620234258289936027413145908110535327452951192057450772478324841366652456179962348097134540549500609895036753909460780974161447290195834696864556090547657643898472589865508813435824192501785407760173250881321307683202236497166643472740082387638345827231017849579846018556925262093947572954986587934687470444064439959462949736989223991365478843362589689700391844947885962604147063766837181904079038467913964860889311390978119692644210679010592778368580122337643060106682904851837082389219439412145766534144241813806419636400619470834377552833691534766574827158802264004219284245546747617597112348562206472756222905852955675825948917167669035589842047699846607247358935555297163071839431843369034879143432236117342557700919561735505780556346803915998210143117612567963485544050969827270414868123453381883256794887333828142030449720822466598006759463972707487756603991848138883414304985754677886653804081684284074269991747799638999406263259028697076469342974159836646933939396951054094822742462823936206994424239612819434249325675097581996279456243069970715103194642050698879011676238653619240769355561463207260302723437269654139832341189514037536756039140853512093671704575764464026271013134730725836416957482683044610635964496576622754645290298765208584922677033632750275910910840830590714745280581249027986204125287776936763133382350729784290448316104906483632444606823991243221376057474369420300984405503688683697829207689138771605710223860824240166047425398230787113590189925032632799124407888561722082494436841983082480215381309998838706812426987063310558236787719118348981900051603362983938020825669749639963539880999091864980395207833964799268119714067338696979179577688334681752641663066437893585078624914367190886525733552471213516180618506162727530124211918124433345784094897170597868777233563018764572298432880467089680824100963336581403342894476338911355937324127741272183182456355014265082946191029462753926594270699831455644774192712830829346369598762343218948648584894401186726308042148474440458514178614337111121694072529429172614450790262821775032252241888010603819795982898736827124927776947732227328847745258575902376994689478369822982029406034908872699182360671963944728152525787377989642939186769427139223160980376626947667508198042089194506892412045649841037796455248342588007506122572474080492864569613215969355437587224890667155121598177835967042262449650493365458457034317785680580052003248720765818974176412471726337525128161397831492652796930086968435753244421683650385131426475939297133506175657120683342903724294218115488239034140392482053747143504094150105747137009217890675836383968842844579671904941841221588826549194918843360153695790761376894455422017245345566383410429507649182365386821494064045036063563689514518815840690082210504897947820403322617458245631613771786821985840142483513023224395173392694289148488055332885380119092521210875314010029463071957035006248869626486089511084901165648848909309786071819290824941825864853550393593133855719863921071875155813018558586999025619477315648798597102871617722056642991318826863916945574081861610595176148785859988724548629101237851892970995282998068819659319700852195303298894625198002358242708060943781668567676671002984910497460508494950343247116066876890442159503656380911708618328146105945402222088677411041064307307598460377817858812819023517417314934633916069999069443478556832308991130621420599340722454021032540766510117951970642865023739251622766540143371241247516040696179860878822018676683168059993295144043551835916363907053882546852138229461524158636575173314391506657322544352855156066755617258522588639985816113664280965664889536774424905106177691638031004796761730203987348818334345091157703573374035318117788442051397709453166198486897693714725701137582336105080780614935510225031575233982474295774628284459000531273573590847535933938221156640844766974779739245639785492172647543715310415115932262679444282329243048893582091074949744394692823153350829729683564892047209184437618456267884222913188457645491883746736325483102840233339951869744163480495149678416124451130926640010729786446249743747143385585708765207891118664234354602254781149399515553982207470426891433854048646210950121632155986168349278905463019983723667197124843707974529238117907516725408330365360860446601124022307931478676072097230548555211522463267453942955613657792577493332454600523682655941291486979466043935909730431382975029925667060659182045004991008586292067849952497903156171362898162668152962324042692874817169603063470828308647433785823430982436502431888888969608911971547414888391277316387175568910688605597477541966162504845577532730357069346630896616149876205168784932182618990204993352864135850541460721715574228434932644305335793418144260960863059740127700210080054662091509492857406820375174360028564079600174181494187376989829039873522652883553471237004779788483967379602562761855695529167302048810274105462797192296500128288662132768353192553392719300035702393183492554240468044029962519079750149970747741669967791919293865847382794169990972920738112117421834979806435586646607385050434684159955379238643919335025077687183848767076477272511129818817024142515776104436415052443684164708993077631040302315576599649280105614944247737095906947720554509414725449528185298704059739471065967532786981592295815343112809105268083314159896065978144439208633966413999728769308656877487829609675981892952866329815018303995499109292826268264947713880628449893312511441189780599687546196135793119644084156131547090989418835990962409585927415711648683239935995366788508535074506415350642991538509041060443988820880579905150164700880023137828717634500253419042934435343037451588589751794111669468347526188708437597295913948912700960327675769448554572322251610424016357129150387267131619033663104705215277178180602637572292865808981497363493306227927003531710553390584157080784922587672206565440806177722915990895112517615164788570289291249284827884821175207258719009548944935739534385751816200237954014248413023010616401523558492233687478868066094594381979690815060179880737470275536091657347959201777096919278979680796771921004472976327931451549961630785643815918485842001664345333583135730949061339862564971844814957972562752143353408068897777029943566123752324978884304437173560033142189337139783391833084189213180802591749474645649631871683199249580751562679244251887876248591251499034329740864733713336935281435076070300696307356119937044554338990991453398237665300769234867341471462890681718124387352413482661691702483910319294679509626762796151431033938047307532809279649791592578032553340143272077426137878601930722225873699485649746087014242285341996407788592876243971676349263340388325462322946212355903757589795199713117740765173926727312132895499128677908551657067595322603449137660000094254943836475077994850065896942115514136676380841925154849916760166888676345192046266947441878601005915178641032101298653500485040329281472340521345652988045979628308232200739213492307220043357478187551500134967916664692835105871287784024880305473729541428658026060178639238922098611432779771403249035396416681116813641265751756946354495273710712238549163055726323047145610477530238927783525742664320761920488042957024766500430355441860535749571182707075425560032550141782166915621498409310583493144064913610897173429889202005972316242143427125130031328216468924819212390289695861137704623230092942123408807125118466422622547939055328653344162497314437964587287519187157002244287516787221532571456591485101292369039050631914472510738558500584749028844159580922425579826650735101828148908336433685307234183135867684427894294928525412901823120005573436858944522802748366878116366353742854902272859864257796909858160529314234161206138107214531357378536863347334323332481677317714622220320375638652462471358165274034936152588493762432182774293083943811002668380688840058511871933405392722357348672279544486754903414467610973773802307845799913446650508909033304830417172955178497123659790636763843608729907859707563429290156793913230194117853422324029906538610645614877940103076819155812717666736528018537772482230509889404783780298974098160111520614134151598049798170864042832997668577913348870465226853549246734904351720471051013035189694653188087572641056577327038384618132829880366509272395029981234734181179432807771541067246376272122041038934896956597929022069001242952627431158677354377939869236381838377476639407436314902710019366334291569134682772157113236131516517591939823528605271693008173237368258897247418320731875645323131618567356022376679112278707795522305740733498581845797295960239371396817128599586656226424816477761319992653171571732165176958869600539935987002400606820426343488411393052686667804162902475158652334936459048738753652910359492370011007883734170605112525925240929515181774590733500605084647540651100700688135095274345492501025567560302364289437264845798202693400032038914833238966571620437017773937781393572750494787995184531098364873650486179742870341823103640593314232846926104287282732949754159216673011196359691772658922709952408994158217888916697280425459896890256658673288314678110433686333814017124863566246240216941833510028088262816666033784993882093803518381533635382643509805109335343463396206225062024710666373574688570539691503740996821172418251456062377681880361660918730505254421726407930398453214020996940679114417903804538695701781154621961621219669340057207754831237917946627944916298306927082945784535182287708104542819637736689898927297929460574762519420752030848168735312251180095950230528449651983811945443346791256589841078071416396698176800532054591546916978239975585388432710258941256869281205485771777795453491433130992822762937518944543276568295920861416089732647850383740336764480429191880044857659522350866976421207447653176148887237793758273573511955085149368311692003256649366233049688587692675243491112230482490888393576191981577013252489272577734356241366318585843526636630104969381088979849582153184743602614443098195987949669863147262614191481147189398879841437829224068617987095059039094673355238066019030660733018297365301337883821265359428917420453439292874810968201136367364737467080842526789625105196701603067532580795132617495090073880701281740046295701035180031401589520035297127398061763179475235425010955027353401418224963795240141562572588016535197863394684303523470952412397434028236064965641126612305820216355952953990696894475242849616128959282596176625277301988901008001348682117180827993742118862476786740141377605171523089481193434783860508033425531669499600094181712090580074871376829894440236749025811401614914200872741596015052712098588580393963794315869613881451098259205262495267218764069716978797993710147429962735084418490093527634146573896472901341283587803108409485588729936277644626830215866059674890822785229008166033753203305083699059181664612841787092083052355939544362890925368763308274965796557332657337582903428064445600545895453853434239248300890363950288286186912485495151705090646882798991717704013218336642616672726028410588190215056270090397769422177963500358959082636421219749057915487181288806452958654752456430183191377814762263696236363837598917727814352665016725863674394478498570485792787860777643277211323958667265158549052731792041231989041156273671907845427190424021035510290967681711542742588994744480793748576895050986037364839198568284849581336136734246801833795486193064483054112084286877188914434902856606500032556161073391997964128278290876839388411659244852012510984335139583889615430553113835200773040761319146001861739198307810966593055529967160164345700374338948145828098707465324588736977836050081633077267225225501938689816810678345068405234936054100380838636352584910778349123678715344894156907742897378654144376475556587566942517939178793119883951251679769842397318115007795021352788524586552941910181622351288480840825315619636409266779207344639586475031872740670735295355595189294001085063132179552501810823272935634946823339618467948611858179648549462588700237888660321557280073465829888580584852189509419470690210269074604190324091866286667580907736860820170849752152053254641899387240264105941994168404383518698803145534647890400299447608900292439640125709624266449912327456032698872127408160071696937742865872984769413922533480954815008404605017331448318513790079801511609975394821815650210127546879679261929506297812289950521834296790718047427286700327485723687302533638242998792504932694570963932670103984461104314203728330294554558773442571647495390572291467006552813953464660706156194180282989233933810955751558563442076457244058832802308855955498594689061919051699342334163361644069762508592678369756865765380691069152220531998284194038815738806221049629873779772947252329479406131821104412620468228381133548477211426402178186806024253450442705546397377674789363447000058515630713989910996029392382337603642066605718207211912202772152623933851807980363968352396293096534234663344350680284659523635010566715045823787864355167827228727694406464940463992306958973033232424596696257494744303505796353850441049242457418620548074169412699298468703451697334100319517616478693385518619938451453844972646961483259619827205682881207205783491273980181951005519883304428432496550805426567519531330098358932745952731063335557199022387114119948493343484209286698889890225682102999218173320539332785414916928105394859726417963973963942331127831552934826208441106499512132475158320026400943905321734217431129935053172078550395412368034554098369410556247352080216590083337240460700522600365326207636297100788380843714958473990286813633384894750636541600742108485920416118733547444351628557688648006343340582733560426223247123421428537773120074284143349813132138206176885436854313517576758116318154422191996780566056836157360587659654423709001821925738798903581422716023308352189435402741692479358357066128939555026283999626182074061305970112073974919943032021130057112888151667706484800392092262496856610741756346355087853544508926073274337035254980495451523163533082601439122569504112255505539167341394596554475426926485830597613850202121891358409620617385902489413178050481887942980657840700373157242158936468973020243088368451844476361816549403991713558286711348297647166767854501398199178040074686866557164940427698919311030241270855623798227186629317662490163746518151798963313822061620201203304899155232832240902218467279628992049853338109532191368393549841805410078740452680622694881347357963732973529902132052914064471391631694667928089003003672509294355963009897381528265197300651268474199148556040799996816041141018154249464178438888177341090671277442152098978193293335006102838418270434861099653406024064287221385399832768267332474185522172599708054260609552581139187771625169233905314720327411898119886781217393764868451152964494231069012537419987465203265916815703955888095686464697918791921188033280629360997371032917597043508129479683816648515050537704291583567520679318785597103545486937100696206962922487368693878028597647420411683000648714205678862547101043083995422099136807811163208520631681854473946261438150579537871527270973105442091643279817370376343944098994995241815488331580073889784231889249469427587007160973625931845517436189005545297087424210882289308844990181972065341626405917514913961836518941281773398007585920991046245096535611893487585414429847502272275110742353792267401744784786612944270675727421301428754836010798883229796679015165381136307061727721674285326634577929683326049166972674848439605404258034067205371250076190868004316676133353722569715001926025013246496396359869791245722009762963863870586186682157376122344279627963423626224836855479111197607165389668212307924172000682515199192891084452354775553258285423133579679722143659105171332277532129212244746733615410814881690635805912748042173899824434457602382664383558991796790775426465427216885545307118307200795531974026409332861026813034165421553008112251908581143017857525063754091654718542590942670281061540201687026860814153117245759260047491510787618651234732774875262312365794143624599270308582581450744070634237737458962281135517892409424993718764365724089897781023823128872563942297650161141752049051821791345105333973651962325905023415275594990112507429480484568615791178206152846731814733066090941839323356453348221391615290711123547763619606622128242491211945164735151833330163731358329196427422307822103869460260258983991290065523961641988417467297739785611422398036204845899302494139182109041690939350512494871839201687781983456495689127733031318259853907726082037787125008505709789655490035964959528745396658077078725665352745546086595258772876859165592273363632586928944712943621188875047358498449255717376533148987843692989668376729672337756867981585226597752916890416042294213367311223546592663229558971681474924897354670035164696045725413485416089966176989958790483108860992484407513424761704452941674009213569028411051032828248073605732977291900941239894216741110544425268407378740505555646055804701209615943871614099590465374483972057505450186489290129780790553217868209260225973081825977347740261274643303425122832563041932457853204808285658558122472400606752390537045695380437765829463977317531481683491730310179883285968483439098420355619653820243169002930575006379237662037940924016567734137630051408275218952496157125852621585983694021965580873531186701678234005486093291778798127988557091612252422798197997401229603574660840486064599390266766852774773843196036144129369122257867507105135126447228204561833212871522311605161842415196939799354741374449112606563220666056092568032368998666716113609736834585960509173084026044057609545708595607034608605785155791522159092561903904354903831913080596929036151033234554596325034522000686477987399538233926584938488162772304948061199579649799291028706061318729145360596479222490954439280217963782675060744358744343924231626886436246224222644471580370169127062466872308649985451646818924068775151075025913521447432458313731153711340692996391912074973704992466090405222790858777565531318558226864178813011219518061063908275688707701292121608889862971747254887341447010819506744696280727940315110989590738552487819790919430776093520971094771127432672421895836174932423765474027858381619094872373397016214545284314992729447671613906897447066065697396485628554774947657284815831871828178698007483551390858200273167292976718870562247466529551308508693002102868985512050247111238391468805507604139852698768308679744216112829388740522959790227514632508565358859445017114216483133498318950323763302449197800017507588829085907815050306151411716639804103434758901757263662074138622538522506790362055916479541812140457739193169514004779158786028160912339164277966048992578563988747799505496468806980175044142946041686613622259855379408101518563348151475710755494041168411365486683809585437612489329179032338656178652570714720732201699399748739310010944279833585953155395758373948523525277097829705598719009905719123605278221901188067526337038136989090773890984819072384991788998523694273342074705570634524514546455926191315570586531295357692708686364277552839273656917712187031597185618207498339722402013094626378430477805847594407608492776072407357508553908800215621680882928926600816751430617733037741110851551995349214064765830912127762303301372925506496202290060137767846090700737986123070170429315005509939082371886280422835781370143624353802821303763517774784009629013559787460608232931652848599816772275192598671062293833344181685136586666509478418785554656703873249316410403807089556149017317020873259693143073187839584108094700404648786586915054845218136287952963420643323167776376757173944055158764228825983202029951155702284692377974923002207135173234372620707738356670904306161821897701427169487877687285987301584009283813117890242520152455964043047201090608261946303654425472585526845262511570754669956448996482121674490604586177801806837326366148366395505676343787536655842859245023160498291841247641302123052413073464788291287743433164855122949416573204453848165985303345803495006253348644635962494700555430523787305425631580169046464572448931567714452322234624172069303368560625274033657408777993353766571477948876899238104972420572229091487653644871762335013083758022459258679133268991145418891117453817571283704206094727181399098804580511485636226433203923544052631180738162086026710895325386020918504276045536499735808367460602025947590849637506861076928752829461104974847157329618883740952245178551396426267689040594149954373435420750315880791228385891322211975464460601571104134225407486665142608941908593621230990806194345349487618127838905716063265295447686690570299375038615419564101415194065772595942892873316720110870780835930273098449163195942666624671782281081398139537221957884973674316173797930084816408887235265962739666065642749158899272727459029785897308154660624759180382664336469625381310492653082254233578651633485523836104372534013001801648103191644932893092570475211437438679327000006355921482287125469794894396156599676900822311957433038436429894939574828581752338317018877609772678367798895346177666562211034596524845370364530023366720606756163490998445535162749934660064076992778853868344257760681194436231313907049761514882012363945930075422427370516282044501928135954408583192130262103161449304151116631683304599618896895357524601067390302154005813125380081033117010877085819236402783396400849195237723634722666094454288793258382846716641523066993321169048110037070569690653597704273765827357545014473316501342529262813825627429348629029822292102238037275765103112541272461636605452161802377408312278038513062411456715797415148975046940387205998927122622841263089905390282311601898572075660161590185356161554208235948459645627821514319760904978153762782822485206057201700434946135844144148069458364142922391690132452835471474663423399210432401732138020526937487905143880679392432226105810605444224526175329225096105583958301440332007984566607982303321545830872909845123755317281665152961236815540770514312236702096016622076849092605049890589703302120526563026028276924795222127735605183635918485394250015638406024136926693351371703340180426761155612861950004989496684381259303964463333210710297484827750258972794324468958132544774988230267993112306018423493309801244032241857339005643296448058235065509400940497407173010267530965453193997316371216822754587393235208749840889752476372557507186092662501978328610918249374120839864895904963676292008220244096181809785925046708166299343945964688211916319103644675894484224387427486926151382442131386102292897643977926371992767129286765586964861259393537000890516459542951569040340289934981972445647070495265314090683759378583515700632661245285504397081991131626773269122054491425280439795727504395421090997351664261215506314611157877366701329426058253242845442642440588253359467035919120386354414622256973214774195769897509558651658171127535142383834148821167502015783779690602127891134721371323848528756643483024166804569661312867309832034269180658957414687081348426968764885364042006859917367042873887675647737542199790688747862073061402107886022400533936254004692678305813564364648843632983389911632345254175740851620429262894656514927408061850171565839278004025257889777056205505427610054436848260533602759074698834953021492655283795959029907735400854454024453520252606845641143476103722347712915281166501081578162563524448201662760026487324230219762258072541916378588329261902940573587750959434965379327674582046443365114493429828463195649620668321322507781582283357155213707763236657758836489213253875587940455491176319957706004151820961004840303184611037085640826993300981216087736515973545797175099275683402562583192721409210113030878483751020607720985152413296123174755029042710212419734720168093887629356527371580831469839687459552012415198519260637591118874015215321717560674507376424268683762187619564959113494163641072993397019007688657644260107147568384773122452929951482939916911810157116895068620723311688432935106814447331636728929515798740949648150841185305630279612485417471721304801230193295114471378422014006591850441620420911428988697136488258509527925501951155967452227925051575555702479622978301231371668188681540436953717256322885603735926837830253384401190015250540675605238175896286849503511217836708006433710221881075610935717075294205427673022990634385521535608313885694913714732152486375113391841713500059687469065231110935753566694764630897216181389237750048442451146778333619442332481285761911057774841418262621762210531056056989883236610245292449366251442168052430478999506269120593782503669948953963145692340453902451907461605101935589703558255404809096126624440828480178003399253624835134205188870285745619340974860952223102495690300516902085132984115413700094305342678807552416494504352946406432128548727526153027666693790978229192478920926172224986451002912560936456899612450423203759268298289983343408005035880043834132051319731718496375769397989037225367488594879152688320501425414941850025318831787510603376527620293640673745302550210344519126176526255096550119218751925892136061801799621147248951661790265393984737611911759199881735682650202461732896351593165903023675652694648168468609958062948500467301820454063068119978663662029615151901303750394859688564686103416849127146859895337586014256023807883929720565540308082491185162268363781942652253577838702881515192577600956687023388105538562703309182548778082102669640858579732776774083619629017878616904266054508471049555334801559311049038634515362697890668462638312023330754763276656243993757008538729215187614920217783153422347845862822277978182516761567068338119334440873437706161889726274634691187236460807607081204714207999405924004925367953192331282631029528784713886018801221807324149463843234325501544762823381682564670834735232782950240151871958544563420286835898582682525346058580969846804078010351691055243398285533391828670827667716063917177821541645022550152625289767988427112653854847297662049382454744853963186965228979530949232269590526021670797629398594827966532910333636334209646386040040950871309918504651971357171241037103098447314979135049530839599732593230757933426735762385189824544996546585857478990598643553324391614800303031263635034095703912740629655980882419218807267203793639683965338385059041063804604980923652128196153784307013734889097189960999889193402909706005143306723742936233306366784402271173345498994850925435632881447508462954427029333596005849446186698890372569740713686995717676491402564962805608379655717416495565305124839587056841205895520161908432889283001748453858612192634104197559962270015484819288887809009040682866026672941731807378986684768286347252980636288570932503141305644322451193936680982205658387190848158994851356636094276450728824133935601613014282994380221942847062115754688037391429462589465130731521907147511045026841628580665126552188164135083620428603663674981348298554215943181749198322461089702317659781710097002043449364083123665678640030792169268797706031464632111305710535585217794334664313600581642864025759138935265379572704935326868890575566532177771921282482209117379350684063518406808871533981498824806624019730545192877157630459318228269043824672124222826599234378718696802575582929267841807583295620038266845161942333248227343982019625316570175503869336967377106957342959935990236999384507289748102865971253193184123278131294611668454440532764022302602882626918751864024914810331953729336319077451307570006518110490062895896703566857963281805175417922692933902464321892386392801047130854504950543305439264057670729434064686871203196724940189907054394807445335140369919314667255353894290490262492219682167850338900015071245036249776620441576650942476984817903438169670261068158229722328743207735688097243669945889120476024899182513749591130866729852760833775251270789968864910288834650964613080936380794923665052628471892142422600586257416689971435846350664970837579535542491830746739493301962904611011855720998842313464717368534170597590156858478146164526270861743212209942674482491439169364781306501736347256465943432840067605593844233776630935816358378353599976315605281767193503255688088286104099454506104782549769483654470597439834311956877683883293695010695012158409816603777168047820007064771815296071604702981227079870261535461336975797996409482240086805346304011501158418231686068279129553135331928159551540648996741642985240166263577618066402419701829793147749851286715114809189571844000037435892710253010825166514408322349012329579919462368332793771883952851064317104215544039273927111510073888044620396863534831432446001994659810800292392498659300258909589254573078077252056601430931847249662726819946353185203612819266358071294707815539275740975204280389321092625109440898996740521829764533467202809408324439999825695520145724673615001187144250353617901996057826701925032288354259396830253844398367513167350653356969442487255567888200488469682074779304919538175651227479915236786629785745917947199935496393479538229811178341710215196697282434715181667915487564386947272606288702294974120095233490147707982902795332820953485845806705172094794234277902347941992652809488164957161703080596913390379951982009261222169975689230999855036446702487946742377093495896693013553673269941974243320144814304625364232062227633462857889840530529580830208701957162686453518972769613933870002730961520352433768793821489824084931581313850169607531896781655215418103202692592721440239979869837741641755710674549193424103127161912048316054037704690397318430773859588434764456341247472011770929436241307540328841615176441329209770992330071870917477671947496622217639625344472828471869606855313036558268562742889159899474775057443693562893367874650226045243837522261604881916872766080701536687938895864025693295820882077298788697463276273101320339848657315903910842492048891735318813687909141008284648537174220949607363621797766740472991329254667580443214270464367780887231715872997106379105591215243081916916842634468752041013816154519887910491503237741373359986948296487863865121660152791874596511856737345188183971272011067351644721683465719433352722655109878204785673030877841287664615065219419404363497223230047500866939460726497387115679208433811948064374737177880711419716846007798129481727509385056134476723944811116412346638169721423853508226416790733350751231762273549909003679194862336390756710965610074749468451381357218245579459766088183013172242694762868708365294946819826325292700822373628787910071294925253671208923279478243729208332365926126755360969624257592050543191964852041811105139654300414991228347094664557316932999844123950395811577496386394413768838599903703793775376453287702481412571835719987151480072802472697964826985279414975077105956141204769772435561421638360322098566363914377162303803058351055556667568327704965363476169961575859293691474128048822665472810500543661194616823758670333357190731546416221060327497009326081875574423842242912791265368652677843018320673704460214507056869148704532028475281691971586961680674470479541685566237856229931982256653728504680735146277413400256713263682356442503728733844400494207344578051646800060488641744929237067920711923210851164607251173905307372314232315536589999513555366785485533363627354053298446405709758492715455460628566903977818211168490030040809457859549739193538210330073570576711237830448814701809264779744166661377940909592516388719672719526776596310778006353592535711864931918329945263201903777543229519650504086279245543840158993850017772470205252535590733384908680139622128945849634623597061725648095623358802353962786212238966216416812840520560729614014209349333377102951569931976381278027159014099087115604650275726296595082071798957482461629992922973050844373257842081516148420522084606809739211567835895690348984681293101205211164546772935859319265821829222018347892118522784496117076027641152479325521142089275792482716026732752688339163046015190882775873367547316169494248460938595961166278380242988305119572966386882254420684151805860534811787513019439628819183769979455101343864710771670594953047392339795526520448565433503372848534957077517128897396592400387352571446191273925127987127442737004971461530349568678150203008699928806611936852345777834524939538742089706939690683530789155764328529412350262328419872622214821423023807932932634162468716837975192890882570307738127821436127151536792765029151201179898011226929645899919394933018406138351115862796136430566591522743626847897933931296473214464521446433031419968031742261609247909084793589823240876569955915938234938711218022398508781156731882284098885384419956398485038142294940060968434607200428058624406547709737997376514158928881205946066592839640307106237105505703492529707953697608988587946970953503091640696989474809601295447123576515522804449150882910799136613493133985603723329202799261432302082998813307159725962267658087946912951099185896116183948453613057655252107827648423282247394225463165117586825189608835384986861436589262712455844723328256251355224024019314788580672441549404326092753341335724161173671956805127926108383921316158898748826593863579138698494602676388384930515674579949303762469044713709944147702874925046092671785346279186508965364751991332521737658653001383284288861643871294670526576337962836416623605066717807861329279646185936050054846853811040921821948222341254823422288516135340855189674351077629108985420376006083315646889492055393099870865527940316654727834249466710827607398401659948372009543467090726571056769661514992312697321292791092710922725507541198782020013614435349482633240833061187140292336628204923446582777218194560401684112889150478733861171027645294367532395990928097739155853256400784272813166507312449720277997139426002593979597126690102368660694284616792539536649139645807300343795519526227416952571429443078075707548172035092451374436067814021261058686585785437052743128753772065403142422772270226017330950175111593788095102952265068647855194282402880978795243506643873915311656402783726453016192024377478033253447072977497564657944714756924791851315136993091673421428528501460778053079608344133784953260391803231327485244036652397408058711881518140024551354881582670211062778462448308217982978643523345522219581775742776631801350519158970029303577071837509137306042642081421767165870728647281747191522566161111328258957280822643266030108108249341921423711364082878698044829545849410474033730319834432374311379355517975466718878412788698946808284352913903173735618392243505011638362270891891640414328078632360422348002583956427484901371197822556371889703270281223864142040798130418967279880471149325565143234627132378527960643205488169484227439883349811466475451494484123997857504385031892849180391485796469118618090380426110511148319714168587741914806114451669531202687330162713671938556203074272227216425982436753712759174686918585609616936249848112878029646004884167375424006606497679734057691194001802011434226683537908279776709391133425268027548741683655311211857484395793123125284468284861193117558474086982767211257709008058946449106130817328674277914094168752317168568306500279540226995207137982280406550576493598186595788411723169586391674560804626918624862102127381418619190217084006134610034213530652652600271860352130903155361625543283972101901653194678680338715924180767561551955562091098072138299688132092801962823077618072571400193150096853597971586154716487853611765138867926888594949557015548056576979134669549800507612406661711687338965482324374412734952942328787016365887159751145458397730306337194251460428557657237923449283801171941780632172175380160829798940165984929392249615756235298824517383011054294824246335289615302560862253106738131893808210865113155543021121263614282884931428801618449626614838960217084877723082981209917108981554309743602576396162960334919833558544913605194889641515992630219388368543909965084307126090756039571307340005309716874723616015772736036680222261244045726402040281303710725872152699850458466967212775988910331600920267531959541910042741620337944620893313824017425028563114282180656678610555201022598981969770752723319399237578875110052636917100948060544171037141958787081476928457455850765690519328136836628925204440834617209967549538192665413463310906035902983349596124980419387721843319096615113560153389320843551448240177583302998164030428233003353934432517946634804714079963095602360053061990767282185121068741949285471456497254876221888236587119804559395055281254248212635302438741244477449723311052732997615954118232511936231662586546736661809343765619624453039780324027906356780857103747176555310000212384431451663804842841170158374999399247313511483144837390328116106571340761088451472615678175620513202509785426714462274142254866567509235364894008182843533342868515308146108370104755511719589679086494706729233612261929534900976454759779406948294127722561423635885634110193320446910698691098105953664464414100765041483859121005703370441489303272264250144338000981404109079117235718506976990598412606815985794309195296866201306646612882959188949724437133606603995687964869054065391951020102555861938208333104556494710291997664480619065586648069624932330042673690055731004292809593888019518986677721953469218780702653399212550929544969662694527164334335215231314432029413945365802116302176340466494362018149603284020942615100679658660793378101710172777162713606578272947055701703189642855086577068562116977778855721378434202943790861138227980382225892697388496577387628389025387871138267803888909048888683386914480608216657336125801778917439029394730027899813010559383863222168882756002933944376224468360138205471728723889081369527281520513055538326058878036660706597318359201940643174759042606885815142371234416808002522210989143263589445841666469718822294982231876477785422925191354504593695066372904521687535495281982783819248288684455188708390102402071392708980460870150300893167973149856140252583899585005692857856817026747239229196332580068832572429336505848569678629206902118314223977569263189637911496847057378921510826397659272783364804774542378918853941989603602660545297514998827219373581204197650895001506417238800593272294221217778213539604955018489353633096275962228230085881396918313063745406534865041334860174548979728413466063664751462813418515071625415454542713410362828443302650431230355681915227058796549344232449578700644219690512972118073565196139700897367004861037406016048764100148117696279344913688283685427912411612199510050548446653778600702280695226074722024274564853055995179038436012991533142639242298307517249923272126776806752668084795401342963844005630893276977039311052286572053898866128706656038697710137424540590098464377217076669549331885730970760054772569430365031153003491854882296866288018677049042179608353590797512748400988398727630488489130078985980960582697454293926368405789382928307830052614630443293669015436804783825948348497058435739675471361342810909552163663848663841350620924920034923863873162383952841427012728522170174760652641292299076847610908909875806031416563290879802708904524783316238599280077683218687910832143305940255248227550530220781087868805946542670598003281655058572428937850548788479108474406532998233854905784065001815916676410796825112362620107324686275379404865988664747421716933857758611248239048200950276880877905912353669169714667830303236358888643141371116326486419800038422202305424123518164727892886128267803454129429945154220406950869949111338716349052106080124369467549442560849907796085062835823744902667051868783835077161348129438621830749288241109511643827400267828390610647887362152837309308342708814408687504456182344010720879976857260362630331816214688269389917300737432600799310848283808368086268322260883326772232509913123950145814511654984108942444186897358334788589514742633046624784316218019890722437940877172457126589733399335831628280220097391658937847557468080146763545975671505687923346277196907762769456468712036409215254985805972290879257259147411169094279262592528109912285302346432899346977094985201607391805911224712565503984259228016118464865706187731534308875711998381734104794590770217332900331053352468541316755704621400987333919830007736386014800175611155597485310385176710922582909154968064189728847126916998419064918831929768458172219120453452391419396222277913241028829785908295887109978817952099111514112210252838714022043062278591762093423812989901059877031774495866690083045129097428933608324974907716568319634163205785353437680768906472494642742527523778389610656781051332749101152046807720966093974278048127170827682427281738571234539549519798633189957241481651794874528827265137856760221142096183209323392809384310474838336323960254809259268716427449270716456512143854190631768624910725233211611871306787397139187208064583311576095159180213375066280619072311973585588680461328536022557294618195609201055372866252846519489552420439255769807687464578676546456086827784166252910357677268406340176840204715200621913113768186209152844337572535447076686473867906427776274183016693418520624826707293692030086158455017483319893867199998618641401157612224617776842060177953032320765523087345060409557734372097525233793003046620416076803835422801572625164864093439572842325484890118670494286699255422470485718494222293790341108458215101674483682365600679316357085968091309681441729143988174234804970181909531863233118214023128031638891603050827264479004735676431819638055780111615005989873482234994212071573984600735700714917145474586416376269508682664522441201715962298286817083413096239619164082129125711746765387621119429903922847929210009130266374879263873563384544087221750622219042791957862057975488112590864512951664771429970105824855595843674096520816096323518202815333521975665254037757003641019408590542067990626272071525909493173942636547954011972939571984585158402772470441747058058486312219534498791845319916784285510682609566082961817690255637551113683787539786242517844442774298803037162326301563438711204306339137337165105805625711133595948081668991608099259805224842083545704056852171890557162800170866251459728303583526972035066082346934768281370359253807658428491112169261309514302103115847378921027099841067849698994093441215798977454440071967146893581137919896238654490205543816450713014063995795118751662507511038030061851964613884263963420064976364487044715402202506251164850423169218242135757542551103802653100804927105998242592653034699347318878760765429429165367823255174238091835505604122357686874967653913737190661839999275381065393803382945316603525033197846448303622338065530695149478840188972552203367206932794482699977155710446489561820928584158545978820767191343237749984504562001772108701275738975691650736477500842741844236970120307883972138526594605632345345145399611618265147596997901080100112116877709405614266402723049553643834948054212433455492356476439234241162695041257785876798356662244084987984907823001442967681859641959037838971148171457495405157402026970334727655332190476706799355519072180433862282701724097653486924605988453874682300995293731777276792487038299301198017057323729418464519031080131904413203126967614916763347558201909203323620293320865061476248472894197818749380657331737398521749430311601630936191980090567686782069209996027971021562356346871721965518176626970719384996985027055430534891755608800710516732803866714826824015232218700008530523383810860424563678476535228428382959475291841822169658447878793706618627548849059283586850504808791850540053736025122978856886396365762456403076325560104188156866543533230801056821440123174500649568210549141453968772593957326975363572271991308507384303508087672929835480485947449589507427361965298495453279738337199750577583832139215800386501782323486791505759507837336984846751245004426465987682215731811475507873378299173836853809934044198430390795707983946955609294457251792515503486394550136075759653155199638217560705606124198243985819073398571242386012725412081599729853312090757877872299456164251311115482634436945283717885184062735534090621350317259588811060656789132885837923744072272216652780424563549539966501254911122031382752545989516720984706246685333691113264151997666830282597525459937437942829447512869171054884783039565578607630155025730625161081445915945214341364500829210986866919052810560274133171919937986617776886401624043528521011912910074949367845443145313281024104425422794263361433639877115558158568458595690997589428397653172395619889962708131041164480650695876821409772344472846050708724005208740142008741654025224048863896757879448197590617937097615726955265153132140032282312170109543646755555789449935686353234005930414530773624073364471668710924763187288894076240406615136331917261148876436374558753274395672129200988930545299581109243837288763186186332286290479279597689740564643676372469611198604316529883301589711223156807972290496639447438810959117974078550469473312419382575891758651532228578302031539138978598627913684143648890645350359095234649576043786990892585915799284579057091184706464042094546827281596322201765805306619141821220435812095700728561907897423711301654911138171102902526379645128960015372260240737860937764434740404221118602133569196831053666420773107962294171834870745953629818745172854625178211994736310304103963607613669449460057873418631247175012846672782529351810500577779487037391239169762784608485490338277951215971675292439416481858835194588632017282430077823960787400303819976084696245092893240185799394335423996815148153081085139189631789052978443632694435039831100423319427175773689440162915289906296030221389493896242423953057043769253086268366478720010802706751470884112729227762812536353067478345106177410254321242968823520883427532425535297257237038509742809720181189015687599608133784402099966362578436124768538986737690384460845558682582628315798634118144005429561885718141101945408070771449355264123303787757325124921242470301190909627544157687754074812622333070502855818227287955749948095424248430830090768588116344364006513009388983133160150003631254253319543668775260796593056436867528603421251214580137532828752494759463584903047969799535936815918996861468806032437514086965810192221344144050131916146068312151192240669402046154335294930184966411473526489242592466154447832583414398672366331662320024605031238831255016180736705565847070683810342687401938454568939542234751561659681959666332719582233873481508972825756511740821181453205802065139300528652144412815089643539213916337881127292661457614799144003198188682303459174740247917848190763551598049913362152935831025201217759693233028484256112219737957050390802604502774097304720957023083090943275659953189208271700049432013041546061409875473461042499454517478021473107218934216078085729443740804921067092356583475886105016938624838531896648777505028245286862886068777775014682546264099307492403839921395056349203368111736076371802521855949521561881998255345447918619028714583052957144555333422466773473353143930194206273271819242776840907728740551862363786800362416135529880027316382718493451556245958380611117265596836542503121065806131513599945133706678965499136567910287340053895423050918052431632174638983931683926005405110274730588606569145228752250413012567688631489058358898138177283884508669358635871922036589388608650653142928875316830594944604707223277458857984085485593506470771995268069619803482820066678620865543351207051371936038023583974130903743118994204089238035829557370160536430923985768090773697605037775356911549993621573564478745301950574810237620797551898012854980012559867685022669535881057839933574135493204024843262732562753420524980901971168462243003348966351707953082257310058761573073580331290908350450294237343150430109599205810582729722752248645220145109573189677207961770089680682527449134939288496835134761018818629039529235653828671771077925447925518183923750148848899806107208661654664955428436601425529189787098760650621555962977334191239333085509221242573458871126178002005970335092959255137467428753503624446386795226275090956877647457074655133760575831612073749744423451434700968777757393714434893755870728618466560087612719516174396676431482523407922185940072109879564767709909167857817038037555409450182256040316866877736859711332880132097246490699681331197935918914022412694591018332018562306671968817579343089777769252277797164918224143283994305066712789553924925757008197559498936826769048786057154420087991214109558264987674134155670849360851617647726555372987081374401518209268983991583872010404833018447414213752979416590799661992833251515043490574034379019864364302241602635649083024532977793972585400684029418860352715956514981024811170337539938677611291749979725948503595757238765009153061882406345912349527450237353406152844533424717225401042083536046300198189651818749051113486296153289144855765312693189881167500167178444908150883612503520843176395702424985679935288671486975521130037474020444194995587104408999529123713145513246913970657584912790510080880669112785891926758606452115352663958823137052543486322199360845838587866013443780510162058653132426239250149363365198108671729692966931764189162584599788099916306073968429171198325888787576452503991090992760719904038911059154348191538544215397711536032445879859092535508680838222254116472765541467938143808115819095657151392634616581976838287303628252564274004218404420607940643000070694774824109904740438089999512234843257569229664173802812843683576254756555437101180436743534410100215551684008158439535509306831839955662614530316702472670326870907663171139369153497631905619412681178435371299719031822737023780034655557920596548922532852100704232942209958287292747185448397064344736206120330090991316757946081173500543605926372058221852760784372144266709312139625055427776448006991357397684617725210916244470048506653231136448312628943373927623812858738156135079379712380315379344838458874738223308120298805174301978552311899345472036566645250458152274144188301847934401440465547792623118997119766402617984281745782449169500512638809682566695706774704096964310241601187065165586750774079890523394801353344684692398161508610705108561775062669173918696389787673749498855461144993495981739477596051734363798247745075537204947060189358021090976972120681320725933933720154307602673511968610171051423938468176836955635509892952110658435831679160303995493641415336765965808320110526864280944667846883572995853048662565623313730440367587461275245081946274071792757623415005973397083089979766933653368342363545919709918589199968768128225841285275945625360281467972443524802368681260818550249194389717155753091146788712969447904572015718137897508754334629464706290737723379110667477456134815620385944259159046069615461214111731145899495965965428641506819317546242388648259769790766228554551715651001102459273224996421629113512996333922755366690072857753739941418568411526869148664565263201543776906518129858018984519866815239912591116533831986316247819770471099569278910856323415186530753958077861368363656436852746429096063219990758469691510956338287744595559547795826806267792607833712937525667516261630771344746587405842479312496078162969738313748809750531834962722733021208179194055212873675389103864166291211264896084405546009395736112991018758603849680701381656869265973348171907183593403091715817465954698525921451224262347119331646608894136008942751228511684454604323940215934609357004424172444191596463023998468671357667293114204443953233585384534810621483865855730972082674207498552337396474914694699917164542300707232453786675380973629046944529038051160340695690561958213644888291972216640774780463211563566982007155762834369474968170082063258634237910760369577714100667791871260099329255793971390237640324839735612370262680814168378399054727114227284225260588473131609774817306743233074620897566010518271695925427531449271592982547700329351870856684318877228739595820296872633866794261293865349962593746827727026944867650788314943770575454232983687587466764749191971922628039186818492545112646723313456035103657176168265934246170333971936097628546397973874323528347923533115515037770466723819844161899330049170692654793102510937664264548037529565254383673054386810262631192714602511673882674660201092629972107570905777332998457102445431320113437593831014086278802698316379359137759385270172927799777320058014065325777592639619632165380054819558403289608483112428983836279001523769721004103176033880713977075437484354746630642070620712397269434536779372098282144008557501028452259469739571697605634813551556285878128652592351615876765684987795179124022785272334118557034191990509972461651768531794199565606214278891982445615264643645041752685246159239503169499954361831292749721287795720543713080479136505419583277787705316637680061887159049428082081238754151513574859728056894672224922883846455090671378509931812868868603497315013014280241893948572930352000216356243315595434467589751192804498276683913961351116388497095226980415478888839708098560011613487276054771617211484519714221888268017574335426894110939568283818499424236726601286512496821502012456360504198050769596460557131858884034358845564426196186842764904557580016233812345219881502768274062284884846487001257296290344497213120271345634028078080095592706176315321787760967058491499128773037511558441727871812443372389770852662946675451040667034641134257673246948133217406957901897724699615662170158946879881073275291949102548825949887197836768189984054505415420614470363539184858404435583641418204127713884387237122944370242328370160428968751580487057135283423039577095174288177936040801244617306543321989959469280624755733813359833339233982998327397964284037624077041440596847901048574561128446590957583548261223596185909706588142738243397666853179786937447797595586209477034754783056385238016004270482025099994548569900865889360242274044640091458401509584963509819867291827262065386968252740085197288289356989358617987396595872666366538477353122249648373077090700308754993077388912931247439728488864661054105963935553801555070719607276579171381846209512389551000499569664274652558188363390278609167697774155508456967470046055702742802572848554303380218913550005722113895660198174751306453499462760160060546210923613265524254899961261077226926759478074865221984553598574437606411228029572566198952119336929036386279496163005911583859680255956377607217344065441236129970560452120237955476218114150314809553614670356031384096846029503963415210404511041554452622488506048146714748259790977920952686972872783708849457731986074137279357934953320477903251243208573400258004940220252478511752626806390212405474097615593614773373105907693741351458186782707603210788175490431686350284203247722687565622896328008375506388489386754464763288695053228461020618449476627510985613664806294656250320233423514693784589826489090644329163212737883085164200869824941376594146382169904612144091130932977371233947710626514130995304675350834555438851545690909475720998652512245507987115453619992725874199957534967617428072874091352346189086227873812108865700632811575097533323821271142515790137375568595106377268013550899208982804358725289328436503376633620888327236155430455142022296041787470786785836904427302472074623895355326353157691131573219222215376278046454279638944678379152639011976583249380716550018175644898936201729342829343300992986299272906017444032703480745770085105256146305130809453334027270547459187766865697908166129078788570022739479774952136524830566720258050880343840942358960008956304653858061465425504627417108146523654782063083527737625737087783697707797010986696300802319284954647408123616475247025874142775729079677828917406520877402503306147657712999976937824417194490363242314194880810010665427247737587278621481818184402084754722192630033999568663122385279140886508139279925812204184404088863175371957941814175719013516065382863591397873004277376301113869873867177505661772228214924615992013426904032703389149940705525366537463224369700790229342208187622309581060103595766942012740078318106922270137379913325526501899484498277112586397153909839596368575125466882948316582071836318254336783286975287702755173039471389481757740783745324671368470440995223215129826618399045542599486188668281978466996264831964800678569405164499305806015543563787077193201303695591223970482906511639950975927201199119143151448048577730572419489797763131334682358796601915542833413799522984413799465030047259507305268102758262087229022754641506426374895105780964551168984339306843113161212539333724980787473931684322713383872230438725504740133985833435209267534832155694238025217816883291232225234646390712923491807398547012836755224307644790568552323163553275836879344386038783363383875511856440906211923919959575193976830814510276949049484018342662694975021689950744330283537004870820405249010376755524895298052681474798865558020206337425367044176967734813803519230355562629312884588618930901656273095981310966356593290598013171460508146310333189137713685516340981970969207464512548328005127479911002593282984614487540613240277215701164579801782673138693681816457293394000995404785055218152970599432117719977271340027468358453592581644210550201677246406211509718096116785891192497939430787837938653609355843645735257441205441699410450737623588556497871303571328975791985561290471622262302559048565238799658933836147842597792190010056908972121665446141404118006893171080708337598008124325786221147872782428674833501491955948032685784228620398727844113432830531097869435921976496820129826072437168251555316459259339081401501590007713365224180308876833000101453719495925322507597948773280840818134830514578555182183161231465849085476673814226221860797307209242470754987723838161137533779963111954746409715658336478558061572356341352243976364808070795964217559703642951094272261704968888165641678822357967524733813440934621191973294340352187795999492704187320050734117812060513494437007761165143866664093418972895950057555153556743176994222751396005317461115503720809876232535501035314132780800705811226183893261888609816471874209628053468705682822964340048750649171212292799870220511872666464790765570264606012130814145426870771224495895167888080844938605006349880023642735088572356215243505904197894245949501090179991633688338785813404100658798818534813062656444133886541252780890142455216860942121082898722181069796558989304746450470996502362175716200033258215300263531064661416423046260094441262949664460493074888072473069480490558707276674762507164073172116629174484880689694957114311880798087392695547042904028273508505833779189798442661744432436754450699620881078874697574844209183915107218795554978717170180117270589557847471028929648941411489925433154034137111145959102056206061611690581761904577907908911509140277616266555912798471123986679326200108289974394374175838491643174840562397691624123443945017298540443377714896629967739664512245728921715787057050302313019337505687656174305951454371361774395872861756799680222795563008903246772851552845667050926023259777755103611330063353134846389204078746954408805981955018138044228689964560457757465354965379728543293627941905188374874744431909964800475743934682103603695911236825115710429104065981145885763700457369056409548083556773340508563858967574883976357615456593816889017061830002365688990977173406667960539245371022522896502672381134013296174115916468210396552194555967294409417985395055011333169003465954734092802080510328070315226762085139300031052881460811066327757135395136294779391504412924850603622799046669027859251141842148056563269851565141900065538640496659504246965982280971819142256936035406894023099225241993347649848845351087149691916853733719131480628611373994245359308133367005896684650616700547149080250737408686731006674935112485721214375181111241560865192883348382623229592086529504987699456313913989162475038320849844422850513193366162239570291963869232428378976168533299271910729852138449085936343015100791738451957279054663938965108073667903652588847734044465435584974851921283789511018816713952063084094910208669736083458833544160951281997978340500163978528545219437269279286287642879186082537704461096850272628470663007580648945664491035721586223590854638391124839639084908617628114335432774683405138306165853074085644325360197144111735236181889705289080948133565694509953735688083726657150403344354875722290357173853113059577649331903202175519058695439486113552195503678031988781662637000746433573393346110635717020921793653395517113500124239516226168285654572068194776068825757736050911052850915897685840604548166051127416222768484273455092749634325127563330298596789225636176071258907320014323520170486425944045412795671091361517423470377087251934226849893801456721554331281809627235887467243387076081814713996476766040080116655718764404647144027690204594948788340187926210409832196169121890859276874375062275176118331421810218970684669227951403036574200643451658607270422094133480055770372430096586788509978463525124369385646052339385805726640776175004159345738725779557460472781361555020615433801421654128856612352417207478300499503065204573130174578047247038048389609821464228164139209256961391894819303117512120321092253086370323082199898227526667201673467858140417007777850105837291560376108637348254205231345074643454966607789035692917213731396478170018662535643373066213993244830933013325993443749802610891684170295174729585075135734441822016013787587905563010482055320960592722279808958551679370589262784448440634231670299848441513014833137884303364507366100605494393917955073599951651521549081681751519798769831884276578903851608631918649733218471649895833585046281248224378900970370806197056020231247444417169625190320958225669329493075757399965778509676037915885089781262045431162783598632856322868613671543617367125337048293859728064431407904151803723315644262777497632371202492268652401204988968393008385925099657520177986874746886565384454313131041565969885268276132401917869655185380691720701509508088049239538450464941037016253203798515254527914292836125993710819379101857882355756666182472662494738420061043711949350847232986597349606644880724995003670912081483747973880239541913728488971795998103260753942996864805948768872358839143719394952993640876740324245968816112475627217225956863178537085150263435805130721868254506754900033231627240603407459616282368633775775142280750493841267038455956030654883145673777018259024190766843917051950928545669793820795065285797747299245543399674863309841735892777172231948133998714234046468899484749239522617348419734627168607159189593602384429866769246031082677628014809679392151895744788906149070602509908420203277532389688826525051577911773000826443876852543628585904037594949518201780121267391940726820854715715559291959652527073969900388033004930222744429359460036690239583515987431924979665541459067013872845937024788458919134549788816252791476304855450309976995113385005797764996399168934161918141077710548161786177152118987629962557546350366240685449523668831391622162836922369413113907319377368981856580539564843001082491170799932628422032303892669573342240553599882976686476166118650759572694218469701805917353500540869685742340222246678517323379547203923960806181651842647307925591311165304640668571539625913295804150583635086127085837453450989514749014200334497229620185150986788986858903435933517904833022492946891917240494887724960641932607678639043715113988467724609840057344653338274065030887255983367911119271513956790743149400150694482549742563190537213449455910444963713162309614034117040261685510500113389090546415114264021939205872962048389360531965719326589916978618685219418415116245105819865230255168877152427665102145039262290345132188131090712204998273427120671414990853420689990946448355102472661427381052933062514045933794831844408722202455354323146039227178336819493985446819006426856821394426246645656547416330439482891524296342702445497324201414260790041830975516050551052428004537727553296111603407301383767573580945648523642031850533506491698715913793561084699987973522015361509365621760295472815834781882131152834380856993384662301343474063680562890592658178493036293389323498533064520222267345097419078796901324773901030378131392950386849718109662434083552453648998568194486756497412455906266306172532841084273679651404781307536646808660644716442858404009820659357145680683180161965483582035217755109729644949993140467025242074429643733135486433327295531856406118078739426870968624926361236370911876805637760796373047365086148434745441250541738772558515568348266698486230573856884923614408011057075869291646281557153622262992096423952679414014843674326896582119927268759679333292408797839565829439737953415448565064508035495768999923710764302297219825768534636504338235627683402709262043118748682992572976760401107572690888969963135823227627195107526830223361413182074236344974202373418698322443911692780225633262917613305654715286672945004912425854154082596635276224874286291282728768102815042528695488150472022607005799985177178400787438883274438556279033139362323938771675767662266424056332950227443902119293962612538761558379508498749094593886638851487162740102755261359472725429997923688181492013357379176053662944664470488875751398884749308625992561601422736635190774818941193365088382366769706690130939688076802855981481133631442789641583973510089169356648051051048412278613770093314502959504000775663878070582891101872662737261389132179933128443384198349584556119730473042285755320911979877394273194679943320455463131130542999799211627969795970132845284532429672045039123126708750357138550042228679622088176545529178152567421970203201694686075340467969769346250703730824707968182499298229264723770098900531626747246861029631170895248505759156587443471466911336935458404424242615158270684821510034449143960948274776187348602396838782331400850211372564175523587272636119938222186555938988959266537395846958088877528002834450145875147850743524309466545842786069798710229691850947920918674381751831112758236300406922679227682904021723542317429171438232008202740914642997693418661409610607542102363586045626686998193075941498629019648654527764140343519954440046834426403226985488248600549016675626156665353073977033776831736011135325002507031425648026584344554797483474415613293131342855086830017491089523211271238774499430163186910421367941440188143586182424921584803982320061808391664386832895645535887154133893747346586975840070686128143682422752278011064601057233473300208411992593692762241868720834966350495920599579312589593400879264589465119900782765776028844239337952216923888989614904719076700229312694481834563431524197518305084357554260724437677839255268007553764105998556400782017362877001713666030610623683881860858995247534207604956923067102077383286324332904165295085693552212271816880347881709458733293601972204197034974492986415882564539190777011632384638936169697141491733624903633581483421277603388247568476528041812810370681506712126518342074658094126437898150810918444109470569887702775084225637032833096952855307291110096175732888490531883676657360711465609914397496065549961498794652876155898257662593107246091177217052968938393294691607167780131981187135997739708931892839240573458251648253208838715431504378929644788313569837407166040536116065359111378343547562709322537533044350391410927733111329493383617681292697181314276144662461498359034839489021456261649957236052272782011136383814347176011056845819461394926313486080533864555521824590325374793080847984875205107215033467819413914026190160128410819201035677560451591160480615333050254109252529493930504620887547409181761363824696532168256785030270615580149360434282757774624714055735288920359623415548824333045825938589234371977422271765916327229994414535824986375495678637564024923367662883413794044472860598399544410146277932478901797559363724036807114205792447633495749933551764124704313651599826698282994398003807192441686965847049663419530168563887227455374791134834531122648353019234335213981461826320582790498486258410489090555180823396990917956401557364779937037954610584426877941642990754788676110475246162565337307773267231540510125576799449887769488429134335397080546654977075371683558734936296298403140557340418286660333622171204986647044906288463991699092414818961739226340324439575570444537817686725623906499823319913360395772068769468665711468766189273281342934330247802540901574503660592799535645522016434752544109855087460375415589254226749926321862638293134426105671749838380104961120870367146655120958934344033735500384259975803945685535180904024833338866519634421346691289541081501507972776984640388990334196181689832295752588207888184196738887022774649164918301430630955383258635242332825837131542579997698896816156521913876616661796589210222627772010209395648665006662986999761528173432654954132425685913109910615746018497951458254522654193932453006356562064719634114259991182437764654654465399728745354048209405729826847410592074915060540451981763528255571940899310590331191651757408151536065798116851468730289711375527455036161593277667560686556174488724287792647418398693555009976766326800752811094333907438418611857238620942882019100304955494872089117863123336085326736829606381101711394955688122374993653093737459726506250891732754069491316008723708659341098895809863555480607143132084129883362967976009666608193353715495597073156351987119922371398432472036731123061116259745135774899093350200649256600024829043138405943531205160742973688756781498556679608929722653541004727420132974141763763972194249645140824005636052268301354232761466510121275710548093544370254894165971327490115445484833655121574193455829387677655691988270837339676696260302567999491369650831854675024012801784349500360764508282642851971215042888962524453539454012540694270666784544618886023882408280439051917223037799377382071710327857245406000621186218068036247599551924285470033661115660236320678544559075667343110706139488306051244116920731943050377078063758907052996857959749975047497229921140188174800534136635148865052969037978854983824093507376377445134244090446091168292383142597049221158194142130374193090396343426651521824490730157623567779788240890194131275149917614243045040273167259964818551071799518001660062936266169237643278267868881572526469570513089980009641379333234086993496256899052176019356206966386190932534778287214561519095614118395639528798541321376724723966613615295031750578373574566954473480823969474521203552595188395788797752830670031024542758076346193227359600557476584916007793830297516312747488041950435958899246405803452037520505260238194181381598102990940779131920455369018730689039121981770235354175302941200738683591678312653422138432001846958419328452037728761699820273680009088876554362790713174364212968700545136315287975161737692073652851800562380975788000510011667549029298348760968051343633487631754605874896401345686594939912287405186033767751600200623374288051036657049513765436922567595872398027741908567208957052697105462742765291646013430705584567657428156059430928181927057129257693228743718494871238078862778099338041437718865192138936434647776564546391660198046008486458714485959300503852251449491237403892057234594589674505447428594433992061652987233832624073859002766083470430565899277974345902880307559195921803975776600259953713240689054937650433064742281820104799506088314822092743834532085476091879430976215382520938143690799004740402362472865437601564676373164991433102155300481130646764328729766778463848315066840281028786203381152959011393817194229157713636723681698296235170222897902356684203894523825149313692662948040188989400163878121381428010629899946043139777479965919944056619177855732162043137834650214390027954931660866232301140167589794414534522827500283548672530238315428551901298386818639210124323755713356222514684821728401799341993336256654772561574412664182411289804213945753549983438112893224752352411632192623821534551855288346904003816713961281190978293367444614363710687439321587034878741687891428384867635755910078211775195258603266006926005158922093253363543356531765576113477793763405030406448036361289986351840918813833043701044910664830437014026402067687517266220225804260690075364415394434452512882142692552032552269099868633174528418925554783756861611486796165841725024252393767598015408680070203836755713250863536007661055631133787084133640080558023800108099491654155784417576014434493538612759072324755737330146337728801590375841482428327681063747671698099289165243557219014356609282294546876804307266879199586182482296808201489397361407321430227281703591316796768944341098542537119168998070528326910394993441151026534070332159013330252483912334251408647831223007861168673803168483123616757286313548920460133439690570154389225791468712639842794647553725832589748983412019946656181443928866429042964805487031045784246144277315815069192650963430411354278681080151344550385340674171077012723479566867656912772493122679230023744165874562368605739910745317283011162771442998753760862930838873951362152460582627937820981005891289788080498405479862996374538295825139565986993377911865156772424841922564778224020168400824917257196149492715530698286715235691447748849646805342998284511855687214649777494860643587501140413886953640118663287377807083151933760486292290635720590384935618674098534339345666267454285569294614768203227636355552657317446807836108466021505822840761088923086264398500906951654686397279863518972172550888981054666922944937163869437044360966956529189037498980129516030223360254004451371560881204030922950593420144506570659035032670788020924399536207079723410447366483328817995415768073136505694436481650990086342203236180113138897219077756603985295423966683079192097261662543101615167879692402100298603001236867768062394077175441583365891914302160725519561592746148584263230815830337724792258739942805040821766685276631323801235082346062636221172938377672917570396516477890106514645464672692411281914647492155341337087465093512013267255564476687965485140547887120554634632395899564018422050713324289125759696291489515770054289316485692424634087788257087996707442156769298959000781063432925237590808665116364203996052676298858000227241609124373070400931168344339084687350148957500144705301989724660362325313467624648827920402693090922569936614758545147040140876642899819668732245829156884698472650164385293754106236063213873366528036092688563453999631205907957074731445677847140286732455377954093537236520110118426280057764537209302035738621556850549338174384341390027042090085859966900217369746805043654507371644344932034183595118865995702039582020190375851544791612933125719130860617772677217754401124790414350216224918764967080548424849856835782958292943485372922977376743570808634576604183877549943701239333873987518849722954856981904851941861715487516980461955561613905421126155765493118377622200059252521173813413915037412992923395476904369462121090307330423771399552022625485777432104773669352064261914460859101218000445362420037335265299017284423503382080982526594123306237887465251028675433931936767389069020790143330550805230808466519097189728446547195760433192462724831765544334177756241442519691979149231035867263899614484800903468646290072119156792213102641119732858014725743147201310384038638706874630437384049512303591573136650876315699805542436759386727709923611481193587725734791026096841824649006523289409804082570199912922758837141279318688248891400664018118071651233620107926744233536592386054848786326384839902297603230241514307345600305252409986138948132542567176087689241524113953202443904342872443660840174862041597249516447258835084646638165900008591508564347065031852092891148163402670776883458184045073018192217430548820074234404104671114226372796335505492559400481938832723742675901252176495882995416685217468077788353772497267439109374827043650279806328799292998126547175437738817788269347703367934460025353760911608952638546374054357148406532751763864976913167379379732816285954287761572790560975060019184973546990304279302600693484641248667612871286337028760127506591345118099401353430320421690414275444425902494602992522448803747586150755622135537414259149763005041282573468259303659263225527923358560247235009940648349558903688412960215292104491710330835676845427660091239129269537987201214340412794845163673627812284471785066733909940657879560278220038198156621261719988361287256654111435107449905802611776775565742405241905518902923940702779157098487587322189282910935137554731018054731199540237314671667853017363649735011046229394787403494571556726667698402089191979943669727533276109772873538325085436567838160321618725951011720878561474091353244528041125554484365250942012470892900612320444902000048320802460531090297918912582725900121363123396300636684301094051168605818936253520330476844048665870796303934528373625828769568631037805640578213246921707424372300770330137489912765975780420045263218343428556586187755785791560497565652934655856503450975698538805473161337713176170836509201329559027441500040155704953282230862236925429395263855527859591787468835173502513642370222368932972903911204902822400108134095421307198992764124880684773981801084208925041910655063535902717209567226359115304677853878847377118607301903335537245491011918700791400602653600382303133388312637961339980203066637657442536338915191946816084091124722855284918191906322132430197989255537053094511062780492915359375640301052221203947848475714253753664749046290553803451869536190563769278597430057422897599582343156409549481615146588256097007485905227953823759096877506631254491018869282265083071147918846355109510142856210242679506486529494986647999474936652599299190699272213126316822986430490557354945776866569135377972000208823649309098189511070437893002097860527359926614906325691877358389046055409614207886194941102190696640671309861169664287426822081043601835371031212727688629370692887544758983628378724559664068640366275665546331003727217411614564341645037451347824909976746026293213678876527101720215295360255718717218826408180332094236301389342317471075615105308270308749122743667012116010191072519912699840485752138591653692994157752776376506589724576135007987230397482317019618835459100374413863792312021195050358247728802226556193185742829834688391336148397686959905131588843126771584820131509758669582481844903525526963525371334290970636238208935610511272352842743591259576405809037576029695831277863391056361000808481004372010204126679128422362693642587425194408357809729969490718772292396966900891055721417755798092989243242389771089403072054065627085789419534777228343160763435750443053439343233329622026272346850438575740350763285332780362635456690564786305494821981117181985100979964206797789163094307798118219746773786611439314164187983480459570430477498787010516190938032812669265431772260242388085337725032507271973377159874026498050090603881016129897595355417872386129368599762444780186444170491695723519915171219861676481095549440432949227447808154234589626681145376943313783205387594370446395205447231753947692350984633606160476246420877997812095275190667922920102928740340376359032346041322672243192192232135334214503665088106720068424117367215645459754425688365092662374183051491518547725563233933671111896271028590259581448816303154049727133356006245513534597399260325334406882288697117993597311911149101695886384670486320746507971901385102581926446325294806784136927652812589654452651103803281098194896134352279243039183715863617609153432801874576139508076872306041126686147520030589520159325280828750721470520064342298325240538454414230279418798606339322986650208578034694589646462137241768119720213105866432927637130811263545427836701755289589900207609803506351505464826968602390269916881369983599563520462576982671268355592363265710286984513749807333392505214317833458173855828910476451785846129657036460097290308494073516320315450168143551873102913436468226256215254096959215364127061317534041603178934376608006131347860790413288545302691199559561017359940628565338205996558459742944077101413558220989471161688284622384099301196842764324179780705616843227931166260628772296012302304650707978627093284890087405996377272975891949124839739133408428325885507536430624866983654267131497927921844073452327364353504445370302411028449091970534943365351507638154496059988940087145842849216505414444221909122935963903758146472154055808222082122502064328806820452104599106443404798508780607525745603445384591420885737931412799355220285334747681379972308976292883186101540025980271346272317305152000396532096389741906334077540814092616207736882791641670184526529016704398724052787280785259108375441584963959436979279009057035622879337921872370978209047214281544614939597500415933462372471012388152081159412419726782120271873659632929543636417862653500279875383581437766139872819648473063923739843587161218794802301339135661205477243675187502130363120704412063542213159912768775270323384388023427446094804233526446182734281003555130322711057811603127804093305426959908671278816346468943689645368949826722261591007672265771259926916554722265538188450919691304419635438419001510843806097111450768769019523127498434217105072259548910349928093682687714831336744738203756817848746337619964297586109029006777381441795505000176577831363885308002947839852234121851876873410844566026127523180886824501874324725438884143454345162773875611774208391035573641662803208929397009923007424365943555157711385313113242953633863530790783451000183794737225276043962764891114034347991327077846035748813185304088773758150599061306021189972171034518578015717348482045549440260707785433169444253197242227329726694409434136935188224195452400922030966458254243124665021838955918735654681693672620198519077521442925871276975377269196338819795394610911500816346554094665814775710365711011678481330664170275352751491964400182730247070260643185099332711535811781368664897246386837040334956860802925599178992441213222747974167500720222745286402382101157249801266806339408972265803834313194597661328869145833350349211957305562182966145758002592953844655745080392060160537481512798160477473624944407573067964127394672017440996065835360240183410120173915193785282391378844459329914800210367013620161417266167168193165852722690033954116529342939587912618119545000931701533081739210591132964640338729869118688368972300851567363626647047876870389162053969520620491128516833548589989662713576275159541568469389043176385923264044646354151299143731282217860853148617041736308421382167250896171545971021444946208744170889190795612692161414893607059020802498890687577919650454211067113447493245052049451550240945215028231922378921639279174419793102929800287686661107403734120362022394229124324130691633374772616255857207778973905970942987075903760317072241073791112526565775002581399883667123503543862171127217171070335948600524781441317704518217667624835091997858977120473153264058477429145197136360070028200215061942718805419553545525332432434488421150653110158161843787955263331175027197586491636838003221180800496453874864443781948683454297249638666697603614600458274832228281243570813275486037619820005549098112798495695388965680391054110064796750400643644428857162111906372631593529762434055659895148381307651169123372906557846845142108939361503299243906262311247420835846582226661259365904529139562758996645732854388870407811352445964215148499808900760407554678945783356786145967089610124104249575854880850398235349543318740687058571247622954359055508812957402826038731216504907841279185687643679645785324250569542834694113471696176812805033054856859593091162388824555523819369364832813001673696434694211164665792562605801553474018649382442339717698339931279321840084902974123924724620750089275073418024951237586742165413115950003972369790117320330655879888389914632728726620461628400281253740651299936157466029219045182000955376609897849673913794841086745576774407576063490584319390356275611694279741819897030695785038414841842965789812908468179964369789072115660809700983364590965281902374472150830886505118910056999226299879134032517784869837516178412409867013137182081623678368635397245366753520314273173856580502646692439945552688548030663035412592468804735403250905043239165436607949730335432009652805383107403728806316361306198585702851456829235048885488879579793642438235983885494975433497597880137137086804054499798251874162550799326034200585232888042029094528204468795191201274945044140690647699683978097223600796892669467068942036859689306490526547560763402859157190482984329012145211720307665467204161539977776877332163009416835530259561488849830186573341122607908106073579755228792790865539744705415994399519969902123039104091554112268465400054621016987542468406410352069657099416455018171427883901372043482857622090852536460324277686662336665362005817948004020307113835566868872819250478300172954193058220561597079585106139938614627951794775101825356021748655390336315257384959161554722203014744204333180869313277482565042519234260205328021951028398862894453737472315013584032492392533888542874975519384225453892430739533927812059384077241206608281031103889545616806266577582476535123589832213856787954419172167792175940652756757305000482988220261119640079390864741462861369082638992160118138058060173734402764513857033318732078845181381891199724785532637931082228298760985009935951770208443630812953420460597208983373629456050191547491928542184816283080345387574479126553002773551975671790848153865955779558927196591804273467960030862476917162181087607744684896728438441552871545305247768200785542356579853713741153828102837207656221764241019128064879067075868484050809658965476486745554642358015971609280763902213507012482042411833546593169251413149634561557977832501396808408439728667548867231836886650144551140470700646081785972195720608640486243588187632357638347991376360249769247549961121781243027534227818674560004001218823985813715483629068350585606384391065717496210772675541376671547237426230433297667717759069963155590968763261894436295281495155811761804324211887152241050835598180220767230214001565759468234533178120635208318273171482293626507701014806118215952996366575268308785474025741476802493486683483555077982962831873224307913306066675278619719953457424631798227138829875116096541245793337768507472971748957826997677066814145754327677914724879969647752600755911302994382059334431137805393832946804371168637740348307212185737546271468697028330055622839234373110427019433087951260965817269900917966472648471994617482027233600998231099579758264664105882235604728138659655511037958979543297498416160170706685974069642935262057925444192411606589652689386915151005516604611654309524157342593385181994659960225238267642563808448267815723140009991924944454403561641350503904093629921689327104803586173423830220489603645269021495717506869668460845732668155966801418635848068651393991501471564636803951928383814235602833040177549509979870317564574918544242520234051889920726227376773291277974727270973081151218890319108960449450475584709898571738376486304836477073037516190769163518169517770314250067676545133098097654251023047668492624178600402342561630117931916838015225115216584728681585119805805176920439408985058484350506392021993398495289013359713918122369739036626596452280094091709674887666189949601725214699586022271774397775279610773588106662309142110497975994220704408355005347856443261008689255605665180315351732751754143688700318303409747631194634885814077203047065821538598452456041847897256379407746412296854046461623939158364678657728141783515688980250078076900483294026494276391246811481061493382721085671462148854806642340223830024525328999227882685828705704280539670204351157953188963156762984859020661385878460215230918122102642757839404954522799427142630745056090258495490210637530871507585798706005401558814392120762061436553799955305398217810270450227244941618623206700436384275473152080552792368366034694087773825812948005628504128898914787794809807043656553166645926328436305183570213396010009139660695429724467397560709744543489255269545219860078991237358211795953957264079038515034491472895598780732601324113454559673511960184089812356971708974756151241429908552098518020411296930886626859845761665948653735462571526572722416081064267387973766259790925024952652419504118181776243760584343933459268917404163992133827726166921147230684143853811008324049044326681572198453005946947923514726961342038720606115501117242363019566100504693507486637300186349013985192408552741168845360115930663855258059050134370238418185317700927033078208048098369039273185806150587687188781411618862326365567565745236391284798880381612146699328270496722404076602850487087721986577382058199429335112237501367752639355546904660318120378737357537246061388658900852118693425785611386431550947016381539251735037643166638843694162089144102062694145993695540491856226827820313601067614151322034713988305442058097564079020953546603036737213607898197549967265706574447502514854375455431942911195085597379994202758229242835047778291174079060479331760568272466596451877438281836190159899965917931343171341788569965132800325295693915727768173184917244439925249344599088445569850842920662398132783734650999836505681819071581190804347994980758444260735634910301854800373713940276110361249078115823538370222387338511375368290204867794426188172882314843003020841204640998494015671961753893850364472444720243638010917425028166308655168288450196367647757635582612700347064247833246591623731491091240586879723288540844309127267452790488606007721807801473114207862024444754121696558790058593888621080263857152597388581014688499933881883824228429763167016910174955086055427689913182059879179165395557319237068906210882605181516267065791004601084684057497940831201219625886074521844240100067742115032123950102033036954644885738321010406577755993459850876932870827091377020362929955102198185320925391059358144604669226409763399884172193435643892071951220832867710509854627454999151403118677740436119951948527048965104041491610322955763208045976783533689545439560613765408908760625407345689916418274117089138200829124188134856346599220660748194909454316751744781174633733594460015970106580785388298297479797557962836146567397902860907616587847425442857838736013838638303518958797690989588936556198298408684040964147399435523765833147499516135730533025169925335911841929480565989761545613290999962604872451028906503036824975844211675045419277305088752346240803847019117967311294473208840489224004209166170184547409668162944025224359745520983892652841933539874527393691354524013633667801974518233763711732465392100520543822527443728467054357973561969603898125091692134278935444029083490412047182225897808621141347543064702547419266944514234677026574357273164976792401217859457652440696614465810512212225972247258559398206514643427624674186794762864535177171798847508527560311865291794908163406760408797085267596978460705939766402257292723094010147706706404859427194083912332801426554189023716351785947384571184694075597434501716284259753387967620537750919512684997371268693982522602268253222566992873942085561490280610750541755819898449118840355661900853298906457634047238519169631621610982096666695011787441944131412355527149524838474113143617029638143395780742501270144811617873332283103328028093787231793765419396814166276375844832889592150181606960897578363852872599127662767241218788146275269564348580787619568080737765505289908666843432980088220984126126746873489482207296915698136238768997898773749577656523568049383930432944320860024664598085930882437181296550754259156931874934716986251047712135532996402564432973819850603997979980686743090016762422293983086836184730701881860359275149517902188027836361699382965312437380137563518364262399634680376964566473979667992502985039282247767129505673460006606332733489587331389392479843734270095704649637061994146391406143550290841829991232889595774961007366394309503654739339651710566396183237732175842019211389056699741462771236359878875382997718249563197139681956828484938186728584418666151077019221124071337159926289705118434596784660367163621952123370692246986201620022055975090871106648036574594681656872113921495990922376542968922292875814865761612429365602239440773903615017962127962841582623025648724162631811571644884278092912540352098125339113862093177966398102693304483678515678910141272055147881049035278856580778281335425983387746108519980589045096277378119600389175613330623879637813426747128694391104027731191604403790500832852939856945454748126068721003851856547259213948920281573244591416373238796848022662007666442991964429823500706615153290560406452405498657362714639999413869630180119855706061323393345877172812381682097282827888343410461302099154791473507772506317414624896902770200839874308291830067830484258356260306283991342893954121417276955849234873189029130960048222272495170725604065548365070893472653143007367359997569675867030326393357237211911718778506175950482105222034158372563532385922220985800306995101092646463728648002840480655080479475133557567109169416695369451763411142989172532742949346030718255200924394951929902166017398439585923424129183514288349607619586596484083757536429445072756929262328109944775637649883904727597037667901658929542229820373865067887982340774157496978061625731835240049687548759752140564607368987145551344225178860315705679000177241828007558392518733151472436058461730925730207129918917228286027249995926809406226783942669699490132416268114184498250248799168512137157567362943604700051031007725822615032069228803976038291917538801742981534800457932998092224705108165326461863612705392938058148378941169998615647548423223679015631412307561265371636393519519054058608157024083779502427575450578438340467690624588477639110845095968622186223836516874521244913553200497906469379592591386619989568420150623679693615303944070485035119152220515152747082057288547039717498774913928140491594901720204101716914226703254034473371943053009303755903405570557771074288781816325360749541922154415904634091879541544283093938087471144960025222656055880025677322572473362421658761995361185610193675429284456981795877464681315665019392497363620825822370047775965756053474890886374905326232665195790710206698070197933201691840163306478006413639146700580250575793600641901147771556844421198583846962296196621529479436505646697718882564797347266851608886020010862351544601048125856729240756580855834990945083069212558596837556461506146829251164688450186435232341463905941274094012209305617313150517642191198766939735856622729709371943811147708459608166579439778364869812696907945653383870985053770929225768964396631518640138992178221627224294820903012552709038680476698333560988067836163816730926352993990179753789305702450321476071104884001100064255264754998256844541445423148184737631597176028815984487010736983135261950336778157342674199743961167314142150125765549582044641227072715831613124516883297070543736680959911788694424941552596667751829500181288980097863348775924598007867653575638402934397678360324630814199009163375124046941681820018063679180393914014575654772272940988243683405482963884801461406213526982990861152394120933886092582066349220038226521159597969156105523550356086293165356641195144701967124126635776159857554109667459596613043164661603038616962896288235819584801705573217654724880894360173929405251175815011280140294487410129214563153887673816099245836627841903546456722140736277001561295326678262885139217543131537442924890159390214550315795914710311001904009371114309707324423078233522813866573063056716281623036178698393740840034654576942646066318613717810213204224971246725748625934846512032328610178840915536821854114258615596024643584034864482350442195848461915710615854536884980956617639719686423794660674158173105047704738287469995131660764227540938626454331868475691558880574192314285000749849750862851054249987017422015565395658822716843635039612319613769311785339244896638056074877892405350203380677365080705335671463472477956213680566691645019962330828519482445206063885485439436851403505122401305697912254472362948167243556209254413684603186383886265201992071856257743480911974304108696297897948632204431571754804404238186322442475404701437921103294934671481718108175942673524263028948240208675125319650822994225198118711361000487276594268805764991019608767800178916705047148417497089313157135053538219558218044483062283910520454036527994353369340303982921578471569856946396115679174497397812790063712138620226387435417108144094887857118470216384543294345644481693200904958636830500354104953505192033566330622094783179651436301943864782453838814985808359659957458619680496710994313518322209657023404400652790124115734378210170493227761980379824580185883499489769694287434060804949874435501817149262841268549434460185120316187796682132552038889652904983690741957416366651762305660069861940885830936847836950655123150129455739846144595441458653590378424061644646760432870926893309401739066913110605161687824216352802667593411998941767521047248699826828497606199172282982501091613184551643594390681272664803446248237848232541995797152601508543619524519945738665270866676111051073578427177738865797910687974831353712212061848146032121972165880083540132456757873752997831749747088798396205575711235796167236155129363171781693308967180613297072574359775421730326093565683318220917231764794566318409074036758637875700555915530851979534993166334171442093555080969407256917676551278092775278456401519984477035754285740671623850289784904634328306183900789677726101198853778720500613280529641001900263610752489473862524937081309393183503290931142123745190767648673284025934198149272774808857156966715234277794380997115337849115426326933609159873856766607763846578893131064206262376735889391836276681794772175903953569363271036550065570622936255573240935498891465637865230402658076456619959580683662049307296880647301020690145735261834206002743443952341435211041381339756985918224093139513797184232023122317878012666651411990283454757104360803098612062189902183770458351475906189117746371548389996336740595020897382021248662615407769418377333307312572948473500935744669280664079579361577618616864124013694092127243300853162106099852491957945913533705994030980202175666894806944222418117805555437513755529448073205259684907288046894074658125578064431101511506384029696969581993225214642116324167727246130449908895029436232503771889407860951088161113328962999407446439100018391468438958666609199445164739848639166836847276531313374890120199873099497872546136952751373666804579124583653696109923706323247014651225001448130436363276803775666737926792751787620480847765264793027067935087982951778078074518397135271209406494089273784093811711252358666382070169864840432089216069084610455102830587700660029936397874863081405945580757541820889551649524030054181844077142728669556695686119003995042517891423348716991067528189693198892151906291646702677837957766444528859166843652819090672231760264595450974823227096251625627620054200743224300453052310576217519701230106034812938557934523562775891949606568253635066823412896998308991056310085515772435128323084948269788139174978975501947910652981443146140880625379027673333844818340390167981509435694828993902904777388581958343412999590678586281152160399440306433251919191479529506358673195145210228247758381261794662174026129459525988451298082460329763720855209263455953818764035575149445903259904413924190227645852525382696092998782162533970322172839441134407328484549520732135836752891138617857420489065240305959273797074900107443196959903811990550261413667243164141598538169147736031229093725885312077400365215471766093051642873122465795792843021718597142441808526294112879442444633518643443686667962612636583771201254950289381489395359585135543576183367633098959307157699658288507065594227259271540271125530240626485369194624330267475371527213982524040349718353142377213917264666891326596020266589266381216282393459461608175217665787349295482956897554351409523852603105266651363519010703112388263128102429538037189766216884232528310537441843132675281366106928449201393129843177843164265878447706966219909913800743381322530000041544509535859719407424892185403589997398752494513056087170666492988934072045804636454636981294462796346948026689911165766360334321317831782895955889841978933235143529387268262531171486112087393088666420720437435608861229268034754740413947247770327861003407233260701178194254789001795383802917782306643926716790133226912218456562688257722473905691949836961440723489540410269840613499228914566385688427843956342278008257955267342574796824938976893816193665448829676045144155380881074075683168406148657837765026624823505627030219559283595145391000265596702048080927536622859752645619361277234881609420109631417101732499485006627765691260257236235514371779973013659950874489860635754206698767815334913667558124480262244994619389441878233072536833165196165654607183044861127990103754961172910751206406542856172613315365802273642359406835692161141753546212250809138134583545549080286068099256928611235926916910738198883002583173592279604796677582935281405928567990920337157477664183752751310430029285156482917804071049979317087514512168516796641605480527960480529775589890897832285158214978086170364814732310467893037354514167135393207815612100509579901242972443783710002942994756326934058244819332995549220009106823722807211999153279073798912084945797766461360233653811970332738806739336479557807076532803450654752552094911764035560308640438749905401121063598688413140828808651564173299142902020230092645165937382239255966747793811566483888259785820961583005479941121542833425388560642465378199402140303471053562636867758372073462945987752108298665682604127547228016806262488401888421488930403474075282409522094168305292068480000663329116821580763540149939356712775323861335861656979301266458002323208001878794572487134642614757780312596113211061762604506252704524601219188799144322067991644927100957710662309626006118266854900258703243392153659706642757728862340659651215704389566854150710728990774795168999603053853722278256648230125903921860948532948637132266356302111219807003687885156618544690680250838482237210774925977558624259168463157687280689457199495258118297829708055828527475910791055876889274126127006482067856440209949428045431152082403790449306079935389007775176506016950167959739621933315543126430744682523219962090884882761059933135845443283443111352233732037428317310166481967448584321723527451691757716707985511635199323467217355480385862423952743825277492406151915437671855053726612571812025280614219595270332583305300336226562425215986856713756438842048824293734205088739635120880844314910474390225213800625226934361060855539963312831320316504625171233312374250396272049443988726634898600531886950702269830440673159087747682330393993413577938551501752328273834101761064986856788466695895072303411730431958046899641477071519701219208948421431329751034505888683029397517182344890454579823501171669117297354965889126263420811318307605156458058476009265516513858367759895208844831116682995282843641032162094739232107604354758726431275699201637692139522444061982269103803212367685213807675394994975207274374198301830323242830967830524473814907382377818661396181088071067906614609623296384536831193316785805383041790440763498176258719728893185157619714305437946057924387451808573636735359385726060244856512538508071178252669272393104698363951706589036987885665743099780082204063014552049893624083910323260601267359157115236515102207108512817787971208364116530768164841391686821456056614619948063465222364577808198459975071548821671539087163937099778812122162997207560249378247718478486984850623714676199951184402534914545306012055615285518933995095236720263426827499367531338403360989209426831357887320184590533219133372362069629281963472419143992398944925123403157616597437075393231295737720517002157100572683810607848692316008035754772383570777013454307201195048769849832827393679718537521693518830066686583184540455647168699911736740418694481363760578371555095952669399817476330920485223135491377477117005574552022297014583896435190713936109763306728551785583651642666005848479249117735600705513734364493529117903754266799524410417742857104007879874279034528515230890705382971241881148446692952670200250295699308805659196663580305674354591486216638469440451992638265750397776165978312916344333524772752419239738558350462172412458098150319053110914451603392611355270009408927684214170797550869096239431611897142945393187654200749224579721572994873477977621420918844214864391332567210987432181003267323202662189062599509312461823060796253807103378077457168016224558403833293086238411434752923280299026126180694934153942568061438460486217329143428349086604835411550807453156644704605368729741378733574684744489430287826706549077008330966990057547558360376404718829839967363277951489778899681748710814423614487022197940593987925365176443440762153683351536524017441575115133078083957320743429962675071501337840266499149644481709599144668468017285400350498451477302533704182027454118689944498865502518162884168022503902978148243007643673771477307303744703728631672751692489844878570408134953362327828899192095288619517919318099499254653006346034721941071676523748774648842742314934339347247195358953148403160272459297797820041460406332195813007078482934409537382650694991704839381173068752449045995592642864354251819222390115988587771396137950391954112152150368870611745667079483879003885290206109351980439820845964510386370911781074042055761627611247316100454861697349464341646034926447929172537024303215201693607300273553365266156260075569316193084249484418529279468226592818510846452155219597286446137729730655763195494856557574729241520200594428632686283574848999863140246380669490041162126766770558733352998724560330429660312415666840521714610779865973647315535019778593524363650075253114870713732558771000752987478691283982886143277262048142685441832957500846462054819968883880686338369642968737506309418626299946461546483709348438051580845466781392740022716477944239484196898354971605038783895015051068983533659006937649305129325275818626880071072542950788566764617427428283184632013402690122754885202140599390458189565988569461392008577207177131158042171804471355636469173066035533204661477038560974445239877858990981366325580736794862689888336491300036804856452252850046103718261621241981768871031632591713527833538842961094747818351154593155205680757595417869643305271331829326268437650506915726239485643277068497533462132368126877400500764616657555856062185841492299875861598703475448907149641763110951338984088831612717816576127998620366733555101322302304747054700466795884739512647800163405281294091839911912456740052573713773553727380951762555474635851289452052477798459503698658657252452738780895171273347796855394954701580394001771042185513162606859520400589954019068707420924229189687660241996106651196014275672668612661952796801133257753002765788731533905066542000116385701181592918724982157509341385382004907334852414406971508098554551388888738257351743449662406982306837862261541692244583527159728008400920772436653096412927571518845308093659619941778274598867099786260997195227687753008025252709378165039851361705830997805283449160180343021491590936962993820824482208650058274424874450453849452774818941377420579534962935965620610086296734104076433801008667611408847937164051641559214019140833271797800513974073238872820082131677420962109465267778601234341973975422153030808228449252452184745820741572351667789782818803396003250183592147617581548046993801558965422136391077854711699977288359552304173828478488238504134103989303840777046689539058930768697935729277713332694848282995978539861052437486408477480173306055744457136808536986697386954848969034469728410132096505714499887434599139542471998508508374674543611173289873425776805681997532480624067154243954499663453728095931638871870051595333228661532858769086154944421332224585267553906312696900450002340008884352817230917851790317350255190220472282563946276942820743781335060062676681763133195928269421125569130313109341932943906425062615877536900547103747049522273093183845447418509268469325973376226445300381717504388934252531115375430593445304452014565687144485210383447438493148597929090707761908532214749904489379570632720990972236933300655978904347444240577968816866827639367891499855369595620635072514981052930968397716094063750182715739580970138561357424634326798552863062217733710236011820131332650920112634702565314591633903685069613295471637812039492688201710236021814755821902648119631511205223471531293540565501301381942616114918108008379162993835507130921326145288020336356880185696276311868179304711777113338460718916472261974029141215415285095638569905417636173074615119891973914895019769101239355227802349598362323056161080376374021269149995079695638882673217179854489230724209096775123801798206794872645040861613802710379363537376326341718320407479303864674842956846685522994438635232164384139865679339384781198440470815894133500707688009456790406723218723086528352080634778331704376998336778713904968640455224010694738840009043525512307800217985693733282023639943331844471391856531081638230207280793807106702799597743636799669423459118169167462671995167982012820975304399607264697011721419567231865991158739307005866328427144432257957205670871338022283404300738716134793861160073171638355967248212325249487399073711308151837025609373076068814426106193250550254552639253821325256492614482504914799247282559846109514923676830617469079213187594582208112736366613833159664900839072890546440599150090975929284525662044103708411085353572989888791082490707851770223485465721099941269285074613526352589385840230061605274323424736784239213431334822571918904951460244493474803014027115173710896433552205993026207788703526155127093751131986041371978558051442788109137312274651095059677765131684245789052543961398550472456100476758739909793664133616651275729148419599819690951741260948367924898469747024696748324535667105362657967068335648394350297451257481430886708946541586239465441131857471883675641863122224829899324932857597670877816697210608403376257358427883540618091065760608416905282392869331915148396159026833487799443942931392034704045362471869119962741111972085778539629184480234797124794041480088659725743739929091465477133951241717348767297202135195560327197382563270386337323476153275909317619293166532706093834359491712749324640566241539012415368160194266694548274665706508187003614849930777549464988493079269289539806555251093095377303794517482933207403426959348324013113052867609162577838946509984107151159529077805377531841901887074650216631140637341461891037901959198275560145281048963746338471293883392687722112882860583351007432461187820047822347827411258370427649589545104313291429752108722792275295265618176083902479873781301299245006109103086130751460849322645322824426653129753770841113321909546353913563130813941656136262687357737406242585032683478280475092428206111951770392026503209098463381855481969786614878791422755507312771567043199160966314044315330072583666533443777340245033229237967087134627644066808835978339905054726264285627389885941643687716480575356403222240155101643384789570073304948245376487367916854745261468557019105911394785703621805330493979747494242321112218834232925372217389285827341839121506647644913087615992739476573872132445713813855402900732400431868146645093504736264986125182779607988415141328194231118310405530567745192120630884998333795449196519985431657184659942846145404146005126217828571920364255135423630930579956827058319943208674732859560258698124897174504193044280239102551603530493026723138904487868928613298933005771513691799770108599868783286964114891495629166219337761489098110044456213973712970460474253569482547753374496951616870342367027389975892013568212283467249025030441360676014978200784055185486627853315578502551045969555844469888113088975678903711059759251750486108904077876917060570406784963116274710737695379844409978566790370083429598679178021000555012247445536270110173338889798976836957494999295423784533900028617114851224429149726349437291877347637339887189217060511825939631765799442897290711592936120760521474412083008229379948632879043185448034970465111794197992981341978526845394442297901807929113390214293393509153897782804714813179380252760976462946341486844447272288480083390655247719239371680890043335331247599304520178041240736423575847734808552830873842206869512135104734898543392523754183351209529953878140611784382289643254215004665336757338708964061368690461533899788220412227095683188792063839801508379004387269891952366766470189696804793885376075807953031639140130782347592340407204036541201896217894609563400775863953468265079145402721345577830086006687090962954775215214897626755967297246863522035282393805273599502261276432064969818088615358090582746246056764637040212270293472089438790047001145642683620361243023274938727363401425870909577394950786834379956297973310721589874379330638462261182296925299164052639785554279694847890730360909548397801768962190088034422324516910396418470389677928547172537703612866532747158547618748409351624040069026538823821704453927161617438882167234929429929831941693431696151985837628406707871831193636259303677908876577063665625918576851538933132967817540508996945704332312204446658967505706747845629460264092311683567116824833842117363208515762938188168497142646202380693935878278332958770926407784526265607079552786641374183651182167533074705980147581137184840441386434572540708235365328765258379894981578337852847655777813321222883965026208165448183997218329030175046610222851584881572559042706411209208503375526323044672456530420163550798003443381143435807840502623266292027254551393184005008991405399234606055209859528206350296550865105991071548173385901448817019549347344074273498380629655081456043900221299744968682796335183732646367663701703707104751817519389913938904422241036547379878017630854004237242286119752926721472629684108458367935845515440867387796045465258053694069486487296279513023832573856156035341982106106703543789021878058414370271557203367329095013010974323190414378183317213902058720413954410382714128159919248706207216683228597553565571475911845128507551470354689004613533558419407628516094121517519381912146068120098060389029822199150964025396421614652208964526823558670978383786337516402762019165541816285120922727143511084405550911246758675437198115929916605298625348251405490639008395723635446667049489009208506337271665831343154130764475961377398599500363377786312991158998524665705968892688416285396767573515970287659203176932235632882480981161438836189387664112353982965167528680090057472538209334197024936030778454080806959471854300034127694340982477110091652396275222118811071909861552834323271347415073316849462301025710708883863367991683881598915961969555606263727366011844622695517178393879225519432480838156487411904398481083365081770406980702865953266196751627555843826541019740401470223199352636584892432291677022453504242759699797665710689544466673630051669653298923229203843845689461209833745135786969735147171967336854163955122448320462614955579641811348050910398427346370545275333973931022233775308097090389430873757579371038812362874471207622576609012169333590854928281088393121595617125626212128299502603550170929878421766693527583788750467574346887914072526579820418166551193672049528165559801442590385251037380737766972990128915768838344164685672928494574826846587968222480528905925257219822839522313768587539807996805487328959896621295859318363957976286892046104803193446705167582141040348018986571767251571052921006685796953034996211735323105518676682757886231243250780771894458703162758171690016778525702320703755248702359797421968518405238323793271530106633300008122471988224171305934556245846637502957272701846089517449289749756443451957605558361628785957411826754886694166976592568959558241867237799583026900354522183513398578306121073924224148262673807069203901823021480146510281085682639940256918182670158445204222890022447208730074746790172306817789489337941702147778082406078577162484449882734634761250343287300747247793912119413975216320770483952883311907596141420241417808981673987852431277120916494674020577031384803616545068991947676725969814074061178476539097692926790439839610266520747826760128685726312274586435791367960257557904761921912616158873586239720779232918691411130664004138305331881405846580986007353838434373833981649334872745459185682265545604508745219507443953760096248085925205370682879224968115010466938274539025725223151401937026528026801430656687418705811103628066983322374150021513753208210814442554567725874696555339396945410130326523513062585583538484179579122089650674805778130051691411175041248973498778835143882465851271483085960616587219472485514420690650015783242312894616487201121476847906039536065833249397149636506547396526824855482098904928453442509040270578626200396113197914117622814224332377461711038898703461778954240008637932485353704036658851550039739502256473469159833196619763596141393165767457548982942462475054899453882031346693120509282848543684501860460031402297502254574362916824829642652541781583201323571402424863865244376597137116766381815223271656347600862153685493063540301954230175994027759481496827592816189493955622399413339870837777581775441383969191958784542014274618257228235021070775759923596725501771258402744737524264589796337680005045507474813316789533641998018456341910273614483448251686112100238600787875641818276229411364350698487288717311120228507979460822357306422488590849957716346988719269335421020780724713289345233260636119040078539190166422169832230047034126510960173655227269151074889956261754923207352143758052379706897113778273177620629552825183814983850093231061941069059605414574532496683004994308372562311831253358424053902686292483153107788055161926561573906722865681797571707346832490989203124262094616748119361932829962269084894064892701370738022621958768623395649619725604564471392033708156489440997856107019199993052156977154126201911215077364122182286534583992033859984177575333966354090198651573117935408852596152329841921573063294923320204558494097132703666693461185265844605362275793505261789188227507114074572722217943667608680003943550755008765946104750519338380810188811464659607520088103866856373954810786449841262137541980237471204737702151620492570028111312986243260639169996163795288428460072056403281801734451542396488520007126404687317848976956452218044652296736547018520876536116572089435347362605146507633067995869533797730824800987053344953682670631676747943064997302943896302338918034787937425402437530119629800790224402380491262777246036176983545451747137342638121836659390208578930179596749458694903160548174082764739449820453232929377066982698623017688763904107985375468302925642878144714742274734843861638535130961152928900964917324894281979132922500956828381740704253539312325039508075384834024324833543732784525727368296141356781615237485514580007746615171928342109448613118158927264250600070357401422026317445026280906412992298735463861320431231302363672478753361568329294754395500209559665201824452679756479755806810607371955374482072537738134505857379191320792264047115070372261670783235573806630877225748905796486868111254953144966539644446228998600997829808774157054331599574847464806263664153354345236284908798764030859460355822693791982928414539787879741431198431855847335728719971953230399665348441929220745356957878233330035375623195028655994743577557291381618287061373586194489044550784365120875204750383157134355498745232163686474831974790883368925111160062363566665354162234493310909361972263587825529550233090004953791519559260349403460307724041462701234111983119093158029974906104727598212668103985312184517840466599091234497213797724219882900521927865713671924098057284151032790609448184237443414015037724598587530321614141800844318848161388746489443241614410137218134954670720005325638867890726708778510740594736953497784617566555245950616191203242814925089627937287491352859059175533794952715777974298107681498548552724643574950605089947447108357742011153661230348590566136818717490372799682603237253819544347629268161499054988984741905397074481056836458130651463617536272086967423076207462719608001964912457204004356270461300617180832845091352264563343082707286341215905197606842466702250080940962729052639993507736667588994328822773701669418760355631988830579032963540681347530907346116989670664517157318306072501600918413153397297564841291049576947153577417483291904886694539175976192891383214884017325069225351261515882224358458290671074246470099211774910780924937022965357722676015646849223428241300174745636689352205015878299976639390138947994815218021283598674866316192269934625182398494810572887244917889784135638558228452701294815050276692766292725239211214540863928461346291665538292352724739062627864774837144668522348892373702881376379278198149937533884315504017733513702067237160726361382078319856504446499571682936181394674468296479836325900773120250931374064174428778751087605936812376748505388238941728739686549295149394035998185014518680435619774025568012603712473305360648636791792530762394727034342463243554943222998523654468756737733326657283701655898574211711712218151403775138652595987780558300762002475081080295127836877982642113457224076154078488651520367491788280249734553309974031130194779603576610088174591404456770608685091163213013468201937529636069763263534435350472977242933855892330196362164132315442087349942886361669671139264285869258610544745732347002757795989901760361080430808727861665337421408216333910822885778396136774893831700993275173036573977757797067196783120923742678013050288512592330209529374142066649895383893471402282827275675295425136656381948929351358634894943682055489426106602447932301677221510150593067805301016251003514547089963400890379846190162345882618791409654667555488789440695667280737781746372292374160347756825071136836926874885512534672975863397514496858871028266256508082092278268068218451422658970128332921149659124323307201856935085186426652386746390114652600057074653881878347885876500798487837376580838849920278037716934624789105467714823261090477042785983413378682732567174075604826227731875554318043222416772102068559607725371961388178814907702705082111074855303316408545373453957747589120237976302505928560612091497908684975050236825376562065079230801280633010848094544625169997421518042662616351716668538874265886268348417342482357899568358179326515945109508234776793740067923037226534882706602751538635731335792007379328121630804206593953384543437690628510803063696839252749615972930206728103159155671235882016622458107614744752049402739599112414407495757443793954367893746591195432076474602227346028013130392332030289244309098691248355112673128684583759147801508962751172737975148385370390349519718855594228838099800252395033558093912467849109921335432673976939793618006985820089114731596348074660270225491562051587814688399520043012331488078668159679106781258464886722089902203277239878483895295620377271127016237125602966079233377567151225395566350968887860616091509299150709851253148614657640921865635727415302863883446203365415121653112272457544707692764712698438762245001358860104151202755589548316288594990731803974295220730276078491498383857701645280138185918988394651329188894755407546903932565662789529564453446709133857374490907451945226467095099491672156639736167626778826588246992102524557160809767920729227636082893661794252544520360513871830251335472454253549157530835277669811765147284878181813105617000504823933142192071119903684514074151378292988458876375943442216624657035654997666016295553139371122962817864731034446205771970101012621608522747513819321430384296882632691265714134504601701492790482563233409226777196384539906522171872567711048134090901932199359413972984695079278973667931912734429436657696824896468866715156705726566985946197790829051328962703591162817599020976241783376746553403266191116450570451787350753478096580462406580311887651032934732243524292367826624712622320174590377639597338774467676630431405751831263695758791579055830189169140947742393129747764877149185087459296593053063610320805686529348325357858245021597784834728835874890671136069132690100081986072214563721656726576296534878969314489919940024221234536120352386114462745591662979761165514781040702192108614909027359488620902090103685619342316384018610940510041558206436448848343751123803108725011814759296334569946308883247015798699019298151863557398772112239136424834146367086516394199907640034193175772024684362838593737737067856261074678658628307586761988272837456402280481182516831261048789858687902068950354830592885082544241157023239291798233746007804387780340212779266099078715894355240542905435761476418236925559264165584031517038036319420284576736515868287170672927355597967828586126823987787505829887275433454430442385961413952344340928440411936126575966951108162906577568854552920641445014523307523739007762398488631236780373998806403082950933131414608115415634341199297107178346064394518379991731334545337164336120708596159950429125973882995554534763850362637607425511000008680121922079850678411465879969879624571388042723690608134157546776953912385352169196839818703668323786917122079205486697993070978521194143953224067486443865939731283268271895933717678356059069888684144720105883736210065160203510302412193360770978807867707527021606225767036297116944998888873757492527444686607462145572174381377455321058412488435026648235734856884376672024569381950941809759595218004377322295053245726818629827720762367169462536762306330284570401556858990236452586291242466851529981174754245489894941905967379358911523851202162055015532889226991797487942947973035061145640287382864344713206454082973074399470449153627492357641187472230976128876276714834441452992506504823400130766470210036752122186566213347543219969435674030444584280420267866342656797884139877417809141845091697973100507479427386049863922254026811958468439818262974236991932715209827664984794814071380223228149278109201326362169685777031346456671962022788503179264174113553722038707969219475311103116856429853418317117521342960249563089138748057625005834964409834960688035758373550996393335912568652564937228674760812589869902763696919617738975794584676513345069260352038416604788503115297338624223440932202441088736057906494765028690306293708677304213734968674689866459955257419269505358102379488618208977907488288725575541914398191870185036655792686404757814399381073765933390137777057630362253965245425013860345304640688828492612943085297862488379917315298092902088204610335974203386559686486768004288005307212749210969827396608953305134572824853080475635361407587799754657680845578850398731383000851958034168779089481203573763456730392831964272943432223268957404031943700244443702439731721814189750361474564641835143017759420640833506562886609456395865705598700389435511744173093285919534036436186102997245804173507520700683164418495863939870118767872331032097778778429982214888830030484539433231018242339191287065524640192774924296003412373220861913216051479777656840069015367790103944897971104514399564872055052867401717922893026230665284314847479682913315334103211063300193380796031207375301842814418006219682712203196883354947308619777378622677721499179246327063010237778091521561569297912766469831792925450320934986945488400695351970452870834033962602285116491876802802717252226090464783551302067807304917953647623759664571979334688662436762540466906914752796783527712719459650623035642065539867957578656781346309994420523456176944289779908072933628839732103378605876895365185799459258506264196089149394156429951063878818267964285313930671855780184467864175788831187180633843073990430814382154902443339579510897009272463580441554602225644265498305994293750828152462370888856251462368993509822760241609310420620459033842967880923193728680796596983298107785344889364734810189891250291646346195695769692531753112758361992212610664920304373183589661286762288432256451500349243569729993127912841256588866793146729824172250913715474079128504069442299798518067391710524539807808322830929940722244797162270768771238825184592100383028439946025742589139548138064442003573992114371916652627460418807851379219634438083044342188078462436117813724548785726100153049137115419975602204373985311346302619523112778850591637498657812825617701322006323900990359780615137172576377695446262186344309117283039351660050536255865715237379838938061795272883761903953057504222084297629319111483697785694960392467402056563659771633569822217467700840554234114094380898513294235834108874835767804178211301399857078817519601054231355673685855207179037572140068933415427120532823654094364331396751865106665580102762824617211703045225698943241453336438696486636213449345838269435432204951089645850328979632050295656477627872991028163333437631767406301287163235656170281710832906805148458826404951962626584601534509740237134862527262696204339967023748667359125295663714554749905072822074472786486228520895729423615195629426357002687464223650946098255132692794453217368569541979185429840138465241031465390385251961046211739439989045216955179304786303759307518819105195177148161851494879110190594019832176694226391752104432078980326882362773218046392418915280553952716052526246661068359197247444790820742668437587078858648449347441708869642316282128880465152236111667237667464608369487578542541470969407634216171759086838711837821811315386892826833780594488259261495058914850918190495091196886717857456518451640749760544961492905311537793431437629344341524715639066287758157232262526956668507822509739103021213214750601472893099237856105752373573340937627814178837679510954870298350354353139973046100624712640103640730427725554740817330258514070791964644378656839183329414314758008900605841144202187403345919462137943900026063988640568333702951698394910602322806526675320912589320676634475748101280025424234779184548643072825413003474933754947906441779295438647416877915834256197905982066850876814569879059340811367439073198456431335955739391602620517760700183751248575947964957010401932379991021512045445346709288566671089436545460735449833031505367579115842409688074840224450895253234954019491884717365801596288692393692553277673840743068205639300181702298521899692528057100805138652148570714635193262708176881451057582462783784979752660552130207330477160458577595841847599016492193149505615068005643611148823990138707987538432734623984835933971517254636989504640946739098510414075519907091878078667832930727919167337982645733558553534620519809730832284026868248765824953444932666486279281706559196182990033192104487071866551064362824379472529124517238250841565338449395685601586706926311957231405242146134472541230092487783757391646840554871166012225093324388332297270928279572934022410982190882580421185630771821161972419809488785740242557402655623601746841169723947844416099291296988726291859148564762855801362057015137316390139372829502962769267035059277616253560942552518222511851532449508269848069546350132596754320676953580673951883197669275353106756397959827465384926200433355177020973479703547589897649718595796272659003242050202475926236481888310246019367069844595916271143756256773115810828591952411602088952191037100687767829399115058508165304753493137224972589236171356268046631705138097309759562458657119099194467771126802453802514440760321095770949604946559597076627893777639917925605267391411803115711121696418209035582630272299704660984353727990902044205136820737642892798584054091565585864140354076240683209550301860429837429074944894398846609973505265350164708620156503827232382131549195502338626574341762554497514690947108770270529026131266153103109241329959898235451528651560244934528284852068898039492680950761921287957984916663358551159731525610757814815901268983461873680567466753305906109955479409016775197108169438732756857124886225113725436713579601657925962135666908664459656009839304981686354476603294544157714471239200596572594488461028485885250779377709944431711396926812636478657955531623937565255715542261965287036104723694777730553011689757085359619798664055752941744736620318467938541085638733303671703825233578194633760927903950689214435739437144044569725604023076097847512628271602689383538996057549777271236234841831878263010169128671350367469533726968887339028001069918423997820365884644729449736213043137148086712352566751701569842373136058573094433292395465154450606761892031833888303288401982407090890982448211400586297197806571672635652559049160157710527300036152782679800096729444294365081319222451073367623269188131683721648875020591812427367002999354050758773281284186393572573664832635995167578702711523149560194171991104398333378997482709324984093607576798507694881151354491925795206865215305998069166294220992161447120670267598856304382720439212081967393514005439157973732453585405061871890885998996254527198912273646123798628255644663316805497664205062340636910948947030944400315706467330518143693129248827216730714515365798780411969633022947778460335740206412494799205502633839529709029832465343300708897158336452082220896931714966707322608645878083688463134735643838837467073020834367728775748560035888677706697830968785887206974602191932063749476487783444894767217187387825996859390697159881566122754746934261815046185111511889258444956081627729842698452481561881183072926876020616161361605217263286164900087282110621398703226727195060163677258864243611141056091442279584939113869905327325103735498081258365954409907547281397994472912042156068540371474768257397637223852025248725814539477686791160115858129402664843711884648011821892588209746506766085938099683755887125455959926263036351241548084000005180844390071761198712344499596134081796887126548179326067528529426939069645061461204201788822260826701830610956876953052624111132279441614884423967495747358992321538852405861794551797528421069411598647134849944956137992541800391165450395191471907334044283682853788562258727379520621342781609133326254225601821692464533857014103065302155074868776871869468509345443014774838398084378884734351748276501601793900926025468788984990929391371123299206595673772872789577908411329072529209515368671650278721429746734736216809712837935517259366035859006846581270800627409949998857447832616546860919329198781140102244776640086371444732547216544564325045433082346194066484955234854392023404243719697843669484811068099599322352036382028628489161928888180229937800759548144307508397903262075822362363077158767989483693104265900800650572945216453414699323030452703081052146592897216537822922850556968697103352698839122652693503333729186148207815079401686021679167232185768841735928083937214834980647293987598607960832700435884201132265524471927393984281530156639099477921839958563091329596066192511267627642964091528259202083482685414038381228414127024993069884874526608561774145948092362049660826045275229420222462420653381501228450717675595361242265882784234017534785759730406044299424518784942675748683063736338637536164235914704537848281695229721177969632151067956439793768068513162542771969848260618091953951816035547497413140153700841943598361745910417071777880309902043317434187304318400349355731767458908415145222416490654087088229093081005272528777085662472741305372672092163990147086249068097869494545505833648132113243790208195781979376520482083423315365963451008405924277344302870230183802696877499527394609380925807225262386725881838388252509835833270378840338269158623347857926689763904359156093495669454416896705991468041080211337148061494749785046009825077400503437154879299951889716428035941206709066641985705136968631225889719438952474063572315983596568456059036056503533949447693485087393087885036374042754802665203661792350394114441534367301238097264361913184879530192310880733125735105952877161393638982589973182428415425901853278950265569990988285848237020150023244206777923042210130098913607482326933587823005264977679442396120957109984461625575031332321891172134122333077663596402104255983595096548540145123021871979969501428779166379173400721161185643686303074103448978499752562466709056766864101194800705294846903492057496442436953963357636717684215485577370620633517671630867265616819237023028154701815803693315431981937734277628643282135575321647082700724815419644717426730628029797517396477520641529397520585100858298071206223120932094616765565947453146622744527006577416070488880072855166871494210885836387389101660496065232994752247603241483515405149339985679266861762439733278661808768217513662850471373129886601344748940900879666383994267401917519577202976434897509201701183909298191377247412023641349663091663515340718277327174362958496406001262389667574919636607235172666575369665433284223023318367973245459252089641376602145635544301854907293338532553032396338024943892904316825635242214360318881481492922647273608772854500026930276632122848414872365495848789560581227013577155585019745522658856152736240325638334176616279136715889366343005610804422157481355722362182078430078163953485540492295684542221879394833621974719204968142408464549528564827752189218978155448396207704757927991647904626433737646641186187299724908434607321281680074089990098571144619378895297575921500600804170436167042699272414876071633856009249988260856126990309977570683793430207019072487091282154101939558760244657028480345601641230324766094907950133462572671060491134209009576136669100467023933512141994012179550092451552909344328895947898562115723195902749946831664330650356494292542607621575919061758829190618394868896671277851015358830153452176498441760009948999487896698857392889490604278136816781665442411970754746571101647271815668563450220739702257556946165656043263073575321697432731136190483503388614364385922636382049062271430924829120817053745774868158162715368290044931473506824151132142049537974290483948391447553976211727952348300328988495699322341053205252436030724452857851152514008391441290251426194417361490058854807339610762203254167601551410032658653598019242344516268110838022211816350024076313103297551282001520930930595039543862622430846966132263770993504189039388404676966769334272107193751303005349708574048091324356465374433199004789764296278989758726346316560506679562009944917375751522778030943221407841028034120047998403428721267525566847445945605588173519214655214142613810739607252844301291379855785651921979891648092916021228086052906044450989732578988147269848310168985197075008829965792622456193851488230999810034393301335234716744373304048025618648506452776489152339030179951399129096276858850926839942599201800164913309277298397865177453158174566318030241788252613858127346302944628641160850563824487350045783833013306792053921894987757178973031970094715864683106005751835258512777113452348032734934027185011045663974065558424206377999240106942099658729670227538977529839643102341870622235110766220904613743646024061109934961327824712878311603834318134623427706109711999075538602912821628539537987312877114677434384875413992561853448176217563266894829325854948567628959202700909774059201437555703171160966850223389973674870994308828661312024000872961081111208778941329184601735286931503343886638509918380488328207377196751356475898497579469984234137634082383731979868453187899388082561271684032900585811313829727626879964132327643442279912526736539669288807032226133647493063770562488826367261521073234040419991668540955292797784848288175448646403153045599411359973528436165777300682922252564097174509164023953309838065095020010280651424986924967201888359614070015987761366172147448293765469171797454184618574927671620869369970607517391302906698082913132664404642900697921593727635046985432327854424968001999667107263286167128714070221117415637578585110988291532906099763336456766369082852914514842313188904591134168774181017081804806671252885731285699443963672300920341751676944539793176019203655649646010372625125897625331479229827256469659042590825791466653142009770146460487826384446367856377085833897451766456897515506101056760781386501444764418630194281659971871732893088036445962718610870751937497819804632822711724936121734586751562060252112749046156263053000139158537059620139275545535646289751921394962010212738756016174522618114167917125571135909998610919085815049364875899411420312719887716517203896780706278226987331975421210716355323221562252551918343757848802393986822506526617399871312758627433614462655199555512958305401725923016313877343817942644144277505525011969323155588682851817033208673864697137673178753876540482469305625796860497115065450925093926601924023277917168673182029474000713562713510609362082535927292791659073355602051561358435017743008014865896841973154030521132728262209013731632017580625619677890830988182242504049578182514829380606320078310751666052134473350526607087246360566808006726484300664259485638400929893384062606296735154655921679577338211319126094188422870020888616474920739285073914317111086860641645533000371614726312698887392921353304621219925712686376417894121857516981177238970555992085903559177732898235708429072418746064596370265770021598297321479727368415259047250732972812540791093859837013399713139925922421347168448863160581543049459965438998159055777904316687045771102189185866413907353802663079775747024262281512746324778784736569811596825057744475591227816681376999896710690162997003438023619869179855059190218626737896376808444096038441595136751759760775778566856565185756601085109563831928201317794757952332625445817788680159855360712323408972287206849673505120196664983463185811434372452491674749634007385841056544615708160839067822800825009784689537685895274740305596382519846369421179825947210664168968806000846948041974380938378480983415735251419375833053478884731760304295347177004593273685306753736801180525155779667135098620403828779828315784876533324433372205821053671051862934810347410083343655080321399482037450600049797208153315045035906853323362080575313091196894270558075329785894826608175045416017447076733126218797822660785705316452233174020313346513971968806350330633624735971858827432157191892225291927154357512791137957782976684451856985569699479128798166294983775200998869975205918276985517936162831354315535679230860606615258982572092666541749278213533627770149429151991159848204817383451536394258580935414439268156871088877118254167054735338275445602373404293917948309569313242701673765615805319588980268771244247008807240220702122281206727137244949478775544285247206938760561745554573671825602790853439246480019452052317237758482582407664165176531413982399552934735214116469804945028539505494215666577136177626219929577705750280396911602768072499998014623094600773678846862974533593607295403296090549351924529981313009971203265908030875415514433911078850475589942020103383220284188138370553968131415932104664802129015688757440259732580304374339379712394524667273710489042812883473337842880213812702318029091794516700287130460230052493429888562344178544962655361527723748660055300943008173978382571043145642686812260907489329027163717233879671096582004099727202969417609161264124147811366618702764888331327744558079251627123310376291981720230556864537920946896769364745952883841107276290895371486028391284891652094088320474606898734675650236249328216070328269085224928608324198316939997598334623446246072416962295857886522891932539149228963622839862823369411530382297766860902957228031192493350684792027514254266445544517745687066469808257705789303382070264781993838133912214416636314338094008032744600068536299828164958228145582781653989005447819812628235247188652405406281862060295235555344986394598366052051342014759667784821489785383408635497008921494109342776429221781043350741623122309141904008857469418727315725246948321536151687270959853347510020636800750769887065898935296963300826591449423222645761671814358406477530379656767191713682627894850027676070437672544648516965184630316731813684231816157374666334067796955589317116302073049822883557872549108681546593900893026425888163919502140244311778272556918238369604907239651926112455121438542192196359782372293820453802516010302948174799030630078319887923947166322361337659806404188080312271902786524305705663194654428232766361825725574186307050271690595300145697944734439745080665050934207848000196513438395101266421343977524464506202240524427526577694733714729912349025244916346744966920445652273857517427218691825063290699654229905803612384129497762855636659073348217559606542501830642458740018464421763097372419093660461455276789613877922055339568195832651277375965284175773151910675808390441122293525489394636067254979714485167957725496702316182070689320514735857643510736705240641068262429603225338460311857119296305881619042737138355077547672220099550400352127750802707328820964839902803854531704568608091417191418177015596521852415071368888507605132615822375941469881901545612517032015142841513265888837703493079040048068860393336511250504691994619898832899672188672462730524093990294998916796561136511583940760560282837544907278974963769059758016779671451991762222473175253321734784835574349478413729758045793208781086253561489896064411519891209523450103970990685607255675908852209210236605807085686817900546359551273162347036845570844234987551628597926473952844146953765634944916081785762685031290429480858531151542622287911205037599237484511397376297526189942975855205086629094014243910963525735276201559226104861245347458768250561404831926334559405317678949210938449027665393435639612909997453074814445610668437555207725153950803979364082822294993635276116540878376332110521833454984610992602453042098027443743232849978543914735982340479934487668693266628444074209875754162727853310260665193677395910108278086227215132221661821375229987420675848031413971213728352618330747126316635287021384028216015823050527625665593884203857615744795454796287149601836965351398715612529232625776585134999559916542373039850269744163472091072240211854741576299305335375461592534408059064817182842101067589470889933172133663741409195804559920225339704562286214210050443767765295207850242041278715654332428857038185321833569382976573654986049055887092831778781200632011212217763544314914894470636456025928768032053784330263069967837259723132062802524751685091386631167139423044976397393413436523486996668363816991899585050834272545458760553373851221376121270504457604802385631336897152618742656799390434749957969435203086055199768420788681758023866310143731153661598179873580814472319576173900042827693113831927962390482576466358033415741081157232471770484637056407906065904694623576814939485763826245338789333095810126847715669807079811454282600903003573238715008720099915668360649140466550046388288116620610355496405339702117481752484526528201091524320475563058510114001324740460172939301664090500427305205955048749709957496371469359228053257101480822258930599705590203996253795878208377264482185234307822611585426586978522760500693164792404989554062997040521738754507958097295673841208918857748482359738831543979572693811081244835839563311336007532679284248146799141439886233202685006584627978575463485273754204748570313917700163860378214342063478662662840871432447680976506818800005444191887895560922743160550244788103102702468090296907944451979763273830915346701855019852408833760286278337952247084808112767765214773242203576291461823732038980652048730065306089836888994180109491614949555553839697057797459552195522734922866838557246576457943216150666675401462342700864616155959695559985172630682687711341124254549014402660848193792391259847192504663033803856776222996263062706668631293931124725287550922280742055434780497111704478593460795116698266687875062648795388837844600108572819851470947693948794969690877090380767400625243262041085890527985362571026217309065952913755963069000768704110402791243720939275416848523890884901001930774993834687553657276016727763922418904377063052237196491347788445106761908811881867581686278486126165619502573204544303615338240215233049136101796720823421974877950736239897800081782425743675497558782147736119303004304418818160883690680219114192152924185900082316799148006087503923290823679841979548231679497916845749756743232830807745018543744094886322179407434715747137849977710434261786946648616919337067548713944949410477429122545321986733863580141493614749593157805156628255219311266217366964452009903800083684131215889386956298933217480650070233477758348516899245732456345947160096728473924032304018323278885426358568592847318817227949252685329579469996891495850604477891713683890133747822801069491351609994836121283775777463149383888032468029435610419090512442571972314266765477588906137081029720733582876516808155900393533210262596703671404893097666798880267159450473312049790829638201577575404829137978459901549334594250862546613641049018122230701460508598889888114983136643798829004273459265373729013135837107075519384395837076914767182948622662077640209216854111855494644544765647762656601019041615612688649757555610429857983665710523684834176105439023269524835880038046723007533361607625991930724571303712309832116646273410722421572350643010973563491427249971102096320755275917019985894876325947602059018637442739737810808680148250029177385200077835212217965021617410340006059739655842628796805985986280815361040050697714338237571999988688171467755612271634270642496064032464807969138721782156119355130938394791795824741783621844512708139169727437058900605928581752627373648631196901043672891684872243741813419139687400157369545551332280184219233658333187670177287961308044810039484960031505573760180870582347980942599921256102436331286292577734984385154703830830233849636728958429536151810733182597217736943246338140044860185440948378855100268519612675077421092881336413453869682743635590855516124212788157284742949989973776767156761310994685901297113676420487814882240201996206758714315602373203742964535780735701269901901087668728400327618438575913555496821364702479151884628353931198352072494976396612141490189122825761770184568291598103246952393921861467146633547840877793655495943396961275412406671261683664887619250167803072887414527119180492977938699957379722413075028859376973058351870977971203428825210572691205772090063222366759327361548861486351367045549024131578070323218234540649553656041454725693508799003489547149884715698039123876111835881261785689747390851478896745438383901677699076800129426215196049302705083813200575755716080931669902313827282360359633847394059285674234562610265217577917454282456660668302018755225637902394377703225529843612462334859725626592131980203895423238552411537350561578457792871196516874869074138101209312464711576441046977155688235450599345194770486247731965906559979948245267118539375649310250997675971179947774042603545057576051025421123644783932175658146624125158632120360130847233602500592756673445960745566484044483523582627873507094496508488209311560551526687027600275128280078265605051629274107148179365316926370559524313578070875551459449322953650134040223700320670841710439263123918868146535355745368697660017191696341413459361835981365732404805546204420944511221593991735570757050331508526635511307889695825369592449668887478546946763785093734009317157034317488243282407847612726652036492945617733563507067425895986089101274345401972914378635539213464876504897831157966021535687066924537395333759951830286999880273269903085010017618431622404411853876102827678861055052799878527015856443724789534071272673999506740746372717593648878455572704453112217650742607626238193077037225231770015338966689825871169101997440030995766731223575229762505183051794917819625154967193381442679803171342479713825100676085327441791744446200035520079399696063051985635015636106100854407789953634509317961190173145139102461457008740040922533030742712269378949366932276156128802745014228140690298378016417513680641996548348147986112991978456724938399081683914430202339297049732954702742105108666140052439769943668214786640638813203160307195829272073487735497384644325558659129250242959706914225772511033207654132378688923326755245657205606781735404201896311029089739514105111991762308356525777997254350035721350156126985546815788317511045900626133509885555907566668198089617766964769293858137875993678766883840025143039968182834326226782527188102406940339280115102532930705164053456039582742823002004442673935752069243387310500332357903526088540257590815248333955417610996797403235447441224673205705775748218625942727379574830600433638606284800127890396342272520772743013982016725879646074439059909156709801550094600410978070412925437002172762286233115734995276137759589709228461509700376290395752271735778157022744302919326581369086937431841648792717270399059262205966751617452305337244695297040686856011879533848598247808948761244595995330617802111365000615864797855046929719367718969108455608070588475572382764624848781951917690005462188718461113004030992013780698863887731009548879857323487289589219699640072387016381562686754868935191961061281309603655629570077428972549103947665365055324609511687812084090456634365829040417246904584614486586308022547807896378524510422289072276042560481839561260641860898294791091026478474739181428486155884102720264120603025093283711727606431007002504998850915744721565522309309361768756406226791523816624997294795240416150730772338704540198490860163986735176968527210764972348185755878688553631173498020621976394976806645199789010025138078175106177827164619077179108028168340764046925469081047328651298260812149382943626061499056521368633515951283646869465552471419269066108755428005577013539403742215725763981315344863621336482192584939711264393044077636554083003076182023507918715260315208280071908965350890495360094653778305483926743630156119720670787790378207634248571904072795447690460611216960311881099201135555027417823822311936908722770084156180062776133169182718695387239969379043140485518795813977482162863640126838279053256466915154617646676924080924100212460734901024329821379996641244414476705614407003475512662848055717644041630835448990004958078607469128069834576262550433204702280828907655458038105306372072821519936660676506091577583021331349462313705209962809319840958078114908919119550894887847036886657293408166005758563802725760960600209985693724189059938556112312913148613114409427062746221188735450340383635304707612786173055708971701845116830311016054296276787188336804650450089197637396064802545811136302242927650128425623456863925939419443145470239129730702759192061861790107057817899842444255693963713375348642358011273826958016721769788600557050641056965957305678072352317549523820767635705071534897360472192576907634379465742622924968853861439266283686231224360060080017728449023165468747209898048916918776405023589579948515121371670164467554951987426750889401840974653954214168170122160737871550592108222210654176115168022875912890508393450432402296498493904031512759498388004541885032014034494520457950774714216921668744815418115347300029391075799583073418103204618721487747593848037962973336931305815284829668636628967753503100441837932514261376849233172910841814166613946773614228253568904622873202500765047289283584958381435341357455184870358011460543614770989812273699431399312529760276947478861249180264008181472822821165689950376997397813315111224511948182624510061253864034640338176320896646935942010895841367221886949227777936873730350218560337943941489350508343543630966221293461872911257360722010441673618790715901841722826145419709842166100062122757976026551619630309433979019530620876003009252832514952864518844735620117497448471500862240317124564589844025454055287292876696182563154179459724090060544558107011389299562702718181367022552812456778122148030261204628291812759905061930571022716598105794026093866337720834188624448052871643836296797176152140660281748119721575435807417048257707464394140100756295217046044677221043181444864884770652066304726400201852623338366638539539505238512292530977125332192491884487876110963017189624858278139216550594687692572698010841745573761469325848196448662253823094769770938765691007260062859540909874349863741960055313890553397516867132096571140224051660909569164178883033381822281891337832135614678414497249666817298570584776879754251460297295950555439893770810654591700443958536536623042871584613197135376871467817903567293539390681187829114293848085179552281240814295521577845685960177997114217240842352592450989297356381662989311927305774267775562870844341669089378897775093390789375425926732008921257250317530455142833963985589850647777106532219237332604039710924815150258258178514163933722608341845354233534946608892407856272637204992685674199459942684649128047581490956796135512712003845592368856540740330837046921583959783878124696464617709856053435786716412444921854097284092412295054389867833929232003474771286206989132751675197416043915141853517352392477246573471234782404871739461155647715848913820277359033699505364114493986133615826888690919652316266034997911520836660047997794925651369264504933917698458872008763524898791814281115688590259563785915899363198788826787954458412070365757513169301635940476906193505402715247281205572652951190273931793752153632379851228610715078622547262333887291175927439715750222338501890207559198901595471080476885258872466380235799217176003102706492819624685705932580897839172206374202330399244007946438559561534744766629044366740462499020965328501027450748271570008760925228304960600861987619858327166502863386432800615449416840613891748668009988202186255925405693613759648402150099999139263642511563676288143946126115104078085771338384952789973777274096990585466924652413762734101206718642595715490274180102677815877758548014001698966645937117092272873484477978910890855713028383640596677504960346436722069555691521684013705735842292819056490517017911960230970559472475599700854935193751313289466503077794649508999427406007931864708321421237305537254937210998277619651881441772258703619828528044901820392620821055777681678743768491702682353576452026237968244679331407301203655371744707008124004375833639453654989743360039164540001649450706393165536733649364843097376455354886212200989357161819916936906854294222599294664925220183120634175925092676182212982255647454167775982040937724700453969708506740142369719809665613378330638333278797972774085072250089829628367526185915815491020046472189119471429399518651278670552306294413671465278523712316734112253666733752951555836018883170918880948710784329550755860574154396787859013487356091663302396062044177611364070330829353748536693847374554471822615105108756863776253305401097650171530127083055312426859672714952302279674543626690769938875910637560586519312450897094813146115997347610903427128557382033536562479490073896116390625423931809217707305504382291862303793595848550950651356388256740152266843785464919662742032047076981725612240421487096308706887745423245242209783813058817370548467251135784201355393345376871876796724264504527769235490687620147326926259749071731603805122145034974167497721704168796003104119391531419632433009055711310113960200638732493943839122511360275460880274528400239563137985808184046054364647400486381823358853352823586217722911690712672671439057302660750376498590268870369485561639071718293103720495401380879386281681096613436331516158582232854162767932094894147008942971105114037730980047241685858744648983265579865645318984418344472987910100036769410007283066212822486817436273910494696277432667878602472749772712528777729464165738969888062175935554159759395915237304712092343198425962648481491020714415044855736767976210952158026278352439656736631591294541809392448685388855511749305258289591924089942149864903434613166843234929675723637131520068212952196781502243228277492842266123124555815194721354569284545424880240401295981661954754895147868545534968962513556594016175511336759848965510448865063849791564903025804937609749242773221568846184205215308319580453375201334509878518206001006773028232145023015645041274780222751026602568911873327816555617240911947845908162050230852644036798427912464902314322403044800123613545409893245539298786653307193679801937561022756454277223197086719647824203580941451832394999546554734681304379029260879050039730846319679730862221303797387607335974636753385654259439410979908126454981091480122246782601716309203190500857888008210612142405595011942269888949981985968636216601776196553021694175928936270104136656725982782608420183282306791992170972521651744860658833624025878779313690593086245214143249839046505131000174798305234187228028354775745628946848395183709744122450954742928349191986501359244186835578564316409538979951943085713247366053453060312975394053631584816714711217447143054647799087432977047938650030340031141343299511093443527660236152630905658049193426987228844327171206534957599510654604614878755642668913804918697120546942989320723786699109243830149542666447498901941620404092542060484441262245262668632834396552761671790436150349140966824146651521956023182941025314131220315090328161794807416467642330717904598257363807539133530511364107463652711881241022953426742495275879062529236245334986249715041155249828574027312932606565321237229494258113160391027234368711966641649924273735874767612672194519366425800501321113380189432433578872879827973879213048944001572936800335575168198757052366854434153658574963303996250548279227453785275887484242419515812853134567340357660092091181574078672038846426626821174667827204266254674931948336141370718834730555940256695043635124120202596266691990741909123717094867202080502862826754050539370277483688592595015570656891784541393863619203435034495258776529160512174337122576269221555561200454300982944143711436846277795805118595507828964018051853695150940233669773264148813564499536242329821823822173964677559845818414212033760047152733691725872885835639290015030552176824639007912047386800475447374302495050982192810987357357295861268602727205163148521298137259548359128026105871469123818997528092882327468250436540090353318842870318093867637167373040123763097356975134937021238950386020244423324528717011992785627390066305519344095008773610397420061045068054403040507329374394220367739412782842450158737203124211598656416002942994064247120465810503631160553569856570562292649569723789491228638078045870964385421378988564650439372111757175656771377261132938943762303518077980596944203772600640787592977297269887367192328183137362392925259396911104901346630586443864044572535067654168536180213434728031401444185987351785556872405749923202202181294936815662470465391018448530007087266864599470029063253022468853334297459667954369255488721684667016682602589420025010464188544561921196407126049058166865821619141899942161559251963614023806535883619889742235088638802004237224581100602400438814257994014699962262630289625570749642099199052518918312695151076617868651410398413411002791515131536678864463447503145329893855686937149714211351688911962717923768405287178399043340837782308313948816336548985310300144224999021352843850263361908538406386156822948766435285253669701794760150121360833637174770903618931181901081844331061033466085495252035987694326919719963346440329851566989623627131734139440484562315488532591274240087448133100905016859695684991435500498368080887305295781565727730345775974613026624949339636435934681136453071085097868404781673157644032804976819313432932137806419937396558564851552306847153063322922242020462000921216216016880729385348529823151953704558811594150469591401725535641378554850566834055075319550213634596642796849090047112379324405034746165912833467740971771097559861173775952021438908760140629621857090294055807763663620103029204115729164122976299180560418014640523796436782062992223642891621461408883258575241276710125157642408175470334099780502161201009545699236132913632752233630980564303302678345230238594174553723320891576578951087622902855760949230170201801589660208281013713770501933558534811992103550044486214185064860782026812511413510007374905227284784784598420116154342768845581503556331023440130358727066800569995438184776193717930521954697147785180262708626248123090403954727521629317515069990731752372406507053894013188632482107683886072051953625825677506539851408992859550888102201040656449845393987332054394524039624418134286643715773408935970157737593195368539664561145842544082500934882962736768079154814891395916315804113723157825649994566732702108833499577141231574727440179310208206613071617491332850264847256554900053800306857499972851254922545319772419544230016558282500772785522502245226056178250977009241986712077535836472477066450735238223114537034644891286873365630431289859156388358442764204179963113623954405781473692060920430983348360892911917612269375021978438643476071336324603644958449794088789052421213080293062149331584089671349184175567118063212352286648925632485997049530033451086076795103995506347527717812312075914349134351079405885933207912482105261528746520024426311378551652921856172067837363468004979737251197086476636827616784911260949250996096211345131707021923119929213190579851268959064406077805761066929464449712954330418562696441359157538960034137284205937167127199397884577642777401499318692603031935314807271660880206660514924417351054031884467636747457860656897077860715599425363723578610471605223176445154218094884128611022720002135385158204231305403932910529384121181874492609632267351841741375446334201198669314330241371559830729377465794024777032542776476427469625467286552855639502194456956531573639384593644730752543656220206927771560493354774103536921797969561550317419451137652011526303647474862746215515829874123108754074095337450940550720472803441376166126879724384379856383666241334975091109427133712213688655942552017265064491129058020661562761163325229893812769812717702578057251809360461901808391868562041251157283239814880961372641554078240288968515802978108553146106736739656101995217426929624377245204907761647789722254129157121218490120336530153321925541255950022465170680412650339553261233332505608617064442140429104356003693744551895536873990331282931401557263641470050724672512788213792186075847633962080052939204321311581961437291185743275059046849004196291107201614158059700430214114960315611782292761013573260625634516481494159213119799091495062293376985073736248718886273215606028575108180752774414981902869380107491802426883407846676447778342936397485809888581664521811061061754575787384793987201606951464967086461778050447706424202462635163363726329472671827233136282959571624380117913259886819570895198085985550951758999863470926244075449378862116983337500212302328903942111264371416051619104721543486260259109626465634966199685780414788690971107350949022097811332962128772370104374447464248529359162147131790995329599369613088567085241525752209401455631535382589859504195446689695445809755569566451620927288567859965083401642886551165109261237667435248522064576729714590065820965275750928560394672793490431143619828841808705612877354615687665361695715930498609321832813086524845795497932382234588489538134794343599132024999107593424084894113699455170393733728062519244302315121653213861053803419732144562479613563714005131618792924948052377292669977387013690529187815111878880145899712171443558311311151426655100483483618309989447126231161874339542217480673194796307872890373410851627284047209833445138655902858140257625334873475065541845919618716893430582580295886837023948219941461335970594539324663711502674508168929834136151294424953403663818524678110689864472134108567663092617733065069351915508692123249724098629952038983107753664752621586956589004940556913267587490257118141287409748298362638210862458515863597484032175672397428344596653657785186027736701005011855256411994055190992410992518263393714984571997769751805190746706172224044396231693614616179573151676204537561806142550880802544719192579115181946840657014835384243335376462635454426142770545575518146353125736859421170283507190565538868090910463716329402922716722088678350282105452065111070688511675357879828325870753071949621632405245514672865247486425107135919361215752462599341211108101390154610255415728193084500922027417744065471543434427364886499816053485687556651842441373970131190513477195490613775742824482559247343477727741647951225651912538849661907259500817740961847040880661122068501814513354740736145308020972277836956677820761251256682883006489892424691614375094802485184330933761012712121437779586789763531151610100991975561190640933950490072178353713864537566724094624836793684762923589213776051223977127799057116070890046777159490896504326472294062689870388440445201237157196744815826224310392173236432810650586615206095959363095312124380988523632276232453918426390533515472358356230721359632354314703220413761809283233981199136259297509680867773627841076996411440952333054862290877666826992459850370451544004758211018152406531922804850555044939030551193954132284554931037662265221827688951444278469147811638657984980406348813948239195485347188873873639680606411089602642706375937421805992216469891365318692030542247644656649251504495061179729541660462198998712456250201387682718007146288606574333590395742463284647296298513055528166937741472799101449161923162573901949125905189665645830519028094500581538481290582868518233292076812043074166004371245954065387868523335596548658210604033124511763304044665048399488285357962843035792832839579686946940985511941494896298113265724767409397114954909196150569849305930932851231121595784243648268848588379979836903490888642911356881452606143176525958311415541549250081593320806812341784984009267893738307934448385678234292841276844584119884116812245486045931268448252893731789527141597322987816794469429294596196038905568272900450618083580995905313891115417884305200201374872384390502716345268262790391999406425339731755883372731297409141856848048661870651519701055076101855920350183734997592602738274473754581396179082746356054219606636670235507089234516020697915618852045114135176786094331461525206237869081282206220703849685581347932528150036090260987841583062204679423101409217749698686049531403402783297643380289503898591748194502647758444747495720704232472461504474362717230250740533087968528599965031002482122525050718830688146733190878938574163040846619591846455284923398864286992479824591832673377665256568219325200225232180934404185181152492381667777550300418867171589644571888207978497017558316580693400606939762837830154411765365986018400432206630032584012147665828608649230307133256097269602424489354167103284910854518974847830224560449876446261828315371242606104495039354346326768378837650798927403053564658416083812236351271469589957614157981712182027669381736727864990786578950263531913601114627775881285044487072094700403718004341911896032823839968050779468491700246978386588297518596518022643434253082886410733635217786637245063562993671638477410762737729590554691685108840992709910016737745407848685872460768167686560663997407680643566747012086329363079819598017369165865203956536290452131680728945872372760669854615571983535793078678796627361523330039723935059220035498206792753903903956260725039545023023909781316254852283592210460456175756469741148269629219835912571227575784326763881291420847175282512564861680192110422188205887620055317111998720919806654276819593731844059607751747002474085268093319370282645383944202109322252614612359985318001398608411142377415515505830551585699714196821525442088834680160617715067338006415583293611145175472902440447621252490230277664825980758863194606433347217935721472150545168776817985547536922128269984278947886985530842864177151687674861588928684305465891551578621245903993082395500543323407161919215637866523853255690782895337923067003665607748544097468824366796993893313980934959583407963362705583354140662570075715324391242528840480025782777780030323300528973580514337860639946685614005527993110101765895708823099734244374330794514691821958173008431824680620609248934278030442607866907021102351280855740039067519091848957530249025340388087458185990369682259023099954435406924632846802323373833008239355094450345212763346233361290515255754967961211055229953958301714659655921628638212226134895311181186272019192875628139684502228548381448581026715722698410507422228816265358086143405279877807017315919395679130558748025591225727114003216403553420223373554039004903572900887867330668220001556017581060174550162249194528533702785296740574578078128767572694167141379969382423183072721981279847460197005006630003491395047158464475648899403397578080839106379081899296769477876675329115673825927054481123544218470965519843181280281394520324542071088527797803278425559251355084488434037694057121816035093348640210762258445228251842628529916795365370436175822466455682397085696376412165429516935848838006882437972843577445239662632980670164235667876349547400728533773521108936212954144284059584356608419782124938375220284879195636232398571762225351118371034637347602928594386609374062833288898437245285917105753238890522855794259089052791615130516931463840830550493838698873673444420922957618162623937249501091624125985258887906878651228507819679518889178266937045906659059702764923286650434917531662742825041289437455967222862489076742148472903683419110227924905022558478994441531776370307123184412250654155440904313517459195747036726255092613678522143104976156432155800013123729852292067131964040899811120555823891964993716903948440300220107420822577339416478040976271295323999854763396245072945768457312535006734736368887028528139352653568507649035431129854071233767741703006304057165881096193733566655326123707463697140843021151696716998349312275315125548470247595744621821326440102894042272711880375791855755140563028176318584564233839756800763992902945955904583972455783463205202590007890594317791170742136237496103092865185082627978735466502589218613579026217558822435007812878229671746477308988064777837973139502130594230583942906252241290551963678819419357404056573082724458684486808745386571621766536039299439570443833799802354103250741564413153087326647869861136680253812181436876507832426345957031892700408417511285456181226571787919017903883550596340473652326652199734056300691218699462756841002402041021717031107297184455088761265910367713521285164090927366244058863353194087602306577380975324923426055750175184458810765514212356933143859725394498685863746014827601368712530851714553898099762790551122743560539458490145688936400214101424529585762503965215293984845764568423525844078448981324913757252457376029282144521581473384734993060995172247270030647919287877650339968801377788214745295048777730727117880737002086623460770962964522623042484284799762961562904065590397115394701701124052824061544357494923564345402896705637412262527387534813076605347064996489603962508110367928528727558768958176188661729731516277148273034395566181028612451472639769632697484283775082195558980413365901766492490162509930835030954430059468090859456042164233784230680782580592394540001909754700726410075888619042936262242972406442349817742231620400744823136188679384242060753863152434438946199051864060823027402520484336654598976048578408296572474824760522312065168141726788690638532842694374326682828538870869334583899604079247675295128969584826355842287280893683960353445268631751775619082670863605924058913532635674583830196512223808788583857486618188739005683758916617724120872366805288552732892861944285157611265918045933145515302147375767493245850848011957248246077153525679177955508213000544650844100334199908916117633421782160257187519829860504964882688898128242577043952452650221817875222253464877533631084919488039120290873677528356520756729752525864436025555933438242951316500475952386147452210365959556383896677204548155271267152029163946872515013712478513954763570580255647942480375645277316237656525269943168603703551694787007881027951986177869674873074812533087005174472655051449230270853678091795919279178042871513675545411258717035397320366830346247747135374611482241308476797783798030635763500725732859237515059495618499789113765376335689489421216823915743668961663615540938003305751765450445183475628442907554630966073349995034629558788339269315336730499526620949834792602487684380326661860114001048289071512164438556030420192157405248132812328716568210062023446919624673598909700839354414084487873235755161764669287288829498899346196491013756807374128929492069756648462318442615272616379389524180693836617761654503276157417719198106779980656948406480905174728305904539994917502628502277430014836088356263636546980416105565044594564783501327689395948073023139340969776097864759925747860432437489399441615810528145997627800763911775934903428725408097631250963144917414660440016723311956025883607170997336131384409527903971041999355787736794230057008266165084319861913186075970386735697415745270793988014661861038534678277357772124048567022660086953786371743112089136201307937854369350548748619680266718687175995057773722322832456252529647373193636327984414884471965230582065726815539351868256404582612061384959449719322965642590412798613069518687466527839871039397404993340809546780852443176948420821992615020578264206011833375266215955087385267735061161534375804906293541930939674784636644968268691494088627700605215500059616861013198302126015706091961506841655603867854526099281185879844157805156779925485062428194327812240009205427967714202918361319821315445149885313134902490856717523110822287675188140804524499512171975640835682861173353860935950430701297370005465176614240232892958105940753119074265400261194796668337372621965459693268250524651249990156155450775291449600220354187171603233245461470052705393027515094611392989254840864342249743802051612788135056374634051124323603630792470110244245778063856040102717007299914414864526453778980176164266531043344584835482521997897395838386797661585872731104271172457238989810430744103733323510891091052923520978719179602431868185629395755182286447756486940622492108580470929198181152697867153794680540991979366891684490457585026435926955874587982154882380926284513108037343285632403304996939990202560397961549348935850811472158258275393233116090053171551896905750574225225811336842813540533506991516770205195378052257799245473701061516417025404845561487928245458236315900518532995129458319559668917902188988653799771247848886621602114042541993306333443096534119663477614594042541425764607523677781958121205601624615574798419799587847250780405729032195199854802694141772497254440541726384903696075100432332171488942600941168253847822426750916092414499611256722814203343551983599031080179589329877132184440820250565359689680152249576373627100459472545022283237091855814525014920850227844886186204772294298644095009800289253593202611340774128314862382157477779135247696202210304536700873026816602703641453269376127766043978689813864837091270995697251468439715731902021727969281955727808174601545751784654696633790681814972174272234639522851141722932788441004133278231455955280261323183390737078069767692442376665745959873085624730161904840581870559594058500677852983709797901423124012019266376637679548038792176746759983568997236395555287427037699556856496127776347342922579125674459821265183093308141832662190425437874966320340940688854180499562591678857755288185181920780349597903573782121650735384541556481944892229477496995936908928288115903762766195044456505574173750127470962314833463590733918367902070976765084217317077788323179650626119266421506923455061228430419288407742438665038929407933310924372346076610873232763367494784441801550608412019742664391834469851793326069633250192524332158316478594182071779472955794294983950384539190100592615729851082666220591582739081512916758647577646389690885727591573301238245803800828775378119000641737593376195620615693774348700321335882943304371835246704636623136487100332326778556218954479521293479222193556348276883058442294489098985981045810224727959846271523286408062840552940281962780071138648091525017972216957133868289789603400118523940433929005762397164159500382045505124204807668645876988751512224834758987737086168324711161563763633099124871233003719444476469534993811334952698584033497915809994913619846830463343046962204616056983761050624957369448546102630931088836566149699705036049558303771039424001606438192687772845320760524657088792536722183393105875472679445878720985086053343611585545892069094248006001651025010151381216125919911344953182191697312458250263767580411441120186886951512572703447533326170832102949914103895535379870615562713556099883897140268636705410157236565421193919712723028736777244173639051803946854061512318698008395438592039335693311481358219269500872898991409923822399090053038950895790105695841452088350633470168844865308776276816272708139308625228295312103637081969974599734485678008499038047786415786705127509552306552568690740443922338253974459407286934454862502606206664861153084278417537001463464681712522807476013150206328792699843592705611927466018182625674805308326079565322890225419685678198619122172776293330845052491058316166940613018039155105779737372446861486970994142985022938039006092073653715403423858788948990569103009949648795932212189114436850933742208497461291173497296046804836178868097745888062256862767460338291308159105003493185372867286434611227549593767154317800134077085020689972103210751913498493960660022821439628390384068627437396365613143101905421564157699291390400182595643224536854195141241576382252834385050453719466491699909018221615174392053790634984153047154993210961453402729806317805306540085833172292174725079292794130367419618810390948404352788702634630803263612458022449077939169985374924676502377882583806252009850207887147707602009884264989084644079537954805141163073331768161233585119373175868988361064313719992127682099454856409522380553921016654276678296232028536390293798500079570477617442939034582921398482624026417427997144008429618415217235397899666207322402167466924986849057498258289029028948681677617630562704810514795524962236806574633527192765099385526969227391600851801547319643820512395472390185089842854773534267656046986151845638390957088181825152444768904385015706315712033010562497022409359612985965007416005454410333810748431201220997537125630899183127245291988034012233921497355276459802025649457186303495998372746933718595526460314284304783861758709635851346892424880118892248022649139177453495210219766045275789112997869518646945255948094172099762865492495686875673667164479443863173726214332487639942199037450777267839297682162628729132803691336672333874705142642674564352867278533567203990641170767330036967825093821653565291889939804292613580563170418088589132436514061801479668441949994949315945586623786619420468619086043944472964672849060528484465472582120175597899028836001132904057930898298681420393348434825316778244102352763362513665500104021642061484034164658045134511169274150440500959814741015835867650746726010662954587760166051311276177582095183662854734935970707560475484644529203843344798461782197845252445141518670399433194289299707435860438533690553252175046795825693710476833401563587663361279889282182239502718017523113760003593005013607151705200087041376426034150379269786672874055134751463086457154028436209174287049032681952388826393252780067147479985538208519316535187041779794246521863863739603470589946417463000613405322462931015234430548517606942864847354936194221671307886204114929097863905862677507375890581828732053731570163396251220454269340133464454924203474974932454553650780154233430921450853076286336883342281553733171907546184434276217112497577504478313880572626501914998885163995360139838322665145944101356555886691012577641057617375497697931979193092710844743702832379433735909785309938782403716451403298215865788664532025820641468022448885485667623115756142030013566443449094624305271580966743229931514199515504494586871729708737393902741214122895270330340666079584779952859372210245974199665093220673187286269174904169048061359618476555123607994623763586206290922371729752684502456709175719236951714147822403306379299618538890624332625967679243753540411567359042102360642462897100124617971906274754535865376759243186849738652230848950458991360616051656154562906591085996255860380521577932581130056462815182611796953694247279833033063095771539365813745611175174122302747465293017631581075862838312831249230399595329683086007327907551331612249010373204194290043847390324448167815074937720826621042750775234839936657666086624680242621043297179649686657207136323738160155230036274998714035118331597478119008007707315123123461165577296281486753343731587037113774262528200965830689367819963971075137394764694478149432197731167286570993366957860522292563091402313691685267541284710638923285039273511645559288958615145954356406843362570917048815923345532230465558122677199985636405281313867784475274117211225075129488447276335520650810777797268603208864681540451398941557333917892652450777878935239044410791122094719470314753337735760893753964047048343837205846035588173432908241060932712297868054889732305487098299665730678663757245851630696612188511580568401896801818700614299579962175711998705146607375462180118026481496364200513616041997816469904093765536147052646540479857755636830723844744707220084519508257041214300727689192823282065972494265508207183257598729495654566983390983395771515412314551923759764470472523936722656911475951766956065380838635646422821690050823879956908043147628765649844635319241119860075538633273857064458002915787070229320675897335556303879157829401253701886954525808843180661036629784464123204144291933881884256464643133449134168187026417720470885661299524772026278799595612340560657583933086473247321330769979653193043809996346054578875782508146973498300346311092209742935930497829019545467937424223555023252771187741355133008241142944017588958136091282669325635179413014331687337957318144056871653147647189421617545521361581493845888484504845157540803343117922566374173948944702480294016684307636443221816922443911600341775248637471200464095928714413846455989815883960514769020088354348679453794780208654598692014704296696142985034978632711772010778084241962163713036692126821327798223434394404921034000164551320353978142100401217066295738724432352513842918472528969513569871161037541923032702380576210656809608533417611128115465528235764332379009095961389653335353626259640013039177067965746376071159277520628525445824288400792187028867959378001884859886044388531647865093006152235612338085809607850079680688763712573008220834509602048740341592371479317190359786211492801030383273060312740770479420482546292605997958387208491564478904666494303368166779697115554185374936240815208108192196287217985586243083015697460685358042115867025054860024608319830556277869647043440157858942786324623957788104007772581974059268877656855482860818441847323667767192899852954573595871521039963035912646609910998568343552856304465787979659551047191876732343308205119357401564031107204192137020873486538049690131325200717868375212116861407313769600079087990367407873593020468827083351296818060786043063773351662393180690836124698858160106706890223110808581105949744289649777405379655794208873817624617164265761800146147051094879287048447370748542466877589097267647525388392709417941773108176942813467057157652896658382507272624707985057668660708231026735120387774588130606568505504771154874001265896898439404101574583993465027565132781128255068054337719727215713150046493517923469322895030637910403112344243478607467682211208414683391277009622586155802844115205434203936539866260611228139124186548057775582164029422468874698420924604144997671481399305671857345330753838061923226023404267153642472655161674688151109498940037424588051563821626141236801571183652635601791268095701807890864837970331192310547962000598450928123294944215395130205976224100215771681883154942246749960052487978825303080714338041005393915056091470287052776134694073408347973762255713181346847262022026023225383411411231631300932238679523847034412500345580887769603480396495630545656652204708143438238731361024501684705378750995646244034320556433877285122852344971530980112647304920649799097479908511619784886186513231648805514517098977339802494040219417608692545245773745066504225764998176379577526401706513768298536201895895162458635677824761949374114638390227561367794311422485351445780720739346919126442166788358296883989229761182738730701751246447913134469406735639567887480310239161420387108196445234730028125350889791271629060659041530965479890946476736447072459010242941026241599141217358103966532218762980952861599665353895941018350898101062669669988114483919816984356225322866147795215796845784181298036838901414095753028917154683139547150539790471940347111181450749362771777933517331160491261534234855701406540138309659377797442619284173796813130672465373248829489423580915234655982537788520929445276324206072326102321683828686527971199801819686982771819187231597023045815448758028843300037785889308182659099850694767397079121159980745316947820460228780966687876277631629624841900118306497719406873999228198200539970989363823917231884503602416971931271132164868998036924387069800736457884549121809098075222876421500309125631260346258138949142527726944636224313637976113174911080382418283279222132732744359150418090750574860104165726917333417364028529864533024154149495322779399250296159386048436604857764189642378647378054458657845716807557835099944005324502759591288119355119321255523144635111244470922248709796891593393968763891264579853736456739712551773169891251504594037145203991066281957561570082645427162271526405882663174446022495238437420063795634900281642500558753371343951784095042418179361147463963292029216185499506250565755764710728606970417174738946951122268206637490573073546806835318444817671442319856630208817187003696493768787691227210977007317558721992961678599776232542013421187284419523910089276166574765924662854166239935243711570679610793936181250244506440772330479248287392731047495703399242876772250655574082125537354590100392870271405089440014056994702431858099661554419712695665454755175780249016251220967727618650577755873914550483902945713877158987519512090364759823256124888592883101968178814337673107076068910671301101378558271108444594271888692846943704210696706651941959920024626906178877069363969808341672660952792510151890183988561854658030805465563294095224285262626321379823128651704259449674099429084848774226039463035039986034024221258473247112670573671411463701564851430771710963380010418892269241830028028526140876292340251105315378663314272224283610486394361721244462279155740173718848429122822327887520429490956732046955256447060881705169989466608403046843344412772470239121614613910751860545350859096692785945348411594449472189193973123716316857675336598496655721312724663044230961351895342701257362249105804718425627189134976943215330670866327990585155615453059279311996638513825792097821029589323573668287325531446997989790787883832627390075635865757418302267600103136677558764325065862459810161613746657157838193786113329015106623833297439780444965884220126473568074353259208850355214076156340101964880147385944048500335376007478675548314366438897940751782544437282144050746088929303509062082632867301170042220643356709160224499406397486474583618285178894029236847252379666851813844896875901157966620285714546132445768060464482271249227721099842069754856653707986919993007150682275263868544659762647515935227325741036813137918743757298961707828721848288814394018023717878126009329259432186592274118511038854260996583478244575176335745300600859710437571477823564473012094295011489061154304542806177445425929899777166966996886001127426078450456711660933251640387512912251029981420256518484255048173081064236538811198890333148114147429366778951571392383791608389395817162334155204808639685176939082761018294359692003916165681133080770889599129219363721430125904802309065365389377735114019417598792843062201637998769150185730979918209156666613289069872510282527050105652858919060694971350095385738752527411042030833464237430220661155762026554526550917419763931547999880525177563814011336442510958268540278733612008339316895575962623753221092388831170870261891221970612227905884469771847416814054212902056435311374280737926200885986574159911472916693499279867761624134254261238563498338127711726724167944823859594843039969051940828696600738605492806809656109617702370700069749626843772507831778485460132781051280994711282805340328360522909702968445659644990125305313231656404449303605718570496541089309640954499193206890742393481333998818327209141488384551266212178759134844617013697771742364573232314486611480017220591010236421525858864987321247107564374652399196079168281069112476042850218291978253322363398133641671399756594562040592126873400003298854480894482757812689381607813656968508657927310445781538721245193863965932499812003198466600436572623503147658101845593821499284306051288542843040862053955313351447395690275613205507764236905891757380691412060453287677446721076988115157002160550209497947484060002024857195362390768683996396334881574515225186256571730462046038521386606816455850894243401125742120402136517370509806317769896000263295901121103214858646249918224176951225198676811093962147246814619522397197525300063206204493556332438799958664536834632411651007082302693950265382753273237722562592636579893036518621617202912112371601970974629044818518753800468832860153419156481187385972861814880171684789737925771335454457199539575626014909081404864832304806710236511627768972792142040797707965917684154584854404003472480234263142233143210155690887371411816730093652872606620764568735030154878421559761299526790984323669754654728879500330430060282594992567623791025190426506319000321872910724666699236557211088699517179884380723507960667596276644685585413438095171343961757670568554483450685343255235417022396700257109608228385231518564888103136871781044552444100124728601280984817441932596920184407018836831783837695450701924077449221586929107495952983234884582894091932481363932314692841928972555187838527215826236488447362013422323630461967775003221838388713563056180935584149919981635831741536258362169046573782100016377289500302532556571565655485673217426020411830513443977348101453106352793403414470910468952046942866788402296808289992432106148102884624008885896505352531229071423337973509804456357212563552684374408291441212179553390131044548814640659756606937239727573852335494406098020122829619142179873318358611279440319474502084369972816796589364994313401819309350531233739248980463393846746298063648301505412840620057777735877809471555478004043062502753225628676697282789984419961486899632338826614082444314468285463417385207619878279101936092462074196356629183979116305580559254036391436996269472902877228400272510043753207956717854078876440841378726846207366235690557221354649546422892485052053165695756007792150414400393809854738812891237666208779665791453677696444676065924604313767324609517509417852493216530339652225077213588719268542153106491194278143087610441038162256798981535320699273247669368146234523695379425081690600997347405952748991474596996278339298568403407742899525187504920325784296891222020320250681931235015345678584607848676020692186579887385684312217072802292226609765455156597435162952574729383749788032766654069790481980441552471426607889623464590772042452554242198006942748385764068787856119514924313241227333208003309878248824648952574648943290531327437960013105035949807938854051744447351440589871141765392242055080683450162282360917101019162357736177598670474034851126453133089724041694561224865839699959279608964316396199913851946869340202286087718429550819176270526103592053583819930241304405562876119505252288315702606487128511238393655238172510085191059974532093595683828633416677169601191815916902106075827855483157773998835800326191194172910738774547881281104598866544621482184173793562006201426581628885335840868322777198783429148054464249078986498164688926110590536955539538583205199968246309696499696668391979894211420619073696358418604052206269562811813834123629508466225230194854484948307202365340811490875051598100290825758350224218197410741922192924349678526335517948562057755811631849415683524415538470195770910049043996990324022743337858078424410234290244792445747174550016351485950308386500707921616517920474326470563169450604153659600742510254529914436018845874972818688718128974906445085286865837560666962620255861021552968904892362719717975662614658780720546263138115602277458468066743282913497414044485128368574625781936849081437199464169974494814187650424101062690789879315820601577329681747273932866168080628139334905601450460679955953197687141929702698286832938912352976666119937924170837547106541362803384172559662323205280711796156524240975775954470075301800344363173551236334490770024834883299308178456401652881239004097292469017300130692977890426394784182969126265516497111381701967866791457551928063927682629525411149067291752347849709110669280001121164670549181988160859446788633134282618527202919496640229335641840373365910474786369290821007036649781766962252896970095074214876935629799664878210156583811299548873199450041024481620709740256051142730968043203414908087908140786415463533738656025040241312765159657700492433419536894039046661911356739442897172832506057984272053079164836595891263254140049827763115964247749908868685480200270147925628164125768405486111980769896037498455926283062934169413960388763184250030754737280292661520224890527101875534797216237182018793472751347696304264184039506884585326191204123522185523285622954060713035786513275732171621975951465958204094728595254769662822302569966305093185871027662199185876411173459848371925383142849712726222709305656667366371224759073493479220232731277596087166841679403444047380400143498232666652884273869007887152614932940656495802205504298713682173484789839334987627488447525316973666116848919635947639992253340560807480002563800784365154277007507571093488366032154193294603621946438575464150602546614673126956728001564500269338442688219118262395219690858111453749413797645357368474983082580735571912976818019035456411343239952760964555726228724614572288306950994948029689627238839533656421643493066451817701801814554108982925894639360683630870602026986137091648036105412784189486704677068519144696664814485197022700756751526516685450100839882836328898184933988752096567850455444722529418635984495711242415846826769468398064951227302877650679857152480248751957590784590368619175353872779620654645598159375000887310780088764965899334529934904107312621132021343059403961363492606958457059005740506129074891693354177715366407753852013288149285856047563828064732253324267813998551539961049885400202287733131905848940654783586800939789179675876964376467258372896051167840168957542788947581044874326308114190679778828413249714549642178166993399195363619834747075587433897903573289264630008813949381344848467817104583058429522734928742253092495656600847629299880943727472000893941851774425491685187522539259046691569650616290444096558109730202691068254783385180346309736277420704170929333997590908563705692485075704223246855260806374216987989968525997816229582732032180681838441870966105823042430043537399369328998799643043594041063605401149949611723841386843221479268672621636818332448792393934588454173000080059136214706301755421698228897060036148862178653585605106224830415445392799726999412101853753308640178199558201142861488030366543084466256258837508500492976406379016947859539504682665578543558573352549048637776782140593351820516287490732652944975894675149469156322176399860651238479698567919071391546751337888216888228103303115984569117192152920233900182273754509284207962197215418326430622601421743161123039266865493333917977729765448066786192126084381686098504798510715144903848912062891873977579102454406694142731997247763087193463589423045977740868015141638420218038799346616490647900558206360638065471160883084242768732269598888982837260351255205801815779781765582965083472261027536964023888664766123864052489332748952204940083926166647661545796830191953146288370034716973030923726935740358095399372256716928236534847658932555021065814828142387509238286954778079854424089764202161339659719605203702208462844498618902823877048156860797823059433334406650832990417621107898616298220227756487546849294243529992811781456703008088398347258073988811758264058316608504197008234196496837444837618874663305061490827872223047308685812883879545122239308873019364768768020067626974399822812319284439298903910199817940467082467230123019774513485279557773226625118994712013942563056577089636142427527043791206730766651929913188551930829902000149960659365766308590998140376770630132383876694115652652375512136149261892942477084939737308230935765252822039331959704092818528254188793875341170398746548893103142901531469222575714761465635413680294660498147091002671928887488493303672858279208795133098544686564049453432221314305383951821315743885020496261458841936474740731455799242972568461361094965272948425275296357523759560085203343729760213364749867303261119095591629721032528803898149920917935202392956768512328496877396283205669519350894376803226884132654251925917040673706705720964683605819210440953001044039215452443985358487922872850789471322738340719895480564033603963026165892104981120992011757196358409484714904155617934420488944438957547880748771713515145172270726336559746366091685437833547615092034369274140338090800422224761996064962883512342360694804830500067607976086713988909486899526000907621964673979900545244235483246396926449699559230413850120165897827986090921845461130291252422289462195468027430734305860043179458733974796767624678906674069422131079841572222406062343738731655232563660635216086871963320274247816326954634043953714477451944008815726813398931435828466595309226815867422634764656587087098686476537724742842548071381195218111156070368719094354639325306249126162120971915974172792366449659927811682203465189111991000498119828477490736390593309883333964106004037675914960717692343198302657228778511520510381123893010209420013975785343117097942568664589417706486406098025498758706465405702461960119911330895140740385249721537836738040664905006023064219359001378774772592529585246071564221105750892417354945017753440468234605668800892364361126706599084102124842811139183057748616526701699715639724813179774738174395788569889203449783695698129752468808071489414684415054810930746157324086167486073939748685196197152686382628075246410625693321735169462420180590206776127972565984379519193412447960893867982052764034932635372419583803715008957452787465790579407418770438954112768241437634969658869519439865777932138537531171550980153031299844842681102378354489361024299190628969909034671710607385781853192626280337904040896429338257611049283574647731341856302265077938526849699439538774363111341495632313823912691462031122161811162236717402469870440545835648772772466002438018660813447713328535586494656265486703367081462774140140096295845107418650875093083358508482902136817393230625106863521638230343346736732966245470357084470051971217007431530108094934077986126796244107690685156941255569481341724725532191634344508124845138969217086825443953980531948071175221977052004429414225121005287223433270739857053329316271055825180648620416702577897141580234074496160401541616398039927775777246132530658136250961638865690858749902455273354967368742480666487707867568433539259683467274070422446960226040624051992521356774314999969386615332970280920903928944338262706215317211085291662526644850707665386179081714517891727787125940034394886337047870370882760903871047540372246541064416296105520506411431273572162816205440137626045689169042383366348664492276782686364475545406309712299294624406595568519202014223572492372465160200358099489329008683013085833638197010834232193367304164538918007416302592997986823453342385388662723651455826371560888910255574116319256508026707067190314449076504165962615190791862966703881227422069145817540913430093067570962758635097563930451905584903589537976323452704610639208417048484372621953620972175165351668095344142571375984010212607248661404594749338478883199318627102653069458483998215460104220365248253903897238967754436670586708674999627116198291227226565704658489408320198559813839543347779621811446660870335705212059572919794920509947025902577794108836775649781484447466051110702104203142789520396184506988922907571816207906676956906880699093519506652533711662691065708505708101686487811074963859661130637576676783951541114626628500074018830036173528225206905580563310722045133472226988476524803818372309857516793999515922522070504371727972797553344806333052244344189297062498939528520193829245459323445442664327942682689220293796240084391977165687891507678604740345939062332494714633565154207364392053250788844280696917530171254722465300513166398760866724612319892041242448774068194707978304476066267211360408707386905284026947372012239687105558932853670163536384315583345550247008532729512313892871131077019770974343670237534355631113144507453186736617944328281031096220113367689779975307764300532743689075130032884465148986731999519860662324917135843194472410016874469074408913514215161369638709873954643341950497291899557501453249034206530491341675951505763485789339461988998469162607049495877123433641765089197285781708311069348163198345905983516502642461955937948228909720566304592737258669150685428905254136191290692544290560158456322368260369669169881014263106387825036942363736575277033621868812640136356319056614314344625757286590672780832045574589976139642346754054268921453161002998222892336297770615093867339590450607096387601590307057792867513525300897497585868973569025970472716342265610221359251848047334441757635994140301374662086716073988152742089856456966819738981222200620594325063412457547852002329476059989335781700637101400698528280246818082173768041996932899015984396987003915312256924029492938571807524004551886286522389927331182484118205167774030825676365927745528748544640935661373025951616463176097510022918010521339526797832109340940637079275536720201629941388481625873144125027764490719796838960799815875366179083463854907075023827612276764105468843993717820650080359165865164628583664128439550967431883359394229387960478420421574571394956447298221385216404428863169496952191120309677549245374470453362453109742241808135644125616943129336879395072621749440534719834624800219348627048349834094608233279632205515454133377600511944629818926330809818040991385639951901679347256736895483890235437181769895499971241785716699954449697087270682681863262128605358678551662988657981730929821128030709938056246335983288306701007316125971085967919178081885914938323917737501537227126114391457523124737743030880349665104089966426176215674641177214845177436772358652814272633435134775212355052208767933405829015098918357948263461603858049925381305210458754266880892341274312844305941736993382537925929223220271315748040379747940331256629061722409617263727558534517328996596557109464719299001281117766864770473180057731017466591835453428277235959557102170243066121803548220904524923553465327724556051593905471017226102598021044238980618520621942153371575284962945166899588834249203874630317176832997857965167609057350990452522328094683213947763992746597979608277414188051733010480759882530435023943884035130119747264733879993256371283965236102836227862019574473997220827760173854169468727356002029657073265825438790982412849900445103111871755605216183495590673942426892134024455339016459291504024908499749704311742118883377813032334948430893487211398130203266644176226306765446068126219539262415716310267636318108243779020650849117155275807525414182290768768133669872332820074495618391995333452712615417888029224171906446870804878837604744745296607246575543229957146952987662540630327932530157575304254045096166667360797603560388121675224521087044355497428099138154379185369083519947271383119496163626478023573664085193190405275711967687955988926213236355315777160311504778657811980443200451861797808683894039026470683315981374352127056655488143319561775605744568365584040585268234730231640496564054632684310109830779127989855277728025977923593770379341818687109936309912122992202364491877179130330305883599739955095276388767476251703432374817996107282197119722478901755552584347617974150477481658547642704430029272220915132671512026868375751378887576235116245603486982754913341250822177373018159989663048562613356574127177676647572442985578802331278664626313652603226528312157207534259460342774339678252957194013408324016056040501777945433359439716772715747866621162401243495505856473106712187645113157298415558324028126403510187321200445159327286776517096496228614928761717878132663656215876429887492280575453105130952985408232081830484822841155144653902959995395600464342883561912542404002528728809697093128352794818840029769623093975382730135254031362011143132269409549826295688911413774296833719800787450759174565065976136358273257704418245641818439501943057547218819723924299541995033168105709819944289094939396620346960933319035305417521669582336447869656087130880527243656179346063688892881273461931863114107091578579091244195968081728822940831244724292507620949220475401818990390970805065357763733313025673191420532640425039741214877562265222887441734632418758457080415966256291422236419293063457646082189991477050909932432452600802940855212108676296386397515294548188599233031066186492407577925193166706168378179284582652899706347454480738768172661749915171467313397841889468318685957607865240383611427862310764844453546171209911722622157554259883700680412981196676132112322155620914622156986080544668239029445303843470847140669499064442016581382946399659218064210238319538749192800051224060483377705544888921677538857403310215484150845413271190083787245831397844388399152617998085341685619621249069082168450263170594904630426425777627982170087290619405122107094858578412514313132183926837853908279767964500859794123893602514714917035947624509010177654448186063478672048606092642370738451793370212356371821256693288203229403657467435631732652390063308185831762011354714267248556161145361920987239884066842306383907799595840662574158536641796272817193680481754010178710013727104764777556891733041221037631545351333581956334327251841677229507771894694485425666344751734624739670302527616634439064352098174041613857224569746303762316832271977304965308909193771875399321159280323983917146518544098794003156725824890003474070364828151158933703838907055355398647859297975711902649868935185598617337058749363628108948407452445528635974610331933589563562802634181350371500222583071856830970385870372787463669792489368921644857018394193213841540717543088573334375759857880037104569683054740846719690937245417022816878091261466582476551952868286997012471696308700448850833133513326255970847083101298117213325443309413828363553359602304929876437978135380465343678761489131751895363993078595685145053638169599155647483884861215737746603506213153154150844953714901004328115849285235473205576493484640919739465147950190575212526268022443139840432651873207947837679174981773859031229809169362840244519637957217758885861403943762683720572360415824325086300844121327900003664778590103525528971001411610488023096137960969910145417343721236968948049430294326511654260559064884867149494660652607641505820702236541203612602266441022866031954283170379592993534679839467754663170989359946066110883124998518631631004361267285825640284019395291744291848449451665587444703561719282075783681358821111272306812288719030511505081666446390845089208910899718594852241707388308439170955679630117591818850448315857901465572153072897164250217603297326424451244422817104059557058339023305513037300764729344437996266072469687526028604462150358935701645211734697162774677920109830857221405333713558695764135431483120381154875268685757132453811752428096300081016108163965694801592645125421124715795759270122804772611277617989635983448372543272848128566584928311305854815701392953814309634237907015045207849384101928711015545506280960657021510860794071358731030963656412178818093357693136544269653497898796068126860517474262892320057609750819349897056031815273233768549177252707448956124284189691974178485911395781964416483199271642846093842872983133463569307106543202302597161371678142049333968217018310817169588009843964897367687821678662937573208404844154698289113366517717956098899260177930073904278070680080920178031202235365170525614054818348838019514693056044488651699936408822482238935137282230691028028267787723927695212548229471034336985268606270332412994091985828299895393070892373609699925095807752455837570901272821093498907962859114793708610537518409063110825306132047829710678606103582945009202296083118359242941278089303500550475182366779779415573453642167417374734409444822795219687225903217185682341063901273020939573867281682375950266775797208849854563039532435507285315210089261797228036828477967746196064153347957418564872550170326717681609458642618669974428883990609561289033511671969725227358548635058415358445259158802566585451214400314614891279760859613996384110756595239076726524672443694322091261826546298318999078153027375303999328614591359853092979557386006278478130975231564041907703951628399523591050879452994201084689285526666396646887238432617244696723765792899231887790603630078767267885455549918406210560751775511340548468233014044397605379542858249492752364328336803838102851170396396588824916374268364855462618936211559708560367028461111825559237674847225700890933564357946697823173691603873512476304762037349991094468095958178235238963353022261963531270739520155965478086484661384032362385807324512771281011766667222039386307136677085641143790213965367983016097606043977486895412610048853206705733692301234693292161888021651000643069485519640500846722684217841734489818669255683863082757253534687202344853488618811355706340053754959456702325543116543212825674387565235446290357529594535123696651067772971564757125946388704885499613765034854655737019777789990240537498565134393099625071667343940843592865803007769476484940459009403208320629889552018876027157226549106935514524963512632951192525277873778216955244402207356075773531647490493541956711941039911197291180827435274467086683743299949062600355533816544291603052579861450249407105383643544830028861779839435526758062846619048355168324566708195786859288172090221896348306642612070401663065230291928633549636572841397371031927117820410418338437423076943303427941315419437247023217819732484680248310595949955536168836838105336317651884728047489618552609730489097656448886609720129967581871562655791926469285848660061129543173382595977378974979991159044255582039551720231707838693594029175854277940788818647225251737755548442225994103792943176799939438444770123903117086949737292527287293312511864048510303608167619498630353768213737300941579349472330026545918664179316809353891739612769487621262518273099352853361421957882523483778656064843844550817714490092445611662308418212890200800633194116787421688398423237753877474078449717915611029812683199851648932844930443390136526439969637148831030963894108527537158281433343417018631041160577577540175064460979990941064617235656270104211363580421894501231500359912243541203353415441905161671503722340460431326439870290262162752385550566484971604732353507857180687065033371389075073114647702877450974292607410754853374733795796892044361460309034480583918973123714149287588176247834568923846318356677989070036662766491548324918017817864110229610467278186084868099997927386279138277063283258126747675123990857390741062773149276848321428216585658236487092644970315959676973792803072663933876713823685594858531956686814425958676731351318096136838948916980113986434880539991184229259051491239186217980944097553885299981641666831758071879205388323083464952219723060321837212644537463971196722979140774630438552127227005871396834586979550409885314767602002214099551047970218202049589756358694991551683526367164733165560866559484688422313402453602949008847185724955782979384983274914208458915291529987873506368654759659113208048710107062838761026613226855758842215297598701152601921405688997292753668363450989407578923847598219340643105045976272935371996553030043716544635126540761943855374285304160173660534083195353366628627389339096434000038847724581631499854358567262609371512652497019943237167947055118953507207225241558119370326072216657561482828938668929662077600162797188285703731048419229955923074157449503818323781717723788534601790040501195916768782543308988626879206741970579477070014028934652288318622225019453351370293559389626008327101419456962442370736295052239479895940593435310188874778236461274795388112084737276795035732630699646435981722022476146795034876675602736305878544524836846126768208833779786099374146246365800026467489202625171707953915164223997749470743657706989902626262310821432103918914116553292758011622161001244694077661950917021381098990427879585816940110278193738381180156915625507302052935181488164494764189275241965579041280717525870159245294078730812905851568673573890423792418928438558760160227115752914150873055766354765457985867888080452680712561628882146169444592108872626819101638017439010225911139364253053216300840379607397820216988986494557332877299519596570860085480007689945077139376004636212145998857833866654279917625106596309055186945709266197131934083268149649946085145203889974128498338048409426663049582364257245041418983514838975858733927305179144175767384918680907234342991828447387275018490869007355736358793331088795637075745479687106363080249564552233126736372384088664675919136228586755094405017245015447446594852912343237884630859923528498462114259749638513291363448826573507983669657498596440509543220142069802148503796215609939370052637935451506534081680949315152260985650780718118672424906923104942270905811406143702064140954570932196220245124352860990721046911315708922898895965477750748707029248216496273595532973784830577364786087085714300066180449971109725318048146219982240080068916473260068799500432216145996791544828965517778113008549373193166581319978679523674489299287959057914850670776751914798065917933989677659911326337269060416458421232039520980281319085093857127991874773221174489289992631062370180982758808957254258408560568343790568117915947781852009285157751319471097741232005403887548970292675255622879435075961528954040095624683447993067973985870679203878714269763903263845678742343440615135950849818454657810704811451315887395036296233611973336090907813434227724806676919717711412347633778353362815214054419193248726471109312080744417341103801778795831624097714569541742619739984623140932604601795843205885489848978529320759939538920539631194206479064018337191175668105819077802617799533289867538401993307998597095500181053997899191076811845003790023277792742022529459146970100343596075746615555932125909637474071939471365352634972139209794925564273887149299733128851424120059300486116092165936193381625405209429007123545048134647402596627927065179437998272712648047732498358353810725854127315244193086248917830640457772697085951350031946900224309461619156504165620594466184629978106423290176342383917981920448103609391230245785639737734905781276797350400388167808848310342873627701289233457392894597746471153949564802828811718451280459269692261779700352278782033024922185493936970536179186081343603525494584187403193352360582295429397586396187231135561083986628197356071600703887226683081292795205778521045283933215585925982145770869382329075454669858249171548968017447695122604751355843806525447658401997192257062302221990236288942061280847100732980080486025236940025402867011153560355749035296226463214878168143219417488562199932166530133798167751571433782790759819701562240222264727771928121439469006192704757727826474865621862756937060693985077524723420273216009708670265726187881506696000013997227416643545936652252390630093227714051031976308647784206754139378582141236402167633289297529681092085627015592642190073422739153623248366397600649046292997098524550163121564573255427109726523776450446045108438392655058459210445552541462953732358428394987326986426776084711355106606519861439402842831958431892605332661283827354483676469471915414896821376089957819871023946499333065082243555432794470820334453534863135812944273482791510828688274338502468757617593828733119690431156715768636436561173870455910252202947210474998466003718177862248500408130946184936045059151931461628818389667584889823270636612353775240568110299212111038056307507708745834402953693263918186019044528481799066657738829471209991872930539399032559685352654279304551529259961240000944327221109333137832794209373340013944808588495901163383308466967573406571746886158639780692203829643533714370250449057702247575963347316308754006239346162689210365254397604735005193363910765545340187095346593145732921413927300954188286034467790901782424664009463714169290432865862985367727760347836318313853812795135541582084246531063031776745778690092335636267373465766291254353450816363082284130309555249481738293345939910618316549768581401589229133009567100851816257477398511608275483869930783266963497599869620337017666054112085204535501024252421076951992825307300145799647548747155405561305224556001696980656935188545098616071031414519814548851512388648035934683989687100832261228817253901557255869825662303701220104296023191301478703596403774845121835057169570941241941414618215677543164392625772549528862498972570570662982137163473773643806753693884045396812454171473882567859348541711527736592548066777791540469186709367685917196037394290497165094336775525043167136508703756391515021230485404436171959811786417465610661414858215479948659763965492323640540647646173161524910128225225236284950428462093065167878908716166970007103213640855698000657948774564270651569627445040067320797131832258890828443538232874243556110651707212201739927878313461713165925201228697954552951699262632110252539349456162895286616961385524716131573937742036408155594296935349083768310118635353135751244696296148700024601418231618743565137220066791662038753652868367448763414239473020461305908315641276571830916296301365956935809026236979534663990169810572599744631652228888487895996981082270311912296174018917834877998769901124576514614719355512721730590096521128704367444375294086565724669661398194161406166304839205180932615498651676792521657581995930636814857635341667206482971001921952203802271464334926751197050906295125222489052430960038120155819979683195512666288259079355110826802972851861579686483483549583150264508293176991389838309080207328546909873269443616292756714506811656552496212039563144369048206534616896514644347846538252758471606723635341447620086723148527707776124350926743112844925895527710740716299883015610385834563907580381850529901103585560534457454659733321297637692126565511597904543824136655763020198294753429533944880595109999535510691172702706379007725846152400797972335454057747027747359060357059712911619984535155603344202519806550645385716392096204235823516629849571386994970863984937260812837199904605717424836794839872382028896747199968010415881433981977499662774660060626636404029049150414990810558738365319781847985049280830446971674803752035928495167301647797664006808952366047653914007842541574323313991960625873202245320945365650370266624958384447990952468133622909252173906661351558390836250905948205335591858919520993101573492833618626291744737895795223891684130891282027193221950473363039648777117874049346762137830445440944340843426761733429731520958480278291563113915182209683678741722178320659619330102722954623530749168310376347201869446099851424987295171160546805353193486078599334741755274740726139378092218707147140460798743605694643539222941782968137726059384627054785792995486454034749472425606741274329983735984849446746538551271215378511876111605859234625250040592720756360838515678381755634251919750231812310359383416872448413089474011253937134309073112794330798608377463318009887246438520064035797102062134984114389187225272707822241877878094880335782592898605757831880371244859389597921192125248263147455060588795302881686237575218446665190069360742262108116139103837922158957746720257638812216890655623258077667892001019910806545561764176138748644774661733444070971282961329900565309681439413556964096319630562605403013799265545658244920505770293992984510861757846539303367767397632135216816521618217194842812460426028566807945390761378878259152063773213410924627291533315934904724864918975708278778897279336884098311682526825211595021223297404651664792898657498269477729170183554717799555452813615754702266684980239459634161564317507420663009363996124730008182686270713482839297029659799642538949340426831400488557457561729664969048192419933251570316417558459912945454726302811717993290992593518003593786514902566193931393648929859248800772805640535468711917528274973677499005080626617317147418837757100014289607114887587246300639308940763170245361194156937800019393941447867959606013483897881790931877313237911393636457935352902820848264498122039019436660358635212048670792295069932031921892249123551145251454265846422470515743355784997186703559383482434469915750758393625135231481032842550970550843833963881883259808114083313068609370945158650373117603813790002077115631411983495748714259606047021900948359133035782402797593711117757038032373284356196750831837244915657242531157343139848056113615849413594772799350498795635893837498667899866447099272358147580394505340281190902993064056907163528670800238662543822018448996457092354091611662738005470146279152147951609149133439628668645917514823367475435460521932983465259197944496550624951920444226529680803957187984942090605074165141282100267595373470430674084777211235407996113555457480246688985372853930120774079697004571978879722046239530962976402502250765264537773607104920827729658305337890361166096466102161187783998335900982728499582264165773197847032394375449759905304645661540834024324668389637434262710492699831225775534523594910096384163788636725169188275356351591612188337443716593745048606774866913363572917014245373695901852709271291134957127196134992212229366342114034121355676510011113160479352419850910412978606155681262947559820887641757290964524599297027622876769958785520841892082804747095376006285835032495605403719192280710962000220591870629341168776138439998883052340775579787271339884873752691620201345023366648504450620837774327427343892668794078537551242400438949326995323589776829291935990029898629646523715653119854769520263913962525129248249360801039503894086869947979731807905973650300336884285327896275948377839265143867367796022221513884938442480369596219280830871205725593733949977245007485607612478203881896447804117388222782991720900322788836998076787816005864033153832813404710185321536631175834932746193115938506040358782537162596275537471334862340403939719539567727661633064607756772441710444481281169432143332249594051109195396699376365529291516019639603953940188967200934810836144935288438076041437995526383083472629220901462184716281902047625694499505821382743180686027694471008763607628003139558715915073837599343482676756495194070980834725081609251695903257169316350583781994543041463926552138610812574726427008006109793539416180743739787149251567230096418963726978927038155617663996525330873379883529501294360173519195218759186791642361397542701489954203452212059834128752576767401709633629944521648831800973071095723474966269034094503087592171177993451480374772785606400053100404871740778718737722701898822398255743400396697777154281633649909697071837098971675450129588493387020177052685030990421503881559737566544088025981513172396524967066244341186192587409265130056011552833577149177721172568164152444146759319666473340517762257689888642124021256078402517667769558315899421872980247418976744823478865474237537682675576277265888772636259585834631246330590691202584384133849423415474828640065951460158423853966964793691951267533900975675961357769948686964955332610595504677869644796676029836634198344992419016375333349048005612820490884452831922113391817993082559384706116707019116471724099398690633619803794988418210307399771580268682944687049450881265151280873262073533491493594109068057559333799580321759477916849257929986204926059699753656909334540839240742900497784438525223567697305555444079640873361989794828343749906312607403310193416997054590423344058325362323714314288620977375809661998785787033703993150834075856801797208060152029192429864236760016376682515110210385948803884618184140264923123964835370716065219990975556916718067761671307810509743371420537482354793148201932367237739937183014216201768960129274409230139804802983079361098958522599939735610112018400031424407832705332474500132128677652067461637454966049031222665987933228834487079139564567969607182071910689528813285374777139807331825276589203221399332039665374828623444992902220008184630339511820821051616810560733457558641839534726986019473467571542087618304029517673318338653976114358913468770248413787805369569153959608317864396944571871497735005595183386400162050293837581804607149136480258129636408008012737545721544747982283384180512440713333749077567987382229950481153411259194897868439663540571388855460519173313948550497373609035708071152568714334140240184255978659182071000282682591717693383527043188104820523158732630704117273693579118361912211183360601539369496017259510492871275645565821115540833117699031786703839151344585131421468878350256520602613173205501191537785733543895388265912579401717132226761291400209123883778568144846645169674319552570965688760942411195327406306367202206044702427409341875285870267053909300238414410231977929112296562688354764315982545049964093471829773840147895959471693967945983275512750015672937529179511033382423683572653745209872943686134888546963356895281570822797207116385162297170925634504109758015170902541608990726903217252055378079077538160098765303961491027902858862528974503553717609516113905636472376077150133954388203660834978699321820504199857059127734498784142585822697372372500054550201445253719752231248188735246306891078914330743921671817738586161518804182599753113199936443193604881519856227883537830839696308256966017589504998337308830850132239090826390697623544396641622341217471341908781369249156389259976970401081771998492090203037022111117199417476333699416869856516421775428490293709831233119219179644253337405868867625631347559618862132088866921122277672738515657225730436483235969959442088778588982993589165609287696234335751567565512260656769566318569250597690772716206283578924280562285230960957950936476992990557172983101384950519005666140487211229101673012956415419195002667112547119958098865602178500059335974294607424407417856921436867584306280709450227008403591792707523755234351532198726420095390045230291480802666176840968139481375589592343034140683158188640332090891674166229605033858069221600233665640190910082727806265957450832052121536463842681522443654111282244690538081771516419686837478142515543450398114918836702094706913546134282904004473623424006945748796257314212516818195597982877806279683232209700297816615337318183459002871209802190802383246716177034098710449567985616183728407390140508951687543641471333447226432672247771274533119968654749729511105760996153327716504938553288515652148731953481430885686724404563897927283220268657393387300063503553787271950249072218088554631008639280870406935653190006237797346020288820165376250494413110463467235601749559408170440464204635418722805669810017845019491564747486589513439906871957733761253020025038617840324160192049517890023332737517663736123863783741733690773099906707024237352813713641330986629433648881169660891263212260649269324559326917444247276519038525646156266306892655031079441417117757573015549889193992601204919957289979427594493218927160792711595004644899868333697234020898804105998362518103323687839223780808401877333149144485294484033167210356293302617050510814999329404663945532426798933487760833424065268676369088180264498830173205920622318960692385453527105870277912333455613857255260709141463731632846194539872445759733802486003001194538405837349279560694336251901123373378328294609935056435636687485546161309293895643046659236414000294892478644919691582315463168560353318077966733062163452149528665851456869827991625364139532595425172532911184252503878182116143119940892959643591207930346335565960690854452239888831977047559614203163700629454659728697685124329355480898970303550234067479767413330691491082358298728023438264858345251327373785009547690266799483577033942899719851850683051090590190473363935089380482467182232523191871550435868580361377025702354529474615122790914575163620192681192505969362621257455221214431501241587317884788278675072436835243015112877353304336854298253775682303171152587827934270096894808425711771712522745330558847796655364750608190217559273198273419780020908636393297904330517782542155834165034830614394525254433651406877675006024367864313068547518330408663915970016193938938586327604203475715323140867642380306848082230130090844949106411916710736312665850517102857155934465919676437680283166752688239665354468308949493301963087861029291635497665428808624483852022539167175833263075459190395846529995743443719590648120736244535197136586279926439716960464760562767917056661713400317435668375322633095978103876014071273615452540342152922926810688953469268400174652451332971440993491267037120061802673070088960996914628058197446279379108866357574743964479551987319324543447845291762185143449067580473329324501417630835748237573951418775394582860270236883895531578244929704585619444943116115838733471603922124839150028370682607847140909490850733521718252371482746213399758727772561401344664265420445663188565472831697126804438604875883352362864426004994445184355939710460620372841715310517568830101936685294261557634817852428363384771748925921391259476405566940309223573867758897448764221491257981783100172827566724607077721448287661368815909941660380690143468268064383352516668333294151930057331808066223637051456231483328451139426104223601162646347796062128842524690321358458719989059406752854496611062196114616782833699987145614173280545122148697700561383174794819196999581594965806707863045230017695473640135435777285590085257177315238719240578290949890622135053774514795390779549104908389465960913789015032427642851774130390383620980078623080470240016947272419065440220106757366771835274430274435242012147423251807856168723582802390137192875994193465615397871163764981396112760897552218139776053835352371446314937696466620762700335938984238664947266625787463975739422661802529790396158695377583133435890214098997543213953334178749732932032475682648261226428938569579046985901928640909109250394313960420534596821924021676676627621290440022194020317359338696597037964556217735310965148942846389114935956177060301238559805434901023475319800543361390036559150299432935389325084679992613887652135530248212021543867111242838875949959230160417477806330835623069932316095179069423262764439102913378465581579979911963989255683467034227614227225818535130978017152138164869069096260211818165891083291108255483205147109729367867415678084470413505475859174049369147330425362935901721727115250791660377697923216433116840501723264458412350647071933721223780272845185654647194333477836351839418009266665071775021034590818046125684995904262204318163802584089706028432403296868028558189419124076541136275421347698994102488537133379729416118631654719764859587112642556847741370199857736783567604677473187120876284269219700788358104605893207771827603894869610661163145929789701400691807678253645447688615653512895809460489729687406343469319124586924601465465062946241911954172627090161380300897330592475561909650274487901900035341649452146954463907676062791704299740906444178886096804858007523284307975315862381322790085067934271324238632455064506241492595009923229235720010940459040370957240641100667005664324439112747457795073537285830369493615254890389307682881341002243822756458202922999633356599238322924712364236193549328452578379774280788751332394846018820504475922439789386641565278331570539445865303259556587677022193016665242075182829744774987661825030130050296100458624479617218090696994079352809779624316032779855983351150006405074969475594681911352446521170105626124251692584454572973089033127073170037118064745605346129480458261304701433946253806188390455087516934049630799459570748853956496748640197678816396965598683075584910084659899062436798868376644695925321321740307387674441021153480438522512413682428662142255386468378830236290806653109419519099799967657128257331423310903477467487799211699914446856783188145736244861571476611671129723141110266170777507575240388881713370152597283588459478831326391715801571265097974191377342974821889798019040921644931000417334096107886274150360603192003612187321884301031787917297841757145662774116573398926774163770946802013191404327689843005991937072929350604863458706802407278341582119659633511580003836648018861315425925037611760430954008307247353213916299348608950880671089572385701722568627809722776841924255172544681938432389243837140226186858079547087400923864677095470657386764644390205301052859678015007410357527091170784193799601897207017045852666697940365781973988548401243425323295725441613551513000811023906764416513926918900058378909613662622938748309133576955823102186807157267236018820036699636757695637247019501265074028268082362753838904192758618950273941439124280177471204622873998020050608166651727820520820374474335130345243107499086066260393508831325929403865667517080051440438748254252859664903395892570466029540041803950927835305011998116768807122523011787091473245295437391595858394331280925108962684583443148596052310579541951527287988432852595609328524382623353767197667459820811034615286883533837954404024662895066264856072866286088798356481793219445224991140678946216685622924732326857336614457414815506732022538684173142041507737409167196005044988605889168839001873639358732296764050670826479007779959588851406423029026109630326061877232650049888913643773925056212543813071869397632967305250404808354815151886707210567743671982541093801567627014170596889327602572786263511917212628661310656094163492237207040740305545828298524960731750511653149444452675218834809110346744053352269946075960048983325682830938064515265722528467129712019122021847312591542113707632701239408824187745814581349727864985267692830233392925075942448819871874897297691187601579554982658531037428358262530657882339352478570758680377164775126561234100196105788650665366062141835379317770299447030803972095860728044766671605848889840734970171564824281169654639616980717419207662336585739719669925821061378386245566324918096993602517418703634186509176210630591229380335043209785600616052060142591710734959059093832941064912720264433830007595462271616701595616206189095381464562536863503401693743630717039535128903625469178541866003152093981970339708516660775390024933361955391114375570162689445408233824255381823757001703638934708377548673486524333842215004491322236780482572319366868424318105591649175847248104134841406060644224501266614961766555846860788969012585346324458482496770564818317155569990810813674468333219342462687698803086249356608419066461355946112144590190501655194792460561984689081102013589984190157229181261631191591753472248597973540345033253292746557698263949534462119870765057935525290883955055007915469053746349441600060016651150253921131852642187979333154191505635325658767070931301871566230627873613418283431949242731827404253116904721440870387169172723202574622804613226796151348701064992164455937155166988834450116260238996036568708404384026824505134941288567297940705487278366362865922783692620727655610133228712226026859183603733850087465609148261043355777278004680336599031348201999345279451478961948151349606719672376799999502442978011701963412823044507681518637075408007319835992987071901839038124206325522805061348059425895034732168987384489523851098882790249026966546531991672425576872973712421763134710702494428494170336927961813602453108874864381590803903544216591409493423503882323865007080172496314953193523068443411787409424731906906138419162976849721986484836368501196609921764203732342773912283784635331225107794326205335016030317549844250593810933459568066824121961366001087205280578490252427120826257261609299204963008920569752469329836340713843811196778723661917719122740821472306611566597870217078110317594525260700604786883923537650979258306583908913776033053271016905446781695767102183068357969873068437618298304444538039286602846922195997492643404673774828284109608056904226071973537831640280019896186212471890155038349490839513654174795620450200789709991292798315450752295173926747596347211255276098487635106570698447927959143399958816345375060817111957263078360225164477977763249013280609281184721537773281839917591168245247493102659669391512006532896521435414367111095584790323380041139735669802875657827974988606065737515637969740205539405181738596660174701089279115988171055531405684574126509718697106796455262661742537151799546992991030968229064778544175870940876947336108482496259089294394013854147360674596826652122075245246180468878775995411427474109113452475350531388373936467205026053014325919753844494351347511383968783357047605374552057042224906592917107486733694468429643771605296109354914162422486640949570133539221601268518343055069376373704583059791899066231817023378451395928820121199486943182717571389799284942643754546460893642658277775828561469856906862809171027855746486133590570841777757616337635323183792419816197357612403124378039323452058885485840440623614505310625924364892414909324611053928997381454470028015377824944971044972167317039326023225042351546039340491486059542586458072067939718739010895466323171773675640629144303509686721732959878191634231771486406813879239114185051019704488119046058245152650787710505436056870858809912737608775674619228075186941825000324120802127531466190349526861677327504979771277535432670805075646067804516768819416823572047534416503986211167016605846501535179103281596146950323080962640260403447378339293543082150644657328514235235397942097215811836180397192588797974273092173553520605062449930124932289729371187907606803074206060229427177950050680145001227001832923403706923519484063091893822672347927051770060522633992285351605681251672668788060014174804016726152102268315793039523447374499427301460208136836223034420570598492584506703211182598038528248900424195726883798385795732184654147975847836110051604091565340422380616355221022112396241620942424772973373061534883310947201511596267015897753697302226900150680879259915798377821671007807596138715458478967398095365356640366298517177431324626006128362045114901219077031150296572417159546747662385525178564738299540665853573953732862019824733414006922427541983917528410653364030461325495225065744046948773341576145805549377816690264663537507153353327443394475035598850344321966793535449611662459115185908221988416821706543896857749600123672722939382745571719876196213740126730706913039874303771054319113162046121022845207312164180280151240524875715470838545031867892863553782109720043125452970457712986045795851476199706101059258484449207624256395207126526508859678519166195867347738006791795290491445220776323094139506876928086570595128640184818281965013277594893343125462189865733107472846701801508234905874213243707611066418974792997848914111182087229844491742324662764153775738296235598139612486370688090617023091555524048018321909264255869695123784265763422493622167684165919652947400835539163028237311266902227599127843824359012735668882732062312345394269239009210829903903292305238430452505109829696421685242010242556948054250739259661413545864294319331290359720263838477573478561115498606881734567602286718773193391911133629492978825041248066345860773382472440660636206044490586327364596582631293160832543788994456496021252190353177226971136160430042726516266284539615301356668455520470784824249175204385343395384634571451640847432148105428958892514693136227064944502392588519656223581073448493092989741375153467151866466823653152696286747779150464009240651293391930583973196117007546004596038948266699396372599550699723351936528218755771120530579820066432041546228733431075582468820123465133504266634516312625150227819471784932553696851443187790022034640554566411550509157441491117866492660112842049942850302737657427258082705862821628653367435000221248603691079267672023610358509103023396457197790409661282991194229702393728907931308121342122149962525592129356111014153991457468976098776074731272316700706871008856079913930128244100076038876559057703229571493397587201870745010723345502237585746198074833353836005297819153746391489298979115768593486582192583360917565959028733409986121647990686217964781703125263351813566834310149721869930179834674036627170669998002684899998551304177134983616141920117350357128425366201416416008829093695961016808898653763225193357441448566347430785907009599561579098977584522225973877618900412271145141574119274153260631170858718955105595331960256458584326610545878748264873109070733583660845774194251276548801513698391900384753543462536046168571180807101761415336630159903301219249291575602640098977354695616562360181487192861687832018143568610800025687811809485732791678643391248887393099303912652611737121767357645796287991297665319009243345718041573911271933633021833801030556804399677484331289351399140588130769118233129555489080145243054113436264040244656580862452248348733355445384413262930084373280029830184385753886983639458038287773667416696609952513827311395528587041007118913252705922539121351675250094445228129882384024036168192025360706282848106273916630790035915865893643186283449816493121600848791889861237097234740290334258862218417811182487737804567016348816281763056122229014012187796055278925699601731928039305106968838263871291583839816331385093516235091551162061447235237161877624985557472438060829546390651261515489761143531706749281591396535198578976310263039401973646961129550513506169762081716726239311197298122747910022421770158817980356274429785232931735116104263842707038400082013125609708545669996303044016538085562462532953935774791125005319274205581557602478156626616073612362896810056260378581847816513610945619460609267635575097239251357625751754249437625835685743611605177797273133333267137662236653052975505685924452092280384360712294087005561422391570669923239482967066320934864503028089735570730511864410070526596939036723564302745023405456497046746606097132738408712013177786464691864915630124899022213435759126482820333179360905871093072969117316094798737823334560793127769478212803375196715533601894697300225971414801115309624559856608556015725523707836378284592868106990235052429776111951741745842123877123889881424452744443815835053823859103060587930203056201398578595041077669515699932750662448574080650269809384907577684124005031933155959913257905125986063309708268661611688250302034373456183569951516585385892355662824093914520712173580546692720327441879609676115267439113450730695427149958827565700664315579776343840580323340496434827223060511817426050648877430083629453621233450655841002540982929423019957627017073816674273360432471334135834027619926560478622056602640576617854622049619120214865004505308154586821757029497026309503999133463962019787875684867561388102474420146628627034878271838104356298872417758501013825090157676744272558419606776087692931358960940833675707095785417239696830567888672914730345154418955356807932905573580029709401003276917234038374171265590818178201583270944080814109915246626643929204717456682740559440174585050836080591137632590372270431235880734670490534972719751606749518047673964322748240368683273203408059693447910923647521796899374596085897009530026956113221442275896345355378653447478517588692866334382157613556853157222239435851805707650039901381993761278310838641424396323031555007483635267488079101985265156718640173911827983391174727825709261212685220218494254470374306343979429422629828901248552839150758691590283393281023187377888935942319663822381517411499222576549150249557657758219584378785036733683094496596967587050938228088534148281115321438793451480658926357250375525525473813504646581755390589407937264710942578997302072023225570488155114922547744971175429123710662912032266846082680556185068910480397079694880194676362394345069790844860259476861337167631648511686554356654017166826280037336940352149253899659032040652741548012916357830495605280824313360228361586417016208992428559161749323428901423944621251788386322789875713924943975580523451525842882754689611762349329851407541516816018181313225385816714226488918009784477475841230181768118774152262782793555663054751942624331541092973694050339030810646285024360521595660759182179374632889180040491497799438261458162318015331913213587578298367683230155492661306694780297850456956905587967065442903577988512192975316895788167767851771616316018171701135534063122284043136257404859883712049766138224657998183521090196878630505958880596863041853066155213184977778549682711004180770353329028672896624220884900812885486174944345732886288982022581367272694475605813188756374903974933216241818854552195718801901507231574709246276674629867375703354590231795274443165374472471882125619766716166324578521866983422107228697695698317357074758306022561291265731276593573151451479258704085696236177754093119090619699714801327269601015367811681581087324029511769958803591607532508094533879399286926030394456577872428971220987841621459369252039174556266641457865498422037971453340146060547255710796555949195334635428857762804431304245535395631571361930208063780581842483717992765146989877923014699862118350292881593696194756443647963003473898616066169667851990546321531760843877761874733121217363274535995701402254335503278335157236765011524721465487430801824931099413610970185320728007293323710883429940621209254005971607437028409222660728591308504848871722575788173804624262854775401858264517640003022164672216687254404224078352640230695836369154954170131682806454114668219280131711101782538097001229372005552244063625025651404614729576154682841578612162096091789723202370907388919814687632815631181040849688989254829221415757583004107419115155988755348263493518347161345324968032359442914993213707873355247974317658030542606052245067572193414640683311953757981355754631564405162812566580804551111845586903313229265325824982706386347233103753647151233441487645410779525071739738566609903706626500497822655495028416938106861157463432776161490941368781905193108167715254243645586635036112946671837637950791620498655387246094114557148904600735858416155986198514550944987400112390172557387416769496521363006342335693564034474310747371582347654550279253542715259398636863192933445106864748077772970829834364268559708449285661852319011674761371768912353077943295439829199615093872275042363696571738364652128063424369122307399520954077572226035421608555818991998444856470227648840170962850333119788295034570688235778657855716198951462178091221441394424696057904775263652550430355306978481303342382122369262352267565349281575721552439779580112678336366827760152127131205033097904281611454879845673110710800602688733408046733402708620032181772972922367617879752588096118299601656387210009259613043034805317346784323437063316708746124244088697745601888733803975149295889800073552953369614494623546954714028735680365639510392313376970449772584799560076928647376507691287966026760112479398055171947193048097697633739007030753548190295663289032803036887977974635494860754689604036267608758144144078069949731748848614940602396747225467564449419474919659080544643656148730676885415665906402557976497772598813851836310442125712896534832017452032313491985305453038013000536578151068534087071208821778684815166338734302894624624102819192994262176894336867294149785910857225929062288043079194798882401868525118965550205783501185905003665669777435312782307524591752101439312813545515608609254881580809095615374365471479651520481395886633702505580404737534446283974429514122808235640778783589496364290405187655395797229710740862689578551586658246815926295097795027225277361149113141691011529347355054059928587589508286556053613705523349509435310800526067128767497423668654269323915993202576378785463938561476747900755693408191230028690318687848443375747674583250131825429203753337976284077236476576621138107534164560838602236034736088584610479136269931791508993029877513603506162302274168183532088569280085050478295854792693123170188903019206576550923187539432857163932199166209267823887962648224468710621444821672852179489198869952564516770477602653795995748173973437524564142911049615129981236186763255265241172636241990085587936855863194895779800409507893984061391990801258815114836624121831112602176781018682307173224954004223968354669895503423443128363949479137210738509858600874672125655956462934019936284502045114593513244241265345287730886935171483432652766346470585105120095117371061905650992446012992772014579618881849836839096962476658214482876983258119219589615075228396599900198669664989863292362257253946434688333870962855192853987488079628547866799993195016378961407723362988424442281556943836538674251778279674916395913568743680778720378255478225186907120265473632690404114761927678293157405408411253603697167964608404511467369383304364878765613651983735616956569915011154363311747891619483710381693068146395318799906848716111466560885869290144041085824241263548989681775921102602960165695328298284081936031504344598514614026538236966139628269245288936725045423970949659059447361163918792525501049988985054221303917778825819402650947579057644252691455120959418375594286639881664994925905888168452929447346688236113253886225404662860487943405822159194225522183000991822065291626414859871353141351958582431709197802689215570248628182857914929249260468845892944906846872903500411516600487161560524126576584126073092422904380386816390285077127427637229000256777602006633506004949046334011834398871286674326310579153043383499382718384544965111466388028694795180873099862821220765230143492170105541291284283998626214925481177232644795813550242098129036836942019530735178093851354604322035599620291966910865075138564288650369764456190538622722888058284670713480713315696664261341225611867433063282962088835898273307277589317113722045140608730006418840879645814371521540225655270526922346650170653126634119608998912893158427180467450553106535874122976521164222297465400674415506272694946361695000254556397284178798345396115014589953888601685156047347617285560966948494563103564854430690718378454947081911633838298366308404145887541272433082085107802353135132346017546577379444193509896567451311960045932579876932427886044210194244823952738894155060831031931734328867551445995307205785831552448364296870146781533859847477049114143531907624727783166142145787436849728571701496202598135735688792944419925125479425420850814456814124541337672988903738199590419641107641118600475675356237254267662144092407090690806874494405067247669273094312869715261499042034046392012440614584840451165486425196722393526090639766796734525637326125478801265975844186615439288852612866470180205466298120208424000993191919553103639450276059266024396709489700700907830796404176293063075661088366248881119953521834368056952829660205470619481511815667993512860303070948869022714237428443858417250308242687976230908602926005564768531586307712733308244835214401512748559184242348466922390677192798492162619844985094847038895720899381680764670368860903654199621315637733922200482373330639973611904518924045911212467082938772685855841105026539319033628710795049603716977300237032430886266377037307646259998506882743599228896756151800922739740358476786449088797888355888441859221518456177304735034517086312620775247489176722730079392967537599467715427757812015664810983697771047492968829411313518657033429707196827609608547929926183284770571653440242439167615533260487725574649905939897303046692747948897645100152863976143780995268930049400288748939577868460580411242068697140847795532025903769140809604251855259182578608578582399324903605967640913152480363860461009054039327803951674862286991799393832942565121948430105622210105318495372019996084239766813090090907541041681308186421604944900925064441819527139300795464195123161409651558868157029104990372686064435440984000357920750928998647587291603589204558645225207292103145596367288754943624604871569992268920346363758211778341799295612210747981705667808496161029026333027144311625096688320955951655365670612395055093969176370092529691900678674938624093392519258577035406834936299000804531543003533438367532371546068163439090827441498117055389214091724457678686255060731660970488369985543145622575572924367935876965505901181570812652852779885183630034998432107007820680672429301490842276953731758809765903759486802392201531708987544708079309679490773550953826954427004743991821371268310364557823089918998847054830215504181823340977451355972212295853308349335739092197754137346219975759300787367812451172904001520990516212333586221074392210954325273725018438066841270690004463975053710007073767994366305262062898035119987405724868249848447348900935260715791594434256409875282852436693460382650273154032606859307466765387943058464797742197608189972056095509472417794781441759234211711116009557283033651583079920378521596280673770806052068190265300035337987777086176532223340492465287032206190247723212873497458101538871723133697970449513593044182434232152294169238657578548389605834644914895026791492025042993788498323477908129984899580654266895237108928211050011844200787023592503062462540271539666421025794287589934603842222195291073364284994430978637864938010418280830029504375505981439927891361842959542218496176595851017100948931438387608618032135671052577404292383995008020278486309364358304422422429537182841454816874825764238939003560370787360283488833954746003829963187741775291722919720814163933204400006939061040846601616450837147614773895638249371633283597597960622804384155249850984503648417270835446224442139335030189479391505082784321472068316038514127163164231480039594650772477473293919563693097512186054116588434133865993129044221174067313776807545546234582757015649852263967669453336871296042983680890104302077226707445226118031238064287681905139707208735451720010898048188676602448934094277946599698305071805339318347224327743960414602492885991917623545486471645574622127856344295115443660691508645259459724349098540385732578497805816745930271760085740712589943596540210565016838060877293833480291966393977695198971280404246267472246211540406768470393444246787452126117511747349920259224553842383773464100472106514335454686620291431417531616431374714397030181016137439920886589396299592123481066731848942159060600517786072871666693821734257752155533696343626109484300555820406879497854619270786653715071672523636810499365728795700698417085582339164108923078266478950776404282434624185353215255031642770576195661100759252577150735698676190927182474968193389366225755381255580594703322062378263054366990774087061700133577127476766743772308567304917806090450674411655560580668638529208917657210551672656525616223703690815589305906434524302151423062149758459573915508515880662561939171077268756853452983922089775679352606781652048898457648884430759561976504956721776126073558462336474941401893522062344901735109434362270360148449657099937540354095239941762669683146189355013393891987338025815974348956438235678710506807661858437430119158510070698119295814823971507033062277185658649694065119713291494792011841627615954510171949121957584785096525943582083365094587462192001704032381317501129690362499495297985281978371132022828003774625711618238855230033404501768171082435284956551598051132683752486909691025445453133343299855413679096122384393239924655910760449432621994714545603324926681909115855083968467734111234449979456377270206399136655407731778330060868627723326109075286147353957594818613409388111705970844203482752533154286561664491266729613167756530158029308493065928087581262965000776490448489101224532962183299971728146215883226693159456582766247154919850508661266658627549155721163314583143838024732556837837455069728440067628168376912084085412048992431102456380214313825212645845946763793117989466006004563458215414539566478813386903022980751239967881294852070924165495487934757894634851532355418508296472686244793564400989330145302249723982922896908426618280817139914810591179068684364454873988752481210378348316067389074654302808531832582205443525831423873959028591957233845508889661246726027192584360737876983443994259107124149495344075946168291533975627225515030652502747882366542998641983270784792579740493082102296831415440529462055808707976683589928997079225411727889350077640209842117723766560413994696272539770446623216349847547574469738737019548994137352055035817551897859233780209134127723001172089058642847142588505615351214453417451818465716328476281922381334767848495116282416923510242690405743155256812891453564637111367319220398015703374984252696785010675341314578166256078434526993037122816869941942367240681514838710945452560355750240909936977200219104324702951916698207520549202932289150720649567485918981094012008472684561988251994956392133228064638030886091955253696944557851965170220681158920786303357246898118997057019000088936861008669738648687689729888381012220989059723203265717381798084659225571034854484847311019765247133358353757492304303645135902704293020238015314177622182627317215044388674890297082148745733831715933638507845698027983839522280369680188499459782948606719509229421381227036660723242041273817898683179810065199189013525823645500972391602760814555822518916154411166512386646744532648033972301720847823273901430711889841047283507632158147620434654840056622420296919582839879430607380265832334265044209746851801999887255146829442867235985658738796087460358777001980769109252720133201649151007019250650318546622208868833391777689460073921844055298270863694689020793731781149396414247661679827679594069024681706731674155635844415272011366439765600374711587195861050499852762636079398455843460169574321424324397707914203975434883861925741286157285943205862956857276687306005215921069284803935832034805081820858089227705197899686720613577895706867246753836173693372448710308222188565180579361214880447138075490917715455741653424492064662240763100893601716029817498116817896569178274889513703324206394100863777593989572351490878585425346408986347930260569815068601905316230466527096074247796901282742387480198267796197865839371376171374694095863041255643294246969042546801233832125575035700738408226402389028624501696022779875324061775029028475819527983565740966412475518638765804344266055586279445706832002090560622220162878426292568890080695188722952531972673580181025719973104463043554334564963187125894426719083798881213949906814433118073137012146930824798100502215859887319721922809380270286538795632169143476772676801423545840241390151361056255697548478944651018128451638239345154187312657366617736236736240112273315262627376803445032190849061146297053907798190289608172297785230544309521556150594558004084969113439125860259130150405386914375104505796871979572838332439922731881480902105186719997916987645032202185069366741825798866032315637723965461034548899271668452479867909401173658960591958499457923160383872123565702303933230553727560033281632299027707557156888674278128227432054212183806824361158748490783217798684873863122973826098909332305204487694152404411212013593488705134992993994635479241705867267050726509655850193125409415938701169921141725020731764393808032402064482659489844681489364958470787112761203055217497506428804902756625862110144005301516596683126678737869941813837679031300915441427747938407942781999806821797677651820632791616257028445081266253817058513517410237541647842661500060531509112148831501445945315146009474310035043743758818895183481336902332354121536935457106161843667398320728843888094911539090926643809798968511888146768545779060513534074848000537936306080303594498196568944774440627076932036061849296409384021534351839000660094187912350343138369715061864480990817888693497049806884792651252106462445408755745825413928708542456047295629484637420549860485644678765063636204680786713567940134175653127606724102912337495057079749921409743110070522551679964657679914948998480210001364961992430047162749513758595998939522193638688587841810957904680016475640517140586792958952500397050475681271328279778406541434022326086587689706857633973739953070766346314096852344741631603116432150241034259929426970241194611159172939642789563628657237565475233571613398552181311540697383564418001296572594892275380470148034775156250407644659808486820903286729476132066408460218141626634818878728110876620154585177655222161804562880758545932030381353868741527573594975861332808310378851920105354776922907403521468113471861552938910495551812786917272252561816168235075082526085382637895188102056196728258167241143277373000035696977647433342625353381054763447448188245529866491641870426832930476286834328384163574967029450449008345168987612591317075001220834947170331418203846026894747969924547478211092833055865723592075123102573907971246214420937485564392194130853568183036779853462599977336214618828576857109497183447360592588513841418813212012760217821411707737269938728537961136469773446376816074826733175972955012300700210488045955827194146745926761564823232945720019783987133024217013859012182710543498394866125109901276452357955648821681806427356551033441548767757998560344785275226746954514596277998545661362396720022094198357209682821830258043376622590338853653595283074845150316920394504017566224439941585592471039900492814214216293328023802569753655676530782303078057566833410671420341321653180557800550126425565696964623264540579301565549801311029266594094932467312259648891697603923623545616676824807565668446126286902719502493208188108326937957051730732757911158959408214070266035486459434321738062476976536834250023343293212012206347411706113192605659001684139762800466413246893357692124608024556115835476483589937206074303950713164720492914048326277284292948723174250928645347298811774648597047955115675606773706588107337841762775037115636474076475501648805884141184826664682082916836383029916491225997562125887659198068050198621569732801445199186173908078952469911170662401565254281393244982840245252476296158396446925255204080149729519899955971827632580182433286625306060297445428909039657832965853085326416950867750738545884337098169417506576807735281432635782272344214451385307408556397369206103688247457510736104249709784699427269298641147664484366727819739918977446649233519138920732509341664750354939560136846731708227303312045027740831131429133576695990814707493111297605601290611762659929084949004397057707541739886974658714011321864618337977420775995511751037652473341737941469927873955198109660337445071766029936182889593349578321658818445917109984901854778934551597730100976570817670127575389555822762568398189637237812097899868597297238010049396422687322931830849837166347286681860995727264612348242106293209230641384253033908891292596654203367636371936285016779123085733779546342239953805145919695633764875958831431781182988615677240535358035991081923262562020000642638402154334706884983084365118573341487338175383965479089492733001844427393074882356624680779583546150178436651362679091675414462285270140911924828819669378095650886797276664285263936362143023856937889362287175529486047458826470520710840664470903788369643219632823483268365120173708605023193031304064883886025590876149147119698192285750087259830472849352842300011637871599797268837741808300139274724773721546181708300226503579320133954277277060788541496445959291787128247759367770972492066893415943943699667746667902522554173504214882726865171324039257087517062178502880035031635299816963242535687683511738219203025356104683752514287740952378170935313658998119669838082346951281975302219648275304995228979495018035448592906584004444461897261361297436258295938455604015259128056836212027878804866674975345863028570182553113343376589500576887884261698459300783666352812651646554284547426486460774761100780440109218046406380231656524457359068659136567184655722168600980794006233728726765970859803596371127096460380292010904033794262011068314219795972836270969890036512029137311463108181170364177008452763380525787424488903780055159555308488794613290065947214563369277860444856446693161558301810182143341991386115813277302981326044389743112119532923069748804270435327941159943578634423150840652345674722743335083682216509867445960283395978442509369141301511942218033416429917689946664704888166030566044062193340453132238156690785542608361919936605277894773050019125722022117744747823681073621264380636450530420772178886359989939471290072491507694823972505225895708265166452892556783705144211108467922710084131742784165984678299124369930151787371657039296595581109344320624395828343958444321705752821999829382846052523203418878867895492941689430069981414957912386634441925619047967174869688368584403117093099631248885102912815987237932637055233620956530334409706214289027353606721036366309589479611714159147515451670837875713224765789584251500634549728983217956406590578473123498736010815664149081843053881702186055630885392918955426230678271337589523667656746964910037006164331615741607219944946152075566573442864314461368677994165460703904471533643496370182546945430021007358708905389465038155778207746972912854809327347433462482363257070501145882387436925979971393898748555290371735960057332293961700819180550895320557297675687148682796807246552425393259211652736668143761332942306435801744783577494186400203643351265289966504150398279327375702622899777046584231787114025876925404155328146550520569152868838206002649952072765830655199350225405891005617615515820709513983183394652692558357514482390579928417875319529945409877731079210852798570630078913853949430315096327850846302948364677590497147075458475399848342289084988008727451861680128566265204057795204827805983360006229774132002462173940959505645495559620579766994635153909806923980397596347096027388642621943545846829220521393259126560991055151425486378580381939867890114800176649920303745085097415051493179707420795923934824851848897223842739517401821253435752508156227145977521715993613180215073656180512260674936600511787136308826284848263135328657233638469966087577059631472374687019508551571443858537134874119872055919811959286687705328672708221627931901605260573290840832818407086065986051392977411297871406737516557101131191493945715840126308163078558149342186120577858449673209105871300887770233977696463620286629499038596023837966671319712093505690711454724188519737323676726829058344801437871607125985078275438967930874217108509432697117169536208024014917184404302886351434449993150264731627158208854373882490424132402685288531572410134008941848269461496532697434204436105766588189607399622132166557019106887766641005121883778046263328543611779384998744482720822011231800394685246278091079236999669874370166423722971916175681704901180963311520949700602637694217443739474628583508300874863499556751998604453096371941287670426550371841667270213130220756330855726730091321045678352340032626418891675080695536210901959146543994432812207040240522120604090528725542767337496575484460089648944167243291254106916591278145781328472311327915615806965403715166072562880944818709698639381181675993504451998900390755764969692048101896735576160380173095736534766477338416684423709346453265731357310531416655552912151120352369338348981664296248387121714758402423141026635431574135323596552796472205541865845500596172411502604913900645816225754591108813078369304991247355667949243363817913676065114725123349115769660742082870451963296040089649493476912957115069312944021642767986035287530643142046957629420137619381230535107290183749834779599762533592665781444167311454386817211086171555044581302528526075312332880655456378421264901594620187827871581856123429017221377897071362190194122725079890806129506017933404030627170389284656035320603869873354515942686071546972110631606165772563813620487407667552931730332758206653627594682258380076744541835873367241858777724592562354320858881239473061652400420148458972519017718476845924954703607967584410736017329961918572597202571385310539175373060874382456858562088170691312521705159947966745267782600648068463071778294953017174120389884554267498165358820501970229460859105033000257614419447750689095723823117993619167005347005885538237841633900761171623945553847533854672312574345512067216172502597946385103462688681931855766042796489855725324384338538003682162911842320993421036446216158369151265986230094540842545542791309134382533021364009215310859268142762649726267756995737574897481884973972034955956189703038580953968303297927079007154362994440667685275926021043282190377272635373240856881089026378530160451236807166027799436063289160339097825245953949310359607632921358759810109829098076923550750128201624760402702644414837329401213241701544305958475092430200378988495130661455385786427268185975408347435468576458687781994700909266293765229988980998954060109223474405025860603646412222942337850176586335584809735404692512238247985189843436403040094963795742209897979085828827693140800304431871074391138804160820025943601312421193815169208776633355778100011140844351743541748372144178100343442248878655796153373860266247111845042394479302573895413255249715353391244685480999898405533132625420612724683264454727333420646203441898613599395784900063269500671819460021621698634254042270915292376444067897711782327874663760476657127868100049747137449629875716131688451214340105899739600194403391494220743468456146677878279866346901435356840998900271967726871684838357136645768032308168466850786872825222592313036433073732594864729560542703924383944895181459836379951218385206637139105424268452040322509931119457435376211022224004816252943240260429487073633970969771679028125470348958044405698868953652845337213322829228316244089078224264816608932436999921345846594754273876712004807136881231696875175342874080939725582210287993677647193913468665145742411689385784001665203431629380648374510818338620951525412203168633110972784465676278325589472006433083600876862781981825803334286924407549584263662573182699577073279859561753096597805630025947994563700623619861298227649308914310208633783683493684924897167006390382031089058302005359956985541041421631971583817463423736462631165736234761396028835952419053375638488680264296563259139916932350562678809095661231564169587932714530435780545249911512793819111706131866789646389116774331489491206189556098553315860201364441639133595077248226672478164293798849561308524473784707286704425825909852965695612540078045233523480487378043039521901435764489530078333776713856974920915309382538443858601740479137420549502714580726870350960880654411637379837951889499655234223807058327974066305363582231909343601010906381173200318695479396587344281984704792684997673242790937355316378458868642738386080760533586479584134897851039648671156832634195011301021756753816594309728451320368995094449202693112213116498442021364809798109464973329601294003477159138242567932630151758490565380601114570233550975136683323234752951875493530794416499291561853766880446119177181328143252397209443996775711192900214086439514897994548979023712665822968177727108945492467338802618253268863632854444515514309112896920411410740715297331099769081052883583625240208284000997198090807581077514832803895664986346582344448218138934185700892900602285919462847444452477451647107908383255146182173382564765732707094889654259706164355664561820072509078182943429460690712087703254766891643563838723879893363666227391865678053569606672361687195356484608301389965220283184530829745056545763247722257578342818700826849221478363165276251248858180518815215187730412093870963384423889234895672909296512558972228263595150848987594856227020119318901565577947899392158303933475628899801688321278781335128543988852980164522873022080251633955430210952867432414672135561487160568107037700336161349630686699077825274451707468821752300306674247940904898801494104585246958970115546186139950470153306211832094049531380798045089593193379134634382806031873528593041908246317888964092578534585515104339573685131694365179645840344306293665895343894236860227939648650073855732789533443683384205801070754317942332193959940405374702387124603032765558168594368318575020526909701929980938902304161865287103351829558716306712580468055197019161310497874540579659545579272217390271860973514905997504067581177177936558299893734063780707457463862480080453071832101672683155175580268709469573475703673476794296302131652748001277063067838115914043934361804362444775070533712352757554386017000291192424244925538018198762512068716887389411678972535161081829811982603013742335606033512936905430507409170817115054727951267450590107866427923988521839845262041955182991867753716375364957858231769945998345807349873986282188369427313156829648413216313359185543451547142381490277847436226177065489004887411925489490919177517577095950101488397780533186739701446567182652581196511307937677380120231558609869121419979114249200760038327980884469961533300342839140831569406316302783495220571697140583371402734785197621669719925761044356452005617059324713811761051145263201634457486000504062753640294638731142318254596131516177573895652596698674760482904317903511879966332349975499959039998486156693739227723941281065995738444766267253835878057924831799845860653044988348553435236055855499277282323636905311249052679611240918117064431229353702446886499466643285980042368455532923908543781648286801085381398778919569947535182179167764810345212183460492075372740673713655803307786931150016745838230766188635362896666279724030674681476332907229727797524045736620483792367251448029635209303736912786331687494698581049561743420165627058480929043231732389006215455016329155816965372425160027829352770025634358968797427221775890285524154473310543218366611311259616084380829361480241713393763744614587412608158474425820109782669760243776840151314949167757590831127704252440482069557942305986580657015447129632834409465745158288666251940218543258968021041004436754242785994191793509626957456187540149830568273649560609628529631555591288954603902924930198932011536443050291281174593322835795804220389724735519951542246745968947484603641736200707794847046515595151838286808529185890715418134788411139684877865232253212126993238472261605992083841314623187403495743234806348100071884264352166253379996076778972085814792318320194036436031692917447439800950256456466458598862890348556891137570814578440411250526516308033476374021299814171651531292314478047708644749508172633443974950850669747169579136660873162114382272992285835796780388288659686472341998251123490868137468201153671811503396419131016283042894503783911595208226000338404957730721415797864260265516402849209135519562500119602219026864224500879092075385339877324042204879653557369661058057356892900463747516526402847325899389091103136423080115054953954815964239847869856105742388485412874150169542896937107342050219646115389594958740804913538557426771123620850266082729847843633047019117864237431511761008123451851720596213729118397693059126416191141986518881192260033201740396795854180464277943912377785288549557031758531190177216179018001647457597556458084066861723191682499561602203582189871403782977336983394363482428069827109860146853388618020231155947056333915848234622993589136415560273661127122522676864464069032879582675368207837849178924781201078703106428660956865814951766456677376703484283962921612938814961649085886598243562746615065816823001662409693932219272232877770908304147588427227400153125410067901939351111583047475191672934570400843231841735430408136868850605448041597698113478978987246913387332109881747116987464594448898377218605124857807773633748589278629026101295134842311017289758486223221476437348386750968234334852426630787732563627397646837968331507769010692184891817201907430765055615593573268419455317744356295474611379432809762573160002652319617361526212087658384445368065848364357838069372359960576615911084337757580931410360887419977499849281532761502976437340102788637677255501268299025916575463965491770461905494647606785870631101854755187931941679551478801723687923006583641187558573648477556013127421335301090514155651146121294064203720473562501270386568772181066006760281894193697329246108784404566586173414573874256665113134704636187203268829976515135274322204260036395685040953350974356612342936115986824197137404283880781434221518598082769040198214148388686532266244008647537849401501442783180769019312887865583185462027349600129508111712903187216881230302443723223274739743703818251593172689497781129156770575713171400847012392878158337860450143854934310114618585615471325006757821580089410011597178840105038294869299361500615362409346412984742785919355749022883328920751045562622088602140910431403139947749652467808329846206469163624122630699255890845539293658264751058741222388431042572260239741365244537337859922188872679782200165961028480404182459516086394579095656411371426162573949189931740873701978101480716916392147363617409424512296560121785966803648833426978583208179715613436954006608827684079883833893137141799807414935696947726777021867540828178540213095091416667677776457301858000735936050880965742157149350563509078172351258629892387929099971352351612512381639395210259489768894119423470472570690918763259807294128463614823364029878420185938477327402210863748340050605006544101457289837201738247678421885106322606349987560205188603110418905178893493387450979203689004582020538774630487249391406453440709492352449200199641363302465919596052554565140737664334056908335370804645448536725480314264264804652957658762887063652367423988632478397393263205300603299028799006626057553750645984677176916385184756405849035489656380846019020595686911802555618675045805443039648559811298053017664759441410508338418132065345677579046314593623891167842885979573936198351789139435393298182854074935054832463201116701642876536772036237958238906164358005146888424388264010865271557245827357276042339636293501881210163365328287808087476164075728318184012701345909588913588190514860290903491460473695316673168638381482334176748472985039098940654423969645747882487128753022761767054156726395312613862515990070870229688068347923916947388801161459119410228866905217233038516253812229723165516216820184817234619449699610741201130765384010436498667972216200626365096974452674148777371448335468554782630017976303757634607184805289190536354521356836595380677278080015385467390557473883538402510628009681506438394288086260193906239514948371602634716969204174398854305446997627969161786182233953199209855393132499838793574697011727980641052274864424531790932803247252936603129663312930178560810542727547278350643255269698882352695025137848482726800343550736974065011677390865970120142408834895626162796142458868596973924568974245428239832829879609222587985827895821852865122645122325121734333513898055849741297557740554069711283099793158294864620383495781593005392947073172620784562433346695017561461976347425768615616057562565816440343259654342346001979414726492949109839135941552899807114128237243475013492706490297102687477758780885666083843487810452044208776898696075275724183699150340760841963223673278716882117054239762772121547212938868174888416902047395386066911321551561169976763876802681865930897379098649998037702823327866808393176864868762936880730889813431404048135164383966618467465885097458238110661369144544927473368463981111371327867748606280313823529771348972095856638774523917862558235267717376746734373422429836376398725225852575123045443824639509734765903148705092133767060537862673360148633109838914879172569622600953620086118652584963106561419138404538316877091171682602118065027359524753307812331265016753261895475352657360856761467369522632074713201679489030647122314569565513484594147827041848064149676035775295748344789386129647525912288238591358121284741343205251689192260511955626918636369950074095844013126898855916808954346011585670953474564467559398101896134978944576710998013490663556945246777791064488371668285261616865916189529383912965671179807783882606352519901350733551351143132237812247319004298697676634479796161216682857477566603023543324360895473131274311200939499711847746706054775631678571472461267298185208176775200459640342346263817174441404037060610770869623958352308427004497329315994725229951465056021757179783877947561974134770897650371945468051001416876767990377681531921423597664754920994660546695251189808878859007691131623902962524199913904164648267304729511869458792267473384936992967591616678696518463618677742557570187909280925028697883353213179062030212390137312776168880226867084474177797993450972887644072044643360157704897733287110489836664855802485869409945413451243883756633769600504489965584889854958381184520453017241449909293972306963917939531200914682173850213180203096313187905827425864148180730724770828583979981623455485804382526081382952079557816357571479355138286148135614523168140374851935661044341698119983288372492569404210642869805385177799775685985272053058582004229455586312787804442046387258384254907698737784225481387035761043498357718420114897285848689291812361842576660151464478726706746635079691483466891703315113340338032759925278782171183551258023687133061343885778431539957822430746566046211170985095659978484719498408551473454359136715604532507984961122720934946114738337203404462215911590999753151486497375433222373055577221425118907922391237287434250016437961833750699462265059398684194312226396188939372521289322012855904787335371909369960753780536277177226053386811948221116278088970866122624500955137249959870645954154863592862256511274924333699063860078771194149876049486954638071370792422611118141686862814703357282762471387083971201357104836848112292122375552376033876348300876384481956192337306065527838385955047697907525805832412809108950664492812129936565837802528989550155432916924584201113778819640421323913136686113793009447917982633574097428057687169611871681226838477890216254143600826878501383138197042841492869148872533539591908308465995068302652973113468803555672313207448118131463866144109176615386064403483826079817854943157586515590030918726798247861449547022971183159139826918186407169977973520729465620738735799790591065918768748167444809822597165204187934387941648218467901892081578062006345712155828403799910304411865571996349305621750769875481758671948087186000642627534253873467239970883245842789972782286268417002378832332727346991528421269482127318604807150220591509471386931507561117674995828257849205399226145817226427153226171731721946247162949000579742212061231330844529133827844799716370447599544492056688036328808910219092736257655392238203504596644097300982006095535105461921723783157745971684867941207880725962511476670684538472007386413018471508684824643044198371565684427526910869796833145239315459331717371971289665217828630771170315531829530605548612284338072925728923097330512064282039234727635216910447721649013252108584337429753957158119292853827918891983355777480641013715837402482117548261735533155815234707587430113223327954041272567189775032288137930991417517100865659392332396150891745555248838591059793401486893056993750549680951604746677878200909146043293394477336065821654919780352449070511319275785389648430557423534850423689413885811639958926442120282252888867352457498162765798945196125250214351810695107205871902702147747200938614574693079109691515925731322946634834543833146980041278659031434283899253361037706575107958965969443490061549941535107051317714371602721919953235676910193799544015175162832952762373657556514138244331211138528965471835511248561245779275461949597653566921360721934588277184413683675096295428913040119083134756339508416630920188860698183163375719953048685515154789882503676282793133742937721751307038207082175826959875490941490651971378862778282309635288379455922992558449848087768782354812441097556593339250371071983158931137888541977111274377703359512194669004442650734142342359486779594849369903364967785039951821435191719503144099620065278983432073042266095006653586627762339328921964698587732820843391530361284527817624358098985511820733530287771492735160441333895737412206387926292820860177932137682687008777654600300761124792873862867437665164249993624557256263108265756047913245396322735436562413038784970889252159334942746901297158365166675863729184834549346403432130273639869913343373755244332501302989525882825974941014377375650690572118792628102896234553379096235263600362816593421612630871034343709797333539558089852541321302765198056819059985950720609143522731296735634249018195043430074986065353636020239195294455440957341940826926359570575144969692909408362449343761618725477382084795187872138237833620317735005151685544838389445229454541050479847618065599190591533779946855709315465804092381384853963585198816844790132380038618359987838558774884893351282786499822748854153982015213557073593569718399083901072449866638018249375007512523074943645674435485974800633811530263760122398023777954600103758393403174500062596700406850127235277630598704811443348392468961351202323951540527691082015213470557585028973164506537508477354341091602065510752001616388092807528997565303258310811709542260661777797695296457895938459558831279178977306184005048784676325981954762245983862183543025437135157213646481801837001143704241034486986592606951206643988422667664246596908611154706978529841741834607882873717736797580890398662884316792487258048110532805431295718051813184503294993906732015919207741315649334757354300331714247954023326184384422321254233482864379149471456784709748218157709785925798960619249465128621195948964170242408076973824000830585405505953555128313564442535565217401182802989250257802045129051638134930750615562791652702883346696166006644835381306633304308195346218374472785203174340425545210632184211713053125702906916794307733018846740538818644967629279848790767403251793811896410836737961099281784841796108143259159531081011500410773639893287740699877964146058859620415631837876921545643300366931689392205373137515601060978981311404018179344917235306062946993213661986672129335996674909331005116747750233159827821453855776806565379242379919820596407938795922263551924548556079874757433140968287462275181218972708527199016396618515455852179727596084216280615916615647645634069564000359891623902033975824582372033127160026800573853128519766595381711209979474383401204617639022900006616262493641429487656616559888687099702678386895695054029405925473525771758224415367345519588048373817222577190349536235151779754837965930109347636246930977372425472407601686122647487161418270355975162265167119768772882174946434007620050425947363238320971407760989351802763965275761411361622922298609787859363289206910478149658897177022944594168704067792979210142692424270040358323263975410407704737762005378637961215893667455801331084344532201390906778601560155788455760389448267105839119147480591281713172303409358405783149444301883020779878442642068192812777656073407741649011968767712881430100365954577479163100756165110705524911053296159378324630283093565305847360381846038301832302594570157416327183202846670895656277333975632834111554017574899704496647550551192022605751908067257381644820162115874074048954084058388300873488533185695511149584416797025541506651308014896470964475262591094153989119826879551422748987252896418446642722645500093803179255383022021781116785943172743562678593636376369793207130812617190422033870739652522962641098199985585367150101207445461247741841548044218677929001905528284788102660487269577194007966153005561288614968448332832178080636944658848375746170795514982423086902872768839963883267525580312892402045184468933792378631171553554002893806328254461823880660528328536005091915971817980218416042053919600671460995061438620998645050970692257076551159865873753524541535976042123300172863624573609252999969695605259705470284817883760302720841725647978254669076277811654618153624297849245266118660545831955788320149747635317224205744620751991610350062929067469076266473967785213872904607708613622645700907358435550762567164588163458116274707723761429025119966631548772636628973640002203166837970185270149937246872978922023103486998353936112157527944516763720990665617157110452564206215265228531443546818535933570418990470404363311361191105564444393333216262075909714566531272142617111588712635023148577902073484579090454710414900660783976246146000884403471721477235334890856197173921281479319940592688253142647214795224693560520296513605514372102341196904093694838799840697639708862610208980295483840752353320707253935450666964500851696560905535581590293211325128128071454689037735221070854710482998545247638472969008363248452469930409259367479676542503780835094668016448796300332774120094014592235871531505446844576252519560207008357658170512901633924287505654552191743926292730831462547155580522631735255132289693485995611907119226793404901346572203560973022203544504847250493638614867464902252455169392451522872553954584205513182546130534173499773689864524017393072120754941903790729797983793449640508879981597872270221141718369187615088297856864368061680243584239978925251050536524513486028187356667905618031095527048129077158993499142294361392005248414069045251692996815596252255746452474533686134409508641004632856923092979604984118370076780329923399061377313111818903504398988858971421904954698993424661905011500279697155797567693387995753228135198695061404653364558147967310443431564861981281516145514041550470522964864864435344705857413252663488798682292948846913267771214420674819180854425135360137790295616812317376365113573426832977295814560597054913600988387263359812238927557421445510428112091507277669614218463821588195762508601618204036203248806592893321338915066786340760835825527763457647271562077248512034203905995570941129000974444376086818204926752081404543873768015870880668759547130902661207361552042665377650443251551483188210611948319793047126156316143793980208601196715350211979222177820428069705696754926710087601250325939651321122267813352501338779516983154770050369975581213929687827329906419804139477632263188985980100018773310978193344587765312928316479070695219048075746926516634983693659243654349750678827749253962846990981366896353500536840547572879790195399629959686357105159000337168974761344508943712173253841865984552110302413321676817361878169226158151067455559400329436507172989812192490814923014349632376627230585066800094241395132378249985799081395744762969732723835097962837576716701136898581154408737375423881529232787891121922885699793770756583723684761099361380186081232980192824957746712066783677581830342258213530267133943372357128047864395482670990757114801877308076475188152079182745042692538280078603741891481446523325820172007524952676466310252742005372655952568987601483223278380969902139268382841360672846236522279249141410849621780958961088807962855864333482214890694413306108245003911564664272845017182257340344118409499193193494527569388425188743141897371681784540730065375050885737686628887300620394413319565011523574443990748542458933115299950543443415563974800712599416439339752814712824193476764990794341115619373712166742714090728355511202242512071679049632037409692928758369295813153239090651609596198659958433092896354950197707603333908645810488783234603992280534402725856701740156047247894372562722549498951613270451843988903813177720830011586877960055531819348784203639802671744238855044814525595723294518905221144621170175573263514701436878860984581511641491712686493415736039775671767306254029805379787572086750206874013091512185459791912518289557488813990339108919967413247022360743407478016656911415029383204879457846246097601610453762669051912571228796672695802111674773180114264187775884756741283035823687385952792196348832102658478573028794480174445554405317897599830420237354586112560487019924822146997942980166074607420282135414781047095980350567224389150755780659168397700827752054375346944825339290876002859535435879699607962968523295223616849296983450313596716865334644266874808626060772635175446344033097791061108838720865980597138626746012844277871537736943159150498450757046191157222969156341229911522409148449263789382436480510947399174275882073345282024236769506245027425758089784710110440057903899309389136099843654189378425244601922143705169132715096665553606739132580253791546329471359284971900242699835512545424647431544303487255424121739675434200082843497363186458833790353888534311402348401338612071003745519774491566037474650543047273870257083484906341039225732618652431580326867275240705297053796980413412218792107677626657558467690970032609794650619950656309496054250684133897714263780977715101546814554610203525726620770070743083033684432120205325889535740325751113201156609602658149664356568521881469325872963058228921786329239750987848798493119530526554365242858899701118917276846122035829155976301542354524226828272911445853808248380191819387403593954382422690214106955665133398522319254664265723454739943716629973724734147446002133470694624648001782646373825614759419051331552478391390448187345935588912913726590732581905459206893560465563465889621045626134015272599591536570647456702483442197551213798973507322560064606244277691882772166590520916180174852185241330682600690307096111159138130528072287237613017711953208394678711114682694342254249875486420405698579354962293137996255106843980127555128048727113104065754461858507980173518424033459157202410855150971781871121330187393348119531042193940924609778224448922538998033024355703059240436306396421731123080544091868802677098648214913831275798847920416180866474718311464965891625602106165352591075630192255422427136042576803494645958011393402501249853883110220725214083043879504200439842233593602907972630900466983355148972941847572467813636236775140748535079871079397749897697752581927843685591456235811423882680818614244910734612079998200828543965823974864645619404609030826446171347451225280085039604047410590786539040914882969924390671507286384483718880433790380134137597278780644899057850358662961040177263896772526473329269016523864698901867173601879608059413905099952393674174792089466817265088594688772052536951311507357721247882825333412554853509436041599552079286788273476019498438746657536347309014453929530838532034893180159213377106077539534775808472430247861704225139406444379849339636999716127445051339454203045499391375969341628982935520660569266626256825863935723833657983713128208476868365549914783179889181428123123043069619140947898177351423059668784000839428472219193546812821698966284855382995377854605154629346425207690393783999209451093112519832495608706054835514486560571573119907559262098589702193633558375527703213369940590872800248369600211849376265984508441465181781524294340305482328640311418252019647475760496905737921856134711368928185819801352493014081718746390467894890488341694193327285315007037747322668457368263999016120507061111497629267967201863533035531079475277965635228161406438027350030348357011265251327324040819550468078460815218074164010526465138827212269752664771688175508575643365292097839330680518958413350176475758275585940542718247876601679824712394132471639422400203663783039308693285840978712428754853950906274887427344089971100756100969798695538563597328075317041186906963573688710479186275692661618821992940778582036981205662828700337133358264858448283402314837210478825985054355823325699503134100778568036671377775252836197589931314835535203430471600677039619911818800769575538996347463456450304893337206957693886308437406325954204068673701139635126371461085374882335548139312616052533947729130862309318050489966136972761442133714082540224751651602013082548844258424415126553257032183655800299752213096156971471970288365513500985662905153984486881865827920038114573434678676963548949562191300690077165359228958160368422360030838756818515506557913311776776216805114500841191136606445712103459487833997074189700147617198023697667185599525565395635838874843336863234425766431572245790086487458961255087244676384509268494390672826471588877010138528455911822543625954508511861675150122161426483083114523314222116942690143335482096261638656963284680724199196204970199732294025527341541005506888844397252059371290536767541760179840721205166452405609577569786405974491536092612303679774528919008592342188546468268951792212354441905038378183537633962218454438892936917838871940415398561940774867560140446555297369722702175927321931516273125891450134674015100053099084713191621575359954689048589708949864321925843001278181134326308564208456630010756864818731340397706648151374784969156024377675283441733351736944688821300830296461016850808049277759568099633369283990085475448385046096874019830635576499912174864496277917998210130967783886456773684248214071233644479045450673986245574583186052121479558516022439860533029355542393133180598676907206014613552873000938428104234978578871377048426307729830023006893060226656002411893080970069387974612752326949464646518418739643060276941654941569347516636512577381475553541269269483720528448705290225740117656408225908536051365418037983677408986786495202583832377986916881145298945675064429602232869685088903616824558555361307011063675160795508852232986723428252708626936585820968373773279838458537712833844297780757348839206702889057151472887945048878743824104083605600278290351634850518670549934660480915448105626160363405392711091732023489117276259836707414525428214617799652206857665650210984826260854384201058355303354425581077667249829355448880085949110101759799896034522602661560558124423116292218850491086447663409910102800690973573764119586307500640482417829149669254521012335247095704657393623826228438811523953273454748921882155036400702763856883909621523254344569494077193149540745343245807555385195630943425985193572503635027046199932242050043765861455247295216759329058031466278031473061510236109399967309915941082939041261397697323312928839508355676748309734575153098421093033299266482938314594061660184059385941299023400747046652227563730547742771913059349139909436674602267200721010300166054953896870451559622553650599374675858665258833208396541872071503337440836075409151118234779827128377489352196122322772195071654904076226698114677469334436385745032543344282829223329925291200641930798300603958451003784923971885790934254007600217217561346591024224982962561731062510879789648138610867346119179845590501032112150798066375599199950176870398094628881353197226158218528313770438722258111089916898919413955043181230275046288047714009864088012306553576857696909355766194294768610191945747153396763783031876075794041175908805858957740972848413888329343739647022536518081335917457397751100573792276512134819702334974318877943212979442787103471756599199791193435254019075719357141893172818511982404089783668406468583623097848427591904784731042264294396761796679440921151160513956145789156337320143461601956152945531222965544295347549092606946738020642267683080649442191953252988545659046115180020264100966410972362407476771812712611429769720791778433994377367437910275413268028433342381080999349799802268142345832165561642840626387638706064764247741872104892998815624532968368875830395882167356026946865535788803757068378823803132020921054537669333711623152110027959143371870248530201961734523473165871680529239271314783929286419224815911072881224476394437983529627274850108020575896107713118287617720745404183187949191583300024306465810507965506058168742317317990919664840806616668072035711918325340952731806178453894887964972956407543660450659872702177159263610787875262282209375257095151309128009164452990037477671494457932529380738662335558441802669593845521333706403234071642235656125181126975230693370129808360961488400356274324135774953514541129340356417232781063522873234305871443542306568677696904982113053005587374047175487731503367078324367191086206302357969480911847520849828104502563123402793136543710193190563748465961606162686018649997741631992136610805482007333040445393907895390775360045466587182341832142682846186050965435175040244345863656094014435338704158145021917879951010416501894416913505485871415703462098375534665590892842694359468829982239764728693361073352312159772816014470919897308956301411319109006094901640993252357775637763108714478544948664211546568689692041437085070152200349894011858135036933124139619737310066350059003340540162934095778543129143103441176523768651874623051473087145784738935587066494518174871628684841449682466703823912857996735871934335700567336412281630128051605013261013221928774303015896174270101221493085238267414859517407317804736840798849935076665491013042240454925758935451536181851427626377327445817301933602625466296610296825577737593528477436538444647903432898516892746010161210126147806494507201109426976877134740878558574258200770258605972845872296128398787376832627402042713856403909818099195811057703157780836454906581070589507417396634807151591671808928826903555528919369254782727854476111076192460592258557390048300791227745042985753682118798233966432922840481634848706142838806331136402581550901923741987407648684446251973075259558475716397085352805546262609433358867545030160435338132648157067770290469521637457849333744235880875555342011619768809015762107449950499501175437775364652326720266277415199081948971074766755830969725121381856662438677238996504624942202353478393203956300012072878475424993218879376661582530704688466815149790378100056422960704371812414934994074044513400976812944430539634720233917802423927085274028353764993186979089010548160920762378877933151371474181458086512091255334072787488126589486552072668113003046017135710568435483068956365889662302071446427936458851724375737974454228828136539492282555451604023937795991407101256810886097172727040703533347557233728194484297257597202634710809047700179458551028026416634089833335745046863037665169632641249343717980205925176413734392785633431222013080551201384082889919742752871774887065212605598872821406392323068599875851983460844860062318496465587426894176546077110168384432886960735329028422544845846245556542002247230316281597917472716415745875125863856226591278042398559236078069501486123060705441171321654816136753265457880978710231685237945515173969259154381585028208644554173608595424889251777828653583170655161116001644564470177284150025832097034433293356154629078946117697113001604145254376001136280004723399408755386022534227951252207295271868740345760512262710072462418621651735093426167521161084925348268543347723759248372544266765058920855663289301923689156592688832318393577590677644267100948090180157823944551666628216895460644414189907468339971283204564270877881350404112370116082623036824967333822420746561375863420496151185418221143344902641494681803710322923687362500964443388909642525740166587523116897625739226450231417519385164059907585475185173926036446577225319486215797407561208005038084215236743069110012571027421759851652739276713444987863832308167731675815835350035269815671509024688919153979859574415929356425949251199604876279936457617642729352489705804760109051025199100018218281778700422797302404529367678497611049066131755855694733122117546935191163039514413711216387511578422353015318421755936613115834568957008725826561360330477286853345247710250916598778589206296307061378328483318391477482597932003405778858223927606630726611748017734557109666889640302115948677434532428004440656049934128208124449990058886016882529832597336891004476652762603958865410269024109559152604704290701716419512525630882501043050646955520946050660952045583466482782314550551078821455728658475979558787541028549357581759447792730588730630678424137436713551764906841466809030347503592706746681203505170951355487810547469119923873840517243150754053032216458220402846092900507103269376371927032117331216292799568214931473183642371006139229432886362200964910962765704686043108625020524254060473422417583756339963861842679883222636754850234741638841075191213102762566725098505981598230231910702060788599974375083820321693033109187573572569221162268850902921957896344786850135499450681317264911229574031127092538512278567536318332978478435768811586335745817197379061826705144920827327764632237393970314005836049919493225497571045878875632563216459140982703169224164491707381720371565841390719831558251182912664347904820976636772209762443102956390056123537465284825180283975589390735932321989346992414000647891759944831340457176977009898370388876620865599784489104644671570697840236151706401216789195859490823679224466086177467609653374313741502471147873787728457608833764687873752368473243601776419012359738879632420245364010413822319868593171934790881469020607058506877664765655643998192545379789969867965614526431437301729315921825616417836891988233875183994369213095133596533912077939546009693850875083199498746851376487560623950038228594071904551277313942645035303971297856897838450198418756170711605727810242563564742752936792753643004253862316276848224981359262171384821981700431073435408209340547771258268392141099135114471446905546520077590123903799706193447823815327498073914498188221736684136043540261970360762475122918060717276389957387818199973057585808851310243563867348305186739695040518766805146596527204090261929183620408261244057833473205407623188652558282492502415974521975071171130518283626257885059233388898504233980849279181430634602259863587555924495036393498253015776453942578261022402385894604769110985588407591034218372679150584072143117867123757120100442343371775047526694975123381399461729830052580283923952054255664798965315835786249458280315114234460726520122186483717352553118894454918076950341947271627393812537280724659609840454324351913828742537944468094360031684822549903528230481149980119305829051727068497636906092102068939380543208389903805912836215302278193260615988160393896396357637106001845798186950955026391159396649150804301328229634724262882700116181713058235696057611306789712589117532342839782431492944868786949951623683759108951772365806451038686264473178603610052935232561715509974808087415404702764792899479934811133499248538263321858866100574971844192585233024135206536156415629732081235864821684775061281524782257496778756261254980134335583429468939528243172409308851528219490966858222746406876764905824225556432607555970394589676955493634942171799488971284587873715505394376739218459828087810460092596643417346705726991380681004589007395700131597865097858263929457192164957282304751396835226091873971528228436814536342583717071052210523995192452768316776797257802929028514073651663674002248288874828723018729395612681040262745118827027263671748714873849685219671204866964605735334976909813602301981031235737814713662680913782589213162218564086916858202240098988291684554846756538895400795580023024634787575799311500772336778755437035709175969649692967806042972215054367223630603212822118160317175167417594934547647076299450561760769485431132169222017637176692273383261747945282330624840532548630699025895981412683880172182400252594759061342009984024760208617415479183470346851490742679213254467211432449273369611820641736508941081478193716389217880967562288414444921621861544994228806923399518053144139976624983571410562708630495772831509619074226663543897843429127082362707114602542494374559547201578402173591648532701901518743468755255147790899408155693723170840903504897862747191683532165204125443528187781425427878966563924073867852016912028858043803006049975805518190202085281890449392346340078621223634906146759136349773472927461717837477626671407178212731364078914189058228929017828438981102219789760039305877781727725902125982094561953999126283132863444342252058544607718308457410055658789263656534928721858843005046023915760435490681271757341059735811604091763478862573170957864077458655613098014157024996219352400675550703283218392749285030183397373669041170317222766801407826180209857469446996843744373855597519967091234882049650873526245086971912167279627448853300267436377707361958685301819347794862086816545968505196452391638314025359787636397634973826189011764875010242754570272862593230268600560735646171747230195170845942740019907344020606927218699269869627269803736537027934552414408288577484392734039927370692160476202269053272321102132331685915392003486656918364794249830142232899592234635718112210625611984678659908475209907633373184843122684380624904903600044108551129578016445622869713801717942633893430703679000645457835799667868435849225130136664076396228331636597209967392451224481633162566784990839429472802329885600649031574106470700482107578879643119251152709481691967207989533268483658902421998175929271874686246899715452405660295341015596587587633238616681591980119371908615537290015577317985661078544248420354121455443509815091604439887011578601715532776050050457419134079791883792427301520581719718519146197894974518357453988357196641754558510186024287081727542212018239982076264045534535134612853740491229525336830565970186505887869408212796236155593565369937937179125548617460342961903152507614231675734121763088504013867361071246660366937562876124846612102499291601566297119312951437906706077616238496886410703355302479846349925413112215981541250701463981844852195192256794648909422414124653245080845377084318381820796075281325752918391206089975309769988041156977781959760589757698691502539283939278442410053100989746098085154445942379622840840853171182871886816965743360991973277325260042431987498126994308877834392300745056891316419548823466445629894869409373515547602658051131272019724016114293239088155124835804479786408905864826801538933508229669332007697733296478269327666864418221107308625603836301029996041390295495241827293315995805582202668079995075706544311051959484927598475099906994975045274942418129896156676228189828597086493906255739680760705102052041098382780664285560228686833180750013747393616667600762839346580696838989081943697208906929523681422228209962847525049146833908128122017041398182765439128273587217224911560008304676334595519673470040854261318602065924391588573820990293891757040996106629478558092291935830093382380700074578865556373382359230398401850936503675654870278949471630974503592685252075225490562036873406064548468344122046419138115097165824283479010605716556497877132492011974815190149118833597114189388070638837757069533140877183690642903062395333665366964513466783930236074366795827848458182359471218842610036283336462860476864732563043181898908760419381070990846382528807985183241648646825545459114575386609982802709132758558065243155474792717627665272546183154381023218284893065985648880964575767184550692051617967795022954734027912943434304228221032841588355515606625804962561835209446642129168873955411186735592138751736445855162076943403383029493965286524791411938229518957801356215962788950812180032001870127918327472788719019725396872715977323879310776811786829817177239660143604156292389842355269847332456670458169773884168467996547008941683753246890324549156607384558383399394724966689166919916386750655131944034149052768571959139421701444025728001396769630973092041256221328438322841531858283200019411417946607956120616482801335667497878634908440510647425765280151396500379302114035875055261735163901238052131141063981756762812686551625799531218615582854941352298756253352469776789453948455516333588239869857814498773084584755677747320087146937456403443531685218218734674787152122646188110372837090070428569311013030807914356178900186859227234078606930090399959870045248579566547543546851365953536734764137852541475453243684812203883051601272974744742235587186895575592137729669784307772497581873885104908289640354928110707182088910682180854770599128486231610666474146148672605731158768816151844560064463921738575179300748602271014916431833810044286624999770440405729426856583020113418109374926219708363779319200848204445767933102136900413360253462121984341308306653130238917831577587536969070543277469598565628533833688570466183824274503053154863919073231046586724214764356001032225702765418091510448666453981462236235115134589149264866746899945259025682069940347441872223448693777634189369966569654517475180668867381439689252057255558669793410374635617078222170114355464965723195675767412297519077729977198755943881409195022443402305455369605851979313272310057882212830292042113292665383797012305251987032284802705972705352467300432170974087603261885067241602019298127674784186064340221365725005653662305400826977252838684870578362619547736941803808872986594518266953613721980294676809278193241785374722047970513997676038398953029731708005249513280221628019323908949889503562741436289528784195030463512299809354204838451767405932693039776134293557316811598869465562453144977587312414269937954287545532713133551755686683352952928658225699170020676746133212824680093032965033358856795422372640942114724649234387326358411900010502313511983355759501879287751933478651620442836266298672411570392356352455789125263516653440885124583769362624063130791084287086157067906446867252817789495174126509358202185888106797461682018313816236159158490971143159771590317574696232847423204881382496897718265911355569736948924857457533870662293552585238065417632508755766914381372581456670752498900867596009329635745074189771905648470484426543586700379431076264516721789927029550572776728763382597305931569535618648586450459654858008921469752498816824310551379333505154638644618679678865604664705385685047155549932077941515558748125080771860762963006465418225310856996309488248221604011961250793857944983841456599530904516184954958651998866241513193476403231316532540554803735058265028452164394889982242657182327675591517782367728824458551226416749655087016975412018750898734730501111202360479536104547442731267036095676979964220561523421473607202154674302942490430593089655436001795709692015732887357382185087240660401240352097146469143349524472786821316779737169574984921477909303297795313714986723214540994037403399174650801324637909118861487194467776086171948362600597887983103175847349238572448983662443854288485653154065689161833739711903169991240627511837542148462340480509909708546221053301184942363891149739844125116052444251881878403811282672429235185697055437580762897526823078080293538393302221178681270285053607553790215577508421879375256128906679501788320622411708249243015079677238569512011262309263999696146126250390434085269329333368683367947988750580706475359405263501787614943388013950911090040796703286220124079550115617874826081591349212964783981897252777015062806713457442247758032831967844270026385888024306956437578567805102244736042543998074567764682976396063957936465723420106840535135651751373584838225738708496371169114981551205151632569021175630502107465987736791698199236161317980629263200882875031001808802682541092867589524264914633899144525056862543390300524180649788046148763744716572380089962688296183387577037864688909874226169908348714266060798962360744201799882715321069364045273246011752013205604040267740217130818024086689831337088580149070404176250606783529906932719447872687361814788067928210581537079440419024497837806093713507174673546850719304740037043391601429959143513556806370226167703098431283301316714094956321722694925272164882226199137942640698703245650661205520936088512566497718049989379475878867661546045676908092035400407895982284997778708303497975284495082174675903882693967716149824385463222686242291707390295329375904142152378816303260963111288789352356645556404212972034743843640463128346072232744107993239327236121320924813232761286615660284103716252614787729890688071434107327871939495640027990725154165260924993238390412782526833674738732574950609527253031505098492196067067275502140145651318101535245676221316583478508978301515610777578768879925723750022445417051642931034686845183219926938717846666273559340853455591857647357962908118922541894816342992807075858068872339111137167315300819312222605050349778925643030998090873682594358315181938892927489226533494544081103454245544373285243567581237731817632755630986798241697083748588719883517247297663855594177489053112910940878900158540027227937691463194863895407442855462631106270692241989640366037955673508032412732251152096571289325344945657497456556474047432223166621875658800191466357118237595149323318727260564438116087621592181065387685854796305551891627927465736990009882884979166975422826242179068527286568701674691197423613915369486359640580412343312680767111244167083872418648066995745061533534292875126967998649852697499145552316970877877544369596441286383348207839055086738088537915797644952270802248106522083145253102856968470143668849823537396957875919003662155487127945549346267681256774528822156209242919661920869188339442984778437724419431726558605970077988947320622142657142898007652252475517785299175951940900291452899863563105187447739357790674433765255729260232579367098154493144420747529462558581752405330790220754627468233429194493530631405149571044204123520938635125285648145580680017364203171856051152234922268334050990944892235145140066855336827507138970365421922953078577774808497238757563104300689106994411541497551021688535146117512750930630354822302401649762207809823645060509810466445749181067645372358564841278859532518918264882054946486205645280827651974394399668295479025247210245066004954976571451190397723436409036894574757053463267114210249454939719452456778034369069313798833330086269742463375937765826464151501875587431293309024418675282272675841433153975708763771932568218545443050901821440209434154531990795899876454364516352844644196177883354322072661336260454182539727182222514949919554235473883053675336841775281888684411709390238340294505774592946002878968644423399681976806803947623735452553253108426026910182027708757962648285242566646984735016369202998751087387570204513281223738245237652124038932524689482154847969729522701271786878340535396621292870643857643067270731618166600981528000273496842999943168096609756985395248600005823226457844384855901110345109517004363665597031825450487716606919289961107222042823635001910533242482376694804299817788195257659066384304036035157788814142530407061703853283033726559679699107410510448391315375213191625973897337115123179148752867605284398302654697671701628967395183814480447806538162676554971976929803083153056719967517648990243497290436173203898305970325929286893123546232480172233598964735045245346680329960022068087021884157680604450958484649134802629341857971502085769986904734650983576437562215858903580290986971552239083859750506845642417302896366870422847853976745842104988415408058269536069655504522097171268422723907918688029101307587982289468542136644170534292274677888154290582616238046323850790645369815395728461899975543734804558294411435435399316044817864615954153998703345499575778182333511668317511088281524718134781501613201414394196021607498784246379594523308218092225278260627176587754122416791738200439604765030177767694583201684701235310192964257914410668681284925119585995923213705812952801104825036191903070215541280694919582823423073856611993996475784595746784354778576097103470572472356208929577102483787868138090717973983661560905955137313085454952997138969080723412618592567943813981198753857017305168204567158529397869473367238997997412433435626889915663599531524464678340647227518890137120169898092893976182959154004220625231539116728552192351571418454642858200878009883284396581783884239366317015500388848115578348858945424101270947553018911396313172051074273906801458113588639391736064487663185090511276843399750906316551126258586441549897992798262529003587430750972122233227213701924215711167260029964836762717875947358570060377609815447864140932217600129073540545155993277171886314545024074286553651133423773290371427366921095283274158792004668656337099742959179099789964767485364133000026979059204733366710518161256156461688760931737892259481664622863522084082078905185086196445833567679206385492913553058297016101500502733841439306741250448494458642067758234764988200644386583951779731134993081988137181135960638766637806629828570101779637297437274351806183979074503745139565055365411710681092865964578572264486914534608888236599183753972802570677699637135993456873112060175378527079773215659740143382943204852760321588855990551277353600381474247235646164703489232616835384113595200228873234417729959760094285228689726923532586592025876064958875940718221449993051171029777701143231013631060954282393886410235496482956943915173246303243226899069669118602804041229539031779323943299127986728937198308534628044741435228585900374231079662552595324289985329214267181131777331446318810120823874447847026596787689445983756301488599403055423252281466484679312397620626052528367140416924687759817991375923237268861450212097286041473179773839504182468348230213532586552162458711830886450479623420084058152870740280391824430983409320345723844713779776946151591118690459311164715193591981871410744512093334651899680577387936771405694565319910071890791650361625679837143900416798960465610961009052458748959911429684711702986704285330921818188147487922336337371014432499120362778727250682859424225277087297735116055341980193799723619210446407171188220611604502789639982022149609964914615908751338145006282147894681318753181188431987340700916074880195020118866374755036611887322867363728747760946147084451678057296140334776961376622576767013835087999081201750255416571730969493603576756358055296385523328183869333024849496327912307979213517783134935829695642628414732309460710548926092384269833217833654066336221789780711980354286573720034500539298354455943980285234205463720509097446119980714993367862834707901901814665536452510565245329010144045370057977362119012919152869251705525445257362527643537559640642941105817854972539449389836286132856163351314140221366347514622582673033567037684045795398702035126137816259347965033731174191990625040271172223738339914332344987518111247442928339841585196506062894843648833914756000161687721590992790629486975977109497376280041706144227017965474989297367947672797656621320850645178246147364152856956131471138097248779677701076641378948407464574132864065568613167681275288708114300793190545462074482094307896761181467532190412320454490883226832797095218069139433113096321045748712713458600810458649968695195921780514391793549388561492760933092164870881940303133991818515063651448892829428290212423840706913562909110166424679931167382209795866811288449799224951545036997270077572053689458192533764664434866506785811615271453300236524952061587940429400424305697472452551147548841239519310470273398144805962210508016075636322725499878535068870144402019219545485095356525629537468702033468384994223755547424414863281967325502173440702197452716588788267845294326138541466961078356242008335971869651280397574100198597649790906407846636876976406593729874113040334629209589557713218809046749834063707795074738660789380054382775222043977155420702205754029741801857010223258525679165035655019689790634406328312962645815508459689747514872066841252678281682339097733410721762187066400718840677149630808638887636374508264711482643898800840885818058337953148508178436977907070327640915039568593472395354761017329959497134432892547093995239918359277312304542221176583416914847073878510926791162397874978514094696420667457097029862760467462519756070239889334002887020572291813590961412961195566100003026302421709352367950100289326032217198402468280248424088123271990806595794191148393923173523436837330341098057243193598318866647726078658263917943169458814794773982471982481898018139294229933360847364285024497652254171128280130419010589713177062535969652676721541051353777952752013137803671085771310726092244563655846794667521128279691809251702829740547939424846999460860408570052646485075320394610149871806997444415859553654645466841141108615664014870947752280120188268478992769440663972799943606710671354848921593528221105588211290010735061161340521730676289022085313069607755309574214716906204049898798778949874874514701145997913312813965179556196221574849634849805814007430632947335380589109579858078360525116927453478258347039188303046543575725379991398177040586753655975687298357912316080185079318548151348805563333886816642692298891814705066686577492763592561226658926726432126174488661452370199237933796343782852692855295446380731545776496047997913825838875065844711818115720703931272670446876671900166831717873082080248984177852881297708694383838894435710586439496827916240591918945547851391156479427909855799674114691745095590946878751893896836907146369279668250569005336840716142904360614936599970236926463331138810932358657083252083839594437308456053680174193975660818649542317207996812865559136459940727919892818751512926884408788278591550827917409681614817301844104651340705820614925511333831437517218078910555822461643374810057272381372893151797806219602766101756710602178207561024879824437430774732128997767476373886221204476909115598592206602101827156282411223086958484203348811337494821414377876952058946809171267258582051570750352602136291160822362307236742823247987138659017387734270034531642824527488738939455840741396419483314746605746538874365528973641622119169126445247461384584993426454309118098222891270181479083393845926255478584738019040914805956096006453859059514277937620134114089366965652472643295629386220555858278008639714301987457711594693722301229966265441809552426099355399297055991833693183363843644178301823630786459611134167998233672036549847356265139828878671843613876524077685384139816787863851825147679842743424137492729839533524757601495801321559243444283908721196738150738989360293311671007158352874897936235715096291898789371407502505352925779315923519523589990611122228283911515802030174900011626066018326818373168360873509967516558823950281526794655749042183633719117007968236535642747824350514295276667988063677461352822138537196932690498791109945744050024387158145844607669804619322554029622987925671608011975315494851213583341507743972924224727093304268097742505710448208993838468696047182623970038367847709196920571936972653288157419593921580979994236275362226728547045387990793257241332094877428201343158985968428907243315390796086708257103777261039080409592979328594432544910561821605505470893079077398064112398707319183637952492232982961843054212021662692842186337249972098198629075478745910178948283513916970625463813372893098686485104277316452373412119584924068990628952644791034267811572692716728971729087105896021325768876391988569670219373656412682715752501536570622612803773702426696901394954121055244533888343623451975864844653461443906938280295752529471321391280179859114491993099841557463982498625801242945007732246339714435419114667339804327991709224945451867969792807982956046066488292402963845078123086589590886685183636241632215852682386376526265048008443954677872800888773006909587413578234896771703937966207441644206048908144698624973483691645454184787902218542886814488324299734361864029271204455620738567002066219239121059162585370079320395288034746165514779125664952241500771927355993022452616975533252871055244280518251690708100561142735589545407026813095659917028117757328972598953141994116463806935983286621374004464242905346151639944044990642555888939650766559518761142574180006148702429041473189586798294620555869670585392592898960017528433793751291712947894407349647528477930002804334268922517666842742447246838268841538739819369960233559416278784714084902937919359934255276242181245968090313185380829066186018184525342804625064450068077409151064316840314536715345517135366716426980910314061265745519517452953691258680085411202949885603201256499847942209321291228129845152605101695382273627164395425448343732738476458086078453351556442996532718658406226476715792472919346959789804875703681842689546941609865314327715906422041358840501519571239125615880705098845579229373902231776337211182530632751527511402919279723098021124736251275879408182268405091882382377424919865464989324705667937732852470328039336570045068408482380573026139049690053690168125446255857670356139594849478576110244214907907843354020035375608638778784947730250495760883303652591978639770814383721146260254046185878620649732609473687018160352645960421618940511113822114564499519547981726189088360094020184157153768371642758191891731544902342539334452899525247836625920390539397774418803834385312176168745487395784418033223163317340047056377334479932193250786621857592866882394115536928499484550198102468526020608340362054221460534253050221676172382591679609447841201506749534874524349533371268497448931762544983672143447154953110707169583456499987829215940909994581257662507447375851569682131133529909818039519964045497255681115020924757086051195051748663727355658735314902766628569649787093766628011899229240437707473730881322356417781282513969565077620294108876137713403169135054781201043058156079915821226182132535967245277452628698542052898902984570127782170955642596193026864577140504214380872777126374904568558411677213536044633139401555856577543697107372930939424167766830186038633481802947742245539271034964968653738420952181560287061571888005747621162410090753763435546050343101335484270834895613052779919340291797299287887343906744307551397804196619664073697735164925424558719707203302863988990263334617631553741074398796056698049282050939036516184995405553306508986149921515985327677449664341853818399897735500727368986611023108380327243777753278617432960278694543825697959381185760058683668074652548008537217979969770485583559590621675269534797065741134884999299531986501998599894705719233830200065327988996824620896296703238994378282636381892672253119203808001439421920939169233016575073419121727873604373282370559188521900558707222470826934133410714585602777564274927413091220755997577365356927871987839078559649426519959932274012671636027661107444103476624156799685548348363333656534348780920691618320790957413303955568670313721871375382213357280499202372941148907317361965667961473279686434422383212691993035997556121683242177981282857741170278219572765229269000620259553519674667649440205300278044438798318481082591983505798320503367785986267224431247131443830345079313472884556556945943376893415673176224637399166365719558596366572226284616547859957182458280369700041463964379631939708525225927699569488767265862057713051586047940465878674756414321914704782383396111163817766414274507840654113550109049530356774973924627547079548867464640626918347881782100191822192672631093899570322688733092063614575985494714986355686981554703455094495950133309651032048082671003553302473569440363753954501955641573093682884364886417570448046160593543760336055289431207776380457025826784406401798399844896324374130216625781527267466323421973846358730676396702442393090609187582349328390774536803012950321248207121527616652305391128859771297722635992134986574733889226358879182367467440472356223247514180550559571095585681077528063469403775153779524531978811086502998878148765879205583149214366762989836298742768579679005184750313476123118915528978238294408140799834233486844574148886995391558272123886530025685257639352385005902227657754917263473763993026961287387599421900266672700430815828893199662121254490955872368274533345599714776369436056131859809427872889378050777543593669387609271067902045485117429783724417762995160809818562369082243839671276396422616594511753011762192516329342931711122640589977886400546445357128014411066818135193473014828948939818552493382644901439818912046883325762622861957004995571062594078364804393011369704705269021736468261043784597926400043355704090210145863141663863918602850480991931664977354540432176360003538184046162925472228246249659991521804822646655626722502266610722091208220256949185794835838414080336552470657946937058195621210920293115490118893182837264331335712833916923609084133082102168496701741731042202390612739444468584994077651431463444687272468804813108628023770468295413823298614212886786683575663314070232554304587366371496026583781559963667135906334364982891193516701086674943974884521865355615168358089435911169444017099548599598305226260860581996521978162421701048075077576576792315288963250640624152720845173316885462482021664366691950689305188736351617005396454162991780201590249278941671110182263885378639473474882134971277048761363821188649502729717950312600036694308352174564467664690425868207546504039555202323080300026907540494027941214976303570176262248408647664884429445380291412496931724009343560958184913414376874708885658506892893769511858977654126274743192010202115796360574383570435086337112321520272846636584004834676354071550249216619752681356501293345296399326589921439386507076413773785404133707868518312918206422922222100807848762445957820061857894300076590195242140226501048215236526133336576814294858803158754471496994675088613745897962916072363457724248209179850311078287804650507684508128201676215382581486313795220545952718953788643129036512769167107598937409176352625467675357278195867378863092587029218896050732991116694449582078035433237539197964558928969929466497859321647993737091317389889930626546614605281852974347030941210964181303641969684314574169793965465886066738197880414424645288953379527365261181421851657706532506801719495876839311972166774705860471030582659648473573263315835611484779723974171599987849612763959742992347644693213127424553523858529835262536362294608569092730876201901334263681730497089789955916216278784294457720460395408519660044891495436723684433022154594740267265915227925854525868927862873463728674597450338086934021089348805729020387828150640101364999970623204857316368843933007690077031909934941825213318808279837476787735824949129345251873631713077009711970525706808856029514931903150079653442788685633750404494439047277279624521155570903994142128855491384334994883720480991637738435818963225614792163325762070990982986519320131180601630118726031989260917270479087333621800383383590650356597052099496601126488258192583079661106500928354567956719445756817483396832159611023039974871119077837909165050931728216594674972634936181127311409807514315061418943640975397036863397799416472692996619381660514071164954367189742536592410634288484562401484325540180920023503059791841408527915372805258124256748736677260596898950818931029200699315686966495785126685964666376109068807121176287353531269067853906153333795602184796894976817426513936761879186905727314613000594678327511808020418951450032283383064923731699236725430545114916812106337154604183561495859860809521409953162352664289681564502453562908568355987181667564653210232176574491987071065021348293477521164442144733189620403000245987229256830592637172180298152721590956629500871450489529966295988650530125480933709985230794865507952199941142008541951529736607180485873213687071800364334778808439755691428199403323449786098692298087235143293992449249426161685506719122451449780271951810918722133461786791117702226576945790207735731059284182012984988969935239609305725210818074641567451031324141901666174962861766173731621262818731042041837091401855780675018864649504411494920692929720585190645262600223044612273432566465450612190091224039788583398716089903333090740937142998747404684804847617238324575762050494360560484629841135706960330403660262226863715238746960278105836970861494261304121830778672949205677075636997235404982087630181038629972773106698987575695035982062499039406175177124300069185767165485630474547015589402804906974800677322665106130316549237199600575726649329483440810924472644527032266179980896834207227779130451374519600154105180490837493146426810531038480226302456840689130199640754311525575459419746481971751509418374650814264733166475633956632654469012833747230510834925767319611131986867787183649067451386614661380582226743731095303076753567308756646248396696424678524861108398066607603874327973551877440376454413364258811516398049239426521041710809728174044004085463935062851415948303434427774142835620058078572286267635557847906388422980849941209964996001242092666543958457039661822825098135281475534977705314843046276612125717499576394548224256748915720896297894686696073274119140521043622304451275658666595715986168460170558869300925072594893132317810101258961205098489362898066446563916125434485479288724616424230324377889061541863191654975960225030524602357467089529311720947644630225232288143811067521121958779488734958962378170539167698613314056786219136245496020646670868664762195124314242095852736731341434589368856247155868146317245886044656443912931563175564538561353728335641826740930175072410426479218646275481679855049038464641853726871849279087939363240355600249430255387662789970734504672047405953764072710173339047329623045500455535506565225797870402791541342363890960627071779816548570784743681421096360441001326149709534210373628104500917704944303330536628727284069431975543273117570537236022451199911154573968372623243102487838812463785111497412333831213367994019154946598841404428989145147405137448398092592358661798362821708688322999159502370630008254439806595211705933783000576010952916018314002405543930741731463840093295937326722092118028588101206318717419771369552110262045204912185606248346264684574307785597658448410296513512966571255763499732307717816071171025292569123881765667435535405178508670019471746258038719988161776717335131540844041282713113309875252455534726830282613650029478333974539384135941492233472238196793838822249129159624949653536576164339403716911642455790213169947655920689016045190472156450197659867168202702833080552711058400425730936390134953585119167243211844977078451928461601483950350751940854838159841043316752818331844564650675253538524212043287790955783103813450833443186332512296356393788166621897675493707547544889304845153656012493333107904546644078453604713272565668641378387793966970653242506481643978874847980174531579141561676031016169226664182361715838315265066241283319878558045906265049365294599002139266369339235907228449930338496553888575446642475106552594055205019007984018159168911140545343702627355718033244295409983997152196349547944335677791171147065433809002063594973833639914861028613358215880136316799121234297918876837923526899135478236931310533939168036739162285761415500105783460740139444892364679766064366008202317817780231089845951995879542393879518028334221895041985560372739639875859515505595417751952214077659915345318618613176834402975168707721748707107121088730117474574935600664254759224357737018326924473367438452738626271122073437765237552565788689416352468162078117381030900324447461944744107440649590014032841262220238966003350057116377320996291301581584183882761363136356764811485414870751203847206822885624944345955511102776577025090243242824207999109716923937372806743071135194340773028857078509560468514829768492081589510619600804034619622829821727093924534848580131630315162334429322633300120473742731072585647495435840587608000067585082636551658854253409484342175822902226550855325324696534031654231557267789690506264521963484419907272604723981484568029366176287209170726111366556399309565314550590026227464683358985278569086867049546182231572618937052331132279875160818061594642623726535820862287498962979013021073884758637125169838698377807748734564121386115471179743495803875333861681794916455522535477677775837804806258964211681012701509762271819552485808789241052328555716871153149771143529994285660198763421409854162142353925026807269489035845225574448662181338928733467088921273583159756686784623109314093534451865449043486647462946288178398273039172185725505040197720946303135709210952893914352031466877721998584459011880139565194373976234352312942706742099891076622007299182803366806822174475437404939244206819082175041162921796320890539888203675245445855686186629174721503575940416362876246462500026281226103713206975627448141507169957617929074466782356879634955016613397616679711728384271849775244382146488748705747973362112856400515443651199414196319374894048171114628845993275919365818525493716297448352604360853460532060504905308279650525813828867595163847798277466016791604363882669469939080241548549673660836499548486783452500835460306284953515431223130379910434733750000265626654887868225225959172478931428993220552456704404243829592860407920087442064000301102868297267162232151581652063793283170524025008538669847332996998352948218246801784070131238203726234925951677089693975618877550380367889464721481310384593461692545234334561358968295643212800027891115423442605915893491834035249303733129153713455703411148617651836139201752966261714045733050122601632266516402155422334510214758690482113423318862738266489161847475737049435366380202981436993805425022760349917610443402274198969137641888998339074076031741778528827248391010387246360535339889193708336395271577528071437443674184172964026528765139014975497265434705481365945221461307475482861630031526066982145711153297386084552015046548324447855320919527321979060540074113966687495221410714981636678243291919417017397766461829399278552961939786056466868518431295121719064663432985456667973011709210929628398766975075513258088867305550576669649565701378509861297412085897139900806760922120205300501665163229645316442526182003922028866821083981602359449778501012764946798846936787299392239936101730228856362136716932058680476856138167901113944579165719587141449370268694276820971883982698738802732949469037864799988645420315465068690564700126177007256228013716366560723132485891160138659283410089134466798610455732269433879282102118795448521381641801443562892680429143959106404733921445463341352857568828891199389725614329263607584644699435856031035856062632881853092086446688536812685386689474151870435967558551625053878274356455431085350475823195785476415844921751388029276361413244329847310957108086479861495710011778463701466617226654239174109405031287759689923942127200184178197248766689247165827201843323048194625116072502603742136675940946396532778932491465487787428930747865361582974452713368380231429130415445362334202905428544454260135133256028373278411240076655671846616626191083691826986512978102201344295762053211578859248442748359117537143465069677531447208904978381025767210404962781051656419354143574971160628133708832112946898906497519743347788037400495022417352092655352678361265979301534844045055632484523032986210273961810761347753158659432201936013271618561200811432608001839918810146291124763429009445454566546307671471820618741687534386904780203658528341092432328606790451423247193690889393494587803342993716785449713554564222546956770362737278480679792769248095861935217578277429531476610645338718845879918838996431018300128513144379737255023189037716914847038165094011386576570933780667287058600433562861823325992991733382756067964000515783194179821938280574375581975807752299615015269894074007531557668523543398818203057503038695765052991045686716386450601743548842300470651126873778179505759358882195535114433849020803561482292268151868210344904000065038423277982099036571409031119149611938478411349585209708945972281440140255613540252489213235382008789067336872803528672247565477338126115930191611827691829001448541238005257827366649937961293885545874735521846516885214526673984176611803426163343061179624297681589936337782206554036395799930803787228583872637240591434178960780910598416389033054803455146775446281293356458044518527932265007042473014157364373517264302669132381262513215260252594492115805289980714071163289695005433469512104029188589198346813534200554650642479215377029261446762024676769554131299069701011235290426385354972498024402471000340639346531521920621892530619496896309835067635163130356817446638915225216347582608445456655444904957632840054848794767674966316648744659061576945033148431898865361519034864294306436936397408327442415206710450485238040640239924007814765565434287782259421822895561890761584649130620905408677214259486345579740499242085688669418544311912641365476305657020671257580469958156740617774894910292446044809101098754263885458473374275440913854728027940178028767519506242237398454882162247008716895931441012422579466196325211040082054051940434977360751652284912050873679577932213057269896395329110519609798566248189817189921843932730358529885911083293595475316272339090627684334876817094915380085931363944457414067932261125041460688655481485535781090468042750058594606705959761534870421564778220226544649789588148254028981745462861184860016435998490653014762377748823797667491776568252508218384064352532451656811713773349861100170310002296845658720257328006683149786387264361717280500082262341346712109534688464279878366898821333704465008078911954586338532993859816611716575301735057319224218623729821038964618891284255038960243417482304785884064205115304592905696837276418511812315328903070586058438123276737573451521839483401161816278693611985534244626775240951613028170657153231166495776296432292105251823338443814298591638004440976248552343072343233265290768697857344263659207002730883599973288266535049408915095258340966288292396135858181627348415131702674127275566567952055144866715693919456897919875650830458972895840477066765867876381963820901416321586364617146988119898813890819349102454489660722891666958060466232620027109037486159618916074500672217979527308889297917201550562242727687182292249700315613277943526797812545730433986209506221227102294515152671857950636184514606577540846071848844760401839435852167109030984977498214514482606563354150150276370430737435630719907108084896097899512293949557144668318226200405161963846631288809049270221097861387557114326402588703359972325605296898356706784146357082682479591332517471191293404953103141251838896789700757542060958000420044090045627898822717323434153413588180141197857198099998319565600755993287079703744839039237902911199684917896263025259221273955672792513915974621349256426665822831687996574924769711263831748985982389044948488015802457606406258804052036019012021555229914505844186650013937659703431854457616864496774515140864482575351066350275790697502952875088574175849837744202178854495789908805401499517905395311149982324300055426735050798838554690726642610779458414755531466473006129341358362473771301523813629092552139488289181542487793540460925330009071281176237013172627828112617988818570776366352959325831795962886450252558804466774287095648217249772845668073466440481082013100553145155485918587454040676746737704342228076073559395668902469807934315737920425413540920748768475156738499672349848615028040156145615084073131133651020905080715927940807343812651558307966876213518582102995981681536764657390340908977307207157364634359716333663836115970588805244594936977887444834556613233933616020431188648334263316906247897252102145666417398608488281819223557869602604134652172045939099439398958606786344836530746217973640604430016204627636238227686960177255198439840917980844817660797849016926770777177848099729610664350436283924527794115471846310256571336789651762919017296963643599753116003546952461792493241651111304465304257551190251518206005008531878899115022729223733938857204517999399003577231872585701597898187136511651059987571416402288191882598108056860603169741071859624780648144173022101369879751528602865742013718089046923194314354517667654455336968135892463620456995033218021511651241862249901887913783990922327406425176293286137763741895543265061332223882893043547005013623055753336201253229038841572531929063314971302484816433288917977358969432261243632191160945188124270377854170308131876785091300756202757843708251224477722679835956711311679838637093935837377371348332102463791994810112536028072768447591744432560799685587729288801527419327799453633505021642536334873194347455337786055831723953082241766065793990522549176687269463744865811839915247481053787573870480237045610583954847772772116581055856353432263000682318448704798669959273608266166381322007994429741680265284920140291035897427965673421043518332283769935436106789623983831944636275520373409666767616319356135828704587343739780010559059822082225895613098418128863927433064324323321637573088508811070746739847206593331314237750406832244929885120462556162536079830431105528011661962320372362393641516312068296653723187069968143603372115418693621128005590963358389009709992907014653190527627243103267250804185633095343476272373099133420199397120019030803566830439639834084823934522973872564696860822434629886477171686835407872678759560628620045917148378372257017732540693969785713286741738049568176359058718238226725176546435925610693156171227851365256944374670907676927868252559685569136340973492825875484815254471292920242437322029642358717331846623930108937559321357751976987686295590339596622057717973899369484363662244900815597300643410121832232409766781356810243078945634857492063342697991002179983347833995821320691323384360001082384930398207571440936178938326446548445098895356706849273678843727322889253604357895033717086635762145079676554161684490720773831579197242564233909745772242504700030837392351319560758899646679396845273723467759193069321329264725066316956817421870191854607361017283932026432052590486860464445782285134424175443202144009315301969346327312612331836971305207001896354556156581197490906996080007237497881567315282076350841916933131051423893269467059058801550221343722108144225769871932754954905888150467335565740756754464899159166409151371077410975690829148270771712899020039549722186575303883180115620485118813234537795764520062195803351701453179207505260926280646198629672471538191703199364942685672063255011556608098753910834223088558668535882960332773728636076303080710066249871382208507494169941102961591799555903040537295404896581735442069177226954242744543666544978913901928939124889392414888874342666476610073659309484809201360488806154384078863289789558292307638677841854145414869359076776703777187015395544611749006681970873535882035773174232755669506509562001898958240680832806938738932482926327952625605927675424719916628285594470102826984563269408451564186289547617768363680246255560442118854659780043717591105951109765581950879281194326306379019115793483412146244163283874746009391931505565442664485822084692128439986567286473964823880514766640505499560156491498104231756500455430803519236385683455022788890510918072193334175193449158543176190413524203851385814780995548445279210387514826206197264724582856331211250731131941890164421841702484326542909577786358068488063930246620435313247383911321883241062964727153228561784814104078035808659796052010939093004906517292829421350701466929912621469078112749627276384263418940614935952937828671199967770325299734726631504305534056179924258523049817868201050129402392446468723559294530490694401181064288737590424306839973562476899515943549077990995179945001769332493183289787311840261427053507497868026183003014460548740161594286260246009000610744925786500604156950929186880953034586596475824874243968444000660847959170289699901994028446870095499883489605951233460065476389010494047393317556009268801106149376500476805135845803405771887270032937332949290365063831346069407449818167114499524437257358622628621736669831924967118715060554578565077050554169487195635630785759235427962874801655778567533353631127830565293255446392659610775362798010565681919269437815653844729553987639936247176559967848396940929846223208284988481680658399586879881630469803671150703084605335945390722251741829957899362428561864172510773648059116687102915474743915507500487914039346307022075616789275762107905697842834877696712084718321183458317878312730901899186262796632432164002972333618557634229175837080539307040443996097189634253034873803744071902806242851434412950142474346051186520110253691417596508026344993841386009908535450669448755212507196307443556265989865106812186334330206127222012311251315115543742188979571745063804806373804937472698569545478655105804663441825260239353221677561300865289211464966067186141944592362087707938161806687488108455898773062524922080301794460964250050809799470664368002880470260341173424804878207884069802071245124730133154943152237880042733063798714179987754210294427426191671490646454750510649828602010681453957421517449241260016960200628615460515954806396048261214347228996975776112378534155953752425567157606445414918530019586109708117589900199758738173072513900030794977902406662871201663302983547103897157993531365345599684081126460995349998527692430329315387729679380490955637634019945942053943976858815375469636622225403168096138991946597318252999050689982849444822989399141767735986400388916720808968718782208977270211851329541066310000746863624313625474286977016597448015114090235824403753358369141695383626446325189677658350852083077873547539025937344289877153427404757314470410538895948487592893130643875167089182953160590069360509454809243733488319677409412023187695657774057745435113317880585998882371033693877831560751513890800586030351760819170602875541928203301177715665222980667358201757106824610095717885982734930745166229813311242644335433945105968189604882328006616095582266055933899881751753202691816426946775407790085141032850791083150841792069189915677098469902309305380114721276212201816883400335649762603851760054078138780192854981304881510685186651737954365970733947030007807643057205418352190491764466534123912287285011481064755878361818999170956520613911858489707697962119037505389224062195237920589623793563383535986220553961291089220110167553231004289271041133817443266702956617243913701539917437816493865074089201248684593856350840325877488795136870508715387081573323025864482536898025114339669863683080822228896395720726327610838103586445011339958273168256025647281491604328460581897582244266821898933598175105259305334040421534701324305119845806412255798219146997672559153885589618919020499692477084660484938637219022165638724506658445720608206188349160631013960223554666305850871905885221515257165367156395500995677452045732279415508789660006056247535014216093582646521381223812042707110865762369675282487082254658539257313895099819697087753810456717956970190689865337349699160208990647410167411065509932497766901240357529672296518932489784265032281878682442338165257225057875129808183268248401475080177226674376620388552835031286166517872428097203713333712601393489203919812457977758335784258928286693489780430310700685561855971097517719053005676765072936318960497038132476281089529647920649162821064149861955453397610258224603277453532982897646162926742073224685348630312952796171969553121766335142365200022323606509057011078710804330396237231897770979436137056997706781294461498460493686129511677032837192863880688670316177548531877213681152273742847661306304347177142033729327188124372241997050155090376692013310195077430945620319764854225666713458872782238305543915358205213309663586629404060361118103906844967305346577321792591565651769102595212552766095856924366499866154344569190330533082078663409902440552107607222267578698016417733678684626442004334252060301055884305709610797140167061677906771911631750511546927438642549523182456287190423378681304880220554676106080559926708863553556256487844217065994601237362678886461200357715451622086852264181077536301153802200722579677361683355897091101546135979715800995078388161266067128652432195610128981647138244274515192414871581466988978339758858239308052757371199730383423882201269070951788772639175238159891523189683071493794767147847968141430112694974971398273326320346063463167217162929285043765907177272963003297272178854861365644794179778722041630626666442090254675786845711794913732852915920717023766626239942267150034123408063648475590126701228631357599533984929004354649009918865466280879270550533142786082024608741550207350397361462045120859177461861845520357676672939882575598333966904284462524296224433765204161481093368299415760451872841999333823971366270652602254697781984131677973316630054078293310452681136067454447664211375223047728214141542375783065154520458447123270024734386932952263337000164574127944824932141901091112346574647312771878202339062590762294942789226220630559320213412766014069949849161838154968214780369458135929628513194320510931018888110253732068332011727605963785805293059161221861084094500054137504549917088684980168424618394950895460688306320549874532446026410222334392292168347057954481245343493425675547631609658695367626437001192943625696694536745525869089411989729492360645293234578730617721943302630485850799318404684404184106291929231668150770961509945806984025765046952215624771162464709051987290722970240885807321055396145883265922814906854492106461453172026396590158342082015767169929854127502178362770675399158501850344032889300720138202029970026513765599340561726033705704950371154873402471647740708719732188088020138129711547910661938927146171463523897960413867687484957351833903929217986173599292100172461953410140455797049500789496324374515672673823986259240716825859851100542779371405889239798189912910755781550297769115779212359359147778094580218859692017032522955555278316642319282516035779700876705953405277825658180864776482993347382433039106773262090648198289216843466858900447917095493279422775668163321826720405099219158488186003777669055771398415720316871044341631266243349844666928892752458017531919317527183674656082776040595350961499229426100053575366540675114296168267380436249434741120154027264058437062867185975691190954200254472593190782975137089283788180939032998565666239517659231142983357001303358900381656261558432054749641359728002790778023284134456675399046111055294062520505430385600810003025667545379753022633821649694879159174232083839510340626354194799044231866653410261735579183250039189073910388640150412935794166294052642925206051560544726280992783824258284983124593379248222561575039642733177077334813084987985013501928787895199719848515498710356872966066442778572365667528782180449378213235189838966715710196908484324062913393951598028520229997869256459647408395170700917032651620406377243850034601075429477426837410084359800406692687084384719437659295480002564076459865760836997033510145591238211930647666730645372440653564441017159718988387267483378272685904806488334350518684605112656747684963135880235027185668134292936396167084560524374126426261717613687277946065596423771539108769390359463426989098571314505944519537004765148072224508494545372421375946695128794171661026930007686389362725223602698698643536199325429051250902018995168835599563457350341832168623857824852578736139255974607726068026916352382336095075132158677676931332183579311359349875438278123735582106806525276948360518910327866633548998859199656919460055995424447337733465470584869988071524833882995131851633192978861747381317420967213387785300659266005447085170596410458765261264099472583005773267393632062518378444522501921731188744496753009837334704465946452469266425004277752218166121293091045810007193729407465335795387737013853963932544817279976248086318965457259433028027255301043880703188438993630121996456130832748967890913775492907702504149169059991655140316073741009290527062786095380586171195015140575138305138860294263950957229207254387930208827906043169105098820202624803924860210459317681622071028828453247877365918326386303383768887437164685048714088218336508422833122637564961138695921207550197241948823279003419361737549592155624669041130525646870669572834825133230015672935447588033815847955842444471970200010384400549643254720350917305508534378455172307303916432898619523614194813930648174858483025132056806868987454205824777663794498577892845926204081663259544250964150715524761660505132222622855599686134954173656702800150494220447222883281855263070556266436449151575521032955586775979509299739129437686985336173715054627574277480996762097149072623538041864822678147874659109275586697532734394493601101167110205509045422842695436219561322865268853760892414682158704454149889240663614619982232322141368067773856534853387235719954421540481034895594823264275968828155684883573693135826675177431096299507519501688861773364679814094274619222745992845362478597757876985860585052257957019619105610431123804312672610843929660156243375108516505223652434356925070054022553514898105163965019316719192669775228729847752947538386625088286076805032443448464959621538129674667990867062161577208347348632785579327114132837401431310279557127978250532285503747819942983495768530701273185932200108864015518362011430855351707149065844236296437618173178465556613452911646834853909760183533904910482530323715409095395539158198224196500405264592308157390736069624020560867815527160069700727986724549925228014859030319783372065654520274193807776328238567988471075081303158058553924418665795322697071905441187659860834255974930667531399677124334004622688836319106145728483385944276484558917799793488324180183375333907265692365107945381111097714473525094566627960566172477548757442581012140889153446793680535850792261004742667659047565656516381458882447820051656178391239166479238459695079737536220204430306728064234771213321151222172330781965152344820456170329692646923142385377912998512570431795768138204660684698171193719369815630521783690645995382539401220086760890531196958882180256588117332346108623888747316845425061715641200502381222094838604598891223687674929323445659261861081110910127090820255001007464173688241808510647653222123061854279835880818167639326582427712241208237078174331549257386533398304422783829956623378886683367389892024798448920278028666271887270550010224428664116014409799913341027825682166260703279187363852155126237259580991895736148601001299076306602019869638495159544048959939450060283870488285161487584558052103530500948135996295705616128469855737608582841121553347595536280587719747996348732608616386182097229462715199578168762529729693116333087594672373190593946654058242672068300461132693938632529828547149941736379831344592429773234981325469338999193412421544996932094278649210731168458102848999114661030785971978458491420473227754323388469276997752785697980277089967913993920798695030441918376667827234842017253466658852090273942594198358405179340477495863454432208510455077262652667944328255552592576048330655859663464146203887547163508121973202081196149400103446991926954305830385714004390855961896515039486051494784669639656162170009437069593815821444558396384570129357950010228633479699207796014568238711127180792722412045910357120098854411725246483852561866310413358118741463105945440492228562017934991145933742112657470971401157068621353216681020743944592951322473505297614247929157041153773134296768838537954578520810105870408250840934825414379009871366929247987055646443225411320937669903501842516023876416719426851855333199960449371143202558149805293357647107585122488217195483808845472737462410481968457774402762007392154245740488691758395448511036021803909203614865167893484569709504031613411240508847015829078103629076267129170811865882866610637247873699389934455096787666534613680778482361582818335268003894921404262774374626495992615439625822594993453253443763223503703957801996875599974993048965840439104661969670405704617993373802815607719423760296754923452133393568128237116537600578984216380129647720764395378420319384935785405944094067050060089789177089551976320257509326504504215852261964266456508941622021611314601825640879604634818223028065678535041204079073127260239025994733122679742560320884367951281378238991874857338327658868721532454995635222237690793732768526614996643187322015636404320759080372700972267956179655250593324610071337214760974296746850590907684443005512615166730241897852729490311174770913442434996857580135370409878824961267283205678762199934354614254527688772213630635887697544007767958161337712116031694044447321380400801689706467056038531342132923802203914899987705374705692668428833964860604768183095014114120196334110027490694877238696044207383862607935742144487348451600151542663237265430837935531741293145988695383220697509520248542624913302403641249873861547513413091124691729275098931417721545914598471450176385904592488201795933958287940926899566923354272105876107769379408156735136938173935915697942145097585035141573689463715033949522068252375444599112708574052451060579195288700297998787380675418862694992810400406772008131212912761712243037768239559308380101849418179617187426376091652793136055454566721324822748154590613520374055692170369764710164323305694420376571470971619546064060563328664815237275292544085843713524187542628707494628726307019998627296154021669666112514523707593263377562379182373306429575088762350563001659529624349880441435886025723613907581652586071767863383869284771593632534826447356665279993098524782440009612748031509461352072745493874791780191559544961170327880684185486126264937514522040143945568208080962077689988467854779209652460558886946747685714313086953656720651215821528425117370691093865128412740368010274455162743662989535773959812783713641920361877772803283871228108433776236994834898396195473448676248746424819418429004005380362372610162389482141949384785019374971151454529513910464408193403201057171053446609055627525326632166258738088627241978958663333286339970403968390740596903904969845351587458481520274641319163250765841377535691651556881169506124967526611709786577982693988018452538750856930154632345390348147687420900263906930122772858642010294013183539128339341711063439097416098033435047995087380610522917160268390838457046906251398560108310636770533740796334312327710805320757488620837652609428913499061696620539905662571317113252376505002232910672387629972327442193957081334727935321684104119228392871502052024204729993495908076834776198639879124793443182882137500836772026937316147239285045720052367311780413283208533798510293697990528137506651293300541842234837416780872288010028266462542074266869360988401392086432396147977737765419246867715666627185951514962726693207226373012669472526667129055768971030408651041525631957493877209165601146704914124718477862662240143952179768588722040237425787846747203554082827573408866646321248359468310158426348252478455113718284885527983512168513417309813145164600676739685076070027393533462578494272814187250691538131245174868105253579232673924464145585866864847870460346169125133169223519975482743099770688215977122440317322572092432255544779933672435776099833585745700359030514830712789283519703784438624680227675275949990576214232871798717600843768488363377971644122235524665448532576835902764330662597532161532241840073165738201203475238515405675279922043528419486769714553375439140946762579291597185263627103275330899846259892747070642421129271490754681826002721379679157151926244936004119994279043026281989260216747889948215325506054814517651867864907874815608934477770763638557837325734495224604546537795259296841490442252310370019664199730053260525865319402531398062843949425921999246182979089183807993081196686458491415586534468253241332489644396172530677865209568089013308157402922284725629512296407643651179671877569261038253898029298771799413923202313735345971297712560758333885837597800141979158108540874871095490231800445888788583796235744297150418601659046123872045393713311507495088411360148027847268468596671943276466931214995372670724336867968993879329963338340705741534658027485546192016204529381931825693144477201825080909438163845176393638097851902226129611647806427977741620297486331172201214606475171801703407561043852650586232282670989291232669600989552599577514915366016443290646058514033203076289437610210576511095485607486159011172384248480351006279161019224892204658577581776164703900424036691872210115305465596641484158128251474159123018869765625840422044989634562259565192717872658956951793549824444010487981027271145520403859311161796975645665432160082898599482769530257831344191539055137087682595323963312127556227249064529501296530055269087507168121149216244069660950437705303274176695963350020148892778769681687934721787076612227952871558837342686839616041197747996790484826200394294988539963636942784600564634130714250031597279171436046981574072567843425859860151734351537059306891238924904062099695657062046795355903162063411813685800508822544770575928457733900716168238375689462868259941904994587858839020957779198685364078854647926171751727274364744640449817917134212953146500531108475992549559464901667790290571188115415290912947927239755612078353356980385757393146463733828421124743895900431944339329241523054445373894095416027928826542163467361110993492861919779667870649357206443616877606394091961994882549152464082663427714308434221004076665609726854582297996121616492625844039951701862997656864551289043692529480217343302007338777143243676066681558978091015233251382294649851118418394087329809819175651462635526013309512163541051730121324854998044204925273235543897767180723897927653041302663067015505843531155551643284050905223768760089619108087234953769395621980703219510758478709100863274929187478624897153461034697900077474368030291754247923842139170652959808754933892778712199816327007515179441593672527509914245901606535833172728429804672718944327734122894586090321616929239253739007725201635084705453655084522003184166343371975828391087061794027696631575106559975167530610785825865166927484137665159469104754054145774246823364211835375665330372436907626414122965201019418081774713622616217182803027542676016366430361048441255803597752520005456975823079596868813769254381813568820994506506273842297265445718189014381703744624258770970133604827452227222370180875252969134130489141556677801428495113654364976670385532124845177615018989794775026265417316174431783354344052210849231417514094256028053164499498336080665560528449013732080333368348620413951839837665235630125759297138931530041632577310729391050064030136974817073926995592559640350512699153849184048037074202021032875483685028567558834549544248634128889009378444137972235530143392029891719278991753261002916193818753702203319567082837723373781875603301140257710976616012192113460933975293530802967055753594558480604927632165990114705832556153008197001702103604843032851271880383316629670996531572820413439017015022659711313137047711170666704350917670197833729312526611047543079422938799260701794723112155130879744809458307083816123599161626062724173874388518268502948630860031846477890154961412332917153873815714453486699352298219921407766347049883263172406276247979039687758168120452295374295569387112906920336145756153642120418501217518046389704199621450698253285901740358471237815252943451060352772989193115387136878641192634135211935416347146405530133518723490170910020839675591406135802522465938058202257897266062457058786694381810902386417914437223114437514681700544556098404997557040178161963437471975803529090102510458268779329394757234836461969787948927234739431121744181698075467663582950549312932130086385103450865978737471918727607218847089187756342978923850884453442169968177928678191556593436721832385357454696423885707825380757498749761865871676446535094816345868549972197431342603190713398600312033015092283696136438896435969519257318290227877078317318696487900733325426266262607929942527884297529480189958283565119863051473436802407311335607946943896594591870809164850552452320151745743178998271315823615385518278763725275707696547785741844593368114916573826235937975085855934257491412273258538834752337832890120621177373341232251445003235398380062443369466206357974900706128612750215220371859173817340528601245021848859800870977463918773286295195883741618806767320055278063066431536512858258638264914265886080131376454051375617964083403067819597864351694234457204715548713954284473715810647576675106168936223700890462517261475694100681769469895904439709482937930615930554217537474726713395913877298089807335925499659535556141989176839248219416463397207122311041275570083721637415250095666626484328873188476152678178494146751890214500810982065192184478770789162984186928341617257321611831253482443338250384113686376613975703162390814749002281871736459802850039894848986855952665946387699446472756844200849083999626983428508910330714078119383501228618048680166934335506060594202554531490362659751264553754871615499656514692548439428791970296532893297208076867446065822212761340265877740147666035519010434066945878323874830712115883723201571662772642041472644884100558561747151653699867171063057214068790588320251126613980794031612938888044470580796086482697119969750729372899088343885240307538491661705279171644045348475237466754236928479803269469588761262097493155211066909900805634516343697956569393964461284930030805564670982230316379777891097099135502659037288336564566374748703141906021044924641116073101959455323591631271239916537158754998863290437655884503333968226726771737024847688262130675049843978837158299883338770890116774935275238657160972703608482322408916739811099169037916613716932678990958013319019374638166336109716461144423975230272714992094039414348797496524687164433374613792654794081547732969743739615992811303331142650950048524755872768991627353532686147944335501170908999981374978395496750047452211203379233194182955979942029939910771947586716383306437107258707767279418624991780888884723486099302874441103950805114200484918004038646860120262212151766581564030248253891687551180211926746873831780988062926799256754911084210737950986432187536467371134528068241688196523636613919387055730888615256473156427773694900183915363236227718450088258277693037010076724021580566347815170986926639498120254161595231347222536539784230162924797044913427793864418746220956979539522357002532298562168218175035760463459022384854664309078875841719648331518699142394872938961611553778925159131372472097450611519650314072498658550508176103790244876664000194425822335937121014105349964580228382996061256247944371823758958748159059024856819124208800290332253929008331707210272517161354319963312237191192165879228425251564672145693315973064793492356157477714542613552505815470806261822521406657512426578592411581886022144021440611568124709103598473043163250816696736531232683556844258187003428235555788879496482981819152761733352174276732841198776686138983885576031636436338846084005080210931688014418835146186059004797310493581948484792445822559561546255839180012857837007965642662223763384316251255380070917689552233057694091319396796935797278807774063644658157325293122101793664388621037810828392311495268116769535198400057266602430857962769597338928582359766509659923783311660383301534872321519500040673977751419401882697311047220317054355455969803259575839340747797548354579654240026064139368967321613825971086274760160269404993214695141243874560906799450487152210825230447178765488554259534466311600516826254455800121294690984458863234650828148670064124738056838482265068399991327132235834144966004893644476993909943367827410273888719274328648684104695599361755151044548480944335342218145039839994230716252158498187257395600167707740208183031093640769265496594479354530404691112406593765816533293439955925605269033485760572564001807686066107383844705035000456784233440640255117874169840905560233547098010001101764461056902783137404520944503756824320836985471078694357531054703014628330442030676108582699747369594401639310767386713425268402052997035149452261993039659612688671212312354155802434435935347337444518017784962233460498508035086007544998273296724291624222379013224183963434432409096097045001370737609714668320769863540483013069530825617102579432850836995363606370602411420059901560442332712767909595201203037573143019809322965730949387875254657824150208784878271126650042445842508083583295069767925384428910938453406455408425456066238229410451806660532364889982116792188651676520292132549562957204696782916211371897948781225871824698619222631219772803323295273854103866091010295845884705994485164715559722244347910282398134101456950436769460270923712120421169084069636311371013323690294633984382462646356493260810535073195159682925377487612643178829049319201961793297273544341533814623142896453212893934298448442887907871782140850979240464762050680566395448934630418540469074072564650785820520380928121881016848913654412458265938564633830548617715854641259171196905714528086977845606864662264514368619924067315403873629725005211736485928231666420720491886234270089549891585999203489913159272990753956951683090916306649207175734828204212853858578154223860601723922918568546276738864358230348591054954585725558062073171977814635861984262359700943239674183157080041587783466816821964146229816269368777204146610539442625612666759851720554023895908757453756334648705918203921498347568457325112048117240727087478596140149868262033777786964443559478009808571182362326881895989937846617165652361198522945105688324880609211151513133649084940171891746543467568273351219185638897614076859955150948910617746529471232232085652269625250158524675366821039742716944631187155967653327642815873809113636446815287937940326107833035900212255580272171494434098147797061157121253457494287618438053507275169870551668655421561309604269576614430632840716525832895083403234464316789146895696127237687770917877302349991187888737052628453341001404544736455360469650832161925078305062136921650934566492970907911498131151588245183809345306996724575040015752827611022757701698085499551916187715364467143634935818364241792596176495396544662927513165025372511421931209164724961713356242573866398040495577620393323894425026236085158951957765191496088430840201643600649457627080559964599572087946198894014795388184591180561940350598942616196902338574124892370235994885997232800165642712818228531440416595438943311972160059613026534191013201291022415160187050891913671331799989110396966071408612508531144547490416345296872770269908346064771757291996481661363553054574719374873651585420403768787689434011289565086364873332186560454812665888670594173704793060343038418465834774538211432432752743931064684046912101736654837788605878324238031569424991950950536476347104300278469488082737272422737831133004030020554648324448132240093292294473350600395238506002794265972722453326604738427984847196842442324109989453555146996515193374535853576269005614113640673115478435335304172204196803220070071972939809460803164529463248386932884342050645558633583078508295068538920011788242072164458266193659916591220367054505244525921092052223308955871511564673425412077953766542498967711994219012503270741653195003272945230255439539411837238515065750825534032210177738617232060187362500578736181482933707604078752077372494400061320741644957160122869463269277019504805935253207850584419168366608975782957820557847106388870990605617868665358246598338632873020415923616376600240998121095394117823826632334514672101410281158310324186554075115860357072556213822033242054893219925101822693430184938057118888572928669115130653672829671790072748148201462112148782303201997240135175525051936487394578713689510276616021633836871186423114742756893589196169698403655876272806315107848845698330305023195110424436909927432451505255039187313901390554369939387597275468438288357468652392682503743514676827707583759553554505211043614119503714603725394226395733145626795946658133420392600150430344181028076999162367959350404243130633929080376577560862410321819651559848157858835229779426125103736254213001844056463512083389375334814263519486165993742485584801510570891291370760450672292034784517621504135134937599536709195032970734686764743455146667995313275617587864778408494797322505510896337880088334600462268405629111190547984184200434839127131603341053308221841224146542447503102425989065773490913293778311839292031772046466979483890815676718003075248981554196908750656583665202904698023227462607922985716353328848569580504288840228218056283683648657603469834946253314356720260897347898789699237854697779054601364033228620744498808473461798306662342603352085005581423183241146242225608188934261615825887626444114594285960511790737599622059153195002901114400279749345319314646671000828126144534485901210628618407637614808985886564723480844612883221300421234636533562112931867948565473910820968703014097422894478917748132205775160299206521146357914831143736496571308326344079504346301878905705040590330226979039904689416108375666214629276750428071605448973349671416205619460259318942698236181220614956073138362170291085974238858160230500192256348281836504457043172827516263945243427936170151092079757087454210645243372283607255032295009396472688377909786739231278393616882357751245594568121900690918799404897433480737871583203390956996186987236805664097230374701078029078329265005194795425703344519950963992910148822718557552973576270127910188641471047692603167613804787329367674688540571448890515978730817934975211964335273977642986340869495832394248989549127564433263679520527282571828089036395893823650090964476398249652726755762564349708957038424015281923537353090372624673713930964407238787713516977468307013349599606057111456577457897725381620573868376300350270088661410692593360190683940732168364408696230960384058766677342178191743839873636636325345341704918863300804650161128661422370581172378980008818481575846572926566829528031910079141265031803052941972693283267290235763043611552349252475663193626224707064369382120585298385418596153653182049243656666106704747836900669129835127596681016777789365247442984336006221154477556144463203133367351867090295539216501984081089436283413727659353485803247198503560508835708970133200589733042327937921548787245018068032705820341325342162150352417711883568511823740573170724696478068925389643334094008471778288188755976964561197404681478921705783804854412570493753528694697532925673615201487744518153513886420670320154143941279345008109264182953392898259893784578409634216757586616846389011409036637269990184007485749854394545739573848088288897497184700603097475290958202688554697607903672876698953614722459000349590842755348200508725055980541420680802061236540799830202652361600409725039848842662031654623468163737361336001004723519973599580915864631120269440194158803623934279118589770604470683763020455346599678466052901035961896623964387359692672849038467158880056394941933307404315862621015471821256295036395465431772589227396646172469691539643686085220687938331850994066285377588314713548305352198629286005172195725726757832220936962970380617972820032368182973239924594655278630112287995877496994154304506814162450442756681909295011652066453816994963554166296793668955304827066255984330316845611432390949642825849031841263812100949140214193303087551872298565890986476400152110549737233041777253518926479974009099226475165087324192484749494110120602334798768944047983060091316369442816160400970326694526478551248246741221909835065283334553329515353754312026038441056235980910274856946995783438170149328269023384216524247243863054661133603845167664927892416327697921185607354669927909260237629745300244842868183192394233544699302927625958877990364172907477484874225549100305352583143862935837006093642704634679616906898811775553341697435635347414756037654566267178324163377956388849874399497169985551990001859051393539523331274299568020870694411787945886966659265207586164616365643159277407119480004291632410991214499253633066708402958613012661841109790895814966554285372368950434343059145176612035799335864686632997035337648677058433479723983380313804240445001618266976461702673036833091231950640485279029830688595927229243087427983450927593031262132210987635608193162523660193169028818929603697047013003713526901666938644045583719732214116796913969256531072354960484670849943518834629843307410560912768992765434735506029493248549404210495995383835213933768265945995094494633762801218675409197524087235817986016125526187971778996559469726413694983703082406359745568936767473607834859677474531698210231031271133736697928676555398174974598055838640412872456741155942615436435249011775271871764936571205221612677131344409030782905977413323881589686627822637611430937817003892378897997893968912362151567198913201001540364778461036003170491119435784782054139189965699080658489283122826003925492237063088854966280409200614178627324201952788324010944856370808721682361319843451754958347453015137513789451076410972096438670863786081359440230586328714281153037343434015245188375306949986863380578260500312593821871063894043792706833848640294392902481932841451184676159916203242330177637152103588361379165189843321988603459802156020668909150276840136589660216460134955094515344741985723896548259717274316185077044875263590745140892774232761427159059047543153696868337960825295818044954021767925664609227380837709898197398862160484558659845932972708423955969145604864647062018836634913421623132042775397323527558758990839765390206217323921085566362182640966310520295687562478474075418719761979082468699169597425759150125194010201849555654675442657978662953436902952067703251207135342318437117183458840702626763643042142397366158602513703282709038042878086329588921457614613487761982139517607115933878576870690467006864611139192489328759982076262789516679842883065621703429865859289078544627474314491237516872121080877022482464355869424977763873922586268371034750797444668434500294815951998553536508660465229496277649450737780359107184905947157213672388193278841253120050736729718056324043976128034376977552429914779423265813836236402171578285211989483682223919365301172438318774254854898647720459577306311795699700001465072280364380888243541397949901314228552464169134861152480267000376367259996879099889538129835215893853925726513418606094855215389763349026008407127644944296003936288583929296726437156458494757903123787415840529217974558082724884417935175638159131605089303951696311636023923140836421518964708913218847451268906115147576421929158823185187945429877515425172281447122319083690221873760163400035000028510847183277114548842253549443458663587055877666308883405615522699082488785101599663449899006280221416635897167476081399139943247009477109196736219995536035558237840496779736404712952225888007860473255451202778935415872917719736887073106312937751893723782407826453398080149845052061005233715244032656417206104825784145139326742682529879304802450721907109714418474459920723061902244696320077752591265891850943585636225700545481551780121082982698114586248031821524318794978581236476095206872638105529878704741682989731378186183622520806764067975755221222935908653687457675430322728871622099595354439661285038093360739805143531117257256447908990868243927832347484799363256486570227349908486549430982360459375902155668060479058516612542360372383782330191587521267316234070434151240518522975102266028672371004628536474604522928611885207088386234651730431560879958207747376340553215565767438563903280641937582924167735525169568556774722948550459530712034369904769987153924299818654023558694530245451138384403949234008634545144892907251144653400146591949207288146289423462317860644754524729376640038827010432519694050791312795751848096377595972648560537154244634526650566958022549852086414083006699624485060706061051994431583921086114546549173900899684267935555128474535756726641265251471213102963840086836682343600062194933842899447699842171680787797801345894470731428927989799999866428539059237074376466581181800854488696201900256720242586272345129651088228537204439890678579909623208125524534966730686151603611185355925172128311842178291727579069531373834488854109996399486820253832439594509215526070842647147892791095272773718395265445026348308383807411836917917080753201578422952777272944630274953714255113753054643049709968851294941533369568703340816439194176878422445009979482344656510302400683043095503024055193157501865889987187870596310787451885362780600720109454244845547695256249736919405545496400084880563770907327866388807246359710424731910632419255457364795555888218992197026132182875827615705645395655229180148917315048332099203694146090021274871346455297824064536541354781638001236080275534721030661262825423138732443522201180616015398402765195380220394361111593940836703004162472522810511255123794567383433780366240801431764107276312908160846215906303642242618016592211004621364855495792469713108062972233949022208351143607187806674743618265727928746042726299372338631198834245563975712192927013261424933858049757003284447524971857324382501856119015008670744314699622452334605798484979002639065314705143715970260007280876803734477076059350174680097800899065855336706040688689370068614029303209136210490325821351361398979384880244295093183802071093711258589734138391081547241516359858962341431797049605151763272926857487448139541030403008893902217123099728366001474615239713150245913323117996818579446663994411169613197172348012986212822589071515903157539400325798563336765286896224747982133502538316263621891781873478681180320611983837926990662835151168172339730350552421512459925111857468975806382558888805437414943713795073766364266101554823121410541137444304449779478453059877897205081920872592436152918445613116665714187507561820995765725121623419740586363944998425334137969097456330105845342778824627883648137483942517316759481987712378340585882167161091798458184869254718259510024040573668933176357841236001643322262344539650605072973268485688529498643606555357753781102619720050552416824598814735429708236663324754823982070676124504141996732763714001664056120513951498373364863904575023497421426487247390384442720226346734441099593429139641955350139966565191825431571951102006311262411069644991060810104398021150735481466396972557116994034954380856651744365724365700414442389380967408659311808612363202535898938982681367404112038578446177488224476456199177726141468312691133666104653462227297482313736720374159758945704815583517181408671853710809753045282973057493041907136589183745138964988424206674402597179947506841003044741845082984643177837464339035764941176699672091052651423480929628547328446658670722132834530273303307811789957332987457653435924733281086880385015937889785560084799492042543336392925922117754181485971411431641958359290540693961080481261905339542219473166180649461997726934725872734414740348023982868181088552886449006917018867541224344045815170349724056035098517715908842702938604126673643272354096501943661814062546494380698325763060954063161953050000362803371790701070334974040206860033066464601326397992772491502652657852442429784260951444611607371952056881794288240621283155154339876829806722928222916294978991371098853547571770027863230943300063818246351749948239754593849941329344099516476940114886789687366525763560298062699579755291536826529499408238053240520569034220465942858690275487372479970215115140340142156057243423542955392466834766982171744397460018489524938038737193955253741376742125967268784210430218524730824511892470707757490556067549094166563761281314275908932655597854457488579955499827432972999358652018117715366574485892696829300301626673258677165678688168484241521391567930580950001388225853663160174901483183726047856206146655009802533500929804291774477511677659754231138175055003842458852274744487991833843968720028321661281452909988245932586155859775619697227699462896072755127919037154186213431847536100995571953617551972401055350952418452379849602045901770310888612384932050765719079103162445326882592255481810452235643146743021933122319091492497847240826292629549801206021849267748999725493092764634583486651626143533065732647595095217801639673418660960028716684958490962993634823986456267312704033195120384523024209405399748940431409134340644231821443821345340192555101626538436197976843867810945575392623747709783270676893950026093858755413782499349968507783171601576077923924272219591611125514488961483340966463621018466760837688462462989832060345731880320293738413356484067156285030969969727556012401626223521786514173528104951387018532044700266463997282563376504766743147261700602075021686147939612309390756451698757156593389936883599368077652186128576537033817279695885293096241483608614390909565553447667401111196037038769386000608891184235059802518197999059936288331500328805997823267306889004140778402481523233116055717198708730360135905419040039625899571969701213305965936345856383333740063324813879560904730653361639754131897258240073411311099460090172304159036533758766559722256720642984181519215443558508780928981472588848678499138147864015268800058792567610595685405833503749485750947688479813107183976266087568207505338343410718154135992657883335409838793641742121770271014766683949969267951654832701378931717013146994648276008838253837772955966599673373869005961038254828980373140199381572503589086457552970821487591757327474005255250925018820402078676025257099772401120166161592031616065514414745915955916942171225800866951023928144622943372315165022588902503914772808056781514923854571291851103444459618686251513413210835174809091253738214814091210928549995473333920526520085792436487985402596428621224397071344796151265328950575789653034535747306695259966210742178373129899145213740588047185448126272244369909809502671626667628364434408336232451848424894674769876368244739823920107954700625213619941179100282623980965578146475969218818461894790081046110014228726734233889682891680581983397413829669255136747749423895757411769111362635065130793407844664327862148808934784432035411660747113817672544252888981126020666280316859472370675869202369224017938297948542393314240578059313045313266562991475121132457802529097683137920651626935961201415638741260622717950882738972716168073709717465216568662886932651887377661198025806354491643206671907361627984008696975133175938185013463280813496445509980658330203661048028462653401385016448391422603357409683181987686665540185136286867889955066052528497380630294931647012506009759881741629394533731157599151913937408619714533684005090617151493389173492159699333924186744521766935257691072157126050407799496761057605101511610795695877782193717421788244422106440666454027261160825206746962177148229334078359008931761602281626414979719082003764997280417749025562231073744007882804905880901960248385167155505563902480261339560519498119877472744836660289689812488242885486440436125149257626520370748573750143329337344783950156302348666509381715487965229197880864029428486867460865613445850212195887568011207438626995265118874577020329128971270119799305521471147495187830361287968644885243668380903871821588839595724456044867887465857645782890717051805467644779216577762142261185812825260238753130162598970521704212132416090632807458773748983429404444262032109989768823930195089115984078417977641530403528499392729538236618614415308549401038194444325232103953114079183314834697283808882385585397503711973361168839809093866142130782562425637195245755941598170527889941223820978898567324877349432141413664316666023938375781581222690889402609620595477408847806622126807644557760852272223416117941583375959298577218639834374952129253142942770142976776286902079620402855566237013293339799383786498892160873046889896487528684003125706337467606349017215570532455185992738288010373699291861232857324726100128971718446187132658971147705922266574819559570426741863562861329328579979339800436462350751841365147480272924675119838536134393268833756614531485554617875173845476536482000397052652880833127264156382490013397174840014662267742046193492015384074340469329696339889152646086839084044349916388314751926574071739793381394525165924686349668655796661819616498158669831596743765974952710632807424551350364616102658244390019166772408171048251914746413061078294556153232758950396153577552101636077597251743017757313685816008047919477864013148947472841173901869862205257197039376928746424611622148270770439183787259852044673168503996120176013217435531743602427184663412937070164241297750311333972452356360962184503360106549455208215796786465133881718035221961877453808042095474791797730081618338463226400357167330848701254167260997080667209596375372166662126723753044875450453187146243308290566635962159931572328077402437087528931339963927187110572267799066571041693099118856411426130586441473331498397019116538553748741025969069095417862362500194498675449393195954293588947209282642598001531099872796440836079067362468053274821486353386883096947650095016208816309233156138462323470565460271908123407999440657560919198038166556602201343014913335185212419724313354553201253246326772477283270921455488198275801789827950654719959892596510073559414287325037565044229464775344420466138218487602144233456392906492159975638432711994705477944790029718250780907971011476512412651094793151359456693499505141002041664132699952522326093809362429029639751158247341947599730340152764295988167222780946618095544140190389100143536091735828847216070012265867570371335034539655740045394254190083450577174175668943838560308921631954424583547342914406585865510074279947528969360375263396650547579973079107602544034058282654821099969929482013442670117333983631543155953663565285789450737382769150950022197009574931277657065659488874739734960378526078210141426533531015361622274285046828184073874791680524854413054605462453756351385738814049457233095585309918348817638412199396747379907384977435950076906458304400495573732342551901417164856331626305728260212813433856256836332419299813511722649333351302584281775195008609542459799405075359706093222301174555580726141017993746733983823738232930627843670295871927363334715354497949295493098171298332519476346653002338960149958808366225733789640632921161221177066889985620061004560022687082094533462605763447274066183915609771220778504434738325659812817507825150778654480395866860303267036164710056164945517450150346475164007394673181918284128394646543012827816374395473950898288414517281206150602792155176748024386123429486633976916249074757693898308252683151256398444453390544790154159838510442127656577998553368364969077642958988898226639612029162027079246180452757840465532944786508279805046691744418522463780341910293074667167023068219705834898333709453571116571706662495384234530980579171983865485484552821477967626762713398859279445438258529722467585710590252758431084603371942822635788559646585158323465132525584636483504457646269276847454702838961091473968010017843950960820057519575069495457433480361810509236987761587478955978028334399319430513943918455097719938061821819054091389634868415865614220571341553831068305794738388345747328928425099108643441516814543753792580955695868792992787668145877863918770195928568607449710294809469630192704625996597319186393069919982754376247807151200692861304802499525801214327635652806592337982835880062598945143838432966071603245415971785014251584580628754763063149903418122869772953728226597591576844478109673630053502693967826205814828526307902048843555659267506928381903146561017654362912314687390211086431165299739701508051858426871825426302677031114058410112856956200451703032599409768760049320561734648925864835264978794263857033029796012294152781917520259987998479131094656089668842606864380386291943648308045765646305277659481639189822698137987218084416213494695875219090150041830304444878325653980823181020495107004709086654465885841598714404288196691726302930856415671472504494836831799210042244312144878977643126108053666876830685727765810401837044222576772433617416059556293400348855067631725164383467623296092084537778854038382852844294852315468536102206113757395957802630264308143889414800562565945365260972003029356682725108327522688991604642321179836401418417919816336093204891949393294322316890709488110971110521732218414312626801036565882930896833423663353577065046789928456384989381694555282127283076562225060972294423114324843366524229545191888504820528484040523065998952238486997058977029556683837405857394548113557995988443817560890695465511928607727697839735817804690088039500791711605299451539739575009824641484858334188336783799642620683431044374664965134414448844013619661324802776922276641999778669391843388125978570203351024836724719922975218776325507047065524554681514849546467772451897697453292707035516557954435784973990664274489702488689394938797615240818998807982279504995539579557969921442715868105616334039144317783413949589835958245737538138709530556224265220007585603831944431607018951453659325691353119015155499568425364793605610285249834836203506084744399024117528024163791069529772581462391129283338178731954534859486653706400828544495664346879349945556663409902726651147530411916098421596827268174181345876388256759292919732563943606411573669660583392669868067253741371752513782678737073014260132892276450608109228251757751078193203938896750055566579817750567346542262801323953783969596803772824089683800187028291859675998650986326926729223441682898064604198513254242799060292840109528694422263301387219752855999963935159317052660855572980474411540664627507570086517635736194803524790503090589062490087219629019565719886591044645000401796033622976477459973731782034628813496059950910816817872964832521231663711184306277506962376826564224011185105621390122055219835985882122535882995620597097423525946797397044950127292307134160725576266045663068855743702213128738573126260462689326137327071949848684157015696642694380742364434948409646180566093945110815561086584100718694616767218637578757435290844570180083984349107067848627202448904847084433834191359714571138473437102711635425464463512732209799943248048208706955753344699026299994886947495266902654612102093834804948972618840770487231940354483456283106029398966468228907513595953213962318801487048668435286075257982383201210734861520665858095873007326402894086338395761969557705306239914480098013368573167595716983321708271011311361210816407453206642087928391287957627122443836050897816949061036644404509068375712256293528484221924020903223796092856129096322379814260213867651062954250429772912741473753510550117857642776886255831603638479475529416363348385521970436359873609964810069637386274349468132207155202684594801962026696444706538995926423615814924760708866521113514214654811015123725604194168376163402933177290490635481018955286473916493227750741783320121802286913846642335687970022213699471148663948408527003938431403688784295946126055785508300958635492171393802951108410037576639299911589307245318083319192439482623995635547745182641986321020997966861436202229475196000326132761799999335433196050964609686782608779175557928033718095416377001133291574696450354688905648212354447428763144935516746012623305700554608478500182455170140718086868707690361838692702076891030820938340360873487638472162741277904678876976074161660676175809530989650880725171396882023117741912102005039324216627150125242706170609243762690108314383451345883301347789812281671029063501187783171140676850544341255106749755100217912867277762565515511821935344655556444341798657426679668235429987187010409423379869508355412077524004969849001370723388961001745848360846017473355281032937791290279774072510778752432657257905648615201803379770752322557495862137082796781262478263097669246094748228331276500889264112589101038026494818600490033325649917097994467027108204253197965852763274384610286980367637720345516785129680991845714301283299422516534905464214471096459154617762340641705960533214362220968612031222248153591390592862285971510266529701999467093316079746438012453692050482174616115303093426431477124173104487696553404127156046062739207598791358378278377580636783550542671726984951221589540626837099284448503586171445194319306569757087399144584064069161614186433481718493545240467931708399839129931836968253897984632252603965287090855350162754151116332223940011489413612044456720691539915211567796350218838771426414327636866971097658919332589223928165477295341988674733344375806781433397233610685572733015150115342769688027927798674078965046495957425381594788696721326145856506377693333137154944570323178512271770379708885031180031400766104735826843699482383069983112467059767843085049220519160016574362756452688705184711129065111124959908196858793446254083783259790142228285956623568106331373836502839381049861068789206041019807992994956591163704211540190607145717257094182369434887708602512550337506490782913189965132292958100783199935600811567023055005236950535631279449935156608620866233584101077128770576117498629236799464788460841267112137554513585966225157826673465452385275224473727772446955499084367867136425209286832823302224253642286623666980441803337254317589311979541069226730512690758280917023469396085280834660158469259784774982740068994981879879349271645295362777926267497613212706294263082126172777377108656365128374589873675032200026558788356810610946118117646407393813196641894920727597988213719661820003822857595503527287777740464738524096892807474220280852111381735343384672371782772300734672580693118821201431411337540113893535917814589984832189309618980809660110655183645963352887063608699246185387546288804024588389763895484361403780398714210407002906037307805818839345442999292775885958964121147007726462500711918498813538914823218029964841323024230985319271660452838165221512135976204267944316256355241847694234467547412518279878473477431989376464467971660093232693596500582941481963128454328823759461440542082697131932549187874933189400525642620270369574398413465843372244654592425365183196846952169682300335772080655409183942513120351321003209628715320008659510168349286660829579836334410864684703835712211769514655858178063118883273645977402299004378756287478887287967517586780644484757689838548682307956322748599909583851767922534486734256471891638206827888403725624191358976562834323568354236610186161571549659004111266100557443748989618894080656440525704641923781360897455926536324556590266543918031839767558820879489348628194143467720998774032062392290047045715637511400950628236773251696724702052217110715154690689991858317725415170866853422161238586103779133434455272406849316637082024300514189581750145754915291562137102663285370073780121326104445931470302161372026219901343068172952746123765540814280812414029702357830634118941509435923973821265848850046175797068614593194650181324980166721203890169939962890039102556762516517856171856357499173427090694906318359553073535185217083751158198550578938600952013529660025214105289952498837039289852308552791124942938120210248650147323544938718562140575851752790761838190594820502017473449765763134881026974673168916242074796822834995666819092430580446113866384103935439263221871055328515899574258817199091056802487215319114434936335966649798206351370687358540782651820129983423194872432404317984654023429896413017633898918606326471653452255803917004990049641336166889353678923242840147671649415275577554609221393502976816051859755175749597670252241343337620329076125005547398346569168419115189463414831864359175503057892900091603830096537821630643569646725263304810701540082224418508593387808768855762632460417863027124106120430976582395023122510493446015766073997015095086043490282981146764904811116557855546049240396463888650868018252840924725505267441141952430965978063722661020441107231058925821237720924534327123484773461043334773025136583403266056234862789631052971209573177147928937789736412519853121947695307322441462428171275282406363116996333832029652156519087987658251916946163756927123506271605161775000596055511397507370507146977497636123126379531255236416483146437431150201223817291857355037431313588341169309526235610481099521606071362708898764836431173407536983404870076121341008832411864778797566538369374568058045966442892095995448172402671635224397703526744044094458209086180679364088092626968528733722797364473617789620813848699849914442072116260487053185149597264932955857620405333571760754369315337217943270622161451229199081858656795502640061666319523232330210489186760150382408328689352111342762418759615562743959390474641611927977319888185294634999956207965572377045030811490428457365373472952918656745689990853753443106311668121730463328243132490483093862402832126528199214485163125535403325565204657402406022300840428610855253093115197246382924447425572923120552975680786706002363534283679490014537722696042334252680113046002425003025185750454859018707950208419829478514281821326472269600943364158848769334309918946905238405705446992109849499660122642060457686857990402668132219200040914005999559552195310838380648346011015303728740901695784953429294317039284181336222414520044975259433925058042450940329106141735651003531757836137578279309070172497653485224829960967643273302684972737150887328335352471495244416223201601179596381786593708679809730394489931739913574471015627609512688148439038899842314311770722657416821849452655217427887532978355363294342663640767833935008228128643079014177995839354371476206689974353412555247070316472218964302080945579260750263554910572769900694044083965178468154906462533981616343968680211706913237355901622053880298278836670418883825283094142306064071195524034801470147627770818278844700156820344905460059932483764210399382102740988265829432071549691633064121252987791586792724447780804913923647394548463171885714618433877137058919528212463599770567942566306084502254134482439206119279223453692846299666964539405709026215016513611918733875429032908323676755784724849377045997038159536162161931998088586909765640127043139076023741038958329157546637749998021808978113379002104324860869185444394045622093379177770919704808837083309467047116195233238122114313970264294862883421577770192229298181272095318326255883756785769611237452843649333468839922748870420110369324248357336040808269652448490965573947683765998090425766906224299430569603492115344109124395505083747646288465196158394307252638974269561284958868619997744333016945436131333703802976325384769468635415687985690618148661206741738974428900756661186510926056476256647132744362445756018632090912651593864918428853313709085040078354092888218720690352377606756119598739209393952426731893794681903945282057331467111190969618156182607709918695073944747547241869978646092487568507159903854969014424777789659905555668759656818548791944402160044339794302826837112544833140645735839389555640671603178823300795567861222688822794201429571955695212062919387923187436879902641023046571356300845195376611653573947050030946918575164867838295581544071194930278258244896506430181795399145024464495299081561124699876265433240989142098020093629350647880548977771823017978190975475159091348082781858657541164731934465550828237581909388806196098189604257667339847848423116982440346451922994993089944891918189969530470803795557788520166097802629327680002318088329293266765348609658967095002847200637082622932119180805745287615249131838935296865314730961203828415801742739193598622300960665125344590270066562405572611034365170960465447086639591186415896194951985152789910812766528143931498192847493112475886935038756926205389697850640787857151809098299183407303398670272890314785613070006981330386837883466184660889667715278654758964409384332575316059640134962427576421126016806410096692508053283847739380875804281558711288637845831465691158734010376052188040236558945527561359686065472887383206692888574550152375521564181745401637495349065321686257104308808049753343091894410857357955764806317811420001274646614968424866288670509823017186267751291899126839450115368793199205307536350718722827344212558612973901714469773257073445932700907570400848198277712272435538624176446444517072482211327994601151039192281471392752711408636970451335194081883396951535612336084415666798285439797551697937808641117080296541503374162552511830034290528143746482045946649635654054032110138765497629092654535011782031166072990474396842346282805850293524788730778647308573083324087753950900243537668992747020307126205473867325578240090580909901265062610001942574109036048877917890806046828928212678954572855113452636220868249436692888208436708639917862080743807665164351267428871637073831271633623065539204625861160166235612061529425186298268652823224244017621037605498790874595169296484079117436187352715173232092399657340687915370920093431113145517341773435957388205750607105802583685263398728353465200411754257595466763204909494191688161147213485349663238540809757127510932817164434259629556862771806929586382688471937005137690005753645145641043634121324869148403706807880211176894551078011370472086252059969955563197146183170746753827856264278391370054363474767585379609411145072513906302704565183478951993292661707202667322284504339236752838483189398350520840699709279228908687891062284476113927199254687375213860363661895474960500353244590273652906917921757545781712457630823531067119007434594792989825481459294984186676895994163275032269124438075403726275844113504411751747539372708509208165173017670452604259346202131669795916503607261305331540292133134073741132615206734796290922068371295367064447681522058666660831416412902250473111248168554344140490354500397070769231547108755790892802617812522014334432489512723677409773042639619046072699119011213191566566201448929626916904234665786368011282544807368260726922782203641007082501497867668621932992188481616699061603805503762696847258806899821751177115204714607701632712755280503998356907238916560980217388935498766710093486466454326814292692894684463033640144280178698892546614093498819958996484205331929594967047975448023301126664507794370346237329919998399496922984899537209046848874886600466636048293602330372706388720074107859756629066415301903666974964542146697944597863887278394699394879448102745712984759506159450096824265929121726180734992620569127135609948051621325785870304316272387639184835320455387144733003156749000610145108301236355187428655469689445572625424992921157365138894052187775441374493391045044201285751770408484703548944182460737580782959204988654480407037096935235888075544494511162806679227604795522775315403577137061285475068599538762905179255980294316509627713794334151674605379029472545528220969314014744148305808876423665129687801593591841557274571213294272748149776870396762347244855054876468028618231124153887252719464237191295505278126508663759541386651473649733856361603258753315951530408968959793781182034016558544730921929591910418458573322136972292924977709856730727992474720754286717206118000382512159744759421813057609992547512458524871150422476890654434096020686743844764248765360132579056130858648460754596251169959213894763146591306713017069992024382897180817429208413603083542602328730344390148800177584854157812497795402862803880410335923726605398966209014251188464786935675102583451184119835529759778374048484804994879381844644121649077984927584974268011302322615384527697147576296919543795928686814264386518548341606364828885969251440983795939818573135071024113780335240374673805191952982542406272809998765660257966176683182817960951125334968616162369969911316161953560082165854719695687948759621873093063423698711655302894643816305885872099280230416112006107369505334285295473822278866747185851230944923011751207374012540714057084503673342945446400448769300508694728578387563857008112107097397536306480165361046732403255300018733644690132654705838931716183258792792496669826635973778951728548605820579572171433047534308478991997763651483580719760149071713805780439723163331274931034606761903504169242012992032869905178371843581534076979905345108467371199236504022740197507421107108232807259830145047516354621171990142465189462738634001449682645408567508250541122840265944021002744861562440974953859364012004219621895494255630817313647584256961446144397639031594785808133957633149185195034507659673230567011672656400046443955970468877476084673728331857802476063858609250786626158370830769413713701449866432506367760189749512008605790339487304051844548184803223137495736735491303189759974147192329692249373240832658170472172457100043044970368660451956465831661295054569043211451535643281723445597037107198912980969403097820244509783251651768257118732931884760505341680188468826489187579564639326858009712992513727504072150504411575738106861985678073767287109606176307197971622504731712520278035580937301222476037405971944524047752487425947078705784658624790248676412973929396676698254384735301892515679702768459016820884029397463617880303180044209183353335443096117092394348696564771543598798904152713619294215135135302216658684483831128900195098631611603651557715221353004660737194847727621822004542947157538458656209506182258278720024612167984692056885497098527109235792289595122608406762389862291580599943926049344280764132030429594277455900602194653110701854310544054336137831651698729632416858232573750370167395681715740521762627605660807509297717091481413777259540022466333340341723657646990761608461609103187100275671610358746024465613549884912749562141869358625587519363969494732511968081062351225105313322321153466937986104354747440647023911679227124424525701542015113764759010063517598804366657393814011107518584153746658643053892568747681647000768849966114351191580805509717741215212066879376310090771834180630429328838040355813085616233333199982898608287800184122245096982145905042512586989432544703259700979091212859202222789010829619773776759497809391592461462378874449361019484098307596984169099007934544482721112960637708324169881435200314952717648172830166007633648907737233848495361825354186889562915979167536958348792826420604809963354188538628010959745396341639193851896249873049819067085359968974741485340295174669573068702487145382817021457186080610805786368275483570308005684629106104711097109121106109148124987951564952891880539588270384990896233535660559461277018823752389134653826041433544761675989103078299767302405763180051798942198241376560833017676848096677972911914069381020405931864984836814014040733048842116052579709116322149708734691456667611000295253358855325843123820239092857807577192159749801796609361878312886782091321069194998656931846735965857856226805746840082587561092267548750193073865588975610339237750887756024740993152120839244578470989263124832872901048588494425779926038896745315162587514723872391103697711993353117517984980786009729585412889774571489840189551790305583158825634473947933022028368815770560785946505996401040119636016026541545162884141028200192324445610764263734917696277823807802907196274706853386386099691457258756501750741414372188714027854438139668723878754868388654101404320985291126520614098127165437308458705120696686196190084863026749306187723761565709243346165778934382273170549170160807360380971782010550227308679327506539129547097571766927123835967887190986144141447586049545264355521572756068141184366456976083717825212967049550358347055035247209735056394265041203433578821567579122232335808977901181226318504362407101908877663009242589657020337312673992041223176639406958767773700545889715936746575996800309372911485347493040010874434363713496437961309128785002545331358399027108620183148379118130118636042159890595983452574636893544827909199277630804321431140737175190055027287395526472929682418307297568192092184565441372931561968904789353114855876207310074200406559295711228996372536155839124631573359004371560134612180137601026125135277555896304907647421604690915211013651210082000874780204652075616533739239390812508003901926753425931471279535133688551571089188318902293696620390642856639800684761179952840235324016697024982388947800847634139528815545654050091803218754435103849335813245372807319957874614315143204070225511680862961702426743649229548482482527227584756953495326939300981841337048306722694910811864969872862268146091242861376659623199486089089633055749709451154182970910251591462100935945062223574375311814659839694271273359789887948173469564625268014281931781172316193722104781369342877880156167251248125458696037207184311955990627043051305342662474431326861933833523231148625689368898544092375165859588020867995774816920047732822596406375305332447638038922131180595515001725179296566746214538754304674703619530211702099934225713630012992176115559854004821362964057848476506516644252113179629889548541685788174943549693180476595604193855798271734678576115502305688553012608094870293253283276279112508376768693391488684232595666475709713792187155065788890657403607369991202735531740447084511408335671542345634969027795505108384658650907546703335581656353928785434582849566329144245849828480893537955068458496065304505450499746700231428273588029069185818678174359196594509699500649023819455792815491495542974793927063383576706979054909348250562296583629916505048645225537134067317397602567746449318223536064323190740421032221812967855447390371385337663657367900255083929898660272626240529786894048760251178481238914832561532582896561716053364860625864860292568013645014780413906826872042655406233300704224846313236662008507194141240725371958053078856039895625934318457243010732744848843418699059335666815253226109581208721754990599491357764215228901591646933858523484413442239843037290512764493347621391118720207442015911083403539482015243392551252165625101084383876443637137708547659084431008991653989914531728951757044627294337771145667174035150998709039330287741871494843467081524132739107510536294815307354204974801603686250972695730595971070587587424768694517735107745087752432851777262081730069902715614973639679502904841411090427119041327501856559561495907302025068974182191623141585936479386039325051953113369837122369763581301842744281284015034885428435490210996100991381718136033175429417164921490829302544187758695680157021498465228801509490725449321410437815463943255709335683723892341343479159050255664022365772022966032841135788055655620988617843273024814488446847733923056412740903365348657292740461887730297789510445112827861231226664513875129486553109728956724965455001720111246119715323378169748711481274205904425510939410067848044760021178534924993832203392090147822618513690955164242905183102442236660019541758841166220540680977492442657982247304762756378932743873211192500641776258552428161784162300995633228153104475766203915627809101692449862614379870346355765234710911784281902022343565206936339417947710988448113884655448447417191381963973430014010926668590317916517946683689721129198039864111606565808387197447824239161766788578306033484228034687672109755687259021039913660437769927151349750669557773595615185008787697925450717504958235243136423525900113704489571947700634913297931433183446489798258927215463527246514577404662240447744294212260563698303098790127706400320891611950852565655229600285469311876344558919022293081741684295749792794019425572876310432614879056401578329354939896531241721054731039497264069933440196430602010538683293269803149113185861537664777149130942008330095410482747479183611963754242980294396877826753415681951587575411074040335791284983020519610328511415217729898477145889643797246291018643789578086124723017003562573572523089241759741803786777316621241350066673467017288342027780880252583512487812925739150150767091249339763385265516414647625753744644753055646467505931568270160008721579722835354337916498163899614249757781715824067161147880743566276250917258809814405284516360887642554782118383610158199377274158877068833338795832085163462202887254095593422667027663393192220484766584499652834246247273273211813826798421558280747688793704760729671449921158908877894749411128393713067845707212455192898937607227082871022350322296366092075596888681466224988580284116448060199278486809501657509020600396816865425922696545556643733641707462635020212410876081239072576282635493142193512635700202170811277229952672630599366706325195481339092979295934695340430099869252853174151244059973457020448018644274262875255410080045326565179215680311310056130885656515196947822150444814325228668830790586021629662676304999755730744826273859124874166039321537415941754083599189446839828011069375473663697518710639034520058979195309663590896197369794377983283779106790748174682050523231147518029789598456418579925650841190129494930460103889864934353030694326705833559822053837786394569794371747997876494851003337583404297845591052519518830408718652815039245859160299300108175490179431743389219478185659195609028240202228703461639366684419203299827009502949593482314805633742398546638130007692699172723840651605771952203871547740187943522845137678249010487987277227750273506516457292329742739725517642560902968050003274822277076655572271667317621697081201393232370578443532560983659351896628366948331705106695096037917446950214716736542270873159707103986328482211543548016781495068447509127496128594559475278464070240776716172106197410293795256797732464411008605453307461677925112069947881298540617770949098229152621890322706653377195371249201216093002537589156056170988055927939697313630952905736051513453737116344484813279345820108777987196404166203196047612162778126084015078678007628487678408147797031835760893439594792184449948583891662974577287132886590358826390928291057633628662847041536788446579011017712448008705458595496522269314181237893379697990494644665195034088659990798212359764827315203163565226129350298594441156126784599019734910973719965350063565427774930054542461974404442618114170985534931510511873325534268804508616892919770342320293242175031302347059478767114558810986321113477306488229016508646385865647271950646849460483995568878960184141494806843328012204963353205949960585544456609973460937485144410437167219239955907829944745739801153956807079582066174839607462377818961827264672104029077107641966871067708835943300384759067083724444942599461661765433623836014551228471901452008395813116760784108107220886397340304157154185647038362297520439391510937355824236733371250725271317451305659500995867207917821875748808691967256434689256394861690059276232453340923956914860086111079863720484388514008942926040309639336157231061003208702486424968753590022881774204980771834279988432418008913485157112604820130428011655783182963520866617334031524982821810482387678590862291382204420179169164334339660357857543148278800110175525713141332158576843859825258216727888859079588683039511080944279612415239077087197807464867503518409368564257589027036934452482931784763043439220746848875747995280111641918692594383679123462894455789160090020306574951822261477803631196401282576049288115685224345887512219124459309980270302948557902494438714629086553188378404351150905152765041751196533016867053207715504303408557848125786547096660813569833555606597957205809227250728505974368173499646164378656710547667117796796625725708971886650368228614305190493514424607631089537371744981345929327912300138405754346890289478749990233319818286672110754624082807808343158361986703756158827446667285314310709243600631778202101537596982036305533318067643746431807669677030526436583564875266022904460789764212514234489688369930053078337409181704045477453380533447066305635424220528747724336204243407231089560326225449645033957894440096793675931208641317115347171377362507455689949831308841031687924824908240348415813115796119905702638408941576973139498868768742648074280421797446142819508332268512491550634927895257868728203668283904262346430923954845763319965427797171676744783157639808760175022501613717101684879787482779020945110521688835031970614563944103563379654256841023426453497972309575747265702945380950193521090207338330601368434089955593292311485622750254705730283386574846637478929259875864034414012493178984696414637231956602433956509176451741406775909488326666649892788606396846057693462361991982135271444301788931802145196922958762768012513938511618518402425655356554966427793311702906691940595131124638900426785945949518101476506059441674677198334525209385265807645672754949402446644476287973058535409063071757853974132645242091824912933654923922939144298938022848384211043872756476337927826143268401233437354362624913572645374136808915941498037323043703122319628272231906534730644114422570841931414231505658088532133649625955082709603950770144924264757734967569487637761122873000091969664777565920818449355805287580279950230628118157115166399157553629538203614832548921614798746963931889687363029093836301901574695661640921858821251235086123152948650214182073946277221014603827317340989863512092213737332012516899834219828862682413127285684530516557699995076078577408771537410771356918880654592046426254940427443204545605533537622893180323427655895389524859371817696707280014351069946649173956167188395771463760918985209907379448008594464984691627213032030689028634493785543887989655903713121934599453302415831351667408656009400721186060647535388065281109225643717022295063401683310009515059812277725635384201529447855306655632273436762062768698519272761391049323111194927584803831711388114274434688380812546405581762565784481977464530368532110626295963351907673854999027292298142150834871064429262704117070338592011697138081459104872893963404624977387863092442385213943738744136002935572588300143749612738375733164561630890090022896577221616009779551076705768364355281199970219101887954343206908840789521440110979972293476185978070262188255087828899321284455393904329529039191480858101758663578769661042852864654908901098103223244218695046574894842201491153279119325527605772242045532230401389621796629377295365284636780549263624825822387083393705741565664692103259457608866010542544540333401010546520384712993428882188430911603194981013704841033738562960257679158403724143363126359176220305412412409014516249476625010492830979512776142037338575257539036581974409089106595731479442495211643988835065953616381841243675201957352103316563518215460743754185091815781518830073999803195240685559581266753391467264246026137777740644892123783057114942852765694183854053679934880949283433160454556207025822793010851464249423897655727457421746396243313250742020385785709928321972075288493389587156717491809793817254939962363379732479520202379265724970921853663547034355544547467695536772052475338415910034798386807204534375827118101754281432276953061319718981577927841883769749198821053242431737962367327990957433057047466593449845717634306209041362822279466377499663286149838927796826031252232512116546973088867107213793521276237851972813029207636056095583508905246150785779527999656237459959411487819679620758349395218799981895637324156577967876442491975070493519765499851266347468802424209260157602707950102269092240136242597524515748145740272336446116000742632279456432471385898316380376076080011035792298051650267688657345490322967632601839211870610361449915575757927136727689097565567503488822831941282930233348196909464221922370722403493904546130292211591896268948396619159061077826556231460497142536172452335250144786686677157696238765971915763221797845609163305548312704071842587298096341491896142632078429688638778743905296273988188974623661316608281631388850467811550954733945237007036116792020537929812751392688772181327704500425215205267347895354281339970636808182511670077348011871085157202311970405330780134651266546947149972511210276434996066648569909296611138584684034526605871879452786379779426195584086131212352625442222970572163781213337983659241594491277556648229503101860337681460838834898650276363105174018755085866313234448249396752568345077043875534012775887401153423862573149778357994270268180695189098290100217086717938559152963361586135771123619958683592690867996872915523767007265408755008515746912699130915264433128473286756300780328661883850247777251842491138633812370014366875858733306046134772892989009721200583390645503967554921875292427490177904586459373932919972404678821711927645703441995837636838108743542989792230983481907975929558067212828845220707335409370786721256295360536870465337091040358783904308620825323589838033735889309578796043115634906585977095727147914134707689174076813987655564020126017162868047211118896699370896176635846402627723234709927048106112945678987842315420109104639415513313404026355040155575264982576437787406215737420674429876103132979293182155194069318495616539044386962552194378622995464504724449825227709555236852864952899101731882479222287824187250034814175700510990908263014298963826215510662817429277137462829231906558223232970845558461580648746770193076847379831134183623994944268598196949800159735776275166019712040907632596171553724743707527892832553480891224242534960006181120798965836209569559123814554096707659866998495175414722048348302016237927969752273922749964973617739220608306969927662979340069800892364128956275129786860747336373374704298646993450921209923973651172832284659900602283302698755895239525234750546619282578476222937031138223815165580761913831203769639707280298266817956468580251929342253200491671849077378299301639604372347109889136773385561475592390853464294389618978807572151694423875357556070972541906812837815815279455310890228935699309873598375273631888419621333902226090212792853444383356982693017753126141048977638159186585605148310106719905687899344253957852710882019233684765626694340713501517935160751168788434189438418495030937254201835835064119920859624185922159210891347534199422881014684416740587733903008614520391269036173403348555019757033279895607269390092317639112688011129030593173226767802088034704073028480717422608627063566601521597506887546751413358880512983524606842836757667614379320813919829073101172108056666223085449962529985079786905641261226267553498192372689909439055198317324167881377797859839101448021770168236916499942249138245220312586877448532228410671446729892791799916005936895121663529676211241840129820608269361795081029809035712508917234068386207886436499360989300566104681195105464935293597531424651904355368579051543990411316186578383740166749013407061995293890339016850415512712430701130588632478936950108089330006362380961962416284508574112326122308840804828637397759745436661023434651359191521772549414838167583185814047677386345110992266773552164163846138150858753258328373825024150553418038671925002705243654765236321406685858633390633031829480487339004204787471193593689223901949181423237023228535822500856910249162639310763771784391863836696450644011254453418865144230015875612031903272679786374654085166815035796521436319586615492228929463356182415140009562738122317009588872998927731261271581253071474578225810187583182655051891601544532858383073561037450421387788143829551453842956597140519971290140166220450818152302399146681411537703594161366082027258194310284527766394192211490853595331715491602954405993014324232314169773548107520964864227818681988591724452825940268982248095736162470488484111165570266573203855983331673707346305663040619257271643227877472862728833165498037712129511633926356552848152549770681851187849152936701615506015735049369455751701938648119783650829728957725681350531442204034731857117146543185970074553501983146053514046874095272272375989428327234237497921163664021315255653651166390322874317342027487231409901760888720598492884285444604699046508421173426479938929946948024227436205947008427121643745340215599605873227858827971491178215259482897321098062945797904042120782810109808860431406991586532136210907839308095115538760827573422269245570332518100832774043357528066141839988177050444307657735039814069888976110189970383273946461770169028837460043485719949422177784047417327939503144843265850820924959248368258399801930177813598153741418088130143038806874584642347772842756455117266962553801226151257843681790143619872319983962882803188913015668378620051558040944502705563369814032023620076219184827857756639843926092366820217510582563325628603841231288333601649413420261023376774750480688573435169630215264611719022004394579506401340705936507863519675631621099580765377605907214668544916618265727357991482752087831002620288186075809721426430113371120091769765300908014066144953586032177630602118029232672789294623211444305895791394594842914074611613670649723656022599668296507970530187114792643755776141855072088548443801378568654067213472365194471213254313426236819283608344819797529213868335772844916277329366644319182316521008281255882934544469453865309928506036020646603898213523384069959739777728365726784555734221353283725244128888995119087907363257224702523119745359592776049356944935631404035774428930236235484348782642451506929732290048413784530719166323972329037962734162210606475379722454958512912624729572673262919051078373539405926852416055199024942253840914806250987217741313081900213374434448849487662610742769052243268281915339019913593969412267191316175809735224704611120651042449912786114994440843606449320133185379381610751971004540675658618015546694830673867007290312042924457146308252436702499233414182282204070275980735154000591558400639866163928995619211657798075236754758117981586306374910937696021115749995474450065375114361962791251456982519171308109781555863125140600061908570764140591709549432894816200151124552035955941388646760227264530246601213393638791449278878046385815541618516531079613973678771240823676989585764733121187549468650634420160068884272506648144214624624294945264553466886768659334010494140565527463209524540925265604059640121334249032516927234149750549762004843298709623381652949524717491418957379712716425033586684951854298400204976917334570470680579537333918122395634831552596920753826581707364988748304226189134603289735636312436955346238739250191885230829956653486015602844717597132473274087684350589007312835572367466837078104037687801711527453833383799663626542922687895592169511947750341834121027952719878715362932695664157171063003268166975524141704393364875366283181312739391160335288714470287478595224129788728600994021191582832237116781453718887207453298986396890169010137541914242452156167335356635970977069547608903741034305549005768952813454786876620411062696323452119542929526709790224985985506926681980950789512870421763034749329174637303592103132195349415838046481909764542048833952988244122569812889535794660122752556775543554207625398873359357097151333499864079984905022058954234593200232015835105978355184252474717999109604462076239385078315563634391680908972625015300351635200916608200973721661029762512347706703609020988735874372625065080961933989453516821803262881895413605962422013407906828763340499282766343802857128893539471635469886688728693056011931674789381697232459138102848430036796520746844851116104535798242011076560038375489977763360617897125756909928334536841497682907286161073747443443734033036105917776593037101573686834675292206470646100276777693152727827987202677547252477913352801938908881997419406575904874526503812112126419595541977200008228464312546024451500698324772728062778135213815955634203241801308008077667648768204512847660441991917671253851412134787059753036702090279431154727227087834544281289259692747338692521167602850957775741591119745202639022984768739964090303423774940678023857072680481907276806906711426644986439318833888069020349002978297379053202332134176396253666695869950688846163031576704096409047967509234759801626721148933972305115753288923109507816569834116593610109201180475235715127310691037911677772430528159089423496805690319302912927771292645057744774344226961128784180466303871743901943370977403590906102979909872722347489702696932010503119033554067985080042493480014997528219809979570574039277387961794552912252194820370640378608853941435178543347401923362202661203367291846151217293185037271356636706178779947721298732993354791626264841342011942532029056858272482808427534267377355946463945279543611500007683925031941385746151411712542631286065805778690709831361586630452266672241485572081885994510749350758862159299680077198798431629874413078385465111036879225615724462820400948541628940235245674124107140686335850700441514571957000136558004938184747396813361332398689990913965765152183648707448913271877508290956776289236065890281433087720207614434567359132045401510227829244472451281482687546461583761440456083743559216069140282578247460509104016373110806130256850327195432233473978382350127229399878959006305416160772401139332463905776738995037056130224293684751327583770696669298693529907626221773665528789240785220990538975918707988927870812691443101983019668377983277512358071996522358019178729833784412063566698508737176040330079630934220306095857322447552422391471872761649540009527038505861221284872846805601525528137531154547926289670103887407111431406111808567358163466725269921490871455803848249493296032752882552268367924723088627344122031962970988787087111174288910565167322489852170330073659147139686805506023368107047106197484190802926867473705482089528897958430062986124994415437376264329057286732066682639728447439948210278627001737326471843437770370394497402787046608919117716221807407968695610209585912547896887813475648513422926163688158703983042062752638642468567673745488270110578587712883731766316733418898545032593628347985617743844163222236340927558255824662140848668513637707767894010801147803092503266327998866714705733805457041082715125083767236609221897062467158261702648422410371107073795802297744377007107539461512191280150207050317917545500925883181908836458915496544718795317572608197393867700754583370999337977761819809050787369676993146390643843561207911803377048804571883964333626804496304469381379162927332062728772775122332969669470447889200762084652798782398648969173578160711919487845738670611013126140267570132015155638256271737188849350784506268326144888432598850140817012930312952304136144638287394135740901189595339768911996316568413542946038443838927849885348772640795699494474977025037744328195081945315482442362739194386327534728638520095284658636441135271951328363525980729032025215510415851392455362402097917697986977079477713186302962181413806812783309245799822730743751196741723307976858074546761329479056137150523489031137854795848249920558952032409620881126693506765125794319057950173654712999562983641976647523294574957123722213137240977152681508941124328908763061187654196850570357927621664902064388326565013744885354107135697735736830256843620705563829458357718799000948252073782825952998206404717583538772776192422905230830327586751040734279261120012317681268827736546780664467585792787820666195041285200970748780780276301374077302189487102701753450679031926995052077620671269065211769658515766113829632747604238509824125409752945839313790204131431452154401740788503957682687739073012524140195235559780715478638204482870072025907437581602450215122470322275703879816572064430680346878552800005702908794745366760552018627897825135388070645945606109244163931684633976684398533466534512922145113025481734382689324289701076737224777769013462879850936860185023771347392991793882651918185080423898712813327073003112494986709334238367954261661140650636298166130406490123620625419826460035692150780488540205067193239725178539739556910023289906469486372770014455757469863563817257958666028605154088814265000925055947016677471026903438800417915108869549076031484014696417438490316798506789610197455878473552434866077785819280036378815979801018375957130322124680070415592452369258537018689162450908157452803793073446256006748834138325231017444281857294987731228133231980586898301242056955574104921754752676548473633928353316091822785275148937034502259795161928349502100258869095610422964879702458629641388238926289425560381983973504415637031807314870986371497783366929361650626312060975845709644162919747564438218465232880628146593329033685400403877550630256051712871816508843490708802857218665778515942914448774449857177915762740242712170648968400458622979821573237214340225887501212337407433931384855046306065491045635364710199034527758054898120814218745985929094099390099376901906076123075592277155287429580177476955901690319966911836472689309171480816136782685720847480828503657986776771266385539666208305431196633508181550043477436846529243104925698674621415226480822936971247626083350482275822813240253290422569606072720768114652948732809361999818210283172730707888485350434969851811114795310975644614183360752892396460418711532920372423164771516584889340762212799983186028105325247365672184929085267474251791150888459320364235411476289535845025757545013569176071314942409300862668405934756244590338792814054366973957592616650682593739964220818133031583641896709000559157449481330866729821907387138014992360103484554193812490513112699218802822763544189821941176058955669394189973502128637406424343813803620112544844022590036097314944611231021304648856648369967446425386832229204341550460734465182721217610556332597590850924955559808132440725220092440767198457303759335939760948688094447569931620695914701077836212708767321892598607554646023220124456552169549051260319055886822170344671528517008841994923509723849757904377544521977634418457350824887413626532115943772402349359702189562630063637858731375950336111205224288327003676842875773594313712955871068113135023934805586123921888448021655404367809907685358726966064605287117422633878718575043036483382863509121973597077640373164826022927903736189597860882322011817489656161273300745779694538384985937814291909309084842976599288009598779916742355681819424846173258288681248902275339787444814608904327220544722889786801090065436168631979312481333193776521507954194570782445845508125856659403980930973919158527534772174504438463931812043038791944654512318602915437252361790571595254185215464929201781118170611457274164919812166385421165332727972885867324103405583520650277138694945368483396239956461165654057720811508943826483526417025614772754608155624901252395998725803564129526613073096349386378789524317632814803650345856842294551122062368085614927844919954970094384256269339947278013614161251216533493837735638797570079690245849145223057856688624318217844639226352323932258356913254422323208935434138978981746588218635703266262273617931352591236065867515026413808913907099905651865786599303141091900605534746885873847515674336124997382528308097411821604120803542791049016567752324874911564384634693893984627739192439757923013888488544604539982062384542536029462423175801203215464939224021468285496271539523959198090618863809711190508010652177753504938131592046128473898258455982655276683091059471511331195531848812064376830410611633098279207214839408599089991145787632568039973451789166346473666744509526191312710300198102976400161583788904719675269799090099214392857381140203124837062947735825983017668353667726943354424626808732782898821133483375011679480019539885634251843664313934882661107075220015454509586675967145927429241371650725996468235753321485919107730713149178663006040796789399605700557653867557039201470705448519475413557605006717042641893848159493431151980371347042205620928162132143965872983713297005978669143914135553093798175203509683009291180911314858101873765236100625334766075386635369032371379800858962040465151076175941160779097063776005709956693512209322527100539962286083872819097390658918351240470574199427930944415022314803136107265860921430965615704333245530982814715514758657612023704744684496117299560775876296463239412066989852853468975557805906266986570701522443779756204419969905986724331455332831114270504795376290189903087400551337684369959335838869676983187672231068385379478745959693452531840845582545647035617956709372093752082743004326736731485714151596243153403193533192079780214030599228603808813095177488953358984562879882358048138958321106370772298438613472592172060770387155309764999068635397659714063895691867197213376227221562742431606046664838104258995918099307145440856907901260769065559622997539062780030901410841883498530366243914422659004718871418203229864362626494121373039200847789941873259999592517582108577960566833845967436360018275668961237288747367275373499861583813847968249167748556166950041929463843707400674891867818683647708295201290273285870326891155127482117885387777786449132616873762339433722590068921364019116339284286592939564120571713412565144532505589549759847598212826819170290387119583663935497754302321158945495011247278711099850559183998057758914501464460010634018515287312293224780593783379038805012680411443805911723753648846406651759535770889169777283079893858590201243067824388711926161079706664574621522112345573400743576410672336981867377149825404915855645489260578373443301269306263953533602261989185587500422535099247695810113545699545825932222484075335854918738615200271549528724660494189782820902872724765182626649484231116474456185009772120549679835587376671498360581758738678734676639314220684877200910859413686572943068718560168075214855992781513589638730754511233445960844438043360502409501030149454794954120754264589390503803959911391142359284794046130043850483699665497767777760506815815706910875483890508806149581217921415652828506270435467629400486321995852969603325062894373179857302150667456556469678503898350347496979314728741573588298611878159630039399712519048654394244065509858616921033605720606951817627624156578375245451392285010611189315861829063655666433464293963864421064619228330184606508903722303901650271132857084876104002887541119902793425223687194162286709915857426524150795817545668611769223983433569176988363757963142860124281032579192288190524196747744308872217182368850154870042339735906562468143504357510067761374918533532262877308586942436372441150097174630226218637837407802184915876797005793868921936335820357851968818882817161688572782139700788561708635716221057307279520680048940754560064052396276619780738059279932540287137724897409267023404033705952099847865645249778415943562939165959854263846464571180807278096124105398253186163204969145935137572143890246970870800466169629832892560730144788563308240603785289839374058755072034043267882378812591043482042988004670622289731582130114874876190109667226432173877692118445397812659515915367417491591783704500458784374549908464720800647839300712643546304615806275123607632406320130169498441616348248183378356539176372187607626307347810854915572290421458095769611716134578306921750704160427174620989341365590032630550760099563754748470825069031038974479420154774648327816421556773132024742897301994263880437143233594703046387441844862955364092052305065556717716497394393907250306942891711969896053538836322719340957339625523103315014661710504980673874911122009551616925423979531334677559296964501964772202330900259911084119695033625543633891452093486239203559003196005147294786852922314061383921169348599651933936455533702433842845873182589811567711270813249438641774421011624114831706230036817440137024994681282353615638377070401570642374660934868854718836886671126821950756821238831380275372945042492335016184368084888689516041662535652598068574148222870342849407679907794389658415106023741144488423287185979021297684612496358210321095376396916321466654461569710588518885399998316445414439052719453970657647231260721842588870349095490695847242928774522765836361554039663404468060250021836461492224351518776768537337025211779795949986577912428726731365103589999703961502982204965360004537537386407431583963309346356319435022823240864414845366286084299753448410972908901545230695667169987369897347932731363488285999029182075179539253661641769508994563919687886009045709337135423685160172270143759631260589201105426136056554221665662796277955072997015363383363351478174953241899679992894853583705880443125544105129419375112418440398955659518573071866030511692563629405630074471769776805448798513370098607522801708731728043933017441692129181298584704386366583765899809404949320580369692663067927110852300764029322052159186845693851802763590705353126213543630165444275423312169141177256534709342509332455658642129751568422165434185032324120487820898276583654184235865478551223040266994565162576878105590013174522567681110259354402550912683443792611076529888434949315681014083697164519691503407738380209545298536449382789418503119354490119906598987739570834305086519599937532790091573867801066871343840833385942652915045511855883539342782685554149244301170488447026108714137005878481827881419540719345208572061049633396062980713282386039346293163682294486322358649016383197407979527920580114906856342794268291959677796572850422668890622847944664176329549384209930841091432573181795416352961338567305886598230814418963924889323187491851491639910912455629248887411438952561742308133548062092795917657219028188053305218999076972144570779933375488815175636863278403146914009299754613505470444249572328323085889455982404901073663723818882508651268758138902871120928228617608304911235937279423221529978658540523959962282428847597280474452656152421677177065651830919791503836938399437720043837300159658704260982154345012621710194520635318701214290539085669326425490388345727984478185121867906671020765528956836057981986830257323939567143848892431689098111991792496242567929202922363316162390685277499775038024632573518886856819880367304754836465865587559987339488994936498340756803767739781960702423876797644752473564406676670436220497608800135749813582841959573572449407415440648458260558162565679905225807326896484120161695643146714583937437210420617434267731283926803976587680258666227038410933429100560722303469211835838214074136040354581389110481977589665698244920338765168589895577170855674194140092112920866739257207796484441058723108738073190147309060947229459680670912734957924027476637863479752687816438398152390437430515877883742066305742173434596800002906658751193712309832546740949752334183932835401516005748611285890992699647389804053458011289078793166208494388073575088863382054297135767655296101434120960706556843382949445328873353400659358750151819499535090167603541467091204820596451657602817325155310991523476399233216459793679343789840230568000706908829207925163016505764219603848450371678102409471082243728452458219322299712965273244633377537892512403312977964662101500395463596221215846120428952938246301118011558693508067199811259934434623956507847828580572313760593742512918745558770779459527118522297395793103769768326833624834774348095944455652198707351376551457689974548792992542321621519741001328149773418171282022171491633631981664092164363039417862677766492949387550501072069089988863828800169467215787835474446537520349878885898918715438691319881114624393198701191090494518002296751643229988610244728956232511462575788697828262601817271934648612403965159078421422723865040235407831904943337547395470918935286220481414250003362393904233802028799781492257378930515242167409955025990583223932708019403582133094554132833840967162885551097266680882216799841707103061097970203628159929006652186551227560358660769388557335110464897371328110733834852699310460001117566346610221331323233684154076371892839974006929922291996108432447546419405161716602448420951845255920244737456311124175754107094071901006175407549512059042709655320736557428253480654744077462851909576647800334183569268307132089259701491892220930581266641785579808618740936800299201304076532496864585287387454504846896840549619951647190312102131672758680354199151498211048576311228179489948757949557370993543832305356151103324769307702485262119017650262713660330953655241318943036553677681049865938839026617243904161545779454697797784245861167510746922808890672544438344798059317546019012168885363257714885385836341390157231324620784492957992786946156532315471822719413518255204103333318087432863969507601834229014622675458979222532927946342771512083948886978349408211051691513905647794957943411011834320940102707785835427872329620220293007087474386166673783118258382768176882533608549754989691153671164381436889296425503717075347863118350691259046248577166078263650682469699348306659082756587948055180888245243042495059085652787253673128684065856543932260042797136418075085901396566507725628697906884658450439033520802959066878412760197097776896072119170498166805929644634044880459032488673258500604255052221759896664159542003165920190404453761279733149353214266983825825324455001932209758350755375705038495154329174434116132613048879923951954974163687389257535518968977558641025919758735183889162060887776900914602585255586699915405760738882867112657573167108680547597500734293401973918693346229534438336283861923235816005389171322486559545303606355162105797002821617438444790087500237186290119850563893657250849502447320888129973670445076820253031154531818476810482493166480568935463641296111263515931248077877334891038968440681158747730269329167474343853862087245121773566238994793917624896484509476321277820035080455915531336355233649579865909402427914275617846834045013344277845176399388866472454871967211231138547117082292046175174467972926257372979648014303175437703586273181247656145452585658479553480528075291106970469453898921561901541731913175711582666959625477930990536788585947696194318182420606593467417860673843481968551706781135249347877093873941122282284424664675549788867912683239341199617839535474142586245343021279398233889720295683860848134292512313665522729822703045071006314561535014754090955356250122567821559077036016466696610441338165477827029115232583065847335882384820694903324881145312264002310535755532176485533070760297050019023135200770558307927373980177223577242331189338833432383333202560060610331100927063957791125697214089358578859776158271494188781971036372142383007868946546182131341538665746478628952885990798098663738261045730205949784123385659427587437239777923375450798101596055469622521519496808486778816596971196303822064055604864958852213874628442564129743911661516980079777032808316177315555430132963618493736352632281170729172479181200038915406772927908410701264480080133840780407839908730747348719100762479231442525005087171132660565182380124253079753407624292499800298982475538375248897990542448623575440803065466352528050610484807105020255460250820203739982517826947658780007218977745664444706710535466203719841505169731247675681601903017179852117850670665312793656975315679362471064692317574739963690067693705807621633467158356392660153565044920571575720431119971066118540894704376553945694357289802494455047044881016622531258823498386635886097392131972020881222331766001701721199546298223858961922600617901619478424743118403705623764538429903396779264513497875371471145849482662537880751306836680806840510519605178525965312100082693873334581268713765072018193115002525570947355873138095223712673443950572444616947837677168350631773593964491279837907100102998211803949196690672497454522428038748709112645890858483248450827736240689053943636421298988557951101307322254588851608349191351804863835127547370470401601823375077059489353582550549996168367335815449244668015221614569207943835594854735875194031528686566708724003625657820654335517373384082086498349336503558065395171304213269398339301100091133727981162585047261187574858124042408930846992054305161975147163930296435412833375570989801864199851263697219491124477549226935620876969681381121987766190320812571435849882830382007598143737213255340349723542373631763717585731414143022349980805685970991843488690875344635701017988462366655083860951013820127822423712946990700156683462353939564600731291698729446963810146782231178052125327561859492175340088965302064337377291648392647289971757662177096174171164177783392608837896507593098570731369518344947828796880245452142520704654614029413746714521534929872614350918117268925331407263653480051874686331072882187921562311726031400046579432170411989983877769050532145325297705389239867102258075947023477911707514718098795425316885964807931305249599447969027808012517008214715493969939302101543693884442516655813092083486136733283675978064822873164942516509201990898541554138354554083133385069499329575695171729591744181592689708306500202999707780430521008791195708085976138941899754676345731390261645821664248082626615916627374944582327710937794505405169989416214315788908227059102825838052325297113738458691884231327371861526308616815909107261187033904794493488646927635218369040755692919826148800093985423773114259851906207387464402964820312366874014340547054094148318959263679934889623444255453380902376615618431507541585958647437002277334675294302823724113828118710596967491198658387794994923124725059253060890697973872191220256831376198624907849126570431391599763302249653137565861706299230942303275648401960937878519093478407093588711097459320394609770828196082460109652901574891678052241333666168881118018451604634327042777908316784880841042384755277057265389277806084358322261682316924995099471554056390981230608906333949971399271633728492003674164429065424073262568323433088551834395005575368158817781332935440736647192633655635904939529212388781565792822480642195524829129676726160087422205997449287379542874024162371731783783671696552616663284434713049376281083908361630320780582825988728696777331792550197591567883148662722148142556935270714275520467504712545099922489905966471588947095264825394774006664824307975504125436575320796061103302013101381710896531033399522307241006783440651462664139415605459349548115239413694001754781200229411789692277107274647493735873667845299771867698734614852453321697979950336343407086278525477130023557296273085277083788468559768874537741294716209487437415806036080319147598551571777938130921228197829106552555353237266921646849705364806588830611555247745539331561117999437227247114647855331041001158139257052358982351282668958083650799313920466342619642106847854022138349664276912100140658631377719300725303420885377862995404294800872751769914074244418281512081867088302897713469302396402145727821322671378895544483438032343455622885285193855554824301260733985372719392066318717558196820371967201193303876269980691949910530415213246255666936995865439985108224201023836176022670815650488417390558218489724269355281284479094257815782618828522777919982792212126640545510365360924588730879293166940815105066397346664901200876087308563198721545362192113587330224336454602575235490845746927729495351927152543610453621667361927047483823007241630936129578851540637721340508486232640311996442247730304757191083069286177027948857457901009672772403868992918815727260191528349384179475540325960353343100355023925391125687073550951063907350742143356833178593287320923494299653439161383319861795533568653841641107974022657214013574963303125880345664240082013554044471354022084170850332408185442028889720640709902305949175514647494458881203740775174405560563653193104454080510392944120009433515131891913226025589831166570770290017638222587603126841674341670967713036706376519223682413975135323284772440000296283549941276852639688649986453372695897759704709741926852651813145150694056686697806457515466998317873647952459076737762446240163670369507411560940556044981921065026072663616432750085057439810608666934580084395365455490810546030811878074164984557644088677783085164107877121849800980555009889760804406083034473685835777979589982996795202352869091019590430072637886542914000892006856941042590115531391569010524178034830296849417121907112782672198063572193364306190007420790349909946323644588454072966194902971728580803679530894224254726106513292691610632939641782993661201020866692958497617346454442267038905386733418768167932908322822067632197476688084907707248196782308560339538502854988120692721085410464659876880018754242367936852471140288014833589373992162489018444578200084504753114231880138961078105151814806397589382164710273876038744863002830384755213011706521942671443753133896696529110552016379812482474416192347436993163435566414379101497086906935745877047502278376795292224720150848245780596186191676651878491515157877922943128852678578950021525566592602461987063693579118517224963143121686090597113014226606096372755483053466968497946650771658512904752050468506789462744740628255133717307550789540493560875603033191282082882035114228904459471041734315917240298727413791430794859339805112253619346876939591468028016332039277060141812894134074743791263087522809128368650247847686341290673921777003126096397830758440446366842474772116577750140231915262069628133526664788312423312755907337281514967057341332534098365936990321432075336492102821350000197015910788080925516763047049468374677961919850801969577366534656882756838872705068057092656769561931012226677905991785919300318957688865472689506985226239898466797644869749913496449083722447305086154093957726305132336186630497232299548559095213865549634652620700634886485776419196401057884885757906280656640669018909591758024034784765364530056481180146013429720005042316966004344338326649966656141014115180037496835806801719011870964750164035261883485472693302370149320483694314289552119482606294307810774858917400787607676513201127383676168766024299563360857337273111366698843509571742829008390450186564340339894969319831644929324747334651319514301717865653469016132062349260405927792389597208886409437947543501533278927243058394231572454361655452003542157546293824347442457732213653981420389945469711081266188762465923995815161253849373519819254238828979680717701827569515250297312097703195990094260687883793619131069705697888535485145566560285335903702660227956834776719306229714538308173226764925224467175207838319525346940192160641748916195792802467393098482643212349074195409251867375470228677152745596333971901863367752866412436745610817002258104130230415108791023082584609324842075188875945132365453899416612566194702940062651630392161393762750942306010446470183409523080033186917904168438773207219444686891974090857351677225522036851383460259781834659694515751544785427739327786390819431361859959321646094733200513572092483612386145422614293053307074517484613788528313005897143837834460960029147558314605754094571901581222447717946592395861430930678368256179209048228470393499564715960614138314537029655314148171356254583797403113198156260157032797732058072730129476219567454695082006821760631103410269459420201678611961928820261093090548789627473994194084951106000904071532809162502242129860347094233501963623499353620782846133181363413868792357312689533883388509218539669138214498668613989508035530849571036646546106665445428727786910449756089379604134714445841590137882414837841605180003831140619688340064664206031280355967234329138978089893047256106828154479179816412205290345724278334277847479018156208909634972600049282573477195990158676171141903986749928270260307287699352939942823042121873801342173059646953459912335394360211637401583776613340493146587290888813643545796372600209078634098305089211912147797887519673763199333849391315454290290313570191908770294556762919451336931038767501755156151727241603843115038877620580928739765188489020167299817290778860791428990887001878543266644509278106801984946298009968673444986848457557905531547758728991149069627481812728274777216975317335452041917712473086064309093978827561556383585816229832579005346110203356495558117314014096217220953697913392285959613727428823066638174749479450121741655770445650332380705228408431656802206857896292455200035893640206856946359024803552929033538772169823635943170036596358215691620599614251334004589874029426741518131817132720306527657107795304442186253470665026743476068560424656991557641519228260660787098013896752111745041092224336618024877943885823526152534258694478677854441971440549727675507465989593489912262652000985819004676801443020491677091795876223036340589328182404722889318756633191473604279405485654465011925661919671964266092046381210921141150011949067083059790418990923070364607603222003356414164478830615659707562330633703087230427316665101013700673238285967337953450935267934886567582775623759757431993925030834669121554499914150731737282090984226762435797623218653553750202104851479465975730048622167274382960918436600684472242625527957479477934815199351677199896439498138493492969140345866807021516279637930410132405957998700000664662322887345833011218323032773242279072308136361458971251201883824592962683709016802433493378793412700767519039227343804534175023758060276247690882938447499269646878556485695978497386730544680129363369715432569814046007885411164585195596916584656791674502083655121537425009488811680228847948077762609465015100437234304321723933569768047254970951129656682337621434241043594702583462452284609018791244059106416524227306490323388455327889942799042740782751173743942876552373706953449885758325912489678875399359007323702112209041143541255898393213008497874484338201385865372715261498471163656864160661470429589379958873543141547377472834479787880728380724426790728758749837024920262003799851782718020252280922857578924354183042173850445377885743112460864713856021955003328371609853579311678942130274438934990723402868186284333165307180500577005381394585570172352533946201434828328717976267127262941885219843639297996114675637519074600487752912071744932204869381574094643775913604325913302003646459352255702373452118255076467197188652669742304881271187743603488672936864417024516068358600948653389492768732249277878829397570949101663552383271264092102683354887764861631442817228162086591722824996125616297800580828969384705471873019241727806847423115389066656232706626007485093966496024284376673778964439312504887176074487146563197659033988469702066815939796320620601934601237919198695659590122208749971661131911973661667687091030739700304307480405800539755540278177895511905629271274515334628948771209109831981264474043779013543889935750359535573285711893800087564075271773593344013615814421308078925376064900660195482766240839264330942083651313934068279994182334076153070836251367259377344202408689169885704758838592151470629274884938164106343813511126453337048562073852937128444125048417102009571637285272675202125789603202019937680313008464361901007253345601332867318213926001319854630660281921680693297895747675937150695510328074101605755194999332510663553609311072352177631764459729260436356100156985389844067758074835567211472347793304136287094513136263700989910527297603847388174642683991239078235857807829143897995819069877716368133953845552533335261848454411553107812155262581494047390111769755350496636070126808879919363653732695872806714878011940595463904386206078854855784627924539179452334742953073076153245377901049684182583713129887047150024935160928919463364262774699672680863433887340691676748942839829096704935923879015813301663902113518046816469464632329756495422233629830627547887260596116829957224270367245122554921743548957501274533908175000017054325807575484487490604898049359722515658998623294163907547448421026063533109721905432116742102506603046065056980366212382437105348695580930515341822883667011310831258427926072645392765903447286281142655008765020366315603179593768436079680056786456487048047699584291219223244820622473409892036251053473573228817775162322290028090371083956781937041153056432559541445816139001563756125499398663546994225677812944989277208494563208296569030941174705667688709106922567195228525795537941608506124596020982049539050277829206771817055868733455946842624369247567564667372041965381520184403789988644889547957616935347521872351147535003756717179723264520482805058766569785741471631849311846206012430984313479264130680152401757148628120905224198906571358126740222465351195545964649173265817536297751475563656229515370937600136592338590303215044843643107241337100648236880653195014703218322028680285824221663602706544335992165489744002707336853421264708783933564711952286976932077451355597458998003833465431735271763473776096773655297314185617269945832208213265986872127209873671028368136678324124412630778573726769143523755445764748544929494510542036668178054665520995061135406245909713533849365667789479087421268143519666563200851330192256210032090816879792063363648066652551681064000313995894734542073481210166226371964607951606845653712445796252778177504183507668330839347327695531726508369117718915392470065053595342477008118026310107663876698294717492321090503991739134725333435707904847918254303340268993303331115093177268264456798970753026377303760775278503404823187842029574820671119663713716480037185691281193523876971820135901679946024077824293868532730257441081449418660325186026537001828469496902996909091768346176450065623521926442729719469725133949029919424710085551598132369922998278254326330767748486720322466128336371441761398544798939907165637817234588399187650467744373813718821775760545187396814325975847235348028680555572909707588601717809565089872708094040688663901668816933433477441390357665727237809356614022603429857451932910956293050664211031695348178291239077245149318243942214155900263497764892370975594612553830710701445098222096670531691924085918441247666258205429753573614994627986162641414122760894593813858692284579559526170140007650114845659360347504097225516931793202769033322693801695415410576963695574822013878107097539295687713139214682007066788915794711646715325193812050871951785522891828154287768304694866269889709931671789220029167991497419998464923687202443156312027768894467507976136742619510118353978283673830867377092246160472137340553165729440186146364993821404788586241473884103878671047931729749155909368387237493463807064075367121047901721634248988164603966328410669761080952221318520507842692865424270166825477691850306521114555128101930727123887895298537398393936479451528310204656141194245035868330859885735807514311042802269616606230650210301530868483619765045344632012016251595244607624310282844867171896932181466885222210748668509994235215930822237856379124955487531996410453636192911478381952886817831979931087022011284106978175930551433148759617097545113285954431056168405133849185429483756771175340853007263807364153037429939694922157049466222257367562098229635722497458159031316533853992822038341524204656563175049642594470909769125576975686054977684654799233028985329137513545899961825292179788798456069079038634469057739436351041089863067790222787618368799507186156361482202310320453119761661709235066040236287136058102370845225853247115132944595242970841866125199054299054754746993973826908160557639085578948480001952264977293898574330630013468065480529782400693316041592214694251896275040884692154144031978625937266360098981199154952391423265423235354651917878089591170720841669239408302398479655015203267947697625647520453228277048983795634183298934743492856106349190129213698253282941406096397891365380639390074668802376962529137872603888156092941174047812664400734057534201131740920845274100531414130629752245464480720901723733805208119759288899830214125475505179288462337623232739354548906923928671681044748573841751365695491348045207392268269614689924312315066897509193903265310124185057503915663031751478248691903832208069909151016182315031670163324084627026868397596041147559683555414318268139966298786118672825539099255515867650254775087877330190626658168773282059978440480680743849242411090140852904740615314533401611732512137110712611671596625068986006662165063605791471919045412613866914439560144934867354431403381941873765755182974480732095168878735773930915353863265424165831415901645377643372383532268040647599731574268507368559296941067607677859289387116537408362740932658094788698053488291491593472464286189098194216100774167577227687376938814236495287221013241640484886618935988784422367663421465166021136195169818601778993818561585839284977567128387142068358168435609668854574854645631568892024061033848175276134641777130380608021593454739123587021084596495078114342840085242928972241045666816405083546353311610551863016703881309605769169655428415535356347231755427928872010012195160883191076377640853031628286440051046540526830755694660971655109678823089771274735708399794765861318200475438202501173765864403665640520764600566595587353579346500077882353519355415183731313935108546196622431845306257510697775927266848009127391691719156973220861894504430160338215870025754612055494296472441922219208130131271977671860863881789902689075143888550053037888020128965676671634711442138801485276912035736736206152635934314411310353458101072277496954350758360736984523936388183642335974649854753617087616834363745895405156589362609881840679828458630507046269656179467437616692591057033401159551008811969786221047038349452463139766179610279008573593083045967457045955429626663462426062539103850553294240086829940247124111836292507955173849649916648919426540662600947784932790061676240165006263205345253299229015749276308345593851449812051428235424372794383225363700441061647131101747641472165120530586979904233671455076883336160924398671478043825506893943464438459769021171867879028177375348492673933101889340896533110177347186502630520673928183359249382429472406895498253720332526857514540822256041801455411834230286057114072507726117211744535063711648361778394078659669554787437559240392401199299106676491230454473070267104800411725908054324241807767095240663147068760411346209315844526469162109285164476759262596920257637271287364117619230775008058601321692411836571859984849707993370452027051552197025146938580164628758723609654215460838138843535816550756488357262931773233934361787557961417307762189451415778827051037777219931673591991149130030722504510927349641248900025298950076756728118186825346582727303571801864635536513549116142039860634547523065301131396615347189230827630027713641314505972399502527973858287407682146698543819211772064626485669782536441927851120017712027582584010140711650436414389983748810542711079511375389494280271470672273759284919516497507413537217726346420224377857549788816402498428590261581094708510950261390386370478483428624506538408804394155780623243336761363569582137472861622388012003056102148428268690861326275615846355663752178277518434804406257824998243341887108049574445816012722393902120552771891615938008754014118540203196976528045563979724014052430902201554041610522963529138081686712883501142027831475643195935703680745205353246453262717983730816305865242598310308557103452389772452661745924027653055682764687321807561040765104743902534252863898920865313744566388271961972809658111894524490840074125947031579940351594753897046464529450225837563563521758981905018611630685306771832869674241180656423075506811105071745785410974170908489225256428027209679451603423525457660753850278734990626145939952841532883112202717992558023055860340590850007360520872820804046658964083473396326255890830254561052477274954497217692837163606431508825595047556662808096724603871764969692705874191606279672290101781029974626220290135592077151047250719727566671498704214077141724502862079501204515565155713175528946859432146232718073299519484000787262575980968649657236051789026811542918177489912905098291464681056896124547542810758373013333437471593728183421212325307107709134443620219400517798524975387586407099237492338790335252026792599859045048638985394249895402382306227340494571926871270491804301080289777880453227123361985343331630569780957754216219128016180508998180372371484266412551935462808400913437405800894695759825232828610800257602220797955981619484240567503393386782982650716787139761339791730619467435448595612728766042484333824903171976863510828725632640046267438660282952849578570446857045043432537491174856355285451017413676157160188678401256795917364362445072951495253902481475037114889906405263586609426294554337467865308859196932134421371916285972731690379949611988951744190908163563852698594585075285814825176456117781374588480038707512131644959343342916182617441926676876889552256024189837810187821589509611109541617984483707779797758071701178600185027388079464145853174868419206024875376426311340081170790292775690456396770297943992758510329913438759898584781684702703113085345159470069280282008981368016985986370405181821746549036910865366554120145217694129228070874901321267405877886014687569785534599241952746115833668094894480251130444374833944618033340371436278319864561995780441469563699115880427830928328023690175387944727579237760309603982781444846668466550012649330590233113340729241171870659046345396656659339847199901514257295747814902860474594563721382654140446575298530957015711370538158259454696897228210283624746815271928763852233680977707103026432202742850535064873801546817994784199912942027021293823005896601272501392556191728103088079933148261828010223466682204371825739424292551584289718539435395433831131239141519291137038531146443207621789320997800032274113023023527838786013088870648990999030017123512332535239410769304799654780515416060692575176662923771027792856507260046669308090281014128102529389728625252649529809362377643870840402061108046233684898026697369583212643437699281129900616453464551684189743269015099803807751361350305249841529820283687570011084585272257866230563680111306232925346548993874909473034435912280993017666595241265676628794814223840250852756645583497268650730653875368423782177955098662299868713129513623972615394063743772447878357432981317610180052779161351292875586084311584799679139953951370784948031795049642164511929689024299480648801345208339950321854370787665770905731148906741986120321139061225725971103717436710602639064329321280360403735619268510285259321596372286844325551650632308889127019276037824381793987566476682059217070714363841188083399255492171123109565921974936122466511529472844721620810316402978218967964326910609277923317827208926578723523951605019028530827409270524808723175572860649355343869920791162616667093083586309197050671877440657137567660686643857579681202306886801079615933315206250135980033136870434085398613862237901005931451565566318608195253291373137760198132716372178904713485828393299755257457227683499055315749546780034239832344334683597671607536188054796121660895847127382281351997759227186960154850203714403198686108497461332701284445305750768375966918068735177128482257512156231031605202453164157897447239300478454458630112355108716414158612400111890880200150626272858378179159007103705179417123119522762360168058147140448138487718734696635045429910549554225720904775234324322654332689724041527417122436607296134596791330183238192281863564867432536493626867333397438041950876323125754387433890067255388551328567170701694996379964315088153197833016513939123705604101855371331931187587967322785563048162264338647859873039395547997958586836228530817818824203154572466431929185430668916265390875096211385950805025885038953718361689847026823524273845480662679412857382510489923560376056255351752385160245260945682481558919603262133264626356695654809867852776481283821981835626240998048314309906950333481845642831942877300913923777997500671937022836892638169685668450350289312582366545450030416772553516620883884428594735651009833937341542055087393580839644642363344611929475557732005748633844159970745303015055098651194813746275998432070648895926180572171340781723557290544318676961824753420129019923288236332419226791942867093445084351929145785641569829184624458646328587694914147039368996926697935424588276854456936762009198576727862892846091002514623425598099821942527424608074977413208357206060841530372864745637889284120877669641795953679572848092342596488324445523440736474151713971722801072248814543912729479676309937942931011779908864576345747022427332763431868482592925760139246622911421129754360765797177005783998302577596852137288462168314156065052536271070058874330355270865561154426497837290386151613998467166356891958366895546696950841510077319991328528021354143306348729621215431492743878092313239518427608852377726732593488078580864173775668423151382448739151343236539024328427582412210227415862682044096392754697345615570350837084142147039762786942683612486094477817963480340948797297456861957562195193550368516801614228977546032847371592912538289510076761146896434548710274378091684365499310904870136014462526144318453461535316609375095008017287109173788406175100278411181663209514797524154655878425328988773385480761586853123120578437322825712111713512246217872630253569948297062414449734971058544561134254792520854980610768243444265552119991068705003643707169096719053714862144236941188594457047756305617990370103453709567472314570926368299667544769166368800908756211580607615633264774990724383797967368035372417495278156636587108375020226995919242745302844170013173156234479489681367738168233808945144353800362855341583293972217107465761828270434050510627721758085113459688577150544610739944274303655927559245935205024673406429450382561155242084182475633278068833384996367087464129034196463191572619412368270759810587953843930152005678759053611014220482855934178295578098670737981102694138518380089865962702834648027641602493837879594053333970341678490357288363459283530339561007065884770981482471772641711323211301748634622646219134140373533666423898481902332242717538863561718079886839474333236652942259421518980164902058355603069903903662381221023119179602729571710822412523003655641296680759298458738471549650158940644967457257966736968146271006346642147770309400680025414636435806132668095402249885581406977876185662958117615064375543508632007028506317270346161261305292326273048905452369351777818687840441408282729851155379245222250461895601561964508322679264972106026017948497643970403098595168394320785261690432639747503198628203952538240252370253470666177643711053243409013282195467747955933332234337578873280374652854098098231476729939015146165871803102229908956798677381429801546499892185370040007997583565419107518275071607344881456617454749432068905751275645777014413762330854582883187643194746590865806520144249760065767726379669565929696306808283298692570039981545555862737758322990977160764717106161055120661569801905965685258839264577353161466695057850209524226852857744055417802877303678618776067373289353071583887967387650889275870920526238605161685757867083596694358811309175132896886688475316098907470586424815880245000768373981229380841083942103106277699867119125591809362831877584645222910480406223789845957079632837666155665301609244350768212269404319164086385351926691264965989254653823570712893625001274297212554381447876459044432517461118964247380224401831540419874812572316542795286261275853588100508603474508695280639843598309593000865431502115964236146982668859258025676786298096284302062705657917464434861751572079633370315236170837306170052896721248749970774769879659116217852421517498921090779234534150145112903654356162102694577484911084167982159003335546762171522526489549388502194194985708948560579342609792155768504469320792194643724955102847277675084594126869232744651750372688717804599055886074238558288077865846798661024801347269633517748258668417886978622994586902437085408242450998461879069030620203020531270451351159456540532988287542286589842583865902385657922009680766205914959613014661243154382275349920244407729580907119579970603114712439130858771881957011452973827279550903014066258086649085356179855946168512182503671464213148347570751491876269743813791686789512277176756072356150385503376157721501077712106536021045256724620386806811748969715839347926250179917604359933661297914306569480761330780508511990690987992526332956708809343971838297519129958319256172890213782057415353922051238532021876061314838175306145461986880427784100499651653497958909066995861985275363529835398608879924903951362071599435400099814212283793613720245138561046832623973265076430027966935308127793391925581320404936051946615046099607837189431228525134255091080373946140595793253447416706212346647708778577810344214863610257532297548146027814238743914573464491646928642546320194444291860023195652233588808193704152395062220675560954388240962452324020262591065073806414841105997368696173944635213927107190230489226120428026702800757654163170804546556913939160880684039936363647713797586738177251279945612333615795864268585173640304935630828007473052946006634228566552099263931618784435181286435418416780935762992321490582857511002727243998503796550188295758415207370843177702764355459252522238526105030345613369849258217562120192050731097502414497283966746395781763716683222416240411820605278998857327305322557755385197427975066408109514259299976725257353410581041695921959674772689446762229869069766032833624076435510327271881163584788211367074904037934504271441789189890572662594695319991717498185123132393421478326467652151777495405888758764035351048652108421197148492220837120319360739912594392374175529703972463676703531391764815269289258730357004711933489800715291393564367671141778027335726581159477063465848406074477389668961157261960890674227174324811328831485522585267235081270830560720028694742819091677762746010090735213357846773458182638047033944991237790881436809614184997036902940630275358664769982817438117596974165740217442687991739804424039181896002671723898529297386738669741366331260597088462049488005845877460680477456060670159745564072311012097683980220839634792227223155720456095205964819920035214851886717590453352008254230245573985821872454852492213727272707599006591868531410382368871245153351621556853755329047815509939967466533037138955017010440669454176484680407764779127683012570399288592513026964315892993777636080888855558835429690618766982290359420548935212813469756718175782155255226223018005984559759277526431243655072361307448679781060792424123004015222994598550058805388359097157917529140133600025991273407715466737890178475254380707581577352039626674390318326128597042352022155343630560428239603896026734055833591393900769194988429225882464522728489606093823921467229118577773043115206671987067565430373694337789973825488686349510801504083182378007857775003768953179910896670465859507329420230992118897935176445117715898398835827646449908270735019685179082807996607002823550057559082479659683747462884309456712099057185781535102284130672955490830704319591269878798072145183120483568182531171636827340533381411012479733777527346893554224048123418144024591644048534573834884770231933401606063932900740254164555168069219479502100705150399622755618888581714365082904522129883621535451810245384002308290735620088597929212968563624160813412076723441839922292203738782692495595199775737761222247979771977715066558403887412117861953834837203407446371450521804939467699133476386262990633108781786411933264639275724492779979821071393509299602456350461189043073473085107518252177524564846499106435102999027352448546414779683033390677390881682133117074361156776796459950534809309953420870225493877673231252218364247463986834503564811076541137742988600327642672029806818839930267979758390543294590136807502301191968792689153662954422741302104911137427258609300923055481697405552616872634969068280988553333885835826804050471818276555525364441025653303481701940284493898110044695876297225090793537866841957059969716349516011729684713208684871505139424865654939511673134120042282847101130094165815362180556362293618841165803712943695996026667977714453357241258996915907371167995890618821266026254875772299417869123674052223261192468488770556762264141904031705007427676648248912832866604331696337880060721702999876581552265241185731722367099511285664003391512745609485486713242787087699606130271528210724707466983116625329866402326475783814811758814157200440407865279347761705435242423728087812431831872954524210576108401199774332421648933048150980753719619847672284336483886975287734875617577064688837635541102665911251048403037289131488587636332070772336744378355481300591320876053411061750818117806743981697547658078664469971539369795681471557438635919802586600489350357993734332945090561722109688234060374918726597976037101526968829493841269538327891224717365390892769996143360192940257022420263780197406622225634740974355954297387997553062365682677326314080867672559646223083159681260518785099944350456417197682449592445227133609988136679871719722338115623259346972079126086125713856258347286480304838694122330165945976100868306280060723235257824728305604740132433874873668135926965418031367847700843713868162851125623402636410495901477945925272747714271889832321891571677354526857388209964499877383222434065486492841559275820849085990664591760360088138771682444284813112421750679758231581696693778050316923575259145070537639793433332097574473610697870479120196444461371308943796307420835948737948281558029501335799790078295292440574913256803395831656572703898077943325759753426405412521230091637430035170429987635763406807882555891102435929254639969081952178111346399291500418925621762322649991159800519442538045276331342675439623174890859816782606977020111711810483474181123294113551404102657187130240065951539397963470482038033194896365812442689676505641220441032299874945487115675536040497243311758697374281329792001956961191631868133520630358232354931631449140433405027407702000957044076613539297301263815892879975313106038588309518165414981875150231792717235136674627618910091368125147518681295230085839513427034680730333031084889377780528425154041281200058447014133643326238828316747468496635196430387516387793089182522782984771152459102227867183937833014977459720750730936031461327688804739124645804012465425563308435244533291024914732892496146431752595473142258490163980094783753160201836667989880654603670580431188735957795117004183332570875013813782114479974938080522547594685406714995485878455008256369735755390933187982690329152605501317456523731845330912116850109422400047376995523846073684694648316423137993598588117880516815242757586229659785425749952825028249914984699661906147608711737817368845855779015202177157789048682002673013348464345195159299268341977592261569739601074060831898117123014681807909936936868397573166184408987885639795255700357974712597681424303590998486347679943797350496539184222024932032479990890027306888581967660606774696597839975882552934831746718047457965885124455757256164427120502562279541299314162326738735929548745593451077044454798898902685403813750242314874030329468134005269920864153802337430930528459235588095346847662194820393810723350417225630480734180006806062574003201184159558222856517750009803323258873062985085431847864698938449318079857962677831735449793655770779316344542782577031254747581577440788408777647416890848241319459455334837863854697333189456290916682159541650512314413809519666083644299650723625523190716850085250924843639353809041441129433942185426418106427900413875264733397706490280730339013607823391454005680533320780344850605699669803513779995736305091541856193002493485103578279113477450612242032527550013867220778763758674650158779975436935411355173691694148826730543337662597281349149047114204581618489899010351357067002845667424526182184494549006598815460237305975781998320514532009475944396118217815538371851348727923720280230903012987928749166801364335621426216366315198314750839413039967807557024636880495413912614147103110832914954793702667975220381615979837883220068564291617095438752011937960816861972098055907788719655629591543832094882969519557793392018099907257448110637375830045950432319583233040757302087848165867333966388518580240540285829353152824708557616941046922332189810105092413058093077159816178932057489125953358629121967380970291458012709260813796235243002119397971811073002565229135273154203058816642015962596052897180844216472896218600994019308627949144763925031618268936637570245064024545824611722688021988305001902450296976968129487309371370345820959338005805935953361262162701241174153509297395262709972072187279258995779091589300628122795821563732871821870260201279352461161084655713365966438011788750520110313502333737552603960524414383630911098441304964081811537929180863865191920876274819529982939399387169834669879050783223523381571530432961989740445632576776758318643146062563033462413461788730773749579194902741505358542809697443114688458749500738199217544132749392534023742021356862325038092406139305287015410084956019800201360525632478394188231220224416698656927938565556001561432569826286491706504007930434181588541864055281844476543026032796086621277835667693329843854556457801249693843644997044974093696612678541783351614697603426656591869262739877160930871231402090219311863012092591696508171302547754469664424154093221356435520700339772246946508809646025057225238882128246642958959590656595744042268792819263577859950047872150294616552214131369876683523072665273739375549212022663507949836402019939723659549992132868026347821814860604683137690846031942649703231670090054725273210777878920421983596924528542771262205553005451409567754902635704662995823649464246003268291608719688824583251609350637555734982354907574440184629054701106126435085505088920672189376182076119241404526975118670376926793131233684865371896516050641715401332256521444835028320849127993647365902016166411885498894992579988313987892348489238766559669153857578487431874292930212234332015224991174290507056047513752105821207471439097820680192038118491808842407360184410188825348099230253504801872887220601703393945427275697841710397661153255916338841184483739369202771365412378069292756856710884812816656010813995556580601045009434239398430253650992666029320606974420337853362193190266229567497564070700914287694798357034376412114334764723725914385208670043675893767807028965712538711940939939686920572285304382963282681457933207320908872478384070068922469518269885275559127018287619134688307662788184601671241709094929603375427493877452670307355379854559995918046551778223759676986863722484376399246541652952094168770839821642117342115339182427493169378557366017664472116984256640044627829411616384695072219790898793146455400996724078091850567819152244148790791793160107589919693421358285613505343118246427729397537176723243348720774326650606540599965093585157478316933734984611434236139403138346277325602477114076202155088411800507311695965942722266470436792702374485214856409874640849969409876336529284527305565591608916765330668187346617547707359733508460348186128901425732112740136199872707031078931932631196037730778720313407897423407449632214667964835602115843398788140017778225649103034495486079148602195988814630658023830986030848877009989711160094031866628622337548529629356139401313983431233104936972336544945264249977928921392951756490818846587091355794346181402579610771894698670943100975803164407852908000731230274447423780243051388936964788715807377263788996770575882663655072802941504406808538242848283057799199377793389449512993844179840580932349011674144590663533824690872899319964868073170687676675632197837436018513954748988915398661040795228287680496892829761741286307541314382580513240184102496102674015800253783688579935462294903371036470353357075548084261311385877630407846653758721956140846484302640706647315567218690739818353873064044616956167236264669842628492176991016578855934741615236383448958600291491650159589285042539495189429050056295888516702198291936707845649593955145077855585864205784360674298401202533041840570308590178939675415468317669992134254116081461259235815796469140805400976293731999207220103956121730569442676893636290991496293578446451757196063556074879618516434341418689255371585266252557824904242451380571190040579807745949324925741363626204620081728565496978996859441869770476287733406990946690261919073883256917993828451899599382287121198091644178962479749626320579757445691013376655197667839137440107464593873793825418168444671091699417929830726006071432056380652074628574555180017976817779625014956290735418253004376549523858854984961138085677051780609233389026533177621345576295931373213595940584393313012738900244549817431295403557524126065064429104668271164154903263547222024632484744847804798645772501616168048239804743077939516027463794769954900611104587881890367831609774669993438113033161069994498638267609644760499932923383386380264090663041588036676899991951528018605328651776263187021730998832931026932130015385377250452107878933762190162301830974818402260005850354708934900435313295116126046089840297960562289784477684902597673002762086734404484004239821528516221190039167358936516554227543927706333885328961952401750787525878707879456916661883870565192780208773216326616732669089955642103282668062953504256070608899100954313955677689555381082184063916629563576865002223839125613544293104981195189943581066157357589283575108694054572517507629677585432825671646011036708758725854397853151394168864960183922252886073075726421939447443344949509212958310421857691521673082923122293085360147925086889208226831739122194119331982718403742523862368946379077489736320841199183549290373556740997265310810972981328277103772401441003416461086145263058848303415546634005554695602033483696846167793474774803199065587613270072619277979382982430316212644547951267021861140764668097039151677205535017899788786601295798340467630010250567376124691697835143735242440472776416449806645731590341866556165528841966807244480363461290902108918325612252490468472770758301165983719020055138064597660744306944937390486413590139456558472490022451636106589231220573605599694187132023937221076165446751180221346023581677806916568247398822886562103357544212144734922212411797355630796459720143056643985854795797772955308022619019006964163701706896871681411321476940495859330537410841860023142591716979141110850158283502528390563564771874158967409713011509695676487016210567181697875806014006714760852970403474821275912597068342898177633983750572042048467288711783265729314732764721277186898036423508319303725840944373585206334415429185133274557016534457392316481697026159834617173439876963340139420420858229973922406625127173639077163741349854037042541669080591114764928741087384195249013208102144210104358241685649237503896948328195558207914338089815991168296923347509957396709691128423998600792624065098033077059016226909715313499601216973782661033241055625130932941221701539770022101323178266670166750599703756819892331432005850764177915384455688065959165841641753081298014297278031647692392945777547326728595211444239379585593794624097935316260716055869973749828516228915113003890005634722325279235387142667618887608628775248437079287713460049275651551572807285129109475348026434634502581418279808042758254158366475108005536228554662655936588381927057355561005965357925763521008491897718629640175432168559134196713022988327428197767176709595264236313646387223036038768315279177585551676608193344935181464335156621306210376744539701555374459291903756051445149291303482307602172336593329461232300594627543330142216755594165464129097148288629822376503583309295661156760586760876115983528947042317293259552551563243764358140144189845241259346054629570311987725850313280776576172540257777128468056945009569036008912571919841548450136370454801808066059568515073999046084522536669619349678829658030168957777494216520494927264398560548994407644199458961097183265530426149024690616163253868943057861015632609801939490521287734503660776815129773700290981575582289971039218890411085302602697395129491184856308720893175087622041868646372080251210220057606882543093679221805110276127472023583048040860546273374385745068339150503410852076129050974150585931627553190266020385207455450829758272856461519933966018526162701364118906872000524300709516937013248123400608798431586477175563153626519777786170764563640459331311517376774759728108952129758799477167128463493110926091656911557694101318048171486396867695108769133853420184981111917679170309984579145468299246857110847354162457641360555617710372424048684390951003883284989890892107194760140865874959490429571812903458127056077063755486930329268403387908816119527195992398755316849823008005299609299885269016297346483604777105876564161923461313463989393619193360361336198074672541095754618601336568801516911765483384472222323375191334649253832501266418706128704115060179041004225969102305646860026739588618389789476120196442760770472260145761561112784283947484243788298619006949195286688223509061418200902397486964734576038058385047187288237684831705485427517710604861396977086762011083803399405107850734508812143183978738127819270677641310759427799243732648805392142084480328290517065533584142807227066610937055719159546901814156421043982157998988383830909371401758597626892679746613155927520714656622182057259945388069948909334235173463945645639481332000153698242647050162879977616577899520802216216729926434046118779052370071015804458633199847898974336976061215637019346268052108062222348646107618073690678348779296892768056794867766345540505479771500881952087540660323811507336611345429938547535741417180590032343174933172459016681918122301757327617678214946147101698087328790209098281843512976126999364559135474107840350572701739637430319183584391368345643392259270623335840251436324353152204841365564204040107557202611329916281706653852898909073692169897648097537738582904018329872269137024533567935354053239077859681929727698550740812391303110120334193240114933943553552599935669184794056756566540596453104735765979264641470325077358491589889891953863991631174305275314652732998110366858252379196913632473567292324605247194485232454098002786374533095321274693113992695126317080158379217314833635040386446533016076972362362290291234907729908823173398220573379040363496822219011403858668021419336987659165563503709112834451926933112762340916884338156327952633536008046494147103489510418884186583179667040074629130086636388790448920946064214372094368570260505236137374485931593945516688762109357995945366127106864134473017083030042408351462265371815696886315545902349165125746246372260877098208119879382435727978114762679886326457398702175368733707386843804430356872573636886829679987766768246106706346181525794645322571946951566732399363186434763878017126598670236702743895092699319976414683057813019728762854615239270972715048778883567564466414366585674270959057220146979223194244861690658511022525824425758223302344553671378888100379790580211110730512308491375102326834083890088766367685055855172533844833709449171915001876009456055361384152971631417634754707033199706503592083082172177985166677575231206272337298174491062052606512946085533856218292576748815633491171136301629452580228470074411925952680233773100085062599519179651962838844439579068298714206266468181652928340582969735241713488261534827728385996867768957383524755769786995117546215797098730195076895204780016223911865341454673739771046676801800306632012756263179410623544760659729246212380388796109895912734628883253330283823664671504904788718025135655459826196649768930692389686119547091032791127276677866411006668862287822414774629241897134240323651680106729963744218179844827006322848313705811848022999630159358823155072142316100743446474368318981078534988522333840480600769927602306769857300020733742435094337415555827012256837847509794448280369973038294134348821460951753442337364331208177566885677831380218199386368190687434405848091559669270322431752841073615339264873821383522342850275209063912688450055595742981674667322222441000648692098909945196496494240020030918611644324864347008480509295558086362635113376346197582155736004173144276016623799942509282148680603883188304909697703247491622604862692922711726556208876275344842173989165522286632991667870718897975867800308198128443283753786299580511161845289943799878911464549727600273875571509545462225480001870673012472995295802359193777584200946038229475309085697925944181378430271615613864416382414719436916697507457071999098436433974064828140159241698479167017826295747640067133380574192375387994982142473045018598958340923992290509808125380389362237625617884153690340806429657541252319676794913927164281007721175253745416960321740447097760907612716693735786101946424203857923549883801909676258273131771480576098368842987940957330230612187339756266888498116704484529055948546187756289401649893216099094592395321146359797218877268835790641727720479749257717820145210809593802858380085873268721372183154585192310320894531131558213502532406346140820431008203624374531898099499395854903191759740099820617395408509540184791087287404969184629832078107215672737807115477470039707710885495137303539866320642596038076839011770578905557547688026358188749909674029337782997474393665954359636394835809916562639896606905335945270700584884886121148602450980544826607742649757563007122907594579300343206220809131523973127199779086575597149414213669317095831723983817735565635760984922929875536945793636062938669542715435040687901875752630245301747352250958326454291263862737423955138745228658146936525668962363542640948472969846841206403476863042219344234228146600221426457565902564018383562456842297362621168431724575019074075179695837924723047548765467309520698376411371222511315230952279432722847414004813706536401395403929319228788160927971882618185189341623128966283481365029975320675398849836858631660641964850518244577002118875094461305791983566610855805252118794632494895445475718418750286298204452929480735934559698748428841867310858186655844981483644631278813864255605007315631160812138915416374517975744313589304384312154692676270443276478540754150078006458923088062972866732882613650622914055760535395888236497562503981761119597089608926051097910106155242521703982469595053041485636042377542574751312831081668600998721828431371553116804721959849319913410630812022337035067484477205895306081216769443943789846848646099817551951536066349082409761759262482423555501351169691124913364162830608836507511136875076183571794042848965334872302269437758202748227736733717009004077368396995676772721478324070117681393816434877835631457979327316610008235621386203830464874823868026420348600106325510124663240012913625877959009967745884014650291680282921659863274470952916117308468852575822579937852984726814601158034471156499450772437415359352598683176151477729481640040000017506036616725881785615991787866111500931672949672124867552713178526966026898162657981507963334339012301742586140702870108522165752854887018189039208696941596768831785618918416406349565147609695132572847553608657643720340919716802713267935762045699525174584224931172708664246474724214438454331497843194895218027287975031128937464981173604575302652874242686165745673465444081611685423791165203541078253603174088501666094402917301570453560633553784683266038288847151104366216789640021941783750751888748925895995355710314216066224791823759643122168659618513028058256398466995403436982480380839244407598077159726319083765916181542019711611842823399025992381908616456513134146914118441638192631361044712136663704436703790845285478058121832340471014909874209012340075200711825626287703019751881880261173452607307508168909562191956621627193870789511333405669563225625820787488673898677440683694925817530237499450143397924267433568131853306976807486478294803311895004312463100751734003232687463112016523136759828373873781775323123408022618827417667584669786985328266497996665460045516273088035877263974957776199194146255362381136557535833919871187159154123184824744917773068286531668251230647589603749781167196887988560506386540694112723357488449747651043090174613567540784070784093908019318010132021890346294978473043840189545061364912925623628440191481107367710134460320098602645160381872235223383484760492841236268224836444365554006918782632558569660684873485392637693771912336901270378123034143362097121315911388411390162229893704744175770034799801070698744664009287478005248599994807833011805688941030044481853013375438413237416265551403662138677888708470463077262046285017464492683460025115715290009270870657632447570089416824820921132791108220052134726749640615646884169257199602932061490381477131492563812211727696450250103451288544598910415221380168757434544539403217645558800763211202228988295636177374498872323176286381513902590346052067118798454739034129528521946031196457769718237492732590258713571636654845412201526074855107860096207609064876745626732284782206121744830986909858992257888025065694365696373573913321120219402590637403166493712147946226366850332046775740519525731969625675962419655975833148297885747661565257516605002805893724729345027494357863726850040863700936341500092159623695875212812885410164792365538582502826084920579164750278754283297022211921245253901581734792147296950994557502089457240728135852438325530992164729523071106372915311477181687819308953485759742550511840486704841041907010721479604018102281473455983631041107325060348611944732153268678782688867655535407727641144780031187518394096968228269526655103549756225942080051083017043714107821117797040773788458277069163727010681990393367649867264987955591106062078323544277216729508515929070709492208619755914584056323089687858161956923788782995001675655424227766572594078695665222447438692598294464725397999587306616035886155148501368512712735017630932694035945752278132273174161692855321611254258448230235229078401876632471281764222788448772575398143679586736200806370696287863384380599146878318174319065178265315636308079934749277125220057579226578856005318754631249434644493914314225400149013723820416258568373797052563144545525198162894096916056194997052518016188759174489556286367425585656743754047058890595065571296916675222956552510071054217236298926705472698429449320382755481579155559610210999076658372071395038968514033649152437845908748009548028199179979238934750331591348741000789652689900051492707514352554683476160391011471878217604566193685700602502170202078021503596713125300940976588025322118784012971702525174876923970589302588584345785987235015211990766042510972851813320612318350296001321228988635702133281359999712584445662755630448198069563514976734908762588722624050220388657136175165999753961801364001502580912948578725824487116579105852255624650292170433536591026581541511874986729840886215994286375140006132512389892083025065840903751583371815767794451808353551011509968788394140348703612515490619210529545265700086034538942624132298891503754271895795529463552560836669122767133743959742850388112189088337874102858342447579573911739691159511461896564008207632314306423229518130464538180564195531767707292231522166881417287663231580781175430519318482160810501442873255088391147523203319953266282105206491915987891739570157108355128074488372379139642328837064595681394230549948143177025185930381325626193475691379689827226383064201857064208209665159678022901128256156631617677944343316252997618380621408558526416308334943017462355416216684950035438118897582744288407546718605337863618144037560312669577207589040901776900535133629518380380181624904941613665645979720934264454464304932557194933166400124404253049190826227426667289847153285188947427737455714765310391807652275068525216228627098127735125043657797539343902931276199013464185535598500340594110236800159851993886143488112290781315230200382682886520762897956475711587580897663703814422931847043379099489004590719139434648556789528307774231415616033262563398173101956420219524354623863258643422409624817792616374463376412894015009215689916093193093042138041386121561608329527358218860536577033249905634109424893163683599269456628169431818784831194463200930475678192047905022996736138248424503877989705046537528742322271145094923021751519521384462615205057114505095726429588266575955193493576720594487242716632544131497842465557587649028943516178271124166667077338472899885787269493122843933720856857868046860819336992749589112928377897629163429003278893994758141737087421539760568847683333900027854871628436504587054834070939460069476180136159283494370862561783949677375226588375343892144415751056612138931079110848351356797629131157513456487288073721653089142605701547401969420501344774921399526024624306015914457103724724381248237600182429192139155130503046443816253009852769909222017895526409135643605575037423140460814766045964444405454455895497363165147224312696302641714207949902361963200998132536607380265244838122415006968709065065824241433965129198219614453529442091564823243781030379110072562648937300782289877712699188980450340310649073078988586830697336578728430813760033023930760749815741540454435025867315319899433745389258243778778939399052587773067237765109603532040935160762480224424410066366896221397316811930472361329948510135639733848026261687859345953876503462191094898888552449933404768251346795412504094003374617573345366499684215730939468585601740628988602864317264652283826005604026779630785566019112138833588685965136041728106489530212334172546240378628468134261795064300795123421782477311143028138968269788845813385114023484662539927160192824069304149964335620486179634444222216170706557532203369632633396208397417418072952741187359702874997512530781598588802838905275842213757609790271430866811967703413609316312753794112528376305075637047332499329244968903833981030877962263835304554307416605895883231256924063642071809647846924153732707366534898488300203810266172230092212248052449588738995840232461886010069341850595465595107519472866514245696518785717107608403519192436831177499123885923765135544058922201923037259465720105088362854749313237689909399406902724251014961091292615670424909817567990620211996958406900509507479781642067866134864313792094562646112565607878063439905380581173079700592919109481976156905997870289894252907698849773985084904171135615129453996795596606033760360083456489942394639768268475682708836163455625601472185517548993347107112701823646991149290118874884852720825616459600089623450716791734368572551713272664507992184879342970924824618584661314853059539444639357774970238590513596729690114219280811791820561302183473970326377783553447558419079055721594549829089303274684161246873659886683904379677812875342926589103182499989153913493884321210453206602054525432096974935335136488307106424850705336255518115249628812304008398070233016472023451912220372803876432957645534918985534993957826685515586919824364791378829683744051380667669610701192975574533635786807987216478538151488363194092095360267557195862908192242707239785246907819910128002224405462410673043768819890668651993342170010476578426082071440443151784062258787706272767581255900808861249965488963752757472253868115667545634219205849481409339397451263170690351687026867372523262827659321853874090551919914220215214625929683127716581931198185195584416480138777818175434642784221003352641565079849689861294324776188373482507343817140940727592854866139763047579663388562433683803104734144049950952909259240510353947243975410138407287908655696175661651654067898936224982469240988542980622614526555875986288041092214304796737633167970333073337041634888928063778489895588000812446055681101739600881372953709117887119479794835294110379476420737805045078291437545923421655757523523945540582146956140627404011509418144102064074190772206359812544421738995835840718680348747217301292768228773529534177130429914233764980772626917796221181079821759075182766286708522400085049621836197401837701946328147177966962446016010615827721014748894357961880414843927321020979558865528351918460345098082836654272723518517641029330598359957365424699506979151429362066346044622360539271230201254230583821621833390479959382809771305922580630297594517576305185794261635171976476634467326957081553861523874576536603530548943680089184265584444386711127990356860291936818519107040457849247144366605773458230205196129331078842445870557841715313653658488892946422377032861138519052055641722005612188333877745870628843058748012885279601271327255708426215305250806027275208274592018533417766796724950222445950833343044182432785388941534394266134428083016544946879778951209287814503744952220826715453879358120853942800784237646303328907134808248998571500963756805725389062602829513670983726245431903043896652754693964520494246926419626638554754675769530743465022736170727321122954195331454478603142998253547517020708530429574367085818643740994854648403689376066626540292175384511149175704794720949446677564584515941320738060633468178235257986112310455107397482042443593224209696497844823750590661627713445139404702410119864138801770847563446887814669231524594847637160395264766523135477600719950549772591682500659459497247361029111632818688397236176692813950607566053502013239639638669866680554790293007432738466198309035121118393315092889510909749005919442967242962591211672905840949016879530638953935688580393845957346040796225059013362320684752187157101380579987724486264454745275080966017677346919730143582943344236335212706569761472511889918962727597219918677515755529525405020723401180810753292229856967184437496982408669191134323358414224383833244089371380546209026089428019686397065367771080646188322221436953013260238816907853492318875095467675058894319185418332738464701822733243820292252770549755989472990925345621645549857413804594627408483814526642149595147304508263960499024443870050925326812311371333601979726182313368093802312888161781571523706773329337924935918934842752556432686446623904429336112698222606783530260499901518278383117908888669871213401184883043599493751401322789302028059972596861314928305980894134675714155873099878527121423867760711159284817399503820221471244037436871850359155791549947403244267202683135880350078108423717931594223843128210668888952122556750936161529193497195897620432371488845422583011380100889768549875252281612985921785600820398717507911423403972784134004166301010545682789200362514064026090693094094288663024263988394427416948847690027968375185150328852430056253472431670831936765346975068694237745367444220858896011679715598327524330629260534013264152947588477362974334351398380612805409481430785315864040256656458425079521332254000938316822549377793367006894485629518200089060913706826133546228338722990708075792998684432181537470601930447310673052371424173697155214847430557084863339158092424346166174447676786520150456049681240641925590131366856844255155307382289301099160813396918873749244661927998745982549836367062743093387927086903926863559801677656269147940357737501913225096792329625263290374338062850162593281870208898740654519522048577073402367020321115271837611637385562961049465952505955140613304343394261554158992218668135476057634625233815334115736230676378607196284654159376183506818453810300493608087770775920654225056337518786497925231231114499742162829065406583395284533465668091468557771593978432238213229276101388778587065668406840936468777106692851942256865212207438896247522747443232142626961972409757325386567745851966553265128313617628323160481648636191263893152328618092633319674162983682830272736185357623507885502441112077591087461440101825915779616588906936777049635784699239492341168389437962508681422129405973755782945579349675152905463261582644671680195134067490141532564782426037191160328030299600556025235299176821695789648488094942268345511694857169943431467139701833283636277648725420476512680428135485389568428829084896942733678137744346389909306826373465469036164300155492753491031115069702343650026005579957265612442822033664092011800989239972071133534153658700973753820502209948996217688397245963732087174895052979184616200889846932055377242062965008362912630610084142614509235878638760001523762306061242488254742761413412053575997363331328142226701293227032076889854895675853269514500184917029127306394848302984858814704098754272714634856672520500124095968365897042468647497269944817503223587677049250329295520983082970122887363332398700312473250892339540175026983047498262469614924939828950842278618922025015082708231316369631777672981452811790088609919984838070194797289984218877440118316430647951401635888323099313840128756576018505481103368269180124084347087013229396235180571793074123536120468983321694893857007957868028026101786874245728502417694871375507716505497272052659895637263889023506489485952459256384666326629514082392924398837117920014845287979415173160865701667967414160272822756408634719647911183154011844809363589039570981828277699581156996884832183449116013588441251960886089686737732993103107826823331152536276676010991065589244234363812029206080783073870572164253354168656426201347127340736004399263118859089667329472858497714441380064367027022682810816592086235967430262318895841659861061852758866810699556897186606749062148127636589951099997740270925165831291824029366377421010822513705978598637750263582135607013470225111912570278422440889730746824619465637289938647777722441685563516743545255683576774402666806949553940335494868710822065433695907533686706559258063718900120549934952591304988735805811653656737536862311395080589419326909939672469307523031138323938835064230811575573400822975013531511948022669081532718814716473264234378463868549162976101961969172729984941895960393307806002864488605577770510586896418609201680752759109513175015761443181389230396099085046337036078888530363027580560025940624297230911830517173508542530697989742563873590387278329261139901943621521936732077656254410635442801753251661304022230379766028640044954025954272930860557171258174892893809651816166110289809131210442243592385514338647239320724635348752781000303873414062980854697999653684664369507750940035657538429864187043963918485682427393240123877596515937235634652659346949979335520638893831174059996760098086463508221256191982898493175411356493114486625574566141579894363853308490439089771273750985890557015553142166692428637313970504259950967235446165633503877971923604945704796533492105946875960766423559565363191906091843307669856382933179343477339372527968897415650988882186535992442807920428531055327416174235348566484678969212121844154572387377957512921400151515179873752924034016364219905045309533734817913789788391188338197466080938368408014840125212917919931638753255766843482955118873788838543190984134855368178899043547739489672533503975082277740562064828175558183783402778332482770870262794850429419904207183553730548854875260076530815238256032373697992259883039464212160201126364078891965316970713573875153023251376594584253493241703331414977141615711168986589479095286210613585296752703690395115848773066875255113633431906670474936791410628974308571110897270032673748994022813698693925524431436436432571544326869722992367009594803967935355924972813323222432427443056544020232794255607485919081205176523279315903447014163176939292243232782078549438374744247147430493835076103159672916597731734911555293727615843426841890357292608072929158303001885674110538473494979925122342367392415204810832678277538641975072500945562669362708508237405081005696275364684932776276048832861847107796468671063274162928539002728222589766429550054442118722791392164145378798051216110118564692763830224842029570224969952108455700404124308798068155942379488589481462892081776031796636162863547139918159893947948931136013508592810210986041907116667821206420697307826473880754328234211812405020160875212202954865834029855733247174898023257123884869737156679242932603957394156913246055400894168325452630294470338028450033642454382225344675383690164309921971807235809443378148120838143770069770517193899746001965101532287636141802218117142257764190697891707414465786565261401731850506877937682179509901819284661116192968844610260444634506688276391237579172564327899506726260848284902002056389233966511409370528843000724039535094773421823742760565823398834196247423236644788200082959317606866312996695865171751842161076589562846918849836720958241085332922894544087114655979453524860072542951169771653589209738248014034095521263335948719826203311099810248432104728601673449795986176576318806868924700957334285708655975587893258011543495594285613587131915743526600092736712879161077421044921262028369086931228911362991275672725017536323585493912448680801878216605725462840707135648833146082056554298751245724133430511644131910884217615641622657226442801739959209342265423775921746936056260399849495823018540668006170275749125047574746707667409619482022929455220505464396575350893890875998895483135043997076538120023697460231049224983231650565694523011180992391112078426833864793022988678927179085660683592729694508863688226491283600368234403764942303255985535011562656624217022239316455571616839792561950879339331886100204476524753641434759484727879157495920040025531739270550350210302784549999957517887091739527873057970915719338305810631406639893961043280740362900176488193231263685185198707057634825846925730230045707066146133218917880807092700198702387594182218433465171876298859359448325080788180751669665519495377371485468806419850929175135899374511304895648763826863609869411883139763982855364623750243064908264235997788449972602679750964687407694986391555952137200092036445287742893862494392709249686986149057295029321787621967167239481221674480405532917238360419658517757245131936246467616226213985232088322014599242460503381199056913367867342056653259967136102493989647960818864886623062837498813678666025197712399230913080971361380474290444729350717798306606717061417096051151839189029860582841266457723311772821292377509444398873088857300438045582804872699223478186183396063665278537997158681942609897368520436833306832151524268069696221688822530243967609937162924841264069589027421473082142961340201362475343875081145570247750137280632551583419021903445736610484294157574070661933331735889828426716995334239960921582737185312183842594981124163305722588817734131134421306268940258907448202292256995648269815682655040043517700570293224617816853999955748100211210572167876444109216509579532822830045184691686961053598565449269509796827017639699080320739429100865099491549813687135284939524872848608343127514789931456405746364231463717998440168125108972955793542364466229383196136713343879292002385362363811317048452665136140009314784775098885588764930274129138383031453853098552137764028641414810340591186446970907796737069915297694118775409401009550995828434942799690009402489349142495741601227847419579209217457574539730520091714031404663250483386818770710713352725348188755721182698892868633287629150690699983529876864669140900043586761070518696949521729324188898099588614120060391561401673212380785752130175133536952258091880473966677750846832924440242403869787791918917499921197385034855110386258710225614069222199036086065185282313962587940044745912721305514151856358377963624300000308672376937628062652706455363303915553575729653762638352145164493313276143538238955808594199189651810940915239245942413845741202060283152593538062075936835798694064565389036546095259042098451949698636397073446881863435637592835107636805536622489622369054006400299672759185297302479366621372026990434666999099454581000847552657899282878723608760827366174541672618710930268393905780553163114725995978074244293964611899473192368148375309607294218248005130318690527074453046338987349944805954222672883543321647933308431086958757954506101026161686683293438455887986095484860907065469863195325058887993866012414868255481041920103912865509543580187345456177566692519367445337185650341105882259895588187865421162428790139681176950130793091681891240681713144166356633386955919264824533113012289922113222912214725551564242740107054402215256655796154953239694256397882573537462804457665030517228064738853058757411462646804714143963301113138246758989931189632145299344069450609609611470200576181910264137394662233799239889102268047563647125901575093811063141063221888371435103659829083291220790222867722722736214088302002003624025887526273258511296719031803817713935959288014447817826737912721711458431222372224018065852343179445658568589121198088584589960637876119564799607037287460455319349192932882703825610153792552930214277470078796580854308381038774415904905588489436923755726116545015951080417074918953370853193098357718252689128472371389916433330985714004997593383713223624081040846488348871156112985407604908764203351447549958240535504890884378954490186592845929439860410169093883611723235108820228486021175944182399248631949637285322381995909794130059083661001356865598878835917965987504320934293509987031339669683448348753729485158396173639643326268563499774065035006774736845271856901577639118006197210697697733780151988689364460147747966163442793737146814992377273011629840446040821674504184625696748730456187571387843241891727235371768224539960636171513896149833665631447129570756511992697870527083163836983137179304886506168627273309936790194117540828875783131620609936520791440422567039595648223425517209354627964418430581048394666315960466053882875156229623808818105948669783045661361210844627535857910490844577875730005843190070175867118840838918467665465867758946996746605154653345634826935811518841117166370690157627321323074583340315633116083022850239254840901160847881570015954888970168793356283631991175985562580813227425988009399168776632933086066036555974424017830164321167251884197799204229787450527422607721784329186505712671023381342166053919607382426682529050637817623718052588292129878683747448410222969892874501715208598626975440536475984915396404074741172768805934156961586321212815262553328703353289339708211723362806922872614413261825898093361769376026251451575442907999736872713546682287024144353497646237085112324849132902016780426582181992095070949914437184558591723259179632494257760792640217978641420097912368345940109462749808021191506637666657800147087124048220613894112051586792814412281985139297394785340390456211130649878483763282121474289847867312723367362806253184543616010636237985576789350974029174798989134248166985713509445488233988596330208722937749793254626412344079401127072493184684700495642186292736444261135322503523609277249649214962222538847921559307440827423545833893442572287183403918703448317570268907770981604941884402987504499376510991792506357979251737792031530686105128577658569371009331279588132890428805101398124228699191808629972183183386751860675117743764423781121221065046780705654483422774130673202175291635484671993199710577990780929570505646368497581387253751150643183324571420499487272953651329807044847215833681915969772744686143130487576654065218201334883852517922195886690671352727291241609734736938624892326885724008565273751024880019560030090160385657638446377846852425052866859843166839444403338622785272818563125636236997562886309477602483840289534701566339451124201061099856216821482239764845769626685551382704726939982214812017513879563649808640981218846739733969451895056134998467170667104160304986340983128903789059173575214753256123618841507220477547339229199691321834093537748712169893131741573340197627099531161456419097128321618018094462446277944028665683428201569769548079373586931902099700889026610454576401409921200242609568664122229485856822596122077092681998669982431111534874413273953154208840495337390984832880158791123860639340782974380591326646108856051645374665871667207453948965341271073082012653138541027210552348180538644807394487905643813051895350805145279304313302313876955765262191157410249861585491810816294815443526139129031108596806135358273615467419315587563966815066489194250076776063860025390581498469549660290018555513309213457904861809783428194389346834012390629072468976452497766491116540456767452055142987065571787133372017615434682304471991015401813598193786605224831717679220000404936188098573600536816058897539188378835445268355937818889071435838835409565010614643835515697701246355668241698114451277508893134165953637060294634246866183289894786721798514844063500751982725466552394233631080464821436467442893846496085039370399022065032089646093699178413688653086220540557946629259630012782005475912185986013071185656122022533838705926484729240207242770505340813423360775850819939843205767796400149869650031031346242720028983013821924525674047535273226214119822669622461908404867024899187805065165541423834185809600284110076863881676873003134627865179781602208195450885504099949645209205291059227860546388601515557254378177191716303827764788450238107005180014547868443616464835046913790780201580173161021513861257751063906763020212120541945490312754466196950103046274727021757697933926603288582682723479084021350649252811012907061992224762481281691264742390839019214056243130060845542344730839806242725205475268254234769545984290514861631196551414795558555485053195620695051448428642905012202610961919649234855674354035911073382824751186312079712739001611790677737100221654840815837745068744143181853101142863457386017365147710419856464209971279634593433802256246120866775279388040730560618066436375643760041066293602879754601701698852100921294601648460380710932609230853257207332453663104260560517788075918431206232634582739413313151886267289925712201572359734178695370648030078978594590737753702568673085908093068418384245885712603268978224558153865725176955808329842589706706250807973089221454108322727594245287396474167059402838637921242451245996567603936662758845764011977795609245316785407879857438144978799237792167558709426277780848962617914168345564670860709423263831117462077202809512963501926288724616408771782623758522703261476681218006410453330939077858506667928113950959076749023806899217927859142672247860592495078038741461354016283516957895684340091340380990948725863805348438593717026801485194826390606460220535132490767783839016861792123399262433058218240768058483606996475169167033243898071043212268712360397020292393757088519056724990740745421331179126168280819955322372045504853020605084692069006653109590064933572573801133279892002893549922738462402615044879961434335470147511924688906349646917464177888962804772624188233464332664465549467939569503970485892735472110086088425619963663070724179049849527869342253379548415129661010672324923610815788792798234475334824746184856654889420435822024000842703628203071809268462405275648444025157947859324336343190212991085804465372378460145057383743801003084369752316791538254255463935169201003577558200240238329816992117034739091169644206226959305912783727073728282436622134594926785710311822326893321071334297473042065982036505519957448551201822202878021849617680305684346866435000440885549246134895539130397109071361602499223256059770150965732648044351335937317709447158592323316000394278419667636400529935389450766775453244913779844399164949885334472458761654580539511466538311234359840932711471082036981873162513212553639895879229937094858425493171784733340303018220844545234280197183015526056613722143893042201211103050745998735054070472666084271806217488791374530030156302518240718534882427183782397383186784030639071857360761947592483719605831776760639280775350106920103411697868093873047294328196480647520203489224902481115138795440055253971453015718136451689150143126627174095371667427850170469362510183463266916637968150053478596463535571213378153580820855037547804781442431747096424719822423152519832522271254959825867800059794020974872381139697183163747927411871596324811919852031103356709928293287486836990664903699651309703128414695900224849514098148624507584007439785390810495430317153123328913727623813257436527384912528175844366418571356994653645111265965635746131442840092600706604747945977909440751414923749270111414024953867507965345404682265273316987568049490134060578052205563570907981863748679983098329504931011194078681605183534195444886901078574869598002230887851057793743432890869534166921058065527524160343685605926803210799001280863884501773357209341137197879163590742918185861305243635647277793069032595856944660826440163707607086696284907497629067174676619743947581286460038371903092832948984299839894371158696872264374085594877757353264770434828445460681697914824404464383362757979950039607965017029922026088792117149007143009397914972507176852327747172178012418463333437167236482111896343085751168266864981079893577262642065973502560956099546339001453820281413416368358670362882112735868728045456244427483717176381149413466970976897144291870544476174815209749915552613984024270796752443064026752769162578437791876278479420630292010726071743478557571543611976910819452603150553554282189938405486346898420688584801491629468015219309191071392243518569656084938989925076539114865438394653828204260797058408548473065249390706117362256527065976944507691739749945476326099937732511565075030405861029261703152345225870588332858427279712417897931119098428153681369657805949642112004398250449142658846614979151399458446842633855322703704312686612398045813473548358224917842218777717483339448650509846563258517563454460632279037230050620005999682802800700252424532143408930238172385310923519346176835480146138847601270140537327355864745869057634385763918624917080739330141321943917926033284771354848651511804384935802023834999804853703428581491265961129098469765220755953784885821133454332526437492234948548493940624108468403811596103472894133768679376753564125080007880245876868352274080226468843790706219793466348467564637451462240451546191639292626945187581911318878636374654156666287825328849664291900025767400359428610498292015799605888485447521656462028008549821300246232747901996579762015338741345841953999738892118397104634838200161557621435963851560679161422604347349051047473533796636092051553581011399476356490046606844712422532911787459006740698561346473142263184315713312712348860393970559852710079083666767247856567967976679580642890694448169797732094166653472418072039080467180935099374718572691450794733312709558334268429738447048166057434208704400608483592834442216930368618486130916648989262847317165166247231031843056753697480496945370080972255361076981889024426576042737484588995292947149505130458748562130591851361867199714909356841786521078801762540949465807317031391373636762623409110751589451089018082650421369707192586560567516781420446961948472663445973765724337076331876191645000393106278372909596419102686953596444691942562068384873467177418273277261832878572591400039564532602411461951671554733457053023976086980100838154021932744009831337055548612799829773488157400078838676154456611534667010025618236348012756598348965025895460989360488421253945785507888411040013147205603547322380845042771143781005012414042953537481831762355934409808788190600290665654149529016552533220414418504216335412854916107625040121366409640836176306746127396157417124842695892103136995734036733864214744370046300438318167503840043448896582723767763454090100426925063186861200172209399031563704532954405838808335948235135841629637018393892095480541434222661865705202211935685874867949195392387308219053303448925146766506392650559086680255436359082725928573490090846961086281817746881545925166841409143198730621878919588508994221216432571909827610029741001390537268192427317226912642340413957136746510362757947204768541049173206733741182762658976945111047621050413936325960280981679195464983508441756541645292713343727716381128973580511121842026340355395456994465983310119241634867620604428840973911311605873973971046815541402603035218167804795819315607576333714766616561614986301208327035112377190759440433248535399769046222391654165691601706841779739370434905000365420446790637671230108865617507725122191511167689046065891293776201632934210552668268058513132043521408612801164863960738840435458581280561845907317896140947392859112747743801156257759021156341978234091226622330505356981929985934340337037558157757851138203908145676363440692397179540790288276119410236315289416337754049867863366223805416025271168701697270325159176547142958302219412133483219611657046502589365540892009093817335362227739930246049553002322526140879342536100932293005873864976698940663860788866785935466191849105253602792075705604753928771920078347661202849337635480142578852922819499392478607312409338294243876718999198396931843651499119171239276386826541828168345662465404825232507155044860186942563271936247616920208544176946415619006034012472416781908521410564412102655463978546184465770410056666248188238180970027402050622944735259229296939071172047301022286417087827386205497611104287272889131011912254406488906425979422117997087634535163395729138822726730073311000599166245686895423778808798816060687303158704468602019374658635414404218512177238408081265786984538742627106135910692158162457953643047526339813443852366582788212372263310341680902125956884450554694982054118271129366461193161078035388033412064863022240374084237558816090978223108314373644544026196727262131350867635315710098730624235655452490254746415239295009672413833305513203477123975520445957026634340475591973537426939966910018246863943603798568621740789098478134967487105000563990632812829716615764526274858909545379246159795151617894183966434988690873528511002054987505171146624426664187146709044529722215594092243137394922626499770943258150662636881586807518534914258612539007174346357586786207320066013375446344504099588807799195001716892443436741636203095854343862902099082891561187859199713600823764990772014226502705158068384334631507582720822007312616996447485823591687879136267924217802169611404537757913542476447727407026250409505272869501588939873563303906699801769845283725527714017614700496966967914425090728311786709676091423614950008286204305260413449487824813037029155391427494285034241288087368789034419404128446779739134548709496558083735947795229732597489361905675258123755344491887986838234877623618104945249710899376892002529926512421386177512072237300484859248693574961293086148517286736891015352942618115971429263372036449711542590409819299773157552039369022906895031745744847200363833315590176781865351952663623576245647057632790594225459382422743110978089722363648614966800346240318126461028230394728789743732630824828955298282696230869414466786125964950366030752292475141527887480061694181128947600107935416636245812201269669381987297421693596571874745040171616375231986140478027947369053773291828542207205451879161842939703248120189438243023210817360224373576882598851230120674781489060918286733179388522720322070655542356794428179476070467298279497238520275752433568931094501411138595954940365615741632116478307006946662520004915169548968385940779561845799403629106454867228259594664108493223721380962306561718832721557822488023422478247845928340224147282330402732327811522964783320093116582854718305326244696607840907577824672673753318984194369402823758700832795814559009458111831623424990118232713439580860580914218934620177829836516913668769480755299864594306142881718410053107872592672712653905901708091829115254045224219343248706367822420667549402451298067325800103195047619797586489766627149406103628193904049076753645260242571401334948928974807127286188307399335895820625608093742856737242148177097335466596029751655099612163623642142851739602047448752012643258945623258278911535916198694213489911295188322802745756485675544291969401617212521017841739170280476751996812105158881844122548634977373834471964756860573687579693817643382838804422987624123726768743453996831409608303714096285050848310612361883614757810126275673508569734168622442517817973510195785821997730762474010512657375919974385086802962413489596332348863910587666090323643942712316108997288544002910782164013650267306431109085744264576049329412958366910846483948312555394751937761326173024761450702892850900958928704037509196116990766412148441687016937390966282982244348154523299332052046020851908759352902458256268787134469078377928495142139982099505479885332169943441212832242286753688965344861711148125492090238762705271649189764376043334433279641046937837176617493195254217371404461937362504096570999623359037489340127562806748229377508979510584894872241926803283679184748890676422395352285153452579269902607196323043630074620657939680608024631184440681862399003896320574492507590467087677041196602865615077733516597762259353787796985005754301444199351341976409126443472571531879955634944321660601306743710299831094361744583997258139850332688750881296523124348848464985328745883432898511511019967585957670665088532654566971377243292977796687914693252046600737940070021110918270162874903972427496077607214617901301383791458743336300375150096729446992992035497402577515404994491992858258779206798907928108280263360442082162164118886207823679994449334910441174242568043203794910524154244698676391390697926963644018315617740580450691206562118662641729260222389279596427540072822974456350170243037413907711267079249391067310986690938634579005641840527923061599187721241983736898177069295595200052103775689496474357811586687455784235568216527050666478142523581049701333667746435671959840970684083740459259875934825568546504792467442935061014519015035793657690244560700124624962918171059086726570205807647021545209116205986302020726480563123522317915907470641479512106348671280115827923290041767827220810135294193908545589784221920569780566315827125438934718114846809625817203045018116491445627474023915585872029516151204987280234314350876538092214491099718006905933663620837155656128244864898645267541869251001897613610345318943651807070418183915607798587306384633620295123833290457288265427329741684463350314626686066104267317302917347348254603991055121694208950826565151262923745170064140193254009786689261261468129194535924122177188925276658511910752108474864397655231970953957656077333028456074569381102098181751673197584733830854614179170903421060778003645204287885196268757916060565917637720057513993595609174281804584768298348761277669980975363375972335677089574140500769691198381856716700310984298504622487233307322068515772761963677837188861599976701672409182493272053448400585195160874563830458557144273080296723754700853945424240521485777381446055804353163878917417873109983880881989829880209400667561807306593541091452988652735151148266877063095152831622202504320606701123662557125313017861588356493321609989304586102326242699198733275848297541745820690591452809446472947270214865572617814743882576771002873716779019259251585418462813410746235097802674063819729061979984824360429203894653639502792870551798248622043059944885954997072943974174265263552276576317162732087479444658444486403382093847610797316832652722309065417286555096787149792851326628839624659362301399650884890388479016370010883756275235403685846812368997393745452526992619240920598007568756670266566800803211058271723776397792130833890576006200439041618241903962230589118627149779426987239719058400647348704531821353274776761465042883760353843206420148327632460563370691681690954123845124634149187051139046121781896896455351876065578833571766309790477039823923013994906363975131662593144751346488923016463961043944411003859239800139480162641918695404103705798372731323926392215875786726189738901121422869106399565502312839600458844469134395703813768399206378474228571178819656640428099019475188711310239529714105298741961315152989952703860594721616673413793851744612628736735219171091135128851044286539966242532559815297565494165494190690281783240715967777287532913277788166376223149960081662393928400524653102218546866491187461344118170742612712809892665323623389322633642928606856359646640421686607967455028686187870628449529008081076830930555796000306092327697472572521926962142321797861269511715420501620129997925517067284546368702078871832601833014784694711096777363435054341279811490011458801774999380914106037774401523376793844385188229504126824416196657519870850920809199701528392503789119399803660674987921980451519881561724645303837921266607688698490500057906339937804137458407540895743484937109658686850162412199884121033477101284463480940582775305301688519850895775627883537464952096884125166184274496251167657961840461590810771819557056979115692803373054133042744351816036219544906994157232558377276976974674023957313865751122911563042997012501022925768171467883844784757141571162587363330988841785055874000633964294502731549433188128984632079169486701370459311387469887028372768152744129947456107256373211904483814306131232402174049535720365141764307987241469648418288218347807410797208829993159564464292875376806474295128101130658604794079419874219003482585503461706090501566168238828191032275587199551201808802683265769481666712332446869924594850980118425396590916589920204888169297393699714812070147813953629930451135775285183389974038892077764310685242523752585746654683584596690775861766162394694479022260872369088631798613234481336120868264202595341867477098055486205240879251594828348509944706946463945423841060780228086277778377499127616879905226813159610704508089126102893893112955153873173581383825215631929477138475113706079709293328841541304157658684197907910434746494355892227605968901209010933987891450842830934097912143414384509496909571993952062023303948721238853197974603994743179707375325197633135038120884405244252363362688603181197154950611068699030881514687537947015429921059370293920398832793032615954360083623887160648479761371315211095653821621793725901738161508094931765910295494340271805350794399543367774167339931060711257433835394471137143692687481530001921900921976084242104195618003245104657192209286549698698552242297962677870636725454335703656014631952935529205927885906586634395701357454456334309049219078127244207509234422403236274188557753041197204471270279271821038805034334667555237747785363016397160426876621262817410397926153703675638310152834468364047646471039693216183377877916205952911818455629000357731292902902657065653104590127382478898922644099386531935402163375076400752854972434397193587293560699460712394245327614675538727022614852530701447089517228915375750947366005720342408694344927443294439237073878324184053125812350056006771133610731309741213182103407038651897513773539805036940740562755479718620045469869774939312873305323841320783219892788922671980167596428344638130082083624473178641429414938735029178806227425278766502113885967972228403551318422739042293392425679331928868284506073575514072635696546746850782088956781587453057243855397540177322220555966267896267305016580753721474966800660225765492692967317240639819864150646945330520146099596344381610683940875163353333407523709231462049920963618974441026476119977718226288476942369969418304322020738457150049685707184642171752934530153080298049079614272386925630817393817734033190576858063329519438333701580352805224606704290795945457867658218961078065292426420738274565569050900716737162542560510428895584757525586919146157389265557490312879194482940547378307885143559438345945166722152630614384958104577243846503855298218147125525686824476445830132413950559989781160350082837248944244296477719723266232649692890628990378814253120805878838341436746503656600046154075576422044373345036951072975397467744191184313454542426545405716072125970061616241697928076691400311359096080850546237612435886717393233079700342173943315881000754887980310831577347075078009383921202874906170788371939912800119574771799235225784539971901404057593715417531037943530444744308317204359181633553087892928351521666706513163422442701736757701974225836220314127802520485050735107536327173702003780521757743834119623520801463707274405513463981783877285067038680737516141117051384612807021258431994983267324502455533584457976384692763531630292766194612924569060722814281316465898054011344631626371740006966608388426563788808860308958060895773143098399868808550838965546628797227624169541784879096322101915711662052636781443004512823200189094185024488013286284775269666782691469161766978721346628508152942303596511901800164442298000574015251037828923100956891087807146022864106612016297001087399952365397728983061993800893646905634963934432307644581748881043724937482709341945955973180982548615207680755827743006794159562217568529830682076113253345261455007971787703447780095060245411768928523980807777799533939171968257663125463670384553304419151058942822733759039094956081973314231385851860565525084747478561604947937917849199616619650619671181164468885371588654167023969045885997224739329215378681930163135524217485084793342598670363315861249826873274483259237712032972099390169221311373360839570885265209594796770611870919370579595565722761916929529491396029415736047895037196078818073510407567312124349335371661798712134694893595180583529952438563642874278608135000273637219413718630754569599476410590273567484077884838886926963497315109205652556690497077645940969185908783425121641989960804631250311043703388945563555158544533468101885090300909195964250771595426113932667006928737934584274997421501405737974909586525150389094323376769967578071611444620002366458094145138137765835206554503190590690331517244396221177860082257884654062771356178672508261493876576613727503492849909896242346123243136918804558053017572912699414219470271762940342930420583453022273648352348347144522351973311000648853835339539827176837411521583089592565246512764309166362497327042537579738971437440609220752776782363833596707619911603916628384745652274873780085168008395186317683843484635105855756771747756613104370552209068106466875664234155212911112011464687029930280130150341374387868466605597778640490594178618151887484270448868752173616137383797006083105850434330747292858921857536760809172245007005713163182059136700013002471300655111148995607414741622426557175046332502260712048870121044074872448058442042345578895218256480969263709619384556183661069655923341001835109034431022697706796186059257092443542768461804437611005752022449855532944050338284701760763509062553690437096449117967927712022312209254556520791717465753375258500627784695359348046297755212131150442188916572883543343718675652748996208586176773963144465144712254365621282948656248137760154665206464573355427946468644625968412633919024349328148773445353955018094026214730137629347744830264092691898498500851528833395327305160223145776601313167209996641024923018943736038045748005453418206691949793142901957802015970538653345993497881849170729606346741766495910785441081193446782661919932891677718363949333534824510966884649807161065792324439455354887380367154732317495324261001158127124695359773750447532286211958737014903174445476706114942510678130633310240875292996274250157661431075826973006618764020121992434144760703023035029343560745992268223227906128321084678674909984587250109438755724751550207887468922589240002047243924105406059361831029476171073783115923938289039665597911319804913939867879409923003519326499615326436406079515486940901780928520790982016007873329047015432937334748769265764511450288499270658383630543231414506508936322126976451915256219875510392617093243616034943023498216048866477260270155295086899902248585099439588433660925332784889678419196261670277232434092918461454914263198058100543669935538518734628014119227473219291868464976049084883620148872380126904912518169147860040695810659144058590328300748680492760267750157518787936084996350132035918368259246282089124421541692949244560882111721685892864881847896703292170615227158423009357714482458218421003714386461244633915210702590695908207065067862163542715264166856636465077599002472794759496260009242995557891483024541480487747466669738201367357099110073491276802548361827526312493401344448672226579990288272177169315445574317041855885968243585639237654440809756063020548187430399912874944471849124683370741815914714809253347159953086702863951750485721359794353777918160695337606672981454464852781402271507747725844915275372078452024994712174265451483730234502366842442811917148719133099534251490524212050110152620145373268271927297137454208009190885469326974362118921113678328713663542644099765678670630326975672301483449545527006054633223433496530092118282375568076777904980958231334004948741668287021239361597934031292086397490176905111670290795078682790255240096814574297837748363423068427493964133231108375617221612814576808039077458504693363652957853452736828342700098403471464439524266532419521551332657463209675920350534477630525482224957089045876075878949403693855941816374406335736744037158400291693622897243771680895131027661178323113237465674237019919870045329666654740872014517433596147601176873775100729468723364447040058307197234922883235604158200246272049284279629675559541216017362750151623593595283055988588576561430859576623642962646988088202491959302917970565350710952626018607122765765555249902803118099657865993264256021242311734944469476786633438431097591706357279868523446630149721970491102909923110723512831397957552763900391272337619117532058408707474337941486841790467589087399965230853434680822116944193691706643996347928700164162277037390148004592904029879680358310959917257847335002927763544858204862118856203733025158726566700550302182627226868306152822040522367781576655016768843731719268163242312384548587738352750579224474356632246004827569106833162073952845194148569329076125246207174941669518897018401884489530693440285682111185794482912521882183790804252357982655425688099428393152023306397337166061373614080048601115874654768077006739269907686034011880621334889066093232535408895730076012531108136204402870542428329334487647973268111566970136876848347407735878550796462702095431714772979217426041447905773300194485140763212146608548746605541573522129152015729300995680319340406986083719865655367638675270186861553893044448369285680682820976852345057762475256162242453359634930045065629209677293128990372495208842740683555509681747565097234995403810544777589505424987596110705733063568711317995654878935886631340600073085780188570880250195802580012461165322384526525281103123049984700198599902214234229326732151324922026419835046929813632397164697262224588334980377152717206574585591920999986590645093795983076650237072624329799362287944622317601635085190997466280840900205267852298493141608801535315190543811874110391437429917753835228372930351352785946292219780571615741462975129265993486617648459676086777100144198718701381156025059819218415303186914138991135673579599990942150246259994377645301062523219736311800230719667942303069432631620219351507452935312439445076019316673955321930062450499420152946252649325786866539219274626201628684390405793622876996300746064929164481090056497244629103407128356940412688450550744688301750540462576456541725257424921898209421734926542645765473743288605002845028918411821627118425221695482316867251024162592633979687538941928874025056289371031397290298908454788998245413846925023271878803281794144981623720347835132934253400572176723302561123510613794593585480467634546050498417423246638492584680194232966407969142369006168603699963043566451705018998430999550268320367741120626649568492772595651580473776241672337549582512240219019528469734967473306955520714170789242029409001591544679865336763460870410756414819321264146152926718216311164015654563492595946757245432729728580301559979976223134229970282314005978597579183433948671281509071079332681247542285530280341127313143687680935004729755268564288917018557630832506893410157148507234385532769634818752627274076019133602838118809229433243065150163561790588710612562991020343693051332949230243825998569808236388860289697192972726295998105221902253353964340678475418176239947861286655916663821065766847010967067216774720566385523473520625776022527044602208549275844610664499195168896634951691233232839290211252355646381724736242691329156497846455498139459330299179513261816804059194633476891901036419442485593555247584961604282671867682464830770025966248900354435208657180050986929522014339010923043199123972308206041195283801563943602836141691427143043739580848571069969348537985668823112825406045928259472977625001058503990720465425152311981681061902455654150612323190111473275763440163567016184779338519558516970818649181980649118473748560355590582540378492261727738575690875338184573850060598442037772222737703109725976737696435465033607652772328799606268811529601093540872991516208212003983741403840520700070804206464414418854856369325147032232728992037407314561969985244772154203512688640857299333057320135442479124277555365703924683983296044137249983338850818057282010085012086371025847132836578591828833663737853941105763744785479108280302972147542949923422860820441429057230714792492804649010469100683240153063658890715863560488563084421603970788221644313906956555503472823660784992489860718406994791616924954786322981000962214617147680404815166156206124289315998595336056544007028832817602064398827143388969575104629369687089755387579556640110043081959449222345193432393097260090708325694218354832921899157030045220519939556280668141630515250657224129568395169477933268257693504922980213815808384122773893743998710287890891388793475600314372913810235654230627983398632260866865162416867091450210870491155254873855759348498107479417038984215635261123049288127128249371973055812074200226269457716986132981307652332694854010263847621395756943746704997809728631667849594801081091997091520679938870275279052565793057287871030996970799678047689686322735508979541717129668058690627274677030658678830263458655665940626961448391192535909443798552777297144973972435228079324240373100907827718357087830168294466311712612063800599531706226308207294031306452636986447062269382383763913530508931277210304958640769196789901971080837667307308655033257635047739998099605181723061852108563042971617836399024978607051384428069028928279646689795263336579719520290110168399229942054409403602156651268724008989309729867776614504548914553676083797096644687787447194204289872866508843394426890657391087630024681399299594710481957345750849985480285326188119463708993786810826861782537763430876342814207431256301561412470416582064253316399942814893145053625808000378774756929215797230514864508381706316308098573592680030999748036551519375746958666672141324482839019248658056764167907028279832221641615221651142109244278491448761018414661979114785333393417602151396275071807640504880436693508060010151395233439897777005313411269834531558546922008130323095916090985065392982886031548975384573009905042269103766545279105742969948630668953886825760394080000265234820323129104050654002147225152014655269528220410034664729165544606056254045865098740981098931431560615363158322039572302105906955766065470873529388591440019212353045073356359317116361904935970483946215745459343816274770981131838322444651312696689463656471517845935679075424593305822892407829380751359740673411538948865376797887008516704286253432700671573732897621224499161630435895819456895764400200958433410662002530330925313803632470836622655588340805772727620824571674771172976205056926409238263377602179559164062264496793240043230859222865814381531617183203198832694321206032422773033575119389923583602478409947895750211877559322246212693006463129499243438945035374335040965641634039828483430303217181200834542753963293419260487858847560948986722439737915345210221713584201529600412538622393520161690315228270205549857116359353099614159438631309150701335865432315126142684907248872901702199827264848907737065541626414414717169651700968814747566293711058849186193849634109581165219825671542173988209808654297236129844382558140334875501598238369968327583052800278646490016293445208767931966387670969371134722546122439710900523296162802146898032063582088895944058905112236374485009153454423191766581619799576091641262194271366442933224668620152702048732332867551110633169260784985264308470508750306705601538822706367287509165860836062444985857454242371085888224203782909159407818912675206388914382305511780628933082935103166100097476263042937180976969739804327492205581869455952234509015674624531676695391681436710780783320573014520664379071589067913258948644277679426205689251761268752926369635073519875021336099839475150284024846178632240199355424204861094137051374255951796357471952598935458507317143362154254583441097531890635187161021748062680098311368190527061113110404957578642009127521046978319364279720055737515049834936111371260382851116560559647216271932477609923823005596368735939239220200812784044430734292752435568260873155908683271315093622615418978292281421755663313385730432290363670852957956877313097100186716048207054265655412936345697917135585038540286343223824566633624438474201935394375245645387068742934978783799682481891053810305388217202672080985358985586651310813730467998038734358993637513648538158672697462227102842467508547953716149771603059488155644223768729781105266839965417644023983212397694518339098478300876449836690873660770156001826058186505785864927313230661854481123687948755176104036484766626357921206710466194553320508706950560675306258016578178066542144990310370027201460658909814190217275198841537284623545101421369295651071436050466670254819845149143479734748288917589518457527370391160209643215998191978542776928437042853296662277714797385204109919675467475658407641123126636139207853178133520988942775241121423513729763437305858098086238075518341073262262290492595262518160947199274019160290811200180802569049270550353907404978886483423286601509359117287223032212122279961999013660558816802922530621979272313134395475605455388085278018785124085033506368277376252597124500720936256750131702947357116106958533096972435573609883423408062248989501335674263206598145131287891201203317860437621207934689486279884129411451288685709717821151658744378741009744140454177728347923617223506106417163989217300031100204753578231942148365274639796588420970353599702422887381436029211612080419273822347138052575467901334649091775214350769820053230700832622355466253547925353833529907692628548651987401683844581317334695902984704406196779136518884411540447161006798016624241048889144698051939740021411880114314434865738632583911785327118265060739271406156675326215514611258016050302641914351247093343529358630201208362293210388959389927077168884316663710428743729018724440307118468395503329522498985210795377412947123433129329313222775281747649270401249172765897897497054629642356140930044485710445678273304080098077412508683631250050942000746971463026382714453084830606326670772733038001772041071481138354734510309863628346173520732482266636959827822343951646787803588752776851263615949669593347118860944590351363099382716200401482043547323717056896110964981541938364896938174849557003062082924068167729449354464308018875562529119621124499150250301823844227104203148381290657242399420496816572002965574926144802275595201143198712402483753194858274410652877238398587525219136050724829069222607670940635969544897446545812996817602658136318930160377374023809275688862466778877503714996177356027833515941418510176309732687145633595313173363217154434084114929876148674505197840924818442790637453787962953006127925521732236386166295423097374048208502270637073706301277091107801870890628162659224741473254555883185801256296837435893176932298866537080718961250924980505007699540289335154843762195305989793220716580546117962738829172627647462750067522825909845261831180961146858413957805454929109972930209692273230884039989351193465302419657045471040204691619604606371503836561300518052482773591602973147430306667630815332813853042610509402558658213049415578090173801914533598588647117661436674465437477940006330807997788218566923605508741571849651016289068009482443289611437197333742119764105960403797518950831644124414588394576998770120934469403957098731240536629482529253271220721025083261015097758546039813958450575920967956685861895136610709484690146739426407953395329257192057872033121875098394771059391393265965622204521008629882921319729719004562865663628535673283915755559004254094902020835568579594889343211297297353028127098573701082637039640447020855788970872166636598864333124333946719277546917867407897652382354522069812843981375005044740932057085081002168614188789331699843220911663476436056076871310344419300568795994176668500108084903743729682442294106002027244957201422937117880451468163462293177558545747974659627842370583143465922161092681204578382426734341448119594555259213717939243273367134165589093498516694823576735684955246745452861690606440488726510295215516093811197948336566807315891053953960364606290561489056035069776952295374622441821652014921512592220375293620916802043367096269187595212038947568075704657994009002403375855132052954278905542216831035134830408142461535520442571525569998751671417220677528765897186625581787906050475522579957016101926002447901011321797369205793418159509860873493744095691036835943095396407549607488463485955943544744092687253318042375630061932079434669448926169996856722966248723888583705734931942105948857289757940986165533751558365661729384034230947378418572217584536190167367557865697019131772024122058416423455100143223122355256283513983813168926354118484928871239397628074755212545932249784295952889766585242560274470929369558042306242094617300764323110599989384498875955817614109837422418273065944509723806334886620645582624551085224448053483254462102926566377088932982819962374416044124438425304791947409196485269417469112372380392573001507252443308224915386018800359923512275384137142490720414782989287110849874611543855020459775670910482212885534495114372763449993057460989052162553700427141823328593191075265551585414587499830818786477094782335285458093834033431673343748349461690231903471652156876343751256689122595940102207568086388832396345194292153677648627962494001386825632928645692120829484139041080436527453323000054313124824943070993956083505702597723922772437175493302689283229303045879720434352385388950506283384796175599189190828360591763354401823970586333641443676162393760455361001831236603782591559701242330692394237915781207315401311976065343329399693323414082173127539730685310442565486358830730751867057538818846643232513180798451698594699580040221655359835979757803460387315975366084100446325475870139098900085646662840034958636803789617040433066059580499800266349086149089216423887787547033992642534405026235444339199203441075750124102058266341485889190437197567378681889837643029442641190978695597128354482674990298975833506860034675497443574775797668140668006872916880090455724659969229866004836938884219962126916012061665322888050033008335922986604205073800071713957196094110707176078655078894664940490972799254711198313072480832768609997632091152147598115238311420774973340677693304179169754776330874076666460248001702596271378433820606957210145408685203548089705163134442871010100160917144503247232147411514627763903455512645578148640966537623402623769105974995789362073147796654508522097827821534954869751191324310889140338211977711172792746560175433088015062860986676922605886856709222961850347018399067934102521164836383662096631625357420272543652349073398783820611317589759825983665963349967581467140275987552817969698749155630656998946520905081216980844308195208006596675824260231691885788300339596600213940667757563372159338060617150481777208441220515640891922671868629900919201867179448936245360712009939298966217911667897770675013970951388213418684758483010195250408345234784254328971218410481057705260909858803206973159631990146760832291957733891201330942416460359745998680580659049562436989544754853867001981525239808057684369239117099549449123196776319185053711363855115553117605242980811664149391347933183996567198664529806233196297368783219853986507341014456275092078989678204241716233470327765111103016632804016440009095403135937983215896126842754724901531614099961690385476887057514619041837070658077436683854403461305740019281975592178150815366267697047094893760351043029130602424669404185372230661977798493463929853972215515653678795212682072546341826290327763115060233038383725190862909798389929742413393945370449479420777189635880398564582278285492608846356443740572904774394917555264408652814146322326421457389428097366902865869766035898235439371631802817379505215570722726983215417466760313414496272133612795107577339121642542886168304353451771248086621520097634519401301087685497455255621069459807409179216003503087720800476723882101247952829058786236352568287805845252835443669415975779352589953739652446266660277844593012906062111153896344020069184677273530360116633126193726489126079714725045972726650011902191987031935280224351001319014881584068078453043023534300938623960377771700508040376657290799721816250468033782109211651674582228710995332455935726229645120728407783593395119240613326892420868941072852532786964967763272847570508951927697152331565164807948406185363478572458823887064583051563901525114010899272975629175828940688164669428187671775331840808078553395380972260668186465206861966273008243889032845681349304448577960391352996756325594352224013101723996769712488175730076267043999987305877573869695573295162153098028596912826607371621527519277039465386269106588361037988202036834736420724621129096935444588727056035058594808097292430107803022284313203905177169532911338718460933767180075918682360955759058279400059538161486903282375771122879675568576306316244665343875727186717807180519117024722040128450347448892082468488254857070608457675733648882262194117597221786218071434137044586201152969160107858641363847912556349012651976702412960966085959129569803921472656589581867022432867570709678085156889158851944679141120536366198944557793979362406790477374239029778394538054814675162638779492989466764068602592809386588830950169286788968062700606992540125425185625097792228530213597182784021768778814749477279661977075474127930345658586144906119162395356771701836709053142264456035486579137351170805736397250383694874145875245466127412185657490342396728230881886478759128966209018020787581905611264469293655757045881376019646396789248759654098382330034706390327990104948300480970078674998696866925388436399900167835041677783344059428345863077971665003716276546335184737232860896259225785370375665965633071381143442939286642870912255186903317316417658503715654032546876416367487505232171748897030582035158394867386747598683635823099994728253758480668178820861629219457605845689552818889638997012125788475635167235830364394903096449980777047787021871636180052622879822064525520945104978705391700335095696094149682523491101081967448400795748418284591137966083118614112595376054265060944043162282747544120260897477029585079413723911411289379707649938654894684255206937764178783165296408550996131137982973472885840266997922357157211579483919721160676490574245340551849350676466934814985325094255015445006701971920202627581936697142891512086695686276797499172305758278429880215108480722857202191119717855445357155510074081491203694428436047536299011161233865482111891704817767774064159180322163223439125289425175613235387197295800958456175671153542559066839117081971362378353362301459003009742233752895086463455037402066203859379276851931948838974651739611008657956654377837390427879325125099080405937828238757954491760363409602866782310953847475122143148044539796114798373802409733374277275473947910315245235341800643452946777198580543127383635357222931859938546269454857048939551564861373803156147847731662196679476088608975154558897712776125477145257396821863690078028981707239464987624976453775583728496531499702826358280707616431581005384227028159998117079820673242237832957329672413286101523932043757976144252840116937039198585241030521835662841519655491150307941660028734704708054649552016064897752309771898093548275794794948301805224067747515911128873954810074751345337673317367198666462445277813028334665776752590237058738502836085244634184906667925292797344983868456451634334616519352008008479990660401015553797476875401311363664702455301926916650472465651460372262616093253413602512976625013731221069374085379792647482903903245177576212946831948687658514855691346823706798218096204718161956739917131416421566789533833474566206713129799713742138850804618239567540525592212730757769222749466097787614582605101629588818569904604510979564840132053217607643577429000307481901572914387781058920063935768620453804374811439375790203482482652460910557041085514064063828812312173317528147423760137512051686130135566234087314689272306966586659659056831095056780184573106162536252457912977658476574498604251598105541059709631766765376551056399267940825082497752974984339335635544935228502245845468906980975739728659036857919070734926532253267901159888717578623242146448826478370885961380514917485189189584330232514005547983328003719981866310299639571292699164323580221203715092878270487686531243122689095152292074183878604346576559476236099341061317165882132915511686389296523242964047579066225372901173137790876054514711857372944843039081030223481995675039369755510345525880179922440296920526551403455602315114187020498148587199178437249504801325267763961355555421989323017729600913086308653613280489387396957452411268509535268446092948581459394734635056417275772090500565050299929670983452131913545453580953590661659517849640632373683224705125943439297093577987147591092186692001627610693981791577903092211327964950553131876765152160323666214198706622561031293049910122938023867158494971341545317914736505738553009280974664127686874240398392574120408962375159642244352245287395049552691107322759112713902645838016941682766164737563110903563368726962716659856010768243361985669448651971499630880979835952330713610216295667444498086275557467565264874387530366553540447313368016743503639096481005955812210028591750547162342659661581675026679584250697744963759874075809774176151491065186282951750417935049482805393236712815012407909123786677931448852251753106010584187099743009532020212934543425092560755988354713794630389365666630790452422322732829189758418080765222131514785692395054032118030715346097571358014708947505719856569538079453504481255924187663480928988004819296008698603232674807387539602393216756250132489954754817509054649915408906953972831239471086099733957839085259539021222727332286159995842401759355079406880502674394130368504710051821557893121199791210902438392966375811686930569922071874256091267760926034965336468101402707482347771860162215380258648155416724560733773229750586128174388009768346984556739269866241966395300153100371932131004038139870669712822076510722353737334235547503112517573523873485370664103688915023641570381977648554678919441240632294056528570248949259640406097248012506200196723813909261189048457888817196976364341851347973579303370105379860105567785426629476713575759094930237535767006729013443093581742770453019659727108748669095366486551631180137988622823992582779815064798932398193060146988154522579751320219807233703869157042586796649762646659532611542204245291389146954293044198689496421696028121488928872835345591995558425488741453859449474324455325087422472379795515881383932924477511037333098637963359451678115471394881411140516041258200658421524168056595102962170760257457006747196065613367072083676288530109150184529025251372656466602354229515641111273199126059370598630231164657771012890147886098392929782484100829693060046708313522165372986064417865438685954383912974307685131887113145151122833071749849406653169905509987807563385100337059174315797077442652592850389046002078460248708200645423127901285669421417320494276206503894194168006158311086403493512523391678819430129995388502142725492797755376434195492122650247930774689465480672769597570566259217011757960467406614053569617221516245966499508550731922947228710257911674672974028120387482633713853998424944472670259578097250703843215245829597568974610253344424898067743700829776700167142430951197412829473155563387418620634088791598018576794666603136629862009876469383171584254219143138609911056751848186725659050116035585171716980299477204611577186590994678561404469052063583328047998095815474221055191150977275037891385982389381962997017935353213277413111409284640361544432713273981874978230474894097927108684763672554669738180890251719678654541352945571558948124380012423884897342000132620601765826041512227208201892007964671698244754107524833112850377715822684425733117669708459339634112085748737224667504416329994011982667872072117969299272474284597097579691001472132479623401978519494233120812364869120960084495324355471530178528409097599735008039554601400878105964269688047498856188619338407192492126973461015061388521112008718355605788597584219238128449152689976370899145331909769396723341474622785415315680193363347955758069448422830395547623125972973426623637230637845449875872983386049764070008241274986838087871687555580225738174827001098210395645141494120281582987573368021036326272786337791134688829897690472711418356648314409950051369888434072387960181225708883920556578189148813931395987667163872043858441079141655789128265307926513836248702048366381386085203902743465189042075184246557260841478092545539337140285900479099017817337224007207567493570948505347336860391262649340548373959430760818989105768068217362020358260195336177603111598390455706652526333361167301097309427613218114489773066960743064956033506023586972305597206108195094388763133737829229515474048469165527928970461769419585349677256901934236781747198004814021285897864171251467809863805805500839632817603965776776537165912458777547530684121346356388428139348528204169946322981299160477767644406236489535392828414150958007772984323018988819665227521755412654761298267042440790703544653988839331327291143563584225390286984570862553813181495649486371267368535245819846225095876580382283364251086374798554396763830501246348172420839765588592200159914732376395048279080286681400631933582636978768578462961834918990836449057770073121863613600541793910828114751599089306035820722632308509266120244266594859040793647556003135723974703728620962088797913180178585702953276537296101281646517628633502104074322216519609052272160030020242270057388837670656180618300285064936649776499537646728982312749799991958197443627827335357651337599621999321004435333306859920999598685908606377178368009575101775665898090045901461731425266673773775688731004552954869595551684022898244724084114212176593278182277650449580656758617276929933695429816011357674366949425485182447226006155327816040205976868644585399545387232036015763786114750211054949607611720035568501830895920752614119062167374389805034256973533321009413823799798391595226381567301267472782004392772717188220454659637198936867448253257422559409343849777913543266991422194734818117893030593358118182466088544997222494430901652709039094246215915037525858854858235986143776728825295053710726220023973938661838868397262413443160648830380328523735930190971009305377009083551673319915867008509985413991569632882334756282633316168193692043898619910566509575953689933834550809477555097730991656110717844009436415597165733898619411339251240274901620498169378742690475329545545805773430407867655107057054979080079021241095119064002969451395213054361669430588259566146192993783772918924918795386777560898605892515339469614314420739637008045373942772972621819169972602474945503336566831661243092776900889915000372344903501364029082934900823710684914875590664649996729334255379781345861688460428683630722385478365092122993077011146364825083351602748611609612049111090476217657467454634963182089382138802885370226248286522871065969146960244958628593250525465201925184085243508091198989549423646379726378059177949241295563285774804736664953221914504129043996975393911390872466165221884991149549052464387239038024447698970513551335335547972523291566509072203183152240282123766298534949586633716613857285779992157824511891021296230626584519852708022933222420185436088591759167282563928252178987561202294798713707359909719797373866560372945509852695649625486854797991297129683846790599940399521087000355867751121353780400360415182366111217431401872498497271659619261250969640706543533572180927572361226483062741739220254481443845631589826939836003182186223199331538401004342008902985638796605574220395718360476334064957893127833906719052906912802179989524214175482809684170130141582543575456938116787308978715260145618062603996043229668749670462900679010112711718335630989976081954715785919760751439861263648745460148277450673811380449703639492192431816731244881369924662489905813786762544993045687880272821117290441128350749060294040641014878347948481573783968204866079572876633746174404018256024691702975145022258034771955166254135582369065164730217672984513449498252993475682061616185897652783202142905865370929463537800095957214517693308364695199710387469910313768980290225424926867604849988058515217880270972323762215841563168450161613123821563379742499674951617737177328746136301200151943647623646200827573364586186339260036740852132238727403701627128551625620318026774347045368554363988773278955439064962849944482091134746261354263705856529950654641772812972440483514943599641833869707415760441987150397965636189249781507427743377771785728473770312619672254205522598031205605960384878060032644968366184468265432686524542182695210832769704205414319022858934487787862052850229199648092979164627031493795306506789070127013623439751720053375645285740621733665736655803344386060657347925915206838903248833391134535987501584593441743471549328524448744847136220711645433967096224324555566672554710099561463126212885420621290525309300491500941147220599732291904329940794503221833722018200890118174855254345979967173200024906886750243371432755373389109227615456011164288187197747175594900440402077121419838370796433493130383285012752024046338732332630451976194243223194624052789707432188253321259425185289586691560493752253841788347833852836408838012891332178317019984685046723944437131031883640938895435035601053377236355821147067450944659318205910561717527692497832311877062599643142167830485293689690067955625772412211161112079891886756841459623302422827190764924886568211072711932426734342141633900992640823361705088353601581543134524106101841892476901445996312359168138199157148852423468415995598473195084547167881120973509668333244583779954988970579097657874011121691902136023593629270623504005611334690438137638999289921945498308091881828955823701719350581064711142241446420276300624174236400736715371721043820805299648166975950525022414076031337557422660242294065904867496426259325792626846096113104380985587678759354474900657411072713040318749612632186601880720337603169522133782164659143598304497733611566917050245858561638993183526109037480534755072285086284417775662256864105228542617018481521247822550085719350186086956308276488260708947379954425291511432265844343676549754114975209498311729677985834145434429283913590069396088300448291367066419591339909979213532732892339016467432517823135340171817176162684536182510476667767826113540201285891154136374490925311256165119034386566227460175684394379840764677319134160171903683672814619423249125241570329660624082211451941820407084056754741290319532361130381109486551041218170688730606756206726708788133169900839814154594224460814395383779701088239692045321577999895380105576983796427855935067791412933902451216257109021071893996691617918360630927212850155257530544993333700846883275763761352831876876761977764289413373269741090089076033407376256556399123559023869873697248617018930846887230082882868112773217477725630324123343436514297437216441856960972712724117124454618430480533360674226632522134360768891407315168022125288083168038637771251755668631695892735113898401552850165533783831592056918818594244133430433404210767273450152747013866038721178242570507094370349343220169019678221131070175406060440911891305773233344969466784004110932958233006257487141142511211373541673594165030336252888995686363131771865071438580977414301576628310915424369179913293789276885539206138749237242512648176368763619657270345992938114752565583842577859772805472614274320468609186337820261329832716580827799391382626186701375814969479381280923886292621251389047620975448296387546606300102035506377693311281822917345737739289229387313663755866801531700237539539807331403925877425132121195171764661182499600411833499072261867495842716534200892206162237940052128175018221740731089485548087944881945604676151982817822088776749641203990213964014249010795200965979262016188994151964610872609418921014669130986588528020376651304210778125143253780262277038838560700119468338623109274692303165308736812799711031412721016543425188991283854396739115269159903298673049490155024903271029572316210387119808052519780871678821079005684972696569755850640243402823345425300375193860252762691330957294511651120586349395538855237262837804619025336163592085689521415764887907934650892306170496606767808456223058334241720874568314360586483181783960420043138899984028457918861886918275684322391195506403943819530272642829178510819265473266311030173021460531056180469643768425260040756870230118872337147503285172662671603859391939105627750056789331524398379411235556633916824885855385174099472496780283836452787583638694782628408048539374141405360210912154374046736398808639500196510642791127295419946271037819244458289077115659194111085719736935422239534834017991106292910904964579154821307106731779138808781465468532995590733470419537228897287568825135685171259403368246801303784078349234097307003810091657917844640237650702987473347762923423026519279638122995142119799693690030198690545736179073772780439659364953846543497197763555516946847731451231415179756974247354788222243582889010827127775357447818172026288797717614687225878624236550757329856496845681998649156709359655539185356374508483677924359860638898518668336585139017602567146051169784557446988376442961814440548063740048977226973377290791007806549126305090555053635219321312270710333533009190656611029038927835522719160903269528412165907100357437638776085437808518027808875610580627793882692191205834860683116605968956357602222985997629346200182711607262407115824510292812803095158108302954828590357257715819973879154659931408826225951588347541549492381430918551400748964037366398198995847653070941418788054748146488198680404662798111139370478071665247889378419556393314934786310233782654975197349713075058924089468904286214549025611213528095563219642264765676263516684011260842516387691802894000383057276568009156344069793911794602012504396685059805304719296329822833027131183050218118740252542277813421249206313037859235231255157560704360516229572393273311031100806533494136770372640168287807346764613886883495163769726452822668428067806297848758317657055732913018328782158526277883464614682577170457975848466077051746360386746079163849706056645181514475900212287555203384369290962898738981666739058708175955950998321317499150357873656462266996265669084341602833379292166856871237535974830998439274449417002199971939846100010882497892645062211600379782563133572894451318412522421894290733917237446132184928771184652620796685014423907573404503921702111682506404474827037169865931812663279056559625521304690710056392334005484213602925522316944462147709276255983934414789476535617007647225003262124004401957982176840774978369560015815744721043294465811580715992020462887848887020125948422561244943801683331829807357396447617096571194619796197555401840941725978691754461151526903456060718195792199866925986072612004983963133918505728848172280020620267292010417449753369876736061721033695343605386919560418419363595026958291404220509810114515254157993856775646084551793833850357757121120611529767989513550782775283081594240811306805683066296394892342686286327471899531570758091061093148179047989600571707059985854570202569735485910515439349341711992340404763901696766463196666923144253245985257897667616756146711237117461221865184894828869564523975978194709390514286225663434744643444462892063525196600567150317957112646426703444480757920857586598686759116013568131789298419191710313618230077535305214328946607942502786684878601309859310270129466249585269068721206122872274209889372895602139277321247596344412161521995393279073895983377276920482874111594605941422942135339752851808903249300432485630573827969834397992105174785269307323501997271485633450338872448478305132261145288973570523600947748940640693425006939426742130327057060325713662281376877702623206809881801979315038905082714941338167764450427736167550995027878145001070157330956895734518515412164833790999915637064613545201475562002938186299966761513912598317613725005618587718906604915956916386754879683671289103089533674117425613459222647811024787176253314828206514957281516656058047192611106933154747572325780632123831303546377097803361416976351435919169374874129836265491285855010698799586657687404624532686564242724552292260971381010083791645454058953012758766666850804434088600843991343978905133505368757185489087301674315182035765952203013360836830731756648312419355783542358651655211301308459734143162146450462098023826479373831126248033629451107488774553469161701493287882877511917524114546265388895340287875687617401028661424251535457569156838532027619656647493985893380214046807190344182166191259098317793334965787207070683801625676997847627071810901436100725742586886447336337773354369646091201151215719368302826871546524116383246126334968690702987167354672130890666635417410255470201340636379296557248558488750675198113847153881250860356077537412051999136517383196049261432836002536904092960502404345404950742062810593162029722708891284863463111571490725298997889787747601907055824533896934083574624495818322634721144361070236894168621729633114985847389460511632314031390631306512885348535792874315673474113189250727855695448689064009756626273326941809600620455454288352733520259786047220915089271797950428287406864287359019599299753346237885449815878901510435150520262761207627977007610449274262055409167806040360492919584466473443085055813298433348431272036415797639738536582614376170022815216217062450054171530361701332824433785927828657566156478803276214298778715083691669812897910044330633375464893352117145093191575957512495175009979521484929420572425529600249513353592236855496330160752234280270878410195443614763958543227594061128026079217454351755113755297714809058959657444854626706960998850242323627893549328852903972460134822090487284329400496213220528681899741983098420194142139543745330162542131834640233417755473908482812652650955937210560543036726070868146404187862615473876450473156302476068026787650921693350100184162394567193326504968179865007706003269212332469709557225737200759061852128681134098871684817800541651989704452452530129475982004492358564051976168340393953179163845529086956772535256456895349338619909460012473379234530218598507929855895427718312740852190723284110449286845683678620702562614005943824327540545117985492082106500324006513995206671219614922100892701714648386964929624799370264711427505692550117530537750648442083291811772080485805171311506250980915482558260155142075431964313771488130398110298788394248032586262477586588612007808128845008310829145334081626146106395011459924454804339762127188536248964104495048630841367071894729682008467710669263496474797151499208829977400858137942226261782227001142666509108544578460300345000289265975819664356216706228159109163721934731588491049235413128086782954424642827855388333665062914771822184981777687392664310536415085747440409045917877681188127489839885336442358872452199079332458309253406267649141367785818469935271233024534274494756739921906015101166032212620092720129189843821670166361391459173205030061479624702545887345217517193188641724194695824369396327652418063831308155184325537119931158656195009998021045824604437258020495387491894963854198917980016641378345405833603500558815934873554584310858507931693370657947730342805130416731235161420711298735468892146709585347690758341618212989422332004134158567335512937986202173297138711493824305372864516377131330220259302059242112570499239184996322884523842337996979588587434610358546528755065363718009647625414050377316502016487119199720437580658933990258950619500403507550333448016501922869106922995651377771955657054233455577324417116628412941191599485939626311578139722899569328163432500422024537873600985389954292591991586941417368692739448904320491436063317567905058664414043321894660201234293294908295624009403439371442057970417300662519610043727178970023294752920655566014781008204148527049679583318174951315135200539030396752324670611507036096560710765521184816559251831599991784892251422413019834221855017677545261721232904129645256275466399043123744197868290712500391377611724974534478863684109458128426227572262092277882013902075341421608660224202691177812774718914255793046018384235622027127734946926790354661300912658642275579352644633667339076755835396451302484209693132050440719864547614457067034266893362928486265916196673908421793427280197494905688607964598258923679013097539489088328708595255611805329686827680287074048439315136800125275429421605545018959482502903984823348295893434737135214719773707131455940111359055405380121080089541143162561893899460589750986290692187636301781809971072539150724059743469571817736513021959347863904817086665790523597198269462148012036211588407732597044160926055926168636028670353064906261763982041327294593369382626889198772992221244695080818635231343039856530121511140950625192313213905517748348697479619852394301647136690115959393864504136618192040658877708718696316234182121326103597732318179212827623679052325628744967752746721896970503129768186782630755053472217397607703727275305753625873477224842005203489320492534290802847590603035229939479530178379155296322023577715960415693171330801712129116476796388264163079465876041890269308432882788897660242404760688649730954996848190486472993565429179991748755140452153534923342638809016821440157175349899732322854970575048579476962399141625198667538699744610771333139382072979061721427918405274217823907705335473908404092771049939927557166613996387954051236605255087394795962008444532362542482186425344462671659335430135511012054644831554999006397142745722874965234938759843540091337623560884304177245198182016343973129051526458932855178832888354320557819116757731518622584744070456990586002069679017365287543828850383767609868606972833390127152538824641272774518364321902290070958941514174710907732592643737343498073707634426853458045852880852622330113904371626330086074737034314448555692143571255912155575126819958035360783151214060341383259298626015803190491195157584633620697323081267528983049392549019882940856136012811573289722479967695995325341297930002533852853714513841848492884559143512005892377881815202415963923789248754730473242339381643199288557361471739142260825907683862048267999659723295722039119785403870197791058528888504844892930344636750002096738597542937009166062956911223482093549168872747999139699486109596057124142904871819309893413025615631044117277803483564101112119227404094061297179081018863534665504113302899409607880551553930344253747826807522515884505297455790948478947010740470809992795721365603477834794444525016729769626654123150879021992632753059858557526516212235916551557905323696159367343636267404237959377309179312364055984365824902262917485904955142410134664605345579555045128969020720800727867909678839810620979666310808987882448560610623200375138423023207219503424190112864043383580747093863178108898394825010429726930702239509708744527714702281236778506275695341932856417418307370254937611654774381173950758460524542908177523544110263420777646834850527604764383979458050687032946302317228975631586063218300473932197599254579984866483211820210940414536994828711961341770394594137554675052210250757445565883663179716561779442443875959411308500072800722867228449755607810437809439317914354368351513718344270466714270736720182627490736791702004072060783377646331128952930515712560060840346774177932700653627619380384215551424368821951294479680052001160940385539844490976594287563860415787083987174749599906027030967227478571265551058790075152346721211470490846170665804675161053413776957874382418683217869692428325198920668080167373162428351634532308791370280348384554500537080952853766582690987911272090915913240633480395625364964824869044517341089897270119725298706383810670961444293129145593916714305515735510784652828153586429997420914818297735545764458547030248206442888272282443182278584165044821039552042853455083174731657690063305273435793837365361152411494873435721959521774154915100827244642089750687120876135192911173548269774083845989614985681281276862630275685209579413915321476468259620455361975444325177448770973688203547906422617480019653000856511522476068234596361277905795461700550526038169571294105980337175640106759314168177260615988531262122586764383492633607726973037668524584838247259522873859022297469908388326687069348000864350652184853363813250646310207521421477897772853163282591458752126765199616139889533736305239254203971751979455673722697697585517324669991186623769299710692076239110477670891066311871724937755456700001391442187499282670572162265004742348454190088314066647663700976727828309000092865828923487081343396444575433634786122910701543630100017616953450173628893569305213960789753742327325139174473712886665813463585828258238642421098272701692649539164213982190306255725531147432189852519178744900359102302891428119913539873361242805095482116987857373756108926454332352996702200853143100415800133642794731560819429789422976158617448226722976031878257036104511734412675576522544261158700770666726505476566157887516025311062196345480928038372389556051238852324050274511885779301510349113844142661472551195328293133949511893506891838451056979601380160683400838327859078301559833308242183805428508565300421601743414331047518343230860084416606480005568744628586957535791876558109411545981970651267268188123821528760432626988261881894189409659571640318776641145227910827340850829204092760545799624746423098967247763177175340939830711740677481297440760175380279340455227747544521908443964045770675563303929940329388884991992981094072369824673528797644055947916144547333638337178207020319425676500813441872633391388797597329218673890056360982666053305067622363886949917541394674515815987623397732844721372935178981615433844323065616006652034026691351033624630583367136081475670591510230117424458314713535708322314847401146946530300935336925167435818084646023019705776381510619947888439702272149659111498437090735330502005570818705826298981373407619052896368037176916633843821145241348457923045348550708072082048818029746220272480807888421899863354307130134797431338435427682884050341234228788452989958947982920783814412017520836182786632115950548289921981593309870282583319870154119845452583292105603347464714290044419984459075775197718735189234479026945622547422798089353785021330979705017441305836266151110876935976529125682686540602391134195886614817819750832922867508935288345781824453520663088694180047906668822571778812949989847412645130884591542788680102720491739818169467875934077938129096280339857417108275757876850795981018842344221906102695818928890606470643441121366924710381374458796226924354366982238665042419378598153493579067235510284950824664032143995019521142562060987641087558044408770685827733235671356900917111825912169167656464195401735785485642902037641578729416125455946285123446557565478550270115580023103771269329235112571402875518151674290005899359007280685796427876084287721259682520690298829793133730671335871430170029791235499951216108593733799682718082151044846621414470369564605423367039476571232921230697792351098530711761113209333128009854055815458187915826184300268883423036395546337857730512773430867856564433682667804750519281884367432039542943224730209858111790682886139872453105585899695583357590110598336016895611330962696533375125952709509293719958130298164382391881310834105406353704545177160241858081100165396927509798704405886936808547320043934029642078310855752102254824155804253750953412540786526469515520088076065416058164266126057653218621737682271378790049585912884150722389644266625028574418505415811169046823511516860182548232272196757348157522999625858276566851469182532123718122918879360947078751762056506982914103237921428464164244725913556043449609347247432670478972133766245970571801127772050924180369745341244945503028509526618763093978153704712209897217501553013454481382832451277590821829151766288365615470156701889706294411165603484415754139158220217479772378767581613242778171915783183359400659920496181543529773364596026830422858319206081536668092615679526592594448077688226171216582929341786347251783396382200434400360530680707355170988571588170314365733848571366233582368385215927416447056415062037663630910074727512990966074118546388092729776724929795463299038618648535748179196342682779514489406861229220665525374133607388338660720922815245054310027852863998642241083630873093996618541467663971541350360630685779634150007062536135415346195912833474782037995250884216163957940206793460050228482342895301222611656042309506090082920618817374879380020252857667844413173816982403853498863204353440885705451141372376310704903787510741503219415660449982474136138231721637434947726953942862833164103130151776182645474220837353624547007904756263911913697399736755076601296201658349442720060003410652042277725872738990204940282941748048517109964713067294850181561244279701791393852335573476972653489152749296890412958481938588172287641695283830766171470347589545519525241415295456160923010632207348235166646619787194816530601897628947859641477817589285363913825694121989747879952216822958127945967754571958319936305763201307937108780090137102593536609086878608246173038760664507329892940232507349242260599044596460846944159992853583979203011681501233993043677564943843942103537977159763244523877157149291707395530400669390539078982384437463190189643259988249450966643173888231601157689073198648375422960795728007116220138058902436038607063689732103078026900854924231010097986084872345933128177096960548205789794710869413392357866971540097475441712090679589930433584846676909623656867033691536326498749062600375748395002120913784443385303546071093269223741104517228589457296980101998839102080034836434659211767266904072203931663383891584231823571399067116508603282569759909186044112616710062408003060363561298790346361605075638230119484767355971072697136998262770071552529285916545474649220522820835323783321892792893911268675063822030036320035799983984837125308238123016494027095562456606187053395582373971152109538158728982056643076522492775373482015695239571020793079829532223658209958864508622708398400532330871881940580343584373743345763798118162231100057703947908924858967543461853641617692749400108834391156373345629251244328806089463317086038648781177226632467636173469613991003257656756226973241997130782088766915831194776559238010152160905948395426068266658830189396809471728890914408096925868378060509611473683633648092631618460191828990733674637991201298866165680657094864696911565907800101550024431290762799163967405740984244432914723115376585715418031041613915933727236096312750132689058304738861607389750064751561471745808633914427447637579526794137499260726180003564423647708547027524287706405479394745855964540770917344925958113148730141875725127106669913893074881312156384572384576210574539525008090550857439792029555825387703157508324629850499067148794835524789335473802590859742985928302460274795402688356016119451599130191598202479223776444556700772942730947111535540641133940596787288938904819030937868761737285628354828000053811933862826085788137413322128997911574589305287641888361732756274263920658677628196618790007916788447725773547422802195426952003797588298724001251974433244982125721921390857727098573321261771160685271427013062517000038071792057351918479189048177685791058327849701422182689537651649138154408755292591675978787455506285980010685602743571414729406285256187974294960881567143040767235283720930498145938062055901196808494234853208699627645335573390515995253229010123774727369750394071223543105978146939587903277101436378658550965437885630329003186962423515595050233486453585712974924884068883042567781816692096308324029742208083565807316318326201677546738901762717525607147550864834008548512997495917889972740153228808582924485572285305208866819391470380600321029798651396169256439414764219138420163506273524490487960462490312493022381812394319520580340690078038204506996227673583790169182071305206631941047970744311004129400522439270587171397737594677082491259666639423091726126570345555291018598552520177475818503694465970090404714486541533499303155860013680709320968675429879925630955989829371928137016729122477426854142425313521243551893455309449852061305986771906328684381228546063929094865710143723887248626459867584662124261350427734544379870808954935885562818797124085095763871393128255498939576771070661949879488996253963296841447875831600144727200311110114276857747256413957641827963149672180855843110406260052735046658333266809049102488086846316456349590365574322286961465586389816734999793673317717343413967590760706127036919514018083275469773049075660482777179186583890627616249972372260542842040919496696760235881873772750665512503629052915574026964370433273795828886377424641531467517576542435924675159550719568360307811561550714686529092109590372529625537486526132752154258157086252131478619758605563073614254625978734688411760156295795682698632168119492585503591265715809192043845244965697525808742380617654693782444453128999582377972423744216275207605353644896449331884032148295846523803754872751005658717796209834914809495773522464672200164959223633959869544115443709322178137756261000544485258661399648567679315179146624408746483322765719574631186571900794563410110756671901501901522117248990166109739119503568016399352182349420245567675043505767235516165944123468762797191232452115765246399463642214645710854741668117626748814226400480821049967131667485732156922033819490286340410703285820003094685005017829356459874752595859696910460095584094924582845305989883569422182035605783041335179050821070611539874657187738853994306713478303799261329236812601902327637710626789402941246417704827588962399156223583916068839570212045841208333692537064977209511335111544962438258183264623938579770348534150133629945509509628370716932197423313725161912165318921144893400331824242467215669598884830933085334438015919683811974125571912569994690954121116938229643833843257748107653409646518880557108496010063372824020672806168538052924078878303420975658749499198158767719028346907577636720060212862764150328014433717065465214908330763265138193813226848051826569742413401054039623313917622037583602936461977580538097373983013199481485442999226745978401526715172336367398509633161301985675476747544510357752850674971164436032809605436060290241938686211065760645908900691236879676708152237538381293225053186203090321284591140989745712118909455049928999635608095882323094820039498701966567006872407249335369353387791344652604523302034041577797463535560714976270270164280008420980662421879369516413631107543193034825209332801612037816757050675060062422461478367473984784707435504071336968061349298496821842577272487218304866179823912253999995123200237234643636747085587479629437055285847388048365764515458119530659297544256131468552178273294012783899028967112378949530912524639669619076466517632138068710757030947991284008929265381503618746256760640337151193819392834802157513901996098972787739222402220001757727236999174578305020096355328694317941096521960335208464401693397264912871254412833422873203269988999763394828197420546210810624492024042536158890733636544424566676624751551627486136825140359039543881278385838631246766360967974662310656159234774145913668165464701009306904566747113129686417857498840143071590804800699360591052380398143090725756656625348182773471547375980165325881315714938215096173625660254477717189015700917865040862910811562918731291636869155551431637097625710254486022492053950471814186597706105026766966123603977392136621868887620857935158343166948335739664031414635082038141230173265153079375017020596848041623068469565899546677622468131347758114061489312861829214692857910874545976946739734104775073484755952228924644982333171345370986391073030097079424619587664159504431609517335939673917812415949948775522961530200349084605439717069573292344747922522589295364065831291862019376279595826138944084735626786207841159108937179342018540506200275636344051651541837669976598371008825468889657859964401164923533583729112222407797300769169477163464113891635653701038820924674232778554978084290576698511588639411748144447830789879059884064841048093553522683880523446175688571105437379198477394161672058268735608312018329598146968943227504140630070766623807562631953953751199275035336308653072880807921692241464720325750615720326181571530417098175436276460075012493325527685249004401034561559544347342146046994391100567368253097981585503202751604258270689963715567487578231021168136015145170148080646449141637111127678851576506600045382049842237910047108204498406198408668894484283869495982958914139781221485054584572924364435411067626971700675696776229512054739135048751447264381949698052246594947391958017247497205916776530843612882055111393238245512628655361591006015256335751236788746007854839277253657594900448911021554613202682753994784732746948879302075780794508023787180642665877863818054953185666453498128867003653239351012163183781026095997065129070772736428834617283933644045845201168505084454869353697040003376355448164280917721018665428956002504444607698710931805665415252615873171123988425915484308757170210682787526603727353469342102695577603278569459291242167222740073174529058296064210138876572730974243436386327751849691640253525537032005659289523438695555654486599945511970913984205546335273669950227647024817807183857977979925519192358661918090865888515154464030350328593172254494130460958803556617238598547257478742002736589540479851025040044123607353585031744988089921103478717020774829229271086357415235843006486724823521335220754736635656222465896863590410772175840762752421864226677840097104283146973378973641788335110807932724739148209222828956761007907413781902082155347612302103814480636958438818587328222418634866649831483598574690791538511938713878653181045134254336087844783623501812667539415129445634630170816171401657916468421241032029020968377517186394762381403352169730710231843823988289324101597758538360515519380905353815016457116679062026262521333789154153581005736549146248607551713384269584925505439173238899425436523128553607124229788197626453724840443207050759198110267745524570316786703674016959500603450753936389720467858395191665532647735341838979613859878466124827719170891582855710724782666747799598623420130390098254537909272378437624390299714667966210626309613492609540205393910060299168914094995660041488508406965335796346736303183958527122765346835052056168315589949660006459786265248572307907754042919503923228005205401146886653801335664192521653661064868309636814740755328744127009100253266840943655857116358071957122088680292777247534988347237871362181907355259417169302334920776021269595128088517873738048556630990425361603010782268672294472375151313073388046971589862737953860228833667057847556759380438369777750891859522041389987632439227569130813503410296320622844921762776571498104796549760858056669055685244486804447790122063379678517382824217980717797351774617785410127231464448976082547111150305521480287473041142360765216459995958582086891602486636934951460293162428720475574519516322243710555533056138469705028402977012462509093330899093641968484817392261186670349556024956964892500845080038900959732756961833084356050461010437621165171578773471418277309396036486877603451294251017701815779279403170296380781918564853445583713924831771161364308327641778761056004076228570188130647769447490519358552050267445383191706208735413679081259098830776205581686297887115216552186716169497497734344550502354770068368792648682991410169154554483974328776004677209258359805669843778378578929561920075012903655549722615531600351534622284948241892065851663145978849285239911592173200538155867132384739026123095691995261490917405155546802559632791034645231559672353337012757757887560066466003770693966238813935354026828509453471046630662138482038889518372278433959492781304608577618408667338390797579520008069807534731238741189204340642534267181534568591299993086353558591354129772125198763112191012023939237392152893527260359422964934023824197630129336512172478576735305523375527426162336215064962743236754793540111270919796160121358192717016688203453922186667865173041600211762088032777894588531237986915170013638507608630279091923378111728606794623547768227656321144584816823718691384758720927065302393438089730781772123148245827294758477728064479759183091298850562368992705924282972947975439548761460127902327137340961104671246129445273818512353289437107786191195379573893887364318700209230182961213982993845425087612662449816556486817248799748160133300204900094244294887609723545032794238883482252391074586275136068153654655073799434068316022937095618709515214830433043009608012393797115024072980998020773655972222600236877079069635102489038514541904606434399102296617713686675933268180115103839996688483627465103203225271630468260632826194513256065580429538224392620550313922175972532133683096721076375895053741456867767494943862383098476680553864621576306420737827875623696439996910889824586459350039835883597573785777685126351551136305150655699238684110330590581948090076321402520073045702301511088489464350712664134421663421888136747027924063682485978197209219544467254199003766992451141195552176568308417635597605400176170778791155673573236758039493242152314131988666798529391958882031327250027587049453218474946895099108011880936017940555314681447717618882656471392040165285640327093307391681720545524352056793927520859022611789948832904728864231442702319678225065856020291577002142355168243291969721796682810016434020055154332021138728905398882291036834972879251453915296056587979158507354375360642922071138451071555039483168244244971820176777590167303844916527811631785215224041765469709977347752580571130577788191895312554290130351618465173227793562421605619871437427037464478611039373050620276189986804233598567219904382535549215797364522683847961787313377373971884765484165079466040257650474495165123487053750070247713563260646886720797609123361452313945714296211022345949614126746280298832781311468746408125771432884800137027136509163442115679759296935752356111801358648106808951394031462430735272592052005071018940407039019221281498649216701075502196677977304868300616949859266938125777294770539868807559461027514411061097593628398390769080873269382181797917227387386243326812662601884285893895608560847153194692957876430867065576460314113468365803027549696033609561655519382573248300521856082409246660296551013560790102420063582789874733245555294279605587200868282937090943942122898102827071902194941759511927084369136477641923680011964955533696778588042141037391775112387339762815815116746025836773280456669469805536162427768905297083860578031261876537290324443507617282090202100581738865764631449561446985337875671669330816698166956788189809563336553550343038487490491880070426303549354515637795610949033968836454858776440400658662442641275611094022688542814032863003939136096826562101260161512515707382869076136972079215824944857376426620419778432344220969649311264392538043170901702726896575873650774926031372942965714544425639946180333495342077977725500057316484001567182102295920415262905332090704766450344546764628486820329966670702188878185660467849936268223590574921295345035501301706188726640240511683118254091432793225703480781495743207604511520375359386446223969870856151855300715331799587227360854950917499510854232664844130041873098576586908008522368893058021691956849123006036588689830624539384723233671255552174502741222170765100563713946059636975333542050687589028218184875729545797647421734416060504983534409645015566044480936396859186940968845722746402820131769751559273375014596097687156952613394544909073036321355594461598742220686234215324940442093760828323684524520544746413379483705019158056644282342810377510283167542867474341262775734111080473499033761705030455400798910497360997209587228943443969967375081279685054917119762509175556441507699122176524478497824928108201655495455428904498276835483698550403924664218507860159057739539745985373419532477126253782446383539882559711596848692472173745943370490184513610897234185659981362306154731671166974177159517125272908833992701249853277505002146946818304216070313186439606551653876962839108276862772705442782859532179076589564547603469618603702712983519535924539734735099172607229548209314903575781121395878897479247777085747504976742517012485869049227051226255451139111325971194398536221609018631087184840083871316350450715026489945106907158845903957751794330660380164704770890572519013249540710207998138672979275252355924872873638165424814889237439957942134578825409912584660664524340496843496129947767246774634682157438715096241375588394295763190187523062133358691338771519050203303666877525234172772235863377185674341566999826313763233234253437358358531016382828011394094193323022478757276575012227788333802218144793439756674463079737689328202933423967603515369271895272440530558232991889151688807790626767420315335999943767900223234764011765000117591794029332336555840828330669492523338164086973288731060197521370636702987330170185099510235406104681654094351179699736272689006466933646220067307981079357029127530121807494435301017349221567804023043691278056646106168086439968766817906607332684359575779763127570879960111309306639806221413884752348711196525923712242796657315528233296536859379442443814684566160604070949022363429714082454804294143313905631632620296737859099273492479803106246710093178713527614747025354429272353478897619954849645459094639809445892818844257956249873362411902995068138427789631956689062958189213979068445534712240103297260483988965711637535422371549710799435656616342212346532097575699677367094827401615636708780088463210921392161124229731249319831808979331446012427195380898170135997636616131513756657624621336493214202176660001008530074340801683956017449481444164913925528350735357282363048423041059039484736928371231148778805727510993009695574840507632341351846840095495652244721292078048670823714908845427436007277205712819983198891998081036168529286226932290892734156701832581523459651321149248877538049076785879366156964749421401020964281148402540969699941236246140356437461271500121989488068755354515825070473989269613673545614635631978896638639938054066940072098069677186269669716412944316215455022847215903916200885472634985127031902956474433502732665839147181434208756101166668383533207767277471300897902320542691500070539312074003952848040728956911376512890821226132003612368928163174573289982930030322830080723468929049100842064398887707812191168499585249351586128896481091670214223632204612896470760282433364892003158568126235572535779029681009210321422939624426433437611271079207958669492632343429970662911576982719730258698949706161015241012982916152192465064536194679476926012182879560800090522805583336530917151982940700033976495870810475671409581686340861579656408242844211932575343099791903027332151343027840350386227192717772427928579360370287993594358028313190415032142168184348348377370006092723242599292225283516782345153370722959775868183868369165050365012917394085899391004983685812345458723807632965645745799457376439997836069032166701874562596931514306582027719321487040398770097629310951077703640875176389364840871973056294576290633859369875684286963990270634221257912561497899099407930147546724968329627808409389602964822494076536539834106363923410057137322965417422294288372620345297759808815808931489997277051667855233115362889401905081092840864584067953233038841671434890389635442475157017099498969075790075586373994756332956698942998008679220732738768369186453259328075396963889857853655147872773293593747760710445113263344921883528568588121000475977893095967558223177299172982599994704912626654253172338065572993880399144484372347216453401936063750745361058639565369784397963255639217735942852808531348806082503486612889971314349805997891038985308004792835795429961741605689132028638639776414385062445453192505835173742924654496122702633405463926863401067316719443792410297001246537126078111005438849817425583396854841446444656023757205701610622418809165057206298195475573776784570122565834976012250914826655968719900233790700548173056501535265109741949764741867082980324395315890945315297294816439034647211177849822057077539744570381330615375261581463476171034255245742837933001108772865703354848284150162453938029392825237380487496086361322776802264815132730811169658476343571576619196130234484387421200288758391059245112262967884754682108689191781457286619577875789170569116757687554515122657702750494179329029233877025917032092830462432733684370133679234058542245623344359993867282095068330558046685703770584204441067695153135957422872830167053546259180335903182892104182879483265426017244986947111128955037784641386654299714161591298378549342645687866001048629451657415876014508101243857833150202301412975455293979995114698626970994465228476761706900615077874079356764104629431432575303874702622608238917572095499394642268169994293380415397008348191472865384068013223289437601260104529805737827082379415855836690828600479282541582329357064105276410912817719410050931243153417804430364027059503819000221678004067331535351897250172206706460521801435783239830827228252729031919124968948486507202840552173259786066913326431851818564383909234558035232754709962738851720222757811118405153171218744460685999441295113284485153110877397491426194764647937742605828625146301870729016615030760463546542166531995935831916568150296662762978925854983694161477600783305308782490617655583240084622693108058715148438170033945872774426553732806605246227550978062562722291470740663666829100333980003120370895746204600296751227623864680511831783646547348096545739095456397845183768345734557034833116975891814497820959790048687670450770407213312189722259248257278039081799073218073209233764265962764577535712104512010753338733638104482075268130640062913472857935956209940971872639214970860036648026720115335906007309966146673177539869648629782665875391200649329980223001335290216378938223465859102485951205872676074278587150168005655287153807133595940003595913995676168907208357968022926808720840630855657033829686437990366898244499272396584658521681348973972964620418540858957543729268431026672819799009714514431330532675444320760458665921162736120217048161719371859847527115189371774547880338052614008728982976186052370702806084765699968389008758194902133324684745121431104216996583269439444970578811767112388077880559981795783035640329336624573325726984009532901580775899933106764447225010578917836693964413936322830661448792573179031434103115570953690900902224842211924028475319226894406548542103351127430323158228818616321869423701955997102634039530936612071163285099396285728170604570197408449056436149270257346840397066069141777236693937694973819442951570904540803217463335154591131274710748461309767842155688766272276604453804097869233767486443560260052671290250743272770698972564062623268470180820905631741780609717327688972282579844520145798087537374704886933450768571682866844278589979939816114712786917767320207287190997319376107315242782586990466172013967651356260940365941292962515852521072883500058706253769776773916336456958728914628869251729131301259176010434404406533115950930815980761652712216201244215394637878644785578286066589411501524711346418038871954019086509552125794974522181732353035511645511462555408200074384305231240469262967268138830192998656066143303529695643855334401180720958019843145430228413778998366283550277704888807569013152638377013741321744224233478020498237471566694142723035073765973992816376818221041129619648751328936887021967685024932500213831902649117255766446315429686019214569259492948987050259534726266692066080433154156534808355812889032347305395379387811443337881768100089123950331756108555226755102389214424442948290005774939636794565625953224155362510644728681740818295370558047991118875262291321323900273475026928475638451782385388589580117845106448563504212710871823210130200715475880942005943249486512739432038342457890433273698857208046350882050360099123003695504504314481207802998600709271114860726788914513795184638558275841124113411866841305562520594005764525307219853306698545314450517509918377150293911705788104463473763149924244694913612546136553381941526088089877058115336464074210950050768234047692841584921119979699518795168312075711076099519457249332049531243125594537364063502672642086065870285641309425124649853398801662199088596998153044689129267936441528246916760388166866308388840207284344710328854646479432509777452299965242191527752975013398619598974778916394668281855984678778404274459668892762129912672353795085797814744446574233238431527981193928392396199100020183978959565502407898452246501718609965122584453895897973016201410035909486847628547619176243595977346367008324716122858674581885752679938787136721975546135680569696302392373020146174423924548994514054794360508375241165680628903087470026633877402404554243194752059680523391502769668251149975530307359297474078669637061520040065934440997595759736764035590672116282948920069933532146722411437952359854446520742472453166617848256218506746447006771717131218461675103437240251185121680021559643235991625295327793665790344952889850125147454598033481798568170775269123564583244819065648686939050708801012371012039441450199396586312162656965563726047456276354256355860869188607232357016960453184148944852879318098497846428868383902524762686843938806697912787398607276453811466794766922567108704294314424827146252209861761496344160181178359455705413976765702019544595402269347522999546917616539623660007142326459216774911603059214774602466783422911766106371203263912020690217428998170643284859913589323729036687893531247146264606178931221356357289458083231447910063879271907950899653439222951147455013881729012474381536968374006680040181938688663778767306447979519014018279930320587602298948404868140316523234974892887681408699689371010832681822814748282588916352138478030429516656788040178264863754039620838564119514304989339421367795649880766429551448999775967847187135334479497536125151221938182130017854041930964484054127020063651650551823769561240974700761325349961944989173556559390753894286550810961661734221519421408031787383088354926827673039211159847043290929970598815941259799323933941455566681397013038903081100890702877459174797221845311150187342182727076914793272826745161786468542604139182749091677354706497804985540468393750926030210850600935953102808776178169719099126453155970441835687594016408081306375109694361689490057459667409171586536035704433633079611294547767093534524317960670936977913210166306302110801552297902796223645451828780025565797783415389504774393166049049144338006069991326719795610322802386044222998638100418902588921523312661423825048776896355511601154423346173134774081099059696190316285815844184612280691548894225674166387891553298684330509339319904630097600956778869735242287977433071512757970886086187748582657516168980860444301406068662155764465701811650740619765444179520501266819846534038440691076117879023025427305824390409751728127490789532372440652980142769989921627004154019558551768268944420948448804210514235396473540783542794602485637346662197105708511436783069664065361982568664798248285557700315600312249533828067897065804443241722980046427446621051953930213278402242862252136564372249195655301006276396566933460174449563754193527516173437383055951815648460050189731638892227929633372945341342528089929940909715991704424471925759476861779756519326508719516231447244257702711765293970917781372782376301451196067519526254201618757617808509300302497814118936492228395344378514450477713763936895355825034699466144734969688830723898182213225605485362288242760722289511114475863302270217270466582602872396413325303826277225293893872194813862493557480950454633526836682236669718693340685005151184097995216885951521369853937202700437213433180099447326800220603393055009937460898008595823119361513555767299251253331160642127905860116738390484856929548332471032286858093339425059340433606067099431022099846661056549232695439143277085930494332201353866745380196977780627067168250950562170664408668426482475793141102769631844992544905056193817252427847832901464320203358124970154622549784404266839026686910318595456325708341492709065083670680245175322515289997365114316850877310668863725169071463811716220147186692691937459280592281478857581941957365294249479340458665504553906678738332187166818683809337339672321927838789436766575652509927227527707466046744421597628192165713994157229355709246423827106023561045402131603889299999015168055128659534976679076229536350761053204492873629466032772873880142602062947551698551506518366038928443483045790197313241240371634966307198574664482810290978222788229261266385622958974250084695408277422234366747162744204614966398387132845270053950006102765829728773266412654967526734682666275205737031298536684651176946991214129990035155485806134154253429445044247391469345870890756202303786652686667921673371718494830967626897487899429469634853916635840040186035523214287846484111049663930572513787853970340632659380656625875323723120327172804913288991289661809687263171772808342408952038398974480558611345200752264273229906456227198624558382173716614834272507255493268656254314691349454662203380727315174161233406932933051509856386792967509836913286212937800360863707448513953112966856352961477879848132067206599052556751063749509526577893781271863408772080107471422667792767076921751221214559943848145414390410646108816706906182928148414859348147086867040640505507468685139518113457571637836397986896288379217055375261679950863387047447726130550284977052353306564761380053266691779363112218246559943505719600200491207355458850872194979053179573350652264215814055770461693954971593615822552588324863894964489892241897410518933783932793048930908748268112068035911690360528941029044623163377240621426121406721364849759701985754891650450867826891693341534415021999274936214278504830487481734340740871643618618278547367850407488438052068041895720505377212486587100492549737612603518464471505191571105652489556170823955547230014135734768838276204952433783062429518455897053744812030010978594060219317380316275198973292538144867646847831225376125404744447144347423674234991893589769043127648126950178569772469427901518476423575175479338602528306071213571341827952702980256616437862042003550006078252286812906667420612850888891367414404198263884189460657505106899349556653564495221511179628241180128945390731154483755257459039586599294554834927067213824339190209630630678561077670703067335777442687442177567113822677658148247041420552355988099498212241797762256901610001032925441122242088912156699708478098088226830043027446882636693239920987066582928957082207788640691738318732409156297813358485393321471757410161626582593178275975830288683708817230709404712150680245625530989868157315084688965009016498977268746831501318891254338466134225328444761155161374510768643162052133846130112832570814367475563922201798828785233175662426247817704164469653906558033966568085628527771164856277396226769687127416047727098632800420404942954926823609761281210076391440035088015858820857900339130180701460076817971900334457953781661590137077277661794113610159609472552481696125186626428674081535264156550914482232207997320423463303123129119454653994707467951338934925759129248846054396245028197693868012183184722443308720986123683793705851462225040861048281871309896014733440932148880417771141807753317963218928902297468714771085309824689521329507109974160189064787437736070988448600311145860894509532534095783938199936386319492697972237839528216213797548515772914996593817446496456916244162304776545450191288989758908814528862235481342602413352911211086694028785438674532927468965278509500804909611196638423160388859646677744551156965442691082493865145095601076848417264551432715365758435680535576452606231014893870305674676640680046734985859972636249084474282576393193210991393221898514804354157978355150873377744700411353742179428509043756280492419723665701977134856272635363726356398985060068000449012080291540920560555503098931451080965736412486350177100893574960293513336547264141850979816528764979322966127763469533378467747107914638669500616000522331951469895711696353778578319257637006062444428462034000841780242576427539624481185615232421629680177866010332869035800269203799411901972411862984239584550626851302634792979249056471759167329756435136429271732468996038194859037710590510501927869035930173384446573998322604835860278224343169076978909317973106715142781808535474470802282726432313335827389288982105965970799598893110122431005225151903426371379733225308332458041285652129480244969394198831395084023352462940012092885046184213281743604108110982970580583485726801967353128101844673393486900000776375509813927283253766519862724789591919050904196486292420871598667571366236698117570776142422959381087611237487632383355374792682188143694767991589039229174852072399506077254261600452634889029863986050792603402396629865253095631662839974706261627523776255681577611446269487393045319765039622883961747542980262765279920137639177923423951577271193970945079764294310238858840085147220076353614077636643128593644703516934457789045008890208718648872787419114586396723900764353621567465694476605012500368745719551807985553866481282201917643847483260194723424469812474220230545621780350837035768238179387195888458020183426817655499648898631668095087167983011010570326130053469235669819590985657588953096751976170227638230277887022247211908167805375889715771180997843297930406881983653663849647548029073804567978249934189379488350260683808372445734465521358884557113141126391168146053702069552172429691765312853520696804080801079547526123112809808841983924483300494933782195163205662114543803620581500891916769897531587701328843808790726282956169254076816969378476493901168997258283056369345992070654268037798491216164496492709250821804133972891609474955795125574611779577358915519051959880123279825502738461187449712927268182565216922338869173832779434606248521211577305284984069115611715849303757661921095693643022356442383710546193401113065835788330591495825618467145346538916470472342433602253210034688614626210914816096457878913182609457965099294724658332919331975721040470395443990857504927961515001087226988135512234288651382197415944472531523353315085686335337868712568185899627669837294657506749180128265698018407433565587080183202925846867515432222696122177446330537890335238952302271615569021003164117771430807628995025313979143987284967880194548764465486488830424767090916428745364536246418627369873146523499350919194039784516713388844422314462355982302256053784544726378926981026760472408514043331053110597252947613638578502676535258048972865061220653697803999103790543034589560735265781439853010329415605407416914805575785915295834855098517914785920335708727525823465530908625852964484053926029670072691764697147179533619271643281908785805714678417133299708211651852707744950640049626263732508088191849695570105230823117899909820828322302374338436732790998537989688719173792711130866467041426081011405998975372269355387143320439185774325528930217062087169791871103007303544724953340020884649925455198563124598446095268619105897993057524626961787911580932898079937895148495499463948123462886070984237772955450487714183602512580806951816609192935010263447207983278657033518530876532138705905413525787503404473133732076907229855167792418317327636089875401155381339492110159126073420753636246545740489442470762000468460301539898445264546315706658233370527915989671516482554965060116782962949112871081885357895078521339635529400854414521420713767151906655413987251801810065107192537013087897511609640277792858346711689105566380491092579023291549192482345987190790397877240994727602853117829752974412581878090138331151770596127783196874071802650628093923415761231874165855893146579582535825718778067196598668605685544091771771232691320448267965216432231717726871478941602775107678222439295094392269311066728649408993535567603477121491111842290936309274060159262770224288376843162089443640642916325505773317365448787906466659395377594291645150037148797010044058853297779107008579486836026739577506583391313835536400822060529790487026582842969727077788623377355835114860181812494924347080974724234966669077896507769126995664765631228241442676717160023390118428865026712238025915633577580655105108973562203176213197771512104055701463139874410591503907610526567514083635539931585379944983645145766590805952434887881177266957145552394298712626599111078314131751842262803882136231816329718688831076327554352375822401424895619679149370206782887203263613153863257350190982254053514159358353507105149712452009504498196532308751174892736409810073438903213233613862037091351318204138928003712954980502680893705437538713961476082053875932852693518698537805350132222254739986334763300835955324576913697920498821647874811789136275056410860439654037453596636042230356894930445593589823222622826751034557565812413955020801623605299148370107002248941439227698027833506994566799557451849175025150305111063980336276000656282801039509558103056646299729578912180714116187606628612403678400267795897699268008525758934149175983521598895129602113120647588611533954422042227597719554921144689947695339794459266931601566572960340269504482242126892379550493463072536193141848134947450224906139362345858656915628894611539620063608755500574671524947833191363266410593999881979801137712556292284949080152140243763225867951932953720632559899337201854337213700736995290024465224366159210649465377093208778766257653280624901475185524285344637049052078227965517532488832089759379390731333027859455047949515297393766183584953028292082093746147376472987778570459998107407916207073457117751404761610751689123404974407472983924299887642844676609108693280947909167464394240532463746956485276534967872909830241917072191475064867703826993354243726986537484054398137830579601957188228603413259610553737860087749733784291507547812380074801028841797327312553255896435001463506256222227612234704889560504996371372990991681709945682009968167211493565684601298544300326729819252303511991460384964429576887096768532425566773369651688891149967825741498229273394412896443196037140431235742780931871662322659019539838871388446057011762828725939813225422394534904738358755038680371543918237906190271962858241807022148020363414345801713093306706436192475968549116024868345577155890871324649059089614117001943180288116721513404274378794780772038995865738223875330232251343580301270021429161683053992308648206354552343104400763081654833132255720544042935364595221479354678951304792049216926229969255249402220088324932671531168911984737059457256691741166825521130447095723841344719188378188964281032778068569234493685344402326365823498663536926947995339911471470791309781684847806322561587920024220819277639919380347094324897999442880379647878035771909034777088639316326746583353193285986705803886815848468004560683743047134702247890479706304929182692667471941520742470202583329726487113906734994983553236589559375251672165908812731746392927979607643117109677407715047326769862029378730623987694128956167436172224352423077334609618514944073191885386536861731292904560867179847334885142145707917961452883658802178692021239218313915332086768977664578135382385465884992587307275556820789271092330996395746407433332990107387299675471604591873189250490187066006487116775133481375370706626282262070464557126820324019465107335658612359576156722779761155819214564472980437644500215339983248457843888608384949207678108090382757920412031155543122109100437549490002919965904851558220230961674453122002136545414722476841285787907410891752088056361523978640006189441051494239720674513025721681877526382387286500273990067001623790436842927652777316111198082091244050397188846344950840886417189041252219691434649363279907371263385123731061717865006748060077967506197333284711809765083351893500528007913757685973831148055939640815545137029629188814544793610646295204176458528350253558350638432950739955182174523288265027267725630313275135759472955650255204582975504989492763767981371322259131290098437446585009203908213787753191583197051676253854547206607417821551469100151401129364118210899894313300542381697229468101537025981263436510753907023698009021741057552125200537988874669813536123701073842468513916975618337462501246894999050335652859143832391246466166743844790486686120868049791460493218018760453866486485596713301095327249780258769789947209532784334544486556293941115285574163155562105149417237157468120209928701198824583591901872952594850618980499011045859686664571151186024667178403455421405086260746644154629564541669249205683820637042487188135036787774991255338982940783677255516857945667167874894038714402754768772031708049754115678142783408124575220432826386792825352562995711075207069729501291085181470868673192803286369409342205698338408150526449978383248595404752229304180914779202763588005510545235429518190360373718697169285111430070884197153600373981064268341233353254939189732896714496050766069644722268719899984107415158227586901839178677372508075200511720024343095477313674166378889664031264744836396194989067911165706166660498587605632174871206194626982354561546295810074830493373111845570854723616325425622634121032093429133471223106691242167676510310282341807507380900726847005191706959177260793228283508946446359289738014798425501181640923052986022912030072314521074190595547898500193096873001498604042376498473289262885921342179415894214672670677646504365681400319907214380838034962977923171404610065048674056969937908905551091144190109505022184721437237138687328042597082595054186598203895227444449740813034735757406061844103416814572850909445639842089202033274966108113966106993505398897328723118722101821406109480795173991137566227876594281895711373128090568199162710393251167156183957167354881726584069448062388037598735027685292557063555345771473040439566402651547428511471684297382209950548303929869792665076049130218135424598715949963241710186368771137065903098098782134667329681919883716148650046129634345390315397056900255390207323718786649678185823745740200696413239863882744266424284112981877254471062503865717981716133672675418623641993502727875558513911394476200627947778091913287048437907165840626858702294515904705254676269353370633446011202084685619947953778386499245225521538435222190118742051895193813484522443101049234222267628290726790496649734973742673720993341876134225787122638389338399741163915589109349258437559289383326606768240254736544886490537578580507060335427776520717313921662484665421148607359197665272095796770699895909799697407863843840842689640285696644829319704903547408596505514590519846244793262351614486382400372946055163304963159732674642956215552514129522264940804646956608301508524911652401287393050057444057031122129185052211770530565016048925602094863629174497277885087516386386739230246365776878987701112092524517878687585946582787978962553728450542598955383413263367566000370509700443432855857050020780579386232074237984964754760402534560685906759922597609660489267713110244986122435563176326686185357966743991366015466600284358391287607469296413601248200940341734983827086805924441506148597697208114165134625856383629102467504286506509264143120761536434807651894949035711423729306300164239471564408511619956066016939973399918336220896899384308470066982446499184634659492071057448081604664616151195155976614106825577934993903326636578181627298170845882814307368931798188540367327137277588222894444731972796739870012950421955496254215202777503053669042872314218330773539968832982935744698753007196099672149691190263429378835860527181520214780343692360925678473106291235753719504259074420532057917355368308276277484330433892981302468912181194421524639275922561418001466005287263307125688520148176761300179178208933150150295165332258960294917239945427437780753000150225519449572292934592117889102890370550110071272433957822555185640950562010103618626224382044532843788436653839484670261986548043072123147554920802263320672226461444231120954094096106571832781646243126388940682510251482663527294536102659868150542615894807685878004365456102316298633506705739389588470503793560585446805566692037534738951548515862705928140008555381794386251029330469667181498971205776032491156552507962293009388168577925676980240765861150081017075978279434753688757085901869739472379627444194667163437388313526876688259223384660053252443769015680444622791235018284642140858525915023663116837343688981189520830530258974069524615213669280513360418030139114276553240791858955864808652930377508042805456745106085528762989774314593834949458811403862060390796466417954690069595537350128605669853167920313622283293310049880524220198126883267421534011738591185970026361389056531236475896272416197631228508617378156630852769582447761036386013002585411193505388145360784138296302573563717251697004892917756566321916218925982367215023223041271917474819314039791267370923030827659408104864055804086029843079283249749005296291627930203243241100372327454775144213790886521567350824873180393064909854742527201041406443140373785025246877016132516138467970622472117598304815612995123993916527027863029981240550731078015205441090694935715410746710578854796597608623620533180966345254280530776428587849460618051845316726673111004662775573885119160428771367070453627381192299739977172080334660099558530712985891142514752464694568580674682909124232422471466606553884911141573846401327657681863387619785901414586602318632306221710996158880992775835193701801330662203628126547696354529084034905597165382168790848811282921396329126253324636770887889111872807305496577342105222887790183749214290259112239562024449899964745133810094097477183538976395689933189479807676788490889693344019523256551295444886556121290024307583188232922284012809496178998898671525871307442698923226319112347499013771061194473786076211974128300827796435149034367478090026385284810799871582040516386674967228377877973071467392020981278498372589935832013436212822694137147303727337899625989513073908016307476616884745860832818193512575010889499379121050824456044339694198246889801150259235245098774296689000561527127545913588974600067559651911421989075585421210791075867648407260497772260796448824763310436587039419474978094642669476526490924635206322695727097085219557086494161865401241055498101366972351812743698287855250225837987871685223599681655455261240836022434727545181547564043105662850679492591831034774224064237657244166358476363475170656644863996877522942050543788288553297703347077921791348687594529638606474563805338829669589929069268460117295543154686715510601237695219378809984661610319737931225898276118814163477940143227963898252497873541318613797703175340143106536406176706769548890306836975037675884046509267647271631591203237737531109841756713298025099830515057503538034646238801770755068844611838383381428980413106487568267815935616481442813300776969767404378713697001099731451835789823840502940006940644087903113759471871701325856467906639371272323332565454310744162319198067140589757205522270633616159319618607777566773900372443674033502452871966985526175767835106791835232266497541622229384542917232023585882861588450341122393695010567389674461804514976076623773326256011405076982294901206655203276378753694147642027739776132126368242308813103954449997601219035108741642996187481817694310062417611231197097376919160339508117868124048208698014906077249062363622210367993281207154150872317892935426591577215463142949685611152090839894922385855508374847173536948670544686245288032445460422171939916780198629881242205048095988453455113641632442509164146448792812930772958958960388309014200827136047073862157885480643572189873577825346239020425884809737530411678127206109683665179015536915121971918092980638846719409020614226597198591142848412336004889440168935175922512935748610330665452647883702823543808983459888418197641712799246190905625219391045243234797387352781308945561371828332426698711022727606878305380267584462903778492152889445032283505435436947558511125399155309265582615522712854103140631516245022255997898170943263235892428234682827910590797215022070335175640966482352924372873802238647618762134851435159456740490087828675557647206628410054595515088480902430031260240212124558779362918896423069387069213544843231290425646823928640532059056146306769454725224624815828563723620664081673342211209877183443735583943841103793376181482707017283742893172618431589117365196127677978937793944180999302946202533890163803769218247399182654683876262479679383037006773401987393375206168278376908464310707312197115939025799926005116240246087045997175106311289679009027935565661594202192972585788656521863553020426910562750237879252717936436416425112917648880358546327628216649675216381011642757557314249878827040466859140157852895449029574772915416088732399141966206579979299790262462714618088203720947857232963747209188602307306966493575360724421386500939451722561480628423475448031543140556986050139855424645706598066532469759832063388127961880336735473709994367929774954500455731867732460236543761339949403405410814084221824449960636838339649212661023183187952176233038813879592224283888805377147701132611951897281656959727700614384100123369668537748768956724769008765592576208904460850358838806325109083168934956661755620108261458033477145970632123521366229838584666716876599565880137437113480761157539801241013354684895054755360545817474363447299073970251113324152522857622114473793861513128175094939101073362442789356437964286256614957833693545985757719782929468206601973332488060413774340714114252719675479196393734074890057582521639260607806672322420070146638933489647572149804478330161556547507334812705299288362064406317169573585143564971548999657072299250073655617957223904855224154568784652867942228123637366766027143817188099951256976192514914009485292815732855353545476195087705122164174226830708110975973214207686912176226397983630513450458161856789229613887752921498479607808381047868995501289668492820057798630142884153668330637637712447355283737088058149433502425426662215732441272036764921231835739698696787687222198420570744656347803633030855426149558742681650526887716118432240409731884492987075976350737539278087371040323534389909052860473652065865477612364117322735425198789378733281105059041236834318948853720166491248429577372939823894880379742770285113124695923704788411839402391555269471414452694975999258885708185418447280353613985450577294585152983733813170064800272724161410068853705413819971343709209347938936155630609529106521426266017930721770503900350257123648138057553626558870615692084331764041838803847416200860933159622328762990334083765396108899949894798849900421266917877530136805657026032632162327359654333107632537408971983106198524303689721035399828658289427288180467896717512909529529850685756336671514280350938681027346283539551557493476111711329315905152379952965649546247690278075678043383958659507570668737293590460647794838015386060850379834672973016992016405791284105178843497129824412042336179806539802361681665256679159003933131712100874439517920192036781923017828039584669607782727765312499916605767332185781393949492626571404840036798238346583197079130772640141897863930194759692311804276951274945120898356355732558986798387263287815116990544271040785485541881665860005219796820360767670116189296428639613149668188979349113595381821201905269496781333702930893613776774827536282813405483980854387994424648983943050484273469474561174376175510157773003370804376530825565634390147172737782449230126395168107182743395384330475240370871818331156084266974582299346404038405998458223524023928490449488250388145723264595058386543078646455388524705103527858702672287487801210373905273312019634225319013687687074353882066393782222160302033862305044302728246106699319338420703954140954519247232252756461616946141812681374029240494099892595477934742877491285350410335113683305783238786671719645993340982562909260416600795090459411559769497933948460343451682455088164655964934058309341362336243562729023884010557125974338228278546747722996072419912124191019624475019728048750651745021330943438498997663546735577796208289593473738185405698864289346871177684451402878040559004552712178300264378046718050113797737222725207738518763328202347382074522472548854898320733441183248769633435839149525940683303108986554621888954863939322329237039413106028084343900679165615144905689481641573384224345315821397827927688529012693319728303358898430180707982492705751668557556156810952199867839374653381055590822240242112743232807094537236083279531742048633766598006115877465599765367005840633656797006367131857921779348195016653778499914839870476486428012151762875388862893814704107023509922496709245756657496784455453700861526472929526784287866193520058862879644884902659494380210354350226197806796625423056627070795439992373635051737706525738374610669924645928113082475562793440274922439033772429501399165540751885107783565087325103012665056175382936545235371897218985866605322921866625400729661409140324148148263916726594841978908677807122543080761395974897546570311419484853159741262290462736470237215325403164818802711409271531919122027609840584607617774670492238382754729132189534994836633211611366067407692355028581981341568740702531623106378571568166386222999982899124259329245394962501373828545383758037022889404683742732459107023198230095939774732444335734687044691789917007688688586834528941684000806574481115251004322844800359596259828176704839297429978523425873966872313110593666100387842698833107438470828245418681349538139097395958587675644096376564855929972258659483838637309529422639435652381575245251183640367308625828064915415103754406438656028211114298628838375458927361485345033301623666274083141583754644565486350318839843974271167016912595550801695043394616118635356800907385783462144620279494015528937794429708507821226240510239938177563508999479028802063013106083415576384017325454101486171793715060414058913621872180269143430052427119290424827873707169176670141992790237330495516050403636339317141520365075414383454458048156765106715979856317157622671345751307139474661469680860315392936123022852825813105584969672123286489133422270092082555920016629802592631609164690934704693736175765284382118200480597773697865776301521271188565738797698448531407148816662756435710809827510449568850613420531409697072426600282953737225823244881322776155386294387370486727131953323371112403385837944259949497589839439839184159236375726821222067294518581337570443363952188026003234968565321398951188884908029869266497194396644204001423813010407872169858712342888777821400635973789561799260982455379203948992250607386981584328237024552337225181307886179626424971955599087128726147838023092777903577172952595881289855755274357459216583682990096524647836724806971762336717569945747545713355637592048557340313254242722681705122633950619788771870618573719636217878196488630248364501873316547425309488881347882032780588716706446726214339037412073141317115137289515595115800824215672506526830646140249683506399610978088401859879551902655726736206361232598633718064317865112361884020313721339654350781501672634716351901940319789010927343562740218390393129001493068423272526914300537165722704063877834450954635851164293944765255804428697928962345201799838906353498280298819561096043915782761476946562470282872986182460087020742842648408047960974966690986971808607781592604708377668771632229173385314729154813602303380894655636450321946716857737806779898493702948994207016379652121680386221970863753069008414696124159525342627526368897809757405157855498306725100907209038167950085009267096249092424054410868464302332482223583735366078798115300071676300069256260168315676805953190580038280644655091659358884055543926530130180921603720353638687677027776897101607760143989461661208342957813664832721293662340975548632165944643928800979980960478258353256105725496210299063230495365135314358161340432096207660424256181571744092273362399765261171921491711421061789193211845562653865629312340094798414617488284249517676169299569835768276576147765525330361305513550070035450204998993104692325361444547239797773109288817303239273934734067692152772268691733566301844578502349190400972747356411864588154137442461772758034803897872924574328154458227424164532028091367232486979379166433000135710382973592100271928084089015583513234944230671005176619666149937666847658032879989282015707245652659193252232606408363727626502165589915931668308805815975663368530725775137868882098725222341878018265379490676504931096919291209375711720238002830739354721362462278411857860415614791341312043128988099862360071534697687191924120892264808266062434452252481795799371535952477110102728989789724580121041406391859950184911011679458055518985812719212054823521701019239309455385298219518715086500416977443564251806450959839395911888727496446848359614013399885492848545714120477290457118035667752723293984041761069853514708538294348212752461678012251443443534270291741367227240130195996096504658453843469901178853453261683800043515748269879912848949959330075310036186363498791863222655330260228074735568965627752482753863235862935854021488571209130804939499139604571548721381919878811592929528145579700334363391602751687295791133006478577739957330525978787090489103696610689657747223030275778567951390684946773110742811358316660783808164776967698804747243966322320955605024456057157301677391481004404941887748073594748496545109155881184094422683959764315137995617470804123985048525183109554402793247329524465967000729541493603245367491621306423240375754378890696862346670785364781015744590451813820474577696383499760567526010917966639622484141689945784182349580453942517518893375364808015821428680571144513281872115403934479634401810535689402851172058481396348378954054808587985677657224690849200397161330176273923143703041769857612728241839154532805953486079623807482600656028350422850871235174456940716368652289540382473835865054463417176904862139158900480866624351095141339558604614907397304230742010518322469440101667283466605867527875616194041149659181223489835854591827671034610174078418637161879011485780951776971463563594809891064325298154421364299235357355458107472525292811347469027351830315201487903803605198114630856555064328936239832463798616682853359576028726019887173082758984943131929208716344781671475505168187522206712644665872902248827235499930660669672877576092127290156059986970867081197667183995524326831047413874148676752705911084730428480295421712954748198954370833783819587697919476311178002332384460884788784752040542327104838248362574677364286090307437495167792767095517865242689595852606240760482432258119253665748795157305606256364455046776767776588549649734495591523439878236847839631267086063582639383843812623935703191781959273060405811204469032726283190745633538673716323392631789466583259260923465831762944286338410061645298052611883208978791289346425344020229614605122005609497395917260970276573218323764104394222279839619769401662948148850279240778074338276586113312987085212230702625244420003355614125379408118354791734967017044936213229218652814289776683918355794997552780776907013573840560647568623358371957364427384945679075825828593335395550798958830789841900797622320560120057996384937045374024611230294741897930401498781170395866015768004334732452464028614225607064859646544794396769909106286104757469583985114777719172079608397050276713375589174791750579472452733806213733889786128448304802748700348143431238900259502132632691859620797588255630255693631336732778140516076388963260635267255353818032693419438288015161154574074917128523415500637230032353446973090576001381881723463031139235397663775973047716970194308777670233655071172568057694408634988423845685977401588698145311242563877252087164701361673499879886096634071279330542911515322043959914064889130868623905414272012631144876100942065716484902939157850675596332815974635556647419751681580579322206490086085543514356785364589551722480719540951149703713543090924231813344617386815422535737139575441777855408513558156292381138723521208734673621306121813828468561227904711127688177686089995331752878763196819068251532387693929430703678429091740965551666857825095659598614942539669383160215434333233645694472396135601446003714746787840894957369936171813918724607254758441059860658499093187318925393552283873946934994832815106304545445615323331121003305600283845389102080756633447256821958257432893348498275256484999298363238023092591349745949714405254284766992645011538166937031058043320983334038388043802195809459577877151130173961832415663015283689295569362828943027627826994667699877487318607976504808160032064564174030019443809167758915201587051501221460891018687542290567876921504062589975047739434885570299426617434251800839125780626586608320773707407467137015968331634666958062423062268902675047517627735978371738236914825402034566831585983503253266724066343138264967338485067679360752363634996685898470435126005456563355190968726218761552621213663845336644398275044054372117615180365620555597643619386599201991031073730931414478560644917070728242529359215531457413760417304855782964127831910012790744010666289867619145589603517086166230474815701928056582761550307694254472069936339582304924426999813490711863103717219159395130824027190484230972486011264384321669453754444706740141058977280819687254819153304901778896319747137756995617950411663801958042485235487556244489456953164581358567698890034715210674212251879793181633802013886884474022830986867134384145677172466044656447825069621031409261709964795710149866442481845948727498599976737498737482900843924432091487056929642572595899067953499382150223592020557490577168154093379470131841669403997558527269557588245928863378814587162988305302118913143384831782073851906347744707013332297642068199923295227250727859617403205140187049420429182652982421143413738518283280391834404607513804227400299374377081622742842444151466489717862639320636565857093718288949083477126998443953285807266841810900421464134869027206149869737105716977604657576016674450704227387547304066770366406896864616614765594674137997079185306912723933395180931492922431741975519937357173888971557091140251836981197028622409242469274877035128302481098651219844719393025159021612051448102926555856669397570934184933669248548962775298990433929045840604894423814472452171018178653516519582832294441428671103136347660310204211107482668624648438423758826796802733497848593507728019315264343062406784433677264287295894146914620021399856055180338918828192055382695222329556199985794001861903178730186008892192743875356235586458543683584294512185086385441243320288088238454195062482687165196690388254283744139576085859052768457689107347891888517896737693226396059762831521659713050894786500978578952388682532580580550537591791350355826628272059858205322882051002983726094362502145330237730996310590446208972508507924075082353308774616628965671372348194374345072861089262616247649543949341131970096498149229923311464300353901279122290010069244120788680822166281724037069761155489738902285880052445109883144974995262872675285164176458392466397442288101524879791095340194738745302833210440774336812340986804214493084938637307799663194977040529517742778231105044548418313536642769223760359242798289779819416344599519078772093041424042609657276902254194605494162133790132129400651869756939056010385165692698069115862863493458909805128044421821601060713771281933391473002331859322325403407991392388978620299803908438346172274877871757918091772440715833195798218580698129470202777261396167201365812871986143425175316152191837495265143787457063503037498345795964234502152227935235177026596099020010014234997430342828467445794118299200969346187013031156752219332142387326292454445723360192395606375517801906239675013439467565673050936589953627454996126757326923599799775696652554779112087942578623689952960014425912695302778232059706901901401577281277120139316725264600895581442046003911849693652433686795945460530742718129412123838540101468371997235193077692854772702534531690130587018811241564859649696503222338139871398647430460672059598503150533292330867103811999330355105389041560392848166113842113569406968066711255408380814378333684664326056630648931648821901644434613033144949945487385808038078544783253820455352210962181510936062558714015270506113823676488089101110369502699900093678503108424849196807351959887050449248488730965470543394922429331134478094504908172221227869145149641546705984876427311256303114683036954767838074201370924504389049851790829716881400157045896144615875165257760602424420791394751188360414449406050717469475186613281440883116248131125770295743241747175438100852807106636618153856476405657515384341936849263956346179948899079403544525688502868324367207276703291375184010886185450841684345927490029199424527684127081644554995474250551922733991493012522669188971736010894647242651710352855336025709691130786786127785734323350432698544222741765008640730892554788449282257535353232749912694987886594199512249893983265966028380351622361541639893513357605227498570257478329540553387835642056329324661817127296530626223437337328054202425980370582821522750036038097994032677889349263141430591570026265194720901789747564074417552705200002380518255571617976374823342477280166257582926483962373124281962351837983621527981541782664735938322562350692926811213132161908041391130141454248414373247058030918087376696006054303493467249296804847159454750007525542047694059351541614803479186266866808465039629552132880192729146156741534593847388793760046374646480306015845871888982122951808624168266205269467311974969153190135484910685299367746898411543218760502756847299883643810749434581274631924438873556106192746371806339031509628862200996624825106299090299570075330733274510074747162960277159832421556962823067971085034827002690360418649461242750922380964883498477269880797430179971837433471381323724919929110053586189432195322880723609370850932207880294951222501005819754672316505259514226101677196500399621174561725234014099731866620869587279778620634138391314966486639141238853185976025882199313331217514979097575438805530924000657964775322494734060502693155245463494804392162199653096684364605819502936648553605000033838985790885832068294357607216954451593447645795804299773140388054953471398941010894442495899305657388725106879478826785902805572749384526332372172766371448708715869870792160036047166495728332109693096249530961335674535309630068313669588697896854519677893311366217489518260082550917552674079559982459230491327151235386898835400678925162989782796073383645182138877626922336340389799865390403318530227042821462387496293030973449511351214745917383434929427962434804238892632043233325018640791584824974463934056313648814483932426578227680636791543963288969191668761531634888928771813887999010829657785055572555759870978977934221292190094614558741714644880635485328334519365151969027508922389519807854253166889516072498454892155027943624556423446322028693420351644810588051951581741731459317464915769089637729458792818292762996101439857923369377080108543397363252471110445600086005705079132932717821973111113387670080414286819027618658685396717675716525534694242680872076756964793788189662455480352038000010544566771749539756779340924739679258963637463885203768623112748475911923949019618672036909989548263993680262735252338160679403037511351773701224146912949822232932578581839010262165771594289621072950258830109454976797404787755971465004742374552346278087212949590149065696218066767149661943696966018673469362254471010734842242723555987523426874143075352136350499640038546923264855183875935183370057375231683552925906146393185466541653781927348163239893908562192407064802577699042190035623046988803670806728373346203400319497556269936241977270824764434799131459595329991329389613616803420936295658303173639748381917085679274518329651723908599769623766139291326489986760132785777075833233991593172301698015608207549167999790636896165753597719252779923883904671543861702126352040594972352162242949868221638626104290263971711414356051494194615514141064264191919040230574976663445973590922258769440575795092021600347534324520354807741370319423438430283902243902540195944915737491823566753716159528314998200800752341977822045078953434880940784190120284738911754016214341300258430964482333366965960743774434279239068339345836928297478368634297867887073750943543416001793643867050873385812044139087547646740841870310928170361496684433450814920677624250923909888185497710209238255994357571588585782151449953025954373695131595587973473112233634022878167271619373977737209541813144198900527152094854103180392030865298046857284024162215672419177783390227067507914722977077362218458318910185442111682913378351262448949099263113581086427623801021672819317476211223986561152889546050664681923772116353699208124150688476694605450813316821143694631047388075055424042490908753377989000903696673871640149145239047791436591599771655224183814627839317615499496387740827668255465489772351792864790329121276202225204489539474481918582401429555817336102917534672833630176905932264287462047995680575291623540471275879446027887867376414792943466246413797094819908138939451831135693676126139026046237555056963607748302181303298862885310477142053374598021003201603463547293259636664674373028053825984710333343110937683895490627593010173344097648500389150102946125298479301941972757840485976633348622116368058551807465843002996371290395752682233549471733421172138625865158158863503021109879191016816756224708967100542726225890003995672390563124622366428080005201914649741358590268602518971585915019157511307074908864158412546559039591271997559275904304843670089789590053128719757783219181699633465862289602119741066982804836388692522270381963717389424529270349688720770423672300843023232003932350368052147739964428036498870635541076522451719319962385349496394904672464784087470536510101101783156710307533881413610531863224895141052164743923376632850385499507923990325622727475726275402130951500905804651108915155345847084568197148989022256155461092420516747129037760575397863239630213130932019925589750790301946921974519287405318238995134660784753599789850939766549029512182623264559237859050866935574553104548062582171397959914783090901424010678928241439393495720080480557769020788177629244289617620328326370789087903760790211725992795787229375900277247787718153211880441572461282662685743021006859718350591525063187642525583140580516174668799876418675409533549498284529181082110039061066887393155253363066372235396513527160941609980327146964494851073864907566464405279920890287859591144882475176208294737638325790156983796936649471281575578507384903024404992906612134943007508699898189915494521254190317851528168193859289989190163854789910496828600055936163450829528735545922896265192396038696520381551522066245097586540813605553227607864549877971327582092516583930574104139374062661730042527241790783837757208839162301532952439066668808218703042691506796165289468702084954178291963928184440035770217461742772019033945560259368214323787615580121449443644223308113284717330147843191950256136147830499811363076903830519824273744116761441755438785278661703903066428806162526939537770147948871305609695553228286128766850340776507937045549018674220293956257522611586022686096586083554122506053759895791116696657640307232640222565276301498921004433816995308019516973996885871840736644240830720127164592962901761857306302679608681701467106020680849688181971540548416939493755966931966404494533964396952614671125384872025221991439537897563973260586113362679992799231581359197345709698294254488107810501166619850084044118717239349619090993391480401559767689022341915635403878903916705210296213734831186204334043716070766514359639979107156798386462471296448750837909536457606954643408444464369103959682899395819070960318851323243012616527490873254574003748628403350790539581076317613423792755441890751925710715615375175794364351929509310089340228368070754999738196798362867020772136055758224853621139545301584070979996907547363788426894756503808053211164694173901102482213521976379664746692128355624217508130921555231909698093356018232028655936415539294789872786354586617666625986985135617101407591127012059913994923176476060623792355224717672753042489158626136740585468957507657031334077889319887659570365215815846102098618314348801688407816712278531223233478108037357257891859565866353195384531064258451563566021874915140647992087325734326504027046185332860302681925842811939138748987334686996792777369305615595743524343772393688586108817672816682985107891933120485328790114896872608217716548167634806864412151869273558698229180578871869336428275778493176494075915607145489557399382119048536709284915351498664074102213017060054897460182605167188737954041876629226414026292161077030159720865624501148069546814486301310942316021420156276124415713815892986087819205432451483620746323167976871921078471853075898616394978035377355013616118596102238838422678779121324031481149951524603522401702488965777225210633636625948831047869104823375325583104014595491224536329818941200241662873107030129895122848025755371614629429531072643055187645529328394361754267430889402139159878179071353681946372225767799260681114401654313265405191747867670546181684478049820166021008314341447943061600139977568311125944775259159687970732072476518179412447065735578932460277917864825974721369809781368543849682696978571538945440493515619474968343306079389040942977991184033501920774536091396045088899767143491346477820368448503572537558004174371832889307186109173124546618375431477055259687446551729362797870239530270521976960094637598632313467924143443426485812957499990891451937337142043508280688682616842427947247651531195757393167461807336575841725524197609185632661387139810164029945326192240059964953487766795128518925088155834794765490489630127846355236016345218261556805055829484017669721713083357398599799246713136922511298809970015846325957953636118481967674801555619009708402280454437676364344167219615809362780762527911841179899252664230766269003086049916884066501013954838069488242141365002111306684658742013699771319739554254893947937707336979672588213451802531869179678156883386902118920761721924874583618417581325386184664101719328716047498520760298114463617392532191554181790633902322279509648037267470153917989134299295506726261300732296602989191906847932184896799364624337166438979393225236677411299702766326519518114209084856161295310141085900503643891840623018326933895871006360544596640524241161828031019833275243913645456257078129988049637259923840634369652644470214340155706888800440331785972784977569600788373303797498347248680988739519044477435993975501075900009747065513179282877979619266542109710067569557014332200802921014223344825332118968558880636542350002809972862676403986763416484813749034939010759205206937136376882185534700308583744338119323622679432357438769494680301769108763971941202207340629796802816160408658807433233627776469303975442853759100623942149140381118655568032917518547696191892192429595384724527164340087765149192405037450217938565341224475308571981744160264007012345020040938740420459682222227619187893291106993836123058744993752367392383040159977059936276563169901857762934389620132457870689441154319152243938673094970195619117679477157852472562314411981430724697929826202419459830335019883699691296051399523879188884553976862869873124527197716700714210631393358874381337346744778020390076107340804282565489245054649600318425517879430277046354781561404232445467639057974081992358298543130592915648128133262653296722547977807746406028612866324575729479253576765860314210602076452168010776669336502847046525593923728465121256851383602378708067834713601064658783633309206864709870788343460770590961768551815924756718408148486689395005447000267932160507853693414124322617179551754276542249404664635601424876875327809097484598428849516864734174721615892554622797226146205712287530647378570507120261733753807373899175843362514050587066624431923650332336844227588097737443656314112926382666349380201688439201739367156130053263792762183595630536641031910435027154397672304736987015915263738136427017702051091407142607709053114567563170483246506495384459972802520511104493211642466923154285744638079448725173218318278871028480434222250931938205390207263655351341919721167921297296833518454323990797080034545811320596703383945716479736625446364194796296658593417975638798034508026867298700907316679531488578455773588405550030106999939364530012147814450840951854306570632787011098344958072780764224680247145843384044681126957919237820583423345663649587668532616451392238228069825733867504918124720997983780002027528497327521395388783194147535353267548910164064912564584354828018691136908488065445411106752129541686706313345832799530118088076208972636701702032330677195946171481238313188944202791632549229398575868900252685679638821066115778449033168763326960309754819920915101037548996655244660971841750120845400265839271901734564401768909894980289202540188569200489821466892990059422377785973763025403291324631765766412059368059597068548220062037634368854455945164908474465615765994356440460364816226137045170574671703397270310071441685262899180662344637648807500061200580789837460452069433268011737436195317753057359922872511788174073947487475785641216069279675777105221458224755094926081655732643667158018795671235168454198001983542593189678847166722923580090575099271324519810300803649793567715584428821336800652629177745924393285164044656539821630352452605624463760312303172622380822102486316581005400678606793269478100442762321668117944705028959577746982954700612384457318437767968902682848216016614504584017324154154688638064458082228282451824058258172028371350187708888763726764243174443820394018781486727447234643430563670975368588253458839790858289515390511087406410421832391361343326238413212507943836881206948653459668283187245367467900151722929308918082419442868615465640481489772106648488615880361792260697214288240523860546673598517450468264253899781010569017146599050134255080743360473792274836346980836129966706108613943421500132583992078300604017497473380191418934906315115395600623676137552213517251809411394786144304119695051100290456518059833752273781916091679448938454051890607220386522793475483758858375465958250349948751569649428377298872892017118364778648419762468014640360613259440407558312710436168482491367892648513760437537316182571268012214447785298608360269105577376847683576054392367343655451675141628098251054299772678971461169517540454273124359006444795784894043125934776311947949024803343248266968801763208504554376408124191826421419937814575285904402637742506831590073182651052811585746888093144683026451602603266538126924338243796272896864116591645101417556568320225803698699447007446625187455124138392800588949577009585388984215448204604749494305970956289492042207338172116985898229697243546169265846457299365589284798417230598638124336405894119068400941135501717243486291277036455766475233037208305274152538299397627567674263634401002324054161999246205350340445377703944681015212484098365336166091277019764023300115773878127090167371149942986453369512686635151900311519810105895336008972682209029039556705186350871177868025597378205689660487976944512291654125500041287042537644285458317464445405910208857423512307903430537091944101373352008920495564217237924271648335260496580698071019233857847065054752482634729188725983278271574583012805142732767271841375538887699946545784818474598232925010146633805059269311858857447419357037034147200026161543759417759394066396199288667824436945182064685455994501129422030429095742809888226227978518292335598397799472266970405350815404798322652852455968641600550058378851786385564366957346864786478605088244999622052634647670286921628656744792708620895489423291552104895193819064088301658718416999646937774980850809389005140432759390732232928503141104060792719316074289282821234455028826801853308072306937947419362117713611433721458702367342186420844320803398143276800610553573505647855146368282466658508620446818141150409807928477156162369955045324163236708273993109140032813985813090211669242803775060029065600210686571754881476268650223993418476223804073564050945758836632618922398897521133172766410468497111380776543342422360277897107318388045596876423944437662886533416293866354312032738856883275518307687993042643463085668848087007004278265362278122445916120706154131906191191207809215385617681338491536403453173345889565277822921395704367164878103081641604076947448622569099563706039239114865510564315389938981239225095728921607882909118779969417793191915030453169340785737110835878424057957935481463520458726456809533261852439963421863833176718586369366798706581645733012042778837952427976413887225309366295881630924088771080338304718567174174706866713909396744512006770173882241529691503759116431224584736251422869706177216493497701018340038169956227711201700801862011729740233296956107573984225950390274571178616356413062722050184787620292420972290348299018827533590331336555894096944680921076101993335540760753809695599532454209430089767913352915340061979986965203411515919737431192289358972517135330435692679945331361967689875721726932646459873726535385174888111796240084783042716603297207611002035625912851250411950790321184891576624697955106022489204657462688809423485051425938986253588653223512213377778696418722880700020739927928105298088264265202558620405296394573299380952990386762827331674485265800981165796064358725039658304031075423094698926162018594105932967131757511917033465892803507276866989398908791792244649741437822586551992789241903271241198915795942742375232920237801338096691555674253174559967924178598901644221354302289553268298788125330563272261120673632808236897675919539534738826285224280756692201464936147127675899192734042526303954782042677268070379688295990907465989732630012260221992640727816682931922867237784657261037135634249385078303430025368358733692970992462437243818717942234293814247208498862753002262871886928510460416791296482122602031677065350018283634646047595199918488606682590578306807146930151664266454688206867185152291809987606073530761182370401018760308887543367276896319679012392152451362565687741289925390434778178559664768874828551850685248373393800230782396553443113352497649562799601063984512924183036016950044388694271126960233655865409771846036065162500058644578407499474101143853369111112699413623306364213519919025703565562001960212917374410561619845063994105857289774299392615587632261807475834391916321089932246105626582131787015689666264656652437098078298881440788047773774488826781923722158289826077913015463736977474399981425744668571727797894241939974762527098957394348728672254641408262269751036343857261255844947996959622369910600401838803404192987290001610698058780821668705463427894974142425298644967839616882413460184421305175550402689974417066631259589297502103086380797425774839478574958349138748577758667117478310192169516687972537066697577968577993180817953492284728069318594448570798697959441890288039259560693707053921202184334111007202196029937058666898598346408042349840358744907031848321306730731861600278423913739794523115784598283193356659686621905009740386144439055508624805713256111285557251351459088566923661308339351800423656099002992264598114998155530144369714744015161399156759681229237699522916201968483249593939216432784555320776400056288126145942748419412194478643735364045753752813180463366670700638733035508871111761817192462999654602636546043076255873164743977945963081878452422461595112852863968825820321977816312317049534403147649752413677611543600536171764473028063335363841910645629702353936481790793834834050332849779997329270866699984580490091152073996003174502551371644525228395166863840232676888946519024410964677826737758233114698135543407043504181017686392524930167494582547038177318726970062467609291216165436505916717452623223157444336561604561615218858970316171624395093872768417584566994641755619389904140715538733652578954342593424448810012829304401117449405055355495566271141769382909905583931961428722628376310912060324584593965862745585725351081823037944888234251393698779278752112926332253614653944141947728701088897432182403697723003692589786400547448648676886131996631760728646394484013956046481176127865430610234020129387949913512561776398275761992680592321453654795554955401790626513540066587360306941232194843990364181011074977943722551792343397436637059170056960104354063619902627855495153990013595034027560415710121018097554609507197448827922189305370518476893654765676250450512651471296111774949335434590511765277543698350903433528109659235008756829100765370760024720158007283509178693795135215650186706215811783661920474162587897485904233200026742192458954480597049617480925263035812045096857165896648763548813327446935625214855280297901232752610486567609901912151927651698854853982206836325628659043176614820013344910698878810398167406669849882622341797494316571089601580252424227875917422335450263415035430585899307406379970528976247098618997397076374542057350092697860658277280821408843531687022558392514336311604184891589120999042603040196569635645655757306713784937298020388045319586084870304546043635375661955073941079924912026742499120505647256162093899834066627323836416295113685317907937519185242946640572952952160744655668419548944493656297250976019326686530707680919225898896151764876209291599586910956244782036050866889798281076040814477073108979105168843076296829749056295824824918777929787227289086323545297561238319251686052139152379688485814947636241002054304349765418050344764731317939998500243369590767883069493513342300261081335877621561392179948447429776535753759140698908924596859508438584626158532066422219784923998454889818135920406144450317692195283545783934757078607132535926180458670047734998172049257289950306064714689958109928163179408551829440870419934491038888412543851258163711995035440742268557786309573664911202822265479742526021387931125387202965206028920218898225803777228319034952048893771566542879884786978306011593132251644980954980551227068343522130043670344836820614648654877238496274286387762881880528410505665447325762117386127798259607856564573920363273783686648297665040639700056732184894363948714557959709320911489386683591200038961615868670740237396509232642593881602947430035478494291867878639218313766437759817761934175822575427783242484745325642565053361627836998362897483844179773683298996721679238073134866348655123164335499993587121544484228671101958343318433830901921020673981652488357221225700096525735332246745920192634209571135494006721132036610358231283537724239438583467274016216910366106984213916380337564898905855425136628370820992391790424384570978598612142636608332178506209673468359437359198387768538338333899934147785075275812326113079474824524779761251658955101309073913023551712548548077523739184990968254819566004126881149626912281813741184924481615438305247534032062744512245223414124737108669511555565304899005283360342099094489338201867554101632917617680810958160177606311954656447303221323521985046585547795039086856430389121436061719531443815079372510849364223611179003947739741702979802993870971952787164372301280572431062781489359164697926694213174286866225216809378659460358170603742228734037529969705572080857927028064528070031568303113852897200890009081616207175493834101473658884941558868338071724053312201531662631809305317895187073515310202635809702793094272092096666151640170724776971509852720927920957710314068257287240339570158100383784469972021824364312755350241459503443896327105509853681880569357252591702491543342698046535271662894594126294727140879116200345010842297200083396516107787747928425588693187425210197832923838946098152755699478274359517870653694734322702335496960784838581027556946106871351503713743517157240215341313450402512125984317115859617872448743118811525343031866397680856949565267984225796415570338920577840521545889816393674459094902314681583330844121069334004162797692438319070210032781776427887844763680545290320146238481079421975904332372997466910922993204402372240680539657277768243650208039185050409810670216652372155250072468624497265368933986424284655059068022266894897615940920356895345601297471764658281158176533178678422635090389911953177700101545767732225107872344357433934970543347397308196751065986395265340777696927147569301530728038319595985624758640153565370078261656124869924953963458651380671497118914770127009444371107316872271946162771909722562153797069293157070174512854895378534867366645987995882338138625751229677273418157625481084168032377507124800146629124048404288963783353773757594464653381589213877146755499684003810503159396878088818173335200004831149245857352528291821041801394747489889863977696061702375091866211687356260661261516900375140756029348638788265024755856748573445571514521901910414572730592675418030950923955600794181817346787277902125647262042619123174362529229536249008226765632294566819308634501192605963963296296153826804847545196010989478599522585355319110063455494314039835660381946560458575706564360921946364520532685264392764445268049306907811940630090867286058373291758795797543226300054203725683562447670833707819720702395696822472886605902389666456336618303141365687106110000533240845588843696923133484687077643731817593369102520433880900332638006804313097873725499716011129953241853789853475974198400511544264942148168894836190485251017166389065290341401478965652676817669282055707548921559438876954353521153559286499358450209060833517858267316076654242934830428706073694366407951088159006335600302590852741735091505741257619938084539102707284639705162069064836160963077950761006502135197314911410771893851178092263595948032191447688354023834092361440139016205190645181972040030015424201236490402539917061042365852336875009145016652813221857802336848721110372560980013970795837129976540573609001245887748201114512547141099180235685294105745342761414120350467022594218889255414199083521098639875725478015318789580163662422673464255458633190775644636564660115497848628464005479439596635754815381607836327844145785522318176981432337612343784039936827960385138132483469721993211024747805895383637885698647772935835215695146344961531361454206652518703136068792732216426162041591056894167904512124554616808807764243795329991118270438545842549107955422784881763710744913056489064286888514705252785800495951998808647028458705110440354303418635649161343475234898385209260299761256696919453069539934900810859521716786332272035530298103943280903597853625428058619147897527175640118187157666876529505974784573422225630178989677692765868374941689995913757308093492571205490852087808119874614586233102818986337170707543815993788642469922177420717316618691422037897007675479328330875833416096962002957355355782108363321065233581768823679818554835970800312034492585070034439244058337385412421106088696447367375677263200211840819364019026128794343202462904995007225682680087027126067800761775437883110486187651401475010378263481851832823298784977358813859064687691981847097445146197661026128201332883778726487615181822859166510852628472363706998527137974397887019474502795776660953402786144497455455922938154508372043326620961033231471634019551387385839855358706708883065191443025244001412951155345541452171520265497225345435462482025591425414240503202182202551707877329567834409934484623308567715175847825148423133123275422649420706592864513391193092409931936347122449188704493662249184813508465714263879457260304024805448661921779325044226742750728176170379424757899461196252394525488734176474399835640158408447330880545579376172640468862398483596643845863725027663868349854175121866271318802367237485461985545929514712187781785912846091032358490926433512259252617576603410973268958867263260889596747714560434370146095108010834507387289304994132336639312312374850329534080330334548426206417792531306564209919648944817906426435941488504930913508465811399492837800385955510668529805144572814041298270941680575993100492686054799527513629345247185005719762342844206213261520420888273556954885204297975809632194028833055020413049349825039479051848696892480001610114669071085475261380138741993487042053097566842092290275775236014448809942495343569344536960139706900334704627462718672275988888377759031401614282014919331180947990540130360420713127714896736800428237498596514184609337184167377236051517616557139718944327340846532984133077685433448885314169341577505182653691890264949303821758998928703947819409053388992494080364328087447156039908100857232264975797845815929687410558479272390963446001297710064410883108953686233249145142742557085356404616549220517079091464174702794337615120786320663205085082326236190333058220482592896169936290839304509263263648667196645424529317912983130151804902935753355872675843148827304845419324254311321838608584086315260208765835374425358720107994579761782853362589529035755063150745271637612985920464052779396801429321614296469735671629930277324202711178610524977080146805815486523395416653649043356832289399411083248291499755612449101008839724929673388033007695307277628249736659772665014900455919470044344924449668073512342821866353430417235094188245648812583413045894520531167130640139774116557743545598759806403942503788270360705080794816605832035519585501811576354119357681502115541223869015393710912619397959969269521889360997403980873723385758943564002262001983367980782698873093015885992047446544498206269791385999103068831349095160394127589083691588591753085736161649785123510069682643611440849825453362540569150733592634401461170131907979422723515822998299066346254568283461111165890696846842190524184346426994608969969748519355111915983736143231629518622638134793985174654853647765292315828448097123592881007843513003473855879903361315608870071144379230321795789377812829613322675545960208453734347425752895125200928118582071992620420496241409421377495009971608375096681678797176120516106080915325657637108382470551883651276029833882453955317655814369395179530360289619662131279706087322011749700550980083724851259008610701392576383541695710744181523361491478007641855294881316096167281776628119954672435041931213097082018751849904355363149601050790809006131705006747014394247667992852202379820082327394017868590591926183576138373714821526167905261761677905496162054728957956984457242401689164050716538133628281586206894449380888892347084103854299130113835896282713729573931465780902661378406427611741804270294348023834264463026338572722513386139410985477131928397799660303056405534832870919124002365893371151682805926714662623396962152847853367268665163121085466815634080821935896264215165448134291821707871928849819564141644429477808342792866571731244518577260881479470334078034207085921178797614549391823310520987797592996265563204256650048215056093536093626841522459544751014586804937204239240976698954757684179494492405372619551265270427469035140140811789407939433219754743805216562275261526780352748053048669358836534948811282664828159662610801669689086706173089637718821360539012898428226499798854432332179986306451628352960758033423114333908177232402826775185480160409358823813011369549569027091813254763225982021256098622172381935813401723829757750557415447538692911036017228225969835100446587131652683780496502066241861913531620897788708163632678284489912778014684699997507598234771997457803522003063564005976716889406994708702086322813369804327587677861979031854222421675069925821839297061092468636551973773836169646197798351436177438758873424323555132018843652476590822781577124369884964907881094959734900944667589703490925723550883579491085656877221142596439602163893545953126264830948288383147517095266338543943031501926593181362975386915344501864174204360759330914232794195828927547425112228077535048501838814169637834467438763348291450004637963347268404169614349399378176682663267684295115395124576153841271524154246480092569280277609166885169830555739800130145925719050649637340961404519435087891677832964410701509301004136280891603893774990035178662272847757153175945562568064845467855019251096919271716968705092455738050514943724823383806532503120704079485379565739988926263708510936464198217129924662924909663857807841755122784946474186387554819229990410593218334852602816214287784844508318502202790199678534071650313743198544620278747092358191613248215826740609255735533085879469273618544648251557199768546176087861818146343146534226881398201713495116528276544789847673138705534390228316739762313549603476259767123912865587284819751172903224823666298923840729690901861503008493988766688160974160187381849830466626977308755517471435193342911741596977238211223570442389419172199103263055021744844082243287813376103642342248449043141534075591931638796420885114081702090019929019807839913604850764534353482893849796396740623516284748644466074473274718760716614549701594544092788079342688995783379764160938445889548288244835946098115172643142748208387346943953153862350260827853857138908720329792927928830262271946795919031378850405214197012499585806602054312575142191268467662323740141861527317254292226096183283956514821789632831963169169748521956365864719246391585691414845712923561052658282037616193793946520695970237623954926280899847479009785289969101287402189671861808398519365319746198973039761362104355778872308744159496556640224384541957800215386536337776472121554758462111615251910379542392007266503747065806786825588375195710668243109990182913097194406728391448508672854374492411600239558220087739852861650454267971307664626775192502812788639535155545928954967621641689416878610574751827898348449029660871733036357962462214787033991960421479497618189082119250095874863695853694602236776703914116134962732185923690954047490782321649703298287618505956292974620199052182683788238011806669116143034570451604585108228325545514908481937277874168452623159071124016673686416306827077544453651101088010374169001736837132407689549564141156415856834997920591057321150566782522828766090513619999385436347402383435629700955210948083900161215044182816162839221226295300762524414519488056322761520337250820637048755008070655224362836981520907577640013380794546186676493193481486092617652267125334582733184257187734720586901918149398731128925442810781058252004902253125430898222039796289174697153871643822597158920246427463628842110734424040229402437113002361726164561078338367703826050294011941912580947807677438665911982059854970687223576885652410507305564874802084170812698312121375171971540775240719831552552324234396458276526029826425875283411581834806542246929381409010469428463728620200382657949614740235098149350974600198220003586792610474036461320403619440427394527698418938211483861179098677661952975601341831256347133642110230369282722066310540142664988242021103646824518620074124350346010586883476867691934822017577654233581094665786705305990523315481088868423262862632448004175053645722726510447861417739295948948678135759721209616868348607528577746605272989681175945438513991688193923771725673247430741755526262350910036963591917003620523559179424645429310117441119376731219383057660076987828720956887245825283443928002220856913356239859869220205588883334113038222341233274022819033336250325064640499538529858204730416579076724719914289463468954111380080227435112240848934856093372185803927162372889705396032110824449813807721087891047589560710058102808788016827681097866923968482834197915682748425724656841439194843983183667198522050096104146026024424700482888194802405882069217869090189478222200642594791271854411509019380448337672960472166303869266322797726152798616007106619889591922544723892415118854696295691385453911515014021209296026728696520628308026392527685837845713490383832750789534264421063894671114534651895311047239554815658729955424851206079446206405479432898035488088387664172710407530037935755506040487439138471427646215819452770450933578733479795357260780731618363843726545915204729057288320114994957345751157543300624216248511107476446749483402394311512409326474491386880382843970368999113665484810942987636753225578218361873350234274718169280303476991601368734985484826546304232553393877417240719869017272159424888487279341735635524390242045084893243802108428567912116603479873347219505630339311844439140702609370070021729343481640559607296803458433483546484337163625909934545226117022330018367113605200310019924903033238125906529899963361278461925406158128629227655331462865086519384071129646060900134791558937223073455447623422128155706982051416508574325153108102578732997303516586818305021815946254795946276369914837624864381553639531395779486515638597759215807902571348809120039884906685846786268329390047149952059929476615132014948821864472140493893103972474561326190635039629831441325387521730673692172072561360826111013277432773846092436314130338551598331155383529310490165322130153199272419199943673321378143291691862117528616376517373064432855385527232343667332265716266195782453472520144522003631539702036706237252501886939105778532034375076301949642870594459952272651489410388277824934820586407893756440280395906805264931502244746731512307981671415848057704466158147832732523931143238420379804677791024897149527934562622627936430897173633744760749557308454856123641260779929401670782190185902173153522483006266157756749701790253374787359224226917506656411315976271378879225983152101930984829048888814855983417004000936392927149020126392818714432958362189767544897197513200710011973160855967194583202743025649006771894471241497715916647347667860007811019340323171191831122627258680680739349713810157771264311750341456313926477093563652393005836980025942340885115397083853424944181088776200551099279127488317541303473706176112399117636305673145352646012954089858037342234317879125106197622904997549456518827011083802720250067536172966206369856858914976724457543709572527388500857969004608755827217242544546974378767095954651962845460696481818596713384173463810716494660203058885138480706175465630680550412391881657839105888468267422210177900169012702836637883947218329311250534268589977398331386535340605251038862744162973833057495376469270993578097505612031470448845747581138947865584449210990628599868189369488411057769320528039331949601660067975370174186333484481320761559088119240448721939926807141208206636996876997045032295346636857681469519661407896817304546072970623951037194773721482809804718604309389478867927339343296408525679372467948272488157758662820840784442867212342983670773775964156009621739068114944984821081447698735472962085203577473172759790227539262227616559200164496396838789158609008835352207646675029902532071695046992200348772250999740959338591110084892852638529532313439938632156121347372911557078293256694446350394129158238333031810196119638165265798296002369141791860865558945339321889835536501550847074968492600176442505516203393538247968255716938732336123584987906304139660582740152310984040805036909272473512638429510661249902184252442739099300284273350664758212823394721089356052575051331117188767466662308102336511335482658136998640321472495243123978912668808649440134169550548315826297021710370141498676680813159518794159948787862718263440071939824034950183977714037434700389273905722526232107825359903756307468290635270192910760807416332405149077377800770249695633108785271569392124938201781028634687186635971848801041463960276503798016971525314697002721674308992461947864906149287189241285001023227606576834427430091304162507551008865800535589939272798196965352521487048044350739496641847031343369569672942311001721206463563437995850097847713407163097422371205104097840557375809809538933071457549994266662746477440689671318119268448869319693181720496816636234029251258786844179541623221210287634623333778757960290186681985248424330989071536606852556963923966108329184833046236847413637001349541312118976970005623800539470666970914809628394594071615622848991162413840375336770233187769545821076171409951355472398240297329177482019132738255079314130180275122812161908733564030447650198334503651614491863915867050786928871659499543965839983110643595625015475753861986748051150762795354089396515719887919241945544407519950870636352786146511800773418222842686220811880825004177403164520759387152255019297763337767897076524505614508893518134056431294482582907000618275388939204607860872054446724893626215161983309540701834066200462728504586682863841302392683580975564408326276116730726464865372812148438757869830897309927397550554397669026150709257707857813056543926509005187863554896609801979311553142549186867938283634250723048317377442557628884681616491916845590436674721860057388768610388906456580550870584598220952343483732396550832816845935321707548527509131233466960460862657766926697119133227946439409243353428638912935850080161129794965799673820296997034426266513395815341662707629192321190787645309659306153961596489020389121474241557518450772624004711328194895847536505953489878317213293101375320498792070058857845055624856809483728339875729106301357548940388377487292921866102140674468351874840733191877107165088128793261763562359371326386274032337723740591805874396835615810012112482642260685375407439191661873001852190061561311014039114926465571236424375540481340134237157713106415734041777820929733243966239662136274688571609954811224789648200041438418691637089277634725437283801811218513907499108502763083217868988353230424012363860757832800529536108179347179601651894340014468337673735255596305856361425587342015541878174592332285540012786732614812795164583714956282714519502927781164505347429102120089536937882892877970994794708236716693670381137507937809875830677690330003254303954947904671152819244289108548930267374673531468969239181495188390936012352088219722398157021256929052618553532118739841779458145122236307865327209836534063235165463174043147358652674792170320633783458600564745934086494654022538757804594016839312775645572370281023817104521425423735261745928079559381098373571448622644740631532092123153836571939030853181319344016717306649037219915826804496514129187711989936115813203561730922259982014119727223637931642101437076894699804946861837499925357636333647509365858731121496263157147298483854799987951447646641592037744336004058960134679238651983358110903904810405404891498176866841074298544818485465835047667654481179363237799543058699081101448309469899204446440519458324453532215338566418771587057670354056692884794644947046577615477049820468867827444655374587685314704975983539364377375103910588160365628410268660476468242284618331450030759939625753052979111923520085021901904352982967155399022394325730803577085153722975348142805807702267068626221935385492955537598680534331783177124435094612515932008321222779413919291211193855162197288940063713442140740742051887113213681760781732647766410275311781837519724894544578893307247079487099113143061185981779967035464349625118174804819669389679492761253942708275707830815693866691576100959998971079301452480258798070059968154877272684123875714834166224501411472127526887527367969532848794220720461160891396992697075235355499855333408217560678045877949951487862708399275780006511857806701927395250097571091956639163680664265320871108990142415297387330563070348523754572293728169226407998848691137541533029187465324900460097730920347519174737988364989851898034067170867540332462107507782108177213812227046031105479727393999552134455573798414432335544717076569047155329330949892815980654699935611946536254784161955973385577021189710064081206041124819555576331556266166867237458712269995311790827486206541617303009520113974549056063587635784677480888338127238804265423437052042762322144917853005262430812927571232191252388240578640710964105257121240713219205915957403244901018287203632583123182528735031937760560114756443233146753627856789868480328322942517284887574098877645552873929282900000807409194113754386377543479357544191637994968201234531706699977638529044273801775452479354777153051922236580177932271517505561157135671511099682507881430293190394449445127259190235367558177420870147366682853054480298090485999005895227650788354662363417262438659403056973819224766531996444285325403228709273793866063914013982036079843767446921837113725578411609451454487756202508469216859495826607330202822021259386277654283068982218753628383648507663215254195033951409567611900258460949803696631149931578159487990535439271733189425997676899070438519277238029489026737218000270804990199886496667380693718821953314615118872960350667281510313716364430836085410505087915597596480994583741313924913804929989793055737749673483379379991102189782599262816493779930024179738131959300101162129112547005508383718203397729378144439185270137384704776650722432141064276057555608699368451800391809343222245964618255505670980754407429509612992765115376388261527549910546485884943072744958112010895599926041821122854125436790131313810711838986385159195169199621703558327865917698765447147694625752420293719882404156488018596098288651156895329990947693337133219224376856898988292695498562209449720888483346154919388155981242194989509824635069063457506463818956538107044191105494094140840820312033676251850934073066921383706488340937318282971620586982546563484899879416518167668461308269022490989340234518068940949698973873224211112462743925481146420187047699597710134749933378510125687596213082425431673390487328209377326836627216589366954134715181677612924538997284487599862241912880002027242787184203883075090187753852130948016924028287076692081721045295754453391194898130102037424355717441534116198925375452511560879009259259001909762006029433751901047554576014891408900131496894163246534395270261844155964436414723113178857150652772798261171786042075969983849008356551101124040541709021840482549452221406629026487971080167833459518284356816485558788467080741570819377282056660019421984259704267497833255858226038842053635329956832340366139878871880446346794066843588986385306490663380980509542744294554842488299462035605508015459440946212427223148161992034598984032839908271789746963599253688445490570857337447938712579710826171303055362158528059997835863016284970740390921611218309920770534211899161382080371436376676964615349488282866527121192609656841685023764776936109918641722968266966933276577852345861761176863613514487397840809090095704334803365349032715416215919543986273447323487350370905440619070692720834202669127174557618329166427849592722437782361911946322230277757871131918974155545112219341607286978266578315740674899649054978833734598467684957316331009980898259724746775273508898369492632027005868800639957834491669856924641233332181596036751242602514711685952194467015469333730890437076223994887082758465507553791048173748903870423701477162241023894156747148036270846624607433359324556972314794382652039150758605791429994571461701941819447356065139550003438864706052280129285847012405890392298058532160597392703913957458015113678356637910551898926888028326831875910620025210000284396049873986987049145439910864993814920503774581246488175817448213348630330491371771674232010795776277807332683807121411483303626534111114092992702840440365717098731814941835641043487464632137251899963178134048729552652203199282923557743535828078491332996457601882850307341092325433491904544308718704602745901532211440842707627043831033192209334628180118827313753908653195096747409543410764790171828958708899697564105975210995471519443121702884480648977934923281562041043759706529295249358904369634847056091489055500695959106429269296323150420367558883803649645291977403847248453282342215426388685646733161037477787448365465124271839153008200169238123070747359569290236739683813556332099905820402307352575698089191520338806792690102627295989167693298490595560464265611721262127602337085368522967951196639473284395770040981948390108155383232128075634264632693913493101946677098902037805492952779553931340244764268454907063550657470012339657334915011916295325369884133032366392326568712884581012038438748530638849474597915511791530312525614619324255891119917454143682370343712268715964019318041277233084518717171636330032994396124641259595806774644979354646248144869432731534322935856285672925233827923074649303187887814267431206252236185522414076667118548109057950032411980031052642735875712333333677061405688230814012232701700376475477288674949165337529558952655445744272224325225292365376247796316168581959653947991410340415450467433289866871558600228343625651864640504950439030291546664628476597259598942703774241912040096601262276382928762130259358135967588014465885188634271739726491333811218113189103787992268151216306906283184166754247446704577536050537408009155163738102870008036741759054829402760447114709400824466492848445494667673297658058702840003438883194057632003892469203322661105563608121197806485298382148857809182243930437347001742891214556183028094519430899232110499819712851071294092741561343598202874584957989447594243683653548511907604464391043018964926239613144100130367168598068970660719504279688314462371027218854231431475480024765431941922278611903835236461315182886537275729353223235828984942015875637401803209120225460146232808879509933318523925041836066829068128482538587723525021134846381284176202559508799519522391031049904942604267626597740588223892015413933681341151492197582908377262393969655569124327443420802066668158946430384784988032819856533765343426765930809205660847219727063564394396928975530780075073786994960543727486307440846636796956368957732833095184737498924472241349272205769965780036099738098987503954677939956616284442204160741697582433352991839670443606020967784206030949063509252178834468199812052496471231449481356181276213156861139555593136510799790773538190514501761816273983622058712649373987520687793859549024029080963680344462156965173485608943390023280560700246241728276590921247815187293033245815226484751615385064794911116093544647044375699775009722293550459848810445935266015869829878275890556402269863426036253878367603023725562997068650429798142858914785766878406999327748760226187177804173575580503373719362595844653878553803615024900643800994414821967778566364572839300854959122754692346584331994410788029208308559592039661906696964013653062508040230908532814058947675273629736477858252214808827580025863638443694947857660151877583118726871016169938778948320832738744432729226358286260706520745409210132166276929538572570754064286506185403926280524816965755697834416823964313179999560604169027064862122412839370118393534891165996763060537720318267613994879975827681743850890127984149800369864676708843177040291116886093787018250956289861071994282958339871174956643218055592669274950491516646163512073986182100072571365987906426915047539992001829215147081549406580834793077514762651968749066794305667553701967201992011291373180518445637563205820077515075616233830287800641025569435000304781807832185676586163867409258416939077886409377497757319587997782924174907340782886244403266609376829252282954692193199532971030972333568705976742908680411022855521885037395859692730037312399178169476251271000270436742538369821292655322217759477928905460894092857585593730682569474774738482642520322067678765592704663658812299492997685349768467568337087321732206482697800790153856943971795788192944341024871785972201820565742442208825103910535791028813861969695045943189490499900454468379321829818651605006501355729808436687060051223852173805507782552882908005254240342213713138216355633782978840171423745827401497077891647603597909343367226220864281123265248462208455149253327382012626975030158515577600894859695871251295703000346149270515676087070014373718961844868800476643290696338048834664498847917405398752453346135183052324736706074618636395632008350009462203618454151350387952786068262597887473379624602093148482271878090714501374870489218530965437698760986632147080167063638911285429687498110370728502611319163282978067007616946994391757747188127239841855401017086809675656754678743947939718507135035908967214430389967549710811395636954717772526534127530635158371597214959735196373764178731300330251969320062018827471438066327066267030760675024150261369835886848607892401835252686385054807202953212063512555472728140416183767883378470934255616020096258055425036767692735165281823538128769247256266928256712629183374012686250311536922216906949435044032061821037637510695906043636139623643552802789679561725589918655359878754796765132389876132053914553153923699686288397180402496412623649491244561021886299060023375979873954678104407002970718396649495768650904135701295820959422828474236660373494307909243728726774615143667626972814942681097856829958010251624680014623611173245072614074022886056834906060594390777895999293304911080896121340560222964742724043109356452788517160423889562606554644829088110913858281244354095558933782840420302235269279491913678184328143909666063885084195379862895130842115492529499236172729973845282059816995161242899403489705929675274897632077347092817368532197573192239952623786679611563138235970741013927291782676513745800282767542116471232868802847151832061124821813180949686885914000585702613040148811889730009507026101994730707724388317273401986993254627125155911295249937893892340679754116797873159841759416689039684604691785625758832691031140005701048266874187252548649663725870896269136197790091346456901006501671017947350110036046501088564232268950571698432260547588094409614330374210180125629768375639559275866515377681957464622288479642280514338997444579852957293145533900868296400773675990538348780138926893069964540841502538670135438059419764507265439109210258792246398063850727095932728380743057377722413524066465586287052885592035631277096105506657943201468844408200349119758692675042107957782617464556672889996673171115517541177948148795236773439883077406101615250481562085580513999295347045885793807572070780797762196724385519503574798996330859962568065969858897986899005807825977678651862753781019759422152374929246166420215356908357344938407442084370514469152899649768471300123411427919405335467555316205692863239974992513996713698049663675408242708286233880377670844470524613623641619991030045441055813580590943974353252825653958246717005581777714104378271479977816464628384891175592565201089398325048055530229690675695697086830421208925845493592655060371375585774137588622853536666697485313238096700268660215375074321487586719660085076976343165973484686362535718736408378397283688589815210592490330099064100487056098925799231660270074923659426511261601718650947099426040044531426822408124839097585826868978709457258556519120997966612905540691392574541804374276477813689590966918046482263909908397005903784954968856829864909428364265762670532218733005165617065360768729834404258946721496202589354325404888651504970953451021814033043351676882235923793368363030224561440895699882767819259478626246427421394682461288358505680565863365251968323725699030625644716392962075694717267980456842245294488341870485058489208984077358147144896320743394384386356461227501294335757102113701545805339167693744523284848819472529199515465698792487550548312957499047292158480845029698650058885851058455976655359118167539243996501392175765639106212038741481487093209052782583483847731158367437411531751342533914047765709065271504137269786900080310222191148786436175873647733118935658014429691144141855177458531438980591567364238603901562068996607547910165318028143941692279725753649209904953950473265146757068613020425037197902835007603114035122228027843776009119997400287675995399707477700028346216989070614967225098595160190326095807725479839327340277877946976907606046094982681507525925344232404159154886633908008522546583045448744380131263998212018891829081114236481284656732304696779962722812489629582678418220056983833745441411000622902161620928860981559169761613698951233951487895063873126455075382142969695211138389303618741402080952118254091802693426212743055562292368759238093155418257076879867410662048268406382679332879780910595175760019228986060028031044445533366188846419082270105808204078135330339584580734202000813196257164609890207611483520729421609325325835886570702011499664020763703662218831030607977215414125902685665877098821603605220076300566303370860748439565617630273992043400070860983291962432532697651213003306230764697301850788769193239971332556350530713190659926856079903096782331236119400315683023186609922816107677202998039650309930162945507467983463986601344399283701598896632118281897684244870167234377213425725142323002417095601757815549435295616915253598814965128450526848276816912456435637127902574511824212239761809632014885070807237951164643071545108235121903016649834413641319918105340738595435762671698660190966206107716277766064323725909716431319870082190989004244407403679251787331098540892583921019434317142892910836027073009094245144164884377100266748499680811122997822418541566668098606294640055645729110119311784330976145342365532955881271276078802108765078744353462542789275065362786139138099536754409592155229730807574474653701443206379209828378345224713788098729934933132208848624059389317419667234265842361244607846732499831122725688784047370207654168463378752736481816554857836197232717282008086944954023303444390435888709531338282231170619525968094474105995178095285562440545577225867571013789784275449104624373601218284305654604405900249540737246006425720861745369377335916687631207534529574851341914133317237348470783612708500027149829990938045392864425747916017112357617091710770740022415607611906042610579441182904495064978830929694586835521338139083623746453105853783638887741025055074035089038817082699095026739473530829845460420388189737455044653249920085793773204660146638099422907582604198605037215021693535832891321199609765442011404482889161589418628067937828749015547132737785395097496106675738854471496355572755078163687648684316670136952849731966503925596988846916297651317872462205943759096626216647979841363453244581404706859451831831800334928996989099141469471506890909237398228537373988621254639603813147103240885578711243100898185566823716119150960678973973899076396585500519767379616483019172995169323472497967345909150203165235935550744597114511814256481412373217868591182399877937222080005586436951226866741474040859868317441581432205994717494770227585790397232284640937173770351187928805608336594542077205997470738313701931877071484503340884893143838607039754465145013948609091968747648836643341938867273548305480921905790475311025097398628472694445881631674433906049906917581980809386239463619147511628988425506777484568810401113919947808084967838451281315118595357625779778338981849861226948467471187972883352368812656541566483458361380671333042840032195151804349530835813165810903324076216606492474965166209911068449818285944276971977328536792980659774825488896431980138682204273966982491087503173200989304446966028781495632713950353247458436866763468829279110047709800331071459291969720421722569131152128752282579635013551963407559403340072191403728990489001722030452081566183210283610056421697475044950016957774421824695428852330396549488692344913467433572322754711946283379038283855073878788043422811244252108611677234255229581917284169010806001815561431157540351870873500720681084333038199419065731898809177727761346156209491815885303609793243223399851348530603275503739264547808970233759619201341494771656999153241419611914832526862607303761193120662880527197352909770412424375324420273412315418419163744138006628126382254741020078519629695816201371265059635541286072394828402643045761771905512659066634959657513479188592839204267054632562063467973720348693671473898669399210279479534010051237399463492483575072883030051577838915467716334559648220499683759479549568345678051212106014843909651465065020475276480049384744406973860786801710512297430505844902920528013673431649779818429082699841156419065311626764076114088725090921965305747175079377319052251960834111763592012331344401292487543860328385238907849177654422143559215153015033944296830329566855815019547463826584029903341194137478442962238718598926216276200999544417363264991290864205327832552618307976997533067402392281082610882397667120304960519910461007924893653963434869620969640208184043894833251940158074904766062522043447752994916370152144531286512389258461657794988453855265598251039306509291204298096273453504595694463498323026832218479444216185758392420937052436255350647189926917725642301935690623204873739268533385582424417015248683179871060353585610386535228455677393019693527841973895727713494355683992862099680172960085037529386598906815163300748866401051715622851698733374389738851267586364870634908084462222618563862294379972294105271890296988314464451911951249709949568012868125707334750441168150431322582795494793853012644850642223174897581416299823985499924970423015120221197098490015502446833288373122227306992892267831923398815385616875769609337073287581213023163049172822897065769015454760957230493648596390397006713730048960759677757486721634592182601306195331780247114164977526905377219577545699575984657787148761940718298747697382369621994782482795869640450771042198214321631734401635863701000755982300545196470222249033022639186138235576063741325103557999069268094776415447084939765120432369041762970011900877403786073802209000839022411880667257967148303805312404533464849294916198488245662804511753962162456895756329461228319874990790209039353829626320856858749290885358062594634043301445899957070975880628772583130460960391890732545284221674276236371704819832184457782655988345295331946642925989062665709978243073706450651241116966106021149435876050800660765989017035688962621517398103554307551803843362328275843894573830956361669238958810654934457475938132416403614316315203110042146803859155774290674803544073295735259478496502844536387942060585672642115476645840495672616988319765822154187036213715776762088880511778667485807888066066075797490818544640851330704454809372860274056259281305367361839247374093861982718130079163109229284219095845304533865658592588383391869531679474092891386525064052723236762212754514724615299822351170699641851727996332631981729610902613617840518607186427639574025708794525582266160747449180676510159049559779002900757645915355876721625646075134987128362089279244548809285331802936247482988446636749537655881684710701477299953487263921035014908963351632844979828760384298781299539658916835741472589852314223669981896524061683413332612966479854168463095814810798730556498801763184078766616604224534180603876851550918570111205431940392584312899170180879635498011953902372132092090437977337409658638530268726709230056546519729840265276383641461105742723304771829735717818141554765595716527048623590692143021721222758802266612867693655924828422263932424263193892583108881800060630539773215241761482966164868422315665283666938592609898284160942091850149036124528450054750034179549868169647738030382015075597521195045739703628784216035845827141144643443413847862986282815232923225565437878123700781855465823924968672709480474390850900342678432814379346214298614916535017505715088980961924914827940458098784456003862705747409475937596524519129647540254462600707391533010875974658553707254271489678652655987181732840780287353547363677942036988346523996971850694289416347255153874021638437165987496689528378424025307428704699875195373452042009441394619635038048385132983354742554699927695545405898870802125461479904222344462049582724059112661358963949975417953842398512424149295467065092952742386654183675843722682855854160219596943669005239758017128157878854243115612624582843211997909380958827415262603347837198807508963848239559176806409643761697577675116093292897955727455487206649713091097093815489137848190484274106510683894637310908885126754934061209487552448722736915978310813827641259006193753229366918892741723678772378965579091332184861438710026773019174793450607634249605728696104992341007427553958070215063494608307530085755889362040149292960378291235091500547755414066814889523316634730919918606331057128667564478605011712015747183191339505789726456485823225116740648281303946492413371018123081062493991599608159434820288666503012751479947022927540952894828598726588827020842591517870797443078272782833459100677449681670953762329079498029222884326189831286216090226318737855558573026391852083560419091425174418244993078463750657473031464216039940731862901850179274021077725776819413517524829012302269927865575643434723271107959174225230074996729436761362559665821371099801860986611228172392482749723506239435974255107941321851889300542900342778723324557109725724726016640160176516241999914179450148391131283199399182326516156793882425618839263396942485095773239680013998979661492466574813770174391225135593949120496633024119124504128501131039262672216211501099520176035224579302139447902931384123818301192303910803246414812737046043633602644051266487438794179348463715717874918022208993835661711183641924347971608580058624137290130780272291548090527505206084186921786800459146161313970869129411733491238550898342568879792277288682490960406238367657336118679430443834939287308713534705006880586907303265595185106777475861478360269186689720563508464874233154960102009204709293037482526257964338611119269760119770572873236653714415700800601781643109167092950507588019478579925928272139421819388808346424992679900297664662624725618682897349116393394919636530278666426084021697934872734630958828290881949703526906783485318010830973063209237944283916783772048726511616805498899467466656754068064474831878837711961481904303478827124140898612817651089575478296735812418269748789877049897507682186656331949445839735964793627263425364262600069663274469675650130619823424114866321851173014287643251678085055408929567766297103435960217176482662263097162606497352040329693605183835537064999785627757706171075656337093311784415482403474506154869597203925640639824321588320557024595630235266530319161892164160487353345576678448446846683648135561354010357339474251927348725201145361284523739743416644440568193309508900538546319316479656610956440967197894798886720557147688425664286143388623192953750694087851423207463927730254866227552424875884315473117554011412431056341122965534937673875113963339239916343189674562166581171112428449490062604304584673486044551170824144934995917527366107285499277106951880100238231263545745994567062302425976230604088206651587335937844472115547759083971722300715658633742302386795641154865417105088445079145024312622965893653213209067443152247037688371310606235538159532997728474727325816833250548369511940067474625044169578588380801316175906279840213438258899308472893943349588891455180911368609995370427065043410475480500239031593272517321910406228727674293613662551633571033794288810639757686978824173953221072236367903755763025889195866661023423447286186870265831601228115340739687234145288374917073417973608967093082943647716856986227049463954293447789143302027160723378474443291860749539487128890504007548750918149881033553275546426821057119778092540106796090587586496756483989888049496100741709244960070198982589315002353848397673132843464314909242563040590501150269696266517442726009357859879849086132155182280908600947620824343387712562805944680978763257737845171347227108167190135197104203518212218504778597858257530282476367083946816665331795893254585839105736392056710759301072461480031736148263342529629173410547333546845952372361613193290371826765770371701608222540871163627362267453144783696234805220736199885693214774003857666662502474895596671110525363792929965376757589916549095837669545237663355552930287518874396274167121940778803595597182764688948835503319052944045140728554095889931712618027494628502405908503942873599070783789181479826841583618394741584927672844322529203320739892862409139423482215450933974875634363099115854164771776557410931363371192704239692277915966183257592590060723041371348858834340767516507294308487853461029663067289749700344825208575119105224815182790168529689370307426355721826888236802112491840763898457839206607056804937923411970146469422319247308736291917157204180926427454616195288576132668870126154521342529170458837173540642770104505737465715409141041701210805763373267872188527651704276719720921557126453767421221430598334289340108682426680089298277021383004830679394677790187433712989599144705498893607372328249612465620623659741202961277603766732800093526225207991976369989971637284994361207212578008654015176260862040638039689983721198598810946868356516567949561656953207642334275754582039882367050238332230099897568232198152030619317052275538981920964271772645691766834324057969777173404696026144425489046304882113879756639097264403316221800707299098539369710405643774977252391280337218811602200968739937611514230262256073640080476717501445588094320928027895203669787727600119820810083682593964855017386100397368105220176686651522215513473183139760334289155723286925757110615785928808172153963653520778958892285768593674819096223860580522266287930646001862007856732523987108854793029700029973367928952735345704355968722920009441437725433620293397983387929641705096744841833708522066759925371421887798071148280513156099936065851777499364887048879413155114911548944418603163640338755746068696518867454275862199298821628582198031027324882703806398506045936418493118313058542147891734982606769139813809287314891460801334089144628300363609471630574106701118222843391289521385208300301608314053212893534079314635255993131830722692637183998337461019939293049851918572206698559840464083872554312103854768276252296387714628178864297768477762213681608373201849767153878314313995798341130260909669019455457959561055420945395107076215735334135292358280689644288300814630450760990791007543824764774509150045516451340867346580264253697719730085262061591198619694869000945674294984035252046208512820358890186749703641011177403333441669143331484745776158782004840819105937342833266284526396604261115819781004886742520983485452853683088620842850165918801024176774308280606939173478418430867367064769193249720013277188633771157008460461729304747218107042016631334842925113628722575444356184271108249289762591974455876054215863409976539365727608291029745169174795128998646323378008306746539481278110148068876851920857890712258744629038019964297724640830992934743826198370788876156176305106120775520734963230414502888397882822208639577527664901560308046977908000459909840585681674935998077461051306265706304733274227280576366213434038939867959400232752457463924834172281561690669083424720448679007770639077393855872021365994895680243392036494525241844805087915664810676397893380224214046443909556605509574817499148187621424137915261696542513093633681224840860764821722806847659525502647683041102211196671042300336738073947350497270138498747947462054928869564819894558579117615459281513770247884081813948756869922665766746391020247997669589330428412680483276867143953779291610421688974901247222263028738951911152678382710973413576685720384275911095716386550670678271082629837513341340489982136433690742927344405435710132908495367800538528016700542317396821659148906842259727756107705051907635350511154522232419209363958347695660349500113883252839068814108084851212102653884144900389080295497414739953528655510845188528603972811999023040508132166675284544829717358229855816993265739784120602543493032845059219533463563237069214729468973641532052883616380675571602486494349986513243151258887209768972300410323178856807861608975265722818478785578788855681675037639498822494143456165233666244717771316993268495186260146881121395246129043593348145504868938494252612906361191968981316237892965949497437623187449192651179021925083101336731701007521076855326582591710977879764234913267295087938496794565863747295678702532202524433112628150320929854082367022066752609783726120116344936088834301023388857483985695291920827731544053761369340729074597868672032124239631956701542376231444009935674525356269494840618313075904005687418397951466780948408419993755177362764271361172161204435242919693947372391006197377297339740727337544644323835282993450747263100230704526963099580381037728737593145832187173574940269085342587583688517032150653012155203162080413435616147091420119909113452512822084171009250626333748202992390095803566856112172746101923623727794870286833759349855007413358389415948221531381842882482610177272764987377276603662952623196775516466889151174447332017693885626984559449717633524655950379520579434394643040557661803513375567899251943538201608752673266313171435897186501033562192659169356532540616858629213332060439176409607224796104699844039761600827024963611436789648996123034638037880385561662161500815320548568432522781848872599628849349336959885572791558028096604640524158914420349241765599842992660192155989033875411963103386523731777199856276632328432603697810300509118848677987742187314392612252262236290595908233539570018032121181500312503285131366731682918877697681662618894980455091063592694498383794126596349497961835907856731699923194123528300232217361083347702348596301021340337607967509857460989331449254938811011231802857967144933195658147421582418594180621358310184589220912243739010346230604368412037676194084344947134471556954366283590128498038650685868375069588916735156211832661637700824143415412115308386046683420600429946835888033041570218081249934491820450432857649194488977669760396237635484047063980613757455041663246833558357086305825632686561244409780226175212993801001775013693990275260353856024558963901005299972445690991231739874911768114374771783228100618104940843874344678828212386292751062791305179454161883813839944544312930425340188997564627793671259317096542244186219468210543862913127460794650842763089738638960567485302200788592934297321910487557266469575068360362950885684555855992942593570470847622070761420195310699042435783207180205262725597118239994500221576063233119247826541601634435193496529754306775186064669137890914149118420293856343747023698639845522902145731950870957543410755533265120009283175613914183936465002419560035621182774951919924727110170299594415275212389090960490226394982655693850801529090886044335702696006190220564109875102343061691316012785241331265359337017270452656160809320358830522754771079831645276508957391043502438220805374535252411615724537381637292933836547598600571844257705283456575406420308239530624047759609239465823937256212688216057556986660099574927563617092157370951977290200377416741556366005804492390313058602957420505668380508427580859684559660796388671905635243309902926990456465265778003184360477791282086113073926896380489086836512792092240320326997475685389614149149749090562751263707911475957587028673743302674595272234897760944673553735896391135544538913658897215410152351511467738004589978670947429749948358852640924902680187201752460460503071329032232199840188123154723851722095400465899403133899590550563142026068087244745916157936323876159763855946504238985761007402250738519287852419854439454684627160624488757893793517003535890736468768092325257921008647048149877759688478127436173441658942878597950878590629985476826626274226957967971634825686561428753378957372070535846558223435877378037883853337022138749723505592108859382968310706210534489481694578350821266726430179170345338013869178673338442882120005900878108365863599392447694255089915025130399783582115363296745504511814543714296875281514658840651964346614975534451197361419295126061679772346593378342299295892601376498934756422116668117002007060154918188937217591723022957483808846788822671348927254139028495524320832512051547667470308731375280575253865063555022403460273282581038089104427520915565267582769934511571170071387175826467684455720223461022232437180450265863289570164536964321706482782737922890748959011360341661584504832143892111889879781401314896661566316937414862892763475305656974179130436342323460710896756911050782481832143843448840617665033223408603486793851184543803019467230085037197370896629133254928160626666912236909974323548739466003889982062228746581970541542643332246108128021672892173243783288473493270153752366098346176826724028456803867104314366429659271891215911449096583246382133402200951022737136853404405478519913743818532547815787567660370745085793510717542630823735030936909563931829775339616776717536093854991436895840804528870916194717346522452212549515290308245616405084957590620676796055061918341346131950018304299897733714383727432203666048994906226247838322630415727871484414708152854883075618537237651721290086541811505010954611913654673107085480002405179369794944451931370662375952759970984120497645930841060963880538294021022334971100576966703525637118572293915433622323433115453260282235204196413249562383979638239808759545272107272480372351099220024920879478608994456322995249190757940380289150310955598957708934817312061969581498111947240061924073672814154261231200844546113795670034119736342575981767150844726641695367790596791284862799003120835585508388844825969233735031766907504859262668774973672161604105807550554203906122411198485262547232611820807651809074030895939002733431872869406084657890388057976650760971588053267150172364094306398960134229335403923804043908530636782024395129705829887974825277060897886624403736005687993072230022348151793554139990812780166987421475882515022275640786296516923656465984239679877500555434890529887623239606803546006977426665090714624290617416428947430632295957466276498857854156593564333493563664507351600946515618948957246348208894751301798654327298733817982252771244019495124554867976753608139718149771810579653810349677899725354005693333328432629372009694402173735403658720101706246040781757291072117258262781446094324223884020610048680179438589575435885864066245235031019842222349809935387405089201174789969143504237667383575273546931893608216016110415191007607573522202773823672500814440070683281065337231845093329296617333389199998210283602790417276759510509731020561748911297477936793733164048307301570897412642015764186075978887542066925189838414559866297631392129664576025963920523054804394101881822239249061056992221156817596953474836403212254766887257614835213259344614797698550665549453595399664756462207928216894571697218028707993636594471351724711562717106132967797973153165749205015942657852823557423787709541436158203029607295056582466285427627418820397203893390920952711846547234787385686578301349718930985615325585108757231785436168282193815715531099967546919480009897546541136007828841475936651330375791794241550996781699663709395599826816137946890383579789450875960143072151151438050439905646246487462774697946930065858942710689637647479144324597134764061591463537348908918412778981398317149166212267879674381152450616548564440625256840311814837576553788244280467357853770468987025302353166210579347457781175236559608371345604439558634284368853827281019674633913757190981776428733515476805797764446084878344232329736826804681524706412838434292385570782470658250937591045309582919824839132033614935558883503571432529803692553421159115582971165603503257073506074075633417265450566711297761695013591644089647978113448577395288983942628584010638895219867509893839059110329581899684371665939622237959123412584746804032157000612076960432759627392438110006301826348791743716411542292683431595919295729214172310769284250429008410078174170597157962231910420296598223475476039834644729643736766705115267939779437351795088658213399398016892728655922533600474514450552114637906484989713061884899818044699782472639505574273784043461910172431490906813007254722170041567636276417996989299414274889619354169452840960335839918526880067001612705062947483206073091031001457421350697097013370849964012385354866513701713543092211404441342193100723175569920439671338650089827489593002219342895905152449386584356447432509976677638449372242897973348606293671080232593437758240584676810070422892481610206133346676446108008817891392809023648926175837626467828599044626044677162914264324940215635104898857338994413775967386358991883095172911025898898466896968611467407343906508239580546768322427101943228548788398794781112968892524958128788404464247304018823836667811294018002451185067902904169247010025147625915769158491593282652632327845382149062394622119370769860564206980354730464844514380780037141822902025281094484092727584148332911803336369226919735112959500380209514031323882479646905836203360589144001946174784438925018329626428673096409815168112263292169142162140961655014680004705385726546747408834360393762130203496098126580443836017352196809319255305543740797336471755032744084723225252977421115822747163971667350580264319366818597282320522698248169264402686157733562171757016568895219868428112804044187690854851549290811697712531598060275321909171233824639793307363793196833732954629336497445158188082724966026838529399055727430766352805361412026004302687770960563367004876578570681316965216493132336408099081058799595234587220934375466275769375323777711463607301652728897957584690979535065972625560183906236648311794227171342576462209948375375739513737354545839483435010112653779386784625521348648704014438648590908852760861322555255848398909057631599697093545231107788797896578803366464810026006709745892481553151151474378952413413330046153705437789171297351018090357882920301956419263393299350608597043956388617082710517654645058356070117006975558930512663318453763615237065026126605398222399489011744193540322347894893341365947021009612393787503506779445168152201838765838007941434165098418245533967336157138833974969005515854439705657863295546591685593875425670829651812185474164727242450813219376623771828866364136654960979688777439668406593079114053860567809583857829949894492521665834079647300762883957969469297635494637014163378613573353337230789026506450692557247340702559896113687200821102135851944825476256855270528357748735649887758642674430380144327049402686793307750370993698823703716265168885526263217035132623931453880960210858792229606718737672460731139183187090076594262878950451875527450658808299048517397155895552624302609148667013483812359055448760995750749133224051164803193721847911153819684113814165004053087583185321100145960304624325947833718051692221075343119547500392537345644345938160421026753080454057570768341948722328907874150690431883765495277514988939748989339147868755080592634401262004132816797403250708967371860641191469064699746718718896790617234938927955204827654300056159582722198253783022850394782328941877485887907928665827858613560446635467849208156025740547826169351132389292144016752105704996716879236108070783589020021167193328220590859740546932733069789931353607156105474040896676845670195237115183188810544441621816160547430780052668340248240707939419737516496984171165603174576338564234744854441785707336484091054868527640393710399927454501897299630947400475776606799428657670660505593803263624429810544815845439317088176767872919986616507247775863430132951218167146759425981160483491471111086384645819762776336917998250075608591600077464447396999555382389248100031009744871089945678136959573391006245635092430501894097658068959906668820784842580701855476602891190072691297105298577718103583569736857093445754037079264106829203301728996551046967173426658149153618563282642529516683276587190083263939400217655614274133613753345135084614127675881854263440017648051485793392249659411349843427958875236988440621170459318264367187781041552116527006608921834847598281548524748905325017308876548094984996885137614992137807674739346322235792212990172460690114296011137460295721905934434753092977536155459530883731110681135746125213388923909579903384102081197594476038951128251180781670015658187121020808773967752086127175387301115182758935448981764634990798735565891843039258047264904804959665111389898291245089833898022898713355093153352592136239286169068472825210784767304801834531326199328035163369321099463575977632683186852385809325912668077252723888960240534966938333533709600490732759459449822569911648297391977494722630429422386631797862435100256898283511618882810113194880827936974548859838366828819924411631215263523567252464381528076900551628250183289587178661986616533673623016179089865316026175247593434110617729201306102246990597818003531697166903772896340473794347927959959499239098408233119505631073380792290393027801690693174098730475321515376742424194683260270592090028725858398790560722333245976644726171763488615121765978144493058671033407896225470626012936627920160248887576828475624285939134646520283150883447211354650321715097833511343122576304156793391178075176408502905851345948810125662589660115731355883783041440761383782987629729460846460517874387220660125918332301603496139462049110823632789906150486075616753187613923472521186748332242305705142620245874893684438322532387060933872531408595220248178039834077611040840421827357186472552598970696421456222714214040822085769980165368092778174281860608495792606018653542401340345441305370591133403408131508030656756893555453493452921642080050841881219991979692389700044880339558069822918022844635397209781197725210138583288882929137703513861175415367999340691514413638390485633048571975411892869215345989592056374972647634681627494246346479806076787296822470966171082994598678170585465936559513825779470445750922491744558500225478897179183522247913798096365316726660738770242440142733616396481984586930464074818205252953151730967587414612740828717545154031290262297707055900136593654415906881348593156299257087240001549448354001984018687329448629828589225493464002611118702792325461797489333132119356944075642752806708916140094056939573835653839586598236115277336151655117065774559546041461253822647280898697302494430235498002710098981686695437343227030663328775513651348426007619773563372131330542398379721366483742923697123938468808847892022100084950884552483598171636576950025717937587190779182704664114621672161700081566651137738168534521809337771225155386240581803888177875199915752391410649778642762331568152606552037105865558014487865653968878042700446551655548847826318756018946828766132404918349552957882203894748100612572864838135460461130888359370968304634483497547312352744275939600552978872936760639743724971356627418943214898239433886244354333481001856766652227937838301802780082894947127845836183678400716790469072208858799777914233106147558393366043691279750298381435047991502404945878315264870098374087372868977849668110292848060956549552540711263633916573693228449716815343183282290142564960321772930465926474444077471393948883076911885215569442025854429008126691712203591511803898506820947917087911695565433975707448057955327834249366550539907185946706901623392880296946556139819549035764281918891915995080969392240820936656565142404134900223336728425658113385771780010253128831033080941486219926736214354058882879474044693447054919466834180685964833730464096628991838897477680183424430524151146701855505465507042447173551671859583542137587293583973964703614454661062058687971165823155853958309703983844599728264522316747138849506532525260952254832403893013274820429653390758094859835870307117258782792214244461273727320948052532352851958712872499701893133079072048455813513996687453937898824779897255464755422822905207387794642045691704833664665056151722325626153781318638425194741434348242443259045320504281970241194645180392713859183096474188798968457395236614636048910874493266613531780415468811993893996697226438305847320441614326653375857095872968973326139573200073068588078008234932562756527148325866522713632856473778397983201655952921123116133454865775474514470457889166323357906068501740689763859031334349726058711058252464550574944973646641416792937812883131542736118530090498661386280413430594522446552759661093660058303657506988148188270440029212972449690211147442216166834297533825349619449396658955961483688470417900708198454434934670008705895713275607155102037769792349330719980660487536076881781961605524396583826214754959778279213784216950084921699423772448385484053874469980236803143865225405043572937730167590257702878731654381576693491426827184673157208810163799945037368642274994011868257297513647152517635211361924103056525223467130973856076267556172189019784035513662741286992251908577805007220487279379573701108719147226754389731416418191169890675986813888464241942324969268555563967344477156701716014658569369924013696055989989738455223861880855231439007360266385184852924073680683873882182753773280993494889083937212612293084329959912806665166964590570996743571607949500911847855399277987676914642526594103309005455878779753931858113373647610493109600008903960326845266330727251515954486093596791297268635711705172115684565015340051329040420757997307663068617424532522787334677015437943703059075337093438736942290011378092540370877480659651471687077807172115655085500007711982659453377832897560045617241351459657457401949899849279939559193590924202165103869522472982948690894837034795571037365099221585708196134581387641481002092649212160279730311024470282860820154304524211960442042785950320881996184803286366743201718008949366409306148809324070180876958438719746883773786685515086353341765666679814777700725715424228410006927028749495664270226295899534091462065250762836481212693392819658487302480472316709240653915996607167659584713753149693479708809604205789969346634240362219198859252885697255306852480307082112115011503441974456952902878790091085703658295174799147334206342037243326208045635740944913408039400009884048770151803359252733737971078751865548699218692732694845859258419469865061284826934081074826495242915127027918865798314780606696539700705626612020152731161682437676680072726856524208624071862478784285051217788064091889410387280533532609852446798932194377476721930036696961900176244988770857291575800782313991462217431435235150861269921222233325237355608001402963149696321383899315197025610360000677508063513358874876207016016057898999576399805814683393534473015493877288433843017052012451396565392299871341170494131928159759168510387276417199145697439945999673159792525348475402422036921227589040121541221514618453810499057935187649933659938609998338130138689857775099957289941527969036004737933347831436748430110875608563707234212381319041286309269983863041605627251348691179495365391078343299352658152270092444173959755180369495611300186173775682382649690343101449851783249404743854416686628335492665594495262504595224905773296582476233215902570872388888258677922160384385885154090685840456426970372764242592550166804912639907321078129911368802513768908289692703280711809519594176968319814900904459515190090676870021258895559038740916346652283787887956291515722304752407904134105842713477390002261956660005562181710548448658255309258071281979048191607422069846970819566409436919703981422306856674955997843074484560773075020195817543321603481454313996035485919452001070794543554736886332513252507189596731610146987616894508142575680285723782363492400777077981695886012232129034746388654523799538610062594138197921743795067904068044258541768329820646323468012340472448349272830006900083682260762763861038972132121732266788986055665936237617488617580848348024999045179208294064621688221314409636594769482888413974777884457164454443477973549599598897536393649576678335621800018401760782559281499716951112100887238774783197654655204539577947717896927257028907070478769501137797581200488287446200865044168354186226657592598999244262804859819540921128129688376328218118102460948408413144160618768063859700041761903065695460556059032344403046884648306200974893421773738901729336059733676993867361563057136106607262584962484298992409758935712143154305790624445881218491206097926136403973867697712365483993108684390065100684086372134474544309974608851272417125901518888171080267997039044921906778957654508695862452812297815777372728538790209765699765751079841895534231517941001318450778748785363849351631804538686202546682359367382008473973304667524629093922508355762556593459444597536281065501968850886495662961636116039510642442829751205120634714006605984330312201656613537138667496872199551675328399609400157843871069965538195598967811494160627320492812690661798652830808517112924037867728273144541172409811249173953575512385394697727156779163348530178115827456417322450221639277181140940742682182688205831519151520894745595405338096088763045976501540854400958060648959515820145793738723791559404715100770814770670488553704499726120095313103291799168752974529933881742373882438438447679968434293762379533590981966748632265792679869986679680983127639276728278516478587307386294636381454791920442360933679240073687199797673196767560266919100343923674485902111572231169272172454507681067646107093283926605112991379894400831753374918717415733891500389267147234992830643673360134182848091088613583348296307425087593155149244436303734594351142790415211522325838085311468180966704652486869165123448533661277978680240224421918613188375314327114366667500618997525364551570764798467328772413193686340944147203512825319657868016961034152582946592447629795042280925474766120831930731847046549398470275307369384684799837909397910810678871241544483958501998471706231886416697808556216857433633119414755503674242857085625635167235114354994424267414742105498906527535918837930671894445182504800409040667043502449108774502812057630606548936587960713141484406193603622139810651816793396527668022729944855176380347955791276683012429353801151275045835720913167585355037608304653061306294757849851481015454709332802864300634829638217655088024277010595165492390658621034284295959836589294253645761916578164200622895353031955541414573331230560331382381983090508379451009056452958832397417740156811131847903744102454866165054803726170015938863464545421539580801925615461405010926342368977636636572560904068651996723866732013168945159549785128238930088569274516132131869647910627448371674050999249576071893241387869848149260196419347510612340115636700209192233295449635897644831611174108876437040714994146623078607765083677270760530332257581683361465061300459222123686969631462237714440240825054504292177367492403778551733088561184071265122909453935497530235755800324378076114556844540326320003047696597743446573361850067718370950489261046838898713342036456542172088449153913073038518350131711645678341425538305338730630740521573400623477661583603537295467198924401225023568655439870698000874798595359066271114646375600216130885456390887704628950122019723815210970306378118039684035289834546732680955822815235073127787068961558773052614479078092161881629272066703062383779140564465726671081743381155379569864843484569322051925063898987934906353281534306819748335873231512922969851797640235483522881345739193908382358207733417309027259308551035749811850102178959195841070148898846353830886809560390301659914939736589690897525900859633962120719289366795415846301376074822471804218467078974470023285167296038927717910887370420940795553566365025948742099783233404205928110186199410708330851813563551191512591194262729893541030011392323307913278610860801160932982177289273658325442267271125799758948256045115901912478502813012633866586309451332612215407369581925853263658097776077115269082201138493297665088824030893515302617943872365227730410393369065218342923826655727760650190695261966924993890742193480066882361254519986697635031886960974194349864292115322603205170230025751875844810023509265427941210268788762859272940939446153590560724334221304281803366332798775871632915878649319681884573362867044709231746141637956187560481456158206919832541366452209907568703849836646637133391080170310935715700675547412727361007946528233302296261248171636590150032561819189641826293675787872015149890478793500919799353887724281310531093098399707626373010930762023848088304465427520527861633232876448513524987425317812057677900707781610962657353977029959700789202822607071458108169250567254024105861914062250420940871135830360447744083925283669611009416830595624170340154897530120810166693567406061856809777906863970724839678983370008704844024711465189064590712848534380253098420152441532941132594463955079169961820435584210578543116104759047001839026014832598826370169322748453270531272245150454594984555365114408880263638761330890407736745604164869360604666263242139381408291018969713026689021237506514534716384794502289466898721365891085248854835689017330978946416652497820115337008120734472846803875551718975194284160657116120849456956493312189633874510103320516390275626060222240864738854133415400355632224960619074699755575031690804205285656261761421902150629346191879486595760017976081252485771740098189317646815345207080064850054068310915873869953166922775894388789243612423954216474454657881461359256075430023656335078864286378546435363022772780129504729254504986918443335359744773178711443376587796825790825724710514782384505496511978826214216064996907278245614054321822346657302613753720264734056445949900080238933616477107631194408190560348401234270099949138002129185165046135028045318510934905982420167218657453458882860892583466946866844519119888075285902664058539694515124250398720635327303560276565372635569529071042219505926622935353919562123088294614249547454234769746383049751630560179455748001852812437061984496775833076901810816405932025702443850086453525510069826984157610367950076861952422697609862013379268388275693883215541409901092404419181097205194421479541025827443688548935238700319311086629567241798233109604307344838484981558989221916178822272569272492383977587648429656751017752052619180339405955884940270414319276815086273814200020376085015675098597209508883951081834389778147041269468023429343749523929855055136977081028750684477223501828218797279572167194402390733212202932921702424408748235609728190750121352321202492871427416310551649301335701439108506417572960855873852296665514995568721078830194388989928449851860449646545396707480112356131296134054942857855528295133848277488511012179367822569933628468775090488613465444134213684598362701582490575733450722731408948372243236103529261501987017042859904691845212224553595113526165813447145929820357668372518945518694437422859514993346658725218017098536485145444390107834990164657845566275995770707299690290630360605495772869513660818591714130748374214137250699017411150019877422129013847428176852487827178355448519912534544734870814122659229092938922772047827720179905107391462867841546659242792438103059360862357011516651554334818282283045940433797008115900846699771106278236044637692230695124961132244525249226573212085463696539093448478942216820734439131955257217897817607138923385789569488434524621932698602538125856572453650902019368705323391183450849086233787551864122435669816855977207743259778671268147684861472838104883031774221688379772598990163087102708305083578093124667703509952820028591053749710491875991174170234762796902344212031462563347143388875215638760447099749126078153149295678523119236910418757916860470869211864059999620088681825850035123147296432784325204518020161462070261173287884543255319145910889996628669053662224038719337666894172721747640274106388247118309450829902049024263301529680394448757972658949777613637512401712886375892205781753061706253609326987757702836932279674760886908085321962732908025708617790539991299849483189483569393304030060762007052189496512380729220679182990449338364285194449378053859384027399606688729831244784110246032054217672364064295030244269966816358802630458486221843388522881097814607673615005335433522749868125297074832322842576934677151244919649051242596043249216400272375856098047933774514048995788294494603219721818938649490902999177527486421185770708780167293231334066413544084913820356678235764212178843541818903576099204593206947075871121433393695282822478934333830498975459414655817227160566862571152018349571861209920123314481726860688229378140038160262794518762125034663600178508585849683325829052886601659158440838344922038457798352789492262951983327313644697597896135219855815573841539767168960048735301908856744112605081230454838708026633212356954048012985156328025647064147319562649501428073407907268378455671395660708802142272215875387737804690355210486538901445883797492456674014778579236542336798642555270996028134921643028161083419375180633971263130993664310111845526185281233809659363927871410427571473289624408069644681491102587029540999985886354498230105576132256110248279095419002655721968731996928341386214901644421508813899724348094478977597851263498333427690491561296981091302167872347627620581834645896822153643047148518210940932460941660749523834929883539393778742290108097710473500142610150398944082128011197931743919101037415528717563266359491563080887984193003399035212578253333412774261432458446617512227047551750859491778021201230567424504764849168269440208030147918590634878855606284140779172262365214922113320748344321045622347124859991014324886137039599468420345681342083392406580456590826407828973416034877276252163187305656713226813914978627313745601002452114200521239972809507989841297253229235468097167390815912021466941216474985953009235235622655788782565949717353138981662267175313831052751877052781316730592536130799122344252299914614847959274095320852428071518361959681104395505291486858987998844328841968634672700830671238350859660957416926383153001303891677586803822864110535237069884315248425253993901785414367362983267689097391391330077785017531061840611670116569251691051943314252590514406901925632707657932359006322464622299291160136180811901947440262930985310445188034028510952020451843857571647861500317258281486088461521061680872764846482027226111835358695239698458455247664166597317542500507976597008199810097552795555447410550320179163109595961176184136752344252142107860689669135585149281833656817594921236844715477096999884001275366842286653989359753003134664400693579865446137624313367375548300161759139450429321547302286021983805139210422362986544170416895166591398031218374023472190102253327371533453446312983417008477398621090464001323221109178102654184564910992895574872035464371280349599199695266739205571313168499563101243607719636948809709701885060765485390447413667470264867606735419017362342712851111650712283235808631994895541580987446526983319158633317756244557588066581662221369096835466845366778965479874300800879810957446251372714907765297483294839510163182656441861083025461139325139395619151871080189866452470054697980829483164178075101524430678356957305912202075386209635402460145809813891027884645043365897488943398261685318537898156539406776654722474178892678195908164010496356104342081693314908116505319188269639406809402853422554522723296168882840682278967336349293777658300014292056521250001474315242182097286788989694811292056688916883704859104102097950833873919555930674236267384182628218225858183810978748046432385571907354986605407943552543830924843513298500157131545013328944869120485875483325904951114243078090478979348964436985712672263823827039885900352080424339516602712687160111848780219130461893984050875814401268618115582461802020615523739978835376203941184818312654541365815706929258599046746954623502041609341053310212326413267291630978826935864292204079966425187810018532236023353203915110882396990934209874784780026677386329685221613490331056185358214119875071471751740788109398827179933883541467177836621233773977989814419657719950861147534006398501156697541300785201601675772753156914709054848165687612515350552293272879229573781190093208683690055549710417457458968301166251742062607112594713370353869424055995040583519792697218656521954153350456515052328517188993613244964645072654949848000183220995406040240584452525320589983502961691215447416285673963599518737118430663559352430948953130432914522370547980997295896761904789435444953424541146457134726395887923102095158590235223748224992728426506955494679493908213265717594299533044970748855754838359585914890548159693777672793138780449997163921270814983784541843174270815394121105321645054420867916431854387974636767178188130457801745289378428118281447518909000838868978015180158331396957949315086969523894429878840754031633631961818624751402435858442432695142904255375009187551192174150761651032488563089884982995881348466901268833205754562994876594768123400308498630778742923702118689204367170614538194655791682890493107310051281774569650667948309378265789647869717519933294264633147271002159075950543606829306755182717624226823296563990560893765149807335194539003682891488500170293544301331317507215879461698842820146326005328022070225868828333105491942820475769400758508072195953615867843285563741458139142170759581934758695784767961006146547419943133327080907161271557806099409616266818881905665463895194405926165567107290994446640434634295879422827749893273907540220189883352432533549790086420082199051224673264669388859490602829179346000172260963588638996761105396449750832735384291276132343822005876636181834945668982565493363744433141983549566291668811766786915251358673406799867109642316843380638071203259929707528135678753246530888079730106594956992524935503081353648433650860172088633863425250925953223200381085339807234620609141149909319585532039095571904787356029622479707193326751535736485451719282569563960308541335417824127826310679525097700411789697564896407373800657720760064229813567779930501320047353094131798268742699103727656780389257684049746669152844786724893840720829517659982215116093172714532108080770301295463528075532208888154747098463767856269648293218664840720661411772877667689381634691312319124013350092541180871431969672682903932276638653140619154175061941789215190011068778692496035183629729934459626357195422666239976013978604963076004594863432846904435672064847043559029855492082451292129015613394753846535137084668712625776257740576498396576738876383258825306206264712953230296001193973649071537258628798454051533742262593255484007062287139003736564216529137542279683826872852844843839045222667903924116057832013600888210832899350678614781128145769595582760511447847329825372003231974302171626016646723232198611389115011446120303328444802913078666792444428526022957450735495782819542030621146754491435146271449325287547367930977131009818469508469251563113552215552391410564784459478848139319559804478692522851912055044394478382442191676204965186092673079114319382667434677779023314004879428386344560411188273302371270506794701683174285776904750842588635864843941162445244736465396059782610364577332605021051885105281720422255727849723366883069252476376910506316488168176239403320399028544099536214454661263571980130150710095944289260331744877036697145353243147074942554850278646195886110304498166921614445564167512005628459986825191442989253283049084486378888948176170660062200377277001428861368213510815121833917206320516508790266296538280474624261113778413563760386851302291714374110249055677123614214465141796434609562297248101833698194023540141290699143675203497051483705005803513708334384334407017975973820651607364019147270984527882259787107255504145084601761430062850320154374591195925810745835546079445133933085102070834674949890420248960474633063497532783400631021391496926114721935348138768430204848119977092668046836609454669024994463449995848033789455685093778427885671044781452499225390115165315114033289478155386183768225092296047733825874847432555321611620171381381567445870326560504164733753141850036946150428150532649539460634005260315662090816248150291338794005873961040854556036667755615040579988521336819070902150063106636841483012813519411364422166974271912921234951218058441185037381740375114055951075373699992791568570604512726313405800552924585769782274126592948321501357045027023917720841884293393508907567081181457259682088097569838485763410692473465237381498698835969640161416968515221240995553974026213756707243907125332613057603972263827887298785461070915775750777375354272382447086176235839788526217645471706891816584912198537758102636176181128311655274584814329201471812476908211973073756072786311806393849160695924514070603576084956798131232376231126477551967290648006077134643034219701065570315883201380714314062842516294356665994031967527580491797972339588104309872476726018195241395374474822108773865086110047149563781332329393812537151420159881989492765315270202490812607028122695826839852564676635541230534147760641102856895925271326743550140600097922128189960401608984532424483840045861281810043612784821447879209085860547259593630313992599738790493526686135263123436504703041346550481191411090920622955170946856787536055000471147587160393761349983415660975653656715352737912309437497738913978861346794120071757309292560503585290038934295857391018629854473017203490732690629848348794456492558975885312154640075790704732445428616440923426260268803970598132685709784591570307341388990205389521934371301340250170382322588817527257813088448508773191433642393642674808202069624317871405449689324217159474796187932767360375809361662631578406832394055029390660442202241166183493937431155680206116143431306424393614139237791846210138235271720630616642591464212513810086568961369419231104073478624632792218895170977558098988394468022446423274602787118959488719298005293946022191854126028461459286101936942728560803362294378538134555481849842789725161467895200173672210623432567693775098217512048281112274497397873055762544939959218452305870957816467435870599106209964386672481041434807682038407128608755010201542686149899460565791631121684510881864337613713013496919554378259523525618934590924332233069262883583955880774493693920050805895573479459205800960037080247754119912799232269431100310089076216906652739800578254231195712689840788621536654117645971130198985186730657728541993502460051027141204095500524493260203385891798586576454821294499265569619776750668205374883803707041035238049069680070962657858303171281344260359618031632491596666744369010299755236738032426511328717883847429297439423722604457317501745323337743976549374403077445412241504948753825035678625536471658841022238789029058052019110973039938391740156663780924469599265654232293475969010768022071376127314320377814204338148848190270417559713907399642695411930566671248589117649860146609187924684252580240749243611444813094966980090871567341678722269232994561992594860551839394091692823695032007898586188611463092839138106254602668010312079438702180720950740159922848618363976348302037114884444046959018985235451282970566797684080822781968479407239316758443469661007419297629974450275311618856125089907265550441731465559530167145081369320353659672129374341596031525959061781244335217258294513775145036540553492037431487599532127955485412154707228065228929140307311568765288664054489888444703170596391269898102244177826065616944562267387969971587352314151688880752115949492465752429649830975314766416573558514544588157645294370789973958562095956686751177109930606239119958756092332513621759774562844034858454243057390935212217397805689124301153805665113652354213729474148544228235858844442803473670366855682682438000440345035083964172821312671397797132335329950539374525374562549835046178885343102462737608273493707705707883563157669964161131216038191077129672907274353784496452444445291675294498489906991098008415301447977700458740121730711246253247858868274833588470780947454331404049554480015271105284910759659393984626753662745882715293678683920265652245101823931605842952987581823377401221179236025877125431034653522085084039594827460679714253633077137185321454843908568675989965838388495632782201438971621354703695244810367890841491618770056002676901084163167006350837651391011622465674153505160208170539319637017045269648393550208627471678091846455139434385769922053887506730702465078910191397373265792532667042691953017852592825944614351862098035783232670238620208944847158759790649438333220962385278886326844664759281942209863215519435418470001312835054481043356667975043471808393776665794865381896214166344151632835889209458506939901907640233237674347451978341010609128708470463509266639391820454855900881971347917041440692420082897063263787332940482639535573625872723687916739885090610669359271630638265622737386880764557278822092337374071971351880584552060158352704406454562528760219213633993672278230860721661931331035833729095280181756667621890590772863838590222961292651846116901546823908372523520897461745113381848938824717328154332777449013628616267923915428053548334558749990093371885450592491712748070274651663287096987653501980209158749785714360111916900259011756462813295503360373457586056444675165171763368715589779512002998529589506150374724846057475171801745301756148485174226691863626208924436648629853866089052201841380830055804034397715745618324587630891198105569724336917645636058893978016826875733907582497822865651196336596301307713089613071658021426212629931898635829293706598912177713655024226355379496965332624796772679505605951240422361735715372479478962575979707932298353608602745357887188084297744076275006836281315241718852348449987295855563341484338263042585226517400436584418725527491524031352917751978763173224161659962777355909911286814984258815268810918898954835250200401231145351232974770931948973244932881830224229712916911588432038515957090150391827921055101104732539259828352495988489982392735176041275570271479235979936173487687964151162249983828109196783565639781322327812260918454764047439782013025499481533191137294614229299217907938428242311383021280370278657523313663621382532005858439459096878301170220732254663717509389077629225393379601911819605951810152071110670017322700675126908250148811296056888696636848958463548453331873617350086069332213385490105966498523221319102559984612606916622601581049661709555354756694351450520322386892663777969405778753872075316484112930194049422089403677840416777416892994477667800105446649635175518103814331049966371647992791328724939543305419374701798247735566635237957387177372019496816334820156286563886341309881935651878119981406891558071741043608744807915284686945950007084821363899562222289035305388036481620650396724912872880318013290133691939994837795771498858332628866802457727761380279007211791823074533639724351881752836980168547328327987564509757902943286438971890090811216828332942844291411994215627685215843395177277156147914056062782131707571871498333825820310850947767734287943822252455520756704047471607058806631460564653913898205942129312939524031723037487266565628829812502262644533140550598017739398629101075714841193346700638100004247154933857382475852878223937607676657004412516030643038822005351346358901515127520984097364986231768392730020876304489216166562835441587653938905344218933910368167601053028928159171176822516204586236182663351975508543817858981730090694108903724852104836261558516766314378809819793452287313922785596510201258128766156605593112737399410466947285637219758331658788709587933906381548823357392337941528376510145919244940799375711190733415811428896321264485968156971842603964379260622867974876607534739487416681741554304827448996670273828201307522465026303053458535757421157116988947825741547296636388619734572235219849305462773869379393267836373635401485043577859798919723129014443138448707462919985663399457115794229905614248682923434611019610770774162321623422276268808175377813727614075307975434646668209893018757057910904329094383372614631088854280717359183996179343415140420519223021706687642543247832785550563313906041645134311110237331379370584319750501547005927956758109532943251238179038069918144941050011239801474894374584422716280986123088559960161118420713422529998797365338039237867997659957123426992238788732377000921129792610319718108847993614856504584819406028593886720247782425832011146708954909604752454335546665501724775658793011658841719328996722538393157262481794808044728902969764228549934852251225919139690934518736000315296930103114403938871338988608957278095878939082116676814848851035566557369720604083094813311056422489294452675676272854696613515378857231439888782567460861750008912321693923477799912964135883509205449986441688534131411798510226142264060467439318221399088300989935933602906694390205365181649931814469040252084668863602495951823162347576381060732793850082891515859068070368918451826806588186475787593439392777611720149042705798023407621987679793594051588196495795780127645641463701408775652027328397768428084988256073819508256606744052167379930474628407643849439902316017917881313694566518920189365674516167522699528278618946189297117454309471450295401456416579328350608852467675195519573430444282068661795747320793484456665438539347790931246587292164444241348503476385593082164321190987445095836929212535087311546327064500363236831976226926625327349902981438967458398138711478896230794753172995798042186372712004545825169947321301686546696709299485304477365878414849928635573695938749562595229674616655795755720697170294976615636229341014346728465422226817234167565884055344854797450736300730297339847468283463267961109721357000818191911997561384956729284409520623158494642518648146800941218521520246607958403728676812911811194437380786018544499683373522064519252944297867724460388073172114482344709409390009462805225293248496287369577095845130267964727843578690884817626775333696277134940290419072069410741743503692327150219497455825415291964522550546617263757593327754492485292898713884748592115006939287167608791695882108148354589081917539923653319972159302506900893673215249948250354056174804180639632563530037846857286208128513263522013808169117239645491776703233467042444273404474098380171891895265853309847916806317022741811342348041141595475366377206593745565913306361695319765074743306470506790339611952761312980855555468233091129164558831282283210149100605695667660781139432445220359036479000352780505236797404074423736100138273438670222078474229299832092021314582742718255407590364692666603049868872521568751161044873120875683502759896115003987122777968675340384665009208657707723385228838822437016085032029853832126219253573090840208551541297417496434477677432502154634113904786151919393511207672845058874349587429038080834815237050739952244866046005189914286387479957971459689809914976894100433150551429878835441593155762242501329865102139545279757820316107859510972976773435637977385266074811735109639056570932869669349772274177149466630305598049532403040874495208527626192063085388457404977853063942219653079184673728194455516891138400503848074681648604470300009736202975447894935297819913607192033190997617534835476210741415095435139320860040675714283905889241607997227184338813152346938594010147669165301671004176485988205555898681753368678421237540198297275964828400998318616841883533353152402978757280255672983316863183917324040598980810100911000228321590572759361857074229095233895925817175459827213468340697299904565518247542176027881871172283647833821141345456349041151486160085140726180432619730323147490106159921024533129833881130927837869428934365706527318431743975831536057338034409708582425522856121253807478025176956129459860052019916708963013882159828050261686375549986393137062968464748210558571087400305646210972369284135363184979151154311442017700209394495829578808099300582307035622042593334022362198478227422389577487130606176697832238700612021581809429099944921659900293873904806632216779214027247926602943197581876931260047973408133815504423576721988399770085718866434205243211339290629487960853077080268333694188413760882932681721429200482268813415358131784837310898942974258296069034033312575025546991237782858095360511123387141308799911611496113152248789360513943821346492388395255681323166483097859327974525943776183082517989771159646427835538499915729411057529450870081161369290791667094507021289130858754045159564278373760910985128296221625480739418143767714509036191822057811545746315669881973196589086103022041815989713368153155011136669912491989456542309787226103347329669868514605039661849382542001599129776923659078916810038126686269239283149625307297607592351281825753468357346596883609552516800487387565215851485791341045425582445525863817256071258744764112551925937656168859264111884620274209844648732025856198947081286009934404115601423204851083979306224710000525571989480478537358243408334135305185240079083116600279580254455338678647562802213935007189344701944667863843157752843723128023398233325942552359450429210711597556288270442725325969397827623548075159334795059911840604078405445170463891364297753520910344773801741893258418223595837921848083236221902069015248761449376546780114607750329226620242457192042695782013191913317987487913513838098715741447152831121820547426551908296768070100295215274146509405860325888709833269335217279584902432728323421468779986869969925851032886690725519998289892886567101551936867789899511873813421721523529889855135183637339773041346297422849866410988334290473704921439110614780332997331909369236412360222523737138274650570465051261082909574654240132498021795629337618257908562189797754509057110597979805648331587796445485261729637359321806615336902753832376010568068768023721149167735939632128964627772234926848290824539740395832156463527081515574118943888806624593297255682483594096722357021270366427497661652337747868551890531970443658590415276024543886768345855902328748554236615794297752662950442800162035685524723031483836449442506991949257741946556894740292879724482769611888037169867707929974922195064997146972233138992826654772673041757878317055876231705386277236148331305248845203505541256436627481995687844603959833939598486371668397981752175723044500657912971122927024396703442095123011143313668292094560820779533436856648854235315423811055658465387766159903530204614214783951701518819141030825844729283954869632058370143725697724828935705642055428108376448012252103917199316761090704768758004630695052351856675913192436650735972422199215608219540359666749515484385233992077509134625196378549631427366987684511044690428669120468175989111300659651611910669586705111336335465086403568099809246413928576517364774384198992967848095694859985939357826776411679991786294131377519102953392484286447193923235981001994466156741905627295751131348338552367797639251055848128742753091197181383852772636610092942480792791548048010563562064398071542690450986334817938816237874632390799285375610089020930925649278840944925877401350621564829669962160761691087089407299522096635884323756618270600384431821708406369693137141408657017452454184837466694934889402573278800432108433297094686120214934070877768587273866641681762096399740889462524467827097813748558017814839805082522663133302727649321700154462323482342196261437395828096397796559954731784047158665720163994134665096424466699501792727619966763711894927706135161573358847630207742051980756843665092606168575110244807826829929108322754556100229935002420207955741342687338169948010682747272054431348842676877373797290321969357772936070254047443683761080007995440753209506196680267331697725301631026639789368940644284690452746240097013951880117353640973163917129513411813190589558756170422979699122909870268392709759246819912702178666886655204797539435936110305676957073805659007338380019868677686746411367382741645695677075867194150290523763291805347503799026677866298318126728067511258173052553952687807483232153174359542204493233646799488646158847803017539671379369316142145946280381137879237430450376413475127003308106910657635719220330435441506731574888156972351343936955695054953508360799282152117671169484643962628994488183607500226308474443742142032021510986274146061192391987590602835671071607146442494983813691934584473049337486456868529352185339942820242782314491801929464940640416133642250280547463892362609808313329186242618041433961736542783199220905820821521097194214455512889817618935350207667551639929663000336643228568570913821569265998685456185153582715501665887383972758477744307181775251678469973604765589527684517425359422823006752390535565562467553957089223738033134040742874349586012924529114227247742684066096857898533304933546470342022013986936266525724719430613195069367293199334827363539221585642164708050569439015927642746818889038286269115220310632402351321382652586110112391143223502599263349116877669633646624426340535776507528204707090950318035851690007866541163507100411797150597561730355690156622708271609307700702554752376087184307189880368780889861976618166850233695820938452062894748877500254501224684811269586442964698428857557723236607653859626604445925898540178063631633586795569556343955363712622035838794835474049254212972424662753940458575257552082929701121013671481657942108449804873639853641633477644766433656937007933528445383008376528663174610685345602759607378433501295464665246987499362147685959192816599071150179607124665241551948647152634755650346826742288993844533850610401443856131437493977076601035699898528554125948719444019806500552951287880328372283926304595321930521327146854260934777902662460799356480753370335004083134805952830257297240268235795696108488152897765848441168925889768282621262635436689864854871420167825742799124648024887959250253265718423999335396036749014942789314099232426844212167857798801031229273249152604277187888074958701713336002298501035486802480247236585281256142616387952010528640288552665723772222450625206890816278317976105647363568848031943495172038545876607877992369648248945388642235748412945652371746620249740476222701419448563403951330139317824787247706859687303473147670898750632461411395016656894603907541661119817472817958039104243849398839247561886497121268497562704389957685205754161262468334520235170061340319237973857278474629814238610715594874911966220005834724148123852234680087716334767745503214248745588747895264686521784299777503756327336725502731385028129807266413419517766310084440120921986918311909126020276154949676283358871083869001118699565275265395615210561970191196590148011816482023010425039534792311292372583135615710085194418309846601963012908197862372282399540200534064284838289619139611241519104849557158143508263024388472893477606477156172644422350920829244910138108259374613333148107142208476787940035906699419001182723118409913296213619390043541111426425827963206465135709568500075697211288565648685221916471229313734433385312847687781421182719133985625746903380405798953273591562249660521045789445773187012269610913193312832039219213405550839693869510764469592033386895887142230011882659331448477948698232643243121278662087904129829033334324574890794452068045677807151816979267866726249423971651192763462121669277528087817521204559591099458860822985183993483315303127464263907438506046090802591562904972765759881801740160943638113514205006628705339764933271161612545290135410103114804732855212299359810444247265480885844748200432369388071725005590373105362718218497944262513048438327259618107133961976572508599664592132764398434027055545161284520319253547639715321087045363029080401600976095240202554413594109636230450835874983060815997187722540909871248716496499600088613063171807484590393270096199632333424656042115263652953333884135048529842218001278585077912838359560428641073872333473273419787135725006683391122872084812287469553362907543709584017408998042875159258960802118937425975469361015345557142713606278658022904404990509865573929439634858513227004401792492604127237279295489009741514195712980275033123804741062380021001414094736114491729337686461814277539218151656408242533244706515034363989323569193104955823680290415730539449239450392817564081938167897651621518289566739546058058652669194119339544439345701836617405812409332717725505064763548096511607025810605105279828404148398203281445171582187446576445831867373032092967758435138218297651479514504810990455298860793356871647334238886443872983581749372799103595977486423155952032910223998335085067799075045466150432028272385903137628080497869669547302836542056948268971189026778356239221387884967727839541657756275609688507096781287852484249462201423584513623238411331765714892555529910942196422915120838922799319105733532715305005909076404243106245790437487757045463336941417155315391910701753311043618625858398953185397195365777287607304769599053807405758590654926250583790507185546983578469716355513700952245086214242396904953252354630009070121752682103294579774729945692237319008070831906460670368936790982195364649641819407522875527349699413149792311474356418513060689866650835389084390653675521994772013325983850018429324218413132721867045102597371705263068621972686750510268387282159668721078298855629645898570025384466425816183613423421763843452136590632233017629443753372067161051612268735598145727859290053530327028420491392834499664809153809106177145806093811887634460435237731498433460355749260461294651723086321960695584514562043798649842217385882944922254826705335626700506881097467213844789114530910877397093089058293695807417660276361190374388943340109914493475845180087001912856906805258906566717929058512686804808077165495719486388455134498131579770888720108046717810825815379610588793942053637457851596894027587734564321991532595873525987944696903496790185512970115767781505664594059325879485982727647670513777833563455394186403075806590794923368782154000831887085982445591899416502903100907747415632056119278978493707640528092095454071745108268525007424656234613926717025319444155702696515318337938960808448835896356011324420106995728124973143876282812708477522062822032805001446083955252760082585081581758687133567694934906671271302958634034916419691838365347168950925354916788106415725373056489025215251694601784638013387083014879356670776031633241376462588079145542198613300785808052183506259259108504430458205737591564168412946459878811192299409902500934287007171210051137149580160657837824706840689536661903411622275733537345663542507374587270056435876626594390822595151358284297209106238530305389431260135707399797554113225975066572253101415430157923106968108339091986608079807708793181558363898669841233368242902260199990100510533583102992789233673307700805212242640151183881579735644162166238376791966515604364421237613033162201598242483020771663018648133709217588559008085751775280738926165144484103817086915990895630978475487024501602582457093551724097934591387304735748031972777604891640507106753676235219151174984489700896859282897324613329640404509373683675113503789913521937023747134862465770681346143862558639282676727393675200538007465414628064972203389327417879717021230346737456011383065234357905286901075859452400475272939243037613097062271148331371085640124911230711833735651440348252434886312116533734957111334016082205913236609982073189737735359107631196659472191899774573141577002889795064595224404336014821531912969333711184590325290320992558235755093775691145455389331019480708335211251327626989766043179095741160655780134945296446484787035825868555421543380160522466769715377990881381991882048189964226327092858617765273555467522591384483731667185970713117939039572978986209626237613163023924326198458767129501443112826370466283528204602898016393215832924117821403481798739277627984335157977266008142736429595240175651774377043234911852770017115913328209442181246689850727785194969438068598747753921866749936687878339226774771391951455066268103628054676946695725099991072240905897853350043328674713659856879550958686739665051455055781242490842413114986250737422413387888253205274547429765604542165111393980847571112124466093637198079268768910056018734473005063449137977537454381578620705706408805651708061046393579695898551407652486123894158168492207185564228869864886705809489777949632987757704884276157377405471083270356840176151811942992361870348263140545247661006214356280645340167766843872426235314107049818997334669169304684881912568872146242129724343452735026667527904149558050687450655360606415563455616487889121925377729185733752041898332178611086313870949313187238667339402068732800480576969538970149908781286739291598794102201597826433693796994448493457650468311400807862811864196782222848274010512825159188218527547304658317830423720789123539968161756299223647492726872341211073038772954516987952894502881178003688937764594891533309955947688027175889927686822174279491018335941045722695298225360669882043448561174831264013387701947172163938632734781914508573898439876331237056196588956695503837673724219587819571498160341158060883107523137468960704134310392669247770295367636742409263063128142241787417283767048494526831199876983224029275421391786913714044983266371375524313744727506525544777354211598768079550941539506102468308589936217821960060801320714074808204699485378775978195311526520011288987347236845314763890986662099638233621360654848016326403265504107805656961884311391257622499645728337041884225757991042614043570899290337094578386549305320751566286927174056009526781502995050845265229587459862988111247809660195985235897791027052940746029911262689306007619667188159713942328039804200730341727034425306248397515272291349650378738377389862012439180876306297856140383595514931361390592636642727841020065845415486248085821560972467223232494086310510486450149375707563035292045675702595241653923395274053867426374953489557167064345584372442188416229232938026674357809284347778133561873951831041768742780935484423505052849819888859994823480559929798419341050099406577338487066469336545151293520444256913465027030488546793442227129427128372793479704568873397499247710778570906954443413808481173984800380906179248508521578894677157293686431874931350947930846942866255243220283140144010874808273039246021066222401697663577879726547634420426389399790025126993098716529917016016791493633317974809380772585244414495806398698865165073292782726876559539554273589193619442644250192010660845980688254467454242251970926482966937563911680429441167359531324860778366268737014113818582907372718584533148514643483420507246823698585137921859221066521729462083478829718011727055838315030028613843718424006851144807396801379586064219846358390397637885965665415932051669957559919488365286356124460869924189638784334175063776606669507628728711569184462908153384780570284542992188857083483707818872231253162939894536179189948677218882855816318343208674862686892501862789103279772506195161104328431728816299550048700725573817628582828166813657886327776375092171680896988760646498949784277200999159253706292719694280509440422094134306028540737208273513380973979959803376183126629166504227157890742295951329773761585524458856504561365365005304147804444563362780554075822621871559772282664785570842888784240067760130669407718741650553511314229503835123681895286201095492966462228062718460960304434898690766459620596019824731527471227036900815120656162426554889301835570786990357731521566146419475092157146266351537710594582530912783375120189162428238793953615199345942570216133448852053405396896915547043795441296422316528245419876541919714748573242335282494550079788770748760431769883141885761509490234741909194861016218773363111502850562121437473445436369186343599412670049227477000301616598319439543821703444240001349459990570174609320574503904739626395053354953645299426851611488686947511374436964065699532182850630636988268143608408299005637812664539833959643094231119881850171097133923840094684170340189995995778426947453575185881900009549651715268669928405857218612896954591756913110513956211194555358147806999303149564962747764600717075336839764043658500003111031698506291865304933077149033077490159079458984611272456226983602857650970789364810821931374653652307355738784092983652313734554040365139654181608541237908716550917158866127206740501164238330825724528971678130459355406764911893572256584142742534343536843954966601626290868774908776599993147971065010225289676183679216944834257716976537865594958273929941816159282019903682151060639271794641744013512346441603486063374813481105920215505133749357807833144537847896932926897154500480704264178286581474591941085489926054548167071938180824389492502639894741600022405073274027327302490968620694871663293369875869242161710097512655241719633952203338392118936902310165521272007846870450367392739641787028005162787396922099485324538085415280204597232471749477163922317076219167936234558920336205624903884130737094257855393435266676154642123061875480305017223750443166372599573406660404210653999598425796747561951797950795168142271786648332124390982857784751140086425029305316348773318324839934377010656729833877934984459242993625476724836018628840808511852383513125972152476442959410034273587092757723735424494511781656670670230554237899733893476054083919022449539963584858306562026796984954813308265756029995075774216889612501785198176057961562099237178193458976312570525877519161025492223281131984335972169969459387096789376978396481425697271698888663426061220533141614368974570534829915476819477409738306678959626672347697374472593181182048430255511264632346107368654294203775522532722351371408895936377431299419385126468207289438060656944019883903506474539304110844682271637374910774795016541957724642233247159770117077236337501206945323618989959183443540247021317273402582751032879721324473066921372578255156278553514966795293053478831494336336946443051204463524118295273419346107874464653620944121865760887513828946280162904896103539321102358539820313989506954019855524786312301157797067493780112421908764296657577682158327709729826891160141320867950205592896524249922349378907359278602245940317151583929251967885449497273516849748414449276762008523876002953062761849246100249860024288968713253671327819886471164914475470057713359197021112695421773176145109189196437996651029586234564870736205360081441429079220317016525544080019711448003264469136979211207106944577446330483301155125086522259463770548334524326037919311973484794653873504359993065312304593772561869863404256392593472813707658140919337047988178899370282262218045821691343058674515462548262562113920719526474577239026515674726977266987165109447365076211098995060999780455776847868163923996901294595836310545985342897589921065618198621971479190488047414690860204954530406177556535569105745889185357716083735757196946839051204837676098883177148524237426297548577008575657267156140007688447898925394672681231234069981912225844145177243428670854079931536919052230582339181577157651540073216967064518464716731900024062486511526753950993285526675821474159632889214080812711117318352320957250444405154143145325845280843085438863588415468431822632094856651621517509625639559488549359325814175193005148125837996272496316653871928100765109248813692152152366344201371332264061561220236984136481701739449737039312264089505081144383216570967513420176058203414746648112450607515079146985482553167238244200192595025186034517165488297696163866177303625537040051112405343691385408953010566585263795439668585720934607213370228030006102351304840089908132535948567005512607393003988322037490695696787722722248520482707791277380902837814407575996357790018362311427396101542349751473153940135816174789168311207564961694901543912321240987833041921303497151598360357958527555329856007298010840541018143276383262179492550643302580222892440276797833101454961427078619510225174180128412203488450513717279879180353836226932193389673774345894447805885201889306241025546158424181053121052263406679321674689759943378126540541234262442145595613266065270810754140386458762880763445761811527157256117361050842485445250792407346417484529577733112940403922614685498459394637318199325664492685571644164834557402039766961532021371597815129195107727123116877062644678606900949316353674902203882238891894288055178658356711788527730536542967361291433607722417556072639741499936707897501886853624884659778747727671046579438364656192898824799141359839526590792134266736737076408389473702754303197843869259100957799783138777127987783866722017579165774125262182266932081619167589425116979655657017218055039192114947284654832011655109391123060986848546627258667153033580116457068860976983839283372937811341067233254799027206360416125082758359381818226783376903106095616923053033853069133951189870435179424751857101421806239234270305681519465557802073836640621174292314082433693623782524805610790713239617694564114357722823825563751639946213343491464455273099478686557227745161502402244498411845819962219985588917419628384281140247717156179133323505070482055398069560035989547315257854323410780756135586114144720113806546799528592919471560686587405720535403296894557642436442294844236644638765810835810471752699701556252402433948777663234325265176971381229141861944228734940555980447564013332189473455364071623925858224467368609810435496825680652229906564794411579613898050157634303853053149229597428739262970048592148619069923152917116634268906187945988922746572362732934895890543558343506226403376740743520373168335727229593432866238506952706209524785669923715565373827359623908741957294531735696312241037166793029116212036861392940267531405322140738780175895553748272764302702100204687912603137655916703007432198660203982073009973408631604658950337310281131861620977887091776941032816762868131801503086176236202353313265607761888600619880293978429081760855467205722725487039960910185705650869807630834698431561740904958213981350335850314614030740669878363331428645054299296693863159467704342420764777905588182850283425091406261796866895594535545419483942669534429835788735664547120892658701229409139322866784467445636806974535661274723813135795786987760525598951790239018729165642557102595316310493143000909369829527195751259520021851426270644767859440870672256468328292287558031558704461182067596420160402044530411043009214204097218879651232289075851484826653072300296005757788502732976979050734285348142167136825482188868907410407956591029436357065510291583158370614669646667292705175107275470854181975580437174208837385059570272545161082514337409176478476548313989819044605587459512495309393977379243603345547794561147686067751329517487144743225846433321978164677193120951158692958542916001779343307352810802044854435258229316127707702369926584101322059356880657767153215644891357113762557395644894029151339019752266107098560994851032177762272074009170560961181831881977189394332551099321521444414109536281186915479180636032879632797512933366485319380073670204289618076079284441793920026166677082599786786056604056166244716870132457458490747155179498011781670649257514428217043272691972174602248365903145590996450869883684956945386140838654201216609037060696605155210131261295552269863126488447726123891061590013314960166698707556128164695425990896539094614911350318074202960007420229659817636548314913222156733788471451533649078102511520083199588176092134818840013255369549319879063968391667602664286173728945523774018199042130634743010665543928356649256815207102810736467718294699679399485908074072934901998691698887061775234271245335332424575775683121573816064389369195175811023369750937511658940125969427922279426843616429326712763680076761965183325862828720967843589769839097408155707350020457155952252689188656436860122844024213061628478723089791787427878416327023073471851704296827186388037102824633839210513436335136919721275226837712764067939488850173023161031754824359400947662595526172049251230741972145844156816994047332582680474466542164437486823680204007458772127655363528257244262162031494914960375910033049955870073995957886304700780635467766778935831068032704338881195716759023257736399487182216495883092030161596169136303693118087254310163591328895678456157468632940394615528788297306778353289032466475675684389105922077781016865778899178726023183460096898671420447005505226330951003929240443463263446349558475626780140814999598707994007933311878706848346450210944042405613163287073653864896916081413275783563066106515269251809375545280208245448441308021624989579190848491385833861344485518194541139866133089114490743309287413982627469766369423870190183736336368001236716553840598026959122072748592008824262020021578711797090796328338218092879697725132759617855271329963085294309431014536152455745407963501974236375569808830917207765123289739709461552982585337661378724868340545762084066753846008775103309734256892661117494849325555065145726850588680061017924963513082435788418779173413780288389910241457628409246647178644997945419064318890732483219188981400089610887345965387573997943176281848847772550305781763584511357795227715033370376003697573619338112612110464199188268468756326813025309854695991488484578591012692622445511394213296409748035720752338459680190562901939034816151132978747972091669579804648438377312410447444969027471921607332678829578252208205232738072058200464068091819353439167796818789135748695779643651556885726947671935049543541811003771205883791161403856841763191606734219961613124688429840785581722237678806041921008456521938679521912199390258344031930620644112438560888949380281281849651453618376086168719952327787272434928382315008598043295178176798905474601306710821403749776157324918909923658375921275388148263766008918151056632845329844239161457852831693965636166506546742525660650030958796548847766676569410123764794117261798417675196792424832955314527139930530854036249660528186165972957489215674123621631749047983425165989674360631747430287926537100718024231487672299951403712581190773861699008814449445121004338732534919769121954818851667608438538986065552956342580865991626991870726778997200020290953738859004538015380887633935190816797763164900634655708364631444464714486394553897730720333720914245728303956463164807004959678636384356682037927441483999136258108630621335097437346158681498548234536353475412799682754899042650447769427214858377258269853260770455781175401835783737058468366539867464406472417269488868166585520434610956328631498390860006937754703490141011606627529674321055718414884374680253220200206893070834385423056594821073888965028523126637812023018109561221553342207390548571979066740754759233241368508646455606039372221353999416065011592831674058362142692633053127777368957247852031902112537205942614115953748836653166151189196059702142966847096107759200435683140554672117064822829639009059893981979688069120165287924595140018031865607600278451056285525210441319073118252536683881137487546642487957674299086113649291085464182124921897028891025290700045936298534842614424692155093082885733630516233978325601565943401124148084811537829449423295289135494115929524472194861054012367110297854120654488312324527655878805042883653972126626165795526707643890349998258951275815299796653834151709544420802545806659474664814444053824628554951133852907102803347816813375644924169914423826325881659672167642209383839408953355513244000637428800612248262912356297669285710886969457476949601656805567002845131779806766059908915708803971768816732586255280817337022637920552960795082033391958895187583940278860339337343667555047350028779367143472822687064862450027262975735618579645007317464920438358776612878423844130995944429138378159478737286903219884641996084830706467067346169991968791188407928871805934728672864640784926605899163292560829773118298804812393369161888025276720730084582149256258229131295787319253566227177248615452954474142092381873606378500047810254838609230038590916137713624242905976140926231483975906709228162963378326663378578209160518083899977432284455559106257159239436119212152195295160602409015127033734230372326652245344350687059565739943039639637333414980879700774588736936370317921342422508739903060251902371689152913741953431130089303871007544019143591876508236975365299382539186262229821937721176901182409571202725802266743929951978760581742916942163488366692449520488686822722446939629008120251981586368040328220359826497032663766792693318723178347142293998735973670661447412511145985221435827509076133820000842636591204492661710310140526385033202531867001572740283676400621108029474370388967597445443068205130148107904193032328388248125179488831518020445941470904337299240710324818698521432044778518459890414204306567970823535985976716420896391737376009192219500930935349833747979376333032670036731901467502826174872292234547548310540218684480326616506905928113101072426699812309709054404636717702811577715992202532830692533508172353369006288482773404775053519226960211915371590981405770471317353736461585317587683994643956569043983533879552734639843668800324168991113347878350331766150118611315168289935275845860434948283562643584446247001466000739215960692947041518098391488416472186792513725809720896505198203903515308127653119529117298220195913908623583460304460296622904574626496841742634260420601716439446881289925345843558642459494286217748553651758109445945758059192464219674900008502129517257514505287430938419649113702377295384272009091821131364836228009310644420178946010685230486948339239938135218223122890732183588360956763001457199775277983554073899053615454392963011259550594512706840405287207948602807600438462843380930352551162684547164226668822395202736592581801461255161947696416260203705403691431965100681467459692816689819615266629153082006686067116904226343249410262996682890020908984968129237398841246919450076371578902108526990895833473693133825564020133122959757757785467796177280895118533384997655978540334672916011924339278348455559007658178886050111042753927013295032290669396538555880817310345767371062785476680601485147019782931111139764715250219782911118087366627440304543336975990163060527836574304848472623577753617734085313762259741500486693625765603363308118523955550800012546990002888907317144198059206582285170833039984484978205299199124457314397031801617137400071793110089850486155420923004642320985239636926369891136489124745743942168255004023609812247156474665927060977209424163185472729143104555569088452407023649885685092397235869675948151786946236966696601426225545636124433964087107850966876731684649213590538335685781199196536109601166511964311752518858217873966879759561382961231880699271410028857736754862972329682805581167889277230789411258260273912785703581779086762098218513880347632657421520005410073412443356742935498068440864171138937028408475077448217178296037991756856905162090983228425167263893498934714376022039924441727126840498146082407687256276014676509698510198288906100059938421857209480653618347355857455801902607468677931659011898659184796325006708616336234800925733083271605251519046082325896463568227128173957288056729221388901482867986739563092167673185466873724359247914783425720387995940462931509927026226637083064110531282390570087341432721144277434635585814253082307487384814024491901574325156383695524887540528251746863062854265176215389262779803253031485667697784493848939400244642120833518359567580852592973604584067414179288316347585082023261158047198036812907185141449788305825747838914438538588501813188991870061085465497607189594968903096279060488340952865203766454459986053034179813906910870052159478541280267705042564164472148945987359645466679786972214378827392658083776252019332061664839862928583907454542866673228195748973909906428154418428411056268813161625782645296375099859950443852136226381820252783504239885327987189080275892870615027678988556629347823220480387964649421609513726199136908741835473610363642385868928278806860646009021434806290839317080249451330954297538730197240641768407999308599799887338161767638213913230783303746800464559373150001706769610399544676713844722099438786908528236032159716659814208895984935964880240467885138750411516099380721548528153349222062665477745576613282672375643191124308519593208723211113651862762280614894173033026429365334951217530734538793930278321360428520966721596263851070564313741180491459797249048979311065291795418655569023445925880552716946307710358050532482311107837224534961130559250184542693740661211472455879429670372196778671221171986071429585673744255943264110240879292796052473242987465993742353920075407134561762359811413287228945776369598014398037386910926017830109525425298621829716982886656315727253990531884663912545672863462315983939278570232885244288780969555362367743187140322061304034251788788826051555477192466287606410687110299581649763155724245483044727750178389439667874761275537795644798770593053832416485237144753613606732238739697631584810882314235080018920065329170933387504011301908589109556051578802953004944616364425879416473908758678344747806583210424749468427654688220927972165775451465748934912608165800474137993279496375047410965095053459980479985228520624926527969413617002680442276173679709938999294923004840447715268398157264777870731705304807807213049063031645767568300594135082538597982343773664599511136915732730275026374161007569851372546805235669138925329552936357780911887838605877175204443691461427008531620672337297992683177686155550340688324226403510862483411038179182952874992733464329160785773660574491575733846805021454608464163830124835581147568468324939288642472993282461283085298536048532183573692011247755617344881206486274263591995887631706056767590175140456420961282429275735409572745001866654197284308998357309385774814606780106575045374025396210579206283516006016192362817558487092351679461149697332544381649501414140646993593320508931865343736315072385540610359668596870044033471830778594289976900383284701769801955756548427156855359777942078518903495078791757644440393513220298438853574590651398482692493216397526289508953344308393086297207834255892505775850136739933659261669917710803973372715169716021936862880551526775420717898212837670317578548392990163921444015514598383234063145935311943345620258681200733563467739711050009980181958976920701762756788230216759062760686994575213119719546713571997081613281536618950089104321018369079762647337587297845244147927001399621309084204611430701215616564007874567893784786352019408537101622768716154550589459517477362935965166206211408462273954383329386377831942039248887948743661141282505329235279052260623879794085216817744837034297456222108294633128275269853183663107057927027074223461809017009411780630932378476387303603623494470901371193492533773423937968119153023206404222403944381988750468836254854363181035672550183253648720933282021392794579114910945092736781562513810174653268164046082664837244510251149538339362897361944654125352398627270844869304036882360183483634118959759662336730976877604064897785970353565483812977421769317608392204814241109178566895923684830469246410323995224034374693841573675464879480564855442837293484222525294191914389589276599786894118641578967117133505398816573533307047243643203350194920252903295885643564922410436190015655188124580415427601529796990858332621338672829251331589960380834601958737519386807560224654908727945374820098806684833458501833676264183740247545318001878405108022293909715464094306102419760868422346139699437117478113833187149194550591812026900675166762754073104449638599569720449282520617080611335968094631478418712878652742288008553650884792866294693508479611434233975718283886205371291154659031283497923445331846478620685495988204530840504262336773881793090220324750090157392807468165740632251987297488340776849689918014270640134898810074800218085823754139007404921129507021237251315376829265639815962928687690890327983225525172724000490840215187232775639237757728632274550939233075548648022403943688215095703204226914887593379807102223133991992489862327332566887919220493381299114676379034273187928053841076706700124854962436799092701321374573296094263313261626732482811500928386374510208118418888776010841522551698894207598472992368055111457828464321062688652645266605043127326869568735929071492824780646744474073935154985781668268069778746948661870719715807789945835749317428829425550521327935977337982994765018203855466786718853269208295708910265386836201822501784726717026097630086559600438123504775753692982693257158028983001929170956876717271193536196176779438647116724997994995348688679854350912753349785396807333393967642143495469006266133213059828355242431263274915348329127370137869393598816861893698445205063144348896792797025230936850423145235853198553222732867266847911480965900664223653580142931536148421632780641032557922084812204420842794884538951803581982652661972722423132723542558661498899095427064274720619833947117037116036523775920084563025303701687692149228121035773213365266892606406498819482535011131640058495311948419391093114939390757389656106443396898163270314133671577677001466639903024895396747624068435056187456990173704316946905206749062200025867217200686712588855805904760403513688161716846868870664125010017003334667538118329707435271798989406847174095263235639106801833483114342616972076913483225284386257654860469146658859191037510155511087234912109808712738595440719519853727514530320140625609864001805671865906834867704363591926395238470873731438919260277150503352023211947456831504617437968536079415798956853760104138242172178728714035431914499114120381952349184395553609657303710536354575128617756238221138742933402809970717321527660404286556082639904006688883723916185903090834970993301600785889554644485753335885960739043118588041044287785446990031119255136137216395605239358486754025920968392761024148144089980005930411070954907679767617266159322832395301320288450280585764579147386740342192279697325990805239331551617906682338340400729980020207019616613299231041020097970355754347881642040579664923565100266853377330327632002810515439396508627044769895553145403380881563412778143069588610099749266967482711126348617873940729299985628166907194403701333767102723240948587131405850652996900392708014105542999626083833542531007953366167497023457873584444207414167565285921114729412027349954192215946124584628951555113893351114325282092148489499044174509989171971343363618537048279028147757449871725736809143929270734663194712154477807041424033008322827595829365899050226186184372231257861373919826600813192789380123139367079343022337561154461238533878182000471085200804947423284808775152718728030403703451835175378603673426373405415544361661557485886034659050734181211923341368131094820015637329830691440002165734972351330961580290172068976834327452749297244291856675615412055664821193938864790736095078436245130872333910092925861819226950139649092324864331258082325299574621664952202926515033806765729184317992510331981905249412398332657418339063310650373168003922590262656310258597345790520982899952223725158461957844512912174803211006606715853618840318065635831264348306783468454495960063544992675324029327695384288632917169701496290315270925152486327110161859755676537753235937144364807504568323321925534045410332096808539624180549532291434582406950018181856522751933206815312107224019972193673905260315189357320411618299678886869968048703604308649611884345678769370308799241015954315240338670852611902062970996526296228649669521924593309916210814034772186653025784107588361214363076272891495905191448491308505588849849475797464103175773091729240762008352628798321101337728738325265178733364671716771702608190122079003233379809793032084625601857204637270589580902836929239038402099820192287296476097032481325258409422454494355127700400823923797610876668970674244917942402341550077314032979333690077065009260211947686289191232233837074134874700713148932755610018743175430031291664445762114184844182538032119299057031422430393147832223205949216673187190677154455144227323242109928413998849128854208308747441413431247319169143838275683842766445303322101569619242783954892037388485162906938960559266104183313389938527828098768031382949515666121081094368110580429852455329159888414547083519569791046830141001703995805279987025772259445015565454700483536644651845098706305620144094073628944723077160616311763833582448696324509760919409085929955478765671923873868197143554774165872839537728150210098328452831246325481881194857893272276397447681606245935248135762761366340449059046218189800901668073918589959173873956400090360137298476025108589282189075710755399449426199356349704663358618163961199085957697570531215819411805778684409779656852686306087662849011143061061733437301003138254911642468479276792664986617723573637248763855570317132439148250837788526684307361945065613411843997523008271265420194988380408409397785728491170813619662459087492372962311331375759178727432090771106170747862501365144943479864644158834457856564973382595029277888635173250990280598556159454355172454398948514575550022279475360918325393665785778094899772556598407402754024945300181153240467722772223199749258582764679833110685452338072726568690461181928174580280680204288343722402910910103575345978371421951023539004677626239355399114707294680204574811166629672119057175015341172331582723658209910459702575896820776994339672418652253713604068812205109149843438097444099066917967104064094035069731368925145454340045949032862974493644599039289749780270471385388421384322030688115146463920304790490511769377630830381000675554612356893133741677872655965931392942878268953871537257501220684604525712813185222661327910737135907857125054935771519319269625441381334228396549745691160299228486683247470676403310331122238503897593065513417076228827329603613060671525778455181251192947479320139797117775773594848045189242537678427202235324289071739160840784967966242658815939233447597478552645670961991425418254371847162893284609139614758930234645362432778875596198946275726069132049898123978352003511787015572354850110103984309221411764448964802775508840845624772856762703537405171877373490940708099121688683330366509011387588835426299003246642005687412962326949917912065283096904106123882435013580536881995812859822345868901162105755895861402452245918926647522913639256854922875428271468210586689028293271819229084992937433607146719300109728177412558623580543953322285366009622603205975266527147253221386833192112273107240049307191456211255642335752948602922254075281710028448511460879318125090076312444218052527841745636181938568113951108582037206441018347139187305002215716944502221162305221644298520195658637974659238715289718674036816818260740386515956076576712868760278419023041478984925154427058806802091958729571917873108758598971401297224403654190101887446484713168856383041489841001166116030909207014979671809735678837271071027558041228931945719111761218077680984686998113078096642631752868223360850844827824757893739678426628032654295007168248039332075641313445761621263893797162696921542038216864027864043686125674861023659435084910175507265962065442838661008070245574700497769240875953819611814974534666423801370988920355432565400394791582425755147082070475013049103520841413740360586339778131882010307023156908933067766240695506322454722765472667728950681515004263773524535711713436023235293352686087137196471631060878196813868971889710464894518642913179028613307076930638320851580183233296673655562608899762721981088173045195963260915802437121810537707187011180536651596177054315317360467727280588387555764431391228228491401494489278475954924093883985608164348493181875750049799862163137179169736789116317437457078673724153862230802742400832709626623757561664632821867363297256366899493629564062832265152855317095152226330335292875042846035224981056256121782941353475294686237345236516265009063429582255866364569951786455558522058415632618804646372049582154669478631707967383534573367239353904499921615753038617594178388683229539094788849503470587469526438824539702338661368577509627542778873050210973493535876145769577383015452813353380218339028397208003812330700968814317000376475153868625591072606165766876353728232274111378364920878988219192788022854237145624382366510215342356515115327496397744257437236853830921907759885692171759577569843867654203340267241852207591294181239500291279787738835073820888935006317489805550811692557760390255077968722513880083448428472521374563453553980635206463626007654379394249082623457624969981438272109047430990188280713963747288271952696511988086367849380422602819332167627461760130392757849123787562746280018783449171061256879403940837370157468962839402432390066716764857631577337368908483385830046314649535935074022450642871522114889459824317605343641151214802026975959372016831474304878239811529836183488303653541920718352273889925701759925201646242351719016117312995410911915143851860208506690179192450187349686435062510153034905191374825261843810909898897126293640331969975375773024255546294542745762010856048081326528487532796864292694500701525825013152294182908419094533473388749662305847908862750401846304147577706031708641653952964448804502061424109747296273601297298069521687834828009030575188526122946135058514443338633142711409396497136301916427004169500738977587844449754551073389619526274018146443069654117492593298055691830525067379757231930451775736155529130877591614887647355280942839505907212133194677167630287236697893326882101419330604447419016344954836065489460825038836130138151079456182610837774078947191333619751179860072315555512889405528331413681700978944491699202409304214297699852374877333878840414567496169080290506453968332927175429056950186836655614658847856223120232776606440881233961223935550535369812291870819413497395331243049925256429703122919740635012448641696115058929578689986927283101378853349745819715346852156962835628686773463659179421230500074737916793831221208306258489675664146448784627285684092845672034520598529738418767348161051032391966910403281458169053836418785086976572297439873223513198816923668495404542653260308074038100207380892761161428420825072699089159373760203315571206052943782591330419963524448145284609194861609295361251660906889741467253845682962728380255378640927257472187837203180819496201422825561925244130465718117346320988573814630043976944436057280742950843902119352003313179255975805563894855765877817807154092104899863264966998095618047356431592980810086445578302024615924658467996412261559659386194463748521665737749914850643555157737525155254662552171838435578139146778998666183890078833107226018744714404692025448081224553282832278975436329505149706799886445920601118948917895594875597979786792096473298198617697211009369676792453140710628080414715223288730511773413251668081183784457891400836344294770515648833842814999705222353345452079303476908990176823682278226866671022747211709486434052473750177812541413250860952970192540322215559838745287487083048706714070417805899489743365962220046776050411799202675760827703264881265471303761019132296587759335398360577702771191576160817124247650101571192560951859378879034426421547870573914189934339698967023352905910712810450710918133746560020805222062565161548957623826948640034559072975962895272143757200692512348817554884585759106187442588756099096355413421422268889085963449400728137876516704262443618124458590370803202588108954048197270023716189598381396375765163811812744442701791699488187031945946073286175038178274515474792743066964991651942351248976646117872044132243952801320179814282575876880566986411053593424120164405938782568371395846898152931191150360020173064815427850086706606510150603826119959541897752208760144616361443885599145500683612878089156696796967371844512793147760530223549603523051511556663692340042508651281091809930255463175265702055790726516025857736052649517562227540064026167333314281586898128410345063822589776410231873031016403285786076974592989936732847400631704831653603205691841273220701930071814656956120948661180688751438815130235477161930018883528042517523971836334621404825403553820055568765982357983685346223376810312325402602602472699246610749097388296477647885943803027194781815840433345649008986021753431252224005135971207390931565203280812545968104793819362218534354582660420642330901244729247571752703511943025766682538794543166903985860547490779155305735073206352551084350556052636526615354103619357588415943777326709362543872347677968025940504537186036716470713426806055530372010082282021683160795029743367564806834106500001815294148071391766738495122807405073602359149851398746925641499613590753498062108403354811737038640522683804068131930040469819134671539958722834935588431690592112795474962487377654714650693703953256589738921245540437268335315889397893238740118964786932470735117303798321728511184619599409422082048118364381684501408911937052751143848125153159357159412357419942802202243130660633510067414889738185965517996119558673443260457982326139938884616850451989715982707393549585204662391315700915066314121774416159219242410470924195321662590567912859679775958544041548149786795735650175134306138845511550714060487084035943489242573065851206692638741333609331475419284570848455432519625166379469433708340351473547952670001134786224340881132131274403588824172526726247303450281383916366274572598848426598435364033094088215693747313299272834506624250574914461992682067958233789113738848706349909970205213043460240143789153378889152382491490218777369470139487435996905917281829106900307174569519979405442938430359738974793732106931900297544174355045744036849844730421906648715944648449478551663782706850211525455556361072989598615746226975991905120837737611635728430496305589854968914038722560520954782602493267968947301033863854347839319789352270481308504753959192394483078763854695623001650543098936013440050541002165408530066840482895043317014799786198786469567824811992273905045196418738527276333375062012204237414410726019847977747273670107629887596028664823090167672215395591490058705147702601750539072790211190686986106029583095943281577371795991514804794219653442561680118990353363988249013025017708383712631891717169235090662056588853728233548862030207839822056690928402679096823816946693179328693520913040318559267236612527561160012791776963477790812403392667617027789200982798613094328665711365787399861994189704953355411040492582103242410781668708368560104031930550112987101806073156134332136808524611794444766579216937260782974003350512069502636937873400303462299999862544965388149850556058318044487355396160572460715736017278997166817158355545863191019227281706819871700974139546510281153587827325062599083901678596482011237740691453180039715136109338478374397428472426734475808165266812399506834806077884904807257018366123896042491092533925083227850299313735271061953346288137747380311179724069898974674348525198561059792447518353569491702662288582236561643946087115299758791055246608079922463510106335733905618190694206276541184202939743161923556746732814963669062107834920572024967162802091785211799832178369769382818981559108999739210705106863102607345646467737461010493410058108057278765608768830347531409760540879616164436619927918007143672473845614921910113385024964362809669465824396809982192636745051622410659050598994830683748786609173263718412555577449168642549240259523887561057475134368392854183763668219385481059178136321099182421619082400600136529967734965766015249616931390057673921297644052013983325715010750192434345862935138324845767685485560321239154458729485589089554355913277648488485513207121858124866599553936075525746449334291619144054636090559041627613699507453586554593105746245913508642595349469017475809203074307009305007145523500006066823201965748032543485380051077124044361742031542881736749092286551769654005043320045161667175994947536884414287522802671096473272666899486840294482201787055454315060468766691954820251177454176761248109964373346382882446849076151093572482630281871687105287286373997181058763393272345418749125900616469631183476826944069259012688982699554808396595385399896285195428219892955506812476512540654334908671542940589968044359463072454269381546418297804981625767719011894731358694264976644754219218170735025080189283644518126526467969214941732743254811001071995632307957111987449189749595394520724906413409227641738458669830885479756669264103667468057743535480874843292119846014724012445233900356885756567838827064271006208508488259480060381760755011768395154754053298619843244396906356064844338061675354276945701037187816484758314641057936288289773583977602747456207807373357693709382523732430324175611961167946998312469136015699929342888194667647411891550236541751318165837400002343594802178159022434923958606028037659124296424164173564327741145033094399419474629209825668611058878070610266816352299416804675283932414056397365091908057892121248235581204548965769269903949489107154923122012400283325956089355460649081272349976036850237333126600467011039295341131227619934981080571640905782813319539375040046390027389286928765771838735631790040918329256011830034426975635264284306265298570947373456055343571269992010132101257449569762373102367640139264455091860140605755742454316400143530115914515970705724322880052996353546757909882261247695189925006422311270160870096721420014076100409523926328667452252487717201490129960087989319294026739445514238483932341789281008033771238477872254099402872656912548254966421902356749723159340696502945609551124135811698781093394864921642031598274676604328767320058839289338511051760738126019454571217524693643307287670624205480831587896492106708164237998633823240854939419049675621308231941924461859771396635265323040854035533392595863009608387245058068042051645054416529279501504821486066056526819816620313373400911668150082731718576027111719419485164023445842240804822628500784477484356714842635540037940669695227501621932649967204272572584431430625173286234644047614645258093574374601660875448259327130954186238359608095389223454170235912834674027356916811805159450474550932126518153576205805663100386749611834597087495845189276535522394930920798947033174542316446688414460405807457850180817290977663836922577279687545553297869727315028687804277521240170981013733914264723615730835120440294674151182573994339710162613991026303714949647462171889297813065056062381027011023533927658281696893086327458695444663787036888643330759056983827160539140409387567603170483087020266474520513293917448550606136590322125365489840768199129710168743373567986873502289305896019547551982079673626677833802350221362163124059500371929693893670049324769585658059686701054241191421964813121120429832871735568626894257654472984252518619630397458278787966639129612536292944679870284140706768685747225962267187982014068829207174040037852292579417106860433658327920533362641630560696203327747187963827148092705227222580502161668052833790334958395573897311471904182973941096701671686829363868022515520978020115347436407173377930762429957029719903318864557824296104792550275954789390325595104588283832258947868607253184166738703035608728279754173770749925050766573771343712997395959041555294663015772032947726617033694009519755994136358313522134421787862079485035318348614443393067756303710356848806382489830732753629353760611596952817641383886573113794785738932292006100508139239452791657643449980829133245196111545697708914090484788351452150274738671584136923138549075688201655670413763183058428507282529420587494268576677713421787100062909713001262964872589659606598156193841790959947118705673958829790069846743637138250216030143731185987980566602682570480559511217880873131144995373089686760821640291212434669249541719238672642396107228338829304947673756690863138789197424451193113101008119023997592643763357684866121570551036599144609034149301362226295911587478726777844498072270188888087195028304417431838137587146635948147797279580474652081084971822228339951966224922850624191995116389926706645906859162336974799631304910662653312168234262472088879074088497354621422920823099589435315262970602314396295110365962599392475107830095829492479741750015670323729945509062013002046939436076393472442515477458226181055311859483964498918917219830307873317286716770342528552375623732939496403629411187362466730830629008287212937280457289310785798430418086811324721795049706182052961112520686521157689438919474845304924740531809391522831845293756350814618444372848675831144705561095156806598110017219808664889067863685938246797712238718775454836847789471499815105949041011188893852885653276355447383411669436490027296832426139513022307694266331371463992983577382421665032521715984190123699225366901129860783921210301680748132102947618029246301563759040029057593111167393024110285788694816826028564240147919711484124584575668606449877688347922671037376055413562058330870856916460812500538620568691010624235710658890761904621877873056447823901845657037177918579915033655830510355114499695844653612066653162097081219865347733733823091128330440208296297093149116754221444194284569831989594278668648218203128369519738885456884492790232905446925916056766790315500009797256303417100830666953193892770642287715628846675461784930602320670075505689204674116375976297546530538759043074882515257718881566860683989701113212670305869179618064169811996834845672110094795893912258005458384738494735492287503653335910765792778260263021159106449676804804297660305605750223478719358298204240583098340276323781413077104282829115281179253647319284677667556120306926862288258752830986813840476718689120263482336692148892927837989524451491544038254449248385262012756442518354722284491046033425578297038902536455015410684939769574423124837616092583426884807191949310993462360140795430988912170377609095454549212451543994194272437947113248660849152725154726798871880991978180548114297178450197233663191168266429644135091658474286562119875925039025032370101959418775228596795573398503325824300451042627194576192875772106868768591368613881946678594568752903198465061093568564305723505783992634139052994149567504219583128257867970164010201982305736388629136743484981518810870288344105203869037359295691785826656776556256839907542514953004038421975776282733287639580458947608168465187026218840625186717934126809459264076046375623033492843687481063522243060018528112198203966282372967853812781084242228757784339610482958175024756107467524492583215652701131912512919164738684780458323505596837517955391727014392779159695795409627943904626612720717270577363843038831741162233088124534859861090644158733877053348253488292361187731022514556117255323945691864387338776778669224378127559263566471278193286838806885072311085653214669927749800845598770955696167180678283064852518703647570342885677429603485319064117412160986964663220821929710627352729332784645605048089019819188707764240962231679084193475086275763390850987331822797115961350685523615764031175054220660191088031196106240119705632511006035884353478720759122628412085402816255689009322001665339956005153469696187276896847213897365471422714570825243255750693093025408927986924582402285426039835494303118276800839325775627784829380140783961166250074326582294969929301944682726294618558367074691274142548492119756177965963847786493264985995378305589602593331861741958960502722399844708489877775786508961745453335762935449160730403621975344589840262256795210423161334741881845482471716171867115364340923297463656167035208927658897133598325496200042416196003380548054367573015696968813015870516332179001268557272655989291354527775868191219450184800095201935913861569362532568812205756654712989915418215084854390657510576249201570850999446947827926942584459818964444533500194566404231824037095574760432332031670842393463428630995471090104935635502098945052018597001733338242050894687132147057924433800872307857349318244957725767321510031976762704077174513834538806405342233745891665918206461121900763882558632375056193700323440309165275585322075648402749932696516432395618787888249045285561062976243985372067768636992423450021810090193617221648815374506100899834377570935496557366605035723212994023801486725884022990662872470313679975781189493534900017605998136093181031174918351962556801857992375499234285756109155429570503220850811014321309418089227042318164472707502857967830652401299101739373168584872859990322039016440419426716658538361744582576563678594104317325784180196256423519302776905540299988101895960927217917212391543753784399456510947487459801617831293567328546014879713913679853193730886889029684851277395813376146322148298155749593346411589022801650026294908482902056438290208293316764114803202095559503138731761580387349843343084285156483261950624308758137857214727495674682844234581283645299304055222038308030919417110152087976585397250868646931965698866718682715100819023374446418782493968087550999200239049646782893405735120359896031809942488813056835195143942800823028978033421012869561440192589154857987368718078279919395065871798987493997002240747086317726276595496848211604568045558469288268380458855438253075614838006909216760776232556637166047358407746414222770740403756295373661326215676994412886398294034727036279989123781878320842981572753994518950388513066863228612262656750736801645856831645073970714878368290009773246954644040605371126429264963616217153334840911552044925444949132705204034490919003849464052075484922783134131076729530315897500875050967353649905569337688094391480059511579725430939844026161159234671773371133011901765613949491695416984499297504284025281195148183509278745611660809769511274641324351654094106934680417025264333967434925250598666613193503816377996845462872833889967755062468555544325854403207806003315905342065683829982541305917338205814006852063498983397304281438765348795772709924513429367959839465567377674702082286391171503593864789625352107046986709856314704472241390569455903562639140983098503443554892755205491683809592776600976411277063496901490944654312059100930116153217034905492749540053124150262566894714884638096548415593577358998573210736781397121071372297425742764969630591106458300670860877786086057152243448541476387164211909967876185049381528865319264736839005652318976759111118500894802840829033225296465403060215878230033374487606681012990927467529856319882191870906723282124476155898531051303702866915179106663227345223691535995592736257821757815939346286458514518317456045048607694594348036023450150287920834093813525645748668367342592520764353692910517696177224232661819582901263711275902632356783690826909560229407746463673467901564634019625999549075722167024426106826372633637175940841942345258496898335382431579291906052630722189826908485888394054845569675992917431161020790922426989727369832430835461004117798870039592197381569081940986187189438369984306186924062882259722627869330344789057758174215774179747031394299412666547818321800811367660734558888024246555223618662602119173058093517172656238808630174979353126563968267351589073903617505831808211017156957413237705552984020100252718944588332490900348479761466049788585593307965013228039431948024504040198183952121026905743833594149713042841569321724453849801158827990158145353672589399062654413590684828312869204615933036204584626262410659931520667774636388999398037638104652409615373851934388764781807650315596877847064295533428994019990616942903577614613365737289933468227371144177122529696780030386524723124337364491797637428289868510073862424889366838139825524536397436817946321348416154024163550501655823810724723212380475666504661098892708913182855437028957339776160590891111164400125896056306419635884110738692795602054831238592911894612862349900207315072542167527131915996787486871160968954955234376451019026764037481316392773299565347437932041058574725018285462640405310883037850311114814556631497444300142746080562504159470797662159700535559423964896646026864819585022446119257006583737686042214854343580805704841658341315358729220944527587213173387485198668989466655354715142373863191305241572375263069206080167616014302898547839428804543852080957011507864826686217773051920829041311630554250868378196797851657459602542765133079969154359431368568059360252489892906017566149716261723986287726970649622759680028628297603959311939882398273160615654452167228053552068824202832213068240728729756185155245011321902756747649927462883596667484377085603335175466339213607387392820674770426926821005067646799601644666844107964106424320307585084544758643049119552239643194736468004062667024393776642106768091253729417810601275901236147966312408532191006747363973495657633933987666148151005284698908385137151711865372006429435082795045056382784809306109031552293643752928399685828407114981882198462526005698132210391707925100101819492770649784516038671876993648283659406977572846334023893331666540866390696465441404470012755444198594409775109352860569321525126854588095247066058966848495447938874687475442658206933943661530905883071965829401597266965844041057706860213122551287946611489440348241565075556059999499395288125799658407518652709708201238236244544545202925596015941773510380783020675963787748403613885992407251413885978934627765239438324732155162775512015058073620985363089317670894133287935090655367990564145316142714479018629972477848209910963679825094366447328798733358332032350674917839245692414020871669289124276688299215246128401308358624387914795251526262603006916400875821753550498840468547434623598744414986745387626317189635236719874078407885529868193681194552223081290323775996696477260427516760854945801428887430765279275182717562845344299102546320491526658071676686434543035875648177747817466492019841115597952573534772941474284012922480923253923048994331402733420580998068657983251208592247848397885724747371881658864600282870110609273132562272387620228824931823491801960473894092271649059925887696678418300726872037024195166749629014597154336285998860043076935610613711915674748174727788245766439132403946818355634752292369918530125559318464679896330154320188753934376131641841902553442963991646477886882858355225829582105979967984367427052873906526190128008939028373922331071883603717332467757118446028331209584900295342471689329216196102297020178638867121073445324648183011704937510361845198266729245459609838931612085085945645181251571375368684403738142129791598987261404249712533398992346714637491394939226594206186578737495188677973622475652273667263929149793107487287033936696699967569967466345600535947779202403978391023703361032920141596935622991348620723042582584900432610568501402263371307572519597587956568078658846429162290791688478488939518400941670210371790657992442888198559650346526712422744825776626331459443766714495652309117816662589117710452447584639231850166135154164193391937491540443023272674022661610787578795293302040338702269835099700328025355782180647365125781432029058783801119808459448774982178305481084305478044457703479803315965003314807534058469674173904307579763108187047765273337662592448094532086196503351634341952649986530538215320847835527739835640200943896362623956643850145019125844014410716305406018651383543081169099223340724440675767776690055487957462095474055536180837081131143962230231615831113030785047176878469737526582797592756914812604863461747867768740584969634434279621551358738739066613036003196480477259219862529825942085234188821839348903013969033665553025796830543430366733143620477197078564189928837358498175192752329226129721690447732523768716171140889692404192786174338198699929117895589084787706106194235079687182161628778647832304244212441401906475360140483750450992600604279951555037912229155764707561086767173848549826137067032847373004245431180928476421367207263390194475245812438712684376161032456216068525498781596693869657300227050729230635260275938971579850410227011548420586476559314961944710728464126924987811262687369727296130919746407225050045606247226021470602896860322067077198823316589838715091380297527427014153863764120329127766630549794122620176471821122883662102788100746070605930948645294634321979727563854669466525051653318823411285053290374381824750731406819162219352059753454336605827910083696198244517411245921056648934372206544848892715987244182707034972187234349396157916953944743240360684421474639187608635540828382114380813894338862406151307434251858534767382741128361936730073718328207165385016366299980906096523156672927564272269804579220790596046647785621063092802954573046895518097369083154055862297721688279909977491710477936778586644933146011023833374208866509439978678049316716201138489381267549573644874337635669529903319305755077201604578267328592182927482917800526061687210655784735741207135508042217063339580898116387767348118143717467868196659673692941179205394912946413827909710915513275888842272073806115729288044263354072827295821575022137364884589492967543315903232751403461300844259661695401439448325457049383856260255454697817658864128526938429320464840919215648889162219540352723740237389054607312804881741255461553884846243843503361329696465494118078031793857384013994229386107506928704890019652828309744589244047736342335586742398007386311206023714340775669482738137113263684359316151808114577237443244414663144965100947175899650918188572727946393548443424524210823378434862137341559535683936494379896007055163923005514926328444146655310822029748630693663442129215843766550640044620504746541575213516065193571223704646217707785649766956988245158450187618417994976094857581799601171009936597019334148557013822307857189963037364626534524552071230369747052683281213236440189287927211021314591091797095214854403536108870316703629752530260426253555471628401969072380013814654844743071759973728999303673148900637403307100269612633754543517075191263323850818369350030646852555424368217804079667735773892780657548662410934562595194168306721391454582985763979787924715635989122654103688113622844088940620708901333937040293781390066173181027049812693382846901398531589780466223948284366671806576510040881982841145917495183989080813544691769074637316944874092578750013513459546985078617829573697713669067777913254650340478742235236710940533989445503653559432958171965400668202710244938860331825324590780785196167215293139051974829962896647614447280981967252740083231615563142499579422403770527913472077864601272655199481094693592301312244976149560817221552542857925100033525244131418473631350933036201610596729144010607520862452288932584244834339380078277451355957331783331162330620635790226085583683047923637271383569864397695980142887564791147528000855464157229638578868253108671174650651323429147917983097063551256289082036213015526047903740504051841260351167705547031831708703429827121850115974578845647238961716657954162878778298615616329256396149656528112572820856734044329152642584664989204222142064441847002083738660291070062519676117612213604287516352474419180384430611187375808851150820424285975277155958163348440656096693551125537943386656736364820614324433978389405985147903241021064493321380776837644014432849928708149978551917397935704426988180156215559800362573843906180520329542940173957518768535552764465227716865444100326649815894309268310187085551115129265138122975096112914143566656622227309914569513323635100599932877397379992447283018671604011297789685506575741502805211124841883576995725858516003508713793796554643222499984359224630031929654315582503321494184447411348991759055768042539598112873843628122170711833287418259250519456484628239144369107020383091663319522985789221796648827939485660711419500302216478980476646888715097229848944153882485156403814425352349053034711787801732643303729089939489099735586963243256245283616105627925847033350283817156879121457362601246116278548751737278160933983581757404502884019718022624448484467482374686431470063478250440358290812453719655980540015673431115010986681205204157971543494643474393551068479574416944469448222397399708175880405676127761225455363478288577649448345394144299236947196774386483434254022328418151281999335044760719978276642471948684777234460027606419248196034498487872508587472917124742404717515794439255759879937198492385243387263517551465613173421037395930478528459434324712830962056626547740288634880476685322263517477518096030070169552950137365569669841246590610805582133655852697582809231913664110648224229332185772580360292640717325843859542086021591362937513467367677518411084550160218602564543991588392122612455741657639673254461663312757050946480912458860643755592293332477369131413481206186988644291401499310025424842023894747067270762201873482288575661511318584583251127983929692835960314760709700884861828793449993392973617654420231169900674459034883415141415320826232078212426915465351284342912902537297281116654304541824809473475712490029899271262133375596145417796172175606964202209523957947452041584048443981397772230460782919047349404902332752501888851432071607580860126115465115798326096297917682063006398765958738344928550877836598415641038430983814179362276528891105609152377895528336972615599551619540157028812918538052350373519370225708433677692230126016508809178145075283166968062982606027453937389473104980800903069046456966778300467369479581194012024176005452796662144784317261692375479915064660194109227326020390377769300996764286604843611081184238846415628103184146771405609898894468042833264765709047322256469525371533814948188258963714248189709651195207985897377035011552794091364137737189574166351228321640852658313352480283743380678139144735816828492214746353029529937334253392547539716197614728589076710132194085554251678906189708018979056708340243903797890022040232932390147660579871915026591027904253793753608031730525949056191995635465717898571115768206266312508969922198949244081849039524299109376398983438517807829369615662035737751756938649968445203954530821817617201326082248943876377797028233070632321978780142296127059089105614069018565238182884215004124584132076289238221714902306888538026845918092785423493580392442855656590741972838190811508747903833816216949072088196557261862355557549828898224541209990649145586699849774837184840910827020063245775503000669831079404071641582668385241022889471869920487514087176824976559103961420259362384688924297655943064755920919942427439909308049659237315579494110414011932550899473029662007056784178457752606905973338057813075733748343725027610774406756645568083835388012403955032859369628267089198236665427147866018335262148910396915493102923114020569822870242069940014112060821202739649372448083678424234150709700177280033506935801697919193653111612802468678991278599637056680679255994011432881279435601597104167748900761061178718806425582081619579422429325545046151355309093884240365406108726105594813467843805449348629931477953208915195961104962377328303093364626902667261194460942064877175101462794741682045937734047355616042157385262046836612482526957626895641514004567869269048146786459313434195350323602359032440177924059031793621551439826067199111589202165692007609392412604922910931828668417816712561409006604957889326550087390506410023013650003129021872832163133748458514265884751609640298386288034388168366659948865224709402148931852333331454913198632817913781343720629561212439206602646155849749650913256420173769055016725240395105521657930099536162930924503392883322614111558526813750276582858921585994676275230423055593711099527245000698210044739850214817400316919097750369358823929814846276311561335360385296505092034265053308338248890012475794382387877008983174286525925501743402351526067771162173498296555527141533688032193071960468237808686197227056131124055832212726785529229388474984829773727450218940902545925924758391283944994772750374182013029890430896830961930810340224632620355792921196726086142133328460264160202128957569063157105120526872584884980496396430012109702403992243298094228792066720202566410884621894947552571392775498363628395248158187116515609396283873495369221063714281738050765395401988799217947018438889973852450877772803580889907303357839956641973376577978645657748146040092985992934353531650513392466394861361222626420689252439445931625004609162873679270964355114615701606689012558874172430489876232382125124668626973020525137829535403903388588421783602533962527727703182413640674739912504771194940207397738650891977136037154819405649902783897205578896707998982085816920101794674294069905820068062468594473784605568913189794486808089542843138450502078035051493940183618811779255943031989500976798990891052367663547645459981253695238168559584445361114562035087459797074107032715754836965659192610445001680475400907917779193549002330110488477433021148859148116527212721320522408784522609420347944219243947127089022898722523250521113867779540227879836801483754029522296432982085941153174206928763159709022695156597455203763978511694215308238542390811153514747035820410562415816647764184099921956046279696719032009274360903743983656074639265744454271011597898859328963298146018085209786981121327795200247854617626598676213661639663276363268532322685462907836410333365037017255292405202940964219736501833226327563745021802299094706777899048333783845918278254467624766170132745488897350461254980965166051056634293409084918347181485549589021342536905151363116490829009432400993602512143366271868008970370371574505813337715723534533763040571491533107686170464179059427631642807308851695048400053609098311336642175700463704629928061106316707281061146086070130102113302271895844552491055704237348821111502162610607880664762990773563769148097487155943992393060118189103977721572210542358480124641307673835076691888451324601420553248661087396677413027211465851637804923932806111712301712718284542876113196471594393731294353052700308608632666413548003650088590930666492170454761653640062798207678921394632089466980446247677904661035200385721803810141292112016186458159004736234130634561475668644137880379012160798850617327761949987259450769556198676307137078562601962360248102356877031247303421579442032330158378371635753646275174174122407102508977542783429352253534479440895455646302072734153130234541579058722780333751306204616086445589310422855950451332823482744467222756704314027450313500671439772457364392796917102338890638517440007900141813313027920921605377550482990609898280233613902648810999461469883854312681351302948677800690945664182758951831521696482987650284208609126974405171123733774229886925393430052797324567180645243691034105841161510722866959175407202005071454852301778851128925467151820493526772712252152959582583784958379010706410888419006508803349050260478493416168857905660305632723373477648882038506479673124408876988326664758543992528941049190389486860697393526648104194115076907712985120505730584181236861158641914188010906081801780806139269092275029560025631897415631488791483015465392001706592299152706156224768991801515760177779331426767111774579559720097508886000802137568258083770454671477383483696986775320033741610555562211506490098478769096321385947077700414041372593219233264103592011446589330113927271390699800958536043333063163829727576161532872891735119524936556593586116202205039275418866627092037872920758659634897392816409729028688753430979375134549909557501830546205389130879123677508601561475416496442000689672278456835104526011476569063531262640200358220255668154313713149168022753815613097044641323985128912534764675076251202228185150912202076705517047878521369007305986573441068260427521899718308048828388273438962084094391140030160315562649655713006730368231788133464528340528048653530667238266015199193888353277224367588344185070942361618502842881939124084852296479113872930966136182353037710270108857754574727527102625949832672471500260259826423748259749398397012627301407493081874456972037415592716126915908235628266062541102901339278768624669287073479040527804187331841025529878593496062959209127609000278882364722124685243165413515880374470770281931546555138869762425415389074159956143604999566963737714471882385457713347777968034875837713475787200562632548085261112253901732317914712624091868947686245014772494296246037396291828507709415552373797827926022840136816878957103249184085471062112415041501317963452903164811639766154093056967387507634457467322497119689839551359563023828630017699817611679878037918376155525276993781695593830250108037469584165540570248249260775430750484606875959316033676807023827708970339763731525732171676786291471564804790957236891927995547438064087391237482924042219359237996436545671612848110224505603712256137305592045670566506222125310801914728110781425275323440681990155957611068155168388856343710540527329475242635385910288084741266352126389445296951835068445744616944254862683584223443898323012566422983871587825888544800214063503988086395377621328565103697643020622456884846903609214339998617161089513112940028455455952255838934275696120369893032275174469863194417031832442127091648170865629437867815121148254835084932481226415920896516946737451688422101150998265126730010780200598818572862182068257981295796933882614594905025715464806654535342613955865198163184771989755131974306415946647961369406286508239507270067773747306536613456022288166441459085147914327302820537765120663457613553679995110640705870910537873746928978676035198323720358935181118822978198101714771563859149876894140106314801106349810633522570026141324329975921047699728173413351783395620174617470828391146462448277309429427577743453352136774720560440691721468398079701501987855145625488072794442483210000814956944150760640075382497541828986917898587255817007791535126346259320218368585066854800402465796983594431695288180735690668659890900741798562712888750532440817956413906520413433485485509511760729206840868835582145684694383144922444874858099674368087771249056528420094743747745998555274337780974868381562066792521402959912071970197969584301219836508578058435656744101113978206995680905916312637338173295216914844985700478026449005734354314443338243366633494559456320017798093272476721577841936284763667684461615409687686845282291110666680524907357033484117667263751848750580447159386449077398264394970397359335069555537363093130721077225881308548961104189030846558000535099234368344375709809186477618169577633819085428671423326640045932682371516244257730423615503688475044087602408476100237036653865302897487666155064515493033430884661563066387788475506428747443859738165587078948297972835888491006545047365972349078349201145825945628971173770157677232428664514377961300670016299760404830048835937996868861126773024917568585174680421772407044659042836129898334287212990411932323277726091243979192707387753261088027665118284385492527028415726633778018417156462312705495341431468385951342069828715950688089820442090355609046305071051789491175624136230675417782410969990352880745014553035524812999581599713745724937477450984297353877644182872806028813939820078754362703180407582211504763537300102809325020837691361874066457249172942264989443970508907395105016810009231796156816918742100984418580440862757870915914351664037505913091639678726001591195072477221490232144644311054872289060166139622785516990224761227649471283967990354670723312770089577779317033082920356399594796738140841618958594698293207108350172300972854375388244744147942139115181658087896719886734771639804512685834839237750827610392096618893826178736916935209564810966407293432076880124081920772193159272887872029154454979428574842377206247593158168369081957195731780349321744972350392299840326028153755116817491568420300487335316344513263739697210095106367446049280140712984765655071444132921333122460449750933276584062623882106281874429161035794642547156293263791122697766397795343213243504575452613765704691671839390597242241011279482036447819037596663239435062261218930442605097982690449626648202890732980102385377782625184409981516147903655728751418912460994912901669217003634369402534736523844261359328723678275519653134264167272224947987755015028063453719377023763222835434390552717955274434943175907498296285443629077549429696861322655323327777007964348824086835693596016148656706918909568578286842423549973999735436757871124823382613612611858302749588077392978739532981979705386207141824166540195691009016018471049857474826759193951406330016710575124728286956665065163612557120199300275960237013898660494923209281616504551500381267076729067350152546074920887206116733586642001931727605024975415997351593488719375205088965105172498927594950042246677405166128924111281425053352980795220428296380894418548675486365400700400519414209146945523561045830194215896085089585088888737548307254856809099693048965506274237129038515547045109423449399645509738557446863359970527093463985457953655489341646212479821084935135434357517994011361499730861562027481165818030663934599862354373815371091261489161222504971718907366025510480365669885728934024184632073259239375321406411625555768432487625818427370739060953752098757353792533166478433152556743288583702461007678525805592451691776707014273543144067635430920387298216629809679147107771127226239091087302834862194722894606134965354069101847337011996218054081366469392018769834479743963138757996202665031777764592889632610567377781603728563083195887570951269063396606904899312615513997794762978263882527315178384212673351352757651024823756307666691001116493437694497805894821199247832131848115663696195971728610176401562764845963383573865596745218881612301475196471402984436651537263146582029156887778640615494135223877311020805947916484514713717773294848361489992715359800881263142708082306682136585008571003405877886222212513544341009546821840895776650404520286219147378561061410458906936983827243031975209421763011792035781375149046302026181255777452162807351750885211914415909590800967674863470462642514148052873139681061952772603206323086277333774032339231556859484697264658607357704034628812210509241893439181696386328933828802301872512450079687512359524328370482930209280414999678055835346367905029820292959227577922563196265414482692660028737974786283330213860293496168777805574684539714513862385363604142802086342686646763739080413339517012392219317949578166904930265280397007169382440113201655366729300700974995819063273846807063189074072002440651977099684719923202587824344521498770307199206512210918180865234835209668814767707430436920621092533942735237444257753912966637308616974134400909038405116171603339805990389645008656863594304538237741081473104784868058256848428735420120991616871111129577852196054872459794928324337951775098085475208775089026400262090969636549566952726079582035739262175874060946943487492527215056927721624883808523488911394616330271804137602042806120812205230312569559517065785403526270148820059482189016082820750085123554776609602418360366685148769547464853675973754335500302883225334671931924311804031201971358120063545249227321127003435805595767403199916677190099831734295743160574144194444465135742318806602722955783634296690252119481147464551776688425937054359554661088080536369563855162486354541253355421216489476060609214236148904203055782377135168718317406148966482366542806177812180377757644112880281364326447961296814135277926687218055622080302882142548626223696856035272895028372957056218840914499412297195889443149772456532145488176570319126653292830281601966287222676164824828487963722832495892589769037033743978281048411837970033349660146844951306660175934011062335469215082405563762813974213346038029502716609654891116905593212623375745722361941360373487885206586714845849470653226900725133855466298619577045669550141528496804049255355013618670928061913717356071618852084993307296417313296702945219520383203067683696744923733026711831296702044289918743100032278772763191055507185638152801244101078178269027003905161719265047952602345137328968423226045796397394684402971736846806119540972511617469559856299877714111697809904758237955255140025018111289215233814388614256351181508723903222489823912248438288675595457585313120018663320242108165829092506722702071119995403429888272202012782185016541137597054305277093444871549618016422968743389375723839911333769612619241077005579339111460108422527338387946917069396062715990999557053738297157845241134711776847048370392326115675362770769071375393275482116668650977750437918565878547176965088059599665847433906289731267382191796192041525161492907109207113210434763339102296656024660450717708969121953149057112446155461570901251120878080171766043398153322419477516763947795517990128151041344512232230877940642798054498201150050950984389565385251243103630464368239345848487751719127551070666336063582712593668601016075193275639752788370094424404843460055316839739626057330618520589290586459072423062626650217764251429112132596634626422254427541630482531759836644104945652521950120415410010696478835005279148496275413882759206146632073977538115612249441919478262267738269306791929217810855058131993505751549297170046261251745204270327622891899071421474130762652100209770897256960424422027255196147920661647744293783316374011063709748404089025907397653569674653418280261776383145495380977664486890457387118369440249821055436459244692220180017116249394175179222457554738473556312655583088251510344127926637143426685744012272688457166159035422551162168398173649879922064711048039747456394733300257710159586728091437356725236964361552081627768006404591375864199786935755187773048698484362569675919689671978409290069724948257179337343908007415190056832869156573175428251538691164505330220010244223403394265713263311382539943030784046099302596322426605492429142404711966526706801985247768822483698442863297234378497357542245801481144809639354652761791168054571303178756909418318194771527609132458212126828672665965877253123253303197164478862376025960425850408233126156607091685196681955450123333918284222741111905683470921737653888874957833017367957469995167862740260859655211774131522091646689291734864365656554969468596064784441212007843442514922737164831273556460974017948896309317810005407722754885289313929360271510903865101428633057677292843200759009219494745020892905581488177165821871000788924831166189453805913739419829913594115983332645183857909018480261868474749850992489830630480533374219664510998375917555270402724150596866219561411046782134903153948735706127215068519022758010582072149451272075832374308709026294810865140466153262945394280884058285458465027267123193075424375232612059045128351967806666338450897663151790537283383889369399307773602298043828873928894288074263271894349694415532257841971156600613703212840076780777020704382764206705561359638277030949616098080930693942659781265763368859081110645711660713587862358870306667520295803235452846947270399415838725628723567430150319531383540115741215642384010315903447023717644960896512732287362869097471759256040157297007348617749147918864642382378649775668986793280517452207191497389860814734682641290794151121620892424505598272575758922720359947572539262817127027797173842405120508483357828665997426033342460745915293352646998927081951691403107751295652818988530920688142670373072536905296540718840248003230083849974298845578027038143684769803839892176350354848245581035940223210629390395494481428404677219746496870748548104014702939138161353595968884179442587048726118262754140145579203478169762788887013589453849243828869970014211775597702172354973479664560291897627825566381946563584005652810424516207833759116120435873599095418799830987190865916322820033487048449663199433073317816235592909399176671320288408045489489230793357800758160723509102111665491802679326586513460133322583237899252273476145340350757310617690972454990120580650800909492270117870473687171461649394066707732987007511720388987690098822408059538765157037159802450286165792749668315268506921655568177116610160497915762000268104411337857025314063756623701023786304306195058310520699946119682941078114259092009221779960755147070788848209087063036176214905162204700093488464904952276781529928860863918547754412418198153187938755801432033752036508127639978427361079079859808326548317783673653940278159633777465833142147463264341383510827077613061037288147077254401354386200005349916997268741267382411572596567984361326258261889030014961616188614663284956955275132133525278997654160076557189473293768744393500917828254371943125758100879052820281338977779439172885618395396844981057614632571532170103135290064965535334576334609261192788664335246520458794717251465944789243039454946658531069558725792021115849891899179787325111188926882201033398112768791310487971685525464162971203321852679507416074974224682035724897550618242004474537973612228778502617428419334882879973243335471715701786641892572440726019706015649656944612371301974924753088236658414735465895587142707227729406843884350798038256809521584589872443120148603250273556343746048063055958744371081642483109899748844115223764796564831491180052957709945974782713177480302281039980630888155116266233441457860204562118494081720189480737039719466539893330869670922789112886253175183966045605147397510753348001630369684263358881097457989768479352459075957197790006374866710479867836326878016356658472765690014306559946175415231191296544547162408776215847141216517914806921886127378799946871084498121829355713626587207762994492386782828240263945611453667764017378551534336120774224527263148068795344323151583969835199533424508379405167271645322346443399921169246422803565211827881624140291168285576935073122818944324397324446504751191739065875581110090365513731416911337528362940154527239554126452763980272979911579104446414784385624625454534603949020367866036277765617324548324683953016478040534912072266922271791955834739113763837954543505859732973568393452803479536681828957478299542608088064941158389311370135340255536102707348024895283050388121137389855814444809308738003795700627922614663576608023383252078921008097156980185447986567111528519238018022076207768809090455815845838509427641727179489216050540697159581631807289271993326221491884116252273696086773641085776926409739028764241143844484464350732720689505719706653232065366331940954002382975598108237312718510675931686470577184693784383121719345527661345602068086575219230716401055641662328725072911629309899380298346926888049857805989427100988979000928119850866958610962558143656692132966805356074870877616589385329265942972683796398107764406006739416920146548204275947633428114627965436641111426218773181642589199145704997388254950687894790750841100613275752979366088512446509042807917096474400393270121732348772128339918338260212063049749043782423075663432513096065902203647495893419774457727436149085858683039385971254089657749732934578877451163244062035399145759845228220028971817575867200933293333289819380295653245533458379614861366260031355472978398479426642042304682851852647928531584100519589485515355395939833544639112937096014513125564502361248288157080434145423079394260179662536968422765819988213659856898876157425151318488207645080120264901493202899825160522239044519791697775461016469060203331055447878913785648108122187079820798073627833300271977837855380218538656969655693438649638988402965851606870940111616027020571284080136563007982724945876565415462788179387811955607343302066753421946317347890670976419480517662045914313794072744391587059462594792792531176414227075398602835632960209940644269715407357436835393915105522199014386441706899396136825939861063620867123419559205016496776935625662013140339000546528364706233312776550248604827988712736368466322078747112754706928123657934383945751685432304363434820233082707220413719090247217205764223057934769119764973868234340779341757934046088036027284777177344055028664497411589357813955734004121749507097465179184542112301285778755790399686957309044408008318250189082689362775543137621874516598110413788296723687217705735445098046250313505946885421484977454192194489583639885419872557365323752540001009765850787764408238779387947433886159409494819223681313584008948750666471749264533122006406019101110304452105068589818063394475133845088578592681133115160451783774601367059822589968723986258526319745914365013390946341142347738390698160106959668324446173842021585656573449103994068435379890007124258207027779461768386482243200291666931301722003810879406782435446866472736569457488710462928093329092398572488917622077910204205995062275350714218409797827476332963759009688425421650965208755527913918940614915431015787219435314262195494203188443286953070920562659015035032018857148361503981618559754063684515091143420644728537702000542910696386228962802493593082250670492355545830110659789481347308888368707624917316128229856832296835010586414551378427358878445316682853283919138230788289682672055501869623553914768282713677801217123367133314645951803066871523501555380878780501288996541574029741663194307697152351581789460845805297245324273978317496078443437091287972355542723163682749287190940198543570206818465097050508314695985561266172089690725236869607539626521789880994697286163444981226148201326873790083412117018028936524020814560455373015434344640508602922176748700796980201071469265370651819577963881600935599570048652987613154203391061258224471521815149993398116189883910407068105847095384951974269984082543497878780127549574951572225892451239602937609032899818500940639576264601955425970601196864076499573886749323583927476570131020711477288864178473908452410498113299090168629523601335968454013855710962914030879255832511385894592043036459386754882194478989318002427409678975229374162981457873163937753705625514184900606267796441085241149444262879547097579958161016041810107933938256364233473917994013849317799722582154013484813571562090910764712030564203363382035699000033792689223685783324189697742125535004967867506271479555359492913159747474035097375141638880786061837411207741659633191806321580055669354493212163450461378097456035056499189365320202393529214166617566078318704394518818166979952226269444593792562163994938439498365147963709690339335996999736275348312373048973391762382809217051273731117053071369453635642998297430845215824709140909957316254319710839040108864113768590565450585912320046889870577872193300631209009909869059514152436873776776634770717738118099661903503120119834570094192000135228639038159913590260977321397736152727897569667212696202507783342607590203957059875392713855144042535427137452869533572073451847340442086305054153981239011499221164891331236957772462481625640662828729920205798461057150994615293823977842891841664432113123382582563840830226016904349664729115847508994694841092050275997549484136789491055592401832113036052514007084695750358794040082778023851603156377936199799526320418737720634074446539532717738010089582233329278957122293036060479932540656235353517812254162122261670660798970470587102515231931179049521727348040699383779600199975409417580694535939793230134119060693055863907156023046344942024568407821544672696837516144101236505362129221708864884737649576043801377079888712945429837643353167948692668495770255538157919620133019120919482204937810107395581409149341821362245984360289425228446519334810393454371144864901782602685157713021426525833053192076817841565633981033135288353049851797660842350671433453268506042334288026597022796396440547513831290869925505490112736197436523672734246903386968310282045737230923330205678172726038626468609306217856381236468828116181933016374276858127500000548394327176145784673243845585749397240281226361293867362551095141567318282841955070547619325252479338743710465731899013809230807271816015265366326465911377113757066817312189263295592711506744266555255919213135734394642101074023116290774361089457689023694079095730167076215162623241739119998392895318443936016937507448635201702724061008520762627508307984743805581206608879719022605956631341777669418817772011186781340983305349111113884866393214950938447054087972394514990981210015787994682782739395412650842458031831606417162030317278239977804991095655986579854345120155749243062403987077650862550526037991421801483952793358410350603894680358430536751187140264059333362164280006237204218995278440594668280562749076178261424202723768208005116661250636836654676363650692353543081081039890452234075396071506830871299531926092431061911088606161207957765349864532031984123482865600408141379829161909194558266100584738710087715902327195915138634712955356948105597606470611767473148433811989811148992690405382567728797905821459451778700433296380292800874184464768406349345311366653040362781537319237490370953280634275252368376085874710232138977361072666807089192444127126403774608763341394946175103957899369218518622980114721842187175638884279271807247513522029731757056356231150319663656055191080242749776842776095682829213501740412383732007913223030592666757657259419067255002750992959136795406671888630849871026918509083409498980524335258548375666059847894671627169346418039870221824299924560539769833686743971992503964594707397404452283837474529192963613866244002814369158062780699216645584122145197376425155011656213854931038995628458053867807260835804125208106520080565494831445315011712305191695026515460532546628170082411267789041963699701939812208300934346016371661265074582614796166357205073306033471236247918376517129314106427998863067906513695699038427254151324317462582765633097006626772824117012573000162737811965143450871080380036064679590698987665290337734511141919472669790512432149719753188177626821002004788453469377908469216407241505722689004171093831933142671926253651706088642224351746777963163310191929536626776848814480408040386097672946840649273895868771263287027362169457430008022850862486103828708334106763330762610089860089332732334863719134986430745277422360889448510884636716615956101797009774118250529769752886461530367112633085140076594088974859432166554432858468261089390222108092512672494416069790961658519998511778142951358874052252659604380154652724310514160183842264635824059214864316137510260235563676010165370883598198778738549041176796491811616475995578446646110842721711583348646546516668537034666592236862863363161751651930052534746141654041431693225958056845654588614956788848767926984834951218295360310417541311411772318059541113379017119880886558264210465506718646819685955884942462513426048875696239079211879189325410193946305040781779886710449367663790547202142550677864643125766364750674061996474193714372666534976119409608950552626132798740176123124647041966518222468602540268562051184163921535422664860607991561110742886381516606672408986890248353049784343409414077952179023039876257850181762843335021342691853204669103438093542860032216836873535201028234726489570107857591198253743970006442900969295953291372344547211005683832026391314627380972794987128359395261996410255033467511955404344359780746050121783574400220701769648667909855875624287497972496200513728793014689519065677776075464754061878814947636845745097512215029699030775294361092295679121463049444594963415864855349665341636246130164863758499811137278207326715905472051799777843673505764840698592521647882277499245256154704704793032612967997355988411445937662827614303891999370574076602071545155268605701705191047845106278573799463344846375125765489037366964934960400525557985849106572459456193110734689527256703153416222268525121125328910786752989306381460890376009775965830088400209984773115289379478014746430524810592084256667893290046593806142894730146873102908106006289275567117424098461922446285244381592098804098245760947195212564415638284415887529308840401096413952344183449905733184272551455678698514930082882258479674747307061867238100486474702802717323943321152320252646907156885686652012915766146074207022519763452455984210782329739704986917855197314818710559587059428599375039534048308176816753207652331445544538427778681768589318368053041353456485615965016521634006233138073273511251537695831985240289953100756500407353839022224493424834473961285492657022584986484288612620302914125998098834688126708370201539096121684114605112667541915542754937719819167006910313769518341598292666759954770970582228000295954821238477868366451952720758078991139913882327781530960453715363379414915909653917588121725547599744474448168073881952077146030900817883805878043284033905659188761903164433492009808328915825161500032136322660010087848007245881042821042343390811069230320466076286310770384141103738059610495087548460143504572641136098743898108793457215075948909370959088314336510946332300278069748520483148002511220005873695450071135124545477118941069758343374048953610464938882903633652520123498702052605461274684279580190923999350096977449535071465608728096307632230467028561830044694029521453832651277902850746830879034539661818910086596568750600517149162997793389588378346788040343254790459628991355536777493099420402693813530108191810098938027946944647209052269833372229004834674511153579294755333859217696952552793267357426179276658779148917626590237826182976505137234565179717424557255122996697092854704341775417103757358393087655533327623141095132529476772644208402619429498516091975480299291728280208187263520858179574042098612287652218626519134774265664695312009069960324465091903232121038512674873757265139750264505217353613901603929660792399306135343263749267514888789929098459556308362183888899122514520874651206861534934560626966301819319857994615038527520147675989155992380743373968954268995570821268887919874730631400211287609710706593280418882726828860202484659963585564073633292846178915145070117655862537736715090940130512168967079101735107596511405134103793169484819214650876191553773980467863665517305767670979629856496824187595820507266866384855745782984182605339169499377204591671625227164718494067522839370137983307235073931837623405837755709907880040295315114791020120284381888837729420831718574551837242354581694614381038971615067096539189291203696951562303225154456691023070752309745051813546964325808388939957798219851088475050665896416022318930714329993311692963661518334197733554842193650066750152337213832121865158772584495787613198913789423152629562038574464298264187215484259769558898784432033157372479846213311956444794752957907255584981847195045537091518174732662430682871902252206422623143469224312480006702146009765664162857249554186244338952873375385287649655733833152295229880929506702024221440533312912993909454511687801914172978379703907243394153629189274422585798782957716497274891395856853806161103865032009039366502637953701954315156417604951610334437461295963287837032721417856109554442255295003565809471735570149291790473839716517386360880473785400017717911481945829050869122737153231017413020943167136168706305717631096136551044136086547586815710800231379328541328368882884620459531477861165833225146679212472938938137243278158394740040516679680808698364909329123187148301259308722912898167656597495521104330542275440891703647288852071043506317046249301201594840129321995479710389767284423183280813471833744210274020566588571319750143189962806008325601691427502790181813312102611479003221318764201165060213622819948271429680785600890476267072971276608483369189795198245408442574798953052398065057122140909289853715642764580761040029270597168582034643316921477127910881075345089839910203152786698375797056808318403509302746431677583710428502532783028322958158052500787717411354514118099910320578957500691651553452866217928780029329520716628920710212635969895348469677071211627514348445794765479147323547747210041108907714063325622446650088868224406172043548343662792240925538890590357064993627975179695791879902921662279668539702010657688391871273379882457355312119885699497721055202762878674037517205668494589421320212854058050145804117350947924921334197224162415514320120964721162378437518380936940006416060712370828900659606699124741249694334738935635136578384908644867648814413268229520057889165282263477571759609490029585600934005134172705471746307674299327673789805212066959791248084334810744692937943078159221564101168823758374674651748761039617018367766230682985657369384830903869686343256473572198600425792711451582807922867248577997884153934861807783504515981575695906226157609934501359984919388315692485716203297874038658840304349267552143083644326665250296338357807954950681604479160035263523985802281292711850131060522783498400041785422290913583973261598079550798489625026953022054710985550386611932885777038405722599749229115132553723340259963092442234080802319677547556657780563241866016345448491913580779198054169436467935905692192549777202749435548051906835714767608606576047572874562960658927382036366034014326489727862382741042930753160363828508402254618169455960573076060696924025919360218055944488836284424210907292304563359790549267470485948700957593140517032031591348360261502554146608557689913434047453314586669211629175777390661151822247674853135971391947069396758888499197081790059242857708285847078691853507065854373367500671110938336945545558853249696422808595387718595839289843925761016204347788761428212347483964660756226752692061894060311632521983370058854995563586931068250335561168428172093820335748520306339612647281246307791561852714895989260799732385849857513849093818758161356676844981082859617354819452464963819726138603052514115191189438204332082429157589273144452739228555098340650985304692811972911225441594063851377000571393022081006122969344782761654134532977622612742761958911133712859738188744780813431695213731525810725759013042387209983178605249920340466782048313071236804366332281803161179674455349282678859526634752019527466239025004936419115564757644313711129601423341813110834182793620534805533107686422175446222113968505734090553676599630899104240489995019555408192488320058493310767735992102199940790435207697204340809823526535250898321098191164356213390267385507247718740407276238283457530001794353450267462525699053444641398146252464296030190380400141696556187872928329898127886434203673251314038887860074535934963482581567255764305739725120143560793602086036720843897668793294759627885102130156042563965404063776040268199186680040711114894322799090256425685739963352029454834020219031892879784116543185734832396347297441993578054954179149949225798154556863526902059844814800817490128197930301323802782851517652045546861515218901015674590952825895088738066629093401375403693236345786399035711815724973260989977144814057584391183865051192628425899066566499651499225807696168557246297488201077212250615320244996729051480245303002984538599368793412641399277220083897853601330777194484920085444823382086399077977116751241851212201665301054144699429689584684755348332236903749909192697111826662765745312850421696873817164634818899116705671013419897540446427700077072240940255695442699760925982647891126169804327975936704709523458623913973516102345195297222023200910896607273414377524849772461889567109979805619313326540221991158457073252111105366964490386352118995333945935450802329244658205072339534374369990301148323329644870564198685040922469155544687944146059205400420277546900320736037724547456726913713600889431937343107169820283879009239906477704165484355320948865480642505589081808816953208212097275329438768967240780271009249560298468868365198872706081417853812791100588609092425654780345464612084795276235380502649390322729884982285418481668112359187802860403005239707325500401388579487262899326548781862949924665643435041110224954616474617974506153938873959841317338766000586656330597597243664636593114416546659879041033768449722145726475757570999108000835957016427652207973288169337764230465061160091082254320756300076051315047819812195597583163719960653172422980173922280380104629210489302293333138569089654671340746609174732781963573334574003516526072763823223564681816363137539352056664686145873403155412721597026903758111131637949290460982681055286206088168921840702733602270189324758040906213689181479744155120411660726046069600342232280064905939683199236385238104865703560127724575294296205010950174816194560295893519648307262210323499713382724137411979999321207331937457831801796047423134382898951227549219885420829014146595063823947619569802553663129328892650592741897871478721314904175891749830597896551812666297633903359601973351539070892596001238265944868788615457910621317148275146165509822953164052722811938158483019753754904615770081851648458035526117458250842752994305431492676383715549314554383025082171487735056131639029702573207311953784214409626058400038502445996221187481796426322354661230709869629742898343207730094070987666825756384139356069133776042719218917889503109043262627373697215788522117415917150828144794163870761538892850139168422989651302056724845548499323945114161748158739643321349766477715242093822482723256624088897739078013014522906125760005951391765524799211263958644055698954017591121062477778642402907281861121594888948505702951329546255033438371222913750809863904121749980603029763274286009255754378172512161325223681812922667367657245113623282154911687497611784009035200792509187699436774278942111207445618342276774001266294196962485708430304683035418251812680724316998222712346850750041311588262313410383597427523968715117289173101469277915103315668587727226796749075428040782868703322092542300639354376148757408435782683156079667982718081386437396222623239009641953277435557891090173685023938876653653716656892759262198696463245108267686325181207709569026046245620788453239025580741736904645138558812086830311146945276300354438532057636116193713444250246863689108737809693992591099632125528028543864262914139626319757747394160220090232657758963934851435401590977349889942401209677074805322221925725666022489293502895782021520183568370219744319988839693880524083888386300936317502715020649642313215408633383083282917165279163654057232437326388593795880153789004532238967611313704797644350662708897451461781826397251010279381376391163317546496486041696826301268292036516827032696171898115733352621254195702036909766086588907978464052239870682138344123559082151041725458065573136080924574273833376251676913705258692973212720438243665000511589149184979328329491973324862294126064052890721943894045459223185539388369507884200289497201448305618399835207895489823783614546513695183303452039089177223184432456819109750707277953619015379256270699165079438490893464093823903428660332204043289664112628794162286792426085727049592448194756869805018699604867868632046875126115081626261011346491594197731117194310828981200882673684526528891855211154877341946623239418318837218536983806574032762829287278061010782412624873718678750381360859779744178045010694146506382382139644186934555858828240082221649120462000054225537785854906442851257240303457472007572041735630284976054098977452330648322775156024341074755484757636653894848752795093782722983185841776125675821298235816401916306449890653628794511426524403022951532451463627895058387301674281568453711676126741452619305837128417646928047689722568526854933752850723837768913518529804630511869243525124695180275973084360584265613403036776210360437477226602447357818967907327669774888239437340607378021604702451868338574254688593761861283306348558706774494111456401001631029050099334319075177992143376068021729264567198653474336514028011148536781195835643153294752221463952850602724877382051525631811567924649308924424547674861912053884850364246241748771247360637903333545529567640986290123535190268526439208316853508259858335856020561455087866431118381175322380464005758773270747860695980579257577262057828028432497504642734127995019608956198548654242608112481641888251573561456833139796742042251332318497610957379714592018381534047357643216882062818747099278892828114348526121169447074400127636249280166867864543956342589923284692727486210990569749609802008674023267985942236943824906684977432595264227153959382345636698341500310323253171359280323325493245553450805281469786794373604062539422558955263729327711836690445633728033421633458164511239312484236685110924764178870962054000197503599274671243961881193625958379599803091367280656008971169230244921166832325746880535108096047929789920638258028912310906461494559976960332016644870986389338436344934673294772696050504444807279183548332491338125634681193461426987441670562245793945728556385792242866571946836198810588245917262122020295074664863843199101711425035034473594178015036008003782254399980415678670805521999948654869271611362688144031227477410042234086744007291435620180396240928791135833947507122911847454938195630424096518852710807941367587984148221563692789808542140681560600952033018335964732790848899714157657492710196346034117223839686562120289370175430199688099678232749948777816482886606814064868097171278170316367638911708117659158673866043280814761418363305595980265208361579902133608849208803819448635536349583329455998633294763197882471091737154374504582547111643279484137391686880314847045943794199482748529347726341629556168458218300048760741353079131200707193093209173731228847780014016446696388937641107262840599318707800804616245870991117290284290471713437905321740066635319512374895368938491332932446021582671886703485910147448490142501924517353013784243654908775973616984919501490939181769874075216143092622478089020678371448415320549931948757526358316799304922568577746497332204686491286668961585221739305010641570204932483985789357494896510348166593514825989351667688277809475904628594335701679838269749957829117977457120250632166251177733986563177480564319845407887571516259142756262507606904392502083719702807300402674949298468989025778046999645505174405606280325555520256632323854817219507334534639439186728696723405717013702933875126179068376940790774871604465419340863447876642910002567952417991751876035471615016102694722574992986911400331911283681747936695681129036931941507239116798646841713444752568420549768525664968459648066834183324462346183513966038204827437228071190424959428492301242316907412243343159024660908904747607884090270638928470178499216222424122229201359822990967121970526250974647775260479605348014674099431700773852994124523124378145990818742041911745198768530649440078105346087710452371589075615104637845073129403957594188282226694203789321772104334996607106837543818533281903384758174760015300570067488925175324044103207915983284797247994602734535808870886264444138523933489117378473075031663286406047477372779428134905279962029264873082457280417219586422566264823187778951517536565972554291326920731949635712477596665909141825153467726059040737552347090278662152209773516651684903521181949119241030857398642730068941393637243586460364556726115801261558086145100754558530516151494718944946581826965806066474232380199365817185127360263079492876066084218678392909159792540986396630581140491024755841940719417779810686344344916891655470597923950461156842948661413889615231228216450448035552886761197663053086181331098790272698591841775336576763292806552696806668821686034936201453782956056988032642873699753054633406346485294224013263064451772712730387659596070696874478751718366380759764238733855070404692864922037403416395557107502973487963476801399735123561653261950018824628706058532872868685293482149550054025999608505180889108097967764062021735656592572914869448520241936316372996136194306934455260851672537020169894278959281999094696995086511659969535273208860275948123489146531552451426823340421325180877646118877409131422005366831402763790608525575160236916233648399016334113357500592398915737804739247818860636763847403940260899086235956702517149837526430146086690258905545628401717881564596197893969870023146671473849339814167076404263546537068334718889842844994367247966027221173234471360408029480241194198967738818574879456512135410033036084027041868641414437888261752621451371954941672531840196526259432443563842457541647784963088114524991967042791048330623117068649372337837870570747671480505948081514770376840385057761394380330527106133539489696879755285383177564159734056259204516742453155322704294465424804115185375809788870103818678120224022885686049625084301123934326215629631934130527689391893987584515142428052091426115800838168238093212891522200532944471591229274157064033547495854728442307412685309900821581365321472702319572123682252486165869142801375331098406552060652081989818510446732895347036672198577392483420958451986405140658511481801581379575145207426887181323244543468564114035119020829895778571168431985892390115795031311114219629443827575993840605822623840921490772041920779264982167351204865077245840825751447669027846796901405216529309813951997527827777601585107976536848905418504600057826415241367256736514081378739692255788030363399589004718305701279315840408402276350521105333721168787754767577767289844517822903258769864449811056967118114626707417428477898906837045178318208003132895102490305707941326549278514162498134038808572365457470978950089581770564431898424871872017870808779350032320614920797474160822594780630596697448185816925768790020831695140764746985025658275390639621909441738615407240568082662012775423480911739177888299009358285674213084906418482301555925972004880962293786715324296303162812298921701826076105192152358356750765578758911403611335322717965654639387756057669358795207937637796206062970084644372710557505339798212275706768474860956413903983389324249639417407231900028908462538599571764318157512423138668394983727603472772773827438739029748081538376911061716266443030168935034962935927660113568064210959650594951198413468815717592539889259308623546255781357809021112643348778068781687181961690257459109086674065894523678169822230158991176041428397293656006583650257411979777141101127604133524807883077581335644384103075715533177183748906731758481452177342302223715828771656443593901949184165737413121047777861755002254249558186695038651822154631329175064298461921468662459017316271674649484340504957116204618333105280798914041347007523808607746330336040335880191420269689381355737736835842278311015443269946053401021997255909951721747614024047002660530715953536930276676576173178755506023166587161914135174932498668621603708466869316638824035575827741921939863173455329385220492296320866550696313955588650002312988250961544062882247325933950002535303313796341721048206843727538959801697074824656760007938318097390247364172683357352165361091189039716140487327548259003268477345010509567898087155170168952327755524313363953505817574490752792838525728325632800966346664511052893494794849247578960177806276835543325470095346873813927813734275164953931088902735547540504573306087296590115514030009031821392922309618287455362290339055787756383615098485248660499772974115621494621332065617917565924616275907171069660538781137016335048943912475904153243890798841547371142166003436053883199554580362952578795355438234500402680437200687490739342640646830903122033232586107498888845239701380712198585392172825327092650554096907481307725656853270555531764573759595047748819047527111939213133195223997137337224038277258240047851899287871814104568093087236103913911219814194786418558993007572176512850178356977936524842269584169274781928660283815877859132531041207060945984783928959941271949645565088132098628560669935122608537897330860634740364032711158030106746905940943530988507898930926359814417485769221727956557837579614173914862670116281991221801654713981325954635657344232355777519893412259923780080462879979999184466325944799994127938305342136054183624850388189994739786277707956256814260224459360466466387477147261177648672868981385144369051945843689847184978141805821926523921886160167352896012299599061999852510939645619315388716005880147487421062626442596490568018096750372881149249210970167059935737681664499988925794908643944628348539036111545302408685196797574476331568330470626637089683903040377952654586249751813735484913869453632308404372332371726245700993415262493238951116769826459857969609872949914844506567955132230708685734678192045170761082871263895835316741929377952768220311135708403188563094230505974960943797783428209423945329900200735566898514214551595955369419505785822208130197374924340764715002966857645343698416401598101612347378500507625481641451533777921587539005785849228324808320544254123802037839891796416986406850214560597490059991129876939384821236231994296550020713084400582281515088188370332322831170022061907189943742621035966561316705607397893790443914929021620941933250091094563438669113196679127498394687067472420392603617165621087034629835613244051443828221160262029260737606205697585556846461068224356723819919852424427058872337013920178439022505752419676042018694278860447696304437981824342522874419195459815195336468060452812731524749888056163393533133777817457995490356678257898176381896629931337651223775233672386956773837692923162570335743725538521126734069048203886794238228535601556219053415228178283169609510675729863726647212232282770894371059218229178984730925117137425535623608548729251739687207009759649957423063823228918380942398765840693255239406696676892599161992302725336370697656626573148497770188073258897800267224906050664761949126883984035928919594667303159904039657829610362477521005908814777006253109975588684964950755869493158670454170614633154205905685055204862699381327866808052130521406252526630340240707621618702789030025721915271684816786266362073649571170688297874955741268311411180525061664404942125766799105036170192636061664336208065608721749180587325833709230599691336428233577028667173998145938727396205661156481096010491017309302348505953136622277858393505347348031327403966712537933971448757342836990055009189686835187325725464909700962600583068503949760011537491289860243502130648055895847944986632625735146753214001846562987129531097214969672117797571727786004728040115079383802879610579397134058096844905479689944551638780039578938235327960689045848000133552947669263883372200706213070625978982348621750909220520412010178331779106276844703611314179417713841831914497006744106011407003348889914001538337648279857091452728257904717586802541210112183104034918675687922579524316602075219985162904748184902372433102604900610168851313587323983524194452665998260864433206306442489221788470846298555813042779973727743169914894166779412735754594333191197836872973378658006332864339256394264252273258689830175714581314271524205638622625564226100650641909956484297322111854669025244333177708820817589356613194021154383061091800476634710467756437442318794789146456568212652185278317931514535287283558231678377527793131404469564438895592511827285054596094318699464114431179147205462763550699079269881336363589714561987345114307104829597644371938236672040144711621161295392844030756740248191396661470776248375400416701106200633884649482374327339656920243385548739692735855048454010514583805657265676218434148198328053219673966507715295741235025404301840372424907611208266409660201480831433200150493437623705055464042684731684379109293934958884238632509891692283437313785150646765763838744296198301501264792306082751776141362525684239621755563543121171116261048347777826751281915448807299559263792457723424555234985527706363437686540353359313544977360886762794192790976711294515339786882238277414345448093875132448943599105490574621230449437534621403483541662578875497453840414112237094458041110817268183917406340433523144684152488565783305922381626502369505519780001257629969826150396110571199434640167199809753528111355766601726527742628539914000814620780870120452823933469961679342477702762801101871269002675791420013153312245888402353260818007774148382892958093654259522848569948820436747221223613138398274988534763543585297738036711309909659908593527676973370266790234600049340559344655595958381055227554033454676009732180455849578847242687173269355653358551307693953454630831809187390123190979154510013797332827476202494531171250145546757650068459692026804336697632794365687682724296289794253999704247328272954831052764221778665710263043369176187380344059639939290874966995231349654339293507720675384416205802062991746262273838725868171150569907320651860116883911275728614454697578397002371492954972420198176396257053163075174806598266558264539924654582874493181553189905994228787056600477582689446668036289110686687410455990826863756754941278460284966822627905766410760205233731189817911024541462399745399213860440296495712134420261386015631878579377017425509538976687242900552819915244733107070807974792021857125371760066522303030501337634314659112526297869238834329570883495849159730175636192047141092067201824288417025031930981331105501247235961242571343262848095787245698378684797780007280963332281861543368743852542338479964095700530871761736519410905326657951615844634224717306457740446760145002184085377244878084251694019417330976780310277792518954616681062034828170109840592851794335844942425759796207719868478975983626358390033394559959354087202794298926129938503907710627430084166332380690320891395919432169841537328045971444813654706352855094525101078918819239877326730039458513635840680602035777510507109767288147487218016659322230607435255909714708904944308344941818888527264345058629626416978739057524944298164434077049872741583058192421319612470621861717549439092775675376047280257805463731754255628100048001805205945910330938858125756795784922601266068820848474270172430785626874649890065394320820956355505971232339904348617323763278193007171806320187693867013170191753655782863446273729589766647097199791719405136035443794612387909700227757943109002466627706525029130647428741138188266924032829149955622597202083395396496457326050747804324698206818318363769680448902268533301144965860744997945398670400840107392200978380464825885388254588223465618806089697694207075829024402770469808159649265624146897873694702532299654962286520527134342653344472985260896318079117813643125827273104522333442671962039478310053303114382612765395553779185900246825201191860709942450426828815556536608824226632522244445363150013014481185395135065516429350262869792877694238872796267572576943530551296932012466905915234035326022517605089081735240716726678202722122387082800745105106661310214016512875910293657528722880750780723476421460135092699514599513917491351580150420067457188277323270857370189152234116729639403090696457728172460585582364962327871156641344495576298352131623986013628341521032385624928918166191423258736542220772410964948046379453059483920005507572220075441340648837419263481045248556206517135042412064534605713163986917670148986977009588828675871361270297822168095678796601038136897504600047177115304024202517020418242828426262413610200341630819701161609763676852793429885155915839603876424825897497407619618898315795561167160541464396916842536317934077480331392270219354548438329884212665593182219939715537324716240258457033137758528179416382773161843613612506848164070033889323422095033339679227260613224666683317150001025177128490128483982103170267964434885236284173020373115609315839903353102377124676206336780370744086539932197349441195770596508776551964794784933939855477777184776127109701204522584338045901548008704525036533200592589331993040493906215359996560868664302556366536392833849137359408344287084111410811088298846285840022242990988487415024675613714941926538920203411416292672796536765085351206735768042904152534565986043275993503108790911381250032656706017639671819557911317710764381610719018850911781010318222816569244135340916809876429349970988195935745201498460745364532892178231299628862814645780715160104467731278716876931074306053928575165875455007515126001103691591226247538846104496624812267474629848913340813276809116380759628467238276423633550629685064344165368874102424437961768738290089308908585378790983765238988396343384628952787986996503658103073038341309484494957857831161866425445734069073420329897256679877557220702871025974500402373917401902299213383855015972695613473476059375655703264192125980212456253788644835960626416528716178047867977906341575394384790427891167981469933427563145589440728999060603372260791290940840678285215818117912142899545511373107420400063978419266912019563560787461394521437273752810759888690545427918202594244711342364201832539880914985197148342154666923850667812099743013664584411940119200161790590637930849077543567283449778204793703177715081510787674311932775970196440953657943116259133422667152591398406193042221797313007227204607064998958940846415704310413973999268628684636235123295975747014275927815634751576322533923382778422623064551692974949199047314584598027553323877890434499218602418201046788018779981025988569814485661578097826726235373211512585032996516957474362918660029761403108856602046481540776067369767864961526568483384350036666073628985800291045734879764748958841761340323884133101620738541490763474654318848419490870914722628763000740760445202694194611546112392542984174038120967277017015349884601563065015556032104102252548299825125427627756066954280906861290037256720277844625385136423787945969684157550321150581587088277861056664492898853270219696587057345051600810951327237759136921208628842655231184100492750649364403153041005080732718513426237113716861805035765409106031530558945588898540774140528583415181807488221656373175350984879287779212013732618740053521207473915606387230510476075112064110283840448196289232913542740201337589981964878039241617987946921785945901283539462072316794969813547348570427045791210167696721960914878120967640116225840858104836432335477370155880918568496452616039121918938224331785757609415090310372413513123373736066873779560694283183149026745809780571545575000070719964958930539351427468291781901926181473910516663843535143705202359082317644436046761123958173830843389259106579500921963313567962685592260545948718366385579449952226046688794050151185525890244826122124219506671840763492666928402097670627425671513304176185805999604658606958673269203775452514580926805289517032163485205804093109375290969429829457156367559967732594979292393960082802812565999759659410518419689998760846217288745894881566858584137317816827366461824779660400818501873414232112901370162764326322225792411608523576663555013850199291049652424459902981797243982363498120731574431835795511851357242481158905023685619068048076407589132128196799084236105266227687049149406697676579236058537270860860381557438351118997370631096491720457940066207464572016675460267717356579443211056693393187486069273230402909051521854746487908879328168583683288992945498337419401667771567062070235321418896778059836038900915279997166824082726433899758672139657158297479822820817898606695591942764763744207491443234815354427636174238926595348570242639160177498500539796802546359992852788430657055097156895050673033236702679012122214931288615914518241756236774187139658199695019498079920282136341001324237772895672413053955608157437340193406595391612280524219559933674500254703731812957667243056830149304013427004038139375644540346858205204981295907959978616449041012013949855296478989191199558290073686714395716171978238592592781288239477258713260208980255897421353540721706656326311258123418779221386309567455992647903118943613493570841102659044999405390295051082268012965671825732134231522838154752657814192702842578558454405925265130087808428485631020492776531209022292625983207555306608780723790774146655884951005674287020714718259370138983191678720604917095588390681068288574978719706238576682583308298131317131862235397337570614131318261129278426884295235253610436108937910677347938146220350357632224698246117788241868472691679319221720937071870563630050140711690119549573722790374587641070479823851261909951833042868478159878953755042784683477087610735405299024658269732172721502901893591787421684124232928504097184263654798242753023538999108183977757718978355070044693420464716385909617089432463958232180950741559126943793422243855170647789926499807585469432132993068993553627965397909119755561324467171326695250040769472307605815036839844554486289084270340603708696398413145964248082428845917890423969705122689325199036108553170007361230191773746072217902996215483690984911837280400142465081489571089693227312119083374260097594972219072510605521993408564547026347369926554431686201810871309528947768689233833115361383091504328644890111609884203849760737176312112219442101405956415292297183921050896846554722482195647599333823061597544661626449322028247100469920412004475701023637732714698703738000069391508013271391241625697665888581053160961997487234887084266502339130053563159392328285024543480309345210254106561513792615084202994571836372447548821210895538353296295786820627778230028104903803507539762648993259984185024959116557752483626805014174240051025631492275692937194257199698698270807671353733774429154510332773451896745726826129440082628494227000545043581293057065153533572722943405290309816652190634563356804318901320427189107844004193481092134776236706905478374541620119632954993967252769771966243187614738164844355141614749346374878710025138851687327410957293893552875004378690109230681580691025783335845850552799970562332703112687427105420028938597111018635899810192187051967685613204180498760016210722315298003262783844745296317458081325498853239835781298897219172390502059032634547326995197103905917279683979061839230918818629849079380877174196813308569525464618579397267172333822861788405116409181278179291730465088810957025027704415655587924784336673943599181909110834182277741104803020793012270140622843194007006688168880928959091885913930618319289232985028432538839076012525468328132782817424486417072630772000098179435876269167320599329963470476612498672551276929638202045960743291208754534164400641828199437253533966100326895086220180508911678543044683736349961334409182155021260343342740601593281294844635906289049886749841385865014329841752290105299290788577875836805074628951376160853241522853525487043290318962722669053224898497845196829109754454881604615378660124026988468805844291051442489301748357804907946989429897143085164351092655516190218360173032186704065679171873493739752783049796499044357803011577723478353378578120509424023013843179133409986383796094651430834867337168412254152190486353645325729084474530202385949552477096423671343171153556646006348958086297902853855206487375731972997446735115206019687005402259863900956341654440590866586816966440837202902027933967721339578080968681296636505390685006674470879117197682935649934344101695163955923790542362561164675518240556989793661261975692025432371449376954168629736975916200491694233295065200115569677652661774433300525316106074888852530605048986092211568193128688685014747197242644607190576808895230533681556845352386694485748186433671376520933270810444703766334937749759334623461318168969447502002380098292793357731837463578853999945082478699400033299110077286886555518418271797386454802905148313152204065942656803028417934310274326858143792370674968159372648328550531038807000040025475210493358498752081130520723079433043540845324834616363602165405608323487508201239886013195981831730545298939261053946945588050139235777268601126467510505629860983641867577769969362161580105893622523499673282737396147478763878591501681433269922155517921632845124678190840772162211106047161197952535739408351909219764670386215212642404708408693125173770050815461954914905921325854708279903373359370099779083427896877053713339462015414590721051668757739375214231432658231480233092474505918389923122554406476576278969999225833194780797388168323848583871386716226098654533618600868228291817481806827324287147846561650971416497117321549580084639197671438735340862318519045145631197973235607426074565107103336525819980904900067472203008400978917345530150236458340437840757778891901148006724941721385564925166675405189873652584638941942755719619658760340535052971306701521481478329335002048495352174143026023182253774991508107132155100387193443381052541113631034344105192225356359488700032826792036631685833864651713526385317885294070565077086683745949151798145051153491780263710017729916218607346696717207285693089182412239915718299358914844650986358113072268415653591126995981402558437558523930582626316836185576000445356835951810639619105722244117715095141187702151796612250689262901026218857353511345803444289805830493903651574822775610573125481372551079286276420860877720761067296771230654207211890558312666095142138081178458864781116614674813161859094396076831387454321968263423149722443834117674926312244743025043114269133495382808795431680084689987015888697630488895429336906486260284891591899290199173614419828670420265969887510940315146412407248915444379322156727728538338791576365682016663089179462630943413440561793755093324100667096319876300306987403666174258976938024940855575396079646349007084360424305659373036346915152865268808457274224649792658761856698244772472254947686708259375876771544189268450264785053585409521913394848647519635660865037094363749215312969966329734031772091313672220538741759929614083149046444187846450098537725181450463949151041715481200841378852950519815941275479121555361651132471068678370831845619029275156977454387708295350780208621437193255630855571515988725826719228739828887020207495812988747969983829678390312500911523157652066979383340824579849286142254869158267923344739486078417684349374134179116432451604068990069139238136521899428500623189831625721499379559639173583145618704905540676626032272302747952071656833329106995897001118459430684960653658789706480953023884694683604062625319947607125787513852374106883328803460640138549199432772059215573740580262034154108889463524156274123371120149874295947360531079520775948107281205249070907668424053729392055317212933827387492224960957826118109787644653985507115461547774341572076529699376467711728319795278932328507159260062316137180752855980267917138141905067124694127355602776484502937256024049266616569975738947566945170612423305877515586828176730373542970821292934496327799702858015922683298367979300783394207463826556720944563799187062288358465458890573335072604938510689238700515678929883242370250475902357376985030079982134865836957488852734699329918063578676412129640038644208986645356059482127022931901709521467803376562946883783698984275787153791790414414736827488745159864840500471211799203872378058429802382067334954154797885697288702893457516792146904014885263784184067790863459340428085727802983274370036225548175502017548912962124103447683152610091644593557303683708398831684457858909035985277475992972844216872841696437258107301022224479499097039517065640034557031732352565689118788779371155840591150836251562315798706511628986940332121462538399417119444318568922442933751073237486447193798355029283781236131284033026863892678953806807711986093992397034176451214312826478099616927675018500212444586030071522167277371390521512887031999298517965726839508555529353094949154135811129712691637407037534336309358727283131216615344820977126963617375491830594141546471218973706522070387846782974348735106475160868456774676861550052356256673538626987163668629071474602571056500578935557550115038847201695309684273149741368216573384643731791302214995389942331266628852682225284121680904866156953065397080182971765351451958059302160923524023459109253015884067487646440510306839088538603921494780581213373294665499241399908388630412158134269835987367080159004663495768144427610794400249660126139310673259488158841752825658323968577374764757548830781545628043319060133100949770083768199706710279965795536052872481230879141432791300663277674195721940994441425240912478641437399656697488940078103915222425530342760592340100668594277853791656890780100658614980790593023687002240805308144062596999148248741876343145584163897989234319639377332210202504374220903659235866445422990631917535187169534741855998411614512415754982039365557835994684614379056630059846178761263461986426066725040158410462586757211912128544470888251625610221214254413732982416724929056396681754760635413815034349697717667510481208424381887976511602849961063858937581294577752012579313128242138413485800897861287041879012553402290955827477724319141377981569475638594575718117584444314918599615253867299470285909157659865681849746389255369743340173576727421055342626177678141673084815921846999276243808347605309351636986833739163192674230419150682250795769247489094035215839454726865657114468966953984176323966758283438927899864836254744518779860543540087867012311265248675991029197559075364934067736408012675234721372282956856167213898714525916764192714592112933604331926060152075886432482439215654284603561829988619818757434408731919185317860913166199599760685719233364205854967304868362731709309344771897538963631278312346553660063434418660756639649540908146941704360973934710312690425762085367342776737936397177515241062447544091957741469173633044928668384478584683378676944848616099766397921774656042865071553576832859814643434300893182163645895662192226662929592267154622507864857240458792723365016572815665415620509368524326947880810965721642538833894620061691074423997157781582679376542430107267656286175610547878283502346376354502149391282131396770274197639575574179051903292606919075489643032331321075131855280715867403083581381711953238598231467037646766295165305148888274708465649009920618203639856118909011576007906145498292702874649811529882339840970300892096758206121110464383616448026839754545708000941161182805214720623514965732235040600750235132502644340573131328222169041918717351335259562530124859553372338571553766578450086716663081236940342684379536604642884621438706146345182292242064525601060144478353622986255314037749724609378404073402549449708697593526925606900254220489089984526502458054003638993608932376240874403029396387944545453785926133870564902745454978422064301085679805699005450727957557968554021378853473890653647585364918560141082104086799007511804881861096866140851689668398853377997119272743042241830826226656309188745534654953808375956957373682076210027016471439057384450975777647104953916546126139567780117898491122977922530560658557877693047620933356997348473974756505468349665322230935145771635333465676547456994334568302060384597455035407766437342374543858323719194600657337904901696546729895935216089882642594805071739809821737677986459240961894605092827578749184979748062326567781525666490326263989632302496683849640213094933922151305355711792436932788119540129578304145062444028689653226075333263087634008067249550664035969968473691982504899436957861237431874021351365631842626038908115089498130274585742153821563323674561302212051350823166952275561918959157903934058373791955155921447885786361851212505317486757585569855858781668712927163687502511126275481767080337409433171467950364113132462756721907259215505414092806827009056337989661911980462151681548948680428045016971175787957028103975628382162042011785840770985529490574685750293968897793244299481678373635225549760102505118829023339011804947915398824380560230202995724985022393746015406364466199506229051108739039292511944620668399344589195140738670723508426085292401231359770434049701156190296881352967778192816451897283140414600797975135335866499562720788702211943221760382390449375903101005817299769504875372377121613696180677413909578619964004268902277147702743174398616857517870033868819840873481579231156251306362965318881649533347748931303362115000396354106830654299502184463484158333659087464565795562461929103252679264706204046379551277269652773584155385293742713509286711835176676023145906915766148267407980600226235937672355736212714796744563401133666935547059111415584107737816482823910518778192313305068351721179946346991480623219304564961315368804919732033128133539288389822491127143218697363213276231068905469726500632613756027994452061640871118847952820925569356953582202208567684527794856093514367072756036669748434742338867261125907778051711341249337866934554672443977989794175710741028947177087717960480558784886150163851557887106402776759538400461099034971272806853069861937006201409256209426952971157508913919950929942245241097892746469579692388162448327161100183188804534535245198118753059155173018588588570053730404677644847096816530640412831433774479600421100323970939039228811078455308002003763591223202147801095754568889297962134267177219585722493810643256487736151609918898785103291987339705228471018748403682861601377944453091262676665599476632828976003721670317237393866230469269156478325114854462400444626976428302519201768246215607017683773549930721726097572799789125833091983976404407500355257124172670658520920057468578731623474002221966155240649417921859634418183955039629287771504765023306945809979905894651925688321508291544601101701011749805191561117825419117970684490499734705514845289917421443329226216560242125591448938138569449037073392705001152402948518995739195151051146014534857294744050588473948199396232565937676452534877613190431056703311782957203253041939140868490630786644198377778316360470140495054667323841120535780728768428196900973443720757812430245595458718669478538021481517399196107414114141433201404776295411697461935006975795793488761207910764709277070397783161629610836812517967426327162521201303135119562224446414430540922276857453716537988686299217466112479156791436062242357979938396054077537107739306342134314999517906215419663325021004464924151621944401745488340045191403940617999494477273812131146288326452065285056432008290830642727891580615692665496829743725588899734842510214749050958312933001130886771920929141190484262777699453103324323229327141560758257415755271848067270066509160286004322191737696721263401657605469591632416514446878703384298282687252791591869999910017612340781525955975339608713249567624935891988549703520268788336103429501990013571279745306450041933109934773282057386096841273559507814952041078237897759210853721228242530800247200816316485605525145726580205151183767074127074191285686922199167202207925843112013284460370551271821479762727230205801920984345976995710817475922001639382325141145318842354298160367528525405668021183224815070517787082936116619409192745529159449294636485887020222698359020736950238308813425083511094641471200215467537192531634405707266285536726379519518624754616991486949691298762273753400722933432533933839206794106993544141220220278757537487248011365941376900796854695242102712375159800966984251562538771923703758148942048833982839443341661715196987992373810373302093690842481358230152939327005346538105751532038445642649026950230449569006190224455768758691363497418518301494819141656377873276321214075764063873190988030457606558391720608240804648735583755391067624381012436307746242839657433980186871983742708530966312286923432613589273469097949374825411935608117092521282705247256214764551164833125357722746023007345210005659760107918677919675971534539314109675281865586065357127549185549063204521253638987806181641243430407931824239101221893408506053744756054216382385686206689220201205536179595196215775124899150225444700336865160180113587166339658786664096895777045097886912053585419455759256816205095246992541192939306194394008613363805105118648573428143665635962749353227125601493931681319839739340162039005705246044157973684904847999794676986255766790864646740832354313750918200798552247207758883323787744660158428377661176507031036237760402310211329759904542998880934541266455852440534367245183817314379711627347033727394582503762039250284151607712571376029752079575930005900001797624545962571507591411058375575487375884907987472276169586190184498393371068077357814949890900669419628108409937428880036470840486360431234953727427115231851320243078676103394061171662957643677922451316571702615876783529406979151889162961212611558773862942385937768770253121735086075074002880025517348333903810020325960146882537715275658269436910995901190314245891761582850837800133014563702819230391489245302645893856770250647677872765159667366062306149438489115846675578782277060230525314491291166269084593905010365161072904204008220111138143369730466166296434826719131481955646902056170971270966775866582523913139338472771038464227473536008414587638014529624890571772578757722180991655082324635267950356578261954817209499932376765330526502220266105688534781215323285144426154753122139970606948436937131639800993687146811082720582206222249197178116054503935941072550148449167921265852363016519893777438665498480819975531374562293403297549197695740876902717334933373146028593964574403461812287359467693879033414091004769914583893096459940375897332183279921652413185948783974893319916537552358314411083405297651085547242871600147377425762466792961036186902801599059103880648210837682370732221485493949179460526825453107281544862397344505714487944463706368038980582671951874829301476627732510855797127171323717222226200795161509309937138941554638198207242431052641802788671414307996625282350565479159023249098676389246169980726456591253739510436045814450632922761268237348457494791046268987667023622408826058362425523166449403026868856520326561304461478234316312575402336929450465217375866601948766646389497188097997563024335293517519899278860626372522688303399805388179175299730771685961835541952442296841741582164317930865924236127442112543544686406391886061784368699450145044412717080497862325864235693052547906928133437948718080952400138192088205961604845689517882003920459798041937046172070464164560460932829522461977209363270284736527550386319581978369261203023985499119210845551071850722513817550539289797466537139637842923556021395604375418990980481922829061965611281039292227992072768340273727232555687182693907343979742816085755264986788594643895814044209726623961699770748559186637936290540874895946977085556135118586884889951415828646705706192809085403297442087402527676620971440132968023782603570494845881632859521053870230600725688259561340815887242191812948726190647955831919759894741033104265193152455435774989546661583793650777472985779311148579716208593539505805016828372379494662626573572494504483678746066616895394664962202781761428237152692115813374919018949406205646519007984937756698908399631204714009748498805698401061559971451596945142877486599869295321757119934603735759810065744539026417361079565479397518490866375822602487310412283920114350283644673260580877460265760132100262863337283304067029209622975785203526959578332664944442719600347372593274414935381266573275355856131891332295569713156723712948082624084021864688369288357807269919700946468865481785756524907513129626854625638260059257684840608214005116117772126243908401889094599480296501275425338525674261581497404470138288799301810718755578509241659346956114329948059953037779755749655406341573954926189586291296888855735805192198445765098799107699604460121441513489211386811955444329099623469138085615258070794104847181217163543296196045766646301354476131862964009453295193110296217902330510928622024797320727984483103024821998767609165328335551158349057906534127752112001313300190922691093195843530582686052669063852181619433068835258231902806744338884013902916618460051035815689088069039452626667352054729322758223887655417640643465111888615946821228732957564582480775102959195350856876289227339093715067572660991850974899427415191247897210331240646448820268018535129131874528179210197295493423792101239636680450647811635744647713102033945336938088696934225385887825491557889695056959416176057593984983462457834895467770076969211142292295214736863861659497088496276568574032918535525375589924313442432642781621925911155681260448519742018637275628354955594995431965412554706992107354552561017182201504982355108034083938098614699907432406465647390621154454209210520249643694748463526028503374005639125483737552575932210326050310727240334568038744116338058584200590685326445854556768241467205844657794424459625327042478633679856346612188948638201040521298310274885637459491565687152364920643454455982878520621807580012022831382895650273255889464292808039728300682026195542140723151116138504173357886988917371302504386662678784815129830924527663339182635073559701194447295850746591998786969563389533967676236470333802333998623997811880784798765408835151440242349276702330285464515877561178142018280105261148854967798685102719087871843862821906013979597297618943585374777088921383831796529978678849078366887373252032421873881499411627650383202682442395591530062674651381608739479133351949347355316344950330537284942503193831351210840807165469102117331525093931448823344066902777678893608019622715242237807405318433423563149130600522483971226993285560600258078656462009410460950026553294871950311616486204129107623648444655314821626874518464324932622378034193979712298623539660183169656212481257400852748418681383429339023964810339829235719775873789855309315870854043148982341039126810984425374462439690076401968726573267921139575841642602140276817432400266518071645115333380871457752821254014393875624485553396177028212353587568897774453684994691838105638497949422894654753614594642011204986487192060733231691115536705767027197768626314438383874752291638154126825962147269817031917030387584839720655229824875526646026923362566626919826309833959745899151084746265303512487824547256704991819236149233157169964170772167889361762193879862776846741810787404613653937807984374959958520594491409360882692489098146057487202681700595698306719667025811150797066630171472085842482434415174901924489473827528994188196002396476598897503404697719136116038366071650510911457670665793316862423254409238734182960980591808213933530085586527809865961408927866560879828865694409860150717439407970701334245217404220693088707454661084621720544750281025148690765263400516628332037179084928961013335588451967493474490978178833298206957813259323003178793259800068273429456048152226327352828068814261017737937179723895651558094832186442501930477762376581378094938959012126236719909881209102128384946451548326643125454687110635146617719211485093295644151784012728164698528976665225612315720570742102246811863975820310455258142105298056736315598219331891879938327091595104781181546716697552448551279369428821932675054076154484432436090575523656823748280759934686181120363555636544306634813610964291199807023471864578404192719707085116690096286417720051212953109218854103587642484486553950535455349643413185922253440038713096220244250904580044627857883348736435684571383870359548752432677391772627130119764703160129677861151225561001255007210470273508263301596245035169178380204187124103650122506225680251375205109475850494959665980508288995633750067291414808785986794459585338098815240372840939856807114877993800593835616782588208482005387510651678154684359960089575001765456832042614792820362060385609936139109107305257864265833529906536909314047667627903006731054882969794187669346107836638958293227183076093077475114920325215133993727500734446534008036693809110641921422525616546201917568221087606065536973621517753040921620898717894681943096621355455309693559696801749499446119078826031385525335169078254504107331080204106474093183054539646625144065576831553023824840092882453542110016368215928294454122799528449297471058010035105281697066455205180951372518802088107326827571072080162093356811703292234453454879529130795450921449273549169368417550044610696584177859634186908597121950357241394733988277496389352518881925166264636764427682713261563758189682647785948008166261331945695630694847211305143980091433874750632765677355773522167237336781118392253331037241029621386079298391952518650423037876392309505345763724345815176945085346436190729353951310089883663706273671566491272773934272066815144576376962440968719404846134741799711199748769737483217108023591140179978021396278511625560287287584686955943553236546801901216875280632318654000828018302505523047215221195125136072033543424507676124646755864794765608322925743193950847803099128943916110003841736361990366383254536850089086013868923969959171319579647291617173312333238375206261740984933939943346223771698972377093381778376862246850502632831195039214404665464038744594816610916071090683561966087628766255749706689782691368520095048185091051341493073110942971838309333075250829308368132268223436678126211385154733444213090093007417847926337417164939060498911443326124704681969311940720528965893720537236109141873939897143153678298144809474774573626269266316415036419440262631324509913611156939891552725744955964398007304200556331412014532373860806626427781268085629698352854102299307925204942996641288313144865507540507148453596016440257059150314611229361084830268318340343689992678848413609742837533583107712632079988302511105580544460052473580237081784705423127063912997299112665960578276262705070872297113765522446222486512501390460206179029069238828818385453410583691358431210912951464251376627350154372254552981202572210623997080202678036086709637462250220807676154765529415504675239596089504303760700295223390402713787180728392205493443399895980976735818377200183179048639564649404464272717411133045363108000728055461160832167346818720106289139622644736666781625440996151590793171954167045012043338820211586600296530451008951676400894972377077849703035272816236988415273113014207780843893649248023049446880546968497106548752172300159020257637343291951873763941110180932111277119794038183881887620532622100008784979247432140850252442377084873577435244398321072454438614363901278912743918594866287579991210506035248472008067961668571581985748865661155365748377321326686857653058433517571265510762231596627820047707184391687339507826242304579149324441720095106339690311586777426004453177163668951239316239612528389604389466215962625772054547540215867175035895309815228283408296921049704392270187556399044480061495054314538463129465805220202079929098756720753448478271546869369497515506734610518776913214663865166388333901446796425911499079639084240411656596100059640339830613344900283903597298944103089318301579346014278980309182612183825343382672948921197185461007679258369426037782434476509855161768524225225372121041320874703511142400805930164079590038020742169056791201778025049859911162762860935412686394359704137742355594994701065299305246628803495215922007378384242725313290075027741530138051545630358747006226164764965921477559711840749116783582019414616365434275790238960139208714199989822003562652010643642127812137655250051987766338947414638771990629110755952026075061169550378566553238295000013221023411676423622424145835883469660409110017732677308866161628728002739116461027963403342690754552815654336424731591105394728719457504120903776823687772888779264685286667274605344432603475093502212423336963384721635600806620954067107062777942942522839758088194047437298792884998982337392314717863139548064748486598981714295236317089993287087228497195799497552449580130119718448986708984809406323699965707254402100915641876472392329724597223911621649416794085990105638220813036946370506905343434617971142825639737212697505724079097127577096635425947125685637845421908662561858853712339463970810724223929767682213745996283441632891235811454021489975907405313577659795094225072725130814106762063271086807299147467320363108415616137004375679700905213667415264006979655417010426923324678540200473907250689702208842508575362126993541897215261548241837261737756945569738218309094722354672128502072705265599957255163992468915542201440247610139421806013747759010070872916109940371500949555786509766331387097648593473660957355648909525855233397313760157246222649384959176434664794966520437192053577998652680298610825436276737402592863072734530795219594490357943633911451512772465276377337786463757033133549300478376664377813492116647183435411570498798105895750007483347022515129943867849713464978268067656652442639916406094931956228803135432916321857909796750773281164023980553834068826240628943033827487114099158716729365272477658237568949969659543371447653149496080847445371602861031889980564939856418207337547329852127432476546888281870159189524115339521177848610538696166803923873171139297193419190389126229566275626086673403106194752926723664585242277929074902842434382895267316103957479496801788420902688928204538699589772597998995868196141374299347497810854555683746776240047600603285432666507351400962563912370357141525895896991751398724473356542080500270966607335511492513832641962394281808843900971827709997716923040845232847873136046295341181025489431578980778344918744286510695669445635560186520520869359709051866014951844649083953446310692925992680826416051150280942578520059476193744081753311751313925286365552735192691376076596593729355795165495919759162743692027289458820689510335699937649185798161840403921636825430320001579366735733074489789875742107906795012537784145280410980463218832491993936200895067400338234232008096979341909385017212337970276559215312917114684920276239819233855180501989555607503578929133937421695734449191611068261819713051690951269473897319431054341663086111262815271264049169938476272200881625450292257519964797259216265862642020718039524336792966752550319818683845656146588767972036165659510938836154668684236424643275810211717473529393067127204533057082745264109130585896795758205004359620308744358289849298561836136379581329091969210115242182954075669094926827096495115451650132127253533805137230691291908175474256837417252408118480790122329501923854711295787656494876263081741847934770314078960876472034044335656000912804739280409615277203183274350646968826930864612124764117893576286233978758667499259679338676837945336965352617205971006492739600494896362867051327617361660112672100841485959850693514712107789647356495900629596628315356730245009014496638710839606161235952063431725515624810350518740566989712316245819500852625357922621997404691763515096410870483879887617956235069812064111574942603195515718103359754262125924174953525060272448953706357927227512725803857584473857561346022431169807039346920624911834384705332629883593781963862108938908550803509864881546807991468613829454539053087680004821545649399550643366806272199164084822022829658037012588533464339771696980617604795975708336185929426546164202585252613612368828456716182048057960427862342430825380392509211713549312693787306355777184097393721512383368168239962880643799729389740498313531086217937753535644738500653599102636299767441212246069797880054065242223143788959534425171000304678823092840628857531626096870088910566784996647982284506447338817974375099654896774612043454415287517170626016805166151515031640138608064393924919598185296057852166140577700728296000807501567997854778330815402168944668464645835394558826984884449780031920992723110543374180204467850801599776260155922637674892906955322504766634729602636707428593933327275533962674706464616274134914720996831593563936711368324766063359913734558521504714441022754194014330327658322004392166928828899555282212359556601509963481626545369038505979924805741863352111981157606808381046459828849421544784662504191589542281115659390971108403170568810773969567094389798299890415951772638938453826641641638053893246551014520465935824283682203869620631362843362836605868455596230307301498234996035747269337679518439690304053298737923584798732726724691568444953766264529975943555737021063122248107368936261157136176803278851258396892914258220189943767726546036198730054479777200666123020645864519207355816441926066478114223361817152908569069712639483582109519764527663459495280489997358263806777190933127125554693477626754019726851268289406089406139809006967647715119663452049319108032138447638244941169144486500816049196034129702090699345349453604241425751405014486240381160120024970754502366807292249167905272860179203775883304714084247056858438915236899137360304729789184059395516058026494350937324430379792495457932617701002688704276810760783917784578457636089437048234919998141139855631178117463687846595046725874706187718427768055051689724635472005524524452765593235696288910826937732279464206427970466079109946182052897004066326762360183189339233875718926486442402951768242625581303391776573870244439649777061178488716064854418894158672583244761274310107906203538651368327333992384888852022063867808718035513471955620960555675549240433338408539528075817014522696517278849294431358572743669093729040508716709076842244566377962271570517462661572477495102358410617736086550347257675941691485655181790419550469262841512412783550369076312033291158658856303248148072790762347512946435506155523574519726657278414478201344585171265584665907814513676040744508049223032947457898724464558089684199329373828369292201706886818103729090351321037356013871945960352904617363003952092549807991480550327877562087211335648628553633201703117154760882196869426843062305724594895573954655622749642004537849331868204028116557858849732971915163116754374915576648707483001082828494992465832244303661422161609640711436100500118777848330678908243974738747308049909883173378102606562368837829472926987710573152550856700393667738268737040229393281042049466070188722074994015916318264577660519387715861476426434955027659991255991436475051070374181011905687178725561319719054375871589451809398647742039112936359613435406555697275162349334341501509417246702565785594534627231810931732887819242057845816719340581230979047782511739896534608881535245922598877657926314234434660447615350692458239952000003002749969174908731113907041746776615516473591784083327443072790178136170460652577444068719086933165400876793413263902433009598494109035269332105766022184125653610103894054461728522952106680757506073992932857505279371546322147565128324745814316037820908454978958798945155493094351139744586603572600669566902778404571187040619730206039258642543713688807479608579335849304708840442594304907602702956802449900835180592456443660764232684474574596663646291645192010574004651363441755223504886262853355303984311325379598449689588136332359661772767125908509803936573518839256749092496050406528271958965834059584579589717302016200812479944617115210969621864933340466117061050714708457083230354525789686595662915862482082198294959335718876362031425500841676305083713238087503648263727448245216800361594732384035158712540930526380746222662549640367372048358912240649526814199901856219828731801580214990783485637737067884753399570661079148028878225248292296371639892347321774886978893458716748940362296026601857416223307731088911447939940318210269311251190304168323485509129596323840451118445385478616867070868297926877778424195833849584372760769241639473883335412809350484169209833524098691458235853688208379221566531981708506573297829656918867779581005207880241529458979901755494030505964094567138819826359948989256670807076028226137758514013033232391071476374409698375939981380566113905892476546991803629757090725163958201597062364862744190438751650380602103918100196395883622629176370735032082735206085382033601877709709997958549579107557775047470178598982804033105047659251108712486597626779709757921274863881911276446537124848120530336880455128004278976073077557526275132682471089784640712521445677912322743329338766898513933703567152861044415200426312193708024711009143048258585916783193149713698857823150855931336726643993057248977715843000686319180595499628166946503035415467836832651948909166843941142720012328004768997860189388850828152362001514762024841582896583449233186941080728271827241482970754874635925204066191931283151063936375314321781577000176222597800039801628680087846640004787645536070641446295899455377060874398599421953519124675944563571857769651784131875906309359288066258855488132309828207078470503269634372525228551842624531929904949507837100616510360240549867145848920852838367379308235572442261288044549009704289810034445419034205138974076505323456787519754075418636006752248899024080309375467558073908008387458128491995977654401041306436228905961455332730006434290019505281427633175908585947486924260521711667767181699537696507051366275872196907136569779973265124571666679118779934134109956875793310445498546346275683626403255177144359983425631906827274330972455710062378273675371707668404400524984645136436255579678962804236205857801666379123746220970187221157237593155001909069194802951703090914219406312045561328366629912064119955805333867569600544600320770666011273400220140814316754710001762864542633795008048608008474816173308380795911482458605416763781426069423874891152757357483965930522427010993769937754910403174876567920932422545308490698606973185415037786773414966711926998794786386693648590520291867637219302769633984496388809338696710065945501351502926363098982852577463056126141744351766790728315409959483874181684627754936456900010460278065207364355892739626976402142871222014885910784132691096828026928104424048755156038964647821466160315328967463859283643687710266983055272220754828116274878102305698526367938631750021110272572338247452243109984492715239473453275948185699539029141064956667797971435765801131004880265547220425088232141253819172479271607201680068397380644755921325272150417780142714478903206156554302556516139476297674753110591457594994167191718042513564867232290875034795965345996433379652156344564277941745607086042824692333017188558012455003831664200451834659166562857579313144432394877155274704150475744564213172177104208414903875082176321442979493685487791889831895878737902441525918111913271337723240125415252845477377605597306160028183490275879964826788699297286491535625539878343632586061331160181994578214728969683000135435391348419746134205422404327891795041466102254150835113808783742605884337624665960491325707363436184051481065908916929783347938774129817159630661347129560713189631582042340482896911249409903960270163290858417972364390564304047819890546855376130375621190081087796741471520851960510056811800529923122103591828238584131184220507257345480374278526898338417170760724956223298066080608173055244475887821371987243827058209770166629924587162839947905699706617978044714269387474869800161203856632301617954213885167722272775978690734874043634575358000549081882874071705775021842352765260862690106671972236350199974172029547548908798643125090443942305969442428641568309677011229847649105261577285292160414636087958704450659561456734336496013977258247699915439634947116368803426047710404283139786282548786906820555112292100181238972625961349761855011391288028650105745331298274458271713481995808006657114657593308953759680269050562368631091738945245671952236178268104920770532808478304343303662698219637652106692848361024392198625587633896178221097010494393063509044678927182575387655761290930573542833643520898308258584347059571618783555655287886143196856311487480952414570831935002275554300698083621746207807575205269675231216516607595305963817286107322069268624880410510515681548361381705568119526285159421369482358820371658341777337312688130821445934953416408051389767774978799048942717696374093981576762051855362062111975148229039815106461502102115579456487694931354947442697454144986919345821952987353125552647043502128541595640709380975088084908777447003639334350121278094683813792768568900987524688393951995793888706463544618926230142896888211967688223190306440206977520454111100603138289120878688609917602916847791511459850391235703312424971046760237743496396679622432893572559531265037290853903359469163335532304991622423196540200453202336292862748747869825169277220121851531126956290011738880029307268533026493641700418832698286777003050889357577277872347373856883859321884491913924582816590355600538484878967602355388494596368460424467831972857112351262038542969749051769312566482554413318138365843643925687042692575876541583445143092217801273542728384545212455019184227805994846941133168521437063068569857029756936014652685911950123853823763872571455734498608628229615344672215438772956715909738774340435750058685691205324597665515406426126506963542860129863227045780475619684530044322953462632939047484606299243149906308447305213378237411461966132632875291246648999530017009199716736729011359731006067756224621873181315280567314282411857075807317434761527726324508223018770326495815196183162946755194102136788651796308606394627583965590307128894285668224828176250636424820950527094447976183304996546134637466284753581190423347506626527491191868389541779070059847652447375121488385557264122444618910575823521319739448154466875402419829080532302661171215824667362883042507426758608713452724915585201181383484676473095303886237708933078005756948767369718766199768965025580896603796916999988755050537978767380890168973433698671437757406874888103585393784745796680205206178414987584215583764327259834352781057882363209369535219304775429455393369776991862859716643523722242039222653963236422827776408688253320829676443163479973098960289369438301961087943594550891655485593870147339922743291460795061454688587666653990313567966893828766975120673454759546549687462324901573082433600054438608596110175986901100571699951551262584725259179433183676389514109023860652418687178365985213769386077202342451797563438060298423591758403476449319635446835393143742131484712992156747173285535456950764397007257894832373368252682844872201941445561311157365897503458339120805081746433702215588816434443073376959907438887157641779928380745654108043408972914210184125513796847734675136719698017669546613452263285015715415290011625736670278451460744574110679997435259881632403128181482227468863911895623504203319334399776955029133568308353095469138516797908341574764937436211395619015879481236695917582399284644219494898670398955308848876272960601966073742279485036005329041329052477019202295562342164837375842396215246078369955801207692357437597543580444163952632285592552157650414040921739338412112760617409026144525299523249910390011095621700010421034051239952584612734290712104223154596010475842433336966822460091884214029586087975291990038642954317689603954399481323893860583150530436257681523396237272548623932396865143157135516421694275671216033839401019711084453407707630180050346711771042539847266474491286711959912497623684663790857476645156492313145955922239364637639443952599885041863362653468404417117528985506096730017879831259741941997991055186285621741890525407675965728472215974930110816386900999314504912547969750150987926845356552030942223270502138201045372798545816254898000915093666335220963410906532468584911361899744376212164186075768245114624454506307876557817781768652741614636390782850964161343052374187081202425231075833612328058152654966146080690827585331184368957875995004017196871598395472394518354253061290267063436881133076281842536291983340683505817608969699533699096839414833488871958551504272964757513860832006508134960495376382895296460909485818508554254609034681268416656461680864003865756483735348800014221716699474423594117603863469871300395035362088934114169971580478953598753303034296878870867507435067248594551800939132909825927815806021011117987466636116107427857193425057776907968468117869224584906654345120578189833463026685179718828613490366757983991048359925258694982544895748549867639769952008777830374628213176699912698177941473318826370158955647010088651310777939482025926597512447264502144185430784484425726151603757384110983559039903694083165563508359148829393470868849474728517201380274348645215317603921304604858995800649774806152786401337847193155166558625731488933808598807837457410080543377389596092518534020494499535019361780016145202596032480838338596113134221697992476473753346795298432039773596142468524788286104499235155041170267508060622615637947796149153718023060485073387687121121347496160971009318571483081027369637845395291077655303358599492897060178204702847950537185867674405316944408351593270423440258551811929807299299793948330424607526182476265590137527447301850373558372499919580341554118270415377891366628220463669435876999738715998828895213065708572568748189631947689887843518426873339492721878154678444195496949591836826165373253716607130133785099975128199106311262770318617686620076076242134633880539300049450658806159732566055355018333854765236378908777744759148677068164805421384427668531591642561335073865190982104978953788643478207054988137829678948111420335823018851336502574003443381146506553145048816031793413629699121067258059902058392207785284772301188740430901940607691031272201180770628632527653355801470259837142605870727519988676863591498523678822578595850753064734516601975549255532261271629954592643041359836939326119309511236663741617940536532165836536090383993592851420860530233502251321550284091791317659594823405071722801948436492959249202387306787261442983110313572117810701106742253562993428116633980721819830509930951507656016885554732263773323350648423374572703253620771707953759889073836485563690019323188322210859108695474606925112570184079682008948299876666774537712106486119224960806464593947500502264818876359266055268304382677333975405791791285955365853832038245214373056795418572203316527022150901958947169647356128565314531763154869667647806153679398289038204650081176271830807161640195230550482571433343309120766156819230298700718309883223166372106757848546338316940695151173719539151762707778401390089637763679310538634041806740084829494552320294815114304099315142539923878706268049045984975351532477336203388073559441257159258788272110819505299676928602986846632918019108322092969582688077584110802242366742849727380684681717197910294673157910980298239784253590163459930354513333907469574610112050994699005294490152650499337361810783156187418215708523230488355459519111557625372777591410529008700968531857550083649773372647168353611907619873185774506789013339709502797632483574650039230924710657835195686408892106473488798421905176533466438193855476078776559831005297928589426460141972140528248112000046714286747695649187238605052031529793043054733600526063563524225515993416188972307086550431688861912498651862047255320065982742882366857209337350781634988919821833388774510753640891307837867499264626579181753435092576620945746536899065260489499319740718240652871201058783766286531498107626370470353255817235397720279115053168948444324739067915988444350341175069871820633904828827040722559494477137669837285410052042631931218993517252255540877317402491933571667051463631617091375991032702377551518254428614956508433275984390538629109579617590964014027081320957106975853273463526076375731680950549307633742271248676960835023305503604230070280648199445228362305196394533528762899609320152707309749697569704990791287279069995573114285621336998541552767468446437875795265054497360894047635079190717451423554686249033885018307484429860089879054068159568917452832701149719580455879330062823299184585090438981653349271604477480615343410699943078793763817175980047372302248919819536526020837644439218916235046924769482607349589205258046575649384501174207210285740148875808747861183483850245429281955680527725343781535175928060503837282589033339713796003011484299246422866254927953107580307188906031251201419720923362665905001503267757830384816783403791646662538365561913019316716296823612949779399364990500099327415271873853151312970465182400831832557985148942570773921018053987906198334240085083370604394862413765551255270502292238037062865944018742172189027245505186767195479378695193684247086506002566608002140559019665107123456390850570123885091389264393656144102463556532781894261239570422068433312080164214442610427847911656443774385787233993362997154019261707016801663645902663681586357777118626429706551698591735354292362313365989154940210516563003313166971053565600794194078933059552631168464900009681581032691096479242831430061665344240622733731424059377975630761780743519955294575475699425520125928275498777969868538758826791710573561969120724803805645430107224214308802944164961207920873919541437007279560319099831920392671435007486027132561322870566401279322935180024772305359320541991510316376772512801271255374678201724059836816475082329735555935223980743574947865562296512695817690053988362987153835270259740316639232003741172772239306927934625546162613908126097881139708353026895782199549880066184067158162889425504714945898049854114653651957972002369298113662572230607590786256396149244288963174817771683501094826542730914157939005963756184830255353155327680755061421949694852760003028235785512191192021557342937415912619133540194341794566772910994091579938030215164260907804007829882089795549948070360253566684143079720087006716343443703253343050199903226574919100836670535538863719351204000643281293400925723286448287374802639047233118601388481582834316927376372599821692904276963909939256223885328172766788244674721616258019068574177991272645418154519812108690538880949514657288983555733436403020820827487700722059470439936975977971953017351215502015641013614671499072590788078197202415298271081603935144344264830757209439488651847600819806696767152558188137345773477515694719155603524666508056810342701975093099788657986445564795413855242474745073975407469661294607942067984888351420661035774687168989872977661533209493729997482797131950262762086893523526787436279056310431595927662121396027402325508996982148862767311427039765616260788529050597984221377196610890836101058988506003174430662561822124866987660782725365846472236945256611171214783461231863186096744188785164861660417507331790612477926763968094141240920828602234042513536586767137929900364953833910560345891809925908517190883252669144940330455832697529649610776588446433878015849570053286335201626803680223499309306514137537566560830254053872382070456315202556335783839112047516906860696049390939484236715953269277963696338638575518725977497539593593974061971861220721429333431758703315393327318684484469761720365225764183516677755302951219639482371828572361196903030708414581774131543713460207249972281892809569260455405286674827455533332459987533306492535455197649548904355461470190797295379205975898215378843376768712101076682486634225967579536082510851678565677205557422621860849176231363333256564287918082602433660785626254462536051579096960449224840094996493959148159603633599837932097483881811093582773487509063659517155733514981932438407223082961537819291865618183744924557365043141683463532254792815500860667901754277066030069126037177053396899470463038421164019357615080108830482400537057515634957350537136542587171761385205000437039052731437159042375096573113696223351037283255236876872397672836075913378328043763672983333172022857503556864387971626806378981754487546948150385437223814405997352970124839811671725569775878721836006137372553388069566465660006730174207890826915224287109630745446530948610487227892484301381124039146627883396342764141229443241018395556720070870061073360941450641962452948184103843768067404909497467565009373980651061422857219792352248304770913582530643698590561201406863050096688473181833546315874410904184061645814427795470649292075207291455658083008031868883601155195696771934193876843397591424249470899719877325687937702454690197769518298352030948658054610494826730828561615980373050140719018056989308387331197151290728544551735432064403275258900528396643063290250744856369186660826149009673796860142354060992791543284040179896776401377367944018672409395781416093263633921405630810775218795638627633781398456937038783154012540061298368557645599405308022513651773527282693161338491612142412262634907102322781899225266149388548581222663192272810532429723144771642276207795762875005007405340054966881302096442357739404402897483207592089563407446198560171181703021037037609017398288143613795197869782511057529191246642007135304997947049736859488505651553761323902708837917300870875965693542685566309721662457608735441914817505775117496233258020039640178343596809652661482488664306844689525462499837243778427150909528813943927849318512245071931345150237606829455255081329732450965048024972999923212054852542683738324632109199224832379762509897201477843123276816998688957093473089905047116439666486914695229120662526991492488944335899062214092406067515211094989223897471527559994868897842078144946513238269207167414091451310650603022588445918279572317381353644143158120181164761347122955191667515652398929831821720524312034722136633160170423210276779761309262492156214158504893821516649283694413191559279621039126433471874059587635400646217054024633410505665175507778292800448253516633668995631719005044289416319740172026465371285143693146104584387936078245684666881791015689771270588395798740899674112403092135967846290376546693742581484168481746415280307674747375949256924331437564067902234419322600082374209515113599125049904480766229840346158781348027924176204174518855478459941490463156833498287474238168398078630407855503352373371212905153029979521996587098863639421794415615620226965939490371306787026004348639449667107993603819893356658096170878425846606811838135515196081761642009783028004362543000957386616126500478187537043539914532455195926371745229777092429536716519674249118668674133753407369205381494792270970295539176503900051561061532821401930964202306061739320446171022535675664564285794014403192258828979178685735466338644152103850303100842192576174635838321233330711469292279404462952265080960146557272078168629781973706763498164426024066261451826577521058798527793083784003870984847513838906366655553557794335513950706780186614133306815069178838092437983685522414166506526772502257780995065458367821749346280239749917705131305998095557387178614982096129143625750301978888178003935706815862261959575056917628860917916569716337676243866219467438138726774626098597287152147326995362189786108626915426716176270104849093551580046977381630146593774428889949479624490454044796687772236644151595385504853326364034800902558267754844152340438548436208921400723324217796023301618471447937513994456219112769882637349745461832921961716190001955435363750148066248849267360932597406624469165623571177969192229438025807773404103728830117863268914262870890921593673266222627217828150829917976876373489400069679052763652144794334273276010034557406431329781671836621535128228790883820775826357418752241317057157431682281680839894998444762615859114906297900099092311771806870405998974635636383044581408924717340591870092210745260379899307879202114505394803784107600581955494675656312991813009023240390927593871276652382498939052374921442373262885303715674310262073567382841607896778888128970376844612372314064243219237840678546816235082570883985232284382095587823149202030104208173446708254859540499036192549225941036178446576422038462881070967798342783570352584805493890732282733712592581140411637973393078628626719375637429619727767630210913477106108106719128520675489129192338019482010663338595539238823103427900431599865272211975789205660876810460907662921555271079170600375066079652915571377095256025402958464499858249859035682392926647373165706019970316090539588055085917380016561268588589193911736024620760983923733130357212254226073868346363644667182952327227866690839995377938154101013259855702196732554026419821275882111580460743777265570199353686565401890679895152238566025365777506897886900508254936470516553443117695805450862975771045239271230239675861578854246328541915347371679517708729100586297941844175809308141370171330978567447024996895927271913206548225713251081585043365447977690059507324500531472878422444314700036379148670450854761879595073670277647825864495360115381075019808752299462184872541929558501163056816489294735353388107775451614303114507423513580422102854658098923024875555613612020042785053012104512982525577707017541318876452454788896006564682236939806223226275011434515131305212122536071504864695482632345559673925141653429433590982161311137062044301760620977027450973700375699632790844520429691120791110608453843740035629387021651801711640801982964377547336417041451051083169985559365070960827746734938654572837152336158546007128708599605469796431411089977187180618195489093554313439399005286098626568366410806045589738066187720660491775722167315811590024353231395790477902519743094965894648392009090198964881923437236152414775986920729493945825637764437847797323905778559897785518422519218384543369720383474106298375189976108890071639270007364366885730708036778206466423635620311859715545499936759831132259166659997459209311392510939719527552493271357242277612456853536794983636788287299451167326198097522329107827368832491319085619034060780663449383382543087054743295547705389225818970798485341178341524150905744747370209531919118633973205826913556687722677064908743906272983219081634844548814741419138974603866517405129422766872542670408528803300879209660806594640700944963482329573216144224784312788955924960620822343929038442707467286540109598547202764457933485281932668081187141075564583582964880882920372187763762437144293294927125692858141769879626225409884882546269853162793770582664299257907070091166774504436690978050715619251364358998374132050698539925114514673742404973829084864511399699098009785225455525722753700483290519026917638200718105077163044929837077666471722234121705189516489874397493859751611114829707064946117544732114264331768945211365481654544154775925018275907408729973667997497061091071096894064716766931509899339465981554678867836657560978529424028852625152960883742382336390489694872350517824848775929125136973031485264065141122371165551942295350647857363171598685959315668523054641207519156811581210376754840760302425397216423571810489731814242539706918776311207932787781651131470224886061248289502906689635400156764499671915562125550176503678692375202044226415782875807702734553475977292608471431571996623625481882527953433012202757062606546406200374726579784471309776158485713276391938382589321998659855933242380953767017498466348704879906494185949787682514497755855200050490493934321454530761550917666330354016776247677211300638874774333396076136406382229416847739861523147876594457673172170604910333648161413106106429985977802334416676570063806450666563188457231553533142639249515366822916288824247270627173999096284375801641124702974596725976678285833579834469566334959472851507935961902280646332273839535941853108502741002739505400554032501763550894722524473327121715016225189106784884030539959838389134741214262360125227390432337107619392883444619471801144699497902785231354731751632308383621124752295042025692384755186623863337017223817958417314510583829932046603101917768426316520593264047267559584858105427442850039319146939301731871762051149481518411372141196849104810375310517513612005807814694351889987776397029168573283891569679964836870007110098811564379121639534577515485768055253511149976704405167732783397617867513157315253541028851293249185913869395702816157189667938141497926252827284975128419629334775997582468556398939866096529138946646746685938798391995153776576485236792907264646047272952808733577449919316784180083643106364778823722014537715439826433789579455942837399389047462952085014633943207502719415415733027844579918928376848604880914687209577694928989400142715605291599875906699652293391389529407784079455300316883304428690096011070351856146087972325365205867390515053340656300946129139727111568646269904705843543320964452284573640887783301874487235425127203588673395418095031463485490872318554810168673493788931456945686301458064411371247027406727841855732399484963925566239636607497289693122897717007536270281224506839110347341988440261175399267899250149581741170228654969279841435097098059919961348347860613214668311025074408623906028060111942876879249026354413149445290820105111918983319308782470274124729048445842787264388724472525522093741227015184520456076116388051404097492347248592703508721558901665202320193222200612446110065591082491988573033329589222888590007620731952992024777105987151868352635461276158546724686191371829362137189615266611427690068711506449808101662339112380278065793946859275992598631106036690624835163806623061576073735944035503198748819362663158723288665004759733779356790656956477472264831890861465350950925198713962421097586286579982279630664956651884750869961429167161800984180141108786689269452092173065082842541055822651487992829692052519032939620945772571886888395854963836742405650122542483753457212090376640510246903371501427011386470419069824183035374606585580112883395922168063962979057313995287312462104996343360630012088687240835806185205766641883203061154812806843866262645149331660831400311870625018074906059461734416236797454292712244510137451167665915745046820701078568197634786993769704696111167354000188734184153255450341660070004318927838815220524684736045755058804119056583291428956127071189880244117472375043551502966878805648548258869403969110935772512097107107506792652722324437954652011722932166726352747664788156645299608984655122533409505717178337090049631940111586766571758034376639842251549322310353950344497798016770598465258922886482417383407785292234537676125873534785743565247039367124771499223453049765685644346549424400734602464128859344156460080004796370596584176081893373340433926419382823163704864395540666841724445308995654037669869193783972202949403061560565237208151959032617898942878864154281728760946463911737463002250513390045925134763837961322917086228930291550432199148598008948978438175371067750710421432250528478334513552564105005809070313059205756677381066856983243271257463164832127241323631636561706026295053841320775385087541094641460279637318187048209721989364935369883062741173904786250410098351480000880227298967897615830068947702520762682656745604750768432696872952185776311651210794933564614141894586345796843329923369981169018974775636968310707208213239212301063082579082317541054305101669540786811403355375622530552200845471748961555218510970726529979243756680761692555954870295890164074442125617775056091079747202947708777810015392548307445993063295519644180829184899310508588634845858423016391335392444292953361305291624979741744667804585903588043746020506148201987499077267983112084045213072655366191947745173504104178173926907111469678397967294872473440157817960821896442143050584506127785075521584175863701569320135844574575020394387429730457260631363497845048578743805178108028165700855326811695692337722112735937664265886517632206177557099186567206670790561270660750646130846205392193245278874535224426122412477303792961933801592073851014816575676599448984490016559540571734611768697809290506415752594415552629499030600934195730332584505393978427938213164781142948196073891717417627126686920205701773246396697102956262528013477836561449703273640356348407832467475267428755982805898331753460147992863842654669172349266235148761211510580680937309708690135309667574514600170390983746859356135509413145342934161881167753388854233802523494808664644397769844894945776540004798646938531591338403293035770656629157307197448040655013949625769781449127733568657905859455679328507174260127835712158387385962391432304242011990905168356388231006365759242444829489401997183820724822433377425254614815986201573669293444308141501583520583103125404547202270982075134651457586392084982899290754685775922999481856965335871890446539549356423114109144157948264708588925174222433530106178905772482547861477461423265191325428492969166785654180875423069728669995216298738555688074836923022400724600537805295402918517287458505943021993836407323627338343000312106079668598307909159142041862285112655006963142099220489432681233938063243839029859392550640422238557211704377429494107960684573586644175111690116059326155087685695259350435899711725731473180855305050783824730828852716340207512638576971871671759122205369233416381409313140592939864829379853005989634553202865355040217370799188200010200088441577551059938850338382101515040643106506882565796853554007561166171833421188773124316356645890650482304975944787106882816730520140184815099015266751494525919185147634255878876872008083648172275002382371765337950879836942076783857825424932745342589058743931292339230158036601868738504049940043766206140714270577803565721412468882363065429322053189941458462000259745418656948127312325343949824854189115867164950524560908215108703906439025666567038031760277547230308377628496769718078655675713656500298877619325145067033510162437936792960352964023008047730407327790733276784802655735569520099540739358892569720857441099646045931413366267956915570508808883014380988665531046952109951181074392023042374169995604513261676419352060179453206425659790869246874162135306051332532736411307383654397856376176825610760757213343209636410310103842905450687982849220810791456889542619345340669151942538145618137417887007886521674752050531920325769852937424592774842382774708923158432630231329694461142379340897162142798943957860926144888679689770468074899077209509546673161340430468046498848312140160206614775479588924286462702283754730744882315468940784805315201453877650445352404241207603089035083721716878661011028327556040941755969516623044258635377730727500481895312668119814969657456874695631642868337597384886431203002429942915267496064665578750276556050342323793346074940608816509573392565515156319393189985232228198166834381932115213642930527044527655585119997473594413016553957131856401688162860422965624637990930077285795440036454279671000729378358081613805357820986185105729719197769572970303663062956907731541480501534025429687750122178906017532362935839654552688204308599019165568699513820993823483094273399961474747365434713176916947100301340215471746908075612537384929997332017211384298579030615573040723466456425289848654234685026533516779180742283207338654038236321397938375431264026341850325293135711943493791775679362827450772048402103072729373132029793228539891708570544905177252598154612273730161230289357535150075780251097726503827120170926719737452642810269661255247017068729074421739915606155775028095147064196633914272853472000861311857736388778205003695839823763307657225104852828013205588098497733510590302542704052689526692696900499578499286334720319519420015608449172691556530282920029052291172377319076998913652759304971747693502072029526060409034359777129629025104386788706277579715612817465986205792320273981574557537740989381283490735835343587035046632288744265237105297683089005423770803284690688618162860773052997206455027807140642906336779364094697991767581744459185118433235414595357619971841371455596622559444619855985506237094461521263541965486719900851363239320034429086855181640021029043152322734222337554282194897014260617184639953712983630327456018184403369879269555890693672551045683387226057432234274402379978231141448224212377239700272150394711849274260969327360871195628634023983090312358467470887595804904996704859144711292853785507051372895111635438908904420396106421328788346576739495795128287892911399617958057409826070049387388782146641348017391027264138518963994702554294181232965027514697422699194575207955884806573711374642658713960157823689161959472677603898650106922571811151847797689295545344132659008620621028807495383323750589155919808243393205093728270850671204851285323625339133061154545793546499546330095887921806173741405110385155166293219673561892646717577041546627846527732703310885364574481217751182013041300853626997495604260753896908014828769862236098724745680704505565785778179593369460174968371674862434890909170266110491621979742542319379603711730023885512897029221624828110118749843669448432388704914639590274030277402002360494812416899112915465993226816476804279244826849501252992944210288647534488950781901745773296686718818077494552608785028970222813225761477372514503079798169517749351632268649364383879956202324924998422821076771205907833740600059436079185422546360108977201066239955730297942251372540900725399836135906579328597404073920686301679865127123226239162632299877090690489805537895275894891860893722422222133926266156607272812466080887175935416068035180011096747852851162251983342038696108765852743910529419092889344564662795821108188408847667153450006375352697029097265968800034948028855080946730358264689964116719682079683588287994382095060889032931987276972300179546813318480619283074924179298071878733327734333471915124597315078322490552784329998394964606802564421110193018456119789637518591788380805965851114452700458485817211267682055898002628944824430604729529451184151467801117643409232921736665682487057255726194353697983703508251397960117562932588027816849543225514351797756463391025846059433394867448327114232751184374351957563331182101400841078281618663566972567862333916668691676512726506565625367402523049777540731881710807329890526707351594897567034916162693785339795477205376173264997742860929206843519380931433058267429779201048368307147794433876488655512757200248632285226088441811720188031765473313974515133596670458847795778208649730028688978939007013211748770294750716876366660816729941621265091953549762671210222100443221196723544817845670971046511559456273208089705480303448173393152758042323995543147990382606185063059992103869760790967147680945908953994343839805407084196792313883376172777580498349103724493799824392833217291652872248298176813858006506926342237906482713233018054376201814899964573229018109515491757418600273820998972515935999151969779697428389017577652287209362620679079687027657736731463120393316748969323124716782740378723251630265035076184780075851095454824060099738851464447307235253227337601532730907032695487103717199555159986853670954783959663554851523194845111385741957902647494167068255037220127624789649410276813006292242725557367276707578676580930099091262021702056399404774986489270374849138912456920393304272102620345301978970993875837901665447530111981033200857463630536079679621818314014055985097059854321545532899163262851186807612408921252433798168982802380527565945951016850682518397782703594960483575453335170058615378469371898424988792660270683354205393930408232761104104176151949430750968266914120754411074266677728056620163195510069995444864496699624079904425586666671829406601318025348608966739418404311355217543092966267912186276921965641039531108071345162136071765313553982149076313661071972876261895514180118451340347156425826083974324351694809453196165019835631962787713853070056866225172616499275330244947099034479688322031963471643891387065636042132082700319720459992558731772895521995611192364531137038205764044270583786646177784147637314581178129178276957825875020216980059991247956067542193404534237160189014594958874188507791455485697255516760935025622210975776104917760375625334060172481881018615197486782348620335808847695821514555609366572275345999428555284014752847782631613935348114526753959716058668160568288649419412130862797181257601475902847562103485398253549199694334078764464501127566169081864920554636266155421558806150874991003195047760992579931218445141884387545340338381736988095482917768789364607540875189677800670114195403289210164581291945285046666721333795662962496332564710480610766440735567651187190513678029416902382601359323405314058840948743215721168535124343476807644104200597882384594855255554370826316620514218586981206060019790258862150557853486414331585344665743703610541323822336548463668020601734183305094672192252700484548616471651690782099394830934770534126415823560526536585887543433671805382031966339123250839245421717982509701501933703895574909081920581527433419403407487252239584777273763415993400948080773972251119614237318654389487697028447409958486804577404292474773494702345904635840802394838656043415531743626368529683974311163071410504361756337929764509005934583680117141218782734079763017188911407402568849228419753806677113033819962606932108816445001345917855384141894498761468005714207118988666272352688888163543170617223110342009664180519757500108285048640326069291133587006844716313768613071888518007704910841394744912337107053463434020239190278231119219013037569525948756715681444926869523933649709941476570901182367139124183914855503253171641295353610841387158632086599455268995928352892609729596021409700416783695181353545445911426210978814584393215367881406855803278069222914646647839812794057527753351958370446790306529318706553799924531129684364759617078119751324602556171115989722002614530056321167095340675834901276975959667895819838261852430808547215738388287502290381540108911391244835883771022983894664121431893359131696769605270226512386138054968172991671999530260593952573084372970621163503488722129040537349003684675981805369698392341942746215032623990521949913329398859807288190676663490585525989399171336272035152414079293232935208864124717477809917637853728278268959737562600159072675086129632731397864448822311862147392706644187125431922633900760277390647484597401905800985888369446380001849449539820744191854406478279231823975694186781048311839004287873679020536024499928803729851642971866344172415799211767805575294622449629283656186169135945816353574519792372903074300261680543093021263209526300279721404889124935275690450440538768498895028683003365381841105502464909515118365813255654861721207661789436227809528264363425446210013942132594917975866486756252420701274546158835684569823401081689909957623733182182076707801182078480231191785252494307649402959420668155026790686722038993296383923578979326495333688845109778934011323294406817347557952031070534347211593273823270005963726109342741330976075134883065472195181714016089785163561999302191000808701797200092236253008283455502495895602378977207591068613395827585247931108929605109869565949146123546354237126642109499286021630997025905199002235264979588660697375559760779007091089537636220044569047353637816669970999242665853617123765768107234701357797510160782402255959642660424228741288365960498320268324567544359966950200697257167806735815211098826101235215291073809569036212963237300649460957475024661057172231000897802614996479718145792022952757555929204105838702982194620183797887203801159298700359164833374580989815414810080871059729734245766336903114463082479787618577530474601204944941653273626298955850178210961520049475139341309974760594789771298381734253832566878143207001184999124987965392602747538678734948699761856205219927633858214853483006726543945993380302397826775295428772361884316106000569027033301053080615263476050323541016202817394754687411592773950764025371733266500184532001045443187917463064864510196680819080322643800642097260817257432636300843626658489715763683514155490355962668205792354037026707834517216506358869995662170395785747354434503781440988434832619039255798014403252462658629857097963480403678737545043973486016253073358594795350556875711578258943219265726464315029380014933117284837788034080722449223958963236350106464251569900493654599943399277025757721770664245269039771621661389275282234611251248850015944304281917434914244264631971843204211924026938073022113761489626934581600442419392538986660515002696610728548336256612258409657677339236663777244825589691521218166989171648053034087213681409712577416825048362883818873165304100691112391950922364737439448915685591097166650317698909569502428271614026516470263918570007320245335047889752826337676041455865191032323681256905813762468947924510379709827121598335084186677407748079782803347407914079879265174593928840733107074441682111662553488375258043798832230086025274259577955003488936664474621295015078137089990777818122914782983600145980210211315020100179953671247932256565676214945502683517580447603117630079620224307467953978378696298919631707055774152081800720123361876441321864997278212087045683651718777325354696015538575057320840619407738109733128428948189388128985566794095337884154263151460041363489265763813393324041582328403996640893736622969973978850528221449427298421173086732517923771121367305615678636988590463202938945268380910962591716014327112971258670262519538227859512010604379007301842725085492175428774050332931462402566055381711767909105053238516495684274381987898671072468226671731184727295986265998382166942233693768609240862927735094443099828152631691606156449225581595030517396003977409512065571630906988850720047574411355981759561361658265506345670562178988376319366487416543271260722610219474347070351397701723367762087995153299101555997777322259443963328756882425810819056989513602455192884763257431533532054271395848191296154899186838626927820180581420125501221348133428812324447701325051114788110698076450312250403297979066407351460868313358675222932542357238101706182514173007846744788751552514491745202413520222882480872114053711101767943783390781326276741682315446685344716692565462019795985240519278717840605909730713547431973786823190755268019602676999264583449807863553444290961372241149449469552831809480178691326903428770097416040673905505675591076446556425634644095366718411011667442151688028804286466422000513533146745601847095418781488247087018198046070162861320553674442363425984256047385223606100009359538110761578234969116611380159715911899145147615178458611380245486614833228852168140047616166763801977466684768571507234694257452356730649338716800891408840287757854946907215237245756299907440517034169509975717407592129182335704684713434751341767299764825392303561611615160794268813866166657303051286779555973415860774262094427645644778990824290300070852846199865430565663237399322531859168891682104944903987477176085640132874857783922063763424190985866774970436988459359591929956465175053828751014474170167293234434176603252075838186616282945508390128066783965654848476014388466365135262957510031220226043088125435759547293281070658271881117001064144470209137252021405597578650552158236405674611947598732220712914612151976170733132143076722994201991040296319452507520330996364492858469389043582921550157169250497157231733662672347611001783637160170212481863029913967718267004711376017954193912451449859400408264580901318395865261344327469718060943251656686360096538787471661617927468866903572131188177447219506140769337847417214110431141755132208685734607464216899923336544673341625092500486793005727619306015514341720783837182985971160189641223714944938739431803322790655191853743755835342284456563981968436239822950097567622382581355692605488500718488728974588919857022867417995417485446621758599493339876399428544354374103216241520749741061481383135078419295217104598425705290175927497381099498799126797977394907415922405128139538219555866712269728021424858664869667914752650513018854358257786013445216801619807727089937608799659808310297577374739270027625784833827418772639199605218711840395234210480521841815148545192242933599245050377923636455637548586477953502067021095535867957703723931158513544830985572508393545034664631593746878984633667646581105061582557146656075924125529854649329814382078220185560857137407961609752368459813544247359407585936676909082454643297158430191225446403657679348412924903953098203165040861121176585946508189998866142659334776445627055816483855805991811979180347036488897791862051181335326399647162161963495614966182137116213516890291735928637382201120679553007228725101273413318243478276096944493301584227692330936377418458378682130843588829843332008196225101932167773194848560014610341095746018849823209379087394775107249183258643369900198395390005293402821224034251483432699289664796854993314950361326427073840469940566179194012005250202456263993392871028250305822963665425830391422662186262222901074750899098051918893469671636087617222604333253785248480383666740991786192019772333949627942979950027049595240153343127035635706791707516262127471962021329477645187522616544834671558579428332230756728457727135734325994397034693930459966809493494710728092725916671751029932855959133724682451785604015084129563898080657576810497410812770180005354063803285709051538992285298088132694222089052778494913555001803410345696801159055313209054582628611386569817647414388093159161731221175656342956487637920544567154843799926993317490617256132851800151138805594847679367073164590584883364285581012498248194744996329665014015413466341987515510965968186557284482012227837835478187166657465497682313829872032813893377034421100688549982926472960476999329263596645945938905909720980275484088774605149212048230549131556621735591329447441016794981853995806834387193354182864780163798438436797529977932393314966744649153535075342659234356095598905060926761234388009155899692479704602136219356107814876574794027675410949152238453510665134517076654453819655141320309534746749772096326657663007962013224040537935131956869743536551650477579300136732113558505906779577283671183741436450568194029972396725669963937202892367545891105941460748383985893799195862977319130772402188545464355784700944156156424204335536725954362541632797192877388257975216913777667267643963535011996002716658765046912527535293797374394467217452502321055413474418701410873234863373940427416542705904545355143943588064968205778651593357232175368634977362172644097224509183540982193376486926391061256138583077261568756577519646315264252877570144317869588351152178566745002390011763124110434236784440158904793280481211676410585938616623153439333948092192701480217804266209790874568458388568103254135930019823463716517027429401661935008172011693242572777864782200146707591750398848503206977452337649388202739272002217280287105656486130095355828475921352582361784993284524690991538392068069794831399355132641474582513242553571826133026335298053299906372809860274220442050750078926215334485489020142518273332455066852144619970037985305222683423325246383315566902728221416961854952179934047828255763465361867000459610557532976727390362769398017006247344321445613162215698133984944527509943714231849847986888648818760880085874221127934526407435175534204986495889936473397414435480932767225917493566561178169484952981800371174288504749788515883249357137390692991775166094715848542960638911645515101145944521720885784943292364858087845426730177800430568668193325953253155378579487280750607904184134906775412105393400115112799654573801945029850303609385976041036922795859817332381967195136118348152413328362482480068269676399679487159827563305688916837969105915136040320763573913224389032792086904461606161354137541930222099297987682761066673639192077322470860472219321344058585247040736625087809115351386154591979290594250272144876665233032314683867368204777825758283926172035980480704572979264383958044000650302865982877785717658358484379896105361800664884175536553451999541960406379216754013579381611653568423994723383464302964766700632762130269612597486097607505700669259130525189075141197854450348117873334401235029724570377694839990654982379066530356186970749311028577469105677005658766776264059806086604961253157690242416233730656288116637673863348413430182781695546326360310530563210032274383494658516758028582266754026274010142728072636890924283037071310368826101019997619114990401393118175778474196605712421609338482902423465543508385090463006307868455890132407718426076281481493786302924619810380946806350005171247407912219504521959363555512809176981226621227193901673640042288564894200190373917724857752803708807324343715533490599920037768215818198149850006347411181267531645815410337641269472682447997729916317775127090932490026194367835223021566257592972324716405593744855765797317994655210334309439858874371453538103896620510133387981543539726817937367334748784664726519097739962168383700198035677442067857632130448551147647201897556820609841647939974102622639637357778477358667972689072608927498591137847841853226929920397338972245497305414650498699089455308132016855008034748762965163773933376326674396334726656982786698090988773827978881084481360919214582881577495240050811791201743536742126825207927621288222339516969181546308304388939801621465802088006261968982575827912817968548838039002461922208504816315396438229600451410835417545432694997498260541340200484183074581289535722562926929537451942788936576810976724640883150777453765471362975178699707735811673061858002094065468740701569594039950185688942564528547553717806166907130235447074101307724590986164678879333487781310909308146469735986159956425271768336584746264710505855183543382849633819079437129841037994517431564335171694698658026668724411796274326963200507790191045035835829272952198172042826231056760116962277582101592265223268214505263588486051735776869969321515524701148829115338152101003286846326926520544219380911377545749751907114846170482883844800893424332194012880546210868811554867225563107010623167038001398186780039601671441847662793475148200171705338222095163681643087678125300144242233575168945307342953550326227521310578956937328473987155867590526836934892503628070346894149487788000029528300717117661042567606185128934049172370126196246920939715339766891353553575925453481925015962391596689842717302050123384579802206818651562882587068872492423037603384341721066043916249235339601823533407464641724712496722401993968436772371771642496794801392932444202032024300128599941050446003382437232331711499497027285951356176082102953161882400285195335975832616256493561983737289187611578799337437597261636786435632377738505421608717086623746017044661717535660706658137042871699926070006480143950418526469298242430836817093201890162112361420641596380116488672061016570294849804453371974024705738092921997975591361380972372345964467791596192644788598718356492011804932425129192188720017780652825797175081658251636103130715663375883396797403058352327822697431589294602752984015069708432980520236512521111863114781984935686386803164872822910559779195375055570307089559591656340988447976959024938107518086685353210222328301580052934045551416450676828050755216908493437290390174849864404743260903525738724015303729995102222276766840595743455122426974322654254104654634942251893512220264292381923875360134999227896158501711166091938192261073341157211118696400985508541255836187864711502591660275390522182595977582659056599258332372184243436768973877758482987057335426118722264512576237228871907219317140884632562174337340151431512457917553181425742823430849146072907872065165797365082285684687907984671223348700799777129284088665890109972711719311996397867298945129251441171469808047945995348153424373430501194636386144015204659335688874333619022737140577338580484486609349382785408310036778506137671328920637875368647508994333195412191138444564638330745815764659064102864850204060676480254768789848417699384228687833955007602835230822816735225875526925046149606686148535899211751443545438437601521807063436235817863996573728704260043354302476955622368164241000096448627480568165009589455793352819165060046225473612399102312477985845844448580906925555446899377096962633559489133225793510211922332787985109005551421447081456920682677156716937823309885112765076207919061588499281900877716699670477009643682197300618528975209314472964126357014696075873406760156903209550082304015002897488964262150164394528130459583150748452837199617123596799142875060313334806691972492819478937351669385919922094379876302929676348041694623067449341599714529642040916741977694719598394747433226962315140198568728880952889367961426117667895854278889107504492224405669016336826354854325100815378431753868096738370134745499457738492432951386691614039867646601293097610280096092203572942294307051013389455300869497375072845666416530433479662220837198267183749964818116897759439611414104143262994562268740923010776598048463765588798247968750407690786022549782816524235209646365151512084299292980984701608415841366677507846989740012737713644136395376188114670809104145606944853485478767556620141965645843819967744930822597446314180821133888317120963706504120547431594391096752224936061830433784136398020992278722053051742001149578434906232881461762190452838138548135675320403399513514704137397971239720331771922106612434065760324239457938058614562934616460279734389051022454915422697351854569419114420569478838037432853171303749810773451754031888049535870288404754250662437832981459774019559478906577414049301855551544054111373672798666718831038071191669029053915377421287176085981870395943201840435391389599531151300562532757685339491625200902835110848445643222040718475939827818699935328833407493186899822988579027247105612496373220665297859118359593261252935040221728427536789281941200554823655856908083867473246031541181187228699244599819054827679488509081723071111706813828061532539121600163994260148990874555472819369895324443378551386999248970806365434636526728023822026582845917288952108739525642466307170017315318733332577155820003457044957697743988754725193999495121828517203319629477731839813734533300729510956331311158335410175785663894712810612041666045637861064391723630082874202277321596592364433276804741172359157542307074966417086978348319727279043955639638472598712969491516088340203074627067742604828149053806885428749556390153172993380965541699324168094149302693276572190139187512451294219464247290658911192346347149096373672895965686415584198777167963316439621446544442848272565329973309770742873257322996412809699335630983381827492904626319539448619532725997167694090668924824180026390462978073946566839866871501751262452619173506117302191826308969372234995120547468565991378567493192195079458416880132254561412939319931793263230056948986495199425541333593694729316261555190462052850536129797085846412561674928074711935524120481343310884068727824567460764024293624238796328863376123466433333812738164028883903175204482769214809694765974402878776583830615926690252235783178077781373060870875418190946434147423889862488504630366803431316971221753321077362874111522967079670901119029440543214421948531805225111351884800810658786241679829115869112835533394150931414450693887298078978299162912621778308463790845593074433213980828004948428222106490844548509027152115980326478370739812829556931610853200008589615181755894579047130297182370717631662554163826687185675532193757373394959724915704015726379173902176002334339964724900853526620356876981918642582236221412925105500183031435138437915617613338929844751809976985009055113688927561802116289868359661316783505374983272449846538349700660434034659919122542759977471080918346582777934739631643733593303309647896997312606579327006353287470698682700627797010308420984534373440299207274384713590339985862736031353812466173422797193892065343260165130931916295314290457103894074770134096443755574257743474281481270945742871117049376899350226900909358391466443199884748928970126927081423931046794394942808913661955861201088087836354430266131728418764028545777369757755053487427399173545081792753218606304262181582630498621814788249682293340306158707552972233889608024204737053030598079291621973753184612377137047290009907602262975084666344026704595894363733274034259375653226428760505310702057431779600886864913800515963765991068645273156083900532978233792245506395726590300746343327249918299763313820215879181299320459715174096383074586251578960183971549845094344064714424603549094577820007166311230553267698766740186739094990544892491280669644563007427433069347678868350909158091014642241055284156313876154695795933519286238659175102754128280038778914182642922751836176042718508258434953278603254563926381806500170782314914823130063503834963596507191094393037350086621212244767763626948041638703239243307106851600801640784568422821425082804971268542166410693274716879371676924867798429767026032363853867792085087134909290163204774846400903772170303467868331813593055319719199836426251587290199754650290068658750812563322797227913208806454404465386187874193845471680476370369165065054992465372962979907692061484358972865257114257001836631974302648734056561838127630133825579686731092896234154646653538999345913885294108067773311394295202379812739400194893509804868369922750023421503676352836757347949629487144185902579167081554177420222563360645334020538079941409365960532312546044106303251700760228150001717187618605573234952141513521924638669808527544456385342899911678363426510185796853959341026458612316061483858798547861418824934976069563960416864339919407160200300218650127600991098408038468181969578643387382704567935036134327589654784327449540118229959035856724743679623090763010194956848837209738636071402516258275097607614225077294679944050052750517886081349494160359023868865190328952063327451679834380559012470617423232865936883867700589182385392077064711897104939350888145482487650206768569576433521802344880089918523064833506923952058311430313452179293054530978062061498231793431967543303712441518885849938794473643253172640823706894310667525856326424752978275252818402641409741365910131245375231704824951880853633609443442343410952358113749100219224511020228440912854265628537567978354701561173121138934221371638914307998229390404501574040978900555384030594040315745364230861385038044445529767079236434883530325808847859086939642288065863065907263105983262673223036083873325895080541314297787504671977940144101697630875737374498514290160790314668620834606364442596389185692847599448793575308678936682434751097409721136087469510541288040258408185287229883919092033787861512012315116622360466326788232084172611515970837700634094307692403106232357444786292923028636142281779461378999398716567349099007487695405091911843118105119772299235329445754023699667529062927626651214332810143789337787502571180839507799590052784928321769724406478462239477663651383591980472758313144458905276491971529678811442310607512362819401605328110692753205916760378021927495259297822889139288207705535780948876039193542962526801980825962311465785151525879425338355243049247170562432102347057453435538725307325721117461893904518155902218315365251416413778663255845493683584624061316915797696919491418488491122355415002171603115780047495182592814285076095004107709916555780538558419350946706200738344296958726950264039250017713248445842078030729405926107109651989161745965790531043486535306900006531582241708064192741560212815417592028055355649200286406146924769163525385529546216743322862725901417584974500323368501400983690653541185763687402306097249471110385940967898604648492492372253843560431252059215664960202399396612599609335174282363711615209675846248428351466756061598088512760720786011184388935606886370090760044605766015834805245553655848379010967652925238634052562974820869997261246882943109191371954343849526540281061016507230140068527137137726039009794388720114350043182669694117909754638183115727499924409987794898344621335665784321595289199053105173721472851799263746420614032795112420588647709349021698912578611211234326281906881451497180672088284079780948258048131787203578942740541246290066609283667348420307847903020958256190261129530546107672419064202943637302447793212003399063795244056509228014301264357762899144734510549641550935990913320310634297343893709809133516932167364518863132687814686262771002019868096267486895164816204188967923564297485617189092879207479712126285489165523499972584040905619265595894676874778990725243495614777755874471245841117982247431487489421993710994334604581806054975777545871742424781572963989383813883593148323404949108705336568011077089167513577336638795535738717816507035784954817604533977200368063773942487587197486866119699993698973876566596568499308110591339741277631205595183278761167215664672037686500043018284711711758795219404505029140241851386216644612490712476721616804486074495388018080694399757433937244993081119566965703031312294629912416424803176148537317538697038552084635581596415998699359915152246279201098066918953404307717455335166590209288404540300006773494690978049121824842304598183899209811041730155615814033691248276113888020160637699857868980534237394031053017407201746314965567896526698073314463548433728494443920727762410804408056926893551352856341116724984018176457787315676144442673295357749461620152489103617175961604390240008877506975412827910789296143865299168864670810923005409136517836056226535916499153344435483082790844084221037892970377974708365977909913624285520261298946071119496673300918317140134200988689469952835865303001703616846118292059139531005230402354694219136392894231656968867563016962476545807751075013031189387338556702190919929613057060521123655624189292702252984872431496509573710555159630997242286493090085244317597312241253120169851055812969044494833177430538888821390740459144531885698070220122617108635398270392205749770594684837610205440762071719394753444036904382086485582410330460207317831680143972053847978751785946195832440788414633563966502862796358741049646004296960466782236588098354664494016176657571518378505417889527821325719094618114822586432496676260133803988307920127785037116888597770171501886668195218925853746205394764681647299778400116211732745367172991158290560227210018942640858573580891408034549451314577110581110905781498811868465671884000328003360873563635047811945958850707519084615127619232472964568132429458263242919982902699429078112253123068808481759379322118165453105650927933299237238691267783205266798075865396150009534557980305148134033040993148519020370988779236833281867146978473631471588055723340307658897611593478974050922132652252286067261539312836395491475986674832631154300825980507313956441112718700451419023068085846392837357494098429857748335474626303250425716750728112142274070254413526515950751443955605323060656092591683409870894756637341332971432586069446655243254381203582165888125927852262860820848942865651364423693278469671217876169356111463755663646062687860364253421022346659280200465476971835879638665146919448708617318475331014553260685653796667241274583083861240361945017529247623716843478315714600850078702863128480150420891839740364538185611057983245434752595990952810158142906546939177037761192337199298639389952456462542967985161541296867638724900484624024759972300379836191776601597648591430983051891852660900239593456282708858562853648865147379777705303555734016019150954025151539624239660149883389643511565135451350932948846337097168763417508002611320452787246509588982831668662914458571077367551601097211677827303930393391601238730888090789967976626656755331524482177747894551946982957748304558151648761395743217802382253842650306372669805390179257009918332571456061626123807856989989790484905238623646700131518943420630710400212949137354100788558850029295498360389552905785078753426625627920517846065142794176587610572584073634831882299617327018834067247401249823900168713002842601384910108075370220899506529118331262547348752224346816465880719569347271876455041309315136961374810741730876008887388108366824018459816552198521639132674503951585345105312632976444301688106563560705430711905103882919927316899555934897383454116089208655679812151997090508294923979181825121671268514666201620646825147040673471107286806640289762534315568440321626390965507743001878262580041072771816247389036910048943114924527566115475703846888244281598355561174812900709953537525739308496075068484620687007465825887684498105203116774313703782013954808544596947921466056970627548602466560547828673470518721857307237469289506308883072661679139821560945628923042669844093409788706337056462956554593058570423325129155693214443695557039319339411464624000684041249773208139001381509318456220059588290136431405877662011639023764583583413846534592466476706910665558290373072127714285918491467754870314441431515125851971375949137307996828567234749903526721501076624008500164034944796444594357046353454048092251855467294699000405924671918394154750641466797856325424890930216352017188599585340565708138330939845035978080080840281209072317579467411397512037452478423072159322718803305718081673884691303615905027709623578857464919179457373012057604272976718588305258781689642604439408428899983712468475203202189366799182409619528472455346380149534172391211541641114061678472613165222082544654869103539407983054543877601787578106640171802997024670617033800677599105190288670002472156919601863715613567953992198028721654230604528702889143485948749700726225164956941039874723226451260190931294084445438177075201731195365989257678025271436371258836241804157673321834799545854523723568209171496929162296630979823653002923473915671709641344269872471640016361312000128314387380869734979845037593861277890974678391384593206254768119581859969874739083199608504363369630891043180003416800339078333675305095572439210523866427068282370527413243943953953693552376904807995015053703245467822923196028094945949663694415649074317960764888904869007728609699342532953367639254892294649695449701665486598807621721640015846101115640605059703799513364708546567388401260770215817968149285153340591495134661267498366155364306914784193587368824670084055630674023176847046815798179811115679564928881370585256833252658845389372058773829980533501184314691851841417689131122758541110005764281683700430604088562771441621559352927748756325136543121927025075963256915211036114099444467991515761721075050608571237967043755881896937829208399539045984905688204326643725656230520329396235054831037160438614667237685326675803650703339579156653849383108959756878026202498936894373420318674305597201414213393344834393226523001352531358942191213206190318380331213250522818243314709009083048170807643996488842221663695402564131670051467120164100151039677022896841040368278503484016687504668057318267429213791295335486287992857149965699473366871384496963501166913892244599395190564583042364250643788763605271875075840527853049160416430303870177559540883129964348927298494715903531924379322053350534378954674958974780795873927281223038810950240267967380751829655879618473332683126171541467257263218103095105035612891552552908790695652706354882753215850414630819871318992266088578537856294836240995670367843039236846347805889352791575519717377755157223504288047964060247987649293875303677713573878784606672746708704931441917126632690183632104852215304709748436708376333788766726338413332579916647492440900935404522683737757306255275478957455475849510940592389362174421723824934128941821862272036430858489119597310319918606815167688746440702751436180881265347203165697021028087998823756117354922429969306038619239808276898061660565756819844986408329315309768992447319283773534693822234940694720600741751897188692457649248711607397190867070574507550925313175075684206120028464895707171320101645237953546204642252202123710355724897594186802839442821610218189046343022981817372299626362404171737821169632699619887020466399216546821992324673887241637040065530404673030665507030390402764458126044733914565795418245865612467095943834873423768718571250171982663902613612332278532704139165037482761758140779596187492062735537134094257037798516038294615897015602201973501528995824905432115362193751604648777762064219283056805504775885327221469672220346285002095012258113520058030326072495251729020215700398957833116268050553086316772277329302662074814688740971314625300381257160744144834425166139048248694980074031891469006813365106927900015522374750829158395773887450591768927601962938843256560664737902266786372174179898069315198755207130596482795215371968435090862477704358479306677640964938870469465619634585752414396911087667118894810400145295453632229362915887892747155975845931607017470498151866113318341519487510667313912913608399950485443761061793530328767218885011994400740113075524710958745800836878399386403128161145421214941485435246142978360224983877531316658761731580052225364379342813919190826769049293729262496342654100772643916078839360969245662348876944971725744800363224689879550931481225083601903604244434048080523444675472908138664231014237831017585054570131840899528057325655767830093235292729333905010259165251047808439788425124700435894776551656453868416101827726947065565434304205992179911170745721890294614806756511161415236853453818685853288634438499982326867443270158426293862691115405427477229918061556641610491588856158299351592810179594920149053521992206824655421934041628148325867140776587808871585104698276567008226948377102482000309610127602865840269631066129068073842273603383552677178100392403254248532550176547719780549859080998925603484776262055908874440172175998708384032723504764968586280859198718197502675803893708739235181659524354877093007281651009099980561492549060004121627038669008491515532397380149664364267612599860309333267412087485016028080356681616296485376239476182295574136850381117567257828693952467249005440346869207151939900348853646352324929477285238905792188615660767701690717443512222749290269269349697014610327670007736574713872681593609194981649456840032024696024021995096531074760020402470739926131719369572032932458846976226406374664547360709451338069137699797729466278745924907816870948123637125178590473394992733261346495648446550581414975850070656441025824727761018620038669166432184381956223735823311638385603221562370273880485062545287925430281740018030246218030344353506345396429681350801080290820737734943316204116274847011774401576616964726681859833105457571935125659291953416389010126333009434668433421525796450152005849795214532652091187777904278144781810931876766923582136843557318190881186159132188489979114986572910768546370189174704345328427184270114463357660203806095781737393505772609860367516753958392527602695262918494590584889872484921882002217742563420733838814816040989334826237760021128158112022847956162099620105727222707717209073823782600490696481535881032584119439775010545213289159076091987110070547919624835048730866014830990019069032923164616041277532630311830241023906111390240283636436862344886590184638346550764096044242744913105442766523801902101186094384492032612951512701421207804755836701604327547568645054334158859715031517150142709588831670031318572401988782967147444205631330265607168622560025832364780313095515583136278291454930636633577988042816279977136295114020310826442023347749258332620513176066707400579957934288537195136385341670399266388770828845907932698123235170864333957402161082502404712180141088180461006083483215303945502018576451142872248988666240236034475202693781444304301657215715460987028831958819257174861313585157390835282349695468318635667983496902269951242579766265483056362688425528752216876592822776784813458470862311672992919197464646412625772343780825098220310706509402207020636349879958230676149936389246206643770153096284976289527328898448582619505778731705269720653326603895892791094746543233492329518411403487273067599870754265115956341690563553990969870025912093751397915008585013312253186368392196776736063661801530864219576982900035994454127100962519001492430985207823115530290063113789489708218069216883671688113474606681426239008596787399546492106240446381126241663531369615622274839569686351106200878627692965826525909812983333690762625629210699797443038470766718864179328517467420317767596060246838891700415990066030020859164734312903853598379202997437119313575779909622265458389724692140066117110429633374154591436486348803511386720066700696047243235819476853842185570792659392984233886826434914669664759015098115303662621913036724859412932846942883372388680891675200703892565767057255581101237951985408662236364060539836376605967334970348387097522441494291581631968634514041957126370991329209297717561997965236341841155474560169539893939970383795899430901100221419826086060898348466466106678552476213774344804268332905178241965731090121222748224015681856636656084366893814066575754321213643084086199625820984611026058372868721454720308012351018755812271159741497491345825312194799259260915520917836977076286867452947863559380094925695300248701913995149644018765381762909201245194174390232035466427640724830671985975193707235442382405335767543651307624178239631167761803913419943252139573533416645545909449901665895079958868385294289810707472419927927907350679779186993053412163018945051377694396550602560721733664268608860687601321139500830628458956334325059599430025924078512761480469375140003619392990198879093879681947698802393153736213108833671629939194619838218159233890024173500219751316264386163185513294036920961465876786330247681184146633108893366030383802469402841982350580416865160556143732297576159308826588841496796791385650700799677767000753642755248711859710213359373567463052812040162203216248258348190339599901391169031602235973928681783930377418962323426076795125362484763693309983667907729138359691506464454346786797453492111300601960028735980257660396602401993678338188203999069955826286701762079401783616411449345787946978468048870428903811698638252782990749781152964120141540419722041884265195518445088401875189892874878199675071738506042926618418174320685412988650455649746232032540373884487537350885130501920002931129869624774649320200229126774415807047531050727106862081559438946016848793390565520741667253099690388885703030960578222696088771307183255324801688917673235215239953609022255476430951417139949621776634179084148798591890159917495576176489116365136948596194896406620469325345411297424660354923782774845176997050259788234915320971916735979701824824848620911807865289899092593156033359257952294331777811986494509027959879279532733215835387243747340399329169812726024322889402604977498199165230627504133244622097880126487812690707497876007951570460666093827491386986601513526030533523430123680561639550410847145154753080831427079303769571156442657870066815830303148840223488778162732147634210961704476926490315956054106854684811383255028230160580279469923953685563144202906910143563804130703635570385604590670307551174669489793113143779973388927627984227050531692958300723157097785148245650385221921840346553284399603890405350744302022096642093953461011790121078788356104898391483114178579384715600076114540230246899088011216453664023061133286032654999327735790529217230907266173850391588243799537871804068495986273053034522198241636980484689262965530762211340668427136027291780496289804093991012244841171573136317412226808248081783548983491488987983230721824091668183479704787346333191539410082658849743214459621605291150740892671067498809791886475365706165384764333377779903589451338622940420159970649151190213044279201766152844153829284818273221746529559468609109622995537720282684220581784557330288402388895362304117477666987909202727985837658809738739715648264204401965915507374429656627826917883984290469550632587212039303797987269293755827064550310735906550287911911202655888864147431174246339429099813105766557660608658229965142509081989807302385630586400509891225592528566937930935015038055569142989336095554639187236426250397507461277141256623799797090151367862954318300373600268645497801221122107234516280004820079624124999031604559910639316248586109084032249433890304046703144922939443752525435080191418254600756191930823135629097905688462459033224126723139263405221370392741609052500403960175154022423491253869405255835936630633029479945556049552070720883126286207083850289473566708208824509192380821408775060481718923681184145897981888268717518661996510247407158451416769630937398189919773268863077104602891480222997065789076357940041866448098740096376384077359847140956444578417727757386651880497870242470987104893146552684372245161181448179573347653218902427995331099247676202248835326368530033931970413267301724871167723133734256946740910848464523190456917256249519652679728450927402781817830496582492456449325214117321090031046026716030224852440087248051401874304034140781342454235359548577878996612614826865204273714074382089095293320740549805301358994744104117908747331706034166299503075226228375622896781201856565209115247226307109231513528173893707620275054010474782729233210691325105007248270333194648015362316138880611837658159086810456935434927674331005598783682523239115533332822198254121545481946617377457813228391564313268747884125314248139527106302081201833495460936269196533989542848952157390225286175867203862568503221908616914737248903162006933794935927621178471320947226341716863471263501038708459785628706615016087870637100505175103313895354299096160012640584095292584787604975015856473800813652528025114682996124987075732418594763476585212892900550040691680365142268469533223168414835768598264462349604393616840213283470538841462615936618574483545539462796506567704436034914440718780989711006957986541776833509075649669837489712482217371158621796581340055005948196559987861582019576080643411418183489186570786677397600734043209076904333587750394885321575331815836242025546429991143008071632527352048242971164776078546211996933280051659709426762131561370824710815120594368153526643790677283749968195032292115788715617800505167797079057098007772312818163334079497169267106110915628348862369232118517196565182534450698626064724249987725015274212005496289175483232535446658638788605578479942902336204959543588027696343121713979479606003575896658663641019757396787793748150255293514621272190292423458168651212342660354220844050197083652153416709588026119839662128752523763861239233881174744155669089207998070680542793652153219897639470372029867764240345214830638035255810138646996316254831606633670983284181499479332694558872115746471652545203024742118787650216168588140989183287129283358798416706881200117737529311215528293241997484247341686313626776882461787423171000341261877308728978977748377644310028994891821815570825768622362535511901667225738207649615769804224263762611736966616955013687659140982377683151534322200082862455287302681453217799770620748249269162522219421898027611297545848237467142926350158869316891838585682344176421142249415351003311845974514589071983087662250143443298966715495658503598495034340895468842505400057438407412005419496169397381724260278573342214249435228717079114617793465690548823964381567082071189757839785900562135861509291578214171828589984238713511178740856024018671591148715155559948005996965873642556624889583678710112383077484473249786720726157348464310026840108811575014025476762472682881925833109524598029727317884856046115686576583880286063304942478499455696936389237242437764090105412216343559689939814728452294120286012119362676535120149098443333294885101130328487240462566411426906321693914275022817872612976308049599443635831366889665406087498813435596941908673459906956884631201525719205889250675984611612855913376920692292275462567528334613175255454894406495383568299373841719059199496313449646093813196109186192737474443092313087179358842713795721369778813406692488408690818369930894635403663026134900570689803394843306534699876028647504299497705090074124595815256403898212989685210850400778707928156017583810515188139290503153677117359694966663849645051253214749072029230174089284263712234634860749739022531914791081742833189484206761500638138272803351474852417808743922330958015647703478931995503217761354945744374374114191189497755454387833450260567274605804031140533192894728066228517053049913339230820639737116146655311213208236533403846999697065114220814866349798377513046215976082211253154718456611488749413723183805642891606309090163739444779242876895471027346879526353912449070402407661772570834205345308079113465933238519058678171450279843474763553441288811703522155805158978261550441790210931218358512003495124012828872222205656137578488624646814720429175196621191909231730406117241480797792143531450996804339348775649328812310402574617002182912579941754307718670686087099559933493638888613479552427134586729275479981844535299379803884926003366408145881355779553483186946330084720669774252623636855507579582576090674473824588505475187148596318953208942472119356754298286389684006872170886373490770529923869864342135043180481061868757794900657167892267117708835785814004945373784061484718913390827902925217209533056612774286689802841485014936057064817948915229478787704962943291754657295955151895807727559241424556908359743482033942925601279720438336761100125457278657023152427152924394226586823201728704493449889474612411950764051150528599833149102711763088312568722873448852042509409987272468971172073495858407841868471132443711620727796164748084387457502359108472310036483170298044954586479371841165729294876503545296817482977405887054199573419589607915843281985023045160275439410106984804360794081458244902894373093911428457922623453783388651082443832183307211563098459582010974236097678617020816820633550909964281003649061205240080778483766445202926059682857787744627855361136552168366592553388814218471183335410749278783622654112036509311544504714965525388157199421793085938395731182507291763214235264758456878037254774168514447131989558315647787136484044978089691665020559137476032172897157371808902048689125153330952425177024983503133159697877963578648501554003409291494549288265882611698766834552906132958127230735481063531773847205405396472204157416644832461686618473175132507530424030250306317972599430518001611395182017106910482023150202581457910245956371543038209790648595698249529024542753494664612245905987717375292799890731340430204088507777420702280735231986352267102357768038099949006374077234906200104408040882005641252122757050433526676815859918153574414137042592807087866370939442617908178242892230206557510340106160616286640241500476029594977773387065138877258917122381534767671537742043909031532542297568779424876707844016325838449272345546099226818705668991901983315970621553490207565165038527658325168313424318245910449368141618576130014935560488760604903739023866423504105174398443822954906065936441308251179744415858397191792890433819596357249985012297496070477267498685947990546152886566020617590976240198540941342969721376406383358874671351273147241588132407538270372561051007164423997290829551440212021116058625119439211043380357394841606890399042358327892734209833552569861158325597367477505306060758113512890070962235989160985337165901761208482232195849625018497597104145884207557342819271720507666562544931748496279358602096612475265280819350335848093438325588180368921482089610473624599425835072662702227359851047683649786788664131767469736296394795771607124160800413309227244551042332507879507111090568888266500148425189236698431387795252224013415644831755248746820599588046246182421416488468021806786223332288893216025130267190366025429079320730675715909277648263817447572263562827281802416435179582656610647546255084280969769546678035476408988538848231662964929106081812217424690357013868867420853405996102585369158700730463839272303549391997892286550148510524890546011668015759265749852320635940427164174313995567147093498833023035143366021286734041814933567490420921786617442276960459373670438372924409268883966557233317519082784653901108303837804978939631689400800635860932527805308063937532800832906578785193237868461240477747276415188353807061607887233815170863701316659618010690072621494265441760152350810462956130656957568739579760403517838682110550554105736517092760689470423366728819952929164320302364873951607559090345916629965952876636948481697133330622683021680318383731851201538939470371212570593632230706090560673882335541249584806041726310522832032839853151475441072276581723919192298082027649377885600773531495806676211610917114748593708072506658054367064738513686527552036043059562347002302484073977332173735409721920652938495618495413859240069004870873283271646494471269175364308358566728455649952209018306933737042078462288789898856785137912561845326448807979669243731951496163726530372942191322894515708267890638945892134486596244996870268479151808159857664337157178708199722659546202592390893268282688880238436572517144946011597339809573115237574974396396403387254198553247026720849439402067910061884518999417953632797750142384060381277081827643694346407070909796536602323364242407974098400044151528156371733689747987618515879091639411918233820369425236564950259001475321911470550693862818896182351125556227386222769293923128190050157391125675024606681389548305838653515930863470526774736964901891522608910542142990587170462141236934104093652847966014621773245397402307883757379254422216746730110428011998309036766199928375349096567874026021937545104808084992160418067342361672410598063294691721494890077454342670974178190927500014476210212187491721032260996829232384957520627242365442350458754523215761185622699422723866142138333500128831435281495100573514838955914900558362745155053090667766523635298185728962970439853532529823274259084257822566802809840415389359359048642151866481691325553869344610659040187946411349968708390381517531269137975371332362580025221041679585345156361455969902331811951729679043045427394040999584751021683998639859024761596898538094885328567679639422672611663723649678593932669154281827439536171834170796677935851021039226906736741104305529233902785667932593525952030956927079888144353768222481247609163931265318018903437639251784739916359553553426903577399684958451439795773410704383372572209653243193997535385596909968088422398936580552504296732771716077744053700296778035941808293050483535816491257435355283936973669765694491281236783897170108804679841123238339933919506122732113776174817794170732913444221116473121656006293162460417953916775596023878387979676869137591606599503135372491804671845231815805482401536303965057839300420252960964191594165405711170770006764670718586239572051063833907589605647932882160581654837857159307464351568445597921336341382598093629148247000392748837825139182581927750062875082993176099906154656161927454252030932001317589307138628716852662310290093658370875794823055804540648352701665347838216507627043749867319272850731245951391204330018256694781413217688202286966338836421092681285079131674946341981478187809544290100726090809753948460536893075613384006086397018946962099167400227424994427934634450254628420596908185014472324700629847759915425883871324069992356757561058141249879025499147482242564086095777220801653516351880434580581212361198083831889253550107301047157424424922731742389365494358862940279518771726463568693719288738325532981841166955689491070425593111651317138236550039102967444482817840885081872447498269893420858640218425880957199430060007181682124569342020376267455813626405571410580693472319927772332092894723670730084800986150008675556785640679753913273405727948676577909013172263475015459242177518503191055372664997718420928065031558085756852256424771817833213739663990438142949060403104103440032953126252127479570344395851763099924387506647739750611288905946311075435910761448702313621343017572428381926787539668658541992857991392550031626925009196578742566359333225918006488648999397756031043743304263792780299454553923088922898542650768319628620696067150396802421565459944603472753991904409318414458171515173281163675718118824333346682118390115259503760876140330020200222937577826723082486145828195222709710936907910062609997147238512109819002261161597342557059014676106233166225847962091509359942928545655531434693658083339093335163187022766417425616034770584338002113475940346969596370078794099280305115238668708378859576389930998310195437768698712966854135815187350703289905019710009790783210330782642835820399458040097580927368208282468773050536292201497561963360277092167194508587163240646264546292798372004343311898768465836468227920332444009388440261011834154161195146347643843069787715772879681483224679165974678327162261826971853309961359913457829123352677016258685905638346316270406586968100963167403731288578080277366309141304059728368505498310607962779972877692270470644732489726475048621206893788068344412625222127837066957790242640569922425182380860087241163521289135297790133579342953772724889079604896812918500167628332828864708005540516671651215146774144207050070068865106840844306557476241854966254941327661803108566253012383534036291244423609357185267294131656531431883576412955973945859450416187270493353501405072737205929733063926885810683363527198784351375097271727878468046863865041960826214020495770019465611583855045957867474579385851288525128313154382751519824831537466925033695834047686188852567883040744561117421504266725016745117570023524548884176337820234909579761394260922678388521703854393136883372758729539999641942075769260584144397509818803093381806505038197371618780961052201307190483943661378279060201560160897217830808056920381492139557255869461187998130700517495626532228551926694801822834293295532575698508280509379351946086566596185289090878509816761308892348216359766759591793935622958903883210727044279312690868650486785830295819168871200565367432905822135852538426300928282066657294870279655267398985666372485078197625544968628497998103033954797363757535991725916009791238514116626859978324545319171441475884845963741425118334374336435581955890947303256787132611705061682922215937702026688968765557539345787452177340360793695956113394006101104275774995922683893729902495495477450058215362840817483788833553570856672967903135449961600135876428443844485171493497044503692434720147069798530535365710413821888072751189249828050603430894864899130221794379201926810177596565858240526130318409769756271864341151002742686547637834064194528806200552577134264432685326949176397038103329461808785518860713439660817675784191283798237489252188158617761589284228311308649115333605199519068286207739812593454107077934795750187055349441102983441996672342285817783297305054635955596584768097756228915258512509788134930729795154652382288555563078422954657406264374608985146302714164667449976296546075406600539518238866284117067657829505426674998960795416953016728645603323106527104220644592719741941329434135434276393072900146857812057741441276561991099190271655685862805196558895602394945483211203887199577655677783159060227495130108920491949343806901288497634872437559564929267656283042058501832682780674021230687861541106196571572501769250343265768003546906153518206564231488171042233232903192533205040373254316740585735168263018318289348398343486089130569315902314890633767608141950604694835477667205295663837049626340206488229789274931751793603298273675697655709233398307287887058810152590787570052709631528292900023751839066731740952839173121669691322677660839925710829785709378071499865870316777262454030003389117483330153870273608214892588312383613529885902771685225029428297343705201023931674761114769358711063185015951821361220115121966729854310666441364568193472399198116584856057544428676422246509774243239533591462186438651245827732259158974534926895862167515078182697048827976576630984472725955365110061456692951493670141823873630605254874833551728754631658104222859962205759664465822225778726618128521148570773391561555597465265037514433261068221432154914424282202329876775344222874614969564217017117051152252028799982797651330000420413660111890559275111353887352782353109253574147082763053297322439567412599914488475434569069526347915179274309472959435130052158963364939462407482351922043935110724547399970014159586610739990203594503155740515033890695006147292102396216111539400500955893745956554899518352167307554364185107615471886020331755627889343971304805060177257068191397790788271953903752373810704113637459918369316549671878976049828248341091545612727057059294897804954143369164911972403708841562722184244285179050399022110562238181791739397275355630822754400252512669199210211177349471067329592102338645221675820193605559330301406047411010134524403491324752224390096248117003200669146519717266501376346283551502389742192993550549907623329760888562081930477272822928361474045290603801200086230318347703940417079648071724973231644765940353103665375817298375252969946270189165308897029242030331806099254096179531107978406633554714456241958403980396733192274680114163614194594949089301229737890834211653905124870531583216834423975134921576547908059124721942013292619314712402027093949681824511979015493536722055340610267336484747048600380561721799273228935542524096284456238952753038541373251624924502077385569716290417968256611302873658600860355735235508835995060462161978106470783918605697652380660802252223123474520169980691255210161954483894499453742503612503686726781881668241449109195547842776866494358267948289796096751058351808436973931664737646929472023170628069281208201666940047970032547143989315608382086056394116196797871168487711793943966281078994196373637092430694981536926015126656424748984591695536377428861554939277533337889590919635604800389250590516198735725956695192249891623205261244115577069516813756395767549359405825752691489610606286312263247998395537190320721295106973056868797439686168216619511515115952225934484785171288207811202493765017311397933204732648788841581157046990976296036893889369892184370579018091196541968146689367001297106615435214861402133970728606056804323926980196275410721831789667396958761995151631970381914731549972734954988725904511384350936824219075540543716248674884539576822982294186193752735725830579981948889618577374775618127675445852280665136146317288528322200353356357041115376121576832474711533121426890203085332154935018881066529875452539286676566344531907015802050040373835983713900141701194061712520904256239233196844906129983877296655844701604725652948980744946427691503945123268336193420631585301079381247053849534097530991321388422999415672972044538933151072228864229294770233545671386452381438087760602997206999775838980894726179259637037219773880225052771299006915712346417650349158791475616698901774003199478003438647233765348432679577005539697301050003648897191904142438099084220097383502970065026089499199662772419850477158726140682979067401395602402962085524119869209751752229853312414088003084022492952774439601567442010407962461657844259191067167802576382657007160049883522225723408239377311493978885864439249065848727546432404084362615367947965033715080115339896125648394710164862290722265291787449893910805972468506503424555336073068865834281023787482806511751667316732125227000230061736742287773932525646008386505536043404204565990692610694726243736595773984071819404282254461236364055804862208690064286708995584924145999640675066790558068256501207528985320629577676780119571437464387892025540956492148965612575265314846141951009531160796148451907742371692385232866727468089649596150226193475738710481760559859662836344644970724143092533087472421579661766370944653872016243049683755638753074360732405085811513102645323576983875811056918841558537570429368703202653149278249669777398030029029320003325259750936900165849862823098192229779298864988833242264647610455477931792228255181392229719463853232206386054905857974490334162651842609139745220400375962926814713473735150064533973025515438407662826436603147966039290913925748919170654443030838772311027106682526271236524490135076360096465483854461665457561675422080244523884491940753374374431935824188995500988462723229235888038012596531872013166761542008071140709533656395326511674138300687740237206196819827432510724266762487704066541598387634302255288146390902563320777952875436424096782068789066753495253736604993614795634592362546399537671118617028488711485633570733753201386739886615065162770788046535840182452715260516015348154319470395016575109126570544690887298937485962961522537943428766525585138532921789777156521956132217385935017529656307555329284433170589973851388582497122437103918193643332596073350679010864367822402290335480112408440715381200493440605888681395207805318641481419426068719113230601858176234918100751803866999399655554757121510245709180179091272962706279649486154741877483017043268789053006151683808762270834218663349004277045864674915501971568236276085381710115886232210164542019452901653844469494658923637042462205062076891087770493492623408659978523804372277812844209102009395897371475279253739766660057121883567052927546622655716864892523401822110563716329263147766021634197139124958772101734629104758642184305384250216826182664555486186097028273553783801010183793081815588109051571315913772153345993770795841403403246156769716595191198781947002154207855148970167506545631085106598533850150267246353186344636608364136020325312593455652292235808152591749653056906330158925689801545134407784532090610151136038202133906890946575917134624162983397600380534672894682323181616370052400873491516035917567477258813573196594761353272754338042478090386260072928457140824835859753559453828704777337253922503618237708421501348663406042931827238899582819627697412368978605952684666280636885980815341472978146407832551541246319585721026778852118117633470090418398432853255510634596658267552150104473311834240758381024207425002110795637494027391836846957678869323524040370087245552883747729384570698165324623562192474946718468120836174599955215656241017709601269972211944954241571574222934364184768716185520697756990654510824902536364178515460860841154216608358509461944095989067653706489334869308422787598610470978477019986586047868568354629446713128447477392697847906294846953415621022914982539497408908296799047486818127510776560893716634032641675400945557294936452692451770300267798531256229844884276466519841023731452905816532561083381422556350265943064821316298640914740146028416700294545027720709467978621793743869519728395362987892253668313066808371539525254720749577279822974915776981152848907545653488882139853926416657932689752379483231540846675716702920750167299873691496774572171619373787319879675154893680932713326764388856205530119139093136309757165023280470089164447909095313407936167400968834740108810512808962239418012913613970119752073806308074644067046407784355943934175427348738375070331642401925706530170441250028014396219045427705065521618761090972680244299414386991340242236967182397481071289282971336482830199742237171688671711387370645123301125622276369261853693470737345541847019010355162927035704711369267376726446027904379025441919164483120877963539441672277723203754295679630383952397153454809303502804311053759303497622008685183334972911793205028954272732798689574529061100022197427101782103287548730956357506709613730220357999007462255165405324140698718368986397202213217779533675914140964766410429065660462189991445410034421306732369422883728211268872361916900063628531720041397060577449332503452104689229365249925861341427239060321652673240222736874455961561603881000545601058003173140454520170107740087208588039268468373873774831127583288104257823410549909144699019532572485422692837328988905316391611644163080851078498748049527675659923057959228387311146558793274234966332811047461724114067845343237417511223737757484419453333578139054342642626475079021014361886069282492265074425206080128106648249838934767129878941520456009423114126594229349434764717088470370643283409331826009886585612207387094540953856676807756141807460188950150149629432851901811128383798919903515414858970607435621152188558271791595483911704600699469246099247388798239086801204167620260842151194691633979514588369067294122262266469991897194803447334038620221632591337398795917031244967819348637537772986889245976213340897578069455450085634513120360377240659959886366358460829983673326282232463117002962831265410753114260259108689901745788670611711546940648435841841105609044657254174238049818973884046346467273300042308619789998455378752582013261901037034049365773620854791248642561409804476709366582095516662436174741811237713615493146119236318525601712185673663343190025722868516563609518785303088889133742777192168555854731720152613971578843132663840439702629314473211201277253840302035091086909652687474372088432352933252429882395907391835558140147813423578652782103955083709583906025086402955929882317070466315840781425779088589842944997180327316886056565807806895628769424631278689232390418192088031703694839425299948388676626252869299453174524820431100760366827225778146582350926558907946718163089992200712505561802143881126444605912819170523616641935539509842876908619755296665094495631140705623534055092442088763277571105367320776062733793028606848766994653156807765048023622149729459257938705070668483417764317157745828655963029244139367941384990856594051385373344960565950900935073304067677457850132793664498585633459001258597755384384794671132342374530552024324051338320064281224386369642465481779650881226642120300030163748750046551675811736012895624644031227895997398348992169901694269991296578980465509814339340465085734469063428609455863017663690588096814704050475724952476282519458032035779589664148464744130982338892975857350292057120693593799061135331101183924825457252527106069513933861009443997071980051782774029523626612859976308230495430121638890180697360225138405935155923427599883188266776599488556704644862156573321220273036736860443828893010100959211481647683491863120718200585218612387163937806810749863500080781820902769588442440772433618421618185714586759074435123260789268565245795150601411973458195410389590610116075459239862307840225026285090002442098850082061846586472177244629725217946782130124625143556299179461983797815376039891403513517812127574964124046091031280635598169797162768260740458965821454666440031843925938579005465943064375963494136908934109354647382347170125673517090006339611054437376790300622585412007028731252519585687214258688177456071718367651800635957647769403162118453988953360834771342828354336740992872336314802899956390496459224131269584697772707357874675834777628249628374409439909121262531183982525998325816911974785213259081218922566085014514133403123256096142130927526224261217591661918331884914269163213676776811132384245161684585668838450568863822124816617492657309262905826627349379085084459001496001641949599934585717327233483876348375429540952469625521640495559851634349819095582115754094975121149618981991788164991758545718601783876203205231387980789818386718397444996963110767280203013799480518673496792589040848281852118243707869669492243662157528234720208658182708367802244550369672010178207621521012391379932290412901254059614700361549000400151097130378252348867028608502372775532028021595390891985481599278433212794602598432156410489268632901139586136991759665160194093368368987436803751095092385399031713515691198731186496487798063674858360538572295214250344810112257286084008065089543822901494141088529265805535456376769042279217038920382763614215752801986522992194827771240458425949414572265500298760002851852798993941686190057084734841574451999592141661386732755398613126276696055983867298989316448170562275733132322249399088531279296279627165995199869790378991299714979533711208461999008874065221862148133533647497840573777561497335799484994073216358276376073649115588643001310016362243819363739280929977497751963720833271029178888001889389170468905870371483748301067125135491939835821935817599560114894633679100597452388891931558450900573949086774020975447921730776783901595705915705004994653289849247809123021414592308723614618128636193776816641292113092586734443999733882842747081031634496781002668297364676813913570641012022477377683033119001667252107626023766262020250263210992228115845527463543682846614541530940034115035316117103885989232406162340724846705244220763559143737582396761242285018690985233632579263039906902015407971953600400543836441973721711047279124306679233595194314073928321711056298809872562858899144735806461785412870560383439058071744375653202319135999029863969559190556549271345491863522331752613421465613514701364229430374375722634569528541860202517974756083978576700309202484574642600573465048418108028726760388112785919561494261461739530422000294294248308778235763533992106108846542132654332181272717724299188993673501164784586578416017601433073058237313167336642467929447853942677650805714382566943501568561822574744006847791109011338668723009520903602028355011802039389715513220274760743260209693607631896471535990138063232709859903314668175300031489720785472304470260218713614115662903508220312185571515286725144355100460178860366327470320018453712013835647260524276631823040609155143809615343915699831480275430272173399431790954326059702831137826730369269368914865523653197076197638102526597287075874189262661829941586374284805375381629764561555979191467229055053545383565884492971917400920850350721749634188977585477478403683260801810454679177377501646055911456473737392984269401014704273246405313705488611290382086553844196688664597021822463376827356851881835336262249658875070388813527505160451934485422658801172240690024887898920384980597795711348525723845864493057795387114507781650115455150333240538341009750204875933071234798274053041498356578778613218673232679025305356204255858733380297396506522949172081985212212752483368874427488297466252337733708255600373017533725941112237480164679551608443991420023316591022123622375889083329928645768686985948186232197811445856788680591859606304611687474929859441025063402230545160686081581331105786453147373588282298519294034089145041109753122396274199191007648463533210196159531270702014367317751766662622822527729530407641341308301332403142278835144115456669122271781767931617911687940844096019856492276744673019462485315138484905585766711591350359056637903657799775184147172918978769834817650278685605944792759601924783727477301887824829472262426213345655519194874598281740043444781079873767986356843033995709583213562138959008617283456416669103071219741338842813912288138831240895166037840346568054657112628712224492705915507987494961990539145120508685899633732502806497682762772095038838767948590717433481918807670673770939609623515794078619900130479885143344747137597482250848399188511943273149463880499645719368869584169524911306359716502241243457682220065396480786440507321127032442349818077638755034411125177876926251573570095806550012356156970412372767082075084222202549321553854750467647984362104805479449768647447044176371966696907540667868359438578202327175262155132768111620546874123965640477569814430517536385311630647834178768292986409661160048022904405385323945481653426350041584381826975628667571791707593874315355460233810087328112779929553901926196490459858343772286957021030900356402416064627928353966464480607328498800343323194728021975193900277425760397988528350534997925866293448263270357230574978749168413946773052718106103540544622368115923857867536519243555517823419976811294448035753159919876163381551488716415392046646162053399983752603670325433024349032245572394172989850052651958916269679073231926996068753338701556370935363386982230314669829394499215392389293928303882740305200905645633356662778518446475899497493870823726195401619510372922354153962829825549571925548387907633086750031352608670331498843192760655595210502177541458395208686632815316652171335441370197862771482002728963720227449945501051752962238669188216031526170707919894103248693492648642834249633985132459993873281705647877302593860961034171731911472372788184447249902962225046249597219768490151302405839188062429085435324365562450619701993602016584772452976945907984801660878901145339019676847714768710720822364822091857212181331014866309008083582260897952072565447173002996899228073832757017500172171519235849797729466897443661315521721543583447167814684463528048241787072620227242451985220395091519610551372612344324668360750849530855477738152092592111378338261654408503984074504675088765107272503177522761777588256175498745893924140807200170468208173708259227948454891539553606958694271801479823197949847030934378863981820027503051238574623520838421801495070195069667595854727242970796715608518277119706203524523457573850244552770960515136959606823465108844831022550953693716015412858554541408282221818027503283225660903134606116513134569543189350538060031726843578192490096505198966250197358782996730269104083431652290759524537516348217674456980728558407522644401326467159431520507063071088222064439737682576830710175660967483405635533335399313750122274251445626402966072491890985768575475767109872737786559049851599812126600447423354147775821460921141281608403221851699157735706788708840136291895144717440777560485149076248732038382325742489332044471859410274611561688343149950717348240260434465893109670860148922316251933397521860321552514693059994375953117254690277644619235989998296234991974062930094193222285484367553876892854424933362196688139925980353479917827502267294180030519738006711763687962897315560447618085877192637674900019160662107388373979332837326674611596548178473628478300360764855835366602647056531713547893846114619865957774691697961637516084764698679192272619178707896337302844731000395475191001401516114835101531909609349554575096332109745876240900946993312640685569164983000421351991298903278943956793770082065871365783774765398381998606621832732070604097739847138376876002213760272718035453678743651571765831362500638483397034527625356538428639258214017971308261769815034126019390642964364470013797910931510441740424352958816611209552673862598626111428483731518552710791652132857002935412154374465870546295329650934642942643334573496732671874264833787116391733545765506109043597012538375314408732279212455469703716497616630443605526986284354910693134059669879476427941172759410070966873081379382845014450348364073563755968549741840732254412848543295622908052622691159782186616649464778389105164192864701519844464643319766753463652597641702282643281676850994921373561784988343756413970076687297971798580231105241382599770691901375547425098163970947238925093538874916259279731866300629766112556363664433628534003183546269433654487949838004594805502167194511337065487540793797212125732225937650532856249703075038730802609402792913946492934718460665327591145685622301965602630280762347261470384952023000608818114793829784055871481955952031450494033548061693836646781296071289170140576165214144551932126730623794147527539055568346589271567427701679998457550519983905182466795846830835101595140463441662119499507403339741189379189071093327646232352716449197839977996672097924603394649728651551711771832468273576795012554320466999750234693023478143688085478771629068272003389731756893201992903636000021248048701916246092356361603960412924583741326405174688272878591495709361379358425238831280291730181537137418530503237619596789162433325270307743475062718100342522157384992687419594930564745526678259473875216688408836305017996139174250729187738311044417517191546788457193890758176165483728219531713913214706660112597341089834248124686449629778710477617541234682109671987547831308887411358587908769891632615772902384867315033219564447130627509829263495122007507972010767299842138459393662869646683285644606547674899393216197376586454439227092862530890252921509242985264780817738148628714014296879428414728703505374958551821699997473330401979366097650840338971833152466121257268401549985939885597790129410883174186960985992292590092469632808359652162268319278297069951361519777290127553750876769162665121398005015216676514597012271199336274682548582170902716982999360433681136354767724977563712570441431123072561579821910088564148640583891245682326991927280368806862881151217158969755795956462769578701593748943699485476334632382216328455100531083727068191315734100894466185594581221278028956585812340615883431853413453303297115290949399285439218380816807881500203439441321888123382861567911408424145906262101213967690094578274081978858710248340953917173438221461865032236434539234089887086365948545537588118623863711732439381173010423228610979539291478614983697034573235310281929780869841218078112850447564198827136956963942284139326550600217305590226283931664771435858694579891654812625835952051176559466759807612283259396582469015355007037356875098552253922869419365756863729129938032032011823041680979411343124745306651817512299257322777636411492491477205923305053068333688379339381046034750506044123647933344981520130667398938930600677191445586176923978382427330848321694540618800308453322609575851309363635729542357224487411520533324924516088521868180130390558806520879622422691223358098902198246234637263474011308943276220505131664840658558708313308566827659699762787262113551008743632172161569316466985480387408960686086623971300686842071845269506645557170615599137536529508763244897345552841606918281730075303282926733848975213025318321202561508947444984086458466603114239685587045670186258949595772956929078308966817873526266757697493530895636413393556345279847402550431812238347317821008593683468158559142406050081828828883043099467056115070798158479194944492184558034224291641517906408154767315891148972360772242232022249313853322475223927818068854547017454272362184675747337764942104367954495970102919190184339067742488551442624017294161062266534212613513641251438823561975686783618388263492491836229256186209269528071080196705762479792228323571694867356773498353665360942161394401371883041740266917362479806052538210107405776465904925381070255301526340935105367905340068614302007097266053868717807666312490086969730444321614122199990701698085865719126826159946334437293809580652315271336268115016250404765149212220156898575928750819976012023186638003174644631280912246504214385903693327891500682697247028885044181118780081368693417903688289349044727265836082027148569327075857480308505128774058069474449681560184223722768236235129237132553361804090385955035477217298089299142540525109585748978076507860202200409037000122744313243727906548996917441195229135314631297701373313274677557065491921380437708127343472954877171709918782861850540324921922608423153336502017164252063422119697422984467863992470722485164537023497075693326852691157142473530007019749892195842303472785921288138263432890720205972657438500056691516332403846381068460246494419946723054272658674197088425279441870396349631733438495249487728645450902892632218667110868701765153154734263580459222939755316350239802733072249369199835156998897312919881604538138134258257442918278866172038652258739734570299588361278101402214106124882724945270025563929641398426654600447596416709403638632396009923431031320878152114170158979024613627308400011613293142630257632316171157956461095445707827770322688254094126269458982556501116804350817592135677727546325956445313702226954903044206100901291011103548050037752541782232556301257978574367191321282506755126291231368914556465474179465487062018111233357147517869589805148727185005086225002698550609054254916984695215683387080853713651299902162392305270985118213376226236152868171539752082543946215775450750107505223921759820795556978575174071813277505208497018613449880497720641769856050317754693865105729008088237593569637156235145921281201612461721093311629830913899226136898725398922955747370535522770177476981803558688266036617995562035542464323575735357171126227108189157447270789664337443784444224113783207636785469924851414357982269472608065833373447591358077727782964119175738629812547629938745926031870280689729747480845833294293769786916078728753545996556623082089740780593507160565622758749062792029318897652412425567332598886815073657107215101013166267922257532407981750066437382268572879426688096115120922747104539449182218881205077029039916709922659992340284971327748478810145161778470137077649036251732314940472830129455927387341459853348123548503417860296412738153896972421503260778471840746757263603011186755983155165192983657184755836846786151120179998261772176413210485330990340875988231831652647151996724197708134150072498991028236101956147323682487013463539922535777691341965819674911581798158560097619310636869575514926825601596559475193925894795235948756327765917353517668083975931183060705091936891079138305038144290419895340323149395146266232801234362264702527459642449293152238927756769322681227648265782607176754026696195270932557470434389333307532897156338388022571041008815161054159778474708708539365798094984985403123452902532675380293271700924429967407682521440405590953014744486378033844239173920474457753989443282105958387605565887085663212787682573757136928643701509528558516852143512821081388536072820251802980212867571374346488891518859525324401382699342100724146848470987832716849863994245460515246221482484718393766761714450638565426712548639197690786195061397404897408696443758687747017497731668915884058917693382942098107387669487731194544072572337193274540824989682685014597925799630677574795914154516571433258549010378076250207752719703352287300972113441974434106431633959094555721017569966246007763546025869308567560138255114120888378852525049039473461894774994415630348555281151753379119635936809133541228058911001939890304085442632211927762246446525083950467073014498094921585550211863511469100049987833801492372626972407295606485919350826289927825421704044667512098938487683723718419469251849961853403047121449640460166796171942178489306977315957917635146147014173054593988716789337322611668500746878914470768839452543683485362613342096292604753701008493189968851899630734227149329376721983388820594013737513621449247187970493184053888379419568047025650709553221691788421524187989572628104867164995547643688316725453532555498450431670043971305464633837362919288588072147803490128897524623373004610954753898154340938447751273248754819903679107144012356091367314065071248327279044549593347471185834116597156483771939824493043267977561985003172904642539223661081689830720302043376026752185837998930646259259752810164282777603935285739393467286015776025315529543399487336730197517896714706496141132717609181944768385814190285898573880144390643717454695637450213056672512115181314044484286061985885677142291470817452828499897617855176869629392900085512575035894083648201576037636374028497643155966043719520370086133168410261528763683586001211569541524672329781556736049432213714936990436672224647951877629523206363806993964867197671459349171244222461755254287992901264209810436526727314839990179488865672726903417389962684259511018261378702165432539329324680678565507133489397668055640766292122325371894982769206421871874031128441023558342658729344336612206985834337386352240276950143065107641262297255813709994844525124928445731916522853999151896401858455748088804591155576427046220832539479878624562711174226316343270999501782915786632034674325731613125099841838768900777795798404379047614967221596098823479367145462566603115932992264389503523173127002193235757571637543495098838172353287902277996816701250967310244240193210319230146024792451709116648165389455457419119693442919924398973916760533813941515892337382474972297022035081877964797841184004894794043277092177821999064657260567656591088291814825566696904917971693570866413259205966875788356119767659150849908636499504559512264550126054406163163347773974132332314553760799220114541453440188565806807755263767752294514503867440369969207748438907669637114131678374187026569067649848296051444269275989610676627445036090081357261274644079622334210534956916640238681996449472189899868805496228137422950086614135646143435218820933171857060044487012043059932542087578424984663517486448068720434063751976282047720970749160547679529245167692942580108791862315360587327275779996525166760051777724932878463722110779413688697072192817433165953574463013826508399311959310560708433646116965580513540915295599499135705207860758231687147514032764547056474294399526380719507692146024943843819120700538276074489357602660998635558206808631407563109354994440556170744070870072188761890548514113382744446464764580243269928437385341905535938762619733261999182196120673492479726472526975184374694095522886373710156340841029742720715305525219813321542531050824890378970076336102705044273456532224258868054107613872385750434881009031993988059291078081980652141036654529823253462550428148882177348019663224975359607765378688089816233786694095803569033013103076143014007157836330274448915999687015987920766239430216090515149945892597670303469822046474903818453582774572416050704775197521164959609014254407230144692771598224548825481846615861121293216867252657150805644239372138661968369815502638840841957319942502288794788904790778894919975022858777172464488524922441268563512082253969435845256229618797981788096111228712788650938742650676680532543218529329552177408580748763104879091824374162466825750366973837220899202143354081064093579000103638149185724986513567297227674489322444691566112749942496252120093287024386498380521300934522149961152647566663279324316451667783014711726669861614085441197119912199172488615157176268276425992711437757116334505557550223764693647788858800099443174256006123042474239593546932029405705456848321371431795251085980024860058365145016349189631064195450557835268079770482366917392584684071979522292236185230942655342150131257787361642713660143134503624870447154560171786400998036149186628439091551344419597059748116576701582601252213254953974061776987556989809567721708719862507072067690333172396978641221278526018527008395061829169235196652210685359435932684852146991916025340538048029657261241128652677725324609827677315057719596943773116866506781752411239052808650177393606919895111172283875110309621125865129325488608297286698127450193459560647720536863893429663383594587897059888978346296462427954856412186693515276860818176185681682089595883195336715731050849760568159396540280421781664358911473576199896945518093745991156876580051100206647066803145730431807312742187647972503539887531310174649950567341844092197622042128471732922568744518558751592234501055978600405716622138610596848804652195584326459719534285889421334193028650611007033868970340911780926805947116902040924303890269029162205753923703170106669724765374382228221362815683564631215441972545153683595150950756413313928678183413762622059866395183780721567347038446084941966571500702033032826395761733997740939674734841075616489330579458299942396849490665803012874113537652443179814544530624394986161184500083500353364501722618643970662769204990181376874241356745326162865004167200674940668558775058667659368621660073343465403978310151486735377681388082761483851261089337467097701581757667292596096956900109720675623161591569037008928362730698576538641566702983843073790167688288964108844068502267919203864645842912614429609617948558245623855961035148082614346585035461074235772622455011859463951604396509460572909620868820799276276783619718128963364719258036801280501810850816393584496041697953950871075640034203149007873137150979312029013504008313626200370766393435474096115446141538969501676135695958291023946270609979241511758038386779208115751204330885137713633756127498755673546086901168485521549530564680005481349245561472705968693652862518322043706686483171811040974755973351732504907210660452320411364487163749308952544585303748864870607945699425963856202743200819082487004043130933255024978812423438849423734280457001485146661913563684121501784476861100438037730664793225249528837804537555624510576367592196928067857560255912797349002196815429733780598808603446996304671087334957602322059714879386021438740297523661970575559512131650408823487830926740617687334583645701547796423510491987219927717028732734607636129508238827080271162308176730892177509142130580638936149181452734934568962496925573831740400717088630932032255200413223345873566687696310537370244571937629227981234439050191539384181430889921942912457700482886238999521743351346523729189542869330918718089591332599049111636778001069144701746095751817369364207755398016212591660513453009775703177953951292394684492240914678340543069265442252495860250320405799936196145085964944855666723724382447690425017109156451864508264092009013499570513604328872846198184201707346239724754707949762130620255470099580946870107735631805089555992441668450726121715119109030079289302536172884606306927716199763251062576638087140247326933445243542454453374041053766806443314045907150231911143688546656834143084702016182470726077496358231299059976190022379545335486291614967062131279052850193238114990472068395789054547383782226401344245684091659430969328460852744221322914798568890701501051673774202097508510952135672272206344390228226232340158092760505082894904192016954543903920170092924704478167532708823347028723795718133782262835330764017338302312925534522752116816741525911983611031107526803440430080641548072894746962001291196789678642739270941002565428201277212643677365724409264854347036547024852155649314541760929802982414082546228664225658824765077062153895199671492051748015786630954276212041650760667288974577255100409940881596265461425162695354383225892442270264578268225859476980888715787408565495942866748326162527958641354997748492480889458957715901039603310324339932297130268186517690086265779864379794346704763149499422319450850234486899989927684194287801265157298047821235547382695047946536260415204999688680420292129238937895573321313784587141109103419090311212510953748019454823658329459146946515999936056818537067781585812004241699354670528735584507309038997168455083113594563404935767039345894528068621014662264538296941491051278564213155869031206080154443100982344230830391671212472749744735558542764556015355381689245324728024104590294783785559722845638452054575350920928830534991647552807686813981059349200883772425755207950896281102045941515635971768125695424292790181448665651316785456009366692121829622118758907906010597298457503364713829625535501359957559069529794651532530288617894034774615860588666232062659706787039134093315243058345335159232080531960647615511960322687176458733816294279694135618972609062756737363696341180673961174880632678100197052609169465993552174449588526864870326255055850349748240452708276000769094762185076134989380375860580255734938488602768990920282107151144810682399382582611922942336378555861884546411808793294383147728320393819141344741344417522922750450217598748836981423575942473850383528082627427911632881285356082029469523736014320599136662250486317816703228448150154961102930123771466727210379524271320452994204768718031552592464567356061983614828392001084751965516231414061352787920609909384372256413317258446204406533365076777316345716331337223623038821303593439782733895538099588286382355544874598754090867657848698923270545722702406122469821071037214195651125720777730591235419190894646732804939600271184324441651487371770083175315480405605395224745139477413371315128751189918065678178805968944716728151949848339226171973275195554239981849483390519966539352260777058579001249706781554568262615093477937746911616115241077404234450971864661588821255667054332452665207240506071028325614382855972257951866251785172792086589312044833557511819434195474075225836828582527030250639088039332808935840411745261698476825470998356332908435738071647613764575001083215094967756987639202555231057585633616051083120689216812888989307923689606199777865992000986468093986965662984149643103649225409804332744084270732663137519988946898767712735992829989907632883402163342717765892934037876327414937439424550197856363530707809130165844445078744218534572021789961757131616644573769871279576572667602290315721616090557374492704323147911330192303376765761516816149892767382435725417828732733396760064209932206697039734510584814697721266115971237022858347686150571164683678049944182674846160256706776779823356322883064206557299424403113236813061028532610203025906456199484427993510188312103709270652207971868353959099776231827258002632856087312971697289002948658347750243470709818316060406444101285678109732820362130809359888601848595451747903219085769454664529587286110872551857383811451373914331993178806623357789595417721414228981506282777263761217739796548063989116797775347716739821821876955502576458781975391332804638865000522488628617787320260178612175851333309596548044370509190289020273624772045676059568295312346509240515958838450280891250387353558936003993381823848276027435884368454336815901703819267385047763774226572566749877497322634025256537644653773287258797339201043879222692887824168858720671245791902185280638492951242709858302259392830852553251566852963694481326235693660243385853178226420091013894503102454143483312059122831023467562055326996704657914854092797066387500927491246516040638117044839439224065192484078836987897154833002154406201791131342132397321459503630940756892164216859217649241656716800815296117522862214480558462850935022011150978250958859167831346615399663475125445547333060491534603896756945756039305310558425344937255716710213436016504466289383949619357192256651665730985416822023498434639928492852755760666371349806470050692992106850694278753342691059452614466365478242205346835759774390846215808972067488512439409898648833929422815870278196329123938097408740758582961893026370792216258696666817249256277990693708068666088598140209631021360615876581929671344094711388551356692970627810192637624243420604885752124423678988653063941365488489748550582575220572780955767454266820670066872941220397088142697654851338554869662952309929277702445708962774300478632101472464579763008823822793824926263917585663040365179234428225082256482249765137258516770570827352168643290476150699685398775719742695956747535496710719966407169840976257339719713630259337734150466522811303338420938076296564643423891935294381511889429502592025378821315893542691646134608715111970799792534957245146024021714012519269020915041042142376815099203279985622537703454888738495900015958983150830288409078129296385329576721177627193030390526652153111727011665278178698832910263933589806239142657579755598095448336110301523065293051791663537293866030425098357633414298219707906735287294101518689417916322476338154006130796560505904762655356046197718515840766903380953554403166322621279810491473599344609941041293092383962339998539753742431112838009479903479757305585768716772774814008333082699751442712523163164477632516043139308228446800376373959971602751462741548699708798412912489009758934080704690778013154204608482911786402582104002785593234418048891360569022437638031783352216794980543457939511460572107970120678716668868700110714584272827875609901882281476983897085501367060444508455739756032572277454161896381689476894607846066481348931314531503211723245918459003242556919598095189759111188986581539051245851993897587294447103221325918037440185690994559006168216410735699414024896982493974224382701986886102089895359797123940715016236036838851318649361818723771373288884487310727257754018724100259468442568094662269815020065143802145349282308084113622240844034637132386298307145051520272422252728782225589288516211797867649711462482098995200860865941900750954861867638361180281174515484318574854244778435179768657958443624769327988087683360477870140187359237603673723291149126561743923394475683844453401740333389521801249157056576947637661592670653246974363118996973050408008144128701925824706650591129399635888610163560939694846255817288060587614768557823377528733995665358905917767421754102676541860134464880282757042728143711869673441031065096603370287615373802347053831839128908633655260106775639347196256087969429382599388940747737447306877538352735766575531273039476572945264541157849580597283542683512348253678740479041166567459172306408818621462989447410013372262657283694390722361124415833578105366150730987622108310335651432136727612024847734407878040187243755298521675817075309066918883139113990416292995359632158297171272437795430184501752046205390102199239106071400404544700939323952893870903565352473999861717616679177287038311451109680890122143301995512810166851569396163810657108679664383926792630260301183515330623119330593379661285283235899839342319656550942339137676562854753730526073492995925543656115463447248898389849570361658399086896918211883830534094350989157455481724706264295617045230949295412582691144940641736572108056245724348681413945233556618956752887451013600662737509446053555928697564133026557510117268692207532319504301328585317655940374609766733864504728164446189879351483978793900117899246813395206463609483044551297691895503126600108630720893011227571208576499290507063994552302459793286177816000394574612943690461117832263151009245876749983596911235853438504301247640931856164179905087828825020984010229957757538610419690094447652393502818658224140917689629302528818490618836873846212525659725710239883815980552417258993745743859844559700804112016854737247028876976019649428399718681559361093032995818881576367052397453468678704386951195044048622662327184569364957727696204730259763666228250020131608597686276436732801373281618111679195178685620563638805102884911680416369011470710735765008568285648513651452885162007024347556925039861111257588695675307398529810655054929550573074955565854041787130025206480143892472647423163496921912091556151568325878252960037767288713199130158618610905904383565002733352995540461140634695936691794478300521288871033718999196133206367450042169589241545101038567261573179477375169099315901988554832324254540924259853342243977979886342943272473638707957023962018280389430469038494106855792307815030233454827162255330527633481767311502814757118791759158381634669906282119691471028384210024445698367439917783486679813906160194481110015139586071815885182491067672084750683135673267669127643712027511107973504162751094611947872778164791487941615607701063678240781450997878887515869942218248693369166139038521183410270344794871797151519483171882183198268396470373011422316439149640886344957022780727344491911493942069134085770676205528176871690741165529045939934241214930253594990085365121782645290571818160346043836796155011224386271573141342759243002747859345607499466358976003175472686031279831339407296299444353233989239897784781273664336746079963239660906707494055282303487401940419910511513908467363270307470407122306102936116401198519695727432617404315997284353656624850158771078800501476096067913729089631004158585133029547171789545413995239934039138422360150027460632975917432372769046841442534389719337457199271048977327022067322434221612962620996762695705600960249268413490635846048827352246692973517062881183373074534898803201109598645166510282231870634282066738254873813013902430989120828621033328882464699393277409929098557439787854488074879598265350778586092452500427219325085230668100793696112332317774285168180215117690767416556275953211242521208557425106421318170107605671675308002925727095391564960853546487735490776035040241782352771955673695685132077475471757245687367699141675399623202357727852796189285587738735918048882028946092845339980936918962944575056037068122508010387536040700197870655383004603685886136689736969673495080948235537982743251132232030083736816121508641065762042334069248312188779223133318760935861779591503851965172328827886114664066678203350021401335582653369506077061403324321853699011142113659105654072437018588755730066223828702201555395477281082024787388713428180850309511693407381272249002444038646577948350320529224932174454497799094585818337219120757411970985830829309476290120343092661775623619073529271147658590706856876780450018416479803876098150285951575777729766480325351864178200474634947256203264625112977580126461225336858368598166991035833713670950285473364661370010231445523892740551825230236196314129856006098746996284530501547708688598964778479870909649908088174388188516679426808332175759647533792522099697345248863855689406863107211352413737539012501536809451903257052454629570582080769975019108794165002021523182641849235549060423559746612971422366064144863129896179898571400937302500851586386165165478018992552389448694602220324137675457471771794830698577880545236398195237258964748818876155143266979208514212759506115621208926548318619447899139609027049063799451302347793581662260520039274714094123252216229451766880030088425995097335531821672132296212374944907832005574315146088252520635673405149648355093569754116832411375590038038210149359973488825222987564486880836992756638703064034442008082115875382553612717878550225528369592722395403050251234192588167774635775594789030233053898843859764067420348280566749571417085165016103584046342365459991923911991187062403963494579939591928248343068471692557602260169313216003900813358197653854578608677665893849612974746573640476804672459909099273073826053359757237288362145661337360367825351444948929487189363834227827552074984751988757128951644553514981754362049667260113574190312590662631409543301141771697362839815988138181934379188777592125687026810599362828413572656267362517040117736397218031068410519388270838310473196385376471927304779813402535027692842049241308164673581340975674534580267785984289000261660851938935114775983992251536203612509440690137940504422710570030039201941005440523222142763679678573254367853725120665640649270766071669730369517802543273332243287698182235432245809831220078157549602926475267939883466077819756325912189482792821588014297013035813705333314266006281893141667791670144509136419958573939373998747252615379809946738039478679413449838167607548452260772879526134288067603821608223902602574122550336326813739872122838266987970598788832856065755146930463438490176053650930577588415090086158945017488088886014984156621699178330378183975043877827550598145255109295449044669357727550743175083250475936167848905065898725534298510404640825348535006174222485739732712259349695634619875326653411235092615214412008064979766418533536682887268821431001393153759326133547684993206403182080390215250576705479934337652489231126612776372108429997078552066769492394334314456302555704175694466306237049053603631105957953569054949898892497738792216183348880795894562649913889827209944956643884676789655231973097145842240712897384853473657598669770114291978851944976075903415759985158419936433433363523884637899389925347214640651606433049497153281934589605488299103118290373162909082385498575532369240621461956327062374753064432892168900785817395131252345342526606735943305077956991224529261489619645017549656349953118164836882748725296174055319645170928251237360851954846670712914909004645113696411478004862852038911468431944162391225344851593378415290161183834330320053913502118790719640495258154114900855036488002938531044678312817893744071746941241224934436545081077380117019250215722180878408472432703736339567423769669571927931536131013644642003090432731244626530958742978676578503484740701434612145515252956504633412891505711074244038260646728933076180335727675924154816412628750927543680919568875272134945899169750238633075027991699398226142364180621558324670956271030755740090834541738346520009722723658844773291103908663954055115322553880549808766906831731442577872268693771755186092889914057452504255058585385673064149617311632137314487761480959867035868009931737561125200233212624270762218516758665853221009179447241614475503983845471063436481928719131055423819373087903794677187973341617689120039851202364910324868313944628419973959859033179424170024597000756362090862143175896229739290011987089877146527531498000851854709078463259042596941655453818274024256281298382642726202187433394221494671648873017248986942743966812295721749522562946722048468365486540326591684111426776547415234786352501647440527508112158695468563225847264491430950143117300953990719209837103361307790805992584615340002561990988727698761480978500249670708018088922831089199415390295279756985644711793855483966806501541891676311381982666886707646660288923296891015161981754603823607725889719526168604933580372206119511520944354073201911875223882512236220297789016514021396792713600280405784738910989764236559163555012056057648673147756274795488919511047718906630324349120598818450103473006221888742851295176715311486504853446840700886593492621748463891508297010132763487533421810159170071354089858857522674431414928384224286691304173067919563798255510416314277275191924447997055484163696557015988006649551080384995250855926060128549887523708531075959677482393755532482950900796572970938484917933043579664783354143105300117201073179103357965935007549313395362123813976057144478114259985023615993063400591389120377454040087403325340635486324857271398575984875187908310947135468866745645490215889391484293129561751807843169419588981830848202293729115373082940091235153730948385028964578469470289102602439118718555674735608726486384355472779224645922418141532306159679859334453199376568359413917292169160651436466551630429554176632047543950473273656524969569826712909965417093551940456252312947851786611642758089445250460404132890311200194086324408884155880681907640049184693337046235962063835461644634048060916480773634693490741789194068227432521260867284412946653054161697689176689884441771488751639121735346641528640721621443682574150986409696025529867476692371917599792008418712866334199504923984325782748960628694403578223984046395666539914934561908209935528569118845950901604714945953907354277081511186788285321444495230117888735793543772602881023572088630982158522948330764026198343547286755672278720460226434707215232131423382630244773796355716471285183917895470735097836923209879491833787232478147953514638406544836854919796632950781570001111894668260003772709421273067160729929799051887507819452523575329283672361593084877403103563043602421874270940211565332945250122764681455591523513573502159770627681421246893719799840997412665379445608831538728079529325079741397231921353903629302211658917534290721371750689040508867206984926423964669610237206893371069648747689321885631533252362875035373957859074938629091668689857981317116719446002144233372576551783256938453149921619733622971617198057307927922416058089217102129754333068547398488300978631049435490533449035024582782001081731999473081837133152716758466646604942989493862301901554907111934005293436982650476286322973019900997766010406033729837731405386270980543183489912404469130511344258958490574269969999356264035387215318799809668916605645971120317156846349656958133484727434290161832751236531182897030636719208545805132785073811473988198907927432490176983335684633237362701796559983136431750435036578044932658130611598147487062936932035229025299219469466180077584228889672195229080969860137404780457898857331742407930248316104090228068111040546184915675494446742055037622735839715621339967289524663270990064557565950354277671024712426697393456045566280663639016790068435008499837360899833030088384229742688004436498040423366634854091243972138056832468598104651912727727002803420433122433562795833736717782670888768281555817957594816449210305823054774863688102417416519647393768165762285449083368235191342701885637341156592001422934463900884453835694932594826713187777627917658368249940616763894064084937173500682502962127262861032363834599912798163884353249754435504741063286432717463351263393569126327191999615111573581411738003823463561212565251557520537030295171277920099176008040042036993210283037864037804650547630668495579247419980258886865020937187015751924139497276377161171662682542902686148654600185357139092625875434065869197594387128932693700078525824667355306991674032046170536788993344003254957639937290871845607798320603839096388806109333219968277883334362704488221636439498038883859002773519433728878200859704861341967618958366542159601978881484860828890740901119094928272166708843323268169324799335578639708894035963904730671469488819032359226721506801258993600627302279338000708683227841586881056280327193567840347073232536495845820714910696226758818347036620908879388906254242180996988427048322539193669865477821347635448783490499193081558211421150821220170174135059974485309877019829806992783162374088858406740590431121762343912622980132611541144734097330624727825482522897291319744518235190474919777360161779808323815113657119265721667838561234108494353573924662588680899287006732356587073758832429986084069959231682182028844158028150910891168268307053242881256737599240403760910480811185956858804233286065621364055046067077495394104470206097214131752692199512358856096000844159307121736280049967126124714775618253455207731237485791103000641255967454573021106590238332509531212013786406641831452497312973308499580335575739046547290209627449092095958661448160442679477353723235525464412077666403696255420791789316105439497022018974838422931992610073284418959523235914900836883211969811750229199928898053139928097997740952202960830816202475328134901272736169188541964315839161421344155290252162389439565260423172951602650670536552308717011698933899542137046777063747760984881457199168059765589051341059700807591892541218574161139489466856959531708783016055988371009230568397794811175757125380551600431075264224612905300409648893313723443645518430756922326176342339574431687888815368232765959686518348203365949570333602179415447273136371173668885660011196173005532298856186954427596701584395206746779637193868319819739872320196544452055340595241626587035435374212292958352332121318589493998803647696410821867079199325084216691854779137021366480173307119570040986834387583931711974633537043732814719392163823009712138969358470398234904688899478072675556140478783035102960044529415401285262171950923410299554200265221296785436818601051944911738988994174471947692542696668726008681795897127759346237032144964037194077063863759024076825235357882864255389493565375427075443950897477314017663495854861666070663662280545320276325695993483537898858803504727069444699828763492019454640210606260122908491265003172233156209889996413458102646127174959004626228425113931929070260438302761324688429564188613469108179515462148326849218348137722153456689122726084631472077174105311744165195798162280514401285645107421533981338616080262144343881047546799646985620370012427250394195372682836277105615655897055333391683787301386551708561985910753085541012423973048321777519264443467270584796703227868865663321549605482336289056248299373261183449851008902592760106157742877898308029791263748875441464146262820698052107229764701015863345820680739350930190800450562145168620729357522091710665175125848134505531062025989872712083334294412659277771367433252804055659020212490177265426275848460584180966941402062467439121665957116961694725664462831832140140030997782422608764911725641733622039059110115434989697831876526201567731990018106662994740609988388570242621967983535367315105695179585510171143846125880953769727515056881760349633373955703085404081552218859752467607668840326797422279867241421826320388594363151125149871530443807384152356109186436961044949122680287519428217605495880698833268464395385323670927576548620720834860908683634593874907854997263750375524006267516659627849150586959574281531221284629094991454502947596780326637941181775607743783962961657248573417965354899085435793993179224013211438461969386630948937281004679789758601049647699341468078735539204758783664813753148424764581818842497013947482888724771940080981724400274878526174046798673842063209532304482671509071321655058138357402338918892733793882896735444286625959176157744500236427840100843006413429005524196805257812018445757324696110569977170774749591003878784113794199179120395280437718004075409744903263729756928775691717462530254044471668174328878608497408007911710673729809922067156474561500322674223825884324105580652088069484597251796866815029214224661287790330668852020488687660085549815230676225849948650059088342116110696643537966271881233856015508379614511983192463456527856965061445192980675116136590995679616109914891783283468681704806251747259989794066882937699850217601274001791141992758563061686232874633117326642842745858165360831350003576304240700148392382195902578708953331430667996031457898991801172612764885503857451202464266387748956406324386859735995556107973895626633354277540615844689170111758382538988527792899401379146948558329730308454028050291934411324068575621770275192226889423960749207123329397938755541710423883654867557926568483975539975823095927444967610445442261550859419452542911296270972081761472723255486990654044367788404992382224575237693402169329442482955531491349001388533525995129412661844632883950894426886448624642013869584285244503927479806075067407972861228255763432390288989891617575685798651251309854342014934777558911090925712567999488222680045190733147635130250494271961895096037013217171586481677969763853129967865683071454008054818755790741096697502677523903031710638242124605703474034469655274134181175172056840210302807038362772025034265011022328203855740642693582890108154182880799735861190694072314558584676986566485989666257001717416472952723210232622917342295947993354619043010560121301606773603599605390696424400124134324284807630310138478356745141727184555609003412581799186300436781042262046351246584605811775899485230303278127429218549446808391387377424733827810273757318341505928088347341493663553812578081699012804975046194606561394442869370057787034744434155292267499678993208168916242456798479029739537067172923990912135912458704675381823001923345979056482304679443117743899611614211141703083135589329719493634798524581439737270698512194485745094232005101968984177223039300018141755447145882199944591141420935041658674270812220478445539153268298155614072826972831897826948595684664166998992565884266788118377856122442112342206311928774037508005329190659902645116995407853832121180189515341530033853545852403993572049787121255971173008577038594092847955090878944289480768640243880419254689769330281824275974170408093297323548592989927366499356523724003357092881351900584535882503557126532756795753256261118937546390435066744301478107926935815215715079356604138434706333542763447256155413556218463167440348388111386362389532361346859921642611031714403493653708400578733751657153437437103051568325521295520757490282758234719302517501732530028453703366653138775522536326326127992355728650954999978848888442233334877080677010562110993181159700263097686619401486707663651871625275403497109134168545027233156112711008734193767540899220144097822951335524402196966411341321610979857360512618300989290435297085962947820643529408539151902395628758737841529234844894204852698330386410190293013264346561780353725701019884584606845772217810024116062692607873549995631550662416753758736535227019374643844831859978048534916787093783889911646608952936495421671468472145316917340198213173777837876222594616931197790355387345664353372059405613248078985178160835379633358936242246577280717051523439555835286521989493046963456243067408879907586934473159838373498147143372586786815096786504074527876433557503070083424320677906379033066401140145919313625620068049199305856722451885993930337320663784523838252675628376894035585671825607620509350884046372764836167244545337183491705871252058123809648530055379895977530054305475402274197904355453487716447918217303803088784161147451259168443623113024508234011447109357823420446467666914699658772547659603702356645095255894880033157088811017310546296138208803650850637451783869536428066151835986270795617850352185255530442894267574328311025067541019196226946239535988804073085991231917562459540686596080483056463523765696048552866641268381863050982408378633983935261673562068924440621828965140635501100503356813631448583458706043958944819346766390167227696125526136929386950508769496372226720433808889360571742832499028217005917488785189399048111200193038388653116455853766066229742458860834749006932952708793923003153995501944578224233789585288444877025379994452913784209782578362938719000839350675892177547037569505182291879117599378125231007909656547618114600838075836468142523039231363456222529145498733720979788885602127006114010613637899574211799429863207782254669167895703851124324500202773036580918419828736270205304092857197502301020206597267964981030056282887726367121288042557802907991748650726668331025736368268006785909673159508333153624554187802566515276014513187610051089900734713000697967087399250468480932920941347956159470076376939639615867218241525485933285594978950320049131389905837027466391087137235747254172499269664380197082305338207172557521821089888423159689296691882189094906133483066521459453979459004818988316787213700634570768246106360812180437585370610726454682867631421915226847760592084707720612723913057832270578886428731305012009955032928451609503111264193810699169008146433952531200137971724146402478988721814038193446844104903995936520979062977222537446396665722123369556991420276546401173588307199890811496990616546970718272978182218113503120023046578484381869163509730001934998417491055301974593458182645440976590975799100265737343555570488791947891308846610256378824650369727116189787073827275164574166411683604790378772757417019219489875831125455703093674866078965729463627019605999022940621925293441082279736524429430785468529212253821967047901507231010254929374051526234283798344929375157618727761559453671111299141130075453647772733990748334773895882714878912979836331945843814496074958619369493196631707956765845440440900687769083661869496248613852289188948188375360657768681918814995031311207557033848776919526063093823896571281350546027614156350350462377797876629869280311464241147111974950039110977489618666963375954323086856247400093309124059144576281494078911100094359058772561322799508518415116838734886478935428840148857815378490122891712872542771482786728118097281444958826338730704268325866748737814902718513213544670437466418368911319659500968564345491811305877617842785519482207962711956663409077448116971105561031237715935329060534074439904731376936892003716393639713228003260094277884810881155706474793263089905428642818607844403179471049456806124432964438178932880676460335087933438033482838885472507111331893151376377497852010477707704845251853504426813387310653974626790270849636897880599842911932164234649846178531838311447915192275955695762747201204466651408432470926715249874781914340680028680758329036107739237468393838398546037714744799574367939052205876883260270677721221750045970476890095929535265168040589290762655484549256992473307968920239019296920242857451479706819145322296021813998995639453799313080131652074371253561680716749219932959478979134250710658393423008950821960377401600134077591775291925711424228426236182840503061194669224167486780990618946370819057667963903448230866964627468162827358017500736929055103924645556434879541637509327323043881439979012973114522642407357791740119159463133646056025250511667313644073314981372758123512639952665496482222615596376419719889419236678776255760687916854120118220499102167495812583269003215801223806455928143059589008136317102981525015850709208450862109589743819339687434337919757241430659532077413629957121790043683547441392410001697152839745323016671905010095185866938415333563628507642574399149232126843767511529439272395056945364357738130789634737496808583471724362334656992796135665174303840576808659039814896939253901530092893474227391834678199161785870473412976502869560843708603293297327777521139356448390543889765997024512372466934839863190539647366484580885584832466332364697061985353132177944659312290023751267713835519007573582182702250170354754232973153799444962993315136919050793591008672421062603028383749876439498077590129157048788841255623534150462011668163634301108785980618759909869942261719977135606191256135007716118295204548543887455382215223316630477320844201428803469191510896565285530147241246223637912986758245209095173300715389930852757851067680408345768304789408847589329686059497562268831563959406508787282878126719746449493874839215188700960111164054658770680917736682239341147129374875364650548256745679443298101747579172719709277799990932636092416574893280552667768115847975034813187793685074825775685270541897546009418998798964931593490970044911763147113245200357242660849504329287199704625143413631697770308969853670162134789086406720077404934637203261676649377965688697437172370220964900945372652308632285673779949527012371826423206278362762796565768563117130543276534309976731268100456033549985679418440366872567338780874111077178998455189303539007769047019307763118359684207487030117676248238174885081218922263172486690934870609649606913297347688994789777118033434647807774486003908390653151881778708740720814664421415358371796191568396785025304595110737086999234806380014660716386358602380407992410447292586340441325178918898315534100061931141534833577615034969906754529797395631840333357706166718136130470025860107492197445642882260055460682148375405932384278629205864057260392659062077882006159734005912168588695838381652138670547201300613231065777147925873079869257814509119598820827886259466945199694220516310999555752979083736291830872073704032693179724399096262683464172659647000681698218399727458731722135011968236878951258810844969151326716158730142474459983658093317816135847199923089208593390782242055946951225148990672923079601872995498538189920979776437402851255834415787456463194830381240561786709741925812522690297220083263133085685014773676746335027151917741219177087008896819714383287061340757916245944451015333645199966930972410389578508284795873522459476676691835247580507036438139035908888180523920719271182751045205505186070274423834698627263156649824301553075667555305792661582784304354848327516419683055962566748933425290233697478726767424729526462140440996300604101446809375414219015688153625326024378601478305553528719260380245397607441009011973424297566617447645350751736341770073350326467440130932153864487974056086019616773155241946731189137979887152444591579710901352120258919480845009961580243509241255785213152934625652453465148204294532677917907549258594876887926458695135150827689672320297274335896180155414202201154736164771500974082489305946892972461331218646391782222578703634277638040892638410037642153916751383970707868219157976605597644758930585540393678553648663804116630757738391203511455846824861791272903364136861362934976987617623323903181763479918394522553443703233268131884139707094716931470199755584108594107786666046335541723455378786517984749315270965310584211384403608005177192411672493496540228042260562410040412742299887391379604336096868290304153637942909338439270858908919002920863723688733720614853317802905647826963170758054030323993700501325946187000786462198676134977605065260206874597848925844645449157932998262410063218270257100668458680731684222446550779800381867798538681883504051998700351734662756233864810062752351659253323670390076278779146849685795950284929982816415647866907676609268695634205402518800901341041191514773717842082867590966079065869073866086289345332946821319669386148833154707009094657608095515362889708886908730357288499698996991360110099900761785277001971222447567828793688383279550170188918270081495390975973932791355795290405539030010684827177453496288199966485378576181389723345138772420742162286409677302058566218571953934939414961531367928678308484236720491859310809610530056902858856819124826296252725522733707911333880837924426666459303302213043333216851989028329052865295942978841380138490839219294388017476462153840577859373475236874945636573640485099128162474997788855981377638649201008056743780001948903358966074573376172518694878717651907780040022352508803201731796834694868151158025009508920862762377398796820744396338337097217308437788638169537444284894176894716443209210236803627288974950854772762082946496065014833646015955282233522377823464097847577117809635942032274416454859915161961839243842469120389347020806150512850376329395148262143751076964526509453790463177337892318983757980786430502655929822732220639879520211130005371259406835561769573593319888375489768897160664420155165704090870313587409092351157434858333365631158389019431531254054137726494627503199616851037795585346857782510593562185055773147908221372872046520584789677429021572602873346506542186213299136041139299313099982238225495593760025941714121676884676661250005819270352123744174822111976074308002282049781599876896521349840077314491921530572795486380869167609147330874096025241042769301146930263838424189174980123214867374516139344460783928657914230254875345790343878983817616727290903695388146286324706728208176925638829441090063761339454219018437973782518602212927756016544614152431441122025410107312209426851935823524209656162941599934479228861872226362045406603985755790935503992577373440743003506803932041011173182054359208835662728664573616623154231071412761115175880473727909909765751238535833572746134801577483336312923301289993956036579882910887323516675150004427257988673601367600996703576656169125286451751099482407065816914964170805576426421083396074694680806565411994197289648953106975716712257082076363338376421860666226691225193900999921138814311374761213226259531732123779738995675478714618133237676484447297223545406805359500659212581023241862132265916958241083796290641112527128277079610682336156992226057436793184339126311307410041272753782739259688375572277138153496410580578210842403565769786670124103401126102275578560007593175606723350876975684689136533271078017625135259694041161551351963877624766643568939880600890012017670950853137160732732482770226818307596008777388915249664720685577689577223381133650004551683803043788672677325999350607803693918698525357942178070390032920060427546831784440250798397169294396074921311409506427504438383315836216431150291952902920062629629843178281382394762870970439128742892654582492201884229677833507822604140920252847039783600465601013926403899332082935591419474616467491075569256624534336026157544409304747765404630344689946287940601630381907416317198173195938298990131437879171743488689603586162931644867865569119367952022085798085546749646468486594494762635195634408043163143981497257324023841036658145112084340099450833256055493612027995652500481123344588856611327981023346503707554097985854024573122052725405057493633922122417018294354967275530628331945540849602218737119061462363794272314758159282784539028737117928663187742122887975067263812381525752657558469066928034442198099193168319995228176120229507000814566632103117364039012787787634807908106587447268739133370244816170192463775603680248690202207454275443499202618182698782101645697115183721928761234171608745798682293596345220147606297669649743516988004846938012256881438380661118703724222585866952513480548942694579202983886715347955219185758249833305273075967674553266344547816157214341409570475904420845510917802265864623246876716400864669682903290379063518897512934086444897054993935341368248930884535681126641919551841361244363588743534578071985789506817042318010013546094686238837665933121326080659858364520968454138227979156546168567996329642665043275193472833879150412136624420257434098139271911058718997202622635755517418611337290453000243271021610608714406965637583298910021989772056355872273891375522182113167618929653220629845741903555782323436760935767358397511315870726000231367737364950849422418876907267132731474465642237946665642028744608633075254432790175285883128173889321303228440965915767317020201786024125220582186074598372615570084321037671541260069346682917424912220198193950655900704184082028347286815082728438315114228454852093517181705611497791889911843337401174714939598249055069059455676820616438794801801151900270655215397133679219035368404608286961095942399713821348890960835359916270431584606768517611777170353734267942569459286286305650764543414019337640234033854010327230236535283317022858750896454639625461890880000988998326488080153153217786485647123456483927150345285079761329665593771262730805477297866711280752337186862263167601605250986091141100128678754788535735978376565785776362089992772971170890205674935888186311782519256543810376968693712088308031630113766271370621330415284502722445728807069966826051124295658559723057011559070560336860509453105841416020181212820871998758974750403368802237155133992451749223024193958479477123034747385236873191845888174730128391492744665080394264016800453601510603737906599232233731186236473501569228650242078988372576483107329253284459706816860079275655067091104895089872095923218423507381480261769333905900243653309666786983786891399946142250348063256361873379172994105680027355726214505643848850359675564650005315081103125251910011818018725010415276593311420496471392988830407703414828352682699825747561443927901731145204233941805818210593164375196031009921736136845512136141062695999580470438219163527488947966981321474792124430376231604527705411641757124373381007701391330695332234278620195463308330070134700197977921696533182422033204464652284145342757787266999339622195898623386596585726313112309763870617864978766727477354850027913553078003422475671390952330670128818030367596021107850567304679967555513173535575046590240517619189061998447650807978099982559352899589992096954026098620455486572997005992305402428885098133487391349775614131982699253985193654667091160428378820948829508236055040231961564140089304439880460572810922329174983563006667207744965850029918572141228904902095455300650930039884382623344576666071156680835457415127020375768092097800213580161443762637928209801896021308952712679984561231991949675208740691656211815087274677007061445398567682742034813115331698814867948810815532300834807051983448302593762298475682442670518949420329360335780304545085253857524736864493448001817140519632335310124329385907361553505188198930334851792404115237933138538751609026867713569686034969178161844126049161801924104299605982096082172750218899207161767655330205811327301187770189924981058014304232038014670029200130122211094391413320846445478553747144355282512296710766574496346898588550301572735223636483985747015254612954696158048445791607497233274817062456997011264801575097173637777993916837892317046811116888164566949089360512038605323092916337472893707818126872737310262148540187055608595990941350958874820445158689879016985822388855306560877960352956429496442863849383151424126089003210695932371114811765360718176850510198983204337975983358418935625823969598676346594565537349745290102103153162716661951685957278662970613913213588160464608146775803763579212896314839758587730256749232787195795807529288142617289015605530339044253423933993283391035713857918473498597836292250692663592428962953647930554531921555668540075469346256366110267701004080717585561684500875746817015526278163553755327486677958327587278085026341831890352749462347392639419252984718078241418965342089941810615964331954507077372318372619458718144048284615824373509921801063022797670932829769401359857400674396512208141482512158366091399704191877346036912446246696437930416449990554123838733744368084211681570240123519008707933613417727051654211310394598891266239764684566401569997400765018937769349193625120915888114602172710069607082279318031608854359052153420450747436438717383399418512348958317475580995154771581172017249525987861237622453486037621617880889739023989781762147182631625983657290199288896774004253147749492558550035121717195739294923624580053630338411048263691032288081705736364308483382252321878450501537675362389488430845908002427698921624825820492577773377303813582136263777668552741146318843319655828651455141424389287497435503468796639688010024480928295482856136741773979243391856809819841240139295657600659477240936127536703091892429150095540764718556782562895555318931607973317580319068198245191310648634780723670484461956488198896002276235482870036468326404880983323533117601406315087455301081298840067414988765479043059202313411716256726571014309270227370091500872101267897958387759377070825770141568406787309885649161386717249714020404353499054689375609500317887879981116552845752446141386629565402171073864753565234089610635755092861348933400971942172502851191448239212961102659529630920441762447430451509712450168220161198431934296507201838339946374876970833443392404518991537070874056961335387294843172217830235457857377844773565180989239270287251616451325290718868473189734436261043933109339199018249812712929709723950856677053633420263127547968888726291247213645781698837500941646953586172346113630897329690028958227388533469714314000724567619491131235500062208283515087009725595064843906019863345037842237038833865209498234460261452464857712903883379080581230061011671260636095400068228449711466644002642008790483045082028133600439549536968849047161762459284726970611408389595444453802200205075777767230325087814061883424077280065216112516118418208342371352533664351062963987919892028662215656301883189229033102590339380693617394216822893255538661346136550666973292318949407829875136639552452183621761029689070541663819204517520558779155884270165087003147619355742815802239293381275018995811473507445158784026634063183290386969778326911532835544377799276114191107310656860602534717064334884404893329977949462841323861518005310618553890358813762239144554749918626387558923247938403250331099387613404548740669142465435207541104388155919666741189231237975211618005167462511372531568867825309479227152678726928256879110940862271229162762184757489276857934796932573243767021795592121983845370949518207626918000553509147030485096363493747051616127999760113131574373477896782427572766730176857928256084823620386475211706692689569923539590730931685091459045896905813234350071153753606100795365573722772036355523929627307627981252387143393236726183303188413373060622821551655183953937152097170789369636558515918095158732268741177728919952874459016515339278444642401978232238400642958723996902438691118913819507341816270708117543253754835805348122813042887056829969447373147425051893550780202577187339367904733423997834408887347459395811170725591470747760553894824231023046766121869462484501115628078888977615038884843913269747291109272501567700172126705336926170500869940186398917548014442330189818227302999335637887757159189524897565755675832808128578270136451247943039962174348723866976795693362233045829192330741124750092049059793602172174932410583223406988399600045538303836839978316147761825778720309761093459328609257548856445025020562912953657796950252101213385529705822239126478804726689409994625495092526771121805564849650423366319934697462098319378329381086211601735849628987764424256528886615118185089056110888198674794561061428971343342587704650232323774405138984254924556701170323210808285065477345566938298252402517699698144764205924269469691971141948365018349624271740783067888239392042169810537671480023434076215739735075092639445632786208598671217436046509122838020491044965785690920744190724697426633911057783736470573169125961441342248115331459841259222360366833494232758233358761596761461674580571707516986179149799668342615362965990615205853425944371074008721822239343034831966384280075868091465778962941813981873516652169334075896162905995193812900744958368980045977120247300022792630657777009883417331862605721325970152030124271220420964240879451735868197426318947987750470074835845804332936504941492395088981724451347645706258752658816336342806623178609131504768802881960961303940281385420033288280747077647010485703244859609190340893118967490949584857891640693064271049356401816587005622948065434177962673768576194615324417517505216951454609058676883602239794909738951122916229513575174420204150856132898884861051321959792492366190731357813689864673052245358629487994834618558365626244675986100064926782487728121295625324478496127770915419740413465610940568878191926627320435101446573375795263446148532360333956425683507859063955702092127469190709744821314953987633981076428997923380329604324985590455666960298375849879019589817859974664058225134281860135141159468117144197136413575174203425773114046513593060672602737898269228095984764880775588867692141306846414836087727059344701955492692707897748683852094505431915068807357577119565887131959051998283483425539097658039598206732268617749258255235283623078343848735150318913142282612269688779568403655772763586710791862023369876936584144496089122493132365634239791274061526267975111662400559615634764879544252828351396152358949385346534958351623529859801260366436273311971984835558927906170354159618735148127227022822934411167107648242129956028520464256798052925636508164350480946139902726678825380285103172103784658552425393094981411642140355585588057050151578584998968762355134273092782586958572107564295750202917498192780807421195838152176945227619597176886604703223474064198418183741343498730613743546646990101144298727417249740183531601991240083176831916690631882334861182731456194469908092084180043096821477633053986423190808069155486948451855290441220404574476182817027008865349225626028052192692412678828927966396252772414466235329894378521331065807037130498417625462278520115094977581401403654139203376328456902019172053419709423046184638532649244556464339843848048813260325835511776461536652979222366198265466123018176949238278941466873106096521941343583170703561795539399100277526128868643313113955478249396772785283219821056570172834151512528685653164110243312096224138900717003804582320971120600977915316264576957223179848085229582528265542341093761640006935074162326068245559850758723199893151381775079345803485632342451761823200557739682938591923578172160536156722181056654866401123496333866488128948713765337162769765856595745802279309273071227659357041577761152097166963083903808282374222794545138581655117613716264676950969718973868488166372611355015085772491454442822726204548814131793892171264989131003746246265202759316606396876852889224460883227103922558856289633145703959810384880818089845534213948702273221676827517843237638469554204914583397977466691510441075154399912231625140949165970912246727354692163614695305972486293156235879867654213136403142329686652966687016138606679268972242843822779574278917124719405712295895649089640963841058385342072323114805188103021854674966074939823185948085213857023594318968578496890890936557679491163205539762455021797044980295315449593231389904714619877627862584276795421693517942840171813335998758542702598590311695553678160410007065670370787690854739726719304894294421552391894463260763913788058519726196549559174504978387312286312090524468898273349519113721301028866934801127395855670863175916623396479581763956815231927088432878017765591958388285846215131911853140453038961607578910693897012538620469762591202218755908402046511856012174317195489588955197332422172724621391590943377744524714162722486759847732053233868793487816249984107778155204334890153476756103282184637582495142238109323506787190160252984563177109894589458653737305527185378821850449872483276456001344748530397576464997513870454672067267551452818986444238721019226393329959659022947528482961345345641489167283805842820577928575905110430780482513989465029281543413272428676227508005193411227204129760769590899270743238276158284175801153677479497035911542788274637704363804103836305814992383008389297143903476913724671897986679484265929832508110089490162866778241856373013297452512595742008891528233890894468885162954966657192185997140389713659305426248981105677605809668402881257515741215494061388177803449497795964855792319736016001019890706959528904079450782788136539656072704784492089985358979421327650787989358680190115772929582829886970703859270368768486511513263036749374693318688214344634734136956778870639757473519304181697098960571870920431263219347131757636468045739066115203437740388546236291674937928166634154504277397987552551573173756670253094439117757531360662705527677074202882722680516382570470735382396332461044475074524506596687989135188835381275459305938404111397569925285383494749490966339847125401762028756184650174115975768611360781955340468249180998642086108563387599692306402607300246318745751780646431364798043149545627384341025328096139168159717104418982962963313308902190926622918133485490124221119374836234112068281467891244865033393412212830027993555056282739049068233838771396930956708449106701045184394315423404108777936419824221963397913957000329842884593610998021726515711649469710309546812329722241476629778798900402009019410070011367187160008018002158299235776195524851600704866440930488824218595697217387051796725775192252647883198727816796854624824464229814306221856699775536523032168329392859656345933241011975492082735779576413636929641482500089127921531784773447893130535233432797682148177992290295412647259386297158977788155497759536534520115621542265012585760454530728140666005834639108586570710074738116902366069649969570019479834025715916664106889508448651206913832609948065051904935343553414073718042577937814920266851365285746303013249122179253476385497588808605365787411442122297613061142368363342909730841305532595153636660704219610166354446219509328975155328014486505928941986608864652804410015429175691681689256807053887612765819735195562057710776654206040374381741520144457627906897759193241030354632909237464741650748248547101757229977929967145982684738550787610161485795629652689064787134190563170253702302625973382148556184728263323214304631971679606047688911552741337612095319180450357384816285761136425495869800376512148490725197859048202590306764804349742477602194217763097363983282654263327026161059493400908639549678055837380589387149172819315194172959902863834029244050297411978028806923700953905895791741347133141376854855143840254872474813819613992582271729790425194665990329631451455516370681782255792469497432916143429303102738399052290572414826264173160881998777777885272560673217610641790769236812749157397739055715222673161202848959636738181961420889436849302714419059992572293145225101457145782679860975894205241896939932961016416848638150800242585470578128874329897587512835663728968361799982081360538864734621741874580667338573746749343608658628491907902001181607693402987103696054878128356315608934606829440206913517133110930597026396266361423986069495909505400022353085353660415448223317683930124725584348859805077826174122101228856439259179432248924484413442603211772315820983528317457615188636009806829276426827329827789079106643030858585105123908949255431676678678162237093431369027911086854633322831934958474608962548473866086627554704135085763386638267641578757970075886306632095710783702255569775563807995442004546184737929106439502320426174997313289583744010985358781667767474818032835410925361781470861179773141478025586599787186453115542006119323766987695596701594528158695588313325199565493808832957194202154679520394922961567133376961387976293438377834535197563798703914474831177621531491357886016579218786705941971917745229310249026834982172853456351381015308157484181922239129569577059396701112485407297958986712876257676228527354788620260271858361703572675564811190807868227701063086696800197876576650689900714915223330186527190626544079140492841455465191013559169798223159712147353246113938664598360718395869346791024275523838910314049058282694062145084363624871728501626017211207543822105820979500112109162547596752086942367687568952348188712338215936423004018497054922956713022334074817518420524607478888255063721722418660608319319772521070816683312823847959390673003075700423404817227567362559437399128273511227998521613708384370769193061820025956003912061530359272431826449780583951034761489961534459197523804376910702684777713084647076956401378210837232693999607049596459259572472792455402465560249719625689117325295542417957440210045131109795551447374137875893564655413798357648627114629034787719144738719622335124078815505908311743136729719501260038277058233738734702621945855950036979744994502039820565983873680663476882947536271479183115719437756690250260208678798074259511144424714105986548980594986905528426565624364400756290567728392240238847824317939855946132626398377292007085460094327718575292266726383728515054134257846569992521382483935912917460370375413729291181865034958334557911421355460695602180793824463406206541929553667561792521335897624489199250251397481123641671198199377106326818957245420894522226696613794917871302524781942341155084599244760639348920677735538471866385552380953114405948352339472575880169331442093965065668011636047242027118119218215020229065880308045070948341144207090238420144386535576539236242647042506170881912463812742576459916148775173510384015267739855974475096245100717637900272544089075536340015568301640716080899586051241324186894605027841360041893205571926030564469880051818773541011319248464435082077296811382468290333931460721264079699596604708978446264259522183279282377780724471805663376092622113687431547955960539300615828630693057605020686254849818466978653155323138398328793375863585470565593310079747172151151028592158115661642114171742870178375242436494103155826865344597736412724417266656776662702043265096004379691656577890172106640934972859010658637250376812748846129651010498750383889614208683052207456105368003364474877463313426965745934995869365411734345368958125044886857782590303778055070903254178587043831557438418481301916833391425173292329416742126727749104581028038729088420199228049682574971181881232271986889084850790891782564909729195515630737615315266942198202391296623949367001708605800979119272161061837334050418898052262743280606391659390342571051362264069720989533730733254664510321939981797538729517809746698927632986529494415377466328356569347285436205263050061263506276094370703856297935139064548203242889344282140310396153080614957767953929568748759776693307898965598334063839669574075902459625838935616141196371722170161482705613567267499056968536955498180694883508344168383869242405862149133272776460685656607528265254267172934985810874222990643800147076825167529235307240410115400117751184936801451671073798930792664506898090938727893536957217080453435827055807575504192722158004282770803182522078570538494981267367930601831732090745655509334709502096499157356302596976072111261587111001489880475313493387887448520529755518003408380735991841426925433483659359783753678687615480180150576771557736948416553163647358245150487598340259659058491921464147431293907401486889384688394697050520715180211123886952298261695990282709020833187713143141268306723984389747917167669479335240147264707923476587139643318159565544060270306476857863235381953264365768303099441056698788086252060165159554992317074253613358249812593715826135172015444434161393416892916692278580517359153337006197591655227297264074138203894018424257365109202979747063357924801727642135617245821908071130427839271560307344757234660849212171807124816339985219076339067009459466142559305334600259377117461159800345280720633413516100290458272276673236601003858147980470123801341519283032678645378056643935302353097156335656264968390552552890053621692236877751258515010545296836715759796900899745639364545708457348155571296091779390648506947334932056597891166315182895416743582665349624415050749565658526260381134410258794139971796970398213199564776117525310996581843368824755783758021966128914691020055853522765763308889995917429045057256581288896212793157657545231769992359568125982852120713388441570443861770054410253597167342304705268786711287286637308500681660907524550300075370139490996760411860236423261249340620020415806066521760321344955815239475175958485675358817350322417702694837873920120583718956497833351315793366156625220564856346859801123258529031821422330890087185200364141527083401296663115739414038243849730539977319999907611944912693778548136235054670017969688567852606221513673818742486028777961420452951268983264788633733408379279040694959640896013199831729692773504408732280729969874173381992582353837137674297760059963114170458612268440796424982693504326769748349613816676834832876167224921791304764358530903458301668651524148437103435094141364862254046837575397938389036430599303121423980601546115771425856149963944826611101508010235323423073588884179628031757148323594025310256840890458082639756441098903702650788288346109778435273238135658117154145724734655752644420991623917945114804753357597934137519346888836137887451295017557315844828204375710116783779880752483771372084361546104722410047383873922297751066413020454375403476012492891277402877150709314113229328549043817917839106658865245251746567960717307265612302887293296519978695255694541988511956874961633867806322079815840920675823847922575011436485765814560848676371792568880274968505422482324674729950962883894170994837592028518475639986078280563789417277694776358728399825062811818800273696864498746998890958279813397714280163978498454336528891257181330367884816722979563661464399807501851793894540270788366682520910149838168955809305496841352741873956084263688106393797992300242193140700356376413381966689173679941652227913087400163706021552445323096375673537430302131795017081410333967612647706483205675683485847790811022418273613299388123931421720645646922229506408296418362007629570939138534983112282402729901089995282336860915561537709912656296888089620444645348714637619409495254428105912753178931162811715361715415143503886200799052146571171450816181707200282538408271679588176096858508069400351848825478483180567042315142469286318244952262293901769819662993211597941028198746181588145439606665031597595460787223690299172493361864667372801993265174979410140989052123040630960013205199582664121331675691615143463999762966483847996031336142654473118205100771267265647620729921948456040296577311180639238306640248920728524073770093584858686174754604389377121666030201868065390334051007767974781725049204422721988776492651156648435190765095879210109952354845911578697906543367771428373858532916768801655398723644552788799142031917241114231682020567644458417260604953608501204535660225208767282523160325547422921555234213587870793747821102754743109980062895904606780425877177798213566547984492412991395397703328883675697795213795570607636061470935621869889369265859144539667825902351805559045338064904179917236915401374837537541461042590532310804175755570989501455888613935062510199399764379877275001440128103753543544269918201385053407314669094376295639427127977619313953159931349730291042096539476577433586042766763364825740946781348334760460317982260363435222424234350508302725375757505994734038516824055693729502647357166850230468989932169009506615245322798214796631966078727986601636641823814410426658097137241920366956515734291256593850300593541178975550138961521851134504587501512130852981748989251195271890769574937573888029363448236317744865494828927566339328211216560791501522570092249133272080953523019081426770756968770629958774625719348363897884111659414026981692512762601096438424551999158072939389392491684940068255825899281226709721046079514185519397235788758385066853265047082510223247148812137230588883768075480395324935072477916680796879900978805554536269846594875525869074768963271778022051705214935924844486363111923459127554332964114590833264746169797551419349711751975462660683326488755890148098483250761134016119617580243224013807787777733010329291344594579238831802473157403705398177792270862545728057486324438615114237612373978813850327227199416386939117051204988341047007511443268492237829995712348678503733526659492914224260582895955109514072708932115903298676446325251944929841298718513538111425156064525132964249157307458380946528264767067436025510334050416186370755486073113993861239023598942857318587298247994684536186835053242533338267863594092655096884363323170951382303867356842875998244733495789336397346886954678606282573816054603196578279526949488853374942931373079061110941608890046317298924070353470215048863650264989703793126027217171727492532974916754888145341187392610964142950936507274910168207033658551445144142645006537923307574243762273301503497179887125182190456082494253333760526055021363452949267776465197933056796700228877160658803879043219492912520853929637063633013770946661056590663282184980005220592840426747192559205906062379667865486861197679810679030541749601470027470627019067085368629475037165278797624459538827448584299370054412641502100620401055696849328909032054072774376076570899856029763194524927093580720076710505851321746490033943749953717514139404449704340702046629677395036823662600683751137315008492372329739677853374892005894475357615711705868167507234537615999284276983702854382074518545870465790187885675250399780215059930749959443696165017922076338023632149004276138620850560129244982596130445318497073844048804012666456851452750853805868445204440771047011954689985339833864084927168432609822878220081204468709124748152508939797315734419059067064092931474865479670886641007780996304710883207852211135799791396776616093448166884805114759007294986979912435658693204323698857369822847067972668510929191577969855894095783598897109570185083774824313500402087165652157376319181156110634065912190141822250895841196049312331417835465938184631822785438024239616848350904376695688807712848441291983410838502793223142718280699564655193374834022706093080158743864816462981962127953596959414071587137344289084142552790103450272407754595944810640748758139150535681090723707082779209822663513179618743508530882843364828707491291956242875669313230266027089411566161192609577738798998957544065879980189267258502017242459321904819102177286378594631341045270479162744832468937758745273668362855771806973778440090849367204955819922218643197374227050911211564439275958981070879553564671243846139952238687553854488712623112657407852436872560195529206167421015855024301209366101518746478660734970015053488933753340191680724941352955181483014968494472036134384599382305449522756034772659641301612977207065567118215133587581734126712794133731312269978705238013136354076785836571716995569162174677304976597755352730669104713672685466585960199513165864753214656698927136475772500689578401168055465333914216963286340491839649275336877560657996401192403989721330771062429091847467706795094332525387516428179618800579856671778246827544206631047577915576420043996163621473175876971124535816012937813009062811130556882390515021569704696324412787942011129401513970291526107608589887886366069361409861729140455944710607045658301748974088258741444916623628241009250457338715757674631516342216280863083378686422388928258565633785089547494784831664652998831820792964004446047209402135585886377421322197307092875757382410121054558741696357296216435015969358827011839456098231960202900554827054102848364779116489702640800687301288648128029994524803337306123659723847902575468893830687256808821169823660796318028692977144793413632045422320754118157186720340891108771057171811715699507119430001659090904684944099591154006328723045107862803810450877596419971563674863040222427586100826251135724541620273409656291459978055994652132191096926162207362566162055576282186976888561054891629693602251208817649406918416602459256127591992566865299915795610995921949031013441376198986063453757337671324470272705382789273381683824222539544904057420826120317744718895887669449482057396760150152914938012887560835301038424615493370923947091633275326574003923147481394646634139086314184429532706137561573670210873477197745063989130492785446908799726829499215056462717243439127183481908322523713365634466993073468967561755444164407939525647696238453316575021378391181470625974063662305485192862740141931409811036461688662615172211820571433758705663853938596970969490025857033152465998172003161267092890043397477510117393772422481710942247287589974522471895505139268912937480531059840536824253989419814621804584535754179577441468997276872301071048137111349633098429418611440421482177159400590029325038316086377049597963002654644744960353957293445752065001966624306651417945882188877840053985936098224156043338263322238530534234972229252683098897107606482389327604832158756807106209815561166035646842465220394012886651101911436969144494676740180502136285875830731688991882904787739326163297317958550473044701552485360773643556854289832957876549948521888581265651714608847868272231091008668697903687277705369020135864856573959393971730542035739429666666825966708182489153794478506113131623419869559082815169066651027061178945209494036978373166616037227189585416054684372908243808187418815477552452858176957706056220277921173694236278741971055449160251029660908016413285224605572984564530460408978518562366092932180199464046469235020875245203189399118770400711416755456971579135224020222309224405546846435654260807850445091016824618722471892081896794901622971458987682412914244308005532014633600093459022317611029012182922353307244415816330672232333801201486685236839390492842399431312824037219836382107998473783938912976562001786263825978824844301092519391223892972085499862909386234163385241742727606082876021645057358527822778234864214335564034197128464351528025602068117745602977558766742144608822563603033241323536429978909197624159809333796527181447380489422241127255422738722926952691407706027206603262438715210392608780605321329751142108435393478867670229183346539637071009092331126476747264270665993588758448944451211242108678873159145957702928580571051397630250635402815835687005322056208141339661975240917629940361739151445159666592938222902640296947679788142416544077996015974571071768107331963869223428127540635440117712906127164335052644479627264286183003835911360780036743515111601157286297590032503648005071370968776365716817935465047720822426642843906436339858269077509931374234698026052411466918828896796795709720067380827193308276829475392096781414673354313367496194029783984848865505663054453603206993632388057392899449320348184888243219204611455155978947435256618604642297911117028594430647209961827711981671277008415226281884369761731347868280847115852480239800530546545138430575848241169742939272516824220690243382763646205102385120221997112591013081446709424652499716588420742148535492109046748375187632568857441362169555146323571309871197999558761882211558704538259571292217987751468707436077774492457528402089060606746095155574120395057577568382264809728020010639885332345438928044230419179479474532419525016583886086926145497671393468817572775994224792755824916946669081687484071244948832595404338814149719616336858497181116726883318153185908361200592632243016529256811519381343001430501075568670201231440924012628647765649838439447534094602702350061929641667175844179318275966369221290670232361485473591196999132478798465858516748183241937690632840938891435698430756147545877641172807883802105558052953428705385198629139228023304314974677781623158079697943668289789693286913073017770767520055499015736173685088151377842009803781050085995820313244381882765416707178353798143504849911962843062362799103661985563446569738976583910941024996939117392844757324839924215060601334729783646499941653407402343401097916483504846314397722857059733355292775569010707360337784439171783973919022193772071173320242339418956242882312796660832248436750893183870066437504448846338970997317646807633360103528539699967585843862933737154823141892608687428047015074956505679942203551542796737703032678285884985981216028692732156362257600573462400180589115094262234969528431583292005316928834708680689952750792645696000377393093463883756697527286757843383342632867701968108154021014375634213477253403404374125605026739144355183383212086808837148756997536329358071173039606228508797780769822319781420419271406481060209828618352650466278217446984924553397762752803138350680615102979049915259555459056008830537167112632856971719500864753367865875148716828236413886063726728288449608836269054625392658313241872079771589302449857798606609011509569077708687568884911119615078871710546164658361248799463855269014564755065080561471468932712845452925253746018340188259947544102506753904982307962653677533802009213847584869387788473591145957996248613555339630725655676150326503343364450744616346584893984601561868464884424770086731967758072398817379614147289418013898263969087724363358577967362525344747215697364585143577201371682143714803288855202647619730109647139665655236341485524488455380007483856587796660176219426276676295879962337769855405497513452096714041886256295349800198302705379340090018662617801117736866399944224076562465692112481565535841447779099660295347716100087435552604946062349887592804423218789580558948974715392933582756932688083264536832439544734464493583194759185326699428530931158194781084935840146561506725170836022921302263581711838967953085229318510871778705141228751907167559289121660749353045066978800559849139004347940712037739825387975707714638934046514022553221360774642959408185468121243912480266897280215179952450308001558614714898003638932043352121638461223955523930125158638627694231120740633520190516743316713578156679221430098078172272264704727892334940375212668815999868466827353283179734693027973688400113809885762626945870505342402870213443921198446882426163139257398032986615535783458628444043984390483910723537626434746711286765280295653526464294423137934591504041778614597254098207349957165824672702719242073652833518477852709783541529391605063954021291360662659205564560331892173855920697724260936795856452934543116854117262638543375630642615471663064643486993465560432222702060724027857658037412458075847608230836579908833983038662953131652731066657556963415013997146577153975962846307462031900423307819884477000233877196112444408561708119685445901782588615797444584593616701695030248622439813655979080216292863438315335691625179351527818768139903804153775978951293073955660427163715497799608148366471228718819114970547655936896061475053539514708714649237434294858351347839287498792694208209716043630709803885957597977459461113097427789249500869186891410225978312826327641016310994747493822305917202281741500078337298014379327594621873482940225921656930781222375326779217142219343912810343631256867952490578866674288187105390692965734787754994945191859604839233213443566050590117590783745343669629693851520222367737293459826408664439092628018441940678046172944677497372096458103251948635820852690772732917526692579039903108522255399111732987374407257226468852538062718256171638266143923570747799174582203447365811482434841688059726209394028799160177519068660530036719165821919447303829417525106951684795560237889691722078992800627094991730284712426089358081605415614803160781564411135364116149318947227130158101368073658551893886950484135969063845026108583212639613202936147169162204429068967741099092117440958348576818317434641824192439902474545068548306085636132374482866014328017474382422078782583595358281613172532701900728800718941875393711144023741671771364037245931641208669188356290866295942850489203819155594468666981840724678140733413748445780749672121738023420247621338517324267940233921794135080283590029384757375520945103174194550726797383919868480350693918788909042400774221367189467569330377528020845835305165350438307394150671736296295057389633374718870449158967202060791040709842624860306705241090770926966047754880683972087026702904131268102966864347742428281613989833740902434188388843623629479456006952384493307230524821743279043391777709099777591393059213834140747940901600691595883208015414340731799368839967718355819621355082502285209731836083237181564577946147220142201634113619509610056744809200418264185093431682061297782062156776552955344831239700985749637530366885070696181021611519829967331541244093964605209408013785691751397090968983821522483210244468888250223995338599192643518012901626433930175619634388635866574642513772362921321337938122450975012917121905532655840467466357139294480033685679803886042578745372309614376910686281097811266941138077758566722889465611820206511719754431319325391909530702733523132948734594899950657561617799725871318677082219878143108511702082904607425419683134929199396204003634399140109077150474262784465061612730914657621382962952607255961179225006828287527300847791009941544206402970197170645468244666309772896526836445353554265000157129257445021752708165751766837210641585533320646674683572336320066756240495153103126835350388272483333017581056534736142690878468213151149925135813085552855097867528301987599738256594903778522509249835744211308924337725035425477569061648501564315131916139689847454725260471948052229638558960296918572581842938780691520870495868539240638220878697387172023393506469810426219186005155364628806303617238497563180481786021501450825310991522483487918510956075807972717400394820175908927493742480178543343406629075924475838146351603907125320078225574843867075326744600830272936855994311492216200361973604427781897424816830361076426005199714819921016897749429653317565448746871564157971793022945647088974380995904462828047180591462979528432853640050358723078348890225032740309851503810343651375462047951248804486239711689425936604483901046447871701628313047968988654189098195573452461146787408468780190802971453564929137589327755498783292828588570923138981773289154166263096039241133457526227396164825755350981544035413922002241451802445571248201495494419647866660616950244285026991773927231359248672929591482829509796824422359008771743700251359203354235141404075774888215993871902768643606785301841887394946380856146513705464835477663436336063510483073228854717958724512056422808287634213071493103396349627416507750139702171788509994916708087273738783219970763368293868736245231808499921632725753064994899824597882125752316410098123394189323449537197081240821286961065071011554833669013672710479104434502581383555356184557960439891948652800998220106970602634699769500656320064803431384989680810662380418514774236200358123270854686432302680335091063877698705112721011614148159686775731292236379897996231587658161740273176835797957845719544249703483679579620947459998816215981850257993032167073273625595167034463052168854205478359736062972460099513248702322469928931665874087410702273147903116435689231064481323503383312712113107507976385005689899021713504494845402165384633136855604158111381935769321479242716336742039072492610974036312582197691544145316248651133440760733849073356615005647994882841258576684805143218529851221616694652216334845397706199538148471004176570745406309213429177282886638305302890289424275203151071103498599782869729194515988927922823991570910499038214401347857821713525181337661948183139808668627201824594007786824761768178692214383309773540172406633955417505949575555598655746670491441920290505273885654349920672714159582027664224891715707057714610599168796852696867860399094528582808459772914049933504816369750405852735754023186311573674854800627046115453364236388061274877640860901383797387888460269055523107985791508593135769251363786382552271756939173308267481579319885783308231616462409932801302173055090223142574229581901123316307370365560632924345258594750705437285916408760340453994013299325643477947649416977202278719120488482464375900875927245385976814018230259803579302408799924212917485550831674187315000124210906279080209203952153805076622286431508970460848289641599999341723224030441253144608829967876473548685663272796837498569501622376400167733836003713760204701937849707786875606348762274353871896882987465917113305628099441985058426401796047986395437212005556454392586263776192890741919845242504016263555461759315075335343327467996067816865030336138706565603976799084868702356572792896176741756503184707741675398537552996327479505523465944823311193559741494697260228943298779001022887207969361784100849080990616166496551805343395998423752761135113611675174673788272054919529743722421062732609028610929736417957920458418559514617883360167651456353585537744633735039158661299410663505232520000690837880289068160249922090434009324840273459649395112083993559513725755506894426669752016972486717886822017398844380824722856040872220041733289273763063068065360681311185540130526243443153270603991634743934204301465766742235404804810677114043733064494439331139901391663487707895461110465554059363973040273644454817136735965085536732913038271731600493752545239372678070271724891586080465151141679564107742473240229073913694659606778399325436669894161966624968857088993101586508773836334178478886729232216726919868185114353028791108967037470261272124716464415368648212175510321642719979890529400043332931203777173852650528265829203929751824468971428230347999283563812623182298997846841016814235191186872553014023274288211357550265797825237652087026312416137145097717022549646195512998183117215930492256173880145223912112327870457916439964607873442735618999770089229091343574499732642689658883596842613330378882491841255212491795654233875341515912659377951295251339668461680211452671821300137904031653287391667184546540621764065554997350203342369262132729456483736244133113811468610220895855530442481641391377295535037633156398661674820853803627250098902325009270129019418517957865175432138068082151531924889755014508367722572123465015814089799247097366702904998593994197079000512468337123099261046600491628661516825525116139321344098488335906837991103820197496959557910756187682430593153750381575269876666831033213538445090321598365828364616701909378240421171978280316469242031415019951527093641975085674313320805154107186889638622379731353385942824863780904510951869893901253987087030349431158809084614511798300819717678038963544763082150676523444078740929312972557433254976132786980588774392317686088239127006523351157377246365664251858852463191707927653746496174937790353727842011278848918344282025689626568595241532545647462533927321576159709929204052434467199637154919184632221573339336402411906004382845720427065648429637637980751806359906076245260748682931794074519838795104717163308751638180645517590993340721138560144133069054145904532532020188924730979225462751050703080448249759306733142071413948110643029038178932990361341114683926576586800939942302176188698669820765520465811424637239875842376315326420295074335671653084466074571715308795182788101551433959514655967813155517373138060695680903914673476703889605870701725375482907325100063604371605156607351702279137380061219900669443572012604998425481687917444425654586450915488089297349956294172408966103695404455050780292108312116985682791868155781201627435561885989961891791960835907744307674398072977961581530573457589068453259141385208425043749883724889012967110674559188337019827627940515846641536369003621977692401936525659397469447968219907428158083685799059157937783365360924515099898100839854282886723779213629168304349427444452626932363867185506521615068126648816335214886230933348377270617037544972440819727533957177931831116366538472949985732657979902865741559766167566139583458047815258871933930712331669985165799671371616720174240395390634677858440427313034173248756488422541924107697684026434808378182539586989452022710023208748405522294528796981125694643923752774114872955154831112339783965777327390252871569576547971097718136373453189855737447736514063460962970895061608036963307177745241724031413480425609287974059389562546017776774085472114582184662244761485127618676788211950756669036191443617733638250178462878122788113064219311674946439756632705278979913682258335178996275304606612736883626735612130177169904181374341375410621057896432597906600632756509571111860198673780611411675528026286149185039791660882263391958413605944104183225423935389179644202244226473966084561236902927561236402589514541252277859617174325601243554307799107198657869439525306551228322419439279275115795573854331032641444642454849826680704705991376817783424333231762254592240226619332004734598489323818099194245859130056321412786064280259067183744212876496471205083233178728127118984684483484753824309898062527031209142486767892382588270910854052288847912061881400321554613606674869220746862756224266345573316485813886984103034534042178963235440516331061505028231115580175438648810631768528600628102587112981391069815671827700952894028910934811795953428689063850353348513212744975073264297281334855874924412594996953114871957958966199117667686473499618745947960966897884673758041484499645108040860261620512732845717964066669552202320496526928433178604696612358094996052612238287732297089808419409595173221646014901666529693559758120640604612570160043935247918797597407722004649199010112406852317697766670059567384638820995240169453548056822671073284839610118328851366927351736827383216158928353388014630681650997378881440469832066935502954564335281257390057954629441355830096659221491112358478837068846576379717875266741193450213965865166564704869883102760020149263477324197391554957583078680163990028465779954215550945776198975000056126747899365124628420566737131963063108590269762325741859221443453129431755204323644435137918228828986081281871081491765594144314808852556577388962782537396835726833462643130999104711297656806798210427212995259239723564669569022682551751931105923640422511462820736844362937922946684730312428762918734841327947106524441481707418670682889315923495953449839791767779687909639224022229211816395887494248476315760038249916678532814379991342140081599180350878252200212313112018677410016410144847127126639571914344616891368311929022486167811729900249143943096144969431076095233154632002757171365862603437832993598540005901828114646345983968735023124020978896456525126828615625748139504261820184618336847332976787611339748923652438861743801206733429284065104471995823450913750420809390109338810527116822003897344485099045532702873428926179558977081083391492216525221012714396434062109980713605982869681097937735407348923028915241224339270712403452831563785186935413726773954561423033368886471091179630107949870144126761882937197959166252653980271717820875173201454463513152726446114657676372840135438521563537425025712736377242360956181897712574035807354420295838772169815161473679487110438661152797907125094389412344314348256167206937199036486104980764765146576616769180654074532335177388284874129346884710998384843072859874582357629970583490365290307610719316865615927021264371275226307095031892465076234757874987195739382961555109849243891623382438985695226468518956316315018192848614237652965523308133132233695675177135548108655928097117348751396056292206887645797451193821543372349962478779077539936182009324516955725527001216593882041984066430643195784659521893394761723388038068145589350594899105993809720432769711952118695098696799734458929155890353932613923614403689819187484991100193910068970898931986778286764518801491743388417367140147376081743303869306926444397743626011990833190285511639091919263615647364607085618477983437120704153704377361637778501631468833374817972517873337430406065517150678132778499077737566701480193686437325964311278735293994394105154890461948964620187218169511721781725787334545569950787690791919840105356518260917816084516750987738527781580378651320866465021360029229776092701842331494312578798263567012935593054824227593579618952248669172866259620775494158356869679345627927122904255567390512589894972058485976744316001212988333182681664372828878459358465434932788153145554414041526105737100907446894714762403593176629133741077114038542661253306127365705604574901715279422839526644916301824776320077670876495637518180602477466614153984342792605174715388977767404080949829891905499930780644585237170034769824228300903677941175487434871395712619969316482872823357036686965222863435523911520937761239670866884012369933481230649145859180829159057355231494018964330563996129384133292198352205305808434285537424745958013554777427525988310866872176052414166944942856593895672591039687650383474236107596666266544827104870073260729970187277590220149683360958924254788931101074822722383511962506118040037712104674244091350839191046863166786349805953307683975303964414801282886511454742718291908324988228485115728705168988820339147737532967476575535003870880028263115165933739171576029216284297196159856081646023525661367464071677566928495448878022143387567024224831697892841059623637133013329975334949087945756938752068899610813010011320058596155715062995560714976592067286276562037876411844038462073168770811822109088920525320299602136986525328754272293926902836133543309528028822750771043196509392312075201453889197400412392645658301003181760942203245837484404473800141617197981192270139605533646823798209004048125317092582802467966467590400139905393392247591783390934929084099997170969478224952217569124868714056872137032626861435521810630354515305506087894915000435288115188271412127739976184761949890145258077665082892528516936111170372888290153550297549451313989650218810446550732232517677514503804567348465932619539755034737452395926768250325768898483601870888814199186322411209679734466586261450959315775726901383267401326104638964938838268526841503928250287956794147245456211568694903373850931653926788396262878019690082974091819819922683830754848077188923838084633174507421262065550559991978849219611022830562208319183800246111876941597903588858314887470257647731218119224032361729447318049729506374014508663088461839718729251960119203794709076502157054537758247730062764910118898200471291830383017750603802753531156150919333683607572427888291976006340057799534174807694557689040262745881049611906226902448802169991181927085451597835089981113881047540798118538583333154875926589247413323166151574647521054988079465602539356484242950858883535558738773242980134269176090904828912005509805937243379655381802670310329261384014703718394259939906354151180112361107868869334507103411943008141330543831250689071253052082654386414109584406942240352747422851697308604851054798674605108036181766656747613242181961056292591577109451691939952485880233162589769146540614581905857345187740058107554351105030338144314059688189370692878116526781897043558505885882307610525553648801157200731354110755718672969525081003653762938791675960755611508513672970435392915165388001414761405833947427144720007902903643110305467857980101476854338050880800851322485767502234665967234464929348609045505592039099547789568279288147306157842983601794519759198437445254697825509666346810625131642720058390027108307846792899883148279982116196704581204981000427806660943951849591814672309871391924528693875821030450734217175076903419347827886149475435095224645275366329224853466541685350171242613181238919491044006113144117486655325827911586569250491457548548057716056831293350908831794575001486436771772325301403999909125619053390756144687797813003750100601208433070459096260310879435337674537035434770189971292647997044297300450859355130687269323237672075353820851732431131923735312376655974702907486005224199523080743627782133819391675032944083370003358145284594915855193201239531836921932133933580749129703269243555009654208099107171746479228730290189176067222217651586620754027126172880378275726298607570219183955590558099498938897661165592350995449043144068960713007984114820191150309084146881508231861733196420724803013726505446196699530757188487525558898680406419509141855195457254314750670717513102868442688591378644513628015761439473510697604602420495650111685311421841953496795829245316880521523856110357131676280145015864107350589418400453990488769239776817298963129354718671037831003303297524079687854757897046487136520145267032571080943054556261879559757977962671949796601514594990397079958934629808339875723856048698940536342499841867054846429296330479216043791052226450166723893385121258960820128192148227450744786920767797527917295984678116025601789511764636160671287172885667735017291623604139663021650912995586843660687418403921724043625713722968953874761715215278728151846790129286171458179851115448532602567764494370327594175786520125372497354259970933965823322039335554510344117820169071070231666670448359836452135135349838064423206821126202440117087732544487790796217913110170322451911903576972546706513738014150416575136543646609758145444618211217750748166680973791316697207239051177464565874792172898050940594965783407900167915049052212379381755098571621667453774988576992811662576878621263764773848837714372378832879144464606053165763879144807341045190778528974363608469098396509264082610972684727126105690175508250546454648949997293464237956396811899444470582021768036981712252355123819148647781795231668818511819839536440632924322531491419045963229456379462087807229193454699608572497383410088387837095815614927247045759322805183534128341343717225285960464232478367580575965772114248221712887074213745437551624291454979135119479259419299698926087929997509807089182352210788513565902493757136730525653909003413620508449792286852701549387807784935338317955624636652641479062962232677171342976220368599691896532570561607678000318980374353461020783650550475990490531559423899536822708610490299654266684313270116471404833867412489718221174176901258218334629694238630921417942758057337787302854762515432589935356766798139069853150279277091231354939194842100210060775700860891017459875397924702890541131599786382781817722162051737097157477624611687779336432072710344374451029724021414925275826589522048762411742066951684347410057915990509820013652146467266422732472940940073172904103485452595860721189763629936425354075364757647953990860193945310717010237638162242883424741513718740832221431324930890916338523662477407229421754488647355388997614810947644155448914169783429084680258719156634385361430950658726699680444839566342981707998839778613902224287554280017862678310036901905999671351213821775703250183100857913496085010278778274240914287965025373044199782085100249402200130466936069627730379462721682637897119938842795758208084919726023385906515479720082979242579212803271104118831431728495877268776521663489959162899120068031397829273011887100832502496217340221322323225542023437117939714521850862765259943183847933569162560289383434947097169403304200929381957542508037610373180491475553071022883068973159468203900864450491128421100456155196462783828366741276094511055374785043884985098794090108707527679748263436205903141283355191145249283083034788545913898512425184437451458425834408621848770260031362013314756846301041838162445372137873287799011306756708782519226629773084036082698510383970576803686127868960497053261119943071848556742385717055419956427711519426876053622208422637537635838767316028024644885826515298911192543472172168675548197168509668163607401125608623023843935400829708460180500923198345957244959280291752912562962232629240564815156082644209177907337776333614663748957223325875173567777461002586260639403180146222929770930925712133955065313623946683564988146067318978802964436292075872716252593787610131724555662156970810148673955743511955102746367276022498468110310054203122038523254095115008331780973583167506154740954414404698622968737549624056891622561527475651303729146534973218272619669756717188179596117129495368728888597186063796529334979969432961081083683941412014833174681719915035695806356610694764076570460087037910697752747489913593058456076152391321885975648859134687062263228311935711493020099113420544973104700734271340321616463908406493993631868807546903598588582678363802948568235296303920244381522034141904048329015581789507689737054996300533537577237599402063238334096118999116249562361381155723084799722722856248578958594934748224428170170585812779488685908979038775088735811741734590579539518970245375798488958329633039748709127534805880129140243219226415879416567366378013070509564765716468043028004658042256693031707476561167807348997027505812777721406313669366886928293746409799815825963421682934012529930862287262980747011520331098200744742055342503293422816486291805950110915743308300901426293931148357101112222985517457581899153366096722190403016894448071152438666223944740315332566470194660953173785464626742894993870781234936570473031450374423805389184268812558608201779979848612837426142005466516868828572943983625559627415215910459470814511234483169933186598604473652427376168730751022671201186898471956944305766373288737095880054762869644063836015663538252482844405083145451837336987827557586653254114974916073267893753004931154903665908372209793446828814642781220836725448781259982776165956287060064768882019982980606458247848340055987727379338927781557766634093476603802192700866536705904360148665260423254988881282093720946731994821102342166223564056527152638878739228408332519087452614711280297063779625195741394190204427138110741551256214883809767556508979163384134662817539077892484924957133164246415813784811049462311067594095956089593230966248416241849880984099659197450806558028355593543273444193378872099936682743654870459443613520372056707770205063667544448610225889284795108093636468985246423881166369476732913837734943891318358700988357191209925587210041024064087032434313791886270794130625170640373240558999752696434604196172854946243509938603616064003161878198561614226263551010372165454896517318618751341557970868727669083811484363896734209127320647081829377733550068162050340011546138959807089366862647068441179878362214170506997320526390829152415202668549314356902658343649317403061867645117779020823691721634492615674280042751233883104646993166022430031484126682709401566925937386345517907772567426461745305191474788490396054858699992687968007598745146949596957099337196758931139173806574614441000214124068378261590398789592421303856048634906936595375392975146382211178614917451842711805179165250144562542919264152700563362301599211987413152456268848418672785861010089477895591970754859288932603748163862431493645691271620328660585235683029052475882665308464783570105817968437954311593719757177757120588389601699859379531590684321677614636927098756393070348015588019967258085061647890439729552666142752009283785816942044884015255758790672859763654494531512140544644278955661581985051008083538205217757181986167133925364493179913352034213298804227239333985332000950998925634599842610767664577142263592180752369352475349134860937031620206813054525065390593665096566863622594209418640446340357116776250127814178562960659745246042501144264819123650383556945987966138471698299969176179550820336655511810518014510908125664254701445927131747281467052940426761719397917834346883111946101283851828159711273259457600920304441614698157104594036955595493079374159868218360992515801161208631932879747926574242144089840601726581489794750863134942350235856923407696115151275359237221869043180744955875321823725295348649831292157272127178838975935604826885903991820944621762707034786252031901139377971005400596212188883318578239999908575290131355003801770250424767347540130678888030982259826865132681226967635089846679986717089433865787131131565839588337398243368404468833735845541181396297582859035058594720207331907132409580272427222639141490876625104181756159300544122153780620383828164562396431909864521240615217613602692954522711402941140905179876136241181667840665444182813975760152626614142405139780660538876017346908662893943964369903357089531403855711940536546096124097866321798505161594645822072470741592564800190285073448518708992723252524060409576802284460804218317748895175809926970754428484294294527355740884982219909691605116046649179729689772206312375918981582747907190534320059289590532095544692592773068545418463978290315615130192913713201344474880110053304759708137531434910346006746204863325436693404414353958496736642875554923516232648359967930315291292379826585055714031416724306505767814780374355146944905478860717563470566190402292065759169223679591417295597128728311024596459482953954523237884459536098304242767216405385002261145250480543281353192911824859923157638895136258156116088656888614790055353077617245231893569861808789737667741638237167742286899457893130165341088909448097186997309099068029404009650248835681535229975225543398619593532259855989766809437016312352592098467019462371564901756425510939444141822799472741813426907571099527447559528463862983260939943516645932164194452724732493251235898693679990394482999028862042948844392936684954786272868029216013919053003988502610687236655384676491371020642711625931723846406934920250497412742742105179797075061273257195176524067560510648287266981429600246455275133923565757442303325948121171861838861519851180721879849343385037431915772544848946901846714702774860414236082497626213132453562331793819958507618469784180401755130147577762774155996945528482034625464181736394395542538892079807905080948497313070378918968253322800812584256721654879584260598304276857413797829324675816206482919593890884545022437477610956663422615407809216950134218952808419027584033283149909356236773591892811563363976089264176414371615646214461905817131475199118754103759656329781086303592095447458935180138346542613673167234447265573967521228075132564758229067542500793709466876335017341093571809037399516449476644179831703093628501336450643000790531785096685536853709941148644724613337843955785806375094149791724752969604088454537698401367979766167941145501544058115253310096125507603515819349876270347843306571803768557272782708189019910145369660095214957665099428853634170569104723512905034005439357071035892732193090804403260818087773236632755185084116362207733468683328899287150333308432816831893230359798479959492262686976937687934299558790712544294617632673172367538039560657365619637937278230875220037846997708012250549768792048186720487139201082357311685711787099818725351831917249930665635394910039401467737944493999327690184607070845781192098823549071235236617820402333708540537476671564305490511576118646161273362205295077440747839709568863171410918994073877813222133791521742010281206229774824926376606766437349175649743430661191917436107087898112254649778544057668962983174881611657945333903700421113264663442549942391728685222595669293004201664463299898865976432367392200957784671643592402656620185004283574292764653708001895545095261190515893241452432801654399226998353069523355989097771594241539743181709442647708919077824307067879444647264269672458862300333294022680601436624395313167731685611446137972604531182502950933323086162427410095568215867691262711859671472317509745872980632094140009174842854302259757518167374941785850227859061888827966472815547896375089485685867609877587544061378365123680022403095672333446971545833542610461401691794851585955948306963892796216021643963785809777483330154618692031803747785286002722496367129635391614776795701928240452243132484473133579122109255145674822453879113600728978255768997163331067617410115181046359897094711507738603879489841794810538773330514472378694808736343048354625203252899066364089786347092846615519425331730872077332770953392165005177702243953138325624376324109983030446840920711144213865166373280327544176921607009379751033155057237680895729310364366850488899865316494723525385694168761400484916159097851923002743899673671402016006673374094113581819346159932488866120064651014277619515720105052214930442494532711551865233224838617469741915847117658573267037509331415194782851527827012295024062364413365153395440117908204751126988135764093820234281205075603479368887385576831436211200983167980112143914426140445687743908131864074906029736690411819421010752788399452651270766366308661950032950991531467416857371192586223073922438421032688646304528643110345070918738651030979710653004761472367635086670687735449073428653874197879844823315122713777920159354739538279574050141644867852307301648183513079646499351372551723909633126714153620082328313110509800159140043160150696791339025302302412004706194488416374633612946660440069082747535428340209813655460894623559007367620293971754778538787663481032037064946339190971640122615848040448382647399791951531785280461098885076826932610525520974394241571833295329285448092767024912323048217945327699112743437251253086536380053641551503756719770076564682920211125220827299397903008386364037160139379944129282629631373476409663245852475156062970122904635290656840385588103661268300467113987192265535147996331476127322003816965583572121528975647857601915437398932239642368374884104052455409847357394195276623833251572109101665623807092523568554882975507439335391468939332564886492999236623940756321575584243270876112648752118681362229007278315158066140007818468288409283843835892905321031823073217419996590517679808583432431854046910653951475026654981051695747589563944649182475085095525314815960325992662633301257628334845345398108008903422806072419394569840113588482486312492824151671050294027654319695929448420500977891053202643010013235092994698079528196992012080520765820408847576863446447721515376952537097666604367820706463047615688122930603325240871845071623715484403909619512324910280606559722919546046200406845204720156777551796280062614487319624133831075162504800075036416744095821525851057056288998087388440769084696096829383422269852226477628499342534490723165190229305027604699019576005429017066073703352167337952823799598647655549882682031009368382771011554113593263959445503699787309461020868069871437515517282124795433393118183153627453897663112283173356326843424471899348391229703883895053769526656172255006190922630608683908664368812893249605964718172158475686804929754664587541205656575638920192447349018589262445309426628561003483055946469590385122947597978283437906316973416587389456889190380462954101589669812631656496845095305042741137485966026402726664237609031918418434098511074388764230548004580261684449840624873074703656478648193498653708859469265935914785796729641014737732634647700487089398832883640507282510037032154958600362342212321351658768962530865080253783892450343990979467548453883991047884800317597529749696118441788394930314608792546019825788742740498037270746306717784105448253214958581489428309051641721102070942377633812420525188459907866053275362382552521808621688087637972835060059679305689147651802504802010428567692319420000874176968056671995361442705957221226058119487903811128937311953604172675323004194441267902775991119069245977607860130770000610061570461003929511629080646008711798608270185022536289417024251654987444992497107091402463363753844397993875791453681595254970368328550104664712236056208237597093436498792109253157394033378794802675193190003143359125185592535668718870311674308613333300737875171908482928897165693514120459299260735346194131050382646620083362757287781023237181976270293279565133753466249812708851982518684226709295301392538128889209654279586761787867758499226083333308348375957427221070823373266052557216816766088929197602387116359774506493121101262484536505642573462564408917000836606765271275901873614146510891565644861494302838980940804924336497581526842974299172328187873562463957911305423577655809730532540979750462924934362502381195349854923048743957894491173028035476202216296018334275239749773108273705463618483552300867005726530762311846806138127449717222942908378908065994462465159399242795112663751343555663609078654998301533043297262285048073334741263125870473403284969850129039890119416864428975164833086321584487395237380125686584741569488739320878832867315057298923434093146072978804799887549970174138477496364301784707753631324710134034205596827079522033042140715688294231628677305367755628282823988927296270944267668368070195413617518399242328897944074931273776585828981521716899430050076494443899861958147590137375790986640803773656964041031262636393969795041439003387422692141001643157276434753974754562040270785181137120728997027122809922161498976120838877506117923970205696010983666026826909468894702192557651978739984556382917702311499688945546743468317595174032701123805787806829006169848071885339108830749567783581713250914637789630033797169520284637477346159762553574008247978692876541397628410796603938550029315661642437650819033855738770885522544173398416018800264734208602305820442227713087982614144286001417360916989875184876066515522866960001523999417852879506007688453886175692725640497515283976618092404916000087305380309850247417102677165948745379890903966361709386405187842098736439919089046762259857733132501996081051836883084545675243795102752023261008416722706988434321781806093594896536553802661507334292835083473490553976733463694568050799393390518388760542898380329473459604227346040883941645135949081395280130570371004321360392179792525393104740926545300726023491857506618745534382608669396217588824053549965540913020224485800832437556233361311350870825119500303324972115964635522679435943597943532653821275842426373946942342442555291376797759488379776301980960669106004022494692315739229563869083249180215366728895540453950030923303508052140786547318833313414538113239881696460392968100420609481730020049125609699109952535069567749768399675058306043254767537394963882608687428182351655125435692308116290651713053242460319877094877030383028412411834943489003820899388566864003761492790659126499150801674620157060352420062849060409874579485430463757120675772858050666492229205436948042233303286498619101994716038733022900495962798171787181469545292313805337459977919858086638347313495876307622443936786250441284955116973031757194785337971030852085759917476035604835458402207428530304514000460854745529515013828813542349872317826340822416266358848705509407706769270589810844328296030283057263512865732506954391358751351260313563844449721922602287665417113416537895236839255809712512358654402855758049155153867034190137813534721822838880610789970828706475128308872279820155423074833609317374371421369766624143571855157425263206152717830026553084195671571778281502393113956013702991669996504426162820924442484245341052957702855144186065046036543087068935063102677237665946003758357508055729243678504553969613114361167494233165056538015109523741399646808198155030600518496160156718753939837705082505741749754264651957307086798755775930174466595869738587800221459747456329432395739369778822026113429909243658462247824215612969522061671134895758746424382548151399979042901044837110815085237644259021303520539322687548016162799227898733603725499009190883512543304825427308651397927965564430651257003552944687167258622376513442353480522979552366791769597149393784318719782470470523370160174656742233824710748895155699804066590110799478114603247087301334204311137680101125267019286269439331901470210398133246533210716575266209189175300189437938434316334860855231919753768246371038013857683305596362692622341958493778926555801688774028900707968343213380837589371694338055162830984446554482701582331556496714044290882607480213291767312361336534379780235361335528661918701108957817208645870855263132022253164732203994033043906926747908029801654992471876933359675982472579938073280186760347908899473287698717614419566959401376596093322833008129524291109069146757165029161837930602495146242413811272264406610523083387098647237323182277981776971593154957708127855991027200131918458782857938537159362979718858277826784279474396897748011037910450580279545154353974811372935077347604574058714697751068467264333820864889891597904726942047343504783943699270303077019461881698509413536624540858028806146957234948477048669983128863737398445019441979240797082329245227705016343141178681833310969595117109412105262267320021183433324981778258433883770256387407548658369983037651907243839448466676326341905803813779231746002273230295789845493035189667049165873571122405710627542315654037801226018466555684913774669758176763626667797016529485480612589424905048914235620598634026148687460832659378795716905677517436292058818580625481160138993317858478995262343922957636417038572216976786448672646192022282843738921341305364998500977669180824581945515733563170261400957124067576615661661811115295164695886078847216254868559312847600077663443511812922342642207644993436792286499616361209718010343677596168251198084884376032381083792037847691758150563027853644930179510542740829079124340328299407705587412034176261053698151970335707644103433991239501869053597140865930124929360922596342794046451955054819976797790525795082160378510905738938696342215501602447413181610087832581471065061542606025452438356630149525887442882469139367839768612165921500759643022600918397756121760850759957370138203042503962898628389363493899990086926501662985691363984186631300539618281061109615457530544405467789866461398741574234333983720970614201612674429826671143609813903185421283214991351971505735209550535425443753693816697972462055531194945484535260499850998099504705186530809904042081710434417837336962446304163539444276064236861705457019196213187316250161989993050644784287097206813512220890516419889302153731167055109826611465140112490939543812405249664324093441361423258960078747550592920325913408784542300771880190010876488071385469903777064325100249569949282994067766931515427416488043293961047710887801995179709260189040811217901435444974223554790314601754342061070726171797865712729166597354696512600687157127410049180747594448000032309596004218316469677233296560814027389042639340422060491737348692667856777405165612515116297490029285352658441062336057937934482261978036990306817010977817843833269273124957959805701622653258526688083174015227118357462096287592982661707323874326057673518065554043003554649087456478648736112905998125058924272102234446452342895224785371751652902199956176374972045421756108517281455571025898943524315014140831091759293529524330189460343673121787042878792036327178459716428625173828617230521028364156149707531896160495801749674458874660836107927812959779678850564200063545915454922841004133294085737373122307027035566917813334608634862771528252117119963301129680533035822343254834418287357385416708278347972951974569569305190414870944551185217284670055865960339157760885039020645112081238338553416487109215352632750105859567458648530079143750923955112138390646301136113086896464724979941358147508640481530485473975029573488437006892687026434009671645037899818953095564049700212945279054988193626061587502920325099194101686265648028351917041561012396392584518454950423461345513324031557760494278441232525341905531484396738180851719900047695721662565990177596388633271178728958431930295526417332228788213066199141958328725256167823047284782750935010459833760242725708765599525579086611135143919873519779996805896152825145074968191706200974725070491131055978000729485360122836245479299893657509680302200671003361606627008440686938944448621598969620035397701388384936287743509888001653019051157470454609906144393710866472589517241739094365476587267573643597339621181337076126193787035758653452306895261481558344592388779614129245134863212564364229985693244336094663669357688169745349666706657083124953363890578527650192556150941766835303270132495735842997982433653765208534980753266468468857728367238815421266003373704231458777107761194453010109186315336226648949370787086941954253124078796521126597663794669908071762266651507138753305775335882347043585935598549027632747989964966732993506073974583583704362803000497896917633320314819256982884716776065602963913902219566987947434060681996186924275039722605681663990070655435478039833942967832499621700107060383444329691466304152376338846326453369509775054569943550596539857865524700453496102207064946069723325551673365837794670205658240556179495363301835156490240531645144475888876294111654861047066903149368027010878738262483787339129026061183180485418377695737848778405715222171579353503153726123566740707910168238555725622671398268878569763221954399432847299610043243218138625351098272021618551244547588117525777459404097990698369016073652277480060518481473837383562694594758719662003547923883272763526519609703407397521383217134723730270591030878620446462759168004655669542862322958344091344168689583643198937800456759699020528257031215559512398206375766983347907062727045393186926269507874432600005723759319577798475658726269490509619764602149383451682127267301517026536583207379388953923131273623929858433951385249264936893042139517547463554905830295371176452794617230368491139306203917852824684197977088581718889371545813052092855235280786636353730354680751056269634073392769361881860720210068880757050548090744592758517742902122563618671808689975948795799731889511089169620510054240885161410709105607269834049569234770783055351540932749851522326693555948541482561446123090592084708773421138553989991546499539616361311310543562700362555695730716467839125693666838990852122350294089349073636914721142898417615184270275202362522089105691139738922004088371706561204194096375553843547446710159375565139832460522194715325141704616041776301791528854768624552534918110234210029244436109160956124771849265810664800802554179699713263898165936954021153295036925466989439728296057563131734070344236141375482968197682262589856865700138045466998273956389690746924015364213499000211339617670671742582577962303114021444220188013827975493957649278930441634815126152540830495313681164578294708502667375930387785222616458535440484647133057550655516973402272659800062189220739511707387576118734337096768918045790380840292338501313970809361363433447086461883798409759551598187590471118446823207164724729638336762202752520525552725990418020769475324006720093289902750841864990301499665718873123042472388676922936534444908023381281717344417518036215250052501089624663287656900051529459833672475046960941249707315403987331975590161131780167579374261120387333908978089477079941421848539488391599761446454979912419503540483598892027767327690398348822633092738366861176400003513822361845565224328156161831507469310006248790879367211231542595754496467338265936275809196891859220014504584633530848061330372207288875606516988622529367778596748153092452428654301953687089289590923678218325468259066784050442304706548998815424981892395018557651194670998294909079284197672839849558182465168091590274463329274877014551172248396121337989045845010431362830358602357015752241715553885398499910967849810175911834834109332959387945255184111985358348515353530697931923445914368726907980865045982823042223097335113680634013404248393727055337282551473150618006861514283828469833333269747045533261706851901400717082940055799738734184033540933199474720402382781077964161529284369401173767568056195509978527567359424181756029588137271467850879216341951251192999591818832344109481237794615783759373090735954914868887457878459511253289511615991692543441556406260169824259201663042336404181843017411431591182488659590357667678243679997082320171472180877738251840347766612875472738117984907112120835185714695557635028819173976461994757658937860826367066982626097774979174409371140367714319516281689531422511298643062174359572323996993332618718312387261312944877231142885244639516953152603556616271194871997946048386630447117140543733505474893103321082193360882951506684000791402809218442748051765689065760805620740704951981263685522289919952289258912333436970088504553486536442497773265113014082004894410769507682092510695074513621880355799500830881886725883680686499681273897917294616189964263317039272660886751630785816775052172256838865881481575945566585614957266504084060572939629060415797084463721984045651983790669241473367755940164852771983635318175511397550314406566653389750400016933002184960474185893677556424226972861595163589537251238980922368707554840783903147312843575042160090900438015477814130743608348569175873339247741562835266004551566366680957732858691421424482631135930076078795094212236069260178531174585753560582587311293457775306517848640185460655552718255099179449473422884958663023798482782753842482940968115077974105243532089084028771677835164840631245970058831846198551836044459064201051098952937386292727180114514075995537053206705952035423288430246297374805415728157199814047399574524097639236836820784010182104584168251800614544487636644105836851788022445622299719725604533073196857860813262565493905793339910801077210180175782844202222223667702104577023978322914720034371280187102926898661813701904927555726916561440003240083579372335047763939337212815369070588346179851134080926650134272642850344405239634168582150032800800974657589051640086737610644347908535299517519007149975165105594931246337567835066699776492714259178661174458843691300922932039794186741304500215688485568285404563523009258613477150147766183687360520280654907760707060966206261399872918031315839127522864686721457374958423297743718937413832004708687237927126008515288861467879396501312483209484008818051163258130707206682000473636073355968063178689108500712407193834608877465997549700876784328834388473504322740539535849199391414808327172018100372394718814681248960685976216818607689526516526538424480540959048504289950283917976406891119466386334409945328153348490867828296373638845911870311352990694601616087226127336184917096629969171470466545567112137238097976795861008805715938069256394673744028817721796383350801567598968944494127370739757913302878532842606140875114241233028375309794357032881523037471101725842690463839475806315552026991456082489141954520129544553058789136660970757671039353907358873997328457085588650235495120735085670152264314743116254242866816123830950208579241863993910035574791529622891942868821747207254557121587183101208372538594622859324930524146233946312729253278358131136806578878889071916074981326031225373100421598325313615988577655730687928942020919753862145585018566834297342500956142137947464721054311892785710151194352832052673633269223772214191644618365608949735097585992663388729210646779091850089819109420072362808066823154717747972169582894883209894344521344519026290434371946562676229087770723495010563254059551063048708034661022937098222554490848377673385948047404763854001106770447077214004573537890437741793526513838182312664722569765816669382710551661283944042239553107692873564839516548137916860138251381711823926636023082629363450948810822210831559366441113311308559191997947100494239164042827069106108975523378474798478974520203414980026909084069958519886436389141516015197191539786429995074137308527644344462560732132732516177384703106922722140275612648333264899980077123342535744432394564895867570078167419096145039503446826389473122808469728701179412201782351374446904904019777893450133912580002382007402596394012519022352650441311504200900614858258646920406447139611079614980750097048018619137707394014722832362546824373214343425056632617494261849200565720673985655438632305886728596636297194982080716296336328694705508148772497692607925327289917072145271145873410230893938783097576580375020302823731771176230316682317345647629919687552357320627551727098030529914993388054669551055663690330718259165704735821840629852315044259551605571990251150044006388792854901550846783918261009656655138959724259189833749289103174813987456232788876496081529626013882768249383957570728243094887409468065269338715552429810101875590281572527581045963408336146068984824443633658380410279111840221981562373176775142911485066772869098360567180762877387989727664329184931250916028580991894402193411564314385410982576085529694355591532547303843471789391409466040980433448079903951241780774345379340160403951638636418545078304022761328108989836337660159303096626461502118320455609912029198052225712942103380359642149491986190090328938756775114619402049789458461809777685646221662794395921091705041912764832764358086369024964184621178677258248060569029796479361963148554664456968638456316821509030079026521633689524733501569715985203596796900554390827216122933937499992451895435748458194973111642856892833777276147882846478055004713670102325116174395141427173453386399096290622914717542536059595573905531871006485687298915662505452128497383438436836881752586009326691619095108558352157042800725731860476457837391219959232299318324496512434041109522523597546403212751312479781236237508662894707990644327333725296720600826418359242402321559059805681845275916777727156312980915189651664682872689699351112517524603560586359477479486190329666506091410893702385427264798413959859642487742453507521969693505385698035734232569565596626811658596298113658236813922518527084909556180094774933927271822238844457910126952796632159584634560610642872063167736828569216248458594739667646468128030812477314877659936765653032138085629858607878729346713323117812294113920472761207936429502883956862571165017554371112117617831182100570394267565664362638689023219706227084407374325817110945999082831749514333361228571076781300515138164137381333724610514478996120205394794896613151878279547106359683612309624764222318722662542007088760339534675860924435648738715573496676644792548005341748041432732065163772476396350710118273659279621389563979552547566393389882083694715801043555777647847024738413219952944183721154858925523301617985619602231337632434491499075765128540880186191975970516357076021572130119529159374271918796169795547065404839567641315888483386575217888595798494108438649520023457656351904155372943084832985009274906822106758345221217342634827794168793228552952056564057863934728502877025467639984389912539029690720759883265075233966640459143750171718168454437894390926781472566822507981218618153806889709446919027610278623836886448676401389153599950970447116217654617614022805841654914390439100060743908202801270359114899774674184455247891753594500794780155331364039299772006312947769823456661583234637432395869710941090692040278000169998730850114694541174547699568806745087705543472212415510553210028364035433882286409111616209838570163933993864234083510310205383996377665994751080045279468205118824748558895552377724813859419468748728746368470036265727776293452596576529477368794234331077281338797883960093253300255582619882885804250921102911147890999279442896479379213587271084442227899918628344436885400212508178884625050857200539967178763526145689803403840271231424414908378112176180871213194739608506617905677678278936116594742529418316681592558226344594978172269810157000065970458507799877525126499860345683882658732900555272937792332808573484731313429403996559872143647843439893577109028104914672951295126098835850709460312810094565541601381121644731301169427425659211786588371988104759280014741695200041473965331186312764615971571666982946917200636273395643721403622037599071111023998549763188965578622441350847131602486552979358673306065767462574356773000348429041117984927668365107407906980520764525244513066741964379714556832871704582638724450863621364089559305028969710693734948049027235310993152552155361694471466694612137534405673147857367479089499305121930621963034822675656050624086477936772967720538981474160495888148741539455672059526904714131284329114341512117141785764680119825123415042709529982363285016581038097054387915251468246732721815753611977043649174383497170548270373319464641421471288615518710845554156054085821381302654209028751178648844715882582929575881216381566584156282075788667600293285751377913702435418745509253121860639248988771370474483652427023479793876693907984855369470522021234679307362167738571382777166972813918653164244931524424920569396011140222937595002301472026608448328320719248439216792067916449893538804024981378273404979604936015852268487355658440204667686706607142765652035750389595458147879339530782865655360362921174572500072448862617484382930951593142544473450736147478287627342313616491786316417780100088768511646200001644178679905410976199801885793356559825775801206033938579692807558274355464882882992958752719505171598872408315814830227341090553267083296473849228611666937595474109951503791247024025408135788560074460402311129808647123221792590202977487809446546402882823735162285232994428262974209863761711436561496037509508798983618933851658447563530880725434990740268933591893102062768871819256031121839493713327240604093885867796761046662508726235076988889487320080634292749147515808603974044583390689433913174003405619209668513385022523420909163382377242043559801011118478806170404385456461946228881227608635223811241180915798710081861452560207672500943620069419361616705960345998698181273563386751810304426190162047521809987221582853545295764223573666996479111132091013111936805290914646012296936348041603076921159424217238973082884358484599740235210757366198310904172991230924515400338947955573733673363959247233408302783670478487922427559412493778641624719797185209550163613790076467689454890881923951318064399102944886217900615643398785068139883422529849035419859158129132800436053071202098319246173013266831110805761503018713067489696225923782265145852464845728447762595900030816435860371437268990095335747999394789648555760927884903575632870514568288646524256386888647303190286244930456115775007852651060511697598949830830314580761460614115704080698158427368019040767604364893651424745218831951463268328909863666581509054809090384911782727491379972538791689366959835304109597640532019742760916065160373266733571962525694314156154530499299374322333717976715212000814258506332973061068270206996202982966232268348054353569002118618629720606618844708083417593449668647674238964572558540779365406820638866495571492630925828396717603961812072120166825461203047357686542065414468190431222623335157928724432145603437207840063258381972188361619725984746786279082656325813514449559191551352835321356526313743001857584140466475518279215978918515559699125518080609800277474241142638325590365159974436029682449473647715299349240158851268011858929849860629979053220218045340600178321591432598752938755057369964130000326988061015622957360869869907252623272582650293899442601860671586286999130296943265777181841416069370656049876740605630027920175598593080099077880441611159184206656349346349060285682573679811311591554289907085645283554294334076038706194341913395814168258698506961929535505869489357225923254409871350382892541248609828911464220257073493830717803397148628184211219309811255490644211216439005874241348905759430637086735210951876816636197533947121366194297712952494314694809364931810393872405716840298989411690373381454528220522488295796911734204569504903586732066264503867772637851491103228045819581084254519419581847671968052966333480931914754837109914297337137818338701668691303335035369460940817898999308122852227212436779540611220924221844949153533107480519913762185894461835275198078617712113377736902031726629558945839020581397993381348625846411387383671580868900549961608057544133907700683729206688352419756662977409971458228635921124648241265736489174639919390162258329100119559927542017672089934579438106990521910970475792029344755824599666940351270297290979009813634683388635270856267334095688740405022871687013281966427292285806285885527761022357215767921409351511920163989967642633649612940441429769272827199152712700355485474500472249328081138038184886735841332744941665399452230691689940247439790301380970909346174211586088495932941356338869863758901172519511450873442415255726635949115593067988285595454920141392088991434244056704330662840588963172866036166453587649420916165497981894606175030630851571611935979461291978186347979323723482366488580160640189475264653195354045348417585619581990262008982812776102695746392469603762943662422454784408889861899713067654531387011996256445686335086267615584146695775644877870198973206401979638306936620896599253397018848637589366685594325567385423779729359020239352822917524994228020563841793294335302662172881275646058133656958783243457451664016546561012222234224413305784074326291275889999305904757999254577221541328045809760257701433161349598796957718346801924983220865920011656711823857595868258821029628813598691971979086243409485457517413224422344569660325049260137977987905648224484192851577587754983747352875681066748231440075283195934208713553518654798816577581373121902700447397426564098342401041887934144498855864293286708370286265696075793821572171800584742737735319191364006433486547917891798022008799079013046392623888697531730706747065149250955296075789833691103199750313381888211730256047817706197763876533442692495329872581540297319486796585774091554595005175838760792498889621564657897775577214291374130083201052762486942353046117241091406688577439334210137474435437205859979851614179099115986946678693441337145544164879799139987076390712962214228032525120858732378001409518684702266740502619897539136518819761090602361554520182878309683226282728445219703962476290386655711150633449968232723376083988562210283397474672833702191716434023686143171457012189808724934592583775256043263494798804150758090370373690673675407880163255438793346362127329497007467821452008310912298004723539754995402666367611955350472587964231413717687397328047652719692993809538790059076637898870509933992261216373600110742640569038854940253622229807365895756876459866202144499367837953949511173614610255784030691110181968525831292164271959859531548335603444611676330325366721150197610375235055400125028639191516720906862098234100379141327530167115532323954191855419842487080936620610008094807148581759051767663052273351033146994439944846806839240579543147722712589976422634324748082818836276828670380406630383003726050538543221368967752813861652428508777266656614640008407661971742491311547504216095872293584047526574872702994085987191358905061864201207490009913945619182562662165812021797904263633512918163950785690399119349038102626033639226202767240717620145469725163370445041998958012931538611736406117061732825111133840377463551366728991442674217494935014624252561753825090373453197459818657645863868955672261315061291913313769176065835750893317413209236269038344001050933738327481308285138382793558102064284384170364530563311396516982397989392996730076943066903818785452306166316213601386916294562012181163631223444259041955015643019593082088211566574644796710154975063707443772212624662119210927878730420010326433022631602182677506961311323143936937859519980462789456548706867951881454109244998966169877543472671850056979344436057104515109991210620954138583978375577117957319483628767156913545216641697201271484479316471773512850904631159446638640885064869399588909992624912318920034277632075559049609125266312465121552926080076107269042755654404551246699886926428592888686135042272427026133997596846956105146597187164481801622174377189533226362129549546380829873819355169528177502476198074840339303109743818101995196766647841049949237939266085178400609029076583017741064235293053168672038114657425298158314321756669299536865954629700177642590730795662399215561523463249865954139689913142379323228381274126900448683845590395595048413673595757525225999466783105016618090384113938876984281726435848040458995452777712362731065568805080522392691642078496226560547771585470629027137479975411395805636890225867155313346867740988230835227302771896818918304775446204832297074893647922179983300164462623737447672875719403970997261454302722969736204396899568119236731427335600946628899608110551395543137389266213503929389183187932643334390173365876793246856317895092922727989765767718630578953273482174492442406802475610692097672636848189214739163701717854252543461549530862733586884654422831686476451045447976281796604591239779315463738426717102032946502598825149440442748537572814805426122670205377376316828902014658468905706372892629838512968655158105373739401564139772251909772144596793687800266646564080418757654539365940774222487247401722434006292544268419879981840411042065228276151564172687201525547893349886240299199556843726422396128668724812941429516211644242387923716937756675434110851019203375788750787738481517351308722116433735391156218782587031093874831508743108064475568363935573425134151879627438306485683059598546253083543713724703020556169249095126209645303489478436698912108246400468778520137919471078925806975998026109196750424835249370344093423692843927361964719927198565891730151445582403917936979798238247163033019073290098056654560272372438601417201959756270252158693931238878548629260896393135689909921137122981288942689625206659212251343352747203544125646969310328039607998567939386848016447437327335575497304982121516701597911084351157740264806378085260568916108538186734043316767570659353089976426305745704381215573919178618969920601396876572395757299910953378439171848494592499928288868064040418585567686627076561963031933325054411469337987975171351541037591337255959945647013422141150647053858535213789602986582323867592893392583493234548429518645699776856363390451609128480349823404949458693600361220310518920751591704038044525020120924105793556510406090609645854357294729011717013037517851137835224403569447288162732175108127901048040958334628863024814287346565173857538396401985763418207942001055628775807163336622996015729450199808287565793351392838447095634253014355166193571293350114303268463906993952046241164412356542805055493352975793561868594930265430880954709161561136792127269167422866024139338696724563107651099916758810254634980772457526649906470637028574833659956682505654789168736514162108746876175013775395811495543492405432236336042640343435660144992478401846328004772982343824850910752121032896059537837705668262253252584601538719491148508470580493190531814530547100105630849596609316439546726768353915987662126687795343797417332666533113621509501417828588126395361545453407685540681540818507493886978627758620381100438092863424513656985921590169352746117296754438314776060651095670362844701218035273073533174853699861828692959092723649830716925951097415244505328362390911511946018594908451424470262448311442931621986613130090924398957245941467886035947961632381982670312331237712685939311860632525916954389071422340431943723504516960013785314779310995977592532503197239159814718035652894380795314544806051224626133689865745430710947270610090410047040235814998261041026095439261993149165290790758120104371751768694774124429869709986262632353033089364633863327325928340680549509447824200574344585264532630753154268438929481444359257254964816678301195606275315986205298088767507479801824707221156134331898876567515669755404316303173479080052661813018813168518440027210295057809195995043735020475735006854869978283498328081987459215990007028067101390523377739760041503607265768695558760175144880139245840215069463962357857768921708376303750890909464243489855755997797333267824123034118138657171313496967047737532222283583946960463417412027590500913447012553742915921607307553213052678160217668104321113354954387668168759763001651871595418221533121232080878135446616127829692821082337053090479127285760380282542475357919211391120380537460278090843969430794673462336816578491789651433779664106544101466184827670174733677076243777541151219203037597264917713689248673542508817221520266484425273077910216546329200279775423761395451003731611882005097263008694220449622845180280306709853851313341611965822345697438242822330249956054966543315260893870506340505022225609025499065606043868645712392636676242303899700514854786298036232415066666123409475603446523794576121585768312786632790992317255312274245123064605071921105915032101710378152331609141860334999044804720545533341766328447705603238988657068815596698229685548801337490971691728675666006942747614354090562715518519269507151361509055034453151826349644960410374845312754904735455729050683662610394488047016296914871603709396031680858557783554121825501899569904696003473854906071114166853628833592816298668861878498797122272363627464921620613791152171259801813589820916060520987216915413304929203056606086039668714687088834290010552249542959386825510323177649468501009902103722121298673712538161436250185733731893024210153128279573298030122736005862060685207983315702828762821857766258331676767895513355372368513999175754616048033853248781742551078059568018208237648945297410652733350391734301720983260573490013790152368377697578081614612153049786236581632780998816860146295203300501353259351067158801029456195756726190052055369219018325138151667169626448298902700875014326824224242458475841143670398282486093890293593741849354679530483214527731338207507335782798822565543267764047386171368192072984507049414488454281290491997105168700168825668506048192955296879538525927649695632111592635208355185331973406931146952709055187530578229755623322542745726118796652773619840164075202071261158399141459923080751331007449234317458306494131427932884621507414892551498901577454820236102742522274596867600501380825911772311363110286193571420025482792260740442358298160063790206497375822827267897519593175097511246040865957966548186134237903981472811465615913117282823361169047666150480051582307590093388468173033214597739197313278711692057750723162746285115829283883851357592758668763441040464431943415693741237217143087364423563526325310606753467279980836459153017985140367118318234044214115446417535487401842693425722191258273283770596535760974715731059015110834235095822635912768066101657059215976701760929120692376773823867435862493694388688875921408762136604860484278545980577532877086990463693521902599243887606951231681048081976737812313088434936016526492182293649025583908300984634230756708359167230491867195604371231043879708310665093707086967864171579166081930107756549304614522686938189513225039244321865892021141913912528261555743573896906530390756556213305644787972363009420127925258092290706465507918338408334557439158058888843718794850562779579142165400338629438482390055848546968217102597291899788789415801282415939498056274272513547398458003819743836122292373270557193464548532421898045074573074608294694824509754239732817231982480645446235256985462962598021877397120138252190720944383529542488964840832778136757978810604721668877721718865550540533098154761377892641538997266512065807350245898906029085560367416186622944687635091073845449756423373013339371368299693766148089057991021619484868742874012287091338755570880025395837312113740953159710428872415439975380356967572616871217678388341420525214324492811242903965061004249098579172509461186905153616280603971470258709761191353030293699952503743665683597607487228093982185831230278095916126517346545176899767935320353095064774709787163950514788588493824018557394107583228239596304290256544655149744326213372880359438975339195851076741568855643046587622787473273443629660347786172795056236125561526253696770495890895068092815514492844261724044120647032715795878540454154129190990003011867488519653176078110959759649294668212470549513673806538361618552338358352072576557513357417737573672689043876949534615478943180585881093635928692476058557085785420575037110597671183017089791123310561396991112454443457384106348222776697588090968222947960719735473122391310086626106262964014266822849037534997637270998132243915819854374909282812411787640629154119134550345257802771609541462708279562747787920359502810589676871519997981894114503692087564166223136536492084356257881022801965833139892737750182389197652779205811431167794676996432271135155026451210063133127281188075617601509144368426202071554512789431970327129909038899732809214196788192258709958987430334012052265909855387849529245882925570081852878503556448834679307369198503631271538171124317051003573839571303691735569059709360535941744789455760642138371427431882210936795793495918294681789506594292266453112039247994891651780434761663166504735245212581813178619037881002201355279126359713320213695481072707563017681319417590470474129044398874553718552102591249456287434560072041006362146085848466302448479162440889564511705690598108995212060760887984212999067531417064099126411438690816095563095661438978665770665902884823115564450134083913296626895782472011796753720352474906495718155396383520844634265696056525479674766116173734539560623185726216968319675695106342537118933976499864841477185615509185383170069378085883808363198098075218664216682386286680854881518073589486324146166269909638110041090790447580083766207329186144356729434301043276213456086993984109206050572356300458141744456414935902144079880692706040840627256285480540598691782183546596295045307961279327502398278757686468521756169988341409050846605240530057604028295416590224122264128968656265160645057140617626606896664277571744882634713688546708676935710869230098351661934971089356324824161673705366976312920504763037195861654145509050758312693280976692574237113252600574180608187411563834514978822746457155342647657867086014183398979210874865887282837163283527159256266413338015792546753538877250597045437398585513115818340231313351296371226569223333936515921018604670924543346306060173593663510167819291856809117867586529979994271422360475885503021937338339284450128427277305310586278564786059569783368787515620768763792045210909417623316313037040080104910949032098664650322358810301652795010449870917822519498830896642609495299103388506044922439272227056011956043625991859950196590710261790963779392918689255306933935122726469427764108830431063210601383944998122202299993109170268612748262552740610071730678791866149925434422223871792938671410993398057383392023520264315416609466719934837352584285109222963441529691338070231296787276529851917549674054489352712646818323411034836495362350652139285910765946717943227705218435776058630761678388187496843798091621908441072278557703573318919150825967040873917667551093406065857603945295354825768537059616880652782745170225141629312192240397748620247027262793671087097765401315956710724371318367355931255023789111266357130802829243263079240104324542443119048628548428629302767372280860838589695387432184162330585022337582382256007228890397491357481692740660475860007916566153185907280416057359044069328343159508279736825083436363334201207506725045923786762726007114932451370098500182233946210005993126480834034531410271718869372562611676080783069254666961863205281301074840204555947167865213815005466708878264286495242534420632524416223997165291458716287929266169351654847235166002049468933700660404448636701435592717839591685602754656401703875168873801177535904871149034325980769042659264057431265601604721766945154364266851714303158348721829141736230248205841536745979459883007350647883334146150978989160567084759406544484702464124930421764756535765470565465812600925610126532169671956852704115461412379291725754667402428505734017009920254003760479479905801460507671103792977331717120659807664817218559305346096729362140477721547269549478342016645418064819773713506477387042222947229523869569296621596688949731795372299519060945146844198103881828461078908929136860561055611385538170915968873714021755069719586902216106268790476777572422847201799627899591107095574675428849760937431441409609647726041892872984964625180197620330678653331145306441059333794252916984088385898479330342011369967629883667629755522296582761316032081945822354341673341216625993770611446721996683745243623190849008466574689215446792858100251022623094499719233662862032314405311691237054306989464634021363390077277918115406589849772366799066604510255416673055933598187664319741998870793819684804351598070969018607273917306758386227497816578230718711556268778139663249779853022621676473500489638214335211004288374577770509308134791402378721155302866669755146036197742521362721343232850536287173149913685842873659138633881076499321386794110927607125721516327658779304315565222146719222605637855114237187022082210451042531179188978977547541960616778958737507298441256297511557503040360327356436295337802509888222556169635433782283108592286909596217737816067236652461992584673427561828230901212676133309284357761262689398405311592084816594863238093389961358455232701776394499846520753791449586000505733408097973856541339344362449215743161792473931099273993583205243067266237653330651161288255573406381999403309475991349691590392320187328506170205718805558570278189155394303323714192454844710792465307663188122958266372731368990177822256759478010530840305611354624839287126116262930854204765040705299317442449055807721777566582070168985264031999862953688820955698508986854034983393359476135916176179548017877224480970658569432977188774099339814857719247887702969586273132005794639150122038587467426631722967460464281392354156316687401905605449890671630933274470037223672883562330285319339554576670176780813820197241302280620810605974608942890727866538668441042527750122875017713325799780517103294784301667109124695998365198366715648154830264162195936792268163844666621313219176649183852144138677142574962406975486071936758966550700205401458918324165511634299212151761688485820157033043249190857366141231345220762291133713785055144261870096715094361256146357871693003171246488721091447661426566151451361479203343697106931618721794449391988716800943031744676281745709421028174091242340642374156191982657817667456839275016357578242484077281613349409777132888041973430412957013230487435409831922863615806768106678319005966820954776454701147765513719979683047210432741209327127305467568396422765731278179038469242987478950878917956786018089817877306389474790419094068023645086188921159876582279386888661851762473692152336769297427377860996679277497364391569669257107705296022483232513013597042751928467023423713759292732999889843178040706856093216294008130641270923993237057440936282691404889062010851401740189564031953065810179887698940682008823563511192547381484009558105457026861386246910783218855173929798668446574535440286127977417343837104184994097238726630774585362390659298854553196593470799423879333395521292037959136640768772287106946462238563710310018193991359485151698748242567424319578457291642973300395864733403474064309966334963443010782613241917190211087799328994698612872284814412397540654182501288669249879078870777983117109871344714494879729318939759181164976714941995849240292421770644762726622058735280002473764135776178073427111380861640274770227679551841023908442526825983843034097316320141099700967554800180920130862729593048715395199189308526283387048825223649584302956392412306223951353371334024317438007085764658359036235899561214949611437599766833047378552404196702142631422001191455298571773300158350532030030100319075586328201469830241691182090953151303958414078720831802917158444043798921924509873487708837147368824211596328785565526534929644311171838616547072661062714000657219343206515674951429127275409634342074328825305068951599229760792869040931913967391475849140678835293934511199209643698768552915835221621944969378897427231439379604227552098236807037546470046163669499819602936669938327335329301499049538875510654987563314928075811770414753253222350235125349090593048598693980597549609721772788044009401469153532709509679895610568555540332632193385767696540071649740219967194091763141159501156500835169177511031624435347490142097515872497646901376729530270919592638407464606331756897243239224746149485532807327687267511695928899692263925697819234566306450527810309764483421497077226396578170523914278751168543335243583297538162417201800268653177241442588848748975708938099256069966376351881274706856906594824526802336365631485411478615562287501814203127464455998135841379254080965114993483854896471594284913471346403121045524061004351545838112122541852184252466221665226437739262881149570339132958696904454366159598110613031277767964450712241201794203058414722534393035405447964193721726290428586363489631344514198675917483529899542259230084875942160194671561027410833204205012792493890445943115892258007204372638203561240226820965113114105267812473784224367892132873756145030261789055779328911430097354685344471589539811845431891390035713452272609929558848458869393867814279389185687089865919117318135897550689384635243274416061570374222391120491124006567996151973200729651999986533272862633941291305266088325909341295870028896151771988688030209674936417204405767841094671299291600319091595000147294041754657675128671655169051487577586052139100738492070786927142406693407356339291693159592663451653157785740870676686368003339335995792006103682555311018545603076448809720270383989470155513759436637671742075898556245995098891212470939715103422412973276248935560444240225851104801679006573618735291330107239578748904048805311456992913548271648837650957567206918283055917798722987460561546699410621416564157738614894765517937757638310433687412301478671522736524203055155861615251842999024254857947443514051200171818328293893602714692272974106063247356772650379564119459800154154538509435007666028690928690217037262812112152403320166268096753344374120518421273943986084861717771956438388173162612425765616224922698316315103951791147560202115983238244301887229194631398480313095909114615888447290933743445490850411974183352192641618275544277075245648210510084270102735956065845003538768548992061686187504602316686629873653158107277394814261811032330656067437203788632416864786298091430925415861017007394247677160723734542889297715046031026578468284610046525546737657803290612127974168817368187101131300083602533471621122297113559903955653475607653374432971594721225287980083066716861324279669229034485477840244532882461070296660944444002182775707831498002288011967410276089216560453180667216069878561634305665729882192095412796039976128392821696377635287430699810947417210889322823052542031079313271520913594499457991535571832204375691128669820771094833395671080609865224493720933398357959097244376118106734826912562778184298872049368595174646201684935817110394611209462194015267165401383514491933777677109840320457366515707792371695940345433338772959514660528461469434719454054666469885976107565388913393477030998434402481812642883501337894176551827874233379005682589097160029641767350425176332724243729033978271618317271291093953960528145425082952148276674382417784717653671793399211981936015673116030466700291968508028528965951537466044452830383194813133116457342586332403895984950986650900673213095750826406971398831977210679230596758489323690811349257220322761298709190090105027798831424986167994890599229026656749574259485740453788922509392446949661022298625309677101405403525101121818696100701490742651613872484213008123733752561041592059667303402475890412019972905746392892979784868407559855873143945401676064118276289338380732937981069282315789159443116911741090556110324159507075169233653247348074154614100580569214272417182152622252825782548918481276622534338960613179096895458535039554211776760658623939426301099239584873021384019343719136853114973452045088427603335241289097405788238424457947536933576366088444353898761977595935363473180434590642640929147917695697023929714030980835753698035988636168022179029452321967197015744500051155797099334700422956317944520878265674069102683164079649196669057992794689125986378709934898089256401960413743109574886227041788343148113176144109340640362809452280467253339973893760165276304205950831794831473552612999013968301301352935066337926899557209437999512052514939450251466262242210351436180312083083719370133638411767790677306291876884958064812449445410402499654255340119942682860220928420463711664689225404307828974248590074809061027851753931996085487900813566399079820852849901394940366071592995814851267329663750433071402644027993660875812169992842302888720323708833766488896265448942229260487291543449772144989170697286295961866604680528280743006443850015842982185832024441530655419651595767716566913146722887039650353171094704531643900767943314422576944809932624709683101728263197281965513160888017708403344699785977849093237812885316301936432235549142864106064979441088587039864990339458080191491690734283483807845303670807896431342403766138889378168554037407414907803825485235954208618032489200791718039980932371663292381875618553994559189873830496402024187632593524256411598177790915070930917327211877661559885720007984401616274151007438170270710136111371693614544571079444764989255984397150457907415347849816527677584285576330662589854947626318852087662837911967195825296501315406031963430889197561530789452379393922156924136424552999530486149418299023253163695919436413330301416468229653885125544558375614368771990411699361445565475840411104680022872422044857056906950345832867383289168634216242391377536843881971426732783579670939933559643935922804188267908213097854156448031456047811880340687308720362120999305950094733929631035930121827591453180185592818159382916340618194445880397606123106186031343772041471789259505435760118899578556884671819847642208580805713426570978257984112807760825883657283893748960388960890981162119684196171220778446117716429487935987600661281504788662178795869378689461906234239934309588150946572403880917840352102669429751233641823995114007499151451996279181768239492566570414889406174854110864881731205106503696084173648093563780969991440517825741619908143912598652880605966430572938410567763537729416016547523076268611930183590803503044451560176058045071405990306973511203225371874207100973574682310753244278215532187319368920603840729966312660718958024712499041295316790548073824906338287529018258549253802237682151914019928529682817285747361410331375659330621274703140245547779825762707319963356348181103213206090182621188761700942008873001991850107184750772506814738615529594179353126692268024852502359493184532133911599808586205215752802491167368527031783216445311532486882161285298444029848721714319794426464292791306387172909642621243753554422195719894359550195903213337544510117567622424411071209304067634364151345515891743553591640995605884310690373274033729598535119840302156431498051611080244067605150398646640408293987720438754100028831944926715354604690325073383042871696161692854855924968537167305900993740025543071801462342792608433868817996655216859207327952391263572305201732748445931156299711862078103644251559246320339674796582554809604232945976880925267287332776104694569001784499467521667383406874470646861664572850700635422805768640295293105745798230023894032705248910589161906270243885706834502610607509706985269614267944068750666005361640941801850664495074621411480731066690037080436981872787457374975333070236387605991957859447092043654917029517023158895916421142945902316323523965290768457525157293309838835824647730344463560022497609526649395467944144525918690369912829143864620796363813026323827657168770072225401040071395996848299298616850399572223200003796880672436631944232262801481530999145104342013332266486094699913532665910490719270475118702691312228707666520295784190177959189395211218777344866632618300086626261034857308054971016640100050561447818686988862714132872348700190481328719392080422705626808559008692352306139160172325641939080402233789084314016217039203964395026633599569903851615156410304576789087961180454101928365070925621866449081107806610830446932389369497972705273385669243942234990018884273444311408199394104407766153809152180402668152262098277748055236343627974746633883802877206897201781310990739213731937855180521331366535811331372449661452110710789028367264300311164027491524647479426844541953548010774269852702239711370326617164212354020890789814378453605358056177756090953777788142944166149904597318542746896344520303351952721910625213846383959173530132583571377152255739124893848751637558740810130676967481032951481625452171777662729836828047588684989995313759557636727386238588265410124555150528153125825793552002501364822010867948313505246578773430277901632516008847816600737492232889256869478376919184806424596700221226936646918706879107696213709334833290842136053394063126535885932374213302657308978224695871758012560782619690730392134313773891908700204586224086440951231107546909628345612116277317149808815959326200090479776132706750684515562413305913545253893100853369603741024350495530085566312691947152259639672420389158552757149344218600207015595963334500765128287086755346153348192168376732305172566439722145143065421236376374618221301159879195778144560746667528034257284312891715915888334615031419171856882551301608490979850268232617182789313477467327238391139030385758032892652551484956287046746314736060390698712796502395057576912291696128609547572658774164127053139905651356628613450338363474678494286162972633402236232069418405171477198939988753777930722830012394759143662084252988037688158400736082951376407220044986975607469086480457064889790884246273768119266690117088041192760123506785885206132505576543044017030399003596274058690134724108787661933182458604232504369984321074372147794139007447412861969265026095742620460850113324930846226331854504238145655222162540316569414411241293780007405429036927704295087917391569331558929515500697556195965976626751930772918360563407601913789766241168703835641031361231024732326229272655019994187663185010048498498829638236167180036584401054335680524747485871480079180799383809766156160796683258777907920704319960559284591533427100930814045142739577314946395906414885145076772963331777623080369936042523987491090098140299394549627712463196614180955463385310544335067640048466788533012706771487290556300008174838630406213071889002766369862002039751830198034467530896150494043972765162014398582409722471451685249826284411843707484544901274228099520871863414395681671562588388031609821249358708227531556872433769742044969681369363410081748864341765506052537224072291379500536425514365093942392845605982628376514086785956480388225765809580616590764199014936814163041390255476284688994658952182793325701629767423792352219466345369797683761996326433738205354540413565147659471072821856413881882637361424524488085828489709098553966215381781875045694919455970563885523433547552704004882037693817296470063354533544813428270840915768442778884654231387965408835923002916748141782004287746028327654115001053889298870159039169059699301384564071809297143265752798942326522326048143528335459094564280475946795586979184401008145830624600972852502764741967958221545099844318578917686611333827819745408333853087236895513221464905456854174141680466895680260396219066284747069511169186685320462892193286140235586305537810452937187415687415652499326134479051610141975706780686527154958076180360068396861073098829750827049561719202433506359001237910215420640410210985692813815823023374761546808933884728974062644812486193627576590907851890489224904162064265240910556946514116823243747550071451257817038972369700108864366465990112504770107133691235443831193487946346234912659814140529050458446599992070651388405070130784739517196442756006078654289218587020851065720265037840752326125152110942627479269408109689193052364828952105220372160813333107346858900392580756719028815923010376666932646493347728181118356274360401899633108858803829441448002284881896490717362674789080807548710017686482912013721952308828426504074831494104429617907692372335613039846403990330717284718391330651205311685213142535594659144738018635819286794953377981125466876368148346281420516313804648912220847864188846802741152686869306739291410327146532848156892239954159906997244392879301690452400429969309823218082102532541588282563997446526441388106121046945410567560033525599239462159722892635275339221413089335000578339409943113980039901324524612148932272682790007934379761684205009139263620342808991555906507677486371038420313090823176063422234841188572510362723232866087062537904699343963271465706680199618752410042845799399709287291126988543783790679782039546912006667927580771798484783366198425757754711632948412493790180048107416327010968946702038102436698367232755872155063200297515620726335978257902873685690632818637793056980193342572513634611740295682641754803849659851275551617158485238453781798176597361531210789255354048484011695011240565865690978350157471568237913144979648297077325817555384334505390197569789183901675778289091357355813778498379038924721426558901467971464368288831806588851607091100880535447156882803904300865015640754179045812581574409344027998438572485872657065271725669329052571367776052589171195671856947070507507888526931280513877420304261871750006934701453604084907232042689863873217937999462716570526778305803274866257291280336197310208893872643058192864385299838579719114998431626743491750445312779181752138553856961299229600331294436630087703496901002184494415895844373839685867620181962782535238128192814779838654675645474153754309956257210574956225636045311678229429940700009886608387521882284268107267879671851066503456751851950399305320076189819045713767430644512953866358164672256005663496390583421077046829862314204987967588964714839257598808218328414897058895779999515571733840695193678462670326260228371622965389211769328668051954372216922709135035870244134888474159105050388800044041806121871154466309969442404965288119929374367266685492617164349355158754689482970336546086550101630405047043485911458747090170464686660118703988568268571035154777081793056901154223220720043896890292133060477166116239764950473441913149849187253496117471177277585927778386673517260078192155778068948122627886333846182056398874877300235108048470690377888078418683923299775228904235627400575748367054256576184616722056518337177230108175245028161445471934248222865853578639875143159446558542104345730961294703042707754665152472235979357341414933937497663010095644232797146751808309936962577860222336686264848269735242328808948662157352448106232653993387952428259288715089225677602407040765372125920767838561971373789713070120016521722220327735376119916018361189283200639355084002680677674864224399084782897386371095169545822012814611229876731743614887933215320095256745204778714245393588534641734807404724653587134851158576820246391480778791997183739555883153685041153667151516074358882717188723992698203528297104803232920098040454642249719381645668063173275966881048232834088067924162947346679639361949996950107164816808417081023737787178631190700522110860289417798671789094813096169932354048485092364973095940789177066238413356468310935362725823754428834437816908964587335184738128895043747026323858966007647677505847178711798908705787542059279752455419232545355311087981572524216514033392422949201788166022054845658536616543035454765195045038594400977162093017150928580256325952814291984250731039251019563706307125423673576087650758541033696815263397502209323095008688434184393315413823683048740731651348303610912578719142694504538303926712960298746967530497959512256697200089567654596659507003243246913451507049154223711085425667140587210110577116529448578805854445263652761303093173894979180962260817639746402936205445203643271757905758454333969326116721648944255565304045276183119081828821025265938709925641744261360448224151306005775422380858970470046718256811637748545696003506561483189390405054820160198685414999976242195326082733698310505374846194965795188652445494024109778091211965943381742034478288069842742056527513042727418981369918917621160966591436967533430611794794692667237742841293670380523959664664791712482707047408351528961888623273782286053712956647106765451680789531306538779458142214400288078525478570298053349032839989037735872137458481105766736347942150689620063628120454686942381993372743852329319359142297051617797428297238850089465950998422874190684464976875221394271961573945115140414287624571832244739864252127054750223255115388895212054766973321234641631519532461197709203255118626506610522773258402857638633875974138839745434086419278358013302221025240507185079796839606010176010009770955806512707430254932578609038401968587330076499191647530234709978428581423454027854174334536883457539101976425158536317172170398644400783981178497858929904590666345241135321445797875329146269033310348370745783618739496643659847411699373358339104679653808684496004322085004833181333673671946970127961131500022064877462674200221221588927995930837104352936881414357092782349141682451748145621695943313516945922272149021072522703338947230884194250302530174741075711139082797261051090141473722194896014832549996110143621598666539068988978225048591962033654011671523874321122041499295482627148162762663643283623091591710131562662903803211304266874633026265333194841125701911931813601463231403115975789067163055342849198672526615286182418889990946571458877683071891762806412350807222031247779068610725280586199405025645605557616410143027415245372149326664526755201173603180727439095513773026705525324898032809544138439540352788828403635174533713484620047272907678758851520948397328109980314677543362479723789227751266666273362849268318652934273908688839151692961217483324383899757944616367733704761195447312456111541553765399193621959239817384105034957613472890037922204571141904751152872828974672438631029886883278547737975946987519930598792760239531992330152641350329523058529008073328221391081165726473510769616850975014958839546009196072446945136988326964918757811414565022444151219193309831417865378885034775073178516407305502764395219768044836459577716503175838334770090687018442222211844334641617047869295456599595818581315123555349162179164803250026831541300875475037369748613185689582917256617783225885631605703646518138683817747607087238444572525857813321578852565265208009867822745561812817007176151312552670564785867974683641074112087437908412592053287186820983869712815901012463786757267338110022181164948139615253057290175206615710690420404514287255708115630131495130013223285982320064101250015501349401655331609106561436813429693303689830645057396314790458460601853924685025963369386291665885616056164872795961181889625767587839556469964025431153625977536794779159978605618635241270883979172751783844816661207671499725205318273491551759993542276237353862710701144800966485438884944688393300924690406452171861049941450026795000093624125690890018768195121402750726904238012613638223065110390679764217315215258369630834528903731049544542689479251174207036262381434724785438275822660877732358442208112351913199475133369820851280932112526700377537416001198130048000957227419011761269455618562011566376795934522979365053688331244991708263434476129930882610931960100663474639862261621041147160738693399022054174500988496360781407147837311857065723392057266005991340550563208043427481391320176689982494766845791292224582399845961537305320281236809214537854404026895119500336421530056524523984938088954431542591205093683366492952262550372778890660543972611750190779095281632983791149691628067282194647472213818717074907186889943001777875515292870740534338150312448683618671809202397784540201091986524653710882975515409100550027722871702805844627100398170824639265332041595506967409590305289941326929120333633149621676948917897786399015021927644835765213373012070515731927828346601085398420019975189461281633579657597694551088103044879428286326993047889754243187604902356177079151896817097077669405263864970630228230308028352949080746559133325221483478475079990872316542132412147869458246522322496432208777357034420949407888095969649249222047256126779737309779315256003132116631851437375697342812759316532633473445221986602318823803032433664824983623426272440607999716980757780165870771339828576027801413367858329509166636478305239285844554449678490450188198643735982026375741264917605023712447749348733484986797404938929799092791288731129399951945902216178069142424064958561545592822827018138736362982793312877106123777886451671957125024374424717219607633026607263113393591954376492416053276613418600818922668264732344292817590019636478672315522347226466866534040835079255240784966238402823307734381964175128455429636981236131087525343568053906827298974666058436126159254258584576630481496342114311276263740223137208756254923887304039430873676598764798446764362805809381907434173761648682983830337135533780899027255024848940449946975081699352171699512676230283197590840542460045103099160386139437594312141994172589957511094378642000179224079144374184079011998478285527275393592729763966813832460970528215561464023449202587923874784841965953608622813454981950874850612562122716449827131670861193830128199861043008724963667449658979131715899216813740620297812121814013905098614893682686500581638734930859233422010679787165498724164536018538257524301714165367974472373386513746780245735074076286316910941054984783157355320065324587889298670004447259691438821402779236404684591854572359658043576918506596557222604363492814619471541139213772051514129090271610566499926986025210750209241849414581758964040602823490638143237778490531096757460146891025801710788352917646044741156056388281334884567054028903364216535301629408270414819230636577976681380004568941798392609066125588037563503714527417322512863456360660620083778424357583898062040838719821152248208013166079331619195252538084946920614627408875130340245751236261530884858964415468602232218049560905319828274578476501540700622492246178276379617649610412511097169042710086886362699512848135315933769480146794648318184059319149185609098319833519416899550340297690982986038302981580129629978994843131817528802995683740148038889823438069985669786584072811568496811490578445546853257141147816851822624247040592077372245174755797307566677339079195645433776093879709371148597209617618829905491203180493406069120549824168400715810305647357211767003592142823283088839106076180906394378826004257291631807499455280892587695303766945683398359236250072973214350532660664366370096716433143310685603207757569360897230070482569689500623071444498931600602103190470988580975558776440130691944925225140542070591421697115710368310112515775915457170903313722428308019602054049122343014158057388015754884774225223646469173468998936046709445515843127175269446659140367254466476130797164720982874997486018351638273442725493368369014768113196857021435863309342004920769227632342252576016336389498310839376329744412359313102028142658719507586699289771305195689535857175124587362464546726307880481148152254402256051779716609825807228299534635382177933540346457250247162511520127409614654473433811294745383622464809460967085552256328618785754509026512166457525382510317279081055223099975508709871353919334417440027641356527221201659514476190103552419181164634031640986623619882030614288621143123562839851230319904329033673719041358740765499821961061612700431359319038280309849803276018593335641401705631931915163117577236923178079397240445414232246137972739752907844926264530220980960718865267930904470856893415730846173530884395077177813348663901729099215074998089316556455020107987822272743187775462472294959182915643036600256022606617610909981326285533578676219757313089847560387862486272818285553560768494287203846996225006771017025395695128282190286310076748648251911660003943215221032321201707329074358786052902915889439998338993744819095169528754757968888228549178889812682642003955923636151893212209612545225257319811822212506950068239696331812413111459816617366494744109708233456679768556081923641433902980340429145616555553948519246197338831523223734943081417301291981106556825924291731356134170042208072832769077550301657657891385850393456590226159417703735781251386745004574530719540725075733357794130618068483139106582918214270749700076681549837961486604447586558861473193381223416449945661691579228013533603622971843724731571912161230069860648225882777076930368970007468360707696872702639482427971495032166638529131601310220114240382987507614458879249522233130200795735970633711688114201332551544176937131909346372975115148312518094856822845541633297217443539253139092525122165693496697214443844808998454911966986615444778423520603168029715479304049169467532178930841919841665013791613751989311134227798759270036588748070237279196251956820670672172614856352507355727389707295354584421057037447222198647143956884334354324581218337449699314071184402343348118138675923405831582579049194756549779832057890804138302812527469694538642099500999205801992870279967181978478240147539197121721763548121913270440773429981272433386407073983004123295039227845715982497237862427554469451643852480122122208014239629242440446070756792659201635603197323241183636389761519718223551401777500795919025263267552414183721996805877911752181210233426500439233820549561006502870738485585831377189975486562152696570929749301292637657393904848862641723787364262994619532457137451453896315609921637937256673348189143145315999911558084298304505909042475913135626689254332049359040717341609635338517064192049286069700037106462637315567947808643530888100836094482319267551402709636482259469466119811596111159777912976125146020583095035252058501174824776464641105131993469638032215372772316706910615216623210864411605046447877219877414535720501222531981934727652212359857275742417757209723178787264807358178146265895065859437514086687689884544319423816094667924691226871372858344494533172126966078318250378040927884764374907801326564104872761771804427489840116611540205712720861359113938203148343566018805260954925400677250107148501866148376399281368935206199582703838825992485465044926522850301654044584389655685754145072772645168874908206001926880115912203203570154934365287579223944992403697270005301152810634405046853057481306021281793341747048256970277902608057774531620587868166132226984792891642170035584729658423141203105483582013336173195803130439332424338338171396561696262204728895710214842190213944552932727680574806195161008340736933856360852623083500635790873613491242549829230957316459843846090201135105009275769389043365902817609874628166512180862139991998465367309797255333320759557360076464589335411715315468286444329039025685521402055765964705990002587383755716264275375814874764986964022027947299552099164709040590001735697823836180424677722009962626591684704318254251355414816946780445574426950764799562212564479831358745639420542113937170704412609631892116834971781870180871850767455125681474195593227883926847461810046215627756661873626231037412370490467273115738419578717117985296440381048120280442249462888667442483565203982364585745910982784698124633947100927634286905145411741488428235892008668227405325581002085999325944388009797132529340562252672325693723788677382593803849560404811300972075531606119998407452490699268894998370185380953635589272243695515500651036660395394150499138038837225761463126228110400076534052645089809258608585989690000541568685252938405944278895391603877460621449780623004799271932997757459237000999732666813156616299727460288500261203959157735161829086890340527388235366547965910919268987922387375003495081513679052602354622011039315271064227536362427847802824800943110833315298000843286497177206989319059115482857838617687570824911153316225322130692231265664250604762792696722925131235401721769148243603623283843224979133276528741706242586165541340048670235221030994678618710984667316323910038296431494234124396414523700963910889147041973512476933281125811099568444722495288805163875030508822644883503465735241350265754044206533830002659515005795555879240298468581479827871559406866035916498749667574768737495898110450687803085157028485228600527563643437484937899388474438992973962864715288905734384491073176264566307530422610183608304881910671871802238548304595408179517069313620161185329370894795450526769960341544604119655773388042704161922002036578155651570941740497905130793319553677091464109623007016514264445521423407445581715357985996149754782645558285446557295101328533831678339357744016359440784631489457702732811105376085581874728607176739293339691010282499855608439767451505303325254825106848456254413108802305080812563777655987962352077748479711352883361305712588780732163414684963876861731463464001900986578349354287426909931970318783144999261699526961443871641177220021347112653809278351766246393076671232821139585370125572111185447795596657684000469127866912235837806387251313277178355182277442328441436932315111648869413620836115763371164439472203198624099749553741197834065027774678474967741786701126337134270883348645240563926700655441495549617620815110200576972934230001972644166137173689342639218229799756431208841830649156937930191883825063573197083281926547577102543923346435620909059554796702201339708303410215278928793273545465179965026536901875734165782186061038664523903460800304876972607559335565363249973069318267334196631342761056232789387161032915589702979346848217981238362885786508818730798802264123835659356252084578849463310541192459649845231705241046720826665781231552014671785438460461433170872784784205241126488196762484934817915950337005520000687015343788828312959838320761555291041664858578523414333950582168736819349821947000775691488604562394935690639157593362093918075840784621904557508277678750155718639932878696836227203319408480248825483843734310166247161171877895690176506550431867515557649281683965011978200422490030261958068053978569180628082940367902681819946701894154359393699376772311428104460352697859848824974014624182988998121742344643466244415585072929530742617702982033228552437481429216282819837572612544212684245190754859765543408434899221483719003049165987724537147036195154716050560105357250567125749070371574037641835955759802578164285004961817859342643267449013814132193981456385569686413359892688161804821788953476084933124207793512144725255343214711284531450263691140612542022534990369649863462102969613723762087831901061381142513799635884587778679511244813049153894924966788062097421937835894937086336493609286639138008796235749986897245825238995129220249090854991279131194041175540272614153322696808365837999064217144135307776749252440695155872981671579284921809501457090317434986344636582372765577568503847335947121210601649936656184301827204695241093517561127582386492201844835229285933833024714464554372165558168457199930675710721786209699193385833352863825831769631999223490681218941931072093192427763807357176926927014031022556892789895922475677847034641439431932822301688471648640228869953534858859091682964111851470623168554701484493244595433414461681825576536866378645460266412943770438997770870340770267103910260061316384253132501105012891908607048490189864243236391673027933297535489980280866745589811143685574942060559021095637533376143476289427054909265540622757661304676547175018040419078138712049463904121914537821824387399486136142819281478561760809126151036984130442124815616562731225605066750606410994839660063993728038307704391379860071560031480213481300583673105086364957993950108352834295344377119569416722287795561872817634146202810904631001585252713635205730014000413038049367080340943896433110597035700070042429454419338878917488163361139016164668126921220304186459534905055797368685429011051228460135289935835526147047519267855803105612975241738483101406133138454141490521346545135808817801335427842316457927058199969093909933019767585441318204781418100053143496272290165722653185293455992415767325023599582777411543574237927421246830904913391785954216958423430838202912433830751490124525684655203348087188205185532788368695150832007905131537489391753628146396401729930630392048884857329319215529401990270100351841845133255066653748843101575343138546239345754015527028583887396298478627769131385463133344466869236792668209200919442202983044811767783663803263098945162184551785198154729394252721081661712486573816435099401777288172945539948344544726835541093060451188169680903317067454454067156402888075149314271106775978375956440157532078658780292648525877967799895749899396734905216453723376968221313712977537009253653726739394423204108173749260680731368487765787474878063060004946794669727397413496332879042745807120031373616399931850609810605983667165468613814518569976936684078411071845179835953616053165504132072820842552078193008139258530385041025152201201721118375729408929978087488223323265657843101663855982870545187389272765945315783938854296419124549224417407426281331033825633999534078943770085512368557308138890526939434292304348618378145484427958636427380154417584090407869440939038552891739633917292238347926385416028534677991672060008465346059269666367165593477437064096933206256626839972759767327013919381608605381286115085310400163812246010651129240331335478764943807616793323141554137793093294553618644133380283522818419590214980456579114303283552925598599133629956385087611680351532316806361507705889136943160023042223526321549860871540053721542500061199769402513381638327420412685103308596736218865137455848229349693614089946228435493541192304536155592589050501627712772815950098897824468280454239531434695609426598129275068940141950207021462855073515972001697816212298741560505117652491109643501475699170350253041156883215537093948939017131360660056186518140862521760776441121739098207337758991667181254512150583421120865199184751323607111363745932579434586758875016360502766725049339023810327081441974100727235084483378486478519851893141246174879049847234788969221444127330100067977653789238964953845716023265009436522452252932102076333925478021610872459606213151457471017086627783811130946556944374771742964413435314789332679007680533002725226093468432456320560560705970019451071209755054910886246916043024350004262227363892863664436045684694408110340278224524401298079979081595820545101514189295809881984780234902394466489464438102331605959828026599986843556101651803795524302016598433875441002132426151876179798159156880132255003143174228251038883142730758928206706978696744368743013401952436496248146718264830519293531245652246894198279525007056219591091678689063309899889773084227930146927467741465096894707831949219950048132907336784635123557230445083472137477560114736161277714132136229466817183034916882551000890242985391201004104626439583568315021690625484462860930508168110870323903705181023686439728276863656485904664321648389015208862504213342115745080916664191717370138387050590867155422780873628997395936124096703194972763440899583237093165250616107020586285416593164223985379218290074524487629176495177541082304134782137027790538658373241298201349843761761465317949540693074088444012294625457122558680689065323326136060917116778408794190415059090004599141434582058134789366880539133562105905835341130919654361309211188064091007031312832186187121958702254438846813622469268608784778684118374593654406121891005812270270413495432726004813711478642936733072281235568295808638882963031015216101227370804036498037800792799048551943103294077077432340225056235782822912747089393309348057158413393602179805711365501176512283606094948426048335506919030100931823240434343648137475232685533526888016694610714287192289779449402819668620620471864116580219370013601186634384126311704231160281892770788549648869261471182522732516989655271397389070015047491800765997556709561821110962838343723207159612455064633847547213379192159616951583188271708808985431004827144825234761326166449659330907818804853959485378004923874082549152870983499393646557162360129793104309705500217533959492111068670259727438652404908425351848918054658014801611983839084762058494398229641681983783166025650327841603218584875261846084064310578092955280722586451088899224908589033519633735727362765192640974760427282798956688570641297213862711456022165611618481307987801189601666835101031705940452346882978926858141626237361928962233327830059653742289566784456676942250134166723675838009411426279011833863763892314974984761337962056619791991730235192675522925729640892963751108414603164989805331691572432628492761120788932781282127765665008151220282850520284684714884598526717232693739357975358907128275692235597732519915659552640856219944112654599594395077473035609234874392812835226892450504056058359375081161073798332794123648385103178938595869629532846475433383477472876309537580940928707619759094819473262986903903627004759391495009722314294455633079695048618697968956039806520037519427394762039369719557399271887466765620106427910832661479765787617452891379062973009588621389325984235198415553250893383952979989042497875391855212383587603433485238012915210123245994459630372191424713124928348356388497239368131317818232698959944200193980926626947916124628553342111135794287972924161771169953337358632826484641361884238382240004944544783352418027266293070245028254813052379501768001414591236756027099866007017994481648941317087335148335298307586837279313175731389879392584262631551560873031059546895493214914840353236767752522777362105169081135366718918358226432096565221440606939195918297083873992268909761143943228045013756182312580675429688452198823128317408337039733382941770338619454950509878627697988252594892338730572861535227239348445153127188139448366207899220105390996747887982427081467759335599315703116594467949793232700213380343378463871045040445646771799856967039524997080255695026328103589852538585072380619086396464758706391615386687929397618787387376581992308312271288173182564477272776332292729949904143983306942680830247246221863238216025893171777021269092256948530732992294731333162910459140780653581266995947702988667825817996558280026073789765552926079673362144676676164416882766907650218743598911639718424427182520077132524725198678599141664196939329990473068033999703620549140135333942785051255213826569416844329358234416822756831253112867206621038774894716276807493566778653746495858864897722323863408434946051100602216264689176699751133862330812589385596636120770834367914085751041936032425928990056132991383098227282066100046708287878244507389271953083635013918525062180732581597527187658688572497890638842708711059252793582322945304822961782587922838657269837431518933983723387464351251171953361457951209985793224129133248288637225591481275697599046522668742926913997696655642105831620188245976846990459080680232172887203683545760430936225323096780742657582124137648273133307311877713446916487526211780931057997650212336869756275799271812234802819504824449779788324528061102777506036135821917861079460934035802132102364879839370187838828640948695578205769892117318224109956830355598744047887199063971332361515514694859453516332741115219853993962186944137892049058585112372929391999280661260047179758566882679281714884051086894586272326433005915223734045484154682714319614819658348099947217998683307564948663848632263168195675909819443614439316691990774181370026957110013328414807939258134918586104013490436206549894364974841970034776338415079477165300697669200708945740645694873909066059335937153262481691750095846285919249699745946335910681578137545723756134455134012222475512525442866548024401780763352669660273905826802430708309885623600806110616441194778763550307370930929416943571678279070065858723499907389539676664916544761453632251366302433552845192055929631237626825721544069363279931921107633145823352296237724106492905771857794247920629815800987608592055495745641352940993607506132998747222897208125145555494054281975117119142869859191816278807039446610563418910863444082922040464318977601942919843239436196473729009268119482439623576990888269379875729739456192542012342979337290487975765239147758589610625457076543681166443148536609464453354330642559802631136338174563481732495602131085376351418206381918921928195293656115949359700043222288995337837446641465824663389810040167538696037574919053598888733563185787202219296109512388636305757185549043840884707053881573642699982147311137994468589256232958560609734255075881494426958394107633686003105868527415229804764037290361759000608998809643647010558312240518896404520754488862002623679889908183489500680343650694910990911766716284716607389128067942316517671477617073914499305388103389704249866513548138546559319327610861314236463875053081236244595965999925982381455831341840228838562184879638735616158710095371489371043915436645120079825639137107545909542210258094683947521536065457219066642408068215273101880523492505023010957987152521227323917390508330036522784709862355590504614293704799641389068762810374008222797063813789378862595801967967738874235571028250191580363233008055705115949092418433438364953619582107180656077948920887513953318806509683199364272309499637961037833943897430365616724961736363780540395007844906626849997761446410220464987007161870005777383132527893197829071996653433309147188819066882100543468075187361165407303151525424905361318681827483370083517171294164088264437512009423327792822202971213911358489411575888331911401080290929638350417959063466567424882545235790014679743779574320009955548315734377578320188944113707053342534016796192767434627265699768772279875879714408204903940733114888486281991324639496254382754420205159530724706214687510572255495369757460497425472124325672868390715944136286920191036993845890620556487165359551094203965657371167908632253967803596068899789124845449778621093480311260333085750557779710066803662067393815921810463519107060038595975227919735723299611433209054868103181177941735026879635201751863158008024082310940790778020067287299456007510787758841358888725307806701331985010856591350209539995896705862788928822695436170221022516514429709144092586371229800825518075977218532227168905328541536519688359625207955850732584543127216296144565874377186815459496470907170127677622520657358037366870058867979930765935592913105190982675647331504614140020241655949075696306287005124914804383508190794060397447617748921192559354743590280846193512318981813694422223403406299702193662463396829145222802757025444447928266842040775577107111335892475388817715001735478120861786332126599005401446034018722006673276093725702650051263943703963986353289778282749328621538689582004131752670138974907184041688548648840228072597197426337705791241557248122809431278463156525223595752135426742298166878478783035118527610371019930957175939104467308848621483993425843185347357962013219117682574857308355887943939598739313371869652715576405497417387053128565455362759423154749632282018998445568565909284655821462780633100021568284633092732923891739375050989238493206276774414609900742853342191294258753524304428656634443546546767428883711781140600993597430118412524923452137395227588666810789878778363034296500937572638867196421850521361053477348624061619233458497644617322526349514688356438124148961831769749281418624850229117703324838800599868268279869219876607827078069444095257412012709434539386753984514482307767416326635477993689919518691485721449641237254583054136094920773215989902021502769581983383211626792106610021565647456132555072620309904663917722334888715721682721766369039113810097134017273427656977223832026274027833734804697426605410336453703623975228094135100047823116653886506222079789257146877437657054888374550803921944939680774327696745104677879926803281929883956173993295989835275686596405746409743630945361842154722528259565389269201511358981393414452190178180994267541772231889831407615451524163805751070600959064377986958729449188169871377401050594057476037917293511797517186935751437924554414264568678234856925922763939509213173306888562082634768895739547011326176092040424163746673731366962939402549978693567712608980703008027837591315955480495166888645228287765922606202592016267267043219384495862134280162549033463974783590062849929201333089361663528694105622156348004984554532555628566167897469388467377144191007535930418725687470567739904570620461893518137634389881941725948588307514676901430761600482840860950828710741103868399659115902035505272601547561345944772284342843058059294297265412693178144391518584065649946285953338382514466234127910480589012196361996823567000053391838583960283125829673823354475486055406599200847150197643003340914650360321410311583171278712743997638737237309268471764609513738929695952439121711200376846079998769855564350729752793709009730717785517276363546819541693415170110623711084573882953194065670138691319555167809850503880240866892249300399260213016554261639542176815825351508181686969641830649080957271197289407366969509297640468616435443615526069253934455212811298723439229101752386118834568955746686963179769156674772302457710656571034766791945409826120283358938479535483326110910262008071106581624377990171991248339680162088498068480770400084638915002400349878774490986187988554219051820805928004292131486314296616603993420937034061563334709387125221065312000090322664431202830000345456232998355016884059544670046519005894357529986052365777106559474212926898496348240365303534977101586623366207324643167332954367056519935957822821639087186577523279960344803106904197162955423283675932101424296394646083552025829430575851197650443747719546478549491715844702072070039149228448293904845183868382752937672314960887291442605360704399031596335475457849598664300880907250193978166995644445795819723421332009346581167216168777442641526832692065891681491205406466685698215749228772228874746385176412601470146760770518790875471656038638056114969564496777174388307975887645497917878419708070229238900007728227242763297442841434680263155510340212959237876465272351243629594261435554092804593302104576776846294335656921372386004858262045856204200361203015696580508676425061727190092441385242834461924037595047435368651568824830366893971814726883756898449707754336642095791395482634256400430266963545016892741760664616289887707711529929238874453837838781916148374273218753737236568841757620101804672915163050712485708491977860976418607626277563612840344795495058127066148638894186408601243821218036675333793424036622394040744332865645317199239438250303742692462112205296742184395168137115704875607207047711704041958335884687567664334364374134477233670062938553853892822216965492978885347602590328265625031732959161042549915343154751267458668133250824338819506551147500981047055410866294105726058225831673051028663523992844973215797648267854469514131754922795315342020787112270384081466746426811600273867035827013504168251548899967938155655238422201013244002308986444889936129811089728446553707930531395493940397158299655835592481495637581066683104392944002049588760788137248338393035591828098218711242539571208802539997076024806405044329665025364914374228207912507475675000021174481715845958728122486907043723226863624954209230582527536034747051114666639706904944602877586446661458378414363859089086206456052514473919577473749209930852618182401251162571804493009491019207598754161292870348994695425436644637223876373379490021467260079836736610211871025260058674213828394281721227410009829001505671944422870146103420954068612651542141656506446908472633484814373787556132018039039058293145593997781537122685365474959815764235889463973654566343911540918595504934857186497535700839728466160328472254867470179396146476253351514375722845751901523877762539551995461655516704000334335441933784104803071950870360675377737973782480143040177143476234273207756849387716632638344376131794100497171350786591887376322798566641537460035885466354834216746273031325523937581434227230939449524087731535280977838692595144152968420919864331314313239001129530571131750770287765383543507750904199610877015231446294482559756875425957839537062422834726298168357749331820771712103584027231844872380211342928738797507517812680367722029098882912324548964798733858934659480356017403054007532912094227793202311270064721121166142787336217208921014678951784510744893923374372564479342545221071111636600326937739974443012420034748546620690152106440990359362243196563148625724971124344103613024461902579984391046549287862678543146260477057840396004248909586952161237735964317313004831235875569503700427356810772002234308209069626235716381395987289708940826754696303206235228153231353619719747180711018207979319456154824488325119470713570179800450035308563960384627996965039538663912373415415137382453021216262063679649265577168456446502492932414411927619599633058161944385370861781454816402604626050902122018762979494311517970775591094471322603501838618849919658611702994656004991337634868168948355631956689778074253118506006731357349600846084120950066606566832470018644216048450597507604361817965832839296564836817920908136529413956221944259266010568391296091324594571830227062088433897929756466868618434547524278631637715711438222633612000108909755753612170188741012719344020014655100293651493905727925049180345295158246363689808120844635701447926442122104407183497661887419557594022676816310112794551368761201142164289531252257851422746894059506557548373211509414477599653257910261553521385063715927866781789255820848034900606152572137444620763663053772458896375036503827125342743125316951542652697691332139960294713379638966787655021465134777045523799269502132467704697307962595671872145198153307878816754929185654167113056128047132947886295397738050829339385066265530229968604645277057870833695955922853207873849089604452642010646059071515848638450788445199043878421809173182592562797317035308833904466173247233636455242462951503312547840348638048747402460826759030362819712142102834282780819620624064211816634241044685150386744892390007252519462299962755979936476989888499422353513146420275520194730507005539441555275699925848689973167682756256118671901581763049946206775677736386267004417900726987243641820715449318824532926033230835086067291903782349417998086273924525067023523630489307420855313605606019918815030656637230743018190508656946969647825661089049044193653249402414431347914027775519297231446951413941457063950009144973060831339643814376700394932707410498469799179991100514342932283479071804497761104113006408103171102918931884219366031733327691125267720108361951844963810402978701866069326716611565072787519932976549087848023566257477158603379566799102937378083628846914412196991253219455968865636726180343289057031892046322127862677265680092077945620993795820268543649769333006242949222877418036771622606573177857747683019910881664527994064855861559883445746968959581969987187752963037654182646167104379368900652512020195057549258634337967369818103348399061777616689606409934313691063563826286905563212942922524453259150242941788755005804806971949119693249773396746736572005405945771942150849078109340823634281078438116969162639448605612881055789419111419822067189891791157994110150659226956941714326743055790940832656823405928438976735039729158999686610576449783719729100656299984576299220546833057665128706594680425895809367473344798412225435776810299694983120585809711549137272505067605064082136332369683654059518802064439216989174633998846106377477931292845828547641853584711685188166083721050317758383982641743386095855967717573173934100167312805849913994041988693643944402178688195664546870439721479918796253732519647619160376149560649136678048433637200233767914794687543538851247630853068228448906550779615780763134314317153831270898210390072864115724297405076569235726345122584592259419452346505715342625319706520068790355419986906762146756192310930119656946481399417434496428259143605586323142718551350814298497652165205693618587518989539095743622245883471669568727039061717331798370237893918723502507880977360910502887837560176437032273737757519154700582170762587463583031105297579768486466600701202123519678845217682762622779777469005696285136515350293463274597057026759753888330197804645791020617051418563297862687892590678206340845826162600247466749311335427379116441137458490582238529479824152363798456197135992291131556491906473793797457388428046680378724550845407065243907842353812842009722270035609802002531296914986516788833107998996269879177519617091363791381973455386956940097869362081057717821975960912574232616321520468096016042480922066998652688463638488356122625052480211804893947869351470621331795984700401470785679967043136309962600388558277114080614382536031945092440327923955956249091148514157250596187667769863667761859197626155982666294815651949380960088243329358161136457155331049864742599193493843318312243214845591195005533935909043950692110091426616163278417023358491484469576360164876198779226185973539686309357606389241314482398979859275857665916414592220432729322657780333677837271610519192557930511452728983768778626559130497085743329230614659653966129139437350922788823902417977085700757458574585810805912844036221327086540759239721508694112861421096441469002676449317583352315949434673519016181677268823317091539898662948718964599829657620453400730478247292497684691817204265576415135586870788252373668648554379830713210996623553146422362895943194816609339120901159454359902674915750264324316793780628019780087287006630629144201590565025958820252306346944253265580552670280261464619966729209231722642191051101894271069376996279227040442761405105033810603482796906450845207435711375237378367955518013364267224437290805080613000485529333646693685060071428527648851601976814968281164251564192849659502962454477911120025353986658551383907410233519300161815020891938838468593924731887810288034029692534690704609151378571470660842841989246174834649056910790603094654190228512835169188991206193805450733137426701917778766349255002714241959223679112381846074085879751587122117529041155337609453522176935016256430886709669615914578157723407054684367081194682007039418922040460386774097611243379422182575288514669026332609875690697881327843521831364524041452704383213107562336491090164503885277779976372818469792487031331075293307342398682622918391182166196338803545959251184166048729233910974000315711924067096588507353345583426226724206358612656407433062949716582906618648956352412950911636004696046042665757108954190601713739261755836865257102128332845304866249999331415173427684225897407966562836505497191894479943567393309867242815637273911174666364670082234654995427542233526781671447853176727703082214794635713515201586903106323043663805901381303130900428063147357902734059543501655356063061809082152904351097597249934350654999813741861221475207303738351771398039714671992636434584503201525362534498089685263203660989854718551195136103146319361329671028253323414289322477876523666264297671206400756463887452624408311208358982604692432515484507745000284850851095254637194531339474627771325775626903321434808631653892329337071049342885379428516124281172231554828076243181000532951931022591167022356792539515450536324906183057502135988059602810482909881369458259846579343476897128967488882670097475301096305016294142408676496088132256145235597230784400159384199807728476427299484013352268052156849532663465785684969348231919840377797861145808635793218621999483909175635290637633473797054909457795221683970993356562025812692646819908552538830309056178263578766131678426103274971832261914042087444080299320608890846967053989706785301067101432533176348656958930480926490847011351080479753012898792118255702008074268200955889105362765666725406775726623861797160787694183944976496895839444577464793677310938235773510300875572232903618563783354790911501132868792381412724480460284037593559841454610806681350793760200227750681036973685235483483405804725431233627575031420068881610453600696839656739057403127548011752630242647324603303651228817240552268643248102358202302765277322275776465221119086926473661817160444826454728087932364902753718378277557515863362167605492000551815021896768117452701782002112703237182314483934001443274569204952948634913948794376900461873846009890536730414779723073560200197796427346494633058706573173712565984129365736606884134228575152764176450713692519582639944294815579625407870088020591555863230658400438039368997570311611675005150659968075268662913441599310128454841260906690471240412632777675926641246125898471202425430926870340249228960749131192238188047144722745353292584861354959331571277730797208411643569251822055963734291010427970274353410427867085896976869127743850736540168458371167947784573226721764675577790188239696031195977438843712329377085234789180633572797519077191340616500982273751848468945360786717700686694405916170448388740491511290745654668090304911072839878918530566845810040520286297494036768856317866383387896190181674698497891315388121357315344153694312591249333945656348362915467827020687601383705181379086250472148781955983351563380277102095928229165956770970310866179196759139406784182241069494738528059071004930497135134330519956049027243206535628665700398257451316673748741150386468116794931346385665661991688614843817093222305122298537200703840803117192186193434338454636402960251448998454042076918702198627641420370697431178195474125130148562186543522242478502987467701500462907522104815710630363540114942673566105851806085557219375046880066045528692737070036488120322121869440728864620828038325902433498299362088387338607701156340103598302613765761835251327609658254260156029938401929692779722353315965415654933005287813276836000356672725736526923473875377552094290407744167597201478047627565285195205304943105608690831886924191643923467578594187842324737250431138115693735797324512018644654370018964327229874809542498363721260362383903090774242055797438026546146093312015884028762107894691370709532295939149574226190834254396609423845230509935795790499923696209206536952923539893275134387546168838860167789527778819034465976312564785159568937324843498395097303655551159235661695383128250594958977123296356160094798989881639096772883880196470989153587374166125071011195978992394842302239268046816473716539631119610682898087156148527651408715053382965705254455858569528573534289392538638202379406216222484467197868864956034783244099262976698723768117835225597864752385610501950710957661853519569823676542801714708619657803491465753000350281706457091038566288451921611567054556171869220808508143325403955561101804155947367662836383591771698526880960295104950588350692609592250408197145737548733502403962161465250145388642120339159405891530197616199285864292189690349177377282730788048801819139706188491375071054091217611738333920539647149668944912284734624878435668204045812435119717202550522130788708360159137427609041590839799381491526465346713968992309576472827597353589466155309387669990214545773152143415272456100576276419760210777842752601876293797744701414367655589919357413257424503880488595665004686046167067152135708050306600066230190819080455080790913833102503907427645900586884075765281396519535088052794874181817939493311003475745833249568633816682094871184393156618194206542492094128985857960223843806792725363343672779886983472078444212151074967688662106397098532273042330992073385834477902299199890959940584485878321216892841054042299842169826321178762407721827802553105899544217263580302734675002559532659041470003283607143629734870562283051503108470480726663781326408114813109563527756444947987437954693499448541210724288562821652604637951468376646411006350525730437948402974287850164116185589920504811291640543907324321177761435676788483872424185580091711827513440480852333086307670515844461218891064027899561632694878588754727542097576727178737655975911842086932085656029260229494042377970988065234945816342028812168530503653449332989143218584625118555351090767994251662149094298748292466382103120437951491870714590566877623264368030820800697863117051216810499183879213528544138061574400739731635786453736751678985420997776806976776487831593386532700484419468551286595086161258786672180723750075032705805032679148508923997705566190248022099336863466595540340293984173564042436482303227340573782656680106891692521779320093391966240722031347412492743926365962575214872332673524963534888581540126566919544462747411544762023924362560235382032998789995633262760444994308314006094337220549404576254041263631199432090436803069028117740564559835544817654076116704697772034543419784186496789907265789452875115943914821287578283306921465191354149973193515361240372323957075695097801860289570699632098041314827488454191624842129047704687901522258002707461227971117991213205343287687252676038948172792677261825138657934259881468798962014248639545912827855721287321532442511021300169208271517255270274772512263569820141862161368657195747230733355438448812884296347544858997242841198892052027555787362020020341050271324662326527055402772127658081729859095273362033915671436482515020309353702389052141243916668596761082780278145864630939328823014208288976996981607372726276951325684424926435721745460865684122609291604841103832817090662560523256161118436897162831614062618005620601061973976754669123481703830766079492173613983520514718977696981951882937493287538921462139840389225387387248881433472434930518566310592644587369102098283409574024599118912588976369020601453673180277804670734964473108330465620209843399684742887649249766127853395560096253397847134539155710559974635643899687115046526675358191043935674632333681698086110492408596278455045442419226091416394940695245423465911331959258044759670768970254886263699962236269997066552883103893197619254183702237706386090187103948762019844074198060091016568023427492807362980642849552730274785396012189492667358823440640109211780317172403266683224060555611474245233296888556575704691056304802102136304480658782296893776885661066918585168508561442797882179133266033362589209428165860278588371397091691917822483241921444307361721471274585448972836395837662140879751603947456311698599629744533359644756337436002569721378589479512648280977474591661185522724592033675078423186187142638290531958244051281261451553268662764005750275399616520476683709725974433049915928831593752705262806099935487808342322055587518860396447144973204814034410349420467458848037673849173944705481818576954326699909177127308276345575323221814586686431591335038467916572494065768007677408089190360755660664695051750369786071731344144329957530817870837065466927845917859659337929230877281000284419962786672703166244934944938788619627556090957483062467820126178072047338260584443460947184838452769717553141936393625961423358250183179368653072107218733319696203036323879266169332839201373028023812436829264741352234019419543350090762883074030745310343339128885426360397090533233958876466012035084848053716512839749198136731747510675792154643139900938101296870507759940292133230266390976405299520744014988432081439165698046650691561365425792825095735690217254591044948639439783738047099581925538557769565068675802102925225968843589779498796219999891677264874080860404474736650030485623070486215447591057737798038455607639861223063873134251273935295906394394644519315145758405760965716740849524453702056257201074255430824605745657727322629246702770367340040394636100044457447711129078678172133716522428250619197210623013286547356584511218428553122361681019005105062856884340371971818383139059350489843436626293818657408585721937925176958129174572734521931705988657972958548698907134205160267441748164864652174593212192640317249186292500991010873273408695026763778283608012897326968970273759093309225527997418414148862889807049383802787566806451796277456761041385168597607369636999913617271894786945232306708087831260125327451663181372937981857275862951051004075043919869850178585558050030195876529556127527911914658290121721664712973567842290788520700713322476476078595713756815194236651258640156056027127261671253391891401812316362870397507959803347822088003206032680613019614212066900399474200901780893583487565996946436217676845707420175043669553169658441627433051647152232965885284007803835738109414226636286798511937783314571891855436940861077641004214776291164291709706918886461071476288270163570060032775917112877980770789842349818638946000452545401304570555719277501653101215119725737119649545576518371016225221948154473404009509872062377069114898494235869924237744752469186091217792719498812722624703036580065190527599986986512747244235012093818309526541642431793316755124085127914180702635827359566503538024648897498894385706772623616739515522695757442304006294097144481202355513523734522487495863003115258926899051550185000978390362766369202477955087570987467801750211303364134023281642002836080564279095009610720126147785168549190489481357773921037764561338576892454654524583977317871531506496337735587789841551056084257714338571120236678227777725314831237057088322355884282627360501116332876081539935734919705469773491795231179504606435196545327475229159700348495407404459721154026237545561323164923117286987955126990511143809706629554393405160640809079255235171862964279125669266103209754831824484805725398506821140057502592109281714039489118593730986886034381213280826991093635035271647190269186244878446148874374049600048048872671004447532282611836612846956656159558687098144845656384089749044461247061526169577343470578648563311498309259304422724498776061193337229459195914889940501660866658485616138493859583586914869299004802292456386650237257197639715629819859388970426875617641361819750270171683657363171334688583770975695536517850896328260350248684350305616180419577705998709002458359691227606455646653335534593206776145728735320979415105973040442732189083260125855867886717762148900343759844934627806458205770380285466591291321241059581031874334655796349556988345141807209237998426714515178947501809955350842044103975282110190846237039791781408639731805831286421317903944802432272499374325471882637775911097862650060676518921530212509441912934189068379152715300532516505224659762045370600284619204419076402198602312006061356711851167452695808829143609685232414874389471009560526990469566439041246810210463827782183382724830089184033554438457303349915542766793289342334041869609015211067934525969125193070809868431683153711480095824766860183006610800591838919755101011563890989000862893464142188810122459330362664913402405208527696750991189294583825145358376290518174089706437209751971767438766865859584615162755814677788661410149437516759014290045751856068392775663094092829766268425934206248978967014650060934787738146618663082795180312512329947391408074727884431303025497249979970759154147514233642010941338161915079697216163081322252405150931972654533750133874098508311783836923615594658773804437774872348087654008998355736055729197146067625717700814356401935085022268234645609074863198374813012387586226484729604818422362150627198668811673378878586651022169972518903731555683644537848185860865976260188758327633650171418417824922027731339924505986704341242861696254983503640774452409837751607259489866507375816064691951940591668754139833845045695577024430438115672974528384217668586263835709323626780971069815279104945929186054231066308100376605014816033339951083438949755932259788560227075662949962548636084049782254952954880073469326316185031503178478710151043394690848045000191379028075292613957025270035050725745258360873772750776533853085408020551715600122701970053393033102465478295984270043106735109054945348017510746116667587341190394593864665605185444937231318443444323304226720494162145289738858849303215635672417897377404959971351118408399170676617624843950054188663217024580821078200135388302322905558959242993869994668546643544572540061948965691407457393895103572772644432980903023695528542639442751262358376252399014283809792072762669039168120919533236022454706511727028342026838706588935008875503583335047474442927463819438599628054981530618111797132813764360285879608418476390391027358724306884991536882606246181611411748034085296557407314822554921549799536171087662172315122316464934230143045628926496062596784022315842243037185509379412031628924623499254354766301306364635004097987169827208164089807826673655098778702714591811041637418998510348259585622573358891244685079041696034748712454210889490916564144211644809321172435988928156062076554376044255349442294445711563476981916191637976945135336101595066896410199964643386292656493574236053410771372174551842765012777046941878560469590878365226834254175389573644872702370184306753159743116567378098305733412233084190286685029786268151162235770985277480657238881083145807982449525813644076190667525899854156905648411905038566046539568503149100816708892272275744649841067923875098197560407352456431717442808965826378743073826000634719425934096245890757080830774875349018004507402751974426476195134601551896263850210373840535657808710111950660647293384803807652726913831612736975207679142622153355099547291584667661354660874477181380215137731827041484412363725586084479143171307510736857382143785995575242400414538871436096167335454478275775868969706933385303375995332934167090918799548546374880983972643763804335480382401116758811277320346956754160358658650129659017665183287437630921044721551772086740993212183211850025096002897881840237294254151394245123009664897713213220487234017548092665588633034489611382947573244935080294664650086662339226434688717815757198910871617886465881970813023381503064169938110027920506646774159020509515818450600515112713044260639603134425251067601140231091329269925176014118464959835340210034524869745271701637672813613663940196203581995450260243855052796855169971052132704454353472635072627611464209776422445719306839385143888341029742813511960814722207626429433723958949860327677467776193821740189997112288692050176563634744198844818165197588900751008671197798920487414484126121657452050425689071946643113640111052513521437260230808294475697020978454529672408556173733819030178352703081744494470604191013456001264169170402313145013386461695484264187614761454274073880224693289305261683833247774047972459683722756200065017525439809146925429882183118489077935216510567689861617908788510012043618286614498714381613916699753611074478113906727485247462003408966175288734239893751993549243524656101316803052203875593586979712195752453059959687064080807930966900664223436317978002898070365791216482846517016757417841134735453862023277867963845382522423758821605175040265830978787624439063392190502895131071426201067163781828372060010655137161920398202696771099147814484301357093714667139100481327295797962785764152423029957115491137537570152196936160240911424128428597894059239063475707168197917052119635439741629548439161394544241687616474763469367695803274559385301413929102954048093982797411347783003470582504813617052669386522210020401524283602290695097248424099728598356420979114619846888913553262439253801245681981671979150059811198111558092705248772571163339709589735340402947024509020292255098789156532915896992094626262413607778834482833690830790775723052167142916821575277260806228131700104470192869618013664423654817852119266195622527951322649541039234601003885231531934000786874261759839034350599652479250213965953212292907809323633782934703612431476008895153370896009290437254870858431569322181358518614570302321915804759581696444263690901033299730586285456962056574384111026484221888705624994525495798876575578697825093903412058141979196254398501763345202238188559329698776211637576189675213486802967790252122087930038138681168160545438768832206970784306206322296709823934793808125421204951235733513638900770107540140213549576388036354071732596815262903476008428049550740868682373213347318771512388246216992491996369486498466426458629268507519201284418918006655709060710680413233466290054456061558568875850047191950114091028916579262807656656928254321511171387302031017856771650545503352628656138755606738562106960720997815911135769281282221417501803453534656677125423052639153574499987303631653047906498376199046428824219689169847905902588863369412521617302292128784317981073036617254524641780081142468611882658792268155947227265051140532552207876355137493353600421428958826199923685782355652346484795084229047969441836016593234404262568450510581201030391380374855870566917618743051246274145731992461219219926095557920497403671288098828527467675696808442288467720362180900228565437424221284508162518949564292736951020041343552688607995351234552216863386114793358851265557348101708700159378920664400767353584581830544871373668932812863434034596213195788072299543188818777060125767696359262051461227973274300675904697533765565687777052074166934273893969408318771601539351882827418906700469140845358180376298774651635468179167008747113585497534805020993799036518160564797884525511785518954369307320689596318113722155323188617335920207181024462036362032686614881318300741685321575811080535220631654658520640998519917478901790802741056463148959932792858102722176589187072910317267852221487622714926159051789473610026411904453140177382511969638340235672212762491693237726323261135860820926374925957677642251528582269093078585319483725190542953470509377621810777836609391715207056826428906814242253403990361851797132277216781655517719016223228814656988891674299548544895499261583695924888152937972243727363176776688492244461395794718774225974627302131711269431894581450611025798767810161196184132821050683837524949214582996910660455372495510537858973650322489123609399580702616902935733018390063973582794745739445936117564829162036012725479589979926379224941006452985333233815971647465095366341607406340306753948476342462276179208886495021018412220770608981386697029248967519395053244893248571015951720036211446349250683021125017760159415187203878391419480309952873222125636364666400772771653682215053680159612194036055990995954865912042963835758034730875797408194841718819781348644150992455190366140126530149892186849736471391939932129738656123712633031583846126885452614013604476517469264630847097326456400764289472079304641771543995924352487156879254427749427370338958363567387987590807279119126603589769580537444386532382892682757091625424225177336323873522925548877605424624091402464701033513054991274120971328924313233517069363866244339662842898037142812982008752580245461919501561392797595681476624361606603134922748932227600897064476022701263100037281130549589284387006725745280503439836551756876982209784974257113151133377797285960849459887808916845033506438870133185731941527924985193703982878186630773349411315175682361766948945244506934209534813226258893964098987546227769387783765706026816364285837216825604491099917212181738148851741925944548332997019143265549765646635200608346364817756698717800940264663803313377538818218375478379023223275208047906637523919034782829685839874937184684837421400250905109210428182497738796883192522622561934829464508629551147868337378731027393760568065306685252968199380913519613208046912705197718254369495142554881136620518930843630654338392041719373841800778916601678616662655842120385866827654076106895313311650539480928267153552090974341387863643707710376230659189346850579595104752911495592742903470310401216054471197424565725666266868649852504609179004327767355105170781189173164830917237403251631836478828605563986983294724336964750588824301007034878315627809823198353977532532941482640014409175141906442595025465907096653926259616860695777047530463959912070460603822810221254265261592027191054251158720483624133607646111878492497099721399525383280350457780897863083826857310140434431408152335178907260386104533011373278216232651030279195577551278904895006662819576294286766730955566100539065586550018012454942910266744481052320844294308473013234196781843619465430514758328876918098890518146732016304132646903084584567357519004745394266249645024051668334809500524995897226064000134547654661809328014995296127927956782317729791472828711271829773246568735608123142420541553667094074282711119585640885368494455652968713572144497014135497852615852799089901069273337079409211121305168558284539049192410378787858284444229712099520423769090037879081951409022183188767420260201504899825151578830218199712383411624882972188594431624458159374655942492846550077510894657584385069645373948728879403101858518675512313628650569032265030423248245935482012884255910821798467053457244553596391142769041781512720184497226214390990099370503867503389615373835285882489857468006820844389004613417267249218634238566405432286463074183018756745996185602556632229748550710648023075752154882140175318347011648171713519912774529842176644007634768830850217446886068401794285664879664182440086425565369831012928224259231536121721568968826665829165036196777646068674009968043110312747600176526465376466404190999371776645102753992665288572537698189268177099863669751238489778026018662717280207482809616838150543936629688164126576107482194332836313611861808272153963010860057777852598404378709445728946160127197732459625378007973873984566511351339730624198596772642867142442717924390573390220397921742137064516997958561815124293908042846152438773806110653081086412419122554181233117491025587822877038445207101548281440721377490591062998960741554260831921161810905592202517715842371785558877216466322355902766368411894073351015468496332525131065674467557601983063367035838695692529047840322392534777969163944621081854701121113742192634866371875908481190483230346006266223630798697875477669947451014066344935726347518810984672894393879583646476857066002775406121874879808802751330877272487717272810508688513990250800640523787056559350822593325057918753371612391109515184793319678281706600614597668710529621118175436317635839159104171658033523789709941695122607466154465890650311972836336518416135484679212321354733290304882369649478678165552527822752742198465431650933614119438988502158363548700770317896103825227530633780263223701396777947811924523576045802927405934285193515244591613085630860902613990270997185553410457880883314659255038782100318785298617337229492434642104249272242680956368162602936072207772511970403939819466954467087928958914793685563681659833190864230864775510935926939882315046323678407980103785435190964499827175985467653816449352591309878130433518738194975808809524031507072307038968173877541721687204356549202345235159792919449253498188650771106932064260578501367095618400322056677705290517160732991782251533989205575051443045532814698314517905101013864869634803379502398667566131920483650030794968143343487605712544311850259788402780811577708616508115971943872342187456270576276439644319276700783126531749147653984802066082209222657403147687983997956815886251482637025207707590710698417431162841879071821646032256520592582609966627998316019844928000223801077377986311670908025405947280418024179950582989611210059959875055234982605814394629748945431979475625196814767221691472771004079586743499745163429958137322611560666802841788616118896378037887843127032317727562949782989609076833629211519771152608226945290122155340882221318127039528718980524634054535879845202540863750172584131120219388809177171776697583408730532252197613822600010005674363676708315921651790075027407225529424622028506906945130996083664368833829911916205178512394639352853323349635660162725380434904570131462183350957522592393964866936613294843884558263519590384273127450931877534294132294572335555143948616984472670345716490573763646923187833261720326536084483943853351099320637090771149269206729722629961887733786952567750122422266986580614749739677793431159251455054176784528388692909527661040945124468449856379529955335354214708149490073635463067363703413619953708411818339120434091278091599453705479259959732815798859545278219973519121548787408991263061392728984653127325725219690598849126157124787465922549376389311852449058140278328923797332891253663495505506642805467643988568344394998457880672238535080813276753700990752777897060938125653269368990842448069409260450688779875118331330241142261383379069298701785541179455572121091402628658233289811434785706635949444951482801098250034464810478266663256513442018527838967542291173789793178860211237121942824091769838469870783997973593356660401409424957473086995614496352353641091776899537066702412460112991717783501761089476113111096487160090262610496663691709342607848555206243707981131711244508928329063822624468006928298733365691382561899362184298959497720912158361639468472764280336061893049987284131043945210085193799967741038147416306324231333719075624004822437239491764998719247943939548700623302026600778131425478199654655965691369622862709516506480327250327108658143783723093667007578599881012390364809245948470713729605896584194455159751457150312565846202076290836718197946963600269837157723027910926333591593355453570222274976176498372281511545173548461868041801884625406519565013693625866318863792241325772108386886396321160965835143232454004261201189086130589925916632171715157211992728670293081542539982388816527327128678542395061807897586530284995107666591146699017504767975685684777977130389770035199112572072113971783490530092107212584261361457793205322281963162755860782495435539617716595907502442397611542951287943320508613542416195953129929802503634046628226859682719663046419698665443292000846313810440998414191789308997761781630277958889960181177842313498488784718554452837911364862352488397117375967735957289037174805932706827570719312429134233201296415237885068248630251217511043422291538525261851917652792434692127148407037994367765544754864108547491826925110565835015114074397258690963453747747972650623181028353381102586329682806927820611705654258467074933884422893767145834963712889823529811020650641907949737323807790274897016867836021673814868369422611135830374944822144011462704705999139418994689565028031895214888010519565837258368198344629224187082636418192866939427203639853142220145260411292182623219178387790790863783856915179410735435485592462632875744307456618684265935574825722398638410818928754518479366257022882007338915196503849640638344900352656175335662646544142288271585483465123360716557743180027817435232766382513073723669235049934114377991904226183629739514479905549697788046083470746525872091274500450161250739500280304102932163723663581929550774490180933296865892132638820183281108569196623476770375652418993734891850751901582616149873875315276075455142023581220225976958541620665401302036163012898973192314429740234367958468083614824559265693198154417909079162293314419583982213968806123328556405023846311858304845916337332329701893030194067818642041081291362730194848777935009697059123889637056726882411064750551014135546887884429494433947586449755726955029305865194349730862327013490401874389958794779357465309024816598139824571977217300907824191248826123882035328466394268632970553218093878500697656827760172714019991645914153613088413105533239367087151193984633553834438503912819425736247556555733334029277985687328748553537500293960011538086380095660681049884005592570315344721531372286810349397031495465801059616200870782486067557657050436470121153951407470815832372822770708622911083118126785354137662454448614195166238287493813835525853145977825792452650488420894027704986884075514093016746315764054912904894057119321353503628506243503301642754725360803256698623093989836618308451493271720027040598243737146868470848747823563242877829639228032872583248279022192474266271515404425610177735562319775752322502622937196439700760614164248974663477326663919968098888070073932387878178479107992030309723382585059238798997622217818510440968653777830642277001428615664293695568864053415674195226387723519958324629465484812249014232836579677963458710307263346400143659887038309723926585847853719168642333427483260943952861163233543913719250839126915824150813833511819293943546102452524579996081262690100202831947608582298709665871346313537519028871232807344705448199167241425210962368477406984895675872642024432310804922813803024341329691782350997705153942951006604165158338525274680588723441682472640003988726576608532635005421357658101715335119084880021017123972613925858873942931291050418312512573918062699781983541263481998375330158811854090931013472943986814692703542526532776561545064937528119816305183490361197898332835290571451076091853348786294663492508523282398336077121815651283145206556368601903484172391355236420077381216773160909281861694974401830828880120153863181139157559863058268550073401909794429593818444919744669881058172952678595374190889231017367526071766274651786434657821153880047901952980692540843380128194275461633728524691646886884003778413003552040764633613327033293847476665684459903266533183325508523536103781664998688174946239603393807822808327231618133922856659857920424503809595407200345997025893999859690970308744042951814821462356757846897697348236466725382362148453627729701182808941560258509638210920216520121115445520453901500334731026429319708953281711411651092880542162020689016990613104008031335666650855659395125299570589957281901004028830373495271862562750006906862415801035369121185657841624846086230388551446505365812227151225334391445624374182855338523264233670887821467159204156766537316136257148682218214078486323976360299529112069247211603852154225392003157622154925614990279330454746621170366432288965611708962104457716980155947605918394691490168520294475461613969674376606159273169655002650523228307060279958664649350376543052066021938803326447597968414028041537465345485365786111180732590206843071328363522715730879921424521895028210260163579104811082771669556130492857959342634128743683483984070709926478863189206479361051230548812183195952534223111452544493408925548914847435325290592529309784086315008704203197913787253200000127062138286333208860040953669366874649983452654531906603078879604368451621922604889615248664333963472641268547218261892198472095526373629762913650503375820012535614707426364340588099499030502987018064318561520658518080627933073630610317197033595597926089427224578817527939698151115598798375977403670791459896634492203167865662450293759940525211695891725838656642691752232764544000627553869730729289341792584617485496492999460077829416107054911036498016981173325287775232303888764500233092861630563189320892853333688174718713041032998748645989474142070247806596682486898402713491955374812121350959033433420784724129423930962550110005108473648009435289951205123094304251063239587257592648913547449532230307211153135688061799181398963811431519674460172534978654120122760402589894914020253513223736657720516907760492098679380398138407598155506985527358345885672422239836315584559136253899750764521660827717560692363763504880774192109372309449746569896558134480344103167509210402143143167525846823764113523141017972052204603270993534434400413680306087155656735978620325887055616114894824689360316642415331258941093955962837378920159357834313305803912548823584461155227435071495960408224930286331164474594841127268105234036796153836501380799556584234497783867197926917508040500684852821771659109895235552921015763153376196742549874623350028637649259814506221160062786470849177161308633764699411227626852284765682570237107119846529525856272233191466756406411231238773612130077606590638751477829475382774882705856158160169087779084694134723869083746449897656833190552048453509585669504358257081041811565628625916336637973034727493360252406044930499676043035061488482874687829381329951703287781151516925369920405558536823049685007747507124889930246775107582051888958338767885792547199427418254336386011694020315171260029795274990217213810597066706900801470906880456167971116909414631442115622279001079246215007523764843304448924694272754402330603928656333257614270638337719084495973190431630047304398918538527019823193364849155452422154833371392445746592784509290454367462622373881735328530579336291496526380326406254140348932270637718516707887216818750583067985789125593083826985149097059576912421209776726934247138960591631713879608275035080719161631020113004797578860323293671631342653947924326933592230092983063713450577723038331647357167870843961504931314178312507567518512982499786021836846571797678826648874723176904746898479355423308981686757151179937767221322894384482233630328515027618992871479612049888082093458233301705809198430713076473430562179609326908433229636682275186689653429090802565938214220453943405840361386448009980155095253068230649655622225471274495547630215061959149630982398989323167959233714392250782687757656809022437184245051909149547269442147334806590243846112934248761623017763827871850335581162445648577994218393075919704819413181059852573057977805147659871598691786813179646464126709187647002920486535607908178104847904815394506206684805265388947574092047905526211832381249483596505737277604452802479680568562087743936946894625054914188071048754736431320738606175372033126176843542510844485036598202984367164232017320583554335600275531930235763775618020127430525433132773978132646858670996859387192695538419659240687328980167118901361741250262163165150326074573977400008786659243807683500486746995462490960192902696669695441344735376989645799831004776849327087549079768607593582770298153401462547007355576543452086254870607820032844705846336320179129974136656959746857071382800102496893815946461603890459183395113335083101125182035065042366286723355476485063583459740057704214664686767936986381359624857199698830058379798798287871689058905697852803756888800263771362459198823904903658886694199923477430367498321407313692252542067969780602975939373698479736756207272477500602371850576372766752032091402865031166634689846432007420915252614906905377821048717361113772809198957155738898761242911681773202143387419512469936239497049083242488005875552396054539639951546851916541291479181548048787139946928896622475459693430204138963547104181646131479846723934997510507296573889028777019656945577448376588223533149617949481153299151402282570324519366537150731232712323991834362754285986092670402983214145408185042550906294156618427869755829354125043407701276796110031377223698236094581300832550215364998592642013294749487456866285070035092873578429539757601758055640148729041327745035616182771115166199837831729207067275324472922846759316743182098981785385731867436611763336570852388104080865121222135894816980822424481959894896014611862393739468378458199799739235225732033139196761713553325922967631854269811130909982822294588735218529243993194487429926555223934304541644036981360987624798961088790200902887542930273139556380396676816521986606527837085441622782728774386741681983359963032705375746296840273082289274253790967998315156969714684116491849600718181845513004021060408671651755597463944891993453747753747396859099009196610549804063308428077324594030172656944298178577505147567144484984142396644810152117937456650877805427130853047692644160858392504346961104094282750388046711612276849875345096420557138927148378135954587843493210036107004464061182599606498869057764788636527108917846664945825759317664916763815741029374772898165709653706912014122074622204873108709263998369429977877436916013675946656836909207520532750794293716499861680189074676185767799632129223909144815544192919263649607129982386115454681666887099427747770365970321655834398115477401872976352249663577209229330460955280491799385172212143660693989582609353723724468962046605328551826944874449531255642604068245196006434572605866092331950216080468978916746071470001891907352982834483496401520920307145523363067980764678604065298826825929501585235706880581983245779642317474954471318530379584304070792730991797031007018864990620249860200250633629470415157105336622324786932907040421154739271214297703117691758323510105037246313793112075584841061403370152607491368124484110244330494321434331305197251648069229631673008161217540555493419147702719079060548265029816253928140547331815233989391472352107886306029634590506326958146469663898316511784454468068771858096183481202251605119223197194062498357717100935608287231397692132654547313919564213740592681733449154800495154832685373536278922396682502216628819564179671882432267811555407933742328250767479023860010390030239832041499665507615665167936945814620449990167751392035173276235275082536075935532010914909208725565836721023852626681342714761897845794089150341764829895651413757101990136658818455160368064642092550754259525566212146034140034012177219474624690892989929158964900704292321290395062560381559750247104313602618016767600558206929668263893921539999618313912268414820043039244199767118415676748285041988588703297033524613255858928414742274782961916323082619769981669035344173956120295961984272721756327030375783936440069246978398327919722553088889219486660355577032010090993395296153130045151414370554687791893432788450763495155129588541363641887784552448265523792852107283045513361045167881773722468750458398131408333443535175066895330959936997968142827639435055116687509610221321752481696351558379390896538545021516042640623531818671135918814124360172948241832284071339999274360176062809524822151453770692065914591067539254377061223784699065847310208605374279306344330587545340805758677067418477288655833668214527479195950103806740519554009703778371296635242511914507339453265453734609915167994762795025016181312567048616460915646213974582373762809578926758295540118864658124813480917915646521952091976710106957357884221484992592861631916185774391105766392151632517930531771531821712001918633309437211887334182509424843585285473707479420719365440728938159235753240494583073670777668650684966289380609545977758514362528659674029162746670934704080602737608668345389276381134129118676867958741307680586569311009564945876801667653972986193112138014336323868184784011979250375324286993821153686602282492284870122725804115936207218513180655508351762310820537800033506196505276605090425002557282602265146311704359861763927440860904171985118442614810119529836708531686012837164940163380387621965600397731815057034288205386245327642503207060694587427135061657575980313541414793533505009928616324888766660332928689074357104315777892076471466019679543897935926463681976648422281062670453301138777549676171208830673265150847296704258124213448164775621873759948404563586629613807785704586565338883412961382331563026904361341207352426988103645689574554618060386340652423982198859781210243399861586499752318024038845728791954757093420952806523994727583223317144734870831982347084664439647699548175170222713744269321877655572691836756156001516485935049039698851097772286422077407505349903323279436810033804545458189341399907133689453340038247778348170143823381185238745851359939164690288689294339727385856835017834176433808661185429166370966823222243194404189396153057331335179766255525119160797967198833330382931160707360314377128261563685730342444666573884916455582108672757956849232940255822909842196935142525384408270557884676566880772859201665727658769565964192496453897889272580887084507593816615881719540263873195522346861114790007857781923920612131211349448611454218108351396149106862735916816352819397763715803205430132963694920878804402537211342827289910954769827441634151419746309878279576734798186222534536983754835634273045344396593184721236459174786795273229830793211298469404048257350767360319894754724358742128597099061917848260120251745793118164664801087802169410179186734448999646891941642686380502509832894288309583478788549089456813097074405581826057724089638150063301729370642908941332263903864584877516324211358163452591020958443998957991868563185486441485889236953670475674334108753498554371570651575528664794704672242282955465637489329764204719688382320216531994196068491043969562416288734357535624409006103150631423131462178141409000881464704005722787965553885960093424581629389183025554223197074381151376818383815937154436065767744285814480627019049151040075667518341603607543748070921862353434738255538341088720681942458471834486126199052418420183873651971338512854752747021324988582519187312335113894886047674266782736081295457425435654870054001583838866655442085078950096252844164705279379598977348575957745385199774203073766788995450371674204031998109958044797187105792758407674087052710211115579884796867798462284714616612822204292546624443808622135749774339160916222524472763614693080461237546116740751479936353004609662668741802746033143999947698381305631863445494464590607472186384131780510895491068460380915027833226566459383575021919839872312834603306778646673446107032348517219873753116515507026847219115021031049164490516157614013422488740951735409209317567972542885200706492569191886677170962690851688493402058522445115661717236682929519280093368808195177780404816184870040877901740977498032961693213860091498504617956676946109124320054233903278676377055411377819178498763349231826800963064688633984362723506967916330686928888818481649596444605440263787445490243361843184919368919382794637572164054076557352092047547500247378031584856138019780209262498383197290264537241884150801204393651332104218318897900384097085223020011835929245488060954389793631223646427073851235734851876046542149863168460817073426023041707636801931790810329246135583130914197728543517222308549648132777619910749168185063402651302387431953626654454212703049942421385718501359105265679342976467876271968418028888260618728870501144817490983000798586934336920333772381547589365360046032507703944539427846311153726451766898720842717854626838328398035336070414002879428581932759891802389156996067755144286854574861703712955369387519365313362909645406460903370679626137371599585307606028339587858319729265626977289572402951273502430272993587063828871885932806570207014773814015699881942184867244122415821905074260511940028505080198577313996808445705087263469284559049270502491299990582997829716591911335454146456345070234208622928145820577677058892011398396676563959624147897821742615237968334197320406473294443372538570009890333982766266759773756476222510684056972455187238710448258683667970047487812326819060779357799174895216956389974155076645112737997958681769451646891030283978176254374830745106751481193543679821677379874774746907442821184756440369570024085714236326785650734436084902184499710259254938854489049034083530508593978256784293314327053703280128457195182014303742648083685372278543914217612523252210238177981740737951119665064724203885583749801307085326742337873558823699061141163456905521293893876135223320656582951058698996570891383134141101854862181648116004312974859176777633594609109947360261422708415730778298860555978652948762357057872902320869007446600905380411088272354883319039110226665107761496464709953792015021258336255640379029575024200553485052297356383613830860435513501711106869290053687442570582455201003637638925207345974239171447069811466542402002662198270399299452771667654437857425271590703254574117836869964255175966189954663193544807908444080729552267948637823627890459274150868662899132829567187484096209842660728427652779424542485825913246270280021120414689394744794686316351139260115688101006671769067023218536803218379298750215168402392754710923247594858826606630303827488253644487029308965567416977078930936413239339296292755948436713289768889693213526495372166279336469200280764005085092147305506029683898449248074448170360042498696043070252231501782571910541019149188516923834741947064607762716186643730849233363004140147692641407810501430474921091325957566454059953388370668403422657112558182971043528092246059559332360907025239029999264882131829083932821243806775485644106969421718208273561465087526340331378362207608005318736371641748284593750627429218015318491777561957045947488267669875219480128646614280114250396422820454123933167302208938497445553098390618114920983900472340604051461940521760167365353842570735384758121523912680944561131207480725654943363279080100892711215610180409009481496373568866615760066183581115240129195186523420810823438423340814820104555829785139066092660820908109445553289487369861322949437645405926588887210117326392126226008034631229365985661540479878406063887827320558953857125531873171731515577216888820448628765219481150363776813894979330411995128820246602880469361981417562334484836483589640236071517308169161556930158309620091645667433605202554287432855665285131189013002742103917628917569867422676377789544481350358040869685781421969764199150736507089851020194926119948675623404353949419634108021049152631038955400435494034085461872891893518692084223429767696269230677896829272322540421211302114542700426762503469497684017598185079518127374908359169571061389016179039003868863821198438428692949671728220969256840559879719620781952048721479916190684414823901803281000174292960281864792702096593035933301963371788798916485822306495721853889485939542029448162832853869983756997441116396970207706498273033188381013596030639388089817929158795868319100388914938965134762898962217605495480743998294873936175822134258956135416890202556263877065395889277649324147763751221545683672143629683473609465733406366926543112082431020834619036313980077008779248825849000826893982248563509557026529192305526521895351575481354158477218064638582364098314841841535479886039952262712040607704924336627304241231737356090695936730098471294177084467243463554451942618137756043319284254356085181477001879633211089279332632616024689792725024154709940095818474834986571692284451010728062008087016169148436303378976546974261147664696493470139543244630948760593942138669113930167694096598065028144855584947604589356898789747172649005704125680677313478931360166545788753318116220298704668224812477558085337711525189142822531113578513709967976923476263639495034477999642184781155653149610768587827984403674968681680167672179237063142394062710560591939007529902331777401608526868980375145810122996938291185531775413675432661024875898317510736558687794874496918517344813619446079261463074114240621518477896868677274304905597402442827102430576672175537747225292245075376224439971465409145389159933194086165045954173395921684578171080192498828012730918559183766321694349428034070827552206731546424039662351400032824837843932839280375983910463401420319951299360420728858915126891684959233772974255228337442651388982917980580004434982922138241352146683787628214809694674929130871835134035067908032677114497566243188550675354895672715363172565383996156547367082200594301867151406715709206425854329544388212864019592430296901682263681059175119350344563381615378576448471898281067354339174588850679971516963301243831382222887662100910703704042403708364889690651339312124281465202448605127231741402285375559705982702952568545673375522752961488586672703842019907924271865059036105489678323797895619970702722874517480325995172812168755189665245632171196493489681559834382071917894443832043037632110122033865958656922211083907510405289330496428064183998575234082349984578770134681143398413833828898566421581649734408637933591427330111626094656343487596978979354491336054240187466959656422336667403691391997830936526424215167204823848573766798574057799771131105773418501284312658718124643499746267381504946621369982847167783857279938751952880853441444616712601230990121134460645934367557882075298599064314606622411997476823377912567615405745852232793954703563596517228412686533382417894472464892599527562197404909811793714107567622962759571784898079822202086535426833263596676934411374178884400327416775200677310261179233096539549681578656624522308471933649115039767237080156018174281507129381070979204530092659783876818656939132013082899237928895979945799460344008383460611623677009224980875242032155606216195308437848284745420677496759110382146441894970796879079708166642384235079627842389107375041211035086610270834753682011878410177865708536570991007331321514819407044869862649299886805430876331351629941962722347507102850893063976479167790101084103805997636256731212412125961478164315642866016038161450464310176811674381553856042393816015258011237276944818785598053749801377745446318764852033591047831947086573846454043098982177823032991558205000346491113909418042340573435771162363321151655478986582984954254829656773732776207569112114987065719613521012183757481288044371898609977234468501989876326349791423258709274822351095344002950661133285439695604992768462567377211673284494279523631324208053260048277501017030144451560654901846006485797001228408017491546836258455703796215119778135581938015585600497844511318781445386225454985256331034871324102405994869349010419798878812827629687016938479346980118031781799299001819906965595623047739962657480250316386079749659891238362501563190595398662348846342523357587474034526387706534080286618126449447223539716769402452369391778035335770107408516426585514121526112509464814628004721468677503649582838153763045773412614483168634972565647358530873300178883039240920828664879967020317481392983083708899963920471890131009356117840049978254296901604514465526096790052426415857872294629039831350628083520870384466430795682089606915955626682690026428945528102493296210822648135490151435408673752801120678693260202432938164420838669902775812243475487367514939121654024847883492938050986906587751793581274219636879883894139779048670802191803374714451909062862576429280497132929201671206524654864045073973531767270850618804936790831739824831286240812152703529333643949464716276598562802365312427239066002378390347344046232250573382320284156442958826534947372538356655678397015126932826410259520705440722222494636091211699275470334287425623652104839041571438911456635092973089326021285460886919572239732727170171497085611998613051603108551339498473614981426898709735709256426824077638514023306674753830718494796710004831189069624963507712364451431314102521356899272244985355983364209913986873078095241793611594040485255968820429791213971903096183432335384352754116423765452626310238549714770653884725341602271463897157160920758299736099844941670598545215195011392628950923338121258273132358445249093154014092202835251982274203063246474940171308579225139085175120636686051127722987563068896632942260775365937086431514350126747591405783452343232669625404999874325430088548940924266073321577990463097173485136403244342709896754262153561150733950478989630384206360882835494489339228065514572526134694939123591862298196228867955147689437621952915722694247212723305515612514240996801953491787478100003488278370558001728943001109682273267786953056476576846011014344123657415831827428100800173139619245930553817479117912938802222421244496248067917940374928264128164867192738438873028095216002446143484081715794017752850224152882813378451476529210379092738040290754394011403056252907064581722971721092790962100142585177909356799403491484142116766309893580030832813971284264711030363910534328536186559759956613139862075635279024302708754122571113090304657497529629347846377438277325201755252583229775243373052208530933276622603522561365098568489772863991013424131239375004641293341618690395941296926536005166453909937615635994063459113174576730472379216007570920470549232696184489173902448492635933421009902942655750368375050951004536076785693049192089369909203592997221949719115270440933032704719763484555894142315575801325011917401534072836219760700432581657927175348625841903516796169241235533229793350831325626494482087342584383121871450480151477711111765255465272251581443768052411920394346517130339688789430630836975936267465099846995092736374495481753288802404203764253561367177994944284522109426633452865796085997836999313109379128900335508203614656885995795074457488397286588673030295737221307507639538082525453420217934796393806993312908311888059220685158893292584049537822063968521309827892557674886242940000551880607648083414294893217253038594221416327931713259488743393201191207953831210502981706899616414830172737858726537341799797129616301006504320926717714569355256914067347134363070375858437498069665694200591297560646381160604343210757802621532779640903661304241248785304371530881482450615185242353740462789323957976205818112894959816452820706025943147607744826653956137341569258918371220576166326251764860164017440794399384413979424915339798090597624452393162620994093497876943705880131007508452949964586630302634283315634111716535271999760764256359803101474553429288193442350395621909493566157474374548698656597129811050248727645835983223799998684343874948325553847535935566415071739875236472992100748933265959195196119451361453641796370608734692862555039248627442037363282017894595046326672593251324285766098741223681399761187848950417793363814883126764729074746411771591460234860772442130842135292421012299773651007710426736766796148341288812467232551846651988504828746890070211251828490806977418763920663047324284380086661545666532274814299040434875890998850580901879214178238566941027613993275472115529614561992800980568980097913028048112686408362666026029713676451510032623110523569134511735967053162252761008485716868641614813388415977746416693905783107244456784664936182524521023792959022592736318144742305824379111472920194222118924251283571713811554135740666709328720009940251970114218020818727219008650388826725993948637430459627825513220318511919788055116960879097613284294459986488173221791859961034408362824184859555741599683578110187425090252888359170886556539709041672834953418015937975564445868751992376950973463612688040406277512425477441359559573966174416626227085789077393648267807185845652879888970218149766294035889817688516120742721029382946955866393754011592129072646938402214418999351335546059749529270768737822035564767481858811612102232295499712988665031880172234016824205110868518990507135803079117099997401739095678815706721123340303264562109633936030590955342979352965929178917164168322848414597801547625360144483885319200828981377553401047249887170332816711202707774461376483277272843324916355648204116593957367746195651898592885375361300103867771190509013744484140317787420917280912916535970069893214635768059105417292326673361128223195994361984118671767749171809892432756579081337490376982767215066462742040334253536966452357739958159691555376378615350032349315324309323641258346642408095887741800086132809861695143255837953010553066190746627943658673538327988814142032906635453698659750604602988380963251051363828363221108893487834862426732904600333492079956381919010201915038315530596315268639282528511393936176062132693967050401677984041414593517207786122989149107457230782206605174732377639682008925653526044001073037127031130428454741587124492415524451297645092704165192586522626162855594652866477883090300372590100165373482578672487824975320811963910311631106007595631572935349809806031294691048126748696362232797512935766776897610794180446895750164588928931951825004090319476911515612942328067818003166506658348763721958743956139450858379625586540061919830114121134579390942954511301363785114511653614811445052793173493877719204787914545628550333035994775439971756382008588559473558102744670171512906157051364391128643039033915925870038914103936404478696385316534531155643780951378380386846514544733155323656508969877715390628095096357794940922795347903341116916684590323385642961978799710419121396072395437196929232536267051975884824415443150001488011148878154550713668033428352596009120123165170963871976656319882967841895965524637745956970575212519159839430296703691324079999662287720691683703519445989529903348647316651597407788014759545099042965111063413258982613603524380606375173341182457200578804712888931949384003830713535692757989829750137125621704698797030275349720541879348392986799099658234923156442653304249344109885017812029304723759820181467192159675926159593173760871873163429019697458387310265557632651996969038790734623657851197556305160288697958428592668139840369039403156584624156595709977364567521777310031371701223943912883600167294674485309640830791289924442026006609934634998563544078489037221749591808700789846487168466733291348465319109062596873699091032077202345339453072747343804372528105216351384339077790840676471924288722066247491175344507675287427838687244699611647988188767390003216283895341971768379509386405814728726719130107079529514467139210464932391627536741316322742560465449525949335400766561090675074436887450738477696315949882994200294598432834454818056876318731571976141131570725825636545146804314085892772871023952267708546983340136923964702037647770823128604669595439629513051698200196004353618620886079963790657468286188548101439054004823952953288372377130767096324838974997107174527447295894913248041883255742922920315871491635691264782532414850723401057212146921984153634235220717649336183040920319017546714517242098602485481269235477180689750791625574759755090446086026995978063301759975248813244389687328628884404696182620171174245992949264559987898627012322133216696656695575850522487094561893049678402490337557542379764652512680323331045445830359941730246531566481765952382481294337616646060122160448074011051318074145672284853190806889179268252075538312241809939306036913486944416842738411583600794413734048423202104862212008318940833607733344521963776914038111863568906875833646091251497050924585946869897755581438962497539917515949629357246164879342457628475713749035002622327859887643989504361315022501852505139058403962955044301744504987707137087336360533216564391769587804942599301676584533317409869478062535264074770942444655834731288367504906327176600162342873839715304336692850544065677205703999701426426775927838519960306127069491935385538526705100842205308463250887918767142506372411137120333061473663990622191439905961451653197880673452294810584266958006335097194858710210047597660851348790827721447139968266199703504054960045503440067485135802986943697221734792642815522736769572861103626193837026583214572445469784693724321398733022969055890252720173797372700501119656394232791937203473987547584427862927278343748082234193377248229037336072951711106000220250447785926266259291032429029635510033957177798083946241740284068363431908210444282729309055438507390175006237415505443457998799015606063475571105893124450337506589595496345911386069379303029963688037656481161940467952875137034190906288385382468917803306689592445431341510016188525709914083319334351075648478613032295450766669284764309924815662913633980687530024333691284736553761038769029358615607634298790928387805972637928828674901213869206086008359957938033229441365939651673519715150893491422749645256001001182477287154493572188067661858523305864415586403863633472594914459186708868837791793351156988034038618254609851790636265881728074250307633677873638100450793585309202213459149696695759333152259382883768707583073574206900787624691599365973627018982276301230986193707610187362775686264713714835648284822817877163420559454530149808179894953683581789232821928274952147286643398538665799019688212829501440073350725841204794946043545253797871174883230773768631038652418631221039999436690553300975684120972410528533396874922964623326420798155997037494694879008950624503567945677732099273618153142483963433517693773444603517189163249643426153862417817549878505139580134098512566933318269982699563922094872701441826776978049940214391171546132197599211450492915260667542924543448877889281445774575403949971236939151301699203667816505300199729457860906825236029707437158454033579560998261152844336916994487268199255560851710901949764274131954976992835395029342105855966550928008559951057913050439985537366367637007354468355683830630958210734221315289876243934164909845828402382225733998825118800964174017071028079174373057853793979289975964659242874288713745670745836939290698170246618395589130324635855375587370880080836405541619157911710375490712537120313500080396371902101959874598677333799977531936844870481334157017386827720444005125720784026523593316789153639376382158111944150809481997135412321355421954643040935835418176959522944858075398938902751236945904277258603185548735104384941026142268400374876614718077903544957980689320123664852284087178695868138537984346781660800908359571037557372216841991757696776388026097457532146889477742719197330616471384954171045849665662119132334734640882683160428509461347573542938048619745171245023822679365308634914580185209700583350528073150248617679746814771647608930820493500147254238892390379563872915213303790689739268413896101481471373642706056052343242967011045953811391071202609064961550655240444569390304251464830478340033914237477886748719333866858126251975319809762075791542460021935235091262678092102699383330896379780551281651861805718798291712341834690581718802065225189511874966640725563962057124858649724295725231147433332948427944719575791794587254815676690463651306734417015056176055258832386829401103022375509502760405174365839425439228696983162305512114253716396359438632774181166461754236223891164573245355859437382757433237748274058330088364323481592175886896685369883003479222027631937353190092624043604109148130664214490139479469554359253454250137535290773896974273023844827469453924350988263745700093939023415211207920918188601649320681729616455457652957085923635990581173433467294420280883332844156763642398178807066942728707730587946117294366344096621150178909339444812563701049533913445803874913369684597789439401628435216570774822782957308651770912143840088839026778976710154598487332673499447114416921096320954409850474830151813347897390745198590740853401775439057380335370728263895041461768317841393733859382785248735153558687327999266013092145346165850204681534035822582895910616427963139985912191844472745251760424039604639091131817540739588932505721952493868296939532100057855146319758073362333117172590101284017295147673504423393488505085674581310653636302899222630552573200679182447801895429926451048575655497644431945087620951940597843462343776984152441453990286884705454624852360353460964683086227871803754155182679486677702204936560970274284177001675799201566511007039066272062493346697500044966283147894983521338470122860522419064401323196514788325678481596463043563745734566542548428519086510952652025144509950405763005866152144155145343876499838548429047601921001254448108213548894265673042550032320706016097622197760898452202189486676614607030940588906929757841344930377303996520134767892962005806760693709252932786893123278632844702983024567528940358363913350099908788822638274518544945542952524920509058942840864905934425448908449977782829759734473350800138273478211635129612316863125718020542369227694276477602919808108078264444353000058089114724496636008156511394735195994712947343487755710279516837888466731680079474596791697234467991364339838090412700365820841608834143013611185199117926365597427672381197444887842809184983305655065638970002428719100866089755870108384914409522324321671202177275265125695228089437932201630501934803281895311590626595364559693573284320575340887149919208840002200173968899760200226735998852387943859108262875252372578056489259188651512184910006369709370655805124449589686356811693019608554816117047667437197601391847941431182986108992278230530204610932087904436005422774541979067436136015376643123359119579727508612464216078418944555014025814256229128964035749517957163711769810218187123515011568161598353749681122610828616617823080047650256910842050335976956823929533353164340677847422374326495674362907910067033626692887809456372434772878353086103488450797647956306348841739566921687180105040927156319707293120882487267342490267849300712714566287772431503774690364108867529565630968538536945836415348034636875641765871002106866859760996920913644879106490254623726293929314805387717162120988016841857811275791227771367253798700507666721896576423709765128367005892750148300149768490689876860342516386661664397266438563964788774043935046942898116141751906121637667227653112691117983623567393497293403649085525232073824273307308342687355589207595582795278918230299106299490555076522273522267884360612948346642844489660821112642299847678907111109683405455465323522571333091538194951910560744964633461227178749006633932737065668488897245215043136002107088819851688435596435639086386653089244751768624065551567537033845592370195570853672734881371958518147305839051796001805633747185074039659700450512790427923724174592585666875173791691526556840340764603317102671943658758987219099347209861294111349409888370566552874272554413401113818130476760232802802435892519727028900534077513813170942026026634230471055547516513347154503255222476939914746586286367227870026218814504970614933440308701328858991842673436878501358663796267043862027180112583177739907298698280910454704548162132925731684642878819144280257416424961392681251459276870292010401393645017394984022277217210171903390006120048571818580465315862549986278173762886525396706054834894211057439418167569141002257211488228020515799664636203761711763208614225842907077426364766939335647888511867658928935899913272713290622922089808224412858272006215400464120884794656945413369660993053627662639508116094225046585948339257686264027292037770341332282854900428160664918930272366385756164460005586628719248677659617895554244370802862531176522290791318552520348757843028696057276393788336731449808244761428291404059021558448484849054215654851471435954301600483619537933447995398583677302989766900372993153249918324367011820326183755360381458216333824772038227528910263787596867780808701821766763644813951200168296460366561914258695941455554246954746178905140094772593508101047452900254759417649515411534303235016629319142576272551018883578950049228760119522647812731013156852625376030505556087181931169293566225590458829899688374963971413184751671676330288760789749743237978047706284655549182444688858797942549364332562250237894594869413165855827560970266611484337130812476642077402905761598830680416117267259334283901459415987805023652382906612442266886251073610285181620985174361452307285745914175508225760588706899564702079368826023495694679617082339416090871564675441077697488774165517921712441228045403314812435411788333475861164896054561198483195791614569157295529426902750345999098281191984696167151058788540863461870828516956137057817264040021342107871567521370874452492476051412700415377216789227926607484514504481456705088014523995625395433597544274674520860841268274075370132778674375339418006524204251337755994630302170751901590225534680285020030700333540073083059323142914599618370067733258886648939708502333038319350576708458285071390661092590736913034545499634929505904924247077084880466784860421674300361613317531752444036556704550892206207651716816839499752480728258994342947064112850929914490452500540879275013110915158274902804487483579796533188826535925047455273649442471313317870901700946400054654486331970382525695101595924282852651379553052169149882265666840774626073638897445590890349714664473939198876336986503025046120082438721452063829369165806785229424253770278052550180760680302942750195949646423182910061182168586911475145887990969202973930476256383673690797746446130619409212564794708351528606143362581673228036561418557765793922050378601816512707024476827249118138624319158626220394127579971561238215213299821416776273268054071779325092214589483273640279713529959363751191978586487141872330062353807427678522643648641022762677803411392831899042992661767209123995939194353516843204912539046249734160613473871929092942469317041494331144005108842422761603042366760406741482417660791328257581690265484255559105321986120500373713684529060418920854872477154123086326839964617426058007654034414541419745754194356163484886424618580473721585440073441082990413865102252796976759374517869594345642799726431902862843156357438691585971484880934170738317412156760365018085178793734372775389957914672684181866965962028673562345096931161771123296570096498102528218500652288556692825232329434238313526216984048405909889935851306337672700017564305443165456082136445175648651931074992837462775413137111617317214716281711256846850134308404465657672093820387790151802306030635784779371056609654927073702797151174134388927875301243844266662653757434676367384002372807487526663835302002321122313527478543977042608776306427882914986511641063565004674333565811138938121759531344640721060188398093816114165475537030435939665533999751722291915266730548442999918720740396211210596028160379007181661189716765227738816268735999313252909667097648987630971381506401152103811936142162928592275755189242859303055619852837856944350360201148110038476441390491795799953249715808997328617340390457058888298957291000667581044365691255942493828770972314379214852787594853577734348288819969634185467749640641731596877004556596877623487106647185570257734062801489803673071963420548005715809965775778388524174957313654725709744409277499443029257121071829377142658768394338978674458709290944563859574039707856760794031711422700655265061946494289433759916207967384603915254099026978347000490758100043769112943543225197854044210377794970596318842983929380943852737269440548431808284181814630500717758512812512615995005474856858883242122659185185465647550244639002778486750163934390374520302242997954442301974754228273414854435656519653039090471659964174179046411781032682155856103105521053923287417334269176882008852727350763331910936143476824348753217040680905158298838440030701935074015190200039076437483674421208825764433487665191603912371035016836294719854942580882096936855395313852588681279967535716348411238911618330347292074808277609578393378732673991265454496456959475404027068080245025645225872590856089919695279905071076538755984222021351621195478209068483444894923535187591803730143537954406472358370700107519806827826204195537074954646202809532500225220038656231890279088338128806288933668757511426493021655743538930270059716648595621150964404511476498525237629961221206769567067789043751467214393266580905391493518928474849239251868522558772331490640451565352292410522806927612385003171478969420928259860628320505196287183709268007267248078548178235878834003765186330018323375321861282901098058956348390458111437034861440783345985646359108169417032576899332567965711596988947417208602337289610005991651202385356272275290694222309740028308721059713222488936694632811155711999080653876617241477696785099547706805257036247167239204039655876390348674483676129479286241688925811254746468101912310003112945161996371510307449366093043473078907496497825541512683264753473610926919426162381564447024990927649587230778217882799286196882921942482910123375879137827446045059759958483014343623908138023296002144907068266055772369821125436457593744477506887514710218749264905221526404683267196118273156811678507264436283767880044213359897539793392712726090629270096902869278508011477321351129496752858165945690323683318333793423020304244322217648932111180325805920093650845094311687867965983870206415855578411622348540233278379125080124231797858931536134289750054551342319708694994221966841875924956607173122923137837889766224353685774844487371038090262675941741085560163037068175565818510313744017186098784323838075530849011822745040313243643676534596860313002319156755216696598241846328185214554765010983358284758967929608836934693740811038296776115770837399697557905653295469759519447777456946168560409853872127250750786058709776412262472925362114281920884205577045668990151221573530659877405126251922381605537323715554762799776600095508666548378224410072461128596615765099555414329980412200167067570304130252196665983260734957663209528178587924347268435330562302605624177694496518713852387529843400905518840087634458632679433686356969060563381433933307609956780814461271522729357963253153812888062645499558935704424489877324259297435645390674953814605401591358398305804048040538119108441955403137814113483869951535801310463678121010969096898466093145009776979207724388987723549914583568386214233630125144277222984315739665220022614177081589921686813574084493585560022018542848651094879238013595764575352993355295654298305672623295007828550665102938035024655725667640943657715904733136884201169627034719394537699413508452422185729661252944732041296117351240400983971130200379579085930676971271195793320000370296268680683494847735000654528921151210394333326659966928471309632142233040224318568219126450038534466697749192917944719549531269358636858338374281441922252662673480872867509832351259813453523141064633290751006360482628167477569287984074339318645058762125537215523733127655716115289257134047328006724566325369799210829543793033443044223601130634973191976412824138149931857654402154368036127299255172916161589254552967970932987819871020255236497654025582822263729005698648116193120842453609764835804814284850010751186611800186568281007039415008286261438753937929485504082902722474936525416412146594925664166150462861717146586941847446514646790465349002574475332878546569078414154774293104157622139893291040089509578594970770750975611640318674050428143797100417854492751326911871547390881146853774954429310698954047950520469807480759988951509373602657051417566642659869753291026734648125999922442259169832434137855279646242325422867062516973637338100729983044040269339450645496555932852933363270402197395520642022500201159640732332158681540304544939693073994081464763647872016948933287745348497007235122602842475874957944515396678761226702659761516359093306992695572366522500611050954437531071767528281841654968597961019822690239275400808977351585677101432452874641115194724684839387039410353198353257465806081249891757270323795203801791594116088021913794312461891776967828850353692455262618772735334239272756425075077323998396066427432123120787451360536604787421173141270143386348507313059880959720054774553191438580787487231286879511126406580908345158547867905199253291250323071681434990255793917651983477482516014710865774026585919584653805770016804197646813483841208902881381179478901914405779597473696067794368761983148162868315366417811694846474820604799242324911298320086653148340904667713721648273126009969019890669540996469386305899558539635432135957867373195232540889211300637737778392375276866484505529287380883429417175003643740460955816788816523451784490238268287977849750353883010844796152891315379388170403542547408729740487923355967516807122410005830086519811825782154777962977192810215881565664023630060808984839305257370039845883605363903563822758675587300127960926336742913345582501713597366654035858270684145947910643592907115875099462989864134076673984839992942457549944974755085772414044363120051967964957997097289335537616130842594105844843112612438479854699745539313554178625471366031576316118381135829450781475469849331841059328520009494520605687258431319275244107703295291547693686729203144190494952567387090094969603809088122354457528236822001055439500190123936187826897569084417445440218812263788479434167403323438282756356690719774032648556073780356441257565311022261900409125241081188150372851908618876190937137646213868891815464494899575666650741361298140849810619055415563224083921974644017165943486027539913714954048962776819310221126668217193955249736223452312817931742383731311305717381036399928528278128566533026986550154076726810250508330838567037172654745871355319700050921842674220877547897394155970603209893905996070533487810816020827389872082979841274493511110218623741343318477274693462217272900790524676055670739669267955050141198677879444771213454906357896347561690715340033607978957571152309714622187026159379443823698360128564284238742546118995707361453772107082291205271997199110561679540838879468143427540630846410591080161954905741687530741025879559364745388957880102688218278409418843911769067799833184732465949783233661846153199139498736684836700953552805763420669850890414684084828959609052847885299122212909182660252679624249466742209735408301563677895999027543695934427118846100128354122894583081374655395976629506110907672109124891737993751449218271481941814021039775077086179398459216786779363863673357267306234433266025308030111816586926723525288883245118078087703548882441481527742297728905729469878382716734041222848366532523776528748533467398213274488044909454990637575069357124427746378749718565032083775987441806675520793369632617431247352754612593335648409555959816208568898014866872672560009248019732204876196169620966717747141691308263346738606466654315048086896627860973309344006310136591599785811362878132195423742768449608957093837316881254310089912621895633445081205536534720422328291388596029521001451246126547115246722487534810872288098327579628770837854375893934477859631438567793043728567927153930371799550834195727436362234280863360782527950075226517441030359986227350807032169959271170326594803004953571146330825709218020660393208935708433944793092168073725819782049284199598646815342185795688562881080708176100855960299256405583141122071528545272528166130590673115911790671433381123477104266364483359232332516360795474708977810695120393211931321274162940669888059013959928878367698815310257249080559767597034230395143919518215934800255669013624205040542634795005772445519253098272589227071938500812693506966650734567480838713907423282884745935123344435791397653534305315713732264008967836647124100644170599635911808551155577675753276306138417502011938736904296649265547860297394097767447382819358312621404438352459636660320765267376794518067959672778586427223410502855259214513997979636452346089386333486324192627525135097886036616876179724468629584905644121309410409791421213495237105160339518016646849896626019537901823849414934401906789459678171365276338498862113636034444301159305578074239621848583703036828806920189895565686001809628216106324498040541014383949435905510062854978503903025084940982360892143925697791501048351866432069400443763278269626348300229159824727513521882458317422834382191032689276781379684579124980587055130893177910797452097327100297292253839942312203740042994026956464224895499609505533235747644226699366460071782016789927755520669322474889326339144793137825346744128141825813160214206542705772416204910703866340425754290292723992405852171994112310088284492159669444802820062380285977888429147143171709248884742872472635454570910091635000630241087936872563346168337407649914062595045058086510186250706378008200040334692102482176905067023886777728593262058813093208651323442936702021922690764077664435323482741028205303326355020268153597414714593982976595166787852561583269913400170231229278378608324468680071490416590539810828445441960541209371509545154944883522750574436891946585443778079115616486152461877932748714950318233699067955452003168853682863832948037639519054685584262710813419860762227660245325566975700636426946835211181701220987491368891458421877582058123470296837508606492646325095278434169962660863236314993478462822547062275525709426857169928127038526421024297557509903094774404774694410010787210710134208511112500224245953617663064179396737402203238333663025872118173036615685612317810139926959816145226273984110225859443838178326967469214505485295270964234579386857397242178957568647124765740997322809371944952557013340997573374302471045010663028494110069853183394914992044258294164893851612976641323266700837825529207335280005792543022961681977105432497400781033260094109292563015813267556041791827224349842243006301109282835497073456994360343278611101290664646947389541268231780719884307124793263995724133629662300954521443701814128030801363263913497404367744637924775680310887403581537200877623176769484988240447015505352392262007340305168324389438474453938611343084533831907441884957720495232541321756818031099500163626527982137361897918767806196337680263238269250404427542188488152016494229209833745243270722427605603672039449823731449371216913131052661475887595995101848259979389921133006866987640114582619917086211985515033240205078908448145297424125354043427263913058639014896710660092811566354111110068538067999318106066320296537080539545280142904303590114657869314321025346424714528927862632697975896698361062082423820831619768755572765795664638660667054347241935403454496533240547422214821776491169974354425653724959593343896855788017347741168980347928113405260514055629787064673816735267103743753885139652504071589880103429502705251363934606316639319508399019854642830182360563019245553203294511611853812612787702790205934180543297047539564371775134939763566712998470173640003935647918939898856849785971002672907193552079516405200306278514552319637996319587277630372046328442352476978899425921461616213752692368770269621087743498556131366376761890620956639332562582783352114789042156594739840274961282594324882028210490262297033304612579795932159705364289208881162024215935639377217490445889128839141962672014508804060053204459874435837554375052125800558366995814106055429450747194740804371531006519883999845072962861612646420923363173852958341084825428409841899541619535580679190389113412644221702250959775743110842445683648188696334599853622590745686115524062104957660868042969057751619585422705144290313614088946264261941580303859346072790684162175652627603100237579805710714997900480841733542640534916264509447904961904959804927937104956482489820389571303077382427913018385397283425561463487753998073287729340257865237990122475761268948860379002551006743723298802950647984718371891073641642794684593136673894438398336235957653709976539483028868979763222772178146966252307809471267181610170592176677629861291939430557802478546140622873755352733868405334936104642740293440457106439063973931387905078165181761857744872726410212113895581495282775637463962499773412003968443174837819658745775795950604279088931714532602012032222439990673158937677138650492920181076962964619321558754520116065932755573668414830660538118863595274700361594298457089253778776077688889989790741333293828445109202294131426412510207768638377236187844061943237952124071443227745377601515758305691476967059291476897685508391974810306311562726954162084826312768767793304609479007286389020653967368888394097194529045194999882644780335312822948737220355049059716590725086183378548553936754367777623324646743377822221968760321279288664009032714102738446248016285326366567545468596797585275809445810908315930711091331804039917456656480329229418529780965347996546898198642567878333396645827511458483601152890264954562910841632972806020307743016383186867515089148577114903473940888865648069742658171791522673517268609619399474494706115410567282107883393812143943443993124151023501628355642951623037536571762294312624415416954811660613896192497949643365657398985396550992801524575268907610795452005489975275202247774049118108359156819030642004261672095054515644348980275076461587702470788147537735099913128005408933692545772486402589911504018772004535512882990204869983489860231522737666020849240243249384968939774257998077528383099400102427353197615897353995395304954137252742896227967810706033017664920464717971970515900310394096241142470909398989565083106862621009594871725431916155558734445759318951321659919407867819865680525801396114415271669307808416483708907783282528899207654904611504802196578681636849023239623885383960280909967724074296567125258745226646133130741622055492135137727511550007516652129105989587605480044312215582090639670574015723345202741576343399023099394921710885586559760381601256889585309919023937852169123170641783370099616845068242597049041333935678843012229812871021005000326298265545813935429688242231377257017329633636431338635853282845212827202532991628509382331098046319683537886251324409652910409284021351820067040722272724509712517776059676115890973878586555447813345076190664478282917487603623147830103442531901384476586065780873285051952470838447921849522144917299040754517006117644066346917080806953477143451995583328189129099230633621563987452612678968061499021015644605865882480903028896633198683205775453434657719378460429319989144965723095059512347232944841790969784073870919824918087195487928531770453541981856609935068180489302896531296090907244823339089285677896853523251002495521926872156349023067562707010613610672024554566366251875434358915232899627279699050433967819952387051598295964381277318220179893914690164752332935112623945525104143001429872374502651874177629692083072693018044977962214173567482914214844127635427429573828419339565244182475678996887969266210444236866225904231678203273032202332880181924088767965517347014441449037010044172980066737772476797672500394564899554975697220907251044743916425235412588126904566839654615374938277962889879704038062975851893072468350655325629936997065230570216796202975556120375116227364468468602485825075960051614704900511547885016183998109909840178774103583549716368776586200519262375447876750325989651668664543534698249098066701108260377063026703978642438716862827586684900926892206969707005040830473396740560768208721433899369824774065989109723557045474908100010832139663002576566148825881082078069632606555604261505362478600153813370535819882577586520725968603211125230760847462493072792259304297053313290402941208404441550537864141360974928277845269703079598340845859688114402696497382666305792890306706772742713696907362642612708908303335253415355211824383641826818524305188476018490301143829498141593976974412907861861452156046708661114544293866101814658110791096320274440518117375815401913638848615190611679475184789732348130383438863920132153472508086932355129942021995490793779131874293319994344360030763527146652519486454976244496489295276766251778548881511947405025007022590579122336511379706071871472134478134348900358124908703269581260203789930332473396099430167112463885764730700045159559769127162234972269524646506959846631816889492077863927129271451431642866236658565478098000946445694641141119508790315777203022906470560049513008054602501532472178593161508794878029154701724682202000680994463441241069726757152000298931145347880991259413829213302563411982180129247275810111531813322762757894406981896636040509045801347739644216486049811353846396064208747237012576818116707626639941805032891907417255293598974852383473990044856700355613441686279844325061354591075395869164749230177763226887153724639054388552565272137471373707779972946870743669057300005895040005901073712016715769189470700828101215474932061962587125442967051485030651704142396814028018198850315633564016699166129008740190127016540236667303378356028223931102519733410118972634561879597592446608483546767623462284939683126448601563473987522250979723278690757981449889262721038225719183358976677653914819388860150950863765549319257735867989138579142597093262907608145405903886606681680215910689475411314516313495459051072868486264297264256429007674546580109576184414117742750543978247184236261915852076557222084975756889078188435078733837959464266989576032147268518594947127258908489556979979652407815815620485354366743927576174734631271495254059739499472467971522466973640026213747924565483545470352777700102481038470881539378566393820791106478334209321064746361677516205656960791788779431585216409960543707571528416331906546348944314126377129635275740811823309878278822186964370005908113062296565489379327872699876069625269877432927203254880966016968574744327512255476988993007058530681925795265654236711909636369821543095064881338762363392411486228807474371602974912719579680266327183962808835454417292768133112827944591258374033427798873592409510658651191919075574540682874236858935423276576147460538566768583435269435097714009620129145911832537178028813987968668957948269199916974303403634527107966972352207178728571598173932981008267615439237739769913374927976476557145770547865704347209107376532537450382121067902650019168573923574246305649085865860326266282858858022975640026586541731297079656941694773470401037438291464867008409943464547161922980314742284438495125148720121816656667049770598672017170708559893151103390748261992824751911752953365958005578475483287395384545976960372973329607194452420472658074665134591996664433882635730714507755431628536984867772986294091850104869164260532438845867479849798228201202452094108330793033556954367457326167477093586576851619892576050358727128547028607395839027975008170199179395079539069907102446447937503920627553822536685078593127521298007543838552014272843444869913457009425119930812850538740106517603660359448458704648135251200852884963735255684912547634709356698397670828976755359941794154226909691611328774661148708425000854425404599901487081699467773690992428660480541012422319930149124376205495931663016356021518412290779568837801978569866282689032096964827077154809338528802872329237911376888206596606802494357893783084097672369043869457245553998923602770401049697781785522918580213919645712133036324969231724173606188547988861337081777404935080703283470762838073125931220078839458057139320358813803244893259388724223472629575977523682244983509987795661855814631706100697768450248289658561958909969270268469912896730387727483508045237903364216264655072685270309771758308226444625119171412634563995954175611054501977879640730108095377491522612383260111748557606423265572270309346182027677977840426225290275378669259585277886117977937335886322740201077519084872678473620423730159131789860263899756617481682028272040407191773728717886202428142076941919770775999117554323134529875223300982925902546711816927882783416618974523820213512414141406785679131520488632335810195740051167525250431168167665254278520147499602803923141549712038658524201609812451234479219783945992308300495028262237440897397778819800735571900390514108439469388385930609683473462644537490139990898370534055933515463589187253288340169655748136268709807589686327099376729021145882191256363732406812076148101335997742212137366936820649322474767341065497902088807308678008267621823461896196232369876761145522180226956435822749026895190758016723160385076504579635778346786828481939679658932616270659022963499814938766002245985183161670679750901195256360133683286205777691436370892266463217112888720342159731722382574609004201329674475038687005582809816483226176919161345126444275847343252152263303904944629648810378098697982325631957019194961806419881560515204474445837303956248477683423100027923708383972119301756640250932660009792140819668936999812246108856205577839068679800252764095132696693851931910756056196623869347612454698282230285576467316068069428223646461934482440111914911292936442006234747757730770176749234586362325226795834009284753488125963018449597661010057812056607027903721357425511619759293043627005142687850434854170407287449207871162312827832985345446878537995617085322634861739804304385897799253375146167760721850783364759662146059176159553676201562222702467211137486958947009222917827223212827004823705116294044419173956984274344844180496841404501214527884626671527537031457837676593120742039926417552397731565409136829020991881315183037279441620766594692182487572899632633631179213264726754911923521853324434517618758167461259210263711134163794283235992112272511123616991558456145859537605560993104765782761253599745838185726972351380911744322999821136781908812919090367370171260819618461356407421684480709976422227823979265925582326923752147787156082791369860959475304871009059045418966225029066202440018220389800336186039650521315092442011750442599377209234861132121960174810961185017663620557612230011475674784152758271425222333691776604730362612079131469420726419122967223478148000667553635413513409842037352446702014387217359837541616186258577704166631017027225411458746728970807891244670553860522953223784460204735127521930144578925273742976986830939576229553274002474378384694027200632946901921907545055567747190748622846780230757892753009108746907127415044093571335308520410652300593890847664629871329222827660349295977871523832255751006671281807358468552507239498922298208367072493593100498917919786989311813388498090263237467560839755345855524043220985642882132658927147083025351539076474661791388083117856546586841051834185582486425320531814196393494205595196120449742759473904386635084061148712887715243546552026107810377753173545766182811985835371351321985813639948914032912093261337108829571380916571178890183578655969849386501453333247560700177801964833802471272545197950900405463430643833762968418617226747036347572959872700153636728388855001107508866487886457510467259080802442942846571682986521809146483140504998057864026413383815669361397643733609892999078925635258121115258930494115669673184863197800307724904267591632862214104489606598850626767606999541600907426101740200210200996112059131044852247603247192923391287017008367764382250767016923770289452641271037588374872673283155556851952591301038119563987806878540262640547446758448785383506514012630410605314623833979356843157642457441759097082858229732613761054563107020563059580179736733332553301095590623716279015334001964654310519243066869598505347421303942244922932685131373280754988555114020033628657836441018643390263362831503157731001611548061305427558463349447272809664423228413365325797719032209696944748577543403544953450756589422483948283265031822073393501838470030230273301263357301489690296157343002571563334315383438041124532121622134521191350509421757621301304499522273669113969026940637545638330399190280148853569308679863958782144423416899447894980590776768537807376393356025868918646068112205673231565726821081107879702637471261881749709163034539163353410656002391341821170411682606367932307404399496801128456975072504553527461975733947864368387138787167248634777879117163670548927499607569055089352646958396308501176325332973829958853919419096204106002089268447581741450954864912268632368678736640045028824781966338405205971364180654492429270315400363879212814253150678756858232045026740785313517066388856270192724094094903649531192600391223131819075454711263007902265056216015152384196933391938974554016771427482030976382514267628886094352353127605593685150598932340645835977528080426430600283865620510397853905677545869643759638650684425503034986580843632079055487748779543212614132239211689454578789812411334958996754253230357904379290293832112210703064582352947734198000193066210024712624691542601924630333073119887019507336352978655100360947851559110821055852587937334819092099196256693616727905106575727461987506929174828938887137709758587027783666726615904742447030923684016522473909439454998790317766031034310183306817857937707833095431318893572593734518598909350095464117269180592890772515946811644318795543874478044609180663574634595367419450802850645991613228100897534482613176209427096029729988094696158193152321613486918816269668545567189147469230917191122151194909608882619013113082657208370295083544676968814416489473959694516752614355384169881490935238475126619020043551624404054352217354838816155279508207889127234513681467081062288478239046277148340610000057414449301415472904637658548812178613134233735970611232884369452539287432024661045397537413377006444745972433712721740459991132821155295732435424723528271232978380048040278407516746978801005235941702550731933608842852871403175554503628433191298945550874644881505684698561045441825370659315054704714624987450503939736502069016635558789001904458177471745235836402353141045637834394979502229157710492901121964649307935531019921734120138489182110842278580457303791226526125146269103128545639795566483402481307006226896286776002028144189322808398733191736180309442877405546885339910329151441929686314022270450879705148770475729494092994880765759730917765533730311804892098657510875400493618551606394865649085213942226012026073931776177185265688807408738555331829703600610743258027903399829647009373967089892253808605411024090335705347037298006118623279168135082488965641018624784335106147412685280164266297016535187260980660503479311453313921588410744080847406458779100447333437912029430706679079183629759844483308054472930961945162822407373727201474757727863759041517649773925154672664470738286694861811707726318538076544327550691497705065340982096779000055975973705084999047711271054476498512780082920999951101227039273082501293005609931823757688818367086661068242971858131374693642444175357988986946888267534077500739370363096053298241735887305299293610526997922017590653169871731527865848105299171589917384236942400412882679607487799212640187428675256401436833911790775679473942260754526994046061518853431221397999903355660662128394362133629559957201401045047912465205532656918925566906096245641941650736070136304351308398976675773156402037091780454853685581267842979341426649657193218491009487454555275556093010776168468501033848701320305819529251848839102642350836571612493060440284006960035309114287618705304566055258535008065514715686839646461869435519655721270747351706185993040449484617531936217341376016695714505506918274015767786248615690505817665941947636441890214597906105360593808272566892311130921645042720495835139497194123845106546246690565354697086150909788720008848718397713675083300854398681142129822954561074027737425895361353904447061857915632966508308930785635146262048530237677607000992399336401226930212426757135334188514791569398370745396207568768776434446078822922206230768383190479452831934000104358524030210533891863688043805787251557789190826649876738425818485597731536289403897274790119458591743633867921404370321640060667505224315806671000123401861891159610701990293477416176110078315444196954718946625993919739593242084234034560848143812440422519487401347548946253993886087101263867209111018219482680656954316524846464754559204087816234325109946742941876227300485241962301706802873064903884136336086033716329945149498439654567839310234154072757746611925298392193634198113147650123410034697519419232426078839625581737305921459365132872934220067227307974664191651773995706786587372834600230567182939235743771094972609954322435065169428438604413581257858723207797989480741420449459543377248242865719256669868118987564022150508121628005858536829249848609400839699630153402445265528353281700923598606395542179521368950394740108730089072051289128381666739909221679360106623769646538755879950887110601548251202086152757191533415143716357251846949377089106140174284453635027318241150563933424380294417766896938651074075780708994475372021358866882622251088393915881503353853243468949621729792245829644140889004370559954307205014375374759836291341642526951248245983699209372378898907837035133808841428444634462468503486517499912690884085860980266338009800441765218511388033296412991118910235148609238347832450898874312880468642426703898076153151989275728650493449812216502149849927609803939729390932925314310075510039106236084765424647842746870686160485003809381047845859841179394108421781228560901592066579346502777742905435200514816737812878931838911044807699564858869657060948997519177158235342420438507470765481402035269337473781690601405674478400253783971368513790721245974357705264268796265151496112329833833553390218262236846138445954089781019041283213230743785393958404238499773984769092403155970138730712635426854685359132286909176112195603636805671766020253669553163700844186845597075905641192331528329374127733002158230941895456237506487236758279411445937471318966843327272687369067612793392601740307996535392775603041753460484438609165396199470715590467731585878835505984629526415243311206006545814991588417065689913338872921817210408981644888986936732190385507150401383539806185006244128729217923526682580199518315848530125647799122867805423912360840473733727731267348714269609209560092151562711122828528809594087275636872232284748978226602285745099930172210649068544947856717433477533415114594860371970342395620267089079926269129316657591241282138094414115111708692042743992013011091304059583343849177887985724439869354745500148992307851720732195070551008107728513084373235399681506804408799373375044259526576866104800118014392800543074258442521469817286046765406827954588277053844976457686286243116783598065802697484161794488384081025526605123827725854064012842183259952687701182709311449000143350315153741654532912613138161175186752783676507087824646858228821036569690595865785422622550051997339700416021068339439778845841063580706668113894397878205876515490498610918551703512213688844040132160567519621091706770387856656906171741925331673855396744900915057925126674875934324667371426269394689596737725129030654835966363051107207826452490743553494571339389257862622163299426587563028994204888517240156108965979748876960605555094163151464529401217376182079842100952207454898474323866964922408000324082131370983687717114016397293600346931587680090659807179844894798122571562178127139752781363118313625237341616169748190449334928182729168206591462622878263782725706719459062506220045262327729671208641593180920752990594693347847720453418149013842876783132074845295566509862995563725784235788332634947855409347238638207967915960646800118828000099075949158471982440076523919040580605823688062762870705756032497712723101366802128527815273787821427218544207747916443852525462088157599666129689829618383774073012135818697103571156650659643233186035406753604530114757540491049704014863612519896801509721380065563930019617677530360036283257722869814939121797396462651319578250594154513438605252713236596842891180755503457709777780047004378715877767753118415121092428153021851672790233471315100785894737494408399108197883487467405112435823757433280483093639720679713495394652543962261249915882414679221007811566128622614704023462896087288915433873346089304174752631172289324341863803737788348539880879598217868802321951537975143678394710632310864585716409833912240133284381018970957657541575249724854166463157299536373312847631107309614010274392775684551265491514367429644697994896631962673524603429090403457648112300313783544473690063681600842131235780258784165318165091479102000270123689111697677465667453507796299880074320404219132406028789990684178093034496334516285981820295670208906366467636138917853621263080257398079607905518165687492840502782269301788916953015750961158874087959227856035772603327979455231982514376640330182247839117070776614433525793836941022766454141607858878651316956115183293278595281775904454827406152047422415380908526159573813294824197271865688644623182985552677128089660855502515961637505618962833084916799387042771863954309840252865526658332272091893104884681661163180868798747179433947207147978671738446588374670809352449848118472518484952787229233852464527556532768764977387574170741410246961305550855651198064481664291754963028777418280770989673872991350631592517142184893676314122805864118975222172522691344994383573746714128475844751875697057656407997012090723352213766936311841103749692083384040426175602893399312400034986471912814137203789699477195298716228984007081247213572560426434510054086014517869227991268583936358025998761644078914153628302749893719316036121396864324690011892736346750011212152250294928535053737279508874813372104925451172162230579915344895128335128481068859613261727890841023113351960472673978019110166942688352928646098721948728277199661045848659916899223600526694855588002994176348668621060339078335899887079615584640796423905101365403578807648898625504222501993975627737327845324744036575581235504492046397393903063359186749131188661594147773013291199609003615193589216139940212469920311238344396786871827705529803371114273857950231711283087185047445807473409606398441408821569304544625729777389872212245563984308120343782906581059657871371004494088700442917855005817053197338093501942669422454858207227020066959509684979055608650642027374135750433014778819955731329117088253177039087933051151615779506453942108112742684010181810621745365364399822089679589860950320668319131453120221472831589969563317955878836701131575399798075416383199097140834001752480900042321634045212996742675693433697351634425716254392290903191062355240164798254407648309747717406023317524358171113071502137555811579571901579053736174541557910002158966377100132604204903992374988983552759757444234478627765743866821979032674971231333421854655697985687465479039405776662749074508652214701150347728914783688835211871436262340569702154787868853323085049848736859621123453018913898306056429905255731507824852550035709303753059515763817595524238280034683585785407311238990752474683415004376510606321043792436550509117854390279467455308393392789076691457676350402723373700570758705517692499447790687616297085641806253497822433847696114433239165219570128299072551084718454309881934340452616781502729410716623878010575485180612990452063109467228644725700717477449976795612453313598723592039721785623472677043946027510706521007597186586777587655314804468660285266280020110487248796839839421900641294473878836479776915691280580135031160297984025933121422511476142393246414620545856734339179022823575220907218885597304862556488365071336135346977471003668654798439064464874628904526357223091022561197956436530172573142421271373053555882558866909416090650744658987284336230447139750720708878153536880370282849099565282330319981404453316711538153414419820091669102511794072466874132629378295217600525577421401839399490858026126664442564495616382931945947641701355467383354628069372342259400021318569453405875894705279828077107385514174330571617895338349082824105524125851746878569754032734798698394146106907811520530668277224913518249486151684057664425759213254386132063771022459399126412494883077194245290124183927528344217365831446958415858216587925899161505067120806819991251823921522414380295608390313311087531533839382785467912175537642204195909822395946880845353923942696781302390538977678185879556385252120979581151276763330875617154147341335785570851268232401609191592933893210458503853904035122533416988157371514606563730374097310081814050634159738972200429078792699473868157763612051997046803847676321731193196742091025819082297251898716467449458248699520726454043998850812562228058303870812700757002458332792801387749639397214697455865634513482774023448492929922614133613204271724544511925695970368907732925133850429614431405822785027658548241727246444097243092946278418311338646245521423233190816099820385615793968213334898219875027784300281038418875022147962566209478486037705354895993583170359358569882346201546251383231602996280308957565156271757182579574932394343861132916642577677666380388519764556578782692697739314425260026270491903851415247868812732107690620754426749851236564759670329296165129531924375878138112156895360134997165021688914965387862959883599426089692516696417551612877292559884705638019005273793328435257896947195070778425533236647800437175283005723300881167890346379363758384241562325265940223841466837715323335203821546642311674955170364583972008757470757538317925363266492737458334348337802485782565592250081100455847295117872467099417866869184792543088227365572337029423870642763593818817779693280924675034983429565740252510575945173322998910380176639454046078440569740741085808827247466922999283344822277783079193450925985605262687580028005308465471169324951247456865021447607108386344194370349418757235966363450629983306685673979114173545059469708533291779610932407601791243637018683555215741141135078451750912939927538526519831713077019733691603941220325784938932410053323304018731213067657482415368074540605671834179053765397746739419204274536572123423563681544091131180755827108840281621283429301512980556519352019926464275921401531138384354902115903243474119406740818838768967961681695132042304573725259432369321534778633249612404818068840091149968452576683513820847424192951502857901164854041879040619751240550791193431063419557895667486114573614329351093513761386884666262220913617373737050351302184151619150599312885899332367587302942379062050618237843873663612121415032760166753406101660343343002022145049505489954874014226443824507259742993919751576725119299787733621345660144425109347930566448882409977016134881027768397819538789565534314626505562335527189093471781129405522247118461896864293804224328269727996791990297353714963093818939984391385964345973005508948953662491100008763044037194923746220708683062441416232167897635462386262303021036300157992188861300774870663883544215030241953876482883310227776505781821293809290805840258477792882969253065297203583336259508349591283727749670502678334730935601620118689626680960163069672564170200260292220398942411460460420319797169815218153868121310724797269738611376757393543265032354114181019764704102352053127172416328240834420290611136451191983870009840682878698677983397083581497497721685055172563364831251420945999140776908472082237390488777948741631083424227361437345760244827954025872936674357883846948755843288224235277608574267498147761192604302567510142804209971805761167822636787542432115232518414043713404130438694810769875587189240900924726643414352735863911464721648162103485348893709855587823664814346449132594156103888809789356795119667900139118331056486176180201843738696246258569655669168453896305948493739435613550749429523062261685546799392944331690626286907769747452195043485521811805674417406378958244747389403803865242481384068619811330691636869151902813320960136751326651817077834984911211610804037547378372601523821612332703410146107949049319042674097934315283689095469152867425032341641376082581624478651407153161425991192167687822288755651824924402798362844483771122214558416567413285291738937019573926344108302031610960770002135653759192882366495980499062042714638039787381409215547922122671104932424976021839410691053699905191272736816610619266496522564918622948681712752968672593386320751155467632328574395165620236497014541187825031219765208645183937946567677543368726342045199034545834657738961060416774950179400399143768821538760931650858940501122242964717908486680575034694864438242940693063755875818141184809149585430034223633182356504914229040504014309959742517902756266982330651858380667235753652530355388701594147263401585460297432978178102993171776713970047116089192634679032095874218087520111611841268852257027792494469416669023899879693801892175237582737352715247592110269955147320257280157894577487175469522280453879375970008419978679637751534755824703061434617081307248804209626007021480014187659782078349035335988550412154946098914913361983045510209119982702510398481920819067195609950200173549117831219988966628096674287360856625442584882159758253338681536173706401290788854034229890948846757811346542872728920156385095477663213046935148307241316668216028464453929228197139074901437317393842037225447896769744612666178677709087642383230801788441364289910003533329980982868815761268751260410583992238130358374287265820412762239576706739709756103054386937245565617483742631201198763496389640206580352454489735923382306677090701614733877340029538077312621998661475659726773168488932927529584022417362683698383063319920058250144401944499663981780150006357650220947287618479484369007841661905918917459809877104602421334875547784447686789476127799293634125655782079522082935864066545184166684478838526821838065967263200862412088589629439634156468022898623780135873873189180681389172025115804162582612575165969663301557533653251464637458472935581285065714373466237455370984765651242556167972242707331678668298745589404200133929765827529407767300975990282435588980338298663650811510299475118522862117951125762007283000487293985858134492278530353719920395998142058311553019951577329293390755563399431970244438064444506533559783259333159048968340641331020236444164467612190303027965132766471529022530005268260236332619859520298709507751494957192744510356418711972446345077931120979850283932140031954128758359115261805905350431178072672928669838123354765942135109572894054750607937347512582108416541594747595952763329132572946964805628277564806319241271084808379646864435385963248938868445830518131252074132592845686669489618827702139631415772561224371648968790364195736191137627744328342812152781001343793710882379099268816509243039518277985853581862856060023412424615284130362407017595412324869893167614342540886916947769492312241618843647039546585807403496224770406064815681848233285598475468358133907801856421994691749355908608079008918574862366242109834137636843684122695750683162269290563734019618559716994726548019924182647736962993929103124416751116825496920877105324096314996327354888873071335962827893314182993798110119264826771153226721808735061399333819295577900350805944758289775351981696681271347401000012707262670578252861411216628744257884406121683806328143265241018956509151217065096009756514276487982463016652140336477708267438046554574373071189415426038558801497700016380264992895351083137045508444474785262020320749803923816727404938861028034700467598774809189723089304484972617501681177169144000435194027959311101207354312058843231779490493204984340638920065019457328801691837556364523327785056089696887767696531003204502430375477784761439452762519277950517655283793917294025896567318615218877988558725122703691420266322452696989135422968535215610204710708511882350937120844470157702076838597661208845228475259041079016908443489143323308265603142744658388156253251971291059199020146693332624036407694442772098315908295739694581186453805476251937930774635308104131123400908181964933590664429236853995479333638752478399589583909947374308091120627229628440168753883129706084706079562837457960597801443731222996170539774815323751053559932725987589016351287328755919288336808928524924164320962688137683717527612736089511446034013229469546829565045022701224313838800832306538547890969146713530809996263357869068114597367331717999779467797261489937114774405301398906407499494262996440294453843150512030621076249820691529855773389634928676592750430636237883129965919051507557014541310563761824730145052166711768200636591330805384232575834626246138567747178503151351612997354048728680358055828017598857474591029184309211721566572185584142177722480101614467559416729126815458375326145262016517270672853235499930463636506085245205274839459027653878062856165716350460628191747237880944567434311586293583487430335967996172194905156037986428677907919659906257966912380368495057360075337212633415925398038092840324004667621692636066996988569357086580195668436316888604872736019068190062217941909121639274241106034956160236509533611828890063989011813240542430868971119201837116832204114298633144488533611053682211716048357069919162714203484419777432836599290101135657506581515224550780896456895453299725244556975672103089020739658159975473916262844199408710465028657460794170822017727983616178687050185384508049531680612919160016805863282232045216875277396518605667879448734232961680389740176456725445270591131486832207451278887403673227126557097938324384376815033098354623992015558544408297232636251696345669314393895657848842409582107195242865086650440325307295976799711526790185004402718778810878140407136358413664671440112113408126097976962115462540803893216080326790893136892068518430294617148577283260016358560847339353521277006816244912256092133841005520422599266519302504031230810482006212064325863917496766174696283448691457267745314893906699533891604051287216846707933130746933157725125398804618810128063062961507788012996170545434199160896361286605697931323903997125656846334158354652353099528211700186281501809988368347547406455980987185880697270921677750434918321792076290619719455140329295233632999587396644736517337806273639966568831146120101758760679100519651422178646508919997474318453281424002472612230872564626929172747319240716480269387491423085055019032241615796766290765028069610338076844765521040737791855019387301694598198472050807101638945800772364545847170289791435638103466991822201011738619226307151973948877971931213014951706945680956364912480346943076449574872109321697651360611356114017280027502340361984615475732688098814014507954659057565782042190898819084284883752589944295404111373651495258794149677945194109367010953928604753414742132333355494065735355887118233319522142514142595266705025684690519862612665362398750790037552564807499720968039412349388921609647013329366416395801226290405439823750463061970552642336028807232433288153138803827394052890314647805597377064566429840421428638399207529948765577415600290238679676843977820115197842955803992936069328387537248352384365314928980784163441332789503373033998720177786343698520277792236883740264160484756734273767341666072033223523961192729298786904038289988747538367935413183636640077845421316871553684901705230961067857725800308194052331279779087220267912876175349458536573383559849027368858014288157241937878596834642574432348691368986151858241444744705045984616475586363435990957825689940128872230285991365380438113125854905358814092279782256335607074696040471079393239590864839468554505204731455709283723920032171133965294859634209418025703542269699881973805287744694973456789192495600652763602513055654189126543468540298383156022678727889612489446999151832881952911810045534484513246130928037995183143173781941253152241385519799775277818927325252962752501763835523635665612149557774788984652839146657900150631685295287984178005859916173569880344963745142892101247050471893238570996023901149714269769167162417047522329667619943892404633679427348421208253708292090398342334414512900754967237002771426178694567618739886842713259719511441588637025557247531408760116840125281354823748530542729689809464527898026815417375731960625611968525846988025962837671040485749793242084242236663757669826023698031212649083166692102088259017850609447632848052170642750800135587169657896839274508874396911965125597616499322236802655776634406582651195969201102453283188671152934023791082045336699218772620625132167844663331265459621143593839774585328314946311194785839298609138741608265084824618689387492776972176830846266054689888982140993771267943958083941907179051967856479029286893515157824665715871982161033854282524711557357445772052571540818468473406869905085813967006732517581552729753450981929018029146124083987787686654735178076814098828553574483106365196668478343101454710528780412880297137392096139809076942698931002232535589675388436084213152499146734666106491542661203619597276362493490828666083522065342919062685368437127869820311203371192293567615655714647009325868916029089052414785105718973798989614437089057742704315808542712785244097864601890348849640019328291376967017976132840952450911502426379245499698399735116853646164477306971656705474659937816705577784298766240427791530348567239665598948743049391481146043174716597441972393588903831943829569293233783402807603042815247665746416499420958741585192265020593984896318962947711931614787194911418733427430440754949123905727066779271785835446564259327576873594023970926460156337720361019264430152337567036125043786856013677770401112690934093145114469105812466329798217775916259583932683461440379977395921721185860207043279947499148081766312270426076793774195649438046718990503402227676724583846461500032890659498329880459002952110168419867613328812996512135215784783155534220118533843662469818233825162275818657621314726243878338187493566379348293485404184758319985226716635359583438760299652656867902608865599214634538798338291724472013251497213281628816339443614333085096632861332569038519224461979314165220356856498667110865120248541471075027799470277191666690962307647183475602477198703959576300074658268727134598109503944979160669819019526041339261143261207637062694340393718743982851992512179906450838336720048327368767008250117477958667185499571268196297071925694912938841702899304508272475715768004409707956665344654946218668781892692580732386084498745297680174274044414877811008707979425660297077505186447970960786843382531416452024168357578272068756572761122482249133613378370204602706594917679074986202548368348347978556457400916245556096900344604350547332499948436534463975018829066124578792642886518447148425082365201929400492251558315758427638904275126342341833394447335290829483349855310128670937695284556454224653797489126969302203410345660061081482967527577302989179402029357658416742712985280728562669582519562176201189811161362363310645324518784545671924958326472752284267107066694406133114788103327288735072522110644103752017902661450325254990392947509571829630751196492873345250834539601889937683591297454409138933693658316373093616744294687591907093277541173981645835395131467373189879315452002763823814636602041203071751194791322342927149690232402952636831928685928302175557671402175730457234597477833769293455300572332162219890203262375152030718257921295019277527736734822885498337740713619321078437427321405195419338660715996504421471564823065019745978539158519214274325135344396197356536477743091318579370465725585154951389224908009397724861210873512827809283166031354700863851099672217196760828920575787707993278610521990820632799165979054239105026444480908104781780589608263528764268402614547357875351399188631376461419871458962343553145772185716528271343665559974648817182244608426298385176332296381476074837449640890741390483798370961367815766770213738500478461500394641830218946989435378490317844684561851896020536940804722647814071503274307787001806086668927019137667566609515931626171408385276265006507261071309186957097298772847446807508938123008773628425482869602293775256620131559838639682371976392742277485921947098488321009133157797829074452661817951078123925404073951540609136649444040527497290132515365597893872209935599684540019832590723849315205484753187568414704989757028320195886615488243773620582037575792930162777716888760682082118346689655036877678562311987053765723870889915700026687617486047817171695981871870435071077216816438418811654576852382785630409735081976598870472754939502734061639406761851626725232583175190908080267974767906796669863234966195326610103151137458519871220455062451806806915057633275925390545421228156446737194851165189129317705721054012765077543993510528036192405632950866893432519644865354440861896945643742643309437901361473504420258271221659361706208185878141249017142392663443766202531496381056881385245381179366593856572877525190188743260020710814359124265608948251868088277904725994462822961592868326026436879130246887258397190778784993612394179127379370686289328893367795117506263562876297314752280539859646454703320796474187185807007596881213269300398162213934978744159387478901009525817429879661459788537825989582363156724146351474828416162791721686693437755281927104189372710179744513504120518530929548916268713739613388604518482851917671166635512894668313351819421997084947685386359411139064739769558702733669809457949755449371870200395668988628880842677209221658394117219431783016435729159143224795163895397062495450715991099239027770012266314991882923157950860912771223414899124393917582203865113962692666787671858672114765270460932480613180906332922112279925687169134263231997217572377732289801343810621585001885173411355815997644675589274319290501927900271014196768780621463514584836622615622807302700106080156967454782854982678289847881519888751671229910419326090844309071332103818721301046655582651250202126427195631154617060322772474586613145909983465791919009707506765830723528920547804319354268801680018108813786283262602505559546923118543615016293851521446595365987352110538554225409660612944912842631966732587037654281198035242722287532082534091303740456172644078673570937995700987492613326015831796919919017094912828573353232225725883344759905073555537721785241261351924664472047177530429690513896009872271146359021561776373040429251595483967506310753197651217475335650513175629239045298196747965954591204060082982332183237641100432753454714635436405645643348674891976016494345144441830471720362842417730413796127137481253682037350799019325370555414319741982286406506038842421459843359354549520743839714426918465952985742027794025861529096110029583039019873561617873765568244789393562883374455990317920402316190108794424425914326150087148571102755207276119216043760014099130231138985215328555543241844408648483885531288125340735757911135674785783409911488821523807649035065667899111728657139391697378091983441378202626135681307481108474245847910707390362084065283989616644623372748550979689765608405521470831239634401430580225036123870634574087869750379289503629557740759826904656973947584934538023602722282121301146242675382127414453648213846732272567746934031088636381848870250602988672944326328438535243493981175884691480125537783224099189690473068714627392633552724152141954214373503228471943181366904574247838301290346170363926132774245336838386548731344914461650952026450331441672529640854185608811306560376397149822320985711988895500447053238634549853069149622046178530097464319989874709427053522145277276952851529616358375769554755299809470522009580057347953503043795676361195270767298120153898518750205656079529331358838622449034452385820850105316461791158127005184907572874936654771752933469454646338608400587866460496582465300188677081947995280140480307924600590354701702719708135519498263328738180796745075721825101218239706582889503198507173500765822636447991022549813060683665031143840037342557575263201564175446462483971510874835593716253122449555155752870196936397967724705976849512384508907886846255543778955384262320261935326989741058238259962145440499188425407046929562606675155956995956219503527765969761361582156037990145894144970094190814689147354906637365472025204470236290474200874446725974523995630446991917345839441884692908347246912013433831673509269395292311140417085093451263121970976684231261935384042704103983358047178495703883150532413093123078672475166245056855797579098763105964635386476173980301377339044811582067649331064730216778980362259932536820489523942543999398078605785127420752004114338673206362122545859287414600982625209849020982804908982360051555780038325370341153278562050810751286113720065208250424293979202633046720715721729508436849766108118227773366017487886178765811498121353860251760812113248298360439484688262046520912124351534972707441275639402944440922778768711708834703574576713675453399283578480870985676414098272851537592585865901688053966916437591458433843007830613242961839319872909643110163468323995797944294821770198212220872478721045959840478114155524215757590211052293221117204372179299128241284892115094017682365517583049092853963342768533573488943168481668232751058163435027374203188660951252567369640141878689630297924848580059831089761955579234651810627603193565365788471925488220384089428966066768950896217504245667583698437677334993888089804669378296347743369260398961020749732137060062023290502991670045699991534268425473726109342286955277873385411185652464396382690680454933829301474409673230269777300749821009941795244079114949017660950414554420148762274103768167044386019790274441994970506325219703574736365933564069679489879068966772786721343409321995297308912343411807293051021572991306578296273492529809482319037843295263825065086392598673183141123564688288066630520053367817875843450314522790357934991257533885697656364714233396696231777856922278593621636226467709733033162782227233477694518856921245091229428613745099685978167095299075296165471165389599240315389047154938012074717884562268041524312803801992124977426527906017337700170643373694964606886440455859033374079633908250288337605068816564657694854598485158660815330038158171958947659978791194255641114352981573872341838128113554795490023530600790028934707305679235527455019058302549530056551558854005459998491396270423510642110716300831324433341477782987203198551082296739100664590587242740955890569598913225262110602849129011287792662176243362998147042375414211953422042815445132438896351082183273768794159396690068745241421896890066242582274339659507369970462357814076080752690524685137817457001764212074431062760169669306798884732034690502943938535259608427674502972586348130015575207098840467045653418915734071503096002083102424672740975304111150120075564793063797092767272979569879535677726101316436488502429562040247267547883497622161150441136697321561658169409676338161924746465096789370504617776272266545413561859799895894523484612563830008319634581023932395986376695370491621449671806071413396926956725151048376798022686841208694783391588551144526615797932622410085354381998958055082841286419599863445908391623652615653264515536006017124341037746134584103133005871850829130257860102067216807574936506640665074032413131541608577029669396080410139075093023323633770642586678265730708021324275182630513930530701043556928063178639858609816689308799298642510919254679385370067886127412065418756216757349935529666412822774724420653762274631732988600327322184160815699934603648327702478570759540502517196194324945274263893958542373326978822270127704334507605945074948873296837803195495231349155174865794569179225899419866469664266605703586540717265737501734729015969017251707687136613880088131798973927925212086726052216341204307310095481880849131920483385957103476315931771854249871379798942358838985471240129113443808850977791990721299197688861833657946975059594553813363017660220873969195509959674215706738856416618418562482582562147848288969447255175406279058541823213032590659072663516767980790469399922454795269820320831114399036853417853238473665414012686414641216795141935951801945125416724114913004143367707808195827044679416140878208041967894826375530541198307246845757354509254451717464080569551626899299806930548819723918321414576310080025296153568071326195530398573725330369164029637341852098666742905083274142053544295660816129351851909483160298351574449712512133234064937674624087438603354868223442322561877500956483817238331087174858676394156557987228182501209979408839358452694287097512008087400951024623187264072560217696886887509001550315722757848145178217612096900687305334677081885365062133671346721760857514979743667089866194185615699479449719710768322319871429448070672904869757396253646666786888723458159310042391518588360299977095476336544881503827279685752672711561708207990646435291866758149968708038771861544677242573707294302009254155060747025436511000032158550916067231847753355560139386821047887624310152852772768990127686196375385142473875135874440102910477311681869381970336950159625398881956063787645084229833738303709278327319384737884908200700279060874018258092674949384322510502906161568023710889318151785952049517856891587760784542328765826773568649054043915068698281740855424297331590503656029201455711455518675142342508594317419180414659883906671885266389168833470642516215433458064268091978684136169343376535762502791785200042854221312073678547899056823188677299496081468061576053384368557390999922062661996688178177184414743288362378053455410303082450361754799532999619919851867661102331423315529174272966398065982289929365907670221121432402988536782253828731358772233762579539317926773167562253996668197243146832668969376108602633656536991231488583296439430405853493646573602647242579667769137147140354595315159727799596382082183595466470403686492265637124369324225063045063248782796661090452198788439776510105206475570032020605241210219215803238889402556552037438050595279049662099235858216057426514328219805324123444797912671866999748039336001706958045336060835695436086635757808643077052802789473432781364493063758978688203624207652211961229681739633766850493351158389543978738979102219824629597980921720439566746775510749853763529162540496813516817612879710627341109109382893755958387777433305585046264793128372003689216058328880129793325489718894327439607302677648713389067027905120733395606975666790295982589525841463125598634290645525592322352331034957224951219085617908947022972201902000787799240894286294533529928150782092534500280589618914757370100387187098767014424891007875075691104698859888246745607087457473536085280001141767964357431270880134149160323624714277347052692805086969888202033197806316425120943003768426931526068530266940794262654406675535968131104900997410513596439445563631219688380129668603710272220717207968801609921904480590888154287687147888190784737987917703481161903901173387253829224818678720609026311238060244162326129156480259227197445400428244492399265960465835428283006093173148329848342383015747888746091111433257523898520068705733457818175894950095388462953386509432265017952004828236649607566091963562141106382078893772374865292960777476616932239225772990071977163596347989828672698562288822863152529944032300977635577304885651438774247168418346715653280979341573968060731963596176897285884140309633016741249444815766473661191880694726509666657312268984935184329022409006475267422204745906132289330500902526762893288184405572042399410292507184876545303100991886455141742684212915730877083001273931987567892607051240706407284597010702922603698110867968196408301361414815719441019154773749431121651769432348865339363927161017975219826238144299474147783251916954367117360206841788974670562647540740595119798793133640234251187718833882581498543221960886651575669056044611224625675242232981724721108989364434773623543190424537089757404881795991466188447559754683108697653120881493762503200765242404488387999531927078415113472635408752785272953486775794737654897256605117111859340336812301420912375406871847667534216162057395112089801629672810393106521526315474293254790664539856080463604247286624874191720802819284166943219105009061759844510720635847184526548075341092632893391561568078681823455572849158292849445992641312660665822221581541093643641018652033303550195361087623564363986492550479402582204420656591820829417702251247805994623086332251764576627863268710662440556833979480819784228024380756949046478512843298732923928163495267999163601055882055535453277689562850086842536259671313820917820772702667140713618226933314254118036143128439235315270510673796698871178225822944883151156550246687004145347852678321226228471102656711026707807488224230246276764545014745317618366072300281004186091887024483709861527857537144399415104022643466564737470648172375116855902345297618981637155161684168207234039516641769791440476091314993297585525744620136972682135133021263802302004950337322304966273024324630908795189670620412327325638059944429436209891482048511217457461823783507529486988245855679215610642875883412503917519258147512291505205238244416433189463950552464846824580130205784008837182789117042202864605157469396746806813901330186496326247385099028100590472510121259164754566257173210308523953539772957087648097314057956562565604987637124603512527946941729903393469312704353352808802764045393061299136016085680805727820856423625955896567764496457893290609405264528899792339882533896686972828806369056296683543484614811159875724458570059818701125866563109541848624113129714529587936684945651537507424482476990735238626340180076287969101922388459642551356989901604371503601510969297628333218087038239742009658398386799514922738063628516154630787803924409899661980078773250971603806990008473393954681014168096150417460080068731590085612904864895844262293046547636935688254179993087394109727044143228753928540192933097525273471175525604396533263495825696071759968047075545983253946557727799596318530586336740836485819075716925605122874043108912648319676177662596723367735833316775770438480344979950355681533297348947109248915315314621442731387434043159050462464513325063711503966149174551977307878582337075153143326729944540557174448020684939287222131232060859544657396642001963367253654821617944104322792138443788636507665586003004603467653628981743671453936021225706880103794866125478940874651720055613462169936423899263153544333531522668080563325223863516142612243493264173435341609783182100988385998667352360676800044447377597200433478557608875512058431284804523980233286894208719593223555523604280935970016437674894763843550310593359342211418165566662683786327356257403622917298196423569515323378830015964192530048659429192769494430821234695745553172661624041464166172789237328969164078257992100376289297202501874514555011324623588286736182455077518954178947108077529468004955748398010811258263520499764191497583257343495727574272612863185552669695997356590861934911839706884672526219987398161954713938005788848515344700535589256109946166965170949047186344753467961045855202919613924138572020485831021222635688787788983426675755709314500599007823978088627354767574903625204189194204714286346710188082959862478927880067443581025472901274617924239029031679752608104108401911801627607812938403794865987434082977902002933836436399902071861660330150537052966250067826588965555924265932516806892608963560563934105867184086491476494983912503809787321311270186114519793386055987834195767258891351567028297545078150668802541161027683355535949375981015057993688085304933375517663994197494122814801123080667356414098498139973748186650204378684361542576111777643870410671406123138682590486805129088581894634394471133256244867919039652385982682569104298768049512021823424772825756183065875071920424702521610866209773799752235456647421950453398839385931455621082191670196464900743323354043224916705935207515988909488853529998164182722768949724209459741931449821635621710020540625384395123881101601220318172441273767705763292446153547605528938289361099530959323440091767498531065230693720088049329229347630240067202481862147254213585825942005282669504858303199538378925173064094348778767073746172298977248095818838780952042773202733062934716698927068561524892268774552389246879927861694516238065585275758738703723622749594498087026057443529803124060894487673956934490123108930559414786677264635194759709313219771620138901268232245551453037294924574097641842917937958048589313346689914971346153558855708595173299282281681000042004947376795288394201497389036266671916151755572960746165745918113100664661632532928135174937624583995701090094270331887565763572097886201129277061266772191095599827215828873303797302395315319300161194513895829218081221143074780698355794591172025592289937001378695815226582820110127950975107119502007927717672570658272628511484976511041707394668571286377295244664594442433645264522918267928121684804529235893846637217169485145426914725515094041290568640894456487240001032530993604947662027021858000819831910538660821942876267971538889324955872516755876137458398271173710424753761838957752041977705211870236751971677754158774818932822941324022424356812740182496469229936086552191305324609230764350261664748594858879462421706209283621362722934772270166515013902312052486559099315466395255830918734113217338613532092228687240447056923172320428407256459997037173398942917503566685497302799280663224483443957284089652704717505067825451577963701469832763554413265869279278843365210061736145512851094214158207616892905149958548849277344393744788804707378027905507854965966937531066602437597374400766977405314864032686477211269930871237315597470411869978594518960936436419516053942971619796726305376314799830465134440622215399898453138346170253057308809826527533511329222746987515782304189157039734099814619029323895028752913088379785078184160334778359116242941887938095996063762614251666222455722380410172771990683551981287536225666520580519195895791034594618735907796159572222215929930669773419570233881196947633413184475900422417310702855626561476323002972810087869722787774187130029774421863006340792905880786459736083995813617945377453904647676415812480088093171306551565216303317405169971636752893395514491369216614416968539528301512348897929715879228678656531082353667348529263457343152080237421659131047402745209563161621156525069169200711199893997042512537679690630710916700427949285825797957629971179931155787440550155994304466618752100207859807525356864445435128998781848980717009082903528108763514936821756262787289671842068247953339821592741199918862334856982304498016551138420590046797230569055842036845252624625543561410731903722013864134315180929619161891602736051639296520910699078012870649577792177682123069132817450694252917455396913997861837393745498042329747419738033941602512598581680624505086012819279899080363841106946190357559098565660430273312352712063187694998673776544837822739899720831278309782221901731342807646828963248684550633167385966173484390864714874901262585328056020851324933186890577934679822340945111474467429974177469086160316872136483707848045615293051802259013348692407015147683555435084379806351690360974494171030157876466867672317038133051518365693591303379044126632065532916378971260059362111705431627936989477926714144533881555649045696934181999302250373094086667449389184319442815767200351659694516440210450551914106854525418404693105270443124859701107856072266089903729805610064824236386372039174529471493198826745569734551680331222983730369705316554438960776937734700187558533858065037530264428391447936146564220036964094824688729982889692000294105916970938248512573395065202851665769212983736651150933522916729683756247320567910639014956738781304492441456797518443625599328422901662571768590564265375230492721042591223311720063930558252121269489430339844915171602941338403166121590977164063783311562460860710331768153582535984190799111632812910702523605986919382471986695890270990276817897695796415930123519825107958894312384627191080621051855373340110279554969224821331529742131693913551093798013550679348638056724452022400277554809124698021590547795315377498583207078767945197780387999138552404790120512204046201649343683064133277582071104278271281751190589054567130841156035622304689933612090251846625041887005943778564354344880064183639814749455260928646997047776784946319855338115277068957555369091584045665244561905489389831788933789366235398691446308015392661644613014330145635217593379480019422958506782883571858380010843167501461861410362589167537029216148755724946249966284913501825602030602708042189942120377448316431636446197274416753943624800316887584615580954023509101540960015133307943377883686321743212148411306603834198540540932865910036541478965722012632201628252801681846607071725764776328305286791551382751392878253186136500027774595728213874061927577262959863403802695119049558919878956446586830444128196146819539997922643035568141057438459874780457422859555104549766202762023332219986681622540256570868638880560327889732684747279462752879269680159241375563440395805808971675310645222756311600435704500160397410672658095358848345743847474385442087713101143445929220303097192038209111540265522991794290907815764375860386353116233712459592330521685613498106267089722018676887728724571297440123343180894709035839445563089381091199174316359138587280094893143141664908228022075316598146420261910310356443949144574966541252732033796643116329658562637347522579797898828282914713028330252450122019776917771184217000677217728968772994555739568978964557716673492534068307906531761141033752751228790096591176160491051782656452714318478032897995544546913527833777054201782391225657704501806732808070210959350564918252028230900908392507506655313171445140054426418695173571051435516776781952702683652025823005570841980963344215990388641809574404977427303467337000361833240306680308637586068882583875674249888271715246574855297709646669253520353481942479236830787740948957724070496953361466120814342173947352781297116628967972571813094191852997249349234737675095572767422974439982688863054513270888413798373303095478181924652749124458454354815059788350290926887277479634973054639538158789941633871524176879777175620868970053711684325279087683290579930770376291204856802698313396437637547992112245240253561899873380651558762781111207338538394427328145016797306878352365980572018598768836619382972151552876291788030839334587103466565424343119599711446572448362145725729125974636938461775473302502095891296159482871960241163467611163801938027419463861650542438186559111663642009399408444332408861674529658628406823763938839186624748309407079043460912618575099825222996807279001199822440168820798718070592306543412247498005329784808387828079012083951483377011494686274903817379604332398115286355567602049301321389270718380630843262821119649844733382959686489846676057919265699609411765520238602246847069635025940507075605766480403841387639481325326156395179983470565641743500309424648277916633890193925674037779276814404194222934296130379142361969424361310234579059528282765346395052765608689503747789333985340296918034403611043968007796949033211250586295285003269922766350831640865633664197995034164168541993906362962116851076474854971004825237360722476714769113030393788972614179563341299443224879963160457220795572768357232582691289640103923095533315832580842930426682978617546980406617001473720951077499884003141821979053227751418409032743936774851290726825287655171420509361211379073646858305516982237980445081047606443263850968726972485647634717149052788182738860844877965325037823755371688460814408486718663259557645481133396865530517241141069474420294231022745144004659277170341794186272555800210557205144083224467818228661445476434099197087477648347247302671564332416880743044960768844016608806427033496443826648056528701208994580355900296763854070508716864625006390851297275755576657541771180545708970905520943030930528178725028532974892653206213185657980963168666595171991781491839462301782599456614784247978474716232467358040558598014025485239216419259418334997385409506302567561085815231761179011949460183656013143834962134608242090938460728879312272246248764947173438776795432543326622272414224477597623076435921797264092376749531197662702998517193568021351691424487989350261819009187644242123374562046853635793285271437494416904324387123522605175511123815036058827229226296580641789525067205403209617740269083020581959177047662954698274912302406945724091088346395206189842580386730823523996447290803682730427775851525035763260418311128902944851675407811915539671252453036944272183012034619549721087926600186453995462884116566968140904826811758591320960276822202005305788665884132095730585891831537685897129650868475245548194909161699812663739540343260412556889888864894651308602381293722584193517259686846430245233158204280056703660276738123567644544085228812203397622164179486469854090308685873130163869316174293200884075340119670021128528703977476428925113196097787455870232731402027149285794147323542676917695504703406905829145438444813399730866465485561149041802282185462183916693513855049404527141372032194827023051675437607829429773083721979573245637994177825135323417400321657782564108211249312830354715046739577372933994290650702531488090327449521107298399936416385389950278056001304750255246836227309758244543850179774371665257613458879535935025320008885353176233432956250761102121929287345430020156531509869636588766363368769328477732578298529628430620278474366703299350529371796783361218657341943640800639532662398944520153363510653546250009711981899592922156860836321769407144865264151710970782126633144290041931076786118545694477993469832749184901680017569372592373756502392544550960701437627600645882249250170826734290829834489125291313677790124181514560020183084952528833957993496438294610357455000520054299512469209054862107370214276193806733312654004807608229591231723205631209068213307783034112314980019190792657612369445821267636641375143463213108500944573992881987672534433593905954211446974945900414183510983057776130504582914527692373898579236505699502249064843507832675732031598918124933188851918556827930410845980195071317683574652232198212467492480920828109116170483774184389767138001714321050734097755420401043630175373483367923460009966365247737966319540158059517352239366545089352088576809487709375110788575140535734847894768647082194089861334988760967670627455142791351484586561311679508987408094487749554057318435295531909784300995343000012765446799222898845519863597393164400149513399262646725549710848311224441893588656052497728972097375939324412716199610442410515064088527111300914513920142689553546666220098115345423710564699913195111789097092823950534513698274742486465912398638917590818740743284689067419267442418637419474912330184821894212910523810760131490230924812718455561331308385865289678474662902893284930189020201960972449708329569392598106999514244658892074997039110958952749706436969961677653782637627697676744575542362410931912408579475562057385740025485784995292428230610291097397198691694999931885219394905672191220607988478756112431855998717865880833523428605247611851710413713183305619690375666960397545872962211493147651683710440240917265133739246302679331602378769193415610201142171448168261878826648178334465748785145194795242449146207060998362220638240663927585535061284141819867980551264269519846198398149175539836486455376062544691681269667571041049464428370310262444217900430521206247101176406106865695079958598545556884477610810713730736782633217399563323374105650430200805154101026538946175726033676233217607328210522255629538253062219337985863978443097773905799812478815050503569784430215608172220021739710294937584829009383801233505618377568711687609293705857509082107203196760162701120705463033238962523777278327094230417204912521495335729092820501042194143533318465027320626969326827376262164138692519237726924895975242449818545289145286299520404667576195215494290072995916276909599764991754208165422013720090378414052640939484955389019791711749481811746425985088394294774619235092906996931291428710408866487002285003086683273612842067979384012471826955339960137498446040691317878571572275468425677790140687424589236579884842957974154187863570001746148524719266836378017269878051257936133855576497928092251598109114203011641632684480140447654037604994690377555704471307183916248083325364398381233913373756891366536753601443805149975926201833674432865802264073754517233792112446976170040038310933712954855032989102131439254035398187207714588619357925558742425952962299217896006214229469383705251154269128792668325351172695345750458236108194714891002797669364604950046503002570315765734345456112425190046037533181185351484714430428652611175343299388663231270388455799656150401245666043473255704582980754208435008214975255263277100215905065286734825794552557382234222209091100599702966922856892982445132719212543451638147859429971944360909761944082186443871655856291198352135581612499907317149070630259523981475351914089961005089139602543933305951966271874852778348570979158371436286155700555871315263468507999125652360812395599346884574183808161395016637549967934733226262783556971643833415758984707651813107361730634246179943426346480062274806597564658836484206683561198232003979481893640689458794545941603406832810698724081641791088358010540888304644981398269406717618687724720394343300241051369121411152164930015245082804220530971946514432945591474544818447381461418428731718155392504242041455410523425530253769801012323757425554288309403174569429816465787088248251187336517925757387900651765609867870065317191385791588901837207088125230999561627534622761615515465927162809397323533687042497587616842542870609228982708918704498613094761300304981096007200489538074322647073548389224404928223290441787130871779559147936490578343019871402758109827456182891724213328242568722548468152310824625383917780287771785044738538076678686168912329423439850541952326037286880198193268074557859586325059151351707797536637083688429236543050014123378117706179700035200583145013939826768366339804791499229634665206413270745238038065866905254043624299912752597173170083126744068130492134141618695270371676589261902876846038067251847884669581229051480594763425910965839865361322899752171833048296839612259380550660373707450374175126441905887487662915604111919324610416032482387294495528078196801650427660388083485571563931410841893274086982326773881392675849220105130665383759043155127712799729548736693158835138792419105480180933251896241347183528762193971154270837725823290024953027768287953410960331000562742563671659909775776772710314347610856828282399916827737186088906774909900433357742561161492728805353410445200290593572019459741517104176499551814853471023523863804764777177115127925963246922178243685882732348448647125955946479721358078455717265763750984972950114237556959830326744315758199790765013821329035635471822402058028138805718460431761750151621649357920454370254819494446131569013472455379514733225211739269872723205090684827814637851546924231647296366313452959727822730311246630989838161867040738572189254751823579363772217714702332403457600908378919707863626920245045096098462372505773263216963446467632325610314061836401373482188038606347782232282902206397041641099749615958609444356268658341637969427371831258963239118254038716107961790648854835017009477646016960939147004222279012141210373628973035174282749049288943092079002644576549945788754136062627064866613102039682444833219693300776343506584770669241335462095019462536191845500820609611161946060158328368186960913216203686396311265747706379278222170618197936932601130917225333304565688463751692760306493237635146497791868805030028535762400761105850353507202901322962254914536393905288447330578941076163044175776266804382524127631421551369192348826958214235316683305009731622716740386722953194226600838730361535489685054254491170554781750578551515125316644972918681892984789905313359189675955082619265000528697629483619366063962011528011435029085534144186450605028386944744542139681065935654057319258107790491936384539275701700955207431373903059123476123582790868592851491156380151645898807485419065968950537155459129533653297815094972349495218584110715259559609585822905595525523380045811200935089596411119799475936982703432328367302168135196715981846849983536700735384457495895805392315584477137433759471256771462712821113502267597011810273966465802484830549824654076555009380249196031954493690763048231135749516002374518406210625399365847776345365483066925510347091794407456473236609676313088092784170256403635185732475230196250910176842142346085207353534337808490413515368617108377513096333964335589209967723487337530094934517389870690789006842120491121944801829507395375417619582960727624197145422810854313248427315133959462642549006732541922779124579811575676265463311729173114318106269104410992785606270912337584238917104784002594233046286330719739017655833271439556305121414344599406501432479767483299168170165433732389416164542000633852334953911368621206951941325611956798937496574341695088142086697067967229899347298849663839927896519595638398894481641343461075802328539450109942463901113162632820871613723792515000859587722969772548986705547605707442185402089836301058162789596541101877711237069611139572922800574823134365052476790501220572872311481957937856381344824383194944544376313566345435083890684711568760292720823719168404756618193783310938456132184546609632582702808184061026790389764396790668112925258302160836507021892717483878759565431013419451079532269085055466294857049298474519366474049809432829371674250690595300083573329110011320285427452637544415657815533627276126951385027091815064604861987474294961155400733548157868000486741235249574643652276315945833390764490749466072950454228994907728590312773624400103762748225311142053149866722543089474021129322834507253343402673941737358091671346288407337343512222516295191945782706386313248242304158199441957934952053458793439480623249407819087724530441122768581075649572942177735494649908531931711232542399396944342829203782419977058297691854111879054213758705009297011869970084976975286691372991766492531047198294471234183247997786676204034454338527574018135235535631282189348419764383000341440974976054194000277638286458622907036457543050191861836991801809682824056281019142966518228128717874052984016179980939182611291968532064452787714201503929085175558707483354658849060360536571241001169700788752132682187310095031248266280707111970600780800526690425163954719261176838755652932761346559596773495808707245279992213859745324169316920941046849139937308318938495799031962338716476917204388765635277627043618249391182505886173140268718126400400330645026960721259927835357183325278556922798633583272630551347133284778459474468762296168996698167236767137357652586803015758498406293485348161430477540628391302108523047713451164726165329794103786210371984371910864328572404962546627929836116550900534658416802843015963115554357400717500234482037160559615450064253519062691227579584980090868681575372552997284642524451369587694466917701061660833063842793447222287633958162165915908665454117849783654773421391272945164300078219335895847556646424223764791369601702986140217642777093800486039545520461051969340298027394290979282527953040605587296230901709592022499029981684055907892352556431421055332928583435265583144730716003529547972626842747573024614433872656039475010029533035701761780238484986491381770222108625214116027981843634480165880120713987139730785706754961729409655885032285077714939583205367552091985242560234909967865613549364088066731077136108570689799162114244431315626195219978466881805500618427562249763705577403893619556941690803001371172489748219540910731896758194064071270947487986247941940640537285000542436400851296609536219297654594861977546426689048667441941171005828444589434481930277005418004660076721073637261879791090254742761323414166211224418253859271420962212044219605126688809759969567919205460272855081227691060263164261821617889923833565860268609119959029878668389997034091791447307420379076896248225910996662104472503537192349742456962491051734409435896223598484691921112238817216420970654011889043024186701947523061058289988398781118859242146906819690006848401058212930468780957470854063069590639710365305252545081869688577690468935497851118405792638299025761555188553706865775414475359976205036714972522928469255860485592936114464271659890529442886754375972177581402012693288088960824206655269355984034723511977629620066516313403415727390186492368068520897275623628039670609454018332160196269018825419241414725826346967496842172930713224065776549155522598308266711065321864504835562069350427498945699081753803870272115129527575896619913120618568845883815926211446059867526430965961990226819105242422337371618908751325166998973788613517171712179112617097553846447624210114385858084509929249931821046653381866171692100507189717888784480979663263233349663079820099434427317161835002301036847268644018952588129735664860859814656668700116610260588570342736983758914174296415439126015150927083612935999418312582718978086575021933869677907760196126445519113051264442333180064181834404759839420020866124631472177621388427735804692320516177819620015761029456023960524480028021229230524417593127227455592413083440188768638476854939737083518556797134944217790395708943070743104851334230062497217443651299904313730937533703256585511053631773545427691183656840433657291753131271036679939642305201304811403924729496907763923664195965191887333447097996950731253712951941447608150710325466353861670307313950472491019501315477223268454408101199860185866238336744603680871129331902387639605664796457660065150690639247848903903450902887265660721540923347143011700784108560247324303881663319460689549679938841679076287230314918132036481964201122502205917985066997240798732533604125506648437501536768524456584027691587267825464732619851510898155408636686809447094806865155994067156524576395714526594030549213330100128289062230114480758600431568946106723356109196983872995270061716055337973980140602646499339680076251442263640342602191829150572422279444212600890596896303940096827770457353728447105827946075857591287917356266332729244916330007693876437174323582183578269739329856290614223954794020416678000383903844211551462643656009557448996138189118719099857002306405176604726953985312741233162329328412552224756420215084006299456867408605304955550533707791213881277250502721576107314390505514585212899338575531805326205269330149380277419554129146299752079904160752867058812066474140419500658819879823863923274380638814842485893003371559971536103742580340292971074700414458361648366300869746389323446326986949709624999653734902986620713778349648892390149229934087904193657990027892963584541593364867706819063929100523033699015903695287012256817743187868255309065898641398370176480427487471099385488363152230579643183886471421852867399210465514655598830586595379831559028584017872712314224344634081725097124266576885193418759465032352153062003344615561263726291488996286115522824334672074485360703025226295722572529933533263458914632217001224779481901989171258408169607217513560566266150605274474240137997480161382957034866735554664661109264339566702943164047665998856760629658460779638509805348211145042985634370912074033784077437024718374769879056428974712832335793250965761582738248974759333140873141902790076280531334796046349933429842435601280884297088856019555225642382785055143932314460308359747918813526660163150149634475255851465995307640695982165400819548555843997750165060330091291584364560018379034358963724462382689395117485248482071610766932283923935430179259247259564811054003680410965904557060490407712384368259147403811002307116532031843102062522793663198823887905153677599075326659055074098686137645071296155504744820392144864648118669693474616598678230915324378462962634848254856220106152254152128627390980351196534090761095141951773634751202451523158846110470472011097952333839278481944396594140390855358556653464365640656343851475084902643506028459272546474992405372629408635510178443972326916550906103200644855096420382960423713019831425022850829596955120214794411261156260008093877807933797766653326387582640094748651073820875336481935731941663558927124666534616236031800816353009161556804416885316535501898769643227768537515687033874149088639369372880726688001645709526485601884827641652196343760847098894324722908373399942067536086959079094175299852267966650712161291968593602020258117412476345964629464078420355181950331398372500119301782748799380309191718169567468141280541567857322264635260451591661803003832965666630211699290495633245986396344940143255485791495829275609491636704799828144178995503152375719354553927965003832322712750515823273538455447862647197885018968140507518875314424913419670612493875558183486669978085565801207491673535182729879020304720295800720179766801801265672256318996856625107887788726225934746491433115318643275061294718951993332834331898573417759197657242313087289717515234745030582567617870679249077733254213631949034760977645553908443755822993726480832193087179408464281818947448439005132395437723527053010060819173798346973929294256089421411001425403111411389740565874452350220439184896320121529728146259678946823296910202417662271267505355337811665335845917486846696660505167422191432153305379661278588048315450048187335846412317729628146250226236534756123674131144119207776171727646719589305082240071851705233715080441674410862506685591934163265340074112177416562976747437700427860784801478588861904797721958336093944886328795619679250953726412621941620968405785624153105203237806029289160437427304367086819738885040683427861984166243761091028554593500198908155944368041671780145512077132091108868816793797029799085040467276438245780587202667235584727257602035017900417336665259445427197172200110847328519257685305174533837358206351121301950247683416071990831689555907820282304692836646151592585478975900847201462287873053842620780850400205403082646824622498335286507393751760097909439608230933392412742539491775094502937357842920346683541972308188776634798885232428504895209521710430110568425619442115824363039780948690778991657037745009999960889900793854668960410997023750322200340595977026908121611375675651472476768033285554494785312160439409460556090533111184940246355781597374062993820127367560471351532963714642060279073503687408804851874974510691622892091174458927271523887193479344900538509513679054002561439189670540844678524474429210262801965783838486818606785600341675185405884362981400241866879811991212281240044076445939173748625612088128236534097899234916410530524227660887591124875077321880915241291398421052654998340275975607553397004575554665792816492945434531416447933705906422227748213402208178734319913685844894387993711161948216025459660725309477035960230185285769850225573515064612091926837323378052800213274541889809254946489100919462643779666522655107657349573621368091767770264098776529690223984790804363634885948619117819180803273915508995545178011673326265885519828196067958340905239686109713512659150124933833413437138006432130239021179307927449551890500396717636019994484249198482484488475171645445370950741251552716382259301850933469594082304166779384546357810859706194629617297920724040581975717820055488610875906930412913913612294449139146995582079507935564388688169797414358650978097604911037821693417691335561932506211293928950448321831336588031754681559553466472684268441973554692014549357504750475849211617279767594928111479514810780004883816413724112598589938891717346161090653912066942120449921510274899823759094771345577792346449615223862848633196404858057611876347416880278501094452272495435842178610373634539952119625986982766510623262562966400966869915138228477911754995076234376559242324888392184930182571732945881435006084725505884118287314971328832345913518053483030205475351353768226251329998561356474822988413723066266988479566568849243498122116047817854696743139170612224946338276347791311901701335691420404967825484460862794709352619483319649494565824837043932474048857731964137260656227047695229530808187704614369179887042926435088343503519176086902827394008530391542557229256087321743372242844330194084154422775313437370276806865645222697621537324979812647329644469470314394595710408941647329923093668189953371557481741473227857193907913243347210408682037213790314205424854536930152118710405039639969745522382781663652943238803476149684128203385951299419413090707958360687451029524616504178897176154055183674617236900707297606217144125132563741571007222365939749411970522548204361878626896085881377017036954137444569104844607405397769639365370427269937541404863473765187548200332423926187210585845846104311683101926487492508018240743040936260242177982761582575672183100537015923412644457043655281947810242479567620630465855313710342110151032590963803786307581745576411333962180822356614542294640410649794862222457519071155138735769768873785519541902696759395170019946391240065462971379962700074036143918189550734316700942070319501470104602317445661358257828067938793538475989272235444811994828272413407519465621668213440658182342582186063027216879021643615597235688853325126424866639165135468866264506207338871525007648100979614671572326749237693283016847238146609840768390979404960103664323560742102611464048122972362047014426002158295370132035897053769044829172515865203200892902794738957413140139734612040829022354945806582307805468672609669864093628396913254343652046285193514880076240080619905886056370813019442915110730587461469390279104413281963726529043194296821415403452897598482603563614157622006347300230670292775452207327786068649761173059831968903100938390757295718795957002150757769734552785871618743882922438934011360974619592811037459149091817203005881509703671998079156171700335234121352410380863288891796140783995440859863387078087101364547739538156217149475194123644121988205763493623994293999736186103806501548788777678026360237178111106465360435417498562930764686905564448027713591993414109493510687505328523400169715439326127189695773114369992516509801112970837745143778019186164034239424430682987089782147586427582626200937217246720737400253101066070828025955173771497694383405561145935195067477834032644912319467810163736431673094572747115825732367365007671381466889794910321657869331789094704800452725893792215822102370834364550618822673022787368431445228420638625947086855252520275343406066461845115905725208936645190385963745135755321627238978696353023292349695794259622083923906452732096531499993390192465267763449544457209363731314929801144614679238547640910553187606727215772923487278277147454611716837711806034663480045860715135908620629059746710351894887903527441081698474193758502780832056130428005139704764298989575600112451090900522919729781015009671651677249956853569784137511246512433023752209819371825341069425191762153286539301809305877991627572562006528114390605629653068270801815676143189209728862260069018908880042377848034455845799820603817832994290477230453970831639481672398151494388252366256064427697995010390204239722136565526483926331986394048540598300408003636294997815719185340109954366911234418090859171404421062109023043295148423151732948817974581207016274033212424075159024317933825912122171650088266296194871481742366924432081025949645572909985811571837494168260132818086490277771834343053739115830088210984748150866996799072690316383673714325567320735013250638132589003611537026531718615236829421643075157879293266978838558336073631125898493753393517772149673830139439610404798314899379573428552423870252815682477846318970862411855102477525363922298270749333246077243054059027707079177643637475171006204805234376353284830301270182669755397512356836933914861013628871298455961042067180063047657659075332168564196846232775569781297852819977443877225646054414655636016081805687336271171259828319369557396368290677040506985663552003945632109285951706346451218701404421226868668507857769434357128616079958867104499456617106067554690525252753134524374849092076843029338935316644458756724274623062211385068337333755669591246498030346370007029604955470637362888592398202479985892679258440748403067790885822763934802252582405176084170637828915978025616353305857984654191995322700388250140020920714803709123789166489956585970256488411614793772974372905099011959290227352444591270472225560725839194545506082459196211591189714441845975540615248240449020145233450125714816301710608772558736031789341315922674403165900917631000529148014266351103530641244569284685144612837300911952217110941682754291784395249552669656225999614996551886044651534098184537960099560372322810986965140967689572505204951791936776583147135212791119031149119651010995183303818265137404494713221319146286605026209536190043190720911876579491244918901475383834001161916265842013736582186648264136405621686880799594663524309623255789777456324577808430140643831936633219302052773915515129346731089160761822524289650619417016805198834515647160917820830616731403250671603919375032513947644903465240055826372061890265599160424676683162217010671852513668172961249080211565399003889135539467712607756931845122571945376273200902097925790490616526587535580149447640820126101133765492071386201830234118904357950079637802003156640193332360688869350501212106813710919623779952374717034037043148089165920389662127089982170405209066660482874928836133240336296250952139018308847955334061272295368742376623526151582078916968114866446997916478797967110846567438376182967952308175847091683302054676586851444537166963138953120856763519033242928563269475902922478315586840660870951003371600884832494092918925143313517552619472580713767453855157453044074291661585897094784925650990627593961114762474268471122436158659599410465490771698564654361472149839772373615660195443831860826407853598189121516026524076206354291791159428174893865800922352723305122547934812858937104393599204062969752909781034062218794291015491342796430418153805088645149516460674314353600213107822079894863951211657810911086835208662990458369400641301551236153897833802903426307756109417607865240941159698759605188167418865657716407471337488674102613032418319256302893018616048346073300839669050066341259177607216873582864611056479194755126033760876352619059483187950417660816655935400065027600972658269788129931546991788399371386237300548846803047797037277346302889092233442253370343093258227820253227255428760881408384737539568452516498392015924823286449101631150484221423473095446035119709681715669098555385239299392445453512905471969546631051852067371434716146627930859698629498804631848400746453112871492446997414266176567124405547410017327966714515110277305425351112797466352548475800524178557383070822393859620412778526725009670901310815123982550863376797901043858950613414442432077491588513100937194653171945353510746678612879429019102922337660319192507573066722991151367585595291430579248718327899151004998122889023151027188110194601864500274457600028044222787246026292129260677572330410497933189060253229629186526882815421810596481136067876752671522775467428088237946423974945182878541763297647206259090659348603372962739580705535332592394086042759672108580695483875750413261226174441697046061921858139337375143869863874550582446142123918021783487736222857978085458852836513706786734382590377127310068390686002653531407960839143738182786442846458269377850550816638004559060909305147274265829541241860320882930952445712859801830894748027880035284086626564836721441900924701569907731732781634596399235451666604024626990971723480540315202058487828270361085947335760437720002366054528052067026203894052792882824881995338526909602265062609881961113492575150412067664144935709345549454403151392775366452982346920156325674429197926480037003806003569398979293327747137131079603256322017446416062331285415246860336917044953690360675959632859498996657592895476782759586106615689174428390249080039430948481631832728447403764384768527124001129932166777959135465730040067464523913384156560462404890298096014061876018482673975112112854937113782941887848057159637068852398275895431092214194668631343587704761261855139386751281145227564375847502229476908603728501809567973678391451884124631331645335745034009953763283555404883489295867528726185378131965730605552512385031425346147121242997313355605259845404233697454357197825740172602476360683843036878565449745347391844784827110841266399159109055675564406420106444428417483235927449160021682053858628327607164315427209356107792285128791835425205106430575934184558775363849936794143146203206546480960679719766822569772163174906211088030404110670322864933837524926073724032983590241538834683326190121007123801645365775858597289049959937730853521080166649346952988506943458898285377113408199069009110718918704742339345557614934044920959868140611730362765222779795539623323236417409426268248269955889950446622562729828847228741497084916586556855045720841858900949983951335197112893934121834447736800715140511253489765095063838544534163147722485761541953492749292175977092873139795336470293922005257310252710899713728744023676810326890678774548690214038980698335996561774032942617829154721130765549585430852294567722133793341617914545132362267475550584030076719974576146974161275874543712029537688496192435793216160978250165946621638286981108220099090411546022491565593159008321965770431925522177423181504555548337915810413458235597201155323882476566281860743837591672407081147486715566680471221940580899228222312779592441034245690722522732449780268272088058351009210268964094220894148284284004271678326537988486199634152644471258088306088964809322884583494506877936961672891307878176736384852567627875544493705987272996773493466194847910467191295798737696239147879313394004119628841077098004161583479774265419587320696492767082550572087134796883527157141784030803269059458013704892011342022996570433780406595751145158047860486538541939292269986557006036602996039489039806721901497958732901231481636901939220363078574853941843497704352986766803049588666686427684585073974734847488665089431393662816799423277005653027387921658581449339815758938943275648224996270005541467005279138248545779559813712666962565729887121674532450309020871430796876608113182894520940135750353856952352786068025205544488435604442618265798857609783191448340301604625329879375455825346534947381266286592202628630511226890713887047299747910810551178763279683134763901915121722050345482105196465711106681989631870135756619698733352375094975036804839576115078391499302779258049950902750797196600274206236351807852579935917881227907320120277921981429956673692952509766963364279133447516774387111898995408562829129725583848436142931062422267560131071003121894564295117090926774881378627487683962175489234212818406176718662536172301308983301633407576873018631714211813920336327887539391629445333348767548889234848520170055723391367041526623876870561752742785297649345244289412228625563324140804762124222756655059017470926303361665981853885700659249035997061921258271656820241497819968069387232105521566855819614402702690045881741531190370960919084188268134040041833904799437015698653186006670152150901553089768946952943661054994052878081829789760138264603811980337709078193149734976120318770587236724639375459616471209877732595004294843592547186158281740176533551433765373529048265103000470022593850340109262605732574612206748644191962634637958264358984281013373580045716527525381556185969763975337714707418030897757053257377837372877485561050646110946678538450082067031521523758287307240069518214226795947646608386154714386662858920019510016651366619190588831572858753253413935599621988997603122319979187352392635873494341065267440903071754239244097657383241669143829441022539307719936090922350372243094282724170650639217783324245684231911548742170115994181491076503077635488322532624045703154880022324501723167811618511798588844796804999658564320141971252210958683519411304848846921768377890525097840526993769928895930842083593103694041684896060663256767843076039590475424987915250435575113565173555360638033658646610556144179883373510889945784235089641595895144918383877029802166987998511539238656942267031410794539297278720692778597538993369891235935071981754277212563132349583470303491394179134434562207143386269355295483342530030486690430635434603252237833462684114601356633020150201749200452198544123554928603457982926651273644213748493453222464815495843540063681672866313530935261407475537392963647215862497496118590647723388471672880972391983339456979030377683156861540419770310087141772794293296128798006987393702930335459534439838574816404991541216036905733808756940471709734612287487874677039029015306274512279916049079523554206753231195961057124592060220197957224315983872234528377949202969751278577639612233343762540927790356084606451258563509260672819042885534474415302848831176031458829025709654373736226259686855177322569160035871708280387454392675701075666289919367147735148939293603922172162815800649684050173370392212054946360602846121629286368503495815274991247397388646092725814551015440998502130815976661448448907452948922519915203043172648775644756640662596273519605619150626955341721024352224029419972674272183175423790983682703478989409497265785253720617958161092800047650954973538104273078567052438682646996682192805516685977536100668768177602062684099519373101838154488412214157105656760085407939929930595610282118234078664365737071160650233484624667515434371584555192551004047025366676934177660150627466244511267755880431464235890761425789492780950230758498150688674259500427508802751810835771669639930328156426426184447772397284194377159239290379575386483649322540335943024791093961778208438224308738484896050049922620544528292787479738292252063710002684612762135299472508727901298342572336347451481694250817494551091732606001012383817329541932190889744893613650801070334200662946547643149782121790868137057106809588665097992013129487319056579918819547909240115934527778449560605094478914633006858622542099955093115285230843421956287698502810842281784940820701165770955624845105384941018497754062152376090917037177775796779003511877203047029891196034924762699483652140167453997635965474248103152978762702472627121763150004643010874145960238692263896861481786603442525428739368545507943894038231251121410399089938641663513698891358572794832950989175604922757629610740747593153189675241210239701196640879865496916202636496335181905194426318641692354755501590323839307242048187884441789223204005791079508458089271248888735973016613473683103040381121335642706033222394332570428686211886966189424773159895664125844320656588689453477853569307087323211205797705983681590315230730906687340922138072237896878972795706306505162005890266931025766489607255130167372030113711752729450732861540948861524496357847811338461950991587326734195144061909190765399144087959682468666778525746637907903399816133965276925881884380225002983589188269061386739041386607828881144074228452309673334117004013510189153260079481392963788944799715557198375479665390645790029050326265149517250996589384722022176012509620258563203596047644362054489933423697139609525014370777511025909744648638721635172367973780081145819281889260371696030405721705489667906495164032232047726371242500583048629629161083417230196828494528046672369398474548087779160079378808903036903377542139175728341993070941719155801563564834838591443063376378439055560093723741539556534237232362149886116541557468948012539507012006014190438020629550909955587117435115858914277202302679112130644777839433799751872577655847184281213780210153867247462523770371907832542327937358071031137769240700423759304410860427436198977570216606427701146685221556447542050337224177642542140263607093287259675498741125070697063525474044199143521236657997692845464817958343757011385714343018101577409654867069454233369764358809126037202987264529662977219971149702418098070463779454040095718230748248645213360172514112957848909627424284634158224160042738929394734411149579242128497956528150738735904103161932826459384677304453203535343895314831561613721740331381467484612157106222218079537469439919025234442476723527396390756201381554310437303593254501632874570748659847472459792575523293031351023370972351096362370650491448848805592749953397705438062518081404332368832004884099099426637668655361801324900195957536239458227118761663786687108422885691938943848968846580889540561344744858178647347150771518277576146017414292575885555025548987283063303937130141845940911478385817512977757521713337153210132353100539964211971073748149253528857643832781627393099516809529965139312569695652511077807702831590044559807786433615672441613573381084385908015625471608433672737095404139782143809841112937467075945239324746830384034984495400551313500721781195549469661994818210833665025587423498554302783676164941244144198471704178337732618973314049180560798175706074296776125198431600907038424332426036775463951315914968449597529368772251267170022411595153943152300897848712398261219560287634309106582872544393846161434344201071849933569694209048875940229668817995383937604809884468403014365301046919752753062857870735031182984220535264962416288657840417675905606846364479458865889289542857727800300641564009022312732661523043673695851845537314136316749315003533955771118881972668273928827579036133055587179188588271922535892870474161327511978389336055207158669768450240868265461908548337751619039704340644819418104068903972770270592873643004337438823896678915953042109104503799324130237230556958640491769599202638946768604882695338390828608499621456039577390296146015446748387891621287748578149742555120347862517700364208013796844314600412726655716061274014698534481970760592920690576980018636375092529474033470794220655043969986587639926714363743628760305890769534382135141046408819189329127677924916518543946699163674898966362250672654173487994327868181247761297950104115404554901389917463101594269394115907798614242509437460589649560857760063555899058274342821291349276247480199401449566275074797658276246735590167023284400912311134173198317357230114209322816352737131712365194671137531546652987874442531005667100373579818717623502611675628573050616904715605108960526172916621489444456274996743699307255444171365065254125742443923878493764564494874248520435962745853457924070212354307025514815681310452025258404036988892902533817760561291057786376552040650851265775380023416954852860955131624539301213758164344490513055219133156304165734091479735020986248165359566950991151094881569589959307597184433121794223032248870696240627909473931549704055774914844064119125843747390914901228372254993832082416495654821334003676854893246042189056203416541171436776196038719394470201207660121182637561315266818278974973220237888431385579361378190647754813727252094554304695418486281384162758326318542676835514960911848000941793646892401194805499709512633416954235479314044608143215536700840291362519483270082286349091154753386284715986186411673012819468720731027341949023736324270603300395062937678493481627757614769208022908850563257760191983575293282551041273421084629034647252647282317174412221514763326689863324174139195747564899221570054678879874713545198779232102791718354954409007726652897092241596279591842249770432667061884007709825231506451274220376667763888663094616289154069205015524958550639266057476688702138003410061610802733027278842848253139499248818730361565911676996134948504456980601829555560645580503830568865412092745779502330639275907675840472693071574869373802878668100971265643617144449639683866387768418001756536445933113822565607584799469086947736406140109204794550658060299297664414653219889601245327031057881596983009816111578930514900493922438930604598378392079850121486899542261656025850101517004053443609403169016464328862817078955265602587316621061003015209330850706447729650263739336181366138184272760630232233821889287780377465151333448973417630127767628396825651844937734178128197608371233599503308225804938824669231585769719779783727059970791375068017711652190400004182520307010463220054249382746579679150071137094859384102652406163867048448130255313934067364476587948874125054708813015248388751644006557804648033489387022741770677796514563354465262615571943923833473386333212056949128989979151624246463672004720716432744267673180036244328270689447941102593315448987774641570062502468614160619681234776840771138233823678365267021065782406417915157008585548927547934171824116692507558440708138716561077257330954084931103035312237358528872664003511752939281481145300996141655532664531603929984343512860749036661110388300339709358597715730379916676472376859588079607750017984509328010957220197910293456498752651583897949719164693323072177980800278133181341153489404468547194826355541013031731942361578391413314165177964867582566723197212754352393268032055263657292096824194567937127287567453002660072594618141655459185547678340536628066013626916119127881828427573590329660044472386938036342394576725637571506544530259325874928817615598398496011192194001748515544123068125446658158114510440958098291270207525246524029079276559820918555610682354475781815444686980343459410704423926072209627968427964912597695264691148231990829232725975231259606527881163797680103973917213382556439611133983784462841718895992676837038075870364062539195843615692937184290994371505787460028392213997952353461119505112710089211740623309776848236457980151853838292228006447112121655567609164147803502616146293151892849124964705968666616834595474212028682799582693858363175364153878453897676042215772255449302897793063278545647454512009813221818417247211599050937438882787194734923021077648780312244598994508759363402139425722080362633544725690582607669648192485656584480184603816712089199579559790690476764203058969360360603230732259190240057445326754230278099184229935553146716384579329245359243945575690135417356178270677245632123733151560289269211669188032391188294745683419944268548657810601705903247242277017731625502917416502173017271036002787210817245006665233235421879737390192193253759006356871232759512104943513592869438723407769956111380200576427439854726627873986089448975751717601114461212689325358659392570211401932735411067378558754183590822072736624247303911774724622936564849654559116022821541088653712186036564284652430107013087862590092891794584986115094814607653712181506294594039020607368684937653781130047044134693038048933546524521474607356791869887744627997268347945444559171040525556498888131012598275372899996611232782550270925067157895773791257411578287176799255711156547714848843101439542219540122552441451037768825829168605099781250801517986809071312344861822334167470389257946716470399963679232548669005946706815662692277449277162450401016486138859521392930463016458387110095729602645551809834653620673027868999975818051055048219717035489273910177540430982067833530779430922895725782364496692340324845360601726003813708779684245156667504419407854276743768305567156895819980171902922455349471501382092617353907836719435330610706584652091049184380916006730591352590211156748751118233988017206774629101896429509701055602796372374234596146410260731491848992651093925863362630172353919386608895834225695373341686822075894889837509722110381380522786079963933462765720931702808370265885375513658929359854638378410005217430040988520025214423734927342666378693698411424481550450725071300661478335185415581176368683383963456819457292761522950431154659023778679958749922501788988788537122788471644171337510091138094380486028555861174139674080764042464083612057249411552290758994607387337873781259764335853341527458312306201071620581322558766380521167128051008562027976537567583387374918080302532972092083303927711005723844848269337053237997302831665210880665360455569280666019577064454805591565450708686275750426649919642919446432754717743313312892171324627373526650396732244323813911921200543168423466587398762405500684086905251362272100770911224505223121175056252432392162860749859461608586231499144482452718758387195521029001905925222704590738361192437948661279849781565779121451058535697351015855908807814058363695484201221360701243655602502647274390523170011278091320028518464756198257294966975487464822056311428777731813355021914979932251640677715221792664409703590353169618602610826813832213321581277462523203728292289364291250471161189733029009479551173657889177283239398139474731059518886927714529986181362503642747187349007385805536477068863374460359270315554510979651823910705763460388434436336680527239741920324138629350974299916000175965125201694374375461250993823899883454687827936275974647395658421983588229850965819786702528950421457938551960843434707410108354661684441633824742586582170925296513586205297466771036359268832119124058994959759464792036358704195949723915117105784977410317441095537553434682578287543113072434808095279681447758363314294239836541954316106548260886997131271852444411912505228687096718301217898724755933480630368716979966703121167373760823839104699136931938997987270421391411584557606590038263338741339259166306445321839058240725386887930326647609700948823601459826606132302141822818798662830878656169978695069919646625611360654098911124951052181498858791352480268661053719490832567670579345686169085647836851500730706194104261800898588893199662583002629412970379697615890459093647175032584620696100232385201158529532756869189456365367542360159060895749720388079925693012035415844533462049005851601668560935229482067890256677194678685300168224885053106310014065971824037096968207787269968529177001290932027492350346362231863397439691208530394731469234802206609988270443552376041309561344844216428530927176753233301790064110436855808580510208135084257201918137428992064511145332779784162214834077459786785659935708092757523667103781420579577153748837854345525792712119559659040525867163499170412831075870611450929111997848262654583431903209615130092365845626970314133315400015403059602029795669748464333985791390005842611182975267023024021177820907359204858111609973810318695340043639640915780855561210445357436149183544144229622976915744894564246380406974436941095822775180851389674048380518602499728562112631039927754691001283282298369643008544275085155821245085737376295554549112277461337505562879356037344210666518825953689402325505661230806647791378839116527528358425453423400472918729505228585865928700919181618048636992117386849957958813717567919209098273328441693413869508823892999485991447316108649605141576585007742785390179580928675597597211385606354157387763667621835111743727575437988269633139159452154442241316602870744266274049658095156790435609135774733286232598575480659680900242226058483278502711467631407101149210833694946937012940944029381538935852035435987690771349989720746294062276805267653829938459008651079463151192991834610686105717274105329531742910551006773740609358297222201841358485818874245378160508572781086834172447213548680878147661156589636166959657773968281113400248604079713137493889615391872272994540749950790263165134876308605344465712468634308234521823612183975573925897078627418724563126227504699844039369595686494229623633364360680963115310655958925634588743236554837298929518945664917442997139491135008420427871895094945898727944119106144706385892321536767730345743918244194608493017708002773296864333194568554332791172781557812828458017435516495389920287053378382758910239471243486550152706227869679473634556310899313033033569975025188004434992272979628014934474838675857580156715791700613414059547844046931283198191195318735304535722186433108371668512030144559988365248624789788291885722430483524741203565392458914651308640030472514589287404194551903814953884023491892730301932766326913017215110070637396601959063101672032528416438025615974622672375526656761077566896554320752616215587111564104387644047576951521830999187170761766437111078629656882453228108176839630802631335240586528319359101854997713275736752319164815373054256150711245691628347558166937437705395701703302397529336511698900169471661159103847662975088468328708570951836688770468300141561114606596473673732647030096603168727331909420534292953297002842153873081609132033191833747619075575619513197221833094341378601029348312865975707158126531921548694081840464462605333411170590895462858943895621182978713879059186292495538256053666639035186202644512124520740281444667146822488095458167683633028207446227404766906322718515388987605316919511254991077155872553976543138908343461159519432360480534631110116702644083621953441530556114959266818102394713847949923632003423476621200451214024494624588690529739975102029204528865271253522243636592964122523812525229095059300817065329291207924833947686702579804400651370531837904651338146044698427591662257687266312493726066709645264118710602258437856639353430097919007108543373037593237417652871596758425363825348568692298458315462646532718486768335385405202213789742077843084643064712903907163253520672384712421988978238105094018625732895082743762563355353354957816624652305548075149644675503135826015663294631965734857857123317356446576061748574393570056563376602590963037251826900523770568037234744154822954270331209987131461002599824191652209807270253934143820465129410406478831517526276588375787554529937226191699811817902676064324340892586111142069998675373080537063122134730318656382443975863100508394513973137466920435866435995451538142046952531082103324375080265662092601287195151650308635930647371180411167601017901339273048458245631989358082367005364723551160467335529236768401503490240362842331238699501210707207752374064480538827284921642985676606706777958384189293629630624206416734010645685517067215477551909903895143379555923206971280496115023247525706956705500785819736645745758030063875954892623143505028771488203173304934421530030265624473008905532831048364648808559229446741535947868852230859329030756789143093756736705179497779033725914837571469452767295805215440987389603401786347960305354497396337087293218653285104567184582620868540418190112504378383282323983958263904873130299146603406937302463788900167635623305026622826657406862287920516494463169972870069343318988751557066480186317512398646687652657478845986522378820934687658945872743885180565059115092622639592102697671791815670125638345411423743146418224246366234671750245484864187162163596968865705327061045287461265191219429370121338567173876169918521942272878321582218507391335166288046039942247106228179381051954280564098020521154973070687410981044478338145883948878424189224242471993092326265007344251965392473184739287496111720395078830826669174418704588053070655384209407555364478124016298308231365473282827544863191133318271116100412562555183495783768753048702813915955830753690760932628227386794143579951082545563977503507930627045016203070529117196632623000049811247934298178450095986190789737518351039649642059569475251242361824131055444086622443848835650421784336726323557269324139840856863521105621859876360192232176203998743162615894179641061339086003969134971745796341642510371002432337915180870098860230775499414226994194594475986880055195273990813036175673863485965082439112728091188758005350670740476412066018403768860364986585632288947502020783715781366205387578464956280025994136366754042506739587801226260278821842755508153376395048467485850841003914865863992561676123331406626926024661513109407725220199152467264214832120510154269356650045832788216217932833046534071133995071121742863591575653575109739481614857579522164696019062523935606243307410980324513692856529635273839658231179751122983883419971744876355294981566950924260317626606261515672920443946325882117928992319948598471994054737225625008501461776536647167361392586344345307218704119099455862761211811032891864872145597237615703359287146202157765435521965050738691682202317875138620680133960125596787699951160173611150237056661864408741378565489185870595530322435902865429970681950945192846537786467875440115506088327674848485056087448653237615722699580520598410801939327706131613829908062628512275558381942649938018225928553807365082568502982461562428993658167428944950928368636379484285100853834237675372982322608517407571772028760532894810438285813053529385947906578357185883571565706567762459237970226650546492466696434988310504263847750364153983368801213666488768242623366554367072285037418937696111793115514028656710318712140454477205758226304724728157022620989989050707563056620840088757171723390896151922786329610721795220304509202804911306454266792586896790408004163401590876218080620563893289244370450309322335655864020221555780523916442378240326495864641967640805920510075427929620811746616785203473847178520718219685850425786020998859872461332984681045177815294089538254254427028924314893722367238736497879952938277031105931329578289934503067024470576091273275231683543064417046088222533865843703588879658267075153986186016206558679071941931120171584886164511392091620422103989143917555159438332472594894551357881206314874963272749671090926166826873742602094469794418787672560028612279103115466474617063605544913537531190470011082855506400473034388495576344082106175122846437376481483564784261843758837349607749482723947062075275609841960622203520031075213391204597256560397237579539955936333715154747522750395937470532962349266813931250503220160628195405618288556859439281436847841467078303580636513377888359948970528291175365768457743208803727930472539478716119635362637147821649366944708442033812118383876522615921481396872305193906139396415038387618406039988379355153068838198404260129591314844206074135299872873307929772918515532681589479451162051940130683048535436777495983279136389349721322786840091765041446906078637899834932374337726605254919758246858672759424942100162238255963241135370387937459129364366019947171622570817791444387893889412665939696272432738068407554043266894814863097660337458342849730701169611608511003974468907176036531097668038119155593284445128823692620695072060487394191458474751757465523160835952085746267707216893066129328786349751087639109144217644470829437088626594644987942919856528089044453946674208747023832125976622818058768679731580777739496225528374722981370515429134745408269709113917910764033560164977948281780603189106796647788049823425548463403513069608873365438878054371336731606980120178867754317667768394480650635242042950897839885491502462033347241619579371946556715389946611749355429076313844585314333430826989081571686750703345207864050214018372572629082313972265094309861888293621333434385428011780885823614393921431012548627254823500319444192407537234897722751184096901137426329042752900210243148571600758357454721025408207594628912612558560396945249221310671213702303792777223177532866599345033304811714068942588535968188728233227338978014749480776074362236424000289924442166313719202170991538830948028152607480698084417120728663198567568618703756876343529491192682266902113813561865374842996663506141290433247781037011216190213188945697902480192598029570197329431355301748536737799130848614615335682467196801212869377055690211706202471654710198138897077940006642271981257462600500219610334161744665823568040098153334408726085212031548653851342158701954883940976782265558315733274263254611259566637102146990589705825686409257485536148352094424957510996446399370768785964817452079458157076963584660377028088178781722924064147118441549524386545224536492320950093297918303349775621407421283843520604040867426455740134886155482858066744196223367103643991910157866769024532777650446961962579181809771770494539911414417579645935516823721215382055551024515562945316931777197576340140532680120575733535463322165641859464614487497910747563791982481842316921448357896357932860669435052943955463707266774749361384052898610809568846863916503836986057688059612795487539635498108271873366644237324445067374735146006847463344987880324233481793721435536047487971853591000403529865310709447650145199674662098119851689679973353081578984701629274813376847349327398263765631222037964106825430993910831775920875071752245898990258541666432674785711694695590121121175551499074969028919712166495853657215306684879606355075227962881668800046340079696766992835164601765157768555206325825824513943195249759561636823471158089905132750940934196705547840198909596986987417737304848095494400191502770685278486875139523501762666738907935839100472011932880500025890915688839302042726970254225494596078142195138819134779897715346654271914596984967807111160355978666400286960487313145406130219542846446852048681964154190618851518184879939421339545596362133004462484652486819048141668300829670055797999920141585335316264267532630597105542128521012362993019246783533445892499508059741423050767697536766573253012438173328245905939568948568483092154202219610418903962280492972833556892402397782110357459840638347443588179807029699080733661802517241760470728355165967617809726246669834889334765351269932986202621564765780498686244588786696004144996360587112920648383899093183805846616693062492045803819348383316144010808275781385482287030353068254360690827022993216416723944744509391647163804543878693956439818618368078297398690318592252384137084907874024746955224282536960782801524881199284620065745685434306841855729503270760898678633948429802046004506537024727255421728052932497382461497105773733321687548448078536913562663831187967677196189582228771617736700607868822028456146699541868666159151187605568262080517026602879420793274081564390132256790017911415820043918911580739169825534135922871916235780522143819730188098255428760846137099743351854975849255217973325951028680676751506829838808388942950298782528334337013329914669739027383776308405570459749527318233740004464335007465113332755914616997665240152972546775424083443334572394952354664316768034333715154867162962387608422349000465496575091138201531165907462768867054309431349299502410164050983348803595531735616351242091686258338048982406292339027949911789184235036409458388777856610103639157185240782068032391282728588200716566039244964029113812167569528590912457174961932769655586425364213800093133682382893029989797785488701981066413845241428595524009935210106501291924204137741001134790794959828807275382360719399348280452103720005132231159784536086965627153973985239848239928395307620036450114183604485920537266358806793406252293877441621580764232407435025065408749565654312205555934688285739864063465403433998090166830935248995877871025236899949475949539880450538491465947459879377431287708087322539793831652086304787887244953021493842801649269516284684323579471899143749772586776548461518666490921238039895400578825039405559539984873668112260762634834449303948562759754968298273723209400754329265196300720027504149379883419889961519081397669391555061091808999077531297202518710673316650616513339118633500831379070051076545262871712581508914854337585318403278787752037978588150400783573781562215296252145932112051992695521431876184833489545290822315325967741113285707054880552902057814128671317358419740240864830309337410087003180439517333205401140866470444862811265101403117179331655641385706365805611107919727713140305323927995351689007834774816156612383239854352564594023444545944317772158873904143761575974365100649185909530364379691880197510194299786041510392352382802794722676192363099308510485230302859822351183127259694174440050584286329423959452282422492012073689929712390883909883121246408253052695356317903027565314401882871058479141612073913436923009752575559965050925273180785658885897966645321342886382700333302424492035810391289064508085108035517939696488919830204039056906244297254757528937052746142673552569417812952767390352078143798149675957556138317915952524065376459957695888958617815018402342009317812454554651724054528394967280160518863900347405992502680142140576013952230069905262008671553700848851129401928466709745687329592431703756795277958066232031621471301327756881690159018671625495703069547248579653067028484264072350550367775064979561392077081065406103438782664182378356227300883691746768108526278073555892591925836745887701332105906217684055397854780993659940927320642986842596617673737802901525215958187728399297119119915685540249830726792330209376971564354498361897281614353544437840875020813860593820774978115709878494077703653054166792754665938299404102527093905588576481640628159916282372911864587299959050870435306644873140478074223661016641357963532909568566117369892323389179924672576853295012471855533387077419986623738081600686368148656767148296685534813370128599859552855503486014496033663982817307447823633045314627536997341782778705007367230469539605531444264695105323720784245717626603630756130479018656096805228262173624117752157999565354494823142159630408826968624008115885124094827213660521899295693029938775904380534608599242464186946199695511089712358048664237654564419948859346645676729570806968688989170384228781448200098746386011544916716943753111474176154564958579801720395267260089036807220604896941103416478549543390303369734517629167938100812229040775001701268401909393845787539355899757810078591281227198733590837859254500621063509061075740719348981350620013809199015142851051037253962546387766442144565461287310216411631675891808203751612135125014483214338943110244031311394640704973030283174685868846925180451273522462168737570648334061038317012143609003526444060882996388144416264465696864473036953515637560868673722285323051360801525865837017076318330071551949424507167666129857344189676513671927827939218758608621158947364303855716420332449307952523282990497675880185885676623134862565990460086942142019492378996514864586692625046987912304802869468786577720056620428923049878202982867961813778259215499048589124318746411903556745670803290585582454936931796120859715803028073229666719949487241850540252660126199392234165827637395050610563971752184074298001713904694811758396439803715553323323206703941513418791910465184081890226555122192497723343944736495173141663758415245418816193351892790860464154075261127647458339216781857887099213274995247443915250337072580623015283533427336052538590823995591904399681018998043075347183693781344713587178509477968393037424030945420753567087638429095840427045369121541766705159462524376797707841365517555991058992818431136693494564576792778653980688182975522787396613914636310336742369513912958841346343832535877621258499536516971977693016489127119515347846840235598256774160356843732222064971326027820998638350553684489720782952138222753052474775494268414478775476874538563618816268499704456633440212109231996696226541736184452838663767400806933717092887292814584215098838440110193803998413269101742752432640867630898458313272045030979690806394054704040657421464686031152193422123423354420787210367517279417221467763103553929566687357036906686336430858644216515339442882736932997776046734770270428821799020915959308193267249354659935938312857263084246756097260478842548387410438630802416970258723218637236518883772601701498402387943848645022743943288366033574232921906728058500288986946648040608691871005475783854974224013576757392046011179338993763862010997244712214777472811790710871183021165900098146055369455037190804629876441123252209648552717065783876587567097019853885636035026001762770517214622456915077894601946392230627294860032046173201828721304192273230426559315934910972118990620958832957835868283818747934039498763301872529601726715912224424342178648377183229686914519225864494152782513564181726991427930956769232238828569157782581885993684337339665289681436865546112443479892140419728282873673589479355690570739500774460889374465327765812171317435176013825744383484331982080409897069138837583635172175097464166622779720155539219172621344852239391392084329425922663265389282740057705138011400763344296997048299085461290930420209486603802364587189434520483962746078966775796782172199295580450389686504863393570418304706250144719505176179854703158747167967478174820718525447984858701875038970012550271491019300250255090312790440579930985905344183255694548432886905246059529228335587803481744965880781594536905911659868303958584746402226351734966003274853922615277162896095491426240908646989663223434260956589972367789580375967174907827869316702229527503762931406570944884013183538041464952399206104178523437490131930969703731904652740642907400012677218094495869170932600747285966279566974375558406971612083806122284737908293544432626615089509781900003828747465511300105063240617513560257728779896664935465502055212747197326877625479575987240205235169149786672203618563499139123170457940927244420248719778799048173087083041811766234720950712245489116980911440580975217344708096016070677169439166582941271987327393271316141578611261536834912673395939933753610023505855488525960270342518832736530715083052151715764981717156976775515626322538841473400017696223940894278506681227180499370241832844444029375582047163274445260374330522267396383283767749590336694627890997935897575670037912544154872875336571291803326645516052911056265044493915366919103905062370769071822327879281837141031895127341444344896943538402488276498950361236782790965987147792858886170647435904911486987565529229383924254671081265437838756235120939244596135544659085139405531590597510663077832538363161092851930431051939677861856231893516674862367909676686138227865688434857744728603168204620331652535809256285929511149704444516185165953724493955311850869790534450603805972603793367069534609412898987557674850595463277637988018748188182586512130256792350213611776561106099635270690425119710106882270771302546560636577014153489949152503575938810368059118885608527949972510156103982586499352792204688261648149961171479085025908567972902506163050964001985117218124757751171500203321414615414139799032842191328868700222328722963965335946222724178181437860306125973645510006132366243012286862707771468799478190992089779042880117446985056375766154817033092602954453471202735065552560739099567882468483828742239403183990120192756820333753232554670937710713278048920185431914309000289093061239120118543141339409854568611436849349799996139377180934292972431319617216616960521019467115377045085412929822557294219439532752815687248120888763978484076351916812689912835967086401643768233284742091308842256518585257449867647909991155921865277427223449220078316312744718561325711939496648561923084826798716228448818324411881659221021217917051955280178950276828868464403478475063460662676074231774932368021871663240020475148141533438595804380816824327113371918894693496055248950082932396938470853282333017539644369570159327818109735546505553445585244133107802736785292525151037486968756627168726543397407996348949503849117194967777561007312321166436289422954826583616353590057593388924594143222543052947708271387257191297689564956373443466460582046737737310694552576281289764898032312556098975142390059690106917315804704067216712166700110451054459399931022706365127623902100640810688275734427046329825277041078920825265948808619094042030860439623520440516276492817345036754342235286659309680472149780036289565824058044175703591763130100729655703051876529570323025870277648694485403376240725359353286845631431297732478614107729513840077117015037247884652988610777609573307713933481980452269944712656763059381025327850172722116481597417763765811331915454915500294555144651344260251116710421667773556300865157679988586990497433549326763751725108486313750489610784589416365014881449576880089284115525966463861301610629274948840334992961848118624610734707573500157837430091481038822569788976985609363954582179182903261984895648092746404007289124886668105807594884603233728200946805777702406765688132231036394674607515752736798586943285128730213247698100436362894947951884518307276320422458076999569519304923804395346780294153784732776313693061128752666592818094238240098954409452773298280412562506609567893777092846020921792177055821574964670976158939897977224139479528182243828314473755913298989136225169227243314316904353736081918421678022696723523452683744771070605970722876336295763018212331333972857866163237542129696047375591661918862355836476682343872810642136996806708431124175001338044341318086068194625363648169102728029669034147273383020334195105694549675277545104141135077576230503125834921444628367693716411683631944361541446317923495124785568781909225143163424994212743287665159106570598120833032410790657804229367723238305612015472824523965250635023012067807402000471311820313839767567971955638319872086078954190249449379674015650522125996877296521351169155067650994661785507237989643360961721604905666326981387170916547603288675839988388839363678845413274693242950251644601329351618694685107400206515164390657023033179974509413994323500909046399107910197461687148293822023805237519489012627740397602812771270275800112886106254562086052261531272246973267305605559566631008380853470813163106386241087490975556487381540496507691706244548464344342551566847666671577139057203519570463544699789264999396110009916071821022175909819760050870655309972634944224262373498772814579812605462830753116279190909754337329742186234722315966696782891587292324321146862723578976370065256863419346362709934050904542650259967457037668869280722364434483769909757574390589145702190676470347516798305107334992370080842360292985323276533455306662443141785981193264868050406217130131080089480681858823554696384859567316453188299986870152258328190090957661966505752603051575300059926268331330207362696446169800985294672894321492575681805765938459788127569435365027493845919384201701575246290745462515762877450219130190179470956619123434241053348302212722920434384722927658940830980483111983027703050910654369964727437867005775475577859777708530525494179554563766960428218034355893639542149712826204696227898859760695232468716424039272353287611534518736912356642535946546621111193921820686916037111969014776628354029555471116250165111763311090257625703099992246002874681724367418863016629856291397881983691179404017539447326242569974171965326155727800670429885946930761278978338754742711551157186340322041594705028108262929352547659991177067627985579987531149408884779165006325976409709220358090637160562020454327354985021223711613092762449062152490247944553814990577691330565412655702331468118120170558234355317056693334627713024372061831195871698133194403190177261453137057725524226234875512218215086850672678819682651452471457549518866495340089716157324729896262562808270308653173129807832119899577258636585901084598174018799449534889670559877051311771352141268750676901186963923791114039944818333446853236850037224769742234350861370309752831278302794432977601475838193215026550871508893675441065353636424773721641839421699475213872457799242119463097719187794188328097403191937219168452586362276299309012037593137129526087565222375330797677437017758757359159478817081640793882454983445332044904432461764747481711256527591773568065307476845105009644494217971909286730555866071624098631575362118901381439110293157224065552082795358209875551262301240033731285990511884036884379967064605980024362457912170152082678302314348032217302279620683020865885749588492949267513911827162719021298875037181949796652575034163456596944889606176298249447372325731265267358621983112127701027715757914328166447589303120398928701767364147094988740404962923650078131044420247603253733003634845075585787875566808385988032366071114614912139763992453452318393636337190253119932637545234835090008450093843619093177161594115598013378649819104642957120427311193993053147754818288505482506253011961629997063487332557635497570295287188538755712242263899102725868046741257550154468901100303272151496296970671604746408069361107611109389045796375064504745610704619965213824371592126711475314728082988810095723524103695150564030182439067940032293114344929237472061902802841080314406896276101840328747313373742307783015843682034227716575063667868716399835601727389416712981934305749207484285565546167768928144224377691207949666898763578507628868164209570837800751701417504285497803950199384450468548167117283780651535131677889409056387511991892408557425835616782779429507220544390157829204516668719099548598689461517034007767403944837647077673767484556631320401155742272705029307032378920154898320975909358151029314521256910284464626270441792631355022275104292340498596097030491649217562003473927098105707575693426028958679922408670132624143120475961302161662164329892451274273140228892108930672341080064373723501264814171806521538354545998285771571800866767844161192681569340463568492795255735153420502197161074062876065116116409425448432067092102298891885165692783123151446874041741970594225839601872338877933585084139514669991656611432138322833331404837749653850746120345328405322626610285622492334530791272610784907176425578379808738490923635691187350965996823580888825314021142959338177617631202778586896639416364372060083731302523581590835069702686082490976067093445760486764483762702266013376458851940915571248151837551152372983042138280914304063526210355123973028325939929578216033104775079256519557861260248712914453363956629603302082448489795441491537034887432217262848404872051076755955830710918375209661745528369098185835660220609717693081119743372268839462644281928459756033597136732659113168333686142997247846323616295244395804622394826170358635722286028890643944296940828384765474405269693778152254047693040986153896569961288971755768909627310023969295859748507866099830921747140627852076138644598554674135973289396904874384464869323231553464645505290465108235819119184208679223555044205020971644810793449751198393983951461251910304103218365452060428931549168144061775195310946248370358124076737108003100348466153829907908065897207926688184117649520169476417628729500408937136738533595454742262268596762433893696307721247383431021493888861179983565408737693353160255353987975336326318204755104738929776886682645614584938877403726276286839047860421296428638400684316296711630191018055696351110646502382542746759726486618405764475717717599024691835210643359533980366610840506371936729506528092906060064623569180027785235524433294411590937069683231323826615887747178546514575186343342228108938798706066465297915810767179035788053330967760799741223708729215317275504922397546386545164825396303227198386097833571457789718985040102694750742178537473031425238062449075802224391645165756156186722025291189279316667092174553221760017844212398589093423677035442880078241739308140280001755278402594322651888106075299126882405648932873822892740162894786747581677179535628035355807229921721601471834897349231832282371049417173530913314150849078724773129921782803312365374576889017057245584578179633453040634106511301539953050246305531758352467840044348276823929688298567880972301646245262291505013733365956467760806382781462035565236834035831712241159296520183403146165999649534068097832781331383531133934736004415964923171012008977786275136853875157682792402062794668897328782093578856736250785915208724910685772424432327106466014125185264198394134315451347148864799308365168206381504953216914668147532096714965256296966862086304058695817712365623906257052149527209865143503921643313766851694675497840320168395075711925916178593478118909712301473265269610521202727965770308446948919705378921087511673146370415468224424877346272194683225600182526003284603965040728234040839374620828216844354286764325154936284882137918790831509878824944505964115068531965560398365110409703416665241960820525347656856234839726995033223155633147619604059871678238171970749135138611330443912320140262999584996910170012989950230185291076546642611003562761745470591531698296774324943336353794059019073872221989766416546421537867356151712060100888589220603039176299429015724125090519440170575622458812197796865571832330574816944060329807631939478046000316508968009117885049309570836279354390816830869332094012243872876305271044506342079993248855870614224506767014076337654979895530903286732464790835153352092672869694538908952207920791246274817429268186579801281885024028979858565174719377576495983826196512301199170663152747057528426966675581030380926687327230501024092375476646335951197514201770399657769351561520762922988368405449640491712120251097600344802666460708228209399573954005208241953626070239614846514082257378423019440864439156486508053965957529631514420418604758337209844262725188597021380262357786701392254129427663549392809667194388934508666853013874856295985159250342837630335859815584100079731549811346116712100665968137099020059472610807109709628441119952664383388161379274348061258613561134394294070126866982305778449220603428160052178293093996449422969720805365398679853497794869415151117480289376987859692050360832367436163255655197164227054131744142340243612091838542540472969003855818633673229116321189661857685159376007453106205285598975906145515602903713781881532398248311839601241528020617094028880683097322784039203109966906397913633609812954108190743256949011962263828837877134006810457274613509714192850420265628681849533556126779409794455183743324706928419313247075423100606081223626409025426854355720216873342409334419462736076883096798341188365331559820904935774967973815305402359388858145047117043439650730255063446077380607236570912073748634529923734623133775123649468108277909656224698837675895779545963114180945493259607258822760350751073032020070167657127840134573256051450774871331160913211338280161973379193344141375405197834416371239979948995219065168026700703453461954056423182211657003829075999716003710441378482494307310803404945723982254714099476235530616218179584110355631121730904540588110913925143100488647658241781201217815213621054106481715830199687713106652093953750242374656853940618191272361716060210465567765106735109791235519354487392953214590634923882198407375543772221965110126530455791673675284098511044024075330307442901594195454479014069036365450350506801316698965360087320239338409354069898807743108346715265905275468892461520464982512916427273577328980231115379626422715747797410384235033394018382307138176417664832007720658728288903059122526495061495825060495311765495837002730306973566032162653329770312139365763835752775026539534483800195108478880080907494915234476154886886304157021519935640350366489343077678962292501739451080262161313524031391694712467543735969967942979743823156116733789216546189709830073153170840288938564600558447293058283069537477839036953878546172593910480443729370312917258463443508124093665424062387646298985172421900884710781315224458078496623191277524738917338211311336816090783267288572431263144469394817031807337548781461880238759786919027753076512852833474634372720525097791027339289132335841235924092250258394739917828931925051304125021182317282358862787682685681709984269180861842288009511918067212109817011529792607576247742951395584511586097452596138657404341470121566435493703899003656328241143952386150106308172159103643462030793193649445310903282881700713556711906000855731550927059014505699699372552083808241290364333636750975206531104520878012818910130233161865253907733951807858239253992376367861644322446776869218804429480092957563661859366587698299415638358017337240266931645048531663562713743175577090790147723971171352669479540100086134144838117738403991735401340218759856247517669868138991057654061325799631333309427523346795866136163966227493824841578627152628694103362022536706786367586865781755924883923973798799142288243303998804937481262666175475949807501065723744397933589488472713419197526027751625135936116903167510968633493397916966419270198931652616091678528348858627076049400474828245175184171625407400773768766523940491885660402765612695078259063983275738117698807275847992403702177835218923162036506951125403223210969405277558802855020922719453210752033889922473159173753068783992565124671984557837630902984580981021286685626954650975986418744859092160142362999937709992352469606387342204640968378261211507935273962735016789653358548102674842553137145176867378601468679104359129934803205744358949610986341062708393452023528906811939222858142020329080410812496609075988745488418651062237645545052955337829202875043413527096368312332746983869714358957227450646264652076596519610862357693418375069007251132890787963945646671433071589206449658402346916073281422335600376337656442602845053312163985170495571141276868191935174161559813572682872922500939573655185351557405163127208379917811250919303382530889684402736439287524958323378570250429694705760072296382319122315650414896545148491739362280515588348421537978971293506888250355793494549096632273804960001861123707583157430090790477207565203546443255002134266745219954029686625294623604604682698960454563241942573976029411780398954561524274644420253471679191204070688585673412162171284782655956690129531112377634592512793774994357085974581113841336962166407290166597700989297903579454303011229092061446697698660017574986552466203590281045051046323814323681490550800741043136733608150306179917673264334183103798657278434810826108135891006278360013396680560068671554012109505292636353431227634014107310689435022335936991582188018069010118625517347551949008419932945421022455797964927357246058294815164664437445564437013674089287283954658719287082688062826380196839285363139701789586240841447709140749685272100564476150266652518065433183888119061103160630618738436794215702177076370601512384488194883173342924312485188765215329043065501894277389049614330276205449476499472724239886388239243129710360511275990002442151749815753965178424031207968257004153469398858639190541542877790022465211621595666531165873642870448071712385051309359497148405038410143282770505800237259501892345164246481278695522960113510474474098930359594950459836021043123290095949599320609617061538040967711395082235269460306956269646146808049604475275879150856795874669416510754181667278387593765202013384205011074379337663744137878964052396036095516301844607102271748259652626978299399989937737332398803125668048995667237719400875239636005822773742725685643655242522815284168462826723489511548156673045825770066305270760194919647716109420656882937319655360475538774202035697297794203151346677911186627027499418729403409466945007597133526497189283771617258191132975573404910526282976228473232520487092426953266955846389008247613065222048875237035421138074543673535141099108354119051946954573285385089147249972503463528902572794768429323947359389225145666170880247819230775176407669249147100254708780204045655752674790925543462028353684436091339786941803004869302492218743298083150795389857163886823493957425203604303772164901906427769679907347758264218539539693119273061126304817958126911792893683232121634202450241113808029827897936859034788491290120907515829106887433342944534138313898006128925761360696365111619738143436099332717688191553875263445749589960288033904080763807633027412199417123468855857004691689723873293573766586098159833766196946763189054411781574009300089772305674853577288862899888436371222379233612927655158605621768894717045738822640561098398118230856094917407268508186325932444465202436007446055965695571338404416323430549134998549095791820608096978184303996288143902858468838995189977391238459237301586288668435051997406341792734019795021662417694509085664638201494744306048153164436573706918745146204746299739310479706539418843041144776598866486156192659542377831853046774598546480745067077888476597683822816006369506141991702561179902742291501660872476480310015071206049690317525634098380018275629040062282951572418681566444387422000559789689296624730568719154446799603801288278623030680719837601938299232702649025099695165459945179047143146591928093984742825425077897335230649508758514074226413440891315865604187331531460898945725942628045972141247080937892923241414660483952325422992827133632965535803292050373444766713560116073797078786652637423196229308556949715469619879150736582402832205412983630433568011421722620694929255761837716196969705656299929543450382731951943023304092911306288504806402472804020513061053778520032620235296561134550482456852198532568528112254248032978279771341284114010163495718213745366383936984513828709078218753441325140998628432651840751659785871634995905559389066936906294649122406454656029642257251447740414464379737786543525734414447027070969084128134049448819072624089318574319766299266353680973630679222771952575973842610508331796469466451675703093425221636869849752625626512097499672351157558555843825077645618848187823288491330980725435399277493570993544087240042633497165919410497734235435076132858514469072303711845587125889347589803126182269024695778754946258172949077450140874902711711372988492880606053861917846775353867581528578817054781900234356189976554356278789696481166112662897303772179479004621483090737767113131812487465982607562156449648476656720073422821299815508051190071326493924258851799832779097200841876026524663739848844089521033077572721865147937610097880804307220773592659275280198509831845488652573041555335100169228797369254970918236458055981697850764114495323864368598237154235600781886998305715478505275109085691489489427535056845825747657080646918164498643579152064613630202758196155703464140390887789648868048921147498937097019654079321382259385963433696910043450386661210304521586158279134203507503563355903756417806424690968887095401170856126977197331976179412331582761951496539765462324391395619938628649500528154550515422328028664922675115747475399904009234799898034958190870378071307284410617898752581447357124218394480253618609118356797088441023565983096165926439531144082814717954961491194426918901511500635971178153452454520337178602480109260325010073473829423639105917342283313163472461609638782033664711150048142784469394136891279778781194762006133449061403465543084223929601947074197322960645454654000156038138065096976726149998086713737615989302948516458893046043682785661978104748528120616247286561682466350648916672055601745706761525115072768876619372216152502917722955216610756374428306169788537448296439191992694494330472443324098934759144177703070667765296539411309663674103738549310780560985224448713545509499737767980589757420296071035622788955269398110296481564096132453050552531836709991245829404084291013210872161981257723755510516937819922930728590418716451978396947443103271711187404725842176367210723646749465565703505278618408849861344824903391343834002090153872521893034618719643093533758626601304335923559203715035836472994684428116669606871130795093367136519004512402331219053145547331117713278127496297747103447150806041277666126548071702777710755619706381583032088069153773384465072408160751934747524871016056750230617433432951413963433157082649238877608274639390532206167154571636758063454567791790583166356311829666193939864282135695301642612604500287414978832975075315661052245247090783179009353577917549279174857034807951972514628305295573067021063377326119813718937380484334006021603320360928367298130081930811211619559092862311100240703860583983476648427346808822588746781159299718887042912261503881928540737043929302287594321197104111391364954810306995877166601154714395672958141905169331705038546070652266612188611688006453291526922393719065778405363508195568230509821530228287700685024014279425791526426572598029901454079151716156951303577357168587289772951205406328930441680526087345087485894198125878019669996164572786495061683572901747277500093675628912851125328977382351845349948890773163703890948761662726274700801698176656396228307112486091149562097915911670826512832498544942018793699183415446922307582729221564526374307379077088085324687524781096187655004269786209685899959376484443638985288610666586992062908635734934011534346783817698468673606543547534639252528355202619408158981409615789793821346382890409547913831527210548672838676555859919359854161131596366280661274781078757022675214427345003128342023806678338972344895832770220069528755924328957046558821857532811492422336682348303770340240699697949959899162177610583940801059576065591795067946124105190520165748290092508742501851098844619608444476965666327494727147500540957183354920829395162426320499212199292350247910185391188539811545442189856481814445783672315895983531227601364289304268363509502946569028936836853486609190836716966859052906784471198101435894229617838544047187262203300948393880167483723429571560475271435849152307417906401204054379984273716754048238445974512245297672854608469552270509928507607981739923264784928658238700444309081525966696962772981404776278139906975476718162528997068560212951385249818226996027789134701950154976957864890524178900799734657780626649369301593548160715361710406818045333856805270819508899820985415344279981678747475694289717162667813178621765459672420567319478020907559872518384376300246998664584089959329936128520894491928899329809799633678874402906282573558847940059856468885649790956338389362167592849970319581198998225322924273709871419259736784164111351435154759808493898259937147173961726818922193787411567090883486704624928842846919941991092435441488784649992550231687926814652756677244929440387923034869236016248611927195555322951519489318894208997674045090614714853295676941552923142918239439506383665358647301719985011884983885232610284246890783612408704872171633127514351533771944616970805993911614518812929642439393808769687624413712901576144240160303455740139790339651884667165798842105146716033614590058241274667649601183924511114086618460422512979636030769013321198464567482709068893498310797156019893241729371760972042007776834145846976058609185103913558465206411024621333079564308518347803638862498392163072650399747732449565381676236466742327837492903752089269820411880239068586403963331776144782936516956318762230003229550764003184212305829523520190656007943342929270184267764684876328851313900568198246831841815370501167872144228041116474668535601741294613478996476649846546578800469944379841900776007018766712631348415203172889991426213793585614483844101591476607371203095334738746642349296784841761122288714387399880723278729830907356248432058004020007289475721522669693133012186195914129940710810409871307303394049265040063655178449707857284334512945788677473326313960885228732806673374391025940566404269031244009299000549896430453533642910976059587504305701674233286878274588614791648731194207055044073646782489497485287540694323403075811325434135820380368284345639241642904217330259733892091192498628394493816004425248679437168555094241123308912829411936063853882360266556484330182651727335088729895166007708209215472258110073456951027128789047915903641383112740655415997916004304332919342135333141000838277421834689250182954479283655176182247302106590603320640635439647460099361661803512377919559637927060647429640189325831869819326441060795925648680475955631661499273806961242319370939026368023080087137366743717627159146099663082964555419701174012091294100152418983959632979022612973675742672219481515212020697049469035657327353326084615445033005205571505312485500400633484097512148807567454889505636042116425623858535819438479445689002830309531237609047688024822723748693476220630811845994897695607957995698367664539400852988264487838958943333318182479616205144946551893851551219819810310163039170427930706113959791071011997132101097313116920648837484049498246959176154347653276116455722744287598964779496170980172457030034847138813721478170747509563588752270785702375711517024915726309612306773098068587466813408770356558678107327757171133806185531680206181979845542670801147290544078917409424761113879064286152688884737547153727203493909655779330766651838855376503355518322265518720516038894978285251988248474865529931891588891570515599483982785348200945126347322777037528638316773423457604475279636958137998133217562814472299906006032620390509671693493293769462995025057179494913426740858180664131761609553772338183542515145981642921854499939896390295325630878739166649797772633090768768050068500099602887926184848348623596183048845130062816685119674714149487069106264388816766517602045428052273491251439241281806002941677086916815042616615958893762579890843133917980764828868508506079946343502423400750418874858948996088753908055097170842089624498213253138958635955767121545344433154938629996464728746029531336021996390712254771626953876288109949198815122744057606891412842903731539236927622743768077411113792976164930494782691497187378861946172908764807854336581975360090852544335547163408558424859941227347589858919207016446937997230513425956397613295350088559117696738030483245733961394259978861077964338499960825544758560620995221343072505229620975193089290714962762018035552359212541029087070761927955655461801038335125913058312110603979118673415570228538567077701306619015224463185961129397478042044153171805559159776297291094321737382713385326999836296551859607292814550573303503253381260359302828140150137371427422760637679537692373267551708437459557811486619707680272470072491169253474487952679116301839714946248782609122898467772298525967123960378629585697977058201133945043548558882261204802507027005856234354544408296540370317451330552743425471053682694707295532304208968376208793043377275722757731885657651348831007848234571921629542749603774043622740660750985688847527078305919087148832999171037084569666201728821495349807770095401303431088015378445050056086100960332021271487234867344754936804820646194084716291174636669839129983282320905316322454084867772011525375532689967070186813710243772291496713399997267675691018107848485654516581587785154767157899720441177246497520507441911969813567266961547760995200341804892263659000814199264162469372356048038850898165140595709198264259615145641815937958916137477203567441033852483201622302699089450192126902554404621166763863630321740926558262888678171046556784826986809665871624422417224065060681979809772983295228624946066015243635531869767753444044886241962335296707865653316063744043108025950162924143461784181671996512190182376890605978627375549347968796652274426750120036858637923034804040297021058971443187208029723817225288999622962730632666632949185029254204988770383881511630159179446659916833521156330352263726808431430701039438121774637429221043029395426386394478213964222638003109681298206432395017915489034989032243776578205745724455042752573050417637640212545483225146851079803381883829060947868156277740969177655661597906604621459129388112763213837460801970783596827984137423910506212317491349855456172585819697057555806170292509450065456347573127424873768789138394967205961306389069115351074534765430330634002566034968198561699040141980455302938292961271828826668815881309731806272833881732840813862908265354945296097040302928732700528088947458830965176638430865449714997159342895348547494641641459350429546603658262648687724261280057141161389114370147347922966489072682635750163671444497298502290670628144150987529817168299120668518676215325585768607947677845824854313787111129443192159040473987819203422021966608548233604207005945597072001626166749948454956059881537511075692293638292735169383039049410621118955690578253265640242150661368970415372754438308226818377911158487815847373295951191771192931505858232676199866751555167327368943233314922034051155868270160270946316604514986196657699907381325964131429010095521754345864382002650778739422584878241273979577779722745979895707211657072831789844344417657434336514675144766761609068216833907097039814596939417319675313959524526373520573622714973057186553587417880664743807165060707386216503345933453677555791155171680164443344409243550654452693022084617447696501333098362212527836452036492735894326707233285794407483047673885968238731874065345632325198619964006550199317625152345698529865914430496629994402837876934078026926947676199701486901334515133197279704091539355842924004151321464541497464794668088533954925067881719212841884456950592175004477991340747265404433703837044585821878394444640233870611575478179766384840727902853848760038609450031244371102546062135852015870085555734921672743438218118320408364517891836652264402738982629999048787209693439925547272589371244313111513738684450787957299307296426735752657220202872006792770320924881888303078549301130083752437555491256738282853078719250456759404660508314750891873807036390733419067318384697725956346177596337086573055499237729692512997663321331450610691879090554234321958227639860961529008364020983666073509954052031116769886541540796417716719336324985507862284107618917773087093687511946863731898311791650355546252088623957677560362616440579499790855443416138566255578034990458693276349121843959875010499783349930344866346779708933051807701601908655187346183743859182254240555868817826486647424826022975010647326790716042758616323245736282759549851517220150988211903839795130136084373471137726764786195825450152486433829558810459238921284123677248633913976126083492440748666115142280564730423573245235093183562284118030473522522605239811955845142790950029594369566653571131701274715779033755367525804068950810319922901628368362987131634481172349459470043937626680976736613113598455492008904276963622210096639007443836824861004374508591944102977045932085774798408635931806852263324387848449104380327293907232305037539799324546799603775363712983374053970857240464252150158228815525148729855151030538723230697069660409824138330260164780459809329071823642892942221723991203935635300601099413333436544499100230567254202077999528339854646003726618851763531084254718129892689427073851500039864010883802675897275755373599422306996778782750124567666896625410986472240245489544583232398593673364103448498749046762816160211839884025927882486534419367407035684945311351550524834575237696737542994681370367858735450366924970550819507681442678102586604597643631291803590692312430883883235562278226832404621171014020303562821969828154814150294216297729750768256046760480987302565429862654834639930153485994814936408929199656155991355423359323706383380521801908179270647915256242028328498005244531497246067319366499878994027361103372079905897460747880609017143608182947725055854778497000029981751078400495688995827219806197871264470161883291146502061593631865563026137917796530848677381877991086948536757353330593190288855558537654817831456637133855572152019713391336937123372131573749495263918218174870276885359235087244413610056732439230995761634628528178256540627955631592590421257280316500264709600760808133926979254749540785071529771850628427698604505737824041655149071424807295444028152777927869591223840174467930760380007149721922969052652396796113842826647537958372674314264220593038986722335199749818773047360221374043867007045730353771164229202118988559621900645214530654702884316659341482312611642583674187298918800199315704488632715240019383790294903575960654449868168541182830484818164535513640152869578921463106038611677641281828061154422085489723411868955487481284799947553896253285388812983488016729100482138945177476444178524598158088447515743314221612360317047993188751816080736928322320592803111334580339271593762808000483442136704661697660496153542038447052693553784883349109749717612044726201059510380792895144509357331154090401130974086597864832897910240994731279051314489908041316784176566663474880622088012834048953747963669945953918850877553933117775017134936555080855787119464757588175940609594732686194933746444202524305924220706504052269180192590823565345270184403771837506255701243079478007046619148795174985813788233147819234106974447846926299608188093675872397990327121060446764511062981015273865180315207997567118237476030345751865858202097787643637117796378164300593940064130407088010522056440298901807647391734518268624736105514368281860785715825878910441986334726213854732655269327684868453440878448067104485969633108734893691933939637154078613033332710724051227741742989891049805832949091130704993307567546997339335623420085932986692369718066242295018230214153857675473759286296540914221390158523074983494002580605284223603810789210833516740612092424237481127735754197746308246630357610909732787478775998433068942976377559119142104652815627477182105229790633094086446787908971509570487135710712734559213462975609010922774467511081880115483433507270647924618039751391745274677334563059168722733707540873671782049993830348976154991004688776417798138079783244206224183419116543609785830943658332825907439358962902002957058297107029182108652907007741991267879513443458772433363010647037947662067666736335463173769568113946766705286987290594519793814095099505501978529697656259314641106879264455959134791481752635154457718136765767065318186652157882055062543560202519425151054048481966905362876216478770980274299656843930722165065257650220143562145102043533004040684746688048729319346101194588293116505959540842996454254197664017398680872751953837421614321210232848413828819593697149818272739655433704992158027149571869394703793223377296604329255402031038323185416146352238031642686126996919312853521576979470296486084470537581637023667141630694750946206632354432098630082261297453620246811432706424213355369549874791563395329306633263588942747763362744289200228057792805056911340666586472314866631010562616130937990666552909399266721572422062649721728999121736123273767279455591077227232309324746313082909164659673278544223953363019925620324342681506732777224484365677033997557991028580833372668266427596581638839248640490393507182559132181044380610542274977157434324539299042833605520330371960314122416172120843071070822591800029695366362733390573436706338747955605300820854126469549518454501128551102686925646641880226394952461599846176320831747771408956428099762413369324886705569098606928519216936370315581267541014703400128343064926845368389761469018688791002014680281566063948482606082997942591868659591985965082516474268850550991879466212696198711158974452134833488726464152940436252308313012580628503602222815733019599707703699380685362978332516789114908092870722904612622920880452492226345623128133234762448127040483685577216750654629471599645156302531328707453037022045542889397190747697761126888109028132459326556758498430868850436424122379426959270301039473038974904828003913541386724995121140958255408691048309353087616617194205888269731135674312327537767947323027235211393171350929393742828838102762858089097246487202435809027829520585969936748260913767673302999748084838477047557041215760437100704892593474491887145937412200560200611680859019905583985756338598629632991557429524656862802331706274486147243453801374377435026575011885103691903097686295112211328400709070228359432580186900002100370570505981015824338849789522938390435764490365100435823981414389365332810108093500487068152740143914263618326046287558780877188816463051263017904345220547797574748820922702126823763487333221084859402855087074656456261837753418517241681639746607038878122086153927346496623500149674259829253749527873520475310715943986411463576848876837297717546777241524395062024619633951412218336976691279636385578717594273378580732631835161111508881645140377434230067965793085274465539243920708737904199425795525257216260085055115042508086439256029533636783374410258423975941274026506278968769282288532669360646671130162485987083064610950677795397640400512177396460090705361530016079753217203740772201486010969102484869173933959888238007383418842229463371016737685926971503470823542397464730096956252375305786487710937516361883236579768663979173190487881403988448056701820333351440769265910037362988809883368623588552130048181380190777779069779153224613648164948169749925625921125068896069355656048030520055775302488144085265198987198217588004312145142332183993972751060090112282813958312278519402733130894669929884749323371439715046614909144371678309879102786028351795006387454973475433638723386700407667779083678788763570552472671287700646862023069036903689779790990457848954957156616526909078161729418720220466106569296072260394056901999477695112448379328740908824294310561814560279198122464438829894422209861341848026184498134020058290552410510604796188822137129569794945565087258185894129405872863707212325282388310405741795025560796475899310171163413545795824430664738750432873763337980015556372337534878943233952402235768195394797903452196964087792369285336237000046263632843045949991768368816478403653258758313002882214976267803239258394461546240906307547910234888848266769191114569602603650807372411024095244411638466831896650564511000811222819386468126574034691273826886043163828732592613063226573837461926267370328361407986706767999346104950273188290423323960340305727471899228439856305515364273803552727108796076237369599137712661832140375699959665014840190890923176630299230311091960297567186338594961281850701180957572080706120340402515879857913645462113653258325556612645367201831749581899531435745259163921652169826014419170227656484372320765698481020295016619942375664011881093307497592584490536216047966278949461750148884301396084643430282702216549855362335838224852685172766712151932038559029662988243860763920739195023565816661399293554376266478485289963378487361905000701121666050673491877652010390347153078756887489441860471638559648287416102663122573194222404977887144280098679545859859118601208876760590413173739881112419403347484777881048694081189982590177248135804034763262738587446798213440097556995012333540164229419930798383323490640342438104225462663668047354769223776544581352238696614019023947772194182804789415175569354222269857068081659724178532576048382144115405303068249169170736602104034990748406899765862547745535971273515983698731267369183937048954734380408795527757711251416297802668464951022280289478095693678685664727673296419536188908971633336045322981389412811559226632607985311671781346163338924233588269853703853331565614761503118256897108787970649581210306666191982012292379667919784479332708803870124996302938338176340809106933435942568866308885182815993286626516803995316417371904855354386901422748820826393184776036269909562356611998378713562922657611020735406020747538394094865629643712183897182601964581219336461233229813185128479764912060392857864515557874847524398358304878722672040255204544277310511857149859956709112835873286040726946435863587288519773308420166766756046511097665992161159550739122745666247412895675619011143204360493807111178359771986413197524032721761177415033213681686114748710111812455653515937989432578592230750694180117741707852990870908100566223007019242762723146621269318034713280759275217240625352946553968309776190395445932767550436223479244774147341497398494326839023970695933189622755289903738977114030455333657136498649239576643996034250033877281440398804895513587272563355004920063858147804315452710466673953539972539283811571031243764021209121478177590681557163063763461494310139212730697747216383488541056766212632251588815044704726003506428172133612457604396810901991584914408826356483535297769904191825151723845494000681634632179296227292667163147837793856675977505549652545889745726332999590008438356473368107852177134360761874153504635072129784698615702535881270375474458503264011448420282856407752831717326044326230368789263345097940644207214457115012538037223037414196198562096591371026154231152881078378053095679363508731052031048583153375458058848344225786613077097079635483417516622728515453225441824434060108083136852544781600541046234106085847709873600922584414834056764292081505279746139623864899436354856286756087815713243894638160206149182850682981128739806977281280118248543357283011342118193227928982164325735545167186667790476052484844915665438035827987626555186410141275529718844197698645398309507468431611249318112808384596320740555019281174043675579096606195969552065146491858157629419222844636694675844683382621677098104013920778179443637471225429857352053131579919594525071942529467140757887531167639993228837700343988722557050998315824835729300743054097868162775422844021500187198260296728651183509291926269498369423312298489625390477533576014049784005896303410498182111177132605049340245891024415687208856143909011602421117652619464546333031379954378313742063149589556731050430500937902213257370521269399177839954806331017478864636169296539358671887798131598042756127051181617362513805462465764909346690493984435942316656190795320729251906293266288047189750483236465315677126677041021195013321795954547771929290970184802798413524850948445401633182785580687628187170393144605925121402443524070799207580967134003520849157229879379204893788316185841100183187502083696569559129102215081197851405817132264789160456977088304582679906965261116638557323058722122862320072235608069254106642503216454056342344575579223430566476262549557705767699183450788613316774524252589597922314238698235513901537300193185365397416748206286388491548967889208109778074308476540841032601383554983130355780335284377491336152067274691663705401297312712840964068102712176321551632647231175144827594339132338518253266815525206647098088245916738722496097000928718843052192822575596152790371390564923966669591975417736866611708632167199860790368763478781228046011405945593442206924853746688249751721632571784106683604560042354829221172701390947668613983691633575219956993051705701593062450677376695344322895013678697580632265857925955559456422836781212091145048398097530541356338025672244019523913333208338585997829342714277824337866731264933804741703758500472453328696836249515597959639420591777508394972712182191781026013540303359263974174334970680723233799083584433979546647708403328540279656841907397953654957374262543391210322112430039235254275614170126610086026223074790828360510573790712986988949065934390690274338130321880241474198939000003974200966300649511057708923511411798730553120223517419421384023200382989916855107082787845831065798156013034551305643945484802820512070368666175248490619146785039810343922814230415691158548258851136829420413162192869322609441984120801149720001798800955881716264200055665763661419223469221845168410379754368146652970142290908719185728400036034504148949404402507650737708558970083143514615964478278229151490763130142330827007862061248442638282160278203075185750454332157315558983142183775548714380088184517419556657215159672081615182568536986146867151756721051698455394078671247409172791707346086909573565451432301101623183772221663195237190157680964901057580098877298671079260929121130789627100390449801493820371232395418783273560987279900950732956136396731764840548047522301523775472995727479219324223775015831292165726151478909122737296232551279904078356688020584894928142029988273809456373109410655313888576329933525122294934229855293637284834876990812931067419479439915153263759080439685465382910340221475350268930096809637992514360445519341398753425271432084298795111398979880511984125440782466905533546385759592410191951932289668694352113850618142607933884983690557406051651781264964768831817450964687912634436976369607945046200974973101047051784440739870377567136764998564000067750774984079230890050472459971462461746172589193697383964207627074583079605412900351713330879272601754870014021072855545407067029810476324521046778333972327990500353016795816444725404198989352895952146328783356069148652039796351011445819144340510055625920986827760051467595824948082439815657522276357646934869859317910098399557875983249172198661224046215086000865777445001047286617278807888040159246476395092988020099395710601207103210737139052811389093704362803264685870674891510848698102319372119496651810923447495106942171579596368256771025531017794390686551564884713241302912850978541692882532711899772529369365841927029719310581855457750017016409105406501532323403686050355801784342562418554126019843862896431564031213616374683266314363542833677784080442602359649874985865909650446423597474200841308017553190451096528229428599031610924299961425715710210025473410107115215745475214743066428358039740632008415491088092734220341658547997296820978842903545894531540068632609591438136475827240639791797949727933835371070442684466353848252648272939754808766473816560264712390463135570428675998762153910645904235131513011790169129855184644671524044931548977173293914774987083323110987772979449293278956972002309448155149079525317867933578377127441762791865092426021473731910536107722742211737803135172600426729656057791657145962172071235100884597319583942025505751217504869101289186065373982479533190165425366109427468392001331598746515149266043871416397008661063174359913218780683293028094167700946206771035344871827875293766476473577939528810697866584418385985118348261709504481387554588763633482693324059166821834544450135347155470223643547227083338210767621512473841566026729625897381507376353851002461193827342794294504247016791158516966840059618954044569174171862336116592452850898702185609635803522600827348507618675922923785069081703332124386776778729802339090558014625365442585373449748604121763188403557741020237130244812262839592891941617780695887837391640750316361341283885881915135924652252717291684841286088389206550935002647663145810682669028882941579811190040078896960887797019053963570433327103987696531359061926413772227059666911459313869165419734899435772390294383537478356679109029512728265306418331707927342375518271024197964424881074550726386019102232844670066399921873619700582998119567078515302553532099670871131734833355175358807186598217203399497222872252934289156851023065888206472499912215949315885755555742494857405724359837625245895047183963948890733946035441098433378278488880919739727948107768976770655230650945170167780179212477469481830724675646676383016759953589928768128425656919926677721650127144704103135995767663447870286445080375979656481512496219764266450548189368924104775575184786939485570883310808305223001388751905253854923656971662815186344350582574280049650101449864585982822970495022755765810261562060325395847598505230926866253690947654583162922969322100111849260333395909514782881781140444009631362450241376958262223404925387685436871958239326373466956608542029740953366717931247212916554800785626981405675563514020431253725209031489055573045564601489867288490075069991765008288011039397110410564283015899271411075674953408226919651533414344933401827110528761757638808986005163393112022563148152716004979392146161848603155678150091996292257728939547616287403182162843210644624960370747765105228191375942332065746981133333235447436500212909947041777996925236094207141333584605728753340233314082184766376776610095769454536511907841831132390145210310695307146267905965787726617689211737234668497015031518005108563502693296257343870342698063068488994958970364409231254809707397933283268331784910527048407595545858012571775790472239735391902795973001935959611249731928920471009783562381918154487537759859553261276847338042303537144218758758890941492793857572691191487323860776732815748568374770916770545430973369738794234468335241164783031605959559897900759754034220581297087859557642795516749399192899245715540618683059519049177168912200811556691695123041235121066884882159917292499577670827132945580669030303471186401301442820579870925594320940390962704433200343005592981538751481302118069826380731810725570706977732837125600685857429580534083073108063137346225581299219691335227431875778331556343162000461673372099745363894243198594628243211442047048395561150630246317211348998375092197021420222262080947440702215989120182975776041091872061362373075458965239087741097567432248312413077595019126174590016330422030764545782751949399456533891491374216296119853584077796197563505448928033082358222828837846283510951398042920590180517462252527568788907444512940796282792325805610643625697087523470666802751755154719754216802337563525879190748682622296409311207090065316282050795898278357388767442600850471509089256036815356870042226900855096480554227773372425439541111968048407400892015328443683710453068962248485891675796363311590403349525004401658306753046367887540677357287318011482293734412129928208950419089552681877052689785488079632886072365991563641568940388806007567833772996108827862082870892901662359992611537177732745712662018538830227440106195397148062475234077224882748857285941006235364260835443086924863436743958651686302404037468977975875523933069563975299472251533030183726481984106634188747386592281558009091398885368871192293994893439002555101314701441471903898243642140937861448081229958744199139096005398654036814326482202536509412388884038546699311275803359095128258548663938683014392966898132521154737235129929940817284206349168865562485474408611751945632333090492750617690668654824785478830788420310080907613631783904248898174733196660501863040678485725672704573800285388904743553013980720385975578574314413497597381427815802380751668016318118764669917381253487636607019365345002525786962719223898074063856941306323743089386109751054613635394457776302106619022877509547583744575571064090658999148396750588425553000046812568799466368716759100222531448440648386376344708912102489254824840058725283528443033501617744207540485070492973599330541355054708153036475939188223439593485786037468271651635803834497086590442959212319239438425663259575728382495893386270958017875317019741860827873649226823222924649436442473407589403686538192491310844201407564815975868484788280550309694636906259893719680641994023267431930021374567700751252353997946252234766311172366388040619515931973089346221900667528764753768295382027930012241160554787288202366934033542799763271898018929930886684834956669521662713961531815736008063923492431120584041600251820292998710641508326764166100239062787550061433003785927424554607719604126143102149991028179569979765646654073403982690581357287022614124261400732438286035133176499523297900959090511066138537526530086068524696353575547636697054963662844562270135182239143319504718126911714272457474473843046092844771626004428097721058763113386758595755589605073816428111727812385363729265362555333074821082902115889430954100505988624755680670187107549676952697042301546647192711858126405289937397076226195278990621126778766744561151228598640713413427552786640981915119194693688029111753635778395659213506648693314240971222248118553092641769361534183949017851395271301695359093189958584002690507621135353212158895059875526283255216105383401029866465624499238228903327734403764453855211496998115640623892235556565096091797791568482400063271747863367381559532659079606729396275277717508653759776861277044570440112425897295760230647434055413829461845697549691561233629987141585532124693660404350965015052197745775281274667656590914957259588821145466470258835046979666820113841551524233268195324032881894553452384662815931160235205264945911188709228717739522765606472156233927929259288083037062054586229120008503899611545565758852152479523579434269944094888164191102284047960870726181273990041035484884332330732976814579963135322170620184162558274369766784626924587074032431675435353729877195169172023090829495936198985863631171369156465387556078409072501470051601765932529086870679737918499021095031535508063810391565501722333166636183220572189649487668441115040243586431491833997524733502733936075854271126824708268814886891801854620641582234599116782698613058362259180237883797024665991405464259851888372648802279259976112488993246783153843879928525304288424507431211519756891559846035396160839691577108832984377982625871804193007063043868476547627129051355405545359602161561163474682746344316515194669692726440296555220513555718997598176814486590128215410930422420352342182664939931716405541392253279343909070616057704511611632376400388633939147156827912725686320407854668345712105161111069279985047078759014470756861605687191427609324489455981775823760608429346505116937239529411750798234692705756529065682560430055876370431298448615989306565896395895033293175719233910872709600437582549661133789711894235918101819707765695298168257668867975625248744139026290404157999655944728485327835674531883311443149744854909602220522396506215734780171545235079125156576942893846957737990587086630601319679655918894081932885665871338346607961262831335176251431113364885787427586430987310034120823785565009766161394603544414880027767964753228163121865608469109486215808361918296336231908303213883495850282023441935271359680629599302351958314103007732696294425344875270380394800395501680727727381348407353306460013277555360127841833640682891344817166211256456309604189710908370384588292889482259081693390810213642707643870782743693156451897231030837031304709085374487086592843158627753018314674272931532394042067291994615733213712895147503063544824422646901890985901711170184007780013788920652770288285540781070200982515664040026015488629753684719717277661424967831191280721441534051148347092255591941592069634460250241793567327383512647627915528384544353242375087781648969814000914820150269564032331469357663280615014239911181435149902544813066850552269702205408037586354881077301052347090050384873201289845643476936681107441545757031778211640510562802103365235603619110124246210593338043822400574507160799218464779324984450229421753297190095102281353746530308526465008490691923819096225154180476485790956184676595693491283515403591371662566666981724874586216443001793442958994289999235330778403930593270285440373044738214851434031905474534546329163800347346478214147813662275352253941592658601370482087506399050087482749073675457839239253518855115530731696715714618197794916051930843668532487190027168360198532585955090900426637748292502439536093983759906915569901355700629248127729055409222459461542114646491717923675769677445952837650321111670693641095087438974937069026307604324871578000285071344787112126509693560428447756060017273576605797246179592245014135807988808599668655806490367027381001832233372171927050999275166207178482496034703946259498059856358375991046469962452012613741582811982968302029550810502749449555266590247539624785000097957061974239249413864904799216955482727266610318073999316785744258687126798603763544722021570534348927419227928012797093800453423340119419647809579181431377079621912599232973538560984727983144301529061974069983081556367821668445995722910409324560092665735680875708329440586868056497858521175056600808347876377223850272135319536071726636700454528976954894834075800766318452127453387797622874743363532906135555676117079254852586609921874413810333483226473258038601412796393991414659809582825287403870482985559321273888135296662063303730856720375418524122803273050712296496549828906544714601209645602642120701290577659017801807566579374995882670432807506403317806219277850768051771292719916369543113591923865512184410487521760752316861711068366231010409312097074912683455960880190418767480603522795165548743267380567356603237948806660626922082552048002870118273321740512385874441749765310089615949989178666244144585007119315870371640134660695193886044018847496465916761606668690891875846589868377984104027003684899534563834932164530102866520265213634914125531532004753965917194884104277407268412487203450629456365953027526348579579688096192919473062067961089235324105133679961757235082959921983808367802029450238757590938925224364920027914541415768356812411624351236482960144301810719145413389729163667214984735865773416078593202406806279216225925031204417419002537163436885620509303855476350048190049509684937731040612995506228597761555584566490040817737166508027464876538072626326227459505701430403839130670817282460193223895262300820727297426360316015001745083724218210486197772015827091275078012065396056618066518529601761824132151837145214830217211726837007605318959782506473629962750484807109554449257164761146425815332243809717164433255815428293030452758970835253438033811693017378092143008257955250387878350633703099027388976938246231704910909658425257894136348281823569585005245727172660271014713555077038946135845442467108586100795454498964009605591115378242857722218322554223434884719248666036444034574992463778389842859613114361125085445351732276030178592289780917514278076083642690124939104790423617428627959942482877844421126879755017467024365300749027195870426121816816242275051267369220126136180042667767226719289485782683415854470639567448538986983542996176825922621863572401078413537300279775118397881602544999121845034262660371249253693729260535534938600022280368563640062760168342630105279885149456677840092704721000391499667488441324891959666338060820542452567279378418474179411610569136767554609371886899145155636227434161616116807678328259295897096531581359123918758543675466992471965159943466554870739257399747224931742285103854300225300678662775348356214449380506597087991461249183142224562802896422303801514411821952766663669657965024816205110352563365650036657774423383136663730781701937714178038518235015712131698575734209933879973897629083753556385599011909718625227601892192473984066395881356961270017269022898525517686150581854141948685908747668340419593224459184655348449771121130449307761646035666724765549255976445944394629589154537490836810755037327268017818709060687864392050273607255634411231195880536380986478010186830867972924666582106581269866263903463919125678521177380367267810768628209385752057776543776384273058382023893960012289848609455718499090638303181400993651915190851379763645130224780832169037082140912774390698675514293252669100921171628032695398385611966894301453449330380113481432799694426334213880354514818403069776015269545278789145525539556670063344861443944434382997687528841635296502718485382610392891984623488147469974304914093445352570478921229736891522957995584283962665776376845976243094778699081205947155839709591816531843169844422409818825348230247056041969192339943838792921057895297301255254548680645916992549515536085357424651853560068041251249723501517328081726534633040209395651277950504193694516193719106610346657932454149592226197749777942278575548589935347625270209739213209546125203058540698902882832260401340892330591777230324326740951853449188439902436356592600950770235523314322874283639476477772760566112541062082402877125702990131067554605836284263423463111116738022751649985984558642933177576382369013940609467145685388040550277278844002166075623453843235587272198916504283371505441650947175783842511116064726946735779189312282307083136540136174492991956536144374962109648799830671581782105066283580684399302695847800169808710040516611347795207204657579137745817471761453791080423116919405590227067165782669483704701224189754038756709455921015462536904722969805113801286223751437656715547117549097226996798683307503316647791662726016503992255338336034531479206855825439572610234481246774085787183614298984332056461827750346818794268878772120645304666116509620505731044279996096768653184671264145295858528211715717665222522448397884177522330720294181508477319345454126643541922350946565151298183522242722776288180423709990902216681942394065066193604495382838728885837099837905746443954975674533433046115531882537022290940972244375576096034940312070035422709881758086254136712049448464238554613488834859755743718627551138744013950924195895206669327189936661521863644816351249063567722251774542324805454230546790162309088602149105258605959323652592615579699415740601398952487522547295686615519119756664795636222137469614176131370359908928106415555646859087017810133039784302600893820877413230142116002049893347411439799936256446870780728669391481235771767900114771730240518935967611540406072334333600412034736792628478002835817247501448097773394122242294539912226466048587165946856346729645611656318763920698290646915984087376378970076622262262211716501667966587077508065656535122476030015714427171750806045488688320676184153179792286029237494708788938422482974140700247116425764021553932225676975699737159244490587762864069692797443898865546667033083224225079874754348336113033212291491959349633363923690393087916820820864005457889717943258811604480812774456892784842834614195827702786468845411460964660029054758079570581147794324000167150074915210433495736450292497349167231695614234612320423561468664338435561900636733483852251382275948330322230908326110463820548675033385445667467467034328702183610876648522537443038569874480048728400607484814859295909256720548747298565690126328122844099635712052488023129636451054363385206328068540306237749203283251904667607569882379278936466918803896374705453761048297870446598150208237492916779148134280149860122755988167240314999315244017974578138762445548395702682572030465845675758030654295239994707092902571945873030020771041763011128952707511326023640873209515464411029678581118922691664222273814156924515587082722757908478641309595329452722134888995245617938191723160270215856648055072063890421918732429166633484962093710208472270930444657765986582296221357900650067377923472808321542545829187210572138980057439502071338276681146366918460511315682972560384771593587917614600665094294848702858890920806820205866026384953772674076482974084158671518464296247390843876411699091159858808230159548748483988836686274816911931488486467420282476981693390728117858052817000051000856832439088029737553763910965187847385083300912899486521008403743930599077145835606244464494759211458929236885864456669013558978967800675157713245881782206486615359378945038729894712525287719002354865613471093461134310785223669811727897475971167274472044541196091672966305750359069771034971437458933628031968320857618427536390486079831357180116422916275948003362307304404492650088491493005144340360305617102824721769308083368764867772164016247279057964822770440393554635025118936794337877625782829537662813570882410696485444873943679481238268142971481200756582457433076687650480958437927832496964052321019910118027502073160295102688248174065193201292357611798671518710516802208900592988452937042051048776258566454183358043564166814341329268341039304314443006006350899180786487988359991556180424429623636132702537743506716683213528599910340410515829296305868138216405815198564206958920568242029415919467678791454784970528593038118796785332246825521446309779725305246572477628348297306490497571398806685191694413771784709199804809741025150916435152282859244977356789665125925906919125703089225756951436465817146782961980945239949647942456407916690265916697539121035091856583749274664035428354835970318156522273497749940643731017391957088190785982176143510220355969688653035834126227435857627096745796350182893422238503684659546369276175434905640219106136891858983651096905554059425850928854681634271520019742667073802752245632377102297651541910308670461559399372830476869881297540337587375837600748411455433891415457821949683206972668231064994197967675900149983507088307931066837311368868259461326944699958808771907960959013828947438190815540095863277768783062770882206976942726567272132136315385228089020333393399665254805704949692650762473808135234282362926698183311257218716512196585439865958186814916675090005783834457891458717445502174760491765897381978273110066540257370159240417450312917568077506669988100355119190611291376746622197679700586019496048807264741320206616936525329133998295893153926747360360549588726001006388002908097141888464199123753828902857473979643736950573440792958424992913657618283489832773160521503904388667792098709615810352542448628867173123440660527903294267553114675178132194733211970784506481999932033363102236138868349221937889597310654606641315019230380571562182454002441147931834356334450756250786366677324039648496828744069160600316892065906950419726980332469688375432474549658196621677977778815707309469125451180999726716200136893744094494485223673299863067028793778002071945405285684804724916746978922949676270281615964244329502181566832821434962916878495371564531888053165271241405956876219341940377907238597454604621951729176504745706867852067315946869197172200036039617380195111685168905075812987971597081258837017056654387319315575364475542780648919737047610720125950681342555889007029390041069891989627310988728049719895336320650271757100629533525568877371557701929885290197672806105983832251439248946147531341781042142753218959534028640330210723035307262461175950101116536073846747777334616169501476800047985099364163903677452093987994084114264119619612512779946845977504735363633686614398189657694580432714654223081269072215468339110409523198096570349908782120070495299593076657832045236909822695802677242690238980623082157286163658255781251559045058299784655546902812850357468089360041232633070117107296156645623515329991999120251323639360091169151469766652032342033069007783654274514614783139131090295860322130444729630442429918116621903455673865580645295433534670517600656547797659916968143932309066984841805921946355529805851880892554205358001097962199916838833573218571760532615008197372902147226379925480629509360160789778107588202714439874533856418717512983824835060645897690129893397385691795473499756095983522459933836831322437118056676028478070468440965345661724278351871799244878140745352962644391980657682274093997951069145933049331321571387199625194262015185062245142318607493794790691597385601969421173438464189217669208375712037008144801682865826677640791357519099643883912367643422617989496612747957907932525389391834245288926153956220414013372356268950909689178463486704767016407331390403026578243506286779337014325136863473168389420797443080992101880066777310204457139379913240002845655370308413144720193685203697843397886519264289050486588050554359492896131897422194935464364695908807358689261763845613477431834217179303499327190505938312721835986872318548277064908671925810261365135642974804503241674612581738083596903324166148954610052981159207585886893100144081054105299109936559217112858452356413989185294140541859280063610007094139955418867021367312083439190884333958642661231550512152124597725975203123245707431007875599248413102598437685317724307799318381816346321049550346071018931463300898877714664225173778753862910221993563811227111899450320843013924624797943842385986092075136666380558729812456095783088225098416916931006720416348856705662592220005911279222431243459104669572877683965263858300707442896066853719797733038448072069218485568533422624055438766228189392002353460184023148723841080836383495965874935421117280148764920028616936390203878462917905979463862091152307739389791080757977411209748289118041147175627909801135416308274315486994926571498459055623874966896768547301416550782673190593713278354316909715494265135812326986500149928046726000315514518626673571347734578121230816245532527947653739480222089437634967637927661636677122236890206574238913100348396579461019558035140357910935845380448287743606240473648246640506027262757698367274496581033624916302598449194128137729389357321364512874865957099727596284006806603600489869628246327901431891113514824196808615623275022891389870302888132925312154261107472864257809231216612105176298963069532274265531524407418758188377315154040257121714076261106546694394623034692120845605588696234027587596075627039805915377320855580867453657317621589007055715303095872506495558935115635455711676297663881662281560234363724326147883713685727057599352906140952505612407237985656698447957345583889323133153903182235891602015848069354569210445837967038027062180324426704739905842521274731441297618105404099780443063729854684000301380052899846310836643727999676401630162983127916484114578506155980832961682481067798651858436357092700705552494319908659941451497309326402773372139145499778446494182324818503652272212498853985564845067655291302299622964357644152674398222634099701395831717866138726777201313498682942409066671791749292613738893013774612671883693290882781439519654545731121498802590962443558969037306794986808864899497636220071666889772376819314717472963447270627988945757307111738536707845784392066727958950763575440581351244023897411989373564204951968802354641094382490415982331370662453212505323273780783685374769213381453649603371772580911549348302355366514509805559099902731525023068739999691596045562447266134871775352413595574962320381868001565598862487405585082977735777760164945838761725257543793303501624145763915523769565577369344273606027150528637175394740145248416012622372770125593724984548415599235394848516365100443056406239469826873964660352204742275847257407162076758462543046549288287780685617260392083768915790052534212831313194906761684788784937101237007347036063019074566845239164614301080813919200514640152115814739840782058926725981491381023928085093377472212035260915983758382388679110830983760944780592994176697549731352592199099964085391502536011363225089655793795250871979919628062523856746696418862403444659181027008548913279894009558823867460426831124447985641584734318161040580533650082198632716917985360092134604618513826704114350262593514938441013863540769631886189711497029955962521014519035385003943848576559701699926545747086592460283876783987001510108283240252629012797323599500380247562753587362041452680083981499265480441359586038428548037385878599315884659896132614530402479636648356086042493183291919377810684133721142512563196667600243241925396322594757751145310756154596820173425797987482676192069759241079567654252750876743689858118566186740172282244339085655424156197812225958975432683271143458246433543955931659251984884528427020334363727726569214621860979978009092315411631276263190483808191456382900292701101561293584294480159492781866969861747387949267809212777474093352340382000308387191169593564821925275654419809543642584983213188045445605726763111896584458211371943722242430998046097980989456182382062097831924372802040498508596780541583359399371526481783533087530824789261502978068621119871239593592075911714090232592315936041248877979639237608191499933249844215625181928609702002200527476248668990554438314090808608952545164595912143987203327638269336788687070008910696792079825469977850756306699451029779356883455907074309684362783968377157465378225925777062170095851111517123608101704891988831979344281863474073570223547515468597515745664665409898172566699281539246557219480514897717646360784317134796023625175875950410263708138784640726555268642456837902975275123499371104955114870383411490274436183593021865186296733202976898402591679539614320564623127029179922691203865960636028903724968473542658292374684267963665972065126332022372082444171145867779830088186251973675462858621357035777218024425909060691616779767139533177951586966555687271242818511402439091280924511032092035815209580539654056626741038562407757427198069802609119335014359922064249222236890773454999869881582507177960655560414196268898606611729553482791215817329760087193752146550854556289632760102939568958052783871874402590549052128192426255304090053595316701565514994213247952101531670804696781521559096784140646945619767240391260047899069876496776082947453797691305116915874852784479449001857088868924960982670629212259902305250789894337204738158023534676697132959216755157785713351554899954908901305436003704171585333201182373445613708741919064802273450905792935449433372078768599355408444360070306823529261538229891028960177029619607345450999818968509814192564976046671474197699811301661819543532923917128757630607085709777846628744374341243616817226360166208626532905339619226726881222329185917346405688966907250067590055735684668900566578037377303975251942988075585675494551089849067278187146145287423647825752058555587165159960707361960789228382609511032040929296170764760064385887030989146611247613577191962021565442758989400682349268618717361750637720414026689086836998178093586133843674577600518647926927859083339669318289076619580376682346343748310329857878061256142962338229800095894190370405140631807890337415299707692540891488046801146144128716245369076537456525106149796580760158164852582877865472846595614311267612349704653699629072314118029471339804456455546075618975506814062751685584167917570715074749856726013359798982886055990371732047308542070233258699208837670882718536999154067508928213437538958544493277917058196675736945964136862851337574317860032038062238244909791796661065609160771326105625704381085879097674150245757874576163920696109018106624649764932007757361935633077119338866846484935424944241922030914789969306935272102983308395713628654916563855025637032372456727827814370419811894771686544189958146076754806860869138526735266335300528354748429380758949791276107346029464325035812991769477882424229873721961647151251160563894467238247758714103889310352729614818130653161823274984513455819796946232898085731884275861537318041248953250573494436899960041355209741511473846966830806232945087626959315330121121062927295991374677498929241191226852226313476175845621105877523012133210392093322866546959491901073209855659266591678274400678348530211400495577819411398920375239670373601462179122175535788041878005520586267532188962280957841738130269411949652538988530145627750818697506292807105818830483475281513659956243927968535496114084707811905091264423069795523411983938781626936510439605711565165044284089938057733653177235777920524527418448511344907314066023949901901663893727924732392751944336934907351989938996993196075702529293644356926589807027497098179267238809535505173922750710436307328667209672851982963809651985712141948521596320860780187704891312707128686492722995970244846842833388196029837707880898862789100833257183302019506317496582593409221582819268257594471466941491581849128051960038382080307389835547393267373402350514566837675165811158793609894516363459417323865117992645473315266515353422405956544197238702478102166202431622373804630999978807351314084396612912936048764991222867524023103117882976633758409396151003941502801666394248284730083075949995347262750400572269195382630134227867150909099796014848066826761662279263186252963554856649267134251289175858423900507348780486009658376274015507344799029475868345750164220529575168270402109141375809438967122209553466383054330326207859055279132035719863801656702123219633315695403827395397231343612875713127315499544332450790999434687283197784227997564030045973850743822758117772537038372075312067737712163430238845854903117255762102559940266949268113530514172949538173309236555803413906922392152233646117752513258875943457346709103457211734767130755366026672218111212155395521788912801193662589532109867571189755048986173691602157111302228707841702642623846531809275361156673639547189649355752682730395080542166070633471979921461063599538634464480798306888142030973752519484821360534635777589908093712938029589284520482507112028804529693046304040313065068871904230488397968357953585705316336099015116374387578771688023116269437166303113018106969680915112296300922407149571545418806990456763480104020934221768471740414404949831907940848303875683030880392775222157250943239970203095812514143534165339635214934308718581615495359509374076020311547653672856097306074356131136903472591239596741833386134081907397622720186631396990420996061120976222727807702958025322014562140836877185480629082075945529983606083946698891597208917838069125949546367484359527124326280412473640615940243651799069975950060409733401495327723917485976347987613462155851196009588827097002698575794106793557836245468931214775965265305840397359952708592258845911130596587529915307290818784140587888918208615573375774439244352967723697581597611689336944772820155082387065933613032240183334459493485823609556329725142239236259348616417249473034790041309236097731062182205333569748554819107709604705133253626252942315315458016904075130140531971630925816169233509301714657753261587089115781389898431569317774596532031343500837654322766225254258839899890155152587201892275430184525080023932227268005802159150380385744695689072514781175714351534226522021152018685742843791143016133331315552148438529734237914039552561583626893602432777558210603563042426327366418139930697324451957371309061104153222344238105256601782875987222389742617210020167217106340419776853458871839225722546303347156173721163615334753401100593177886589114793973673094688730261763495442763694138803730951616170068230792086710599789248644461261108095203021930882900513483740018025612940130108839410472889706678297013785257286459532479383063331822118773097814711649769828831055921937834659896818608972854465593365776563537983761197016933435907468140900372529590312946560439011192731899136890744286425136840660431177966308343601603154576022293401807580532998688166383708129753841686415895904409059955641628017527758944965161455159219259268267707503222958122879832784912346595958888681198439496362963090622447701345739336969256182349587518959286359975421629829551340951804640008861114394869122483752328191399539828466332673447986505680621995927919274141819818324614776858899465527397909442917745126391639494527537963535965714362343890908571350153254810505478710714167498077874796852034831276242698134501274793173171978265993334616010015863690145898254787098964747439145108772822325038995180889342831267708041842062296692448435314088459206372478020766944380358332561635140726603779753510263959418095880932355848965852510554840420941285998362208864835910943227402810608690180792294737510993269971729014832290447559203240490085063625546981094586954978882765362205271617154968712394138520796287393751162220804149070474625251055099026540384983545935295674674363241507605440280054826032350610419801748309643163401876842665446474015796557905776680404392171340889925063064317444790904616560166034878346567184794667454120190839422049694138378899575833004444856619268384790277208044491144974143560260736935583287066497226954509108422163476275373136863168149390887776644971684954005364692052023207817052004689613225365275819391405533226739398925860078281358631109455471536199233873773171945041085157070098880020093573644520990158589442010349093561936896762832133706641207357250412958759598836317573455737451484207437556425343609069948625516000845265618582239251471871952222815031600379664038153024863368459625443441458606593509555821701204197994500622949816952104493963320999314531176152545735476090054797459694744719860627539586001139598287907169136513935561839018409178920516336429757504723481447275479872068536579229442264083492236077579210656026792237250078753044100279932786472114152965743060009539295925357000324389779237758662839796597431835898783557292604729514081293873432786464960285556407886148347010092571420716121257226958085047782823581491036323847608326473944892031529070559292867241650748015290604754307567740560641129387665706755381122711781101016096928897385519289500053309691170459060251596807120153184983626065021213067940778363610615178323288843646144957964259161653319118661058417802898676651718500578856156631674362243574675002909590973611769709241981653963869452738347410217614661452743085262695127108818321173106291342857147287661027656834509159566514835830201065554084976243337391786102855782984591371411766537587050732546131827004443063411430118871672703318372173938452555857399653790833391404509304851881149657653676268244240067410260997493184029839334027955849119258277391493588084074344605396901698901803500653003115428259955114628800322317269365054219745925477547340578692593329429331150645890786110587156575986489408475693317998129542729178988176839018595648885264659819674600454770491629256867157882412077244434130784306247786584470285190621678950455971179402474408747625619298915296275352390147529543794558404529298862792690381299702016654226897738043509209964039027743622766881461138164494318366383339588161763273410821996387918837199428363856410572935183140675436947496187227931289167714346584365091092388187916891469941269403887855311500383390200998893707417302564105267202073603657220445233951241328339957024021410707280818031399628730676735541401678003269581752945280640712416480077397115834983163830442460575214148256040820401171639020482167626504231664309564526019662205837827350309091387673208072116636697084803588116498332101658945417522382989296726082261965362366790468062857826257999937298217976797292632832983172752757742178816612109433400190744007725231534845202625593811506605140448232689365458011977997230874862487753693360744456895042781871867254144371941995251501447873239702933015119694400613941594668723827640710786047168217980127721601437364471432298910492770326695095899461391375813940308685902143965158287119046422574470748792796556863474402483909092276216719402601803094889852193466404717046389355197129080825149909707665156234450355467760605357619638050214828616462554985495526343082900936511141913847832800135571407226744245770390687949879436613036666322021614614535226868991094591976256915114470601911429910764337280103043123041105766802993942324460095047840226077521194537913871281640926762850497623457071792895746296450943535021300316392123841000413976394275264249073549086075798729279644818817334011615394797051475126342357279095963613159716245334617324404056083792919063343922941823338292909313752861443671297378217129861743997564387167373888999280688677076514380865928795743236749543749748619923419857019067631812517433740026897038927840460822880280407217099406940172222386306767069952010151726532741827981950137612995358215681049866237932791115219528244831808056061041214948513321882625619046408067275534842956594939582445636111440148422849593569247052837018146854224173952555277593428180323784931653028794701506004967540908283738614347328027896554936732254573989568315564985841924095471071489178310697312526461154085937407562305668566301518522109067240577684190902113224471193349391347562314246444698464391526378316580758085328678450114652306800734560742135127881868984637842538060401287865532334843387335688130158142132121689463057702196571799169482554925365880055810051967846744380225349394967041359221648250628181539784496593565274876983302661372221450576081638253449929433872673041240258492381781566555966788108661384351882732071681005410188817520264663891716653458577389994102079625421166345069040189996918002686138903187322787043331137518841571223444915260041185199703903780554223146221956026588118426419408180530785086597772182020873998481851549376109226839497123013608560757901082648478175888132330727121868687189761808043028323345950788281288619250265946633891228795819494797234090349365640545661682761044786355224304600319378000256792900612905675757699217496913824806965633003486319341096103125728866771533161128418479774467686180563327354926835384426056098773927895364188384716796490751049116916039219435242236592085140402890261928182511509299872824180525773429015691122261791866256296675179546208084480543953963044978570524203073823324235805787514623416952916760236816579278067659969263623905390717898988565829300743324334671020774789063561342297233839609697250868147891278634702319525657916433756058387241409229864235568313345988763059002459897100305457921330152667427489268411626089811006514692635282912230404616234120046409662997230980636327714010978450329733171402389999609202792762635843247627951008481683141948813582549159061653512578564848909218496557706448812948053632657052621958847899546510135379907964397649580639320330686292519983612167201065808123086214195086416577100394413257344139139622525123222967788386047665983909981153425235221586955224984772630162640020309197624247419114758260397772098647859076799236063251605238060206673290026913346147190706723473952305149955210048566437493987398725937212251760331352974055877625527624328793938000229287319642159009637199601399783324841601161624035975137233977775895716137377136327506913863764433676455135850269796797475029711563956038339363417935029511672588831234794753527003247185442378374923318778458550702488421812735399003793760324273199069639281681542709921185019986482894393928997563545427843348190964710753076026658885517210841605555427073979460754497376100073792275183406260213933909708299373234420238736735829141212372160455265355234795904390976734764499355709843011560807121414037476888294444734472012386038238574315692863280509053591652218756785389396739234935338748443599620244083855020937046123079079061713893730060525605878778256332931639463715218629171225487359185052141975056785879322257365859060221675798353491958198419031818140356263866093881748831493696553577961134123568413671750978450507358269939340740173824019331994271172708462341643300842184375190361812515253757119422604120893230691639081582599659374100939494516292712218318713701129216157452719617777314195208727560432158179480340609259028131213674418634283086131901559226429973723613332560172458731597619367175787699812490075279442276058569008310188671617114304864323966670601045153669882799655296548945203126435328426449586330389943466208975638300306473502966983321894449110570904446697085086313199724966022304649252427433487893193305538111937051901788072054743437748840390511605513323460754852345800948859954717941845438507456879881693483760552365503933424041800917998114842040935777016096793210963481418019466855561718093372161361587773672225431544232883151832636082883045051511123862127310786186949728600422867476655691397186313707117945985866210783795538329506793378968231669009878625087165341124681499133174914283577315547291532102107002911519818668997993108384936646581629638168120215459598461645423645322434480031337160400848307521611563096017350977382644570216836560933718039747902000257057447234663792400797660868428396325788830672344097778072653048279032605613446433728412869003989792502922547137273761648724698300894258191334654394575508985920174576487616957965675476624784455603508966985170078148266588821442937583072194943681901506609290683458552059676337547804007301414507840979596069091814028667214543728710086026704005778707201874179345544654072768743418741730753612487919855490329295278140209967542967789970558975439539456885597613801083303140374039981968585550214248655087979925644624588341603076053080631523920124955693745434902035628720339491120846493119918408331047700054144351696049527827005121976543761164964920661901669924474289434118510388525643340887854312494771630093674572542508944936875084364569066794674783717623030656832992225698120969285543894751788052493739545370189919716924882489550733268610183288399443893669633563285594910710615581295019758971306734245038202292946378624071686723795919698295404781929359654370838906675365488835703945153295880287042083708462969890101892340934339275084389841983467640775950195420395536067163732274284879793368371924455755829537897641659624939399954132876396373683085957900794077020737137715400105651451843128349892590455779006998035244602473130586961230709477801174774698891803405977876766065455563635924067808167211150084420677031052928715867314530857421639815801931984337637289875022991651253678754432847299953271629054767789823068131135496819946212605528943578918746811504745058113337579885347823281728017631512914248681441911464255756370285144801625562874683105209897888561418216343602903388946392711599076521120472498460890448542036120260682373680221992236532539866644366422661861236815478301983637949266901485286195190998017503854659784891921793977483798056783284522659913470975679631527152804544960354101345042452765842876838597999712987010109645239682366136156721242531295550824935100738374028375713158863199508602126700084563430646393827346828230790478605775226559347588717430494378774036542521545271749496273232746335818825307467367025048094171415637304558765004778886011876430206813848905115066944572575744785791627078070861794853912535425977555021630360236004958125068193261471015594847022890728746403688600646717985288086830927551307347452614574482717470304741459806327198088245024413301515373138670481764021084203334487418896329069544199332055480605817617223582335914669174549826979749396171254631987933835755926797482765014999579855930170512337375015289830523199282466467389548256583645991360048226285340687075155929222705092542075598605469475740125125971177245375184276911749060840520634525643371989505062978640560254401864190898669208580632814443945944900532598752269310030612638126614727537787167000503159451478409885139317458606762784094427728172762316086512724662134757280270692613588407317959289083081007610037232598389155355487204794265339523537280489246050039561893817755494429619992344165067430970159186277373839416910621888876229615336738767654006462252711310207106289325638300082450024587360533715657314430708200881175923334133933509536256422744519442396339405022304247411270615994418190258063122905428878827852672663478002838728401618998003513512792601136297020793096538708581683725397420016974583312253076214761515787430543762980214032309723232787132899315729433566021867421197359767344223575501886893620308259610857523870123852478150220254120515140585114102649698935813406881509528810988198527873350029584073329942875834830653876425252902316197163251316348782341558449435275640737261670869571439748122473312120846201960763794765149874279734497317717497967953861885915578981666532841794013446732140457302505563874235640296218538852314481738434169326222494606527528489102257268315218011785250241702562496595082508680101757865562644403644467105829591433535011124484418121374189204265200774378224427076460951159074800189907194612166818974325137951590312342097428986901956783853103671847494747365881999226206670540590369902493157973020221391733444470594700781272127705015465479162877330874149531998263821741078795874517713143111748637915482532715917347775166089900092340293941048390299407053516228266982390527866301682121030538362705465649600463408307392795490561590014937442630721256435064790832238995576704805552285334389373610746743435579357228408278227442910843123377366939633295673529422760317227873013800114404347224568388353157386428440527950524503128082336070737709798839214999363287051762061806471239416896826967815017945792048940962262099198747891372085459332767768566708206332097804838096270830742074581880600539499111045234112485207989746905386618961028019309830023938798402483046660648642650871983179461892452407121580430173150673518851083460651582598859291940463312220829823354058881258911594616717522826729671850906253066357833353702520160829960389021961124740853380640293667410332819845666157591372717622197749239344583332722476856473175711049623066040172473018655708146189082573614401377396392548734676843458172133103635234584002703960630283447165454009274083108598659020350178831754938258187015475734882354932387776401434225224645100998454468317320560750130130731484067131582370693335175097054780702385240012332362480303870939029788887792438801981343920785181709896436162041018133822039848990192455759638734467086065601460914450902140736035244429647005582005593327064728882795201727906090955248079095974832550148807591776191496308554386986944911524458350332874330222986403708298898194822169091512848294351413867007611044944587619107933085774175889263720677006539455930283107324889747859395828985700711554546605589764585976215896488970713321845462334327754518977104167100369524721391409438355875257041985534916941640519704089291288826317103851771587474955173926616169985026523688666155868686519694760330448616298166019860038048735201680465904449376271416221310674624195430464003100189670829527907983600479343783999368511311520235346499567574176712467518096669840876409757420788888960891572573193883103173842921385972745213524647554046438868491842908261724995517402879200659830052408212050188493823987021577614560619979887665504405401737803512099037037174240067638854778965667238567454599199010671637855674383147832585670254282170472260754197219469577712266880848923759064664811029129328841158694542607450212020591752726156210377423704961673581514715048291290883523672479574011714228594947691559330065061280663259647639408111673228700781445284480808989984391608517840579670348247534456809615465923060251662935428482847660233052601318921427478501261546587582764118475779099635569359808924860226198629220477041677727853287513916620303624958681562957481934409191322445751826765600185526216343990907963932974281230596186185353442656219688943673757941191444882022744498236194175605775241734897987000954238909858277168654573821922396516354610204242420327392088122150083626770236183591072076914425398108737468427734847454077713657593276609775504405356192949256878417420884866668561867320538554256771904200609663842092286316139421372264411659367874412037561303739565260188005844334777451045579167442203163456790558297745342710570176367673286941835057292691788451949101300236124663493351729127642470997050200306530906782053790672199328847707661808449420196461478644554760494693093329779599240437551377959086388169319842632476009354317171838441447726680514959705304450892260963656533491605691182356781577244516965585001688019059388592640522698146919453492973459439144819439870785899503539663394320338729328728113176596569118531260262679575751413898029706619634593294147085661122838774063242456522426397900448387152929112087291761890774966483366841344398495337215621879587150586040063897170680056063640583332093553725106417010135044614027161044350363377760278060014510120415667266157181869499819554208469678238619042098668954849758375221856999528406412359680311781296637889961093271386690937983732334749523758951057672297601675440543339770168609894452106679205052701505388992088825167751319651552393555885121594101671849776293377848257541388059271158963809329859567378885837560379923125676207290293934512536846356205579613324586951734235845538670979404711739800472228289407698239126664745740455704041036397901139535889901146585607005704269510220419151876133762057193325134269647194836677803379583554952219144213301660084033849881056899259406405923635443583286459394742108261892586243924105582236868633882748197632824383915098447511984562787963618329826793579543849778119377691543395500689690760967068495294524871553950295659493386816865823135888825305500584027283569841437852871403802796240210782225654403978247732984922778499539467826987197794832171747542088012616577938899276292591610251940766506479314569899363867178469562703875611225343677728846175912466497794451871306627537343986599737707401182746009375871378449941766126141744484388392374508152455394827497651858201250805251079161410472255415253013419317377738203154869224004791850905006276255341299393262585120412592053963928269463087070447799958642356969508608708699058893270825597051291759775297773251785798466086736363723160519073699526733930546178206385888003235819326726616408098309793900669264948142148577877910772285131243495418522108233132025295215578946144330713737308780224422852975952022298926157182198425319793454994794674457881947057510958519393471634128722858023786869960813656144481798475184478122290224558949441170899207857454597188069899976185529359591085389137432547270321521850447598474204352385393745449386292402633899298528277530724182933626159080498236085374034761251806116493058960950237660177585081483693425717452349009476367647738285002067628257669321262073164442982967599694515055129122441637695926190047202321807150371409002283463499138257329165072017513198396534956356051163107537514571958175076999679070551414661054202696812154290196284486865571672285434489667849872969798430280951140685589527531452639394262548136724418783667018705406871709482762113510248145371449642468839385938103953580469452422667896379621286928857205732434219354574168944274743841699154576495970570855822395669720802484203407413901022579079836428215597206613695181010389637756942870780094250652401300436758500122567717614344363103588870385299856728502344191636373638577856247270188899473843954858285741217127996643595292283961828703864523990289170220390516801790719147057121490048962525134189373325977545780360290130693377162366378928305241483537727881405903267599317931942247140312294112566381163970843044210719710187035243523005236724779583513699762870843863758365269100459141859672430773661389031723892994866694372176348124087157105777801153451013005392306965072320159510612060065856391366940057593572457761527814895721746719306671921116405244073468960232069269670194834883045785456790482679902872265930568949148059311078674082115476877575405694042486865010602270183994063412290927558009421793437077010338432863427748791187683526880781791645367478918365505640818761452489363617137201368368233133516001056964022977187045617365062881146628914290969453355136588676304517026884294163813116481108953170788629682052729798137117975566006535098086835774288708065155685185481921445288892319046035415796415862205782074563142098821752616327462813985679360232611567419633524750870973836908961014494374560380200331642309147590905242916064782034208048153048441523882424426930490078016658688459027573279407651506874897182371899656504971383570270525988667416895942215594190874895359878862475583477815769303858573358122597752357658231597879702134046765300995979091315692600916275589731458272165332624997935215525935697511459024890720859572263536635697177591813554342533072310159695747050348085640953772102768371678584667725386503029601245469436507524091485498089297158408374471440350832596753593714828831910505911330364081248386356858706033314800652827774936644659635911661523230460207555646880006351611635832778761086338120047188566654974880645567447169025899750953819000354198176207734391462524902120591155102173389780472256149637994912700181790563145385793793447335316132530987915916501354794063556900392711335774227002992688657226881099331344539970032243044562466574282527872701184035521395020113613429100609359374048424220353133824705856147417561385634778459257570102323656004078649269121761311172143941063080493270670429329265824447244113503210255394743834553049801231636132346056143343181496644344447287125969928943604698493331699994576399933488834756937090086876269441886524996325527955842994528486004849265764066508978605818026476414574384951160711085418055214897622246250997104357745821198935126788654411213881258464130762675070507884362849159962320857597752500803210419369176312089368678243648158203969684228331809132204027337933936557252181871674588416549472635111933581010493958837749926448765752617313788732805804265323606128060409695671007248774627324703432027543242547072198849204411143387426883912895918290649341326387097965517479745634093660127548124022356755988072846808596590252500275559918149490764171706641315782558853733689923021086782316623659371606191119686296767939213859168085925069665852348315179792765297991558280949705676334857874546360196175655056786999074570586273152472913359788657882718735538766915846278499874769835737084167705698970989759414090954841978197166982896727703953296795898024683667186152499817401675462796074883897144373469611172297847773725699343219635242587927491325036231838121384824973819366412540832337417735516890711661530983923429508245574016402558517315884838680236391609049826710993228196170256657954358943732343816403831139917968909567849346505041164463944077854551897875822532689825221301981067682952662616653252791945213584280446267318037062465452239705560030858476311607238206613801524187927756144328660182732815771715068448521695825981455437718898706956998711682840972068203866213890325850692721906931792965006197635575574719116634405859713463579329246706902809175523690008378171707469619754369542288301929279944090075418181363167987343241468845336580044007117042273538942373673070032399550348120129675777982843739404680588884882652255902128766496450827742575588734105346216880081003386362793614782783489773895563780229048742295243098574901787818940717243927784364360328393668814842845490775908338435603337694156561887108267216761690485747598946145564606860096406342212362996512104428516112445993918278416462428920677885762710110288388061969502404178570637304698393476568049140535347173087419932381072863517540525445630848041799038458188835548663762052918553448402678249600643194757520387280540349238060240483387575498385762038028939600128546267040730010703513368498747234281941484878210682987394353591450592371916207252691625205994008523602528898531634643817282274781242086165542537182999921903081974625125139870485663286619147965017986166978775964781864932237183553273338917390132029165697341519792647923725484992855115917681412734771370337530676022476932627269637189700407748163957312322002544585611715548319874570064464436548602994482699930308900126181193167825444490682197637531324020232308163419919357531520984755984882580264693944958395853070753421709229252292593831220609413433644626890495814679772639340937797223718317882832737023276565137037480469270470675409906262551957717511215814056645684670844471422720936529372086765214864257961632201500807800617053052148971902746025324251155617519408167378747370962014131580258954977458346800331517057559555480420892838245253567947214815426652333964197144552681164071054406418097830268616198716117146283874058559227435058245299877978000323178855660154615201159067182528300802656434229701295807568236569024618436486369766903087769322739385397945740987381471796307237329450643013368877708436205020453029808227106866840201654626773058693464719936290300173950423290224116055707848245229449914154024742733109507158037871667931800590690360707557539959929099880893819086548505703958478771528820868082497584775581805039411510010109188485113549961653314355851176025752275733331839752121744736671338367734135604801705435563187211827352061013712718524182611212590215507815947905612357101484033265952667135056079656859813150515358726583770381579070938603407336012568689130542907757442645189703460024411338312217224929835918783069746029162272402634168163263626950459141437896157284248529118592114835072850690950391112468354771438173373680278356422198628428850903622209808360406388260922270855709995638803330626416047551850222609247180337711350489742834414564952029504456199850080622568728955570527499688587752873742089363768001611257148155779280698682082571570397635800046798961592894864950356215237064444752942761120646367190465100464544886713472205338337371698700148092908566192866212212037781846568330106283616556229356152605470056529222041364036919387856866586417287648837737306736223084947237168654252240208515909028565541904550878225523176722587898984891291004063933918821325034193466547664715665986088647352089060775585403592418039965246154153797330387139086759410888296944555231509691205195783326491780025780450705236249142600282112843825659249063793156576884222014789078294930708432685854888782425610847038920911656417710978924414356410107833359612200042266037802857515601933613125382416389852210858939114869729523176478560879567465877180786770191703092910439946757429031259033722300914606676740900567761352753170721282443528563367073978002926265416878587226085676310614956701463459331864647559472545493046786262411143971196362457451981907919859545049676401457560887107140153416836953999238922835702471447739525276390590891784656734625849498984269944789516343687051363284252418104383486895480806253168091860567857891627539251848277854771675623505977063472823672031101886134444383339448273874969161039790690900384406127911667883775435464328830181333660608783667922335908382781008111273762869373189636617875174555327047462932248298387901213515643695153797274682723404622371870787613741577516957250350176008991858447806732254577452978333693778872719799628106675070466286457508200444073733989868932498223107611150687348819930012633619873631318566661496357102928488637563602403575572109171913201702406084231192206211486174161292366178481577746986685803470678271166895605312500122138218216022351922034168075329995191463513517592932400401474614394494854938543666278984772659750284451343451044449089383591066601877495093027359088395429498455316437447692403758015475903571522063980508964494774904914807544798876427940163608140148900014504797913517173932223914506592423035060299706110244550001705085225324842208605742054671485083038939904278285362071189022982187700370301992944868097898091225914274257837300570512227844284100305725227252312213521845484477878545536251998574087219849736354019770455266339713043536537973178948860520402548515178113320643515271426603122145006328544215754620077982966696559754312036328535339310996288719089509464088585826282889786778387524862485102931790108981506249434676189140967311957427976849480829901907461475897348432034452534174467500745464334190206561581754317285323238021175563273367682409097428662954105934683011763259575491005312988028647934083978601035322723674575387027504594222675874068334164161278257912119600339971948335756835441065699324846889732655235520784578615074672855350354375252617519734693854678665515927706358178732393608554634885269967443859358908710725251782312917759834761648379752225952521221180688506642098687603346157555423790003002923001619800234785616288307420068892975767278272948023018482300716197063207058180075702720747210780547628951692643456750146892124543025779690805582416434035976063172221314187001679117918153208282309156906272526401435861044142930301258600056710973804448064599461467643888453737809377842108831835187044446686051718776537118817497512200621176328634492989806544509615963522147862405736846843502918498717706037969470608058337108217620689425827948047257629279822583598165121099604504586484162157617379203835491779169053051634996619728139276029413699538774240343570091449135928228551466359665658302069173346258848090112970941691985837941397442023451719209463935074786937407889962145707892963542259164661311102299464284626489934063257065831922722886806329202411932384713380863853689716462599946099166910510915556682657768476067397545304280951153309737243304983166152882474024702847413662724365158035734856634337296156904731776071695051355984908255328272913192149356406412390640817425972772663047201897479016109438406739435891156148764166254238680856720721286308021418411177908735733422737177722316024819578810119058048124839365857830783635855785588077821745752614796756796274622231904407710851984267788791520966067165260946428468391550691277898120125331862427453166215471071562994127590955763769878835709159310439118274489608942391112141074486192449209567846823208042307552010071489654262296309624131950174469276526676897188098330099206531957922051100160289741802243183260991092522118404642256867678968609606219429839418096849334429244185501695616100859072356066147491649963691970764243885862214363305213568219330463909097250958701425625891139031734576882752439670710129053328588012703981993122894908342614267864119140217465948636347513559639347669566416145453463359882936646102575602256278229484484374723566178111116816085925897144315915556412849238352422351328392550946881233145922491691005361818424274446546486969125055962359701681337724303707137820839213590596372950582038520722511464796492543910381288020360287945234743577850191405541359218285090220063765407621997225902083267266298331893198296264224812199085582950091881680413378790417590758434713682772563016528742021306375719921162955921227249399641921017406497753206009825472480119617391446321660838034651426511457898875425498318446305331812483088907583875536231198758125857766105635844222528074629578844585739385449060176601453272453787206052885220253777845426263700041132341859976890173284962718065092448394912302655473630729788529266545198066730045053618573106170947852985448506010450924967443765911148041535771420210901209065513456789241234347415708005618939287062843773852660052323930101727642490266859170718154206910559069725428614250807826150657650525706178119529512635593152001666635034673926957915480924073214106943864738483967641894057896554484449638940272943993482564496530211891083262039121573932827141518478582052823344930475134578903728125860052432061198954988033482626418081924784048005371677310018132231391726556741608824749650839920671583301537784381258299234067125711454066609248987072166499104537120509523415544255357230081184837993329888513863926091783469561678573254056216505667832147526573763226410943084745827386594958425601016591560002140034018301853943156004694602114320903857774260488222839799285274668499473973650757363801692807673680647117977405716483359239769523582321162387463459810276051957269938572088975261552539810189939287401125340306986957726622104241842030986642454775910196566741811410538484392930723259169047327896459012722904264420969634139062988936943785571085768305079091678617898010350112765252684602498922104023642383413506038327283363055420781523123319066281896364311418185367441221835124280343775521530784743876534249227524136436406860845336565059291934224049203586391705733026355473837243983344439884601180006838088806409269747571675580289568987873844578402616288076173085752014763814247401847023246484083805863296847525074925331907994801144400961246172352096039160161957722217896616177479378234124688797902277405202243113684211993381699685050500825617988675366336377877674810771201238858672810923127314597108311180267493906993349958183996795187392141957372754480864455493114801564898299046516433765106831276606998311143670842759394639541556838290954601772844048389778282794508860186730395405678381274110243797987272002736243652894617590205210886624979720273995470599451900846754067472717746259736360635317638537533421573052224794423356138555890579535032703996743492619031840180040483048948190366972546964935620125976271200365638886141381454981999507573436774468989895336840256509259586106812149690562956780834826691227538427064691852494140976811505805993958801310489467728553372541723036829886270462784703679997993601177287951013931836413925411613362966273749333765457087683936509426231536569041359901128741464099546728405698607598995877908051850203795444054548215839005692960318163940218696041190061611865510785925257982385349742536619225755380007506550576009050423977977961479297609059402495165297785597529101796148902551367030894629494995335267349139102136866459231806809417467646627428037747669014216360370646924733124604502168209588054717610430873861641700261655414431148357957443135571419188181845160365259301588802822325830007763545793804289809346218115976982574554655908179667115611936249395898507362779364181968052833617405034746025705943600067078843914510651640844865764300983961679556240007707945132295809745764641633698768634853565585228638217391553326831343601854455856977605710086364935131574563069818944797772619909556568231155555875316915965950929856931547442888049166146032891854183601010076328391592858856346957153464872464760980164362205345201596770739971009150250307533511683526070884589529470626049683979905503266565304165261209562140310965020430900846261627281921089302939642931818784376990381399342317275158447762925077947736601781425214794284180568778861795491077952151929876372588532771255835389622810114565568727583808024691255974538933578671153693945258451508777678349360918299609676562834075733130092298086227805186323427150923517345478333705874459258738590816316101841252600113849421259576035285981744881092827390832077000784653933919121483886835505013405537976424175169312400254934819693682847158905949717659771391748137456787559495074704471617843554801011184487164058583376112744212657918892372310552169603432797477649468754750812748668593004669580895499683563336196172659946029430726087242814305062585172177029802631364754812654561966715867963361325291043447476598230196551135832687176387931885187664191112533743452759704479260766005253910696053935044427941690435919730504924875202013643727726376482004961953861506994465842531849064945516170980113484259220407121046311092621774537241200573203002945881113930654748491887011648860701908186420297692982596698320481570569525189121636641169612660254732875662345650704912171896949261388283085421565157650606956215357480367838153086493217834507976372910481390826548797302855712329890953555277184957356979426565418339470774546891868183296585544021862043429364874078648792301617684858931274314807071294575871043616216790881056719482221574789686991068746050099139847826711537455544082283725120723736244151381683832109697501040954614781675128799399722458712945330425955252132245630639599509264319678641813977908839782608069469947580127625004892773524081854353064152057660555683880722905051355955772603102409021663064757236645424432914515111136343831869810275858982468976014978026555728245519876033195762885888265250929317153416748073859311119137530393033224907291661404593025332450670511497779549533629274403315848103000130989553177169284214265047532584116752772814983453387718641422479291896618489976452420313559337835673646868055571814587940655855318345165779809766003258489943555865480324663785475095406093318643202821097019177077197743322549661553251314380819296270095881819132742346836035072104352913414408032705561888461809199247594354766988492108786411001970425543898155251582017713973453860342508538306097726391505150485532554859297079709562857677143481648438786111210850899288825017867553514195545377105819847929680403252861608747569839967610703959065798729604855990792426821411803983556230097197314579663510434259266685858877442939343508312414550983635405906407200695230084263732601070276450225131514406742290449871708622654472515940553420709671532991705087579652515568341062423050163924744419362366635017815907871744625314862955979831356463848132821813377882655372889754445447099608120848476125440657703094106106816919179707907313303761924440590277365382904686985617536567445212695903389930250678398456240449023882603948713264178443640714993018775940460404097601800158529384282278163481653191037619917242470058908378353927716577485933677365773203073761675149311608917349977228649360539733790491232870616846016469968157669667492753472128114688148657640924233274421269508697143355633789106689539261446285270350399058937525350736957156793645433566466883121510104615237452599158834089473804926451450614894244236509899199825266043078967436593375670236027838883640072657359755054428617114781589456599258392852653517229387382700972281939672781557258281193173591738437713992137781201262760489002665174809292441749907388873445341442894892788291852075461300087208062569673552595831926670230710049410037305720319782474094628587076455123208339871924721995699931707901052367942004185939381655335633776005788882443100668647235020158900303354835973670612597607501802556365146533329617950390059217389445257278272999569589222038723934723126315658751860479790080059956118216767795345388323951506521185873303060112385315525552272328315565964121611651565043950171351003329467352385457600220638319728608736490064176225164155040905470444553762416948582886192398586132305244497070825975212448319384388023100256111276920068968051453072650882428007050019936473175380867046479580037909793884245297134523684768079088608340523234494059208941229645395058979854181212363716996249501516014180180554030266466646886759974694603958763921164411095117544921052475987972218452652439853181037626996873095240989847603361016789945697186185960640215290294369021779560705189738453962766289822496292605188078139979039634939725830247616618798962408235650539022543816365042722509200053776724223240846137181649259401132062598355738412512343705163358705678798578528208484550967758906959343810723873852962522803203288670030559448227333125939403792051693754518537621724823047106106294075865691452757807483347090028122802129024572946793885913061197414303545534876781382751263595761023275884424507296835517921977899753056501798603992484517994689935126559027218074710418843931023625155434436419697985458666024223230744358879592192918696873695795043845841527784401315369807149719673480790446417867457676871227438734872112805338967975102258926338388429729765744840873408950247870021871790999628586915448751529480798359617880945831402861118339654164765074492006113558101248662320548998555354782204103614879395639721136140224222598253493393395340920234780591082093166540268511619617590945807035444450851588747969223708301951307219042469089809308211869180606862832386651855269104867197421553102431338382500407489922992764550323934616879169930305465008386807059133253975752079284905453213061606788827949617529199229564333612694118212977341568496754115587190986643307070697328012255189207938828603302081412653382154785708323755177397140606127320762149656670382453542180832449838700692939606012359797455413176563033141101915228503229114186650487238059486064444593312070966925623448347147297652330732811435366616706111011417752578928807887213166602653323800081358428087417294700253710787524461115532411272663614496076685893391442161249136624282623811731833745053543014464146403702827952490504553519066464399877884762717307140139197005767192510391174387900905772342107893557310261066394378400881596084953650499164438472436766556513754992612697516137846608412166813939816661734565024679967663214572506530428069094312856145594516429262909415711177419492230099451198343242387703466336389956003293530100416794643556860339330572618435931929543050684699289722795749670041405803054111081191805961702312562197975158406762909052495704219076021321820514716078483426243479876483096575164908300730231544877902756706434230206365266672453472023806018167623935917119237996011642283984782524998112973345845308560219283965296146755485156986286127372239110248074540604664912713545063300163759851291482934788714785082312609478301596829626063698670621915940833897445189585375967062011478075429547458780440842602836168803545281601710683752689445576232889853172784593703348106998063308671774476840366696526759633804968582872488058272966323805180947481101711046674591316501413015792381579379258905392619597814879631504084448954100740041211405401027267001607252542823051071200333028736384036014633333665420268869537375758500365272886742218198528868916873875318611854043554064312793740978421512920375921420617819697924932601457163027521430363648402720445322229422539922281863748039634939373490720678975444235601969232116477612980112748675578599405470326879864780276347888739573949887873300238221608637603682891239535982420797395734848279020951869950722977550328664557257684677923666310823806581671525622699631308021844542949724168514214887754223554082981884159924476409129598737690588229177808789545606758277352908599219201142267532744940654687830508642731193993367944227410530395680927055349263967183089228586500401684144151414167240481455052395832852496074399100399809785400363013939302097490553733831523210450222049287544020810951151573544675597374670027391363414392538918479472346068075802081172474170669161815399289564117868912672579629938937970809706035856924613864342681367839106749252417738789440936982099354714030377967442035631144308510343883269536023539150620050829849987969870238110641039954696437512193977722662750256542474735203616378696327840523668292914795230909513632241679199361626022641801582603228092312979859265182111474672152962085512722419736552820497836591943042693946725128807473991315929624788308574645092186398685442149370055282925695730377347118602500163560487139067053936240312888555935013061711731230217537440141692243475751737051799373830034763374478932476762966429717584437869818887980087621203946258401988864103231270667799536547921123634409906821357182644648799221527374022491779035777839382948326069188592428632166422441051488051544249208057263262033174298595525236209521763810228248159576141735087208205216466238054833213352425680139205057861040288733121352840748052844057428082050218446622760186669383136841323889243353536869736011699794750155199275913254555608913592677441186225102760424450840268721703805956155179696431767702179404794767455962850152312179762431748080163761732188866438175324627836419810711640429113316826881617921656332639788215706792839701188494067779655059653072735139536433058752879098784314601221099277967074347558088448935839679703580891128410654965249208675425370891830221758343559677035087414863359587797646764656183658385873870605484883738047678436959141275165587398103083829589613886724563219175847442678614519488723336555592229841882554898492482600080611031614916387145039398311634373283472844885212273873048705874204506708666804863018365342174995123244052792565545209222371040181359234501399102228567444657000514193861078136649450192650255314066105207091573627279017900225245595568776904836558395408358981200432871856408260405373585592658064636486371365215437439997695464785414795575174830605874905995405531408988076854897339265979643575727972897894410528075190158223966425404534808106131786901934180437117233850797658383701507177344262976743091166379777997288936193670654794576194334975572350296172460468839539376526142982795154953425036245473692706282831683302652915419858364107855029625480445729636916829325319458966372024615122896334797565475027512147199404087549232764499664465880334688184993676688977537244363962446293375219705878766658319875111256224670599030245960342158079045274943802573151945105323736770388073685244705500880841965740120098433258192333467236426388141923935056505503604753698239899297007226545340990281186609521247687740930043838150817865684302133755601732599422069449118151295412756486163058513385965620367958014472992744582395708960150921117141797634765735811339899313270536455360761743366535952864141184252950267615608902149251159631061157870814833404362170764675579490136550679241896893646923556427705158955177606949567698495288466618253304133256658089128541393236760740542008185687857835792197877727884772754547570467942431406030518760240121438433356836285162542670648392551612087172213201622585551373811193473642078980487130890467911367779963681828029142958807791680166707809414925371305414353919454299464723260072856596396457318386720074539089395337683588102584075861731392554885333146276032965441368085139773235578086600631460991228061086794097102989057235742914818773921958846772037397419757861443878627977763218132042051597666713463943009164526897780740093937681770880401614932492380537770982764501302299394956878510895161851927518705450814753671699278805753940238054867291169435772660200062389876462734165582632897924395508776339495165858016233393537503881850387905917855747629750507442450546445583392973405139513673694124241518071974129570326229384969073703749803729098751757236562742188227478913628856690898985982586059426119627134763617607717647834121493999034492758155283552185153832851146973837046821671707476302976832268256270645632388258096456735259872382121502963131466464831437237448514992267048274426516833129547003161990962895951607326505251538779793564605028669171596546952366312539183884415637924178167222682197493401056125648966319932127369426024240554959945785873786985196979279561612302598818588997913945093256494178463976754357122977502121156982092812320850396147253144254052403038204314638785182498307981760631055826788309722361474434741160372454562094702822307721677352240206932523947218161963776685809075600937920987347645963871416490274969542838031250500129589957500285162922312293446610824856710249174241006382074882768559276386588043819786673275242987547957788590014913986785985438778396666259563323399204003728509539462282123209001743186705459950333103662926273045542943341298521606023605451134487319303303245390084714614312074890822544760591828998002367706161040940609497320368772250248244864084131026641078968427519732534161450946432097003620973993985833803014489477895179300147086342480611723788214554734451842705056264801390291204498908423580820766956990447006432746565608236277528654785969320564983174662852597308081305821619022472856753226838584554793081862313542665752910218521274839562094036509578605691941041534535909652863479065084231590872048676315799468291216149780090906527752251938200250309241533325591799388872456629002869393172924624915709435041257001887000082943725387959082093134168140230482611578426207333819264511475835634188378583640261431737901020315073430128346224022377011976626069160416450332218647733253701631090243282346833833700809427773785670135963141274471651090540641216645060181630213633927329549612032640800101683600874503801264422178055232897800451561521115949293138900539362804751114358408785688534806800640883873833048283910743547233001014019576901115198728474321689776104136964806424559033852842867154167862115619473197318569978265881282272689165049928339078262787606258748195131952692181530961457189452061869803219562576363024556101550142229542315974183754872848724153444261447288648027091651951883347180737825542661728924219387968386767413287564819006807641144210054283902368371923461204162449075677319795054487444685812562174510234086803869595358638461684809702944709403274372191881291431134759181453991453152848906785822631114902633932925296642245541234221208367444864851257713379716574352789881209826569083842962350158884080732785382409480295497235504241426055282857601061931254665109553186101153175861081293920710428377456928609951151895072347562738254378085808722109466928462989086351103295639647302121071439682662372192691385414959866524743375894711207183802132182083697218873137279562774936138838341687607836065821709746411688697440203854014594045032788805509012458269937531373142869001291466480952939814351111792571612069563999965169777100340955062761279932843589016346049817448630206779403817414468240585113066759063722203480126075802558442992376709022714852681742378224596094849721852667370482552610057229148221793174632394317048054068941016001816001967682975778041683159559353208236643089229215704236170571729979362061719381823231755059126655426934389667030742205585057119192200050948783760487006425929341687224883527807693479012815117751141237208709102953251594422419447668261594919009386105667659642235566743733624859350731160119327605243018870896671506846149211397274072552578165907416662851071497052026173769670689220201151458216882657731329301930797094180975298476267350258473806336581962750586271642508266299743676146739466866784047510214837649920722465345468905061634161406274938006543335211436118948429940826631764661220620280393733011659453140654358506854071432690489506930954161001833230302879450539441820917723719688024357186993637153711317854867061237596746284433001508683712696751142253916213750006259345781407295648858905225179751586048191285139843311904636386714933868868468971269509556483653595425486278994670772983230822713788720755147462075992574587115397699465182498198958261951320061550317864863372577080793027171360807970241155769600526400773527286211534798182589315685370035651077142376315718034588890341368500016926170442330070680052088253274823101886626163193225162522396148274196711193080086764317814480579117091161606723952941913638358681884795652583992656587537925963162659212904829354303330176097459846549937998309257815849967496729306654315792400305607911668127374199235147694758082032321270000069336199688846370482671411717593970368288893398842559746701953522475770427771825489464164264578802693232630478916706523643121023901295002444488522054895282310754975315782179282620821360987333352508844669748299381754439939062100478637166317728836961590278085208921695127926145789451879873409274258188040162975054884186177038763427502705814353378760360324117544220347927083482494484590428275024752185205980661879276565934699235304211986225223864858571260229288575620496555108131123408593824440665738558621133795005300140497809684832618716587712677042397664552765043486939459404200444033712471530380393886715250272835037709660287042895949873515818920474653379275612582134825259129950713532135918479337734659096486850003679240889229915632688773499209054299064237519096947185108101344783977402862856272969437580595793571944492816593088213575866908143000444109191633820748213754194753671434247776690836173603837615407034766663642743106844973475433630478507991850256668453917554867370176785064509485191149897986336106592214923090842928633809720391884108919452326129032270022352300345693618151829573399627439046091561887684711718245657300017859507901925793268628740491327127723092818870148658411730305051992938957471768252434044457325893166454921296478858015190715140731758736163995504122076481162635262612519731926827805852574956928844657620924599421517598640474886382422433567699865213494257530784713665324648348680469799168484685707619052322188702099975207246977891061249307656651101897359488187430655472864374765642904083489289716751909005211084896599484585524173711644434741674739341076954543391706867368254768519325171856147581000797344555404771174641433803088782514044207193576729232671386918884190354909008713159915365475885997083365897345668502685497056789870527521873425298908280514435802558342750560801028170633288946892975523470163472866829474566322007891528572067582306972393557109491409427332443292910847258043353947337188319770348658516310543493846498723978848549236871935955733801796367838804087769777645845908729261655537957504790937980764762339781872724699375088672750135823470643076015712872171025466612357326572174153837562833589103396092370470833796876414434595323036132520014368170555674218516328235224773741536636438347730991362047390857248428084987228057710080380895875727588101090601619912898957413074347709352690787634714073195188358813508286137766540205684987945711590726864003666099678699912800234031111941430831217338876578325968652457538069953611410881133020399359968823435136317861614188574526439876020502244960330192478762717192758177272971034313641953689861037115344581256473387656922986447194632907347630170737940847172717001532469691542990249481127892362541877963302183078066845414472626579716325662691740003908745950979130403936277948182145283282475246496717241843114533140270162448327533321277313904248604855525818024135386177782200479874568297792778731203866988352544219911759569181747051298178873750111547371722457256825792380690373682551760169346509287642581443312816389478786474685097338428605615580448290697032008515334546710759146528706550074619630899653530094051139000668455716867773215843967485225089479141368360484974836829006342475274530604238550448451812666847843485106851861958110366874425716095097949690460990297078922358209695752714897583012514350955143462654746628945334674791756671591861239048947317648143248411774992161207695740987041930859039013607826419459083143632211140711303063039162853952119105409130185691192252582110485188709976556939038113266039860339388514571140264530653452234208553671468146568691763169463349268202134730312188590046368326273949332835336871911132957249759041182979330450436540518975493200368331094559325587461632283223672938353866314626124138885779380743577102574681375560602685804987376682097634808295222775426805486770661766262233724662343478428864003614935802232164748973759349689171650516655185663900641515182387686764054128721909158177842299051703751074879980251485974667671270206607646757068502187496586453538635285365768651701169406304634155794788540443250824351795495703582310213003127295956456850257332611425884987593108888865802386469187717182086994283656819100759480476230116241342590281293021317552310196567781221346398139703704901840670845040148051074262354542521401846053158474408337834274144897757212365963099793516642561536408416648192459926966906066692469315447991532722705151156356772564426174428968077794696960183060972245146776593708626674988566183646960554412416198440456033090516061720775208541771941558399614816613133157647359973986606233402284758553553208559619149188750286865944731696964401463314813233178434743604012945273383103202013513825758042524761978436311131777100236799386447247784044980820053040924647418521814167858767929410205980418822860925660989840148863997834045755637339253482747983472529933126410854141964462064485784721272046356248788948003594607876759007212871069154971514563179272472860682853135521669539869446879922672161195405531446978820860242714745645655071813290354275997200695574450669299044621422161865515374623978398726401859691400201571647670839899104164700567535213557346296930048474177547906304636345683097455896770947076919405311429080407584575428392868196515160855502559026679025268819976567553957842406810854178346579518775330991325770147965690482353123691859981900434640564289429824098605773679314037666482663398106763321666417732163852657545437239677377784861993608474376656150368149280486199552455669597389877983383607245185567538128682631890234044397558358969687349637061474672698189925247930863124602817134123118183826151169584919740313461964366057469029610030014334574650055157402442020976647759534444931774706979353322263929846239358030182644517375131986740113527714994977170183729476619255737024168923967680185617436697196441281028857920560075766326997451975030858741794317782855618386094454177383973514102560035872849058347109819132030010615393362210283879246938505019637309573585765837786344190568237590951141810854669931583960530559968891080418385605107990463316501968082241553934105926944912361288848776071530951207820223376946450255483883863325144760439816813427783912225961772014010038132543905708998303861169669534659603571109387070584305185861665704269693911203114331814640291871837038751857190037347072331572539240728112249721279976716669741257650150852035383014477640880422749191614131747781017846019633557944174056159405303327520516227161116759030504189890330447773781864498592181797951251634800191824542937037691057309965688261215737814178030864940125542775394667488645326278964283499556087171862060429343386017604320351957268625585784810643587750409807999004498679006096296932377531906008780058126619131347445757061788796958149134192164698459486198098270931416337464016818850857655123567211220455971324240744696207164401908749482830254424778246089659814023027691580388966367217366377420843561248803682017454447289477446583930925457207477666287617424349341984307099521218167080201484462033582037155221700450380408271363142563488051921262147322512444808603653837098533269307482269513395557565030221400487143822402444187454299937448310729282522670048626444730713861471962557654053013183663099972409725141020514024590540394718856448946327365177841723319425468601213372176849537688484260662493516244365003345508854665189169840997557011238140305687514724721016238823480549781899217184138858899161502897364814408462096604062803436628221739760261749333660935862019599170051581491966995033280737868092842869970982259155452228655964134698065713942969642680703210833861246527165468688389465024053262198267222590206662218375786004730530623690817689963290554544887168957257663452298657385176439245003524288419584958988724974624989759810193771520789066770540618097355798270244415660434680782605489888704136993112560886804832309954678521853967830631123652051389720461977640716648453640289099354169769988038208626978048488168274497515179882683243984124163469648430696536504633708038394665000143362990456971993740131594683156278030463172303890612829851319480903291754022357973250747754786198786740772205209641845162560548247990994466208295060626918392599845044606159263517586726697946036732083002325036065539208648224185731884266298029843544391348059337394902772885260165278699925106231671923787826136594909936076878576827870343373543441613367231531216536622250525404548516578032102164036650247137052865581575563161466767002603306401867059230868026108986521641376249548280406294119220897628360172058769479351807662728678339411149618846272200687273936615024377350914227079198756434199505895922094921800380821276414190691846290530965510082938305611734807407793597770071881887123276385198815244529979584442926872474362802490875153036606995800113754455980810808295572532760791291964718827265863365811626406878458776412141270887441318453689533285171422935697827799981021349174474996026380138110457194358355961284601933762613298497595610594965153719213223698380159757351279192820624370996715051609359621712135852242545167793381296340605461356956949366069032533989020780339834244964298018459213172888704947415615996762971433029791322914201956331554638858408066368158383283119719585626945837220734927511824703402716731597573341649563863660692917678706353039240140339074308930763733647806290918985885284098641122648538880988260491216257968605683126465624360944007590496995744879046313981101043139663051265873779309186649478430984536209232628052381784965627501998951860897868484949489531008782828303777645100258581404451396598289611850566671641072411092242021028053122872646812216339824702351488826275759017046823309188560080115629130044855608569054623695376866646836435160663692654981054550412943998002937783894662730493049122206557837159103641612005140225675879333478735687474247394048084223052942132913645999145022090818527929243739224351056195298095254946343976122817786067464053242466615225966660986875876890543530504708321138755497865238805142037330998733329250428081904856786700910535848174610744724952470361460802214731730915552566995227423331980576214756214507238486504540920211803869881811110116640262671127567440599665419352892453219182454295946249588481279764391945625258510827126885391682217672938039437537734111115272627896793350557077221622543989535299222465425061568980515645307911935939110645282042108536192927066718652513533816966776311177341320381499043059937751859089634182473442580993477788344484719763743199160448108271692845599706031446463518094893063514270629048539046237611809909914405172056558787007701938749155389774525865294066813558896013024380518820796321390926718395530990039656446035429021100351529511906643978731857753992758206469785566790634624260160723375104805311493092311465948199831276691768710968676924878668879421172838592402202656136316105768801003017224155778742294495190199325131296117154368458236597581873538581962301067307010642046904926867301269305537209049820244781763753057548552739862412656304772886177048485924199477979719763932242596688948905855299294713132715256098453755879037484613568031859250577410360265607623876162565013823074284127951395249671548934566018227523510201525563311389506483581734658049129631903893560943041808835884260906352199233203066803327657675045239391622257236311468595719960584698781723839916076635135785702168067402900560318520602960743826665039416860609789279984656597496298406088796744904514260374691877932220719666361443701310733747590058416591608280597446317380618715204559392511947279261244507293561135403678324538363087706924864697188840410841947178431544953909838850042025084258161810372368873752716219336599137779934621876278217778865944341600005054465577878734487715243596912135365095398430263149777801730687376588814228897825421159671606829359191254766593915912059769498236235313041887986810296328494856127860660148632754334483986683139822979318286812920568129394118126040916318337688005089401121570653598433500696209700805972444927179849440485060472637660792225653504837337413967840256065099767365727725690800617850121538177540105073887171617822262131625220460725470602954141274582396175213408415935179740188021735996310733199005956203597171636108964739510269465432096731066597049965028980032103475576434568745632430117598488971806118463544047083549191754643044292538479904256369850042861115644370111712518374877955129317220790502192923715989381847000612224165912032989900143758823038465454282114982666949157715131822875062086235181718961673533197137442885196414251467516392286954125638268183504070819013339048242177429108340963160537252503726290829520638025859775833399583916424172512268847750863808385654096550594714305452843917437909591502695992233585448050908593108358264646487717054728026004008993858031430006789137797379680195146916420019738478674054228348013381097226147309037290785721548714555542658644324993029233629886122587023585576191521906156629312613024325856565936741461096335535099410770003112105155869575472112127298944484301588166399536095704088622280034675265785995024568504002461531527472259747803874604379542132737957060017960742135045239919467434676932944407042034338957675072565136415704731344182371801646906311181712436959376963150234377518020487594924125328537457459892622038467050057260021893653138227617722872188510979319494736396484301861618743031534672219985748338948824079004226425933351265455237767956183477298249415629041285599319254107659583409551381870338453133868349192893652012706617846371913002543736941954162266522448218391603878821976294537387172822660387440910372744153042452523807499811253787042089961039254862984269277340562069766883358881807350271605597956585602094785639521581265506629992097429526250866422157074395335445013193086288155429102779261102945031041482206913332285094305618713380628219595883056026632641136002933529103932285201285472711421574059152255643744900249946262961274382730805445662887354254731076091855890854308825206406209145156226404068742608000672359833695751551412888082033533080027292481285486782896256772893583706124931750696552568874604453986223225254991006768280612421483563635301175593235097581086984776321668866138040306431012415379751906087586095138723611652682908327224636745872760883060260491727790164914205326794346656681985168780398870293653251183548114891359648462920260843710767245965250603444826120369120970317632033502153701805605386833902349449496618490047659849360146501905225897288465587005937397686785261416802435475994591714074234517654281323507808274811539329776777747467340111021911758771736900165718243293731298050310886706215885718275598070849602774289657529944380556705126017202556906722725395844718280495261822073282806344154144973301521543940997051853983645753441854596639438589411528398120696942764360795123691358392621372701477833590071238175155591917894897392721601460849369282176520757305424476376862475425015143276906102551668581860669338803875354225252905010546825179572979759849304342008276632716578588684301970118486701917349706997498680726480391124600610831351071044375566137878585673405199616571180795402429707160614335595380871594686859065368116145995250197459179248969445867063677726783105762669203851289166416084719796243996948609719546393971890433401031943403762042000732322309383845733357322160531808144513890846635550926625303484867008059298565303129454195313013497669510359667033539878934847468676027372506480971050901228877982522326557995754582676868256253347802652577790193966928291962658984507645619005391722929013782772154666500328787718558595614231621606649679066003845201744151859493151302680338327923346857241571384158984340366331768018678543245796826165306751594797383749083290266140756931958354096280685010543553385225915683851602598336803446668675502382517066556465809617630737051443275085219540983738304380486220848498965043641795997139490238039837459148997166989235798044759628679000894318298492824553912632825056745602977343926752508292558504297195013581600377278886544012317400608109350319435371825597139421510320014919805169649047441507949461177018177688372157481769582042147316826674202857556678514867471240657015092952987305044875685097831401938320953198951139966484853900139938772352681158944023045093802949841908087761981492667359558940927007730057965646115446460299042233204173054220697380266326787394742529390480839449008537045172919379883334642751101373552916515808687872351769757248865662331313497747437769439318085779648547773391026835130093303276177881786564424371547201396080053156255651938433557302715655545227292677069122918301905835571670454730604752950605404632380641252530592283074060361452782347141437359101531066381145258503375918773976804763088569260536413241299377246811670480765149853800440026680415952303759294573903736903120310532606269671615010215600144826267806433527891869315476413028144690332749595920309019191786016886720537973116996742812084530874963631184966221719737617667728152236416889451276770574134533063181133723705856544796629744308838701048813623362700726410266407859695981810167643494719503165915308522180173830257881882029589583105420326493886286794075955078004615498480635923841934232852674406941507538843152221795498221673209082894001416718018783999967127673059541777766148082668806292130662617848980661543075957495894055675090608362129613168135689069450334978960060586922698035048534381643718618438724045491053534089779750107195332883159668538948623491180772477431843453182101803093070243154225811992327512181093310846416170439443565690989514247933300654529329795464541098661538956593964120373373788196922760704814345294810552157422344946426992785286580510062576059156479306139158371087519692356429676424221481915099657166976074480130842218929389747528298944517805481527163595447760871521266146449822223923515080102178231698912764421623784692316222685295579612680354505247614162355013817309068664501459416738402595806438274744203514050196389019309898314247395391836697851041669681867776210865437100736108362753033766468460734518935400958900730379788371223028892754018707828563206164338809938660195582038739761675586809054851659119943781217764082681406391093252659644279283441566431050419444331766145759778203232625957422788876152519879170077878955557107242525806775394410815279898931049968517677903670017203936803173793443206568671917603314932657755631817067266488861995700767289369637971907241066775917092020458592380196618190908431955097468430695459678540444083127773904118608122087767502642846645893032556045254381826411495438709060060741986808290656863625602037705444098447772316558545513562368827201501672151121175465166398436021301483284914356857167355277668105132283045945723114578661529171135205443770173577459512903500585800768698691130767967779409943734365260857428664603304063129340508612113759518987237124529892187331942069845211212608547224789002629134261799812092038196734792528258588562961008104295803798435211843939074416209265334835838289970250340356112267620767073619374934950970859298609189348407210815892089206121169427279679384967032241474529642757816982030876443250398186766941367534059614100268859275972099838670179571651723543755405925475383103060454321104578641658704982426495317323648846888052073305705885222541471437417080780744034427298376965295491276066529963351417506364301320308211996674080437717073568972706360075520797736797561855256350589136817998006894812900252874341309781439837526434244836871228965867617237370524423193699390761520228188279655061936881441360851761798214382143720824780075657130053029139339344231132309726639780077697473660902990751680363465112143209271256351340181470944076571163613449046399252472948399692949177998367839793392742422663696026978629430861851310760408524967987580896813701266594885658398653351582429011218359134689139897611932259611517154295052321425502412827775186321689435142804539610752286732749162534579352653398613815277364125709914688471064264768016051686259438479758579124187117970200157056496896509962787980089571339966883788861362125162545398197509040843829898418218154322279027469829011389340788391134729831769413757817638041781304016995795055991487442482415724573868711584615526807165996207905682840375823077519353702991978437548777298612276054346651120494141311288501751217149455122535470925876346099619447724948295815865047962749940653703916977663042634304410817397784840120856866926954204219081928890719216617655110731341238297526934846462986882717662074224053022331147038839230596480381609219405442900898846027350683074912034676343615910988116702456061470534184936522507973946789082897407631464258213653921956810442245614943258267101436999121301580605303709068422538827061459148549857698042904939756010153711081622586659998904524285934559041046582569235162874754468401846629765266517092950819654138879391071077390546425932260276424326142603592064909384051346910803338892595832342977618582799927353569140419594794759268279904624541426743403069795001784681585059329800389276914937190493833765295593729194379088909188827601751360327526411615861263335917469183844517898765882638852747547878678516992039300343941672428990380266774453115894979853569805861092411309167045928298496055249848978435749181054565163930048273340213107114892840459528865486821569047116734285365838665442425546766927707287661173169310862600470978640543358432808219548353249011499399877653640566328046029411697529762157308747496700362289257162917227548200769876043499177041869208969904343198054911160794411839553525882155186359681695328082109181715752719793134549588172192409109026221675200564737206704589521578188235762048085286282556932463327682108119236939288613333848085284876793354026349384460493086535411737458706974119643293266889998843836779838340336002269646832951153393129865716766295994329833953228821324269965306800226641541204205195098956062833676990169873066804204829931317684913505385441109441800936726641477316228126304737868847171533495204971549075585714867002531084382158069395816525877691639582967281081120173497968110960024013753982800982734230971115334164352809555811319259354912445598839916226024480367640174519498165963770407342146373513474847288185279368352880346928029579858394426990838850211142628747204160090811111364313109389951877608018504292281597225160698009279067554689197856419077928313112134596204852624600158174499637927237915868764072892276746908656162275716928385035267696121684259099766585602180754210444781309640934391623167934622706474098019507112338911201528475973496044711401596393125013312170928467406405463935816215960506407035508728184250175877328598436675759596500495452393208756133459708756059891567004604337676774625509609055812226263568082295793934286845941288702031917727670024766627634397385229941046586343387521623782307478514550931724276909747304079476652759496574666515920899730383752718871806139480091669134181720113500327479667052787006054742844650796472132011725329446409632127606179085554330776108017890680990898041294338332105781623600359856440649043303467211680400295856377136566470841858135615735807302049390446671617967576045928640426347819766687233280085547813755042672599095485830149850376050753043323770754203390756328659668008224496837481790396279280571873196842515864643384638632063201696490292712379627179650220125345112330577197152021355102101948752477079307850139436475117316071364518350558605454178827734498772494575280101370493998732159143757886087379945127058391071629339240104673683851140385449552117838915550646003109386727716110998111921168926460411549415969567136875213157612413584680215935643738629600511493320657099506436666002240622924245777888071957352753410132641925633140009537649959682069484849573039270492391030395649484261983398999976084864929851429009010920473405778246383013908792896980672352198771729299729857612046401218909643668707770331645255378149877595076591781258361599403439955514128062921664363906023652903992676100946269128508520281768373443871141602248685711358471991685712093089517656322048812080319530629339558630145418896603591756973993776361229940287374682070447010222904619154881847883071850230604536327248434643401807729273927159797932510258196164837761588435443036554840738844345282958935236208951764224735837834324206798111597237625556252108211553580742431581071946492917904868574530184737676374717674482566594487968847532287106087190226912127486122930278639734826699590002973059288339464823501663709872022600531629236268709857571218750294380165283772452463313224653109573243032021004671183985945470451460356981131316945911129018771625606575188788526567008868880728496286369701034464009236717789253733110411077180114780560479218392690764974944712195408784598239350248896981805261934621990288850127400749212345891892336106850000012823698481733660602100371593137052190930657713200951475705254711133558673535424786184578559105516252402068418398641270349245151953457242442161722860248994217622985386405158694849149481198095253580915849882327698615388465132454689121639759857397377670819346630228335014059324858591078366290628505082433721531921264186275006713090237120429173396537919186114412033196323130123919136849832341521344707213227515943227973785104870068275303768577788742649786114358230115984037899157797840451984204460231856163104996565324876274470236129439858043701616540994133976113233272918603789939330322215461523791114521809793958840868071751599556246752680651027090402745295433502170154024870598769115112913549842631000314746623052690679368305890240475281213901840331609265569653469920973993571088949298724702392933214039040834379734593187271415748989373229794727132501075599377390142867792067826566587972749182723901354523689317730310016188520971814987826665094375646325115371351357281246113250886397832779863157415057861894270175503868189378829485075421553523414655022289120782918681814629185119357974456525363319097413312206750794857216751183164352681811031884649762001657475487910659330471295639389812535827911639139025334240068581394247061670734214376423674330670693485407759587958932329098920208206208488465984841230460094737069385828212520515884669342242849965924661646653087082314361852099451025663549989375759498640763703409873176841470446292390206180029924098287617188315330439173694105191793864239103335501885240337446358662508859717781670469637400217546606997880655785630015342605070074489786563132023546816561556223523732002071034828802223579874514068116053098328885588779162872310611232763672838053477309002104420540214318748943798042532472901552531651533121815281705739616538378440255306147981216802488395508403410500793664063318426143259108840617509855596233637354929500700748813534926248432409114344005984134427100179363203475739945826517908553487173143396004387414002798791826776620436807502878971196114475287314324095983479436320498422224343230925387248297885085965137662432252415822409888316962019772413202114011477598765025222513505471440767778607052131915039763122782271018907747937774470038186877576824240913199957298451710480149595006629020621116669664717234312762498195491053567223198774397709330516845519042545706389590257302934602183055033515030989600831169343552573511877483551162327564223907589765680737690958438923055693131222186593947009273921100809590237191667278624879387183749873277351572613154402077862411534900046934697314257280687730631277521461567976818590199805543267627588411555975808491389744439547571258783016752900937135708295641541392373548806741020286279025857417063116697678584688561735117847918181869005688415353755287610871799292314273032195119570300221401170759121739959672302955084913311673121737246396459075763904716779711323317737728096034058177142078319103070198619216555476639306585685271225850428685904078059302182108260084001274179896558258257274586755506062560362600040781266196753056297928737475508033829815603007859626424422412170622642284765878682324148114593268420848998027887550602964315252505346468480196961554889108923647029113916594197179978164035850482673373097903323156392104776654545057175281623739000016999866395399079292272124097779879234306240128625026178036014111309171468972840087607958323357490337368780798983686712408974489783083238308456920231204757127677871769792600362657142869847849947522457102761339990985439306168587473668991018420697908676117875415384104407994095541116322606635853235183086886764139752247241663893026017704850682235345409485633746558897915838426937484091848168127466668394376950321813028863508591039122543327804438032510606425950551537327488135192341822367179880652056961809051061803768068296828587096099182046043112924630020145898958743298925063511693537219229228214393220302071615512478728515709914700500335154753697972349714640327344033999501198323185437988665825457853077155492181566822818267872672115442800987825885787867844468255571108684324927937597512124753143160147811804927535105278104738106056545937352324674524741567730343370010388615175003891918291101596731305257559765955142617422197229930792723421615030887377788112323615341672806734133624438415284635754148167067253588963919708950057240546433947574092991367182570393961669189758942705438222191204509749696463310662128251639189039421290203488591089994410171942540186383687258787512641828517891305878176582938825332826635326842022883898720241558746349388154021296685699628078917968137938251100585153071078641898063783208191931530915833263685700594638524801313898012193905177930592736907065342619798561313206871684575496959949180177260327818912053462414348283893050645197815137620521636266016979202910674543958616279965483337700948021373978900016718890238802344279321979833696766350850229708800003400260750305937758411101692468927541356717109749609366097820318885268423651461551036568047881043517555756159975596585316376630684112031685174040280037853275528242565098312993650405156522648482779788089046918583898160674351831880342842806971685027742060186244376981639239208318964961432216552438967520901825502467402022380648795973677769171045631460238935947818925967934167748284105398158274067858875220411496250970824681623162012410778375037744352572240212818963195433252738313544428627737031051583586559297506273944063045336634129329174055654732896071669726734825623168348560445029072119317729247864264255903824386460793820706305944277114288197620178647187320080805066481488156347140046339654116488840148566418563341358669732799763388711369851448343434379657723246677500019475891338596903431439349899592877722978572113112569404448428728829458410394858040221616598157807286426819600988292283722990464062963151285205127644000761573606518134977250958718630999827056131696700968797092710147031651116968047558145526729417164409521168583445405765171513545808270252045646963204833547088593151690937238487952898382636822774365789915380126091877681853282755108189740977496139945734112454987758388825432268182229449898423671281026827024463337492796843654755324981062917579005007456652016869077882319137662193064503350368729057503611667863015800861413882212405047340315674315943311302267970609111538096760079411694572703368305097428971184312383909877153829103102888788558732328936444785508377296135686636890566939453991282671945220820877062350339308947591660547638333157871223692413297918930656130989877070803588279960606880760078885995764365573098817236200550519748605862797718503741339579510171909571699886604747359767492660258109652739145962249670530109464313348534291954147191825967793861987960234772638392421777867336723342846858337014617479273533697450474410058383790570352797637948769429851500029155730838850721340552441798772060263158094127041531509957771137398788049136500213128936855746043800337716535356935120308100787577502225876532470008445666885141406344930786050646238836041302292727291208972411395194273567963211245214278315616710435248341369326255728293414167599146537397465970905120785035611118416945552460941630464963451074310650179598497000011381520469126435312514242556259792328327409167203289162056744984508842069913391246798526774634435175299639338175648278431723946990516314637109429449315526937666199548428179077348415754249872299319172912543544667272972228411555466361700438410361127188439081225494050889948635130463457659193028526995580870186479831019236708454334423886998234898752551780592966904237120516633147517337933826688215973118242685398493516162069514187042568902315446036186576045796671345284604722018076798578596370694572425925650873622887441452438876349619699855055047350685213514274825714416005423291793025355869005656072475202818712333437990961043604674496550749865274149953588532875515224379674416482800024699263218223553456270247175080343914864046741521839678511287371600063233620864728750457616694369734749001511413805470540254571873783314046367380595641218516292093145013904389885322476307411911556939670575582137798010498881719194686799704143288959330587433395580714911463198312563549276076601026328285383499898350312789975436452238062261186762555783210894817812760759107960298326664649834510960230241450518912411570577498366682690829075005541342116609442700261168243181088075158779569665288521363042442101920196382973174537663753229506008444293367135781229117902449064860070103035378805385502179108381317602680583400319568087372585796521847016613718726663461850099395907573297500713108722221110060480865283498739753238665090821023521696544310110767224077241735319138362810399831699533611496746213382434776808504589479136110414008158424077429697160784420031140702578140260367499897268184471857381516684413386061316954144112362574251358371259483597000321216602459811382238793869941346926121943999842252324367585598529744857183106816679836897656137311001890712318028519165823273144303446310542817007538456314770307763476038387835922202257923549239651393428779450663912430762530855004525356309339242765133496822095278724688364581901861573456724682213142393647751384841576010195714544276974913436767148478185871086539866324472174358664527949199388342009125024138859505610349108828829160034588769655915915022443348869135243261842060780869252704444097164803120844363723692902942642537579039986829215606685674943368280459373281782141663525365317119348438550599183503735730770561108488972321057585591750492841002817551316455170600995701582247958094257739512981722700607563403291148393118154278846125159089636489198498780699689428171374694263014367860041229141173931962820606145897513678644191126603717106960450439062194916459423502952838648428192946903281173396796888090155997410768803093547211927489778348382153270975650803941174400825567172176530080052225613232055078792399833725580008339560701029282309485059141474250118606123258109827960299190504020642050693034506734114359875160719706761092518150828708835817172747682778271243269559675384896804089930847299184378508998786684866638719848125033236259296594287612697334126652422079874184648941151630983732236863350625330853966573328497669825228095656867833988329938740859366539360909668626597225753143046665343590235610038954740753271692745809358290324614721033393384228633296310241792850862462236550128641640679660213583492550908457636008396890194802561878142737228714414437506590372299544602880537353121865063741333139600816995360493592209000523923233335949882111460084366183021279994104808538088484007168561103281616333595768008203489281465180899303867707050482148066179207365696336414938518366106166575934530864524226586921708261835440316924568356841140620024719807118595510222655450514241264904018674283588207216531722368259346624701269665106763802613475644249721502006163926598462066629740223358001591165177375019812452238160057850858999475010062645253983173137270734747358647946615483406108434798580495803882945945744603768318303627941075083987966586351895565336802972145858406994262139405572060057629086058244099483802550547749994974520133245500276488694921696330544325139897300823553131194378856403309962471229357701448906067078321142855416084392673515821995038803137346152894057325901087348483437651888627177226934962553549685491978414350116066540928713675935017990517450140349443169605102582183525679385902629819141430754885945067005490149484906133425845267088108458327340138860566320860559636210583124670422895897819298892653190393458489980193004776202539727206020152768324302954423263989354461562223476292873585806847573960986601336584274877115344649012675647696768589360764553016082266586421480587206476251960637317375733825377439678049727253188083850683730743869558189120416202825809378274382358611465634883997197694494604883664043193987641862237712931173864348835857025092187935847194728480891900997619250611740536694400596518774453373828560061100959462569810600708970945120874649013122394614839747193573514909156122059364858764082366750307019755972293893159850642354492027639227824950843022678523004556600304566146787649210086709911738900405062372723126551255030190960012010734067140886221243139321666056518841660036355319906133755945840879092727332873251326351166883754474864257190937573823250121070938320670830726657177310853971824689248282214319117407870270720993008992172809924941589999634771334026177242138929899726856124157318597904416129664546436766158510888521285345737064905069505661670725417064185385065740244726836423621731590079019837707365467175171895294458239870861323923177272995711587333588004745388815268850274284027175179369318971298103257398186375610043411611655848298163773135183521547190994247581002136067857907638163254068436267372796647532789774850779792008285694738235087655708756958527439406422772874177160059266064659112783553216427941381932543337660013369099582075676812830713318471491823199581873275388127008516029506354027932639556712936567187522992298166545428949663401465956134314959913925898200460375254368847360166228228842668149068036341565164515527002064545970419221465945902010572760978919891446269559816210139204718449053095306233647640195770122323286505400494586835773825807214281783738820388129088326183430647188937962633799302636372049928913647384086372380363610797587451085835933333609510062037106607239527847830928396526555313724315241251205815201754988019025366779550563068717942900245185261135895888094944416334476652750907115893517356680700939325103949225653812835532644903645429608690333448832429058077589635160632630231871705669742109500484822849863273770331484562413854185514697588349228895782964696755149159527452425373577425387507001892676965071823355818553797936794583304321395014279997462996989136088602550373822426283899941199254237910259374844773960927458896492029292746743645878448685839405425650549114946516180973986678189847895833693260674200564673751948791837326941641496785140967678250762967885082454815813640872856171053484462786625879982198310509960302290089757290506756259758940625380337581057536967736504199749466078530920334654644530502553167180022240251894130374186858035878811180909168449444439142603911171239459202470342044763021632177970167752381714445992714950741759928872613406872618542770360333668394345201011349269310413065307299482052530297480852139661933381017904706043991155441732921513639767747210448521547524212171884272543587907099247053303736194078032874690965415806184691601874482104493257339416025452751810757164564832807075743116183456879181221098105092271218148464231087663905193361410962633116109390557004770183187866037969728319127282435945228649050423857006423036525579877652043553323924939076710072844549695592106431185723303790654435486892829383473388549917161838646637580499903461453469837948011966961918323544310124261370929874376374943563681541579245839262854886686098262995169148041567212701328507719804544826434958428024558881667581304253016946920959355755587511543313212723747725896980002715232558106523436545410626172335864738025700557118492004569681157072284100111063275679641161479736805153412348358135747539636388271128435221570677362265460908357787553803216409498374692278633276291885684099754182848970951384470344816728482359195805852809185789169069936061643891319453017266470465001268273022737799333276621612615759200938124766957751517138211315827231584115225720322033988951792884613948365641484397445721373103343889121234023811996106368167161043588963511327548295765300618605449851477757387342103211980240286481315570946520164359801461698098703946870180151397361523676304227596321104087034644088823592940096115821950100844264666050900599909864848347007030526801607858393498875295423687489169774123542793031927403472973671145801287027028284624785786948233561087676512947571641071049024696857148607184558674465239541754079513775143727144555503788524177315597719283889743271974302373493879555313562853310608893595296051539040369724279436410854029360554454249231519389012927882862822167479321905166066538290135179897177854933393597698027083004120193720649263360826463496123373561655991898107170476098986958009286023348159877775282267844678189794950677743721937755048767446739060243455812944311264811706658185876634285175043637462065177571206839755504727734008935950646431258775695170194451588665204339155404046300240832984161517532744954142100224166355474986636732788443782897910053343982575984103010714207136569474015531390911636652422465787811832051764841941423093497681786757829902247428805906852233387640601300670252836149031709942251518390228785001713245250185058377588511222337323355296789292430438094969127074278539538666119111396229672180165103150844425364487390254307202279425129093370322107366290519056186561101870789926018115464570895869069188610824495971455344347703216117938212159041117120369682618618499732637253230784903675473477073569449973258956281244602910710382701852394344767789936764367933791999986365434422555882186099490128498733542895289103438788063732776611849167857248450469007407419439051787187571533096123258961797690770980198864270417115385516526610918825725635684042562961863455199676437757966110247037521177518032439953020158804066531330605579382065711854875461489756240971206616813515800516104622178321384758679574765825186338631856379535763353748489153401456492882728848681101077987643664289478607683381756043989183261845212129564166454548737538389271014494025478743689477552948260029577061670083485198680518033094664382204570450463619511986215134536324251970973774620127446221512710051860996858266123260444574992475309700093536344275305780682388240780307546252763916776803029766302886068075874226624258058186467166593667626550087055386827997676040360017883882731083750783552230880626727097726650572714044779475337377590132202235409909297949048935670204994951649546738622090465640090419631386797253170649413417853706462011481604993685095323848591590282870916211478507811768897358759584237247198289284286828473605938001023475940882775295578759149232144813699466491576836680563918313101798883786675927175471332665504853640635493617999963147499781606795379933283091986081203240685289622643359292186233598679360606508270843701730398518699011582259380626792509563491369228455502720106866643896184576505340229982709941995410322354626378051325360809393787207010657079961333682714150409086306216731442178782581066767252770778353062739668275576665403314115170298230988929675862964442006764383914466987148108762972786520042904561049796227349465719972811337956011058172447995018962813850445941670021811983263065153966650985058241593279563567520311252711549620122620775586342338747697349433822248299156213758014902590394033929703161166823033911666890595496255137335931842924282477608142569995959523243407591550414789891245513877319099715956619894633956683892803101374340756741030780536795013673790420573080015711654030651024884056796452283601760659396520562894131878817625907374543489956757012890333542872145677321553133907004070604339268027017475960979340586078980392430694117462905320538920931827397327974843073555764025224216814287555602464915442750277917935100797188102535519609521818452646265923601227629768574881227464482319217420958806661739775262607186655255830719834841017023463612832036933418469763750900968886244316457280863281435705471018553231049827330245006553784190749810281531092607685814359372683940194490957395454262149338988699687611993135071359282200694640806273912211999550774899059908433394185947166266250062868415522299497295344409489929385428371951194589813316707201026275344071349588810826649423516859926295061386516866940601119253431157470663197245311913551177886972916097115361728599754720203764269598884151432853995522143077835394419289857478152045686706692115485464544088895876244278482478064214987073898846917768203742015057242446150514870018689835982810169110478403392361609102165667279051144234248286144229809676552341219982028781200115905133236688753404695016827405806149031511241932272842369160855522775633882590363981714010456126526218449379597248577920282859984552803006677509797179854170507369224086452054616155907307121002739919804164880161874141251628932404680139289524783349612617959329370185740410881964012111953620448505142039626319031742668360293147663190037874794100323250444604635021270225963073075507754560723611033324082841950635332974341498905703706055408307473745162172099970083250193976429685264013489644243630737269178637278389354778779698697068138903426854651828716935244283767457259683555210067108247370979089756716756827243379883518676052286529065746718366329217629531305111761704576272415723783079639440260745739796743392731957131572833243638374282933610275555641061204066800626958018626638463249633201794444521287678797156765314107175422109682633367852181485509214560041647192077505105287454667056579610366071080097796879394821122359937718596868514150174967166465591747746581875338481725546151860216472152785722094881948528623728458931191680741879919221786019435523048943367167463501748394386861257367169859233854213291474742850750820214472253591552792689615780858964658252351919190423194291785949264375530977955287426955969629786633629939366032621349675629845734481897934169181401282691086367844530672839402998558714427284263396778709718397893773254942063618825012333631575165117292502838567349351593883500111853866063855294576314566608363970711746771592017528758523454974209162628194491935739545444149456490805921612821930756254567103827525721905125580999242652306722455749897688089110910720592493508060106681000936907616394693981306312511582688863042558023569050683467196677869718664572503846756847421588464635307922786300483841679898144504754617879414672303049914182215504369619694087239624580220677205620146213925157071273210485937786829451350517317638914034565418006456207020086303354821548626138661393729416399608696574929049727268340004516721161722218477381955934348410427529896292423811220406189585707077075985083389253692308827239934465925970754634213771411142691864702838614223750009440918959941166146657805338744777957194568334392182706774137256319198051333671307630220864733973637130292789383072375429385420288874250781557773711221433604531458271217620872621329089002675837377352144553302409211673565274904304183872900002754608373473952460829625397269334496754686099842916121273065322297324717127526861274437690973263045459557658069186724564655799163539733366444304505324596393643262806301092488187891686892274845212286151269121869389318167572346480168103605714735981567026591713232884272437105484633251844721636668767331651426929514078325051914089234812049055243985169527723842160653152182732072944902734109682271503011210845252273084245117782593831876274459023032600731561325700216736520690850919889678002552472786805099671548788049939535151383675809856632413186522350910885469587666706692346472952444253324466922269124257587548077562670597296094649133839252271034099956476356410756876485351132182182692725020040996270199480421892446745386426400714452767975059000532159425600266227280907324269998938918288594110322070152708240508947354445884997091139944066465054367367406396994123562998640849436870817180766619556722532607255744423684551476989011153586989543243622801289356837196452225811369761346937174364343037558731938761399355803323656935393307945638629713864459178791435033342068241176410300651518771271241595091692311035484554490690255533752862079103606031288926951119179998827977616483157120684916130459095691513305695108246562190019532869709625382248898278835137960704947037423241367851864151793737884591471805075469036209265163728907933958844502012535372298951887940660357914706799200641352200250100887361000398082560372719200750566283484313673486580728691398313455281055113025716985622834091466237166678404700039070610863826060131801205345854000031488664517072073078754193251690779621271042637872209099601266570689460337370283134771322875126012099646991906783464925707931624422236263213460471273710255097340871807690414318859015566612464122305117563703100413673973027926076597114746788816932887116306070703375803929546699524714223522248504966832609786844909323921695479438841039370316531189008366720265480553829859927468892094312485976312178457527724831817278143863061059540388346436243932562274920880869411393856682133345771267413577674028407518445342406665693601651779733147388196949144186519196425608755464126423696388473974229788674713927344002497077300036409194325296768381636325168947801050007985889159510153044835315646917729450552252965266238258633152275326831754816057853801925334765915731447509060751164105537726697929376384861700300694830787135472389198907257549568829515769614634212602310697676092703903083334679376259076710460346494226152279184206787449695377476348798683157485248070208111328538994383571437364002831547307029874757159336031633183508457511124925564474202298438958257087008149571685259575457364428969590930594924317081436144648589857893859008425209540024455397497506396753735212949037456441510520198708772534989421171227092998706637194412998486603310339936737353765173453086103874446998012600202124530916204015539703026165754389877350445431487825772429909391863358610038093667466716828640435846493773163864481866956827938824357789103136107476298218894609111157930193657967649198238218057613040703870682402976877212716149990773812738438245840735726373772041270902293361864339770227769790517692405157895353143542493622553644816487771079542520139255951362660430171213743094800340821646870760378482961576987504124222208324064725013468554416733100189979193148716008316060141753566572058348735196246052746278804760112939491075431501984034120730353566996766095868590886495509048413826238974053441176880376869731484045318918155244554807226191914325391195474111580091609670224333546949958425412564874760334355976397577355310631957836529632314487608252516040082533671886686188026857125148231523254127237725019002265568255864902695688591142795120489698954046135789043334516737344483748992435169721867025943645630727428916593408029242800216641106336156037239183788706975330378347637417050095226675814576514937736499772989301332831396492559852070430553792055200202154274680460651968071643602723235526424976241008743746965093704408773220764718187474699327950836008180719071375678542715333744538597341280383731788318213302624743285269559607136404576182643954936132935341873685977659226535598313241872544642804217921116597194480154878004990213530262669001026044075090441846628455466273890417825259596680204124528271954553313285387926143997424346706814633227163634112625700068989429938036046436903013234799691718468623696408110519609165254998672063113896808126988214850867070554051525502382906794901978191146523428078329856657147761503936672269534290860192699003216414901545038595543675637645322951405235805545188062724015130569290284260726601324679592933084068713968168655237594924990297606442565870168663888227708306768000882830784102610365316569002698864005598049786382164746003570848355665890927177671494144395186654922468640473042747893024144346825024468560395780803237118717908745407351630035859909760094543171555539513079017263721484454989591243423039769801254966368463245011233938091791274800295784057821456205314563682591212021497527458233804570518659117366649415519003585992786113915454118654986521797017584003252734568241795767569064887730482324852837078214460081874246071774490263018642490846613882845180344247422224573133036312520017589116533576350883444275500849712998989191400269030437155072914916613597845463967669708149846708825737018160736402885743354887550445720440469657211722447608529001727362718678832112850741123023979245723695893612786714828421074634432881732343068221267515511594342507358371825805480922403111390942797106350715177710180691088385561446304933603317060817697186937149839988929656658925441818004366301093088168926114981672193711276562112860363315782037419651499887128536638319361377211568736355837323985511885330782470368276058841951031965135693970504919730120844176492086473273272283714605856119783400723911388237446842169575774105239964173665992895975618280030676319091382779264633819020250354560734981225813213072673847611825492096961776272682250142439169472743048840945043273189770376570644724566267983470121140955256895630480730247623436669997840419426608631892465154706901118218766933919641633170677542924029653462497002228343668558569360978316444656644436723790874715886801366582587081919024483062711933994976450616118774415705393032598015786203218104952639065572943446562277906916176839298333017784044329113350366142107501245544109502894053830124885736307118733315677310287924983093210301717015329187326823247005994415933952678675221734175441277854292394415387132073645765187033802717237711991265905897245052537681184728092748551801456499141037656698110504246772815361067694364373689065312077592516819230484462191770143387912733972554068831664839634546772559010459464275763196871167075086579864356711969511333029954947568801731169496019224545082608031310824860686866513363746324714965973833728503067959459335750204491891500121051379236356022279890395949435431759592978766047791824020829885782646162499452476573394518658620193815231935997335772376692204657491703891251871365768368785624172490996816845249096329748497283644017445374118391654625982537841987989254985379316560014264864359526943879061440190590088022783214983743451547589819275491079399532163731492384100492937902432101810269993379276537542433670931095815324510360946807699924388078849714941405294439643860864351888729343479877049426221447483118213335341051298667677708731131643352734124141067123385595480274960880539109515756745323749254386637209450245240006431200029142476544782896475746111936357842338367489086943683821070608125003873843977162553554399402434917142203054339775297222162280242439674644227720117508775669495522782064547881676190446668796945795419546497143256183547376063788809533554258644073966861444347306209891762541967538409521241496022025161075083990451753180708780930149965637190891085864312832823062983465688277888186972348369459907441444413475579069684740066977134929879967492946454928227427973865812006708178844980997176749671219936190282948373677699474689751166190207658692740105272217136722395409153122415613974899846751334310581214158758492613615145091665713497705096519322337477330942195860565769383968374471839311462910160136428758558295176744811128302322428623814986024105264673003504971806707953677554693704224771100269221745173451337053376323479857589661821677139715692596536076957149511657096907816047908594557839812355844636794859752560747154791247245360763638972656552224016776000660042180230915901707988893287826188256576186354148276413340959162569453882020004977955546278527807442066093846489520740464941156720047993669184314271495990895524915594457487220220336360582103239542862194086651212379382385383289654965983830354668338798032402968092534477433811091424455050879288592047212883041265324726501649258300105803945289150392667094572813220071512518496287492502692984756558934032857777078485204855177253019111278008512977770312026039475783170251757457314578698527059020090221490641082102817958702465328273152292564892829436453630205631646174555366248497784862794394651025733905946077241963810740753422247329989371107443633895440418965129272737098098360970302307375342547973244683169567540209828877983238687339817860104426387635693011207259134850682265198123395496444190578958608100386980913517776676644899873127013848089178526445208510398781544189473464677854713125809275864096613235218577760352023116820861507029846683473893363744781902222328122494211178911210912133002904080582529763276809606511624991753132237137629403499963487035295950921897047919560214001636463771488523862425120818354681430672434944398863537552678376391789587357251820071919643902538929459530062362907485349853860145159237320654168552031097593495230677637587992780978330244936346848672957220284063896725011100206465726854136888108514500938512051926859147766261882355390124856483380289873018867313867937624554684195935413495278704913855852231110432212482715159173777729691655600329458358042048625835534208256777230392688177638659012345644212304955922987039815306824284398813353810997364073320905715642365938723693694123873546409296835427746506088115231165017518760399015245744786855665694727734877075194139008212301746716077793635755674384732769126260067760633719322104918119885566878580325923415346160037106595498145136288735906642766681987103406625326424117793669711515121510399539469171403834406298445368937790900480952140455951395423455845634495601682795762125289887162426819997504236838304002748196389950977948633671660366349152643151984066891941710779447915501802364393255052156445198652920802421407415535946170130474981730415648680557381237978627084732269602428333998209363408856738331901317617506524256880294973320790886392744590820209506725162700312819667120673358128249768886856436490361543037405503416777599629157491270612761591766288666214710991219490723929850525335063575333422350677456431984947048627323669915196274131148728107979619514044414802698560754346988809481097986586075400928425127395049424818306726786923995499834447485984534614632202127929017131342183781244221084952490291467998712728735315707707535066616267067479971833957298656979007994205352683912278617995075891284058359020763450199160938601457184221448096166801976042722459427348455844774548390825364039326486831698164479294476957722705317244736693140519951017623282637661248349591019425683770259544375768631607373670163017404203390672657090559602424897228914745486011032480599985086882173619400330241390155552558957903352501774548276805877003921923003193755428769147982653637259959383528636540230616045579046103239127258800124691307652960442973551661602003557799522526915242521840285570588338088753966493893843193059872427033688342377361421441423207388574652103353422339496814425072240474889696432528020079622645254291491597816914348592206608655028255538710344590589248375802797433002995650812186765738903106912876868659655997807767355699925953471343640615099386582715484224842460109503235176166500579922959728241852379193102994496822562227457570321069901091200348037585388532223229014027899654013343092622718781250262330162214687713984246877089347822744561811383921792935558219906654789480625759054175649102469434868021116148902539566958644148956801190177422936936522200082374463300455567556215845465286127756657762192060757935053525032838015718445133653292320919107516224057195385766574096917744470333368038162727703373204290568079248025177750002649814177128226663146655026566468138378161380785805327371764521633726642891245268755449524552362791368376240301261072002652400450277463803464356346679828445660889356223005820055602587124793017513166961181267131700999919326823380660160656985132122766111183620630615190775020521580807877347097954162577427026790305979122937278295832310831929844024374122088457628813591759715902833283145120144032241196940161116043991602892090354871849030213224313440544726500064538543427417341322468987149005224923049345048299745783199299392313028869069758604934873910627221958862073093422643810753283719276194869313241899982614651184394303492994112570594768768706422857469259216492096066180477695614979212816294339381440997455407082914116846300763281331168645989747965764783250144227341074979963236632286624373100628276636914003071539734563450805812471445670564196218143213535012187897214600032742361967901835370502725844918795810418567125903125799066005717861960432032047745082333808499655958309596499995367287781738763454438998188944685184211448792553986388627212336525025656750739974267383488049664441514722797272383568792721480736062452367965442652845446952655880840175166620411890326693012659906601146925647361354929191049533885893317598750778081071114001891566886553266768743300741630527216138535005835374700215536795940472494047014371611377647472972874355267570656609939992600433241252766075391295819999961346874470556852639047303241291296831786779268930366417662379196206481915068913146862398801352850018558874615669591436849912652353436885192253660283322634713250083411953068215242800019475240179072845479294515832623376941060001818393504290079746510985508973465783723797787336190184301271555007298169783894258521439017123537318400262895254445706268634081592659724042779829217268558181320345091115392584508177226561151142747142164065754998777626686515404650780961800843291394279752991116334227070606683731584445250373181693763669209276040148745084022456652037649105714386684990769521468464094751382921596024967170450519239947002820419119254742671391256556518588059289591987575723825530853941071700467491381618752384200234191472677879809712776709030925181614062111746710743969520219780030229789786618378836129766705135130598651655477830192989842207964264074292443214193694527032952430678448298047928671533842998695251775602568115839828382257725674308347280064313734894650312596373179568259745089784601622862838285740523397301531559679498298163090501239125137267039984102717039652329614195561296075673635248087948321764305002932209032590994689666718081471845198566972079943632250933682580049677824649842969297678863604518123803612797089028038181742383903062901966910991669563761779136593729420771750266989032147181498210619529103014216814252408784377546444394473157344331266062922689717837399151963447412333163122995544147293376152271565671110613121832424921687739706798460769050128096620840090244013493667595520369171668475593359149330235453153437271766057031682397845102356481348977099985319622007343560340786922103172344083563091741699845895031345460028119926345013143573761946219912404368839980919794498793613505508619716812372520715299469352387188611246440521110032159868728542954736101425221807638517752564851262033489223707832188511968150064696316850629287718625970420095634667612380269947500078247075441502038796073403860835103001035385766042965358127141676121760025392227478980754218237368856234695761362963061798333604285809745026170843938983654890545249341709012685680488570327415984751602037079944955301349951374323098189895254959615603079248416521102754379414299784171971234642391738335641442777006375637917544853608456515956754671022513384446652847633547019130593026996870512349762331721493124527255912013853882070140869083128302069717435956597016066370938461491192059591301288274419073852831363500515328335391726295922317531292525316257946624509514468169071883603928405582527089981701637695132768433597977450538145371776965605726576210130114099916017139277246619987544981929064170360831014715378669093716153398510851176220624965101675436529731856211360091806017440598021468065402866990252546234989932157452390641509955716463720658184266742814557650917283178411868594568896996221438236312131264464434698493576835459570258910643830871819752520869188161912128166002342763281914300980645537260464952587045319306156213283919200294484833914624959443821467453679005977754749753067893902804328674993661376459496927252159055730470070053181865712387715584154687418931709573995809664326479764630964731128022909785503844685213441668015540116730637817607440732135249482289047932283315895281993796535782097468317225593446202322413449478381757501116681346969381762133783798947785325115936610928283351014434273834157696719277856854667157225338148888381378612080134449978114084400619852382384559857327252786522572628308798906007779972735742239081809191877967596794188991616184475958498975426361478345091814036352666526625228035626101577572335088563759204665786267669192659963075156516990091861705019949049265149203304568234207308021803123445699972497152833941114505176302520789084054926561785218921803739679313079304192097060740866371172494260188481710917753906781226581067416283788363144836931614587963939065998886396269755597968315176387852604383952219598521853209978211538822964015216004194473373673525733742926870374242582540561732832915035568508025345410055907621748859134917351765315591752004849106195946072018525927295294873736156097328954934536080278840518623029835087492451623705518738521480933234989583031758182762292258311031944028952380415759443948918412436436846631353056112065405672807314554239281821198729656435030606882939506478832035788347816673535725930029272201609458445026717061150551499827961030029573521347325457660722957153001725876971187567611093670930298911300008010024945873576506120765168280427542015713693109946965223964914707531934939951714977127127890701176300078909812842603324566403272264676529859259590754592092055991113269938941562729923701397219239685558296385950848919451342814147185324146358279379146383526140048847512429088944118512656356374750337149669709766717811877788535257903636107717867752005588823802702286165208747366178559861168465585241798413335222000741835270303798499244150400536104857228921583746235469868033727269479016619378323880722093425984222611156309411864318409425461436916339802148001637449465664799098666726629627869031659883449256201837146646264742424064957309149939878913509214679576467367171457786302382370741515291935501507730967867589134439821663942991146487428711002233480647998602914058615052196196592037377664240298427362246202897701472101001612376665470912495427215818268385516046458182209176200459727750221473530700060793015927878487736346494045999640890997960808138369351451021663092516149065958362377803023957799648429583904120052419339439590167965739862145946510970938335409830826687433709487482763832441748979070684957292539082327916757917805780778326218926474522625935191258468685607873864446495421322990450549041543435444784243507253789142075198017339193598009746296711879271442997158696650953826796248187460102867958837221121451128832735488381435548327226996149321324954967021004649209143508603336818463555475763357708039956939040612704673162857324232541864086759830055879356054840656760113171281663506204982221936088563642147137274112535073042388968728988048734089004754939515343319176133320420257759716883201656662756758600279410737706356344569245718236858491224774351781909066924959343413099590674021739078646524714238406826269936499837945622753322916059103816862075467018772601531194652300223570402021107861161752624754116748657454468192928545453982270204701160003576299643353446199356069512498064969460691111927278170325180563658697768836615619819514861879189787537047670295762005140990701232302857961704417990776175592510748962159267927688831976780632815488391546809822078649194710875884004964932717855299408183735698864914678811434351941963314052498241073632778474087586060085857396001677462041734442547472492632342455948934080900314331945401469113145982087441129502129716408575036342837557482265944901118230999076044625262062731330244856466444967108628373974588329498130214739307165105516684994637251598490222604481865455552610418067965509597272352359723613494853787661616694148306377913384671075052607284860923952293012574971752948182249040258788198891461356036479745293349214317628719216692843505291850832898146256887744216277294745637332469500507224217096014445337928892750956998954277563190876547944385999082824609892372234268407399990632098882043235315359339286191647945508170659770997866333591831564796007086289752740039444026934312135938420312149241764266306957298757108894256231272634784496934519047840634698687806246133160478428486529935030477728893771998628454882543875235613410314549134851531123099396915375331304867483381104444903248357904410999825782506266005995666088627775913655019010808664148445277156948677615623606070563750227911807519039073185311040036942549799976087916749490649283697916099391354881093362179964254852071410051913199736403072306470643768173267017825441133744024127155248331960977028902779380462068415302827802924788875228545214481600759623578106264386225838796324956522096378158862808223157570991691959479396896622715146740901468016512242356403468162466013070285002388707743805250368876129018876285082995250677346830466006194878322907402300237534429347171879873268374781753312951635163379253648979786441073589464057942295179542529411654392556335669090360451164809365987461682006880837009733991463536670608389733073784973404100301798953579767181970014768822334702967299979741383226647980539364331967816999537187918311219032378346607623229728752440410311303348625744223763343041305871310327938998062477814326612441216311013570422982144043033639176669908263623457941888721519735562741647547521446987842640965025222548654982593507498351891315132079736963144720885601460653738789682264706389042779672243444720422478807626849590999877378790790340968335009522405061653791800439810822949540131795770180901333143832265192653287292742211390344254794990452913185624095888152703107615733994201008456722248797345605556986836128591692608257615239971355200515583697734912573238049680137671575757959743997740090459264084989138149627141821358463383446264258391444419185270343756973664303724083160288692085242217339337383857938373596735875619284245701450550602273305311366596738961164895904349662874973821275495245624290414150470161427327564279223860660386100139728485917187725700422650343208704863238331291455358268516588145156209150428106765288081045821339941981985455302371162935972788228496673092860826448117586687243680823936221577288310821727399060324388053369994260359059716497761767215457616134922219633284041090675978509550299824869951179056349396783878919291805500956604319277501763450426418752773213501969377671283645345271178711433290526623397793615198433420779718137073065621502984001206078631210690579185592118315011871026405719995009785158843308246285099194475660254845543230612245406449950542617395246469179835944856766218435446263270891436436538258620549911031247705746613382928670397662253418662222315315459772938516655801111867045682635094662791849641758908925136043933724128487470874425771745087206036460233781886363772007716620374489086588869231923442607427636338814099111165027477393814785025677974235467187477223839583561931396821801820324879117397657492325514170902312799346275391739571050994222970201099787695996775333535576971795145012592615046283943029554912733250009895193409718275522289346543814578221735587643804569401936107377606880364550474685496237692684691131533993216416238234229755446732456038190148947721871973888469815059521723127333457321609380277396646452601081326180199999720623720116146127919419426038046188665845036949742923107988228369668753165758440210575287760320976515227893618638420284443905274762224019718822847211247785542155302569603110858653453311296666779626000237090802485010609290482604731917192939209287209890179574924050160025546559672323992588585969168043289551764864091771190475127437363661942039866455591577020025301686605379050184286419912956633867542933833258385493967378816214528444483332528417615859204652782952918555871221828251078686112862081636293539678727697816471942396641678914483699619276751413568182424840372254916839340696799813623643019680194732508745607513778526772156091362581976661537122810363494022108198438896668276402566688869608843477336703082826362497268370165254761334074169534173379104564322143085563203865357036059787420447759056187279875088363950254588363671424451105238004068212529440830881643845880434899682433133612990637153420204681272214832592934242002580483777166988662087070570041390090816946574182647225438793213840797451658119478150811194218581844480055069583535287736445751995911238003092071183009436648243554150257517608847869199299074475999477811865849034085914500599605311008288125554970103990944673691307184932084946985478036190760081470683825690603166793969639745904113177509780732114337122874352753551051339474956621780770324679637490771715971446717215370859216929839106420252848376896717689782538194972136456375966533640831234344118074945261579568851639343280804416967937020182252495563645314234045741853631781641201402723605719494151412370380486575377949883274881446702340616940517946990646196295671332219014022903699276686687171376422404579038640105552180460805211075446291335189759171133705657772197763549738779659832227956210910636133932601771918350047009948709524451072144469567627722750458346861728112519142425488469277917528977748362420929797108455024642224153053409857844373069877019975093170328717327762858698128424927355111028227984032270465104582924667062968939421653095498640125690688355602565231290272492476440721586388326927745453899361751958177471045551340440911517994982671892280115156201198871115388169979876025150036897850572654407855797879076222697580978862990535716955784916163984322591999633170572156250877903832359422370008745796035799121680797643831065983272465580721470520566808631287787154861919822265305029430274251597694123831657957518709172889796729407934294725233938722973975084836285007925340770628945965455545462902176134437250481133970370047688918611573751010287048122781498057273266307522436699417433035854634311286407533333288842366676263786406600369453911229578029849600756461166193038570301519406987560489968411699155421698027046438234994054786851590636770607038490956103811454512843696361222314380990150410034114718487352948255010972768021158039244094251275318416416543354419693302265832421420680038868734555310170656899764004947002867185795909349688799343306997574445039964713622518857565520388947351032983261358636631358463794850711842075582566959603115421816258694196370706421733513450310759415246885131795176414949148686221431703900818752035956873149804066663613671455185008069747534278690105667713127223106734579218358191581565873428808491307720294558693427720028157034923201628536781410862396495583611712744649439125981853842043127751247128971934136365964976138419698478344776989880781817084524311801532785295461428217359668313367030074044040328795627261247018737278906710479077037338144215683768002953784725014667227833780178570074116040773541209384785913712448585079241984590677742114526487307410712050420646396599672210136153265188543987668882729597822259126017294275081808599807799317581107785864698784942981455034749954147715936476218598107116174326221469972272424917469115741607396732988157719701083219538717399213431262326881850080398214592357855063427020707211223466948795134823238059459504245371440878655190360559460074432435009967294941401809227223548379828092084029847334495221947067721336266812189232095351850552555116267299958789253019242443217361841390970811044863908389643589337969979139223119968631953858000497239845986837023892467277802735140316643140663702215847543092134581626345727352415454562351345243438681284699622358158314642153478031818034850778808172120927455771613345819398035012696334651055009961914121179457168264820709140554160667024311672458202631927775709362517765009338275844411730929590453792782464312963262797699554511357907089258183858132523925443467450272399624165816905162202037139193838817270670389571699621326900818783580457470466497642278339532631828957527676476818194025014092157408623733557315552164819699497781448060623037482496689381983273430427860941457490591076668143802269088878111915639266278424322906746171146310951458311445699945396150730138507078200134546226560200031448940381987984276696890491641215310159931419491546110665233334297046167849372625060536610201980373041336395017134868624497553282462670521241573412440129065932286231735267721271451674440047896437932014486429676934264872090545798364163830547681955697652472057893953330690292157113231021575105291989607751899992415089432759211025346373305691534564199602568798507733131739268875651460491234093958626044579040661729949625200767571174444492042790060009830016240993427119773202470344224033186039324751151097710535335437510391632700474411686082296263814560855629260095941958376566089413246801841350775673884074113131526114710221614989797953827569827516383609027329105536725016637709442577098321274510433918318233280371881576698595207997300051963891273705780243460907181147956584074730916503970112534997741065377608784863665299349857668454251687881206980190802657993350415556057200778214863240204690269359332681817395290369152394573038251845893684370647529980078393952436401371020439158124243835376679427626311233971246720352421222676409999938295141646880867422724608343484607578762266785374956233147102189776841700488570842411552466731672611725837397970646773548126761818086251507793496776260993528661718568978591385739238972002141477681582091195576695410225028518287550383099954358343808518005213654507115175271660945382431845404357372272340637134526999824583200019571910676417827893567486389424365349790140235298866935562508950628625322096667237476296170542746199731414085190570256223758829128071458729968109780540475629455645294985169804016290149082638594817041741464858614804911801354234074896645761813216410882929996084521866157814752478523025297970367447133099135618560510414393929276131938818737847745378704567172462225198054983858812078395160285662891901142458756890422222275847818976364922944049671961932707677063389589285172490083502372365881387426476640964455843189593159071783766084626840766212406671149177908082119810427122211931528316732074415256180299125562795924695233117252067795809059439052758855973762647849260733653760282755585609450483453735766435052456164367763018524301651846588414171309324821997320239540663223972063534299230354071004938085852652638433127797002967488729616449372868622769849798031565678096842539686394780164309455261420017829937236726788872984197438608151840209731453323274981346424335300369194976295264205377890276254339715318951233509451760559615201646981323558316411537900319816173552874449587531276199537267330181938573576001591207388510065558755355596488813388575550122792078787259306043709103402770166946594404488685920244759309169956922426162175437817828824649088449890668793569270839015406394057601817562210534838034991613255049066438477159373407771809833992380066162916625231514215336000894666832323964903488395685170929693125992027567655901544921995149914275654811450293493844202578788647438599045438491617105717142885355162326310178836901838352834641773356126258245151904483298518664764590002117007433379468668266034969518216959808172619022771830948271449225334414790691049395565415773893293963915432689210437836355701604272404733466289674485687131578667063397010919066208610118643377560474577851064631379838095565108393530018880883788941801749383753506266272256001551173570025855974381246080652113808269378045337509058102191309117785455550734197055310633897292988018460136482047412241690333218934465078985577097029447832185136766190922024179678469850608261777900824283464180089809106170204685871200987241008968115747328176435234387743303835494658598873737869593227249298182057696301835919121054062635313578213191259273794943639000812298012153488864872583449918310631673962751408768571560079950859767792452493829412930277263760968037478737260648170039998105308303260157557729342532819303131614238933421939470509771978006847029748518689100724953002034873674077861642922209352711818072314707812184144878873652492196801336875351201024081118391230759704412915674766955506197566317435181394382414925429362692563428563967133742107765755495376944652597716570181348879601871072044705497502469188275408209081475693943346402906076674364749385612483895138725279757385467422009213137996327810262697806283157042360442731994812892086103917490583725921162493270724176281036603190170771040054612484636212150311488551039431020413716064481634122477805132216918418422448249805812827004262727891272664565844385128989268410017234752952279552879289071494444339073383627248488523576890924837139354992263316482812870609713807191938784901180050901232067995934419201913806263612310080127297535696936619502248604221089867527815345859044655997757281223523653958859641296950572752559228016571431725897862428936650820435197408662031995689688947357835753643602484426290479178838087277640470228182214116015494243167115466644983735749013449958670380236673590832179999238625910439319295699995437194015112783790779174397041135261058564590786626169259927839747045386803816379525108967800008584043614076292004011493411116078180308944410496665834222093034952591633855514745776770465984166088581730762958062563482370191581043168848298746434564286532030960556502309872198496879574959472700323491423677189866784463982303098735352517265363860423985097466819365635058497866400648344814380315594865467806305569771358626198700658603660493382583302442553341694675486509212885208541686855824699685734479669227047034530723134546200820021311698394774907776529502048414966392870408593502769107912025056924086512838685965064169926008717431890522415538908077944939687514734189439602394711582212205077361750799232125157925199939311964470963914310233149038138804609999299670087287838972765453376734873544355255721640041707428067327843623368467166799467384614084017286996410863222104748988685377909420507198076211853789663302322984428483438945526386911531879069644312410219966131609364925658948887330452666701138720037745946333800583806663271746430136828902662824380802786716328474109612118102016376545135414643070877569800565226480158164663239084584559009245963806816009033190575332529611187385320124610371743284780787128446222365627201827437855070602238845746986882145984071295179292212929124006918641510382244974698988129138576518238897450215978750296538332863988094615046106454859692596724365169587725907386500139044610580056553983821018253192318542311001496875938582913398576191912531306932836161955716114179199087737463645417317080807057518960919209721051357448922280740667875697613208252761521642524227994708062666050375815862032404001568975707734741880876721592096860104721872334715349164592812744089724702406014695189405612666395998052343349015223356105537144250732875739089755470579363404057877077995983452923342389203132592374391091054889115103613745290572384162416726551370279292055046690079990155737450913056999974594046071112983220674644973287919678942982051679761496744189209751580015288703367708686048428909994705881191967755608392940808631003063910802744031782490168757509192117216032005909992841460773138216855368006920520822801576150206293660607033422489164175708070282707291116690534375116706508229892520589713556126986867454396569436491701403124017540595330669490552063093348242578277962430681486433723133088108991196474611294169286829895770739996530335827399252168092554143561905905388487868908746465513818544585733514016329433198095767468017187890209591690601146875314269379093316275888300239458867767902452262902755316415231528327210839146188448959641157973496705961845428392194413173836322131813486088333556854418701177470155912213193176790619605914214715985691955182067281919875323443311621458013388055868336541287033339963055921299848522913620097799946668830712407273703256508368183917200711404738265116478376948660235332902349594181375242539190026110011083058238914674711703405978394315340867644800346605783664776991411783618052517630613663431864855170494436807948820747915394787303669720310905596134546560104408232438063771854485699826735091825133162583382459499148845710236855267758904066017548928642353481000968209598343270834053892467878720685529443618892020801293158648767242997259624071072114883758591954284907110394431223156324276939325663377682136290041837743082043202818591580075818919509130918156604489900374780979039342751382855983553882479024446157186211549136157430583595969750954843646425090487102609095176172986668300773499893020681735021744588443348556597213129955398937863538469357235704407902451095017736229841555496804753724959845648263770830113025496257083814986071093226025460766389845561800026191966275263107231554094225739648530689011207284246123577279906300735284221830028366475036102506897815123822790682086712626269750584056460670788418179691171411338013039018167377230160623370196101025797071853400470948817124696765339532629950829130882828582103596183572086110405436892284164687020788110233089247499691200560036014758689640893063861402545506454077977080164346425253295767454883932290541940276982061755555577514999694049348288455013067648676572192880736283826268251495965024027295234844843117197720053812247135837954986065693457317467606542076807278518254902408407015302210785103796339005518100422178455407381553887911253117827627940861445728131623609812604006405893627334612641177369280874356950820369492173343019061847179203679954072999704924002918006690778890996310792197604585004962665112261320497145252480846998499087651886503102969582518299368346572053583141978951004073530703991170406056483517676895338191956706201204826286641873939751218186413042231896041121552404131256221143383532763626329916353178356497555474084179770627655711178786552567698770754156835303021424890289379373676627043844842815834099674794887187567986187894015023813368889743970902399012096418973370376490630036801158530637376574521514867747681435375016794678604199389106709433301803108142007296457883202397679013215545714376413512010545722918538374055833537937870417736051330225877227397660023258016294273634346600493981327213701986783530770952544059909538805504003159754894860705132525233132702759156243475532334107700194177157177549819454278852843753798570779154077053462620613116793255525614888188026727968418536706877918587312486384960183560295364677946893753084696331950713178516648277207125721758230592434697790677076059568629812581698664053888053115161204006651289137644014017131770722819762305896287310488128168342062790117463565915024653056858157945004014752446528468131865442170899577349477187547258681520492024044718312625567759413863202272354110017661283520323457890038861749386916237631576043798721376824339858601789222539678986064648219476481654713600349067411566413233154674382912968365427864477681354217140903148628393427931281779100807403813726012683505261785587804147906163982935104564330509683967515864923351524102064745299516142733223606451990058904926671518207123205925313881944853204731863863784420174521202276128312353279279869438859559505646860130981749605194938380615256390308863880473611710275401961129245428868326749148305367747072031775697244990278902991439260762450006740619054028048163133437766605139362072850309008745217166390995774876795775243885780961183720128264507284760128441659680006408029943446155397402926019381115975445744044403424695500374284940609731166056159256214995133394222082582816779111341336057137857981691482041261339242679537868940271771395712137076609813114720387158360563188696930770049656347290525495813301988214992473945247697910716877563358252836280873284493187283115717180542142073850006631056940586953364210364396013886600717158080175610891076945819727488810879185199266366663986718416044390186507614712971728049524257224708173356401405129475187305433471965717049087603865407493660380573602567139579305938147894333908066287302465886301758319913973569953733071480012476547902818162744900495498194116083328341305378755227980586780789582824608739170933762442024382554114896662039902756875362657667095984412032113301599852418518499332464441831187955729185647851763219471987053115366223412849402823467642710477547069413266243597529311519067306328942720802382489933746888760660322228614359636833606703229116987796334755540849336278466537299362201791306232930204291450636918680877348580564494904870724984481188869904848526944255691815263813226571469472816892900688888644695548620300443013673297749398670116039062070566299115039980071184488890773356435955104979750427297341825337985255211106169447064387380651223098809821983638976614543614092441113436123894881800322083393795827661643580777532772601121899618745840905312154561237445820029722627036343571023690048062829418446095482724033809773886657354437417128589879048709755439582125173746478953900689861485671981723154136969955819571221424361160064544675776783688331364808983759636225366205720541222426984803298666334306634444079763631000503754702478773282974023676446085716991219631993404404329430039673846101717913660257879029925267461138166298632842921677293646154390425301829840772388037716894641361028156456878396422361555159935930809604730331991757118744331099268327303104361440073824910374955440195381174482901070158977865924447406960481567940583222512352210311083794984966487243992872104565870159923225448900960325199853103763617561000957889221191837350230555104091106653144016669537292733157155968710004313464523764798180522897728334867985974066375158291004814190325286942759074095734486703325088265189901860303009766359555687100113894576132552023437830466391287716646416296460388007745046058886043235193596267698494448113198326617597744827772941079440978498515150519995263266262065723086885527063512121655780134986579412680819283222609515717114527886873419011441578715036109968657731207577404917606533951372501176367279235308922702176555023731027269688882848590158563188097006719243473242793552276207066880528785113354698984191778456039557186728777189149057782566534775309030895047007848271238713270190624525568689184393659972912635358716845963159483666417038856267167151374419502301543088443344042711260181002738361659061224533961996346372625283855119119929568573397934136545156020767402448369634044530668688871455508703408615403911113963000440171109728311564897529788890042619181901434296123250207813711181680872249032837261101746645292518864944179639969331592384342302231897197872307865744015273062079137669815657998148843278482272037674307058012744277324147052882760938302439109401967014440722552362654074652695487993873028984766618084466401729181976819296190248711151424169719043022460970446501149137845589116868895458327527289867293969426457365596403363389336894792334888980817763676707585897415082822880717675440357150022530069034146460269373616507624322759729294724999130937587237992940248202541342256347097569320201517053435132222557617018380559302552815549427698728480878849982242173891236907845399643067051166648972073326402633313264442017757192533066458496285776069104726840408659896761117724875703041028630026763607267312156924709382379044009322518315033275901353737571726275890890148000678842470529726701205190682370759449840137404840220490043301754359661913967829562427781135421492840141040565661972666714464998778387116791696278951564039778778334020542125969630336860767709570319738399349516653868826456256308937182893684692188242739454158178539623698491352849317489919192755778853561472129847113909377555145681041074232920805410206026762300929665163595711644963689908105358338341140978802047673669853546868026481451111767187821157829527876932302670784367098742756097191911953234540336004002515296704350011865015788410847078013266668014652899652312711262493345921687532807670241514149416806289199279169353742354147023364832738440519759138849072657207174500337797940555998472641363458696122748100813925376941982046158400040224315210635454864329767018877290220094023467088876458845227416634747396096665893068175075403303023050005974881971653315669403243735527391609721569840929545050404326739147484372396727893405890225237958327293894766112459828432982251156305980994843882417775912661857003328238903774827526046324102845119365528648010849030595379558697259203059756943009479997271164345126217638084183954335677876774052380285576092999434650960245726508443571896104889799121285460525397663356374356540423157411731112746868889834616614871875337008861907590101974686503525287552284481006182447896353317749076652825029697131361097026109855916739824627524072464093330944645246043389198885480955539329925317915271610557462550589692413993165174541344564844424625086726005923219367809675682752064790775639676863345258267723435788092787116380757278064926388429076815902319234023737531298336845952200092108096980260645142837419508816238765499705529924734432501958344613571135267513398367498980316920824696986616357980958415178643377710347907095240444235149402063472474934562185130494352238680091421417004839386363140261896297888501467146755054895192959502630255698078187881003770933482088511487154569928207661168070545532486925599547767340960000597070964892174328131715380343019451096888701602688584285123105835710128177201179527530683988329450697229199419774710222498678138662434874433436417470624453235418134801447765882713800008936806127834584193173255748472115904528942023306419361887664169337033473589926750634346293748377265332877166437551247972434716954706270769490911801581571155642923152605781044083987763628056822943880191140788702908712149426131105962096092804897188624135569615823343573649472421950893719666312473423342505822371037528544223102103893703710914364689268791219149007250578377631210599528935094157077933258510740751289127918291631191248754307017427151354037707619344993698070092438798422283001758473376839406145818921525895353923851988711942632431153514981959091962629876995593686909296635861502935348504845502377071727343820105612835131576718799555972315943357351280978811855269470363164701467675757681758178478274477184631363669468214701742706887010677205398369926392240534479377761970698765235756832890900219024352882526357534749152664322937364844960288512847070973182755232483672496445340881777686893808693216667551171555783676134755341557022419121700494792767534064178245254989636199038560852593803443571793598725471645564208682234734415911216584775225721918930531122974963901074858895613833211526747974556775364931707745635098783899326505651839508549708984972161567393207685007926042343475018941902775226746255243390687915251995832047155323412051225333997575887015261410903939952440405176407998570030516557195432347600105096441185822808060985540334416115165377370831277529692397711545080512221304605944474278025385240120419777042471332542674170318427364964060943434059574051693474745289616886660811683228182437570097581496916641673050540533861457327453475395528184240051833066351097107918245751523383301888435999925598017110949573909682685239967074948220097401598880268237275781634583854748896113140479083088752898680494281425770021466999984504790871543655905683612180140430075822679507621730482608437507112407317456638971687324634536557772063253742525850468116120750676767191808246065269998956846431145076840419576776276924429205785152843977787263215632625339450245335049666861373590046233766325088744930038596203386517084226791159404933726341552473409432371167184605040848087613571039987875509467243241282608342398272259927248355267434793144346774758932856355189173664707630163701298351679045866913385209787394441004018714576150697018503378063392648366255182345149681575103151926433660898627695205211044752031917990821775674177050085749997032003875167224497548698357073239344844550428765805154743816205953073674742203453219082348590041710508812814184312455536979381249998345595198426288858593250507389385029665521730066942116966546654348248621026788366167076790034119013543110413202526097111075984794443092482440703694491330704923592752106741910206517194596279812517203691995790864144509397917630283507630969161470062444523948656617933532329286548662933186358339269892268631801845343992335558549685031007304518941980637153379647236776671473727968430366122528378186730733805973554568508229462085688983605105888983138955756992932422586327615454548392790879972066873753478311768885583938847877675408607817921912436546797802570839348139901953650145854631999814593072884456211973933740631938141836812672106800930329614308184984220105117255521762884715272177728576422154771634134663099014232351650279598537955587218271790008482037359978247670564524664283570554848587517654763771633968260231774097958223215671770690845610042452958148283909793331410021181165420861636945114665443150311471800311102372057171101312995708763433005823328600085846111841024797108276190311206869965707148448642020993424652062349990077706429995301728965658024195307397003314301674814570508968471124448412217071235693179555511814927214918857715052124834380768895940169394416403100297482677639832160876989376080409803821618261455002847287663362586180855060917987870006540048492312765754088480088799464426150017460330275874027768886655135691777180470895909688255333157209061474328066776260020251390298606717635535277667813964116418534037741886452483293324471135299315480542845545059567259118933229020393050457155916554942570461709561850304403113481779047805889031394932161873041156843493032066014171813515062387837562270778294416335641931021822926362688823211801008405357720728929227357285643443755548699329524220722266014054361101497682203717514354625496665354879423105334249724846068371265971608419639229168592929734054423687705513247984563770428225994351847035555610150688904136087665787434406798433154712985718323893238402385727639450220435611649060158772842197539728613190500857361915258860719613519595342219397629614560828440135464770850849940891545887713126490596251008248185764147814127572767871603037716733413882865772676247310243387621702926401877535843485502608855475254458348862167602617730117022929428580490818138163554391996886469955765456188457065671242856243170337506608226590350942671004101203856590752717469225124688993275079326133925504919448203671655334524758902929658075728067133169970953168676395742602351860480604852662246282861199786680971102873008980794617714139106372094232709184963537924259559107455961462953729416260760212915030562653743376051580303702866598431270922471378479459467738023603759233612049603152506019350311263144082797467561375133655702199093765884073405928678217232738899505485086423517294845346281207253774825230959237433455444137379651197058401921619616524570417572967081114592289572213332101894139228518683328519707527029160531146411499842678403052593245039169458859069437209741517807870130019712517168293220513637276670777662830115215177262475138435846142655808998578541290728293885825175638593827369205462614985643629745056099027118798110572114138268731912114593899922947915013122634475729961245269026593932266629563405199788008031919005810280756270229930716352255288583144337688017888126975275836512473413934149170182623442096468020150572697005266200819584456316533859898034693852091854824337153248860569033541253430156237538142976206522231952196628292288616100132062234951531630431497667094135058243308417712736015741584920866442767543326079871368308987333342223002918888691180623125790012884348585522502851199688975203584150557871101730514156915869700745600650629686421161584427898669993003037366032776683630145415123941458291723703577679925549996269460597686930104659699128050051156331429050878135548992773382350861165690431103727365471019790038596931148414691838069201347351657127619844288463866059964365983525964267944553541392682416658297841681077880637808833438609951356456925770241256360922386533123400188614967054978448683433607000331312878445632169235073479481345300343668303311270101562567303192357712220301221111735163752180066837873833373878259264052769687557732984703440981976351579684449319911044214341394737553611315860523649385287649507488468135686874978168471276583304519786367787859965674138903409132344749420463379585489399213501759036239881939857807356679494560266670818680713337171455903541268140908443157678985347880826149904539983909880982251324505387696615879393139418019430188902371352941695386692509238870585824501194667692521237235424289814564920451636245966539810447922565450922812740477396910285027007271646868505678849727192859743191262405062611187322672651955581489777202927850810020045541858453766108925912874476228991897242688965742168560907713430177367248872675762440442235420769402700160617970573255839258728573267085677822928403393541041564226133940409809015099535297457265752086275636632021403952794375827830254980697434549251651360759667617911062267416557349665832800070330267289640165166358444450597065291189970480595858694523186260373342985703352533132871046824050533974817918279651023003130011106660512031393799184162572079921014832257789174651449087272590967428396542310099106471946876959772499359227278648568477911520451693958844712918523174960872863539676877986739977037334967137872264519818581609655846586399439147616378569217414573107998460280137993770940227958717822863432928404953970070105779927070026365468404010861574177534337163233055525725004300753451409552267010226302882833432692065268711877031399053732139166108488208461328889305546781499199632370106914740093325916714124121170271163189207254372481822394430579987193293305899779322235607636365797579437487998470782420333700787368699040415801525645998811323953361252534182649371123412596014501890735629660911920617158673260175159918712625935982613143572112610680122786220673721654262793729565899024040496376447117740174113305114237974144612977418966112655698379209180275525116486889147992128708527202490885646972686929728066304628819897185454022468966146979288323120645405976362800633959648569720616446850846720221299346776663899996153780897706785685666384025710297427495539982533065273253583334315339518022027320813403310996690786175958100046463124282433358201816063850876422864400939100310327824510750564358803921618169132583566314242221323737308105302806549944948864691056891628752552744367509542844473402801491712753834012579074419291907152129607670258206036041876522364151613541851337649952505293289980690019200937936560072333263740812051315212589131756081058301905831876701769315158480204791376491961566107715345127681238731753935026010898923803106296038664901232760233113815167111947610761387923825237048054380308671380957839766397150237802789560276968372939784093550744974997069165272280349215211911855844300110022251669506901669284977246147747535406246113082324963484212736374429421761653198674591086939565106658541918727276171970287135943461434990654772398672324757128623191851230582314817631279971033848611434152160867710369243043208597250829390959870110440079428778352800282832636091756581773892191838905664911608946050988747974504548478267762942239157539895132958231502200971957433413664198529863125353357276507865995212007201178429197728368261117135221935777529456516396370110666221870233772384644851253018817531758315811004691414291593427048328980005662797686816771352175010325243942923012959141991102343708637660558179010086509900018102891910965022979139587742738248750422416849252948841873451010244136100245305690500751920883188761324412648541794747031935913399594606472257205147412664938991795866428483259515977998186578533666179185230466606154481693429180152049998074632737481350431511889797445128716123297945734305277852230345467836097022832914807737320937379650433794081860324837924814442646059099374350398133578628717640486305917285319608866180480642601214156542811373893769556100287790936613191901914653188662632790584247413646339773900628589950374879956331608775063714613131131118569095930242483518943884809993799271145511149105855088235241365973455136740442299660598723212080287808363848967798085219395129235393107408918072207294873570761586558591700571456993029032420155747402368291481199446652881999238254214902545879733114791779722426783662565582283834739306099722603706988979199985682591797373559185074944604107160009374407706959688997950882874178548158276737852629911584751087316250356631134671251170829389098375406704236225301663325456520134594834348563611992061204105183529921133232112854489132508036189425762113256449105849793875090517481784762066671976570079389502030135777458248270562375262135593341048654410862598451567516057932967987810190123155408416396316176800266634108936634815698229857880327433873730424745213618265263134456401746663145714489027093506264875841494261022565270891391383068471483021987519350072446889287674017223897851401999496250219072453261040596002970807553967193553267961501294766552852309563435442413917683970643065558906175300625136762397513262864995713865447936294233129781414602169825472073666148718398608503461294026726934341882162479065066357137438378654048926089095433466879435062072189779857266605814492339141093283606435278084354545976726361253423488832678257304593034353792504366788354605424731087262779426411453137350595455610789239461580721036487451398363218062285221598245222482802401709059697855884966437749523424604745407328726152978151305924281674326188247047876725273930250909997843230525411569414056031351505073853819176301604131464662968240102757323905651080083807473990190231349833082519945184457586840249423004330938428673420694185201732088360593546238873134524309747544811106343586422324458622609846960781611292141038762360254267384739050442814055614613863541376323710857839365554733639094137456225195570324859990029882799756971823316290152014938672145103879219929428718985139821148760139524427355625736172611330352291534757809190718722648174868751277118561705883392875000644926375581872168728606080358825447745685816692677591524457806582787953308816089244199253587656074476805638382872341583458116237300671328880751167698033176496034650662224899860630514770385957946733745796908685346025227644602148886261635283221615706354441098340467070172935438805534540170122262295172753183497498442838590703955711085246632474420530716081114166396713369154525070766781252670519221207958085434076000645180359542514945677521931895689856651982427051636044804925385626620174813277847451902905085598908480859398593235135630260891978422917385196412316984474228473835293372439082033411221270610121858045942908709751496067136981528478808732805867893551257907006071452892859342332319384648325286775299555674229561323911038395593367396331682069884558975210775146767606019304193033506849473220266821739424214067982689411174058406112180778553456973287683748390796672829022864450657959934408422465372133156102082294271480147370941776658875385917000080680399189315702609858935777070232314818915291083024060288641993533896767638781446786472983482359009766579411899655854762846990641584274636053258236528173290211884020636509408281068541136389282158756548764844653335518946928503821784379284019886248480160556395181799180040290279388179931796934833371996380418980613383231756849465622910673366862264099964469558714077438027551105956355029917303606620228585364373435812848834959948700575447143705983730272653935900135081291217438716595839026400721425538516998883672470424560566143243942613632712699459581756424028237039270902117067373907408661554538262799875256462127830952906879153164163407141593758788750899400400439855213435867990098305479203073663717747090000155367034234530447342112308450764827154101625547455044914414215038845633568140270160784213243643824460308075504621866424501364314653998594343308825487678938525159013196984630286836783742473328705364790118984297668377991395553993168391235765794105918283747867814686354540231090878528259286624978781370256859523500869141659114909684939575753161684438525642160645119438575027000193790849960954182587553173219142426311234987655746294365938815585946093177912936549779074455065456771500472837862720790881813590042470707342664199379226502361097996477237466081717355041019520872525213796985737582173936793595987091287204895364006060388731387563956045385886767352244672475390834488415739316391542742647189812807552830423102242807590366579292213714130281126448048186583431029758268526681505743366725365725049585528492049062590006026748274777153715783018618677880110314015108943478744161054013929737467925655515754203006106568814175257605031240098155275638092734349672203319750119685860618535389754224257981726391942563993632876382618197621602035733545110027702885700198075038269897809776415445125373534972254688068910835422841283876198899769429321845056444051919652373748969956676896880056916948827303001044684199632197750091126356660423297503310959988856498827201232211586059971153482801905982760354424832335141716795508815914090363604931973071535632522789999769818892769606729375223306905371513139805538579531806589977602710209360001312202790757053972457474093669600498539091881996150336645844286820170422088801749159272729017830363601968032449276293645058544088267747355179810661368952604427076990794675854514329579850616300659459794973130555963432909243620524077035427861905795554362173055356167804605023491972170699744372906541593962498201860459560955471297623778871922570166387910816953453133527392369619573155192110715012281883965972607012302182797517665467872802152363782598976062189439265924013794335768320921759693056262765123007622457697625395327366311425339524309206846393921320062060029739874484132569503265178580126534612726426282453779946775813295045034624702101238546799286043475935053523474612648222365957538857750081581700598899851838987145335575609853089353173625246426943790262186625861777653504487906887546261200524200947675344390280887811908886119247469577163986284203257525862036388756319386153850124874150055532006450134482580301827787429784080716580916338031183102546317433790344758246040178268505001816371140834981786435276838826332729978418929506030392443520494415682744038435198469292830802939453562132932491974936809413407592194020213761709431264388618440501337388073540180210162853697798843136631435630012974724727066636565212817212306914333590154504843194282726354426186011510137194252799604210453195825975438756251642990904234085574372472151278809337720184003959560537386996269298402326475701660815421009620665700561145050011352846502436944219402696842578881442630233157495746633341570559166809863123753078679011296973073594611487154182737734519021996720247305037320181429999293655210994465384498515197673882074444781803361761181888927459396671551184232521792707604167214196788329495305578273003737053775177338748084886488425985359664619840943183015184130703364766402286884805311270960291526822812404598452332283263585470984011919608671137130997344823029131580577649695676390136163277454825908702825114453981286127910236640884220650259565617550978382773927083163349368441809846433651943709965929744206746805362537893020310755035251107168868889640518117401576183501374152208106253030856426191212157241313047203558250401516218175479974409606239386058896260113763276478076487190404943062106756211744444018036163854183968175015944201374991434193332686196452008162057415290651699006114942734655103509484757966679120900211655960907942409721091110125138022373310199831453101236043194515021854891847031438940981844984972353102688062508989266619201529699004323742373201885825315861206735527441536625201744209735082866777688978676276322052852197818362618914038591264354440036386711585869843565959159747944005980803634756873985035727693836757600852452680633951139604149774208196667347963410621034706467910572421113985814363756609366013657357901317243911586865196780775154486733769965697415257516509275881443798262706075419981547855767691746897735330579108182970002834651760737703523323476575653664635956727934583483684484512470066779788143794519716943928475177117669330707538062062441559806773356072725064631345103481338389515925466861838851563781652650081481242182799197406119446121701555167077944020689786456208319315965588121350612981695683853317423053590826766139146913590697919740723107555715986137560353772474068825880823262322650478104494483576006478853833846724374687498865638689251851851770784541040666422083525225484419650409274089059589570011053002456201800506524738058441214170104735562361671739980349702887304071551059327016168279917488004271460019052238421737564016837103686386931060093849212724248275542733931577790386788711670375306009540655944692283722742278028834566126968288524126620292200693842099060560162969343840296903387175387236680462258216008165041646387045058762221381099007532015081984976822203167850528072210375393566864404957274906248693241325705640727143586306178336870018285982437782901650503122497590311280437716355342932630567373611735971395033834367649965932980401192073098842569520577633053796703077290719735481337377127983652911065128095555495875930519853313774129430719043325785881694093070862592157858892263485534580254422070170794209506141295627769158712820759755495326536595667583905487202066404494121974972877027123647132838749263658568127075785104051611340032573051835635295726054285278786604593232999537054523527013366712086292166896213322120475423449499878985162785296348597066503892915005896121807208374024700377512188731383110710668110252289771985379285056195922911779252675780415778703316898391925046597303260798126547791426143182215263154102217699851305073803534896885827834864815994591508689235605203576501881924619324956913164663818980377281993578501788573375235618431102487092311446514425492520089433665864860241250224780223280981030495598589056826854873339917492470193271869112169438508131488242981408866285377484047762864889142315332394816754791946069451557674302434054993955576328269265929413782305301710680424402064918520473707025336709626542901149744367428430228421686751698526035953255203479037942390606979443584096386273570135748775851335921582638596513088505974779720601225868023274768961007817269221847330235096301390374441528390759391594062057666464101369590649867457842458475938428683841526149851390108760643709837961981820884692382032091407677550709594166657542192642916639828603575750321318343715532118090139437992566501411937846470049070154532534003960520164610714617767419262649724726874967060096478460023538887862609226404085365891846335353288867689762253428079480575543402310843546880317567891713972271336199871997036920469025873369313656351696016318363941209043515552702130254533536890568224619888561671683045022592482158748982310856900980803253850450405769812704396759717528325846432203419791126225497815447493187689412386079153159598441318399252683183809852254854808703712005141606545136996799805007437646876447451774437299717686663280286483266595795660884406537829474919828193949350108439712933146236387940772428954888349108967547846974164932503036148818064803379081138560464432237246053145053784594929112929806264118234325673863033532355494634063163074195793793598347151390794961845025955987175000671782613864188315270837933908232593644397664457676966956351963310637191171066532090324291134915695733331293253207821907001117078022484448161986175255385302007228503624367782645084007326052422343908685889749044691597656271520719912436466913438761053927133257755338380400580242883160856781862732613698021878075041169269585673800602193315892241825196679891873339838336034762288061923720908744060702609519496812482717409568154599402096786482071890027403139182309817895380788416773581020968129312330593982973154547535155726904345402830806260272367562712026417179708936724946578053111810145740008956819624394526281006341712127697136850209452246933462465881709149831998986769775583164711580949527011183662235482481037848769556515703034830414080657292969590192280711516318539664696755683902216116615289240474867642064602851238051066517247039722698015867678168098699654050661677900401513432809784321374858217400579463222016254410397830613166432676920655747901486136709808840628909355286247412095966016438407201991153102505137310273548913820295248938058744098822286083675413886215481599725737255773470201732676062413148105423057618406728144455265018411021999286398752071316175765111879698353038581758980461877102114400637455346813819036030655417705937750198301448100713055252010836689798744622892306098242524477987756605224330802567156501310472601425653224664655817357989984335992313424051982253958973219016948480618341616705491310472758851263534941599172570743192277193081893961370493720963597432687353887961944186849488719729270615966014544506242293661651719793234093326451339943528330821416894560518978099890851223250376996110140132579558655920941244630640850134661287552867728319173790663814943321556264900869430892284184761185893248700534717476198339210968062846709690114846346581316615584985442447651568260783890993049701309936713924669476195679769855112886420827584880977990821141216097745296834326972549454924203690232811012914975117295515384301625345043899978380734422859752371491588865027933830109820338949742188152698645434180400239013145440330362828712818754014900763013970651952481761060525084901692657296245301895506508591738045391504109022623943411050384820372429283956624072344235323020832711807748578398548368626678154213488085465848721695761790018112029575414876979387088852312584108789281926845704273991479508491600392818653390960751579192995978305890774038483943929029853855409171267360086484764169413517667028498339802827324385612871116140023947821433390905413502754739143266649776663229610755983661488464818594766637951365672570565953875163116691946214019986133033426081084629030941242599623085974314040418500018104807792894961746971251210265452348164300455714481215184191793982100923683210869268505893053756535126888831245934576402533866326768725746135701822035892509475504246522736531382771412783606684050107018798956266147744055654662422039986609437243766177468911919200181100643988104565897306105921709254690172808372946106190498821366125602458791135885759378759987453007436961520101040042899287477329087206231572491712269263898010574185400674436957802328824417728057096623369583742292040993593660237799041136027278219506773615994480208242569411181021173925638619744649304047938367865985051727956694261247833178726862809789313092593958635826666419435680215050314617345498774368810067293658399994059668783241431144383911657603211115426045509551245095512720298659071459295603607862919471181304139098955287419903930537617424429413921639953814056791718060383895944303290393253480368870423595387502587969087357403056662650320378186726958517605561751340350056840151984998619196264615848795078807854739013055271447222770008248841881177457295366040988529585946704180595303613496154891894023353132608715483033309363863444788919414804062802862874640603510475032317453978394576717199495051481055251268906500202562795253708270017126236936502336930484389007114141774406562040177040050907761838941296437348788100649240982764473762507358663443437690571524810724574254882322881276039425996828178902127237098073309446581842076194864910152822877629829916010181401318583153514489821656871679225948117084550577342343042320937336704002243883221522883814547462414170780462968201671822396737792713031581463031701912292906705047071157070378300863204859187681344610354389929911928794279995335333522033853426950729527764011500629902921758675850511361294773265720697901855773736961123564850597329077961710867668603345178087577964760065610706872476326196726704883324174594940498771306675032720694471659149865813814466792634296277563725001708902743792834695676626065046733243332666452642822094226479846181255354423398691374667082489731478723362042751093124982595878469494668774466135036906672713965776262548159382860742140903938653422236429742359576665270855321277211113058187511478319034435905269888532160920626230371214774683698698810020664907814275238106710046124784401616084578417400252256363564617329058994990002867892624031083620450026920606613830079982802248137766637132293466265520783118804036107411039966270641196937756023778430827558589769442466560238553283561289824287137773933591347885104940498139287319018585963607550367675662651502445765277481590309740192455303309267673400831449385856885552530318405087740507424710450870372232994949772186556235519255852171603537717313196383969058562372432226490953164926978217849263184568285195383563860410159477847334595937306111200742721443037329787604252535659566858172256528595992984429287847455516587905895411672072191626032640816714107258917202859743112224692347393523187160904644034028107009443002442197913430401099871382577478477829660853331993469741783936891677233374991762135981125331644407230507484186749015135975261962613230349742180882727280256459820408078642029686449962355094989130597543904854820486478979408801342734683203981821887793710528154287215618615413173415054586934715474635891577707809832867304396267577006758095002810469435435778729501905418775168455021606033192284414731674404290093234326055681463705183234741675506981973108504405223042675414108389313911035011649124873018650856294253175155590624879795571753735927236498176679590040952582249655849894796455925605663149825779961869634933016712223313408950297643423361298970124281947149871039712930121864629183438378807213768081398418300944080741753029729295739484255028550842806145138367455825556328831565912218611996289145141982996420614414356731410161654819501734703903863492968317617006660958739437914035180636383686878077503315255866063948874840789805494979934119990990208564027421549255917205838676651082240685325814718480021386402664733896044758988208149772853826762637992413663710030729333705081730193379941317567607434951378493676073368110039953075071451468272086679739770219323003364623933045921553250741180006456359554386418255956581565901806860099528556106988047364224007414598233547715633028790916875962751144849413626009747210197487496947702043550891726060141833551251720251642541544073446071226113468229040669751360016298643226444838983449064014260939972149822789246570151530891881293780048148395779764859659052646943285094706617992580721439897121274725563700338658531963191342518948938949638570068759200304340463036926190482630672442365633221774110945028386929646855927612055940824797501035552720538513160602013325100593577397303094690415446379044493025070958822321408458256638091208755560001159194485055667316598048457943362367342235711947505989376102953557470223646246186370197877408759057949671939725168956507771817010813315051094356737349130274131416696543516899271967213563942702721177003448953836314253902847533792430943647768720031719845483140918261899936294556728042982514434464158111730090683711243289928515212967131220352460624662948870916287414612963808318947382273899544455866950501108469988511450272470178259020827440316950730325716760219144181746240303336808326948771631696874895592149995951027679773309168484777871412824445016241905709546104922193864799766402577779404497683237951551061633672183945266067112798520256888753196022005822390451583971207247254680566862564928545494918953667803527624642255489203254594055428689322324928341101539223380787276436682239066394710284300210616023113508492874746851510847291736388363114196222832379386566850245866771558916670676362628798835570154494997541177901545361809442093551173288713809454573497948108700550803301576977653385606518199702666334075033157331168040700997463006991734406778895942364671317217646005362926459853211788872502724424815301432238643253478167180060942360727281300997886174715036013210350047821622517942206189672755877752060214965705990820400654934672644274684413683341138223883373771514158653641042848904697713491881799398322873732904427037349348734191846750181374194622746763007743993994290852529594817856032028451635292490673275110483949151583423113533177977637913017106389234470055880113065855185658138808092077688039171278291559434518630767628013670973178163284662827120108028720295683915949158671963276138036450846140378785552427089571234212724816297358294668528994768348236093000338272909144370820355322178797794867624750594177728363774767679434785211922854949957904419648748472498484742425563743804174189429364420053057593856737034481306816993759853445607784566019707929394961573304814498224551361692089582971302176088590288274811930366249246663541642051802248588754685275930506422500829660341881436036444933781716507688179917675636691006680189338521497051456335374560366681226240853707128558119770381789510738634373181232910509560373690365093954729911695440235483826370673031165665543223628607593228915437275551155308269473607209167326782009644162669566698033404926563106208822692041954188196759236565743783958410738031333449071368074769275526017769394964459256608751227303751375348306268573782446091586289842884489508562340050454624513811465808820485714849192686399335157354223507717072024065182717526795410475287360640565248092414627563417391517599247165120028398153021956921683821756356388333317842618040247243442594884183785339223157243524909536527800661721697451004754898980672900245218989397609908695908970787693750324878791247369665133500633440908198132928251433691604979030405333998236963424621270442599250118589643074411202156650705600370666358918278556721219812749787016683550844226391959060634937573681554249291901004173567420899521099918324690256965150884123525908709285385192270237748078521509987207465138380796983231965492957528833062053777399997803000906359688889902486743405898879977657491173761076031146211425860779538283656617753675937440476026948210207510432539910609426319754604114534694428528442476495541061927240501645679537440052610724615490226700948336370065657553259553155682815482738544874165078036224132701806927941805318834553754845243736973670659227329864014899384515812912302786512745713629411318498472115211913157390097339567457189955712955890718491283092388496379550623450980840819757681682397853110385405708596008248976659300204738996985703118541960010154023602287139857740897657502776303428385368253771378981513941441678646567985008259503221360012948611612517607011309045093115837780655168608862882031381768470674164968613524155411560723498127936483323636055000206224180925617929440424565401438326630858074645386283860855059743938651175727209056173439305766649932361370003191053422261325176755577748322279661393453310486927776952713190336797230096271308566272738910104270480149125503598668493149873109609122632720417189553887036563760176451580789133062658318444459070348590565301279647535862989377241375376439165594739290871090567232256079109147639796990068671149272639111495723179948713419806878427865421419482065228485871245293187741502569474916674387804175370127272707383523078158830767204199491256110900627176049801674897155488703127139660935266144195068746814910889128154838079702565277437390589390994722772711474472143759157638229865255373759892034567928610270033580586550873078196245266654363030061707368324837407355057237078187913088228025677762804193966354420920508070103396176572268305385274305781738678221197377454761022107368687332180087456510475346456312102174293356945498084680484182602229640799558052571313206527153759324588454629346035757726352925581888768001043774055041496884198160341023262229543494968461857514017620775982632335674867156936969401659503622805232244478449525909171611383811335474047705011319546387037955548940551497193042756229555370940537869548382417219808281342146974846333158154929481613938943226497904538016445677962273123114320775013324517472813981635785537318703413607906833673696605482972445646217803481347210192928717744301236642245938180203450461300262041036724564740106532378252365682036113981897541105378102732451704728757450485124420672750612225128957222038366497843891007108232621380847416055552069243802656654600933954530950607468482515558110823537415699200147733661022460193663596409599056303168297675575301753954896569334049006105010617577711006876422830055865103884184543308655408734878638347354928152186752816323490434062988810373456047233561389553881141552380367490788633657718699626236983096184241985160523268928061287813424843169644684425064032534483244707860280311522451633951304875215272919724924193610155364584370285358848484575725269656174711320794825750607875800443060782026235803138502172005123802007437905816245831473995480715059696412965249799770018531014448065275883639453586595366326705005894956472328843405086632840241461792080438031760551784478980896411853125907333499317960488960089162826711011760603920422922677118429803963479185900633052653444771750668719559511371327192289821183235736257489495155843875702856641032903997684922528928185349671767593309617242917092079886660634334858593573793350290395109429111214083071130343967503358789988053742245869636776987882560911178914977215899694704731173469644637065596596960550853486184184650490905438270229043054502938001067463876777230867826838841875394107498945599561085936873224750818527514132923298309867179001273425720912677134598350662554918748172399373971565208984622781296002397051206639154400188405111388087874331994781340826477566102483911419571008982198023678309528699572173496686316674240957817095935643920168141358366590965475533477572775765649576044723706938523620115938598871145881161601239143068143442661407101389731575310535778720251152571087903711122904669227408691263029950913708826563123637330813789952531153759082495883132339219083325935931660447686914288310297755511775627480884674225361472751971230319768298999178475384162692183365002456844049279475788880670509117914376342467052178686183616525849360786696894128250136806866656122076534893975106267670458929607118161520617388237016339503584183762613411766196226411224410687323415438808230593877553600859331235662481809046767749553290443637892855426915507179866271992527798527583969267777172764080293622558758173375196297520425246225813080888822151026089023403764944171119297034086655572986811943182650171519689666311992241351629433219275586186103910401831390564812940107953029053519360320182322340741070280487583742363102327522394325647218867417429397329875504634624054617149008311435327618749641707202933145555379697067667825581057648353050907744822619705662950199870157247650367924700905079094419216123851932291010469298976301090514230935623307294857315729679245105372076306538965010582171113805169519808325456499211512310835414499029777528166169118135287909637783600959045278443416743656810787182409181677834533816112045942318366060386675895062923012199353533282479837829218761175808715850899263662758609334613659654731055327379663412189611366764313249041553830289709113516394706810082674520173190218328538151080622567784603119099039523184437269654533123383471415812569682266830882417713179500308970542712607525012389887687539377637135489598510762130763305209943968986634426508783047781714723229781789542430979817554750817094113136735130232378961793372914166333986893267177747375691273786408192306414063744229501260699913516606919910052499497510577470959503454651554020405935276020699223569077369446968174203010103478808610117697043809460892202145117607672796510326767962243918451181778238843961303042638343745686019108351446357379742122881852629716327497724011448701348765078254337109483493450021364130784759685453651041041390730681767257481412939287186045721051143717975045663626787252664725507620018781216980820590301839521794951645269597642318422300952646134833062761900489347278718626616663467201300644648674275741466576139049390144395433048419353263235627041426890472539453531113292046287102530893955138537617390200468656653306848218778218470263001562363266221057482292514382910244773613075775871892658500543117208311689345362507783121447993144639958811626157254735592281498765875337793384273367263018770962835956419693648016560326747359501457486301330768794806923051169364004134684972836362111289361931973988107458362020040231722290754372060075657046546418084900830281275752033226514097013773022558954883496958706875838624744012815077479859527341556183513235903179934106145137106684241223528919341000698509795383433809629210506585768951227805458361236976536193150338833096088945910014593980175792085262047003527926934169824458007887733707140678081336166753183079960770975679670657636987847091243747295349121032959101347828762819383913467991017740692139105557246955812060479889236515826975807384593086964952309649772020590170812686347721196808733299248513742242031215345225445835308862869829255611979175788665760528699421304920200223379938792538180330999461975866483782320668721475868493700161616087545223782921744285327594852600594309073134417925801130900557261507911700055466368264865854710013071368100801790501247719285122213864145434989752741216880572320417064985806564620666707201273754684093944529863756255677133578033287203654794388700733213027764271744794077513686629346057721635637099508964508534124040751675929083666968627914075596135298378280512303684690248414310793208464991069807718292950358999217141836751241653414111743389775338909812809716401574819975670942927293383446972347584190118462335217161635175182530132685646498134493285682256766654166136729986726369660375259110060963863980077809732999005033092592610707240476725706858315917224745640571865283070062833966764647394289814712809600804525466375322090420676605174394419625216410286701486017593326696478975404729205605828690069010075302324341967878274736000162798243338536291464470718383634696616695028005743087900668027696667229957713678828313248500005880930174059300484170133214560830005087639723232554885353877642807905311414354530193212963949278393729348319372222419326950879833908453225193464860265493478651244830381949159477779087872352541711220292232313991843343267162258061574132755338371227563817993971768325655868873280921823978954545893729865890247155554710470528848338828290252270631946332308855971299628809303935220665804428372177318430970561860692262077833535926468446221219734191313680111898063416534514126865728213381034583766052038868223716768879219271180841827561391185227721812210342344659374576663248043055061908853487433918322935910539126799475323683362707655497622534616110679842028040169472654077935020867342105552634638097669047340408303411604971083589052387024492843326898210094153698781382684394524654560049074127536519174826478573917827920857280100847627826208817272810240650448207219153428470390218473097719040190671010673072379160931579526893517726041256194226065505035306298000266885766271843667791423805733344843233142406281979919305741210980289591515360546910685799717645833816586455232157041759569903505389667102632292553251757375909345506525227384700281511693365960126821597232516798772079901843967459287478809146344292293272545089252808641389219335144294433799968974254481955471932387915181664646554430784314683164563817306884195624613389229701983783842710650616203687650544595933722205848845372522995718541502529627936027292323782302634737924405420780131981310361963311287021572641290208276581480901639336292324444849973926889717203993441079467947842745520083504031893347502554597560414120070393531858432659095039139908526557424285929382163034022007994384360217586543586704503466672972806198984604843411299731362745699611653806439366960978457565430580188360083645215678311861265287171177850554459868272410896875267286962033579562564706762798563756089095583825727422155270746674440519939026562362484064563790208032553170353171280207207184235814441880541372873439888905529981304048916216920235371230671083168623081581449188793701278662207165767933750741501804218007627472490792008917946403598962164464583059269377514944489829817955193750366260047240503977475244315979280575534596487893571076367400503958956624745967211984009063868130921961755162093639474921262214742291954997781203104092561345693723392043804613453440094081000525397970328910592608095068010864434612729110764304610052288861461865490907884324102548083154802154105024563442390765516013746091756505903132129664519235942386595916356148441042728646558833503780920763356377344134609200128092475682230841342680141601312071735049186070724727229510372111976762021687594624931785036489316227503534158974190611701652630440748132651084254199181951790355535264335627391263618708747432337295375772493000743842037829788086129106493169748541413197489940786851555575268403104741788899292879420336119403014041008939563509406621890927376644120794455169092326553452514712811176226068412989970310713825292522753805982443506798864497177737849446515841684539437774189703915969820676592682899659468648855049522321768617910676905235891284947445052711443757799762571370577552415819701988809872472740598851110809692237351824852518241777829450474739343337108527712108020314126595264476641710445823718050716235901846143245826210423307100295198108289103048099994425646485360178677550314859184223970068319362579189974110433715518271902824240949485584625336495291795900426261197859030551513675166811899929544225624544948508990493983919604374212468536421506020441517951504194024221457024077851977533064908806065263450703666693447517335766501619642680774289899916952521740855123218787539935716028081053479814311064486085422948159064151796653679072072280752512777864494116697201688586540122632777001756122267905654104872573332017334169341574795899817430031416591245939098255101783092533528593590192274835428649693767060970714414573762439127210657804717063352517933862591917795662798318267397522878674467214853418964510545653555199847986997455542557050192444832814595212807246129331808114471476259545636441303442826667442310089870826366282441534451902689261720170696871616458622311261382380473588746620070976350478029086147846306900030229114949391725807515420402743052106750313138798047127885961774327619329036704282194705008374229647592904988109806573595231705719431631223765573265159621102787987892774449103095489937956797843468959614193648753968328987792036969632494432603574717855592675141597911797874253118273337343036408763519384016623481428696167088823297536680404366143314921841154431068193677811278382707509632382896124161494243580540221846214562337956278596411735979796811624064849724266734889430713075151914211660286212148890968603651896031757845378486229469792076052359854343198044464301356959874629792947497373213345670391342840004892811798954442945587129743272842001029460072363228305524088832513878564175709411063554766840866776372731072516957292345942351697638169230021431999058197446063652841836786783197148561760059776409222555090104423495511002060133876559789456217408499236682679338665542874980474101251956283228652686358855730868296956370581564697304165082220978972636440933586971697105340024458615453260170596440130757967791054661316039361830958826859214034304586698462724319558841654786422442080787502637359093486988105319939747095037974055564346520650904911464011631109809658127521599892310199674174316155764439504073283894227286912044126117416630093440560170650431874046260514461353158829923763495588018248229720241449333923231573975954134219054363588343298445570311975841123525759530642128769499586266906586008423155177195883059747842155937126940244967597430148847214556529925413778670824983599176430827277181824213817293429697695714665102561925571888145658072503828538773100466390330109174400967517268807391453421925535639019072587788634370166340837280792561593976309231264882088006028057001772228500961464054574126761385829046241473541122937004219121081787701675580476433902683003230236219137996684003398757718976625814801125864571466636128861974003580611190792616936778679338429390807514687902109563344174772642048134920774946673674099034504208987947363667631615727299969836983305761067774093309779700790140286372146601868568804250102525541768563782533500406448853556774063359616615063260750753072601234196374168994988845324597113842420241379837189072028031821861993922323776247024536761342456252351178197100694425682656895823136989296986429022184303501640457692692084260321606556105248491383513021526123707882895619192553810949283338415999549348653934163174144711151686697319801490491399447145689286682375762097676408915088936651966184337600685765225000478533637186453038860447888985791178943675751400574536476879669775183477572345614518262975357409987027672175963058091509757454039914539369995826069706231444938276524676634673591749343249993475065616729761339973520591570226634841794643177313187433266984867843930140250830249366769926547133786766234220946594402500018512756681436563175860522117791735696033935772052155053352418734894176050792940618652970425222209641767683839027311726755905378513948677463500440420959427637731534904018484369083361490760234990875358479413465202930254378543035405868703148936711384783346705030853425548828948287166002570629992209628113629694839445036823247083990954973110752480214213416639709015776269500628692102692668649342410428846443298115624407134944851904626403971430752489507216429489903153663031579235138471748481538771646121893618578828695593678432592091935573419895407923776186090432215781190247794000922211950662831322904085712812549949238876662395478405197679419568348869915896964124060621343906246355743003359513591836742113295337303108861630045527941151879992176137618951874507019989550821348444242594946651522895531765231466945617817722465158133966248810363973597344478379028517717707463564393685122410110420489039854783594591571129841792103107419725541736418994678527477783741019766600618937780848428447652557653373355928064866221927296187934510265380245119308024295330865105022353885836694046664953274762852475426624756136933602212346647408637097616064994400328261762423788788590617818076166255555717551389166134891089393567846124309237800823570338741420874272529113613090516280986408797518503677421400133322541281066589432982860556246217295356404700971786631594598144423824572830181077817265756766594487064248935896392212244311674441942561626876635367457989975603956200983468326863878380680215899105643933557628541231226459041905683965309534254691720628648934163641507816262310064642253876959691895712211386223518961760384044204446496520454795403722257915754236738763902886003510181467805674569027557169925513154253906628945657137732683261963467079098959811973177097074899624718978651417508191911809151787183844992346700811344371569594481131480852056969383405213184190019658948568779458628719851084139842763398123759083488209324365703902583610225728536739332529780480426032406798824768208960973940414073278191843344075296392628113914975949711682378453031649890003542325587029611978004711257319552863186912870715808922504689763077297427957386820393063946560434856058471775626678669713007869823773714065557310069273643638042219145208491189208196119063255876392571347820568253444159466337426678148955472498901250499628158287980575285725783148756047834763560417058983809381155159628481446107352284473039519717783078033334309374422682427427882054609963134816028851320560447081112130148677768540667859520120469893339739913080308951298087245040136058741320714218349329011105631088402198735710671718931488306913035662522770339735238545328244705412447040144488628203718978576638605652972446417827077159409521218137148494641866088334725550618365342361796273033575417379692428495349521700428207651381973595040304891743237898542187507662113202945479375695400708121289707964533858558896740022457113117084420303142277487442457109700837255347951225949976573149083994716407377669807750483139832482843518428855038881280202042244810380522576153682565361064839566195435785698978389253274193944654871289068731035445149174055654398184321551393593282525105953227494426440535287615280893697537648938729977085548282817626384229125902166378341176343934436831129004408987694917299208727394819693778652005526909038295609906251215312145095831155897871113830105972737410869652331614999258058707081711981733197114063257541834885985832433715563557872831334797548231151573147983626544827317791085602737353304035429255876225908329903203396406240016108536325347472412188987403620680865747377030181787045285594189460394194201668259853244746781335071894080803460487228796277459817316896557892475493675611729097964370653987884548536669146105888558623748500423128890327288707074236551324805064384346850058972976355606564172859098448444619214189891714795019502422512989340556995284954940810862124212099271214453176103172567404662149719450818159078906167177294576953433285929441296922002186590312329191023079814675416628289860930436335061984593321385940398511992063398661501395399538632519631065490787220681968727904778657590485295631319775320107757162949418782786779975904773520176715595190852814931343463756834547163912043036495057244544384005539651248913941382023855160605201915958366969722944872409519609597234759142968068984692904622056021023436336071905755686232939864440271702071102156006068567849140826758779508548059659290772460881379895220172826586045958313205485774157637034524303953202899452095166437442502800533979269054337304801522157870457059495339498177841956725103684044952385165979642553442814808124492117478658729558352615641699710507931224771813771704035274116909396982708588169278187080202378067704614347893945023362354018082962188266433356567491662948554534545828564904845364165717641543987369783377496314919717507186760597962585008607173943385635145832070108880982032087028189999978433137958196434089900772174308313137930237810046437173727146521755339688627230535457659679217677051070127632314974922271315795912643178984581107364353354865091652920778858537044452474462220628474606247805488801008387617321346051608266596674642328292801536826219281116386624065293272412198041503292487676495519109456455432843928413740973471961142823662432894655621034533975171022449597484972985543225357874958740375880547620365582053089548401304632427361189504274208128855456732171170615281793774575149468479333160192026535561508522770794034410960448891707483952012743316663218943541341189832403711322726929389475833875801659475120143589546026827428575129985823436997130001543201726740123067358303459133192214907238825169656272905190422474306563295663269707095444741025262849849732871667147808003726352626500614449511268638118208993916014948290108437467962651632417647353758760104107121115829127109279197043655512047500440860801812575349438779961048902067946179162377635183731134561291677038512945194504496042669939515649042182427582235169553010053306179901167721394936081257643484149102164543509527850448206880214835752662610160950166092552173902148776481464168207775290386535768753487441392423830504034050677809780134127203890293664569308128143891323879135170605360032209864262727614387130826368068561313807878223293971394973172277350892441465226451969236775550636963512996383443757840914906696201756584186312887351857867288672587691583250099509757306341808900354715706809137193498496181401832488786290560697380844515751225994472754458244344728114497784752124482002992143884272050742060447721712861510416737718386114099056540377335973947901860586077423274108735688613817299411654859293025477597524117068271749329892856376459321256862304943325364082940087386769516864932123451302283628032767954259084504645527986031137115178364045292828580389989225862112485011550464647593525073029010722847690349428675400089900194908391447304769570653532484653569189497569063821032105431522095880614318091501108928497061741564175538251412396261929709907504611453025668708448601934703931476989476589178469428318439763044879618430446378632322530837831317359322748240231802363862498730698228628279100366739981464079002785027739900182720679448724076217470976178295747052613104106829513061457997322380509769760938224247531450868215960148805539613658652156810022688965176144077710010265978055211142825018294239710686205081494954331817549357391770973121442120232632934350647455700437784459284088919142004008015466222267737046805773910926120228116144236227001453323119798389941583661101963714681895872220108933601903902798552190262044999211859506884177241435298718258690166082850568913909428708704349422397461554647525909070846757674392786751704791026675168698257046066565839202864703574534088714064713907992249212390388304468143715450287867093660838272189216072307106044274464162636028582687780138305739380541289547417214804414265204047132497992647897022921666789126161253308039564826803545484975664097309422942288160061071341350882137598745838436617081341477788010490229228652475741149409757431913923773875929260265557447775431104308673492634217398444631435932052021411995003717592790591250360191513117252281022369490225875958469630146024857995495362560312068282170848777076296156089527507388804511037714046447559019351806029228154176623503925050652200140666580439378146444693017590907115865871615741532063581583496660723643194724004558292425733765867685268812200526592634243187169601370161700248128609553313438509141724483649101240947137310942497895006095341115524433231042077706458622643613936279823919908018934996352991556789425027567796443445729538299344036242728383659539017675820750888945951582160276585574491412981630679890143101452293408616418924988162213538823343047499635639757107974231021719859137152830290470255465570495194077772522319686774427697054555542909303161675017206346558358720106755848029125613970951586930506116666475811123257884699399046586259502998669165825642707242485201754423700625970648103581948515467165683657357622494711561034930317798433568194893519189582042805358556347142102644626191889179322092529671713429512486248421757338425383993959380231906944711931697005396183032940229969019947757599223913821259995713796003998012811700315329225045621196019774268932673750441681790910464819985515137314780803396576744880907047425895740975426583294742800611689981860695255272064048797700268563911009370780946352079809409711468425373926099001595457828151754007234164546518715997471946623495970510952804540220042836985324026855639746143550845572612623348994826419587891007542577336847937702511198920328905233904219683182417411284621774619329339350953235560002355481815783697359074671722036247662603344480679887646594604217282652566577164004822286320288560794698205293803911908656055223415550375113193103387068914597958695138401391411468932883293533670292152707010701165979924413987779514624137113589749103044226023902877022043259451123696341878662623535868245430532774946957727885063676233837708084762207364572854568005244009371863755954071431906676871468631507951856053262570878708821026513767523226140210699802154244910610293488459437658850570831151592263412903280511993519375198810635737986408135282322641493914632255423443663282255881007837370489546730599575226321223506973157540657447921035965194826921498160204606904447259171000419556821061749348687672809275423442878536139544574800779759385300841253665058831620217446304622223823893286029869825758869232336786379616468860690469616999294383330543068111238086034446157081795002736849739434383631060338500090061431554407160759783561380750482822549564966662085209194612452522437067985802397388422152971436681031678701547062819016946105824950522407234700112671414869434812906291986936268958513246290781050637150669926103846940200869759780683311516417845852619334787105272636838538581414049646494653907652076127455698585269306773572658414807660541217385105229672473960036777211528749609332988572249336673291986595395410780438231773337200293762554239826678645382152591708837859086473467583891082781558854441777063732461603750817143703470517641074283473124241482076068744947118249784207699332809715026138409447877179402888826373240856029696424346339538694442414238150811151191088453597731094255721557457336231417102048120409513459285569200328264495495866574610928625325416067988110585296788680638057476802326726808149589495391752512312222586734865869532105155151275060069002241153148812415621810706397683766336872149295626636277261059484879917344087899446049401157923737518921472495767748551972946295333785300021772442258743496488773590254046955875334070006980084436211282435936358312546603878899631093997664526018803277349989909203835501707159867852790164845055578746973153340414938372406635272735698791369227630974869841918251387932610432619131266836236144882735795921461229292534408132389487017910140327274482078098014363608365732741972056825601293911617542871020414650554331043826753029663874572660391164637825068725186917002708269283334819167459258683787122724388147516554459436250254646026493815628161650675033985984733870851437148405002608474669989356694890309378491177944067719035665031175150187827178872505991257483993828833553132845390800817682112863968223472857041453465478600032528944299228671754159172549134470595167554926857774213810832864584760934008616602674641359842864110170157373432031437940558875818874530109271625145185441554835707248706369960229782353614313058366956431950484520327680995421404377226903844370157257550391930754870307536699422563798978954920850316700106315744242330029628065737404983821611088620728042515139905414525010877055011116286114647468635965181576511764903835778347570688664365175181172375170731084330452192563541051758049433144869510952021365871135451240905139438476428601048974925991957119108198608713597938371717941121407186788116735982145867029937663571842120078941831924045174047356054239610094397802280194252029145786264076490062397392518552907756074686701787833715487444798009914620671239332472402093577550150348346982569488044243885928035788389087535158264251876782076845785492653106416486518256339901424775424270185187572529698664531978150574240670924157646112756224451155005814133123875351879504280500093265003684088899371536453663715948227935392955534879266607197263503743170766555474951175155428258358772805767129447796784919270917600903092211430715229874007412372986654300976637941306829339757393801742566213832288885683091785534837974199331979808642688051839197203321849733098420237233930097137663281134321929023702908557568307245804288902135144106342110998242575579348751636185305204312101070607563504276128083510489037670635910299635395395466778644624134764807425095060027167866051085154413242502242850262185068915873850614729792870327005918176574153665785175503226622540386711364069060456391156616433231655000560324515513537774143789925090062917394900795851789747865247354978345873006782009995339513515525227225558135264167080989243124964361879090094976950561304710939479656334010840317661269914823228856703602019768757651118031730898491887384702505668292876560778537490435120229674022732059976657487220256202842848170400347682461768015281955323265023582713277308898170304314858320818535179554920427601315038333017744340876680727724129417653944665578677913018286986670379144749741537261300555846218096244504980590456395886775208998115984477512645118464638567093558168681877825978164128191223007792790993942318030334993025295851554268949267656359245069730902074307146060934243514116303156186953113770709302365112990495006152971264813310572375837148730016985346546231656601999015007625693208864151940818480323257413747110663312331188761837645687218716987078326146789197213351812839397540406026660097972729380064326380476837191053810522004442753540872753231532836478764198837891700810505435520358337458985209081978551251584864625352781779385376920908405179091704562877646612982706732261708521236612524295881389996275028379315435567464700595498904356661915854950131454805366843506536845850229135392984202803206956162952123578134690279014630655721545885664532342169884027319539549728597243152251477704355705686558950099978824732108227611833430577910927566948824184905058797871006623316617208370204384682644937056493693946894602705567958752235278118026699182004378395825554765528425297323097684582927818358890651227354462942387222985917092347104867376969650486000373082651607729192862002525265831497476848466461035646550082115303001926234404332490354842986945909017645886167435416440546862203667972222747884339481348143074515618266443560059759948343784187009995182455893321225521513937022096271260426123200865026262993610255497744406910137913421288595822429112771603962248187621488643818228390836992648094038500150290760370298382212603107683689627817663806742535699182350054599257754619616929941411446107534251406648212470249504394520377414599031832190965696059127967673925333983106727053037311013230315750200948676274086380635916567193745490976294927698650497276018301529259519465623246239613478678569918114381958426201425872575346008688389013787266624431507994328782351369396376906466108531235099324128722606638654405050625801184387733494487532631539226747522439453330886557571421546426999731472155012104754329091703376578505219582320579207063662018088231280260432321096156428237389521172752809745012714741048549157317968233566774043775136323041792914223411126637526575193812005411909280188226710686992243050534984735795399395258279860361293499129523565046996241698205169118691967206093039852352752718116642099886325232245520967110317792791720225118665955707770842636158605554694474172141574008137655267779615507339990521792896761067147668911029747332160666471793902678878425256702028214910198499942662232150108723441909963758172601123616370816388322782794659814189360916156734136731673794032334834639197139962357377212446388049634910823544207981035341912392310820480191147866967468957233463443802849697706586978154454853604117135783646124813645378407151556525945006570522451084327033929115949676932209243601380786783682500488025381060952368840508943127278539038657967052311715477182954459598947134396202513269149013160234659353498720755196714180181223225447044097546102414441490571643310718841396014392543161614875712239269360603019252510776933180883691458756191442414540794432628550476204620341674263096349798511510642741039161436196681526751411694001465742614500281802328406539393266535526354712560660065624091577396212294526318262537565031641924010695990656248079955099934007723158913781214028009016846785318593124064867178313729642724378545180496766902868827216301354727776577895815890257903486898006174445352561628813254602870300260478543641634158818901670664711484990899050303735700691332737842326502561614840668070264751133838877395664859394574543920944778993797481427526502567626279438846068227168364114832393120058445498058705208081740276397767776110549211509634999942749498826026403547824725010493240401911575890801831189513417792164922015656034576984093304422784509649908244782709402756410114952351908896507901301727110631843036282621354570458656090322342796676827842814387275683679162836406798159200670609265106615829324933229273187411933063690581377817664514975847228621118409369257280771671855353832163575826070034977296026277129045874870065331593299935537228218143910910811862234021374701608362131402789235819134045219681482451792125650649376436047329908418578180493883933952361256278197993928289537056168777334438120482386717287775919743540001247565700033257336594250669130250337937735364005632330960357152076994016384723480126602387199559352041639283359276282298881536660184542174095279862124697514548802111560642118941608107146188417255730490285268197498809473268754748126186110817096909530098358168410136522398623947165769179787794473546359476292891919022147522115225114759044003145972990433222591105274992195019791865369651475275274949211716312256022088857838270561508681820878888320198161244128554775475193708521053205033839126187136111287614212394252004826193116769074720836429208396056979799679997768860581791722200860402562688874280791435631803340008404870655975155543432706959408092810231954107084898582304847435203284211361769092447575076029497930392840567485500576371336680722834628610024376631931123747919944298221191286432454815952119140862502962672239345161165449571417744743887056773448704191864347951834593766359577088039852402969514729333059244912125462977361928015210826776459328540255435016224322192761861103977046387460723638174061944429455017639819896667050638776411641511659460632863290711585193827171530574526673515998476157947765594860759085153084439813428473191302005638488585583457482806232577538203227474252789240041716498283202451174878623995122400376245803879430654488789218784173155409347800050624211645115315879720478968520637047018900323307651499455937168459787738791277757413805485469461081301368612904647695164646288269679593729846721860678288570923690181375473354646236218777277064387434249890422216610305348721228646642665338473864029083745930181348068084902806060031392469292213495815102483150419903042854639195815357122052580760718541066704319084471677260420175096758550129994678847297022449393256099811841341456398450280132835991280360269872863218933589587273938063307984005876118836764255047719546727494448428939670349987801040898029719970824221582731356984010254080311734710302521847420733967827706676266141827385097964445245974220599073899197958938879019999021497301010864368833237714746702970426057725985738987592605629516241939502770575839382047713395811116321141692198407666412668901462514776839202060570082227026977818032309044697634105964775656600410159898704546306849160261813719006921122946274926625720318258418735690041833763711974089244541854399460690824550418209910551548747585887613880157136860712842398300562342255755649374723831691047539362197068253060528742118660724580960688392375395670070641421804740211775677748855576053445705917635941260598945724863439341774854351383529145668604045870515490781269086022785184460139286350010830746645377097038437481764900777917305501388551835416940166452230636317644433261151815145027729937048310635209950722877310849151058370623582869868137451738523126844741477607389658076457504370674887675383727396731022386431988095189691495779333251512820747036873682429519783421870553014620175613345717096029464395571480785825616245220454136722247926009097542468733144800995833297365697821090159912314483891974741257671847158169265617345317583827436251749514937731150499476251294979118927109359769420741640682333042923905785775851688615264743686120172031288626910602898617848546368442174424792444945428662924373848739850377390568524490257891694821701981570260073071553446705947511945223624449455665641284624879484348140133456893924708596613772889138082504016528758104574528030609305754801050316967380694961544348385390127347750058416451888726901077970538469040749615753003527848517339338146031811082320327813379908052009873112470207305028312806859178960812761284441732053014242584948229490625253137540702488476434161257668440994687510067557214595525663203441944327498343739255604125011519142446656801835527960923905555521106422368529747099696724135179058740750277309553300018130731767130216392094285289638759015681423437855098782908474700614241954133434119291096100721295179639681209413694074156033800336141308424898964724755556401702787401348055843371223019435018484284285951099037366455030307551114048523170862351391468353592228640024407243346607582988950206092335106219879478491226710657837659580121058497941435019884473118991331125980841482106462101884194496472101653842692922615906791279344902328485396985401366291515492226461500599929207802808169565200814249046009063897474179752583707957625658565438405788005693577418419814902629777079615087450479662347174769365356108055113616680245760045408262960611652386712373472674995993871924374370038959142383064133312174172130796829029457074470048699364267822483797709083356126076897811405039560698606242333501702503715009553393966876956255073407253357525337690368384193983146095600155520736874756069472880293759033452507906032069654230652293749593020627658744955451604289691729015332944594359925205205133512521426039524159357839583813564308303065490423096021173045200169176616693134386132000951215802242409648700854152262385826057658286279032179884806240627816247719155812167949842613397819676276545005634109386952904191631316541014845964743730856834028921080073701102961776335525008593299193655179971790574147961452666605833059372144375932979620364526793969343423577433772347921587318502708153339244753599253177035216430949872953668237704646520716654384043197372895697562203036752127083184451628310063387085617857732891936450100690823951980895099738385454116001809430529951292428574513933292965197462300405673289537975054034608814144005542501354775425912691566112694494714880854423915061918236730206081756662670013843411113799832225885517462745203197110960139529652176549220687999143448397292330332305559129384028530067778615237769782122841025570208291515046078843559849692606734115345862197980643576570557883974324417878531191921355608368296087148683030006837957910944569994875596278050346951921172339898952429888377865636957354086081279052299557152344423158034107618682732477813467899761357934472973633870901475736101623776315189663467243999889122071192613093368565168734952923208434484357190562604622983447494195784908333033626217493858972341016997122618478394252324881866712589040059955786177686838020308755911888465051319778171313783840048248506271126780963899108440011371951974453084329825047333040779398130170435156116676450984759278887632230742062738040403187437050850241557029891002947311203268579496732116697040182135064247686946662366658062251755055011220366302265128471237427350146059382064229006908654445426806021801938869196405037199277087106287515472659708047203131103809082358870768421965471369216667739853764049939718390082263266374560247270633723138632368339190749763466956079714443499372700288151759584189989806086815645782019307940372294963442798647490591678164611345018084141668058258301317061049668875866362855172050288433833772674939542709061999958702487402036042710522892612825049238056735260063046547134629293254005149263800366204610819786392566259914659340821894984292528316429022735072696457861763806650431213301008805770376750197355348300335043521568682832277665389458374223701954825590571869355720491857992396848619287773289672822959663500297144043364436563700871806273946629545911089132392864599959252005640023189469196498884461476019309676590894293416893779245912897125367377249942462769229933010984255418680836923365839045893751027980133018286101817493246230315525022911223382033248260514442163678885658718730707950037289072559178679679651013764052753528326947822623968390634272598590207425873176725709847612631655058830675213513805879187042202294178945659631043343172206531058139484518898555701064495590342874988578111874646330184678544693501198382705217179187160456212902458257647585443546744953013821544026060043640435359567829658499276058559310936312299530633715604107920429516076133378274027616632133001905677427725930734230360860175286279649396171789004068375523829012773126118848155767641351248748097587631421326839232387312827044967752825721371885611593606052500428759110550101282509107766495581686076693633409389887331588249798392417870082008041855676299727830827647377857598156859969342801410167310359690073667608376796217098671511672200112262381602652001340609661049213958232895986638368528580986997490331875848107768079726340529394450625098326778339190557929945931453163785387189958948340138264183510114488154416146082886709506600211535886365997634158361835126578197381730154160425326935003226094857714890836313691838725107623651968273104696093361821823290023043827916590497249174561121057924500945836026612729716945189318854717580667724248637126322365535318831288485927690982184795587244837712471564125461776871947260129005530503282072266259603795011551364585478661487891032389266841023850427926182955955354864007276440401373835165416429474555511451960236394437494081838198225116755279009184340107327644221776568690275423958896456700164710263901150464619570866750635100339745274782000182146327303658561962529749760014087286020096540702637407520983078150114613088012356379114059091232559741681531945779721959415644003537167539477316519671214509685597704295709542701857250669740627997344859154058189015124157617753589560456679001142668493570419104285041758615792176549962346798248576135898672690492281121870697691490533186529762830944145329119149715193419419449654226787749046023750240079366622865113098891495115750229928198311927004252188404449979524669703074681287877657004041154105095902982568896437819739499224572399679763659247248273315882618348242536968118828401640759077614153279232422476666352914156586603566246593862938318802293346753241513388714477958536657227566713993972461609452195021695298104437590146967219906516607696332838178760049637407473298729809086541267621971778937608998779362180049007286120927018689152990864440139731070788616844030953630127585539917514723216203107676195328543669851126760707734511115721719254880369781075045923315124773905733589095716112819924162474351969165848249119250226790720767126705070191830319006342861715443601613360008477076055349345178523885492975604878475610988614458350627590169891574858120134895834232135382338576298060475106045830719816999112201420854257134297063786430648819418580161340781347414055930858786889258228369898948655487289181974384617427737956260936959705427718139462935353415788320105864983352129051599156969381400407109388667706145551727281804027312177947812804261544033819325411041684122109334320735304405242667417560980197107991060228843503421048242306450588647047082647487204703492675503487025847584053893404345799651003052103271348564338948048462820126550831546960612142706256251456280220060187936993642344516368242550775723956128980373806000830461001226456272336543968076647610662898552905730060365263726351602372268715137811600417379953839570895552115996601300306521124847959624976967115458689586152360997387533512731104428212796354468138025795801295161976649776132329160442621163851520766336412821739366812233659822612077542267688651531526219096361037148780410906521281017084874966708572948849863289595464904218830619998427386772743820637999622361576838440426924616843737879536710956631222172865419774352810091553667313271152758611646210972096917205834303457061129169222395312496017120390219274349991976176118423971293080268795045048908435560985777844110582747212785918607372032968907885587582122356865423764278682059892631867558022230736904207486583195633349158981852929945814950597824274244069562461233111238766458923210254410101944683742880872791730400449360927949411666362754273997591090573198160262443123178332037969744333627470408236986855274092162188382648590617786877350439977253992969708276345967457941395817022873260104846131116265833781763581020288922142979915387587479652911965418325379532431991699348606431909470652134067616939508183976955233473238444005921390070954911396381424466875112310254993855552894327197576873815905715940792506866250398718995011871420007605846173722728118107061603074903387888441808921119449244069675776431700374790797816224541838923358020517317280892918883862591421808069214231345862883244585830136148121544559223801337930141807422584977862843645423200508764642459008085022343565941858395698234027454470807027715461684540766574713771950698556253418549184629906918312218190649043800402479764622262097085384908509173497126500376224582804516681610367038843375181893566388153209307911721909927404929393710190620741019713203799914847230015832146880511448479750244984943489385527680158652826319973594267590702359677311984692195328250715894573038718346505319313776963806265649646510073736374505354828575192530957459585383442880368340077245491040657319791684870369096897949593357798939060539544481511288915603275109623763533867351470064308893180071969263216548427246139782847475900758447825976015608246147721480818493992525774270850740412361483325284283732040197981952011842752613650709280107920480547889938452164994158055452328916202136367022462832879076369630426052960502519457252818075646248589831270106580220171370801047241190339617394590869853925823938220071723840494596983582879936531678478834614016239008851273244738124469104219179317465013142917530016012057568142198085139394262575263483435912687752602624120627253310784209730002243969508833913158271872976253939124590311824103003167554569724707174329762727591796893639936750514925902906908081469198567390518877339535773810799714155423040729540183544130039252242253848282590357459050245579160201253123916381478935102758982953230728917727137603261451701124179549480920145825504372620792714280915858639517380015041184907565735811474111017785579555381172504093304493929688103755206388589727036876208474002570430346241252839915871616874369692426782550915631645595506455941807259610694991522806230753119141759714684714585207300009634158565455691824296681774436369900672879487983121524457885591412746505985043735254185953211024187311338456308855652171098031596920541513959485856650201068403260018091248453069067855602245242097936682039886297452314826345100511044303836207613958836893107662027865360101405854895842749581643418391117236397015971451400777121416547938339152378665561393167964821358378659055531349590990266828741407107911588068366573331556799801147308289345664315946008934822997813825672359190478302688402383759578603407041868503259259282578961442264940243374533074431185211743317041513890940328348423604623136672657522449915450097215893674485649109267278165249621751850897846670670123133222923947267002629830960209952757892205251443142994044758321833359720087578240426505739189759700428044865335428379790577033372812805932953549662285451625532775680473947357602136326690957547139722032734969674132208382208711227673791247737712780889715609562694734537760909584708926105874828960847558786902193297210257371923400990984807408476714425473403867972867206632876166183541609464498335031805754480662791520684774185723539986661387269615408422064127762802640318673298190702389988337709864983310530990754947573139947394155289335890918285653766903381716767511389671617718764464815668132354520400039723679345112099668350145516964502806232737405407730049149998147012173361753103985863485593446453473897938632897923630260008498047388774834868301471315734103542211433658210310950949702464408724656925013479778753099027013411119035141576112198584403196015265883990583166468814184075723942394675732590449798036677364589659499152915959002022346707831883584358217864074658105367881834953461553061038216240571450465928341629034781769545917540736156475392188609679648333074111185063511305570879980654172718634076373352623828883688755067544012445249775596054313597859510966307466553295397767534577352930436132979368663296150026378912062083540097774482272447149663815808485062367028000451300192664797582701500393951784366716340806938815847876137007638054017049434713233847352229368217157367543974138409504206437690831338557066261954314125189976322364684908008675913294048682821415614044136313951937669104567942310193064108541045583433917676187464362244405610624687895089891351917166871501936094879071947185447653147131849131018091563425634887738764260369988021022632773781808054131338761680137662141579994558826316844343783207407608778056057575440668889866823361418033349229898774364726914175919482280096413672640142963873072004576807629962801628340927898942736259121089727688120032675864482675584779137437635151206384452694330459403834619947076763383269270493867859496010229767753286768192045181599120157741263716166755296680386631969655202206332307177440537245467991022351032822122686256093489284400702002411923277003862341199577461231574485315024164373849917481702962846025707831942009899773194154680545922072250158740452339596006631528156776903507699473817902432889369988991359676827080206311825957223865642205844874679666750904926892352313665954357219800316485024164422012290715752648825180936358410725699758470993426005580805374755044860665265370974224945114796235975837152937776876379899881638671006628074531132973973533725911446267624965197205524154296352852398392422004000638174347023509894536951846847821045208076773065800443296069393731209589785728898563479076656779033965388919017330357552601978379529046452196588142644827178544415164721514980946791577507356735714234203518068834740109165047572979553503313072090378667823888869235897364470406219614975323840040300637199712111530353221849811999853729299558743334816133045160836906982755651857703707961477730003543038261682437899472257201698311840621359232337271543137616857510132671697370502305422679052000042398772116893771710745739849030675899823192195033975850119662186618613985236175350048252395436835061207879616415459630310882521641669152952372456430558801403606815870839942362587393549955883263292455150733114597652253990291381961361793820109545792320582433115318413940562410272953568740460786736151597661466145044845548576048341123954327147352709759315672456051483594408785948434640592948576300744908609706808835472205253900914359545811597307222557458615326469436546866105527248268324344935320915810079560572532576017077951296927002736558186232215783458286014708147775951547205675356566950056551251321356538625761455781695170996633657709171352051703691576707037328940581101912708551259203004120260220653193928462821422922983765167607191698396120956921314067916839467792826733816317187759648014636354275241162832410870867645977695685302291368451097115525637743754314836800814367496088447188731950085431932901280626701561818155654861824065327540097464425651847801317922549178975234467578774248919825817864659151006391015000557016133280874302656414586873899198479277876678922054614016666420681333205114423547234698419895970841098436705803681122085456837361150372596975196407208889220170018061592839087112620686365523694756583369342806212244456521380886845259019751327737663406324004496200780222309217216669610476039098572657175744696814918478188006498665175412118320279970851035125384243220112403514596969657057294911199982472781768334499206593988771439491720796933934484571370370202845063455257556051623635721042472237246237813238709478787221596922373828593130896141489953575228219597947095096782216411785021875788324846903423042925714837676107413393184150052198212275915368747989932024633344823492833842712997332048173699152470018826581879588012976893603848314990297668675432568906815876382939926282834591493768992467241490851573506385907060803173950675323543969698523852976461337377917671405357932083616687902479274064210072551181658096156487555825105230965450723038608907787644521971504560051815027269493583810937235580824592735901102334788572685810034094433202288442359480724811268810295925688831750195226689481872408744918682327122207003922032309765911941450685088224534578226078321746578983034405535642654996812290309282063075196877687302075919557625464178447098401266633330150226686911628966179160252716179444580534567963821613720364597820463857932450955937653706396517827749411561083768305825272280218213626335281368391171269953349652803067318235090686828039132680071001561798653235082839076285212317703107728577987661995901927318548022953970161274985519714674599311858171606580750158463034337789496599521759573326242902337703842469134497152530270302131824147943640690461245561550055362251821527886206300468075689464584534867838693084282240782811986539491563963068422851114958564289086059980976493624247921098172052481400015728420874252112970965699049447961247957758924119805675919497262329498388745657418340907142930553247133266131409031374628775516847935649248332545386244539065924688268813089423843641233623731125637916915393943779358852414416960858498406354285528311004801362889122343764768366832327218146568837415354838747731989237180600073279010918708127896190070123885432457168798392327652744709847207892080846174275962308922614570986430237474097934773181958528798497502649151212103060721018606619284289546538386460345195348018764320325192686810062384142025053091314601872432826346331936727930390173253679755375508780770290587553351834611919534324050900519815034369373198441888865874802579864853788899498961799439764277877339569209679895177126727351833677341242548529939661837883845616274425729026411691249688525720585919085125869646396792838609547038418269972351216572133737062045683430206276218653928496287833214250249032740056525951562900103785040336770686831502201093941617440042528667558279129294120048331095722228729606261697223274851080038427216710687423464866337618141863531666429877536526045313615358244521377102705565939906862446460493835714216146826899489992798369521849391321258234489990123855398901276637459642053251610547267540022762021558159625627610522655050399027077113174652699042882457167551331419737113498556429471401584067633345634283390133138876103381821737577164750857834074248049150537222128177085344347010066157856279201592456043290800876746784469298067745801641021652721646036360900462704458890233185878751640196991176485421548649268049159594865221099370614415609864672972481605285232301076475414067712486142513103250050936533597232809948554292051373249011935825032174112859363882148696933315571375382395936204888533193621983727268835394114147568943199999440080156200471011654442850609005449867190515227568626422936730116064556045077148572556993384652650571587780449114932493999847677904593855109309078957122409407941275312201318791942710284601097932149231058188703663861595824106527094199477044773307858989154606193347945885951835896751132618490408033541176861009992504218223921297448531758473295335298576842100316201432191095599357330180254759888152500416102980819470038504538358296984094238434499336205816691549249367040900650199447689405659000475576248999230967084649786288855728346314476902803312116796743952790530544536255837984150037368483538675674651452776790102280619536143169621265761496193872440563348020075675541987077406291596730185694658853815645260074139976668808316381478939135370888145166819258940413335183027064467563822461807980285439836998163151295369649385867907009285947357844582917862766097250341535234625972634765191567419456255638337116899991885601895398300275929315940274468385669398521938971122387103021461253786032609446395879373343973763591176006350755717969816936801926139621728844014505750077186893886258487967413882089048025377852773846833988446536996995852202262326723118333672053457783818904134171569368120296206506127019929803513490780456243739733078404813370838722726492413533740529559246241028811991894349632147292217283132818148742946785827202424521508550651255155329740793035158117924739030721130656183508472171590056217820246494852628683781402974079972501006800521271525032895322702704158435894882574571559581702045490672172498025140314484225078959890585413480509059024060418939198701272786661281524663772325040777756505624269997860084599038635453202018355564346928356921914255184930265668528882533745292999461305328267026387496948332323644137575996329441200764470837853124798127450447212766438594838701187070401967503154454933211530390942328123902505043804598303691129912182114929806522164230689942640691214953327181741501901381282160209484405190051545925395300287402754138064909344025230593391802195717192998002457729914656413039946308131317644908623364272983244387989703363351652393405559555285894986206138622874029985860624955089232171898259062118123165649569156360568347708717714653825671304180302835204818289228198664772434949956721082343689706529574649666206143744579843801027224849882590626295388596874799959834521620341458216811069109258440773418640170717020365793239815899628243044435202297029345431068790180793896327209414807243822535479094880680578323257205686245589952612488870019682700333935656572982662301776831494822292385423637689710583823748916566932807912217124417099574362552562565490618410144939090894386781610028355334407511273795044476227267802678459472734674203214569957049089166595238157709717845134752316174932642812116617796240063302984353479434728619627328727511029235328111817512833075545143722848173716915229770596506219776383062657667392480984397802357614135317017201784347720819976964289004318633544290884196631449251210094778804779651659295107317707975727370065386579906786382892984487213656514498448867456131167314736908471165056622014918485653622645804976596590825412649493501073279584604611666577678034738383587366319868096831107876735872113883305827753461316356188802399665932313352901501747277792182969817863602892126553693494708906403929490459323587062451670585452247922191562786509825273266775158797723375368784167096331893824529146788899291209712166203769843665374763227801379709195756204841776602349529815516736336467472631830330251601527844564447324429175445179669958709848220713054411363553611623652143854188455297187107421588576242568405846996745109900481067481377046014489121942142638903042903385080128618922135831278125361971984317843431173214385848573073340846414730978011392905326855511480455433615389668968796843535526717635081094758314488808679883755885073563101220483379326342739103514888190678831513323228454523773834830609384093408668927909361823322710245720259209250395029951387812451782400264213027871156061174724845344738243799945860986172519166612476443821898891412776753863403647518275283037371757230840991488540246812823711339590346478024470505753857223957776840187353011541279459123668473448058375530736435463385146128505575694226609007595197255439367413963558689402527391431591158265885499240947998108776376614492917208446037461402354057196542958443255463801101806596473368279434227421168470857390397257969138461862554907904405135898872563042876459810317500748144997943178439795495114782654502930337714349334925285652237697312258052951399068953423534311390490869832852706494690645589657516556596498379477527554131427099969863043304154262723676012281565829244532700404279165547497035431822409358270558801259961001795058438159186026466494225064193252196471315168714794831946099815560227214081144495224308209353948029430361248557414340119757867226685414571645509415391366428390821568348718120172203524345573864505278952838581403953290582741180648698970504411109650612772159690683196225512457407962984883842358293174331775789021823874569087271948392324837886538096172861154863914873706256219509697621633754387055479651664368301702675621546013637919121209530186378892873316254032837191050636521741737715528563993813905113072135582999202385315419443591837980019609346796804949768754670607718365181757823729787733371403177708390393181370034498851389114424863014264462217456463034612081701249710973561470842996603831276418570315536202812259577181110235065054239213757211277971373034968542174298058618757824749728896290728939519056944358765751320132735362895121653117991517057109964255880827568826518484357138960938175785246054566088107707147447518062012446871266724220698483831886833209820633013868928049483827440170354383718684547940571674958647901932936159598587274247019396146432486653196321984111932774214421257853289830388709420488142100370993468205951966430535167889877546306827467115076555989291564992906505303567610470275131390632825697138232600943417861607202800673252005556118882447049771136316108231329212678259499068335209134590111302516868641570309977570242909907732745671860495628289919853857305632161780842746368081134380753367318107928986066865626894841288754357970875732486683279265629667686162974338132392508323262910130794070129217772385564062531977081602497413015460415874489543588535187342643781768074280577908098265726758996244550403323731880758687838432869780705859320083456885376639857926507882383733006664252292316421349032443742471484778512874324426522796178152114797607673334552077337778589856514278172574491382555555177400304208940344477474412370359664608785391985610742383044823610507009369023899912934310084193017445356156976851756058904884728420545377874069906942533893536756526371139583561194975663038250028217687427174102186022635768146268977437477841719997415129817014539121710247547856257114996369600138737522588585548758906609334457148710602415930646332023917643413991216193402776983469239757481914644158942226424510053469600490050799063348240612183290768556769597367180853856769248495201448757475587116089364225180435129393555887548736759708069758414453811370013588363938642280040614947526915190274152168454315601068078432484833752902250882693666219471842214133629063347858732745982632894111252584581190580615455483415452704191854654606726977705359286358822497468692729670475347058536766954402657151293506597707987214885754617752894803545351360995900041375834851389207412307202257207661550921044210750363458936986731787138367444237612055143043113934183386559428358765623843392560687788464342041781521109116175403391502476660244291750954935200877053604381262840939618522635214572888474290599729864142880626176705336395517055194139969704933566708997405907882627735097776498431053557588270370906790785395950289878800452893772857480498119626764721135029917268780898020068043068645471959104851369753765522141305301035214785399283771503856217022167801105468622176873034382192768399637050652411743545069822721848776561627471633945277871290991901033046275551416096586783071071417044151625946093376887235651771223703313595057487049463144689800380491112694669777468818592779514816563738996458388588372274962464066546277506599930568868211712262180289332896721449790502632142652635497995452632404659458117863429392869842501325130284465943530476630804270598250042426283826440265635239510284967321156177374490374101086308118404711311778381394882585601492035211071156937547195193003145523515510630126325808768041256859844022348266208855533687173076663070534609350866555094025733906291313119473668737685730567472066708063168870653058695583046249495453837425173973252738581929444635474624855988214010793491850221905048557420921889027557393040879925116848054764206977652446067343700513814193093460021980346304873477014011391383272539776638006308003406435368501206446546208963070174202373172064346913715863361942747798402963572961480779788006441602204008895655564876162988641915747858379954197479060566332686159045367368169220132162754696931702458607893114857054590475581916414782273713252464499009836352396127401380237618313929562846027876572336500260813291038805033073742710251414901890775158938183118780850871481338781051435771511717487711715900875219858328236613540401399616861669556734303857338681021837398895972565132702491167761667553271469355310252397790957545152565034122405657451631942707912710985394582803576878574103397188915012374904053413830869094648506728507849027872757272553320863360859374643731166544513924436629244294804346151078914304144508770862222756282338324019747067383412551326924401365107827734315894826943786877079725775918441723524219501456858658032747329540114590729050328957581938217646861959303815505828346700621993887934242571790996511815060810879953475922372923342885543804311515395990329781585319730957327161204466271198902274701492002345372518442311675715795345599546660456681214492837192451855367524452458689395650888797285419933407354534661062427118692861416984652967130593458889915279096188990330775357829902772693562000106092265815642181549713000208928339933553002775939203149454108984481448505513966766609542263761199382836327842867247110907589936346997012089236741222116403942120057785439014724840926244968306381498799008638117151336536537801933089178157156773270587658047003930424695927594275559865530672516975832224395937714634650168711011520334402900959079442612285628949541571672460553056171998862911650439770410697384948989393984671270226568594967535289372580905181497125042894172934479491970620535420148091880306608766210506591750472333268893026774210053099089315626891058447599398701578455511172779553493403585600940162508471935501546696242629352593978456332153325755860307660140307063896490507545455886465988587871321230064770229231166668561066188638301269859710135895435238874598074162964951845592549208283643826246839430524229796572880694974078893224529491571102127243671694806480582631656901408578503841942435516836655915202355941706819509563247971849615781932825687630503420835583646841655260332390773965256958983025258087868829137018829200956551387408360215015081687383965012880026259665855327108930092412396967669990678142427303887890862553134163620345065731465536183562480705645272880333228181593154240853896203565933274656973225010869379894729080528992898425516843046205005631116916767951687013859082764039061266908029317388719384748069785955718109382403041494974803745841383813814952946240049416999099446161926311374644219241494228469579827374531112957360208164285816405716988641393328483651818985530677209065167636845729881409572356842557898348310927100515341413611020012407856079655389696044990072622028216000543300901256139330267320079174914902591050619087716176907496130998147341295837160575614120047256132028516956776112245969887597654113287780510916968613442296319476242869345247369651918775657603231688446015016228968024920085196849437906264656475717838212004470528594020145833308975161752674001166447909963496621625432734796383888643635390629107570919252057349370743792131303718290233899774984860246481902352333868372312091356394991702572920958785007932475419983073833267151724377330098000972840060313944174592057503188195522479898287994963626781747478957375228524619147950347480764868426308868761492140338758870884832861458682023685506325895222033311709072917015964966632298828663586404874265341024386909697576072720152853706679056890225334541690213012935331299126947845274339850922532204203876812417085470140711950428720016557454519716517696029818976308929549194416478409570086593585119943561101533662012802095511306786716483513705270927503509485247968105363334441155510575351367326280215143222876405988380670570960843159868540608707595949544405445421506677827160999645211825466270838759443957221827221172046447734198551460647266427541830502564832301227581404520591579844336481820952872787718765437785191114142006740875376363812720547264922935127030942687919736034048177290457806861335694758125417936035319154197487103729857367955173312043139408249161285799147417351548876072685851277542067862555064658685813919273295486281127525837429264791150529636229285435184466847065047521371889086371653003541489254782090292463634037591264169168233426283442552580521946612152564795433859126303743903948565642202336585944420343552823881543222917325078609356082257187339100624584982381325337025799917498734810577795129400639055061991946816530797249628291471047512473289786156070746217382630361337841829567112182779754885873054198205708816173260050694098653303651896071960258856730475597297129588342739438924147746047515146667332778726686853770426256461270035996241649838447891606203650659633668751278754531885027288272472707590630897594676973427957922364887847387189159663071039747355618595129203552910321546685219032630390619442756650936951909954511998680315034503568508364894090741414667483071424409626402137151405529914764775084075448920991723574137631688265441289575150196853673432476197160071859472008824393684029842769391388864889656313012605685389216517613993033753425122379903960448892493365600073475594969984361891224313829365221613000117952021512719574325105232855862168626156002567847912275383161112649289413664950140373680934908331785942539969562290409198995988871286804530513047611495223461936855783328462043657554157315519781013249295118750541241314936680123499249636677895925596266734994464962115385306745119910376961016684805138533108762856121818496312722912633017799319496564487542183488843865678253651300933209433271455693073840875708660425658106818137136586282333452251895749139986826258427182005767866497261907842610802836355575467290159199647894834185944623607416465923966384499372679294937052962867258367051245798381649661879958985202041712797495240999461321957947949222660840490547899702274399059045375527956130687415491360057933240717389546236398855864098625418444636265630406464187892125545393013422979580390075517055599370010967254413059994781399778487527910995093006497778667818520220391049609364577726636754192950692587917984689336938946398432485274405592570581285015001414792717386424960310815892699382172538854024911938647863246526207787731039979364318219670953124571589782011265147683195491380615176475509579585913861460323645217972108265403730190781296062753334967898458859733610168409039009865755813665046426557198493921114898666598388731209132545905134101833328681523868285073301739883963456397479796216510374054643450586829794657021061371611518920998674012435941604385913283112087580471509233781344283962845134559485064070024770005339322035301698121445746273897985932359410533586073866956684980930325125259755490870317626752090714471450435604301679092831203806345056554449700067872111815171207518330289343206110963342349150014639814330340619494986817067214945121375110322050337107191437894252185795177063178468052347696852368084744281649932405133193196987401175166138921985572140790395389602387990848648672195145951134911010513775498019535097954070175579939785665369182059518585648124678276458385014095435883804900234537422277729498708809609800298204384026015301311986270243061770492121237371820791304601222025531365962116930967610582029206135924249839940967054520109689901612398492060997152301907240573306721726812135027697116374355700316477764189551879418536330219558119017995170440406029038572355486128735787585548560342280135119799858936631070814282505572075936280621305451638844220242939060702594488525932938425415635031289890298501453155519007503824971705499867589199266829112924045594628043732429760208208303680944726889478228138341768831648081777112532675898037821747287377066381706295283737633243443470870203305891563466491603996396311804746852886987062137856254391966157688912820559244421135098667669130155969411389021527705185238115743506524528388394517372938372492268833303217836767047938796645606363337685554028639924721826173985045690087360093610892450519747182542929850445807560642791793646394330866790588180517956729235751192072211178342310108864665666583471324087197514786786941921474354283949931175761983567585612188505091453878540193771620066151558980826531168051816912588029954774107763376105599482757798420872637184380927162582987206096850206532653902017651124117468468830022780294664358602040650065109157138008996094379692354148185796834007496674119796578733795229533658490662802699137413400574055738490404484215557625333782679111433166499703069082656691237054620561521874161507411112337860665416092941228882148626142819933439569548429659147248278546958883871745979890163230546247359851601007106028529277596414754675733506864589493079275284021379350554754282660665894169953809495883218398893155087083253853594288499194137168016113211357436100916810288293928070134310491563484177314643779503335175796086645554585974736423618672798397683309457053989388388745469995232529720220017393013375805443710118002990050371629595834215557210855613892873131028136652992577044551580560906461394732460435561225878448701325158094405239206755313266489681580509992248781215464200087947534266360761427777645406344636566954915475697489238596080028826326463735009719958660555340095022638551004986930549531056663110879940073564385473037849906278217989944539742353571282533181334408049092995349658040562513914055139509343668088322395742970518673967008831750628061950187334788129532309983610720135939561424290675985304839057046646591000441356714293257397105434497147833156646201388233895816276351794268615096437857643773025958780736614419379104728810397961426219299592055996926910695743790776401343933551600428711029003324552138304165093570963273225434620787022004875644727241160515129442086398275860738547668973152329127201219826465512509240469370764065574198563718400713193857090163205864900829025554841903326188355755344773316108420033076005476346871904286797015945474379126719706614569473219801869442934958289150145313549331807523322725297853642392567175016150523947553884731615689704388382218859877378350079343512563189375168894247151230602874044035948780570011402660704009202476005114327506841479392266246735867453889321348400101321860617384565937761366819410252864818250984689526545976213392289513072671200455289603329627650653558494419141030093661716803328401744829988398517037011682685200070058616248241334791912316105234067925290779487044273354434347328368760333057838794850046889646544016286511432461114955802286182750745377995008668138388638265927637367867380436218680587016738515568675674359687872988142319441955478247844080153038032594481056380566261262509536088193384523902469797178167838459316802012564757724653443086943916971491013039911256554123147870352092205739256714148638062971338378149069165191091325994998221599380312890523035231879806226383959728641775712100172649340865839559427192674678806863668187331622891477919695816469207125328391478239957520938587940590142491310294299203048322672045247549357847363450926066748105114810329402344228174535077893923041787850475323740411539935484929492515785052390965837231582322933286105035144970363625518008519592766545223640333901502991844492047689831756730629647576652239226711652710838132110186331039728312657892999447832885788447960589500002199461491432863585529376667328314584176998790527814711777801947479335849057567761381882958034453519273878501693805635909058056396857220331215584036084975479055104022012832959450094967236573083107921564761927484465538335426742314666870665122709233475739915585349911587465370397852772473858734560797004760021383888928664747087655185045934042318884146216897001507348019959821296268755696165714976152499372885521862393047255337589558980158950531735265962566086655932285239218500422399950235199500458096196529283704879889577617212844763671430192169616169583972920328935720711090959628136447579683983083536855170162398153338084508661675816961561984285306774757988182867611034462847674771469854744051504932321629365495353212607471104913093083522454735084778764275160945765029649565234455661612303551830454568404138758246737157840094864479287563119170938125085506639632370711215960764061586514211339997081318993350533704296631692954047252805847651675311783603723876869625758224326588789803590883704726720824633027747496337507944097938876410146552893480364667303775171432596139997052710286731664234411923011792999798992765762519217267346032808043353095715820584823703338215406343927922958353814402799998773191445007591929045473712427148189259873240050523135961358368572216769732997612496395832635952657197646450600160635410583706215459517364593308727330058476798642486496226564363260315905451353403803275779499932972978843156778198631851732531066484179083973009240474750251685649794792852331878585715826100334664503532223865990262228780229777386660753416900522525551161601485681824297077718111609646034843792274502459979018695920196960335623620075902069625559110050265876475737179853894390552367340330126055958751369048648032576718067721689655118536742263137979328569667430691565243947905104297220678188980312902128078533606339147652292612593622672672428754834195901867330210015832141062459588527169925956177642804031181524110542665881629020898666042736684253285064846201682542732392487257303915316932865933479370742029552147055321702584615646315241996833642699673168908272128237442126521069393623154189305252510932187513872196815066479381471540839574675513528984462252273878286870665836161646624475957301523777990583496141680033130797133327695836525335925879668091795839934471958791416128119790138036855555386211923282686204839797955567257780652028562889208616810027948042201821058622889139098106467065260796868468079846914015412727472811783577351397721146997366637124541903870175628305302577603281429732467545189102503550737600598232205827573885641579097039864997358285779381101914844856895674089770628769050262293719140441001775047151010614175383557297510850215762615807629658166949659871950742844660264422327119933365733538823684858394356825981277328110487861071380289556150775230821429416797089182922778190376412580153738135930843461767219272134953045215909770201484072307954365955968084160458323744109092171142587560212587405239977638892796436841983984226562585367593781825362136065526589135169771435517110362428794523881178162438310001920068617884818777243404572645917209908529783901257524917624701190764170798943650287298252913773362764049945086236770744131919057040166062512197792847520026393728557485543815310681771881244526102074564704140129854051046522754952528737044947777866919716542676573821691068303309476089139176091924453429441796011303859127668982163387518378685428415348379714841531902523494543496837606986057498368038467742448932191424203095620540428305055970759821977536882736102177113196175792135949899335039358803013320408491029231244017271566948731549861416823224519783864506525170514489228824050240821980152675180942758931152142135037408417355014922210977049881333343682876272761958120515693827964994284695457375307931301297736355975423545007768838985756026851427896284507756367475037000907546793182217255043579945088322192602700571874058937553409103084309439066894034679916672041801239191395904495835869351329305974498125151183510992520930692692462019447043806615174283408313182511720257799106873249702107924768624459897854479887541212373260641432905660626632630671704176501666151102579033678596534257096677667532800731821377083022691663749310601564682227553859908366937665447051238930290626194174316668631087285143282619087292769327649792719476578903878402009766451967017164806719817417255538855030722041418058955816439812471685649693445641178786120965437391988421806359060547067370375169901418342885125193351466832985656416758798514132759254028039245451656937662561384206785238742986281722103104791862773652324094597886264942956516536323264621305849573585696023695876254281407821079675045604122569042044156696322749918599493694003686714243725708278699319604546492635499708482639395100875396494055481087760295193416690201889952570612570651553399075422772342858497998865702854074016460135634863103853021814216237095980350782685264047651430498315444941237704299994534962825563512433143934766702163455326092372404907659954821575651005604396543040612330684279772393272494365824474384341900188179580645780058698090412642465108013463106251909795625660656920397966540898534108148406170722101902054176027483062100843420317502090322388111533615306804906319560471265705907264186911461989958732209561476957320369255501714292024216390983503674303499818383718391689422321696086080281509195387431815054589089105381443303634346589091451180949508794087663230636155225161804171045564882059292277100078836084131409976178800169525368026776884403861767227698228130675728208504606578250571101934816440473821793052849831542737392047032898384040359390166738830135046267534311763825152816096097164653789709096078360854038611457385903465877781533073589499724620134181543207367387063567010766009913643800125908470337682961808064111711022836336709319716460062823628860126054507496477714987693475330494164950080610584425372736416577463810022209392087175730517651958872843131391545077448363168546234198623917610647549833218884932250554572472928278697201486508209454129208887847595898084853426804506375620550982125435489988433926114512427941023160803877126134968765258874837589588020756952822501310372721215986882924212492228019104242043964146794927895857122791012059466309261749515964941309521009892931647688778886137788068549798198233685037067743569783202941160633335147177862508053487150565613328958672641748282199541370762070588301353681510871174707810499451983030079964187986407076638114057648600324024762273064061052240594604312486896265696441671107107886061379659769514616644859116953128458277799460790852842226585972218460331765519755096198002598394548671797744837512877058036643542911539604699760927032635760473173160943690792848660145095379548851722610731456011322190416678814985114818406026894711220005085090892144077041650886776490246398057414562590104433089005011648828376184660511537018370797487136393887208330933401454377302343657903900196595768180388190979145139166148882047711832224120163441880074204777587581511233449624423989212125558295853015206497697623459734341025635076276969974948114683323538526527745888894268327460153362914324637077513341883440791400965010241890913306467116794235304750619399926956557657078301460983507803512063126262860017248415109718519980531970042778639571317808625202995965031540190618880739278274414221238669245825129427606026908385904153456205345672219081985327315160721350843365673714658863865752680120156684783390885784684608643818373280663907646065723876044689520034878490123514526064698617574182516591099538801682495072921951555649494157123554260365219088682730466748063446349831692371525371091127395775238908810494628156927862723893596245996364802936009881289284651862887540024123846518077171256814607416797285905467010617210928136855305195729608156456608333183177003441601217289584573422922084937735899961370120884229636005817697706805674720411706281652835123530841843499497839817887306398807663915020960668503819394176092351377764325556472748778692678790174466628969426904599627767113045216653292376759467739011210965594120602641630440517243828282272840040569791308379683973939445709319224323916964768998397305096371994178028958856986643510109059438820857947063963659947823205367893358291239712537629246867419987572766203592934060286490570488907550320320915381568734846514232116968645384084131241469846691072708845326165536412818825901645654540826999858842848264966945404313226186480462407402503583431431378509680233387221517693221028117167520724308675967349976361707771593302584441196613657281485942374662137510446137418293784159256206148579795153363676072229696522435446594184916078494034184586468053986885498088357292443749655633856874568842933498283567836019061889866495253615605879315750675852805758715886798276427275580490974057760261885327132512290847904281258851885151702017267480360543902485415908824343240375412758803176753510036715720769290086828178459174026096475867417536657015919398372409741086996221445432317535368701440889239010920583053122079963783765593580384872234500079740564877382085514694666977684802529655125543500103234402917283870940974879578111806906115251096128712110687356112754883119808701386698889346486441196001390966957119123334620717983545166837974118738639799828384080721823150770599312426362729415177023145257063697898754015488184562445373592650856649999605951535982255821679687009385203062037390401986799841827847903616717075349724145933768404189038747291177413030741560848890373652560767355816403011227237464232349663916669741839231798530246381071615449806284067388237097921350040181336897463435262171226098900519917301381674629049296254860476627902965788095982930077517087518043365887273820430049970821737915546408770518324132991331090145284709059323293189734012447888159070084408661323914389375501807849734013730896217195479218278355898418634809455442748464522433898449471979261117656717555538573780325717893862843446102344768044729190222777733240789081486543594173509906966850344358437441462306726247907371883516757287009008342384044356029593749726344735526033639746218840924986482824054857068154162066244737216981546631503424290569629701246880279451425565906503499643196447424209422353492461270834868592688780399334886886085498689120763090412601397158191722850824766077677876044367020485808377574407781631752688691333922319357302328821719488871982582564087907643078799381982310697227745011809978044943529501212793986879665165109736644434494007631625993143016168559414250635092702456591942589596572211446544803352808181613517392235076142383657065980898923403247799796487798563896256514030062154992293588885791904022287639174700964008136611085531201740476912531054810959082193339646595999306923775081945053277968276975890893985158319804356444075459193516753735131233861193221679512637963691683930627091302849134814002007026534974603455060812219884069955926999284417458332345582064462414993449769326079995557953181140357626838575088968536456632483600460271741515631364008019608726819487830445072982699795274634840547136391680874658438466254862405952671029099168224014139691093830679374557042475572528747877347635137376852789337657516103803346367861306289788836202321884829665940842015809063173416948600195452704937625426595973428319827344815337299624189819170348915226708995332542645338377350834890811715347014898605345420569425138368541190309089964965864380987999404511366515114629846236833577706369009785205873329652467101130071075841395121440553039538753632010837937029802524239431308472051645303606739440980938224026377240301403475055421544654685063828678164328487635765174667382259308573183382315758073428270201860100486789120321464934938970341827166165577299422389574993947153238711022334182117289926438357502374061793906171504884472783498679866576411018254940970531090082968813916757693915637812973851920353729199803097563694332358638783078777575507362671412634029376216167243555567378669582734693443669581951624842273429500423526016532409747851931218969209995862155462343465521494120504876911781350489940153450935467336838766778441993243748276694178138017558160472201543359172132744110359471684049096440802733428193506054085003875455046306626373649599397698009330203619039412337389748290770278717832268450004616062193772888860122732798394211814557227043185878119993576701538002606366248263921612719175159169882985860248981886212743321018370319045939942994962462269551131218398379055124331887743328114542964945515650677440608854226069385809631191857576560088037239315426707961844923178275645437959110516581408948598707962136639472381215178661852971359793127783455747131420234304940379762303796836236005518951616901725846345734515509383579794070226287855115452526376269042478237794331048971886675170021115570362819547994970457280072384094760401623232584392833943937326203991549453705939624632873514932353060889052459903863171633349908228683603509224401571744715114172300466273066835985022474642458829519441072611080245774430359330816165058331917377567443571445084725035826503690423578344620362057130793501952269432194612382398747132789714474890054647165677039038294686118218492301562603503692232367248138914596397239053770494353885662010629984064536690331981843582252905096292385911773531772072272480969409599650618723179402577029932637598940559089414632713967915014736687058464699253520924093159316240908202207163855137441654222794174503598854922494432592972116925435535937690913170404021425402208619905694954293671486506179498127976670837745632754125350677756249674567443660880725279076624741733846399824183824590433913734150741914902849504080171021136394101459332841574420690219768762025142798374296517983118306414884000024340165822585714072052049929132368892391550001299626232183634630932342586623226942231567241830906691273185925318754382870089109472092089014669314778818397189794548882254671321493776080297788707344246767899344942219888780357507902468171921147599919262956477509085078045488118521222113711856943998932241686808645401116933918618972918808521773286359663773401322843069440079801833332636672573013074976160285084287820040457636348044922085453296527778106150989300734078869753665725037311947454492972581288320347118562465078945850829721141479167621872018494262011392459065266514393902495936932169496759754714005716957263124111479394949068729811568076319115501991036196888106849466076888635694367407049790593825253670235267388577244473119730685342932570487398543942765940328045617088459268724941511251148289630844354469587513695405244035696805531824227840150809964328308470990311626451990582787341761166826436784167076980804200629555118970242174633751009185542364814931073390880339765949000488447730845260802133962157418853972537879147686104030535494611574554863668781239697394558482971005112529715283705746156386318223637706738014228965594657329660385350163880611238522077340839142904390716662655216251835906639055628370258567247652287756748460630724901684005534133235910727770972704574706215223581516157130488999439992685202225688833740360098092618811381993321561493944438348116027592181732225468915257832236230333511891293524502087787898384984747712054221072588614382616091979949670533636320347284622541195013531539899202940361283672014937705862964671496241579503835382697970789156032611048928800027169086124048006708176994621015355036788949515058046464293632571467387618640215209473899040512611908753489888392710866355263900028294196972013871980275705124762495636439104906251573517429698301302495221768580935335662282409197220494006196869402369477769395322455948460956374261803987764137680406375486469392631514334232045903674064170158433537713230484130629925679294811965246359462758677807135606266728813953947567898346334163832386434797852980276796639692472807910562327945357601628757795931027192142510349331732807994563016291863081257897952831130389212769812751672636064654739146432014068358723797735463856967493365736500349163767104085073544439730983873504961977088197335034076972180270724212035245551931643339207435425710498236631073360645551061227718987075314989290962238954616469813507956587969250787522040165398683175992245430824040063287556747847593125218869912555008933217407967493761486823964175134087276676396107698148640384885093243398636965723874668633821896213384352046283511044208529122657240455713912848542288779855016537352562015661235457175369177373337456343843170041002299808461023708013836550183207116452844837821720519394689013104967923697684189417096596147740142923423287304284803524507369139465408317803756577922760789418338385440751888359167292210056932034756029796803686836121412601712540495361315001183887699470344025749543458869377479325286018049756900924121347781936233195081109800234375415351117049193007837806221631428495225243985068044960826039010752886930491954450419263868695617878748819473745317561887139367048428059990262186258948792899964426478778397845054146295065175234277991600252701065039536511328654555683792935508289353334039050488468219053505959026667456400181956347391972981371816676503778051765826778559750603956863450349935741173620969766328405762601241941290975626213667768022130808037453113653676940176830000729188996340971775115179820361277441379203602888433982886994966070657248708448870064723132794427168544808555110024990685327576610750302412908479988660439643439048878168104356177135659820771557956234885620680334526017533690436195499252503048068304106584707938782445582083832944978747056556321814627609675552797046049370192196265409511729619986301274309159640274311113274329021816522524994146721499476509357956343319805214131039640373625786124402492763639670128520321070381538743099602120722692166581668913159321325927990001895059708995585983097727215325751680980288409236385257551405682847360330588365120293216168644601467178006716982181396628497029587659446632558415117134042111271211292110868597525584816883217286069925128081571774940311231261291819926198826117229392716602952114371305380468553955074198917120607221149163885613669272119927831069087665663936780441451888526113377405040585826427998996472191096400058133592636669230972686381304505140365004384443291080004180798971339828677710070826284463119625929439313445642777481386451591835262316297767403522434052013369242850789125622997272862462487902592755890845897569337776720780561393399753565331740172345373679660677940033150962506576274192034698529986840191240894989802308087980339502407628791752282059888116869901234919781365173794914245545936974068297464391006552574474168169344265676063076827981905815388475833245765234087631018680015040399627028361406080136008620458512647332351447954722816966748112957454063831071450193726222500581622420263991839174119481784157786232752885753030556066000028065037073591709683907158075803345769484922811403851505708202909698662523926072193014273440157741926563052992442239188468348451597689210859607581435694505541133043830543569213289591872864709980893800303161425530104038775631129227619408458538188619644832162878368977881839232077557266914875424555993600274323528490108752511392971548660566741148233365986395790923174393150033479527826298431103403004021795515633113311104331867939291832479259053876188819153528407027865588400273232055402096838136605378064122311155905729266748490940833715805573437957518031256063811330618650660921691535567348495064594672480818909364061082934848697543717273758089867118134709564832496057662674194390326212303695090401108877924973709307430374283224801516696015536586617555655660653277570018502607349932759753739588285514989616020198128901573280723561746298923006846863665445654407507195501358180500093504482770373007107267981851964175640215912908122786917095808373767859300965777100197022545300861182601952299979028687533753989120699144955951082339345563983895575297555559641783817976131059544240144995193170702504861070760956114577137378716794701570384340390284069044449081761442607676692589541261657054773956409981574231606346705731751602878523553331837687706399585332329254077510388905030692498649083125354801264284347138727110367948610180396683986409793194822976877675588199272974781660633492571274436757309989378488952187276868375199257832463464485589886305320817701399561877888990557431073285056329404549264226738287478058478237151384092815551194043281277918892591980718832335393363439530601803529382816509945086176710116918553931518236118959283451905950457303680465574722493420325002711907368465896069991399852993524388772720265129840042082429541935794081818743159195712580704947274671036891081901024488709205743157627798287725712043814035229458299837647086605671306249199566869757707855142117311175765850909259114691455153852029143407930865703194616190855104897418277006786789278183407393453469945222425302963822800640861666725517206349652130958167202385002011958576487873534429486131417774903851269072604491209873722564841732531052011552085958622281059031509752109571598191161020901574486052301672437353599769237834893001087230201627409733544902411751976868234638255718576897632699196000715002874636256890382851867124542216841481977794853572794205754445747684139470305617237611060163707683303274154998351899445467463310247546528715982548498220344409251035037543644841194222919484733748696729771217005367258246630957290307561800754830587368165170179193303071191289982734318061202333221113366625016774677740063290913212240172785043431128075610549119143903806493913900247692865078472143662129673401180521201776762803295666141639241878128043137039195359526175984584923804652878798668264709139428987993764091909560683440964968495054708115588754689010090398510516491144010694886072054220197756240084168595079924536963920738488523093660881035829558105848160892384312648837714718268922508327865240354974226067121977399124480826771891492245143600034913225233295821047142793073765570319499070002292587391588736438991547832378747169277412949649021382720448028457117015743340441892813785007387468117410473557996390721790769274796522982196957549834817138327237950361052100301516199401760937771201880602036166868338551296122245447795413385949823116104736530194384876502227754916760371090345449962183409675572133469701583014636810996758156874955383530960492667391244639475212849892022464938833745383007574816625058136860925513139629596115197450511811807961162667206498686859478733540377735629355672206282733362682563415845848696136501286238400928701728477344042875312148003767132088093344054352340416025892724550559746829369457305413269061483665848622492300895118284782438516198285449820757745381186987163911570260594108117449582756364045298424094453001320968871124551561042658063586059480872817566012897690899000296482918576120063838045394277095728678826664438485202844203263693725113596407823893059382145642567770981799116873777406017661193179649289717519472059288893942689079893380393411721442277387029865595423418019417326649847171035008449715630747763596312622074132484491405696461570116529628199444880598082632955732852321528620349497133738412399957551497069336376290563739654563832919663635036484921281394117777877227755200978958482354788789128692811234844335154732449321402568656722771435832964002142958843464644212559173741642730286289726330391104113483765781500499114330189541510010094189182966178543740349581954993210505471641368743892647568872496015448432214730482840741642488370088452523835551433258200530213363975688621787597895456937903451936802170644830920351607276797579113189731696436085781993311998782504276394702618790562560394772549470479217226267437797868158574972705600118053875271343883346467769031035112204424596682137885473602940762901567905640246265824424346240778487180011311936349183136930587552604842336854628945289285512429612678853367790715105991624564117929687511321703863910465752843806548038110202545004302552631321951276533568655367210360498665048710353757569187716640757731369434004538921016267095819202780400621124365576286381628949641169564128412811114432615477925605681609705067488042828226854646447579209794324812411086835778283981235407129108965195079852522746938903941412207348403415176645956724259602851159355461924010696796909050308067033076641798060303920798868868323228541834164815039559478453352432644720423376756971433151506760095403260785119081959141181405874606656950138530634698443359120696711271180646741440853310984995957533630413267729723490786835876066808826299658081804048924282208359047466230814619154088001993805058001059261968454277447718441863873373539375732354349911676428922873454244411910575658845896498386088635839391213982598379708043409941854848158451649134409685222358123225465981576706573920172106718514576568671256879120090574470220347658148755250790210455168702694999971094885062068755863917674333205723218716162112791578598785478193473405111870060270540162414165637645430322949700595000721021325434106304815474966973559355582166538935162170528372276851734820349454514738625090208197695801451774139085958881241989109951923075706103829565944459748070644517297807482028378840922947220770552706413963608245130111211272874881520541078276569517858401152335813886030220228182794554062205160986160278800654359508085463970794809967093375240463670606542389490468770684627652447326615301548443318871734254785106268297357152373927163809001271559092518981137656835901844906370933906648321352465741886736421064312708192981116720628944411041233575532503563352223310165980988181040633661722122757201163422780399249177810589180449579884344143028419035376392551601658703350945753355547889303249229120334937983803643271488111458606208347767308011645690603415648409291132463983690823464528804061143075213770504831000268471851626290359253017647669721302833414757621477840031021134282741783834032698970956862290521336245529930543539746422752092458087929970199867867071870772799091512976209963695181042584256346399996471575399726425815184307672934660446665756497092765998309286090570176211721698616406967420036093642170205519713746008507190574222548047716794744493282483980853850785236519693797000156842438391625021329708842009091180442530816271758838895782771135256372956361123400892779699605477900928832649051451925328036807269596309027147016726563935808166053124935698352131332733608561808299364205898806381003283962905923074887888942823495509367901410991772507467351764543329342709857473179799666641563175358158034316020551133048871556377496714774120856725587416808529947518896785417406791567312436238183783008300163737805907802807088801355818179835853169175490243694864818438671548370093018207370650623740996085259534473291103950227212616647901743686857390818480516962508356515145410599129265360765017082819061840602948449175266269467580577548578369669557761165651738301241172675338463278553931206490500006050999636411149688559480667886445618373473108928073640929458861384274104752248311016925685024086528064254621719136049678999050759124130333822876333976066929323346433934607285591092349046265987207858983613277610988499048757874511051199589842229066858091216430131360101172812030783102687007429163595198457694479371780377229592674804222467759908846664533976041888072070339763262280689739520385933330398199642224484203523501556603256647322711017769043706926346858834076062890120373629069233145026357634617206043264171245212172818470174041474161593173414101420137717857757197445283352460443027096300364730575115216294529856913427762393599064560287840498594262652556085503313017934819611259600210962950864999752095318370074647558030677771094613406062271571064386105057306533381953748383041694192646010807784984415624781024504682405855869692110669648489376227664337011263404675580168865193955714395216641420900258685789358239508364717508667877045596054754080783939224137952990015315409732201515427253393094995760239315796005191018304295186585003269002531485364331203915632980380178851610705289766716146196795181662012613639622443807520682063925055282219040636962353600236252258237670295574257041546396345426239050816438339114085390052446637744655427221611427835372553954677006872370877985444697775181634843265396542318005368016503558547028251668372188880932533526985927767032728686745403726706109981506427628852920661895622951303001093750367655093518714381972001102476933948313091420558204800481298068211413103984741146281706459819812641631308605763674148622699624114233697844226945067279887475697794076420119338464556797278734842771844852018588722367745248760100039955043559066850864510174417778066695914260780470822990899535282031587158101699673518264241025977544785289714105798999669097030115853463927704400955286108501809722365358125709857356362427097321025335792846936321347764416486466850267212442979952102651451112848411892995944883702644346021035919618116635632158542549874534692906140431303444933035782524457546790913643179380414182112815450088985127593730569101452843016733790897988140799292478740578091440321859331277198362367959013337833379151273541174458119624826471301665797513641136970646562085900634483552790199935724064597171964002228394458352915532870399876180542800194153403868660387664242811691986907454190236075726428128499356728623738451080046487140693566752255694873381709992165001157304719635084659808319604716018287259824488313783791387135190504416206861950262767694253638842290891698503826746043917023707971856809231665105099941302601771302898200009359961881434872525563314533979625737154344944945728634233869064260918950857100995977078712685130929761255362878825401253409682165285648111141527508698514942472695317742310132970848518708048311085615498690051573709186706449544441820218416501744827203692732641013197934764724043048154391760005669621667224749082918459052432069903863057367575834061233808083962895399395446480035357780727135567469578198538004787416571007491197436981952802804981602208383466003351016028394034454374470744986040104160977763243447529525135973144662403021220297130205299405949786761830749970489561022858067658627261802411324752251759204331896767940710348739973149784683353680796705437974988752322357008368754891783729882793444384917957503328069084451416619060961483371214647671739829597287829322924496423369261586998684725068709954438704622829767415278191644977594916429368600532684162990967864363890203826474507857081360753853823682862952856017715729907197833565731432085550048713867509527892759500611172923760043755227436796343552199338472419665831828933762640198799483002984057700960465883978382551188784207689681079942535437513679175471111383474577106011921495710321778501768519197014768556624512334562626053137222965667800604890612341050383203752865790925904727098342552249158169484745472120849244849642986781510492324675454903282784006530384407040583377025460250939573667628253107092966050318205628831011844828465084236291332542540674079128427512529314433831305751295337291376521934593760127201492443154767797270883473182786122330299593871617028167104890691797315480226031966982176734630377496335903179805457095704686672763224616094080319520487761256395153746372922953377452359759870823769291942718520764365206134800131382244358905579530631238474554677906045888464714508271630842551138995074136357742586716538455056653845099293764067828179155352393404290403506265097480859437885370470450696219614209091776926896467054714868260244329112503493029773238661829922274786965739172318267779957544335987901699363702963718485232786497745117003858666314754245381145357081540692143828443675147568110824029601142216721932512907408443086633104756938359249436753262230739161455095665471891860123159876964929980533298850316131489823322474902579734246489946247044864935953720037164699264926555768644618688834683547106594075810571149439360802879473635082154415295880607592025067537034339498250179150172422931827791734954909111941317648702505152289461817259678863411165436021753016115894206514309022379517992314811836379971996478681744787471585112533271212794665056721719087832185479932695078996553444731893874231347419012174216094613844234857277120119083426292161777727547777220344170093363078418904975541924144170172746031178145886408907214854687309991835457182462704550959191954844195711056334743575721632037536398553933808637756252131259683703391712350375702840272656437299192103865960421755349583530919002612997226264669369224579783292623305336730944746224272935081164234879700940954930424196732254449784873817624108580023061209160291520328066469236406003769929064505236946299810182414944213785517287212194274523713774858767928453109039821853751962081266043269460598401605844659975539741843326406845972791003780402482078926569750162653240004513007083327290491642207097398941278091203531110128924843301223451396684431943371442231148298346080394037211442043038915048325787444747229064701921260763134837177103768118772294851620254926810054930140657023087426440906772872157637143470866011418646706344801295358399641140111549320067758592955338928805773816231327211635637608545972472816419772469192012721366224900847254229806206464785748767352696584973281351232919416827263149241782022793081766765043212266471639067264916350504917210224677053709036959292539986909722713569598949263186592208300961428733247342306138707568956316317555199121751414473291234580535121773322505786576816185897380712335457304380289832698648364285736181446612394343203246488547867441125110046384362577060122793448051344944992037033880161269936216693879335652344138607820268688209132374220832312822045712453691832726351849672031447560704430919782239562618675718753588332395353941238377513433219814749020118614875011409948259104156884334373122427066117359649006590122987282459954899103776954004261820468305168272808105013855480899236558803900911041264432526744014032560808230154820800441222323649728454927335567943391210179701331021106954794945007161834032240097304088599097455314535518516540292437602580660578802881221517386944041417217345174189260778148975938905655390021990428670369974121237284754978841878976066010037186728171397138566777308787049032706794608491159185908929507786295243189019709830618524402945787297647177662263086893553698658091322873781383765668081228862532830728999968624135140935311225744565267395265802535163853543966425303263837200555066818781032185575797744861854044687084015583973164682261488831149043182434801766245599707559013166392252927897103402275422227701949049447105825122777253931399875440994309706472925357781401981623215381559014170124555768407907245306615502682165089020820123180758373508152119490807056592873293572038031290216883099391558516613466168599937613639487834419468753088869701022337415160104038677848826684113876299122008356402579718763243833071870097134991523707589316293492112014791325677538183241888092759364202628832783903337328151591153023338539551093519816948709863757105320002076951867823407355157558788046112149453246729362964043028898222645627424868966388623697398319288258416319016140154592686739327002232008818318854542814783435206683025892000018000466669955195391483190671850362458601915681342187446706907924775576393175146950239546473030161252653913049429337269641551770658797574473840486439474294135086870504238352151349116972589670421872533340952598176970449297982185466219985952071573762389852267783440987605450763747164584841308537846164730465591740060868722575944340022375030704992831420735174094137678384000567602950394505338901204240942362394387372920296974164069969721135243566822089034566585054376498131120409637459672945126396602563736711404553242603955853116031715650476824577459420925356343040882784590947059101993350151440760736255949145531623726096389086615394919093794083260731002635114748453477181043092450761852878083206264266061046821560504641775700083308417762718415323267870996641089631400146626835274084402970113188465227978509790601931828486318759922782036981499753364020274990225124151363535859058995346065678893959862828042289797604970010972485220259406112148756489206313348303290829852783605686480591816593740837588423284046771912642930286545032464569249508572596196779095385129659611297384712455917125698442927610118047926034149438647356990776264193725984122435511465619880861709391436233015582504114903937086364844809406670596914806496780452535296646197002975399017814229185502663363979635705645770426851202547299491175715110163757886877841978715089790263451057161734509215485615941749770765326224750766435249009262595584446166053461305760551104781894050808336870763437740410151591441840952268936419987731817153235535294401890851213564646611035227654023972824508667121334770579018289975833830814474368583841759578847169990216995034012091192981782868605650753679111154605636438552950226163902159373245709393428741717875482247518422633693134909251404741363806057380621097880221690047780750295927250976859294539444408805256002215693334265296995120371636426362762022012222761650706520793385105046362295682239504349237753468578727196767737417059104178919791441724504179320691694434099945493512367588844309261540743594405212097114554495403237357082359841906771434924204635296164049784550718192827284390636342904250780683126244624724136514409065179380201579729416364793444694084283333755625592943563191544835353275336810363873060957159132111297873726666227193766632691002099666468826356347878440421539962020583723062474879725000263001069307132505702447114153243147269449724682311830346975941628896510219083782797821002741196189130773945679456527186388547737398154545144333116713824010561295456535848025699806870232153583749781597253022694634677738863688385183713950375626865370667043414840165093694114552606917725347098794070765392811883846908366973466946033868438310380314834847333062059569769510899444894266565693795850458451714462469994956038321951143181942644038563426715012690056356660342393088922885108572044048857253263399005994615999697974012040198234296443608700150159685905392487609799087892444011861641619089945690127880464498103942108457767108385238406273432276089378140262478689782168533772775328106255980736979100866022418489786581920471601899843200076868398081016557533244448994041558093307978323746606505721846785217582670369033309428558021924405685496027327425121902359746972003828326177096009356910799560088839286789772419509742785297755186192326316720706631491585447219849061581105680376828619793411354012553870297764992611010404319943310161399376637405990056376124204978867545551059507622445977376254590812409478944961995381061311669814770650882410000752043462182737491751600084908549490105951674724049165837463165434021999747974870421667048002602592901188301630044749478067603730558243878858755958520468789774046155466198268034194993166243769730327123112947779733368528423730219933201084382853341892435994935259686732890152120630209963589227478614714221435038510263737791512398301177149080202128115859277353712854113481329303602395722656268893154449150847326378943981265187430902154916155441864071804283660152236086233373286357464280662763332395134486558899894901654367778970680728963007017754010760975572135662662748427018148357288339014523603613014926234649378474824024241814280150065236458101596230420472524407051695191263362460976657501986513687561159648735334685534717433556397389764459458147536501671085769578119136270692578318333981106894931172947228868001360748717425385959677847149784665803853571217970564556003631198646933063841241526575994110309917024664236199116266609267591090015292626337878288588147093179483923671241149547745313655506172438837825643493374258639191476235475328018950741006673863485580731158357445707046389284512366629761467685864862096615759803303210809989107751801807869846435676952411240074879305452659887832316971769211073642144434955974161566176288639576150031801216975971247649731642063438832495079127705546990133314199850223485541184028868472591951666937622685598347062057217639814664678173515008588698030761573866943453226030888330562012107525488525340950103953813864574657188206900313532870126358428175580253019607169087015627526494956558394725996346990172960166141188030533435303311667975601952567354114408438921815339731344602248077319134681034407409465129619777637543053001384666719138778651009990420201773988904567572856229535177355036180729092515401518735687534893549551869840214093475820154705820596526298818078245433245643009931531297624105044000122445603866810212624663533582279689230018388812096660495849199244623943296143610374237920942094241389687507508933613117661352664993633368300426370978968066147453424799308073459321339836610401342254035167459098573646498435275065959662219036495508651994345425461526849917097686759947467832257614162603752525896301675108726895633363284639008910215169305179247299631442419599087391085555464568796592965100322763117561740643561217576908970410684607012651285926357156416374841240051366089588686719830349690545610680014231583611615103459651799083821815298125070134844662071736274926537990490437954820094390994359676791113653874561802013104459390483372253564354037622615307689592426377251337516024466096224412957778911847014193595739553298938583495576456029038127215972924568193287308504270937752447264384375441750923213253432712492874885126488085558815047153702823110258487226372001541180736938472029780758413475591058400704338915517152806329115370440331124498928542978732917069283954638202168494567691272711117567111249540307099344480891885830270474264329441791734157079909561497278395348405266533722282340442115394887114136802353641768257120228664054533435914453268351318786010619251942028551830738810371504674959114488251610237093243951230234862028278118078242211841705934440713707363369765466105469370522184565934962315813126521758250768028927068123049394564930541927910517405460828177804640782961049512265973217766902974743962835904386666942442652680558645526208675122400837752976311666178644330706732930629737121827369266457913923672809450794083809695023885022315076525535535294617619267958554558727602117560726293987156006467485539976784361406769807422175421424094313437808936727275939865603940426940406569932063529002730648553337693211310459708759672049500570810633444817720639898865179807937775879364917924532355781876335677441887417810825729306148381438526706221250096485974729997574604221293794899179128593636332918683570572704969411682035187850576533813174392082966286877624008681688223151613018153827119943510439176231401591854832487284982655145361206619639778842310839699788651010735082401664479260186587497633655857050979827479136211404928992855418561778632975437471324360637598706497358230370011811453195757446031655977055232881579975439642636766701233422326417166008736787343094541038102773206492734818473579523051466029295432758429526502632853023972103942436986189487069216469454924820890522776692123030180501475836981858822787941557899493665846959899034761088781008717909217058925503521134633218472415864352023393311693040371119821868381318082488154823057531639105264512858073469559239356016858093533882870505129887388004397142354831668163212058662795981885266721809795975001870497406843620929677852263990751989149427254460668778175204570762252869957442103144206316766833501155152090709244254017041701755284545324660894523663982821725212965720825150348090773307495655100893911361553620200249682177407390933416544164872378477962750925803264503640196575653665805687869591761319416264125210786708487689949801484614846965093010815575367743832376415028817437051786946658902620513530081588385283442532105545493702972854940770917008280760772561559549719880927942908854561978477048391915428349108888360974018617712210250945459338323598418479932590452765824881917933386811597234905911845913659447019772278043402325448945112052120753568061728092905542594023121189885314240451293053231252361119725209110508448254141675407126302514791565401781458724698548346835684903896290882080388393251777976368331418114125491131116386011113734046878383440184884288210613328143038108433283896248737783402194350246808631977116025124487081375044027153519860971867816502403128680932093756910845646943125140252627841852067185191247180483607115952246801599019130584325385704719791446008034176058197216896721317474258708477395038914742664687951453458511461908182550353338522855406509052044673296328065787756065314852227897038053567795462258747920539663629466191286889715803605412212431871850550172233681864044431810619883085938491556621129103737582520304014621449749686613378262826588060208346331607879613132659690421966784584600883036007188694414417061342256906614644255866767141046956221135976997078434178098560544779612479767574152316888072603015621626413279604778744193389958559809049590015875585757883219515756656325182946631244405823145697272015797531502670501941700565600226530620807687939668860002771012563774450970035495317019710549388769324174678572231380971500635072062495554629998220996696836462962757337781375219812326632856037837561186103331894549462454783540718528991347078468854386032813636904364932039113422034197776989581180837415137436850779190946094155637630694455246575926026545442683294355127884797723172217890771401957494626475607631278623647679126267143185565305235333447214500650637848287285364233069013269304125258939419556623703432679841866948912637986640048848703679130471569845587653697873546597628060197001685546973685489970737584454499568734986640067166013286171490620100400950505210945046563085900717242552497148961724958017363943739732881934341198714995566435435946109696459773175937192639619932243206283273846711620006733757880220086203143345560926067082135378510669414150257371469882914703932992954798393182267687515648109892887987737867415125319416975933336730142568608052436146917931402768748739847025500076322898796003569075573846694301554267913184228050175146468645385240936273246045126312163479457054272002488232081098531957561353981095901327113906297985072538720662934784655305396492111879385886520109787133063794478057321791486374726091935617602744038686279603787660253466297795072120290419532619196990632359688148305117941936872949899449759819344760794999436548767240263023175029073519631971195806666136870070004013909328680102746150531329556923537411286119499571600157999088586746498767038685637871857437201278121553848850080167133288282795987897618562106687756016083991192129938054325292524105099421530482002931897929968731243053011854132760291753364581469536773962238852303384213002564283599431934397378048794164988094379532614470383059803568785323711358818180635781694318773889785103141124282063744446267133669935761435146192167235007993208826261360530236309370585600461058686406803232898062965909702579778086887690863357313394647515781889792659858377450444719366100093013843288913092875991238250373743938119724850421900535697462273660983853533185943352815076885692301109962314949487075938689052180030545796586116170637917661200699060944828789652097485595540523435913659472756105898176343098007218095769700739972221116017334205407361790324536674259879648033649846821372899939576424192225868659761170544395297420101302674929356787832720509589544608543111511227565243235699919902646829077384093784693247217753182858742723566280883813883129167317726604817216330254612303388176541880524325382935091166204049513961233622324608128299499952677848694195321078640814288546848983206326110825806259128023037318912420251282549899084320190027347066268118065148464917478818418256394508212106038452056975251348001004234407924759087293274823826040000398434951444879137635177160082531217708040535276785189535024228262721913383933301555977690656143067881692092619970704508601886754678700516927835974160346185162614265249110907467152674837816644127872976621886646783681738741611152874117566211906867304243652423102683540756961955790258707019704206693189415928017436098415826989496829563855822857209652334659347291157455359857216166716607732600573574726336945214363414501258507294661211438430840059851835504305408664740881053510797326867409437597141330985243257490777029650392681230647501898451724933973618290896681441820815755399124808357116375135232305782187861130352649932780093130850148873873544773158472032749765192302593812868480290522577937539515639797274488579485180584376897423649019079518853585689393567404311055001671699562925153396289311733824314109566628792866693576342501844545651767227259987638615839325597489085536420472898888321976801700682854670544110558296211084906460425380669525397379398855928109358264942915339303834617261890420806380813878730965803935181626977041701297642407018453346225827810394891796787544018002528780649152058192083539411000444746794428136088271647646404998573962388830999385015126776106590582028441843691609053382217015688367192097142242641891017160831561919927395423768678608223117334966306782973208150025578264885306519177969238460340331848259909897228447260339913619442501843772301893006577629280992923154357995141318024335050176358703531746799859983658323823475667678573791304556697645674180960838715416721896256909673688605704522669888739378909960146488050818362389754189346706142476065749565053040900143614546631474283916268156819083448434214472850059245145181083112835661589960035835580218621078104007902754884715369651205304253964360862290318965818257963232364940260506968168945056625072576453188079068550896087343391463214551808864974729461249928104755513852196503601307992377661107578878198956369182460026329300216730573561559260858169883408632548272536364374164999597518536065108005491641559952774796789498374657321217526027384849184237521445782506141409413889792630315485885790724013838219510816332802055029555852914050946192790597511008182495030967732729428559727873974032313442428062376473136342324515777766058234662640273036491829827718857685082811442584241003332365196786634783907108738430808589823339591580217206058098517100078609655563518523975702280398943041126878739030765580226086378196458511734268206262658136783748856433498998989340560857142300288340397234871462847005077308866611176857808492711318569918379808295197702626242081188590163755570991585358982383045838775773167200996548356771818705886812164284899406992589432667577447738434821852247870745255847281179121523660061824331116876691518234525030576917446424470695941027093619893324101022877285950847588432150161706008227622354499405229708840574056829416431730992440253964313692894982575428446301624906827088585385229553400905767453507218748881139862481451789672261575619209572960238451063358978440175815535039425386705948442852862730074921094181232165832391445385958648496223567324089959453234411303828793370153600828938888239105877629732294951163304642563632973898974746518914626820187900859074436205268805952158442003797524783594566574223258398617476910114799696754686906197217217825434676006086071862492385662870902543605457142817466520354275607273294197551945661788672283098355835153218538617172099821916665437311151162607786350482212827651827601136584966296678389672873173684583364116020061083373844709077249656967741633524408471631053911866823651547718304541221509208551930798388376130604440525755948937461930547634334418395640461102250811371724119675285419093855248251467392730777876960864642833792484811954963114115246537714568163456033181247193411914780242939358943840295533524382939817524754073908652609142232191235582478999595241585044125033899222160192203481594635739519502748817716053465695485203549261329495737788613373282284571652050252035904253364424794219063880440821816368403725683548917542293498562195859193266070505640327194522706596408397904694894009794312686115447262159143101321015340313395075115125157124174867410220037737527474974118825341949335060066481244361680173899339572495071836015511655143133190711123429567097133603493495450028945027317611267091146416677733844327265815061308729486954929930660962313883485765800369815573449972549685810599315229866637114576708987633140303371769842472857809109454943177517862885698033438363445868821735840508282538581941799392290244218214846950920549776569755073300455322939314489726522098172456863054504689759258760834570566906828994675235136150268942495290489256131796684696629432926463505059272539568554893119042767710086233540289925310455043384048316631027243908702876310808136367673619994103343892879891040590972543096048031654076430849630292336724950804230985477939125773379138710497460799743347325774297321025863852193015548493514182230809046470459095855303160776395265401868446397895027166531686401751773198530330499722594238877849510038821228376838647615394020934047691858294476488343383232967799437362167796109094384753786483947884093449715031758076740488519549096232401692950145734244156568866327921903030080383917864152403407887932694392549535982039650923263095350513857893071544827231311877072950127849033055153546968195662750191096056844404213029162774372708586338122814577721957063871487658827155512324246262045923711336334491085453644782659825737972658075904487282507021117541834745492433936599985068670752807193185042028285318347127965933684340201579118774806398798164589096303700514388246527318926688023181663465208150935894959557251802871678907274300778883354373680075728664476509416197216263020397267945195724303862431968647496721782979693260497550928699201159394109405375948819913867267112998302844899173972080908040151655464529918198801031692737250568908174875709040932593021247556289946439708126686594708547928373576920845676434073287715937579080246767094811580571666741606249021897683933761907776584236132711170627299744690972614476367931430531624034493136926832360564002889601706681548989689531537714961676370596161696342209197913957499112024614692823868763737620836959461667100476026587049567632580013242253063766909844641265923173012288596616117520303984293815639633218320828141860454898186612255174024011704021015341636271944856076101141600733692566599326750392409162083940381100463174747453866971221050198777749040876756499360828365390346860029488453499292937136782372125249802310587448642411368772421644716310376742265711320444849847429538790897581754299589868704726676029080324486691358851619863790330002557744521175684996023169414419875325417667282787065746980224667821827329834131246306639903875779048061474584544046302288896900487270592729203074871511360758007553772382311556268041536813237914596237748827074127339804510462085119100157445007203221715447242105322261668750432112949223680227209127627766359385626970130412357805308740472873949759277994291852737184281886649590910541513999368735256630927229316869122995136776481403158927406027675662901150260689458070400734031318566082470335341809203220334538996072768199666384911053429343739344554636322874270812655481091280450672840873211215268044063741015960126752023925741937582501664647410622775797353116662906610578501486744169609626477049811469849702292071479091751774755459852815746515306475871052554096700491039549915275314088605530077081234876207881002583910386567412600492005949154615376966587946960224476115282673819865659159127257365657293664730719953228842069975669287380270395984540294832344296761598438257432726745906127838099143581086575906088262105422198821544870986896020772179230851143327203939736643751417094841469178313004570674391556627301759587159810134547637450667530129764462908781023718810795120919470948215063604292482226162620774943492771297626349762646934746255630206755548763976755053738036536005210778400726494842804233717833850588399429669525004275320987398971570114886589547838964275991011102893500335993857542500008296051338822532858232380798412025739279212568022492266626855162232542171166197387179473871861480365928256964930633663883276785715114731660974562260462519928443245954929903447949955161253167107270787288456076352102489853519495254288116397216128315073129344433926324671477662810209962796625684451716584123969729785142156849827304255836799789032620748586950599803618042112548802306474395410014842681045418268534341234412771086025227354861954048351887866220228108138462111925113901510902658356066578807015713218396622190975182919538484392450939289377013378246253519610369309996636436185234447510914473645277955112561316520078024551545576896995358403247180013932613745793070353519727140533325339386239860729395293704041803390292184841243797264638826201822773571187804247276635056347962280699512295943514601110106779442557706379138921025112635061805551345641335409112491068927950478302202543490556705086252572808253334715228525286271554541696458569213849601390914601606165617869080510528921823778022367742365574446665546531298654840476536107237422193430168030552659188055816889558568414241132609521822871325343770389257576215904098930390891377838474615853659994366059125762504706765784343252659188958033849163763235135080981976567055467751678899838617058846534010938640033833929347400746039213080823209274893233127377055863214062842107013837588897037561775369539666663133542422900516891458032432170564072298065400552819086823534584263077501259840120349496471388529477408231407897153768158564610259033729364561185664894642380829758175731680112905944036157013155090669682330858538373113994845463945627274585209831628593254978098165852748617643658767369050047173532067064023327239528849508127002241653472394429463118117431403568484141210064914448942215502684050970285552744880427173568413630118063161000667322309190626867111168760034409014201506398168483788863095668817848180570178325765907681654783643979982584353606182002904872534408834088820044178202707879938348635716357822818630537267840577366509643122587540656772035297369738816531577254450437773766846714173328932321292623813410775251935169881035708636314199996621190722564599577553049502441039071709919064914990574032074987883071673220009954903544943391188200322734010082281542711490189141998905286220712319628828584652704996167784234097475650940348533319176429365421312311866494252084513670338268916857158723178075152755851157145381166119616581669895255880656431716042449702158705046809608616677536142123524134034353079159826933136481697063429580822525270797833772025167956161147550261440252576507534867072183388902722806672105905345181923443307406865085372090857753059647519277792267543442374890428192359176014044288956942743225107716794881414193085679778736427128046026562366657761600979071261524961474208810036421228183830144433030659375123226385540111087105169557808528225947428651848901388655143472934014472178727004505417244859964475686766264593241434501241123175967273971904868317314733861543831921052182819083453965011049065008878011147859026712885291216847545279247688962050648588817118837358399480115085544214329568289615321970371783208182642048037087648325567436902300170624623537509427791462865096816655549006815541987028431713958433425730082341848351535969857455651372775814524126395936279034677896380999469212717020542395418669723041198623489880260368794566333687667256915008330877796213444798001917731663817242933097736731018426162146420998454883566999537856346929469404093114894621656065762462336099817377675323857856210213593079847921856537222385476670815766503474393860439320809946489565043938577135176482977223340922379460953732908063065801040308962101776979458176851869510286109129113399867383426519496549802911899046039930852749527080546035369645636279272836509582855836649223738597504490696951790063412683697293081227134680646893026638537668588496189636362849864907174880462042770808598582127278247540884118421621970882918426002469500473902058997870013720120001142768267392456559192920660118089934004882414101457384799136765829420466958040778404957789371387723011754940007945773317779658995941332224436815218114154302104330539080910564143394476987605889406201508508220397176090640293553462588845192018067489947601896620477759414569605634454676418596716445412028146661917231263817121623539819322875342372124644456740064338594942812786975206246240705348596449505231034124662335962062778729414601298019056239091367567052747254220555377276317782257155542179743901608976887648621168298155281513738983017790331844321461665515969874832689807042238138580222708861472026184440704088889479176149543302164107653567145457364670251601180114755248742652911217967399660077269143484129110009793569085304933227354345522376296494567607529179037951299856386140481647708321676879264743701718124231483744754839854681123771616872913221691328662965550178716283464048959602999400301571172297911660742641544095607949462199225902098403850120099342598804481528461071644754308014246011439741767110460379673690227005859160566108839188382057655327543378460414192122391061696103754301413248929291912280138390495261308141361814253642745767626149896908235988961918970523554767876554757078202843821849928497231035946259321845316527927228196373010543601913172952015055848185191648468875420672343486027185022352573631356181890340304899038309515646494147988842398443027455309187498963304458637699978425970755381635145740492564316631940728791111365305630433792954720860496841627986894036507653486280574145204199600465587229407010527724071667796479687489755954650630296691188842088605636787829392287238765694796653793169928449767269321495170019396728005608840133165119582853890375594075003147937498195478380170776719766782857177828555142851151050305047285109962103417688284011884767265852055034910989572379561858054318683554701318445783904950867880914373518052767747206368907779428810895648842184448552385747297813000476287742855274754981344372775294500620444791782435175362860744235952685762308691883440957610391976939616445619561490424059630842947235074502776288110461026569083317131329923903790237707570431323860225942305101878839194115826298535683794229420992644141587149890863191030603560095835125581504919229249237575871975623963828423962033765079623479513122795110780956051373444585889519410721052207842132476544089559004083241150694598733626859268384818396400761872007555591229633794504900794890388009190729322346939306936986417435917722430227609377460519151192314222145565897362218200817406147063047010345759374365401840349785464577087363692206230665439585434274479127158810069920821368952002134307574910029537084662259300909167237083820096854623388382163512408851365166687484615348229563047370734434302592595343553532116699869975558706751197232645327258645729837922214209786864230192475300799982943290737349011902915422346227077351457140579107932420689483575463740195283439209708403287050040956827700045868411347634374924895747108961364892346554015024713240379574443721172481071080802068389976935801007625262457113429814123072593397390602178661150309807310778547852202778680667823972489390905482774548620272901400001741360923145648542795889798390775624076158651861058237010717088942432314004618687212269278443814139915776093598865305708874685480302233625784304893079566739708281290538707849346396686673150013714869355767804919538417418557214001792110376686093895287989284146555546418016441071969312403364019306703022489918140452234346856817846172786198494714309547505610604943908255010930343296016313097935013073012846252851016469414835454796240126840049422076560253732491807704143193018080666851197563908945335257694184147124314847540107483117642284473536089651432575279711936290167526649755467075168663385863149762685722146774411920577974623521965938205923080821186112070475566885877007876339843788420909720547230893001113492302736862018014413335365762636778941150595277192658654612211756558183863311311556119818749757525715765435284028571802549180658529413522532575102061756812141260660847477040344931486067381166489384297210348772550776321951291467132068308709842786072961140666186656873733301325414463184144522082557468440642779033371080159539330000853696753317053927934296116750759390042634305545308107750687149017919772684279348674923482301443746791628092550052565996520354479892936393350490095719719889878027507323329919230189084817481666154175363668916116529099918257634560778406833970847973258151030726315269326376121685553413963806919871833454764233286062267101492560769378033317154696500834557658726232502379672044870755999117218856484500621420093951021600480772280672376741798452116992520718756062913006094184579022621866819829909078444169420297886013642863331639434429003916831012283038417485915761657894470177719467165968242480305627465910899024334784283003788751284487246100835940517915966451378931735743064070857073066221155047602380501470498435559954568053780446423385491862089724677537494403771467789582463588606751293758352944836153727088403614114543177977493368151700393439249182843241187586966261536717066953782750830008702834144487336009001238328980461751655288942642499096926902400110358593630108684160453937030137912156717182903407410045230685804868339187839775331199552598494172701197086954020100246297362233596986361112337433039896396096492710134255036929167075603084388911697932930406897667789050606272117238966862841203040459898519643653497878051231278927734582089759301942312603641284351677134475619437730452685309568565534065456475257194063440754259529284989087858526018229123371915838876903192224882158968442412325865898263361497010328899163433970384905032994016228709582460925877657757976510687376891805078005998079352766841013486203037359381460612626923186444638035510171984509024114955284634394926363588643563312954733911178883468474220175006869355925361126489852264957071068038702167786341125236406388376886094035141595498697331756583572303542076432930783299092700620524944366803971062022829118968883731377680058128486219781686191552292221034742829668731810725559027539442392218999232465791852633207954514842512504050026686351947402236258292215921055151193922091026519968303107021725056432967582363441807892466016359003752525011445521240975811849526091208714844026341903319338130928257611653018571030526081076280201892602344145418483914793313848726905535157444464673275329134358997014304845736759717926632844199984463098603068410689659777615623516403932206375080060688537205018963459184789279800786954314421033455408139444704748728428232151900334609183571027019540323472032880758298829164614732532265188678879525840374392290659034933017829139696773302152570026964852916690576408442006631930028372661968335006185452160275375355978728743860869255335036905983162563119161505124159753713330559095959511661255237855925982816101056777521241704126163343890708140710632562977229905356526467273549556882052301259754821994481952788154473889768383525572790199333588398762816105311236727472834736164232580188626459288646841920041816423776088641532223899373032051989779128289780028042990157788326645055014399951037293924044974366814174825340635335186357629204481443463299383896850936524009023067432952809199098298460930769044650163465011417821256439728982691390344804923911174482087148789434837720716184773982373231181870262045162567096408350481422190030415889060526951846667511935673299439405561196976256638660192783186983409518283428174736949268603980020860005402685673747870004613771861384047668697601988442711314776734608397679654600040408466714015851519589976052776446959577475715079870829100194351903954150513556700152762278432612651132701724692250694388106916201478194107233060788640954510043870782937896329024711956899620590851229933250671178471340882804026933148213263622749594211876626231681828212783581254631933192983396623390993192364525712801948245140144253526260903958027704936905669539499443063497491256881699777111288602031522927933066680484606037741689751950634198071434654793677706801705450777731149820788511951401223826528241949609197951441735842880289255472242727803600770328826265753160365805037295055082318084556005514040462041704514201302458027801979098332292305375499194925196886533421789307574894028073761280170341183993127293725308376397572105710636034700876818424182698245147685839817182611720522504323232050302398477201915289397863946645082651999085934650308713099557006474839760808206126693688947733697708925347416269856815192257314694393650353748119944806774642637369579608270729584244882904181096445503429094035583994600238458427774973249447436323869217265885201331941974219042141360944812032466277749829606015544899435831562507959373678413713701129925969181004711245276276808508051070281782667268521836168578772850841602043758658636864165129522361915836754027039213709556368337574475271571390068025298826197229199666254973971421794333583270691405851357123688001560300238851671032150304422999663691098513141477784411038437810693967177762948073519745493603775706725723177523870647995154149440140731756982456602503187183843825020512668759912357053871090431750715887212279066542171976027345292857997270892454976941124633381741333047962048081963161803686478265300090328747095768732522451648172847878869550348302562242692609762381502131065591806747875337542591363943002406256457759387794067403179309983700924301871802141396819136019372117613662515389682105102493962805278018406656636923392351567949384383396835607593087679367694059628688114455635528774071133904751620480437920362323075217968594732626117842305667165716152073508183827232522351655795895798150368776218084898886976165821077541032764893162592026569960107961663181595273033303770092779115237842900309143628092505713160287115530520018021762430588434257328172138992436008798919654558306800385134387259087560623445703253008441716328697256439956371407830617925832230525312667448869506673336683428370683549255401369737375945629525947846249302907942855657579636362354854966067307735506320349212583112775922029355537985570670634121531778922614580750233661396758104248617926715092062360938490071571802065719548579367210980171347756238815821519794112410533023922660133383755875248822053474783222467078987266557080830743516898944281837257449194315454889459958510826994158074085487245985719620596821852451393225908725214159674135683303572470166435969343720868642871263106903311131140947622882657960784519619666200515467673891822448169167836747352168300953627098630494302554897690061140652221273070046062082572831273545786181662308356789574443232918501935133703709875841457496468789300829086413435122793563782989181831149374725093408532663147637662960472967379079194559686485427977868062832764177799735236821565767318087277594288763821762006141015399520365987369358328757497667299329244955244351037096825713785124551798218971945023207532313376093319091538793403723807132321948130168792841655648285881871376577869438446196449301597175389980234425091636549770894996749119903916711173210771304527386663748390031114220969822170065440862436967673700611373953572001165956312427179535723276959569534927874952147418427453390462809797622607476084144708919383710628279486029107317422728661552724805690332580297898026913765798680460845506343588104397424045814586199346244608643464545734288227249464038861189606242804107838663369729262006768938407823230701082506565641307182324671893559713993207531886617084988727634224837356832537143630130125557000182152500003929653168013798020644010738281056945205282358171281967553665100580174996329749049291159059102985017435592056562233165481021119056284998830104321267377322131636387907118004901420812351502108753625017463070376189387173129975933504948057422343650297967608711238475341284031548828644681502572419144655683268668157243626620576614342262034464073425331643155406456132840174052642256546228818213154893921491823441444801609552689783168288097195837596951813064018753935551123107554400312824241708416334482555879724758854528864170173954423646876890779682318856741314416736069781610386697747587216421481912102076959594610936600503480480228822786275323787550164502632138086561716064663814696814786008492990678317408257546045850948023739193330124892456559745680602498135666826498807976491207021867977759342018418678413429415276332398869230970798271930872182193188987528274072618292191545139171653957314041665952263437306918261432595640093218539397967139723001660072800680434822005269803271610891223635934294949023785416246747771635899475107522247945449755425159974449645031407207589495127678678344202473395912030107876934648541519092782209643378352354655269073133062607356274467218045629633500259029431446267142932210471213426262856726933619185458871952552170550427632122597770556336293103136016858283736730854680051086515047998173489153315478833756662956651611787726168904407779740673425800290148542283976339143916912556400773085440400960173300601854448704335711807171398075312450559441017408037254668083510137986446671821705977213301089314132691612216189057446461627278421313433732831858102024336951410317234909617697879149661442840688569183546568318551455673281993680581345676792927072429526616790601018293685746843943743327105903970344602825913107220865329696623362813614668640860002530296190212235878568515837463903842354644785392513591529103409435570915083339842998642853210475538476092924238434801355845562146085723849042841052639240233980958801522460100405072620552419494395218144371800925042718468623272282821750843243297917662639959399133755072423875453905380070395624128991787544212371660166183915279005311228095307256230878929643304311534653070108506095787283723478971748659117945311610474136104658653242173928039975441429003253773905384650548002641040931851419340643143623705157238847272179026055954242287305655154790950772915577296361889036308408628623041061249378892414850303871882438372715221125200644328931022170227967148617082277494399020915902797008278128740602941278976114103650685892596758310290895291127701480944385300518660022689317845368344950694589910371003784793834963706687147735704243938324610884835436220012651531901299353479276159348840316590874047330604749729512907727672196248150707992959199925326187935915808246861942316146735478397655468530746807819433608397704759055640340016006598415414887471974569392730497897482733115402500958538517489351896771834984844353419333336615819133472502099443887720030985542178874408689934461686176799287508398922362504287130331309030909053548223081908196073479979139832177530031043595013990289526428849175196742919084437072334041087160291572499217206173184503809669622459180087322513095692031891966095605761424135300423947378527882746170450725892324845756906672648815879379882549197063874463367926128951546575421979399070806868782068900063675330767066559483682565652648320666582276175144840062684010681141624459711713419745829254331102471646654529687658367779540823236652242996800668030290345865803153078762902441683755231652643141518067001804843803524291838279172836900329042472111600188229019684554972206988085974441965455712738958038344430620353096137510663206893880007864512032049623257249847035828992939031393046101838077505843804248540470087205593931285430284695613897402986026998497389387573535875391793683315103813088218332294389730410521026233720417697626314393760182273849431098560128682324975550756670850706184961943488615870200727401131581485717861002905836641416114884963072670779184157412598225779195386683246108073094004460121977361065162905028508250519264229821670959411202997587794616916214785499747121812163007688091323208777093881750134330429057084093836215587167070222354625370250653439579346092181279516278822570297548332221867518534303549371581435946459448528424472464637666770711962904259173044122884125541773654394455972776358676555658172655586427769101346272552773226152151691248531692279405134033965960385613681235971307642674465401343387981512997450528935861280257749923270406375225837387593646562698957879078640317186602600444427653705748044958832429766032870813924925770732289062970738458137074671221725100587156788803759829329132343198264346084317401089112468074863684805298689479051099579809661358887458822202209951189290206912034573416984519523051253202463330578717280938467491705540596033530309841751345044965260083055430838956561992849673652577324745355782684964347360699629575721867068325312028935988620701659720043032373296269405197748366899929733981052285266550919118452056273359649441294348971434723181554899530947012870905150524728633717044752791383421578110520041572790149099560766111911887919908002430079574354162905113991635612605524114204516812285478527685409792374534231296921457192452676376219245084817279538902259968723667491195716397270755706576841323232169725610096298512056684774219981435312650420448940820468857848138335054424253589113742915563633341513359323635190616443677308959618709535372436633470083797898986296054097686541032325854524044694975297884879067716377261526396439891319792270196684876574094478944158845077279775406769252666822426824568639716081448184030541619072858559114976235080721136827788618216046337343459775815762917018931948678458687483919327568235694855745481874371628021412786666212078240501611074330056652259105524023752061071178586663509149965930124675857801572355121429553695849369745303183820381104108232772700718907252267278266851408275365614385878097053073284833880677767904600694459828337351345461635725311910394831061199135963471982441156471984628449541182218138460150487334066583765363504962508403143129839849510372168381366634762989867883594642419045563351536171072961246723588590726056190521771222666872361537924496947297547767959781833157417901768188974054983472673196384152354243211195116222726440264061307525125156025574607831056314189813885641547616053413672821551589226790852594585497710794008623003398258678441380662719809003832728162644977286179962713149590313196321596250392753994563458313791036247336823803660125651772699597861954087946389161514732362514828814014942405687065798593297133506318589947364220938344516380483432555376259850942748758305513731573220481475204973702197499878312495273149729717307651232261498212519628229412103811389433472439151137294752822376358537993017644401427242416404142302967676810385089882918150480499491011927041200066225646277480944652592680269916946485565248785727801108942592005077787467595927258224960849747891195576303090030319899650362352042528822100476058584063520780294754328609967448015711207716651850445266209710433635527547605106994669053655194195709050777977126340846613210251684488428934437646659086847631750240074763253598818390318452329097165807550017527035339089624894967115429344450918016330452276845585579438566391335771407891150755144447426373009636198760872833452671411821560346275308156452503330677130102650643971982713383751011826072134683591653184215174041002601920347182690195013377790668590515905173582252821434780993707822919040657139415400967720320671680159006774886973320684967536092746515418936228290972681204129256136273817071235799241245711360037428268436798089485498727923094684130785825723503629456327392274456162631992398370811246056321806049394123475908278726660643782972655205907600898391534030582698461905875734768647344336595164505027197819946858261517129293855085343910734049536431839610519534314167757289754680250944324153778042125274977838138499713774890993687826716061693848114917448568695898181029931846856019004432283494031270858224394179560644348595027240907577671708081989415639199132707451772964830224764299337966389087972883085537009993089145902973537366717586276722840022260320427760111711885891739585213179519856952865371492689268282269234633553307018388426472238888255585535617593125387956860780269032805196507669562327176470240255707420238042276894970599336399790292568443600460523274060949120940523913888575707751211793616630426984684791544418518794309671987879926641178068108117902813861777733028385421746532980982439320341693303506195654483320770011058913518354021057782649785780612701684218703477021910074158135267313713308648114138801958178853675114458515438885974772996811495931501870194186225407788752133760879828686470952002528375053955580695752863568731212093354317647332914459959086561715902976815402767373469654109638504888143210496588122749450353769799282634590532607439206967461276581570784542424013681178729256741331379031075536756692755031170823735638467649892422349930716079989660264476777041349558600846047463974184354743588919722334348519643037889164776608300601236282697586479409259662132007387192853168574154148757149489905662923635740772378918634712233653071936758749886480721451770626930507656818061409552844783762437305637670586545290991540851893123137845996565826942715653691890093323053242505978303525008557471550896694161767069880045364142062647038585486090539880272603017133404261031299238931673462362342020211979717096668667428533002121040864884129316518715098111304411281662845457961594082704243425349512774798074881055160584610204775391061709436354254257925249849934949271388299851959716037036292940874512417719275320245175621049577266089997417187532423943878543738558376507728327681614366667897493961038392314827997218982220405139774821036121489471155923513693551008319917438117473647210142055621250118227192012301377371037551370775100765565734480927535026884859191110757014199399986566262851199307307469417827047177154451492704208846199901925000497294187440023816401046431323590594101356439927741768669886105982857023680104625508770766028589044210989244410463064147660413820002010633894786249098797005332519701805681100723726907837792813938631041273960392999706236193403159228048565417875800385287224476683358465965484965011512989091998463209580202196888387857656877220587001763221053549781694990877297899251614687670575430330553274269727223995068374091339979268725490971843791266338136766131613317500664446828615011142777484387345792791499573072328280131925335989185146862971300336329726378706083573036753407464753221869671956666975091067324442175765751622823315957172658030281697756038898386052259337303843029979756206250768722181741545943846545139004243496204456928801024610593663591071252031419262979298672160442226803129254637382899842540839241644087043328700312434995842816174607200946595767858778823670807642402050647661512052612188857718467537263492015752468325438008033317602149218979227337827714466120842155783062437150318884936539382332689941186990892243699212332727477885775016734841948157250701301022739928303496991683319619285233913296269147899934161573865628503229272073067573978941816899221369430517075799887531630046320810792105705546897401921345999604546970109713694354767075540045151008438624049142682763340533689491823270378979971165358551944880051969788714574335886505745770234566414490856522761939880938445779349509182540990755263187862160028996978265909614941597021732744373150214269962510184463732403032690730459606108546349078934842547956803206643446363550179543463244070859046993246043946813846895541992724393699493455065501718490053411783278114547095773720000660761554859102047304433522328557958367810398268497049253374746348473810178584316641897775351920491198485208212717856185347736244603261560010513960943254282541599694124918601350788402414505416213583841342486765217473028172245201438521828316484667305971346571107718602620679594609710601294762709098669943338040175068288933771907281814987671280268604931335639293405797232781054201188115142708246385080686468683014876957654017848920910366776429818028543669120961575043371384260869679030288660605355671840896315910110870777828754690369152446755954376906484975178744032225551626215235124764375122000657123604698336721509418490890521151218629286568221327062495450540198186765885924510255666188303700085578458754763824695758913154235899370884388464184456892459574328540248125580824061874898304181549940843925529509061958330228392493470306297308981366974779093127338320309986144184274074443643402331744285949082234521082795150594154722003509251680389625962128171851205742882901425845954833717140740346935305809483660573884935907331655708025537902159025747179109335798509573750393557573595736938010018021846086954825663533189624232062500411687200025085502919929703696308757464705914172567603708421691583416454685735473987726529652404586353583330856975269757395443617307796929072352753691461364485053637454587036231414868695807583612844075351354368112272927870636417765152990991670711146306192055123668923003163629015711232393365300377134850033534133435438428857462636609235199069586740317797107765504145413260036686687422921884231799327161791121773069038343066406806175354201834361833537738010046137058013824437990968153410048771471219688040348503682993258809459273392275017715357808305862654654885687023099680473903558174643098527609214501570270667563607137695282227402973507351098779087518223090647809432774420815078870207337144159104722179971175971644575316986613320296870633068962705099100704373241649033438173233957026887142833320320583304666081752711007368745835387181136037986358515708451132980094052857240749921410799740316062112320198725370866047395555504204482493346520822971176795684822617368342311204832194791557325155524578868459886840857336402880453240868153915018251166405907202197813475813560811166414600567913388671087268532243975197931710247960460016944647649475955675576396235063328413365651684101254709501429118123736586801291736571590118135525749832416417903411314242990387161521031435846822321995275722775876905847139231984410519101082308646445606434253721480639194714205715864708069890793952012018689053132194337423425974716436387417088551678923591006483901993138062537170183647244418558433411001562421960607943444839958454878863054432556290327292618887772223040594658326691521636743113318450936481834052407404825338682066986720602741605059346682550499078838975206423218929082399358849053000997446746662435990871524595407358648185564477517821853849879445843658002624264107926855488444311880589960709018494770758056989937778867835722606586788151750515118163196865231478225601781149321123139123032474461527954988443285010650905543112655588093768721377595612579249956413360464826979318365484249251301725588796894091937195250460482038451454455575249991039422083900043083551984734258916820954423689389759866189282261207419146973213551354779522800560630935834574107999698742405380975145397044270044854675325495871596069235442382982412493737293140268552157038240300266012457448343512348635602360687443637221386921032898207451053276395645558118832737308613501953008932748656693480622434806579879973174406395066356803942623826551306262454762766729893564299477476423067987757315968802790445102347553285857787224984685049950943610859510505812373032239473758362247277106767890153050189206383298185009420470255393242701764097980711078293516102749282945222506921971837436413104263617436285363328058923816284725698037262044345739950547221002900235005204764664382371275688035131970807712599136540683801895207936886892939014736755865437976940659655348948873404544305039450929838267372678059413459452234250038522637289948741918546702659476596673673524803759615646291085837858933162143991619941348447012308852410597812639965230931793632050442731977882240474890643572909173453751045821319826149391719419361390209574844545907681676511988439082462938210808263036520056658570651599875012180081546153164815988871144019845904565087713779902478696269502877792831928967914800574116907546077453232240924908228252744836359612174899037233454927855040497593718540211323549057996507349619477101952622256506997114370767681119862472614402214351181676256751773321919719336407485040347638405195520208715528647593889654992547183978169019871051823568605412577578537418823086090232487002849874212890134693581356432694467604756902905507951947773109841459855992474701919049562578403559829537241308548203896308464360107350533699488361388393122094916749614986324536186380038750895494124719798214194872803108988672500816744762357556162263845148991531567049454563356508874357783682496386856845638747155174076568079186449583771056474369356864579067232243718041282842036846105491326186579612232351650378901237289715002424097265625612110271672492316218990261296968327468526866903823145091832868658026035586349035866836372111988234663724478005114187117665434228940197939093171329986956709610296884016440727582328463931748969634573914311222575243568501625743857245499033487520776913952230103390070116087353836011218132637169546521021503609471535142213797438782463993111257528929539897921763495411589238120401999029444514867850968618389939797669741234319474925911158584063095397273734065210422568783817147669739510860699284469662149247326002135494890279547849603236802380738168205987174569061887367617437128138047246073524699661640249197225536644834941641447070812377042153107811528943769185165538213107346839789222262780835863332256374654363792979051635338260883152000510454440289654498128755881888027288050415425672890357457075877417787492610765849267774984654978013215343325981116289244307480711126643272112671189945363366655846958881434449240295496757692889294696336615004798008989955626689082963164773881010721926130102287949128321799081188684816428286551167810232601357496000869986064088209089984826679162449085045062857135492149207877235043473695093151841273795232097225390535594324514254065746479952889438965176389886546003299019074597706872437176050703921599172934338547995553632707732883531269094776741354002320049053464195719690349666966385638075831862787059886048278690200665202188039594456894527981947861579033657971003393847500042559993562368606453400291068624856889964456590089016815306047555311002042639954974750133404007042725396567576438367329412757566489984480765052843823259317106229210875836603943930620797796121190615456887421357367940567073030320742324550455583370190249216292676866101703785753873819583327394773059878759922719786966636352444698894147505110025862672049308889857587773727827609918596846930664112613678663254189897542234181516535065632790650216024173859209163715751965498002906140037547499892683805105262835735509431742240589796576088373738681527627124498562186391888660148360732144312377694868326007408546168492202150676727073730196148282486131804212850152511282072484011123113729744492404288088308581028108809816645078253542483769916908467620995156660224841902302547509364554468681102611457717387956228103796304893430697314255442362151777277588721106198683778265720541453502332119195650438755507809316901126549957315392635802371127432799882329892814682191434445272464418069636917542066449973018055766084835240792912137622709858369800403045704917469479617409522920379375894081962674437367039769190682789341998858645642134550426645967718147550912038462594583633118268205986410663268199736278447847673747193261659618181833727674267457498678883506024357333654898461533504006175599506395111597468161875636131080783726244687450743596867134299677916914366935441595052689736091852985222224663981150232783136911197829292199396002025732515218459557224698805605716065909754283943642892900500331063387296239219143710195184358532564197452015162485764972395463457943950721110919746750456724530194876743675284358495661220941616106484048967441234764306322295155400147615333669781542663424885087933257630253133154801343676007514784762518136102665646587315542489572228399382673547855815776883438153084378172252701676317751593492586905119328734471246153219249282292906570299130789793037177209387841639632754031814371468408392005362609723364695193374713337400254247780116743139613664383079998609255398182253679036211041416525010446143009377345597905536132569713629754435256300456381899607492908147187911736211744387951942226000837783311464156589022136639027409668546565822426499862357694488133563874334693917837433556158799218761676228096453179063063744661638433118705467079090311742712369919609356527339405605066963664954758263771798086991190534258482952895887794883070296499298022249765094801067641545313121065993930682018698602646579550766973563198144290025186199024971225550736516960102158172426776079281229444903595750672066447671722802011769242251409722678152269307897675322169996887297377335865573488868831969472447362862505365358761751760794082040988410119013950304386858202980348521340462332079633567077595402013128441659091491258404626426889805312044205625927154966959228854187146057251859906517220527800818996653472694387784458692466593034464749943873839335068628474438630884592620998801438749449735720034264465016249951652930342904831661391436713842282821680717268712541403889505584968810118014383244086038604006971095316248339560385036925767718290536642357769004103427273797204467427652197417522663914404936163322998087911680521709510974293304896150114056224843805420220064524004325108123655234965190000914475257036947803186186598222499071336455179241981693953950368960302961585925874950883982479059644127792575163087739787868441048596787818358179974743458194154263205701074379132099678725926086468634972663430736108796759510707369363280494085154893902424249706778114616973118271752622332702595427964599864877415006269235424097648462720696299324014851744424219814238045660790964267984027911528756321892518248276792424880873146182754339622191411101051284855378080316058313473484704947632472636140940984019115097859357399189067399352588403084723254196315196029535591218398024954535190367943141552065495381452899613340137895760579937176561552365107202860573654152648162853517971660088195186307385648727666000527554340196799455545856566976602663832146346678370125002909969989154766309756729334444234596578636578439332227767113841437244134493041525240825049009106160595125778250630201302678442491100181232642158626371811920267184167895976152086546186763929466775178798570922204776077810027380456301813820280203962464861757402795961253233737623696643854323074174992697668379505350028397023594740508206923833783341182010989107217956649670681878557302929586003009317350474800282578639933454091984302341287839673442612736599148035411533674263057271005780268288184335153463738828222435242636594397742634135995016917922843414996773959518725474152392129342475956778573933412654169900568375728010382241785620243907835519139628829395027716394308428109977225707029260537655171615670336268209056015476114566160935872412995038183970553379563904201675782041249482848715494356995882685839177878240503561671962553344130812936155534535508429084280152464366119188797677839343310795737586167381569953574443607166446293764838961664554559961160646244803309779868631969554469957030336102917855623517544879360301940520172553762737036562659022246761854366274166585934619119166077437293922839726723785828662209383400746698245532764948617775740116018628979293112134700471719126267364981487667013803694405716220380254759583639581226978578914052674859035969877829637857537069058412594851900716916063492353172877545528104079203268071049326486815848368217114692680655998922413701447017563707585265898806756147029115463775125444793549044022491290323231940253072354174433775468984544456873194942208234547653035631506234597595555067844416460629214738489680627635861147243538311188228541089517167209563983620420088881825888113558009431851474142412265710059408712365175614855332968681138518147872976537148402587974922910296256280157655945318995968517586662183363472103621556354527319140568824358692084552284655828202208401744177284429083435460745987310261147315163537636815736134699756472535740381191697085319823233619020872390763634016133633554464668503235668367906284217899362092356248613248500802662787740724646557625460303452920588600677397660608877380434373835870384488506158251727740738611002651201517799185233657309432520362523021173275209236263452512820346260470667943752456074150572046338570904587453228790486678272975024056119032350371165406735347691765910264380926190453509942858565230722897926277241575725369620631066637444087605073329318518908891059753082550214713483429200869097970106861179897031951083136260865519917442413290927376301984180161267994895207456919619808072398515854021868409104911587433249883430471906352028744301340929745769165765244402040226239056087102035894621665009794633192627373220918020910493108291315333326295825910533183607447504810373737466017846086949392675355430418560684827352219507186225684625621920108271151242780370268783691559343289674424160367620159005014375226289129953249853655074536202675371113216407680637643353577777426718780382544707815467654231830144130062356532835406108465422281198123481285624563475188263271482998271755915010277564134434521980999084030454524925347964672903479627033290502474833059393842018710049436634625080048516912152882300796076402459513169237372807997665202374572103520397512097801799362477657992238242894215981430038598621809094493215802291047011421325373611093409109490171781187818804225265374646703536367963329125463263617299518624901941193564086198621010211016493741794915839506126432549861062432301536515589784531194754457057698787946367122947808259123717941163880972819075100272020030344752645471867659702253955435410605910777411129952020025188869584948439954285953207124333671846585998330363681760005767687659223174158873985204977048152653963734445920689727620396882602082962536967051041626833103556865654516737486518057728053316637358303294775663992365050730203992224402287901891497162586889106723729515138964626560666667082808215222503802532774742362049227364400080626135874968736693362715999198122998040506526092820679292416524847616309503686318615440813422123896606848836751246022225890277284009148397399892368886658539703873196767140300252787611103192552329204797166856699866087112761812620867510677167142760484635209619962076158629262222611018610005886389995532464183441962625613408757973683355054364935507997549609264533175449559193091264622078771919850031729302534843373042037139397537793594171527940985981773876872794006000808141050836314280046432177822777629911325205259650370739007250418352247727501389908367057280102280600937086854847503381036836516660792408065002305542122428613541330192317098457205828474336282281947553106322054985217552027234055387674948810990619917791686765734232237011798611545079271354248129422627541923176930618296430482317445143521235193314632050539561852260521848321167652960689230999190344410387400512847770505553713732654218992942525347560406548534087757918104051101972431806040189904095690547989457542784100324370216200763536169049947794125416001194883534197505215674896404806415078606331102751414295239571219076797931348450769511185545468771385532379016481329361227426718784903505258634376385772313650724196053202722838550092381246287852777721247056848350935414070654036381222455670767153787504014274962446980928911266292517208656895437392659267771203930036446078567564011092892947038181117323165133831445016081540140322687989806846146241741118240591239085956260029737589626996485708828149785109383389987835016171630790106271208816604445997910333834548308902394254984894154577805132307293208306623077875783406248999681175320015904395423570234775469045485408174626806818292092778992916442465503200436450950643342836541208682094773627911288395235369835818090857689820263885948609702028034970901874414008439792881564678606325470853915872574194837211611189108874889996959632210700382456889514047914904102673304620584432895792836957096053244696326276006723923322023708626092465538354218339433083737924359077261803676140650266608570634225389513547084074449176586218148995577024050754907374800629714088198933693673465034429131091176988568487353555415350040895036404861488612549587708837049524058081376483691110262522164871849597738460779077736619581674642738510717937841177450358563162399802433193275536290950872721102180876160257714511204309058701626125509122600357835333852991443293459815217210656015881504139777388155576870195716717369109364779572696092756522094709434250243654002214294679368862426524024903679697809687424241740490976039318894353266365619447720206952086465364310736497626277692964252007117691768119531251661457948668555807758256364466609488055681394712655650757570489653892502777872234005805031248673890296232318590011285957886085626389520786435307006382194593520515404440026062499447242061053547975104577843050697291955770151146719323463682506599835442831286986559324487154182761916153298365989741125693226729672946325338117038753359774046418408777877067076671200464877681494518085303130431402979619064319996068712035193024849815904507427674991187300469903688977819825284873804337631065528336056257225954862351949155340222245067724823419078826941973035372912471873216518303931047660004482537135266478091956145912660318770892303104901280659517003745573916639275775740343689286794677086590074645423666230071171338082472800790688184509566130929205049553704918912152529049687193769396380999210366369431795646890731167279527027764516023458717664269611526969443925209098042251074783376576850547351547881941967204850967707200085009732238495825811466619499249477407091965802090357327089359263417796693840103223453857828115484048752957969295372174340251611781897501064596271129900020259036304333202164207931277490709314972279903684509544001381167436952273354880395830812437376688846852245259345698045342166653441125458398673842328154786459643556301219328717054888746472394963145741101766662740737669073785628487390328191342256480486264716726391725739026600356830316056552364057204269542416567938855851021983129719936662118458440242623080655976015010841430694393765877115029199240234278204219939459255157405829726491247787583784047293607378963733311373493290543092191485314650514740703293983329564654534420854713676823326742394469295634511756294491462006037744486471390599456599476743394852432488695368518638297825614712659725306321333551683366230360076358900182328412592065057632673703063277304678963320446023455936125415848692699464030670471579808210853699137675900601770724106700202217937636698536630484076004265189434243975512685434513784520474974172496802787298389244706109343995381174231941611620996898414356279499210289684796177737389593158533857233866330831237580776256149920199370421948365113980247170920995788803689757238014150532539538942221608347236806132078786650012470517128605290947141065474835932825440923433478623123442051453519922292852584347597966587626610278025743749024458609518680884599874183727309356632954026168522501300123223506813929788158037721479231755565206402269314286525044067608987184855025334556729193577971626297953863685387122738909648924450212133631796981796528442519618650715779317907308596080336095702751280224217697195354056286339666999081214494676422772146746622097269746532200560488405763284108205105784603945218918136359717644899173052196694865267047280522674006893164858384311843668643753107592954763160894250307561714697863620731066864737698220043423137786179345446129085943961739564350548028901919525474541724442735003768424136049007154909868668008349079575835738057189076650268136643900008323773872649193179148225646762068034841239514575207582254126486268702836021453237825970307213793394654196273857249677594343320889783383980416900986283625223738202901803837189849376458745045030054619711964372411734739175859218396007854846697721302865106600938504792984107963764042133094157959071398541200286653144716125392004609495404558248452188781964245825452158486049592972787948208585467824884048584520422317305897503289860585719546076514201741523653142993578910350350716352282617023652595196913132863190350680481491544343306942381884168390980275175844954814887153740457451737613527038248253087324727426867548282206258716488245896643122899595049840011989489720563089680101050162932094251911155786478651740037927213669444292437261063451096029507300364829474014053493938892203298977498855937703320112941107202807831848521693571277655226672092167780654823491059772670953185395380448831991197022387732865352182112356274932696775453215794145161935128058643934589614535708507627481548318561228867408760016897201924684955020453811972791714581488934332652611302265188928358219602271192453953504800763315572247470333814622534005809883942016954857018132184462658218133991137272745113440573447113425990164424959533837755514161398125999689318176442814938785588876383931322871595937308549474731630989840461842918004407914879296964663499408079110837035158236969547150117375440384516758334367058807525798887331767592009866949378177925428804089890889255928715782166341290773282662849497526706403307317742965934203116016003468934339369931989344683443022082601275788857717699151191973136873344644945969152658556567061271935558453236713729788139762250350991872723752518696238873490896531110435180132404674425403556097930540416228773332514901081137314998612679826391266588031437911697540820737764356773079558163565517492234941080032585973503799623052664978715023664483386286685707506128024969813283526985194757152505535166854854769966888278354751875354392200183830816698312518224245230533314473981981837659536418739199215233121390584561624335097940176983330379782477648427925006143981631594116918886572788448397873150351772743097367183199539808649380916458885847174166012939577850508913821714597319734706586548031947737369731090494728347088690713320892844819882850528378392315995596223771398196927423807593182991940780483779328138341534330290317049607834988464549810024587252798420312968310980307234037710826170473213213551448178627022179413994862156062583144094191759762338005766584852036631003517752156678743810234166590108429540642166093114628990335052878893860026280712577252337887045132039327670650339476073678083798173200697203203296891457375835119841063046069756653840776588092591333488551526039453936161932695313559373769277484730794528312620434059935972380845210846368604017835753683274741529723584176436100602383643356278314205517614219451842036822033272109070609603513071175117629287414006308263815766116850496434702456270290165028254220775497994890841936407271549330001024169139730760269600545419783452902479377837768821558696052623591602524759988555184445724394216080225323146436937466852155643539950556160643781427222103809630178261408189382483944739028751270535113545083552433409405574162390662183346499273682565657875510123559041585709142458514079725423618987415420705168491174265879926500360883016653135103315403747406554309945333334695612840247122590813333070557209336663660572960216854910773311790015037150035159705756602386460564079361086732942110818610699420201976722473903029389954828533686589356455039883251383334562895714006767570916748997538663963222984588245595105124721591027275311479731096075360057504110593705377227355663267274055268193769885958611886827403585779719451275580516796440764193024208458024162907959536782277944752518155733447094235638635191054391912784671080564831921068095653680007565717641009275379395191123623080283412628072725945321180929197965644178870509930101898282008661762196474601759104078278418720415481528118890193504020657565123756570908539511123863221611569098030372754377434640730092828041069196904000697103427144868732753405971647772910453916513242086587790035766100914027814152535307234837163550500343118944171146204897289187255456572043890717650014576645544893282632762690774227287535610274209727938501207943284937430815233778497058988610668874857674098748366518461654058763177405809330004450004503431634021724589658133302922860585170397992714968739678498670416374858883267664359306387496624748838142059026874817736004817417188953677283216315604509944501934601077948396850638098412824530217873967507258789660392296848398962959723516249345581742168364897179276784655571408308540012768157853579819164822800109772492731287400187858651585242508020411090035106963542799916489345325525721159670670514736782826966360203701341132123994148852806220279012871142271448074031898090172484053475502399162200078643692051250125012875093583895762971747722693705478334475683877072629114361660124023133385400237802391496643006795881371001005262821630941100272539813455143893947825748066683683156311047902615133346964510004967646162733705532601492350854527720748056401621042415529996906509381644056432294060910715535051078300371042156141778898802216905340001584972437514308224985502476699445730879136576554759087784500339051970008427496930928962382881881984996590310616727644065949356444033614725955505042770927668220580540199924477340615800311820150700862337803211573587463194890820418387155380583803366747196465550526365650423390748973607145694502278301524226011140937329155002529119335030444027792287813711575369704833306327743439820815049984417440293346138489689692237381139915310825198187985379681438969511622247865997531954634266843486724190743363154555707230333513701303061015535082873615704660477344370117168527205955929818841600558745991036946995974452234575493234526961255429716289227688948982068025191926850282718823482985653696661923837194493760073565883918282479101752383670288881436744571453358820676937704944791712386330530837357731375538692036743350963055569581068230790917123023600569706560986717328001210989215333766567431596172135948497196371110274372824687588769997280400552038344760981440648919196848765716373391611808105925579067727121311619452092740879775046311641832853831540297330270874668428790432864724344787505089354412292954584886006201139726278270671205361368399676749294071745960333503175773260158715577084240886289427800371720068046082018817821290757490862006344663271972187624107782966058325706369682827087777902753966338086913021963699908183430371318995334495859177106834015469127035130921757415265788718150461883212531799536215048221606847121315510266487435007057444402887962469864167143708566087812651003779899926929109189125996443129195154588421267144317647937864024044621653948442156006663827653011044559727921136212036782201100178264568531126132860730545944907800680511273577291529797200957740969886576178419769863639052837306771258075369763907577246434740594532615621527549848818846145701373229447529250483590816448591649685357359897268786290847689660160869343060843441088545252033492425228968775818887474624443095103964355466403082165513887696237747024055530062206810191331350334956946573597171036252229069036784114367096172313807739139818099984169664463994106363847320737220974719822666876950128077142445318693885691413918147814401485382923426281329070697584877983583521934974294123928487786711956858268908305140663325559344560768712794676632753003480159465099549334907001015062308947859802401679196944241061826831143160502557327470018588492361877537804489155633461135607804254529093077876188669033556991851776248661468063207145003878909467148270027532265741091504980116781862176866323700440380769001323230796973912702956664813210048319511135520438881601134102670578970750031583264124630386155915447353998762979016927029883468614329402152787806935256147107118930365464689608459038867688326482260873413201769397430899382603925784681990520791087891717108405709768513773293870625161925367008753349248078477975744231506647644550964863745835252229268602708395749968754213432004135987308547521956495513467177084999413019583653721239946811796553931136867987354673333159264980268692375230830591958162536421763699515676362957014826932457190592439991324989499523512083988501609984584673076671810775531899527562928600456379943475284861032179504291541317544311108512072599588730768766395397317942615164727820901405361331076075386251403280831980655207463244785056658986103008425750541549722580703549747370122743994088388018400475389088449962151746677407957286343875821552288283249172567987930928893290216665267837716806878345043838263966550520155837528436908500751055290219802421583222887493882408767083210870226198091827953066960821859390109908419687290914765797361177070500875436916725660166845899312439813795231096331949937974200552979446627146251236876994845669358909920057371248983769296076646311376738816270696378258979732053085434663691716986165377484904891009439200962421912139238440754151605316264586941490808006740003154739439919878844114007396894636720167337318801674232064308738603796186968566153533778122893055333093581249832916757673888551376017663040008431331267570743627834074200086736234972949170897258119560820122798545420020278686375049279018699711803051828110140000809182043291626305725277322438545612913831633675351787623833615138081687659502425334434963439685788990972571819983195381850132562758070600457741515241254721364271477653665554379158057586514175799465044467655357755237723945351799305707609008921383598903822395478024865057975599144601299801094422573738250089288204923911661854967086496873637418318408930297155161003584883513295575432757907450357061955549390225671484831125497348605287680030811645627899821148530963296210889579832983970235361291936164516391127658830267435659314293649955030868765959495346974254921731352236832401609656990378878926838671969643510632231911062705094078639843567413499868965094999060648967275805927481816778295333334357243646400093805663852513862174237557880290901820074283203400755960360807089868066964396114778364206303876268610859769110784454516676809027250237769627105438182606486166354938371973375812986373383210617644792188283165434854369473356508480585254876261380379524951926848938495987340443755611060834365779663193737525860374434901401484813352141063686651660606355981376816946905109529098992241211814358804372846626672063188456130564733003663485603205163990017445675256227297631999410262904247816599800253403065066381475043995032135132069150391703364971394577572263570839388503535234297595228031376925588815578718087189843114723107096021665790899620274543998857513622481431426656543721708257644300919084213180013341418341944976682045274873228822535697028268480144197162585310150624910362151469638728636336560267561174781422126591242676788498702187727854595991892248413192538340395705733429080090183359943326151640580242627201853792609396118871712216475983419527576920811525031944177696645047998916694138364189885298134480190876689724252679112250295798435166695537308871426387654467371294806520622430639466445214997530602489658294718154080171205934618699976296597936219813376730007112327155104457964170590414342939021608211923795831887603692354432038198272424691793945616525764150333098748792412405498700156033164345792532749119460703971393034798434418489900602066851052382220680470837740040409548662095800815462890209747670847846235697095494263394746174153902612063869147247124261980398293649584076468867297904424927220237626639920647240159076710035244762383136021221886967682827033235206220227432133620582188358974679295798210546186944406862543467957708700176337791075011273693309724924263101610412633946633312212148154285886427566267098477064840169219645698225935636327908408393402728024271268079611079907226672696679087580362459755353409573122891451408209344658872803882235369352193718650220875078616040715283105047606863123492379243832263775664002584970824089002101465343063222467946649509009495236256020710880372082649008466324776701970381892070109978933680602238022668391019775590410097592099765190142646362501362545925068713941127693662774575445056643669429793634808372411913439145211651267536418190754819636793340265225721751642548751771610826285299482607193763612607715407372441277072008589163782400957421682426069768019889051870440245738625547045275845839159731815479297775861165113121420712490658604277272620667627238230572346994691064973068844728302335353253038434254504093807853537638308486553492423069230652643400458190532255155663601421252925420380625134042344697778132694479173739052811007533921445200128031797665902054297254403674058143049483427232948003991133778933045495262842253049049914148646553521870564631023495532397763033941251301246501329466862195191684454751507213520706486308519963668724301938233695608162852045202771603981739585684627232516129242189696246040846768706989576907412415154008409275674488913632366159931936346158461112790156494132010332545677812172970886139972384823281259868108137128378055360049474978050996526823249300035465557699968395780235610790874932129690264975591848323642803665523806604531181201012590370258247368828924320011534860428441310016196548039157719784292454948233933344314904667153137589323847179562356401958932482411636421642563542928958513502375836204433662273428077361737346227340114834397656485253353249759586310975522286750812314776730101364014790902418625863011911894932832147447318888138823422578467001072877006940927198866398403628295696391360951068054796873171648550290599429484665468260573373703858718865873860243535881631190915493883297337609386704405205994128658726866142279222392148034408979831163638675324056257853936838068269310222279438189785159173446886425994009530194934099731846349137467956047370717401319408744982226836895025790233127090592591987331005147404855210080158849320216231232695061826730985284300167115185605509946375726202694023087549658942708448597205696555557771248716279645754129190441131714891118755186761842340628132480693573334034977202131486820499054849409258380490095689765223083967951379116357457253737911167260169707287627210688146862421897418107977880292714250942858246330791317870946401985402598191730724410129041448149771529315965930833480900712640641459124417514805899743729239399413856836620634030593661360174078108751990790609870847652926017991002372705864755178843069794121610263237163649915440151019455559642700796259942943576749608434686650011943043681282236344088004790528861504212717092404399709409427419215023897661314364803164961281094524771858119722802903046109470039852176727523536777569670092859478226904559736634299188783535239926776130115942151960475810575069218017171980945748205479142672145065581573966865153925732319528101563273252982826418146825109520952877240729072913250497260381669257137422747182706172153544421470546815765340623158114401128136198690871148150980516204860968289852447357835928168845674209978229133730208745947851531978805721145086002471542332379375457688324647663397325587970639308066697210637669010506413559164322001933034569158606165396792463357174676640994178231085269335024782777164566569094024832890781539013651587780658814555325851380994025819261629047152215697962603361892409486269539118865129542383298988489399847518102329111633390259659769469296278794133647147059610362849877036077464389442568910304938943194936596955979757908177431523723719289955379923303118933540678785434609932242419062710320647539221692254277987375912635323039846678764066198970956954801194722031979561522951873352317902064139592157467723347991929638649314502914443073653039804027173971344561750418754221910957650545118975531289819224570353623578449531960926151761578546815635339932439126218886116705791880720736680228338049499278744755045802111440184416393009118981289196536311694808522641542118865073191700445488407522115011005293503679474443116836612113456091165428484768935358886636014118487902384959672912434510849427989577386323378966925348336890226590249916229613171475672511615035346774019531176261508588761629890742064384951384917834142905838081784287851138688139094873089811028387423458382821845588160839009736215409774480601545297482673730943871801915516756677171223059000967124176069696570751499324851904846712846354707295657229725778471493745198599926048749687756855752451064982896376548830965856620534069029099245782603125404006212334402726111359188180488796074913994088090613762077081443115596080510287511990664771017475059471822094688982284802194125717476406309634948455280450662875299748477015112076019695361688057948318469184766430807966908163810618375449385495060126158580309849981644507614924207532889259201048392607027754345706818980464314126758474076293244958380510437057388788649566783294265386421468248988121759153481206988195583339583100126702412096143838329745490525854600086060595235614626601488713876838200064403649667825024969333043324451272843744094715596672550016479418760762756752292873272086842315285026209815617983826733183373441151413318704509399489315544046533850724886718073956301154564492677547360955907071296102755481322554861256663666963168311132976473317350932065246896185066096214548443892956900003053428670284950052421622347614642571426498255663604932719262703336463389833750595552179061269805262390574709749787212077224615329976773951841875465790084728278327750960840316820095879708885718101705895644519144745247487808830131459726534207633825998676050322430794233179859901460355003984262436371802251224807158277280039703318321173735573062000817735771804013222690576464636745404082676627914037863010913888434709303695710388494477054770728581219974780602034391881121266135827187889657385400183449028675287153942544918971531262767242273845898881571404970195080020777968174475307072737768282837985942472399843175078394013660673577087095585966071895143329932521965246832339471471045260782375095396892975887505553543732812152457144758106676880397481674691432758434820329733681554564575732374408475640292418473842282481419734362262508997687102850131660776009391331205104136953027086970874377607085513942975006299798946800922554093900285833399554770940045252514389467353763939841689902919949116036240462760464664336342362798772214714255086356339329225195102614352876035864545434231323210644847837902159827525741325445307913453497022471892775800973507776807522305008237461548439901925589136469972183463623842478001653687211132895436205840867655629883925802645460614731556294980316160324480910761799565867480624228861089249906402336392181727047285899408451026749996186454231317617048201244419802129067376300194945928388450384976128836472710874130354825553261578887246478415657916711082343208059753112120909428759921628542804947670743709177572727398683498763309536779452702618318691425885773286288102180919415068616530647910150971534501216667914801844998722582859537099267857626137846186523454739749163202245616521263046379840046161507961237748917043963493299479912971762383909368416971517139620716393411877136731641284597204213702285915786903768186480754662193906199930043987083146505159942628720470417033159606240322594855239014652731229579208964047806669264601808319849196036406133677789463046112851912216864453798206084704902319503008473337107956559766940876952842060220684727208026342508797514533393459062516191401740172304212844877736025661477622197964101700428206073515875245782559038311008660695076817825250394087450239260336130949777332657530588593837391521198558468722564470935691542004325807164338076384831262705607676409736422233112483410793887697189372914928884501646034950296305568190813872819771377767379706954493014210710427812422134847247477484138964619720885885216984225571933447950977029219416159216533116265635238919010892690424909501703312112732809300249682730616922763235536561181531532813677502653022736117387454259413659489547622795020508721826064680906331665477601405179499560852367877313414241900746988986698422968865912407865667079379448487855984669050055855959445204373856404891456871887357824866984948410668988583329569739706814172026572562889373389162626154875698970710537595074320925161430791346957766218187253423579764350714497120577129349217432667572136818371296004073549496238161143060846492871271323180434287140312279176297711957808628397198895403436547074223425000081644769995316201570152846283506257294009853521897160727023723910156586392511552823323753761917456141348452905038648986770851192683017881340799864225464910434243708240951803692946664522338120412010305390564782349673782059422990520906193674171567971871998255120925052742653589441308873470162780997296062230019574774464943158442722999422138208894857728344335922018877331258559385381491398685115294322164193129497409729773025947710902070127331224106408157466480446532517037944411809834257844442832473491664858330893714754509580779813157077154882647607903559795159140592494877301936070545649892533622009258241298859293159401876150829396622955680537137568555565751949790292320554924415263380373100989717661599348424559693961922494213584336873945268126468739323269385316649727069650592232316226490622260451414032770766258456425736568298005494035224013865706686769968685108681326881262288582361088228767761776706993449224865892265888722516929071768803535275676547752014344989078979944640950687149958311188010659671986834345861880744760101903467777669757372879658892513896271072672327864604485622506990163257339886217707714605968678522226157978929106628566623259995391323391017442156180140707545187170800899534204112331726410639302973281963030055064684395883656266514413638794382063746927442743233615837892511285248551060182652883149216698921733552041772301386117403396453701643952592528403430474028723227284114207643626387107692583112061548689034412083122109627480820510232028873917788323387894070257380350854655135200864965776902716088102420063911705028269528641174399836217982255729414395296833407423574034434781454498138008009739319729200344519870950641032675472816844422396959843870095904518959212845338919554936818119048910717848753614567646235685293760738868680492052375470908891880247511050909031482772968646163157548037986776772861730468566607483825364757037337236897993510492305895384090114437557397063538762093126949239210589588415847108226528812129253395866148660489093759481986144848122976987190109898373242067443663915523339641295494485114828475647993552911246623991008286975544449254255607833821704346120231920109175462800484654987693629378910974234280990981317470154469166159813135887370240886956478772840508132655415352407392748621912587703907230024840323310887754271941694208634210500004427119777077211607439324845455759492630499503575880727431791686156795888797058464398099627526584870176295769552237111505073264860648975489645333927528906507618735276626757772840015839029398023073568279745191596164773445017927510900147772712148100601579671091660097633936300195930568243999165600784289384817455832580671991753957090052722896935974560696125342397738056864274334762467883089162585263192258771231849773793920284948645634345565160923397902942151084333497878950734816404041825086106510388049718889167201345603079236348649543993678844740533872535916436239678986882164640229711222940530148084172783222496233191287380165941850674619271286404545490219871751471648859311561298696029024117679635001649685983976058430302579732007106744114718068747089610250840441697198082160113703371353696851418751586732997933763409920217529613025800183618582395791025486227756925025522958453052325605932662287113417940119212009253268436710281640099094619738263150363713086687216637386214346395830325805659604441694685710447200902868544138835347192885561358912507603750067933269943338814595168586332655980886923912165195196341837906705963832967666387479200349618072679229993104602231067959553753175117512931427656430118265977705408521270947622936126889538773752692286408640020909313391878287721717869292279414232804799242745496993354935830706689221985530691961902173448744523927896694799144132488122730873731450299188131023886284677892832436053763982242986490502019587163102724062656277617112588863108210816460341088969266654497225753740366918006376327294585219078506356207579310837179933959254110223276368811218460130933900581147587337252800343355712775171414399096410031012625887948124391372546097747631625683214027764363693543001852546717307719263230528588409591156793273058676112943690670958122065914335384542114027477590674528687945384594475612355002052800051342318425891079461392894714408459485618003961217725046739432769705799284470951785970721101357913446022098641935990691569624211668072145092693495056675216329279952372320107603075488012318448713400599160792448797985987880276243352413275644774614675045794343893217960559271503727648026735736679480195532691680506330148983153298979257759323544922661294251386124346517913960719954187700345421511806323931137078785238591901866694717552994585923182901259938440513871006564442117027723228612621814823865234908799159992651122255232691485715644064203656063706914974043010591325552971949352142473453899001033988852786833219854445829441735767447261347697649337354570393033065929120225344908451023101616070084155635856050496441163256138782702129199662960042141639531058287736151914606646786459831643790005935900893343871889176033018547363110632677948498342429554236122489413724611292021317803269174524167273270965886549640637555020328402823376337405795905181025631157754597252748190926661719742033822145435045485997321603445042900620616345116744418917090271194320305499329264513186907927700006845444378402873868010002950410362329507337577894515274858287277918189339424348398166345243260791864494240206700765183010753112272870212842540384662040787453246797532421129565925453628902689020452096809211904460397732109432438354120253890312566018502669699726825857978323354556091812547894288810161574195459976696079213640804076948540437541943953529524373354575611677254550064973056495435642377405471789831404971512641673442097305297957248447151884928849460415851154171686855733370696286275171572571829342244804686036410943007918364185618035730558396422439009278941423711344695215052313868263895997316017631447826232303124383400752427016015270481748926833162180142426131642421689644310795015581313214298002831197902050845210738107108899261863895433494484976622448756210192124777019027394301702066585438918461507641674303126750154999543023883158283457567149282868654519209987216334662548848250381995852813966515513524951984882501212787783243814586753213674660701242236134010089683603709869992306785274102519276590519426506755189104605183331541619772361661420933504783562191469788026346409306419238994567307140110009474177899981280479574643887961051468371161412334273445758089031603355900570184220037650170395544024484691125181715828441966407506536074659788171884909562422984725233799598116805796903075512210331253775732780138559965777089024378921310792616882088270007411680644562158060708503056299259585765075376853259934246381536926117968540456649982593970934226946965872352060114017685366257028484992854719731845010959582605857026951948071339072674930333053000806648361574726210929349991927135583878903791147867758995266581037812565119182153143166516694892499857553451195047730267858231466939516092221314942475939411178019940820531143347888889039774288470283080745372532981511390151487736135753384680103148122147506697133237749382383785611452513133382377158450442321599925319841311845738270589766768498139265885538244594913517873198248630347893030695056327567232531232817534075088082807904952667662770562032042585129823366015584675165707959799718581561796574965112801274860441612161263088386005346057267548274211326185684496131278128357667024134136102259992155575690969699645501657657428040910132805661791628780242246032303966405091207311876526759103206965619490849519836863813054531954854241199081438344634632501785148266814280818322264608346836536571363256539036827169959621755372514637287715734494887536095294428918222719879214040821667790023173863286820913112797707374946166469877472735710236513945915418094243473079158392759780180739289474272947055666164224180294303493063950195419780686034418590808620350842373875971749268920882453347227168857640858699942432810088711875955475080512153023694647299434901250888784564925198668380325568465147414081814329335282350629704797280581785730891860333713122030622595459797214411140089884278452790675610037804677693060249018635097841602388383296464890389646665446685868017676574159106714961274942814443742716962340018371707146480821405708169993975276820778553118777171480099459525524619214286897328308394723939152104106151190311525419909390201546207002364024849433538654527606153783269296442087989151177917728274336703311079823184992834363483796564270337182487957830189150813705642114833135857765782412526932767839405333009580359122890120535276998454042834490631095347455479170591677969169421693123058684333956478111460036350452872780328378509046582183807865513229135792050539394718985317022144877811108686657471615338121901073515880158791213101814295146970496212957923979460114173138089006273261061896334049626331427662868176394844232591421482210776133788404049497257519401540208112682031922796424693126542711108446550227695198887238806830156705802779560618971539528018350171891382689693225227536205216706020845832442085397814138180417572511990195377535012851649657170133892091397651427252234911785891022393297777334787768948073718871279456953529406656373673562593796868725809151166967573706309949093269249393052918961876618217900005791160735114782438943613965566001138930292233086287960145493269040139508729978768846340766695037614410961669944432511410490586253297991321789436846759895349083183156641466031696523608467592543148970635532478917820506430413456655671307753714513802588665823462082451546688909952713800359087936775729820423980627945475323478580797811631728574443960379024833765274617464131503360008851260719000789211956526055476831388306762133179594273774988054292347879568555820580763148137811332726451838445637223101961072355550656532761757045284695932366135225733618294650517040542823576870868867048093339448366784138362261023719527202236301501149373243733877085216847289538166867067784844374977533621638197354327231080226692171529663215389259978153415741216338681051998150179962475017473643793674280065519549398915904185777329942616351360262078661104242010415874852726822212353326627448252970274550080411323276413727900023789684589714317872294462002131880348919679085423318727907857994672707675970297149938947656900382561206867082091753796088816081632896795111560133405933385827607543856433348282619430847221007904450809350081403085408077530867761480880140352821765237618473377435612505905559084911064586335999114555124019700789767414713310779622777454159792273876444299832308171228922282617735930732090835321454920934177385272151810805012977978433745286856445913416456939750264761365225885400218172339014378883440594544848338634130799975565554142505827222804055777977512036174042465498064018650299230337376821240784328071723318368775486611178810850525096308363294987655562849620000115668326787172290693751465578736785881685694311209279696288665706668548855988629295504428032112511890583333281011731120637108062156902553317675316593030501599826043276819513521719199529306378369188795153441233086098762555532514758836105489149083987958110005314493716398861270369348553190011346860887487794134454675140220699618879961895598543962616499136808179279519723716172931407117825721919236846864979493501950126373144407183427897080144303254296229948201437559115549155359748113326847215487335305614115247777265210543616972931475481460300506918903510976559034275989206906980423302315137823833973532117784524723637580178084734155108007292553377446141684125674647887366380497876483999397613045313190486134485847806308528046642690823509632849022884347824813683650530288877206591204285463484155095665591128313561461438442127242801140825239775227052065024570512133657923863203631020919540840928080909399037857132222133767883076042865866135200886842604967773850615862305294690263972570018798549507146928996100965465553780061407560734972470120426144861738794843496965879427213004380366541544093480902915746863955763486687848877556489371573631393835926463307389445773249548136222019950420806279764108741913179114509454353614393273498828041331941520744228409458070564484650351428334215645791232156784387258259446124583693414185296799652997092788373709965836927460267426712127009691118028599994510199898728958737411780329663437085138244841816662262508519861153928258037571998691790077197044780602503242790795120838356196470658724129797288325844066532368174530433057133183915479847121779773050055506269422083158250023015351255527418272995424614515889545147266895908928035510746403432602362086613354840016596650388579385455489938392183948733210270895559113064585379203836229194671545674748830401398929098107170860386173386071903014869436324218635820894127773291644728504610582752491507896374491441725802773443321096281189645454601057241559845316082463709218076865780701843649642051518888262005415688698771883105198456084953771368566825537629314943938526407502269668960126205485172254713351474402944688408753441697982778494418238289200496411160892616060610597493158801578830912658243292445527907731098503841726685019949455565745389812883570971164221639198913922245580805055361675283226825310972978799435285798384452370190877789745947518717324901343630388903985125552779610784136230144480961802074952661529617309230240224598644181960725722550646679990079741477944859591534354260159476944535278058731837912486167261161065567489879270668668313927698892594021417841620186920666495047656635645049696485752877624837632685426611850219894388990778395598066901812663627846870860177174063774198694964351840757794830278939110880843500836227962997499671077516347295095858213433642610994096614241412806377116392664666103124983047762013004831934794709511917082304864862700187477467846707794607996511562840742107927791698570278278563338325762999838123264786684526205639360582427587493048866755823904069955483381766411820020803479459977846717250909590801255868119149983235379699010487314373138466082142248571993270379376030880034776234510993619650805279337219537963778966074699814923810118819007170275152591087193279221335481832019401740700754567426375836886844470663423664005437484988206527881303930286055696515086324970667819603183854746575730302845855467092022609622837639288769572731342110458109102453668949833146705933481017987624335523359507755444198463308026429114116326325857524204885225561545208416837318270189505226811253763180697767728731154471890532848411117398177095539770759362167757621734878120659493989981346276417283183213500225141735315555098689995628860005733566517053244518652451096689930530905683620728240843514407439547698287967790866871166874670302927065654452320299239863934728238645574109439933223580782159867445021058597140215831739294046828532566474286105979578283784751689629127568110203160514009324990099005545830477051016372534298208767321357021104958852773344563227341098297502786350638518631076117280747530023655593534594816094806825230752084370927406680274219153637947307922327092600303750264958087434099470526645246881370430697221621151875372265731997928507666270170162215976139093731639194462604993008625817875033431178754092722898689047242789114931435876396993532105320637393838224813655984893925882939266184029597250174469841745060427599037668224406892039113635012465332174054273552946625900310267640256223464330384997889508899380266603070093901556270356466505172110573417232631691864541075843194151675099892902402203609891933887717987391687640974796016168316818398625532346692987848634844149122156031241573238055504507568791934720204808191692961284243641986373416991232819206808826925923062720916389188111012281982561235600995856413314123859967612270198946592399638170619328577358799700733515785707511263860894425045618851170366862404654083215527959005555882345962158706777980808384653579520937591939749404585421401724970765332480424371530128121291103872964168092422844477034219037710365387771700351901195497584184157032955096498536109699370833692773888455640860113542904742556175440303569039707965230013156741977527427977807156967910900203921595999682570505667521807842819557564314208559560367837408708757827678455855890117350322662833374422295019177952564910642414726850108372400876155612338307436380880597948882206022890936532010269666806153061415500081711191156249142793261421498654694271618269428787662244475409959134364588279355511064624191747058087099031436203756600381017059105803840311000609784892857014575434797236473299673826189526967242114952770379368443288657837864613840518742783806759072758829243503900026706374430028178751916380646104750086721697680464864653675028432598751524486411870033343369819940524158357167189682093993037262712670297983468874337407124049698255285766430239868564554846536576697586404621709557711248920455692379426885141537914029712397749316558136805664789816332580882253839375593702221542554672990828954940982972660573230300060656575406684876106372498193382255418816322956157975957138873279824515109179927067338095714165030177166880382585930184283667695264993761795161250202487124388894208139032338178753479252028554797362540248563154540388259063291125853468628129567038230004011799939002293841994965242400372832130400128264550039898811997390878448472749431751752268597655444661903030692825649511799631844623521799997319860147520570313602746579739319693293606149095970176666576345910023502824785252525077762685112297061173767415173437880250367331735833211513343540122513219276991679440863552905243083414079396402685666927992524601907803978627625665624490931248352968319693500766951898285603728518958772521373681059466071132496873540795086167316759461910852886017855573741763287536176470568483848939129760468670006019728121551148073492194123369490810034602428022518240164655971562385467490502812135995328248740656877347664956014998641032982334749176957832876341528410195574027704591648117669871070867936620360163654453250854591313464336575864156144604648514183646814321336076608443369894190077435330434701055545138015311969016219796548301384505083685981116835435903509649360829337123658640980592704224040346086795420507485232329416941301964200656766324328974173025456546108192973869462299117036639509542503337932691522567701968020320972177050346638877125792906704865299811191615620374369426432505853416026040526428135129442442967614039950220371538788813083476230233690185056532628087639318564241165904336289191190941526337178564816691933594573912096841430473124038943540522014769052709109980324086468950392223435279295740121622049088488528700129651591031069994190853109285994500801656883752856424229255309075081275198828594596243847302137229617810390196975734651458946972996419085733074044324065890579691030625982353783476993105480856713574499774562411056367102193146266314582636685707238543121966950154770898134731868006063676469527556163128962879661973248643098573019474881797531814531129490805273962698383728365991600446668755769020960946189376925452509731238927892097350039431844942483162571260415560215517677573519608975560882048159429513551587322438892696582641182660427749768862823444836863879074335624935015032505625866026723702909991147338055797443466595222747525825160231406724786673314979916860004094161221845812363902773504456937842104366706275980353755539361384497109740125106639905515607585170934706451117488476946941869091586786315042217874406207823779295897765732192459483825418575030302721504031532121447794164985193543472433971812025174098865833327415599939014563978634668790481911632834354735209211532725146990167255473227951730513001154167746024411991241695734200721584924595504413504541581854547203325154905798487903597653125729257037009588329083513342108523397900312214967467099885326385391525774028871598989777978742925450661814222740455317044467079552332260948239464591715386485101865338663278627633224659671903822015090993844730217431338886241954790301019640143682380447464529176922005346175536210644211472828227999296575670298321981008484923270764730761782388879913984196733894341047089631858658082310786601230850097553283296172010222114506228195381388238857378580202314992642921498192454808948313411715369817930527522915626651695715285571886725847214267552543976111385382467336948083910469899682334208324956818957658762316318588510487568656130252750981144595476450173415967372875220792060117684585612068310695110628208348200992057583644433841649147287546543656079266753669571509393023484554060345071222648558622164770469961145199176386718674257356577429140675583062531397395405319650763247550192900938619348717120303942369996147903438371733414464977110676158679887315059562657900803866350401445522582492524519038766829135136679148328301408570222139003907543403668617091851507096785970236233190311711082765451466410456118530417178174281947986742783541535510829755971826977227845944521378157585379662600089335326683747149940945208506105512810614610547634195789292693298366095508186492334316977718789579521852925452991704768833474273785309693013345931516307060657597457777661052734737829999085185348815843965922971726855710219637196164409863820300514799027294630259932748467705729178217609297223745126545662186043733350689869173788283534120727022166386890078452255819933178478950101521296591975225047830041927957209168095431132545374930747633499029138719078258430431975013775701085442690981354652382712715150076766866093574700872075458670603618605612125389788212218060864343914677947825823919124196373835095580574935914405203159314988503824352624049819833967173359394488680859424394027562915396708409142110640290779027390117498934849609186762820804900659696578201616609397221307295691687398794794168924987505698945472753085204344713030229949088328727830757368688763888868949274283331949188774228071403416390028480589511671336420879544498719522472820459474059384012305930739382372114586422781334065807168388669700878772665209048552850235625010992448953713909817283431713312902783755142050108532734960579309957324150619295526053748690851779311418045457054939410811855178554776660977627019368140890133455707975635053921082009493931341768591797208147831845667349623558455658060776919433974695188974424059114089405083248639977881822717915169719715553228789845693020384639100149699388617552278993594835306674527587603835613195950225185902131802343110474247667567049535928512552298269053896605705518018326902073079348161739841079412434434255569735485245887518565973695756052347654210676409330151994692951089317950807145382192429034530797841988584775533591789316369475103879114106212685393819871891433313953719288418040741214523730948711817602459335879225789405142454023882034220673817196822838888976135490142080976179417901580511271145699379214945926327724675063167866011164782789311461440749167890714530951763525645692083987190886471661482029396766841654283074716648580944393648226102562365413435684249867692959563497859438986208741374137508181371957631670871339923453385111502010347512474454444786886318596076469777752033816833022047541439334868443554424699961381566295769071261810135467604405157847834709508972756270952995884972161676298261350624204784791388183466767706244074724715322062321245376567043987220339420273048299937252576753200953016704176039129044576435015012727441133949606365794330136902213400267592154980644439568548062918746037291124580078950336367995817508769907431522953472895606328488136709167349290356788634370467120711569332242304120850950197269929393518114362025646612456079018168774680330734915992068683385987427919217348587086792625528980714575665759755854764394599293501046700823362829368112677029766104683804567939256541044537631618142441899917713713286898147675651962833876031337429152395595483638931792828054157947923422832926460378448834378694739298447374265787601611143871095337523624940500294991910035996919117921826770126012251363845564103764615049168493288412047834249807922863150123069662137089802914333907419260735222642117265565060060079268533571244778826514927261169604985627471962419990761253427765038074792447033752357264913069237962863524160459453405283846426589767379683476257007270589739103437691651503833863898398696579364707108948586961042873214467974816139282517543828110537542223748287790813107597429519645124477454133243465530935711730896272859494732906802432929763235034438875004519543400260852089219748535033480408230091648934707018659950970734788553991264008892495905622975544858776429360874136564340683766639018666142316752897958564542942022832216946730403449842971616090709134537381463669013367978559144982301661266430601562415214687258079035360173630583475041046911386808283936308781053287876311099741921815011169525732989556753455426651361842964939021238309864655607837041164301561935104851540090111859304395164750471920202477801329356307507629308332610496374870786944874355463687349264567404470104302961771543743429495478121319537302800935681726964732038078907115067982325955330336460157567272658670961234460683349588102984056597811804331276788429641332089629008795445925837209354640403852672495390117813262347565439395096462441676273132032345688193471031870184125365088934500962855409592109511988429762923283564941533476775613802975823763706053454351318463649930917503732070079240367421745373180932288444777166186074238336955755257992675582118747393759149995788195362243204061695382170254583822451674535857422793342049408876281000518223349153241045978679507762681691309553674852820244975414407462681501110131524799180196413821235167228105109623770680194249225745930808197642403204990983560789756804387072371910309627190365718379214299672670425678341094648068442457774927184048577971922959724899012722253777038777329933038040684382265361418097702269668228710446414674133491271319030128362788461181517249807408461415129434550990943551172025230024505774403245336570165836766887212445234119247526718646415836124411723353544307732310507220152980265205569232860988268073025734245622468343416235414554837264745760088207865456146786258475986224307991616857309573009688283969089627021355914715386879061963218132640063260412336574364373738187889215110373037549139528128100384761252626327496915326577465990694944357048240194489496815440221710746408462461272738404253576983404539277828443145762185321509921047391168058261562701470345281769687047467505618454929130022530735042720514268431250441678744895982976627828037604012621581026831222410415007180102087473039383493109060947748151296672222452943757863505288387441697895495139483787011273467548435535678408622193633169000042401291483149146345031920580805993729924894762538628105577123043506387117821669667224197822861105720642439367313635254292218821832600747706510978600671683226103370926118253724040777421289278104309767980734583213386719730984011247194937787337713729153131667985648495435819137807669980182930610909951391218130309302334103269080884882032124935335481620785346738754575537480395164766322958560753362612890615230535895776184986814137287226389441648931147948858642466989973191773425910759602200638756627674587125552119749311258242232376580487355527676431826617997328282753007619774285360348381459782895921385151158338840172385380891134501679755844166341642003228738342314800274674372061528230901299738700814087193813328845841957576797951893188210033484435118419729123509121353957669801347088813135287077156350786584315019823818583155063568351357936409742339004249700261339540858527402636149289684915589246950467540538692862582420967524731432463141191297485581226000588974062374296287701727366600303427920807142097406378719252250906054436323624478231361384119345698842627123604695320968223565536213200066059482250329785315519211815263652050051228878739182129291797782903015004367373025743354520348860914200154611728910471799218082529416406251573691375546442561761499680763400445345147742749279389665110546625709233947577749802381253724467300862809666995061640037467713416321605371081685686568468272251898674107161588049687240015740130450266657103901502843186319370966556874860604264223373513165002951434844244794211978088688283807284463056170781176689506854667959214206028540585061267168958121593635057198833516426292665725170865627093891464816132901689143766472618339453275567246884602145063901597169565585455747301014658014153094399340658151272917003459130880513718356357242815310476626880350725336546289164453288037931607206078202017396119696195344495408652444099539474299042369097860591217035978353919945648038751105725136887056494509416784064965206901457278682264746357222349746009165219991285501218854628201231966641651532691980805174586649295765061670104890404071486235980764975642683102506936726403479793256454484648491117253111279367668613309530316323306454679521974230882594342516426644253050907559601383914085041440434143282023020421946073981680439446267671226023885720355041250067585418636625505352385371989760621921361356962477226604458681055495114283260848914488106963232604953548579505483379609454943674131625550889740108373820121667319843305288055562930958380100860250228145469160559494015344158064821069496487244985138371839823784029395252771302765316869972274998545354680294343769429384237984549595606872497005912500528543124435108420584137104403491904919871999480026535970179077090726731278689813227478444371873490852403059306768434976697587830642547211464310887847130200741776542375582394136578951994815948254899981508912751278104012284764197226706936956078567978736761677186640813653370792946422397462742934114746401054719829918337686933093721028170501993631682995841368656825859728366694988458347730581920101619342226251491105526008574877798664868647866942263853477365700430457823464724735511431121934646419486011262769149853832654968641913811738482648119353922022833302016137238446189736710072930128353241496227259363506386392206419386249472224483442099269132620303933422710682050575423045135432693629171247477848733253987715361275349259934016658471684550147015749063008412321250298043417351025213824631738114593297634427445859152001184797663919056327628049156524129549723123840008602320514666808699683486754289561009328832258898435605759273156838558145380619204556267513173465189965145094959957979674735344030505720886727749132960009246319926778578562686642538344818564281102591873169760320888041925851271702831682671950472071700261603130140814899518479402842570706311182215059482901392626929412937175977802029063917186732272056690067784082781651742138503186359594660155453097230609909146941287757609033978529588860135010493270709535329959922335533414256398754911168390037888982421622498281404005076467061896546272908080450929061965640024999808283205148968612191786419774631685094699457309462694455870367472025669960527735531857394673084771324272968237042330562403722567408959652745890691499581291967662093261354031387193136064388063918591721154951902676739633761982944734185407848319099330037755930678763124948271011534732118943355418222454754437364872884624668249800838902523219436099747974553697117467173958363964018746526536240422133110235980349065119784130370107722869071553565375174142846752911899865224852599838860955451367264287704587134731584301306778515272647302004470201624032975582983974213814478897431886155798890284836650888888468110830717606673567305616061995873221854310668652953464834816806621852566633952237372861539057418769085519623840412591858828685171387677036448648070420250849769567972616615496270761208841452593455370710767919809202378842270693862891024969640548924868064893090897620063034530131117394375679257803010779530382873850169791168931465433683205192790191822681233734473460339079768441639339012223093500630130706285642443931943323168690825183143723473011916961641663933037682164757165298083733519400246433669412613328083957885553518244709972263779155162374877457666307790700302861277547727851813028570381336941715975683419995493853419878994148178667303179815482197592100289051580544302450065739396953054512406630285087921518245481544733208350823163818301509013197684543548104352255610328543902909138760848889842564528898839337362897659062583513503408047104242162346663292600739204291092332899126273253279331822389159672222901892881384269550936199572046035460600970530210683182254219200856689349753714310065026702129309580260667551307944774226353023796139665599152341768128324023858057733181045538264609258640830820627702385353276861289300815453620068437751956392980450505203381930796495392951961823391171349944832939392558192432158890789084756851144674832377289510830986935381136417417487355904663651783543552494431558280543735622177647806132956403310570630706407523332337480462554857046964196953707570234914212420562322991367175323882113064208974540095108440345744747592496246726720839918816029301329352229700628463049450590910975805350798563580587286879861819804908037670502165490540799410273600799595560954111129461850159449354471120080360648324666010693918311793573572072391432627356890629724526770700898470575735087772569981060070357971860741257175820847810033316591336205134849748983762818735200605701336525643347800553973903838109384133564251164309761370838668856530263704358778715705651578320457415682601525081189061147171833738740556032229389726941178961438239039163433867450730039507710101917296699172273022944126029513175439937310284196346826638884346273050932624224529120100864382438320201738851446137524288581225598790889069879850165479932635683060049740885963450870646675197656050042889152695643855613672092494734691210197440243329942113068896726919989086292327299060400235723825488530829027961686114032349624856743461454464799748270245614061484942280772193020518518689618929295820353584265730749668133454554200849019313735620725335144296081329538395090662605794654289244580019822921950305595041211240572694674014816118303988625800633474805610913158060173431204888840586956990187911837638690454858047651158535437518361265182268947555338093690763342031352706233636024809173344539371608131496658660162315947896955831636148789466113152549042810580881729525113244763707819241501947137752922597384493623469307198227814301310741359770313560037203763022289782781845381855561008291459014072223905798545605759264719989767642850839366358426048080096910659065224082709368751449954214390872617160852676779069608320363717980024577658768404200048669204083211457356107031441216209330129857882390202986395511451766770498262822734461424354980160740132031816781646330021126818725582843552327134381304282279543304320617288352693008283942847998033710958636807736060171572915570149017351771525140397795057111969590175431346998400631636829649356230314697991861217792204792895264618655533933100042365006886907068283342284525700474167229737859745558158521532725186475537386211572693616286748960123013617430554371870457031883566682049082221152262630571690921251341874081601994198473475249546779057180945553491976936344023453802113073612167478674816795833482789733068432757243014463268328373229812483372794487353400306222493504248261719809782712960568788362178133196150668704614835681944687384658425061835746454443843555755027815430354268635207281067380016002328108938765371725341320655413440344904297487518151121714633446121807034454681856293534498075111031733562481355015986763599143448995404926050878408069650590566522265820449234740522242524235282488479575813248280058451551116511080578472334488752998902089170514046649390752435567816130778516327958339879653940907043235119949645727043547456950381698037942149312865277981805658455058320203102066645787562396746772770587670209399842603765758570733272870504615605730157577112371086470477466138380203844605088927401820011851230651987979117198504060746192493909113058873046774486988231260017053911451663149649351798697932235123570502050256983458076640300642188671515104822845589330469610858545743879238588604819597150624467004781007608719473262544845250426812621772044214507535900126451756490484573974009056057099525227765161654907569013855931847187224918853876607613395941138765229175529467596458332844265399351775658918277772552496549667279958976986271656491499410028456744211034169594420100270694873366360944867592942406420496284558602369031427833391072664986472590645754756877105389989469368896331334582366241154852608278527151637841304024094137360947701961465120755213794229785652316373929578017696922397325936843341596349461636245804906563299435646510243448347873146899602251935986552534989682403999610983968952752229562079354116769883278966241404545074139643648711489771192856595506297672247530281217279183447888535141370591526579733974189454571716203288743842890152472201616323284971824224489317744205908410037419366713540846008522951586676439690817774940269545665882132681018684690708340035821481436627633074960144202579615922866877898250151108905641504793924349629211558281091727973525786027778422948490493956505957021016314883928902633079693107724853674484293277359657632625439354483219805408729892846127988153710800071109100197947369352579864562004096912820976701331701738449069856310136258786559341321321039054456257016121993642500383841751418053127664810730093107963460677403223373939738651349604287396913366435328108195931242612650006890946391786153518240993955416625358612074169840343177121333779937379185965038804699890617956891458823759052561812868566366459398055334153374838118985110078648741704433824004710886433090987634216559544069020418521050772093932795147837662516899055999163870395825772998286728565819964845241199099991636550142144403386539323208879530998916185001087054814794078272132855604891343969693001592277968499637129535395174446890795444664221873502935578453316940067707275132749163293461596215850980187794177642576793791992634060824698180358286752148437827291313071354783239443687856521825145570201370027535811644069095097297650652008529833661415398115534152613912441288741634644742393920192605873953017246511706956761333407244897995023334137473160925855769449936110610612532944156054811871495408869399245973041371225783587317914256798470154705023769473383810768951994450865001115644846324983139582920974773013262678941083609740744063370244435875812945351354589798833016602512924713223657741601879392354028995219093206036513748917694758077199032894055538265197873556531828407709260331305457320707251196990997040039280129387935334752688391459173783615289965333651631933142571357785365255683548683264163563937758301170423694054873140607348047640818622155685620028173168434935205375280028270537747128070875236170905324495804478604683765793102682874968071206044842249330727047926445642975373907281277982535775488734102341370167198487459942204453266759267385616990536367515022412763671387711743080062487547787209997389983966560419318409117456054664353121294461862528025827718565470443304600343376295886717975660642214086180505820454260499024437868595942025901701676300920576091057921134099369416875318777764118627719655497354862506893729528749316275272221901984590471869661079667723498026121240550342453778255145073513995141821286172905301626000618429810877021235875121221446819606213235375053980590633490170925225400069378659571631791029208589523078112289784607952493493947747702479202682437281101058959346407081862228698142545952219171752791919592267317366022116076637775730144662448214868195882954553020937489085165468344042783985080293128981862297284576904649612169747939443323594306250463013723855371878089133095162684583268710928537904844588864197758848515214497528033453666841698179421652020479265569395758522143648309597399892689286121538943081861825573897930453920305844009294967455989222155339454772009789582100008647937458470952411499327311002749704733039443105332673026701050268610857235147788093441246091707492843612949229718706706003622061253783514022356723516967178391901364777269472715841651357135590347517490289409046293653174368151679401167976982590432044333876878837662612401396714706495943465893374231555794991450496169558693511969754542791242780691116352348869278289416304110008311270597092708492218283979405274410165859916522321292080427859561791296085202925351776688613667973645641777165134927064733010344081439847122213989926962484562613199514562635210779075588645335836817530886019040080980618693588498557943061451467460861024252322850351111831267199496961229519022521672797647907582628825987902016265243250393806967239040663411230234388349076715417572107729175357486747977728193226493621503782060880941565841987749797765080953728982695466316952478937831647392365733866671369371116078907153076372362143362292869136397447722961065025189837581923372684643829243559602444322545595903560956151049144767016171651595411098748990837500729269347060506115005749346446140835782120895026977350531622808013064166130946062143568372502820441045066613920062879458347485252773287359592722851613981528563363367902812253879154973821328680655075234500485381112820289083023510109475651994293823574759779779070888862031892727298992766001391323819113948527214101482266381719596544013505010052074454648535191616761698410813254517612591450234746928439879238242633013404116845417739416521354621618285585584699447783643819322793928483772148150037169624118197074348748580422179167331291038867036915483545343254759865252982223953804165623301027116312296474722211554092487370280219200427944326166991584669095955010278456723103581363395805083593362299057346457380904578269238934060071738308989663361554702357697292120187634940640781420240852547089699373031658631524782948190422860447098254994753758256843036128682316886766596451886119749591367821007545842572795534184090261226423984418403927392249246788392766420593430536403873901537417256077294496054292159332263138382458289715669739527205196553079265716020133725882258777568942974169187429026823155424204771824597850571159909565372041567272466590923777545800661304993506823856577398572956226450803280805058612908715379419884114076993597453262246816580110011350335690241312154324308564264958320702024197608811925910750294546266687300820313482385974169178014393724349263220614548362845164692849456039163254088260076767710151690399695883800961960310204625422154187269658932816922110419076776802455036469527974402395812382754916293755428887758004887397804367152762271006529821418253461502908861791216704286238324679159139613437369652392467759122421621680347092345805423762571140125655561869571912104159005739941600096575117518874917911598643772891118343888036960636987862006562091601692500458376300282726968464710850105465989232718324451420279911410217291709819457515246092575376379023163545024084598050500890969171513307915548874091490570718338909190948423696175772643461359774071423762017674185728650917868936120605367068509882034302257691466514684681472549923995971587452398768003833299861202678968305839388158260785868969004172629243838810542292971680395308638912320082049909002892469650095912849810944597260551007490641618540242919044015604322019361932282765332765169800036110591538028771105801187734561495032114329924193661809801319698371370250306760080765003874057078558173602904004122359123602725037390195530905201697610613418367947443991029142932067926832180232230728785010433061972739430512705120794940608588486249427087974065561911546407007520203538634689232951123622562483055164052735521896467709373656273940524288971470392212554459535217171655785994502019053816255352505208800989622509640585983567878771643299753802113802803048057648646080136225272357145154286623058051497595220946158139757841983916065124679188106678441747131054908925799915835054263426680572156073049156966469462735599921795464922652197617258948027277305345243957223897472854022097147146339624619966574258828739264864887256754884978846291240790757223362257579261245582778472714057829379456929558567249980242467833168050093765040089788040610651383581466170121643557845417400551298537735270434147418167351329220124503399182723191581754867021984359054886074518299306261552361310126681676266417751520602917936982689092231193237603639803872880546510172884273477460304785015131568699265911224272556150460061247598240094900939676809991556104521607253916571545193092220714809141922890120776259045961719850211952095445417746984499535743242038652521678674595083918679763524720280127777923006594391742000432446025051293019603494606208392785688250742147035799676820974801245931552007064618345334348171237090068688669149223340134577568406624983244834498187139973501464779319697910730315721341304353255394346623242260450164851262492488785249643430443747772427156359746922009203574914621951962635963844079320078069259008484425904546060190053918472419171204818734158339797521340704729102944761361658794970621250224617196827939712669847864004886309675927224750602920702576464924352118264403454785930218035666316387850486539783032440210579136153335555635006107291193442344697799903689929727649943088839843965709524637223102824724706954809541036205944390291758239010996971949620485641219605606113208196848825382671966704325021393347368677715154544058777496780332751056600092844816620856517693206867507927148758364553763043346881793495473671673275242801683055835773788208309268637701508035351726298017213441186119556446947055157290918381185739432955112591439056687524142847746473996777037192472151547777162662153577052733717805930684317117986944570045770695766008243538010956628195055553601713603697147940312456598743086810505444988638420718795036267583097784687491181620430724333106791247752697331512927623356753442248283270880512288511887976414929365502831335771290239948370719112890509312481905157214771250975190012462091041317958612441319813748334716917663731350416283005651676377815434241757029021879799779954080492635577732650287748015433721892565484698571439949297155270499286145678857263629738920980015806537882239910092984018840499066516306912913881428772169165067842715651527995408756604104057523020084630932751422749844414084152752208402118970824820502317017429617185945381322249002002962156169236793477738097175993246723307867265376038592720978820366593265471647833852542590508938646152559210422761842523280898771386201494890582062402924156005244780950305417388585853291881365465772633179680840606093855201796184681466944183988485197729488270939965647670268480050817411834655564869652767351680322487251071044703293895217247357024470762679553202076206376590010061140610606466411366051666824292184541958940025738945965413213412297332885852914401853963591688205075802200322738801999520695953532347977465670262727042057678370838650591756257897011327251126722794131392650182921839590973874820267541021671364815585231358691748321270074694585121546163331414906755702896558494968280482892285763442225803353966819074091436060524915283356579894094352851305745303559350016220512302292209383500893766672760392406195020004757208417198816309101145377217666898200346058983226480180496315258730519242462204892075066292070395091406460123073853641699063568380106093650871552950427205054500631797837988177146461056594474053742408011263173681218591326211179126473671703755105107877945729947442891234752476070317700445767868086698820214126060124886201422816565232478650552528643678505532218338056411023965797956467491051820973120291902818380654146641333766540415994261050181140717073927559530774511749497869688579907600179123402936269072804622711126965042407549074474713719764220476840341605937272414016515143056931076750046677708523969415172438160367267396591964553779095466166834011173347110250095067215017826902293299332961650977325561378602278396566512207584112145765618383961910071778546486519484196671431083189709129796415245270355096195647939203504544150773649840225984944888373193409841421233433880674645734440766617901195204692864860565288312716984547891966505368599465468244962820378146187833205572173335238595504603614853715877682390476194376168865470121991953168713856189501789920880858979638960601993292244348707703364539731823127989886577003604770763286966370013866190929665913130306361105867928954730858728861081132345506984048071901712549727287130261880931421852412257995422038450157266177655871570717269803774333941200525855695791907634728387206342706379941776303646592862055424640287826854710337860022951840658129961734949623357649093320501909169920351147100664955207335909416029740637896273860451063106222593189902202165528729778616688179258807524221063316533950109655939010451025197780565544992478347900998506980697946204485927935047972131768451485607730205666147066030259771717517056789930951131869826276748090111303351533583191572693134746125691425450710220053496253246209223101303739954680054419853255966530898587585238206821575403780582916759669016038608075635905614186667533628113132179746842246458145908232435791661144678313300790702084086020297899877929432364096185895000379318304251257423284421595741243031834853335842474124044966952866788094846274329520710321704015123073938966311479970662083264750076303136750755506917641013756334606205799603207706923698169896788324706417658213158962664313927673554873449762385662045369241696361281794401527725411183181204927944445973327836979437129567096452040808168224156095826693265988243182178903499546008665009191100790122974099114730746637958498304201534750907752781697002386105119079737758358317062029290920048632885231459416498020775524994423540466875046909681807556199749724119808865329173989665133202860915848448606738747084358389931135549410640888123719256731718343513127025521932432540027905640028870783336058094486113318043810589252395084745051216377693636213552303380249966007365937840855628872723955190535852946413765659083877092272226997666101825158349595103022863559624782962418017990841298763955377902660784123828219170410997575177564381898333788553994097646659796321718841804922959732759005286153903535574899344891703488856568746673273306630975716729702233922650518133064935746557964002391098617013690380113281080942418434302242547495020173183144525330129792923041694513400988751439917555862124270178926143788739791434420640581271392641614184449606085641918612014856847410274282921287046129933457035659364200411981521503977596714776967337009271652754437192601344318340523232901638096588453724496929864892473297312887024683125712502586116848119802109952200965461119381313313234743646651208649499874198329545648608184382641700467167980156758899683192405404715890045310634188013937117451154921450975136190879222004036387859290821998606813089000176700710339668304798676970232398673325463332474993597520043658487891070366180506912904725223335778042525630843960357632695700494147744273932363413073185304149627133256684146019951037118341732664756109196227405354004366923654915423639536082051395376410051959697199412753748273117227499799052612313309820650335002749836193206794027053771268808948572430809478389617845817598753227386907002121915060393478114467587279285625262146818906844194491772894655495298299125906700573309002366166299280471298161385770921334310219366035481439387959640892524449272033143077853444926660498868914485989725289180912180411318681410183311343669438566374748591557959557003779371961766689627012592162499089644174572608236987921191470411939672565504133031174858600330457336531648209224277736244804494768097233003496981584554432030520482109176432203892738851083495849568082417931939475954381505068936695376400779014059317576186310321680425371930442804057738639403220226201535358912020975671558693712706567287434850756804358094549401320571199935815672135859757774211215877443640043079711508406817489440347802716576462295259884889080242465119716431525647446339081860016915946117696045762432734864039083008128027161734313338843105349360228213443769755345016763806036569029673411401080970014489581667143190841836387258568265187304191886421835229123242505876734552876453054323303460879965467159534403968901827386879509075443377469684859064808520668404862919519558917002083839620789788829677614282179615942360890763871838088911737860066818305381636733833120291361123368137952496791510135834698823596566363504845170425389408084420878698652911222672497809026234578035825667413383693522663892999488957025147966080797707989940236148186305569512177035965995084182093361532815622998201182633225689905241405106632772657651457360234910969806829054411691755234171183331731410922282466916304597795869465579896860766024168232254360389720879744800407410464634028690762359577906908573452647315128222173270152890577695806115342155102044962470332124300260416252168170054735274764616962219873683589060737717116333020633235616181725163283788698128610930149788448906129608690598253976237554316085282680883786166963206359397151726981381376446781792593330943992869099829010178937828632669292541036961082001509918444595229676063221876871293512368924427070321225115229620841465002341576182336564880663510995579274725659345711588938339048494159635808108400038189692689940103776383504070524913378293250490130385082624870121048464130254369579770787340198740499711898298347349645040899597512512895258234095277799594804022013170266026038847328702566195224412877288463977661803513254383106263767373612407259223502386599221485312412118222197305280894432212827587184247178390276404864768040820073231790602202583830829660951453569806946035094628768300861066990502118949637849551477478750981463773177601060040803073947477096002114833833986890347991240682669957670179258117590059424621016481139727765957545728845159827043528195978771491018769008673476296976952329300565041518650467541203086961417268559233578367887829341802605922024548429864304654779707944935670868529996260334763976414522097955414795904365862205981390515978778623302080196616398492732313306055480368625981599803012921216081909586442016940493854165537105563181666216582855881473466652526930602775085480070198756984807774981409230648600994091264785950861963619786715901540904964940007402560624393687292750866766207836325245896329615701308246832337050058872042289579638386836173597875297509504354604823292263557738492936938768934300978414100211334855304955976069236392425913641412156458878293826603640179775210781455992620451556863771751616564501740177280747263314142039501606691949182113248699572518196494483377422457822314545244772602865830993126103022464649907127274004595719697298021528553396551123321616460097847791491235923333718870896102081982674328250025408735638860660131255119642229486308240469874468170582720661881113610929351828900471867884515558255970429504050101328210044565469079911343226140673108279678401301765235426284286093976765862140805591988081805478230905968001123037160950132109531938404275661647495124746187125708852428527673155351690305937285509987540022316187091644743247433782812410411618252289725085603482554097477394680008806051793853427969556633610617692175553715795636697169201360429466379663512928564013961017064769691694190280332340264728018804402306604424421660647730033709184578097467068393399029625453375161258831077205039535270076902656642792802799759898743636904856582824000692003515163644407985689533298300531592058845161176923022173889926824423975961694749694774970993519415809496319205812544164199558313348072664060044955842371386596619686340115789964762783522584101822519249273512406618424171485899171257193540686925228576500896081294977640730796976909919708328723223662159870980669545104632460279656318146807857450570328942564939005146485467211169816301478410663030399788189258817904262417413306274095745077801353872090802718246031285949694548105951936093177013655535797302440538949976909769971940045483882973890911696745154475605855636705809203958404250847778476398099922431803745053815146326424034580881061170457978598307495478152316170939481559144833820679578672685995225047274325727026595272851141301203437129963282755227357100752101027570083025383679166890657587887331710628848270758765624622103650854954500666596996204583847076401858826128724003275123322413121940555031078652191736226800607943582831816032245776068992583906737097442062798992458962610588053895385808087415130640339083629852726003115676579242668823694025635509454550514332690103535797325822516555803160075745112516835166075196843588242242191516195520010184775118059088285083150558193193497015798648115873179749211022219477641963749337511584888695800267822262395478999229088072053271855157950363553368930743647043157896620806629806476821267739002268338818080207628452714765466634966089804329348043242400483983709620070487807045603227008298212639410198218735967972418118745638811830288835755987507592654396530957065227138545144705763486087980889888353674059422766975093970427570311498644324113849468954684230820434420735699804824844951921374755446049411378538375767965860329361508854247605314497411680809515818950924896335129379740010469999516496229055444666348718647780835649974773359805806583085897242210551561439980152590276899513454152327369564137889670995706649345426257436053137316992911594582488106983521088271592849246700179702947239858423842235417909785282027665543504180796882748435488491308256869070848246821006693860615750484007453173194506428581115659911112618468826372460761694832667745819318119771595115078890100200776963066544584679337925573657059272935430166337431892561676616120647400075916298368407186350218500110275909692925895503485574557698153658850640728952005232160340210737677956548798864720862486291411188470968792045055467841142075962363316159575389180800786973838289971922838101052673951291830150018744701860423465023203338765925429472016311261343712859264271579664706874088715665404924336440504413408325640935223579972444139651233484190861398327754199961990102196404899597597680938265689555075741844990783207769265603374105101798230113754229228338307992122135289154646174686740108832299661791785879446815262800408445374648165421027334747625251766648390571714456870865877562673493675040893409155508318768262971429278874625676659001947785555788076781371334262261353174242429969382181775476407264647293468745419762088489182821759799862019577909177297111355452520705674031869242293488747696664519662720361233940917199195028615511370990862784804937896136175699683042791322123256974863195661282890042346930841580796063504591220903595297486195986075124097807931558568666140559806835252964763819660883687469724064896939740779432684702798457286709182832255255923826783852363413591050211938810771803639329120543857259082511317285265696078274202281617761176148310535294534318139958174044974880777095281390520275967865183563099050515290975983941201875213884768123005261481177263600731825453979947528024588438620856744319921018083856281852955685213917813264186096148813280959095867641370063124981753551873576445666110568743968762721092740376088431004696260574532450567797900713710460290060178837231211549074543853594014132343362591382798313994851885907744831694736677976404345787104915940195675899275979808614001370265908057675197479861267462076349856707648733471389241903431086436816568070777116399044709045403806637926048539081348893928971973123176933305082736265106535459609057911304605218400168764860716925108132639599675124236607329463943878361304351110526660062640310850004157805586554266322825726829072323650978211406557648953450682196538063926715322371305028153909677262438159750907917330542698671567425376536544172518151021735313929429266096060540591293325571531091854960247508328783544723839747398229896766949956182364294367506558560233440119280528766805031760389097743646652253718278523151041240965309114070209711579997874570251876465340773219145085839937591843673275787361879670035665366108034959336248209960715784645634391178171026284595553713169708687067242317960118154017479823743566646348087774203633993384297565370637173965367648584494774747452737913757853693863694641841271333353732701729238540564753682279349976225358995159159298061746837917758804147261761822207084896122974258139669036288065214276656807337103310244708140431636716475264925845461210844888245678863327116747424742217980061283764632917105153711594629086556265754688351607421904029035625683659296147399906184686991280905005041590979954558672056673270433113912351429686309052653797889915138520898357451459463060623287934489603746246855484872753424238397487275585182624020329741826620858754427577471338408066580321791331817733109868308859562270133018833533429575208853149923794891022218843380753243782059473091800468440291433514380953197002701120306469947540767062021111473712517370976606521587745165150460474165884366880331821724712165612742755806688000134019955081364080395126038918497782714968848648097995210007087160485784335184816903688212002404284668722138708807099566809886486992023840826268397166755343565128776082735269749953542334374797631496189341511841606953145022744206399643362976390595212184408976571755357280335308089472961086876990943622596659538932286516848151054644887401638315153386994739939092975077675388530539081543428934615370241806870586556114183015473857483798633719503814583263058531170230194786643033574035681868101981083660700996354242959648325247131390345447567135729381105422707094170584887422315331085846035498690417886869609157188903459755087622220204452575566038900985960541202713725120213296349557451951516791667219760147037233313580609599428762625792400100007000342219180693170484172309433587166775403057786939931272724069392940475509900657803302680719032712906155419886048310786281265590510711950587108090649210843175112188181711301252832188315428085074634170111765235578472192947287009283257848200707014230721493026236670696959634843375426086948827973568674120218325857430371953109413165598827763225205265012714516238263880883477274193273923464497623143298695226384426793284340547164080278672854704839866385082976365478802719564249066622213996166368077425156638253058382982732151254592386517259342802444565936158554924624579260377226199027089571156174479885717088836184117192030211681574712366888831052387758840687507797336071085891391607568898652203085065729453368310932623110050310239806339481973374272754799504892475705966616592294925881147047108095526048596645192658713566635807660321212323953421338444652124795566836428982495300639481359594329611504646949743743507317094926264736501044111702469345788858185135022028517693302744130438102972863856393635978466379087411105150026698436083797722940560685951546187518702129540241262631740580700850691047218738045347586061139991077094491722250954552785748081817805238518482509890237100512836757038490808728738149899849852489550111987367073690092703803351490331115093409923644883800194793808402248374713231734152832760217984540913216128642084051606788729246731026822359475759506748380245126737302887371243601888393678893154142371585100430784256046005810493755795684566864455139486161322251562447690234189273396791620265514801218785794255103990689871596920262836822669885847437272233212249112202329332604897200984616777425227326896280419709737565111876981317727267933367519774856793800742298428157252708239673799342785630397816215894943823942910933915393294860006771128694281254230526999530066615423106778596558958724266646916337984730844694629570295829365528647313709857058605293578213485946867257542282001510157323298559863165319076502572807264753377859249270421254559319550049685489563604030835423414441814438786741636499277948773880163167628401967035563637931158182729669176569342227146086020564801317142105178876149263206135787133578499673108516050019182844855299053461710761150644910216501622412463595081059284704543239487700812850291458484826101812349097545275640076893085641067758491140049207503313325711507124727006028853792080030172440085330565682008982558952557851152690032366456392626852282456680143342088677544441827689585267880099186763310583386615566380712001642789531927545806169368213851459230876462819205473167196452755634698170040095327526097245887460938754515192275638767124772503314174397465006264612410668003336756612492778757535591417118849727585147116910525803893868985358786785600756736619197509079160076087345476394573321369734426756930391819480507620608935443347904957013209225799050701261537225108508523084927978570101370338842130662035650359564975600992850236514036089783161960370521532196397938223620875265307800819115517253767326127842096603434832865188049632030487394665785179310813669332968420403867142989339448426204176344590439800317439200593931274518866886139432210288135015821668982137531958820526289018746521139746144248479795976341189037786064479023000426740141637310695901337776690593013443431613962298850422450713161595034431737716691269146258151441759719198334597605150088942796382555026737229008915059178894917009780905794274056003725479724284317027330501986766864164917867913227525600851695712900519496018521062538009554397178189434683801560786581653332685265615454809453093394465273168567443774877957341335259325197183170500450340895989550470305683973714153162633427484406256222070932480857125417732913735173252957781352450135263203769399322725240130073905923328841034323591622743017365401700825668181732881256368476124550286874602780957374295474442025121653667946712128270408052936825674503385895935612706501717453882057925077179047943453314901203972387519461547235554805842179815910698854691641826013979227092438700231451361909408991787223746393157484668627143624699622410010344012162370243152682900087688814602992581957304815307173965160986451447002615498730179734874471427457086610407740713306370761178605607903854040217349706131311589145297263658609630633309312939614772702241055993752369563724557151960382620947443186277118571281596933630597083106786507469650890598838761043941350156003202612590522775244662256139711675373965723467596968524607646798145299774030395767447161104942358041285612177884180078701924011033169188754100594038978366887673326062682846159016076435322461004665613581971370712962113902768503991233211055135239106776603694615207572434463037291976552140110265573462246333911049771602781242446873534216808492720083124454325376382654162741941131959552733590693694055287832936266309738955999150649851406026638688872277918856220189774724161352355507247567289473897368401353454850443584135934261605484493504969996365214340540747864766084772839388171616718499210871357301703559158582575847489466816003005064097964289967058581275284835024413398202945065577184638796287466555048778045803174841306435418359078971910117515562391769267630493097335575428041231013411739982795480480676200331886547242947395108466683248177603947318945056304626131238781921952111230186992651770464757894829495978788190424349890829610729014748297152353722102626787041204416831894616971811837130895479955031838130087549308592368400675146238627831083419744954959702788686832661130932724848278255762346331557705495500502424725649115465560233558180169959682094014679725670583464363540054759946696324648592011450341517057180436946298570043415210050596125272392412052404479039960672450374298264643898808932737578536164783108647064976207640801309550204623786381861953210273804890459804371733619811774654657173040889309377578229066578947796356744819808205167783227865114763795276422347665299714832516893001958923760448960734344696893677258998550586617162925620089141154595624482538844441010139965707923485259875383747027577879250704819556293195276150028097122499297518999976240570253672180004139615682013252737656914523881053423015727000495055025617494964559821878741299894560621369370758844237347938297437090859728175615949698058438571242848541083727809039615709986053470778914392697814696572672782620674581941819061791100587423482915046907938259462723652920679787833468135002404559155550297636626943243498127783411386540959871965613030367060959084610724670891878004161157879157104321925775304524186824612791660985022320492016721948419505011204940874943061613105805141174118296250330693562693413089058906097744600696245563546091648711452923600056647350082617902371133304802628803366310052734095955998649506266543382547938207809279245829806611046943544206631045007795674430280070886775192027121728403687831077536005143207224829922834748696550172727391465591267128767726444103973439655308421655656193767569815839589719945017227178061557451919556000073411266287512601618926118842679243810879729590511140684405782803859490063320765696696398411905310316970514295942356497008265741934756272209769700010520719528304060432279262560962960832695011112003759507183114190467654141220851591959254323463816901597694837355106928084730176208692553935855077358364547696559054881652382322819254158377441262886618672630995099543082823364526199764597571732696677292094528456777290550401345879898667006651993222068455285688456744807465934376168136056021380071090794652476686994538184623167970074891574961731787516409502464863083651742054660254376299145165079139773466079991001494300889661373032349549745106076437471786357668392101360259936799071279670923833775547734871283259865638492589815311763078898960236937948708917156794906051777640026825447144247510638175517534225506840271369755576754975511304401655171245746169081164291902967354690824576731257627403164197518785814294081525501316948742639755749341723020997892306646995829237073115218368018528795729240576073093600248344161866056174453812823510251697137864697292289171763898247558758439216318735922700535681821123235371233891734684550077281343900593640963300197873051790012143559699065063668875075961297723067751523413770513756360720719286667217349819277424698101378536261842157188537218369312006166339288660315341631163170395974516628462707913006824619610503966317213826297973470825670422076812627355008623449777707427920132965027493689593025535855854701833277115476588814949781837323507726127127800315688292970108092678428226311164925139879547728530379680302484557539401477794879264578099648924303251797400749952128693384558661601860595385082812077200566782228385834735056000221605407900747581269061513698227135450547543019027010225603979504139056274339065803852290363255956966226224400039964406433838061235823444260936771788742323456528093237238975056526168237014374130217439716744121656870843609464702193144128192086468502389831438445287430426086914356095145487135729114174431451281390769571634109982124256273351256212663259670719673227239911894588362030397335037370382769988784964624810142895356019601675206533361529305809991959920292674120522491130487306960980984368105885693945924467418407818397163293013431124618441881048901788592676823783688056465294092675714358381130625806616332255191649346983961568543657215369306160983207856017479237153403371472414942002314405389582538497821596727803419685818800133975575318560583139795444189591676189564663019680007012236960752681525891891818629421248947282985678625291284697224734859651928834223691448973242089066376511245408334815516200856300106529533853400244204513031934451959539449199086307616365137306980347143274721448434360914617314660525803308322492035637794702459023241276629579635373513275279055496474198058391793740802759497101815867825610955759758650179559295638398260790172699061609004079693365821725164160566871384128346249616715398284684990132141988275671971629463149745637222107644033545103707707977977791363142181520178462426294947983432926912643709824309966498573175649441174852628076719405763612892349255260243690773016677075778028860719892318161146831530048911444880245666759674539729150015878091780399082012536633133038162079077739904611584761701827249031729836204832994428043904014651388436964792902951784388937198985968350089766203318858366243067653079680640266263673454222282634276721438291070129780706441262727626010844178672450592225744295178033762533653222209675957988466767374610423321418286860555518656244183096268050814928048973298639647649368852289427566645574799097700602084396691881914675345242909820822355075999783667543206930862118552782569233302316274126282970216454263609201963760278084426156718400978620407472045490327842109742566240117222105768220822990730795523537930482814410957705273656710930448486475698204065023518598919941755267255012377097309476066937890214654585594025721762408652342292713120041145398702645236376280332753923629741460955918313169922350069369323273604794505309442834807726986121169459352037487124437678763307953446864387352792913711563463098661210003767351681902585942757255855217679248271569768813679697735517736859757149169398196133344617872798985991678794298321911279291233331297489129098409197048556776639324004377536380485770254361010470626344848516973732393859009998578786677152073436140512108821127387014069302986512030333245321252697292984110847241550804774450402729095722998036425807022216874815188988005813900798379814503127268153734515618261424777314628816779059317662541877108473211535330436479557294095215417466877234187925517350318929573281297113019243590058856600062510812293145355705465582856535388777288219937457042565206395519464540852306982474393810317053575977434057786253156570465325040926891160330402993161899037968541323098342672308523886435117206568368811276673484952053428943681965239723947037286454456907881466135401938345966758911474131338819338825866590323404986947820279258948982294302799703804658138554046564153335393554869252223281474416436481159711684616920676841932869219768688446897517975946979848093895230725672181951538398023557287335334599358570016284053393855799756057706262829974465041596128672129993460592665315991625087761884606695180950505055605738920210388733226529523561088616982540568802964963414714999145022796340203445522460524077762835213010438247662639134525895761649181789306187381884036549034246314491596374638069481920693027051835177810858327223991969192488065510181157921492316200150565231998426800512530148717287517212123941229008787879998035915160317251449990983526609083046827915437187890638218676441895082621510724710740500033322199685664292911111778168930123332727029118003981912462795832259299421084171104578690318154338788540228429183664220342568618156630657897859315078932352982608501845517734049789147960910925234452697241467872032159322407218807514074682338700347591374505766602042363834434442586364359678288342689042504461192321735097551333428276993758922700813801254658494237038808584585413448929385058532909185864588948695124556303329786882903518664383785647355580023840603499124108537428893504432477531336986900857731708198239892344108752415383829708033646409444922606831194015002185023194590148947013746421588466848621726832968265353091777984692697603620140401996429626731312700124135663498729121304859151411517925835877656899394412800413445010737829868972193747538353930002147799314360289918284592241253698908972337420959171306905063455437734406541655496512699911615109225682474214701143072506347811334523248727312386063328625429970157895594165595052306590696418894422960277336840888783480776036878519810102485807786427102576728650230611025918291509537844707214224271506567063228714890542806044365345825025331542621285655205506984992136620939504224038015085194884945657181464472832589355684443039950465516022236536821404618383000210620552441467078228156013107882046799949196861111462864865027684051659068597762775805491927728388298345764127065374282564516481740506242340789124348548343120828882921597326497083088773798383024610925522629533694256041593243954219788794350230363853962974183023306638245773856991485298906801327222091680856980802621573576251203180222635439798577901913606889940957904941634071444972647067682054719112895750961363895381281658939049965610866408842136351550823603179300723493809943655618383187554927511253809394950074747492502178196732255428548950172227639331654153704156800272483095495459830130167500456976893948978733975386306533694758485374345290208739336566728546471824953865949758678407938930380307252515214220736576275392881919742349188529062877040960245392707480764898116837517097457906079592759770012815943264891754223265365054919351240759775611306913383471185124908466921861081609830251842050645705242160136532238591922235897467743298532240422088953995956286307547715712207129938544029567150657041268506952269964665332540895472584611462246577373783748073375421479482027812657617293054419245565001037800310174209783467948060489428666839397165035961295620740344483911048084171902358039878262977456725084299377101807999382348989906877898938435995576541343438022263369226272266776347443875560586376317478622404307972468451066545534483219212836870732336091146389239981913086815022028507735983926111711658077568840369756876094910249584756294995870364249320220914858584709265797927358815480543520978351977530066888567753172402411143342992136359025136779547089999667091492221867646804480705928890581314178463520127063439152752354512627126674161409572905255729416491447940721805609239277970495120974348495337857902793772746556014453766991126043270932835617273866571420137857906710541257841908911365459423076063657418159436151627157249771833795169221250934518810101373253425919037841655035294230040289226565816218688962437070363767681583903006703842365359839860928819072372038709859669919721776006434039291215042418249957032401697370543081548133556494734235072816261351920450226339691465144079279800452630171009468176476532252505377019817173767217649279409021499469070446358930096759860137911688498439378346263761744528110140317809562422586196999302068501870397426979849531876966171865433103693176673734197646900365907837617279345832475367412440327170579973614782395453313989706633524423211953805974883862303791110147861382438304912218116094449143458753955692857309398630867859190096016545299942852473398187897568647533350837850668649021059537745109695920847602660943034105124525182644858464499395013291129885700232295306151723566187258412195786839775671989672007691222253195611436022938064468176690033993720463614219641143666489267901258108615271998084933255012751821093795160303431967513369422835055942673999581162242117994851042015280348571864847153319694948559088278686112339705666390042997837840286828515428038114684547900570541617335366193654820915997841990008868323115320965931857564872812808010617255631964273286968660091001735762887846599808788820483853332722201174691962295639565015172330503016025112792086229550100359653483830841500585134118025944802348806517734424990769932758748559470545743748299741659367772898015639960076619219318290303560983919709540999814469022017865827727702361916548496693899136033003162787113924065935596895028354337911662622792381828242655783643717394379588141550980020702180089714417469318812345448175629679830174700482491739333664045294511779750278884255356854112948379548717190484479987286145008802498195817981835909533714374301566258002649854910728867507963930320723331644166861505159784595667647202781270246507608462538196866188477829887115876890006336506632421562514879390542844948582432135946835414571069520100215169704400234140259546796677287399351490774848050910058442825957483431655272705238713361102132621608915228914043337417874958195469486701907139234635985664511298003505146316600700750109455638511532384176252371821983113888257358246902840862320419785269471682211213702099765724655826069378887459586693243780864250224472827374299587916606773244080192905136541824515090225531860938933050220733793530275376294712479276608318830480391113413856949665156306056803197167067761489530033844199989782217252961380624410603205690831736748749783380478462774826345287582725143676953909716707381060555860760127570106738594293105731019989047535425384553405163141470853501392417118317043802666894519951826849913686949485226258583378125335853503174926065852493585263722766651405535954913213265228344245321503385540322013390485950569564598044469064039772442123416555393451544726495615952528272375811454401745981838267224414191186006177582321094176088955262702952861435515891412571453886223285356129865303047711791382111542550426110852492548531505829552933023126499718398468390022853081173256342949987502378277530332741145309408203134101709313133461581794490932416205680115874648222219673609217799415207459778710514681372688871634894571127646532466858304122895930291318641254780828930371252656946605640271764550639899728568209169548179305186503728343888462780743510239359807932326739314670410581227233000308015075624154605463383152272274417730925335071083496980114624443903145914505896635885314994656982995375607851124954402691618802407260048110346373967239438565303383490555659396577955671353873782011522153340503691062261285103976078736506449242790666801324830123379198639911766786434671096317462056519448942513972387211506590118742572450648497135636360217304983237685808036850141791094715596265692358256324804780847951791563057190255559538703983205305275598439658003687798461300252413755240881237419011011920031381032170203767046256482891361358730553428426870047123125421357640718536689188743328494198590847862790586683374839005788139561220038199605170581924401635510331966022492435891203693340194077546929375549560171845685500755818189409962330725162503570914938463630742199038727773467132854032855258468434288341112413234695580337695604634248613489017000465805167112801540019230794590110461202561229984107247000046241927415717771102115031639673290612985013681823632853545084653543477057459644091178016838401739062036872009074227219331582814064582129609274721127688806505327935027333460796034455621227948785133956492462693883478938495983971612127792715383795053595650345988424594655323333794348718830888588214565104772340445432441932225911630116078313309605961355000089117572399545513920438998529150035533948137506745162254009041811827575503776233209813273912349571169396367000356173654978551178518098507849218035634678007667861800258196528517642075935337337455246522558406262154575615675306900105821042218299200721902873086167828311786982561156429682461102850273367315444466116148867272502493188836712930295476223712886813143048992118446464628356225056422788921176231465404259061028107583439385677139553087210390183054621225426276111641824731128327336599682771473073581601701650921269117648659088253925441709620872447371876704547851393522936352952465951253967387727163136425104648014906684608923778396143999856007967731618568455487273017612017694091518498651510441066908600156310527986703886496294642627650905460673668238356564651888427211570445776320893351017610301113646602085509181555997413874798964961433600134779142954293402800420184300898334781296638930422815624235544820595376907567290443943000530397281201409875066781035373635173462072888382290388736724306534758041825734525599578938472121971208485714995546606279794723993693940223777491710424070904832985686372797472047483022448685731874848659848280470971627962643141303267955853287132807381234037124814902078339405977224639679036346825112589020476506828058010852141857502543654986881148513188885001203274944352899456166914731955285843527042625061456477327773430368753987651971289965266924545255832815010934548809164748759282179235751062437347408468962857047423958472368976247917479746282588789395982256216202569989441764178230161735417923577344631438667202332901465718213058601785593669268469619179794198071782018291082448523659933122945961680047378221061121226065647500301297411231203071526774519687751609596757013691421078759163721125044129653614389716994339682383203004080351093649803989063558089105681367311474046160445545112572637783459815451463699770171427556314172096258544660229962461515949423818053021983298931237416540902643927320552070056183730431229596906113269286297897169528098401742049907720104493958796151597592126813509974573114170972057313872390435753265853265912518732120255500821704747626629971426153466777475254356499768085547823703648950652079099806168023836267265724202837324693460884145935492068527190655147267284520584436975925078856008823772264196359800516589344564298653492093632086727232862791833417438271571560110479222383770675129472126655364609502470435641725943112549010520788509105375282895899109379357238527545263122015823867092917059693028203453866279831276751678935868591734236813959922382266654550929596371736229808463484866591682068154549483382337217488222664502163030783886155055941872266822722141509366663288169493914122366271482077791062262954633865666199220183417267265842346290754574530910305961231111914245361888024152629187607309654914716448830713565272532445498208026560209782385421316862402760876126500830337597705281959518289569052525977664737126751691364227895649955451593004410537386634998953003095955925683752021649030876220190854979812624289043602383677065264798562570057072599453498232624708919284131882358448015477917968124341974850249876977576272824690176195362529349486744447998741477441999951655205802292102867866290809635685567648633403561428377045215162490141600591896559656890861200344661942228064323654034419760783001391676447047516043755380850482527967640188365937190175866797103084461740071281567483694427330279709466515764048394391687531190637432853379582046869234694631115701596271683732647956347665528288220883902396181634193786779832189472264147504238297037470209316589360195006997635751529771734450231494353702883509946115820801129074019585203472262634374738974003200443714489556188005695753679151689957026240366003823992437371029115197716848972942656456868877385797246217801658947937194651351785712082103690477655533775175423404245996154680405278342731219078285457397725764394611438079918463384179724814285183413316013978325010717498631484644734771271127329056697191359043594606421954879523716939849213893793913933309864464909647796302772003846110927349263871728514830372363059986896198767866956896466162069013212309048876142195352462720516078408216519246403990937448395033162883580564167245817833214230221996171133368022369041188745910412046579717147928998543837258213166822238391526067032481806280201708655212496351848868993586029131661929125691942774234483987314784282114261962688132494559026457031777226682137473296170748611643000017653140878421283495034951175534369203598727346243297740956642590472817052507358551022593397343824062621386559819766417727595148149353141561516755252537583077830431175436982903596243783223649099385450956986668606307062597189009939366953624015180760676809509635833563814842225248659793297038979078145425985619990795177901107537970374429393808038360682837869747745182042142040267463139318671666857419311584826211357268845723664523167792544520849148785536753824205089861855113768427855377650643426907373974973141351676312483621315314895302393279602151293124571821417898072336337180073560513853328702728902460290480078369026473226197206379413730589314212514287537787189135584410460524019614882796593132195613364329385717320669737979097560991601452803781340186249537176059649155057863320364910621285516302009716411125298472760996608808526848509277634403986619581214775024138346053748545890062775251884021888996410111512004047138393905216442775718878838601079368139753145503666730086227679455486340466433774663566802461618137822683108311726249260602731061405594104200157988990431563453984374459852730498945851134705450987030734137332791196669631791176596041615406569654532530359548263569674242603274734685301428533092573498831621181337280222840928311226455061322475970161978195922918406608253306756510947536334845357925279507266059041855668691015506086492049216596824850344174165064366069138391800417302465841296315320872989172167259969141345896187641941547536633989847808697413215448905100377663876911075303965390616780650427592100507793193292273835736480429473503831861174856646649795244586857885781528866427096971766441084034618581096607506296212206268252034758374448258576996519037001271624528247451797722123387358699987110151023785253578517384528064574072119536929673017287078520356422610636358979261697751898641652392809309849068486646201092461382376060333854051781791128269496986362469320724310311663041088713851725501667642980099881374474013072148291485641654589220969976805896933408476769421703656225051803719883643877852270892596891938529375317309889374371469298666279581186572553272230367987108539933387437814231127035795092983610685709249682506626649146947226625855532041693586960884707083721246132942924422669775300104448228194155280012485486716145901409385150609708142072203824715993004586175681675108274126423384724110382575458268521086148917358421757385972323124750912886674560913595234837633167076680595074402833807342547401028156624914540591660615979728995200416489085770509862880055212441775591886341512163433077671174543917865669387437081109685853310449187551421709263129688767082516656486559302477636374852055920569141893498308042094424495448727716839827005402965448118081691325125803254210249573261800277990062802183592515095232622550647630841287647025801725207405987903408821549629794918905879356348435075588559112094320329370221363030385147917817221460167220851693936631461825890344136058108316467940024036440193329735639157337916462849594543045101649405592239196454824663794339735817494468850873570597119530108276002913765287928356079760447087662025515372184624477888048892656727397271158978734757494995780061779197778152560902026152082562021822012346004383865584482675804484867176461790346174266402509860294277366728004337779602192540257716382936626740301179456788091104907493271478104286292979039831399223666945347579017137256612269472983790117228522529506514018536195684237353933465495637686546616711522353528634495029469029368286933732000208268367872339002952018114100009836213360005120081912618036584329316500524896651151973554239461645424863864241568917520198326921995022219487097875989011464616888804188578539795621122231451751669455278630144676031469121086771556576630029549919186547901843001478795780321499507167484612139283380577940046748975488345310242129741746601679364989449045771255284054184442834589542114860417612663062166874826281526950778043718666260733396561036688718544017075508127058678129167750835228769012508317396899894101412254097853065784674133182906797928795343895193425936532290840961654613251322419918990355779186105205874173480288304335793966144958832099694155296552584132749194821291202367336687139774597411770662752905712090241374756982560695594293009093919801221464185520503723021158042573822281328323494494682348312763827674191134460532402662376170943038784482647598313788525844701296074606305561933901336880006624618591917274529638152227561644973094494328944085564401180877667163228074688733176419466031773340162376309712022105914291136404145358074316090231059574951774043515722023318248508088677425320030214102401012811626044731455213607489249951507387368034164287139797186629547579627830809360973871849934803454790553500339378858028147490026428774475387269617139965900729708276610568083313437352831377909732848510010698655744391177201558742027181573462573496406602715584428813238103789988219343459472879789180075009913229487956410936555547516436240177270212779576544083483269743983736819729981169977746259596521440793840629317856391677001674063991597282937475705587215957186354595786205727757091229995592422588222551873287601098106325448719339876261988383376716039552923444932733286430937939387649449223101815751896960703468882714059995384626565217037148749473534483887521739403805569280468202081598977671702467323122889993333667142126684192572807289134205412261251503767868461976076276550566900355124667401092217803993643705489066964467868023054685935091336797008239880800805211828542459118745585242398175653327004699397316620597398822604374386100048132542239742493680373564115516358551786530979329980887074348067257897514097205091956037820664577675993142915511863508728296518061572217554182795300851002899252344693836107920434081447786523949403172295766496666779016443861409657068271372339041230390075540592613893607068395764411250343318718704464156304168326701377734784297323334528942882991271869109006261362168769785591590829061280229041601859094313374443369692860622751352090612554356522686154332816124044355365907310805147312490060707593190474375466775781389707441634339635949269476907898674505997730727920643763273506927508390808360429425787101020332413042330822096669206233319971361537381296090602643797187947554152231151180585924222307672019135501959362682140634336728779277877199301075315565763990248641586436815959397476497964826097163186562354785383092369443018675912535876541690931430608694502930424386137283756305181493984911097139072033981216194581349360923633431000703588087168835667814190543206650795968052848690219883152841780164030221048670709375599647852667976597210484985101317062917520449354279368780955673230435227316274224281730781745226853618873678438222379299079924234437633939441584932354254461488434879873975024466278290084310559138347054708302570787622298535548011071256768517736401424050329202072131780949600571045954577305428254076513852993176242754311096185843863425465806240966379080949553543640521988059735485244567195141636325225644077754201973296201077809907709556409237357115867179935411192142160249508188986790066925512497119651705609790731458696757205474091918013787083368107551147343080674197511793884977914933691071917533645456144485050844976732454357602156846343423577369197665155464382364952681433227198836751858643700041037021859018458557704392482359466555665822442486039683433019729965305466274769143069884772548115618418547385838012510675863025248041048013917751204303344645739554547878646228269215055930663608152863695156966433812457185355106707645224302357764718819385592632747511371075101032628235467992274883368718676377250494672167661211323250782557785900511313423453934385189404896645633652979236978361486187766516282024296266977790844250520715362668832748523530647097795159834057963451213267792330345304462899114130806653579099108329071746566479406345738331387854345877963296050055331192258099677864343364051585734325709941307438889576432689730500247013073142821262549669762436666936295830260348770959468871052091925505408409578053283876197221328171279803666007699050659727365121479725185307200422129536220523161716429777440417166587271911345901109815821736086790226852843096043714024404581499428978484878318163082813027355076764416095128966776344936470925684725585790837840608149484160371365057320193080458179644340791200362772861842586335253935516229327188970664856066729923292748270940495286519638787327218636064304337561070096193326958105747595769409746510995136997672617955633399174431952006826881844884079406675139102725031177400532225980415400174380313174256085202862669964394850104991110334915013409311917088155860433794301705604720732236207323245882743271323553718841945067597531991250929003044190873219812391108613310351819799123711460137098881715510546827807409825794743872611823714502150046180521315997281551325155696672601493951790337005059571639338307901642721779968014767643606656911673336934291357071864363181167947456791060093695670505035391041450011587757618011269099581583076722623780150388218008453982604087663878891026478733347239660697035849532104633685161291612252823289145310869800153118844234387988735141401867432339518619733613602545531439138009186957950473533083846867461882458143228358633846842750503834789842259997718763269914523467875221956922845732101574552999814983468192628037072938635712575497983089554061732476991646054170340851968806557710521796217113245846364575148523206902270403313502463082620611528376689622953734374362492818138504636399765958876044137707491948114898376579532252761543439323203392637302124446235250812702653717130924870937016099290105606607234435674178652516225331879251782248069058707570458079044837981668242069793095812653020491692454583822454911647128529804061053954527016692735163482360285454145622217261092248969364956636819253320763922314141951823185885050924869419952297873883604351547997290629033961994990319650893419975772583569040308438568590753008747397894775657357928089597530862968785867649095889991348866149530831464655449897590798009452489613576812321730054071154350315886847153082598290605318422700904086798005147633651553258523582795290283340822946407264030400297158958413798100192230534812758941600380000250050349255401300595886830878965024449717383127984690405421139174198915410895433792089508781182077015222396383331837947538157324945022124881664388396334501724003889208863895458780508848312988252155281529870301113503565087923158454278983074397687279359313375657493429274815581554683986735641214025736662968770963170546596721129267397710636043624309867930182114648375946318376757436277266294356275513405126395136042576118122793711255311464716902764232903724034823431115793218300351535751739252514207410366981973751479609427051145085283982395770188705677409072951627932455169114325872207365378361250950960772492491665198478381233435530188287179004360804731157069509777454809238860896276342118110629682618715322828202744122521291825900274679147037166250492163386917985880444059246353797541639404989511390299075361603365495270929540552777660347134202752525012947761983883608600385016878499587410850558673685031686513787608752454383626542509608164160396033768671342235699500638865074280352435725953195659807211020253487869437679004137964476822507272351432194302925992324228549500969508428524430776780276668454303418512870365618429142513163269739134216237641904918691997774832239671867913352066506427632900554430477789459588244313468765475087384116547261442036647718111583582235987387540402462208997932536997934591396589301753867778457116191600665906207735883796745731582725161862005062687070522176099346817957335611938774710067917176278798401575227000482347552318364498544383369758394803556311300223703904037661437267397408762244803746677093922157054258532829605424155486922139391169766718136787445790860038752518763419047038287266078559205603333786814649147328245569378376078095178629429489066182412808514022446870172882269134796854879109056260145788133706280525178932687577269552787242082126771754778095601147679109980877323478031836137409789213949248623256923810531805326627065628875608400250556441089582822151970936256578664331367823822105131133423840343417299647810698909712132663282970567157070816581060532284850983061645593301327685122306671109838992941416360764267578871666379783134130850725599219975820739397650243388147818134996890984424820478594493884379223672759147375016340256555059698936542194432224484829871907382327534461257989104601259297820114971873010972686697529409603507469197445559842366853794693743630860248791316298526284237915998481105071750574600139088173913600326739599896809976236118380514176985317590165325258100412437350762505223106150821406216762844825546004812115566336491361593391183313191079509030663447265869738550053221396414718815379770742881683764487185250067321349619356070653001932449012642248301137789968001404873912870197193631105204379192994810310636840369720642731172852382025924423625725348107687390846602465309399516900627800152942834786707905430427878981277703220915661503001132240939104209206620134967978927243830039412398159580450080529222011651182201681355742180136822998580940724449035929329018102860790503514679052357610141011236933251417790260690065933250281736397482685511372031611981924863535703813031498108127648404689936034202797094760102779487121349487547362752365912139417132264188979994532010583281197290498661147194104251464190861825732936175532849584036137188617285484100605314771595263890156965991608128339370385228839319255673587485320428979829512231495445270242156409305572657597785287433229737172898220518030508313022604965248527782416256235964320230785381463661557991508487753296254075741033258159583254184501853432812878003789355993403493925322933330317276949225875513174737731418884635677643530744830863648735589039051903072955151704186500249348614268876665562860027646481899995300235465037733159990667041051463081183331058241179109462679389407834942963429377037895055399190511089841279446497729602403187498361058019200741953579515310032837178052764714169019625049877452900051821344610552854036079659944969222628431493278961476485836036252110212315173923174874598271687034309982629655072394208335855102552072065809170910910791449483568429749019265825966819382403591653670413500161310600371527382458122376397393303082169981153515078636816051372231100849858446177539692616084099893292832253056778731959373044228976434642637319696411585152792151817708358812249083883933608000463548011437579538214180650254491453376740553904521294093197992440278687300151686286295205762829774216243002732961646248735142249864597455184873037281749392445691840266012752845446142413104537736907085246719620807886828348140129864515188589268203930511935456228371685087711651030298308061164796813944262868308776546409760369948139335666536613891889858457243472612354194792642844734317922841848781845255466730373410174976184575786746585786191062572921414171191916960207800538087813373146662589022489667110817231024774387969148776939535351887830078159795019466213956986779583020414891060981803549496163178377725479114398810836140914170988248095093905598370693710447441976896224502315016173307888155516911572170198323255742086476885728101190409170151018399297256948287873814041996960097480395215910283445029039016214702788155535369526368026852892903700909617267908965124560999921982207786011671237339256642754369870661696486870869290020363241662562886611827261915036707737882061941274239936863381773827279572018537646424591678308361644622440047330090013686681952880139909427012674680506802474180148020251635846856771544802933607277447278304361724467284519308711131525549775685189073129049278014673713864466464481143223216567836003457126403162751818686826275418218119331946064725076984133457785487574183114082539805950120300568753659900604012090395841909737609365564372134295733536373006422610904305989245681489500112784502648790438588135083918369881269429288679180387521081350021632954840496064095750962927436658517633489713773271856613604538437487091890835452103760132446799697189599230455805471599152749406300386920273175436553828995753025817637741677005003442358102428640635303132518110174480923706521301186847558445920830474197752237658837348665358310867605217243950912780065173123543541602881416695180859767396634154614487564321958919471418691399328703444423436738237163475331737459978147100147364138722283246897056840148665110735455490371280020022666458658964195291807134788751631035754068536740511490272297695334801676593064736153222936361356550579518878211569022227933740433862463651294749687537684757438099185520548870148871896597180839163429098364662276524717710159573938912489595364199880685832885245243058796657826640523030076450203975299525226915391768535287037778282253234840670512795085238860994027919800199059451006067367544926960845247418774335450621158905173977466130307643197524039994963853925090857670303645134842781480672566796720021082501119455376155958251043354388478104199867053071202471748034150268435421465808599684219491046282233949698198880317335937277800323980178872704151074958042267813948865884658072872210430582226012186392802850513767458533127607630478670776050821906217199907468752265260777695133071962163194262197873774114824017346359091540101575227932967282403414503088438696627805572349749854516382760310570380410520974021137060076105540416677232794444631240020769165313969984006203607122355120112419583802514723738923579871863384899588453048152665317520318805349090818109408113755777202364927808389606312159503529608019698321874801620344948268084100527614840331014277362370383938541375897423327741365112994706457001546313850391452919761556980146105111482190244124165961769888119078763901866199369040698759034834056837765576032244444865431189939492346362840900692500564095523835864829764775921923175082209484419752131977355064463000655282766313904165379465106848118361951176642003120708448498481223747845856474849259653791761040199460495236145994281827402032046095723960606661980588778333212017231898742500304682996064555236269157116326297187973762746794606806903888733605752776631727871863782825704473465128468522485604835507638133924265232471738208290862168175435195405118611408038819329492312645795566830078441569085787130713725472471578449041457878134138179770733580069171171429335131540565229524389641967813261196357584452724080889792477229227937114492824098488278388048579993579408007958919686060264631896825440891633591889993181924872080437046311672080740586348323208080968446894692608706463517636394523023266034699010130721806160153435289505202864893243186841263655066282335937196792250169746014988721225553172698121020868242497852693328413024855372353861268888980545337940243370232904627840331899705820443668402146553646273097460235511216718257047754418807610771616012169601508894953699263812692227761783704929032817173103786280124342596257256050508408586584779259868366415633352692690989065835318662068158302675926556083482503766714510375494408226731746955377273293923260776852310900001179290272704998696665331891443590073954457495344266111462636937521138565078412675476716350814303729482217866836760016646798151907366273404538680455624369387549899772144037698520527882386051539109589662719369162149287188220176488531592022744360600491740867234124760537291996357692234040625730242993106896028620087257704610503592724836170688276318311662271355461283992943820027031273386676006885071125374513278638100587240804482003172274585199823881532289681156042098805475956912517252681600755742591064994830612286834818141781556255595012247922020885752621170892823494043018408773218350769576690221030220387429735575637330831422561898112555695671058277191262380509941878655660041807815102544376502324139944123050129856876738256472716110348014374280613245224553798436166206562534120259107220696227856329802676070346068365607446977739277784313575325772659875002322062702973907439448900290805495851638597745210824468992964147794220773078881470524108369187076377475499862992031047750824918028808460043964726413710505322159065791932153978322299323748887977261152574966892664203278079623188737510263896217203205329801792260761843106582831681855923570121539469318272596095994597503966007964953211238430429616080719553525997725601222046648067146239454179984951703191965217840749202247273546071142689433787484205307312011223036142840869702828367776469324805156255918382608697457599196968882805713814783509610688775829007111530591896478716279124524574160432400359454410533473975823663197519805465689900960071967396205760918234193438096821247723660075899543003109600506531619670364788549185415621695369759493421095574387099708571365441963205445887014109280910031557171318976236671175448985063666854075283689295746579871786801172074745038229095845080946660180923349699488005267522622868085901408248609661551481098314970929927455100928540073975916677713746757984314804024047569567127342271410399624720034841012837988048243806364181381889304345970571869458706009873791406852560736510758168925673314038243396010215855003593651992169716140484121982032903344219551658329731378622712892568304526163975897865604342779965127959520860500564962922081825594083113494534192809908946066066694523550685822620329573260690520715077496214575867045475700413125632510632246224178174079470081432514581981322044760367309089934051901513668184608961618179413042258718358151133398503808933123624200516884091262954263562745829141342948642776621176171329793893638911580510574240919911000859010851373242335264043572327368295506332040690492907106935158918256341700307195882750400724228162504926750286863208968294944672512197532087084821155418786920848974653611522072928169744257041299740729219046992801889228817543852936256336545410632309535204498588860460802273238527503583510802689760133513208715194428461991693652624642860765393492471396828834465589287340426874059614688531217318869425213695345312818506341563098863373009447794775429163514325902431801386019750402530941807389973012785032104864945156499180609396537475187920873194837128099131357798914793489770940419605030209318714649070589410103440479493885555851100448137583016247299377349570318906004887714109973510298879553941557720370161757807503751886233187242655717529292815860970419857591890331237852737702656435272419021369363293592634820752849952157229174414060609159713885473336773059178188378689217204369495254028759448321250883675696746457845670722172348247395637141819646036640246689527697399184384358396391768560006679777186699722497421341846375034604803062972103396448946108963487129607414865001136424389293236885757835539852456159093547305979405256081846391581366291278489654759900814416336936851265337257240470046822051395579286146480320335739069196234303716301104773799720890875175941862428407558750388249985283623332449842825392151968550323404631923096783051612849437117638597704780524293732165862268526394640799210156181119083173507123105500003833910610307484158637985926920074328003378174627541872960181413168789859749027744719431170796101943698807442266951413192779300521075855354479473295102980220531488326286261564777773578099841274914387985527254179413111819586349226164178679794871609285935053634934624514934276538370550598632463146104398844580653848132204399938596767286812076522350782617446461379356167099428307412060316762190163476072162561484926098678677114040068774077610034385678294276565773985757966405625619560864347312786417437744184010866179481308212596704345389998488106623455017985188117595862640550982434635590876158410279737604979981948572347437520206286398129570411181822621023513662826166357548972596470305437080466781593602722515528507314939373802687569785443929838948448782486181466612052612530470308304204410437079267318729448402262439896482835480803010394102721416062994839716054378885646426700875788461805685959058092120082692801281631844712059081037666564083009430965697098573195135030352587176150374341851657042940688563145051331321721384353863045278312488287066150762767937327174809730137115416446856262807272168864616364185310486583620951308625898652389051572532009278774862820775116091081765677462832379400923703319016914574772929654630311109502446694138634138592497044353446787123282641911860050131736347509864863386366463390115799147528269376422900080304384459133181864162027898117463219425358174923128069542756447149347521390995192348517491938221516831163774893032759747428618328090822293662938367182823378100701494015122677308419732393888134180420102086762443569404322323354890815464292041862721760185412006633052567995238672400285550556364655912117009801461808453871887939313405192927380004901410730923664376554206412634029015223934973031722516462757110831697369707978374327199033734198595955564748464850082976794549704596853979774160501006282611913672847129500289436509397493104345785477078010389331995597813663785016987601203838890819257368711291506908014068711286610404212627123324689700022952174444566483882290283435163852798092955153269822196375379384169249159847889484572370939699738702585983289970545130886419977467082367100364299121896413271739413813692683512927079766633857244340780227465157365078171510113097468901042217482689821233047937133045242679825680138888699799627843163075268087067006776884477095107302484765633675149531067480192297013706630094993935083295352861409712629249809166301750499786803975430293399794837033337976305825291415574859972096102696359779522617640531698624517155066865986081614935350694983203417755106660207498703933902192190119991653952954796610055243315325311596924862437274471344102397339259894447556744290719258305637285141986183540675395145036022993713053380823511735730416772836215561848851108775405145821981241792254432489824099741028969389215495709894118628569437402407499242305951357755500203374309851156108801567999526199233155733125664498692041258530483819151930634721247270815640275588523769045324887409846878027668416634451730234028541276770874016843898507961613793796954650621318381009836603956179517232931624691962542622547670478202138198392374696640484468687437416567878656834429062758744181992133528134573077815596032353108623635586262160369046635260067511332220184842745948443789076448324678254082822431850098754874474851610636506081905268154256714608961511460779627295960448047266444545471831705894088426613751370108629123615917204695209295844653828787228155760369359651362428040873955872558563918366675541259694694321281125159554738251550567037887571322029858861832763496188683446548305692402696897863499466276744356860426873593003694838912758688951049734640851337639805950438847012245066064010515777511513151738035958124579654398913179737757226043560458293616095017703156598319135350236520631493891517193705614696627650007889967509056594628866562286300185139839101562543679473409549135541087348783547643988241622364139799270102326837138513362246440146447021226477301481087859731693881333269013197439201980243830288844002015000957111450704114372045984087391841717421098732426415266138455126873188171272158559467994865828960944717797213075120081747950129975115919706045608406019066527100033950719158630946138078727338878400100313694069772365380858991270330924548505918358865351599849097191108208354684144867254538092401938871495336805534525408766348367362061257095305630202363263775598576055065502180488153377373261889794253164196614067955105853349625851507143713579285559736071610217444426749595042055511200173782291819140813985194988349612803283575623024691132156343171227528374919676287671652481701703462063845843399622897716735625470833353541861369286916185856993093029040147690922666852216779812252030639610062493101329712601990263877900206635878837556051212127623499267424815945376869457539146446200968568134886941113350643815527327429430774497055779306540257812331419556335706253332879989148839916446067082424170096941023905244363190866079870525372695107188589927389060928275405816347891100655035871977100946762365591540069260312185992435427780776913651677713055029614991045699501880311339520564465907725487293182542002522921487591359874726711919023367262316052083428980195890329527316057843649922282066563866562191577839021380754576457491658114779092281388964960084012309835234295906349010766658805701060389778736446791397532385896232336388552226783390051443436787487521975976005653367995891617555488489148568509866515552913131667460897841187046616174201097510570007841185533989932374397832587177717600812446473246889413241709332064081852039067961342089294222088229336170683749788023314067310851324631388875763280228239650707415833373232608714122984936771716363376114709877380800452003908665461102326877564193141294281835909570285464365906145522378919825674231654826856047907599158761677336029262341673870363133207333956613689293897915524880176156797873344801158948336527086549612850564640159878606642080445147103940323405105841903515151494097538448242872656930103404700010702988553586374811438048018643787929986158519246527466959894450258884977486828314946944430200785625713657749720847610373073373065276943163739382305267212382989605661221686043885827604214805992139830921606458366601354563712319969612836152304870325743146605667707816756938975018049780197029562409634404794252340066181086529912893980354211807669923554770007010551480189332572324675226566853523250764943448401623606819864976191468493974016866858518520822065386817785252423852253142019369900914575181745630166694599316620923617438556703744139505873141813402960512315135408158546313287594225225767750745107246980628045874999300445088039159242222626304181823418846696679483098645386447690970221852529888199411502110978199348115179566442354943798649192114565319156658675678126805782177478940386291554143953141076594948439024970447967551710181017322770413066334947847959919045495580074154035017146879670623902062938927425585048999978750163942178239653957999558785142708825847014332975691479239319883620516854402193366294389784977909391966270381053211025816887648057544272442141995262856454623139566269074004340299931495979208810093068793464290310940896693244853673037093776480093965670140950131729200682065371175502782202457079966742299407326117235056307839140716090170945603411327077545320675884445685016219798004124742849771849677524301225722996534563283250880517860067140772548386617506217648541124926862270662206988470901982865173298074597443484131303277891004562902850561173367314126398595346154952897201893360603341440358524697653181841204845425064747681764009034267360538558394564203894007188279158703963531748204254457507063747746679486390155168051003874498168898268473012423115303383631560508963263733914208266865369649594699617905885374192144290508396790561200291845452973172502676706703551232004260774330146346600628884419587919344662799500197123821242814993322871230092571201819732762219478067680185078775188649784149319374597694616771410542153640704789328546734968483398505753491167605625231713842276625553569910910128062709544499714093537745236844289118983610431576384951612482272928745787423261369327708835396527613666895808890620784028714831854625662999839005345304228268196111095747112870892150192346215526126108603416062924638764332436207008600260398235376606644484796276539809825094774174880374797830275136580339088029357482219879810263007869636732587854263385283131438958283819638602118994171200181143643992962502837910673073888022091913810708582572970321133652681505630484306031278993792678268554624037374649706581609027207506094518674350571116843416436498587577930488389372416650336452971956489441920057279664242855534870155929844485983705849512370405189159851727334717644504769801011710049924466455469794548311310125706242888737861251332212466704265627762262706766799662328296543284899472092478324722289815949904354948263796363468158164530451819946638762819374637547258071668238664836828148082982589188546325855082331183829965824623719915214570898445818165745556666807287412803238476236744878679860503453917451018594674021885315013419955224404738850311409937737842265984084961858964641679729103331165126138466223580378973919021696946568915504017731177398274004769140664417032572962558198725458196256461985657813208116068248180285615900767816199916214334145963420310906966612608670246050420736551183532891009841944666790858887144111279610699153106884559368720017887685263949616384313765472453794891486632833132939646178843499575257889720709155224642658918481708259223162590865882772167864314385984692345726934931024143468973526696386182890122621039014991176193847884794017510026533560011273847364565782450704999671426603383519004215241119710033250154504464110472637663852886240199939841996678362333254341936103506109891626298643177710733459227562811990207051282305627118673541156938977823933995281639067095539763291733904620191747095002839822802075176747499762242092620131025023483219805643516819904803749479954715978892091337336947149922079291906451383852275058498703499219730998734243656083374696944837674767653067567348273668285235790852669280984632857844044163858291170070113747882916261377161580868318575555343458413897007232038517915759125721274003357467586098959536264461116413131019717558078619070811193144208797020748556976363515569806063706692754393316268796755264640589640165644095236615287792465060477631242318493799578962208581539542597245691381350917983159385439053638243622693457938511506829613312982773211434017208661957232060834898777042715330909887224457382807857655982760863069215506750973631670260850903313538729406364378693089180254471092638643162869605209068179580865685132412816904772689557323860722599084919969621947819045124186843555423587224169316388524598540309614930811041356452742033717403750038074670212737903160386792178065154280019050732475161649721132069176059392284340535479618996812696991267396498324954727129781455061402250336910520976465880591495412841370884236613182021681444208751804178351288564706073625822494535775695311261409315735750184729175017266755715432824554257854859350770507019290467261333298926627195456044875530366861995881134429737037444625510408253829588840083047495885513047820905175994625593146616629894561554918302908924385801921846791861660566171052937292586794118802229303244547258117402077480934987595528858668362737763457650506362060186615659306569432639046200227216818410344938946761672829108120946963952017091507778270894095719268812212471974584078774943139594318952605168562124006761818391656990036343160222675001702014366351065502620319001456475261723119214534828990283817441596801079342523174990917808201405845984560106854478002348247148114527966919447150616394252966082508277223349479732524236637897026707779192636081863442628090233329870650165749722634472267452020685211443633423046601935988347719983508832971813681199596935208928636960894918888929130500836812496843863323011474641200329614156521171168150659477808302774036423723462948399720476826570491776937736999965957152285070055987529268685967897022518330243702707047325356178514804209538267564610057308119910941986326455401297283314140189351305287603471769401554039592728972555108634648491393656497067984695297266175018272046882005038396214038579475599629592742196728348864568161472661983423039838893037912436245159112757804605082025072166430778354227520488418095587089184906696339542459544694592343340564234071000854490906208348551019633332937676331111346634870417590382674769805170339315948951079202758575119232030245973411296552562477559460148112916766679734415660638252555049014031582476727209726372633787752028666895168419479356560901608833094771704299986553364191222876233581136962237942684184361932040149425239289876158393143236053680466605299199014120701393619709048664542235987928403239502228002899716704556954244044114193842168383917497095972158739030938805141214435007649366349903562257310476144314749134339598861760383705748505602165061019147019754086529634396255907641086366440721022343851490977076702923145604084448998226966287484435701284889435970091441856062801074445044092488589178397730648903525069088495869376806180849457480402476641848212252754943679180795459528291948277646014960907806599940658080835479498438552159356285156402875117533395214335960989061985433518453311890234593656403241481770775167890664153372644841037886723706345950512110239344089529614881827487417142872413091346952218791228890743700963810789772894984892320412174526400019283628072993650909919346956960099444216541397108461599060518468788067155191760950724354594672163486621200063446067248258532178063234889166376930032266356031372015413166704244101525743452371959481142664048790513653314649583098974503290647994282175111682881682806373965254350697529182690814456171016974316821630418283730171781060240872132325124682092029587153692952292036501875034584457503617662529812795666537772090982905496650263294510129154503113323633713673746724047677292913272836831756764537287135804209448260501111616698417469148616029744748002036780594423180710406295333577449533614943534595168065192224276977888823224878168575367049707732138653969608317559527216302838266047413519757817891270803268754252288313277608534467300274255781428370834610599965158927634106769266965606382612024142274347100206734640425746038541210964972839421444819066254382253561203489803852838450234497310787729111618550420445449096929895343451932425232393795920237812651921732190386803939712321290527617563374160744935085718209620752245504320972846330113340966765321856337124847375274288726862827309754848437660493250038363734144263409372936731913132000771290532759147354166303983418806384613014646550718865680265961463047844691417863726444664003775444004108259961476854754731996081974975665617265763071037347455331179513738469050489014065562400676361857298166971211118900074145582387384018655345368017985688568521283913080445336531302060689319402125917122822613030477906282632081994303134370912253748775721810525037429496414666614400891458063654927776833824046575953187715276044038416180573991274948945768985928281968369492966255583525766927768463984968106922583859035801349456327504210714640283694327445483175342070167394871669270183408845518860271247060375706944403534749961025567846682968142452338376780283642089664733948913851532927029368128056119755840516359314660692453772353479140149871874986449595592921340388922618979364674137034995970061593594980960749292824751387657051667069768485273654607423247241595036866765420529266726395735086500005295366928359303087580742849215380289660831648926327659495992789031412544882471923786123068858188008483013728922371717343244632373505319172905372328992556261172500258053884015673129702399881633333709299496228266201539030910263393901381566028747327254394634941433975052612059800978543554291732146779284630983451821144534736986744817162278864094581523424045832101737672806287950478140992925815967807621914979260690332204499455336590400515240085034287201505858361679379115675254034460381753174393473884475682654896406377171827348791103920041166757013327609774734849538225966345029903289427221377293828643975518499584259440788353451766830853538619530609247036472730211808538884043134785280692102685304614927130500425818970462818365298317508997046459575170621626895993789025591584212701495274759146732175894573630889040159570057413127387749198257402997531061390625779705855177588338137708945788785833979810361593668273820806895185178789310989616456357474117551940002152240636428297440653379905890791328812190711816172032094958038931363921203077237177592126888941144460511969906574619971966221472019070073387422521159559138168336354675958191080111700280526303138195438551560074037590968892394162199232913975257797581310497301617899384073905329297572954981124817817136558969831433483762486698231218071486182233678465782341837883172713730420331215879617284669285120545232921943080802084361539939917282809305946608657587942720551665706007253779272896131020451502634317039644770812637968985185063569264373189370516296957732324371495477873611269083304910562367607714089188518922354701678455616098438991391914209003647148666659606653419340393219346955844256691979959728153280460963184955705354343861855130196888480419573651437168433368183506318778664650786444607548968612695562678948551372537008864274587436784631209366347152525248233326528397097134624021845678746346521414708064598668299362252050422263691176437750552045314977128363405876236528933048674572918344822777468162124718898360556865343670974276560173740277434291306494474853034067843417775537475468195349758584368986214166439133024548712062156107750246057012929305609242727577950199313725917055204334301344349749184141818643526696457098787172817092043253091310427673001411498565179339948425510085499985040090101455456085082393026911750489514245585849331605917183037612470493701363722937643420866356246000086276372703775499886910031769231524961788949843001290937583717252943824338240161666136355449802593818189029927658624511548372595081574797459741838586305324623551617842548899113233639076821846272007485851561063236178863030879732901343382343854643539699829612277491057490879762588823597692182994350328980164658931424918158372639929358136383053376135322154295814115712477678141833969647125451927219352929208143801702177350044255838047588546820514863264673231516704529014386337477689687947991511546278719279414490727423228821677104936779415852734135760541609050918869684718608986492670868148353714651661507018384766418913250814144125140840668085219201686702843207955485471421604954216763118147736165007391476979671131176666943706029682858429356338213409590759093344614133907376737173760986158302754061215054810123092696276034621009032424293268191982784475665169650109772329296118798182258660474129950585708617249686964092687493453236473579459841939867779375220474809559752491239733196583813010112668241886696586619558871423800141224862596387960161051898559288566787483529036227210282917885857944218263081001176387421981491085697218971941192687615857385129532584410758045052629263245302275840058964488895433832934774889410563391974861207921509903653647098660926099366443449969302826208241015895697094487540794408353335227540710357666310448936112395998182279074091780290785130810027005974823065578760149696175355578367484549894494150252169604689186548797863412094023775124107848200336658256119614592909006605225446520479711649131068359951292581964443602004396327341622628600436115720225054573660601943416522314505062895199529862970152612945856901022289269486218223781855306039822458683457895806925809833840527895273655897617429445959219283491306006149779657305318602432277981289401794436747870211346952263108100294636039054482430914702429584002470787063267321861673963865944576179510531107057198152659633346139497630979114657575293363383754202988707743605748130832952837047028329394633301057162239263433516876535981351739871078607212596901532665462699686611059743205214022973986960449434134093180214426030027333725513943702517862525208311192387490711568748562463672064007588760288505346159847921099010642456091670517546474636786304508144331567814224541082229644554439027421749960444897304728877853499804681362787767822567333893108450143723334491624098349662362022414832289827263830146254678426354520324730440534033562248763799707006108203959710474719466375617803059684193920494148871532400654320690764559871208341172953847733612220622495420079964571813932142589731905917147012566634568581145997320631854896288858853325777977575184708816791280513078744468930591102771815013056767117591289280461657350170195941857629297019684732648123769938333493149848605753363587669641816056308373287756584801630570987035282888152482873278518412417884627098262768712042289671829317427933309864832803224642987539052843277524732191650201079670866677441925041409694459335079640349296416413942411663082695642624109879026519444658184552062619519025252153660518781195796344444980821709448105760923185417230354088681856643875201050303022098559649518623282839261881508932043718593835268913624689951088405843132351780818283755935765384440579047767333013690249013730499562961801836570673519728991232886635543272839337588390361215985446385781592163374351919136862752174393395621300291915672674188191604571907539217122314810206784147172445082654227488182697752478472632521981434383775200812370507265340042101260532656681799893096174540209746566950528801120499921963712251015376337844766530316979935425910018827372944814567067678756262361554516261101909979763850037336783464311717858952556870969706142685421089781016899148634810476569464601099409579899223701752419793056021505058334828369343092486895168625796537222568394719148616701641309902954631457110561043377822007829757998704001707614808069729962163221918149664216489061292465161123854106588694595335156107354043735630238968595682440221621617334923925810605520143790385000424009084740133216711482859345170105328014772338062064772548923853618490721484662091688353957648648579293083049842937374799400693773671693058821138874201420775967175626945120233252941853130418346912268202091854646088497260596471832375581201811711419879731219939988842422667860436308326922431629049954516073263936654137087399810455482519086896436293398647387557502970281047223045836700804532328916690110360194332782944293131395564069775613157644722231488771995667200665104377388525066689059121002645574965032764121921546252323452143173523088799218291118664708708815396310974105804785391999729458748148137807912321554527466421803621015523831696285503489439090644107543513979440933505571637634750630695356776793012043126560549332814473604709238373879829768132618803714444390684590796512136869262792115426392279937151676611916062585029378497077594343581807579672559909897207039911893312254153073511713632501115481081487445608255398001725059477446200014386999353053300726801907078709057386021858926284175522750581605994692592641646197636948935327815639898095555031957676939837053106587431640844394733830085161429719861808536244243257040610431041594241387992844155133567069480417618094994051126078270314989587423159570533360830225146758934782347869053639608863026560320985997789588821287594982910130511738823506582128959886692934254799772453606071324707007794500724654795659409088826231444564947819258503891301148484335003978049971857536957413493299923319142209263684699112379438289993299474582292270488030724919387948261878880754695064632648368015015544808553682647748825363883243812334317945725559181666328359550699154173686313104388644105135321084495222237991574623325810443892252840731973423928231268249607695670866515120174141822202093514218333549571444888836564424645252465012316633600377700639650004614632807397567957693519310670616052444915650956081022610250085496635834193806963336999465208934556448025866439493553657149279455598311979733595495451490165170941115588421095490078359322551565196647967306402634712983358396047840066373796178961143763527183321753141816030408334119641975432789413791271903434264105117001718106584010296913956448468315299382988851547824495702968624724324049522520083283593183967512093504503235753777488998790770037224837102773256683886102016271595548695004708998919139848084220799873346351514122434271885178154361609515884819820047711847195205883741815523123634427497214007563943127207898338987519662210008986318686992669796794547270066389389895954296657905427457853459134456843165120399957097294787825531092508057074138398472636480014803743526762336907577919775600763950696676245670907569138065671049765902749024086857828360584025457039941478655768306011178379082053206904098682390902860430916007998579763503485653260005009377264450581833592292088413361023994530028987970836346050280166974645358185653719196391062341765733779721499429077334529532924021506814044613459157630784825167529372357262672498041179906999655343375435120157547772038467801978191013063578492489724343656461154889481338856227654683764744920818789544456664238428890097179744527332236901252469137115834093446322430640669544988017638162712812549640294424308778710651902704306310711128659821033526980234386798489023031769768242201665868093641634573461996098782242909688985219835458054901525701781868969830822483817927424227973735662090724967634526469119168740689394804649282831976669110181066245880722743900468323712500912358390814385141451296819983291333285102549502342069362125131741057098707653452694905154016456608820653732247278319922664668722605599941089637776957340533756044526781752274650113495610813619352465216163703164178124954570280183457588233156248259049105999789212538007507006395557121713040373917014525448418681796828142850007057548667275105429998509694206439207947043786557190157346730692071736174168161656469681232012413675562963433760265504131713578343783284130151922914848872517313272482622997610023380432244861803422619368533893390585645706072762834823949098058462978984896826158535589688819273011768706306201133173796406211328845702530305750663268341501920304331531948520052376411567579463014887326207965723004194811468695509693877663084165223058787735379298881302217450929109576199691790679642263429980555863651624633593143023738091334509442243361910272459864211525478272210177720736006411461958345351902860662974002324863742086490593866681521852515556774136665135775710663583797506869055655895573398437502383581624425105948489522023915118783522170302449176245588679907764126477733360834682363432650280945338605325788623894229827183232717354624741725611366912910332350156710990483227211960397597574411206787184931144978667103522955071630977856791495547457108287814855701729051682248428395497713422839020117970858876211699430450780823223846303663884840236650107030486217944156943812269811304192852212930652913079459406607424364583816891669637410173819262739893706433807014827168944948827532410734759459038214028738515740310995679369027486220726938865307996243815361580569802420992383644305298933035242194141237881600110353556484189701905670840401893612885846421897008649954148228003031755373381484836573320154279622637826344766865160722714319325324346711023885464181145074517910704627510727223696041891703792545380708635500363254244598549059009056653201455266841028385215017813687333419501000377178416963918711158645064273907925871634935179797591795460518856598396293601118027791404003576116547960026562632938275774274576923838811127538412964576242587451210532861049915222339891288182730394434214654596666058829992952973987329089893840235838984907198075278397459925839380726652833619783370086309813056654745445374203944770677776011478046535104804009898352523433735139931677338417709475012014029598731335460429702110871104489023442743960961599947198922038014067339365800378850651104044754757169233962023266137384946115858415636940306676395875763614006608556692569151879210629046167038565405236966122022210085433160121641504838520859387897758912506857202005099731668841396943969006601196727156137596565891312369646980759670998758052396867863921758653985634225331618021691440706185063631533796756050753116604557403706656928911011573932314540007134693970661493414054914401167470015276472265421131971510737633217233395504842049486797839936566693008604814719998896401304953511550512498726414482835503543069679327997525429795743013072099836872103516454245044533215776607305404870471562560855433558967844844219304234538787176715739714280308448810961702437858386307803686978350838908157535476248514827887290736629385688044406721195073631136837747261636677852879027162819988267205819885026448187170277498372073324590779648495789564733826366453010424141531727809695525557852063261551927669645655122736860632546376274941862940710554279281934738218375727404125613226268595173700458362209403751586859706804167236429227173437143876350950463063259674313882101282821159995366011622898453228516331431091171698693907604456040196286241819400249382223269613532857322256265463437482484378736233905412161559199664060427106929147026382964101103131103137685739947606365160753315691354436942599495189663719976312503622416384887316241304496025118236008884359069554341972394823206979328850782262301409693548130909624842431655055465391339249451346176415541226105760541853779050816525300125126143977816076830242334516141024454690407071813417196486416868152924166770040597737987143667749611828459734147813486017550120757570664841495044985835453643210374519369178580092984034957072051432793537195428791215170093228497382397373353713470487139034091179862413511133462636341260432411420733468727370003690619075799188930105001181237178415321724765792417803526168456425193533433420361587520975328983165753165454487820043452561155303648065473687334081540717007443640583745319820421642520586493337889420411985258239053298346155454102820959567561049538418726246170741704972839997842492379846693577459944320065195296892596472316443054199850609020611336865392887757416593448888521903733895355199787612043129150301031433079115942194257164927989277336602546491366943739235953377850313596154693620059866234901952408665580616961218909769545207608146326054487880078725625010673606757388604105377258480788776836996634603838034484644339151509614278837248568717857291907976971006790399916316043992561666856817692285815548674164094736668347853785296799334714985846107194010043139895100953076843320851080825234377890804351205778590571808835388589199034120086765107772488705124352864029924918476964839864896441786011749318369584834307981011904828843289107540129384790776502087063425220941250396154204415325051001044255464749536669696471790537386262730161826363141667788504318918108909818769866688436183233118939712128613595000800092135423953724822486836780273692871151564795716004584946965035296972205210526624498461157117050464540952438822219307911292893976347702357875061751636852970493536546638928976142303357814702435029189655731005931320014295306325522772572103305703343713187950230955058687392861838897286912847472174387304076862791254620265708086256203541119911973497030162618531666643158243477668136891167426868466523755478106343649586515178421427147843764345741061580963719918659855700192615179341542233240232656679753739683703407911513003525116731504875238135664284620755286476342583861106263661437196099011216192131605088152554812008274630307658168782401384097747710128476585274672445434720991449980801551704084549020553511412304548299538236370244203308855754967486754684234407159535159164265928885650670872197650623195328432291986136601027997346916298181156345914006274729666520387970967993382614455729928342690543282850104565925780496778844217955707175709418513553001108301137637957104655817167089265606862630602458108162539351124266266216383000968246568005837357562455897413947992460457019985783536708747264540915688687601290603390529858079220611399934110640901938526723430188067464926611328257395206928128816872150584269426835450515091521468779120285258055677362398619392993297110209927468080485156355704587426680879100660107954550736534706307235211789787313366574026744287130970437325180468056654158962018470761037103061779933928883477885597373841806156301190575543231447119851544222360142580122708256485261304301032485360543127303480810041450943715162991727813731616286756198887212199848945584468978742116340029366463692001732104887105176694424839503254617467386079454290827750038634899872871034234089369906879277348452573849470278755471099423443295002202390158464176517384812884810433538155938393519585025947765910192212575652730956153878756609080014814511393960807445205537566219415697592969874940620314180384911237975998871196465206759849059950482941052368953010797692826845148491995522587503705127529689059163347696553473528633986885446401532088129421761513311961138009433614870650664920196557767076238292116184424679580424365081510804891674827543654297656088477123914953077913116869291114052717207083549057806806664538121444362462956299232951979216292582701220057458975695290373889606507199385629513506691486482657265075869442362246250923935633164267123543158185373588828186005117378472083744516409457218491945122623037491663765772322290448708660763867072900216453658908398995331531667919419126167861499140361819451609035092280719556128877366253719600018265675855471231053734023553416790188697943567957866875188279827320648775734516370374320934317698150507800984245169571320210247083198341219248786991934830836267068989158650510152214751921941322597762894114034981338691498056539322469464621036042597625552967073424408631718833268518708716903066989077572355017380611763546000183481912880618692612613136868089450166214166280564410412020936002189386132393687368770599737808235746633676669345993798982829047326665870053206895246843436336340690635251513923888917183063754804737420612505466780791449250162321268466469290658802302429787349809842044454181134977949613911399772044673821492338696322446195281668462574071379734843840459750443735571838946162313942205691912382512082158039021572547451007169718496150773910080182638183643516925097159863908237322136982076533179064954113905966817616012258070123922159158437831786107877999714230004925260460630942922747532573679259112819822495657281228788493540162410825622248486581879223014006089425003781974898462505893993820040189295524900366770312918396920272894271341989626927944575297593600796755420730327082621905321675518235629010025122455896218566092009543111497413055696072661345054738375866258201480724223203919133221399899956159196552642848484398616286134127057158374751178035320631229026520735369898341180573208929715959611049426813830264650966547997837174190851588933077770172125546903684011803608035796822357871507274378970910919981167402096744719549748115621308064974484881688574483059183154277507580642037111499450023705458434159510666974537391965821952240346492733684378676874118763674372571741489757968304666461623266908697916402578052878607235475731345419667322415577866566859703290651610423707089274928954578677968321775271798758112873865928812409597015041956822578425048535172417576229246125754934598624686344989611746014158232171972664975853900899902843988231381895506306800885885988458951727132940143284572693846603962650982750715045516658596572211841868264051810664696927626391425647912622460051392246640610984933124628565361139759346826018748406366037988626590463798377388772075263405474313967305003776248755909112397075907642756082336187457523213035320947054590895210221056561108581606682862849705369936261268437809967440131405022200565473001948630636717490613152561976894724797954806602420731980612998355828803964620643528546756762394740739783830469559022713600170900842196775493728170858808702547191638621279227376672117342999905193098096539538461226718873131586837961990406171134868869516892308800251912583823166226926157966513378378365512476498243187721119975887707884590639030559925424741953427162514755378768321241048904137337277329858612417784202051018499576400065993910088251582382217068449912621951760910210395345334553922298077931651327020202538537795905016173862831125196743786633647843854868636317964416742152536805733827889744692233180921460889291592042472543269187080309492938949600668370622686174505163726088356158966911167289657470786415599685013971879189319786168757700365263034321259040082638973950279073945145707700700702316335945677459135071327944876153926335740191330725136505253643542802106792013305637384232224400768400597503998883106377508792059037064376094963472953038186960681571990159531899430375530087127939867431865552927101860045972914601598319955019166905502883038067727666491143724489437626422738031878313504719178588249748362758512766397349551512993969571025283432174932918334299454009686151697394373161976903361479890919379164179756388641167415024237883728450006268515385562218255373785048677892543989737598358894205636124339986272391559901690333496727816904877039277874041104359031001239641400704111291044917099129389160072792390546755289533591519973578157082091949904559845072800907368762477489418615175819278050933608530155003675362383665396583869335153638031421210843296440686970342932853609163121594875244080051364903776916434415006050888570342340778599781642639374017170395047922454445936051781027217615304175636899226570108974608022263350364530850164366999093150345110938244620026356285139575484311981212472315342127030771649577054264645173765031454465363751517849364245359960484606080178977953293474249239699853377022236494430653408431257781318561641592075906777124889643232060149346632133309625914321534839125684404925964297830906661013286504446515535609022221732521585544180994379625237031685921094740368813179316101290056091614899130599226483504665095917165185073206195613548336291386672037839623159402909781125397688502653113527477989125479128069331624989476395829887168937015959923350774606173100502235064013654210160688993239300677439786065331664944841036974835938793347186800775416886513222480705095494029964020457943110644953205935526334371635343426934936128495563445847545342719652127455280470970352477799303326969168699111398986568917464287657806507465934497244593740847927879448558268430422062711275054202465590469114552779814234964551605843744217014584426085020519220710930333600240361370419769882460185000315917069449257409192755786368215669033501004654742777022442994655747340947686733651286072865103177975272885985465763071271246500188589139143152539684504355493833718541457106123274958429327562650914355293140039128269063776743678068279386795371443437691578663864461817948821081304446918594193268403303525291401172509906185870756895553878026196048329864043933339127346291011304445419683190775354480353538402321747203196093702416070136655507948366454494405480159174094763638455787117344105545756806941758950887805098697933035178533623700789832037772460008908560549605736225568405370344895340420104145593582704060553853899855241318326372304859540050288465039293806301384175844769275496352110246369801670471171765426264843318789192585533268026817115974354684603216234540852389283085673169196945551182979357554824257211649605719345282572210869297051862590343088089324711700839370506714275146563096686233069697546441619685943703437233479459501990676108428447332016739949291696385612133250282644348444249840894531260398245301509368731058049266566852524631814813175200268079596279903800517902290747056638788043018599999487567259749092216985365632311152224414359046001111242753558942078516603128989840089166012500668999882045295119474190414953040714039701790391889272470529343063458985424293399553208573097381167109778621930493975021116796958117951089245133209753263595408210408410560448735738544631833831723466903959042029240569212885876096030134357738659428680969418707569351909728436173880766405188381016085254365043558315821855079346610723115710788777070236029857327295284448897909570163814011819201792926437654131190171339832094561011362259655707842297126691354347784233678032540527859187537748322465048971390771743677462117610437018011351184393279156696389937750122904542913205755366448171146940688117584624427204860100281190958547737388667022687336349764856864122137492677891178036802891848331156566212880055249766383021559691758121323389470524416547289263090658543696331704164246439274952224967616936580544573254001041548613631434257348505891888583410178256486746801527550966938803553263956905001999626200982647269371590875575941612190747069668973981003380741705419566159862628201123122621749305770839241192667813000587122225205981068387561820882173577223453902122782978593364950781639199873023098058448284372822801584081415703008008481750589870629321853395541286092695553458421733390667277634487390299758460756884320009022917559321027736642874512129233272879516743978288311659841702526488441890469554192631786235905570336047174370077192940718903464789726083988439116909997884652501657349424183642028019863203103537195883665696390907563517657098009080764540474860316208154808524393642431355077488503820097522754112200859824017107259561188774165582160448972029134932673062514011486735596179202160192709403178822982705755481992636601848365353842396001409405882718548970759868637320055037948863608511959945080458808346736699290384723826916792894504250708831115416234511424987190183283700238563970807413632472594229990401157591108361388393525106849316822525782864267904323109465824042280821480056441896909716643784053569565702586947497991532286760154407232342203980274417687915076151922658771280957038661261459536784024401086996361751286691673220954459351449634412706585534541610125312301136573787463235013548363139640467542139578141289504794047679257474235921696862090576764870838486605170468765943940859421413389756024043516800577623276621359547217829345815648467215773040234214001649837993491960125802433652598303485550724395916101757933489977863665371448583072402054857272234188531798143539875893810993621192071257953450741262461076423031363473155625683653613065265247637160212494498902383345056997753704931492122398412839341722569809579644192651359575898119116188757910557790848543417428029250534754118277527845855317865545791296683939049299790112624373871837282795265615669666131144358963312761677566366574540659890115960028336505562827486723104201963951041130804213870951352225128521621735440313825134506087953254686895531122327323172226365980855871599932967340660360354560543777831345192750757075448578933676180509794959392607524547097357786420568905223179349232702110584320637961162833660417598193682545459570324725313160300441100940305300349798205745353684872391874671456975779424833011136271811013150791439112193344042820748947584728149004431172672590678601351090652871698395767719778271353612368994973035783498683332647560632595543149777080217685181464702018086174172778079367764739057700140003002262053289930183418362636465598664938965586185455427444043972925356485472520029795500927848162780468816440323734844580841205669194609013928559854054344412149038749564511921601187277223680967794741264872318167399122417628732135768078575434755486148370010245715685427698903386766315042710457250006499335061206498429997299910752818445321572316310973666478282601414602996848516125773488182158799855014972742736503694714757362834053883574447169003012821514126123710044938474054479026080387817299970575512285442254234545992104577043228557684662669383690258306452766026327668933726709719475115583492967183791852114265185304847166763607145940165835743523426264724565143395455154193547594959558766951504158787132616812228388160037790970496478498595008717367350452225496611393469017473097784389663283066930600595941731324730882371314157721206668186612469112668814961304664535932620405922936151978118660644568034877971321836887602949452872586920498569257496194415933244311773251624654731655129022913991053538745655488475931765227050689559314376481979780284923152665148640446468099352279412825603502853007017702795061131609288246354513407498913925629496770276088593604917085853235080913219033944865510302295581789947507983795925556176556729490301494579095146969741931898647729333896346129766765439179404209502869202169734258821672319051520104732114565778707570737833925515161364404109334745667679157098489432192005301034407610911454478049698933173886960777814907202078081356586424960649493497429755192585166194014721771429331044219926130046006391951920858915984941601325840926928235981570181970753745712742336396980032436348308443339723376450091021502745333123099374522652332073932282992288434811772007784096052097956576104968416603680763395873449306712094944882896698325176015284321543783832084309691690565277062622220877560314735990213047067328446187209166627070537986551412901086537378335486132040686558783248606369789904151433195492067575151889448617091797804092785489449488460422543171323463182555367572935146591650020123644210574510043489105996332537848118270763557295870681236248903859127165224547774772084899325021939486084466834065706615997501005085901011912046645846338891897864999724105428366422880583651876325551051301728232684905629634512975921872660593953396474444681261472488350721398354773319946851960202082192382526788537358881413647978265462858672727062346113926559365628328112945721197814394553161276377087032031889182002032861136667130717236227574031683929033545672113563125683839763906019755812274606024322939029796009376870944580658850389640388820722276219189741441892862029643246322132476072760260929136054583673490492574828339564996128139819648233574636195125320406264218301168709839872159243338185024079310779890052636602253481324496722766779757347869169698673365277327066985405130947484601092753863649984087595984912081001824731384699446507771797668581764928791855194174018302466408886737190834126301253446291437647065773062470692427731158249029189461020404637318321166471493750838554702359405511660067408052929406990500979931071568047654595269622441023119898798534641978661793387027194042941882180535167775656971865426340004836941672157671956114907064823875240897901698858822778127655253496962067872651486462865301717609091627460255088966442194350176520278343765460660612356304034833838599143172404833901356066152550119617267995252358776112958219899529469136061224766314358819693907483921826825003531178014355471525793411421066269983029954820258076179953291504704521483829173882803474579237448616477625737324734633109772603702107242322370899940184969470137386626021625849220603916927524561245708363393105728780590763320955228063676636613169238420828081020325875281266124428985528597475446706746500004209092485991548649459804238033835736831845068657813636644620690498224197959733938800844110783799469940060530071670963321522200311056960912796254092018910483862094748245660810204593584439508273907091149601962282786857460928188693117864119085647424983207401368012985318162899309139180128892228823836935401300599152634281827464315161871069642368840239479844969331959039383424532752799091330170808441435147632020774039510918851887694602641508314132724385236195605711614013604823568805630040546806543199847944049101076878274849896030163385151232423170735990144554221231403400764926230429433311401656197363253693295874510906412455567386667688153038961026930132538519121598883357041809276286370130528822016633414427152064000825953058862296547975874637691161262952946148538337410040962368431921746664754780238071480088327547093718789157375653234994885585741458182718441718833058817561650539260359530440160269558496646493858190658131323832482294452585726295395798723982898939955874006624772656413701313435007223278862135918102377038598798704745422363830726734246516131189110928718460980333415612195389105607240672966121682928659124044273377524687189988152938887873490188318578102070147694035945625216852539280242835650567795627366925043507066187462735844604543724679367601941186880036087137610894689002779236112996304175694503760302821866796101807149352546623407480697948110080854222917283820366516618667056758084704351887876359135327774166201762522510629524261460125257043832558583871657717430038826149462749204153543764528930581759423846142304597524845910891067538965362094475512023017659569264414970841556870893000048198131313099310604490087929753970877864972716616337155604206381519674889683915328783150589103096750946966417559037864149808431254256417168730609830008620055325119527696151510034439670995461320822431217225920829135408228997868841700154932120643257815880711585112497775637913186030558135756730012963861907004914019682686523039646109574429463117338977885135324477655846853716011652676346183715900657506317819413321527455423058464156193372563087809686320620361085637493314113263259860985663550702298637519037027616466496504056626013625667634525776271272333649755997318746009802441350979115293446217062025488533466508032680862448311233003854403963092605341373435469042160042397387252110773203692360691207971674122192013272188296597969829780852598323605374011958538211922442568013641664205654594232317136428493562732207511976377118320342902696387709830407941529839963843196959547430745803766911672806423525319123896521543972452124222507069083393603538492046347787593028634938891741712037483593126261494523111480496587480173627162322942339251307283795059263330922284392866751847244918781984393116516472942756937066070317045453300135633475218588439678405507016934368812308544211160186881109457195887364332610265206981107873902096735537594091595562405763736558614447172624809260431694328799512132456293536954259817024334901037973332428296864781671894019982690770923436393155218729010661620634549648669991661902997620003429185581114056453168550990243335470031835896112599450814268653643377755255505927287536798027764109383393482842103082149228741716455337773411772739826184326294238022865059248602126354550258677716552032224886415408696337612558811226942386471180193091789660190288930833715016391082849066371426879102912264960776288831955957901117741189836967797367381940344679191319632809800641067448559660347216971228338860656853977249664960640707053671212214400342799954930572788089087020690963135739202143133755220765425157049157344098173106517570910666757746528335104525512938353606556221461561232351645066397909979843991097970592412113533885569881449845313082736429222262631012646229120085680171773188830291947187043136745513802131023761900950099711572665232214470507099735789645971490791606275896023349793130353636237440165040337049468950129790042225569899633738588664422931430160375454260910113017197260289537864066966428740702715651645183828393501567020038871771225924213786144693296742657683033001104161378613715195074985737515563300674355081237675039974981024590747900303636184692300830719682191123557098123204253090141848103806741279852671651760337942610435387040369804326032971517186632023332776539009190736829525784044014961226648486957298673576701529019605957908922936929616235218377622608574159685181202240269909641700447163501575670653138030585830199294821359342140089263403449591095904132510590355520493836470541870406975362464539625668523311916591360171451381871492222598630177973925617964478457584471251125850975876958733821797607957314460105254212704518961973265974906160272056961719797882695315416892425350409959935111936874411358227299095506967399288648609691381328200908368734186166196618367794958618681420506564130869592456336038393093698153576214080757091616022730323396575045687030718687050129907393473125645953562825440288033784783072353243816687474457111264660987216957250126808394699428242127441872567098769903126583102034167941112836806959618203854556609000718106862008987618744497740555735534069515833450230912182906810609658238014327587494464004320374736055300280747351687312156262110855552198386975372637874591307267798755245892910134372006561288868827028786592170083582974491512477752297817210544296901203753338996647375502269629808527209023559559875237893643715468358638128343679045357393862770961910158916579142735428581691760468287660359912857342645239724539411687787910123635277795984419443283534291657146062589489041235913050973421328238577188310308780621461799155278458784208377198405160836008840100542526218420678541574886483219485830419935762929270838260267590350500246556756599752179927089973260633500121432134023360628820718807019666111154627044797325359225133450957565947273169072078301438886730265402104546202047925046716394577527244198653221530293341566029104730450867963641173664948793525795679802682837569747872492624850804672079757804717976436591527616060083938907347237745269674100553918943054228744069405537591869701447789343804949014279544909155219064480415045233561382562361436688850748373333786539015771780222559199841868899281626166424900676091412848248583018006570349664985849441748624042020023419805403105081996642945797069454234960768970874354089333235351574586432969434297984061420607919107626118753239720724021326975417108457941385996992498467970204459587653893152846164460797408779355567067108959184960177712020524396999351814339588494465172326353391343802096193141974207858546421610205302978009483452818582275180738015281848627429794514351996718300150526229675796776810585470625138944665785927420043542992902150223335350999105780826223155261806446106619471339546446640192010292466021357034558784969743242120410301724250586834577615389248595666452656075663299759035182294146075675881401254636484998485376310210381875397346866791320044921477045151115422491052209170750527533880451066564150108534602763467416689161940790896331550568557808154988860165092731352417586098165486556021167402593141703587747286709059569324071853485464206605325764131065078390462459999936869481559044469716628861688349078151767893881624584609406950221719210689707773994589302485247163088868930288476114648277242889681309136334527784138093281743485730563736886733819549575652064160804356161245411853840667423116225460789331060970657967740356281947571394889930128517907366397798187384635893187902400566871952073350370252145625118195192456041878041479540220796981661659343888815553516648359833188236130811976719556840216816695609481842234318118236253245298632204476903017459430582304889039923917770940043677755584169666566508226336471874375043021539789475375296079106565796005336068583459712215599908480360135587197146313041394803204536563970215887326172339282997812659633007787391495706952075101710933611015093711730168378267303773499682075865560122148500642902929416138914391101139062128337293348127171303887522995617315662945553665550071002942028752451104823545252228100204720385318407195488272173309388959278642727422885589967394149202218913346394483223300266543617693306771025110994399055644088563989975100508497908963634017894398673808184939722924090199469881899600375043572643465447186990908635113791403288173500820315311600237900982535215847193660659277999218686023874256606619863913827644379520805034381213621617233356630173850314125975737803223935303062137698239470848371924581123523010941631755395806605125788017219925476022659756649036851352223571769887500454666137192829376786507568272119434265944139499502252060854674987454276615250946082116195002059464047270945107047313877701564071875502871882808861882917224529777497306513887717029321908050296769894301848716043448611809894749782387332033312141105528227111090621556700660335547291522948195366953650050803062774755072596496211950586591260253707504003376495980422656209925756417129365925244137671645952360452553946020145128337595402752520348947498900168127437976386095767894958037405132844569678747451261307598422372312729592486425797997986508186729030093604888338142343127254967544358486217254165867614506688962204020440104282167369523833739348737025451243616982283887279312366019326817276766652148533526703759466566517608140369996958837575938738706716239643879395882758816495357305654558156594538926344008353160962909048498173830346784639899498152162310900045281066390869003637381160172322184168999825769504445092123089786967189418832096538690348664329709240794165258527777541383114800214264644504228422771548262560282390823265734698560888276045822089525984044220933301837017771308309088595307907535310700435267367373515470886605509186055529122830248599190657887588693331723015419198040224279132641473797302787653894305351492417797018004503057336736233176703797339633358779990559219833865980312181497645226607598547290859233092479463896178370179227904092905550995423307650425996133833391218233409977171026442879546463249037457596522967711785919073752406978097332297967382930328435440105257986945942841354168852429137458523764737506137447953866891144358622907227070784055072169757244684678579941245780068793672522804744437179502852997121559325674732891545174027593390441032364632675494208242504754497913582142745017746677532005264370135362708776033875316664923879039116297893251651881051578037207309307019030105461324074750619216926243485705742302377824019601207124386834296930829671001636122196049236607726139942866924279089049241892254937048344836385453478031731847088961783854219810735302584300490787487902538100210799376225192116875842753131921759404348340611886837811844747096994604166361540058576989625018903062774251837961383058527284743837596182397102691214505614797477996993513126722291564729623000716187070355445662128046116170320175758198319806120583904135721937970660266391940997022313215892691770355072359475204282605246329652929336907373580618812009458298632196013506331459052293863923719468059989781901745612489987505715039600249710067462440323748003412830170691383363745549494243385475210543974300717186352706150616381231950789114056170640058898804086097313397892128222927163270469413293151452651712507279037416848880209579410730020089999914155673893549533913456895710898900985766696613722714356399144814752318826317840569476022364904964237856758626086417684454686374300747687215264456174043465738479408224027577214276606366686466939702135615582975552689328226280993454794019501014477872680472193181204728703655620665482749963505296275434701641002992055726535839530064232692578255464456406256560514941523979118691812002033526889781782741554311913418778253090600780565159614469383000751313578881402801652781033761501501202627256482996733714047142890409435234667026322850656918575885792731570264344096661015978983930136143626492840428452988847795720091764523066560627775014345811298658074690621476180927443898267345299738875222303494739936703960579837034541262930128527010387897303480874219377143953695025639707974234887395850825892118160739459234807467098966338117171638340613182967740040624041349330349061405870612612190232149992396338347250064131861500624095556511613875160556144526323473786711225338062104957121613718032337556518336809558819361376752528976454364948876547793575343687921766178692308408178431392069461104931728628531311352213748313836708797118775449997234276029884052154220662774658678113026812220696985376425500823998012125490960265583272721599412873980495248173485687441063544929645260422674053815206679077237432140172777799046815677582731381723271566054145532277060487166451539868252866041356282137029416558910334481672076920175699769815194274116639087834584363018631255763686489384649647736239227915267801350574089459461084857943420277178851943259607868782399787793207631707382037916278835457398085922845673954491281653968166682400512307411326447305801605620535211505662215160327920180447682376025264729826481631144770268966647757309073776664268145418635213415147650070777533821434473307393796917353471451588398148746955044900904568727897891082834726717602241061176667302130067309369671319583628443923912530358849828661943304134917281010041037093504909990335240997120070009338091439328615995482831493907153512428046157323942355339380722028730962351117433159896041652362373302941799282823040645218879956413472045945578768651965662746954890046502258851353177694654709562789621451908995324173408030627087512650258124175144535291627369169277259094764530168264406075778756296095545923883338601428034885286419434089820142992663844713367448135834250350739662388852183777966254929890421210160691260470440057920614147121009759126815812969357192343858734548968488720427768293047546527155057248215519147924522971864834976288886967627340839277411996700583799017780635797446979190868639569657022826104191531733643983381584911080836661015091024551604050888918532483679325691953117708352538792145835846336950383011133772919064220883439149127059551530831958895113458956800096380805966046173003829827608661626221464519353862033914063493661834205249783451728900414812202705937352527041775738056774055923515122516108094358077058854754130580375339738231799607711745755722378846355667826082122266459200967375695771683133114143322226958414001394351956974473059505455644146023358691731127954483624517152717158733312744397385354481621031889410773674497274462294613964599277722431716086247659467826035865142961274873593258181989125676799852665855383707017516166341130164648634989054226914991115416117216969312325522041477099251269247221890975236577397969474613602869057869446955326135381097049449735873517978800237114082127739118396162728914875480573783199003410120484965968378393908634868119391869392405695569142857846991205724432612951280856387548696665049314325152143081022258043693809052657214361460867370472762599840206457800577770672263611476441921904927211274212828763181259269665229094678139997441846794415689114417120521620551971704779532236117334649167316311102892339536113510592127901839414099503807360142318094555117320620951150559705680753925753362849129473253172007368356653923543402380311555716726119046342286260730219570528690276973309298549059608730377861505458978670463536127216481363958088082368209577411322159103364657892356304529961263942397449426462119072413239796353904345281461137460354585830460082704988023334435423233679316838789507629470506408131620238057786533645967806351296642172357892747844230598161957458637974441382934817881303362202244882988711198163039740826414204096946999498890148199457735805657304890607653301255454109537211639125805530829431932671782699876262929412568301749063564524138834899198603648733019027085264250604023612397386591164485430996540509168735812741789728711562559118875125289996122832092525925419950865503444884928962412323113509222528172162682937566462636690939401244783101649218527682551878010889832443648791566553522158554169747593069838734828332815844178963282896081874137045143510061138703790598606835709915598457446376494856664941622123646642404080982082414977202736670182348536050294287220572018793122391075375263714992481403599862663100853951110650563852264604112461223827772476104962921200708649666355512303034031276635285720588894590067419007512088051767947411623023126474392658835017162175681244657608500635496655589073033593318403680107060967769436237943083116082077484270506179122176650343606364932017229580426481811667533091072073365732419383444608880365737101717648059505119322522644237907694897397135499297335205169254524953184011991468844717065054084862629075972357162337160098498262864526574981990661137594650009292418268845873016727441039234141467142251812500545809403644239226199492632192367786184026266357594257240836218478893498704188691785883569618066751201900011506222683118405127715959502359771216544655113398300217557293861741998740793847582122419110170609830719426454938237029802889425731152883055469183792827063177665523682041527926603954415066311892377421098460287399665655401901788816164368163599699868293056428494364652603430999396779428058559038431189748227672418177714282877016562736310031964258687507013908797539329146994463783993920491985034399885008150109205006217865345476289103950916373735134553372972747725687733442040251464843749229956672090807507332860378028935512135929460598177102205135365070112845389479445288698186954604890046114449599402290090055961245231421270940238560197332782780503939005411262996125291562050500279082765044700124238170213828301477341048003029838749202852733226349781718057935954731235611764927255299511399067714058842545007362714571451612057981254233676249828396469877010482965592206361161427661374741863636708704501169449247600662553859268205103532054343355152346383676193953391578364081193228934757226473592118501953652203670033961268262156127762439903723132516120531204666316113061831366300211608317833508068632740035561492871331027180967040043430596293104573316717923819838929558005630061270516988221174435996247265175751836021693726907413307287985859374615879748030023675780525175169305670609036767630913001494365170422987120348890094303897665707609634709731488160819493023874837935739932913602195378822453148714513829105383862714120153779275987980389263016819917193639691091913452747705505855707094140896840298981270085011167156916691435594765663977305536854804139858246963626380962056864823269117689959833454814073571703652199112450734502293666888166870530165280779212926048275680542209611345568025996692455324095920752732218504740178981747798374222422984809426769149105131687782545826219881091122374743115887762707878673668360771616555832022075261119550260619923720828970125627618810873721465103465813027478893871162828685379162108443683633397749227762592274836387818481264322108116654542042450882494212882693457928004953471346202171652326007643753906648127174876716036662253540150456446953622040430233534238799334910178993906673169554672344624905377537125088244986483298753405112664974343740687040688098383601243089024052374803060105323857050026834822244183367042207415432175506768916164728077149780228062580828855322362557645197796310178756624493767803339656481251152096683905981317064364273278521389887604004702424078969138842096160928996002089116758806416674496796110888521685364912211148213896580868454461853274242803227908024649390075808814957551026049342911610674539539434765722460605248541463432971037460147617928914785400029921931078778015534885287663278845702942336580936156514012748093249931455155151931474729965106453646724579350806286903594730144055378961092223652401940000675672472281780789954048924599348375318589463219638786315302595074958472170351699973960653348791420124492588628448723100478754574268405375155016392156589664972081723089666225900543860872753057659075430484952858726875372773918310381030141066487968565234307656489506748992750568842266317058060507144600406059842506711570363161990172819620896392989018200317725405252441754071551612509505965720805701783439653841272374532805223271974367284752740119800330920154854836794182455785495467668867352393223945217609867234567090448089603066892809865267737141986273268698764354362591639187828004641589317400684582302551322482874566146740651001066155939945062592491925025424074919475197700014314800120217825195703438815558991810190508820650667925551709485678061759313920969439606385764257324930723778796808701327071062320661819173109840094507396530464267754761241695643572635351699192760113150750421050258941341174234782743199178653822126288890561946143333136235090472862189188349045126633890054742297792832423928971017352290007185178776281658404906584175202637881689181804487827214058741077658176749868010924999365539713455753029518877044295944045747250706147650182942217917920696024952514448101160989388893325541347360128705054854367246390383857802381247617886071889898780334135682459346457945472241219952136303137865643973747875341262255950764115565616869456747811010585713739897445852020998709944551315826290970334063926292518248408118484848338846782169496947440957357541536730272815266447379521969365958891564679625377604944182176538632344126961051052412764839345082126693885214469313123384564844603830042767673505449111301185288975865538572898360825564967697941951833262395325826701730635933696734749129558968174238310219929285044185455395679982516132846969555733295535800172772577118908856948707247066306386013381325760879732088837160305700294183539375855698838996372908610803535143531712487838813851476081022812872356647320294869614552447659184120019430492395326620227594108192530942799719456751452124829111076949461348153257122041436914865190811661765077167932460657113511249225675045307003915602866907364950820819425931898006618532319920874008590163970764697789202930704973577127365765656420638308374334854148109424123051987530832599435778204914476463120588545723949113402966646362701252420570144342599003461130726641247932479843731822674271312625463811800259318150573743124150587492966707874998766339573882154949198447758180092494348581167770245001291197068462367873027976491093845608770335540334394285625456045531270055988508615602354935762260232136128036385171625165743350130475651270353455317062805651728578040161869354749883536415665614558632418413115604955384746761550567335548256921803486429893102808661249568853295536570526004171569415628407817991723411738154579252867591367971606415919855133235467985528513342584761304948549256225175141864246752630624149133417374687577457866471049593685950652411986216623673212448429419739329966427122891933238897629927343794410540263630020371508683230330299605014148833148058494292658578538841173000175772212819166939721600233480402889651656365737843258435332436731033185473503501505890686680723784489018363083061873663045659239391013823835660132421279203271047018305230950127897128951604821725734466952475558496891858134950291413521322051472106866828735782484883056037231627876649182035807456996280652348835756279546394495039652165559787505798872946711053867473506280399740902647172514801669428942788979343975742974885162262609948484667663385642829482818439606746119832060114037445511334863382438652445089138423131188825168070479143879512344625227978657823139219232200185301214085279036962790970519072816933365122910504604632195560719298542633677681671139078121016841345568625238574666660075448934550484731325192185257730012262048687038120256354941034299057891396294613670429777941097327359998658440863048813915554658403382505179840746658218161863176400421976686436601463086517049796127450859841268293784542834570004695896285437694370506325582388583103849298155643550598222525260616706075807039132160702144909879265398650015277006381030091605123138934092696705329653652716290748838450368990148875713454743755783583701314932862181989896758678174696766302145163694644185572600824409847646492351171118697460745887433081856158959190823934687232856995336213828096583018082288481775872415514378705276228152631336503039560557371778941730769334980214985664533812918006320156580212885794711417784223778690750795698989783477101162583949096614516949420664931853038959816263047828072784129630345242665023678168357660010603890177859095784539138115465398194306256861837240483619092519643176135983924666007515079681151262959774314616091654280684182732413101277030376972814477552768461533776945523071740489263583514323316251493519227479024388770785043051785850754102368175504072314980296722016732695643918590380471542600218468290857008698081937146003801559711467096617587944649295430122682640688872838587572787738572833460074748867570345176300632992711043442024969384350152172498092382589766503951105655570858327866960781839930900243487335727298277611000716144688925055830828688618860720673654984486719931319583107179955894895229757471694974249184726464331873166759973127323812745021154110927571540760770759161209762804586523613461528981413283492418135993655535635496088080233894933703805273940190053715392701565648230725739229716106433861868924829755368502331138635050901129716942373602083752931798526697221409547073819906593000485421632943586894645377541874890801358863529200074228387502720811658044157804267024017291904156990094525190373986141273658501928442695048818586115754215688202393806081895922286780407633333058413577719366578434778604257470199830281957555454107251733117108986579593544514026936077286069132264300617730792736430439520160298206253337832400010893706271863820184551688663978029898310253631882535540744782156714758564715663839904606560165128774894201563106086464542576909886932656834513460898956678453912339402914667531390293265420079033022666021960926841106520760381923240238670145414789460622355264241453194971841207417070153550887736896963561546808511366966927532516295757872308255877156679810222682008529387785517373025631753424260484595538865048454058262082947645907545465327599745681322879752731735365324837068105808133243410970196965764454343564014470318474431646510335955311109684471164303756188767023860098394952652844136710758773638860183728533989495126626155147614508884601132926582037302325882860593613281788382914243765939399925705119345606129646352014028293960740702327567529784796639750476277067609078822385158138877586235633753539469959328617554237405518057098882995602466430032728098516897554787182718662982067052248864854283319508671521158251428564247829477542010502830208951758532045976191801284661553389613003044964858343128313434252741550018873997547461837703569879450382335303787551117461856964203003844628595945109213420377015966622143855249947123812895935688591006435561316822564850382946250862808282984046388222896198735939747588098868197628399468403642959280078406259898850070882107536864232889144742882439362194743460130969711006244482463314226193794480692159253816312065256385830556394065188269855811599568765985203322629208485081250275707328444604773690922938977734930056847840628767014914829947533796089951590622187184034976437251925651375432130456582876018590621366909814874848266129873925760785829671445982023444651177722164516287335356627314685785149165700197083030470054182952284622403964850388922922598212015884474439081832200285559201800586764558691891749052507348967587714539917219772982691793136550079309674365214087917089190294783586218429360933538843029112970973106773844875374979689305510014460958967797689885819782010002130992112817094240770472630059726335256377439572485282868314214024432753569295311758210230546744632221370315214984784870468300764069702832670312325316366612025410828782002814859840114870609248638026578227052804120164796015884397041374397320573792988429913011146497762751965899267790141557405431357577002752387860068666371737336122897712629220173316909495095040781272372218646098251835977582348756167326490411815233596207167941063634550699712743021780732859111088608661364510349666465564643780096306014751647829029158178966714743440840703921157195771659081524259346735773916298498458643152251552704025088537540780446092208103528714453791054053354854566952015906872706236792258911868752469559837235142188851910092306532331037668274126754024869443180745200615197444055150548530356110677709366474294783300661011436345667443783051304868000337282120647662734171914746746320925494559180118437652433126240465530571764451810754558989542876893504403406861660786061276489326428329453252077066489407705428896103282059596295419354150112313092375387033605626166822481399250638303066099288836767060966066839871650777976503747734581953860769523473801451362619029965445303054142471865015291080048131774272028971555650854454408193374252891055758558543574081662230250282692874439357863300222310823060730829792841301358514562726474452506944091776757121894174972699975503983246518976664825811051121036479504129423631318728063247016591597767190779565721304858294460085121723960438510820071194344781562960853673681848870633971256977671950624867607946413353950842670229789980126338371407471435561548153261953279282865359960173886214453047629211802982813698947322470175195999096986851627799168258242703176635339389661857600640339322856777152538424861924363847573912393788289673364847570394297692570622862611755603938756620361217121618387579780040637914809921356761887786695586967836985679475700848991022992569526780570393800315730025951756504946804204390551628823845064804922275454803023055119011342805485038788531081119617381884758392727367807652880380562340905085769576309467211927132286149944465522259745557113964411250389004459611249305832988113292024384024447168892980011122650133037261655915263834858326550332864241968494857922186614543802306122762758224609933693694024058612691213862535441452710041538344862132919271996082592539018968851673906965061420641952173514577475211302345999554346584203389277856597800992934969983682214940978288149778667771119705780918727186091044255928615353614382527725390158568406913694650652756931379398122911190846247809981741836823381887981097085599076889504892556327790846010002601402137687190804259664111690609408868416826382713021535234181563308628381084983151593770009611162983386798344253330631802887313095903512687200874808095458795231508924637317869450123147345186037873020330320544717529659024770692488418298226729087347452355422039960402832503090238809835977923817303941568899480805281905841782338145210743805785326338059575341284632943773131794380279221529120300507084691786361384344740998595787146687636233991123894616594621536366457246653620454138261246461507711655470694429929001572684873618668637082371455526971203198426709981699037542562802265819226744704937506772188786331986052167944829942533456280327542030358412014090595379594530717453386922264132913767158367302230470073104325461665270508943112767375071653808923853853950872272800054980278670222290934554753238895750612675614177836358887583241611366834821307241491199673609484009080565827107786715729052797033698757685608786935831746854562265330170917956441795359317142537697430823418755600256061396629505445516497016602920546472776380552772473064932601366262854546989812507955346945512620917319043588119723846536693534877633086480329177411689004970142787800122412121637384294565784135267904546957518212431805408092162905592814818939307661102890048404154755807419261921687616578859543768414421933252738174050685438726126276411309487439899629540057342859825548164919611731800588996582705948193973895242479036516940556843109483189934889875185929858132867710570884928736692487899980942702673928039738724985847422874325107164740337511409845720322179889457333359760243100242241670384552276300296722277605776966364985174768206174061113258964653030279512854787180889522575230281739004603000774170093002548246668224126226222994304016099458419284176650151491119636589711412336306845278184001287376218071218113675456943024517064471450730509701017165757548848753779970676413007392254448061134745575675868971545218003799847977778519588780289981121489769902037767542532255458805277402393720651181195167869782414003634131643403731075935393212270329516234067952265394544862485018634124331891353019865575167579370668454906622420985641810311097108313183543123471953881546360254770871988523041238619846175120451641601998344021675189357794484564703455012648932859821249144677112393239874576126307772176610292672776249670439499979910869266230437236009733121030286695463911777653815975604688279667299518867061990489242707588008386089652459405220043466030799391214376029905485992600612928182430092847998869437576922611183893402089276012224011546612943367710835902089333064114363345175196931543754198395769675984146837083522520754884633266669672752311053788932627916785385077992243454571613193368545399347577083241409746071795244544295074193494155037429524484232058466075005011289310699312216779592417223730529707924227016209332151979480778952638917224057595919311085434881819531215522918784121252303528336780084296920559216464415312567232045041692878977877427866766152590763323903521072784301918026969729419461012604762959165989317958454687739896357446061869117071719237068155662574433908577300226703145708216956997597513447012675862060383443761567964557670058025667731905920486115368952324173158611414387385745804673893759411365592837911701606201050283159674522871668432722744958504460269939245773010059271664670595636956217498681648623606853233272482204160890094412281678051125447041870230408920035675855005065890591012208055716874895528880260238870270424264965281888396397718513913338417509414295903695872878401417954467618617325812423375447177070536934059606626791206296568881831535918423859135705903230041808110220586251508064456005868565524614432774002220656652356397102482781891463484488009435603421197185873995613606947092045160068960210200543366172832026068837508983506702686976511373714076309666412995654004508273141415555641285476254962286033531542649489002536340243217723404003492054668159709726914598280766724118285772996880499891247087863227088516118521543764913665363922572154933828191744645656539350872259142139884360786970077473446418928622988479345403007869822820078414787082701690771271181669156525656882123474047763598595205253454181910695393283721246797264175276018786481758863799974769242549466600268425438029888474251012562223275447854468677902009835954984143888569746850213580114474350488849283648284479152113717583090675656136981128955021600003888504911464837668968156792535514631152659822589395697831727915848389743942026722616233422207438054118794984298613012380954260353628208916212217392429548247756053772244313738128537749165982038268253456168633915997842132362988680822889457299260908755071299899252905983368397042865101216424730676952796970235256137074521374326720229276998611792298071822805596794559617716222223067944895018077226578475661424832768792481724294139846687841314548438867910526319888688446004840675284128513114312056696459521698317644651479704992820791268688973389075940071292703873718014928893302297923317540145359600173852758808549252473901754010494399989175873743932133438140726987343001780076785150557856952682621038443452789555664242407259627354363393998560274887536686125241851299610298966062090575884086044344213765161229578513413008326985971762462686132454524634356263222505255132259263811045476313141864556782004160967271882975694393883501047169895657712445670557238303087670001517128277766824027784197332733875073853198677874615045548658916305706610284680989023761869343009255063054583440952247873121824362104851774826051244270466622727772689993596788355897301528031993272058705662510236936569558662631160742253736545642960801831911641917348579453888319505728879285196858861019295099040929758614294169260142111773370815898392257552784227819815469055442451215929881624174253821564011210454100968193787323803772274270645626031948223437550040420234410155835674483028991316714742070266883784198948961622483620803944158535130726979471387278437547791816578390740834287866473972358221613511516131753387979368917151723144467961953380784871716567216711282738633121407368375886424982679905618630349447519373658106438788616347114856581123640236725769917506829881575377070719083371260686100527561708563148766917718112201344501917831985007430766311026027333848859367231318374859666834650136827290313545341240260346873727576332494006635119068711593755348538656596266542075056891715009099530269520578314900750482230889993056036051713275427575364294845751740547288608031351505108776333401881272624613560910939652573403069956052446470053544585945422487085705683238051604103542772658219580734601655834965661675929600129817351430198501260682590112706726080265824178285295260129779587601374318365796242067260886253422418404743457296362692026253488936582620742710270979962934268859869842125985178683016985189785321031193767842700902229920109970532271181642165096742222153026130258700613029507824875235365758680055452100354654221065547076332311523969057264897086381079087028970687999789235399854452420825121709507901804866743666021261505061480380827865508624353978980780721812385113292230902008281309464743990909416228315091624134468549939113432598866445510281709139869756780479049422496822708043364873525146828096450250742643553983359490455211206466039421843910475977167448390742858221467303685058475478527815154101610598387481563938226778592553552028854321684087184067675202441091405844885221024957474932029732508194998025457232472518713356421573714032709329818680783380258656406162013889902382824613532254633950318579608963409375140552938624222283262127929309465834037620522153312700053056235531848609868577499113304578912180221049841994476158653895049203316310666165573783388929700661902489429499552686635182583856607086543591420599960081462722471773536976493298771069210291475591685693521502511541859716958706450141779259248722395938616115401927045361410496622041365988964310876119300145413062929503755690582832338834104166893049925966875217441101455821923295903715019164278381400924096366100747355822305656116667943928924280720351275243205998691692539267652930247843795605785968879069124129643934248857248347588971460338956782819918460964765656958187083447342965595050333757893751434057477569369636880212328161903098872439845759290380864125978098787325612264858257677983217237134473758555195754892530522813300773988641536457325522616910877324902045265717563263731087035496924016823711365927731139673253876177276147136374137855087751313345448400084594883548349998173466507595433986870974628322510144843188529429462729184460473962943551772152040683558626092368225757241248960103205869072746567822173226803385453911309819001792389311818354148347916032076497981383555193241286758898789676757256994555451562104942333460182303212634196969068891860481303877926642605692232531002838580959738416250840523585387990944062960167668125076137463219120842530425344137391495496674248932268223863193980143935353554106079434732073028574615742191909797946136288200357685430148758395751155484701614708914546364704567516332975695039682487895006464223044608468540215507976140811812962455025490941756386947125886806627999389052287468728338721170292571905657762478599988240990235252354165612900744809801007480506927737329042500455189983333265681504673198710396815062625143503390929302861813868157727804135438624353826817511981251630272375925969651043043330436875508987085844080347564177535978685994074815640204568136455878605019756873366747941702440249583758195916617800485909063572277710997604444591040861227993165536685445192140608600280405996547077786905954957378273906317369637023200010340701120856432153237762734461607439134279007000701771003077567908273876868347227768730764988542679270198487616416154987507734077980207865191447522962645759508092940915639586272815505961198329023222482009080368496629552565601470568999924928388991861310959512215960142148416417443003634597192684078895555149668787964107315359729744855762322280685665217471814724763576734914241441569854346242744008677521520925194472994144293990729022196857682159872118173153003832999476646758826645863036902904145370299848140971280709488906019163077040073591006836032122607120423055389909507839270260947556885479008100484969458361157880519972886344753493674133226744486077530123017431246787473407043922404311836075035229940238955233240075815836741817230693977045804248326938295141008327723452342338161231429804859846293727068394325626566453156506198192386074319220020842872718646849833164955423646383858234113124933182462457394024993861920054741502147422569331449624470629736078200998362139700002635429485036205022634075305025537866588881642094290762253345484551814458609807753864507701839592593754676784045373889425422751916559247007434198812633071669546668212124798987542610839372779936792705809074239928142260009184844751136109334323473546510488329272350734436488225976908444549417568930141584533465388210039654885957741116332074540735957956117065435650977834163074498504564194612105286779140250919798927608759979348188710082332364818610195297987634821664182853261230932810250204348083712107031811899089114557924573676137153739601194149217409973368776341890104815725296537569820552276336753477250292404422761500813115032445000039439011161209454252506782938559250837454334340836538563116509145044976689664729080018684547636780766701177829524255145471557591002449129065396184322557078472092154244879987145792305317565809528220839259599320923781659106936134726697206847011670230970512205939576481587710252213403578299853627600343272068683215959716105417911689442520781956154339080525512010088785920927378019502557735830802676742454594640561519112989331919464288026265347341619569032900301418350996965167842989777522462732680975266832536028684873549274085452161640698946675240612980990464561035846260315577185985866942785584472654951755755921803471069326660511222412114010838678658134111472596951081844367764354717799445839021359782360151128972140861608191232044645935810508201888619905560379282177132728476567767679920716537480039546469828236656578454099379331027573072283347691606285913243380065344479703106981829111689312267430768621348734013436870674931556141352355108257591903467424735265327737516029348671568069970199750274577047666694016812091489184209729045270114519288621758652681490498916678088896143417333906247822310750813284241972034347932618486009378733960889604489054910516679256435648930354493496160182403812693767128614470547804947145438633623579719524266151395453016359060037457106822698370739551389102593023412019871849221940120163680940499783971010663162641081437411374706699992804338413983816520457683402989482836525905497696486257530923143324395387248827478831207205146785612332155404756940886573206325215424850388491585115453763002418316444807702685249525985509247365356150586156921904657804670322494459162681077457519074191517176416314424828717028325696602421811695437778077622260189294259071241149735695908595395922657144334012681424373531086947207261223008879189493457980264579795255282639628356292820551558244504353989600775512241274386350111502460302317726787477316874081120796985034077106840277737492297348493105656516235543790047476986671941717864689523276853133321494622018892738088226769524477851485527811741131008486154984954112694016817252697360574689504783386772905687886945329238634600219933922893015648433590893500467093433108091325411297970878402961750857299980011486801155610054430481111606253065866235557707995630179960367482019429584773171088852114146328839972835397191166525661067874310482447098552820465285234832360361478347384187784580485881179674963183305542815405235774966330219121843670341918032688852740272033122103515947867884644476358273304841752069954817564648361640735783049959885727414665718700264752967629004633585299994416429741875440703804067897427737476233624407568140747301392539358319994587232959263637153141805201672183138953173778367394291068080624389981042784061130533096569717155101505037370911794786586429833076795037192346350605200160214386289302631926951138569117270506891421891652479140648597317962728112922269282974082796766195122394509191354802761127239195417473644415077520778633975761398479334595883815495950107078793214553885577829801852489653312913157180302110615777293780396207762239260884864418194050638482304962987545557203978512213493292367405452241922382368230609640637169748123194823743498282148920833922119088741724484354502811659518029087272090750922120773509813853948034675816685408295606955087279027312115413845465984859885601016504743674468639417281222989958007123551642107359687697658459563801414501328623207953560414898396102610609706110051299228246107105142555331088487518930503308137779421171786192486092248309842549193049598055757369674907077434295072005109854209903250962327010337014256210300317419695465746152906933255265715061403305887309329218357156099349137998795865873553952378568529659371028123287088313316437615511872367066445995113865401223444725912013771130130563109704439281371498257552857299907390267950787286045182430165831356163158665605514570055746613571720685244773318621014194091042024642353557721838254856582936557194262850808109382738957130913434690946214030268407247130457655940846840690079259945006883004208992013239623762921016827379729837296201093810319004708193467836137119871646968412015984325298959996859105427919450051780279524630930608546177171499407583363366677463799911889381514933674764649483256000423759966409916371209146309366025832553419651669033353179677903796268730637906614011925914954861397145074552517860308681199174190648730163646919649667335052481698440850533812275476717668118832390996053936061015015078386873019446897869276996144425012736700616536893458455042166066954204577566947548796326668806106914854235761178636653329323882202506168029419167327088780446419429836797632808815007816239136885407592680907286298645932245819132812143384305551794644760706706592126119370000162347209849175920504066569712320615336537372789895311163253278558768005237457469909536927543248925322265852411912029048186455164509137151284979312660503689775847752044195058371868620662502541499569438742668034315605639649137628774482199612142463774551869603654418602456146782954934138494338419695827674534763042030435094769137342234201651757663556355261215065360710301791854281683001694422581876470354947356477795291441046564572428050858940688498437972998370928294055044645473116475421417526474927180012503985941680676225272577253168380395559645615898154079755293088140079946006208708796414414761123657522827665069365593026071175564110935795659534234429453053253352584522094241263736306530397684471123071643439023076279857082890113195686463142861379378992244522671944736933791252192821799225140478235293542638192902350975272800698545146082538293741625121330196054689525111173134618609381870107625077929877377233362684513757480030003549488062886537374211549551371310060215774817364235651411895846189398432582581872015030317363758947327862931564755749907339924311455984325890488419824210990055403351713725050024923121757930316571297074207223037990170356598275139167473148542461575651273769111269629824406311898814268563407954504023204822170679324724297751866559367406890242861885498536181674659972155523147420326375853503772766636753065381620111268773680843059112631494127352425642520745281760714839953993013348907994699887713744153120947392178583441585669905921078722772934525550717167344545760885681262226824965248623963381270106287398938479032171039712108943093945441341730773341338641778760754023672028485602593228462041828873767891372164306695893551390173890008022210821874911896520541897534018142867281364504685944166596017525117277039083728413398184832832340679412979800682336168159073950396989770290561329707837597680118252340054610162276228052396112001480126312323239329079651347096081900741167966792728961670433402127788572394689506974848641159474748093949282489511012075088333082477769677822315414552600226254302069101613835098172717981585552168145596279507328862514008310621769122410990074826631260436207426156755170727841243072025331428153298235115719268736487518722009003700672374849184245152198628809632400670934990841358722218190254602416244125283483217590477468908186323815709738004395655439276050579064178686368700435779140402854713698696499968760165306253902792237193201770211953760458339970405076194490251485174304414202764663591459144096075243539197746220432396948637600746688563314314007317610268495882986961220463448302699686719332480582253628377011889534405917068238061202574726833917341333247669243342885262326360132447078083747986643044258953992554749607653206685645104767603250156224041204033061836688770072082090659384161853045002403754945362444777091100327818464162828637893750293075921084594585298874179845795552665464814492942948047070066888745470926526152214011569998894610065656854299503640191805269790598748323017207707264192328128604596847037310323670285762254191329668903821397577075283481431595343062283244267484179684450743196301910585124159358327446109428382073671256839343707668269482952327156852523221393512322422342911809319385995147111233148884046871886216780332711348822732545130372614073666162528733666987694132339617952468157616444964710700743383007432743465054896920510777357896836794563954359648835025618351920576710316822784841825694035660666049407979427384819304269981880422018164757208660270726039638518956178329241054108240039967120362254611598288581086863514351644084446468249367215456837011153798984509483695496189077029624051748334259854691475731989338348333376250912929330117238856806435513678618566793985777183271805535827071139791279176511601647802842483725116502227529971204678679339544241089994177624359738107197337866649946919101026443803018863487811329969559693118262404029293441688676358795651821899209753780879609157311500384887808253479422065138592567524312144655273510238222488630355625094270060323369248178301544026072726599125301362395376160974248615017209673740300791363538069422538311413145246525894936668603009345861349666276806706121215905593462471437334811870626434893046071386621657235930339566661851537277303762489776036455430203671949691559350303292082980086167616946048713287129208421551935218562063808570854154928228282105731469166733707443899544129672106071290905472667960627851312504707260196738174376046868123461199681442608255218430656710597828604510167421927909616228613711057588838423799520530213482029205962712954521387200759577272694452282016333025241392997193086050554185558722875818666527385769048961906161223821857293897329770212335011418728393786613001562675960168224085363218706022658135713456638141376203726650072002841712509848134800656205462040411064626988731982179898678871134853053029687138398952217505863302872892075760394400655968982336224785125786922429949462695435422181140597276046222957422792392672610389167245523934035191688190423074390673620506860605093363900959454419170311528241094073768040913612528882993693400552635348138373699551456820750540218689858578195495775366680399663199712687137008594724205922183488333970029045565036835311657771453476368737155232665135020330080078070145535697278621827485163715919296110722483227113564742792482681850523270103702302523455427337785867921013359790843367137253145568043921987495902950605908502069540320075664641593586858606942820850619332155122156210416010752965059802667278347399766744539385587978270005525157784530278504722424642280694736944111232489394129029468118838932925029499598646029766393214987342946027880479009935823534019405358263117249187924797242432988624805625989859628913568975606189659666520556373789899042670602499270266797167265241868188231424254666522688811777999124902192729578766429623576568117386764116695328173432820833986843708986479796670337344240249829818258922412470738577852761183927660912366785387631370327173927140137406403512853440552435158074902483779067262967061281688886290446062702126663494026767688768958359650816869962653097024267139758599374873676547330324903371449196928764432123314445551453518707745476850239313652126624768062028578480951321997302862360955217015467046479379319987043784147482506441370558583457813562416501662719918122610730598824335159493071044920748600273831949879200107176585207115632219122298477571707897265463647969506247507540469907869417622991117823350754924027724611848422984142474910534083290784029200565601989730289382703868920994989362372849409423702511535767323588798721667487553824877131633298535027671047793985983785286074274765436102677123737830389329637054526301552811502430987376317009775204251496025952296117857352603837581907696886459203568934004247935695643412635682854199540023099332261191671825617278534330952731138137646923423077587195709865962204178172822153650248464208212310326489244040845230853949788789387851143701049791284463936029435377582891160751798525922076925258811805567320275785584469492123052207895110392764785917759200897754504061937684278895727028331916475734620820647348860677333112763908449454216287095554191193633905249919530778969976713748999956346373004282349924554883570077443189741042122425672675430425998534478520730503598382217119105225356749118392717081416073487088997774999543661923705473236089999932584790617718480838747616480685158674488579217799569343048063626485313131457205758109198363101908721437287010944354827178445288391177677344028512920105432922887817591473323031544977899328846751816462226641764573966062162082442327361793350672809871021980837016479158375975572693133869345107963734269296933249937790819703842548048546111358422868262401185580583891597369661038872241781253330493244005915782688880622785978895711695147369551363958896255251242144811236594787379697241158495014660018660529762312916900402165327576295701878212689200754453577444977663139207536948230532947473941901691942130675927167331694200141404187993046349499131803700203561249742168679960448174249426404702984955174733629400484110935778634644661279352864312259160186441843736583875102206171066680596778306053870062405365655162138858939920683255671546500213295664554840327058014833191126166056104496933226328202428775544907439447499500282862974897329278763995010570593608973707516969627101081197942264674538081747090545306802309686709995789063367201257193054954656803063244634995914340253747431733121836064135277021319433483333167227412706846034413203858871973203108236689093088642980673511951568422180994477218815341472965991165208293147628079284265327260312601941947164611067106338083340635392985206761447548117023005386441321675961185072334753860548550221412091198607305111003393996564349316641854754686213112705612890260019709473002385120615878211099967194204576110272139640233622232988066060618499881873543821078277676873387215714861449052755646597667052869528997369218647944617678432096409744768145514561995242004597754221328628149673351164355325486132842261533111216332081602392402284904582704856191814914705313456420017274335727277766902575877729371586361644686355790193215555823805914621154539187866985765771071607874404405468459341893514936779262308209764375859979951281321016669426007132740349127864505996903672005244928216595311991415888964188329947932619178781624571888694099170458629568714074111141038756603931692844569143802677397199029101382463609248191739778439001187428628360712456597476108671404345937518668789115896175077888690928003135479683744739955490864639818381030141315870559577027865551815482626525604130905294728988543093829235635827998275401766275990227138084953216525974230038924517074362908892432907373267179622802718256414189760520917774985994795736902938138973882647325250119389719991879987956555768944745068345520569102283808423503766305255194420280028555491063552324405374220992303156560962020781111312405672552532043426071119704468740589880341351590559760812282136094754821962319576677385907196060604039212732224219073692369047751506021426326962803871933114254096726918922215836684425880223977078017319380949556259862354742126121187454891108332736237921845568436148965588740582262308411986721143893628113637486358464838757168347704376277791175400093808082901372961416694545889905547087538867722065165976574508908479789087392882848939152593044540512725620442175025889330287320364948532078193646946881062825031032033646927184041467987297397029016306904310320414127746358625459441054906257022413565588854399389819754959740507996874914514320817951243321103548812295213722039279966327901786640018098453641601461335679749422296663117064515936789096236337026249479301468742395677378909985239216777180667186424993429221717198565439290395155712912360340267845463495777700558169878235158184312098888457789426774150789733546814413913294994332947909747039948244756620715812558397564363479652781135797989371501850084527356336549175342723071316717799593131240396102193944987558075386695281402304126894852113947122011204234856860616225235597220846990538952090486205642005255311003705369970567404891053915545402153029867441387903779155177567632501292846057731153614850121191528826396172141490926832306484248906802760296489381313159547280806316819287423185354718555927971409311070336482601378470758811542117763558274060136921805212755044908403792660775816459133358442897814737180501744924535143942908275937809013654625982156320927782020185366210756585321034659071809444662116949832884456582437576473290379513629731105030393694307717003348995614761338413820407216446221287555248852107203529516421202226311964199858162014571227776477820774031236724763795314400382869221766927795448350694854279266116931799231195637431570792593523836283095387809438099158365076217491175942461880414293957518281863769608776046007168285066587223168249686939072501855704322654350053759551306369121055867517114435565242541408678372178146644659279069607088812301054511630720264229875020971615150931584438605514562232399036381008546703438570229033988843892411088791066139197492810366250669636682382853192074550769653371937484915471755499104463341703448329682185286700135447959893967980983305486407951868248741670388195982485946255352052316171186631121804502486608700209621103549519708736714573850765450518005667770193401540937304894386598113814979150772702908846963117277842121569593521248076977236325253054097499094442671111610227670206014444338446827582625877485566131248061968704113149725241060121878885962041867305865627533592248272819128848264767814908484026302683957423560737359857328161589604627886004908189727651507319486014225161415338207613182255960118287271471584106569362772052062530367239580097758521200709176211667967373865818022130119686740914784700853266272139902116375456092997643660560917572674538205467274485249051539171542639346891005198137221910876251876617037257549487980274093042223698266010891716034661198134449365476744611873024660960993892858667660300242707182143764471791952364244996639597131822879989073641990324200588644673129385016932305264300914544398793491665101894443474032643438192461837553677086942729375947266392763941014245880198330780831712313869438607296118715667007252285075144775679061635176860427964099963904771069260042005368487381941572640599157893303588466433527269870093957226865000330782183589817471264496590216352255070594014149497808320079760879189469167712304993183795077023664305303856089425579506436621507741907346737747152743695550754722343059327435685675411016519796011792723307150039652641520119851250942306149155337760115342571049645553537455327373912144725844229754339976744003058302816446111239213488443970289495015454714626164910043811669910828160662592327384771840721770960239157508600096225226461203313340002020905740181357789651375220798966884004628051183039565515060281328113794536019491868964338530807590147519881273448406768309065924038241969241011459814841865113374948628030260594337132550486577475146480064321567254931993898843185636286364615840097169563195693504223402649852435576889813619472738048765438233015361064917634736036586785865105229396198850912327961508210068670127507444593720329301262809031598989705936629528955670813959085162958598930594258882612537104351207094944439043189775877835313069526130184249426916405219544162503684892308566018405433860245525059154235102892281157225991660803222373984678876483985519644353155698162580154117185643858229113625995108676659325100748768863025784944724775136588393270695841862150230423053873041962472692536290403877666804037475275682233798566086318293648608750013796381789854378572637879447170647069092266157778636995697509390336142717643807949378954687338069646376172614905725109820327741007430640831932146996596757152864530887432980353680944336972762076507193309190345369780031207014766010444924157001591450998428172580445590536545894932047795184488301388513784306962295362828409134166358908066746046735813269015280319528322689190353994415242303439405652673691484123775397614608390953813892130251330962601444021437092725282485292888496665737535601194375840734052058315364934586209009027702526105177686521289317055998745881735628810940986815792000000705502466693454598212316039754108384630279695350951247779015436502050819545186174701399330653735385150677426522032912711806269162364466941079045669818726874347858485097859979548144677950765002672697229525476292000097006497017354360598754985728847032122764389890301634506512113955172150737712477531600860528126307865847027531268564800867911651679067868250259625377109911246502311823548065965827283397844767560149607722011864710217451168507248109519189820856031149652021651969035547315616845736429987790010136224873448572371079565567153630119007360476895770715363264971124544390735096678512506677419119984665812654183465222326302185045728996530807866496131430402688067207628894429457658181966912026352985135612830658948384659362690739679347047128698283877115210052459953417210252059414644904150458335648800865053080033166112115380191224216392561851018696227918132488673056362427209339820961498683298096372243254340869177447476502842498323289071991356898376481195169637980408449701614737312862447839908892149217171145370485203370584721107423959825924110417320889320446144050537300072412789167938230649519042949884235531655984460010540330974171409056241168215291507299437832957663864462386526255220823362212872724373015227885349389636299972053703716176654550971509994519378128697236133168325289117302680082250684168795029592044638152444740904233298599545605443026404092351676699538573165928871267463420193227634941454552846721314114382348992513775380743640468588611095908300332546316139084967619217635180662695590074281333175071065539107675182923473304233463849283554074242787662073338988424972117854932754628567851122358774253756104516136901896183848948271881939402939671377552455566989717253131167934030891098024612203032281798405453821814507586442601757137856188960487679769660841388790159110503133977403488262012043544593400005987984465618431909480659893432417408900676842744443927107851139412933342600645619346551429402872171901331951350940113221646732904977863479810880640813176613562583936558909447073820418900095930878614096555591045473908872591424914595550995555786901544895677906141625589046317853085302459679812415652996965812658700816027769064552118319546544248194343809233500029270391512989407596619043343255742148510524521352387673143907003053967966734066003616097035583428094020560811852982911115073414777481374021021426654685367273346839967517233207176734436532027334241679257259571647699067268491156947169569795639571711379325784133331434338390862693646487864529188160004631322197459802607024103665305764449349268003293609491947638423843440808145768784908080841964805957481859555812146224317627157447530691370575173273731554262094200202698006977099458927134605564122345655342501587173260533712513926527010530718468265889141929675841961244324540532819011243701832139139986488069459645134998468795880890236985251604853161319687625865086394685164560769590784276051343741446844084634973876782574018613506474398511486282389765775829862907066842292258581169781523166401102376298429076059235128813939385247197494249071335544695283984177777795113650428454401201589666526545609585663242041037495740079156715895899313425361958001238334657756519639813776473741797857113408486895864071097846304994563549012413735266962208171506984708218043983326230433627807380879572415264015357829953257649623789211634553181308487653235990579107724333231958579276718268525918564265712153033816978296572435924968692228554531117367013946469459294954103233099168776917966625255241227456767648264608229110569456948415001917572173478515703490539670206252010571265749165209173606276316887791221994431964742925153466607412445610263511709555651086453545147793929713852588308072285594358125466814008303535040108057061747711510450066103788148771121175493397849288542496811138776009710676191080453818464984041035548294403448557205559478973299398939753657166906135239426472056727256574761127892318219056100651543010508929802712353107417363756696511029510777929232369013936205663423130428465684372533484052838325620911467659153421694724693558146231798038689631807493744088355991557402184797632542807319493741231983523009318020613542653548475853402907831527009061646044065091656366293456310196418370536107743223667165816063169779024330023793310000589137147026378455447664283602384600821325811898456064997752174730043737084915695679938726416021965781251438241830747040539381462726961323232567247534802770256967478060350982903441096559631755335013790391328389454844886440187133980772707153479079858837381349159917706978203961453093340774333140401308700016976972281850053722150308561120188409348933397871797933250455293138483822569657764344896493147743528916367627896197174103083488192313973614654541580817298455830239184671291505497837593733168478156738393698015246335470526910784096214127172920009799296380378336426436257522101673431518889084067238256001278098479634419840870600759955524224970690535773963672776090498440699333328846876635256189911815964880556797570869408416574074627662486663459355096643901311529993316824728608438392658485268078562272489685457880214787437359554215418743509820791593936102886181706452821065767470992175863853757619665538288752925995843927300706368289745100504508101413080107367230952540213794918435302325299792157394369876648255027452520192279581703528574576944561608372342378628771704309697445932370528143945171149417053782376316658299930955678476150463233341079863487094502991769522091021966331652717587716825962362249876480142920055959291151160717535120215658848252453126150214280664201686315746457423936543962227954572799792127295018806966067872588462906897198426510161877558819834851363389673197305944450393639711375913621417558850865760928671379753540253785269051951025632337075645193874526704834802885139606094576483854159902924309984641712807847451630873199575928201800381828745528460993324717708504806060499913347516083416213789143115191776111662528053017464323935225563202475874365551460236492954180924856723299666552305378459770852049621086660791318317603965915990687838548889894027720229043109157041827147452097612564578584473963579224881841367423387498432531051784920168144273710744370028949295312491239412197029166962956380928197155722246817412298345948919094172011635336439119271380533029439953651778180794896607634590684971101433748695883180606368173802260393927104758149598582177371339784032241148123170954381898446683245405528691877053487182614734460090194813560883349797922329348984245064879072988198681153942205293171283636638389668495585267488997868680840618597265819086818240015818597695642799451636322058350645310129866693423846707927769236028134639246551976490658091792068372541295636001999491467487636396009693137088811845299560143906019136055157561584891620527841679032450353920378475312935567557329767470923653172142843096723673826239695690458727758712647900072849771685233136087894500244897522881982903744157015873905445142815706322623298195948795741994418647168190623590513634745502070727041136831882227153951632672218268952734281772677498900917664865060613354111169103032743763416596174970514619258091984641003695666756101658189037184288417674320654513555638289496165980869858255524935956790536300880215337031123546248516604889328419767245338950817250001778283621849217793829393868550948583227617952525590678845668553489260422907751320061265871914416532545570884829475977830081722071561427684964584648601960563359716791920982316708228140275284175607278553664453333230968502384173076676324467179183810550092252235860955023337119929432681151003968516386052673362331096750636731470228711286077018951925086330112180042215814907343029564893172939614662171675135641752402282141211216808258267147906739556294037058680085731248922013725682187223993434019679372529985162942108419335386560885224249764987184584733648796864047648326224382133357809107201118372912235904996178842166989699974540405672637584350895234038128068671222566821102741154228305614554278054234265858243375788972947514776992308688258725749267992330886589775887713605819865708020961630967710522143097180996154025114513367332828730367461876603519866247210362178537852379927985346465387739398825135273731535473392499798033669611781329969398522099848551234399305420957200923386198865024702355797457531441080918679509505890886425973528582498730462258234825182081589273856737720141941050816479606144440528456271674274803647903798155649665828620814259638088961465932810450339176072789761961462253272618600883298995537779207340094192394633580208674159881444832469645426361460792380142975336902694375132356882342374271630686066025337120045420405753707888438154018262152126232284682321399489637897404269034408216003120514557943914663993688723987589663964529139111161540753652334674997229072251529540413966637436366418396650738808032729694750804350462351943140857902917882504540248235611257749366307513121537267139456671958018239180710843289834219064881431909761029999433150471002342960711408280451672730538661730963766458652092065737088472813836820068469680023369492845457360682809240231710648416869117003022835960305792387294271498365866993972659937608410794997840414684438459430054029750270307176806278303771801581372553602453302947456540450440933271124249702099643507733110781133399705628965393136825719948358225745605459030433420591140462437028256601129004492452860315654346093803426090799150001495958241299465623570268986053686924085906190334733611035461129630288724812705110799821467088502509651207256876135252879619128236242839473352107364169043366249383804027430650271344841796628764884008676978044270641665180242781798646409568139827628991494929832580042032845719970876793457053888927322011887672707489631015841922902169084264344844200183895425052712059785543689149234141370279151954381508433099046280421290203466762836260586070394227475599897018594892577519999487093154779807678911378451372115764534038455790537365904813319589704024123910239608879565163244622584481738498623572971700360827746327013946242386445427891702945117876253645055994542664790274650942478715931501974314071222068683995456115232130590805005266239184222899608081201896709818557747444489811110626873295600218570306788675018416347718720857351422222255285211626495060315248382025589070113523768781773569702651680948543917614462008200426600735973592192435580211281544370563194341790955238657779826123945060062338106081258410826824612159715410397563789699009952908259982880349498131029956924182639132229260677094987058532532488339163815344566511128783064172439140977330617558241272983578323325013555393387165890701841171349367698599128566957541354280181666404866629678797231953853742229435748825746352628283811279145610243696278518990022887679559128198273294895321535025746929678119071981360792843748730182173310446313645640232954716403141874834102408170815166719722165902002455520785481481729072877855589998804178952413286865896928176279038996807134569767472911186976496701994093590071158005712254744205009543363382632907136873283350075759602954222366069487211335309597092852663176462384875741390759905551987442164784557170780977142529853947301635967962586623380043652257356046116164735533977467446029612405994384608711306349249869961783590010006139710582959856769320386347924802847456799127241034422511799321144826598577215108542915189521618577792006263266887686523756023773282716964527841587863727388349049553881226604543718249830752526324874247864845392447927879991029819093380309824597159884899464889705752800262278843382153835808360765241388407469220844385566029617944039133451974521166026549289661471815451985558051678641716709450077085143599577884498228133571284334613592840649772626714242320317295077142653434078271550151146835837939086767789102810568134005944441173926638927585894360358298587686375435801707416472901974676521125574998583121118800453353695801272368361092579708614305318624984112840690864269504163974126948210011258322536188586868784149693057484507492054611266862505606251431165122569683950917086055207175550775410742941853081575082599939689311464625734303220466053746729990978509114203841500908917279490752906161659047105419291082779946536012796726427837866616232915479224279824655959555891010955550238576093906522356443217095802104738921672179429571776874916344341413266727209649710304016225713639008550904755300461867573487633843185987225473850058895634785692299295709437535229420109450420515885000029660726864548612500296334207846797043914234268992413068919697285190731067347794343177591470817456360038337580631449376822138412414964108687559921341101596652098424413601769067427606896129343732251872858162340716493261767030193882927091918038736642991935643416690190777367926000533901091911559666631147343124906810430556598410841660908681321513455533777721974945527858255682931021225432400550445861969343342446079098843624438565332411425790387156171256852025438712107394308068991793891464546975747411524627200822434069791577990875268925880466090604849288793016138741825606783536214312098258660085668812141424988254326840388429706829739612056750202720617554413330482764676485287616924491629994839724589929052811863936890439413190729173250842645122749429042440087850811799459195183364268375858550149894453608569463573160440185484273984863906505195668709506685659101535111240841249671267602334715689270122087757057100549862789487268687029618003807271883335768176351703664568700812414938109060719029417108330551263479559230288724281048224437483820046642685292033077032028174661128360206808034156149056631902224911408924508170110153467730045616711743067504802700303450173187342163811622291602091815119760323703294821260655575309476219640207299115257507083046970856680533691814363088033356960108589991903886997932158529551508567213916388882094500001969283896421306298320312674213023844179468050496886165416803007609368100184701838167847160089518604115751004902263081762752751491861711991242675510874778669431026384647605220248251738516581403657108704127537118887790023054162644469244712063051007986314536708121292318398864863856852475275524316510659884229914054806769099062208253833236557276761025219322417489679408475639681699469880105550642569855894418478998336494205952990179384643453329027121066689361731202519115843412427313110470218455960965763620102281792127021011205938831770259720706568426233699216356353884886623146879941500932854174570767025512601649501604898511971015369919735889845197630164332224518408767441668343777762825561248531866951581987695551029489695211684351704838811108152797272413893072180470853505211461501620282256287981895234032347067996832627591971994879941663259504180880371227343629286025593164961555492485548988027016804672536636567590677141732844853989316886762551139714934407257747495042213729458645769227943331414769297778118429173104471717165891887711740123621460135160128291042667547911446415359581713289440589591746746990196188505234528307776319706486773384657275854241911010805457735475517595116028565174387727808798263828783753188193294826416409016610471505626110164447768091405046851368812341981911236731402611456794892096417141835755813810284595576823573975925275197280112882084312975649494210054841213649927815069498535182781077526252584950743933828959344925409432984684440075112879969926666171687634913421032406965942166900113801340675681792930927635646032968791544974490045049895913817659610636557391119427050519398182610636374302473339854941372073479757170579667089205745641750265868006955774772166513261002161760623989984225175958197832341047129118514555039013571277594510771920901871215092372371522846064880684989700626292359484288465837091340868566640882332410016859316477547473265791764677462335403976070653923036581509259770863900133334822626199345521065256104341005238498139791772120114187526245300795270610880082077545999115080998225483084232234955597060226484271197894473007439576619420329416815579067083772188100858445656282936114688648063575277045406405138892919024495289713604830975232125837639283443682262424465276504096462749914152957560734873028507976642479608787025711648900331288593838632285829435337828119898740463329693560481335646211351644391062524248407386331258413906825198833672674333694298025610619152840765904009639020375160153332546973860035293664174858524711626800871410066228377616537857033791732166049791547637978221883849624185350814480084632330019754606271745456740674363014372095720044299937506768213542576743743982826575037425742887036577014343422892429373295645897130259141238664613310911910513310515047343669586611153626503257767908082031392328827124892221560728545649870686655847758922922907601581440820577745767566447513454356246705823259569613360417879163612598855988466939542416766088761738884887754188879335282190760555422338930527555582568796011534622030206463167411744378344945467018224136912358864424673308326119987150249400613414101598546338143837578532341528656889347785777921736646468741974931464316194455224920354702226745575071824145088625887595906285823449871558337370970241156509551862424117735244080998238100445931431139293628227557646856506847409647613481136947251119496474498709847836792895380810436871427267846156412831965155196796426282014631714192532056709145711189593228851393826732729740906229259638029630249133251722805235615452356125930154165030385207242139488115575390500439427263250048707780117005928852941662051876007176612238301599413333704511687116867136540547609179452967633451112771842357179141679700476583723966713758003976959040476026243814439815324053766108261695633100453620554286946988291216666955478881608638400264222324223105803310158751243976994019138594754105710775321509798072358407178641201233660346305746901577050838365356830580198296170318703081870485897386547237125857935666599619605411847540796442541968677715565676257782293702921637335508877128759342927465077650403934518893321260771532167247598212271576894418407912503210187532834261740377466358006969623880104379817822044225060257446495007665840215096170443969065547007515367716572072219338554081609642555630242607690702557335645755818157864914164412703842909305387513853850873935712759672078364639495653509472986593281099090257263164023252552623658017189328765819822074252873602880801681855833357570423259065200246445462524756203668424145106803821845080114830118486649084569003405410915209801489463818689096544777015200725075694836893165373592516454081958556973784138775438213221563923315137424718856121179713992180083730425296331786273145095764219283154691789751667105107495688104903690574702418794423336858779842052963694896844742318648283717211794178539392380876051599523045071082400603328925926961803563136817935276857116824868219418997846407764251093339648168322637517217721034160252565735450838189500595929377727183645534286821538098067979576063828098721557758543288478383463007013652974022610683647168613981168564867426510150176476615025747936950855414286712021201895955310289353859569616974777809398455280219297096717374122140501187304847692147530964301664736896889219553472038200750701257100213049012363258101868159363760891469159279357194979302186247812394433907651271798476418843659531702382282565360026533717254232402126956399625283784855945158427970085011369254331269294621716576800372020353861334055604848680615263876369656318121129977782367084179791326532011685917546757582537204808153890442547850413773798506373903041691017580334073033380029104780891443919315554329005585972115373464198085204180232301794648911244559948122364150369473445184198054787949575720255069011075374169432398949669126246140793333892710769500013899831096629878188916313301175472082433839892457192591168720139538166925324400999589832380659583893742630049798277878176167841833700055431933217781968764190644813923620431013204744041468642363879412249243617925038977187332318215090385125680130183427961977655190392631623180964222402478767066987701090418703856512362939526204861824371675509236042311344812398237041414898247659876101580921956200308130847810779258464820281315832393740703357962351238622912398592103188026629004211288545960914077459309850755128371985117154942997797469272653872976487229410030691466947883512160340471083124218330953135966896140780548152742798422665694988852458473332664051955287371588334433353278789189572710032083557711831225253363826043263188747878978754234817702250744280174977602850393836092292232949200558071980692137518488055026996629545084399988202626514327926330466112775493973256444897982315561490296420872853571482453567536804423843041839661255626456635588655011106257303521923982347410525679425935469917726718612987727402087664730321080901991041208499599970865791763681781826407088926607169242992644567102501840964481236754718439330277670839018279664515834035203680732047490659866088479524379117767207354022685479253926570336651743656975452286713114006776711785773485908604123882758811491859493611650740135648795646257747429863200730485564718286167507063223346409361043471827313045983225584447174409028888983326465885378076718218856769831718263871824415285413115390076794714419361217416935850119318158161627488139189105315160533929994904848708603810467839478857245260276723108420886372789237467810704202157380113128024500485761248600793534474821736608472996881808273206923783503609463300689029061395052526933848627076704359213867710523188319430538069208022031398864065915916461512280344312656264895469844420370014800807042252475798121170416347982035222554456197163554262573499857096019231311088466105341905554402247685207806104673338535452082556040717860431445360329771057592388148344567979207928029715578489240461731280551768103840233774124374543053343556740050226346951710957545536179289737292216181953693016479521651322409307246461914059474335589656816164999210368802648285296223230032542200128802642919353517034585424522900530322111858997499227881117462169456967329279161268055219919626284425449386119874879969228431119507556218733659181592795806523618190915052123684862032775810818837244473344712338745351321450679271586735193259831207349503552265385995021686683357787750380321430360772236420616035388379445611981585642683051891245591802975136195468931679626200937711448369413871440839104412671719774449060434255463210261935918330118886721344983239867469154869887831947433187503415401006629492319350166720242317448052066745799224700718938550670015530001909677225606560916387258900507519674091425352863226448045509163127466066300161708404993894291441982180509794638739098115534136178186511661627725212665746394255831771558937902715718436045256980944455634451891986061868408813805166347680752442504452285129427693873984937857344421324035990008520484583605676024669040769345552264419819513481968603764846262449303377681184087820983769066942513778163041675460486071687430947311220379260710809735626946636908602812934610651351318887049444200271748635091755422351998651748983433519126508647242969365359002139265532052850805638499416467427340467811623351103864693368509933647614012697424178382206135466392610833964015644199669105100380640273235613184191583482197786452271998297201031882165069851445415467425756518783097985867985684710875448196074265977381503809737043831420001514498729258597081235457215307127042182745862591547494468321198844275686467561394219256057077843237733894963548845194797037764963574026959672615934423538516891473293695188662560300417248240454818890386305834141732732439811809375249584877500990025025149532706263292679017779976502501482885036280776893455891742616005869249906028960163568417749656821665691889727787480594730212140229477561204048793954868545451676113375919896753435414228658557715311802902594772403627603707189807519171083834732767643240869613567551214375434502655703321651210218552921535800679168823234988945893988819014648851765790007990203904319413186661424290283631209786105990313649546662867026244867813549670929873501053736772707416459856976675672827668096113702645353981008305244818619601797722205704876669824349523688400162210988478347764140485256372391070723048897946736558163861202791612921830101136981378489714048133566230519370996489396679933253906021691676091441263202909821838129283499479137734951713345941756197630501013017660447945218294177737900655411415400410812549633046963797353610454093903831123658717079920327487504201429476357892000142203062914172883737302239090916901151504053600039066845644646530206409325078527091528597244702847865663184207578800011914980027600231673515678508960046076649680952540284811256466803743191341862418236065959763577717421545454835956340400892590963739796357794142395819926992804240505874364613017649017119885867673617408172550172441272446935374780415186410240457388955211207805871802492623537923758133678379023366287352533860913390462981850731437996554787402043091901931038191292738151226502318611803759352298542034930575728291065436764113931885544337395261586679745469246545683185579289314645364777739000708626689725746995178226714615142337766474631132108919869955588961433737639537508351531575681154154172091047875704685349914589286021201289082259389056236361964966585504804787279758708622715486783577907455532722069693257161847841918967551034531535497071872286118259760812429555810311090852772247390740019962511565408611308448762927231864395126759604408511594625148108823290771709337776298102795752993956303278537121327839402258582825867390490555648558863777869571329326655007658638156598437894452594207343838919948313344776408389035448926580363953065585568420744132582037609052352779640612440851486929797793207703590729466641862504191837774117688242076645286489756451501175770923859549262582652932161645110906392493465895412569164979324909241057957743699355942706534579221470216953473145496425687462455979440406955783985381058424179192774405976907960335899061539685767315551182609302317617955979626816396383972592664349750106332534447832660159899689099905861680029084916618798005108159481246429641024010574601255740388573314910241466923162015437132599598685742311928150549532046630788729915703944648514144779146545769351252353513071779096813911745985735403817533393083462580406002765746180582497324378068542040482641209976994237529536541944641035640655031553450057459751216765561954031573982811583928343387348698954873904949799959579655654656510444227108967933256749113431245056331933305458841894404650541368914566500955513790534258900541472660123608794812226630840146146098238052226085917756071446491636686123344735355449056429499300135615348254551742435544915991718627092451611203895437432333946666188918243677598528604332583697366781572026311715237530065543193135563282010927927556819744536191405350475624835838217178136985831738372369435431094028128033540079698428551305989179961900513695798438671132437515809966228683462645173267052423118285117108246296643431564793295388582815997767096523044552901199312126656950306464536145301240295363015691171445515059214377114592192003601844731390579429150035321631528454471878829975402116241907538681283635104582485854232261298186002745492520800712330610447857418921033900052966148539449345335003640004348969118418733012972066037251538305510118044472060436508659281590407907785286064953815766974796404186291517433549957640416536206275476390319115747236104596306341749998926365093623213999214399414891799423378893662282796034826566676093394282645440764507902330602296245782294317858493775905827658673544617925015557717568230195953907655206788310388650058681340951203250612242723537528194659592309814292848379867138796549780094890268928650985732595385943049868017750921725177017458900846877682282775816893783780799675623946943592916462322503411042439243794805013628179385440723996075041063799301267437043836802328560937751090846309655911831048128134982820407059108130310309516967852367429297474650839318126201781436479228852076274109001633769206665508704370100967412477888998233589927826840060045861620981249942836659893224198301433006093858922252500416901217032949438877203332880510611297101437446238192148880263038448736450542473169409501062020401781663519215516216543268359421644003922279216464371963634632790351283057135103222791197104257605392481701557069509933247024354796918944502519875040143282147325855629787506642597426487886519852954156616022640040352880113872793726243401010641202881905167172447580358740482364878993148256480527979236762631582990486783886355676776078887195718589593404070469552388614465676663432739220751454187481691561159488267263835731501352952837358556499063233058805269709277655399470212771310556836218731720303232077963130596661130048466982924700873589741374000557470379748573678559285898501700201403750194415319004116904886417214998350245044508829768228885970822671070551697327469865120331649434608018926312691977845266878938279624296393045368590734917606676300165109136338233934999909761269351695447035013510308791229572370582101567491539029255940734097558086078300165200882732546899520358211001583960881519112946863405802175435039030140674398430697727870952731911031715572207155627326494511171112021763330985389222715673805443186326499116720277300899784894757854787987279674741076525345953252110633350866604565247082402580244055124471159070710626297800258726163215758844596070838536684616858802618050985777655280392186392533988337127794700908111123911928453196255542646354825912012774827346396358236689583838415282625610553566308873634518386845421724690978616289669690931228795457429197649411636298956661622243214182799853567179978451568257813112619317074250887404384002546286958183268788294560184678388781076891978016916322173229884547761697692331528201696172068280873102147780191150036219705644689425934197431926783926255166270516388583474048570119548513757960942694903142196625352235330618997105281665052958291352068453993120480007727634781498556280253313366101887455775629089176779261025693318263352049731340039895811892851928314857850052404025377546671239265462749371289531323724696855397402137190040856636101707304048219111044390839549408960139768359166673185953458531985008817554416152351818144984791179643254455840454551655127263053511742100036751793712138918564594436165095897037531952441301031693511713416341257835827548860990777814324620165330038710504923418776661311708348206379996421784150779732454712588831364893543661700515162994644410610902043569174040995618720019574330149209886052522217100048822526024501641037035387071166119151154985076938337488547076902043864668704407077075150056176377926054983011115206843830111137924233510710370408113038530567254816902984524794036659321012386009664894225221887753408156506021840277224812697427436929488966690904635226356675821381083932886468059114210054407718467021258216922382805018602641189690157609766076928432592666723481975449209279138469862051886325028155394354458983498736768049750418569594338979185084340086226903201803517019234499122999859522180512709909040365584368534734849472559490651355744865241701272743602923510634696964867968815396192201143608176928252340604784841072917714143122396864858286587307791375125069956453362199769386623186420371730191142480606981675066372720698377107657858720797318502420432145207505341201279710016465672929957306849257724420317693954653927057251034615574310515306171811120063610141988874930613046413437456613618568104650651620212041041705630129895745345648732430740931200756861722904131643005039771063751051369937137286171699657038424102884867970938451442693347740335953187333265010440924994161858698555104423138554108494693790070487489199819969132957890581863103856769042542872393688302770153008229587154800354690777214699479070666146143028290194890638422912147235786624010118407616804895468281582953275776247280272431316356823303207660971032857623452863124730050432170769774134075397226731249371639009040005811550414401983101436470766625379666962371352087159882028488187412853870035981549807701317847444923829942531784908916864124983562158833407049261060248722099746738653280865331610979888835817345538149220893174260163047950928926130108330285234925740433059019262921843188456035128414650301208577577469176550956327762845687262514990026234423656192600211021726783706578419147946120483311987302006013665587768211145672026425666235093090796590710821581372061813796885532906923013018114055633771895802696501453764551362893577247636368386863183129325542133763538412983428266115915379495854950986165201985151415682609856723451271118307331135266675814265183238583821665093987473209983311475309880501229038382192377665612041226286296890442070409381900137635293956374550464784391498833240984437026661283274348167911056736945996754012450654445739868697374977213714011582223460972656092191251057185486126635887569819248181336793799981036462315283388302805107331269689247090392170031108066742421141384229984737275747139543983215480122986067506218230919258040505417475247616640404078958682625513570978209369068429865819929618438834776038391860297809170300951910176171313526979105867201863741534894825485879725104635467097088749027806807321796061204799865094371696802182151321026906444707135190423848751928766602273110172453003761604984803131157633989327510154555778799079579028395695970077521442813776319148814857790747181008487887239156385336156455329068539374028713357796424206826906864118504574260185461729532630702139410968570344720810915949176398555406583915013005056805701214509733425594175456358267834355095505503880274534742563455520367102327734608076296523835156055493919672248764545053581777079357906326977369991916995574353110041643791266199704967234319968907229279121739196420649749547333378601642537398928952125203532853172920173729953614145857581829961203932204836760103024356441090909136586794255954978584717636756221746498437062801699550089373511267017804615551502184760519805778091650240063681168891160849813439802368527488021582450042635519210271294664422586104977913126218926092303178119527692261166962381700371988695402352286947582826871969999687577194878419181611975365496013214546276933242835211026945252172435461645916271889518724495511603291883644944148323334228516081317500063336189249521469308022097308858333675284191586553045172247097096248253790488065558171088059302039154520572981420056956041113708554690719993924388846286118473497131456423913586718844401970506446638235561684135230011526053386150059515672671219708536646456589051031460134541174087171640984107789177036736409315176182964417138593553410060240986754083943950875953863742812857258233735505258466835003975269137087652725695679228778872944846078527993320486258411178306559799774060266324804391490071653578628665460548329467393966074032564081233703584971254601050240116690566946374815126915781198647588761110792353664915984418187335986674202293042700215069246505613115017016038294704126211519664283654567989139055605432781390938262466868626695676864613722450255648139301285421821675730467581764597446777349355329330298967344051790548295970895733863197287705604236815320126471509446874043664034487338972538255035191070134393875044305984769450367477148359605379183303442322803259927691664435172598562807341984058123814221892459614005474420764326293232932357797854807082993268076032897802847672939170637547563188476443039468549130543142670061987385152931856604349825289198123475422528625195692587500608156348065275074250634448727625730362553307745992785152091901088804199988728904393342605044432485414074934562577835475421022659638155948048148117529366991621301666747002858091682019945427918793532913934762888618428584761469547538221941998601806790914487250141946138807248504375955828861482136879968672668781612304100660096206080601033978183937901431059047810903547650830986568088437110093546532987161623956592917854749885038714164285907662717397191916770690551637310538754014475004419897303936425398305155283577306466002521532059905394555175336416803214342262043743213757468290111615324763922220803581611619585925014528688023061256529730051773073952143598863523177662020670756150960149929417078479562132272129339091974737899577202983102015416169318524537588085843317903963208695547193814293057642324644803920350969102566714877108203338839673584090741656488192749114380003824250145124866255525168931336537439669095101455308568046570056020406267924456298244803858949058265326792738036879115704933396260456113361381495001609102548834190535100945674057746305498927470354940491819353478836387314896954724781942786081642173382475119138391442911406430973304471776740313081873670581859035342604959230765758859672982181456756360616366373321737476689579199580618068401807798289555313280577723565403170184451039140173937632713025186320741825626011247800320420392833897256473825315895330087330794589212380529975749873133986416021932614240728071111197003715841763925035256560307823802374573178497477571275962013478129667036442425948805609943980304923084952194786621076406138710676696319935219939149913847542233910635762796929421998017013300930706565187170926868846190544537996051730147372340517552791025666866867728357850118843829123183916550185595126854215036130534675526576747352154297328883285835248404336282686411693152483912188953368321387255046470300723677485480552791837945727035839073961780967879422582765544236765557906531508408794360569993413790044129760786442842198530167696479741679346153366737998395522079283899652824960530473809645416115274686268425121729417534817983046069474109622622348564618151398476505935223398229046890998029937602043483727750450010601497028305617806767257768947665610487359226896711626156959945308500473663399337032475004368963921890629228066533658464347064762453164745186271466237808170497165830753891060570411998698615921844055878560875430694805375739923458942278101660208213747045505636110600977734894643877482626071529021594691241437056305604125298913262586565729270440367778912639214871235404178180079808000162218245783282293738133702920054336904679745227013893138465625973480484552227851144412426963134009426813175230197028998070876636550575140710691218595536161093261587799042609967263664023593256006941561286554459228030437591012698678344863658662438757856647293166421813866828919621198121159141842969563010933348867285716965560926294548429755055946600275684949967302087785241598059950161180132629252435866414482162128006127620393283583305053847440994168926952894840684057891262379791720202980476647425309612321386775132412448538845097340440951270153602028004228037299327309177747673154288111358490365434551389565860890489628969013945521343749058864375288820719208492849977657228636799032450585418698523376617222084490845565270401809807799330501425969161627259797059875480064792733094712801829869585700817407772079855907409404131116043214395803541327287344534957612241770718892402665184603168567082842907616324138208925549659607433614642830230365795145769959637374564460580666754166346439641700423474064162548989207955243635364972972399271388940214158835219481575895824724669824932054847681046744486327620206654114781925325167148465640385373378251726359036773117330238055832029795822223606882508297078181938018890861549468935689277184481738051758185661530117154221913922212674979015287689490144325852062737022589375574410921409701417311244795048036497248123877205718774649766443323830199615601983782675960944726949760292588387659114489350297653941690029244682397300695034213426739025552250846548223172685798591173234320590745593151769662865064318682140827713430183336282200894699889031975639739748982584186551233460473865662219869380173095980635013511536936202214669005364276697440886776994567154461372107607127221122317885715925182702371253369315120874912367517458204972220376680390408665710858679324479115765273340109465246952716409458664098695208756622661473702053478835090477907431386432362752615326239746376914524750011742526532389089481236311242344558557472968980828116269258795879744072032805372104004986567070848199815422907536831056873930885896660937859141870857781369265762020534781765717468195759015759870433275357215784578069302079458014106286340829193000214166827117684890231314313789592642310572619121310862066971517711925789682992402030784347255632244950266525327725210927272233858019239269361957222626101010967716179462836463734345388874917194699211274191125409123187672347017749756439832985929683860742794125498099978163784266583697971814329879181791759380667799521539729852277757293178155356452551468189690706046220383769821753325829608371529243751245229688519550172551682613351143205018332693330320790035974183121739478164460406482493830965802634150209286741226265284275499679930381114957399453671756202726955172583016966823907802901255296264624531295078804953664968955380773600408927092995593614702827191947143417878479990153274035624118915261130686686222355146473522745613032020319399181428447074818194850312873277677510142586585232525032950430060058046366561853854277279586922099018771767589746709842698423297623551131382551960770816605331965767061321289346028663554312822370726387405218672881148061120405177148092056262531718656600123290101736385742103893705229708043408897321110428392583308811879122790438657863099067167365305696235684630950736134715870041251326632027718455617096926857448232068094664864624904028858595016743756222107349376665513468594198832233684619989417681661668979487478879029660943950439865306262212201908472470434008439607513701635252922449712417359556294532714326125219097708765120364962905006484551756389497455461326520195236270032544645610844913153074038593397856723949945826605919580214077542158939108218553389099385846587204525710840490809675888011269931132201513521056331864288156190091213261421521109959597700963433507845834920026638247057783063491125360802845837097515276505871275402810990000659104147747666530907161097019558936180665699803243637167794785586030619763618616334644900888798703334495850678114319859673062344892563830512210002390195776636949079461157507643245398799195797743804298059772849296632485208354053239330622149403719930592945642673557536675796134348146365259104610491865663012475771901943720863642946318532420316540247019159870135835256300119734819629990369728228700360026605876197960744752272759533721939395715574360714721359106424963517278846154848537582562572566662063792514382699342165357490451751425088984932034762112391766410781127807264252568841560313587172093655870576043552480577573180322770866264162467040178149931557101480703589375324132152945122314396266268156027321711346296666464480437744872073404706865867481173240821826904738671758748766526780310458140032048151031776791854963359177347428499592484859726329393900219133617740361746582207412108006855207064175181685653939007289682007045586095989602969403159942371881501564255370925660406222579032851602135337287634040208203952026730145246856642869921031706862612038926782255220305394183227137852019937951023464070072222783566159300592839549188333668439592624443732014157000700333167057036887123682860927498568132799186402776638556527056905611628023174302829984640026237427163672766907951168851013343503570556277360162780683370753211900127980273630290605331604984459490698678585475301440600690293341189183172651590131392035187018629972897698742119764262412819736276985588895396442923358623101705683823357725109767869180815470644186708619602229797748304751972626500543890199409247545203349902026296130552174608792541444493397855423212600625571008005064512993846995809672309386212409576407365642291378502569652432566335107047199264077340939097429454894002838986544905454781868748617607817626257826930491362385008073430147457718677196037715638512035131667454314226081611733287038540693042191241862890673545148878488213475153129363205021512288261671713136182925181805141852675314815917055965730802889661510401417559509486464012165074636488704521131438002407976348382404450904427911006242575588678080507115636036782230963495500251370366898750636948620028058982508040460373673967114066964834450492368526672488851862321063733745130755795817680604402150204249920143515508559686077621821122088063810234695487804226187591722662229429915113471348443466143049330642705404884196195673929490747854813943693550030269280566926015943183861965296755338659824986371587096110604309202536740540407998778211507367019154163263732063103074450110395704546963754546956225448888557786006296197554919518827535536932105935913503483641458557180518002255979387255404071809959971842525020606238763278364666900114300152429635435921207698118105287345287675628478658208190269431065146425698015456121984776798285257935434677797141491267348361050487450263000003547144081969806103168446492407685834224428954379215341605540475384375952743270978376835318825303812386694984787581970424003938026899872714799701743968994234026823169721583432920468109305574313275739807434304282291041254870348048338875184701457430794613301367689144303336778922566883166962261998671254453832400686910566212112726723674469064143579994885916380243463495792473287800323604158160105725505756272471714836998044998460296388209866316659947678335785315758404055949504060991632063307834865452002279172579548779521935592305102572582761911167208740944644856114389608479374100767301975654975412333780226314989932460132888680759148476344663787898551435000132907785868006013323971968262403880592216441057917432252396993713619952568851356747542138940073910128967386097292862492602157920983197393850352031055924227864036770205973127859649269853802591386313569950582580824082879616063171419154608910432193988536683619979797828754098985902871347422864278946253419015256158217885984259658331494051643836973431864389743968951677728665140181694616438127910968051256635305390700942095421525304417740698497563697235431635203000724813612346489534533748650805222273668498972835974476705472652157792087172737669943091149731049746368290420993955467837941880513305779991403328166153996238385577779292967966299809455783858405704244220408056978291909637129743833281979193985381582108698474297963070667492627163451045748886263933412055334540162876489893054077813436904248278113141848870317479263633284068490804222029974915806408002743557109586053048946639915860169408445269614852841256848684939812123799375584371463125206771550831081028738989642983480765470905652463854275743177427048904100643574105171899911985569530063404109050579326794587715252717755651404514307484759405930516486422671727381175193705342237279521267765565871868017732582100477429977090865092143828948889164621864287388451325605741931608877779573870370172944696601510552676294604391012259095701505178281489881640132571136860312366372552231414564929859854522767761499847341066117195488335502567064922110835028875796051869665974013742822828565315611533005783346319545905415665821976136689510615660577720616680821716747383651660943096615918807036039596551700295724482845915108368815801057753278165952590769308735555696554620286203611989663188348719076474028346481626599610008556868621637148548319575473228032908381667060890142086676229721841306811218620593635509501521220936742073357498984031309414826737875386718501135059472219887776199958371328210237479309743025955252587082240559802541522942449816100050523743333120067614508431140884144516103077564365120144577224812961507350555134083931212725501295153269957764515594409305768206003942582927857769924155914157833011083254417466637353424731628463152557356980751956890100447966757770599303812596783920167994943851847635582387321408128504500670736362501575073678817072743127943578538461683457400181739952800869891333440666898466343366012904938589001787397545091784904097267213357817639758595200738859337711950384373466697005471172989144776873793370557828120000890285564062979903836861762178513099524512174250103863866684334584848689002299615410755290789990021429001518867868178312333435532604728037932710257710113522564218795779010218042147956016981052511473412579578615279227308435308179094520799505914636169510282348696914901744576379374863123873365507516944108008020848660231855224376855709827131938525285597353939715541933730035770751206985043852246590884554494566830985237332427063482606171871336141989598439094616028093985347279590330620706017863597263023433808417515347797049598285455896422633951300447530668988827137543736723545449343013040784647466628890244877480103157777848255331899811413209606539448396029565999632877813273805214264097578694654311347373469773947619776433206746127557449385608538603589707567636052788618288645269537326794657771847749174241921699707890680916512713504155802154855505345440301131455068615138563305664026637957283832154602177283548584681482595730127877493332733944915114306675540524330660368894305238659955328679022467544281512489581325744121216676357278368923923165855799309665518796447292548311356973962663816077654646421822358575417126251921972294755999569238463397346571081810395264938726174957075271009304377684523110093848317381843195283949355324300311878597627554849855890284186450733410436986358165468964715261525403492125773475737699625014501591390671124216129093262045009097780055790094362522735769507702557282505211499739543285450511522389801637235939358771579205050317502291063552329110011305387185245985738030790724444875340403570252974022162040829465284372275642862034904730102209988991672772635180198347680720717941564115316222598345529415560097236518246943696121826053077823994953249733000655430478389957614423140552393043425372000826279172676944567403248788210059119621376284133747674110725748412860898377253458419665616448273855911136783035742946246112810752360136417185573580818722489630814221705879043320670031952109866495594584881782620350211492772006682208546890809835880166589375801379271916925508222343665069463400893180758393918663585923219425780559937243754249266116873419934278689145770780636053217345458993319745146430553936707897420738931281173970569255507827698961589945739677637548218275200129308156131056528919527328942586189063485665892620903339743293641826172035075292447843391017385756691937551941513341475078455408961764959737258175010622813816091888851680188867252188312567293743577076867968654562292844100542629503224194617929961344048471659557243577416163212479092402591220515245825251525118026344456429453329820453305707089072539352938289946561085481660312499772899825232226160302053248694003213472514326624940964384001744611208383194656914043798033868355802284160985387323332021814231805787631573814155210831471658880910595402007353449885652207876610368690670893430475618934511929642145850695414143837630303619945224141507460815205044984900018258682588511275250477484564472155401298868604767070191918028465924956989006311219819418156829723193281874263444083669191697592754581526896400091946904170847409909950347966080275996386960766890710903660016555859590790338189692489772918211570187159477508678809194169074360020423023285249089402229740640821628001327184916838068894502332445773632258892124521372670612112276055256854784378304189188126755188895867160349081319893178681056181269571864374418773116049565558123130464585094521554712759524140623720247491367607376437678658322557885358258241331478473591004947032605751619562489904297149763282483466669545530242301777107228398917696810600590063712129927294138022392880655759989857387739858543045900649062530518103898007225843415486638218779649195355061171159192247706067866076464560423791465020869576129889999384910368967013640476086446187426329357586758078066230388216338015549312720785533516596133043673054841152853021262488465222093924459427430833456796942526274786300406809023202904984308545654034533500312331015458001046611238211801614566320632842876153541297512850923773428746656999751809307561323511073618182258870925311560432170111127432451336946096316229995683140876617934749169508219396938600197101387056250769454313174763891469809208714866838886391445014206032950716765807322769106894372595978701424226463158960270042065952772401094312249127754435738005667012385583253812528603655715303902867256349531862944414146848016149336463705389664949340669433017076272442343858151443587896449463047462886654719568846500622808044423985461954316711865801886029402356804645566844586205295550257582551132513432557852831689349366954519922999217632893767364455841296771118308909671268637148844482354663126037437511865212138563447447247453929714542557546591780464654648029631026851028253143504768757039526009923509234434850869252022000039830485766716149647573588483720851200802153568892589210328077586226025680247170146436946347852963504078134906882497803836953098171488295565474806618241586817602715280297570758668095593232679614123987480549700270207075450926868778834341046402724788985780699457416578626271889753899027806647035081419755343238823733552192221519393395144043744591737620046972018082683154040372791807533559822535814291614817687823910093007039250849760421707071134839522337236476901669340127949510036828753817815455037447335915860224351655478364487281335944391057592952515105859686277730820145325491889788202541188311439251564324726755608818875190833477494111701369073541514877622208934395739245155285577808363622519397440941759038846115815499962717094939632909926442087703470772672196812681652394679795954655253565473911383172417554497941409407157089710675140156717045289130776251663695159744024946704978177998701148716195709635999701454734732354083526597044219543101442755796050118415478793083424380873377097146198038691086809617199950112355529084819305242318468393455681141331135519499811339365666500426351691458040311490742702969216213528198022969624387325624726880498636490771050047744061864036523882080429480694770932266892427830366058649190665737803750040331148293821114676002394029368991045769224441131169188697345476046702657399102662410943129235833758066851569352816376728540697839569611268959735036502570868054057327068876686803679950456226782692175856038882712622793763933259807022213530457628784085806509575426955559037332007813490260194408668783076243310492863824486363677609504448227121567411142510428613088526795794792403052986609306911183206684567586158783042589864616906089610495444766428725856554555767214686040134384674837840430137402379539055506922339260783345437718885682656750953529975485567222993705341050355343663169034637167039587695541646085767888333669143567526451085336638524964250200527950388967432402234836266829569761836841164046940188503084275168095028708046928621059503972990939201494945775033479553093282860558434182498879305460664926994583953927103860318585163093834505340314974512034307087725529113851630180450418347404673704346836006144037685937818444869935419370630899666854749515494408267480355088099953762094774759048732550261531312650391691598451794367214515921687407318906920380082067162057532878911743576867554736682340858474620839369061721000720884166906816547662013483570331985416845918473833907664844793902725618242312023328207947302348932636011504367040621447353861491923709389005544756117736215127826761904954304886997377903295905144344511352023550528245398571793141977186491585257270961321879531705221719508286209104677337573486618222965423492407484636939530335803438811588371407828045019084224346671393756313040494820175709939853961476107362481276442296372391408794610920720178909712725218666877674988242712439022662187073179780807369916694331624733267900662746515887895135224159471001073805534561397925174037425428288262874178274861236747912850613596528889551263674282128937414501563966619537450629155561457806920949990475916452002277066986754283721697538348810859729292812293766289972513686797735926187187491170822361636736429449480441447681463732508304352594076506138751167257724697452400735486642687719478194173796839506936532722352814284367833376183688610508363663510456354930056167604934737110649975097413997605011700902197750671437284806020986381479144880160112830438930467170051086035711896499523021431488041900532646403702424139427353443346309568471357517978394282579469328537629910325749691194638056395781450146474042871589399980040436015875075425716445291978674409448882879016575509142438948045559622649086583079404692253676170361117440929671236628776918087204863358482239167719650496001205040820470080065336903681856161411339792207394189628906366322381890595364526930658404185816622891177898139647479893027727822302731920247357289618090592959159905779599414978799196168461896974039385742179627325974384512092669197436995470935382347339242744123967065070498221078827423332185457244481856064891195626769897723762579497620916655251822782052474428864440933745542498452664241683207846621705711424196585381061676781283411940910572097642198345359627096375491406142542843077249507813834369840554522824076074785044082998399813716415164500199325951216590010104965539601539857886035322606943187939387702140507135385349914833095086411695208343282218801298700965644863120589699211844142496326262853622117748846915857207089906669363349220080323739118484679833047637051023980640690313341715396277113023513326822403641913059894620708089227421851612513623211650884331150365585556361130288341443961292258422588152365937885959321885581252131429355223818242020431618091162546740452006239711470560249883819337728532326410982309325414667658938335068455980311716449723126715238907918426303746865216675425196039006950199921030372620800635086222876355725971548668986371491270627791141474745887255080288272350227882856331174996669397478195460498865602110517817021571821377414322018596387706347034146040934928000741745530406093289573887117147839644713191133258654609446337243625440120259133074552415409533218229089471034429550713261516515950412455576127774928344900509251141500064722756994203402583209783252278960404715509012320014463630934161753691158571032948903576077710577402638834423187418966812799516803780707511656472586535436122528007430890545721198965476049917643859584846992404118642144264889616556840007735936391457245515524175260884154052301994135955931724051852570915660252236965605045142625235590227820375005514239093726552225146563614819463538452967494212036579747762017801965634270961944089293121985726902331799905047383778227009486031598578756423870719573989371176881553922974901466528991093921749357614637655059338363307273918482913640594889663827620545660772220851542721985328278365941684283003763487821614306356193939455960982920951782696758842862090020304664448730205666517592883280772602840308123103461821060145706533614796176174456154162140212619024531055998631317995328952809995194705318560862442345780377226879968167068041486963196822192171588064213736877530768319614070379735610337345858527501646167120855081427397215088094500824774808014450483712680397118651409216983439603417469957750156310195262035052210373771315217921096967166081430418476098230164657715726228628569800147359887903784568220447468843880990339715033501602244440718978427666845934163571930306039776857534707533522361666709117905257601902219293276527836142396612389899362280265348591175181598821513245296919534726985075719140978543843424491113240790781529317129284946790622628572509455584450980334961727126698629367443715725967079888247553525673575315897875535601419333504899418044030236507070930415697025033520745451133874369427779264835448057304803348894931182275112195567563412778327803097569277430423019920428972266217410188192510390511456328710436619686440261955528548513670927378528670419849775597604393775068856450731978097629893710298796449191092343516368103165622289328527025771188524897134630716471286363317589346417018447930426748612353245267838747042851024638605616187305548219259964168150288892403583339741816314002660252548719749527618185262517889459905161425236166422435074659249238292532484480500243523068192920250914912430104953830452541156739713364553900295594949625817620297010207278466405643253460333329512727041274222362858123420775583859002658185424436867761654889307211701383365924853845633170668163839438370751506960920586860659297264308983817808810268937046261568837240352990362968805982618298032968828689528960034240334993364562724362891041972840107706819499255751764216043154353343776925125884583598584076583794520363030221097860864070695604481509936803448346988065176372405940662562765756648681582668280056699733130079234884735277697669743401164125648762777295152012413549351045778922995753852188486233058021256638604207387595575811032805827907368848493536870933052718030675143367944643802514200073284632375941844359832371802482054072928148187126034171311307509725730045231950111557482078512343780563622582346922275044504171295770313453773893045270128510401984873497829228559318386220869177052353775210863860436003202308409479114664740049476902934695019410159210132840329382521038901838429255023355350941884152412423115111957830973918474532857428942729637937319129282504687763220135959020083010389723103915018468026321490505082793106771043802198638649551158276095509192657488207966921909982345724050432073826417579815995710099859479689126069837666279469431902579375633611981477882483817107201403447437632201266967929396261699126385507153002627427208316994217087032938149670159773395406355869035771756699644637763793926143213668221604596318111546448862510281868137339830926149913406498852005796804506065075620451890664852379942329020623087840147398426064704301488191257010528945081957690398445227651770001240255724618969868315654250211797898839844984180076842810476135322890201382501146122885521816371483758579876148473997464294068968842190909390821916549718006818247140906473452868936038043790209937374463383464048376012164468612331320755912226801682821434765162365664633754929444452369060320031108337353570626771214080393558418882259385868283081486272418758433734063110400319814219222052178773727002269289904003709609623643206867278076849610913149178105972397469749154644743206250673769803136198467686727596006691831257459682357322874097283508584423339017336785260653615232310291869433983400469647753579107577843906561252230434993750858330396538278537408366305185419099446039620975577215675417714849041668247625554251169286475844633795440387848666484891846314152163330020858770118894538365618707514867024676357299410582982030207902774789738946877748061041314029839910034484527847928193249090218724086845108231392599609273862859415647906120282213417311110495669138061683745962652487213032185617354252670868345434609193631270310506065558950625190128574410839662707529101578133438137195138967690716271726509006896753238335779193471534334628088118175173563267344302825293385357686955493253289158385155503706913098125586284779493628687528124599098137508364964031607312192150107030470826776989102268177686869364950668891490577228069613588364569040233536945295462449598051972249350705746413802012037294705827423789367320113416537868234412646293784581961179327961338961768959592882441701993587819705718390164358005877969619222996455894684651981648882808138285699759347142015946021848291722336683505507481206780164488039503536073389856552549648731901716510749575044949067516090879942009368866905833187689929980326543563888699438218342792622374371984797600961506551614049344674624312937263235085624903385909980420994095703595708676380695757470295742527968555391254698269439299630472427434913622892619192084995579081056660846380733978602545281522032805919084545012675783191371274244063793875944258910266522559059047330453872315111788175364256166673737461122101035490817916790538171346702314517054133728144162505102436168897153030948972542549307122217686341632749974203661043707876856450787158859235987150054346097378641035834107044398722633554782364291315898184196873852575940187512288446313258692808394714932019260789478428658550451656138026197336587045771204616691504407198154751051860002307525016138650733094722501746280578593078402390326948699297588761471166188522237709393838893942941545324796727246486774464697202187247954218984941005720948903579172268566483673693652664543388338833495575469000892065569248819456643304103875447225891181237212180833072943132358634058336545750500471164422389477420527002257842135632511134609280199032056085923662302068028302261442711000639471157624232493894307705163644341394097906496883691648479053912191967047644704776412913479936323378606774833763192278501329862120375680757065752856551618787686651582360768928143107493422030467342730694931749248890211614621431908131669193616212367271625958938922125864791231817292942245586701435477888106510164652565473787923381889280394294234712265866339525756072953932912728968780030583522961156323519250216116162477874268783595283481053145077350685657994344799290980872312868847451610899219746803467277573182303162388164326097783344163385642039486393912133488575889529392360826247267201141654153631043898277381237871849058824465769676632547018382340263538231178056182264120727816624583221408368271823488209252985917961068574609243674671698552794515434270384070690451749313593552653420034122634123380753961004045910962871894236769744179952646382430226136331254737955829685237673702881606865680199483140989005592765079989049910502303172521453072727063273066419552069875408324932614162783608498169571224534952350529135276064926559300064210312456823216433335077445883818280070324079406549498795205932636812460828939078845667790175152801827560629182523730146448591489961819056755471679252882495554447510447969019808596134756519430266402127825623196995709500727350406210219014633367402257954823679377636266610616432464336660723229465816984301280874596870990760362952064667704952784549198333688802232362839920152604147904665788062464355918872845096448259340590887012631236545784847541223996637118913659784742600172839615315172225742999606113794309579473384377962421545225116686676993075755629558582271361573493767867785935623213315222015624695208076423233213839719567308016124249132970817161581851999401166068928290076623437199695649176186372459556609033843847898281036971105341276419201156399727606984315180101524000727036835112856778923936067809166390932190462664188367892459347916097400131233604990204892828759792469052498525503473258462279544391974670843358746343179684432121642983034380474699444272108695337733174916037617489844740195780739995236864350243497940228940315979080233735677894981404150278877315694791994089694952383480682947296731211136489543916183108131750118668615313418204316893317057242084911117594222319639197365096154730263596585739024543434823936474230082952965014774489258063047728842550213096113990591798448304793846449154672847572719793382148424247757723643867917264300359044576852009932387642340053115752053513588756551298085869308167036503296448006073226948980427302815523887403430952486817750687139907149617279425273142949462685876659426375042783691038184992978062309506552784116342176456855031322031756823735077129860303245806417267014017113243927877722456686773857192585595930232226178149255949359258287211492304754716819413351729155089663888119206018862480334104536981464184764230141236993353024198078876138651756572698417757210471049590914545301578592739474824885285114049480072621159531339314540081274561590699602717290559650214856256506849820438572668302031393915930635907207592681404799163531931341267834313952983641075681138004956244760202077226770893401722544730470166378920895687905668039751985795120611502267278391387767741150451969821433012986057007891823770832641085430878189928095362564541759510907936478070437159856441385581255118172347219497118109522905830605633121914617168813956534869675012440452376182068604103491591802953980939161501259851221528846280821613904864470982326635002024272495179281958119874210086063527864693918567142074235712828686105714199587038744552132982112593299998625137406276580610655675716424579223486197678023577749679218890103635919191562619053116539816526946037160554648021079233576072236235155164745104218666707115297832236104322327416246378501090540983310204013767872016706416743249382091553372358497083231945938141305191746965455720545059782100190620321316472181640063067746073290834448323165780084996210965725425421014459495866596369422189617369357934392625334318105187862985499897556168958959021393927521349746981913646056665852223573789333328574383135437836734669885122207039275705261002294539912235910505891981637254373769372442689260753427413816106138650734367149141377620992416094514952347731449658812601169311899186161949560581452942675550185111414233437289908963006179987256603529036482297393411388160219559714521601105161389352301001410850276742450079933687105329970520239085271271909556332380260366751011779137955219839519025847386590752828165769082431240410237109434968215988443482868349301108699823812312837085934227631106919343770080185237223898586062781637727478128151331808735410607756092790063914015776936785257218184915055161488693874174835280024285928753150344438773085440350176175800421853794164386700979874170337704744571896871783469011138732080850941490809393704221907890332946002850654358230638784763450162937715179200042876681886999085734478214403595103608392780573718600496028913566811178044191855187693199960376487180403794862361179967003183910350311544372060530096283826512680859202880763113444291157479956963012237855950143317502179801695269280281511794985515902409792894997064548709890573177209983147902141475435174696461335412687698597176337383089370915215406275307843159402887666584369495331435263035762817210745807286425097471387281811760730947100252837218268977068264714756564514347998285101145425349020407086984213903347151135603395908707631441961401998084506994385684013751210725409162448603037463198222388468963530391312327616770241734079916480868465190205699504407036212317357649095055504350194995571095418888904123661575096232901492916075077536212083828670177062892964684545639577046841248832826084742414211689659052028853811663884558867624698489897316282831686592026731717323593718734873541745201896838407673718072098192146076696251441781347421517487433551683361316595542387412515962282205569378210391604213095404912418704745667331002481296108876755014348591258842924022756308435978047058057215563223841102392548706467867707074794948425578109469199262302136020866715339719340515732596552823695852309506647939197793930312993139841783422944852900067928099892523283688739620575864493118673538857316605434049318893468536492952007327996873478823513734805335865551976021006278958157875169815548130524220473873850639351141776775900726911035615605393156574474360500262862582958367715132978568898420329103002239676736246826163995146978291973092096067357988401969997626611519644483982917533871044655141658815747248901768962556916393911616980991803063323702670417547973128868507923721360215491682865357432885955836636573213690011713767078145269061500009537641653461874471052580731575912579642326594552376228743629846337974743728740575792226927640279500101497816682235720828880464496104483541336375401330097354026764089609588934055319457522605820340308797670521308092545053890651074738033350654506459211588271384093986082462892302065983265639164102461583940950000101313895787943859182569517968797809636981699195759000861716083021698940676093734179059964040996936430038322941960216188917996717768868541687741136651319204961685723559848472819796525971012582295330141182374483304346006175098263176677634444321992584447966421557395404521164062165928590112376409713140172993649300318239940979752187627261110578036824332195385952615670414277844517453122966470977046411787947142532277396601117916054277010544157628399492239283278043970193402285047755607410394453759078487506793536375948285426313707640830418232115830275574581328778795700055415888740453871246889036181783944105993016686856527344496359458083064395520379626430965486124428373950884184392158970494221820836097915468298369908449751894124383059161318573431593647849418590497954561124314750886990257431900210333584775735292616612626532075447587712625941247851772278683491666724299386731824251412515632504444686520667740243113965865183367795585497697332711276165367251933639299414279959662417294806430007082488044035614703549588147693869092058023373632628388843970865005732120932615442708603383989404893376381061799125985591905750659049867536576362839331603159283766960219245697051601902025685805128823788978971552704624389149097295374416486070986709953404990875149118660230598815144812866030825987915795870809655809610820017128119572606900128259465924892669607108372304280786450681814550394550572509170455007625864769992352071040266034375112197731457592760780314944719082177209369557467016359458546182930829718870677720079233525876035873021713347044954644340228395220231851284830458141223855199715344773326933307021600790253285749142176046477924974179823305962685915814560533372506308007576633871178720711685759393772396711595814807208569779094847316824846352330378548801519230182312751683887215970240081831319425204003002452248749219785330022340319929398092816689636399958479189645136180249751120341405285777691270570446525184041133955671676642735331136373086684104322539677777424000938276685147932205227471736403522231240646790032387715625323780317881248610779137264873342968681885032861581380519008510499913925253335380660904688816210164701541861898701908210955200925124856555519130951169235603559642876205171751674234269688830288579884250610758927437471342043524098014548400635202738034795820011361193762099252392263460855190985476745718819668594929670291151588645735901609955694971218156526962038461020124805487258145623629600504769708057971161628906604529076322132154535445064351636936614343998394070944980969371863014654426070668619131311925933066210869512717800011135952363520695891283288044619813855054002123652492224916414315823588845306808770124909453299246665585463703298387856703870867236468222483620661984677976651096051513431089302164305960810975414644512127074485658898620504567650921712949136614179927724962166209812775812019520697091366263254505798658224463986178450133112993458902732189258575332201479256353322567496247001828380842380807749361593838414058596600591922004630991172949928466977536705298895420553700210291139508905827347371700338642764047286979101639413932103814261418617086931032422351837558756002255672222129069476534744969198059876076516850974606563242296732141842116903657234100677333702498322629474189549149086850970137741352451454289385154470442242865454277968063066548968798891519043072074980281954201519034493367956655703140332947808993682497597059774945293927152534247563382704573843301314193426128170332441981516367779798999314128734772292961513830788356204664513928866380861864910396056081626738854791788907931776380669704313694103081759577112570591241388645728454454490337972829408598670077123125043354777811904304016177509163431432647152893841263385455033409512271065765253983790481049534854153067647093418165082820746653714673638563199348472408052695582683361325684244143037878476219570053364753057720105322202960742028788720953710360407777094942684309450430180541104321482249653207201074163555014964342815072414323610327317905085555503060027577262601422471806990231193935134006569065148211263641693101342010164598458274252580972514337210986508439752440052529874794023725194216078553241812782186384498079530495357005826811768319476754038251698193822126719234966638073025248507428808731869073907931302888448922688061013441456640714744781458222624429693571648232480532053858151623903765989398883188418932337744917473582668022899410043685009767749968494251668514908815179861716282828521002899574734768880141655142821790884659551430932768117343852469625653937109856539014252761832793934707474602799287607203178664007159570436065567434482988080687717560566906057989279241550326858847603817152299637258042400171483227212406867216598473653260061954297786905230606706874831902411922068487618147265436035199760278098249192085876981940145302764778983495459729315141153933829003200047265505115073290011046140254095784346773484898112930626666776291940743994625764441932476712698827637360165071636523270961745743625041709099743113240716625346087016818352335187518962843415930129016641692499268311734264895761275952416239560582902243304265427120990446247015564314703497181101419514711526124248173168910102110079913084611850044622154412974548614280149587108985452392121682685278357985404034070371767118220195713131174360993599290063881184026511528728384560299145075608728924486294858292674646156448815305180395699432883348127902664598325816207880702512563963119844362193065747600715876793737205762867894347516456279075823192707126258480628701266539862221911727648246297514197894323138913576976791046531794575661441418141462354657622724034658276011929998861824565207927853983396622053005525282726023279116177729034428221030868498389414345082772479744268633995269144400970025837609605395753255208780286446207362102483608109172623734698371729461272690732126020032064320645203651201214789840849361868227599364222854408866512033927555369826177503374073836281221880227394799852532663939727863409656826621780629234052744844803900082907695929150107614635558392865844917497081830089389159536399413689268099882645664751820851356937490411703119391384728805388109056795024238715190115562489664596234567424269499717868519841669299938218826794313724818870365876453443034732355077767571255408978458663599424031983348773511338079129397754628328865700045279639236320630193209204096470644587413239318683555856272785873627474658614434189144281387521187842482821238183136614690430439063936891670837548101109454447073426086143469479605346970757925440638284101662664001970182090749173437452211530489271535706890470030321194458365325721938298721847084629630675313720744789895172752663308131190301517455001077865018612066522528630470091848244170527044583830153883773481145325890460809282828584229408917543608099582610786035605480153082121657702719328164513473180881658226900095804039882434991881897999526334969849948474348807985437245788547078627106068801045854164256730192485326059683798268550935510209417805911203565381422637214084851981066855913397383891032013089212804859636992379333620766104252621428051545890487208646192467416826780205316971019926372310512192157369196266970063874757055686764162565079023170772606270846691488610097260808482266274079595938413087286389410488766580127542985166059522736789657946474913797995764711648919549408792323084321159864660450067187692481755891581215964612013803652346013811802966575110663598273378529307296076585388223717550934114853747265047344771368209144131792604168855531464498028982184119989841701461762054294251952837298445411977030265689584762335264791020663416246462011242361686851672205122709726496247074297786620477035602009252862601420764011598865489024036597437126673391608834114658908326624493125511251644816735975705490600824924644480002320398711440612584335247996183079520340721101826366613885227737435318132942201929388224242920233532183053706040192894142660421709056051973591961248995940439712372496782996630513859500671635994744778630473903178908480343600472048079347739379288329660114210057923409025401023463344701534778164564249875121482456216696906129146907403879275748445292307159417291312513100913751976395236227314623386811858597123973495646262622773768003453431283923960079617652641029047208161075890476962934265059269532935547541708016331882999056321571936726222668264571971530566654718773461930802998150261811301992004785338700256462892358699564278867250726849691480851825493825912676977075005717182749341625684264078291874507781039218240335883363988639865468272300688095360581889258673463556698491739470655960085131181418682306774195999748820469781881051812031499972498474668718787156605598708579011631373620217115401363633020342460903753933100433634203923899493162051391274584380471713568347680280122071051708170223571190726815821508984971512197857099774178802523720480562190905656166824420179114183959410401614788633183174894107113697288693677703892191213837652746751905362667411120068117009452679812251701435973417495909809550115930504779175493114927864903634594614765422827411677830729308363451260552455367776854856094156458777554240270616606412914685936457779170620294305503571360458854179276072583859589193317185633910544800334798505511026633467712003794401070471433006339730332577411108001215912356665450317124884301038867326441603545001910300160881623525120546512456968493349281728182963917389118306509628942808208453660621107306701726380975363165992093768686721801859823470516214138419093121184227969886377743009078701618500457641406855962711324974204702213212472014647306776881054768627740903121648906936591083050316488630141295215157107868000960619829937496556973950730048166859265199145555182045407980444750388748953148604511192609292559135120782572267682616501519662248194373950361157697945023517628588731615981614760753569466933403187694828429028742234207881301284383706575372772649966237443177824564178577083073922347154046266319194341842688550283571573431579639123255077718944818977746137745574625870120843825622595407359089857648958797213440293911409473178831807971687275811632748744874621307909539500408353739656228963561103575512123991824882681384276096066905674654268460751113633142352453849208047202449428324434694177833583707283562863945526289013699828123722473779119498349105609773640662612211198797540038064116044282060957429601038169293055431414512400687844143368267788884577609889955063820631879133814134407833166105383539461225098542261362267206573351433513716805885311713244420093981727146820223136518436745845515128094266358887909597275320712597812326491663837709709718176692118003094754642648000122814023472814883010278338468814973585743489317632500230652577309107843477421130006268507243324233892709878232146337082926374573027138376385163200501126075598553298657238981333033071773945672372279677651170917991164628875739984469411078123874924643300867213284108766162583280071399725888985581278503851247550534718316387919780619824685993835676667872543791202216781537819505464509938866272386394287305098019670064283421984195115606873816698633488228910737128657305860020041076333290399480709760095649905547845336668817470957700307818054545631002369474462698700007753522033734867315427574782936726886554094602197049688053389709277449753980026062829170933966825713400404836713058042820366305288203284894284901825942401037044462553733431976512661864867932936683247776157747414298931636134914137514841495810212673427951397052627764469171379176186875806349666847251754906570000788381182938228167640742957848036372318961640253841754891765411251407130595862240901943325689766784811054720669877617264396396987258024320958667065100511331200594388599756961793045741855901581725691787638654630679340998508775018846613458487808462621586744204661968519272018519798377530417735930078544486980042738988902493726683481111268364754345691546057109721930597479327567076633802969355356478561192070794490025556308178044931679887139498163377832478411364389640389879966115983931431687438935701489215800963893295539120416895099378618904759250713408782087755408747277287385127423734240369570016302036705112600606569374860833207827494145967945084302876553717123176358471452738405760860693700776521619770672292779506225821236993079375853287523834823064888899967815747097398303649437298955513561311060739654378930878491703157620083684967230030575765296640281201976202848151807908848765393822918328687720506853366335745693237010040735103657629254901782835487308271781774938365483874455644779843384393536240296611177183810924907490944657135043744054321813007644429687162338362715365608357465179869596424838920224796721698881902878570571560571347923600001180862504689272006065148539050897618512328264761634173415971170986847506422296635575472341013569435339946117800842455940443171009985799295487523163895590014453545561716891836735836470892492265149314771716794949756675178121140971660727733958472191887824689700684819444806982057180816977171751878747946916821421301660171329737166693997891956520799389130206563063038973667760387573699459108313130668607678284962559714925267622829000075925803161521043145263974616388596581277996365043746121592964452096666411528517003956284940720436323537187666717634717967488783448469039725470525025838306673430420667435884045535920390638292520913224131838808021242596758239579080721762264968539071220542260863121942803443661129583440881408334479891075004940666534571427806073709943853958275129758870419900433650898110964666651334263261188682976747318406239565983356821164108018628710561750843395731918676840119953365700326574508243244795485507834607706160761102610322053379281993688610454750866365488320625849715165407813887000624855961765003490801867205744651301189270615836436292027272211565098081567244181486156239865314188502296450678050076006017651467726543992944211384569872942052010331195253112655504802646339388790084876296335818402204173608536818515073028078193595727316183518630085482818304755424759426125031920576543877809446064451240564384269453136641835976751663194681459171453038168676061629873685218237737486032317660498406457629197151074460477170936935524984094656218033436656974262307197139285376472700701261957813804936971065343759538951693181877455645450460449760489606955209435932873719555100100406314464302144128578450366213175591139470686903100348344235143066807140019052749574256905336315080194943096092140549958739410825044580675076679633623872357147990230335303142953027260135118041705469206363262457816677101234575995934751336841156938506808734966363256586529969428710407700147398045840499481645624292459826588398759819227817403639856452100500105325370860297959120607264616414665873851295732979575640120097460862062382738647622377298092197667600632539761490424389542273107893102466011453569194522349839930828627701612572020198669582494955843515373081105634723128484852820984021018792343849284643472343779937498442215934113173535984781971062746572105344448818541067909355694105039952051143959204006782389146360766197286901919923577476852728323665773426658843942684371545670713402929534016924172179978182224424178486455597657112280763561294161083797889170166035163164601459521995519194479562661423414171494781028413260406541741611612941884715076483579183909260356748905534681623094702407970464391852613274194842021697569750545218916549851649242914338057360118043246285300547414016298961688048678318855539583023758746347376605573655705662577050560903201296060705554747709137142391911206621885373492194708780474030778746226212544751030224860180834259671332870369165396000467757353166350917186257841565039033954430831771191047469483612763901889194259797544557322470035347361868088289333518123513897542700500881925299174128356395684312561195544134719603540509259510614323077073978677952676451486320791523506862777123893116905216572393033522413072267578851605265010546346522795175559653673915842169219105531301317189395074585631658913551179290392016874847788238330312881347262606586259453973456643316330894425801044167549073942369132079419251385313367007955391226629339394965819695073439455588750208714127202518942417624746717777390643206878553993319147271029821027386049416514068637464689799850949554334065386200312118893805870780906024658973097304167739173143211205640625968345371192497858222923907797515653177484090944424383861885127514715103651750430135865112368073859320339888108677085665293314664881167670613930988500618222517822542049293415550726183924708106889558628497643769791288117439568562341023957215537272502758040967453544091610556154651377108347795569706520209747678941147434046601683939373734180615974369922707763075030203078573897596187776731995632544303465819269978422750065504669742505882924621834387013338254736977033504649350473852890386253358405799371109645354337203051470650635914025169012356352498556629885432029086483495312480506855051010399318652531570083111134432248340105822533619980536796953045267704589873614596158270084322482837482169019400359131612360196775640070834504930999941671249853820604889791513766292294392702499276974613495678223351279892430564889862383641040627031362972896460609805971342329947279679183472161986358686588565313303222894532641794541872311736899999789362443715778512196253184454851065603854498519493574813839151163477408148679557841581109660484431378723705775640456493693631325511914857318326821187477411167400547066004387199630934280862187394858511758145392217673944531552558328174116261148343189454599008184759119976637134124688592101202648883695462950658936593406270815615527269749052635654629923927226442844075485906328411907819492184023759724289705651848625603265904312429635313583648914796044455112988781687002814081406704356146160793047764400099769551445651215462326047425683947545384706945745799418846388303088153270252161946434039629639331342341010496877503975543034591649502292293413057878889721273240096922204615895161982589821223722849418037166141103124458975856733707319925552203336670369554226743381441989221354260387158914037021443382028491451821342745763060484294634706535698758857167092930566040187525345399469716961730600939740036098521133942410940873257922983840789955475530995261632727242121901292712527413515992936331727745260264948222304830971047715545994810514977280576487008954324002760557908305469438428953041009031753711717985188481039303003768496286964989386072181082027338240737037860697292009472652558606173046518512452695513852482375981865726829768732344124614493536349179286226618260311901684384601762589399847220402302060844968895288384972710267506857806969772781702445399722585143246688282294467343922791919051987655761414963065601953882638640953281571922757365963150717014546657809767372965112698613926183946066847118358195615036864886697440733297461469105742586737636507372241864765794924818282446451311102631674528263667364567282084240325842001414372935662842094645784790626655579865141969659041104402993296154347813384203080646296893220935593079163004664516284477947852460448524307140408831152344898245582530632400167849913099318949735414541882888961702751669112812714014884094862783836931905253496599379522292627846689743338334096801476625851309481916290006318854136985740846252426724328776057971903032538468359551051332761715993476207684240516190660853911813050263903407630468364528931931163646080742260028221084113768861706200320364161838804802640090497817273557417570965093044094177885641884457835250051066358724689359241652786536317374769837956564860229983266154246120759644583475298540850746131018974590306175588135134438595457036973992419365791743770328428836711308468177830729373746166657323414186028037864506810499120166822278932114071649895769195750278844622784848138403407245024947800266855598371897233957925118277455447246446772428861238754549351021225191968740823478557009536031051216018072238757331529717855533609378111770583977008840767035566408518207794616858790357122832526482252573698991230652175157037223168124734221529230101878694321091668966676309717410835596252790719775631713015469686626674468629578856151671859810879131602566156997611600313046930202456350706253428754999084056633639920729201892349992618003041128308176337025648746156927577822266257102879090969736652929060365515241936793583643910834247336598913563881426847719164709104315490337271519613333425352979426316979468038212053927421638035879078203979473877125177358880817964708903983572741048196887548156773915528582059434273422407583616026212036156007487634520855894688931335534533311781038486836876887857530960702740628073410547293219036637530844098217777048115624359102746335978197713150872697010303711019206184001803057876934794560803386388900411983602836078912998063730241394673474786750044080339994060167149679431847273179413348156138933796580900368227567147043428986278014768690306478322350781104655806025096664853533633729684768789107616543086690344356375535469527000584160728944042120572074255247910886748220194375591443659985574829196093288025727070582353716403773013120493312475751970977364949961455915614777305504361633739880847441387713574592768103971568469329019065230374563090877922052198067144537705262706731796876951952087169134512334337465161763004240420234572228101120728401675071758036051891850144177924263168506816056448549078744527586980238273161498757799010685356369481786119822867897083534751563266077435678555517278821125392512940243249666125336729369541046372220446237277064788406641904022760058829957228361655504428927971828908584186230375909565203206921000374300622106049918988396897502676750040717000541258140023724548715387925590297050221975077758883562198585234986314825993779079406178310838047009894780500266490323003433682932695074631461355729822654320280373649005011933922720615569863779841989426707686411109334636894488568824320235801060419353161408622596904560429917071001568409501655021581411009708157182001771601515908615411180017204612531341708605255120485217065228277646324493791453048807111135915290188913819617342646857742057610043208258409981497408427996646735143186582945842457822133410398326925968137524048833522565086286015653668670359615621472095082445929778398799990991396784771240796656289150661238300536836596784481083358961186667641030608188262806393338523939258393197316247863806704097111020149429970287639400701751933928079565406319634696310229020447658775229842789809812101837004878065005385058296749376545437500597017137219634172091350039879601883778302235913133510998588920885745149533801714430497545512955567495572193678938736634251250931623274751200526340417741063152151242723951719399081394263639454599791119292722628683730113698005811690562986121585192948721141861142583548609912954899627538286835795480956620230370022598128708989070412236692656631996960681927829191132152166435075350937225549719658576948366084946349119800705909138927781810761346408450632303720440568333132062483506905652096402854991278890578237040165677147614662056225569209069533060671467104313016131699999560405022699133407881439275688841626532332250752856084272150398502091594602244896892908709180490949793946264093532912163821652610513702852708257472961288031600836129582093699097039106787205325432047168745253506625393079732350479969141328361814523165941357246727414882058550839744624364402922977909107686965026887256545520108508682701840036967741153414925436147265692003321898513529812354054548934925092208694420653051491215925636399772277351666847011900515916960467654822793099887003217052700258708151264170379864248896135160047698090205098528894737208889755063627577793364517394458571395323404163078785056818145874213202559311113624520024302690837123633782098736957199969788511711343869275673074160327301408599179856495750186615526635890775154864213152782774527242500690809857790566619322799765960048575922743205255110580327532754869186554220393577815779440928158881944991689715704215811971237233182421763954209534783878365905160711331593287538637758081542662734184450689282231459970519019180010038092433388635365856170876830501701418999270772817591236703307332773623303367043628331447456518451047366039042685581459472397749876645393623129252295645280936064032716887941405766821447506489395555001058864767699764884314868740542549963836451031428172933603170426850199140286014612547298890855929548285646132067491173936419774440930165546050847304244965541946751683891242972473100702407447172700167165315352635984198199083085351032720250641635684381878517612044582984613359050925875965931892188026741643495688318135125053563150738844525062861642313851139882752765127140157917085346586814719110437842636148293209466745913177187753268193223227163730184779918172336152771766850970652434150039929848054742476519837346200662945895460912222357532869844356986559144878826940428575207262818691423055809645859582799244969252647192323015545497048850898395899377581499807179243992826820549021890102745847354506719148862316303481399669283237556908960290166461045780563337992529001188047382074727673100847315827902868969383117455778071812636947485037112834563054562915689096479343825533551907908106785528664167284423373317090469013849083863310613354470439587057355706671524745714621519583612739984844697674190649706489452600272591375534113182485636389360268114300239648606965068127453644487962155905539535254231633628615775837768065419971629975933354974289974948549032702551109794408132945473364278472572496164280390591717690427959484234653404141797789983799888025438070768856516265185853982797499202481085018563251882821941960881607382660551993339499345811388383184193426625948472255465023355277668192684232650462968161369064913616134976130572052375134890385854337010245991969374213569529874737327181962843528409265363948023739521999202108439207956205879267600165220107073647713491849868780677563226664046642214575851910308308484634072810065518625076760466120557366154608684192019619701622220798362862910112730957264631336515289176589092872612550827865587611456358462080971746470439634066885156655477155550461437447335802053076354323653829504966597062968949912765982035512195846517754158808471448686906562922609538930611233811382366809951271878434402931377961624398223357633732047487164964484702351442206003812390225691852884620522762094301302989836460067593001485103061655534594767598112339723899408201039758825569761428488483088297687385169222863003670041351048807594461380177312266114769251347251318418570375362939871377607476675194605432072442874095802708725315938035538538883192570188220104890963186213782878565829138784675227977351543592555337030550497692503885282822325256933266720370132205792094213550801548828695606050998714592601023160824771693457018809559699172888890217503754443033877866178587615502518381436003104486797871716602520992151508117266269027903577197487929730863862132014812403163827007263001162098654825389297325839502435426947593291925442196924912355833363379341750248924915226860469129422278622160984693775919293863386213706541040884606354641562696619475551251849694395849846744399590835590081479241735406618689442764267170587027342641129780056254664609409275849503487407248788568430561921899683924378036766328434437005897888919508885050931836176409966557028031631102021428027150312223435181726107219226030554029275300039031134998431907301242649630085848203164767614289251838990085583579949125076569414549660406419683295990548652217938501704801150785161449374144278757387635974622454815073841322473032092963538315679027516438564418302614993617545577875833992583377771984113961388910849104809604390371448708252233752121846816931799667703922443995197912977516725902440267847448145736975647812557138887389223674693806508485948091954458773015339453841124731813200005307021129928032454642506015321380044516251457891166050679869906024354226914532856928717319463010874738466266279853290620198120169673269522672968556917478455312267048525650194003712160071391552077869360116237868489801468112835646861446703729215134339394913362125805742195697819487812291475050378752171663636245633327793021551961790886910235692849480953762045732722372789890018794150465018655096258650279216133471690878599826824085923207111781103004596933400524481778492431196169761578451161270778567262093386083548766930021669815723861362671865602578721760732785571429081165627047774921780426572183941791261649812558562433634870492855261514791005577342065460926777182049969954120213027896477528210389415571252950529185103705079783239460677688906373007424719427514711969868301816564240111465523085486186373191357481904547492079943652264223624285852863517241563296330654302962614011649235153795970527806303437701161326139039753382210975562362499789299411659618752317055388330828940598255266633468314684899204072843795171181915210030236723509292075048582396226829959167620009923363091406561378009230055715843680356542572839926443785836962946394080775022877647055602608771005079927257569275984521627721466428722836766050449043799851594443447398856080547474800121207506948897622358208622030232657144999194530484122126158815593349515691193577305488845171442280839456065966802218703401162245047003830991590651658691851803459303609881876965560055357147523319279067492092402100262350898331605864947103251050655248052581831551881148566376022596135020430954450881162027659712077688822629702492189099489591884486497257968403642346457642702261937439547574399458129432333722750900169014170654212602785414248517664265006022710780347231387913364500560666269368430830663375617023689791074770471522071005174223612490499623103415316279377826856352203447248852428291123058061321078843720365348189424010862319855005694577624096288314690293835060181460517245863796138135063642998796197586567954109227330825983425541738973723779614448663280344358310993814111093078729436753662932160403714494320096890602750007582100998678681612519890269402637346130367234250027678649094839218056005581190631031953043971422491981620477498728464361747213923408472563304783209446292139263638838600696980322714175851765884184968153350764486085495677427885464849164001288616743257005149579224383309513947687508583838572164757982677059671560645204472324817686301090266717814765302514986855504833226989778701911859049219849509669297925128354557133516638590375566702558359099205274004440237712655016051876665195347825116738037557237173087179799808983723933683289600705848238943205648684658540694680075025774769003162019825678077515213720422093863147502994983767255467988562851882323137097723179469161950482559311950558043168728573522687574961606539008602191392404573619822587572445738038025510988411970865677919289768444227329688227401835184727262745635160109654443966290732804604870341022480838237290102659910088054968448696259653530761856460542315323173274849602467490208574385109228304889939086139792369897202851069520124989305870955433160485043157317359459458416703349931020605147588432374076995294662211733048289826267835027670217234944860741150029021639645294502320113570503826096370970592887458926178237416470823325594650212839106028412372968395857747094643400134226771414240926873966028989423334241419874678934854739188498301534176978217197664552042912113640196219163969143549192066481888815360059366138122933412273425041707725483858270080261573287651263838343939931455700281397032045789087767172705633387818330813258451099954416270860948097902279481170860377193343190640916995104652164509843615784751663342346265480960980423514442473987163427373608656593110977983338249736156788788688446130682587136843231111097256314325674748042455404027485818929037705355940383079689304424916422384292275130318913450882353585489142536565580899697000801465709864926235942940055359139579893685568886284700369890251825737633702392899151821383784249740548343288747605498316007612938768063641870141292328953204043560539933247745926431932489164525109000577216500206907809466190246042076066787485967783011186190008377846271954239127541483587802872157763737769437519609175879828862173156178332231030305064449723558550535769733513195536571708450248012073735043914512018384637998255471409573308732743659095889515878998682781226225307078025042520603066546934279071596096662077218195589493203497243942761324348040785342039174643342537228015331191735096625400334830853361075798619412688439189498086736728760027008697430482717629086492535799644221963283515715544912012065726915582200208484416178842202003334433786668990003983021931527236815507314691092231365141080551309464945726769259532328697710171396453329639182298579514569246161054880841983749017772289601771234687094920635416965232434923390849708437557806815740144896432220204218370985754410997637826196425913502980129832303480166819841516064845466917636237514870975795875622317906505633264323358705797747647257691537745825159343123283084356330673888117886589615755189859027602980987582501557766730626981176627192421023807849367163065796253141899377377687150135262144883315743656327297174290164674101507685349530242216284395201755449748171001218362018980609338889249592501847797988478471437895063660829088228951327585544405098008182333315100311412897144243572850773225167526433082621811754696417920992877141613239003593611341251905413181859448158929759575759128033877252112034614231802915679659020842174652961154889177997483031363418780169614034906166030238509615901674866936331505489627576110509447494938772988947247115867239106535454429076465594249506977950612449491485891868115122768031244370591619647917383693139592663764596801957900811674774736284498700501703441385070416033889534387863784503461898075122572253642341480298808570715463907611512253167009031480641698106483099116966344783587452774895682415991028000237859976080748081536527772853951639213338635492769509617298422814603978296439219627103000417158406981765649367513420432601432342826320733413809169274589315747024382791704450147712607422583898949078957617340923697887734260658983175683809372081109316717903736792832115507899479354035134362084214520296790646426047798831609488543550804487951814915115210306982087738068430820667798308714577348789331966485480769123716333619962197264209981283653613870814672762775173831360255534612035058399486847617537899179888213336290957693384265100354541558757405286456064753020162653673191377726765895498204168481928396571364411777724941759853863037386822426203700954953066073622618109955128249674990355726048669673850199764509142065999923421557461183463764920296212003488165047175635345248123644548752832811869528431192076229003200508320884971631221902813769540644107721066835827813897992341210762775172758022530403895316142127189358208170957448423495064085970020342614461890390566880960788617746226565538913898087685637246747179912855469095152393120957442908435681058678363852579990837766870264808067474270022216599431037928097526273010720220658831727036253982871416892169517405970146288139371568195586169973156416998511307118760032157052824203524132458654922364692515992030913409710449178311156967407119871022121230240761592826801328096171358398308195934365569062474073139002552960924244287066530167726856777061465163733674316364770258952396119923607171087036196358924548557048861984361713657831231588288134018702675040513166065593385649397995641450124234850666746561262880413432679285891921700964249005366741941372889193902433159600366023398912510811463412425111258605069396214614585757009794599022045535377682295565882064536927869142713086978033719024666147598184752852075753215828980767787580544523769062272199247853008653887367374615494107809680455678766991513593985555503168154916614984210840951231835872368974851910897976738741175898043444069312715876467047977528901380026240764998648004681837714089642817150288155361196550076720896773671329101255175874305679886521245130916564125549960770790403744929619770347571688506686677163199398012669922743250124560089136140819374170926999444514548761302975089535579943802693739225092829319989246098242661365400727383976358402516222471140149261037414902622139397576402508551909198914739544046928398368486231287037742324262451539873393405952486743911746939830031955066629858803965591196861892071551194945620588208275140684177368717330421341353956397616057264272008874836490280285219814657582633565381375677656173635314157329649244821853798382335394588549065444579719445177724315280300189639228118145048433094742847085090776906961449764060817965102945429847268574306102851781448216021713361452061922508826830448835937669900177422378071210207973738907611809342768901325318591191746344389735590510912785000504171990850480354941676755549393385748462702058496109990156482537045024274974010124815268605187949487052757070301439560758767177378990962882149223013034806127378970735254109525086943929971971681234840726581582460640638608057307120158581216956301499236953361551627056612986249252139955820246372513231326337752107399270569038412392667949377454527082652475482388789959461423680017910435050792419306088168135332298877232252619292149519309932254141179912467493004910866489849482877263624311552764951731645692510406658234723725384591128502391691529791345891804919867890644826560642250042219472213659944442401506312735085997021385178834394267847421658657394828829660907603999650114387538881068832701619657152574916732463423728099772639884438635431931062173621885228028134380033809949564161265957991302010277452842815675005290294428319969416925919202650418645674710485513892446471509863908189845471998826255818720933977696760744141745721766626359597054442515724041090252472422381999879583380708319305333982448512427739002068940978223972936462954844734194563855179398828847839944838436918410576024903874900975864138262099609865958541647275173800275043340963709469337165840274574205142722310897123085250339252402076443817783779355204065352734596704327892327368894861990689935089862283043649501440322169584274216919707386994033634684299292189107281737309102674678067698561083473578609067985826646232451732963868709017439691671478881156130736179385625690706697515623916197833526708506460911528564498797127078550978549711098796631326380161337003948940198878974726420093634040613096836894913572203162544787599496795768333107719373525067294144233859303362228933717242558545310505030216759207854142118502701632469938988101410656661299543748029013952093666965046528243751012073532289453635360425649395373070859452327664788033837884879667039019446222061340879357506811674015353439548993610103330235205285914782969282717637181191197943686325337207450412679835095545112173952974721734108821067716752751956341534364204367698653404965254844810816537530404116055029969912399396396446250787191133900910466273584760743585251925403162180860197732917502895410932460584954159488793692882501710706297212927953531212491606074545659625524117323521493124925972723851063639897248682464901286240832343019274373493339675273906774021621835902386665524855247529715513670521445537845229223825633876026202992677148756314610354981702395776661543490507693910509203765742139884862303635362129329775261266108680295010251440408320342882743586040180153075035753806336547677833356135204433985267830333109051643540288314000818193566219164973913432915962208225140977016101881836311852064767276530658424583820931014786376023882417507767090911630279626462731041555705278708794078308693968894408400917446677308153765329139304958562909211780937445173977945293354261734923054545614929613264776890137767462729958067662535902559782591338544537094037237917753975492771504443591074268622538809411600575249324668553912702070712075625453262108131914746475935739849347967633532565231862144200060816386324570407004781094885052443491123265017474186305168017717389298323024038162878464151687075596716512074191659451460303805190409738664683899885104405930111080140911849268561161447262300782276016681920450360680081298751716054270595731783081821525309388778481459114071383999235319921958715459183066299781698056731308097489457329833843805311350689048236138232326282236212558496486490278659430668754717116479046931006496043525725056466071097955647305183650108265497914753688686617187606448503632796265303307544178189810573800272881237771302040989419839627234155528215259111222520742582040129966377890032755339547337493155939011988559058675290284109751281216343912523163383086729372533222481663947564590429987950782477089740001041065180356963977123520202571989141270002187198615165829671865416034555147314896413389822050772672270740744242167022153752824075308017907786719752830100458368937599068863274700067929550703209567121192308972589269401488448564740135482545500933381671739291762808366530528314730633455310220787491501030670546748482901600024232697390806782778844514054732025974920025122770007966196303622872046479328370319965503779504154777303012666994619227661263997453616953458779221675271412050186894202549295443059753240993244959537037384572483488489796036815782044907660467106849387325794758225528612673597951383975229620994843924141479682273966996393683492412353908927038975415265256862348564357473114445892399781976064832042536070970095143014159534441350063196689034217018733625152665823172434489276289579925093186059137882908954107035968938897122993413252556659550466815783115622281567537498563692425070407476654917744162620111378136759356551564464762813548332868406000939349094787011036998638787740793901347364722913098770642732924764061507267747447192869033541677814346006376137417117524277025288555242180574786471825837057708901983416327526956288165139062338208119496419803588782302302592616533551977273376607790841525506606239321699718733525177641218174162297582814924826982589727861658049433392380006123173035885675988095265446013733221610956875487076146144724786026380897352899043785507134349486325410240479853489684616424745027681705281994120227818432395018084815698220134302651448525331400229949759374919388785917661695810504558874445359511985933593380155102791902194679435239323040339510140183193516546192021322947144633324103517417419815239048320052027495100491993374653119096705512673305561695412706972097141193688909820050873391049298738092073176302420990929473032089482843270682667952592536143297944032743240067372001197630823525475161612129315810414537688959095035243362193863347170735981991062856173171830052642810388404973964609234449065805041797861653749963646120677396217689787517415566405641396225700409044170304526404780139229219831570621724050201942157908262018227701906537036207188200362622024861329553710003448149705127692681258864893662533343533650659867004209969073898853908334388449132118564875755081598140695244673584628986809923080422103521920823402372155691753484578904368424075698955940310071726574460496103546286307047128848812581643261838278376748586972201544056934935660587749800938138277305296861520839106216123056228449801771472106468566834469657721072130697874635694560715077684401483767839885260276950339639215896841196469508064033875172590353341861172720879095417915351392281565147233227171353430214728153080234127103268177569991546409473688881178574260130976166157210647470624656102642706309888234219002660201467335457527986097348442740280277135674701632179491399412919576616898195034366523393880809779337378360890215541585909550418105554897907700952494162373213024797061622329332266595210478240736599535891339046864548026088586075202371658172250967272352254644678429326205790258787080984367143902568431027510699034885913146582125660755832712525093455889081409591569138049950615466581622052269070000985869274014903664634476491798935600393012219272649840902282491135795375895515938790446443242372419620418708438876081608692315830723118820764681297436865013798498399475960647492130730839875509577084530394445410353908326599234755986320777588659886252652790881595482781030426089175883665227591415309504221296051741512715543500899081203303179646627694494285812112245379941674727439637904378870474518502944434108701394194496892723487065409750881832045252227417951250232714539852770078261758337355378864481986846390532616930372254987864661909276465989918778001739984839904019267000075059212404898102489243409816358364818297205343472494705967365026364967322289612037859483109441670692518402580584347153324327603572107038463961260726579294633255544404505290016928454571432389041606856373992524713667018153692432729249102531755228011431531381655985509179874207677982071831051402442776743049684638490238719396812583782218779610536953817735456861781292599084691035859303594251473501897487980658940800175317231490705896212658148887869374114914901356160058901575534200271610489443541821163401135273588052139972146968238126838829294889182242990778335511443643570599883678463884700224343218076174534255122017442863963741068752093627469529174455864925717289401568674235374879507788017741900390569975869136220091135285874309219355797976888636556745966504990014073491412929759529918935626634891950682427758164739700890257302117036631073758806860877622098867771347528360637769827690218560302155690377732980094700249858654835956657269996116571096752801111521506052092159822058923272555013571639019688176750157418938258325820091329991004078469707816493128134289457130213087318405204108708817523976605828724565223947868411130542730005507977794162955400055435355007920033389180210019707310561472996688788285697167803306385198982027976269365222813771528048491984747117288551779831462081163866995206362953766132103632495648013895573273839018644500327680177490322243619600338505168262956421511976330458636296426866970964240715178672322633988877935728258578102710035570059131471523487808210981800675750629749555934250105489789890001446040105116233934142260606182743926688308356397258782230806574084163895311318508256977460593456408427537611683063828617449372591847003548155391335159030824409717302590400963030722366052757560403817096338116447553392947683449424810494777297822911057207577782713307573049328275414398073421898956920507098878968083778705829467934723681165115782589691118434478563225767203026711734491997957225501073790017366922924459554145872725157761460708196632881411187382262192620249746884577701041882036901578250448373859747343424471847564973718384040668325726990904473515898530130926295336720023010722796984213633676774071711354071190106478681291096111248102728195176625126960783600092688465052461753849925654000549435020126810460932031746648129636436320629293866015327856186703823057561386436777059804143892668559326485776292252658099210364072218007554313871673602384094897688782507696894996106880590048873414810811515484791827896651127301806719829845839628164828197343884383707029888920911349563059324631798176420033930913292502563202681615501202410586610604561974970784737375577090799111938316563738479505487953027923007421615107675196891427283853006804111431441854532504881208594383476251165890678006926000507955496076911543021557505351429636995678577749854372769411613081912760843433007450713697987169505220373194477522183119013488752777188219110670787893517822472402252382470396525465934353900232771498480344979099309438908204151063521552780813538284279104980101764395591340025639425781557372101367474616122836687985540330377662179909699887930538569052624763557029901471169890779766542995041526749035582757337803525410773880883624550929381201791557381059314012009830403174382021132613124298435842799970873934667946617470091503513773130307512549683848635142188104856500062685652399318502100313567973931049350857950376427243768181393812862148378104441620940479704449490375394164743626988649522476533080026894496181137761566925052004520113337340600763358601136185664793267587301480333018140479161361450277877698141110332877814267985526188531078138840583840142569883450335492586109478028275327296264963258284523285995083078425366208358117835619068556984310550257456982745190215235938640751823795155224026068782733091994556802335628433744079308104550484312665686007028991466614156023716191722249595798972579355367944004545644805397331872468718445573652602204048148400122202855063929733892061000011925666312327928301718187153625588344320578337050359744064107766734412230335474130020055055547140340128482394207466475182992308250592685893932596378585716825905434460336108894178823787796504913623569061095377269256173587811682679272445321409470742216932922472167279849188480433629221411508316740458789186701926519592890732555720613668987768031574846759246619562389834517702498125266267937794112932009291505432069514892570942037806061309308562514666509379086654116133996664244940381738677431320967176954593919499669642758525697861526431291734359317421670583606639425459340099450884454631340948574182859339212899505443154721013763548212119763916526199530750545374978483215957735226320567390182252721908035910918422779547892225286636744077700053355234704314627638292260949107012353523064817778987665204586346618669772129607308551934705147762106885495410677467354181213118650683543522189221581151646124291082743791191602838446159456731650349500549013698134277270113812817445361447495031254344895817279372498665336750768448242388831670410833322516773867554421658111933019570849520196528198152010432079958940627322304412739687447848988584578974007587556271421298640254097583846318949038618762263971308943214162254906056320989413964621829934628904012276643761168382411417461753991922163075346579917422370064570827509545418922150123306722459725275689289491234245800979942268830246497540093197406120907328629710516222228370510946688055660823887224710736246676363435692125149259629828209492366534610211251363510916957206900577794244858031071136764386206333030831171126983931114974970873296478149129406011086077891902970432831063786212467915420195805633727383891857941142262971373498231027906986374176307158354335998068431369162145113358380363683309542434318313787704629695156367897167793509921019698033783441030488723955580527910841825100899277336351546086207798726946878041701497851000850918523710790312875650354349351713487374161753782407694507991930471749306887343693463430368854604954573816264604475901209245891627792829285071930880486627995272441346139356603856233360472457198067708157235310622531985916223953450707805066574859356891349502978304977603182888236850195585195098598785119474724126839241195861954770970144306380710301413004589676966746675628757222916597411165218264500354540598346945383546168780983917396013947495270014200672891300065414966244396537410855068766525398492841479762774458087394164449877038825841075473294794357385810602418985365336934086947641558211209151613527677248859964868711670220094440987038735723439586746514198822215827379635558279717086154621754194538148278693230412860685318923786142626101044928075202983864291197486445085422603821742624688907099924780368894005855964260990786631802430656126604626402536499779796617754101808823967865892293424149217552202506976132745694177192540651389170034628078888863203173524664838694050828405131718133863796068029480277270549434487599197604069917154165507532918056780299114424152899506951164652750221818687818824064633322891243582148501289261186504261449516139262505196488791681628069496901902301118315444774080828725321265189083444628850357436943669172931657782479019093948126040209820498884002557216290795988061857690137414948805961685647110273421928058125965488476545369239302103567915865608534900446504449995414532170986107012447811180004093453545422586590584677289328464122334458321123992606975435966934841133746987137942579466755178274517155730597927833689943019972761931063223940749525083390266316723359316088469371900743242799043578594722241985434251210833632545136268677916740851763610315001564979261447609207854166768142013468492801636816546761491359734613527708911985754150547497344344873416236341519681043434470156040248235243876135726127757067544281652247643458836216674314376949498602045310737719361084078396731782116557190330633730335501900385227223766865206804981667546409987389817507692370150076203131344136250988746322474230919840383036400581706389266806394494592205634439999121338658996985995836891397942360092576951969698751708526718846833927910233613016930008211764737033974401382785600158936220752171830364754630884294307715804494775759443895040794951351091641356015686973933895801240721531290146819639145575012681698784780188476491701757118417804517683826643412815362681233948076892601757707532955270898903088876446692975755292807028770887421175250927068774573629034737434719177911789634748895584659292916285662714430906024247298099108286067064160181856359147520821743857356523273472455634380112237731607759993213655643660928332988185945876475029173620005789939638113623784433493106553975641224599360005221524387009213272071687803587171021125723668433467855501630052134786502538623639795429388525077459244904978251845862196627195975621378140096701932695044065785594900821796414821144263716240468971681313790527509492703019700349578049214147460458819910119684373258785671144387234921722854731187602421392251412057159681151414189098097708676928355090794766490387016817489117755839437648439175390949319091253121101167423347434444340057064170926382896292198400309796635878931865193142784243203345269002188649243483860663184913875548817820368612518551718720201116699923184217122597448964562773859966542369924422638108208698122162476695491147887451674971107342832745087540330567430405637877958347157977465519967086454567594746544292436248059041417229985321533153202668349741475817233409235614804838466713911339544067006452241695816919271774599009379583927924617587058883869629705038496385208999082630017853791155901450321113800764771512344024216094423787755977858273317607012098895930834958082456764180820755107940469284412152844083507088634330996894355642034250361076333456761254312932618734829911683611162871788734106796758715287065909779345323234345046224752513842239768860179427170338977881735639010740611484623866955261024780080613545996651244497757829472062798132634694527190574245644262250606904577285011324829907980895338434668479231328690873233400698732513958317755878382216396534892980663460408851527567137596341395130611354638182854442281882447675209034191555715182407522669472321027640483291963914126635884100907259304336905133194151447661765268102845814756182501178842977533198886607053577344915713172108847882234877360081497481039590738912338835789420230589033121199010820314363553659924580448564786948518501101236702314587411108124685973813433156050320272382903172858355753624545044447548862845658393818119470129148974758060854223416681676213561737398990680075465615556290976615458786444439059749856117628989861018421071325525111762087647679732495193680814531425611262218026068689052473829589002425150355579098394523485159975898040502372817039368782926214030571975085301128122482685816539305703798877604277894632229007783260591687787553089927493157636016580999348015271461615336774889474540964251440147995262988429239114155245239865077002772795934903049830633485515039200645285792234962449274308872370599174956850111636128676178046061669769111810421012353860308490355683689009316843371770165162693774951268866516624524441591510593357746426006217139415221784824027519271888247284816747200409860642447900972300740042177458461716573576977317051824671630463842472096026923312239740489201688810893212882294539641011819892261181972568877528819313593755718914476017655164763284996817782975266334463774090317765177625643098967669955767920242292407024511235746772331974303318981729078356053991346108942440014829366049681030501789719934683431074097128559972342939351072993008756128483223261078488081411213861355602866399511702936549509131884119665050318666011544404169170570387421499305148356789881907249708050058652516059808704300859522511060817865551204734439125101521322347909146896452675876777334720984808193031539287986670649947071040519908876394248921708051607167506410327576496630266855855884406057567020977558518723351012015888324978881774644055876072844755911976593225566499980504668003630550075289108966059304964118630876123754780026264473667856460562465782614326713871002968600036930244063818832609532976036356592444846940657755085801607375056616667990389378346402955860012969467455063036989527263353057350694021106122121010868152594657608842820132215595328445043465409190053442328815018644994680888474112467893684840063450252452647762826915804130031915321209506670219639084470359582889572130074501446774050391283597772097228584643918866305977689551202876022179156389843161175895161728988366152600622618383829818183422471054753214720181528397800859999241237565055535366526596243342264522059523987311030554127664702232033440244266331403384321791203942533114616395636648260813027420440383959703411245618748636799294060448120800517346292863872452953373006186739522638986173314271296246250967399462094914910450799366209421044344730428984159401088187323011405046435532932039367296933836619821697586419614541073759014579656717121306373327319405732950222731068561480434172084145201849785995993823840946341185231176172540578705529038288622652792730209232125819461610863491856406164144665336604118087794089171519635648998463578496260026542776685640729278388700415597331693612238171833560546203767707350999039502520415735149361167579685823796678798030520885627883910483046759011470036485711939796678904807504930860814196696696335110540912801794608866630384840017108634309281540895513272096684052616351920594172454307280999659984362089953223512677413468086202798236662104961255168114798159474180676895270725037624858451112215013280837971637617206721361223536086115732277322246018025599495113713001684841224793453575949202696490703812012902774037006745305941989692450870675900041970135568002129450673233072328514155527165327684344048518790514375865766342969288043084578529342802860905487076315478420957047790176764740016640717492061035595535228012133847922490560202676507268424017301453078471656283634254450209639290217347063164039831818301329953129013482894298396366951822705319739746769384031879580183117762054284493035057313276382821383042012949634403657151213449210826790392351155493311268501854772548869511650793778391679075385366566988448573030540683013392692515565515966110862507533174459102694815950331225894933077824816206293637087909539600638255551685309325444589897040132346086302205139135140958109499956510696114343796677127158285123282728510789636172815172182787387035732946948373591821560489447892135023893116842754223830533445340602476684083672006363153195931438159419225418334570819317511539049296524989810375394531560475404636867051713283639857610247811359332109614708054354871740416489008589830998070515082390684954392154487274202615609323374382213318131887663883897683360514419656132902594965215918466565474035451838680801175846536940345807481580523196292606068558119562157881551735040165983556926751608277658223385625161947214945293570712008472515943665623152588433625058378367759301224614179707620780064012816311302126032707144476524308070393105000465037613344336863614514851713146202228464412704308341880101802358366640493383782284636276081113635328080149413844838862258840124843825308039937792728828144511034812465886175186190423439609900723400125753779007236323321352169179743686154334172018566369651199644461190035472507634830476811945402721152866727133209294727955111545254869829998582318226175340642510182090513885801906574829924119159866966749865461361164379064829017143402234517686956482157755013847829762697583798838134836597117836028246372849472328993381901368465981570363315388585776324144754554020740436106215238034391280938072663561705086740543413566291793012393298643298255440061924263280359502428362259979314090580402467600971205995002412602696723157315010491962242494107457953565016991012791660278428204004398975627892650124070382639674845460348929595741745303916160700552659147764234224727129297173974142211338883880301014184003131577810113578149049610803954995839988810919553658009402526231923542735611849170365371135399426499506470319468453386614135095417672239218790291754664965864495430178133152429462347201988049664542522694288398161107894268838880997071995961106162157005545807524291623239060908774800909454186075681546519557764040866565786285506200122912517020589640056699841737391741289763832530537534635973968386719529545990374887886511759378432123492067078478381072945767471530821370499630731128239189295723625650544179105779371667956817242781187177270784590953989176776870020669177544855632627292674700064925990678525380572279686156347848780225061636348970631845000296888021303307885953145786249677744307496013856366933637203969677196463776146764206143675293637455371729861759227818208931272637357037791861004599281015926207860897575367605523481642630852347040048129775452121746636817643651272658996232286147262410453429920746069929697335724593394643441358519061136558893550494324118254187287360281601131034962710318108986789566759173331464427475930962702641799757600420756082631097795025974305321647265235721609871527801936779446869971118704150852161474794872569163971138951494683136849347114963170448153073015383279962115113410677217445658827291589384090543061557831623423276678265762754052893001237213800116672325709906824410639523434505725772253399784313724313439903272649218441763385428031731974896528313459031496517516093350177240027600179185209810343341177724820688589703749412412055243962389690274069179112910560279130366454191873380499108676640861348704825840719026058770107170166966714914266674182800752621329685806231959589931581115433620673067419096021537638383633075161174655561781593456378135602799732027074677448670970841122129722323302580391558027935599879950533344903109007732483635558827641632063927744238935846566433665545723120697577212028281856993122279136115613307118390004881073418545212251964977935283432998696214192937214910653985652006199862321356000731217055531868131959046525312097546351027517937014614892689358142636787469687816072014971576894563778981810670701147907052313765773075703848648934946112327692829032448469799383769930318074451721751863265457500693196757591440474103631396748023577659070886797560484990077972949486039706065210844761273885955297796653556079834780499111123756067807189652770657620422345621336249913660449583427038346153626077322598481884688449433392822629119830516582650022679845293729802062719037212513074831241423965638577602674054928626341959537674229489162713671653912327500887958667738075832464067584046291780350915863079005463774702435847606106823715822590485209687452520340577953703441160827051474475353814124257571428251676372958805502420443623332164422454307857933591099842782688807397673551589360856562846652763919021323836752531129306868827136538125486750900059738523729841501284360182007864236468601542740190265689509244632071471050579745375328112590917011114090009195574168938009620271730743779099269535061254230417982615010835358457769375375337187238163135973311135763001083589901372886375527726817192481739801896984782732321764885551618116112018986626873997785140401658184420263024854076542301409174867017084166150030050160723297701740808021361610947011208630006434207244170911597190369293512557280317384939942840267950906469515143087721052937411918490928567016758987294772923575603451929420860622755747098403948581743016284582243339541536734383743699586408829153045660562015243627534460755360790115166361767052878956091012478159272210266635230316152270519897584169420725569078372986945864163819428145890755404543794334588008338041549636881775161373682753955411358205878635893483906689122610684866855432738470715504898442006723673871248424118098282247322873757468795080522804080851649925856500496870277391129464852676778677736621289730531110197219077953453372830981149747101222381253042197060946657766325746906847477857743844024435219842340418521511466065949393725950505786903340072672064611630735663162720933670031643142784854350457241962953589265614072760182888136583043282169733360709678363184274710492135513504736527431021670430812340604610115277281105748077811656736303846645745923081969944561452931960490195079206874948397642535623499679969478189225703694572786986552650931701584200969578807364670368321616329904909884871612148909854369623124886698516349486300629980456458891894168097004425207455238691854080165909821279313254503686166453949877426243677364132195081059858272814549909997183147396700506788123294037583492942892154840287484069433106392680317846245353852977598013841038813688759933130547675048172927277982063415358408129732587490383325523871014120103097277413798366592464226307672224014377946955824645164069630460788406275510150124426212698573328016085345385260600053574144911904785408595739326784886602436035000371591105715612448068698130257880707072578058300356051896032787549120113160535966122084977470693242389273031965872563719991667834943476462173128248292873094907791647748214577348132727826619967602105591631140573875431278165849630962041597496710564755613384374966993220365889718438281396019611196201269898763874612784561100452906306970557568385926727743209163664608696391944589235503599780311433796303438005153291468430982582888710920419936514586259805184598154482173868724113850838757087008710324993255954800639918633488580564343563128660239272939208543810462650443434369191956996282592783076213766687020316630052519798068961544930919409970747693678709804869888812275296198441589412214287274830272278947743282849110405809530572256818611173782538644345070476995620892560318842160912910585795674999301046033266249066915410634584056566845396116220400024968942707145035476109532782999883456065915933288858406170209828360160605704205870900211856635657510968236481630210305711086611611306700121592839424492745804456922597355142415412934222541450053687442011655900752354606535109409403066006032057164838233524450472938399679491275676036372479087130727538890012840487245699147167982487497653262763747414329257621254092885525217854675421449953291926606544876510774865798087254394417691873440598843759362054753184063821444471591485204467939199554408549788616629447064106685851982279693734529304810430817755218067562158201622367876347213395320721269051580856158036876410908307960950674435688143951869591244189841607050413022091822370983713452463699988945286496650548073840179317144841230308006927984281630406810473324417436566267159073787133369532341864049084299126574338688904368449506719054361558107183095622594010861568402164398689495335439460203836982409332679020195099255516698419568587752072210968867855934842774943752482103331970646940602924570076335198297520570988455101010134633385138476851549486155393615239890385788948575747105383685981570268412580268798843728206812136326001595356121322677599352222235969554030272405560688211236519687935157121343661507096600166929905785262158425230433392619800285032606078694645852125142805656327219762050677571119121386677779839624804617512612266003746737942232461337337874574238707224831161183837220731506334921322930885217073681614895600252048418307526681071030838305389488979659198691014844378912963514690485557199905214789298511956641135463867730715813602965983607095074129073028860938877578486755180420482185336748446169577929239040565752589588984004933884873229735542441350117685885617723687715474371459980177579475070116114197842391047817710392651424079678404600255335372734403704958035037852832900836588468181115776627940722050097162613632528747217586146312746000704052628482058268183852253137001628287692893548334673065316865708801873127467206818485594742185531838916992842296700051643930157615339738156388698239338505921549500801751429970263729929122219403867752347320544216003438985774211214151187613426381496196175460115409431100526629617797880275463190648713550781485194879353503305584012818331174316231034037640408900899058444909005019832571512084600329103701147388822801599895763477875536531095620007937146426722219042289710621484497208622113548261430547664052234222000679636441655192034978291228085331242660441176611887518592840691344226685091361316975124213052860442675451407568248600650273229209706529679149905367469872378441155807828340664629499305563742870032238838155177315395881325849452512797469530292191786467017298587164062853794644480515610950445213145192361818939601126107798076315976988432267940771272903529387887012987638918737568911476132908584493156564940022881497454840610520814883502231843378225846998877230119003502623381778986779320561551617072296650063735718940318287231545009083240939444459404260524512834180601241084916903615463936593501431638588235070115838357907626587261576035268138414490987099238905146596254311084551541607095133114811013813957262268565228889247827746484391997655093330533781672200941628415611061325597056516112621516658344661956351077712151465397247138133374320824263086983495683937174292571669782137893071114908266570330645140483200444332689910427346108990980426668490127090302826899539385322880408715703614598173001878561687203326675422801862371650401683877953536097377105635807402202906741973547313777155998468917693657047544652651323333715567461861120417314643439088807411169117754073125376410211240190491903365683672833128192976771057006385971581022644791184995073881390446730030814833920955695203478655644154867646899581138390856861843297973394565251741747387608230419663560991141672760949703940117123785551300294002859749205402041128063418820405438043700227065799610808231300168343195047082207277628689563429491058748813515557054277324767408686971567279336117826388458300351232914250314190885709554588131400650600633990558179502415645106525971358841022738267831023990307202379018101052486718077002236537539612213041310215655727177178163520915827701627726769912069498950466091750777384315563390047723822738906517654813643869971039170942259102858588353848996342477182267935875388800310927019481562025495115297868912358806647512451732279941372935223513984429919442858367920321762451841356231912104142484986849964267335607719192618567326261411378792310074835519649778711187559912097235190787709968422876471071588747085159439819718556736131864840923551828479847104363318899182970808925193774563581236216642896586836765228591473626930292377984726325448932612634474009509565109296180558413681226452285212036813989818997681100715474263062527734544484791965065724241073730372418415213960824333844406091966528096041425700918567180196060130844223166949325031687293896601567514985561299622898328656917216793045743091624387998338912334296727013404424726703179783036711252345545289408658179440673362193808163079476758906021869381056651052215267708473791746348788022586820795359281928763665075112816597105802933477730198596340891059943267428520680877466838249155521403433044423400950504349103437352394313775362287943899359124733564918374340028504091583517898628717384685479198312187221092611256727435201126973679944076964839108538055787425148067429164620772197681451953335552357773009412413249874204429312110418044591786921616808535612878432262808732395433252614961401296595141020026774732614989554194227932524374887074003277699152779426572792124232700120257290015320957623250574679322084976385443854379564552626286632056783731110534188020667109394952567990255076048919621416028013684850196147954664331303320998642346536051937316652854240200279557452328593592137219641968945995475111013436758155979575697392018054782303512544238888388615115507662345776275501219049312129286881677880007585617957998755542768589693335696777056819797972793406872992549207815125672524837535434783905855943108637375626076835603922021383426514816110713814607741027357161274654834887729615166985275539102769899401122556189953477705892742426604908974548154815462031491947227576821652728052970144853359207512774779321305002224450492511784380572705668984723599626114939733952621644805283404453785055538087296846974677760664471467705787613417333457034174279924473271742112090021871875439882350415733996401684358602107443317115027975812652989249155114677122034749503197369325521368238285578181028348637983103348083092758451784690205424840017117916370689129188062545406828281677774114481235769657854955299847270916722594613474704479186793931812851506761200372187676141379277970462404909867875616004502860897993501142608719327366026310976625221029252785617290846033442739064417568489037033509632155381252007363886905916263569526665789728327120512353179609911632272884133269230013253994341731665154004808464338958255753777905892142592947272578078128201275714528484475455428894331493181929848838605983655732996347890810271796833731303536864907212603626016083514462749503715676248126684811732615986949380264723535036303638191028631152403414186362547469035310920276436074026035626605705492021779223460388526760941478286224099368400488217430916833321837159926915340755266934376343389695363815221277538830855659028682969227641823198306415031498468835276691736108729793398179135134014408407946503437677447744807380710039649622814556387442666533481071830101395828374522373396991432333865609317414172225002240442321811710115243413709787869389385861298534151480177460779386808702947273274851180725605490800980342070207586576604004796791062608448507181835062576756879421559613766828777285280769861806452927129684419037292408537311846751172546784712906303396331500104271988733781462474438499099080598956355101369725915939464735035779553357558613155361780032739004552934054219252271282140434512130271427716159944415976709950622419257430002243848807532253256111645033021203228928624012588789565556287581492933355595317774528051037955161489055527900598022398917367167191536225956835646121462358749749479570817037972778453979922789638753816542086463792738870611517682720676799138600031139106883191669026211895153386405017858112304749830508308729538312877221542002166166908078337164062370348747711993130005763207787535009154769116590189096134146288186240189858388687699353308637057011098755488878630465415935476192409001528246302196227990175280583931246001165173579075266842668355960669498973014843599524149576125878833711390762456989331499357422302718937413919049390903414446422128701968800495487280069437122416880742320162318278246247401012702453032124985017321951994176177778470457551262029504182600715636228514304013782910236952578681560461140592197422787302264024598642001086066873042134211622128048225549905360481617217934385030867058065947249003900841554795446654160097945558432435599704116736130956979039489851687902821396174110289746181115862703183882749122772888206224312032397795590648886970150709665038507311410330640280227378570038820543345072152548046535586524298491589589075470324978605767559414580600169995993491397902354311924447308116012801962111407831546526134431116634709967365790325227900281768724968831895099711461073564223144292688821763449519748592248916523133259765449197263379610894163191004990297195809150377443338155629618741809013296788294480408226582447446109526019545129313342504626639689603854419631239057237277246503485826477895096069756817905277069191368849941745842071706927307299127132029665180436741728840434862551311796491659342034075256077447621374523997328806631658834437694734194533788652067428106987265031608470465855599922347372378908271911986057127269208015682120818529855257278952599842164556137440677949407016819417189052792389026988668631668116005668335244629380903028675013086943199254838322928657363970585588197553157140421217737502718410356419803807711311473167378409445483282269542754347632771111143431058497810532043485556583769692637344345617556097739104259826889598872509139039026805441329134986576956905229984352296852729363621144141849471534946089538895526629159483079140256498168793094480672105386665518070876156961266876483259950248870542504982386730980899391187424387495477011526494274647406463922812747803097582061666942228317523075844002306698217437184380218839405192415618228346896113807083794558217589242344036561854023412938828568324359924495894042763078870979194015208887388470398884958485035601274639388985728793312027600021912577307219172286419339941290389844369712447542321043610434548874687361383930769776157914717768876827287157625053875063750283050767593177225066547957828656219542350128529447892432340866722233233988620785443275973823743233705776013515394069106831776203598965064249477419146549858698241385295518121551403829329169486680095132587649129188464281444592826181923937020729485576876420184483840145804798224747752108749466011549760172962044063206406731344657266811668366493516626563946829199035830579616293532920986357719180567130108084912461326369895060933626033309558451087485964375124914786609941406198943229039480445749482517602497312755981091962447510327550027595593644003241194834513847703385525560117923311575520665287569953584377695171678697241144944245285502705056732241068964875759138670763692565668590516173273709825240382117400660995695183962442297046893524173346331466134706926740359748113314324203526255582371785616174066344154765051262689833077882127183993109923618428606517531044322780160724342608200756323239073308570531666785414633616076002166673482697112669894254104608627118093789392246297308778419102363265528082412823204246438333877087222227561427975643169437250886179883455312793593186948443549118016405079955675405116964167847549335918554979634991492764715337854974902137635131538212462753547074598639885081631089104791284950838773289339290119178288866462606782443731660841328519185654480883181005988925979825434091132025019356566142432496584161613124748229945914981340196928051563945808121593440528111713365072517710122659580930858913808414475605109316883434149976552750032583802567374138643748280338879589759782294180187079322318919174169956708164461194445007579768276740171100353586193197559219545622499827586983258828850801544341056307605987913104101126675999324417926087177613230948623617001353587568938955332691943789974128169894272100834207505177567213113715136425808123369565780689311368812744020919855968206217449835125034137708373596655610423487828405727799383733232866256295298484321116402225840968600966726168370295701072339994225735535981450785127199798959577137237526187309752003620640610671346714128212735626032781070735804215509754313020637444830544598674096762826274761655348973226655323447011422072264752249783607439624430454889157920485712611922036220820933206065931384257304479438598579157438602747433656238142962312157514531794906373710893848762224191817365384070800634505510276651710949961608072318740794466342868464046662543004119131508349070566041490105654700954158517079045754017021631386838340992244048724077460036709699678206912711079095675677514429440640524266212103156072427347219402403729673925667375355644061815766617221787733247933516435466492651355192289278083048490413053013098448815183448673982810193770484000929914368249256984255470991200294611628957414083420761749676250922336548485763436419537517165410108357754292894676175958370004230669564566348907639658863153976569264079670417391031298893878095668765824241133973451226094904130370821268996824894483791131266767695135770649924870478602203412029577974170623098772949731891814171254129733457908617365456372214287587705351799752032412531215453315495913338908247944047377007560445532776291017501746592121870781580694199076003160741675095342788167649207799517443404535765894020338153581634061093467505295835009559968038860058316918597785500658605750089980219710003432151777501248537045039955887983105442683099905072109191669864163139797902620059778425211188768777937786908596543962940505847917216907866996712529808031460410605496825467935648700646282265628149624474753731272799406672382086794112504325237741507550533681744166489538917244481787156304772490679288349290015751822449977560301035550417651231975976358987421217451410567856323700633785792650130938258594605120360681629162456589976882165858874694363238479921027984482692892047464351222490313029092837279333354786860099102841190234258261789167174401130290582568508403764813482453648034666563183376209360876356110945218204959138031972196534238761147805430052942451213198958056672300074012406842693794504944989861830618020780583345817478252616192073288386733256137523211070758074076641192954087938481443921622725980272837604836100027919811390696598181594519218665349452678505676261636739969722678916404930717667141179359229811467720564310634361912584271377266068970770250327851463111060453140041003648984772313043797809662286014476632747346522747994011910961939547115495447844225821931513424846756881611458660043968207196429690843860515906169218952637751595381009079305941231974408646241533952387998157512737501746590952526502516891580516742944545564450503665638222920569190761246307791240489128565768757417588640182638201909262313995207660847087896189137727426969190852992624589938212932078716044151496391302030932649975162937406202578577397868914532173650927648666705627419228173303305974922600246798479600928109700161447104455504855821355691969727365814556680483876225601996507037692072764149886226395897201065160299668326194865492481203435157955864271617134241860700999178890333456731785827826128463330691122021058662515907497202043957206991755814274785395263066765690835441704379548783889944054156559751874686950228920111734257878541144379067263776975547072124278322603324583656356968665811718235479810883518048816914606866450233901267172891842207906707230427682690928193634976804902430286519726183175116200665660531091636309424547361240604926911271310938617126740237333265596767021273702246558882677006988131137878425393784515912348732212920195509800445532559767189348883228354120094837770254010306921840863559342538837938617267896048385911637236414669464029565360374614483450802144606987955027639295911830214008636919260902995539145702412084081820997573753390325456018565257100431269919018409292455673347057193807590774336872507059398480120615953464668236803562269723826348416990461284065926232287715695829570738127640946847393578852262342916810018843088791440512405570764364385973145871593466723498329444979356415862056887529425175790691518329132354750326460695954731908886368733746320744947205494792169292037967893782156599380577833144989302347460451366189861189478891376706781067600962162037785192867643043312501335093153438078054350727078734670518150805041661890745798372848307625109490279405125024487446118529509391941192794826073184947797349560092571768512571943873918611838194295344941686065169431179059905751959321399377607964820970666376068373481499794539759489379218169712688815187317824631420529735189347109953829136337836473553941816393646077016105197512692428003264561259358646908320173428038964756770573582811433677572488163825221524775325704963518046476444964068838647760677293791322639893016681136357721709344366288051095945468617986309403654079693464613054727934447592077534194607100072152366639786387270053614307971628550633997010519239430736034070848464041702889892991282525880229860987708990080365786566282019309410238420551770077050220337724631903700977309786114599625754120523376484674559127194128917288780973269192010609113226504005750280716786134046892936170958265854378563034135220485299403747079363522916452083762997048909545405100190177520015420577626619475169163294068689343823121278425365003547506461088249699013960582212328223137017452446620524084059957950658661136255290238890241073472333711431439570656930904490013904009094550191497745257240650859496882317065746668633274736398298734737673878968029094767407689496443681678946216373480286736829226944827090323750398383096921569787486581879729900581776034296097816211762172062913225155606086012086305194825346095757915588859012998446007917504598443784557523483949767106556002786381147817807256934610957000811810214068898670000803559969283300864304005525189766620549600265526860015194243977461890607763381671151860623734550394148518592118132711341320511509707622229093347347719953742907429392146980250619546709611265330878984461317888277151274513195968711411625481911455751743797659480838686423891047097915966563157450794296747196351643007760333473609444988182987988129582974906732954587837681718024964786525019199440967883924300012201795459022833901644263040126964551807344924657503794809467745399289741663557722266787797394338617893731282903027899429537983365806122893992569202204163765232294443163752480015639949450223382175074914342871371932529115302931419905345709080429373605924867021341710078628923522834717256587179235217256890663988091778706177573139675166117322911811427827417446416662130146047895328745608299520175692364553080028162687878991635991389722735240216062876383510561816568812685770995761199166821399623578599802874449537549999519404422866886743545408559143230073081593572711236105138678553645824898117606265420892050527200603135124061926025618982194513742462246362571168419585907821568851864349733319560390917441046434963129260026878835521517802422793591648398909817966760554235253700058457554416797763219873544775863261160879795676441424191666087135809296099156748119109597751775601905869996974372994092306511190133467710128669647756071572281195345115506364490952415961535666325961818929779188274191465412724687483687549740096035723399246240411005474007082591798616288020304084732619774780550501462925072583369855095675774487377903546523871435075962585523590489909324085754556072904863118822838327476865379384282901402299460655938523148395133393733216128806735192439022775591005707850934133254963312413586418050255749804114174636134227222820321581041617494494502319431366425444869130400219292828965506854484317344592827131990921336458744422937982143623242738275425360143978792310108815188700368531688791980921681924153756227906911481299291150645952187337114258375256367095968846306613675260000238101623592919812593419760730693168209996319677127883059148367588522168599139071810870394547733003506032881947356316579088439742520085671145099875546133569938659051449493597241010385296593273170277787051261385147376195304596141881892595399065315139821190583291140648554294231106435487450441290004326727106967190406644228842241878418626267353262154969826562312861120649679406149724475358685470705023542568448096133118968146273300844504587298983824617808826728429830008969078247131821423154329265305106975746304755769126853871966735343835503318872872502146176977215750701660526553090962168955455236453814411905798967033624649273403145504410712286144346019708614177294449749620128697183432005003530120709535361181681418433400730234190606775540176272690557294349178286156013089396351410265545811801237175058940521032579679756955179338853704236442560145141124563343924832551413936685266589647537360396695326080582640478388141545367089015016182953702224874512627980428547020107457020671521667087343715332821857348605391989961703799776894716079898688486647512967502685190734479246926224329322883254966908884418395777710537854594922358844229497513557886945110217981412017861475481425743076269702775316478143958643732691123255310729756949356802090723156875954360303497719461310261041772369128104978373464084241494124339626888343719244055985093958005899525577994916812453125760560698607186245513945389010527191333750295706310551967446008836831859134773382332541975974714730643532891937448238740880575059264448360741128630904765171848216039837735154103548264162332084924981654379813056877954333858980610480511416994328115603399375553686339105432111715928585640314063926368567781372368796726090085388938809214960022171120477220246952482726345183632631637827636041481884925285068962261020266675150355260039011804338191253521880585816996579920150003678043198693516119291788736200505338889924699167575142389742173514097115057628574010851292885098366726316063809548632163278523469613712994382519816559969553684471852532821447890415903320955814956959562980626124541622903145078604541876396548852106512061757463085802037413348524715915828177370875474540115285735239563643988584320500180407597751097462216655142256824034797202774487228011467941106084698762858294560446116584178753695528551371164160247248293201390206683183416426742896110561188631838768860171685696081543772112087537793414719016297160305572792202493275580449621843887705576339436119725927629345377494226855333632329977773725455114467269136365860870564579410939980363027701452672221232475981328361881119640937329250755651715778644228840988925556111594855830470630965822571621365143518127686147492833454289175183419554205174113680027003378567674160173234780829838231525780469533768676761461142532526955390155180261529121464471705412869650312812029720596037852968174804827079488202238759746242647106736850801190041397323068436674200258079577838470432747716042500867171469317755170603161161922623499413733572219590228117883617755905843933621824928083475552351117255518225594836543782209453516184369392024025797974031500483640058254879266063489552650761602400743920307654858453423910940507563742743337363342078362533024485368943958105168835583149215347891729325777047209996682017250862635675953957182044822969106896861506315149434632944693287600796966566727469062663575540284936432449667488522512333501799690511984097266250576039629299056815958211806797935809471789823794359641650443296939729460799855469055362206983089315262692548107948812205860894095116318902065514920857514978119635602782575521712718816315681881374677810398418094405764502447468674549563270465423542484668557267299399766475593256630977404292128332761565798843802827124796038001781692061223181540334931472060188395606732583515992099376268258833634728864440754836612315415380647121688890554320943741090190589996069693079745529221922970554635286325787108192596173800201942058079476318410796490669251066730431620381312242688530336759774265767688485007595644121909374442515871241885029889185011445133909270817494505118014381243948652800481497971543257890214497705329442846540707480289480964552311292361749659696271889656222762831372501014367058856864128040792687018584522552753167080104763060615385953612848739257531368963914414462608896522241615987755587814855674335275410249234064552551482082755879482818900494369076134122422020315076960651895243337253506474109949143231407493285468781709646049003522360512520060671664980797009998128166978725484348214096476397877299690290346520138333216789401763922403038116791130213326073591783713635303182691341627894546226158302536704953111133676311274576901213196045033353623947259180874012802649761847697492343211872455151129187094050972827369984428702330083879984389162434592977931651352864569153852749764443120231728935451877081840256666759270606848244402702986385889232330175153769357372681467911763768715426778235014413108697355895592141111299233092390579433102544045001368973968151172012354475134443199059270397975028579886415459058929774896798641871196602310850118415035050488558225215908107152661007727343789988197513153154886522794821227466219459020988535442427585136710192460185904189754835130006495806378437265156961525442458136879887356155290050431631689733006422387835411398601744673027136069249086879307220674544472026428474794428447022989351690332251237775800601744556384170645254278295085035769808816521341921971955836916660071702826539449437811322697858883820084169629495754673547495987330058187651284117341863824279510411851735267868488680756146249825587128715518006761641638682387907059435650844799529176190685292855921990347414862312766601322087356265826779264533607685024871967550033104707647359360389247629249539118362970628675885166156859519502717740803272768926031176906173010879399856285384725765852926463209593788159474362302931034203581003038014961771512364759621540684033273815923848764541324090505627367175223621333072894177605231646756559787705016394134993506454003804884071507956006143210109416875517970669115120349582038654335886148269420021244107227086161633996406783970982181101613876436722127328881807316862079245227322808964407598552066414611183851446198853542274627034282996451723497770551492672559562225965271737522878823159200325167761701922812363227218544943904207381661721065834091153836800814981488191206249042074172981445871762617847069806688704541140325871810063245609574632297114941971141558756617457400891109232381163219658844869875710819084311585565023488154918600482162207465424274700078997141455848963134716523580507628432618817786362830399342195260845761549497309526464232153805610048159077472154249123802480583992065637574848043016801046715119810797755387805648008731191726501877752081126508208671067238981478586240111767695460539627504236875504323120696626375216044233064178433960638754337510107926030903507276037719126905927184856353436909002337160896634945611790156744639784420698663618729640838221320163015069337730275105782775704733752554415800755168076568742086886934841786457796433084991980835426736401477853848206680590099366276852966599659011232618254493914355831178552476693601187726552443384339957260119302188515847716920429390548896751849573559608466796266786181296454610832906938072191019934434265593279937803449468820599547222110854165065603191939324707539027006074199860992785068130455590873287379337488158396593987125102570511013211312971590389983856715524983266890580200900911099402171969146345982985101750775065231906645978530816753537313392184387302984996242185401537870043310232112239727306770734862522086715853832531610897231556513921351668134362679223007997205002380986775502221813644660354960723333474453915875599130353472891354952707675966053313461991191114833102233652309771954917851225127795687154780171338047899554986072093683354293361524436401388966945170688985406190795353253038871659066201498476498132801946692086736991096139006011396066230062011743222879637330930174212546858609540953064383784970533156495934521787834572702817959232774758249898824333983693592977595919494125956956409772735389808063088267256511597736521039132512722981083576712794685816853048680675388071618085178078749872951390024406843497752262225529378927833036806086229501348013385100072916174262037310201304793660830759070278505623302287517526487523607359138488431247752564845216470358805690205902553575006569086612364703934114967512773059522603571361221806285108408461747037045140900904814123999549420919705974454680519269725892284459729528733310833636617626785359261481140361958525516947143219030343284227507707870266738734552093055968931039500315875634897786238206990287240486635776645099712681871149369983270368757604856502668396264543719421817404722787205890733006558926298561807487086148295937296661029683661405675310185408712811425481234390432870955467953368198431119340768110205299792548725040108565562172201847989529354718940862481315939222326751466169289481457542400877296742206439798118723011095429847389058453564512966759114287364846313543359355773760147164794062942001000888005947554662386045688813632404554846193942032726537973750529079032934863744282443089111600845059279179268218127288707655865596539129393761730852305863804099175828864554407185776753729571933974929165853518763696714931165176640637633317056538093718066916201361109323766080183294596254594375359454783313855915860497687315361177294694192630256276325070496062989785469371463856439684684739077721737591473679251830849645453662319978222581045934765242539865727539424807304795019168491778288580069153024973941976854130789710469503391482791365956759041382830401965823089758928593777393548596577499299723418124148246378318147038021908829953797783683446116154935051945016117794242830839653319629906762970442198555842685944106013327054399297386124914290986868015084336989043516278463805541775689374400881046337317564431219684226314070082514410921834379675022942948003092310737079514240684459587812950825269784367997452139849710370548000283899922817671331584737715443376199382675742940148617649762385343257191327424301735500746699658980912174217375893284124510235927713180037063868649622917053944034139699292128887452505474346797215309947269615059627538951812162280455076558838977246754249755562920858910847627901064336285808487945335450430467926091482519853114284845443352036950405320161023701849133618809826120617066860712201839245027480612109123922112933966752894695299480838368053219822564874147107443477851464529087650977093534826157202426865456647330619932578073313562413517693465708750270604914347429721398915594687543007002451884680693935864753987906268543517694016960415413669821297311405630697743466409960391266013058940379564121697803454270374700909002672828227854435254316904787632281707570625239017145427737471822316734336968400523882213649556280913028260788866128103059607337500878066883447755312503734007383329549637389809907903220292749440838684800263897473829732070133919918344014779981686893424388163366518045069750365142467097653159668024851141996538428037309393234652427660891252107293441432197753126558922950191503137866107878414818862025859645021034077533649032891642933758493969111821741999159500043492981645713704582665298356853797471775051418102850534415127606887261857966200973793450279961751499739744819579184147284373165044687123767485173415581874420877989620592056749721503441242612390878413575919486206414887896336212725244281432883400011419945112104804129394154157591730951277835940390334939507973208668309051020666835323792633336508108450015812630397677487455969885763124033007840527965507638020460168008264441700467284790640911860789179978348388274590312866304473689796941948163116366983862919744546722529364637491664511777927929159957320425239891637638952239238419493731173431793497316761123241076569722270335362072279626915790164737524738599313979942355593007495442012156599443332948109971478383858326825734456058301216774197579030643783365806147252010591914455695649005806429821741777908584600675216453210053741515753729832163107476324670868128972247029033185907341825587890377049989860854606669173887761410941947407084858933114198017539978247444705561284005311019771376868425610436825499484453430505401153128699609906554938844753921486610039469168501966574740998319252829564357211461602551798918234237019674844947373891978280068746371481587312110109374694293737649830245086338079875746561902926305563773562649130015720401403506655888586202101636626572084263110760259069464801507431571083653549090738322350503745949720900369091999267994836254410625207894526913832599468703436828296812421356410288137505254587687360172966606184588545041939144678454919654487342149579186773444217193325254696669902997789133336426672914102608038558461476295292693646614655853885360950597311875983263308047527928041765967586050278824940937520849273402405034697815899822756766635510452468280673390198434568275065553949370808099755137295660004705622447582465106775826613040087665919290812217884122993340235415224307433897337548542236723408455113299198441014591305933418992813009169033106271889750115269237863527024368625512609181176178880930579670716020483505215756075804617701490602340548303838652717269270114876848662821310103986112888124111903075348570783495981381761542566330515612189671635399409399237840019600736802957724426067853515063443725946605756296946886881833294570245320687946550430540660173161545344060190161187643152996903186481057530434069881081960251989594681078971723996757996872988320063833242338163168581515938596392271117037850674534744166073722669872103754314307109688823558676053884108790720748796248417407065326094542326168757745032482141727349416559863880805680114893200138210321054881015741131781490688505820116086413343335827326741938486475498649710654396577610938138794350938146231411563681384431052366362965766338170400047743375762757559741155388765910677905805268503021533858234397226266946749967785335897539194138103554854862323526619343466263507185560146224133276240471229739599149324247094343995863243241603445325690884840592388847674938642940913225705805497997780312051418875693118887417690845047545804818102422470439613507414384252548650759841883658683296099017450429498089793376124507100691356361537445993494608038819911487154494850663216128847231413950900204585726973634022473026264446252005353498113151016273335176205977421859061670281415530970283740510232327636000268863500805559287283958164160579681616279018003556203136036519445043869124201173928099193888164554401193334160650618719295219913535078002680533302771161355291985483995719944776246752537480898688829938152250030397877358304374122492645215488028953632440702559992163258442961580075200163920493912773677600975272275996997266631260135719895107143433454253697594160321878522328864625142783258633699552086411966242978827657548110177442618127338757605239963499149628945171521650225724838657645887350764143076961038777323309757018408591901100577672272073039390398918757416047341300179517938452320044204727307098305309889747233842441836238867901272663834383117498038388019442608841602432886547089503953972983518345119111130010031424607977157848552152129238740381966313186608368517875266656084331273483471195031858917890363726337226185878325926090104605107794147638588664712666108444734288925274527788531448041268005452625094805761403034991435062827599554562886685015433731570707681235392284151295304288830713326304979482729971793290905751874928523445783280915392939993394737369415297743054070170712219152862944336996370685456200555893863952269495028585444379528718879553986522971803632159462088824798792492964184785412534178767833024878274487898971978298267838338211850609279485510591497384276088478096035863897965490670486205144116382165370427322572502193758993755609950261416754394793279505631063843128979799753064949519946633870263345614783801957791154460680199599632968589464281970666045555285932523997321564633449218372540548173745262778640070337386281059475260404357423147238716890369224207676386300928072488826369194934778943028566305512744194314469735716448510097564778459041822100763948553364083590787903004552855617386397316025289245792814931907084489067686675026449228258240542591658593907638725164126921211298320165796435827686971183082414074943817732548389128645976347128071790286414969551444533106015340484888918038880450654696885848869418450846674636259183212293796707410321549810565034118328876169790439188967066175137251687454431168872436205368320200400834018139530399631878407345245377388197915198167755764588213793802096447388481147823290131791566781152213628477760892752205682829765299781216998173767072673925797173392256638020427633356631235123302893430102175746400556958803740973666354420725146430179670788093904559972456386604190115763645481395396344329019361809625815004084692468747416203920357678104457948956076459954822908671376893359828692263827479367261441677288253158408879719972700203798597834550491261004206197501938637741430996410835646992206512610541545665469154732374066123087491711419426215232028627831317679905191258528022420243041709358599635751272253548790700812710172360157596782033372978169779741802008426736807228006256846210037748002013285588609950299728286280812586622205722137263052827338277087637538531033451624231662482786530983225254995811647981941805113230061127838022899061984761965408879910226173836483996319201288993407988584878694078315446647825192116973280461575291479487110634572228541147077467636399213019644085857935097282726579393840773839507295396930685482293143712972207594792785954660136313469071742206958984002354324431726931752934025242471274544049032603097773320753809724371509211786202480693467126161931274246315453198053897219680941704501622102140008001767709028276098167388003609913230587288542042484368275640445955467297338065266039168372151814500086529203771401101474434232098824683402894112187815885389642987309964729488997171944155660193206135941158617333605235448828341086339644111697838288102462051351923598201691222300721343107611207330616139103885825244328755824436881721918196109564001342272146002516524518596414271867450642315151343498060594207278451755016182807120902946994522692554727621132747983347441361926530233673666477179386489847154465086791318365159395405972742854891189370580724779935074485455467229519773349094530286000088173309030029836930687710175755628127167161712487635653972893069184885251895585087327712347831533589278698720541339593127871490226254190963466242417268977305794917305532557317729136699758981251154303113789895456447039362353189168862735882903688676392105315272530343852834640363327423706927617030475061343881132382716341566863364263454027055727310299215460626253570617681141060994723931675048651871533991063811548719107072338686833125387233270199834324715907580812253440403376405667542451929417341548832382817311585991689945466889797010680181228901286529004290904581921418977525902429334541416720769234248769320847211982227621693035308705714480835094741552870745383677748292497188908208420029565290853549785437200475837256855952020698977356850665476051164090060109747692558912834088722510332554550551542149779078198072287824653609503297095487754672387577461519512947328295856968121800500594531877087083689314356126224956316173221517478039020643246095824243889365017351112791623978901730470497442696341112404599895409051380907174317846070369879439415720307346129658126371281864127884214971398405594497857813112719544496902339838235750521679064733251509229404264423618709245949738327969023711609844647467754128064148418979937680984353728904288444433642333784004621606357181318639887710680527654140122834452556373570883609219356362015923772430235699931929461131294842204518373700187101069373016689440577512711696513185218362403926499209354146620178228347660534764219175481914047121120469626700241892224817838397057137153269776433941406455372054893214944418233956280530238844044017721370960427042847203227085810146346426254346540216590430393295857355451699014160577719431401310800149550805910326199978328130371107897704911252194808133756101371007795507353512427570857776785916467757225804751481934249219238421463797435144223704981089394299543427594581834089764290163410409659053568742915988927183511982552901717735984619056642330115594881618794851454216843731777885833027902257179444573494674800034815814585111026448165144638808521047306895515333533336102327707713244754853607045951638233607758366557809353955655483670305246208892217312497779323499959243834583384883862816052694157745154931034627721889827186174952452836095150997048006066406917361729228604576509790981466439141110225727685284578858879383023163422112736212944505783574532459269078571790216553477347927759440949224625251869024723897690588170350131652106184130230011953309403547769969960439596577955891483556626935961134804104465509108110012793739204760717047252519404782013804343032387407487712607426165064701268565055840935848838176213990939834924498614945846817035582413304469602173042996525953733662934560452802710874573565493676458957781879970538095847942698486259748445744942261240031608979119269728374532828557126394800943016974300136831554576655576834551950029860371941215725347560032899407662189407113214158784648053376014425445657243158922610958618130772266342862012632660579702672698479253246484074517680778517651613359403367618133752138600490154577931964070519632068914593379941869559306346571454117981840782764737699848695432064641638128870218430525142070786001286510653861193586142984587923854523481292188948082612105166359647618046925714253019950753383196961048856037103093805165433439363888803922222366618210404449014772400505155848738225550779212560927813018192906570422754287332456350288417736773064303180340874849073082635533212575498921722711405369955177300233674664406486784317127940940108736620284285401193371201311140511815659830705874254381302607427006314432584827406968471294641910497728559246316219299354306454206394354127784015252389609025812719493041463019696095599206060072461334098062743887103368883877441910098506781757506770103461701240146624473616915457996548351810750068941418044098482904997147015224526575460279792622638061271249803896158099068945101706061332211055153994310615281871067434325935873894188295858929429163021024735553402127114921143856104863380241581169376703978375014552169505209783355331160851021467879917974706000947104910120107002861870110250616924933136403120256242373115503604404056928681076504124716367334131657813138136029155360273039331617896983617737801579039428691189340198908709781574280498447494468648132219824935655358807091888792597920341525792291494499022680762550573184968168888093796335512719897588609415636142130176332665014072615346273060150102809474139117406323136944841276425275788048537306680333534230547524752683370419403882836499339697890685468439171950613301351398168708836435658095791169928841773997199879955905708768409595047568566671865466877974418157620012937960262440628887497742825557699171536149100662210444801020464757767306026601247939540369123392166447813610461880695260476079685272756457088149544628229742725423502601371584661541415247417859510042620461035970388799600261360790168121652110998219394932920160820628915115156845155209462407556314245571690272809909305301271914160150600941002492010971904678842906767829994261826400189425005851989247609497351720230595212352307857364280105019801710887356791194699957826483499745711769102790174206505916359685131356330435945470342254363941230660627686362652958264595917967352809164260375457986669617796003006088405708855921805313755433254623482606399295461778648146612296926167543798466630612529616773530388713518560658991130137428224502812582679542894835294696351959487305031871754172436364101455791166090932229858574987596982977191371650944437185315381780758769591928722368653927602239402077631536296878894092751224886130039883962210214337250214438719606418550183945470138238431814529245830903033937180278617909148265883262587619000086590805310235057641758318841568374563343524390903955047582318686886011994493839377954280689712696775740821137692104963110630551684901764330272119483961246721889853360772019691981216913311881078000611588695206148304415679319910031861362648638575015074466480016599233844271486443237768584191160663360238894530075951298785090202287391687014818488690437578237413859771966011582898999384772462439079845879871238282861366643424048614942850044236155726517013663815882763389462972464672499865450697032245552396078472304259505592200151327365211241446508526367392213257435674502896439289209118540327486663885171586374575813595250839398503067515015900978123328392656750435292034266065857246010566497003675730331179029221408770668101227917691547564413585687803182144644980749103373278373841260820108175248028204946691405578857846271126978257426142185262390413787482542994974352324257560156383462526743910107757071496876874542753990398660143880488456903631176559955182376429246921970345258269523141163749853313286571226837367162785680188272908700567812690328790658986696518418413553619126681497411318460337397690769356294868224147329333044179535952696937637395128354718788686165112029001746652413037950137588688192599947034196517583363602823568015603402278393892773578559231007823671282461161251619931576129596459220406024933823139953095816425486708175255696589702505376857272194221469676418433770031155655129731294528969767939899973294392345113495673684790136805936598855810410466643392290403153817422660030435573145583214425186760420340236905830147980916446232088114200896493907695944429867331880507508209981961662582724099652943758075534195378310001112678944668958529756269559628644821943751546212467377308427247637716754437072178371486406737512341188628754564571550356686323220158395201072091277287557231055020292515511809780113945763213822877067587432983609101311420235286042013411461765252165610690837163300637004944724053295756144947557236874978714380929935673459897618395527017870862632656116949101596239028321375235381893406428217185645024939037942313066549676689345992907486420973282337076221204313795957616056124759398130124362462110437150754529121887685339052771308998877944635214534742545917631788278996731243932872754032017901563952141479385962400777938627310453755272631405038124805842962748075797042980255879478670381402900287945886796174299780042949365152918206869084053259155252220440546513631649639482722532809443215142035299147025014933759742537978078361960891451848291306939198955051969571576529650801621450649501343764575455065813036135936690217522761902864741429103001281801887613713965981943873070258463076879551834912081972718245939115002997578175290881231554329195660439749583786654549851570323414374534239979642253727336997129022064109674166483541512314841118107544530665330708304091122088010536961608294697381996301097121294991078449522637519850815256379287808485760669708363186502061587217808880442711781496156969584323546375012599257040259456013409429768832726375386497451081538010695013912027593389964856164770570377724986825313367701934437376884590121229215554999547958199272242239116962339937067720332975174938898671703251225036940907784597872850837671108815983270764499971576337403856438742064700230468451604877995844272847152796575725601776700179489396345772808229216401524048475650994321537831431435119153963605669319795314193097374713231379998935035660337895641321598945570369822220368764268694657781135241645774031628365237369507702789507215933844027939065201879270605470914122185008404665017691736719647505673739745278941080536968940447941184972987189363565514118795279236640449038388356340390079123715299532204137191244425602121373151524766199629472662278220609734871885285631752587866637128836162420277371990027590808452876943241890940807118313146948322292363937031148063269832513515868721180426726746562342397522848815355992217500090234951836544249252368498922093595146130179321427506101843486346983274166724526935237283451525692005124027879542633812110423293651363210620523514919802235576283871178724738166150595567160875287237282880576169677768271260015869763981679882892449873110388245148378460054475430947624314412893138197848856125094190218815417665533414392223628108464502959823708547620685680671696632229831218032034766663349410031092470761013127253677866300971522257518107653038644578640545087003850597223148498069393434529862610293719992328054853491929022499856966524587011684157521470677483064377918226355402935458352672663104028713381380057478939211529119028962526096907547605500911314293520078592323608793814923396595515361964096417777051000171862073181804622060207692844729655496630537124812942678516837538375128616589477029078124046754566295894991667709561684144654371573376788545837596195511692634052441216448605679955774067362593288702633093712441355408397028149927810165005855644188569804013206022021089953856393179696246636581626028578414332048254119126540096599002662382115092163194536375776366240229921470111915949050184095835075818832873287295275592732786745317256368914949643230426876973545616892149796046757026111820335867804489242830760078994270113398637966263315854692578909940630489361848261847491351571694085316903043620297208364273367866770771238349788712901801622269752021625726403452864250855675853912804963257133146318738285879229005247452498780423505362089550298008078403662421654038902968754680308401411642524736849741987632411043795480574571177082741184528996331459418101791948262340149111082409281309146112306184322875920727842960463010526505127382746995379337656741901710093225039191879442636265376832926394835485411734303278872932790627856484369412128171428905696847926543377003568357217236604465673338477245913112763653226707709870412415369730635054173913306553439983015397004888822224824095270026107224289851678953578631404672882003529031908451962648564224800456836619585134509211183635881062764870946740548587573394760232790443233598792668324780970107974263702309197583208556204555384001583062223510071842098175496204935634615693211936959310777588918043614784256997013953325638656310994200661324029309061223202323533671289536764048506667237808483007687209966798355080638387918514451725040345990922978095490226573907847839472244103687561366595519660635716430242941779443593291634596389972459130053727595909685542480409451721014659317421057787942167186945031117391970195749564559663603447643186182830716528064336273784361337212228480389803503741872558057207022548942585471075366421303769637627872288872125574470083715522451368261006158248691541831427808265865312332834692701346329208498770006977743050908916707626274143220668568538678317525415882433264469430893984016129873823928103078040579590355661705110570135098434833059902938539600713886235417113697218393076373187201732996557342646024532618540774773728609278108740505336719031933284793718444056910828369078375763761837700334643587955304178045518711940136567002550852554167177796157311304228249133417001834078011294294302315102360368450219142210749324843202054866873969096214548148349391168071417798255028879586420353771807199083797726951814516399735479216241153203583910498588950502143174546887007742709821163628015810760321581080812078142437949222567705319791938352832221177090189547858101720611307310174564444090929284893066381192185738410120308780699561140838398119068812615286800708668778486501547116474544797643143081495387005012704017220400855172931808111782791856997877125169874844432251654901313061370276157351058396539164338734758888683803596346374420367244181532050026084719281377563204414620377002291467869936708267212873402004617532546796452398305435048948386783602706981969059954329241349301891454940983048727217181136730436510772480611368610399098941115770861837648409898198891840638449614417003623846432185424419948175840798513511595721169975249738886731469032838230902495262195893681236626149699546501213314641423661448745567422082188606743974388910914854575850889255582653258043129461231642168676200883981455792202328627654937231935009699182486383336836212202122884996343144562215559026826107614981335232535580822956955720928517000245128641455382507536717902504674384582487030392436217034068956355305940962522370565060866043702046934824164155460435011190565056713441693412464582461271055389372045183137485255108029672165505341060043434696003788269408538657543485599013291216619757539483934853270861996910866179014805141699687750790577375518074462727212168032318395862988570491783807132242814384976284287905316131684846321279190777639269126736519354829912631805234913514397057211055475316242618389714782194287198680122830910441038897619634211618797802003728547193167266943588417742175651045673757467736106806246239616196208205030265832011563344107069999398204461676673993859393380970503782610647251325683888872833214767164359724353578549040576919459423813059856636134949452381906205716036513455938222945424702268411642674582950884210860233296348611786263088444244990384223497014347982878291541696647831660183759048032624309151277322592988395443813504847279821531972866403582931639617251615284163357528975521275176730832888554398866348859117170710891779256230450874239183430316149600483999362632007053162753271061773248061100546383184722263112828493422612992419351538693722046091523440839975943858532786220009841225904088816016229252025356812321126238952936575439208136996434004635801225116214510191178776927070232079580614725193602341350175693637806175825178484118277263810275019257769248265446721523952071035630392043685912727160231577712609799579529094810528060070534507916299070803700158454278868297648918580117952714242683254045092563850261390357591234019550959541716356527198707890312963481436824070630355189819806684513695852083060266721026960626138406832065423707504808655623893416850401249035353988865511853619245117749879305141496892720834437440033503886904811555449196366078137468863827441675361394407042082062502027883773084965795573842403323751127729400858424955370498701577233368264503041189860841483340153523151185018153400365808600362575567254830647908760472606690395432916590999096449394039129940467960672364738232550474719486987247492600870791575315984335216237679310979461764144217218571285057038077332801668307371267428123615447645920932762306257497861529621376348252328983328259654254130236971661678686566306493544896497856171826283169474641956505705978980419322776783865979447126392627076894677455931161489336028043445312186577549516448476149068521065106153866436481929882579210223612840553666983904310558309548709992929021171554100521410801187868776750733754907600223980963138610733707468248100426301654947278476569497495974954563590912649316367037826030706129447252784671648361136396048458095358479804366429797843334171445673284044714707021752421238555752767377483385996804419282423638991064840496049532625722886486343431157696982281138435023166520331971545011463724885770556880980354651386954294574526188108572865709458397111163099308885181148061460928242279286253757660849156999673257334795009096665803756353085092036430924155023744321700608292368874365983121647509486888460278741880314930956117698426482633425267209450144836016756882427948208488054390932605153067300165006879058894434403735271189202419437913178482860924322752750027147962764579115373026923652714469183209187064828076297974378033063143257029920050554917579132347034435523529658188946994769241644230942105545754301649824095760405221819777650992561213168944683750076466866524574629143654469817526705918874997095858915725497189660541190901237346869994548968798110994431276594859702313182989077330377054175693488606071507890737732510432801420291287776578873351719671970027300636256384618784544311381249199318199941888068447134065925236931718239656710551423242136510268629328305198658662539755841339300778277714646844778202875615879511260059145947012842519870518466823025942858294410030047015390705291878145277742725899786984100412870971216373304614581557721315617318018103920300797886767624447780813585811751154061636873596364930286981969156932619613255731780805477975142145118286526931462231758510716939323349392248065306481317856813587814011717005119392714796519686392075313848753423001292463888917403448349440669156956368732964831209817883243870029594118686690812783067845200007528701897288510660196585831213733189085334653216842056898891602198756238132344707511808017145399312228209993172274789141271470952080331323506997899057747882234431526215602364681890185532414045858293015856193590458357725529525260598906583124766408565618616069081030054161752208938959622865477607126791623859107825430484225858583257469141105965275490493463630456733416090471477832094212856287071087128744416807755791684630582045867212017114012308949311463860940435039183752706388253922158247662739088641839418105961120153351780688171139523422519062630475832878742979577962977326978660961023421168987528829507193050261738673791311041186610100737227890582151044743466063015898398480658103885649227630410698825459490435126419500169722878371647292767651127411094785699239571596609908806665835497816539944378807290600002224496796079226356171069776476460046818546073632157893189926284177739851007216023707323429536825603692748145501354475704019695990696652392128541408356116686621300822106073410552640247674499032854166502288086393855521711030633324374325954571827780238953210647282666518954063633526024095095465196428375918474245789029796844754338486394921656759328517345416245344490317464141639685891126313864228419837465305173498889024917594708224809654156276280223488932298871678193413683645530929560908960811038380905134920451786298388431955883803258569239689805817451632836940166675785145063133654061333037545510089857733446578784962113800448253025545885785781500268595126593610755881939080020885651005297655571695026715757801654555714875055069011888633834558316603598514853343200672145981744821639736503385633757876603959760783199236758509037044271225156689741958266067519447643085650200817765995279529429970231895250297125764174626909230951959298239911328961129986273483370197336447130433770529957387304683405239010978594900509673027464087340330493573468967579648773988959172959110188968097769384984871740430893605701790323220927087976333215501086562610423029444386091798518574212658620789521202740105803923458297681824660590873783176378499953982144324046422864200196012235426337970314849811819089829758322318817327542808467019898718869340315265869657188005576332326490410630835175571757368069369001247763277685118072472023089483728240412348223656638926410175231756162694410628796824611853512337450605843140988379768017588061234458636386574999638514884877553673913359366496008683248219016650050460482287788607951256874409051302356286883310203320252101393034297945834770726699365483187683255007366818163882792075433401603323241990821265752547851412334823967210812706151998269583796482151509839946431907235637552254779888066154924284668043192944127838206208622384400087220173042973092631588508551353213148195732975191733887569724663890213825144829296907194177708662387312505711017847953150276097024533043182539371824399323136154070055531629133158656619064033939799458892160127964032833678391852455749980991521260204464157092160957728734623423846433885940304948658506095914924542144504693717992530117503976617963253016242693143570251558281722818669780598384717994891844577310219406575967277661191603490952588350662500949014645485649381086875460505426429639424881308800168163160812918767996689719036398030056301811898817629775907091976988560235184609902721227889772956633889593337992372278997675343636229320090123750058279347087608391588734808197088163223478267765800265574962072717451349962625950104755459224914043097243784847630421486923248972899264170716744719298796346523676940225046667567739469001275382516710977139031792908382730022621120184110352664845568402523360098956107300743608056921923003457791533474812305335876887431935994993831292674063695600573544179265839337634183441887242871266237535804324501107899158577635635111265831693598927325995577563759437310323418188503879292449268712068937366128854402423994249422471093534045980676582586563457305896197467950845755775072158426731525614006886885528098379233795442549172072548447422829300122887655674850479114282112303401657226906248051375929748811921027606614399247949939981988662039523415043074164676606975321361429407385658439746097546432606213576600797638465827845308815766836050801717837446043697490870602267501767777749868070733425182163489240452600105646845669168786641496814716414281579286116329389531946520927102185522437497904667594279133063209247969548976325014216534019763684661510735014577388633153672364801920097344811178490677091736569952432604525609728252811217527211836753135783662334467505458889506236828998983669995185570170624299883869805618959708313720264239512789812074924980619558252300432497598098519551247443230978697772697202065924224864799224202200650047377721693024081752939558969950292575855373653760698721041975926610695842261348321062065265815468679718093005608949864362324111841052261216660267937724660292403460327823273734533542665857760667304183248583976016137741397726948044024486064756874939058393560319244897827720961304152669029944433485904138946089067718931297172718248363857197694840048697166217400248188203343004509538509500011004977656068720813619239010271050443354064558328842221819131478680025568191111780145042946945001955989747219766809875949147168004265401160419686198145722008603045166395998384468251017042314821012787733565114658222050050252368353331120914021826750397845056881630592012483220111601492440897092232071477493598144416328320190209443560680217155047148685393300664580988502667229616764467647201138499409523758605903316959490839135234535613620989600899099359054141161588668291041179094965929685926766476563218786217075601912784566106687193813008033583861253223949368682166701339595089753790516430016397855046920159428431090192697798328245557594676368680165999946952677880461904861459253313917143762673787951086478981215032854865800667846032724671353288754599584436729853173268012029276487846096228285763032712282165405792351912950088331313956912881554175316308546163170223730558434643054079773238364853292070841362568267976862440980389435883231999646892538989605306604295537288268150786408020500044321150852724567255604438866084101804533783076094867155010795837050673081007866437902592465585459387884437621995034392456725402962147666789151112371199205439503700634803989393091388362996129205856969065055014288778546453640248384068897934675987453434232068009012482612966495898595527932036781708777493536743023633331744402583283177242697458926353219778169110538700095332525092279430746547164438851780101294562543827496736210695569766234112720325651229660187521987897055479856994334581177167685555489358819279265145021755754861832330512679751312185383898916073307869916778793037727804820685852170469456883809628783575044580470072904097536184644046550271806015323141226806893526582056530324642711300592896207323722709776385631504488701020566134520032590441415103858985054504937189312845679392143638228858561741874660807424654139309276682855376121318457727005984464000208614049245575489303744285929594317712295857722973005418706986678785779202301340958257124989635616847805365943494682572123323199360677828418875031455896141756112139624430607226221804783799153509247702960087452419561153241744846445444767262205907838253360305576444661695392464434164573426722252006486339762384834288308264550654843972805162804748866709420110494503119944092713425479548131753988182440283022800924523014135909713108640504297663442554334014938218972760739330439104297222054972747928957271617706462730518640832979537369427033847788587387365582219812449983717979383278018203266886368860814911670639984672100821853945903870129346916473117916721844855597967968070462212811176061425561408533765224394621920117512858228726528204370051616498782732464576321782625826374659030163402213734941009812218686093971890526402850800942825495850368949915792129825135212664281550270433765933074613908373975856798106466933821549283334869002836338693891863019683177885218446801282973541869283881609036533668586596816619652121084456907028759314154026934810689591294672516249663926483107108856666446520622116305995263588832042200435796383574010027931709902049064395390773841075727034736298222772680458944247517234468512187141781916926260159885924639584996636456946666098123434484246792700440069523120602723972438316019632966100105455826359989784797528133179616437613438956402308727403065444953215172629213347543887766145765376660735381845404242653937523992034582861236894231490237236726828608998853392529964693256624685071890741330921774786815254310699549667222196868266282371348750306328891848410644896407277084659478767598850645247611231447475293581091825040356392498808461334983675692254299306928767418449156326495729340728787486329271093160223290182004643951503980701411131653344496941690587804379732340956631973729236174097437081772111727498959322949981130878428232581021248162149918651473036325869240574549014475951908990844870637937600148149732305335297327998856964391042462752682804589668506524892599544920694092307895158457012213586113369344210079419898620885042654703314838039294586117615743502113466583675512006976935158091111833632689528493485572279126865755591477840283084509284987961297148412440238230301940994183335816862615275216961026464030976156630899100662243043471205247997065078394932591513202266967011339680242437680937252734964232736313017822909786675982538835398086994268466993682035564762500885127176627104380219225575181814014818687239125030608031304173615623602656796151379516003415655775953969332019760031583754469642813179657010996340066459107447436426813056926947802341832167575332931588261331449108119687585791256500910248155750925276033191499723686043675052652293124731293682580959144675303003960315244257154676440650069534352009227672537465994307627133550766094454549560238080599104766241032289620844346920102032426032805312905152111908077955973568334076647048626418495957491104386969856881878094615747830296976390927480356532103627331654005802925901237792441808254009491981360869693857897539152473559327338807362534499843777601592579813582171337210338262688282631708544119540080015428470194342956673236280486578751527167266315359579294029681983430580245045340564334739619294273384956230504589793210520781203246324765743339102540732617464748989691415844803786530982341772737632124065284054535685936050550367946524899632304300884351731572801348475490092242809293390022177940949897735611394928028402685645109967463689240158167449154939157832177239056350378785481238646257202025908962433257699657149540621286412418362475498572586682517321724541698373117838794254390465293846369908158518776372313804317172553244220528211893457882659485692783046507694056554546621050939747417169639573077472176310991373580965723707191368141665600440577991220951529565260620877350675872726573870421622478332606456812958896990400306038745389242368184875306260323232594972092276635716721645578719422963822282390957193938477112402039053730453055937986550054475806206840956990687538120133998526898647415835928131994857571163629515469997478927709966745999241009890220593070782826172050462628352882707017870840781653728500054482831811343766429238684677795770211114854256350466416612652869840894924106222467137936090629741905555600858996387343359136415765068475202963000553566223305600737862481210702676128888015788074828971672524457133505431606375612540622220396877053871180550794583771628476343320123653924338814300552182426819867449867328702499223830404698260670252679041590229490065213282413506594903957790729817540451297582597036981893479948722685097194144499779261630767939787666922204816504807689493666709062419491292756964663648307048632696699513934545126474448315002474171367223285986456496582507615560616614343296360559311067521702144669826744670273294193451145321710432187851305467647299807817029774049880481349203831935602496582527498375090027077891129263552355581804527501123764384229289213514344350706989070706291682505486057273406570528656559818671199368168192788524375927651085926308780448207071353464130925415693885869823898772334799448613798977467167698260596954618383085917868543528551469602188332897445224460222925709232407640361131674818852233416287643637566490766541364438098994240206923994686130508328972339864674091800963165786723964856581954574117532586018963002839267303818553935683736360800776158954833646217273070975093151802537049948656560236553458844981722505392626371812542540419964127710083238800132822703668537345294908969741665585192017763923628711994519560399820449706558085714109852280190260809909971543103094640210201287706331957165653830040904525368990161159581628681406774510660865552722828012248563945643099605328418553042979089182789548703131283093595996655268941100611826919408334517294306760524185337691614822440971413100592830221302429101614099629037743002051369134659729932797876335237763662630379802409099373210599387915792653812259673116386363181557226260067154350677434587614128264955114505652370800352964936963066760758892003692349062666718188145802490412903412243690433506162033776249586359226704531350962504919766270126811821379214681528971730347606499101755186880691529827050688885379651145464616685319436602280944918620566247279183270854831981783368052618542776921367958271504763451931459378216243768184598577030104987856321213683857435430876293591513669178866638368904879914549009774714225104855136954957661663793460110025599020300060805116472912014016980105126915139366916790019366284795147270230782752522401300659697778134455300559923732906697692916731243690037589080330793626956346936500908966996862061034501315099303701259391026410455872564624195679147423447280557606330237694373531446587753006798700542897442941641047143200333723875796246229011213166268719869068261857982944310701033363590363550663212493254437693159312199419113539431395491085041484489255765335693012771211456425353313309165064757517746312130070766904518981211362192759202476995705341579428668166929637125358186987736220656936151951122438610428499031862405396234987670202875719883966655903416876648170727910968659886793588541296613550132985907226359116979974066883727689268833527961302069748756680449080857387614418443774986397320710223919486049824429402002349713847979069902367582902514169920648758109164653364586343984534590824879851700258494953635757599667425806018411755437065849842163101517219286387254942023122695991994138164347517575771792932714785441640290299616152765746879320191452834863943357329032099533370275767292987862192590277339080608485646895747219203842174572057860474891034890200957619362990506251553201175958840320560631746298061548765385198106211965697490841575303567363037369508048330670687771124867496058929267859846183825197617411108818815629895976453413954473419162903135132413188843604966170977936163163399635308625683166791644427154983552825501596614194133756694598045613916308504892922441965943774563307805574454907533128131441955502530097023906633764695544250975332310811381033966235255678059199866124219544393854355271251843021792502359686920752902008606623298818043291520767252428133573022527617671067495982887373291247170720813573425114959730537106329227196503719498868717259871724987318837026707715883862867211389052192969550664140700869805232720873082691877693609303882490096789450355227175617377039663916918666801774947238638444657312580897213288734574492908141144089622023521847356586068297166277214926996129371829889708749715804244701869002154916439538134513859690319163806708753307038122321215800409336138247259565322095533770308414240508634027116075023464026361355629966746863802924453439055824611430122669419168662391458043579048456267576939206277666478704843508177436235673111565031304383043975421671545070318868667946299802759653082550598664989316591116560992737682527953171501432210495824578670586090065161570181315748880192940165649180912441964028856435930710325827336667307409835099137186939419768531374109001269290107086022644410938928006702294060073622499673809605687611330238071786080231660748077434845365532591420511445587630101575237054408862301666042108886694927555342527626837696518662075193575792480068271835204536899773764420373070191989891205240651599095320612936676588648696447694461887871589676491544124565475760587810774596390693818552610458463260646657103699861737058365468881497709001138040299601250846602568988049919989542278432724692067490189960658990586075299145705128537978205698379680539067617481474143276974174662602301865304488935895732737688766478957965439238459553044803924441859573037912419521039142354652211353961057342592675367323171810382435149298746652496321260735403474462205588191809842896202674064321547814564748692022758811366417153491830291557977817779341654635179394394257748675426100325969242873066542037659294866379840985438972131520093462513140161700342925222827179766202395550061851149359021969491078712691658145834038676338377337812328907993223094377289086735574643598860762109687104930418515171150465801745538393809781118103198430104411945087217065737189273337082127181043239020748765226684355078234715255675091311759992064648028837890086027965790302749395460075802406920797498317057192098021771515751138099697653002749701782780821170831617670867038832447285292511313782643231207621048406602127652907515648395334243741597736483249889439535420653713805579469005812802271636061646917769755320768896406014098954363991939482644418540583847037328914304532076249482657451861955201042399558701263769813996748775701598010039019036324952723016233186232692527875342353741454795949546715015621134673965719548060169033863661392805519141541050804805862036868033025960917491249495879027176729349166377315589609624027742915828946828323113183963033468604500090516000346986397919283343957399038434912947358946577841674866816412168982631806972170864795152211530541361679136321760518171630219174877113849131198245648736873350094427696974986674947638862784231171859110970079491028951768963529669682163303077000306469537504930562069811277002898666713516384381136105529964186061784447998223277790286892902923100532327825179234526161436038448419194088802034054982495053703160716772099750529128849613132734813889359408184385711881553197507059958296464109691250569573143890112843477084601218399501028177337452787244590052914187771743010122884096165513075788852405644167150909292117719639175003646115176410679780763867508495337832897585341591706074181665904284127187125772541121775955336613900019978448432947448904043551930370355693514487677727702862548268750098354830818005903837023460415730295990924263938494990402212752628038612805195215339574040464646697262460105580832321472841101039377313357013992133288199688817922666769841830345492610429606323505617959021060090799022180599604117575209666384643289480863014947650636129206600895598737864330186142750368933633582369006053621470633992097697169414384485330271384607769709332440891245296914449314633709029958702251218688268605531804687748926315447146198165951219228814592701839528756746942071164574989925192097952918547025379180027215321699401649182107470411739901979761078886187922743764122098341169735042995545348521261413371435221754599071925204154541366731625631812407837027281954212177865126743850965565220297093884410679566997508019051183048710993141930433597250578135051196634158818404984842715386428993346377917172477938317293129936875519185686527622580106241736248129162609749893101687418312988834737484893521194860202649386889891962096097812000584264631922777805745780037069741254397905180337542748829580325887816616426115213845377535518421899754429815208227006217652202369118184320300248187903572233514222979517472120095729761352052907953794389071551325403525029349608626506234878320580098983533473149081198391779962654040044808737802472264790026917572940964613495550447617935185557584984270561173790760847206932133769766991489421509320617105410788586151136831089988089447138230634833692568006511417714740084071391935121355048306461202354946210802739259920203069660421806391763108655530497523277669460197386545620190877603478930645047577440288073996305355028499326229102806739964104636559423529591110500057772456119506811691348714763045952393252449872749692841531734045538759450931506887100828678458511720955459110756993125710340263434202226042288008385129190044448672883574656230694967571886346202899957539086244207850075986110919078370613824120625631377572244357151240054110823325979611916937170513345571288631241064371629330169283294659352938847138205403958643646566664549509003977637622952982315831040047157298727005291358459874322255838739992815298194653355915243100896651410629404236949357761000440103014605640466693956516749458465623498754521367551483365257559499655269939879508521649941180265632658342331571504851836024983398730552303410711688285629685074257586941827730592847950182967528675507267724881438726051891777957786489342762197847760929758974066398011390893660432176334524620010435187763339452818725987580023839589969178507953347747754476442268409308564734741574555740065387499360796369121230305313074309216781189083345739756035341063720007800159813863628603102484228798967027567925874855014834740283517925509129980131250338349928556636694868846376354479256149226917011331642878159749537946446383901602747855743382700673730989691022307973986967340969871103585465977107250868822961851812479916568590041605325516177965893668166684567990597424295817749142061139454656949597320529851061670149084461433040567633047596186543910336864718463008911323029378074630504045424410205957493589383693726162400188860561618821931277318986944247124208526159254152545803956815348471909399523804550365787107788366505708689297535850721208940341670733412994892991650569092289586603531509173582784156964817955784577564519009275989209674464820492302572929290873845512100799497778868097227511010359150770829457113850363505341555093022240498719828931811888063772553623256206059026550340901635622865212541435852806569687570396038768387920473206155040355094479509323874931296263329888864569444246888872399961362240090393629636970174147421391661994668574064522492379864793705428002950340634185563329558411078266129759533986976767048537189708520468393516855579196714818421952364161836211176409748451179762542350859330946368917638749292938985986834654358535005780149733134862986516657348506256010871998997367325134413379581090764742357329853502328309998073983897049870860103500861968018737447959595817071229495988254997696419352768867493074803772349055691077002979666913877991890566976833476031485754634720758034493782650682708328399997745728148033298635941181568768054919897598575582770604250159076684291873102974015848018888900160637731281111218126156828097990922380553665518939612191332678462182688863792902785313673681914532359098249141079547675885822960354115288194472995484392742705328800780515712918326388922248126795584828940212387888473572277551981368127405056448093415235696725178453672569985338412055299649419950610320842293716090740695989949158736824013906495874167947799340965546116759335695701895227091109002561169753839982930915183445195315171284713256464966290124126314450171494887035211243022674788504814238335761876367827688356449265677079538883837152646573970735347215056628843458207332069945410397017696992415924328802308926677538393571140309699969973273617601958330944244777050198899722805710293365414438877603997536128195306985508225665553050609007207851479582774916353655186903369740256836308163210905301673123817529136183508599721961977119378364723861894709106143313550684003215359081437295458175088006083419841678634650990852582274976546274782713530231318683016779449571389991452227647292139936935232266861934443985146317145480725451420034350070207583620702209462704464880613163390572130591681690049500054877307515937064645720212514535521158368679874428312891410964341829525068595239833051757993540995388152912762299782066702141704184022945751613473438986464081285644066416717804264891662559161452070309380592585862616106817925133825370428459637883902180001519979240763893751658291691435306622297734009408244774714258870897352088177771496573556540350627462519981350173971534338921778749580524202158117271615964146695997177491054678070489361498009326857248295267435681509311122013992247827515000945635715362405672369485093313110970906442094309115771088225390965712161350143975023921150015330324603279040472245895545111791775374929791301887386012340585310632369621331629781882965785506857598680556445761800610008539084693647364861363911902980086634541321114396649614754414384096089760553918696411081754618911075884335250864450015249035141806602832914228435828726034053302934319647523188537513211222542509669731741706988122681665304989752693326819511003407685850041041076448597969656570180638052446589962031141687292167733233094934734599169086876737239898020651949821510722852747771664868151712060317135433000359391147652602741769061474174719857354495120528978585668565107635423091025699636017643333032465058801188713377340387358945792196681363688095021496000158767114719386108198091813882358673314375501849196982496686449338918216286158653666324545701963550417431884825888353368344022736289531560288168676772630229217162698286057637293937864025269649655704364977351410155260819940237246190725019334511485116231502221740591902721357133652719972393509066664651444993728210274564948573005099627433374458570659057721344570439054862430441376406008585901958614747056763804140022752586026111615927231778956376652758202870151092126221849568263583363117363372478115977916046318354201569555581083586947062555489234236049932358309167974824310063755165013681426444703236220778553504835893515146450501049366035262012285554399409504661633795859909498768579541934829931870999458093089428754790654683216483902991924802498257012383676711016158980100865211969930227174310271095900777906186824232713727550629333511541344952310146904412669216406077553093037031346404662789502913913668330844420984405015920155378457025756738127689213031351786781340208526118871568351437828143656638546142566526311598240730711757563531665648206334457381675453231885501334413142835006752669872963123579844974855179537414283065984746141360652895394078222593226224268485299762905043896822133274357812256884623273671358155921794455352170807323467099970684458766377293172149204925818479630418876328361310025465298436304658993263436974628678773267054014871148455729589552742971340123187743306111924773785943133590637064578101412272577821765879743562148158721151084290573331319722652761754920998871223935327337191783819816348260661916609988288794163159051004945634045551239582556646878220194225885972186276035573390904366257292250787548414764531852979817566356930932828030966873801627426777343657265824307659546515093362787860999735367537587265414525177425999678465879624645322226282693311510802408763684073107804029589442312835458586940021146529272758922261675388063213256570428071630716367086682100869864814993473509696513523889272294923437669080772099416671222711495936381032985268475916184579658556688136311385293002339889908005558837733921768484624476967590318058829961358424374079466224596799955940224442886936018635575830646192742853296182309925988269071867053311936666137576448988177644357923464574161656361124263192403908098171488451062963873299687154554407742869065598766782094916520550435280218897543541398115966977007213692405492194154605526618962384495105612173636863336496791709834638663094683026223735921872496416218909370279382334548561012464678633307550255157517868074594633669800185860853984591422110301817658822291292345500727940346627672225274490745629081081116681785180207159577714263945257022658607558264554487729640958498267978820296557779323723433289151290135826755892149650583425360096936531334030664360343234852034765429498647413543022837217838949923942227903401346030784033788113001401629134486577671490404568187021240489570011118594932759077341773987285673265994977111246227428056778113508276878105651769118910914953277845014720988870332060026841247164174595380540064014004014476467749043112184337574837754837933178962465122526253592132783778315849234130424597764982530600400123715481595789685346007424028427960424064484562428294674419259883187832206969189397146656736889465309436111496410477166891436424649048804151005100418685406575354160580544853085208511781803534948913729278918971907983632995788203917272167766368589361820534202738640260050563874705382554390073011447295195101187829807117372961653726905789061030282263721662487128566008171984151938805034986995630733115022784179148194888924661730217684057907794294245590879657303437133508334730720026238047750801975088364184063650821763505813172870024106710606474384367605162412186454560788021388676987978003177488282357082311118650154980092966768157168349598978540916693129326990935098719089710305707459755379718746081736255241013675180222426958619532135827166124559423254832252091716406808426278374232997983185616153425871797451750465368850579388591717148006576466905417904755398764893598601384022083323413668872527968112282378785038603026217174892194693775171115475169803468344580255275428100587657173950383788064403371455164791012658186426423014501992785883922361176484989476574899110442247557076084859754838532049303237346413332724392756251239593745989039063077182030048082750147028278547177123333752026764033042442508844104695739394333072154016399459322989200635725017677842540016785998586245500498524858335462544371665296318328932245934863294250035973098293774729270038545869083158504307877310292260089216059123983492775423063074680801065414490271173529830344543688068251833483434645999451826829769455245977642312996406530495701028190124695577549443268805818614463528376023690508924013533663019354822382255166479995714301046968872310028056694887139500839113098270738128532890517791286948641009225959537901547334716574226928625681032495129408609671597246964376248912046771913559525725893983398814145830958889940180029119208997827863765826924141213525752011785781803160984570747755414102330208626316315186091340384016679614503025693069939337106217671679768856195223987301758973767105404524339428636363779417481826820718032408509133164232950780759051335622318213510533870054118401259049183391315764680108102904981638160564704757586066860110660881722161594427144063668867175277814147386852604500293120947168533463509961797032243116701953514468679933755095064904403130400773707201692543596136072861818874214411768686668584364226972210636146622680613202033136224205426278316408743796286247952406824363701930354180764766740485934313428921188113933190714253237459971710310793930349040771435471379596312087430064104777138316476226217000758937244934692778442482591666271762143262106263767239287071749495121578242335297483566426985703451894372386225683416749123265858374643565000365540163229987681079540394895292081153075466962401491230577153494613097499313868692338058894065284287470285490789276681073767647711917002002757097975357407355936014873692356636729054383149826957373378492717808326216614993129337475831160854983677108508300457568300559286684133311728373042111530325162637157552127794791631093405947294369331950788866868804984673371706341728369312015688204326741910279280011181544429285982604788441077926389634713767668212161550572311818416717780104873249737482560481453219465613111232506182574045734915266362880126388218416231696963250949526717899771168721374262990280674896156637183998241921069596819713702981527216268717883401423670261994554730697462633148773603686396074425052911269474441513433704856125193322790625268275783391542547357867885145400439913097359432261269293611322924357745751607647515985355107162231761292129344158071545897826099893232390477470679531775967458598792801548742208619140330306999774457856121492426437486114741761973181189197549532147790083780333331214216762896209035436391552686601141612817819035053184620628843521177875628620333692663295287813374892878730050622169534697369004791294360920498931193369588545412403285676524250574484850940975400424704118188666058444415874859104244007734013885053214619356962825718600413840803105590038140909891480255102326656956290303839916683068611630504940556345816582325178635425988380951111558622314602515473666151588129175158468448862192804252630531125665519389348479039867646705723558394003456290170009692390110859387485432570090285630629308174370244048046278974342401466128743923611576213351125813167258841326844824104647853005385390070117257343234097108965374668281770621765506491928439510486770370660657949239089381259568552672189437468901091871395750543692873328804998483918181810037966433135687139477345066204047305265503843287798743723776640735230554615222423516769132443549726839677745687785457625096141704652786476612191538574768981071615256161482279762789690363538051273309431428976600500739908084963947374124178509641369370144046901826921474506783725762251471849191977121890274423541685060586770695453901276575295213225092945857933545860576975135358849714142565378561128587309357037775206434386361084224233566073804758134862353711053572668084786421940463443518318507475938132561754232142226077138335747691646162223524644751247487435913892273988378462456645733925816280805495600800797863293303312936734365798068702959279822495135019746103576593546354738325819088783431044426037612892864515265515770515162164372653636789844333554773832431926513287345226941999396101877808825459570515551414623540968497814018488962684317806720817780635175544052436785097794121696582341670012709041289038105062178082392429074903144872355088116023719367708690994257851373964951635727712565822064052867288574825158294524311183586877291911045026029131459122679914692013212336212887402786685187760382287067729240286301394741947408137909328327253853150128048514927644550578366996627308030223213689593652118384752036273901976830356771952293350320605078647782494169714092880309283392299173017966313273636223811055028207410991853506566904413493757491566997064623355947455544969525983346958471332982581782019138262297211001050784855554365807010557704643299628893735100050626424526677605208984161755608940482383326399508888414957569689515412381813268541980342966896702761784466229680422235911929014285901254689161711999689274498102118809511129267835327576662882676906716236589978240700632239274894827906877775484203211633912108782825758049286469272620309315635026992249579739277449025620908635959576365427087478745132787024255241317272470976200187298221292783793176400532879937895920697918958583939794825849416651522272027740832331553710464884577772252914567420590752318679752155462038203793210013047507778627835893914560947594891899102586016007543565173005519764464481952804099669399800195953700164024382480731653272829317306531951970509639282943314323980885392358629730778712112245309121451186761780001726444064749372048672968067479312043180610154905701377225007246398746898015625413288413734130910788201994743012729954883507207626478642798472164452632400170630054057711954308462131144045581236156486733216458745591842622050562658628532474216252339003598935221488916243563629679595039728479951700398814979719559535136962157578475243203625283836769468492802563934370393859780023524321923368367601427933192386256691645481715480385991877734076211718112071962459893309093379831325470224683226458925225931751686199281003271135736257965361739320207054273097577788463583596244239873996580360472106885365785377333991059777675103596289368422185984529676194342819280864143111659021478031749799266634034859976843215563558110265042800558468141813317336438686799970279772565612721858527728250339540954782524486993464062749700479968262860886802090225367215181728363289945198543670707681567831265961921249557365479586248912913514907005472455986324110929775068091725202536360394909351070241088120999922651784499544339624368467512164565873885766243366413903967770128566700870716971665060841051157893307054039528887764847093575963085067762894698213976012082549174329627377124346981505913908250461829985964856486512707139023652522355908271252498647590397548736716812650407234343101271168490980409144387845015227566465044960531672592383849826630575236059192561408488610937133513759904623242779328018057852001517711856613601212674006543548058860578747929524548855968866317797620692760031923512940987812270443012311722414655745055850453894356729203270539045528843621617328027218838987954908425839061005105000452489991356866412624770696868133476447291745417239479177269186060104416297257239949788379316400742241146436978622397721038560708907280333036407084317338829426680783153478972071674047356580101882611442650125890050648642973893912129183835625357141405272366501283269568509605163388499786176374850680405527398915314773794970641135424623233093864118870528731476369275391742244027746724391461760164713863353406862166041850064706237646939768248668035170423385069167705918154766413328409370469772340825543100472920838082433437002096368687999562095552795381366273001550569417626066001265190773423148292067745614270212034435333426826560796588735399682151390641982792575387762321647347194848075094833701770294482257713386073811330561596452153862674319414269433034555416930076058845642726283284600247277465643310973665099259532867394761626133408736818056461063063114643976047773902806506246608632645512238453729485144206572750008302804069800684735346455260312123616267427407003796013448083905361204656152271820959803437382342921553073791892070755176404871020381825624237616506495882665073318419199465771263537199615252034871218164357512909032717182655467752502376127580776019718929587444265376366644913482521298155553097098060558246636620507899273869155226523470608436179278324116503546310705766596964964620506864619887324913447801760075100100154136793224350337365381961865009464628786987224639952384028934431337847245260847888934925286232876515045400010788860131487074258071837620820358649215460672123310757438208850991969254378609023512756422662626002778477136119816045545357895916507461854292848999931547361041072891020276093181908786823230137569851383253889143574948073685876923166305181252647135464403999542044771614453134022865008831656993206000697147456265738326500098443151559157167621986845838053069072892509594947481496730533476820653346396097580977060651201321751835222818601469447644284354262693559765935407797153082409518002994764949219577733349402073947614315810808534932592876950302723951676245210718743064750803105663585927902776563640848468574244357002460222413833435238053115430567186298009241732646594149813283735058902030538464302493006699053618175208338685493722243982952218441034717230046667652957830997839313522572607620887530720569630761078105430919034573479162889433624492524571171174722215497654116302082487154246421256398561813824227478872616831558429406564333765152334294171498580899394363649110673344631981964849243814411038577620030300885898336482941254278638570546958496868870041194734150765591358693632062736978669633295788954876352643090438217450824482753058535825607270419077634415067022332385915819228350405902370990602042916563044142208676188970283258635137834312702695954264345239632587038100327603113237651723190721108889916470913653101592475611522867404124510929206671182280612071723561810470077419780693113271022988611460661369692750835109296871683783990517074947404919195075614402882028625525689520353039004838973740931143879160972619150248737372223510132026988584272078958393097648377060668068694135188215503729054304081798811294226916178867477853851970262078002408035031332723319160943235393019845158408580807900852392967668094094043875870505451591162944140767066384020578000823960143205666935573625173845086150868396962601867209230959968615328157434764569321918984510299891789165047242284050369388670891818339045300114814353535545296936006319064897270995832215160099186142411445563687259239761364817232194928453692156771040910604923018417253905193903306985139437650903506715063870044375867105609545344941414299854870262903708931671507600521599399272293571553934825451086580032538098155153184820355226637914347873797642876441802566873303590742562138473951714276835260765925154952333855084251215641138792913768638979438979995426308314385918738581115387266485196445092931961434602615727028783579790419815525757785551323036047415853112763981014765428372357051388639249829827287914305244513530175666657149019130370464873247165789839574186938165499626305643946201392657085568201700195083787948578817322579292808018628946782587466946063563556395591175870942357812396286125719241892509331924777442128553536844393317895266558656481311469178714691771019599823528535368022187446692082759089483166772156532988349894300344241858481459575682363719440349307282377478685118670442338849483391596324246138291217813581702363563895962816434365564020291659595055978109696523409317887487595672548082437177847973390658005195265790046992639134579585588687992959984684421471859955020111549782243712907841463363575079443901697604663374477300070077793291680553667667395705540568995189066037597338182784097076473710077025512059311686182402852561472999395973422820270573245374242587882621562647545501567282333737290976045799130037267408317093276765886924888353494601360958283065172443309308095736330761108938238362470406149773781015723226355407553806345360096149691450079991420355616742357737365991817843770676658600355612651592003153089040674295662435474982349735516022541187308239525208936648554609194375119620030382381038255034282525230574785914050744934221567787769074320394494804472582804211416032708155743647602566355123672054034339665319787938594137440220937844911777369539205138881091497894576827223974849954967008181101799075066831478665219136793544524954791843743615470481721331557897629170464120539664187366449610848128514957761733780164775664738840616314912005278241581237294450462176206350010718252712308114903370832755444123597618820750519917972920926911687656014882458920911577191242263362755198964848072907443078616876230337807175179196638290397199111996415463264232886782425795669229509347493782400854477375603474909521898575019898816685555761592980261512933223437365223159079883535502505117566513251854749719565189535807720252075844461355707308861193010259721048179000148602688672007626531882658539475664521602133854788288778983959440967977623769883682141778205195710067694373870808407223707165959664435616862510182692150214005846667040369926220102284405545311709756581240218484518579780497537968533968010136950959039959310535855572999977199016103612630049328551876815812467925059567171990667918913948018393079249965816770257203042318339911883281155240776701119770194298952430416662149769008140448324576801901956789702703017345593266786347665252963547633130636600812090402617550903265889110044623231129534034869521811739202698495169756563553511805731010613859245692594698942344557320505241954558127464343066205676657902264120629592191132530558589728891014616359516205509781934244805051552535210238688409452043086642966473463812889882847121848346365154960053681023561088193028751545891226417447887451769067215895899857731521475156041463990627773980751378442604973066370640050053683869557679895608022733005628460094715955741649817784901542802453480268511092666914678892909428890759059570905845554556325775612271764916468201294080945264277423263732679669530447052674196167678155708559489821822712963737780712877957207979292631782736135184206016596122217274548831301932900255859058651463202752986916278104178849396599581408050806445037151397538275815126692253002175218062533772134488471562922508771076569813019079055468782708826988862820679943644023686618600867527507092840228728915510549678921106909698623639531936245147270929258090952091286470088140505845240746575103929131301820994657100740662592704434875015055570619737339128117413597156317830144428787870476015768896232498513310692280395634837127957159281560747843130159553608776670303534068877713643485956387442539914330913761744194022075784640493939314285101623026677097594895367298487313416288570719606776092060993941171970133668524597281223944900111178179996652670572823323175411594227112844817017526829066164562336634740196681912814830571275343049411054978997636653962631434699229877328111546138373792635430177094177952039316165894766413524209992994874010955270544124551919405454633152317790870925065574553802711154292431808170990709546345615355811391390789974527279736506663460915711857827186870665764346462959400879700820594458527014739210414218337648519716532699924351877714875107546820165446952037332947922149481216910472978000810705824139177636687733570934139492871892376460784688722604755986469896068661469016609639950205071178302667082170786433924896375883150041533494138186373712174573473647927775703072435071824104819401286765652511835812975205538901008910024646396939926675975992805525278351200793348825124158057798499729356766819688730019352534985574198513307181236227007563101003861664359238148108632731085211255410853136290922486277138257103668397025420554381197718849382805997233110442863106386229490762466450686378799004772405856642043204081648638084066918846953978280024578121778353248441746426453277714140929547459524744041794423163349498926514062008822024156468220351017665439329626372667444890506256699938114957336829870491096001115423150905331562892005461356031194602804546608505782755781016058272551641879828973936962999563524829185452205735169460309260930180845421053483047600869605629862397898735599871882715719115077314199800226440956702432892382922771527576428403734973975994547752504983382816266069229664398971286018469622359320488963046441283094236777387810068810952702931505299646105367667915569962706647768679310083942353434012023975270508671600161813618729969146862024533455877620098698037353911697002668535555472184975385541012415271833597179567385221984351117982266481449765377213499664086905585100919688377495497076047495701520846617175196309952048361046614071554495160880917681086842091984524548433973488329282748489379248159713429840175750495295959465194499163554541718450569431176128714193609635173273288287766673897151230755455369503869159716910407652026881162914783447044565085887672658779821268604421150010657986940830736938835065987871819171959619987188449898451568695917364816990484151017272631577458409822011123096078197800567003207376008583759787884653759271653765832898964933464491367201663078374654613201210971246840196129820283813740676571716640672381342611333114109911393804095512222776778094628426744920279858659996053172236858621327454337552895260061108293660558166399588588010555122898393910794058705106998900688562141075081874077500122759317930216943754912408331056678968779121558196854247869544630581170284472393616229480113557973390908327620928697673995619453286147983999428252053309989703684671786431956805140685570593127971164224287907599119731915320184202085258080559378799734087504762130482058178618842609909461364744497122455989982450149610991147175325061875574318599571114106823926232203266730359049007037811626870537743256017841738468897443756871762992079647838907364887326077829767656051223028947810755926957482790342414311217331274422680951140355437098333266266391578747281162702079403568767908791302903464666819189242293329924502323118411450521292957206568345248453906402278845096954885715123691195666882730161850697239175710183675226773682005947443339237378027929731052869478577372082691440847625814591670495745336715660959318159515598659367555780193560840826125224434787243653464086534083568423141853592151877412568450957899698942646212006902958254911843851671906552896781140495478819677766495564433954404180067341732759183277352340766626619676020008901303139420946507465707786550590525017357566950950864012188155563682668963630177792797586247512516480869393820205667195858508142689612031303092099502075572823118401793173377538452190880695511465507336150053611875593661381931793838572061345922710187285433492488505615313962657572392554093750574815919537717901620525465460821431999684772005031079037672420514217620530389556229931071891299400936023199803202147685283248067556131346777895001245557205110067249298076145846025652542564476410660338559637059379900555845279402648173558968399137976619284823408462163320017702899844868879507151092486388496322019341380834363503460605897218460381941159955645775033178742189505794931010453884010508996682609153603915181897968932440258065712689008398853692610516865506307894711782575511017077830240103447814831362929201940617590138559285237486855394549366665594430001184981880180104199926878396290404532051894323488878049309622561292628827219646287212056334744314900377793281274920559014190908874715086484749253341493531220023050665046159010503263886220199766149768224657225025411312153885718642379651144746342976354558117894330461930312981449051337658951598014897029749606499824416414508814423632357775987875259401610671611496947188413621629506286180307662552345228671185790383505100723806824223732447165525424838353379866707289182368445160829520921149039050364151352197874453700563192743674560344997371375283412054519470456708709350909332428979872916042789980222568558730984682819600151726258865929069019257604102986683071332776209340569532892679196709599376180131495324033098449674871836609797393057510209979660085490945063099345651044123268996244304403315548144047690007546582307532022513645436000788130338300515283006189252302094401750023714497586901478426479453089252435546683951896091724333805303801465168359662814321939077114788033056120766266514597809808951603898402811880595370410864439828660636427288804146301591597531058491473951327599428895291554477530831385504282561983858836496057453254859603867543956726290010671010228235454049225580079544539372312799156390980119783404388327482322094657055964957022119356297162305911108454502098603950219439337228003471697810001018621440286536846601253311960519504335623753590344126663764310627296135814531090503324894722981775287960695123675743440261163411304465575967292339456812548670934509863170694732364067157872371963402047344544800822598190518484703150031079639701876415267395927534017753126841722740475982756389212749188914694557046895960123083432247228971721716581239655453229978041651053557398478658366789289710211100494189076915083218653888758170502568226003251195564236810390067111773492288425876312813686649928416953952557033930981041707956339957815425976026219918866421499999225216294391482798694076561656215461573544164760549084714081482625498006104478035599976320117579612663214546527227850683634398038545116638297257146653181597463947612992295604312106510053643173978378001081275797807672825910919169682681695861977547202540692647913810322480050068978329069745457875944221039763452054658190398854194424672858699208923549080889730191966288586913385265660260516292718781165079879254219923273929442510038799004957993573848351145724924160530160068079189134899347703581898659544718014958930600679173828327957798862526464493575148758522009662019206245660028684235341305274012523208084908576198985018812086142960339421771427413762992152018850162397837274061214671813414820245617214925792345110107730858661583045304058343324319233397569810431797044265891848289384342901546474052481777493474947075476607108924730403512797798269985918790342098994826763792774676673120757222342344990213389229979597916590480916960708872004666186345218156963978950757011549516579325097261220917070010135667342320483623025436942029911464949844373515456519070515633840468732022837378659744189583780977914186569375798033531535656871676665501095698656592629401771549154096588149199654862105344905607553053928528432177584271929749270599016544692584996876948823276209937528265838346211318225543629100053918393256065623039090843213335353763808715807916573403186801183330442333768769546927401340963165476592559873003203556614916139313994814443447694798285244198679547257237600788734770638780037292189039629511561000566406942844685717840907071971942820814973523157052651150137407260549207503977422322386456349314512435246659484746953335885473658530653017065113369815731016466488091084840458843712688919009261457372307480874852630722147306931166054615510416032349018799686557068544109668748632363880245771570955130407493654569654705329275123170280415758824849892563229495207656113148068643834906881306947378954059118869157545895144679248893630346055218498463618615531385198412856480804580581609374728726530173726532315339092341164068247510763318313077217814666915568056458792816745015147772528495898222218962157997248340574571230002867022773200908985482355753304145528035662920903617232696158837135945066341961871997270329994927508482020773781592946813991997500656139851134126471915394701673061133421313673664660127248222676319878814474118528086960543657226410454119561095042979202612247936745312264331869541042935537694308878803739834572255986989909793029694227774395274110745704395975280002960789039891208857303265510865749590185152512846022536005687190479832967931451106741629910250667773655773829436320319430940632881438911993825837627702801874897296110762061136854390002456045018805718937219316375829719963145035023168022163956781836016250993514957607350528164349466899180039105488744694682587197146919808389736253011030588485012167568522524086812200214002764742144355493415986519688926113184284478189576348961029115427109670237208087160487102621091036092913187021433679964573856180530748061046197794461736783495536054794281084198412548979547498632536321920077859355274729871235366111503297424486836373289021750220576639961671116889784699140811257586978401473896189339863506177695619432432662262254401718692687943842678831028364686294107121166855312149901976653601152898210924513360063844846646494057234625574454776306232142636140352338319422405192859474356621668293414747866400967882407423033328660174064008435213888405592190630346504096780996458747549724002047037031131555769308430351711319942625328010193315406564012222067830848946217570727785370006471066400331629561685283028439627633128727657706872144036543087199212983519713716790963617322712746975242530177473712074694486804660218486116225816783035910565423755629312579641212587384212784694304134064019104929667418245690998683852386283416995928535722536837821064364384938907501924937823383944975973437114809389281157398135545402722323755008992746471060936669843115846235348445414111109887823031663547409277869737314969932806475108798723041787804246786971681064614797826895114538531294515651174269694304054244539891000302596279478615993549174252611755284600182049492574555167280377869478340527718644761516897504491921952513522451134868966653343933163205972551994816158421915721671491554374994298257900474406914265100593456599475064198776120596549592948006975650140108636290886892935743503905946547933571461478570009035876229205337041159889027728570464982747441247107712913134446150033354099011074243968693818463697385245100164546534005882120120415429732254461813998848436326300452223848520793474504911316368615528245994054720817277655318493316958903325386735114080257880047155641526875184915339118420435844373675453089871917485729981275353482028041743179246320068218472852037628626634403840775532474310493968070193961463441351624042806680226543098309316248711346900814017413214451325680491217268382093126527455739534054082040596758715207128322156296381991333614329778596516522212049869449138923901508176854753660514478164102474950256312535767557364356804522140055902611391202869335346612188023015837532964129108962811147878966872644724134439991872084106673894125417009187149009852368780454042721782363995908983760730729639179950730020892416728755078415236850370500529598303938501566332854783799246565815787310780320706021558706021985075734503701438669316187912819581655076946491697334927552715094787920489767519906171188478703963620693446226245365478222720600048718232940313314750574251196934342919446180274927356257069792471339808930800596342256773032805640600934599647103075723412667493125662308787540046903259335631385047716033449319248220954284270532791927278083194532487973507387181327899184204962202161005338387941173757236492428290241684309955714650642791206880187409327533629913459570253122932257426554355034438532789643715914549036320210577312457586147441620472133038350129525792410497224478625867103900384014482116976894452281360849199163962957195161877483497410631628217200329452039678573830228992088032008279879344715930132935437536256945284677613292652750809390192241137830249293497752181114816352585455566351696969536477635996465995298619750198624922856367197588099664637266764706186982433514602588154601054989216639543299080466000776036298696419897798677475316650696293864923876263251289116565683031846008876004604944804610331058342343277966632154895556832312975801014299371653542465874872577456472111853703091925862824778426580300428280430133162205247776044239715485620945570110824544813825885465872702547458499587685252017671436333810830161329319869604354394565590526759766022321954620397807608268927393333020976970828807659382302735000623884728633522686515440392583237998454486875864407668034858857756546492865691525778104958732353966056355109738728238415182238791499564349042094237790773993416456907096410163207748687688662848670057464328150385003309730231411004946231096378963970263774307215962210821811164134954711049163365619249509502170825183996802574075735618110606799120611937947894043880577718943774847505885042648781572894900770492938367535412623013556080127399851145908484732986317163526970910428115337240613524000780807195088772107015173990360756970462426674757953002909601797607635823094806933045717717353272807830833644737633453185801539340768672870778720514791396002026328204901006116040027419718290885669260565508702610451241373068231398409950795500103476265325075755113076415719653244452568964443659163594644907645773824203728766530455995622362513518666093757161552395063886264698727696064393079489004366956874606148600989987138762158105926183094565056639794769092816697761357348262297705603975903237759478294528395784863318314281915885417650741140249868826949318283634138943196867310715109080850493350509412962062739317175066583371292109738369255196161876182870585951745012678419650067116114454166584700247681847721620587741016509473623718139656170295000117321318552688621394444367862793406410645063927463821749226394422215458017466091906502781842523710722920605010869325545856947314965474641814494808273454054421516141997001244574301490097455161056949389236437780942002455086340854378437398225926896680732330269579530416151941787613484090048928960537970255592668353335313074445786784394449196637764041961418027882728947805370916202791010854455505777668980962124946459753136464642376177277946663410110755246030396357009768371367977250858946543729912554120912634395341750658328043551010024654008694590764456327471465129321190342013942877805947454621529894464600463431992751478485395330591156253904312275279212941877515241226901763347756018914886007013116018876443443670968062288691130702645264547803561107614189457213137355120631491299372814664921738174592502118197159029601400213326205054041342881547635978497975815051962562415990670363178922460631508993313672140567735505418855441579224271842259191802477950491082780507521553812650972945150099981905437530492938770699367248421643588387040171346158278961036460381340871011088847928419827223929227105548524597615328997198644589083144660249697169784715486985353420087496078846475522528462792310281314927733277523611031198026297347033791891524990247766072167687033589472467808356024459209328119800449003555792442675780895217607853146893871314863873310273370746495433372581543657030493699409829676581413060526773943463023529992000551801018639135083221308870290449735288128023210187901142291269948410071921564683160761365080789826325208457273092357102596305829625313369029138797540211058235641678679563199436896793722953179360644300845952076267885533146252343037393440574680613641408780658839016643284728389712359841997030190079208839057307370612834643739267813152083203509108124126374399145427653469698453133136889898190056927175932603131891042814851730647158122642211847304173243393508671573145429373125095838952397631079015081858775503751418836069751286310982259080552978319891595804756375203585537577560419746252966879560384266195138891518413124780822079696722192534961189468553623408088287762374789870909451859766220019027510738101840000238272370466559835061258163339185342246829322051094074633968995631337174413460187779694679487131173107892607345664223414939800869909599788279860893552695979774754723081685891713587753523255981630366033484941040980422026966491534129144397385011059579693712808761549658950809951483433825214508718569758932465222219464676309642386292344173581456245844062078534356812822499289055628590284059717929060547997074856458258363338448963163061810661403317815285550551544181355410452341506338519923343222963287456448680853885425372996464250418749327449433958967323268936256431711885508887207975913507822961074486723398734598194575300785178802887777603133393206286518336249145538096928095946757132248444295527886003822763657845566541045596661726160332550874285539252342282291522117064024445270290672682875947093971190918023338445080322589105110826196369638160339785573025678288329365016277687389751403163021431601237246498521586766936110630855622715728558606395704184974755629786370539557965630893446962509544265844928213961162942016041497901683336987916398313453560426320874676792055036937769432211191476317170104329402530663775366594740104459695349525126549991230652057787622291996759736256872201272006305329102206790461829462307276923248189292511826258273844838171008602044098386918029600343788998070162661985837808593246140870220314441396178770552822275525133522869223438576366770048399764301524330774845606201568480138438568362538062109092849082828401432575030981190711711456606140287078277087486155101691393412922371922619677522292232620629859853129466094388116427770511245221475458558874771811066143404314830813586989194841200205063753395621105869199849419562073398332449910200412972381921882274780770652091243226962798931856292648278289416979345874578034125713871375401449971109990248839724963390122873924348428165655406313390620010543391836309945523580875017763633249132253837054362588116241155349125143483673358592173329587119744076035741735407455607937548894987325281980298215579648333867358104545660791352760627151501872054195680850442915426489527084629010139177994636267740226251868667528018504732362542943559643584966078326956208473589429392925243810796154122673831594468217938856057776291824559644684522986773440697144997789619817583303205160948530658412276812628347704936173771703745278653000879982105345737678797726562139629831565032419611797703679030528635607214441717203944084364246397104553104601091768739881007401571344351557986677889202344072923796316794557899902483446552976448943790614849385849400532683346454852981649135935106998800829079923918382641124053854060525884259897942202081912916227047769182295727913066219126036257768710886009148006825900126424991058707132909974689625805925196850413397703046864349623996845620273745757778966728933468445193127491231004158647943271540463966927764100066942638800589049523865035842733998774359952518079491521221549580392908078235430648355251424128993043311037209700300921722182861813254487531668433517415556891933008809682707084278642187955106076149936677185021962381200514618184115487172746313003688212520511926068582933632486507653897458273288488306758247734411482666470504435969995369813058565691915212165378473373277731932053517682659013421254897070623736358875504167887866216992546945677749706751593910278594479390264222853036171610693877443239739428075210141314470027920978095277840751717976848204647011202357968844950385023341637468232431837759293663026810403143178944103935360384687544818577669553844016893645930058926218273798967913936865135641753120626739045306571748458766822526177476561606764209686657893690219661511929400784471845833282804229642594709807981393939544383293040402362197966775861617658212501182190476076944040466767026495590275201475664663394667308980095572004449433428657316517718822083275978055132621588047636463776200136030986641614669231717648283930525463995823922922151053643798469128980434697125706796282415541299850142229017440033095222256161590139070902031786832475878027506589380955305154767842966171133178374353763538379344942516952094753279894650911667058646430120721382358089646610809074838437898321004748995955836501943392820123537165150840627904652131228625845046191766112714492891581435787977935967117373586121159636328416500897107942790204579178935298137123916713460686286596903989715407621436224132246409968494250188480575499739123351417312967542472349099388494025548607145466105725967136145414032533903679772571446550759459380912861660067406018055227878776351068161712432067902125658687219672312071853140662208430156970836451382947220307895595819096055296818267639609087894973069512323690449675169071585321354792627250750336518772333506725138708416498109616606358466142026115405337573102272122071714218377833154927146481313248244843935304498922327644004151804403015036391592022516645155297528642933825608138147577946025132441191614970916288499950331487692233347219363561099378837234866745058245606455364645557973852415661705081954725035260613326604091871801348847275984392677274345202276273711717878555009837481462754132012434879097336374154925056424027410449454301515291042069549888883690309168337376786548670007521700349078460099016622729947562603619710765469543206432454686743665456384167539041821046533693741561021694804315255004829218946394611300176509230046407489738367279464703003092358376943321365546872727588133172685103195188258666134568272093807115967542796741368118275464086197671376131200387638918077767818335092513078154956707115593569659330819298392354674728820728291545139726553727748421382039627697857059223024440193101786537687525317155819087027578985177066497673694145765303583099387889565487024423442395359053630926534705142485776419107174078001571305323494256812080912071726419385105103626218093737655901688756655144208938649241607323064745846124478476741966261500941321108655817951740239063926606652650354908824951515583653570963534980933955140005170379877806082688981351545487080584826484004564023559107749648874816376526958035115844051206870713831260501489825106171685653990177038449212021408485979786538502753429958607278572397423618729020371628876649428560520169619714964665096714674073593255899822235780044832132514305124322201986142935341283212336595078498075701640462092366505586292029232612345775400159901509954301877284194487498094497025556430140275863183707319790021843062018836788181738849404194101617223663100440831888651185208434326673827117998627345358874566512747060409563383585537979959607449291148069156905073111015282593505433819060503145778633143593471959067503416232656262421841304211660197126328202744825848582832604418827290489339771386367821803053543164650383829432728442651232502913095938027920957754369152645228214750772907591307843909144271119604886056766593468363947555896904193811299873755722321383000116755602599310232786096093030456414531096835076159371958695429622222145094053664646440280448075022962240286888943399081128425036150242254916041525441020377996237613610326520367145684139604792992941637957733332844770018159610515523863179980966730441877636123054268325842978737336738956242678875370962292920166122085117510220242626937392658296295148535457213968741437981754857712550532570785872179909685969456742012510538478473486996405023491927811538119917686599749588790827307521825032989156628435236752480207252731058735697573260191421578937652050611101774276626837027338162653063249153842521331326401318481616018029450372286354033491374891240660632029364830385302445296550138518542146253833582370742038474306926044475895525424119563959239379997240338036004126914848137187734561227663930229572483733986454910693786625511473552877719199411597988116408569978468772106685888247186178020457564432056419950318516328109937427626187774525398100779009216150303550478378386226039858591998986145031667906891847175415141998247837552824825725423222556990511915388579248980466131228517503784071058945869305656552360934239735262216143336517194761248021511663912113251162868660246778443957131660980808129938730164399261894833789917091842479833247078341538540916249761334474371624301987626155766807368487276454575114846297845386731580351156407753432817803699348334826920080807055844033067089194671303233401731929913367028378813467847625102451972762304529246914437426620531932738837852619372232752534788963570385306377047199384204958484099945382926944057745047927996484002364431819252176648279798606279016923047090764400982200225280199183592578037123400145957424588378254203506585608211114892351708302877986972867359199032767909108710519612443113943893508819146056852786475440516120830623324202312829654072368385225381755705457448023612788860212519388828561060319779820244481735380930106837649391469228093251398866656779961420701684040557027583940596916195760463718809341778045759249407865909265800735345887360846789547092522779985966244897781742502693726988761164355806903802593886497304955923308280763197806938129903186591220999580073186539880812804988078567623029650393984937874403199958703371868308050314128724847246558925135877214359790322076764837631863324927164101358573023568166626012067098309547643537710907005928633692167976579558339450726831871985583705299911592557538557559319648973345502332396441818256176671151421509427145660730625770158417555676662960762425372708687685470483861127436511235066030039560641039231609602889825506890819649937677853033776670176957988628813227699841746078070481087743375848608707693726811207363005859714172968514539641269205623406414206810778605387580321667231538981496268019309212519359828468133210741604386157359552119850845976821187783960227574850208249778356061967651437021851082845642811419759264570405149113948827517721409952648983751275535350087327051812744881264964526970445277916489958316805378913822048345765116775695686558505828170127503252774399273929951583369716020914660112546564906032614652411180993066382316388262708911907349476133293722935787633650602994014891371798720541590249198761300806987622216748835880877707878759956163504508979047790418380790544689660117877833271045557752937495626204676164480118237296085644166007389123006766221803604307737553995816118285682968933774585706958166700340856632739239381184922085563974204056974594463438828979292939197781046803577852990961140764981782803391088658662614796124927246963248362103808528727316290771862731406467323247111858741845827221028524795936018738269669137758389271595350285919774573931186893934699687362335000786190384503980939138910045729431279543226196284307912618471955087218036039871124000028675559137987417392870672827614115170423933948823590433739988673145388374739609965577129935038021062333593481264717885525207211162598649465220602740691994896300442302601002294246222519430876799486936677885364454303549744119214993020270965808224347456579654324081034671573790451504694227847425370613130525382367317405059509772788242453566288905347255872485508620352542554540659867906734062683319258504667591692037085892898075004034098781957460286717278289905540715874829523492519985000025490384803831127235546693000886197151514282747653623614508928291455362914848297305735252205823402344746088665368810419975078382100022565981772134818880037836946386744096423488040427960473559897867448478357782758228956365435085705022073902726072312965359782395453010707443719484806270105717769537871451842939737122819070555598753064244638678761061966742390444156909416362324483452250786987160799508673003419418474564649464101314109957604455782440444873979285956270453322792101638710290559976903507804560925030999989793103637353542213206432948026857866776986504173131353044121326272817568658221518032608332478141211858483263440697976932690486655147212472804133767487589725228062455585600333462458778439889820121184762571454717104539680310894940953726181443536261418186536180408012188406575469604453608183787995298674430780458535596904715097314474577854057516926167712296623704661729051970548120986724353115085636975354669798739379902950450468412164847434740478574759814584385564381890997926313169429725090406362118896368289033421475328082672743820728220953139215105942625979232419104485353172193735264536873818557944389043242079111825514358676721991065297068600369580817016930232438442696919213804017528441413735371480210134620984715117453690183421278792569836541159209123578862204678947440637133699747504139184014780971713384420598557045124098758649241592755729050650953943918998278385697622626896870409030762680537048824445829949982672718177856555632902548202124212125830219490869646446093241002676993004545815397884880289256675656847256509631976038373499833286855242537254302130791043506050549404362632653221213024734424229045497867849034798914243442383678308743898891039691513523211602111599690944271029429648112902115031051449286951823242920044766069018872874096066293958917462502752518732825314492040180912893394708159203784423995394749854607879331440769762213850823332747876082872558712067145312012491835374694596440624697274881199188862030718155169066021471355406799425150808402323199048173978918083707581577636619865915583357913691929174087987752931301085566284933765931902340619464496067115465870771713209863016236502508174548814185435152410627893193589367836699198302694573623196458311835317356289576141428018654446244991880286722216204003513246676384569949683368835201957209254122101979170583474399737465170734643724554204056816322907007064423573577621100128534713779546851355553189980544707020052338942356590838354093621206265013358824080122315625339088456335597488037901653483640123865624466076550105288990417518879698786664860326050878847311722005699172753888768095658531030093075010664956971444774737527316774689258458843861558652591385445913821453736935642111576888565263779949532062967359396628347173278822644836634259853233723186740029279227113215868515134905870694775604158647179321170864622054771494419346250010175832954283545482914716319206969101106784454997348308766914529038208407649536258143700855814812367104894400706941664462858093242657134870078111209251875882459808762049755886406438271196155700298272532853117139029491589923242009895526949379131015952824817154701725931601169234476358982518333939975596647484647130136467500021971980037122506463927005200351225311534153619156804391759349196967521345304990016374005172140773019200527295079358910621994325473944847390599384808974043263672038566991297738556827617724493014456977698895259255060260495404658087975017382849603926015918886191367861618196221833532926903378928835466994869326046431894913415334974944244710973235181650138497557421885871420707267704281114921458475474749446485008599489904001784290378159203108661440577994064758246979168309854914249690506914164521036885034930060934109670592511335770595547776331482761383523472665040528473007511658352040437781422679435115002241971547168618134325951853284686975839352462420079312594609067468941321500653231257933967039357117841529304614831094679221728721098971365413994573591249009251369829264154942068638105168851494781987798530185325148881214056211780075844086818856458185590860799149240223634877152533765119202449063293709153950807737468907033494405416533186302778436294049605529076662061971668257385548306961947367674632034041449905852762403126931157580195643067970244509838951438315352812041212311741449040981713261583608286635819589593093422448519616069823083032073438549831293638698639406602417628884047669477897151404385463449863592470977941246711019480132196256200277216938762233820350845368071659959149558827753370328291586685985008212885609890213375840227698066244322781009356926736808508425637796457665858438237513791344151852035191388673990956308716791267854908946648256574993016556417804910567565554852778729747111626097706197568873839399921350604591066518576423698672984730861231367134773688021387344434578188580423302606012911285239060346364115519480073843450244420639383782894924390746309354075161192904726201826099211039462917119573455268712476316512227412094108407099140167567142598686786498567336957786716379853261767933475660151152725043798014616081848751017374711649060594049706279719350408103439624903905023065480176123313241741191355848899150456802336032467775111852972767003165056091912177796777087234708384830222428061508372592760317276376341373413083039340989630672387159886175465890569081698530859453589305837023590560851754213827424295211686316385869083729603262771123922170736106368023538265530272840229275286466839560813269366241785808056730733664402286380900240120414108447945072056382340272348395746414677810523457386475728508141339208770038140164462817666089759706496723722386960613512104817971411358958899099565329799318328239710822229719230800194397225981039037099273028994934348945959766355537660350854101673387214712927643250679835633515292084350749513959745181877169419861780837768114432290503541699490260682456085438153404870569942408410911770485867338925924499036570263156830320449414233580845384287945561983449394444934884428588908234821439346855513537661922023969618255603631438282753364423110250309449121017932703481791045215356934131803680718608450930724169550652447242968794607775219999978326156290105383756234988438305520125172569042660191719534519268936458034710706110720154297631572720293038830639994429780493094859360570562020157671915639500212852645368358324230555974653547413731271544668155176509034051167235139922593543792447641426496168582124620286219631872889644701353613948112040234433610441252369723921161171215629771239423308939182237692982694244901537433652145596455772876357252290597867487826895697139261537335941765063287688343732926035233412170995774884252186971584862552171736331879908549528546799077764914295316133460221899057568384504954939434187213574853483832063537028097395431269579782126707422996559626968311807489562262008570873966533355145711595768728519595316767204767637606912879291680250848341086826263929881364911065197229965211017755508938803269007628310861033512466721523399188401112008953582050991360263500632489881721659867229149533662622879385106823833120017781338818810306893103216920795765299446267633100553475264319826914316201674390235525342368407508402718706300928508845635224780957855708796861736189873332927778135445081146746935816713355001098663794032404581235708269901142131747011542993055131027278422333622519222312152386710840206505594173902620552057963863604640957824040065464147987020017728146951412253719774999816409462729744725852107416851562773817282324727908087089530713755714110214434200926142322303294465417943462072932824670779374384829762170660804941778987626338272768346082446306546072334012888744528858688827708399325511791016110261170664781902155610941862889261181278073135155831020487129045588833529855693085852208647805256354194930730114442791616609097537532341396771128709897325090501607004064620181398049461408870644214354690043674063097577044743010997378847440675941567450274727673183996972838682454475698496987284776612164999110934100155183516412849376551704719673719691213087874824959458688986185339362756429401032991366097428482265462184168319718821381828710376567416357379038269934956016579763663232727442777132214044867751948117171950407063213895868757962404924512853824905221850075093029440841172834405417586965579193189966039181122778621684696354587377855255999902165201708689207146150952081496633153020431348989239451206401081856582051947875078111920266147381742011761916420216822289666551328149767331683371212375558964631677741052926273693978566061128426215529404565271283780761714835607997136852956449449246490017165354519764437710551974928645508328249976385744177421650416112821212250354156893869640729046463878044180834783519508663689693714109746862930405017891192782960381223290184090506734641699923054572445490543238091693409998502692480143325264428497310441507454448943054985413584449063068314116765070218099702880164269859576075266307969533521742092561389962262769662490740406002195181324473493318866520454026909546778793993321655134499256564878578937028527371702985881121297955712163169207985358417256346347950129735774874107848802491657179387052117418153501949494606072396157422518250660883818177108629601310791474032882235286696149617558950719942098509341298327407810917560404046489997589205487883401326575728401722436587932749157085153169256651281623729846901763555707872589537588353257224740092331939858929001290728995321644666204434092906145381945807696602029989760688175719765697919592093917359634082398212499429287025315481252577770733916257941645343617601494946516110710661538373936908600200031291890257176793974779515800009341820992627610117918553872507964917556487431874459408685416094156566577943643131653698218758788747588305882526569440003459577010559686054637472877616372465966766260307379294991980467230731093301725036801353331018917497602673296007192554577146546916355248880722505393805857524514340427112769915148152883161776273291721534240804497818129087418583658171828389728079138946111672966237490579577830397852882774075374705270087785789588206115966456418442597544630974180205559629030975466613417285049106675640870071085679227148523130711678932175544168302675740158793439589888491281213226293526319765454762182045513655611475833691790140813458827472035544379817379355050378920548750412531959387858712995258578478925228669068241538862314706679447099396423840239352687278891714979305868078235208568806384446313143971588381525255970997220013443865376275920710588654207848613157944030889246685982170420026720718483424761856786438607022740804086043273021529278530699034627860867731469954248961988119019085032522625359210649280204753084384813823196940742531350128159168254299315368072614308164709156822385678361743601772966431596272115069469920243942609805798540660568806761643882208532364187275049898715057697729224941731158094393888891798573424685273986118287401959329206063397906309140129041247585393035836840581004602913668564271268916087224849258461226024119742970368455926125547951224204560569665816672274559322512526081955416390541584773000616591682729325918863305414667231581840379864765120160823055102979796745171197790141972599892178439787773448206430988922699286678783127600127995442168656828732333417847403731008638340018779925700259529358977592224824134891210004505003463431078794581078600415726805266170430867291194633173150454536825335686396160021016345329425342249188267012095536999844892507044449905903562926069428667083240603542573626330028303770241719899030326400381461853798297230849023063663310249842360517940151767575454720435397019475195411600315245636440910626220916109106273186448281514252274999849751957980802781687018885259201157265466597903269451247397466029718855098581479394724137394536446117196192354200461918070571515534788688767616744324600954608733872321662031221911843063355882906531684920911822547589525432926942938575937577294392363634380605242843066240958798479158438103590692372229431159785727037093209032752838267896147187943734423422306822140037203908991658597487776568182580829050595812337964948651540909850141409299153742964765407234041583255134543006358462668306687525164182719234775760662330876491346554995242226530031652672517786167372907661165927727432912324347766533005953708269125930078837955096731546155619338088038986001911759057391922812710520484918567825490605045047642781250063129459339512619781713310199791345120850040937013209175272534374489823429668384831407000757088028925716140963476842706156753450223025449641609101795226911232485268201246816548968838131209622707741833558144267228285955640392151841139286965425729340031653355117415453047521917201732540100000341747387913419101857400609486158969820507973912119957146488955366916432019642806228841308280424169474049440335607316226635359734118086182342288780577852945048377080792531489702129911202227796190340414301798224028082643373284981120945178344705663556850427749410354414440811321815971564187591671695805841078365772221933447804440577944819540969423117552811257753240882914321135843244774131814470714739180927513837886079119751667050930978055653694559189950992905678082114089602669985835880606606393649864291732770828282456414695184143846581170763821248565839569762183731519532169317611588031948715029933342045225117675772962126107832028733794907005763598480062599670360621371994678390541815704886793436146433420499808583227007182550642245242687023024521002703499620416056417395731703453497521094098993714649831740403384620868583363946988815209470667686786538963831082494158024756812903633005409412286639603948044600971300556426847084648145212800331994428109904261009751496640860464576666489103143510095745927325548177471898325335732208283873826743312504659967379984212655645914144750708714756043871263917570852090591685470299722572810730634144577180839319222649084871182794419210310936047355415547262835569961594191897704108531524984700871362957567063177265181427739554744521998971626485953396653134461883904194905529934995097793723893907566236705831202949072087981400515443323027294628751824056810597918994313655421051908891182853148756836663008773130501117529522228227384814237803619692416184690457780452474232745721945507353956511614641621447850086915957441904143455233337681822001814411516257411850551291929359530233827495898280225731682664601145722536837974764280472988420779672883237446680923060300920066193996322488599882316540618257108927702180695972574215878806692489716868136158993525378943974190225456570633109004084117893964054106977423870831059448925641240170857572463785666495962368110887819921448487794278784656045042901826820621662382798203771071245285146973296954873603695210228235634916867557617450360771532003990143967242697880488037690985693421658618662506770927528138250913825831920107185759569189255675287640355834813566745718342547583172734325937808836955586866373093916228817393495534921304787423133211743136716596918685989575866945249402695409176573895828031898660740107178685164359214543702202963676212238455991360524141559940319213630404880266838508904202075169759942213973949299671966468299066467199283796490612165593152235152090324978888975873954973632994272659207795505627174168647089240717885503362964333678873149905317053294014922754353220597012706806802467333925363469572929129224923075909369292618019685811065477096487847108315208559611413703104053238628017170620269169740970975850157259388453709695173743169008677214031287409516007914426184968856871351165969993291171687418697877447265272152357013579964417465329575536535506960324009691178194739595277717976504498170678113032793027685282969015800935897277699140397481081020529623334453589895342658516222936736328513762125304187176331852029764321398325067875115695544239089202139384907636027793541540056959190159213925161905644622738359320227346993416988856353733625544054383090730110019203909897380267426885818245628673858020147296890906923922115576054071418378762498446132687204118079349511944861371766272878273939021063333606099830191358238503746111128515918552691951922461673448223377687943489791302737350794131920426593718445805090781924928514102193837292978432998725341976051080164928095045462269267251492359364509242862181946158356113105329170549196554865530533297559162826210347895732547919206866708315218906454716776978740541513538754169158246583508556958312095187186766409323542789170301743915210657786667038094729019371498342898670791648922927252746062448076979865182315323155558914429521471681511175256810539443363556765488758494104486496587500242416133123157049990656201039775020051540668952335454507080967537499636902974923367706254695721112914319214349550757120854524241478381883683220667887910332353855806154425327248482730531770550986009872966409411190365339790495981486370627375999418464533147551511281801281811346932830089177662831262363678182727648951316936627621806197954920767089975504766376068430120017497683865738611525922911064964466470797384457015488864974742467892737884232117974170020411172012390387619774190909677347155296714882602752591173744149358925485818651802376951937658878306448678940789064216822862420969461574488934272257718094842295990063570724199976213062173795937065862864547635514040449558793834041542186661671176839935074945583190320773879637178833046026796917250991488469016010132293585850158768210892354361487182556353746810703543769618182210606931046828718369031637784893595107208002574314379396713240181956879367244462120728758386220250324292482611335987720620198822313633012531752769346669218635217817462795320439910095873298457106391768035775023587561283132333464769855516361434321287312608427795556281294542851679930407233078043233928964605938371909926197000040453918755948161820750630949319038662185852415660275906283125643797562895789044180747155014657523902788666052395213904050564721880573620389818568290950700892046602250344148013432699636881745703864279193728119871969641837542169033905834086317027488391656640694453015618173866816730842144953773795821266102410472138877764732294990021883453897792615477770174437322686582241360866132435799309512304026942480430494648981029658554301676877608176285302077839465891991884927018645767358983555088736159834944516872442274815728459001479439356826190843083941135761285221523049623643658004774395184304648668114555282418025944862612442399065755360515688111977908399638610794309632479868178472442321301269444573524757901919642536821383643981776501566143692636091953109978770304273277787858414966564358311419092505444922569352982366024282882776429397871992386159995422450005565360783928696731950425720077070263375408160232879003643278299007589151576743607137777146082822961020247608703315690491505983177047021434084150877716030122814185438716419703603788870157435183302477886727093882496996995700971660409686351431575116659750213964755779273427807678171650362117506535718346063411608479976545540185736812138612846649494067022203343876670087280237606867599578008830394603573009114523473315058448667678262648342687155282116660708511815439780867818968251408351433442285179643245372740883822572828856214571262029044401216390411858066243586854443620009631570101613406829598333017513262941425230879111491324023214394549177255958497047094880349659477339452397516223233662954750595830641201171084195957962544520311982140513684459270713649453034993861865651019831897868813991357434960718637793330667577628855711985963160977976486731070886542273164099733466127924100110114500526100256136274552667677302102593762127925019341288058435536651343467087641045521198250900651995753097395385152747363170277376560052764753303589161747541880770909566009951913853028333311189610958603256304756639266883482625400349420318379902260867397402853108023704868431229411302680817097655933969333625256217734024500050373004039189929163450334415827760783697357415491868446000483894262580590596409254327197103577162741139223379572204088575641469208387114477354731921285032500474445937452278104941512967885420829581910858104321370481001624248525451001213631887574234186193714830748974163753379132519054979773793104145337439197563500403099469434234803179931004432003326026064668291206825425340223463383025369223355551053195756461804649334889975608859039769937500454073094188816769195724594473769615947249204282293011319566498083428242275567709447810453229887062140163268301456668584935374984966326893278010088922095560887022918432185842778114108017123369695431034222879417676172078667614067339781970455199720602818646483095875285133823230851447244193413794119216822007856582390493075207692846225363234310277365183813755302123936777538181589753694788117392058098571538233853326883187248790713322242443505485287306156059644367298788127938834979657374494766255784744997982117964054093158072677532803424276872615186928293682583580570295624861929004367537590815884913528801247738597731845815801134420135845526897834244373956865075671365994765551529441854913242444431205558366804614854425844208084847557729606697063593818938885231943019742075768487088433854113256183470714376248608583034485567967888419919415584873802156330395933948014740370335884688541011779120666791704839334599547249640138235889931253568106006550355052691904620916376550807885603101701170932949003878100010024612066123480794657092063752891086273506849670392801759124729587349585062159851072958939077282529129953758948956676886911313067367312712085365255258607303841391354590836300373127377010171543713859960983424480248802818141162009149773914767222566755390471597240442366507636114306261872086579038943299768979454685244767376058473239256488655129519856905703879605646162479014312600971666948858742974324443948094786193312106614613100047616863982203278485678846944825341712932366846227140113881860693368927466330691317262134163316579142377516250903291069968539945140266491447608872252433035181137267370308276930549028127384363748222853260313950853632760517175149870387726635814703472382918885993163200831888058709272843479668268869797220686402994916887316291816736037144698445480734367096666730332680231812449215363461096442137466983716261631017155771057920338000964998945142156120331507849628605017851799227589622241941405723323383244815750168366963885962447450882839122129678379043472790790475350954809775989027739616738450123578459983325093019600877433452395351722352353815924636028918767213481894643952722314044450991641167532489134931675760847073841818988912844579963408141831129133475116421145348165065318894638099503951067233180993241932564733978330840614192241859046713658398583849446791653086034330616883430342336463580507822409780328806539138308442823435501412847738208640935942210471887402619653634076906962430021545555457194937087788574189975096862859708814039588643513296653373098600146949738506677140493997726461173130106509563980565750548038090200115368624735947393845451834344052822318131410529991513979741522502432054736351394447580318297842446852054731156069547602610830576322545335121021819113630294740206846854302523372170104319984784737836587821116317473474138458031376163905139723829672758063035069119068643870543005263801638474013110542342672740327737826474476321088064640591953427388574070247134014093605788895295360793006710145752789731739798478322814360216555772641108987342772742800904972684439829517192123635523808303932652844426807751182935373382894306735565533714748982922253176342989356433447539446040527955920123376956267508497929736629135606386904178739746074278039605708178806735847432370614015217410042132358925698698168917558821426146957365797004240084008235553934704790369099240012576061497447803194752080153349688620405837074318038082848026582113230266147869950467969654778517229183471488702854713225711505986295848522539298878826195284121861931118629598261469872021464417278093613033887065005855474163242908340653089931985444528440242124212879622050036819998897969098356084437136856934765902998079775601354208753242375151695743786701433815847897549396397106391088645504991465264807838643409041078645529432723438606628530124002543629524096998215589020914450010364755347465577460444218859847435599365304085808705883227705564412434179019563972635708187202291328044287334419270727711115928007238476623973115854171391557066001169815620858365571196455738803222071409478283999736783055967992612417835692018676803493980182145487592386130942086549085103229832439864009635342471492755168227211700198181829536865623486858312010439354470902280081804311115194067578140002792972620544971758688570224719428848755581157046587893012412395748698851169839915165330254996316894055840835675154572712392503724293519429896797654881115020585548824636881169724212063252018863909688185621094002755272144967842059168785573309590866867222533583379948505266920892707240197401579344303364727044747448821126300113886665367994240745058633770985750947843923682165861659161106746879608454466889588111408359023570915843909796246403991532010723551132585678612630971368916596068271910529499090142658326378130737081154556615442681877685222971573065148442590062294209525706865471007422808974573066997332628038681894342072976682434227054750208550075539624782090535967019175381269894030255462909405413906602527636227428350882784400667881993881433620334574355848830966506041788695504086802509374852637277480058257581483102768992198798750948419780899463091683478279228558093260928176424455029381749277596767322699633982577644815688185619310468493693398107854768893939423468272488094912542116992140003492790014504804479445937708255367969557557886205974290203186693657290348293987937742766435053005692019142115789521130154229121684489892822879983912215788439939930222779012405629230739573594878660819306415515709038899701460772599753849983546664515392566863482090898154947366605266553811997063264787100266682091079589895467114298901918640154702475982678826166669720367932948359963279142985040030490211938234212421294807819240062385987874419348154916950300169430294259917807311882752741743091053416764014173451854223582607988438088782848861235304933259290474402781295743885637378926282320908180207014049819387261587952805861876394172511484019286443701898095489661379354283584460259774252534277054272594225041476835976285178422501482246923550548205639525260901454818024266590910189087066739701073999240280051156479964259867606006926168091150240081633725139601898371411861621036273059309106161560957085472319416199841134485271451852822874470628025654179844615658230133245985086431515853243997285404295353914414287783888902396046887560981868341406607955081912926867637200921155817018604464342697948247411761125331336109982166036690992377201824924013758640088298642623922891409335853164471849384532704489696686042138777772351488563723301498024252716362686252945514474520485988358394066601839716577718441491397964243905677806836266113768144313845861597107736140190059067904241201390561669333323399793557202243482861409890057347863630657110313087287367929663029959896340516947271803033473312721277336188368829749128398104619786414942356876814815877819610602310820619888608545881552424411062690905221595340934180393322770431273266071340356826348434752281696188951603158344793507210005226724986904812725514584955311446754587712244106060878697706420201931515003561287310703116844229218258159397770059063682769722219909283279460794679345707469901545636024854593193286053143619035710986784191918438730931638748608186207357458542571591070533315232342243168153971297902288360737713332963756571255649433100190110140953812788352744196648121187692336970809506380751923749074906853066557319622434062159711036454662730209226649232324631888737980822711865924839107411012876643468668975868625288523388683207862164417517216695994155813167148417816648926645508233292902503863898021965612703644305740166865976944448611192839364540679785532268165717022614804547961186210729095046222799700755513694149018322173072848930602548850109238820015423655242945487403086560901939223662490168393942209220686649458936388905322106781553182728649568294689222072944699270763959199798867384114701566947556049349433807396542127247817252266516429622533614966971908637033357388847415365403401454869383297397428787804553950298256431285588565156088885454891929944243822364198897529103936854990214601873405387421843159455717100335395468063000910742839743342642372788016289388950033135027076165402113641057026727231182435713592328625563125610494237971713185440399977231269965885584296579010562189564416411125723500923731693601459825979384276071980009115971977646985839178629013702814431160592312499865499380378395384055857793263426587035720613211131057402481637740584650211802602978041186785267210816426521908129159789961217750799139535718378370392167389693433462730389524854540574278425993469631918873512614499724899320982564163781489554475983658251588173233858853249642993262166638227591308029970022156737726577775016092010888930940450825163478296830622615364716784569416970228406742383330961982773166892934113805839306075611478076351046785294086386852264438406662487208720461206063405015078545078603593708695801860561617388013827906029175047032115175399298618426538089020658510614493793740253415896077869822683153471810485643030865933720277541059912273569373866458755669779088441867113116632919437381046764047231392989173336333169295189122457818789676372061760630901787143917614478060569620675133458120496702633747178494126689590179772104593196994625877164345755289179854855801807970303745712474999920391574770540329621463639570252591269336576071319416776224140247565286098897671752823252342719565418862686356677831581443793269479727220462429057451317081278331021144955731772118196110131292162181496028026671668836480126602869613490640528394727696357067894103810566814388685160703840928712328936172027531953955585552263978148688531559535485200184638015566728674623098297518750329447053512213832779238198868206454866568693298909471317303132597823088359834040792507366784494278751026306319909089208263533928969459848184085989924126219740717966241356460051862017864263853754806452876959441294312165382340960006345116558201365422741670722660919737017624079079769923967053190079931193502800769998355502481424545212235008803301345503208486629224209063290922786214658473579101744516210490615077306939962087502719459786643323552589925984439606410980799669054717038010808053631645869952613929432080739624564021627581833728587730321425730959287127468905108246454710544454598535823285479242044650492502728326968900058778700907499924345160696102946820395693504866759125639034563472222690691236863090287473513023041027128255725714107459817440161419483556078030279863345114193869692400336050413740982746265658771504913105573810234047886439110308647116515166159304178814585744054172616375310960581287220949309700291798932763437714800357487916949203688527781409342391333534536974249230403880568906913279751668493230909508363486166828587834448705497436877783162647156593843649052311886171402225936568455450960683143391892411120897910050750051189515234504249207569613763561174206198288761034436932070201296364334881565755412828115539245424031349820084088272265459512390191861226609796491472259784229988849419925245562965712767871835542425450356209311043859662290755657972061221390284577169491377810603339328356503099847345618527655827954173325572912076184100679757227887033930362202025811251686172139864478556521859509870616962080444466326529867948856074874954185491696189972862833686474387679884676381231507139241103411903628232431378462290339026466260317698733238558310297975905923796616072954448341868554718520847104022393750700545309450235800439444676936764400332846084334338321704209000381350423962957367411120442131593681904844821778852160846918022811092701281763759748931711256917341301861462328280304126320439025171435202204297919701024458707272993315791584056422513794137270613977283550522024215575631952001240169818480445044602907268909719216271578746551250066067298077670207284707979645641101604931035789192760370660836352119185974856811231467996865540988282189772904568584070106033549332520058284495146032803006745719061246340389790008342818743352710390227553566292899110322896912826264699357232966163205624954966784624888556525085146961752329834384956094163118560671016298341145420953213271787452699686244160393812064460239865830206461328686041139403424031608128233231997229797567457284650111398405185392115702537024297876079228550465647108050971753561910115081099314603857218130577098941191346611978929124480401159333862208991402026187949642963339252901111262676060036437198109162883114390477860887719633823308739047664555126228672693452449598267935942549740071694343015941351077768671914681472319815636830130797257522371967406331893042529008900792178219867186144299646350981346397158769316696706235738335718623193462004905882819861130274204298505843274269192176942453175815315224827843064103279900586554431055733173767601529727685235524400112338979049679988232831075473255059760724252768551117786475414562115125636749840830758988475240992480953593123668323561570606637143462892403345828562542860115067467251369365973179122551569365043679902002882510501505264777433748046778656905676463505771381004580401638640399675187196172895611909269301476507742879538779495256371394135137711955642543879847021883416222859344461615725644700753932210096442592976765545009549470031299362557733667688390938808714594199333675166776922561095007041686202717977099555748992944223128311072917675848801948341312603631146755844317257609397659740205186257715849859556454255727612768535420507614036964156362782467423691351215837929107942569061479106047359667029548920644617492039451038112155003161174518160099037178291559368213413739864027661000608372789312097570591344789595716337761847838642453203096395726513001769817337723137397714964184544056431240925221901216812104671784371782046520367590351124634118937633569627597585146600847646428002135645145123198923077735525821202848172950516474977166543882531047429977748489933917459120947545449181334213392160059484067475632275342155120893926276741647226154351353208229330815312010273358173700798442174152553114505753985579347690566054221496863982312529678845773864376126240517139432319357881432649715826836482741458259479629113296736819044089165307488027068771857316579651144282803805085654026556293698646484079059306736137903875883895488939186094167439978975213784845698093131063955179886464803098437281175398607352304355147915914366483494492980417372063182435553829540038639927885482895675897704290557419954123090928623052101399086575442264957219530136250103090750404779141208675664491797029801896717238212862471272815272042177068134345238668194901633416975732003090891981672932145414305116628137960867161799356582410460931255605971791462455067384530025838076662877659136035757343589479416447857634794359929485126192514688861222309283523503378856888596384388394941070841365072815876345527362454926666539818099240611327233246569712053279614017453778899691911426261331983063618727814015449649660965520177895077006201960351355141787045860854234564814760004638476055608758933547565203871121347034832446220530723578323617059213739958141074908328316651218563716993925984943998836374001634781572202944891532093140326615450868755005796150219070300538585406460644651747474361707594070684266991002606534465076926215872222182629723401323343944973449884741174791985486393653225813613413179265668026476216594958120878869594103897683775898496818285955628636301747645530807175220401793247284609433913207395938553426670082576086537722180985025487685069559293772022329753858945277578653898578087765310771993642849095792730032103967940894329785740606225602440883256196333785533034565338695712752820238612651534146053211275874911527426799546671093758350798121645522751211813713176457359905397007030498039201048069013920118264030908946798611500599219671619512583424022247614524046365478905187749182888061407600790512861565411702816555512245321057429342513445915141868043653741771812669251527875486831746302897768040963677484555922205655694911778434666994689785147126246661595640369256940194187643059446139936106108103290289205926238436046463188665425114344882272906605152854893811700506299825409539626755552570964178755090052469244483546657261002711187040680498953406183059740877638641033647594259446757030110735860926886381509686615763024027275925347217065306237885927172178796926851701259903406976537583995186770935654798025964924943451268241675649567765123440503203067950504259147858964096635597627056702543739048007077525053481531124733731607662669410939728548015258587073134703801288439523757641602463926148770369154742439895440599981969926337012001615272640589855841975560085825655388437689515830565932558584596448651837189683191110968781547397205820138438274009988791412222717663276206130187907337289399692911682787406230522919561246788533554123169499691093828679299447672075606631563242269033534145770956997921442648445308658681116838864068799010774255734692757518908827095731158576559168707564409764546723699021189008901427218088698005079737003983009193071590939602255159536260729516405280637293062584173190797221943390706394448686141757084920492302483919064771018348324486904402771473971142487714762755235491788993536961302247879766136660892248360667001330981670177149667232576566917805797854984335949398203424246983963295728866766279215593269257518895484163550004080467633034570880079812360995302892107239330506652899372741248666575974320152895823496513160560465785603290149995585532195058141269273885936599932749916963402934132414009363499109310705450606955539882634153702749444893261373454272738517526080247519137862587838158628508497073353450837119360490411254478918135600571013087103450884698667281210294135735642327959939577895116539512365231185238767617910639400017717753367755393825929980848618029879667015041086465116286834477998590761777212932096061299236439888389780353808910295972379929349769097297197671014611964012296143931237813634998210044560823881946322797937246895773761931037012719137310431040282717185161469929852103427572354699930728686721809438986115049421174800097076401813887072037297645426519102812366167199174467304042958679216014457841853013727516575945134161320514508262748578454012750844903896690331040904073838721418359638843566327728190295786788699592655358765642266537950943258050661143628661530177331703378111463634273854707855468479147624630977936612732764630558603980229538276734906537324733476332132462856120471062725619174491659961456902250438038947658875886196959933174299059210048278642341338095456967571462123714660263438968408074562882042804902780556322453837106080687050879970467338568161010703206748194136030532221501195931447454988842250871457276630980913460569451223343763427728798683701103328313851334906536008384703657956506114016990292952880308100365154580196552698488171935241621190373393483399526268502602739266475463592256651867998449470713997973938885448441014364121555500538858041674916392522065170831449338857359218562598625896121273951697919736132525098922861192959580635653225213193414023037843129923151854341758309309361101252254140611374767526899259017881700152485186914626448243711781340505042899246075564788459800628218418568804028462383110537518619184971059451370436549137375502640857292532759650351361350791304659027761587522774418539834415091805740379440198331046686218893018451565771484652208913275937456811235885418626850951851427068322102630215412210839696386313772298670114521596210824814876122975325042740835943742544339564754082243083978595721386640490686154228099288591934464130168843298782392888321535840046780609357805561937741516845584699444773077329722461160309483719767562046054053082426296957181792899741996614474191522959448049006691831238800036349237387462100258633631298669512469429328569401036794175940864560769069538393155068121343414732303788090814994244309507403663171389391694046755924369686925267615364549983298722850238627057194185091681492089589091061301203646257642323054268416678487631674685523430151237185432883840530407753562633297510915858349526212419236855377392039577586444999209604405845531121349916045171466924838395363902214615189444773966810396171033287079493846637248172979947838874259742930856037208514596080642349060285387489148384324562697969110807885787332144166888443144260551427749537690699339788834423600820137986400843428847450117575552387997008019287207885831210763337849109665311125250636245100773729605645064549348483940420613862290559297872800795201242740514570842173770294366632819477557031244407659085486071395558692281862933382223824791719082751235834316445051239068189684834785668081027528141188205418775949736312068966611525247583797528334138676167736326935206349571798254078966345834729288735341943213361506656459893542070311598197871508616453081569253904794349217182106211663149052099733619586890066233576453836505737089790553477672904586861349626994857800886813370164047993209684534174529135929510144129691318781453728133014287641504112402955116512091872072283913570304129312992147738933734437866994619274957977108027404659808441620369429115725256110588056869368339258600109645557554295328914972531605716915710831654592581076406391051994360872569332496985987577769340719861957815918424409731259696553431823690092401844323659895249984937064278129289718365337068629009398609217004482014081340847567200788953118982247927533375384043103572924937825316340389138616286108474374720486093470618052756483415653839342178173247442236689953355585249720317993113107014467328334126064651277005839446916661484358650492472901276238401633225732727863086373980584313805914568160016501665183602707673408198009946157316223804040422447245679767987235673022688873020003550530613918258161482827148476904907825767936468597768321201263963280147463942766290536541202378710042684842982878626808272853885791360936660077193892215390005558547700977265451069267497994566041185216699333934429509650068485140408519678278542101382909410472952927764117760448372161548077183575111154647582789754548730308594168722777950713224336294204116089648859874265243687334524503488547256591497464521783874139142421954090560832978464650741533409065855821858819036734871838466843143273825076304365132411636334630754000753991724419427378548989744833567425294194562785270118288223757266835545233772571400361629634197031449098248209776154526179164897531771358981224258683768741329640103007693635810774744987315264648685379499533551832521104674010950033959552951172345666332135823851389650580931070544270912757886833697538857915557374243085312935460422525515100054471145088930570706664084917925276081472591632799423791868625938608671695154945374259410179961206316694031117801205723310924706102969032270677715957611448967328421265875581221794982156728660348730853872332428657348763749321558947562002082161896039620131111758632924927073204775589812075139050941945768450780601735194428211595074720047013003819415160058306154743669304707067269501225852860278233936738046289242032698243670688850605604480462992320574964917389073324566555022741314959883902413288285554190356090359904496997688970205881986419974698975098375118776425017890347770813901955585962085885771644228458100040243970092622379993606072354052139111717072152639227184264887122261405187123697918153189643623276634829947603452891988230124497489299425758621835282733291156048731506855994256695130070428098768628073125200159769074534132083353457249344738563554080674444044147796021828576517123304943546484525821341190840018100430647638573987157723909483514546967620364679657685854923475885023520155538354767210008628121600418322191418948048458537716182372042057212660532842512574303466441906134081117388961532230642348251507327233414415818310164602811029113609494614737869602599516024748741432956517695769741336571083302113136871007346554213289573424971271892453356543894163155279162608694388685724418426607257741234064546698521046042860169806269826843542872753534471834430842278691832580957238696515478295744011487502194778943181440152491223814958738960602854189500349313708226841581632815715313339640590238952165903857420122213032363428628804680545275426406380535796987106928169171719181699563444264142470845530080530576567167378124469119528935464909377355632251501681461110537305929043086504991035881459320136951165585439514543093260107461178339246098587522047355439501385939371876511179832314689934548152029942101120187088474984731038592161320677409142752373836550225916095822863091021316000238762361016019011885335140272194827935626229079369471889785963434048962521846161312968177354701426172884449562600521205732485942117025499846665726694700798011590839148246480135871291559598760671406977214417764558722260730153323402227577341012393375345549530891745296649190437168862136533972357623447207738472705800274600432777274792708606337150485805342365709790015250263879324559851789430543290149019928836620924263865346915926803085094265557283987935559776756137500929446607561024739769338148690180654039166479002408961403029408244788244426342104726330421853385689850629009731835017547588445658949496110155816315863695907009558015755879622213045839954755423563894244175508543150188245909232696277861832492670173211014621734799201090114356914438316309310949790689615095168751772800588096399421724893222312552740944526457548105792939856385476083648149393658765702290633150772197805647286843470754700513961591608683104128185167021265122873082113626639852021890280014705201212905557006841464280924129788469035869561691210966551681307587687058268525262855446551093111977697754160577283307840892557074482496527714265898124699215077039237949162132370029801173701970170822261860420043102133861990513819220614886059924722903115588378752864776257693458256716949211657710202686946441456068398228264568118005197211032458745602346928065421686549842118188874905799834037837819914406211953853035055225279958677812896279030034415803263566764439099395492774105857873500118947443021200002737537685923818258451697277575047286095526560782718608970336901350866281539168802604198133512047712659290557833830973627470395954315686953568138090575013158413269798866137236840865192074215117982972970595350298462197490825250842913452380903878503489543789660002018328109431928078476315240940991897176338501299258997566807211096241777926973936188310586466462905340234126786137177787693984462411693267594168464417291013716803048141659367709234989902669735309259170880984487547771358657508502205332765598952636722677193077337139244693626358132451004211206488469377032716168440106302148433600936795864991519973050337636448872569710164251431567785210183063107510171518915135389912885524838101074191495696512097099603005655635114564544712082219275431139377009106922202601836984041502174135704057833766544065013480531618843494416287235693333426412331195548013969176647565307479360411544501146948003371478006257260887231198760649694972309498644783161790366924586423789259451249742606387263309101245210829675800163083768892741725286684098369326732039533387713873819202841377845452463104344701034429694776893626809565436543181781902233280617702139156930976064295294535792484878125502760472389277064473369263313720114607041975124378034376170026325474681994546125744244902063989306697195085106468174092541363777017661511435205217385167889696442452747026362750402820215623528749328635906159223948219587822386983993993256779514077903231351767409299093835611200506048395728948308014513406702682234560161802386632725463007549414967531527690511619086402662331203440890321990527231245181703646849712790962439748660374126532918744669887168272903620553225570787213615013703664119368931870530791946417352314413291496473416633377065790127498555058297015847414611486186855312708580959681700947666728874030374417615440893464206139251696528181181388032847911461219841128426897411274825665831109009652135960376120487477508611556137294507061656676986767482658627103956620000747108655631539047720482638483803212522329202137776680373074664891823253416691326154660243156177488983414122741984751553592539953984235086902354321209347247670664446484858344292632846164782848103334955027738135790489671534840349147685770374610566111330916965267892678161599998983263105629647747433246693413753800754272979381214694661297986376391548685310978314119109303536658758197690193502033162694685840414155831079531641509818079502301433592912624157810974050277303765002498556466200161844242227585247645274983773300645956756077800976643938509060930144193242550481975884743574164365488157522074326122935667058606649890859347393780381551470117131236610195243153726005358832378934541389104910432786416963579493659847229085417327661285095716558286284957181250170861366235580124483120801620514259058064466025198261461821634063514595356055784684400435635826523008912647723717841996062050864048522368270135383142005623966711158115728481053766859724980109155740405055610055048431275997160315594838901662100819776294984401330977284458456243102021702238217154274243348362090202897711979236537114129620677310239936346555568453378461299362427828159917898704904662389619541705600225566660215556076662432300813756992807910402316166143569208902028128341639578226815915614442430846526258544424267052392331584137701543209544860687037859577981699221568235755342563542063599568251820192919501741578195257324752391206341160329747866540877780894266247721477947722471353987776479626931335314510929226745929573983568025088368357671239607021540032547036379073826698785860560052274585146173528043204298402214171575122505438105189695030264878504731504586959819129994732374182053236883946381636455172525426246186246285077509462902849983876107334640587678511675767642411912881976733781506457524556305472564697430276984655511188652364636474407028054019081014041051988769444778429826231439550539060356267634907446185530107503528468936344752195397989513272928725683415998317584461694709207056995871627459572676480881853650550435900577064752050661834698754718914056184087564850258932847043857687553607284720425264582196976310659277486964290743279573714458130127373295601659814722573940557233353217124875421864822354162143111202175522699177113732693140315885230460233998260658060669707923759337851293788841875864421942454379650095522699857724939363632433876747067195205198498475376124709169604817296026968624646089139643890697906212653193676169488231894728320209366811302053946205072747652681482353979938046443991219989886839288758936644325314166764490390202360543701316864632617694003412950163746103604796921428346877028492433797214185492038416269774652546557346912988917144231700372329712073099039281691045563639906266321036416110777704923807882784585031531090700271877269977369492090811380482533141467642453878007422491155769617010568405595743130062486238732938958723142666422029332511241364039340249197213143386213071210334439376273254513163068590632526889436906374267560775920433249791334218371240653769178679388221045282470278071923541280769811133261868004019790542788220420810016576691122214679087282591884734660887761565423669197078453204402906341887551597325377438953080361690794781270196375668811675272242649465541178081409610729769703739966155012119296893196597004436504599788116031417476169900676070854372272696125328921912548715361448646221719168189511936400865423571517201554709845274200056177157485207762174927737655960758082451598555651156785167438647877820611343993888495625481971261257452506614228331917858433438831170844068228507584698191737021349438074583392860280127990454905654081810165415229202512248072324670109019209450852838271567794783140274137503664519848483497005100105638607009735500071876399266352001416926675093496978888819803090080551283466778813517490668356401734986207286286458957702287709791463301269070192779383974815802175387718481102264773793513107778167958824590946321636509360865459360906414501137686570669171692873003121431831421808209702788683257720166673110441259927055438000684243267951770851323169654912216657737756853889700126399224098856341273292063703792848198855745908114852331489485920280640848170246239415643228560564050072195509660715947159087500375391187967818205600641151843346663276548983340963483329259074793424090484718630500483503003256292073220961488395003566478632030399843562296814548829833156080306531317444716061205551502282242123948022445042376386464108127717094321431298517402649370312962742096211702008833373866666057540885625109297983418573272473807407515354758666897701121623165512626348169470954241437061205603896710142472625582773642204445981060254004398939857428369379235553909299804297508681695074974308246556829620652169501740416892430863978155677942824449193251924153470410676484759282433892121691462098075234367346022519969881761783752468609778152212080587889705495909765604830554536215858114711215951364004486406918053378691972864724628971212545625321590339528776964111109859062077535280013220602277538959970332656289222313371733225106893092492189086487795442014651594409636658933767288758488363381830822013901983933449634415264878401459828914124599868137517013793953165861607278198695478193160869783833688346888352013647831007995643890551684194963422318052613558241376004663236636912922921125140474261396791583304466652725471895924107881651712132265419625188416672149929451509554684539083675918331368981934599205549703592434751766211854983206971919697772735253845673616284178902833169653464851438415692388175829708539010584746133125473194230591148697482782863216908749187135005177516496999717725259351335681243743329559859707111924339386719585760166385903891128030674046527842423808688688187694622910006734818238796527691323244662357961088775000775983329589517359727280521182222725418432032928847594267676566245170744513541083539754478801263462477844668829565900110798474538131357410812603203703620147389053941042452998836517519741669734405412826091335753967053134511957414206059159419277516098895777607312031703116110339194715833766371172656903265435847159488199231852015261652565176925230869838807782020791633854829948546214758630319197217856477428810534741699620455905289179646757648036970267240716953384278198389523965005192799883807639334037435832112282989092774645983472602305398119733427746572958427824219608889159987038004919145781847812334018533660413824428546356572630815777924117595416428514208777735639716270339189848748053048167273152478593923910834155056552904895683347762032393087496051069871185651871177826473012187329708112824404673969479820293886799665344003200097518939921569126734935817427930338821501473458080572657012652089698787273934909163464044972775674274494993194484260827610099016562229267199951620239919445178105666198099692057457783513283512028435045555411751368711556422019312783975070472857093649795978424191524633359067932535935583057388913984041880647532809575017508255439440430036727249138184668253213907310382141485425829176834926738251419853182093760796559301550930671476510889840634708122160148372537981301790623424715555993703957184623103667376435646614731448366424637290278398601197466682733256880327695794226614692905416756365512804576166595583716947593919150803942228856192520235157588796175400269224455951857217150082451561575947458788757682293548874412123755030629217118699523645205811105745377227543367933265524007651672451013081301076856630215564240697749749506155090260523448878267656308674799915978614105008993948891002605471873449251802461086702204101373334447549347910109523685497216994245785868697849584605598873823003931530045223389927936079261364804146538257239680220195534408184777392455045638701995721051932749891543414002847401964009881310142615351773548531167525987339613629996448534898014067927471489771131454110992549240261683287246335198779294332998468415029006455774574565438478621229879121755393490681420931182536117384641118068880493117016071135742609583827576703025373743726308336688534336187049773354157381914395736159984014905499173879893982117209558661238470200792520019799427203986419974397824067041783233072646458017028255351595461044302105588767298553104063935243172424616491446255955698846647455207422254735966451284276901858451596467602391659957239814333446099736358381304564002598072526482613674050161513583582025563586122723962712004507885647352859705710831540728454085318864582946972098641278526335462258778406655304007419392356073273139928992176955450508574107616737156631654079118708111200368259874778670536271587787826673491652219405562809408471328808515241376611799946613296731707986910828504786676326670840936366809523984038383579083053544776155880234297610926883828132486773409040462519254575400425229812198605843462852054332229619519906357498991521820455841394844243214802386793814317947581797177930297738950108138604665583565519202706688086764096674526389715447587309663843696481421858343227395020778415497622654362682492587254276393529778442203988065791534330354908517180976795074087087885664761241802272525841688034626337742733354031115559608051451691924700217770063876433370177331585047186829169759383365342366905330188474282387021341199246906876797321330079691676158133102045793124639873585420933260540738313478615223120320304201445345238393369741026230859406179059388321875681898140031735210515631351652647575948727880481996541607614185220195347690772653657676994645994242915900186572858290692861879917463164871271972704817708247266083825790218378300744207945117693145351689964134847294939304649285575829833978392715524115407182741518156792272332928364750364811982015872141367454458415633597179186551639243985329973100569453431130246501055957544041243987832585214351461637232375711995075874263423475254628940929249000767393723516719796586895700070040311243264706741815657828239147267605239625479633854275111175234188682150793532749420615385977626383998538786628588056535160447367083419099726207666657533418296705943267958779122012276585618448531364722580706587573607871144838875270733377262460652661295776359347051655822556312456478118643936639692071936400749584107142054348176944690321214237352432777372429917059003580331562968156978599996269736173123193128799657141292170020320433642861751746538565307253223263084727422100024534035547425007521055120277384634546280599113250782276295719202191931050333545589840586053124970234182245046390144157782699104003488264071132533081694934069997565077554744804310414517224313591239840285252719932996218895796990253777329593559406850015576811701061939938335137370531110148546290409911176186680477456102058723316025156595625066665239803661511700634430098368463040455726066344671375435571815969971681455321368996202612323833978433989729477084119471228900136883135664792221341791102433595467267266579685329169464743728242140617366970358745656504013553424417133313089877481943225365836204702663224016901791473090310997207424228829021136090591985938978653981202046438522004868254686611564474476189688662816298288296385131721293735029040585059077726854608100868641116359185588018444048577640369584461983767478044429845560186497531464599441656541661129009962688828261592430645073300019474293051552276552011509268331040520736811853510343667607781678897555295202801661386221990011866104500236116172283296689028647796248522891730239414104221300835603916334089839418069838741994008083516985088203445888594880722900272540100259217282996429673661796662821434584084738934561092795122225434187301434409871564079485302858642856920779145105446011725030252354695782491686382418472445337863329934189311952916871477333463607480226553061906834828939825964053509014248343401891149411626553861015348878168015090754624992707700664894956571713800433749428744930443742311425050801184101059401801167342046290869980002162884574663036490101692515169140513859668549097612196399611954125941092780092072462517017326699626100601722432346740875950446225375574313269598506742646539605730870344262779087416695745775086204213095201415482198108213930624194700992253701670822738376562625116491618295261360815927831694352422670272686455894733559783976411076849105503544384866353568835515182327429543877340389739466926577160659230182172804555522684367472495385897717614792175784437452385436221198819282087468566790434497394265071070678802810827423444388369965661232128196780293748792060848283598369799132171014718076241339455540392519484337902754011220700256687111019301704632800854312751342675582776063785747432760467780235172585329711446484592217058530272910356554282107548884962582309999032568105855011243080309546927881801686368326457173889048899517023121115353175581517969614741064740019442133207966259001044534437315424282274073563623031443587934405447997517900030623092192994819661053660214150340770381836507038637630493245231147004526983793414806716033190648623578608727177975351812992659437888261412195376754978855917971203321650428707583015568589974865818446604649303310791693570044994417245202841337990102360533265146440576313921264859271275639075682988378822542464123430758695435835378837636943052276645957824264547509719528350298372170468129621907689187716776029634031998486905741225801292700226936364295485735574714666788801938906820705867879552344104740160421512867913325898212204348970909733513706818947954810277328085600949572734722064960590544944462300641852121909859584674985407955996343575154338186005180834323512758458149892204474822641318543046297667650827723952869062754439301915577228101314473230987139901008691530110291979780209387545100507761832838203414317267165573738862439964463848186569631885787835277049133529787211722207174221054597049129821516348642841034547046467692842577192598576448042498742159133595138633132614133802808905144222272955776048279287214598738737516189248392621110477421201036532396656556285809812927165144674442864492393447016034747206726103064958257344921568415838837745890545916258647795311556216252603374347018644786142441157725355038257338198828905901336696063746885198465176951900628348427982468804414398279439989026332198726160427815501943708116560600986615903563786991398935077631417442492458713317095782570948033029476936775743028392728852156905422026683805059203758867868895769571062370986127068103706665530131573806683881029268273989004846020463529359712869252793342720960113935224694930845906392799228846090344282631401559602243174758262063910707048936932331186733678203424844633283260104781837763673431547363496286177398576320396518986277302185807298796579251510504662471075373165225126480278612266758303697986166870380808920492015375087373591144678877711253359543546812581427994663273923930875142762207498876402606116870336238560255742832827838163772295435908382373357336458890711927878908858459361902448849050020368819702249445132128598427071471686996682450542122319884294877465310672818499075444277955574007512045512860564132010207683791824462684644942865109112610100370525615757910497184158200658539309880227742427834460768043037646776625028872380542219412921166196938391131910646459527121871790076301803296798276617473515044595169430796563708169442427140500777992694862677919282548325981712052883750901671977826817481156176544703985303299442308078590329303039524400779947098731590159927688321675791171156289303140726045306532725580174033460591963738796061802139847559022995690576846636263795884856698361890236485283280697146789473688226881782135048955086237833180112649486009834907601850624877362479522277591677930115434634299059577387595835752866590339908072679648618258816484478701772997395237679038605532316262372493252235685700817933843910181996823766124626005169378556019254308287561925324011936902038157596360178778881919941683634720181436869855495980293524413015921554385317906326138841677315014521738383119534978726345543563855627711512139946974743278839872871837500921602016447960028073351005627645811189629394980299482364875644074056033533546750100928771288172898983661059451694788520098018230098629124741204775632034391885434049264219506498438667544911170651531431771634972988894172987428103917359258725877976124511245565712903941318814142688084253854604914189530437558389950857734136880995569893631443533044385387661453323200433309793872863260048328296220081055637014058219720240586292892606418615472387220123552113484684336742433758883895533081935057610903727647282573017278627857231503182204834065148990511772939906924659395826883945368521046466694909710437875133937306006319107994172419829743408721870508408604683213107214826594131833712226270709699005529603251672901882514288012476243193995533991297083794233062109395474153996735163197804920937609160206305450572403092382023956079972198014825673000343220139790886616204142337240459701703483833382613841901820332042300502117276833472585775853271432899495324369863829728678083638961646793003110295655761463031243579736538297081587203763942771169540938073893388178818894681663959828162920616879452841118010476655494790459684003535816575453448731201730524916655085757967842525922430784466720617825199025939051193536962839633429222023640700827342300120081865707801645463470072529798267424792072452983047166231226278456224755367424622299753294071383274651998909613978181117859892656239931196421955061977237293381772169061559930714629690229098111420954564890731409996703490382896800912802988693406888521938324061638662418441524239042821764564849670602013665682120211740578257360266583393314250547144623946779127669934334325224187534837923761430764583675010757558300948780511648367399617791091297473970660744558488271688150221417408114566516248300968234802734852410358224262797945012915765230255187048616506312930059608126827134778822198090321495090141749493735815261634364212068861458305075748895858952047075222793703641711749916289260301925455077508525978299645497803439438601958839989294497951163891073995555865713474328931297604416649701680742340864245614786453562519993120355373054486829972085215000912738191885600010779368801950273650194178290227930084813225121279720542085777210245178985811166328711646210832447477259224547238719007452075876192216539560726707777628096264736751761971212557441550408750176445402746418239049101815692937326680135756527365403109648289342706827669495234799888633564472191896628872933644972687286685432539811498232500241815980419139638666595459124728399088465284108501914487565974067538287290902898060010433117228245939461157370833379531345719708059513044355438888171213110684013243796853687277765858907251293989469650207502755731335107019706712101303902188065704985974438743493456012836981310577263567847087813985528764084016316121219763514153304554478400612532303214303067145669339508717294720720242325722325944185888143300137937268534277987611807221246017953585229733921931696783530682970399891892255245995839441522805284984019830051663721654138595027368991465385653843765146507675709946074529739869726055477498722918177997300001622025510390216809749492428133264325133862361187620026596215365287567112313011832582682483197155359580507216814175276540816792229700856426776347185616565293731013707833060692621044348274642623643094012534807703145060815682559145965255053394812719302833047291660821073977235794249900981619736453885182547272088487394218541402429058673451651313412640419261583949206848323050917701604638658952936214078565907748923258474365511533890907387193323689982922236294978045324285577829431067613912547686458307586094133966652907153598096534509238633865218713783577365110897488053911039426324980469434213494792990999580400057779414770427229921843587968577288105642660451337229906260579493550791838131792410881132615455389546841032719691966068210887974346421889598863331584391805120846847070139821383031924245313544494689501975023811940384615305414085896137191853028568440872861110812266102653963277078009076254210435034370165932778852479967358906853112523071573040983994185525565777608440459595705202345009213253500455463831596384198519324306623697040921854310075161732430040505352872025332877686662483259598796672520410308183055119439454956898038051066186459221503988192052856306173762877840226665388300838805439651830814401557617977636378664199276161553985241954553503679325408222919545814966629606071250192348749969960342939177050460781158977283766805611341396405645696847293963108805490849599164921668302152255615728502770918312727722480994354301506122615764071235906818565655364194504292980375467259548364240122488262621185792990380204710478068358498384819129700274445218311994523379545337374641310441853500947630674848165354982357528075115691129567794065185419151289623795882146302910738543732426349760482474605497989865604163129739268713974333678967702722667116217423615373665388209294605427429675532311793287986296250289661631172276106009532258713017535738421205425934692362191072391330413287436975509197684813253748283134950555820851018154542462543574014073513142840820167634448775680715232354037558399469358664586989614919440660396796096556587118552155447966877687549556246690020490372761245021843552774622065559168209142124046317640895066416765999569800394392423757901655341531470786046508284888514829782262669296714881969242467512723462610785766406937020435004012324292193924159064954650868344573866954165891896772992906668440746570637122321604048045225266458701695735384484084726756839411116372765716594480822391903775830762755064597531368594922292747093727954926632873336785783685220738123457809004598465310947302776954061513797077419965319622662963711414575307417317879660618625677974287369694461638423202589181279885227120489399947749622054406524820204266516438930026905891999002588550099415529370772031959392653975697728672746295132547135349914465291805380523774752981693999049188361616736994484907676582987890097136110466735193330956052159883786860919183161208948058473697026928558018320301863110786598246039253247959521112047102201842060221230738624681745225522895529334699967993554501772785221007422027089579511182046823279235353616618363597078092638838566531945336879669717652558176373283004598479747292873999130426908040118491164720509185034735649999418755638804359899963309787866177724057242716451544501147704986021444610912825459109519000107849707685163247450193115411747035115508017716718607333281720691499593822190682265122044128435174150484144628544792316104149448862675382844906189029653096020484550762767052039168043468556204661983519949778687017143756945336441540582028454036652185360310205011159003409988757778076219513865657163215368513859096070369898903568036004736951978403651933700604442798754489057765826014384186051374039213768936300059628400167149525116348593738144886146514281562121013026848690097037437784711547701984553415862369564631063543157726364723255077052056624222817747805295466715832721857972625465019997686719730940623723516403772952729789704113753120037912735091320712985645883139542053267821685209062335948731737748806761604210702531667807531520351748867836890106499140230032341882153851499723518529445125218888136931685249244834021914161218960185519571720373463680786033932781499639543656858640837365197559548365823590881116286335191844002916268060426297950195365660438544787984889938931796683649113347452932675136462064382796287761921955067873448067071966102927983883029979449077187027760681332162150241068639120518050564013699967206909100761864944653160647472226179839391308530882209717938939893673738445135006516955449980720494426515090015848223041031557163932622800091256368245047627174242048119534161271158318430237962170560826220723185202971227562638760916692004412190231120391759304440317198336105003475154107327233833850146093199245926544560893274587813821786441388573072585583580495612805918222413347874266563769454375657912506075591063276082385641227820438493582307389562395170356775052063607534485244431659033918831646732263507702107799356431957229688232515905247356485839953714639742994778974333253918796101086625313265944045884610113495951169666884979672198152688213712052385593385408223006351109862313602849144290754989922832138145346332645076811075513959044060048501004735669951971726286973406536830600506536297539032740295989834753406381198819801400458996163361658786398449273850378818303443749837876688426827105571037889271957031743401726848947000260428221456061301434660662531684390664218121265762806594466363260256939606572591959257420732528869157851674513297987750469310184708482428902364530555223358581410805775181573274159231339111006833273379644806449875649876950063189781144178256745101729795078647304179398431208461432697083778260065982871668272280731247633107589743783405294230594145506508694873845721930228119013368277931932469625420579633658613056706489565665065018837295071693282405765615825351528723142811007379052905632277269565474518916861820725535319237665663678475698556782855463473919493528557211370334416922290085165543413221416208372790014714203085631030299662160234926639635445899167499341789394125571249900275741222682927635469501968427581355609152028000526856324204094130657741534305660426169796343346422066612875838377066453303947442637699111415691152618859461814736979698892653823744956190830169844369182486828987094395221347542375533180596496277755715880083280512514483856777552164284191418767492727766400793210868321479800101104593698309739855771608553023433922918418164244750521713730622562769232077499925241566835748819287912931744268662550772612281512501352675329213950084725292508252207369959018854081361736267463011135662076140268179716826094905459136533208652285111178326785856566815641827449335793998578354422438331687049804011835202699529839460485511499188343409769437563510963759904074050623873740799907540571142690904295070384819197171453569806140670169329906097117747013749177319111774810532581268808500570868292187624537041498177847759575794028517752393730935317370853410731851510362802145143427872679359937069034794764104833428496020985124514099706497046104463394420310906755886463068591342213760120302665840804463832793617139322179860867778722106186266654003786091139366920981084101787649324086591785550828556867182351026766032153841920519083935544498891339333057395895375802701088214380038756978299604284210262313482588533279390894825317859845204889322375576027936938880721906322007574128196529513447454894457928199312150348734273345944349768419452921772974656281775398414367878474273082383130387828770553469701067835364088712460971958001383880329034276008070528890989594236052824396871447025382483732700221748380063912272017402349968082175464208756585616275972910434097700646165624909378671609570139009463039705773403323927114392659402629626391900316805291838202646645497358885517437353182397090735494160666072207306253417663326648417548229546361663541590558099178647632125597868167137905176975405250591944505330149895358000533279724650257836467735422052006860895382172750107937852479508055248538450314513291956079328679657129736576665170058471590854756398683257322464639500730855675195450207580949427429087047043250676360132293878496962172445765208926129891425625568880655969227617900829870527095356507621020504197063778860229038926891825777817628284214969199738970880259163073474784594904428589998759663248679836912333713620133912370784691420907407256760772558649108461585916741044128324565085965305386409139694273709164292637507402757541659409906233507991563939333519951740088740819548647801840074471696514800953036596544117349492623982550914497676550443121027839573486166802842143996560002044906895782134068199044508866666567810699292605336439222162147644554915082974406058663004291084197751250430405523139624301096903526623622065736687621148706951519376599769297606911264004148780695895380975217127127593348919505047230492596343759462225106164095778651739404853549847325378693975752202739100179740745552191229892398330531037875043245031057476582245816961667023253605533910126156935383888409341582904533865336100694256807545888650571966955184903543059720069870589700305982996555091435566976411843851270995880311232605257827431682974957467168864878521334748393906894497723688385785773371260175077497855828835691519113069814229115010020773108386833520796207182275726079161575644280207726996991802155031949539391664542325728254689073161369931442609497125539337266451092032431392881473490656783033700501559264774180951508016617483450821779111448418156975166832819387853511020352351855257171320010768914387498916044698980816955753809163808132137883983657008178109030661450568156973931888655402705285622531382252376763098781799123507439333224617777184223351244567837248666076213358086305443419163237942635316966347419271290213563284563542151403001337958961586393604433688361051053112069875760042469243973210949380500322888911560339381083071965573856446522212286108693202678876729906988420412598524744156270989777372306352325423244484956954631030396500857589318656763410274080160451023828843240996934186197114758831947591645015608863703610956917227371740940500574775320903820372138209939065891356136897845334228612665861327435910260536318185696661506491680321095048957467308655446158037201713040869798945208439747843239664694633432146339251820818788923657508418247859212746735349458548356718997697007843012615099836834567836741097032979259001805099731899226988087085787126063706619793459808881959081619956516359146221330714713338015046305589715429464001099125197240550575184946279463288683549150942882877581236169007065764325713486934910786899793029422173951176666527555151799893309095166876831697657883286610763309810725565337559974321607127993343588651128141111055926200294491858406492460637178752538245540264679268197112560544081034345495822846948305268384270721867841651902601894260064677389657591530044650033983288646886299807379580624015240799779994613058291587954533686176763866102234956459757516926045103390705047286891825802056629479002618483700822380821603416935457295034557537950994775557865616126836409301773070416009702910563524555127472864272305860492861380894568700552606725923724595201977884351486942601415301433491806787225482434501189097564952288971544319312768850181390433693933912353562611375473034165481456994920005446138977613520101599174621738480786145171683690789600044064078257377946921383915301666257829731362650839662556217786708324065286276589160439070109028831605868189722237596581365329219665664695233690831300080313124510714078025076124936839629472991920823265293404265413385804426699497654252703260564762037408153615787473134355048714222484523595528478944155907279392121271350472753051126887686144121265781852291769822958830344561253470449190105914736706815106142040088961881370110451545400382000294055014664745748059557201632906361803024548263105321895361358413896776953356786725729103427713890429708929029014078044658067750815742471693846262488026469264672532786912954954682152739843985496045464040826568388537334558126714562695985287714034830065561531688517080596527393265497795311214907854173742321914640634838177208743259633835780286457864257085850505780102346129428075154078574682804014115458111666460974849591828675831901708176507605827269087296323312403480077595935382157904474330663232644009070248555002387516742765321829767344209819554920744297748320605926782285109231697338294143042652849254802243616513268499825418674819247466423740009899343026589163383892700406084218284557890885043020990062968747892320116297186185844084506815015522312499323661272174239917009973190992436247082393630207951524732251509643460962609721876289629999954614383969280684615904380031625830763270801443726848815484432570916835301510536146431625024213163287186492892287553058675483524045088944877861202379789847672236198938903537435654629308473049490933665372732888491761453769852788140049830320043621656756302217994014509809211688615692970010911255991996544662439940275323782519557537840444310402556919265090602966037916111714869704651832192683395172646665350016629144112156245779603927286595519035601746537182942822187157649199681499860025966025299210440068331200776522112754087220916246392395622124525115942479005804022336623817757307859372942937385361634680263667200137907052707128152779777832280998723122743665124521962642118812595527483044236773579115381470523085454067293697354985179162892884176512143025694613003057196236152196805833020514237226040463328995177535588911859850870917274442458887102353988238346394733346280352413875055703573280637926735195582106566036004328572290217644402515828560334397380367480723087041101662930504613672033154104868113792441692348872537932116482006621813163529090830130797865446131940479863587772098491967001711562654112085729083972131671557014663867134210048499558720613049466541559048214401318381488824248647698379571418723912757444878092179440832894956209382999203000955308940089755803271863882577456216212304726297477922590191815854036683517710760679816817049359083794573021364800778121374735846837898071881884467246830729688529684221197130078653291826611226688275033696396978661909750105265188177576330048590845025381393505919602458310543520975518391418160435973507194643137042895018127031226690576775640829675187429389636691901706248657648061805832459699869253498253480179158015562348695615193833092840872399601832168509293378453096687542593456754569817664648666897598593832771938263652299940080307620467845979600923235849583224847220504623776192198445472985254875635102077049775538254990507175011739696576094160384332505267944149916606881772924928742602240411855939913194595579692425697472946171437578301321429270619399629061073661951985022699015069546725698780022965443907755897260357688780966152823989888363590500318236302942700248379851451970980743051640277152810311729763901034596044069381925578587879291606582596658456551761032920842382945724518567773675179982739582794846408809365961372501483824031660101812469027828347518228980720167897458678639963828499245742371967985954583659176715285588031629694741084294889980592013532693749061379954477914291792660728700777908423306918229588795495463108669953088576041997170399774621728041383091869501648359186090947032894458934216940101333760827695868187175542138994341910823629296777997044487232549412087638571302518292239101159758414630758072427466073416803529188107190137071580898653170415582822587968656784549540957039350649656289302487058914705244389994365087572736167575175854103234430099926110569014520240366132709638571901624905425972659064430708580829643194479460904417098481569560798642741746994203610555174493204991339482649626297958182467710657973396878846597727323848591481150744262611789798381955223318376316205785425834535119233868908680517797285105415116781385986537028607959790655548266388718348287624673012100954370105209386700623212099301159314341360142504829893657588648197043975956907838999141120366685260341967442769249109152015280441193458906051503398830449658950619517719892174960508716227432807752271393947769089492961486092943990557454148843293705465843492166525320037218268443954833614037190380405636152125360317291866320691466565088746203264448424614296553009882532654012232983132416157151565222528342573946248428902665773494186540859199260874503361511149857418334594528625810836029616336273878188750519430718179998494988866788593040744559808800550173252753296406333954230050556399249446301544504892756090158488962126389524984889203287557025010196106678055676077997590933015129820596853988236173266646289230696259563828432824862437728364301494585966654136554066569387925558390246772541011399054390742034795989826432485609447864077519115841296673473032764883680101025187602759560466137920669488419966889303421437550881101901523876571339973185743564910088652445784115934642496051656279788243876826618357897287887921199611905845752134031826936576713931855139828617352737007478232283907147433836824460879581172219634907345261726149000458793425852792637561741490126908991862059009042109385283934498513861349342581478634319843723327876263458543830261982867381829387456702137650500255568434500622934951371632338349069373932569589810325185307627687089809938079758228148631400506632412868792013536578609075936291276587151260906594191829174276562775457864107713381121124552507371907146717296708626213505958650640377249006639494208189344280061310220893960803124335184468842062247053732957458218319089148832665763414211071014028005030903574079374220485053845632705278255572245617768812639315810307164063021485408750471056913909154681828800014367014657191900354823849192151511514388212714727594512346599459286018752222699349114140256345944138886922998088703167977138851867915747746489338714553279743617639518490775520653736600129118117152130630027212362858435680618545661862369970154519658943939839889642946575038883950384100954587957388868551892978310127612778698614959939685420803012484536387570086137579776303655582928509465851346841019340630227963396497961819007676243570065444525406568965098511784037434944145821814255304381172307718813973925419061200188338971639782772269578010613657761234530937573742554692175049382009553808712763790119178449547092036174919465632259034016758262332620319174662700125955524588488952945069398822977140275466124826820840298394601628621471325959727592323611851691119405702724306095843204167700071873556551568916418061368786218769349476342659833774073866754781496663106357647243267301719787087271383056631322513358237729319883381940020973502473380938604517603992571270042499301072655248346508386217948417304066069227642620107848840718469229227080419703664351382368876887262378061670566876318382749707514479954256001518772005093897618460282156891044098237990504967215461978915149203057269319913888225295886846623809004095191630176015028271721455398489872396918455910383058771774319475615182957325232724680999019973277235599027998429402176420402481849969854743073795252399800508249946929376120524354694125085022953211867059131347570897254472591379908400147751309148159424534493931866393395724284473731779220513694179856232812890700604826422792307903442063576640084101631593265079586085834412654987271275330482020393513494017200644271550058584719448936854428532193129077953007721192156886701127961408469060681971888314512285466854724923381239818928504059501467051454781759632292756132343388078678630676573219389679260324239770187866359772741753691201038391541304208145576713682016318933949031023883073536509317273633256219278192040254272730505349228060872495687433284705839677449558910801892475278561262675774991594540193775403419877479434597796991153947515692505322427318502149802521637441452855925071329330006538604261731230896265579020076564449327879400888898451610362390095488806972912926986887204648370779729166507323943889452321076674640161589439854542720637498385064635575237780342880154155561790934088453293389607356449383175810604947132958385297967645917691994873484869746831561681041741835401484377225010169271774904205934498297207422181807694724395337476205848358170052878204266180967626201601036292936723966428596958062524788749740696605739078853025136580328721504789505665131106934416181192394388643019480177395007100293092343615686211007312097893551782993566540660329307394555502221743396204815703504065229074262243456429556736535426461933380638585332653264383514953932647063293787732370827493051006756924098733464173355468688149101648334139402047973973697990860683381925607351224381473799493798446410370285075416878674705023018097969582568908150693736194939762405378307064038568587356561460981531959126446870632952818392474243670118822447623255003585283659978634697351965746540239353529690703106512837102506101354290428844130934637441236827822951773276330934215358943061146252267977942519882883786352707411470345601202795494434807937529738916530902337788032709303302921501877672385033620293798814992398505447356376199286711922684369161448033687392706245306423041846029770042839767282961048283502285462485309515691582890736011411920175387415298780292772255579007469637849401097218365707451694349249667220225781218184467181985958895324506399643509930852479266459241726260645663872872970577009640487160647695187263775417186031897301158601678555586222286873649385002898267414897206383380883532389436519922681792608466561756385458840377981455964317258717870333952489634442359573455156253762534306516274032038620621227151760743160588521876203921349604065311590332743068623320929491653270234783674112403005020343445738494542694961845410762055958796783049868484665851636336700382273407833620707228988115467172434268521515660448571376567426230129104213302812246516344798205595853429568820173440422623472488238927526600175117621997171574463850055772597823440332448133724196944455722931732632664883011489450183999676714063989976011453222646827214869486674506006533516263265319351143085148028251936401459281161059985196751014760619085360545383212385811222524688156693565210108451571173119855944434411353349493629044383643430277982454182474070866013730152399584803086802598192544445616294705769670412945495046862655491665932675019491087291014945526799163047435870790509732938222867476254588097959467400626095463413086968177653490686549327942038741652284741014896270192662329455273102201482415629628471403033208546583285374284727055951795600923743476297175137776627347358142749751758931702664695069524495064470532897843363541232467627883738712864157333853502047345472616334184600140429545709030977700219739413588500035444340969703485674067186754234330675752871479867740410326486263251007036445851822425350786561935164188764437244521182829375652627386132248893844368381247122845225691968743926402165697334054593989648617513345103687233965459606983497116814329890511878022235565688157632149152573560552957970500541251867929459694827321137969975998393654731095984389658209866227044187830682781774407823064675912084273195932408683788372683442157182543477844858244521917371283151283407444609998868688763605227699255473468489541462073234451831205701946464642528168753343059106533847819098398576996029213806827933807349328807354151046235426597278889313667895910065344687214669722067591248010583256049874777995413726400671806779794146434362177962590902568571247191225829550466927555648699099328831032206757258099169069899945855502919615889977164795630991245087569637504279361948916506362508759841264146634418857185107415638636776229885298353305895278032443916369421837883353231582184356543472354271658449086496163606881265528242602121411259482944134117449634130868266291493930833682077170449790643684369626086404339420275176979696316007746237315410263493418178386767351565310201244197770764369395022545724533709047239474146380619481725035463085724874332865503031752919816914043336632636486849870171487027796276361771002960080958690205592442121972143121063842483006473535113620139669771439076122398391934306116942751747574925802421023291039686269048328388495433054374100577235949971064895955163779538767815779516865099478394778118404860835465789857620867823748632812959965387490303610166952990385709943822108285211604670130644773801431153708848892233324143439846686046648667921305906998868721977005818899054511858396867643498493419798722457840200061608431966951248289712044495317193270270859916921805407081017367163205825711521776850104049193014399863846503209100643721321255263860843179265061285496415022637332777756374290883558556377072933795993397063849501469033756109074105225457450173169510507671961277005724814648743799357519853425129334436451487431045861877192289301886862761378552912349104564436041666209491705993265348863431656656334116559527301359763900591897285777867714591877603007629760537989308411911516832088165937790956600184752337201439844893253048697580834560561691524352187609468049582922388833224311736459331734231422440865062932341930325894491064981343123370615238672572736268309538257636707446654080976564733650936636039051678805071468037635915830113790886776124781007539668771401969492081697986347275644848737972397770906258700157264503403492597428898468342297714862700662344264416995798200711877025061782778240366093427664368150798499092869506374553365095615666655434259083888801831847820511106191679946547670745313377082332252162614043743055995894153916723694695764161811515021325242560528096255718549155918721011119108282476438474051869225516842420980860544232759496238183861087657517819855421699602705396541788321287394894661070346841400515280977294192256975924271615886331654026601003778820075039588279423741467339797953326474076234837279217645140352505008938584517264807343861792286327289170236461679001602243108645482529135123036806583908382965408293061400312936793283103861435817339691883451447909906924028277890330876729293571129652043749362738815159225265530309299951844539981649608751612646885514650048798328677053062755738038799641142148730679652648024481447446407084864785586234235961257359399740374673185988361722681169378858062825906127714175097733599855830299179461402393807541842908479861805869761439952866671517623893840202345844932346032362365893400091261368324289530790177616693991161000183617559630393185205384566007832883424786952960177571844865332789128626176996687186541530786164880850363331107081559002551168563375288634450696461492422895678431535389680715279998526369486820928730885985876754973871937686650119220524149292170365955643740457121794565887520923509054127876231952096098800994065520386229067501635652075742309701365795018664115490678759532662173555394024081465811118077160037869332510220164082610668600591355759078813830276411988983236926783640894624410188270733014566307495859102853575786231684915820617794800570864097534128690914390088200566761199679867370519271393216562313365073743751411578581283562959170496033723272870070302214964777389052643783318410750902178694639967742292604026327430610641257920004058603725151818764266372565349130262197215522323707379577613215124043956464258970202617048312669257205047233344586930447933361861817473754562488729066474268347672220641643512411480428630444416046321142739773233040398465135400710269638084015754328316500704580703190799593572363540624236626275862555817008558261405748662447288829579619363272996423841909468004705856310115632800158265451321368959664320220004924824532007192159018287215260539026303236704242634090499542048269457050160618831665176376196838441996678170227008716818197869763716778967636748739854869890162563406753631352945374922523020261596979731955450934441603848767283164202813443343678888138496550139854427304274295416226679483370388741673932020946563731328239642831986489507362853445038037279399569690116976997177964061660300949425837771885009686565454006763140010961822099104904932625820701566295294167594623202512872011900811689084409193312172814412257075246653173082910512734960707346609006801911244782525309784828333798917618248608042029312204411338498720505842110482232362370852912169080804644905196926881740094842058168299509586954076221744682752310788995181102595655735897628574170663513323547404177632621688710328496506995869896988605018885835529250502216845713207072754236255163171634397470630039022830395607373173342528616397716977878356725732310756377814406224790303570003931057638936392934253669991668188955721335945169092669736055003564167407616725429778205418154004950079688282035074729200398190698947319748516323868667752695918590550808946091719888389785093991439924094165770333702914121844015168748622332931861792058445390566587304806835360967109870231721653698144997845432902390494250976217133503117050106527681692916696291417784270903640120380400876848536238584345661158236949646502390835262034620556821041877161171065713597098350796462597700514169538651070325133007638431033315056955093439939192393878883290895019456005984449936811433961192020814389387453512168572412033857743443865047500773834194565723353614846086492499580268939876421403503356000683437541322367855874238562204732416052383696281858231934195742093496575137488944883298973428000288291246785132661442093745766973677948585240688658173119814057064667455350234637284030812257244546965567984540590364365884625250710337084919039495275370641025652383110082689140535697191807816765103042673428485596319439938579288062330896723826961284428679741349353492388059625264703156126650126776186908470315871835161648880886156990501558662549862347651926807248591346069646423517455978826345255768502034959545428829952670172067632960008834444924766347252679405924923229425292143425575061110786252712872052035080675711005797726184602778648426555217853761539717906291108623816094361031479129876408284919841527632523875415557209736837109910904058363244873942378762979251738352320112552340505536491772445576701475560554493984965521099469356726240490056949675048313163868013863266886427661011999315002251507377335213236728397300890333918264720859612482875437507054866728112195785970178590839778587389006565661167496600963707103897995532725266855122361329577329395437707589544184872689860384316696638447000571975166768008292981646235442723668128224140103392723686294479174085592600037072198749571511423259572150591133822926168894996544863557341225036111133837609814738971261708078519829953034429988835037837092789496170692075092962533483608852495437416462167687763106278392030534829203218759864140577611376420700128401837230045885353797447340662500249740579630315600757857705697091338689020225899362813109304225170568122170547057534911348930583451507083055181442909359162639034739736296618276035799745564017142757442508597760131631931819573293520798841797132187337948596360293616170783118444396826865278652744873488562496525662785955482944358526845665070866769188976534258978468587041525045399028488314941709946461395059548556708135799502824834142782739673865756460962664635497597198999914024151861825834225199155134541564855240753465999577374795984704338924375625866372093937441173626959917536870410996826352729275633439454510651547544101756595137099930163182540413070321291110607698813351589874882252470313272760067909339051493779077455985785037680494654794778036055665626748979393208610380813080845369093745765205113098670123646937460493386831604880904672758402466591506526296199136121647793689417154543737431969353106504849255681295072709433712830730498803189392405198868636789541193879358906622992361831812176055703479456916147531347529361968495569643193666411724517659039395029377643281324195402757468541805326407174257500504883794747933126392454623142409679585194165252862729616450262440375748606663973361083948680613779338151781537553170215303670178914917099248323722276778917643203975507959808290141819834373357344034601798674306305753754317127504855755364312650480983232544416836299052431392226438637288299487589366868263594355851608373982226034711899767620616680242881999836069803760144175504657624817029239527420720541959788885712933247389888504900816512954856222076851461032699929459408810771872139530591549635910054711817530532128929845639825360082220591457937881731406182006255500146104676983015879660857738309437684056456100437778498923521549443865620312753973588970500550118616822618575512402513893881619197067025415008433380843498556122397210467745014094881250976938872155629875923878318560559207077754513826743713599739212945842708005458543250663857181196426927653428675237694494596632692605790077557021283067408351075150736436420756159679008095155973592613161419275725126617258914675956178271421220672147246174662333387288018825978016192619940636120261575795816955673474248384458300180927272631865859041793688327869101224877608587771721327369831221750621536381262546322346370698843830663039453039283076609233309938297928560499663751561131198991154938783512667347578071366756570076123322379736971839240726519296109464721311895750913158839895272618537786807807960444433559483022970033413763064713247848470159886578445522432982110617318337388614835731541929684306112320263664913184737981117787418252527595224236371624789604601674883679157276755177621785615169324307261187347336449059181655062204758899594087635850366660922928280195060346522851014285173012147167302201572636018721693581012941633238359154227667305365915092565984826738875736263553833247615542606970946114080935942770629021628514357863146141992143444644093382573824392504857248742993165223402614743486871997894972610559469672805913746650769162571013453350114160294644169919465831725307529389612418127853661775740502924122390362512043205964466713624061095652916153307403428296673200064357508607355113669160819033525093426576578052062341624222338362402734635246367048604438490606830714987739205907367082912257604241528886240053036596173379826106859706991931439435118643052109341832561034023821976905015501538943608303251827501150399383296626335972660011578014763618604381836639813903837564285004397715132275972528417072086466866482507445224139527657960523861539274069266771444949196246960185948488556177638199810267250110277482250583618917860468715701296338156155575132114334561578461071647925551775068512313360456634000318941659669482858758981228570088533188639053806076799708019698865484498511591059557394899233761623217810763724005050906625722377290414816508053195650889637967828877861759631334647199976081334283058192065612921765198237460098048060537337518442345656225599899062425550451430496197598772185132308257714744926256254380052257370662680903823806695800125420298990034013497102007388137570423514314358811440037457936725361048306116160724374143100500158901737802344174420772386349636033738218630241660687709714049341150339928101355881826392629784819136633879905199003420330134478677417500593187827163246537444124538505960836069498584093240858081155527384809964004799069943888003607135347046806291575758947272663088488367588981158207898664336403049400179404536721059885278526012301690759458638701130239316365251222271487979002695697018776584418353692687418873768696126865343957605171351627618580249060733487591097668096735842395422566012359679630065139663422334353804484236437556323950983152755683846017304979390040915865298299800658799084779369648891789819061522530156520910183513690787803103598805156910226052821020918203035392998056066510208028824615957360726317062993991689692689846586471706153282922705921812537760782158887657595360030855955085262333597317302460537515360847029747585222091033427126564005462291181515009996635064381559781755367871014898329990141550785116188805598911852842590198278162298441619589143112710406432422998443578099762111919674366456399295195967211288372939129418128099175125294649010054268727460679738639694216776633959834583871972725608274107542861514865668009636456758901384362969720015763372018999076597972178504159331687649645645548093308247002864236360865479122218625815033991725542385039291961437572905112970348856623269320673567325402985008093784794149927437387821249064164100114124960043119089481531830256200170989064143660936375822710763771075740413087370830591077572025037160327038139287844447749193991901142215699944786960972400980191631200491014455766505880458262469491802398183078177127577654727565066153379139179626772047833827564616175176654959479581995360541986315132694503760252966427788912519088985867679498295764265602202448578832072079868162844427791157704284560697593970187583923719157533824052356976373635565873477961339995057174945551970361170766449443378233520098694685013318278006287486184637308150324954737171755880523904506595288403552389279905226510218803518692780492152786419406485262892059195391587462309528367840343890179921540330291439637124072618782124405772470225852985604980470947781111183920345020471554933294579069524073824218579991182460090731218580594126378057304714465110659138442251214875337275197366851995970752337928464165212212615898961347606908420138662303091668994242871821468614509191135387446659528749490229063406704825240969143037139746203665835821653434002859945346710129328804153070278437984412949560869898933167358189009599367075437260640490390955751451118160344371490649283657144048660481766943396286880971191503237955704120387892475712832663980884454295597686257934300298481577554281725502740449505095449225176288546698956077464258650975413711776175416276746239330510049329605080933273562116068875774793603741343961481266343762233483188886770529025994838549079509732824442716756387469847864871852245095871307040383236594577323507148463181557214484771797767661636650603211332464956550537713018459291016265099096870987702561139776763415220356681918113586974508916734449558451737188663263137489840061959408190499067621766806522328467952536259019298721194767662303593157201875302256485036717977147563437001150739237731788743056584765490406163028507175519787213047473124812672820448415856703598814662716258908886494605348466126511777189719867019220803234903190752492769320530674677610141163348888937195877753682694859665747888442002406207859939510432094053336086996042993570411076126283676292659443414973703502418458049840986451041979289917025423232441005136905150729320735150371026713371213199452430353406691145870851223509852837013878143953049365346182250616289083488693276198018920210438624620113441359191188617458676311451415403892396650729641904026086161109796968045370034281428793784510638956306950757879320830388794808121106402622622116428378048947829378551290531836812067340266665305354139022203970437271070468027451999606945775993841349950363567284532358120273088095703311339655361379037439374214408099866341815940355727970772822814908726274013215387489378836779546207505633914002977608695593148690003629755203194922525147808899530555048077464052183644947869271943495767371240431365165107111405209898938743062501502663175370019514707247475973252209673625889734960399912827369990693087650033852150524814189039425362225130146794691260880521296525739486507499553999760197707497624126787818177435001946801561217630999111783452045967488877065627543653991785284343381577393702980262712731099802513568297524505889579091370420814652657690067951476160298662462503838572156750998891343962631521448802784276699874284274554098530531790572228111810121784590344380518579671634830195850472100106263522871396249416008917342494426827234772503465054125400584082278529099468632139217752554634030150458481534276223831798311631720359469898117689196983372126797122744635684505216004219455167650181035849367964637094353519887676109750995619921172663150231759096598041748690041598463296305866700029027063013401242242017484015878902746338438409290971202331701515500974575400074430804499501982143624421823825378842021963309152612761564080525779101683320492715446800074341066227102096102194479174967313360015312904524243579797572453264954973800157877328011065282792732478409868006622684539609688390742548987924979680289321407015612628073161853452256622800110299959100977805420229007223203224823425395501666488126738845474671077258847546542210760029459954844936238717378673057024919526242962816904646813158797414604084945391074398852660006674841465752996366774347455021116607439343773671616683475668503674660924173845910984387874578810640875251784057511212492161358035967367042013717842880127560420877419962573904970687661739827991787903872950435599489698141720246232967444647834541734444006007860388813719361924804349822592401673775919879809095987444010905668868613591760211399759017793869774622785729882152168953756118178753625390789501124159862064681624617585650898149569893299238817429124043707548411808664672225354124543103441660001232846655146514153645305742795104340860172941865489310948847916845726115975366388630665437482510654804812882069188565594980422214500560233586782630240597684057288728288787673833746385018023486408242683519914258763698078669627531793873406678091891173736527925957656034460224859205930803467739618205976382336577439726957627338506509846006487248797213370806507253755104673577972891977481921069151799366343444229947163130058150257612562805841981149418248224818575318801183517883931670624028229363662090888377008599382172627686888589979944132370299794695581479935894877520013765564120113558760417252827160053220744779252057500673792549288005147312847808086079256999715993144498732714362257560023597502735816516521595643976561350948069910684074788300976553111119967156393150184900898597007612050903233774798905548935143631808250732979816095956934668005596400568061815197918132934404702396176260498300295655896027626138701544216525092107792261816394221710725730908085668968353545944943686538664161382766812397088747090684581429016810146432483802226644175947627697628490816894991500929037113331512510606920444132137428116965048539766759851502071676162235419995505058800804871242806428420151285318047117029928035881159657694131813183008488441803789576813548990263303185489417891360292479890055858021535239583268395250687393582085531251117939717079304800864406823813883227417482641364686664309158300883770661583549807290264762131469995218284836949038080106538441005871766912599738882921221490642864047977428461688977353033995962122307102631442223718180239428581724348002825731876355416999923991885694506826269290540104134795817795987323568347560501116634945557643792891264542587263134729829344874252571636927651950860726973689726184118952890388918318045589087284234233260064973739792717729742843986015097795381119075778798475437296472000977702589051951276504916068826231705202788167095641636081928797488602949147761208405136045342412084155332155228024426706740394158775052297800998190675524560577014279686729027941133978274010592334489748705141153414265507704053193117167468398850325055830282649287358580856638560096819348098500825084420918218105995258579477025085214313516322519214501345297526980327188398493228496445849327142353010479307257864519976226804717807757392239843093485428650058560484928501787241155414730573988533943589843017049385282392438453518806062692642636279330152296454302591380445445027795424762561591119653722191488979231959567760397629405337011701774709270696978555446734437339731413118533714569599697991171679515089382106829683911806589413499580841529567433171139453578978435380291637509711716352509516793268746074700969968305307052962571232093924117666171289489330691139444508426359818769338568330828456889394366461575261400361694339411289781859387665667661015895136288825159588451661063079673744704947403597806401432083162735333266488007256875681901186399479088837320634442029986820140330129692755442880301997965775567560363978215043976840602433291167944952783193251912063171222156184458974646652337723036473859995337447741043600656204511552050520946136715143347291523998457045741016215694706374551020708175339496653123783866713647032964941137590090241587520760450364171593408633986808963178363701330160148596945426037162946187710000449638383776246273745142323303712474762068307659465009822061186273494009498402754634676989799289215069416033904694197613056655413324048155944013836460672035824505120656229924680024011888125628057630958921130919912835067346746409178485931230923071145461785709384628871973527697470260501611402102279163117245440025010426962405582221172220426147232871014623801296157696334172344473702593422185616457117954093677258994031553769446503151070968377714703399247038789982122512888488931037386197160282661496009733306809517538904788754642086617634992051274337561392874241771344299862567093178237309734125276100531887476258507313774920771887423144899642457444914691025419340839383280391563043670833907370643081332909967985195070284230582824565668944549407769302943472610060954719446272385450459868955674915870832270065730268406176624511676085259341921034102152298368335817590388751447560391772908158263050217354044646387637905348510901889635577064675466709627808920074717847017737216083245397940472718275362193205233248186011334483952500791520096835887216935663545884617639288701435660885615341624854059060757565481187617727227846399794245285524209697134258763938084649915959357776366893307950176195959670753281063711750884428995860226688513391931908699383078012892978675484927538218001975865475599018006280732042634948608621264316840881342570231985952988779005893392995458256043883778339171013736009376937195094410487515591174484492992704179858892640321317003384770748854417044680318909591420785025423741087212387980839678412586699272342674018052216593085994861773354432047449974068647505122933836034057904095950217964739475772991925575364945944373869248088149451143208719369774377910056492660395147760195910448022937664804892218504985250463597305377244041914113228934098628537289867854969884973242380791698024250630443781880138408049030753662893936203198444408964797140537115127191238419189118965462534357117300916070909969467960823089357094949748466807968392795784740859495244638853108157011156610961540798252898729847722386861404595367396214855762726338880253579758773285569747853029730888004184081676097689649411934198212037033174726933225957738556419593822284591139513538976461667051077542369571593956135679787312836399145647010532216571063132019431417992240330331354353889524618027861311109805149396123879615746742299905833659354231797801169743085286921224438133403085646924241259016368036464101297613434365114072380329959007024861372908695365072311731442620202594418328098338015008564394590548102971076549209436458923831868807888229406150158219039684230405339109978943295288209673166303911345582970834988713500783611587822470289712341565018474597770087604414623466320201239797591956059092208721980859708878521021234863225961949710666843572100812345265817062671332032281358575642178076163767843131248509290231371216971436256131514442694301935725075130200301270479239471646722479469560332159575719955106497554210520379884551390422748654756694031117094461851674284671586313712043838332061362309708020151676284383008776453044759254056419374430701878073213909891855385642149065281437117793142434922397523734518434318779783537045645392555899966380974213651937233804464812977483093583252801142258019372274611511352564889686354116946436064019204902969727136200209315420119149950937164860311786681703159038541810086352563269029394375144828243779218197707726959538945495161103806863588102920045214507086860702377956162338319294340569506025581085288428629795669614521830646152400148310026873380584577550847282530812979817014742514453496157834270332738362344010560971387174885288114799310980682319615821062446035748224470548889125891003975691127839899231296768363713270821776446823468451969330653864462861508914482019599993215948032533608258836399342522513952917835863126814207303526621833822433895308213278102165529915105731651243391096801127290504866848942440228124999430839000830732494822181509010357952858076995811374014902639109691640035628341217070613297509122658806027126152753882261177683819077629568593227413997366669502502744535433603972679003984953664515841382724694174088116764322910127724569436120251278738219216663605215816945732664824764744838119615589526406959093333235880205098930711037149037317978525786482286021797601316951797457860120721632727915211196660373779363452866030946197023473150508700750465587567396402165218729670510539198818687965620028416977752373825298107696218952711334893612405948482281111809739655643344570065647715316264621811586532116653119942378446151070615905463536319583919411128222942137086243351154224625216764015913687944845596509882488459332047114263528909435530014087047925481380533196610809131044369688851000937175011100044365212791713467565627456488022959936129539278442356200819568238562379953973445465954470522314471678788442082594904700544967332420604837640832966107873019142087399413655298093225878180636882041439639502457291953907102871622609423844658642285691319048976756858203262744177260545833392167456894241420335331191608881036322814907363899493569342088939866735536996353108090388525620443316668434323497155755509878277710448281246595802308316639159332065913428108738471444444011334667917051348497977687125165054344072072196786427409467821074891737029815672001339416834882132526111157387403663540199061502896531049687070074390332590429333174042120513202778448772264513754120516261220364373615696134983055306054703633271377597249446560371534568177298823935094854681421348306059912402092627913596145908847282926435839831293392998437271674028031413095940178306517948181878346692169624855670406642195610485386610876968019384928684789402450109027121896665590102856107600920547141055144630019290887868750233927625607110270898054018809317426538384552271682715769243126395733867213076450945858415701395735318457226555291007053205473144840993528591129326580957184814870235235340108287200656926369250106861940946416324182877675732371855473681289261154047529117300228512698166780312558704533323058865765211214126484053401371646312455536670528274929913200354936262609307266272517451510345348718877611081650223476080988920161295108854756142998975375068941536041503333207500235020683405781132059798219938804048343029803933728239471438515172814516607709436118378712496327668028796658613452085739994032227038321660095627263747745150020651776154622742210787804722218409321187242519952678973436342943668124548671766106775948620503391034819564262718420334647812934505818051606454142016660676129567211600571042520687970255460008983373899853674255712514047470824489210645951117327133349966399490661936977894032698414844974737331621617095505058200111040452997097983415982338917675764704192903699675564513107654180078880530069787183648008481246222485404933371842605615698292943776506760715953466465461031504985208723508863228530400287307350166750211489744633553930058653608412462359352832895058527966969382731271334048768359743923435327603177290458361915392212345720355638731829567026846882276477858127428511242922922603044110720334255896383675681933110392354794856193122430562553404595044849282686262499217743834641624086997652050177282655733145404946841707953639896546334759527069839173077424310082822929381582182732763896926426749554202287484831650751698844035082076411581328409317185985891291642086412878714147604191998122754284595049608684968080973120851846436069423755120984649496795565125599878467818498752904035318090168785495501373263339318219197439157415287369625187184091764689544518763099782351247550165174471383811784439196711891887558495495926118686114563024289983069833578056633579561798766240186335126021952364845075214976194115938282332895872658396903718441814786158337087185124257130043710099191668474345809358760057999985666104516491074999029964853451201849086250552122780562890889173790806616345142299270882265765508933735785561202401353842268725373532403370295551207188311362148010055267065622021309099567862296383442398840702348091775085966898753235559084290485463403596890121265671519995883773089247951858422797076072190158480803511656488699071392509056825985496073869922259821694697967378728005979843064189982508733191626033506180577416815212616958774539076545307313398218182391558295869218460451211262321254999943739471913430359142127289106851996101543167348612743886256259380895845652409611249456771518176109319635215660378014206584753842411119947275533696790917609973991826219638355495188754516047513874188669764023367816626340295133763636942546652067383494786870224648098949977680483425091397853815814095944020190046123439258605621051019254686133391851249038511759224897779267997324351126993857832491358840932653666233550401152600926378303760923780816197671331524105502142026524871725127678376232639589718441218819503288059290248762771331361621354705373290179413589768935487319771098298964355737666957271219303348004179153926834844621170600147345559971731090642505863462819379175590652624899450056458347356147591582768122454314505425378726584325949930251761078275306923407775842971367662076918736076226680977356152574903280115309767767034631779943231480218034354163177655195154112762207382001175038336116995976715734867819267597601797719275767840994893328518183071931696554288300342834984496695061118297333833502864377749496166460730213063696651344404081819222700196204173330119056928134641437468569797018206454431900479169553513247544705241092936004820445210914669222247700495634672812311459171271857874047392622139824722931362365449786361179864123283293345802985366278003255893166725847570451202556753916444827021348172811867276795993398253517945414826081367746486967784819000144122499734840286689546428895554093792886463815041418238439607112453601951387481125304545926353629333658163152417044195404840812544185818359783900356057315135437845069300710820028046660859787031958855711466408226435732080726791121396478141607737678356383035941047252432727117251320776421426391315130605885124384674954421147715921373301588544875628863422541242911547111835066927479725912051657912820441723999785048923954182567550139633820342224191814104350452477686413056766611526163975286638071103660329068487096787462813135095639452699855585157127252964247779036585906092094501490855199241368498405331669084959834050369997344343818978721006774785498292493011698669551039694501771509507441979996627134688089397888349845283334079131742573506315937124658269772285518676562370318566034049180995061229303940404434606122687910781054553784411533171213655244127521616467242543926403198199137663419281186963710729852005968484567448710084467764176928599085128006798921767043012947739491914924389947708773070622211608375738004929716340661815044585634866389083176175918532854591639984485368724895209443664844944374391679999198158084665386609946983659152491121240056564425878242613853650374879014131219989251260190728887770973997607157370565563333985590866600053231305440371970352584004318638492532275297088500699042289316549967142533623492468163778881210102958438199940231639575816203019149489415430700009206350603383453085533908464634590437879125048249707307970233679536146246557079639288885988820338832712432585431923538077640097133151637820338999107656293606039169004240910929760749136249589293499524467845160920365721662724424962238861681015998103351388284828111898158337303568219615618782579433777418776382908114633780057859846131696552742767075303729576292421901805918132993272214125699085261014220108511952353747627580385798366549263400333068421937453329889323850104600979031173134746480321361946129676183705623027156595436022830288179865348946397356311644047670521676289448250973336816432652209135432170105886414183776740556560557423979896947094463570273542063921854917755836693850570332557138090166865137537387932283803038523516747753666259460611629677017503870275668800604561740060057489102738179242009982161298820875776353839409010971330810257025587429021900672519508364959672825541987393388077466765748895690455454477742224892479275441775223863084312587458125589750931039406931650422381468262133384684187256536462391157647077341862405486211404384777404162163976479720301674897192111341009150458939782772943861859085697052419240470963986036511908409368929073775900577541202419739133028333482128115179736081112963400851036503399434936481551455932176472835791206732716737589682236808885295239116599094902691564096301609220930962032415163835813677887330638062785369588049467786944718709345893913681605062295721159966247788558314968281285881674877365557515178482577599230727885655616508412459413830433994143959617671266692775096506430662430430405974860812044450045782323334354381946897572470735184075491419014966571500671281785815241348700051956034439810587902882809941910266468031924116266824446004439125162218668624864962009469243198758585207724413809465432256257962730946571265200533132933144698877775381621941751408455096259827055079708480725782809228930319462849514776809749745409851529504217904316977838369857816123113162866653546577431860890350983186059357166536522330267481793470963547105241608825256860324466807267544747314299732512224711324644138629744991898452736967964190525694634835034492869884657560099809748884692858900309461345727320516656147614180712100897283246834471940591625455005813320759385395175540771646679627387778107885457995118423601133647143234219940539649157430963295251945171092124637803927874545295796228404704905436358598026704736075578842140857919453413220365135588866301276986689148207761773934915456560120394540007111371445123064817748382889277257937713722321432124756646045869206268839758109903490224392487140748898680037937509440308671317703447740131501668229207571452435292119691888540371803959825316133893515362604989910909800715377599986133180809279338092001960505372081444797861152409272382253421926950978704946516993557286684068384042256310242069373070637634568616954726674192139848931968467171866747485841071398088614832998757030362451198909301495521675886842877853305996518365231969282157604738692552202810359575219457364484687056501143040395657579929472737984848072192959428061559534206972712293146744994531003905513070860193246774378500289640336260771522509318352195319242623430456894677030600990645237449052886989990648325236812197394351928481830250275864888360704643500977891608164988281896247762061925293208025826228218737496223993495056312617467863714572065648667505707776691427068540555204473449726946585712710242378017350941056187259209442363391956076875867310798980984497444129528046208571000140126567443457545223927229992514730289188961160205656863552107112480708228094267321455245299602677811181516540460085300785543290216991578353053058769618096181685432595719651058666252557436135711487192535321409519346713008510684291548966671374531782661992836728008866405195455235274954133491107033407404885319644835686944098677099857550575734376278224851045318387874703922047970024929873778136732731017490579667943044938043003218224110276723915957443105511137284857254399059779388574869036900367061868061703134455161966426667384808292069654265737000770396193661160068519703239755549698728135494034127983561524255309182139208093996454849746071305751113012536325403158005940609324097073451111849934442124054084451975258783488300342097722732480151486984825141041196479253878971317737704943172155606767813294217724156046846467962618310250514577276873892745278392567595891936628412560197200058901081135239271806837683597743846597682278542924641346738619497722437040936733492259615093011514564927928532146692548162005203013785697853917252906385021098641235165763408641139322652273295903286398863222512820082309226059380405698543493457970411584569748797247603023291057288105004199308637664718359781822820959681859810494003083526996698789905153895351283790539896454640567495262380074394979226944430759907423272342254301934353225014029976057379780227094515124248755540560385196613816031203447811112389239109987391441186582552398880183628065271907843400496921206594441178582388621826409192381384641465336151039943028002450203579043587181291609545120463573427961332245169310603358785879929110628247223496335146770141169348563433300655313688378043007275831339177639231296381992830231855110154186903850587607234768034963879234802297539729983319144068944717677224552630358996802484808457898014834785046273237461189359076004094759290170050728189290312655244771056971692684679866785262635412103733610408460363653732756649370644536541981236589990274741466961344052677369721705693828236620389305489334706192904784764356053870525511157556389886717962216767799236839645875068438840764540816081471564990404015637887251118016507875213847575713274029490074254463846509747788925025388428411560741333527654295623709070224297612288776984919827439836659109869196563201934620070365604815208084904332059574208173325271105465605445985239226221324665636603292518689056176077190396749881946915069627512734721263670925991091787392108681467443677620116806294185085942948190576015974687687002008008145163671452681423235405922760461459366003004710974916932340563185974449708005722430619425984145037344850360114733852795542761763677878051523196623959731877015692910901853597090171020262297694319454666808976853181121131853089137617106908377918299115134169316665545414120324814849531968840498905912289464348742805731585116433316006145101239147282055420474016763435504654845700824273298827045528201124374386953701466481275167477243281648743396218518117419683338626449673588413528115760769663566438657298919831852156573979067261733292633647975224741408993279676154552900175642955126221992403397909389818357268693738864411005327119247669554547161675437446600431572184324158352130906436696070133004203342837205310126969957938121665217275956082211243178116545429047053642073283319110350950525615194954773982496573858354316311746691778124544922704829867890922951309852692451753036372314088720230749929553969449411464596359461154498385851815099663945057293409144203827832479232063204994165034983000480303272467723410257080437176552021170032787819205234026204641217916018197151349458463649271033860792986098306180598171318976337460840456641845250810530162130974128993699769265534867236895224775313191016189926902161464979884706095432550031226192212412845272378704800336688884712858283312580307664550291515460208628651390402142165515638763257105523418756749868409727643212304442815205506187799702179079652552083821257354297249390848082866833034426657543262129941894055116638160380210325869715770758227186715553399205653665730116158781114207763742190544817575284753786708113632764667009755007551861187142089836723552275134585073820438209766233015532772185441585769906673291557182509995417163924309927047019028870539725916691272021747147746470184518713178447566959497974768197397057725798947145368968954259605856093629852399622644117437739063058832103276336381255074455591765080666441714890504502469609498768946198169277423918305104850220245102069228508919254665072736149614271375652011921845010831377438310804259333241754259423272591172857956914906524702675638449693318154319530401487571535469743779120118482850071281424532562157657404841833529965589788548641533183325347308368029975445926888737992724600696839526335916213227517526516606713568885396693606741327802325973821408740169319811294224462378889757720336054001111070262553388557790724941582618029768087071207010516553252666946372785818205311062457369579585292157964045063148417787898527528339238681601023699329797192920382980464497801308939358651249057587988314370474133718659685970794227079246409318959686742420947105174360076251103834891392014330338448733433409080375863037389549910544060329726945167925906946443604231800446283680403934968509596465666822355609213916973587506667125177330370152026739959220836133219201570876412132900134330829954383208277284798460726930194039409252044680880148319055112129077208640836672824100825526318921251603465618891022069603270209497704276704169281073675410100816996659075598225708090394536328788839985958100215096264179702675219420683877105053802812945861602055189729468230291402038732993134156679832073206027260875717099174992990709271360815687975609363139638596382314216519134007246848201311725752220710263781063455523417860589216084271078211178105188979256395896581389940586535086099625437518795583774135813148542044334285051170387590326901451958502711313850504670408046614542850486913859127317065072264948117888659871426480823164880231040845445091651308581899378734686938837515181449939881563361464348237203440298945668979769282976112280946887200822285923667598278255219250481582392701796290387714268398345174783773339058226270539010477180568497795401964670104542635192239544110171306025883314635075922320236630073570575555747610804543108160933222878435588477617889757409142022515621997109712000890294182740196790516163366144189023571293255165057025648012007073611065765163999436122593961382105429203515726570668311106977848830369333597032288397170840715728868782578507586686334008513943440949088717721879313394268601834140096288073119349123805021756687636863456330711955786737287176760383204427158876347630549721187412992382768540407168354286104555097434065764358714744801798630606370012587030102338431449563338354441335787821481871781288819487721706493291575506949222283561263560506324451521390164288254315770058209057645811271209995846683142374562523686240193070546548435093929178014471195565173193802501806644316066544898040804248914321416682859265256923674084909604270599604266185483015573544462035742503110162566372255154680637069692860515629188148879740667366229890211168712429873076557021104299456766289735623125398195182861722222142297898695000178007178371574603082560670481338763215087508899668861517310398821624021473221198398105995239786935171321445943532639116156854980378074982781662926798952251808827515869053943773631188598118138638891675664128610034014032758387431489951150429306070256052345125203047792239602877110323249956269454576113385621392946168227893801202610926466386958145994801937035732223841421906821548220448331181325262200478581421116004666009302509640030721832513752216182077119514339440373539645303368967295786556877548194118647080953072972625333465426406283337787981402904592092382203724431954297294815517104670227467626452201220755001748909261641338009585284170416277429306365904147253731696010075742860894411130215114752131225413277329118242709517886513335051641119359122052330920007167526263617679471672322465220397387024965601534512715836107727128686411581733219168004704303157774221444416093290036600652014946723570319213434047367811192884403772250519341837834451876826096351898641044561832761037774876464726469871493506447368299692807303538234850246583237602568837165020692758106967413627230674644731783211727573484699487808505847833846204088809154281211685428321152188482623725244081365509461926868433953221767164354057354944950067393747992582375786206687880393179901223694724847548413945288808992878230501558655608264573119948195050940103518752698172424620494919502864234490159852535131707850646994689681927661435739806376072177694341769016919405564746400645141487082245173774891430022715079090404330158121459692179188879507121979535329541951617788464235032864140573861993801226248122125964025551684729339682587402218647318591533901298757437406653724884276291752367544014888265900639233670859774508169694935813061949415064334354315549154031850839622219362267290438573433735697377321800595167690794060499290947613300494139192016371607719331879080735835989016054749637896243230563450988270840915249991183969495233678675297839431671970904755087012814871196531811548679727620518426928536178993120972565963994738137437362638886381765653554626597670677350086778293788532577843650793530230197372348057502995998007041195482870087566049498749333531462820836758831788065061644914846295943723237409486583762752505912711338282493279751423717493213451098981360730530189428935347626860691169248974023779936729918278688029429845484181752777087865427978792058883098149830568092250389755784813055200273632660754084595542453429569610753175773284240384647082779777077238656916980395636039759741265000613533880017971935449791955594313805618694200929070996668093167592758933335232536877176806811638334320116704212784592912669245513426406597446808444673937944165138227000098807892230092799836765851643204375120029563330910355068079660201313892802633153430013335845186688608992005409979156464285637179697089885510964077934208866867889472631633229490040597905272669270529016102721970061370965924236576671463720916307585722222859723588487987874724609139173231988808201879544904880048864944203137155867206310219987227996176052196057188793548572839287816239433821016235816904327594639795149410285898472994522582419650682938441872455540477283561694606039039743408747257687878985953165185660385918082544267634303534441801787566981184105287200182585671486132282791343285704829623585002932587775264636543726194194127816140593843140342353474776816314355719922687590239758265067666587772622696442866470355959946720383812726851497108083468273116427673502422482644227075171890189111753165375941367455857321110626902676525691645633097910232693219348111934845615490307403795075132861202798606007915919600496970190430062879602429788845265867400473310083013660268491090347450674181427177107130418784127219235539044111100227749364742711394534431467400386726745627201130147262210884243645471400200756228523067176621389848301490165152176320048513541602831626274018280183890920365552979395192847235656365062598884145181098490822629466880053483666279310422421275965215013642941174872296186742212038392216103965896332784234435001965878581773760412865829518366588704323829811435807824508924372931399400695622087789167383654478877455262320951611236923839870566250827349884026314709912829912184540842650830009394750434538344202452775475659783725891571674436385055532721032883037455594569409700186683951094924200886467868292696472798139395552246746020747563922015898161413994266455763259574833597641585113492460546272167914380612683711158738379035971200675322257260495981622183474198487866927706659341983875486105638002888310551402013882254278595532706756128483959148333933798395966314494925814327142231854236587060035179846116747131179197446972328090442971246761073650497256110897705447166642094016595634995295613139922556475926676559483626767111986830256088864203193635725136078113376684606886918952952943660865222417575979948402981555869870663234823340289197175743591965843732823873790641325535718726257845519927945734275709345247958143084889363025682600014009994683930576395310533441417071546232459010341008829244143173773376724100287908712063837225449690412159921868617866452659388643414862727379187910051160455663515145452701426877261133473750338002695882116087695309980868554841543918050416020538515728444077300968413727777716909902841640411331569082801052148743030087358547520433265237921986611474419415058426722515632265956901926317738511053403988004043973309591930341028919609959182169225481549187231200490513060173279502195656889855879507268691570224358146825775599361563070625953761221700092663386253501522186644703664717556214400258971529091834066676632228480247954049869701003585813028930156502952238004636029256877211345012288576957752532380463225272534462579212134483385370565122135948971400962970943275609995932087142374928861539338448160024151811953898037683694315528186957870012551597526353335664552530943571837877613374501671015835341718774559113418088259127848021381773349034546696736403685931079521008931016518317398929383953376175681699259856790102230072830221903991521389589069087035219453712571280010296314018965154536390718411378508124700604146787949794530844084573722947592781689142734611079163443943626328312539599242616115910123196839372974065261189876614013415905583365918682592331141328381738231980245010054633108322638458408453132889093403717453937223577212725668494853007135597511612515539492714325042468304396391615507671947601806562121283881107331858316409605245805884547955045071125325877703449125073738765689088977133162754718722051624874888301889552551990821850981006443867581952889369607313067798905937785016891851357129168456705024714136871054525193535925752466265884153005318111609426005020151277253337272855105641928671671674576548908024755578656618599153001612249674587792464631909251818677701559307711561617721848474409956123878820838467106307239172756085008246680597809390842213447907183395989864523246540942401418825441306297398589235682288274767288077922248314779670363850650916894847004513843605279007212037487843938720306006908365496239417323310412817663636678045660966212617392172155122492203644973374991972250067842811466906915494024140603973415783587586802175346451569980900474414308526323089962016755262162260121700780806754944034403289671192666105438851933265681781594127703847899758417338896702381936168045272559949659848018178059318361127154642802554736745129492989413790092345798383006501599963592445447684639273493550034499090179566174655550772048760734948796624981818357777746066435753736574243797834626393875049766518097280114213561378034301277031230193749197671597851484493894578303368615169019372062008618061263165619518857844659345038136391542760265900497905759616902995603615649631017217944901784754094914138597706764167704876365177899329236011915331674910248128123110295302677347772751132450755042521188562135811728815311966500103450298877733477630678292013492289563909651819404616297771682695571453705132457478026632800438710534048478993723424274042550023979399942993439456893201459079062879472272094686310035780520138922391973528251066200506295285402463026413359281667191086349721952446624919028515410335973454598479463092332579689873071699759681658051207357362138864944889419688687694211461928950550812316797300389376727311937567017618859652159939977513677374345117440844749162053391605794348754669783997513845126735294437165383164917064428956431409289029908683841077840693269685692044475332338118411240935222769844607202275240994339848744410943184399036174914257246037603044526105439225057206832503500423201707356556706892180102911924092607877367376991107713891038633755323975384037212168189926623147730317778973209235560066536153702171349233263057564838349904682819661714611569622079903744865721273252587664433707950716600278460166413148733617400609982028586453558091313749973586458096927558628330417778489320752417793740013238775575987369807054491712026403681181199404704949094481683693121030944049429224888414211984066341840295784935021958857061196579726909614613749107934978332734024858724879114670022577309898070596573320862172944557299306641503694497149820590935849216428262063667270529288881375804573384770315689195785921866369482985691954524021076498417140953787870517247150347483588180370708676611966678827879712900757505677454868360836609210975762590545937314024474357964240013218616498575759887412154749515692957558628497229591173560784741227101837211741392246138538944967211518503683303066425587738539589730464603618713348315142015619689650432253959117342039315344530500985874635352878007454347993342895816488261186056782122731410455643004892038704505741149159364409355938128241058135625893748408854069759571905585346754459666191063465578647597227445877013066576416845915338320356307872575313426103849884826110973235735052421625031757231221097485122231463098314008710690133774974909590661535089509939184144686029624190964132359376201206744411235619947476767729522301770615039461931649750734876505064914858305148095910037063435217674547917930793967829380960540212868798222153141528232494795739721131882627581916858711912637844460688536615035417503024633250100248078807706556657682026239606376911544844272515486990181056206418750846957796530509113134563933253123285234991555332897368828884046585841185725614884916657022270420921963637423272086206490672127068515323755028995361764799661697192572695053840234885390490299066899427713165277721901881672778140632173970493649308057240441308254174369754249926360703030784406268985651037448901190421311440353460471013791292733275107757363516490015470006389329435938011607338582098883284908098714092466130164427301121607616146311225484068225571589619375721634933250644807183070041255795397632542008981120665108007727213609599768173908248808565966797042607884095470971770131048994148677331303884049568250005177299234632291964381947204636466277670575971247581348124915590139672623839610714840274225902411472923436944875873583894325892847890120312023083228057765439717722182098792408571885512899053708346283783929559968859346358884031687221456026546960633241286411121192152411550778038819588686361105227424106967415014967812889690445658324956244896242530955670981914349148587118789685558477719126898082551322037251243893099530357582866886196914493008528711946016206516382788139871286255163803138611690289982471921397592618448912787016422976959599512687492330597881109944784443304132857194105948243655700817580076398651136814397193476202895907330383149334884229774186486022623947885859441682832023291177783998637294886673465452245098071617422476344854521109297858789109727384800664464998373871291341495336649655664576125212674329834930208303824748406917563250897072431475512276952975660094701495501284514203892243947689428049661203909084115445914470907696582693894498417547233462780217372932012613255403692604842508038620881123336244461963145746048620988569625974557091862566012395299788757267283059569619869858244748946577939998447267553603972920291357376080189814731046272910704656879165221848579949524503086267120661139046931927331224589534067898932861715010648099335945206759379711668254131196371534843324257256371469565572720543447167145004603338983970528096727829057302973746262048644859480633348288670938251359973177941391941866401499423282551107777732105787684858480816097488873703112287183324290681223133630644291812025876634337861599795929113310269888900374669266944013143380732017564949126077494695365909745340600958533348002700512058898308644357665957245337690752938045170393152716951881665264329997541298187808883203940502815728802092718955649598764357732842600047954120418614656392570330577485648128373615561217647937755780177694772619319026717727060050837114068760136410727355383208979746933817174880019572933167006619584647447009500416259718105849086634601704333439822256396850769146906759923078216144468949778760958192933472106588851062314050173892840972324685428304175530502644210813927010213381258093298249610629536632769194251941922073543032515554436562891545562099944008432322334487264570820808198670824444209619812375323462439819411707378117309530335246826668559653090258771828179886806702144425635638505503334957779402814054826598854656419892100492340429384090253991545201874463275482913696092594763277659519042537101856643532132939098486699862269997888000314171322961899834241103691877275487798825873074137226849371631066493059873062965704545997702934819091454556553155500439135720135013528765208017785259949674486486426503629921285652879558250182956192994138679282982277442750047623636896928307103825053187346255387985448609265156796323463360030729519778160013638630383646792672914543461145440750693555448811758780971610943206654470871727201631832865569725660339368741082706758305819016063081454855017312630869488663067086158034636118877834412341889416060127614819666089520273267167353356389037844621143541503007519027867213520496223010227278997033159750231703137754133841439649247333293860611843497648506175097787268928012563281469566571465748653454928705650179155846881979211099224775381530453189649630754377529957525959232761939785928867058085405461220594528507650011397994008176529453272604187518733434264954203290583450278063414886717129675595409850011958774292258497840659306506691771677744558897323150850641358195578888698071208086650104892161240819615597906903843901758723968050489216119590426301680402802917333153430717266075959694796983859543115934124432022574388991103146939467457710793791921299786208680052743359375197882461490534773259045481548339103995914858766211179333498219704285550973592583050397423673831846894477085613602528757100203901454696874699031092053056304536766458980403771133463780552957615709824928110870380335307289247641174347919807686568175778680241434365726104033930211471564543555241857279762510680399694409459019706578664645299523224319767585978723533141787122965131332149045320140809094942543832711153669024889962002376658289684024398324843530179323008869788938604409443028814629206553199726193971636521675844468072499676644686886640377595171356047067903406743860148937640668994017209831022005065557302051458085458671877294669635402926993887777523783042508811224494267806996674855861414543117864353446704417654974226990362707582294438601424804409517816182558577945554688741140124582529911481535673002572466645281706848359002026778372485312495233871706052538477575938774048387742437060507168847910234585613055452308051914855873594967420521138515251280464316110981206919715040831323178439980541264253935931542422797450807977065906266966529861696200956628864080515325492276354080003860588596781566615679407683525059510477281335652581572658433965884459552316486984547886422394495587057850181479642233916828915058280105448342668999863744965768105247078192938947335522420511969296798762863749593278436067130442331691161350324773021043142081953336607795251422741677078940278505908902154255235852282041109884473227837196210745426767570711236965893550640448358246363629738399920131026813612296640397929525475175158045002798222134472182949242733505139887001109404938906971418625968624505198417847932255693760081135563561300755048548745640255884700713439109584725197869071391914986818744926464228954781517580164164315984449338476398237025725737438526422850507921912955132943369104538564024920583286801805302907871790699559765088868442217790447325993715917975607378471425685001626241410744416037134929945666393412524792190908206903718699317957749553346435409306803773886558797713905894844807295369311006377250192885664023209578694181974876149128703805615707068493927821975869013070479985994785169533208465068280500341192315986123490758567685890222787266383829222261697818679257801718551364992021736837781287606737492264429873490803511920362857307366929265295216480330663215402692880070166998282152400446052609578459563627847291859379060982416045160521410633293836146223334531827312952944339646877958116908925573825308829489717854365847275618475917208271904304962812014549464919008444480431638222906713292957603260020350597602530698779017271133573214337454885453296644974222029193022371306483839766202630316344933002953599276719761572292978420640070546317748084282280894360781819778090889357561072117002255282884563185953281753072857076112015505740340579354535691531536847714497351827922853635147600955613319881172070607719020612457137585330698422147000716623016911475653114708401430292867600977884924414769657615468539849623146727041284924971167558745335428515405602855995148780266228332282015900413681640646021702650029190307777545502625329208063111067984076901870794734774980074913157081352371983406755897351624706312282868935053922470443364308345631287628829549308481750236104744710084421152983058999942255681596412890465768311533475874108748246547888999728503812972263809726186446879956707191518263996345457538109096628979297381779542956129981649049226627358876580022661552722233783579963716527810739183343034318449923870727161289991839872740670960200474660381484295904606861395494669569144053546157118298253666053112635129410411949201703330784816405769104295131200593899908082719217888649053528510203495620057790032317544541334481263297367963201612133394163494884805525200237832301240796397210137413174009200192666653100178053907836223666237230390670232061502844271991629899165360199032205429659370932312608971436120177883656459580079739822452251651989626357233283444365108815725487859413314672868069764094572230304737666264849607408915560965545201932357478010514746002726825454642012653205687851427267782951294407877084905885615923747316553247705576734852805374216320881605189251410749844851802609679148733622320490059052352398019046413297725454054223776344215710028422699656044873595014695876861364097292161423773637449852359469470594743549366907191037344875960237728097341214495780354408790968564923146280567152923804711437557485241949697589085878384754735548423838808922572684813333307459121072944547957659113698230279911980859382655180043191062366794929398536513236787855171394129795868992269153830973700825533235411797265136331143189937996277927707912900629666839579645314002835689759164844776059568432333138264876924832939612121916904847130001940766240795245062055284826451753082428510523451374995061440738647525239117378058158751286297858534432264582179389059477686721860018071190964302915277770546214154201950324153127738012037729829624014352888159025729431065424723918413631435098797882332395792769738890814505698715740017605174292805667640496726429330252483751881723739262696791202784394356662036556053415964844567933947616931855984931812249234374737752956792369843548977173831677475301597173389618615213571290643878547698768437210634102904131150100964968275239597791991104631019809940846960159302077826636891965100287848752358776848669144257724838711183193519000883942740086569897808255027516163225620970993835814578270106102742872079151325600923175806572465253084496789506588977460110219893765928190957431328566353199988033740201381509348185374101650686815414180905632670848602243709253491042552003238725699125805010607057982229153144248159260638987045484470803094295010415264527323022626283442973417193903907620919038097170561177582597011590398078867290897907340004670940390718895444063405809063834466898080297841295623147595679022013552077073375581463857878241987726481764635798892296684727195267781862915852854338957428571429664625026372670626103019381955080682273319780775741692967749160106461341903922723356253213537702610341880690256761653326777736010616142411265253765837232218903773851011426142588860478602516733888286611801944018664100640011669628516519353925872864296636764812787856029865951816608453467748075431228497243177676138973398824212270745800061765768448127301731439910956637919041517918980535395562797324307459613690926479099140860637948542656332477354075517107356048590645601480961442751945051399738653546845811618978077334819866992405043806430662884738682433462381517084468978272490895263257271810302950426944602728593557995166834970402668302525085816622810412745180367668576976086263269530817327582148764645818946205769005512416950697487544542973489027836704346212577858586501180355642854235227214009263057627539545315753353651318469364063538552427789665678656605560385610244146279014878916543592832301186868556445442539027297292868813812129896777258047762876889446845295213964958741736190906063360615223832049156900126936579145867742409389700191586010194500211129601165987413109204673143186492574588354683467658997468533126392973168331351755472518013707777609402142790617012088520928472138637938239620428269528576867825848811070400005373199332791098027139505437523002319037411463199510254759955985797207034952313208262227787908352748889932945340299399973192833170144505163308793659223765693451363302447688097343723483526942011689060544505339236577821308309128111652465536001929611015370504741754341570988415127776439855052775823668308302041625861754180165284509540670599482559207939948702653102261998551882728522774122135028607213110412105921504248746336474156316855299376773864499473039104682224428200659670375412600185738817707113684830899113429636195939121569430558835267767525310419108626173764282129115814031345481482832294774294687543091943608131472697598535511535135661489270353248655930751201505336673923996722820373716633534983318936453135371266716358888207762537188970564827614540021129665691964485951935623259736372859285595436805753393269783149813812356729632054438507852417694177273982458678742446496446247710404650198832365396863340567067608133964988488577751625299080036393694461461540456768860782253986842996430701342368440091457844238666880964518123044825426868465786506029529085395353012176049966945762383717996664901128859476040115556165011700000601914299186408497864621020397297119217697520606196802559565638011616577861397341892950951271324916849445393587997174983750731741300730845172547249015069352477202085905621076146858103490188417064648113499476460567749870524841234511705031809192307769865440201213495002569078492291121879832671416527147153933749116625560638281012204265756302708367248115177391269261993137081210715045722421587156974751181816981269610903699863950328957225092177089932575206194169501277499592086516850968665101471995353649152697440452983243379767247373302592136713510296373407805466736747668956174062484846568523479211669952811351476405863182926718853184879267033055719252991999650212411936641490193003222508307134633555123863385033300480490529825878652934350073362969125243248602489883559345264653667368675862955192235548061558755459175897922896502141593412568637070425537090074681837468954545646002388482826029075999223188884139052527099073434735810390132060263292248579353231162179642034917862688810443153569037559417903951299095313118263722868126061652275721664421074797815020464786230147192572608126635747826824040958181342266785193966838032100861504889512624870480937874597333947570900375738089730518635453460451219999926879344478942399481571612907593727191176934010472199280111186161106348209329905173000494125904970477385868297031650820504707772129220802245378087622204315652768011267984180015847423078166763074875183257294235563366555289995504425433454498514420075947109961088857896798779213198685037642554225671784364335912695405610328355681875071418205597229988075005342804395751260636060279377788903767995864477640400883965250459861770813069693189362172806637545448272869044442290390200128613203405342996959171399079005740269483164893804291902660333394652118731060271055375250086575546305208221851067467554705822569079673068390545710107671912511810384130935592723882741936742979466040659610808422041102185224687621927766475207495448326862486637699746644573274774549219665255822765747022906823979319237537412546913770135227729970280542125806172898550305065356067202901334441467968553704692917019931189505594399875497935883145195839824890739562350406268855043443465673301937085466176149210211330069799110232447126138490525107616423386086281582253036651189990235118635558668439559798939122512611071621858371496927997972478477019891452735994348585054407678749536867070975434548944608253706053077877971018924522742519835370660940185392976112235885655760288681566618965133000965587023786694175929388855068941970851321105647829402611245030225996049043331821694391193031167270930495629374997737288874716107107432734745516380168895117211249212722726935596555233147142739881241703847364549940983110267984612839344425743321251036438003551378301875183350427186975991362809503293523675024369097212356454511973045236613364447107968621119061966299260278833748462476384052593334343558503235327056959739770235371037107435568374172990526695140162677213855335496185287873336568517407743288365605453185945579971043376553013852472817780274272502347630949198957993547574907673797254616355562168355816744429056886486802845781454628871761087633705766474833278457338448438941022824669239733963787627403549142898047328732766501210091102624787921685301223853919389560294667749695569518626925916292285234828053088305911507046554932794904048955030624116690181974624427793124365503145286579894718937362170384565935139062826655114747960739442556160966765174291186261272343346128931026132262081987412937972161473516131583080221637926322330068707267003784668645453748369809136719598635587351261024398687329226307653697273071487347534372859763858550024705362325214611959574151840627966781432413414460372912618285093263002113979371904416647002052448379191814686423213136946632613818859460479261615450678916330897507973090154201030223945076827243345644212426988962274914738227581549856511737209903878130438289883286403733581592122057787390160447328503042263559487910283690449117863438019995660452833684508484684496795886323344244601805677432073334030159754581920969994902321360550087979224458386448683907724943398435974017453996317648199386205000879621681773940741536604437827206014525128296881894535878094834189890698242330720343423146603566727782472981751790627003790939803657884505924479153280427272070078403020872756155189830664771025445380112818939574146073135894133820262931048581956664269757067497842181517152255642128977425722797908812366527946294743002026841363950751736876053096046828446033250936187654190459485439373613024887554769933651465238080010561387178880867475751531571104713261034691369900937759061051506278283389980431819640414937840759590548431587296183176328610872829318873591177380332508890405582396091163698722001885495236604199583709294943734655461318413547397612964064269068809977337777620553912553454658606375527643721737143639463020329412955532619962787329147818452427410290807647265266246166973135856287765679856691336882561114513046701392657852445663887214480775617503917835384321441983419451752385080552269706504383978693286847445013121336346018318183504697095927048698224390977208365996284136228671608244097497227024544830253704744908212997487776818441733193138676370098207842132532044695585801453191506523259795371701031839916831614295179520190913460241282559824319409145166545532307568534198836247109362311613321366527183530404587507999325125271288045091220844772905494887949778724830543428763846203327478804300776212995152299966217077403414077310773466440217436423798240985152610745494902572660030117211048276422699799034185176039164667348777345968464751680612417676118928729256229906000259877174787108513847706411639416077521157602758829930404911609839650981696064277272665101191713060895458000098919334916728647685324552379831964995883124533480110012917848405203756692510081690240115646822780950871827735826123691840562016397332754497420385584158550423258361302145981127749376717479703895141930149884952442867898801193648193711783313816669284566957092310906109952542869646741579444255199622762894216806974683212816450556915169891168373042550101858983968268193127890665663604447822457192575540264385947802106800101686836827346150533831175161565107970960819450290033794316395321632470677367197017232042762563455521342643241111295546479038234271663714601470493870718941853772521420005630327449850123300116994913039835675192916698060198563463545020973587813963477749015455688709602144755932103437526519764682156112671208776266944902821369462740347980275905720839201236879379703390781184770101334072489134048965868777511498935744130086409113078298441849967862625617517893254749900986656413237254666189559025705136933099129929002365746713886102739331142976352347509161912455086286044923152299313140867772917145917365732909892115617799805858220677646919055993211575259497756770734386104255705627518632135871409280602190498345987422152980793778479637717618730764156702679394446499649525114304506392115205775131534532696419068531493217750689467063156663488753814408586074066006446123022643148073112825061043031754060691413568182243273294308352214129799436950463045896850931897076884696235203722964975044187647175731537205633310628540388783924257206323374369206329336102355361403532685358003058955697014194153720617299688399907632253567791629600293097130958563881891508800095074164906160373757597462583321616024546110318196000833843516246601099112781038597673161169472282619733513794750598571904663171533121580338978134804928762481938863014482365192777788240965183798608022094905059599097576537491023237496040205865583513436390034480959415768398707281218213291597674617088956558578663641801310792173569658431162636216397180319833505526197598825282934833694708262178444012382601666657427538571116967397443538085434234558693869440098947769361459248893188143375996134117690957729307646296404529569630768457553247489849571828781458147725520199508749075204625419322722442825722557792841708895365532918372550462810979280842854108032836525979462184138873098676534978051228448776550403573395446741092533227279136573327484323047982178922609820153101784575567637455731624895688911389497052443318562381475532675585734664856980142622824312361514100589784348481393324304602809811816798555139161734958309589749543528597479632597957517756978959045934573670799630567954481953101917612966694960255880125700281592967933731328827082705123502879980182811653952198146632663685426464518116965037998497730567668099714723581727112628173987061968614264273640773638436206150786609450418267088670051971934756036383502545393749198707940492688499472751565393807624099006237363293741881944897739164302371863974458893060772071441361495595523869947586178195583276729907117033953973761738223724043506165145322113068098096350734285192533914176347668385863846252632687670679845766116033124133094265082750166352780576400638116736127322345069258210577846768909492773472866899687846071541696634165949869352923747684901931101210397590856502970850312903824320410064510482921071504270779958111303917611992649737029425252489132304216971846136789041570385883233119535870778991185381037409881780733850472889302978266863448902219997235012840076228962663311980412955574637913456833271463534607687499971839954458886772783384178830649718429580162490783762860466941655608812419601683257739133916663053224825628062864892950078346039075680440280739154767704949024838202594403293667796005443595136263338934701186933832441846858213699187009685822227760721896937390385467034274844408208227303106143249491769371725751408962804604085430793330958821794184186990052663838483898362883980583618277240190281599304905932448868316921804151982866429312348082547847641073988750310509481308375181391374613128674140277389494874109292966743637471911696443830867365083439318389896398359930920664264170299232464705231026988831452150501106737222317978938296987397996345832899776645066765599056076045706729690705338083503003677202675338607269675762228640164163998256306027836826819886958292356975148763517605396178336347165249195608434258588026025538060616504847263859057620757847468093374837260067128206298931876749466215004332880490392203187238049206892449118255745542998070409865473611856865268761337529229087479991501977509181405643210828101231560820200248917630793004011067041783834691055866514726914759521852477452628736671134565762605295615854625201599938261351657644495755565319438142462289741960814120064777878025062381708227933250097383150964877922415578462483138595705852766312563899616749673990095001851465984473281155306239190380822724430802427675301920644226439310975655842962065332295677221331181637770542556075406996290506891968379843471857756781572856908457006863108027366385499386892734425418849903658407551108034634112349617050724881006317797723433296610248448703541181679903922875440688499211540501979399171083725052329702294804063715119622237578739849972021826440220669700873804282563141890269540080240590690651257959399243642706341774268740207504760961861326419952864444508260383366935162704962143483447891026347257011888826442611544837733224820330108612242066214949435485836451069928714349048308968101851303033750730879837884077400056220109798333207431425364903087668662592749832996642497778000068278447297707320142731881691468054666259655673906789583305979406695101539402739767839170512678927312050746726264329466847716151458708148640966591325817510203154511334394416488774176660190314457453743032506138183155273458457032774913900034225049161881909375822548308076493938725070536659205870070573083212561230277265899130967412319609782475798549693319488851990540656749495629021646653402045617146402849284238751717734778227533615775566240819626500786731430975409042982098736862343470623835164354745123657850677896928121323700360364559543422263862103976668306066789035510915863047756336326749813437923054764832595105038231877465784242493580213884482272925880108410960055136500284274729154655624433899959821183741184345377976523518607694576884765494226948764851055624880637134929349920246161246895709816682110027834139850929964124684870133853244535132424530932971248788955752016943667499051608779823678464646103944502418677726390856152949696308816253549367243934809767394045517366656141014057454042666953478258037772716842218750904307645122984418290908836394957273080604247299089198345819226714709757052245556719273452844848550033401732901387726979932281463061742925658215279797917661872043796891540134884398285843900044588079339579853887431173231192260042509193449993262068791943215380174750299904591239781557505023432245510619688319456067151356822795557598753604145563645251937617156796885304441684410337742809220256676927867844489749778397162580893214704374584703950464761809260646955829285839479399233740077535656120405402772507183454359692621144297753536684663224396557397313479439508855206684196788955631278089403860838279278785219835137709481793680638302274939328861283812732931953762262400745607272628299756506690969057577828053516859618802135374664765974914347901640506212315581670603685894917534072593182469096986497829429336860912373283989059460269945602721627092962913266579897466903548622455598482833922848036805928597654350213742948821627471063339207500250721667963173214647738795963197141487071417869916309148859041763936863245653879472457711672874049581817302725173482711397343255934229889575934115957503252921665299797210377386693425622558658631642884358692441117949660991558592333179267231053062475203441298357727095894673101072316240845602821343794443737753651975399009877318516731495865412182721760539851022312797014887506370594810054847026856801082478498750266769977040132478158765151774913464944135997263350619556694172097337118458048619647916240835991333805291297458386614486633857366384386845490604143830955849587589555034285440279330518791566524433057645563906247899079483559286793238112332832075847218222630384409344486410650068892422939129312072360936144545333735230847021085222859493471429519634206143976931059717061558044474957204088442994609159004018739045110246102668583382777523702946541655761080110372054133597119844865966330674051991281792718612622664449532138205277211679146990858125400899685788241258987234041191970805178666684280093519813621170970324718088028240985565044420035516490533583059887766443132616784856363508168967006332575947315836256834133869576845937799325972400495985570999017561293781670247444316102968977511660351798340287056900863061779253513165312000143518414165502461292435609171975706794635607187447987375134736823373504093049547732593014754271691140877911899512443353208048968419373357116030249420796704766258847743612603239572470616064536861116349384273309148023501636281707866940134587000198916372929601558030411776223273483664888007246896773845417002710383387441781685023356364731848429013558447172037753747407820920586097119966085764048620848937336938947605697835985710738376266124248323805373438159709913772122580723093069459960187779960918228731052386020005804837134443593702948205986231331281127067146433197295055498451021960384863276639746446190548325752023222683481752064582254162017401869037688374796253548645890787378933183503226232328178929616922923434572228190526152769488031969368891357186052707681995536177119962450145837682068143969966198973504425067228453603050448075432508948014836316410918857464082907890889645357126691577701607075443577386826453830805531573472623007825176738864143690233444397868042567177968198376651707353659493245501740341914233395714310562947688615762857948800062154496560599160212225950873125058183400628305294883024467710510649733725177006773159101930659548424468221352172283274998927957107987766992886113132337085388466448137779267008623538797809427582586635683059191828299956803152707082225130451798307746179549737045301283764234846749996742641551450588868598879570167905597267317091910253578406279287481671815869743130358563590131938309145755675092467402070021493403063286282594334358836278483056092425604284190242049394953762849485341607260997130598717355828577334184572876176715943439455025565460463433556453050295347804049175219561345381118012094451868018658008705712320239022568160550603258635254038552665848691903994025309442651118386244466241299997909869304445898125369885320666080156913807920540632706896229625542970548585563087221880020146852559037525587962837533978435237200932487966629349648459983330684907558494290865308024406522883311980547188370934487821438945091826813394344161605403004480713657784263952651745234107742212811196445595637375533246096234393235034882045274398402162048874234494766689628914048199572022656492728988432726545897898351166249310896059356817049586846789211237664735918737553697411056349560276695866354304156735762236951976419265106482103215804251111077039396071275974001014707397618765230243993404180085126791297310526875409485882549348332109183939484180658820269052867890173720691376598170208136937568835822135763677641725720581706087768881444557949995067937359132339759406442203283922921440228270168060351394300843348388821506015537360250939770940539092312750805174506280922319119457698681120081190200248806221827914082220175373355336383992161573473571569166700429781722370941942206274330210022308938749564143213141250004744914215408929681516642607980286943425140040327348034976423277931909322695597908246233588219405726992783743522890213062165472661006722417587049174544853349033502203992490894195150146349883388765057623977501695624230627838057720662203965027069976846345626731395628605097699354114577018494565596868915823082420965787265540735293955831913713358375845819631957536236934000865856346020672428059763381126346414571865763958059316778155874049624245276866385665037174873859439980069587792466897882488072253032663330927061517801036112976336180871301221043478410668096556317523889818017527021979540768010862067024624137555610514012458031186489254854003371095787261630758690235823862362424808344663680358320982934557656789314497488959544808838485693502495849426477719031914817065609367851563226403398729874748642955039676264784338761235164579114100057499125170262340366700870193572554435381129383775232734976255235359892075526264171506275419042266118835793018332557227349175416704959819185479352430179704491019351892087211491973072506157533443231416260852293333409987902444593285395955703730921591121406206005746773949947871057524514972734531186074078787656999780436946862407459489855048918584063000943106289518213443849729324160174711729038977999980409737343441208195667066974363552908032766094839302794776900875905308417819189492894125146916742482432795312692416280969165405515033007062066468136682071169033075461726338623945762978791599006076249626784921433618535125800314651369784085985013134718065818313010931587939093075609443298405540717953828121100593816439139279486082630452346368166396000656523618223142692282721304453842065541328653282903885219589200939272298917976970008447647670518629809327421390679977134352555363047214704185473571330166149735628662617598602465980371317107133190292048808125527109982841983719235397771132273956361703706714761345937129800768513539741406487889849897761120361167440929128437141932431036238768834993383029347757011967680603860922576778844172531109849863023429541116886217254679422091322234254297704227998497647752532541265496788856044638012433227845087246734854695339584833840191284385022609741837717793689088432832181155276280505128757156594333425870894817191592197401433267278731805251370102547349416156570476681372213220642579344995818157615292638814423891341370433015694766808266842963929211772998958113195999438048751094908521715839741359067321162124677338690921553802448213240684131177570654427077459718102813716869394598088565212724700367972894732055040026939367092103599088004461779933680929662880259520063037946065229890569099818923860425030387123644997284824801357832137596509910709971168736033945530012618898671753433645501089363329928206520426316810370012974181885404299060744273530482472388833148337357304215902367789796437929621279455607640805981646220412392319359777291817999890331870746948922489961461156399303775977152324178242797277132991230346876717007259777045356474445319580339382919656266769098644411391641658998656481559213818453551672768855426202491646217102498865014716923987613416480830332869214617932018721335966389230708881294591649362056495604362233480729104839803018040859084273639843570108238489053873227507281396085151374402001841994154441486463833638660613414584313283535419995784982898286176128375144894344154001043627452317242951891839563354568690095476570178698524201766418030024882634402960494480975518410416051713937708499207787550528844811657875187847343351366106747398150673288608100565619536737058485462908478902616190629075275004797892721122137677570458664099105307366088761308276075277785959849074368109527618265965571304275558578156174241295713353717360926650809428654642016418425521762707252260409893645823874982483692493836273639342803517497187522896261842433422838234965503545465346025840371506169149197690147244489553483104784899986540446879033510671195649824574719335324441345502222610481074225466736089231001468625473116644692457906868347196879206337012960642782295405317979149738205579773052702361377682876189291692937361027434920174363681203558006927382873415222364562520325989668654561080371316412394748691336515263673960140088511525400086704302525243635748966347534606566086716802149515441953660021593775347115474655947834832289479605222557477302178275205692353641323604239537291914807249097850471702592920872624284328344656837952383545326625540456444546726756649887713954632221923986853789209047335981470705052222335759217790781371466234043930687051545966623432861923365414970186342266485757963051322568471748956759717368193221463899542280628090159611600454034261650592220077490534218154207540421076093761375505079917230166194682363982818913846262499932773419725952691004361184154209297293773766280256248540722009616738750452999424242013723768198632745003502547682987557847516279960711589627784116451818096275782939653751683348390804294207430977310415876915935209304038554333371309147254429582370287914027774921705878381543903303482754996983936231389684540372463716284449652846861369922655191298596869344648755713982142534502099328751587496391130661538266710514450836233610668256365786394770568217776219188274448455261550607574758459656701800344612090875384326370538061128311436049678221744551336519204657681873554240351047134712563789194481834826095360090073701277784899488691927877566029403654698947968440054088970827551144365035887218324818230227816412453184895530265113162562109904161793476913473959579204732330765194096035480215005022467775401235465643807046512261370380927799614908141143741405731593323741722462441001047340331768456916967697331393188827796478520351904813206685887089888133644057148104347024344205953967907765579141935549572412715781318155036520487137317996294232903610882876131322374159903371490690887952351647166883004422244019729706470004813462218029062179333591923768761653144147008568008112647957328270506040452844711802037181135354657965471288126718879020650794446595785529916296868902470102038749894822425887528371895103302244629068888678275773631791730447634695156859264271967435454587446697357627511194504723471724547406501949206845241662923448170656400203402243788584946443285892866571888328222903615455660250014413145899600262223542349063940569790860707531643328856646065336093875157424262285924076697272461503177007249431380715261236015029958666751468905731133338730871492930078444275829432124684881369877258001169958245522513683634458843039601790262970472945040052559272481250352472329965686346338311735588458525484475792491105013496241730676268441222510523545147222056220460282370413932147194244073551975841560073338435811178371190321669928216388870770832186103480615894245343839474245978504331420643139156589178671923824215142578460171197110583830637556782810572195942029933412144948913302591077928034129563936702004179702195739379147974189423581686069609864137396364423731558101541026975359151880091479565224543380566479524935753394762431679449655918693743833666759222219869058145101184476226830688682765034858881633864738336424592490412685532901343248208472573856349307787349122311593947842580172840948453572487904810518904337151888309566322623157773466934104854788224500427253814065632050225398678755174150462449521753235914023100342358570334947216025850547461760816545581583645798444716952550262774412423421713561584448537458193303192733299356191425933169776867501030036625932763456225229409937606218753129361565586850769224393886259309547010829141478755837202591921717954090457408219579540129326162587662596403563917362575253333749482004849378309667357456997983772761675868528671459419052648068224586169657352390934892950641917553689484211175806848730241508184388774285180325652967973900715145847755142256628654017791038849400987524353038201583196802943120495118715359386855893726951362267995391922878334536582827403061593356566714633487630842155076119529376776387055612071269987972099385964366853063012958333484997401799170780526363647962817027297158639098375381377684087956725407482042723176439890107527052635914146860218997296698542625076859012394347653316211119495317531952757859654888518420423259668939601112933014502696696495716521646243054196248317540687523312581598837634327025596388680832373827939703838825893639076639948845696124741123466861535508151578305199089686273124283299708706575971231141654295654218788276250067316914414655605987540753171276050329970492727408370040820526988199687271704340061213675709469401471056259872589982362480516923705422257407364659316592082510973307980733135218890161217733843255189185226936608528613601645735862172578187614755240287026925288684591019690035459754111392614802987723386165942107085843093236718498865793593745175172414083420199070640684352818233429230563173441356653828833595067491252737185892938371819887801455278898559722724396171831906380361562491102623611819498359170626288816470543487356133814221392933682837848487596170964775583800189779913762688883639255746120839646341038471922566776079461414021465002084260701385292858669575545193613591903377732447768400285223000573396054459266486902324495631581401014276621470218475314827398978389369111925391646591294225651438042270596305121137169642691878460183804264643199871609214725120528256716981302961556721169934851350680743789084982346152998961719560251728817851326916023332617596866842209433013553922129131814472216224444226712164679098592996947344088250403926885243239537053256347158266812717239758419843264894021787225201120626824755725284757807859787524321058726602119097676734256283058855357737919059559317405891746499909050186962133134355888773450456026743324009913106415968228011088501981630715617557096099644677844637725044652194069943872240973703781843710765738985297054577970891396057045904078192251959598799762387877343822907172325320233339924101322748469707654494966851804886715764136733138761656440899312054601859989719305071681385858159706391974639654583036305898169671353887179516020466470910574092837808292087063654980984718721959138853537151718046983576227444039494460150323722134228101109269473506828822844257188891908211864416815922235258048294232316140558043423071777351335912822451557688888271172071258499059195007564374986566836123080636398487011674808747108032005343823282692216012059112339897610612111126516000789995223312415928284258050226270733973585466246203549739476802645226595271441656896022585506212743248880571288040162955162228741793821933131395919630940844822624998227682202538673498595213795007812897937298425830871645321608798401968190079300908416594868932217032368392619640609494402847848825216497705421046049586707624457210442162025124797788650784822615409597292267152748625509244312342886197137673937223381549285706107694888471203881452761155761505658932397630579587331895567159280141918752553135069916421778336583110579242320865759786833618463253244472032503399273437763371845417181720985220572830724942535497260177121864473103018706589058315839849526283661691640327848491943652489596026168643454285799237936902956066185219930069018166180409567653415364868779474044938357629448837435443576306485488507072159305477658995983892000081901380563779654292114332726995187190388016603312401217809944474639384654986073059173679127296982463928958516775967490407956326412794683531436830372238996827685539057640792535266418091732484198946440076599959227572291789825416448784817857862843047112432605999744780583201183791195901096204521974163632933300955306171117568372491617751773818476104655852437552104802400004905165094491643868870661365866433082985555225601096020027021394495621778344756906993618960600054112541104630492393950662421193292562010643707060496201530907352382007430572160484169510626388277871449702054325857626208497832833333392157383781129083727452280130720526523099141533826454170877860379739261583071670326720612610608260167268935837253946232198438503432036621272733506483874405932108194304901010253716626730350473074041132634324731144245998992728715905343602584768416161238375638895915614466496122274209888507319653938433548075384632920184006237351646400138484695667309392149520724921348471962800590206936303272529996477123428047124954117761431755366650872531279012808036854265399999357039217943274685191385197500478836083780801232719571290597925349619589605990957697178830488860311842579452933067323584936495922557247267522608055410791071522761640789883462463139019394787179120638968256997639368907778512559397540405454474682969893375657146769341788209752910019776767558589216992261990035778544217412342929578102578054255890216204885159224812064720632159440529603735495602883132849635759255060921862976334613485040469498540815111702983475791422778804115691622058650998826139985234754568481008292034551576478564852053145414415207118393043183767560719440915833976762316359181490078675255556351796236839651726515359800420435218445438363241755328934623854380326001226624469100210971230755111214529293278095080458359573114286563338875464767101252594362244464107739975219377136777870860401520960770915367117866932566762871253035389405499515373154652270159645238112444049499791908050493374777225210907721078903736092856407651919118187014761703300396727766117623138639297292919615405718621425740224230025450336370021544551607223701267102236215434271095224428125860028518377327909810732622620209765327766475735301637599767556482896710032649386225539162905591721530415520185137654253009609605579170614800550293374276353701897381529184215308756335305189133721312393621119812483504102511465122476606413632428914133350940105523729987213291036795279200596164939487410496594717241357116134740333664075693687096676273927886317973290629154124811954025573019798466372916870216238689851822669606791917636219231779919456542729193791081729242726417370343362134250220160689760664779519761629029798839998592321872931105233610060267397639728954550706974317393686544526088202149464424734637844312600070579603680470598941195031960119540677244628965396169901385059565423043067097833925982878990665353566682415865239099214892606176766887237919902319384353071957960546732507460645554935349606494613460312667128681483797388505093249945773137622562610982403484444771050380109159811522906419805717246445377279745781485039536695407502292459151886730754427870534442256203449362369142204776933987934166428148544390718296639521012154770726299945787181657047493803630489354003202749170053767644965592896296126454460446074255831101849054091168278234531050187442639609683891356859231581868257368012825889491966408622227337186252863784643671271039972766507787100710613190801830827182295267589946484029192754548730908996232155201567855826310032804663458438550222794828426690411849835693418014153734036369253668228326770786387321971237659841603865060859113355175626598739761437184006370774357175449782224413849565638520430426859369602445837019008844671349956718469223406212030041238059352804487459298413320231047157787852439199618194128112921071477177218326156312379663720711129692637329299524605399135378700007949943045105175372584628207839906340984779846801626065698079880001801163216102892000772913349220679699178104663810564262251711884455015396713877441280580587317607020733042066162594446415545772482443186791469734707820872557048201344984951440177468639341790658217529241197887235894640568884892448319593085011162454218934256752973859507583398207225325248953139982690052986106012454660706739941633674115843154211278177721638706685909550817878494223293872812861934652000813063178318065949717642950330556496166884001759917049033473169549099147269791357901536855874146193156964040760592549340681851100610676904890182247660798054615123008794734815583111077424404487115798302805034446177316965553382934232697807293756498574326810682321532475432071814710080925966007137235008479471134845996261259638209909951700015974828019312299774778537320080673379509731672573075006838813417696657093162395467893744337862958642040644645503913706345947329320117416829156905964575477087310379528327281974061733888173846422338747712201667824993960401041063269547439321228142769289084681232196248605005812472079806172621927833353124713856322977465209135353861637117334881044135060905775298297795650420683780038611183601307688879966236156855925031752954675744167347063268507715492962298671061364740171972943140818931894823576354374367519914970383671481519350132916429436314535637144756908410453400335757838749276070254230927874979433379599054467945014311628118223767321074274362577050013641499401847542037860743493034735816698794725781787126253450141174902287443848829658625596529538562606080682510822093893225672634148262060544057499539135383520599265210314979602663969386646797879089514879538299171626980045765410960163747725685799806629694100313801526020995445481027733392973728861835793130030764148031358432618468827011113120077184935816019772298603679368641852581850534100296160670462752884122009159998986459486995968172175440310292329453801050248017618726615757845582300833709358553492501390832080509553442859084050322645255156985115246769309105478485080531847830731153984223489767244995042056378642283711090524047834443954961852954215492762980025164365782477577858077217916786077247459402046949847626618079003370858714280901176060193876375369332207957374019050002868862032194875728022165589611169317959498019982610200052326089240256776194627302061007464041058032497736342238870849163296156665955384617692851292701257574691667524563090208535579198790430705978381537583299683309108079425739479260181501092562469076282178157966712753342595286489661034515035808652602748722971629021985660096940180098686554898446387626740182468432547457942709199684903713719199038562336480024077090771272084345408919278898288617704429188384217870351196677178533393993315768160803178599781931420769669737979907527831234953224591502693450287507091007199890366286801917012102065288084932284052160091362924987163443828325971439089169570279417994738898146738555345567132823638134734655899080232841011697271632937941231465975339300005454540558327736013486112574778754611523172533384778473924639920175363701837478871532046903244488629673325041129504420360157427181928388885943603261789769161305822682530090013418129193713080402917798505890445169123876146661166176275015983533115564189646745337425075530137674743716384705372297633291279287326988389493214896236591912900559957219560239131322350418954609577707780962129572101388596241344702451327009785122970905244650367911155802216912728424981159748734221889619664851131401189896380579902199951926315682390937159083131926627915310965935635784895822972277638453904228459008498956481627351089902952312634721790073464121851100630607402502572622060576620570934355265542873007134113127710531432694864776861583344889025106656325994358921245478246246029635676100154324349757779758617550131266675661037690316884049169973855597564834883664028455934503933177128619408175115821055139924905510781739275826537935069769308938149950646134392341712081414500335547982568277001343860610392938261490032939801531339816536958857877072891645330203298295981969101511473937845677971369486405648198894515087320253385863817433704322381869353851697858674053545015616573948995667984902550995716978344875414811887616515695066597229338573705756981135195674919557306546603070697491352625973636636233174098105636092175785507649148474127246082403673861351847448949701679994094327833877179981864513822039012663263560204544643745718143099733666106977753789937468187966057771026626967012461159039971398230247006235873255414623881375096680419865571342145840457636461799606833944193238221829581170759095251467422819975585696743470419580960919675193647822058525519776154308567723558691452848048714610069967745149176000001301204417711511433166065901191849575320429760924609944916504770381797655418469845771190317011046621446172280890828043875793177398691791483012530684913297278580513739873459245720500801134759027936959617047116937932029954957570002396674929822443425332822389260437941482750642654223063646517645467615340162677600489861903750898863726631996566552632232057390746541066113091263031063940804831441863930142275261303851996972877519741711405842611239821954620483975556122103738117338503830406018186495842750267527529320453855811083955023209404932770786634163729845556725172355235357681723897755253211917664232536709762152660217232102236018529222427087830937648558913254329541267486365913522798741855543241416589227050166609429515949251791677488003856634216778360343446789578610665470545236621928314279349970257200058818908382653047690937266274907526713058686511150976736149629467353642483078085808880397946086676698858079623047143485933872113245628440882082290381263289526102389492457177085547850092491664160376090668256960760908460804830904924150584317409151099572845729210996823180572403664988254631657360098566416370679185262108186502687200533164601186154989224596237153400946222190148010328394588130505337578955653513440589908349091685894161787331656964281895827946467868588804863560861283471404621846309401753592908184748100323675013575232749452026165823466509892050798166873546251433762901985688327393049184189416124288359531006716462989966607139600214109227087002112225194699271659675129473306839385907537277409737416576275771198926555180960118986877648640411325614126119229349670230186471885594834848124208017466856872841655773885445530619223192624184457886444818360962778673989095592247657211909607138063194807993962502674522136245436207570419129714758065701350480064327517365843185027481144144611530608735450889431797383572226143151195469193179095212940062650999115720084011732574409950707152233819104514750093568990716481108218885522983688309216311905104401756913537480635049480405530821335382844865499413309716712355611809860533850854189205277752137343991620066792533178503385890174726474151928574167389610567335357030096514907586920376707576574358861612255592235860067017463179994623632574626420301984018121329413884351392552584451085743724402823339173635811017420831733756024804257551367346583698457378444719680624401903259340364831204491007029563767397650301223101247557681550043536247731479100101988738148485857757820294072201040302325464477680575499963737182149032692891870447098477218266254818237975823522764288580195305498763641076560866581522132275402714496327751427308575718718191987956084218646487074108405334273096892102118496786017382960739998044210898019510263559398737969627969396374093612395106729329057721259516727751598552383357029244696237471343380435746905979637639207957353163819966172000917470794576207069878229807882344336654005449800302319268126067924129793296259069074251373207938071357951658656462887463915185664427231436503784101879815587931585857859043813600805284495514115821572434561024801171025656120175033778703695480808422493663221573651366463897209142924073071055833403507434392729845943692753164347379998487371021793633582559142630931819866222886891632555883110928109509181140677097983271295039524805244204395535220368615776011036409748093767312509429400091029151729946224712400498824938741942595736682694702120334941569073174174266638106181278803925893392883457614882789536881438541617316644598797842561379594291807256600051358942250055361607326495338986929631521240823136010269184103798180789454067172261600992760003521241556190961736900041024472130773110103916185852046424725160882199395232460453928224438894718313228685575827521921240263967523848841479748594644187419792362566148466378942486846051585503485882028419014753205811958137556264861716052560363290417461568427952943858137913042327793896956770755247632346606364862316377838423923167390255585550119989680025986841873574093649094858335041373493032228617663844867436652849586010762163849405722101821447506094543749309282238054396184760843801053770465061617740034681593586054936137482444295889699510447918343220273139015734821396058859350653372910540370283537769850916695929261404019921733550225496482003757576572042175735936136855967643809354406941936864658842657247569904235386174184418282039193514530505099805585066998425051985005417942008716704230479123915659163129240180900849444655832222950367243586560876211569440936539192799296667600471309532107203635271394547731681408884297966864329541161069791854932342734884344344717583156929378784122281644262568993924924278772436990741632375605737412480405130505168921949204548088752069881558643629745103600355892669236512673829171731779648811641520552322545409079454834473898159546113917649758943664582330622702720778420055770866323392012376563921284303442634983167926948785296961375930328586700722628114602414556522214361355825792782506779824510229111323276667150407439423423709547817300201842725116454540946505284933205644151121837482642923452206013679492994962340778758172468864639813748447027183605786623220492803269146748213976663637699440182904685010101825356148516170804800702561373523745446173940883255929588826551681649511423300952291695879866897587837385915026209133092411805666835410400339257389796916746597450994670428134644886747553947930549896177654380203442621053121472196667648320571458750736285793112294763553328549359560937511592697365155514040544063471519034097767436969479917220891813374375735574252548756565559301819430788785967806829530668797097221490541615119820187017507483453210667424359670555230410107331748053208183821346656001845951774591233377833023301744519363030097497104331521331540524601364245415159412942824561864854450427217496209095155074308822109348722811319990228636562817546236474552598764119066935087939238822814920865542816479833930181670478588997322600005914024891688080190022971183935783881211961104292811772131848402214552062098178616900805555672562734532229819433581367264923680682368435827223420709995690931012482441186062368459534903163290479979999571074327134931374278671676422261853250388444020792531342486791311006688354142896885626823559871730811894879076306121558444835335419680657612704044371859864258754404997170649903776037481841312508398419956367870733753215972221234681768566701625426766263987480236589636246671997821305879942203024300281138494931196614304764194197721666142589241654116636745013957372797211559792230683549767628349425838320893181951913469868077818210251142455869831908149706831607595293198554240104401240855677193150260598146247568526417614492782406376594674969123614552375342363125699711024421021078439082379899393267094636916439322843622215250767475139331693253930029251860217779642751140510393460618539473628427369822977270884571484810354190046749571085525430834442602251069071702891971536342140814592394448529369905502266036590142673759730118864252810256864094543007561798279390110094816014417577699019089877926286787134194090929010579556141212948776536863759849337219790089687725183915775693372608366231945001451064808034703822799074688595553922960311310885272921747799001417827306349425714403616998597234218077599615836770924038909493195188859286333946067948220578600402504149414697326502296726021810513024320858029210222601784787130815428267159981822790476953861812669060283739956309041407549750866271081481427273339042530199469507582826412023303621107806757967914424946869625548521453531092650753687047538439641629487108467409190046745167637595822652512245840356468807898831424446295051514335984172989152790872685774089313602186688936534335423164518619458864778659511092874707262971260971592019397899822906874342304317263473194793236982877863059698917178954320117559413706450501022642394186833466868178353631096892327994769282272185901223903173594055098993873065402479861436784312917594229292728384842902536461233522788437878143056864637963962319761490658341739138276381284402291032666959113298888044882260719120815942865888241080090884800096992173709975398866329603171401275816166662422397370149594263808306485985769506414088500407953229851832877179299409142695546643619297430022990549885784728237629226360060185387373729063624444443515656829338890681060639762854461923950037768207825912004900107894384728029964038465328330302956072311245749648366045319554094822779181530197859336937809857714352508010072894915504862867306930126052508220921222950011819619993857553172112598761618113515647063608957288838233536010544321101501591775357501043360318149822241931604771091129433759533264235087471880150374053779795825089403719487780567525442579588107066603579322702371639317892831975454256628417694918996946313212496174723707759277907701734238455691888140543111586350009511046457197973859058503883237064566668144268903269633745088525807804480273940354567792079807457818262638906027119699806112502052501714053484228862634186749719903128970255649856580319899621483841266571604142052449954811880949242147215737008299236052629558042644939722236104319081854176227593218076469198758758478724306221930099451311592547275835768454929025587718243523754353005421202763355452397499015694414041210143289700346761036867444929936595502182485705054009063195302261106726754570193793591804592018715977288523354656369946514724651969772103350567661465165394516850936467960341072562217959831121194283943758615184576718149525790650132923737612729255413008774217556343527053345142136739974954844045787751529592654450281372293419779701424805165831904042936340717945615690677200326205464185925609170337271368164980905294730585576196587159695671275312610239937493239897425502418721876547667360801706746663656395944860290122792222056748539529299505899029699961929117553763403295627045464690877980358449848002225331883918404751680603139272731012013022751815848237060898167164791451565811345108070058805125331519974202962297477695905063836282951645537360036000653557372663006075901730690296500030296316341456378367182879651736930892093547423554459235959478192549946283379835767173428190626414503006532726570154805114990159648988563476151540798439362980933861165173455609333888856613226988241934916453411892127475377537795482482568181777065348354550422315792181617345301658563518631582655089753197346382418959364925514482299158671960825162808212472442900149838018321518580184249259631012772456725191998224339624840702164220438399191264264444903197847366199400797673604956335586051387200684684666211233708601649317632208385500134406118062520330078259835558764782129258713017255432922356536053796819007964534380373215302947398846911439135861505706857842068321327098677489930672292327359989652494760004240470358882358212137500256180198778470237009450170390014289512646131846624504770835188265160466709071017655320485826277906903305728315019356260981456917931071875469954674193170430406791577065244125356757706168390700106158298861673106858922646415799992505934758495638391810602735343134551756438458770460453859625588877864652944361407191449100500664423504352117983343436071710462477404724205028279842423706749004107632110014889679874385569187874135964726999886719562852297546695335641770210757397949008394947316677550725986996167016141607441316672555803025576799945655130645012693132723800899897828168809746808863928691031701668443259803847341548827995007785491959917576676166232241463303196624558280778169719051261725830794546797259938650610151698029492727443570207593277780319545949567731158725056487203973068657012503372931981597043677122757881686831711921458916495595947779235149082148604841645499447679173530939911774939519723877121818477766459127662814634620438316518321146882868422312066775145681326942480405950833359671157918020434455001796887150896977125589721138180838668975447794013040854312531765886049714363620212684127219090859770127762336143210214235365811756167418489747997838188226274961161993844677331220788779362297264983433433302157079940835688272777015406238495397473248309743100348339601648069832190964164131139698090129315761363759927742390067373458625918332695949759726712039333808657502243441338799616890545295203030220749971619825078866860587488386323404983928048556697844795062645958125912566494972766541482017112668588202695689209672826994008468325511253709100934740252033316909900508840029957708725143256219548846156133907426596229840195030498213534618317414997511693234108330770609499753554137005746462503692621909524403603615431074626990230444009620117426728382477672149303483397929894164751813843822113853502939906192417664731389923498844106628126972809969169209704360113317659295226247256163401868553183782016713287082350691416304853200528276518910694974411181319844733081834273705545688257736286492066025505779232083995560808159934130481414582825989743577228996867206500876070607818957529062976765127112483318819238903251365473592896136454054394242794896668844904563707037692064776524328577101372463163022251830444963873224753066081199666615607484054068779890273270253919695174374207576180604897171371216498805735632719685842779929258899343225999818019940521869625459393234759498187291759153644220266886794681755947303627169280710137738466077479614633985886799176250388618880141806367885177374886661320910322929490778773650019577409144144977165439623134033775578473672917531228001002658019166154032252780076418357312252637868723348169062275677043226413472773893731394323335340660802977520201916477236664779352288274909698312631925038714946988145920708950549231058972291262736444769244885005419630609697811213605633378785515462058544399869214057717331174550012211352743347370913775517547916258372865250300826662225652723166280738203878978250345896085389782336282350346943349655465438546698799516853830224713051859086677820053736267320683443875760136465156201308595302259194700080178856150523389509324901811356166993951380494893194854431863106553113173476659609857841384573034555662589582198837862469565692927026577218478725370507340093514784378474827724145776470948755422630829955755679693495870981017208488002622942860641531619636838139403475375000057674157318058382272498257391527058961197180833132951391435351963773097419769873769079477253084026574580966187920600962332859035416943623714826281834537305885696689494251991999793939970696166266834011180025889070314771568593925926812324759683448653566545657729704937669948882491590684200232366469906641775793972191178898159735183080588172857745434191830011926578331153523274649675956242519810637012677237288074634818665016873415890941050198133890877224294481112364058905094940346960256794510121163289800467524687182519643766093274478154867556571926137786125951259569179752106137947430762593788663116723242502307847673500292984163094645833356353423754501058832187516298722390910106285514327481962410648877172710640421315372692574010234340711450529141152824131596017615536105400945035336638622271692362880299032274826213706176376162025035187995291370097368369057717164164475773400882182288788253681696722863642696087304189454191004034911979702369077401225842157476218576966857739082902667149493090554228999526421694326781353067659628333890898772977044408620737921764970028869258822088583970429713867627821598287691908558076778355634481851502115129937876086552351846303527192864469374567803714824643308264323006221559993717455010207493698083841934384990763437929825402853811663139085968341374589364823694385697211960354778977506726984893951419562460405409662241524456329983514629243494084135638827248381347404795887030967141617874258503452026240637392466038756815989060787249332427703837712277355139294125886003030745041524498408075227406122290585861134011896168963059534921625332763785780287381803719612677873377332135808849123915129163103818160178021602495146963464542769008546201186575894766227364150854780926779578748822333398066356962332040536564557643232043530492617827647798628589516291959033340946003085279029847400696753119168201186770705688833649667509121368378601309991439837461125065700352810704071391585099198023381873581735114570058734006314164526110833851381998398429790480994621583655651403791651721581463125664764305455664987702825464399929587248401999550565222881281163929274581838716439287902056119792372900156936563938199506779563854938802925997216142190843368627359908983198837696545098524540250809679323504574373127035761176037565040659065278841007729128000335115371406761093426014211909058635977401962415687999252305969095055843665382449928561683552284425809131389946523787476068678195821613923694059458506975913645477943028223736112360594025107948870090894951983467592495144660513941584637442975734009139519112480324174983021929198395055381467593294016641181559347658216052912969164098026232942265755911294043416997305949432951540748018864388666951981590088342344107147945594829854224997350307901185036056427099159461147012652672956316763883898676833331336577150904661558638891912161097078795353044468466178001448449230080395503028751896928973521610674159771231509265100281744268993944172292611220412855493412020572460113034425457248448555232502135281324033087261462175499284144675619978455912521665062801103343925876965192492260365128771083615019665673064515862215505039964988279201011816463468434656867680580359549789628693518847982884960242383200325917527823530235755774493642205118266731525510204003634287100236459148488333787689127274386413288003532347866639976370230954929848057029054423916428523790695275118596576564039510875287069333350161123845813684421156621707653180829577856424627415810415984085272261309547318878736772341903356089686456150460578259624087841111132590713411620625041862499431498216482740860521401653971680305471222882540044230938169678379986212122835913297310937036733946706806996681544151558471139719821788263215743802178002347887962326262071495626497570037915319713247287937878067971448722611765595964295794716804818362991403701521521458342768033409174104666339006989799442001160799095711734182091788582822531050538692483475720824246176463299755447175338082081882325772429741108826926836721481023845849302033795901057997657004743255769409854189858513568562504893552064936802655805906050812296250786889647765794531266857780750983810413770721595439690087487943122436069708512695395371366325482678620132810134391344746999773467565779897928804341092871280753377289734225247558599314094328374131834744307616451290086481944028047238471430299491571313171099458254330280577907073333530273116695004828715977718585703425216817917118349702870692558209264767052223377122407082981114147015493517247953926743919310528482386813246390797511435395372918916472064270400119823058710570791091563615187233963219436237419820543124208287964501466517909562671145360644519797904747933159622927467456284854383136118013378722474901764418848238904321789494758155089477498007190043238879064165368585431627177334006490201443779527603033727615075270907285982102962501488387548167566875360571596390199654562072827713131845418015141416152182027782392737316039044076835716444811222443382904903804971068969972772001141318434948292447929859363661913533512516288425664500471351117165303524132047632734311088723982185718124262254767934114346064730572817183831965099955038852738224697402741608531189611328742556719300208741971548506831556176174874841663551530147657254157112687155868868565330712502415852372771913997556216055895641669179366304183052317012071623320838309540808952262048853214428358312557602504911263100162818877264320689134174004488398002700940372946077065166013152703863890585650308724625321331210675705801752869314658472700050362188245397702755005299298648918163950091657566512906508860616199139114632277633851179989619793132868328879135769076275096809980363355630794001743748721529791833026666750818092356740161684528622431241549725160366089178196777594079431044706762192551025640779881283156333162652707273804678708014480488052416380339797641523170028476980468608373747423561276915162222417049843082753477892104075815354641796955559028831485808393177471190614919740784177138403119158926154460271805320034363339003568993428358354624456772747739698736352808917813343692934613285662778374922081457858779121706719650579556314225069750931105224619935588748837626730108983966952043273597480896964164098835462758110704180108749132515521853577318998753942217501039063657632033325008969116957384315708106070424132222187091702215055672133774173314428831353654604873379869191619758749866208707039947189889590111759212075542023921758452362759837159999156428934998237265831274895607380335777434101759977153085309677683582954379957038337027937476493093988736868419967676197997396146639861798930875347279198495558714447407289632423802436503432462362220225394729927221093775403086637779810341874173538512669509993061589051496002679987425489133406357054600913783956131559491880280935542829302587992539491073999944603264373147314044834949492963926793265644585285725571386296266641363805956511528757811650132291653304011371457910561887705034653149793430459360765138678626370579158332057646098679706409033399167606651570621240019647279942099532859796137428693575235583119063061312904202488814322308747610477745067366400341010230922896499523622014790362921166857633680594143875536028598201096861401067994417906590197327595397195429112821562220343734441496332064203195669440670133013758546175997487225741214937340950688579156462887062894006259554761093011892410028582820282164914562245048259024063988554712239375214376006758738782885399764551757635386464649957239630034971658303532717251568337235771970272149627350413950674375031937603673696172584025350940492708914377831682280474654103595400024451184586579040773784915202802975169267434781810390947811748337023869072167580010115279735347498223932464717255992468311568308107628322246680245637977315950277361408976930670794618948676135133759658541574350355444922453491467771386478799168990593396150082508764294366912629018378756315976259032609399579806360938289446628432294681232765714478533684215735439400488686738235209563258933521352643383656793535458393413126759426503742733993052003671753812155378164583441647227959157978529866433492892578422454624031770323776027310676441551084726980966665966095468364337801723054900467338353323988990442011177847919386128163995829988320896576391278501075266264091721872659428135324816818906981769802638368156663932996324777743893071724857143505709260357047992056901050561683771345427914222201012967884674731919046954036851630318711056518529663514086410292990680880552171689639596184204782778290272703618854364590021790590839833517641000224257170972937130772934892076857922372870633069373721864948686262796287677693030388269905708716541514328061327119997036459021601539536289868296118910489514658324127831254467216598404751596953774486271750952322279637401381852235958306464203425913827442330748888726570621276648559268073073545643459166337651291058047527976057208156668170587026273823044654907570463231174291362982380735341660075134428908081954689718219880367803852222480571052062527953176387944447540549068088645864274513977044969995804918689093371308549626819428813795736327697241325958534681473235315842248859287957320075719681162374890465303211022971128009311205094627170972102045384338966496603610721406747156425352811204132601616080313631055597557455960223777888974743050419855037688540232140973154292237802731964955808841974631141081977296615844378267588771424319187809326187482496911523596077551228110398814553105193046442721393884091326847582794564833603507657650821521797637356845249710607868566737328675193688994559977055359534232955467180895635505907881369898767007193124359303247522534289505244556371487990813634742355050794454120686884899673800182240399416984347606454542707425623018282729648408638000194863189187590428108579772736851072218084290314439312088942736432865774188412244123006274924963008083758694713647419836227033723053188024229708026879857195462797539880947388523155586658226874372474370838816052045191649461118251920673820590653968330725637580713771741607495496794403204851281588908778966798624828594286378721210981702470351421375523532429206040807574514436911959368692766797118900827174638221792793234600100747168385271985181192110168246445054323828551194545199637284196737324999510619163313337755564429451339484338145087702330191215527842762955081969202362531176890615624465897438633394257973563582713869790693876986373849890664664045586976386696248852484406157003543140314885197533758208567446742637876248223297926790523245421636739289832371696595706228931122860241744390620860650766575348865685477891059092340875714182313435438496860408042430566998455650850644438949449924101895431119691730301867378283295588858119849155003595355541582992332888762704834921704592567409211242940170998107243734159469064500371617758834449347338663208258977018639102460658447485261638692044004162721060860321791671318465054500479157797715789401617399558609069691579987688384473850131737045797619556304588876524895457831302189524442187123236412389124628555476123017631716376455382900506032047501706507051934034839181349360967274884975193904756913507896489439622171298131034157139949219177251411465484400694317208497708602682655146622343648406406396124661908723314574255390667947567379780996922401787738982293131589663985076899823693012838964745914177965100843053030446345541552140214870514945150555497533571796503281063832144631077184640092114383245043199168662556025514571250658176342278822559078029646835708234014516479604310526076878548900767277036907021353307665582086959657945103924192303784230955234851907459243491335316359666416455572082299748433110482983267498231029860320337552747187620038434306804301694672774714818128758562611572528257973744437307176598201108386501607709757769596436228232246168341679542679849044476319709251412617412860307185091625510251536048057193386131083092941576023134560508270996832433612431918009606123187556327095942640678345191620822159519721971088490560757082983963832355042449477674221468616601615868962106367257862183346681252359283901494766778971570401644156214761625133043988769403901758965444715750334219227403350233461772675063684015242564255196907100981301464767299342498394626020869261529629475311974443230481964303611552983394442213744175321886153677584577903740036818563478674215160211484535276403837254834465780351425363905748575057560158576166056318753123473833015235788548186369746103691377482169439220948385151543988462905214685680091569389300550789854921048835038254724712824260124718802431899236245108595663578341095080835397949374174897471025022294656714440681674361197923224976488766115745214562721206211693921357260526811588944400090538729953848243141242084124513973133289508244579428030648800625212536235344754818810213520976593579712257931270826702157658154803812947423236776945139785962631961738260317161710646589270174844602618881349506318726452349244341992038039474630461402922290391145787050620516248548279531120276575538893176315509998018640746277998928373693725443512259442012665002655553281954033763285366731541566242550508198408889760379741262909097382954678151639932940666069142735251650915392724828163119521271809386331056866990921949362924675605601300563958356603667780791630599007673066044273675569820979885479443208674423845130181545529626030339251464244310814281175208082497736249854835184431413221103908396084096974451662872011480347433120448405537264803292376014571573739138830507935165805719204922690112545941860813603668144166809022146021304196327736161921637021476183566545651661302334974529447428723154754967592870348850991649531132544230601142142744669651642709401103257874790787828468333654670981311985596441954680119934739833881874733379114659868251683092898947318379884608095531753282429974889486580893206341133440424676430262360224794444098716510027678129241962226823978051911593254264934979324816985553261041977600845170061152531798159183100239818495745905231466674169207487638802208039914311346063634194498790242230405598524765028011473972048229370419020955235798635564843055419035805088872123897429642884755124395204326501662740797714950521421924545153206675249620192691124531533184561530604083047025543486149977979603387296047767813462972396409068491385489937535819750711523283750417720710859390113433841423939209485320268055435907140199700141105599098501196658755772469575683240549994888721999077449953450845443821862330686941522053563933878633747710048876575857997835125571529057010494097933677445283794822015579430287160112654597286479599593756556114727905659580710659941779113908344047493608593754414109301583649208732577735005899412317865957754684760660884234495396183336380878624352840696961116792348443683592205217727297841296478810098904171011040510895588371815329952177792271934459961357956982170645129389711462141810696672650124734768997214420208950260093377496605354277394071736958635837761028175879840283937908295561159731069745458878315839157294629733054744825219467612119009345939541545226762500049952811799168654407604657092712774904592419227325449819483284955739198169492763673767564321548132852968647719261920452184730165925801341655183849385186649255527900782625242699803294836944777566003378260173535637103058621745536315388356337135729592059590625950732603179391480729827810275140694305471257451938376275980907870949333682702649106624419045170456338906238867049370775186211492208301292905535893789885365074204881215077687567234572006664096490051793625729880760893736182613690461683617812672135077367564790246263555055112910726278740425114704227374105362775370096591050520346606657879415649998800226378014975443717198795385583908556331359267232097177248621286008921109858922648060112389504764313249551086630041866936084383658832817358558675668560078377423838122769872025807762804033730442938420925279162706605132226789417218330036055563290272678866411344079482073275718361085936172799278947066169541817691441800462867910602292880343110541101037084139635125148069543427088185926864087799061425159745917173264395437446852018253541697849024601986543213528749286501085967752878011814008811206488459056086701182781749733440737568026973343120406255580782803541368936269167565563618892105208857715625834630943211646986060339607711841652403673677157715148553073757203705089940554066408588077314946349093980686331214145837659907283077373358044391296145206998659608034247512676681594548732619988220905863695462118758752828886790125209715435197685309192374703628163621079283676820863313683609665537449334122374250349237858932527556263512743813668909377637966127356968439603817096511989786425975186390637473117281430703178277411175817724283995976942865412198401399043183120192495569494624399077469227712603302206633955007714941911198720929604511122241100591636652855405723818505326325193841655299745099817649710182979515491320213548250647392531535712468835195633311733516268104896970236029717277576639691891276670550981931608812948280805624105017251127990445937846338473820573241977556180144176935512726469358939062313857439219382819445740424840256066975149656058548973817536242801269642593052728807012130600011528868657090236565998393973710265768338711171127522607271641217857471435903338463275270081902098850832406395625739773251297898113033069713726338270459097364121823811581283188955955290656886216989905485628145842827473051438341106473236250200421631536205424310169012126135212775940446313422107198057331976704312431071013359521412619476526749848367589001560838451953760000460984640668372245586363529920175371590566933119606685203153326991933750704790063655988913250094968421188348381474463839699659146472675826558848083557824118250616566321293823752330425734814756062745817932638123905584643209424401544481550990096427582734044536083867165745519547322643602743457613274660312254440893851222004940376887459840108284927184815037040770725624054004298737240268440623676626645317764015106116218982399135402671091888970221924487613033356407722810089795507868786982861649639518249730866860391789001596747886748283144627503837414759812576024272822605830526835665036355943967541794212844973486956626747478055513588326955329456512600542212539820495068760454435240965355120602344500628008673997971948672351333191173165444742083205654735332214739907123763007932534273203415863623576591913928216971879970218226129963722457891775345775069634154923330056564423099710194545832310947829344494047285203547844085021938378555057298012287994710254494384014930494867275725072389565722510106838886672930379385520809725133318830177965848184979646477876985103451703173259597286065410361168407622010179399007456334636202945199956758073029476577754286407341425022937253108511575757568099494556338682799299287647631481112837235485775666349723931098033324094944041330514917790902779029824563005430003772184545248015044920329212083415366039158527379041777533481867429656296662422166511103316877780849967253245680979300758169052696311984035675468208464446984498188974027878106937934592952095603571418583055919956707787532789503063670479822954851088314671665784217888821626053336001231166981134611158639492969279202785882886939097251452365746496846387125965706164945817275220775156815838790988562039955781840021286863303359955610818406378088061070880663534286886104737218834179758995406022051581959373069031754755167763644973862861376631684454522815929074711286735413050465637871960456876238642962038414949476307531194796441547566108865632578381834262035504327258639106232074401552785959942140019874709889439142907472334826918272100755552112583730822920814547947651315591970501603685880326753733107185584799819953682040203190805525710145988580360302320314239753825938946169160403028106571392562604839747563848572365263677639966402773718166818618458736766758513661313780511869271011680970469005073919305795270432389904481804631699377726506026196851614178874340834394860997149644730492741768010003449194759987868536980484049319413648490409544536171181862367257499775764688824033661457288434855930292849970842395025472675661621171512772668349504086368329038525159780467518475481742634094049598060806610248979465284967339001774881151200788768934664877532254828986583591658612224408655494716248452933561296730968380496720073855276899132590224125023854427928332809588332436892628295076180232160646173800925965990816099582738870909467539926749568541204811812924309183967889184356280923378864816306574936961946535835505437798249698035616503544200385239064615502685438540425902756806271115345298337900420360334739354797815925163573104851153666647441827696874135082755500516318845019424021323252802974934994758435852867870583240323679681825963981731659783304237629031534507468556270635210284319314679286784943332537002658676704461549920968596902840627460770608594146235484713988012287235165805686939772756531121089783380731359398782638598075552319329947719665569026637881444205777409854892092536663252879413458514844211114605757464625174255701897107349553995378693213318416878853386902591306299968306669929442228704468059827025067465856890040846417140266979598600891315871496067294711692323465073559098158793151632194120780895793133979923700117595661815208272893904741610417537150258140194227817579418265695981992664380942711987230208516593051692599650997890324683192790354678339804438942029861510667105800346109585817169873051637133960775036095800967275762078856205739811452531483676529906326606456272147699783901717390663011041778564857686392148152979965623805847063863761115441236702242498303786990609641177772636904705280162477753394737838675893416614937995096794369534670545646591702828306025433035731641720036725291164682426625977090899129009398586788004663808707554716561510030102389869956657003340848127660299185243904464012778287770593130036316083426795113965141351637528863808193399537641150088939365579750670455663253028936169140526681692284484511782042479510302248342696499369608145712147745693248814743780612436395847530959435447292970138634984753670586051724867852967264208553446000123729642674220745757569835784493338004849288192493176930265748238461420938902783442899396515054276956174376087720447366474275971088124517517708891087686393310760292553761296205142726426358764900186995434986859165244661064702175732759340398959936221346340547570596857462500705318460677393748489388919160086803024983400550017951247863666496504541079208612068125496695027069771738738916343177276699511106473913624393219016613312293624781226475284646854504887747111425696646188811519084147620465244286076389238272582313259910644318863902228324097549581994330298735391726613619844960699492684275075204330717233637226404620751289448781837600130492838860465882492355530718328978611229412258182622052527624589785590760684553933589565249845218844629084639557561481655026734011274319959901057524774439877052468764139889967134526238386333532950497812193141513890148493444541627890521787336462389063343562847930200478020494189488098302283363404875782842742641707615083560787204773967851456124925864369661098747093664027342210743627856887240490908261066957209952055820236703864900938727570276680818557285181026224400382132669136726752849246801046454457413355207903244554600188758886253292913768373039424754120253602976603270057768240753585200906426499831054272202100463585212392304081209069741692906786888843438310518313534176023697278667801675444332943016728728947129238880718082421301264425215338269573387113884795200545694401972960930805265171552352125493016579686892969871465502822551338319832946839765992945454859918720966405583654705708693244436447511826195310419901096145382580814507477816219962898831760592216401898289158374550075630366967127099777269703164925987844895810373140148489488132996972980046111122393619529251594577429936769867511191414456434780284414744972966651256721911029768778082655724900049034995008592359481808101951886870223378679771244094260557024239831145301377630339369759195472227743730216475301967132515944384351905498645196500272774970312232300437008361019367616331984595735834892374682459845543061920142408022719540613431775155438841633104807574943674842183808687310580292217487487236169483456271458487272593077929991332654083209964068209220517985496769098827654588823943564994104257868001303045379864778938951446106201892561455909767639339597253738716916172306074754937729115647527086683673469958251975974261324642716226613151594095028972471906185419243393222095760768884775346275910842254089824007865185098784615159987279198496701029499025220755672655996800641238534785482146604844113411979525341155720593519257913116579425755070426358256393032310509238804017717575135450477198482814734852087295754902407953445349664388863756604669240489060296159780711362204314478415471898862406692601894508330216692160853814410632681376563001695171111226551052066763849468382913752309153222446486352256770250779647074085836365043818700448728886331569655078419536506861127982613082797652196434061610919141644170548487960705853199838936405740141936063032727345507275611260819349759042166396411977057628709947951049995977986032513028929299658113344083784234143393900507997286031052863116855112854785172814475391150881701871236403702074212460804294803415739791885023450767187062165423125445638532615157754513198818971174229493960126747727566197224647075670529735796612797572121470009362719050686875004210973703916702371982738882110381618098054198415240809843569656332089397248082445984237856937359552765887143385517343452800818411444119718314417736714913603470004914249773246782154261689737740493914393451607828383372276844673892274277285770089733941137166041852677742999459722913243799617246761248124599251535958424164163550795597985676865274799121805320638859821984917606760822825476749769053695478907668650510474969046517128196398402180295669378984615777427948680858794080738487784643838637202025234080666388489005115578902096743497851555657663335340239282309070017309875915864028595602241832112923393706740974713027210039035771444416835175696121505162361553357167122640849864606787155234077156417439760858345952496431070602663606378636213588123531802339225233053059536785070330959768293190459239910731399585900455951822676758063811742164888196144222565688179221026907704046602897128202272244698538406251800758863454734406470232057515574929859988840691839406368918232437947874844370042161565380219378741664527651462154592332545400508470533062479225683229132876871070419681729805870633550050383080491665542738125688681067517289617000193360585250457102837807051711744539303342562229907472269695292411518706337496941557230017742592584465417647396625671146794756110546916859347499641544742269033320819228959109326768162262325426547412213454417556433671677507719371703073024521015399244296254175600852580497510122136188833829765611324796016340776093867882682501184332925970953345819454579017200575113428117791999455764615972085923134161163857816855654535648677775935414667323091169341215954809545289848734444622536414739527696938508100937326974502229742146783897855773592062767471507109541923819855935802818910609485784886537745527245294476219330334877267765264380095001191947376452655495251618417284440188568276399271315741558510427251387249710995172566881693869740942107513629651572962489809296083381666290925783871057424512786356663180694744754777102682371470310000593383059568940414396185412362503518425986866694857974656340876424855408744687492051724194427784103031564778411365824019407651399035873604260113029672495407731743334356293270448894690383869675170054926096568940281241608791674202639005614275066201087254526075529777471695494523439611911302811015499425661474845802073852752776692738014461376974893667683631784293669868058632479918216062979452883187285418803357740702731320081615825058147581643373560676698513515078365135766026674711045310550232402310162896507110432792102136995999197604183279518085440642748052737543682160493615329504143804538363874015889940092060998437842257534786212703031923532706760151988023652485423168194859278904348649068764702576374025863070680413887955841112685867180974236026015185963425741030401353431748121108460384428454528812142442041688831331208710566220306066047890129353883314519908916382352377418302613278296976450845979538589137084339412312037600400254915363638790153084998646879621907324021183860858361526945549664272978827920966275964301847828285340707569165969309377276554082972707703249001961978538484540234262862936025694999473582204781985075657929503101269511689154672847784706688922123361143067548392110297543148746689535479758025774193565705553204517255530009867062957494890989268434733771784548170568534068141608996716827941030899960629461473475516807681424871973363041237656367414629355499913095565079720985731306996545572851385328411885005780826150933436614497703809362728424668659706787411718907725767114417497355794936987220043276354567193407899369816756194038122653836359728486222503627306833753529388432319889560836750088810780873726843164526465157256041449173982486363739730639296925443072105370312116238911142413573685090689416345312283981110991428277206432681182469461895873035569829213084195783935704768808623512391407976910775588320612449167391344647455631276924608169855268923334156203795916513735556183038795332457955920722878693810918933144806413718724008623834817833215789503196767991870961055474033735014905855870349292148504926080508901305923180283288252095113927241930260757120727852964308141276988659364284622206586198424176990160961506130377472691911387733294473978279961085267688146832905524878892623397832713035675921016253910078977916583196436472127257351446965064399717614592614056804514250058961613893416354746893809690302228978494267147591038794013211871430183313133408616070406553470119315053477046772618671110530786394681630711437107924463686507059050939545620441747409172341862584115273788929980612924599079044072972766011416272821672571612509992168669358919026981320475578649049395388479252022486415282450805337371952742983530172035219416414405794076796803511318468559048900963773607289836985369825267734612967119177833960272917873324946200571983042051414461712022543866205900977390291030585328125205015485465649301818591716635834966790824505051989068787414492019071299091489036488201087062949881211706960042285641679552973489118332598473832593326186042084324380827126506252948443595776550913055283607193562253005633569076188920073981066352040096002904119245711262927698210330184170871607173318020996328588795128532836593156877410608824890255555954794339185426218606952059357113165350895755698380724749499821653294146126854578096732326224188966631670157019012608507749278149282152854308073423292326825656144668969868531210741543968332123061839862752473228382895744194046317418452812217815402945806091783590449368174197202366452211618695985443276565228765025140829993644890342684363510563847985691907583877410089308707250783305660204339525269393468307640388638541990195103339325787118322496006100744518730169903881753082654156221906686147323508778183087469226487088201417221006740007400264515078601247116134544006441399746744914855461096068842951777969001284668763199318865651903191445365427645319053597693150253401960454253903211848370980409692456836765522376189886627821937722643961906674267200643122168932861061223381004591545491957935766827965284909497077022318887961500676326429831077759207996534894561735563339119702790206215726375438064030250086021370465766724021476140939673694186242942420409750398456458784760758863024635581804730570384677665097009917439161288672966658633732780497996617869470056341218443482911664335265765198070431908633248298269285824566672800431893732342606991993353356613945593064946475475981522090114928795327591720116928883919219293125212444743240382898893065624706669307612538280748368492726419944667339731286914552924732799838157223233376266581953704398323330551636641987422156585891184109933974102092821891023937448547574312684319887852419087970601052737140903738158581947013425547707160174663427382380572670217686300454448694303362050522585597525337569845323277050204560691424560829870200925964466865303478775928568611048902311104325409823146553666399952613829006073431097748158504404439140486428768216367394742950660001666076425148230583219132231302952580154622999806534792637653260749201728368421530058495845074762662596234246284871217141101156165124510077254906383334563157981906398175088968738458807502360966087429081455641355638158965593599090398283168699280201457940509268704965716162778606606228762111339724092174294044392989427213529095927953996602521552189200808898184912398543810454868982462462448764821088267454485045683322288674370394436603834550301743332503035296602297442050791397439412968992967562703319142223666212930338173434732677223930568626826218596686848223571818279678543722006085076644381295821846136467142415778718908381694786805929007343731044655908093316480794990177669173928137756761870453513183091453548794512161384678496320324450504278048692918023599484112578273463207929929314276006847067189296930980587842561337348426639306092069304250976095537326854355921594986782272896518775100215883595020723310547814635151933871481077413185649063966782954620684325030025101375363071979558105052682941882926142302252862482793358965212011163432220786990101117595964433154262849620811463904366080718107772689189970381438774257823080141844013286288146756827528671960466298421121150067127349540101579472578939647272844870737903213747280877004110624078613196474658476697204368523346354429830368323652881298955476651431742399231497318851296349256347166451579246857818128032822190884023623621362636705497294810213214004100084424129226909346679690228426646417838528479030250902667554536413578468063177564496174335093779054856817795065586353578560294093020935765783553889552600903256732949859356564149961706920019725443816146847428176892132079982986563982102210081634719777307710547280620021007119448971027862362358371648562258298298272767183113038742737974663314476974465174014277542302022450876962148538657609944601539808013804903225601233522655636329095517247722308443958707867860726693917160565384692701987763582638184047626217858980854442985169365657154177613207685112646656045103428477569251967732424817970060937333977473932769847458210327610588207041356679970818764216430065831415829782786306630474998792677076683130764156302042568137164827402720360608010441608338264521769121877975679704353845886601306046941130999545834338314752397688445880616227419297480964776168928754329781864803443648163760079373224208642188178093085601931765795296622054149449397855256815206131217912264370659898100322636842281696571378349413906399895188645447529252186330545262976509897944785482189703465530893737327790991282275643433220256216617651862743604441495292185766783079464907526591352706653233979891508336890427360444780507560745354302905202454836508388717195771438769516369177895330701459498075572013838925957414105132937677001717625781543279419797555017088625585780858048018327570238018576596372443497639605343904727512683777347834633036709855031265376514705115205796404715333728846322357465613586098619102672154060873744451556092898168002918556237328778367461934392487804503097990494880635716438754568595375644395293961658996514336954196482833011857280837813410276195328297996976094444403484083199862046892532702160515247925328453797215254443441674439565058940094935844491817332201598178385035462341235717402507250198695818175197357737104682037980386535318962396134675126401389211984482058481733186761435588006418481222291167625044984778827845143690818103586458282902993974822287974108998221703472221259701742254274690936879793768373048131301793534592425798997526818732170058011043721849685162452846830741546593986636615738005556459791610057426617028491134003859284649330797295833156162805519846362899785161240824209129348673425920479273170488498301340171294540444757900833050317026877751073382941068547185589653815572200667382360665597399347282496815184836264693596456277566914273200401226886102627178037440937372377086961109205402829924660574193756851010434380420928876292021391646768650747824842105161769453381427594906261841593633142035011917936562496541710039785531065998943993860796926488191470243794716425547027813718717524109269848359799834015992124830532316697652726700075039042420826708067467707386648821854620798266475632494048259187897640171385529124273335999568822364635678191081823524279027988079820238922616294591318381870730140457641368754129735539637546953985649492401546582930602023691159525191694379377993573913267333706204744193504205370613890923715546185538856309659912618095679560618347416835255506352272470117386419955529456152088452393042936006176289112060115470206465431382131073816842871115710405067135140738043501532460484640988758454004469229998276064174835732052977117235178185612785978350956372783542634239641818632035794462658268171924222839406453215281047279531407695593512684124080923148860284732464766294271696271945538493718164881375550603424084513975302370264825652678458941073342818214589315222409998131022170088709935464636586370627063715959235944956222728576392537920650336574248549304751449683821770814777599892377509819141791673118001267025706251876426845556799735481283908957421984403783716299289629851255579060772890414682235689258674858743788249552150328561540126699077947541463840436210679349202648296368697945462306474542424864437479100523088789856716816321549487019019533669490111148313379377163880662065071495484774934870862359107103251791833506300439077103147308167122184724212450616032860153574750602686371330356341730961380600279143238365294530273130672066290755983882802938389462648684404373275079491466458762966108183908319120356896631504998010794928917151368456574289629208982069358269161172294128581919305857321884309108878956339372451809637084346953730896831257663241290831248141869871700175720580643583885053351219745039293009743915977570077931131369668982247331329644164824077327089494151742043084627799521874276640756016599389933948816789886494042924676307485105915217670333722832204593315630716052309876760072628625483141905738230078517097024133639287127607450795409624147748957467559559727398429570553702729701143119432425371859934639595625338422508586389804560642046728120622888258894304657920340291302449091549597171024607883788184169233344490810174078817541708003908961115779184229734362370944910024316830033507176161405478041173422117453293587250696524361140887728447047375602148742277729341933098665311800371648263559047802761541968237940002063445565076552882331313973233946606255913195054161195243982837582578944944646189843149640097858849647375910467181120914381680397156422461906124304284814431993803829415564226395345091404080007576618213598660803097434662484597809228011310760013869307752614609616570701744212084338242512436749640596594242078736684500056354609375912645763057138422482181401365806592753970184742834616452407141035817364249821275096158916468397208296348525545892680920248957340407480569335576432612789156701357282596335293612465901476503225562864481612052137574060653208403225679113166916742145378953953609219263386154095610886535656724159098138042361733740725529995360571980239424513234154422118031020820913040022003185139025789601988625582613572044129239059623943670243096627164374256401167808575155222366743359007861550531290787678670693700265608205202273831000157190446772688583478626224314680052863167699824843960610057586401358046787527610918825833639933305880464301277387433588256004778693591127335301958761907704446215597264342426417000148352852664926616288699246779885701597834986698502626699482351315610283011155370740786730143563574638969129425879602735360430918943865824176858911362639685551477200067107443376964140780382370048232502042403637309580139090922401806944914901439186428806237731236575618394179263082158695728878318330941584475215157351607529340468658527427346426337011872875563877210596118184862012123137846103894868106860041257929988079000151231871708728040720412105751452928181960374165906899518863783597544096365280619900443064358802383949705349798553139959548719402886181506786395324248649087405178770034775115563032121897988448516037620575911975313764907961282461363552213619622083838722168585059873294388236259045159100680424845890901813147209492034416533340067107537887902312743573157382431806825693093731273954628980439187519797132301858299568465914087952987303342145312212855352166383908718224969293429002460290710248458870219411790405422522411624343656279975569616205738680564169873467885914061501794258333675643904033895628488976749527438912744573425914800448665193693611560407894263712572421649559462893316889679033456584814605845727287065653175109388855653272536140716356754426481373662252776703471129934319453834878512307873823446727088851875257453505534195361467517222308380969376769745881586747289839457472693389850053714759760558920153902703106171673288772744830791904690661027956847828476338017926134697675446520912493833421315020230747242684284954950910660368868642809978131781855867817134569427024142044742971110370300594635989228331876999627322154481997261259714142912754305447300279929647521608283587282300957791708833996081251386004990622401604431746653527270626065778700558419476143862977018687823092157427570137477651724655073300919740552122175002572445962826909049640090081072926052290645798295516852493873673325270683091651284612745286421616249466855433717617646477635164645769755231429492800891411506517424723778559011044669936565812928197665140099975808792057779273556593178692970134226751883477302538939209186598498926381936191335113357555882830585240809102031191448251522202858149447484809048265505319879388884571792936413765877963464113405248781881247663974029753719130627489457141474428298051286911646860023643401058356761639139409053195472977344986035750332260841191493943009480089781768634022954035899911580118365072067006218308158840527439774668236831078706523418422049978652082284288333737605526642721161706762208274402712985695647247193491734135493019831414020280677756034308850400732704171489186326033908851243577290416043507883559416449327426449451135571637287164593992764414956567499942461040469291699441682115442243508207417368388680481230871505119827256117273134454648019159833916975876981160594263408801965089157655806718667566018903029179547933448929076732955056881582657367966219605646775666646049732063134259077551199438204357480768391060990268940124362763147585078782337872278778435884171763371130610426369516119926021220588675672385734134143887381303935973440299119795356070144465629593305476553509482827394894344609742512050583307504125490017376198966163217715267529502143740868579243056697399928483658777557927858274178461905711036831594090231342558684211255110735581491681823365729244871612787189152547847114285849163239999606842050796856701144489814940705272121154984095667297190863770457561475589295280359741579772445057182713189069315969197159704110495701948580105514977311155858943265501531283359965686606417900677130736036496681688783517528978225524927329842136099557033767021008543594883783744982880751179395038768846904925042925482713459710047060500253671027002902652334426897219971113075590278574788676162075313547779931934273442298748996869979070047855180661535842570860008081723425821531368092564762445318982441882056854245326167684509351328951890317009437699553101116578898085036448279779559110568878171715641050352477804173996634210630447244076933336707642565615809782555027911222352354733788087473688721731764136769257755951361852690862583875801912427974526757599342674959589089064357462147059786079534388790245328691558333904783750059062742609519616875959398992283952877384205092740624901470159127838076899023981970405899686059024513493295622989165751201631369665530949841284007327603091614014664633237109360272762118748446640691846906345203485027097119914757165810413589995884920071698025517919217458963550545457508142025893946998876195926445420598482381258021620335059468956717450112069988942898920699486579994757096269163148780305922097637640616347530334758348045405782395565574430658778487251081049890538305189844192308784394656212750766146863382233152632958290340742329565767744261072913966406687914659576740548470868589647166741808591755915467889858568813811248327631798094697149536118684336512234687006792521755407173559757315765638415077117567803475632046381647548516003385103925383883340349324195536531028467255098551388804759028402423850361934208486251607125752435166027313388724404314148683507741305943128220846228210684681282512990216467698629427224293343796659628040971419590794363947399041322793913875214984422400868877057992680992233314270546401159273673405288882035081049860047691717840230292336508525236477034982996893864250893006130908289871999323647607890022277058099724495459314226032221957639247085292354723675170519245144124842350538851574537295612007089794610266867618501608686381063149784189501637556383837342059899914222794901408608684627435890999666243783604893118947887561132565429902823879603133528601098722736483293659310482511662518103737866914616986790329802203571975831452630611829847413836612741544641872162366697464536465653366987597600194218655175984046494403350290897184087594167071666732561918832089861420719526848159876273769785000666244506542941052775474141686609117607595905485199350535208422971400159202688181461605051689900629313175901258502711007428614672130330241611236195544333960607097100815598352368740458604390915685168912211741286121743448082829868347017153986321732257184277655906660974775807695093301504224463372919557772974962279187662392530861535689313352936346831962151800292813442690383770551622441042670951971180898929294994400346524215594818557803520250923250020276071365074148892491372203694620286795528638925609687897832410322121264717427775893273435739214738345242133258156062314358342802493105295782903725850139249795536650330917993779363095987662887568567272724455066467426465535612395916654240259544834268983730235100484581600437803842458514698902142868469189508101932489760464015883535785449966099933547407037581793245793077845355539290586113116161281534583361955053741985203217754814179836746364780909746429691498997371485166085211182255430436392175525841840648415677179787770945123299848131257811324413388483746935032999922947053119976549003407682915122800816501054198143938608850149522235496137763618097536193678202518490167227264603111652072192983706580631387550438206184040688266222168357894738121504777012210426367059004890431197953184503760082211477518982686741092284071951203426455688260445804520715872506486394040743727479365549920350920788422164407934780382880357340277485151593271917149205877055388055050388639879141443960786642391529968384470055634670372812376586998854323347113763220520306249130261131673219009851338747763389676855028557767923250979306597109847002942293775793829777222486829904206230164064284677327339951283625138642644717754467688858225323491284354708544872075387735086497746189806290952440531775934460732257072558932672368855162697045943855002943128174561655669720125592381852006741238785133550547348621300029291804642158690351362874657112234871695891527530519845348804129901591572769252437610856942358130022495213530780655782901129844666254736028469579760254650777338417569467519839209885670495320468378675767113608685658069366320452875677646686257140690703918924523580325493791168578704460460205944606332921078352166346539422430885364313041042863082557098153682888673169841553298892632924348242674123144687555871541575956750805332514580754525457527342064656318331386701058848701824940988922620684710970546183950279214767193072018435547557466365240674856341246717328430667099798604706658444882714117552047572690086430711011831431899003982406188783355325279972631821283012050168343882592615687931489698329199370704795857123941444399956928084552067483753035456943997771044785678032747574374927396307027347434254008195970825451232080854998501110392049499019950910751631143600135337109874583317609782188114710175304046100014616933920462122603852220442794150787148477887349078684614218102911755102400574533754747070399663471411321873995342786395266100776415261482681104834617914895839096171021545966941447923212467560837619052304799712777429947887528122007883314405900159220310194224552433129362340862847127861446007384358523278375583046828580215330268319317669709466715097323941193377452600089052815741622976989281393314767953828425225888281286212616673114478341231886651248663041215570356815987073159987956234677498070426234623358483054089147045661376798559920207351386593550803466410373741961709508793008245595965927818562300829913511473580231863769674958132261786250239448607623374146850914609106936149341318214867410974239132719446244162208885198946199878879222546764203757089688036611236440158154616692959567858832168115044170578530360304401203555382263637766490753725489687904531950500654259654296900768119577187718851299482635533960721821919240549099871464266326533126461031761512967627270552853853511328202999103646156725890237527290166601362139914314742945255271815849129615653369672866860368116604112377761164982901937686580330371792138164745076367055129226178249424848117584761355602525695743958039015922898699067343496843091692331075579576848726166285201955711381573133151692617989691228822686943719604142254363299965869933675626577794801427765679233808298316492315140748333649496944416571161909186792176761267121928198929575685859544264415871402092602458585925542586182160122091902027833641614708893711759234434516460580858055482194118780590828439673188211140134944728598981982981069123872279442666570953146406331043725507197009775243164312644621079475842421465893140268603006221034221598770723960767592179403374088202102931678093886087625267846301004193833135685184015762686528258060296195644851013714336039651355559215814330844865433181313431187222035741478991265647886436634212585288252052646391085451090827022322778228943216516105620905452077181146042313869632584846756249147834797041242521540959168884582061242458729325779360416561588785984767145604267932654135659805407034196998722038997960619262743224333618958550135554652305864719201014176942440862067541381197170163907401176536052643082799109366931961384554440415341643747748124156219535830097331116227859808907824989445777547678642510129413542347430081033882079790067944770990575286160631858643977654485102106512836978407045020706060461177165237901766179123042387430335915379997077422671012153266103515971331017918113803991053682161344083874423645994015839725152904023696031210447042240374379202390166936540401267609063634940359273732282364455913711777422697973042085988609667744726033789684719202738358055755724869967289911271731861541302731755648101985545703071325646219991160869425299969395233191782424286996568840169647503182649260717095073144022595136367044927633222458549772978483179667465591590112590327609844078172997858623198839802300996270576939096870611860142804303820028278749883855500145310221354168332211715921870673575832972725247058155346283709057705847649511121426555668790089605666613371747108108186033214505416316149439534008364043821716219096458063676077148163331324495697326094746499719188632457139686075439244588369517136381676594344387443785736391541899070675267225263130248596401215897802453687377144596244098040626219455581626871547583836184133337386091955951234514187886445904927435295787913978412279181146888266763526671843404986553425334500523272897583149919820653474252673064718775261951799450780600737166030484995499244093444189039627777500914584488285187738333485761091146015289774978950001474500299877629918228087961729476334639065257528297076122790985827393796529542680722279883366110847125089737368617210097708077453588467056456683646914446570516597952896634953035185170205786238895249556132252647223354372591557193218864900896118264630843860887198959241635088247282977999477612460008274700096601412616301906824226671809774104762138999662749498573667337738647067353130864610059755972653637079222550735404892438170185757567545727018219997973119990517647309501123371017358557695745903824670872030054065606010671587896218766741153803234958682494090714974069462020090182240340343224143056783257517998960100404205509408596302041946171175151660456258977117004864755454163720799676538584496228134311328396937223179527817775635543974766620179128782918059985329418960346861087416666687944668220221056026317888789628784585976893019078630571583311749005243665982973484759420778335260470249581598227643489735048658325642576111579107002074764242914891385393245543218201518336534094486588769331429038844721430265538539990418933953856144141054766102116022104159892153460945981809274117416635612602921373625248453281599361434332043605614717304356538120051483309798311358626838457079098847258179383709214018211037685682639609951409059594998369417320558042383403318103420702126364454731412199268380191598558501084390635616817431251882080439830868768422946050575659465900060759116069460173512753212541379571682341907389128660695606812270555354378675753220684552208774958554695660099157312959820179958194169882562220923648529470441554378776531676581815063755247018031099978939616245294455240615525214199054139322469876734238401141276776207057222347022357418946012521996729581811727876576616684588575106146387901770732174371255998849799308141882246766498150116969928224344135568618338936757667008502837667314917583145877917013246065656297305666255945155760628246332508393304659840223957874115562251894158347246169750825718208867953348965250855447245009957813319257712511906362445082012790206488176480896340526562892907379265104834257733501251322178765127078218297569990511766809928055056492591267404977523287439076137920850645223299539266368078348371721989592960850123746945658228042482366237674905144515039100426298487985369079480971433802078997199176200251153597028414905375779922634862552014418298895922608622244399620691083350525540335112101630343522507316609589624900170198096868829124782809298024251175374252697665113506108705703687701746702217255034006362663909351923477325783396640672452701435870390730912033878427607593801452191981606016878777502955486261286864381051172447054131708175261800948306321415528944494944946648494262484423398739705063346068839353716326292294522907971651592481432286049874335575774509878327594008830570345756691457252216171757707920718078345340321705878918547986292765801888383546218502834959552990024109573041390473669071709486920969841769489189510797474053413895079036455595292561871174455535716332462957217962231791369116303070252741437454761331240428971981697113215235852727428619334346290933775307876133400430947503289658638611461202101096803583572379730242164340156765445946722930983297248556468949182096429054892735524571027418386715422856439725405018350770030431100268764482517061259747076471917346495071679087677469485295764746275807556535541943771548589925787243742198069006823291426832947538008978131874475210133280333731279506699562559311519601350971433447053595264599979854977369858556545181627654075319729885236431426838008395092329638381943640064320037807756167991210853144065614158024537367039641157192300574962507593525733450534461612686540763567482842709928033265365863213811379659242873211611610601255380842316069819038881405224156121526330259676617214485158029586229257996683031262480678646808291284262503532054059656373438876041152002664739772369128467178879658529116151173961236964596250472327010717933498649903344969237240587273504752475784245243120737223545741887989295647227776316190508584210262981452818051255181537281081399334471541551374714720656077060738008015860323723591377246265792093356263294697011688700225878969901620383055391812346368692956048425667538942501225534828459211951309651425243388097195441195343530145052624491078952073294745268847517098988533029369207391999432132412029134284506872859917219787475275487441469043553932235278842568557941754967503314041292853619948621395737151369837856488642377894103497925877556591265198329891027943573104065976099046087215144624299682241351972901127836303098496040675573816188912231696407258007904797184570499763570920353214021739481461568986478397996032643217460999869025096210465414048172238492207307650340799382568994651089133955590454913940597811711881560090171975524343713071755491441518163952668767272043981721508451316493697582693417176393741791342171202376690815650123881051268961930055220372455682740188127082901165749990725984243902166603414620481841959220319111516001071849903012143586486019380562307182107439428680664266752872686829016510149758951773171802466272282831700701299543493082445067656476103636574793658994461870838473397846254178371139591003947193762462590615080066799237186258585228588419282802217024213902444530289469648301338170385693840497397901761812961309658925898993381181274812783422526568916962146678158313532895645367949791897655799958609303599201272742792774043308032550360910188116515726448842915135794533683919244464347952464417054558581267402154218331516968499383957336828981392220251621662865054556492554813139902341090723806291968497841494497166021299905677811604270683490776805662100056192319995127824952536865548757787245924261940422806512005700392905759776037965638038092285707912234660776714069045360972137825228973559863870050608842189275904156473310851116360577336928685636635069567361281196585795946856171235349396773245566928724892280847950888856577800538495555723798154312860103286001762246309014011170601034505432889507822720050197545771821286473851944233693419656606988903390019197499422817102820079509518284142079069168727306567580011638133710202489333786375391300079870751249410079971462554280521956254043712562012058817750247290736436392384279135446804345036412982691019737047394480114142358052016557624944674572267003335235134371319178368605875519533742743021750364751137610470106463790147197082872041421998891548164338267704017419932242027834182732222500751610641718359202909535519009818411691305062069058107596205733292275267572526053735772519419868291737015096329368557706360501559700237882167452420348624801373120615266762631406656545328877557693894882886845405478843208432918075956150819246095035688601199284070318776461291944793289587400383760845254068511591669951159952687631023484567856704678141367927694013162079740532045094504708453658871596755443534820748122023811749704956929484149881967002186639730016808374789453543404218258282085274364190035374560288549697079347330046410077238643400872759333852195284287930596047274170128642383608228605225545426959781940751244911755592478462645682280210132807203369125284307391565842726682929361454468342749180127507355279110730184914067423358444091448854360198767315678279639305230697481106039424627965253031660599484385152297159874912067196559526861719548949165878246235513900283984964478688175740247512156434064348586034404479597236584148250439778695164464262851262177918275211894479705123602495670547510764297393986753236631086799031244151155370944117454021168789276936457813283854873835547944396654314757542116641200378022682843514012625519156756875585837699023123664264425469245904299150915077153866389072998016817316899746451779116973678901432365427195255344193734134601010437016305954819470421367090310946870373367430243862699649010362834595517201389890006578581541277545186258814737462449956360516395260480364990396780103062461002489966447097167520371421463697747409331850140551077875392712492751719006841549461702305625878090198711404349898492658769602238412146535002799222897767611153455046028456826087480262902112052745075724498614950739054974044368507584391847933943207099630958291269156512355086035383048837440639001242007474429966301601944742921180031973998869280762190419087616048237225719971398183773869210385769833430764817060146973335854197473284205776551731493566818868127062231699752940454659764733370479402188894542838004021577045128951792957045536967314605323912418340188445338172584930891651633942721956259968030290328009178750978708575451137839603324093484605171038736478955484397582041067270415487092947908704741856159386841255201579493833213319202524778775565898543397823475173528844994910194568177436799368156498375804463570834916271927048025630608792428190521265311405579232527360397012682953678849044451030939421569386009669922614139624148435631536241483513923361522042466110196751964916583709150922173576414213692282486012990071729197632321011211984673299377535366483683082288602138215306955140218304581173393166873508999867271351895769332972181636778537198004300926197493470743250929740553663652488248059670474075956516056861171578832782758199112776996319866118000616593342263874316211402188739329076888930843762753676215129351419122101181887842572061300800211908864458013092627854093925815174015790657693996833655259176408467459347103071217162044803482529780876082313855893492516536037255197969852468426933462931732417920728086085417376500745868263410242829134854095057274495282182727664770401356727798809783695596565211628076441031715265010997811489040807652077562602369715115450074221859823041912340473373555269594696436185988959118467786798769328984925706746178587299581724662073447184131366143670293693906048085831222885067247202287979396726295189376258494178477680761867484957376060501689548805214956499501136993551497058218068488386142868873447829090677404426369967067209528790100177448203943088987938987166978887007157540355173771307750216098651916763215994316926798556712754533838663864847989732778097032534254931866597381348927591366489178768464248620480339947531554480606869076691445452170882776767899248106796197789329677694778800002245762693197447017492653495754254565311866667432039571218878286738333300463713516213394339369264985170509618897009943277677574779218138008566695686303845824738181076360992809951331810232618316812440150754480455187285135936727633428975236795154215713199073772285030431227753623265921918150323195919188237362497565461922195228766949833411262459923963895546072200659331056722088530904144631013392578862936924155416940536856451861770359577827097454065312724393527590887807641750046457643123934404481769738786605312811201182400321293733858756783983870617379832857247430557283064364080418485434064197676770651637938730365396383188062607199624367075794050093656479597099335054725019945450499324478536415977756006406460270945072661418661718158502986810861425512470704032243559207143715559614208373749982848400797428684398484448945614448003335847262449278048849051285738141659307426610731559737959155351595646384254967362069794256172351655358883185518162545968668221476622741616876797900128439239300924879914531590172683692806559557718144786837095269319059262591344036897559809144776371721270885794348267654311418730193741989721048613468526533924770116033273165193100805093469998241941358453362638066779453674324259890484045471199402115571774424896344065750823344474058070572346923319959551947208746838902337823695093534949654406376620513298373608141913670132830917693458778727658112657482872460851397119975666593005530085114200646966312881401378909551591694805045251243666007057212592697678716487727931691923758154954083674078606058777380593061071709948743113140929432692385925967864256755012272247672911233359388277064574526411052201016131052748221751715242013574243233339553852699057868903196260665728855138228303503900900478031406642148653202829277277296053460415981392942893277921515483779436364210386915058478552961550159343259219678080137454741480452959934290101036499144578545393987290184325165090638153458920692378547550547386916294102901734998973202750632882726061550344690160665601685563699681297584477952030958180586414727038661999267935604475334831077098870380624725637058434887489232931365095329051357946438845635900401830581306686802502790633653928859732805412501692954196324343223466050965436367513253562495546959086898933948229545716508077284407619048727048162671625286028049787897350106901341107876938514619859469430918708879416917339015786655805740850414200674973868344942158212910632997341914468875939453988667859649210099418143831114164093633588309119403481263014245136365747598229407080312021969572876038722818528880827480280688921049454300281371963128632543061418583651374681719408446668816321285053447023408254018564522405589900604013155960447792330669325966998438878481196168035831796626517857991999784376054038867035700872208732775959842226964129008654814919005650741785030437703073874242186618172330464899099880016552752990342678763408734649818740363472865246025257295351750997320752074439895058690474921789425965955915794638642323007752734179512135875127167855436530883230867040197125269866559493120080754927988213636722238721835060697534541977000419543377075454387174929998176852973038928135588477356985916658431152995859282337135507681287535163931508581130452081758041478048322246587043949768178171374449473889474265675334818695302048788902644692636836000702785001281454897739545435535753022980432614895186714154201016606039468162483133042579617791542432445218785693399482182454513094909795761582230588881171834317394337728874405278457075825586237135401047172322434578176177799165754700753402450749485048548823123719762192224522878864335435856934738403537908948857366536783351511150464197024399450416113481886196596655126762342183540334301524090250431604903791126079877847478299449398736704157276386137205551690644534587030312553042066079035059495043063462399414755510881531115268823913002514530667812548955099049127673081906635500328825181975744150168743129230472180083332828208880021779537058598362926016766385910562183019078840080445718720141433581072741265537835661037697126258704132892675701025779775199797125350084946980604429981975357428869039637420363884617993702114452201266272528800878759053314061121023136608102696721641618411515421362940065428106683414731291253349325706683325978815754324695666276050002751651606233998029331029770789918969220407879135622915139033325302890557971823933786043339310356655200656121804531397623284582271999203969264643091705603476064881545799723878049386538891306303963301414902691827308705705663901496619715829820725696178941775258116220788252839738716497430977725718544976905571187223264092701692821106683706130332953069848634892598134167085173926511934864070477308041901179414896173821789777490356827651665700312858981425518874302365648526199293482621375172039864815658352530283205186787341631515698776279893742739689361352878325354816627431387017528868112793389606781992016174429603267142484689277237386050839240808347626825625144650091140533897237439376723268004196929031496609520881484718693398612415187945776832494809970546486299951729859855141032681731069371322424170821658268656508561474804467791883089829455989676674768276593292751313958313803598503317487374795896566800686732048105705559990782106316346287607213806581456417759303849527203368458649046200388824793847857969495487808465818316382992461082429731567600677919564963297724254748079931136510459418043783632812897009465282631023623540247818122737264033275472183698419600378579575644569014387087914187169116143543402571564050016694568574867193222954108127709467499182012792067904501787797936585451827986385880782702509489528097708305361480545973819343834849650484066624283066883853024229451383695565709928549883340636529459338629340181734449859262368261844421643492949922820995124251677555611735333455354261928048544790861666196939542360909865668327067348483360387502834310888577061022616154664955905991109722815875288659680998949228417184661069377503469258291048779037701429879379620863405228008958480921840069845572444105239207383644135308855248030163891407964613054428757429623160063501521394929062179043906395877666195381053132496629413391566207094085375916911017710770456394592899366971311295381776674974263676593399384145912186835811315816455077754655770091263727643469988409653200059640404645498236374418448624223969546150676607792457084613610988220020098536341657939568342814813969508427280364406355314023333128108106775171111401724335839352651078497724100786629177964103972212849748641366175028879788778676680129096103146254402343290770674553403417705030923508933122824582235138048338859821707967532214948647291290466324735561264947312398953415300883624865488466533938943536813180047279299015939918001567262130817471122523713386416800922509672511455921197067680297042536387321991439251154094542144018400421410321648475141853064084237665642905235575019647704112710795272715717821770412302011859540831316251783950315770844747165206605305349245961048278322283439272538823840033528962837726166922088757254952177983414553248169021488325709688940217448106707981782321456465254909431956336949790447627931661567828193968324279847902205122904318216458424371025850822552185402656063769736094761593324845785426924592770279144150523303069123749246649851104702924758052837593174632018572450506228237838476752762684664084468646557748710040654416920701564466372079582795286955194706278746938521437129365165446624215706985293307766293760855957849174872247386931323173472805796285767430878151224187261768035701962180230875949190372949413747283381111175412576089356823339601037967285026988400100190296310737178761775679162161078117937539695760639769714856314000914420188091307509634980037678788191176213093936138945290617472104785950270652626462477688506806821654226453292642908487649125887227792298114061715474070684360656329285710718546678333616887774271897082831014797490004520042188841212771022463652705992255455628377765641333080708945987623550100163857318809688029667728799567374195545496267474887085557507629539562783668779153025012818388602462756733336662719682750139080292700534260455692457373291012122873138614022335687961927641952704525177101172053175600653844085989712775101011383407089926941073584632704293493319112624969366801311215920293732658883740038215479376140579486752915676645321133941503902433974688052609740535360168279004079445850760723389765050977345975759230514075443961237630437279957024565573137468549668806778177661396078462353574823893436087165093536384994741339506073364607488821385373660937163047760721409450437634658812482321598219497353789270216673925372254578276172852311703130534070674223801388813576222885388486775059229155621559576994561430385118688493452217478418052568801572953809010752386272292051824216579869404806399161532600658808399001962480680516852391160608017015460016274714554251057976710367708290893575073482245265896002605078420911965897044170898000855330546519248897380187727520847275696323044397568073664582922296249719886913844548758393987488236099106899776897917620963544483666044741375654018782296047654675499308446982309371109183431615118208358835929541874770145661261535210038814051844423000376156629972483304948636218086510467310815146797766721893795279778205187786852096024890030070421105039456719754390322213409026727089678466384777497118113069265608847341810196081408272530288835378091767378928383798415479410194021445823154963290586914095654902524689627479990447663680726511181708482765440295314879986099052378298280599954445621535848583849673577872307670131850521591188890116952977792924937337852245917063931620726268969132630430562716404116339239191848796094937112010072701898307162367184005552229462646789996550108087980706344429847573811669420718756483652413834575378369998715775521835221361203924196015213521910611823947923085702680822990372840908312041183561638879313555014320931387852905971070533996913633300647212546881493630315577387751576829697966744048403301962907731620966379170333495083901824234845473328778461657498647729588027175271128972821098482142367115520552068042683970964581986043274033032543131946155737214356744502226958449389407722161476410501972950478165379240900971272512603813045897080215650595297748867191417102130158697221325034274711059088507443473266363037378430253473878493626915559607694948326810500211893811964566638953909220619673811880556043963734396531291407054477607987589111509731902841613579303708803757585146291352898652986238290443040727965714780580210412941625600550869790391602875366829896584331443495823524858085220518474445683699387057101189425785030159377644056892611712920682538861608254557520753921774253487202368209320616557175355356217156934616435396380860452393208871571134318731702171923964848385449720583025491530793812591311184592106653802950020440914869424227254980121392176576300116566270203265036579746903326881901381386358578580633344375169412596993028863928181211977622958166362874233299689675357908583638252598413037250537844070868550389594647827587154432682053734039804595742175096637174125176328144141044844597308887243989314484955012651381805361067810194230958821379683084091459448536837795310178643707518947054900117736240333326862372363047861007636003295003037767425349873668304189466791520432366965191996217468335102516227590814817157905300799723731423121287694282866542453114942872442968975997246612104735515986682518948167098150231923948962970959132605060455717414241646117081634312139007730613512472120800419152410573002572757310196870893597391253371489530123701938898985656385082011144572800988641017364383821076281374968964155350082538455712406065142518719785677743132705723544172443142840326990793353484083892811010524724895045219899523303011103648261555753252097347106738260726760088422861593208907269376944153650710882047446765496180653607498593390458054161776664076247601517682315047713904574987139947869841424458460455264074266585693189578149828592729628901425189550849905390736826572150734812631942759141402008288094143891915077201085683222554846604803954237548631420549250355872366016044786885664630734949352547074216297088020274736812210708750494726420373559093827158198608122583348295837402956097444123356192866820301301946866277136060388242043070865316504207696906106801311790671802134309801456359543876195996240780152355960559580686572224627017652286613284535756019343630206805576892691559644453739574110474718797261549325666231662315340190915665843178487637656907264939795559943812567332483176759621716247484973863189087481316759127023249860261906571996074162331218525694148763011060413309330262261871428821956639722011594750727615406750359878882167886800172621908901437727429147033499603041750480559242476377409046475328822129815554860298699112413256382754263997737921419406099450516065115731927438220932169247917636852556588905858598270578150610017110908915042387087012021749426046172582985304011663966740316194002300191517136980808531809350537427505623029544943074121656885553964332518095148355188993042321987307564190852499358108550358127291279823324452188565518587544853361333231994465817469937914351084266662438555120714970791217749172978496111602678922285744976361166717640034176722474894936749126100506953262323281494620024114530545243016941267329067614142416648747330523515655816158189711921630278873142944533195674975074857478828534472800254874330907482854675968245091008563535133717430809902491458601754101668423243774873732464833931323937087602373825682081934968087498285306630868183316722829802949445496437232145576688363538779672800578721314687477272750681176640964614815819924876426524829230306158665055797190061190865431394130408818350226939789899164954091408428807371853527311601119864322333435774960180361124500842626649941642684131823582247293926450117659550990033420989161204177225223147331427463244730964329850588374011969960769178575062296910930854075242953202873137003182863203534493298172661713061253916079294562374090555466272890745091619167643928036217270661438133107780250063731288828295445896094905981094157768161176839927967220214361441693695646001636995650828829613432080350471106658526522020684615138914639590327012314674746276913821679855900515388681116279759448694636069087699535522011003200809267027272832570666049356827607320594553088393269733489714509306328267130466664206313920931705035477041001208281706612379827520926510238837930559333528577278146410856230948405101597365806038885999319504247662678765650545689861595438790402907484742526492120103774762796680390103152232944084838789642376617605612577443462566817567230782957561729745613196386467696246323434294315089488146738464756818904863571899559322070044836682339262506145626746214771944949053039163674519314475595235326089513316866025612977398236735045030956704870387869514579396530821172139666050369746273568582262365612579703891655359801768170647099575213650617083172243480671421298037579918405329598977187706138660971175426387441715980056402342655343528505419187104740889040281363309346870012201685449035351961285651544805120608119268574114248858946179691911710559141195503778206927690327425518287403606370316847355276822162751403634783056284422203934803194503787550673965976478836996074356816694515888332396791296549210395996144617510623605512804639607287004254881971600216653055324531726898887018688891240086124826225060488371568362862704195077263451137669870263902135532326911285064187772805821748885700718630712403918146651075908000453219910501568562047335230887829972400205964525852003814997279785143977853000516992592444612724652010859825916720949051930631520142224594047271101307596903075228835048877534715861462153201136688056839797069399313740165148167797974389571240503853731039064038065278912039114274654788306888682433263502973614582124685939454000693697296688448224988353578307579709801578705803889472922842965763088014815842147466196617575868504802718724921940758831442890796689654853832140540536195434020118878789426111394469604924708550367185177227897115488924252252048678547203682128435349641196769377569821334106233828818286494954783472288716619499047033427200590660032205916840117833856230805474781890843790919996122471076393819710705779552505264201645253516189921624811391218449016162338523861198451818785494395214856754705167398045132018665233277656559880088042088695576430679705730533951034624693664719982173453874625551068589906849742774227564925636677429111264016567078043629814043630809367079855824424853298335856185614402514014261864087225891039328588725724080555646497745512216950867946472426266535733054617510972685623971633965518963443985057237839024329716636982711479234084598001262680620733776364541748821855898527589268509272973943069012328955653681780886137930580767225201493977413039602688334515471796332287707801712915539810401411688730286789566607411813270719084123321860659927839159840440010517532330921284975289714547944498431756533851307557810379486728000421238242758523193384062954394675238722159661874896625349463239643433410228583898446879669579061943050758691364433171984517443114028729443518321265123020379500342328077722195697969998807027299427734607989627985972550326548234341723224753616611713238344754177859244504297190930570049445598060275594401854663977755506267744952795620811656714463370939672479910584237575723748780375170910416595917137558957044712406153099158810213822412082755417237696869125347432558277708590601969408903174344144292752437272561622027892368499689587537777480792007624097726272815280445820892048476864608592990479763486130301973819177453367176578084382995884100722543896521822038638340439953500357292175122338593112268400152954525709862491596289341403029272677525312598269958696875755310672003145195178236855474435925447096152569214653764277716276299151449001572164623726651327025211423078940253081363812194831817025367550600375728539951498916224998566924604884722135600357690525985812405371375815265622389109114678883731349459746979133721093389123325430712606496130368959184685322234704379627918699676330549333595075696442816463256941643559299462677772084066880738083129651031923243546598579376851229438133177795280787520144655649810532356304665943886742168099076036472300305379371038323175235968970411465342623492465792066732020261939826200496440809171773744943008152510603133012312012075351826673053201793605404486174210093297498672676609123510971509782016527555370298111765324213927182614113814085814452335350972639856046676864417712176930711857337857647073972378700002570993782407852300165463563663819974994906005845231888979498755188616964091102316047319964565294549780830951343418376597752753578944322867351100771000975502414709005845117364497872871408695011564609778726356500654006882479001374063155135390270983853062830850268052938280372430164660062588148458152215993122413863712910548222210238919853935919656588935235790704473300539529841647223035559429605262929006909411274822425813477814816935233795496626983486744936523752782279978333214041400906255693569312985457858291242147511831437234689075901940935923163731952168357074027973992623569113680070454508171290689218583452495996242616264300608203854701789099176110540101226232755151021798149626681045127330338258003187726326238794615864765284214869531938471664167708471520429567021450802671302860116638653767335041168349879102045599359326707245212707170514022476920202279445899506659721962049402152890705393524822781817463368014030914644704357406742743652426929673101144037233998875654912783054402690007842027443045865223353895636725688737269541851207247530272267803023839321080403121581612672885704123921325675305193217693930006771172310909778928569511037775004356723570893373157852248713726791841569461585284624153237447149498833088126900535314636550191255106296617027023265028382966251276910465466379946223229863141978011050320467897133897241038350655430234162431245295570884542083227418030948195321861496721681356380065585095460930099882107255405386884165016467469213522373831056297645662054195960011891695848791745060896030896527893382902546108241152029778917684784090846430675850023201284301753890864415145353371130951961975789186950930479024673254057251084129843639693191361336920211684403987465787255581597814698652089956117417038524788959726107313002757552196849238923005009777135642546348657315678508762374529346542086772805080120828465869206970235748694766833898753750634969098837706517955793385426653266575939441883746269182869527776442268657107006203995632981979113843577401242375763020692451419999748277182126886269038323569472491181680699387536424250072089949956967620447494924271703796773453914855350689693473622172993219347594011561672396891950852688071887930454550301502180402900836456178699973611446735307190453305259447595992018124638587686709930834565334799600119228301135936161075152820172910480442358049981319917612946409163728073022926174722424801895027158997551523965554955747909251003670929333680211775859474259402658242829683313219877735029383230439580342724296392736640364756111812559614406837724557771827146806689080167939697978182074274218949770575896774788091448700871026236474085136516234909137123903258877173303836415735174782332727058499361594122548935350809826544583374475688510447707270825346557320147548217884500583860373205106311420710171868278959582589021865193861688336457674393407494556807041505974343207462168688382071808043758813065883191665343036586626765756321761134613934195682851147985545755347531292175788047375284369724600077449907332942072576121279673659217539734883429041419026442103399860220779084434053947720835293922688860415780888967354973877638044227139037225371360382620964463197714777613269640787581034440788108545817071173101405846008064877999987524016388028628161219678438254356535871814870210899114985967307340854179832141444019129704276173403989888788089264489394361777493563266344052623417055298671979079564180096392909703457051578306273491663860764850340134826724047264343362613259182912772903178420499237729766720131989580521255372618586051018391558807394111331121006985521382274941012702956086721903262756577287716226452798630672949654327570049452580491697643340730583328102475440285845695240291690658961707025855957147927600152575462319038290373009584440923503477429305673790743053021570703500767024128912862753949274526434223988494633383825505894290862050448073481441853308674413975503909041717832232949511849198668257280711122076355801437410231759719168384457338945914531411569510862900883146988876392255264690464545974878922708008456092231905777875697740610975189446112825455266669631407565088517326561641953159936153993656857607538144843749149126295548443130900257030328419063728862654183175110043729559490281568288015973981836362578431199020345880942208236279848146690183619993025395924148318680181941697051489644074079643435063240219937647240725671379702001500407384740514438934757890737367731739611968477273368967310617419622824655489260553984639487337842829218522645082379829852291051021313740880133257146089549930163762341699031539997229465518315805150359242721273287293597964594884523696820933142899157205686689933214810035244247979850622837699660038643199344751197753843683953169545594542166411528730777915260365210240996489662018070840435191803399210452927190500734730922705704131793994965330512673052944185625776879014861035436531563562668018750766569197054992160096229178445203761093519876106120011202680200342878012442233155168425463989228861236893613486902615413910508831605295236500908102363521791717728920538280834456798828783939559574119517397686638386873648026426949291440082963255506662642989693364692185117780734055154925286905355964351992598774147720679319841616617481708511036618327130293643342738514414048022422456074284048850730690810959172682399508608264646044203700374691313455162330669473338225168155064646543301173755186985812724034448066338668100209276618615457739608511230463926996545014174645196051013308367582607672217696035491924903591494041137410605074305750603884586116252475140527053136566899990978810685058223636215929178279497460730507716510398727328619117083044587103170653005333485356096781021441175270502329047070672004131224879260474561261932719148493116572741261387045751885919348868476648264333531940488944526000783317172257026790161957566588413194897093407228112982478069998423823453915290577092085531004156056946731023274300838411485929222567233022754530786758672418900079614230180003019938346949567994227386576494050737373203174728334094075355824039701229173664593953696800359988229867812919517228007061709922545871929242660258299005421988989582022558192068454459761447653074155648301019676541201780219168528295424620357219363390156432131756533601922603088348671193882546750857038674593611652271088370542674277678790870447970289708001006571235579714634714030150163449139817453832297820066540275286283706012231626009758856779662098670562188932787159526601916485254304805162333636769784664180381121065859946977549111528427558861174481171661747057350944576873897197787646662762835533878440180674016526504246258459026942628891133050642293498238311952765856411983122344678049982418165771186160013861457651221472801024077302202417559714290761042971610196631046710267780317147925701588502162446655893282963025036916206304292483192774583084503805695397711057792646229163474722435558674501620227822821899571720532503521819560070127458189188445709373956639094718925208759293396542120010618764003270965232624053157678525721813566904255287154261502853838039618323021113319186932640739651263495951023103578154968500291704652672251490231278831314465457040449122418131807109684299026312239379457540275236571987595950886980636413757248724499822667664971787603446439429877631022455738634428452887345895473040734247779077804633517895942952484654423684295918871724697543464907843179344260602304613887782980414963872401761677421259130785247648335420291155856091526634392910416906299033137627883381051935020257003945773044082835875968352356262506504531846990002832214747676324151854666079776832582514170261872127478028654319363452287336679629787972600621134539183367170468876340166462160020097253017465334124733052849535228458964304331136129677268884463418955423915657768043655838276220445534147619455026867542543874903482035759362163907840974606781109287049350060344127393071835016850934012403934336191922527944332962512433896878749995419785442393651235828489707121444569286284941802499898638853521823670060628916198433521572940945105029937192725675950239842434621035995296757366374765374602541438902365780185364792382916613299824207786162980405230868074847986755431523445359568915695462316678048752301385030780948081825811059441655238157998969092307939064435277111361902013925912539489678639089636519440964229361957938228711440129295993893308773793254090428374148666618328531696955035398492581593142639197779139010845370741234277562133587480108082249439055713368649869081489981594644817318166292025612546776565302743017560310919678789760563571707146090294228805429732742526361635807391895965050593676701253216937415727649943496913838664501020238566959247577704546382618420903768548295212850288918330355789761043789329233074896207132355347836468142821054852775288397286374144616796887977509221769009386621649687945934406136770399079009779276989731415063880550796776561424329062534207657492800364449763856357334904670574243350523330759926218165946543570241944900394758656455809644357638004392143971484346138977118942316289662633873074896943908269934823075256987117164379159626764676327884911990250377129040847390636018037145219714894425522103043515259025597370562211479454667954542186338048064080331122885910545962161973530132341772083764446532367133683699444641950062312378194266152384391502611089905905516322172871473048285654164928699978197126826065264709352936441913559811541607180562463580494251938162210498677165637245696474070133076957223064557680846783454560828220285556066728661611163149114539537096175590612024497466707763313623405494451463101249578657451369466283136487753485979802591360450609192505667868564446311281186881194204776261843228724198791937641624629077804083788149294262841684616878143338071054328671481700246263872244978379096580093832826625532940058347922210244423992655117279596861033799959111961603146518493113631856051305962638167670286756985139463708165797237871137943134755407378697998448958121519198954702181485577986067913516329770453525568939430822829439150795876834769772754577061212056532773495808213050623228729179526037412391127960989366411920740464033597180917601953096446153361073383629428119482341966912165741382009047697430104887757974168081343367310247626981289555294934636977379337360231721086104045483627552761500055118656466423280191519908650728132197484397109606660924538073951991711976473674017670437172478928749824325963829354374378097702825944785647720976715078717584990776999870176540331220182063106505311770592824178184684914663968472348582855920090318580809176267970922471797824808386177844334954886464387147533606409500017191820078300707695726380131736396906698564906066682246561684186052656709101514539699580329583123010824788074964939187180322134252007950968492132904962618637030341079327198124092174792984290128251578740189457322443587537461106039885859612123604500374894615239820715619868680907997020761339437463384450762226380114849357583126068424652626794058579140881325077143909088912398621239004516998065003608977740069451910266838598239671303763318594421965556100363809187595218389689827147335432131458101961434064586989388526554076211327920637798802259364328284917275749122463086211564236404687717455382965090798643262808240123964027953519572102885624916832147746088855273975296227100055220973638832933497761676740426276315805198627303427038496804435988771412317071900877268321444048360688041183587650097005132433850751171527616157174879580676160330932729566484932505579505968960919854171867623532367163004255083950712779223082155334726089621948760003690829180879653960711473008738374906944913539286904413126795379054636530533222246858678109231285012592837189552597399284604775223968255042814880212600165297675006746830745064715161887773275189762160631092755720458364177649872163523047056528588521456609917217706557938387326940091762816632225571625904006637848385605543315865963505194228926551173658992454667818290114322110289442618576233510278543192316885220979044380215367895443115007803678541848757274305104043246595657219341693041468486635600398193947231456134304185712471345931074668019828331780883136344914630118500675142007361435668092734851185700942684191635821894882648926349287150162379534751209126210530814110368059458326230522215607267803178986885875145918543383735941938884992163913026369226588017247212460976747532486207096774272213579554185089057458659633478092488726211394808021032085141928135322599466050111934092294537185323706933021575926732321985329000454767365883279077458546220447765549197659618392016708168118229406950323798538999835985625879153165248425521977463652907372833028503682803066796351675197374090017381956883708974492072986676146532703101292080167385154024514922320699842264900068725324374878797177862245325861513585925044382970212351368383894259797582708800173911418013423253062459906019785961035980445961255244827658712365296379045873877942030263355993973976845295379245316569482762387337996045860741739914874028323851024607537872709900020527794872332230946628019256746081219107129823077263268444314264098571077459388467678123750277131123229811792069323406263806889033589863676941410337670563643377130693296275658282976084322860409220745753041647782376737301671643731222212547022104247944035925700579706698080395169681568237789948901205177067824266910802641085231260351262712616685977024308647934465780888062681519670489679598741543442360134673420359943247114213936091507208518780844269962779700209115989495263389812901252029710542485229446484744113841746518777174677916610939352138173916838401380378769542839402192752702194584355554566001774384142451762080973363298772606078897024039000230739582344663826835506796276326552116843106336436088947369907513299330141239823394442053214679802501564544849746988580455997522812472184345399765223204169275877467116835781106139486736654136767549831551090341620948459814839428758459142794806568073393136537428885688305225694373892119947566941112463597555713529153173541984810353493562703863745267263459046435106915396000018593450683484171246037502792279921250594237546204159452328870125755981888783494609988693629119708048016064305795529221312053522405121077336725638255625999218311787878769984832479505553758613408536799301072941841789475757433864685805069499615298161158070474679727825892194950638040363276135978116238822186822414502755874587391202467288769233471150269433419315690220943283783666270730562231255569099762775806357997138019742989478911939162310639178902173704479113678058183344892557924773538735749627022387157195962659068271603219208381792793874151546028001738261054464151059306325883729448680715041004765786103898317885871727022637230493365363779494958327763549707482721298078759905959443902758167506513003769319078129114078074300163378577095272869249755228443583914207992691466265622263340040963094977237467818003047214578644228910021131350046218320237586426617803499971229374294496355171822496267654274048758769643197421691676391599799011663085717598636226317315756231094173013692953065283640728304834502367289493653582884138211228295860595287618823503162040306807782985296547333097193292704363946069967675931451847873873772916135301717416551426336877027276952692920167477978326483689682229261886991619772912228900752494056815959066940702283234053149064732841310726495620595255277460718931734615412140389670797844949130663909860950891036574444337023782462061378123549843749481404355877713446828031661346573548328345065916548767937876062445986416935742815399750477930394047553302771465683865665647819223075073668143315297665681953269125169014208688160599110135769727910621402181717703570025928766798047043398035177012212959903588457634614030949428796796964296776795827459989438282342749133864035971859834601547093488679346644219767252793819032443130438657368455447252529426815249667387762726024681005277873289884870568064073637109461575522654486813284933809597988866385441463361231145429213251662873698201049510186731485390458042310957790485745901173465149680266712535571029868837677622933530633290429424611316620957806726786038168883504852098963839139155765648170792690800920394758904100920792637476399301149701491549850588990378277122392128098760614918056958931855798813516323624077889155967157683086991703897053250426634979292440878140696614554374828419788174242670037084058712896799966323933473139390566353527849572365164434868196414270052263372503486605603315966640275302244028896521990272758637770368928682335813577063910353836606505247018388811385168453174588462411589222926243140691796358394029190044728691300128439263549194977906088600816147599220812766383733222115755638693555031933792619024598880852537689040602886120336925321752310710767443936989122182415481870136411665713103022813624552121706568564016920682721949674193729932682139256331242055461155932686873238375286439311723969672753341523585668276415546611169848375207303947208069586401097686416409385195852632947157352533520808792937123125384606615330838199361852123373217680828530217871752047163066803559018245119108770268422730275116693687086904163927216176057195470981292890518364489737706924711600547510873027154856785881183951820511287768749333493274256852446798967874519944138264884020234346830453405211980535888441794487357093983528375754260165615366604632426324204757306773143735159148056010233208418132441364201606288680152451954100912605520481724902119095913758085104699266624577299226982832090239688557168953962192824126012743795308716615464371870529530226315457866149544175838006343243194358774917769622772931213671557009641464749758193910348578362204685915680116568020560859244192455740485209933182378617799280960634622431857774285475083637139523558144363272837098803188675611614189687307068479369107458522895541559033940009018379687470941486446089372919092363187210045908194275407785547757064084771962529688261035634847008706527399183846576838912121828156548742679593916373409369612463333264276159977178677226023480293637188076406561521388677133652179826657334010176716771625293824503886858217563942726258274968013661712401671286637488004788535735871909669935682712284962269862169848476725117814236828372514311076434791120080571812927426474282494382192045094985741601628141694353175513530252025301516771392151155311484083615490451204154698140136392486900676191559470364318027672190901268081792486618523744043490157763388566647690519215950926639461495504507487216965806732226642956457902227758655654066079835180314299746609086936947581582864845161043441199590451780355444259618426949923114257591246982215873084858282538260139401833291689985079513380151878374896639217945135904465019710998453696306972938472708418243386793046098024424751336983092729342024312409876826138523002363960464204387562773909127208162135539306442628887345678820317276536473574211008463351433862337266099570702782462106290540895665328415829303969794582655080276837918275859743218189437375526849457874580663768090409547024592538397990447677115516955955063979559988670365819981758150221451731007446617883583705068332707063330805919908950457421269004255495864307865187638679047691424968254108197673556358990429021806892109139718787632089786938959249861740437501565927269629874389458500947187636471880678771812205308662904524590367612934637872162233695383283085036997465436397676927732938689418714635894775151254566402274225144253639282806359762689084836762476065187282568291203904868145339158230646099496672595832775437407265229601841344406588711909775604248493561620615211851115332317685681034757796575500157870551895142423649065795330870640653660176194881491632293666093766727637018432547524662455802832599896086299111167761288266618414353309105227718955434857920773481868658468480788036630403796166850341454211216462786414125857072951730100514203360891306538130102668851164026802644910427482074435024688464145838296740097941352348643804263739383894001151672014443138772817693913748151055455245966308186486130839188854577967304049911718586563532687058837135041450786674876617144624085857149027373574330415002274985305647040001239658235888261080834217355095362515548204887506383039849922535815083945610869134986729843937847886131382701277026417043442273496807580578057670046251230745000004042480413155160548376320514605166846001345387883058696320812392761899707078511872781569313414613375980881407507863124114614955371156063286368166358248295169072485218375434894846930213530126300071512017298642233410886338717786025406496366019470863309689696956552936646099892495682644640583409015138133436627733396461901225795249555380200755144480470685744866437269357395694909708608374552543685480476195149658794773561295757595814944192631562983867531810833432108994719491031275520099550034148383161176522064664813884690019328127877967369433752456784899120001829268917889049289454494951120361613546273348084420092742555045555636497799496552757114504852243892008147223803055059089814711816429974534810408313873074398308854201608272966899158998723565290377228895929516121333035623305340800335062945377320271135738619713072736623941150466105502525444299316272322572227373637415454012358509814693042632771422368400393175047359438888404712592927525617958720272907344278454573195671485158674277842162139721543704109704214021658179936579850882224119241340631616364643443903085849486804610804439834172006706607355054418958178060775436299230277987530774032045657730042275337555865266553875124297031330501349311386082997078312802128837511014895755192826527293935538382386983275268043663353847207490661623257260210046535425140291651449594710752866978054412653282292886120731193536462260961337115499955714529830661423421226937444823717516219038031534506830621609901342778455838342678604012758686232232683637119072151627712901259890595749956551332987934688884416037163359781209108962862929558732636276021280342264413202280910024822600652371386184825927714165289300542547009387151525868612165467699845660784252723942881227873377774048152059101451488064411109077745148019762364806800998425203538348613533603947801897939553520357887376943856234815839175432873932821596468113335335536189492491832591038837961013944557648045614379061523352078569815359622483353525817425954278671658701752129775156407930507564626717494019364545712299631315094194859680505409417734123942429976811376214876644589442385996003550555608011192410675187169894523667990822036538150780105170946859679617297492498885768860001322960156285635447981232327559984391193447670848054865710638990333984667052462004405856335924243862958463270985685365721107024936430365118012409251011363534429866831122724553779602661716778000904301041581082484641187385991698114201094350942498121668437685989995071344211188230420145224716896116707793846845097686639830012602507711105085381311877020570653537987129856002530285016538629328412236671449067617881554947948003061036244021269922308308984175831078714241820065737286789184529613258611063653786241027605118184497111593612148973517934102638523768956097032527471337285060274422775380221567073764470928117161620756581392513270913594398049426186160931465223479289670723218957120599287976820645359482592686943272577379406361370544008999328681978442422566293295543499027489281704784074604616418793602076102407341731773769706748812336794604602977034276955223254613779761423807896884872458726646019629824587474019461365648283454458993135118740656328879962683347007893364070042018878514887861869424353408610924991688392366588541806923718201355886788272937842259341145879084325463887247965369181504620238646258021471897160537859029203426907216179537336701364470047115836907194736930355431336302723130858017786352346376824713990603997322873580670419519257808463030956447768022339593549684200153951866533669229319411051714046960762258234554003310627455721439848642246602784393255128865904668208394794606283357643957916607268466127962507647845056947876054603248454638534453824530953970137285273665240901331390295904931413400012976742351388578945953635375770772115226587935114762768411814658806490672456470845808342459346145567910826390847432570434232111042756337388152423421618415121580597049277523647391555658375005380479821081309213563574875242909888127023715017092262253982399652784499670261080867096498581443402144364932592318355190526976991817032541993688917681224188957431580373775385450482740977397731772632900926139541735653804324225966368306062618978024400233683209115633859996079180392686659006863632768381981426717474502363309307252138879614859840164235168462538432841883602177201214258830582078447208783545815032992771574786348930934010556458168986414804434699013142465038870718719804468790860746686288020620062371026453838675468399365572594776483441567282883774372731031094113678833221974971878703107851383678382086047069130630672138030041087157708088133347868044088009331518964218511708863630574915018480507618535237974519023804950243964593772473144214649829725547654815221552626518848314354441971354705426338084390951711911363508878527759707484496598098484647373975701715607793705139034344678372513050133491875926596997817290195429401473811987088216693924521686522064109762202557268824985316152394757548986408034503647344645970005873175580393259710659683088374335738039009513043147414696219366407657951850632960227443304281166230678164668145733337925303881590593369053084210127734829669946154498068611732358245432045404228843015133716728321489724209245134185076685923563644961511764312931997549101711200095168529075420413787553673885410038323771200023354232949031646249510735714336396055481147293060867503699922988199873774553742653979694163029579255151864985460713162777782480771474860698796168802933120656759174116597769597800774900141321028337562104918370205920751646272792518335838440262920161362195294017479261455696710373392058753074417258170527990558856601470415468125584656528460836814223432847518985894500364737215835697002762870703915920120959402806966440381196599311262162294420769206027054627875785077296421303497783495616781779866851580791702847990771120192357036067855989342904234130618241418230216073506265815082355059512161030091254756185558260925594582901470570595148613653215745636517862170193741843351099119841892178678681012941048584617320866497830395920818173120441083901503639422996843120633350953715250557732217687259058811166124944667777521922283413894395559933148194142601649868857293719174560153535988476422113517194806248583310879116238438803230177474013604952345477920845829651941064135939847108668373682583057223729338048229219370321466880416306874649130146424304163635030688731587016324545117115031011434032331770865794310814976903363506264286784984071346921776784282999020302523286636563733472804682384265140604345159504994998665989666467039761981438765543782762448916908958518014292188401543935939824971108968234461050141829597007610279483326691581991561604534317845176859626856244027634395812291422176941473304466449359061830201239831158288938595459908505501979954948183637427863550531954306469291665619907043764326754770397500124750395815599816612302844531772572968476428111050938848394261504316782937902555041427822738237529041150590359556880249556158294076592821242444131378114838095747960305614592496743200269087608703242352591539462127362618588487306785178162983860867355835831372099210494658468073471314967219741995146882249978528884378917544549412168764485986462178922272763838152052358203561874177942526634587788344571727874580350609515524458786655380441804775847391555461936043330225677168141439399755984140838272525291629613384853254742324425161177663177762765949159845513726247040598996133498229679467606004273620854296001016748425712328673486112110047522831585611396832612140215010116322212131631314732340961493687366519590354074272120115828032129365802146419912760921327966906458841334276799151735138531787836045566958960214556543679970492786328357754108692727018763502479071955050398426535153654422002415232194974074075399679708764705534954357320198880750340801978427440786941051137260019789437312074813469735615617889569254924756290518005360720288154140911485007922206209814939155099250097123949436546139553671577480219351566888532123939241447569178900919846939420657323988181895002503002145450625690454941644908038887096556222861992750288703455577580932811137278846237322475879472338847491596182438561640937605402603975012776646649753200765141497868608331644813883104440499075053958079485297896031601286730023965897213434152719824471181555513338270953148193036307028035133206583377348552022008628409554274243491733612935770590444360046107721773421201045709923522542816767296984542904717238989217435175798240026692178816470660588336881452755848516447707241898607574495513340957049591430232162893095607686443190651961110819911597043820238413892544418337692121711857137684299766762071381700165965848466731606053987609185389668495740005829944275355615930170488593607617145838201832565481783299487573076415439049800317998519224002439215606909036838432345484779475470468085313471324563946594259947361184374354100817490708338282291596399407092091114359806941472708161229689317307236227389079120473516114517689616598527560067866856365131685392227315010515826496291891241616775464846150870017975350082409613439926007017293191658403680245622075417106282034012138507830196030692606203684392512067113198679009510339901248870572200657521591899132953742864929521280236363498427383586294203683487346390715810661358693380265529470967372830405074199728720601574891239819801954922793138652011801430902574228787044622970986139782436704224661946056836968304073059166979487879655354957471703306565350108020072148467939620118592968763519140254040766267676967707546124645184393661473358341379624517846434766019342390550081670707206058251917000953236690442972425174624079477390925149844573856806116816781551084151951456950762087876189886721248634346617924839597553614495892920297793243824675698422602169934619743630475531132104068740681902753869635361949242496904195037104293450150882476311317512148603659422248710722842869719629943419529113370028820328031832806654295875552431716149752123739192694503486278182416223550002450351485103802859493315782950964193275444041953141195430756625329094328000213924568635041719401363694987072423464059168724292851747949854324771387975345371926437793508305406496245623788378263209953509707893813425918091670820343349672628098577069796128372926004576681745669608264099384364015401123239143035244845959018288725095289431521573423034647321415476906969424307144809042740685357144613013749369509437721115453212868887185369714457847833334644140821887455520364925103116961109271914870900256744086588069387322637450733588221514141332971344991560540526439104286185613346763445104846453197901651830516483536395623277577748529978507933950058834323673224340855291732464090699280273086546462781008803709607945112283763932522049981728105721816420017105572384056541286271677792370926181620023636701679132626238695920400859030917494061497143306975491962718806525000001761209548774565433876868810131455472408496867311921450035399536399236110145891492095408712192403464159829235797924420630267070711822030027418934277564980374371204873677134283625338317089845499526088751378086144299814876131124720146135936312492989076689129240432775599203600315350478641133047200416313300360815995910113181972148291670724191217973554136136206340276342114902476368791062818934141064754491940458087909672760340601261598818254771710137569860962321492553443635079250554217716853097969892765287479545652519349422577689196079087781754704571913809195991657179451307584310097778448973784951086987577343199473674955128582952909701011044028954746813533591880855376626287077294258263124847888811145206026155016230490323676486006060930871216260078029643570772165445702519189596977320562702049261998711208915932074464441032185649591020675560956707935055239380027832931107419121783738964189802026140869067984035445773886971142649438314014973329595528312649796336023593315579974795541410770503124313972626666766283343634874189190948557902273639892830764095460160615404197312323793195623048623980258175186031677091683254800357224079514509879732152178915846548270067138138633147855359699184336175547992326994755918118533883116138335536438240537448746059096776642674086548413319056321827281670052322111926254852813557338146903202264176800410631613191138277315109135910304229241845721071665394718011885672692516812679411381850341224041102222362437245170646654103576436681082988150515737476187482984090671730646767381298975670129532133000087333145923748496093538418341171896343312682226838158485077965635438794615301836966660795971977888248577878106129775111194196599726352102953388105412618190983243639608308555932123274299155756233408023286649670307642609118801940147909418912663886385955924743923735644807935977256898194950134889656615173591528732334561445177473404079277716776522125698843490818094799070794209456579660920276580173486886589410001727013696371740971334786569475913976469367050457813183700224483590522738919714200928881993613135725285991723698918005065108016635095293016485311263578105914407987770427055998581997473703272724625077862619302802121073163190627344893533189317521921147992118164536186059492887225683923368707360055119902101412539553943156657349668639313131492260844523442859371278346046570463403645125609238360914110157999274572613284940274153217168420655592861068778483944967334171255643773945274223100896863240297364714247808937210843973721108670025252486408036936498968179690827973678272249223777447300754871940911327638982122870867352787127141298640078107285425224826973380552027242550527422928160245324322631565621554331693312885059222435871417801185196638829473501070726232947145655197682740780653569492197383510766305906965654192629942638771588994291846007358722042725395574141077645349385556574573840200204963750589352199177132274034273767171737513181755040669046412117724138990450736888907781309059710399305582060562275022857193626639607104700345624332960420384038966262252881053839173560425275152605840786953677125847204521153445592710213273502329595918413411382416735331692257156725056248850913735064642382826322266828699728138983249688200910230180244150833087555457234885034898147860437441581386565881687689912616223861337356989817739538228411255113534991537189797738885539098586339203852233178608935801693012268650741172775119023793129007559882865447312868864840224782943468957729528154158263354339293357490481290553398459209893543529247681618689387673812768621324409096899468435704835883427569067925579571763449587833481720262646258672084879005645227490509431834249010158238252202080846847910208367017695520348111116223685273223587569632598565584289397224588804364511008958884129862589020299751247278223430312832986093143696467648398508484253895388043386960351861148384565955116887753779193435064794801521285055124394414851157576181862470324312608280335775826355007132786657899056073951453111580379245059317202850654943414949711111235536365366639531340476805344293172434802981047940702903679162301426336570283580757795595175607394159959831358675096678103310861229440141933550990177083680713439462310551108870794069365507439373253662752911337138222361550797443222103886329169293017822822286622643526814203405621731569059424335762904587361933393391455467098269325087131894300307781593975021694842076718229646543792224550009297117885188171577356608208921116394908271096531848925202342963240120452512066796679636343850343390226069033408135113082700885017251117318251973653051820529370572636058387543355863951886382353974236557893517246002343818073845562827541951937264825134653919562328289078854094780873651841105860820123595835301391503071237320085389482866622574596536824244411499125521892006345148664243577572196636603385624188709521580395250376524749084791839865796655259679566284249274403097858225247234398623359967110326859915912696767050611419744216996121506243369120610416628030491299471698079711456424666704248609663455148188672116331293611603124456254000341976860436915062652899874097441612486372389544605275856429770146047305097385562281773446106645952134185086264919519577667552109378481044375827346537313772482565101775063523095737333890927881161698019177170535805393374722355161768376755917202745818069450254448354629765325809469693723449827145036643415652761283507037437631646316742293603935863382383162182329647793266253190576348188893487973973308859153932292928425632394355393871916518339139058536227387846982799571037963702974376687425780710017947545234807683394043030074595335056128488568582724160701677676147133574894304208199612595425425190328001394710807591587749043435537117548538412530528974639769875593027454307377283912149369982270703136094547039107544003228567373660944732748939314842467578595737837155998407389815027258966835131426868811420273387335240717667957816016969432778462935673606414178207085213663719708021666907163779762009777088730576692398795160508481799070880496294418790505898065950063917777701025726183062548522479678400519469607296696976065303561926348459435346795986419136408277144792476796714734612351040277845448747808890135736794224616123455831973653080525100483494398895637641411985769549157043040448281664063263025168374732343249636406527038945576873166090465327400796149385063604345521418174807793300831605886698751597857663984823619150870771385282439666974038538728877874728839087256235465499409279974438572020787464001478324072146394368088075164976765275863003634931259037442422900818058415839439827274986074406193965402472130645305933415320649586519408519859813163249625210236158900116128605302893659191941768591048914807793064505741821205356406214343695346635382847599615843961614142266753015772169842995268978161117395734328301685447606267562476691931381136390814449784192899109443782928882565392888814913428086918765014633167664071083553409712329925877818525386224511603000240513684949426636622459831634866159024509283433353173502335517395112661799723131330087460156656082734475649367155435369949766943212332634810477501629976617629030166304937613206573929059719382190142173880806620731571205073755010715266992546896450912513263276051750161715876307673172195239463517118913811684230749931720158220763695259946713646492455742813572887799090168985582540267548513153113093837104696494470035466434861304573243750658482470420755742297555318997395318837691254417101500494402400943055047180837367635014881765337179650352055661404138682448851144772828747910948522531010364489338344584849352886260879618260666490432321261704350434749839307258171103394521972632086325677626574973078474832335943827685159409212255219262082402763576290049845034301736396890084466341479375066454982910919185795556777530730949102999385913684789029991104766684380040229154631762298214129667559842351371486247939673717460616537919793218038317501852256271371029669105652823274378397674341047138798877539288884470477600866246398609915856235845750238178991343172385079978109441928863552738641956404213004012429564985575833316716139974418366156024570315912137076931279820759402873809994621127689301434014784370570627743408740366262180630017352790406505406110959298148734518441461320198228024793145718518321928530738291655222153213754679291791495887827365535378674780153602845793592268250280490672765497927262606185725571918529945489122075586843577839483023482958873468223275114347823556932790098801461785917312422223435151716171936410195244105972247865032551077653972595827331791537285760794654629479371279290042671757779873952970259848624713392075116951319197472622951164832859200987497056288102642617080714517178550791740205358399419735175626675593479088680312558145374956973009546776397863487151847129437321621771723469189879558244482649800871582178048285616519096945663473025148298694627332379040675970286218558221630684141615142535364357409078340776245505518239947701241614523362151465345913137533007454196819454925555868277124482539559692838746479667559040294595719337594267272356390084516052145330974340139592465384921533557714194969188273556290550878453026709286488036427467563045002945711025344683126296790904911292178388836863178191453419209972977721939275197504001340430275817652771291309281809433767155134332084477658122244648152669406186469814528813288251143057798492377535175124496827888948564322765856480196281797502396749693060623949668660804292565183711453404239031042469638574785715387527869387939437930959446811254459429826587574513775115899935157885105766685901047041486466357298454521845943085319686407371394875889036155768241153877507736161323032542807685183513902091524298153427264608540288972955938929110143909841267890216996258772729570907084496679996730577821875357163263078397000115742062075255016095816306205316965222865383295295013085764283571299372236981532584222218117300202348665440010261832146298376182138933176596469173437926505289950377213188096959123690424282328363786143038160921485610742079413524872773229769199217177457184463338962113495017926868243680216707480871621559102957601234775633465197885522173722441680396440230525745874931169238572559784895034446664618860573041729323214199391152897972085493006630077186956701437791356882968657481532767429819303622482985151947740156973291717162395699743208136711762501550681599023486306175512862475709911156259660401208196831005608248515026006172909309954870762174523822961456180201536835991481180553031175510683203745708773631135291318141302517661481750078404603835199298175056202288292486265706393503229181758033549939997733410120852761292164099327964262918911178387898323719637421083416681307631907090275671294990653928878394234449915905462702723175910642764926581770624642064363100531167878445913260878110450890994466200721895648464055548627208363815322935054350643336766244196120091172520281865668334186890625312655470726804642614749642059178709217564358270425713847711438869076258683799439338037507309555376643194805989838908050304606296821573442891326998672397605498047845086232650391749287811797908990377993538803440667654155238329161056066277481343208901935300975663909996816355668442677530787313326718907833079163115945435075053525839168249304570867360294753878973532546695092992264554052412121392285591792142707568591622100982165598250002372322215511391930398564144360905952724380707648763482182548913237395253965784050907577748802581030922335354508580543839589319476231673543771740693515223729290451344202627077070638788759549251366964317644705847635539348304867453621191055681656650340566029204678684400504245133606211217814567397363605784460274862725699770323570290049029652739841011267180030023305836977402088607963635592895505332571758726321667025441743841074550283357137634272004837539835848209919624565899500317875368068516115720365082074885664725101881800343253172096392005339659796747961408505379975736981864910023190176395506257314724998505027372515235596358420584052356984547502701450784779846631044331536517508166767962380972866185479389034547401170772930219766316920770547361389712467788582174676708545760221191705374307029770164621511704295983719030633974460699551284853535420863596344070165344066104837107138941874682651321141736658047108780937731166974749178160414926925950851230525970290687712977123661699101673327011524104809451913172269598606902912404738069988965503803642415665510055261864325384568229665023049425462267322556390140831603544235087705982479056310467071287507673994859444548029610811525957455009337595786621637033285914972402659874451710245085696246008778764044817199934125516845978098262999189003661081169400226274748744997436771235869831777058932252635539311431716966311097867643039749874286881322949413718071271523441959369552559964034929674060018083297997027604052948609347342555460254859210133265646320668319421597726140894886399369200594480416713662577660221500377460128526924154065923679621337120292688280515542719451179425826905586346970113305451926072453697601436694202538613656757762361198131029822703527131064935510351961332188018912163510518060479338862215777531293499385307985710494994100030734018086656284445406511229789228838290152762137380598502765246644263533308579143695367046967952521931781457154951386854689055600904129615031227963338976206139563178431707091091997068962895282144528406454267759121284885828024292067061364474366549606341475075833602196496083339830058435174200398164350945956228099279108212512973141288016833579735717292541543746802171088000142322437787515949922406074765814233340767797552107907182824584857883721407740256004650190944996045432088514277324619167616837196866134655995235148917015547996682210330489674818623805483493073981937915522460787066041306444883516635703465002572951096143900362863496085965367591614041874594863844510453602675353184235666914661516707207229650432467400566467308468396020945083046944823181672053104827034094260780119043244792642220949032367800236555031310530604635414195909430854576969884540385101408380838736676649135339790673426860917646329915039342168249765888109662560740668734682706532284916849971004100086186464951083319865129459562856224734554795076528712261344863326291348253855184228043258840407521970529445634532979685309206273044806955926822366754771621691283044143885390347051174729900108902143356391528069988548567820719323707473605708933169621409303304895737532834587576330271849072855150807982847035410588123260611024895986105759564729654707510523501175416753322621435153722074397450625796638707181546087352376661980295166503084039087936275622399129763915470785242409832840002832711462596974521420697776874552087980201857317128871429916944830200196867054138967152074346715877613563446198897996052686824349588576518409737615748878164204666432339559734089578019760469836948119481221475430218336404797187228639574960015262468902534743173602416864264402212992300434321660569268040442056952884126448328517865947108912366265735814027717898413119002010609810734937825157140334142486965556427315144379108492593802927412332897907515746547021801122874791984739446509563136773252511991619380734073013606263729511509135873100378975416046474263379130740962465286466997639906930809174059433357924029419883001128798307160323071491830557055550421726570477371106045084667853113251469672575021650120259715752007112394452292577203511229563478856207853248924185249031086374696673362052901484799970615030293943773988543245691501302410310466695218332612946158798530583234470013944729016486228383148041309027395207670679607592089085447531328818430502432766703679897219754242190984470430665829423315442862211711498802235316973759057756453971980391303593142759092434593120036067487349797589430661774879713160617307695946849815810092899509142956839370944024116059897689236512920054523291393879508925078260926625302285238117466149882465732256865187947675663756825496034964610648001457507235696335649252697442911062751563008169294110678681959616847461720280018130429104431121232992620467157357960572565195681158521766672501560477872483796674235624992770378478655768705208530263299974964812773302731740786428920617033994931401923236446926728380743143158415964180116831561780641406161135160486610145316161861727513878049428899109185400803513123455956221499383122326345729848848034037274932450310853383539042629459658732760329432541603081030049189664821969181995170357167250925010290824902684198164554803720297835099782363057004761518490296964388442281769201876470829367038060892897382965401341558401538374969317547056218947103979290382974808007194857922472288035379053337584613145256306380112713235383739075578790750290866139351394127671976175921846665886013295959236425814744370873635435361815415615301410625613845354056707675648774137087363648319045837379332026350098423312056148012433533404095946964396563613367346889243854864261470854396480495512342122161587960622053562127213768755003680456230222247859056788236030579464014571403254519506036786942117160202991370272283871302861051983920138898033082332387939675813915552148960707173303421556479919125032080818215893548109729541318254051591320929641008270894483407008129088319878394656753827305827580991090691151855250305946708478734390222139749509087393315811434211459633688313772255830515565015174486864288055100838236041397375979587745789003192540600862713225079145444444477615825552647253048593295570370909665979587454502180433094479868868380405571271632780108779834704470363252900793578309355114042262410318540381548632960502267745421360652652160780802001552839727509034866920910598810344827064767330859444293164914284943090209848183641567070809234241401613118995687079173319432486006148515612288825102557915920415793512059794831454487323986284350369370775602451223573611494405345474805127245979198919823486848259599078104543900998623443625367639832555652755787309894220621324539129044913947093053449534673718970711579670232560840291612026039359899257219569032947784473943867900133779266735860829956352380014979543037542755392451803115044548155269849862920172246820586876086458554544786313614116938206811933204274329173693526596851830381197993578546272714952830501063073421371926759385302320113689248207947938367946428612379599291177043201014181364586564788522853605602148842968742025040287855757598822527900481167214122327282548468936146201196873571835192216120124230433932427959701870555685660242067863812530103905185348860594476959751058680395024823797327384994903493028539335703064203328424136561712389035346604952316197521583336870378536221943133880932056051540673393662052349871507967208410928587910475435685676326706903372724321001529469005737363130955756895354848562294277409233555398330125648850835776424782541730460280284738163855994869699821421549783682305347514786829328741196550787210999568566554615279516675680160118997437144788472064264669822502188445330090040871551425690205680114884979962141565353647967086617850685452738638313732835022299993354227956375745829711176705698333951177349252571330040693644163427095205531581015419482147512208981242281577495415807947452658558147362962965980248215444710039441141565726511694875561437496432369754330617196316876145862081993834791459992719745818556006007365708148482708410265025051684508302861234239074745500062047114954282749336647438765129209563426401386493795372164601744491094591716633238593924008834661317225928717728124061237947802495970758889812985290773312534115138599574836009213748030902741752877436084881926567116799561893443127970517463052078278302037811347562279608859970048865896673571578042828000915413142399253350303545355388072223041946816294602426066177859211877927160925981594727327541642286706040120451204189742698269814235937773807911715373800258765134167502231684683761539606845917156794587344369536190262160386972308307338032180442320616629610209336708183740072685897106094412857590678569345688431875958560021594144100605505151102251006388520241327738972384170297444157852031866707663868231751638919991411292712595701433632579087481094770688056280955398034145559061876552232987114431242607638672472163922167614703052313913487899911227330688514956913376049356510640035366994625653958014123115680930915057086265411767315001193134526798781330216483531435099821054382009238711327773321408972732129320605975105483068124702736361917565614409786556797634541973881836279527193121757754182406073159348507855947737625460533182983548509786546676224075470307392528451943328537467436517519618403113292374620252217945589827514705660844344563386815313639701488357853191681347583515054055541318035900338846935849966597017650074366827532229124247096890322301637713357053282347284699280463714033734045743448652773389409581890854219627174826484239126410709101029452240958707138541601275857409591075878433744372929396009143747496048851522059617257213792371459381500135617193802767959637163793711253224553894065246125246909042091722972255747727209083170214131928984901943496450213128059849879599957458149808710592381423227145689023926701711931208267031416787779428326073658028669840380408197356359214009353885920560307677965089330287981102885328487497656452157221332751511934119414622579627934690381471894236044068923447827301565200361801523130163816149934409923613398671979329468211459125602573033718335913094872274029523284840606107272451695371023029730298604623934151056355669437338019179484040574952160619934615023010188643389968473795477636228025480730783307718234855472558242777914499574185588093914877179614671871498779545230220227286234108777085762781455212380906188918232949592256645470080863055614580061091524028101433696836919843030447149250887296801776038626701838662856324590667827538924206702101319256188913843348935082248759703010520541003433932420438145244359304118701170795543420558519872004804470059674198742273198819753100871064837883249332824130150762173925117917522808672163521560585126988088735294740014380925032218004658847227513988603643611995288320408110189504361550531444682604384719911929102350154132715875923774274279044360373742241587877548810455903923437787293805859800889847094076200854152189445598611229608141187833677738998717257978648983387718778983331865670992780086659241918046633166168503880372878663621086276976374332743859324047711159302913418034125328215298912610958996084614073295542506013484425950776089737274882848844027415403172945386379051887548408802141762688841986943634192574487499926774878894234907383770752718287363999919842430288238107736969005565476939517314376159090415864173942931603900809545376816093555516881856810972775724064598381806381092797538970727212798988273401187970779469738827710371388988367974859502515266732208230612164468218093084659245595416963892644173556925897997334356958043773915341369116791412684970238947691676015600600205713708009684981864487842598299944287292686262002791442824194282548638552814511490965135677320667874497795392856187816203563479777481123911152509120497302770062244860084322844545594759736637746873929074286958968653396136812934333387606875451193482623170042313566411946223637935607180792787246045249150217216884716167164096955385799121480016894146293307590503162188522079854958363989351049978502436271780650459295662746870327996654748380671614243303283853576839368205193073552251846892734066484808804624450256357015355213515680948422409308014228991434403968949065024214723307125456522940061920044086611031399107744993921681969215735737148481719007003752713879447800049323702629863854765351150023979692114062809121302250677389386354103497770970738165021936485034538105472352165288317598869516276499002960298995377105100563375121556578676201689374069905892217999507106092459834728861501375569350035798991475363311943942629202075556178333695773031037515493142182492177463074937502556578338493942807478296475451059709691023918788643260581392040358022330369904045142047516842746554767422954744757703685778798794664987011799234602690692132749065727283235832455705919850834407134284466478049460635111471832555844878913211746807455986313353934171899345512101513981440980678999273029302419035672003317194946026883653902312273650083793919383072701438885473327956813804405648890276483467046498612035042501783463569556075617971246900281587898924596947992222130736947759109017067071827765174090533041015513422502862209064220734438958555290234668455310301975674534432052295801567224563024557650189245572675650598981309257531813178822423129600282024072469589923537003408726018058158792035289678907152004061948580745614493364444711194283863074603311202327209811987631718464112259336052840434760177204113711118085994100324248863959320475624346336303326689367321651954721225687171480894195898873652010798428581223578678337300187856217107554468058602803702591629235869094140646245070145360758233806737929684923815312410399447030848931793780528929687288694414666852283643674878521128342560449249309803705040826385451202233205613895293498747177106243705671979029095785969493733545361354363846116262096363551686454045476036671981006605485288021110076644647373016170637966782828482547051723207403902914705675692367628036350404001849510081528280958739079077970782950091522278968164607789982362103473253340084791895286480886892020547693487751827597523840806040426390715843703535650109155518310551361090908808815566236481490115127338355454846092869768759607349138094002172770674806659981958678661036713057017518578246133635857954905138170298404943625632137244531074574004151912234298011514311088572557222206249850269317820896630080627206274900889528663073499691159884333189103689232755133720274496372222371552703073080841412200364693306433375955555435837652467541496475085883273076204511761923108200649109231449274611818085377404171845798381903060099893856741588679248876961862590387781021683280872281091219010767277071895773274974075282575949920131323251972973777287114280729870787643699562273773911736915837757459965879974082296801268188920162430190109505332820314252035193185546688108867565150738509510197241249248051641339838176996561977898303351390122956953275443278480172178698530903563219726308378597712385842951635690850832186220045555018575080914567447869587103889362691921752880494721798640091391455854083574446867799000327987005989634677227486487236267706096730735195052747290718632806590746108317425306012203987749947154579466730846969127927223591757183861175993456968238598915919208508468613204505146115405856074500552898204560482708158573330882464059868989319264314728173764954378616876746857483926054535803668132415420087286602274001975613021933473681894636721182613468970996989263823062436849274002592737928732400659179133115725160619332182164568432146574541645753629792433771096411831862820014355463499617751275862846012890567567267868546347397090654960851296693462157942902579350101246864934103260487090285694155657475493364708981785349111949926995962928232271151092363663894578111256668850549707206235242386549907396938207121086267496565000659490126926052176784860830097921240246051049976150381307201409671089439964457731905257858719671675519832652386304231510981131549987033358424391944328406912172220857936044607445449813613878726658342882804250285628756964954645284614165396565634006387445169277885666535935046916226564339885441968515083414557334120430092671313549788017406899114052363658173261865373338216805397802827158541920449725188109205953612256194005172513737879238331023771723559947261938815463323755614699711716679118852842441444304185334701652325290266360340895253205375065667852804092270438241930149568169578898558062943979884470032860984880590595545383707382248347852913510234304218679200892888819295506265283946277677665528348321286938297098968431527762292143184689550270312169407821116632634857200254383088716227972995909856230252454545227901307524834818138307168802685938383858403199058895302232875297922066913211146903279180897559793412582505028696878725527832020440475174426301467794392054653528150639498082754876028259037096409016599627692109226794804347246776545842577122770137175882055580596038453129476509338101925524862092242915282693665669408439511667838157614509128961344236471328515082301677530719221805910559179216245596189853355685587187415974049935917147894319694705010232113610297190024916355410129559537117981099898153828955131346151801921651650186293025329528704200016239572787883890551294190579810956538929167698646689917609693495197584203947921142484845241188385823823050598376992420558744614416383025120393619037105512867423372487630093942830186621100414863262612434359210586234055948587771111643958199126260436296314931405380053407991586691369262211828242851710936207143305216753364520910288695753252637935355975239310399438102175977576243621336161668810364311496049654111052753574490608105859510124328617486600837992273383357277413823211545452480806300227276006190776619665648505526373502215619462197732460707174654470236188357815886319072095052357477145242080015019326189857599930421832397346912335928289221342229360218905752376511500226801678487156101245922179462420858271415235853211514176236580395074552548367144550263861356839624858755473253156193231789166983490841619992249755721249827109217061746762561501169645772534594788027840553019791294348600722364916189408976340681230129743090604109441101500995558387905216215053214136751645686036243527372449225493173610573394704162067679984161984581492955137321422191298412615523923515125815660678983839160350738319928275410254271001774486551890317873367906500352745288946809806658720444673913991085640487686348132057751483969098449137534968705084596359355435327061020237200418427662301654476894577402348874069705089909637563077837298203701829658317204433518533602403721775958049941389505754188641932022867302810307544357335511514618325680736883204792637195823266030406057836524805085374535277636036313702414994419876304505990358971085294406839122059034411788913914564237865716788477384572707415882363368449731644689481290463692750880025362172668046274786847793835676655500765148872685141913641486713928918391838023881953247620296260873978769409903382883396993287084711105455509476832653444166330712599339814516610816919615816526641845559595411505350106616189833057194031553941392501693777672282346948057479020930298332786421161525014054904306228762811164874305070387980845972872731599807913622304860580249177462523747537821538525570557617362502295319624795988646774202761744709984188237299650104607998558786028458246612422635960860267993691530531166871176787437123790234689785242149998951935741540260940031629220441375974609947333397540880724959660674023528323096867713505977489924568801940547339404039755806641932533606765376455310550661078611764673286687367475518081153397105273578379712734966650539136757268066030894745215772013290136932704605979649728336663644464940993301539156290871291771295823908274136782007865205557472985937005978577745740253492698541832854229911582981182158103455861470498953325374766961262851205735821491517526647311184845349533505626829637264823652732688959693627409709277381175002489149674242621106469498634721385950328444485620102565411910233572205039905472432973994561181732887037329359487963627579718253320814907200549597860112848130217864013270859562332000448074819485461581536148731973935476446802889979066162162731032189002858303656426400189318618425442604225209453730552901392460370183289271528623777927256008981244046809745281766768395308955364190715719784319571805092027724730110898975904460475737237086700527871329487667819688408043738341606257572003496642780131614600307539350009962628747554285950087787592432870372615938975459191482473795143108465697544801438130029533159299007542462827022021319841394715949522841260643354084746602123746772337839727194103860958349977720781415739235071836365284614061553340814540011732557438191903616048875288672180576086937411958334463311226454430772139741611160508180275206316744885179730575501882336328262477265633376389004054308170074992766684703062530390348149494812811619453381170839960483402185237949972711685981509406148408177448287446324060802846413023968474684411441682918290548724322852217179569563231529061325353305776321038576814376713837704791724721252768522307403487239893988876908292472214167566243948054974857067796066004941364574928046409940288089386060940675500247091149608614151367385259010063494195556439815140685922138944449671501076922594182709930222085170901967058956783202598304768339803450724401009773127654050592069347282825440173048955302278939147544745900431236549385926710498564737455058713858170717056602254923273996467226329936005389398963123131142877214139160055195371724161400767735208952510024942190320125170055223672930016373457261102729278573377948703763210739559290882187510506498656162846727794788572534073794569963121194427316325297346196010110845335476926285524062956526916193422711555717341444403837398413311408580460887075980893449918644964281324540561440315564472036138698982432764409559991715381680518097287723428292962541587501751099483465251981855515347983578903817654542828684742370249495830541057830286533381328469739009652319944686167694132621837357305922983931113663848808108480359654596336367826008323375011418688850856151695110723719218272547482413176263600679611308137778691970240461019020619383828913463273518927834286698739737325011350433803519826797768126746145449655490088369115640217542997606224210346699936833307374250186614692101440148879975478335218974846684672865091264303497360558097483889268684029196321155128344028168706606082053478321162516338614995529996087267149189311596112926717292176294022702667592946155407965676786435801603401090538217673401703477766446893230552983952067365832055340655783168345926494956200966452496669908413519931759576025811677875289264760624006320696690550322913149632681686579064267731639854061481418989534465037472483823129170389196759231798160954223973917290305460927785288021597987588168844175268421813034906407073430797259077757000672694763943001462342810593079125743337666272632912450352857665210169819242444058846258666434953772786852241480913507450393563248270144665798118018785572207601857761222676958691910697361983426454787000007024290418499072371801955360552384529995251343132906280783331560321350803226217023903663131505494257489427360661564965905967501922729437863209286135021598239708459842260493954782678804561374490778281242725683334811994882798502496055059399241573958036863274175936744097988935273571293503358249090075920813145259878887258981416968936426665294558763401091485137734596878937269663975466935517059844851582576442672725817312125480524324978218421018530124424382665599930466872472915758989704701778218168298489617900314692228575744600137084316331975877403853000925288098354723397694229041732486881346017676358790169407622094224373024389429339458238735676826190928064472296920657289347983359307843858518997380980093405078748175562335619076118260316421621644818181064658962890064097339030925082368274803312063424029286507065547679723093773182453027432510415137335921070396530938333921498409118082331657174289968686029373392854698701486142768054197888302136888094676081637143037971825210594051624351911638405737581576958162494410986413798216693812201092020369665985500458049452288055698155035282856472482128012637126354389260123101933282845926740288737205782405945758871766546984680615420045463416385857128247968359037136959146083452745689193665285635239837916480953644133348629754012334073095049315326445637914050186535846868377985796395682904945790121346626554726019552232121042180819294422913485250896313124226557111600104755162112276552152799046616128982381140748362495778504119962590443678847333229743037998516638033893942360993458954670152131018061192232155219422912772014978615706097103628310386675088279151774662839849581766192002235468909699865956026197008168839895305058737364970602261112565780185842228674926473158756087326567332722964970698746971278569722724720153947856054135872997460839474117304833432122943951116750462463607087508142503831317584608058855479238386164744987339229292314542838574726499304001313757006717073770446554808806013864840820854658576042004665868700865431070492026833467779115100034053701442232677492197663350987154316736336998055723079790254184050854552182550618091150206080266049823683094196922692241391845579148315192832295227005427220061338297665647563686602450167806297492926020967301221368927147096354405871162658472938978849509205470718173395043251742513495577366622596840589583397217848469346364337653057955417301424781022442841780848602502560177181722315723906604291385491326478642591478014939603702406673504923640859210733510079834346999545868843727609124366946243568935900260373824437180851935621090269789726872055618667959840062032410989683635324552342532606429695589250892888277313571881683623395859768680624989294982518949225310709619611195088587120531274961005370443495737220104707151354978739415646728713346726265270218453172380854606890742113772980379477390460069135605578957496040603024589995686465162972733276720616522057451242578303639802938818159868273303619471384766885653027549398721948171637796353087532551683243647504635225105546592876154941628280481839991741479992828973530925797288658803374656378488325793633400714426497225073946823014803981920262406452473430004673126908142174672498028654372520461784020368027039921972262905174768431610223376229143107707486723583484196336051483646031021630525443658713361437182865081154343683209624033810967941357663065184117160688478602394796309527848068995173751715257823141573873438569410082295232254695127775665707895842360155404362024228004479971642226670024455998608281947668536222546285613479034592334767401069379121657573821567535951250100438225629257911500617274698647618283283458885738870002672285136314380772812067501903578863716958431676601973082578648440069836153839110556650012098948093904951415286490891429967618683191394548854679526447405365187625541319769440620033575007496041215819949886037055805792824422353834700006112036057775645622868137145566664562759965051460647527153096470038395314912928546583609078533004765514198079648296779642345356037429157794388806991647182667513242522590214690123781932049143656376569162754755818306822150392420334764414764107824606557636988193075438745839603370161466337440224805101319812468312371068410417241846749889300463871325820640437380372399455000247561725176340180184543592493983788670039087177471711063749959616933613028104921603986283175213730962600077926298923102558933018538255582465861291595800431869834836855857601883831085274994809168603541090941795189709490639253192869803717996976155392365693421285250776103560772086058464754092832411379533359940037033659755637035979912314074089249303586932814070641677552564677668852384174763061729054079983847215577652696437414407953809082862178456191556985192414238923324877702468465971987806977277317599335751583397069948958506486925645064894011205912568578202344128308833834101002363279118068248132131751152508318553300309755353660801040057757192114568021648472034720050216306864516504421338290528854554169519413026872941484144630184516939571246557107022410341270506837141759003022154248230504828082639432570683792030861051001885868793638397508007889713431662073876663785098076619069531723200245696311963808377486667336951726995765549795436276138410305492755820993571312873587429072845450254285616104680171776107232689931683423057068542781442952273310037037420589623131483611350669628033373103891265423489959756679001683118996846290257726581780753389921231409473934826973714008573190094023376319685909384616385594823314784271914496270798330987589494874055881141148052952280539231256707027328368290890553988064835449535859312014696960785450681143134867240977956755973291205646534031832219279410958744304772851965438454596115046374243494117140217520843269348546393132414813389695277279227320635922212343067627131245061593771681011029410458067382649522271215550176667054068851138363617845682647491465232932707118713732596536002311354031902305746220241190584581566196461333916709754887319994957535826779222110657705833240219798317337445297971124172046833824274203512062012239654600422792610912442110534094899367536322425165461177526084965214654534559728095740188720057641368236680221720745834041733347846076246370233126352752503545385232335413924563935292304630188143016134736500507583443262559191763379370633401336890537000102790154902704769728973312887230083853189949884310465918730292325485839578515624822636954580451243948353310313761404042349510712731496289327043699001072449332678667867175790048468412618885094704878556855890591767363717439922785600306094499182787691754991321939573878116547008366722822096603102367911489485226234918208015896172611411318130192880855826468270039337762074223611466966665289608226341449965864780207800960874525683953386776940458445595173664755588914508777335688288504808669326757183852451466042602428375716180575132845940327088338608604876676975678605744587326097169818034413612625935878740084954309833629470351334103892923241981100118805499167960994176931494161946884995997984109441496802376838240991239184868580663832221200150976614063926513167022278192416953582838239836790723382964143121927390171670767843927407848508839132190668593448610111164657119066409315164717306380136905986717042178072394579244424478860825624216182626312244812153988408267472177209225025733470451449532857532968372563463542881153407261690187397628130775200897298198106070826754659269596990277339372609367771824345391336750824849179578296319273840255663672628626793911172077525956968841826806909184201185319835713789212600882181835846231349194911520263007380086415181894394421361123829262991415542699619552087629772559766325490567604118416565076616865754122945779285480011417385340042844504548833436208389593728070870770288359513243356334841421637907526510511680596773770113731043205612503021333964519800146114581088037881959308918661580809388777801771787237016533491909812950335222365190661503546906128505352767672199640916577148259771333148152418055266634013741388839898979083417507927794271262758324744077632062082821731010322565915820443327906957470350587346474170337819003508581587615012394954931950563169926257256113983773828242848984293752074352836503124797587395800747529052450848432227749286087114051757215732747118927481187794602569113636312010543524337385284411091283958644828812893631873912710482291510444481915110090899490835443552924310035420104140373247470199605069212985975855387600810191417698961083777624561585532411613548810034987488627739980983847099837469910737291165407033901995896156909902465472133853243713058407598228898218687170602703132720551892884661315014071811824809514103934036944906244375020100072273041846855041829417311612572428928525164166832914727154609069032107424340761991972583933639695400635342078813604686569907674386344356845390916496783453849169369223323872740377196261792545929395556633180504046152649641452374399319955538404132272591492735647898587316039466077672188431252487460678020188726342095810214822081198419113069152798633251908917954093428434161185870033891998477695951527629240319202951959763443150401074839054342640174640765092407703174122404198698444571912174475457203188167505802193664965018029172501004691261526776852476770607642592525115657823340955345289593816473312761370217935728010276348454756631647036420289149118449912558019886067395014769735834435387531403982175604435467731680807765925647486770103960890000902766543513507376521816436811403760659872726591386798396985641488922482498882140840041548343823066522085675851897870762097693763945058188653958907492781677041607837051074565526793794562290679953415271830798479608907888594424312728056752598353025300900666324299059780239512608945582401095486983795944951130406964061392627087585620572529598963169572321369886642034183596620132255891629936974092577893047276951130813292978292869029070556634476452975814213288386587334165676610972771391136316194175034940206306788503759418949014136833218396023907091611804760011932257831332710248425567241805047568622138545706438426997238533405905108828116472378858629023496315621539177150138497808714864568722598698221162529285878039453509064931596972469012331627815166555566982213210819373938096116795215430378225536744001905365943841634635245670889166286285100087934891977957238851430191403681267637837123074610856499777762028371020063985032860035538638971554214959423641419711801499096810124460290576011006547791826506173961298040362769090797809129984222570455247120003718475397284581419672526137763993129519405594557841547808842139770171241082600837445022380393803368664588554235508656959510713939181860292957593874611252382226053956283812997641045981207224642155830321737880648454951655657284834633364921592877949564810904448560977732894790638501698753013483302138301008503959304469389131228896986657728293575948577200413348192097462285328408869019185572838844493797883739488243734898882511161180406839404790531221000852643105753532760765560096829922850295447184107593058894090499326937253547720682863487713839091792931633065486437256075384280212296569962755389412881751546330857203248465087566280520105399104673667300744835582992548116284845338227630565711000701154606078829854764771687151116674537556735370803273595945338559164373580786657219054022694899297671260440424495142029199582023427266675583441726268007791463568988216425665396921942482132587428962315864872775589688391881307406879108745830364291605643965881230904931603180546884491361217378993345584858208264993766318894989551496802649900872364955510034242136320530844059513170908024926149442535718033751646728915939116863585973212297216501189726067102386288812775997056524120415052931306696172406264784746233258032090200123293199839437102102872934424683339313053585953264970887459532073512054654499549103163971931606879827689306045929307671635528726856153275728206816410335102768036275448747017918353720264297275771810540900964110539909813889961240542215305711807135532431618563602916750001730817067390974393290045893875239222474168963102026841012483653736374059066471225426950319024738815147110481579110744049287141608659898915819000059465126428161851886258347487712664473013881980343395702733696689783200815772178388447093888562090078773399941841284010282439733744610678853263910770025769830327723606697368813631873113493064779057456472959560816979463977758636667989084555020051904508571821324740259080935154476726904779259416683041617305483547746427571863229672773574477465613452152249327619835448209470550087503754219960746795412171439094837598469321842982471370858405962122124292293552591627579567008904855678111426000136889674755290878075004104408825392218819736707737614569547518492063215624173430669034060815088910809421415854454374914625760582419305132521735174078799482559482858680657090786599426329808377725436818201554878651015717257942755100779383265507192439077639649216510738219615686363963774213554511171600376881551430938528452168570410008563750401986965840522417877620085361948537109147072522932382890586513768702670723931296434642501972473689992476418139657864136869143382772058620697884434220642498773244323267647836710798667344744614359170357767664304134301109496204250030444935811854945966553617496276048093264149316494857075640890533701821536747889925415345057314071952061530294346382381630475352771979171097702411437319291194943483799892029977839770366158254794394185997342324865351348640018594932629531206717949366266125916720921587675491965119729817504397699128833670616187477726397418526378402805497288708013806103146666254186802564127220967022586441883080127650393061427416322928514942281776236118264472922267624704450825219868519922972598021585424279575030037199302791881657570030689528558831401403290688880339732875481336352433807986814870083660967277690301691530188750957405196787422439996103262193737917177518239258112006685307090405183812021386188939718749379436923602674625194544173268106544072280357306676936680380745808124468369987581659457188370172317881959936200739337780700150118788667950230227080430530643444213640798916987948103355712776329053450171722280116944213005722625943218235961834601995471568228021286362637255145570587627927985414969641148045945538597088069346313521381540587318985908991503684787638530194856149255647663590619266552483698097049042316556803930269632842688835756778002211421253079226072488738818418874655078465173587715288724481499264305410627159907475710445297995508666390317625716604423990074793435073015581959732782772205627080278547378519651620654109027948256670376307096653643977691854706087682867923621408990607741183998913860332821370386189704479423150087033177105769664293649059334945166086375453916707819431631458677768887314448952089747025483776509767194711915727564451138923255468604479392516718234121416193618974821053247101768349142714446593735225961786601399563343760807194218876512823860262470613494633124403600020623853841490694265489184514151989865825813516097292404000547796570515117901309406915045999405939549424389159367605196833753403960142116136085987499117072241109139992708751903919038784489273379712756944672566843867697140743789066910620986276304238603304947782775868976163807003745837173353402163706250969918184117483965577046213388229852226142736213145854380283258759101994928459155963824442330181356900804019161938324302394387011974310149914491339385292174536183638290970983188087884083297978748243075621186916245642881333806558508955791510020873530609722039468045043095819791229163702077445679457670907940975128708279234794830919079636154361324312393779855442845001477800722366374227353172888451234341426914562613173768863729308564130992723773639334101076686959680510238913827098344028353971788603759277242513934135288706745943166871607920944586685713188689403090653706057500731568316201118940893505243952465839399549164715389605529688872284585124322172641079905478379364338598886354835877822663293928318540295680223022203352844463599945539769986092475365473630644469427561603587519747733222236960404556376962136580599862998594606082026962786030214028701352352247697954141724602936336541597418291429617736632637773135389584861872041101175457270506406186648325746269919159454301021484286161361564167214610267265746618097521204266028601312326355262791599721512643451128398865760416346210516618103531343692112107764068768109096303610038285065847953099705631102417376638746987933834955708108639247017886543331073527332290337531970868947988579810705165334065317977842860562650413774083520460287561740529924961106450312813947056859816166664100767223869801993302109050052153667422433594359984670033411488900067175931447428045627484689894306861988060289196801087791672180700620611334493926935894431963437060217427405593374039764056587583891053593246220110396271840179531223177813380886857202834311246821685141689199092270193650961176629927069968844341124777399432899470073913910160900310565105683529750212169754452848480469801617820973041595718837433755701287636398632061655617664972467437285564298310839990077456750655782928812727357498565804177088356980898983108896320475594282961842611903244352872449043499622610222041136181558016308004495732193414599501637314051692651873710382532923218372371852806366642498247993940341540529699095682185823303005606708586967086933334292391376114387150570804847753131819331708514573581713993766582919079066444012665274539076304430370632491296229596739896921290046090129977156274232770081905936670763714873021575808204287509230776880260900255037741926104998190684521955083908056338596839139812120649562997859885483839166739574754703773257027026222997890234066415367903853413357343349976574101097787776293277484313221255578052721697987464130390552359298794759440029533183987383094776800174200514004920496164486114662697328797216116452606328804801836439892632931125931689138787491415456645992095936567200155968507172375104992167472036617020703383106248391742044029382406005095516515565559932580938464635467589488005969641681397244738127385612872153323745001094404479972218423322473497350967161606910897473612963784971254799986974007219022226171055479544414913168368649519045213191262660613653885745569001796754352596498714005149003058244251357510808593388068464404887872546474284301595698787554932627480398798179652260220625908284267065195675355942702078013584979713741075692473614710194727776400838525705037289524090851791429566284746714284469614816504817502749006408303306863113812547870320355323378659380022404619686739627196388516640755642522973476942371388625774180622811582703639571776814800321547589823381663409884897854811159372083266032852877800566746266464520641104569918426808632440202736840578016996574566977342567965943748580160365525687802678698458369415237469644222461071833165018676777461519851640136213047390742074993401626271098531939272627073210357404906472045026876354846535522057498374527084511805384956430209616537153190051622444632550453140504965154391012339901948499584158000571474255299329915074885095563784114253849201495887928626222733193319915713365868637937475698970539424047611957580252899233437878792030940590583404900058721729563853788889961436944497422079173889312260451830226453793683630742094040246638333098582475992308585003835277426732006659392817706680303169930693865949674662723268025053425469976407463753866756350713748837694130114193703311151314972529803045361954290501838682218629016657085410688682583712954317345775246121121964512767795141263749630452159833539827002192411209849542929680140252365035535702656432186090574687595456624495419351501226533640476202670754986680685160697283606976353580803101685782051381894851837194713593067942871587663476936366316619609164646671064582565685067070236152265708915247932187935336570133291281749109387165054408335650278403428756680724160241105661811302734944378640350111368364188767657374661977860392819831184952684876494575546836806857400807669074310536860093396137734273578261872807282554695237510917594633499963076547860936464116614204854792317513860727173858955147305739917946955928813142815902227515548118483541220921123277420351327389970286536555982518183280374503943244615620376685325473850500695701143316624731963419628571748630695120308148618465970786402010743959579848793989193353130689380325704575142159919803813641720886963908010721656111552479264873111774983280737717576260356967388687629701387382472852239917013525886416346519349775651739702191525130417347402371699534028297278154379174116597670543826121976115640052242721723830916737547406773099495853109851863343146486114545812774065706689293344590651208780283985011820068908136464319934208224208244860110012141914961235984824055231862253575306816723785827635024754186327676608094165593524674608930733736482800420721868575630279551903248423707646044532762383628349771465705718447293064047530509225444899940426144548968682974282495021016191371637153820286925394936825668689427336642640703066630530064735176075892594369775219164635654415909054221222947122422641893887623343003939899809595317789816226689979164093231115997040258673713003650385368137057582935177296973623848991471837613955687577388538293306488857960675297386386979324559353714976466850630194518874919574695979627012355059384209842049388822470460425619392840662891867442845330667353318403031002104325174116972763687359794596388974362021118287298494972946722564687870725980865265497426143531524312174882432696444501933930730834224705855722792790361045139275634734478820804388744214930720365005313766354027365820224450691166860792545734953900525162853203085548584510703152927981627263272989471391728396965295301718360121451155308194543640325030618596513981215571066836046361753779237696605099940496264680667596034871054128828129184731022410241990763337341033274712033380685503173097650382633001409409021931312192505732436816715845937850313524059340376357724457213990070602807405958980441067092870403688600894759452886448486676408405419469305576292614727444380443759600044986587473268429936880121561288937949668852072375693036677304628776947605458495962478635437059837442750925405335261188619136009716483366331735998001252720348927520816973105373547011851434987967520727085241879982136871666306073900159774974809109065941879577820894846613832971868166752550805851580716236835057197321438059666677843881243743452977952508962297454778594108613980782088651992057597544429445313733331704584225009904319346085368731255203518138935580965042552769400336533437519587981470038743427029224140431433859930545832147437326328144126453814205461787503541932049849335152780746384352505961318946732488988039142748145554437193902667966110249572275914785819003847714530442175747199787531300822452606941734185534420125261798792835507317448304525822369388820414988326321568087575495747112874204611415509522247139370785158581870088738249647536903793781900080989400119107275614405505782193922521666496971945775667879759922727226165143509250026774535075699917494694883201192239294869668924295949522835550020861136933574153938537141229405054330964426561903971772373020615025903998548024944090163996693482986069056385556098179643917916924308532848491229933537058689662578341248022024700624798319148112184130204415538323208784050698300200769185411329461203957866673116040646423510403601604722462021570247983909594073832998462066145741110207489946806193208066294040186134386100222266477518918890779040152365364675996288630869152256635481474025103538650151742492897794161890873749005011300010057846697317726743067997031361886200026405287179249461107586250511180379993077681005957695482206599340363245746993850686933073438024180495719362024072209282857593168984880337878690546453995019754930182491264574450552303681858371978503665794283059712217372598928581062754207104820131614124649843260325197604149772780223739179133849895668609551906216571708349348109468423178802852773810941561789466066511824372787325960349362785261595077378585058951874607285916689505042126112733801860947064946714273166426268619680450853255391289280560321479519621670234673801385971574541475205788109688202478046268827827806609831927830645136641535798086241522261927571782935470675311367054155459854726305888095562183951405800771238751630643136189285537651847432166491128510016438258133212024508915807588216170841006443467680111137159377588376361218989265161597673059655628233358793798854018130804135453794124485460298465431033213286691542953289576464375666331103732510860006198652684050325611360479652585909969891528887947701175749671895635763899847171495196487951181015722448822928117103189496105776874918259162725091152846729597788757890003019671241401588847959912689675423603943687731181502039533662087218083169054822266027288706280949689491315096603137838524826388537944282171268568161179941975873305545436798389433804342436495523574439239468018138987408542664823270953350000407106964099494509399262074419208444366461254724319840703822182607864159107188601655087018187425149483664403758451124480048945274314845001729997308032087276199222269305102991858087601154769266949586061433670871861639917564132908980942087775245115663466540708027369180271158016052339698871270674345695522807616950691483810787536685447978033003594015997253140822002269352888292040244049642439445176845292914425129429818616426032969985643613685644485126467628750759517046258600437462169715643792849715179183993242554845100878024184555826710973451932820501635554219003107065109610099673900797054255772249259828626861035532040777491017068341655152401289137167611745627673236290045375615252884706855031973312635142384636644947370066385394356742548564846019500308153119399551487830333164099997127039943696394876824105214683484476641642360463073096653401606236567579395465714944530652574428520001323053081670060490383701632527497800748404552790296494481166670819006430709345533988368909987099447983447123689679425433356699642460091514835063471144676679211380073406851441254608083726801086812478855649872035053839021556587669230418644382759082046806800084678381055798495923586495274800736870146927764707057454682115042257838451902865205365562166265190047711122343623561574528296540943157493039815555453294684663011938859671490031785989252176141912421433538434829854377147276015270461932107182531599329541422897875249640881849598882708703626089394054611586906031876427036063835596914562317941451836486493655330581232999194428426661415409724222027114373508516121027802953238681407715885899570733619694028017771047035244413360078081444186567422884280328091952267059437475124865726349289327772332964538759177130001606023574474372549595908320515702632277372457190890534600588089722844153613258819118338647611489511984176627288622355441728561072021559902031272942339947229768306943212274875561704380257335518909674334467703939275530169068125925368045725697946104927029318510610418395937030739955804901444229277628145845928046498961775449774693418320841090974856505889915914780311626956286827834918516887553517609324244230163679021697984736183801105483538145863423616903843594974867621400651192507905298271950696528957706818307400049736521445900671620888292907980702465299478372068181254069253977439535120909110768828366936236108267352866175152875367501521393496552943543260114708326564633395979737575609042460096206704159240776966988092547344514382510074705965688149356141497062637182617316092307504234017058141831129695092199843411661691250145395944521698512810811273662000872995048997209381008165766731485035464483585075003628761627685350217001327809611822397943077570528542917004870367999001475313889662255320792973654882775339574728545091592200080610729847264131675971927630508724324871978182607884409955845584304934353028339861277977460641646734591630416399934045833652757407039933304599968533722126858368062983621642545232594722571567890169639106218218583508983290961681801532801477425271872735033205317896163199803636663174066654584651879820567119762223072759543050612403921156950635834821950137693312587530281391606641966596640494096761687546862853060351721960477210988188986005451770254119660290017862234495085518973897713591820045834818169684697225947382129658321113524166858565227777633409038200222583885170269330006650256926422130795177367290153189406281576427350589516131169682856761974856085694347989865828279847667367435398275488127599287198864366571888073676371476460382027287458282034383698378494166262584158072230346034090298005215475420134142690869210585295981348497502278353044009507196920226019013346117312898558474904912644535469098599716413860623957960921545866489786168527652706443428454885062451713436730830139927098494943763904916556287478765055435578538401582359462525810398481125398943048144929730788754193894773575270249914125853658282621220136276544017329219484119160377267005422181222115314126511445741406771503551173151175285894903547202458760423092989000854048232105838079534093546382094105750288822851112146933992199953802908214485316666569463878651650420969704062636255527298354598106837303775291219985528805218139017973718644809276870402403501797092659469823802677267344679233000655073166165053802634531144126571029322586203407750504096510267335011420881685907758131687347649188684820921309405074164071002384319485226540202376814449726312265310303240208464874686835403435270740256613669133942778753182225315310507412173609722059734750757839824548448836517408369879655025084467409666821747233403104714637637907207742818463009288399813778241865645842938868067090816945754427889647473873698316379290627323009122524822410139895682473037811140580037062292383870000531896973867266119049685441250128858993526912335067464594079986919202398558697687717769007727804848658317069217301154513235384724979557368143769119616135355220855590419707339619945586082522383653663881052193126933669166505782975685514161191843600943737706512233115925429428521279664946957432585326431464944844602966659697039738279215115633543825912807094177493151438484690160629292282657979775652274762765454858464793669138106265837480140353969244097101354386565701859814767540020327494683425434658835769206401309816153097581057523770506130994557747808115042336269007452469923524436935205138105996851151725476078431242146555229089890978179379670960909155611480813806917617583253413875705241698598293099373968707427470704289357672988085367522216440051452469859958678554801789169092959248158767036807411561252951097053576691957213267272058419997941053504482721249990749555246717600833805060870132841969938829621343308520190362272296455308055290588778480548237738777086644713056336283300792359832375410652630947195124543230618698116038800090336013411781724772330002515822576263516861467764647372877115608466495276148739157197642314398329622854608598483094834049495255530277717550747146322560907821483051169990324494078063251845112666342634989538292126223854701310342878111096342614267755360039517839434093788098880933221409846973515583779195215663365261057322976501499688285747585854474225950791786876362956157259743330072342705752356056898970592945342849676187878399501655214220132225753018116300709757891102303276378217865204219529928878291382267969719048031321073299490796947090802910709902384138469876554041519437249081937537690419805347380065875994534110702496585522767022000479676921581115774445764443455630236767268549797198886220853519489085687119968563293333245350662119895780876711999058907075519724719660289322073504769911380600720031305177858256761645330618475490807674904951477486485319747109104291677500664323850379990771758571598732728258664414826594495687743668815786168381882546711110815536212813803133314144396711002903297433049234420021714833341760649767156300669936255554153689035082956519429389248912449384968174237494012369591603318391717147384982352439228855453063221897708956984173802337473406284418088337136207201640002672257452811529263879844623823801098563536907008662234791044000611860743731317521997889508848123822424232790678863369189555221435177644785816097118982383279380326029374377069720735484545590341033838298976646714255751392142474791245228625977919219026601694357331404998392622421098699590574793225386329021935966252507825665407910970510923552028818944603519042930530217554646089852262113721306514080277216178600343559780268282512993911513283111795567487096308483593234600137600225606397344313130055533570571106366209710522968423207302612512843351643668680386622982546900097665157820609789189719372498925446011296530038157090840523330562503908956375072632683684048672656351242928080199947407278200221636772027998218166092969742144072391276519351574669635987014086073615985570584644453183862583392665185704123216765481831252486801773063607150338471455101597997771917794191739769255987317170344232736311855596651900773626137162843084930550549522351822672317185553044166462727625011275004302708199455274516693249343025543120428700867564750337924313991244336698485853337343750014921839508637541785813602378963579922879194836827257624470854648285645640503481353444294006299210600656100943383213248638572934295923276213154610766116556326401261271216717356289184213381269716561470308311374457148505755183561843751289771361055635694515373470520738444994331001857388286782030162051364334124065245771104354224057652230149757650416875205364013510113973720742714786847395981200392227129063616857359703153601518947345180358047544160301589939322651566643975475921582833933597053673935888824228262000093051722403576291187407069986180008466334303614960913225008275604241627138152544766580162257402788098624812977556393591004599610496067818566219992392050687290785287709150517212250697094355779215760043392465563361642082376416901818471371816345384673970740716930490564305619008045092849663330862561557787032592008197144885275069964005968528102701158034145885775408317020797664946910599982560452771077419379950747580264106777914016016717623159501250099123166425694625259786581130423745961718434020484409403438179669062737374769296499115871068520815036256900205376726693729814231451385248318200049907684286948969504446870700047973027849800873271330382826326139474641641407594205709088268250642691718663033936767547839897475274918755450276267672173606661377290024071865187227400888596345298244505305027465943789873018007735365222787188091991524479359638217659739311036032002048432832918534796048379697314579864056203372536197295931795697755097758564682661643189514877441736978025418826577665213335488052394123692961950843955549775677658049496186198603568537282047352687847678095930937387675408295575035620071426924251712109935175417580862513443277483505229897063147575429234075352618046183002953650224039189460293040435762408367992119628668922565577520465992915114159031550993878547930340568638720498695407729536092622640916648201526520679053810270625930385888563441673518817438057250501255511838657780162492704206747219483864585550816208506774712306130477456399384880324113306668234932792265142162180037520590768461892292475501096488997487993082269848753944685776382490467767934354425820324810556602921414442244102538989741859929813540782500012812619941978766668078389088380217206001474586827578466945310936519985199072034045192664871143172903952292099595557057102636303255168370423519606449112411574683550329627574096186972880439308927686615040018531598147314944568078939923411827152215697469220341222184285930822041082705852615879929565778834333037867531988518268310937821127014221200897212027777927428577182596903736410086585291874966526849461188520795150381287582001694263284435535248186453915786564916466151805542085295964094066373238028291090504810882544650899434090390575189622705904029913396696214785511982110981998600692665592368577701054291301772705153815546764520080550196540295466579385495205079934306874044272743083518697563506963133295296219614551944157606009547919191897434246185098387756524139655675695147166033495036153309308733851660830712223993343922196380927181497228073734862622619026110027744610905563076028488610384376198203322283990602039388848593441352967746942936700509304029242057661949239635571649729919911997173960434945362265537909514218840304439735656782100567132317682904310980645353183986434584402468402765930087315906623228869490005085507849570925590600120363064388806606057852141565882141865105346600338270906384429082413182773891789583190825112039559875678001756175126024608811332202025681289685025108278650396060487176692615317419410492666931662783878759378353622956710918764585259134840903192797684210263500598852480578847629764051660900063997158171468043177742738294990440664416787511131836559565628261625494690446683700023924875872158094039903357162867041419933599037946272168150025260315348820548559315991998957787881714767692120292467102425769434746789199845311786355302655540897819321186478908464367430870137185678445290030557471244221935766482402388030132792402377578363854317528803725524382178208073008045425748987865060429100121990257540949378754440702608652349789795153177859620870459375709273384962182365703751480289752019311707231827837730238573956206304364665594377827974804200462422271882941330098777512322116914730336528702345523170957043937619784560325627385733132256254091381433802729328492619365868614579342139186324802807332114608787943132052366739282307150745200781768214385070901715905139856240462127320764365397291809854056768002826259411556871004175693164703331977452384935640612331831580137691375160307984685668558836116045871042522587570233961732807620116459427027521752648641268475094714633711213136276944030748360652887287987814171883002603904725534766545226063196947829830927533742998399399986195576495431874152826154380272587079536155815851973978420322055857783600396128828244971082693966005265823586807145955991477592607895952606023778768672435478248982492895546790024038579321149445543083623135863791443150611425246602837112883637177025439460520381161683385775037731353556157904377395189530047199400671462898969920135369079958382167460040570178170259377144742557448383204117288281841346029257373779419807859288856298379581142552114762614741215422141716521323184081042122446673783784866466403184078335251655648970278936828419832239965318505551453147401884696415428821684007409703314738697417672899484763974293169435942552578406772921092971806798516159714205222860853399394611673270710779407315059218031694344124542051795719110922507476261402544182620006185471428383225554861890393033268568298264814892570858639207362936679943227921992137574762063746006389470867419637741932363904421054679270727132411805347091986573805753326600186671909893302271571593093414832257353506824355677900700028256001465351716043895325592732624161698229711016874854641959161025890261354283169744772692245288443567516850322320536095022481882851138461466533922696684688856608337192354359089304940904522986105796353745156146043025456987808630089213612632580855686197712519964048133288248553976182465978073585403345727759504891632293433016102255134350340843879023300120471460612049689638788143161322396077477471423086751502818215553896070285340120598368538356563857307825524858135734179890136346036075072800564119290685236312875818845437873447105430587608491423039538259452914988690271086051374500026200207651280034577064742826426702839532981127783401414310351004719327736388991044871978489806853848772534226900155595338489184767598159492937333662513486267397037921450577228466677760909979349048977882179605382771652407299742443077835675747957632834437474310707370661374635034150933847205934666659960754151814309130337571817972689516568844571065280466907449273238492853582682651778536345065505775239232481973401490130354805258848910349182857995333185577972496460643561081558497010181803917060336325098962787673182003695812696642442080569378083149559028005600177556773722521678596036562551114290897342810928453236406833313216522137781368100160132373900785677861597311850616257050774604307329871056069750908161924745488297412041161339223754757140480101789890506814718273157402582445468748926135329521314639006749419099858863505894355902703272451322780880627378514935989398676687262777653280400640569297247287296867342633324009639377471006011510783865303252789708511880536515662837221607338606627062553155754334111916325859383782060166568039940225813316881959388205651663997096380556347588825069274538014747854357231619306159557548530199798530988096976423892202029681409363651016855576747423458508127902963360366395848233098895357803568920516924135478732549357626437993993345306221180000137516920370554224634320177309180463938617729106504101591336372577076028316763153870811323330268845488555298892835160821447904677071829294862585430547902311466627741047373208700409068821957990881074917331292642507928914666732519471190431509909688925082615899091448140797954226318342190269785102490091055086929340645614450757262047216331810416973174799506886115801997159518882605547187517066901365688849073765185457929040309630391953269944082546901828433356888789681182428083112276160098239087868733260470013578261430072100072231987605509582009938438138380386943698215257719812598276218020674185956326847086482478678406339353587664356282912211573671855607691199343866138816424109867304998143563926548265149915485400128066136847620674196027674680384360318592787616683991026694326358330469433839833722491820729976586881608346380295555937144283599910565240514896940085664533397717842061637073627933792323211133515752570549197288066142310204648253582615486820529315794430423969356840264276668534746791178089700566157758188146179477806097082790305146827156171828390147138334445573125349741042500801077559483770459891810430782279084400055476469001670862559889636854592481844102297126922703558339315876830496705721872512412460393866218803558256651137252865893257911389495784662788703835815317122989187778806269868168426450205042614593332443737377306687023867831940883992687036111354483237854142081462298144424832733868561714571437184664174706172322994865444369589582806274824039003948740682059333611564388026245920855737595097517525456145758234327700942502266952505390954624041355385257612745425397705403543845835909319373187039816772615360873046344806068392835939061157016128770796482581641962872916350934257165396309606553546840941473265564000545342029391953950373538697970421760093930901332137281385186219592921793684744406437099235026880638816135063445109119438820489237154898288964388334641822300865657424597556781910847477193688829799784712555015677546176066897743283440227319724005292253246849003051658086883940485960441772334432007376113576295978699573905101840036466915757060087209150023142306007148069163362703698135822735444565668664820325861078035337210789908930797369344304085507925549836635259284413802679115307752368537159005689232075688447945277771366615855878230987465440680739300952196958646805572670979882016302510622090395039076067884700885275252433036913631653163446472620330281865297420419983982480245283387164657364043991559148593765397391477540505618918087651353982481279387724894721721243756547108357242125820994040149277537264393781761068049779360554344486810427063004769925091936439584368395417215078947562066230211549334478472985186052861791886852219467210753223720857407709601700421820712394432586152272011107407799818683755312635300327459340613260323913761269955004587462099525467486548209527727333430675785604440182514510302373988879147504542175688468658235899579011316643880992590310118150894291229795634321346468380280709766995807741881342522364895018066293153231811889652153204402635714093050323645813725648802893175439888371408099424516242979037750948381700596033404544212448631481430131556561564093854166232949645641917118639862166402745614891948302555291662674200541146903177967105464982367925950600944643789393286511482710856918660347869351836801280698618710940473863334515713605261739566056973094024736735680031880309197053556385785385801175519362568966904191610708388959003435468836591179868845066384714440278020297020537997319758754924250669754365679259982994785092541864340446890863900811696193993142654517652167922660444049378990199895100063495984129438637752294392396863855746986847726276200418306402259852200136919626583774156068627890455063562491435285261583568035209493207434274052595349902928474747178029254610167812830485422162777378144963882702739524633183962326866859471953938321808587224178037802207766803244112042585150567541821708768880415865999433861412805290486836329063835246881350745848464478873378976645041172971365931864938265857217317261854221857074230369039652117443992673990846118895937972347166750637834314380411623789759144779259637430259807915886803041274100966001673001950257938073420299055194394294177884086443827140574931493330104537686868753123898599909785415487153247359320926808332979904531020003990038595473721963111787745475722998101939130273749864132087019771899850806754950712288715891526716051583890046904421421973021444599712770418393910108788060029254323561049732240691726836670058619589826058202546058252196843901437258320781859844218475271210965158788775213625581337751063376495113846694169140548931743914319548805730375753448295181124179075814558674244492821233949420160658843644021353615110651890824463862339310623497550246986359251513126171013565149872564455988839529348397012197742903380963845841839349535637583342081865406573866636681490257841690135619280313178667499842013768576062305571387569099296300791188939723284942644268331302077941537275288166258638190166035306588704281881498294884830782678541293966160767302134882912426193569823998902175246486636020043638577841385160532604522076940821628527844434768890525285418130615611230771952236654156054694387701390878628416659854918386760787272606330002244901601619881529459619781430303309217903113573652123210570147642349481967707201779282155836575238129558368023004271182190050047191567212310846799907933171597099615237793451129552649321401204957161676582910276969769531519204795578619753691522680045103722327706526824434045646825858875452507848586658160640392432166309177497220314468311730497280373923118700390497129415560356512940630418700618223888552975725658930826731545872599953100661077562452039751086357425197000441375466590125780356178955455762105868887348153929916247629956467549069773963346395545903888064315019965374626734983615521073065262168998595080980343464400159690094474940073018208790792911709590070391177493212535644678242715444680888354221239928754871764379168459555520649664242535843470484814682315154635622152071469324448951051163814000134817460987616846531049659875274634817655735487061484327775510875952758382956981458816707504045751337229363985918090578793660802819507887019859799573173502520390027163751942658831670836918191122294817195333880563143075651211549417823939692779391599015300809702148549487992462811864914654203228792294858252184779936292035615589498627880584175323980360400322108608476667196184510250423767820935669955068407623962496648390341386220813980555916549119389910725152570410414212308322621755542873550769301582555482728804476715147578723557153174146277767378943329853320693112102862077877519123049137860466463384331550217811751596576797958177137316410734140159889339477770760305211934319494241776622783040841716255275396291173248930660171002780723987292157365959573554638221332943255124445571772818671597345695448223353177670314274810486639401476664214469651487298407618205206650232648505901121680044828348655699794181970607906087052534821158850010979291518309851228439652494777334701983164412250939190822864201866991035929334967946039711368526119482991911942089483760009707554273079069747846877104391328760101150106398782108676818250948195910118338124401028522516342248894973026289804294418319323243018318578099567289073975554122071208834430943103364354690282583972405482342892541458947012256845123671098188737652708269769693866803561645758828693358193131036665004667653924823556593411734662299001875517903671295363798245140866619484501727611927261511358832883366685522917738141778461754154775164466891503306314995582324115096421048912061906913998251605281755490839576666220808214947659541860150117761323249620861824493960380553260320446092102720279040822704766694882084378200036651205181536549828410301373331589424673363314693067342979745799994826514902348673206615977884503096620999524481354080159700093652919168035965939413763038933780686372832151906416121119888711818017431172000641523833470624847477009809384602478895990594543861048975409953804714780496902146170247146787113893526412373396564706180634737024129413429926621490050202400410376331024787697307157430519958939042383098818884372705866493247681515004624607401102621536912876917004545291589399535017227766458740714042121893434724993581378450801121417525158974437671572063230032637522306972399934610674724152406229319044745098788916188579843642856783332309743932501704510300964211149634689189504857484045557058282845458055270034262913761608729421059248217802057979432507890654060310132918888171121013066741598284893878002797300597361786555262498681763930264415143563699387465418028104660174564517289468937556137171553342357667007662732402636492523517276609846541027694790487315007117171030920703074428868610259894901175962654601246115735140644347889277082951068384351577466070340667204788125637839400247876220541714422156934459582595689427580207533442164651110699343621127691643403198332811649645096657844162178521333985493327437645145869968222697502415665275211081228215928344465525709940422343605520763591287851911515741513775116757811720934320844725210576625516622618990173518830237896129513880359739458595378463684945209847358643885460817126151471829549640872798250640016185040538594430856142741928162612439889036708374230146606312598028747773926336493585489647654409468157280839305389042375524008515257395100875197212469897872212637908945796224116883624693445515142530757507840010519320871871556718548841187814061442454335836102798944373908415826189487758227903465036208871259063034028999795666803693083887480489972123274423315559883934340353777061419210573793414620532516280858491128246283360355446368400628065859129084761773698886436664477259781001230820069127660737567246229944198881749618548450742046230524240552772894669541131934334520723213632652910726413345786771050663114992091485894608181376104871844301206916212510711217398509799314319985616208680602652714505684612448997940871071006463756683688104905808040419461590177145113138018772574770584889705913922969344045131632046615023743060252467893028089759066240333296677647460679619029706165575693497921785810317876316152951444054732233402534557702044267928917338830510932630270703043044240811059835915326557144631351286512499208564831392341870782930794010928306939051123446323189577026381705618513811026699135883526682192070813769429542753122938909304340686755030570121205603886576969846594464497056431779799218272509409044122832737713855702066817589298911117960284053625074539739805561694437977607817229218738849126188844916556136435426142489195775067260124460411234326402022484100664455467339545200357900316317913644763552123905888587107363248999546070309408294451648278052130226668042249218043569534852348018755363440586222178058100210099274418236418802458628376010061557497037819227418276325609880239863672923411705105858451671802780745488760214581968834820960094088550685615603672518692940205859902299190017559231406350202574399748369303265306592591896421734777570182088220597234867699091140032477663473341390077575532117675541794999915157219348207279682311529823205882725219856919635776560503172495441116257490937252831896000839903495886643715418450744462717612254926677043737966506840144410222421146195680182850325162777485129846411360053012157526986434565007595209421870749012515271726956930885389846348297488384517638152646809454536469201515830676223145425985382664679555302551956869976365275389057447640235655872590524334722297007820946341669804325440858542579060780989268818742026128024947346569984817594377057971060679689136639894900730620095489992692155701374163368793996736980350375185951113335075916158721798223876713199475309875428713396818300003735702826003501195799524169873849737748723196727335184777641068312519197649079562839936352538093261572780983914645224475121512332881702309875584179206263500562636125123786807494690949523341357046201022564051345291465553110926827742066573435870596434326746645827269879964526430135932346554410396246458194742591073434775435639270588867798616309118323092195512867054898419345170362052069451705259765485711217292169978187869710988230836137680667013848174061627272686672214030793399386824607045986099252801661188361300392769261635123683523427047533137739478905066764761148922525589546067898248233722279037746869955702143373967060501104510391884545804073674173155736820600924984954158508508101763550517719569508411115007770237264683601060218521383466539546827878412150009740445561812207902497006221355665552292625818087421296374863685687413876571677823750670086203072572727721692981771294523909691236352312260790641162811111051625038631909262289858683494777676666266114696538724737731755715558742956801501371212442791236637511286622941664808629572421413625633187074783344454147685097187442647722470203319920721064854665460088575911227045831800934325473109640168088720621863916320866238589435784390341297490638996171244851832190764563693450467215686637783523782187471658887611427544752389835506187935000237883116134400559936856029763065242321915704901557298552156380217711324922222221367687849323122777347598472937648306639700391690650829819320428438560345577905948559388188548441298182299458505971389383128092444529791056143845445031100826489541955402723483968661267848641310691151034192135390607383662621035408809390742740984466846231317745961702131913354532047435588952070271110548262614354357148697522274137738326192344861059151695951882111270175466285946814518520581315008767131320936204425397016372176479228013674381436415072776323323804488633796709139824387008909355407068333494081023834985548872735477339300246285566558721387091817275057308909467986328440263234269854129177530401321217046775021084956357837994883848844623360517860553965465112258562096877770650689059740407069995732758269871651741938013016280861808976935439892756886721335827032209928478688786652668088126951634471599610217969816222793229260119462732434601723983736568139040329202657300109007086358139100011136022981817323668403823813497061513375327625632527496867400648349223513097031022220681329404137664006346096965528772839554706861764343974168144869983748839083927656494518780186327834832323248207035992684091080967379401225964681695815203669844444392278477867730960660019109366454002880547061329506415367014357179989188963043407055207850643064258802210744030505570150604534239475570901330988333413461698210073818703676297389795698811409103526943966296228319091579779080321678575969857771034000248328812541027982402569194195766585099829213885123638967900932425238189306447236319183741037339103164304125370578110425457192753981057214644609197155982142654737975784284240356361135328761135005280864041276835928402228128586993781300813549604609922803838721863437892277456620926743811116451555352586707489501859509613380192876400390102383564647747937818309320025498687702071983355982278558597845314195905536795608674802919877442027967169608319032892266812211788809407114236830548194211239314683391771501933681764555289615698242718272745242479223824445525586828739014669017222131587205387275174356233745757008877068907895911478835113426499888963410054791615522967448369960514348721592920759336817864175638037477920822336485336451956696070717959770414198073181521123148763432539839261564809664743271804215036829799161578843846238517073269273759170910230828054609385003079603734091140521958203971220035468058940200409364408034831459537497326790328726474182954176685283317850036667640614274933820118126154443968103221962573821907593660037850249163267927511425892474320316935591432448849919341760724549690377793095976170215628006943566969133987034176089976965601909291109680887241611456758706907575164234790536961261703922595215154757372445036131890114170298079414643940748521713517529434016263445796114479061475261263527096750364667552270899907363609130358375561415340074214188145264234863974476069341645567180862825136339663655034812684052854429859004468445339473336307826528626140413719930914023488950121256812765750369904825559960665963293497758892006350272948497376182319865781728444285132611419487758366818656203869759953162010632135139030234721178598961233030539794414171514470673103342905869582919008457347960352491368101425815071069966820154466791168607122846987224580039684887919915106256044451644806316804992726729997893338738334432666013919369386971347653345190408143843303414944452590081717431127352443921178780058251705191261319062851839510459153735700614268819795712030595206341302876391003163983334938102380973333395713807845835937115193354053889915151887269943838947613416606522549529203668051947911679916577739205367385435102264141356938305793673834684740391639695962854386521840407697509634739648368660539616797486125308706458469576356686190851166758097475127720038439697337132294852261005064908629722544259652744948393852926509615046996946112804681240650981506590687985819537701837227217620645446024802790686576803886937664277742868793060019342562467028196673456225154987570083098050403221651028839894417981179679325455820347946196823889297776747713315349719804121336460141272346313677996140524306667635198508083580510995857701270952528713825835171871941240357711430206479719359441222823625902362990352883290857411958734498106403787240911302952046091063225341737127365850273159311969063100213009682757815167551760019856772115877544042079880164240430289865871421385585871849710911136599327187883819701900049035102891517808761800343872155314779891449124271168392167396112378443558694284737372972311712596411168504546788240330805061118321340235994995626413991330983004250138475978900180670435269471341784809542036705428354109597934851023490394663777012390754788861198075751990514907248387049771431175635051446432328757352832752855142787900341043672835173407668362757347777782211723681988077677621440017819257184384850355876569088710009293509103698704069562117538759980305028479163516268370098891514027549345360531128262603609032828475652094767194432054557887940541505385930602508936560054796963022319843865189911185916606654622195039510494403696840733159943187973021451071262982037575454743779117204628759990440508511550271770336909823380880173025890367270680371844096441679503590585317247678703790195771687114275754874170155603594221130546288905666178639980717780045013120256838675409212495514666622155638036610802537678907370965496588084759096687608402072663597530867812110418337523718921395846068309687646856957202372071659884572872222170987628912758881423814305351494727076104349347352898277123733089997711516812207543116954924656944299974694047858187937848818602419646796680250587279860144224576160729138030172621668037045089015151361156534695012986822202129905854602147628971191986378519458683357638413753847326464108115259456646397644184928179770230996088821486508347842462608383352718140884776009708424788103556050492598452488091833574658164781378379965261395201032166315416089549037143237030212572681685935330078604885410063759285488603470713501015151964968339525264019963946055756365968753872257442869037301371110565414511952951308489589883611232757625760314127143218932938324371643605648051083621839044968226728220238611351241128770701869199121080927279755636011799059517298100414159692083226108193932226746812895358413965144606971244044164902928246382225499675571826109074157695417292329911361864923592530025323945855859819338683178523990037652137673010160021126372017375999620755500205407221737589161862457876994422036071694090061184517420698787918528673532562716647051141250684408283109037035336376062429330633202294721197269317299369356223640150134395643624602940603159179083397319925269177212649543023666847015763670687563064689752635950085851318874702338042463181420034717218199680439689887007994061407485221904307883852270598988483165741842819270037114661170567750185345291592044925412322642319775356754829967141330470796274196157339694556249863225169923897073840572271962831696921984047426927793985681483560560086187696216590959275159533455515147989206027037542421108994871953708917809859979988568225529467986308426362026155447498593923917303646119520932681296129621299426480447296438790524125792504283487085521300415981924717935708747106393105049062366593235390899671183091038179831035775344649260230546190892286555947103273011497787889150817203426147752995873152893020636612508129802644620172781665895723380659387205327525062655427565040805415004252668569915079516265391426888956436136911173081032677355066460713974947623031503523996744627089977701780903629999331580108326091172673614562590447911424399799169706937534509940283806166678227554998136411483325673443060183060427119639768540555041370605070328219919797544368844845980658209549864735608684891161111838716613866365133371920559581348753445968947502047153002152925611889412898986052825430569324134775762484930039237279887500593820559250086401842369456992621217337131602391435801337980764527439806650790488261172230794079475210219200595534446130160107557615294478409025463450352073870415698062951094092689882834977263138056372081441991545045173884307424983625901723232510711711922244249165429980822623637915458130693140597392629368303690431830818386583716728483473355459796851578585813239277264603508079637156741835175788639374345902069673668643173941711961480151260224004609753778476971265523339249194734230393974709748584919192662009863525870402132992619957874006024459288387644233401863975407816611087258674592973247743380375860325510925774299724978070686517271912701821565875576006800769789463367800557084330633730087890837597702298487462890875257781824586200602111747795695333256906334097210136525235362250122647733937005873180803746564680024812895029990388751396463983577550251423675433776238278916800450720513412827963870530581304308415977717611795972005742856115321253103292478524232576360450553962859306150860074848309636722403577339732289479833114294054696618213272753376180236390568535783757011579166940756661120241421185980263738014672155429248874587491642757453472166602537787337724222585023043230878484897580583165813039564270881252872309329439979006318874884548928263088696542705972733469444355163285473393980964854066250241921069131868600965941467384747414829136160143552264088874173736378313884811308896691358335355819160744285823993971380366328380148133290048876720555551796245714047231190616632530731014334344136230928800679053027487993699420540150717078449091075905701705966598585095120533244191161426517645474736763848800416784931064174693491694108526061892949163798498358040897541996527080428145813801453395846010019632824925692242159205855716259943342785217456443449634075637107407289799777317483245866048894757091499001157719263800256853825728950778749316816430323005961903037434230371679587264519977130581450336772029606410294561237305064018797019081393100134417005132379040250759291921913443023017342078436736852682389282175563656619289132777472322224615264129176073173830352861260496066260883657027973377637088159619348178858791956595771487346681001499114028820944401539509482882168185319351154650913317246925649449775197305585105778687110782303763768484143608908040920507404607514830993637070657191548200538399150657798609763378484679325472388028574380369948397321138857940833243455332848863025384422173895445801759690416693633562997105178365702918654541860162590463495695146285131891739985842445136355829935489687005143577615265596668860837238645390118197669104781053901331904922448353286780254614188418636766013464320427909320009754924665303741573195421472527493085435875141780475554637522883275212528754838083154587279193418789514810220816151370739025905045760129323695106184583577365538304316126501554210119682623731659666566463277169653268694724567184047650467252542521156473491841494682765524113499664580455261741748494212015787709508827344319486311956295699156977269932675129967137830396836296047043330076181854361987088741215563295778208593167396088783139494670255053131654313854964353298823018676198107441681015811133871895038540270071100292648313832221515969387231937160726662610608365004389314184563847239007934524443952004403837083950511688603847739842877579765532636954575963462522906642966638713627930326552137193164175142582347724849822243664326160770087055535327675670782529850896411669914766408716740319274413510301479287407724608149720927716506203535068202666040474579123216955434418941519893778446659462178591853875167549499507359402115667124260392895126903575146452325694773771253605888549912010420122352064645956629346161233609959957194562261353099532206240223086689332823651758855483564673769887626877316498769752532568883090085033853477790172324817046673188570293524548782155565114320900941495229536197910644471877964485831973261128962655066577842171638413164222857216656307191093987037865948995094914205605534144595940482198928253980129262999634747378602206349763429800103597866402467729669622591394305683780417478366212926128441175131569697785970827573854226756924757414173797429610336456513137471217945485212780876825759666900915848492911772238081261502301305736907292017225793119418936068739797321461986787137387870058213920689384231493366134164738623826663861556894200922520662136277582751585023201397746834792336540352338047431518777638912740945907037972160013729780458490112482947473864250098446938619292886953550195672871213039899213411667726561178013416309812720292546715224975318711968071672499112301233813692778059107159811981327533181302566881302934789966434514608457922587001985873940865381443991406016067081617388101766540447753628392112985359651446520874590276223014149395748561855341217729628520966097619222874491492430978897976178794389833351230680462512332199098548156329837285895557711600220468566737754333411064516066303856561815644432573449510770146399965459644574896063992984427945839301399586039951970741698818293541494836151032873074698519591221677424055424053408947501139697424002211859109446596009364743356082580887510326049974575146454405588308989885517905718299093478712769045629388503971756901488688650205354556176055733058188434573901604148622067393971780169609644765240925838462881757903459196859049824597383164465778932412018741773612228543076811042387015577449120959848501059047870756988652851491873854730209883712191912628724498866035009918632423930473540150590150261684061783060281058087694567626664972631561272459705396070474114345729302104541032402467128797982120327008438065694586273353455252666504463815331149593968977447609801429267981657685675490737906745369219859022997753464178028856542521840976747067595748483293485857813910635801842549071390805676204473753708394288244864163858767548831203612041172371778591442024797626610832743305872212291924229352597697207668355793313127592246735246110753401407159410957296476244492155808623780523754498465681178545428488756006089003404802142306529552792763404089803343924846564058169331161736375208540157750990456464973494882699998003828040747105174247905638264427177832215490801353057465122730413818124682622466351353458711293609696883195255726943873335887541324784644028908536229779238964511045041556506638644367638132464811929025372942729274389005080983475708819595553278885907464122918279860817054489826241586542028407499785133066229465673323145706951205249659863088092907426448909961457399056313196976806671974165364632685672944347683664541356368704673725679981102545106716421563564404440749283545274901306171736805848124133061127070284757743809238825214456755423655965149757627152585146854272936687426915666000237182098861827543867703701326708403910611527578225676924015502246484069278916962689406431672544893736376540265962464945396086454494828808226124410125579491022003972701228709043678642818518280500496444483905269793602791173241478380176272371857115505073395047382791727123661140767434678428114745119864896547515471612249541344266941584980891777029129162792287117750970374372097553908129087507855553264483553949069357747495203971236741527841952236740919279042793733514592563115136022643690594509150763003011199239192878799682791942611443349005818890361650320515964508867698246936439544130516134767551831974873307461381371773471012633331932669815067872211510390069919331097280981622595462486152699805152052090541694339570358323972931581639289196297854966552598345246349129146608685267910152277343283633095878339847936930322001847698940718319319729516408570516754020823916972446860626300722589463796837853577677559117077803111736817965744488305921849468920288292023145584207460327395486809095549909170375266523000437470252147497655002839676582080356033169870838738795638387022421972432414027659193737728675998946903634711900993095844434245758561733780311572761551302196360363966672685634181751223708301452808564329239049635071195971414721596150285568975272327144835943665858913589447261328833454544021865879155648357059062005538937004839358786384743392645798440243606029269395373753952942822685103515021435707622077804587235224312741151025470547970762150508773760743676485702234556369078802236687385370396169316711678133717656896038191628367531727189249208091114928042806048974339889000738122911116937406215194458258395233551490508569456916646921792605044123875621922816776051583932017793104962040261434162170573281023401096326811323091144853174445264784484317783776969404071620770350854420412181701584506555356416785447084991053346016259805064427624524813584865087019248909219055569600518855860007961274013919484997944095185979837399798267376383158406870667091909333948928577377592955224188247061357625349659655744600129464632824352203890353401293636379920543349185763436109850734745850088316163587296126020973349361688671739283529396914498736897747209086318963040212700902183970880276083887307025863157318631608250773330698906945978326529487037049662081862977266615733186905900352639250674383003490239353498563566844625324103165974261838247017084404653019754055922303231242926308476049003730988647986158327867713891881851573741977109363198074205244802163677066306481586050103174103514444464376279036948485901598307003948850882674902218644208624237374429436148314983485946250020125106219405315958226219006633823433232679213385410512229525565962711831308173486673996351446781984798594902118421149322750446724310301074299228363465394413681024604506726758462157041126087159686776136521678324645268611849608133124653008538726128031935841599567489111874985919947123151004300443305023596323231429870108506914538443897734474635194619746901226766496991475750291602531948213093014066229522812389057777561523776838464319043184791849080309772239145561030773561839568333942802612327022479788024594953676627121762017842842195398752101454360585458312807124337575594282288546886141893252835862388177058884563714277889185239278153187905755668178984275049863847057049533861983503893586357834109767045419151615535970476561857445005762324451592833453214278040855785801952515210715551628006043844078395105851316404754700140772961775255356576342765607239653590611281154653084777908847059282027493911483136506938549184053610235283488080626415548662179713299037487503967204444031330572085187039629245540637301591767976774902792481150432229320627438740101280444227092686065462368822810341621889641652380715666339524754689312605355899373040291220003803574602516336245765090280763224836305471940114461472279057681500373485526725423227792064336238991691233124661983582976886462673706792458992933454338072699843285689084152416471358980600878775452537284262653179572679235243369494639997396652579968267066687499363488238167831238043222237887050663858711361260534977628819665608214103536898718594054222390060164915482031129229360461379277486603909292884104570514649666461278648956220553212361673100046449261068914245200484867823857043456887202869893563911586253584207087401002110314335819950844334059363673072576582979848145091479259922141598887262236776855708182638510694239360948176654799843818988810296085756965836912875762662051650894585683735734169062196644251552614940065908847482725104364162026827401015615411205473296643090305020487142211125869300143601912558712152427391084792954552873606983620927513541472147336857576685121850138511200449926113258719445300734328541656341319393080803256927485750047787087676890832897820616342484157913345229967174524760391925804044472708729408870418227272287715137281131793567081115384830146424341317790565839598194419865154770475438747810351970310407414734388401020664252783331413772477415303361405535593215516642433792497776192512270986455081061224535797525708394351083815926189122711643016158084272994796588701978128238544945436623433043522756025805307079452472557349557862121395674309262923759015973766910335150037080906569341658421921621627856732542276705551764067559529898375855137319163622998629025448009719700300477041855196133110710117239681468885400169972981658702575370868094763896964338747804000451361139992005594865598791240413163532592553561033777514345742550209547547549904774066977865450050764353354882885927506853637193465994322439646179698074822480804685345676406933764322830142326870768760119554793241837636980310904482651097213874270504247411414093906596447044647055318255303948528141414145419259943344937843181447261544209343724565931070127949115680208350346187922552983489306841357790879959196779962444727062227232726189673076127606977887581928583681531511071995590912021559516847876414269387901732752712214511069196787437968564272403587685607982825007152471898218693877004403877570431918660792027740489737265116760866942539784371167414188520288600155850099655227706076303185408840332753071890721210806780628069051577251412981396225923542926049305190916633551293253103935782825053541503803680825417031761828602439546914109432191070952059457173847012597258491563661027273302067178335564504502958945448090852089531151343947056960132187558242537745635803357486738516358930614458032154864801738766715305966478370127878869420985306628146232509070295304881493538029410225317341588243010721733572821421849128844729787888062760694413500404706673747876130437887515850152458118419524137228590010143602042430059279971873280452262573481548429482307200041636244985330595537901974218908896695574284920258984980754552055297250882669082959045296100400844920745656445905330363346513407446317762587207778609837567641328245638738225550154786494122290056639335456575341425841450302198775660913554181636752575175957056640624949774004265954642463002855238743264842915772338342510521527090888442295106593358033936544399758556473948663099642249434821923034133486965901082214171339791875365205686928903133437087907812655341793922521767389334773968404472479402954998515923451804051347064445510632074017331500967333578327187950310771123749068552075814221155424393722457011969844196168915183366056076021559282138038210501485720323114762664770574528589484659684139164775848479146454359170531403463745326706542311301743981357746203512909763354960159109473041785094648286962618427270020906935084704218950844004714956694486659459387017959274373792969570485054514571357425104854749296596220767547565326233820941395736672451575870676240263073207854614387653599107759197892776608209337985065903741818998303147911817632168335708334190122507846918422303443180849509218470518795473893688220052713880433656322783037263204994907881683701526114626683090037236041304905551633341799095416800586497133922889754776935738009382153520462976996981553798586431802156755191046346174366719425616315709535070274708273949558988437867246195182031440474194156697162637118192894919903541657549261927486590663334160549267682163147551855654383229131187126840614432809752937506742631556402559996560107883324160638890389924087503037046080523673206785168651507134623128802735231245467446430136017381809391693417324309273548056919548611345455371547295888209933980695019811362829001225293592590289132937469563843857308354539974210338674124888457368149191727347525529464020423987307364088960445956848454360396306907735839045355822802400321622140158306221878386977296710919743427636846536179197336062049038108611211556121990815017681549559455585155346131738076429714114131884785548561185726279904432941621230525763976763563220611720949876671214120921731304519701524272578247695338206299000008513956331950333850274517061697958520639441442131022595704771538773480755154416981959833549804343191962399043276422261006040686894635100142802966688736392689440792999771733445544953831073199078847770764762985575375744705381770883391347957727015528666097683403776069032199841454558164858732783271067917955153653717302939275274411849610677346008043647785496854960403594413964464483204483598043846751778831246073288897858212336647829621391516338501740678800129657660184144666882019935223142878962919245009345250519818294422113573290181817882390824013105055039536823162523130091116704710360725826313065055250841374202761520080787937845022451878569052461305611945929538495626361530451306580072205283826075132290424530235997300320436162450729973927868328552260395499911635784991997829016782301124749851849777750499074790232275219065315050040453216468274949127046606580480497002283412467022969861696687953376590644500738172584703775212500220108023002557000739081962748951921557401468956195030662755778369830110364022823235654407803760011773444436842232679161068538477250673015539830984645508662345378018709850291000704876843489725746389654050332772191478396294800835866452930005802707697362741759542032851399025524506319054401745022512058163402799797954834272132597533236149000952003276828537731486399916402472054935812718024707740672132035325276287970547577336144073121336508896831873947716204419562980171690332001578039704213993050035043556259001379067562406058740554334687250056815520742047572528136739152062377661029718146335078648180042502741371618426783053746335591218442781245540764211846310988258053843843971897318152293866858949139946468421520455362541574381743697859278154109948419058172346615419652112773840645984056519958949483206308008847875594024543569341301261516879975327267415696930055438852919380510946409624994930057350426868441194345693079707957175290125052237088169687855343829436863076850082070694582879979106708941344392943745117848074593788123226174353321460533081602063213700302090565167686852980669565039647790323426803088818850484423303550371234892334260229943202216231807262261080809976234870790706796399556356344303925580230130428508517652305203309668292818263042642868467170396730075193419923592390568776784241768510114453438271573076054086858542536014780685213015048215749353602891001258469053537965842899370434564494943823981238466887390651724024095654539224101854298828602987616057520408804050370298073081187251578827362901191871845095338357339651222188193651969290630942854311800440516524069467890548680829867707679169672705273924771798550240082776871344441912090114225350916528667664837747654789009823076708396894678795944851416678949407762719878617578324463263189754922491002205538395045340845620009845802459226261735592191153804739281215183822153148041499962872763358620365230620125957174559887349438447484909176096793025138779714227264343311124021966928395736093213424271432960867611422987854267969750109532032859909961082679758303093345087831703463205489833784903636028869661464677016585210145461205776921917619340186285845362519040065570915497097461491298014682301749468464968084393745624143119036990645223127862327484032184700112465244718785711868567638957636362966910432232864461278002353301278833554143492603071825065724762581838697208694358805460270664225149591793831871831986622358429505665730725848388763809147774707811446183551940223053875573428986775722181548663667461799164076977425337312303481203720365533243930856777524809061496253513565686895727933933091118731626549781658868621381047675035889650809360454130896064422430476936579467025777910426216341208952283763737581556594525003545178036423721709850491260246746633337173093327668239591666187383845001838583236182832417004339660629951107261175480254095806936816553319727296373140824206412518159437471262649596132604337076127096876267743716282470994878836431879962438994866735115070657664581840611146859039910580576270350484111431507939225281102682790214865939337851155879852397555322672072751712975613351769658395812633778189989609882274024866778581813115875493246533020886998406468032464019149042286904587474418426053136885128485797355980508180279435374051226142450153675728818447326787673623721284969349158767605532794159024110900491124656953881920389573867788297359107560004809296490492128864340519472321009895399002763006276012330671539612270462385457586922335664360945070790351082392631706615731977993951648116614930619217404865660364007920947152584759347818842100413073574219693012786673185577651139637633069738530144012171834292993605481711210006878920978955406024326263191060587807056803986621446500300495176363505834221343642285123090827699688471885964361451211717849384423808984713869443858657178494119474978698124485700032288101729609480257252123965453376905055754366066053426176207133465110367627626801467797966699708699996092750957323926644951403914063216004957088066765543712014375402023902875618603365448082637214698710770475118890030048259564362971498066098082823646982379562193568924188424831008596091506393160197381028515283864245154066400230262148805021092444955440454753865062023467456754878475796439088696119102694316035379251818613280687916482386246282566000988543412061814769580211816755992649089631022032403236731606489548746555551571746579677321193269398637295608326711583589092816491839948735834344755178648466003288741654378802161626465953210985612954858606665151687763144099103889404377428012421283041072434422426113585522388804529891368480259106706330408898545592177871318465801946459293829648448736995253259626648173021206655949182143436690618969106672044073331181572964402899527477424462407231338186790516556970292383334600416442323596066092263604758159154511066191801902145244787146950719920949309863524511834616474381252112572697051753176054348500601314749727373271474308137328285742237398372292508482057705088220892376599331565697281163597536357562405764829520253952295587164559605398158773458624183133142338849823999576313218284405075718230171514607400088114838430294501831288852471722782829920862172395393441066326546688025291894437611075328785451366824167190264094632825373492398928247108756874924737292582143073138100174847321543200069889879263604293319061660480708895468213201639385600909555747080614055635187072172348403747076408475513366019296789735445774760870187909528916138827798895090280650192716122817636473156218175989045080580419761459985565626705575195244756665291421464148316768026773186882976236857617194692934760748172946714804159512569645896565717583616259854716725283438162394262669914739313754492627383092087551804468825122083179634597020631683534615096899779772773425377039848339508791730363141557568659204806994281898329055011083190283338321176386222852160615919378561515298878342104291602194597635387292113355088466343171982682956487327096937029307502172458242247504326069268096362432422630510903579444793921105678069541246953911752493871125232796925871789483275603708310607154614061825019246949893193399195488815738910386722161480963341989941908801599151244472342740443036466920671124160938497778706148087014434900558399972334249443840669652682064621843707041868326268064416030711885910512660745089997686057553865249944177947613839694368223407699666589927478212570919088912986342240304907683361943758397585578712167353137385950192147844863904711158751952914447939590943621920803947318779257668324491651401976109535462912294604181494754955869331319389858205725506034150001199753638052697710027443775935313200241523795988080859553270092860215120054658298889019097726850312034110556885625880952994485416388627187498603901737720192213394794978861359709609982744118902025673233028924341145979943365430996722286488131578690320641471536437019309564340523130476580629023145091177767590778422489946349900917352592999184779026525602597221719481142333133840741549563140501255128823225256342201424359600146913419939790212451866433249031484151586245566341344148585228957667107518949882533017564461763506756561173600818261006046337543367542489486097080658352241477686431388019339405269349350989531562334258230789656647136705552450727033238892240921496104780391499204708087455217862767106386109283079497545261753634668890038871886577560257294698313936226935467616432052476084132078915708597687551154176148918859199054570313006712251558634817575484064980048329885084661400205788854796157516415200678260019103427932595516082029427836044245010460243913312543776773042325515120413367612826663922384733832455628907591249429620128855869251254105370693905687247180296845457407460501239019615696601430144531734542731039029458927650614027435983060931612808378731016461078851855612308874260865120274110601674839903470109623493049754691478727626634743775752874935561660538186742302352353847654820394521055345645631379768124990496288006857886026827873637290400805865230982179607693120085085657597482221841394926374037374398999146379044889196005796020135788131602462765107541302089779483534347859087081889560789387229739447550613637291900964787160897235681767637531354564698731652079229076475275893157629216835882734492613585645904752532769971184750342424410123270724206041005944297871100142588814968565839893402932720843238369352288314137562588858049620045287584370633231981992861273632114865434432006321391620211637055563008409038377287981832450587675959295063518030972855680566714216622364577489220599977984323644604667935838770099943412100243414581743725730847878738669517431035359961343940534543433060742689499292523808163955628195955991840271426032563477866829603678558676660341666666212415025300495519281145374859677687750506113553819346707639627203888093863027210692820007747238654989403355706672539360415461576146170148819993491786166559697081428487127180480441858402131085099137875622149178864129225963656946095921027694392535017440973915201670708091229264445106141142840801167932680473220514955238424180432631771289221190426171702360693702032082623962591513950709495387202237290143645705543456430854729202076744237832346990726787037011628624815724083396555066397434885586445087227581847012395670074368139716906256591388964682974284212601075445492649212435999099229670288785984324038482908319418694373621795196464502706352017198487920030807417589736132967119997269424448843344837622686867988671804782853271309618517777792577276165867479034665296098460561108767152236510988930894206454487552387118176360216426559882752677833655196457454281784800946621332118644164759320544182003951426219290635390705386056543247771282406579410901390609875982213963597806367053477416497654106192679982282247191046845239736014148403729798664837677288473288987838813093652535286060568377618668737517186538427719768311512801241793446539405543068100683783702310699043098862985459504422597927486170460846493510609463647552624655494863592664679948900186263317363667550241685500234131424269096756401791335073337434200186943270430180970729187658783298947749745333773686604702923964850647585409083545667564338823878715653951304219145616490964707934803592629355143252626691763301794185130762236536919660496717815388114140641237007667160206660615447411391858354394468383912554842230937850567181761112194717987230263803254333814513185789065853309498105147249514295261035008251370615978539866192551439731580698030081418791880645142143111334557779381306451636527673616849236081785714693023731021935134860911495321528891827874882679342835039487954723397386264535172857366726178912889090923797029228730691299562147825715947756567035655034913311866977131703752169944151785632812007032728832108178666995640036968129126963098921061133973468861445681408472432095146592660436897395164980710999794673360499264279547777511190715298485166960888504908992580525243595670468102405544295235375296676146539513172485378266953880514329067167944060493424496740136752764064080264980007855542839842056604687378913932479066666423594204760183577201901039118830788643538979503591717115773834896308709859352516693470812599719202358851915121879924456860637098432375965734109695867570180400431607811559801840575922237679762418332040359751650350720635338747265335807244503181394235999263613813768695759294822396412684611289007187224988843238088974736975544530897367557285420470648490315521448274385252343631084236234869830348962686842538501468629304018431910513092936138051486730835698908022973392854893985218136018817090879490767501838664273321559835076335828366324721228625166084232588153800439520594318529487697777139053807137882057940295362814317773256053467695629618653040906878185491019998820824267351845509046444885640794934460037258473113366768679697349669495563797466094096135127467450722492969805552001791045384441853046676805683620124440736790119590250109859368128116533173581441758754264785046876779184946593631965932419729982290376483542292935158463116694364141108684009073479263825819609195675463973283422186837123678055820041601606215497989329674554237391358078729152372334479707976925034061131564372619481907130491341966058142799784512094085533998649317446831776644780163148795687539180914609958702865187633525169382668313727872845604440343041014653732386817394522177224486107781406878004015130822418359671479050615351390755858664107345146411620685755080167504707551254300367142049636250244624254068605356064892293554426384965724717576561865502251516158685710574462903268588983928325095691479850493434825549524727473843739312362208570247567294712305460130810017243893848546449968330226615165377467363293158808370277294777113670903246213398339153084206011661097587178290432408109052431165394875379729008899384664442918422198331389178198837971264800359732780987967841725147302593132874918229158062888753885805549948741905453187803810915167917669009958457264447709084294287027398998005294529814126032928017065999115237664909720762839902121454712200185773900927206440078163742368150358029525047350536724084040236448933242977441019722236794609399179488308616610442981898915647156471265418862596441603377201618244403253188663663574226206411121083364942104938573518719935199357690099958657923262227863933354415268627882568359056143420762285484167592974510884464337986727467647414961074075467381687106838102359094437456885540758248936612016435338931445476030227208997135806212969678919437328112012469043836394794121429911016005625193016631603653366311347080042287002680361131334963090763893468746033013564628646005202796978685103189896485578113377896073300342143142033298476662628509310480713268572469001927282217054537083025808147468140575404804446793609053960751227868812863871167573015661691213692226923695568201063000725264785308681903338404326219151953510068358651115283161841805376251691422385854987843662782917099107776596349221629854992500544915902457869797179419897496587979857225988044189602457530663505082008511468241840738890279819661039150824825693211138265137871459448461572368179240897067378310477110226252718865711384782052887778764029404393367984786143955032060551900901297169294817723665420586076942282167822824276400927227244390711722854734339514303906573404924433827083255257082712922201145036733292912788277450216251274769694292313627321700116633452398096911317928636671184044697971955602627452354924752503576906231709029445791227050853133608636091915412087322985850321877453539040811064605384880473795337740685664717344862120839403258376708290963699050899521923629204545875731689754498650753846957810188907502337625970981305233517272151011657187992208996280087735928004528484233095853379901103678029809924943061792638091438045012814414968310373564374297617678698835558343212094278209125368292964995104604555516592201880932193682650704758021341010349395031802700766983921176364745609889832686798206212758709715356771021303146016410023314506696276172392688677069948498480426776974471199633889643154076418280623928854667800401788959163533532555658150913976054965734893697642582485112177651735884563689506290309918153855412471789550418441742490701094922372665186143391221799735531457486468159319309325791899242337059297648957762143743631640848180560214088947328523002336792198844400732634523034044508095769444764568515382406054518712210695102196157110882396767019529806211823329776129212069379101094711828926371692721461550400832975109448570147587733334871733928519459934294479758927660488197461679462854692606382096316583550511813296910795526658217670706763913446977289869295809086016050281889610253146679403124070777227011441492863031728299383261000731891452910274019850768769042421665912926864772811576472555086184700130719407142827590697539453997426537497191186290630701826059148424725359130304974901631926058080345570513522532604467770831895856541108521086553192621235703262023995771599441753634001544080802085118413931784685349976285191595859149043887931108171556236643301898767541905568981810464385894777841362050735256080703060672875071731117043149869486719138044589778401855460829434896590101036146087386989368926788324715199289212981914371613753257728586390376823270307846805785861737702748756210885705497260528850701895579554428172070469252440633467155902837952961553005704654987784540590196662551272903767481299843979176200290961900985401137075601074741098191910559103269967223478077649158367753958005631324370826608198630282814932635654552524475053231086310845015602141067807919522306439299463113592598011188290035800810160514689772898965168801920248971515672257180770483228323649096936457905351566133536907475794279133562319423590055672838612658319244468296098536287542667871905738251663689215802758592674475085250823859438632465646207989267966545991557708257798288622124559498483772498188153680885842204851544751136237448478654614445629142277444727137617267616351323157808457765382780268226881133788859873988329255642441461203572670121997920009498309930005248559856583353809934331817322511648797186820728824630814691120726698528698313055694209444993664434701550157628625714014658834445124728286333150141249404882715943506652073492491546805896319917914804255294720518445641680699632087372693486649508116622782354945866377969578643191138716534327975062793723899233144805971775614139889450693446749584626390901435297575115065263217150335743463276730346205244252084190434685068852011432879024766835423551768865539334889906481487150297293529381543097999949450620660536101835177732669409645542248872274952554875160812951241948850073155037844491704582388034212461471003074222573136510736197936307892789562596853647458874291358236361091079505726388592595648317524949634528043892778726965444233812831822632911401498207725891630732479948597553791967141612622946687978601767391513532755475097968599033575025614468107818481589150379833805124083009258058430066673257584728693193793468134994873464888100463030479590725187065917419759791620645741728590869515089327755950692360790647078667356617150769113474750705468706969433924302799507527109985498315199964931370203113625343843192753424511113992342071090175025761394741102182421186942546812000898750544311945202531748462178947870591152530479961603910176573132970487172970596469647626863934846190300542548522596452205564470538866760516398377927457389165245158905092260961433074907707808825504204307387458077506181417044437747067200454351551293928801867374420684795982503827043478298470512440739923894105631466857052125773567906082160317003484907765473508482120880224741719446695818953591940409358481161526068804142063206636394300970092490168557947246270558066548794538730943041590743446302835776257022755519483547337286492285954792082519170161378401161951543483102490789062969362754099303923272412318199658345376346012850918478406474842606379668207064242400162068091210690891319092642820545655400813923558654289503781805048053825735404307594422267685408125577542328145152120869870524495711608561191596482852894654074816000679902082846701919815962269304942743821966481943906299739746346502768553838614179113445303885978906192261552831488530044725868883230905748591350360618293333333936692850156589243335497407413186942128453220135848570424497395400836168720416340596540137249164618142770189453123398513190087626385857774401352222689703661528943093090797587644608241922477211265684569981473697815244221314582746733544945434892024397632273878557397999765867709629971628633162423732959205503197986446916488295379023452277736206482685589961622780331207680696263225370341018334307891820001025922462128953859814450294812267009631267137650096535864840362228995784905975452025540644586922308392673540182238008599643390974693543419893418399277506472648350864220392460816443183746493222526660040773886476055365434814538900705845226596197112124836495951002470085217605320958260836509506607217549269200780768943176961552339451597967768997420376774402739489357676475369287777808904327417549367411507559861296204883085538252338420631567083156358577292501562771907495521833166773650749207942485490454713697527481293428522488011019515608874325977318526822897652056887312229021675623071942983545112775091995052802129394161547627926916965251167680666094151887127319549473128864442700700913321687409067188165071114014806854880700303239127359352423188223374513959224472176932852800827711763605447764817396146060304132700991718790247329691741046188489703894740236427254589709491159537218318299578589699411949254824564221174177453461085707802087671022494400126608962091341626171994412905986693288634433460332363342206051131507987268693833626905813598410317455087500896715123510889179239549933989305440633475707976187601241111533424728015611550946522517953351163231534888025281050243666164714094612409710801875793224251472864587449108079546422965920767033306508127943508757848047887629694074731978755383961657205284190929211786041545532866080456975583959200944792333296525321313249109459487576028076822887607670541393764499148025679832746254500817463211553382091511335142423328348446202173903518890035439802748008178598556440562745745484374027829856077462905420069477368217329171389305931773704436027576913118745579989050286066016885139972188387912261371385715886227179815916542697531937825141168662523008828955543264057148673984635776110952318785722417680106362015535375209752204934046954358324772349887287206474150696087366315220745365094223273187210039298082313592454527420383239437356910900754566685455942568858479856396741725807607806554875175001343051519593718502573858504018950731541994463312920799757914060719743614923320635456657514092700362894026777407982778289213991160515792558682099286907544522329566413263585400384338894784324229269031900897854117261016585895993739590575796433001347941914308687466714709766735167976033042610255190873240507168924506151033523843619551963503166813445021050998410108407694426359171966725784634958954315977272122460060107121464731886629902964350042610882523990449312377583453066821931306622335452893515799012570037011582058964864166338431203816761601926469804150001591790492647324753447051495956650295608933169944721960834533420297262437904186565972620434858172671948467433313955330230185581404850107511808077457906354017942191037158504476362640106898202791535976607266386341880493678620649590227820477198900917487467114962481221021403717385216815759013287104151701302018448784251149431002600496479316368635016464157097435858067367174103720017291190981607944967321442694116806747346114511898136275626182779633277105601670050870288964267626525463630143763120806463889954568629364058956214279316236592973277957244948995331433603625678030609627590122043701021893720524750457118259952835285784082001542678678341126013443652784495541337030813255360306352692801628585196013374741344856244084773222265641268725662123186418670367745560762736623014240140717093452873170294815003822259710219343692648116822505402845552007487781974615278260621208325096094955129856397950063165145627756362825839241062589815925336421222260819982071655566968707318297103384993061251487283920089578858237754895793540653505849175582801435773008819160446279471071982941708243731771948519003274333402869473894792092253900910257056311375845988097221424634446498314048077970158125010076359543305751838535359756206301712693226454853683266548605498760629333183760928867292334263879758387609941248997712705877545752512723999311857267047017638722726713487064630912737857369239698626104492761229343147578169604022187564824341574610320451151494301019578605749569453869673226001114758205458696602682326787689879746032480017159303359079272041113828387818194546228695179510663921783762684296216846039218205824042787393080722687672640149592800171910938151749718779112063335948340537530263818832580972477306585182658812270596544832757893378127823338037465258912802452532804900875257314983595739544537900071485271568950118199845174061478503616095692195861661274786153132888184665688989496959500980929750144942635407305992928441034936698259117557910338580258551542207626741234367069094460584278771162918144323156540588029443900445993150990457354607667651969577048484649705858399301842013403128799379312470629181488570041741589820458604681093600185199378005997916356019363148708405563197283735838032783474344969472453456387544689369399496681842271713343314346521417573384321380204438499318361225584463638727131694310562051448779654580376561085625889287778263949122348269519285340794894457525474939461421099714520507288556008575585983524061566274003760399258573115710537298856036931752544841780017652226391246587611551314336919675134881647561089314632808435706943294023611420616976956060695258204392305040558580776885954224852550827592871592165048192237625923007854686872058686870306463681195631595385982325074267020168429656141394648564049150166607806245936190281076826759860548071940453106295765105191216268079713185393479352240710171279080102517173014991856048152734220821082382382483886058184441243926406010623920972435147627783812190899773034297605933878373001566476344071402080332916740684703955366424463384864085375211256189993102249567569637469871052769324296696885394901266618109616140024997154003829239321626058075375088427545094788336885840501316921145525518884015530456516587072557735021418207459989310122264302473933070908275995894768646230814623736642884228613925760084235329096235318253741407551818231329599408820274507472885766549515522876148890143190810376483860032770116522227724622111095194232233929674483070565021590070016276853613500063937697370426239234342036318387791182202387957590990578854071789568435615864031957304156067819604384104648064634839130257418751856128507328931959905558783448829426010714925520534490615942348485010670764604911118268162287942386133517623700311248485774685141590056406719924086105615925052372681350455028031232256688972382433318928807532930739795718469410316844261811099473918622656453001908942893768262637378076698705693036231439993235208776476699483311818556063100144211406850116493568297615722069556293793672376592906051260793932364051999380596626128673549384047684078077880557292354686621544241754905091898393254001212201602122178716479477608178462959368098781021132705108410838576443265614446682964140325925512506798518814732857124547180589168918338524419182489657487249083022130732588866562503275380531352286566948929764582484626619782236497475751919001934815886248256892693899771071656843151405937715491193968387363018601776336130365770409060195232047107282940991474081290145425755125831502701678002722600739646771063393461716243459396943173022468726653273019482704251528033428875292323013669598746412966940455435830855535645279856182106547694884146313915898083639586550408509240698568038238184410231912785556191715529089832730339670545978635399024419394869178764032963454439086594824760898809776889573822217308127622191095225512063586257194999578286947379943386888517857141666676955964343298145084486971243157877778199366805134515222303781276465120037047456148954621429713097224885941030271935052847741575007105667548658748662085605305116879087610406606467000759300523024521683004756143072839977411606017400490957577418071646782169730707503017575328734751553560916154173262570495816326320645200857401067048694149467638980110154819950681215823086612349972685353353618325977462842077362881368854246178076372936252840592455751593062851704808397732939850001996334783418281817812163592352303468403209218331032829307054925910662840837388828345357827454014306919674265292615950976148388646578823482444082481558994704752453923977146799169366702527876065113949877578863601659801525451683395524085808369626558918892301794215280099559139628283628234818641426025708381478989693346131499540172745942241560073020519040764057482692888995277748732105836989295053021402074837914621435367047966253704198600186671704103037419107568213055288822854534604194002186296288887538847808892824992724695563916833824440179989290286532287721122665134914026609693923733362906246824640087188570476397277737548421558315897090734781921162836571874051904671465907137624272358864500407267945657096161637105426852621100563875486042004585527058999273871879784791738544695881328001711989802842754590658029034944883945899272698162051054540964605524953997184870625763442069863393854856827704911269453519824184912772654769797872050797974837375050116982797697156321469473213795272162454033443754859017025214117094645928343398369287858550460875362788375624637073984352737344433970820710861612362814194464762891501987386052655243647507238369669754920518297548808376846542649252414550011683498446608353327155834607055236969613732362404054688670407298649178660195440704480309865290893769612740556750070088498259633820027025583581934699969911263005073042229184318089280418027948677117953024327993463962912078109654634424532316005237778771918497278162357424284935466421544190569228914672774590146306288765681067957665072518808161055623331391434615525953002342988013072852877656032857354868985493188363849419795184755753505683595725754878121994908231424582165724263223883901020751173736718103510583800710283308363262308268185087845134978564755402490673078656763767258960134378016227711196834932433662144509505000556562246178926864903413904069952003844603782312578787416319702742560092200538484761466524132044869099250345736662269466883455907346330741452017832536304293778872878235954415769321334389476608906636425654254427726693875212760505465156485439279558579537737030798900822205902418408277620594034155601222113513463423871311681524099998744194632490570472892151038999750510485659278828818640173503757861075820940624868930612338818935376416798611329315795257122904364628202639579815808427045988669966074449496527224092891963502386647823340477865739242381386439915555719622449587797341656018239682185673601905114390656957712340718426023100778528815013862642810342607859776091450285359222106903195455880189148375173854272066371132092810370952192207061687577881424817576031992339456721119619835732920839812858176735279507418147773121823969392328982377109415785542511183469897977051661285505367851309970620541877822687028810759521908259242662744903081614515034214874413655804788308209549637031431957113724769770264968780642028452293281775167430484062090089219492039492157490174399556038680356605085975083647262890125619011615455705949131549939690857003477087075696687822447190458605500568146139551924929773788334300303326859543149944504668948788040042136669411632187283569136068927939946543987599266254431838447514611892714274383208917623408053214110789829427531125321821767395313851277602476054823585914050133211935111168762336747707957592115571561734755897982000694640226765453842670429741531217904322379601841481171358569876521069283470013260920987151681835436025899026238485947792960457879961275636078088966287458924081058931951392058545051017216055460719909181651601011168872244872833811241420630836175121111635260162191002110383427360792510399909017322603886219163913449267284117001767591137347456066440425107396777864215207524737086491975355923893993547265496606781060725522669576941638919605248300825313861147678708161242693703465273018913783529930998870564706022104098587138726160759928913977774789363529698163088738349289224637482607255019533871202516723577806746959389612049858679684762416330594379319298348621552627339829547726421266585788107632712860154462519411288140649695081981691150727279735251740500513471667897843235453119977110111691379359087328242688333138929767421493520541748426849380938908799656491973286775747939451323991320574286153820864743970618712519246525691561318146020552755826237047297704483818881073655643231649592759040809380769175226073377028870861018722162969291892706080941841540900411132776620907052155194973191731537708032302914853144148335223129012640527702166004369069286578715910799076263313662001238532440799198923392453355359935335254079927556786048160871212907152673495812199010520544305989041744524131589325523338838829114021222246013276409889970505310880306892776301134026815381051318208390862650531071953174263346298186217037901138702085612290047388127881321855862365335463710427953184131597900077613076756330526717694212176185610041597029558753062177528621880069596843588639143905839471828582164380550850346452039326660631247445812685860874536505273358210030292493232828769509442809453385933817981291386699607265375658626675373707106649396794577955720697969912587916620073530014402750655098476453421280094375315402089707846754054188306903131972922095877231737777685697092243514782755114299440887725734092193422425757000228440956640031706809329871226401643166631891404621863252987767105084199055671990172522582344091076173550773042835155212073055508529466548767702315226044039012450252703733657761048218128107387879657162644533550806649318729170228419936431855135670313318117725864302409546256942142016874108834189902872777051551795225365261973441689613522963364505086244257553208159358072874990342179842669304684460886656578347620350015993499228332410673961701659846800664224751157188796002011888763676768729469895554525671374030396051708152644719691533799052669509666184628666017255129125998597389570058132053078180746988653512766397874639945414745974980829395648324872615632738045407215307205384234080356583809677541042689633575159693109257396221223748105173931166664968698240523606088845010571900602738321778652582122303748885119522096777946213886381000748119135192972595598666196420253522043262214113902396863457119232655898390187260465091210322429756354641692332333031624899453813715511110504049335177751337450316786530189836275231151828419936011112962742115959611349044214050822351066172099026683805136561588737525090872034434689233029945242412787109877162793349491957901361586480902891281642350734437759663193440353777233471143683393164437203304265053313135357396985846344055867351454355790920728197934522996471480172989095742174447323741777432426840424739533711525815114981367056658977459023802669415456571661030330783241381397385080733968901543793604343801060427411462150548495384485840981881650266979733264618054509808941012527122930703234085689620964632794809160630948009368951350437787422071850265411322990341968583353630496584239644877983910252624262810725704062975001112953355684961475688580813519374384822563521403043327846162671877733741702642161965540862406142358352207775852988925859052934956563436229779937217063086678186385775930691937403847105332246286549834549650026197415262717596053698545164966363257511107981175590964021105167277571291069830494277230943554503365141821618619422683171754702124672109819488690178292207847800533055242895840030488796497478157522482494779984533726698024817774369972336757215032392526961893143195555198701795372537493965261201160040436015619378352720833791432891359462573719828445624405357052455958572299546270337060991672300222396049905369755751808352080218235780874983564245446664804218147983414614318358638655354206793584846722393974203171926242717606419847416193293389406765532155438961502574723206610961578890740777034721943263291472784227721988734355767116153642089316348897353445209786035052503878020802130855230808053706210716735720871908951498699032980486331253177931911383570645571718938014226577100978837367445661886956494164272856498431622443045552614766338034500746433060809756214015676607114598364200530910699900312731492381755201647094370480360979169524228994129639779027417898272507743176191115190979159052859436149662981587969316911982168144417284865141917249531001863178654603940869736979400619802902310918057432843439994149804006781301092373339282923284630963269957357848168751790717510359023548431331946340422577699681279110054142427995411959612335638450990225015981125212143646731776750487312354522717273309629250675888256243462494579911260278467440031100905203276494325730914980536789683526283820978347691822271026795197555069810056878172617280110191932395166857291284361021453392294960596340149935333127119388091990553192540842812688990543139410707397763344292724814362989429747956228838449343885993790392399790908026639002117992943559166635519090839925879778773424662506118574133073907659940219889728409436998492082299392887567456066806760972245640427660503201036648202150629448972110101259381970880131885886177646008190628506145118161634432025199996702725455323025260907707765046305048412467549827801497116550579404460608326932808160632275049624725830430110423086301177897369298750623061101216412797389937817552345370598136530630708766484750509232868582369094157453249585652996145279006315274322266441458212551727698139368828822263633255600814206276093552428845646874819719580409834492205369060969527927436276067069407463374828359621123694185470486281396067240638375903821438966374200448104336545867863966378008792711989913784452753326872027941231719207678597102763635664780245863559485103476560690873447733536083779185305168101753349774787797276048615049460094987520415379445417295606275455016228693901837950656344870644754442128249578127333438598138897758758683227077987121299867405384487736082768004315789789597668676290663039644580953665065974954607898264674645773274584616791492102359346246470738920441767847037945669644964254714663660331737678117232360346410203784479859675003742102829823964540907429156938918390568609906007009796243547857734851364338764991802562488851735341647453928010290540788136202451949556732889313376245361355151792706164590870550403406847770289481768237292148693056206388096248985182176386954624848717154826232772678574150304354668590998044476455916791114339058172904351353230536817488073807463489808343360323651396355531910075148225637937774728732404204817739243325737901525927984573152748852306456495313405387717098454602254943528088040245257727756523356657361468109748234249581257717203335064757501808186681452351545467979622112485549041114097872695778079729890583099710515377323015245084932288787737276304377351338282426461707760704266139330355874298432571716217827701558196773176156658429114721167023414872092141359912306677408772378134029661399005061835290083256251780608756217832980829692663530974263109622804744466587843129237582769619601375281289496127858281000844941651797760625775778796458392900395328618531109738596963629653619281959839741782979147898713636335106950737165577014883284073890900869952104694392780353732683563921731247726244954789430041116868836431226438159693482291090791073168157350219144645148297562666521073210624678904306440324411540637678981347161288954741282455662638199512596269304862460991554115700044370768260379432979939072846973014921840011600898474393865572654913973670071403216084666750345006132876605659813334591965335324043542257850016656030898574330705605725214284350348914330132105078480166661236293296993759754752960298649808571259959859973534148330348905146282157282749861404390318357798908137806725005566163972102869639264322903708260970947481128094594433568173653382495585294034071771408299903587032959006001312067729160328404690641399103050439822051016852317983192987361516263232487754220516834885531563635919231091412890350846490224967493827538337250401655778897754041496014847089820921973475252688419548013176399054752123441249824531879026851470280507887875274623549388206204236199540379996708749478722044436134732164982989077675152535446573650734187650484357866698816110946679443966149777863291138340279529923606373107183582266132941895767915997431113919379076886115777045645024453154298159457220537621062090529391766415477122385114822108118752342909137504809585684752765218100102854336208436714563193223509677349451001031452865311321237782598437689947709736597643362026104658669947208455266611168109404982628825160389731521582268435465835623836361351768224125842653495774558803845856367019512843011377078734107010040917090554465459465064490618130078157641619768773058497387539178150470915873331401044736798458927391083241386009529394467990047598962446602865484109182651219819190183358727650536682456438995088555038648481407479164864882717525655409642697757457059877960927761931604261194981489610072492633436529763707450867265546939449404003984690051125681214134109825551365638280712527055935853738967735035911339183741501469682113608074353233287749021297331581354372813135082626997277970234222359748008495146581290747755356088142802830279272313442088963563551822010861038678939004392504475098069059508512955738341393487667240762980098983417837615660705729869591858606569508883333258339825472092462267382711165133235155316016613022509945266366876631220812630152379812237379882681970133742350670473475204903425858640561940623143112232504032274410866617361879065098144627620060228461081180930239981053090696427307744901223149827375675458936875660208562754135413288151265392352267791954276311917345163707197397719130529434593427648809798987615907664756158957029993791500457854496584578401858171074095367114811357966450396366213628666971962844379844413738773988800705540607573997607345918873382373003036363410203219607479668174396279852638612908325894243971307662124961161853607550020280339872099409873597746323661981041070286393323099838729613870097376185549260640739144908630776794056274269120998679472857716288970107808151099703904693259569292667994767152893382566021555060905589567304139185015842713065436474134148812269872822976713003674952631427617351202942224575048157956762096897390560771088253582562221302802696428538795741441070185445473783481855402033781458219422226802763519889070968150735484129300695131876858029704822270214472175072955321500896750382053813125942642512743879662066170699824262235851699226854950674786655432550792486680788789948788891015237088995867695713447549940906898640709702879593159589720050201653847578293523209361618609294539053722972373572355463624326470779461612422835591057628333135479595807624996824876662575176906842671577847154018771928416240525337019809729262912177241923198074934768647115430971671100690318134216461940902413917775549702450997079070988115657771372369697988205360807115922656554280483458117705238217040338613884045330850043332365587399819977545861552283143791262184241704064254900152379969634164385413976048295624657437174748673036664045985767492562616284703050748845083659607490601610009913890517823879080414347331486124613942073812464481130372884210396654146041638838292470143143024176195516041705251533581676911389262458364310056794571245191264384542992232835722772509389952854781881134410981416688409095554848803915470342017967703869283429610683721796784104484003055992330924550731670860587842164931798773812773935148322447052909551967946309447203971854946609139165009484273018395150427844975885657386814673964004637502634670512123257683111063999415763702756009178297022674861046863071811451493599996495267479025512195656759467943930952562358416935145295166656042038761991539845048503680587736638490824859637085847365445195728222491895654673509024039267548926674946060102481594908898025960387214605679007184745674025185939266722895259127384827453567119946595844816587777874388016731905876275013802690488756161799038074237544246937148775736424541347425595288832930044677445766263961601670648622724093050417620157694002432858832437471477110435404617045434833439393632578496613966768376168639772565909220598104685410037335682728679036174572799529874049538535189086267873012930423020308406717828398006193552025191053570106496613726296416546091238928927769522038114536834563865427599400030841019925113708862377115945351001622518947121915201576451533266305727623702488100792613772481338664547288420809565687340255616793925035053886380654095298622229550416152124926109283389504581419253334907738037509931133009843603675274276227414492331790339588998860848658051693115716717265774982961060734125346986910955377393281843488028202790511299098626806879374286696574698116594440221471975447073790161147366512800952379462514630952161514562238324389325588451515887375711374010418484400336114481740457938907207710590476294278640145531215149138892657733806938733621780238095285562509990688048462600599271433994848722977190984024896685615965827325147253950578988809640941030175347676435564976997643959963961880246965677978178487242824949588983254715278900199167589733602538784527218077397828309104258321692632830586286819407419037369445069452028883685148169848994176926792761194071454798346208715239128711234781372300709646365043977643292489575857477337961307958920579197242726347323360658923507280671774387571553882958171619639196903510044766690147738862703572458790368832866088379799848196894978531837196141504650705461627925566643705568458206657413917443975994978761870133954237326076631864889870386892552966078494147385348006557671408188481349679126785737486517207263345738808511147068106186030606191997056119032009693723730238679968260754467138015053127053769866504071223179461608715253060001386242455971782844195050859017999843147042470183284121831889009899204908707213484097074830725834358884490950687002115476803979886019021222639910963952047313163111387208169822786961618658925384703323030385294846819076196771456404634987570543821028885168864804707690614268113728034002367209140422060270768349142159715534882946895748880900191506549276482143098202909604581904115086558448847780010560435709152331403830423433690254815626814345710394837273321818777503841249822772552558514519957482739227529113618137050133301900134505236909523377829326898573921932619757121258169183748847042286194370647065742294238366987626229041483095350503915561136878618890160884280889670655758197354921095944599706871432316484783240586249940153229466165176822839326284048606494447089739689143476056732624853031569571302268395607433258576673321077065215394260113559798982196817136636533805542831670409720814806198832140177344328522833340963510594684760998463108061852408832631593644396588613522206176122753059407775274020947784124919489580202691572966465810118967688042594335901915858371635829608589115432812430467566813671027831386082238196329864472928559368907675946023597130253995322553067427178365400313763026123683615515217881487263186047699853005085385151145254736168821764620137925926180705056073786807974134639148612599292672030163818340257808195723714513072695810061305374685636692089252128886458498015241134310378639264660930446519874845516338438686822355528328936435839455291149230458072497326875809560740730123201580289465358413007117557651179219214267300632670274504351315088369123855633657321050497986893644048279050007742338271236774921074111373494200154568279676234649337136958426626788913824914582819378230898870037794986256569106711111644150500008054636145903691011041615506353428831565579879737464777280404042742291531832394054674744435044647906359739552190886458880501838325871108144725947476588792791475567572597245537153293492972107837975036403310448253802893411979897883337740801811534380103958343714382442141754105603227256467561068174175533177839804320657001581661056950383674815754225398748704515302899308268187379431751879684394723276933056188132250029942512488260037440886635715803963966078094320016216737101465717152714444970157340901366168449950768125553872598586374661012775506771940458844805752305645592597163880792605997312148515102433458092350929518041244101597562266894969617521976514284524877716293974163995779785823595902009109267058324612355196685984656213894993458824608742668216954409978518642651498276785455207299653163734718228135201485120353394767080307598250983375132655189451570620627748186184415334797152231376678835320317380478191595669239746145362342248953121572951244536192107995972973086792783241142351426746107439334973677328980148543203854619962739511428397056104141163161136340079157520006860077675838286356083075653129580186520340541161701785895671634515609223064052747178359187246363072669586375212694826393711721114531762926788790153231706410975865124414312354695693531966200697371657547522076543089576657159648576545662405605291634148056851185222118548147806779952632606695388595544760201917506425447060789211544564214205316051636868569797183177844669767556050881295537092276578520778081563287163436618647566716832489499520638839089832634506410407159885846556065693530157868079284670279175017114009623069667370442874406067418397362399479719159304197630781861518829926263930866185396155125066717094423276597723721990437472665743805546985349941226845690669144066756741852465285976474518441045447219294699873589679483119979017679516482553632043755119162535830188763889884064216378479268981284012950457527719384396582911274085116823881218197192520123608372891087894812223417786019776396328042864814513909703634114156759664664692054877313443071235388036241653868766093015706936495077791917321151009573278769290339531324033102756318760589216461450413794542542123532771594373681622679508511706290433229433540248724789135551833381923941827588082067792255443344947005997833036522588655370765285056179783086589855558945038332063624362030829588913052514258206234006757813648566231454339942419956906077255720940608416983486214666093209759676656583386810324558536607176544892490632577766719269439157597048984702325244048246690510727390476256221210245988325152393920744426280152560669398845595006935175423327813664355189870037606702179767083823337585654548284947183526865131798723759323250641463706739443427890597334595987801241337328496310302971651617403492113022346284778861553627576778147287472149049650510857575019666672405040927635715926712965992964837618413026278079457994376284069831952666445041223608507847260084276639095644153551640138590641944006490603377156486473731220941625110865445478398111161645413122384583662256703417959706930641250918622054248995036906418732472533403217264632989927312465876368316578093504986453487809781314480962803312062722466196917083081139384294312694304104114426144246446019501044571233294463946466538857914467158094982667122770942086063684131893404019652033224403456500182513166930554666400503489203867459802129467863192541458921563171553684041787252299123649788594894382525594098724634651188006050998762343564142372925487350439928009652013763361536883683630081009915443325010922806555991605337737380216982215537691686605129719874122674957746983714276260298272456343421957309413916121714572471333859684298196502682234549091128377127804034237740175218175436483021943320873983321805889098487593259407957300451798233525786249203607599141454234373455560827543005419099143247675099119095278229524419176108939074747895811576584963001627450395805321194538791029124880225726325497594255568410293399292258002376677703791681910060530641728781373762351339267609232437960799373951060086975508226758864022786384764486870946831327715722982958285681141153048284756574974282317867660061980021470741976164065205311410049162390114384479311657600139210622693316456575415122327084216848186849063703705536773144595008021211464666909512918988396092829485145067429360459010742484769880637087595572403235708228779493063693945937358779392133429373861066226597371873429812253048131004360831596084830418154033670753932602997632816909080854980082021058424482738422584144200983162739529362890160450969019865784207547745536581711979669509463013670253577732592945373944940861351883892390649955554089239296338227756006849993882816453355579549108684136257488531336260961580900837209804337854791520153919482111644418674508901382391775948587797876380154728428871186005217017307058017014322852608523674619779663016961950202093455063775584412193707268710753755548579001498691992344742497197189352505390981991179962154241583503970410308352899567471605593975528507288354655782090733727909187309912745281083745179270745052381291401200249807977099085395699744116290853567802056767650802903714876484708854485586422205309861448031302353411739960079302037996570743466161880494859668413215276656750931295608796009932002157275018277794638982104839032743539292192320131828177436422625886884756653465985925601531295233001967832743537529856318214527495915540799481846179835504154373435386315794290331834514127544001744849913609266354274264388266285159057260856820552447969864808701637926624780157111172964026548247434486927775665008708915538162745947220240010253173597146569926089065654558662758668025812243300657053352497225552108557995064900486789033035837967503125453760548195179393688534610528423973226790228362051578416396681225575173564031359546025393887363870489661200362831810869690387741736258333606569980203693452540963088607873506322286512491901275906746676976580630155877097113436001856338118078727881605503348379956306211657722474497464784897568771171562909434434615201883655996925322644452814280408438456837284509192851470049084550283955166487935510010425412325580849378037187384411569293466960177502297289277844409114326433524489516605848499513637960635030182235906782136768174661261042196969520339723279766086517899243374772776346295483084271590315764699103478970267885274583068690845622972555202514748137736582430142210812668810730559608516777006237859406430257125037101465659320752541513636825331926873291928113995786979668266937356315503790646807150887977134866432510954505826762161707598613711077967191974240994568803011394959893314179970245629619915643544690302313420804774039642787809130668735848198889309317283540510009686840886788124443576881366532321172225904883380417024348225043850161862321377195934268591244800399877120101218269679171126533705568064804287142174479455209954719895708467156388977105723875910455500691476701059141458148703017545695180229605729897386426159478840221484749957328220018195019458284495839806856928616383877553103838564650889314996953825669057549093880663343475153053916933224909316177082175701584178185923539726288114815258987805060269458434852497838034613159251161825434655105423861532686504484976455510953008503024633584791980208949906249456391660674560957133993475361517847760216958724470961465933120333723917042914749059500401750822979251113141394892448886475715829144134480194641840782358249358438844229959473441120789722195851128958522144724641480400960597907703498314490202218859574685211411853152176393796410396731964360393120314707668196472288407637727096100992300075124377635097316835065929809507083646122824959251862248031175847393190577010118381437210380048881349360077863843775013593200264824427975721166454543681268919023276611391415834347397393484255848458525576617991062027014322304947349873515905596059501511474812408218041897906724380417964099773047088285569806299469346812339534215513947242102520440935405453249478394428650966974716252498209529053731858578949737032162091553429813148089907069997734263091759429419757310202289865676081276481800157683022815413108053068223164516330428321976681191265490448126713017954132577889675261403804424873559923616018007599165216233981927939967383082453698765053100646286700555102814190532704097358085564002107509324603376991778550798891918053304797184127776755687959399342626330948015058950549792735747034243240097879437477318422881299799567664444454763561562530602411898686577901335802108804915692008069954725136949578139040334020223970039899331210276438648272761237852714481259474324001624120193385445722300525777101450595312016424855627810559513170638173177274845662568938702418021942597030386939593057265474677782796944710039530750437930093063912962664900124676239327101387404270542553302028430567612113109113024966440401238538656386306587639863713214930125290396873956146991852518328092411250618860340404011081929985637562717575176953522306250142221197852595392268648405654390820018373317209289799373351282337902890328976744589197089926281118816386283281191964724173012121401656588050283389043285495727654719436036761425108759611169249448850675046910239891785435074871786267206497694188836696303934467564915231875362085326211712350998577743100891813674811620194240639681547526121035141431183914477881216145439595727113532345778692610283208393102494275804677367470175851080435012063788621721713889170338067903762644845114620106560330854115842542542775823315198530285341718154892912008441716419625419840641986995574535793478872785980814051561502287146812164869919979928125665730370771224437011922803121132976858501730219985306526434786641472848783536422602322522634836976232444080090197319044179087669105871756824447880026335652805265630883377150950634798445653736380548998883943878217455006772181835124000616278391252775018140336147091089096874141458440348524501378026094052524407249801122139223419742814294040337167728758438436930152658185367011651838640434487238104586150921841769152467836343477466766491007991886782413838546741808896934595704099195444813516939150204435855848684772286302234744326664192391358083009526867755569870299717350708333298939979204609792352997249344486065519711693924413998210072509116638401690804712652071826386698490663501781911000388322121133908122648748008887931436617716003716066052934262397078864944171855798991108275673103792710401258872762272726526657868536055017951143896574442353838118791356862070966186246365825636118124591123367989644036343525292728047946266524336993242216475724494259189146643078962099247826384530168063707071642342160698296303722449770520120750826865570436170541590049073687462146754468532433555745638058617469326577954253230620117946989374647459918043841913947954083329659090625564182703274606670528968358520196756193114575165602124613647866728385471828936564394659412771957295482540892333814466366938694783799197938195676597752957048436697793137781799095511976489915352910366132893030663730673046400273605203875047241271225926233226639089309292777813036299414572524193522446762665422468039135618097839083908809834320005614245767946293873162581589798387273429704764643253096444310787432018335482217647925348483407882222821844744927848118820974927651559752217082805250159239602844634108960401400396289299077445621894506976011799954222998478757744804574639037740548423145871173253529896804411137254403513899974188759646431497021281121892769062631403586587267103493145805052203869886974153415298296018843720584280669150204055013466658507332033275888484369999897242952612224327921119829392701090513829504885635794563652242630213056168344585720391470157865783676806972496102200340173660587536166976355078144276788025022353136718143416134336935855781960845704928633870906402644885701314335822611447646969325283981880540773811047807941558279884768554930828399746322885117034123330867176694213886401678257743055762574807391114379926645211043543503782589603208239674397775236867497382643098408273758522671003113976010024291504661248282233052767029705004620261912611022315486611565390735981582567051166245107686481534078466557418095631144719342348759111292524646152956223214979826451829328494602301661564579377250204882181599028402433961077921894669985604712694703981809180333495674402200944569657069467748509752283560976002669644743102992289488789986259480227367963359484243091375193349322500313139838284637748533006625262925383215033580314620335907760144615347416656383611224271908734205850487320903060668953010853939903681466155802302008474496249150572998448232263892136415442990454210908811581344564628947018712513391751978260535425338556801508881125822001199824406094255436165101414205649253745408928825212553382673887871221620123375375373502641372269990881254850624802735835837906041476990978212894384258015739417058124120961880577391719204047771607684246799807656807351932328717184076266904552929364680033213397377592100457832578026724398038643031735286390969255171949703050646265493785720603742360040444049686813986123160143719544599300643165131242136428093666334259512500345220221916932171857090724821313647828226336411697116589930813186727553925336595072443051031326825122974206920780290465714283765797888109996036555295676936973851049197227763474180788373324380481206989667614895870882959762687555051125619518204789639940285766288020052582115463122513509398139218133439825532346899210038334906102153755164455924641166130478581093346086219768112608489100757754179380212819570037488146494900918914594873981512092826121785311659313983869228653750451819182181697143553840738501205036279588700146027108292595329992059142489515471340877914948340225311975891736386128860137168554291208833340233118319668201202304296108309276393525027678618095478688014082662829666353275141029242933248345727173971271300112717191908952249638757005507470641514341718421005143208892132030777062644813925051521054509103614156786949389904375807646978151886688813185892778985512621489421178843122983558797636680682944568299254561809677264950830597837439572334848028934221273743664742799500517430290042602319830662685973327195025287168330625712861907101107120712905503610617909768261831762887019645264928572269377723572147199720330308594360936568783437086061136432948229004625250791732873518588995901389758456588346295655662353610137217301602529121020775066007093189599075603612501315701484136039600935971815810323910586118264462209494269698400013267907156448802833682727967690798240297564808724927755825878717936375831277463324932528644073896362102735797825005137992296260485035958708562936587496482848718383133506436518792433489099277347005105733845248877876929785984237737720555848035787165855079537406143472104588093313295571027798998142998193456144269630797764582108202815484314821515994018169685129906521466788348990008944858124555991440916742451947334748923424438077455966637212089292755260077051341851490204602522389336104472559919553372524182533782903757711155646958641352877422247087469830868390628940823673838600872938999326506175220673240442555788356091530826054599780388202798454912420157679266109375526187404723102923166591726322769126278507905490270785984698750355226403090772525525999591214394803229193465696572459943393262247524872292058954780064726805799134973845588349231469201293038989491208879959651646657663115461435100510493077320457274640085498670769683501327654771673223167214079040649499703226935492259561601259153542091026199680997042696475904532674745264048816138751121408103298126901469876324336369239223732866912565331630650798584970209766505694138091056241958187180746517764805741235002562837086932900850275107333829810724146741924388640917493310811210468169991212181651655147218325804338965995701005856454336857620611000041783141258913746728727275630886317233842045277298564549191459376415300064668141143622753648194505315499693362410858303768433534377317378757344397438331238715912645316250879237947347922715268906717107465207083521124873904111168671561129363121508484757629081026743764585381517378573203523373954039828025866075818534008402711799436063078894992032508608102132886846326519702845078225934917571583683708435056205686889110737843828688723012779798966153208833541460201006732825688543345631505568751515475938371332463146064277532023720679702560496480067588937785978792482368993393918504867252332340545414258357601275568751073540293031561074337570136581746540294776144884072316092209317692617109535899373141597041900109530460653609358614873434198219246775813636735138607507393810279728603663944135955352214318326079871363990778818437294495976200429728660664007724346062380725991757679399664600551058555171901760492903168478009056932675675291075177962897358191964382254694861231470243221875619147057565364423260121804684825681259911147509217058232257893434071767011063717013577308117858569684972864650767351096013071002749115379005832461638472298195890485420001001155422133182100290465288940692570021499420171979203906143841425430249948056503228527018126470499963479733759347665466926134452609754684999217503636599602096459611210425810003498732151647937373277202590155459948404374340519839252851466615219930514772286523331877283530351752675200608554289794547305958442634886706983823818487820409194197413881767849494293267873817634672922874825249468175467400807707259931401553085315433751079904232097822562880457880405249813477627050879811579741665719033443745013124264393191740597269875471590963788836302660148142650339126789857709584755074130579126027702647549170119378317879008003706043984888420791721592304005321827345587516317794085927989467457149259073116830297627916508704495983968400525036945633587165646209653601582161344594463786472628382354046761742449963609075665690874067442287395318457351824788668104250634133037773278481029756426509412057982713338502712958873682132247747817013286304228637545058219246657165475678587151228215357016883166000787409809627961661670387888593018105017834994632320421735245535701498819100807291290140527531895970823453837708464688082084834672956642268759975012686313335319119264529104453090094270054238993630660390399602584646971813724610705931590332240467540410580890705911086334654431751655241281064575104291370584227203720773714193096960168771696350788691553290853917043707609488328319211016180918181478162161654806574708235046743955048185189069788283636666722350113829525009036429793954094166832991359360891801491387329992237594872604619458922331508925697841041007825382934708748862304865506653863253148983521750352166858634533387181337972600047761366166694460632754096060211987966287794920875896214809280727947553993080803992568739705607761734736761593558232919113015142565220472345477948900907862173757716042299121216853527106152174273430421343023598365897513768470735652337953099381413051595202819746862492782717551883517220672697894476577496808226861040317706636941702569194975218175488605324302132581173877905487860193121389508648235655161194090010252569018719665065701833439938748767624906740367141007421303202390735650876938903967369597325556058251780119416086951251662265097674733404811679802739750075247973129657867274072332180270011797495537119030007689153431382090375308792206499597395006793935731549688670752564621222158088519946021568194865024623915849807633953385123685647122701204605736853500891159645330135864581439136085085391717854476852150105616528230578015962931116654309177701514597216937006229864488834194925846636087505959945214772777566194958914507285133077725895478961442863264459827225845682359904935070540666490123563524570889036968207842679065333524980777901078279866759685529829957311521618693921552837154051049151764896563949318936053692953833802753766567285575477297550345772377904459502042206497118025079066758274023092681416710594203823094006387633212426377149354465579769322718343816144441187011735065585985421142304330222519774221747079990933834595490780085530887538491722424875912898849611375245306470268344497505631901495624596087614441954800441799215647067724383485053997678064512912530925396132086254184650943657918427243573447040254402005933688557867080023626124814089647296508350811531183990071895057637922807829045448348101707446820936976699097083904277294429199790905998885459250920853108124292199546799188620447020641069899349298998105960159158853877020621896676314056759188898128510918610074756421711686398909487672198014415639377535868661632702831286402157648832474598646498198349435269223478688667797381522995258212502784538144472148370283749813935112688529390871689945344310133428473017782357200050705754159986022875850714979921271326841935870047190376148331950495430947016835612127908957669938322009376836600252241282387973197033212047646412651947237116114768935131332853927203711023304949666596829073940471856218646112438837588028695798831776808840331785373296689299530272198337428178716886327906226070524556834836797062373039728585267516574813226947274840392086927709695738177533292022877436434652027752497857432731988107739569081540132430764507801267677715703581658786642123118615290812820166288168407277865426339487247785467208294333237121135681870819865150474482222743801947310714630529265965578663408532912591052207685196990914697919736922174345540496028688971707895126473079922301469440598863699608869866704943819717368135324020974516142979124052945501549407124965664685904203766995050938010187263477829180543152025124445991964913492268119054857776650249794514239211131150992389434012978422612003108609929409294631231585888606088370010677059752693663738688663157521285291973365235068778604070685007202005838834160681511124610333644749989316967448063098700895392808992050909371213241125003267973620823377163320617783351970030428112479736110852962417367777796344296875136375303642937437662182423201149549144279561214027833680524994232098712961554086865961246025195276418319420673617228064796285727251483038916653378274610623683662599334417897948774966518845631822755163688135400882900555716763505961820631869078111182535418893083742106092146645633370890476956689851656822010209993657866669228330169781822801764012617692034019956279065595219570584162430010794169740532176251494685469273606291793336887144306397916129448198553190421791838302343342003023324494022748927972808206672969908232185718454351106766079814932919490590725878479644465379427607726018876956930637926136770982777813744072189263010524413490415751692857109033563436906439388235095291660595099327936461778207203312696961121189963051036595658854479344655885937227228975229137439554138974964949802994773368672898668950292982330283020271991960153248323714136093965660527962524118619818327779775005028609093204139221607498750387479827790183152333183525220086961401002644965824477729920432977566096775110415657852340191558357891508165097038064506518068341105886396225121619837215441945433811452715911302340333731822757007140526031673705786750147077776645824641382331412753834107716353523549672295949028199941371839666820227556465590656283572703588374865266353973871996612955431388606677102028747825120057424038157162906792030381649376038923448016586989469320698802993298864647539850933556508714385289452071533977876293542449260966625375829105930490450673042444611329663235591234286642049285837330784806337031358688181474906696432165058446171609026779653373540721599668984720214669906666264338039911997201171142851994967026433450253505935184673832459962776104036744460428424396102285607993170786351118160985525142516295928786604350195890274623560392137079227959804835408936174762227422254398455026605340680897805768240194589639768815639316284831383038362748075684045524733286477079987111460089717976120201583916127295045251007320442029104389291758516801035083670836904122322948403754805408764477240430995683318052499932884275795926599034999984228284590413429415045581754178791135530754906838147000404850499651285515711995810877013418929786972986486582977957672202752230942609787206984756910799871372815704962639116735748842737947334952263191191805863563751417936797503935416171118888654734762042228227191443194242905452388627764174841724747269237078415919390789512486567458590790391496642740855915083832079822719485597645934442127381319230610602031940430670731837122368797643744148364563874895149762216949901452417654026319743646576894399287232670567626427250581211358265764559486790334098876158641626941396910837985613727348059326749255957370070710237195519573731771517291762186376524071424637347035572904130580782131704339307943966047247238979300801680211926896694131120543894218697149812011026492266326381554656784951489297715006701556169212143923106482500644706832016595281533864082460182611631503696206160496884001933854861452933236738561737603407708153770020829297211983948444637191067243415376683108954744930980861309403057653947621694592142890442734774028439214066526126719054030303413030114516605128450481066181376926551921555388060135902840115868485206557101952159334127695173747833689448662915675925325219522319390847897005291048609290222810255602484497574291859240072153562350178714162158398433277479408566179518606519163951264310851784721242483383420630304714549408941091468852255487061815974946105912869751507477972805995640446735458865311195626234159741702164790628573722880696775069572836126997940680034745088978422626308860910811952948617103093533291878750578192449688489888582102858351946601267303958166189680345053796472149934390492567923935620349255928717007749997598406233148547732195619473227464229730369544744891526059333943977779074350659965973503833725074602199093536527200937964332781882753350518267349416324305857707876601392362332445764038564729984696586908205423155013889343526123997279776553838083017372298595259341266170209191802263358861902727918603814361916275051092047630385854197068530466020555522247872034650672966818118070930909472394198969414810949206382631345769127094600779300909790856828795472193979476119402118988639745176447178119868204035337441757909428645081524720255295831873273090049169450621220415750514976653787559746838543459985609898203997015799092067532339947302891891640436449083013212102285958128028384860366105722049067767617322306010151483345332852824140385753776462289435269817144446325212637638542152728830100973274526351885328684334780250120955908134819898294976564311284681578545556503258972634064010468111629738333079776676248531654281124137424397826740645818543641469227643299457871611952305579591222800824379172298604812585729439594279451212150490075371658236497669706788859478408371006806215794071152286477177738348572788534420733882391629327218175418540327996978181573657156481876735890490399539789473521546220396116828607497902862363442647157720065287884145117116734157499148702305762672065104715163336566798566797120118656655344376931231930234112574376127086190195041415158682278072687229920532587436026602212085117901775848170556520608699213833285422039371199752165185035184670491118781520332146317393630232718158100625099005814338703124807463905504527564858603442303933110360905038929635427560129315758559166773919909024194796931197270744948723470942970349486333152142779894349354571351357795093118106529855119928081661993348690286900155757746755381648891147801448781145884193006423025173934411455593450415382239140343830618323125331723463389939397076152214967131926996843349030863570800285549117365025443347541078572244197628805678099807849865139569547661998984954802335611588934141989339958196829364838727407664093431245778498523475493467807749713877149884199118350734513438070028134877572121015157441783838441211063208633459162938455240025314973863628343495620806911572032599689046077228480187655478635244304448262549789965776226113226943245135932033396026808781310953872913979887570381917911084612169453836928769633864810642395125389597282041789135189302656497912502054573042409728648972871693339971591601247199491240375670845272306329687152469642545236793891235766304692855707684571328956399673832042463008661702047025881910873552596733394629561861981444215591121946941359757766014959706167903136214822285197748631911327265890501508010694971221864581599320320579311425556979030806694490587553106244362290832755618128015838398680031648553827288495097205937520264631620671860225375319020312468335466303984090921027638251517181049734993075837745293181433270046142881450368233748723304648207962269779581160948151022555017062255533180037129929581064193704170703194818579111589400983294662564684028256530734309739821225014411865904714462906988587434810241960374722684792310793782213783468033199903239632582736269910908281581216063839712626159493343509556711315890088486097407650326781294603016821830613049875378595727244907232390850937325343933397524202124031433418387448399207846202795187963088251506939332258836913870962582753287009730782335507967817041157906775059712105136813027351994525858483038621518172012177989006339789951556886376156549306883022701945566410093653393639085879566199325882010518276325594317612187954993720081895918763735794738038614094234371562739479640897900967731955614736427552206959970315378464221722986093099697759050705847031282220354450286266561944490007798582589204813443445112339269126443612693066183077094620970842729141319207451671483827511170018112497718332123078728922496590645429634411838211437014194336179919395910624767611644957002859190117067188062098726119678117926796124557433204191589047765213545215626249188862692562265995943297478323468778667731513526543556790978005123720085163893141144445587332022178101213635059771085111424319383811554815565982698499163919880926232357675213693591175082147976600135854467432574780835790141688636017120314458375043363551665002750220143880112364892608026300066622633164623414011732108099693809066209102592998651820302330894572256955801066827132112996048610152275331088341597517982473777371928262878973531413464670640734174596258122826272256564329833253187665073455351866291851500976432770909982649231788101878561606017399838827558713892257350903764252129207334252371065805603809449597494623722705301766410247978810482221236939204423332865824998359162431515110730559112725235636373579036944265795886571354789270437146755681544988406182783342501940141366610857615844911335262613224778109963514254051989395337428776808734457821776066470555405211887862364961438788234088729731941874543755898305063027436553895801801363978473327552988845057406630010497891124649380730117902280381873712146451156837149456317494447145637364818981681989001757396915566205018958157468554645186370485484040613011904224266116830482517719698304322643454994052660846239122424713412210949702586868146910522902202516589660261510280971727665572629531614275894753878009783629506826303138154889166845575375662356154613709527624044497403427147379452833135991859707659197162099737285830736076172697628363586475246768428086820519405065900607495532256753850673520973027823867493098869244263767237858112280359403547926862213680087302883803363188310632989954416208703276284197213362200523120418228106239352649448218675001016470089535420050352256800192126553722633293547643379702321826334508244543647385675787357977345382713860638875326916763426421908377947020967826410822331508056896644593089477501572527325420869810738651825066776574269036666341864085435418797589797726490503279316234480037313570025511226946493505323626816258240660105188670650030917426443110453503035594107574649626199067791969004042451477503245825877972309829775092225097282529191366891796737398174582918929363550945605085363822007447123184495857380055436844323508720221159941431513804998468771959186249444478635696202685014782215937370442605681455789191195088393898302889316719854752229523317521022365243887382516153913743075905425550023049600330264726524979265575527593370661667362621120896468991493448040646324586306700573326068384811358180806661226051544159658809040220787903247105889972153790988650938289043984395340503210336843369586686425579936782091807230584900694877499061429134015554540254083560851267586954117296992410091219280159553871017089335016187685508021167125369701855728228348640612232867841035319344146417089625377569260255678080747933010494273661839990850012823830525629736646537130359255293688709182435138776703556213576513359041150203360484553842764943761566767031571813823960217827496921238444286358974181564168471486435106925777371018002268986519733126164900188935357713479574952896574303142923470156985256481118584985460259129551835490628606021237145551652618468840173744609007491780046006639592172118013039804443717829477721231300757712751363477294829010971626377490331237903184339979421156942099446202006003594263312477293012026494407063512151221517145859900949665463138055224313592739999873994257980680768409015062507760814112786646413285164025630407884855105930425535692609184426355779829793842077439901013408831522943029683536332506103863058040042797282587558037167581806682375772562393306456273744124524780486290209827395882279481473577478734362630218856713088903847256274768842717596740554889211715583351008672047980109629761326566418814945145876239556152685684138494644702194250644481239176662053385118499746123096283750906605805213593005338093216317144092477567137814459501992769693308520361309012587574958605581086844212911598265837519153830015683218289769424747613279028268549733205092990582540131413642312435206811288803752127931142263419830025606475783412877572121298038914845548620445557246705345911096110249931849389563507829879621685137382603560993816795050940606157646071474498368451524013682479142525110260402190933077224568192883363499204305860836002906581155092088573916217390955314719405579060189237249448675657785464579639771561670047306839088619542209095792847739311278951431853264595309740241770251128965781581742671326901918401041619660900218369831209768405367320517006198930348955219939328276764469714841561006378846690932151239375230120822195615127407525271177677961005879877756482417171339060664531710219074354702943437308984595529540632745216624254325476263271173150790342477303662574435163467121928979181849294033168958113825852675929118109336219291833949549587004959160896010349883541689839693233512249188045834843711457556275824412615861517760456745560907408966452476027845455334190353007948301356039275849946069808304012957907672028084886713262297543111156978483647325595144382446164785414665759798060533496415606759082366975040864870141272918005559613917492291575512210235151094114791951937868131456702401923374583917751789288093238141155576810324840641400676560361522079933720823131461864465639394480531887828225988925308598519525037152030469276693468881635195546211228251513579643131571371676304478401919254766114986839861171940810552836422422875061759289558639686907796067190081886216967562842411537278124473323037118422356029250066410373825926206607113977314288534975202659437362910706308980498061430483694805593740212180014762493514187542885665994109985293743775514762344003049973988811196697032050161121366594535459709735081938334495139298275370926075385396298778581154387130004593332032100251759148946888296998901774319712525078391563774477710237273713955214645501064233859699217333663167215234886187386913797438260351520760549525539647653427751199462630081810276911370002238627501025642736210001542780846377812268015656088504485337393151106149850209250204747887379505903954188203937655406893859409351961529325129335551779489820982503157557718333369077280428070464747281631414774781658769144042003966777769569006229712439010415652823452611165108371135920519281915829915908885415573442687229558792496927652395606135575020905767894202582469991626151840493113208133816543904809375802141824407569763420023922563765673222696830423870526943382812196435760646167196183112860898639727712716087617903835083150995521638011332239103388374657663819810981320121852601024394365866896116184585260382404128654573919273846675641836370775513963820612792832798155927963290711009012823929775591308482086563847709567045222331964496289886948943630554256685903244093000102195383754905374902762228963036363951852606633191225544512260361576573631829096046248484517390137484927978885798112784545418208571853124658230630848549895690441029343029271188498346539454933864622703766987446953285008640059093670964697780062113222025211991749326373186858963642695828116387335837233853641187591630103446357171001390425680554477328190164184424329952162838213924807596833660408604940343782156902372122865357385419408059466442182482813544711030421245321375283615423858872457689549417586455206979619729488646080394007147620553093377513334399866046052223647851688697236143598373865877312579508887457256455304661009137898984024614172532877005495504208463821865735078615703756443325127540386193965745239479976849163939742130874076060850574897006588720654552816747574321741377506677292449735685498336297871819255602525393877032692115194545673322148271431139668294151714074898138054473652079643008666629721577795549456759536200196902112725485959588578347848689912362723954993165378258147677445105945469178287302113701090652875850699434005871492567675730056659334543268127832016194772647408350681788939124921399452486640314702055054960148395232901134591970888501402394344699858369253953891465389520681227063185278554322162498808503469550105494017280409770016800131787006307296697643591941624866004682202938601616382506989807871438220011676099041526778640947014069776003651354111742171000828534242600371282626498890251442396371048672194639896647385753192678236069838236763937520919932122194830577168681595095858350346172772692050681633172158941527671469458832604284019397228976665948050720587706899057785350129346563991239877112150266448673213152523016283740480610533782547238099989081094509780562403096584188374232087392512975384055226730506587696391880350872592836512136829633769948875888339932454388322032424066155488686503373283996735542315733516570860765905550438524717553159076058936110244581779654454071904681958033761129293063755137059026233091597381081644043681369132498381661365473725449090703717730770658639950840281055525195105879020141725603897553511910991411568513770073692901433137414278196752340006259079024750543783250351857621772297957336921119472009164182785708730648327715456544836135739390523076980566375439389393543535601835901701931888648257314116387347020886968084250140659443090377854720589332555924997600682463378195676011337821344040029443976549506811265211091991211015861841372413031189360168324866831308514287970928914244834128684910834150940184962149566756756735270113734860294576262894138710489522265544641410735383351433046902567346703174028890483580611916276493805703468804273993396931955817840402885368783129668663279726071164096006303200039749377103384861640255970536374189167344480612950346497824776547648081280718401454765549117639708623419277672595951115594031553141495511463838936053452203416846353245627073488099005709559177916446186812933222955943056199529642911944987395997436964195072155980685287714337040597593906495600057221447808828837882002439258943794636958383416701677666603501352032733701678368723272431549366779128583600615807819924406967367686905799169586702533552700215397669531160024295262868024753447131941733759600102702966865958373710160219878657586341007929594255912369441885250062614725932604521855196154155267866307430205351996603803282618173052439189581207274610201375872161921496042046969168055237957874930939924739247523050493537057426441625425624198837382595448580953399952433660770507547300514799891133582414958219050467230670143378437480625199916196574424182006094865944542429158169759260217739203825140173546190584689935138312796661887115162692816015612209071186844578990618542151520369323138773503576792589439602212292057969313532405348480709879708070554028799453573462969312519600595938770236101948699947173185639544788266382128824343511502764478705063929161511662222737740619324683414203633669561747545275281508563570307978837965128280847113696725822224651267467810462025906144800723014617328601605530466674430464520736975927730422675773272848131645311438746794098624630733535188754054256838024276964992929788920263503737778515089063892506020163229494078115882015379058088780227564781410619394120188428929346881113679672240183070209146213966433146998278380024942009599713151219689986592827963173263789745542632869212106929248980737292532846730961627656781166148344833127067296855801653449350843294594389228193796513326039033064768535892235905318653651373035280223936270192109121897348170048930908796264195615331391209939607853988028990639007770470131104964897797896614104989830111697601673118996864329036931823177292231213330856125110607376226651681155212513897212370270775282934590590933602090667576973079012524726128463961172781181954568667228201059966243204490087414897249030370230442451971120951660629471933894992260227683756290561826385768065698958867479785106490704698017178089009012608976624880544353707561355887866328727683220091679645735545036211718877400197636515875380324353305135909114279184273460811639657717213611169673954412645631880171332115980495861261261827077539967848787241972426402668435800327347449312961551786930470793322826211225742208874741023565939505695994092918429841625774666526311133282017764914733424219539811160813338626415890883930262417696498507133470415577163409963672980176450477056203284761451697365685030278377009791577353056642038163534962068486972223189930913178110337138791255758814836973114857753200618889578810457734492871057833539411035762489611944392773452461088608373214357288545789098141436353678721140570360021858041649644512037232468420889075269574923565341477779238695673652834523027037143334883974935104911837092138986546422435171153376743071885146675076857164674776687354345884152503097139124073004426690659198993855537502833286594732646555346233308479168711115584179957748615478963250099828497227151293825060944544576979215812774738888503701313011298148152329206580910465470404291953054213897158228799956425733115442563585522803944885618825631507403896007319826700475720990045312409231250558763937444737087535955618320323916406232164162932485581072700799579556092634939586977500606466216987533126351320752729338562469096071019211825513531362532157113250393724320932393906867656805270330242830249909296723075406384098644905073347758151784724045745049085069724540848565841192603884779586650132633542104896755906867735637264804312445582955805510151499489267930381050929265292644562779630228401649364047126532111519535347772942945031610100658952778937002147678442978817796674586734610995087272472313321343585226497781267567870763173331649654532171491581453788845668045350880728201991962187329550947860114284413734927613479656627425754926309640554209282436571917375637413356313851814652301817680362949789562223168642118107079380012760427421486184695799456771936494811596313856483937501587927326063517440445943733162209300604049079164841106686967581241898811190235120947224511617929039188771197182340670108552445993984233441747634900526331414684668048214537684135060566639482182023269179480123130854404874167127209934224985489077549159688653333588381189361032214762840871946543905621307372418796732626894267741206297134044387769323001098613085658663153824297749780340710106502425725922306809512819183440888220432287002578878246151174037298467485006718864661228780936265190197327454152561350081830790483875319176042389302013943290512359009455152383954854570425902137363039059198362180736439930829608210998381043105749009558791318375561336207459613307403264857348472921650795834566995689098719508988758863412815734996393027904570386500435014897102800948294058854059313245354412548051446294419154468624486223814088314292145733209527062231428471857286634106350208520977244912542554157615435523745204290244206616144301444467317254799295575576554650560270849408739033301194142573107666161042647713365391904767153348812563144987712238199591254646175970270671334045348066023418551649540092440656600554144419405001012911792286230644589458473341584304066128517844708677895796955331505147735171542337256809505047756207656606879601078712664960459164375288018987780438920964588623367967311650752954590348398054434976675418523189529532781627465623922885995015771385927731057446458274602419251306259652817253592997704691228426356897045784379634167236727469581248137459669343291206038755920407200351246288907040726766843910920472274881101084052800503857017853440690768222526120678462640014507922962500649355916538155854045460627059488543115478808975132119857436299809438335601598075305728717605293742959762001380847355822511558690905451384992022438654165330720945322280485165375558586424703255981376204483694545538662053884140650869156020216709845507816422877547051535112392794450287464727096850312622022244329837933767785770408408296180805743195087676124557567390374167869055611193380602847152317956439705654936607209283140423708874499915912903830996698911450791790815962993974322660749386949893729850104244774612453015263846948457081084207367713470249897993169864454990946603012841401150644124512800599134968657236610359932905147305650998134236993609585843414567565646156012747258342936921218508184067723668900916061385077383566986804935774632025827692685836352588632325674222184577822358746172582229406720041107244727124739651315959544713726749108212252374559453862477093508632289231536300631624117440435382044820692722639153056198140983784148781080821712256851388082189579284022855031495708536388472401979995510550315326161877060043196963651642961886132743996063902769188952610226774388231665134555606884601115826590615121080807263356882749823698949784943498571208615054965033648633954136807118916586963907415737147432276880512849740411266956243479233922180393486488838995077302253424797645120403173081988037906136528232761743117510053832725696462827724829579107572623340612002288549807560204790944407438805949966962461095416673632615851740102287032765191793757999629685074165198796962073210964406365598776495158004902752475581951184163597848152933829923525028768308033501848927818122400243053920636535471713036737519980949678629732271944359331194537864633945683876580529311068715762573222445877716213598678668668202671897606902114854889823076514006586434251049331972458714386928316282205958914232269176923393675673353900061935505146966101652598327440250660662262060156751733464941536023374242178708664882101296758930511744068072151232054027234792761156152514925169102435471636710359346586991866420154834986044030984271825085204830130466443954369017822768345991748331587571098283265247775839671570557990390933579503759208242215073336046269344590415423203423497988844899308994408221533152579594698704515194447836167507519047599135114954473996326041904582889980261241296952878221972335045746615907016215384739369661666560549451708575307012081113886526140461816707557191469054488677168098183371948874601102651010755854756328222311317930170270946491759225626074622320062344175616803449273007885359763220185099422629430814255654508046095946853827690459592548214482130497874399615451445775872417544278814307345064744746498143716879970945097823978338654267446614905544749078118138617139157222133019332983152622595606496376406556350697083549884885577467148524882709890486438053062444254419582635898168960201699973684482605069205343425313824746208098914611267337910605534076848860653428491630560168277878309221274197832519732545292586554415155297607910268946283396628124632228515909524323884040283538065820614010629397345528474515001573870337939940686330472562892202963005235869661768991288270880244500861377982473104275215499744690827050556251962810838028578585589724614569172337966613648509329569543732716186547261755971892051436884519088900598764029936455344538166472640157347792528304891772746340529770380567741099883280905735749919166262993344468711039119510051398233908709984848509353590429571672610086644619734656687255874694032192578387336573492476167243034049725416213843964124660716651893273348003241656646455969349789313818880227287496141319612626437028778598187603842914401355866197643975912714244098568877826012310998372253782145381704891118768792518584504598933546552531193829737977724857033017542546663295188964283086643506172293894120948632753436040141137978701943508354590843269470826279330200209510457974885697235306103907872337182493477829428500689841649222591439457888064009952713016762731236992089045683255836158865289036843594168222160101010703324260504030712109710332062949799432919560203814169022418092534595461076455341115491144541009235317493954075786617026171353631798573729720566759908813783179714005269575488057255439627732220245730606733888275714828901748090310731082275749418519500490428503437674823636341302123501218630697801076672746284764235476841972656176761001719515138636655687364681425116370921881631882450962166652875269217300925740706749633504265704541989887831528973330638691715745995187698519323369308464752674410655635548255673697619259914765704451262303818106303405166714814956426812239430852812777097524404243245275714282893626218741635383444088861703818643181584675679774918742230096876623817153944157008729162660747484852512796041985197982873903018500521266997157816476134021912779939990665258776183952848430392688762191806743783187182222096432616713054206759458236692038395371001125526642448721833415863750229220178332581393939476397994910445976637830026632769621535396865615668644060195300538926174084769590044647586763723349617949379458201700845413370316737203347262104509713680668936607383390857422392453367416255071165687668024392077685038715126152095973444462781292464263301920999672617076355028177811078303249248489145179182926566208954120333685303646634120494611420333218754774379306498653998555421613599074054084284792146901646751782258453751990312497957299581179793040527314858532089085708884957451101065803710275596970112827442456057689282372855565119712094485485377891917972113052574242858588073299639963075302773260707809271087408141108950667056166628425313762559293385388207232431744355837215193730063138540060597167326069557980457044189257963454129239913392338526085516996951717911416018058236461035927804964276188770605144500435311648232139491815143341750264155736852224766651016066207012707687017260734366388247761268967136334144359740128133677627937832689889374990834763690205736584475665456509909894413574789560259927291784287130880094760203638090988448626232132993061084525782029432971768690941879774397915467785215437315147334439270211015599528522143272065403314297940769473536586990175868336464644592350443573795506997285633515133534071185717259670300010326577624354701917324010449185236640530429847229445811881688399619408319131840060993186821774241101584470939569593298943404390229333014842879808863709634936162117244387612725292548977842493677546956632449808186926213655959348951632165630609387110267495038681662714540756918897726090740244204604903235627542783051701588456690987791711176605700024579670452355489222607811995841125414064347897369901073740062211058218015687128867736808054537436802509852048332324533405359314469690393825311980490602578385779802436085412117043701113099814379348643342530277807432613288328892345080930165572891855152574075982447827627219186769136556772045506753727524821980584004286946229612553011765712332577670818891989710415326649977492530688869073704731375744094727921396708740347252574729702815063794602579285493487473667201660409520326523479909991858501954212867973798995070981590567485187005620916682056310161196758849543998122880652931198393048226925703940278941078954645062990201814977155050467040879107496398136446850944027285737402439194185918265262734522699211371222429720280575820601907647494490197903624349106841661936719922921713496945313134200431030232693796131364147944221407342174454185473027698934156628456736036832849079227083199568298538746638875769434463659527529055386533751979165268767623220539532469133751515657585795609939534800623728826682130979203391770545232768670103978530088553758023627043769465727898915895936560477528594087829371064315424765437063842497811756526399020186770491183073051280994029914921208017465111289620845226444240622080223902467606039762276781047293163176814758345521262269103370662856252136727535271381605761262679557905117578898648234510633604608278482043578757366849300694588685118059020709673062336421779976079967724304692527900452141937813502130617357245790790491355271616190597024109455739869343744348800485425824272540868894775368862317890137753619426878770300388707692470559370483583847317719793338591205814491238403201269269930020589938678416632116323776109854097084921392594893065253453553473707079154485513810956279790967767646701523859983608845586610581280335749421990956490127868439239319042873935151336793378938135007433119833277505462083398807527757596153840341725426957890497756958082125572437646592731006169482035600523865655189577087038787398094206774009955258356078900102381480913774967958823602520332246263508670558407216131931606851983010918212165779754665489960337914347089633842699856707578226047108556465827788370639422745331621226121547020714516961324283028673198999757992955875073469968100614530319702403687336784179135048032031423301799974644783055734364102347373509755987010137424422193280771536773969671533148155525023954479347135506011508674107697003586979624677443896852602069278481248803937631979442031363743380369554798126411829159133282977677279298604892880578656637202169149611330495549899950746216938311213646062978800643049348365690066019220783853968484742706926645191727239444983180330644636155224069449726013190382337278929870136366070795406366268199265408056034479087817441519684967190180224722233964444827186906814363774142041592240045586999649637524535326452668535039701844383564460810120618066808138512072975617368214681954408104454886360532455933603035876549311393881098727323551139913954220462495176322576761438885025141046216263620929078294583218662351881647877126689776395950048832726522885631920353497200416301337111694409969901238658049759331984873085814205987377146448011406343081085393579100554222550007833175652798129924336023379010198193319814274992872638194803362173352453564478692375414094390213824116457384900312686648867349342118167791142987227228090492754235206081840425272792869579563068176895997945362322080718205838557235963797855069750709404940154471418989145037153552559288070278175920381302241567767801428615463479999929583155301553695432200747774736927144766849963604811316552562744083850240970825442720525650745782877258156910320181298358056055384796349043239288450781098900850788363575292204561623821923138642305751204767473973249367520774499607179290049822103289919345679995967080005937150264611658544892733933933605833379471542379570281289859736216736386737981835161256661720973946538146854232711298139906825664880196074253500231691922322051222701924103710345328949372349507785063579806822752690865951602280683193394788264101282277242191365881827820188000158851011553710351375846073508169449175761801514132976633337929474156176720048511486474841259144331188587479763120106367640295920749743015685540472734850390224135313906993851075657789086938393607871358756078020089856721339005374328211458505306962192583121228386966924842531914139502619414305336542352676914217504445696539723640306036640148047773718318046904314830246839929057632704774491703998466012577818447293993329912406202444551856748845301498050961003763463923731048819562895711626652728523150824856735697369566772939143162391898924168162898510937628623446004973778565027794651012465114932265619906783499684407468416225569612609445585876443789180836718218180415427942473025024667082614802428467693709414986365296570326915244591603048984005460574002075882849898770088545141857681825861639312017073800595637994635461389646853683548725525037715012430521627239712208003895473033564642418669172349031999783053306209372770206893985327927097542185173476298811808955832145541242874924220525575822382986469290554160075848905724359864363963929202193095441351626081510267081142178562020424334579538462051280628985849185768403777355362621440670729627615893143782079948563389018434232721336739709965907437470726559628083550142717725526521922795789945833066552949319047426496135802747330889576466214411151072603581519335646175970409971281472673227598680997728586815035631530734962182073538319792219644214271906482618024222828891158557715809081468781251571617194359715050735922684116851952778583902781887682809376417451144815232513989432180719976584225347475893291336525297591207890207215922169603630007352803556140557110980894406500416203581282695003851816817440977879562107017419290920126098903027064794240510646422687227582516927442933399224235307962874592820188684513906635842238643127747030894061986877731630092959442523922328575870400317905290801837065310162768977779492220160695689178341874785189169961242395009439232376516418304427394743727661398726715149289993441930308240701859977152282815760472279747704389272784693781837161307181664422256227326580614541150632710413657070460680190198110938491549778008941167774627091801666652437890507671271236908057234194399941138033243620789015478017185589201076824305026170428781317662029744833408984558666054350608705776607430299785181649870309167510663092397266388097334698887473243328284342109071291762911746588091153509185448918655674461556301824344550310854996722831794934576606172994731075051346740976453312230657308444294151582194883809073024455748465100555167664193053511215074191824305941271508270048739005391330293383161555522526934518553198805233130904370304954914349427619842304773488268866884232439475081249099220400822988863841924865146401435642663174063077909554529057224839729470079615395748690143199373027851643829973823714711958577308477339115863596374926315501314997333306521757970039947255604477708564280254389627064532776914671099915540877806078036390499952820802627526637949431834355098548431368403116322357093371317552279077440522251314266604120810417706867040491805445138823166105084506091299199022189783657755964057324500293072011809119782148859146595895568276383108141541619874168334905516174531321773881710812625159078346347513717786977234258434039902907533768449476181236139550198167624075550139166252526904752454652294588335544158686292080700876864475029677686844618336259233657088158398286103781906286529364882816073003781246729163165068183628784892561099416442118769694163405891277277004320561000715223667103261743676578411970341721042227199505044525950101075193051033495099061957858274952253365692365348204773742347129204641418732264570720833390628193033327456393842435960967083147947214766087373890832366802870066555086330743543877534552225894235180621462178751339492675549301573826485961432288660800017121312149777588886807012333555429517656901309889123050813871269381713484069311240902930359955125628246982916797049591712475436771591202651880183715012753295034267616116650619772410401755407052846985581805103972315724565031075669349841152727469042617196344671307211444616190367376566924801246904883698548607892382700231245479109419466018802038031222312582170503199781363518589323443809909293167137253729097604297183778228343740917148588958863867478283871843018464125106078549141542161051227324097384800978971032101771201923982234792758250400528511968010608389257632465883918298033481775922513896733640753115100115811643984004227838328561887629287656521828830914347446576967691983179745740311920782950601069102781993447361289618189542846884159986221734773518916698229162450582924674531415178193587143891389442075433794622942980177829715287543446088372349488241404207299803415689616160637742308719124192710704023426881564252623301911289514960371129486294763410041250553177467198311392667503588127858539055101069175075500479122821159831671589346625092935584264797347711381351633776744493105189777441145477980837172094224294855460193376448784773122929555637669156821732443851162203917903321319576114290994627040939403023354410413180070158478851253005662170404122204153916412503114571494023964647545161116214821955963165734071863382308471135489871467045044115454916936060831661817389241530937704778209391959541196450725187305840746661725740970922932380720653753662410698167811545704394622464928560176453153761004319364503326669609045087044077890349463003730871711150625857879041624985296395496793796629314652217403207674233560229619624996646913864212891365794355361122584889903071565656486023379755392800551257939776563963152652766392527416580805745144563959675613834033787867788021462320277850424122089263171607705352382894982141134879584459582189550461158037338544988798195801153898274840027385686955200254125832068893372454584031921214659514446995924996092301169468722929258757704328985911877800806350369453052383991365667116348833994727702233952082683537714268663620261887808671659626061409431195801620304382937735839940085044837444409348055242316758978892965161709650489846493329775885023020508292171550698909053517873248047425575522831661311750793217426300573181461854655347053064709443680647871293173405435896125359471482969893019438478839156981267172855402068680463237952220958819856820512059735832203802939191575002509907354066529377751762231608898714843463179321507129594366407157592327789957717102253203550264368251444112868918052562028786574407960166304037670609347904888855058325243585608710713540123240265909428616503967865008174916799416627443693113348186186972791279018706403084884964943926339079042226458632778651774928396729072398087080358133188713144910904903684770342704806965370833912167738436358513910156442910494819368214252016935151825672434706518271465222010296995745813092217969054011608521768015342359500126539352320395646094432396276610082255196602857273912577361770179211910971552544472387031420302057320747615777255882978885435555269152857619412567148640141796328745033663479086036953518026845702595522478670685856988874277479664548912663071198456481590846365101828297694856044249933016891530261198915016405152406580066797038022393634686503507414008277253667726259196961730574284000166710409795707666546253724864412611351650683965482155095981584840033190693411868797902786616412064202462267897674889868118962902618818300326377844727616190322301433174837087205997146062071978118751291897605790959793345791940231652675430044457783527903279773759285274458345529670286164711845642203524877249376189618671523239467355311503497643668634766462453735403550456543551805739913560781290842704855279105096584559881274044720405201215934272722594661615554506174465245913789050291105871582357219829446501484900879728295292046840033097417063258036581739782476457941157499645308148694748375976350984365267066290466522507439582631796498265625333231582821505678741984564875691688751854628032191989884086386921850224849550570028296799402172826495663726228433878850313132996841277912364383645438488005690271265463509894533789644751006396822086126811030643823534945776189801032166801170955111102649425059672802312476459721489774414129096997581444618612524005427313037845407683571249841581854830385684636823212001721593845641570494860097108204105317793532212311404006830557987813455547287981382122311765554444842903447919510031379952776496696118856725640221172913458830838919327427002859318228423308911111003860084794802298453492555317216389464398528309048912148500874402709161337292173992051662047443253304261103856355133362753415712651495826041074384137211216306425347619677044579619496192443701666547046334511736988204617458302480393989650286440228902279497773703050440773305570658282645639848996311011252839176807962734336061623695572331976074469725296918294376452613131194562386926195870395010585358337677109794391546148693049835579608496095466058221918554770448716017776734002302753859690672340654410668137773777421382500588498256592574001409196538694319184537119390313565470047735689972667376953883184284787525341234055849089411050897483215600384691419499436761245410584844939453891090543970776653975959378876893177020063719284248837989678676628285193877264851819591495939243050722221848768214927842778631176063518986399586263250403798997839325720158096670951671539476487472721021667204103555912429062559952068663304357728096099040458004880030194141373049918812354855779395443158670619710441099850927788409126299679015941786853682456404487287205486640849495464515936609980785153780469462272731305848130136741207325312249394688112691779790193525259775708287940068644631659940470881482821580077576810406135630116070061394925275903039414450876147048184644812421307175947549218609015407663164283744060462212666513406587097200165630565680598229705112062837813711087096177629196291493537776562650075320640645671469495763741400538279344340388165991419842075513091011805152103332792070251055631395291859796110137765874712233033096199249507947042273677906965129239323737302243220098963678277996804237050855422568036977436687516549582145635025729183633163575225119073651387072308000645721874786063909194447572993728717450890558072850149881057054226854553775561813223316062212656452151684950686662479032342244615947657230192142033453830875571889399280282369068607198014844058363795529202978279303668300510467881549191538095045078603293655098011270614348973387503262234475113461143212109414051348590265582670252280547834849988740676457778452001775798322027648640829126608898705449293276500762730716201673513149026861007725978823307919659897453634884489205252106268287878189964565344529404893348655679111019788759164929432905879844260363990846061029733925299850266590407737264154194510284870555657859338116982527795619164546192003569851271024485188700697513376189087070840532897033110829539553322402577416173604214475066560034509570855957608394685060718781420751071233199553217379937453812448194393551925310400097962958551987981242232257827021881268177446576148243875639876176798141909045599062712376820227707502351203176714388118725909793081080273288531183053598870023266780864940330898707383001728873467012588290712797489397693245829344690968810711345736124383891873500677987914781255367284089187042687358268743838347891034975029313935664598657936824903773038567730442761774815516874352734905400307436067110186147041025324425375188171260371435172268321873302506906413244487123184384781577749259199326950888799423026457200721237268494834097405617553251206567688416503856805653541334448087042968605609630565658225985983990511595327237940190878941803357046983239711000254583322236685014323920766238306038885742293203736043750290531641448628092930748921518118193878180606107634642394239905648285009227459709460728332431609754084766948921766577938555488195753073026483971270371241331969168064912444101222785066740887084188823520500110879753594583227568452965156479113596232508411222840888587652190598391252549534260030097591377618742859465380193880593744661984670257667873400412545138325987234339268346392766712389917498723025681740504168758226814719271373666662698815168375607828475338749870668246320180805213988186013126726301307211303034384852827899152373595072481966369944082844355707692207217324958435539054925620316337597925560503889470126950651306980968921764537481233039189235075181779223397285046632633399261876280881898546202182485018379425218315871877243593565261310958239807129201956852505360813933973055108538965699687950184330140621026891622201175518589541948208331850169340907106381545911954560218817083161985379369548312721040081103618105031603946893583952798171025508292460454122002608743344544380119700029629930074062265031611014020602330900945133760082192945825741219430264046829243558669360614794297328803952532763985715736522049942955165135743188371450230401693140920626609485038333509169809635156325524380236690388036697576097207140196238419778356581637779450214360816082789759395152586945981937693682026071236508657852504493104136309233962739369612363470455297480559335784079258628141487810851402072836904817169058524972010015528267827538120613184209100168958818231297106655722042980411449515563200954741455016227892183992458989158657616011267164859287102846895476916151277751675220001358124434260189665476483484194305714122941302150410985540415035452203108375756758722489254270024390013774178918038689226309479385768442534990792976092777555195513739506996739900129726620725384014443141587211241210193654884037812867305367982044039572921590333085099235293930646172948065830369985513702069488228893594352106800951771246629444179158586207141924665800369809543334636881675753226802955238877689628852690880331207756978276266036746147992240021667147060359655587313795608246586970936271942892380494785100752364978792317871359494813433458627026001649276011414726584895411638691938588787234419302951535363974790595386760417956695933856701319929331343458156657757192918681628901085699010702159118600079148030683316121697212254374311534161180345987757881431651580239776999193962526886389768578780755238956601647361741529451061565137033115364019594043729050730723037141524080720140660774876439250549715186524644786853957962653322993321327486256898461554378454757450388634457220982782060326230628121389281645579789059008576824564871359816602364493306064636393260922824024568646092240781194340533075078553623778434373896168387514903313461997311218009098205705744856381327213775132248880306622072535207100427729631423971780449012791162778390731596086491571848008078530565282706182369461221221724374065654558910005533783354659795729330700446285305938978031033520797833520734841865168159339491919537291564759508027507355601848212594582417570075082489830700202741540565139392416321222048438081556363195402169736485169351669410232622736162859554587779171759115667293975550657040599877321420086516516742106513794043879753977264631963129564174966766838462569057584962601213817488558088550204706083291626483114869910277048459368427014117755032925738797070221755722950071293002564388609409146646666160538978210385683993562573760719521435590866917715076923911284442787058052425303260060365201994121772529197342729690792572834498838083084678631379001969835947804017991558291977730164597284756601359231648677480766541934452756087308439342866472569196881843599904350655314587766688272764617911875817244125354208594059035108780623366473963806356329845783021006120433617398358195038926918599293591165638984939972469005176144028893518245745354169510972739839374793079763542076701644844847346951413425540976123291532949059275780094980099123085103575724300859523021869374697521733320729371665842318363605290940038586173065066538980299002154079270894962400766655570925963315670972724776753111264076509581520743120000553991508515918250362014709989764437116698524168272853958374661046023386632304620361866808635563814568917976642475458723268025869990434952079408616077940412916700395901561917715517595848236228682516574416984617913049615752959732432942241032592221538904895777476906519074960244547503208062779667544301893954784240891674558448982616719071555973597896538122716069566204049581071580569420032240953332649314513691608899645418287885157611352786083738502353451012128645780313311269718257081385562976439673860927970323861748481418976408922733659949304140629528177966119801808646309226675352824277478045899049001799468343827600671286589230327327099476031628107311582389309633741062025111701204626267114838239272153545443587085821429077335989398955647906140576532690824523503774649938283568355521721813351916856910023104669748007027829839182787598289865471120476965387155832284703536983382583484322219438698460966274372476012329660763957804965008575915566830459553714518858714558671987565335733991945213056924293598769494720769654953651016908123294788323515878610570315054198925335075693567219033927672632531308502549937077764907555732617105339949611481244506337992928731076988383853373920696532077319129011748897749085704670746402076135052742131428951488638417217163080045421756968446496918937067990088778871650658442212674522334116846163610379565875252200722670033103198108539129107218709179194185511970432895549397860188005242566578470610692453335789401697014877530325926467781230276663133550855503347996435026866544431871219972181948002175269975805629662892154263658274448586743560024561547215046647492344797477087145020237190610083759499387807651265015867729828232940383924582584816259233599216125453904056706134797654480425640509446814681353019651729183830604289393883342829918819011181872590564237287005542159002752500663227093117037140133915462070353942560995035032992147676569553139176811170600968869853876681065157673531790567958729610442584839687269356997862970401981266947179628189527411649225046738026582813607300794801546187955809709772332330385877702685111756822911176293873202443250559122926953242499514007120409755978864595344740710682955617107391348030934099028421465011787699876272058625561546081057684548092415294765095949121070442233256745773142522190977595571881424328867479930379172537449475772340262837007715449200367937733636010180934790165896266208818575517990477850175595736348703459248459553323121137284084946805089115312822714823435855063128687005021496854317252998309139113461616109344599596184425619651021134600900429531261937970698963135854875797797960838820394771415882997817654124899708225731439709339678604353190873553710611566165889982680095126100872848197649625977632899754189503492784983211764211840698815016926684033526058461187688010294946384318678422294652037219019730622786022626326117868973528462015664414353613048824879242871384232204140186564973588290061899012499042426897566649089619197836129685545389070020727898228916151783805109319173109430034336091294110880850967486826259830029132366897188233240911319775507318612391894442004549741941362260568798831889121991421264203445373922509542920469311903022887103382431272672355834549553385181536116338040907666065964036322870225363804366074551374730128283517961258672960702043288382186023773516253529782197970726942684747482953785771931678757514382803714997164440746914369011422513678388537340974616190204181915573427855461808253057052152147963481443602712401468647170352117488854347211429390665786250031932430078944068076233351330159183529278583631862407292987006206638006666530518143223678094232686406957797164271953082980334967973829569801254639266054342452162235609105931220750880673853417271060097928757681523509977450713243279305063324420775176315291728529796123985576529139332195173230288460952143670597671778952764705650228437677930335280895126337713781811618034188666691004113869333841021054695196037994684503311878980487582557325935305827201275506565706991335067077906024555410515345721664891580365644249637006075578727053422516115282725277829582595165888942049947852126095535379820378643625420689876792971141654788347557366242143390033741663185869297696491731378387022091439464777640456122744878430938971436648996451968223624015933478441909303923841119919558229120191785803288407695421593190574230574093065688902195881549744780926627885000533895929475079848311398573539893044527878686070846016808792840061116027074116210625470442778569759919268477183286568288589848155514518290215219683747266572270551599148231601124349175485875829548587768176834588782138610789209864935508298761476381863500175281295668095683894059527610429108668120059593438554944979667759448320827404460240573905775982331693729776417630931444420658974072008004431595818636630289366931900147030747422814004526236641293536004649361239653558175298252630427725687874487757046014365842787797373566249656504476001239340697086790111959890301190516509225624575567206555625684172582714187713488050122200138197979859791422439320044830216689258424972411379421489098055984867723694033571142629151107145070624604030882036045227193116092211172456011243965480548259735620592143434054643225695608613407101831693333593155995104118246622775773715841130919180324955716791792541413358713005403973598774439927038133850642241714937328973321782908716715240693390153083564172673512822832052548540382273842715511417816750209663014537944930071878464475521862512050682953007255787823883840744623246993367807500826543617263252009242840119697423808086655539487605790280862285505952710874920373736579571761739981786939501322815237252057083818054571888238898979650282787383791589876294265610150278271113517120475054990130120493079732448007367710014015837337941510456858893838716784230719354650580811432965524494097034120040211541128811333275190692626885476402932685328636503340266189306541923843216809102514514157222807815468312594195957289019080801609831549306838698079791239904456668827959143867783487521136938289993365193832026844454094192405076863056874891801026099902889502957892843639577713959479669446334085670716099863818368382826401831628079469789138351785950912517170824122619516509773693308008502452104064835608921359991338188448932831573333358351914500868799988705681389519335321441367077022657230175792230096613274970108995886282989392094855369301379748106508622606065710365001610497507657038930284546197185603175132633495409737558545743600855601295132297277423729409463633443069044368236463919291366873271277673794257178697779185931528116096586588799498027043961825728225744502745586030567085480275991595182824613407914275102052728766053464415010337873555059557922943621118556513062304242690362574090060740792494966489994029049019985047934487476399270196870805307268778547990603031753177888067959062842662449783549547480461053635489395179796315871438981892160634778030639454075929742423062740076782499670268940034598277900036572621868997258181130673050127896227409388364028968975536735015724087664013724155489660276921358709126114774594509520780466798780958254217642816203069314646882491470766008606957617797671529615721567345912093010792578719227584590932366994937775695758116004593616379199350726801693508090090986385700130300851902706417064825831417988227802874565256578636171003217365090273261578191751332331221678511189588623058701466136956942253144640450163653376216096364516755677422842779761032649401855814248681774547798251725377737206503802517856184111712182479424751879906931442959762710613512009793000497585380689286423383515514510943935644774123721618581453284538604014808789842041721859193062788195758119158252180287636384983879638780434087176047041511809802080808739566174920081565706576791159765015643619375418196014375284214417149312009589891532993204942527251338652565907771916409511731714657545946141622152559656681328867477511584243388725768049692760768129793866761754060699129637354602355264370355196633400001018837868394061810222915291921222034792369857629285345908304007529663219222718577203485224229435814852053725628224595868319459484848559839830356972551514930636915296907082550659395933422495881299331818043717064434927226548080708886452669790781337859138108620442011509873134951395103599138813406022229056718130394228229269728393248402988533599445436210262674490504160073261373458467172954879707806269566612145194101649228127728863581847314512420515244164806180251080092663692794686785108531772858033411591848442029795892299619893997153924712413306626032453382221683242450131386677296306545238023892094423866891413219181751615153076961467096029009517008660367424855333730578981129164113842905888101669953040664746574281593386838371762417337329719908065907568720798245797583625831145571519696258239238416192945237335822215233125013239936519996998474141474340939013673955239939726916768346103340867294788633799710604365418206031862969900925802613986747943504691624996781191810378379103812087401114359306000114622623771629625345512558133337398575646864034816922748090333795552417263384063934353069022223025057476932140859247053152507521064321408418397555507505571131263278534329537741977893034135936175169787410568835200444863883791998489420133523121110537658335330893476168701133039763292474376668439051871532511512637170830062886099399119649903818309489821268731487418489236806757156532920319667737270506681237624420989389252749131344370616717072014112423532435675728786972290798088964701293511096814456989369970884247985912414248089335106012173906430272593830907534196101833206923251036197503441343430325059656266432143950466803730699892317927216254076605504329768496297979520896471548601405382164964447851198376738879059943398869312799375820270868424693492615040225202413848027359147759905461226944608828983301620332082688591392079936586286098628982674310581843755624920387059841252085138171895587610698812808089924973237844283260758239657612520673332911346422420554459107283345795190699757375107025818155689013125487215228816428521620323487097059324092439240622696583921362346189939553847510209984887622202008893790529220782599628354723548185743478999594748983428759776121518074619733959110680853965205287229114482520728861286019373708391793865765049078517093156838001449117681331549137882252579944844578530863714971050941493327557322761986733043397337346581457047700256647217206429515974310778456692507581479222630648074689884258029602243971511288238551733615573872195650865443543182552972512618526266377230710580266955715355478598557599708534811830623529216693292613754643831267980460680238905999919315415667207311482204184107947423094609233686851879732312252407019351771668507189362262937675759213498118396770838908673199908583938391970744264113793810039772216304981207211789954215845230850255967002463964324314293932781122399959255184325599314495743779968627849725351003323749936853800287200063914989652812794969892371387773363940233552123105387939078277443632015532780632975503339020883843314388534798403283721969379663166237284812887392021947569253071831574529404514153255674684067834097256592442094094630711949698164563017623349193758970043373619062955433069557469116370010520633853842347265586340988928548322932079372799135933481945869145645746108423282377806832401086063969496730769334862743255156610906945558725434115894804625040140491034209286162634242981843893766777149979178072545602762972540347387572924597459829300268166791168390845121693582656198602456611659206685777020634024653036491312962385927574987484102885475602590729033009748586753218205531397169684078410922597539083620145578039762052174544161052587187655531720734552968803100030195120477126508035576452196949735633263675012259086687378839266153521397948441313959378159822597408563256743074508257384782348861917646935867023191285846954823194506673487006244596932306513800025810018747234625752565577973351145033013333505415654218898551987074075824030284275285363670082129257172039241355032015369938424196046487096769757466426010289904139268108823501328545337919587280231308374007201731131046423355629616604126402987248692326457088650237899513604720466205288244148271726633666633145704636412207908989595949541412435380402450060578282274213751220763905627728717697021258577429960349568928237335572873778633126081965446429721556424744888455440982743365887725170398004515438909735077238024490645876382342575136626612815673840988219393214920435544720025703089688826269148067232030848772485672733608611953944591780462737192025829838971140732358652551768296329436564868383520699080538346405294914699299198472662108893942042912153712975728799544365510520902858734534136798802815704975153689792617131223685910742670421902229156408587352659690274289134609739526275716025770760364239102165628405338127021067251113593664481834207855916152045165186542005773617053464383999628302394004484120404512508472774096480435263162715567424610803771667997662261373750848070202872620176877807152853452762731515807235451084234904996080299696762440821630075300669634063553979520965753033756821219922154459427687973224427120654130486499205771554202716866348866999142061503301498374883184120971652744316807491844889615954181535139558253694978173334610045913549974892447310664238348149494733964935107951900159107526258982305800747521963667457445617468145225872142868713607065044962213149982416344448400726662539271652332754156176395079570925687203810529293999119833865569277696441792647480937538866629000384812547810214544779512772582333527146872360550521821316259243384513229163294481137181254468405972568733856185771379688874463301370681399418125587833772876563316249433176187808366296319502787426971633850987151221838162207360067672529090608558291356683440560327995482033776041677710094980508791395878336963929215072961690228705144917147689756744587939673189756723685492237324765438894879658706156551379236163202013150768616818244672742596602526398489219230935203455623480880554314889883329578220427077383338475386836619637243653090763895065415273504356097345515779191780407806362663052661539332371299353647002524491849993784083680011031601185230661113527971812992642946901776328662130770055227921493188747388411500789888145678029879598264996942777339191763792774415260852691027487706684822059064960185492664989760879842777042364492446218442640984995158271390080024552617884336988034737377753962880013264440786775080285798082735966057804120628489886530438346206335180329513793633218118344026863942795204264833650255860052455277356303242826750515164164115075025405180774446578019515635574751482633583883088114259836507962611896740830267396392802276243826926334251807646338513689703145092000419941211470660998481265252999496342837119723827557757953844149632605053745081925924200542725994977039033573769473752558731445908880218832911276601561485969959270257961331235699571371108936785357236197032212271627323144444760000381525824840355234460041532046849239236514597674818006520295761319821187310566372405809435052369465443765073446921055852360306152615665665727553847618272476220216742028861306290223454926714299282311149180755635593943547724493073882818963072495893980289338789108634855633158448063038723321413168744565751335536232785586334661295176959156950406607515425961754658037757012291498623229868915141110975884662228526795080834260286337855914199756562370429724425089620713784524696423506156899651773659774213919920768253919542753998551022970412325489435648755790706214518230024158908312918323456508346190633266920696638794537191776477104509485741548706730183925619724213595281367738036645030161991761204789846499924138349119565782855600332099871893824076792257417767122544087064209635251316172930897443373940309760953057306471435432724968651011600652981231167167274910319092933551770991644111851525113314672601464124655668778883293410086945003648374312092996408466649180294665097056342167968209236567677539432373560447629041938755966679544729515608160524815504541242515578124443256377557903058842131356013574717137645284530094771375141601325044361012393658249845228529013790520923205876104042993945956780850087721445749233280813172159794678194515414445098758087325571391368510821590231374413348931941585150141155852951735266003022506167100474352446102384634527567625119108887543701067745058165264645974349731142224568756873893858568377226564776733084982377519801237416892242504212106363420583955440469270625061711819706841110076274876046163320853054874822806913874449044618179780305697315558140075719846577582496546685130551474631060237612845675580544402329234783059514916424462181559357536853845425541850689812829172849895276293021649225363383447259012855248028322423692631233333996145143639839205993299030478547914178865029273897779892590141732045019582958604378071377362976695405152782418333099953249743976891205350697484868588607744043805565676878967201024244006438213148769054589839584120332037486366933709149563300029906163387943198775157331044356947054508188060584024944638621329283551757576641569350943809046006714357328702417650300004386366229039237261136723441230499393689246030668096965667294629820676509893376413680035368749000406932052861666544063190203567399241736831591227511188949516614278138679867473658186714562136662218451155522630846107275827266594323625789813337831994110576949451026995341173047923235835222450298212796977568002410485697489544351915325215981894969613124763428380741195207106180367463815410504027880949011638568663963408472550101604643171039613898931802266208024935637400030533488165942949645143746314577732293890200044325122512653860417127040657954228893871751978158056553423833212572705632514064902932296476432914870124113384609617244468522772949508422189457897802095451652901340967711887563182170471865519354061994313614991360182337401181178523544709299391252752490411093348582996847304303517280177019606510849573247450964592295627130269956521845995501581568273227478496833847498216216575057250393712694816704408912251694743946255995185726576902255645353816174559871252235318029756598380103143147681414272686286913171927780790360574387623091861114866097078975811404215400298485932599351209283995866598770967884527000434164694825208879628166696335281537029622108178631593145929226550760442813386583382903646561398668579067884996591276151972194778532009449984481245381446401495202610192438875848488131913449324069540035785571752291004554130278304096819395669195681589072399993378115484434659038359438190117861888622337606371715460476889184329089569879487376531959587294152374420443527392714515691604527820883846841121795495249395982229887692163414069105498921606614187766396522013468586054585574514974288957786742531008829295169332120240975673393486435487173120246779534901788920130133620963163502234805458895194888925690722408602217622183104947636689635669658267493454702824467555865405778614291014628504380109804375183660624868353165423040791007808021344860876339006127972554916498210205189748255341639647133878741620552923508258468454334778946686070582993656560488667412199033711260453781202673464480622803049655075208128814947617007622510490519089305501424815308248321131515941384009992806188968717347811490512411300835496977546737073835875273732146166413882132155993666940324921542705850719834291676201171401022625063984598424183250550794378191880214886726045414305311973670057750349266802200583841228684316516497152685307813979218002464230076379708827069765331785670763996869137762151645460215984797825943574353116775592789215875359644948808792131512132657554887618089889046251778275389380030389811740518772856540653952876703033767398985168269538521100673202206402395701403701163739166565336230586633302224636291157642045158117329316901019155347598506478805499260962915093219202490596272356451863042873846916101923748033264312551342724439807914057589718045209432832978734742288866360109241983352989800590661407033389708583906942884616653857835865736756926731475103495630269927303472890286464759304873318442990409428954108474099882706189424224295680383958542887539612827228350094369555174375476182223004050032098474435439433141441097127924147147393218473064043669786670706450975552747175587412602292135694463920924115780041324034277343066212239512746737096245909065955832948371576472929048679642291525607241034426250759657042778243344927173896245974478412260314908785877302524296253885299933643278292846413840427340944312333902970207490216454956173867701938394416203440595294273491488109097792965503403913015048363681610823062014440653173217702542675464263657264807071808983958721018436190304763158115988454588393545356945164207023192459926483952067062532619070444850966547238689205305976231529630835649819907105409003901268610910092372300387653013271494933924600865561533813778266614682844077074799030868103146008310330865683959800436527997790035839610152800469036447904381827337354798503332441945623134861442295214362917666387488396353604358994397156823326496019484733456268805106522485865035316945586546800609411458363003225254895315792890003891335061961538176317718399724400568321227652649160131271565740388222392376481351109399389213717321959157114427263382080798086122886221992790985594014211330605447244946392280388933767287235731541408146956393367630569172277514639875585933202546223387102166864413371240375359186144042774378629515005881784262456990498621992888392290614297248386568348002046803208609253651348838412615120378906235159176170697456543905808124631325160591489197495784749620458151012583939628621894564510442773986635832305671715393429834483452638023151937025430536614052639494655419133497939625031711769319016795755443649580661113939874090749320119064005456953809726898355128990421193576018246603456043218833018073035642007627283976124890219048718360806628630887785736826977188485586306173129850496293699587828252979699223964097797420377159644664601966133791330061557565101761437669724016320984291763651692161493909722274400956119350842372352746168684100810553285575784077314201343880427711746939380276225440230842813119410016865087843333552730425153899590051005823931671635037216711366938577895777770253160222044321586555202578987746458541195242176617382788925241260484337144222352730534183235352686182895950544856337165512040044704901802206244510271044643731927094512458731784700394415872228331782748112868590887230955906257361788977894446612364945189773614490337336857490026168924125018727731895876438507398754436847131240821259014296364740422979898781202562676693364607536298416855886521393361703842842732438563938148827101490438172114894931067786708625748887082456586769043161559121625435112288357832216294115777750675749318908561352508545572685676794269478400616366262181952209516035933867923573570547611316065211372100724136925651135472542870021244552225647796069376557551450160435380013446848981925092921577248252742726055455480557831190416522321433958148038215276656722636737986202865212035317445799738370380941367189650498800388973049378489903689720577823105983016065677442827405433193769763364921620276854080174980739233750512646673088936936012073772979289095621935671010304690545419472824835126446921160769044851239140701654422782434553670415253573345946527293902407662392048551380324379516214545994153834426394301111377911970041905031322821366174526301885605646136543926235508187479028085935823805333501937342632151232248142794607362943230498930812513417525543295623289839656892748932161511128254803484282069515724876394267650206819963393634042580249144908397731621979555091989772568159207320039074675258900049814813831119088868663832150814898527318041638522837424050945514577858276545085892242267399536519551064192007895807558763683826543528984411999812407907715870018286879956270010057255203311568891601850525887758675107874710053495350462210709666531679132488438355156498878510490091862576855555001646620368230352239089866420365393924370129564074555013168391224919026238784334387476018197972932141894811527084495695654231083150935329059815861937362939972040898940651799657378643065804644303310039322489275777369527726575520318526479907024518279226685036557053558075730128475376133569959334258630982874183611434494929410007326031323727596551963040748574871068182850396624615129985347670825371832341124043479705407455436252145671286823127024551171383281644973034704299060036578947602748345514913973362447433227116147820627741383589842081100704783827371848232765424284733650447806493751822269089137733283845972016495997186490189219688912130305318348320894578861904095714070567325087145456468520279103279886614529733370636771978508937215507071976624309241935057667814699908696955062347370759615653348030767381956951443521626706227099445397591387577027112707827026181730379161641516689261376056728653529667459688519563760451587176173619339237995330661718198990768198726223206145075101302363253603893663937792519642855602656153894840671962842868659589437789655260196035381015824609668546359675796868228699281184471656260197458653690128157321620695967776406471921853175309269840829955082427871882956133770171871306913426611372272363950998135401905699092768736725736853373311349617275278699008566079748898958023067429712174905647853228742344546867338064387186989721382387127692828721121540193710198405209222874309849968016295641472143418683608907554086802674454628537529946967844572895546559035655035695054022704159138897652946066996180163669221200542307793911924354442473697073229154182912782971942712169689215403408280114507076718012142193985189691863795903750752755358806954668923153697326329699706580147427625691240304898507184425262258098885600199618451944651590118699388355110021895670232416539303679157062174700069758520538385323607033603866261262410823080972384883516593169706953343182445967181535499079618596939421124673273598764176329402287414221426547301937924311807252177812372844992011500550748491446077625257344196330490315141011417220693355174022653059311814520242492662284066580628659577077325866873931140925291289375465370083032893499479387883727342028582470477801695805663828571358624502412488762810425195643043968091535556717557063985014703091251038192197616539267271341071957062513202512676935491477342191693275113998707932434251733562737882060986749302171473329779758401911296417602982425858914585273990662403013493975508376252556904936803376848993281586437116782844442459619887611095187339535966632507014466019649560976776041259709945729533362394591185815602548840721211480021495090947978805669018979801471234057041863717065077357506143062141784763149164504377273653405135861271553377770466321482220549412166808016986070541183488417974633551864099547362183286985931401662132279759450790136128708397660448542919059124097328063159143493445667024158716749661891380245718129854344743862669989088584836734332763924575419791095181111808773483895483322352117140214914670797505897135064025483366601655314378255174841343724096887218559329243276774897695711745437084452762324040138640443966404394362709635046440958179992844610481358318370978502267485239451354500471091147383671269416416791743447500254747990048959204260658012654077382584503250172147312709871025411257734510816943971213761489157839147053622380811190317008321033879499852725740783039271208668177016771109561249631705509461893194396958486508840614298256489825213297033463889004490581429610929627670294008870734656055918115363599681891275658249173051578389627449822418985057642990209063809814896471360367518972357477582539446864233593450907169322442978189055874532337172218340428409993622879284400139674925629388172930437679777550472585295962303092282530482973057453964687309396605818910285551397730698272068205036814239157193084678854818123654116203025996957485619730265235758054956233043363112159246632441683932849122111114003441318172839604764150525263332146340715765031430938660067458347615661210361226472204197139785205153260260206164424995057634452530818369153251082941119043766632657360338364492323953817015234815057778819073290933746842964984410043402826319920267623963774870205550016636586689080921169612187875723610685176189595278041906250127051496935099385319526637380638920467031097157451883269163853751084421081225547256238394147035978690062882766231980283233012031168893838216946834653156761624380581578306212216490169142890541123513584171612678344371140108699858753365110934100439359046976263597399171971105220651983789180308811456749517847835379004269075306126000815389436157133878569164202858199588808311390474005573083533813148413044072056708569689641134426528278602000440716109650047543742789708610480262488649502039236406375693268810099010329764857484707479386113081760612353876667410990516460957288099310364776584976144926682112270968905459333171066198221179575140864830900588346658708697607587842442829683537795662737133190833418043813083235881214106988994284965311254160703030271856311338661470598273250796901762279434699636092699295728779800051758365684024774112827061916351220814220344002650555703290513846028124599449642949968543178100621478195383496872656776112941768261607656592664517199689627400367858570491113269671683419161001006929537662858784271477472852756945174812108866803713058356879539472858452954328988300753555157741297147426259557429174882733635875225958830886633060782904644044607831426535466157257290288070460164719802128296103349432233445455600971280165905836918869182165604698620949382755512602411043781667277785124243715051689238008604860474078619050465528652577512527191884597879941212932168290806125189677921284659105687361227963399893162670274070295263858664693500478090705738153848655937233461775383319161275845047522525055348242452840234494499409690653420370713179244049469041510691550863168904840141211157829442300609021240072646429084042491581024353338121059164948638258874344784969416906709627405535194187970020585637806959073050154107006938967333403507429075653722691006034602409060044171865979377386885578106944190474138129187510601173928638248374257712977435537341867922117507497600937078126651830552329148754310502455183155624684411984932754701642340591142422541589179440520355356324595811887881797417569814131596118812069508370563956452170894585432501228578718864869130080110638466439040820571129636537092463766748779090646245357353165542213433052110405094582748477601288134056808025089280728537825863089303982011596132460255047854015246846054362359939351981361219852038019808309739504644388967411884120389100388333324750477163591721928020871195248196831824249583987798409076105245269507115084666508518114107760791863269075813882572357741794661505748713287047439106618988323836227202935356544989299263035573290618157349088817586611819249889614071572088550435718240914033416874835591358611642057778703950867434947248238265005617174292169279021396942546811265980215603392276907568939959242654356208828721108861075904281456139211152971031553720120682181053373455478905466296250524380780386001432986458347712026048357111704480091298359629332595352377226943140768375973008062706070455307529588069625678658913131169261371376765551751421270321026039331353150836916705913422049555524835293244982122420887238069072951987474015801731254381764386766737147985677001879129266642534309374457858552435268740850440524626821416206503200723950150510564346079817245700008716822256950254686782332293402906792599274423550910057747830859670922122247047567601928593600493196710299668996791878664710482315629199474058050382121411558332040725710695801946019718395174405909269518263017324419202919038361891309187185198900731251662237032337438010185696699252873622895349617484488756934060589780444758955422586357858123871984272376442743349908022105638016459681586771781192518259896264768644091884798849356607167055149979164074201180131023047213613440483389666341819717156994490208843282986670683348040040071214205262829462609657966539845582610628381793009979801094596632068976217097951003137120395173695301909699584590697894808020870385926370100094215891372815078660816407651226513610214391853072227577978696946937147942871024891669222475036578431514735177369369435207172323982434366720471963216558174476472961550766210388697125477030880198034315571617250512771311260790044270177242528983490911010560972738605171452712936111281361100028154584326468018567458359461144856829042910217734635081784286528224760197929849282319300615637683689471071552221721247122402449720940828761828582496737365532917908957966748543142403491341635443109299172487186242265813031923267258359800404576854796207186955840612773145087276947126485899732874187379995402387703286097266452267810852896385066755904588891240118086040895714605888705730301879013182776989991224446507099712072059828983857243961751968561667015787867830781373919800804628951202378669675231113520481410684315150920043569484892868132806621726972042699428661765761436310647828088598337843550214003120340873912327943041729318321797365838888855229048225472000083037952341168698661613394394889441030067432411899131389743083724905182290821517392323976541219013482528679541342779338697478513074159097231336909247799392359422194699418936640184668840102095328564687287188624114423069260434803560394058691438399240398528945926904618117764884119488735127371241223789746933842774205931999129470009572577031709122999950106645212006376036953045410117746998830268305722896170832807363867471253481170136301676386569049835235032446982732196100912892875253623800862869690703948198814340078505540535036450760610248108430635709654885014386678711221350334096843021232247398491741662984165035411452659646683967701322316247915803088431239932060957513547002556246711138516625244416599065506100783772279090507950376817668050218976289765703800829627486343777744585087255490315145777008129437625593117374644617661073222715743756945140118456844224611863223784984341156333331727628260855723147485374085418617263488550699240305155384213704998547185285933771596436044721473605048109709480674516830959800495596270692054889789764425504978432314345458564650595036918599009306122956344018302141655122244917894427837203623410332111729931382969097920457616439994168508752906059813809108344139336894276208456656999578515571573473499029952562288230910984569392313397242306437914158613514267999016985003793292375802043106177354085748075146623733490042525008931166357097946436423664093882938365916790592793300197252673251061540827864410670743994737871002244779543244023785219856168513736724346158406363804757845757393749851106736847791856159971252420431181706228780086154193977369613110076529325804732138372588450327472245143448978297200632463327614219534444196184238984445136034938158315808263171854406226496293506363400289298281632788964819356989021599920456756893190741322220283951815923696649493989698143280589798449148061087122244835478878706812120118488648188825726348059387059275648878024846157734901412310508476221537464137120560768696703288127328470516938427130119440849218648249325931652139877113801452606068102735850326720686959602745947384058477934520020840695371663718717379515205227459133117692228386145362197451635043882898273130959874976461309761898988515031552534472264106816775455727209588866600434304846619145377383389619274058820253735504145828290507326201176173613539138781941235144025863494150013986685978395134692123695871534091444451758387389664914655519681499588514286968853645342925734205911254304603175671890187564424981882188041335263257183279479262056036677656610723493471096216317826209352924246236564454879037789975545823712391370464145775865478149649372188069833147243691872135962424619161621659697573755839855664838285984011835821452890122722360565816960266810583693117512178917934093122491677495524699556448288618572126867527844918428919671032985967142009707493375372562562144579020623678384195620098476546923344230473337367850003291071893270455480349392232364840821013839112659454182406501116991405630943146268353643420029073238880827762219079819029276629811674021309980159217143090418174266576821190717346738080987813939653038099886140623949366881123239335154451077187509130543041897281745778171222013048658868186898914675559000042636083073437716205851530461639038540093645427057615408080057449599148444627875577463085904249889706497927351120488539630937254807786525149386618415226767053114077249581199119343293420636646982309236771062736135816888422239435837325903643896545574169176708009418168657465188093853507617291065297281079102250786955505297280266578996687622503055425675934862618647845274656468790888870727867993471291706793051350596421097644515146991048220407139341841334581400724153886144031828336787185279474738596899516531264910161746664919000594117058167203832227170320142001903335098678593168099013831678706001832081139879467436667467456330222163438220100608180324171782656030653509028122372542522342410732810102761095834129269280396889163571654888517351952658181112657133669204487021287608949994967926267171179713412790978131273805669412613537802705164956434409922459736990933367034517093459131613261923886664931132543608545735884218502584153003784144470877641930356959511026108371371984946244610608545060482043971461584921665820028777008761880500157749607257171841955220527387011610434989323547690302894080056190448558803879650426066295437672501882214845521431042090082843491311280507050359903464342012695767673088188991744964375851332869727941545971233524255698785988008009348345988130917878714833702932492520024943543341583462167155206919764542746683106329378281975048042964479012263110098066586590771157724807635722333342908845651927386015631788837349364882087847722670431811029604606534806017383328372009008275390306755955244237247791163002860494991938580502449728129962338896039395380246679019909508539430639099170793055202169507126876618980777668631849904935711545392186809716039447278772859317392504304080589858521978894993936282260619972072708975545680632374366691178325347653630618436374614434054411284800047719370143935095647465798725288202037006754023557440475081636610380711066270411302534454616392276163986011115646093726617557227935974427257525387366805726664421593969392342312237818016915604389697860897033705632819050783501156666188475458908107569240817276891878942181361716699106030108843896556237531220041321378791849054917281030318626071770395145333904590171351519771425798427081711917896156754679205454248605393446902600022368110063604064845108638567613604410222632160596845350911774896351557871906166934075662036740763033124941660938158202728158296224621482536733873356356474064490344623045279723576093629940147112298664236145310825559814148622233441679735095627548231216219030395686988829011272948721766899410305092690340020307610423549085482827203767806616236245687949612013917999668134650553682290423659610856662119275603140480364515270363864223936450845767224934260548671781129089545537285939116714960531494095975607926469190263257705882071666664645199572339563339646190537710567445287633801481513716000348279894333193023490118127643997926291587018179818879662068300154673038157609986108369534124627162925952583916528989046398591356837203977052398500673311800659945323634448697130167852417795137944204908333283722485226576828989862673476055003158076118618365302757724237006840479867445340881347108270162387116151846656907994087405586250770566713897398009327134347953514820456518063927236096734639370288390781797794605854538236036226166663672220323262690454028108398095179749461431219716176335329600522503770104354576419845565844553482932856688434642849479159157991345433812232138232327904436947243784208945660692744101126674077850389663977273572590579231958165868213555215573886579058519687668502637588683452019381810287014187208383394194005519610950541231596554715942070810612118188156592087054523680691573848079808441762675255200023185498034405837226218520121932772637328018046921752620796353593381927217991551491500483525667441290478205853330317696325710069108316881648420948386522091817038469358890011012916754402117973356804901397448660765828957933036340345306088162034727257993394491313355126706314790157233119143375835963645731221800869315816176805075297401929109251441095349079095703365123421778493219058806118166764379748278873553924289482196185742798721387761987770695475096884503797534382804208264056486631333997768114752616532248463903994573559290264082741522255770182310256784584371371720657030020060485861499469661540491396507074647078062525818790879243842222639907098614469174784454053870491389793409431287870083082015734206189154566353442922186243564268348097074319154487372904394822322666005742441922821045190076722631952951624515254526727467822792528263844131966712912769098989799439054469199820312860725912213352609309773624805313139221150003985193638626302912160368219460897359882048548653445795054313669002017949027729868779325549115276803891237793005107339125923416220193253768574238363836797391707614314960574485728079669057444441169535724901860888565170767688411809147106715807057303363828142413960591871884114891647119888882814047199009546727549395792632854903385674298966019722151246863808630733983964555916113680726290067018301325275394616524299103628323061590826661039565755544361737451679049144249644388520891502322737057282058359568063175305271470533966773604085769857193409867647228091263898014015891395066273735215940299980507738577273934001193257141182870565995402034748549664740465279912455465961317264707898383403600346599044325356174614246419946331416810277706112310739006656591264428542781163582257190645960577423894285567207676518928789933641178337352199193159550725848065038827789127634913045371880536154697882242909571963705967341350712291143028334836817029588681481473055488289446927876449540672075415095548381992741971558389850916840381958563928261172288345388440952945593702888889324459814645010173576100370851169525890223715341227584342338919520757091390790058849442620321121634334509839388180166015263936899873518097560792626632763597393502588574715712226513054525515533008176604356375498694543819589728697356912254703782547936416372798976487593663899625753625351605809035251186771616935834939554205513130282457384445882351161326264718012049545758338638112763361497980482348785582938602162396536945965026925242177137983300754547673831419231395897380931052764486276566020671052875215461305961164425678118101689834273153989649624649337493213686753229082852116068576790637602446028219737775045885106714141470520694284051084156814648227081320458031009322001103830597038036391291412646090756782043800187275419444816742534869849705704883451134803254805849556784655457533230987494286440397651203813550485063663052984067407972716345980730875916883543852617146490434959737298397910607258281921414144152725692248516949568072069745911106294086788255758084151341461555636127969660554441638525896857581206173573057663689787700001776265411414493163010813005683511049059621560234024742207180596800773258414858643991981551557035258660189566127605167115703555232910472554442284478776226142605647029105260686268374955041979513497914905287234387388848863739870333760536150988995191817191220410406301462059536101593608328378006052243930050518700134380881058233994818314837749651759777235890937337078063468880640220127141167386914892124049994955033544358490731404550756964032030896650925708872898285777292057491136927850615301428212410668788111438885494409987662654273409738846267106164323201068631326501594404172222622377337726549846361888792128521021254471279082952836575304078421049520570210630100308077129052635685343680810173766555935700650802168521180556024748384861383646716357885732553131732219627445524360161432862945024308038425158372027759338126851816856845707594631394977025065886639840328324980022358785437020347137044879035405563394440704315950830064176724804684665491100577720851189405629705357682796874733338389296855900785779627981579744293617710849689056238615368838216723247835825501756175804024551900220470442966566117221450086865322708293867434572918705679695481692072780110816499926195482853412551367613132633343189522649046898510597710617916358772848468961868400516843441597653311033146675215153128447084789852113063076289113238789831051959909160548562960473678785355459382288499847732108292342475768123082280160825684465417856600046396992496154149968939550212833600586620435132498993483266933768396131830144524479125043365069284468659189766621688043382799572293935336651394414281994676413462459319310306918235535536647908879277305741122845383084541539581330384246987294432614878454455057083669821698270416114632056334276713654782217908487113470561436277543480538298354071683174274990104164671220293155704095630794064580862868068276504859448397167297597862219368818819659056547722884834883609322967976730685167586678375028705447962684729182483805114127487825504484499108260792825239616827488621793843643361661711256060724594241478107807295077638716315717050629164185568491120575020004673520249322272170251548534785097913376756537754509016439630703764183365190459946390603396258465030584232260927243692189269407687558631183976913989396313719292362572643861129629616578712465388344791356003390899052478669552796840666880277644909985073835392733806246369379152257250831854584632390787851165280182074704310916901778161844213239455424940250752282245446203571401639257234477151498665790829286365298318953959195571643363225728537746709811239475716846112881411492674730285741384552217359364657345481920982032941563493678390772500231660688511307619348146860048559164710398888429453976365550830513672999703094312132788890543336244291008936086307644004005690590193923513342160306075455114944390804593525926610582501875730418720848053343986293862944650846029067132297505449889400142452581584252641804087896713612149179636083920885058012472686097521049973459544503600288860605196526822625599673954754773402872348357241693637579637898417535083579207140604732373019413023108304397111006377322298413895343656812863418257891194991276945463691228743512356209537322179494227112129671108809806019097756030147540261390129852576465768107624693448536021114973365474724108953356735887853102590000484096510174698270995109645898430683694528057949773582643491901162759945425090867464534448915087068368022235478884734798724040057000681213112977261417619223778195368173745669280259822291278543146834893103438976507099958976211409751469985821859753125319638403774513260030022194044254925963456108964105387868405294555736572206153337324323707060126304032942786274566527715796753594742219499921333183627730627586822359391977834866789757833268719139397458150207125098848229276366326375072934075699760108577511160580453927984400455332701471805308016694298314269002409620320456353245717660445559594690583984866786814054816925844199222454220317001263548404076165220997583547252680497924215967744291397283569736986643842656902239129089449753606865819104545214487078361482462121690295045101201347455640256450637829867291979059684585271081547088459695185809805532767251646845319855533820930524846373069386475690255165913982989201011367235375912889375215162294617035318257349565179152241799152534183864314280350767303906573072368091587118733226425277623890555514143708145188442594564537554319822587048941993172040973713023447616167732083790242245057533330266864461750011324612074947727610532158616808664313778661029483937106117325503502957842365864191347664674931534321432941140923531333045832983676493449475415276775196432569241030969158005544574057590886770803684866685914519926491462764756399653405626378861890666541835181844233486349447507489836647222614295779119442978617421727109638260443480686954570148953348631949088258351762655093658642877413321210832953259822035887275267353278282522432225388545263638978305270267742707965085980671469804673256957721869654401376247362586314820008523053200353454859475535029445796844461140929826476148890004460682436018718407491929989472938737545309491733348916356168549825887657572696613832237561175065789900317202409065345194444004488563928327727301325548141750186588184700175427579406997309228183272297860372966468075608119606072461659404529380817872343237872787202170998535827074349866558582294417957153888031963813352850447040189135113926692904251389866080907404537179327483237879430599603541036600862808474111394138508196194386111560662893464904571668340457333032192997922922578067274932105855083225479448082040064418433241992387777449332993527861778030265986407659001999265396463441772655094786543867946529045560782908822941577407818280170652820189320848761116912831758657731926302659606453230595259712227712076952661421355981910373905243557512981700764199719900842690390972796104981863426356112113600706773622242551009509951116639201079355280542494445290635872350629614521470324543998603938506252955806625051439521753502826441265431944331022822686639509566938740651629807158133625842473970041322898580256905098553470014206120550644863078070624050838497821219852280453332818799808171574341018426779209515480845401758139314894024929328848484152840080298076754033796177157674172339801848354476491523464268539105806009903585347058728601332427787329735295669138613018989920545663738598552900849684138070136180467436479900506227415438413791577583586278020193047553922878534670525111481704512332221569908956132572914333475775164340347881382808395977239299011077658123749406193143886390966325480552124813704086902121111248662761341791871137646084239278065399316316181130912027941475492911568194984914844871509276408487376988483939322623166186599584510164195701937489318212434434875586006633994350398246327171378049399817449424583990526775645206630176156149053288521817737447117565527751242935785756483431904697075472845240894941863923408487051136925831457635215113878292880274840106760460899585924441447017585798388914384493316981001642779264257931501093799633607918531708310403724184456587365050503970767769249872937922127130403780211992087655533079384003560315237548149466114951920897216572856933487435189304371025690544640060308654219778629145661134505273512540644601011580894224302818526395378195905066961082765906650905824894088302091908755147409726120928858778654550607112300643882207638352763011178314697936242620567831007609789169453319086599079423787451530147701174937117302744086417966434722356762140931528361467241562508939518157477517044806137889052966026367924779784420326014012141918079458449839484178205680003134318028929881067205728266649344252233861545698479820040491638224307378928851704678442760652437879508048319667700753769828188304885151996176076571195951065176093092424484744678882440906716381445736815868804238409344049084529556715083704701303944018625415479695156347472037155335656647072450556560229837592398308451154350771569416133851099575977384496202510206516269278157053525189373685767049433240859879363467854264157735297990738002647848627213350652719943583583473424619728427080817850983339034831259934129413089654018894466533181419727795707775802905889100425890199027360095886033398934829929250476856337417362255943591325350780559262550500226216400963484380330804120081667341179816488987373900926155335544631225086137039948681988007876423957861179502516511031742647570640825509128137505568079037454550857363264783335468449947697723715518010604421709891357255227508403111165161457391988380480666107449360497965856888082783242747188676334132315207010569040762162974525767557360750754166743289566624114443243748747436163671226338498150723751472041907022231209147176295762860636379039258323669575849895527099317900947571516505186821896817459666889787497402860021977643267950565513309103633313198177848409500268067295081671858995992060514930667384940695607508124355327344880097246187871793438673639239443163855541631227735232150295740540814983053346247666101694544990543774929436665001726681135910910761061231938562600204029831960224135131363074790323104796302328724665157342165173573078949768787618010833715028374529570211577899286806741001888384595647659003062864103643858029245886699323460720598754296877879681813408817803981755572912056308465379356306320902081854138459715614909019891095702950557276683121806046500912882373564686193744405256112585597025712319677928780373035054764885121397521740497436494324720807249334295412934323610163950021254951777312526134547853646694643139907789052867593548265815829131219066667847918242743075390193640961240798815902314322910264714737337503598756625163519884761723787490070161644242700898743839803066996496510278901924967779682510376028504433891597329080979100461116817401247514152330055868897157593048195347020284458482829374935119828749662089844709031091466584613858490377242866497876063446437929873736449246235128126999865017467628510802509368977894436069983309348743580862638837465609608271397620577346864611689100666575380160210459348531746160490460961092034783086747589199769856319867729556009862101522572813888415020043670690093537140585689090632689910202327554476615019287366365144122255810242089961096139067325558271921138408544293196137694442828306343885522367445263480337224075928240768364336715650374838777078592507678853311556662724635268380223734752690723481351414735199873560331895044873452243627107748848411471794920622146297354947802688444639737170546487104183803178951559345145963429146914743906670705258018598029905832034493023226793979950037942804981338734906745676102163485971509356880043393433338244114519728761364445151751139277062398527190840541269239621809412655805854377157342691550026644674085135672728816200283683297587134743215027315116463142126545403980736446987188028127144851408249556496913814376709530935186137354935268522656951510328606860691056023458638575771556985291628571018083077777805201320651572032282300329647371664888620899559839526984197467273682858151098828895916225688998282620537137516979229652523101567186719162439363856743102965758769519162349507556741257535377593566103753659501989348521042793223445966649283447232581646557944667663474839457337563280219179664530843150357224262583904692722325856937421902502689970481794704502839646699885707691008360987401573956268576022733035992952815936716719034524407230747672559894425125148032421869060684021321228893229636265623909239470116880069364457704015528134990598032529679949703830574325739975881671393860102055582132103452712668660493494055150079037199757856860873041045145961472484581738471200328038258260269801219507180121778817694992352602333785388518153906859928146428533891495996547683813764461547237250037064682653267358323886332592521343335130545418785730049126836294058759713801614094150834410747679286472963713716062101814267173693004458220397201274098795987624540346589438695116581146314988211749677010101483105519828064286729328415821541539176519229140612347490597608699550089963799924965407718258244311660947124198481498477182895307143155344921686008485032393944146561074317699032882506777094430530806076554140820265913062231610697001227717232233836314223032432309650509876359589053789267535720610165996323605730344346898339154965017993411150134218007164927628792326303193785079528311769543282120148444713241041612222541950294020150141385460699722550912992987508877664855668594280908447014662884295097630638617399203167888511129804481008063799334663884154897645074233323446991042991959047125553973019367030622950635861167990271614304682752186434782599406667101543073418115662951300629372162750260238336179468064460908754843261232118147220385899384263302120163525645124834718168696570702122477969465761146086039279740868180550035345083346787631158174700777667554637293119358961636091441978580932906207821109798139244589103568280731125502806259566331759747414864184611629913580716460554304693193104054224107132859874002976909492224019327126927897672966523165928398393978480144309495694052694513347897576102218686694124947616109757842847088612745073026864634436033972749961869531321580712818681131497148685988088877000390221668954385108756016231539880536745871028981208894977587961714150293245204540053560564345888319088041086884237530493551364844186566581319629998520432068764204702306759339736222433604640703294146628570138957981662091207613079097177143014739133730040693996169904696122555004619313362364805212868397227307184026619719595922882434401141288515249219069553970128541929013679752288817043938420381881990130096630832969776968657807919902121655034810250500201720532911975545271152698837127733076413453376075804373362572223437330798915920553599143297609753112203563913218153537747014252643720185009029202837821224532782305692813481702504999583505839192419292848383912296908742312089138857458137315819850058196528905889245707230609164692123639949375119467027612202124128545550606029514577470674502798795235529201265991799957334509170508886763024633054663704415669829641710814511879436700318496341325711076419683612932293442009198372797906213926158058750481279515851691351901811880220282421064618298619471799657120374588062048604621414361796648833369323184916554857334574302594969328731758492541548150451823927760205344945938206377357874906670258299691900087177842400277456908588619323426107440736180024635136865478237396089092593610939205946994930808349980980412043316437261212477300330613163007430210659976422062305938541854016731396403672594415062775806027357764694463509345745477130683996576672872579963006240003703352473710183402659574477609135551647068693957296014202280772544570315733961270166236565835023073053837855226128161924283826375221863606958490559015236154592277064636280137443871381270594748174324861168689132989658244473288281867107965765607018557057365977572112985112098709384067195893446529973601488636271491803305437278293440084028560675229164867050146059912707829536847459928689302954602111731048240293229161219633042342513876264143074738784143734358909073159216182978848338993039668068927634399931716042411738946748007440104587477487863455707062082013835867217272600356058518205262969932067563498002100006835625177619362039900727813740916128576774884294163309229999608944123139812352686565562128723047408123914253119276860900035416460323253610506218776900906515049785152672863264449035464589187346042521517845666704763919618163989275653874670058193984268174502271204642749624703529038261760124802678968085458158206090797824294445466443774403683062297568731638518540168826544092640216727227239606237882087192241311480948504041033251411475615080259575608955585805587590075960638823315140930482444665426775636940404314709324623352694570852600395133721208834423608348480541423912817534205442219490848643401370005009592768834663685947601993968550562800038003633895557399669641624009479335604260947361257574323434740203702372003538767724160766253403560621267982187859859934875742029156103751670822699049524105065094378864294383166988822641622371623341371351826239968681998298432804994919962215225148821396241388326852265212863326128847131272268311876329750892207533673799295737232511466587213036744836338943483167952306222635524647555839340286084193925006145930621769150769711570844789376656394419729215459956733145715089958138336978621757135950360825226791955284454840105014302402473231018269002234067692123785644198779781344370787393199555717838934518697390128315722307585306014555207714463653110961468382463747056435914421649131325324711404346854021415889567793734579942606398115623877889489886514703313031152947941911224687402784375586752102598821820378500109754889829842163687802171092423334556590294435594004105471682575600709624559357470832235908716693788582933669552349609915833859152033697717842213595970736112896798974933624054448653075035028271653731971052010723943418306673962414055638643654216836555688278517504215561199294075086118481419476662171069859260974348023321845920232308000925162799793268482941976590932556356446053423910684623872444473750014536373563218309212897228829231729111857103749121148287726405719548087863554912667698405514165193766889761820540534732316029584943021558283777563040635293267462981820659881892421961913021702193655308679174840547828561726184120887049149075141549514769375262635850852587764318895974205849518002349977648152682988289082829087568515125541061653833757124611553988537773436780259524241988963868061251309155633267214724288865114684164866487212855901579250141790274189363494815378130814152395315032832985240691094407911695213750019094787672646146997030658649674503348973942185142880630933599840510263352840117573286202163786823961788317482576808732270902030633543044734827591026842767991120085130987550323341217711615589779185401350344329400699738543987509404302945919394636387424899087049017325186984604441849368198644464003436806156972659631081478362729575415483401608604611516290426892119515542944995285658133853127379889134868774842162270228420299314959818556226891339663272226038132189743249817169591294103168797753162941690870111932066988318395202312657873574817966849933061418467367708928396487591353403687855415847624675779933920166083391917503327856145913952609045759151520320824424979895434922115207534038035334318440298681064224761974488356442414520387976446960778258645818826857746439588213549307958050096237721489138055311660830071590185959063775123115888979720170674004448704017386188214078527591939197459747369214186498703888874511776955166953265036180586643696335047518109559230902715703428945683623850657925720064724312489625364117611482898741802267985326077466917277952016964971322144708837125164902597642960031989160704371138159383550744976293325246638649693359740369016101178838701901715121182645845121283909130752799110191441416909080662538851908879434260033615759249561692190279033274396430992507718915848841280801394022829555240751484182074342509006153106599852233706774520428781731250720161763897986186222583151598941173423358000806434965881025632670158300671204579529374227241971257013699427867133927249996298637574156648584045754570689997836263958859704617325025094698366735649884171496485857394292014585902113511464300730751733214129303041084156482807930299518658753123042025230296509803198043357088617868410259376146680094058174308714678968313181138214972109187973108299609163433653433574098762560346594864373265768993632441338015983058977099369825169980053485827416585888429980814066842497697554920452083388467590932316290921519694450491975815437589659308845873475335176432631588698484924527138527763856879880146418792574633426480015726667961528635582356486950623642407987016667900569428121913151755702166845818459651250671580022811726840031077462698051195078316687632846777936569081334290734927326621072088973769755366583968012634291273945176618138087899538706602191613272247271727657778355318354242591100260968692602158609051613931694840988787922327434194244740939215633462021047707757224377477353858173282397168311854564148036260707119882221055313783450790559399010580469045142688002221703183086645142057350432051349120015273715252861956464659980781343516273931788942082885908133237609288726583152416150158531299208703063756332576441151524115910290630663989053791135051234331884481968782468356070003394060960259526944577830949055289528981064163624674101976654764419653533591680700692170509589595009241913381913974803713239486366469443331979091574216250489348043294448591452981676713879899102784003774168987724906887146886898076756603415388615320495491155632392837485208923386741546080880749010212703808319309151317803409365295550658687130098379268947970492493685840795212792743197304369224009239834538708961927255304930498902730918539885638004619337608562148667073031849353597192696850987701437929474671176824654617720777793885351901585023794955369050156287524504672174153096158446027317634770401826010428460645513929298216963750435862055003992363029235466443187399154581301965407486325939312056868547399226695923740213348072268491436081798369371190659311878422684421493892638627348764401984598043764796176004826251262869436756202128137155172945187825763443742841947351632635655698569752074716468825806514768564152407415509282017016695684665135484073238612751593754333872528594246520215049210139638442279065714887231154681229801747156199897341340985946680443415584290710338631009165778920001904012865402088685748520050477751809817082952720816638752696110675513635515062555447619974211213597424183413008901346702308586348110144369487451286469101067544016566922781841845536923897483745049565816312408787589118188736087844302658252702966732261017308319459819095215659179593954925911002466253808246200388117341065797362504832636899506380249035718522758922774895138662379971907847974893778812037602298550258487482684115609523882490118078027927762513947639295575272773682760547370410790673205663132588163091847596956475752032422162804385012032807831440260217245503726232433048884346413554272415589760687411715642038333132129321975900495294450544920653802638390552744512921116259156340659586815343790843698598888429502317032932183223299512880114004279942143470205085275961106565927660920653354253694229701536716914508283458648106816230491310623542788977773319968637869343812270562213356868157931157761716275026740376044624153116351186368438935727729655458655285770501576303664547980875743859629279688711785273414113091943654576993051970969975364445875213951559800395895267730762445456669438937564212457948187351880893935987667490466013335140186852491258867864773632016195531280854598821461554891579968886826333480724104418988313888207582868592185175689885261240438291862011157107195456439002599405875899163386390334350543155163210692528813108591799424167982975725865151615243991909288163321342223393880166885267265498936277317598574387565510620162008088680841384553505299023586751669233446473760432963112003685015902471752365045245113950652567097582881191740777839660310835515669816665178880701129398083654868197399944545461540676460689494565858144296390229595566274540334002516695252812696484135368903812213476594565557830312353977337752218609014691834932071926741530039643595172874786939219457043546209632573032677445098008498101500032322567863900424816199618123785858083749132868704733388603467414054462946487996298062082816645959290864685241653123813594535584297401397762956539653475367087339851223629115311466994845196761711603246482929392199599311898091433382895352152513197410776154202539963958391411987167997466166658770691214554517711837484982292250141745809763962478353305403914312890079513703827872076691876724007081997646125946907034022694114734650603038385503630854752403352852048486327960366573188788811688136170228304537857916672177798966741535610464391933185752079217829436031822801322686510538634316508725777006037845202561146375807140508419610597776482272978010679410531305167916923172893702821444009486622349427404663317099333453229611735143264240567793076076838966262436393617087360637787481009675542805926354674505955765991152977365073938107341254591707449820945681530403222567842449451660991616522376790553388220303067462660736100336677595413882701908789235808742459318416930272988855995284114961550074331507241836061113035623213272731779060354299339693318057622023289423843869497519618155645467302072741418745318151892181547410582677785012565147046146798218527648699433855676824336421064926349677986678202022287015042221248987701521626097682997957135520296691160557594954403388865609137966199127683453402585803741919800749767211231343427142262421866794146732424048712643794891393309441860760762225332205568471657047598156255668523244094303920522261839513409443262703069059951350295468219159697803960415690536693833612755904538935838596599790735612481955493123352383554453829812361961812411455050369674220976216740844976181167377663755732630979378212307789686176224416202694366107862858419523630679911958826221639408821571962501251926742381315490830530196668367371201623942787701682991784266766144761491138412132533897187744859665046867327592652601754473150926733789240453973139146928359137009231662934060261778424527597547714646663946636584067276768419580079105394848129232250102431771786260627235700352113933595015632701299996245567974530521878559797170436791375594371770406813943740896532008166896150743859657152337572066377407646149020821425395390293318996349400912154621521826878721827735030689515284460117357788157043131894966852357903270893017334398644721947196940432076980733443691222318752544003853507055781110560457788032195855968937109664403592261358044316764697573923625319056917114816106187939381292415029442964867152711748443805741566767167543775876381641467143949980133667777278756284969990828702095518886321305111684848477982833242667597564306661773338771530239836271390544168123974738177206021745603191832811253069118546880246233416869623617842883725093180549112783382742929692805824306795381666137661270756520387563730344085954633432996377080789197872293859007647219011488458211850090623333567244803079771578302742999432448578087890913942898052838353916122154379166910009518141462256911097165880618399899737567705990160714072777265801152561741542317234859813477319412573101606025689573646789024834480921009381856332105976337548232883393057474388815145093847768630436707215637114026341613833045996565689119055561346164685397325898885880064863183274478168497758008787008751184160309047188973725604719364968695085110586646963801779533880965305045311707131451501955712176240261903476512624646238630976575637402034160296629394278670284624527746217242779002296922324405021443380336968769025554540307557027830556730807945444842175299442742123333310721705880277256858008027917311864129754561334938660882675536429105525669270341652836397140236103996993849614856876083285174266764346585439961036125633762166706628199887395473388507052062234727485828000894400000057145951059475462920578272041590882727842086522531001505285976672103263144816392897191080585787440182778268424939447708323143833929588165439447224228093222910140216645549766474162508357590919204125756681187168078080110163385830846946448242731663085592678881268545338686982283239540309232301496948408281379567919291883504697328161135232329069532478019975060335809076637043771653509983975547382972632131798477184243998401296542686894389839496576908785841623045402144810960558112227669365602227835312769223007975244048043384933184568026935956831899286274771150716444584303246876094725457960482803298722651686686038082555897912129025398719276079791671203830997922203274859704888293929895526141106291054527772669144790518277322948510224797903370958967626675397749338811982368959943934345213202591325993314153969795208050039232690929542083376869853955988004287487369291131308120762985151788130340296998428086430136342161118414427672856270326412058370470744885635043839034134453241598082021842504055138049999171335628234903931468055301242749050941394511937586260312354229028826389222063154453234746974936015742484071820965682248274448945429408526822026016183402645835455930967641508691265316345486685221157115215110016663978757039591905517724172927641566069549033208332148046266282091118193452618674729357758271846528879095885965206102019146611638742192394418721089855154624413459072170451272096418311516069168448609491013354022146025834261187594396579494364606414395435697170976588584849857232778290550956063920628101757936556316410529538991438027158381013695851347047692034242835636496859041505432611890115099710605596173866008000351414016013927686352386515727975013292239358443118075859333322215234169234716620297343696654381300001338161979138483196160157151188348983278046834066317884732425209532314163962331642765204507533428929303311207054164614679789919864787966458484466899239209643538493371369671475246163477676082940461129006565216992174086160611544117613817327357606507679480725760982454592908576656614942073671912940487768019127209312230300687071829209811190945830896938251986021741983911295749440337832954528183730508785086146152694489948788295674860975819312585196550402620523620808439175365240691054925185413093027172701196595917363828678946099535446765421691295114934783977426796501691701046358765653315836158280786081000199366637185205759374806999969961955198862114686997262308998832066388364682501046046635288622212517824555181601552199343865073256609841478989747749255311609244957979926621813630644561402958788218261601158951160301096082891977959532738118012044944564388941593902770507539423508373428314301611078077050951900697459267891580086319146237750499305093959299522930149890501417760667343559271353438460799722084436369955339713486513673555531698676831167816517709311093726318573813949165768870644383406561760432526051810695189149766261944545199652713331816161028919396333242822056726141159403403956587639257870445986133145071576250768224330071192737472442389121236175436526153844782291076823465094085831602471886373237476303935677123257798708504704116889003485059154277560362838862982689978437553006763035463393363664795967694946066343170857586593856898064725194097916655444290388533987797002319104680902085172245589275082441318395231254386628081164885875819639808104892267430695387756386229123708302363284554319342687755791596868922206082139778375860359738541542429298851001841056374581566920329165684488308670851383060417815740216682110863183391620908721386214095756416682993296290465746971748213734951942145437115736439536387255313203456964854516700697732522485828644371780734786636490711303711189874631776972618337233453461696824836826694169310963501393633664736021050939246197166916081122148520028895219306004881862805537356477877708787619099876562048530940700429514503744831056634121280201457392678816125490714862187587547982068338085116903111424156931456656462999224294650534970653090225586803274271965611397449028648798567508696568621203818871127086103673575821910320239713290359781339771953794298238865082222904380599739479303259767629613829884005864614793149603016593749291263735426417033064592755220910090267120931913315882332505210202753772562080631256021160444295274598009608349225768993073590849885371049519061296751868283781698879613620216511473862390316251899156890748153408418852218663642931653246919959938117813082095513931383296525786159139861456189944875310942484279572370586225165002293500672678937270983897894774472246512936603216605591952113633857751148983813790601528034976712582281090737110323229660958474582276133443701458545576684905263145494908054636798932678269877465595763721113180121257746723729082887470271190364793529548956246823012558552532760937396339113930839141022449663285838028216323007871587865584268184534093090717712169396147773346459957731798850703002954508033862822050464257692490614286286237212518259723165100851170742836342716559486521262936300106706431139010376975019322528849937270869398868373917009497238226083959802917075727651042662525615472804130673733823925384973277504024561443574996008535625260790508622282135916927044011504928959298786639903789974712995607089779854347544605045542399950995235155156192673637041306519693277390752343891728925427116817129592846819562865112405705350467395329967877135562829535190947245247838024445048950240648886900460599473123277551196362369312489760398594517529780053862339131405124906832626638769296792127614533056017940703088942821635374951170947992813308763201500400521930407060264717995053900912892399896579146111701602683563910013484925640373729144360914948253118449709667535017969084845254264929316190717900137435721392259963917072592066168380728706147614423911925840680441488201529728827262430593522999527517872766268986138747837724113880758206312286152204996655052807095849965378920174127016424508336100871525315207104553996106168835731818272568390245072537645923585331664127940626074992706356313105277067718219876324205377534549376077779220138865292581739274165632719932093886938019704492516144309920402670185217866135308210780880872949157652055360124230307630823523582551396774882957717317964997620311938859253068933820385111043043800645648540405148171360518241309704836085728227453767162664349435063394529335520391023022929998612504842223454630433969844512139364351200097462460678794179227340468032862941899270485131768487457550800372289282125348459358521493658077814088537239059074986132887722528073991668353045987601830928470846652361341031631569011844566523879001370059235970219506135145081031699579256067828837336110227907248805463232537381176964452636571883097170719987041957412114930725874738835075988884838732684257264329772840445108639381767489556345676725804068302022535309288053005732281750103094574895479985416570620194786005500294002696650948772315931037702349514484638821869129743049485072430104050449311027452411374537324383203724611302746379720351082361630938793357215400028440966924433501264683087591590532787945622241612075828601653264472516908223678587124647511122754672077963627694262606431935298661660355119651021658738882605845526453896462424206882272671195462482207523736535119510052542682650995932376924036527331200755168121432689710540635264045204066953056364026019242859059610094894940437484847929918625106103554750799991644005836583098912066107006381318035535356013993507906667049911933922477275916530662512734923527645799610395095528979023966679665516286362094861739573054780535481283307944928753451624042648348976126315797815267890819189275299241524444598081746338161048271484644467443401533581474120381424401936533210910112656043475799054723425112593038823858433299412699895532114427929998766176120270135260903237678963378919650196155092037310254987437547441893541260431403523547270924934447228771236048074844463074127221819095392541738987820842853338638790817881532783386172333184882858030429764256195117818665400076810212201132203670347246064047031374634963245725826526328031644571524645610605736851006291846745162837872429900979741755597313795331165287447219056682224862432715286910365636435545473812381235201196769858318613575405351277695933861503598669534051015202074624603544333395979308109327406948318816381505309442302498734990432647499859397501665268972610294843870751134451648557741369592168796914410859371886452069493341384271831986460929615041743149017656932831160304558740650363378776475314152172144507364359562965689103005898518377057671988951653388694121919499356841599557246834084795442176103034181285601387098503305396342885361705350665215252816088538679927345429908573111878604378309507252282188115268497366806474116088810989312593371919284695798682869460310409209411227698750957738048002104961477266995568188947636948580122655440860672613992332179547409684771043620774241845924161268911653052366369143331565567683705490842165505183890664220057154002554499623415548870788223391226437789890374437393501701839083773447583224201205785572351105499372497305380467495583073427674981137959032447032147571189340057837238064536341318218860651579609945187936714363561697838226293838822900839170942083418982265938512261109207193205907196899232857653295385065167458895235131159105823591433325604190126830847289819535404643237742710900944113355835866010280702234669736978398199473126966324218535362516025480851442748769028487186597112533346019641720192430888400876331625624147903293204359537789627789362173634824954027500007714513904021809293187839608736412481555945715652805875978036015669416557851913349093978908815229590108848297929734596493779180119629428169420456898654678401509303168199732851801799732458380930237051489049209186826641088592332599824559676308116085766120300077703112305879284737363611513888732669716093714769238825660155837022948811829784909392571756066107131683979668448298105889672022198462312144807409205478123415504823964995899873320471067952698451363981262905018033374198108643565534590458614702334749544661939714417267440988454585126387873482466495981634836271433376452645421011935794814800804922085826673392008130729833395336071354103396501006447960899073026849255897182142649021509488595517822330854550337140835939972007476894169462358211683797645746485027219365809703772020193747781792357597536916446620289022974553298670102335353610335350467717923645202043856943988089244666414847164697197661287397672160027176735222812335131505260886346991187355127298044527091828253881883440975806423633117307987787029813578213180607280024660478693323006313584100832558369458201185671390706792501399798151209854043682841344166691012182802214857108036633455240325008340159338034542235777501150687862053377619428244018661298137948094848985492967823183284830917132950974314048868865309409905160116877258383048441301313563938997363803729441934414822556734349476314680435597838195081909464865630525271917160242622051882271492272318337008287400512993896345687803635024029404349533554208826268531430210396865291313058942250553495417451382844586393612078185632240425702323123190189351485600396608447724961318964641836951738093323224337283967319311461874533907426897641649966345138513671543889112896701818658720040412663383564084582992276222132598178533221589622465871766459875001385656304593849921122248778524791651808508311331933178059877377117346611776417897155637700865736100624742444015112902072400667242621948961411050407286803968717984946748074225237893457791083497315191038396997436585719947616333046613538413692855198974373433185270235627401435043558968442316793717373463668085173297495746504649284715187282200109925361609917533534576256452434984266373891978453497980886898207631496909246558509677661471752433011254673381486622122935642991978430149691893763272612961066659853104177960159314353717212854179617278340629229523818075965202796059832013535397953643841508931177704425379748570106058596272649024689367948377919100620202624669851462025238571611841869009053116593404639944224961364355481750040028436179536764917338232829813811141077803432241811033569750550769179897105481784751227676930303297007541679300304231263076202372902097789785428545537402060166251473371709171967900971765727608627775836242668111086491019010871938301271789287147467928781246180051735403278896425632434479939585875919029575604236483057072322330583883756478866835603555745925016121048676762046908204964924058300158985379074643325303236584785947608327650152884598565231760096056346362208368275555188470697724655889730250777325345934069941776012466796150167686599502267133384297288715840714569441793997480750827797642363103583484408258798570224196266609637929194576878934081912678891284708496843021358481334988037875749361583499195375188755580085026923544528343703244551322440229463786581341651138845179421521361325906980483647938984697382036133376152438777574434872996716884485806189827398087060062006531416415492978380199951788300637374058830157815696819533402057596643116676796675861468996595896301225002983479317559445770092272122451137691339341044833890697117731054698784308449423924667011435878174198374022509046317366030677609184783775293943963675750266323677430135243865474488403455006492506164144571316947578570985700030657733408090245482256869106609024614699762782369504912349930652581076027079238925742002155786264556661546398272461230495096240394428921775859886600352065657225080986227862385529876950631773465912209066275543450013826471805373200830695753778084580234451294470332070743097030797320650056722109088280105071278008740556347143771516456380711814719732872983745958558057840512705519994712718293615688924099932197056931339321472619056444316251192578165500891796765739377754141322696763021147392947976236631916097910153813966323531952501057308717171758354663614535195443469606996216803727152879143324438663059596670055822496210943271214330436364129516768513358731415509050177509730926319019099888293378391879287435969378210670224405189870132006381975892709242577840922976258564412521956401452201369608897629897935341426476582386947942542627799510744936140909210186076176580087619319202452275928820388145210458520329340961477021081928119243567865871335197129632160696966118897012356032240853158982542306564745501984906087899338028923637788281536727323084021193502244121432128400234777669094959392148387760368704820503387061893848126109716393892434690403804444687476157549182881351447026299483298640926488331043186226115167703972453467006628179760949470293992857831687064658084990094869676789564207791771701943248717187269100114094070431280810638077427402689613581307738352810316758195086249142463564644854941624070000633051607824311918700745758250738449495661093510851649833565483297877342326398156148371208299129772210520205190170858216816882901803033028498708893311212978260342215631383246445345172303022217160064861738546760426744532978539586502590406159869757508769628740426134356721316701116940725366206139932066946789646679694000632880360567466226013345627842426997512957537857507403290053617662327776946123356887645831080619525645451898028408509433831941780999208853117682761694257338494281664512512582563130619321742289815800514863729416840312047648112590222871639993527557463075557492829394768982218042006601853826911867857443120921404770963334526438966960027229472098371957930219904531902289650632902890502380571309449809773124137097427367494272871268177793343386168224964736229317684038731368416303200255442021247723093052077617871345221683079920837218467889732386008601547494777517045287805210743482012984322675288691288656194417706525908560012116619196446261223023202552446346287513906096293623593260625889526233373720489885245394186012703560407784830139707627552251077050649482436073178584596411600911757305925141433957148491278049529266487402763202717417657254925668667406861449482770342735190837431235116710355037748645029478876996240375559850719309590142339994858615882702900655918278526253130696716482845540767041411717232144044357152281294141307851910336946394460826710617589377953576492466581633366114326302939952386414770874716035861816750959548672813761402581928902550829835912086204476643006103599870307312916088842879778457349373987605205747128827820024133795512902267766367652317237463873824132717632795621025246506024398112664215058603694257343577751280325102931821977428906358711205146230317129655878256523563625589347570633412968819306726775377410758364007159663755248420857732003190225293891079668440320723756041783327351123377016273251014194536207200235513370058090254650723152307416398823716628451665680002717963389660941548506802084473511645631567902631638639865978300119209734894077185409434629876664686514489569653065784983353755076177069940536468426486624513826334537389728889501002884839797823582367798279590254896530573724336146287769681468690628996638114192855335095751825335101481660628125123758997557428038685146468946578820089818172353660213862556635977853618027365274307016142913039218618144344714636991879152582131106712653369025913365093684990323183771870467007598197669114233167287038006151553651356244894733634812904537293629532682822127341495221680523589578494887185562757394860121001333906990481552559936515923945505792557678156501552325511140373430593557366105804364519481710831092891669434955681922341161993711388242591213606936451656377389619561437030066193045687545174621316017741631868646006107058514588215464411367166860147611341268975989039810001517033418696243451030801964762608422768321145792625365176236381029766264983544730347945038101127536342712395650082017702236508527786762167678985870876275996670183076705396362512855951248325700305196071042450558365650860184678531182990383185268653148223477962673594736363918020583968674290209206314900773487821376674313876763202748038699323908679292329369054849272277406342287699779529032185801880878006856117105376329287520235454576693897119614212552256640417885750655989918937873949920568569491746842099710256379991592128349306133187217095359792949132560217560170366860505218937944976665060882509573487144750033649970814335660463905253211030656717009482698099049834368718726772981031122103893530121727005958731392102874502194244428512382047294327629346174594146330242433585664921440727914667892192005669741343345907324559392761177689247519410124189825889707504349430869579037861570950151772391404607520933513097279646485677787925173824272099954736184692538022848620366433968298865547573912549228170292430172356743771256105907725573927483434156996084760680555259537872037163246369194648359904907679682821224916710325927515232902941408997102372640399414656195610263520830465002189501713784229092596550506400890880988796762599462091769678015256939506410194232557146963796906865879879734188807487451329641917042298920483362357922389410659138442123548903053474181091328702031526548135428436894130564612513346832577742709200822585215207817888776025994603320767365633209318549074145996490278073433417569254955270829859057557463339086369271780915630588160070086932585942345099984066510804297186862215601488261071107236408555439554128034475463099843784435288657039706455768771582500982780633121013420105993787010427934690208504031987085217709297178947930559931120140469988696795437225381515233173711440217251374227227751845291911587077369079731412645583942411202594593896698732966664493860283545073567060792080403652291973407913818939885084799960217060778903079627404328850301997789720118327727238568388340538606458845544498938826926961328400158269299109192439669991266143137616720963165531178768469130305227200571050557660783819195933588317138167250185609261399462857469670633808370200706119521637380100196546086748405799594832537904433897753220643845197253769360675396302567985677611187534642234065777134884003464654909321514528306100447862059642767867076474135247247109490821465034536556175041827733072799521750539746254948905818288769341427006282484536902906392137972819875418258213121293274949625590782367511861039830953953784026891103164583726690252621856595362900211607824141935237576843303187843590390382452054150670894416325965202476287641106658282604362356957846755444334949567626193836690426977998357148047099731702445533241250983206485965920037276290254977643920381716945356561384013926913945892209452921937739066664845219698816608907848886207999518149144667605878744484798976951315510729402463162356613110959122485102804293403597253093988757406344958233347232148099645709635937121818510427070042303150247231911813859333338482457115465683278506034947086584334471276566702369427235406584771482349795137441900399627206123112051908947883837714613134728160268029606085955114818925358578591830239604411483691345551679625384738820123915788299920075594282751391788002268874399159001906949751926487995526103944924324124467013238908986765209561844246564571984205507212542168603284185203817059083351265947984402036349169733037271906825819244518157635734013685963717345643854049686312614714707144802057513502107523018720959673528062189160823275235532797367763193996172904143997038116154575777606069267000285617155217790711715817486012382494073717788169405346827119725073627052771471044610368145270753363824980447584174688196211627913620782115983658052658924032607750578957782327409333430763492335792267486685947747178156061432225099387192018988979120983925862296885815763789588122967238086986358061349276728551943942182286779550363093190709622668415143582682396184063769171864041271242306901151812609200411485117257379301549442694398909820589972776269464141364279615877179033723952690062811034813815835002117825779262753763542287604977069864129139696236207303982584026471330001121277542171384273150528326702500925033918389700124582055216614071679980156505157669148466476705090929597522740867519750406040962215008810048800922663486366260358894449886520823072360267306611140308731851311470240535945963810915975843042360829807110144615075456196985222546540428584213713086544897363925022330435544205334428874849154349905907551259908539303914620010750689909550089905136801108080264577746500037079570868641280539152434629594194976112548402263493703947171386538335597365774357021534578449881023493370471006874539336929271108391712948850605939116705255740343476705250660436343479881023430874695485220034065679292609407214170261817514404253374741405854458770909448557652243044100773483303825488805625156329874334441074879860069786139317458688265605700546866709869773735739443355652890713580591531754385456938406236466507491291170352969196714342193644538443718725666692096051557350858295617398679370232221817614814970317509618487815092761464096653554218004488937825542974275151071215715535837956571840496415816405336768400012299563191220718376443414200718435407359956565041914408666216416262970794324548774036640941870823659084970481860724674677600959890044474549283038008402723998113400546000009685463223646586234958649403756508664867061056035614047405741509894242271051519823601759240967538721792691732257628341944198550237463839636342373391359177546657656580408511100920944132812895374368733913654991740605348654121769131487363220224182987611305307959547814860186331086727293563951221561920212086113835361759132191352361303233553064430750660309415966693935022457603489116294782290426506205591899983990359589072437313369086371090587044398371410922923690513728788670646636600349704686930607335247454706496160384327523242192489191761205195355664364951766374919736615620325335171624235658378919563258167866324045054310449543555938022931980423931363091750105485626675285358844307960292788492186744716899703101088773096830205329661246002092604257450768245195376413869614598806947711575737328788459228364024155762446593417274414247883991867033333532287571908835897384284787867257323578470892051871312147636349599328172747011198867050718631847114317491867614827262208572894621771782749319804434631886722122060517170900349602889457859670857458962594550331139292382703047085570432308753637113287744567593901027292767985825314981454103924835339476581917520222214919431822260165849083946727515698927780616878329332669950659338908912114297495891510475820005528285268794179211609388136907251588948835547213206293869633876744750257733735001629956632068504051639167559179152023899151277102846603026427684824458808219640673212082641056159386269045771353316025586587366873563260387284383108435257783263088108789942278298810635415811845977012232257958335595227315793820247960230040122627484069312951689606624598126275546618368891713878878864402464188884192678488715066469735078250016964537061927437468932317406363229312207871121520650080985611987581865944248839730656853596517564391164552561038550190026533883951113774626104819381349967783767770692207952389732901245980002558936266281811743664124513527637116797541960222842058453545716222287118846072216748384193447472382662328408978715388138517307669675820576722013428588438557233519517160655980137197774544051666336216423778941768267161910025354662262678068533069076899116573912755364418138389681218408396576061324765001345030688957667341471589517493133887306315196477910602973781098169087137776668678070640042798269340694774553715769793764706817162238136665797373226208667677536022580521060627560145111638224539704213839117751863172121995930119130038773312244155743909939798416532401704889460149618071045989567396514935540909038481295592968806865968910868617971952398395821124953229974642389259142798328068360033681981388645928040466350553282882243924008038632658554853198418752736622215233631189807495253201678814519420622111523442325287402896829448907656144363428030404256809653081499251004018298511519899014837381749569383335768466772811316186482295316571032438318201730149586717790744829276706373700200004952206387875516465385444152740572136891530036313377318751489254730206155641510822993185441298185839964361780246662618966104096391462295483085203537263102705104548002311596555357792245754902299756560013767510344601226820556875798672408997543814232208152703809336880398747164810193585834643299706527516683427536825834279426122058538594357782171729598381022081819327978543647683062743943502708592927570469438700401725822507133177556533634362109216851411169121611132189508507511491509161607643269889873650205724413019058467600955911925298420858498841440472902867346681497854324414489406559361933763637758742311556614130825837088709148522593122367280724391705298955043076869714689848039711758009172986838083752611787727880520827781357569671957238254125645450907169458166026742434874012764154821700087771118473868442667616971416140529827978513748742418456233849210678946066066547561613502415188584325814126986886698170980541158148638063298421958497643833886111467058465019510647427337454417516158309545876780848712653515892036363069231891788914248440667702226692487692855099957870113654057820955194559210104354203522439737823723409425901874269295591664910655006482654637693339957799766649124856574471255662052488845051139565578504189648040098262006128422515188766775439965424392566526106340289305974768089715890501025368450566842489578041115875792922131090486124687845604473939839942426727839187160618009265886658109742630792608888384235356275952570528118221987174678718693708999640596230863733660751660557272491603151827322319216583032624583989980888521102731202712664092447194376264573580917060211005162721727848681742783208835058235318481113441535576818918924494430192479592022050112882651506157455088418544058453390052386575203268993963812966655931547965338436763253105780345035075851454647497625383280432653626974621254568022462173002600211106533123018547490065855693243837913210436300748447152657855226725564628560705529079110029601847247967735117882507002090625967627419239418985469132859440433891510810454457922233766159420725883905238987970455410956742424240042779392051353506672319231141455812698011300977477971675578966005117956311937990440733115901698885616164786573368382953927891557180430157465889413072455132856386536941991886908939953843462351256712409220987641576361873440304863823910042852977179967045868102440845134342920091801020702509957226474280365830163068876024052987581719480471528209437933702558216428892673167617626822680312909340283581276327005800862403490489815713001656790518796931306767545154367559938530089447113091701403127414703589844908412272498879632468802617304858861396928822205268431208239603114142247909443211051805536165918299664332958550754235029921809591785174721884920672224077933374556533826135086209118140152771940930082336714737352388138682525544274739523597684321396015278486125957137702088463269272885339834404270045185914078159864323222591991844908915423864003857667707088793175629167677147726395796169343670277817636993420923020450707237647389729339114587658849794703776691458602481595946382449280059706704435692362029781461090521438288598264728925757286072714326434347925672748574998609611827509374993940826781924145230914240975244786062040381661295000235378181529043827892406460934809920590413601092489471886162360001030999431738801889365934472380133054685536051161847217349834247836959443593469615315918787305910436481190472711910565768241915664268256468110346329341728145878245461876631256889982157958288463195883881631591433902071905275411320433456214303368870513855111646556979860041205463919722983290094092997714040311897069488523630362303812003381014402986426808912841425541896537987123294119892112435725980108947683798936571347389399066146531510777688205302936430076180859620952244085966655023239080940399163636549181938360974949877452358972725029596982320557292655830208195066386534628707155198484780372279403439122017101393003010177611507188535697839406780893157320522338430389915582822232578543630263039450021967850419858658357001341033675911674985867332192580549733728239335278867684433841847772323623383683031318294206649836676898394345924912238633922677150873965619495080564109538464476775986948576529302386322630269198468806262222754739214264424506973797897389925887598656922359887192216335465697002368104152987316833984982639993506997601795623383039932085934581370958996017792721066546654388432339346731167472820812972002693136410721555757857281968531661399461170141040025079479661592564201040504482028864000891893855329767685922106011124743824401649180732262211849747992938846859804436505164863238250528960530401265473565337692145777608938093762101119443568788810329863615014556014975404057040144030189647240503239312528936426809278253524887411342589279372153974648481512599614741456620584357472667832816518964505312408245713210396618993676729819724857576438020706241641908664065344626701392538828915415748230104782047582107781426944331726516080128889245292882376685445861156140171740466208755949962981498110764212385648242444256811722076314418090677554724749322915209850456323374240146546386646311578335170121866871397629456951587656529864558112817447279579580547195303960671428879868157036432610304374736734606110748648285549698040891822595977175767959841451992354255552398444439614967422919929891285828772090585445975640719943249303393423248260886424626655244349193491349659496279449702844316870106768744428092559193549541018165465845081685900789499604023857290249140160446062353698148419160755922380525104469002298511619783984786151644551264650091967786708513791939980128759539671698406169387198566821063858963246754247513183220695199507210574323861753110500848734023615498241203782528342355232481150112769531369460744513891254426012605803351294703972203940095735268265048437838665710996162771183941125999244079349417645215054307572083583694033105108045273969207505337926807686373209771356647137901745561116156165586369237294059521855179129572940605909165882124056366689586559595096719094643575841743380954065443418149530758283586999046179052051396526063932356449379121060982887503601218101752278825707088594539881496054748885239307561460390679477995299260712957799178262829320791466692037922033353813540887785338475728794438305488055619036040939822000797594865345878848582314348245396010725548499437132155002507220232898291011264904914399636969107144516276304975655020568705736461998380608416795690538765737977313983178281412636091893178478687202223733843870068157339632950251802406469929861848754475463892932435800249326944802108772185705540372314718910088834129070922117677636610299212655859255732142022110880554941818275308079320946039920229773589462663544807337936193150977528084551705905338659703147782549309475449818709017181312885916831789323841929321715803637983288597596284288004896634787054866646771201205741560777255333270535304756006163544212446303569196886390182467854555169491437175392005457535049901152311956915135440224012856161426868474146090357304154902761499312751656889215896270390964589198156065902337680606142335318573691339557138963273245595685176578105121429553356563696131782838726528658364289625446680196811653475278104906959969540347954306094566316785279753293972581355992870220886604461828587045186224522240611581525113471675184458589267868764616771178480556221804632187925762715995543937759667271124992394166500632466873426827201710266461195438468789577193480997590416016193476307570634597626461574312597837714596354292958164476293122973559327474021739497693052735694729243555682560547031266685111146366515970133624448609717773358155832310355636667580340071437832365617469950258150822919711631144636740948829797280518088243666762990112877144443116385446049290549336937375549331640169161776178730223631563098211829425095384355020770221528776218678304422963760768989827807289273177292411357028740980228384236489300574031809973484003338861254359761548930366931956900260294367585762770089735893707542268283187582671370103946247985183231313602881780683663847560106679822666111414300858024550808691203070771974417750148030999853052150722280407830509350251067556352250498893071132592006328291628672289108340703706844416934392024235604158220003610911340212809885640712782003973347452201288053956760519426602428801249993328855584465063661241999687391535447983125213199953378106259188571270673172999348169176089430350921404546661020570404712980172552684308719242507667763716150981958888534151196808175699977959444070544284011240579133969894561420707446267134499264386531730316984779205270018039096826064102942125715888685618686311612168433609985843662370809838407066287590028344997965400381772700851776889441441798280970076381314383349219719118378838398092854617727921236015937364567250720150156191602871124051891662208613122286720384851447776358171233318691919552617293734884100379535851145569282035327053129037130565455993868042665090290813750563236008849853832879062112863029054697212876616616684406103471293989935741514256292322948454422313156689919155577965045730911890800436210800329002500290134390812807125901079007140628419703111512420973507064590052095190325961348023684213200142096770191343334563568756619259436828638727242582544817467627369373988168051356135793841720746491037332425533733351183538505046307093778825209036671095901606880191703793771451376804182757455562718752064681761490345808287927967374643972465981435769155112893155836282731107688692346520123135056398153697138771699040081154650373611027035720810526607458360259191467940674975009467019945736962761355115165045632635332936824131416240552758404851351820037989214659211157000284971294435049452477576906105887426594575978259800983244438804018509361363309311154882681638687240284780227469843250677430212006788742559856898990196154492351056319236438888726889554689624947867834630294070239066407128351267361834534104804198425186514110445672842475987958757888746804295671441248417340733622055952122025903911599710961181379348011141043261742886053237509548367243042328190250403624140134485144571671224823220789333047599585290175708209027815158899302359741148654920517170631830653638135357586342683685532891989776757333632543856230078939461122663139871786384597202570678579475972572791923996612359921625053523052237948739218051561881079190641552982375538040086507062018406168762498120185747517737802921184681451480234707714004952835778607613416923199214027323607871460552451498036684483080549429137532491156506844771265873992325795511629929677565325088424041703263941398706488338398118123879183281527979745567921388142358555442208394264613905281647279136731220548768989358806799582983016748924071934279473771122321637866542613944616581257597808949078726359112088910852478737026531886857806905790002559838048209983297391940525793240252473237746353919027448959802888467861684465084134547801474161761909469380646135230049838949793127702715923733841183069772751137626139624535383337461646932160828202634888057154478141284840566769051201713126997650082572572914450116630802405289621723313679558995211141583832097381926772795296360059098795728777569924243175428724423799144313063994424991951942995688746721825399647971639189832941755266473506432057088246969094501505605981343044852998258440586083469168800321599807145030418724141695286992955594153998058865501727455065710592971482216799965595710837767081554918059731487361237005468867094932588872064747889661367269963739160028014173604973721441845331848353119805329965636691365794880661691186728570877721009330544928951748709033303806636915794047286069802039894704980653112332140873403596668411946388454115811931409043619267077633938264405729961354684774744459226083544043081418437094044739095554517858042809144919059984447486880863007314655693713379170166443849610014020843179710437514318693905303694522461143135810270268936135046475565765978469551345032726043484610532284577351504651056692068665404285793031469651729605614659242646442907197692868513836176531545233338047280649244146094234964070561842595906864061676434398669938185508209322345837295997329921153256882025649302939389668061843010980814309151655496985086643059444860915660057912583599164048274805110695451145805652372314961789073593178928157759105145592049823138317517792577251790387504378212707239858580007663296650561038473280509479852542434203679511810598818943520237682314784950018273121192522926044576506658956851573433925137166970126278125121691137426941464259079870319622727554991765519817437370381322868394846659510309620476915880988156968731087905526084678600445552281842589942253977984525547209227343283224019185020458007443635180971015679554869724442443159296984573162562566516562407473995500877514434783989131628308291971648967343813234897404969628986282636959716316746443575090954013260963598960005108738133125293403224272501000845935576879875729217393404929390565106490026378407609635992058792594136339069437835937942881687086894235395402290807294494379340542884651141711904462106181298038180983819548266672045310992450809373804121309594344289304387438577451892715426468897875952539786118121552008901602964814036273520357614961081255239760725982666741056566526237340164060083966868254624007561794228038772119728868425099704484002583919437467399795132333783658800665995729620948666002888711286777562810377095848225980617242607221306720250222660274798088922639169012239477085789425165454623737251218190755119181951805970117305325346672439109482548697710128770932200657496498369917550857322672668698474656300043860828850661257779433400501836495682037094232628255298651802470481983012882597206957131889387380395611087180351638569018629942474741774742247563340673016455228517197804253993011287433241568970618842778493068794377909436269009292546796929986081581530109518046524618452517868230354934085538945977858718515109107816314169076906114984707831774962528674489353740240685116934404294631461237839129821622575176943562884621832535056606530210677494218142439462094867468008246854403353601273950941483360311357392999664298980283780739584357845786533206498497416705252840640337590359679527536353341247087287762186360876537010927195889596687159451550952129428512192022187739156352249763460064982099402070645999727947423358460126671267233782287657112722698091427256905891524453957095795836494421987571643254905383065342463409546340401548245287761951105276630905546215022072925716197573633196158683846348814240289889739777948158740516942150079136375875235193838912758584313990640252911349009774389938181213773978615887249824878713541118835032257597180298701984507223841106067783859945824580149245567918831158004050876491581854265683677927197737544579184388354789319840895468856660701934495418722195589574102954714413438125027026278697497069579748067750068288549107768685931955076021966496772531843911466306674668519006201299390681033897905380332693866610120048409464725571372131500299401942943605702223746721538667072542386934311399803687663323576723477080426896862586017276079494717384259931752327822438975344241276268719370499451189299879246573932576372553939749103536098618365673169559404096664353648197567456406470240448846904057220773083000413553899913699844788660714540104123727189472269204901554486079526659869290776202703606684159324528076209489663020117902301552900966635387448377750754420683420085128987670895444877538022868437860791241261266162085939993708251194356962472742425978313203603157686295054315559146099640001734311266945513276507478420885109859019416297790038709456745975325911471059610625143714595049787121906938702542652805894408237740652104753174742179091021014496439248153420815259097264801226574687359298475626640047813847618168568622822754640047503195567526255460963742242266717960480162545088383577473472535097058578109305167848991907490253220545517589247713253994231939477645700881277980082624873959403957522334198932865051557366261850593009512225398711010199299484408411010648563987973627314350889437909178025656142679145221622607539995231545266319871429673511623964977631586177750883922792500150119370025625486047601545534962980558484130868722715625720980134365439631878809276416285596568606040377678016063235503956157404198629690528764799792253119617038569533433028974807232793791471688593611978996988653382598414228624750463217076604638947222095086883955215962501506592460433534016127353650826237397311294173599997567631730777915235686930213911967478581035955592749796873663271371265634988053094885677058757993612040352471828082554045990447609717086505993275732148338311360081715451006782981849446207984145955103359878426289367421592049461486856733148259806329668147114675510372018158178935648476372060362146235376713585824066776311985486829860896545241378023269841789205324270790745497502207196965756078756750999963413656690650755544336869018374015598438158845323121911364286467563286574554469170396951812925877459457279746602426780423005087489283713236812249143844113020665798192505903560537056487462541793735146821478741562052452825296880563193386934617433989990307979302994618037089614658315882531863341716591367898787273451097771662858722507515187352871375503928623106878995745366341921035597170916152784289918691983613186604194462936867240110131961703194812373274397815138817051399271487296944456585619896897070797596767063713852385366994429300928674306828988317735457934212782895390764339583193533856269548151865410656434185102153208455297359763864851919637713317456329144762343949129382992475270541760458792043959102892246703308796490997346220830949765398267369558849044233673444170483536025326573629104120147636543516434995717357946671898657581058714668401314780416801870822935836667665572080239827496043170168530054257006070935538421854037001110429270498434390945515131900852722945868966018931416696994194123720824952772384362124167315762623272568807046275028814080866390661245787181812011020481546284832858844971248326753455241725702240445722238839924995662671953920010467457085486367864205038421009191762342983976054895071543699245744524474998766288040144409273662154263274412812985864764256540694196299564128568537290283443717693073953611175713519048291458385631365773975089506762837327025957022334718287187699481060064669975057633767558439707404347039102858052303309694962216572511173038221649309325415047873031472432138981607097947113733954799830839765343203465165649765878483074423488606310054256234630082271192507699921590030658787640113742037279769461661008193402773360538622221350240542864568420604811110419259672838672019043961317604824241050175059505284601099610092671587159955566239014774111622004986117583163536100906849352276016965617381320103940485293907878257933525681972288539981136632105751646455869131275911046004475766231340658301642229347019455939881891121383311738900628438988464645970873590636116424111866830549060692467179255270477038114524158436546601745219691772395856696961720625150627963204342060972740807872771686970866047906245778729071281362458268948982460545708180063163263607840058645299640649625489037199388109018177790985766468792117515363603686492894428765059966922766089377319027634128766764388855759590005590322450984719769518778415425310119894775758058878690869034543905899220092342377134265900552474687345941348183108880967430963862780742776581371516066793194270756306198528558123618129703705923661845451446903476105622789100626017785233593050501165941036943525757790460976769349839059014495866293813641719312297327355304203442501233576669480188980040269332711345794652276472198163856242729189271429286476365159729434746311832015708754022167071725930226581495672660048415517722667041846249441558164873381735682328136364326317284090737231263756813459805893634628313831184731310374661593743122895472592297476949481711703747572203041541120307594983025453202575463141875163848345871046653333371282905481743894273388450501055741896517013417640670504686999527921759066004227157353799408201313902481285249411842264281206697216875971749228863665036767891057636541608659009454899504542316303579664076865017075264561308331123601974730766858023890319672909296726345379706789999289058304123492800607385216987562572945641749645054767746675378090023990695901890956767698021203660559035137986064697904072110286436308318736184450793859445654177038182310274602898892349259338260370435331873765648151437742415573298006769022830759100938391360851094961827942597990860995801217200739068676394809054122025611862076453415439620354254095333366397909791496964655820916059438039129098834831139438903420234666300868022042242481395483134416088212960184144549587998406840264314341676847509640376292997701149060082576835120033021661299867812883445947914261918869610790417721419358092283110058820227867414320063968894310758338130953381365362435659926714251683103429595207837967729881205468769024841393792688015946205214556788083687271664835597001011876454822573292784420015442781031530400109980752542798917123726131260504132364455763035509996583000657767078215524490965487372250489394407395330052446659483638485607660261495886510505108734096551448737420797195092137960266105956282473835655334339275511496046040446014328710237790407397165977421805886116040049511428030132253388094625234320274293667228737656766052959332882993667576883037179246621930453991178626795165414473555641473263213413605934174432064660453488865197217165700131954849316379687938074577786660129787825055861603984949419738579312689113401039734899764412028896864444877185958842228154840679930015831380708612220769428824490403251516792752964323132378668711547096218670213578141218514168452982819884287088295388909643791011239676761914320125377062870748412706255006425023285136545321015706346752466877094142371912073103213130022328962750178182896109415753640245721875996378832106015317525643476656890482970779112489564900161302419757438332652767829911637343985324934543754964682399902623234407012354611017132494877069898535471345274625657766979953956189232038996994096397530366370866445219521024610840550081400170728571783045956844943621936867234669906807512480936073481649706989022657269988943822128641051562073774271403007264626759849244240522368386863241999322569082032397330672954788714232622211906184444453402463715956920909835781115223903703397487421354234412372341312530141721074464299065244434628586987939703236452278242937082815729763621738757754622192568390795898153251192103006085459169656672523626773916473142389554714158036838967280081054027798922317000426246702838091225027911881975571579478751987882567687498267871558571332608772108683241352846036597136296066175820902160135416505902502815272564069409878989904128598565792814824783016180124665948075139693733321527106283839329088003256441889225636360007691958369120476094970845587029604001903188530832541810278882924461839397189003570455018211217555875543482715794527014900892432097159253023068615274886790424441145211453130372145100374360109757626811691048034428608452815041959865968167960228459553803819657807736185183230650119819383879539771853219607466721290859496469031613786016047187281268404856201308348447442720343203800606145033211874093686993890017527350330562923779850197250084877678121947927705380239650583171781038714003540735826310604060236771618503987480140513736380916248700617857018075428478142785149765507114940708174442295276819656556412992363287377057775767637660593344379101314593950167147854019127971810710436644388506792133563321449430649047420166773765598172072139419825419911816288477427868687263351489436866485464880628383334990602499226096202170993390239752343177714333330128869164603116879619602453378852303683801187657622076328839363895632391939432512053080609239637389125722710472431345172621152937361173592567948192336940751534523394041974839088117419229427012016951677753216074368976951640125961692770045295944004571346634488795356459652743631316187048450088268918726521154471440158181635969048071790229095813723720053398068451162415605132132362504860073841908159807906505276802617940176543305146674160827743785661844252414776591754558641527312929363212263190329511859574247161191227286484728083807456534460926690213030678507003223789372648956829238423095789323741319659717338905425783535469968648483007846858458415608980257338751872264694016129474987359323574895545489252595985805368029847549357487571155592556297554966686111761865845715218743766252951790403775182446358321813196178761470297380018031310900879440444849252479313713202645325286906591721095189320220791137151703684816728828597633798794130140827263626787158299074779036665126716249984873502174997308009158975077516827183465950640186342319075466173335827110711065506087054495536977966467909671602147123253636754727267926311794476728080629962849648336933185877015719188116008757919683908427547763559253671955046191543605056151018216655509893241779697730756089494477735232753156840749354600937439772014708942049560433563058119847969977958189559586082063227056034557838468151497486003148019393757066824048060411348139802649828196932329547877466345718652841966182631923003371166862354447840208350542108743530385488977049508592909747652373697291266620253303826581627477121758152659035607527817121586153704803520666187818563414219789375875696584029732939008150152100426239376187314553103199473210193726837882625034953864516198235723349324057456078363036708693544835750214248378006268204739478468194026044687481134393281195922158922108791578758051081281209024616584186381621488122833673949988434064616685053411466864712311806684503624054246785892470348037247417298982037789513415410983082451415234650613078196960066669619959199228579980592810070403408463507159111170042094438897805206476944290460815703758239111639882453966331453559972661360421830168709946083495488955567626622090519870389805081452179433169776848806283703547656271171997896533615485031960523958170316965182331987999560061032878896891465249186979132145574194734187169551884989678898030352681252422196060114535847834536718318284155531063901457832142363979062063618422873145550067353280012426753692663410564061361639435694340899557350575758870617581688617176461583657180725393271369295033341147536516745680252321922720146232809786439974656594634445495902683641376032326333841077722609674024296794469167449568692727931634023845538684852340915561506138515452818204893193722449330104621092973639252917477679757727246250038676462136884498210177273501675334636845630257792101401915719255750748534999540641761769881774713209925616995429537992151297562182406619737986287270467279835624577301632603627102518620793353318119196397657300306216424640289706848188937083992631002242698166236711553341477486539328068824472343831041472671949692783547875820501873650991239024755765686377140098400157571972981879971624412051397811600699741733181053565045518103576691037343571072115484110747899364044686001521146828463216598865447639243309541934742506271636791293178967809881151330952651483473551619138917945949348398723636537684425520128328699750579810785337343507569901562588602046439572510804338673110322854894810834690613603170350758961511276124777677107296250217282584083492505710167154917771305348343650569398878075417808389253211872612024225526819909089927549134836254158403112093705777703216274211042482313656727867993915287117570639372343225612140489039526111311736414727785314181262884790622301143164618798123342959257938797180771941586117347153660273465281555461756906017066021066782076496923411574300917276403555617631389039447033193096428064290267318806457334886339790272387638646012821753810896842861491793089863830692822090730750163332534813577616734335158371463219201929189328703333684088027750379721731469328094608255004819154819228074947610282308940679841961428782646675665695339462195840894497701999859152656720600967218453888133266797772945345451639968786922238386210050629229799635476761995787645171551349393699372690997604380871938658363222715082581913114427741319907186664435370344007780327181019008927110780629911811072260673268411379842290844384943832424691742484502181149923634944272150488197479649023500428034420523879696661498215569488008080445332859974504427327365552974020986357513879718093184399324882136486550911457707979404088129106784384073154685047196435375421923932451018730784104190608939536747980454280950992020772905081787626391357181856898903814737834383535159867657817388652811588334553253244103640292084911727665922372660719736233027206782721386681023116851988066964251224982528101952051047916378289448867114348970278144190245256738304681754856841088517829206523589363412379443470750601652396734939589713008052333872596611618696979252972540381083590735437134222309958423694144744215457752592124131709507972195343188081633468106120742539280480527271746227395150498814290159497568872969312953424527289788451353783260180920959142885552907998341019981913379588586826002248184674497117957978033746531437000040455961219153244341319991055246796497457693260716686182077734966745070102932647818734222749496279038346586585132453629804346433877676633198582731339685455258867939405613936365630126526870471532978455726216884749545480937710453680293185836074385799594285863290807344913217973092155712365992509050744031249727564482305960142980838581043145011412191963965902157750039881966005822654922587662188572562511924586622833830888283525210243219063761145556856507746433459438589876350469027694824508172706506492833372290652665243252860493730430148816522756398910862928299805474325927243718792457702283376679395763492343075558412277793773623103748362247799226739500731967027311539302836351178758967792229537630332054721611786147892254508908844059019520958264068276838934320632194922756213704391304932938110911990541449078245154519043981714632188214323287980930214433534112285579436166049436754408181644943161254803399519220137599864384419248154553815070051227388745572522569650221303026447659995413259469182916993893015855744295393173061319784159661164962270936815017676505288132972125047285348283266473564506113147304428044800167115641976371532636306059923371860954408976333029647824905729296951584731723049705278582913472541085871563247717309000983011070030989938579363475737529012710771227402912046733433611843482751575372735869207281506204327765621153471543926026004673171755364433312918397004947218097508429753818288307485173638726034011472137784825985418326499760437478091802034601418281198330662368424164876155987122541866542743752780635357207002847787696545947887363332843292660026251757408061375440725242560507039016159529920265440691543214964089779652167674970151670712145231764387947306252325474442805903987901172924129643661348448741920740346564141684106351662650036350240661761705020221256454580997217883505226544536961249639977390872374312732583430658224899621047441830888483064578786886105752667091092982096763010543750125096651266683582518792937297162251182539542431651560388039839779586236969902623378831751029024972018311978183944213197179411240000589189137795610841384995019874086226088942443501718773791842886844715811827059191464235272563569358595014960205779625015213125571500832021995868263827591749138040994178124327381478726422256943730068019912628425178365186019300213910909529013434373847826925560294634587069073979572131837835084349151229207680344348719550268487745339684206666774405614714633739682143858957941238499067626728482943096543236315566678158817499590472077872332247070106386369253159991418409060249396344497392842592090184733453597973813901224268297284141332511809648202993448218221047939567966444035271080267132776381625831866563357873696632486001649711333606278614956677950906007430892035950549782519287969598263551210529039246461142553513829647171937173572457889670418098989524006568743151757300546022722771828387553588278685732272238627060916061465080359347177390498293279789800551784253081733773427846384777559734566238470170091404807600902072279629509536665022391113250271606126394031324043502940333372915135818714621762515205823197200034581571774502001554003078705025998176531306731003363873682764210940425479479938287017840555214325061658417403346296872643783012883619201508806940170113188760716157373041727663006081894154872556404168441343124387813004709346796823997559719834701039427680383374733358741370491913185226279217825890854611690685357782310172487587387708793541122209401253904117829384678855654136816776432128708002820652724072207247252550451643829217146937237610272871962681764820345731002592152472549515564667022182132442546149971670893132727591923158760781354380932136440404065230168577010532147578545441934659652698472951326032016924547091910526540228839233691044856213930209382166459739411250161988860158613181794294702542735113201803977217322498468884621702435651438220788758499909288585822075286356265835257646376175731039854974963858859114944322646028683812894281948276680819544144226889842641429297784059317105659843709503402639279691737831553986382790436388573391310783708519350066852361906648274237842539535376895200916275013916934749638474888951341641188123560345013748238682755662477687716481450169351776757023375313299357663417872112084306485566328026194107773652456010081640140767158963369122726310609997273099169122708915798278964047799620896576598173555166800494117477524664696677233394688509194588474979467758776735668738531121640171902833837223449384979892552391558983789641965746915547103301360298242699123430165749927952251832542526413273873784751709269354512294774947594152155048481459089364876927678422522514448098997928917859479990041331847714442204573554739527082438007801899014781750518673659395980662790443170989584887400725277761952554372377512985644774391500783532809198136743840133030144183307800273059792912467663506826019221325065394799336444206254717155252487770578108860246640185761730601642549220897823849340370622177703962619241497201932766148053760316245427315342812163949211869744162035792688161006679256773174242280695722356171443259442201167257000716415581096448436102587649525236880148298580067802765998674654687272536749171028443681313178112063363407107628815543220148696738613247336166561318685487836345710199908234650482697649194771961276025066808414901111751677481251386573941487150425562452601105013481909941263507573853858614612447995202150257841964842645578427040094210851054781939148339000187850635776564597624942242718156940995829609913993094207094666934174756554863723947288397789178020532780770548053304323238595372230069529745069663986335159880221248280675907808945378659608025382203269642468771856990795849813446515148661867335640652461857868491187458416028699880721836251377654974040768704522151236639550528475486599620860003256958383437714710567799861861723551623155060005614191563392426250754755571930195645815072318884576539454739900696639506419657865353624561463202223140432608265918496609328413232282615212484773480758462468140818246305113620205652472300290876893741609865263953504654895532435403082540028355831593899310184766617563820914337588907958469936565928215097342028298213368320006907402170961730657514287715118153212085040806224128859085484948346231582099188093970989995286113470444319882188291539457193013966502283738143931781451097615952338184888354386396439263759387255362738490460598160501748721324098780281941638272050842386715807588711066319044043817052504085912361030788295887421074804186624156218889926849687802308155412021672812535559326119608963024568707304142726613420271297142897310592309450732860519404728466361887572889639962736100130422880589219314693130018371722815358771127259589751404661405132853115836647832656479877616468804221595237810771925779770562393533579883111262426660152596763916104324906177221229714519167749228429315925104158570752420733257548858445983535906190417014841485441821485283546567081137832817421221300008616870886352512876093305996817718311428317550063959183503823233958391909273846792601861975396701004112756042993582605024385190034188230818823319463991140083630964270306340496063034735206474776914032343288268985091142114164454239776402620296535495223142828004689893189096428680172346806251394116131403336547992441953531667330625470524687135863924182724899415056056317906275904736774879992198548607385057904550767990038920761801700984854739417157328068963293480350283341575949741161742817752330360401230041612680935311085689882601367516658256640747457596356945779015205154641766401063360603861124474886417693622661073841782902182716899559497150493537289597785465180180789259298227707433252128428743771656366540427266499297996424387974778060149934736646791393616919166451870319265205197022991462980812725901542553269273057127599427013849849458211948859765697362205260123151891413168300473895481188452894033698378249120550308222501290333589411740548351006270298216654094871872433864742584984727934497383453666711810821019410079551347347038765516586477851384033070655780934511814940948591696825115142581584932657735087587196161410400777542302210004950058208573797936130371963574360167475671130921428061526015978370786220514215133478697201276241075180228232291737733450173761144582402351168373669250926844104953158172512556019376716527111267601217763606290757676547001501944703753159275189728804835016174552395965360515028636100374307856614712147708918183823877945391940224021927322342380463143004881955850919213060279157779633938159972379205321059619967448486636573956943788500183901109422328479789510103929606998023267094185198115564095946011461773566627143050436840266166778120878147470821310337696087965784599444904822483424489935358896465543355316038041321841424613497525707495439041300023888383852549303526956093849431867177606909528415742971002088774616107000173666382376107383934871361145871702028853363686040144257836704438527683860701274872333525495365922429873104536300362729815385725835177383873482395182372611283258613865925385237993984406930429406975479569250705480717209114693257409571177458095511507082509302722157699513266306968731836207611520984447657786124892013436512195340815266333769868155048925866036951281209846194763376491967805711904052510853106162628736241221352920255534184601866249652433487608386314088113025905711065918179823225167940977905629998276685271792656985096822230232940064040938628802035840576496664577236661958290886189013312634666021526776616953571665649309840764816397088531796939093298828388569175718052666742574322332844102571505685058823236095375263256104369896599872549753889788665269854645683728148712940522452190386572693745823595047427131093355989972321879386281898664556345688507597919667755464614359729173137275173920417813605389680807237418932693127071470341501079445670532891152851699528881790459716285968228244394377076048346287316935158978453839416591038729389887851103306025976084041378198754827595827131271250924135894262940077594547010098928707465531605726079243021012564644149512696369627645457201673879236218850431816278944953047024847756997992408081978675408945453367224108443900933686733409131141327326878387381912529464524212644628813113968219010740597159186325641883418601777225445521041259006977824719107759545477060254322930830936353289267952170789523644623989884568344399952515978948997966469407255587635178716828921398438119231131071369038593627499816150739288445588460987260908886221412905712524463322068006189096778395754506677800187262081620568835913977680316609083802315593297940027180799529253375700790874113552839155901765839802722376855297425797798581337246608356840841179558262254283834304500739219282275796237231509228463362082568307341350159282465954507547738590380195071106274564605700923398445940763804264891556986372366164627122157655937358025991754534481412386909857313267652347249376334248809065789223971196203707601102900225426963596404847521402676286687152610217394361723930343666594695989909575740870867086632492945074607840721237054904613859535580360463485440720149604545692519608312432028726140087693131297363512111744115468792994727693846866146085569041167853088811210756846942155112722635279178780837261484758104788591281540558683134618740274606687575747156932002862381506458788013731143547705401546303484842141360495771738071121036110576125727518531420485373019085433143904259679912527398365490886226182733474847487179937554101606008327041313225152499968485509663943477351881177312685652809547099683256921389744069450272063948164244475460162113112015079914498530260294564995484287794687137123457430145255132051711237086125562383854335877830100206524101919339011888156425863309993487217783518642865683019074904843550147738804604614625179854590328052085199387348962786660910153998029664159803222236993642939053455398916248835568427942471036692066588679617484611696058696177384734077604834781622529971882029783008204701268479702701135382612817833666069867442233900840195760825443467830900584621691897192932589520712046121950663379024094440152887731072544481190834692991089091752646892878654782090128699040422452920606582065837784025916728226464715556361681262575209526609127119662059306318452253995612606960716254493289360921942036719677225017924798471287504371064291145972657955597601074349205286559677402002123856141761658208315050234747771272488460721228521202743470951287987601540910063273449872428797012206437890128127500611421804260085344569266610740565456252137081950439805894748868242462413935403352596400485894636530212477736184881260727402172157937765397267214705685172302397869593322503018523080411747574247453653412789238814798197643332684870746326789017445580052885859063478700378924195656754487341047871620745064253828547222055173219322714011720631281465660485410614201109872483825710729334533373316007323123896888364043343711959262903747191079637792707082376734765717296635312590779769624719475734498741305968082322388064280328788871572217876502601414574998453077012661952386207194803189075517949580690724006317036184401161263390550654706514673956263715816404683033850189884273671424337935818869729676884043639816367227084198563553080480340969110775011728032129168678832746519310583429473405768923067094163512981320045741959585606873856671712639864397486698692136977198498750045229037515431097000196094550572215246759994398983282030202246792600498841586744091777182203021976818647770769670500761180084784658322929272163473183863789968574076911354063207375266958153305165528428797637418756568735848234126827310338953871124483960273646931952392839413775178981456753979212053522483037530289603645570039508060406172574078217744088458845679968797380194068827584571351434401658581733839250878981187032266870333349452195321015784580753880635059600133202873461418366413674108372281062507617346819435419747418320535672637719157009544542634117301285623107923199853254216920197258499569683101575977445541633623694731544867749850219532507502210864226105629047998271372337432739023285818248182009273772218236922920664794358455099163802771553341838098287808765968246532277493041598348271008605566763498154794601360625227635862268702434445681586295170438756576906491562972675358550810410098411270700227462052523609320569262298136423082542934867813021094308853666476580916988603145899789758066171944835779543846027117125890427802642714958508600990869792511608258850943303678940748757242603258370604611404386903895963588884401803926794608285976181720327333144554515299072052601423316389553790787333759058658582378561003649920879567329942626656754113077691938702709917079926515659641998208289968649439242857746028117639359602467930335422106516561680318953966513073315511401228790848362242496726022693454631843766445819052037694310551494726898602551680257749872842991087617720662957359174316639636078017989741293849269054701976541286285691516504821027293585012832531888415094712726318306500691290969499495116299200338583558565774510140468364767934413060343798884136244244403062888539849216542337496565599972980369894508943777939082056022196224178889247839560614942703667699584023865375864303040185021720640784830388268128756579841871778523804838020990452679024816747292702954214920086837144159604897856854785797769616764673971333200533197696750296215974940917176141240787573294464686567949662007448545982347569399033174901289065083481339092667770896515617428697544135528991902081132629771761506467078094672400419938609850312129849057146945478917449038775027707645485179652825178743343053828569447329743163387239358721315314936199993055277995483768725050305539212254021407507889258081772665588690238500258368832434434695939677191437664391474878646126878690882942509944622273612877938906668135916641643193022845308548121391980773251209739673639281315274035624679981785472242148462995818086284058722262652471360186578503570521222390082806020981433916885471336918086156881392476194737492483302379478211947950350718760445240012135049386201128768786139608728313120592366555447486528754569361864445092556813766956022730084416881891903267485018154355454480153867677869135429360393511401362659535569317338392486914707308021039032974866354764223464046055248610999777087434895661921817656964214246655399560956867717855312944063740056696099181054732216802212081494588064155207457015070906297564120697010856218931105814064404368445867958529722248080021402349026238336416309303876259944498841175070529130439943357462767791322020226910124836549757696691003908728869819940877454352561124173026132996529559965556694359400094392055002121876480626906030494744768966679209319287029331812638028291997050730527933319743379118808510848683783579531059653009398811897912950459377719393335841166460304984067831774575993103582946504078729635646617200742780988009342065886087747141886610917504165600435804981151281611701183348127275969088319362730357906545087060590906942519515635569637249375492796628124675580010648186802709345809439170051293623481059626210341489408604859194132945750768284910470259971602460777907349618126251111757146860546599111790837350466376295191755790029647971872992699158573720585500745852239710768819613094496076611526580601289993757590132225211484313035243617864614973544343613213471924816642123385912458701714857733143423201477999889043151883364111242063852535385361342977168659773009597192605834836954050816494714437919427400695878265690263934717895542188512119964569932102104871577767406814999404558734215620345864815673700746133523857322808514010962515846050711866192219787972929570595125554869905667774013372229460607482656797977021698464657049881765197058043489264894142115939323493539501121552860704741138841374554504245465074713950946454479257773994534980582775165281707521376176902286966948703428467750318461933739000493557510484532273081300536015590639091687301529945853780051077481851592586258196538859758053604142407174229136589056998932277677313978819917357889041575380199244651559685561890259898309458086359240203651005794080740542447195613886766193147987953930773528045356762186688467163037422895148021148677530948667884648837870277087420149494642284405763398420089583172319820490887875251418714892033216805275303923768071083444266981035286367856201397386955914492947751929906762505440466812572543246367834539891023176864428284046261882685400664636576826128858124971612502988904382938402575522354412237239086907652388234109475005050900891743329493054492553098283707833671172781181514018042515069379700279182808065783628586576794971457514975720339558779799841000811689693288026733006419926263078160193974346824803806087953101191012603134935436031004223203348783747530477722759315719193548496135013370703624881448107977387658591883662837010059043938720829419511040170519011242000594022476703498613244628082321515450386203020720913704726154674994100149796123738939851557840423143412215934406146346251686164025444879095024317451043504182354831704299744592816100021672975472344840942533513486833991959896183538468275956395213186561238139789695811329421813278145451039379023641327759002391698887828962096300887039437973701546083112164558129731392515055863909866278815876292631977116288490351739350357046368114301983434197825880880846398767314322497915646605804236738563344127424845234916363741272520392239131719731421810961766611301494621343749094423643669001898546601935200981570293276273037461152520275878056349943863360287975861508858247760617112261193393764293397828469988235335706313497431213007704813302147988184009563810789087385622154617150070318810042302992597340724659777525739237326521700481010841784131417819143403090005427947368021170820701015752633551916270219045976134540016998829255054147758109943167249094426330728779482158841019844784258307770504930180979966027408926590851686582806648949325808331572412981032417779978415434977133421959601351398386403372289336399048414969265837065099291847459393134878325927997456324084237826650495088538733420380737318036554906143687419571177227782775266190379099344816014985512762121966597181823496102599344525520853340301395826965988124570428716520577688596868190634824487388565055256280470645189766819574804630560930545137693040792059785304979271232151531759225511523718439144922887057140298974110825782695075448261818820444227539718058896609770698413162826116968859712006679159438555768799776175201806298352782079924492026932151087243961729846068093973989254747059684663990977512511855377096212492212687894617069065134118182180831293694715036529342362517202963532785154653661924871875292235784471375035832053860232978656899844992944360785506051394131042843840019307407695960399588267446464699605273481870332765127950135004509968733840719525204779872955344212788954550335744207993685640979919557651471895970516590608582342577058994460053513081885526376794773769212217857017896481724268181484720992140199010980864469467823632859341050182006267153681793299850677480895956873561252684111910512831368272508468379481919932379815035997309817269817416498998489588503905447610183019602113137256320348185689935146796455486420287941516964895722716215979900108237548930441910801018621811265623077505692724965679675434987326380283627069525002242602519703009411016398091256692214780573787341920844349869041694114111124281362886028507195459638423706197019911990738700799033383782117848465751658432844982031157762638258347282978449908691581257386200963248073608040068046705552448493509405238439067917255432437268127518834150136295680932030531327436586870495140877955005457173683362745700379767629758779717703123656299891051025580386930900139366887203561382334140892751123570005200762823368815526910710658593518210145332748659035603055078703199556479684262010207924544034882017150397129336233960424598899388253911816875381619093767076378817339556961952641546426878846730615131978453049233124665955309067395391206860840526525471697871138341659654665153493287243667947584457611592442305725251964511928834677720577827476289006453789778471423688906569301143970889470148435647548114709801151186351029667339772414169615547544536674247103766631506151164562657473861092991835411441689363506045843458720453277788381524646476017045175692749886745147738134177492639107581475165730418318688367356042190643117875594999922334120992773257006590890132665887003240129071002858222449524297931904578667277244082647550119670023451076662843658513784224501182897106580171926244863940871046842833880817404498211514775027645859725755548890306742850358400604329888355950682375083046214296716986318621544842233160031151003557867201930182234570519810679898957031860979686086237161439958059419153495484806407287456625731155125974876848950590115269223995602909193358489935978398750880280099907688655726494172422556037076406061090885884691976507160977153558922673044644383619826380730748828965341067014365343842166586905782423810613067368974724635519403598239020762897971766812627752445730703214213976337809461264055173178716467812320807184693345931436208039063006891646245017261096961986551894715188178116136746090764244750578593013160451038384377707686393371779527510354365154031676043695088293883839046432292455423529140953291478477093793540404697169003051405314012999606150940823912008903630976044522494558821763152314260640030271349354281452620995710379186302137339554269715206261228670043951469624692250329988037634275871014300584366066499204095859278191762221240456678507945387140985161420125687489581906262147266067169180430121405904256154147008970362827603884987506205914527778815921949874521954997633142444745772743604549197273460745760406429945496681061848439886365427454269165996880063800465661260628682118642215014270366382999387039323066245112349564392682409565394410143863027373420746421845231389890527983589286985628967962214206992659017105118362150830206530381009974654574277039839797886508087170343411329748848256279396482874348934429719348529182609460382822504791418102059644412685158549989053523034731284477391735339665295441214094197218133408728063078867083914646502290623733772983250182632775939199318947165637812011440882583665846705116625097438797615386882912009232538050911205410529007174513250698793039350620835443577468600369108969545150692485645073421053056079389598577040865698379725206683147062303182912620499398468835009415735044326563975615240522746758581824996241970165750762872917170282511638414322053668254578688062163798683931708907777197354268230367303126337407799801761773155310992448689914112159938600990127881260168193490026768861733026371319822524460135483898216004921301627238806143189216997493656954937012063967100397844694123648395834219199069095661489794834184875206559038955710534860814446113998103463238026077509264569718057118173414153377121771768778017042206859313814539586136117379505542046815496995944723614668062480483407075704600725770102233850885531772782196782113061189411419979859394020948941153149550992137673766801459643547301590788628084295045145350692879524933320227428745518925133069942546054188723780181353248626725823607543464453614255524747239297181167820578066456223403216695481781926405552407644733704423451498259476296313907020363771282536945151115014971542819488901532372865114813490875911262534952476350912983451183116941804342165112481573791298243136646965895440126490953373404693573486817100954994172177238563282225864156893556129795388175535180652396120680629758439369651117205925630594961194177462368516963508841369215874701718236583310842532771446509130020872717861510708379029740644731377697934086167803071380901771895033589120590270125854468750743287341467055380287566413430371104433495318524643579637841988274430258577571851145546708275686451549306498521220448720757324545955961369441765239002876848886534087638158284149878858110721945167069463820361038507848034201982670614511475473254836822974883595114343849959395881811305621452978133435196231414040526747370816013790556151573612755616327403256344066495736608404428000646589651737034287791435751080145385089957249008122309124255317499134582228988405773615832188078716945100125182136232043161457963665447978089727072684874475348009490316912978634277375740509345283746237911073758466851363588102176615615208536940434631830216886618634666017880777652631167595358571318181584644815095802937459750112450628974378060573041204293852619427511672553103288426775756326789467608997050724342841154491032662515852556494841520484526852436284606843777096823663680553635605343809817930342069319512962985660592639373888629223786280071637262770665467899951595844619771531268173554177478604106354177731147833564551947199533030269734562322470408334157708681662250835440682321829017339225452472826586547413180000988568728538452830898240542907326527004850011675408437016174831275930202494869235745741596973036218418328479152853961976017363023511330631190959289536911948925286993564807464300200807751998292272539008771751231829210084689982298670586177586373178190972143296943084026239115297680379663543923465673832054148394128752805761437052234718742038989124547899546516142313001933002001764038612316697307063268703106839911501558651834104606553397648529425701891088543006420109794309481124143061430567068067993764061874763151870561200259099896901262305684712491226251887171161467994676585448754643343767276915851197373596341747977307739451764398338650213960805797102504419368098668609998773162865275419238851363641118651048997278984178922084194911038142474135832661731878042315239897028447560051758703051839089138849322548651124693034706192279070652931714744482811452305732542204382686830163011035815073446090501423990319181517013217609466749262099629882824167300805368253376667358256625295227389189929739832352037942867775914902198775144443428476171091420802916660404834423308675563388910751102502380103185577239709770719447605780274889238677805665342695351348988528276675459185314238838056126478989194767364440122078978188634006750731013889511718752888822255693641537141503709531430106560246386137036587657650090160583174778934460848613225694043470390695395188385128710308996826339237047129125976792347897717822106453902063450765568442959018089306234022144899070084023117861754808661839782861863615406180410375419219436851760690416169652527796858007485608117607418054372629085045233844494065201199396312761469503060719757740925389937161142975560397908198010733154521817773664852392768081482979649332771729968114215538743442956128701226771886520016769907423380857022838015912829474035241014290831438876455582768635611550365076307157000318753749633346827631101171699707539605364909075984672950575705423525546724014101000830475283158109941026745706235338460068749738740161529396537957933142618034979392667708476892695925719753299560833754417925541175082373643190911450337607129974374516008467860934883000391933748803320214645954973004078599088144592092446565487378568921254971601987834023941754857173685915445487332159836009578925722457014656480977347374231333389660799391278111116605184110240110572650958712701093666158218291920229568645606607758664761702698825204163646534403601199825995683138684918779930408058547596260376606490601724302193233293708629440763519950667138894109811221885333900468249211687288108172579843486007804300741209477076564477721280269778144066862834151984022256001076964809067708217888933016904323295858199874223293728090806384241776208636168164346389973980021156511403205288376261936274365511867057100888182700289622155867775657933074168119709322702259402952465500167728751735063685207589171797879193223189183325440013314132533053221905741221854793101602866482311640629398732814253656364508379952194951541872357991240448972605265719270261105143583994219474572562838438652319690939005895842028707310237844592292246934902383505990925198843005786962143226353043937609493848751818618657276835892442375432093629892996989962918717035360169195924434501611311838598532702963465574224086304796230339125158901153996594849495752284826364883706084183201417796090406926293646567750739572139192832695684405510105326460825390005858368608618744079324468222034109744315852923419242650123033947296305349741221127358041297911462727539845240667046415494799383673491424241116340326165915064609144890588200191029915702478380545006267589019215368713501061655497025214022285812805237828247137308707858938367918933494056643354322397870023458786535129158030375418123623274812074734964532875249835522996229658243082188021496653037187451375321178953731889678133355106391038888417986608646847096949601345086771149430779997038949632194545659187675542491409786619836843965058022322061282736509270182236917566706087075314695222713820822030983642070149473157570950988320646357993966428995096779510484088748255479343169760335880634749646843751690620929052612132275071594798963629531005570040451259572689490632722103941862810898213238782211097958025893331489336970362836694486712888970476644302611624731679099227176460104950842481731805988761440557937578499380829028822965287824625083688367797641420168172755150709100812647889730475519061831425330815118397255609449523088384761476182304847101994201276219323652894632264555899424251342884427165358204942491022763819719468765920058174109537816905000358232222016608932670300456966500514640509914879458564400746372531949904416913833863907522320621645798907209527600977019083435871233020381043556772677850225482362693826620266043592535880322081415160253301687338351157328748023702966218218213761837782683814339242046169867011730194637661964713208612631095014398976801059543494063501000317390361543264849786055321294194881982194371344189794697921904823950888478339976854944219615637257209066131836928250599108442897941315414757635488069840919875429364967368316611983199781262686059239252035766374848897640239188398554150797116966014141295133022753382058431145413125917663521934936664490196101147027360660523982064775958712189514457626407054688386743063486419848302182447615479962101826705243479908020553720092242012818830866674594837238072624416201538740096411279852412982501691022367272070909075374218227273060526088243896927818902322092755467598011932961496630141216849483934011373797049688274455802278054325203888945745250041905776895876200964494755075075667539863390767943540434524316402127032939821095826248207840691463166331138550946692419770648929543542527216526084497610775870349570545179719930180892219184046797991253131885844242044346788970632206798350518494428343104143703102854321198789626264525449172156832291532542386818252654229856020733650751450523874126010532616800383524689668918490264572399504728850016984444696024123645688512330711526725641495260865934044523153761358029205699089530882309214021929500813373752829688186231407102838821957818239219159592923322496451617525898108461430886532983315901131542787009472757524081239112045304535570943111621112772320654347525257741509684566922960230800936591091806003909614033580430892520528197041454243315450608815130330575045025650437309567158953074502465636543595080915023647067004029139240181632585988701452593830544891177250333304548481463008453000382554412518657646641140375970900572149737709619954619369688150737703258679974942432681540443873665473207682676486042129468440086812355238875873472442125090196260376174797804837022553922057350388335944224650707146564292744865009300857930424501670439013396951165434852119770661612280417884923375761112295679763936936768822812916424919463179607664285900933823439317321616901682981933748318387263327919165417641997846033801144937184675707215111900692450133073181113357271572461523477987251380400387536152487247787618613223636281563744459259763530425372504453208175973301255026255143680090111492556164914215789726598560795472954507368919331932896333809691761007474479181426720850852363358699606595929900231519086256649378536925164987222483186087688160470078490701818177456777154272626328130566186183933721631081842119601195129203274149673995972025769122359133811989164515781672254374914668770004533568724242128535686469723875937868330779838100286440547344562177038735951937206863991515812669786033137324455117932106714981180897002179844684738464218432783438197856268719460600503990123818621361935969811520969644775973507565798456092078718075233800112502934823231657785523414551343117877061762477935316675699679401529881024883341550807857009875657583041354294995131970293737163831268558864070850895908025480171500328148117624553960708432687230314635012118262074375643309033026742838950833932294771328871763937417588048358798327803950540999186424200275685720947690487377179265027102775157211223472218333557055534028580628722033113397816890951936091989931963917607401530469996632970621212580785359594160556044002112556919683073350102022862686456945969049942054459801984713365150366224151074870656169765114700669221592052176417374292825893830343588217897470936982447101165679221614105214424069194215419857642775462674047918381105458347883756501606403203579157863890920512137767622275704805663041843809854149416292182993093657102762251108901045075967361393336046318571091810674543958857957445256302795183581897421375602717356426847412151147818280577892217804828444897423725975740502358010676557680458214032990659084508909982175652685638350386171353685041370109295356930582653696459907587766057498200111652300944890566556213864471996463691997612048795585705414597006549364485032688646295690470405525634865137171409491558758900749988061698800269527637585672311451580098595547226370897940190966641252257069429986815716021214815885293344953663902606784840259644001054996359865004088858167658369427097707090736543768791861937234989161870526135847733562069649101026374554502215125462993075633023726462049352771959098454078887525884947389040204677764818740209261283695618366415209236045058002559522507309832940120666414683351419106923188837411182320265482607889268658424790488907122090534587143041762239836437761147689357477161700444702364247363096425375991586392034341838949719739743383360595850268760673143790610007528217041614712349180766738212263022411042172768916929623723563646263609878362245134437508281372324088718022256422059832097106569787938872394383130191791992838526234516445128635096975898355879308931616114318050689917744257720853731968058650447403531920000241067481844515657879890106588126282230015144315724584760141091540563855114653388119633472985381771759365713970451264366516318721926747990114610357800330587499254199420140303521217969889892250450254817846760810700127263311271586549746154527461032462369978142766317442129007269659066272194127070493304741812163978349791408820840917069470012012130866173442494061389842367658803996647792635506067583375837980356080552467357114231276173956553605474309104570539050417300417684359994060472362015005185359756290279932887728136073729423761354292456118076598781152675236400863592675501798625373917351697456605382208795110104758953009716026137412807446739684447579521829321834008418895573231967576586227550947347386258991466010433372956228361121232257447067659084108797485684190719704770929704674965828268462164503615269401400180315006078549753837631077933303899980353086503763746084257802893033599698661557064064004187325680084524577994721904489959654957587407296811346856531137307787618855420340001895153936163968992919113706758400418096404722218760892765220619750973592776101070940287297534678566262156926498814387693111390205698569332594810741766730931053292651727186665985064749834912666377728290601262833769967082688498275804078000893233666470637990437413726281412460358488249905108819826572577070548324269326299461152836430774269311374564681422260671294941731042970824515998531007306866941976640786771532041910226274515863284670709930331450997467795725120144551065052210731602489259395971856349607813756601851718054099220713704312258940333956944353700896731421886738981572703229942817488515521496197114998659166147586443156355259788345676185874102502957220305120325773167821096633727498979447066646419639288898795534457372987785912199102126464153336861555072771128963668650652268310630357120517142397090877182513411191692053757170912639079782189622701707434921349840470746777048389585327441262528428501979551613961540397003215521356554032695866148783564493136666981233211740687876137674532925519712941851824342796626692199422897020993734008382679058711866217156030099040816503295209062946136168939771642453733475984916905103157156622739423166689258627282562614317872378133028459287231412779604684987223695678025374835538247249091067958600657395759958435828034280364193462530444170108350449158113293669421278048078609764563598638892432956716057251109926501891192935827643617046702777336365507677740016411968619642774153811865808673059015936263254555826460205511433204035846308577339351564511642442275560040298015177900022047310586652854567219792324653834159354390912135562161069088679029918332383289541010309157202597497054461688747572395732512432216255850738254540805671949837940897087514641500179979759144853546031375611758777305022518642448677981868426925845811125984800876171713530482495177156667895065559745443382157335836033533459756967751880865807268056135621734095555029295769627715653440553844336801068835511963401758183332397377870514093912643710172747872123478868171009317979530066651613470715216396073101632525152531800822667196048982693901064275626109804880969398754372987727643487327173096391182827154600712963265961095144933516537688062942428720835249906585693906509625803516980881149892413643029174551439733800881497954311996088120745849050407040322883265408754739807456936940641850839101211546832601007490733698851980882740733148425843817851039710337949982986732310388289830261644837772122322866030623590018414789121550725407631016872879649195970551889531346292995274265237544352113020459801325249686007988289720170752452823964823515526208381135270297224560407920072948668446562850086505423231445352359555378684740400119110192406129038978340259697442384897373512822205885163373144403260376088823892747399570791466146873261139535369196526967610873240498208161254425956727765710936595084449748596345226334474797355839228824587282625437880168423919885406099681183773906496152975892875876954650400231385102037915689274242661580519421101480533122560451685923871341279558008172036627986475106700031906762697467033400893061340812340038558429729878987313519196320192488087630298651827448159296320286111012798719917290807348586580965256013621778344750668420074963527735831344948073220969661747932461837739248347466603364854393643042941258468072951188849416564464871586774849491000140335798399472762392827918428967816777293274131574212400930029618231610345475640118603759090372624573407191292211366317995633174152093079527876299177028815043087033183272159453068851434102984638950757574671321881439217175702718477770163070699603739042561978060454273407419802615589116082519692652559348106444130383109643573872651558829486623699826422194604376900724238511192399429996156943940342551042579854853338249740643507090136609375457317170319806598719874817309870639484432026649787380022534860774276255959252249878533602139705900622276693930516513444357656437837852145388138487531857036677355275670378015510561410434883515788410740104115997982735324019574355041855543419366960684515916910365735454082613120687782305612379318409455861820067651477720724017823580032749003549851408628715475162447420866189760690533140297699473926263800115580579018750015172513198353993168913527700851203320738659277733260953498811389620828154070765474298498678669538842859188382863735443918840593688713500345751804132245447812440096587083783351529461563563851024097337768527900866177261165402695932597035389582312193137707423767132298825082254276458288074666747720151701204683595132439354682946791128574687967638037238676632441731386716397934077606558881843965446227689986345279565994527715692032656715984104191172209308820087494338128763507857339151056261957877420181854420689379029895316749354865371984813830837537987463055506576404923470382329629964106047554685329301666554951049230357772677897354731534467518577726893881217761111305557910527642164710242509629001478725160300518144159878724555309349392918487192288225713555912091490955207026304592075681262741033103342523389761320007650553764596382907339231506327247520419561351163776920041287715596984019655490674180936506222258635917816635514231947973597145742075881822868842018964641009175340971370030773863532353639365357637215465260392731214822326613840468645527559055054314902173029609926955343945620798091205683610410394458548516695645109446665430851268558619235538223024350823804315186604407583437309090772599968035910682041473696558807225009486844414928475572597170669883652137222409365990012959523145472764162211938282484660972887906119159795037653172202566979168649595309302850525717349340346711506123497511086484834952105505730045799662220551703789709196826709079533002389843782418307843314707134882368231503321580405362874499465198782793975413927476975388752589502867861048342411571446884974598049129893913789335343378973718622023077527426365932092262783602762648348307711637597035972638347726829793778319928264679830724903648879834966494018796474975035669743791890902246308552115944361884007706545563795819910149533521291798021660376226591633000524110224208987492048931388758577872211937228131833068700576399101628740152277384615301161973666749634425830483490518906485531771079080573333350816585447029332928901339938477989722201209154678157765279974388879914267209152219960070747319898017246726993492198069041345797820738517899118930717267797107331608940337176280971935685892767863162221784423574582129034182856687922446319170841534987608590026226537873701931175036523412487671353517821361370287878395453091196896012273567089104299776446091774727030342162583568556280164111616318719287123104785544215856740106723758341013002897622001998602712835265291267473347158140029918477676977399280107947396652737724475910587760624840644151428873852355701697185875967148154044909297846023501594563176960898706839768691502509470313328741735963982460781996878287693512145294845774752550490463336106042115754090451332392898547570285050872077145960747319941613789695833639246953939036720179044969745047040544502074631808176032860955758292223599952381415393279817830633146980771430262728393876062890607518633740134158095560614426585947697532926891500314311778276757719390162605484784150221817314483894755590278893379635230123572092321221280692614921829540732067982620770589329730430570631529356541061130322947956093294577911978517472761308583794917362137756230926815273358540865272035428818338256591022823240660270334734078623552517094987450261981728967050637889088437110360930455814785848803457343857770033200681453457651759913867340117722784810586662157155483165627209960579759550233877513894597398498739012068101134548155269939208898563190597101252162786764957757155894394009292512196695472026177528876171070890192514365018709288804366231118746497373389724447723956674482046638206001484849871705678032591641571330224523386428958918488137097575808649048019558170705111451417834655552095961523386782278450654160689714852518465181221291048803271444450158683380685594823066888667159416807999779646883766434629337869758054759363619391401515078888254040811505898986693287602597420707706560601006249420490391547693888971564172625209985237942820150770215108695156948880275798036994259653164562912256692422064161558246431568246990903010440466274257804124555119795467336861571612384664840184683582596045130629871311773980686711792898803438264045740360096793719941122194715488945585323484116706963023358985511375521374343934972910378752935029128708566220199483352190377910712477953020409006835978437532888326132817784921100263008293643200908053821507096502221954805353721560620240829324934746441091534251946217649638753988417466670874273290545940352260446446569817413435808505814951239533997644681438121258333324082419044118107629047467162218510006428420777989853663658766858525593426139914954008319063482058329991250628827196124649125478681819895494950381152811240442990862060873849716013808810427556944410993023962060889294910850394670795389010879655243919289281874204462093753933895903000816546892532412932973218026609826091152452196815671732565454984034221718567617776538905221554171981545387151869965385308830129575628282741616573584189106953818240412877266492728869611074796239194513865917508260497607373259315773747543897880494896103302738234538182945961221650838391409345352807401715054703123512319219900118156624096978541742040169109822875795746515678670866229468623781163646082008635685629449585203755410858786993008777662396214853504697515656142756257428856467760576585722198595510264160771822744950573195268964113994294870541623174962035525114120454349820812985450746981776571462882114014361611821171493313761619128416496344272098943726936674701572627855418793658799560247232857535921913290506623178008242729562932500218268170395390751307335299925056804139665957769529619039007580315112344784167744072820743712419711237468515101180100975519548718751719970099082955944183546801113217639334022758083419798888355737486023886711859130095768232233892197090785781606485489063796170914404513791614595356587786297281125470268117429418368578267260208772636910073538381735301007610680727258844397203566501915434099744701490769023910796815579697603231105269353676829261796544016740531770149932162367029529279939541856234380122812646827916557552416559804522401653129277621650706456336460805533077597297782601547722318718860131050034575789873029978615723627442234950068500231316634281347662050999438855593927638077634995428808672746315034110325548331517612904290303445511787399568161122197773948967699427398799547016420440054189076992522635375721338096632785496537923497905125282457167978628382990300070593281324342391766284912420121902910025865227723339258054498980808897824216712331222903299926920458032658293738408142225602084315392631739505699150639083009023628401646064886556055619509626169629377929453244937942768602668969277068024172147134053086469359073616554913938999472070499699487159267470092550065058174396423446296744812298846461932053178686904661014123197546170468805154193944709440627451377206803400780006287279470259066430902379456574051703024752467800954965385193676029289749986870283660618128286182343316089078286944300868708711122137979761628995252696141051260997417714159996400674987124253637739570958517674588071629120492361235477283931458980137977594643897176433901959726740116653817483429679269789406797385544002987131430867514262295466865408268752030882697308364292500850469383102054899705723214572715542522292199100547758890992111498867227038013722773278285948108034207448238776841110269482296510415770591220864714455454941600540632566285166191772996073880590338641154028130861278750145306060874323603851733455042632594658076472916319801531097318471519794360711079787685021475712863721030466701363875172868899905928769842542753400193701349933700133779667049888920387673031148549108118847558970649781218105123316910719982704812673754590983620948232097123491151299637868652528475597107643662890881428134974197541041727732996370733564939017473365572204344342075430994165907463182530371086129055762620211402455774298457364627959068467681215207806121727434712973946592859566667948741976705027112614835725265362397189224434085097756525201634647970186258944536998999526333886682758336589430032568215223337811452691618212302390091986944770531738443515351473484987892537716187774454142360033796126104535803184074356788343831723673140130543958852842681649933802022083551134569791744618300116609468301714215451198273388724344251456760533189129655204171120618336075378187869051998510106595516949525942592187243611177044792027980109834350557897798043521455660718693232794410122654741241970441629829828539231393835526461823046506786640343692816908531794137944939278302097694906991433999432527113250329794206285894103072759104723472077131112223142664051457959864286788067444382433403007328459913185403820605984187815572537215095952737220818592754610165311118772369510934309370709553087960763758555176150638019438303881819566850186929705795288706250945066447271173079205386209392514177994677852269339506613942863117427699286704670975369166435860326501388132241634154084248362126759149806211782225807292439330401682216519167887362229163558951942443463307980746016843114852396599338496960651928431440351201762883028896893272529991538501911451057752380764107029087831282621327655260573151799399930941926654242818953534734327213083530726625379440356550104715995234479503528312904958274487352517833075328632260716364526722181134906369793154379968976796154735229043545168514967466676189963440444915056677933908251240500168723349935222325122582277750547408418963264220419491679646112375342450912845640956872885396864300063612925363278277296551632460616747093632777407826971931685447936250653090543887577962203219480689947937526735144594558906803402906874722631985729779782200061630582891155756115849510184885843641123780992654960999994678081392461056655343925394224541557492012280535267568351798502656628235672968942229013799874913673252363230960012629215200078658159284212491337630194468624004573158531969294391228573637050741898682669317239511362285290763853774857221057206791933125786203289083794761992209560528996404389162735511846157451608615453011358383758254821400488075526157645366000404773593207299496156464271915973761478920805864079807222101056757830701846807017236055794269958934484869824000780449668280240990338092384988621975671722092999533242264302079242419545307909098641594017146662065069856034659287615217374318299603016072094705655173642151762856176866111017476389238078313594778342057508790392345162420153236761193094079047791991921091849866564402969138525649519681845482340559479350225656756031581651742781652872326013855730224876684922239182543750900060419751476828998247720638572937221610290974575006882776559468092641045474718814121742152003767158561391704184254762732717301272905992884294899516783223077897203668006785431876605823162106374302914313577435939492261488775469365359004514852900251303459801928711830355661159630736850691018353237125962411706170073980198042302755331038276836566425956980583028392581570977542669659647357532463583919911988217490687819245347802590049364965041023293998518413440498528911260754396164139697282062233723272041212378868386262842766718889553003312047972968109650296600652258358286086251455178693067207904339797503224542652479157869617589916535996626618789053672809489446398099716614384482906007654511928984796375104727539834252200056786388400163999776674899273693789812379364658832648882649630199609350889851693397202870116961632007902158949242797248938478574493355531215424769146094751065139676936195779531973182354638395307293265700167380034087111123515227929684775982137162441924076353331999452470637840169537259564981106582993696797052140636743431454427086101668612034494954334849188891221945718067837601416599825386493251794487097527998771553502279702208347223937587920776685936793333322760816695141330196199729947053630010431967582677691186596912260973387501132903624679547680844565205846062038039151519796446138815641339766469605050741657972485040400117488595779347569708719775059627711119180912786187089569811632633576484880924594785872325030722039834050092304479948102293143298850407343168125468692709720168381548959601743469088927511091131143956141595389330117211876715059210711503037501102839096336761839371269667201361165178057757631876231252663210271828610920684648100087446000576135937366162865084295792751836987527261399684101603643675480771509681795611422078684142866375118997673035455053508344277057462344820590780349598173877978198038478976135574231153846523316980476183705969355972611066772020603614197304452224085710194465629701788149748222041801972882522224113567473326017727587571855461847820865270044026094082846139045961811483776903345911046935805070255763399930923099821908005674328054439606272009093851398356927741866630443588007813637460142639154419123443880343958738836174994046385780348900895034879577841744671960779549850628807902843266549209473302004614746779829135014532107007395487423221276305013030247982515030242374950447259969053926763490956980154706262535234064451443471586551456844714357381437729442129576297064794291323768296734355825241188378338196133681288193124072744246348653087307425584941164904887862168993106884106089874043502041869985550956664698126790763429013400402443265917374003646927039996227621885404126316604512148543507919612965548943129166011585374152405480972430191501533818107573075442583923311630797453924961035674082571424482920623855557989823721208950251999433626478654063289744643506757309039560941403639082595217467455355718095554080211475740887969923762737971117519027239447950286677615340982777583042771978568846905881034973509163122560551790045562297216147869202543945640327805710434281255252397892953878191487327437604231931819379304610469124273758744920251974930383829957820969515614604267224489068737505325018085004276539573677050656283384271027178794440486783052600921025640716992043960822191782957463357964375144326780081350181063754092340148013473210682998866592027673649015396786377743968933107322355568259804388323015059816990967521425777233351746415932785911604338756359860256750980085364828561640142465557285091032551686648802550250268090487661335379014027565220898313846253499122125418964302994962626827352785655057424433394185166066905480310651071367664971404649681870878520998911833720267387046945182033938879337078436273626802863696125090472401046865398841758489634997565608779051327341313612181651241622183837610034479513076014010078662269354793828818499489071682427978287014533463766580927740228875955990914718140832174125424596123055703799479073522252805767962591517700296560969633520450959134231660942874589650030246848184526489962824603586929518554097803750165170137961315015566530286220198777588093431266433326816294389537906465428760195186825954605010018671131236984090668855927614519034074181604780508155516867552258491519924182925175624729448690034258223797130309926477266241500736281874088694978895631772735745552560413527535445302720536772415484791389533010885103341006885355008330503923038511043682781061298086052062602064540726743607369698989829585270583179554052002729942004584096454732163596368875679499598337691099102073941340856008108697480240126119575918500430634574494500610971859515522753406856280401516709646230110697696820697671578387993616872451240648271868007685226367999698862506794173758951603635529997756347107826098487532915360603030749762166962756834183807360676972723218808922276389365282255587257614243281898667510019594809534053254592054460770395146967072668120406960940382789883779252105422162666611179397614470047066355756316662609035931399410448331592991134751286944579270490812779366485102624062098677182560350286882884150010394176006676171485380358628323389162453720069378883836600737146893573458124993253513658374661086569553252654252486842083398721989891578400382037551704392755257299093049261574372445156936358091823882771939522533953522623072712798598662640199686742720760588236845609046277761325778632432438801871185675123997355920375902235898048014147311461378254578928376722277043970901243179401791762420109274843627869790625678934397725702972460735565409065409786919359171042164916921882850420207184630152271274997893756197690289217027132241980667600476096306232763399800921796031792063010232792010021872643079527633084860771942571562710101369529528289634333590309359618407951561763102681183715712465541637666484728140748241696396045400771985525001009080681077181671991917662059217458756749092539129945145782089683660578763915498827151311127312736925644866745969023060466828638495283858965090340098657998335040213556028438130346801777640940058027690011247829608821809897760743337219298463414622206834433869080837314678305470894592101208648649507243207736927210705448599778312867221281199211731273152190059438816707205924840410475144497345790967818499317563902119001527651907197843542990804139406855943184321305264502559635597397603349940883293568644706454143859248924032137717267343845801855536471729809512100786157880744802613835189921822034123436717715116290315900779173460788221283565823809576435069237412118901446779734497549640306289060710199511496758846235911224168706646721152780399809863260898975438164986571848255609036918914219398089754207442782936687614374743338129595799501072339214419194648967823432222524970125785596275005558487166775217155767900570394466382239498151189728706287546626035632516291537147402137424314748125505093266043467833109065236293509301282939046348064787191804259501612226021052625620306479208281351507222314519753924567743733070861546121970775190342855360383105981637147933087996379599225601799974939435115693545022074509649739831910025170463544136690922599045717768045371429147640216408957847235625876787242475579856240666333953135334009572361567046263279113234071143057190403671549283164142599970157501718777922692042310569121111996538809611104301786351422968567048563055658716036782572870774256649305983468836212183512056659660664305199094202286785267928747686762466599155996413321271965094092357464461460808899824899017711903927071320144753561941759511133964185506786041101888805761590684662845471024341248478804835303700543566560043393162148119273925055021821033492343492034664588680703448643749195112400964854559458705855208164384094766668266928690012724272710271487160907373702170058417295827174081858512701646805503826263604452732606640552367661344564376742514580671517513763970365673198441925376117016221198956468195461550503601840321294913012894342402468804256807626376718348682522499661460125492350154793263335500278398154813996445258684846144130365903345808257085766324302880561978509070306136226064309538482409531136264037652461607844479418833805490188626983427413225490275730405581785118850847499786384822855450612253581243089568853997511370396810317464714587966775525337076779763432505781873650618601518685695302174223132083572136627706173998388544095566731015857348341877337606053956398450325600611363583051707874132909054297511136015290516747713999531777779819637906684314848230800333257562690171533456129895907392987655870653872344082439278933851343090121939641324934965440428032243514539376914330504634237951731244656768208087788081062372091230079587316123577297426520506969821210423757875924999973510901677989557827540816037862774912347032486166282028497786207035902911742695691059102465718855874233812536639413312524113028047018549966004025654191541489869944406596953880607322885163546864405038266495878148952630564741552338597503716465921679856973231361436297415722305487420188021608479626235379376958296168647845673248810657185159786393572336392794239227483424111329574900455993233111021351315648771899857412221309300936546953132400680364200708741040295998060333110294282630501541777602784499672851348344772190400698544952575917695166443779667904803627426679944381539514268846928734709140887243610194155900585954579308651046196435453281622028981851408644740806927827449100491166217713789381792782682166780551050144155927096571050430921127179194555075102490799991461555642464726031264042115887598850748934755335071548744069932134857276389970402998945280031760225680087114026651584576844282248777457186804522262677057050791885714721389910821247560300386805710588030099363939257339476330672076655477255118477900553283487256177631571616115739247080061607942618148701167496786878138468479155774465750199780796014400081005701376082695032645944304150385766407747635120384751866044038318935830249372772502392840090068689809639909817034013824954832582033444647469435138965865607035339428582195864973768278287504707292012931358447268794070250523767342072662684218917199159181712731457761426675687783001721655240316173395096533267158043474723837484713071799979146854393799870757613105945945454570334656971735529727536534859680661400905305163090870889199572132905440556361042904653502953047202535755400839249325599540924047621367404945810553045087620508795857997331168757384144412129921093896123645007109929646210758336748129215729906086778700165602787791432500728056929257906265370369500630599981295515995948812703755163511254703243878391733384896213479126583430974172264207334770288287270066865327842859141993128392522418245171426393479893558006908452262383408468024349207218894600647132517374480525439994664583782780176933542335117599049862966482827581382384440372095417029884833775985845039696787828554199907979121031099557052852980485154185925662947355998595915842298790710426431606992011956267867558038709811858409755883565100122193116341969350260829822154979802233737821478908878797968032119178549308391289384102958647351801727789892034507811489201484240644794675069069617874495071939176481330859565062740708594365014422184637970500855904268534049070819641635761178465215028988996501553794096373669737692590961906373009586709080544555956661683564403943754165356569226107348542050017792157786300065340149236063338225078562622841581338831834580243405397161508460508180085961873731579459130059824669952771389800460353610913230379820227964303341437463651487082098107443065250589707477744957952257228560050355371938356068136533334529135536169458792073200665791611212534240577761824373582296774577007740180393624690701724627681266530113501174030550778225625829710734391486241241905623388201175007554883672097821282189780682306957781517305397514482434027276165865382824764740653587109955334507441185762639919557279652385999698861588006873244488351297481043097601288400680641647947522106397847451667019550963839147184689749349156809387637190667534020906333961747503062841114299133961240913563834813173993362831976850602218818465342357024265346314052132162310143250190896190420838105569673858907146932779459638102471067732444149411565461838934805631105688961096280881687189653002099806014332817975405102126891157188912721877749529809471183408765776281916087877303935104667090693710741714885197572176546149999576109183009681700418182068731473058021627142785732965080898709130537787406280934929803199306813526479555036273842600238148595427212139956202009176575324788807906999219519306130265033899800209139874573236321990497435057515635110798125267731220114856988730901185168995033529295393982139276557983050910278877965479384653557838882094012426648074993957178758909185334507446417558862563176800435703581682862226953989210907229111018991783064955199099880263728177023986468334425190756653908047941984533157543574791399496990617524149503278240667540889752819085485252944359067384032699003020167321391786737629084453116391345680696665460797320275257373469818156390408825534984822548697710364052674522593412686670725245713354037724410331114452523729924164344253398144079268796473761939477849568008347254879717274714582221330958476123929310405386657475189545373084838000943613290627545034200053812682493990558222001629784640525914554441500854114840267647348012754381202610694701376797286772589746282012454505604313820808089345653463266231659023749078394148967541923897951390966087699969146582518704356827480692332060888015027057129296577725780204679753995232076951888631051067160535085538692194542414867318354554902868671191379507027563010420221398306362510529379651175482769366862157226028999658829334634246602203547663327083186017843104196260895337137479661737900132691320966367507362496999221644870525125028743409503226340704696514556911785696413573977929479612841940794140551026472872513722741220396273161975695335460870399462893298762991507434693320620563403698008048503879921545817228951590946059870880616062352659762114617221344667765775203020848346711740942931849893269907867608614609471954299931615159017527511041610923893003947426850400497864093327560739354069761048707517666600430313770747548148207455694316195341137332568949384960655653239061302471091610990061615047387820440065173877534369394822189988948142450230818931154135998888939506909839860562797341268698469904250885379242965078913516882524290983023861893486451581551529166416206580084738087006811770248582379909955218456699681395271364816888326359835395573054028188239950346534913785182710915379185226623908816769225567337902836764654613342222524408669137816859188862108606553957212495916205400131193256150290482959233771447750806188178499119485270285741729381723143202228177108984813009329188159469380134586773230921809423042253946293565092021247356829805432252721693491369347141228455876326117533319776667180079099661104128549638758218472769681413448489526471538815412632476006320402826271819437719302091091493044866043244215507882452316929045538668123934581208318998383691443184192846336839454817706191695384998229401101170410224696665264618287210021282863064743712189261356343138391072923598522380054780456801015103865395259480998627862648365464759170065387801267409827795304091538341555590870180083157201768175178161734930242334501953837871859083266456652238739892294239673585580521890315322875271537299364393611347493067614103354935291784679449647494428611935199520688909162103434919013758809798855672162956207199445471895011092850400657096738830836906227392227372350316813808601568244302590257111970122774629888522308225103612095617258951612886555230196827655881591973321394002764117341260703997404254531398138133314731116216659657349373022518563331910478669037975142968033177571108682764772636548240838513101898431400651996176174916047201633006467342617444808737609702663507929676063498390961297210199758103946264764548127864687125236253933229039999470833628399670272760291351991683762553704901330695750679056707234345048429926540255647721836217897758316123166551436610097803592441914148269248908297076725111726171123384080448488329629871418071073237957042322635837649927347188719551441154754712156381627314805395013534389822391250079519745843978665088590100014221200020985256402555836097392004071020386424843481269649414206047380777978016749080388022989562903092834907891517713561947769989172966147186503625499716187376015577848200722830982093890554418748556295849303323200078060735221283708304423686382963849460024924819336398577851934497414402406852482697908880233605158195948834159377440351223687615562180247534491252028031124110373303015610241312212930054129194208864957140030706584033952032113083173006215010350315787217974125936921844653838310502120771414243955161192698333370546010506583964549745410849434591808690320492713437039787449441705290916685794792400545887269391880385489671786175055181443346020560663788461888235099276601889373729528139092379832619708164822987730656345972018015690748631790995821416862392718674664212748917144896361469930932963665040720047720707172882631548943259055388156105627571168328222440240566874087882810269016066335841084143482519885655945288947831301029213035719048622726079225364266767420061608046034376804984327091642659242737869500886638158241999793946573425426675422775358539672509276310603134917480811229256862398024976485427526750842278511232697219417672750483754288042936268231335354388195995558157222086870544190429765162458344511887932421791120571120354042644791107479396231463900608133947652155160589686749363839293712007138128360776503408050334246534276748095638441511911051020061600754450028923164117140981613061928005302628758319214658570636625899047049228998428528008947672173445640112472591411766643467300183565531114759408295333824482656480921047229673719662419254351935331598635518737268751856469988158490958521290040159205149747230146961570829035811042396631797739722327697239743276814781106612506679150997430285614977074817692428894213971963365999153265587992767770904338137390404175357677873413928010420565695350156737450483010926561198955051125323432132036229430039178257980452312978918065825988299936939702037776729433470666061333446294287851015127217952943940370205805423148898681228347298895315109524687105934496202771209808451175715978144674589860946565841343352413865014684161485798921098102938597504360619369337908301486951567895487332255203149061363575329674765608274645188501920605182062092157814842931183634528741797271056520294798293439164607266499493845500788680757064254315095397782943318299182430701700102852477553732694833924528707615914403551086581308031926937223413229501237832350815348989117985274284635235121590528500910280742953563135706937219898177357241633026239411044914880985004961243869358438846108756234458649095804197062337234257582803332215412059450101018359566242803489058421507309493458654715071831757079331917364380447167257486719339265550225695718587521241936602317023130708022794984031729030095495105648254065278266333739392062572681630878522878241078613878713863399901924394456988440332922094350239488276902518944695666247426745460705942420464935349059879555914664472252884064575516033774846679619021487719389151581933582724981438700181762132759632359956985049863931210668271364595701528814547516544216894713139401053336892980246872799111097842393515852837214766945331322218471645985083666162200151159154879706673161748160797889836315134632405314718828989740748557134240324626237619235709036587245017741260389021289434360052997773267404651792707113506042866040531620804717163422620686647792869557639206194488896438224442497561543095005741353219967050389529756656905224077220200379492213144114894710785200017519642209508741975687252020403744213598008858436956477039063436433870320495370488721644022906904554895494404046784100920576702633967907552208515488569981548579507939397352482280942359254760684634361820969766622561700010226896669189558290658631297573082199857785613398321865158816546242272831538787291236806566934834560160273354471777613608552675555366443173584988267302470202901431060730459251963868390170229827589733970890581603184349212685988795276965394218268315553274801088413025734719897216561397506912877171020492115271504611214748323676150912722728871312683535919995232959380825841846136051484406464598219407106433096809160083407884224239833158942362294266007783310970862255959124485106083747681004502606932537949784106197832726077211724668280063254151281167484669629120947542165193192857911697592856492190453332132557416330877514729765334761600746751970812971275624057356077409998460257277409375896841617849689942822921107650246437773953411085969328367005253009000400580936344661564831254057637541415740838956995564725907454559071757779472907172143430042685522498077232791470083501635005113427314562155663073068574878392637738130247661677450985788703968654887707354288189464250680834015222925673209464272443886853013177300025379549759940547122517018806005312173067349067816430954291235165395948926426691274612722730165782154730321799163130137905245545368017746548438697622042898265937604894707628341564569116925484240947103662269495867359464126231149948154904213941241097115696478906301452565363999888153404523343615787915850111495452661080350241430496679422897461325311481003653235341216046481907190070124657434340449617798096936070477378388917375470178371050584031166031891327457693653771304485060440765622421146308087070475579816440662753410782705826571356456912470739119113630414958528561988744743493039473213298743224417026158335366427324892041424159580708939386254807738738419314799167115582260472407246642229246020406755805045722845127653993826540230291308041091393362739078929726805655445381149923723508874263217489003926400704646737805239732823064154316379164423714577594649923442527719903124960626456436034623579863729681231939760982744632240506925505676000946856709387411223445361307337390798245780403177793875167811256902324746053198612933026846637434261428883996957089331301567978871502720376309274670176988520677609472068655910915797607504869868794959584660196875080418125934842839196250387117696796214870390805441634662343770776371609857650599764837532704460635356700848484081124099708800723096277463182081275961179742844203267671397409679553986692406225347021863823240325502057615322678681391396236642591877092738875305626117973006071897291839012659922410297477311721260822292269668230261193183212131980559429667240022651343601783825509579460036367309417477485502163693413894676376977577736310007977659937008394159442139461492935144895338044072241435827657270213956940433004292890805620434478532302817337682832566099576571023507945732255303895207035842448112017007404423563924515349894892373145335562472685129179762910980475864300231197994736981605068530791288009346988855723984149366248208636012859099092953550476752395356138741102049197796752047965670581161765785384975632566864554259983058687037413970074647977479813222008612311354277891471252809000728245568743823744176795971163383869535358320343363950806351161858597021648258863477796758830302785338544842154460357454460060428405355408417530770226248259903416553518319723356644984040885103804665660799921259709919772952311565904348620303123700193800811005168576002789490538608780562262148953492047879101763430964011718712827771718871831818443357297351489924480469971428119295020612124754211028201705078693816023864249623600351846982466474837672824790913874942445136696177123244283944595859415009992576295363194859872755182311454249691101802966235792650570992458499043346717588183328124100613539881986551667205357550787227197958387378998174316654940955159901535543795591259916450081412631869726151402259957745846344986027432728638369622553210937478695750298960318378979293163639247720937481531632510987228277327988289999482142085749636847127977503339728268826650734748195116320790537758370044239494754258500787151212136771330689623927577800839349773772338460345706607865697490009718055188827396551329788996176554857497683324847040826907016567564498480445114508405655436108850811588952947708713521591255836861637004397886620750080404960027816789591082284996179012887300286222913187393099823095807622785607597670114536907740027914172587328681702721681813331706103805931094077005090231286174005679289281824489648220916409854545329792481087128559664223816530192467227574265660524031467035665223434153874346339325239070221415180080750220616908948546158203802122171617527677329543163076594800675143659897390943791876420253023115626202900633083471859693172854799294119292209336039305429100864012556157566095367880667714782845481954276887804322420897516245803082536457711349528934705421410000485044669170452335850382090021424813929119815741864713694650686808676815426083783644983015574320972453241628427891943998185574561427969680806875852521867788763960639132068861810482336317508463363495574950238204323484884531752620741456509798581530459332893653752386363465179291562284185828352719841580133971081029231772557475369619290232768980732457335470397298917887231195986044755329231043233031248074470096868361150705799470775311210733160896700357073141651745458891903092059918648482863624980602625958352969495231563795230046269922209535568727005794202556166636204241180188975928190210678205499952308699593301724708253806521046248973904064475132152745547885185096831810538202861896886214070996744628030466039626904737448097301034444779331744630234854506467962867042235025981898434640174713844507542531427345744396255593434613050393854175853540453659933718491175461124298329714624831856125238542701730828387207890427925088652466135473992731637976050558843248105956261168371324522692915230364352505645196582154935099071629795006916196761212088359489916925184866147522019170190638089487149189087753278438705769887097310955562168382979340446331120552658275058086976460856210664237237747270121179924242404976997747708960109384335333811406020223358301627080147860635675365478970677909395570657708551962383388461584943431750395046507607802533811140062249672759107483312022082857561081680589482759917176480114666860988337803280508404788034421157179527801741222720961910938293461382197249809684028447383795030042294604111141701350248883228544867668985120045332088180841536711767197260401633491945441972966173176131907620827934272084254846989165143355780006236419319308884193307976302335279989587476008805896474087290816264760158119462831610902707140173144064673661088716322997911175321218904757776526075116393923563050926917486024994337102473856807813845431722630321313511374187662138636501943583220455501922875765061545554570368046458638998745715719364588633074448231808124177276396396924275847310119078597145055205808340906146929396024457303636674450150665011885346907155958638988692734035356665594350115593075061740978888740966915223935561169190524575952532424878622570312706347590970713222724604373857656227264862078089767143872940425481862357117467798293886538148629970121321382983074827868754157209676815468020703962539149819951087601279118577754769401744983851368440745134076556689714612685058139430572885895490998488974088516661379401005515196027743890885066808905925846635883128618899549668840825159427260418764108394847960822639439426168411660218412469817158674411674330073125838306479056838875435664607505828399652936962256986736375149875510644544873767676750701118621792820515435894088658036900698009171214726249000523888923745130825352394755683320964002197595124360776203829827140004757528619067035070644107291831152427257430431186385105600701960144145690265706103706496175611073456273259359356364335131339940811262090164099366786019671138121186605855573431272797720547970478574865617703260179391832312983219344981835219485860965879525440407175465585005489199382522831652329068853077447495674857526404774379748485944810162018839033974604912116688279117491908365939460511298696679405772723664627787342917993707175154139925937205257897246728344202402632720275594935274395172091464115217772912344486909101162444104485539321122983298327485264631361048487607172178295152607912435988162495049627737842875432190486013211690804081673026351617280685189499543856278908600760867961543930092104128503848670436289258529773065589298682174825510357971601885314461356605917913466112328185872954499991681650930676698680274997553356002007370420488041935676008590267316326534032762916757343810617793817512233054209517036368518072372124611138194446621099196084509827085619514499841030915363002191841811887105167248532803251034151089393057171684664761005822685312455805384877679137099056332238521074348347767107120129235276764415540000610432416483797034580372243142027858646044219083545183874168650390667435696990622266663560860397372937711721781595525824176180247406522151715725001854170799838753316549049303223461894447332426904009272773963703943680364026737700050662034819415198123406453674511666259610074158524482243292078442969599523259167754858279223301249260159552523736585472986852837078612402433927197506073131331519780368914927559184003221471615830941567450658225309499588617845782869634570138243653379623437787235435321317868040916167236764904286896921388355943256288399277788366998172078525911218330502521782746893346485664190238738426278766412202863830613616776266102440575945614674065451582717425020716876750096049895832284290313945467478333814323045728860083139722772969584001580994872539900078264417495401972152502451424786513509633681664006435119472969337206688997401528688343961693982459888988035633831804229207245109529680157680799571721937175918580550173475246172617975960890149601076288702701051760644837293791845074419138618364634841011396123985340896903374084343148083906997931820137064180468649233840832535942519436734787374546318181945112500612138181664962093428253710230316402285650599357525056230036043570694615682892038861044191131883270649848278685317256761985990459995078347054884672735215184327870338270191033294712452964189753008546594000386151948448064719778626662871874044715379172664725916477751006164745271466008124710927868036816887107946819376960494549915122440561531751180042278052478683937264088816275289871540778365486607810962635610992383962355584669864968310434718934933792789687742933213052692348115513569094065110470225757100084400999148391336229543730333874333198262473811230892954040771161204772938764668259137108117952068364568052931087221133818690727312915859820403534292058266751977007621838732099821941690831479614879791452518207570404677915374937321050098920144303091247183300400602573751152693717020125698333999541673797385004385083827386206233878538739350130261316149592182610945941424148565500995509089421025475805711560378970172734938872887405864078721664051187982012457379502074477641379831558723022501586135248012539103212761130460401202748122604819695918186258546106670583365875524185058284630844411614028478149772932513439189989565056385873606915473635065139473543859031052692992996474111840730958601541647758485106389701213284354882774465554994320595043931805970378172072188332946028666410465123992484779696390733431316688255962853391213732579974374094839381077051787590530662433375517831950744692108682641562001641811755443364035994898223233247193770667644688476743318655064885898708847813616860102814512317643064016237091357921986922711282102497163817050013672635489654762158059002912615808074869938283670132213881567386230552573720866803211525503406822588957570309494591614201483555153743398253373716801027764209051930447962052303691942702329147603982636148305437698573775841696066723036546786136774574725358327191812164674316894354500226918619810009962651732809187799946784353545396646077329072836310298415908771762822981061948203777566775557039373256758715480771014536716031123424711493323458454140662454724366672077182463541020457213606116664809206438017571225636112623042566764251527238712239031019424427415424775933331809331853706800224124880375742544939921538052673683304520111060591586779649614117102900917291993359231282529598158232319210036489055806243513552637398126350227105837063056444715725120783697466102692496590054490193771400218362572809422609886643328061621406791649374564268553961503582343758287082034977390755088643020224126184525760191026843074323882101737974011087756512549548566244673378975052529250835943878953672947072508327234323140815277519468633449107762539344298889068537768698387566324679855987591038471085878708448330050551779483094120410201085847484055580836375014315388836908023923892675396183068114672712598704843974532239058909742486182314300402961574694057823930750348677673000766575360530653375316557872876814958831875990047923548918254434664138818009716805551494922765704855246795311000457596850172090102524335894674729338538583677418918785070073296624028702508914874459856775124548317814800398998948370550966400913403260012399569309079032522913641653788749222143963669020508316700850585419178842985992211778866223079408839505278368923767841886699626939767152337551866729305510813973985251915084475197089530032591863597686311663756977429823864960659366386474135228444093121525559335807328432600052767698357788953848287832831960000949881496431961455759320867666243986182701070254391192175091795396502285458421972954656604737640756806508994788810739466089438392737187278069682589018676606108903205916520661314987053109507240975423105287874952150171575442716019715743871674901763885872146513646128162167183465073562179025429456604009110872898177442193971814314008704668030700762493717522643349805056289943548552692494187461321782487262808167278326973662344975791793330915788088765632379592069753664713307651874009662984249994833334009317255616736439802060864003681384020647510539578718739149942467252004253804195281465717910699027475296295750065528111950422946318564372162941304038830994901395559431932575890927862167728574121540329778938421129012673573016274108655686942773803934531034776283519846736616411949335732956971380169675164340160539305446532937211770140877179554163849950801251307047977743453619852131200841576262916194006995599049684727819027681270415065424749480447297702068722001930692719091748160578361182950364227892331638352024071712053823768860983623048721748530032906872593640149388790385119057500130489030197076960226664935984777271133966124595745183022507334879444047972120001012814227601059234835667326188587438871388538865892290606529019203923281672283285000512844504601376651468662207585794071677103966357210749428267085979225795585786414645922164545864949864587477051967831189677433083903026785313668050047296780574797712985263626306410655569521723486317876993439496361454375999504947523790551607938315312274891729435122031707667485186420204280164816119676857791162956257528198997668666598778811056821350644925437282188247940770873527363387761143189293995393476144768180670122123748610803012831737483692999583251684375485383080165781620718898724186008403963285933277310222543665797347163271675477352647727688033304042201617824987185341334949685993601843530626320275524744215624723207443021021364276518193492552857978925122461802667578932847388517816970087828894403996360918983019370654120045324615681788085801911199029116683924122591927756281780438097939447090504767029676892651038448087522581925995036412798703350112379991581586319975085119988127496244879309658516100672590788754954427944161054449441397295446149204769272617897525286594694627096572968857498943424435487567575374063328183140984534442045709860238450157815685806821772757592205338998186186440059883037633966413530367180096103287342177068738828864451463723913608786271821668175879994592307416822316216967803418092432182279372247322682060173292279918334109711679011556986780267422213270228720196558839625288902842212310596814942634498293865326579767905898799815810351450637880068978970601345394777481318268498064037586484845330447914955153256385740385615672762849654016354413759811239452397810366061675672054434267027569923586234361083125409839735993157874495107697734865819533153457414090615563003038579629114879045273583969279304229416709450468942914933065578803343654069841569766354568247792954730810141217586673517388511227794025598454343151449243523014465386967972646985731881498157975568917312030141797862520397873554489555056628303368801983264854190762461798278473483151668334768648087314216529198718697924680899449014210354955545058255260959213885270777893854575257255954265179916944565123884274021522612714737496758647009267301874258830047684310941789309445319071383927322879490159517012593374354223036548285664933948552915049727900827356337112980441786322558235886618594084851567201897554153627323707718977417666119433031603198493583863042345809476824216164521467268890882630718869578626225024574919528825050291998092879253997547718303183393482090637615709022498958148779163550607778559820787360379182283398680757326626996162709724793144843654557567408299345966294688896069143343941172291263274878500563689812042927489384463534016971526947707618886608191790582717325741552590201930611117625122343011939252456241748067443547407463382764347799744446627423921489217736162925927117330617537888431190153918620036520504298386349275158179830842103609121703930787957213556551398831059771143794906910773247715306890845854412661499361128354159682131618629095077050176735350619525137134035565787566606007311196391386846245472365802689826385884037517105857846298810455700352019850454598613682044808744958924771398540438372173659255280135785252359587473556514668035779910559783173190499538208291724510816368311529907932399307826947511595837597784284545765944761685045070236391522177532442576422901635505617079603029647016741431705602742794382904662573257825335380617573280744479657586533423884911256288400531314599163688394978541418980160483427139170872157378507047530009374416307682222597943309006643693092350180317030313464693992492581073260256513480303258720169071376109232513015702629266546311440280401262648657746751688149242776971729800997795976667288002427155785050418983009194091083237179056494341268414193838780691518804763555148073607841379704353493056750402727835401519780431798901407299219515571757950746727983663992026186817416376288513460325989212666035027072399905372423478464062874266828237141570777033024514515138377170296264573928238024852945641825878918054313538006090191663203086434293482844835036875303055733493420295374245242564644281605909872468174259931804455050450356053845775760654581508377410296194010458871428105175809504865704296975947502215954238178641941634167934544270144359533207125558793828233437801395256674784294618148895809762658644296268159141423039403029790863477996376858599287042016840416730883655801625422998651814329094623052270808922505647612181891057499888711052017465326372082253663756573856562163574463648515443574295165269689507792846024347061703107896840864312219194009096705208346746811924314760471650704770335893954849198601448046329231272018961084501823306564261117986499793872434909021123584184678106117250245471857711649051736198095287421230565502524500367113511556543590616685784247375394088892891460690581496717654427879765295283927628523672526631906782368249409744847062508437311847117520398680941695273192208754250194423894897025720976771573094018280582623499175154458461505925149651313084854718517798470911213792016144110168726402238230245556570511557574426632571403592610939269067832801740297524422567861334104995699935405824529576358527208989810051376980829767398354118429959715666145107181027368764269916632444769033614426660733133666511127263223141629781140857232951974491656141298900953706559081241253200650963300619123785201459424375024785979061308106818014316270655079132099608413872921488892075314101281885719500573804419932986426591366671045985144099149415130863739591849138645678641221818369905980205531363783649563875571007551083405483621032902240160163742960373963823893928661096982284608612085604531642743178885135537402317812312840698186993334247037038724095338749633160957443661148018692754396404216918484030697325610834875237035742863615710189728440486566534666848249367315439553551620635330700751189020832797002849586695187793280545725977253220402083107159244581974542945134891295227304107655323495387503005097887594715265239285020228751088445402904242604413920840435393609955313702236532080160567620805119783331086399695343141138681091184642631919482579944067091732547728952830680436449861876986050133133789852936018166223289512894671761968401084656979469823376539404181935819073299331000113961750629271814227455763242795466395460338150362623136793768037617547493115212127615833370078984843117812716799687158654765039450789586323477917596587797562873746878484830554467650452426301703306628240031885332123394503994477276053645650900821809100469684565420237549583743152640664833154796331135410091720228002381875078858422650630934509364283581254700595428622817750740606958099063560020052797448548131995173453296915672139428437559325717023510815792853362477149359131727395724594210292684460018350046666117631004836334952023230696664741860953227373350048078142540058054236928585315698244469811909110859048454174680127734016082735420319639644801742341108381286797151932324429914792491922729304075496590687261876218874989151935065422649973709095140447170336544818243083947082121902590725577389695807672650611332760910254531474390374552235170413689776801904825593175324606743018561635220282811306780885258559314000252304356111381772400007165324920328998364514418607403917004146726077313201190766094689075041965752923902021742243637949001364095699067380976966975215223579164958926485267994927521074867549349117362238604241409237732353531757708605650462626601894879878098988419146391801084838005329287987900188887407008226967079764561692979763379918978639289496467589092571786432812008822321992464181902922057102041821830732502052906480746775871779634283822544442524701435000825737880849029750362159269613559795286617604188077499555054671866716019841725728615629133901266390466096422122066348487346667144273288509467824204376006017997138151387368817049441346909759223972411103721004073308811651950314018444989536697545865829378486930378984099760054922912093820109145649549075395609509592806786448348295286456472418140317299049005453520380864061944376140914802526894089919418250235767465989444234780597472182426726118023186224186865398981289108112400061547465489898286700932603640542529282092582074622564527702436879642159908926260634321479313269164531571423097230560169523419830279684857807872423871902749284318785460164227923906866727677230495429033166093221877043301207512246224087774553985135195668517571791323254661776034020759303018060678397036573825354138337582227420491342907879064626241855687670673822957294937017093495213237579051838700488709039306115843832173085827982706496707297233771730331664071786991257157463237838402125950691560802052523553504476131468083438054979751966088661510557583582822808575897108888322080949043813690044064633529866855438711969633256268689568059296459794316384114365968854652819322280339828481011834624658796224150344823431020554515634229054109212731109927037377235789310188142512486369417285838074025323384376796106619969017876638197167802341072516234877948087317537465734728531684861595649060617459478935086319860632725230528941445213916126309191986319960327810922517657953623708449312239000182870947469639772719411517554663859750206194991392210160527075353256294155108014567742220414428812106972019317421495123037283655643163350670561960094164997391653185013932052297683382064195096201717744180794977489210694990087849660164056013284064637506604814932853655478424539412235892333686366379052647512552670840639988257472798793066469554891214208127928471531292611653367727559351589279893384056396869589391938343582768998449091228994249448819693473151848346643374908938745021875221464911627771193274476882474758999152145979795742172954764057131443808942219162657415420007555375780939477109080023329026324857803785137827503631434348416928253146781184674880418527124879164521738494598228579482404443394476936515596755241905849010974266124159426074248082267966147979301058515226055903148259902224801613596719253914794921983511476888538818879480788955754949648711752302930159494189842179126241949702976436590486741898590676726506115077095851476376029036815992215277581571600694774417991488870981733268778918909801962812021485160960610507938166562729528193043743902771128853004649773235109899465369073579371556685875942752499473418751536924623870792604079328375255089141261605031613271474306143337166595887427287203308618049380951860132114248396342252218734968652355391884880966626645470095792738496680800091669730388387031059507270931487775472959768022681446212778778223899312035992983416479670274759861745108174915307332604182266738417411208233305513765407291580493563825572894264029520884567329301729092080095700911936606236173000226018034670776817075740197862010937206800015341463432111981833135898046310072356509096856712592610412832422567912469117239873679797170698215816980679598050774254194684534420114808309247535073820684955478569594681370288379827106902791183772879619560078751503070087139896750494031626825043430801137052183304208672422517483206715468875184496665686533040232995054428896343307433640745699529923230882332277181844488776272388201257596560933314914552119287818177735526064139949896907427155641964394734480326609029953153001823635074469529088634113333762763657580027688888981120152697862742758868129546543226900755881988529819806765917593192195540771288600653764560845362592443588865269709806962182893073052706221519538007765292426355389708982368250036731639747088670334670912335341131569379248456785560271898029316944260577046676372137923579580289903716494639449719197523576598881781395196867431387493706891313835112284882868616861432118884015839172728628182490597613364003308246339365516423133690565741784244082846532382627711504418780869694092698297456216217507516639836016224246781661533567082697220905242994220772906182875091436267358278791218437931958302653664197249304183319472027545724543864511115612665309033098526891542344470710699719405162131370904423389897719649863770052740473611791541986566794286036497873709510671538052586971687213075167683021077371679669209606486481050279918277052116894013803190722438435064685649864431466065773395611624862082204645310284738416989619854146479944510433807210546949591441338307823472624989732052444659965269126979838482147911152401496397200284808209400641018283378747085335965244548122161535560646628755326330923605839172964586424569584614012711742960998030130720358759710009504910201256253645246493678236362376081617721210962287304546676138262971236389765066631879645793431076749770725824651244916618602264314812701149068497291093611280859764231980535105714760982013654390729069797311276955030517880070758779416666408742149415558359683943081835377431235703922333104759834595809644063826001687720008784274151816387460607754861262518518858077737262986137091436483108586387781644176400475515339971287794376469472146076581408849842179276710359960235643799758521111710354030562995659778931145366324958473853176806719708563613930628447917523476988384543517879659725192210952067768814936741597800648520606839174745869027466953642203242838162221828645613301792586268307501375107185172764770834792906720029629308264252290095972492225331126726603217413619299807830807719816569618411658497796999468478338628210295381202182367835701791701838338578934761854728570703729651381070112155731041345642635475420805210792568547163607988082052082328358881698045411752860671136003378899799241487294493642673922523363958650546817332164305522545520940597342143380251418819419052347449423203639434982648045489007024252724025488606788923004557415565252327090031494631062655058097687787488007558891183583107914851178117160334036018660249423864462110224908088018351542610383669111902592981859716675186621761459654152613670902994734072474884782617225344957805847513662769915887873398821001926947165491235583323186644384766436383873685591637897183697296600520177012148459367249720003285745366805696007396902725400101138204288007154880441113806850742650599628038860171139523553459648083256808140687156412913388662651136402266615947247728961068390683992286724844915085791480800423567965715612557850266311717963665000544640886285454433818516465715991271801801880689615859854461199282361519743430095182519596164108765068341277821292298800074050680423862035151830094922285284552350722203258408074844134006715228995796736529658159065600322735433517677768709379017927931111184520645940534309442851202058390433291571835287806813076015606087592531945545618664592072772502220341125368277707225173586090272417692753229379255914702967532504197472870314651745366657015430669164008170202016131668859348422834754425148202580414084430643049099175739725341387668820828537212550511565823800425218632026957239109260713503201213071983925565080286842878530526318289494468506490644106047057174536254425138160806286257362033341026956667272808179939698244659809806253799011443165582956847560445769563371320376793063669762357231110832747687803101488432133755235326246636935022702420008581221429484720573171289525154598216279654799791662825125286378524026791213493831157459809166167363238898489742426072446446667873040232044662730565192498798703417578250800809915370801621516690926304204207615310291846083098382130512125799276447738776334071602005694711964628047678865541993610379365206650906731616403756609660138717210817093444204225397038791862494677394522038656106435981174323169491332363820023896827470675397888485221728704923421035827689235166443217587656897569734032715543153033403973572745123583340807718673277386659376874188003619088430869830428679892827869151298260599061678260441285336965080671585170498192820267948152021321916305220256128088548442209620621257878358523304865779885100953063581125671389934041193125141875040053886587605718071729356398869047288654197246927813104221596871589044096068869330019780472289627231958305837650286000418567557957781610989068121259639475307681780085375351733384670233490540762893373234016221469593934145607188867428648165504167685596731625442522254171761996686116342556051246287370131037106068167040514499893428664243424584259754963946129171271274168026839034107442378424116647320415151758914997110951443062631167310124180786402720318116296999826161244698044214397081587433200738138049915628537136438340573040152615561767437713586775328703303955952719150260565997619891971179223896502874307135226513955175072199836838489336381503643397889498034321734809635707838123380962257473251784804583398654636175357275914607671725177403144895269259654199865846871094439152500343508992508745003551241671803720968980660912192637082920932272573766756331123889947392781954251638036922879709729973240885405876360601345416249158442524269247255971755081129344030713110731662241748696616375766394776747561647243235325763577258150604295762805282757430000707389641764167443359163348869379570320513494408291409743082315221531626785888048556295830036847175407737174203582683018536613295711494610734357777025740264951549507494365019086959325856717685879765234934277177339921796251238490711483019676483556261149732636819068946863296220923958532756598303680387564318784064639874767240541138708006374080644060444050424922381363055352015987035955418959919665749375078251694282110517808396925159844089198658195979165471411594866100549414186178879529244022442448367691858804924107800024369784837986638881710042615631838810896979958922260560719084328355096965335819579297294228569408467578021000417888696640254850881468558334085383275548871836660491304349028076941507272129983117905832188828158573827588034367794270499200855814725469137453130282957379316700850135292963411585463894025983662936970527541862639116927695936217550727844415639113128363165243868975238279619715603581184636270604462454890030710035025444881977836400898018692421318949368137351891069240125133888684708569554484647453894695630373447399424493437596499908768513291556694744263864482951538874410528953472542572495048331029778709203093312114040441956722282780519056548411797071623728788937617539019205849397639809446443247778831901742148983013453486747443034304100476217164419809109201925590190908908829597261129717797752134872786543083318563432698944100512540487085732680949737751786501126619839219087275969029124693578505545630149522178344774764596769305063446478350537083579873846299061936406878830600889849989974169282947226609591122167518861569176811084481528713728935398371016311842789315810247898990587561983413534580036390650987183874926208432767085742557794879989677402913415941617651428656832606464685508981979823013198249194798447601957125888995952713736263304502061471515527189614760029300671176093716505823895113259157641680939630725542638088351003763707248536710780806782578485140475024392801876281761663666913633498174291775041553560172163356384629889266361109115108263497002086932748856357900822366766364101145427676033842407628578401446173472101154529407533714963238182284110370000973371075544315453827583660951613784293841576766273711826693357637776268580408757551726853325869583262445922177477643467720049967484502017571111781916724952425412157287551934018053482128306561692334679606149145246023417645786528619435789288783099261176982359424333658554519119889301872314874034780823516763352605500932042857848542287482677834867294515075393644508659839199636010960845884243472812433221723765582811480260907794602678730234898247178476906731212392321638246630770250302319865468490038098214478083329268011236857491503801061031950131126922159649479145371645116791409753606639902766362657859456677008961400625626239550437765374537552248729771062577257392263112316906315500802354829983768133044713215260473280026110591750750719127543613903443161936946694819823264303616046097155305604049795505137143785385155165957745235320482839225529423695806727961402652668506466849064805914523987826870035555964036316776620141233079826041488020757879296561512638956526330105413552569019316913694618936274200182798905227928839509446217390062927563618785890778371256368666998773468221124914698649471453354086946585962005078551339666430003182356835664926457310982352098550408347815512227173995711808711542818574283381295924666542320188627466961263465558638368698941280542459175953432624174150279283958101553646390832036175669822939171772612817327209353637183493147550687407332358180605491099360412609678377434351651295490109900545608655901650795716141203537122843546485880023519903173177059534092755859780636991316898353684448319233674486066141608471253192335356371537354983453634298602482475362184225845107009850809815706677158731546600874574281729875757531718716965837778544298044677818755818043629956231611197360746032948817811600351033562885064926941501132490868151392823962344612399192009969846969376236392061813788561367560346724242981984199526804689907172323243029206144259785082335454607874731168652330656443283127822912036068879958033807681632508149686097664394927386311507238765437834251325290449018735736890598874297506196707485972286370694487760170313435293231718709604402368651343494756437501209812510250439760008804049808776190666308481398963738857753407208727891460503896271114557984804879018937747349799189501118213468586018199479551094005477078970126931551705347634890958804069346457748971120430242736016367680124990832447264441746389445426346133299233408552040153262092934890666401579704661968398385889864722360582420958526861268913927348783862400709945837274503440071209100461549997436939089034617328722593143575432784805898690993708449846780538944157797076912248429882532268395963520493959989595076800294668366303831882857128430104915118810314497965871067306214459435803971364825071523640785679122842111005789391083888814322501799154677143631220174571675583025525643413020902671839369380096605434617734339005528274261278737896259954797392782157242329811930971882081933691892930030244522620936787190272212946822460286094701786048445264711181505066543297522749942975408231374221346185275261940853075741360017341483964247414798091928568871575806376364743992189299532720253259641603974164532276849474184758577632342317384401103314133537786952035079376315839258906202162271680068624396988760296188105499310705771223323424654417681557275185167761232436923003269140480295251873831916443756174925142374706649379053010647564534228301508718925423649072118541972644290458465615409642865760939449621496230607087105931950123699074627243031102126088659792270748587700385127562278692973107884349262637276751269459159449342049590102707641170491111391256124586483399622275052632364623694303324263638470960584295064658211987582144471662040688083805889628698284734218088082936825260631477361915574831121910773174510441958653103708382200538835776658144996325579312317886049753364570072790616228162005872832973261926305396305368157779341281820554244211496128908235663557344078769358497072208696517294434190628855666336789669426681528377923459670600025673352174827934835488001173896199250353544113114527304022163394590572808889070247705774119104000089378973755441720503638152991365279157463035916644890472718328256176168114623568421668997855590159012554902521295323039474136783211185636039990426145584024623674053863010650425940651234191725344161587288762974049412842887980817397818813105480974330607239589484182000809520139078240678670859131335469859018075969186855262604092555556292308252000586407604657185861013906728944608103126185035003514785033379327963510781249543365266639663569223520018735440647742414140601883088896102985756945289537777903149256828256951224778764777094616926168493981331154931425045241973520068397107428373872456608953567942973383377109345488118358318326885162124840153247017384446041255438290517062311478969981760196585612687418893325311655716800756001667605763653645199069165693048042252330960096937448312586767773066707305875936442646918379740231915968659700422518630272253883198332687147515453558144343807976935164766315772372070801460504811844799318744521170179707797407427436742607931243906269312264742930243998061199093222826861671052652884746617548391501827111098462682097205052669383558763147465337432235707188305059335696402952904647605792088393944416814195048746579482296786754665675477859422543632423052168567778502581053612366765931409621982680943689792345958373423426508342755721223780553782631208580379502493589492309091290590562831084626312628120124895200296882294004659483260176383344092524035641705183255606074347892962268447075798303292943403805974988503743658042510739102448922929801046653154253985351040913273193677000081207575434211716053604290431737944790001070103363497503660043501936392197611944426371635397702344971659005281867341482311052515972096277692864844791948821698285728768803753579449047768818606725105894298317455321709728351403705128129060168358913935872159245270476013230796129098856591303465428822176048550949508718420757799720457237066191279122124914269606585710269944375744274293349970903142159946879959509546475409176254717082786821348733343471490413946292470842176775699295730097711322100310840257532875572798643931705011743825035234722901299875952496217735964800011148723557728421780009169540221125452849302260679041726685182793971422206834977142877553002079269869472402036418367207516785140741773881199533522838634154538260929563963716594957189370903609188593112552290175680295280031010821652586360391898462611827962297828457663854816922754432876583261493738469834569255125521217327765758045615353478381066678235278995496497980874630531411596189683764846848089593589517789534370225818167230457638932235341936010242724715201626234604053967190363129886449822443198656276806708537386094042398145569552623755447933459482823833134389429171365510547204858600126362066888324592762053335157244601082051909558592867522481039458791985988003680674240899180226259093866901463021034093613013521202332586206990677008415973436627351182878530125707014864802214311827237682034256613126726747666634142591433445793664171279047537562773040127427483702045240685286865184504529597749621218124037037584570187318777683546327550322631443969604336817058588605358077568816828007965904761158089335001787772332428880800809693768126372535944089812452636790071697598110446283447300175000812377495060563547321507620340080091541644895579897322339469755215637414242136535435520062961851022532615505113543979817276619124358090893903271714672581507479008226414107950691404712639904129815253344931415761005750331142374125011155034116724858065250266436853534178397300966825717339107183814995059498538928224055955202916802988054008508527342969419659724976732685395811044881223794665033481256210760258950028236478667367837794449034924771920726061542586331669045289962948806820309375757291211109411847486077966989058838250608918919142382124718755530335567369747733576254577556219677223912468536830651973872972693138801270355711850797884970487038198336475806313301319442750522873273544864406048571642669186861713025667477559705358844998698284642579544775584920877208579981170322005778349401841958711623160730917519881170735350726979989424729863375104400458612429388050555961070076296010740653533042477057728882823705405668893320252241775977805542430040700815738015379681695006604861617469127327527936076790266387171878191549706675154634331391710515831795489198798707474148338910455835489125371556875915221318745340953082141560214043115300838113804204395616778497268915884566369367097919339590966888487899375038457824266766717667615863655034828903634664919367808041490412144562040412607170064448268858584472412417603926153483825507879457626618668026822981425328642640098020039981253410747604877013174388203030168178221203010990444499286371508912451889952086672841824289235066310377030400245968665634953207124000013306017129431779062418833450249044386908791090751217838940889263118382807895210894380391768609984056698365618323562511699789006840209404765593230032567785498923539829684339195484184966915440366960847096217232603355012233459948277811654726097135898718397240176656969196976593330699474860744400771037338812970889750179903610367581007620522376765681025920050962019466193408931166692768563302571019686038035054854430148103755215758410715464267398289731797065191569651688541930080535470629460852026562062359099511455268728925270899700143071215828452082365804972599012662952132550372772972428800834025722125660606035627530028064184293203077043547646006719991199233096843152317156949344542202624429662335655476845235991864841586698576479046399911857951087030985090626842575573254904280172293975349162928532495481414565459762587136489435124608983718977479331985493589354696579338009430232838257207155875592939700204277457622939425007281696504452857427288082780448099016131611373254532164126471420863878013314934046001337793980867302032395665691661638356021676158207969807280539375361034505129339095027589915263242797449012900114041246090565795733510975940532315868856684425417888291166738248654983641909168568530624015845236169346936276370141215797602472316243129562544717381820173832634233457007238107396563965593143136076340225001598620229886235213525082002934996032725313802425467147522668660491732439867935608486851192870395225212892914851139136483722569663178831138488197490524101175285568791288976186684045283740359185036639492645317262420432633017365758904385558140764933110453317415567386428521474456240638895975484089643240455223166836015814963810924798978125275844687751891525778105058977392571849780235640838685470165209927196888461024740315533989162889987614719462047823338400292077491471052740873452120167759309470322480928547414824632485410701899860472553207906441904520859669741568806496418359014855079724123265387764935721888105305640409518524772898194420307613438282306150573501597767838065667378539207720906924112812217589573118588386596514060366526169826565443342316957866475621283530855720993555748156082212425415630708727719718879330529920442434628761184255465568150162512073447216411039600208022155050555725984061111568318131536832299062719058346874634346578571041780402903432174849774228382048705451693506188862464232512720051656339095334306691392821043958258287157187529751439299491857762735957989798023920096245700006796471327664574622578089006946751526138031605438619360013197406805331693260276228529673734235758056400712987121890366600651361548227632259421536680311138712083533813323195647430573085701508850805386712532385811293322309435586401404083929737504915514395588974336931717282535242094429150050021616180954675400324470048957446840833955551569746382063475934831075725044183828305630822640822930698362353278842283256516485736048737374346080295313868714447561169658581180925859660626413534238884142819072899207881037594800649650834207146538152684057259399917575661040493680673805787596613254291038755702648911825987469565112111531886065423842239215491389731444724315514537755775783032143150897300287585817512081540475358600403260964589902791173229605037240345911312276006219485660968781572684415326451275135683829251160309592661461462962238880850758058955147089984715974444741352044370193568151212148905677967176531429894372977050963754746942832643316039116883318767666447825660188223063147085696706283129057224896500707914008197707596676781074171822622472332021338837271275743290825337051785014753322138670116690755802397445009575715554481008480715670305599026047343496609216626639915510560450111730403903609208357629294540900034671690492447267351453606275172496571816595481193844485222372684994327609046113383384586954305117133843690856905349918927872983296932115709707202283252481155885174084491701340162036897427247328244225234141352779701047422172525932629431685307426621191670646390586223897612616648058911879106492891496404568048797084357271987339119789878681816121143750108196492972205820728762704447388360687919849432169513867871591455606600435576796955354896472786211725353303568588724091453730730478411519024091608464572222709153143868961637414841899800780307902936292362599438189986698093941413665697926032288282449071013527381657519285583685008197679756557650992632074290891924460152724172135435731007058217199165599643573828448984420152916930314363720418308519012540268491393152696080396994133214147971834567366562746385294797677078804774549394100818609145174952356430052164269436382282904108199859263223892092122562785926307317501390051317874338996477884761583504696267918559674119340316492154688670113229388327702282250000269561643744374784970662684724531739382348573433697556681908293601301513539340775118784888502426694929909980841592324422111139530227410202970951147103257504282435199252261372510092850784137520985496633362158071263017798652076583558467221306424583840900573836411522211666635600951944874858780404963191320969347335541382090380237644974234418751278666179361091520451987792422600765035701717085140764544942263846611082929162654761185967938756470184486852805826146326898199361330544101511631635778100193388911857641838272108673412689815899773483869024877058681542693915909527577484410269635648943078744488346006336810219757371523483788467185238286160514577796930361236870679807236663808393686642103022387977908336697583061382917571202628477041535133860267483734428793979946526136693799473192451568436834204027237495183472471922966989649662581230097284880846456702890364441957904647994888326161691814060463817913390263051513148618608174119755362517672163416153908760610593330358908498288276704708251648113339353272121830511551399634631149096884685818827035641752030217468702353347977804796282509960069210346421170734931474966950542147379862913477349922265204942967493879482542132991703713070883882096804674550954095912962782903399097465721202654624722315737017837776692316279160528915129356689534025555860669315985991771586802489582114442771546326547911534598206663188732571241090012385665650323409109570906648058176367595207817156103501667947259405058942926241504057605604921072205960490013728208051085833752420769126412252578581494779616815189168013805147689215641165786307636457846404416026661062526534231401026781728760499480475170650480337126952854395382628683193106205561692652726141960357853654628399631048341240793550363966306752151444281916536790606998483361454324463479260699921234054253589242630983067890783423281948627868444415780437779251840533840750611393208278710087053966403823179982228400441730010387311610863095822205838761912856537878536290905889453840065914608842732065377652860610718407556733781552124941112047264376483674185782036212455024338271279264157625442886105721872790958347121502047623674475641861957411211007847871325625187861763617065900782967671650760177087067189284736872502092117362113250924365834676733512505612007851890783058835059304245420791748486604057896056878369621698435527617244579912209561064633125960251693142183267948763592557496358174430559840939213622873117944524301515025686337812184824888760560010406595227735766473329592216351788081060767972267617893163026574172378812282447735840957653202882013790351571397722582400094520940086715039892175573149444354789265001934211686247392477087092944819784379151423743651817879067848549822741544147889195619485159355778183957781958496670369557986406884560346466447859428498005966321839459032707196523195427410886397074353289083534551239025757167714200403658761610316469519514653348523613843788028567099114469784841020550145961482185713764220077481316049838465931678141627173502040085792987426836567929725790236638181043110361874082413609937200065985502843569558558445195100704479017477251016522723335379413363690025016248202770615737139876141245635507469853900990083007705237306102452476735949915980993063229192367260390006896180692683664132283934799663861605649636350040788353809073491248580134716036369249459267075523750449988247242953210987957182407091416121780062357790377542487130061117342812336593475812134610541143572188046124292106896093985785443377568807078103512670461426593348695535344313684673857518119568347110977431585258783525744943062667797908761452538394812024847006163912867682804267594274684368212297618068461557258930442528928174353977963863240019751704739213712702843101414806006367378275833114433095203281644605381316478085854098768648687955487236961852136953232058708306248273647891163355002363458500577067823915107015543140951925974478409590514497801519913890452511507850162580767477562511505695486198568925118913471570172853758602010972191426102628320940884553255060048481716376535379733653240270846588662449433453082767664617589172822941277814181577694443844228954711707750286582698056254177362085230390535364967873095318717599521241614467582247677726306162485820486443666833174296618492143705616115030427393893060168606928822145159067292315516219537223943947837481947194206666860837325629844926154068397667805844378761194301409038172693839026978234394928333412333692715490779142412240831513851790953899645237048634781934685954498940043282642494330070690215528783224610939616514147724204279404907583110188562506072659134653788660694518664177183592854007630754476848890167390219175417517593960157012729184242950426178934825115036148895836366914621230616949468356987585671438568934408366352343838049755906896126207632709638534531662093444758972181552662286650352205814604517165721146300961488251191602706075239501513150272898131251005829519277632150943783874662242456546946233106885723907688196161167778281813072263694319385051457893584167011885680016208203987915751500934520517869172894809462362277506508110756768691581020420276740592751007394706185658732258015004312557662815013100198441178441811044906386183469664555966993187405876648158841291819929945962644190431509088182632338828608475445206369192842132213639066491762137603333132117135991861302077245040038205563654334401885524134168340127275878187533496064636399752304724155483988321137617136031364008102413864120525314036255269496155511803188578061134872461415035571149568898282613272119363116192782676350013379896108481588436053780437984751736933480944032677574271214721382206739477670266405794801566887145917017378180670519007541937579756515030198007931227555921794683124027750262186188222311983439132143649432575797619376498752037238395325369700929908228637774830687298345727010492330768202790083360597160350537037036081345251931608313704227256172421974902441224941401575128423341344116454476678154950738097390556516414996598876154569791915294812724997600971826406477917663115606954001351695151438961016453943845292680794499813765120333707906403934909259686354190169393728960412974332311014902067577679767530662085379373082882286594629549228896439021968099001726204327959496799212125407696470816418983573239473813646074868359020239691360819056736747652560736313691678502304270590919204592796846612027821198413387295758679582572353323557111461139913556240557219168645138603835159058262310489397079953079513551533225935434470072530688313838166520102085975325078650797698542760705869571937937352529175207566103632189146974917599808522634058307251477289176874528465480681247438646779228332145143274146035125584203241651329604147725718330458292555167465737680701561494766204193768389948683745459508773033117746301152047044920648472365952401900414891505387607772875847122943225859582512181765580960379440203350962364438091079694550936479359125512108029451340530792265744276964217869350740000335963591105994768335360786571439355448153629976346633497938337445859424464093807164009962464553949692770978857734414735395785401913408716288567484830768552427069951359353153536680415417659106096321515592411464876569683937115592803997066564590287060188007888984081625116700171479791188904006308177012821613506839658435605118247039786762501529810019417426149441516399266631190606727478259999889580607301924384805038891939392650454036051238888023037859733470190089093812365332879457062264821492193519301077964385340676386935597289224711144868550632313789198361692207424371322849443712613386360749107004415346209917554993471931687152476390983491687502735323183847704774039966537794171176740400232074240633159931872596931331395646751011853475147369106793736710248424771271496431573193351981976880435999509408429909678696537101506367264263244926826001341918895652782188153231796415737065429152695967817451548305561539451115584874476302009869216412319033058551022792033075688348725708189961532726805687229134983414462603808674240524330349680545810193648055374269072809733732182586924836815947107694076298132927820674263749970698361408845865925674935510003365622859144730122002507596888453494432320327519944598504086432287449994765651646614282200220715806962102930351147284913822804838091099928162646482942365860943572112609061935079692303208838720589367205331742651516191512209431451611902732591901761128338104079012287216801245210576240977378720789323798899472976307494908005422278849296126729566163095806068176992341238328808634578223089162100916835520944636894170444200038107435716287001119239173832126930983439181091303314883464276186644217593537293444122621590902152126153537257603012683690910990997967253473110617029784702718560123784020254274374741278167086121814481243414430225223943384184440564637916436696683651675823718513352950634894773938392474926353272514799735393222315992231199859321648644662541157793946614048728549486096543636288288740525060353300793683389110879104353824002933494075290905821393924214380209160293729242173579181902125277459362494692269798491087013833185506813340170521319323903288130530009952429855665338846441188519861634126905344954544718601123785609737701167815930325065802456743195016648884037949877945209529204075003823541289769929858689257965363283913965159012406067974353505039050590886115566695798110371125338636271112274601992248694958279140008855669237859619096863349556948874615308358334245303173922263793046764096876678171540825234088956712126405900145715081609148572973403586795903910321636781047475148051648944661569196250807283855455359341960129863822974317921508216204163595455136583073466768073860734392092537654760794331391758351463434569359551896687510399112673874024509296382166672990783324317109960124757657848559593106158112515203047260536355191194014353266121438577888708019044209669037121992105988865497811920798057451322687737506380149472692779798411106288508056453333874896434622858179424691144821340852865399112131628852194686344259243879093539731118986133414779593166427017445967653505963584452813070311712245160269636283893041914251547772417899289858873736764019397430806645012630776549183155464083265750610123043498739968987588631074182665579464674015892874837669953172377895123081389280226428718133124220677960201935988638719436737689522731534823745167812461275804130796744466597713480008124289274420064261989538231134727101734846836583139900751385246122147538001787231097725770675869895588402922656589158198256025494940572823500198290931596404563939129289293654175252832503536474273168059772506639902071214871329486560981592526828983092697845122188961966240052434355518880134165443244671919199764463779973481775711290229274114308600723288884764051703164844246614882119379519305186611110042145874939561380813854669661801663467190790780263435056191964788140130058410697508536902863869198732882397573393060578590132481441768631788201675892486908079016914595045425678498425900802862889403946734413529981966957667573737962310045764318590485068777301511584596175599806536378824667575634072729908804582897943338971243236601843635064343247904129605393164345100837172795644658721049834415000731381928586855200392491214123693053665924304676412691566496047207988976514012595417265374618878672493633176689704621578533869234561613426886828068245254612366449879589154442102341738147652416577644801018030726129372781827729147497485712868744867200308715543645862958782729730231353828970002567120721065434497573010455430529140167157196795777422992855209622302605914558365093915899178686631549617193988705482931995789377616011631816900580362858835621893489501083726706584687199551964715372685882740056099424312113532044369849825080957841211734655810334788977174192639484475794853373703494706949281976697171570591358347417490072474991947797592502286670532048279957942330389613520874552815051072818021864168613423556247225576826533456067136166160082133450982427049449131959852181940377121924674597802103319193004436571338702425340392318272611545288440187565159327327981523481805316456508633549400117673264594980326927704135037293187677151395453347064735443565617328237928082516924621485153555766863890143510655011445995749485250724436469312163634763886952769272050325493788588597687933011340338622175882739326491235701582625050234667766993278113965424030911813230729688910504708792418404269267749157512029460074562908240162026014045441687076504705912468408471037923814924013489649256850279549208713638059792359385206401484252101784058040893938335971718468617105207968274586493807863475712030893277357859683933236222716579613775302172524782455623634213454602455391268004641190370692886900386803206579104034820082593480641035298872712391232541895947100452497619970593110513210278445316564459208721193021708600451488238713747593315731411166373445024464471340790361937631188239668002758585667106137913735334134677238786394341974975864042198285702253387414838036151579259109833492819555208098326013293818028054067125626534814538098723750336811200702087465351285224192699728041488231589965774622915676915990403725130976267890695089052089721952507080451164332514581113562295409470072598831547139115960005288679539100535826079416067234006210655484089405106054585463449639489192774110527831669882190071623579475196507224131092378190423877876333736353807396843604162830275267319356573496420028552149537173167221195416938800795781196701473278667499119084178715549461149396178522412815297568113691023226571247239662923208166381627368851887543060685680863666195954196590339189987565600446689252134133662027519980957514746608854542263396142499142635096515121214487048517454202990985290783021970005282142999152332309648428773195487584323232606364153261929140253653882762531132321503567695209899169883652252415580811596123442558296437190501183121995031540380936879974475034122171363716456378136989062295167635980516287515611495805100700008942876100972121847897881269460371187033026046243513978806513302802741787851466139148182099669296454527329141964045495861411775834949933839099044060670140711121624892256192337263919638496064748392566501115626250895339562284647676455460504899195378138217559830242383934972520743203867559496593553919996466145738917882184707115452239048571041278380190620419909313309864622842609746585619943797744716235265088755683427201977270801131895218523030754508579693116254848596183000103152883710919459062224449195690274506505004222046424074477524085035657599672204743657984179090542162660385647961862730555734902065441957238802226125774580151918205520875576019914162190927857123460332822582946375053664349824641340087429838346240570050116404335116416138375835056150949149868840213040669004124978430159934164109076775745315578351866291140231132799232397899276678981399314052413477478371241136178901890091082847096470553245128893197890436122830365622760445243491964692642921389434275734603491470754254843730213412116207718713030120196689026939225249651845839672462689270711108401261812717019769505392301237386223925872280391629686942853374244791526935486902665195808590826161407783596573638180770446030222423860884229419488361569180917476569270073404678768786673879600382714508421447039970404683686759858602313447671782261158557300532896737536489265963916361172428922562908610162776745509756235214601061216108983331770225099690198299546194924214657415772496289859931382215806758154891628516118546196334041657912182311706375249703720393450825658014246301933503694212973941303962787048460558435363341407434958983089589509984236547380550514548866017710877225967878159803760499516845184277566717166740567505873919128946885529915965796618144140698480815360429927066977952204344602917963506500825755509154152112779856038299637041041986935328270234518150687024762772691199137925976771725371873050424481585635220292067450489668614902154888942551968618332443915522205851124741801127739520675166384100094292735649307558382931518807816607242026773384346186733790646070293217785198565431322833687087323519889089491459471383497813179089770331534792272212936167808545347998701834925654946213488048802579687218166721660405221514220586949925112076739785325677291257860579070616914191275863756339089186384742104214249978309002487347468779585890889439900979515799905198731496344131511963457416747598273468867306890940605848793093546707606985955418712143900946191452312194445859037202157534797298025761545231892160699202118254844029969271282294058592229270772368633211177704174001365024283235802283129686079391321946536707582216322644308707384688375799648363973931338764684439066672986763861869217326625605638094686910451369674718456220102926654854683870934551232876292193455177567520247431961390494662419561360057516245840027758953141179639329634931391646322064640246698750209618192994520870134553537373831345726162808289787243639141557003571386373102597290283102299893546446192467756827180816205270070266268222557519082485894076983062816450141280046563639732242665010279275232816109964897701924717907883621753293307496569883614783414294248938553698601333043212420975144457175608240915711198115229197746374422533150110514438957928716233672644478093256967557407848962805691512370863309102871498060484383518611215016721141368396763428008147524218859161985681621725237449467223168311017208964986869498341315172931354651899045292459154906427267145256011529166739878161944582458591399641379829034212734763567561813514580789473459353528919681861549261579154014726694685189993357430388420608394004278594047410627482342661373823775938360546079844812116905431337945019128094929616775640067200182829088832714986420679832590466926649310717868207338322355879339780153200522211503410512058511621109136839825946533223567344450290166722693518630393483542479079386952155762831113816042923793029287586778564761873424669554702713526065303903461349445550230480789553605192346382267558963647114518918864379100672037093078601037150096067683818169952106560179213236545666598542478129710486341785781863712212534287063001702002934340310950744698797677777726139193577142548804031867032290681563431818042844746998291977848906709579336065209320406014490358092856168130930546376742844496273086110552456685768677232441379503793554739476210813787646049195868141570306618029529714664781657536234330399166568091876054034474734251649998582053266098725162224895015840212380092934703380534002113641841817505261458505430966751919441553942912298512382081140823520239122291149926802478249268289025283406040525798193492631657033789196639763852529892417794133124807038877954624708148440110563894302507211503371386915852107985708152732021265893037362037977193299644188026205924094252208986459953526593599797955351328040314391588926653396352333563894113891168878417418377664928836783776413343085504279621717979374150028571026154149807997501066008528065114372832348588266570010402832998851414278326419710054554772371063361422606554685394122593830838755913133209040709072654320618002613696659681022167836010076356960760943267184136100566216991375775847713168463250174895848579204926472149571293637274057151275031640878398475986263721221938474705720165287300426601917272671496379552346516047759576050745494905753194779737580012414506718125904427546446299697215730343362484241620765984273372797871525896359282058974353311875081416231159054580228043470098538228122425699418469415973001118130249061985759947342851851850917245257331080171076949430522364957318532701634332472036460050460218057196648756684339480711595105401190481200102662470608783101416908366780971932608113080209134136810159622954308322582977412805999875093530020016697509183842869326097842270596796862587136244190045334057747625684103981500126357553378514644674724525920225839939699194255512559701306190844207558225741965243698806744364828467791552224098511651113686805894541010964855268698419434643547791046302775646275865654598463733433109450463806999523970651102512591692509804130088005793074646989250928562141421210993841710421347298326562728396010803978938822813099176483495413331299222884016673197639174377904565866414842590646648944821530803090307948038480114681087545772079050335859905385977439705337695560142538112092290496395389121804766160158650466762338762742507817490708225611365421663170886594669489140095685324453023926541142968675545143465255227869179921281570987585049568316162331713864310000481889172823577800104430083186990922362966573839096952154367880145511658499973286086595859331831250421035413352226334031784848809343085295381958316125702316941290942243731597717660828485102972126062779825946283474283809233969585939884153609684456461886572585855482040028702297203491333044177375542146623444075464647630991040886932914094172074806007885392035785488217110365155850587470163935820688045244357970151344535322427441549937091118458348823144832278508154431363124510138239750790731230327965901738036950972649844717505133964421294947186205129988685217797300811270973926229813532653726264865410633993982046062285573505705187195387898006349634225256534129125174355535682864170939058208013451776984789214309832017329066838416847238052993630096057283121467580304432288902545857563525486377008689827341336447068551122669509934445966646384411916213129531620746263035482096408688228127586087427279208328465566716722092169433059464356916051264109630006037778294235376335698175923059886483214093776518263195937280638697597673253310084835922010579380234478466521956726593545542947141967203374995734811762033571555247601650991529275611993739328397723572623952043687972109223762068677652146383381258609742588275451552923665892749264154383912225490583519644683411320266344417671716508940068246068412373071051972777331807961549890648339946806038990284286663339466338533908524557118025104724838406309817010713476435483993797441226687539642400612516202804113011196036544790280432719525181426722740378029961381804325305691409543246724600277644949899474084356655137150604994717893052927271290378501289993065105217806892341234823003751967850530431752402562816558862417178264651131180444055994479912164825645449616817198388118245478195600001342394832128270702869566936458470407267167379793359740586671489614071145827489820665758763517289385355073799446737625713107689809015387315769602324112353929219375843300711304929962720070757929161255225396179429112266013683152864585373054547014031265416852120681030683217201424972278475152742796098547090263405937678712623300424578839797604480240179335398422127431487629330081976545690342738293035864423822750713680412735495974331405353789417033673419736911193162601236375975787688125342116899504265773919071550771453691008495788172325937703349074132183804865305066636769819917104601671131994517204051124549705222392415026587785521147961746087015395314586336810470145791193996046882894274643867021227288193668620222040055463443756731078843843425413255970301290575127677701481529773442959898028215141509747637936287650723452313624066618506113703498375399431484271486953506496021958861747179611184318696824795383275369803578123877792565105685439343178020598457504041521814125996179725413422336948749902917339853293127170663078766969935096808274406399448250655387896631031273207132519298412595555700676448705027794890680050196369473423150899320412681810325706210185228346552322684223748903028482124844033770778161252275008658302665582680199894553890983759354545744931543676046505282723557400380319154205582458412527436044623156328029131784663724368552510000473980205740266890805115214541320761649625320767794376202565559500617487398103094363695443502511789020263005856623678981348666799565801248235765267901481239265972855224550005545300974419964312902586920852792453155139914680449083716304170113417043327421159801469087528020655345209117301934015189668845374064207407881668673025831285055125958804133726164583616943369507218663669483076019423344395709330616077250906652465039334933609111630046737329325918347340297246568550787203495679136774672877954148160491125846028397417324048779878604672053729176124964896843869643368707006583871994232675951190493903825001409232605549176308137541198275219976570314598865646890365196341599787403528658278953257248625756165372643919298813887937988431968564195583717851604997566307682589010545827154188938288814256917872661487624680937467788885539126766444728408010119199198999651127909510348318104581604796350490825154797432169443349336801645224654240062493901614284406062632051458020940271395195054023497912599632057657397221145383994370559768779900687689710624131524010696532931564017850903287678680887135329292183162729578172993802333221422865546598849993749716009352107963457129896873279223744410268143073113272902690237743890329641251715722850884876799752917219183506916989854635034862610519298008937801444609467191324416533182599978628923439541685809075098227594518258613198679512108739433121485372833382342971353907172062103558689808191728781857166445046572205750530814396291235924779084326970839532482842247074346922479206809719069668906892722106649957500153942437031156685160359784572945855015926257511880895799791783631781158187218431442239382810122818830127272400140850863984384560087647768840715465975964912850630010641543183850051781730332749236408052817791176744807613435576608015812828575600743117866752557125864282747986903651033912357708003921275923713491856875230225921671828306888267719092581616309382673250554195586256687624144826280593011421485383218046530310762605419701685123125778312134807137146354423198614182907565826395400382845672531930935630549728322660252607573437757578744879599279631483129244889612183434427846310508200774888842975504053122429881464814391999348684613099543319245277035613167019003026557921023824261016779511261779495720908134397512472394993986902357222484404365923975972894187077565111232989361679158778784117404358545367650348203862166962048228941630873837145267079179225483112896312012401921892770776634857629979698199310950601768137544744306718787754624813059343793917003931296834320207936398738610178868621261568374627617583845720855572902545677472024665058620544325422208708202962486264052067867450358959380471002014313820129495889168702493052197412192659592557034545769654400980849125795218779024974378453817919392488474149219144534035160741968422548632247951477249453073409462203342977802557846117871022953716378405078998333824956583226122109530062422776701703122807805546849227710388187711936329439988083989123356812542098621288185563540986654326225005166822015216703928064724460250103928515935642804624692039785938678572469602307779035969159617666824377132094733575824649998219382074608365078344571901733017206201304579673701973494808740257180946727792708447593277888106660345118036593748919717930050234213579016382922408660271194412889339902956168991112153615375583511046922189712912765704437883530628210771970908911221176704149201674158411521553825824563697734418987517240569215373164188865496627450735559926558794103236559436214109598234358033852332560678989934259770219368920740817815827118749915548613567836037910066435493746732249917938572907472525713112743156272491678727952755140565905911095798007631253856070211333783021277581895334538641181545874997787770823688818111128111492267349252558916664283582654157882366288427561201835080831490906339431761034865605752056474046179876847107391622734989071362981314210489554882534591699897390440957612134380192576265720469637749146168284562419417556399067623156658678347003230371315861173448384003692085254242398830735771770785261484531956171553438134526449362219558079788937456586252812336769953524663321087934691420961556596217374570169986186314667688878127619241409716164469001265457653529038510900696013992104439422239308349426942848445403855329256499607937401751002820593089188610892354095748312127344345741523295458211361507292408658360221645270958541155005399841231524199323189191010102111589907905841540662531058484243781039971950777116751205804903640856520708112638967699824525790947182908960939698410812494067608520017335152756369710508050420815930072675465088988271131237497603525919728920864313588179089210194593030502648360793938198212156337222632119960107350929235421671889315081865179427703228604883600118419273096211059076512238881349576111084176960014026470126487036252865127522163532030994482853710118851840409577882593705374862355879930288629466165149599140086248040296507709267093312361758483830362694029274218398193393964619591131562935705411883499723361564650152028727175910591859395539151522635655026420147071171424885494937813591722141614427698138256534230514225768407175740856263011611935121207874959038538723905613703432096716078934067233792806217656487229735255864359257034798064751985606843654959831227766227897589320909248270145202085067775977025088322492019578016454953364775985591169748908423353293229205376626104666527929676514008937910922681128951023249108857082132632681452224643553457286116393393577991716757405973638178992096734658088516605256835249593032802484522747920040334149543900986160198815915005973042679720717682130057276883687777151341588203222395938937540500687819745315628405203614150783188248644380301999749198874086658205132071458860986159107482004615239394881236436455945639204417316097727768124715410332781685004170051986281629150086900414107384985151127606015842690906109311895089673225694025279915030117809943293926060458188042857929515340709038777498385548618529321113394945548499326283156409675704784133024549156552907243394973309583271165820563775034083276896559603550555110567916209321195361979293893076635715892542925843210026305534481436516358404524009046718829184340476402732291829103429166940976154087415273567603635866849192531573435162136045506983642027817190053918024198059011962074936452483821389261937220344683294220319629251766799578310341643560215367261078350377590461167485216407215187819682928948281708189547191627875932608486086331609309197771668615425847642396698434422380607506042188466713399367448052006285108441782627257948813334398539957856293018129471062475638962437623319136668049444582210504216233350300878105686579976378922479065372773340333860675195121783993199764248023520458454493179920404737379972374836420355982637462692048743880175066522607911738140496754408596805049520168870783567629792045354939428256702677164619884990145948186506111217563251486372981802650691806465789033363712843628652006247772535760408697868684766024603151209119749417896945519759801330147826486752498105363813815426018697837317723263908963037722520364637647335033787400058374326672532016800145837542043770164009170550515187347910305403578033792427511404521228313224435223519455640534719970219774119240693289279285589171039090424003648459158145804287450129358624771900108437802538651121738713360737303649030112002184494972675420017314527928594556709985479225173327136615530292022981135293291635076603241538076652223607870126544508707809292272094848713014995183204814880036853906896247636166609542534810450335457158445050092230822265085392621313986752434902783636928250268252613755692417208622511720030119552715256612476684874987748151811403357279790793574943876753866651487672063846595389884571174811616435426603857323216330436503648162244895099045001735118180902815346367352044195919527540511677310232408310246294771258874981958318219989525589389771679919776716599460672231878211319309142267063551158644075015848749908940742118433791352208896775525704419920709848225253502598624871925007671909058551937259291116942292403856850188723928719282764336771021615407640922190758300009544634635581114735740025923082302194043547400497189302223111615820196578774785411569380016515875868293976950629909501220575119548453936209846902289454736563167936130747348449183514650422489504642634878015573728790220579275605696456006763708989458225680322880817171278039467753244593945553454731944402550106362362890076782039920790989060974166767621390138459820107338464225116884011782835262198496947640584787011145326741284658598975265132289590151919544603332134540558985777643554184554594420972531209528678972856632614950744152638189402122578907560337275301744286162405820341067413528330436031105011686598809724258574661973096193736339702737953180438568007300149168229023264144961608869614704025440267619232720195531644649743703408980952716710291580904071444890682700676472780748293427648485495664784602624557085922203174467240448494412769109553907693114269295510495644574929370649488454603039537101596606057413450877453168619594455685338256535540527371249907686918584264143511061172470469520759756190596608041481377278932511591286383597357769489256558244697762735139648276317274183827875900292451291704265486473458250538613670550027001875213838200933757796799439500702466491707869889782100807677295827544211138665186160171285712651627410985034127182085821607689151067467464896460767849094348357372868365140555724384873886816884838772352798776293867513366008757884853525374868296066119624432310832650324342332079506314575482954228428403752439816435606353935715415507204975543517416676722074424956950756945468375131524966118952236205171202637329877657964304227277831330843231282128572288716149739408642258560141256275921558401647486692724102221084233021236497882215782540882604944228175670717060128697645805816720866636623707327426944828237637118972571706076701119658099039208689185833328930844726489532106101095924161178687081006937081878894071378424480778381998287476351843017984184681196094540037617645720184906150903341403204667113888004844224555084148445535400322375992485591661689236171565681769094162463475250609739580367078815406726364152806920632098093374146145925253500641702533564781351648892001248166411291471611703361003215273247451105913246557360550795866243061350085354084346398638932822629190263006563708242848204939632381230663482859035639766954032297805622739517885492454035969232425146662568306452758872005457077371793617936230234030363503512660431102562371828192579754022115821769024012564374009581642647514417430390810574991563992998064076789527890876474652007833693995504995867836909995630365942547153931602718628703511588657888193719092811625762000739091300595809072290080627374840625967176746929775782195929787079869139879358035273524141180279264500235514465426075872413936166820749809989542258613209766475865559376588609393748872985270479183500588300388642947392442617499448810454821757645839546317296532671830182672677261186743509409742764387017442197422807503004754809871425532131018744593865477411017744612249932003522401143177864713719021381156680769203733294937248759209304387306792118431261975108274137338946270234101746180340538256555495314701661263744839844078541060938597191586790030345804723455969953766025495161490643059209642094326168660905620969361075506417320288284419799596022535525751637247885285961182168552423280470865334293024033263338000003025415663635067606299246878049062611966641663272602398289214561377379441383773944373949219454453917827098199020115292584197389087620504524678104242084590218085896073071130751587140683052198698776215480166297265153453933803630032841952232303970013352167379844486557857505545950244106583095207729891222763579707102142408069092168205083450810079581403876440233959712738198402008071521135015573858014821420832050252017448706879373865517356160585785434758155051888989971435750913727611735626511449048050855928750345945689589325410888956350646956243340231491605440429887862885000252307594199567569257407339839214608058546511494965308497744424128653759951931853648850221717868951485859953049591000872214188201057542941898213977589964764898902429792990380740046410186496368545684969954643925957208442728409888535884498351776681848941514706516628998096734382022371854253655419637674690364271226291959814003038393382608837026288245635382551605349793857201727775054216104796597867606048262429421036262129897705970914772334027150097366085333298066631967650141386045343816436107550170308229740711104423687484837620918536816502290251948819591234523031454241007496199856850219996377548687398712049745387765966429791716024072487101291265806105570437694739325168209784328928074729202801288353083008455952694040538739993427813345520106635555892489508482278396318586205259312852287321631170434379762805866265353705837223216463813733290266476422543366405630348524743887018805167796324631863185561015518341730658602538222785039530439341645297737185738509244819487638520331263214421086202210786783495113808891234233950054626478127831032213762938742724458864474627380676871205447735014588150089886764249800656687276851456513595943289181194718424218186832520833382901148857136864620132186458111585959582142572549919737785648313780778016782938251635504145718947168737514762023606940494075117008435723318810711975562329240360647332062420733511489793935030013356416859303449504387429182838207004536652537438412973033265954958594225401906385725302651663448417016334248134110422594721541123458360610076519729486240293892993480003784889069706261599709822641088836805213054650946592617141138303718750791342038360562469527164803503954664491269365287765673035842980884460472805849383217129275160436849612569203932086240651091312272617422575500314334332489802814354661563845695122966401812682273113135129958664200665467414579437284735042851171741011015609536206206016224698145016358582357507861753877829672348168413919818037858492894947808511748632305514551691406742038994754148985009513479777543015596451334136279704178475236373560262593819381959976146432052237074781387699556343429427019604066174403351942892869297274661926986338343139220575429902220947723324481724638547697449536495394181069262384893831004163057429736599309736320472596175324113814605350711924725546165708785863809990931894514860239590895742499982043036089640256920669708915539798653815773881670373452334993484628859780107361804273321504249648094368794996882353619025555205289490493790409672885454259410088254692156762573108617590197521822652664794574067807437844061938631294939082649362337079004222819415615976890329074412553531966839317003017403686368160914056056323985244572349532246333823492806513604700102362757819714384663404739812249755720432153790739856288423903088727316142665584415586852888455997355931149365695014997952439517667835505625873980440835506035871925924110690403116721242722103657039757097393889906897179752631601420497047591351651883676006341110741953111749542173823955344382308348403753766088071079599924588875094959190593708184730325213458182828205372645065431911422893394207292187486810109161759033923662033681837607817238566542514086684644153332124358467748867226737869426633878977555141396457850845255237913907743071205429541178434280826142489388748410636197840043732207618059824431534098871467965563429535428550731582019044382453701110491773279779080493478552397465047871384573459528474351922475608916935478273205126265431401253653140753989689002793502039957518604321261558329944380831364392436662843256323852490129162884183475516193774333001494761599715344145992755410951149782380785636392523632155111532923461007096394042364507126427135681919052422598753298741068599362319992312901226857383236239454628827668071166569926046592283555638104837208290937697848752244820392903409958894476150483097185764948998188893482046532308652288226525736758548441716218319302313320428728214932385427499859513436658954547572774676290986641531016864688750962082123760086287891450880105330950971165362331593017683344771198724396460659487972928245010481358341551907028237305556776410450405836028688964021159563150944055118987862020756278086618552313525402597440963965531598904150714490505108089072944845601401340822375520000316700454562317651266940414608569985520730894702620263815126608330091442129182418757260845793445219063310352526589120247453376257682795240118621012955908157159416618716619549539275447730410408355015080570263297344730869669451530986973942651225952682958255993282789334772470571672725041867889110221349898549571373168954106701298139719696437352217401525694983554559729316375700415769231742704412180673824255559604438180663551897204551998195102744346960996853638652131635857110931361832927594903967428766286086846262888191460454633347826598928189686551635980313715654065040992784146034407776786721042749915815245803487565703808551153466236786358324570882764182681791032005408035305604661816841545114221982564761419423989781602557408804920854554731508254954057134776407070475996614936143379054106849706130179871959043241207009461128424262628503098253465189309417282261523832470597524294979212935351502452488943248664000373519129296791501369082395000649920023950630141737337581310025229443238850307012526001595619185997347425157136034556899901569738112686897793047450926151020199905548885059954525920396719503530139449733254110807743760122227186471393606887596876833449403415084735680887748149715877810255062175647517495532135473878446605639672173528079621510853006528377654504864297850938870605286451161914240340321359096258960890625954998098201719834897428009831360990392412841543993323186013539147118304298463868211011321848327399531251883647000343156877661787337979991378271052770938077204092218009569526476014337944937290042992176627220649757339341795457511980738289808417468613822972330098029350421994916071961328593495742456527277224138219745364991784235397127688024751999287081883063719970876844192221346964944586950466012120327790194607508725509328608838662527917667978305446118160931455519727536545157496780547316797061680457500609434257201105364660640111036470749333589466507388649662684022902057004015484793582730755278520301963090047161841788785276913567038859291540816967933079715035886981758932202088278043295210125802596201043418003141383822868941479498817403441662869477455854257652351776376024474834538135556617800436887864082680742709970125589825856114198834483078815795384391811400321925219986900709858308257082108370584477938919696717503375127365348992484728089812407070980093880839321518741760590690802835561249984993435368230064829077596391110614082217110011250287243517502585315896057612625717145027172729025336179584979574002312846657748688248861848546207886471602087307580888828003377938638672582287274308112304209086545289475552933169606412797856581134017173248979378310903464107818688788342350149269706103197605341911498184398545680173056356118997828187788758893354577391307492796679375267405273685435946240895221342905561160157935467223813992251995852981132086638936225084175004599302728814010983092580322501732846091809051588207364385071791453078426479193272411385481395573760236413068076610829869620185616861416321810642213879156084197063360546516515809121206208461396281598207231648984768983271587326328460645116545473604929958418394308459717162938740743044158884589188559198719124815187050601649091365897736276519534024503439496826408946666112847139668596145110537739541519512303214678495733922872320235944023210615905155650960140680158364716075212484154864674875666761837419708029092843169368248979683739505264652599760981426374411814962920087170197113625341519037948329824351320736947973244291683003443281167507711619046570906214008111015118618552817844066954481018608053415383217388110702546518737824661340678374165081697853243507891090827882108099391505326012154855186377898971995304828265358455623933514052633043814631714380783004555684940601569303562328657475111933243274984426972800317509699087766979823778045195101358791519199224195406587256362117130564895911962654748093671509373439321950632297867052786613692040222390973792973028859078146133551017272741641005339959472671233212656872542351909412278963457217764210819972325288003219275827522787967281213253251257828239429017536912423290070429822681291744762585519706616724503647789618010986688758484198861839252989350117815347106999079569591189835765288317067135862115177909670008861087292281106596757287071109662488983727342935254179582981443905145533461803425214883928616213609460375896608016381546774152386815730463690954668166413566636594291503781262171777081815788472847195302870596871806792030362332617523750992630535266418704680895647210635863204108592832128696929735515614169395266665679450191542645898361874143134796776789618394648854059091754627241428802080542405966169215820787611365497667392454249285638131876056291225490852964036497099044339702979983399462852173275736692174592380279528513640230191321033262055573096622840827391286181667016042964176421712117831036594814779786813317662621935460325588584222859675294141288443241557438949771851357492603868217623969224133125041156360992634367370042955570899157142523025125406649857280266835138864176572488828005182172209429321245475250913010262667602634710809904738956772616662851266524835874860065213085455537697856152692882096055209222211684023008544504541982979308298860460306087071790123005683896579528939925500579696243108586106658224677854063338965286972593893619944615727631629474277819074558488756388443596168809188026166604074584686866904496536715594908483460071310723668477129578182375040067115003927104431581330346769479461125571152052379915688331461411742660806125147979260837956273898092002681633046729886963504093601739125892735358159944583798672030107514830785569051725191422680004347344624721575520909522951515100055316034764642307848803314387802717919877888131276165502502902869613444492269409937641975537315146339750799017783396324689516535982792496039293559507765997866267230869576282028850987799491920027365235546730684052378243227569938686820225272089567571514809673282621076178247619061917469825174343400673269192812936403463995867594277269769030467692383317418534151262205781873198631641245780293841963717881287217498392360365602758723403176354630924933804483345193098306480137412149821190553497945736032301668970003120588052308337312075298636177108211990893253277300285520780168333557379684096438576919349868067718900689686348558380634708207961515500586924562837252850793915085713734187332968319488844053993808258293797834611669581436453353421989051046501980483861712695375264293766104692535749503366694518778346405187139877462962715051653117024587902758768727132625059699940941697981651278951962950491824740351722941028425975427313363939910194997482018318276590586458656529449058044159879340150587271144012208187903659279162905055203365247092823923165219431069857816690991157754906789789572210602838078475417482399813567245166370944003807136996928867546660741850938664297649625676827587702185534000772207416236611252432019135717225895492461867404003743665271303318922450346922773125846623003224679104339262639719174050834776358765780095995750443115049905053951496102719353179780200525691706180572120370943585801114177611731529276892606156452410668251859747700351974741938828404419718010761897965006718206618742172469412431891947581694914837040707782165257263695244000156646114349247399048458393266633120868201695693647343054124562541859750187484009408301337073790710267016289894863655384185421056571003254805696433245898489676423897910274155787613667460110595787587053421850867090772385386569369815466316535957702337456641868800487193820094045828082442987178405374285778073506622507294532885945055966868888568452289094759812895859726927299567438676895114189023930933699878101807981804171883072768826113261751826641651409415815203367136530204598337948185854730454595586818738338382348287744441530354680293555744948195022206849083251825492587437780910345953619357526945786460496898362888722881254277498479693550959751941641273615839180226178136694761301051337299664142411754215268176522081492520341423879961204719650827740228155349165719024398547125334544617238693174706807363557410286603246828342281986937533795315775514827298810931860790954113455236420289958088989034773900602267214045918236458078950376166493879357918579119064699762982647458718668080866857520258290383663333822624696664217011819190186311737317954726448693305011183005416276936642486887979548925764213147170288063713087510243443938808195899762041894589110534296486284433980519462894059257001351751059538516970209757051953139871381178508359858887901478091246505590929498724910214764948855790973842189038001178858979692766978001267514633666870395252684791700327399892491186682292689857564089572550805945363480724474899200244949434588504371315678217046536937737137890919002581140007952022943429630997477781166599629811531675826767337627418153874556484711100394055076356977280935140132733100437117500268952007655975976668463234810677603604036565677258843264705973021154032080615297187393099308022579979781084629940051172317774665422929302638985462766332839473774680867970081589656220739609185230714347732603237764114094797895361144165524374359664584608482402975762487194115467963680021531368290728112691044120856523674959316223150977448008780828603075802645779054048253268122032308542498282707734076002039469257234311474222611455691854161325629064691456824861006309192067322186837516679534318322879939313529527038041942798763229879577049250394935762368971960963107329253201841654621725617338608063050593771384854515543953793665402060877419140033045086134961471063564611186152654545918307005432260463271188189146078489394042270567821162076257944948154849230399615819261439329217205232244443781854164568122904076089059976616205011883830249708855813075040989934774013056583202510510609475551868328054918334260387619104462225552597272284334783780962150149384740755055012569242506777489641077699874523537745741138503500771684976336822772248290951651364248460334820653765086810165221732544661582476887583633572041801415471671710830972310763827719776854050751365832430253707632419036175835547682496273400842526416755652503829401339503892022104393104031984104119285906903075154489522019089293046515899747685766534320886995150826927307800884592119193725577470564462431789336045517838771121222742988408358047352256640881842737301369259298147939095634679670736051083757880945722837917795539320032764617943633957130710541201484804979653784745718500606084192541232726046229726192097924400672300647438961883933237840300892336152150540493619448140922286862992972670765264564133665483353366128215488521086552035766409359760710994159127809770338767750041294783965212835078944528671955274779652162103912507798953836160680133280458738905384496742534129640334594475161095728235282966591448431099133343301579732569838050661396013926700561404475261617766887928392147555075610117940972275496860205609224468524317255811132914159452177104756160146273105795908769259429409621667248455232785240626488929062601620684422215593281100532513306257962153234495538491848591703552750335176612877549316591765287911385876978687485941883763665724103185278358660327581094461107640307532533792569035715708360529143839461481459672882041881127368455280436507295042674526308476739078687434481835087855781877144560623009961660276406461087972588890892674743208319987765622622750263971861220041708391385267381750566482888364454753308906706232367036967228618670653399911766150399406683750022382768991826995232739536424357584558249959424962708238886741163666849805859106097180452411590676822502186113849431278301411224478369342477148434267532956401455516122359273893565835055488800951237792070981422595224374098928050833946148750755774098900615652656821223214115116521289441082897031996898817350720471430255699395689289576728856441038677433557179213832142461490324501147727175503113029632197176260011552978107895533087261971293726086062548074454579215176956311955746001070149014141501321725607522178889635268098997873936182036933764667932394970104519632909399200022338628343019110076286499541921773731096003339827927284101936827236880933529207216769126642793723667370389673189452179087331528364404430432859025949118903365127855064963074739300830112420415972360183941239479312706653853686159237720203334586843834439887246318050036410696730661534075574201409016689287145643691947157413731955104725650016899734611208905372814479339027013013932329826740650894410338249287847028425723534002421821692732245497315712692252449806657614278698028113101244015837753877489552053293577382462403465559535965928815916130251595049374971295677632918198599173721252219678730822188345955105796776075909996912820017981801940022684788074144499354737132939784412199593995515522215045748020861412822767453637011052281630496085181919277833869396778800769208845338048855486540713524085498143078171435204284698376136618736076834272046789938141433255931175861281862833301137860697603665100858754853754403074956223128571418733305204768366324896910297407572384235001507062117524387993151053981655625906083158339743792978041030605337013870004020811646411333802185424225117819096834588345635574378696916455467067348633119471795208836633679493507064641362217113587604855858533863075369119460617943946785776127026165978848710100831000340348309630655885705255597416160013154329477474106165676786662022395143557598276413510462152167043075736567077301207361508462769627660129324763708060058820721239813572157583391252900735590659252740832308330251337960929400286441466661870922854612903821368082982080302272701865060844464583245616609576628542735260563193937319090857633084868870981208947755205144939704359811937465934251146788772980323407075089057236458509404534876532139041987403367565518903007802790154557735187641826360748179920537896837379701101856109531394693468399888362302300595057641379736042896004337486493152224032700972023580635423083338069747988699515760285584058736593373170518875863771562023894994067191838055481240790225710933768671510693213206478854778709896436789375895817265107925108494409340072110173455511929878574723329986316569655754220469446832296643411967470742579217529128586536031256034851625094512502304306716604669717497051390702824157589792168361102802408213678820789493074885648091023333615539692879417843156537349186106369159550596395966122906340517972183151435943021487421601957810959272882762438659644810942794175993442095866891596215689447354223214232265402959088985595533927168261168563506817557894936553730766500415773401613122894618503904871003610760974363373072152584190768167912081747494529411867415596961906610463351606172664617989890053139068454320216649943332931806574561985139739756299307296184846055247556036707398446601730138904624154853241883710727059828123161207382176169801239489052474954830547719916662483393316067550641043101963630188434883732189074998958517171099222256173588914062979046752287714922179742819953072961104825358989900684389923465072757474530064292932990930965571445127169921174884183766942458411245203138382848999410859229349695487499691446865827051937767402227397940450251133687387752801094015407334677834709138682825644281943840060613786854573956021991389536987209072899134115874006012283761183677739657305845422992882648540294217613876173865501096569911522469671865106298249356514734902514271161443674487641723948336344770460389939371571893754758490036116107666137930932852323950207769061237958819482910351423888395357479149587809878730683776754782927142383387022720989359317864008374045177536382207502507621194085652926886280939867960499602773685011645393328168736057747104018448236465641540078699801450380399568281172954260566154336676760126314422767255266071487281588420672812139435516673622907299307412483242798737963273031482536238023675891816384212668578201730988358137691210164241064842532163995516406558910667466950684177504096509931553508771578763689241088452263880130981100321634694562154973719096793224974278390293483564074099500057229907871243281752823863847937846333316641206946578471596815992282602246301048048046823167477725924385699918374734679469547051173480934399495258716188896265640594968175203528842543318243760204977281695069777170899376348556575567418878733404613286075691779296495949105556844658860394406873742470442158473131402874238000848187745535848253951184096583594127017923831631093699384830402221963199476590183024856494166356760534368790774105187865342862867429279168733924420785834552084368489561921342997151504969232378421889065411758752869277103867359690672110239827585211350930521153444094013032171859052182645807645918706025674159113915371175767521487708911664963192721932396325100456666743240389383964681531573335928313702841297027051334673439527110595470087943677548320456459356104290796703853900143191999867987962516211005335929232588481695395705213099464163079264720940355369573777198360448871607766944550639148135624256804887644909634485254691551732100268070669915643924059201402417388662225654621050831376608464788987705700970818120013665001941163655274437010508456407686004458641099083141136965003368503718681765118710842058259180774115503627326838660686965784717085214371689976342027324256463506671708543623934660833674048205200485069689842410442411455585825158173406177833618803891501597289466455253327675646682135300865856235320320959131358486254952419054150942423814006542604028740870015331414537687471817664408579269951475340233999359852535217251734577193142864610737956408665957706006412422773397767878225919404167987643726413344969361015976877670144990309582261554690875966864350708357192057449252561759630150884181263336483476894779880173877882751616411598718939657700489063172084106946978585382838330143377688634488819088002343589898599770214933804229911378630129982832168312221736594050487815877475308871734266825080396198071832493311573151823683438192909421511496801522959224848217004810829954314059156121358918930877682325559956598976777411109683830293679876701114618490115952619666198738896146063029109681398146201393350516923362120191146889926471981135603921949492852645099520734580460594454816701467757897421903533125003444707408175005968973112116891119040372827940023618362037950078822680641839894396505880918629784236183579156466536741685919037719497816387635336520500380708043643198753631778792971924475470569996114527348565273427731489821267906962083631829875304800106218683151245166333905177754192021778624047240907604757232277700852396102347726155628886201926577462979549147851394666143932203028026751024607890017686970343009567286368218383197745519115650106632596153381906078261168343732425178872132753589953275886326529094089363652611822698274241326255537163268537480051532391269466946539889069672065192705568985410570684491947247262459838582857612665603630406016986347075389300388562453329469127824062423578026235216378204266401020562045999040461028336174240386455265478579422742467197716897684492884559212970064630901204058808593967222604623820439733585361231609197198575915326411062066053286171968130157115648140254297226255352224764235427645635716688276607845743717765618341283285721448193079298406053724624326342768982494835238404446925753635676099250127303367800010377853132327113484326187190449596802730384882751696021016264274667573396039938022611503028712880346144506653137137312812981893514271949901954233821489690763957057445878781497992953584537104651509088991189244379379367387842865684174152260967083152251841912047612947660459900323668301713050193829762348268510681311929785254464537027986039133716183507954417420345806945475170264207757157850525379448306011070508288276584715733187839019827928415209358633384011131053534921224258469710204881627422021937870818908042707961482130669306723668838436319300002309826233730538965809283776590984082268813978078505490607276913804407397423076950392253827444174396015225773024757461126853283806689564184720930961512930018079912193014024880026465553055533424038625006675625632374309960261622894195408823733979501322191808787554657888383506691479166299503373851115678550112829644270556690559756991094435999741703196519213893772953969160515883721363865321016092840625754212965841222424344627781224157708820263404983174049521724665026240802383988613745327699917213782874066731566946293325542426926259287652598834333435228380228913078022312417464115869778943209338303506633319479088841454933094213156917239129378403724165988692094631433051928513244964862620040149429060571496954027241112347847112644847802473311656056553966208059663694771462227754146980346698141743291331488322798857673776371775007532683704211284621321047608850034879350790603254461026125915309699123593654244870772644868212714683430104456375644585962635757114198577945641987617834467014929283582603548908255502271031669634128396160275756109790398481456131480517526586449497672392092412688045483400659432368620091599942834326852077317356835075515420277972808721237103676801467022988541915941284881194468404231625982515801086059218958310170025677616980588187537268309266450216758257966455939755275433399832005938121816454773711285520713646063899573435785913697192918390641159461752143551139570341461686106170547185663006689208154403759487856375032304932117636550363241530006096645735631602882614987336705217867496964163818428373204699953317072559259205909997826027372664550385426407369078649892421447983361115698301464288243105314149700202824237577454756512969313568798124500519620830949488089886807766179474146763321462748728703301254351301050715962329519314829492611601986568469159348878986870087984504101026211178127480433634216435313534093312602306808794851125543895021834872617951357294779959708022628337083676853056561276006431757897205818847970705560982958364918434227632865078491081122525843968936233481361648789172328811159508948790983851255033316498297956117996112197561763718710667247457074288986445076394172790710929368988772772579318934359589919107343497546826078299725894824976284203869694415275682560802207500003028576157308039455674613584883849772830568972596725476710088168035481363626468782822242446253624623264233387962757512950384186532651891076425752846909069112932317703808828370795065212006120345910464717671482930208187495727051876309201218256352253302891413604530001772131639625135012255601910166778315617004759057421428824046582260899112772825013040570922982717899152052148357694724899534833369127320626368392356369785633132073621143165734441983613356873472325091322343899325121567790583495901488166633330092471547608837525618975199800938535685029310222280180139319197719734583570528201437013627815179778639428452933733417860628020746021819074811868856413351049263651413346756841332981607947629331329979916626869151280014322284482705787431656255005816480494300342975166070628570455426948964088312426361367383317857006261132943626987872230776052547931947923513555838246762272014862764205112796389314915484388015463947172243882334047163807814654331023579542948398699863560144480379503844317546061277220716310618598103095944203056829452826809370837048976780749992636237240277439737109296419109753746687143609903150508685010069204656795295510947066012494514019844680274512179392686157219486123763805587270397549353622605432476923932899281360442913777199879407735502464025684170336881355727463899394462724227557277475008019887178168948297159860022894721330767305098369303608864069855408045019703201747783780022871591359480817038388245415061534568253351409147299446592446427160005807051328816203895763127345621263508856165268310441346456100623796811634307468063422743352889195477988393011755441018703943633680827761722695469705900869912995910380339444222672313619789949223656120887603914496852851630119496382073014349306528499300206406648835411960286996678850886386785617800396963329871702492631649005405749994335152735833897399310034391723665851356202942651859615095615012067184285174762326627252370359106969974039349750987271189052785533945945098256479231497105225189342364489363085014451058321776643973682005954824700782935399972629331249566088040055820620340831737689567662905224030936665936896542573593311316968047320292813234900849504953528908205321928102841542392301040847708100104740738515428586816584976565929012056425751117052341572188506934240430598685108490971134263870076621878256587927116730701236184741058099298115180355676388798003594139146902123378106765832147593358111233517004228122253768290833736763013782384583039368992333630317714708149718874531439442950684630068517894572302334244461471489639700692576296564351126388972063130190085906625604350438155679229827211821009556285575938237178151832355135569677592508832952417015466990401207960519244284086170484120439817005360132413965899671917335235994398841093376963582060510890693731052489352604640199187440573164979079619038444438996355261939792338459495307850356286558930891201630830594196567507830733482806014357701307626421826109862319319052609133148359188900637941828794295115397948990995004781308135221712050065293913686822525892566118224108271733672313917727471303077868114042147340365897010724482480307681208474864015140837549357626839138145032773865358857146291508472108036955680864495700594064618881566879551143151036124197055198827292786187958682553594732209220176249682329797389514832314281439296009399904400770223259711866297018893199096127026883818848589929070999037498418558329121929347129652933183389429714210920908902575287125719625810137280330099403380788482614800000523602043979898807810631611567476308715861381130426672336008686000878155866905532751572661057925624642551317137621671319140536789996827397846159733929716008817144336353688641802768066636461061812734061598151907880406526929887896582429724122574570029483694246729683295135529027922102034683545107470265743992008996621593579836227042149206033327893505170095692038757969888239613423436372258671253065732647199183718962281409536265731050880584903832549704448392190527419330945195444127364207699847605067348705057709783838802816486801161496578307308604232248789094168551642807432216543956801932071841300818674357257137286621031943449980489253572666137680169660352913783457632129272483979964701353971974866073900736106776202756853095194691675443208212612837291484481582548277975544082167579110586514748247311550372290904256193987155231566429081846747203054947218653148482880381744884087456375610757310155101467781950372049399076569590086494740269196826928027159148767980320920793784817080571121970979182923993277690076141644891020158729707856988096643462296736549283854200114245801662513603835602447092694011649783266754311227784833184130579026672076985269942879551146758315592606268573363353609154198200941332392404230327564577253400792549571513271964895967056525081390003919964244608225081842209621816900233391609908188155496487963377003761447089605214546385152899155756190545295261398521257828829130020144021761443343342153378884515472155800274421350083399368876812452844361410581083864492892116553582865229869402314332474020401730892941578790388539052007429991406832878258580884464699266928508313791715609419024441813739452748592059957491663596761089884688864142915393129855167544250438812612506600098670199615517739870959438578467078371267345711515813132662105739241120489751777318722756217057497757163325788175668433882865933643507219539601916736357274370526941068298758010426890680781799907945520180801272837721262428348862083803417508111154460682195695671399976506137348812701458524152714959926380041575362299857666071921146288311511411702319680198264702302443983512877209564484330507800246064535555166434625337315337611029290586349729509302939148638568688296727178499221957633084052282574467092268695793282715715407539227574956761864910488142644701252763985984640757168525941737428218453041043069382889338986128018219424979893320633379831183566647197465575565769796535329209983447073207796269257578244662910214960078090990892180141600871061779935826724575256216679058659145504000258621379071219652645380813455377467235506744178985453085371523198024997583566796337195663945010672726937789999464209362788738034330547315845196747882924959270747631832647818032233715421022666334465176821541885764364080302586333137424415300740789168232674840211093021504457679475835887482906434320078215844676943608385707027638660230507372731511213433001245836804415074387449055056359517005251713536890426665031567733690097074934739882054024866330967807285190042882857484196452261805653049686692566080325970705184073328179229520209991391233202822978372912392519573480353437016159964987392196357977834339566945424006523259583806898757325393450673895353253466862455457683545702654131268200739574701297230331651965762461570702243980170033451679209362236759936673993950242792739605216984852312609414891162920068434948306999137858696683035049933833518492975853444639402131596166502898056305136475864339915363290521103557067945725913140091834477677411030398546305311725145018422916515341748591818023277406695171720096705477171004948696170464460515969005375469972567953072273164472596228287883143306952386891189621300831553376069378831767778566751258031260340754980823075592661032148004919982425104925938689133254481023280329531221341561918554525943480446940918870256425448684229951424496140886753531278424451048887291453336210927747817081555973823323738185390096971058757796738990827160876137468518727022923186479414621567027682695668138506807540724293564845890668313718067694360651251901399667396702382573170619042956775929329079472928063670754329103895467932750543995752334396835972603480452550910364512388999516212495537818322791819385275863442439257191504447199856633948929974315766330187599173525753497933963723388711940098806302238264197182446865178414949203340655812405568219962003066072863941103855733027891150731979586359687640503886949232020533610012444319964510756260886505147731908629406907218289889250413205403756218761381292802651867276409694905403251234942533821301809361144342425691904365275891212448736378570628478698376702361069951965083156207689536958993962832942894765639047335303003120651256625808131919243917003569288613772875916775777704068562148327194434691276434780899391900279262290582249088993735877061581738400557273599165525218404320008190226928505087766356046107038622471013476822911452540574083378605071082811991452945101217480575810549861170082735241747239682776692163743680113766129997629521854542012524974040067548497101008321528750007769548676706086367128731586480106616694278876279247989852697865320680290145586656276775924183388297244245804013175759570238891669216499374900633706280097269659111208313438356438726004517342301219423604855501200258824850187995956457324672536587313069545942876320073056977666558097661641047610790895711105522571435341321062875490367557718988808611105178489570487463707754927277075068762875049146286330577833731708490833165244352813006983296352740922682692402894585617534336790245321183366005365293354171648800262087083797147105116456722802772105128323621144875320390365311178401904686656532925539791812367194209463674481551920734432272716300018981213920776449713381368635854700788578948645479350975210181896713621005571434402484383016851825614156313627508454189594010273496787644917928888745635029607154847699941567730130382585235214268322464247779535754921802877534574468208431775429285724532323846017407102137670778706599520157077861716574979522410115467257604021621600647988644447276809885948398341193086929178349903034249293471495485377576512332365757686998992641383921259745311676732222806248192732559509644138766828055629209751051368799157627907465484634878565289592559208655471613365976261413838943056925366232227703185602573191596563460359373081663074508533923022004730119379442599362089427421961394761501617360900221836430306300404548197482635136952527126476986072346167436538550974570005078888607145034509276769234946153429554736900871427526342663849817784678563198502735279725907102866857399249430783499531423742210729049089225925677346585571174664973368789056411051483845596477469719315295016955548809039643061680311185685750899424363790932400168843333611823471798712140662854253452931760475056432310179429379691318852345694222160539780163129481777879323934621817248451831602962089121304000579938037460179383463919347200971612906570873733199541225651420574266998580330165761605744900408832643201020384310332760310413977568984332608191322057545396564342993845604671267061101436977456595035350167505875012452230813486859670971995850475896260899358258104397635866897885948264541442767761531565348310358496254212574385116961765400608120765675965717404792102813406461793816972326151962091516901525558895244841715407367313303974916797584243953632836782707595009873263027977490767523223618648689726879973372462669677161206382713890730576409619325017518884240614895737334337972554401235308440718179219393664760342908771880211621285491167941235588848568027629169770992071616686658286139419169978832445246735501195007510493167512666896107273750257666362400999301243768847478620657783535160224789198072807087028071499549137051357177669830577055007742467674580896848488494345638500942487279011687711519168821639309425075235970675045938093476465668050795425206342069521467285560462021074743215179025457821159974325152608114269919324744875824017567281466570499001797632312555690315505575284545063791906694446312705305873444250412515150258266714978233675394119389400574376838411570849032856514886228775142456855864783509846787787058924201727972646418098578849792910950574479004232955776663028091085768295326282023412263726122814755867552791171495038923454834870863383188944550661980940155147978241535449296931142573356280285454082646127132810040736962615771004316722211977957440282028506349763697483518017294579008415585028351694767368510055992000975275594456512457550894135829053141790570373017902312967232271733248912820522110775371539758615091735282600317330268768457452259329337404273762787120904678532835954808758040603562371772404703238436116307379540702925804258319598279496532382677077114548260396817487644915152908837630091885782808504818722643286010759199938875051406269924651471472341599705817842240727297706983529915063890158335645855835839150333669184897712220585914192997626349932996119766838447583633657860994958650530745501121536126768809575868194289327526011453510029146006250086496317779134371095041782410472191295694120678854108628850009478879532294724309097710479097186438176037285966539578646239293199831802639690708215535757018346667881897961505954573751891614907714542429963293122447414202493553183803958540033970587958126725554423389234628947699705189992945330980982656711952285165658018087425132769877160384690806629573772618277868447624753377641885554130646684116319020078877839460022847741933907126340994519755903653962303360078455238908981590114089428023567335422510220990480574137798720130184464134650413833325137213881846155027482473301545451369399205513804410560905066607866788044105946457335627104369299541286635498939782973036872886514908067905934724336989383776384511214130456182573563144199181328246513346857904163005944283763795219639258030673299062615356655014844541158310119201452858051140455761368912896288085083406122780576118296877087236216583129815459340328982385559363179638521825843637982910444821579567832867456314739184697196279782523739149874230747293735350593866827186896049789906185712240049473688213094586290208866635707850450064347394947036213618376390211953082346214424238809805790160883074225158938426962658488938577192490988988906019107955686844767585649580007779795676965366940551281867817070831923824342181963662205817316478019215840080400318638201569886841083324340924504564042676365499859725681328388382199046505988727954853303662434333167585669424271100468034275793420067638583153043088817260154181386232602720539630695174504473564923104826807112997158553715038318502056703520902413080194043171034676353254410231614149401794415876422877065152152128492321483499658930000942640742159075109030559719412240947631745579841949995925642884076227997156703022998237200147325378157810145703576258827018725406289224848498059954032538110069357032279427668326714397433816686308683070630031163440881992413782681176167785150738322163114952119462237980661203617705224547855014329299599688973096839917048718124822034657444430527650371725977925828629891035923982634194398709934272157987270873110188995049072593271579351345290242477473787490922559542408262373072145971602978462449350616896846299891901160536872176086174055966548370694918880881001849892579735060216529046420284337200887590816746960349206349814442839123337100320790897953636758391285945810546304979722497833137718210732738992142314146815683091544880289896180460587433310947831240834981090726283896653461894610780719634197321873702290138677260844568621631302816209165169925736305444801199771586300913396761964011524829830920219643807046636040662591889780148893679970573478702000619755602783771331233948817375644157578861219450252025479296208006244863603228745722635439979677248832169461931341567269454057623722439584593405044654246278424886058727863748067825210693944864554774503944477995118862952786906802699025823970085108591596181570203329902565591185379868282800794267077668095329908678343852851112632575986649428212151479816892487759408701532154423196677410587804428651969585404560495561502198849368742189988697579507634003850160319168980107564356124925521190410536560240641489203397276844881359977217626700849755222070748959707704029784995507231987258009745009324147538056508651939345527100853807576902766278545197746970447774573796030924290328231565813079010187502230606783163475540538428679645513707875378747987578515660900405074465030983624503813207800398999733406619495206778065890577212092604919403361059125511187713823025086102525213453877816786747819288875548087649132610232504450278895978809638433974085805517092721456679566362596686344677047964719509090926590387373950723790414702739233281876367104260191325288013678092334695650509513876841449287820383362113653650853857683630018937219197016453846133336812776419611789202993609194189161909917312407639485191495067603675015959039148640704197637306987541920965401635405960500115284004572885375865167485749955037780102026480992993605315166595238458108303403493299152494657768937510844344799035483427512954122209687604047518115054003799654073665216362957482464266598276967608417914568294507380622531506743414248458987463839863250499378726293347625248531169189515032767826830484708575907367194064146611722265142784373453616449180970977590280752674399905004009427690433315256921397790727927711471954063459323736172099980864224431589454858235227940438296790518716285786901075186791633734351358696159708155419735621033229889944767067712638223272340872497296939866859784123410018362008967748873668985492849554444350262368040696712431532039428790721458661165793847098601889632665232266937311446108197983432026823681340308218243823722312546322094697958853802633590205893455636010454207565935532401697156179276681149062177277592751297773467505916661428722847674637536189961906542239570472844172088727790191069778216120895336021630329419795945775796460187213265323115651495543545157049764546051463629111430894818707132932113630779626166659375058215548983768282566138650054326831938679524594602117209954317130879790677333935566496143389264181014459133976551703981017771377987058800196875690443613133442120794772079058028446510173765271658846921039082557168525592538881632713238080628887417600515593430240553743291583069792125629119832471202442742844764229356780872204161111455232120475420784975778254926947541651072369103747905705967651856142654604684970749341699435385098490726898480136581509076183808383824382776281332578100844641992142329881221260655359494460043989875834614202513436778355826255082098599102811442869955963244991153502518240163888359125693078101636810944085051051672069645428817339739753096276614874808996985585071857928371051087968651947708505630856129029065668942810596583975310209080224293511115024736632588326536292052017320646047736560662839998727277747184788081263503738558680666965073426871197944000685725676396272624424815571739392994670154049056567783782602984934162150124358433551995116316908501386629660865335284146624934567477985014407389760524259976106083087773504442731785381288515179137143517055103216599514368533755333647051935953353622247127678803449208328164732664352679250971325485835774629308149006466814518045279666802472777054474642398749034029829028010192903598847730708213743936329761577369078184819170104844227938499366212556665662930915965516739784998643475048112736776156761273780695769320101022114533622465745615988760285513487956648829424117155979039245978612320103525240203389974197780153224301577684699741257171655722128352725840301141420812138136001942153709168259666434241951254356797794595301212839598020057061092117703668056530543805131953748849606763431489168391992928423283798683852757768770208328366791385272235196464088339742895331568041359984048888911427119578341140443961933933116353409362599848861326159860504701729050544860235798442694049432007100245689479928889357342260715473664995375337823438017765210927958438626507979061185345279772126989439436185652883261633023542061420270766804686117137959650974617779573301701236228643384531258659920537936117759344260986599159517425616183526971366699093180223629257739269394245256931378255691986167016773054508443107960287069820329853878595767758780676385199177958537229891649781242628380848434426149825651739043392023560610404828733097624383596684180702364767140835455654840008825587077590072019263236571965123706135623430668949712623228269621405375531429415178405386415282386005217470453367830132179253074716739706208736384791565067929827127062384674876648295730617527036688342896298790294258526475518748848296888560427648723838615796683355033722723478071674441877524562210781123711445547311960079449709377845560182687342912199679301117295795640245835859563705479986352461860328728064801464717872121709691618807795279078828659746578545347581843757095740430983926618718350090197530263036651085615021765855122366809214111785037146907060274811022001428286969212302116482736577054222549296770525599688718582088650176355510766060494202773330872567090136059219283269347948520652771688033436014734448303392954871475591425196622151076004445738905590912503814343212776605156120931749726330580720493287251490224005318258547264954506587380222662341227287183748198510103100627381500032490318573058087278564458795210307960968227073974607020934858802152300164938855056841227855496862165662994822723665566460698336095690062022040883068870584716994923984920381417703489122774143375977754791129829003994267304383345378567504996115722000581624633559671424983716031475678357461349828475961702600697580965327443432663731267873493636464824341366151130349370071935024921086025960074090163696327127138564785302622880673535989482993652827100667824163920491773402178177007178365169298353316003693134938384340644130718376046103980097349653457758857663036363608021067649075069116592974388942483302450459362552239178599231939123773455249564733870941284415057123342226617179199752284648932389194482513261164010573864001502768247764479731921269515467565011644957799662194040367092562635396097055694771837268719749937118621461759074623826338926616622655425938434275463538376542780019325562060820444484177061708921025217398160666601711616114108159268372930147612988958232529275484582737728155144952043070748743733629164598836001289916592452387679118025341620891288488589106677954785760588056064781448118879859940558419064224576372709743413091860933460112801786167308385080629322185550807509170105320047922326392112265031050468819351309926147278274311064249391627366179496871704572452799103916974616985197628376322534113516863810253742781302460382358924580850093433861445922788140479374282822246327001274047717894973729659979203782488292431466926022952295489988757372593102534595154857617002521998747023416660671777677471563678613018857689225447258622482171293821190524220379394878162881233493621473371012290710059015781714365943296014318572745236973432608222331910342306347985834950632515272194013948597461914527954622693276450954239630008017623093134302820047146895959750390105493956198523401785955779927270372919935057013548484231621628287120426827100796480367625941004180319490765288292886958423409922419679322966749675878142072751474472336896593191353520752067287147576023359954911008912226006838863809136521361994256529174478387626806051376538976211546727868502160538248617689554641101959760221431338725182216358153016928379978378908628108962491035433906073076317359566963122047549838488573090254074355509161301747081888927140449327642414494075740757665915830752700874273337264800589051790048109168713187531124744657704433644218841884698968729699143787708288466272296837271130841161799093248540642120164944149426747909869901743721434426500172329568356092797978094265791894269609190624502828837873175794175710703433935167703109792378049354750535875097737853044921376107595582909229301765231746732499276886967940121474943763690750923909065438078595834982997511438351880156759180474071824903898870516973811520301514342574735341225636365489776197924669368320338979467259819756408119606374453284213914907100699055514774177843660307204603651330203175096584593607560586809934971778822162942024319343670326471868408422031053139109744506880811732935325962561351345729797862113430577770119853743820474552394449682439123925781945594604440505400402217096060339157252545407039766584945898835851614025267333436655744941586827968569516514254860737766789433871811760949288520529048811849444492294567553126403753749072747837102848550001302414248553119913497784559334552997951295687664265837455076134545408146433305014151666366604830338054821052551983652555581601688611291686619167965260188017599285569149513762735105223780219125270467047973292689291468956945814329385006240661058047416323914427074640699799539403831464314897508581513854831760149715661239909118174017910775206339658615200980685256417160945546107330463305234153147486561282859793053734366470360405974231280603480316243384822664067197017558154731938882236411183525913679961716525207845011724212271314873477799398684870894463872582386453337897545709337117699840372982741064527769340036934884913064010229039332313423979942549068593172021629661818756511358593180634699134530799834814596343196623479111228604472519862524113131006678250024771340403850370313339419239548746466769050409119028927757708459793064524561510706225404152750226155338136770847233104347212471206902815085644720540354882892054077042031243157690410133938247271187370817112040609795302048036239642937454092552582811906148424837440980264657466273495333556457783484704098272318355222675793940818054257788008715802552858459892786778185027097733664231401959924149697118354594379418522407208896853760211234587159964739158303758765541356350561286417120510012863443837299878673904801801103912544533839313968712248691906476217016953610748450724968870248765416928312936854392752916993938238824644364111220532731525403004804520462713579869664598548541427982061311808111999903633958768634992538547287143271152757893369470506413037472166225122299423333669069539671102654944413936729142868270193190607425678594510823826177821732542537850758094776298993643146413133790543090797268381452655029511737424917725607760487731925106724447371103873025026545367897126007137104740178970910423785312324855182466691901373573755369609805668697596199865453083565920149714125527850157885350670325190370706126731060251577564653242904785988519240179121668019693307525173632606313238717175100038296129104534943042022180675998073155524618325954586010623505178959218829710270826865169060554304641028524735744070411120405503370855188575277955712929682399406929310557584124543738585178150188885768982267611678744867447895224739337224735507525173385943606477355989639201991456622650208235425998415514018003847786908228042160229401586710704553599858734898438140923709073464062791088066299703740270619940726597797339998191543996416264790325854572321491221228092752908187918414810209720094184249573007776962347332135769395320396119246955084969397874172933067725718566648159470921128356964144381456168343707194108965323999486257318404128455497815917887055633802579464586143413575041888779268967302657373031980660084876302742036541709720285895295625497325925282888191363344855476664555756325959611916138016912921217095379890085133987212617809158522156069866983181090763383157683232724619095000148562386789481605157929830434587705652574644153204643853830901529529082338287012535691958981945203661917394920167011593048259991146883342961527653771896679880672726056250566712439057587814739363793114660217779629534601440331859522460672795863508579028931392981293601655208157511074360431382754579246773588065522167278801990866991375683916215403774797497572635493576514045667467346746079358937845156697253748507601483127625183754605462301308463967542369176451384581156460700226226563964400922386642088911157066940418864273542260731636691016386875735389645677846683995132955564585934669142293606514441138444679746790325366234564608165861121927384965172043516603306428841369919706166463622122293884551215042716414591048904934919751687231167490719400388029645588531499314514941331254374725360497758552450734777742166946740597879092098296080759112504165465900938697131682002290138735011528908364915443461268419392385773537311993301065033399794581870711781381197586436524377914694404327088007273992055329173258942570379565495793262182257292795425121659702566504821609970491422967654227145446559882403592774046328154819042048455281295549033710968931130509131370967970522074750527018928223630484359006754908506469089982407570305605992889338138600158020551417701582023931331480351881103388993698628052145061876517175751400692315543785749147656488305305915351528217739897398123836238926801909467337742088888162740237478236496690632202934195767708337864650906473526705907976604180195417656741049786998132664547396695246657252471174763243605475146240087187173630030576085960379291757878307392090663693402919263279262762021007225208879217055799862655785531068233426612475569138975915998689435830794615422910795966206547601589652561995657501424311951343902250821660510525411633700769859460114580811783906951869378077085873942607396740961380521019658028449113469612493069931707485587903479656351786332973755371469308553515387220132891912870500333936373849038728223703392709900379618656016332006017253451705122550955517809872331949118957419880376298119552862741879409946794297967169391272043981293441622256330955281660356081881881129179265556544527755462902100890264304958889460829040510362250209123626454034774725304563223862302768149530538481284537856912784059351555146717362367816368816076849183794223185251524671678299325948277346898231702738841662962552094198110733151586162664307388161974862489668403150343366767779106539459802024069592152444842382780508920971505534177431250060736823662732460948739097550331943577683150173627438571536799018811944820614820004242339488436294232756639253698211028425793957205062805972961296056935114933335994494606145225485905638619805548130852385639616308106821955821563581234741076502258847637306910017023816013859034070382755312048411776652262100113317232726227211261598362440725717142282701490498628203821200795813239523345103631610423835691841960465389043591564352664245276596750652001342565570223933142192475116472423442077017632109550761355003494933249118721398359858339536142270130616461599923640801845303387254276126020718565805082136914889197949763654643748734054817536926726980360831868115162225570089130837668378109728634240775917511194326019044059837668345552285305204777806939399132080573292014145585569536852119192993905642426428453443078948700031916697252739735132627635169444103271375649517507230845380541383907513201361227985811862238156848849254730990698158437195830218789872386429900559724466605225639072789114618947760130175892392787620602797852702224194784191672898347806280820029922342129283441165821609978351998455563398511091004765768639628554680139554416416232258167558516222145519664921893408818710716709180558141705275545856991095820052930280469224303086796022034099164205918743732451954729538797206163158666354100953449669759828333717793459423167476190522532038361314950519296426061418392093265336875926934929072351859968949593119146185044047731771575740544583006721023985268888617194524371612457205969088144084590479227230799005686981509865172450461578536125711601014174223270377694207386406076463367349178574266543607516310795809340469667977697294304389765740561624190710398489234844310985206169485450572908051901839116979020648873739192087435304138014412122605658375731433067140602257754094922284059545934508594117260135692613002250413348090574388968680454569489844726182517662220130872898925431864959364755504138026431832177415461969946711151682132199030369449549675743465617154684644314853555191475941056959943945837960181329198071709300550395867263097394727041552521073902785419338616391043281430845251642770901916331738084109384340003646724750595135361894745929757695339535588766369597247032949351612157521418253261794224357151415897106074776230361746296591280316904443083505900583990955647930455694879313269912755302037386975812301255485699073141682603683819422554905464878945205507541045487921624946941387404300907107660737884925074274177457768124793135475284907868591545848478615258246362928134995046241300987277594838851821167489735888961748843938248197492755325174976339183931504749413598990645405349609917580327198280074834046848193865632668611342549290942962691241474283756822637481287702301400868342038151548847808417603938572891564918113913111466150693927021099737637065330732158201727190310088218930430206946731043010043110811217922416702506306070612483619436900587270588872896801677384805413235134219614281723051175895358100489795803382196283435202054188344405431836496963315324001576893080413642801673629500099214640894599531426648457388063112874676921088256115372900472367639702304481660615080097969944463281859796833563223287963305557452856026004664119043365270790483250953314066585847634405050694967682062464536378065118016587731014427620723034058583361507708486389979356030548754722458076570210672889960046108001778528893955787415443461142899027964466015326085066924271238418744253657287936588480716279352567324300848816224294129102537827358041009815745815110403670598744514837103547261028439785942916308349973611353807540326085298831337094715103543648109883522700872713387218558672788135315457247695591399798555804375828534910102262048506295390378919489923130667863443743757759891327698626023408882896522639534693636768525275563337602918773277417724458857786051911746588914664992917263905524737888097103364056297410778586431689099574508910978771292287709992077926344607151607078085290388518362299076081097733217245025779159500888107571802606671695692626407573023770560902377170918194374161810713194246878053489024148627088233803745761738291062337106745972335354399246159997674075649949276537763191268587644715223908029489094606190182504001231310016760589887742646637153323714530558164492301446301346334022928282374957101133220969174283069185637589111071714723263761660803583447258647450050859584527935317174318945620147624057703836890631474196718658244764112754814214774729035804828838796754344192348499049944200238929965793084552745908443667491496079172064808138343662717397889828918194832801890378235673647436598523542671772317031983498535198918557541114131043786606765144003375191325188621914374568576526905852058709469172819311494964221359146077605965501239892401190622396843889752925641575025473659040817626101618282191834997773815689149978074101032883296062823702807571661776454180282952847333486412584651256615982544092598602320654249418567457090987902528023014536121407354479635470749558856225828114739969458029902277077424617222875788823546651714123078450314698579929156140579189787244648135437131156101315543563429079001782973138859356926312039071645686059333212532574679204688683002141316947787363242000419683158183745160772950172645355875382173166538205400136374815330035405658499285762165924588125733126279444022078797305510466136495499496162399725017547127453687842498650029120413016656860483876620998218830530464955940879457442695445751751591390736451220649093335925241691552729050633372795514223330719093876627955261334760853167575724203852870700129750387924643985805588090366993781882567642337934027467952543125231858494088086483754420216035228213898542882003217995083665446080669437090532431849683969523482103751612511399232441559458270828322304937576031361055631521620398219704551300878641329783684299652951864016990755113535276009411465385924333768981369454663647916300801869459901983691432621817402782253298457731859205634889445350407540731004270326004241348553202155493575403954414690146122225634033807612046085532896530143647927232745695089131320657103541726952975911384951978620782136211264126912361035354609949846675912283090401591403989741840275720872782729519577101133939191607558142056741756877762990894940274723202560442078805313891730803828910818916439514999265764845134519000609172148140599299828278089316748434287964824353513598652094403300616334699304697663385215012377429904944131148270388297589282480104312425404084680141444021425172197648818757881905238361124057485356540776670246441482603870319800579195596852216870526685269607864815535146318870946494660875401736153687782945552529257538107814240262666855093890382874694574949085711545226049343676579346364923340065234924991800938909636031134487930377606814231431496451254085129298633758508569708039910653778034959381957440589572193459783364696927168429839067311974260249635084114148531694223287322732475064603969050557738550360738187874014937409126478291682083399965796588534509123206733053599082273828168643973113717054774009746790622856112045710754305044444563914226469406644156276409757435592165347762547888845247650632295212868420134099370866736038708843111162730498445130706981468179869138365237733136369837218191423259927269931298561393996464829352146324690605075330748897840836847672985347521365083332627606649224849085824299533769978915507303107005720395654084377856131274136555136623150820066614191807431654072236222211326279444983640528158899520815871467720612706072146296269281427197408258667649135348902895834206919729547522363635645828771256999684624317731169798491844281904424372367502239317697710190244932389572915454375575240391502057552478091294467578765839103264512310012851902095721629148093128581240851260865360011017517379613000354503838494013729036426470553704863454494565846034723314472614071052909618697964855995579606392002624168775440289232239487704290397832689761139581251549640391650450410670242479771760912908817184426222613849562971891376541438177835410310046549854487161058713059563264715179167652322143914845649131576604628462137843847512463441114935496863043297598346364531296087649105228826562879928869045870057230835551886051190300733723972720107300119965959501712248875855418855209351157561868030850756470726560423107867124195842436924642963203348647785349517911765448102690107484038796831025688929757475925259244066208929226926746878666199617333104568457584813107329485819063896820197463142403517062674659219493689100638161699863999034109903650005747718840459955386837306911140534781022374375090824438661186555452099265016284728833447012589096592438939360538363637942034297830041556067144140652686849016016365788170739887154218100336893355111932779419882111481892634228616009836446856992111834327755913757202246692035953721456192358468069209644009511771745331724794169972378823735836305166258294922849682999190788826936416902410814825728273288737911363503044073072466655182205991702546297163433456528923279057859525854951132963996998094476433764712225795102917493280275626933462129848197085333781335698535263815166479597336198531958571748155859879394818409038047220990655404791453504233580155423271004890100275291292855206826559111336769131919620364178699901805407483027541265776785812332960369572018845727053534971731475381929635084454862696224997031405467183957638851979778719875924138357586889786175669418340179467348561569835780502784145448349125076549865876694083755679067824507422569390352221639784021760984546411875500928692415577068388908693460652582323816642272007548483231132941706222962895547411787344585505572125506598199638396216694561820125124966002258327875237869254069785607796403142053276768801337063224005921174799928960626509524109248258253060852518046938949206538598491012494261349087118503586793747226064489704457177836680234435328447111494865659333549771139511084751521907138181534359081939623415890944561092949770827601928654121839784369598682926597178376351416225064109309044002533814394895260803528656266662262791759344888055917168658711667365894637947266504933677593194809348659930188039809138547106641532616867407821909640956978086264889549253726648090093750495284979977733803079218414792515718011751848778595006414442887850901030267657975508828548928547163554068311923448793105793056370494663718589310613818507508413881807566753925374595292617779400625217274477555147703119921701783184633281785321409179260465614574389218081960661983097126350629503928794940079210238691950354839952914893369152806000444306584203540065776031833681403705769357633808398088363369299119084952073682437855358025564256532821240179241577673488153623190819646459368985125410830582737288394187294487404446676752113179181710013695196640955424826542650008939196586315466295620546030885346577703852983584425650893932261718405083078082170974284661083778108841537498347824307855635000559852784311093427348555209117506132290221568503242976324884166704379044706100787998282922816149652134049460572000175489316762435025591293407826589505953582842717444022960199067218854697187217688458000574602283241056093220996765337019328151336120143462740576018315075265389151921400189835235074648468753092640763005694037415555015176998359812147546126015413803879672722935102839037949728353301394345162557653902369656394963221844346405000704494640209102613911711663925276935436156050429529845844428089491608147494636093680104804433980685859080004082371947895866207543695808858357207050741083722282837609309669004137491446135870790160828266495378933619127276572463487118301842567803838974446734663519172943785889598390198308210987020474462634915579381663993117965046154246804919939286593160658618052595994399062212325933364984911284014170611917735324205960208260048878326503708839402669542897447853871430669228399129837105721325889782171699452781260768854861350756627139956711870994666882329566383790006376846581509471879541845413750669561864676417751860545714741741306665240045811245599697332768902985503190244665457603615860557720125520635048332683220267395622897801599217283294629366773949813620856974015175521160612294061243728644210187045091035943893937908657125984215150598517387975143132306365253481900064848499765745649136207949163351241433073937745301809081845882908061848133572389960804391333449124053192718469841539707697350044584426233309341968113519446260855688913370937432579492474749536123657470560868573671073977859638220921116576053886453110998536037303157333737310830583844269516597318978221817828799524493867063545429773844913388409529204369595584432994134042305087815130786968996751555271780433790973206918138652555729986894644157115606727794862854587843473218914695880638673759247550546333991323460118789963904183734208213276515852012262619275187931876086438335716218501319040893028350588122939546004850064111961355668557786423812764403004157056140510341255648934715040705076647124912285831715167245893986492613132996164314489018452112799219754737554074967084886562667281181552725162066871148451624563958895921702490043940524757992442015683545420519626360502457617602616163840435103933787074736898169681369295286198555703299661476896817737928610813787133670214584909007290019879263116908953861046780176029331886961011860553520549769889297755801212830991969762038237623419008976464147462671132077047866571790504853919419390108658139468842742622857975570625635483020617430850893341245305847326162295335827915805006103685556862793509825852477131508911825630235323455735009121686370242442674456795270852634223034405526443866280195318310853477241086928487290056881591884282111938082464496524830218397238327563300789989469587405353270359651414037943791986955120577701796396218077412250948391920727571220801869237672849073075754375393000244161555772375225010704521858770509714071659777370116875577310022754829295220904408578858252233983760568281708007252787820737875414260585532304363049220805277541536618317774335452664967886548780038878838120690609686330414700739544231535623073757565264760827929087093987212265357942486664424518711667635360998414202374250261996465892896284546446848007920113208089706734191637711270756337154200355728082582305309637945603079011756402720041989924161219130392358317090158363388267759636426172404898054085941410274112281179136216228636399369126946195045654772686863383144704823711614151564902935581585869698661436331014511633219177698066014040531873318941139330034397135748895399299802676462294479167200773233253076979416964313246512080647981513194112793123546583339100540996186678876076929845223087666296313997583534254883542612952211058174788232078757523142980096594438371532266591414073297009773437619004713465005561416335732265029516834026156691890449226245580715216118755380503092355472864655271321819886490130003957028849988512161578242648771384082765031236512245870501406876677679471279382018900508223612671034010601237978952742556684025291944901444454710886692020166004495286769579905798308358029833457738809101527091543256549075054380500707935518255449820327802709191650487388812415592304863181985922748501367058550010913364437625929292066616874422362245175345951286227062098753211708763620522741749905123029038755092958843148022800504872844526977273970532513764534036863756955542005809116939676909158856788930094833086954287396562681636698293442701674003994335834905439361732966496703817633957213435094857580405387181165148629809101308293020720326599521841649902214269112401087662930043861212266687410064983364913735742627526805866280536966154557738958486137864626422077534466142696681781177819523923910533647193154428696984248627347089137890028515075417943837615258667413406794291059858926426263973813788517952553494555825140993109178948832874436244330242764854802577045534910652685458208014102896820442811254168561308076120915697753679119551031446680654778857153931123736426879055962575601522149910919908689232129604187704899365357051811117672265568665248904245051426253181973322484871606603714287281859155588634969343313593121227377004084446308182951681988124445499749224231391414681368236187635393080399504691133103692765076694371593496183313823338079769943424690014256758027028960703019632858715385403050793521653755761530368135359862171852808433378523231198299510683806858750392270942551864451252339408577233714424614310655619384512544431611269763745009975459727814652084234985323348095321468093308470720186077438551895673250814041235093583958161199191667180628094603413902080273010048650301079043435477260348015621644195334434642812580744249588477600456261566685478725315582771329355107301084889019418370343239920100609251105656677830373757565432374768511776883874612269333200375059183761123570845166523665394921307050437952732441490192491445191488403660865185927088039636753410620243230498920419347457900059791058762784526983806160022192509497123117728305226399802033454935424621920605499666899456514286253029259424182312048558771415436167614493462431354750489546135323476490960232557991765515908859548624182523701098755879887365705607800326269993725569017580048498312450845627800102625985921728746619281855763975729925732377831341502429691844552036801304511084335087172669314141238211056448295434603257674233827930262250699097785024378732412217711024587459753176041822233038816276538145127339045254976816421680903212618735284657253015994654806124607292608059936701705219231824062366527443487069515019785024867749827802452320895705870282509653785732316075965240864616053095214057544869119690939770329106259782078503434296238840028408068129015110171375642897324418458411635663313916818542727345702389237802716955097083594317745195662616914465382067203612279812628870838802087790364810231968280306024482198489115752967875282714321332288788236090870805503587030206510822165211565848224776380220913728855987237098541377886199820300986782170717219061154530278821587013642971990885661920423557821808940083111840524536420529665290928610633949030631076929812988891658194190935862165427591601275639413010774822382103351949556861017472953526774924130728344633432253954356853780018969897156069992366961356259715498639049436178269136297621698797856529210532707694491398070917674280382868736383934308845351181091602234809032592591293364749016252202092998286071431293982054498658926067331388232078441748537191230271397145933636059776256739612342009983872344519407267385506018210955783169399061520310318281625015718513326458417771467737730605680013134072636925214737592130253968868187774873721063935282088442102861975101954668420649979142958904342833620251767575665517567174917459706343357579653861705288610862746332573658146720071924661389247807836017796659830207632786785171563293854182499989683781694837213553801547868936936527662549637825777529536712703274770562054856953536706883132166817758770178632528302953346343827066359547165706192509783800154742614740551968532471368749593035083206686457348295847666845999163892532493932588951236669724935015182898472135610768130450531747704110500055265937562826573951435380385597174431793824336159406002971326167051137868009709581191193786043247594923794148504713027950517966907930676855580018132104846863908543898392788969239654429304274675198724082632996068543951411650406634176876396183658585948944163156615413055651860294711628821423679176846466065076234302850314083037649284826627980815843910148917877056778134720912041348102988513253309853592101443786901512090012545290573836101405404402610346202121581572618140193156751698453742340330039349066802885534633507456670258764379993309070205752502412766993484000851662414171166359314552283553041386426952260590478843581789342900479580854304866990194791281607867676992105268681248441780747636434123012700704529273745220571926550172384456998438129522442598432651676904665459599896290860577260950412054144481819932025699865126614818166059784062751784197444410776965397207032419919089641460476249767621469985511122106100420186013479314915976147003417209379267146394669586826759393763377313405099104251394992340844203587132734442458174284009990304520221539558747502932810592442512703299466613572432254122691308753523676630887706826240857544108236266239312805357467038555433525396520331303089091575724713558454507010620657691174804826034288207613697672783024645379237586114536301900650711816757924856380055460879039318170019653112310573777885316280952009205149386624184624011165667735730711137398011999301301638495628628916462005041485476048723079169022717534738696671149337833103890718343498290177321441121112214956287968574222338451543394418601036026473429751597516614004998786087586648497018410116995142741084470171125731641462358353925041540228524319436615993573433258833859119020568250774387450047326223301974243990739495499318924241024788237521572188600799040699722554025072590612671227817415493627493944767906264049919408615155241352749165137598470726625019432247981311005690774396968019719946451569916750127502864389174190388557661346538508684578175611667767621098153487517921750819116793798580045951942047990129834824738663463354381209097391682413904766869269233033592770289742076226600235249648062613825152185056588045139688029684609694511412264208689349497139536140688213083113171537957386054806748627399955650384815257841057828954116999798484181087044280874077910968714811353738775526495887403602081269810865071199161352781895682045960216235912866130287183165391209316503084214350463547085661600074185160265765528869023448089453213251072895649955285276806341912152159004089898553261020290309521088757283524302292084164092594958537671951925828086692317766724880023974922866964542378125583670675161696179264436367404729851454714661604405735559216653438620276457370654800566207348481138992773723659422949580906328732126800271196341646266778356961280905791168405619168289026330899047996892833584982729261149765757307294145065140614589884224600519616100704408058898545212538378005281220852124334267948174816495705183986458928027579864866486775806046861458448345674074017343506726447400470812261014252011214720565420452792137950371215597044555783130128701279828921150969462384239093699699991987854761863023417423745363240285157223115569952944732543435784367152438393118303877842091170774335181119523602201795473412748756885945562822461587324023248854250866982204773592286138962991538467485204880231606283640919301050140973966987201433334496671636637681556188390013294982628200438691409093022467063740183927379646102900166401019045384586226955856650945596234120604870755319922504934857332301754715237696623960297099289837933923968796829931680157286842701799941208231939007238353215720942651800185468988112254628506215613972662854052920615295882151267332785650525392822407822916117848443322291934962908371069478609085952976506392560427486730587403695285460257964870221223863299413846696203630492115754757632448089742097583855436517421681812661635394995247054310921786549321095473709571942291201230232972864833837351466736418233006296516786444684141172731037210624849358711995722955544410743212964588386022737964775300027159728034056585856517392706769374346040324248324323075299894679576113195953257810555599679668122213027141996144646951501691762755831720316024448238423946957621962655969407955928140903101194824680309482954489985519737298941033253784959117678141547146649921220988321372336425250245656000938964883093397985154354518054584773491411226201077550806810851516332567792608540056345610407195365842257195594388777123303869020794376446125056178575478484197832955719538559355735137783434834232612813446398072102279433075974654838875821389059562874389485402783829061546340636059521262819257012860542213613989096182776637983260491093367691971898279383274666500297078218937005188587044611968266742055182711749948849317386065800984138557558730898279647618737712479880217212260278727557762091682452325274126360322514298313203742873158154139759433666617875113811694129991086624160101695959256132486461538950226817346032860613242209981485427261004509803081031036708810352755939915227627363691983225476901575774832676258228387480679184991796269966428552278660412411692293553016768460467237282101904462894615825234723518737654930189199643637556295003013843214389381300372134376244029604422697180051117777343825613131227969759467392231253413275782489090766123247181479764705486907113564467598477613519322777088867053705142421182087628618688798108569598257359752166980508748775707175865764712313683874684447246177791553478554099334749902484307307559457710595093304544511518198220002584939999729867507518876563369708333232717672048877237435932254499907293436988010018172962891682694327940266453321145816640919075415980947406937674589777964186849417280275591885455577746779917843180484872301767139104666861196639103681923215363287877162650387737795196397192892809785838461955027432198644866183582116201964279226070509357293025012319061641183320976893415419054794338917819287130088156764749200110356492570724570983831858679242215739674565307793169931079948032061867439372275723995761044775364394103090463505185586057744977828414551549800273637544111636872407032273292557681051107224883093966114298594814008964950225573882390990128975028643397747412217672159449015419228844416667820699115657098726345195252219688073790954010750160265340794354032882628303347838133187738696044517853997410803593654302023245516762979479115527554930691952218662606319930356836196328919837592180594455618098638222717393706137927060766342094744230459214802597385166107238868055891823373077647583604842970277851998607534026879042321490938907208304015131583527455415672914924691920407434903550225521993021049156616109415489355238940593270228684959600178774812762959422670424502965659291526577761381921538481112548944202687319928359785289403304315158661695098205825288063584335206785835901228459571580844356842489112109908865336300940513149345523863096962936164144170543997195056806403185864782720430871135823155385251264914571550395130343737902187828008959489974614366038317179783596049982265936183466307651152160064892474962116938809795865290187920485347821280847741467655557945280129878522757854770397021807784919517264233326956804174794038031169027211020690793346729963932854589072662262252816030438532833829620660033184811747217717123973936065071597542994181988803682427460734690139801061740301231141126456730234765076088148700277627510959779879816351106358762878274465377103540412373506337371163842132806594504930700285720524458340258724641164032962475568521299392068396022564942514197454241846980191339366205832344562673716869102498003699220183020515384184664187364221849953718146371413860168668285416828646211818285900348013635250760420042406183217049854850791193525780958094071488272081337392334512163903259414423980537788522642203814604790776438093325708250571261151235345891709837983885931480497602081058569360687246520017145641057114401601664271318800916722306510629672298303833368728428901817375967082280432218876825428111996020887479157917255232540771206651965813778944547229091123563102268405989696348637337829979587536641545962015752604859555680706095312755807608534306595295623104661643585956463207027721559665847463163292354756045765674241373450201127664749609273353859248577352538184337632984254354688419273084635530462324232435150446931900087994001563394058456004087618417712628803991258100912949602868129508234490919943641624640371643054394379593869163424598551867485291298300642447645027399536862361918347775644390803997987366677252614377608749880276528824793536945364463065774827182476521889272941197872523346091294665937792806311456836403180692367821761155311186342247758119133640900952644505464020227220163834642640639862342150688016786625175517957300155393234484961785736387312032942919054216555930847085885246466838527869972826707055175110448128391907987859572237905829077879453925794987537106748687767003869254725082842539342054610886983073913146214403316977431642609403002690815552344476942623808934071547226008846088699445049020359440693383316027886284190962454325797996291769187049744754313646156559717771942825214230077284949837481804647960047711237311216043386976259095712268224080507626423445943321345273369157111514236084901664763484546293587987491123165133806786326674718481007718858896894691332782176944100774350993951510445019126781116678281642977547600322215242890330975154102953912407321951361573265315628978896684055928113648497614438262368383909983373140992587792757903176065651265559452970471636681496043273007759159989399134409327890441694599423770318584105394197156111399477970446436114699567310747859079018743898913639087304612724947959339960124669124878811283235548040174343555154431533647568933893625859550149674843747215630793820972850691875771133234384961002376293100013859889154797540141500111113878358299902505001959010890113751318706093422617205562312601412094291795922448303344197331856639580744879815213042692303514743824027105387206150722746255360868602233212501915348670851049240373289191721180127279521303133797511494035935359626193900087137403164860528296717636552390566164575448793558815431618336457796263762321537950036248301930947815265492202253395210829745385783453144426809995496209730966226158611834342880642173391696984010433469303175110094298331143881935341081475836231033750997672097319235327619841815895502089192128582636558352098583383523215525471137486387210987917400152020656638318424262659616291443888201240044354837407603120166180481890152225548305107288822278520428732464848316527951293335807714150146062883120034948601618416575688914156663976168588646376810178198612081045924586950542400075065365427641229112739971687834532239313586544532954184196363063006441930450163377435599529607498899855458253392870663847183475546069963673376860831714135813878908762639660449749744719997832976647618834328750980626858300626539396324169595343933099380335684536290700728239601045964439329249525147247089358726910656520878918126465564007004373630228196495307804489536166034617550246770182114983204923818970865888316770007191965471688946259373158356531724731908907007861316423546936872998332029806390893658294827797034129212781066983795923020499170565742089144949787219331082666749230808458274463950085340571471439873883775528744521670710826825767731983576508317393439229940024273966912863347037895948221200832001942801631147211952311557423707044408618178342718251115509571029906976153977288713003246452125523853627325568035508006603799963493097957289228054701694610594933157637772354745749945566872911095401498521932544681631292804755667615821078367803081920579028563584013380040250732826998669631183137891224629197718755955993442682781161838720557550508270902044250423393413646746971134701871764994915503648739341615522401573295186406628527912091379818463764746928329155114844793432505192583689351980302695898393260897309631165678919444791031133602805884619137559834233323435657734760124987409363960411222617854472714986027545012450223886370758003136457047805181466736365010481636677304865842708144793668829924288840907939162386327486865745367319883822879956673292217710713910038553905236147844116640392440923299959991359843262234313815087577520084181776307505462421241468797875037911265854658560597066891042420918798707088226696448971263338976561411619956019999221208605137697160375084000473183698244145807321384260190565669893798099515788333046537353241461317825425353709401498818939366909748661560236355315939995331978469846266952047225221842641306253219191809538425922266272898549393037602805360053710494774285224182138326263793784908687141881037471469753939525297364187748002663610697731860418414841943647005339177508641759886101631330552111433193276542540755438813851038783026542922493763825025885237374118348294573340308496905184269380530882439826342884026361219037572260692898952810121531084471390358944642076333869190106160382564782143111086128572293325340441010870142131065770924270994936276146090930171286933891711639662461254088474412726501033497669363702451409013899913983364241629626485423961637109424497712426545107354138621886977473545672240709669391337337251143105801608850736187460227642445023127752083100161263610831856238059182230448192293451739042593863154352803567308935481596733994856810991988983877095868543216671006849285003892835671623791079132041529023988603587924006923402618754703835097966691266337952613299300228119017410655589583036212599768632252816375865097598482868958925311780223690318778301514679839175288107507274525840213547693953231087415273024154016873012621796923160325258901190034068127221711072870779445793644138865203790833356002760505237990858277990112281560344008182858562515888587681120045199179500529100133062880128202297234858258319473344019810333440191418974328032047094164972890911822474839850114593162407821291830892320774041445635021651878512877178301899795379392270914234124760928123998245965560290841461802966046675879743901666688517982220811018855672304136312801711672373468044770585981226333948556927469344972504470888519737068086962445712506644035981399106723000492942485518659981449790180458484269536027475040276574159887867956473309585717552348100400424251898189394740847820198520382703179850448719182809433514776253589620776418772575256131564662163599345494036315679415855057832287652066852763525137434975434587591793571337386622636374923183575512325859884744381914864070222886237871695304539382273179743574413488021390703575740389058069543557356549317742331077033627549608671644071441105179234790264589378505572852322566125195501463988104110256139754126252961732299422681393703667107587240554745961105818701469697062037351604038187303687609180027551755541350746201042793859506291419395333721287725137878438493593024770275407219622876326426338557205428378719493209023284919597906051794379570742508154494598470689233926831897335501299543347899261335302259140565923743118523106034383883888528566631419301106998309789818973569821250973194442346284073125882639034054289189532070366396276941090551126056197301744824959009893893718611433369798184929100739242192691827942630007195199369514520208545249585428297722463771419836541646683142346096098389469665316568442086289558625303235623013451194936713781755619010573776769940311251112001198920243541176647222999245650278901161595722380219541299489036333297091968558198418827423794298857119451998462387645656601420780598606306469033275001307860786741949127393129632088615406560604984271471122044187712862415018001176269885940125675283823192116229496677416305395475728279028084767078064156635883882036826519231290622816803086389754645842143719459986810613639184983634456117549180284574143187859060419490039054793319170707026711035911366321184134313542931797936391408067430078910643183680316119933603210576913622034963268357181681931256284477743164801971779198397670815007822480219066030009396057716498198649769211901740588977282563484499017777398237762889461382553525513928643364097750788127674132150931226506201429352159136599442762245861086696866968811119397994920106140351234363246725093278513626361056294573773412583614377476694700385194314143457121153514892913808779845964574548705913665301010291741298159941870247284739240411805849488954125353059971138195375660831500069768583270898769042188533751346583667352507260939130825833829488479243779373811181737468672669696197402927777648525279291303099065947560357564163933841636681498186721945852667382202491896023090917902072172479590944769793262836644452094210978666311976302757759382333939500876631321130508525498040716275669641298412518831961920012122048786633500565348284201885157044616608603823003347273783404179786824292809906094524382823271512073774759883723700776115198272545003914053802762230623218258425386660027372979878545392233399862384406850383652162008944393125786161152173155244455311555949557586179655190644517277528411600074460024207596981140222177429414915395888533374025287118430942650958856389220921061730441005784309732694433659471048826626621918632642387910169400112555441214523768853602435919473437919056389287489852404863051378860881487829625040622655682042421496293444717295379226257013103405130931772431797849221765059271347229275572154339223326869030521745796872918297243094523384551554861702711303914727275971167558501577465356930497868519226393051649616851104860637047019824405858794009455141901889010733345696478260637475950619022002777716222855184522313333139969894974977488912714534179075572096293473457062916962693134461013997645823294035698460415017036585354596669757967878414622760956531015365680162863531652013400118351662565040092116390765670309512253996089903096290039368273308556692730693940207192546113857636317210116546219475642918678464617373954016023095100927836278554536115793285279830046171514621756617078231019191748543210070392544621700763911883865497356369677898450138023284300462080451588385174403730425856370771354297803614404297664761130884767557239211322181050546213086726229176961722532404951486709531122113473963906329533351130096384767596728099865546201372690564996731369372542475175306971962589927029865340707606509316621110958315014969686357541712877049967222655192639142830450416873223150376553866310069702209674372275627448668839481740723285400959731838802853842478207343993539870947969334050864939074120156827355218075633680770397883954617692611580837659104595875496479179084902077762907227086099819855902895361300298756287182028305521117142122087206388281199457826009029552397016515637848673147781022590570528785521079468268353658386542684341784436722571928277028534737998465598876765995152467066367049812211848492608040375048805139205675593788134080800229152865289532881140110421294003463859656251933005407117511896934495591363766520722603462640606677705904520604726168104676803502744907633527751778320505725885003073441236087880126222502056479450016736965897747925350817996207361586709819289383470085930820536826323331945994330928827034316492099184322531435979101457242526971076778782796780834340838311067514203638679241855625450705052759066208550937469131367565372568780558217899142062454928076855593397196125562369854241434019703781762066190074550099739100026012520483759495150808280356753915067894939162893709717016223095510789290163289388610005038051936071205841270150910924728973085503651566509524402919059745364106520681984247851760252537545451305995080963475996849700910794378182666004185890814635871173605072142967472445298189612317546338254733653077867595191793407864807938136882484780766290969007128994634680826241162409578305440383775717555199247244870111319565160471503476678727011563535771121712479090481010816869638647269257944239149899977277410761992392846866491888302520153132822293966467725511417987130640752129196676812549225202213288245301713755921678844153506027600023401468717763649878124159467708896718565282582662545650133001047302801062782921117980400549724577935991725744226079613668703566610714415418758944977352532446467728310616592121881988350424307195180063244273126314891142049678171783301683166486765644411629546966771248992208783151209076884945951670325351412766341193697865753618983742354870649698135750768692736273966673587490720025866463732668438864596090771847626261056640095307429494631606776274530931615223636411345382876577794581972476989453668240218932426531693300445168158109251565430294460804160687419809849557367179888275974014240837002612072921954046015482550424364057336470398746183169656976238803901758468413981907512477531524084196391452291909726170598055347706118439350673353387168938890375460801918143154513601563365511816964518860937998329562306819736439399258789921077623451171893760230356305795662830448594268511719832500383935018419801039054131240566718679201855491472341777922384045667504035803495490409762866209339264285175798193457576143733765183797906291041168086611746606655536116539077977950391862950023972702221448743056577674323812633383026356130986541922661892226991747536899804779702648502286360397603015452238115528029453648482613589423686073106899534943152857992852366091266857714914634723400259469134176134791271346741907198923758969527966290150078096680151741780922056710353194689419115181612615554236238566912584124770863566757622338087021642066940249007848762971824229368081191199928917940565452474426575185835553015107718984778521404907711546245372221329810542340985021671141302416869371879450644133471510773511384851986865574379749383922979162040547461382665535130219655322713468245566286442755286189323637184714779167924662466082708770190044329106756937920124289426202368968380512954378343427602498075664498166177236256340926041537731787308618217540355723394837308233167955973185285295864028069451038499222480344367209250259586288508191702232568999809977308859381839121121619165180725591025015756691986385860397765441330178081083002505007866659725425583157589104847087831168789102615495272644285940096026248026184493271892819438388997231312948167637245759014596823722844143815019275598435657516556985474016707567188977805703163494021005850785356524804993080655715806780896577694620699993049402862599136535337677571725610630740222852700580820788846762955624512100463940758567244805469235323508022095810526736165427082936316677661310515000660668729590036016348841020878125185496819338731515680502444484845919746743102904619730268517890629028592250918422737098038177973820598292630914343749487631801141366417107724849576228519091936882787008109222234078805175988734541587408814361056989979330372149545063529111058084433930040998955358038584998555803912983680629136489917672877612456817397486912348612118896441637820977215566819216006684027547922301587506347458664449269656882700075288827225453012031234491831471737878510816559403547788958769832194387255220882316133591043888763069517296434625996107977882019262300732264623938986027381057226962517944728754254741374769938786251109186906523772072126807700161401207286736153972865015079210246656923106953997485292370784083766186873696223204704867624079404353917128002684102329950515945603042498447631492486183390313428236520453905295055481506594304152456505994819735816227673914358442236874908301629637096731269898233499069790541752856581611011667630616925731965266336308594953329501983605991352768313268541172099194167515503533237776338146533256449696768236311797093162968941528201768788136812147497722735883300043105380672083976414484376387395135707768373628770136748276075090977160962988260219283299733650856337439403948370002616547972540889831092054515198792621617679197592403054416795932989818764684934955339328877652018587471254525399585920262382574887413771824927615916616694661771264982906721979868147282841626780027812994004334536702838449491018622735988604445216595175722021280799194538071689189497882394185113129206599059001555182575319048524009627686926007696502183260430724693238039237836984086415864883519494192990673917015616274578371087979692925459896799190668331915283671674565924168535248201317068549465282174003106463861264412668936665436971130254912464137114652595799039086530168504708854481249195843249729693578588075558316564971190709328710024088544009110056314505432725103040299840866082805694870408751698359365661796513097580002390483240690154298804219527017389051480491085197879948539069261069445705140970991240776437620860491008634239411743443581444957071416059114482693450692872187822895663014728075304953221763906281395487218651570243695602837773881802870717575411245490670183585448459361305822772458690658736476274158261141109177574089953709587126220372167064648886045172725122655516320854627960119605260223164318324500478598009289444046711005638604440169871114261704877656012024181582748590770776479604735340471662653262110996726158541565263179298618117378064310211871593248820940844451331197959813570420519907373016753482617378438950291443692459708517942565055862647082092620533234718089344285715150099174971474608674061212611577678435898024354102243965640566864596850532730519094601091074262965133906282815482760690208563985833782587186266239450332805806411574222880978364924356354360580887437530453798562548516258087720478046371535424823746706935258689167015538714004670243558120998739324845803917174835764731490388788935213572970114832577093548405326845451173816861172379872682277419417316231627440323288171952162124086594050576670676505377053983818025052067007406619169829192939584285647890430559938618624252794376642295504991356208918911837424685707526367852506484710781267048268651182938336477316356013837288006063992376637300038265382741804573944915091300907550985192471238309656050594778540484238799889683391872198466061501813601152875013267942373170101668128304649346486405063821808412763909639278033415177896555390787690348562458044711878657932716592130552479823614929788917768013886438390591725340733084315443824368148675492402289014371385565909689535990140193874778067271033265762549444364881373794801822913218921877037490664952350928719366215684905124769487098426045543495940340954299516091120974729425402007931602529852116469515657685936339101357008473828918687408740896744961467075408187062491939249172226396875739402009873194387918255684317903282464289135128514304814035234260130170298307862030339848884402882851917604849908662627721344173573625289468000259389777706363043494621776059610771495376225200495118819890626759709710666678637056968063853046226306707685490317832420322668928788587055183285180000151352832153655613603206099320206280783815768589857572727338599129901961056940143264706996409095568138865641100207904850711077727006025005894739175956398657733775455041945392221346409647826866149049998899452571162373285776574923306225307087484005490019302625562573813202157949499146234214894030105245168632915570265867120235438681392837550825018576656774186925815104584826220882383448334726891823043807354008288745535256265082590568718675427216856017074054088664963128653851783164462786402822493336997518867728842540745532260185115149796001006878500500357766076180621392172975408887703389681041628990814400873849493219897618202226601486345783291395106346162060574273617311585785705392771924350855633499881513065625477801488140349940544484610647081093911105813733724987543440208129681422993096080515841934905439396410159380793016898092123457196244995638161222293855780553090003092603928757619939945854606742101212887186924668548720435617251477282743240763667710050539040703691526749969985269938193047487670754207405669612329087925813828475377866563961062059567014106667168849206733638339769872005453274063967681277883002894058235131190878469550996945405229678819640511389802688796665652686882727255972452520949372647644050686922269675336558377874809973525980455675065628598466074874902827946252340846947851699021501942602808558994594064534764947117601363403286957696388868993984724633760230022192967620950473736963971997387840111111040097783671618168114690412194146480628452404311386992958287481183853181160619466989448700811285362440953644711847879183317811537610600907822049742043968017743385881937978004684666291229710292301065263311641615660356107989560901090661641466704717802695685599485193266298109549316108021888102589124172685062321047653187041291782312949880629854434394152283895576998315022562394070644537008635983573241924913206653730861425311623132180251065840667608292873896127125483442212252502115611267340888872380936082682578421468444834903002333374498992312461166963071243142328974325127671830131284776761113644150646092751624179196530000472828469186516329748138208634276079651354037252990293796541708341604801959346474821363729774253901323905879749222432753720516238326396661880887660990106990025109801777477467050630532786797466236731230654754899593810995454549491356887499135908819535514385768706077939882766773313444206238012819785540326596688564308628500336561665901193035710846007810864991791656377245020975019299787137718962304547756283322351909470658392218807167010099311662391244641179240404719771533577092797900291933767903089519939824800591018859929867380814030100962830717002646862524590843316374673939511328535633431072577113874893222118315995353550889341901163526949693934630024104215873461198046677473536831988641801049992557230872772935054946131901181784576862030471646682173958774948293001472053886035981019230303095591300678322860749000258011550215018577202798061289995848739863871916600817251474044297477968900605937478107991529502405001795054463019947223402472684788898319468414899201598805791674973926203520420467352719357280518071164617613599388536482051246847448197589627817427944148610112162330295356938871542832448821183564776199849171892386723434463478361047465346103808499753162307978098914293987676718265543050637997838489706017855388899591049461654047362593675491524053779507481453577273940939313928378403144492211120070855829372310435066279254455868381614688190647116642929381339523991632512829622534659854220705717723257323872455934232003834956407873803071918557854226521817704930299738792464338171792797735842103037580037849951946432834921813990779283995991192033632258894498187476644311935493383709287797938772559862885252597456448699193398332120060421192896734649142209360029226356133208697511322370932904046718629387682308827273060005863508398292847893504760004861824130279965217752024548101321773329724846978329966075563081869446758574214048343123212051527680495971679389750986870095171615176413540855827476768742185293171892972613258659223902030611909229155890631418402262163716446912367533493950560946818545051476205536607028217967971525473764092447781974371336911052478982801401373395684477350698196672136284878148088540999953398207495141451196707494601899485989241448462069060960139953642936427543774435158112100581923263027823985064848536731038831785301455488660784778875793495606193231443846484240363923009875301816136716061586166690582326080285736485992229292919652343504165846158340162381260770391748920734522504067410007625547121454020303948947384944843343023948950695629553362726597672142363589879005746286658155743030289458860543986061461256524580458320445729099984969349357180137775003391093907028929750636456524114562048693088415489154956341263960431563817136740313581882438928205866332010332561754563586688394776879726269089117384333854615477648925775930657104340685887086488395404420400289149548914762763712150523611413551114624983906284928398356874015209080225698475466222794264705089489263900659508238617574206577714982825435020262801478426246128329627932849208328059009297987882019884262643383049337551853842393388665715143445542202787673446285053701891121060507683931498030704902730852246063486034287413984944135431312156408129481615826758700182269014218325127927180783528278187825757262816171131636584469181514812118780785504815436676219676243993646411495735953904213343477710850443472621166474109534262252527197085255491900194008288455393694715867832443980205077146033850855837257556660419992339575225742365752947527163015097719552636741910102925981715621018292774937953408672486335173191258341981437506358034472070457943944923691619808782778055045421581079934826397286905415338425041435151033867405426456216676758095247905322728094533270169285664110880305144599303420127617591386233325748299758759021727615865286263735877677581662915189477095040040403123849122231318042899118303139494894633649186253837931444762056246040310423322027402353109112488303343111542539167125069817569404980427211751890356206519109749897027765652030355617773543064009692708428232394987098767861506171118435439984394350162101135394253310501151751693633253354586098400623969530917530813958392076101449782149976768269015509328135449390079779664005204304057514420442146607077871568421247795939284637483014383981283546971577972229749890720555927844577619229575733399051624263312845097241701209684440600923290574028124584932557471485288336786055526756584208690307234267408964299830709273823055636528759330725357076202140380299642264216706737969674520633352118917439282685768713117254429590735393076312410246033651444929611309924190834684414165885389540837433943410518054136226754008820552355341038004021729347728760733768585460871371857386837583022403470407670420964232219467889265772108275958847444097092345316682782180510280894978845020818410429060318768792650059097313698785772315582033829975524055768165468377121209367264213709058856828879260061487938585415354545490598553930901964177984814672506771224352262836189632386847712342668996498824236444040462853319934075303563231558216933542783500760500973056149819158776602587811863838045905794616288064134747131659911436183652584903778848531718157108609180440696057217627736611823924859909617081986934275985671350854622762598305333799858010086532358298571324692985739474866366377716097857053324832662833060973947572903948751064952587506656628537099037409859539382950905503415403189726611531600047188266734773092590502157105949431015756727415195570268865609268917702035973362024715200649772582097238008247181189618852059235137522850606256796606461960759448221958032539497704464726900533936860955357214387724748221817826133756260631939514524312003803233686849052190165560097768332688962758235026634298103930773375154598181919561048622063882464589093306378004874839106232590225222089762759658405175131907125465978019319934937435626333929307088656373518073511691187668701411090459652060880291186882687014624064454919593543850007796371780916610420308844919289864593398116101962471790414842234586431823605441257920515814940280403632670723418191493152884548431481003176743148960376063855540034258973069778567176012102792257557036127295566753988051326427021421279162204746478620423548439605184588422834323103586993328359222787635053118219066977984373664506313180331022755622893926723794967950199184989927573535675338718262935730128136683479533312973983102818783963315106717315061039277493116369465173672333993018229905498741847229297792354562712483158841200461445358575625004061089030921558353475043519101705612265709166971313939457976385418538135328654243329995262132162071848265541089938384210122422677011003536492445484334176988573795664738884061303380967077921519021707848196017029293906754586793353281636645340393053997553041036942745951819920182037962289695297325567389718891543314999006492202986124240244924834867017303396856496090234973947137704372546283122071703479135062553688110940622961531134821564604911126234985525353457665742698282714517063349009329691601256966184792153074568892598365462034484573250389416826153294548227842030225964727504580300410057974687829132540568720331596993723280881460258030408869546569583732209103808391200482427255625483402785326136905122335382113806753290166110451334405239984508465629670224946281852051787289465473484324119342416119979438997439880394885915218641681527952006486565107674030625354095737671334616360708147681037914034242419329918736860707210094765055673944891432877182547801219412332133474651824184994119043643425745985068461864598116379278596125951940036791369187352458323808391411075931471828479468920993328063444267471302849989343494153114256258794220420568054093622628565882136436560243445160994011170084765212189468885388554153502467078677998111435714638954870387782157705252637217825922466584406171419923560907908128736424160223812498763979741580894809242887535843709809229410240831530436118805318751408666563919274440788091123939994385748659100939053328483136219532937072268353792112085763333883819661427520213624497683230259711269825439670450278950979443137173103078808372064990688981116854562153198414435375846658825920715058640088180852072291717174234747533214150087204967782673485008436465623885502525689953139518202962188142196083200709502150386240844329959454514774083158256545004163229676476701188250580773819368113867944267801382964789591980683959462102629780833263909815236796113807625727087249609049108718076826092134808221143949596003331096704784207497952140930645570439360302496499040191180907232719374879986571965597776096902479707950009927139671036725757586495582025931850124955592668813901939407625822174582224643929028196441182523127724956580161184174748183133784495490960600245738047663146648056326589222828782463793052217039779048159142656679751862662189523108902855773323544258765168265388313082015217327363889788263146970553209012673437233239384331822083763636603516440970331909799703211889580009272138656341769805866411368265470481800553404926024034282219599743100678103862266743497757491580855273480319078855877913993598993430124941429936527086796953146396566847841821144564017382322055987842049709590798536201898860498514566197001919160410013087807750706279282109611437577728048294962655377582174904245121594005912844122362432544189601142081424920380692223034164413187086400972431418161125439975175886212160872440063737574113708882662290986080277395037561991735720763096888704672138692706748526754865941319145807063288443871587971926051382758196858573272255912361936611272812385424173353141142743210890592706217336400133412444152946377993820481671465898291760648171689457646251609135058748919855447612625819837416955813528420051849758160827450840124054653942394095021276471116868531528914389039962336517190236925971848756555013137221316195286537446232499793711889145877297663139309173002293796868042756679889586504751181378978826639903382082150789146425906617048648547965032056202677913123020141499223256023583045407847683209266152117195972878182912671362505565060045837642484563602760148747684245584901230383648895593249145057538243193455410992597975280202974606570024788988870033137713170048898669574676515532437146540106442254722920761062602218093396146473736258921553966454119115825863767646909207686145175286969361371509952648721498456299132807088061736506861017886609480571829676481208740497696231417751689735487014257656796716321701982698465786398583746601558279533904722053299292979176124564342581248661807274874837413311374070626444417664354886607228109409794967289495954555673210829524376616265627843436437109133941329842929737726605494798433752184809359300777000648681156819684982927015380142631211210412510491470293411519372898201300573415995198058539316402877918223077118366013546231035223636692106385751141573091521695389027987390238031110183331531868075661478765163506423374862017055757774951147552526748926141758981934353193801510356448056146302193651356504493872803510552909141931660858113939424760972682038946584985290493179560045757958195477344176143230365103642365264360934991708075721736149135280455357263697670866799926847819794883219759767197162232982712749917037446205681474267599951349157349929798736343789822728361587589024385181844910895550491466774066988278998138269183256953140825750882440599836215808246322545749531399332798656184976941550958083528861209711654311074849451827706794056168611510954422987869265901042116573957774960837875108299481898839863905474334247756350366617742620527284960288191079197354658336254374735057461739573599263335082771734561921818282790476484902558858492360770285808144414365693460799941169427339471847267179090791287946704690899679628340142075574051787476733370112511119076453555412419573451327181111298697933435156887980937056645713450248799554853235866505098933774248321380808269813259709209319199263251388721005124403244523060558832335002044984603884190179423814690503875387706570743986388570353546701197985231725666405064083730592318310316622824011437270690280831515441198535851129078847966309600936742499464127701734940653838684255142654889072574807502633393200487297628489337771388364678653931473925297623457262380240592040705143114159118735270338872931740073537405533353866878403364403501077178513169625421660362445388609439478242968784994116203122169495024695612048051242691400120924320467575104556169822279933183850866700899094039574051944153731068461614097100706430313798053590266895687030968031262071937338589163460200391913211515827609617166722714714649539221094619104339781708473917078320279942557829495999604639595282368467346399156921317901145787194062309500078994304580320719073727266240670827782439493493709073779378040047918688297776679361709791641786792689376979740429421740730538880511850165490669183079269322996525622407308464594592545215528270823598366426351117486121973148488406041017993026216492852130245602418082359222594325891742174476111675491244092813428663553048413980941257379366624436344364071915335754640590332287527875632096782589574147408884781881327482201137294994062400796726015713247024428634166220746617092529475741364861804685888297381337983374637774854227091675043987256209717834418217879620626640280920844153311378731130354122697806077419313860678714602886253469816603229696662846813525549842918997136327227674068074868309143600701105927863563700888250426674029980317567319984604159082242899918857567137943602718248032551720845889565145468436445757302516129002667830524246183473366224537967950406353066049927875585413713168797134095689230636042051460013174426154989293174758194176705720053780979648182137575730976962984772101100950931759109638011613711171137744534841809458664742562843969049876826285214536624116399552582497355302082535315132305124685352380356588341694696874904346619896800567436156738715839236118751308272983437774261059805509323007195002662419928883901294001489636674895660612226294609802395410321352132949522766491527350227653420717881572380588993196885043353650870163514271936417187942773270235882872051760235239513627399800751032485486316157376547111800940310045729753041790686849223695379170362493805395413097726077992705803924235891306218645898983760389070170043569142385598503910509530640118851039735538841298365395651179836741147380216065569824536889952541564136396164442950844244766043365297949860681040080913850686125850914253499066500531249050259505540243257896303328725235957003027939740563047250428072190268307531056341490081519371870034420960725166447630179763098717464347783905258080571375497198361404132781228403093749179165203219668584442249077750209197441698538521229060803355420443966411423684280472430776793907525558136674572275030279881952158261521580090380229261095337520789040187836271339661009065907766160094714629921191539203407423192328080155679123930298710188314432091597030024438861787588064930573152496305309527342843888586821819594595129557606712555068216709033266860740645699262844023932650550120623091109339349840652806407121027958748153633798245553121274822259510824694818696826558520313410812096139750950128244916278059849920171318421502845319276545486408580794885219101527369961572379856339559333535789860827551745312780608230584745545421112060526063092104016959974483887417108357582200126411506616481107806195308367548408936621791960475415231479894200453439763002693675338798039727550262866246273163817756741281718850723059045855120834062817559776840745244531876816866034691714481916771901438139325340888969260613249558773621137229037448787680130681918091283499019924871492834378493815095622147180349939945447110058962763958008975017569395850370876239385135583447678627766467828703668713653241910493815635944514233398716536935563005780274410365824244642940122640386669279945015972567176256529497655498301443617277264307225840790618799403324474359421206300955481071037925670142252030256700149540358514710722943127403129919783917938445739168420778988428776363697994829088555526434310996948073212899912292045696748392299844560067333949640253253578860605866900919866808480919189358207063165986881758308401714112004540907768136144012669620193739350239624310801863646391255294986679994065429135322716088657517127466397564749353892178339037072997899484182720957128370256015542030538785247076274938454045120918860593397543789972914468694668445308788741247676243322527491991169769237641851213666007002860821030698591556664650910374330226752341875612643674656562959761552954291932200980967518308869653228162392161483668691373580428563249725812304575771194639565332982697908024394532703903066304686715279853833477882232795007704463594359081245498090216921101729036763358635488851377440819993844217168168688841742818619657500146730815819726322428967591087150793192199646640207961185730469951922725463581385016229222056400588255368745903668287222644373032678058615965036394898878670673073114267673376769199045614251063199609217918349211256043809229414652621822847541811517700131933287963428084669174640001129884061907002956465909610264602554019192369873109771684415537323152145730242375510842657909882880409129279119093491371536795029327553954883357029965658314342081705763028230364725186794240769797822154413630092957059767720524708945143362562121044762637179816553174302395275104091441555965786596207161663140000376030111628255769047016927861598778674877194443307710189281225581480464486783626607006725038880932406447827179922023790070884260574139265809300969793994261766152489220483671279487679645691719378307837793216912093454118028386303278021269236807894545462032420749896064032189107388292108151812881615341080796101285566744606572579262097209481878694037011459188768847911321280830038438983079990908720842834802225665654474494367343754456062047188883322039492093953120191131385357524572598917451854466529716825846906498607125449396893950241652677895977291876150524545179122225860026735713701685448895286367369970333481858944842558981102378580915715996033603542802313648898844444127185443131760879041838204303531943038512147739074677409465602157257521338983715108944373187047973391106702679237323982913175358423186098015639464538184499816731384992296348225693202363190226806980897185206909964913338422887474210326951475169016842453086064648302433611793733185066893931735656098685201876520397718611630613476077929843650958079000822226783659771740768382683988708274415898596078152494592024467207735521405266961342565502064212718461293450664468273116791173826352488039365740553983358965906519407982491747703464400285159323755992416967745834906617864264348333893740940212477424183760149970168506261172090303335347936305454479162711863571118070569244258164377560721065671506407466860834274883035671968721563509415162101516532178483143771877564685250811816296619644163169972247291983442566851894066303912136422256578088923778941523519894704933044876705729496978906436995012596800958031252699780938258395068874101841871200718729817666655585950783370988574773909828437206865418595628907523042411136742443870387084935830123357427734649736144946386275416443650988231102420156263159801442387417846016955203709246618036695110554436602105762903055512995529307276515246947235075698330391144216841778659768996202505301558216868710403989212553199113765668182639006751701557641748095508069652837464694863528469870489056711801651529353800743724885711545611838802680785128716942757500812020450302747498586876010949843509374299625655042276312760709083250948932921157073734285376785204198739576002202833916785092301684001908256472328678547546955525468346548356635637906910684858787026293134272564595624314375964121895664746618236754407914901903681223450069261045719886744996703538966766842857538320603573460120365353717932052136098048941831185835475952385336867201882320146836533271084060510403288302925098316497365034661649362965058092040104538916776383488053847912616630507826942354383615022832644316783495808320857302842604610206569443069705097889677656853040948013289596447029970618692639523993681301058771634665284857668762163179855064229768935317811569105973429030324404191857861944497692823632090980898345856634316572036703068781637092151000636899871843901884409701583595057390096561212894019692643577463385024003554898402983391320300972481638402430369395823142496124761924110031456826401852846339863666949535588778493973732529908251128479556707366719117929254668427088459177366609876701765913926020751845754557811236128526099139830154126090828713010781430408866278023423068806959408608911021504036057545633639186757528209297017399550761159572695508503737320731294502761795491021079191072114655218056268414560593654224190409308359073186743549443502153914489957922327604450311612837004223580671424138864685046568240520892246321016399091304580370638534909776342223107386449132074547927096022525338013065067919527359932732241852456646160694563206139288944732314421732629138103631764841366418897528816898409604749895423340545118601957365385571598227747317741271371185677108455346537197255434263717634104747205693708878401859894376372085607835948815224770863953804261530133133850616539284451125588105819335124406754046973004997603330458538116332593234651750435818632321391986041322921445672138346279302551850898834568272331113281449347954595305630253573685011129738817107717162198399191167432662509013915323407249594579392752973469629180078323544509654417030305017737094514771506951791756432876137003988522386088455976908100314183805008678905892768258678452141404593274857532603104420404806089430376716923531270318380197413992123685542140304958390003091983819724842066013198592644011671306488723496367361234004268977690509462272226227480091261067303201381062124902028787369741662299692044482432302941475460711357988113716034709339291893840457262200974479662293395643136690523935657028630205834453567306715341704930375633468096278132726974470645892247736205704978885486038201097414946514627692039311133038395528859912590212985453513779646227074974233440869832949466202735027434336995178871854225343951502856895022018809938136425822589172464834447852933812641303091683187988922621261911582080597023157527148067101784583885811526374645588050980017360112426640640252399902594534974083962282161496457256002823657591493532249596028667160825342630427554687400144821008204553100810600067634713578634356502681466941527824835409835033223933941954451272134698760128305318311344286172497670803072232601433447143177625337849983208014504594005858041396482749602576908029537497545441857815979367673550352048586198434382064010905492097671032049891232198194437410227451449559655861847992662806725295815208415178495096627208051321309300888410932833438528304118159762648954273202067882818961343810623627323530406555440893057193036468080395923542813142341086452383977128276375013328642230031681960029708585346065667857893757588879502065738239535359638515814866018069142433530039329161443139333210051309338375466378573679080092113331023121090519419388156208617208775952142453519720855927504728846361321507829104839969612023530283619665537739818642417767393827606479045848396982563309514589485598124865485226859522821328570950648809293683769011695229179929405683788297567999983316380721323110512702531176947392732087888613899266113157411794496791850369758315663545612448763706366234673726581994137925861596845204025861622224998578250913330300029165727307083854327325037771464142435367197319769554738193201667848016056515357000088774034791392477645367524175346922769518051894066016999418321981666506399511608822295409555551423797106021308149024901105846103966004697765999337408650818892813465682586961357148068164671983333532934534146157611971860643435119511378685718539042940032944290781823556566282498819413824116129398558398321468375209639308914822768194822392079833946834259013950991386813307950261749617797540348294115398376160953011223973023694363242687269647793024049045634461162563417815198112459947054654245228277731447629029895001271124323256132552615609894686740855823710533365145444265384577079955145224210127922999638558424580665327877511174257374949328726135820584431512871243152448468538835759231995059503040036048412363882965050713322842110170031293688824777150882123774301537568081783510075456677060705604598585046177517391105902920786950379431080290916405002970051981394013912687222514597651679871815334558814751238999463360168556688806655085706268498205630345875430462005445507814697493174967053284360805193605644957977636825013156350934979428457500440314758501224036540922065013473939236356925515968644480156204682047912159993873466822119915503409642306356379132128753928128540891575882387469656664125282771502034111320506195820157631199668436511491089398560040938690008978283689166120030748410986969419244875418811659393395733491151898548867054055022755981184454734144897927071388943267122805305583895668911075146263124431172886543646185074258076598354055363433301341357233959847633685314821606476289444762196357621636821588993076145600752486037465829218570834599112220840215138057751243256537670246825585482103909165263915836517644162598369290185971526258693542055942271510515846171670586490732770293200320020623719628967571332204628332134110426869834780999816146471785689624507081226482229032296401304456091867075846220522139548175806291180880621414758738686031664028310858934737736449967824778710854598152140258178052350122477824909149466735461882405844265893432412900492479252988441033997941081750217567709189627588374784133956045313969038251278226014226408189200809692569415589625695163595798598613342811707165829504614769270817767350114121069086151535869455774095165992542636983479600950796235757891769504604657871237703968555097096068665515897941899645031333525578656709383805288891257165360458876260515580894300987657490741954514314430278190990385339313489006391169575739905432831245408143122869367954967850001536431617587365037850550970351149478992587237730531946683315961940508721443499892675957318200725811412993311223431041764892644321903435657850227443071353080680859243136262805368664874554932298585849588927952352722155860714127423495690132273766578812331894007571609085273248605134406570431479785422721999853301352023065177899037578843986658784953384792646756160577684984386465861143312410627529551402243027300974883262620936330389626770415924251714435122262381486679514380643672025699707989819967521271641484959131545408325596284362211780220647327347985573886699111034948811917323747239626313002249169274892254599021060665669321627892151346268524506846624297623801095677273032125182881866886298106785546686612767328432110134468502183482498562483612579600069826980735133551615909265385292443782043219560446360633056112762148673034745591970493967054605881006357735175976990831258393922930055448771412722080711885650670947454449060869790357708404854609720529296464635290294478658589501026106018337049942313778679513597003178763994071660606604558443828671748832381561390862844919230938322548823428754955178797299544009538065620393357045361145776152580286411320678831056841014097357079258083248068833436019790834758515808758850792536448086000365157311075519513099684673348132268078477251820294749422910866912996057689676607943764550695875158434811217965535574067099156070049996449829944370786392623563162197105414367889068530195502489536941258891161736322754856991772276967836229142184661840768420184075060045970667945531627726563621028167115407317519379191106926180718724226590678167169114561431457463457774247939403001524301550811469767894746761290423379253070355642422378521775766460959565703028247854222262975251417002626968920283239694040407906274801234262304205112655148097300767883888785617303086540541390196120172992479574430577639681512679205883847386937066364456431560269937939295708600431991940244082333473377680957596229906116087003628949811525212309236749957790659659455493621341156465769422429868717237005941841346942694998725062267355265929977292976897067033865531990260291398889804239021069162234211232649263204707591098754813993275685925799143043804556716727487634639509435764404123011251667909586676396123764591432853630632294536739063595838526137362619540576887795281089921174477765545404124119640446081798683936179168773589806150219799952296177814448409685618537619808840996064384283211540131027487861580921545827860244098561951404191643834971436509607665763389585598257312929108855015285973479770302441523374481635911900487041389986610780283731273954097790628633398716327126537527429710212898902090313015983324853191109463230932645353664570073129425686300937197135665107938565308051108094446465149507184347034132547086048078063657983367704387955639117354083609398289488349085822134391521490312399218326747843964046889031408608717955148037959526038442518407648932592372155702576871787295007515103700990489762212780426320520467543498531460949437733713653690221848805799838670801869797259360486832519209528046175244556231033239343922260171870433969816738807656071407734234305150351167584477112095060746951885920322247283172781735841106344265116548080730024235376216035827565372689277126809353900730252710872729768086570017757137548377026317366111563891874485777126985870905674604193577023996504416720745428173187629103396273510334079313896837830483226569133435786912492074110033020915316089334717130783969069190650376379754218260179590206550948833885603114897233935227771240887509586653099091797134107277728103319707003756084859851441925059437276219952561451113929998735357463348933298326093844926520772806215581076156502734226625149386806963193029215525711989445152867985540830711477715653782285517802729705682986730857809101447267608984845591869604486235245079000898910951333128243903503695353323170809364952188033583057213966784803452181574561722969529255090567212426424617876482629772410760421670538707524257749834477464807247104520195589104427281950724333552999066756608777127434214164026384879665287996404999354025645459320150861127518792008022009060178485542244451495520003367668240429015803850538977981766675709302489420582228718251403375697242559234970960008669035457520858093575374369568983787374137629473152004911396895404823137200501679223604284442277266226535760864145976864577131124735237362107003020830392917914669229199475622123256544006618964063998920128442001077687941783549031439836478001262575751390095078231667162146560000869792811191352979899894586266893447474134857684472567041659324926431000765026778237974550225630347742412254640731610964454552691830914159416240665271100441063998972703296555285648892180361062616720691764309617361740139830694173885409549963292652069330029876959352335284311201214940676060696911284633401804727827447217376640901424789892689873732876758635502738870517103726330120675628041525017818286302762160329075155543975940690787042654039247330227873292020681041098489526298562186139663265075004731179385490698887031947910786338743367565977066960104193745637449838635094897181232929590296430136812523531208606772581586974153124097057915586255531529807495831149649772582468142501047602371868177192412406218344636229369836964601918936692009116740521147694913267911882613854869757473826797274250655793098674140879203400940495255655765112763039365457144243372778512111347947342267465904432884276389691775305101658485393722501189583348537553137264342689664911199751472368568352965546603929937338125772347516338457836069246943950925447884588508535794380782318060994449220914564857148704484096840021572653947344299133179410760662230672395615105691113083210824077478892839671748535682354719249332803350222895936552358792782445989030458081907053878233970529000819650044673863938661206854731890869192817476315502303968114833365259467631586479485985831919448668316705781359333922098469680761738871215053750303037548524266846588229225218700164486484514242826797288684214086166837406409440025179151531980124263159674071462168868168209332631439153666097801951260852736934603869638523392524791720039129374313795492579801954782169199897002236524220901280763442560282222739918784398744099144041515495106377332224988557526734754018224043968216761458826561456268136460367633326453204385843642439905780554788871191477989463933763727573284501927553949125561629640713539412424692016961180729264832650182193447223230040414067881163529571936551312319083613094364458261412063779086134978423865534898765637141544900363753727565106307799406034845931019164655093852715863939256820966203922260619671945101985267280368856368824829901126620085183636872027264713013227619373619839536474926864923795903665457597962321601922446598152985824756185539383376018983079079375911815511887737085238062239531961585697456256509690302007594689350680380444939304916038119169051028235434419680811243053317177639533187023394388358722755932501979751328816035951765430996967655992477117095750854865639879199917863524355029528665896852442894346628559808048507640921180271254323187309446660685131871679725318656747481902928784394078015751441644744829891591413454762909570804744494773687631097734591628295338705897503185606874732188381012217007358450487467445413439294075364602174941322125373679270861438550223929307776599823079809641869439088583291981596211542195831172250375204877005604271725251019867831290314369532235513952818102889011210297876273198618670388574755807963687669736292175016775921579224073952031323825880551772005253229783389286778206946545305216036099271268095453429077839048600378340837479336813109499386830321470618796805872416344513260306542867134109066312633057752117815100031251312292699031942937581344409686678737641665377994423846456005757104860744921854279542654817531189830516586412635035589532862008818045500880825752110557593233260203774173703498029082835030793780934886844392031356228526855883432988475221870606461882800602157592353920003680932788714313656046426626034369696042992687882473158530577535429580027902809181021330416258752324257218276480205460549408090113870349839113844340834316367012123997412345855049043760768625553246138619852773785232856791216922465980523968127296295910044475726611611384783920771966636879749715474242374379608784344710342869570732282207610445212047138583757566687691199286669055736827580600190318375763770869372749779797452784949080212201142178002553426059202096632235619144639072016765720022794269469022907521960140507103213542105113341840745983049446359975890060368112044747905469667919027799663080972535921766807361554397684346327801421446809699987367667596598513008566648783027722093016905935807656118229515844210043860852469392773168876593653948578131028569196474208195482577796711836075560366473399813819204687760874100781728584392803183587441930220917207158852996698684418862808479951610192959538825367070000755843071379919551491216057954653899827476120897729713352351280097371808220178446893013166642753740118369415099998462438233429232276809912864984363279709763138969364204409628155529675982413557301468445884733089698571729790796725588717433686019119844480031531922303705339492691060098875479570271456062722284330232458799520552993866831627584308288387747116125794618963653753659475537103531887435219046041746335503138373615956225473299674701844453427685150256078017038413296020001293084581677379812257684631230543691561253979805120760155790990486437804915357552560877910351595885983378362418641934680339674975743202325428354919967425174657794901694029394131219826201099945212617447188161439054669709935105288011533236099763332942439463426319932400666409965034596830166328217366284878893219076802978991663520233176738545443128017902530448143881799228565071927935992283208301028189266571748976319949778851842820610552485151842261277549743607457949238508058781394219506577800319316471379074567867749064212885493559001611284774495536777828697946977084787994315716875794647285682720534999467957330275497840704481458820824656312484677101449555373972497448537345815645999707589897270805920979042316041410421859339581960698968048515739210430710696049929522729086252832083307767513109784177798541180035407546670613669052901380296589243801524162432123283436664725372770505687404135024062158909368013759614714802109884040658441022309759532504733234174255283805689244404714920629847273951070887085529041353454354714555080686789662447321285532758604785218902112333564797291387659333405399069557103142273034953099910971529612872351371753259847801391167015273296608664776659052944897354949885507410287381002868926560500056793835699741311735312460659760082508107814008265285135476756799184767629320580934040791951406717692757758262848311987029446170323305009095290117701757994127300301629324436502904295516980594414719470279051439967658453265350464107968686062825239059500165527994385751282767234970985268890009351834660406243134297047556827612620260448579066539526304174209814602823629563516990293130425191555307498469214056342704796545897094110601472867555799310335226217215377748779028342582230657335357321871135376944300004272572218644611560442071186556156062593447903554107828417276087765306138443505867245428697349264429394771930125732086478008924305172668798509801814323126211581217527008864648859270909348669179195458026005683702009782515594551126425732555406230656164181763012185865036510109601939303192830059188822926717724077320747214848237526183269367837515792138162827301250579910823857489372332650996986119309037975699260192836768609944959040278885292222653449570983538742931649981239480028034489525200570075565330680628569786310392962282978638507882851744166375684057832778580379274974585539442224359543167665155963958775059747323433392207756485279265998553960226002569878870108113614299208550865729850716824890434327079197527709316931499744032692147247452844206199191939928217030595486933057853751532728697744712658074496561329765791321759725779753405528161193424711582766269612999620352175583609100985736858244391682634817596807915576578396288054268147056054177045746251665819409475815781492056875958325221617806992417748044584616282038281050798177000092823970824359981407162385876319175546393734677393729753734444811921440844088056036599589382615733181598857946737460012416697347746004552673356284062582079320671836955102685023470882313905054380406808246489210209303309305288738496096919201663442976482816448115107700639222811144488770595808563778188372069935924616865726928791868607217491492648227209016513236213853665150842090436280212442437488768296075941999198286793767992781233441549932478825036492656898831517888063364749625916191535503668539623627901792267467273714378235810948102418590964801149602435755577951466161813108260767203295670836301450578402642777061803837263112231108704410250825995194372046982975619577219451988626346716177688991742383311602582495023984379304530274372049824205962286303995597527530606379607665616156044794413241474604956267644241447582435800904686017407065305002152896853973158793709653556459399973227139685983431659315063357231187580182881497164160464614421432444168411254004871570931835164570595816400589380870513922074701142134510781266255677375121354144639646504698780438683351174973021445565190277962583237747508385438735175916216834880465652312600097693233026956660677746402083532153250785244861588945359395118699183309670825739797734455764856893311684875580587518405967857387412759381582546815288336601642065418193235575591218526516175979481769186690727391244357175176169083809770767280717097292457902576602755552563767953118210787390876962899801233315281253135125104710438890439007156788055011085151958632516561149717703637818973323794704429278142423823440224052830455084619163902501738615825103003595289120659303195539472918568720069034018031744854339329297523353475964446703874586777275764724885747351111577962690202369656326801484315292490108467244028466169540619244606177589619066400469109285766532666340112246108277174617791732704599120039530822121262745131939687822310708309199213433882947355216917648662347615317808135667709440765801362075264517694599346748822875176199350299664509850442252324676571934925208499095748686824772300138467800362624420812131561009322317242202102402748955359696650788233397739202049241037719509537062919284512257636252657737873131913306627479256261777047220064405309759456853173209997350082275308830356489935869867507085832145024652008838253115832291085350138890416130572814046373947685796985273909152349665904403696332156626163983007281806457610056211363228297226849073166188034027455421712423944122731915425871211910430968169323492319267493733801466382766634418489338566749003594735190553626804251017101939031578191460678060391045368004242159980670528296420072869674536145928377521885765207419129418436217613801879253093392979262424805334118690160539441829002453428056413854253295787132460843741998307356118516767202218693952866304810057372573223799739760765261639271406750313273158950527819030598015108461762485279126198314658471549187948370016464732618550101975271999461064191121386638738806991599546538969895207596119191471175427809928862738141112706853983261904297364355418508601763860889325336089195237089337714664668898671348644881694923226792276185636473982542675907550387706439674510249576325123834502517285327248037085121993490332598734864215986184300817519408377702602013653341079062752789133351776208416964485481127296464565184642800430475798741766881097230821547586805753886518228428351653655489012000579135230943117935485222513149108822082479040687479501677383295176281665317635173957420281438654667508030530614060969120380146706123082661011440920632489175601436255413693801525307965320117613510244514503475420797215391295361717721363460362949057693291932879535719127612846651751174894933848297525850958610637786317599972307469280667293171081020494298038160800046349814424134128924372977164196428578060284645380786768973623786376189087671828487392309823101791920931777426461369022149366570271284473286829411742875633075204715900812914246524797811400000595243778613699702055463145644008441752593247217494797035459049704215584471700765685245049026993315668876883391728883695584784846430503656655647403276165182735392813609876280310126591748658932168779327611483324145910844030920514138653609626820674601132743429037207070660478565393393680642125577544883116821051451746616350632294254542306421866384655503450790957773165643283275876844584707746010376120509316043822131032702947132819278688452716484256057052772653813730011069456318191916944259710023310378102516501880717721894378345944050110081838658115131329398105695058035650005338189171255783246378338936313368266013610159331879456557785363555953374726246541598969638242218905298347310134449272291932117531838920183368227535218599824347689001305805688309253059739317309177699017136136321272439411476652138545187697788855688190128713787024343566805867732284514405246344438999047622170656941884426809126959713474344538455868663264854446983741314673782394026477389343739755264120157380535268804315463164589890301629645253598390666605191117618568124599864435070096074497052233099684197021842571886809749714288412765522498597368421429950685897921103320865370498253311373755355511836978293349442000769711064653205983365932895633770171289393938479946727638027785869929429890459446206477847551277249496836055423698993142694973403636349682802723760201595382580474017641078977668781626273481188785581371950974548858156931794765195187076798353141335440981266357205379675615161012149993300425413211715264719422128511895921658790870180081501626300387929794241898061659097862363648460669326692203941365854062184577836379682873354793691740817115772495158876510642678235492056239592819597625234511393987164185039516662849122356845492254304706805964465468269757962244123379457228040258823136299844934586144961311762083211695877214620202875876835983896517036701906113651075145987692488341496346135636328525235066766781830332590053078257174733277822443907093450642755541528240128557438291779980451695446364640482243901719380982748305653592991431935125641195962688791664341399357999535121457580958593931227382373845676731867676271721476593088099269365222275882846661002948087193788965181226103606057129674119326980047940432182191618484857504462380444315360786456145198374373331158152966919175233545054564782970074827227142073043807468285388487118315778455894464024414447176921471394524027251276202694090805773181242028223216520994115091008931949082825871617278841987050689180523883615085403508079251959444994306049360476079002648358580048744606133807962395571420586857567257825989567039710565584270308627404908412295821576063842918766638539296087705631193116087134569150118242531765613729349961882673789472550353093279461619055371202626909154985726673090504735454277040622802429528155862224155154294901461654439032263211925263118413600942611780517474902454507786402203504518714919092703590370040642371477605999650799520133804666817124303892893582784718563128922267289190491408535828404472632173244771861884420034744641319575430786285242233202538057114503128449917355512550612131285003748019631237583106812749975646722571545669443361646347628586887105864890231517494482538687669361856651042884109292920389641078772202580117735337559794920728496867733800040652311177086967022355938728131962493681034662564286897216861307841878285551613306088464582308958555506920434024626419375384022219973297713579996436105157824597371473163366414106356159339647143333579087787328941995271233609957764677447259407379923419545483541571143187518519326661140138032067938625064052771011092284044248308890082079127426946504317358476710364953889801715954790568794699025228970160819590268947638584163243680289417151247352170544005741548730403907939567906495147214488775210507261985391555180016455095090663503755499197668579958938714239027525667427664066844158463675125542649878837299930745840825520037738731504828575685275853092431827978920717618932969940487528239895285620025107293107491348021753714824383288595137110081223621743406492306453433264446211712532547620011399190119048497553658410265078768532691761643887122209927304071898270132272709459683744796724692219108055431975569307413666621902758386081564071130111106205924438880703967511728213957887000654884512779488195417037266763112396088241033995187650904633075636501405791769220302210501319198368504658425956791278778042795213574936134858630666665050220019550087331916368481976337644169239720391440286829273776420182342626768140228356860573367791424240544554209969398404654666219103878215553035935386008465687845026947517298687536301527073922585294704523991110818509282487408515533700575456087738112750450143117092430529724437588441147163918530079706607969785014104288952525328066682726421642276765043071792090752122249713193475058758754220779912875804141640711311078795149864196326623713500915021391560859897031717760766010696068602813209562327686130121022829513132916147509117769087751510640164117596864249327808202432190516150189497031175980906580148073908848105533410737941311290034777008738135029043690672363567485189430539797270359316164535817710067711279124639085547366334093514997084471054286762426728001759180256973196869792152620156798307457726888262717771013622701381987972254085511801187875953715213963321134226886130838793919403156107487148257735248083871429423788787557630825833382013280278211419824355810280192503984504213760265458827750578311501383402191068006732330101650707184669018269584897288188982612910649912189966716081337923412916949436480420613700407532195536615538678320781352893104147021626772406725180126113383350799481498272969636777354078323978759829078273869988323293956000701124635505400807794954030240413928646069984188921941007367870970687153297941921555027543445510490237458584989774006645331579519625953773546858172572166509831768504601104309575174875908243032246667136371940698854539058254561935496408309350555446508621652553390315592286158052276655286003020655484524196049053227974870913675976487207625915149936493969451650175906020374934399835268783456413121925332930067188614400699512927856671549858210990219521267409654068348304236869316687298601400814716980208874130842680679048555031828660585158420814121944984420194735411996394375298504119949330943487283831159051841080792562707318557600118237853000076052830744140231428165318784903859313725538760230340939941992345804126267931765987572048554039334379996427228948511293503949185412276672013057962955333204872524499234615469835396920857454032288809126525024054759692668109479854729002142889351358072499643413323732971636001708048030798141403516984794550889303577946757150105095766140123853998140336216026357427774860161979951866721842245472625599572521574442460285215727390654189699402023745105484735390895288430933739736879028799468786033937808040522869130339856840537833713260017833881736848888194579661241748059727854706103469288159983143267547777483682317846875489114079518287978000923450695418823537721192640392955053938695849661145124407211969783176539004927476349849537839283353988531814551167964177888986721707780839810338656252413032690880781693303731716690338545332345263469708459978026785783964714356200748513791787602014280421473281792211429650514679069147188000026033683780876733096492850660003042574529628011785067277558773904507273361786129605587679289936759918855666761830812537003246490246313052371515026215588546202416270990854789619195035059910495737947734751050080193995214987137342726600757226474296024042879775734628135337279061629226923996973183609141402830869690350847032420402085220397235164181534902315833878888949105855582100727365057394161845184360594103903792865591736195857331136663349204801620232095407381094721226917818455989416392995219538330683442891963328192372703568204858161631095374547382637545418572218362205191030705563072457098015320015236969007560280361130502055974691380964291345428946860666561585353139283040902135491306428233403755023487638309740283104371148024823165322079621519783832187075879194894928370025167808231618172177705146962232676900446144083452564033137686703904151887204994182991737931200368731146402617766721741184362684601438514950628242857560099800464471425635663202617571176443191153430582243625331261613815577338235808069317069680617297347139533494565434747862563024338303513349561925115159214179945225034298441920622976754947274906211378000569117893546100312420280056975019037417678985730605027462673332630997782772618727971561548135690918596204051148691487433815966860714415131725379084257961954129530021321840328870633018023226984962053239914353494213263113974914413415821945377990934171007328891240818993940751427661816879937541259436282455815661449984948045518586794901348288229124335067778994575306645571834727779710850334348323574294669134348651819092899536730846857328703687819552443786272988064445685567505942386519484765207419021345247801299161968920739389430370274939329271514242227218267311598810936144471575775494034901218944259355830784016797446748910526071302080963389972508657134924482921090577721551515624008316102406111913793241392045897551313723925065696279551528611222247545583733331917949750480570543037970497276697068645925282306346261804796317640774787838845494881333686813133540298373447131478175813840565486715588259213991664005112955525653509553136115560059668072087199138761399757527971559449961268873749825649896864553147269591396825260928355778811632969785388592666471569534852398982579741026481917373567469461941864017673463589475183258011801946890751285027473478910802216711247872422815536611193997074316984088169901976187012587805801440222264758134350247144848167575450318283643024076381651976785539959429705207670139925684003493526137896964875602432230574610226169275022913903059917349151751570313522037441454403975721422971775295409926323909373666992440053671403913741646695548804515595479040662483261644704456223199684716385572714305010775450683783235475307745691330303903652982376529684984816922130375163949119312104128747391815582494238546394380419718502134840051521943836306062095290401893657469574451225965791383974945528335787765135203900477434442493807809938547486215542418730254605854822760540716825622099739747671892906953840512095082469762582081023615421425581658999412144392157296444333767656512480521702936543228464820778662240035748651313076946678501071576599101346382504686746099277431530463228053165261121926742891480843828702626250087717246493133544763056553748654722577745439603354091810049134098802418519536085117397791246219391531849977620815024708365208710954407417364521151506742336329020438445971206196229055368221668464077611095964312329516034205038550062540486169416282013566587107747812385475635482726858616272539764299208634821338510824090998274651127985961197787153012067695390365703884682157165373994704927640561846003979500369749866919214975157484492143138751606710256296164776197499632454616583226942966475783940116034387707884522228649865368493518214022390556192085260496314437150705883251045898924767346031854327751015460186741810850869387261416106948616030943641332783761755601269557154343370024875164139094047143592583288671816672955942735593689688888922968680394680304258390786095109715947578152840535977532997879189849938318655845877904116528681934746958856586328864713845749417942109721970512397768797381355428789841441505682620488143475587550342993242463400803289346591608107908814559593898544041190672025830720665445673017831187211680022204350363707077289300081108910916344448170380489942219520870168753073883183442857403071061909961505475235794927551795639794442755662606942427416942736220179416092967082044437913021726477022066871703805310038382744757192133002996234810671249692179971556164353865422060514992017811138396000991860409311597796448669915608994679719502112083699584540971423366498399928012531259935115979988597976804849168868792843261174981359264596029741034872450226056267044033496509676617544976896013038879446039933578003007693717897424115879037786302559821276613927452473671938180985331709818651098221541253548313664350056696928020754008808779036264112240076029887129636558344233927726029011045195413083824035746113923488311431860567562199909417510487993058025595748526048671436934942356177845529699015402730232572935433872732409765350869189513256175688692615308055855269565056708719655327700773330836252420201259171406651904292624909747366090840483265592542920282699164149432211306056592551764411512025746321941983715359830099703505887520430194158382979126358886552995079860634630187656181416738174508306145975844737737602817916875241269900888968960619101652619920093600257963403934668132383549906175055738852355240639806395388973061836441697231382963454176612187225856805090355649697106353281510535662412095535370675039740753996776594947357958009164248878021707750906775789336181602102774620541528910701598754298142473777824805154533671002970598044016584872697723940896373616009187521407814617097507698603522710924382689184245651300910710495358951692478735148597904715964451971860976681100088203325088607562323232994215250310033557055049435774017907699466077494234412108482135964367366969831814785691130412460760807744993290758535293736645406991318208585456348234237496443859871665373777781351225463533974687645295736713701025076414739717293377065274252503816844284122019065786141038148253666187318897955390211902386698544108260150057974796436318179695792645904322832460681366828192740407670876371607694429285728932137168683344503842475994205524874629564701846394315763864506409888645776895607679314391773950571892671232028455318909343183435249865711159428892031822334771997190532912770991501935561747151653983447980768268618850759915729353459406072009027972841441933880253813270450331433441918061048746542733054125022596433292155568925464216164149497944449809597779702778508839982081141786800289347182063811495083534851834075637263458033823409054678925305923469249432238928108262460195936003490232483230814409249853855861051604054009673828004671611226249999821144101733973493760603055127337600157073954922717677161177060590813885330707899468576816847867130828164028855020811831489217194180969793315267871788976986783448191791725463070675929142900618653027690823580019690778146717952311875671732977789654905842114244430944696076551042754726183013643904144861822916278648031222886179900866568277667762944874107217367696271747798690906495127696850758728090996988637835892815499614352277512427758487006655441183134845996607092098316628994213710368882844382140890108182946900782716330155120532309678629002122991851781082308298570689554602050616608472663268219286082773456448599964352363417088778770288520464951608979115348241409880150263773968393331909260177462682683326651355686324996105484048828214503386589219276809386217179958165272408710785104836480760785898637944854693915356939919842175027045355924346644952116451154361878842841077755189520333180481468023051788605952962822511138624448897427862787322421542211501973094880400805835676907160991270768306767362479646494992455178224808026782797953734024138165320659713475990370610058091403155745856053989096423371409630796341113903335011794088143896875486887411514233164487593356086363508351229907374726479919086554186109597625529391138136174624826569669310204746987919693082758443720365007149832621785743273646744269719997358413082262338815081147890230457879245159576944026285463490509006833844153328205856304261768407209102071580625001117401826201355288244206325908450453464013889396263861398487295490908789623453796869560620691948818276475790191684973637954422106421212835474712048513328028263394451337321705040853566616455409111241117310472372436417834337199224397405448512533863625916002202072178332946996071899314480303786399224400544351303093079436723995305657066993644639073077340516496985658583733077437978876804328991573942570610751427688689277953226255450215989921969395138263227249000917946508672872049690118623315943482075785989266268676210161725384206994901035186387775697114890672113568981265532726953992880285263341945324042817963940997268570106414856335043454285268263956872686340397634184793936072798613171187672191091628970628558278371741984109402273075078135017803637651774794872829508170376625927178599266543234039149526631640701012492067004777996115221895863491541950376568283978484200394007876118538950136323798976735890164466872144388637492858374162203303221246292377853127230265287413657067975027973513702048948539026600934886257031369021569978198361020252667797722548879918254993391604494265445338762426381113824856671908858150861141330560356723699600869829677398583320698909398259804030958674557610581264358471104593700066997598708088185387771330144189878621102418835864365269959681177211934077663077830168162708690850774483510490475948844145719659155535488944473482342373656135774807898294344193779969373367319202454656513504671855831823141831448020474772634448029729307619645300584913813319589493702140984836107916841845480606443921608404256262214158564629718500064066052849205800628196946927687693213509462115706996033247964761616502442780786439528868132614865613404538427213976027560655488748966656516718292604416055499336378338235040273299965398509886171869342384063747039848706130024485652868041217959935674549512905365908752855426535131763405011136627840719696297256366085981823847549941542213382856948172766766766670675476697811509620322878227827386732195104076126637914314112991999593641360234351275797656668806713133987328633809955595349260860471118307568217163833136290584184790571288255602848297934564027768197121516013383800890170121342155275452816630637832261825502770030568654878958313124294823023701193528399440982094785260535288901457746913662235331263733186544015469583831428269112253497128379280053216443561562579945535117078789133491494492912918964299124856733762735537482770622043763759684602663759600179147961846505310495729344445475554799798133597077233501022802611705712569315437136323038878313884670947625532505507066063908464542666967902612848574801561517086464585891294981390609869631562944902850046550162191437026395674283957025584792918338395246272480047496747936115386611802543464606879218879498810755690880990802228835114411589584700021005403579437842141890745017119309106013757768763234051928097240722638808928018391340376396549715437845616965523381421873332068019236531115835457906553486645939934193409610344648741493277723139509283267228184073591423164198723942444371613737383585379762032985121753091809016049416885524044406795466580063214637320761233940675650235332999080092159585310743622252672857692550460098364951140631510638359615964608723988850435474750408709832958131752700151013546707393146725925440676499835855837146644783662020735123314711018335411793230329856233575043107538465250220912292153911219919162542592384293430204777720157097664708339501033775357765793819360394803050214448024258453184604989489243389319381681701846907347912539538497979767059781230969667337235886274231390986905279725620357195999907970346950051939454147574580937437307149593445512105197239609686406375398508305235664332033446662736110785126868975864624992689210305406544761117308702805216438870858691257729273948467326189454864594467337665798181541713923152151342689458345055697605326599197284007970172711084306066874121216314243910409059255008807038553953837362873693612646358664999044140756596601751378144798338837148370741051237301852728824221029737749382963331216844471262565072457297613457181755888351456001876803797859087265452017350825098621053007963692593866510729499732946514193550163041854785267019373611656568186208259347942266846827601202318777540736632788961675394675988056283774165704360686877356275797905308021969839239601567787695158201510221221212616646446222765923342302307607194036066454604946879027297619243893758727239739164115935201273372915905306294547072351896161333226509433920205476556037330273137360230646290985821823467959660322460069109378657363181395990079999383681079253141764559681851383024271974407834757838330337063057601353436174047179959270816035499272212524059723962301463872734079832763845469875621432255626248921400759803135262476996879476185303425644549539773967782471973620923830581182026287758708646176366984360346000782648516003634800494936691967018125616518085991206771643970689878952165763145775776487694515960142569400844848275871426205414271619925829054773673712820970292965372426241075297365852204576559014747848374689996108564189851364724670124712958062618752807822636687306918860867425148435985974710049144694800280845760252524439098320770740593753436317974068744350010687443156702852868098768334964464049874704708198946479725431857479048808236279288985157912815514914862521601064811783242262062473645398627633871472261045820293957609234180083405689037009286757749359284511216122787145880994237566117532904999197905835376427199048941315794700692950592815849913091128407710421417288781593928851508253700846442637118221159370532149692827556095784685673564561946532934987148022325035151548224051364584117229890542784800058775690392479088243349171589365624138854835968014396150431514546558100237616632091649833880773420201745231849973587698650245451347292096963281882769645324047376884345549860896710310611160944379875880276871198357318569475561145570253018216298272698812901421575003807991122279324150562121011505532492386462189416461480566652462999809900459520462005152442811866129598453184655455767706613211841079581129799345250834569872237553183762063289198410013468293584131218709216609526896683534495600261569175371916076306880132510431353785585129090784126405904021671673441229913791821243514226158001635070936337587849755146054825603162297927660140901168167288530392941914498159044850170748332097514789934507823739400448556451163334166427505829439806712654748040688252053421981625323821347074564034791961737338653976319721290730051213201337372259126488489390803966317243684685788269369591100386697831087193294175999927243447580575435801019189356854757075246754034401665817071360090924781978170285058490777795980259922165356683328749421851360610367632666007724731854708581631874641939056189022298245917834331559517282010011590658226418685710142436310865314667911544818257147816018038868393179473197341352995958556237879047290890244978900811658612985996463548210657767259070975368012694037997863350896435365124612381494380997320407100462931731666373998665652883642066389117683972394679500319722039265661190681896352817730478325501284845796021612164240375451134069485091924294225420411342571239833314853447176747798329147043326325333487394974650018642920711782194893323494306409313919236902673146390635738499645573436822050352936592078472606437280051632284568898152031113884802703764733132416353864414517567016375554809174509003887058945635054277510482472551049612790144145973523179308519169849743867871639175622347911272574912608983263434206052949989481582312707840348681533180592700616606586717819071373962122366378912380253066109520049892046196255881607878323340200697716733484885367093894746823241363236544992611593692111026618653010375277287023928006278465827929909094502005414666791704623887708653759831379291157730240859741776639183085784007255365546723979788236010689586764569061553584858367581398464612683383105176135921600628575987061166526372402175139981156545477023616285368985422434748279654579563954603499565917826240990406822034500662024742931502853649444225014026748555160880462717372893376557237239191641621258920397893604012515904041238480025935237041688306847332915241632296334371928457399557032875013702341346182976340089596971608778763062524170796757022013627487068061691001689048616463081206182138682560587953889244969824126024171029131477590169539337849736922962025216303615907925373007070905636744247647887739733799634276744095206320480607561518209355386562951771832503114298526198943704699907086096986627668195587776043807458756081631811297891257810325052736774515528492964965128203629498387798300629060756692543262462525312630313838101899262031598707651434379449871238218698486391476101572458021697271252454748375396991901602743973961641611401576560064533263572628545896072900445690984769536314207705895647011618505789664445664602862615707834400608434809742590521749681732412065882393242092808374748413538459727026378545205281503692443087845676233224926225632718930792263813715437386756939875595614671572682385758577901609898223534925061876484830750637597857156889700736766831991391510070598540641630523771313492691344846509991389313695153217737560837257871209095705692722523424532278286850118723085364453636017426681798717180322179971309209132868080381426026510769327029734399044165102038601185919509322915811813440498770820345603089048421238367833546582505780863243311495712603408238330014272813327495989509788215509375409386622861892343979810485326469201243474001408820763412277568663931126789942929366364639661247883112207845556481290576293928303522332394778177875992307214489829947596455284816553699429499512319796435732170995504126755125870404719697903025482136512353580490660919383614236709184418061152724643368439768697033381228638855254217314741435332675237631124498397722682396648628224181388080785162642403596772050258664193607078544925401185339739923076900965669312398870671382203779730692129136112843815755885563458177052337836872327931738140640032412763534295224869020851074826247135377866444889468644250559128777116768442961007386961697280187094598305669167125273980188581968824951038047035424189538786595818243624832331168635170593813942287248874020247139059369766400944976146194730586325108405876781214050800853763665366782366751134712042322112848124768562082768611683522731655046874612583404932368783376694138353987978358778518062721966022775545700215074018531626648581393577572479687411724076803840663602052455659886879344514605722597824625389513668695049884602084601013901332711182582693844666995508210087705033756668894107166696846088557515627556042406173719076336163507112400181693871830460961737522123337451635896807672863941056134198103533494086277378023223601093262148900819116706437457965592696863402360407873515886205778517709725608763978006968480462808711372657769314882074152463059358837033900697343752022031011661087682531841621971400329243849693973058674726157221986848777173529926061736072497609175474561804126862109318497544501058800118843979601200802303873364262355857273007979242608262776164332449545585443220830779453876968798852030612075186640737638146324121412754750562813213358119400077080216621644271293858654796144431846703268819665385703052074865503212461795867120252654189960729205112558193205323841376396485790177090034251461749497647857374081171686009584643388497266926480856609173269464967406381909262004111203649255418468260625020322774947790330799739927076197510332021009190873314765496635284264844358314620041613393304236073525684350104699658491009468627817860824662773554906980928363318338835731765169671390448310971981476181227158532979241460941599307997633360190789826740285634597518803317173876494989447487106920769744345632068272085955819380043073642253009367284855517811525372698493578476939975905415901291935582791838280645004354753701052362989431199008792019896274877040745582913687428698999802464917812840691277098693197389946632347040410088491553651253877683476951151730356042363505952318613508484188043046248293380679064562703488659867294056207043563135100721159183555389116615687283776898786859876248216216434362590069324115113052857073264967780960007534632905178593631098458610755125894807729192948334481726199372805731523333327073508412720197366876730206598409714736259556213173008992528600963008263880873971874329450897552276120712746673994824217424530879646068171929404466083141086473789032735555426930611008032970911372406299709880228116811689973236218305740823499217561579238628548816298228495848819224986935001170186938864317936452186397980038779792580750289596229095529899867398922136344518182557499610637176296439152900826992151006080166493354957723443836906513285272917110308234233252462363936588394723463268825000196008997489987602625933814091750503242792517503273430033168888249067851946115519366908980245771765991751854462181931104431815741739801902460518289892569543231844044987971524038723902536687573030308093367086863674152586772294138580074595304599114055806444390723671761805538192294731289014628862970142179283714269879031172495096377150739081359315799291681052118416339052952826150375372315458529859220113551685548370711109706604854718500295109859971052000484848024999250785963599802707166749758133965065135759437846852355736979837666105484085419337825060323041210415434304711319068875852966332453691939712291788479368769632219573782154613616574787788015829714575049619736669703698063855823229515303554719821589267297740413403721768546186110002914171642151218723999089614680529863225611128015754365503443124282343473841351519409791940068984317336503843963966842611469457285572302410375834965320287948005832286559567888765711069079073095779596239311077615561904571753487208573981143605905002614047406579631807764906276017500802637802282384695168779947884575854216075708804914869288374207194383884433272552240651922739229692030424740138762555167827861907011231790008277270188051801546386796551868857624532639383750731084148064711635670025046569808623791544046372853596640858312473223410479025215206300876849889493937271488800623406857895501986327199712934988720727946649770255154583887319595438143271996734601403867609455073327873350652007282797574384806825275939912249527739776065149656474307026168359004957280321086541325255447837165928668542990397894685813183544557893358770521369267399145429406997975168204450853740912420976099328596377577425484150816583679914104722505836909984676293099668464684349556743342274968739392745662316982360562745062459090328070307060799815246301200499662381649777539622678052370277450579976195482295737942032946542339349521077438407482031968339756514460045637546355630691220961504173520211737580669900156599044286164751427537109793726924519186713984086012113660202397033717805466764773500399832113702778912210572727455134508575285036144128678039557690196333476473975106930734130889929749873560940551970617326691558715585546498547411832107853420189181383141495093600367823231346798594381481260111338670934559542902597942797518344459873523010174003013916572888915885911160059220624900018741587010042235982840853578683669895037322588185336038134634019432553191341242549912026546295575110998628043757878641829062402573548430348513162567215273979541791666932021081753630227226795849560005971158455836882544664738864396323397664996368050601478641186971158918892434000433297788861884512845600525281841795995280156262929174366806800387458096531204988868295575493283751659776768761082390330131331542199947499991668675155425842212227398335098927272276100831209501635283221409700372219250228207896558830971907348912605051484659496559123905855073169174901008208040935753533296531305112645665633514470960650655198537448954905545061924133426772438892240198229647588800957735852570092089621688045639565363355458851313147793739456860210964945853235054772022443023687690930172891383868205455992768825916740100904487800833525679328612084172080246577635082146608074598811558187600325233888399721344519482344605195016767990736928239395448680517706653354390598813384075945938949770572566701279233824668798993438838210307631080717287066202769473443210269310900640806807176075253163711590635285679405412051581612392124628686825012425368847279760464182828556567016164118906482839462667677630008586839031796769615996276744224685634884422271362953573602070935877895510380207233042990566198913464104655335354470471526571308768490226726933413059103601667482394925762273188677527089927398250759606113062557115354463765950061499912108791992108763762883284464732717415567660283156818897176925688299028115881599365017523754381567737522916533309622241958228949319884427807998608170783835742124568092236858674754050012050691397224767189436599226470386145555657736251485311797410313176608127341231485928719287077085490570806510128812979271337228525285935027868670050982546054696387648899017478224126583793418629090113162608857930898162229227655517985451709185662041975525686048215462077992841480470189554257672122543165983290202255535113718956813706290698307907253979420715620472530801176427990554793888615180560014863165786284902917406556687509008616041090750729718625292808750343376039592392682946178270363553830008717253867286057688691394582232199606060477948406858555538667102525226970460349172847838626819015430257027334928485499792556358563589932139654722255732268651048534008268276783986528021114660439862367902964440686998671874616567026193446912102783975409035324249420742447429749075780179177152566075270339563128697737966774106405859070547224596382870964185646931963792505190818997492223730857107513847693166574444969950630551389435123643859544358330084283984959410781918330573108254604025038087172060887796586369188277513607936235223897793240120139071683230447561381477264496056474288318598242309313141173464614509883799806305028730335936433849595454890455542125051931753951554152848173763983369380232655535740207397421496484730738521004668321323527741286987483305602328001464101808050984342836442986419415822730728006826744060085052246670766248382668024200618064839870874350977866662241331537115810537234631657353076916968873192765101067663406933042613699581633441047378797575275993002952149063510396185099766617546209318807935568319892047367692093355939755966264544547925868237949937970119472242848577646791032332839651062267912430503773078756795699974662647117453235778472867814688706704880085998099736732702502910724882528251281280119120876790109156991623681033167667522597785896770157143035466687838510563374762525434745480413178171292190986419472224548920599843017026438548041952943308069281526781003986159279651258439890361060295231285975188926865558860839742946018706601360919238698290343796893687480618809781462120598265639129301993845743134726091336957404306015068752898495029897916604741740605296541464743076428463693639529120316646698974848351067835764386767487944665484158961197178081930907854198613274851060223982550197576989225331685176859446502345995982759121153155594069822460354349197414275384790918542395205568628610182452509507683111790300170607673043746677038543285277716345556345138384812928011211880329855506331052020545823105818229048595201048483605981203478512633022876172754878185877110227058783414129717427132564272145752655458582055772581292542559158386753681907825113531672483227434799136594320956984485922724724174392425297750927460883675205217703195967188656948504922746587813629145494948644621302318254522539218781507822992876255463202848410653004429152527462751085068092807409281131705119337032926807305310737823517393613098852756956562400992623544016961966318608274645557712936812012964332109602258031981787682313502697767479401578314067976994283496518882763952582572024208795204258684487072114443330834200647220230180830330725998745901442631488821779635669613566459684155514514726232110546308377349061435726922322571632187041105568876263298482745335825209239109616026476227070611388731042983709911812908920137438792515046688629993602060146527071955184163654388064269785862594573227955472310423043614474998628802067124015275698693811428339977159275330628522185216582394064387858763223061032134340494548188965615713331159295079791862481824667589599369333649111699183029803591988256439140935725374909898969514610520566594413002596621664254117033548035106331892895022317100192184934166229874625221789213872771166208187568150158344535422509934110131065405657947320313926139022212975209899927560121585580613282135648934407121355394673780570418296223800214746375052943337911899166565810952638965699130555301086548364653528878469452830250237083021521370191650911773104860710554360571477559239135069957961544055021644037438550643276605958185079104036816194055191845789133468927852841742598884463453517252619762959590885233190132931611517160497445367872131211169562328831525598074996752351914738701777053720116495389418966674801794804154091794231511051300626418153808728043753941878663194628783904635352180512375828132322133024223960957262335925286399031691152659316554941805748741454796120907003085745576095764389836524403650018560333116675593166844133571504269830569407437349209920998173306946794809327515777888976172550823380232464377019490445785090633117293672696736899866153981604288031736515369939200469496836117641384850421823898274385544451364725051404545811904983795157499812602910640211454677440021135124219760982483157164258388224570467872761942411932167758857199776219704981013794313667195438521124385334910875864683147280152561859186062390138357337829747215184725029082671051968143811954156359768637055683134975682177318662792907380591610148765589533742649134592563733298294403175486710650901964142299515312971545742842916014890330777673539596032625521486109088878454951366585790674211436345751411260669877448437090851986715051005448197663066012744412090084749832819522239994164965233973461427648324712831566913308921580494046001391233660610090958596674723019923576020770999139256188843028748522647462515174995779915591179049107217492875526446760887970650144206742789142398083468873825801125862777188401758888366063196182499452640756138137559650368499817674347097916723641109701359166457727365273565825655702100213984047127305206382780315227193978689212380783232968404415054841539342581398331023010026501917945882564892216305545822048072398555119499405679926968275186047585045048837163273056848199547669816345950605931988543404012400564461006598487294955921058060097588014165550434203226259426879261187385871278101919461116127776964668036509299569720024105299737136116208261953034189261289575167622948258012953835316918582273111422352540173304747571935371036747016573529472562189342560076020011055821908622587820538840639806757315389290563842008293570370691963131642391386485921408480247738797939020471655896433249746190485672678514736183193621629716491419382699542687627986115800729790477840556299735373744501637601893683835002968504720410552278999184520954009070235572541394970838365960840810006976591452841531028841661008480672583674173185383747230942242638515130734554907620517182451378944798775486258140925149552810430501393089398530483905488808394084204188540189677995287531715168463856406779610602309909603563484766406644342066543987835113661672784112549453210196370546334152321610532353735300502043222751940608494325379159932048199613657554761395139402901705411496752051646374529151128766394480519147318024662864916038615533029020230904666243580767046829737795659134827960904114002183072508751723843967796258302226207823394688143895996482466412712867470489604697722168969008004918290062287162814754660618481914634299659696019238335570869637415550864343528790449846167618377755992413329321468136498103084079478679207883186201754753270402339713945126315667372218767915055886133082494792577447383076389944987196898443857384068159169328190982968798497016774427778171891442538135575208635984641939767054616041612304757524691972530141228604105617148536254076610962182671904104140427094707674226393041117089273956757869514757476570221729000879067421974542958892180710168292203419611512117234710510721594842252134723148488563511175191930239066388684394342673211174362034091795671340721099592093971569341193201722906318196030225096530266377774168995681203815111877694525449965530179357164891629619816453848466456136750860990255000546165055124711462023191035634814822284067604465782730037193691871219912652321007713665466843081563819653447377487580994230008144002587106929025069275810728818447480214533382159920953210773698456029841318435016266343129677771448666441078440215104863284805760806581275615721786177326858754500111831954502264036168133179325549077860304562634515083270687693796024061575659529835954001410756002912439905659508912947290137592415942474231854984691931744666684484274176071965710021888557980300786703216174048235264261790914277981393581049303944452745387886694284576773961227951277667072931840160951714288951451263919758507361029079973973997652161899238409052325740011925453970018034219969519535459012532284157510961736045180678866732066182047444939437408003800505005864914498171191542731421404192971882684407524944425086896353164997857098747430883867950804447796365884195845351634556439407502346723219983397707182088509454096779844063524875047536433458651099762206061645222577328432165967618171746412996413511823356940305494712505432538376444493641839021328338073720139798916255977855774528141513793338365640867189251000789679559045341912908809313271550207025920589001228352493799990770389354484878863456371514491557464544986608329286587546235064538503297501078023294913349736113920398293756310195380715372271236110843300171971299324603612183298075999607029376618311189958469020941476117875967015682188944949031627998139639212705789928321150005091139673737825114839404289502054086782849327320184048982959384220348279343142374172049938768927907098627303348588531748881798511786050085521894354450408812464089905434918000580464723708784633858520232507497566468604140323341602572652583749355812432618887499893442530668315861238799404235117257674335669198131838116434779686272347425151910177047098151504494757417661618290592505751346787848412615954115818165152047887014787711460192773744619680230968973375438600621393037480084707701992278164140791525502494548930537701797870275390920950349652632209352804704101442724075379779457881866911009022240136942726533794936709411273086116807342047481325561612793615432901459471832240169635403286233797719415025595120382028873526897648081247098572435111203584657962985388745903653377712449872144841454641342748670730202954036718822828759129624926723882738214320798468541949263513378956405442653242413696217190130963102661489074353583225319865887147420358473666813797297702900969047685697020659595585984149752233859321499073521615121480966255989745284742734179716451578264350057312094867775519261174998180129376490294343856904299164255748164942063122951703704613239109158733613748210614776409810150700316635196049349465267802117642800479937418284744003201507006741059347916494305469760365457536328640116016497297754637989140724527169730434897476899699203758193933211274489821630455205916184895295879563892629761163618963533707328584389063830857099694677131856234179056727203908395660464823066730527918225013314761613764633036092674274476869366041655493243432194104732030358650733004781922521658699139881575864598165274358283976534825307767669509190890525313513094829581172532955225080639994030384159853227206225009258422754889340068469643492779179231088674394245523634858394638733560191702071045028010714612293345575976778233033962216811847826816505061365235054256037064292624350929617545869147469763762392940710309563219133744049247272258522668768531982186025376338049262530426057997384457248340316804836952952712203725403420387800921827158817775581706613270198995579945355553159535083984002854497184354701571093059152784053259750248657390323986776277690089856234717955688566678689392502405770006585177713681972807481984493116167816316419209475226495353559849402901560915318152742424078192079085339290480436404084413341046767313010144474091615150828943781336107249891728128011801388830054251449396473850517725104848307814346365616061732830959201154367463614111115009898607580598642248372465423709090711298475202085035163036471918334993554016825625145159070692025758189724249321624705201774788445839637565614314718026355069347824166346328965289502345527911972122758193718424482947247145170800004551676507590178614868302699597772202171988613188012939590209712491100562597165985857195003680510619107584107455876356395358790590147764380125515937433307340866669889037932872481735618476363171931554852227054429045396983123474149135391805330937668678039071046854004950789932725835696798560166437889716209752795174377853324869625327286186662623787945038990544130787463595950135048841907367022090293139477223945313274132271512918701717667453467909798126095085157531835483264809425046628770536990227309667441155247857206621258382301612108479164365323326148616473459452214890465199694096464646719761941656395941171017212226872234849339018559107825201423903243333173304136237636591482733167931074815466720432977946990660069991788148158374343883123056191138479393521492974383452975179663502280723253380673745669270474381007345820702922505847556768378194653456868164038007309773417095635249028403345379043559621004322802542226601411953327704970567964258244917665441284207153883835091663503507494298408365148828046823330705557357143154601722329061059300550316345811137009516593313948921124595986556751463134837684818507523345744385172539842794913285576450036131657091747165084881795689172923268688295007003170846524040579068259915259589741194570239374770874302298657159663344539806076778908862108750810110382547375260519820540670950454675951594794983725796688355429750177843480999823313848376555573518148586044579020102950937415675130029698139683167710996433464731297216153371879034242201474916605307630268357115835804635065330413560002533500442506145371528578005933372277094127826017159539455429128720106400041667456718583003339709399124300258579774289072128831573651649661382353067617833954476559186152656306006504667650303860483643520633400489339895322013607299917646038278447563672399067698773869419528205124924899236206089236053961657720175610975616414711674827737413641959949348202995332032434725386456145013472245806992424073059467059372002638770214316707547955987816920520684939777640953032471979973707008630579136812637103068264577457507596100292275345629513447858914585071793429323337452702900805964361408595783640639782594350826340508794005385217486035665459014786633104037129107183903896099690015549733595011670836193072030777928405387952764083747980518255960453611103223173384489531837679202912576442783238470618519054918427053968358439268560901328191221633305922090882592234864420999824456913766577939443273411967111962774453663973457222429000797831447828285587167109345428642334379689603810134815010803402135992678317787805959387789650794682933679136250156476722092630463846126026402609495418125712158948284944911634440975475052267323152397276593531342218704328056927267431024256816884534124484667603223118888995085897238724279498201073076785778601204964330254014216117820619549616967825172886838175291857689080106899091951056029251796078539517008161837440248151226587276133073955080798507807410565611873176638865438387643158384655474612738208676294341607250909751536924484132165847200653541143094459415694434811198934102661912352484943252323271749874530974660808231263034263514843374345272795573069552957797747296484192231121191110572981467642294401589782555432079161995595808645748789607542584514206073948000195762773279010505957005480161616813645114074102311427598289497946921849376808305814661271188312227901230106177973395702668407650623833299408019056240475000559717651235815432981808009584141280898813748525416215621697470312103436967999144716499022948565841006659453976613143737651978659347263159052538082878966176532615592112560336459127356008501919374491475466398780358680996657180983972122817886330916700031982522008117766264797543220715570946175279012386003092010446287241221606950989420901573680694489024542978273368954360527298083141520546485480998518827788760570424602240600954257366909554076680218878490900591060516547693349925318477964542270233406292421817903505548412646206173846746773431483729347948758356171615302068622390677270167442908666709275289514871794528366811683887108434588938973302723395228323544209378088172386694816788239825509625576909859847579115285717998529458952999404502129679415686704105268380781533096295991599155878349708212706031398793532516595709703156215019004483862310155721096560277012124431888520934658443079751275363762491397452073817613664975641707920153055786768348721539285998778643232294826156191554093839491673499075714261816633659664618019738587282249445838953833823370160083636316239982642744529408731641871795982039156065203772135823811863704659798003694067831797060724393149597990172031705547600974383681144191755328782988792175958617928231627675306174752436435901326735487495612765691164275245147568786429104631510093607435719063181830643671514879093373244515987732836060221461165123530671749661911923357458709068219767426133066641102294271689717539983314003641200224790509722063076693694083951134796951857986633484438173882001321220936809652833818171742839687696137440409433645792395532291378380131133754768657227208222544660523014316599562972585752867810130497593872017028666633411800664085740571561269298891082981652459878625152264065130968822905058460889912332370039846179606440937760270640507115507173667284767773025882516877493374748364991885906930822609378956368331136447661905247029291118985042097710330951380753843008198044812887576948246987599934766482759677147510724602721698848761762277866109688773524319589541257441942593797198131198157929264725145067183005719575773282073183820043036710953534688029007178847831972610120605862675624197747763701890435252511403198137924837291403533496747088030759795881374903663136714144347536550696743176658219179152882274478512546525007395705117176842077340602129890592680227090090866927444474063888597752358822294261307598355936017267532185244242720715287947240821751638917121360625499092969840160305922170271280488283908359805129141949100961645999389073505531327900071293423191853828172711190297461844604717463717745929139501176096964160010416482138659129043207924948053731630300072847641261964091607981399569007178046718216967158289288011052452152791939120992656169426410020962512064382480717207189030010966969943733518883976105421868554009856434681383281434353950358727840477394408963763127498120539468121497842166664749871804812926664385276089512264840871361016403953559063900712748900116863912345405118474953675003355613173849644505767686253259871157935149751102225480240385592258329475443581093884852931971980663404075021279328675389040721005204734493040258116236247695900412731545877378350810034058261898349920608578031909604212146940891352571206127753755144178081822093930000719540432110133270608582932105985941235420961921458934388302668835126189785052643910650879770823561582448486052648801221102420567364356834991216072152033017555749586201766251803881082620173678281907230373155261271212200479822894941644887394458480740934855522982027107874637204590026594961663158185536896334796770467719293306713527693936806225298911281993227820903379443322962812761914829083767049160758672939611324839935834519549802588095044147319932704402946726469479609855080046991197346820343953726873007703711325313508686753594041484440765267192716757369219433749577683947085680446572881216800699646704113938678456738074698709501466742652993129275422106107180581728430356536193879323495932079303478708445201487938112171317493470397421227958858151200849659699615477311341917885429897087973492074742177924749157116211242829491658738076421995947911708589251836811449162478765487282919255077681971936975347659463906631409414721063207745195416847631106046244779000866537483444726523861659968601926617230513369019403012260399759557808397172985942672532326651782575065744080547212236815262044253030599207395349385748344139239937100829861711408945819920214703752777716780063665870796499784472535361038436522970986026810915101166311783217817251145025877401240967970822966548838099804915594992807360952658140210866851652405217635017544177539497535166537548746759500103618109769554100027412103442441341499315408661554310539138302547196278885040438565773325355547918269801907772063940030053501894162092505875634353411753869396397945992757980416512122407214854711691394261541720302422189084051952851394194628097348179220366379910340865339215162389942834326888495439027567291347629426755475829915708782802192976426661439019674775371007223252485036058816236471307500737294646006560594724360772924094164166925795283871668569968869185672026572664968851710616354877899766887616069925595355242689303635785898267906227155462887888590975404025292681550002049343457275745277884246538583338487997968929720234676259253767441285097161395725196132855194904491382214070823342792215943906695485314627413194159760906293268812613626041193316269378846445811723516602659471209697880078002036479336641862091784117974800072050683934812038034593679916831676577130395980494061792883897121876665357230123703151028406386125416010130663752703007765765616268035716767676065192401729314125986992237655476593405122417940842227247517879362401591036850376867553118938424258704693437039052483812146653425162075287185015194820074292343679776827027969147816796851144694259427332705680291115754990412978928076394815374763513271973549185103779199688507193819201515589799428807598831994554253984641641990158675549455214507391612346506030789640389044979743355279058447416287997029868607355470256633670688280268947533628746785066081874829283171411203739658777787004231467734733284292365545515822372695078250444790408886929333754419965350457968570690556041775031710165218650204758700183232772615401899825607093812082405199907452171616591797923670260091296163740864058870960326155663349692960404018115494794638223857701167381682752451859008586079482183259688759260456975646027437400460023567268673900104265114753474465103067709786020494314182257679891761208925369218540354106419126370181295921060061659877874698948862755797319242122696689589575845198473413422265975918034662373268851493314327124967562304975423003293763960363049791786072596368813706378627832824235601778655719597412788758441609787603448488386712878552004399484328671868440888440972980633200859433768982284288562358513319091680424776563024987846025628533187123519003707830714919992812461038470272512410319381216219497802565870438795198481728624438422634112750217962226195972346910693742152070012589766899924564506430123731170178806923364394244938440657698955235899426410451559566990075848907622034290159136638662534529497852249217153245389111692033006424605213743448126851573181244421231088294788828321776645877787381974329364188773804621429461580230603141219124155717098439747750843196098087453820581902508743444901239155234928167281598467460644571167336606636497299783956165631778414619176293408543927488890349653071689305537935392252854448059113784053551680009046537373094762394584544140862658855870391731972341698733181488175547500507213226940655421664862601062835119269954916305310296445526949950604613379248464755472002680735325952009647380864938494211757125476520987631435043340610181911209381062971178304587669597632688276309783281007823976504212106021336668592736587776727452229601465875356500275413519262915454086896566095169511263556239016525188760789959264290345090163772204244341644801391696227535887609574798815535072275277039102055771655123639892376869409724260081691122217418435013790032575515224361647062013365950988026020778528232846457985682331714577647938066941105790174308175188187022254840719102955870400449266999238951650862570714671197474151995056700113665545872070812521025960713889560364511092343073572107101409256549973509896196180937213996279046729326019121761687110898550783016804983597634928276881899988934738797542097647492559085503205975186646637028974228016016316937605603885085610090674378949911778826191556711152231828686149907366440592717352888835593464248167475083078652392189658160182485165989853191825727204231359181528758006752933850248185761903858996769335011067493060963953510517676607777003775319069858596204048115847979429138501027086124141577668077161256703202691271125154361265349234847939361491522337186736722326471567750679991601873123417425248487920014083834131517061186166025910772892611097412550758474160187320670464028109621539724429945376382617928033261796121778039414746089143231812194729263568812300348183461644020212929855368648020053235121859909126604919816587264862640540208484842405734933535952696282722300076235873723963220011849864023793158923014367434293645665062366619424036377557364287421224911888794492798031920560667668995248640879740805831408090194147180856136413729930574918361810337686816959170650015726077206204278673201567018313341983810656920517212988751657964318309683669762671238231043904536343349921304387051233773932168648463388663783578707387201352044991127781295165386701649209053011326486482745096833436169535174391396123903644597724441097736161541071688594243778357079841126331459426839335298755891452672339409109190069540837583903137186082205218080477328668332745899518682355263532528391360632827325827399251988733870479175754824163831624814542640029406502100631823370502371929931811634048727438099754544769222614449911313763007680968234294390846210504087029288026164180538261968360132493221230408327490442095365034144091681264311186060851587749135686371019371016405971770099492655961143232016271479020175264537254662374147902010809698731402176799904641137959589734953709967106331782918606701193756776656018886975982666786865635660218987944477619579566116057380193401022710258493106707350197491263675394192331965260440575798822890897599602079550184407095968634465951965763101628935383320708267778040099168188286436305958595988907355499427948080868853481984661139606250192524049106543851036543619732511358721611789233226804844968487468417020387651738626496414434304805255043229746437531338333534162413071821201643904609803480740243541983679169383380744741998152658806785445624778712654793779229814310112483089012029487682990783403046677473498021309490737721163078466882509705638198607587140690761428111496489445703169520014609703367345395875838351791565163307681433937435828641128204310593924951046573966109907563687749169834131201104698515167899538671207068620877340278717193767964225223086122394081398647483475571354140361478018717714999376650666551856520095882518530376479336533533323593381010954684576571931826643646437928409971273442865537054521885325879758769023980398620969364156782259950897225520526173405547418119099519478724126522783491616159143947228245468873446257372926449729658182995971410258272112273188037343665011135769409177970621994838404743161150772576589474882343931160779133774116618176448734009021698843841616892732800309592972959141739778496902498342399586451219937195175107146400578201226329985894472426460124689271887128216550583932046948032291215460907122648875196279913922538661491674849329484095330586658680189603562652755787286014889412259891061870754921309374024462988971948606945859515770705822107018994470608060014072631527914122319671898255819417009874403478194150220831835859822924260798017337005882704556343474299214128405638887556045291715381453068311097333055059898741207605329860069842841351138043573265248320918328763149584792552878474609952793099393426137040130198402830572878037371893786333860961699549305199650133770608451035201122036740495545999675303935886453486042570015295749342644957883199698277730227776880852091514512433033658116624063556240015030598108081660674344402623473047008003767687100521134159283314512384080576830459581046495324038577289424326962074337778567282717456772175343009412287562778944093561228664947722340877544468829011104609507985695386570277159466796245980358933869381344359152677109855889772663514902293800361614377710766835606396829800591998646411815931873808430533638414961987676075053376230995642389658994743363796635884405211175451631929957783165952488699361129668857102878014647280074575410384047382264166991361205769111130851849995005096459481716798368153095844659843959913646637993401616243999714482877716788217407725691349988927511758122862604802781965579355755269818321361348900375962295627400383298575040711815472826773359765203382275954617840239005124645631109982621048421636237869715638892617524126481874535339095593558202874703455583273042050780008205421637270954800749232181044394316861406201800279156007615063034679172928698498966057453839636825813669177482532718760779052682539661841383758901050261905072620341980796774581867714613103086010225121633307925732686139841055208986164418377741536163631888952160750071883319109582441151550865787558555149697725832533123599285357494885403435118884496131955023653220185773443453013353453868549353280371235696931098968350999845425811600331562480910306608953841499914114589268696271297356836433169912314306988428313141521246276854801660361551006904510380149807200752667673011949181829074587556522940636238335544538881388312644376301907460150380066591859279848937903934049039163273762363525517726915272003728320267042549541044930410997120548374988025886064751582599429837575409138725929571027545988753858213541179343736223659425932730127772864928149077727359570697443309200924893867007364723814636851251339809384190529383715469769583849777539439107733940384834260614583698263512048736724095657007979132734312830756460367774198807482361594571656056818110067780944675737271274901982552430468869677848891276985191508586879020667101260470105546892184100160771588522332306711103221988441386205769241631129836861923358368864293545547235872607131110390412418239548832099915331192078218725906695797002070850283854271546615151760216718293954426793126127900642481577118620698515683123477742769115956327032554227098119259486503583977257533977121525674795171089909740389573530715793481778016842412190472267493838411429658970038365433280005037357047844142823034735957624356878272919949014879284095444818803572889539196205291962498281278145777959878705880031238265909830349128119450027336431806362464362698910494002765072427429834194166754123327860895524512261698454599862609945734987943346887943900963656129242899207799004769039392608952050730013959419012055007597578332048127478521887916961437963905254969020733265864591643802861337995083003828386748409922831589330796572461671974486846928831401925574874724913976642959073149427434821856579033284740270001635855639406348764183170410809593725645184072198805811072260417080784619989956772559852780410672748551670686382745680269990916904286092649410958443415422412244624046767180943211360421882211733579841057345701709696421819984692555388085839718379242261585882740876091540456437161138818305235175895610628202698147948259366021670032697256472054554170295949301745637744439762801550706911259486560805199269293688728262637533947173292743736264260240012408344092655770172780241628645120127356691055992086344936571861275811806643321732204191548052979179851158283441105880403994160008532859137057071898940165703282847264591585975596714330578993130456579463337728010022499763724637370379093718551541633603499071513497226580586691733732417725788528744104286838622505759538251678137132761980557562515686836895499416268360510531102356228671653025675835863013944052750156352439319640890997439415777404816962217771358007551351905225274621610819920989350200701603091122635273577556393011039544285490077176702831342180691100786490613243782484690510172528450520822699390929176722467764071950515906267905350831088543538640209948533592108213889926382223036318368591044687468878605540979596922518560656701089634793277043359586585613762637632462092098305272289267639394944467739772814015671592317548496966117862349548651283153293654525499165839102226243453719468101107010431012761346462481457384225144535165728259993431140631914770318897163497572495499178659710388400325003326688894888895815996996394093683837620048967671650597346778963378865389596313328361691333210870645515561905509098227957096520741327240925734561942024661045301618077685013663211699272978805441260232879851002979749343995157479477443443371758938292055081315891129098435196836252984475709231054679047704972337630932904471462092825119401336012838361996499600946396187285586952914891043364780250726949719143559730717884451232223951540154117355492324069018100795104147313986086932901131167216271037004626977637311889404482428024225556480221882260160727212905821184572612965342658592138741113184806636757246167097141779536189810490414918668555386700168367824424287208846807478978785391308619849934178625054766787220779840147633124973272824809568248982029497580102573587358969340488885125894813138231099595909406822302447580475921293733662502600437604503301604084196867927387877383154812911350112084757799927924482108020655217844047594465196209179908083383673775379870845705787290386717406884806633065033395835507676249881121395682136338924499624572690633005826244744712094822187539849394674833756087631607769500839009096718144349005230965828610864161046466474885015141037960782869431160480049357897453680315903525678623568596915292726990687493195961315272723635764509169070635833763738596608293186658849579268717983216011548441498653991789464988706592306019487443022748467251527591623110653637205060230710231277351447256206390205135417450933542424130552191658813437651520998875613477163352734695312254457047844179008926539274050193654043249716433963618473125690305197954563769865546524301303395891141009624137700577403200854316959465018374698152010558268657115729695169728271924972547240986245527315293611050992674905551799103796222421449377067370536489243788300773352283272456211330789884967917539371689077730599840307360932298528904190178318036078567362339236982199782535077785949917356263849319512753590110855630067751735118238177695651212413184734322637611735956379485094869871616268719773665150304790297752701233026473985969012467365710409878834613505076307325720746689242466009705922419987913168250073927142192829790354600318720783747018746320594826770971451798051491384542768725432551344995343237400612849475433883897809090129642267620828013049645592571514028260967065019242115743853139809681533972791687962710480260469679873751538157370407140267661732286838593836861115936935434966074169362552750797223211950244732314307620095475589620115936571097978269252220224597446907744890634933762994287430571383134032833699982645587593095157470141158777960488324010631369183085307123424370693997980424185178518348433030419559983813536770108059890662527101951235082048887397386180909817201216293843824214126868563588911737387431227278500545457453137308736181815362774772356402320905623560197913928316866154511734008288274088353244565326311618047641952974007786346593899388764557897711449464033193437598247669120584668962924141214462937268900855141863749292624552919728630242215016328463514442822719928612151000619150460833782519515360109403793634680673608540902409682899734765599220246284614515593735773354613730582192402889883096294031211534366078159011007198177325373205579104917203541790890799061450651324439121455942840371878921333792849235847731019277569553356419334195120959122781710537575607297358081309439624469885386186135768192026932080905973578986645145735944550129717984772009007231234904952229454364851711056845456958350361461716899274714535846768869018584772258144709220845711502667488373626179898634394333416795505005889784628794147223148871905599174974180091487870438129223993362715489981915980313977986497028213228958669582726321253177942266923862299130822812883080563570651540905548773240904269594660936897574846907070720445953484020597059339399181829700835909051266248169434059749816256155497067088346742597166814120686873263017161594274921680238179720552865903151085331276314590423293392437567143620876902012600029223053963228780001112802238123141735155103164625005957877622436199310563981270212685913787423505643874029899269516483551791684988627286439303249446096363163118045028472975448143414301646379686841344239441631603610464970591867221128423742947656223019745389968864757131160178313103348759980821554413067876777216400916563201021913885338674145864144216109551411569750784767764443901802223945856245690433760238602352443102251381733361210608019475764175668123708726765515925127917336349851125008868594021376832295625404827190129262577430411569761932693352938481656341717235870471645364574760587229628413063311960650103137338486460600754918791075812938688135287417045119868293691244983500572975761404159160498117242443084371126761180658994475848261426242212174202393890450342608250372785167004448734129768423549237552133435573665569995178332358711612303579006731127172601155651731923969927968767216221415181489726452030029594449428373999692755460424166336072292010661166052305288501098955090911709144704397688343474075134285248277098540427489164390503671975186571777590176954155974241752198374782120117143180901501145247127465114705133039029887353933405982172378195422602350390791028106369221984431545257741946628446248922884144404183269508342244972171801426922028848806689425592078890688642496067800023689771004887012621913058639047384454736600431616292816823146578656604887343833653969093818324720889805465990516017694841567931617406056663889960366394021652370827226848293753991186572222793957081438527789535007738028509878550851957021313641774951829321242880376412992790136331239495385798368269572183802178746093031054068777718076700983050591057441348090953110248558591894589808621878982074559833427714854434310120321694522024447753846414643857572275966365338121184025672053347612152534457674053811244154560758611015565732228942463135236844652067045989933958797975365692422417130349258305443558401311252916457909498740263083991499379221590226841046097133652376323358335824195700668391228696031493574344149293335170189155659921964213326570174943604038174841966313290095676306258998284830412443578022140044763944243565372765887988928317118396467608049952251986682070780840203765606719736104775091649612981710554964561649160692721915736700404987083418159097657792265587330774909035732683455056168199633435714754743955161151586767362782929678424539193889341596420852238074757945327475956819985472476424556821604683958372819267375384228134536648540800964130745437941581148809649457191489970492613613405369385836749667527676045319228766710335929129216708101217571235502580126457217010115940562261758018864606198053761314308866287493581464275140801269625713772547027879416398537554274406407992710344770252766537156159625578925296646142295502621568616683422841094252244307494754488986960889909340043087684907268904948603845465616286692525544719211009908692616706014893210156076645957350946547709540802554958993225005001393707954043646631372080436216785176607167974145262890107299943354538619359290030126815795576843526801946373867004977026604728100754602377759836971768344502364936740500640549606170901069859147011054908655324549010797451297133394329511229035646211148448015026455318865976114581762556098742605802247660082455433757682413546836482548989856387070744372942312659179722498559012286182466254558609141438462357772478621157865409476977249968712261697815011966427058445967749931078582037398952915693443708544745615372706461432117216181790312063340458421617942184625640800419141924505246950910665667561950470154919855375172983463693819168707682996806618193818557802040109098840343594466583945254224202247347755103345530322315692771452959857815400026796637717611757594355691350244105685905721159932260229927325153186731712929114973744267694430875526792423586846962174415687701902369051729633428360553071882341407539831291031536811529236162012108500359319776366478998021928914538923807170888241231017931623598366962761850449640620260249411694712242496164539024596233194616036892395972358013942744131916403145236948726771336290693665515444584361756073197048681532271201664599543059728182498520495369620409915673248153795492038874238035200434904214976995591016520827798235025326037489511622548698645919158181375822928203718254555083650260253380088875797779627665161239271190768253758528069210771835995948128006923208417248108149200298638371495494184070870569545261665604899633721873521747085906386560336266770851551439876857513766168275113176287999283828338953306453274136778605934903692426834721348643159319308687729307483242608837838052975204435803609753639105765298028907246331471376888803385446888794471412266303612200029030991027138442317294445718234664606716539014512274937701366102593766484533482106788663319858876709901598734301984985799703060097201624748908058539695575996344991379691551004128284018853874713260040981131988170975014251476386204223698098644427155085196610720214962032218110865085395639169548290313126876391350835392197607220710285081074925859565134873019679516957570358749401904846374357429132356474232705409041232531954395514901662625725129548375508655661625859382474167166972304744913609748064244370049952774934232060666100523743046230870098005902663855759870272614153341211514306479404791470363021108604898903955256516728163003766568680352343854261961129902521164269415561102586614294752697963555057456996635335616846858479390814716546897718480002758025409046785822808874908639435208924754488175759887506276955063587337840702818391762265977539422273732881287851345194817128871860055816950353256779826739134513041304219084656707023090833134393864203504846895397053269377440664853163069032583051709712492393729404226419217227117057489342805699523514477139186460911721328645250492305005623074434936454163792892321817947263096416431704192098743103040321932098222777874063671442007811055087037631748917472933585489270699985061938360686682391658492515480519063905661658741373753104314876549456566363471848745067492087762821143680187745120014650432494818493546334251918697419855006126232034648609528966210907308005039816431545426431280709183922722609796903976304320738796194195207822140765467584452682357494594015047547567279063485475904613394677887823641808110923429950239163390088078257455337279544376899333679614339997308426026198853318389313912110144869823503562163607046448493551743637698143233648860993573101510568470663804944559060779504883714343362300741325685045900725603524570250482510253338523557639970787931421416384402399280793924612835327875780059358607642110056679572105946884521734335948213322625801237562637424359961350460022861548199752638323210062362725479340852620471677184634548724477439693928041517458468494309400584702267637882784260690796305499280893771674436916451664948310046938075671500792005800179344109348565662059466271377654167250716935823861954325573668334193705386706757737250034194670421054239136078478017406779508161857413935723770013322830931181020771963020099500755160324026358122058185121895177459484180919695593464984677006350993331819771984438135017276918609335621552345275345648550768821443898783904647818217243088639951623827445523015039596913605073079198367475081331583170377381037905937178042071535475742171634392933319698431790571115645403711188652228900851784646539272798682965965611698621606186473475027357415248412498681443276137107295029100941459415582720208963068415396542285108190516286000690263515050036716993929096246193320150507054799986226766780881388606769730452356473431581188130835332475473246418607999861408541142397244434790328353095295189149224327844990508836340298989154470148274876344543971458014298202722321556599806121052095558472285549463869420516295419072166719899659928488560721759146842497748466109602109679776495018231220217614651127237874421658737986832041467222896948372896812182150903504668680862055515474153244192018148829105188162948541118183329601919030483066549876040865861400935358624882159918663400204357407393449867533120099262050944610992929807866649204783183468822982856921816346885764166172131633538651122628395305973483710933084890767293327046568227128339326463715213228473593310156173120991497200559946009456464330565440342532368659684739327906251165619787774920311533892254432568254718093096734922904720610718789645512677827649204781883405095962073023884776865310869402580515240552097262227519115181717307649039229358859187736187457818878648935324830225201654726290954365566346182948270904608333067292508155165292170379401547333938509651169969371771496715589380860650643262121452209488278977271576320112640558122077514096254347371037261090539650912083545385417940307749397132832567863064338124978428052081918395937146665374686714274636340083259951534724297065744866243598297203025735142684997281852268195976774912061925753324675710248157240471534333387132665707450509984571329767826593133049616168956102215090588540374687857928197460492890029448028692506109966350164427276775265599879506547149260300249622717450318204074986617767170741409345511328031892261192504793133448085675320290446463122104800418346697766371675601925570131452520136395885368845457797352293629868790597757984145070579340335799733384109830050369266173462938714696063048449527770529256172023757384726531112325183000881007752766376147429397821695335792308907531552431862553686182038532045389939923377075960020158907462953822936338509426840742916035034150927797355301865737354410344697356873647481828114278458453234221052675770828302244622243126667267566165629900569135699460301405835303945831563850859517225168675939207450451806425445449135406701120860336227499169578645459157618732036743151713292625894461088381269062223241904884410209791862077997174833257591533289513171659371058817897811023415469088125950616200169739449546840382224479584747292930548314984359444762009232477043599567346168498252031497724308144146408670474262345333427570669805410245493371284452378987036567729719703247877981245691910063512684092702247660646173494297647821350790367090108208080308353526062517326597558268428971711573730810973246091194819352795486271226948810024620193835408416642242367218648697157554100880067829640269540318977002893683710114030492655118383343447293596789663343778876477623670754018546510678223048090113756233231016844288974432496821386226831254216698794446660012761260301602286386038184102053328696178557715860354519274285507147879764311396900126584180625070455145764187306543368775294863391747292471216370956775750401363859380155353396211018685745120014275543394160999359518702340451410937405277240479829202714049898995830483216514716130405145974673057292645580440687268596770232813951634132290168426625294672632923925258381996175295215245911631572470734157982779031067966501973291179272939250978966064159605741135988934014136055904415556052864978478068215500854217955084556605968768795369497880405264973158556763225192704926131866259574386271588918358487643920060122569274228837427881871549680953679661886912217506089284910945874745336469063552440667943791527054124107909162278594541756567227090701446396377000252902522668223319938084412229530847658462897799385897796882897319454855348220408882812473621477299891125971244896116631736856943416087247695191105857496795689551437990216334418601306563852888216225440313122081819454124016677522465021508376582617552541480178574646680812372621870825271596864220727781670876912771158899134012139142581388319443804098421302268374078718354483677274151786495779823268457630653549381392716364835574589593511653035726722089353794680491391449455431654244002609064897974789980261916948787901860030007726540222700942998149814486137520038044035002495174716919379924211113866881302152194454090741141582334706353808164168673248014942001442166093961464127391503962794222457367826691749763285219275593664052403736953484270446468179861725379670864411374179766336025807243044623867487274040404192513748227081432144500353299264943714492748888341092349807817016136948101996585027300754213077932458792986954861080242893787859067410907692216499362761498229787628885213206209751093988046667556901999148381047011422390865822108239506748513746866874996997557713025447569833061420248259230802465419304307746020830330413809833529192839005481920015003124323757298474080809235940408326926814502703868206290865829285628018028309086276017810013184393710718438026649862915033306846682702986481370882515588278650659934088911920045248456725448369427441979783109783504252040272522156019056085264148511844878875838305772964240048479174734905578545720956431277423894039536901756233971633249106574265256376469535877330207351149046732126991617105670365115933042273748207447747392131472318551296196876536463214976793612190389785393367383450421801732117289978293804696493353490932030864265247234664963101015885424662007690128404917648471995210740715622855167350499851333325967796122208342392132231120892822449620887019030804762047882771706341418980116139719554893830560058120872648414900629813345527834423412564974820188312696051005578536026470560707665733713551456480742836178703800630214035937478507523816593214126045843803078081944313014065405688712449669398068717234846973038579322470200732303689326898627462094279790088412064158277975250134488240337074496653061977785737401665534962473481174810612835547035222188296132094805396763568667126862329322766580837683749735702976384934396676813007106303522129195348525036232834781073420320914749019072951745689867078071618773787507772247888150771390744468510183465396236020904028173217257492430061136053139047916625141664730659957794601370496019733264098347349487989385495536688696755273575978960414979761374465179966940333799750019736954908655872016054424471311493319879904805849213856412623449752597954976203428318548160688161657177703152643738288358728155973890673458768698630344341866173916348302674935247716134124830682972031246474571548937816152647457149289962861655389473220245996789475916179148280549790089256163314648197803420407305136031497469571007463043884645112617682709974025045430684102645253209513537227995668930114469127323661224393119604280089893493286864902048168071321322425653891656929174714607478667324258417135440880484298504774358532855525576062695270184215292816602321038953287846337160510893741245439025065858735709668039505177611450493166923804189833743728924432985492430916083289802581246222882168906346971434700303369499634025123555959706351367207411260312473420233551074930345180387437196463270824521565116299963060808017013857129069914045800024948530213040630155396938849773621576594757694435162365278375993404478014675574361443372173068364270410774307821349431275364394893716248902318864548373399761016261989581345905524708876379614459091037864662212944422128211747006475753262368939399239071010155200500973020391125974517775166203771360279783318450587485664054342697700807929100543194602424331615279010778912738341081008880693279416371400742681581237255876321504225919010960251236201816406722510089981361181909957797286731743184581487327179458849018585479457291053158354421483022166287038988318297991236449123129771505754948721665435435854806645930666560372880297268376904243875947545539701802886047826418060104871127821478019532245985472295854152194142700922279411565038346102169293361932038044092282856585181587262791430387687603425631137571225202355952789784324175341299734983100220588877573615143284129185533973405826078250202414184576093096262331175413743185247896195266088706390543858289123948338613114695705209868660346603499028373249017437119985640302022210333582889327255565558467933496287450659713008295144304539156422335532983388521000342051010103091897811057399020752997913032943188467169159105174810375815556254024390206123811494362466393569425372822526054446974125755678442910768100820922851108153380016359901215091428482075354443892908713882976204624022372382585675817140419255364189317716591098298246805459081445988424179026446344993360041129077645080369726094487148039739550675778252109352612354564044231464403174204655663173959380358704295177386791468904563537963337369670404243111800963189142001427757853566989456968195659085491989484318933541880232473285487810336092702077124852484505207728166983761253504851417754561218610762838182679302305625787532082627046513994766600760340007986496067811325075004406663951013457987966827064996905109234677264852731654543287437329716517741339698298913879519388408642563804952788459182507366773055889096213697928866063700445384557568359516727679224842522785035401568945992890021162414076596968667572143763320764298686337591502418982238609011973178760566790782544167646063264562047758509783616854849545157187233593835614136319234037524872176969029872366087437367867742211866945250233926694985216757166909370287194783216920346656389435120151085001185067968326723497368367039603793915324983669221935538752176617771294233998947276522409282696303625592197129321011622171480335271684233670075979638426624918248909951094205225066345549946550435835741348911469801222571057365855551616703474220480326934980982584986081612729879481813483950130245069443797967438373570032323720971212472719733019371535098404240615910564037213655604863178602334325173253464458384685644017454137014313445666257295343994607827186320150476020939873616184954494586007157700521280095020083694221168325756627537124385394546273238687868485389596896800390473135225865094412267433228277119826727762291956622895460256340918008871595284627879707222231143193295913082820989291667038081572364191651033084484148985817041005813410493242865774403261451962742106557236065335244846188910880235781054583452506390150267954093374532764192666263279942242708193627796250152418197859994817338172834228108333683899428761506744401931830496008946220111998163485381982516604912523506058638305630626033070731639894039328731616632182600885452108298819574805359993615710665199033874527294883400791425620808265880070287759051145025229508707225946033774611245490246812159545321831855098061527161547880903580338516300875081889772002246504804861322718602650130097861052136896140836608143634798709403395855110492162152379167358088202227979850970936868753807799685494073944737175533033664473347167147534020744109351758533784928971465855167644936843219795655242753235707651894573864200460012111970535016146271924894584876613514896725446461861877478938599543110635828573346465521680040399501429910055138003579315316001975228601538137050423982732742819688882280207524231930754760336607001290372593642787522740731880805574547161020286941935404193397788948254015167554073818184598668096891229585993890772817473257232646504467335371942235402392520823476019767838757337906913528953506361832690411121604565954258139107636847847849070479081403573198728366728794454533554162636259624093359196131714982147407783968981256701154630810011692193764845755571799705287062080891788001937760555320881915002643958711430374109187640792216020280648811485905892762949339978957566428671165246632701656554651963781842151039023081203340926780889937683662783643618981011720381911874116663700644798130867008037014663910052745210689931507560080019662147215416394672665908701492598480511476919748451494654536304813296450246938000729422524955766569770140609947777203671633400571404470885907307113275504839438613685192527374421303131573268211425489745214968444763273560202922230805816004239393781940379743160197963016112553658000952044825954930838164629003773047882744853560798740825700279528615081155383424530567159993830259258858496021013850281452670713091601255012040536546367121106524051865309659324185188676196973212363640462330145801791877175702170641688632951420316888316017315261142640896711059406357267117842938624082993258248996570927306122030739476225286134637327069903827825771092691606060600152843592071137674423171584894136393539104677229431669069390558359107742865408155086855541793399102665369611932079460162427148775516896028123167683508321661217811792068948394037015685105847709966965764508861821543079061498659973684459162975942882180618818527687960811897871850953891735069446850978358627886907621931648391723179643632614485161213918045195032976277533158635965045126973559260332384502032762294381270668211700186931447592748600629690537097807847965788229889554748670178683520471322294086990096679011404834272204190981111643446300362243679581964055001113644496239543794044436234283657658941527696417721034368751015520523646282392981601868070200859484896855185170902827327326198259472016247809814511087589244087888131771306744132362537742993776890904205820302688368955911629843325377522082363255888988646591831807648233042666406775408753270219861889639860181232307970195593165533386896341098982990737009925895793628494513946399520619155800523375232508320248635004486980722725872568359565656408448866192591301743495479853203880064041226589179553751914920438033017045471646565152295632284154286661506875881221175286057556566060959994820277883820656815357087017570089188227621841564568206538353735886046115526999674211796842954014072222711291093258821027642093306378271088975610884704442045633400227241530482531361666199863743642739812255851127026217792862170764832837788178031194039927258789091425151139404409641836269763503673796490563352386844040655806559061205091310893850880306779280889206788276416173844388075329525289537096650500933169603943834673902284721108260916010354582333229679808395145541543182776650888142582409311610420154560361868876142419341556565742683662625849168784048250308907518262017297452179644665323509310373133819701472052602112798950847015952915212504396559733312956310147785697225945075250785850708176818423776767203402040748154314088154669998089365544189906921538549228715782434435700797683737348427032022630224380323485877233333470880554259568526182266469486755627529623390865522103089615432891266786366739753540859052144727567744432636382162217899740427127874150540624286613830933693115799666502370369721171113912674845708778186976559930871333681416252199389736554401233896159259891485970347413556105493897173193885310929181255476958073463850395802331923170640767553024443945180373848696971740976488221705645485885055364161762724862006241824909021534689678903403031079661375820706570605107894485211671967048276986886335221649710397450395479358950084727788053734227605555939805093904939608182785983379492840182547717495987988562097598591653908870240305641649000281955706494512717565959278569598893984457633105986476619877682446089770558414720153910234227348829007711334888226338175163147240305520111422257238292886309858859014454809856676401653359087069341072965339175127778567231427093188417445499198213062868738055526705637651051435405618590994111728908673024015722253989854955156752388296045214869582480654301843887671112649253789919332892182892990848385646239529346325249911165932005670894620130284177346794070571261257197033837870725484880968681401122891613012768970338930376250234297534395893571343397908468319272292362857199479464618047750147020297329486137336760853123702476024495240797271720339669297419010410626474211039790126523606479630393247534598955375104235510023733627536433959484266349085612916330627214488439013818953825204994605626552028683579593540618781448610270212669373874965876735254082257439644695946763444372264469968909225385614852320285751443483211942479892311865114505103558056309102624070457366370829750004106830524501510166092132432142002165249092972528130703403243327967372640206503785854342784943989395825835460336392961538222971664459794360670189589883914013636561732376880208490242519651609816338332749449359775246464881293333269080247917789565391203409397536687733288844627078520397596732413221708631382961190881417692486596857554815487814153150948504578527540595321457819385415136293637235403976029054323698932647404789892548346464970577536026471208601737463763758558154820762646886720667664919078146541475120601635595163448301782940227499174437873928570533762457515763196339666465011772653707779813526160874675296132564257899431255494693246171729197394545851243684007484452307176971739461735671022127464227096796256868714361706306271045310868842778834961524720405110168397670782271753330562526533350449845405966757341486770667975444802923857080143199099629567371319043498899627471141319818915814230758620780180463707663306244525010964375685580596565795863770714014738181723518546743067043985614791530522511644697044014091264242231475517677023832110394838885840724603974377942301187400242990998580147014261328320877050567577916915029578082251835935101561387891518824449783282529364817356275765932530218228798450267973756174164393437886961662339574822336832447412648095867286709763037064963980361277525396066586337347568000391691889135897786201987697899329920081642533685876449085573647118368111739208331300187955715406557748765259198895002226682275152088598689031828013046204701380956585365692407613300011704474785963803484890312049828033653649403314300434101735528634608696584852309148391433679404953762710832445693555975842950074227099237251275768008728504298457797661605389923877680688818890210120828079091051537919730388343201779879183442543269541371386876761088826685811605565576159629929411450697071077624897948594154125307384617488168571377131363282567999884433004567756955267686225857889626510521369081334346327154060486654713385470176055471560888966245143055902672077709401714810457316644271614158222514194849871693621789016754769696490489264105070077202220712480657018550899832259350599655602677134307098371607545503368041677654400489260150119183438940163845140975155316555123577591312574331396299329491938479702011033004144343885226626983893770798180858041406797679725347494639645410179940645446094698784336320229198750324784266801909763539007803094645835665257535038215350719157027514341134124718975561087554042625817928600400963653873185257782408548220369117568114309622478702271423765941556840849386291979096944073355705556335789895462542275710816370303131441666852643362533197837862052092472618860434687888273993036208175314562937034173768465388740155162442701904099324744185365796218916267994146474042812476871237857116271916162540794851736403840151021187485682216812629218473844594917854724531883350818953124950408839074912686953904453034632890458895164702816147278185691064339727220795176091731511174293116975599490627849950466340434271572636608080499773764520635283681857348636346178835168495740868627975120678676460265466120352608569212323767371566290810625832248224800638625892808781443780758002688939563877749199159503585696282582722641562783477500326796846884920758280745520638096604543384968283118874418146080573732839286611681157291727646723684982691922874629125443733141611273999524657739101037187708610674089655978467230241529989479463913365933987290419438028986847719150389400322789390227160679984233203745773010179808978929042173510510429168502343288369799864221106442412776927919632474432948760091718743344403166354504222015764576565335134715574283847346378219089069944035777952927805045954440832452255083059020684894122460997969456693352824435995859228203469637870984921137214318798093911921419895298416021355706477175003891109989663504033443485725249309528970826214636955887937298554772414402850332562971385697941693361461122795178296866024895431168451955031577644912078491893910332359887181430079307622084451091699971444873420015399563810161749568335641768719632448141367699296345643723312165197788974198216288933570009600374477134428282120910547536403215661737425184649295505712172753187914350548205026433421196885724936597448475640985398471120246350650381717680022219460801922724619613140286612508564943592294176848195688957352217355381631591861275139973581183845533570649537506058211643778226989457859167723358230591502494484072148687545913173083239823789275062215927689345949969108765686106815650181561442446040521723276672568622522566465843848534633149525605497612299075266900966595151673703526587736215504431020911658105954500613781220672821213669081302339639617330790387644175337705801914372215422846596486058719100456992838968070488379727343220974749501936591730722093058775191148332420008317244385207088639343517257889854968249704093745883451973683382709094838754464554302987209321914505009343487841564653336456841183667752827834408382665469720221958428506010097631038538103672034257885758870582508681103048000847658649515106259771171369174920454501082073852138333876697866507156987708295267486145415451559965238701667153860873333004893535972205714103088754769613901956982884423205720510026468515985991540115421990258009952614339950272367409449302463469936824977352606525246860155228739512625689499403580732974521638602675866058376083637322590515012909943075609157777870987897726692224639720891823316022674063099070675350587593302681902470694967309970982383356656609698823019056643405898648192195737367839469815012397633802107538485986695357860308288049524618948977803869919006505023202184896972885556582434201392747380084570856374167782678669116416418288707812360103631703913975543278839661900198546549757625185992552245906111781493075399158395548038323585963194534984696568507844668291142403682795847056838516308298067015401709919912229768764468238944036924924410930945616271495591170898751531404208345543003652690954846774583491346867815786992758549945100484814092454613677265669890023786845978907146271679606867248061304761831975584003101610453768420298622660566534372576574768357036262587282154126120107464156133495366768595763508612494777253825480878510111089220135112121464765884761193330715691014906409864936697815784433595658661965043523204384657954795419484079246414212633795384857108096604368687256361266021928410464573031890891616056615440141142524774316977614336838224257019277956068995482165612406517025881352837724877553842381651356672115949383682022311352552092875193612503779609104099544655359857724306025727953518160471024567459297050974783095419745067138520528661668301388821707943503662301082573911914084536456389466994227427582990113088105877704690491093334492575095905373901667663105424559402178593243014034181998127902239258941860736546773287903142378702679881042158726094520530741896523291485125360298345121790871688783588292113610213215336160577831862862451278437045324699339649558178423699233382858496836070747666016238410878300918384097063297559451578982772036132091887422490312177534431160605428193511310415144150031576132660941153997051435651991960359973011165187876177476932353927946023087000332794545202623334391152878723096120319769750589061355489418414296415102289429351056604534219912130866317435202102448341928726798291559402119077045660095095232081216957735172673846440535514136516209122247237498915698498528699969979003141477584550028759380509366702196983902308356062124902620520992434018432752702130966145596032008314044983648835429150515042477232160715806134085063657775269556066323119012439189475863053955001254081861864040224435917766746154327308942505437368979055843896776839617107389812755708716023025268131813250786038093548572832748115185661165614875618112598432437117851136041391325794048725007611515870080761127758019195736114395094489960978367550254138468569848073645498452332729049508370885692954531901203842272455890093637559020078258284526569479756891625955363103628896419867829307277372155755160282431047522908749357646969555402746879253846762686961306789779982645231893440069987870129237309428169165652550917882335562440899093238729653594998828751114598941579616756747848110534307557426467956850721538074532818654368044952372548711514773116416293699160357175866387664304334785070488175734169486910393438424718049896050707563571209454003723225493599222076377712365832760219454637835548741245691591884830778633420263377218248171091625332833413861618549333967344672741798756100925624258172992252617492020972636487295336847494209868959974448592630525500930647131272418778459715379345556069818562458718852060461051314941043341592861704190929750407725180385137428912338324871180189458405152304769050374807473229115957079495947386921937732167219282291105186707761512502943204832372325339071133223442261188725690656991464090902270520270333097662128680842267552531251594221095120338054666238478464675339677518914950124303911292411340034877158552861375498380270312382876491230191048709636010713892377547869707460760709745277865763844305554837233725408022742531941459234017902531873322247658186945448239445781648031392318338208980010341813673430569263536692378244799429611172716204775104055774015231476563541351810179977250303671719162608709315418993406479758091788580497527689264166521423318705781597845787784397032248666624886879031394886957421952151937806430324114903256245849568367797160972574967841427304865639795475995410329762208085232415250866614409859136234902086775265268364696928497648703740446955278628141281644736320006929320446838248873833117304683672198673912967556386413606231106409242323101945974067723188396183280363216931393669294252250055386515917684885461280970626062932675927901985459945190925887808421354608347692581162761756771099024624456980010349731432675886968666308704262872699406556917388719989390049305956853286548926724318601120659641053952120212505547665137815641681243603144468836177623781475533048448456053563812487068956780609199595658026862827582312421079352949694699782884283485156237165313493869740698934658916578687762635546448702108081281408903902520804668331916874200507801690005073236430652998837029867175900525033217294019460363390471070892169102023978054424803245754465909987265716921434377664333380009435779824641038966662408157995454980640056589085918982394296485011518080602451698497485315482755265970132289125487225297797404678058447447056376632514065971783719951914234239379419725547374510465368418111579875030353462583060067285043475421992472273981408350910967088492148807410899798971601967968452519193025664370156037202541007570118655199129549279745421585563034145413222756259363715456376069345472932856413375696817029573818934491026373158703118007322378666636470380542716622362513183773572656796541189192982232679536107197157107698535413692738908968923755723393631270056580345009721945476339657478073998825990291140704455903919236589264211194240335529592145583509577031908552427497202740237558047062727544933164323657793615918170991092300773967202671970713220009803624108451308037893731480410716902511899566734928367429081356444709078660749730724164809776468731963662274109207300334903582996461360416438186620221715251368725265909563718876482969626308226167057735637821120834497812629064436616324894264844413598588864929044570033366994063750136707290696227161201524203651383011552676984249368499038616620478720923934483026540622925042875801221687669406427949193533117508968506027228068035876559784643202820646267470904700938071598811670845217368683892769456535415313305914593422296009808810829652203471385644776961655814746035861999041851445874619345857714986543722694034015784134890175283685615386732817950141975229481413003192634102920048422447012398310665306791795432732939308117813600641241405521619259098284589761675846322603897202999453610073140045284160969997102516894567375296722697409901420837132934325164341156078942411012737908419563429708438931395874671481617521302632057659115301599907942489559613740342874823398375988651225416144191764312787219446430818544358297097690221932610602019732683570760500065979386141658021997561210706465335589943623286689085049203166306558841044804874187516994950292861897034066046456150059874809285380974402615757038059044771737397506756366952010241667662823440558655803004772136176648921741160490339418102048023930199593014308946274199685063545618677670349198296117596783521158940355167652652735307607793954264754029263194056454126589786284760939884872062269731256724106384279188858814832337426878829158017180917857946631989690962982202949367571089737757136419355126269310616457973965294704847553369818244733546868981897092482869082684239489833570725047267698081513732573947335551372988365106153643042034311126576965201117054401829873348778256482908322162235545686343771791381053527837901396752634010019387977700112991363829846994031123752927744376110061916211781005424567658131981424624192120837215184895083578503463343052580125320108905815021629980232717632971303162110855810235477073880941514367729613240200088469046436885681304645764347130462202651720389573295320184714026757407549453910500423126754369384929635300963289415379169258782451603443168948133986805542965379752008544882215064725780963894591287590879436318862999049787307118453361759593795370813009458253031504174578163911397904266514410619461546726099779898000204934381078067755790883415235310003261307782612987037398327420138486302131170954270902162438697348027346964380304047205310709244915121649795937881867608989258919313724963986139139459726684241125938505024798783266574936948869640673835031909865035876848171390353553127897277173786381518702482161672869803486607444361492142260054054935430352035322213254859659810624742209273064111577231244989007458136440888321341644944525503206530541269184155286425332295801916718849883574007991167485436285460606027714210116470082874974365488697033582154599360740290370388181700954027698232795294146132977558444843496246912025091671172111615719206866887422889917188434204241633828378061328598094812164838900888346397356083895872922309418930183184206080600369898540624922239000717198045494441544618129842578430732550695656391633056428155822093155751883319352114925251051254669158605109307707066178460088334195036694897184143050593945470169880579805027054320596923802618683740155605857583796566397210267003377707908223199596377639735347408301584800202499706306036539248798255967075907291403131611319856361004419959873976174920309296475034428652827814717370600383331988693537203854407587526817887988822717159387853225217261139550540031036330920246536444629023070475417458949831864846860079466774237446741238968819966456206529760776067275177101509090248176893790169884571951201866379389994235882874712319051187962915606264775398625189002309882597785809276652966366601726600100636668667420294968310034604732630270749521892291333308677108710544680335705776936771264672563225834810703777876734767583274971940575571163152809264253687550653911267060979338835758348579505587379859122821155694102256637174282817186322146330722347841106918365393634604093533979247245382557975998281456588326352289620338903755974850914205906275493784356830495625979096518714526041101651209656150400614036773909974538519360887155889263892982314443634006459105020841993512650735740030278110200728097858059968048286354109340112090408212005992253771755289155384619931402715642671999316569313824233371215325249602116095499074794285230809541520899491715564142335701593748073206861460477240894925625205887659112917016614204209665748228861342506996577245750387919945454826619596542618597694972751434102472033175321615047049868775218854200925568117689604370878328880694272382147987959507899423879407572386083955534772705684961830609287603581258401601493287254896868071720772312268092737173139735599788722301024032451005365965724157114744965470990154809230607337404711745333365743492664579988058690269562330228174572033379489431621766066872620990224346117972267537859756964023180041181863005261234552972564973667550206128435933913015564905763478582771210859057568781643202733623143347926649064539075468888187255550611984751209597148520881324637222900977731539804408975690636061077309817944624869245527778427080125121130690631707748949846752384079726176491023406454528041808274894943794825982582326006049660684386710247267739644606035323839804736300387024167865077088691671282032044407348434043203915752958064734123026829956646364748138067996849570956232105432779393962848175025790398695377066632018250495836809480288448146826810532410505180657005691489712000693924986002849458763117016969376489336011767164354461200581041423482579276785155664989230798218471035307166937617144751350989257866138908111087049122850752926487770987674212018479664112634237224553690798209827268165290812991935004816819503397040192537134904095928572264790310920178589506571497975315423507476411387124686448435347237286736898651890297802054071932730516932324557836610026262045325900435702289099298731057321548132570030609791795030690752675788319208556122031254598124189253794494046879746871482134969075367934898408750096183002098254082819079351377954668316043365913485278301517275174399456188653433362193662974946256654815207262740564726909672785553994787824294747835726604498159193027732516791455211724501247248459681212390345803884610824541117264539851345602827540036937712299759948443461115929052881401193455656102076902069671281843726524688377971208589789685983940390728147187879102113639417644393100508559260128017110511519678384077112904530024558689069703656229114716344472802962167181751396554942169670048183126979848773762770466535731746163663963133239215766668471297009841450559441553080030979054685586671328983156342761198620913516164427278771356042625058763231815860653563459169083723953393295482362456868296634731164030052814893316724730486447681987143233284571105713540532048539425033620496638019437776256528587760052227240073695867190562015323033768368017937329906026260207060886623189993435854256597644620518409518839257792080336001266434050200932364034789378950952524165904841996421385615936292918550027213616339131461205742574454636889755436126401295725665497348576824685101488411086018109074164586002609734531200024465250828529924031826172322771951176942752902845566194077395477053701236486516371127345197716047550439313665751468413900366423522350508667669580155583269651454960864645729792276054723275936305881204672787100357854659785791659435629324839822177284743331746867290353720364638527814472975617994794289558528660423788794526746048216993214292861178848977991177317346465143082013244117906006301115378613737365327796590562861145707311038743925151302487664316526265589127356922057793150099775630836305698684466992851944340349300087868584335295594366276575279938236106211317695928128911476814316205235280577937999124374989698851359618909163157183383231223345288626755208327388588819394533020815299614526018562777633024894535309537384531619105871610297916199843932744166544000639395371753346749188707350915076705167305493265740565047323795445395838433994404164577608252609854546990703876507985422642656841165807086676741071900594363068800906192240027619680400746449234307113553419757178249047213067943696107099062734566209210617371507044753880988640085056731618606236922489249263100650801456953648160884196160871561006878210903225976875781927018029226232162868351892718592653475051961011364387192230025028952119547938049912552130367903383027760030314583291310990238686545462663915849689613790513153563895461440047454001774028259707736634612037222141472115786836679335649929953493286963652237235688980528105222995640387711857569871572678944809413375293828594029766191218003637239788644658623824584506730912278669281553126139001990959561419953228456552273172928291378833474553172654317392619362847969875521655932673921531387514108156413612089869671561697332398922805243122194855725925939166323490199493805103564068261928729748385605342613361204406037354764422144303431356122711031863653265820263531594172782563575840332484239727187582132605597886817879013861618340233971890597114718410135121038066960416818781856206018352083881311109650138627261732125346056733135570856895442673689286574451358966266824186304255150190398723388529625300923976581582144994961751537474748875421679644449067037696553039327107021348422866842530622101158564518706195052507213778254505825634763175441817070299992923584163122150252703495050752268067548041392425244026144312466077442695422704156558001139298516275091346773311860403220017404461656047951431110485747221850011000612034328276489677580573486878229750236296333616461572150635912938619021281104469181821550031112732270310384946313926227795571052018873879372006481110843520900902804074741506711298989788997279535733584975864111746828932037586348721340486855121165655371515652034030104890237723064539203199136785661256530329076384026843516157482576656883635447291111517369944696312206925139661633902297936918776861970392844122417999801599500148694425606037677740139466634292976649182935228123318659109274937591500438531866460885602160906319751562143620363092077790430120682974256634969611334515148070087505643149646563265482847840439359580202573099706922646305867071182080876231117683041762748501679582528205140362968954404595493353503024041081398934733767002075575910951633849071203264311483814488844445565183949909632101116826504817340679665060588687566568807150530553152476740584314817566419631707222508387527947230846871147373635062575379833520151836372816548546483628604204659362573174242852051162097768620082056569087959389495810875505164524334251147900652279449561468019310143719369025212075477049455326614792059869509641616076140889869816384880080750694845421384128415304200995227004025922722056571142034344880572282092032493293688602429935452263893707346580524996848289816833587984881791893143191690426894848830982708740412770547206991770448693116584535024999205752883202874295677845032675140142134376806763847280067488204040523129942699324312515981849947565251044471618524244169646858794470759814031719442187677248370745075199303274562932129352014784072038530358063449863219317950191074272336427631071822814319429245511252066296169445596709464186654272733142177658223648817347154779279931641310079666778140915158630419699696834014209005251053975357547008473113393784195987402648627109913521156734356322261484459124885100329618099087453524553867955393724887242670015714258493768027062673797108083510096567682854619531457300842891296279037870184732420998413950637020029692741456520146046185560141698110420141383713113623051389466080827740054403193656494295418999902372091315491705090483031025947470770763441374870697198792323207163089323677203373156101475227765531577986699305150218921121126507480455083702827116695141762868988813858565715395922498880456727555033460937233112670115324408085781301583217670743842239731806191628922650049072506059700173448447827395128972564630895742975446509240360690108491207968509138369494759513745074312822506076730791263817690859060527859928327938362666705857996062012335624743303823913840168320565686219405181014024550177431173374945168021687437688726661187560254230713626125234585404762845949159686677098197684485772453456418629991315829705302676150113723193225135748775140662654729041354825784791301494532616349715491577338741122402340088205897217696488320688128143719622083558889890848195474932049611889538123356873399774883247798016480983995708418032317453060122659859840649396241395638042977225395898195137714430354298295569576394273080905287539331046366164943174481932038219976463521332401506097906388752972369364724466682938933150906851851255787617378468120913513134742465663607371701541804148965880200813040909348807247623646786227171365870892442887316448067174561175582000574121669176284551806837293204780281503259656504646590457937359865634358256240488398013124959852178799976819154445519550540447003874148260355555010244474764662734531573859676809686092979191065649060227256805681553948826036819700198191280361407488402885768110973680960999370992162117142476557465912290328951947248939246176765695067074738220880526218027048939136264857075652126938334708664277035103385350566621712815270437631876413192274955248705084299908869431308518620350692205800721664818200906856055424616297824348854532460540170206673489400793354382822381043322462552383716198686066228951041630224365558473479756637083273277686639575399139376967248806337410277241298928067658089152185756955061838150858868083394451349512369780121839473213947087530019700702277510099968113374185146544055907366835257357902802529116079506492560203860578289533138147257091251156727427673496880823159168281347192244718346523868520204633667241816647438425501688553770726270799945296818828903942462653026879714642646563912804679400255162542324087827363235100045822692397997651875021189843791909543680741827011320904096890983942363133945979132914910363757556735902593999139518574712346789185505314379768059341069615099658666393954449723811212891582994059266624986022631531186156504535790271796171588961474438611757547692477390168549293929141941094127388423011129544439615892749394253664723289994010214311162317547131375334593329377883318624042926735727738404852726013604536209120157642689589362782122223713729336841532511964606381276988339884640229264173947451390750559593502021992935515930680791515895308258317761367242230571670139853461208830432190210618102002983368997854679171378059862111177962730018053079885521768274813190445999529471271640792332204469122680737691827547541595659365146608974078132455523743518714515651271718089856230745357014522467079363308449644060983740439154997106897155358074601369566723360200982768468106298542392488753690008533898641532725007955737457792557392136737415705064091236612819686394417568700758107037116561172231790752894017084178737607219395119796119366015998121532922436961450044269762505906667337834116224191905151097036254980455479564855327488947974772492083617619517935659757012228207760845180798360806333026428683247566538356172720895940837830005665387071196606321898986654297184487732351891346262737830059100162333392307183861202970811629203479423836518254532589337969125995753348395482918099558487403890560508787426299621261770578516736448379247524751712785464217235874577211852346734636253297713525263503157819126791038918405888687693310467389131276270510803615049510252928914994902534169575367193652108851521223905564231862473718826131739631158013320550477763878754031362242618616029138015212564793022258287299648063036830733063629492813839997379091471416172472183914498113890949077043857865054869446250759857476422493840789150101562826200644620320727640934354750814312834777801023674866008559741150688258302209031642568628848347188245444864281625735291744093678790494500043014964284164322764641421337454654414992939515875649763662137359655012530105135456360465521698182506981817792842580677905643537271764214241319790974448264603129605574366314874290335056613143884162554341113806453069775367407116381188806980769049715220721518316062329350217777572257102817259248663768114410949116530010201337140215759969218647743548899012042175480867696645923090295764075317537989352517053016999504517287498274656129777058583654713629693355531387850371491377747284653598894039733697235051923658889401415376404912021061715849137163651858311468283779240464556393813197337387753590153752053543072972420216622549734142141069358692795214661401847328013144597544646630878328482365278338943830082224126769744028118743337678646885836392800340576670776649745550002858946941878575151311692826808854949931637569606199238278914301784361748844268127032171057816815465104659387515899951502578238825930783500207776970032732198908533243664730201811051730552572034568472787258131251193971684840968479957008990467723919639435977039354695685082323456830462531526200595755521081200120793677061944668284755699614498521722465729425875496178730028394800808305500712600351514262302055155364380164129226143232351132723105302004301439558426018621877822207839540984879944817880024830680855580875008243369165856596228760569900377293221890625265499631361246696208874822936901406611017208283702351969192597618386616954934176763929948750556315280382620813042264283678718347920540701987071343989303586915073428719817468320704975072638370725012590162547792564789783696038449047061342631824785825823349748950619655266867849065934768196271495613971852732843935655961421787957385640621100015404283055343060841117466106188006339197500594013031986208147521539770890113067477799626170681227115132052346984560853160407802734308378420964546994355182156076168591153757489494401257456409497193566301756879357031022345019277365215038770879529709649164746263830353430088123271007482854792278483887936449280257742408168421976443629910100195874633996144773241510354255157633812438444123765124201573930381305509066786043866612805568095496150526280289385314078266659012780745740924727409491650444158349462877329234374476797062071434542141641432434898548261622455050263765320092006224283817009784254696102373821095692367808938498996658380411646057721459608104521778797132166010894764333550436272281957649336222804405155581929269376463037611042922536647044845547019144504622441155512504197141267442579500580555653782066974732648548369836285860710305621234642853574475969415937981821985398770530609865340853519284246361691257396911298519489167956479248840991198092683619234655969776334668883465158221960693854776795801344321494655536199830875999965310303297679129913017949284347703883657239904330942002025443232100618339652231915762629528529684466740487840887070253438119691918520456447714636901090535208014393900319016693642404256883072370120562554913464458537603761961878845169696213320225579418322817877087902099545076404075935957871764946540621086585574551467126699708555929003954162616813792702219549465252511659018469796239271440974780162261239341268357264801150183138363168095254827638555824148301025725159579474367768937207941605875047141298448941628610314629775629870495322424525011414001851565789644271488322557421285298404303871467420187605110033059685393994106608729980510532097611759597183348140379370378589260644075971131849277108139757217871671757815846474380839611103672463433324033770961443430386908843292493284961552030864372935919332063554305613299160551199000903309870395888256328242024393514871600949579543414119688827238634159977067331516680772524878168499853871244955472844911292470559566353550528533414409368324022114422609478873666006954786395908394401650073038363237182490466985908893819914540868240802929916747915074043586165701663198638774906064029254043501922398438081811035169943648339340091053856074171783827655083202022002692251299399919595125953009576057170085097851317459052393282492558549118230741106340186639865735235857846435757601599782778399410467728598447109992706176506728460171343747964611580333309884016932957071513904036075170623191530216209618303252774852107378925123547868173333746844762302950632715849939651994114461700609624153001813874140901236427254349614421045472111908327316198647801612642624056096287981543780094356823548854119330510317877298337061913587307680789901314046829774311833485536387187375059417704642924866759366025900557323631945621029114042332554714706475808552287447530477954725040126383506673909918781471292997474985714607290536600935267882532738479479665744503982470516686431852076770235664424336263495135013328613399543141822635517531507194324747973597249006762833674515350521856366563906541874399202974044260358467952655234318551232192228360649273137430401719834947473730801160016374977814802488546430001894207798946266389015231936244001674209508126479474602897391931161131632049959031949359609297164301312047586801705946158863866581849312482775619315068917192210057300755413074047207008212694984700991481608553937425690817410190304968908515869495796249378534209178243861040689404068862130791822805113992108669424028179633388555614024712602931493704516641673801274813086221013038493382526207663378103048153388816087047958575491961184523899826972847399384879113143656658428485951562444506020245176380205173422934982746880037392159599520225533807904699372357763837074787338476384682328038401043188066708213417760541766926316956868280484322626605562123122810496330246877055943424363154867195617055080527547023717589634397682831067470599217801890868874407088360307011520840239376407394133856474429189726406855861481507641086464855489463885521243727476934768132478924246002714619335623811943616056995946710247874005722345488575528607575718713863779069319296171216116359438051104643785719052017989267775550443341492188655065389932572425512740820412709326259336326501728061121636005317304370834621183689682150959317445734724792278633443596300087166898830768308786032771048926461951319694349641260285677895735251828643389669668747021574564194777412424697816053067613966045341718745463845920346116080114492360430411709403606223398096865469771739389879467059975752643803866850761101384847367292395157395096881155373546885471933181743394725902268602771835887339209886983713614982554870430010262768514326803904847015360630916921573707082475633841461994747051670774224155199211557657792199493600366278375383825603541247475767138543363795721603467623240003828929227803539257221687707572960988274802759511821269160799798047809959739440709678112050793780893298344711587407376293608390648311108194935496619709843538029241078014649175730166951609467438507839144775839135019414126059012856710561411137504703448762228092812131888385382809042502542545944159829269764895170304708044006790926152620323497030294994066028262798799473860883380285065136636590344044686950695552423560060331902573330187153439399465073127901977869724620321062519198070739561858208572942662655093970275220190989411601029217713732661733283734029702819671818785483094131251198130840350535519016029201213885443813586067451957079646468713516605352819351998303314873575279030477559481635778902462972251402142604449087590551964025952547266244796387489899925371725398636006297544340081482714588407041390312574358499083894771440157237170445567422468244761114039299568811535986001587403851460179604038079985899986410650770320527119774824239177082268866619380741052130460960432111001888826728385382839392053533207990684697858350302416106308364705455289462392875071900662909228999107241561545721848723915844248759265183417654278384512986668844038041890541136136354627180450383237140136775729533777717614201803759738649764310341723811474913538394247923702793842068230878402991973607504100446985265528255705943466061409282337334089532394681440726951566950360778584712767669142708706700048207797059509529003335644657380208054911602537775244531552675882088175404169375585164123631867073831283941367434443517356731179565923528236671820606091306540888376767493147108576731739665673926649286947965129620325721058684187393722836602768935006019077771598955740476393505040360650562445321188062545056666649351097536297905321135044663189308602438977333172861868051469766849699904642960664532014152140930111888169282502884447307544176063719924103103515802184498960268618285613668412533739021067748480748181927524496570640862092330691809341733256741987500868172017653903899701635250059952746999314381154104342149424784936981078223829938376890930962129515962678983710397215780274714446402656128645685129030601480383862559361143180162914471454036997611646099603917917477248348936967441303309570428361149964004704097208952666715694066705434657739414317849721089480513677495751060548555347459960285181601146555183849592014643442565360637575511025077280044916157749487787046613515165065200519711557437916240069853987407841419810628968491236577662141192269054562991855026300477582646191376494630693575639954527625574113777382061124566635332754668092969190104276551243853629257639936218858426444262355772137778690890103892415025086747791500330907111833252877091954689231902014906495920922036175888813197376640202052824952535461774769027344373017987420166306098945696742504543968170223998278466060938429222800182023280123709974095323612495640209669803425736801072965166739505816650076706946724294500882650823600026864858118941605429976362758811839005080584946805912419932969435346968256490490075085649404946052338061942369147145085696444608199238245538628481294801464361904761332533181134708067912608609848417934351000976596246203665193149944318264948875240048134419938543809737564392821912286916020691898589892531804482109805459125716635073325088494307007307431344050509804797002439410016119875745013653926912580600867423018832433766984901043767245255521830769866267276182153253108312712680505408425641385965145111867023112224903845291101880752349406043476899011562150566633808624299406990991091878939604129374879130829607464254272785427292858457809689994768296380779523444426256243100437469992047331077783911331679348139927050043466384480603176110127387626390426719923097293553221412610731088814144947991324783164155051256054875119481903759369231935328506235560044212267366192074055987098189728355206465120151806494798797983238171339153010373751579827449216871381784856077076602699965087421956816607539527552881363156784411202107599395695002289830134338708948141840122803892885101582113595745748793217792806417943869840631098821867429489272662058042463056151458209520335751324956798011657819777344755308519388526532638709516369129448356436985542503544197219863676404857835539333109966308958134691654841828780656831967528931072027026938202146559742319359841872419809357830005328016229435131798750693495477174643253000216574640967307067262377649690753669432902825522500591990030464992573355838337185739659620981962305011362876883891352175495307719945452109399548646976930884833032664581870844205319738163936954427635549681617277295880066498421486464611793232144075980969066442616993370263967730716523996255001860074834355518220557576249988865271458756577492816255422425243358453134136277190401558227935099441807550370165173745984921142242915765430479118320977635387561877933934220498201588517757166132118345494550548920285886722541151064582761875333055716100942282228181945007426635690167354567515013306150208001476460512449043876606459632285050985117583070678030208765373974452842524025571742640249217005541967997180956714812513425716617754799544441731534623354247019470598477486911498983395908230028669940096295668170798043642798125875422115899296134410116740926979335139054163180712497484730157916860894620887139284961389152531995433887354304486835079573738968730313590970514016202884290901541304458227256869996585295514469240260352905441497075326859811068476441538567422525569841721105433367475777947932973252556282154249094792499429802390216064886618048508901943440802382603793455561244946330619703529885995026126903286127005972857605903250163936030661939042680092570096461085133200007256494570879180832400896616231716259097391151256410176143026628595574677822819780168133337250714884992271871131864945506967782164646717061935414524498965147821812861419842122973905699083086917133901954288577683617221609507056153011401948035838264313452828139053001796360469636809269571886560981736747313734723012490073584494242259007028053697278084593012243926757935884493293750621509457657659344457858416893755980895647056151871089356857687227537106034972332086417403882235020589981663431291241919170637885646500503667978413822187802044845799112498700498655428157730253732324212886770833311811429556388913977372736670142073432299168265897492764732406683891660229957597727036341064214610059510739060455206130626587308872161661840849245104519584693796557813072365556452578005439266454716393650403474916714513781360251933269285834819262947387982422616519956018285191642035205704488786076371499458812448964674963691926380652716175201148798597718943473383175659997115975296253362536240546865691600612005692713995841865022836165240253308749374875460372378292540282598505639872808141993044640666570096506475452446469676846666790893276941737742099777394516746437536479455861112217653585419742173182813184630507789081290285396310099927443753257419439804500968998580612293839337867850178329103107023192802195947872378681562400367306551560959977759957257157595733619042045793019534980195380664540865977061607879689514274422000630626927764951853460645033110149319489425319017175904632682480826974771822517126267917734949893600982926086375378611961621112740592949602848714524755788226250093663604474047940490351560264933526197192917358025360494857128148584290268790817017424341484848725213061023596192237551932290751356347737622366146320555866629507127595526007224003218533251015520398250619796777544524597178439752519575742138990396304002741752367168908191556859825124286209143644736761195071391885065634558495507580695421226006005045332215936030529043512421086558357949421514904190858404671341174592686291441625147303044127358503288553843971451266210389245141410983124111422187636055296297648183581747703840767923278879123642200329622300402112579602197593416967545309367580092031069643347570355578739377737437442898321040521657374505758549440878513880210539597442917773319674266868430447377859560775400209601121970420513671176097925549085857047090358347129165781743448083702853860473846387745630442036315956706347024776080424926642359834134564776558754038227012437698141480795201444678597670740938902536535555610509463524323340489359528039313766821262416589396806425470442539521636624131459016293519263797432941329637823084694954379045248327133030350119242731469887812688489615408204093727556215960990162914944555205064768826934344355860798937885480351811431319611127357261321701733765255373302019771726047105841762360073733273004561897082222630431379273184843554376531601678639244426009476133036623306518343720616365801965132493350162000034287959695933810249138417262940155387268526235417326340248507710264316574372493602310251562945200162567166953013827504894877384413852444225919000843903953696489023323410889345978507555666607863282409190519789280192376695672085812551087579694976232601183363063009498043169618650644602673068143526277999634413490640653158812840413509747846272811381069849133743018934029688542643350779858549446002628280769942285457974685810789178463619645045951135331598945952864920069976908885550324807340241925626092673962369002624943705068548690649020767875684212320730768609144064071535384270896361559930457876149815884963253544397901214786936498779985955761373450632553284364941864812347411908813781641311065653184945661044062470863841327214910562580057495809960679705691839413587578110615509616201263843589981232008891993492127490449188861674352570612423403240500294154940941944603726751087379707612060824533463411097350970796534083925693930109388851027320220773934889125223794243845881584439779834384291107505815140004661115233314224495667672106715108696789344457482723393294660278436766521660802905341704954894420899496640269710117079069239518961022988556147010296945960976553103370438900245465742804287735726860370975643519211664135970222176418286198871253440046971545418085106415184495388665868064370216226206244376706637797570856397816877960472760057080264458233940796429593666517714419278295825811610723504335728422253774097478643257948597674771901355954710660334568492581267803482002877076223352088038062246596836442938340284375565566943696845523893019034333094272431862955802652466570933276232678068080496766348579432029163295338565134720298837994143505827293869221809478094509527491363809966721146434542991075221065262227168210849825735812918527573254629119105327960482646051539448161401942033124967711826229828001721925794935016934127278589361563068940672524268681200772553601620967759017066780653587044580037143685102376778729745988656636610301752703084380388646418337933591261970870627471446327585397105293422864847451596401740371328729652158735140521237957037959069374826347227787065100732308148118700360453681693324147741109431242139500959366889299033235536523029476924769857864604951657215444474173060066710321433374149398222817844696904186342229727967136460558039530480053425109560814082863323941736808552478365864458669238532817520227090044442233216556216983013302799695851580295873163094969802273966287075170800653470426756726547480193343996684670041854542614502830967351077772984181993370282222829075262882465788874120805314267763521703817030760541151221223232974471637538558904891435281086799279706152140082692876983612900295338335104290269106460132952116730875451722417389771111276331072168619258119810628110620141265684838750907198409136912877305433420030543108467640731196483953105082695075800985620475359727146592028759529915098029925852217555971988859450703983298185570158279030552236965635756515504531969267753607385094110264738683166913897861926431716760684060507033152030148750202478438610715887658025292625225494273891309691269191710009329589921652243859122559210849118636728418735689280402366368484597199243171132181253218865876909835526073193670936989305561865881446278328246145993522416191168275977729318679529798452584622425873731200036533222073234516964817138319405864028445634619057932847860288717684393732859587422160487760678659919657555675481430311148877947373114299683899003011243928857817237634180859245489740447154925642698655530033012048955440756399858232236744441879999162351636417592375684100221803304323410347930746981944560811132255479134095722228580806340508025774194790981477332274489682596524556015970676528496114096492330885043223768109538047994901661405226068391794117970203841967941212874179344862159603789946975314056036901811642006470135938879810086100683630748093940010973727279250230533572594340399597802388933517882781149836269330344524790131816235528213178812386605406954609124664103814820717741456928520515873052675027727306263464148321045435240426583051395132745313822800195910797474977840728251946596545623535242953185081620775038672311693475711163902225760676713111756017679071376948152784609241835515846368951397618314383717926914452419358738447832554256363125024462925599271711120790566297653902521656169297390919494586373668923627697015829921952434992180879016110281559781903463750713857966944882454085450039604718858175764115811190198296853833764852630903353122746855845679518023945790190461578866034252121650219437356349550454584795430918477162138604865200742666712102687592329415661500495041201945546142343722757190810612802620085294536742031507445794800740866097119481666081184159372943182293732942122062684670472534070791125662022407831310458941403889993637595965473892681457784135413872103363515514724411930169388569925869729667806881950985406269268146621533456287328886568907594576114636210598692697185376290992571693899133756477599334339086931734066321732041644680145533692231292159912695392581581706707013548827186383858374789168861715909284788573671553475769176820798232282022287640910540001818199477840109933267271927190103759223967396657189540062164351233264010811916499662967787781921352149133689351790938477689893672968723128447795464816346243805846949148569328346606817982871441949924323605477167078830342344464878631138994770955369037361513184899699632031313421722746418223696042961015390184294870469007214648724527014568653246203680718382464581150729444497823685407548239726703973808996772103439014078632182336040351028811494303086013181811528034122264098140009126781230587918383133206261044023399312141265068932972600082371552475016881176543969358605571855996586907154916940534332151983461811092948550651319895969555517389219621170375178348968459934582096661631653517700822786758918348997941894507201479772489868791785699160459844567320189570960665091043806050527951972658973832237487129969590740312642003385739395688761021601815428254744668866662681442826870140674519010392568324595636513157050317113385830263906236191480341265312354072606990016052626631557620529839070341238970728180767246971076147497055256392013841315610326811331522704378249049884678201429498592300689973737774043760420079677858022267841769260788834118775937799466886677243652422766228115385319892509325375540329182310819045308020878755882679857412594937792742524270414916654751080584888139452165174617100375667390677158740285172251400073863438969900123814660199495054789321647241312461050611410972471326560773819191203632563912795187657268747451996737767420758947219126992673800116725309493483235390721670579245682147139286067390621711486922959662882956445283090636600745740103763895634409149834656468754234453386992601959386174030120800130832579205430254983404007478672006733637079328677041019693021643751084429274807178480044652590272107288812421590439146860386878504215326553524077314374167739077817183364154147635768921715820266754670840161703003755362669408855197350478384902928551908559342051445062320215390186147078367155316566927814271449406677516820444062653940629707038450582346819572966658902135137085955484310096739128174145546614463001210164056090692062943932237959399693966228112942813926623475321257194455705535202691195562263733452661096327119068794759165066119563211282480396091232250344500083713759163753591053719610101842340236708376388705270716014875886714381844447954648389803714995356910932832006296424423467422200057742121907742425683409375000303880980008285441060775504139990438414973765008732814142292192801018417387099251610646717172549437943984783567274695216592563863911664411873385040014272890251491765551852294772431141559422022226713472735318395929352599310977233339164247115225469005751805176726060388392999213242667914522815572020324894392096755478228765690716679547968543760743140949345190027626554913821175211267144106313919766298081185802934988252763326958962676666602074493204386225456985572900905757892692320876558388409254647293054025519576888064641847155683688767485196445677581103299718842606621789257965670190918525173563044070940829991453660487824855101312216616051533235688569401920509471142561377415369328336008034422662037748896478214879594339093136744380193454571062925488409126560565941462003597039998226735976790254135476714229666091742008798767456249212509509245296375973556494962584412058326239664312265554479884285482930723171876240485354307118896499082423681011134225085008598338021236428378313668338942421138502734156811659234093474951014509431708549845998654073123149471491587744702522448432627784897858338620035649310208673628446985127165198523610609029751542417135542902332150095646633703082222661627454757027117838779065016070536797180073427218172805478488286505155593038465421370573927510223647378295309780911029675792273050501613317615016877389637731338647716987034729095924639545565336997918422610845551206914211968044525535706581101053663527186073338972861524970469348687349776506385043115900252001985770797252170799438099732164257007285592116166097285575189872716378807351535387619285480060016487367241882114279720899679183917267796415130291597452259913736844548013381416842824212909824588328806666403659748291979043844802706280682799194547417085877144463125050958074712216713068023002778717716695438315080757749553980785440742716054471428892511832382198588820441133839336553500061243198735966025599546145710681849622039890030015422882470677949881775495945516496031199657081631517372790904840643993415475921993093132037663800711995180388288829208747117766120123227338275342325744627080983266125993314779537358014564655273854525874073936425626190368363794732157516503254497390078140189871678899980415774151142980358681413365577494648268061580906716332996229998816955885476678749978342404309828306549171629800048459966277918245970691576190737585004166968560155603882193252761789653481612881658666608726991026724055475645219872637992315737760805516192372254696440248690079229491993109260506600689375374258930811888305562901680605139418406458877804345198119376916988347703076811510157728650864500286706651017289690306554797305981773686661902344171003757917746813856623583407777740802772021917475815780635599523939572350772419457461766127240470705933868453943476471266353945827347936530449355514192695188648360066307521355078324173259458178307095943742921617727253131421070883517292125171370874977973363528515043935551971105033044215452938204557768797213666348897703862427338616326330765320930456970038946158263483807378438359141718900472789294295527581783896877753835018340040075881759384959760692207104194385166525915932400281096399978605446136691173549530599319971084183433406518371232838429992839236265347389953380499798158549763712908666235972853427570886713212151047822222668558431237009416782689767243957141346983477389723203777281226634475282934961695550639558565610446894295553072421386076368643273716636831954791156021370413566654827492779115056582870112130081438294865058638138049506594134274025436569983791586855543559193669335809664496113902061413085410505785879531563777509783976738784438783227537375086901228459909899379367501522546870406600434797019864795750807159595359309717113241599423668054845481569127601416811167835324795582638930272063829928815598247943226198081575436653581834950773314663396809136133136768985640149460576772625360754550352001419600030940573158670327208593667769107948753456094277729195166649191377716710914517632407446596032142113216229316501546360835352252105411281767114826310691288874974840134694828728185944386896420996868592527140858972911432061668876743988722301605475125127192068565686855052719175246745312650935118229741016751097462895577163719641586734522751559768133327288105125305484216228541658147823550332094730392841578855931045666339788410015877353800064236104417916109505522986349532530242349452683290014058577656254748834822216230842119776521326070717266475641827516384788203119347342554413976898644180032054062250749628668033052863594472358707506629333226031443936226271375095444401404657999252606163020816336717959201866167725127110102418680194805251306595619113850039423020225403794789398050189906880888630195488320088015675188915134787035565344182803147600868098791611984640180911083393011517810368935563358475947933192262068821780931987451224312287288448203005871805763620808587405893463024801665079251841683921587980951437397962499280194583417587485251711045082862262175715724529757562974941312946737680885826748028077524973257396983608197370406922365823141114654086124589778312717380775531278800720407467187092093560190854798065582591155919009091071463065816575788216166559221828231791579625645132409266810220373988430621387051569481459736998746687947439186813186757207228043441326273282724070765879904859692321769277534919454545640365739891521064241816210192255366113155260097410690100819913082476224945625338907204716447154894376038350756629235953071585157805267198834090662186443936507255652715638045385972315115925314851834343233698498331500395352126977239044607033791307925709286228984208415616125250434863505190428383896439895781345511055279648785938279090598988984263606031986087592003013361975927070783303818873439371359981093628382745830304453956557392094072615350231269313207235982128838813293683626409172663983267844546522677776258582820385716831751600088763630526566500330886632690909506021330711739530871681461097586565496835735633694667817520794499378858209321368671884675089254769292694171950938798107349085231939843187504301399029900515894106326519930305790308015573815046355630350881294883175306564715698681279495904411885620843956857858976777070598714677207664799689758507666386211013916189529964448988503079207804822384719789753047304297176995835724388833424680831641819155991814302386302796555239278878986525412480668340370190315192973632670292014136510027221890381636932686911597024073589576263082873673185422601328826177878988889903461597463830656000695206299369029686623558198092127766135619313770021431104778048039748913293963829695948059781581016263755308255326886748179750432372755576325193052124088139417635178478125887903024180645424046677078566987751309046883615479592118439932971984072263069418571309564019200574938137321805089776381444291895800446105038224271715574756606941829441510694120847692292016007603555643768872693591943128521965474135441002411794746952399878108267510222671566731650769338210541279264050953119848693172242315051328648078112468767633328004186235307796718477423156870416783141331950232148004122546834929500233214538241986209951287135317656711235784355356406240041847051095551245755680091487309285743185181741439562440265254265459761834921212517220924969893626147621778616122690334676506443777427141532344848622538240022117342089231207682036772932804679339315308619785290302534905272438233574273947297249646717612185622953444184396682849834000885406002504559044314943579083912991406893293239233777353707483242898903689001162215878127858850263864394957158249814722854665019755246827792380229684958043453465475361915690176389918740508134864477264037964182641960633994786618742081693757424183004704508613473828324526416154576375812542794034040364433790731991823460615313640983305538200722375446682539117416917833698936751068546960924361269893657131710677779618237840793818196776711406696646795761150718830696098382992370080946568173826148024904884634546166135842058355881129878126518015915278663985021730965022095927565182139322036615119721162961766118200583550410438745580581074786879104228731468175635218116062954906675910530358627239613451229148367939807670311441850528865814491353760300083459059613737895383475677794302770758515507658583648912937092831460858546669688057848699911859964313546092026121153666227412234613825360089470761025715217534894746365483042131428855850228141946920738731222662848976489926919419019731778907020664158299019473923065644553239021508928630159578443195967497236340537256422731994413070602488383074089649858789478060139750647784483938325433488560956646917249539178537272877777383895078517852289773030977754838261497979358323902382793830537074464818850060146147496822763310595754935535570695849598887036783666594421298488824674497097463999741965122507631318120192473413078647392948885756465179748201020959878435232566363858750513694722505254825664756331620726704294501244022363104763188431930280421852328243756561488723604817353810357485225185563451966558149643624723934083435213852525311171624911861692902456191900950505563741327593888875992893976152156594114106348320845488494127369665804180003710677151772744711438260898222514920014049703408413278547680266741621570095463240308337091506221779804557881506717887897634331328360166037401012468060837934105104801630764466569595585269596173607585704619601103552429476601850660625711676289158188102397763959776032463476510416816435562337542606005303987979888772589240953191678043014735842341308249440813242263080483203378194405988127772129887850283553155881557529369669638104434147296163881436358263185589535985066873739285397127475581980808143230935200768121774699215781244239417422280859878526760134300626328024759985505422987221412440073317560027529391550661426007043256967506480921402111970041334311502184695005990829684132181211796862944788017871362113897459091480726542297370868519623263043209461627993765538958262376696361910420359962633298056998694881135929353377538082647818483854231547491491523814671575898087475151451670330992818691147980086221447305472477783831271726175661197888607025951213382886637989260548267139843156161842170308896093080762952847284950320735420444694054542673913012150505611549985752260039041391984665026043960357214844351765949661918125146521971042864235218984291986322590232467033340197782546738979031349480331623341501297828964930876026716025701174044724625001153185534258418919290651157282871108647726198908210322209367212969540131774509915128248751440198250064134670110493316228769852517003007546253738588906984874149160721756786829815391115456842136991973959297639863810417092840189989691277478933411116955569559433901608960375748894323173672890021317798982011328011798201274232543866031890088534360792226486038189409871056855952465295385604476774455111397784609381095833525304130348461127648479222413675471160467632592583638174818798155368488018711722686616577326681407321709937996501013492039630386930109512733339426760483154975131531992038368604555257327021465120355866762986432711460551998261905257606336017561139700392919040220782271957071105357794723729700827363123289588607086571509041211716669522714586459180113266249430348211722124288302169030372008543132022234798592557024818963516928656453170263972149119503124098985051807299555811832034981882113813621899420015359464858441374976651293994648935992620963272642258817624681361824814099641066125798187200063334826814556884148966014423763664389514067334196545725979026984340172570801381762311482044260586394620172665522567371955851597228824746198789057706015735951385519288513526053740390489343764236816812547039325240453741307086040882993147906013408749026432397606984411260638092830049560015085291071549188796128272564295840979556595450513762496746308220443584239190153011673267928390147483734335532333624960871426485970619429807551569073324824858883682032128776636878231761987677522732745054315583765466520240397861582085015609406466186910128326947382583639694695823201070651975505958216428333080125818738476562692085358939449135301470698754268825347019807157077230974024687984557623721043087646963813996554444477591087522960791811215593187229972253325946738598343460093085252284789375747340482528330947540621059054688524213037590976480566749693084334250504354555431504942171894463768758754186032620704676250645031203735762090848220588366306697511603154832868634959455137606991786859904910070405848177510545678674238587483438667950281073695577893888994743867142602315625463441121947023050538040042598357579343218470815664307304838978344895407696370652072274502378791865776647284507639649143861738105431331223419170492573759776793657658144766537529541778778600466267461315249873203951738286471480433916630062505981982423730061811097691770550006254290116973981381079177210610791212312953108211173873824541637076212524458337318909253842571894948768319743587109783269808323809537744383874600524652390643909679753593296374304103109926098393869154308042412403386193233973909945973496081602715896817520200999379457508387714004387201622817014277416385238171290526960676793758771182548028980918349246407256264160213187462779040325059708855868746528926535793866394323309917729485352613155663517783294794292621298663223874340453041267061408622545580999572796736122984297715657625814466318205496493078446858063889520220469119167523533837614163484353069352649673758940849476225578781715198169605018893333909296241419306348718859718545130507179537886442846032426176148752350809711939410012541096170652735951801153668644445491167759395437419103759492924483010511586603058812348829993359389155207799617164902370616483957208829514270529786064629718443723054840697306791706318469067485908867036495138520327778741894431588513102794321366646030941678490289863196611561257671687234392897937120425044455978214403326276477471280538360208559846002871942974612516414645309042373414198099185398065201300783498652205456323796927215186357057388851694845582963332738893502349976007045020218746531183172627486658222633400381956517537366240770720877174735123021032658007264828667506212286548403835495294141475061783562343518488611052470444348327942694972388647102416512351747428901468248230298069445283313466625573940923256245365822555097420165421035708511606444640832994689486963826277656294216608845927946376115924961363673801024622169215854857896450220368766247893081120739407184771458551148397698629571993407439591787485698386042542453642918004672177490114416180719942597968388626760353973635499466625998464811161558064422812544747716763664175950553887893763259876125366734680707590949362852612567448906515737358974896312394912340772246256944062380833413105266132769903126910546325073395271777796116661470574793179721628691307447744289781344418979672407402512994104410418298212836263274253338440135785310570369038195354369530591964930101181635148529476918821144417907951079045187555866945316716537074045349045529185656000583672148627913648993618871958129858030394776524806561154136997029357119557627198549127172019011066670656625962053374260495344491488965741349598077788904242743746318998591978269228016786221558862930654414547486143284992771032292814376451571462546203328638282112105057522374751378573868750656147401847963559159217165727694744677293346037460895015269131472088445491041334087801574588011869016335872641057476679308615024745052109295049779781990078159265993903220419136386965252831360509379631944226093810564032765030616228264614355880459839891929104660591458312647492999196351855185171716812815497923087644705372228415551295931172585407723317318285209630321720480622016707558907076635750417966007002447550534760559969248374869654463206353302842076837453225720789870164620415153850927470225311736800107364014064253271186363643588421827020694845327343659964762087204229569597551658111991008676029596609152057796105396731073516092171438640689670605120574765152615246223316616149978050724632533714433744157786088007448299525497695663165283739954265621421961705581140975178639238623925695703797613407478849212134090100263518656175046136976576927727205419938289959239327641346812467152538823338334001434511930050997218167210216401412715329277744630974217660647235623624200991502259796677049810803498331314732376867366120554896119539040492889348032082866649043786633642715565650184178336955190163048384699468297818526493683081748092437930665111738977272331435391369427897348637891636864934541866031883335239012336698192571507172967182504712236431527707660037871520509407354111299506050177788233380580062435895274938561220372115747147600179519621846981121953719553884193403305390487587097122642719805283206331186664565349152150153831205120563970450275004345273475901073837469865799191172326049128873060544460199858266813962270731422956835062877523404152903207464210997270097206321403600018288490906303811877573574256154371834899370608248573563122070618466715511712902794745408486165683097223690089350070724431368135202217722068127214521413030438142517726345022263221951918810239564838733347015521164442065098018293558389761350012355724218383744547565325415328023819728568965352384300775008992261829861683507244484787177020232570913981628013925251098485038845692043556261400433841925341059976082866798954802395023530429190114277825400230273134344353595100699067646011401739427188364696330926736969318082692071370946203425651593377890242123243258274813483576671306902593071217426384718885334522597180874295729586211195858379668331896925705243045399237357720912932266805820224720792184809416868578318206639541049241946746309413792212541698326514352988716045191141332865807397235590157919546129391120598739511618329394156854544761496192705036491653428493443306135938717123971289245654530902259857243630084169486084974043545598773918116118150430220034262061223223165847762509160607056848229266648889518946451912306654901917858052696745839624386625888159815889150949000227116053425837651674558059475643868962341723398265686134283967371549074360887715095112641236665647140504768679446426252794954014132157698162206847249343480493873268024338035003938685907548760277063040704098077359703458513930064264644357074484175683889496382021530039892675672473091078181171731511739552648390835428874574194156884458923742008085043456778836017154195595935428538907191391578645851804617644482386003261262211389219855770945310846390703394574622807394822825404491812072356819528649154212590278967130872955277767742533005616052842246266630422246776367575580495194348558122339681295297698097662180258312183875723358958057381857761736555757153893709105672999689665165558313462197520951041435965148885853835071189515701902306811645710039439203756688183914217706714336786055776224058124880234546092801777861703660048692151805552049076374260409313419468469409363472333874668479373810058081077028877221616183410376705524042109957302105458943501309852292761643307380267773172052325512774303705332013050671672570231674311363052074261681091577992701945827959721906795678423531149286672533512960473635767307970388688058347576808342291312897760194287762677978682801927009152503049982271128791265903903231663631437499780441181480695091159519066568163060852192872275077754817716469264601606091152408199702825929219106485117966083423050462377796346458515231404817534491693552873273194655444550964850330890910590896410382663941039671740664130044418098396294524900093597446478232821380931585774979636420903597733942159077034012506118828308128656759520135290101033158105138896895237092511245589635925921457543009240629899052009849161400971680644441066048344550353649310363768899529072837844355855751990752230447699086054156905194589296601876913294406889196078110594071710814194966032027216288041459266479077229962894347738367366829791565052493009855482519340263271877871768414410720070675263692980503919490388877760551270513006411681579748106008235314397955724455173626921381141844920563270932945649826069906871806145763435627124470801486058938659151559797493146815720713340982350131645624334199208597764809303787620666623235523074012363836841417752694549408626419937011352449370985608593937262967665192257503290847399788952003426082716399256752159473724916779108937836736250136147133094806296972755073284076005279234595220229935578641832591772881930717008274589318685985619300471415932769330245291191393184669561071121166066495195098060047690963222255008394077504188191378896251078688874803561599935698887473151173202110673869273694747129443345867647290996944171269054988376276275575854369778817023402426854127698656512289797182743842621986496558628276683563109276517198006609764945078448156662700874882930194314225246520851139298341937814531033159225840245446812432647973597565503458075072040016463977493513438104119525454114755631321656217176958656439447211690893284794238790104523287590150219321268118637912041818517771044764886682166648157600749240373527036813768537497212915417612875333627182353193222693361664196281018337976706539111976017811316184440522031031940098052046329068196263956130785590454964597134588377063297985974902518972818927349182696167137092177206955094207117154527681280336065331631120411008812327081855677941691092200511127061599573296549123943389077341993512491897142075124065186399166310636397376789620222018293429948355726244855955923980233299755920811272506021705499678803523444285038099772462191258945397279412602722921031733983725500336695149131154409936436286302109024647895960588600110676700812038912712673809231079869686515229653064973255487078457679174591803051155202412751572277383841742453503947887926365930425240021559311068596739861668269789125876072887647351705119587112359310871987303663834405777604469947402087680812328312194832165607757230292335400982402073335667778110783935573369629620250389869250404458573805758897364051985013474306003743944948771686628811470369100029720268729175229530218677175878877691621937627484112175332535252854772478545387349941268413995817498093732614808919125882805543484510341865961475526173754772736884735133544723063101382932796327074850055478063207731429890821160271630807963414977489812576462814072131245739628394721026108811655361676435395820471572318753134324718818195640212200304657467400048355386852556473715773828774830673762741933908049683525032435390688758965275376713116039638615203840317483821006982819047117981176809220581958677759166603156716976028583136619770211694124228154324533758602189577297355756298820387244151534988796336200549473999102393936956284241656794821328336157507583622391552796537376777572453377770663127674090611769767644390069364719986916030515079261089007578395736676144099035413431488167708650216448722065261260985761015870884897845716791770374816219961156079570595442877120109133512866849517355071811239959513496847258476941298646404501367643840278314252364473109860524731794340007406128951828765154725723834213439110823513107079471099701549306509933358128353668101573153261681149882314050324317365746769282386264137083410264718292527136595218223213090814418151123238831392252120626008866217726453127514146158465625854101937682134158575634148455237218517817845966909192584896673079803877285390082214824018938070896646212257880987052332746332071767524085861219205062828786238937655793972830424661006356152477271745071492546782161168153267211007897618336429933694840062694412097738023545357671418217841271147579708539793367184476603795477378388291404578145580706387259421887428743601101003003225732583585958568632025652472669951561733371420851990261362672196111739328427581553991034847317022914612523157093507175418804265477665284572574487075471072194499369280931876034616330444383554136927929677915482809859271702345758193935388878222657186569419324239231812610820772059732151254003202149330905398365785899194607370931374053239911787786669232170761202327249351405959166097128213259673930617103552652600245826876081549871022425120324052781061273845231499457577806007538774526907991124465502486208036007181409735613599079495978584479794189349972208999440240145752554730934025174384992665895471751067406644918184859804919954482267485026915169854960571110590821691860138108733939539880539695372041745799331697233780839508472753726158795191637823096151412976445809966946873531083841091902844971447057244821363461010199065105119299438112802102880732826401108950146300689441186604123432953071039604373838262987755634787590471739979585616289741066393379419106546887231062992047891320689491251991340713584533814464091312494930165873940894875426356694215670344797483215126436015286270321639224674687941957985247739839483704320632147632978052165702986415462565650490793746777324391465637858099256101984613739182353185630425767362197217886172951309138219613047435431685336042356950918074640026755989186363770267908658833450730556511857106833824532492661127359652123932656541823582341164038597550969028535185897609332303854468292767026921332031068357185560455413949822115368807222751449963202858565367311055074121584719687262311908911443761345087534379020896610312662836187389179116735010530854367647070949446636754027654677077428742964523388837185025664460223015875442212934103076632834873645840495030967797537904358986187006200397462808243109238461600138147676674953148175971694951078180201568682233905953739523062742406894774556545490160765529433941181879116785468092682197310101356044239435749716997869184172189486701775193953687463028727869996655921909643396281486979373970657816288148951598274709233734079499971593425871738992192766633640954050569608815602227721214811050241667262923947608267195154927781326940452655252837087251279626487985961955287525452388999091369743394099909790277669565992750083335200142974894450788541562197420826072579431560137106112735721766371192085250375534436179858940904365670791040783468780230246347210396212878726786369689776032266023799451691468471435754776027611612967968253363519479191101765189209584933294165897112734791863857146621075490091612597727055749479165900034005234270971310988768157656800579082723192431216603292071292048311394426027131940062097351439576939669318218858887250996889361653169195257952963315918136719080519115847750176175074611106866342426247460102542896631863300610110379753561727507616017351670815090422293666794832785598739533177483281733190403003573236321252652985740701697755078915004844022288759651640914770663101869455986579020061168412679996710138365706085508603952391168517954621716344089622897983384170867434424765106056311374470010812729711685577302144871169626374744523692995863908285247589077047004163733150678790213589168478773781337550460616518348231013224362965667548985271566285706334514602983846376926192818419246906251165943170347096445072319260646838247536706386305570180796215731578031450478635913939205263600851881732468196043179997898824047683052031452704010518441947436199861047916198919083502344852794453452713153447285667492724626036627018032578177941047318363302504459618393692916845397300730875393512595429784212390572580771153586154929231008681749037995588952354013903646519080108139514380608544502676729920821273438553881558967202304843885552805459867969940869477869530750176822091041366915495226078121311002495864356829650711851254403985320396686515900057171664195662315669650637607764277524691603538054314788978676523661578709849604158990092190496546041380464718324394039629528749955112613993059138728931660315385596057163114640565408013659961179865017810860461373564505039378372788315988603330839692029416998294409530628235972545621343180225197667229316235187109895128111098312193781801683867620809527038543195812204522181041985205883319184409535221188961693065363362855176396991498074818748168690009320630217743551541195429941048895929834540030654248744943240057282384723722644358423636562875710682093653752737105828693562350720239178085493613840822030566152461780210929897284022016085210921996868495517099858381108266606680509294903642557431595828582055473806464033880026950385159439465774175194995224619969091844188878539534417412518352013553358791156341422208516335430948140268389180409844368542211186708580594618281433971719662081594279213753190224809426459683268583615419406272375794774550823070880945796358893171537807129903752194871870499164403751938319335315541552854115572367084699482634154678209105329784628598528071464478642323775126318687035572405480243775927861066278683835823835433297810806937233921154708847322182510258020070982303463021711393812475917256830370270981034718495055354839356278893257466652973722420593793055070865309257176166897349053143865383527857873528695905493234826813739863990244774735978129780862917388542346180965429315783571261908722560657370061494316862167170861857145518081958891034249508248111782719572200770296391964887246178462029200058068792318422351339846967467060380709860571632887269361451528099950057999053105543028658286857525114501781071824361217687435413428370563825760675172720510155310782966616423234993476429065041454294584989567233160951566878839819300830433033621532615703484668581933766879678166043389951671937165281354068289384067468423004207609330389084390459799412583192797578924651863187983287854010079683253689956680913066849338088375679132817832407208785658677237627714988410974735679740611003939714917345990106001086687355964208886290327946378912201434593487869230739015791630115987513231961317660938263825938195003569263762142690505103597008722810409345155508190905258006081810853912815040138646451844561005087204543966358146076942727473237586302390228940027902261827340967961573298616812756069976593757403402915994074513876808837291394273582578605964224945049027232785877368893468868333646302278487020021169272525863923515689382379798784103490656521745872404712607733323477849256556889161170821404119177147532752795455583528230094325273388333341179397863125739518741335025778241402124992582523932765011207634045618181162592471143748696892295405979117247670571552047916371794383524046504111240247504313011553657637664320401396440499064273053022175828190766047110957024129957406210914170402427286073020093208261405882936604613200932701284821033556339825086211526660134900158472019350767033757418879905827157670225554011872493721008220712546076989286694396933635424837938864497993925644496661681491843369806409149686530956219943489717577675628467383480026894671810292666319981923174692462999738309164952594660583150256388223959099037050776734030175873495154288944318573609440392916695444258108336049604293016622284341038302991837052029200838146607833714862674055792729080176595687698188633989112211384432550950512137133915364937415362777879140361757083982652752459526319474331938998138683322309931029771919249530126700766484076048166450599434425475842883809751581868769236170729273633190862320584466300788388292213758489443832350000315643613657044103396421561116514703271664266269975468413385352748290183198728463137807886231871956100301008849577852055072023496997631404784399902200903019177071712494448104055164654639992377190831935598120680955607691700144486519062863877163573838067217212752344097908103065791833595454055467768420813011636902788136263347195279990144040398103389041499977229240763747285630524697454104015922277817415203346091857351025833350940470897415689666379851047968893057596088811879706852893449952663566911242476157646265694680738688517617962043410658325612050499792205512654014646792817076090189269616115167901140619015382487060912620045191426930475557839579814220471627623484424330944424784892814848951907946381460447015540971461097533612873657989590533704982503892900256672033292039751617773565084115208898881546194207400414032789260401847282181186015603427223125480106670271908494526694957791276864691036511159391420022979716285739602865213828910910903381392950928058559993248360262075560483855942474516400171006203754485964562991411925514563928144374671566922713202511743933292570631938255457639124222305324299933390080517275350852316924499329280285251483571099211422762929363628366060995202753700818375240786301025529498358227955038528468531390053681795405342662391371374859422388795216136449254851237645636932749227419197130238815538047947498115031226604138702929643954241981251461689533116716031011561065933598891380681579190055120651299065087595109842406997707712911505417025754041772931196803093357354632274470641517527716625680109318213055381395098562059184094894423491135923161672322868201460526853724775168105673833774672572321410440180615884131421233205376007270481775655511013731535880191052701143809834146685466937838965437634011699207195256001776387854076568299611692739404901154896763431989521171405516814203386286758355140476737821412846221980628592988403588765331081420520985401102641026819433124686497856056758780507689990283957221222906812517182995701704544260703111590750614256917149171570461592934994255165988948339299337795689935970566058449459748538673809127711028723800250308743887585420250516481526694887057707418572081117846474141424568864028896784561417623268271221452434128605554111709592493537388422126419275870570731948852984118330676822207254038977999221451219944118229261688267568792121785125791724593868434190354416011986266923640680057953861890901590230039752818075972029872222579767159085484866522606228860787312317729648339970961080287854868337920305565496687507556478973215709677967705366090020575425661594727827025303813058175460300556421583076319158418346546168874141526142308775411556444171099698626028070450935360663294508213789424041205309748306678927262143532261681158363719311105956714485947564426731037312334104045842399003525968477909775721077484915416191442887704842295481127046196776091772028623178316440294592437910973787049096657420181642511365560840234748349989546731545409765133113419055368503262281382084716625773250323385601979291037037680402679684331848906079051804188229767208081958976027993050071379199299890066187259706342436429465989527505735740491021876424381047302924675643241919509135676023447731081683048935549075818041731725846036936084370411631849050515304494255762403923284757377795186954513937326421293693456892797772474459651655452336815817105393327106143830513229382783745462764011756541663423228748810327625700392228035207794147473152665498398038116009705732352133409678755177753288604423330217237612944835604324610788706963414379491306899306601536696750690858445151662399665769187114754597593187658564965340229968038445111797615722345136010756798003884339855696651451159566833776185415122285411968108394813864686585571207286009948114679729933570887249150890526320007820581871977581604081636926470870495572749980475642835761728761881783809542032924668256286180235274058561034291994231634444154082310325616298454213791139924723608424912245110968767419232026887812169636877652758239739194482967503244386439777570181810947213362572735913883202187932875026998012562120648913500125287819694537111401704022428287546608910831836900789100530076717734329176461638895463041980992167423068392995067705436446561830986478478136854738033453441094594576257495083514022053075166684918018421114273255951631146879324965682669269644446393397651726899011720560272159386079321667536409838012886445533466531346438967978800640078526612141256918561495838968571916152481943853388757440054179342872856777928765125657969119161207285797215423146171746636874307953954350848791829056552317478766469025891905032201621099122447178359922141720877781743704163063151781793736009955500910568694843741574396341520256179134763277438212324246459498688874669979571140175898415978538310382821338055269267414246415112165895544827971931873107559180312646578400953932211047414210112784318813161997772845508946947488268294911591081863940500184374292320365604937727098531598440040926846648297567444264885075474088421206052029876926157381141137909596056960086727056485558449292089163299398638509945636410274760413838844509613034958589160832225625579384365676148899691853625221349964834161645645387073146592765686909151258583132955270982897906196616402039889575238056244453181305586403273626563673873180713716874873262150637808550196541731392489265709703440729819924805809482743206305182671876559346937682626925782978005760417865313292400868413864124440965526351535543305115405622343225796685748880255376354533872763336781521739008772882463296911776489074303803187685308856563067338570944362513366974460946169410646333177908372979569748203405179241687935795789843455723351554757944992235630964982845078809681350230053959174512283731597952271672084330644267162662067267180921376058290360114131547937276303210269983517148308981125335485775758433543711726960898669037334279702850238720379678299900690996856931007476434915597949347057010865418556717467685481657480467463954822534574749311731033052552843496618792246698479990849459400409048525464371421452973900414855182268803865752714054965371052069349005102461870990047234231450403045732216427138334706376125320062183322693814134071654479223148755068671929745614502543768207775750814530979624309181954910628642852101093190731427547726785516666405786890876535389914022940606058646480594816439474644577050454049312202048227524388097363721088568613551639593965522558694834233046425518894393099891047058100688281168747881148166685359332431873652048661627537913149122141858568191592926680508052589326226500888461100552870137605405901395798037333253226373647361099465898550610292814901891515860408003939722769709664146228918643920919644658682501282457231051660042001062444884076616419813040095670622741356283729599027891295988792630812406735082038730658022105929764113890550870235384879695521884186423065425505279999902153980164207285112097689889641719358170907932963200026282644925667663175473936436554834797209847566222041765973122868655016872462438489964387233939381998452826397315014714201851863373594835901626893970562811245675458916172869409075752804920884356270461155253739250909239128354327976928141686883720403112338209105992205957449041261629952871843297861069697610299279732164371758147026850727703970894624528152691122852845298673486397231102728852881318264571175603818286129620089994046807251709001558429642826694125514754107088215871850056790414524834949542107484008342311536533812520542610190908270917618361133384720996331978360925093765777591273597914988945811467866802423973274081989963982139217758394347686634152869283257947868648452015422234569017143339016264186265222820581800720132062486416807919752746456163279636101360782350476788141685814239457938934960333799088513296124008694579945593757276499251529016667141023890345609636488921083067626842899438758968392257861210123779143134998701892852506676840706444097069378195471173136093185388945592104987195305962184378971602536257666614921010395400602291588155564842408092658045224206277944519821169123306476492269437761835752693852521101630159805976794385990387508618158718101316825575052922725574314828597056687121659906065127302098779643508683901405723647650642106951433488834484829769856573550733582386241336773830572225711927938692907593562696845757046391507450782065073243626148158390202801968784721040251563198499633639126569550577596721914036834293673862114937540035524090040823286604571729671186902420807020595655328995244655900135505249427236927619208873455146532039766896317071351158038419053696448962516834686524167685120525413247312202236327987922727128651923497627786938892958377260419653757768377586571654834576915121460051021998320795398203072904656572567442300017699999993533093643845720624568137010900394524012673059632822430904434986699856681891623893503583671921636113583922217770004451601662957417450886501978035462403841347266135559205579152676630566342745046803858753013684680352735843678803483617809806918412741881119502936009347295680549282408974106586328278710031986586472071695224004934170741199661942717011167021723986137244904175750435114373975096712393588952342534103067324804585906198463668911691780062400254411072129290157662197964098917169688811366237053305151131032965406705675048801821880091855009571678397834193238130628448330070470119019008679917224233466111139336586922340923352308321703765899638864364004640981707030861211936959170141306311243017250881247693766215701976561634066612986858230615097611098624533009918321010037606441916917667589081737854054777382908403368914117202805048659166080687071823506915432691058371488612875697423211155810415190909281746391932722455496867710368959107987116736542373645894545548448272911203099887400241746743210606600620577322017081396527319086688443125261863057212707774207159350752370937952504659666415255862018358210998639438649537916671564124341218695508539853640240136796776854139596812685205530023469460112871186621681283720917323036998126898123185197744699188055273081015848686644280946989979146198052719621229527183409717094848126712548517615688977369338943084041265239761951784253948733058981413789012724478873283551157948302927338697468752860692478506368726925448132422634401790410218746507645147629284448871597235155072538980357891033247999932709904105576603010306703087939181873203225959514822916090823883396545196973313951618439513954509677661354649507614644859021447869186812010360706666746102987212199026666235990672194019291370872076891914355277358199440561992882852515865310529687188685646456553069938386239685722332624248756768276189867356381939131832842559549151655705062366791123143149088263354770077692664398585212992266009351797533959779423100716747422872583699559402401925412761014461482023078673270890378784164015364077748515911359582829726377720718016425415823347964161914491462489135582213919194919023813901149497028989350752292522868086823200597493236514782699050549032151927064153073210489486487785553934304060261727683292631054859018747832136789568894932500429596524130083465711282194899363332562095644172309007867642527332120500746737823726873212340301042181587000914102192404775646987751878079022433448827710683538508778177290119122118855314520967360629323892600729618537948890765626074541967440292770791280925626130976388641490607356947311287338253511557284107654078813551242831363716080245819291929236814909367548710221831450827295475205953118609540553813363138734134706744096076588503316727478948568764520986915133294118977749727325465418181443803310753488360802928574024900461841510980274634298507689082741040276897647252914828039360209621362642631167848408923223302086229405816997149652993241444428952938181167846172552880637247336394198046506911111737137146093309354072937693625058383290007824626829632503954354886780527289758970968321371101106679032978779348467556462433734545307191048671410093851290145247864797375787571627625217786794867678601477922250777691846338573595520366816245278257060760717240846544863353856627793846718652265621210150274619049825929071666677906373105048111572181662441797986222718462495013854299927741185903238824502937650870928681309452390722150383904545562171151874187081643405940974462594476361723226267548893358762862373863515804965153225222794265728465455263313960020437015678517921433816297043139582095224011703492788749118517596263893266941807028712833057613346980038726069677464439722788813146648963481838096332815606829237036069703007619026687316086867494730472496043104263948119809909104096926606096813710868636952295202733651582500047292549397896083973060971902934260187486266907122844683569644975888912015533014310177307695391004569039659554343828231005879555567525603976075549669830263501377642609336366730882166766378143457050524546154924955217271773159795640053086735908335065671341138021259512353605585403957353507094075545365406624979759479393752332257302549855995795463717555181690824451637245587238864641859772987115311063376435516141599937235461051140809409683972509646116011586136583840586962728669536606922376562634106880970192235694899549257552457753004562712547649061273366583517368747997970482980606930689329468711539250790626974782659192540374811471388856591927323591552958477273057828759799826482524013621009756741733527796348279287407328599957640801404675398036224357282913434020364617502663656789292374331724832078456997159117078999878552145670098293890440166963868615505163519781884212941847184774318291354046533063218670063532567335053626451846163780886115403516667791245979835388752990641431508687860996832750134488298512889573345644798374976431573667794062984222654113829531069249236002895466357144424562008637307502725768939154051393132720027854504200960323306246094062114342097673496196024300681731616986502615542788286962275015030175052659554043270084852874586749048473381929324485820844791257039455125880849705818678324157144154655093007693110569129071153006935448893363375839768736190305846743148395063781795083256582172284339251090081595092150425153244822750515362372213968177672941524083550658471477115593300607861171406526072430465794951467830214689110595433275339531703385311041834755182458233197016499763327258009188248703579425238510354701727897115906552414362877178653456824898560511043615669679606773948438899849162585276912558634007712509707851464973705503062807969798823473908649465090210610726675662408004637858043690244895125852644358234525740014528654258253452439225152648922710798073636102793421164936271319582293711221672661874613262486544713840298256227220317528668219108434529307402156793169996028620999579868765346102373563274584823152735791264336003138518595272507674749989775746210540931329483859800534615819078560857786630696424634732203747152815758531139278354080506552664298169432706710372332646148272884651403418239786623328394451166774762252633502058267739193758749098481122096183525563006813327002395858390443580534653640440479790352238438759924781932362839032613791073105960538260153652320015515137820627874585074433523039935737537460177040437120798670899384770655994293918597164807101294600131915968535140192348627281429805092494583786603696416070500705015788873685488808451817074483795535894060597277303828114484484979692221556325590460854863273481592759298327221862646083280517094046124757076304919991300110739934564658462986164000120049037767000380776775696322301445643543649165986044727200000249514790465152446689457475833163664228570895719183456545025562118315177746560037875012229386552274296583565191980228497811294364846838554419108691503744384335317716958538009514167855698826318441955756686381849742676359420017621917172675611457270976808438132707857733739208606783488015193768349298815401459686658354319989189814452190128978986365671371033335677784966293159583103981462867551689046405675664678269274464058113143883416294420762035699104744349561296065453820709967018156343071311350507959880555823473868312766451398621310844429987311148946815342180117269950781925601371293410430843823741275400626589329510838411847064733746475228435792278933884402369921190407750035984380026760469792685648657480103090968250222058600798963526753211931158376661502815008860214496276146207023786379579082742490112574555971866049763450491858070258864969422469767047873088212332618682379358278015842718285286286201233331948511937396941237248070452124556169198455374845503377852648013235834755604879816391529289615531470350318710773833087683554285880576857475396038553855470921570604783140342452482679271016834686263798164707603327120151620645175800315694477071133380106744705753887644119106685096076105631252737774845454247980183773880187655763857315743283734695702556943100551276300097526389756611999744004967185433357205198683134500750401102462434776210797455460638658610060007730512880595934959127782892862353635405122954785949659072799823702304482222053303730968432076696019622119297000638082220419735010333444996816145813103911969256807311022201151147848537973425189696643181654429897933295697151063492600425406949162464162202042112986358472813675635222038517003548441559076749028346545033305873593089483307464766232318401087398300007552782239779422543319425061796348983537058682903776270721237001801700072192709340066147418895911002189597944704883634915044352480774194259128425355944629687709340718485747027734933312127389598434262066261973269733049880765353675513251914195647100412313160852855788614543991627179960296754401547190928511271451430914080191817251539282861215902455223578237543147282664483848634744736350874053115096879358956989423746122726512197033702891128244946912215264195188775371099018554922977026814242444396972154208772903680649056564767366035254145622102463160911368853602704743334463913429253679556411917409016608905789625211926017010233884507291615911806979231446579130057604229044169512037138826294466773749602414868585039760762915895282474420565902912461058190982602678431206918403003825428566812702356370321674866412238187505586788737381932213506218549875406271558769668112298958669527398690323959361475121037800859889281760055873498385758951405589338620005105124354905040289165884401226408574438348309267434747943710631275331544913968681375450789902107482169886505061592338058773204210262197496496401347759262590236967058350939433195561713502866994093284229591805600632498443227867449647589989624435423043010638004193614043001778994926336015751150240243084141159535330322279702387532889287506342970073007052445647138050717990230607747292472462707426466941847313960895966407313784287317490613241131569418087526793665922654646770464796554149541772362047006408865023844048416605334160009270578360571362854199712062485755837776394812772230080793880303169654854137038840309079134177618761161593378223369748139307451526800857198786692209182406960125562248428020783456355047872184053789169398933292505543019611998978348039444685662812733892656500740611682081943714730977817808143634891272967511614954467699008435471286637797971488103849874465338282320273225430559359478194632036063754964178718509209551264017137980777398132702458483024354079397683859601095418377594188487368740321149280079953909809617299193100819461768585010455685302856631180900925096676186286568067113724104355989752502971800353169963854881299471904504713877292827182443048231552082641196719253813419703632261133982310726350780441137837359864838198841196588442248344758597406096292377536691765779555093603201905401757819494949384999485393730941958944707484150458994902935938074015834226208801292354850093515476087194611094625367733924122399229458187957792257254747380129456785366099287066119371367556526524638414170851908706805008326470062226064927621504156306212509889911558310448115644936476800863719363871983210505104302659830119050058974927860802787704827775151433504703439609391434306000812876032468747626096696826305435304435493351568888896334618920686220252527739417794948006070967572779255538477322222855001032017054380650127058432544163055058050307307696033615856066764745593390649962672248914042322641113266881445077723352768761904413425508204817621040511091405974157189452525081485944768439959426152052306296279425796217574223522974163036528506553376621994736965141737816754887812299248612558423902562060258398530789000402658777514335515955089109131774003515942897987156346775597049461983786088887919984796365906189131058522339433001784083594156937307400999293694007270679229140435457548675093926725210560983160481127005461356675808547973722639976568768628955766074489197216332787255757016702780151071526967911781649833528066383345240376803334765133103337810985234025281524803309783511327899517151017714599222604944540339413685284525122162588394528886206988205739154748953510994506433160191897757984876075004354190048851408988166153102625425063068174371665479855846828374192791507110588808518746396902899485259498917127450798179498250201195676210134536610277959947046404642618575550443528881690391085783602915850829991502938566141646363439925670517853730640275509252747370197371583492566491676984585126116508859149183376368649781595565069073093991313269387080970245593749197382351623421670779931106368489719582637399155229469048224736921895002066366844217918960173294187824797304320963644409302624038335881333615134703580371419266709441010525349328706684358353599928361593098695141916295466948776582949123450242267622209803679127023036245167776966064098681194837717291900356099561109332361758141971120994451879625013781751524364143147430086473672549779270136084228783416163957747675700715831044155423771929724168302280086724557933664405162880313225967849517828508198235268628799324041589671072984132620777653260584980241866622612092647521977194301828779474041469471979581548813483235844992190786606927306660557488014539456732333604691125511591084891494888461945586032176806721559312720101446137098585887240280134989752373167679092371137851322810546783633823630935323003707791898905769588656084345664223411950961189899547942914695157248614528483346602123237395780266178009398492595317958732557406282365339658433048333590672730414097344169246705977930414352400791143420793254548159111972093773360628502352581408023089300126006445337642220589377804503024003923034406248462289574646290808799695777726284439925604205756239385835615417901334428218977830608345564203338274123019404866416246748679208785810643913485810858798373140036552752653554208485334471787469132509542757260508235643211044470339633317626746830860630602839356658973587908999219224936512798722698588484057647798939096644892573303616401208218652902528820406385965974780660220104136660872128835573869754583415617831054875663963763536820601394937932425688949129712949816248951185881678782560020700694637395336199977759189586016587163987731518101465370474857088990475450812727228994767657166487588832877254343259679542726886482566105152480491531019999842151842764564466510588174585070198014422335544870143688803984757424565850481744781810798320730900933540540899534411822587725628516910023292431492959302965673126456232997256003496546403827858086478081625000378471823355142311560546147624034104917122326670322845993369221335632163956204335356346600387450658834071847919159271659986449382384739816752471174199462930175094883182344929116223371985867649079887882669715316576212120462643410616721134080692783280870551777116520525157868176958342857746365845346388601984917174220335755622798588387393850880463287911309777678154903159620915184519984479185540626638158802871904880906524628341099092781364589122842517126800410455212394744331448152986999376199083440217110721435315894008618275098754154389549883801162812523354610475345681779114875553310893402690576242162402953647780638478061671785552290728725917734554922000417321629846371227419580278628966718723945455251590576802081628193198248378115562837290451075230020534527794979894400958105005273197981939908427915112304479641659274836469001058986682051900394619455030891187129661601047851042916544898508152630056426640068556054590886374927511666986671739791236625753165789839287251943878523398862855178937056378023861871921744721589082067046211476496850449925089680977579705047359916728210594132105985185554775822644176223848074701976081873057266568926356453380513070405466033275014159736504393028373547517424775701464688124126163889703772395880438506188492862612202732769866627735214800120575913304718826829683468515782814634119207472200393792237199286044647030819293257758560802885835663985955738879940829894398398853686181691156380242982671585115131018576643744309061371198253932931666898995686656616557994739080189976584292579370593729838057383087162888835726738449695279733208397159201929169760552337373971113590947593048287321144863632352516669062486117186643907524958730404955883918244727526820125724992423799606808607202514493211252254644420841299491565902977778193184967139351154341493148344334219350468534023917108482874198065755257596681175840658249883830785101054211068345767813657838875713862296017807869574703307886792626725940693355890311681162858613757088625719964842418063017260950739589482783879909022921318085953601592372236513106148001768475772639079383664581087669375629263860013291477352397158076438847179722995811529444234684559737434745710184308963861546983300605694902710831948999877088743780920195806332226063224565254284175775160704724359375055447749035940689450713761072370677944937685915892950136312505732000676532061464279923844479486866891940101289581281541328507176385633394975659868426310869759120472458920778131073152587445111461624875318229792848723332319196055042480337737692441183800920617019740432761507893217166565704266792696242579798680858523097430345127285588349481505418633635887027782025189693373884452839382214768137338122893247469395919041487052842386537940238109478584636293934614218972492134456114479203908165146997051003056468617740473385059122691014801464847743459625989346978248604827009608584480172915268777070465436432167304174781251461663952229170061676946734563564554394379745796465366688618851056258105026680825624755035178126812702941268415843259719039788358897594492057002944874381757586975441496239608769958431680330073007231564098537823468653398987452918657683739949741607549824246400853510869582974296510038700751346542142896869551428925421490726530777571337008126919134799553403463894722781316887266788469193245472603052223334098267236691667457225692900254220749086613074824717890146698719384446186677950993568336091168370806370254943602633782273672661169648223244379857193902310819444133676071370744517675823612400649225863235229445724409830345251249315819351678209508838567592562447377150357077208908404451785274379183083013673864451819226283066538111711759179010413034858371033072536186284550653542180529011611195648859177927287290827739904440579357873360283278659409848311216423365799448474733882314583465255177929347282914399295138130269297824289736573306535896643229739533318615894599435046913126897357123520522409946323911705570613977541571456829034828101733459407745513515743974928671808784450764986864085850198460388188051477396588382242145571811505024163494605578412289501910562676847430914456944541336951466085396021774926453292141489496680489004823580927041920598576176866683005553262969075300650236858307947470070756386019184683839583545168428342461702242570478755406166237406122999020064943931844979779344863838542109580583492642564215899594665354189435709963211548275663318505769442533407466041654863255094969171410978945152397741314440868706073314932769911887321571099855628462139278703070353915280686264216565818195086823861779599996250384836993767737298923672133652834399805104460944411754853536785446475970371621905432676287035455515325403612874161552190310165680360376126060940576202275349449828742508019006334872701423688037565745332557978292826858402379485457270229896254272482828570898495495065979256281098054454388308097442005309379341503120254367781604714337580337053421300621991702440204231516276489929288530170900003617884931583186330573113930277125327493740529921101043568766678186284419673383725331718070479971924353769445320400142016532276530280169718932350380013105288180035246720156350705196458389027542399454035892704188759977465889806097641444989579090076343223004319270680448717890223283176211455054988287035098477198936705128916024122095460993762412233930573208515382518492713216310901036038699439566179392253298441340705433112782519816109605175593240867455654931477174722701863607467157400040347042108380798446115413897582044824151830145801328779120707443796377433177000422774292183607587520708978944069245779590230325373015361245270934055923690206300684532043906590054247832709639087767192170624439351123608389502922810673847491662438882247330284042357808521664303404627436689696384597013813829843814437311399007971077403822128802004071974963647498016517940095742354607369024918726548437429680874855939636986997054962841986359846858502757486435414013976038530337691900981714495703414856825727385776401603501525128598791904578037559674526289949256769064009724823056097363082644213338641624134948428034662301771472163749404846589401052807582824883672302276985810063257062364226568786644693110483604669847741739981959941663293922930599658617594168406520234545090637138410373763287317781036678847807949993966008275470877815668557852156052881098317529343705186007300707415292614208500963940614226466062814774972235688027300235314085276031300808819067443228171943826400721086672461121643657288457051412168025655416479573316586313761394145155327584724117842975434555207340143057864211333758903281137340127187060779996574885911655621180546268299147860504978887217299893706797311861186490335071871038962507585042089645383836690804332297296750895652889305928776086763993144847350239924608821347853991078478923708919778720525691434438574499022395335148286224225509676708713014383472070603396895132485494733960565948830844643865481345429506953104295092462059251152225694590661539240961396506371076725200348550139933375153693518104740917108162364088808386808797482743400672730984728539625821635331941989012995557768008287302700732422060869286050096887811317782639245245145845320724597507464862606638585013548407508060098074260060205289878797867404587859605085174581213104952444611958229126666858044617857249286025470836042248787761462799357940762237175605054209619905738806002947385011244894166459835397842393841612230197725829030204909192718735554061871923477337733351704396759421874685171139398504429652284545577096868281163522506304147373575522235873833898067798763054361132008590364142716922003333065560626448224106257182302799187038388931158624332159641065572691796814147032416079150219125209472117823183380083892414362086707739125472226605715113785742601789299235253784759818917636950339358573355350145786652292940764498675703056150009135196119359291481240580780015863573889541833770828493751359737377044890930882664166064888031508973177107013025699643456417975047986715616851734638129933833967301448043416035928383820666639542089938506807949573211735976536147180082050030925601511159012525638182175288416521650274040997955308330914626515493824597834461364334545414824618723084126325113685782257192853364307599384774431047950109816314710715912211009719583474141649421092613484861528184408856759439651795515642275455585471636512331958312797877639631928130976186843046218097835713591313510765836729021016923382756731226425900202880355061871687461243829604865351375773202937808650605676130834790809355978580380161222675179144516915834355807603394427941250252362316569187886771088292104855685669721479826085472607751380314488071886818976382308204709140632629395485185590079071891949649047064868708478587375635378075718929015934082618168276150741365408508180980352565112400152661003056249478440722428409086213394236936262824758021614277572635280915885980287551731971941738344259680724821142142356316549462012570926200619995596984017074711851771523034661051983358109978515697047400885246723555548604602446008043166834469443666647220471343268415759033748788537781054940415493283608881802634964757117608952440848864154149023054136676302290086275537065234735997098546735120146867934192481205884909512227829132133449542513388634578116551641373846003414787398375493085150358960915176801907869017281504356393601426729451958043936842738237214495669599668118432030116379984273661841534335140831523962660160603262567263468441997567712885685111118458776077431867749600904216699053877513564597058505873055711496156738029388425504890582366647593037784104285064284290907595444893619116901688559506608370931246441279628293602662429215807358551844295690466053155148077128744485119387132385307403129753995901322156150804759236830672376406628191473670598748488476994110894791672995070784216200659712606187760188598611733096037298368137068610741678634003751435925574900442710948747323014285679824644047001672766529331312135948123103576403487477053651984665716886509117361481665468944496866362645104704143641357287222950068902181256641698832239171750307558532254001306558472502552460057497539082830352489702257584372329211747714811636710642438983450497672101478003308461537483373372401355907774126385783847254357461924711905486462497718947177052343590052299343889434122309518338467501134223868034569344912736156487025336850755274965726669608904807971711650262240383565212070995718765515414110638633506432952353537002201284296982940523053341353002509656334316857170680608527983496934385209779620815708327923406278293049660578542353718382464453752361628091957521648988436700214823549088043077983331352142827856791776532272515694146783186467646396556437552919689342822966452409567830710687683867185219519277339735825399350675027426125638266924837899424780204191696779593852482353890293555503173663168319207932069778510141080568200022466559829814173484434164773944020231272176120912298140324739337622435217655830731765319077858453511186495917271861087333044745848531889720842334274050189055555544897732264066255783264098123587357149781250869991483278203381994507101927855311811121295082318621843510028920069887666983969918674468537044444080125945140472702636231629110194783638197504994301516193950333082635512272087054500980651468947582900724907892214996449156741697443992966624968096184318879793170125756045165292942760755458064756325696781935995263899875786158720494464770145569744603406971436803973254344496168644379836750070728614183891235705577551432777041773936008193439969512934148773175068263003411136937068964799132913193972526914238788281600873042827392833851513854619673749193687617920841373455315540059652310596686756907379476549404804723036213610369853607516426791878105988298060044298537478964951526710860397947212534962729918737915417395558743862036494231927358541967536505792658342540968250130177591874407909229145251298274787477720668260253799736096899302306275984243931895452988447405224728175400248179368736641968467088470695744005802220751836107511595891825477618960155560771806709538642389793652331229719891211458130372249829693200734975858125017115303611936657761503670228843241788287108858482512132474951173412462226890934878549854012894901383821484124403014739293528798511880644087746149008660158299612575291629781169123199529160691552393125278229801344852645390152191341624875100617912602994469192253808814240351637808537043037938992801641916498348854029376751162669923604969253066736434715646335558878429362488956845404991800437788419384708954076868905622491385779132400287035411332963792140784897482327248819747279675324561850422681539973722336108830656010467151586133935933386314897087385219167382094648823721598293535557734487701318545300162642042627028067554692217603907520058857762241601648664064900840855107160108175609536282562698260633228572215911150068226743957852841463899859524384355655775210048829677654364538648880868988827494175946824383867706740631106814112140940306594403314206167319798576985867841468100582181680355938871578925800530195531963876170852803500803874208862401380020048017120332962304550069164483907655427724917099160307507391711967541281150498847807384503297465980105689768951426966025811002337144124835384199770384625482512316820570873181456015935125151694332990720085210466297290473552803392872093761497520897775018211350678447482371402413483876227171064082105623388421847400776259962169264698596751485304031632702606412068741532068267264909524494729069083427098533404225638725789800627892334859941817142299749690108841754356737748261125117728573902544616845351880798231257332149512221400622791417435285460881951022881265105910863041418765949396128789146298556713757864103383892105984940191869984244344129613688363590250437332782876493278783884499382624717645163006030216441344418265151966914178155385160980784711996308240560541475148316674430808987742221167867767164991957999657585556387100089422254046013512488720338720906382306792566142264316198494500142637515170962732222673578328307011307446804377324358999880929893412429859696110170940034252196940881219554011710277555930156609702641835135178460580945356458610976050356580278725302375922688541749509674333592263033628018388550670058894730517801472957073121593524813318441805473120727425438780796397947486053898052326024334380001165161225506998125127876374239606571545410621523120573390535215338341678311820226696683387515957153054545333936370311193296852303557561485266558107604800486595221415912897835731199383145406213575633399393050977180923597199142085572342461889759796792392096670657957598858562622764772080213828299564806765861815113812117638642142923607732513284234981530657204004134357810941364371010484196122447179793825054506559232907405533511153723530103565141847436586090543710856706568429174196705995426176711413288013078911600043528062695034426585337237691525255945986117999393030256718579289410053200196622792377775253324487550392821882906051930542031095616621756917466376583171432287539069339635666146475996061080572304634209940755015270250688389181452245455910947940428999715138171171498593994374192233019942091256337833094549293433135725632568313435519910274762989961544843302756588964978742509464943737027955815441702787127084863701881010618455299479018093479474334788475122026301386126617421455195942290851996136960765863325212657134032593116920538457061716255351528247977195703792590521407013044261391271884364653179809791398807011419523802187947990902801861850115997160705930836146242199090079896247499018434000867617247764649675379124865746192360853915604082293798559875244287634590024905633260916750586105775794116398072891376089236965780734850149760971463053512908057674651414349748104048729756563453602506790573820719860321090925986882338118278764814161061637119196906394093005755192493493726647503945989304058511015714624973092384301748254986415020171208381307720261196743555095265525703986202750890726682198656061916613995967342143518050660792036318654096622955240319314057042192184166442809359772864890962136374334227382941685328214152926882034459141252822466502449245761133125357900322345995871003646146960168218089223439434170997289716323499178631357745993861250374410999217625023136757295561273896629576447222819280576446348573253221269463082013645230290433425724817398753647983940007953129271199938359470184951906475485310931269202490967313567285941516502016328126959538166021541671961044178674090504147025255666946558427652808514505904874747173419951700357370626084767416179407373900999178182950001593640455375164149991629908560351134805275016172388617095399934975540069133432622805029531656108949648341555734509484987871691075321025776793986084566045653550567409498015734637308154624786019673553485176970791765765831147867241088440526258703607328455444012761199000014080491690691692477915742630350070100590826419211760537128657651784671981124019450594991637410594646398779530713919045968847730302966826155388638236123726019172225588290366839184236634131476816821164962681075472534768515894553956733882546370857942028979152260346266592395336343316988141770589662811671147054003313670880272914002618094203619941797570553064396878643223794625025037850758917943778128484560254974014624808486498707580941575715340798255373736337341716823415060496701006552564915832376199382036660319295926601984918366209391283523062123266081762831151049836628803348006934712437785865781092775403538780021841800514725075654264866282702764750405383138319960443300906579266253332711495315218532480892357998060444761953593589523615324732502505387536834841626747896921813834306555785834353598397215498997527725969078179857611820326244132057581337910691240905756367432651024222284575940515287384501662623342930281505462459964750052507816015694128685120481227667179687624025475707441829386053288644745700117087039042791036150139099672193053349145755795962041420410136144363046656382974937744847636900081399491915520438706864870735967928465618364572961265437574297576962308632615894033915412042931179014899638415276218161869135799466769039316273083461577492886108621334573927726139097543111192035278573123629760126374289301861002331502736215471624713237561329967550442876078654224204044872197481250104920669141929072258498188313151798954247770391601678432995305779387030607338632602713220920071302254818654261740902763672846682479773151320886513399698628069573725809502204344210700333572028424891970117568792483746695225187792700316978758189880488227436760847410475761724725247763657808584795535029709721679850401495267771159639132987583789404017793392140119116329769132038648797331023493741725119768790727431519767224514786703016148543441186030441254724249080989460864136950798921360489385812975672786959500323187937171164890498889665039476221874650014175924395975687325185024048993469896536099579293660186300172889923084774957987296723043474462184070835448058505315632935299336197895966406244598808866205843764212017597038581793370067103664166001756654731033981769597444618904001676388400003397056589062700726679891667344426884857090378406236106940270530299148446148559459379473107744190422466858151486271318005172596857689867064541499122169249778997001585716912760011858615374603072060082541839203815847275785862885852626965391060148765826390213752990400098402851897858533986964447640174294533575435288929798878754904773217613441843985370827349256068660022515756766724881941224554853930644590866445049829100530836070593075716323611938849047581465999459412980726011789170394700568147578304021330317250242412170977878959157936242569914442476716282364141791451189210041693352055963966739708258481816543836191750133346936908806655659192128923645664417628929886229906964945071836685462331644438382985599675287819861675823120342651500499439712292966498423145466285142342335317188990415438576382103482994114318109411621161450034988330493758048733318790544116460278838146142943002512169713840737728294035953945045981157640241071068273494986512552318172169604712143136304045635965006377130416766370010627290004787125361035039917104031239129949925272364381477727977497786692582154768017631397901230832104433122391274783990598621012582810139727471256900825991653655368384700986144033230559428232634557950590955162276582005381010176877192414677061478861259578448768185901685715385662048233950746330158864396131651674885676768812760818239101640569194788322442265684777443191195339344492919127583279792023876257772572061872469176692063927525584931746824405293292018572529787412381273961874909140704416252222011770698701604067704860437592811175864555888424859655793008830204955296225807752695493768053324386771366581464421565375744351544929096330635260375865938677689372855219460860484838217466229141119465355061469512640078151782713598223425424510012338605638012912563038882762573918074195335750265667594930644073836010908298855681799293377183029443125817176430978398947837498755271090322979108738157459171339628061932399127448989310066851307670690864337036017136830117804459415054394948333067706961489056569715719709094940627300432674118849427336793518308762246997594362093373549902378475888840111020482204196216261344473753477252338092244717481280236276912829474056249114722753256840160778593704265040837709424249395815858426537282010388150297087532856530949726755308230817407370001925436160802077654451534113702969255291742378003610485599292930335507717514614905417581370845190604572216004418672867840126427748945114749144878013926286123572985290406584964329840545816596956500352498006338008121049591374532115299452263952513368794153448918354432282699738218974620289850007750080286719949208601278489632202805972871553918774199326906574072162582601062593652626477515947638249233689470719024604086397690829148980716576941669333543047744551743111676042687362907438424884184446458989456313202621424132314183186540718761913217280535197375064957982872836124421753363224914664239042683367840051284304367797343987164697735457344617988009051669330585102683868800041598270740310052338213997911565069489811315986456511515543741718584612936589044656333824578703350192669459244519095402249190050030241452057564645857114387067550857080575857080694651764989003665878569844488835867164859528148176209439977166194595513335804221548383074126728068009242916812796410587015593498604057490774796533515133491264197265279532898895945771552049167486898675484806745998213854235163868117148266682576920005761650564847459348186233044619882208753048043261872146590744864337915437760902931414294329093021629201732410460809390937655151469742844651219190069842476732636436066784112724727737119324421975760032105326471176834356680258684616982058252911068954729411061051779114019147682932954048794856089885884962105258393807285418356761350069334847802369461477937847364175242853556351901854297379755488388042948274102143633016149888600350448423540140606152150837797210746241905659170841461203300904073973537111669229012680208797268301798258006519850188763131332722608792914669377737268236158522121606662695352457722467401254819556894639824843773664260574012115222729128084532821473302788551954939493020585061451190126019468229430223599858285682485347292048420229544182284062630068864452592345338203937343492349095174735430335625237724163440831685775018992830459767448868427485781378762683317819224572442471438819205291060895728658037530851950472762670903336328949567417032623744659553062290593600144942461190754271825128661586598802107381104073151001377702104858836912142613073709590524408071689976869700433017543730728282117569171564639882614573803170419902060934138279098156518862429557384408214073312734314234565833561718986609578282201698585562778954451666987949494242028079682991713458813279184734121634242643608824135838414890514497245862390166674059593253478186029902130529869860694419684011920104899497195428134270218297719469910586802185754572040478198840151650362911224751551435344051723074821383708888814454067892929041232432092692597680035052572622858076156110476379646290317579514533240621977132459689278228945001565017213487069255328072412866103695700019524617638150711752964109318983563478946507256747538908490537881856535145827667557922437242834638458444549973545784182256849302302697492468395805512703078364705299568705062557087560430924747402902168200308831916298020556313602820796127936289974873488879325379150841986407513227793778057762775260980795702070173573280289562790221335984949938943089406803217595320634306991575984012491469753598939189459210046327947062166312303952812215349185942131117890450779130865726348490158434396653563521453492510839274757064272963059251520746845113775086284551056224416303645868310849890462910834392265525885259425897244263301432379328703742956150345784768079216469616831409249454536065267581010215394012796082184980604604118151158637998319508894362460431702733311941107477836599394915327959456180249204234698397100350779309342156941865841572198312562968126189219692292171292987339614186249526731145924991857932567951487595218910680715030555152334711648471982816219756668150285248238287435969268806253599258160488747348300936133918164584717438180191250245737048379581196839977794563413465113766609493266009459004883898322826958490491053723030347432448180420172154945680457460333728690144814154912511512098180227175054842872130189073314549007478535124825858655262281326512013621178904748395866103223823636105010748843695935821481723374513225693468446564480336743654971357701019831766378508846474138038057187881996243392824135429531441640172124512528147962198226866520001560158580703265103482672293702505202514884276130946681045186797581393663900990963309712341804974483404895028072747427357593734553279101536293995616108696684836976736935849311468350049625421437844568846373088232789970403800528495650246841779137665954695514690678823504164970109441012560554720256658218028769453286811803847708896912689944889753044791399176296303269895570505112667879524243251309415759160966265900087885102447636116208806906988662815085959056747312525458333567627521254646441256354815064006570533410466356506775457633726374710046201723305915991564585387069165899457785684645373108213983103084835163410718742543277070737732771010789777509022833337815708745127627388837912353747307560210085537338619146197687367141494308113782776597414450290204003619128267275862752694873966698019010795062467336548617093140828722846138512479170668676735968399735148370987369978202975224442864730420370139058852129116157555081721698790681326903727333116896903480240080067261379416796962383260034398569963272698991005682720725707547545563984584526255583273909344237650194817005038224328529246714200804030750085197195972036516372271395319937258845034173394541484328069265083057959155977682155230275984889229703061269642360281933992141216112895103959967360299209019542472552817526181073163875423223369196570350334744012347250219108074209780444252689857259855751567498341210953862091715859339641381213912134051696309112603466735618075776769259749725114404379301876963224773038629505780749714379636515356816992405357421151920530092417968323586496811916332372381653803562474347978753116765974376102862534127980322801475851480770531159756282879639111116017444669934035179217875813942734773862112243327632557694061293309008094487596234429015700044172736084693318892768262683007094608513915668491750307327684754643918356622134147824327582766349494280991340681358715643855636100619680576672140999875904971152085852354371077791812719988591860611360299327584831755444212846770650443788754977018326458345491418745549863543314408882686768348577780524182255424731665522755026038502482319047776326527521722072172552108052267289526383852179143516503745586411989593069484871810391268470790987246557163241717589794143556118691010921935002879160979217741120688934574814766269342817756443926191673366240924888255170713196030004023645048958661478868250327554361479415882553789140491860476461860256312908384690723164539191740810241143036005298160145508385274871454563009169832990238024857013388636409591715215922408288955393826576640947746308637733337025745036918148230543054925151827741984413296667278987591770552299725364347185085380284200150908469737775900666810401674312043553764854500312775285972216024241719919263430913797419267972300524454750974633699866448181948538401261206553356045368518038412093303509222027280711693470245585183910478234028534724527271337010927705047034944598940476875563124427029432832865654351006359517757580582999578414182690576047031889685749934581794770946050009122825000467424026475891979366444534768694885310987877141624783461679235126881900069055303732471343321589645668519014290098311528896789028516050172309292244952083885341144296440982690060447518324904726997605616852625365825717105143420381422963402254332892949164945533057811911432392377700178845654597459330398785209795525657776791908729046971629404073041266187068108007571749758583217519211603564430486912199141942299333473564884622520221638413116240600204372877542142236293961098837859960505540948843112792825217422481493001033648178589601804321641345802149027479730222552850569704401378138955902368793702891792299165380384652540056823192776249332103139535932077942627810959436432886374553136505237038631247840102282826006912802767953993519088517884145771768923553499885437235377873889053899694664220274787436424040779992818343807259789442013672390640514562482405858599859828142765378272401097543266660815278664726134280878923042113481150627341036412299436032053186078542456961397210016118583817714364845981187191368128523283125660601272182602618896020897770279723330630800873024571342232293801774790942469242985219137603595631372603372881860258580469964973614026853228232380240490309170773719076853515470967546143264867159494246190286812367614324174691401015032477506107314833537405315344066818677677780313092442311214544118772865858380890556021680057480078878790565107634064178582424305844524571001564437505500174846009400800511988525676452543907364371503010688061598678818409878922275476531158643532284694692396721681696137653476997006040497910633049934948519578262116114175620275004007376707639307693215000706055170006971545276526846849089889726161477376448802347821060476095554091579808724276693334740060980441335301279520821548316406841781897152898100590100449827812615420776703675538097937075433582433327472335468923135464517670742577941773723970022059487141588377391406538187096536408424941945189537363709799698184432785002102206514065489522170009776930916254352472233123243655757552782250425916253151457860021065271313451458473226281781500505541718278551111565035311111904720979618014699811956782184607030140500512345407157692786359386304477817286025962015426594882350819989105706751269311224145498622106401264044123674652698922584449049912264892477551739368710709875384207596699122553009850904830281116813054902992846158001850576354171050750008939815376397210846650755644660243506172499524980579564513118779396054516269299413110482030522457340498395720181829761216965195938599479223943339945317044819896731423483076289226099542042583045482693479443295170487016016525309616585618139007668393336661823808522223837371387243044195560770915298462276969077547558699501085767330037410373976815269342401836008444017659036903631977517874783867802054540899313965893468217322634864710873416234839724190723826247094724593334682909089752520244431357934214682314711797274461171678651275901921771615551095041792632265638391141731146734881156815967764588923869020483531104002615199853549547445485852036718044181874073131426274752386090687511339206549512738222300884952164781575266666412700556443218119152430589487768287048521844127811962637961401461379020608603047396382617503649760275742596158620274353706570701905277555773869065044318125547347084470976526545493476112979602010541820628788956661268580849413126365847915774626730335852028623014977527443313739513252116275472775011633930831788554879953252926367666408448481650500325921878829752704658819538923251747160298735897560293545686924210778855425884327944324925347498032433270259747375237658259026358600543971643770596396398472817518827086625486862091556843622833203882746590564202549677001018011486662249481134963073633693055127231188140780360127919966402937475284342382301426266019917327177314450111031125917886992191948939881900221055537005307686217425913480483933242062275012372823572583348082836974560611094977311371696252655415567685437305054836978923486115957899857764916515253184909805941555551309481391076645642349926665196256213746522290952793120782363110327330542163141184269518567172217993609021571140421364773213137471389214427266984923656751492097613139662716715682523481969935867699783691320718712694707637327583259046013970767653667258884727936985207718499464331802399575434130290836544407358876049650330824100675888861975367239491187979897130364203750351500436942901766087709578397532315886662916424857272039669815796147465014042865685730026411502308316251100222252972321006490680705110573434308012948208359371908512466806039777940502437051691209550253780701923190220814723551857712564192863322760405208743067455833911816966560632532215161608711701428190785598741209411750631566294687353544306296959723411296782449849856544866672337454959185396514230173654353866621064744059899572948217309814172030671525198662322135386020242971527402798610983536038020693347182353425878952293652478713820649294595429095204112907449037843098921340400691248457372725429795372128162442391171855297256157750874703539685603536969207195817743913780272750391590448103605692117434599759658101927741199770503619477238028007184990439575042294259045404664894491976075463213596292174688196050572661008111989860060880188096077755125866099298528389672575105414730222212027496942903277262986194962403805628063071546304516346965787054435504412271590654030845144405612752529396857605141177417964460320383472744693701745494276867133176333414369692755518184266124695307907152172380022637818007920285942934346184159727992098541630124494427811436308214833356792918957613192770114847311413755490132395524571598204007058619626745664598613677948615155471080816881799569127298886132744424798836953075910511199840804165230864087968547039680105759925033332766870932487193666351172117617967136802374177360967727645529236834203208027560446159167151152799859214430906317690936654822497528164502729919145297363172962114158075018185124073722959242814765952983873790730950393887302419815500833953368162562843365155047713304977006487071684827167425091452533608246637949371851478077715814151898703299317073687750181697051086847821735918002332411289124030370309302127708377642499000692876331735716512497409984728621655854959405512627095316882745613883808387492780264639147590520266825218542629425374132224183755815284471209926077157862203485187158055051819998739647299784564437583917657491334532166260354810916167400707222486956536865456697031137880885274186435286431461228315421148643862566731575715524921835239055632696745016183151238920840328915141038128530612570875209035734340533820313038148079487871622136887436208503636819828861796526412772457844819022485561690003422517569402762598562461559252522399148963951348346406657947450556674171257951418524271358424420685867560415283977416490753537687913639959115449248472946639109012440412556714507276905605921162860508434479176510304556385164071267595837567607581372742474473647793665577027230606871075807192266937933641669886955326146551416960285723840450061748734220866120210706275394666653529080346372688961658217430013205865476872157723631123043508581050462634468482325361822024486743974025304874525566876588612159811938296094145918350797744735059247026403818881521459675140831789030355812840416142026287583256764195604261736065833214362595438352590080341717762187849561431871029985941108167433698094748043813075567586552126172546475416028217496468652836084424395144652963666596880305286483706670458448231513845075142552222300781541024254282637694834275010687053227005503573683749789854559352696541966627829383205131605317502217316019163031099640393499790931516782556689821329233680139491073752235633629393380736759296064575006716615583605976425433213748778421099458678575163838704198772699869769450946213915662287595474551323351747133322239513256787042330134091242241759120328732570663153058140042250613578496353191235039097739687037130164619342532312704147940870415908163705643710029398672482778118536892167244290935679084660966319665773052518984769841292367213922547167398824553529111608487094557501936868379703393672436203795128769229355347871016701848175849410027609264569391330912809732733547079838137602012370354984193730658623702268766149879526713141149400641489254288690380990663897262160000318253600930070037921977383080561561612950076426585543356192020178930664745113203553559173560063432355654072986850688056256473792317686432343806085580647490999490813136885770364002315393282704178258300193013484652754562818803866632058056356367985766371058573593158391072535376282174767592606138147763683277955682561195869768262886784292195184417551822911340171905819644908990156494099986368420952870745650783527544721953896049884813689007094225107983966327844820982715572791291296848220741798686873037579701792662215999850777197423359201904616218502008199167146682302023711563635159325735786708126427417243407654394550428786222907777903147531188362115053689695123929571324298372596846523080207909085289296410171731271246006324138932076795530068120747273334200121199074996247939531607768530504387646570106419349427743199879521432154714516210419925220828027632495290123422023038602520117846985911951907693010576866010464999090608943949643823616243856186915680628394170541237630794073385429696741383293812926421240718342618292499135753754986300441896827089066615958636435725704568986877836734001272504556939271589685569188715650179633388362622225102662777467886717549778086927060429820363820997570780111564970525957816397645564686064525268452422244513144526880211612665912765915324567338354551871882716001913121999574824154857182008653115570767330941267220484986124123844619499246126590909040073906996855183569800435761477859228827133358727474868738076331286536383667690508347011413295276803025818232784014414362317668089380794080436657526417443255827472681444989335430776547198525710949694787897139898342804969662782040475798908474702354457721416012200902043260664975079126852671489096788232684434015771550620774646874803094699334189741286614464340421229209854228155880793724360808807843342513294581415103645071195498735642568979392818703475575036649144992236091904040395768845574119802444834234995102086922042227333272113705447418690100942491499896177520849714412110099959797894186915733144887882718006886992164151156615852638096893381529093914926092352435986277268837428889025590516552261979091095034566705991184827499932008090129130408939276493824804213293569076324156317128251806950605006751565716092677886891935807240520400598111548454635582641217093622233761250770223438327505524633809925102461524116439852592071669543854988791862785829480297124237081776899861163020646420958443037374615324518771085395578158175427162108535680478481896664488196898994109711929808639860532923271815809171401265369400575038674150575267711770012626266285861064445294299785687371810363927376826949338801713745471260325283689722418358694465113098065427195606207914198785461957958528545113762614557998431769984776941056778584898434071414831845377312819725782135072745528346043705019776570655037918697344702720507063975805483447551410521184068954707794393031490694312817375631694090881733911134297744463769405202057437081678606254683591334754135849653424564039753903402703183001712487904364947401805853890156754519079704022648825306300803172770659847332283460220607977425168537274258254291044828395790074485671578456828416723470113076189220699664789295127377389672637122102977713990884437230190532255639712563871240878264504789083355980504815151784894096668674537077157058737420557382700276422702977559869689288092402755028691991827684678484205026667577717481831531630942931188496195553222711465059264893208858236080751391080148531973447605493766105629462714697735587779234359225759750334706650197682491762003839402498028033310242686211491583515359627292156097327911682445714507324674955255274460190203979634808188613221820721793783967040419416196293922545321723317058846367027214500653474286149465314686594652850276086572759937975927205099912226355102324331342106548916633907935852506748698973876044769717437646133922740720960496062416977549262048664717423463458469653290647567800354385229378811144872697953282246997739209725568868191484420547813404566635611554709682668697906014582389137821408112863308677781670974002691086575012171197356616591866754778191668359122751312307858126029820765379467948346056256022918987907710887516305232708836506888067452133318186907514384461173583979379284507283465241512475517111723624380301842607097142379878640204903122759436761403584976381722715901629732073403379979914931263120360002335101135213730452464900122625922263354954372776798739045009002131079619555718006611519720035162899732716105799188873362026377617270526106010450413903894999717265451407382212883772705629832340256058500451011908142247497346349629624194270612540558883639188616152506601044851612640724843204045554268716705098256579796591676799865198464406872933037675369037654330193569503141962046811644215752048602375953825746591393580698485137322412098693415781140803477317489265827668113534361528245910942759794611143514523452916404108247268197174052038160055617017008259195519026596848085054156002780628443440230224014385680428912582777302384522153244911891861600591067661403718669060164361704580843204771116690154402244094766990675667337910022012961639897383056125383345462274593721685186721469554571998156757691709403854393805450901275558207035966752739416649054644805171093515440887715167534242700923431609503032182969682583187741664430352936043839270133355535088601907932684797890849237387522571674632767816561390665885087822031360177638208046548598769432286231796389623160384362664678728117539615583115399626531935441661225806174290001723768293987744172512280835767120320587224437167406881476361547536777108874370799143004980425486702480737103649460305823313334923036156451568927259077502076132698778301870290739269942636960928758805980831695442125926050654010055535746439257986138707988215735867407029401360777882091252356365966213924750846707177297618957924757683615140313219822032368049248594918793461460145126025966918991599017146263193559336042790780107416932025626474588147058952217448900932151684369602821880174115953702140546051340098408121371315465894150057532982572471827557933652233098561847999833067321600688706171080716777557682710974697723854527502213000424553149972111111791040326252213011111619214692557128071517121149766188001420638965653951721010590146588675870834440291708935044681522792614872482814009078504713838475608494746056620953020225197173577756671061674767930259429789142260785133785821658379073768875149074842126830848817618237348177562966612557687001763669207838886670577460699800157728959859779044603744155780056422749782571791527417835402294411881806781610987769335845347096132486163504687937933845224304203041065976052347429753835558877861418917695035919243961958923696485950164008406134416920123481866455292559421888436981919040727326595806030114885580983397099120184837388204747514064495379333982684172045432923498569920747578595908575853370968322377292003418202733113178761174175023170768492049939470253209620153465476517364424382621370031734337058080101024476344698558117379715667573545505634308745629722528018106099271572052732874471168320780363576572064106094029021979464923628217160643863372381774787592716065653959391269580149664525663341610960014185204053899839998419595614237915922295285834967386834747087430056414030082582265286127120578079634550485936550437377244849225899957589583771033345626484209908241328780794906251484988673357026136542296659274229399122633794208752568239169248606991338007952903020481897273048872464405489461726733543170571084483000111630227259080911379413987014201126303439748560450864307578954671667984885551226384668374685046085041245834067277827671099516449166014167078916016116411380139121105697321047193027548681812595866745773502842078484852201200085420346057499300037477972911092246357954238390614229623462995149718667916359165112999334837646328950807140368900372220092721504155711573913520842878607849713762799228099624956364558822611580897756321331844881254631545204533848973366399156494998422084014026472342558209614743302747539042354816062962325334780095088522713902712679497706523256875124995572311860993286385280232763586058034024068996431102384631278195783619284337918159785333504622372480564449272626744455934431909980809715997593204050751289160001414364024076763072443775666444068679052917916139279837381028694459800469645976164596918723445310790092844706547139018454894002410072905339216179441589091688621056447782859446637347199660531547443465805316981084085897532687440133032424317475055244856435135959989986842201063982740646565558172400981093090057805998227210495830908852175670022450646111258845816856710770281896655734644060985537318290061760955381801900575250910141539539275808014130711338374440653769906046635256120058100874413049579696738698600512212904469140622745418302259966823788393475358313529524058573918773736044189005335248551971114482455711008701394814659629380865706444369770636314842178656785854399252867997104279508608925189943043850712333791453034805937795910186868414743029700397740660529521179795554367100310748899979380033102677384041452745375542219987954824903895612942397702189666003338844818634768431317933305702185010015188710364693126120089154426143069437445845963296619224651633443124803168256400692345239410522041860457571690271545824052078770433565569964364271136562950063801872495124525546876817637005752098335023032276628777179005483775511797266028126956499506431496019820439274830882097244316986619895861073533823571189801342542391409773199109428338451433177827824029506665323383078039514455738159507413420923418889537229815988435382884061981068208538431237982415806567070714213515410665833499245538767578218703631030535668942112548760322939505944757487499235653796287491735132319334522128970099035238609172986449707042000990165968200680575423048828553357116171871316687879332827769817228108835648442123871217922951489272667141704290935257101184511840950886335562554110249554868436127660696834761196567837738153440595651386510781756723127186213747250322044225713997952718841717355454480647980295149606745093402717114682045560096995487682746490697024853111864111153544810519188573133412178228282103724834277197880978133458726211198550803186429955194727024361847673516562287343635329669287945750762583119768297446194932105803995744023081037916789851365397425091410280077379418563546161168513913694526639403490351618005704698534260765441209410177820715361596479012049620238241961336508520572955706419976240057455718935382732224071993815761877170554747609489242526168471850888880763676339887653633077392266316558258946835669152822784250891028524043874156321138735474629941021607834247121253716853193781340166502909593217190629309971560009320080766672337458911312708089552966047979268048392972036798013981487822176766101584547746860285846844265130642549525013396249609662073423186566615063581705429314060548240909599931189211528027574483425832316349341683211999722540936883581296685376650501718819333918620314572688482574995396604974916717604148178230978327190689693928052501361737750001762302676460231128100337739200942438919159575585570316922071367953399576124364942632423169085606609117556872247400073546451319129028459127478447629992918036566433987317092445327787890991461141640676611307714620975313084397455107146206429125951698390592313323241430427837164407090603461181659464771507892003477394877672524897186758909469904227924295764337866501093452797673902427363178855777453316776910404922684334999962081641978627702335209827250075002015368557402195140177746966997404658759231693447563822227832987717767152912868648150165536548435428730543202057948774189635805212456876120879104113878478528490459440327962878967762755232548818098420492393541750777852574393357076961615589093998679547041579148880553142654028742543880632915129047550003812376070822761983434584547501134221497161170838085866066501216810961469724089831604159219404104768621633868085073014028535048646436561916216478805427044949050681262333015238774339079929145670145181446605271276666306756693043639230969797583203802713904714650288714101832516601318152549775561108690990810307135382470020779737350308052460698296194943094928430247265536725225798579170086924555999133551046552843110872474229590470491718371742780622649535541005029365528424707145290551402455140955048099991253090010598704149119746410599070161899259075065856492815209418775786675130256471679511213689790725934653390083103596400530642957256790650617086014910085810347603098981365093670324579835269086533088005977532472523572957388325474025477456612646367687577660184706028285600200812737386920965220591118289206664541275986794033213411885219201547794961394554991177393754706113033841018593415251767012810153995955897636615912807814348367836584890921874918351055798821917504437788218241873558092560238467793167421422241396557945066693322446957055514315757486088697120663197381226238057747916626743815036731208868295531236570398082647132242786556678822962584415162840183513569633143661445809214254556683824576717415850459328024139274739759925748358054149216828710720323983303521804264577970544890971741028608132637014580642401546736488242862603469651485967228317126876955640811188282393479550373359969834365577102026838324210900992419886542298408322519501295240714976468679649825064021869483119648554534990201217645032918967587828437453512467129789249553109344728679682150773207513337718118496076631195140701265571508422753896252452365515927510630690112077194908051005859352930280759036725582226890437686899240511007086251216025195710774929074025662843823448373069926463989496308968954418988821666979938586848151011175347207859475263151689357516960275823502380153798588274452928364759706645816290528081610689592424801798484465043142555237450094061537737029640446039742125995071149811415897382520346029293963783742402217873572162678953639067492033387060378374536902148473873075140803035428746130949505357327460080606216838879069913264206518085183061187738402736353644047005002840059342309822588996195337093834283342533423489668732701915353960271561246755260493819699048999166924445825135042368237137110115176272884387653364451059407251585538650074875664982104562659050418605635859689034984193754869904807044476908439178392118655570669610118533432958635770066139736725312391498231062511753433950835201717554322051576524889956552631892031679195299799722399077295443362656435929774882131913742879724078600155223451720687048816608840376704204435884992744402469556109735090460916478485394699533978463677351386909654621685664440460531497001075435329821070676379916523528544564561386495698110407576844839273597495358811222036914339150779588253339492051083615586200926224095320468045811255160929554210080235392912240897009276456411220387826551598897837524112738335256274468118689927210949395363993736041893220458297590443231077847876067980186318382701439296944276365186017119168584555739625894117089662966737347201748193012817209333008899764698711648318617304711889527100916308592545528097882216139310201896303606857136543527466853728343663018061237616694951272407100151240886225961331905398545446354493879265350926348259475529973416269146770077837163618766197283007297532565817564851884785839583003306502760804102313561447703019575744344430591112750866302428993774974823343075921175006227350330119413603770190032179031750040811683160861623722032463036454362566553041845676683895093744813739441835647419433902867721952872833217963315532526009499778933798089773515483641026517870612089258234661388019020428784653352103758589136434603314787328239412387199880935463268850635061141216259070831487004197253925676639530656507953093969180811528271753624767482143337400856251741390823039858366187723478083100659721028134620959598502925137035420325647869769821795548412309318260764498739729820269284587555226746324240013390516713051282800112405274086994480076581019529590169597198465752986165760965457066187151579399767775116378482877626145957605292041581640718927978562397755355572068798170927269125370059836523302278631700135012048082997273768976241621655961151283511115336463509652262128070762916698398047738602395515199120568541062663253169393385408662924863651247348858636006384460636089630193214675128474678289349033779837575908639932991398495808478502031672785491983302857542467930310217494090499712083857901856207365442779231612745741436400159620869501533177082362403358524371379510675464212072119126912472015045016763584150461846701809935061192609027772598920262618162572122267089103289518571428945455633626113114544956736246549389662031828526263445158207248728597924636101778613909849587570810799853178501018198311272476178167217792143043921159728141100033486595799800214436753781266924651620207182207191665357577971584776380637383745889025810067891911615388984646171267877651058618122655673384134773736422796532825365744593045440890971047330791427254124007518564126340820554539117614222560158230653880224548905432775701914619733384760192959629895778989632940408575744539843351959371416266157325227519864681786188727366697474379231425934646844376534044388440245648233150491969010146409007849471554697072112722836046373442990300902582078607506511090395040526494401834376340770371113242284034559525526191608295909088858840271571667001194131034630583235304371711561625154199952551663557782363779005515913590237826476811081369883291921610354488882939338274722800821871477932849476167903344400504116799854911698249455515599186483659619107273051961292894828266746810010795495829796693084078078176861529645983076363643978230290829720385099924297544457335732864041492482209374289747550948209639510975241525380615832889085222611708326412176995377678514539756393593174927960491267830052767059223792580743512607157421756693627868180125811194435509822795152915792956664905017619637065517920946907665547385697325180503958869717649405414323896518751322154777534527506150311299155288714739322990643906181529455304948289050915264638253245100516850933965634885465330945459267229387046019319179887766445038227775526514252232733278180708878623766027314885848629992511154916485172382903869527951190309213219355642074570554354000405920853659323293629630554464679148304922149490477795870322250370276840394443666659875047843873880179347744834715962582967762674316992019332132290062994023121414453016478746837844156496326475404374962307172829533109670711460820445071226026864509665388582264477254534275303933970696813646040558637483439942851837733592461991694370525401721293097461838201237377181833770857179683159533882174597254976630815068112596877662580347028694398876392051349274013946869040378931490479322271498582353067252697112849429278789571760429637502340883836151262496981892250938420951341654362693701781443596552618852751249889873470918776401637953688876730894324383255620693797836186382300057314112408350468606387777797236923057149730888110300400668685417875130944879369074237664041696693749944324728035961205431630566213636692118076541126662607937033741405485516992931229261327393426369715965598383381445713096065409613927302326789937328816236581570832146040478160033420588723493480721543743317258589237635086021719386742342710813961985990940870144666906350350937521701781359720318165427216130586441222029261170284706153804575661903186843081421964978103783978544708291135842976819899975826731659586519577662202869985029667853436173904636477485795133792931836389379117981976476028400031029195770243799949046842269855021207066192695745460615164251813624367203610497363467838591466754547258406049947822013298345248787854416572348080674520044178828096879884668742806494659721781479848226932403166766544255729251821378094753368387991935661939093809414196206172635677006757484981600666448801740899638488665781091875332881346436001012230101515758584229479461860172572403754348719146121575846699437912273551171617124017896228069457262775178417757386140941658233407960451615180763033204746010338876764913617051289662690694894505289210175703875231774001781240575790768673533061163255204886617054862222753320172861688945729021321714638576054965704902905615242392871953264443817780764283814934299260950003278618344449676043969434435763907905497893068449660337416595763511597499570427550561992324147694267541038938990203242117626863262139030607465280941484886569098630815550858047343700637154115909062303444249823806903461912668647416707613349324369154721183943544221035197426947920863198764490714609061781020498984601106184362408770191282076100524483981150620263498780963064724541982153893140204357123393626129401499366015753776992869120658949588409437755344226627911263452213430180560709860937711714843361127393222242756478100540694865579377477147540252943425910593258887923287598117956015777340524018662568960105300667768782942626368260663212612674050308836423170714992176307763989614974737407844019681514822726393344321783322707459176740576922129339496219927814932986111231852341288471666441454147602435919413286981088891907400550742897585222527195398931546733285679857437843763646668832266356564996386582843835872464631299571642082491373933621248682597673851174522180228039612247917497200555809867013018666828286444675526660371157014055475981213341288705169230837201985796930485681352264599065416748181752810520457844503230935432718974174521920401311175159870535269205376891116829700691184631728144394938278160528084274263252717128079431218600462286307185652515058596795696883566607838224663837415635096643287920529654860555944668116375737731993216209577223212091245028787637861098506874404205570926470277079282874045214217557299995264712433793986892172724768130018635468858698498161079256514185442075086167319724568309059645031305844913674518076573418219455010110089621367437282692271598887744554063799224804639896880043255760656930746577235325652757234904551102410633182422806154901252963926830515314071821919448544134026869999235768426472845727245626081869139722775915461953329050866932933374267438204935777646061223048693438393952131841679221043582007651367717150228372392665377546412854775190979098905647045702030173424676980836377231983318624009461375506639839192949801445411955591069496284184280068109253081638873042687601693617060463429446125262315132422180186238882600725776140965753799475070918723150888103013319005830099015999551816683810021412328997168318439937147441381739589195922355145763092507632481856982694872865443600701848028818729378880541882559406189213468894884010869976557216557763797187966829927824919465409139030087075985509450974830557763392466080296817411058670040188855591015683966383222360064700819113404610353836437025384470996648818472948920671009098201662518070734887614016878535394497899888853486340334678760366103686116444788167364617646378160082124724810443987335764651417072981774936197853007700544371166569928506339877649112594257376198551454735395309094551021390901766806130823282961195811535809879712040658929924551973495684093133331209018755607153351482045752432605862105379293448417703123857319810079243647841795205748310486984707231213989589952827780907458391907857086361101090440919337203064685728234927073360186771582642197831893951481090164280659563336847677196689694447258255406150114181019606829404776088805933385271021921949374167317362290652304031956897738633217818466534065753537894616017506156899612869965939831100264255967555835103652979533493878147962198454930669633245247950693201172689015242784038480410080243548913701327018176841324508684203526945942747374626414796550133310140889052039876972292883878962765470186467974483012758206921850429271638881430910613419360362497920091933834483570294272442523535134168985280015532848196621168636068616875117933035907078690184028341678654133877789133265799465406893459584679280200057123364668962390843793787847100489793833311365464817360832724027839746178601307622294969554124690376946424722304660338652305558088300037398174641518481009502375273886783729618616659962567369755337966107764153016644737434636871893898423969745587257531424348858311705278296811968210953623052194085433821428609003358904168391739786896119195468584776547216019144952844072699970952240199250216579044102679709926754660889240544223057296344897722749683921646653354876069615666637958036406566875342757726355828409788702946596712075890266334730039571930394408782306808626483660375723458656163375413348979008783441799210923179656336751174677941081869213444540595936135750917115200329386720702516610407661385404576410613821940751260373892226285901361200944110703921179110091857158004710811994118916352192520740674584903743219801604716046168126089669859458047656349271385377168368026904749659474340348606436404233115652176957459412853975972801822353228506428145655286565971937677691223020066921295828921950895451862069004017164616511655346523410189742419081691644758769092011416678742787692000643138527313851408904319368583179533853855498731055507620670303363098270850157514587771504953487751011953601679010227404336165756614443756100626354914869421065743444239586639478953787044984123247703056603457577680263285171117689553975997794598039622933711225337503208419509042847936317230375635419920929027228763789356829381296490445316821394164628630235246824535199262101296598966007644037481557382948696755921665371873943253856076763178763415287973740222257263797192590797212004481078160698934111611312623889792835287850062422514124797540691646425768197120482159260943389063836177819024857039112462282030705769088653521307082592161687000960940709644176501136112884838575792405853579878744304614597090316932020315062408738482616013710369423150286211227050210710561188833572901837009927368451952830377970671019002990541810605972644840990688852416962380916708017966414463565232155722236412679082867312996559484455262835129670109040439481160180330331644847491779560166624067122515954003149314409156920440057605864019054390864504125754344255601868169633339454842445696189006333902051717397707308530896519145508314973669932893785443441236942234924209191931987074527701989495316610941561743774609352050177370181035404730230945515111955447873018145440661672365002260407054119373370457018649191531128029245781366618068740115858461299083747428222013490319347960237335552848393326304185638471250946805964401281516400426505775207702002312438311310199165967335323186164970343863797625014349170527943450317662427343420175808832351135735244716495965128045166707718650465341716911789259766878032632927939399203794083400295602356444047504006897699785164717972345147350356111590686403841183399057462525621889095808985934898935984550697638152780986627834202270354313135083212884448729331227198389181246040749584681241741062357021102862594537329496312963978096243909849070070760833138865312061263620900835590111614813990674787518032128599045734613940517493769506522902509439229885870331188808410531784096851209387557296566161442368122029275553436830982173272785726860272921678380997534213618082663863933463186104226760899636928496021421381760541298488160175037725601365948628987116522609350850066273724361625748254179667077557077319222092275412675434159398883229111267953249027270947717526272429858178129902537936125027057625993299936530905450421877146921764204515945544208108523701050785459042563208879517399829438491508334727501567729982190541482175134781195162988061964248182120608482910090897136350730865070652522573001397100398877005673794372366972340848624041115071753283629561556980609610883441686315165719636527401063885923593481814515219794438532120170777726184850028648044454363665731936213057952057267287502133955182431436874638962743871281656727852404482713884546879963758376104211692755861435793655095811045836643866939694840589839509310841693319086856311580909519285892776391911377124250602874473863734529482241081016730109967858219650310744348639981089719730282272863900451943134157092894226918260764960723856869103471704604898642178092673491428301465399640656743647619217238605371337387996688297095673475448015589564392788704092257551943113036333339330058508002891857005800137010574763958276910475974092090060793805071610279385970017051953843968227116640802427907045788954322735455874577813754778321329216787731561641971743559606624203536205207891739957442303420380833317571603236372264042271736230598537920498769027943566450499603648303178384735467291808798743875679345725745477017977884372884074336211432590954585723361939827107820329159472182039861921731698570048798485361647043674222333939930392797565539904922528960937320592859447767326582699228250428478427904318035700259097864503542794421415116297133890759227800046189102156982463019975008409751181141624552496458873350600487293273055167444031736695088080178422374849299605360350589985008990893396598488718457829417124368264894990654282100674246464546662280542488531022869522899498038196442472173784301942163675924316767627667851347282048942984944700508657120686065285097017241501495557992377030483741693699865958725818404712264853248264356228720927838290362093449533699838757765086798378004457869413546064186971279069373078778966544605008003214694205938718672178420709047323969479325961106438284533235482052918029968157991471769380636503318489851152534215858891850551953208477937696817419969146017496442151140649796586867316070416923859161204638469387919541921753322349668881894411413536019785319071442626106822790278099162937984242749907986113216449273438968327229776641043577347181682090041824051192348676067458826848121846538790370935875174091134323370694383806913276750222312180692065917817830515810244496401979134502642168059441747349049184331239703103881187080722909481432038963733682806137947101210812191697459835988499736896914324655103235806014243240257372272711718184096543378628272589132928095620439833546786159551955752028373875173624663311124961034271500403788377217408928775843153156776299796733583788289850763314597584197446444460348369297768557536278151920154594703970470403493078100768297568429825150863963027189176801705826900574579365513106650411593480308245941507061303676105054576919267757834199643107466869909543192584811047845986553064491883551193144319899206293700088424867418859392971428145953903769915996363964839455744664610476499002266222383143730722404642544389376858725098271519199846618457438901923073746490266947537540186819451571357513832946290660900336149309178818734221238630328131229438673374924634516645371614109329573277205094187991593348132352795279108020755097100776909578474565389923146408103014677921474370570572030622412221002741446102891538345037739248171549670674074581851637234319242380213300040337984750348955212645872290265378742907726013330583770916169575576298899114300799379785019300956830051870007700465437653177084883267259912997053471337955537204541584336931997048307151240904362121849412393477030060661887374615726672436313130084996437124694621725458170166743350865500075601497702151741294212836196897701157506150116571563164105395562280500924834946462945729526977259044754243409835039859834163312831201828422302645793521704078587471458513947141977478944319434983879845789275734972056879036935867900091037547562355042397544230104194854931746469252280106210685020148269265520624566370945135079160529165317013581974201129496034524448050588956238197923007575894714528826375649194185085106334991267608270153220082630133222080453192910204409637149487818342015852868144312127858988554036386301659052804300402074488297193057593682229926421686946076977818861594542379173904353976305318568045117891073679165107716377084149819618086950604907863150723911701335919191330885192859190306081842194010363003407205104997150432305571891137696173545766383326725275465523531315800366822083132683476238440594092793475866466444159328209662456683740131115981631342870950598239166649588854212844975522382241591132474671899668827456850565957366911916186039170460094759218692495189709039739360644287916145336589949203348088320736503931067792828811043458966823191905679048309605307272003095340868002494270743054532158476382405476827705459583984457575441231597129698114629679576818852069576271688078376359690012513502172671795444896674372556005282054382764326521472137619629172195859896216988188656012059553599410127586218590897950596119078903361956285264872297270041057111418894318189138656783706966231619708101399929417738000978101551598432740576064215351638032264147193186851254297529603262024554658754960771088874774963201708278175381148340462984503932894421343671407927150411881149162701163639288265546190174674734832303899124665713695134797250550446338719487607714788893045245367852494390205508636566188007128141509856736303716393789789318885382060739265559040339948469912783813979580855217464066834403793402167136802866741660585955384576291020848749869470769247943470470079616129214642239977848354902135149424658875986465123008378437680587825057938162552079938694056615750626878243753356217413760281105727303070941401570409769071736934387874706484762981392617014366355451527310402317337395236073420102144840428725894649346147735991202626347283109029053127980552765556931784107400519063195432071760769371559692587410434166560154925811585168060709412284614317748982773421362320476395035068653321405369311475516228194736263705480952738141059295864347750598527953248815955994978580669924887554200954069997713153913039583074839384315671531063174557359922743019590982679667951531081938740008407829436432602156524823221805358126380972509809387912795475679135611301999008975697014325912931278421492766391635550218603225723302651210701584069896872292729976880359503688015816391322596768448989288208133822694210288548598296678582934307730746210994093123196644280999779883848806483058223571457414575758496589368888565859061658551471658417453784341668756860727900326985401751400051605646497058299972158386908877258812490038882204703546282276066208771856234951044388827730890455775679892544241901315894537279055177167484545872558436107926969345854729166718832441501314206842126020751444679906580141981758290584984225917663358629787556227228245857488960577353621550266245857473155429798814481270036095657567437570890772930660966680296267478470734070584511984849285651237204047974077345453722311620803316702439721612018856862777818720642409722255978590138090195535861992981724208253860026097278828601438082456327763875337730705134214648840540485645197177770296979106419171547120045093450899633772711174894204404142480547476348342448517698157114854485344188914192203914304711161743413990257199768459650187845507340156505307153953965605283639894789870292920283240236637640007537252949419116246409644281991083393330893812558241052579530735946147100184528238966880309256157341633097251445011484217811390516836234281508802817923410137243702596901524521642320606684327637912181078697905100987696723351535909913972837422902417914063128332284561074578475421555284984533708106506723782394845936233245891768831028359803131294856200008980410498081561952625133886766370381033241866558504841304094669442850292317899020981361987822766002410321512725964442515215945259479579090036215800045867392421630068571342029441750239541620571954950518978970004758348585030729008211120584025397946483282581322217736192497767105892369606501085631458736762373888780318010528632442300987856369654504353540106234924744579339763767458890493575791735757206972463117055299387530737391513457646146641080480476750782874512523027303099409601164169277591710360966653564189134008965249816402691361679577655081250964151079819594424025116465496335856911605204072064581699804793792108653330426339958388920022534010203074387067272674774507897094044927159735457493974492081109953901780011586650576316789839811203521726784429229045543438823227506416806284550171091105772859332405837951697088489153103276669360540627584482370656694299055004425377720238613988633950690102221839650760003746401262220909655804348737591181260959231520485879085775750508478276559516354433410092178077742835512126321894034668322825360828303751935315853366484746734719706124813075478931050016988984584141312646764410066496490083728439831807185358814667387228258733963827117474417965716445595841349486110144211857976513298203913095168638432210597463478279869979082354408196944766450651730502899641812892381268415594790367984988726474296228543445403238303610573302170248264329662428400519911979415457443660553200800931101743478352880387637334667970653645760662948884215768532222439050762134500985953830158023559272504028602366250001755190236414459956856582636625598941188659838229081707029340963362349668390674306983879689226063882703075526377672031708075871061177959313831948690763738799075912722433497058812581672095423292036446432050603870783456955072011307776958674343444595973464365813741952122700893988888040051965810864593667135018852790518634993554790861217806990239535004897925293176193120911209574208432486121482134372885294419701258624793673335963602435806409973790325948109167564426834485855809478887822720019317385934238523956628109495533905302018793063995808947492851580352420900012755555636332980802483843649678601160567931040187701673264456003881942344247824603182487368268703300690800454174753809087837047629142394650898471681577352255375087169684112678938534006216613180238996074720848323109389493498576379811507412185565518269381002072104564010882286695415087906145595742404945869205169648532985714089371030698567707469396834573243567126774988917285610137149090880756092431525511874147611634191391023639639743748719609262477544820372314614329812156756258765812054900113091556514718610057879126159709462224632374358963433118223118903145282557660526756736926699616909509739245066599872336692881076258363475260300128580998733775561730048740614935541335271474546007503390737547183481286381371433733123921523138847149262652798969334681115148058162682263098815760884862154375629824249799799382401390090168956931816606223665070505047433485133336057987330644603969722628671544767952249492652549054171282404720764134208672700916550018635188328282352519210465386446816489718288583078217370217981025814842526777924692334319571882950125829115753946045753274221821583217095417568870991156767326748973414331412376454002417931705979155554553207960874552425383536198977445660720664242270752128222558155204175559574838696854203080280197839836153452655038911836884738094596627168232845047769915766183560541721724207307942550298102132861443776372525521282595807771985888398348026720214964974862780331871636174088801950872392525121119675808888103733451747939967775605351622374349904790217787457153707334776095913950935945805396874769951195513457644445922165562240372797522688584799875468921320409819286516604193502320181659247292159968950170215459094883101870682745566123545730948088679157206822301266521324425052238242468942579154062781319375354542409631158487297618393950042398028187175719351910435719375664001551513296313978335148247330371961005015245588773331967382588848523384324641242596281213747494669539055269738467362783027066579300970132601738115373741478554912064287591495525178822905725506499432128310330247429019157953315247805895552903666990919890621997171301885545721989841560825002108379264358795264096973277189351255188291242296859581024731751060337230911785795740754943980778560458917227773859632226247416278280495778061000083369656758284568186326389680912324783858191837522457769663535384528796912615931809670203953457481097468696624704882444807805232876546855290307822278621108613014085302854744071239106190126932284568114925497155018215824317596559157150368185416297354658130384685964122084037962883483626525893473382329857677754768767219932515912051845905756434561630654155445635827998854205200444501353249641451066602367417441134235454753910017464765372963384140323760449456670808394131215993664647073703591588579905944598571747347407734501364184426248899658413596329388700361560409769011542086657290098733016952463570656932895775180581620844785391144416239929772264833001669154052955456581464626232125571663778549085050210276924275368052296534778796471602114135133072080134242993928685321819229398908741524281642088918637740989762694967104976789287523398543732315313585672660066045938794971016056652665744478746890580113522957146069347751565127265459316257617391851538879126267976366223095954552969386293025545506578314902322858953138720898580447238055233947782249387724522478230501380529029217543149580853742488592585529837502941200586909296772956539932010197031825999991508272466434466507532873762740950781884515012038719993163146463296175489921810338949127702969309078847603773814582079211477662908230360740010202791309741969330519020155736817859525475960809515244591101994891972139667889173086186240323991262408360259242972635108033474349707177653633925778256669614912683091521313595331078731110496233803043522690292860097936706252879390600440099317224132799030519500795641407673720279330787429528972103264614245132600771720650363108928642161342328080544407167824780584765228036108130432498520481056135667053191325300567585492027191906672650510539469773364579258796218132519492059259520289451889761903128906814561548858667887776325457219368843746027671819060547565833942729951338661892730788541900787377808142710763599095555034203341010754848243820038605035602755101525487426759454900895227143342989219799631772535490625440932817327914530951797384656474471255829779467056763775454885525885791789074979589959394380482041802588886262364430724148280554817532784682068641996708795715121169082336540045414816140346609375751309048369729557916132066086898283558806000559891419013055876036401624284237436356540776883651520014988669825929813878881083307268972999856244322178154252905457460226134505406681269946589106267547318131255418265362351623811024782387394326686738610660820827351682058185317601342768395473797476617247345091644037617621661135008366601951177686809489539130888107645642718178821748286097902084500574529755004055270742108669876825960942996913650129649069654267005233523729920215551448672988039861898411281248342428314933771730995324905161575574075118072322865722671455830165407574576228733373082852943641720012762803919587173642562540538624120859444864938257359747576650643467662996920019827357378569223270862992535302765874150566833600303066369604416856284497388797475493145093385411367389090309333367131611171364401138550156243466630045190584750774462344769919521732179716666389900029334251416041467010895341185566842358111020965261716086739027378157509257267397129623085998116352631189647500323125630392565727391426991880942634687714099867118185752699607908636868092020037616231210017712197289950863447340832991737284267596257027712313594591394786588622692301082733444638537043748185717155557823050798180727235297599927372787199468716805262433071943291219412912369061334517846656581852858599188366597297989937150942403106730483057720506309041065664148180288549078459733022254623887323124999304313279387949100166069821387591485504216659467295007532720201471982986316577658128326682986369880032248754883842055553469378877497199883902739567718619565174238839645225171479873026168669505626587890229943299566452319662579364245116897347751807099051418936460593580965275762768420698235817885515771610192194063518469930314898071570705646865973868094906187987066502061606836185280405586999035637709160010729747385003662747437328041476924139536637449605041069072001063224127203074946471610057310237865831035293950796660101000710527517070089734642654914272267560430014598576076926660848006969987725034638673059011180402998383003174781307749645740243329421945478615322983002025407554648695457297086022703513722770109109642059058906494916476750403603536717719824269472033834676647139297223012984104893676670065076796551358711615102850851828364765750985828412603237239008276267195660932731308830190356720013119494489424977805201246569009525785584925797971354698866254697041449158202040806039927524657191867132365992721777842238705359216914642838641030181292847507494793768452105119423928303730579352223458274256492307552002330710362180942755022293118663802895552990879605524087123059501065713326279194438695265505597364343479499762246980626517943729425284727401341570821472977515611250905057275602975641640876261501219400748560992596388161674053258263393035143418973464262589691640151906611553207266497408017402544177999402392072942494257141905324193990682854870979499233514146656378107184112988161282207337455749444913105756345600639841645699467064102396959734125880522364043275045839270647406406026312760189651350836766538814763458238523439242207569713773175679185087276311214681923700463084223436242620013972139360218161147617474349806635382187013213870336769359540960785060498400635574960448570947019186001094746462698515161553656469870580703553382033036128810618876322066961080191708546446586283699008779725946474805945787492780496155071301469191436081911000874052294823200692627642630094183078357892328916100472336232522027495038246010584266362770021519475077556329840116464789178550231802074690281427179745679564925670881389169502343498022535559683672122786650484260174735997808524263844497514468547608547972881019746192352808437828114563805799114322548048980046048301706916102978550734897225286928176919691242787790029375442612403118984822229070527402541229505049976961777279797320270189902069399024651960268343932680232597190677969476588158965759793283370028669371363526794481631289982007697333591322713731210692686657927647197124448137907794606656667364749606002345863670273028774363606892157046064871226655877914102035980331026818905204791613263605091415086797930772788970362992169877722665860001920842045261978102647617220395605660872180510192421824176954579129339031375428310401992587116395207331087279720972372670298932577146617486369695659407375300334424682248267142087538222643573516880189095346925860647481024790242644136489424907564415110667177367828171875035343390985964445486222834472535660502795753266889282975438936357830488163306687739052595848338103001894940050000774555063147133474066029742815419807803328401754410239650338163912982966505010775531621908299922740961528956849744774419881188104038259096654240505740450498318260442171280099207506615066351422735989020308091798381753274016556008469053196809507529394177980916884027227945122126717436344537469859637203182864360327959787005523312696866053892418768512616212240717389555796157563780096467259544832239621284975772417494297213532257027507853474533587052781330382118216690193665373462401039442138535925998933065146391341774739246468266370013982516199340759520203814068213328679449032801131952821973492726197112100757787199517749715371996301674362544021357818788871308984074116225538152493132653520910782119751220254693797270960625735885183578611366315745670433607164014906096516692633288770645179005083860855958210495985917925332628678749100622305911084960461675502028324744693981739673130613237300146586740503522332061018157357000639020809285568485739554350534176751670066474062187167264217926676649453939345274900605386411968653597067427851160697190251059933364388569286982216890492089323408491914697368000833164954842824123880330125812810289627190362735730893986119862495756204703873792168931138432024944424663286922788528453058603776309992398545807065689918204027329370522431156252992816676266533454144675275577858050395223846021136609415526702466127264216929295039604767064476577397063252989874865081079686288573523088420319897193878335636160147719422056325090205785308925401311101387306772166081002267947894812301164867445782786058121013252497265493379990386139601746906712830486463495516713995552044511814119514694916898544193034634283205232250516675341012844132021787455412714342247149204152871292278748514948351119636075737998366174996707328148080271874887831973112266574497032191861526102573849701288154986381895368479109577637823713945436924198701669728424055281257139916444955896007622757728083387905116191145531960730841114052247674016220951157155874888108861138086161614122954871715732056706825800366805557202035337462098412343722555990102869498764273627959743461356510479044721038250061100548339194916016477351076732167276665162957134574979136394054009006686100725407197337145753408684484687297836383303840958892164723414636676396874967952061320274928091191202916245313333138013866746143499085628231882004260580879698899308216337878834363446864774009435369960905785232472924198044687289831366193073384097869161821711295333884285804690795278983100883227448571480798362894556322318498347201322511725074277728295268567782377309637240888209515008889289268347453250952530988217971310056495712822284856711743157515883729670804614295573134458417361692415990812901184777803284267663717905420658261041880872119867062917305544388009660976572126920327320687226235856669891183730700095786343990679531256803554329932841165470794872160462566452445156015918907647067301426409805617341607244494300602471213427002474171959176732973803419047005210317182045794593683602514046638036700150389411031319556788489478785160941518668914058864525986530353590401681190425349171142011421627020310092375971965830690384147208283683737598474839136435337328715160476253176255670353037723216153374069970082555238061703577705804025538995996105780716323634493222167130660448862856066974365039601408377070112592735094614088980307574736112610284090858503049907236312806756409506752689007629741047178703860570336782554509798895057683703106471493849416942511444960188561955020815246071324340302048123223970922871719190782884953893011146053698363152405018798572584517923113157945152721210395350690934127682264015921492530392857680328328157125257096033229158879953472323056692831131392467498226882692773296388096057516632413866882526869243640579211448326447918225100543232085655391713293492560440008481822841329333042656349795273338679733700599064931453787214228340856691206663748280836294002863927617285604846484593341415101730224479835114820226433602965212543040598022344625965271643548282059936056143789648192164682207423160980905003353569084833739613233448712705533675464857375233124746859954781651433132293856458285791879884899559535370056759220356860040210690998263963186385812052827443702339261906474454695159278075064448195073985901899020280303274593739360702435544024905602698752659934813479595799048337815204063731641300656725658088186500299720796370594742869030955546217193465704103215971756158645553518019655122472918795307133876842354967793488581225916494201798739042135725840065960584351594490170291908598383142807973648131029795528391602600556254121460357750738129168567308177624406065444694205476489480716200859053690420520352181609836569143541634730595499072889040323313061257928326497351269233836586195005884056795208197381143417730954792179428894887391848136363443228696928943031642681058457226025390737149493953239416935601707405423974366796373348698079168445688281013106528832954839996802339905273361714767061431990943961992779481434580749667764779817952780279536241564129239858782423674382054427958819678206310662415468970432822672418776164100746708176508885079123690247036180561705005417824858123681377801199205708856963310931836672616424618270975031457957495408060731243573951588412716095205003284341800908287431544853801064835777943570783098796542543233630049047184355062951004103698476841755305141904682680759211736882669443636082833147289792495143410503459364440758100952082642108519812289266286347129535849979708691051570106426282061529220551857996804671043484228086377905009693700174727678134986644711291255548260999067533939601886336083158850869307742181434339701312066258791367090502315001464526267145658274588455578791950878361810397827548060890681581690317672184048035382992504726724230039021031557374591705205446750056646439538688637699792691835023118353299346808917609564620950156409305280482018877523965119833414059552590068192138653745750823700166841842707637216815967123692441882987436527419874272884806668422036700895096729392101078982412051373834762075831372032557130301655147595439314655981177533940101862973685656525010881920787733560711344310547300710550603399450430558803700749508188192310562223429941755516995918897199751338688472344733879753143984314759050724922245089848050817698771777572935468967215977035260264015769570334311949090105924821947058139538373583372866242526397002376430292969739948818205524448617163920127872793353032262933143677027395440276793784860888623017423344175260562824686584416175958754688993806381826022021310637578958399774886091787998776131797370369056400477259664637072850541205989852936880286333546819358300779286458251589344290984994878047356290765161379759627116032994610686267570841873072792565486177024912160152588715964380992448771540305703451392630439668056140903630713697238348028449058669554633335927555649084583431987145957739772181870109811841039171761062015102651116204791132022868808457326901451848441715803572905719771401275236763098260813761298055775781491847184403775769035321590544806011006002218073075697150631106959320987168616126405788576507272810973357184449939622956450358605646574604765528562345813404472026715076415828293955748690818927754370148616119543842553330508045730929970654461064564754412972313396347584792923134016089637707788630004649844427413046104548657431447088408496358387160396823244827117038979582392214070477287368625051917975543295241710753527804823751489186368400278072122855284927258964882342143310511934775519241209927536827581047888062589167075468749028299775390877411927307650370191779165782457523684637384298684568613153581068518631797245587296959669124437947285172682953252285288092447195265088697263124438932389077072028354007634583337848469349035333836400390881642265025848628080112318274716079190961083087431904420207363555121198018276835305742219179664765471856220712265375582143526492481885394182450884776360777909231629956197842079362261620334409701707642037901777692680909770946766781149364412626907990582471853663019179747831123279705326215540782432016222409277857083900895930234824467478932470524507232127895466063603228791263063486675439441320423476114455069347182015305393641934199903940615149231956419631632427029010176794002814071113203486307186058195942068922110860231622896847720268015279120238505768714364560900257214730801341771991520586461652247280942909858301702954352616236498268605438306989500191868453513001573381614524715225000927458454040551224952232336089721028303591544017778223598671423768898055123013558547753777922643693649424080970018929282098729065981546386717434278764753366037942546356542923244181138971730289953436384449532215794048174010629433005912801395250744060627300810619437127113693084553646896250944532771568007792021154763017540797552502215083752686564140610342390850857847238171104158327262846501421047968249828309937395426390642937901272828502596728864344111029652850847152243850646452830952132391424266295397082720949666090765761814028977259082683630253795991031429462126737683048409017172729609363286656502684136045218430056991695725501655185122085905986614258455925287394636014302389508554604505998556441489218133676165846563814075857662417039214107557129091687361296094281819344126480195007309360253168047813099222026549643685013560880576968820622746717317603563704175202570819438804775101037931015162057433268010188799556129895431265235042157758424161490116467223027877239506977802569520240181832476008084825608448708326307188924646195288508101669465042865074289847809792762220404199203513470155037502163799182149891656385569483659285398987996638172175779062254910930095702048050439290377391798938022754198003485955040872015295353023719837068056258634261318173971753954313954348115058593776071527757141238415479932492075029651895378224099972481340342277005021000651009607435913364033219215966460613869577379008929640055678903134796555431039437313000498606424893003579786498295467214755440702046658798292027497237631721949790412987578471713047368052577911446130282567402209799906351953796504047513510622821279126560135262020936065062178091850497704047322047939832366663727571845114118877569691614681380652774834117956667650793050534410535482662122261447702491092327952972740265996437450517797951803752831655382563412210175881907965472645306597183425255955998898808958218462129571962565171446711421583979101253261972626238053778007962017647449117466051604169689281538559689360025135521466153723047886271176260304565284343125205720201487536049980777161027725623132685528220761582774817682776411326396895232614877687418573498064461951491760037078354690495547637864811074952154124564919793619034966143020523222463905617878557603965841362294185759823050269041043197152264688924391055496311155469133233756244684868227710546455567370261560190940690023750187678865087502284705347642179876079617938737745230706348167541617854195884957659144445738428367026069058937350008189864891719458496305472612865920264854698442692910686536002427381397941650603405064771366292613715874651973912499009718980466004914179489785321661926231845842557666651953302133961954022966176755777788842104721358894248999236067601237455634581639683622612450565847082140623152823016362039793241438889912500844379473287519304826274146866798916610338265409738864459714792771388235438799729596026726302052764826512738432364190779188588527272921358320271445138645042114382370121315487833259605410009998592771583147677964056659048069873820145186321920484003544661759359036233831584651224396111783205435674947569165254456102273429328093194668678422818794472765678573230995790030066656297292291833975142633524484120585355642829371327192678230259697605081972606651059048032842281129709803801695542329555361706352340594146358997412747194974783925990560556755771753667301357253931350671756709624210115183567091426796739938666437927530615751019276815350503790267997535433467849570014861253522150364371851247725061194648477903998570022935483283800200688805268371008318119263438881541151385713543842863215446463620983645726973203902421038813582732142112876809188990662382099679530418502521872444977668501560345936534300834091660217713974248887498426453964687969006796609672100906517903510272265197633085797453262370806658609682516738866656811253961140084242580277489769528523097749010085974247988020317629423547641487314295801148694840346963407751317058980799599127434847617387960748093595634504341722108099499426344159007761502774313679745279973786914244119095314662400445137684529025321330222542329271275463567770488048804757079552008758532054667796669203627982807692466820937763963136069682690310635584732780249423210908523409303691654432679606567885589833971569495764098461667242115554546247781633889413212387582694661933092241021885865089275142637855114307122670945458873951908396014756339410379263735852785119176857816573084149995648724694067414190022589924864561413018189251434019674699525635708490325064118531698952095723750155952984653855302979003115318131965502435558747202504535989685832267693859983903837251137530549547487894890224728370825329123542452107155308246566962003365437534066542776462985551021301251671833439560624883147271143159425326443746099007263055621960436549001428998461577313698980046420850212775329608441031665075792942767275226722733473618723523161557537530247851628672822329573017052647551846265422482277025440042736142885092391361143083614168183976204032520064818995586432925107150634364584204092359316635726365483673221852766680494212483084925237913636495040810682574680090110426461154071579845612630809119919944041024888018269449979998824634807430588382707676285873101823788445080768589606379851624838373030286402388672793322470659221426312060831487226834115859689237583479467357736675315212403487750272155444495746363798432097565665297882689362183903068399925296713829846223625821788980007715195560187986109509410188735530582123242666015279778460771854769085372577251005561538646899130490757121851239930516619082880470267599818493891570361747428820116643271179843824800535453357729692563853487229980011934952823408470703614078879433193129410562978766310906390379689865081369110548619868390865410118102499932576763301347987642401293535949026526265635716234340778609038983403038973847040163289870091926599189847840054881779570939274548123023251873504402086225735099662046626414547180595314576326552815807763255932793357905655346061305349530900986984180146405386125115692579380892040359012042202329936246951196185887009892181047402531465582043974477112215952104097173103952073956286737807521891879867652542711574875313194052986410740258594239596463692323543761283559096708173114922081716097961280207972987167975841542082192884728975134920215996339198350698467322918132318783348782826337398919135429472999875499444086239104531741251283697085361932225523793930719557499909773014076126553434772981417144083336413394167288640394825466517597091361977899992819189229342437725061112378563345203042291110381568900639031316681043113360432798843398508895312633879963674748331946649001939081400185475907128395767247307392216049015578144511910521797892805617852627508133735870273030560501433096828156745695165183459213397558451066315588561948080590889654407553264708767483708738625120398229356971006903313712938257489307421639205644042137580815873719705664412505777234294308993246849778225267260719562949582487344738535315512386262877335570151285795813860038959197071470797003552849677764162913989028984677470792374032685659419828944651272868188022946584294553624139410194527208273989109651675050547121120013628970887999160259865646621190147808516837275304897102870125918169517805636373906957724037424138723096143100072417745694051362082377625295207391029011133338072069838604168690213564984215826676769335171584545662568295169928333229463602824820759621546964716403908863149389704801509761819594255837397705715046541471756240716866584626811278147416537725978462036962786107200424492125315234026977483821833183194656389180492697287197262319598092826764949250274042431190683566764485754770002620177822708307636004483119684749761504181434887475337531589227622376773468311286115026300869635496130406838866184078778596693247052662780034855103900858852885182854702917467551013627298695771434391574563421980296160272293193598610673619549603855474051015002318020553858092110421899412850682948821601224716137161853780620338984891151224593585274258674265214083141678081164539787901776400914564207445976747309342510624461957742970693971334628245168183465262693617080379282881121322402110393346321086183844294653385644833615281829111296655443428612714799772749582432417753073136019911349490819576673919841721567359214572316415954430799040677908124176848711092917535795409859340080162712163949981932321566925388230127702262503010725907009472833662164696267347242681564079917714737281335558297770661867871918867341598400491471663757355059987247145164987146338854069451750823259909132860350061068622543704556183670032500463349768052436420861279571805199222209607269841622558189748344043675492118603558835962627364856529301086022325807450512249308829475226178004721838619610066964465212597554051250189877352505526655855677478328228989427259365404543354144819169077795870060863684682328197942995854971572032754230605018855193542680990591715045799492230416443620337224720708955927613562886337595714042346373000787637221209115075913997747638966615414641083711830485220117239574838539305769535507266597174897956532893835434058118847758330020946595318560083762570404111366760295667317317680163013214075284454238917100699176925759911808090344026265134575913666665015408440529670570570274428065645683211005511089452595591010008986531013909499361214205910475492337749092918239015945940051962928450666080972715788485439243442990678312892064229884711864111077596074251025427869339614959767878884345682956604845837710503176277539564353433302302594101467500899727119256020836701265832909617470721241700429558260401049240673275892200615399070035787284120945733434484739294887209583157427354633299378552686581871392120777355925719388533743635749158740217700161805397776317705800104951496709293725247985261954416314984709087260139252915431025586820857972099746656803191618667383344774308157579973029667672966503097107222543781428041590784280751539162453167433885535505000090062378975465314429997752080937456914702973358487551232424564844224193536461374159947889743967332280774656922496762192864051527503302127837536635522254774494562646393886107156680749835511840454034417867435555590196947529288630794767482098069694060593805273429864839654628352529438566771789387733387464928032978133757354063338288735676146563003990769164202495786773688166695938193611239242772691967248187459840747373404177820731163221558676715810741865585793048355005038018785297330243333153935923382032466950787085111973896844217601233303811723408419417292169092546301711603591799228102282224884887676047623903541483250889112452653922577742883026776084791879718592530935394238296436007847913425552645335185489042887056910824769868016738618097083289649618365064725585703244413928814323194175688122483154803315748778437844125238922657959023894614384372057402272242259137385246747579179023283273346133361439329231095546318278335086144964427747418993362137156807210596114111891845749066045238640012058446360389212484551700067282107668673644893254924896778966431786818166558621920447899731057997803079210530282549340716413705744356523165363970293588125607006593650538443788057652776620375857363520593825009201499936843021432499881406483096889358726253958089245350008282520366104251462357755502568648397069253563954690572720442178385762249955582534823581566649823193133137767816619711275292838827285329969065515338036932630408865934993737797239727999365859003936898896729308591214471953209051187206497634335350844454470938925548219148249587885755133621178715661059468770455839233721426527653655937868752576416549670118046565438995937115049612021873948126997478445935312560624332886854613628688055596898381922933530939166018766771039931670160131203777866399530902453263554791053983265035603809883743934969159575350634844623623243610228085137548112614252952076400476173576672542084026489982961098775854564983275571222427300343550197697278953187251252716758193094846578141218117888275171839931121614983245258710296313635486632264889135396308491427603972713045086833466817353592894259232111694301861346780846397779772207436105838073413851097913166919047783185495518484014614732827506799098663903248316095336301831343849636493684442790630019251805241823944920676842210656186331354774040761879354918984293136609913589881426422531946373702254316319778630904778927899896659273860514804997583352976456015620521102789634070823445656158494603025416047754282446125766732455585738871910300449611447361978900462826216548583670539187901565503121270618953922370031032977986595374152864880024920934056792052282356519463945502897161238932353221093111331725603761762673123069388534666271869228919230171657878863741422737988488289001761058401502507864968189721093295317905015954698975669837843591815763998938132264432112398993737208525968212813237264062784195845691330514018030016812940536030156981241511305627822191523358020126984531035454800658948328508781240956053843440564221671550743707136558858168256070840303813499052963087272858182840632131724647059644377227930381023752443466237660518206413955088079387585405289253553122428165882591511212686097433800628641111343279334369755876381847673462120727287025971235474364892784320146792745148129247421248228557220362721444774828314254381578115547175975834075176301277727113698990595041195619733139007828815558792459180764400716542694634652506362608954325906004912864127660834616899852340018345337710472633816356168600241444430441519018503566784801676963458740549610075638188365292498723161388131702663365101800617759272624259274003025357882916104589106038048263222674044219609878046751220089714530157543910704567738414194283478810346604705768906083475237040833106891523477056803758941375262985878668816294977386209998959290838394754237843016842442987184180679613181618077267026883626793019984833454429536316824438250821659707818024544397186166612523322568191312867488087484467173272203693211225194076779178100618709112457365327535205301463932642484237763193286028662952102934804049733241489095824056525290922190025792704899219674701702635825134122827132126640287145779695425743951171700142520545318137534873656386332595162213121645388234305575660846303940925215769376377185585932571402861051443233571890279787668870056818059937788509714192643748663840905127625159655083279327437258147685140606682801876217379581438454014102022143700609771292061944716088984020553244843615234455844535042542749375107588463831704137311866441172289788296498350932914489441884123208691059498940218745727927057191982967095505956475571230102356909317442282511170176276835796879876503239281783364523525219056405530973867525029795409447287102048530215195284456999569498562511384559094754214181781125441295076961296712599647953171209341827731012310915635579444437259897805032426105039310057951852656767495170113812848662119714050653574823561612676503237573394346516169871493702932303873675821786856350045992050246554948738781541137586854098263211569609281256915091567195135839310966745831991136342316796517081628239741463110913422480936741559941694986341802190823067856852783332030708119008067451002868666791622305266718501439044461223234493975782001535058753369905918595678984538286154937063156772469731838835100664446783861933456076522726071664103706523617719989169853082871998446383355772917168107410978638502978167991160644991669154201657258370292446611410314721418820130703151225175455946142353606220531557689946514468798134826828354137662965104824658747293343131767672001046698295088502218658110276327519863728665452199920475889173468815138084211764003995635210620253614431568423103244196485674053206376921410897305334845205062964532414723956772483643568948301710030603524011872176956116153133028186295499091060985864158828275300190048139465174326699114106962824751594319317641067040202192568035013944172781816401592742925977693155337952442572886699752926123085767778273157528893938436237253895486932170784400146181067979144691870400151304960512556192728384616188132176579347199503956978712891896206089964980841627830851026551901120669374896357649245062902284945756619152198780672730777635475707313031341043856567981917530546559934176581159958963503711110972764827102464206299775430281465842313962951638766568543777066130254153326198126299841448917224082583576464555916697658006177989076188966202772344402843030729714081147378930749280309543344979569780410391976901602001677033957295571641106799250607465800041570041415695552301194559764037003915944287349272070042458539092973845295836695813147149847643998424831382964200855041308884690207699834887412061431111433501301939798425521680629913587790040455767549014085506006597103139822961682628765523280220231732829869369478779086475398255424407166175327954954713524519415861880815810915674396066223623912095878351061829038132520075741785960856495689398780701993179481110061034926944990450808921157549582166159561108346424616197697006392651301308143174772418509991525330247563045892861068122976561780025878789160923851549011900927627869166118440247577215234909800241707322448869377471354849324451232494995707695563441277472976408126937542825262159006360759794518863174305834146963093743651015222678800615445219669331892207630175531651552245775351969814453565872668011754729225816958633028128541895602292086205524816767976894478412961659620113437998917894608903535951039545707237406926751617823714423768855437895482132542268621258133765298320191103392787460051807883482538036283344334664252372817187989860877653273755475426776679745051865757388613956431296238979647550971521842754943853679260758372731715046197969466631125135700398055695594463511694167847451862013106339630965773111653568402310624603775871651564868906715632457004836530601335987580198600675082581210371530479743228592962212576433281475453153440951525741537005855591342203986575013185345484249915234203601516098105425574813199226575342942313710495993507889964991856248229843025651405119047564671424830381136703780640197381990874963885794147210290704439991870402237193327269528403798912983171358813711997472647399206259235172960654700370967136724707038107001620010346185442156504916582029194485638986210243826463360245232893030244011572893191871498728389575967355359558650669007492636289117703525113628984169565198080144248376127006020414576412527320691849381140216671032010823541904678345316975102992256388915657150554528159977462826643422244568096549597659596506421732334028206814428569413002118117274221899999201216005200716826969806089157519300490812073041320565860335781062724710770723522225260611608588541035662812334903032129922067172824927241695349744195419895681195212161325386364777561902884971255233996472353557610101231907838490380062814336801331521367885631184062465618831386574176323897782679419736003915076729496194062234567009952549131151180743418553951762539626282593489382076403717539589307810249840410501002258872365379866530212206519871391535722390106949388829238381645584982694254825544185598777836975249590220546362165405402099750546695575004236896739072598757867933531322253971947535652341985181093176501068836083124372924651362905594632768242955716124600697485025834848996460652453228143295864349208684561060996588123009251771550165816557027491227687117059450662400034938686044233479238962788138774563548410817806835866360257490992031857858408059752517096173778909175038019910972066267286730230834751326072594980714959842060009460182290449994988696516417630445907956050258539608211341565699722391390313653765900676245641855660605886318318894191096552894098843787363063101363055571488400781059164247188079172207915989162572369454639239351821125399139635957959516193286116019303376203803351861586665602973841170255628934475470937126806155544082227405183896716754423122472074550124686315599860808341301127874117353661913703443932715588951529552596454523504679524405914686138408893355269605932872988667477747200597485143634491592720067704804621041799941657214374616403715936009832983946423068627339543229643961184044769378073291793474256308587101670301153408698511448215017489850535362980652567146583658929259079889728441860499772001221424590715383044389885302215236672603931785472693431468962392744620479920038085494928860673050748721672786640679870613565840059204783794183431574461485364425160566882683576860519280624962165592563576722128424229159283149249867003548439886438197976181238867953324303333996504924679344476854862791177256653965763814869916419950621168486211081076706825846115125587344157658021778300126724909698685445185827588958540541323873478707660827657972160906312675335740637274594495539710599291395853749701024481069654691678995613353484537712094865979441649721379299879114128184947235284054900127759493341539663299257285377670945621254722017177902741712516001274631985884901386107448885814119717278417888564613126609012334483946048070789416838108453562605319914890015104436002727643864590242661899117583324370947418136823550549194256624602858326676231613370363842574685969606923167234320414017566768129197712529314960866357108656120471934561315364461046950577851546160698396060536521190894482286826634118520706150345941181289094532834942431869756634686896837220394730020479455772831363623202903687925337998073090596570845029747609789107873241184890779757402063170834905986147032096191643586760371253118164022512788512589856886705330818107395103331240280991095629399109129949712448800785855753912041956433533870526655463302390275291474454401349887392735759898842459111524539498481273156029108554546926715587984362287042423868339407613859471337281952819948825279982896785061931168411303492084997930515983355938849796195793136682447191547038642741805231122473981884945558388806160660935552769099201383055246285370056742128520404299884081596928016283749445344159091512775963474772205637285325097044022218082147181256583941216979808400869981636951378898527618988126665297390049333352305095476637490293107961701407681236671700851866359445296443708949085364460717445059842003670785374283357706176758305005026988516623050800236545261203627050132561837860877336636088422279636804871505177942627425659725224268510708542034559331799687090816493934669064772322001576834464516017897635895238236603259840931990954513526302095579715124914363744571338634622940831547919809465717874545198338784143345536940801310393267163606315721645870332673518598695724905556392827735280684568591808248515819217846416769034628763075165241078010280053096382766275748242868642781977082902413371786006011821498069458624550996010208313169128960190950255450816787132214158021224167533776146985582508958413825947712912627382724846176776330793360198179737699496295332362252549235030949801619022567426219110850021948470685026009318688633313349251099913595869944499602227780931027574359910314427733984113864581713126712585263961915719526324994095543860291747240881736902671783782209711513747473380865338616679983826897884604429229859199666228088164927832054935058873287200283794728454719181247634001915305441027933952011709254787979688961653291102720163229150860310279886798107388053864296203831605807461860765951980722590283508429474431564782725079955096471871083411998652833101144159830109910313900143162864535932613532440985577399934623446624489882313731610991886680896784857653184695592885991153202414958397192668756904292286993057277603202895088558726740982401134475790705945321051398338718429919745882084785870904714803381187237168506987021173071171596734414205640476676956230740163229131642921683811297185378595017573335964994368730560886260613604006911999958058270469424605015273615278988615448793192121243517444948908766614505882811969584027349905953294533006053764518873092048867821983117657630365665228882180782843833822779024860265007137131681625609847728840576658673516283793154711335334468696811469004227332772813759088769490329245809364941662645633110889378516674670789055141354917045620909191924015255560589605873438089282265562922655758914676388426250671405531161990140557713202615249299526658157509061469489695527764309900325704602135345337915868293208604094448017353108996936000146147641906884226476709560001518999684284548793981336158174175578882003649118346769890878656927400565970112418053703685801698272322361838990090013760755891377331492453080790305379793806379864726319473600597205593985263349072904160165845827565671289438656780577075016469696946294916679688564298725177011946307262867655804142805477731836140063198190537770433694834202723342367879209319028747135078921394107777861547760942646119091166153296560618473517978113964050984369236941144768719443780362372955225841990740467050158476556255804248854267436820584814451754025225145938162595946994610401329478311994281363814202656423728489690549488720085750462594314386464203675509197757583945377342641968569532597853743452304666103573349961108925967637200837018434233925021133309063332748527406980242074787848612274938662267802730607074604120307053088158287687723472436518320131148478499464658882523999982404405951067439808910177050410087709601508686626094480775534919950506960578475387850278556699111798758420567150602601964421576403930465895488175799999548110504410630305905591180743936289697879720601770958402833959030429852641482253847846845114817258955863512303191188814049809659959927432727426664119410353122232217643780344871322470310346549552458834310057808224376006996538341157071014989726474732585062717930538929261139157516776201392548005369213821353599774662408370597809177196605098353102883890936143223346184426537799902993976126082551483079247801956800512245123661180305474248428094885569702205131581084613817746824323582558180476450872263138366286958091139415972431303319686935183258129265055078525974788989618204381204845411051059900932259998159640116235629577238821360900247321748779372214122778340755752280720733021184818812703394699923896459008792317356977202211180564170987408117647165945503723330154790334995814302558362859217176309731488797410692161697939604456704198692404210619759951365655403680728770113233877238814846600763064219760550735695630979322897629426681731534914715488432968281377914882358519328966203662303515649144218022758346632753581883526062805539155778778339572124540117529048710469119462098674492903885716349434788202451054306057716983503614618768518890580394962945891311087075793455954126332657081079959217194213009635965255574376244375630102380084978063129696248440918118095342865425197668322109152058143768324835710164065731362911877164550205947484889157209603775638643202250729226587956722679438733856064775577582179825154849332298953080611286868564368660802879504106779744674567215822073164333385413976927575779725909921993181409335106879880509954764368912248732114764443298307130166483196705765060818207185965850171572048019961336823704426485247985946571660160291234061583620464203932590885102789986140918290841991444120137953132614577100429510777817470209767949932872169757829254300339222982385477123116325467182066467366085012150036615840881980781951127991313369383696358489968467185790766705929006860262362487343209452898003369308383674607970376805423847537682054582827596625869538305408123945574783786152772747969871081320815830405918280454430143550253346630023995011387226460178257042114929787952991835056334160762334680521225361094476048575396988869686478992105948695210772319543732804186442645775773164217230302631446644039702591219850676663188074435778923120173719604353302687158845515454333058761079842746561886702754615304316206189363877024635673692110624934182168314631426285866830225008108734692877728726344146426230406666432262753700687550019626673921980565439434520379005209859107274061181493644892233994605234608245456889784812166569446347418321902485032625439975905554306646653977793998694811120858755762144008772375490519145389486931878576263243486712578390881832034879535144674958721891092457724711865140066643705123091242483117686109397122229920320065969122184058636287491261542706274822830519958524316895159459478725427075481569542252045615475469612429977439199743467509667718630540545285916747560466206578367414278272950635116137160750131939883057509306776056952118400779179884732651321317767720052174058665381385319708226121349627816068906015083661684485380616240295605211400273131622537573761198851814350025048280384340383359842453340620777308334591927269091797192774972208757469444548042513427173203349788424497495201589197568945072133257898523524517919248960653851505439724052297176801091415314313358782384402656887902997060839943830907003854034818161121724440369923540220237239481754613941374561429709966612013613681796356747772315975655040855541756846910096564707584674040210746579800102186609164510175875544057744390104795496078883551308532169455724645688623114176506811264549289652663531009583113256176453685413983473977950442510330115120825518750210843279406970651023333967446766451819384479509436387960643940379217251073871521557096227388219667649886215482897154558902986135101109192820862997423115557101548875109080950199269406088074327792868645001934283486551292320956587012677103013441514110782782819653737446696430521799657202057794035703881790349021060150693655583686899456207279991115257697851862064147574341384197372386187284301700381589681706311402494430383098692208633045340283251621097287000795604121451011006415951339211586634421737842494165714762101498815712521005310592878837616947085587574906967610566589688372619224133398424115956895605353061027960070372525241221664485321194776972626792923411927240590716893731935920960678944301045086601001222110906384577343379571047708746936761243566967694140706576626892821741561593316383911938202446259097736310429721362502272640320456741450514280461254989835952829126361474367637028501767224779188041232763971558344383472388088607789283690066131605748720495780886269743625093275158034699328028805612550094708924155935294311713841049053053082260693857122687435462214900449447851329699289310541090577196699520986477666250520446036155611183316294339564078656971573533755477713085361134639205227192077365929177669142659416981487931363952888302803409378080861515951619533918180994252143341981062884085035660002879481244702869238317590017980837579976716062554931949522654484001912004233111250566827617365938586459311897673515189752635157375701218269209438575059085218938996756655812184644966669723184869179076544025487262462898198584258336219677559262824477091011450741747729236300973769422117154160526545413646175996024616836272541783439649033575083303827173498674909519554147699283365910099224415562305520639019331176869466474354882758203603159562276959618663666561944296340099975771339926168344355937875337025127266050778839774803023817397428331313312683656497911780973046314651582920915536337958709841686732557699284900885804900394010445831838446789871059191925969155848043075304942954082615341487302036239713553978052002933631546983547421112858372908762411357140889804773067866523125517381169971386689213677840759815252628430841352806291810057302533360479864996963753220814125721998171876304468192594663051695975822429671999694393682523811965059265827547434612437040396691354291703484794654561537023796342563637715190709232388817347654069734460681796812413622398445494839770086186912986765930650547190976102390306318723543549157234234400551725206673658268291698866507164098826565622356446099478695436806624705449343533288526671427305366076322950369133357776043536620485136451869596301585559932081488379474232185144229897228997247276036719112485455701861658442088474930778726812383861863474445015562502861697111442667166548951501243992148715101483111182648558800070778175118010485517412606222085236745077055166701898571490139068328759798559847551520880173238607416766639709223075082982175402936983692466806408744875701300460873885904405079391926153541157744538888000316399061837213062569588958887147358479184459416723598147093161567874097606192748388102300886192492035272682572381540628476065198291952378280268094257176217740329449258624875835154509286212599037551175707369602276241263624717148939310548947214937568650381902509673528892616133667736368333455908555352183489536678372620418225898907610441161300002425832102676831768662661988304875782213393489670782280155646885081625871038886644950982856228403944910583906557464633176084332378864251372861017522912493705107909427011873825546736722569243582136177735014639110966823854696776192677550754853324079374696228283541840451976748534654124461564977073360620366493852573698853685150620500691416285243523980584691119519076451714008217584648752936796673766540767327554012147180749946356882023665167394131495259271401032833141208254449236818954627255444758641898297158224169198528965959323619290209180185856423383779079274301337134300234516858230849157890951666626243140022287041445929864067726667204608999538319632837555659664355405896214972940639628273324629470022978261810189776801669922887411019939157402511673830313838305978819024177731557849030330032171643882550130545953421243301528269575368877476994093078710487455409651303779002958421245735840794908796459482590945729686918003178632654810385726568106982299970798690043602404443596453893058409025660524130061469915347989516695903169926451072205146755976826733701987260997461626691832667432660772799582156406129430675746637079047818925374992149149269926049803707906888759444582044038588234855068097530765341799490630352802096600907072985532456399247226715881985680473805524260231583408537242004583126676779416166797387704621077239574109819997270390999778928476239197772057309670988228747515358336924352759495856671506011457652676475283496742813557963982207946966639140767373236759362121038831789225083995419998267605969268688652194265667264519367312043818277160910041560309559414565549111071725531439143124210227191198603906926339185161592685228807353432901594575580152599551349387228124572881188420839246312450888976207821422828594994363175857986200456204876438719296909833333538862729046335578397984323596715003119002524540872333024578688366090687973213557501926608172709556314625633397295206228211400105628506112972708257950810334286191063257649549177076092884921793700511388187066935655147737651112471129699020333588359869440792411086923252852087939337642192618018959985225341030950809015783449877467004363895275281035220360626417575458948630969500216849303288409662219030156785422363053172448261515287402875177512562008160668642092565788849334903230898396993327137554573855582588248110533866686070731968308559088386507372320096051297353723816446107939017283028423519093860469609697305164011897918590694937188446766003030076900267617776799990387919909323219580039847234890662196377995802235121480830432129209897847823619329210125694589002167598366728923360806495296262445335212733069850700272425721500410178589692157054175553026134426647121197224218633422915050804650602663998984572394276651184505224271648688227136930938157951405056240335947552511662971899681295201227557156645408345960547755523673422836042553297813313114528847186895109271796758903996847098654799688023830051935710493328856121623914415181495753950262980795022315251080674712611780639393429928353496876577397482073834213521182798418633383716879733825577074727343591669704357333469742445020045549493621200858994913339853706527694219749645291248126129271932052450380170418977434336845786059295663254436014807221499776357261989862171327922904112253457279412215489797312663869259835604810516026289679548396248079360090705650110106908659149214474986030272050060802342701756362788090664319088111843538231688174986047886689954743387623657064105138720633699559140500091564692003721462139876844040112525694167937042651000703594412282912836143785993023918267376959180809404260342216395627117313715422899298300146601181881069355027402248237038589917658386157390462794413809903174897967814985317340308254272637790129033791864341607286102799871443167300086205508104451113024989981971029909122731038682315899552623172133184612031706382215846405256442865448569457037647303403992820504991826377249327340220403854363338490983281722877982160842116251495652275254688087303966569399130053669131182962836451537353450525174743724031463833276636744006440109848891454611462977612936890515258855415616182539538988514656412590417124360859192936191461093984925262877490082829787979770929440347891314606565817128867037141110636060914992235698581449147491303408309800124674035886941157846390987997603408725323195095607965029466453860152653169711499576280420355911907395713543545548699516903388673838758613633386238969690106135223000993787074539235363938909738958100858142453421771188907027584643280785898721562925523201395335443094145771835462901346542834379625683576367956133738734822651946902343438260762876298982172401000825020224467968275697721663540153296615151039234045786103087261687368773258950448206992015899027780864193658284459548369878400003936717300163547801746845038849669345242261252016963290229813545026589990947750417294619685472898597265226908630759117995559646707567250644674321440066435029981572727562552278731280747143747198407700995745820169148914240442497444096105850052510355397585090014086568881806833325553010754033036494765798060469214952772691347186524749793201998492391574276543165321280209410045132973938412415445410895065768365840668537483205301281868503528424164046905521836568244452927777851464811175596340481445958951844279166602653913197408235845320967767900408426517116027438709899465764546276682201865531689592532834213026063623024052210147260709089952938138604886050342210089607054889599304200782084116837584268733587883985370168541240061665317953506898510580312361353718574934160558633957016904607929278127472514071940640710195636833998276143841105526516695461005138255245672350239737183128864292829023773643648756955673966372147431341073265686526460061503953318035966340168885027748464972659521160201748447154298429030991348849056398667627701506879325856316624250853929795961764975477918563307700514380457870234630471093052963365946613891084350849731551120076321277969782282580307226220759983037881518296149288815879720360848990230492724124254254483181860525097492704486828803767165102378772874583519261723039688849701518763544349929370117077622013792973836532260070795107199932666142757463679035073962020472720270433207397082010154055021603648665955862940536164435799473396213526031329850875475032853237097013177594079952192081024903038028260298995235554987730715272909933743670190012726685471220643813810868073522242142543223464960931739434742111566746791873892841144484086286301070041915625309224124085850813079487261707554766793623252352449683672768694360726834742960380319053600370346564058625914257221171699055161433179563661861445175318010219043572756743439841795057625291193715343498299002366508289195227883043619738293505262320042450486907611651515314032889508250925424766497146353997416137980680618020769446121740796136878740429964319661254621844288252247434463821198501044936811604772823963502686163848998560781220084772334792541641957524189023417925684741240376449932880092493326801897649997832406754625417864352491718459868547368285990280453609109598468626374591704736365983123729673536003217025712247913383875183949637112927519601015685356345757057945278044948792677818222048943960176288010319231792563050187252649482972476870950640182025476082893576505344937347503836812949189090785212358647343856099659480323573303571585172470406236213766148137926746781012373097819812661802766099632559835613323016078579691856511128067907456859916553893632713282147161578347687229276710896820872324558110237476621010290377159159402887773274920867820105480974961788049045918163560713663259031771083478090703688682713823864542326459583450474899140900967168379879819333160152592113754151582976036042485007722316436000745577660879289659385194053432012804010624982450544227504375886963070831484637120922071858740842140946574297292443545364829826097858485144060230633356831871754286245388884672016809121910353075242877898797324805878412699499863849177109934059508496617812898501190580282980426039256802538905735217411212968345807006653437996332404882631131179648796551497499947286061407657838214219127295606277467727505720283133147944797775813290209685913546461174048068531235320306315115868286305085473695497976351921224855080130075351468157611027287448111712816814768792184629598737846335485850703712834001604985196328869955733867359135067177914833803962442339122694087123817121090954838860836841638611551894373648917960282954612233034294692720082132831904066188169718277073943921533327289143173384722669080471326512514754803845657665289350094608532215291952411199317967566189616505987632081711196776138317441870403321417475689336578588733251195288118368438069745065837616748617952460091738668023997286914319183845828458738573527213046376833101850646990807588356881431711526240620885374029222593835252288188289127250678075081760380387854010760540679372177746752372755119248951367506750203247538449445327712214904408837138766572443433296577367679712396116857313511621381456728871205286858154317489874865806674355793584306886692823475035406692982389025528020715250262839178917700675888675653092697963389342137178650582649285051391456085405961302143607813221321418871446319071180057515350245825085927008175036854127728173245079184457721750792509077303001347033610914935670352349356511949892979352507139044285356569938265572947741246328206397629816815730782404109266403986214076119419348955045412109067989652348040354160921491795912770983942584337858706578777806632605382041251127761506266687064118200976457430321838717737004168202888723062359454568955536316973584094948285352427097398716266489318819926176023991433772782985489507360959437444227319618491027717623177666779443624351020086631197922173131540281525059734466155826926383303280515191118175269966019443735527640893574094493690532671794341619322999255724163767381436147107778146494796042332958757667762871168236537379311094358245838391739431675620747503323784862578331522519855272139022805559680832246729850542473978425307534313793644629704738752061359950841696520671153868521436062290119058656836429868020650171146815142453976590926343963089923838249888187439043028397998667061022406224468304578822934979168608878373381830640495517093085550855665836617496778039287012055563413984085324548004303724291903928545653809414584044069088501560558053317255207202687209721692852161425184886395585811226374786647613135071294204271630377785082577493821058986978679704535610679432156644831436555333356050988697084899600124890186076427653023796296937327039223476874785498872049854556689592398643013415523122960969449505745465082094604295133875511175132129698555785994058421294851231055336799650293989881997010075964241533313290212851721204522952957134704208609771185254885550233742806506530884696778315207324469873976641273836811706092296148944839674063173345295030907897606158631219314028176599403486274329968041783414557897522041111210877472970410800960225461850795848988878319645075948253437478337414545804103909221180024008038327532374879224401128779910142748166883324836339427216804879857584974139064244533995348651471006455610733815884411416456857863969191512570523564231342576844217753158123878377889380259761529397835532129401909224559237798552198441210775099726760872877365891894986081807028636635939762852289255126915570138341857854637365535446905989422110840256532887407267928624588636372107670062646256424690303414853344562551677012035957826950785976367074001880232401882118442845844156388177096501721332561827665055797978008768503243884201170348062002887649092412796742505453404802486210973996535292661297094985129218497708053145148886013196016305808385323124915970204272888011949594853205630039284485757473862279379248434196259542916225481387749388653089366547667360057555470955884740339085414407188511416786731200148178981030380037857048853871844839129629205504828424150695235013824961767321257496347743013216746451049808722751217356101012470186930728689385971386339129235160276119118040038593690386870261314833530439043700637566280203808883522661327407581484972062614151147218179428855669253859835059277813146703864163877198502720596218810471425927963772473068821572778453640201648870245016869773511283722395014185002474761424289263017810720570382211369797302433584874096888502367111426503927093024766179128668306785245944983721817584853523566396199265889516111435343518527015959837209110991393175222074931785900895495976572415274197652260344097875022931170400791442803589649800521408462638859092532261966350537927563114438621285744656177034366874872464105193390774936011816105535612270873441540856016980662186654544752881663908438472085641089826658808317009128566636234877128144701718354105793933191121530451138125305518327457371899058123834969508828327396424381376691412220954470111322197354425401954281293411039748089028091831732795550949837152430300622820535072552548021047363761236610240900473668669465458878809039662293993481476435301836400467571196424432164041875746262509861956030689462732300817204499683603687033377807363385609659999949298984395660111952866901363547074359457624713240668111539689173484360989945962037251933566865322370692556903294091222193320025391463183881697363028154405238614197754238022080933163542567460699904240290044908227886145838937450669614168291006481429393304711741990347861801777437183087260307082352863536047255135996561641694514120558997832013204149447413604311824549438671690945749079977511152130677118741319518803089925470463828691686260749241536326606393235125425243838811723578476103952002056145540105006146367760337100431671881412770967461585599315746032485816263076574169581182701169855051761103929869404118348011342103000019941907070312171564682800332654486879285497606958960966178392383031030943705884882980313809975624843166852985119729480337122523994378033610736669671974297476183280375100534248048011826389214098275991400476630161704661675951853777313765455677167786916824282960544140961914828779375424812835697000365462373450322142403685707864899819422023878780898841510469135957205707776599757527688059695528102699293499145061096776346500356618830645463228612228500179335925207164196114836383963800629502144449126925834854857616461537555812358283015317290970168598439904142973599105566775593742545298397138995366814897733273437397381708942049036740403786548718955395223890369052490799372254658019086662075513252366429742641256493845936718443463368125438786310680146391548353668741706561708029453290163748886364289907966254277216033172650058238532646236923622566435556580051788384930323321422916220711031483887457547221554062765503992602741535290074087906270828585890653857134902584385908307395707653364467788847228141446984071515515462583887477903117697551443413859350198395008963033719808924399336728034298766142968487741940191492134395706804658799116061406648813184997138917113806283536002216361201464719582520922163923633514186425080666209103120822603581792028325319516861468238137349984309298922647043667750791791939300404813867166948411360756227507226110107196478043994353335468471930990048485493273691863936062213144920831034915805954932112246041790894105866446938350618868948768428253568217032243803833225668947832756958710205892582212156713458964629422491415139034022784432128306683940170507714674966572168172575083705698748545275724384654388148668345821889706740031986914091512651537935042920109182487747954460839150936378775442433023099818139385804059444739360638800267121681362663247546956758090074629723996924884549079365653327470584401752334058879173191592494774875370239896096693546527654488946661287523982582188642766785182625204057564884121729099727315576129390104328329521021294351786201009984648994811855329047392324333435623474475893311383650987690771064081944353332448789435546957507704422029009995560411945374325516524530334910898324521253203957796579505393934211140006701557278929012717395390044639181633097905769289969290784991280127138579682275200163330946138309895365929535615074443057168540371887426876347444793122114756771978214657823600220517358366524047330994803806102525815940544218157388179846424769292315513425649799573743008023915120959334001457035597787815018040134761897871622149143443287165951765000047049093758285955223444236022263633621900073471294055653030770674318272303548284376513653311957129740787253930300556900902315217493948684936302498438561405331191447940777788125664286466476403669814441513446066624116195326058356330032413715145217236026823109346314533132895780961129238948202182378995268078147634265650289218981655280643059409861966393595501156899097509297465603145697760699262136233829636910883937130110151369411015900873938145916368044387898714902402390545967231599418332859571313159966308357979942548872066727747511989014505049665190560342296387065859762187476603346603026243654987162149938055754499396930455462505377277278865716443970904231280019775706348753906704035204417070844543557675212770711320454940359258543995938628047015690857306986267553857455170871065462126650335110642390435845502321207184882262270059321081781576142197333805668434837965130353521879608268562762836935149460117410751410854687552079953032420432718727579559648459477537667068815768848343256277103549785054300710664721443594682369679175639876451530612501681004993511894903993045094618304455527122560973325473215855077937403517432196372537962730628669349403639933674703127614725307554118737209245738989357810137265538760154156236605031576474317881162664095529958467008563231540754613817056142348500052784695295821177001732663424358876955892876847656718055647364480204725574997628874752150944276326920441534594513343504556878593656970603647316093722267588143917176726645346866655441050445378626663555402081307978515137247586411146849375297480011537558412647210663655847134177254783692250172552935250839246206642521563437543512069336519170697179143923064070825071878904871184552431708159256371630473947928441749978283912717882890628843168764376736572235636443622789027194867955942723841432335308212776623479076223306979518883209672509083705653871495939561705356553136914188676805915714049210163355068143857886761571009012027966135412137873853688519157466435609289406035670392054969012521240595776727601799494965055179720913080369075485019934315116445453714521542916518873930232758482785626516350038579280970721319803851369704311673952335011350195436767740855939622481490395272488141854583683991205597561097911114128156140617247356055937390170691308510862281502453712101452641010815124760031895371770354455081408552773772630094363160548117991605024457774390401719089713606403027759088815702322439219504460150034703677059508753521311695789737849877241939128534709514382652467400822920850296729007425613268921176213573504539658146466471516482625327913638404721135426533264682283699181729020250462990764872630997391903702096537690618760302376707911222431703641626852017736477437991525945918118854191316552753140585123349566246034038878170063091576222116682789517144359991995681369566569299596173824077299922395867627445019757484153976762518484446215067983304176810379947223641313254952358103038810114921390535095876837694487231065233534481433949871465990356724101515574794798439801084152310131110044824234643659497179708537769864393522106329839816009025262388825302436619560021954979253114751082843725762962349180023840079988791393033798605283765217854305576946585603158424304065554304044444542817226128841311883421647136869724887224728088216185519911761816613584544538216814506043750999376218222519805410868957492672518232433220177748941571006949164229852030093868252567325771105140604076229077483464437373164220391245769287340255331048291349874974544932216221237325490014899243739269666781985422918467374717431847072561294853031739881558911204682516475201639674063900036213823827195308655384136443377289503951650050324702981508426652477354535989291187854913155035606877770589969931667922193616266104782513311856365175224002453984262742152892698138587914812817387526904701962667672207813342392839643267924295367727837074673401395218307680258065781044105592602986611783246556567538049816864775609208405260171693251323639556035921435527108050873496153824590881005294048899335729141557165847440383280534836589594251448422367294387592096291662185835570560985126568982040032404703363171923535569549568119789549343148099504314400437462359065277792947951982440248242950874775185857928581609482563723801981389720808983107871365084440352095607573035364116987448769929267389788924439568103380627077700599108779167908655120061772558336581979741166963464833833389919295591806728443020074071405870018645911183306771270951502463523530470210339381171514532177401566747138210976904497276847482645423899094792709108657484227810734797012951259212147123368557595321514049871784396428402643332083371621129890769139941129274330899667446802641495426967411715664192294958282678348611234435816067737923945478345411706518148669239754270716756467618613889476626711112304173139014996082354580671722295836361945328753976743681833075294370858493821745041100315546199939840897606458582373595944351208576056006801091884140392745538190482539568649025876123997078636554446830396479171856998093398019199868367537201991811633733651948977205105226634798358637029282328968449733206263917186369490526321394101848608766677163009765451127501724859228359658943473397490318589281090237275403795008596661287656867747964320229656556572024901155222824387846155423199343163416406773789220665422043942017480736052790195747076809435957319627985645984746693676830125060628239354345638257631045984732698590135321938808538351831765898547477494753664738451624303747275297109327351675480328554917291030796345250563352843605064208875462355826398903291908390028836256594557496714692637684556171541087964825603019336172012602268141679601900493264875383410408224684555919356715212820002035434682639778601443681304808228000274633938030340111021289876260004699822388672939526239820098691051429252740054632543885343975219712771291936657143491852310403575297029742624995922409252535921670234580577523531223513947977457460220286024680621556809074387687767323633874420052171593295256849918864694972353581680388840617267963284306604946608275369603640077083233782093815228534734953426835213468816520371189151720658524461091116247110715058196759564807678898658400976087470513896850736471829894025681190369119642492150042506582674720060113028828175698796868438697426503836977314164883713363416615168028537327543275289847591403187346207323984810408865701139116253527454498854396755370394595096571197124338138023209026717177728325781685022113303924249628323981943239706816932890288827352867778951527589749279137701592808126228203494204344548703643598514346532238321621876018622842239725941892626798719192471047293345633439245091191015645230570889724222963112288712076027837540791272430652494015043075863432248034883487327942707495715591913375037548771191754396094116581755139692411178392668105440473009130262718437360987956563813545527651232159045846151089940710644466559643956207191245194745518427955173775057848723949449835782870264990170152916896852131841806827058733016652143599209439486644024922166434192017439332259369225783192771939749137112557649940344592483380002628814303982707094697131930359972894545997368324318273666378443788804885237817158745361543492826647918004831170458722655130343781798618984432660604413622683048332361073624650776429765785746385786701606862753304911334861871104251732107683663241347873501174066873519615875780312327897027222491531567310274071604678951635391245296047592359348809713377776612413254204865899441718367974893417835689357157487063998961842628476964774422540918216114058713762461195461586117251408913557904374139998490399194077807353459793395292278650765960906183290739234231068342621262653976539811149937690702319565156233239770278591708934751978547861617589652465513500679338497417884521768233873859379716874065576365930445960310366323042411515863955951637946831969971938302743544814228066313550173722991649544191760249299081666216035773888935643789613137293696475981360940664371370185740087206345337965126528431903984723462085355189943406726549616947462277054437798845991177078750983130625988390818987398607623564986015594980195466568377098261859061476899931750761882003616709862067333950322447665932064302993558120119707995618074226321473584473537961198586282941597415089744440316639869158096752424448533529571332484547680410390984192940791556996522712388924926070161206462034039527435505137107178656438820804253999408328520893717032931214347887912649025437438260248020722252833266746122139839525477561518129053233200218760278650171909384878526484275028729636575615202921975142521361363695045148560505668772500032404878697418911426931909240031089067650868574694112592287106632324446047749300678137309580608025515953128517391769336565377745800083879968426387954626786258434509611461320244365090326090736333028214061987765093570028943162867884030050080566573745229111207956452960155646555412946719371345833877914060083027127338392132920743854580221263297330295860814866103235922660502907570599771904334820696213336292028438954240630798480508377121450289283154503637111141476641257748381584691876597426607914243616067908337779825313809547396482604032321225471151666930829876047196199106697065809289176238799696113868304814372622108071304989388616405130901318100902095627315250033292916647237003798901259901209649013929454572850807508226857811993345495583808320534547373241821571181898743353480105835688463449479614684640479344115369028785557881362592169751364473454468855831879374843423282437337411054964742411294036511809238739694693636982844402766503222565520421647591672214717856619871161316531857290780527336419251618670566078855865471165685093157444911604359635338856724021521024736688413155805118094031043388080695027374001554578161380321585632099397400832826925088270472719461640965944716492192754515056760725197384436484294800775045395890962660980229018752569904583447424943897841579784930206044074832341378374505827406474384690061508031340678023190898954638083474233229072096241176387857182954561349488022747168542074357404598413061461803800393479413344292301560605387208357601795141514947421069474782673751803511018478392641833033419241254193452885450912830488124650729587846106004753099458177852684381763762369671288537060063283280292411487855560682942771482791555518073514034313089274360110613178787980077367687363733849106329062413387604125055442910284237604899351097971385771737615867230953255193360964426492992862616718679312029156066018354417326204128552246300268352527087535122089490494926962654230543239170865078007865792370025194023160048484546790868996907671165787263997020156109792674679431068639928941984091290605780018070782922158078065068516491349177204463848076852453192402532675767790828839449009551784124173678232434149873841586523950441895865922316898655046284088959484380172250313483542301438744110458299061363989193741253482720721759793547059339141679226353110991750760527974929327799992655685924581841117297239399569847664457013159307754879606916570611042487206263377548106406902209750310468346555842212363763743775959172093994570597665880971755446720169930233738554538573027298085410947675370827005330130598204768362959063489834774869276979361649642449873898893819373664724425026600038973250300003184654060503249349475100615350304003891553836150407127477389030966715410027208571317535682381519213983827053525478447192156351986871494002185722519271166225867520995219526816773672618613311039454297463726649981172054322128982592379613946228977941046444365977139565610537677337431672860789296781416443506020127430020592004334877746969395727536925912240469953175412877564006038244856600145218007957677059033833452699702870748171343835650959714799382867173714633789124445530336415550205909517915810284770356019594994740302543826276317266418864723134145272629842544236213358626569564586505350772974059403678971590000608838539050732161625892423595466474633034129797782997934573410864372527433827085747456280959784268765706646329726484039120107256976822035048553268566844844170413339515886709212729073812463173780684242571190922940131417231869848647263406223670199577459362880746032340995219273110098624896629864973224029649163472376069572818045135627919661827404335238430566243625624221822867960090523256174033694892651606506574723817933033423569134844663902490697711252696437843250388115908566299023385967436272913544553027770310532777863973343628381509508316094330925661348769654848498328348369326671750388425784188552361134322440368487422880018196168534013542918271761703984862501221701189255640361359738822318535212587695495868654263494574054950017330473622784080738831208404250124717647887547782300068766218418552838762069131560101775213613927922443173206942434059169811292348901690295219752143840904868628218750267809882869739818426285528269488856313812706363227675116342570903252840991511052087275125829544033859813262845688502745196296918276783257488373025929963486710709798495514640192952978006191767392554747892130985525805464765333209308894422857609046533301558631796826731863667468301298310278880112440890494535216257669689588490211495708220340057531427587668626300988226732515483904937537961904325667594357373496590241069634761583122324223960441748778444147291828003754915216944981271259709701369022513721955015980549436912578597598891905268436366481715081551453684694671096562565171698588127986176745665209618426422175131258927213751420066554540902776247236882747900362052181933211508531484427995774116266663904237421286787449796995679166643601868927350831325689822577847369510209823444235633172251189781748397565070072209979669117440235851467046860861126459927814406563344173394527094228228233391116129548751516569896242625617183264825962852671244247407394263873325672380663389715641376040878661792722382306510744906607540063383612941931629834931471098905845145390469673744868634554218944690389709982444872978164236128036858912471688501308862498844677061729258045522976215881480452334333396975124057156950780746238488328543293470224908790034554532591226797002906591628766832147248936437499862640340700893038830227927900734903825103172789550504399480616460828544648498941602572972065105067210216093877598370496194596500977547401902371830029830908176332549781709354755291524789652801441155738054616155986108466273000851339117727386781946340993299963303257485853806468132114329443891217644017264293998296587100839667585793900387064123083584980722072393412318244538682797052211083243128784302959214895238863124781550387049051472689656513345691437402889870714171908393672739211583695263422841919577880290586106259524018988069664196929125564586592949114720768681977329135139502944976755089848926689821460594100649743782055487295783216100537590729538231219426699164229950131359862290627738677709456681145049699932882985051571458125625896520464842975374332561875623073669211017926301875453954118169160476423222196023813607349963670796043308742865391019690306099968555423953646818778855783084674132752107654044301420576247879683718995924895908712479800318593202929899489681566094362321203830691128744535268995868026364945645950567221241390785655950503465462994800972421378951856671746539544355071744556956126007122161332312005468888381455596023391351078284239125678685016012505991847547376641654019652120085043994426063564809574005650019158166513203089044868720789551656612251079265712306872670110966007256200715096244403092604552699872319290235026419149784713712479956504340321372111979345955690834985508338456847334074743216992679793407626431259956392167442413348847018706257526762815007434470135465472409023514130164803766319927101235616686111777813239465376068073091834888794127901545962578835301588706640531213595093401028051865495330074356817275279302408161590316445159522665700744746455731441039241446211748999039150850338125454380885779798291700143108822961662159268369543938857997289950355735550622169459149265501865285136513466488124012817006041832185037537923896865050334179498268836570747897333147699540035482886636243402311256008204652353069098695248948466798482265866581561503602184584609301539100997390967263897815944485850955891640745292395714545624395074589854229834706397785711322271352762472198056907251634414997493830160663264373122749922030496136863033871424301063525950635582474379286172289517359671297586272957438488789789928243324048065774048305939229381398569815407064661608522508775215630091161398640773221055794892850794378754869576858739672526022607427461685614423646758339113793127927944792265829134694937745850229466891516376044746241305718739661520261976872053125178323675495220496596175368941881167935720033295561299709521912097743572581543460431176898130288507360125291716132871888054487994132360337863957212205602533074647999167188563513100248943807665736371925955121330429737014786619776381632393618606621721510449296955981511238408632557484992735757035120808963299122249466874023734397913864086298665022335281806347630967753854575074859781572979309133430489978175052249078248244660106606193455042813051548090252965773281916098086841812770625635999304400994663575729096015025442690712960854118675967032484554279333470165100041849653617788322554663430806327234526054351553681079181260958825533824145856283774765404818386365583806685445574296424860427195396013680715378861205983083493595897626565926004086927590692639371247097194406840699835883646404987951077954571479001274190288069561457597371484384283456937535496482967395554764539555649677354094285403922382685520606079754127329069290731510939973345130163528978479201416560082701292101856389137995697349388992957954446765089766880286356120445503752811440404958059808084605691662759569954173846984495122740093134783033031138748342429337307870707332769301175863590210530495516420759400923201228368769600153099351946853107554541366324802079856301356741599927186738161610610201745054172755110022635569192794045768712795444809009920102237515841460172146456746747386555535016898195873932345713494011119471620869196758192198415263861533826909784375015715685672933934410354698200366421770796254145654200373820819192100683512797903834502617062381519061663581920669419689361160345023404198958474788979060363550852034678272737225019364452708721340919551050402840699201443873012301949142563871030804523019882550906842120208246353320006522298547243437052350847431257097356652070430890573807650189212894202890138000989260587592994255717462756907959653646198085823448800851833163071811462832609010862068251096707688816078859248321142635946306553453812656393254347598108730984209027338329651519875144111417952451498979663390277234386423885922515870032671912119051475856129569692488914012980905886518615256878028826644999575471408586211144093930053593090337122328852802713349792162301151839565847890834607444446071952158985953506301831679974028013418865500724746379140618429906394472952565073885882656542469157319674244811277753173729079148424089365311447130233335116231891336405846732899594885573658946691230081874832160910152619198117109631353431479587362460578203473740402776430142988983106309963642785686024322123179101314258652227622956500551826970851757792574483139140065631947084132345989803498724060037846993257390065622110652400863730462057051866214517949200434566762222825605483798322829593698136964548369342898275778507230535140338030568830617414323757529555001929485212282126618132622983474567611542337768663280333694553779442364815239010052463002777322488032816660611762558034303248877526293534379165593578342521519363636530135087054075663835891507931822651532813591617225459111251457876487503770180489086706321715707631540584144101315478165651836019043989959427636753375754266973977582635922006881086545805960981681732164769172827924554417838263116504015296840499416304888488982780588545411071018902530778359516725345498694448442802844345342662184268611809655184416484242072115708805796805389489988278777637287417277384436239578755772021407269224495983078318992716709566194406508435391119632903632218846838567888489749121922773425197643308838652810987783572054981391707944780402283346274703849114182483468660520570609466769860840669342222050572644985939423528792784783216935932330257471167946531922523440629491415294580854532339695601114191741108091765850584420689536424185294260152196192398784517463115748987106368962409723423510291156606209707416722650468545462451759592395402730532167148175209050713300713048626423980859217777911478493521063750824597701556572186320656782694913372884695077058731486218064366857406342568929806539433768062201404555530383554830465867979849055804736656842783750187015062530242709301688872986590580169950782910563535011235732678958339969174480608736171563291097185192668396750162046765861394174787504938121219558018296616085374455304820483820925042444837238406495610602698495628560003136465932239456086884843912880539594153682000262957606173523435395662377205144926251057420770852169119613402888442407634976677446606715787741206792130710708941163904118165474390328956687246474953851152854868877151591162876606707219956016243560635690476276247863139519243422238483611855640081344892619691674719219617891970176446767258433625487419393980040670227576926609937222594963410234403666075344457499487051862223050107469981346947448589985629420659746559135265536773765189400771157134590633241618144868419541234254399551283717152901480782745893702339999165120399090412233661754630642937418822678743536341962480616586832750202313789195993884276028114854024539798039239672110445128976789027793394942703306661859851296335589793655908146029639994235845981029440215899764526034133104061133939185975739364337807636705397989874450644076926840204517299175577464524426598283206528339544335604732695216291630732053698107386767893936189836269590089761433448201110929133232880635407285036264333572766641686209714255340025670260020715946175699049139366057143668033912035879706246419132434467834482344967513093978637348168135896794547601953945381756401729427201240165407755807045646093053083748426087665216107174177824512040602010635771554265119293620814830043087608664749178106129819819532526272744769542763379292691028766929344062615760974368912991514025091978094430275904887933718569755716129626954333173575600089058421928756768924665941441792856874704995793056379407006418383637372678753661025862052249559109823723756452656643700473933033651716448341601930238856668358199972646960867506259408427768099012896465239260335094881465963172111845369199293455994880466028760514393039505040114977229885154406949656220238327343336819905702851028985547271524044874779159105791230038379885539437570563901284208725270698157124902955749401002331719804493517486740625318342123858974674936214287673672796972749067058444431096387808750033117272133727536348969460876237736685880665346974993629041096579820642601536846355307140489339547084337095370907936908037961556381255467684725880277963160826864172008211034284056514374467821250946651493581680950455016981798643507329373811720243536448670715586969567428302884669338293012150380284864530420576876760779911170194388675415891578831366168244671952029637739446834280251787316510006564644899291565560060775279472530743961095441452656074404439589553823759917823846814266027793774872194354284920137660790687780624691501431913106265467262679443299893870803944129975007101445822803595098586964522596047154116053123441450755882977079575976936192767416746674855569782754663531662373415454872598547378053811400871264323043618419705254044923866206414203244649798687199201840005278158275047056648166584430702157966006830063510119594083952768335890241066252101802493517676289552530306778730015858938856837086838901883963397578619924724571734735833544286001347950612083232238760181124757245295380205404924717151799122675872895215399737340359951694328021532468546833737307843293228876478392911410125298670706768099471583088806506198666646159539741880876402790929217502681591354721697508203485313711512733997825244410603372253242960684415762329891854877425698737283550178968232046506170451720203031506099080721763282254155573454847765922155157159702897276266280738373773734408267473792158211768143712154598575509993232958160774391025238111663636009306433331306249142578930000961910199388233009737504238519644905568587527718547644645804570620164596296777830724118254264252500700884906844828030175411332024775185629117512805864782196012437506336313581309164101064028339941917512082928960074793708504952798533792818587529804225115026296050342065355414370363792831203178370473523277377784637715237734405347027309924455646988386372199869346702873359234746407798809360811828699841605667272624275969619864602680494820855179428447192475256003961847993902743418313531959237737870190150162763894274771861695298238420880809446693331863540799918192965730973189058905238356183246448108321940988796187738450371400777175619431955396727903398999752308227795469992784149121073152081540705623491524576289799712054687835958312290968020837725633992281547882146230072009494444154514378932452531898776866228538147460932245952313886939940772893372395465827182269762045905948270080989953601692136774605577098089245728294950710726154502007702504175476237709133913669276374417055242132254203097240238872341469348966491479625113720051538899642032345856399201297296336743551467218368886175377209819041535697893731464147411824429855739073092867053104728971054926458034358036733259081307509622275610925193912790115692826774353417506181728016929671773596894039333793818461500740891258998417966698340180277348542768167749785574228061792556701089216916698326255375422754660910482345479764849082879092506107374733732022647453467823263871419670938922326885815559641419413931077521785901688612868420516464141605832496668168109003492062653226447956612395485517768980447546896962044311341030785904455574600073402813857154906532553131773979113422195401675659666954821057159143476879493705556103787346625820146281201508869278628347148832785666822287427091477687972550847228118172135679780336028417985734441303497870804599223090140475423663884980207227178463231621310770239107033431581375280844392335181599582342116912565651699473067879755457920650434309082156364215493292222038598273569176083407295490687246979591913325362012786542356095553990299788843693043739196427759955170083958177940986509160078873469627213539012725959459044566758893461734998504926783060022187118746297849554350726248322224002444752203239147494203673622648228130674159972193022507160400930236617610195852767394388715357584509660572162061489246353494015538162916997674874639998994916113492318588595963347080041856236073795083388459704233077720731917842628230747793083580288723443957312723570731961149606636605538981853800480818220187970699165230808707305038136876009451144707535269464653742824042610518540351624438362780252810007808417367739421897495292169872283289271739710162637173053182307135364450554355277655508687454503154704251103962062907002943996233483586858707518632577690830885759598841233809475151092488745594774544130597225887162053990300205881212854522417416171175984807605904677155138505735530960757913274893927919580789242942389942213659705222049461921447110129944782190427433801593021357566130641301642866084675342609713155253105539972879403629984100988992002035627695727980856998428164968256731693610102085851396423399046683954697838345599895769406708713974279618711877933690850512698655329454022280578775869294282743980980787734384224437179412468171192026552172747031096214570363335755563303275277857509504776436771261544253471656295937669228144251189066136149086753385933576774746183568009857098804713678012899319670990110351125729570294201696354840734946579904076524716652094040057981197057404402984578522051796874963604572853148333210910498820882925407004112802106229544348299988990831301256033519046030118918796158565992618699198114736247753319633151388022526140548778707419372998197733590404701792787544295851663933868223655861670157404796209289540524143432127066357899281202293104746661277582071505240223318503292109929944451999916386236387117071933572847391005671888564004471289368713684900801908050677990197150452988168792504931612336533332260655806608590386538410606300624311737249686658569061370540054479951146314848916961637041822572501482454378922792556756784142802726529474189055682479737607691821272508982311129950595685608182179213262216967065881416537792014141648712590599588981417605896653521169645688310701050647448662147805531374857879512380652826542511528922302252532821159624475773578029728594445990665259014302588754626672514274411216574048704907531617205104468546717967112885650077118200863032020589185950481106518542173050704853650707476142781530807481402521687165382256458115694831075995236185824138179647224124271400389240920937113276039510140250986266682471318094174401434318157167469808679122891516674101333166679741251023403521258685927016699894463932904084578331501684102561641680498779750699082091134059046310407008674245026943701716984422629914312530838508461887206862094184665555169256943515529953219708888572622334388416497226672624739948948573913255291390631085281429433438091421088881375119737917755173168150558286925208459306326153757129604069571738249798008772691752880278320865572426704120563147809278000147301678314502594721617364538394771498954905861668804056332874660240945222577950330918048050923058951877220113221066918243480520054730150781168468462218193411182371744798921381821295246865988368239847457368324095024731108216371920038562463506283922951039713333409697102588603421723672036109407015909578903038007960703659422688351744162196456319881556158694685453911922175335702763214029713592087809362912528416172096249203180033483553554083648642236318470331294366243538362419804888526784488986800680038077732106753882575763644657661358001703699585515238902422624239163254270948879844584978212701706788649231396331459558303813260438395084913394790898170204432010959234355658480037574675601566676338615679170156011485794414648697586966846536239100595063267327616326505152016216898159464828453433505364460857085382396721444363127330070043917439330169869404336298116024566085412582366916430603306731442782154265473974550759873001952132401297566492316582975160671253899110931753544426382348033922138462015223195039053595834289519820208661642166788117562650643934437973034865906890548173181309729470024191897929563253813526317157966872180893783104730169188386125784162350053627619243670115929528506672349064481618191781313935586827569019081065283531560092892031375861114619178535300475777890464693563209582683405699387791641187119798709490894068142857001764962188017244648688481183810711670549981367818819069774270278149574082013008349425022548107990842617110244251779000712178824739961064348758704522921473381605603004608550142778615882712779120130019618761229906457595631388390315831805096351317606396876340127883346107392883655188214128891266631899187838660881334844059404051786793942088237584309455403456800030022190906887215998727760236733302515393968114363696706505210106774677573843054345843267959949425491806503482900603671344489126386075143928835936027504395623908923162282023544105137494285145074007643470707134375554279993419477248334015710635018351977527470252490525424226835449833479485276468701565123423427914911423199104792354249006598818064870676847859322490181773236831883463609233515388527252136851290830639202543134786506640713601202710794196420128977357301282893111356870913773725212280442241844005179141099474227682701225575742790563947109699085166191194931588610963513274462649615749893998175258244101497900558067205556809065311426034214400268140226373200205290923680354890349026739226273325882135680688242326866701616439663361283149847945611613362255621481515087144283984893141818146283390246101664603336191694211282714735937294429864801482371707178768637289836085599886825579215833946133948189476715889828320983882914477124341155180411322158683636807531282884625449977859032994613429801135209688782687585228604257238900948807636925562141109920916439829932227602890695890274281924147301857439221849315125015776672138277390629116853003027833367431047246234648175297241997899124045306660730085903299663426976580789283107876127443231886578667921539037215484313123396748538706945700286791543885498252116475576994541491656049105955144414139985845636022749234544487086429928926931570675275223193445901104064748501397181814504900543475845914942464086862374293691782324178451970294805944106193745195920472060087456158424684234276195591115042313749195782915538742441429953278188284464011257273178489619013773018962678041471492782410630381055375814906120591500114260438918137909177487695479157964024852152092810189130780038278623802996905595219579859455256082241692189419317830786497760443703499394726781778363324647261857008577614512810930295920848229022191390920966832390718243999413641483813961466799132437155690982374061021176649602749931355998698552519884733402585989977500277419183877147696839530673645025255737379958736438850922164830756896610729402485378470634706074784050349981321019986014892155495879889945711863311257635080549228042813607864628183986951326588125442475786913452653972072686641309856219943117073002620304211928729656909905563628229172966427987628881680961254845707201846298980197006156435052111740062237555421754002136144098952445793572853970775611605702573021026260352806575709074363775268824597891890716099356255840388881598960557454207615938000248714654538158002142577835209981056499336435066575923148746254462463470318664923270690126400250407775103141136382532114255169043451020235198263326170601702959614915387152033874992918248864385479442624313352540396883118695001467965058752500780511754021510561665029720832149079556813738268665034963604817518505376124159452858189355977695056384513410955866457601091197881069208169486992427614189407057902763962700723830483817619784960505279630679741259076301569439758678575184996272648309583120138728453838347431219112213696184890767735012294742996640877714351082557862376739222475349540144441014816214641005055729714172139295665906718242847700353860807336005307385641925400944481182146432692125553356074093099061996572372344423743514748827109397747752541781801531625817636819346074037814499263625184290043865403162814090639500459016074364331049529982507494470020588818593949518414998813462404989017094826414672516345017880009785253345096339554523279705430904786895131239704383160348804659005455061834234011910850908261110475522942377302799594580629182363584111429352951096101854677252281126545924311210740928797742930497948264699452643471765876396354664345710816601814029399862668842707858795430345139202585014504640887761097702601897810495113485795177775570585730229982690093831801928402277893981025614761899687018553544062194358260394853049803088526517829953358224160451285214590157256895226024107958791951911355230936573572830927740234820974517845467553254138243822063855600393402358261713619122760291663925751007870308337983043304035467736580142641553967927678033655866865766039863787723884733467914610896763471301418916138271278108332442982570246188393673724501762656616529884916181306146252617434735841146665334362076213079227747987774694989750888603444623092334469563059068390322905514306889301046427019362449226927468205569965863916289941828562558186164954915048938166610004087604961152626446928096143812171473896590257905776303485704154031243177216174770039685569347258908964183267559375351574320365466120835378775118648079174134172071052316081672404128703298798440024113560325985482830620670626023495657311144787853129591578267319187696396803129779643102017006685903155117249706539587725246338002185843556336184941545899929855878113292424260236217226057742532106191405641790302995929753105831182339660216896914551323249584648779013811002634952942331873321268593253903602903297923291911443834861344873290444332787894851689374991994537709581970416849479441737511688010937672184719560588812191344822641077781780693158828207029320521225184201585974571906141734667895808762074505370688181327557051964526227868834979835596206770747687617906754629616437922780350527024079095345633041103540003368801128470380592432392863043125521345684804997554931777926779289413203561790406401051344262181666402412621587266699022895160885984741950123129565126368294644107720248632471775046849902456249681030883299833422297358600672094541983811176547872404601256580976354664212646862771789156488384650543646160703777278852502843755050350538044467457892391488779706641558387379642121054618280874909849285484019167562379174351182679638374985744884809632107310724594192872260462527747981887214967042355184028435507936186422995267952305817987874449940831141221594112454554828370093526863763680153699256191278212067195487655647087591794971762549489982547248243991870773386399108794336132614703727506353765164699324771858280331942975590237539536187079454004083779453615686449813817402182259666151348300686058520007057189181066333512119371006385774223369958509967954309672165175871990882616111076747091539878083015459799425308843321892003442216956820087336458799528490712062105801436853259848734625021336534211371530529034364158864469789527214823519591786802661069303536727665422469130737775247285363995979123996538400906249728306523496096840142805353855199164209815801948805796753391321264640364145434716772613650906776404710762303558675138900888412763018310506158137170626076706479624171913443990379791930750334079853668044910996942927299856403157652531523166672692945704726639840195503207687087404229517720645513947811146505716179365021915084861911254416929465434385411752342271543479146893839630708291108713284320414910622210227670298479919523581078142857032309690354606413715498222525875828499101668608814556266243493311527557915899124312081219990634292571137228389213837427517046264228242399864942192958016925709195616238417376332668760393628574469704384358138299508644521469957016352085281030698621828148494292316328027905836383688621809295114767576544176918716148231131477839696604098996113640515680299170180383321782505684152608128125503593156781510861874253050703256599843328711023764674073640572643389573098436174333528348154897476495813978712112909212902214306303042102322956555608170913771684056824930399858999020958783555771738840881305761833746708509765032520104575722744153475354107518183258930329568573235962155362923570815258665162636867375412207491802320007013786237614003573042092348566241702071245688013659414824585981305765101483018210147758734682623364535551596933369920519391222052294245130645173975654944235067273721521392797887092668470102917328516251673818068881687626984443036294699445798167467800539916617851497591375449236217690365727597539445832904200130954110959856192942774236944622822596473273130795506249628957585113292058039291582085780624213126483822052013709039371755840553317450661144747878581076365854016793626502019703321342244680586899164442011047588529609035798199962659818052827447084446908475175629045764358362080154316867787295331799800989335348336145029177780569585250274780679782731228999872852724138820761043996336946356858003610614301313010575840911286058949477516353972297208170193355688891899310771684816044226097007333849149725367529360599014061434408897869727274478617408378275775225054173143904699023482776571078087423866472817419892564273490053614528129427472326525245929419439008788131993873598553210093948142805882501652455623120407952075348491150056696423013819191085954312851346724012496190320518354330121796999405958295776584494345594165086501644476818296040079995881535403456050544237223353825190996634004115052927051844097877079469279929183111500296668293921136888431042375336711890274468194487565250241861771979850924475686877372055274581992414069498993594063322412141633268375269055930340835370427219047340514868429291401834271231646147281910343887385396933018238787620023610064533698370534699541750945702994553854462618614662137154470156736883294810900383340929320400999089569479401945916130137088577384984133694951373960185041208143822324427254097727643994485865330526178484768809302997000146655823932421865997469514919179017907865713581675549838284496450344123586886755083987287060747333023559989270458280868889082897019438273143202505225844583867737337883741254572245266450449768171525286239322350842772182034923959086625853453282439864623158090376260707840344497770527562956651046300572563098005492843481766665838902718762964175412358075264895520066472315696874756267322705795638171990403910737399299138453100551683626303368403428149137745622922703504856618940475793919761553446625429781573680408227188931401150430990981143336925506126580701050789135813514219090322210920610786503576257549115905880807624133680920999254896687145021347166007001878266463097729267681318783531558268677437737428069584358678232857993196573459783269405611653348434416316533205769635755777806917429955714950732894414434243703147106117081522089654562051583598922416894296208380380336685379022076302333590952270168046382161068096479935668149353109759776759384697141027437332231440074464155183211986859040243258136195768750021007669843916080051676781932509699645044963204455547580154732176510606791606342999090006454786600068136666380984489677444113880573941743376747184424682984721965348957797398359545374106542182866718449999247980124875210724197393944542591534126989456898274268707240385017886638983060506422671535663273932788494253831288540311226482439122747284809210748047981605930376326498186445654791738254448362889716913921955559578221114138040527224713747308454597287825473063112946407097638370032004109017198197802852611317371695406669180058066341267050195211625294919072039184767523337466557443433822795752412672435051612384412187362431426532956387864177381432740247366236013256874115733448224541857776657934424017600473173616950076086859128440110933680735540140917093611660318221277511422699594734432522259421067934885680212972061973950211779509711049382449637928445464674651014318638860534723546290188726295649333731402233108368040031889070901184156437432733489749690475178782179557743298433391769486936182964245032183207528422832735206132708412509359925361714424701679830907411800141651703702021798861237183774995929860367061684982387208720273565047256211243069568291796209269702046700073431671817982634156148395527267438126825615657419117492119686159102015134045522721644962429053273815793503828718504615721809933536661550683725215740432179895072719299273474336524684121096989398140416987365250289850717744397165282870530939380864418846001707211150432444650574599543269356649327143600043702630812662239839806177171760662613846717308850518046322297270473242170283342207201585208148872126070980190250701851311058275645586440868018894871912192506159807243859477368543389079729030226737604086956981989128099658392778234917548514372676702140619950564066261440943432533318377039322047927001650637455332092786603260956393302035589943329937026240170829339361216942508838453706400502311916867248953668266080043610493583189918277770680647407767315705364978631822324270951540344682695867951978165989804078639849991605201107349114106665695411252354946670335443843800966937866703234718527788470982700743689322151139114703132616441122664804339216862413295625838319588450783280743540736671273159181234294857603226695720918886681796673505745252686640775267416414501886410050607095063465686436296872360563786286021651918430232785512342567061071279058774687722425746366198041492375957880179144070665151494442097570852950539026530987248977868202875435273210253199158610664548857053038287622371474906897679586824312372382170596863020611998003659283236787041202929633023604452492348015319445447046114455630379824799676050692533752729876877019686641318296582264939801816275928644312369194513528145617152230856380199055847793324532642020080138110205409328700684203854527841018033215761296547811961369563451821584345769577155402271180371475146558956208328137096153429141203022756661322604105813923061248059614515456445330284652740726369068595121737313241610639839853638126023785296620686353010896279445935089732002167377991032199463735204878687236782484872484379748524996550834552064863258367851282878964773881438365252911461586572212936305857953352178435988523341333565071828720942061786770299533119222550161502704032615649561068778215274993811227697213185042733131623255828059220122040223885978804285753776713638920634134138428209505109307738697183082764764018750253476797963650950092205966418275576642320878786179450785744994982106246749690529353126207189933346158765817068694332372114290548597702390889347423282604460387463299769495162912210572012619305244246740979691185068453557487975520933205067593813217377014088313934518207888168890185033586628043551278805232698809164485986126897027011329262293767738325016195504210593596703074562619564914084789847517912148041845916409592119472120834401028002506199266025283024782899639352306589045528017270332002840999219595152847948415723473773957953742383706879234413962051309607071844644434233216074549368551136385296293554797355937652455987884144241225721148984849906059876654612601386259643900587084296647768795101304623081566513318991290622886801761078015321826676874914475890420887730332911236448960880406227952580915038660252797927945334225394903960960061016789436910782289301931486938106228912675875400451820198709858907093705807299908494832828286038857301064597992654100113849977217610420927472303913146617905782516694317895064140222168083421007973620683805440129472262854536869460914582210198454536960780503318957814356947394759709036626874168504433830729636865589522194603441944623603255469844540282770448682482432087370818455089291270414916801411220419056628028637552124528434062029821129318283829593537434980718317436413736432878851021755308940019024424486919617727275303457035875136945535025551459437950619461257686562840292814509424148465096419127168289049451398067027549861610572546466093376618394324032777384328628145499447870010002372327930137347994025949784896100806214523132780461623133325277061463353905723259400246965435207343215392028865572555851430804783793262889492863734830787981705354557743397707887805393099072258285904568231458006921284966499232936891713517527283208292415699482652428231135895574954180181926584527090845713589506141975104094821763904450393813835084632829818709393418624794053788337621995476728688586066967871309371631840335573116889986182949270588869620532100280684786677131160679639108226262528117862850210623280770155798131258105724217652717050007827936290451043958743350122070350191245234959374468164547411209445505214269419546305057069274290569578501661158653740078530399212385590901582265715172319644566357150642585874928899818596503579979029337129631744348846310375208544591933654526916998798606518264142627169193155635480982415803276722550255981358748569953009532174932542569323662909170702721843251383380055090700773899495418056572900537796385352091257409225095325884735360418865069533200775685705117018569359231827899236538576239371991748487205990040428675373022632673135904672316299271372175303090973197709712604778987570171943384081778522087393389791271999192939839076663570467880624300611058602913210657529456740349054885486060451037890829033512355188497375123241180079848967619642271494142652779154507967026215138841904412747523006973234977306391815666921491705807960369118051794269936760076608454781538067537461674810682353659366480471566897384797024424298254611622039284252157938200855784329749943431761030703689753261193598581570306364910464269727522130189854371937344915078710942794847121593983569453099687001052538636170106427154523108508492789046382108805037614368168412501876618790372274328829063579225582544345204578674124835380773362514946718092199031925103069075347023113699766188297713294182187958682982893837814985831117487868522916667296642758894724069746201082758083164988838576386295982978756276830845833252557736634925057566533688758393652210481961806292700470883189392660866608084223669828368008856367081023927302612413878983934902378476871244539465735196826261137663971004366296524484305417071642879076536108346653865859519258134049445790123592486161223867759092280993767199047707540527412189072720291841050783305575295846050871993442061676175268297509613760486555604725454175841430931412619293802445374589807199559836546877646540185280146610139136142391588458173916615046872395703940504665445594043012926105954902128399236719704128711510668891467516171718978320988164891920563938545600983279866012396500514133607669235720958567361038936195956565301335087508201631953612048464470854271352481563962458821195870146376171329286661220403448199758694239112960354247826793351830828439096806234814914656983905317500309756277568702167494581682921024733711171552184835786838320653821121987514843405479963544670841731282166854971226665158356303860690969582568151894158821065153801461322164475992711740658639991439169500195213216700918938922404544624505163108223806508124116140631931247543126001489389397510404143614772421250832493946876846922136156200393212638923476505779352528185199635791558133882915038863047328958169260357663030065669122849006950854759980549332102375656494283472347657267774302368733316744902005958535234709943610564107637406206730412468492203259388332688468587281644407182228037835886405760240675034153036433210621181868175198508559663241804158386455653793355526646036273549616103089937609642447554248150888671495480863351050564154547537682270859422467302357566516465605759141768631485070450832062828033883332200323716997798679048488531603750676271454729766856932703870137900918755897261221228545177004361851002527432420123050134030658169362297302966535146599466188655625983117167224548403641081030839259235292396831030153340415406279429482643962778547838551872072395398367475619743180837746579837769078704418202221144598924024133544988314093005610071057048938336866784946186619225989439948242266513936653439265583595876956740617759226680219213619033684139737339576306908903410707110141078644660143529817044157529097779009487221265611884974578066459020572076221541003912447428188287690776747036448356323814518187931351442978931779330853037697467206074442730760154148676059595381172355151906862313201577998002888698671536613983986187815969806138569867846988059941165805630548636758496532969428904516418098402246082042156315411655798515099740388539694145557749898358740913774226553844349424812927111226001313197131897107366881718357232026912604919633722180062741811120053718595224400120575162665641808061469949663303031451456372780429214538163163966428903115741577794905334673599605796720879121026031687255333808808626637808774884601811268815216998452697204661628053631314639585650449914548726478174741609991670338488902856376249491375105321427866108001539443985652068099615149466639814041673323235390366324183404212094254143848482977283835925429829723732288837680289863168409210180918163457790366354063501965365679859486036757898716922346817512239417976097187989575553908584320193450064627568735771693601928278807691245023434268395065768671774093583729645157487321335429118224448943323670578656822537422873542933715811840368588216985826091074645606258913339496570226972197401304667720396862417839808302858632317068565440333028177959465001005812974572965653684878953682228644286842846149723657934884441858741797846972265956490092877164340719167416512153556177559352743731028503976380311444116397484841105819861060156576855673428971418767769911874473579638260147897491235078336079948031334537469219229962844258668939964252680478217781485624022205349313960150076543455065628884253557512104682320945448315734416046654934609695403816871751819318772620227226296364859251060145958403052697810050932911066709815420065883521095573019827464753553753871051728118670306319570118475305569475318670387356134248317120571999544036989167245824904365598009876085444987919966430192873615260576842495707718567023550097398541463261678207422753353437193502624358954428254278665033652751797368919023149491783403132658576692331826857641034477159374311060426515444044116825803336489688347337170172700193218261421625014335444418302496652006491022809788516377436281454643092170106376888683261115787638228985142389193212828070190099413156141282278696612457846732957605947313658353215463864143850365576747493150290861442906570403922601646481177812262777768705971450721553554966056828211039539394866477378937474959672050239152476769433432609860606807938532991502119518949478105057042839185445938596463806805496350036944390565039050073632404586414022449213951088526654276527831759550030586922078753800673487729711669024013958967327863772078603859719088579171167040332824689641320162009213456516934528855800966317703657646463923602785512922567442523690369171312315741247053460469747149675437446267416634316825550117015488834166770154029117669838551487768165291226771793348847166519337760753868243700436823403564128951114807075530031062432002850189439058967066923714779823349250650208257871079929765240961701173983177952309309636482022326444612505649992563686583521331560520275326561872756194888027116624495887713870934409124104803836421938735384376697584073847982966561587704709878320677235673778529419477918073286591182638151333137606034147474064493567279535586720381926156530542146890974324644892929596981612698563732990376667258196396454085991088365637150752005231479161817943389610578856980697583373260359066119354676709084069730301432515521539357214056772031919623438546805817781612490857960047696378716757842927871454655587941469873057204814399136667985088049566807444242239556580671927008627209831849663766495561165930743184319822228666336669602181875295999705870885053356116473828526858174816862168958085475625582962761723128819405715192389467256279575242328402592298377408490822584605463170967176189051750752087870884568885785861086619657729107989255722814468988901666981079240647680726213915434476806228024861477986160866022526621078708350022247712585232377124181842804576714210284133132421112131309602300813443905613690088026415395291699218387247313962815031740831199485697593427295698752903739111384716848741597156333191496556253694473754779999189795482568359800465113465157706481513588933598602206906337827269574007513617030494688270119104934027847011268825652394699044825218653007554904828134806474622752190957904387196279795321761239711726768703060067139021193741349808607332197132218884698322389093148087044971385368719728858333414135457685127425612858129638295325855564766069143373729679359096466870776007272612700199224283981552129245740531328853308929691538200957367426632706805807995619169563726550607612862931406300182646593775048578282918618310509751077118727557946910468472765921277428567504138733146123414823460590970889380430885765095787385101431176275810838595768006412985717789073389605604359489550404158276279797395232771028434597565669582683675522163380991889114249975390877024099134262770397459910182459621997866615996440510819750664187371246406097765022182998855718023230071033234476221040665655803544670298563140127565691561717794110786311978060188177463223121406955649319790496151991802278871685619081842389328478617243333017024340322166747851921425354299664598703974934050847393885350511620175632516935889191340733804130184438314125120430042344378770155031389833099079179334140263026954191686557687817216909367824107281169135951741606341844742485265076777787789441244600946144928564387581401606607083557759559720868545033553260748977492992044243939471889149539070753400998848705564494760080258762600878152662307186753146301234971842265375974275082788321889066279940842632458377244783344866161891070591772460318816057678748022470892032586782620496361542549584408529132659026143465499289485574586436227151486840636307153053337349968437553895324065190693898573228687482080932278295746368199661034547645928552597642158984407573681073249364121522525679986054613504989465520139427909935978501582220205833072885078369033665267363969651839524674239644098706995370127791765474850158861216201628665415880181139234315521844412339538044172092057393689715647834359713820945715082159056892622821285107421072522313784288305257229045545107421584947157888372033430051496248415911680678771711367346881162526941041636910658710032211405859240813962192969943781173040239681358172212937919264090032829076414902172238941929637124027136917485304093595179278212740730949678988243485328939892236962993322609867369287643653186120049678565685343621095236983893514477127943897532781554050098859865394619498216873065007035483548589221915675033798063356260822089270972166293963470803828985240988755362693086593845652143477215013114619325002954681236372295814755852335657278011242364272613991178031979638876739242942431332455796032528893793822285591681870673268977530741125978327570296002172265140424874270194799481190466972914282047484274518084966113090279503752029717302139811015788365392310019584574484752138916842367909463967994391756208437015492937471036086520656314444005727391790676584482993518897855018013090829949274372489344511077433843781681640646752850561244193696508046888609704223084886102833451282033525747029026498271368150938732300380814298157989479739692561644512412001460080587829816736271819280656288768668467302620471419527616159017067525876697511133557631219247299767294812963791509168803056118019278470534845428223019156802775532139275595112955427695421559534678240517733486343367292804995085502815746682921821821018230267936323682809855045303223662001156140674342337976341857396615504201923504128365485671600152145440707338271978027334180441146293496919131516870900163473635146611731908102619190834640289786866081376023962990088422452256959216247472235718812287879866248885793512326817034757579189498690360355575521997231931829310969026743728104209373820172607612539179106727317807873353873301399146387812862269935276415582565792108796188275687527922162604784890658438372651131240016289399334893336932350125843787537021590753323364916849959977857476011913875511584150739770110297406770246767558553475029984644998434439076676286449859323746092469085871508282124436695473927876130389269655644172717685294610890217490204491405152721668804399854514473320641596428428217285072848016124224907499364872182978834882581611532907865810061803805045865018165494825096729183753426592176307322340440595654446726201844018612970169112245613159436531555477778525289987310815738706733350469611709203937233773728987105596128553447304819050537849895334876708339145337153069830086821541074828566184570409526822188170465765278072495161040487194031723768584722198189875565649167042554957514487225409781532823638232955172690051280080432212783021744167597670497370889051262405247660563258574385285939454621541631073552168150389442100970485534379906836262847356866484802567553726806965070562287547821197463934674977875216005846047847937969163831871984001174968656262047478887313187606967176532987269097159401352127447594982877747424562845519034101293917587504362848684418729720541957759441205783852394402480503453684544562641839634815346694713133380137740709085702447746811335792928398035141347818727290923179951055302633415399012178136832436769978790762982427623353278063717323550971844664266116420149842923380089274068985030567293947479507179583300951640309858746469426151289031447223330335691254077141463117168720608334698521089905546800964571512624736470862628407705967393519869167253867912526787585376259889956733494895515271630554738265857895472743722782823122862328768093619289206154189987879093579584541619254790491880999033388253944295712849731405535406275612466233179882808903202757471731136167986722400324226891076088326606219463709901310753217219695120271524953484665628052052735612072428463727276004840143494084460214304461853107809600216316894570156796914060569647972229328494982145105735765939453572945432450081278342408813502416631370089463130072878994819411846174307627995841378206117567469201395930127373313910779507945875704844341021436679489194210908407125063094871459171507169865204518469593148704511241945646203698169125963111028120914611444116807625503276360000159587712723285835632439908986621898031177758588381310408528887779665704903637094629368160805526792915582364285856260340599666588385333480878423650485057341754843128890567911961391249972915459030314223720831108206275605434860652386296699680879705704881573717634364935618353858781983837459077783790828146204765470993579102431484119253239098817978496139610668711057035324028069537124312599979883149993953698256791609112522264010118402929160966323699176607207768482153984577160740357892962163388985903996000072588613280125521918153274022679308470069281699740401939056136108237978265720443605652087790773842710755386909948945038219084862123951056357389241180593856395569309046235171780504408168730925416898891687578840061452083062295079588044852094294536330451289260825947540991577296901033737291957449502694834005513833777585085728259980657969632739720247007239825954424983953108466474931306869276782783569955409326380338321990554251822618560125868530003475682389572239900917048985842355334707537113748505623385363725486003575360923553841446715363467426449373558489972136371499695962430105662215961271982271067562598506691218301932737125886413822325804185486641338639404731404710536686714128678916902467502499875441224153178676896468122214588332482317044346689439140878556586058432135544242642786334315793246398238872660200617498417501390876989695469877137244504454934056274279416440659859818020113459963426986196669027845532502871808194643607883550797109676323221122019585722908192298347465799437165789395053054389778984260691188079249058287975112374422799610279710164634373221874056839925909609514398668032486381602502516747208328646214099033064568432423471700814542785909029579787010173423676686283658349465433076460710136946916235049841280512314903150824788869422894507563002917920743428322496301043130626397566221962980554357869028889478651297910652311597742795337653356446281325470074664285486625548260398900427466335055169938634674821596656791413462707931371411384381371611362864625516040913452474094233050639459917471960500852753305571253355077947721904673939708585690096434661905282249452035863149241325861267239353223025353543576072798847976766247451562252516289286339171107161429320174876614803064297166576472660540299930714411744601989213141151135456015137501697243528074424967654348209884500417231377673231177311997091030954815489881140520638943591342709355891328347267568981972831384114308949469954803134321136562345424680066527086984699444004490932850145898520631062333300747787567259925431970178761452033263911474512621277600072739397095374813028622009038186286565963542701356151241483185501051944759144024229850266614628275721650044498696348926660827895348747835258044062841864789635260350431921699695635721510433039445075135393174411733437731574195886354304446184654861720519390093308248344985186436451415803656025940313150755535754063186434958855754762863961179870774279463964682505764259720827394869751100841347566673515425711279313582058009031439956819336014814265291089609963454468659375586780997366035494253190198097297072307108964196659106630035777266353120970194196597333322602421323687115581726470610255440888740248969169444660233629567999459956356895599863260451303801539527743539259151098785987600758826467363897663611965634564338500119186925874889360937129203291545516704244601221739466210069980344621159272923112261200121304474995756930694384508352702427677421481045640700933164956838850956336981317922811796458345448848309227981411082934945576373994989643924163839317881427980064799812417827479853527043842662066253320441482463804840315868307414399621741093404033018754038220581218593845116188381474009135464173968791712117134017902404604579811421523795896287368679358023146629992068764825230597564804417997437080085279828797798121217457483412385350326398231159350010678874946776824753207677926705169439807090443569642745142845325358053720510737462441289277100550676958487671700231660774628437292904432654201830115800734873777168139780154258732430683237830926826676939375095544437446139473376038458997387649661268731630318221357393154187024864963058074698505963856321318714667569109320659423148694719498183172538616645085201520511197433899291269593683492148267649004926668634346027398081562967733983232861023070638181989274336642952611479416331271945079093636964284941957116912379894541957891162877924430706967232655756027282576900379042786838137189579277260954036912936998303094522406019064651628413326125604220720834363774297071778399287405893372678405162881520240350415581746408798839914609546880367705256770636410911856554003895625560837844680297474166750469195521646664606149320092173804903406918125810189714500281179004853615444862326611108753694783584022391336629062015062719168628346462053261113493274622668545478581499511782365484472519988396733301414062909051062917940421179712477346688772268637201014961748936527219718895363529914472788024892135759696614252174081252031616281537336169420973064953855097949448287204895586596694590798570342244061085122442587343559814068881761497863607595748601834688379620610937246669018105421358776058586684823479992502035680618605043729911718339085160358949468209060209153851936323789644359346247205188828368131990376666244139254413668241770979590479945802082807062018306786536480459265628103179388586862858569958607452106394734248966670208831761303805915235627044852829627426818925007493995291177775078659575584169902807117582448601501805792562794675084595170187172654708710763770933050808896596156601134917491696773173379135068869047342559720683408843598347163865469733196968354552313140694490302825060696266139620032824985535551040953261285652697633271080508774741880111074621505495349604415660974560437310755765231987328263904897522626324813532447680118893319368947260619373685449571067397003177837369658899529458098827226794026456645273996015759189805961739402913560352539574888956475683725679668110922634940554068804526759053747984045183725700134799350858805166320140695570532931240450549479983442006418799531997901917957369628631921039192253799479750082751657201731689936485033418663543412604692356149073109200536425315336378343157941952671273391490701472617107082643034997706067399518400529801101634997300848613126794269485223861998717340026110689090396991101579652055898159729062697832174260313783850763608375962543641139963878279612820038450588302072092688001087056420203670833542196018278419208166356703202690567526738254700031834325146771003216247605792176001738148649998112210513742577147984836329088358258710202489584437077163366414783733246331074337579266535582238839576293414557266942535177622281260548049162091994911790293300810710535872156721673044296686029775273251720497239813990907982154436493880927020428487221052773766384644376893930901225344819663958303075766230229258119180105152596927095616049401535022888548637434639847927217816801003944207498054009949302923873667061655950740958940848656605715256232088883019091112887811769581838252614527757596131474752406298734165947210929825666494960804819132933496354955847225334585157234221646081909523740078199728247585620255239733723207611038598266318760651305877956493939115634523579505510802176431637246960085479901112835994473065292543646127501916328169606745289402003455755669275184395832739124398100186974752537764033893931841352052997546658813965387120650585963007947928833044035362648965573463042064801477525986740798951049789146307675400414310340631065176679365112077050856225123327652830613009466751280423886832737811976530473345478387766099770794731567804354491761598297015441431577682122158357691073518577915687494012889757240571785335498410197046623023790287017892543053306849813510788577161103434172289129395212508196367689639745331094825959367617633988656657577597965432749783980965719986408290514697329492027354305799963551223471542342188503281312531537949858113950082039859112369448341629174840239346530243196647550031312929851709322391379755833752456971570675311753269439265372919063183378668302243879474542985836301072016853153809832894785501054760195042238689378413784681984361136084039748753324416765720430754289366634627006696874032695506718398856797445637929519214808334530630705583851331563566213046937022368330476656395606906916211690505449970067866227492328632208015755979683406048121114792177168787431224661269819770307871777178136661130863205699349345611911083353146348535228989111370683802164700094586180876659392282023351526070450002911335474376858858905287268632835444692309273408904827356546200379899343204620144514906153207815463213994217120974625120033377817450128896973142192827506335343116238071852719754240709587701094182074581194413126054400003170164618609257883747788712962446947609029588297922872556970690861348309958142936949306292886703912706819971733738510413721897312879435132016090973421510604682819001008459673509896714092765476135883953389472189613107661092415717723808851680297681665570495108645537440157793298465192450206459873852233275461667705665099703961277831759983226653005601766851044546566980451670169116580018566164343170566843194476954172921030283500547919724454437016906636131869833514069694366015813103700053180576574331462091572879481033280901639957928194001487429470650234753332933762972486375166537826816024508086898990794122193841033352414372139431770305463588421348161008557299022857689896231836050042938528396782310670706483305299709361113552940610639083114861233244086380738173184103102318174251736668451762209682935837793851064593906821501287168495880206992616941997981342374083837542708842033774518723965706367250825842540119700489892376634548823472744016519575203278064250729242738035869013371046371792900692111951121542900121011364841527112896890476401381751463173325088990428433172833056469448524133310099043883415299682280201636561283017756947441137883937262331421975007566324150881472590916410493803985306149874668549596760285900729137423938991809505832486582626280174954376909405820971052464980672062849190828419952062167683075023921024130536809877079239826902070774873776735831096946503375874784146442820794786917632406102874238640055473276222618781900815519725359032866413771187382021447543924491000122565927051926305959141684330492953387593510515112574513886069773274623920206350732439628557899332680823779677976092664421011469072184381623750068840638562305942639225940514399468679477451270207152926078807745435373152540987288177991886970512169824651392665223853866391632611982656259259711224652862133332665416915769708036611240576929824820055268637307488607303718380339012594273527434471157478387040645720937091463884093765294765359377431319343915815183036197675568671207648910226817350406421939019384570833124747801236335458670653598746039342011921813629472346792814249149003957015956216565075469294063145888777976798720718335436596390160613382880511592021898576834340878410226943729191027680600562827086706256031377552278689164370370330355092170861156013109802564231519645534740743700969199403482368949004928190264418729840985869337100314228847530682301038178119023435028300181426845957748182576074323736595820760568571384628268201426372206350220852867485808652081422022890159743284244683294964282115378538233140311398477346547070329034552910661739168867930070134006776985001849447638365442521612183229383587281935529867518576482119863301776430664352764274387486349066844712856322858139918637566329474444065620597683021846351799519749686093336555743823765570747537807795882811721607581288718084968982773911335604233999833724272996162838844046660636603458113145196343327118140599854455869112215041024662686037978980636988754914045073699368748399496404867730529498424952283500796142198134450258600724202645854862025568546330854036556290103783454912934433669467762974302758598433892991738617822155430021380598051883947793988926425559475937369770011051806830252250131697583660140631671370601806207133663098954360730440066766209407333004142570166918828197885381454191891787237013908781477230182246736395345656443197188131651112642893183168412477268974524434634015286945368354138159540499303410834610320032837991498738758842826314771880831538961445465906753020141765137588232569364752232605790871198319465248357213219864670060859212414399001219027749656011154817489402517115051511169713213019330227021876078924537978064274007636317461580070369969874104910909283444687766977008695853946772722382218789803858295262713790703287339966870862871874349113072301830187251556167525698042480864027527883611770190150049964259575159389549553412404392725963689687925103126677447342357417347658145559217250238001965505838502169044692298619248481214988169194155995861517468036111160795504909509679272350344879375690210760392777791318443908429890982043623057924172975492046142665913226285803200126227533012731501112577971353751250139291767220355292790715420576523001648787193457966411212053916612425671218588509778202284230204427356446476578361057928934729227033009478963837672833780631506649068295302912841401829928873958190491417486401178834968040809653872168688376160550964814369020732782580969895754784136481910641746038254824123577488220454437795332397043060164804177654052210863112028469700577544341984893699608062999282188652385654408739967168593603991752067854121087157583968976886678297246163554295075214489941591384514970236737119799226147354428499260578862956312862265522461500009121411519639109177779785864970694540136670632160314125180023868713712615237314535871260060291786333216339377156634641397248670987245956603039026100410503583200160376423843267771077432468330179443194853521760305966758218804493421279123880947885556879546088132159286067144549140848017006667085857164385179972690944303527610735862371421534260091551318833892171764155716886637230971961247224884821812190442462666588094093278496099201482314893221364035700063799882277443898437805375883154713913083002756779809224769586394335022702666011861725975207021325740011187586198188735835373396316250886014976924872250091788467855311065099994939447006474349275812975422456785336048724989891165640901941705244825837551466215748564286327426471358522269249071026087957527069244109933494191799524221401159957389446884242779817977002552823275417454913088750973208156010296454275914661581145528719541936942911464755665034313066058692760232533417869481102527093683458662301428654146395748114856349908554039574571019078037586468757529078007625149333894906827314686866874145598891371599358907331526326396025289406823376848980679793420848424930368326350590416168647414132224004039914034976980743134875539556490982754824447558387532070573757853233905818755076681001328289651446319398943160464582892475416675144070896046365971171771632629635099323804446392549166918486235668314785169423421045219780805537084323092182766015822537587342545329050947135914559333895840447047421111747182642100220555075703348156434046226628050242055957809084110889675248867642409102126884725220495870027834383224365477753044928413757498012762781849553065490938405553195731364650170235318142597441881101505518105483840085599675117194270877355317483377612657078850266908477535217969150179735656614270939307618257908890456639943189231224302568278833015512781871873990950597431322483313507765319102534657475965472106910861093713007436320176769466975076279231824552296142758261294934007349015488388159740846017090140530412565739138754471317149710459878109959866983900168314699294141289391846108890173388164537515092198704484742697794498067004981895177458930351925622941926253194227921316736723974410230726443520857744338394450275597133407833869131707784572916663465158975664301393094605595367932915837494106659517136886897783131010358565906093045003420157034705656426680146112793845346685838915975220458101899369595015337384455046117204502982942000184977317530156264328878097800787109410490362321519330341506068069385582921893458104960068508223476544427813661855496797688602086129549318857633855693297542652211431105457446899045904521255672975177945439968325989934168294787644343099709973885240376684278246512529200587835061646012999564223698546327220791908387663216659832892927372599195051353584564395177518786386836692923713667423000834605187515679585382756332366283672708938739431037432980107356559073137530869078302628742589933634573195369388276126929360493058328262378539249052329169700988112388977434402077444233424936281256989157222482708349408084757079985347663381608875889588746001117848575639662100934940264400242847389566331561016204818055616840600246354916883305130390031479807055961546588000386496936997493569279054812969825559616943226887894237828805905011683488144570899647641977665242142042428378516975934131411829830033819772093846223544947102011748457701800853239961733046861913195695796117305312236735415228160522317123673503142099034373472187062524129440458897485025584180702624213407305209289039217585470757375092570116666040009606757970012263342042647035525158534743600031352625483703582591104642263696757293210316731341997414150853407854072417263012912133285990208428819449046084087255736164839288159637780022708303372297236850332654061547674556989913402219221635990087195449332321563889631427636882950612797059153933403540630229785000420417721447578300743620566823730405537047984108559851455731118271451049659862954834082597975858458665326904607786713396848034177692586129902368748676259920866438301853056180011250512901985462395198142298497223797654911318037392466168921347468637594060524120083376352137292021512945792167982756611954202623690082206197972309427146216769101607231591474448422421212921480857300750149785598634376775065113960582805572385278225445468579036124837741230659276008268885168575834714769811427791855103022381593472091687537705475891715540983429448342383502596793017121604091871726045601307705174566570924239886312226967836392598515917298905310703943338336085149303302357400775584676109709977107464805710138087058988675200823248776555609314321011415975022608669149455828452895919636769248844031365549378580148745695491747627825162626023243690598300053421242902103985083655935064919802446121666595794643030828636684013567884607956912059541311984497210174667921293129103481391091751132352302599237301053050222702340118746556460283520075565338497389829645963882387380726434764344720907807221453183579165804349475271471814322563361868346048549060931635877726195846344903591500123503533837892991518577915239843236406526859005387207053300760938206571468615416386313932053749360522336020806278056694159327788221040861107577104927974406197396965321653192262295953744237562980244132691891260700737817993636294879256272702106577876206302538536444828284377469237990043160913338315547050354931140504799090220624529003105998601450534469561161294022087673859141911173371650413012860623300828087506133914859662365966918280521157507835675457407156147832034781281378830079093285468016290666217118109560146191800843272313852956211819397446786019307278549885958397025369296189228202286657867588644319245077128458375992305437631676930033751295358052354345384124328985559401852397514949657364158104376893415201069469418575439269447284843637503532284612283543640947166757781062642679773359558632295705717187036630968358550587131806079708979753680859910631601397359260247976394225341507811860886596173490028359022391482053208619489285142631845143027100623977523145863558434627187248334550182395248746240621843145436804579283283358810498057339727943090661604572931509453589024787423459010156332534740283371328569067580768302395433063192562422299224566001537292060358406522061177331685716560649455964867929461791328772569099835597799695208050280227233809720247155894732008519080743403077956708975736261291459173249793873240800119069501420714383211429790107681529561455626756335835508932162340286111173161655810452478802985244686554177591059238723955807435402454793289900970764999750829406908134053760418241390315091870855488348156394631094148438673554775827346070768464245356453901004187643502191623335131501054585543898108097190781461188406546902288987800728241802453805635284135635223344764275991582841571199325610166678930503616875301759458919619505240764583719210521003901289413939898012030283387571473649136465424517882832397208845053933573840506824836106109955656819409701859698955131605281734683109086903228735527622150197642097173523987406327508516963562619511478839182417732858814865930480092747246801531729967853196549891327710039592790184584062407597375769082283653376907091989427337840891063841210964064659133893495385254948454970616608288592483263296152850931309032867044656738950021578758174362473568008634839340455445941050861048924462666721900321076310592956380290532428452512345514753895505122840650562158831470195053338209026401161347539350386727126120367702473691811230306516602952108488042370269817833959928027525284328375781598418685052317232828647478407673795214701667778029220905718672782108186250108694853616399099722495395131100051052732282049909052310930840658884698375037244961240566346025317941668968139248245441025230330739843948799424821693983287441471699312049807497942027178788663883499711976839664366560920503396393062730865392430911551159337265079266014986119198757673339976649422084756578539580630175701331117190456617825695469708347071062059240754722201724962572664040814161730068994964413861798242011664635741329325025173207385011053037210504138876228697143439739480838195015909855755025818535426548799019627217106627400643075107410620793868747665820483789096287656657218001320880384523991153556646907274019798346881525905012863915789717711014306841920711030985146104899862670574530112169323732239457642225245410145916685269212674545936632110721844817730678556664614344950560146032330242506328102437083681447556279719914145873006224264587045707614736798088881690783192858589961597422459029766285698656716560030811631303962577162553670997698264115431412755053542090618469543017302502001796189949318296684694100191038994847346873474061516682160093589478016462645648946495169574095697302437468090406273492255131059464399135074465292363725398147643906127108845928331437360220571809987051354049986667949758203737536686743549873876335778446770972473579701923727435213197373325211970748241078179544293282300796770385278557557644477779896197418296930700837906773321133547372492780478752010271378380906200084631474831472329718484963076024907525874247525010941289739347265943610926126952352032276345111847079456887080192986985157473083312626213787954423598712689746174708034089768358128436221928526329745355893598264018590951111913648552963186013268760017489723250122917088418428033025227989024159038041716193356449854411927021594754932991960835876769222981149849573368032735921791830826531922718525013652472572373926588357712138053482576224294307355600716202377635169892112616233580628187838861401678310468030216356734686017716914546073221997936627435846127384772232450129144013864488093661146652593194920218312980997037279770612768533628056670580617565577727040664691778128930894349839027007584970562602642524376159789910157278381416775649757596904289795218029218102216420919813578420147490556722728393084716063283032905257057425622338480685576209103602276345885242540287227901725650502923572752916953612178689258468976100603620221814409427674447216699841300190876295329030575652809703347096275772878359699664770885455769847951175503228333621685314091817526260044913948401018930097169999470742058587284396288997999173807545976862357971726997683362797457842537821286166788095626756110262242720487036774264148110412307183602444759494402300636519475727472968447961019488349804340557365019612289324922344505884007855805683634466230927583396080252562797021919550751126202882036864160217907209620966051446322249203270886628314375241229014300165494514428308421835819956902271641972168733776909677368711187777226810213704370073781699687310276953595351831778257034879762624440436518808165308605728667591126980079540578538982898458512477468963431677959129294628101168705617977532009849969476168434042406012925822382404294976005026112812960953316456382966350964704682177503305195627179278556574730656684469487732618897052383505058513081238338388040920888787129690378129871132656289122706200278538488585250731111633147389909585160533440889765821970698283653499281189376440933296706084534948666572431833736802041007514131706824679541634830850203590282860302174305095063212964742364912614316897188480763826469038744878492476006781201984998223423331850571585921075492627716956476723508787447493164894691819291718348170268319254713829441836803666041939135975327811549719083343371402509675403018284189513205820457764084794801807096352100998794606754884352849075605486226878725622396446939044635658610695455527724771636899390842564235673362830590674731188234871707650439747501309831160405332182666245083526940536210165903472492007731008012899332041749950320160692216897196763323392406548124738452506256523278929453227253638697304498759971582131797018379373187942339365750876049905919415340238456857495410981273105270577487979809365570034326502568489185237872457414215623082136059571896296122081626408011661571823756986078810192942795041838683277273037887587133102772514721330850124060150945690271643277952585059890268296549546348743659958572940742241962310746399426262848219159510260755957398835779273146675817431477305218113108256689378476906204240705603255386659013361341313814303250509831829757887817619710976156405536571377413206846144217004272290194033749664958219034074464471932137000544088403794643049892725505358692281644175676994399927957683034765031307444467758476589528017397419641857019213485507244499687121925648635780116546561311730555941943077886269368052383471177285684275750345629513387024619389030787167686851645219036744705894082341816460183702289334100757143209844034447222218759779627910492030589574122794808229140789690545155666723259373847542532989802059202036925077523036879211742136610913359342592618378906169427591088653288612440570958891850721122960136644930034385182857914580341520620668689246890813755565442195756556819995312642433092077515888006774981391500305222612548402000717659485317329098096111664327910080734250701289062493585586152219616177663755200052672183234877238652531557669746247511562056867501493081601771020066583388023043962587136744994979700985443834809824959940952503619606984427195623513565132027130256595846907245202436956903425342559256964441992144623337088445820260183142492401547726231406102396482853178714147453793159305312712121129345294882914543506110750297707917594464912688489684720396661274582535850588797738570607077631819346762085599578051159385227642264153726270511803621686846425784714249929365389157267100393000272735336669588110040967260339197157399509047452689721262047543711834205407778545315541102623198682860512144576293943386043270443543846123204823528944988579576542181070530843311903030939433004282602974199611525573967663323558762115326994925689168664999848255657666157457085719774865413916529370671957311914643241389400533330649249412253079253350801136013039432032594678521397082353624413541766874723231222593652765737940339547502315598514042446942332030217367674504758063319207868332061244663375630497008363466716703375723349994617992431497230480773862389829759052921972358874720307751360768825828300944953342349325485635797446053681731422642148330227303566457864048846181833586594297617981007233445616711358637295970882551157792377319824277617541939469238425404595189669379046676620789773291624291473045110362190867991882780767685617974639046842119518414323530509061370069186380621928733055430001707263326505761456328887631636571976228703189702769972224571850652963264938212410428847685186959059676883645666443948560989189105215314752445222857316332967736151802576143466980006575231755481016154404787055439835174973145783825023090395524923005494621448217076711574041715791908573023616216254525600377125894137179327208114447175874830264734646038550325280103302091340669703364556454039612212318062152000851503022416192706589709697229189805310286261701295578699736761029823768971907988281351753832575684593306870937544950150576575592758072770071174575778184565861955662170627649231953425279723500687058232576999571236261679937444577766406715119700268539212853116134831910504803295793971283410471363049270856597853074044788037108627488567213568565852163208588714572345243672654244986124855867385611372596095443818119332000389876962260817242007018097105591207971379378217347507750350248576826159310478254834813501237781015938849389417401475910864198101465879156458253673267533611614708330159228611763697667833963146444955925663609951314374499153027221128446333266655747181048763106172729100830268439771811317923768108834101624360738129497434009146335425477674395865521441524366706138570078066320145003159876778068421076826688726775285175696545379293820837904614139419823203347114429604176783062341003164728919956697522097180880663255665646601603816382515451340716950154008789600991032473487693964506760612258628583330769370260305230778651050530250601794525686460910270421492790989146669318358514955692641105310972961039116769849961713525851445111287210817431502662026460001954314135559875237576304168430060701694530543087889813955081416752461447737671090525578338200982853249849536940930423979963829020474127297469948547481607880630841014875005494555213504311036984177613208259380409796826695128444126705746654813937795144987494123767014044818619300074563395689241009850292706127624610210983085909699861178543219623923042754273852358931783220621785292928348551175368777712870961873596649368189045728131477258393932231047576013140038613557966312037226959137822688521248759402650046046445615534576193273570184380841145940119900412032269749870795687879973483745861442726002052121819678071996662397022955355304195236493268474450565542529096678242293038018905693012398684467654044291796925621549853413388587987618760921093885770130457904218611631364659212331629853618528648332507105239219414762691774661326886954807961387902047867429591136279391405612890841138219868313820685817527181342038741045222285202608354206566681596810228288382488314434424214818462411234430935784050931012003399192634045665413528989843122521768117398010279374924530614313752265243506771258179684794309124775434672870125786464291435961586165463747748937935293233456005631895725991590782173584816148096193836140622453694343531133490867113789132466854084219135965948596505588791356362341201530994560967926129243462616155974311324220291824008108874673701919698697128610486610345633863681182003598985328463715930390387142728447951465824764001254841600494755959611083700790229875801763519724601254283661484475803075905589848363752113412357346285750223644331045815593161043064890946091876510659844425332047152635777482391541335450879953670856538785161908930018628285851705608680257965949331687183187835688723361804819212448798409479924996976629719465099283085351807374375883413934570680357015817506974229422998287164845441595962642010233555215779827116888710410986186205312580576092118538869451302091256464962042331196252049369422661027696113046645959224064856338777663236653203344531194231348140486043375949112565356437374227027991675553250153163777662811004981729745394902693125736966861656954117141505634225270866578199808716228040234391791607458068665947592458860609278425878514038457716476899618340724303692872316220918665832026547560442800827152316974773901685376265830698047818802573910089176771869759746436525611118866201716395659861341630630678077052435831121382579953084045591124674934857567221182750978203205237948107195241899505373354437666731770747298696416438144706851706869612361692709191958842485475971342370423044339034912890140160186313795733872716786223616385100127812891743604003404130793728472176372761609062813097130295916060829589847121695014769916268259058301613162625987051837637655404508567693559694967632909794595119956111328083420509829580433949147140165195430816944049354357565537110814070574634432404674844489416822080545818241227941821875222464095855145519317769394880787128029991729722740316604712554303872875597186380193511163402945374072239545747939217118313074377109411329783338168716397004176913579967509743448093891071005385453770369597028200541015159025688559897531681713035851664001529517005878789063079114431540046604999708816444430401501224229928180612731276355927247602364718536251596185031328517084656978576486097353518041484579468900145823953547528347906828937541504652504916162911699995825651333271105572877886773301982635834153352811706717906440085928418653001807790216471665347574783206521731014992381574620584851668945487305747696719174782614407772299726789254953537306983094766748761828359785461057347911709678577599673820122644213516286808073261686801438875554473109389398642342629940818114782232010407598129625317710204100939123819616268822745171319562431129328836815603048094221405710396486271961686567422874752539537029552801110905190442132466341405956324129803095608280966909063574580241088300072434556344235977462581229457780364546120747403630325599156927932203395395296651599079491117150454641016126410914474212251073249724579472095520010937745993596614470378101307858413681697986863716006021209369374507723832170142090559341090425671875233817850069955027529246717533640785349826800088237402044399551661832167984117998383684454008197094182703449195058687656811736606136520290266602274089842996790466571788337604948180270246660696304454473427048385410770018790994870874074771357477937653783699486250825951161528657520742871729187752976781887182403136021924426974378079709062252804458235206574918307728160955479369575718944585918566498030494833863459893228401606938477365002308351613910634104699735423000469407345261705253736330576510951708161251055544389893840406272710787801356304745240918862064006453843087441008838825736432810712583828716347009654929423053275879227822325707027801845100772348413776605886227892916656593526689906753410430197181598365564948514215939561389174696407822446375830833294845757900568716683319510016771277974337914509852747291391844100074757662439944741034150920023691459957297132436640899684886590199766389719590064621347906409979216214777207554724523171966269740539323963392815293282003710613407868159748609242640606998768464554840212031655003104912759804845785392580209654044291840084773871608755516962571907099552589385975860719431773898998130755416697244137166837323525853772848682333098311537144571282315836163172614363103145526570015757104532755735375800084681757132472736814931523566940532409073344230107149446037589347094866885272462909669831511083379530506669264043528736484736145126470767979855602213921306170752745533874500925122401162716338753292832740313863144367933743656329630198776435227898782737887395689392719919500832292633691650077106657554111429724372156548778268190640159314371041544587794584074314791482231431579771215041271951578778609338834224453116902981515905588940509394240794594549889841689712254813298438322281271534367673556779367924873874545238107297324854323233018961095602937698540540489256218641899981536460595358256273255512270044022381426810881155846496282846815084177377670194298292757020201627908447549512108065445673321566346584234983193573593210596845700045721250074797226578966787543640960160707703195462307682405245558696568035704061983083516522646022879827942556399602086830684402783381689335122100858111172206208589602768270018740927287790120030689328015521542606992326190941590192080223017402596930462929879591906584605380099823884004319267072554590906924089312135461621305855034147524325116480301491505029402405810004471504315667837048622964996141778136871107313052430405566320901725093098507167398755020094348870513019383406584217865526478281078691866046412131464368093766799100585059234083060619968801728664562283816369840005365489437095990155649373530839936602240069602549796128143780845057436603744575433136605989161257166673188354910068768492039244961777983422389317871434327807342643367224940447939780085892844953214611516109266494482241551177413599652940726040409153229601938784887705797381476071723157403228901035918789052178875752072994044415733617748843745626376060347657695749342246811999182444972725255308142937352731842958418866289485146798013852484423952827162595829944515469597494863372512359342050962292908247076819808161025178506909482975699869581978199803234711478844407345907077502762450655349737923460372186616176411586033268655389108450388469564279202497326081836227186118379671089305411167614027939843890780487383873637271576764101962635114187359303724507262962986183050153212551192436145208417907592692084276252169303285109211606490537217263864505185088538693396400047631782061998902376924492790095759141170480028899069944523334828354985002483739869537678566993728711685597443014965804991682546577151007574554381943435174078000649116165977090932654266946893356038768729021561113048246482886836266247665355263539477272387444719083100176079865644584306636005275943439477038630055147238159252261026125505824258927024278181068023984393648130223971044216935800956049407487966440329541401336476833766464352756886528820791626324154263717149377863560381907927895886290066987052006219291022722628188919389244643826390806441003483962049089524027921399812449010293896837865776506396961129365389243408800406798471446216790483742301463827822609298814297897854286889549086809231798553757578352273829809914083594945114161102659084695863649706499715069299616683765955904571434943953439300329367279376649319118994461364590982769642697412574532683627104364598242696051271865815385149359782836747512554227838306535602873026452524547415924463459157029072982420215063428257893246581385808724134206478969399743976372650003410804547458483504979313905966447718102521218419924623570061176758082799220491329318268421831250262687180921243736784485704688377293951877810996682351881088092542946844381543365788824361178961658656280902755827088919151713881603619835059051984064871447270416434217268990337179257115812793418308695881270461921777145939376247307635725308129380230665781312590772028132887837078329183423212428646648934156762473878112674081925379713881253365639852298320198227772558082337617846640653418869831827255119221067528329399151668512173612619520337100729493988453371766214331343876594977376929432726328925042326764481169560916627670769394631918289561660110562716049978646154643752840979190516484115403356836134130191061662467467581908999634191078958485617865298705330597852743778703246819353678951215215381738648029832751985184620912594425305416371050099291954576910410694059791653129208891232928058378223454611789246587328886636094958946620262283444809869727345404411916378000122989065837537755259971798756480657661506547192558617487412165037599587737663017905865074381292351151877116359235306261025306381562655984298144467666189288117524094257070025838633269956468779275696152952512520749560981419906627981861308148101196863942634733164394074213255674959696810264519683463619005943109630702560262472081774253261792640538502778128113716279476720378400655372666715965881232448414562822844624140024329849014548302538331139140639588225811684115942424183348288300071701507077189430951572345047397811128595498435773499887947467318576052322597581145097979358722686517123252790461448263694205959366227639935056248228121857020470456240476796397452542577409276533957880349277867334625701056401019120973025492067367781149172730050158983203923217808712142782633772864778802067147903608949875469306039654874696192735547073544886203154830308827592927689195591933292717106041205453762286199222762466409494498184326560431557699084352517775848904868873340873966363014102585087662748143148415121431760815561142989072806239024889551148541946533564258276863433910573487567922507359853202346370402510674745968100711121140830333327119793168608337337708426238628703989166626222518641869030220755279465324963341954094837888689098511574362286979681303639116889696990950685936853615791289695993564660183428023724276623286507008502380138740174038466875516894505579106684131826565038577290618918182249240325650862278956382555024217579519892213775207837265177750411361649285813511944965945622287380088199646101200059448291394889389730817390060277808075909889188510369009330791219238194191644959653903303531212863278785080277460928800077941755654015860648144159163509272515228303133419663127321110530049098809541367020795951253153504785725646857981982177780124743250682112013959438019990643431524373266163395219972047318893023491281165631699830957221996657946758619364281183597643272617496969141563001716863890234534503234880005281011597155373310762816840470524248737434011196325793127745497508265485350894601701709009742089656301443873612816073362140640368559788760157639143284467513659792673092742840277542933477396968889571032092471562589354245008042546949860704323524654377077174313669319628023337613598784984250467811491442096009821552183201091687832949806111175476940160219033626087716528895126050635616368266714977828058649803111221595161570546629387960783969902094783985305446288056055838641470571025131341808165462337726124197608559567061696898382128149986523774549294111059513555252890394681905644386044500082995207609302228068103516918789516896330095330308338401278638639901151300405844721047875887149125797593820460183317740075986074605494799594302563624238106548810726475192971584545263919024067139678690987202411552038247400689608758067473162267523097665743684364764757172676406313201159435202181456083729576534614673112617899290283690568815220281866288138187033518870658926490404281308244923918126036628780859437095707390897546514376439659879980872608081320113079737525360042209261530011785960275003458577082233293539274627017734088220658474291969949368253607694578947959972488856102229584813160159639677900711285187238167659156935734198576768900095979327371957481366167695580732515176848903099263749850693855741003857087110968834894301835750385528056819883549081371069989116325414375992652336032676385880610726990183775640812743535639359197867420254709598942548322209720711852350993775421817093542005999784121721355984679052937821117178038323348497101305983103064522595657228052990984230336040895493606936797561502142021380635600682217944205492418954112301744667239185960897443897204915909430597520683384438653119505209952609662200401846570327522878658065497527988031252920641992322670252981691733755253059760918667786481779265284125643226390231796777212418683607360370783692815737101021216712571443119477194106226397746495508447916426753158749657152173166591872639829067303778144907615837014766204699664368631536651524659018963162211318222058697752270946638259494996928759181556365212763600794920897195417565664928427635832934020131223299848783538240412236185497802049517874007621262213782769145257163509092686247872859333662577757545362744440066939276979776267221809128966271201897535702979659400895046925071719278133004308824559422937532042818699840185008210863813676196052107564190973977732917899796105869708948693026452117080199196137960837328961108630597273268202738393967036971950090719666703789007856075368765208995230520340712844596758988453655600318004608365021540450459979087525694794277009448312917894967302063843010542799327748055286318048365262904941728702404871160801107925259690811254237901210684838729414997676803575589782273294754243884308602169894725956574114085795382945292695292215824142564397879210470314452263365912499509596022413478916848520069175208733495519853319939950780883955140928983556406772882340456475817056300075985847603118472213148449804547792112881963778890048972687339690709606909750407290976128604411587606813952353553163988098850301200339297905403059516776864131409491767435800249359811705588000594160156911319941296415596326788916733099506803962574150484787772706324595158363946382146102284790208766411128087149993813013492697568068349527979144750360835039159863372714791575374975780739929074139405598999625836515475129159568045162770957646173781067589824729610065423933480674160662015504778551063039971370900937268803430400578317316528221088245682114446482231241136657426976163673904340864452004060150432868954775614261015616036849940483506859794286658473651041701474166675083930115270137496837991077701767226380832304420229584163853498071227101709434476539538686766870336653762986861971087268182653635348378345852612036196391014478938802894894246963593434336599251478829743708881285068590756483687416142243957084995641817607861884079488962595937330005559617623525293148043495214361416679408389368243672480061260522983910235163892052305352950851534884040395400175581099352261407360129996092425550606345229059553538733544257658623030195323672312884700606762154934779201342499516162021633629782482499526899389112323417740836165282048443708766166382061537753251033394027975441558705569532547426067698161799305029598400924277030341930610021795520215863948228851857957726813772368521081372317067585129872187393048722190878328952608972712118175667087420051970356505124271819345973305382872993984099125978234294595762498804360883431584424328496875641852431152956067264646776137262658235335145623314324835351520588173964639458014095989017820796545852880820035711087864259897176188115090896865183765108117941999434830781252554337153885183909096091985374271189315741749470985579205903066647948983536897797213496789755422113042208843381137424477468117910262477986695813985675960901474734979184616495325182974945690491883762267884145812842510860369395801906791737209116500007212281263522097781886831461606239824395188031515292961982432270503941260032442745974664810876234098678550261523840600455048176789267284328192718318779829514718018974596277868324133253751752380983300744898433025267960008169257367327402923129551146801137880056434522319921008006080374607766729962263986688491345243261238211046106792124188590008275013221006849733210777256202785694849620658904452450742509670943803835435101759772978641609992894828817875762758361451071346279058448278801736474498146603493103198501753502137968026341872968445174713079481051242148487704059031375150276206033133787502088672632720368359894774233817000216970385935045394020464957986702269984755312061882746910831065698894725098181620452376320393480706183520769900975796649854794697078673986501982536540002163213311770940442540786745639148327849699675301027457637251214381864906974763367240564100113085404136670183820638074375333203248771040124848663204770615405752060003603308279976618566090346549479361067672531724314910379862557688612877052566814657352424552182605065085239663813565296519154023342220851714907567398960875119083760924629806192959637622424996329730248701443209605690982803475863898803896627536975996425470841797704313427871460686150184271865731897244566353360401328381985126233414866982958259714053639974585314009862354719947661378471603594800081017230021918081016860781182404676364254728881685912942481266254958463869252887551901038697203605002587944344624128892264765902667280171932175016390386783841984650130456506066888076863312015502780906714775292011398328406137140053569385533607453100941183160574429664379498248763893803856941770152433407909600140523095832338899149660559523289151402511733644636245337282170426926213554105054925828730703889492664901055328251586660054063146755416178906033218347405691881077127337060556109296605052130452217664512556584250347325526644408908684734576789462677556699963861182324101200996565873813843419650330162888544767101080054541290055851153617718331854267120235676650505552394916786122053592052889013639525154818900248832781567717717397550999600892302384802329702243211828098745005166262173646482242565041441178392399096710963676007476975687344449675147280997148015512646874663146285950529921446964982755256380552112907969152427298450394722321548894786865827729159251172196954342515075842114695216660242571256925424710209559827316137250888708235757284803318998836974337134264500667164752904802138713124619045064848841658021545444958433272337128828285677939504296741569372318149388452427765807163058430456977871806950732412128480913089958086870417914503002018420400697895045606095805646547289178781957312469942004309991870093558062299433874384979181582999563658381626341812629308374623809505813072868403459878551018917226418479328639900125954362082575520161143221912417472348790536408186758412415206884007788459324324432679523710693600942406040598112606296737536228372819992442208511949272832809668794975917690766847235260779715572645796345057833015052305100847212936186196269520902668693418487359758136363320974044610733983920444853530291129498982258811388135493078548614891050772908849647275711956530017025031718525984937150018702101430978574581181959063361953587471477821617631369741970032026639321586747471853653505521178435283598257333129333941622463284558093322462054406917886535238447704635232509904727140016418810171903852417817162413538178710171887509398526799515971033237798061757729205975966394111902400458086780944357941254953495465507387471593082492911187808525488557148120638463378510663292931197825975469756138300240888724780254986635555872649605613375014640289694817338466299651777053572537986804548392923420584139668156255769564162671584850237939979130173148453785049288491895466996927245594024316598904584512914231052208554477102896626882243051765567919305219080272002738706367031529089786413531631274715992724927918883656954144192707032857372595985309522850957470728568889667972369921091036747011017371347663062556547036801910752992306240317610870723055562959389379978592944678772413193548498734937875717374796166461771888528984849369205225968539172411783604276339328757280849671692214229554823341043913666470533177567019995211719002550807988310572980622218197696488128934489939515915211171181960809026876557548927650172597884640832292177494980191051972406204175744557581225337961120202287456890979362832357300676487058975260886487256097614044022447590673488128061238750973634890615102391838693427917506577348526139696929458728043311725274407839715742563412747564390743564884133598936909321440278735224978838324813313303641643077909193544639701723627786642164889156049793364343585547395332473946931466394819213645144675716338036008311859394970409844735731165086535660900052332939040861677834423078722468269722556109722392369925019691032394940102210471879007366491268539875713969234458978032557333703299425598524374613485621025502683956148822025363755726936503672612658475518865578247988435493844961110312922159690505990475189536731926510096422988507174797643475021236075279824471171255368052673248632765947396057820382395981361487344313379162424526526097906190889077771233804862659276829580766200721755807937819971062811425106798483209811947155787035018894411107504037589260474597075691765344216409494405097165347219103225316415001887775658420199186918326900001173591915299066454422824381101190214472571040763506650760488594100322850090031238448054112402243430499428604748188620632230119598610897514673784520777708501802526054154753726800627870137799906886018135893176262810841593724217064423742164507535243509452025463156305695438507267018674595471555626414147566350248151874268813188696539404913454656607040877126250537047700943913312695224369621801080255949120461207332003295004820324071987532581952055298376025186822432657599966723834899677042304775757794136059528549102341904522212013709051980952673355762153160883325868304797409254356108678963912848762158609559539025089264903129715901558883147604974576699972475586058680875632916060209909028016482035014604294292639734732826879782032672540983348423020496403420755510507950844183763127414526770418999136968656079724701671311217764242206940184761379753429327739597814923019332082567216874439265497843592913674703141249143443014582535791082284670996073299115466040441459309059116029526566097708844248820498631108684612421151857903025050706416754467778873556840831983011234626397850984327535751336757068864924378037913932927137407896429619911546868971551484542824555685185355433634160169396108398801667779346502743859364720469936320913580113445140706931387902426164369832574508198754046047390354263654166759731735608320832511364848785086640818162823094999468127201235688175964930000303165295783684329740872085319375081824834947253404903789950349672812543932031512004771816861657805695841129458614358220399034207013663908506084498751499913110164027524156220478102263630798814425216238775667610404237714193411082342906988479363257026189297589953918100226850185647010187979910919502176455070489263931838901891133489842660867304765650600307615330615588313542530856171737403516682732804140390635293235796841038540713204970434402849999477347561647560816843792166285584324004463887565361925170161333059238327819341361613425868373492229914941606877781397692257376946775926153362536758473838429070593916302467650450791798349493319384311529887448084268745918990505250422942996912488164021340696833824023318344282057081456410504489160312429274577311697175892078799637029359395644810763390975208542171297522554353844355354379420707234296106132273494802259568283289172042180101346236226157028734999396493418322873068092789626392048923549198868082666408845738527866343830863837386994599872544397480777863869230524358778490809335298637647118827240025030941545920686757555635728469249810267888805138620671219507470826204120265513662484946665834804108039997561174378737954248281744356261068268083778849427283044516345635502760664336661784445688446999688368704376442165750676039349907311080405866327213927999859282173208131620979279079533054531652362502607218303600663690348819994135967040242560958303482290036203258752369852417272317456302511102141541244400895977770248995170159678222994954185901078641873885213997517573165132117892989351705394980832128302944179563757600600105868385756232734839103369875009135462094684994625242808051194511779921536570906676832973547969211123101112856342898759670552054947189071640465266951354520832431401999457500220600431105678511485901043045611759983614855341704597134589263171508259825697146700467124995229254833572226679676596403413547914193517699430134683018210318446280084122215102676691392889999401212267551683140650656980789106136801941274006938920712304871517627132656505711340378269842682540208730388765087712804286168907630439526397382092294980560834694009919759090470826082925606355677613727877258585465397597391152664104365439745191458803049837916447325720022139314634232902870943698576629547070940775590498153217766566018625211008902832011359525891025066507678482661497842955901829907314926902708718799587240357156906259493456116194574622640957050578051752272623832190711302244072109201220810426251513056528997334222470164287015267001392992350333661092702923507790899943496919805385311262060730402484510610160725357399156708780728583517276170575669764407759007674176969341136898863065581984010520509649642603169572667363111896444413553285105603304688726821612136800538102987180316770857953221245728485389263920223758096504538461655296725311776237470907509603393051318800712726243370004665257196395869674337531355803203303218147843300700410803200963653508749170712312305942391636613812347577378714511606195502396861218990422456097065450066319471770680132709327847035805450364853695429688334515794566377266741408859186331576694222419274841093470445356401578999650861383181375121909690393194652305376694290995165765304164925668171477208040608620792069992717033417014910988215477601207476609394641506897428168573563346360428663407543171528633614707388880982011729417170592738650315900692722910134429621122841591390560836626447144841590292113669872939234528838679450021174689596938669352021152174172411133748973296509271477871908026339226468654628890648028018407264227794125278485605608296201473770192371264768158286940802013867204738080760291937380493598446373286011272869240020601044498135113858320559402838639183656693057908769775061305382217130625863404867908192699178011548772305726768501121687940767565435758841209409937195468626293925016117440888095426781547535358340714485174645678649827086327896978641077271496357120349437829667321779475289859759344456305351392849592070490457258686373241398084721065949978365468651273429851427660905945286447050745780621712769121326691351440216867946572255602769710311766838237320593783889538552552342110882540799109206743375531467344999063737691862258288016787349381340543740916114397637204935718754970933501550058352272132688151373461067890351966528103814482449068042549157712403370986543186455700300072276900124158688195941586015792555195460745492994474480581986200123549092249684431052815692438432146304094464703855386039861324286245334197180344058593314569139931661389466845935549623117124193413207305143994391303337061670199821016566381895096481827136347526408253287171686622487893575789806142479968059242358860313194524255112516973963046024582634121198063627342718722121246581856517930025129320060261544345823296254450826599250628739595423176208821036013274553892184860648071784218228397413100148285438357652625327693781819434784683873035771275274741230890089919158710141863011061427024171667426464415805374735834704526391763068165753856565560534167000206548799693580902229120259858753389347464889512438482035683773436496379270052177454054854420151485722236275562780269712898440194519652999279646390027190063733974619382971740883595046688659980908408063723064529603950911031881061996821078411258601744262516071381128073246262836098356618614822556924941421736715144957580853520158644914139524200542066403085247145639984299479246030115528136409953547310008901722206359690199334324628789316720920296255580355145632047206316404981677629058970355229862090575755834741118721853992487662698171879048227880020414488355019775466323127150163634584435252382756174051052928132316921675506940011613257903704866030000658337751922198831585597751954893180075873761716888482564865935825086418687516174871070937634624558227203955873732566306698667485751180842107028677333344857214208358930627350732658082026236578457015783712124532522083747237745755845712444375569223364590826876256769807139187339411104443595168148652885540635974490439325458355408422701937482878901285759117652818827149391944214318847903833486463778683364419806584071297775043166562264194431124264821889568945806379438956198408500960751948156750535692389211432394282237284012221598337151796817151755498345320799756890793300953112276597485739992149998895440120803464114364816438177785749677932283470983586050777127815147469562871321438414571751595627298621916394472788350906937506945943984003957421022763819002057500336739725024547952077687833977492431653959118381799299808463899383893236975071681314807824824814631571089522266571298766644379941406836837727528639365792675995515401942776997043055714731877257651550902739565253378116185321364189450778208020343412145791742373121043537810035328035778237640635456223609274057926653123376491786761657452831795353766978799848312076611319613945709172918424611005372732419981693859730975291957219748155178626623285450005427152074327438217359053094014759409668316324885975961772871702177600189349413778643008362929333255795656608807206196775873867159437991764787500681764214525885550563321617580522962220210466712415749607823081285459609067990189561620840892102549860147548644312770106675094685118531170353688419989037367779332282745015784857760953100295963376666956866202922467998745212885006601424400148420850403229246416866305966110115978257889580088334839259979627717355480768502312127859490053929629128930800164385621948897055103963994167611973997932888826048643872063485659732550472417438844892181183125132154371625442205199101164076232347068502789500924146487395886170680192087948701881259511357672973195224007158977816161326343082664168609147176489709092973114411603684360329947588626456223373710421562386657679042440704010533146126860065472165717102562522563543433467107432756402354634725615036184220665414310916364956134760544276627112877431558863980259534548623890562532625691452173582471248434570110124034928712761976000393725764106839695590813460691649600231117140727026645745245050367288394536633337462078333693455164845240691376244873196771910618062172225040160340234079318790486733713685637868840745638912866592748069857595823079177525772392990312978407857714633741276919741259999553635249210095104996660134375696201301215575935250227754172879999826725477649178901173512856789705062875024430384478248518261760712986438901909478919617394082438387969808344837834874781997298025943224398012091157047920554360508945102185644487021286155874447594475030470802608153956565442067491369292651365118299667674974860373271484680255435997048486536593064355981332157062127915010498880270862723325785370778707274781746572496595696673227363237494568720992479707274181465422727728583327751098997345298317490081442283450735633285476503806685370270004222043794991108737313903830154430480439342231804178649273929160023801151217964941940404002660672389068418789549889228772769659166146911731608864117257297208362104266102230629566332648807285206456789483521153458469822214643813049272811763674487479331599461584031323214801529489487298702476874403806721145407794901088459001066855840651755255900617759165023147410166791288494226099552462632293727342991413150792161324456754887993067943202702164934570834352240073720937049993309258646406114080233894555580048691037129796236672183799481183538348833250457551742222373733000098758959928478663199857957254622604333522294788059652660888940920226071232899984516562248015067356012388056148141857287200763788130598098987210077074325943454306303086402524324154124597220624609690446141465133727442505148455393244546142845713236832273503175390164809944346984364841237470080641929461830971294639813423451440483002182681305118495881575420270427569971190187031232743719726177692719223275261405309215317028704586107961070777833132379173113025161932190317565452666190284010114570881858635923302818947473162362022793511183218313281296158981962212676648465025236614086785439334228465857654348832868942567052751313965973313119057837974178711879463739045192005619708635153736456376130999067743398392445080583857805321532977242237319398782438880633315832453576474395212898361160698474223539134102775238177066949539164443814247557460952334018411768852191422076627372542698490413351437806207598563615878891273181993295460786469780638810630424750921350581627111626403096337242603749693460634315162379369578077870322676378004804679007683459679316073752095928907300919871734960266639022805269501125669539443734561405518527733178507696709275441947733698170094900241287286092504990001089133786239580920345448026622011196318717827433851214039662470744167109678989719184876676549891273948156777654397694494562530363147562714044151643750871640992473437045825655784223792223455433007640385548190128845464656250616460797752183110653263809825916836190004804578280716398799960987809244155525412190422361859908011692625975221836368610190031929882079342104072551538182529039613693036158612694768026755143350748502108202159290187006493736959590135310219559544602995624142310258627387685784052157444941901089338350608073703468156356982213391012906281375375449042408502065242224331497065271947564420090605765459002938847206675947830848726739039388990027483242229327921273321473192560187981403292124895734278629468318360115305700481972520976966993575775981776088598023834467660733266312348318496494798237562331091711851924530518007609071740957745079315930703273798913952461772305129396237772820068600234958218629296317851734279042809353503407347435723772025336163268146836728188565237813036603947001173583199153310375070995492779689212291195690860914818240494875734089843013755570742038172897203394793500998056294155543479374405175828770499722064092377201020159060889457214575134306694247572083740494623364197976783870814434342701816993083652838443232133984624090044880970636943023421385865870227461571517290931658951321798936304180333732210898709919988471246812629865848179466661466464532483915007309265691862799776164315654127076498499355425307790553176744210771529444283527671044811656975280951535285287349990156529532688096876897230176064591975472273025428595315727108545649827218251779285761420110090988999343673211845204073280824504787736889494811601988363364197216859261162082620856423068553415319437121309230565922074423605809676595461037072420564691125249505042268042290133128878099183774471789006757721406428473838159289476982445339464440052195785646474257102769652933705223859577382171209669975171589266685640425086856453312430678744651977586036023969265778132356457260567456722933579844682191588497465846083121669658656988595613711576436907230495835421666364623079054581350037233159449019827779831514098104765938577597712627189138310721685639934290016137053995766650440574620369115642092144719969407505354591257594862322222575462307148231528291024170347302134111217757389389207083037084700142130481731141935230932112176069979561913484096650428123412130290896741059838978800706279136616695491804436411764297666794004137566816037995637476304632974650676406283951316828837893772115373166382753529824020766320639265569778526657781301795618928298313599199475556968045519952243028548357162682760052089979584357382300533939775567053510081739675072411190852141854005090454734964761562086862494500662065186345194373663703557829996506054247780593611300015556989571964122070453963222197966227317337095210820114353682821126084463318102110645463309197784848398935585573781148913056952805251397487589007905980990404836586514813647876728983819782612841473340382447999064914799237026058955485007025796810361810441699389136183060667201703769424560995472467925521706294528390602737762194465638761463237755164612472027988980347055231411597900751853093773087225618991647188773337563241946346603875764309888041017926840340726235729681018168373627194740486239719009834856903807390777662719413723082579460940768459858231275587675952644813928251986847192411435653847169811615739767911113252561546736818794158368474134429544262347661458647781556529683916331049110315326297937893615324562998299446066085656136959286460633288577063887828885603330990986809865903116013480660426517150435802180513769016863097503968434108006972239467051279737998126292905449361833316753509292722946012030093861972200388434878464993190070535342770081099149505950673388865198354488750118318017567856989339177539004902388314767867713595371559330856873158997033443626013651569780311279312842587293501225611327778243018446652582847680215422484944155789403532213006776691587712823955405955266256853524544590018907891560472137540415055899257175873693549798772922043259562354933167542714565459549760604703748936999328542355116932700916731128667265345733656169919940842817298222254528939154707094587834353086628115689044540447817093441387920976040299736421647533331433661357097747011884033950585039920988660502303536567327332904501777805916150483086091579692093571034300258102628030415261166556910054743852254491300847676428302512749845554523237431427483615036164285609334818693693330950275261543096438584335088620093671486019486472140107124928129285785542780959969669689414341734960436876913224221636318806952703664601515155028653510177826482750739292422972065094511723898734852902428962540116698715434250033447343019429951898129762052529932407182049585813543555507836343602913144854548513934652437501070977343561052830171243106331694256853674653980070311944499034876196497624081464729413327040247946645080359282022461140951265724544408841036955665289718564986532921741109016880559987191851828794639875773967284790919312350118572107814375442472502678085304184728766666447815621232697481286473304792614206863358445506090344729173936500592262912405888126146280426757430679311694916244972373179748420646028214356393588311828002510829088418380520313677415255606805537054588413478970152005674816082142022907103204193452397756118201338713146471656329124995742705689419876555288830127044106452478065828158302490693523594847160266232542437641298606791012095065045558782425149175065863695445527375058650261682977203039860166388747542614995837526203662953183452582709829869288232715286241653756105478236260074101724065571264244195920357074027240284820246424907112439001362320468325525857047684538146740782413830747092563492590872557880584284608460524807798955777141792040165147829288582622569052853770965053172268810061419635789305826705272632641696832483098019043303827265852795543035454763747633713977522045941400207721237894009661297405446662997195793726824798262470915437952157352090058623602252094253813935147899367932716282802791392131775084165594305945884063558141368384471727885173300434853202616006952806118902656803941912423898584013979062828451284204268191134486856137621352293231500197498005169863857358244967021710479013802697782210300973996184233421933624634437732226658533030438503641025310701707208146579806177182264284216617382365052103888480605929484159038642099535098326755487121138700979457191206629502356285825600204629937599665377592194824335680528461259873862488542463058199618145276619467139297083414464868574524672221678840592050394328242007195828423339713780256111972088811720861545252462849043905341423241672164917449712559446766231786090091008257817505483251382386954980082104459069035364190607313109388739480192920420082902201984412910382940631646606816517730787141003985871967895189826793135013385510384036257374367430098602791426788063217103863624557024578517451695017457548124400773293333390029346390620650314193035717068598075403957060024621543450496768108721220037524839772957931890695092298296986456971021115952199354955811775431046366903524573226471787412425009167452113916395864636949877830933949855760651215028517644378868791507695648989528387027115980558742582212413375536758858626815793536100102147494845415939976822486029965049581161879871567638197679778672571586234230753209536800800731571898095673987066417246303670506093423784982878675279140319175637251150609891733795359406478312154356172561657244088029767981800441496482368097752164877121896555954566871467903003564644884357236547280836886100128003264977325899425166038708853105896304609715779358223403619988300753471188526851544020532566796859484567784633059599931224373214163709362886047572425492075689655699895327844539294599061358315085634007939876659738976837228343734251506278660955612572645200267672809773282386023699987974605553314802831293727235968968937470616550568352834390602656002458751075113984129727559982343122880020487884581705578224990749365245791396835621775957807242025475304307121373072934004847805716761901615518335796569076432222970115308911730282270345558207043743032220154546392647763957945461118914092550244839965549516639987607957208418701789459879490632065412605411817404963301944164704797601151360557330634189790677143508922698580965852098078793495442490127417183312543711412714969696402266995674371977179376019683182023299482459833165822832754471021619158143031568896700722285178146058486640093062891854866082057947037047219705244123067466910347756867819404655712997045503231956362683660454038040772769520786520299165367933081177220856755951718821345459583593874790222773061515883546573698065369782405890182353121176496437275378472221831677428128157111648574713266168330886344569107061041622281452574825489623055471775965835322274582721943551534323790792031532461080853102550883229773795602374618953387903806093159494703170717327091105758211238087275952617259866792594871685024439493993617898596734121674559484113977001415639878986661338118867909491745295358796777678760731922380173156403116897469003952002026663854295367954636275342384952359411326686643341907739616527764887038412018590020104042565629009096589180884638129864570114230236833321711313603940292902397796702516536438512159774503328753110551794512541563699968485146997629359665363093530374163682471518133315312884270074111127253457254351174496696695858636787769499660862152138326883584228822650361481174716275130670085261454348654327861429095142333021717912093181855962599625973603958638675476615575545132106390802556804173498528464649321203601701402991287960385766594885421921745673219808604348016406000376771924564171625094040240016009873267300630034617052349311471862267919317136738810518663268570332328584930184994828344795225777610341506853187814304267932353771994577598102696865538580335031496642109252198049083422767785271286322558711900721348923085785535423183366575219804980995140391543608044346941251610119447258868831813671040937468273652195624208479219853211222255497854797845383121014796453287037742692621899837403500065472542332695235911710480755503274505289486743526539563673094573501858243377505785260939008654457133956166288412315256204129566659000008949583815552370774990867167176395539803768724756777858211340513866533425451613310646008560394634725340761076282124297222003936594994988215498771976082841316108360272925393611387457162380075588529927977131788280435700481342430779202889055714089877249011623246294575585560974934716181029427990976436493016613544907113505086454301092646430501884814801085487764443154499640773069308334916416456002579166192413113250810215184369571219570497425951345739801797853241845017317555388696060163692997377132793624982210743282181888324252310072629260367558115490650050486794923816350675566736066717871324964755886364319038173588211769730529879556716045870986703703192665940887435486411765596368325213479676528826659685161466116473591888273188088628719131151679559126078115589374724844203139788944816821534583222465125818592732343282674509978789495803898256631336088415000323656123575031465294712718452714480115994199522330351874292945237081710100703146750771855396848660863200021735764963696143548184598746235622811698451047078577776027831300925902095861222093063662806977193127944735443695845790600044983691881289274896610368722248707932142240300450357416734342940769102011244286482700576658093085932908182301422609423168836789898655282993261886860546508147923824961261932275940070904342262508720399917643125005871847559309510773741417623903256726304734235084079585696430312284111601447113769384509276163713075034924598909077589652397437983805014629740938133851891234089003935081889881604470420326961953390876227849516737014791278282209523952422510477197011158979087328151829935765580063715094180573735221749841006372826236873509449789464096296745768579411899760148763888412763419746978715861712473305231466370821229093325559409860221416067260614932117993035693827123859162109547623239938182132553461944232128318930684299531082852603738591113252562688144517400345575341697363167902823924894179731794487671029507515703936104915123755839065647278479954777811825099547418544089585500576152271441314428742133585406994406505162525325908936054640235688030132497696840808605031508391991971820734607093854189162307036335281039815198836311360472307065939305028519238283417935095781947218103997305876876856951149244992189891498709326017444373589010349939232114222082467769890989661827753101492099741723752235688624619663430962720490207433938150097696826796587594946711195619058893432793742792789696467699102531895486832395428961061228761884683461077764503627008721819878144090513664314351436483284223471177740071039487546069165707064741350521361418585607351472696838868106187295901201659409923910365104893846010944136231775636362559087182200495233231871281045104018955285517631873140757223319276629967543162459333622344568596681774188173197517498524781223782588408560376811078372133964270908028744604185647118722605098024920799272781616739206342834092240630180647837211940382121784631961116615549112297234116027082972096488945211034418059933081306442111646166873631310937700525909608921494512309318894886373890483624776843645899997732421821734299154389759384413958629858310175724148009693504995118516858319563840927594955689800898129493727414616537191209275754854599708995495701214517044444998175562982374238030651473980259804740897713922915061589258535019414638975002026122730832253659508811145222417929270131569641683973642562032110863786678196442846820979906598967365455789086859784059473639973688192277345858456238752412925343265394311523619136085587108918798857986656197788133478835205724077332125293737153784750215198386664183307579585993166012448965161368686217598679212882015850068738067053803495871376582595331465237495291819530627422843754889969619861023543740250164444507331667706761433488133759536832317791915239302756226617108227122607311119307487697298003745146588128806335992923095242380747554161626407815840611580867555159191778330056515318646568349392245148743434199428406190990559822029571146279252232104660715378528075219147726695955351656114884274949280915920824804272042029196861560194513897160666014469742454091842796890910970215942016372714863663071374126030656314720837817448605740261940389349076135547815389026922009963920693575436716046783054522406157794809384377309355166200181361332637843895727238209708903899879220509130815653982835615975074391338650189014683335198025807883843634582832578408572341041414752714989261197910683413786897073792277066141344888795641904497229761747436801259049485656209703643557730331661250475524542945245698846972191467760002388650683541299395786907951991875652416769991411013259147776927283793552114207496438257721982881630941469338739647526313929254770354743184636209974797109159370712611071427894946249109607071409971133223620735929347065626410610774997176152580868904279529867807667246879079998409977063032354472480472237442406179312210670670140390524263816379358763066789883278253479641808256596968380512584969640592670670172101758616564324894294172753742879236305805273148829844842836182114938254122290875173989420281581687939638402125499425503872968223990891682908790436843781411128996380014082166805186707652831148144677099586328764124620960937314068268163554910041408768848280881518308372199537523344539285004046603790493169412342898333125179297007540185511860344916277253692706912029724304030340545781937983064702316104507272584010235317052342401803137010548272369462983810781401414681220414711022861262371073183683811388714701793042378067256249757738100170756832843636171832005841626459582141377714030962375112023789064798842421963620568364786116102259590086732020609130600026602421367604411459552668384109740998355073990484624612646420230328457829004759774176538068387914431458724341534524252890119624424569974451688899275966181824676182629929971777812559449518718266624158033665854349790083435024752138748539396042499371136627669146303415911296588078492883025335961946211463104760107548109010654317048580533947417835764730260340933284339742534090953912045643527487188335273579836630685379998571954935678344513765156150816575027392737073308374455134573234602406581904771649188796965345789894960180788320792468470960837579115937894951449074184642951680430051575790383925383198980711642823679483272038612164279930884487646329677211774080712288473708242711193919271301951865544366384648720092369099461371840740784887290669764381713221914560784527640036345966841360282687061513278198105478751075954287053725245860839995341388976237555296121776326323006449995741638457810888403240011568093072933795491048693675135433964435538228950424526547171521377314266910677489588177644124306677734569117644797152366756581432671179604339443791919272981984537934422392019122691071737583333419010032543395376336412547540051633783024557184491476100741517438445665544748979381878295986080093646261947414875414300728787092690714233663952527906136624795642033771314847352692953186939786320721323191784499743782814627304547980370388318857289466256192955252796759449156372557408247149695625977323403090108176031235029049392557697334382350522637186957972861482088233896172083730697845987545610851590009904489403472858891309887068180396888372319744635701227238634618542229890877260332683326915993478955138193363487705467567254214501304577346705718740849828170595448697846460177439881329119404889388548690822043646741372734565767883515481774090701599100612193013811474641874748413552309921523507307030459836294983491328543711710827799752416757552112767593224405541376401776207015890671419148789128074076006634360419044471658746209459360014656628234403079854358164528222363541279922514219270201468047598051192676654769839177864432597802885761269274307418741247706619796904922773371999590010502993743861897326829871958673581700355008279922908435120689202711089263071762836226054091420203101825824029794745065695831512605069773617430551573319675408332549827927548136932408710016363675267468731077607780213243244662106518654717072480759672613334076319710081117334039781737093002471012408105115277462792710096102103961871442744248648934667729476679300974473745020802108874901963276827095037839865465938313263162838154617580143388080674939536397146162939308848788843623974045763196774025969862554565187251255961005468098282744335582319934543019579897517989066555313845318644232214981369973058767224277222711123065372787731045665941129162241824048491986778528441767274161789781568742679887295937440193127630183252025953433626477218417432584248298434439717902815889063965417355200222019064976786302529677589176205714877835889851639423978933591722713736095429005741635559923006883490627948130568079987004385609220368493843616423840970917395154809884830325481919348553932819055232786819468184886950400880985091064169951884297011896201229496000535505339101024129370036992026138331908178487568982624656134332468179005349563485273912270042750775057029215646561053870185916941149680512342240713509043680732946118008276963577240896064843384064609807150872138415920296707618434351900993202808901264569151176603340819916178971538065954500874251338354861655557336796184770915239844078174845883551758456168624195071920024211132826941029432218216254816176490403478206112921588271013925774474790006812188223621175538310301261129212800632790612818990914086499720468001493845013403525048903434125825720906025937506242528763545387544368307605284855534561721801204435483474593338441543331568301414800461136557291867069524192136281800713423669854353558996663247749521373175164579072768599707860234179395645852518308952265353937382964476663400175897368311503281444464175194277216504855057625992440988541160905231527768036533685192446914643948047969920498621446949887970573844154263780545900430218926611618016904127233981240848083062719195976193553771105857747674017543216746903872841615683723256686712999776419310431307005027874495391753083108412801416899920785897263084474684628425007943791483224995016128958664120481238578217321594254856889944067953898266761844710495467863128891507760376768144612461663613088999376120778370486244726411239374975019851752458934693266730388393906463281679730113112919825998139690873484781904021032633884441066990724543226324133701991043659886659663556624342349318657888630665632090656265057196552244345967784033568498310314660155277205596409205818482891109733253743122660372802916628356840646154306365191423176712944077870993152279221316752085667223749540547687836613555303029830470013587017796155006230912375053843916464560719637156891071186130674137191055816527797925393488632250063679403185773404140162938120272511595763457744979421148050780921384014214961536870636681486705189408022563077488796902324267692384180844984323916614454130846931440405160710788781894637436198491949311326237527379462774863041066718228174017518162245331669255344388704516325907180886402662574521341898014214654901357163536556419286317838022498536599284813949652219460387167285689883336178934111679976784940142461564473514309877210873989169408185960387932373919335085558462800327796798827739244328167892040001639067808168390712202774147188815341944932821939884249433669651324780252822328182662341036033889002528039607541282150049477028538455558547000577527550068809877751955685156137583393596544351374545689176747596851846654810899353280503714251889702758499806717430513416126519825524440868912840541007815208527246287288871287937721992828736611156875856785633494125355710379963272857954319752672409002861810146930617895204870408992611556496415594565448513023527500323054084143545942619262363924214475610232320605802976335300736199628079167567650731033250233981750934210406220113352683244669294095205185962147952936106032602721410863625973672762309571288848990463874661702167529106308008749191421046107507142434234831745906617527587157010401831427498627909357838337893331345623071512048048745900806515387070805600715570337106035550075082681299938240107431668859818731323429889612614711558046350757435138888884647937920536123712842094048134165965682457948955228090137882399983275274939018762057649793870411947304959847421686159960430346725343059237302153522619205251124250647519889973376582399441980937185272424992361238519024137833614467328101115781827506246233620315063647544885216045526865945117861794425601586110611198561039674932180401525368103488984136989992653774027936949957921219441711458534190545713176672853165456415655798324926103076945942094514920608985003084192532249059333358494169397763311422965037515067580641258452690984268404508380945783043012492526576114953492062886581495055950620628178878917032898409211376065364369336550859437281229706146024902453415761908981003156192975558691911945768374025052270950049981549218363840858698941743340434082180206879874587525493552754140590447813701162216415458965609849888214493815781916433187789053168684695226144897130583510165788930145001979344081218464012471490004771818674147292777306076678367329546206336179211695969252859235840217668030912699918996856083154609228424122040708986009570374905627190375740366586553267788058931590234386070114666135311886710179128079553483888145244980402171853435306143544568786012702523477048401294556432023322059486583319940530911721128651855061244262709988803896628062860876253736950774869057224875272090150027510641007880748409422010480733084008592803091919093925071220567315757733051861657404000958456761806108118372045219413303532272982448923567553301715098599053774368617710306518345412448432067935906090938877520674400071352296374289748234625052981657678941361212730549573494308447758580150252191322553310610059391123675769315691133362232229158980610038689235802148706892763797196553947622568010546210015202772970641855851043833411035668572536774655614834292554008178672066778353748710072347597930454928903300338062669351228857155497421404087707650182476360814925407158299860373822660967829071337554110054130656552692607420343750761226181134704285457842155698650181630800284316092891029634203320922215351809284011016384223683394415894594600604640046072277669128238748567739774267179298243373006234254659026630268329094613970949292790753161417963013792608323510354413226200530569358045130528512525707333354796004310099790185161149767028827036804963040672780788667967491951125336621488972879503477673206327476105657287536321715787150842985402614576158351816272817842225067178893323016740790819463950967173773319381794351496112161497789231839250891929386800241963981830583042578381045213059734955666013052606614996698320883078336633938173587103461888797246655994906935144508705914731864129549741742797872429086101981876024213387394108808790233373163188838353931258169096354609153871874634430177803249877939319838848138198181484243389740369247581112455040275267962053237909290831290830333475425461169970472532956958501166938956504247464560831252822125526712659265594448789008156315841218756161699385682664581959461614878545492469036839970431679211874786218855614262697556912894313763324304701159592030930999867659782769607753507520130183507103730437116746479933634236099094051378504527416386463030588668463942028410200938562728187288627361104137808289376667637651550539665642819937912602511916100081041532880983088975372364503504786655798290753880158735938114513784158677900925054326371244039552302212431909222137495931763685904963424832663391460722167218146994690974432388118844704408696935667378975704856756068574451596854134398292817486603282318811496570391678009775416359215976103972033898809030855533870632523256225972913115852406190719218733016179401234713399103349452331302232671502372745435913361728986551928018933740249464006040445527741784591015489281712897553827618188524281631522481788461282297901133919457662883319673783062242414989987231342317593063656222187482193239255952027051984447588743892722964944165017990243197632997804606671349214815539858883370682516678760306100745011169140401885325197001799467912495319110959094841753978054607995017387986040334894953312977508264517836502268496732383420853568272597945397567496658655804643427515838671390617786568984600816891402592365929001789111388062336711734465318595213048491094413137433677338603413550054920989140783192250807886405837524532191933980641836222835132246356495245204989555953159325203620078265015349847806999379461090566445538184562464738384165707302320671583179538852921404356956990454059021913238525508963399741475289959468403512742055448387634824718881366195284333022264326810187679914511296704474605618421227081939946677364676895718974400762754089203178931411958763128910566643381684364557884891769181734684077698512425954260442575180997818666996948354817361415211346995912894698760090067355065390854053096454461890765889881134973359616180596173760181173376239050343022208393912948675193688550863873648590051693580424614242126222814861453112546548904391158724547005503641934844939553004548067414125549495244088327791239515780235848299788477332215604419206061287335710840672697995641744931533916640592355598489538118048804337463041171851610759267651553885851647046417267181932794818099552723402728518445815851674346444286703130924900710810824031415328547517152688639118923822267941257765828379098681432459550574496201232841331848212256363047714426150527251565856704748686576206405748543885160727559227111449579305087723215867295344562246199302830057840978805789410651217038519847543863135101013180120469378196279415574208745810563298492711708839636791205273199523861994755062974308951596860394722638534166625865449167619061614660508575926457127131561627815099291807293338905295470233298724945038683276770658938566578661004845398648121083488393510371634930695994610720506335095652531602783319873697105671916534999181773662268623260318924144863152643298071426780833049751415808924699922461955556573507380787108644759548490461774007757364795603820327071516605831939381961000553809824014044499749402043856591026954346955699598343257812202000521118048690680702137478799759384077547703390617309640545254812384684934428119146190489868674696483283536732275251581584911873582781662825129071996719057102707144234407383019410832733786790886359291853836968799688952563125316776037438104463286353760003142166098809816782930433634185988204945377184913607531606794921565756804934881609008808882109986731129166095496021590009261509305928976425761924583545713417447323136369489252998184184209271666243137284066108118915698601763402835304589859711635957716021411541155691448674759944192844471265091864162880734455849191969793737388275636353970729191834411579686161926999366793675055708413261164473780822563606857228372677549926561953285248385883321350940133949749668562165126015710969295005340387292534117168473950081888402114100713753232790058681825415727384204101884798075346891045300936145062127557825458228179879919547278690327496945675552888669795800859191371488412088270495548819980253787066605239634851580107286838882756896287391633403110855781776226425181220540298696585995824014795942871824247954515692618010278216624055862763003329939935355365779815399005674784183979960384257292403090381613584345568145777123664513919416560775618889773895693210487999047582392318275422032226068980885295808750068133991722910844097825834470972587109857648782417152017201074349501784936236647533851127652338371302675299164717850095442984867232404496329683513142701942118329183293471441887986859615496706578211655029163450815376364073278172848604701822172085433873547081801333192054814666344087587262896359390939034316913182454506602693222928002668040483817898649930142498320161006422124157149649590868843847239356842758408147669112483888621248347744386717936228022859935474213612279316639090537898003528477619872268248279284181673573840888712756909466861160448720559632968680652417302035177185919888164914507775543912985257287232688262618754099155457689092836109276512197975109636892455039322593397718267257395835858353034572623553842344729854678339220636740668000465537600025544317322871020076624240504898705945479250013291675409356213583735106566136285993315594684043983617189166448559040346405276084902418574767518916178930261425202018189407866533234000034794366376046450692623019230102934288186641446269443758287015337421673436843070235241557594287426201609025804279727416141399363596018533048735059983571025009281297151047750396043795418682466898744770769583881106360962583276563209355570540466014350332927759331277081952556073656209699550458451955611945161496748730936984715007606652967879683231184792493173221521443965347288187412496513395470671524204648844278658102289090991700701147903234407893104281657889765414362432462592680937707276928213109671202949618124557178842869376063228468605923909960221757084546082809987175547571822308880253063614918150269643438526652526891670693245029498719029732714548632872389914873902278860007925721083584363349742627191964848447339166653911609941530999846266292918730801863630194335046414912017192620914864718088500390870650829805574168832968757402466341714985857001537261788218845111412217092821105741995125442707322397886207828882010870987026440046804045944924515754703907063552033466325726632204019688236897186297689089872368134915341878633783214245197194584992085562520932099312874770984321230539177309079302414109539477021819571680727140137457325213278826376443698011790406598673758556281192303930342605386690643829052390629190891274367887025877310120755895780404641588761694177185294169712542288086049967048306598113361542272262364643592943217433005758807974908232037973841342945245584288432861996184339314041882006843423164642530804685340816841451032830316900009299134165973459368802094582050404393997401752799873338521900943994028512688020332340031808768248603690245489904956598209225921370839813148971195364791195607203535656145592950175106451948992681203919523437913543437868953299235695920759666103020878429174950323731481704060440975278089374038591403346557460801664356140545958927371385076611910398578118152632097441973745456737603383373463946661072556466309260799901860261124103826087176269808709520718651874999443496259064615466291393226293346009037518133435507917841780778005558501948454599379549656773664077065957288488089390084270970482690587380279564924635590267956484513828747778887240701957268317563382816994071220376588638196676638118053410628124925453176277806341039261477530891970089399227473968085928518194221124734539320164349743144477604507087244688086864747687083272746553320111442202647373749826054529743351941661284201415783931433175170510874099622607524338044008939230587016693161991350266423316633799797014807223913793459943788816058362657081225178448704764512805834892414271519392237329628220995804730457361526719696627240553408696977369350739238734581936341123923533590479157402171756328915583836880072691116216052388625583344126607264129289753807958284802686447735085526959465207451590609000471879236874148973740935757885785475456423091177841864057058699566287542842744504905665845109178542579239372348194682617168209854622350585029205803555105126397262846103889582604402143550856831190694057364475921387070139671694699950509603263799076394334373257998343061271619659012848794363502535726909340862634967082293627491277010136167672024795770883192282651565537961262268964879197594600218361785134035089504514816167376494749089311903436889927345112442208588725876272972552201058026859589805953448050039352813489952674027962885582050183347866147870273502735130410436600923830691035338999131878500062936354094511735885738070578146135372340758424766047343219163606908735134505308316448340728607237109530708072897261101850580418529631167110982502360793151336339523254932235854141724413403782679748076087364794287612224654266373594854635619321376695392180161084312110625887445997184379573292409867258611405244234323924838969934116015523330002571630728343978658247517034643429649169900585013737430873458961302000305201347363850431481898743889527494458723473810071848754070197877421989832251209807926588770906882030027613841575920469215614642284047447033080850432022217103435191119946952089934980041687520661015834650695792129459754477893805466017378070083377573731924400173129882876945193827507582064628629644491474841643497991068831842763272101899698639351230449599137284944164466570565150157586616280200056114871583834521492210490635177887825547327345614451554565740046135816030255698266582380254883737805346214025897446252686917716008921612828305507173148121585560245090294113796157480174379935113658109024535412667247994899228866015280745520543032506790389887505171678610920387471271349297784509371683567204273523389287579934186204390468686673762895310541484436621772253827844075686692140900143319180528144495685453236913582514133986453949159341255389474805622690017423810013560547284612658454167849541093678040622074797433892320253364187739374378357568788167005513221006385574201843391277773156717486048115867215227737075474242048659441575946780014155265085985659335082273633493646906651021081548914680144324874436447082535819442189316079055233957500394029509091683154899328444614885538599745989310051642762910305449406699884994221348995695958762527152828340072406985188744534455995024069476445553020809759366362758152954866620426233053186131666709308739513026170806557262567850762091140766259944024607922237675709414255049618326414649218409860426477772660352600776163801196589325898141638192844293509746729196250100768998712751907944720807164452616399149755948419576532398278633192915281074900330934009630912313966971005413425757960466860551369406781767727464557853342223684507333251198329368242013827231279506668826425875956158555498445911928160015851240504548179508844443649297152795779649166046485664031960532574729145467903717488374598517098884990740088850994943646447680437523733084587361619598696608669228399348175443453844852937200841043760966985331209228443517078689921714132617823070594051416612835219916637999233265344740915322159157150187861627430926522061090502279713758105808741062706649586468876920231540802915707050250244368669144584479501618629009748873484569925663577905526530767693418377705472046774585645395388342997931578177064643126633757401695739856277020999635149203241660318102843002757579912739458415207231564638814756807974619087068091589318162739990326380037581473637279770333493098363776884672025004689026354745772822744242530945913473205294365488109502396759123300357389717105446178625248620714272795590513276079967589241240662161376143163029299337753902860561375250906710901061266862401882434207917050847171679329631228097568978514134248120110524900857331137173466132546358620369201753662139783030491491729827149660964149029548180851034758494558580782376450856857304927307205259787887129146273712447520321656929711588900907410619493676496015026684926043172904118160477430363753725850034694738334333859827099470128771356205719413373690951530535379819743323792132246097258917613520600676292444301827414441709046543097173308629090561753154339044369480362946952328888397597972291690628018420674548701704905875509400215668886659212241050170740572311148523806481948074935577142523443039809557686834393324002046250266215908828765160653132658095787758840624833672949906131468679606768675928450778286737169901228060044584198116090665229555398378018422744122711831206143685147367703218285699306322144352025667271224431064012416321793013102385334762117996356291963822092749194507631216772698294453879417775614122873670303981593797316453069664762875429194482037521073622936504514046715693617009103896037471422913513047049593585324516232319886828095712331889463705214365134801597835957112135267330920218428172638048727327040314309100101061550925209767050263877061933622406321800260807547663353899511400044002686794255837927084876704875406119148097794069410908323476438397274494758727301625361917732699007700311877718328764940304859059915362320085026926418447681170071502800357177181304513647613252126886153597763062006293305848088828254405414977451064940314481056403890461580162069343170029882447973690375653366911937305925321300898606175456817069966655441137355067608738059705972439085825780364969510331019123769142752958862227593713358345658688820832416334976102468688253757225601571087520977390699487151629787806486095853473212098388745247789272634859618323509453915509753955934512470092307192894348852592435940975088979889504399510697970456171995240451676424486990928564925780240921329858023034195375886959522704522630745384073504860767458339796927865437512015290799267979357059173361632080729379975810580076981898328787576513516973123805829031032723140381374376875318516212578999823361475192791980249805106703912307499767234104512934619615554646926265978237534783279323845204860821313405535632533787659543307554851309244025734788160471901783708837663506391013641623518031812059033831639014377812895895687503431827050744083363713625233649942270253771754980813810998000593931458437680968281816749603458528180158522383928304903234829043419658070716239404030472204716099478229750956366461649762197397590971147651965591055476788998250019063652304617273304332632040574452514965125128135694714166184515926228834973478916510634851171806937777390412928557735744100212128724750318659965958878454833469000536538252930402014595127095157785094802367258296047989329597530188548736236057020911251881558079167360957304537497719075037814176656978447794956012492980692875218584563829863145655748701304422144728058685277632032817203902785440570424964024517174609120630458477234165236603044694860069265032828603362035591983630039317264349410143431132824203290017384275358829831294665360575982196346337984430977189262108882195381704557230180450351653345604460612659851663898300740062519879882845766177236011694378947258392280086058178294454963791964310027179910452027949113797078458422490102956835088734570657854973344510971876650918900667862736045907805796649842622138389976302296812804464703411310554508795091083927919056293519127891223010005506500312403957068673209304181211393579145714079776307101966836831250630493783001542787069933358488093869939775466665350989310000355472437429397644386109053361108965455229176627047166092486918869316718415988140867763970027567677284577746455123812533458121969545555362868086482416622832372395913856339081913133776332233119122440915928901861370987662417266179113080260537362416542321426246069099002370459035768603994249742283411472594601794225348533863858556034574765015059592486064006110755340885605181780473026995028223064372023963177043885881535505944766413910758993629981370938264144354506930137293414675295746136064130511739010111796212166449929082575006924087506208271864087551779883294152983695483433523512253315422263895684291599840447817851804718562630870704089011407161982736859620556619924383128364324185266647809921126865720503982887841978850672158803308360878641228272431253118185620452961278048784059747930037530277413214197115712292434985275455886739829012755098841130234668279412190789822306135878246895969775823015118261142665055657483148852545272679828570417648168163242297425862042541567180803125659576835683474359410148288582514023814343811418107620517549588975069202023350422015027102600828520253494934005773244521885837327736978565835179955190424871396581748892243789274151594921612740025531514936219319404832880335512524854599558586307056336489823943786100700127098429602801658710609946485324483726572462096381739317171696596843793597248891299514736667075501640138922199299119503717801938175373494427589241843991902957883834640026343131453463801189092200325544329700438653092261262552432680444670071778463249958706483293701635547070345886102876959723033892925945463247060793187933394889921236550377694177224266756131088165896705915479740247149163389834491641256804641457427367202228823596991062145527468711053676812189312435795210097804418635006544727111628179169617794324258903698622295734415956233066153929042696825565397389650695278544376721198368605975150678780036098324192178954220084409026799623223298794372143624447647160506559518279751574834873562656706387826539866545459992329706084097888259348822938927699696639049018168447715387249259270969994451334179568843282289711202946433085618989552819124103323752067494496993878741024422910268119979005489245218768307432462989887968478732571492366594516723852071838035378822931364307592680979934358292287099377709941396276260961422865105837777556606562247127980069063753974199611956109551195230143591078449444037010260354142394141089837579482965655480091373265074707749851365808295942290761694208833389530433993029364526900709708157270783939969616235874462618093697469222129546248147895126959532781515426022397522728308268467764398263258964386476514889927175214879666469338235358450180896465052955403447007024482081803035408195562801911175830931755279009073773753082879930299353730985472950390976393337068633004371203754003990750945746313574541778430672450379170372114317566956729927664582826273705958339929538934973790444853142625044748186295014665809386560494655962704609103484624541719352949301921411292774516025471374930412163094769534798044994795488081114566649534659783160754304510707946506690176984331922380407089005194924363438010630571111209386440910463218235780139146949077218517743127949432304952615811074584383524575384619807203622361374060031819630023059454828866713292769183760560261968736150206536619506425058072178226065980273766313949742686037763551740334849226257911008084024426903862312510959548523695515869178278321063886742049992991185402305515931489028738926311556733458662894489489062786796704605635153049836287630698098737161717528396394781647029983385162794542503123671534531279115406225208956933943462289581146153395438409260186195295121135781837532669179350383278755265374520892175571253842026876383796814533175048462418704608237326772036617667273754054979431866992036729405751404349530614608703014924475347214850730375409510993082165959978180277580666403972727651086255893918676467640407302073681431311599301137642457853532451634707409706310289017089599268048508026012153295898351474791403795581140696001862155828553983814587054503417189392240432400349496549324787716331918898873975381321894110281500209015632039912056117210377758520113276313545507822055038080758239398830806562216258251014190752894641100982904492990020360776869169030144350319642878855096086795273010543600205640349091179886452804037556218751214183955889050813583536444092761346466995550224295410420049107526841140023715407613286793247385792585689944369970431348698394452916353180808912236675962012068698971976954016479221347610220764447127254455795133560724034117728518798739955823579287535782635452506668255431562050399996671572149372387976630666780420740356318709498904412597010790495405792381274391801845736075132886533467363125727086966250293025851119605416433516832357655282744349487832409419271832590688772588242437028161996828597519156213248699058035398413385603164074139309328246343397352453506228770220736935854889702153718145273063999285767794099480498864403161419525518534177928219832016977885570656972439437114118839018116514783116232597166883273829721593348651448348219805366516718186494040923941942715064698806565128351709863715592410747124189178443178280376846840781196048054716315818693521522423887920449511273473822543219795998769187785727513990014053787352927402785641520834906458156121361132622909290712108343709708380680349924911973956110625819621173724721194940710680653682321032168254386282839232427566399239344012786070801995240486189443655928483352341407146785148411744004327811515540662116257948902198019516419415140958822521430712139115155582095383264963765208067659076241779945231333857317394913133478831805370756814784135585129061409385129016634725853078534315201855713370896148641088137738899980586363560813861137794921969030991795935905589502461750207925696514317011984602716015868266496317479164561326623438499457098724242313317372838774658017269741342845647581514454667290961438465645236209464717053561408365787702626299003862276120029795279125703854066760885035147460274986251679668058817166166580629447725645681723953921240656931896454627896018098568897833133974052374748949000140350993277918085653255229967448045216938094654782040571727710154695244012788102881361213992688771658683613425663307511993746033382938926127119998728968702608542426708954874680269637745329110383108180897085265747703055638463865832007781879651487664612270485087230814171611750500631958582544499349504700544009911711735313800923050276074193641731274416568784038942499221530038502537472303260969126100133843873837929113399994153472915980821955555676491745739410785170410963363727261471961631354355919911603172019151296241695389806501172532881277926236341934198267385508262680262163977515167966399385786298746377485390931306651261009867271426898530914547141401353991685459788274826142792255098300962988176705380595852873494842354648592961064679966475192085493897916316089177461510568978553715956975750254185246235471895083090502407169298883343872870881747859646500590997122633999304119575645872235908374342552712934246017705426088941852588958219190561089830014532548108412524253120072617786114971761443033964024307049577592421493793681913668515990050738009752893154250827991822148653783549565743732988213225502180146749122569753889062120560482891170124124160919114393825729590132348069894024249014955033611835157963195160577472558301881919678348124011142959798258641820307849527625129384021715325518382875388654064523618386832783312377206254209859018992308929009105749297304955349453863379613234714957355894968896901546392444912812483277272416222244261087997670865683263979607068239339458281027874757528181213011670753026492217392214408317450198707092260274065441493498635521025397364429323266928438455473125329018541054785999249496819430608881668541410411890744919001532017946009182839097719715135788670410807603097171539136362204300836904870214552005070131265518196890861892687728979255026477120580518667728018042134912372848726764479517902457241411923776279734437226641386531464674835962679778685833273072958748396663799344759242582226454895711458883159164814950843346070027165231065628135484104277212856625250312503288510639266403153385175706307220942434122959855776896163496776203518412464337947310560697257800215513173708769970224529611158869183867912874635068415392061198625222596465267979956477449496996211831841229942170780500817256546267651223265741628369808445900432066192469621177184203120218824991502766502193224409986266942158584644605024067372015695505727947309111702490318288983293697901253390033595608063627886130581208028922944818850137246608620734950823737332953093306520167152980153846377820564067178810365894466451259049774974728432447059841829805064681829727680444584458082639907987463323799498009522633854684392467099325609176836359743635165350850267428842844025324179506140095017240669755129584794064490235584464479958654023519105249512033175005112992964145810001332815188390595140623856063952753904266374148122123939177189709539244633549373640223301757296742493546306399814025912627518586132380343381592597252733697345725272121424639872639021328709947178948972463190276082045893772419804784984550588669451104103022885621584573393103802498025878473923563357004600651234756450910413200986968687945930515084819475681126547673505676092957534383685912941670605215526827750214947250448512318326299798908424662248620186699595167146577607802985534581108355899431363595264788233014737705439885704790978055974292364516173682614666310462189759670458010385654810325235810936557334793958484295040976168423236613927163105470288638391907532924421690090215349527387122543903716562726079756908879283482061068466360081230146324331686508748110464303871259872224091315697113909215326988086267979459312802678092434449699877397206282701000932387312606800596760998440130381178548246065234923195076781479205471039027750359593903977766239283351051489095774409817174006360309526411107986136619534492474142070418077201582101578442577534580740539637329714931696992825693138402818188168021685443571650359151761504132167231623700985690571218418915792153423649840663554255301077071028604449409270198743475644080145986499796044269671766498749669235394281956208860659772651992138077133585798358420271876961840513256788079567459243216103719641784608620846789807120633146550956679812674890424872732446273809759709861721052286615790290565779341375181458233765723996845017359195749598198202134428456208779877439737594831451677145578186813204176765292362943324444089269629677348713917765412334715909919624810818603611637991240564894852495113434866436681826803959760000155366191819469876731894010724825882596468094579558678733998242061365012804013228989209283554623367796839658605847829263394536586636992630234393881526097612086140993216069547620275071203538759560991702355755107314128758044081360012145773955006497516623007944937498306467443787923170847605137542703775441349836559782249774131649552844261320777966390902607613967439164253777839995581019983382139424614142468379191667556530322695597007797765972576891478701637954846384243169593951762365801208867164709667601707635948825268365330944886271978581052423270298798361318864526879044414946594092270784504347235397978561093866140945018610981142751590021459545732186081704074730785765678624823989392318818765053194355033534649833381015564944374097705234036378684907477967577485117918246424533633479282873220144531060086413677109881663763986782732396001207720682622848028311559097690682474037188283008290015147206321607606615434169563776578891952169224584398353279733939204215437600491475239566200956062800844169585020691881110906255230777010319188833212896145303874740477947015617839444775999193870761885999992980292545437139724190576570400236979242965773620093487019870705580070962660979134255266031324653517135931515649235565461487813610410562185849549075494102797204834639750396397785132034990766038134701389065104644909371726776810967466658655761700579873488235369904659487593983659319227943357859570965561203028984496374759299177346575676294805370770885623660828810634067853365876304645470703245828869842817234684147599653249967648017896026858878020133110513643320749192653374281020543019179865922844479069017997127726816531872179821027508850359188624674317008313193461682139689159031118837421627547139566667353218274496658070091768800197676109277091988310276417133317926868814911400842235712444165052991284727737741812901344555287369482363443720495586019734746194056015390535504293928437206539397445521015089028068729870355051255452984531336930622294765747320890337063700832274085369100708339201000058305112478278584304123067578839913943662802577993735555684661271276415230352683727850225951556797990638813435100363263925459357546553392540640440122171323259594147838175781234902971700723028398943095837731434541511948102276356944070079796373763669139589245703427894915851344482630696552050968341518945441747796210605317472825682715485215745736449135609244185053777468025184104693190319138095348542730114101441064839594473112484911618935808193235874321860598147470065244464676284160376488321549087163593213419445649797897615852891210368907001139422090475595534227398941847030079298141492937532584434955436939319542834706491560028274345274162419927626512833592159435152462323986142954134500787896840029843482342237640012973135096429891354255766374569531573985166392777346384517017111421392367492753454829833284697331911864173242214312212766748208201783378040533887462108650953188534071152515592382008908816334446482053491627536756210251752740049536874245930457719606233810528174542429857393803051751654753763839132876485426852588750538374332929512457717711700181647995784817623623499596952517335084464019087153972271503141073616951065991468045536194869662086362197979005230569575006303604662604570799832936327546062536150643071687592129967766847177297570206034630895810323966479005636570147175735711104109415858461784192095693867692648674209534680038095362874610118942716999030729692010887661440130573915052738635592043806842658431508569216976245780993794954485488765605206590901493239247866681958200882410566580009269337432383533522971935363005352618595874587032365553529259161151823596116538424155681848076552530800950956600407883996523238704544387924202833438620814264049551054145418605299103753815007325191592884369182319729759260820231541636449467943527853387021333759230295963489446959703524182799205949694397212577219732631936739972782979330444756894821916928919028312909994724091136399254827473276122952868003127070825712237876801276433434860420386577299326608742817806035201985267643436761826802689543818770194577326010873455590841856477655284677130144504917075424590981462528846668188804443594972720311175048184979383884071167862754845301713008008261518949520546965246442034699187707019863417409874893728630218393238467453073123888544637427357339198643183388714153808703422849819380822754900254231463661402014832646508256941328797248617771201571071447676104215772587994642239023115779943422954568386490128047447108583639984013166793536802246228786363350922869624607892480816774239996442830677834846551108342220304760875138716351517028111851354341874636954129220956935560692312368830075633006797516112105402315905072664577859327304606916163353155799020935893082454774177785073451256100195715835080510361995545886369956577752552492563198306100464971697028947420716760306052496427225697365203163980540822938793554238100908126997284059953253390876115543941933325167677890258587423818473838953902423656415712523306406898237296820450410648190305688908584858077978899969066130549297161768001315217176584091576885283842536852950915249140118500027288606145858551042903079128996048436627244757855767157676591258207219207139896626902425324983667466041867950330384681755860509426917521123953084082085798876221901699750567347132105203039746886354193699719680952347622614042437370591935819995182503420488413515912650688951561523685241968552200664927618713758653474754909474796534732169488109715210031113249353633059508393554947779391883596027961787208772588095094212090316222568307454241777324482212173744779004162503990361046077874636926940435897786402808890905022505912442547043991577057174458215894311420246461443543503057792998380264870951688668563298479105630532988763514516339175664971300448448472207597744400613867299477106217730239233685014391076738026945894632315459133953152923779886067741842074119887484139764270949544399972126772110352791967074665741030773696818508483756081896190901231488347808651446428060178325610138573967634063578535070498938834343574658250049386033685199096640882408228138286352101590285761548442669209232896644807934791451051854310877697832818330717150806683155582048524523444229491058500673151418159559459591567142381130986586170790430678395580470164741574826980815647068989485242979573362270597898822035672355321789394524148222855247116599439580320209656429938439731141804907092491486305350817587207130978796488164767495168701735938701541283810348905071023909428458568707697352305896609826368311609682069943259317741853486435064797439135986454734096583488254438682354608600910321864490257420169660266783778698498783419486166528555244628410716580748423315099751683653054212074525924642876393080265921147461310145078224887688397606063256427521870252569643919403801533988353452506519088208215968683969915082860524358870673048119033075545891067151341280315548661920898293866447796293189025774792464125622703422458281269853940853849973800331894027967943522178489395678083518502907674023327452929732525964020877216053133748471487836958642296584541126596433393253694887637859669247484463843268704793848187987568075700504208692473125573524591600562131747768103521540860309839435094688449613004371883964543960795678419629934950874739179255713818859994987751728938498301217294479835062925594592833988285903532273236332994753248746776183714713668724441303646776043652644128246731557585588951282733314365275401222833745202586863524319613074236569003172934092636554418639673255975315050526152887162581025609582890547659029234202166673773600556634295717948058665563391096086541324226419240277886155936792121262579237948964616452213778125934352069178112398054998224966087134111201621681719636072535608338457415176323395889871370948297065461173292079828445907149112510314664109301324053812491178042163281698959596983997212466460214716960679558979962971542141456557347218185346597157461662280762220032566290565989490466083006012097251375496130474917088085215722038878525931971437921628128041659713834949688204245627475558919527106756773653389443587909288274990658016267145479326786718136532917908041239999303296191928297395987745230699914557868210272770195612120580993870503121320353180923810936438073456675989124040866509112301086302190711785253222825986153606521197320421474198162694680739030380121298435376348667847337308044358082403669476600890440697933240899317597957113048790152713412974741874656352772045632890094989862374453205987996161877094965001633116805084916699473840352668148440495408951704744396906037692321902357553191116902648257041270213490063237221155606481684917920870325756061738614709723286863827684879477319819021490248788532653578814524439773196581093933013597114309148516288483704581325075973543549047002201184963759916364254213043969064920556691418899087123950678193056800537710678544719400757264954115214482465806943715525359616368715215158152278776755597976375773733324028940608389777709224312914097900121693108560572388543138692390238520652102769726327728423509537817715886685973477657103658144374576251928992344391968160773773497118541453745348126465916272554279196952180462323888911609094957715438318638981166149054493848103880065336645645530773044883300530675458655784773506098557352329356585656121743261894052543032632117889122586626619366631476814252150351535981267329725175053401595731057526839893987060129427134674925341108907574826734949476145288658807025374350853169786718495688176401492423861834573535710014994383702653782883881135748852762160943226720614680934939546603301673459269391688489534398745451685550356423106952403627005762443738733498030754992016635792411287401002740867318559314413082546746904813574356418385471445673386285711969363543804601182542807925784469209044709965402448901422863704168824948583061944740903763739201412941997749479409358417469309105511435012186048604143046993304718944910594612944677462715738617654412272330044295396813188544789949847500423978869345325719644759607343521659831888147648130407288823644205891195338033345243169838241485691780613383395687414204834305102154807849069382860964231904561663378718079175459374625825792137236202444031737547916823310121201646275961716228892021157393777748153377510800972523897525757589119143768818897404587787523031314384774393149522270745452698270190950213052615751904575052076399736913509338755621861213532281949185273965777419237555599169413119371087094185956258984867379722827615895792606382812448246594404784792705327049532709890930639986810218461034680765252884563714722166872273990143651666363533892493916692837559668385865142352117186291666197494440319130882808321183751320530152482289228072155545980185069283978759211350966865228408628242564510326956915222493463966285286791767314795877310855838787761384246799082214622960897017408960750950598288343686027599069987524121007340302219732840370753689834912495661034733110410935521811781412755775128534304178445955995569250433124739450078544542863820545085504433251292036254725509356043535116806459302959177717081790272278528699137335502993339357412129303091290231564885253072747267772739407892962935396409918985342925574609572478039873784152655117727313236813907011450727894422159749600793437751684638965769651498662048554683885855546605692122836464427192163651286980303591347488823909396210911489101278888370879592346679657990933633618928262312017651833636167986381982130602603423413836782944654749994599438458245644531547522957571926032886849928843890569293806466359001297638007922142953177967240165067129559613239245405614998376544243813180207155662435996170602021556779449338446869174302030615344091647261940543174907924195536701340118073792758248023093437620728129719653247674155851334320539196690719309327533177824916856205347302585850960055073300776744813949353460428729262934477439225661297886760725473826393816522821620970255482067876136742991276739924538412489529560485935376929423050407223238308000356364188531585397006990026616382361203730069796023262126796177457007818942187343977114249724120099908889860342004056188946166397030848762681572922982546542785632515591305140672598747733625223030956712397329726918713418210787910282342251532207557865113339645405607529569101535540831443435521501795390456759142636212804154308467299813336634885710518870838546762386946288037179003808851780220083694181079571076098806492426607595459238133811367116238484021163922721630922488120731527460568451139540945562478736464360465546443544960141018072936363080648516440759223819225010970504616982840062356508919827966647056660753782706356368046958973542720786989910778762218107776638158847410264731077827678458411061749792225497679891055911669503761549637510629068461503393052073896997115476720013188388608095624277122389340226958087723454391361065842416732447480757527117249918072175769784139600302776116981596165410144159827069925063297095843893934566095434564526971028112313307852869513682746248973802795846757713016159635317666639683999588787101174277074530760936853698949997167841471263298778946920218363800287451984778069939366102545996274463348031296583183752535757190344639879421863486006826572802510894232267089216240358056217838825678766474503312804258435371595131081545289058539113062400765377736683083008962712124501615265376129011961762595886111719247294274425907353339637084732571200228039324691538583653587991636111924707194780543277554284530931055795551220020159029281845797590033512055814374291938205619499726009691253703456247727029298876061267388515965849406356858719244230641084842333494084542730077306894981910129334000728672762821615380078917212925528654471644849624284646136274043791013711562422147026195668500312151114944480173421894298420940594623926028541587429436042324122904215526253906068445882645933398486810310952049675828186060449859579449602913494766861829132726776231767728485112444324129266743560313441939093707087907322988069560728528688307178473394175418241229699547924293198296095474209606940597829933222532133508572790020471990554566296843060370109105776746841817691759387992160773094955040953734853626778990376458180392894923925508347021397778179318550887112063704760381190967485926863398519947184726142756305030543799201932627703208843165746161781129755471410119976982138548418143243203075730247722740798606176521331996476711063412939298281414404093854326138799718687147202293732945019003566234580544660079415702669956325260797656367221271531552039755856621540100481319745276564028507522928497862651099333330050219872170902361848785661491994671835381435871251454612925624640622161017164566876860775573569485971084946497614576124656973098368857314736002912801496838433352991509221627698801803301871852666813562488629565833287821858669626350572510433103066410716315090363262966805621940976442975861888555189855764136957138838974516225591556159746629465906395766225017931911989090547441999754547095160380571790739804817484063331648311120671535017140505451066134254689221255916342641730357336506921347647826690615235940715467325276781387824567417534620669453382382282364583909031440680351080170473835317077999338810960624717578964853426445333589094193629209461169037256579070303243132126112836905859647904652278511802986461567462734548112849246696914482781093906488434931823782262011399992938404909098173887064050487246960403453531838962730327377101152961319514183846632834603762663229562965183727893097090884611752491857719762324573849055664301429740703939213804256506221465514598891234610713929129213256335225810249269452737768908645205690155658666696727169888395080855639549061121031821474334519070047871325232322238491639948525636428391583467220513660680999684132740372287211086238210033836744106215933442437753448614444399799327919222466387908345919212242030991864998315696725393512524840366766101860122033617852457083765990958634159944524667622397776032046888956208208202256831872445764992835601369998296401747927358834086206325992773119820390370154125436634316260507620286245874555866670815238748629696658850915136938035451650010684313660371685624661342989345648638423905177604901930650358095917767539894520471388253357654628946816982056977615335140156362559809572174362893734835641538235563679278317788900291105675726334190041045540524380040028494243774858781363606160339989529173057846679636931204359429821897339934097369592332659482671594652348433881482842358780818945522426112068211381875960481347856358549422383115913113426062353347177621214314901708794440333801569295889652573038791400453516775458608130920780151316129240912626741282847141665050030116204125399478215690365546434811549423568510722212740227876640108867866369028482810769066266893802169682704791339151801208828097207034794276980353902349234963805699604157090151906258426237296294104937295463630125211937665081323270258269280624015842133351649987077292362173310873723243958815118989139932564642077164196813740196579941930120233072279772332971394649786748002304376699049814031620550006517482697073787649421555415622014072771969993559698611738004180452100664127066077537279293198085016572649554453513463092151694509377125223448618739624774301283931360411094430827497346968301584094819554781984901209996626998636729376714040202127986300543077372745840798108529431811845463465405290928014425836381630463102965462958838375039934766829191756818139462271417130162327734170682354658891106346342568726079990021291075188061896684007543648553042955567873462289561986385217667970224023119401296130362439788123626036189679587465883981752065757558184820189471418547796203520984501082553166750491199171970964657831162769770940916715435870202114167636046110947695142015190608673027420645391186191727321137878139694091846759010232031089836599852861925636698446421217430213290062948500148964871638172271667999665722097022743459254527606614522732140565587301767540162168012844499377958820376681103829499580421625347664040501548062342088460586185603166183737569491881485557228017334695544846044547654009648653786088385760792594342242350446665088026860312981118275536742331197460005553205557849338668169023818533273764304871364150892855189223324972589529132593590634765251833564307051196565053571108289466378047821618278116257545175692536835299512076569987899771505351597435763686739404932553140639175026193375909055461366086936931337903391428630681625265961162063508560616134774191238056593976752242581321533018729593638763245405561914523762074674501216665227844773883121189576935829642058838730862359298823310878861304634196684083478182582084856347410892385114596001711933728505176203793175406579320736619960571948645587254316790265901165747317879437958616300495950825485298977543588094002031945486212327419658711177272539265193359590068972800232412569965899713114174176923114655836250360271683234711270409761946830924432357181998727746468316784201900728894643148949354892468301654023700146673251035844889777025499761986725823420659155345208325320710533274224383244505026197622236320796596527577071290368655572311691309790427947521035740331849764585707877332605597056386161948355924125371142817310961333402041146913091913392806817191244873969016295875518629399285341805337416930959982643497734456173046587993348045758760623462265742979318493248168131795596596812164216975967410134479456087697584607771891260445474234853213679502971246100727734019094119243785164401468609094040548829886449046573491087092988621100640700534731152773566351904933623581041099437770399533227770652461002436705733864429773210252318018918415324137049297601883631809209283886136984301077822232260329589202608740474471874116706258232252548352526312687049565579134220958664148644883230064521935768662039967306744967104776430158743109788021313820647453962824211624149917404121849070448456930618165572000858496229553212366521589445830745218125979733732430428078654722655323658108860430058791280577008361442488674738776971061497899147679049903150519858200450272490981192453673965966132821789264816615117648124698808885537557381357460161591438333930785654582286214675661290502977511500169755793675807731660372296315710923230093425963045287971491766600389099464668401897456757285315384762741207919578517652895640075530860151081315988440240814008383011880001639467629524184826837104678656332086357240474479529670267489082055791529689998011544131277633332894683464658659156827669402329569515194573897852698627022329240406523143567812079013621159464836466273258398182879591317276228122036193999057152142142335014768097416576265753692153248196938516780270353826531591520163237606679909578608166057436127123244310846985199601144547172360119587646303450019133669767165490495428161405532663408400754228077304956476426468129340524103762863191107999273661941376213470136865144466583140714342124580271949463727690578173703403297204347917622442105284113183112388842944819091804578595757326505459718245714074414368483083744205452186386259007185147723728488622420132710305047702342201475281381503913860275193726262442823924613766978901912412893734352467623640381172084226278518470826117788317997904371393277383876231244340588649592877352546702283587492289367385239728398015632825946717019301301289646405322198671837913315285882319085275321818579050112733228151262267333939676204323007954519850327978738212474122697460193650322791749181266205977344675048689043615217198560736846689180155103424417683989490921897369941385583317620358809120113452394096617066548185299709438940566069053880923869178367649158300144739887254350010414497465097976561834158997110361043764461311933873486576837257301662960975498960568228642662375461481125479840529428239237908761584737734571581217281555362370906495441094252187478604057000078926522612731554046190797540062251144023421689784401194561039613558652320667771967496666077649497796185576889342661306114735841477756206980412377333482588568153287503199127317507790825364778472852868903980831639426711661095181708541263929677713760673662432067965954101307075351078641007815482050734104508291766714771008008028325785916689529995553677578115700889565497136728319329083983704856264341045724772134339937093468466954195511965460331583404985713436861341265122026877287331898075250555874536044792588422545996533188605288120455280948191975954156232357076776917452789404593051008548799767378490709866432992820794068957629846810585543957812782139170360960427059771825318369865738865078890697097501841551158187066127925638363418565750757027812941735758458850201655952769498836123631247560542618270448695912653527109889707071040102124308993330681378354292137792312050465904739337780231339325028203311044588781311951449644152021474198004273666203093614688771752743632514399420782640350847280705236338784707961082034742354011341250735090474023091110819628341158510137730197970635778620254343332475207404255590587888350819602020447909461863505777559537160345181458942994288034834959796951873123511882275359576422722276200564693507809314073266399714974842078345776865616532143561158803871092959467703149608860726580537042008298121893290834869411519115059025949660018419081976781277423180533669562811780438469020352269046172206502989275890222032968771997627801540036227173367938981484258681541386031182280753771954043082744654822275853973717338182900312335164598701849835741180945948811195037055000850175390563247050706404595151649403763821774592437878419487213196735742331275125223712145343183418369944045432586969715415657271290206187463832509849245260632736719690162711545643992675296719181437662863614928508295400600355245927178224389022065638195905073053543902368985566335462444700669027266783421090762027306966125100927159591632304907097576994436664242620646499638428284975526604509749874240992621992317166152283443283686194012751190338563598170414205674221596950282173130664170179678778799998764889422977911479580622837438123640323384334368228638695750369622612255771177976431039368371128509593983410858212776660463640800283155959682494503491788358382955811112153098709723195669281573252325643178149887394008437677251662658617034311985234203581889061742670529474632236464818440803250034852283439676882313918413495434420021252775516157732353944891615664715887385296350349685387362475854634246244215436772877598209844856974139381522185401910133310782066339906056304333979462849788043918936699207641089667353190070760745484998496428801779821461225448238426848128533328774582801516105213545674277002308823925123980776057459032021921341807727912620517289677408644967376032509483154462158608672804501160500859511403301535183319698389004307254189364518628690812621565980321123535752408728090268889803987194601183190013600783884731709232040567628160061743802767710675559472856295095463278175578903527312506020258680004228845122533184893167230914859043352853283305941795279908041713219638698080600937314951476613443025096763719841891285076790968484135675518341780460250567611753096574126201523387620431203389806417479690377358109874465061420685421484026688014425580371594435544344133558860903866203857154362774288045781936554940954171782270860935126589438043286660500761275421652503419783732305597981979495902571268475697757730687007234553248106427859256563880015836352869429906553394817629355403959478503143235641352867389492359588679567213386054047624828541293333718208280181491014616597187588881828960018892584265876460749103386297850905852092832792495910462161070344449455773175960818987132316411200281820065166453929466817239376266008235751334795499502872678699146300687401134306860085479490832639193453354893564551373221297433933597189576843519142145272243507407323261073278974918044446965769482968026096356920295348213005101043218999694936679172819149848952469835218103748368777857646291915428930174589975067638314773632239775786668488985741640947167797056058884821266457395217249967716380564131203724243940103331144647657611100935224754384363339958781293468567326293123697071118163734002307865317857614372540286223291963307436398099553665945266148214275048278543412836449696901798232883054749809393979476633878896205195653643940165636458148401280257742923614045289702738414688487531910068953787150065404565794048333984809592900868809785180059866114102449910545326163013930015466813749393478252342278288826840884966564356235582815530367687580588936550221155691089550156331310581756519633852829926214467470184304099689803610803824201764715819450468331345081748998226886526560189641615724178642443705255087028754885099503041103440000041918081976802778557937460232644511284764365590244455239183234263128270086350647212513351232965272432950994720331498976409806803231223746114454117706137889608043537996535771793957294639250808692596302872609635412531279194741134143816960809616566342081495390914764392547366593573149266180808777427273120023629959429140055404103018567195707476317306072960118525424334085274004858195866261027466326227615058042787457702757860508643525017565901954428289105707732020111920515403084117910932507685059914468465961548858036658139728659888934628868864923317419295396836217702430885320546487848500456658657005061213247872107597935844214793774785872151214446859156993039065155634315620495573373496649954710433632695645652755865170544217365945196929547176609343095924919624085799274453123981331820632860168846967017135211796730448609870108643544277983545467632795149922030209907834826604063954414883777477084306656237670056381305033000432348731605347940708300670765761220866551572633083551538039901556025288713817296021826013104461591171719181548032792950287948378251515213323961062585246213746011442510474669595911868354302184880043069133042549114675014579040192922905152676953405044257782653090436888345116887347768560260894145607352553763079570443894323720344664573231730365137295214193325970058278887105019819008676108324285455047528435067011063125028781836714461278451803606861430048653646990888698290428069417431861680508063629050058328391266799143668070924355530720545175639374915174788121592743865225868503124777001215332748677306975821005492734539908728604978472473113436998584079616690936920775605057500057360315013058435064499250655660601342990984841078541287344759856053359203854410313169967229987158574792720056371849375958200320843849010710100818602473102700313504553280289325237899601915254669205372673189824818579987695085722792868329591511424547142787924551730936035769275002454544864110911228970693669998204206162681222705879328304916030981297497746379711265125918873172475568451263892372342277063052645010682316939786083368978298644335861555199642523660057683700994107208904801735245025883849784822087664754151363862841384182519413551624487258777080098046516799985526485954410183498154319236020269146938640703909470330891911427789348568261405771858037667647534520659446136221590461967535497967082947558589136995507298956551742368711814131154109789988437952678994384825262196310456934758316269830651782834100404086285072601283734432031309007457005109869334823541659443443437116775418167686239715073486181829539710656211813549203963744256287307856118087682085322914451406763278982231960853875914923351476879043305574753312149448316988549509185101655379654186430918340440650990664162183986021834337232914670490371779491671304457019969249681606520352267675452709158601907154521736594902235123510637195509624747025107217912285139500091826761575980453765815546090300186872571209089809890279525508846301159249921484889370996101759810371678303386796395877195931116921153996962773316900396235032665309807174462988090967658336449089030388420943634577414095812704248276442271981235957148008861378545234170811107000690269751395960614487039877948753221487571057772979195049860971848017830589090813006445275409771802530639255381743609227381059240303787200557821330072187376110226006252412284094744171224352121544482646898245892687071783426511801184368930576475082925298243641896134988746411826396979535921243734953814146291400805049920751042999066806354501239416371250006457818965973803419793083024528130709563648019278391398633017757367975049203883883424325559021689808812610488909520268038346215198602295477804174313861939406957334193798021522010897124677472628125945541691005468791948155132420715118383884456215526856898044312976470821855218311482250102220343494949518811249372482559150790247478143803752521299046365993469261234395925383139620535348737772771659315354157595848503156136506524660066480995567990379493696728098624049785480989240109469823649700466543759891972057204604563542477835466736520236299496307194228929083526326197421850356261718137215504698071789958577666836632278640350451099608452192427847247299824591813072668634217591363669560777842975096580689277179844870983232797208978055902717865440929243600848389366400127660448052400739279006878307022420946983428796667313007785117203001357654447578093855591838367925366183262015850578000138416941484566611172919949978849297446684266049772442870250109756555878953996040698091352851942514251040283544237093328021765321142833261576207539586656856687706341266561113592500774359399032723509830676695173107915768255841691450128153547832998303937916154153415375262499106368995371351438229356725889625899505909610125523090220998683380297101478811328335700891903837648306980925512821014053287551872981942555389946640363037859646146424848784364218709723890183383795952851528027202644435236568780372004187372651752528870047522686370306671908805845632288582159509000272800910153906005848882465458407553057323931740088221272313059142790118520666596883707323862032758812615264334159208753612112660750845714773046020374085104742507299184963646002160372491429057811769842493029881197256352826559876362843437316714614460066399464350308433452496810803193234606763875876528619751101336788232594542975070223312467732595722348871570454982708967797297727821214615349823989091248466093599839762103065425426220420228263237481714968309085857534667848783279777080478392376525425059065897412188129243047815760565687073629992457426669030604789244211299533927431408701329983747783396729557233697446675382394414171522962518612267412032227189163003804903253399649051927122899376840635047344784877677296544744090217168138920196060765996644721359557821332459969665584368908262210411267719484911032942696463163788236707595217941097369684029378089229363879031603504446991840240462240730046385627167303176638617918241942822757785525529702253954616094988490734240763600101389744151684798327365471400720540044431987058457059614108733380391937703198125169733153155791910917184483821229344817036161878046353692568411915087063775572060386551994952952864289251083557446158378855443905796611151907848169104606475701640942566914975790523289345966586234906859135702495832114171439030508143575303107957002072884167119470242085811886244570412695925775310653200999511643354719697423551400855807687284998708125630720418209118661259026702351689901642674253091174131817279261570615406380590235871015995642035570352938517447461352161742668754112903992562265924341016202669048835954793472306374648296076329198249361534178455564840687737945441999102980077816433432411144674683498422841457512418859826030363053041927383828161493285777882633328784347005769471041524207532918902214309009821485611160738675817198304897482596325135879144538066008959839831095507818241469271895172958941063424367948416845857575962161244255337239550217190751987011323541313491513024296479711571392839820754676625169509828257110397140805796496024449856684887869501467007805991524516941094550432110363934935157277604922836793653985862693391371957056439744847117775492351489975063442993713999908075403782575277330769095665777312786764428103642617978720228930508029957647132084899111505765365921081724328543307028002703141985896681854830163860498508699079302913776588221797993196490614798288347565839728482501160195107260517131750621985852786005030584087718831115116704546994256261229474859986828588092988032481676192496690937811644339060221103357058174350817928325708105682269344376281083725243346730685199139789354610431938560114128513234987163397188033819831458097083721056600679612215397360749808808372992781921723538032408770529910190756403697413944124275859856633994466810510270295608773969968018967063175481200288941961129546733213003493250509014764183940050093235314694638231924517477027447893700921622719396191100060907888363192509506360771590476007031451059852203085061957579397990491714158739130283697800713780851862662074238755564028206504110797879222860227543088055080955193552829616439230156842779055903870571599601217823486466556030302925951810111374955770867742046487508550673254197654928014216634038400216657136650143197748898044330381257213868056481939474721864562927441712802247344044430548169264482994591238882225378181484751872283865131725679749608918598218519453133840201374060519857385862811908578072872306011415207211022343882032628452218057551751698683710868257207558119368809819265161071223878986600936916504032917123587290542357663409343342754455111014332353785311186437990027594981281592296705706751517583142605093774428894525316189070790812834449200975078001632561462785391149085618037087458640964074587257696946757064066173660902798454185306081498589752628823669535141257680857808997837611920125732492783590805458395010982372347682465244122491395779873871448232497445810535618736982473153743214255152976945542052727378927507929281434893549426575442803493290891309130043256730573466033912090380183355436834185278314940614552677231168108593471982099461500678529742807875357187890804120706705613479750698057809088252401784393405631280989059560682013607175922149688305211908032128568391759841398810188182257052668904639605300957855048879681716847510598599718659951204164546351963260748550610766616480930439933334536771848135789756262689419131873312712676195624161422977960768461763490540650890643686634089073245489433757935145581523463923364493092789813392812825521267593940725570091949084481030931548036904950957778985352978773607161740947575937986258728657222033711205466000949923305437997426994280995469818383410567160483468810981783398247192972283679406795074045725608069676386757275706388593498665166559069918960825700433661407535693886178966460103362916591670632686126618151550135596601102258635917202486638902196565246988198365590860018063666940001298103587385981622419751270584010452964588496681034073506421376408734244144039103004424478130741019498818086339122187236494237837710445256758044354212967725007076190863690682177038819053356791408314796962476938378457870394662291688231662069287242602608723170691362988874054198996648689383245311647902929192238719690685742669115959495134273494503082555168812461702604549074262007061932105730028327112011608697092334087486670067441443344229456830341153061462917540906270853517061991230379981615006671623234129362623389483512922983986462900207709783044318722068421740917917173709164116883293381350292528296429018508874829845797330380589960691540813038340037868052483223062689584067704670654886493089563035651549557131911495087521524083808522226681226869540814436795097264215759479942654162000786881529470267596158762927982747023891891326399030353446990359509460688667504509277587880052353287159540469500344164949449832779098910880765529046853581937232033696760097049567502430390500675312589951901052045101324593653128643061864710001681830951291349514227138087054779140240456576893182451532511485592599054221088918782953617241179637177872864185515679456178137478386852945004785912840742102246649379839106844203061449690131993112716147823496721737590208229395279256841431207990533222129146611116283310635806712430232698759835587938125221738453818016253167303538117590952661216225960850326687595450592399909693929320606823875221223408000558709371387696500277476907593776961938919070218715205267774239668846534527132457947263972333749353827266271765562894065610819652248341198131066148224792585194460326573922673735631557538747334248141443757795597911415801358558450656926042708724893199758753481325519675439568443238301789196852003896501357364108523972931133504169909516254519689289015504979840137702950108181301068736801669102180889504314042032005644055541198935300296727735363196964229998041107367719020204042642921539508028356787087761149746678536798178854340210882148982933356467944699706681981653759487947470062266231402443945808064916304214328649406605825923516104990683928408630757111654573749803326884839219491471028266032387158823697908166948417572669293475038520219907384610564517916584678438417032478155219241814971838715640863451016985052037844128690503987892860947212712072865583673125614685628529266223185774620563951250972563057432715466589806951772915203801878358319718308507851278627762705974566644520926115463888996046520844897491780334647434524886888287331830663476942532672081911907985668732784799388370937216311893093347571525141848634631348546845867085761599751505680380916107116100449858060668648216325802721688408052140192878384335632957205904535432083543953342752713320402894515440307410785780435318572169841356035028143798292168996910400563924929782707535970714526964322442768701137878838651402894161186830046354140332340481975649585609823162432407569839477895236797490856146739244602840234589917815154317410618986682882739743626713217445878003950896298974610913488401785177497929287117027164526796026789406827311222363590364798086159727930821223420110491846591283432709274772226404727692892085506321147504585367846710779450263040314721457268951008220601380024881578586818621129586940827810981626696482547570906686143263888623224377254661737045961231201575630731380901942839354721496056953448100494236658284700092560039418016071848711096729408099668532254881915530871900383918117316123858001171197525922409682033628348583886495998188984806488831703891948629837777246897093085094431598889325979498359255447692797942043478391183240704441186867545503311929513199545887259563398870811101630733738874559165592887280852675625955321997670679449063820481494787675029865712676473673065677338135444702179022954680565972333253014405763258401854438817752132638821329030400283514324087650113715490208679105571963377672455201978359818495669757510875445052736158334404050493192479186585016661448876806560770430849372032900031395055123652987744328698511910481307060373169474924095601850909345646085792983536461357288201019541412276933470391573294200270991553154606522626006827513087123135968419845704495719930708124027115853292514170384371118539388521289330648604444012687924460972523461397845757994026082945677765373956997827064602188865299474627083399893767019673142177285891824494703484720662831113902340796409613768700757671821583641885692139408465490761407629255476210860707272259764758705459031310210742302106705026435633017112430195516283261542553843044804108988812599884845401458199633095228805060549579243701141231622030124689973728312590885476421144114235654651224117474466334107787462181888869858088656023551482144566099074562531539260083882349845501409811740302836073757425244977961283549982124011044683843241085917768145698789858201444065594679009650179492959274244148280546903215595311915698301783832270046985485508240004759962751548100987236340230605231686512445405034607960570828730476211497540897540483874054986205578460707248135912478740894872004797247626527342853065991846595515211690048139160687488131902393216432844596893464965550968265633603334288602262572867146309440634779960883796851724688447861872957009118317900157711982170020628638314961063842622511726300602279353256616340957429959136030040424813934311715114054019796298788816392555250949000958074060239203474323179667579203800390081262165360337497693206986354886250401567731383962665152696281134608578037332039651104937823426912763306784668473170852596086608338847305146565009045061131932480844585106259497841586345603062793681636138490825544384702274667590759342972231514873900181811383989503487012687453544734843510677206837961212682935203461173459877819356974641442158934044096210120145922860216362469821102155279071070047780666771031417332979982372008497025753087495360735322503557690043192047945187945725050258763348794589942176945522932101023527453227844917274373809797886601699208775176108997214687058750905037823079995817766366402455452677465157316314742347578307322513762175426756356697538044161431112498353204847540563863557579254742385239715870686822284119902106987363885629398041661611979028251801692566099785363819163102652643126953499721176438640033632440089975907602366992483793442861551732818250815188900151322892142743268222298042806112596820339097136267218458732157439546494366551121296068627832529363367555176498686518679367926428430262869042111342897784706743640778357984389249581069729723012553486311670591846535035849282550585829734014689143738655628832055364982027238263439757625223489971421801750252576687276495408157135640295292308426259353108276157631268268278790616738999698465390111068054436191520240594683728072517984098799125472401229546214667409597097402853635322061913390175817952903790330401077690585582153486701247880042470587698305713351517039556890602576758021203964222052164244603432063440446517131589534546674330126621005267892444751220786452396675718706318886774261581995619464596357318716722386602667758052051832479783512559815208527795476453674096781926179728604296695273939577105262747838038132933333940745307444819479521857782692011251909227297146861675728583815433143282993952944295122996918075858787863690344045416203486319758517221739166844129132473797640788011815991846261098375525586661396011369094822358909878660658487412298758243232374682287532000193541000624868040367418819151394041954931738159956158374225644765674699032030145804811830683239240780832815084795896980362243234566238653706145445189980800763161698991330374790968100446401476423712672706933030304168589162655482647429846381268235519773783898624934918551799496550844600902380691491400373018489254365231847504612623127744846961746318901304513407854641180036442154067377604418065847190240508404198444177647786241745766164246854150813077890677196337258296309548696428760284366191332428209800371755668528519664144638379887574101675017982171954209476869718162098025407034353064509322872128521578295434820864679197438290113589038201399881948865718256862426901339663023054713819929769638000071121410543681172327542123829883015892700722760527820717278040162195784251833991907677789438241028424187902029239379752619068536743631180961739520527725653734358130098472429268125347152651767015410236560868296756114875072979627647093730379669037846713044209583922286655889062490638764934316943417352275035421453281820803798328851876299816491795124313447632669760261301876161104967601231178590868974560308223899449055909396804077875765330032630427328116501356938902658153189731691994531777052521657588434111994814537086599641401383824684638513881792034499718612590744619097821524022946438658271114914722283387026974198076688364761540938856716393450913813884954498455276796560747344400905844259927059106676321039213560989901548096962211331897192211270087992233900385614965997730443951496954111944025797430775792660234409425824515085059387645039734886077310059024507307972227861438144686959526281347856353803006438524946549567693897360589407406404417142939688870017923467023285235911209556636525981601511257269209120234283213516618542932663102397989787710805797914088953479677238591311325304287639441782206082253594315320502397564769335525808690693791478824143185257630238014314858582764668197693954593589096743672302569818673734013915298740728752748132467151836388060719137340822231828740651378981213445819661403983719299795004646020555079661458159396043810439240434498492436582007903697940239548438039879035539536430072422878549978574792169443447949184863809697544130605252528815628302471257992460809047921143296369643788116011917109454128787718168088829927185558544577212573177239489526208972867076130302793585002652150652093287068829057339937003031538246035848710344013753265658776202073431808179159799833657526414486052662273289743490066027941738433094984422780660627065152759544960507416417100547552791416318430211030749410212855482602023283492891042131023940187501665553058214217176813101169213110306792489834265050884568839447716561861497961434678993061213225419123941506721199762031298988655930845927182526544205944611628615931005550272899726735670436818099269956448602451566732503246352620461439278627045811195032602751480535541812451021832769940997388571136732675465752380932544248194406060927150365808072312183496192456688831567847330181135428180238498704208517786403310169761434790002777353320659589821785109798216594933549514073155558975902660250440081328344743670960374642964836944534955834793407092623964078686706121702620924445346272161256514016733094207322279413669616388137939234840619452877490641936900242206294271216901349913511987350737201089818067817155868851035466953456209892871164031997561872061925829421338211604111074636257819933259274182543979661398406819095627231190858638249184554846126029897100310643907958684090666175936430504025081180450376224923944209047378787960595789621883730104363948920304197108661730632572805741837235303944789275336189791898355127676133287620186341554170312154104081189454951762208048129348887653306347792290305878849272041210609368644637266951735379721271569985536378413686367493065423677686727674068606678296741174767191414469133152768117928386272517562025492702145051096273953167167656595965146051706370160014286923381866615251371986034497747073187361837830475387837584731618104905202389681265891689865176264435746306437719242987779268580703073195807786135146555777164554885473914000201077820174470898921572696651887478035340199908799077664267114958253260462999028673904079711824553473018966509895114343749398981980566123161940077668295633710357164024331952387697552850775874134189309976395577653140350587893697747488745018011176386800698581703124311587581543053945255156677417893380432898510527600399051550169586277994792701857622416335104372278458788780782909241639857099264124145026193704190365323863004140358314675250025942336590837887277337092348422558578556176378157578156862927725463990875151171923467516661341763468423891626677956306616969760902592659256959870847332386051259424002718286345120596433129099275069725470451044748613235017028943031470800923746843041108841737907786893353391466439928431845293563485304635329735350171656874852374623924470340781223117104772674037525553102994654634537143452488147080766759577792281884753804964663582671352662481223377768447134599149509088357275350582764698712839741620897043706325342317332565875144938880144919218021484689897505773733386396585578486174983073709994365284395147379606648735509191398281871100206331343409135094922184490688311691532422676643881114302956939780097454440593278708949138293674737864814768871474727745337223359132910109846819792626150544349097922310998322950972320116486824798339608538245322044570667592994606078056371349550448663841368803169414027223073990249478394683206497545259050251758556597079892480978451230249562673920833222434506458577260239176868125957438231838755135446685149344412219963742617700125931598656683096170752421070646776517963460508855332807590116462054417388689930264922942103630420613552935134801898311740502115269887490460540289092652787667331842816172963108382211331424224390871577216570025753378339185536194093336824140586203819532805946022874436839422269260461395755808551527705426563894842809329336491081160001959783092577687675712708825818617302386586571016792126720805092756187134883401383233203496918710089163539593687403931478229698684878062655805002588930474835841903156479789917351942347960438253379707622853056557178908250945189041822714122397418160949981061593973934287772021958242199542799711026633359893627623175229461282564994337589562590170377292559898700210132974314390028335329152675013857653152041217531167269703188998913526826695271518182421775612438088961023448593064034278560043211846116966713043808284501773443733681227352948123006363271095876761644227933754264533665733515560177337656572374057653757762035544779592288046670049424670970114258216192456910489876563055903740069978576154001344681073275972791207864593835541426621291192149055108878027892742971152667785534749509457374173096775516981375256544896679161809962013529066860596191618660257965633506264577549035074767710061462075473131608057498941387835491381943665034688154351499496028193782560009200383865130082430491604945292262336915086562536326765885815571140704498908504840537950925023326860169357874292844437702508861139536404802922625681611256616891298226208750930552354935026744130446486532316622673708731084954610730808604533890555173850063097004851284656391196163833131934277643747800697355460888683063017725955219674582762796496193556015312601464566449381647711951684717002582100742402870781989161637595400336068085519561259458165291561072631668773058912748135916230298558313631696237786186247883351993445147060316020663328039876358674698416736239921893789843843460771793775441037468339541591071547816502523271898257125134900022678301993575277452462842745639338058212439261425418855794085544120021839718776286220138051929367587083085432388060217606623616226486376862614888043324312855753000232608791103322739440392577292257698282326584676094176545556996926405697205818614333564799769182875378255679983246735245390491732011414294658634205128092366290752539008107444985152724991098510870216558902491841658477900741054139229373699111383136300968460139403283665016839115171790087242354752733848514505569580364075694875239399910038311108410255545985800872072530756272018058594453554636185759895907197145275856875212030418952118591111120044562442569476905224957694401316206150499427142550701095193572245197350593876241000394423918817987174096908684234571341843626536523205172833724572126866728115790992297875830689328567320366277908942918099548738090274539408797063248388972989718332022590461746909788175218759697577384321880904862591357569322690613613192309268424750699231820902423007190320331797726609751579220841021797790940762619964654397130811016001091664928973212602189471729288468720340681766955297627996930033157605209929656239577313503030587303773141621912906525912318862891697102125513212235573252463833721310655201011914503018365985713553287585244936035687081427771359811880749655071209969142527462347328999811657537447889931231804674644512875012525911940997866230993462114082960994753346650559715947153868226096406931123771058752581126990902690411032136642136782073366857310331433432349137148541741750506600972271493046923428000908157954010702805436547168610721919640050408449039451799512300145065438993672336859636361072516464974658353253711106550264087060479133252594369926341665211194393604697571301477771319164997742751836850726853554058860260930003226750432965388297868278856547294554371817281453900482828780666929926458025468775265236009392935160760437815390251735976245058277574005632091957454844608712166984533313448638189347503996459217083462264233464760941084664419646187480525199955183590556433199791777973013104600533223005440711563582282155237994546214182540763870395259472054762204406741912092233245079757598182985895801179418130778255016058418376261988492208144401350300549921935944069098954738208831253055086265344516778958039583213544989403911463655608902992275600175993185973948515834209971198498920995596438028996760980855818927589223998332463504979311815940778508396347690039443952038777289582772109659828967834329078191618363953845835617030300645864249803846695272654437394165933828988429473480941511843473170301115700916218266610931927990512337744679133350961495897075634696290308581969991956304388569019458853122780574275692582226621266438010121770348673770934094922780707842372755204041203489964675166585507994735741166971054893930759567530248746694778651900619369824785125818518352603682405954120199828474452380678574339260230803441520961590246991737027699420969393292359063982414195303548487108119033983500664117388038064557208163449530826783922997010964947166503190735113371517904051468952681849760040142077984851981955503899124635115403390338424361868685641534870553319029860821725899179137636372586437410335000108869062792155509613973401534418369350962797104289024235847487332092420608848094980680092205541928793967516865452025171880463437696575372818556930430919888329192425955569649129391949883804982221161149354975747686344427281875197059433155779825596104137887662544472444490321264223284104675101670408353583798801315184160071391063649933183025721794687938076856150494054425720058583869961241923243788863843690558829904956904768364781193874292285216140271586650158118851720152460527795361634434938587035933717990493006223039840134223102831664140544533859889855348971180960994923409281098175360059687734190059694116680522137956298071092213596901801776491810349671633051184997600501699303299809264159284248987648516210560831952590383388819613660768907015485267695781971419583862289055412715503475569434583374139069190406971443707680831039388848217678968685662433195147661657822211569241601641019322760182015504535078939083663385906311911714711381715983221045318803815764569530263490943834416144961292223725249777480450837576211433700955834841775334005138827380774707403490643375835970829040352856947610355788094401994080953462822056259649561777994352279354452412675816410038922751985473855520923091994558067494693142783548483343730954178289572391377775957702181600360038080514637755156654187517090678860185056295195699662079555085589881159958707289743102033266446150757776269790353479645662715494364276365720543793103026244386693194426548488400455207481737042143998708167419917516019171022272146358186017788051055891744826690965546993254549766775780538091779527242915378695969206140420979106422529899660313122885359283480468083681524542618447238564433209347203646417372489212925466561934849239813742197571818003032087832559221104316300964117820398135599627806533888607540619571216945473286811463153477880694817644774350922476261791815183212914408718688286051061638949037871211220705501783569864869563648230369930034571041270047530297023406112717914753833135577268351353584446538849301299700601858303588914714875843997378098829072472474973686987304794811629789073493577829405519128266097508264008661328036665169093798260767974108628816911234433241770623975613619465097324773824343731677315288162808123235021902936113181980794101105534931134745637466151403276031019922036943903156797616404145407897424634861220326380425840924761631730014495593801694475924651082618509808646796760631281674989325287332972475290309204523710075806468312389995792832091105030040707178574359790428399126333145788753152359825002626350516203850518475789482723709341254120755242574045149091683440052312835910902816141480034937030940241180133637424578809573968674632116820089241439142383812871617203427305341227462148724811433159672128968658304685838599610722140064792162866374526323774864177639364661281690841674478382245486286665979253789107164109049460169272242979495335139210224757262997055964477722144521228819696864867367807026009410988254142887582138489025786560880804967345710034291587030741240707965631993582351639016865798399011111674739174334941820017609706162635528086698359716043599206464882236321668528542384319766632868444754144873733569716525421146035618098316332213135185415337053221657632287186262796410612125581992282550757709994676723972431343721821994444147215810943998954536245211075769351883797542909098346989753998480797229807106333070460236063711451609820695658446121052804345647283776424624243901229745583355927765941527788542415691910890415128111076523219889466632883427359137851488790762228192077548688053685126049346727019275112467515879131628078182932876755435788354072032061935126485305200158462079401037760790217305561136209069856984996476522076664266098017722080432131402029722731212728640950059470215442124794391337989750956432815995634075553386529693871893566498505925629501539789565813194022831512757553279270211050375531474435411095274247210593362815781452442878076512474326659826987975146296553842541051194158454729918632519294530252718161658093333321901581546960888839246583351030495222300588896840628175138352452950914683871501230038187621462985179072783764452168520949253442590716901909240162433089597921901594682002484397553006506477560644990162202137609572522885699682500277196954795851963013178965607629575271670931727325218165262208972314559584508956869311237746482881784217914030638160908442168244531202752300810385064820304952441943670502212248053163286542531859166578913692314212541240827572066026101348132037376332000086841003305857366744493810969431390772594792468759782899444939903592730768872711400783686550246472218768059574203420451820977958347079229139876833680453504846131023707210759789117924239099385741702036128585641864915839713059126627881559444280872388933761584005241455720084524303124807849021475405655477294734692890896860691500101464423979850079689447561323599995421906902584726151029236784224964097588659920065680900907764126656042010121010179330316184977754111984969840779783683175408111109937902775642735266658961771609570349749872491904360396119655486732978804955047599065095838027775990333062402276936985115906598512904257852148653906901298929005676190450261517231867845400762874903456722240141919954022393524585985767019706477465486883263740283391044006616168205883171974935044921874317783899321036219166691376604649344949452428327405134889488194434162697632079805118145218576862218965498870489913249511815203834601933918855390250549807322701002723724929727360193070688930926990441379860527432670040230294223987422104800843238480468621478044222762539857579436169425477678943732859409050216749956295918021944594708611761610892069068535441854909875485099738060734681044657441487198086691218101057932844175242380819619631387037615090302263180200069709149707742340423456701392613911008204401769637643942767370954147373915707195214112074998970805723021324983905787438831913771926420106692781391076848484374031069038305305363016355073584825410771230243439933508540629275444066284467688624391833474267782620002396648960221846474065548300251356623647069601023979060140821656921545399866153166982162917801274065171296216519698717158060107296019031221323193867052633624861132007301074310435908856809089907049175228827637765848667160836121434748201143547937068698776927553621130670164827129534275199082137426608167018874166143888752226454144942274158078173060779256042031318468799001663396506115695077884441396730018645964577479180259557721909607797347796925153005582315422654584683460153415085221579463596623071434908142520862615281081505690767605769946799129161858356578740385625236038353232548094775905081378827820326187385330801110578477199350754802763440080340704299409964014300886397172884768965383923150380371642927508237156490488184230200278646324841140972889934618767664663282617322854852313583583195638582002494458215207225160413949397196575402080931497684107980030835317087406003866059812817798936200695984847295175734663067611957203316007299977071786290911362541673638850093731334942790976278302063087561171540970009398288905235413871645240125451483451943664711668878260398155215762914649742178550122133625533329955194164079516514002040544870854276850322170915481217895916434289304917029569377485985818305660731942022292133598555318356582456530585176902836317463634220830873218808504240467511226485864246360242542995021729289493459898444758982777928236142751514112005757486347169256861931100219561654420851661535006356712703475739788650012264813763792022004677428050206979551332369791763957858113331362721682537288115770478292329391488547580645007454657624497341417187133855812568619826111512537227421440278506484175032535107259371851777652366134220044224897491971041018670067436987452768476768528583653840104462997796777928544708096455714080088853355655390506534607456413255575215098768548470323174594265511568561693078542453607189856398819086113588136433089671982576180148605771466944655273172892886753058736532837092440901177623831364793422450336560440348609852772684937763453923880059015717493614699986882903253293060730860323750428236951882406376964555310518172633276803161278154320457671328857304384436369992644476254477580023320986980025993903670631328197516692785066243477973514682634784977469924733526846732799090305084895198357055242470345690966248995841941959346917680331123981726293309958836943239234892119989337851960809661005904567867367708049773603732543569700505838673426098484101155105244434928492031598288130580092605170386422069406397693364055963306952188691277893707417025680824299695098274380971739053947806151740342454895641827023067314432135766851155760589635006366900233372129585332696210412414733244862145537194693544484130181574557323429127341313739267339293645188935763881167843574585508364514236868142607663115155657061650004544768570345336908965854850421926769795676577359358388320577330857121775802477335487518098095598508761756683555277428316242994459167585309775563526691898403864806653009539686980396522546092710373706230945041560853574748789720172091956269373089197792318518256859887501416576809680402130228974929732195348569055503236937880646371044440614539384721590705043014527151342946835926565874189475338826551606526603540100375345110923453264368793768517917605790875497556296310466599723370163683893698354222971964436412276492349310141626072662199369507406476484071040062321236512373368142799848902158121965673467257179448865716422830837873754143768205409265779281236394937152528976661718794572718149470110474468867420432907905057362108222604851381712070050757386714597979807527842577850998965871884047464102073318607568439281802633224701137415852838511495448858596449014031358257302366293692836538797989407106538125795700648754804481964327847606971538351967832374613440219048241215872340342608960602217611891568923459300075487313890762226682107230912334915422951755487996800001443487897767061432167595380471378131401341109388610344196164131727487754111505112093728877919102885599948793245884891661204280639738676702297366779101573437848159474954886229668008702550983624075461483901102782231563967438233451046332451268800115409658485959577730641320059961982168406680037999038710450074313022263337222881466492960653991640310895847987685884645995451828333025200715133823741763432008003499480162118533866862549921576727305877815180287929702409980056050497975939524663270263516678517561655674735151365296435870936699087887740577389731659020107728983351935505255365161776443623252532748626651871852937977477141488856070584570222106470558044024050601978949862426655609806921788647569286665135161618671070835854413389230519359460176479068839428974693863114948571228632535833624562871496215271546541149656964669103816080127885685584551413781855855761376772467174940951436897270451499952619736504255092376762004956370136779306546334440710202132977094365344259610824593209353841126149020088294395711494577835530903099039274724665612075225046934626567309867411751416518703362765310826764222142504859095501059141744912848961499232761046644197745629749702762643252797158767927733522847597910368393003994359815863732925729663435421451801663941092339699475477132500425684471526268122442718620363151781960274312588848093775840587853409390195700454790420634056742336976109199784510329957330619070510698385586524153217126834146158746914692396551396746767893757623294682293313053797537939077169738045193466511020147948812472533016487610297449679594008114096355892414258799251277083928937062295156013386661295187554772345098855738419433679654271388419620319952237408258439503368284018845106747023561157706486131813082808119958655976212346356767943575038206897683607039075914595607547678812279583915862345385713689728910086415577080221480190766206244784210631501155656096901544772940250746798450287920513472543829345589346537057739550930275748734129794341353148898266785633009115715122196711189827403595675834048100325249403422976596476257086748115024443406010774064790262545940392052606832469050656640519998108597575018586112062855237109301733031641466922549836652347268952116674530966395249768608291720979496776440797643199530696385747756018073103408974934983884928045187912469240231002800551816612445510446328597730951125082277211478942309151540219396309995403385164750702467465011052682057905136959495860788918241398884805744237890575844759045930643894657193964340848623700795092965677407281156475519815517170768289871424877687329945082229216468826877777305689949716435416298112569078394134247880833270068015283709300045577010664957925827031596802763719901236959942471604764382163780079289886925852831849873499048706901130410720012524543210521684642664473106927817446642569597389576927574123202484696801909221811751976413613406647662407885463582151776054092722974358961244870060762984608402679126864309809143828292574183569700989478723402249309167560541505508897649728027700345455065283924700616750594445658571546031942532454284643502266486964241167580047863540274313652710768341505561500179066680934568104080537099617728730606782659323160389489179258265539433064306895371613182846312882823842607496155318621977803979240536274811150150655473868773196956758774890395764612060605612096621878191106845263603896855310456858257592739260950597536055871476611193907393932962091784925077764916446553561711549391255152522838047526938669082189118884074054091095752008242570112321764001182143074506453919404361841268747660718363967619588285930051914905956394098251652704824707370669955885685271724028230157831525184637600310085897518897579322692785956455397603500456392913289604275170442034166295005052689783209606635773477903185225573244259941770975792847776962225674072587930874662823462406582857850875291575615879971655396176339654896591384830813003292796730109007678578139690171219855366588413221686621370879097010888646651836509531827664863288475020169154272308562033076940320160963138283681332305091197752489990406633782521790210726548095642818160768334752554066836443363803929462794343825786379913939123816581068172821667016600359325355688154635716073070774408177532848681649930151431841273424103746830556347135932323088882273882162049070019778047356511065143935366259986506938463554365179995649232919069138137020645192569018114652955290505898598883859730165086850568573023608117564716601389639097436689350404278549385229652516395055587249085468119960531736481375481066442049304940343121598190936457095005522137716770753165108743374951243255843920839057001970250204617423630029775547371685543754699663534423393136067292794641253027756616786341176331833897426137089123478305538861778118451512572992459060910694263578719312673930671440449074845159023463931786040756790389096461740072054445776547329253573138159040982401374345308237206091635125961908347880303302379349768771138746531545708270803157920877516782481659236508746126324756661200244281602386873187794917240124364045633460018905467012692145746358495879987761032883503299830906730186952489447354607665263354680560931665836090054739637191483840866788284286501055306652311363440867382744443560731484301469082373683439605526881605577761212412912248685773352587438668255615432347345763571498601884947449123356233775325055850479891911280194664865165899640182124406788085553613063208559803302250085015695971122089171446319625198353529107715437484050898865142500015044342675984217925978937866653138270660288365731356609867600809406751023278228843553313171514584157432397510073597312731008389712953788069441943870916990346390885497492025310407295473850634061077170576332386732606703196302310629837651365284004029149173445838680494329766785088920295578939512915944852919249568385016008720359804482561851836593648726056519505213419169720865711037993852828414355915409467430163811752997174165797508122545527081668552671253038288393593264316758474681486863260625531534840896732857387437719879279019411186233381082915384256729153204876574962774285851688410277876363545119866231674758025065203130977881802464562575701748490209362769586546052436476863780167635020355806440706881703382407806749254572656508096691846024792134585142322322784992603432070291275220927988204823750606312109567038802333972438819393384503084591216024149654020628126288565860730790243466509290528684758761738305110632353242065087141640994312998736408178149428423851520815321216414420686265509769734200684367407136831721555097883076559722660599251998793149222880358553450702667920421801159675542888763612261797831874377302387625286670537327948058891298420004367129626109084001479358395891532790019898292330036767846668057487026217848529674250552411874251970697644228138624149852549240281600419510531719305389641171394044241427931060571235449658885607898293556960984323715758886688799906540095133819674879936386891342945752608107866149192047873869895287996325685835883998494774245747607095675567252932794663687954048618981138248987088081447341483128762864804456468243214028986546286040161706642387731020757449044347543464106973085567947908640318814145782612945605419091653236568614442785051601692538657696604770688388252465638421906577091829677586745255175141559581678262345552216275243387791235375798686323195691268592503329866384668155461239359528380214373707116187527686305599747675174182858715880663351741442970140654327579692437084157872540180965103864189113325662621331971745173726507442042925039263690375151700633562061213777853144647771451986517791194105584394873880233287674759245354013442223629914571559029896118680503718881190755804755880496086961022386067906156392579589135088604903883779584249109819815977010972478522216920616236319315351526098845145853072229237318963758116501880603510630661300196857684574795639143415490754741745416984450056869199012550481311355575574283545872268587555603483888431637208333507177637430360314528200618580903419528733817148507527952115830696484932761524923409228745213798109622664717214255820642260986261725039857586127480974833820288504632975070924905064059435743619570383356568893366465945784381489241611306484729556374906283346084822951588036177013105631236012496565300842652459092546694139887376376861074937936553002003612088315378654972912259311687629646033475307303421077253197323646367484036895945997690829601148348131757341252744852092358762944964758436827719984742165926066336213639934032788666290887317665225934066139662653011216074023424724037667845210311284163630016870026058621357898887945101324263923789532164435494725208677783075561956153568206349141693760668624389988298046155586526781146257645894009886996439251157361785771785673543942699954372423216509804453804175381688207298945195785010687876662350502922443235857072764931586916483199195211807136827221413117872023217951838465939758118863218044408614256908107861648937308460266173450546122091800650717732177193408663052023849749737248714674626684593723699216232766035701130357359976815444480597126141165660137207263283847272593429043628331181398199457131031743278443850474829457364015385902284335429477058527898466897522167573837424096036518638743096656747909011486728510790941970135416217400111678567050863718736591773104439518034207140878992496806683181727153208932662158981752221327026000649702221516446007363125204370154861986434935973192770814920288092278384523997497497381945864551397674225702211228743063666395068803368977539319081607901048587219071442440122807969101237934796728038804548226720312719833962517628904968160198814596429948025929533465603606887798672124015162382177908655796197482932580156890720933661340688652496110838839024319218089292454191838390568028890379301992590337868951192494899197720044472047506612294361690206638941688540110807771752486970836843075838915045015696703865671987504477164917002449166159810336644563403764250196486272746129230880454628363607429274614936750041112030966253337108772348816879734386537691056195849241991399101530028308835101082606727775879118996657859319691483734268967341409921272204502666635718265664745667548496977533191968068259409237842117243894418198862139324134272084360973701333609739365315588765126145100061373110649484447805174561921932712623868500184355413300584114727017632910720009107771473450439367986345690506516900652294552284699919033148878722112313069571285998228966370083182123512926298970570060034343268788473931166351875096246095237177865822363608864406233729802475104714591210303432740794117425823921826937646877776168809530402384770022550176076587724359655530100893166575804000754040055242432801773842481322801680802111839562318117216286753436631258511960619152521929053917163317751802949469600900465621746095423993977434187043499392174050198767322189447331754154149121837171885397712813190610514431237407661344811819963109747426104503897795379417356153064293543317029365347539109342713317654979163633107311087398121236095628495809347720343933764821746191749231139388152650759890102207455447889444415069603596545383308531932495815169099030796698060717161821159417965281635748601063256545898698155226459032352918833680094886507967308077206447430523197411944069435345253289734622922086386102556718859333771317126387178745227113408796886856440211982500104628101172010154723750422272147680562939441324327215245157198046929785836950634065626973971729477330629170778888160986180258941374889755195971267159470992296335118736381764939011444140515077628400281491435544977609440891646100175463735888994394343266337901487364335099865387421500575650229978438971112183505488099062483805868885937476838281281851222942661971677113462559412379667483000139288725405699170657591541737820285766653205020187458463853109241743956128363340432068470040724550098903961574742354915495262310253276620418417792932135423932628686389028529142098386898830553737977658429166518751574232373435340595554487434737735335898325196964854444573596427131621950490468637141864055426550727911316285717605004826663256573534191927680713388304025386260541802012750984170007984251352589058844327560267371362592866517490391508120895292577198469785739765065657725840517835033295685299596991102440601164872517298053484272825434404180222096800077165369678424939863647887290982497818333012270298615674928236022864029764603580702404690330729579867386322570056642201885971687225027735482987919685217974753298696309852413436459110284719788651277286027132484894727748893193052536880795731574913216258560883835574034850280238646028339809228566521665983493707881965169493257828405363686473106690577451309548796168507040211134764100669413373952855309218426890226935654987694320606679250635243211575811564972205098531828839747329741027446426871818239367015612229090247075825236961344262346992360132576453381487596786069483187099840134658644158133969094050611631662575914230669609693924356501105220860739520452162925732828080316939945632489566449989345974695760018522279422638829236430218052445246025372508748028414840957446898594701160659745608820682271003567446226820210447460502828950886337081236801264953931676360988704170908482337462717893316468472370798802711285931846866492610769607138009229915101980813497155331723309440556224193849886386626785273773752140039025753164605395831867476652424358633832424033652724772551067622299028894917053883141253099094988949765713713387323717423331425139181337906148212801381434448457066685747287073246461490436001348435107200471524217683192252012424571982808031547612205848426231858525390084035238215725807102937059070706880083444670883894250992789257845309903424448135551690725152370989548802860830857056176405848108574575446262682530430509397580954878599141394363583092350855705157203406524103463582368064363283637235506169262100840266553189712183498242315523084126848344416956890839213426630599747534732089050214545738007542554113247618732126233785569749868229103787818079359175728651960579009251702595349016871551174868654707149945264005727985970859951445455700180392074148062806289020678614934710343869586862769801891312003556516713143337089036704196383489660885209948750841505148409316608933678200710549265648681005116391997741976644102519972531736948297728014350894130914999291785900980166084372163080511519644216161578972154939974546696708348294697548043115178603121877078049705634423991148237211647130906331412273855719265555189456422353631404540051456996185046115490255793626673014083002964545404956041711772334301717013405799633976445191203752336939339744565265687531378581861219380702565182284777441541708096795033596005415078561168344188458297201038835638460721328867619995149470154858179828902743667017039293013387980545649473433035642848779940448843390827798648745180765957227546617031989516332093994800141671839645006150490537690109717942697231098554556142154086510086867416172985719245679789924621231448059969897082711383874407420653414760818991562131296404321932672362960988372111914163584671868645741314258548286958640894723738928308830079305384424097532183109231776156935309176328427423159254899958314902396642834723008457631315959127578782973868928876653637512291757362695575342999609944096242350465856593044461989608802313013491843562884789039124687034468337467156420096754645101463434670429406973860248919688040189676436180489110526326062267704233008997479564893221965334431123759776817302619319298642401106914958515640188637207815765920929028456129899568626011719067721897363900026162249774506953655055633905017710259541877873022925491324394936131111886808848324298214339698612478839135468943098184368770023917370549931274692231796231045022880910019737626288292794511085913370559588407573809414849809674872425383545662787743420186410882803205170901359073350811047088335485249557600848549154603116888968171577307768088105363571583910169265525922974348202592606657344922398254734974982923114097256194712190322880174132091707439083077121884566198569810635588417867589843876689405752279659559627852722501467114807400343092862046385461425978120037246101917402717346037500162626506333836118968222584495822730260379408821891978443249040688868734718943549783650268157263624898605002737609961386537732166243436951272758991544774903630748583078072993762500978386248372770037051542814642943571048871607004911141590173732135456798031223918085652185320504449979171788405011598506793896103956069698971344353189728641237152041099782563224376639077722337040461721364767542732754663630593784547928198971448535603986297043119062187587904060130709011392277877024403894457156583273052219719665726563394753872382692203331480153794001378102972685148271620621650035204535004119201348994711078217528932471715997586371701316352075766166353680874190481309950482586318234686064245149874580228323897813319741971365330145618400597591154022676758703287387084172391034183754685043497784952622949138892254044132692859967574268775455698133044569517870453062281178394622762688103052551985148548789701413200573820195146450316470901511242125780014239381455503973689188024481578741638652762897000442330068943734658458509414225854653777999065477072786057016179392533384911317286223039265643581161777559698473999071135370264406259709736863237135984391226065701395764605135095971784712751106644105368308495172761101547686215519693897236197999907551705238491725230794040892186894763288107975335238261994803268141073455319814788440632735261758799864080601799791738133231252218284948606172418285407925292310997235876927915533674670413002006259584391351011866503435879895347312810805707205233445098535188849522600723448454499467876377509222790331853118729256847544612556307922379567101572487866008668245829159228499157503495747270559907605412325652801476467359202649739861601806388153045891291706314520406328390746923478486043343447557969396053398216525830965574093956283744970987186505516941913943337295459282135415996853764435773946104250504693770068334283743926379988745922217536438662027283028528675301214588471668125770896918598700670360161295807157293001146220608408841538433316544965574258678261154192351526323495592020537520988439143189446203178816944764522481831133336687418428409763944650898536306563491696895272496269028029047284305512635247803311109143443979769628259945573015571505955073705042277005693876974374724342588808025026731983216846321106161111973328607621608821155961282790734863826843600951644060597314064551507680654888893032277214585723447886728601652500688268106231067531497101576260510671977059832409787471106886055015733388339784040130122450654346669243458681838471855313333800017129997182661183975395608556533401601169967832357958234168218066947049135444646166543157866595194147023365226372371735896673178904598730094262343672889285180737385302165879955999203968887082857872351249113046945578900465147925486246513770211664490715225501384642039545528084018931872508721363455666717518162449940289610582749188928169152352991940231412740611183134990099344593513001694954507765324149163069597936246943288523594632627325509433973903452812912182964469021102871898387994219853344614737956832490220785448391417600792507864029446473105748116228177045699479366122825464154322464856918383743968929653253797395258297667800759334470855659412951421783162636564995485853407154541458895075743047003605682612629064566116236387054055161915631527278783570649375402759389188302714672573101415541588932182455551224095198184897452665286087985128965444667040707008593629292979953958175592575270300649254620442865524058499097950138092950039552037345753325295950196406717745726194730503834772413038867524132387816461024700119871284881429540055211188042222310865061460355903182555754052870497930664020677636722875121967408886863664295130432937993573469176136095390688645191319361219827720090611380038171992471866162479105099823767249501450458543484928855157415750458462745436213757392967335683350109682674553336668322044895242162318449644931534896933511538290512727420728889336565789179298632115649044920097884008225233943857812488626964738488729739546737613897949050463416274048385504043129683406483802963729571746087287794820846081554078482282421831915126245065719866981823956850907062453545255024331124023696402430405385598604527196914453377688981443653114325732214621767152052890157300912124919314411300413412574474536544653481510310082382798830454704071021919612820181937473892056109193475845203177217629204442528554224077552604359496086262477834206191709929492605954270070607990606502875371161902181816432849780379590713059900969185414671211211073299325325172145417336385942710536690762773997173579954045613103606996156097632159598932292776466362063245735429207428252670525865221685497285838672420875238672486668206082184540868332748445318266872925091934566392347107318907880295683992367289607012989619514274802759391364038058482178440031749445114400193649739748465483455719223787506630552406470944007349310941487847828291586873577982724832468763129253430072891854041889618866433943972433361957310723392857929996815889323822936057460554967129629460383372680680011593931028231648789297196069999650267675859876200613955889358249477622288179828829174770453807998359393413874379776169746962173830067953392477547895989073571821954487570473037404741612550760008595696554895793580862002457967251331881943327601101909568598523067692486744988203020004092170450902373987441522301573399481366896099325476047666630666586062734333661290889768584720218431869806223025140876581342174627375858648019672717357976095670881438371347244081514908130214169929393868130405318546121583528406505950376672465937795044683334740840574714375312352020226512088855716009836079888182074678966607398811859561351582099669622122286333222844280438455569698412044705352674036742693012783714614895179827803972093543419404197709347576073059466591445276458028141440867570761704932611461547417712365445824339119757154477810114529129587171992223040848611852379744888236810795120989522459069810752119541956989069151118247530920166258212075975286162347807525347800597373124825885809291469634246487253756331780511830754000728630815394102470401539015962794705845482357845925129326264115974453161137293194703189286442147709490963871503251373993309169062564870496825110505143166326094946933729967830435744583781196879449387945103106997242158656040930479372949712749891918029174818843907818878453477724984114970406749836269156720637140301972601698409947578762352750043902278170452569305215166998763604243994129511174864544684362977790689663767353633919032039799143974574105765269249270869323567222987265746354269090369946261290280767496690342370828449564780851142640601855895833441954982048369350250867591395537390975993982594243401669739460368637716320821109699574814771367152410253652073817105946376049689912007088367277733245138742420801685438649690327465381093592308011725474523908735823089536046214076401748571269743997580642864050158891011621500424966401812331649772325575780146741494893804160176122490501721770066877240594539275639059941604371140137675039164682035762531687667242610666572562919649892770812307661617790080557216330593396618637136493494993130139095690353653979324788160007095313714119020955476785127287933693932294366530629057686129609038668461463318897561321805425715898964282412259915165247521393055366885296782539974920811473962584931175300256503032441486477332223080580263324267018525845424241508040716064203019165827546813247575675077441635298652336023451881733159882664116582145894693336273993761934494917674204958182464521360035009705206152980676548487764173468010446644496660853823164808939272541309302284154451109031253816131594482051360339958427939217546664403976065192699319837045210533477287368351592305192543580423890254066594991012675218809717945761048844756866436641556623912525903910492250002821239687257359788156188351955976102356381545299060342792875521128930398156844000547107586996094777578419545074288041944220663574987327743592036906014854661952971494613038543666687786366813110614468952914317545708922315992750608680330465035562191783354459508109003248343264247899336632410972854873284397886897198238475081042597931437937056856685176945274690155818211524026237265001961334618996755353352191842954998407859256548358374746407122270962659754948355579217841161370887690074417549719365508804648830523830118645327654218355614007040221614638671109052385278087476765444864771396437813695334293278417894050070979911873669602775214563268423341659157926927335185560798313202236330117023919391300738586487068632162401910300586279927370782213380286376947647507053893045137911306131689760502739218559184317041240778945803993866641974903600126577827733121860270784031868801287915529618816383393355838433778189186023801756400743205384062525898628712543121453894522192962755135702293283826862159213771187365458330083041984112100240153515559675265109779681229427912462262869980790979779276179364477726016550423330247250227779899923597115608171982097901613792918477518925804583417534818927917999936942636883071104870516786786654917890613793149225606141932808201818550366250264490467850712413068935936628801907303765045837047384517460384740811802540136486426494398760534909849747038637088922290696340816172853557968496960086753556659801697024044661895194156869254574728995693638325482549242910372114045684587481319449170141513170090931292818211803106832509587212840496100344240173691198943958862573159817870710019244627831287286432641850316851778475413857731374197841037602399821303582698879092938057168190805484009132784036784344747298526719672098252615945259277865154047383286806536314503920313769824743724125944772866404025127755272676197040224155865165921018207988061142809490593533196016949388249208192891899833914868258327117277400954791339166120104832527573042490581065572661410766185347663679819898819738393118388771195379845286249759208546604474601168691225366502633665537637916630928538137960838873808362466509979985162123202721194563894455461605558813439914770866719373353414096612551518414715958771993589718927251250349356101069902299071740156241395375604689636007561240980886125012522160369159314038300515988771298154954381777562503549791939576510052707527691333132796757555839971500059861081740596805020620611661114118656471454766957643244911615918883946833117834332435669382918133676572005109960870493441038828186568202668474193038374587026383386656366628489874499687104342480529460183979349693596346999926927326332356570384290951198235696752419967984939714690482768281973176800127952175712273902992297757178900540795628512660027826286707622534878426166015672672586021627704821391092693951814162382110024641150685526310331439023119221030840987419555780918105060981839299280138141458036998681162277282379623868144232015295564209658155955557576947991411035731429462780480279619208958712967224178739193035721510955218851873907428089529428868547090520564612827710356862095428108702002711502829679212592470586317339911746345720987525225860314535084271283026192704832321560308521405742684300064155932856678023826348957955201417379498376571747648227641064348340520166604700560763873811970103789416343769581804977743678163999656301678287007911584080512207218581074270366576890652780907125045926190374162368438850007882722831407725241302211603317364983811853562690399824338228424508384119412113252540852682483431234563492895028052623689660153446726948321761547590559031792899468053129900429832502673949256480492612574857644374122425688751092437409316724902894913808758466808702319299300966269927677077418433358978178852178228091448198638668652484589280530957384317597850845030542493981741627294832380684033008213218890821362089633386306183440656376096181010710041617850863430535366013242005008126701040510934360029958533591448936438138643178601114543266761902079212677294108197104109819157761867916002473861425926696563362887808027262144378244297010238968375911056125564446737948807113652418667624482282786552328097990315156411935979302210075799012563564857694384197276519645084650094466055922776899696066206753203825841176036795650287209876417316152001994740674591074194820904994254071225317954161409021194849572418813940162570643128269608663141468959343229220413977075995355279921909133098540594236835418578521544930341393330623609970032466029909690450930957537837586438514915647163170100941968673263924400288929446198413824320712963603214751886288094807381340588853745630378931505503865203351210314179447222796533224399314189801428241436616832986981362072478337907076976837132633799387848325215215701094645522531417533445387956480184390332114319151992228344495289570845428465214641712828509786933819819179957364573470908472509319987336131712787142666570959273634962000716253727096083545725927676454194892215404669175179177512814647372100937970637783193772907809145880145268526911684347312940298144299095742977177509708336371695608554902239486306184267126136389103883992808589639688659268981500175176666700826092140413252392025181950706908455209057037993004511959537612310497050431207808583371085076976546973023711764816761198415014071981348472235124962896082320509143018693515274962227492992034623936941965403595457919670525387318760838972096021799259130049420686948775358434990489196162731689473837956654866615715741338463945940842360148896209770614972991873028495714815328305882690072185689363983672464769133305679660982224479147701262819275817661976487749685853116393459161806727895669353775909050252969142085359444379532097757384180233981079069213206928072475837021895169217026128045499705822373975258648951017327478458294092079874492147652364128843075462346950946640632539236711516245918893252265235019238866259461872188458238550216794157588913083560207838548513455888632464848149190802699078727511693299705967917973943611366192908256302184514056169963470672518679285621675507756463975033269392116090767222172915468264675888130519941640011203847806602040736739519482153931618182237712958020255664443475423171744972284135843064666183676531318738368975235327530121571000269825352803676045766071544815339888489631678979123769816607898706396112230405101280014010513671313804328975175410249376871106868648309809037648043501151971398177833313179373006833007714333136285882893464665565329167761483632761286913864135483609793012696445558320928077305987186543976655499149860088507783684141659885338759813919181155978896911586896549040328860114784388404622686216879339622359619998440731139040213465650645547821453370492599658655429645602876150656884014997332907859669315418594610411896061241661342940000004928820023171393157795709617685653172961599165963283374359651483025966611945181393945983074463755304893736423555104739169526508407802795600112609949228695883010533449096330635046372167530466146217099817365151239475654716105380749097530438270154197502159955082588706435464439545315029189805430322365702706391078305328729484513606596133629212805261360325720347959195612388655726998751505649904823405361687764115450286598019094317549289215606791205253439982517615286617139788244027209309504556140604774666700097168439298738963681412084847829575544556392005526844640720185148083551733586410762695995384736052856629576343561070347825636332429618281428780924795844020488667339306005837739870765096082668422188757711505588964027664578825931750451846050411130808225426058496373690044026564814195413518285064728662447839528231832817787961749574668459765737348021380079157880113226193053355560414345928992855447143459605251837927401121725913703921266514347701456607795472154481329784847473440853078970679211490911173762906533634134185236023858237148867238691730909978321499062640245633677392663248373682763744512499498882968576915962291712436511411472546508969611620922602523433031666063208522702476216092441421837861873469931677470559671764596040090871034241938955572786577515504861976685759199480980150139816928668828975309157834775684474630843842662442057794654158290913439949821630325971899171235881028452820707376598189447747560740901126150177990724253552714729894201464698361812285736255993112592088121142910011557360361075243184892124455164075553426629526680278727555967044181975216280796332214709563931530458705983827695983789345831248670018968346634851396591797950605508057948077228495629057170580128491220255218118983727568196290171525853720591006677734834782897715472181516383743249170303971941523950187198720285811487948689214409889694265423248625832275306189134446196514599993391856676568066239185446934074605485388138658999571089532588593377710184345914413395268480275309169695737756241176112017027345560670282553172623098540981033938409734043066936524290742112261341933485045082517197846071996947776300212241535089794313198215438789853889003626172069976149807576327017573103895573124203838539483354884728505545205227402080580159612589582475258534061083624973110893436029126451556453781109748596233254081467206594712525150296261334254204123454414277569932110229521117975460765166347660507101802012619866945673546304876182137011389045136693797615658172772963671760519624021114087213454446261396243822727260457014286252481892594456042265028860882753518540661504473568491480795621195306978754699481095258262956133693118719548202006796966563698484440106147904150572084830674896254251713795401450801336147762269075003841785718875540992511541103757190611705907732880346089886895166048160052747779544527083840694639094967492380023644646074896084982842085783689961648960722672340762423680091458568407827564067935392111762683542017730847499371271005599381501971225979563752649044101334668158400821086605202275632543160955407450109717916837755716957532478139243728384793836441748350278555039929900364196113079496485149239922338527595143638204609461008323725865447200899080850942585869333705688084904405853871590428274447058951362537463966084952283262979610280107781598681268354040200020327368795862619294803349193405680735802942077888493013712808487530230355908883292101348053919364415659938038484482701755621198232459764436520707119888867895956393802689664094603015113546762709929120470675193962550398465512693149994434551978359949163300661292709727091360964273090892596112001517205649437444216435820575033014990450388678678967675087766566807692013167978723398077387207797435566686430225193246685344933814302732307237276786823010249873837910198185114330630952686233282834881766752339928087280868630523326314653052435401242559188862050989558224258726457975491144206786106653246960663815147967831051258881172532433958517714690347405090451687186295224825017453997284859876559580336615726527985336539112637166059938890050645288990100223672791717272800362665328977876191462164539147567554713286298106432307787791729796933731655067922305021360000114817457352123631790682866515438932787267804780319882572536777235949722526949346645500599130239185633107932466959095945376994903591802815710548712662906991002566467314277357951283443669827176510027967901652514497242469047623765478356141486114681184345271959630483061073835740485042394019842338778503047381160412536304151539468224759740846819281571366827346242577539601818729791874929017019067603639851069646026374099251141486775684624968898533262294603229070813890464157383894836104938279934765226234095820467766041669739997843540452955651242822328136230364654118552814108518556437666139117268125055109414584399795581237038282455645540149554307278559107319030215219143823508185522518179715177510368851035414653715715296331134022735909277363743671271968792048242406891111064307166323974447839526171588030364960004406755626578610482986593887928343268567801163519143181536002692174498537746025473278501909488215736470378386866954286599460875814622434829042594897820205695292095349443904189956418000913371075140486262502118240115195730298450518431444733683923549083500262948187640809709922093105892132905389055278563136525091924698347126628960947140590381870945590299482014155523662939686956698140567998867360707184811564728502383286721022623211765165919237986171994952926937783668447457721521169005792954887959747984417357521435184800346499265442239135360014998527654403171676283823380461819519591358873751421191713093693862094286379578229437292112829433815821487716821626350757634242585791037624178404523862636213998589209479364586470463265277327217844209392611019176681851691309946152043446665505251544482108637341916355784354443576529403447128941686974336458661469728382616184302936416035491746529316646526508895301562226589870094876312077553120040504434094455927684876664155824506820121502915079898409012943312674184928492325223595816691640607023706809194135310372852306142205946968380481180629022108007124502636111116663952429997550292329420336880937006320586791542935534261452306737327163685072296135045781889232311532674424792096322315086378801717911226379685219985051646854547943046660792157151733105452223748754003425774976351921076873388273405815937610929055959108109059806828059304749487160092891375867232505976013860794276706521844198009276116049966204542541301790881387338892795610377381440147257573757513544772760842543638881904193772227369245136081698135287359879571107880447017290687485239888037801612112793389303712216630531395376510290342061637678195066316301136565248995114226576636459922495308638590284469202312637827987752979172390975500600435658389014992384157505021474831618804769422802343770723481792883799526312398336969521599703343134259157450494290409169372330099585408753566655334034154712859419866248642934191343781674174776167984731262716777826366427672650443795415773691812701530399480780256108637841159531196817250940010186994539942041533402432728531379740151595794409019988470775885569075263100719979869485464236687541399288401688094609307072212760501005766910902467171347574767182575832056780539853475295404209955298399105687752064791366201680777491554158090570180273929939821751169770290902851119688777011457077385541631194401641161878723395538788393011971939865665735061875876044943570672216932040672971761809627626080420561247686879184787012322480027362947457096586975742693410317321769367985032488807302208286637905934377109122823091507988622995214087765186334646716488694774019876204482844194899064309668221980789409244877213017377707838393490943435334364164136302867031544195241030443793840099222522173568844494936897784480092417853902165967005884228992688252450091025540008712652835596966905509023610612262831711901143158324345266400285206233566082379055903769202094027538033071919934451884572016954636401706798107344561721958504310063479557643557038304352150369462086863090012834733652526031428264211238331793154460866389868445278807632993349960906903571798743642458977539849902220481077843736868933663972000305583194345848513200222341478467801052774685976494601836469548409615145143351977137531866321072876475409571099591783463008053306465575137383362963795420012597234808015998413784244094427359615912177752108617787389866639689510435065100097329764517692270635115219970579588609919728164522900288761398907813517638522663363353127271060813434480493747551402340030899321718070826618302038204522263675681913925388960644948571599427928056005381276453943273442394889653661822579630717206441748283949516403072463545069582500728648140876419441410939150032195906498151354099833420673229131476902715110267253031711602208807803134243444681747800815526447019091803073578631506164287133843570561658768984732019942792585469123228664427885374720533798924065405543548358473658647909268926333021581317915756012641541296902085921990396144941605343248593471909944901830371907259010747709359061890356324647273167156553932053088312533072067377629814139425813721484318186200499030753325099331611290888926320405293887585883952526593794418389701699267178449666835322535254695722648948872872650949176809061282440996863532402783546775039560247524903796393700853218470149505894958546049311328592163115336519734362151047818229014954150002924665667524734930605227085446075812023401332879056225987066320163611033306922661204709887030427607278930702735633236557171184819401074644943924616761045967702819385245813274908768793770802973608828255463407972378313454885715255146107660598090322701265393605503360537822179563459055821457734376395936401744006434884499656971050354129653607518132778903691277032309457931227389445414006318033024733686158108928875726919215922844057428998891103091983889261371374803839581863226907289172143267512069340974102124393122977122144402115893667037494035328117800575449032192124720011876880490249639647054387870441971997875615589073217437693686371611402325479337554135942854464754665470942205012290231404927964067867632619363590379964317031038345769250940850873477080113141752006984918773108341596085918296239517881705187675757936092472205052226876565872240913707242620957126566881294256446398967688655987457414415217094137714375596501086200299908271940987498546843097057318469741161994152053968750833312797121191133681852236776660849609069525717611704674016179699321445115468117784619093884027016857518385295698279423894897093641315873681960627647820467303459319824022499285492332208734213043823606191884300238588182173760302521166840345278196783159279183436694905981414830786630122049636787172310324337031046690893773500548065381806274360579276171036942069057007091403917635559706510718573315202231698060044695720399553740636127161366201812330177700356204920159853464920388682329736429476513888079240415958584515583234423302208516725796264934818399516557128888092866941557732023485156835224620975969067007819611903060157297225943588447490493937161662179850051382130010238041129404428991980013307739552802826344577828222510994559560859390466986510255619589123919783261457555842759577559649155314031315820954819314280841148201527540635648905160765187503195767360657253742628464577441399477891032070105087721216178761730850477832076613997130895475924343574490229926029157890326294240957938886495511110885466916825998078880206973260190197673727930499159760461832832160467685510768023397843587486937381120947576169833101561677398774638837248065855296043274437555028030758603405283334388261354796549510667870316341987617435288468537451026091657604383381248534988224343295371597708951759156635251938804541936145750403415494781061313308589765263992605975141091938689039324899891354348344756167207760015960917815680917741844880952413524717325516383261562543758615232971849235880754644659422691732695557228330367706566685138879016922403371352264626487327467208997692307437752308232036097065833778044036818966779456299639835023755391266008515893281363525603381529665479722966716047958832949647200352241631006194853478928433869003024094312741825578576042543536703118940151957096687427021374905551972802628757487186294904890893646577016801850832866349695083266271963372958635959390807866162845901547306630999945847847238266172600874240376311617444492717353819362307696760102122078017376279184637435793319862176256043151693832102025393474245796121330703794367593513789279269033649389710111116547606229706949122936057637437466875520236305382285083183108570564139834214011131451130856230045542117558618220663102179940609734413103163471099398069213255515135187488736452697606588253226744299147139643016596129892773532698684925876749516403491605140067092998073391717697178246741217469176519330012685440389556069073561030089243651701235033300131958180294691948365065757010476393288482601383065715198675337367726492794149106738161609653597873420746431495045439755851132839490187203047037699030416765424780853495080936773357745189151839596586533168011365657454461582356428139901603011712192795153629540309005557441601491929555014601042945374457508008136538022990208145590346139885485336269619187747150400208178873103004722427394147660718195766622405190728430814087000550992703906220415764258763694462993497825086635975412083278072006701238268316027020419386138487456776925176861183662314393149511834715323777798622284015945572697485051321395698549470572907343520201398487799243451643997131667653645559688929772225347686643269870352750645115228068762056604719570083524030943364759437784458314840477025620831400072706826042010018265775578669111177606940077928725931701062633606872671260068364923113622861652907432577687445064273702967682023447249395161507490666915713967197451459688973955422933354268186283609675822077321349851929353140298073143933318272977173274248317871582586531531501856708101344227027358241809573552310822800921451903433562013754527424237876222065005920037487152721141330178502132424271798860138227896269931843023239486165051390700728497447851565271230054592017155123008729601180839797105167667501080150394006318244299448584572665694456297493025261050961077089046875414401125972708390457734806611959891782007728392596394607834019836066489294137903837037159188063863501236022011886333824183661678133687958016742318043574479652993573805348772415227022106575654348289686713266516565527176994856697296353045908596047706600348149536721935839028412230401980646994448220115530830485921804988292855125475089960193170807605252114245663253211422990459850908320418397079534912381531932950365845457398722011293476615742112233575321103535799448987282817387277063642584316512891623480209905599637586740751046017573038571675412022638138661134613408912868869965605321281827751321753117801959541086028261049745489082285751067497933283448060391649932801634739960804938310508998170777777500043406372148261221079587733678911595817943528787295701292900617558226484113494892024583420118498797440279890940829629514364480576240015174008130542101643632343063551965524807127668294229338734962277790523874690115492017315931342051551363533531353047404845628992254832356893043316059953381591922514202385723134618467248756856042842188635661230556521160970468442831725066424990949647646436106012978707289248811548007560406250471802477823175050576472638551961481937148241053550274772295367355204472741147268286583291187907668766619017434465226366248150992875605400248146777372234713823362714208260831168853516406869102776740788000074076929034767891483263693626146074522214829915503434571470867867317763892368894324340943549768512577391327145727570398997752318901665276746602965002514942615616038034412705959518857740310619544201663673961429409320111946513212007113191500988116748615123139642143489887652191816843092842146239154245952772272193822007729191949386103479964689128911599564248771248184199869081938917326561865530298498457574264529617506204887851745239490107357641935154100379936229168411685717052753426995198979277729491170152256205875066120463625478684164623024687138344241666584860729554398079376041540091058053330803156402833250025544593294419997329496868866999781962388654717573973035248048893733670408752394951962200312224772380652285424731263860991587181254564559843452488646398812965198691566438440793189950517244985011128338775722229895915307406024413187351445011316874975979653371170945136645794405183193818100247536065068084580171150230116844250727829498726955223223156748005084779217813669651650082167813091397527288571246113151427194585514601680399860998427322774610618097069658835806530074541608666675037115905928643715583813359919835070432279451132210091061997390733546706091850217728823250312653667382352536930753069591696245083517420054868942973726637607379066608897870007688138144171182289236263703077742326256181864790366111471400961561964125043630606176709620848279259906131581078433727235951502388333082697012269706581005007766104555616322891058548702125035977471402788364876995805246778741769714063312799446632654297041654231624285690659042579231218266987822279563391041144039895256234490864599633383650026867025699343305734358370704026978722158734986532234622475307939003266552893961791597522078013532973806996778672481901122120865071164173038095388725796794354049877741590651769538745063609314496721566908218557222380635943604851613256075824955786964858861425503585113545957920721943396996647405706151395919592879447480096223935561601542526311432914105350205950121563589218941054084771814905440562166562770052546721959434658026136367848267256409739098372374637462501053541685863280723625764816274000390686793385069911625521275839190877149855011206934888632318318082285504760822102272296207886589498203444880734531772274271161512278017651812134189681204879368417812526706785466116103380210167929984400033680679257467889183781696542634036712807847731319591131054779618024443721315017275370644239283137401476679329309646054101700484235102377247221094321462118758062495047039530870682822799221835971845470919154337970507746407778277790446889063236144533416007911589099147986504827276768420449343768070766087974986016891061063037219358584707380267664843808661444719177994116737520490577607348817770876291761198857825094019337158929735798950652981832826528642229267876207920567752206130094289295981756249469019808541463122214907354046012422733327447837249749012377798919424020561666913474176276711393544745607848066687833358247632483605933408025465558528952766674798069276238977513673616781025265443265053733518869320675258771488501152255245903198595746070430481314542952370282401366174748703517269430881703486357618646856409408676358280587287156191751468778006011941293582349939915925798981976085772740780531295604899297397539133729122618809593446100087856576213168824130005106411142011656785798380332261128266111330454357456956655355212587178409696542589932869762310682928999616279534204493780795311132468382369795148125262387056404722313554608205717754344230943239445306233493112006116791454792165933412615649993907625417919026966262868706050621044972534982730780253545545017827899576419573553359534317485740521105266536498327715923205631204191956044517527697503253837604165178741236297484548864343595946126219467554676319858329020508847576651772440691184485060026256373500941422558171875426037950689911675519875761611921450405365808879624901479616226988990906334465490839573661016294317303826888022124492825720575843638949952825596685700511700683203754296917364374393366900570185197096015526777607230601642268919959175092920728277952610010866949953679995686345122944741315997288595153703471579094243384842601590260944009608589369008974070667517529725337246243689026644523389505007123363885393134472107369413032274115482719736470603356144283731347046840320194448740880884906978344889081030007405029229034702095673695673850977601977875640077051308135909329631482990121570368724548110568832739405342298800171228157589147382483698753764117395143117028085590181216923489004757112421803974388055045530521490075512776121566190585961343324572058637797433389066792389782997220955772702397219211225386471388303737543166238479547634023002311828947645990829591644916475033213673112920559243367396070820991562791182731103587367130558469636305440838085459151248124135462949785628193284046555176511782670255994752054154433587269987533714733660543204676318486053718373909789120450183100605114669077203350857348513480751178015811744524070080819639329925136852103036726552491248773387550734741229357000462911368547449666738484321472668297050427498500823230818168036964368231508630009598726139674224075578623250930409465150231067082683959703743873300368307050908557559069466510098787033077938317281926620496617038869210337353378531640812407074580894526072665298177395594087483877920541161464728926694119073550348563173233693317835158586526009575869871265474733447029578987780263313784505668845471206551554140216641356136388525615347339419158974754636903732180779161020977398735240281641256524604538452537479397813124635402468757248205318976142561303131284736806334839395674465048407064651339587736092398306504914359599990484427762412929090839585497010955618430942492175863789481969675012579786941788388279763743978507867884396164944214990948873427546362944702232610173005332980985592619315367795316543794011441485269629464222274171656533680355728505744815150187239328358898383238217431457775761413082744627512561650854049595213294515115215677252204704813407996750321395007824986502643711582872976468011729981655965870164196865056500240604748660481824793654934006014569840164058370841910821098606505431484699055515369610576315507203865855157989603135571836353751381021851380738668478970007478446714718007127390289917862101591143838623255625793261318120394524089809121086873496659506189312754715357553396937099059990443939483453046518091840676532156950549729776432976047765168912747162943139140198797009165757470379114290871899056093316004652148128833997414864170866192014150391278872931047332393546134262988886699957139529004123913736630165901207819905202737841130335475131120605763795671054922073981829836715843387781293500642026138107996282942246178430369978873614984201941657736342701534560702879363413176580853530330673293999254740721403608893886465563003203758134979288406055587254776280122080291019666660874857424132710400551527930399417374713109965187950718538049645174056570322548494371983427609775752769986004338239733150129741252310748413606696104982779397355382478751847322761836688087512007603640796122154893188701633817795936667551461924138542901226184902316321309446312030289410563307318701308852033490138922006725183829469458608047951717606100422658727122362783301577351982924330878605542415030729310568341782809479647046759283182882194159768355561455979027221121831773434021709706987576251633293584829534196102695215635115351921757911135250454925134836105846322802195207709304687017309164798279943321603573564887440135533479857411785344018809320951959507108674291982712337280172451667085310270850290704063846305333857488201830974900477866680849779773607609994497543903642870805535805471802128157190998896127674557155050612604634916457667690968686086379058582506234556503624250861154953897565836347637162772077226546932640490367859383789616864761999555817786318813168582925880293590390782422716160057399971824392620020383392941129754898633402408928387099677376969092722080949895236790607475246779973265120301233926166109009288081427808473939584180245257506721371081137431959935605284255269995582664627709694976506890477090241979696506089018021351140164871916960582443182875603633852556764896038862449783240005026218439446317757612872920939659081774922055691960334734124843039056491197394310909680149730104419472189449000423755522005164269606214012160508720084192494787955438881477367115896314429855129767069725055870207036127776055458729951930672126036886214421043191716684502637196069290028213586084791503737895983325776252218464429074556129472531618967384944830950234815153427603618293569220300257103136224873533635273564909304144187434346858157196716035015608063179075666454209390156714900274052778300044779593495460845438164222121747476632608186716652147781247513035260912597065280309273000677448848210300985387814445608601941678197572739308421368680595834712568660410647116934354521164308023573195374593980289076419731295667776691600807938152337094450192714420633165368616307475140757298961335564699615854754980537555849750652254533298623000783113154621746864546463887978525815612521497611723531128739674019814408450972871051372146493990607186110554638129242123654896903879405331339403919142283892175258695349783718208383462675463808125168564422115904354534756837439776137719526559341326174789183003297968872149232400473285895374877435405472645775974403260487265413494530040708491130555039628401942521546183223045462619859656332607252082140649615096664394542028636384068829432389529721948624341295119682478648440160425227303777323644619399235076241594589179834456688026993341014969253251975336401169644883359555457760774684561378489182782549452328698887949529356134659631072962613516298361278584454359063237283776216387148321720094381535308005308149939464463952909430919956187182740449446456509114335190494535802144656214866284402140293271470493106497219932646793650604103455781306054786346050982416882567639549164238737918579373841918137968783012362469986128723429661175383290432000476697278489010529871550238441333522241303572482750546448874107362633477332468646244693442805333463743117367197599687909972527878049394641310636185226117766448488245167639611452866311321449348995376779240285907625470667274680905573088518715581883779461011101971769224704648222664453564468673433592126653525616989746964228156493621127844248966991702958879944792050779258827362968746476976751030625063162424720555991167596724978222301393753141387362833047237534572246666340669714889533797367974597085639449692634689124096853543139918062905734040406444187765481323233746551929701629841234952200999899390686953425533457966671706508133785369818376594240278248120390878181501468788469524800026319417089817718921323298757944647808401893346059568192913165572875757205644052242501541253348914275281505371995285729278076794817936007145603598938554650977322944956680141579258591236846078057342544227152272364284149964791546148764210173989854413844133000467345048487436280717299411771739593689258176394179839374115005203365902301772614195416373101891808092444332444427173546312000676370164913004042109629672292519377384519220017909576864007364338412159409806775845709555100526270184502578132113727953469252807675157818068761981438603552661146071165688178570688193843347325162496258166581505819114219701640579588431299586611579666096329345254484368825417348304122364329573124254701916841381448949614521512371623072225266933864585067865364764263588244133300566446461503497428389382660663089245730818561258123555897743151696525255728175793083988340096848597107462060066296719306764316484534848596959079253941062304026614929593497757285920681582182456394022048368901698779653342746873810771661184692930407258780975049486529103528168996561331708272286123915457973718037698500343648546365042277570725509666946070796610341454702029637548373366491353174040732062939854723021043010843780335209173753264002559519144192199874410758827816610868287843649188625389931216626645707019281062369211861485727574818598300031766623408660105017909078525793183793800490440243245872869803128951867215917707970295858584331649610081673192935046035625967209954402407803045786235300593260312158387486807391045021048126425696070519179054044073635681778257347945049209939230563151928829825238849147682636924230246974945626509942338462441811602783274462154933418861680921682559160459315644483946130380157585437848604460930476956628222802436259588990702845715997147844624523596933179351342493642444993239082877254027270699129544275135104312801820639935288451690562342764010748131047958004771140994373625630704845045389886783745704060759643186532900569542322418068875239452103817351618989336166242950834341108578066962196435344275063649918513619885690129790904982979115788495351906866581995303409090776331240754989564673649656746032926676648735588561796458993733694437216706127743526057623549685099474568698143568613541112193247901861267422172712130815165600962279215757022199460332438629580474152921358747672306134547392555493837912782606269818214033830852271021207493740749739657040228023272796238842230732566734801951817364066189999607019644964303126643030206225416077695701951990103759100674627173216712005112107051393800645340699306055698841753270033497757179867200541796429110555378464156707296960825267730481259048701222642400722778392825001874239404931960502701053579010415664185494552006691684511982828876300970120563989700423656186845180455906667368736329220859033785686415838997217321468195690878787033423178784122907363223140687965192001299461224100429369713945542572923130821617883602620426313703440422351423847124957920296342082699542481036532523844171696776932938869318707417447712148990130762012225147350950711880643850415048648347704690616927646335459091766003198816269370481663510600140160933292437137763511864220426688942102785462009783950141402886279543723906269342758530727368140328595712733572622590990338969649321339361510063925175103051821683730244091847512237953983249249241970124753903493610361882621928991722834519607765237426720863994484733507611916069775032119159948881914331489720921744741960310271750017090584762972136167206345588467554120937895332116078484934592515651323754080233088631118888206641992679197073893634270716107058846919392331303289408406541153202512648889681121885798052229795810480844697320591734010529772479105211058488606955495977821459315693783299317671963403565442595898834383027030138866593094379279828026392064121359656209731151312029317535484199411369914570286398775099872895658657967403936242366754745735171212234010219946686995810074947323563306929768539280101071465410507381144759972056629329939760356141275284500223333598032184766345988376153268293363077559052660590714365951022506334483691373323652332300799382775670743156134969070994155607875175635938057214869522160636511800943082761627011251885273036483885070196731028166555445604912768961688067719519071607346800316877188194562998691626406904503782981323686781717802664149764782300620177692777860810990168532475748641931770015944449582096100609309236005083077329081545484996359258715113413124219313547170093713224544378408364274209375805967018872356772396416139085372022927546910287183242417918323222767963832463460730762108461335596211432931850811299022994651119369273221782083772316110684398229869105270572631021120062262610757266187150375433473131471505183335081036051244509349350927724455298560442856446676281968308418187978885904125532742595183328734364396291420969485317549601182062668389221195014948890246994444250494202613573298098848152424680412524717208538469661263409280653253644268186645721851055420509538698871118099573297078654600882737685368422063916613126732332413714493226049524260726324852085115412895719143608690187159126350172923609536285720003642698672451360228651276121283310305966063645657240221579836498783597969920227563919831078333065629841591058944116744279614302834794438544309298025049071961108022506576828060999975400486528072872062900685315671731333924213443781455927511363321069656877404440666145305247057088421835635641333551249722481341945131450148204195458088698166588486763429266002012692924397098444125183558973151360035613154562209700384192328947126765778698591197211076698333148992440530687652360914918831403424720503105062442998735893861519505043163217574874269538928411822827921426447217321286616793141332774758839314617652559882285396072421040703778694078469742151020113578280130807841847710301132884337940346918327340921981021324238084025379007997497472291990617828696098121352731273723305172854820315747377130709960622357958925355329133107501732432302900681864311331247922912401697870777956435652818297998653116849491354050308098962693517057876421131429712232339444872049217606772308126015069869809395307279478565097720226248766728645010843559417184617428715555420652438809192708914071705845578068880363218613664917581593992538660743478227741723928561937129712821182959438725096420747771054022746993193328902805346430617999395416073635207345995986786740783136903307317074881399031987062147841265604220139176926234699275624408132260634728836825202837039430945296282924924993630628967651503722999621403436249641829615195769544132990819117731289475863556220655519713365794846677957552527682479450075654772993086824799437581288441432312041330961674106571243016165340087582951369565955637712081969383714001316492244461682617887301689509681097169827264067529274066724618702639888925922609535556428574323050870114738386989790193936324234281318885544208760149676070858350587502637814077663573488153499052399902287975610514836852010244924879173227916361221984713251327920188131629144462715786816682854098561042441739399190841711822415429076194484602828742491867278167369077797546039460227055002212457814854803462528463089600174259785246380844780886659938687182296346291273145636841473688905658104276893200223519759990666975150543756589232026019894968642824688800388489196850837064175532035214287984178972438290714318392022670070027695657855963277935594433103817722751962589389674678075476762756694042450875353440586027194643241490574046127228848505139712525702935482769314976606217971641661336126198751095777104228262047027501615391133154686969506222077962783346472300519293815161740036811489099372706479432261812474637336182938874731460727355319547876453617255447202714858107758605061425166572441625516207310660493483962488982417211532074772030126289352157881817003544413710520631363813158683097128955585554758879306745052256039310663858836748633422763717337611775154691257562019428783772941470294926331418544604679530683427858907033941804710515923041599071155256707370494779735104934194851261746694438464472231282002757165671025788757163060552358272648541511328884403631907878421604482517767473737411051117209783617997296449951844783125234330925197828876587149862206033629265880247033172131268531644716741323232887035503675789502350385597333979736502585433450875067281722362505450327956544541834284728331698651225949012866918503006870447733797349028218341073563821669282285203084227446573774365795596201050639192906590779232629197175133693955716596087677838504463017265703174500922223183556765840468433077484125178279157495522627974439657881266495405176392969408915142057440415561306219555236342645169127825081753399713391765456664700800727262042555079172175891146160984675423732689193559070259240497903271266660474494520509888401350623051542835249986786744775719543177535001653945445156166789751557977181541488540777413290543430283025215018670792897683494486140967150549527736296772861363419145915486396076247415120507388507539000240925094069563783049717846503266374675156944662089631065923832874298069792013507334761828323294411618652365004063187676501504481490114710671042673604564410762923735681186889204494246760506821920148364170192824817378855270063541701344159501734545116189764141723535608154450982818842705204303406126244582585970819692536589804651865053698075869016705441536055023241479987031804829738235548086687409597286388276813245939056486803330988996294264022161483394292535735892701923596972807506431138087271287486858277202945292563077874169894317124810571705888297672749776101441424847806362587262311853922949609070696456570472458488994617350132561571268202928026323245871850335738985752864198839651488353113013136751392381891892367707442328959285153631861103137823481236100181558327730968087759267011473710289836774952990176087763293141267621958356474372227686588959390527353508692303222343955680494842155798484594654812699272663308164128405560113821038941553317296820463237294825675355288157778174253802215872753903060377655086254429583990070366108250961321388052030515474635861979940803254586396107820912335858558306751047974516695984290609938275682681774778821949305261893794003282724014954965064527008756612306306208527645329474198886855455870646858156170833644346371470782530609975435060511446531663373268378227193042799337282432540361564997812651028443867668754866051023792137238545133188949540785738013888519627140147895290646717508422739441699983932518756472066551984487567981501882072258567696401919371905215286471584598839076788755938451586250077388736493989866435041689128494291225393718273841015711828422406920709922769432999374923839939226996646097580885469381432668917975982221886834357875461385413304871084203393524542016162416149785457083396375027243732214704841305889125530391358473019118805530794972887014627107918278713859472190633728677475286190372795039047210610846609852151828993384156797120883550569484884783056458138963973776751471208089999832732505796344445845917863404484929166975303361252840266665732866157001605956365163369487062575172153549277845231709506140101276201167014189053719711167450834189033768212677965292241983148490326722784220470269738442098733782058350842811320487235451075656803596773842248208816163145185055691616357366170376850212074182537789403993440486617013583234470854676300018457821144775891096624057344735913788199271185353029675667948624864716250095186935524005739770031479923020799521080274930131801827742731644220381213013704324960835949621650988546450215630008189821213226882990500866427960402637379733041861991483982319514417958762916792612289661177637148553293620132105282949241439783131282778670843957739465578808193170846896507360257086085643830265471680362354347415966340601541357583130065083939430953125592588055528039117614046853328768272267359551144272956163326155793186947239772806222480545095117860134847848481824289032376116157811088052724313916212644447534004220492913810151041590661954779005356990116874074985326404989253058680060994028684098565773333903911128319915386673155827818249249000070998167660652146595649327491809528749862131802967546188851282671106236235700200878521839169900250235253896866829960187432252907962676735940849708199262889996418288266161218770184978816146131393573930993519223705955737545395813381786687801679294621210441505844995292788879810771146236444840064832335614305318181427389239207722531512948218251985929365380212145835018064885072731715543927134902189347515855849152690845422761044627492371682592260897670358335809280386884606247100736224358486752619029683397684775407796391599842413242844730752821851660263169656018400112797473106185296517585177463813012936792239050844419456041326510606758830198546087895715238938010113017808709285798293279750275168813055777368349614837321578250367640367800713951163757592160794048494370832097444993295322354174667000391123864545666558967246476286728681730209657012017748748895294884282682656373304797276134830177107021557515035344454823336966312657228843277247846887324479117287813892297170164251677512479542041444923718550698213132763248070412805700292387420276343497233612146971973238186475060520091014380589198923047474389648804555989179292856361485515902232806825522371455262148997344377825809649722413684908183909017312689408316146029053872944195448903420808720146081738329212393518978709300895714093883849134702127309059123219158572245654178533670778019349296747359775067471528215217603026132982399753206706931026140329375326295528366120947874433685188306839521054801312425218769234092287888957322408234940095468823783537196965281440530592158488768086767396476641648308338385726443451342996788606391829666043864520973256236619846270783379561986997685177949845523040811485018393313764991263409970914218303131619930228178807040952881758505733716714232295240718869163290964910027539192518803721401865960217737954695496362682428156958115943579159572255817838191846370368296330448970833019138817814950630463921118345453121668025832204404205661804081963872530212775871028194773681626165778616744849935667135977211063165124596417530474981981453270083419763975463840449806200938207418597136251714863675268334300083029537992417034157743942806558499890006327962600745100358714077355719938233703867704225106106078061399673774219680772677993377224566146018262246431962882008905783911778030080755048101945790621790872078878924747649103212772837671858242272588372655877586772537500261775008364960915164637936782921269488775345997783827742970072933166075970783945163577969811315372976861592561799292343151129991183628880232636908613767573544373924139578727638839761885087360448326705274381954717987431271820964374366009463565279092811010130085935144675332474983498194935547151188731930443596593476239857791349411245318826529250612210741989854276875510451008346749479581715610418909109790046228514630053458415415477166970122620053383070758763118170825806866156231083367836726606945699091504604608904210822325355034281688864398301329820427310366979948234803175895862471036107290921612229972648899115856613149285928555818017091832912444006244054802373071474123966843935564109072674010512106002599942403171312304710194020650510499882254571729376269589727864519605340651801302214218002341279522314401901166013382289131593673149689581636110107110766466436771681593445065358439989019854451229772480968941779538154091126159901416938078870943904317478133124821793953879672438153534267967300282166517669127289319733511721776489444858669749764473263005511996986792041273820860850790876289785540697945378803159363613402518782543866517588025869640996694396387934578456393640997362442519631766533914078465620260646364331998519992665515178647893368585477013563202233091841356207566557147896941987256948718351603310548556881232133007982808104199234275807148917255402031977813825861248007361543606099006463066095258036568822037540381812215938763588716088618148323341028017695202417264526409192364809467185988752638704327021959710671227596097710912713768689590571508744887633928217760295901640549634835532611391630230839767743125342255253923505749299522710579931339290508060879534796236741229543748479769319789875386208958327107501605361219198743692096304705879100186870812951026191752947000377113732529437977139718568338555226759082072274990782599406400403386145527041307389112963088900825078075777549086423259694707355987084662640396823208895294527179514527696951971092476758332950321785719413097981503053856013332445107557293541824447223455266103839423452889623179625017438111173795819682358666891657008643881142466608985223989869028201238254413430444733189395420012699303035680502190239140644435583322004296528871379153009597425246175476478349353234029703640720172959430747071491088406614414809387746989636939975098280132214936572252123491066014275661537769767717848623494791146951444855764626823758100404334565934953026500387652330810462392293055774503745251240408306080951029532026795889808233449442620539767099354534755468223863028992104136425966754479480850342537317418924899423371531830539357712140837017000958906710077811551275142320094156777640141797277375976113411206192483390353259896209313656666603062651399598900670777001104789554853064630708337937107441366322170370884920443915898311689190818785348200151624937907262036085610365965830725997893789046052723200838086295892271914729020753356313559975023642638139122727888785512714872473998407372572391914255379298492021937647985052032539915797334149900154987408743165227862212394847942423527241049648839321842615932215632232386575320992364077498717408810890854376875803995414869842777601585700139616154323561266114154341672849561361738361406977587072791654652327296101068177002037608850850430555886553727641165614384452605185687273293190907796134810762262542093140630445581441695078790577003409923970770795040367230113765013365848284231429322295163133201873886903427813742256183588378243859535708222862900571280520505011907404327856299645623418918784884884104996573670317196101083416383780919687839301813516877136174373693679872168586550183232781506246953934108233393618384465780285718229914453354528131314333640197207485963035528405114013015403903438610111354256450217842709672769065317072712810093226066796745379965866882616540337956596700857347624683461322415973513941010539063565793036392452591714430079767676558012967869577333238366542867664437637075759068589122603987136582577376672415900549023834159413830823167922978545154549475825798246712494278906506375430295826483184073422312439193894002323702720033342819902040489757333784917607733595995562520527397971080258466815345342468911735897038595214498133339849397539832848479988907675946965279563141045266875884519446278574378504360853794627151462075002292217518134995183261625142320009642511548546674113978459880178570553210789827476933126669889640436806975115208275369106773885302473756586481637427791503562302953584364701343346935629145318933610757532595541315917826360354658652829581428623701632079267785171399865245770490511079967834760156184821117729442996489874272739486110353494993167065634488654814501809796268071057037889549435235078583093676239411736082648989424904147082704579611672561347203122773610473624148298072883174202868721645641433544271103445131124736708916190091233720529825015032627705850624575886514244240998714898142416061201672596990296165737165828551887677488462461328518751002907045155492223656531966403264475641432747319156181091807363408551679487897220126741373290009249685931894703609382354958429881635387585597377144729213827627331882082845009368377371638091784161733869952528545471759000288093706840079704047055709720212672933621681461177803585797052605238676752171638549122046739694102606273466548725491841085216636954891746508125234747385872001733363642448930139623320902081576815212764415908377179381008679022827828872632861673275893387954486191377328644769772922342176511435758799704155195744739622540425843084323133001362645600199189299463500076331757481246395631779762326084237834433050714107745410783304915580632692716998087780777660424697845943077419250065873608850121683435973826382532641893781683749938085514734316950804410175811057122325776557366101072514803731438975181192884160016182723368536754468576573593171613193935153809307621406977267828339448979603472292689155066617105015530935519469875342252654020755620231207043527232035357265266410382162489584651822387260663956097459957420684297223449863317608093827629429937401950130005406367881611381135888752320154312085033638489714259645097577865944203251752727666108754169206938930401619224465141265041422661240088690481623740461228047979282629743308943199130273304367929714575262267102165926607580722668373959760640630890808029010874704054741457618296224067676397456915414934813759211340459466643540531720748833567853171121001926723481861643782697889125688845571243125562316887019846228184276052622912007525913445370531305628498054150819032092750929938105366979336720765204128156479957024967708104546739303092413947741591078061541220589501246342008609299056351957276390364664935927776751253195617477972111367031899858094185993003182592478394276333477483911498129990756399117380521268214593281672465386706340359003372161588901232540532481292116589539358579266730019011190768137558502126055482327922693944242435166418515757218998151568554573009666850805015623216180152714939115831337597760313630309746486611607781638978566128944644145275790518244840565520758792454414917300881601347675770880150629684059491563022064279533691250348621760370202215493759730757742560708280943475439735881944312381391655967199497128380084023298441593008142480964839897873002781516653607825986983115089611642817723973870749974799174820473231178384351684987519462889867037695258762432370283348497825893081327023129739274477674722546339714413743121859314353882877993156780982401021532400940973135258205381518568450549062120539352311213001039109090829846053537024030112988194697232969029924931489989125104003328415932645130234906047200307767470717027933074994925652357187081170349719480303707984735788581305211199305616917875346349209656436764136551318187824133797220654240267289217126861970295544402446131152072075183983627828559405215812286190840835267412408901974447563874477836491079605267963578177676043011407213695970999279445100466233573724687785392656697357445537271600054253024497460700644191382516116710840968509929134337994564062409381023268285653516504178794063912535403353609327904354747794382963378633660209995503849112163256022111615089847171905086759989688150400921368252628007703598460174167517223775294432883317540275630336600985753778423727135506008834206970886764926712892806198562632957451518039040767648024112414745711251510032599297646217443566121663389260266729414153172654620451056486766973483409914321870965776105010911008518987409197679207420066649169145911104353841033694163153412305544610184318493894612901596281673205333672685890335662804497715872359759462850906116374220166896634592818938679923429359360423888339503626297805859838322499949442628747516840138588489850493686739890277904089390286451773003669992157145363208170016454854353329086252105285805497133148023929288877233567822901552910155926898651510635719589514250824677707944750266440498272334408678123272999606250455003041496421020281582023438860027308044839816822772771690833466272727625514052195364374948466952179176188331179594136619019865158547569060334065273080651337585950663625520939696504017437135808440321622322998014343841589352485808461288766224485973411284280028769131764965859991198591148498740281578009662393061210134458557641929621294580330327825129030934744084797071148956157357359844884797164900154218670560604565291405380037175802734912509240726233503816259012472499804934014998648580285827935741114574531659842356751311124706293660348484644322925646139251446932125744409081084599530838574154053837776524423869792767007784493138356461450845184061895474523344379350986829564502829913810192515394879675045039318764228375990444403504036761819087187321991545729924108227531930908626950087897957031280984492789721486095006059129495957587931299452650940356911882657911064811359432067210098335327776789685518785227669971359112355271406959720325043683358313750245306987454065468424594800091870392762585361555262254419098267005911058728532338946370969520382016983093582336587855494485982474743933147725217128567848274509172217293422256087459830762847223547951330921107128930694069277925824580441000585709415015274597638665512909769179428815981956115494201377179851705609043708804776883651275132346965902346110021573387367997112903687368507915437839091272866960231650513121415505333581235376402819455200400531143703945639009213618192101470822859238488483787250064787751048446984869710595173678841549149121743429253167818132646256143721313789731476834973779869165054777319262208312448693241880187323695589834022504224052485649155346624752817135318375246577425537838827487092978126836755503486007108050007018173245971730689900649013680856763238781200856084391379554784251360772371328160992039103284408952109312531884986082758358959652118154977221735414507867078364342128844277497440264835021009928249936723445513592379729924455423912773832968801542523563500052809868144029304132455389079817555327202854088437725149785161843635624213498725533146948463367987902478372053208002023732049523703953903179427812620655229182891561580621899272318923167592735862911425386223007545965475170666443019171368492563535990442188679327037202019756264468715635591166483184125440019813042249074891755703308669079403273588089306441424501117191263705183032585034108251753147505409637153144690477773231600461268936209308721114900056683524008947205919444845951107004763757801942825724240909954794584384016498467639628790799708193145386755453861132290575118218016319699466286243671382742882588526803582663752558739955800443411229983219373809131056800413091749815935529245069190792530930528636325398712988379678584811197041576259200428039220369689412801820762416954827773241649487155817791886124082150641058330498228140191901301638459201287490124664202692799016590902357587804800852260229163881857430983761953674292070443329078148941854900018032002788241391632077872520974003584622700984580291820005026139758309494714742616542547755572813410894626186859810270854765164764384080805995429902357315216821076595916095825292014543876455285364541600433386706639724371707548845491358883687392979172122866987045648293452102628217984246619352962026179787457291034687867972610312483824012097743020798827125289966632022169490236531701155466058973985987228576182185830065795105646672329894490662882216775722075471454981736271137420764732960316881411947007002639813734373253882287974041798830306324978419491436508537606991728607376348271747949579600494447159137093307255754745549481770205931488655401870003835550637830942162166166452125040365501000664591867254927949164784591912268067499408865257021469783649128737148032119499419933002322872058456461375841516527546284577084311431306872580188553815155246504914630917739727645048672301643947664284366721567880426707802954235175692330644360684920593252659888397622256986710537160746770572936468039823009193480512161169042620105186354013377067646079728247435208273238311974648463560763602831632830187191514548354377801277053811042933774494272994813821396520958040242385631631445842497189223397340638312131947728657504585096838782353862657854377585850220618932291309383944681788305739610737571203046566144770092571933687686328412172036059403904457143820001803770388141573880424229950570766882535262847080977504110263875382712801572183429641693600577534201404311800392026373766824207782264439171743734217582031469448625689487883236193231996718779996099850305564105895212187731811204877377369730862567799536042664473867108544306750486595902073570115863249999523648174929183190254818756301689027618744613462617759514356594121847158791455247958924950545182380629826081062728770239344988438754653080130983734967149689579500175862645202639283498395777967048218510553408358833577854645052639690958426001310168597778179204165103575190116335442109342076778848222850788923774679036516919712744690500833095122981641918677315164896990593447281284296574540989029185130860336800282547501880161128864369436442576640963263538417912871813150634545385851884952949478936841985238929434199610339019193284167386933717426877831156086263083602183106624934622660546785833365134493767719758458295369056037732844830300350327675301861794865723018061661804554292800158220635935711719676041676320843433348519132377304619264408627738821917672625481420441411333939808143274277444750164344952051351520245790668874362156262669418352429895266559650415215284000849443038368087282480824639341035467925407817912381364591374648993026346857619284164011417419333241343118607612732096552217366437092075943488711875573475446527024513461377866480300572955726088888050346611415169220312430493452641991120526779429607971975662589939400941884528031440366441669107903243906695813585903008166466067558933551346001379672487907729999464346818264641380306145569499066453161605602664210079971510453654944392177587859125693516600486935242847786657553741357599364306183479231617738500133145109887989883970096338032017929322676495634994078858957461592984546525886194086113392135777550236890314710561796970241694191947524951834972498724559081232865158387899907778973288745403109542636352508733169841357949200407952473283755673836795968182323784224567655732466175884337348391522746608813969302442996765060173958562328813746522523123329119320182124285097106030640216768127576404067388175670606928448459030002898968869382720710031626089573781754290868645268323535018797827604902167911484718435202543444053528427449739238961154740313681654341071431394279574072830025198040942015432418358871604002341722954344109826645594889384592307312559373925229705034854527902175625365016878881998308868949027788049226485602785039861318001730594441068936559941670521128380532864030073503891837430567302260246865431993337484624557856085417321471578645175748436462510850615161772686313952024716180592815454850467688920703426901989460590441722865155199658421323645461113105423627502271400620578929716300524036280505798981948888773012703746125727399103883559162812851578043750156422525986150396082027077012413145498361450184988981121825253079705093682784792472627332193540272456133239588549243023721709254278088541210190708192076875116108911403282963309946030132882914172439418953071307802039378975586523714553126496239700858429162380599764594494264713953159345989391791150223813837421825734877591410176615559949731309815522437233817977001471012416519322943621099638162554518535994672358939267848094602706036640410727346695248005708871638012825335154506404213052584206058527646964328494877811146688188586364980567830410930215757939613200618486940245604188963747140397118693110082471548130596957905317308372703633765825546885558256363276472754610320303978821300043529169801515434945393252500418506152144178401330693447604946670029918076150011564768009319683185285233160350629079784283155367617806497249463215238221538236388276734510096734644092533826866694510460797112963771480165874458582767953812897596129953291218504473585184982598644031033200357598749621318042742599668776343465293631073364328246736582545745324176983463615317497827420157915499504327174105890711339189393918107761102919710487629985589949006051246773375316958760237728625272754598550645409301542976672105042959929599295124472489277085959500621586328830358833119632629187435068672768662712947316917864442919611932900777536298209523286090796577466734591948067777295459821828948404297545182839701148570780157665054776433719233772724278545269564372727952462589588031520464968381498473930852083395913321648409544915098655815837989552904323196951124736388984809092529981842173935149881031149025757357813041031945423160814510860382072999176385340147251748534830963444039804179735256683542893620164894198865835204809490545596226052080525317289314753160478781698970817962591981860508930180717315009923300788422445717529225950583479452434214372567091842908707979339135013347683864255516241647351205284415120535825890958688708321709147585607048926282180330703919262112571576375957893822411545806330022126705685184689047384843259974749657707783462004524879804754825925616359757635053099237692790316060261239340808253018137427697926993519267838884312346804780689103003681865164887151544349047899546752101595696580513850944144464027657861779028517826660327998149511453002271759667795299729421648616389750870644334684723294475846218188917172580044420001060485235063245901097667795964110108157385009811036634165722337024291281105804970013255298866809359523345608812303470632941175264278068082772886188849148621347184330700251421686276791899359908366926085961688009657417868736794817011917009654318080805620496728124596580095932512213104748980936983714952942678209124689083565413709897980942479732062944651415882633320225691662436307699912159001176160289536548889193412604761000610469971582277836183841352695545520120662762997988103935399466002737471628026725447216847553916714479923585455413589275830533308021220121403751586944720307262694174625507102751384229925723565103529393110722787120521314510562689920868794592826806910581610567477174294158331049304080425053672873397061229618116993447401150985563927831867656847101165254914633380630822991817386116535588015396336921872256290541586447904287234408464804634304469838879578869997776264889873858578065781946742948203826511726054800448074208682920799278817311081493830747731387735786737592010022441825042976334945033208224697208857593642390649783177747401693352332345132605282768144839266024289401483659674045535916492467774737961291286800673878307638633564254907461587670628924586649705053844725542579294128796347669434496357935757310959615895474245352634689890050333689483814172462721165987195563302579409412004796640059057829523467873256270206775222976591177070151701654495562449017945318850838657721725750850271271845774686237439111922756655739282084380267586887108735315408430858915061520275818743469387765694750745562424921556647620980028137339443828360418289949836734879575550167704373596718182526381969865510736279976078739681590716902195653101095249124357755744288003585654063212672032756834758095590799266733140473248148275910593444577149633301676852260213356846142986253483066161182844787497392850052530515974775290672064393161682051427497067769313399333537498101040501758488460278802834380375181427767930252912713959874546116701273480204292662352243969104055513712881810080993745392235885676585636149992318677438569373592719559673666304428103320576093195191016282688342325148928238567173696944901557376354891723407204720979442035145646874928122680460749383212287936052395332703459064306166519959288212502784136030954807717316530791414138265882260665397995074487722035996083811506109425383028999961452082031618430023705098573764694789733825364440935670748332001634626905785360534511298339194412345689175677072336960268780396451054944203234565242008745366549848216067520545952756440572700559691157708288067298916518678207705044614155751046171811785060837251987644193994847161979135127198713596577948789103440667238588656953379295432781706838508773866315065774851576362635121574738389555993133777569095528954721703751905501434535219765891547383661136938932202632902801234301388935711551767701953991413339429251690067962795855524203222270034730368465548059016045011607318336034354546790545901890061185341595435774262665354003757319556075244367385894025323120739471456020949203512327108879624087561207315646532438380637397758613783681009069640510208882407635924751362303739724660865032365092885016652473775120508744524683519623885965712063363763377795879306775759475686499595538555247213870854790109745764169194331436513570660173676727131886668252266294883625002583517921939160187324143720505504364588903137478613103968686661376969441293553285991002588266010711017030264831540167814206628600244164309048135994154669432184138770794174138675772838659222257975381049110548480177278927575343155458013740961340337719626896828756190856073275008678300850339754901543593588486302904586409809145502063045976969925354837799995891381501464764023278547023107607421549128744993115774834840278004979889093706119342099644121276068273570716847017741665154652246116416303965201721903748582218728166016719171344819620221528939628367219184667762142596202552080896478599373439053308381539637186293226615082360628909217129913911892961203440278215975255430355597972066658616549394512747532129068764926671597454108373848439210385487121954139796874054790088008801210212442824059762730405529268829700406327606157796966055277730074439942578268697930510739542178452989830424120801547876889951978975120877291481221391018791791811274475613544037986685843111832016478321755228872751062349799874081624171020099187810887806296935552656431814897011890791927056486861733942220075231013753884749326790209026619470115077734729339489169174682609186889425490885108856951723993888858094992732827662713242958458979175249425874831968408626087675126637513155472331905529694347260531550687102069463507801145479763087894298658181595065935694483921146373727467502621615254411839860180717405990225556643107607826531066081604193853725194277240451409662162662621836322154258567333936531042549179789374761357853912705844614145614432617985943673669856599909693100704608895457380408924451764730540121492143026306462839291583867168547542932568374882922104802042193045158021532659024562485878579861881713703181959486152751433858133389016369030865159941331941303419749454146216838133353470565751463569034968093792546286460621492796094527312750999682898157933319637098007177700945790775645173688403089727680494685357835644349503331517108450623167695208178881477678124450649099364588632244321750777505491535485961291394530980407116710391626851457442080437618566493760541901503420821859994222393657740230334259851653480093874949478552250674060866782354519302788122790355383909125502432589377403992610294963226870782711528456422116123520932932434156724426044177370992929039253775342699949126164658728272547888161007539054590099476823764360673108198758302372776741396362448625651869921882143316179807236323886467661606618768104346385651967700127652844593493185934046509086255689127429987559150439551115400210854764561939681898531994368318689229918798852873741263450206313617335529939862218561783132013085807771769749713471272243553488246597432957929931683272460363641550248813860972101575523221761682718732523928005182547443938151610281417605878349492839333270788510761200700569843921272422974580236166336804845654958454677253249306448037000388756883634865386610611081666210673465201992918077402314091229890182861273045181119963731622923278281271299793734312285088285950078922645091290128601801373332251299029505742002600012784268135607347050431139468038905737652089466460836428065512650506806423081687223742210329925127148337602866554272671904445210058204299585653475458281005761070832408494892224622721029941267423321930372128211216090700566196489788171052238752020135338542699762746379271447343804508217096672279769039728499129480436277123245097260021987623089498840343177661732610263815288386692234947636768075602416101117162845011206297947371390537003305980233586338295976577468002886219482953140721468635500609876155382742931075102325747582522420115797775813408872778249311026728006154549008987290205249903887834254513038931748010911250538509681533454752043057674362979451173259289330911495483119481330141124687934888388060308014248938640272428797818239009991400609704647889210667283954158182187556953900420350026325510973321104544438481071492932430836829118697773015261339984316974459046900076721210315791721662686619815383335671012321959013499080296921297282291324955030236881082768495358606568136393671816228060581634055172437455684874135313382471783370920714149331920579006132654417883371081897543335972091384462127044697330448425617504292397030006153785013978232146215641505976456216423291314571916217877340925587799260259336705896709340093052746194246108261983048148308322974357820790175048164558554493836990745105010285836159828831496616911554461377191988067663617240936476371072012698203479136579212913491490611821572198061253111635997324213276272527689117566230748664188808864551778968940944254898755847642909106913112562485561158506159516537985108011842461533011600708952811324734468014305565487242226889263452408444736695689254862304280392520208203704355125720951088288078082894815054033160951764144166510875438755356762800113847068262383045104505693500581467771571191935632851810619088323432500907993127301021020926258114497529811963816488824395156964845578971846063006947995609019797533212523288395383166401260125565940674957945246442379796871181296878431516477232669082508927674797551478225556873403993639313207075467186377871535138461916699058261514961233288699281541950618623803636862297845543265595677910379155207284722183391131524139718209876782210322072723607924466224647374943906261261533006049897407028300977490303600876184193907763697014370025012518050881096644264749183275204396211677624241119198263058306002202725909073797374948665562733134092529867926670155460176829317674249104091564123199371555228555212749322768251218994379191458058261336869872601586109853494919185422643350303882169266421636713822220102349094641881426337630621719514852964466942072730602332442757553931021145924558916911282455140592788736054507739083528585264232829640543775700924864978238861084475348313655575153104028983772502977659542453312718622399753778809442400619067961376575756878622553789361248917985345389323172608641320093087209190278478203421793835732695314936168693015301812617244648478288977059304334058480747432614186601048751957149931628251857842659708241788799239471899095875277525758291927639201819525626275841847921789229822585359080906409202594981515071676310668334981916978873210299593176459257411715879729435221296786841303861316473274134649105095947502691195971774126790896912376169911176027398765651589422715127615720249602282559746901928086622658319907413569496656877617642585167261057215464485565755344730512682864921261056162239070990300266493538689843843869035579156618629914342459630943970372976379255375118372650071589856925771172401667640970489026572674992199669002111142788159623976069175282715687551455270117093240466729521917832667609630129900743471715886953621808397666068995450108411747012498018263828862132734887701224543784569290206253649973229144362280647633188984558572200256929029819733985721919793023325023233164672977594124030340454909576184270773243035432739264028889375116166961116849872806318762546691512537712976205846379406295627445835851223288701056052782965101599677220271543625327599898609255116701132343924571453930377575222195605097012161244334842743399419260813598386071635553638320098420676926210702280622898839342232097796570904962146618232102665377876564111353664188057477702581721589361239106271250271065299348133343207093786941253944659640948736926848090849658391600520557325160690860455989586676072361101975194288035194576190998926712357921571106796165693160006285929175112045610424741521066821029513276814799232766652886193516618922142474080078490293952513475249803012513127898646064232628533954210793898721238259326249202012199323218221072178284695219169599075836071740157372884021411073287982609623379268892930659821204992646838756808354207609975346947645913390977653943111522099976080510007619412728719928252355169502112614625396784974155934608680086785413497972614102104558765156379488531818138087031529308415582094495699080778367819661754053122496170477270741407390518571280382022344953040159719574934118768949389701579670712389038579498144863662826514746682030258816322677168399148371176498236110218392521875729471032923261797318815980737590136853810665143359103390479474194432873322889502218549488062416584758864587332743930358297206176510778732341220143673981374543672517842869734596540557450997633612918790848624696554778163024899193619143524559862924522894090591533552905737974059096177235178096913713059092764124547757660075037028524670232994653979855857931427256663838146220255042033893866883358522155304581812927931628864767394302808511160041202410143080048419278279782060750695285408956405449709615923674669709277478008023345955747081912959002760511176517275807045748099834131949223964751420827062578950815091856536523110255178332029025284869208398352570769850117587985097947272298929375421774374854467945701298309850587168149657197602817466543805870689437398354658090498805625604727771832660235326726628160113109673578814164808576607261993827017881936815725536402314543418129577275252848600091381092209415291913639664617767015287662749697183428197199823464524850637947658155643645958914919275044460616785865185184029395769157413222168842031903261761278655976862360183252663600924003724143403998218288686270995162340285837238465530583247083579111383264490166150492207170934686957257287972603173014517911011444731159588087854295870593190774475071714945703641238915405257948289455581792489965567922712559379163551652641936702712375737069108790722984419505459698498321602240311456458279252987336670589398841485455808489200540587195160503653313347041053881731987331684170625872173047624661476586101436497208625618122959281672380892615537889450345962898409703493123172421810446143853597320053723997871655780911367435069088594919752750633504092541878242394808700298496728818015856495935433370308675147824992867696890967912055880715923631925507116442840911286606620618382182546400545848176409196544393347510117573097506791798615990333902806010186257589720063907717653061441432072518464154823148398247624389434911172176838289183539307211304974243450482282796170194273047491380843814342995148277879696996556591646908858430845118038621780218110629296106074005938803933162252011867440425203692469251131436602510400792710740272232730929367181754300054096564408944997541565571658213840489683651292481659908978529568216740370875260085172486742532828750620448062192234275177334311501562136759956574851915098394960304461131818234598894652414497637503624433837540534855459248363457180394413097154387218740307326015835107244805240081105466785414393267319702798184543287681231729656834358304088085537225199514286366723450728505631238630038273261643507407678702709498382346166308312019477914503844226749497869722902762891886127902331396113678206458810121748899443100187152030484997193948641423174082598621430173520154535142644094831824023040633101917826130737481036851729439355022632226102969161186078476724398776290796597179262854310525901087690016899471670505049975507837909892097468215228561183884698154169942112130896583929405982533650772030194861426813325505069940159220126025216021341396546464621976326999166233516328257863890684063785250782083923233666367236653360024847330801743957644288943409544248496060940998260102606846753946917572106839636550913257305671209962648675157814786049169544088581766272213010696186074541903697980199098156019454298019678586882943911587367828326568644080250785910546959825689881435901986019591780168435933130097772812913658917619899265674355175081702644498877219235792175132939621824054428540719646764033083605178532739610085353777127257962160219815011038237924145306510936433756242924286352360805500455295690827737664327232031208948239142432063580804655641648431234147581238080560969913633037117797579500258043698575898514259202476867858123985508182152246196117695628504814463150598264515244739448393288347908918634602683424884014648449239049502050884806820847209293164133296365457374340259232311795185176989259598490931790237332454374550401183585435794748179766221251976284745818388781471350754391342667466674207805290914067521945828623082095956872836250203334875983880998000436618656419216546380876810418590845894165806661745954939145972161503352668314063235577713792375367222667783569848959510439420089299734793981784670283102819402231025943518738922297697232641156406548632211410504029775652536739773634677048103405357432913550236624477478618324278769746150691152572950936276418990549238988814896856687321539565651112883914464052890878917215494670466725658244243375716156378821081614363720765792327342421797659728383545569737614852450553151946118109245406306126000380314110213781678261992658417875434694191938348662881559761550770424290509504334781503532235332958857697335715579404516258731560617829885302077933076171014379486131880689666521858456149220711042491330586790240705211746566152043626498310534817242527069908182145817706897179490676670236804177607045955651564210713433966528896063543866244655103890317860443735429637605589260132935464214687533508396232867824198899000031836822082654845233220203249981917449464637720942663191999652545998732647346497241631276543249362831571814568023096730364530408415924031687207102895535483561521544629876769846534489804806779239940602948189915596588508612116978534431426410461784486667844119098145380121009782970576804141850897210342173438741091525038246530469402826327059567263757635254714231274688848906797840583742354858019064085819654536622193732308837397216979153766727802321847090683542684010171792733359802241828982037765553830177950021962523064027896713591411079250673952414966599385747029404156841890646419883232008502563872311776825380582775429866130268993290306421294338081164024674875501036698789005129522541790502339632955016571049403684605668058478214107597165409732930199396576665394739752655413571064706132236303708096790083101155943770512820484114390469485690254951976883049355378415265992004433659634272410900801938226650342966832036445507391675935503282153055682427789315568852681442030195188503560050143843382478840973404511080647938046513066315886393342724599351056722085753785774884833495682973140127769155902063423028536923049374943264292754229373492592073065757189373459355868867349654369274335355709300878184046290372851785670070679768273224091640135696664088390870458050481075386914541235405662475903591408815736808808028507197542717482373545759660130960361164443460787569775633897341527562289024865329191259635368154673917869780207114343589711874042736116856824707254159202454612710147004920732002825605483641150430747346023283190230038559588622578097222517699569084396887770512488438273155393122152907806964956381526729876818949964375308025611815928200052840112657080916851337547281051640354987291764674218427686686984311523869895636871529334934574172606588172229810314873205248561926300142712570360429296490902329895168726340661757425276149965060656102512549562114581318064779690128454648746775209223259332716421931817775831826859812764323487433805677539548260434703208782571598130338793251324205668244248619065720149378527849558997563346326695262518597970263499191794574115211104023415356230268195712843635944760268648692514829514740092410096226817614566584922285936320649255949999558698606419394604015867177917648021115761946330787024930501971233567139739066844241833634911122104923409635623527703712551641000294061187560393746741929904416569010746804502027149822528755699943529240494931418637950452235880198765564016851655120757201334742415250267954839847423106829844212111784949644376267165652075128961963966391764639266174750207379669503651860738643762004847945855597228212132008136448207361435780598065321403654105558604109312637984196026950009371509511021005642870314097339310988965002747249709480312235567437351010741819024287067466556749437676267308824200055342940196076877756944095100298512829093910256914812561805678574237528092922997892903587420573681711823242697496035589381428214590019454435789683262698105959841698719763562041923381800865323594559387250853485009677480307901565412334758183835862950498530320007227926631981367805651415436264220142036929113411398889949484412709224909633027135870864553823641447504565953615095123202372621197054713828870895156921297190114223900210813477969748980888778600290914258782769176939049190493586252456879940009986941032841447936194624970984976846224217951358800527572075095637223310671032018915235821191756037485123495364942736359159151948428805248467730593526703761522271940131144926148646369799702344749883704132860248801328207029981660293716697960095297287942523252277548845540656264810345928962932892520859605322061721212963489110347145901195973240479449479488418107370769452861747942526466812892216276487767947070955888341017631011213020031140025701250095195425279428495727296727469795641596898480423622417100669451955083267165685173726734714295828018247602595479601229806435600007692986104110788214875122810180210766250775983710839748430753731846828790042520255616288395353095224934191994602751200531732303195250116941966022318628796827655997909610834010721692159999026565657207063642121844322616694373137986607795560342927877350094979673317967639915138454840945982651410248652285712899459853758784739889734195110075862251981445585795313538147030595108194792810984865291082671785606179750267484780634747791671871082030100432856109540849486002985472048200421877687314466886226140112651224985511545565170305946158192353533608058616716296997849401884543916760513709953415836552998457673941071255845243157672865596997272056295518201841084613073857723197579869123761077163261342233465569825503709728868651851625899745781959196807145527622765020141140146167010906625668885953129912019308141274267403566370283320735795014561111231593112568926968119378147289057307487006255605563292738738462500772340525415944210696732944214176436841359755441692282900240505693533517834602107962326188733035549284223776171592045665936799751190082130922093036116888336630850349990577963565992500862803095250806392191148253123778760664286064023190281476260095196266638839039723317174638055753858797405538251405330704157275231272476836070996028285374786242601618470712868287014578138334148060937947835031840540804709301702885279972870984579169279845002044363058418982639700093107912023219700434365872060080992987491057764388665137482497330522908388408289423232118571132563081653078840239311895787342270996388146798804286245615832864845395716081624252435103121071654949780332485971653173517915516016929465667923859138497144143741441619729774760054733070058057403808253871743277389921238242403033244233196146728504670291660729867818710977134171986813600062752381754291569180257062337237334045926289933556729803351831415598837994479362469043434543090314606832837853661772488168747971845245448646234172885577744370925997321400031489940556080458792352240085043338449505488940091680962215185148528749918214582990485919906967795975565727722587101545565417183086608661412349465187797019122352097690312928120361229840405503865563052812800426086334969017516078626926751536849781332825796254122327584738995642138396791434889588799673498522618050029154635639032572647095627332375443609144948546893575096627329331965323025233420163204439705843818311921956209978004960874990792904574630072552984790511198411656158902690546006927658276284825821616037955258616545905758966453508113337277450456622484310355752694452611108455900882827369298842575031814918954485388335739962619601209173548531676876759878601965250925239966686853372837924077468381090671115228534874152295462130914301502446292864953193762846720287904709148628504067651294738990749195293479052466319572492205151886143843736642625285502753019640060957072745007053761533791617816068315611268949378766626113177047329407724155664813797303653867740093629158608002264855314990587847789537865208759453229735111729179145310611756914274397883128907882189488210809917328792763907579027388900169854992386951420367549721835369339836690262496685244626611068583423916580984542565405688988844873453823674987108348314498542047655798532477592293256739961185315909469935676822011733635153582724443322766003745485848625982370994387978139860973405007250483036529326048759937594549268466583712132288910156839070042640663147560161785490749913000010736144218633352896238886225475583568021555753983634632320658203322464889246788038634765749060458855621264109338070068482638995214201622007217582025582912526300556354255718007223277693130937417635638691396361142238979299620622057000075974737768350174192170014446228038754536412625680999861490852333499194856699168054553280813338633509213178306094050032872737577636166695260396451451981616194810304374047943104553234981995650154064869284129553272401701028860415448136384756466568692059930926047492055234039177137773571507030276761773550733261837803097015754832007260869446778323050982728833102140080166832045329398781321002529261828591805104359936950416760566356369881709099563519696510668033746675793042778928351525535526598430603141857488553065858696650637371929384982944265274661154225539479511532462230063430493327410222378946427411331391566184844958623042127339619819334356305957858761750570693839015097102629003251247634210866358569327340314939539451531883020085700531493207868846788793859156472200605213387070015204504527228389652027626536384701191065881429146339992347823363527219614401012020089438116248986735900180190193174584761406871097797746437912389712093858074019836154513641091824699101536703853657452745442156698490573784113556377882114670724740565688536399809096959725035529904967180278617648807808153935674475606902471605346477869340780022191150956433936834111423136781922921281798808402855407622124946016188666897383675209551417413335099597206196450739762804645943552443069506549195247258472087959347571966258716048432199301778617488730715629137446120807502529654873867469109262200561368121705525799210970076049334371232015583868914601311804840275974453787674690379530290832419248389123897564593775046578279890348731666055125511413864391697326347427285562914991675621831637344953925630389855416954564117440319661819928360749023517310302712813133592482359618311452441539600425977730710742075377138834297681950596638164248694677595326625953877734283454338957994883600515041477006513474470634598210845856743682255204577630065200199325406232721576925222471156485473078844986998776361607696094564492406192247675967124697992939727572897543805232740787674528497313922991616862932948884487065950271997040979772132486457801353739167267158387568178163351349065061836090591274588552404823924548578433274514913398653440890572334333582889494012362351913172751451555736080537789506040318848145282197349149953517837085413261394298123357124820595322882785113510350444401612865152792742328354161682675868317009277909508235133613134634909754907391266198970463023068062909030348644359810322674747268713448615842853759353574532494257543616756953012396882206675998907331583204181965628815987706158471400679858433423989135658402551165211143049657431649213900943785422507508387604217982690826087969586787191367157407505235189447959805308141895544995043134594839888994770892123802337843752962865902055460448657674532602288312401884362596680492993361185816921757809289559820699895052857986394744033304340121547427744939059553818398769828950316293119342080800346326460854307727317177910001152725013570446427105797905416529665398960751892154564267702022737043390952179658923217358292389655903232912140008185785867736745802779079085097129378403116385363099091811014170287148474845743892660377516385867021693966666253863144940853152917946223853058741352435262941043041323971015454741916540611565026016132725266002835726501840384554683818329380834053848997854987381992025031057806440255726593090307946119882723327723589826338923318934638991674708027750761476921566263091022840923215628713590600632778496524196687613180525378471074136858247332355233026588987629834761212539806436745171048340344236900816148285559733931507601922731659706714700844200205544395456439840348070152257115146178941142922029811519116930937831268921994469587149323549521210134146106028496996219020761922170819217062194284242028764191588238446664216936669976512460248949196468275979167257127547357873912544045249665719493735469529060995821850115623017630705170406953693539865350299587501496537348636533732263113351120195986829273252279920860061098598967456001022239913592390595895030447397060611215042002093452573134395097497348180235401931313805695858323494599641449942068970951083167044315148642262586415163500088756881469642951821397740595188758669623942678042281599811945381321308925386914669291275366839990257283203513280671348045964331799337789840792697197641023888725164495502080606300153346097068592933366035785067908542400314718028440701953620754846544149304180502648895593890992405297388853763289444536536246586075799448787688836847785075543591154682066525711489641175590895615677779757602149902034721755688204427733704184086141945371827067271522084208198088846649670118440134423638205980086961856113175694489679816463060455474443295976246191364854771025014945362745239140857528756486143808910295365068718277406863339976760739343781231962910487260465459411107855793750807464658179809080550883821755138051734989129333096348748182209363690246534816093838664303702025441527395653664516462810603311082973066322979939849262563858300196604077463903001580246104354798567390155468223186222879839892616753669565268128227600596727488255601802548757630311887826751313309563517981222964706352631415449268139898735392350238456341702687339893879195812372232436630500178226214748212995530524868428576665303975392598255477687974709461950005834081793633667750880651225831544210963242361211530134710418171031815121086012652441671782508150267783484966774552219169403564659141724929362567292004139751542462387800295889950503059974834866181646819733272314186733821200242660204969993398673771786363423498719494336971223055877840411888827874215219703403407984654401060617713224731954580378123669241994980877007191518672759348570587776086830877500232813162942851355126954234570535873599666352868838242774889316998105105925942659407371522076678812474983134957850697880836611686327313827966388230048306231863931451588093620004985239827900703713076356674265640016304145737920612313357483338636016329569027783874718535461617885913260350757886062078352285385490277976417270298542961139727553880453988409006572982272893512251842489478623573561376261486564192275847233195158894036254686954735607087286069804804713537171117677564684860077258588210199796135527155453344324802865251586272291522798091543647492596824950451531601187041368005701452536069706444138922339810582847792495246148990492645591017729148924007192480237687106158404305872035454765685390710074705537256899532611396043067358160444260709017974882876978883702087996655968370497496654271298967325355477027900517237527109549130000639698423193862617833211501667460268681587506199717013512854144200491544527446722810550346761945953521470211366266226214137578569347508571488134548689825153430788859660116874611481893581738656414494920674355352721668605694442866517011367998015840884227447074291348287197536274712582088373800093820975450866184947380713538125847523461325678893746407108656426499043814596038539186499675642079532982276514790200753821063946586079540425598038709261428445646180715205577370993570082330552497425603992421271737515639061410359911575939232821042461373749368312323596980366497628040160819275463423441551541883726223351274155253977112648876662471825083217276831846129001476088317406966173516859292552435344488205228773684784920438346150504085727456496846084791356077796205106455967675769469819100318342159229658425889069210253884814102152087256350230127669480324319093984405736669291442473482135978017456861116612263970221835160579171560196250963565755518138306878131635382856131073125207395992241014886523908112990354849098923820739029078991150205667989836424582775335840796568038523458121918483355788387494537422429567396039535048334572701651268568813976934042402060181685618693976578450280565515355226622879140522586509572925799654801036057399924170874756669231868437464634058486295994166249963303687689105745767402998721195966434221311673178002112512704527998265288283640956859996712326533230739644659081409442002353295426484453434832912467863417321073887411284073836731133053876278472872016453975756164039606616244067561221826154090582146419866768277488137563307282622992064844214738676563648510128689647432568356122810166543334576751333450329593239729243587949438399444955406144951089212490602867244317055246517304821695296691485429940242852340506926682310354644038258434878570867248468299043401451012820574182321903666389678576111565588744126019193079167396206928144892252959437247159645255114771051488812198045293339945295622589802353752520718763732077716308449988435639035385556817586301789766556130562788617659330117173603583221026740701001668038588232127698735955890002939380302141598094370930948272714401239944113426975252430596845395197601554908292730306374765675548876763707873554257138673799771559447648738319691554468999924913097038422855582230983500924803905850421706396728698291647707994066276477341425597278897421801083609475363878768563945877793063755654370196610155516406320695197322827357776500019881355676449254067099970997467361009497848043891404300595094161536515515369362304133497960310111571603549135178959106833487585969298306690995553658682914325755625092739340634551696543537473804225134605512070438874760688116064111465074753815240116185025891602887582121164984590309103446431263609188136942170102783428551256476307492430684979150524016332564352416736177569339816599079996905666113257652474237047952395761151489338132574002468120627262341041087386847124125951355021685552743576248607440438326504042000290792619237623914516867370554901681720081677099292529532133568956502706927898558853051150513470390816548305170259226376835638313613661277229137685437193638405049775014383696808480821728712130051916876214494481326990333891181923783562986998822087973541919886992834610578967381083429108612674231307122643645071720079915891383759660721593631792031672348094842170963591450864714954771531629510732709953528017755162906684601991554243713968418039884316865394956626583996939911837161592665706258968775662375839467242056464299041330996087583188567157437209853624496124668473775471218796859805822566273075853495859795671538717326299401652292920940286263341889525697184059034228559381161223687030733222004936584556166994961543770061769089661107765494736825573658643519257543654137340719921666931742128362329728828878178203005879511235095895659741659099493230183596871559535970456283543879342353886735135217516817322738823289260901534981415484757559271664373568234030060776525710174646844845151850291367393284687027744682573534383909234306650697717310509972804633579258898627990501589929583748201141422172970808659049552253084896806618976311632665408720989415613418660612299345593097220493440185537724530570382918134609964576195645937820532293792297783356055642024812412467408270987709513542379169560747138084380784066176718866039185109205532790939281295465002814138794540679810147337729536891491525495458044307699388901723005186463153151843384607204214523155336295258431123887341926968858230420607709617137176400882026197189853261386341788404758784022399108373875085429903624709012026145088025634987406830563262436296091344875807526355080891003743578064622873598635941536764617010733264975530352865891918156126918420589869175355660624424147857220487743479192481670170815924947366912984117103223266004322849260592625823158356359199094127139573926407939159783426958733697849060772714341100455850982614480550247491489964370042817077808941327132484488870576573911870850530608669740089732503375589721240041459064455175246904521749245763195010733423227128963523686848826950988540659392769642637527297657477502437670046252030195674186375119691057750788588556147581047945648929149303089032426665261997360759362738874054681159821274904401146066790453633426694740904166796088556402717394307104192169915883590236544998543132602615395588447348304638991719097534792485143440191882663136912419395961837655911021330375299289648076757318233242396954965084895676265274674955109616395985105473983986340653259074345332875721062422482019345227672037590977313056220885618135838556770821224788343032480131665424532834910184205864663560372978811203528217227827699171178740755664426422015016385290034545020378295565730331214894954532648762678810896900039554446661448356175796524886577860182162269085478690668200705194999173643130431213914411554396284679433404851316637149814590060341309569875310691898988679596387611206127571379623728369380266405233147410653860807259547860260054736668982254506318671527436143880840949877139240909022372924922487090382518528260738714226056253535239518656904080032128898061326566683105003723272188894668231867012313295750873818648710133042383736687500304934064450149590325489677352319924030325003989498396948474337528281433218906597635278637496390525978064700261084157127273876348854097197169214695228693703974335982925237966123254082621746445789644961253989242876657298649555070289791907932591376733955066428251482899243013651666661336554004944073149082955375155098922921234213605472281329499800025961147663841200591448178567629342181315062577391346063274127333312880513563873121059894756816554194981456526631109605889210203244797371295964654294795901145460855775167080247791658058505870851841788728346276446963755747068006771736970115797322526217741090375770439291517983623822009581903906683215035187388315167931783411565203504993821033136146797094382871645005710718868478841981439315337586082026216385283980725872003685564449290037525807255739126786966032894608056206992207010794013419992413225846873235437876910075885583039376492969121011888020640897607577629009964966519792645905404587807804661418958430046833483987294454812981830572334568520352252979952049772969495234177356089535515774712831922301052641534434481937865093547257474021330744513965359126308195865084052120852129561316736120665282589937199395873037184699626624747284035572842677810062118171680160467146834470669052138073684814342697960339617902690320441747077826230353438867278241954580430520744403719050137669082096268617132706100811687898976232485332475249936661129597905833253718868808463559195188207911741883032633389433272580932867113316239268210055579630859938632733456564304108582238663620839626779185112885809209492680463529275181401271980473729613833240566981516499953646390109844297635852263869670881741060841481169062308555795657266161465540300178580509961238361801731845251650107703765850860565446331797655655414473536745486871583471315247147078520495221140200447707261422901232206846019679370199578064383500491137770383364830443672743490217526157403601640700306585433969457958161832436528904330590002208138030707551417290670522268198083127747829873209059112735808385987651958346209188405016506954479814707855133407276104738507366814958416652672363274152790241798068054611099751913414756513390295084582222026078241160160763220062103042788744455779261923144473303116601179721262431688507950919319835122144128446398159120189213175031985013186758638457919058090849632572487639868738669198715978651375373444817130228962805954077067752373507147994038850422579316470686087594475514395248344245282661713503062819865961859378450496063739057351455240310506311777252173712238839434320772433583134587355356582465185757022904785515266987211833228173511002426306699674582092571957322208620091285033527707760336099233528192373085149934389852516650402301387318074491234546939364028951521326710921671433107354269741481080936475690704606203562979221803540023708555969061848940786879923675077867859158549578409002859072278292081962013267698164608030391610563821759763299926123207784642419000635439211822224537906920286448643282815167670468508613038460722923771685574555281176902591895508160780241712563234003783752383652272036582077066767619051903621726998298190461739944509215556533865591906542453980662932688628514786049953549751996847832652534463675615051621376583551798227716847495108166400190786740064780829067699089505681813160761107042464815859191346854601006897828597095855680480270423300172444282417784359959522513947549281468957620757683733243664982410836495446406562192976252985523912886677535745452587025681574535780293645994782467874200910865392410120768327677899891911301337117343592810893729944198835136047999613349966721504337726679108122978655229462638923712280464381065453116325660289429881880793654611058776141898353594235589275491902843476672628464178798967030238977790242541073035846364499096018033400475418859280921616945126552249115520309007361782363309112133245227451410532657582807605308511988751440369679660199898744454205302981280282265654228249947308355380248341748309306382181101301735576131036200127971307635886705747654960278057291118488087326479998366002423847680920139936347633823317681332168714977971952819291731542883472220803178029323300088190991095393026734608110669301983454892563852650658717293041472165203547269688887709168288007765883247188708827944159188481000059167216788495914292788024489653825896178386327365879076947654392833772806272429186266115233275186657097575158757430322095582571107140258750415944565184281176062702579988707673944916258832075075706267690033364464471946647314550986010464187799932653775819958338215205242579962420863917246362987613380658755898166416051163173459136153920561516345926693764190186221370537401316326630129460520163582954729321117870553663131413293258271243471080040307960961440130020584308604046687515885420921521897226284551805280263201096955710071565679122777373264959096322262023776491728159619529848639760970615768228774245694890856095680561615051216766427577990398161416858968342176897904636925324653127603072378167333750937906573519020977057958434833234461695065118861221480812159618044066566483278558263122579685539666188767198076445372587353786376902698174768356224207735093806737574829648016979408154701590708833538893918522477200169329741785086237270364192341309265846275946489966091231290230015970596270379421308021155064076519952885099262567682903154013350892905452575941390840973642295676000951937454857883171797455373280986195430936251052633852275163444115893966084057652945307856887011201505488568038347204537207513023548848763942798122310561538702573143200846497126923141718209782793975931819837972386662941276979597428450366269747700547366124458809220797370473721440919854685416159465585926847342304244434775147060163025494607662717916261270308931957269090366545219999615269644682180702403923566516528995955288684848705023724176521543316150768488830411561698990126371020262004017201570670765845703853999411264906851763952721634255373258598543558624458348544530373321037283498838127478998465455764153552680792494684499750113109109255940372482484935110990647519683824880654246865396669368306293287121579397284805463188326288925792374631663766652352861707345451108764071256209993715025623831859257202716338319791154556370413003483368231754527069118427292428526245488399488188172000762912865429118630412764052912529616156011324187503194521318786823134617810306144301964863447966423560490182026101522315352657064240343337274111541049786881884066934773070763131368088084950443027289694707284136785767482902440251903422878833514428175044374639623448209726274896730022365429108036440166305809925984467109063501621811435226620319889292643393601623913976348815542584666618959482732425061338026101219702065563185105124745825775051006559898276948785285411049479429461327019086022539237934841609555570881278093654140626505436700612065384461514391151559902789380223832791896234914985046845585937587758607526807370053416115995903381083705493517860911688744274545339715202764513095168703255888271778029856515275285869493979977751172509945042479838093551233132431497883958092857645985044239543322484794690906427618287479454343311974054771084965943904197753048645756367749866717826215343457870985258453939824826108828035175525654737487901428831561161634381871103147642925581728018786988698411488807677345681976610150396587430861038407490980951846978484616467251510871617952906687811052999149741558279469311772399073888915629897366471695959515575556099356313377969059924964817867487168077937299519820642344715838943449153614483587775775569528294916401591815054941359119107574291462336165069065713849150838762215340349374551066585352784497777676687815981841725523213682686122261216664406548379803548537043430180323009477119283860578140836785508530682060536360775502405494681362335668008826754401016937185872903753226937437201414353785357328961009761408141011438911889409263364636994893440986689485638665922133386359998561485507730919135223163981005529499972729362867668229327749098068245839449473993818437286502410810486738153508312681613237426861978198428845956122711208394263721623693605183491133062487528405932186002890778576494770266054148811959244545148237787355491015494905241324508291454562997640895878480811970555979114725004298235802806694698685887698445623380689077243639854406583523861125935185949439008550615657709970465312599674171253511201653295070252075798266091822135916404428679599487412855268632428771455094697969112330523747232297071936077803281300675539802231104943173817160610419896745296755193580347703672444470957098810615980930988432457542292969050113286381010932964135089087841502865871323673954111384125963427444533325539993294783588368328187606401670437842390489393812021664388511280463065483195628898756315639429621473023312170850717050767388722065496805393482184695431021965806978557725620080425069884099749528272134676800949117321337094728485183762203078363137673851304846055812187051922163602397126587328950389437539164848750818545004252542692337321431191000813915758654389205628561087625081206535560391650805784957393792323524579512649607841208553440877745327800019825629293274920268350743374177768997189401857585736375924367403941149519118457333262116514299790553671621975340367264726357261001825408399405930451220419540783790807226083539050665275591168677555668677240005191599986794860493213780047294228935475137052875602661616404399118097118778011186224129160518298523177427559851050963952829564227271259843405144253820182791311898983503726817078441352625604687017693736558579977900981497000357702563404347287942786250112556521462996669967264761696097881019408103428445923356012847444280304779155742280469590372425776347164891339320091105483911786166132645909556567645925530402693660351490966956054609260893749647016528058814141580409280899483105436317130051591205963671004623168876850424592836300410165754811348672058382755204998854899339310201134320815971895310795021253842669186235621223453974323969280355892221945121203966111493328093006092834081172431179949582882077472750057095490068589035528135783338539994331972881616642417455662413768032123375697226753777383040327661870409366372842461223420353884712983851893659911574795369066714671197754202605134166462685470420207163039835846762398826695055773399085359945842903202241665114872513366587314655065889728564155552659578630757267150123538376643226043550990177651011689341200874178416708151638391474351923540125766607617261287066815285198894136155020033203373704296276246536207817227848589952397126828805228962743944757795801874482248597317028071897563750282994078210408630863235180954529465013554960788482634188008369704681557369752918395668790188810135381604565469181057927741334392782202137277659441985668066912958220176694080987032968768032472526946839234297498794419447521688446404962499923811747442492030421334261993677914641052393419885475822422608887979863145026446325487532679647297512225001873902541822004256077436078371034338291080789759627983714234723115576914496702106699410793365579859792778529499810256158183428146205211444092103127781608352652786863110736691262772987632384094711027190856301401965168179026948056221399542538821811439424424117701007833132791095223076814122868996464817331351058601698061485781921660790097828580460904519603990239075222820801327651704316661111384060667817499154212518348799882828059319703252694923675110679384213081424248213709271482793038132870930372931707625089230380230439902932855122832616854388194020748111324597334801979885265994973403333142237906571996715075025822697449856762465579752156601167163049738175167519247654278304854797648171641644381066983102155462282511525624382334947428888615935127349583158269888297502594564469617736314708412444362958302284574617458678991823348292653150560034453788809300025232367483228938356150691748123101463063853491148413433475692410437415378097396498573868569549022819084252615090917169603460574435867106346841483146560774631984245972994977700737081816324204072384649931774210532947746638677948389237241328514178319829999135168944434586770210027339836783245501966628122481838865402324895979581494405533756027792321686496012965747989024560450378529597230463395177346886287333863594503099444064693035263451861966697290724763253503609650501493155443215597776887494496321245962725986443052908661248484728173725354199104892691905255918348579349876825939593267642608394076177550825548452612167101767541382558915872153557515825193308639696041893565727630808275765321087827870096473477788738808187814814367953178375512984185815339167924428956413077189745451291674395220210467737737660819751744682005378188311250619665651593557769527495890013329990904972141388510704008719094121430639622646501589303120615333926979010943064706063692194013163447525487736547962262355323263884173270989772269905336403681096845303357738173496140730549209831707090736777799732850479290886556893446435075282499441530233721549259225537952460747455193758547950241304201443131005969251397093560872646878091246065818258738908253578296708746892938584003081517209570631767285219693534785521279403848980760291653561417893219454603203575138977204368950292799654810921484910922128295753662494990114938465829030670582513015418995291515642192170754636197589354345900165461317748885440594642385624428849421710824460663513837882319176986817628031893849748046428827921218950388234658914890371018816365470631435345148925185803571546667912524608608102652935460297442115773337308653526403390018904705763250584311595995071834262999018174064905117314407446195067745180566874596213131850935282386399414032276962945680647068263048694522162607761546935711480225858184935466411000165495264824987547504071841538619617250538345997574321208797880045946892473728343519673753450688589169818283631542199657360136584048359013372290232459779691487124423288348960550642362971484179380726731565528787163075542497975094580764301436654945317634088893277960350639521957176660620607615931877985280069774818495509973158996076321746940982354194994163818007705168289143595623950014477766041757566153474458754456930311996685675549943368295712720687050703068680313135810806817925047671206654027756270871640141832106674370154821062873929290404514425916162863298322174240139866217388178326558134548172764400906860315791517098682446596920511730464222420107244590329940644994272060797103767327121020926828265401590063591265306936700790752230363789219668908688985919878718898788598277394018730509812833908584354272114157091838403845505927477365673505307489187436830865410237614766069837374148965540775735577137295759082367939977742506159901043353498970325454646070581586997431346787316596301529971332467474515415085506016761668872997293714004093544893831264508480513660317181313701633681872547590638595129265073907276759452967580767618574693356457800586956450880398440228672959030242609049207938257523288788526338473760414677068809801320342539824244150614853482283277272505790206430338293667529088625961371767522427219536380291959693500298797256473249522502726008653322465382391194551366927692024110715047844720385789315151454112779885812189885699601107463015304381395027832557019786517570893636858378227899083517390638778699058618443142073856298120747893520605250638598542945477562591884029864179956133944769984357606657982060512484775698314645446270327777577898216644529791265008383424517695063758585945776734098371701624369763557589300202966305965596247741200664420070327577407358486089910606531405118125740293033644587483075289716557103654694388129828881641460254236003340552233479084052331278571184750858096400336030481326518250277759017387052309969971624886205377492555807843863438606672513631168444621211598676316432763319722984378063245962105227685216076603870162312477804979440170360340138863664364742208578448237497910787492638247696534526517091673417233561720060767564805951490713213471773099888395222013214954252184346373345745175402820876238650090338267536123771104405562000681942542695560805521835610247056684803934280652793070996845998130815197510673948791197336375287988812870817178466154553613280147314708861454957794487871062367103505998059516227986834095551109768513191631964866046066554556864237656695256842122436299365998348107628982893810227277334732026211536642887029712817553259737317582477502558722597047256720503761059848695842887320299698251438607868663838646861118584435543249679642772866564648470204419681192641365838863839013247302555297294989903628214930950929911184026297714311698365199371521109096485711977335250342187596424631770836437541189682434081310339095168690052167077770402724517222987399860952308989075346929764398606032694097681223980762427270655486463563761551060503804349635297009454432321571796233264812261459621354365475917036493317432538172133217954732287429588108488867576514025333874239507528650743649908798002930299546764620971081201178307780722211238487684732213457458521210557903925864499818279775465159216921013059862462525009147596688837694417762883002666273324946877948465157573695049074993554191769263666443914954444886611219700285669732861050191625500922388250924908513387787113083553599652789849675987455222056385263529771078657156603187729936921413225155763823747949415802786611329360457282940209279288250174886504253530796924040123863062116373785547512882391840467871770329533801151696484187061864905599854415603738670065858420489391369043554718769159641769459315376930242972893395756122116384650223093863951136166460288255752663148450007656423383038200217134649430776548607736036125239573728238202169135926905776132559516954367180341704691462838240772306827333568810223960723782575285916384610660192421922061998741305180792913351600330704937456595393572926235356319164093300435024712657522401676415117024200761896566936814106512345015012585457512770912600060838560971916766483173255624051361824193690342959856271796160543092820232500202772885516122003677430926466125685698919293685349241849319224094153828560031396573965246828081898947841076659054702261231963729762553152994074989451040528851429677398918483984831741771093849130959533678581780121156014835798800440818914710401269885738310324523045436931033375939324041025087886157888551449028277708154058463387708672862306992923424685092415690510613664354935228860955697670557994979396670144032876422787170523648703349029850711942055023402017919196776932953511605321575736733401783164203029081717079135742177639577969377492107868220839503713242401020551976865995988840089938930006967269083394001759629214285755330281496898431295214912705799581877218766363501312618260394918112557177565339495729516538173763766655081049041959680317786995881656260930411177435600985760257158307693341179165090018184657339239664304054203982382365220521376859883443896377484586135551260193910177069690979176599687704321554704864929795574387033994622093983385749422881289364370989569329604414418607526701741890726284983401651452515957261787931620197301684070708364963177631371519525617237618042790738103120343659787926792892598185870298163283736580396643473861308280956842029139924913790950570347791945828771074907320734176154194095751487269669905581767752180302474588640296521014901804667157587207888185839465973491689017178952419179844488809251288206154094060513961271762420302195662872233109661025345337785210595417763797553046409716278179841332082026494503366310607319822902764824138429872978814618585164682373287987457496658668004334721029083538593672086402497770459342988574281266439143303406592902199462983102185387998016450572101141690492768546298170803944403403342634649696485877828671484719840729203107214444630872514252534967918335035992242707990291526671252709950743606620434339606644013372692540262788172496931507385673999057704888674075855446685005881964504600315951903873563106849015697859858783402959995720988307143759102820504482771465424046287815236809666265098723123290643494769685124587073599145266568855611071354077239753486213292815549179095826499965731386587476515789812833845284497475479644006192182063125833897565363185153824725929704243978847120564809707702824710696474257841530897147927619802480604257095495823828010625675008038853772781663391999543462861454796251545730327425005637079143606944214869523672395826107940994903373480305088674926330187659820071279976089064113047961779911672082049336697603004988420080282635699499782670721393287029353778160162593937523281009387874759981561679180496496333197395307451331291223464782765020028383977704737084537640997726423375540384232097070188585527549239753804858036685298503964243800735226130294877511824641975309120965801741919283552960783577801344094473379627866958065023152614417180121050463682673134723638071839014713460845651050372340762946668294420014139978402141546063596159284256147993789037771609891840705471822938723645489841706046485371063879364000858187317735028583716961245522689715968238814263500938733037115382572472083763534947497529016126851204496422636804680702937525421242088524855590921915574129632948716170891450661834357384745629193390386048368836938842151068266545565918866838526034346156698713361641648827198566424582456137306357808594173213743068028858764180965517889984076642160043298723110705399483309678474682127821946925865852170836512173977510269086099114927682960247155817982700784637193360470852198861680760797276764468116979343351810348685094721635292447155885137489067149707474719462681954037027872126537438007207033077046742088852545984403339346979597658739583667841238883857046850458351033060749451342720776180919525417492741995389157346487666410252285437975715444319088321084734276514909860058173547536894791077085619469704066078273160980079400850929920604971177276039582186387878183195677926990770769562256768570453137631648719194820573398576489644843223287263574385739612966484408283527843774752973555351993372629646307515424825193489535854115755653938258589402062691783921442674145051968363064844848652796376462183656895369204734758583956965150566322587770174410925037490356253918454667692139371928573906763485986000884872764370808899392423712160124863120989366653341233807155450692818973637503437823143210112354522705099868027375697844883240511638175674486900832883076678871665165213155231147640198382138105609552024184237805037831852504388834174556666427561371239635939906248795827496197209809084963086941247258989001056784494808402417883948717353309341128737513877408415149878684860836734229893947966570968529845174416794915090121059870269786383854051553796876163359381565424469549702126160063674002615306562006577822156136379854604851908318027620830774216571554833158296860836193216019551518737077854189359436918989390394664197615310803952297641441478001792330146155658378728630171087037478931882543421118669133761748908117715407693919634385174726024738931753041976674288572490942768117773416644482304081550061372169029689646760115811672760558797950530124973829848091804609765158536124048312289481895678907912286375076775493409704656056477880235671471893549375145874894796860728591432028620062073946217460270651175118638513183897546672188712734938697969977829939412844391942723974729802527133358890688998021228766237764747370317804076314804900995659565842520887763140177759004020596631211201559051885886010869759353063729070258418997857320525558997673268507506276357755895042506639470777859636559835279192616250892091885801177383055838509867953416419022079449847144076917132899448746668416226275966442141387888908430385009978030784913900962382758982427408465073651806335022185607903700612338971756688970286149870965813345985954546024533991576475438877281887042604758321153581434581197303022593281541996316573175978745995790917752254729689377426603129129745255624583637874572784048201705010336448257144446311781533166160853631554143860549173067904359134845165788645076364064741861585562777829889918086710139401789402276829756346951342192297213635548650299889053181698952509835905237908607032129064224822032152415942022868795517988681251603162260596185669545508389738170484678426297570233498805636678480278365459386817333844656390389065808186613643352273441096089193735105995526436385617382032682283939575735052788038708655354835052523370434158490906775611849614346606466399864086523244140107662252136148459067951560203134154301326847882202310211472700013783667464119253918709155155758732366951922331426487561287714836332328021284664134092622431158264963785029521797664101224285689932960965336585580887108836945684593979144236518129379385795920575854757632502819671542581356678153237106433983194496119031343842899576904422837824187687986865906907437634540566920992211560746313938984664035966000344086786721410143555003557929821194335228963964535581531364848466913498917510990255153284444494729627660415897868557910014227183133930334077420421327019422649725751176245163669202138678823811554772066827052404944382403318155224304107092577939949151760637060597354497095839978739705685332934280809693907112389698251857017594452613729413494041336562385542270135607637435241643133194183487454880900521501841487440645669438785290194531630943817828219845565317597829709451239924118729310531599387265440050225860559653930995510313130585928896334901605595368582995676662861485149138864579077482088035542029938481298411910317896648950499163075098539159776213982886107201104632335490300213896397275343839312085342492897236612293517318141938891290681533150830371086068252122894619037341259375144656520645087037978459847602750858084228981951106075109041326896106163287486377864822516692439814641913401020485299479979229259900339756662167565232624437117230065524854572617963905604471851606720568475231916325176269988174959823384712723670885075896524876109044396421695612239625223335428119237886084790056554976050614566703713638285719485303166903390629289934725557188324734451789095806216679906981037736901849776363581163540378211215829271269729055550247071385237837480914719893329577678024838536479472604790939273554490309689469456061235552832731569906115765833338971665152389700165132656121387953293964505258135150357112401433374421951895264956131067669017993458368874249810723222269457180849706677061448886396988653910881600075114867340132539188826593830984621082114986971520365901019083253475619813752865993508867596880939545036023363037044950246785476263226526817739819970228992110666812512286334012694896446741088519870106451123458002601309658367960058084486008701993290019243567816860050491435579334454907602983235386453278315936491108171365956401839109913736148438457289847351503968142117506770021946719584101720815569865060723340266875892265241740461265727731796770221549901607614931505722858292521365143645557649887319070325171844031187050487801304419971867031667204130552896672718575646871915893415302420846707691636304567058666729404544746416785846170077921198617686387282093450600294499637591649548761086520118231591721404510363952962271669766500149878042002711315413703581439390559075244299841771057781556641391353113079949657969625677886115185517849974419828848938841494815755359335901875821998346444094210977779079840885150171532660094736390393507473205606958247192225201191053166396134058592633687293492233584256160082084100827523477128252985210558606310640803793799216279597370291532681803755862805575507786104446809888398250968468271093149071919342026496984425884338976480897361300482421938172412925590397955301226467914439967502594319524529203565481489096758640457244708678433049886576319519798961698849328998647395646669870982883807467574309423133458305866271524498698502094938127213225392119904858816157554940109700389276931485523777519418106096295040614483699964175153216920094100524276294959567464266744839879731405050985730807678631369062457302090739691660516316942340462424447931483089394704154483595246367514439035190299355507616923147925248846075336719237985592188419399241556223121280029093158783406966213806419222094917980947197060532431705062142822179150373957460014824932818869814214490510829423888539061028686672148378589851198470205387247563937129521144293985048656201911760456193742395337819283104778154120004874957782226457909985946471617293830902771291080317605723530457753562329364943682101632682474192395892804448323927652718430812987790207898160602051605508109181373487499376097392779538128525648000807073517781635667894991108529374325521049498991423968439963757264997473474079760411724261720234528611709450321756450608934323609881931161514201076320233636960805101720116308969410157018015212548400319135696499318867772983368049184018030241611169005041297724377402647415479901892133747083899587909421555499449843657475098348863275928150187692875105366688382852429328788090073197295862881090250875283598361894801955117915555864669277666351341867336538281146273268754448296756833147082249695776249933567237511895748943001226972133506494954202238322004019344148687025758664474586905155665793277709010711037546949436603864320080081075651113391456003062419984784614685282313776218903042365226518289708658854038353466239628751483128072462831595802213569685308614993172645465214660186972399773889960794407252254959015136045219888874580004730210753912269981594711550543722600860366945532228794824108801666855859331043069782312369480098086458329035555986362510649657897443045134579153490433563500432147035603407592454009638185030402184081978745536102927155468258649459286400790636143263592881199385788921972509792144773955633847817670524466085405713581316507315663962929595160721755018734262145231096839212374938336254388171134828495024836927355828140066283737705522041681996068791457097735658600746314275920211990530371708207668503477547101058002576063719810591915352691585950956242136874025650367784814416876461752478460734120623069105784982601809072558071210444099995594032642196681797345370109122517232206145251733293827397662142343219436865770733505470736452263229487831724612705579810533233374785910267915570975708393807172829274774307522342060473129654394360570382392653008666125423245837818545366529332804089026969481486575840472796432317207462919427221869345677792865056744426223745055374298110695438650418405466648386029235558757174177423378219412814343044753247361478906424350725719153601761012017442744142657751371044230881775392281007068522771432364035499336194293215579404021196780438821769079578596036571363876824482823828417109329791546414892413550113999548997471790379415808178315948477061355651740272057217074748735656724242716348067666642868224610099805443096777311232265394889493759962157487158411711819079744046564903308687517445314775782255396394139290161470678461795801858125593649721310347285456321133922106936976289240019212911309077292904593828592641558552135600256210504186766737842988289846122728859952096089514466186668063842832079352666359337559451435909867907196259480011002618093668904367984039822121784993909582755098645160622302085130141668920096560069482638964983936570660840749311564294717870215044660988138421031956250303899494590119889841427880812402922314311214411981743192148510660994570852881394411297023338669540711466887371321540720495524039963937507350634371204793244945592976593277639874145099789774142033938680082217382564089035518203949825826918246265288593097158178332307273352381204985314206112601556498999325209286682712560239892968021541669152350809057337271810056663559410409972733345789064116817625622932943323870037158077318945472069409032724776516339932782030876565759259830798633900495895890780082673074390984185364697447517733765501932316598984938371803191624924935344894385442205700184057953235674136803030517632016142232973641752986315425462752102435105030452995547006089677080282296200245896284977109326950422431121827256947416401982652049450334537400418876708850259290538805794782827661333637794535737605170937123717385117666631213556759250258402946675958174953056289795034240159261989789264634466127703445761140529547808393425772669657356001066329031150168503256928545030363674532331994848196166153499722860958759433364847053042944870366169200533594094845546860856061161809668029255681058974453510015410217767856881287227611710174854412560615885328250577159003082025914056052385822277573656383972115146923012414906837391644384700062064006780926533722379507128936628676668444821181630913902288103419121004925588441100936970687532796193977942957142435564298195141007897442897381274697836840173618214026475193097651927697205467665687729578142811309265266279489049446827493219515230587982965641043967969873695396803539453452284129335987791584418758230185014058203250400053751509706529214086331574709266661862762322541551103184892730122671185071604358363863049118110673463730811784849608253226894981009069817742372055240149827601187182296030509659681043382489667974469304279566228806179613210158576132637149738836685477537843306251758551189773087832552050570274209008862092554737147056874558251911679588825165228995356979972306655678150659179675519278932497773366656506848790497108296792560464486857357408229457897080471503019264037720161593336085983962699586616868613457142698339817310014153872361401477131138074479022292943709820881496712293192320887101809878150708643584695249254328607704415209913304400879073492490416120352002038932296194034372476536468970621309011573406057442695015230524462268514343642506541927741840214714029499547047581995132039810638172285746174979800967281490503368407918550395158752143292889724812712400110077461486525654784048370330294919734154522254281277977063453253620436028191465400196764181774324373407248847215552635357916899907343756798605018920044298914239754547251779846770985212098438573943906084714291961193886830014532092543630462874819455625516849554682179835743460704978617095680324630532505118427115880183811182835245663090927977408936426504077902716764273174251738427977518413947457042319397917766150902547773783366421161496385940581943366695914363435096454605002220095156036837424696681420520525869415887473513397335660030029992823052168215988898077839902302158068178235763611004973266802230850020271618716011555361330059724281833168156342310177252200961493115502446027898435903781601467730230716939748819410098588119937818776058519550924022014084187961809503272980223580480619435706645658544631637289175876021568459675917893850772140038866174543450699843488573179095765243418677642774680160415241761000319435323199222752021840569020015854994970780037977735257944642139110383332593180487263944665522027975889457208727207111616260251932003623326476985362910886452613036889145048915410185950088772501800033451788261056810857633102073844414384301867699716881636700237696979094408207661219137937784164369122413718678323875475813973470462414107561227899380653550996858372736202991507635021946628221184289954065755521259642740559581553326620404556432568432562099832158649434082190885494268666920462416612676749159321839982193990291346663485284055338440871943336356963684171142153510519386928947586756085794529224568045049340699753495058430280751350252326515115302348065908844445765816669441310070850715694379616123004791479854375206095333771239226423885532309767056634710662181856860565708478957981921778730928226623162985574442065581341982879128086020594401991378067488922148529136011134759811730015467631917085641533723923846907924041498139424466025471954937021716214585226266380926038252221371504020179139579041078439021066447640894839684208531302071528573158250408910652964495852047617006576219698353277192615722947667214371643114839959858959816294005854241645236048966093203486384921370000766689841070032073555905291223013158265248051518407057742360289261304695671173209121530618574093431233128899540317197723175019131982602678997836007445185984754640842678236340937293064643307162029598614900494721032557794662825203005324116964352477328941621057846225753409684369491387331366469419251957485510508579681188903187932426597615781536913292473153278740521932913071988420767616769741068678757899344730311760576486642570505287349420692671137880884582099674915398120617036126241238290210848803610306738732257848980952263052818912650928481125534362043115471805916461418153589951792563685798037565601567460032932451715233174330866377023768847390614402663301951269859413690585550682882398604220480862760504647159946051376316743315431034066456459075512807987778673230638052383797471675623541902338200015924959921198668467329632157842343250116351898021268820362370885496469891605304986773773981403881593180989905865764728384825014234612865059587834237184426128323466847054145764159587360276292185184264002828062061767000930636957624024260747423460115171686275717683228750948404237190144497615086040188756678306574413423357168384625825483403855994572992559362377904075523669046669633516605985653178096655055879437063449996919180376161042703300090710988821838173661700943019877522481955292087628383558393366564481220645962666046375088387588162626950949092642813446954289104836894930380874007658317372831185153041822607395999238560975723807515657698804231946722532125627090459993294347983623032769624000528369748992084279157385524633086448450487767337975475608243296592562207238196917351985332412868723097281011259377059957969039997793792240082453255571007183793230856890153884634692948358341669145203031310247780523485841014528320598274357326616173195995898888975790456571479136977516026175409906164944571653869133158477342930024300235344732217750887359163375826035172238481101937399048486267759903890139909651502516921583316354259950084724301958013272558800321153728632826561325141471366500303120236547478461343665114752458884074487224770528779272200248174831192603565052711808807313524786556523232028538865790336616010227971160457353873321876464993860828814163042872065364143911892016746020593829684337542381782773521411374714092755350545846115553000756453162618134167001025055178907476921094060153330703835157997059876165820609577841009269614068715196179944986488470229619181411225705221075549144660132028693440490424876040658650670935482008174330574988355525264801992649965576961446072217983081314858445711255991135207335805364572941794468089205351873237362447051880309894442147582048359819468460153781677317406017432060505204195505504436816622659237102379640383935229776137543074951475759069793289266009889221909128984671817413357477789150436334276383512757188214358956682403345978320214283836835196053409837635805221144505971639878595159478781511186094229051492309829503360622928406888211352433235647578675586420538999549477550622251203726509630914352669574722922572950494549411090534078532294536584079253580925099341390774990155668633390417011296941593633475408545620005132037058877361802236540579251312566533319132611203274584183072032683040856552397812194796213187554030553023811446235049552172265891831578588517565432756750153796763716626153902774770866818134144733421390493263195736803905220284725179394392284786472880897932775510952092947991368066742834995274180506640318550293571931822826257945320206590973217379104930130686486830752461553845115022524890252581967385016423553519069910098382907161445770561463628942601880022193588315534575018459283294296505344790534824041342609199213070351034859311081537699642290658412820436608728954451491736679350899003228067530497513560636006247396971792456156067306470232578322719006808096884197123270807054671208611483164887469068516980466610121949017446243803378023341084090706716970661288172173010529059625900311979485965409979823436538950683251543781081500691062929367578170973968239838785780860758482304861890964715012623437453467113685771007076381554528551071554440305110060931028979299479897703739361770035608048328463600778802979299418147152014676785973265139291875021315140290058020264189911268231638671012195224686255022194813598859377262785054672586933145800158983632118740917635401597155881779452869536648746937147479249538307062595310824709270216628382360645699319291849042188858697909713170102778512076611160969275100533913004592642236903140499525566024094188889109715102326322855640789925392687280669681045001223402738502963007399627328186047707908676614006157689608388709665049363253091079555518060857744390144748999653106654865750608906054721088369798638586778626878472438790487566547267872903059444553459940558058814442449550373856749879957675044193859672974433822671327266117023979615196112959503489090669891071575517257421747415083859236576217986493299735863126132924964068331014856969143110406736214853276236342696890016239612668561025192790105150471022508957833682894262913656855556562434735878221274815676305292169571551171036908842112654434816919859692451285061683919996613855459028478262111256543499538618106122178671232918308711361646481007644000371124562632772642500636634450434366763295071791376944872947706030129472040492294946957447542861131155283700371037172921438760632274810660066447039994800665514422777923946996270228892125078758919147492645250989495446676186086770262026301424562294873472117452792444758028800597622390624934988714177073297396491438644373969794521106914835642176932593695839655250600150093832643472132877199922475029466076655445758253624828817698728851812251614472314059039761408282998205743307419422573523000845965371670710704294935348722324433316653578500085623304862214944458019528800105374874701281125619071361268932534138146292389473133647262277571693598734589348318375793746323072149335747554676385813580842664742299201525776299403798559096950566365489018526041368040412965255708280827355803565070430565539743772157816005428848904361808751517185907289493404902731739784620400709735222371606045902925351079935092452355512489395047772709647138226344001681608056382554424926121314433765055769801033173801122910547867113222807612908396233627721694979792078397878180312018237715868260537564367816397855108026336275480861755999173131642356775730488425145375759190370491226021714366985132361390013946373475161038095503058025826458511620069038013240443838786176649579677271548757866358343753776739469527365320817891254728186788950944683876157068174518253041403093610103034453286159336549375839393565417088479699890373589575086634163965697049788693253432979399527237450596994560389485678885015418675599999864924215558143203371072510771540224966034743608757406301766112312344784887171851433495249224372953487806504641683453664910967709285689512247166217688158914466737705797980568284190491824473474644350657897613435011631666436760757632647345412447628153479637187738140558358525976977519917033559660295701587946124731767928481656965006500775249865837692367546040501316937372713793655037304889594452646412356818757132779585112860065496967320977775420281123940629632231946351372393026378437853249281841244661034285283504965722568754644116802995284255905330592725818541694506281879821258719445641179598305370253703950675378031657301583943336803200301267115935574737574448826455651355639738540826133207133893704327264208193763611904692299391237775671203129377553098602614039564047231376200637441121441645486160786241959559913346262239169161610064972013388473495867907346542337499211757601053817952579639380056156785454980660436693249970337272115937211667231903771642697989311263647989615527555125734012136878677645876076581400065298768026576408815877188364634110179523971602558235992103566148934525972708325610864501458569138419935355310197442992857477631055811849514222215431780493479444428535598554554482736312013617843403522915395160880312295913772089349583138552783370839381066282615293728056674361307307876648443776826720744930872544183415916016532889775860196037987373634876503239386527489775223211772188344556316032849555803861850483577422563714536378541780327806738608079225850271292597779596767992365768332111974294173662383319257020546530541473941444560811312237791530689589219310189981091650317725845982263042909984768275337733572554246861908795307600930255349272972675927834978178254630730678600728065507741503458814376915129483064298892701944640434460771047328536142273733099764041579406026877568106537845309525322381011736965379115689151723476724515571418920236762740721471646575288629293602021377153554871721721364667304299345051836500523796184574266519818042456841722584287557529105877044163864525008154422319500755889969023753016918596742204814467979958262411435877367896414981112577523434865632277147087773058761634312371434739211314142779927895012876375772079982312535274070969343711941932976358590354763133147199742545544708504945573866886623792962865553241765978862953305576063090356317955804477011001480619375738674118599897682338963236995141064321317312870087934758568589323706503584759336190930500588453551715109734114248674081175496198460109718241801719664872154366274487719937081459637189281171704856529637394529407268110244442331937931506548357237448166151410170077659011467571519804635272103268228905032954985626361237201920346122683653778232767917649060518004607334409033145765642219696475116028585834544354179168950641798566139617897585245446767270546374993405061636391426462725813676400856408804844930267332454002912832228680168647658188778956425383186293565473118220045986025477847642562357733510879723094058907991982215373628107669080165933442101056538007420919935899686616636589925800650084022286018589992228345540391139245645614010715108184102833189386957815123169758066158065691293776142456334359211292821581790352331304722022440896974514978763034444552092150704442322771608047847494559518508650274596902671630643496796633776693252979026407754425888366690791293888066135188118893128343434583119837143748515423764345348153916471610597705497275843530265803668215859234341921569935141399793621895255791392168578904052774612945462192075713278416105578984249525539183585943197762567011405881686496426485625731048530306651205763047412423260751838923089318133811005421931918110861534750547131016006003770470311213734837000430786065070367701544304960816710995156718783075974179103280749010850896343223453834830990321326785334802764858779979035770352749989231253977343349905133105608329522525028487339881940907157332659292505565706451434202043612766341368468348869740476057807910024273082737175575790854661565111110145123710996524461635550407177253141560422697764311701318928021190576134793927992683499817535595147944154504972898561192892888619567620570911840539974736147184931435496120132631002411203090972134566387562551505664010933818020081527760781833881032627274277808241999611201002837539192065988912439318982756455364217378380510112848129690672985463162963758007899193912297705229067627141206720499646966884294700505395753860568207852872253311206557475818794419295992969857173517698964520971699325423159761419010840262454516398193543632164651948386845975534286148678236162333520668380258074396631802626113909995922581323312488392334998801147395449708435869070317624810634750085736615641929487338217864842887584831257611601373625079221391833941349622423859509185866794160229530074350445899066949216070704160318206281395314155546870294716144314407848787746566563470903055327588727830478253223428890510279788496743606875875546460181140160287419782830456008208857069247569172780179790006531293788315962803276549363270749055329852169382084672116640287676698523733316945063316829197338523322033588244761029609970215104705888385043423548399394034742377314711382213955474896868312322680997471121159720471332914098679541210182281598080138515376856343243506274870978983616540422168402516777405914635799659619467807788413251574021030291439974369852812955969310737786417147463401807733984346304103540769487184429682852825998645056088485837698912641963010807656590731414246879628681432510955906569247677597154592320192592050321090825345372918143162112502763965473490753599276724501590935592253443409692011800410063665197634179392527475871730634897831206392891395632921474970669462881444652182429834602110097225616719164197539251499806028297142361503818445078125256070852751321626021082963484784105205145985942016698249756192392781310265353300906119191997262665008949866928565495988477086847654563732247645482423056131736697665620212525559153532193402138806168283992030321428131955363985433180621340255852248838668879901113519832978326586328279676045374217490446749890550068690078598546585854528972269922646509266012884638200808310262659970173190215435491685453704770443129916998859431253276106284743561998108558885854136443906821561420229634059277505489073913833840685208416130563246137816806433176557281157103070507214960919007070123541909231609064241680036929755493004295016006844342967668543457394676457468193257045869401817450357282519654005071950609943389359819349022996086559102760737848175931943255315639952576211171959872778755591887864645015693547378864865333554482193166192525863477522487879484522553192697352455065979092301187474966530604698471731327004166986839808310630438507594776406036189027375153108132753856557470912058817931914648243737392902052144050226520092219423280135707576320917140072948569023944047133265979353389801086098271796319894619076308795401075445006758480799126958418923408895995654848048234811175836025420568688445329281984287276321182546307033398900742710929742687260793235532729179769537917078298449845041402598211923567202971019659212960002557765233331312958056124591475462196513196762591127987614538029949167255441742560588130101207083983835354062355721742051038328504713378138597968485309216378266068241197806443803233419727954590231487902451851861975167883760354812073301490015379644362154173430493300963667963418136131262119252322344135744136663511142159783024937509035953129461662518991402142988500435249544908947527513154314895151781073118972763958790834831464460193626119919724420153852680779375600440674603581796317626375089619622377173463256121722237824095443311138806253299216381019843558463063771712847558893678169421432148776705744785241184085037646823926721185178000694942180043463108083524037662301435007388535694252100361626409989804440985311058373988687501831377811569358460507634527780663661333928143156177548091463806591918777206710938498638154843383299016547493580690722463795699876809542768501755708300248508465992733816751771023830628449211381898754230211517276549720491864461822379825185878958895640918419703041988696724404980438835694505368722083189522843151472050854241442023227858160472501619293639416453937926971512451927952659758675155262091915437917543613771210570558682612945540334630962157145626635547769505734609840441456770145656714320523701757119387856114291321143468602892974254945693436206879285242629928385194582201764544308300901252403207777942156087240990067939661783236114836972422083025443801531213193191716259174837749514335978985565347486469152219662636025761014174821892197870849130339778715796573738749538482576238561925705491920605510098060003531706502942248402160332026038605196135716303944006293427791804150180424570793282051009890689301280279252765794848766209928743378316634896489445518831404651996647257297354336891639327685828809209520960991574904052342895955336974705816425005630677046243033939011743633995495939243556280814544627464804160913985291304081811679767380110976687649685133005321352330551375235210370227845996250285740377898154563807038032987865836823648768846099536595533309107017220161204334845076150013437289608866701629979843786592548663621638465523792821229219943960132046017928545048048236233200542526516056534042881770369204930824410165957050240791189516826205551218509427753831870516687115386010210973629893425650004913850570347234977164894195869505914372260716128776083875668117029409870850233938531263325996565147853127450165562297454573886293890113403439008777574493424998257855094268408472872304691269303184749433085547902846689900430279259060239970713842595802317482843615991469857146344056191481307066257982483212186560960424682767885917013859109270192452094341353203247891323972696828862399120838130451496306038737993644630764629465204835111190945601314236023226855055897031951262635389207426560339073285020692683621037378590819237810521141202339180127108077031039891984951998261686426574286229649498146016541621778735779255855098503627842468238463775000510730514851798127204256974360051393253972200618034906256275739537638378083586636757941846010407825706730429946085838746401927776253148408243222383366352644513331671157222124735588246716822358116776136057230526049436772792857248399365806388244399443015459888171172251927079330752860029491862837684655886970918812962265395382886068593295834576270179240248442329568665849227959524448457758648251845801417006368514286677791725498830003233628302725443117526130197694843091695747288498390463355375499956566404418660590031261941126266292959935199554054265747013547309188755613949195912242803090620659034890059653006157602815250513019388408747507990480501229027335744047080355176473381618724897064590943962083794251799163001675260329146472394216390281350276643747199448949379210763916104254298523686440004912167793368215797266639417242805703936465085669629382772912219657764423266518465228312924871908181449735090347834847594795236001675604996075511171459235373034376350842931162156011288521181104916739532591233517874700989950043215195374326327300751395474102303350648395405372182688651565524443848506620119810838652417300353388824710428397302199314840905210096398402804987960259533388700768737387156745305106263743455258467808373786464842983044091881041417978708497371369263429525999679930520906946381394767696679812577475107138763790823989243301856828042321245689722431097898376329035320482991154859385350290519214727283333609319534019497142084718194557665568172658063681692284307025374395001815626035995085252740702446913079206898373505307085813189933539954218424388408243285520125197171972002415946233542830792048391584207939145543274425391105979346964731052308163725001719357523511212053921007567718360909022624881412740689626655492863328519119861715208149755587906852513545481669228561749353182029565606854529597230910827755702032537178793629987060569622427265033700507045339039726805264678415923787811482916988330097807731862478260176405788124347651135353765819074023240554523787729980443677665034092210158977065941951212534622297620648942768727814399266523203813999966358223142266676600280683875913824280390443265220463281882342533508950184978103541118146474011443654490847440892019170367337025945941468879210148715412859571127845420817965358182681624779556898537745927311547396423448983044716708651036157604772148406872215225892653851125280190645689461983191369450424794184382090553216141259770120892835734372317204578067350731852783017557380534825882198836663623002901919652110607684208082255949651460067551694196993844134398338998683335688956367650510807301808442594524599231738490437650144229442053492724851170799572163273179454724097097836916601060735879971286483944882643688077170228817078618113496883598582864852388463118375154351283230909232137040688196888193809435419952596859795586146683275967164732141185698745567501550217610427839558244410659605563608680770351957768837971676864563115826725623931956111936964415797829842801999384706896142980838190009190290520909033039786380552150870632249965592006756398712966156472339244425523848187982550968968012209276374853002902192166885807290402735646322520618658970717372673695806153546006502390987494576861901292357973694056396998692162437474098937414623698113696123792699551823507207540767728880891230711292987964085960267998067042365341046128416004066015881456944379894564185036392660690967156079818408826715997689439266301156450455101234820024367634331891594952832809639967719638873640478699322505106022081491576037063581792027320105483240632354691047498923766290567405523710073914543444775343017860529651180941127239032357868703763346123793567571143348838769361525721358360529457219095135488023610317202386893768108420165519943428213461619405009267823477602777065346375681465843925402810354008241524102298892238332710188234905781829810012630628641902254639994959003995549377661137174145240408963341463990698559297762556474153262342510135729963790169133091415167640488241406988574083320493531937172358146210922258355031081503716932911966469562525755076912007592819478923685802396573499944354473369759400937925081192201748667381616831699364715385880222789610105398157452565630991732205629724707166194070125474271307185564502336027690021556411807721876243509633222751661052304415139044334051653880103385961894614218368995441608850145280115377172238390480296617704557321669072773334627033587533055016632532844876403203634270905873632729385145100583586415600065486015592220094819215686199705233873457701260890247208716022026132726168524677680076682251274738106203820246183004839516047026528879889827059839029180430762784018855399000210012079730779228184370214212958294862962906085805547738075578345482929811629191282011927772171592790265083242860065587124511559233819918854594411941737581829017503024641718170888625727863236656131954443987578483558057272254194273413384960349871940493154073140075526474876000588510659256666812571846818043294846926399517979092435861232068412998629884248466006796305394693808745550265049589777457567332498787296827427770895424352206392776323388262337491170494851487766422486437358602044802864652716949198360389469550226737211439892468941346553727527413820350526117734580401550453381892837970667647583272831367301694030174299268680244911131799347001284111354414111533899614254322575788363385391624960554341568160838620859820723638450629474986840299871105145741344985522073779061468165215895199731218349802205126522876674907615407195202012173564215098733723786475058132671838672850299828858022924675506195884389678659699342634401682000103040398776468720400156638489417871086063080874829860211575307784950516514976215842716023273555657637048400589750719329039636653029908561044461265266762075730712977777685416310507913698559273235014506025224609852677519244201975049699939799408968533324728411457023498801316878033170534962033675376519731350823259608779533587619930790200254670087878047559224056974577069741582033917617364743270524497879536641723947319232075989558998358296826171305991582289944542850264719676257149498155897633165393075622260386845174744307511743936336825175468351668802338086220914465437415881958837167058676018119581990970254356588198382523204159488301571026604202266597028730371648629640665278743533327172375966139980052583176168149051055620761652892508648624305464108840918238277832144218180914789921492366565150631374729802146652637890930098865644439199896459145461848325273352784182484784291664506706537861732308838617984041924341309363709269163282318808744102229229069275293972797968368803486506314716017135167237358477818345083954719167415627260427546894035398680182369327088229287416943344065279975560610810152702732003089647949374079876666300216894353644486376209890177313245792999412791902287873368136285214839683275495814749752619678096880880503598900068849396397763554675821059053073035434818064785670704482636571293864869375403736631496726630010346984324536740712271801056116293137813768960235154517761800463319891164267464460515153665417409114947046722385169248982979694220344725562099849963021373851957335302166850167204240260879492727646554936254815412171895325828513139329631788958747986880416787470870243825244733202325938946751288322051719348354102309363501310981622249282269906202308828251763432545078784552800983511223919235828816457357965661678773516158916518526815495053969005303975375912118017353934294161919246808950168983105193061361948508590657060107358355167656969349375215591133414326837747524698901342765579752147092650651195610577571249347210842003254046036534444621246486051540671020959426556805064945658839134388373295628971703421521399517583873214615376135819398817508937275763888774718875967523782128899653894499684728951768245124881941743462917595887630642697898127702749606034664676989857403793943798582924847760305224494806991871013787381987000067250204838042636560679603920641745655976348641320605137322723201816783157672927287641177594551610548517447800421899671224166377266473892031830804932858244601961777491274073073758537268461485405083813501924499919516900241075292227497306873983465266221375289901908173081835319917269127580125764825725526328478593080789738734764358499254064096451811462223236332454162951861104863599355074416430035009132288694946030362828089763593515023964916201297303881555835271164195258401541555015618036781393377168598573908273991933458353786920222802830535223898108885802002369468076888929919657648846727358166868248449223137867674652194398168108398987970752636162183260435585478475244046681947432682274427652834770639400283766732878385647334353350535384856873673616307144019639588406968014749950281789808196716474659458458504306766873987488030118985824844088703605126233409382944073213650375937593359082543672515565190220492555538459306865135780935200872519808945186768071514824766960076717429320000896831157878092913639411158473419244382351170531042792601518277048835908772078159304045334646215517027156018955226886595945856233316127045423922942743738109443836727810693473454239914873456988279490934323494095104118808972000770501000861606799676849719212387168619280642363785927033206496543549236591051062945502590417543424316726386382047254111178041461054375930591831138690827886672727054754675112122163342930906338906408383285644988981982732563674507721084482909378994712559465338211636807644640485413057560478645906233784008522541862432753062545295971691815748564252483351381475814591807912248533085177393344486403268146467625171670943883552951285736177324801133975170682967190996818382425620188543122563429555731922663187948682860878296269838613655945220102877644143422149707665150032124417817782364955812251959141486586168477236762952039714855237071526157004741151571222185536666098467227807760463961517162636792611643870717328731051034551308240971539703083526253593416064115541759863123254443693382275506623461664401117948747948113115255970188232931082111576054228899241549391607448410779561248044255548639304002148176096910723488451370140290435678685202809711944373768188055980436369722714780190094101176040296865448088610699628407342238441860587749086434426115052489310397870450193220333904918352289042427689006706154328304296850903173491921395678162100127416516752079402347902177420753499925470262917452067616942712549304310708798954440912723888675461240382796596248933295721826038632510034122829201740362212737781117746440975516681549508917710348271687663867599463544146880370699180726444978019675161240104058582376378423203764097871180213349971860674708872585989477324970291829631127047769478855283700445197818691916916076451197539147917037810311484416934316590408462092183562607465959980601782509877829056875995319482735039373351950967417067307424163666653749998375446372255814886179325553116494681919318971861190748063846003285323666740335142293999781117476473580202027655431995079236329718688966302364844663530089622176533292865013035458772614789451533563527265508091538148839619998007693691055125789568285999750549131928947350682356111707406773744416153399476565357861643119043870835136656044593372595258624317254749795497458445335929737088916868104270852321445653274828159129443474650696928289190425332026128035275842330527862352036342794526338734139681550956664136093421014246374840829725536179930616518160423592931538734443700903484489703421686192899214500194087331172258553701523643311795384692962195131730577271153867349454416954558788336664003593474863338045673916958026352552250541883469561794910680179058791845378601624538376722358194762417590434275565072858892770274844147077306449175930158090897253121058912615777618233752744120940299239969582868860377550231806513041844208687908535804884107832965942633237716544370720697503052995689009594689342161380464900630593605003457495997193413389009778564565138817867825542345215800730494490949487463048491063518253525163371256916951708712345460212296919340308436518576006591456752341967579949944116257202944952582949270237923568336851878863127240463369095715761873872623610357620104971604755103749219059678392964907521219312063151904335674094926566191828550926300981726820576347370160934797859238612769954826990724456705282486647835242399522998688941100023572546503574796116315132018341402547674538382590476406208058738984088648591094849236059020710456407630391877605898538735040040073421520925614965725184386266602257218085563011186349912833252813445035073258457628324572028915575377022060013670196817006612770304181435532070272090878976673137891079062218156868236608998419982542863775391827467175692484981288405009321280000948108722773561757659428394500196622092042563373330886808740443708332242441751759180449277354327908058434320229811358339400060150438435720969264469118347066191888106543708019794028284136019780399773925211227096280656275674132936881387264359147937519426021618195054035517858952256442758543372694829077598040782265143004110956178674107437116526501656557622290082795563105335807495773079932582377103293125354664219893765158797248670776003319182012919479161036105307325771781352780100027087475888113704453539330804054281643974870371688766554292719082985585917786969020197319194451963783545678828192740781154965164538646307096223962594127189342533362502831536360099553618425565190329453702040906230294173141151981452582094540647395590460183903857112512297860368507692043161811684994624987307531600523963574938131249520689044750194696977241907900404412555832097325771629005075329413337772231794963051371936010340591381644888474101386359888105303952209466046365430931459395714436212786094002743725678263397703805485233414145578733307994536126428375393305086391711693451209549127117503925545669074860747165246997148827175324768712836836780042973522400659761818115181057170619737955748967448322439551863272545948259022133417858087275321073879403924838701349284278873911794764072144751638776054340199126985803920660245536719328358940114093289132255686056944097252011220099861904027771476086954985840375604865229912588646448593347254703086147049818808806219094912272625567096777307188485123240073231272788681812748337342596250441949625280907937532979550850826871574083499458010176429119559156916448291423963105480587763556557982990979253746247143201093723306696444143770674534742416393945147224951801864596694599526347010354948429213184769338468221076518071695142092181629181981558253901925667046240501261425562929043685030890325258404347848443294002094746250635666792444462025484741661740841762036766787585635200116705821314447418305154952132698723581386898130688266920734174890096941256778680609058353346896127404083802045152765056433102245056033098176425493720096793116704143282708559219679430217417659949610585190078093963702316291470571769744581628800554372758299130311198604794934132829608319678344252600350330093435823029591643476947072323003472756426554123257123690954787712539777706982899064957280807578738724957646212627388123569696539367499745253916754148766843608158684392750709600691171378788959607334244972408964323101128864556864595049437181383583755407413674020290900247183008232157018744733082255151682735457382391457151143458629455365713093165998506887296163033945428987715965690954393544302752208561560660461318964919085157598499991901456334666067582786291813679358975138459486360469779540647650668374024311432953345756863880311922599979599648230527793871696432190002211525553887728910481650986869726023950407293753254827091323663757449145932533997476411671708027976582738131448725049461846376118556640833956685622599647941653560876341431545334845782779492787214778588153606953847846648017565641110251603119151276272279872310175593375770258693494374116372403571366835841971583146784673764183503766312631818214778549181445317403896728507768104873453812503470194008920252159539927713349744789345285854641299005422532350976917538051152092087197296598120931136757006880033878162146880685939139777519485311537369502330651121994901485416546148074602748562857838389313037268792463463654617647054279141530156880511134766457931479215525927360654888983078676783515766684910778457080110910680921484226400163605010904759512087785607219614737050615976246396621562913825036917684487552381252058327998190205877936485968043106518184556566941451078535960656166103553083260551678631832740692265768398818763350299278746705022839744753110743705857437242337995660343791672155473211105694433685612445377905067048510916080160846122132206334421379810528358073332814638082412378775668084742211283082438783186055988075321753719828804520677043507811830054745196586547611283049785262184547404670540987477495774325164781169529887235016520604222261204046056117200675600767196575322414029670268422635740881452748408243462324394293509272773958729532671090603781326386427383687377096602487393298909740814906320625169680763068347294647164058401684005305551780188229556142837056609035536222075898227228602365566625309920194292195964022694859154408286774661454267085226811931625359548117121687768386960200223499977397064403608336263732171338757251809441498645736588303957835711287177658015562646664958711645965844021986182145339275358920686903787244595730436037105204324603868086822453842463301583213462265393592749175331150640344517097707791856924464164100328722185623628141699524474641260732930129010425464603478829069123372137898170594230985580818422598184195546763958441825236318948426716726205797870478633764667615680702759805488386247265008626311720683376646311018075425568041629532216776192951283591866645695346705320967173439439389460488606570313108321846871047202539599990075666385020133869176331963084000509280785573796117102629543483540788990607111268263670132549410648483427056560324045574850471929065118599496177954539483023965220301503460257252498239593705592215259246572103660085128133040024480244796355485278985391171709493983747997653888296666612837483877014001754985248544170511660469363352978293945560461049153083891285456097440978074239376425706132938131945500592687940934522772647222221166739441180654380281762324920170146895333158363065616710038014111365082248988271893350086500197976171707307620810538107576317410386314587923839362425689691469319921678972900320413450992241846635671457389405865907774607537459000795547739968876304343083970965487846778698907229341424015550962617688958780408539423024628050481839703207215044835732089983221854375562937361251822499847488782328200674036717913208055533919040207160645856059963207933679256146452752344841735200931320117981057242309351938215844246274570080569711272364752845357621709473458485277383714914534119318603619397994916757027303021101815081148621196519765969836247873270833383468352675842309428463548607962728544759666097225426809248887799509173313173533370428100700841128631587870125368526392939955234705096145549984706871364506958233327112175156456971101019549848729940068327875151661312733184602218750617321862723113998435295231114719633784327439215961290132083052200774349484644714545846925626670152958391761766586134954145485312976825158141906079889664258750360580683073329053134438206907048977463398942138986222019102105755659434535505064985945384120692435954872928093403628986426758930495459195704555694675085777452897029290295159059644238992650683584056853666754328969012935620276280886880011210427335189885771828825950556369970786838418386253361420324231242346363069406343809411424235756005814356410105814437554443465954059823365276589069142293906076077766142700848949221021009834268813523319581008430008394274652142714604563437160668289545955843746341941583454086871122939083941207305940756961451668264321390044661858888414569834594970621176359330170762351846043973452376203161627594931624162104668652582224099930006265923204140321400833038804981164185659010654607202853300885843841818885776833563002365829998495765410982106163852916306554323614344488237939964917837101403316129015723716559704855595388709139879312442253729869692414814926888868210352863281052781797769330973550120412679506981824005839462733837064678310680229166294190462302073379826826437577809127272262359446577361611659577120393003489120656656787839651197477922341387865188713162186850997352797819822804094759070311788099803480430495114753278668029049940734596971485992014951236506063578547144556130854556474436237942676360086953819074078319186510833575803625437173950758079997198151515752510004728341348947201305851527501158258672106462356829358914640283335962004498390154603967347453533612042472521496328399216348485575511994855014748051404588735411695051395935909194385643782306840319508129289865700998590115328363557821070161972739779878017562743496047958999644589305691812387123529488380611422026919171274780170394702245856941913706747677007037866954875151409552369059855731265794549167045145548802731999826199217970447191830625009084436728575070274547999408698570533911959711664119772390835912817106998738147007278872542830605485126184568851762297992370543084628326960525091978579612978179836708464635587126246192899795825592445354823090193199378245436627091112661204754391657756983634650328513292071014103940787711614648002645448844936163267347501090943975436558709768136927366783963663118019029343849549313425515766285521459477215956580073456899518439782264675787364516829472266820489195665546637539322888239549019608839800541380565019008563538881331684371029659638541755063849410272690059343177726124194802219830394723608377642169823374196062484551136716375985792579001275845128314562623828402113757023891161592061843833846785487611250374016864952569556854713700143385426652770128349089600102576244394820018291263218518608171410548222464571060352647618477395443378751208767876662593199879187396818133612331761424422521131231907352058311238185834328964169818789364838632840749874891753389314214072582606408927818555149551359531151944736491613223956857240438864072234498070095541840132119377481782057652857838114592634133375981526426207922659246268701993408541724607527256104612964320867954722872541048435174050020920633106888445543408274842533385573934133242464308670056811024308702548651417009952540209644122027788563041025022602412638276816045692722323056270921887712548435979008275754226157401911226743078403970134150684591064219104475633062778517528413743663633497683445190402467316453484052793024344752591889604057017437482513349577171484634371096318989097156353357137651370653180888679270491450176623293996662493683157529534272286796814263145740455112395022905781561653327543937828961690986393220198876135206675560758308707617152465705115179995550100645566503131601591705052675486003495299330456103952909078529567928306017333378273577747713062653947278848987043181746501945427112827527416785964830223544363036911932336173698567792476117161066391500840992329963062455601581669293741557132495077922978005231794101735417218876337532952947171617679437747127631874510595471828643612183054722381755920981815310370888769874360125865018450394239021580532231755062339175424660125453641938269029903203987452202067044192298287772484802735202699233980397786450540892089229073268395967865458666278723566343709981145475986924859263297042504179491140156050619133627989083689191466393400801368104894305862864691171218036489786432564497006336147497563167567376270611833747152310357591845207958574901971111023379655586493599383758400466430732690288507477604284172336293842354721504393639983395539657307113715364598243928322687354356488611746418443767140729225963298494234616169531153770246036716747336217933964333021612165602599203899662253849665599454438998979985067898628164974979035957855074423414896132663190021079999843412399096726844220347033964413507189713206022210055156100709694268538985275958696811898898161812703607341677426507600735875189876461354526973264828953464791145925404954317837939708773338197051410490956156105422139515909290350800916984641317199496804415798500496500089088677150197533837567871993390518754077134834084661762731386620263705119659428146421763891416496913201098646048538542426265147125290170424902961786812093936705281585834283406886606280855482127347925304914067211183794577753477572397209947960487987951566483427592523973288004232142601234995944227855579314712336860197918744869013773537372495581612136135033080199862932972290421400376799331451074859418573728629612188875411396737635848254241894087639983240050949379330315886170263863135719989878345660304375366733144099742588877774268880915217723948903393364396588150262955450621950264049859810939500122584772995929506457288766965729867879638093922379528767240688328701002210714083785435878224171583158960232318612433763475940808855950019850707354259968958805287724073490262438165620584408595094296555391100290650905618923166936337892820022501142162842887633408583368402266493019695095102028075541935352562197173926853862068548834085064696744775713886683616317273866828208843324033761503030135885375123083396941509189162251449713909594753229429624077703694566769103244324857305068991358852241422262918012604241742353131935437148087119964788117827493962578378070805766937723500495846270655671817740278414372334230913885349201298254108867642946754532440207099876456761888345469802999389055371822734158077833885588110150079584891928547163801575927612503915930941116712219842103155758442406792853488683248464316489768662849321464877787679593863655494444583709322575945136394179082936046974133700512683027834650734594362094089463316780761230888125829426564638536148531438780713116956908264820459840613080756784305711835301799880897816920294154938881831260419806535566771146571052646409057886325718464665086561339121290535644784321326627529214326393055572906337260934993783120765677838597328382745285561398576434113231848101741965840957867891573210389570191863638459457442180657677770998050274341594042093098591418957073244796499364490844398840294377014691629201836696055162632094960458627588035343437275631166835554374977080844625235875213856131838087650694622270646350303685094411115001847822146680044134143911845108833715279928135423341480583238713716054100302889119316948397192580550964951840034320966017978414954498359833201294120985636537448952709229818871908213424361243756779301613240109225089784677215045228173096032237411160982053716496951576135195468519622084238682018401321957847425794391905258822774506133551487932927718648950661260909513363138498983524520347929310130158236994839963982246358135894961201860898574303131865335542874046831866540064582446147127687247805436200733630109111704336405572770866555825730281210450631760558429177272987168790733114430061096275716426860931624776264992486848544946249847851282784056385227244657206138324472881745990936936103132947264546949013553803927451479835235732651008123237184756556367599638920719885768941725192968530092211239337368964783216860400489597068658579318171973275965976241067222782681625990036394723604093013135534504554901600954087340507414019715010594234093595677984296606238829356033340089093719984855191440863131863039098522554760082007126326542361127689308392223385393884430093180162152924471937710408305960866891396220029433363308343182716141669036782789698812073382719217296136254043303827942804063191918944296361548850875703378005772867280195111633865178432720542348037344735998370636251702404860213515498441086974790604529280102224601096539700769798064182988425803895828790659591839119652713645578072095152225116685098911651887310894033013723815077794455300279710677367843558070843179420257884903927751503398703466487914110858748697086453541349000037870976562198857077765165222741307612521689673540438922673661522320195267767526003784846774151459960435416980779295219029945858628561439874699556445708454208600616668254716950130729139037990543321097673046699027412834043823954002315049507861126945745916715030516334966643711096037188454871827324548899289323642500671722037850106430516176894862881823984808159965651277147232334944233504997605839820130150221205614863561510769029761178160175039620448517305798142056659957778434893940325071558689830537370782078205321169891570516370511517808279196340222591309498099843049514183217339262957478780368968782766182779845268251032728813522212343852413248124755563480524000122565906678300602000776424072614113231087102069667210318124118539856080969452014122992156434843865496915620096011396082757945943386241221502619713027972253572250864712154819650255079131778845528779957098407431302082542338893078652026159889818231865071900607108845007957131667174748373002064206364189641139152172825889798011094302479077077876501237063725134646232788264561450675095524132127474379910913221532575047854499912127619211494319536403931795801553551893817124882008392467251093092461982876107187005998658511065083854050854226037413313810785707592660068953895263624234738977400673773337159790640710347265522148273876136741585827522101029456062236068855765537452330223517880620682294740868489276331379241250202061744640283167303668377710048153002511247644060758629943439358121154263196743895128755099402361049281429490215721962504182167550601005038559251428798271699816375385116053648960617570464848486175349807372708977052288982834750250948916547007243515154822761451115196562740571585902156446884930106123657532363756057854426934401533529536289506932242458424716836870775779473167807956432173696562768333363076621255111794681051809287276416662191068741474704790913551030084451326718640667895890442146165596849563377370393972634175739739552196027633263026271794292333843140649294625548281155399228762608033388719724795338279701639005827277780404598135135469317807569277475008789176568906471240733826279209221862653963280000962805093269030724562085147231869706760796797223677727828422048826851431645241818122697294397866751401103910370010227662445129826471311532050971101855351910090880992443353154435470485974091197166035235638060114938131586771353791431431085152360382302781911264967401384193362576413947969945583779771862356458506981654352958771720381775707829935348791362186492144871112317333313648187345588743964168140301386236108981436724049294544384000199999470192807277838083482054900743770215988320472299665684422543913250528976537298547506544116190464305501918881082405057609398206929903510246097422978300784731867699920874660922186182906513005623138561082902469142194301948817480706601876112209641639568535039205224670636788594679338916591307184789913342923617459896081567199131145075592130372265860149530220167222585899217719150423855927329685047376138415105120828724610064853926954230047968388891106950989296957184373686818351707326401821578408046686022501585690699497955411235796160691975267143305925800692349376026113642115546047686176355985146621896244561854817216171752412741252130654301905335661859880243418220515987851078954427183876541243655006704029742902402761257265852165480936662747014937699907671732801322674851088201021688167147961703231060895119068834676923568771822813008407550408725206276047476173368018198393893586018890441378106860033221086147478941132911103600314333461831114343145577124817572272458373576874084450745882392990282039345666781037579223241392552753486588984266266599495699165679480221550462948635212493068829928609428866583643704051472222167002712975003058213394553138519395556553927500583344487815686122380218485772949928952727860509184779702808041588841045702859254447264169571032112646479832377767765121956841760016118091402974061996388791855058120115584846062033377924171707061401691185713440306744392500240034888073493181752113352133959467919261527618536286422878025133731968543485543585267862190146069709349229963010920159922909064042773376658345107947433573849892259161831269580278493973104956565912116338052936687011423162932207784330221752108519747598246885058634758198426852659650343620540160625968619481906558205395845224097538985930158216933036417914757577939014463931197078206943523509436398776811129354134893440554075889913964925274278496007253459261848701914546029078407164158869523443857821900506517071830838132090087705396997106212474014068741272312315795624395992274887735239257502852467548376543851586363603040812715947925585605643429399441577177784586554975284343718668045726870183997983410154467329587941340236955419247121312830565270937062224138720734340987383053595426547513083684600697208493179522399783007480320534343056394684901511419934785780250943032529503874233099178251957751568087927637028045920599120440052037388295598695627979882070226668101252817866233389004696472312243565961447307258642724986827827281350931443974929838055675580129114627788267751964490008284103136224476565709942391440734415504141771263974082664251564141664696667691935096876108122759568156358437999809749674579995220555801781029931616414377091816325674085605157693888392618842554279548910361689562561757793253796701418187421108103994315001651586448811816173408580339322270734234907078425872816470330590418874504029736064783587029512397859955363037897167798216711302800677864066333686801422285026438637887325213994300038643977376277456698322855805402121894343783008005834928943252460778791406869933485658348229154260597646567552123053584408800350728197556578967659986100145777628890494478640743024174873830493310650454256918160257484247747045821626987145043491081430240327710933146880497073315393675694127553425592226357440899977822859118383682892008616699127033606719333989057006811533808817772666449901012814890762714393380509968099170569315482571511255876496456496727114504351008188396934565937347016637173500969212169286963502969227077406774666631197647345109834274729205336025955214308029059133638831344299817189290689315882481388259330623976965377000714003076604726630454419633494764489202736402163294604593657798748900169996296795179724934755677578555212663853558406118390916387220160540730017316709608574573871031073671358792639006958126031417931741558015398136222592349483833542285854660657415652644332647580257861786947181498619914699912512385062269638519418389194623968461165613841649245802563777882037331539579678128111476454941878351333327511779029988330044247131914704557079438183175365034079477358930010057178228711134336183622391127382268512256435778257509509430550417677243374977746010246107776548904884492063969891590184220467798434840976749719151118608713992529299196226423461942170013124093589273288135079341010015848674054366392024475028692933843996533825008628744775587756410051853702437225666900842756092682365927608069739697535536848495803657353959195273302214069368411850142029139362471651031781187752313894562307311730436822798636834428321316136834405575844218014307329641414291238138446687819103273036108956273428009619103580841750336911084169746367184651729041505330183709416598964839551089720273722768816935601813326692564437402321824984084439081061203317389516371762658092590052773946363643663699445640086022562165639343654729675394726505693056593339682110875822991346086276006116261197750417448254607964351562967842544224811869652323949218356014118836634121026412039391599276185219786207333651897982381999021920112335220531366185403395299553404934183019396967232685741531142334935713986898065669780992039993612496220343477851483457648848936474439083354109564547752608303121565212867950859805588079211604699176547233179647248507433619256537620417503428601476778022616605568917269975771188143424199880872567420298026935886451838336042010696734451094875068164661021747249639353710466843435873477264412646208014441750395355428906678573275469206189462416250572307808193635030450933173744480876108650063973565401203780118956358599766674191474350358737731395648823637872840069960145158802284160590703307430728343182351897710493847548864434363953936597112658984439161990412956326529935568480060031896149637951982670192284283550519308740366710281722507781384022107696060013659233090113598877615328869951557809083355138046936899252403227540477026191427439816944126989110813344190834706990271860643799870025350110094193828792182230201848210446663373529601248912437808140762458869826255613640018890218946933738165922945925037895592579015203010350375020624128722884399269283026013945044242617375144988604911488020454658930528237890891702402240529171109050555152752281951725939399111277918947928742848456564007576211473479756404106229306808225719962552364130411163193663327854316250074910653262894886910014491990892076754723279822807485370956574526079445551808461995975681068392790333379224634926908807240061310529686515259902531419593968244637542549309633502363980557462103104383254742341592221353815633549793049546092579794860479660037845374991086367583061696267057324768512754065685725263525954286134447351420038533594120179305292188464055987360207140283695051608465753070253154848052163053492480515879327159652222214246602069645232153386976185879491702559360847018609451809049568925292696520272852924655358808427680315238762304948109027225954686836366600889105743316312477543061575540089328999399234894081518889055195475920373582526716009825050698726708640949585107412409608725153347376180331476204826007994506572380073658286250440379934610130650908252569321173614703928992826929618351032993608049932975961506514297154980843945913683942263470045351677679948291511170601456160531184630030038791918042808230787842549904254630036662263043950088517335569134057673525931300848937788344874640679777700242717326159624310076920626891200170201297707458906070121491213883914191277173602194307133054212236589177186814803578570731472256712181943580954087312998241702399074587441204777087503665885077557622285275170389971105027191932935481492894111038386823943104554371655811249234352524769827239586389956979438315950333486154193732573900423538184335858363345795322439216285302766830274527737822184953415285349414605012659262763545100427376092748107193110727601607110244655815741159232697130383638713314195208510884656947937040181842466291364419655773034692014419618626576334694851334216210187711693940293935136138293080721541012982255344365255719629240571487727721635840750003044022811870385261956134497503440978510728929059265574929186177794001407784543690671119828775827307559718649648790228451898284476362906085273510261623113052207823630624495403330032028012560545972041668564677887872222638728673143269269788708350873130487224200867104238820936772903272113151723988637210226083792245489660799610262384539356454090828015999042727496881179264399873953143236155196863297689348142027700479182613317709498352433422161370534009525409275622202484170286932718953914291600677571596511670783396545031906955969596717021610459287895096915053689493987104628551407739933547547442951829371133074000767210441334488910484758028714903943885752962286741106310343720867093705699928451004137987128899083107712169163472326919191461532997151510733416065558543616082313447935746247911988757282295328116726907342334918063040927931393445850528910729820230238922061373536257692990147798802139568176911749168121718103014582537179540411860394611137290055787640932156146818268193592659360948383601054465983485340058661965821001702634016532144729827759805437715548988060200870723443176784770027512292099114360929718214305385166627286808739254400452076975050262991945028381002619970241340340771234970578496736739561803465658566228309030090340325409758548500500789870215400555977693807848565217590180171319599738483140556395209950820142796581735013519179032310988884101397621009782897155938047251678005124871492515307246714666146309035405987289258346240038411516735262599982752809887832079974003973393972300560098642671593954288231340161902695875455521208831782254921726643910816267227442467787045612251414049323144472322393940406130422326656547462275313188160089852642623517487911855199619828491857420956581188879304349574684509724076920866504971237323947402546459549189085814870971449290261248054199474404651389891975291093813856467186903104954552260483177862777403802344737552092086880135910535643032100842659175348634746722024719437732063760141639348765295943691182501436014742041984229385232849789743670132982628570688078408542290266053020314829509555143132581211987208756201493539883387509558778101372181918361336886902426115132415780684601673141717866860665655311870143377212963710922923247940645434044641193308567276058086881064883661944659478498057925081050695261801135918207755984642089896681517941475737927914693626371227276175972202905733352997477624476022976942120204909107499751773502428217205934181940104132024702826726036583571463196336870230727443232569054997739068117164551884471550104313856730499134535402196882724825687086563130377278088698712709461033175272227105815109823693857353257998173555380943743401530088734470660110959354579214142196385635712959046482442468885160113697398014729749111693398538692261335020163717024657380002374407156536917326613816572006630238913519322378898899712714718739076190230396391839989446884109912637557839800077226808754901512487269194448527202218743365256498235433480955635132377739760089358048247911502926214663253237298840957669802654097700476792897945638276177563423433789532301736520345990002993078848975894821604917837860299593781198912810571531955273913159813273992189932894657436584474775437802940369322896692223949746872918692867635124414344736144846326093942499220268758573975920624531529805383320870739333170239555778185406342242132800610827099151646655070788098719852423464542054249547858937284682009497001200192991563600407279178986511438786140034186199531728209643738110312528189042656691507123774516913599234426259519934229631568929801034683386416626212321850414780002127010342535528100609072109322249084409181313339106045177192636810881347706769088548706957163866120491125137446039316734018894376396346509030925760209814191870375648979553531396607588962723548131070805821916805376992381544887456161037005338503110297083182337437599366330518137059681566597357773608301078945738246850637800889846044831971614835894998691724102897587419491629742301214248483240270037591476761404001149919437250246224897810864115913702001588566337662892741923408978260256417888394829732499221170874381073294692021114129723634279384383608413248618476947851798236901195299851440513818181963823883650458611159431801651440551098464157481829591590151641739704467640273635498709109025896226930580031588581947441422141685425570630950742450425332929181085584690044331339769009196374357544827709399435983721984736902942779053143471980706757134634426862294649539039892604949553028946596575841334574134805193824361265282791872391329856335003819059737597622878167617554381047409872461652923051076224409321144102995837353997545504623444630275671854946434443399156414389817573202044604140163007107165091485266704713929675392463339801553654646412589364398114997079341036332980363828082283001405627150503004669499868442388339294168893721295702109700539539591222948134104207477478171397751101243225411136816584621237321589105529001013324359478043998138341846320250756080603632203411015604130067924817211540792836384819438287068503579070103392179401295666703468489830929502499642143729698333088210311229120810842062666377608127038575087470695132935252513529040494242622747059968630475501862751612350775914577791075749469599936229335462826426160151760896018486849343790293677174122230757819182016259760013814711193864034716504613469213270113209739439454393059313828863601070442159298015812630931451887519173890268021467867107185924024661379094490071393641299138156021722290887346915136163269864316543185849584930341694717244177409130031450875856537849854789140159024156499930100792241949823661707948604006057935127936833253835592831083735387338625663482388939562846822464559057768734293417861615633441748587355509049805154971393480065891336458679439102856868014469955776760198611365534080285216976782244203978883274926761319690870572168046873881486150061048900534784320670303717924112848144996105143432853981600772127941332797849612653603702308438443366834746884089095885488724861648383022947097467980760913854930533139201526726483132628815856880555759820868927716248892778464361925380919391944277011101067448725386827137712714121218380676262042479052461774330420783009723121652585401307164004649136464398089722551547957595530238293385626267256827017435174400247472673533001102142436306642804774277251584830056973978669007191990113869075259226321643053499972448329901152452741419273608584544821981583759482616014069694365537713044845338153704518611975217911520584077707388920921450237327518209700115327556886100623633266840382055984749004875024172006213903783839545429805379348696882411477624662899402785477432194311148318987278450305736807348662436034267142406683417108650894918056584787424906062576695364751516640130369684456352671610685906736879478689856546563331367852442161535673614638548788885800289469603285976267183627227567358251057318918902557792734088055326059570652861019424253152794516649832514085864563617747344689312065964043764795001334561442480873408618357946780625298477574462978547168059584689245478218236170089162263161514204237937889799228725982250836136652617499242402367081419434183625613381360790864974504453356683839127326706318593144423047820079562908051918377191864553659471261231979905488973988339959206934942081313417154977740922004096164456865769546182719734473762531686293148191702338170652855312398723755409410735744488254381647096872376288022355006513267523159608801384022373028518436780969922205928095564593095339528491085083792460321550559649959339368601210948986648934994496463033122256947835720293442339883838170358944053929935509253056717662461054347931208935481276661913974061227203655631805696634562995825403116208574920194405368601889539692950903359908006300965973843970157380620442036912389267383788680555707727971591756667026320748622877274396012851911041691417547216872656818392749715444519630473335250093421070292658661943565640314466573214469385231079682992109382884358247348154934867108330332377673220058218013062308719516416312172018746279932284768043837595039565408280900847031070913747093790749188054193971021551751249034478831452923409661538484231078240201742033825219793591954384949114296805298690024445759341735210270738505685293497343243628121921959991704528769205779282467395684076197043114698515975511012628434483364778520088603287046345233336938158148131018104685084505137120004616890082693948051690137401279086559150765742263832569556282501622445975503564808183607282077067003277961530482946062474670206781642973108630375111941810323405555782592776846570146035054674549255248227876257713892032934273541136777151316284610067893894299571430211771982773965516437532768568740822444182516530483872893575855862813656439647919615404248377518302297662724319526344138297154124251054601577350364844003629584749723854046943561014560688794827367021064330733744566884814394874989945634762428025943117531598684250894459409326130664934355482544679681933935441395626348384476499487595860041089686216053134410405662191642408230890245627458598526650674899263991075056723829434877244591532947889771083917239102266155430564204139925888531995747293090759824462036476365378884025396872324380742683398488880084086453501347797680307929381817332083891618557994225764400325161393551045121400944146029354819616180016250452644683034124610848906951589346448364546973460104302916041363954577954138953034505854470382223435231017453009751632245493055689617597982909103384340400103209999142133440060579761595211995951676913075361541254625693996505327307884989617188769376231037961505632407679877815366741224945505650635779115362600058161245543766617064601822255191403171250745856105799182526404915711442543041078639361090962043476488123093676072435285610642111368462978925210573430230232311732851988600949596219072113224467193562806744392210237429228114197986618556869445821441379211459966693580863898857726676774343322928297219345041109190448087579561021530379340523556043613738349650663088628431669195940248031838878009353987353057741450885465147433579716555111395125183297417724020731922953820217146635979564164065176307615228668640821679326807838967063002323463448530457673784821420853584515705687077705598381290477749426346823904790724663521683520749043434168669888194198535553558117274583391200464839312164036268899993908306020617824875329881374022400275507391053911696952659849638089121325858335038550167331614560875111502178297452812369155350895768199832986643304403416075778487422746438638606350000605272171443256231585643474697872527700659888933879461734739173220999623888668612424116836450420214667451466137230734794901876921214389548578102188346299722321974487548748369317697749930771311242982441939804813569487445977669323816182298778541617859097960685383993351623987032783287939097258188571042942409607910419509297514608232637968195036351335739865606458979871050492094471490533523276635009467148216097951768985401042532852966770527542286265482198496334387120020258794316466791374970668450934583114525821532662142258143733362454851404807991959135132922891143365598682319878101666932491334576601371791141637537657008060179530871106731115084749406645725241145402973513711431533657395822830933937458024256784640799039124859214684993538169397039150061528637010066926918833070254796209642802871530992795637919124140226132877944496066192907158527651761829996768662854877060035281559475174410052224441113344401881920911535758875566244783226848602508605670199628377433427216622780735219593587890304486990923832108577403794316970925515310009729248338993052510230899704292566605321076541634270399550346392646582187769878856242663553493616014970777314374203376219552519848680674642509170341578245426218298942903643728823475544564311106321490699727986125376642530258462877358390210916486474959937358033515659750790796480840007794842296789806728625061992398497708251271060475454536503418289639462446516081540886345888594271464002232842520918770074615860230986627245807554004154963989588407399635737599175411256843360077378947165448152151381586971315044723228139926794534046700288499692603577162076611509465871325884906170550168706436964307332731047074809455812586030886754775060964209610738930639046365668904419959314493937664289056248870348246346774460177370503218564104575897010672417759973469959856044601312074633746566064246969012049291344675298974233844934314837559736103514635577942868507021982833215581004436440037506285398889752751546712156071466137242585906434631728140709961002035919292473614353616968409981999182216442167578578715270965938996113083658779088292115213106065810153976807251901332062686223454927074291092460016672258760746666191534256381762061945148524806418478683498120830642024605017124163004674779708899392477153470455024509475838960629045512384308648044897653601561857766434326080294095487420522702378760258590864399599876724993019571061011537558736351666225966274027339151499120963859435177196744508969617598185777930518513063488596983122579090503792499782317433178927294779891691451684603407358437839515006748505118951590802247711599908143483962189527324507009342963898561406628765912780190676459127288837098566455075534899957764246780883929821719848438638798685823703090088786803451825616433172483451394274689636228816479779454916861591718515791997659491424942649213093051675900354866006449074002345625095023446384716279903263073666191844022563467248737084681052287080893599007575801429016581545481331896162679977429047997556828700266223349808525601814335892016665381947893681221412164299357406509781148625272198339913043554924664351420536872793891398156616306406252887917064539404498635740204521399144894438296498797027696936175799964117030800442873405683781157368205060666830132329543054875017219377952892631706033406098024580077577160171235160201928907825122782110391713477878078805395119877857466495687412470194950311912253825016312853071986878694171554605415091073125213421034804883718066190500639336810492622993492791944085708615681590498825632566379454596402522733488732719470994930448717162681853974144082553135920378952989304723014918246312158414782538950104712346861974448499556823279832086526427714313960426227105236819189658997620110481102791719018230563053668063213583602498140396383465225374849052307062838850419285931078728681346939572320501710166023930417432853033713156833193023689695365783572427584223418455452448197451985847282277923634477476133435517013800955363202905321299918215202039654327491387542455425902363052105296983642724145087402069393319140304577918985989496480499504360795232469003184073240195497244961529458079152616215056542090408818264443065372722265556385536473245770108508749731773843088158121301942821086717577532716861622861463125331883782298872217187647658225438230098073698780460619542906631744996296982266433024858679294174980371780150857284180660728991030718508377979699751426166082085072975572843959781249031484222062073471437564976181369610880079130413839338322934137917877272896483248631898440396998917570096743003527749625569671272984390937007776492503387416441828202274095973130518865126215107527702985850857679698712635847557064322237458644367285395611995466336954459852915504175337598689717395028058135113862184837843190919204181160241185534523513777766988099546940558771030680993197198127873718985792112202489555696760963078440727724293015429495424710873343653261102469364625803136165311229916058657005007840153516308211042855334715478401419914134979826656836845658163601401743098418129976683960030048434794150630002487249800040979502010061011672016514203841690378086918757087099482370153278522391817539111142765750349270627516927064663875032050268807862879838323983400239575969342902549762937877929624475082964522822877213143186268524433413903954730171200057165662497440139756362176306524160478236163621887890736666068965773737101559603791622830610106232492753379893867085796807597452278516824165348596248414438653855663797530037357976432069604556287744186979573586054752844532192120321469396179063559256770470203764800168610939244294840889606321173711529134657530354495656661051981205834421860278992644360437546017784407216813740417440170519093397186956958948800735406437579893695622237700748092506295895028474852005761686002195042893828184245251601050921427298264039601870295345976747289586611296339275547762692189589450147927096570084950263011131094785238436509557165856004032971456369823153652400809671437134280555369716757693660945574860568820777722929727488777138227440548554282522848824307776606511044912466569303079205172271028942637909775697537330117092148250827784644530165219887488595025414254331531222813111550756594739662246883402534788438776833980429828738324340319583043920356381351189314672465268863961706320366909101183321383199454836187247478872248280455667119587775441881826199082726057532204809517361800295983070599264696739165793214238466247942273128826438087205249854752082427699674710282302605507221353761852691494674337362073575752980795441476781737542408370966887353543622408758923785438962278304459277073813150522300461290576255557958894265579823326987693083620750765775163478602103558497775220958829704173322193685078602848407347675968832012112179885659350660938662250085838951308145634818484069432190211015250025860111082564573855457132779753788281253748966770212500050802119122378010556024490630368738956033607357739908945104699082361571385568835232664402011202851409407109434100360571467622990946246741685278394583592723532185570655836656408268246183555702989991775735451737242530095076388656588132260804416451759473145475665354480460168924519079463572624390010788825176030560620189846612678033525901148922202603821021769936428875356311793891577283148549682999064213369148478197028370327617277185544727922141670102182942065474429589626311241797523849119190362503058997218615488482835697824435210982706742129564303330155289329458596294122956782830362272330257483511086377254254542550997719652252818004323381726111649995284613395845385841800912966852265175917860762562037239692156808454819976534243415914377961358833119892381383385056261900549202843199762270026906424256508753813893269404294618662976913452505364644831412437144133100374831224842246690916274401960975344244550613243294466240851075079906889644848865728574938954012783298781171527872469894666472168414322846495429957571269383443432309930923214111994595042885931592119070616937862390500856039231884408141368410532290044332139345440277698555034004217518236071396866589310644742067207859222842992725647445170443762909771660215408414331250261433688871197997141984110498542831118258640166230879753295781571240568094124003643833660172467186147752958765493974868825958548575677534954881406935491968494857176514038845244537196485848187384023490082177495521695105944742067712424895652942577492381253730336661009339527544658854002185898067530825095307340963468522739688382826714029103275182562209321259430778786293511955938137527585519639307002275166012679750129375020020383035403867504859412153434341420641920813975445366103552573038657143976377663608949791152903691150027140413509040509103321758482719778170310952439445935884565006877115444921912097983505704172209342754428594382531315092987914887140631764121661479110538554335499095043517465686191049120120429704002864565712620578329010869390764531286017088765413861410923846619194422290508670788908922422776076319195316355287304943219563040614376981145522002725148447628159848100717644975197957687765623746973063178384936914885078759085826793073349329403674473849280117941891642315788412870722302820371123733963455794995248939512142460385052454982858954453214550663647582452351369612660165796212746230804624708577303191009365915192881993022369713334548274902783623126050484340438693583614036293316091113287523854651123570783958721348816121820537196789244378322809382046211684733577367077487260389923147659189262867519122825347476524381413753413986365148248599902011948025166991085358823756284802306463541940801569414974375416844993223502867969561486874405397991688249132119998358487872990450029732394922857278056757521155248468215038090380331634527280837974945353101366270726316190004672132464572783229998624429164975215870354421743680487198616088990154886508478183693696111224839064683734598995828438918868953123606852070246257862076965491768561777379786928355210258467520510199322601591265792369567102700066199318856309114129956976278530415026220368887517013703558505410810145808164366951068399751420543582126681488438618192859914075572923765962101560347253691588181304464312156482930511790679353106272535729127067191710984799136526092509017342306154055998827023769483386832850173122095455183348744810083381095011405560053466875849798543869094098492281265574267285126695336222047296813110910013648397759695390361835854486499364713559252937661191471221039244927951897229876750490251879374611347955884892805529926434260638614403675137657182615133610332621473709533280089257490740705677935932956705537461471065183679777223261589331782503203410996620067805108245188564900071198439983056406007406691181238093798701910298414309165958693116440574857333439836981699919542072706699892780198927597407917440811520746407957948413479407100734474554325049989880382325805819059336476566220286140206097535250787444171697795821735010251737349615003251359403039892453192914042068772352268175045698506572532913304031138983604753521772571428033419150042601887501364288711131647360585573728301319582938634007243000533323551793806256392898234621277801219882137356447823651830429533745623684800419749484523825803801405375256592078123404527014346342959808333858149718419945140862760856808593597565429811531339528523836379927556745343275295528622350366198590053676004934495744641037947491958875915059642527460447689763302000529691709636769330052523613061701271777284787675850207950989676811311598948514796002098988518520780194326596056607232670354145689171431947304366970001926698510545238973501144368410197346241604751394088780328706909014335167782469578976106344827031296592498619044816804955970627572528030680468784058360521908400471125497841932660538499341569765125406842061835821435870363101176755038594222040484322269119946214326821092968808181159351120030421042764874869243057943039534574197412328777006665129438520811458372057179802294711805017497943416970000722654175889526602773810398207269408557358438807738661582526125365392295998527490567087948681924696627206347650274141506698439727683788476045875580808036629295333505463017589205998323956787884168644073597411560037957195836371295642469086830206644266733745780808145781405234594458179517319309300892909621058354238113340684028037355917711497891586144838918261026162527756415697338698019682989190331204307726036231762345764134784408571386343329242391635530044707672284575702702338370168871913488392823025524582755042464328099132195394607679658998070150289776839475771536771242929131764753777146739888362214053438556086176707383654338690721897140299566135842185770698972961493714577591543953278893082373324995261143007010743913002732245737320288582848969643655666885622701307855433358763556393719366185639353781467187757308152899981614233854247592373595458259650568160474224389946024755947286411671507577715609507823119628987138909730759889405001205852912305458324266276819371038453170944783688089278504847322683258556418266370070822508335468077555680477692759725496099101967276865901675829214278464622464266093176898080284815573766035763370931222469186789048167334796033812839004351187433114754685014734505156968992792105783911643321670915963820018496664157355028071540899935210939911460499921661577102942904855860878102307436175233866955106446504696950221218173741264895422520772189175398388633552080395599394603497009105543047328772235752287508966657201524470831055603332507187451762955966942229444162396136917673010808369543166178093612533373442728247932004203636669887665656234079503714381288619653601453842089679464708751942470500600659962534700118646282322692008050006809938264444887101905766387372161980307868139190913175236430007345352006581554804493745152454907429411441282905335523696839417111026543835910624003606412974480356336775489207402642838109423242959524638488933059549856067707797276589413389271261616669219357853311443827531466003822181185029844826658204977407995591058457606631165187362930114166107542208926998803419044088117027860902540485154354720016116322646983770850701782363518541388142833533877614204738464938937864811744837134189189091603721399468857543618133375167029395391621288786130442630241503877020321506846546597208263939707925206820489073958297813563501927968310177545994279433729708472756299293423040608365459760766113179590716539592851343117529397391459977150230680647251963183311319615545813376724851945416500158711392207734982204072230113118880204424898394926360761026597512063087690036593200128255662551020400158992642266057144642790490275873012178690823143667854882684646348497604891881564422412450868685427626136113755431703813456756551282573766613908028856186430337588165542601187974576948902457353255001315382430312562693217092195242614721491835471392947903182937504447152810447417669974155440121276551000537410153269820080798387830541886110457697652654153255753179499873353220662989693106116463687296334052850828100841186424187081210251289416226943107490765761530027136160787237073277274104569471231521472698941991153030704639880280746700764268493250063751393308456027357317661255327008397571836721154390260000508503247909537022816851912879727805386199141769653751444665297746452461327007180138451621011159855269957945932229376649866678437256184767238611833709074896226624100452417367203081217157786835450038042811099888974652863274358954277762817726596890590149767131427079422477891537634424275411177308908061145683528600723113194371241445516393840719110276849109458183110144408115049323090107942019579928059109654726817114417694747900037713491606242565390475524030443688993365191563986873598215385380542574692657670053667630631690492079567073563432827688826468144911092130114003773573686232962399788401242975196955028128385886491964850635182940792288005848482104208287677425391625427223403295641411364802933146741012074704494473306675309451526587304588982595978825858532083647850479634815434080952571869519605532548106338641516986373260201591284017107786073715806578173412563999483047309263409313466752806892349633362190901169471715319419048944081235175378519257488469959800605875666880330093317322661419273514855735067486692724385036053095031564849941655220155162773665300677706372510454367123565803317821000959047562653322009147651133208464113200705297004245607818736925774261717194415397125793826735347776224725416477365344365153516747881831664087799648292718428706015475417570668292032468742816992395182114786007376564575310555505307279273503871103865355758088427624146887744746817734852119462928885808371151107295607844966136499658274237205386308769755992460625729576621327164926786950904779815648685315140983123749170109970145181555037793926059445606796279667765656781444110223389454619632887126238247968558977804187453643844924124433178828274747944874827724199551785306218966916136471199050611694341718056749202042663718705755497137829806808093855119640489796860774535493624006202417622813625160942471753760794717982191491713114623419250554816695697634733240919818756570120856424323162417376904499807545408782328189997352686514321552481720164682997906765455756668295034785076015346228824083616033018179353286197870554774562789642169961412026933111165726300192793015267440471694911597345922051032354285095010638210323539295651472635541236582829634900296177851907289754012145942562027650738554501400548626686204309915363954359036405186587426135276411143362975300075945233555643424611649894563409668982413752523093592047295173808988685954156065772818087672931313948950367696708458428732754133525847559252532660507384595580974803067476525682033619051451466816260653643370071054511785239633712967848011480721688212790765688215454201463704632914219214174698796379851965212426073898915153961058532327133102270786457892189492656238740757535353328994244894921058489230524208308602326020585560685023962738571530331847367400184556860502404051786707307262214188790129197431528726098191700508117249863842168859380747300308463338661526107996796781932517968253926831671058661801834358193810929505406933267639834720053084025755141378570648278805569149812499061015885911551898937108333755243310144698951879117200445248979224561981061006705537132268997351407046854301210273606276143007375602430976778427731296492894917216668288861720886691294257054213667720050187740236477852395679062476773038217825960048604452173613470460242090220542774751653298437314731690591869883536186697455816844293793869770925762198625689268154198212253326467230413119707504165891253372687440919111780243485824481265877290657293241211534485897833946492574325267887646935583792015804382582865258719373754978288983304367634440411137419110924049164814879499104607089742260459584466808826294414053445058939789030065930702422937432133042413843764456575220134837687769461466561517698765186212306229535773454834441723606423792515582228954244241919477794523822481672398214740467059364240830969233506744963596359046311913777271291916749287112728966434163314007389737587370452601933878002475760730495029950358991929047971877408291551321485295375154240638779548833240831927255540996689105312026680673009766502900871842679119710944535381750103202402176389818942644024644595655713895387014769988160936665449391977029542485332430061327587418874076466485462826183013930348367533072962029337570565604123117194244591377602709206858239346322909582442395298585280648272338576891455082106157126479659736357128601790029028199452766854085417717534277693055926797787949486127479045071289303186653858418141712366089908158995457090914082046620473313977368948344779802307951153690936508118994382967402668460347269141741873651571620938742852266067539587253880798036343099236610532984482211768073226020260557188968096926505445109297800850773545142363179377055982038140725212925999874523726455957768818892144666134449839460696909086090327265869516414873843672442771066184675226737226608844642859353704009521787112143164214353044844801521309365978051294981126865065920684726039513004957833137545948971583975577475162638104971141366959095492282825078841043337094858560135733947152861998954356646460711084356144340831176964579749035912138809929242965005458462464241305527365903585689795516664162614257114924784876932795300675897512014685889968751126211458048736786245949840440995411015650897005241890219751557223072642168343599997588402479603908312228921958390131410107195386354140639652014662148493479518094178965972895847393730482849911690855688522342805924302272340115025356365597409908996927713928829448318205886042404085493343150711824354372200455999153061417680453904686974236094635980941729362469417401009418542211639431680383288663636621569328702160801354978363965224041957033816807190373012748819410297454946821225981358317284830406948888301416301699823921155196214522713360263886710837217420798115342591965321212859031060689915795900296905820840477796403495740352790394318422726101919586547142573593099249377789451360059911102885153616477963910522075394227649724424671748975052412184846492564387119813957955095678571865411891048668037848203603589267943425812601866644043410622546368624311799966352892282552410696976990003045508164456326993068237034849820941862526786051296634218775654704251047366112522857875736006144819516926769011079928178798276609508504228435685571648888035900716943011196736100404383570614783777925846130639131380031541305966395862712329502123896936058651837494363445288230592670393730678573944686904012961169035149591923797168874888696359742653833807966415574545649071649692012400808933228240690230377970578823328306116630743203331470702627820209136899884433754065168354784683492578567517201757832044741940540122710450131511232393385644043504454102497917211648158909660212162885422807528335767743079967946467996515205225823535094571347334680993585323284916363500348091316801220426880636913116102221754702770962775795702834378900632089158465697726776267046495822541718308996683154787185711587462576966558689347203570787158770662728760890135456447168421026918192029207786883887991915258538320964851585681293060310629768729549665167729652838669008997795167368689619955518139722427193123448393131723630286173670395872459438006496686996020240779598776189155370770829823959775754993279724412307245842785407986777926581555033270832391707578851636055740991422095310184152458547114673424909400813270530638516260245930820455440819553874783911779447796884201339170059496601468104860399004910435292302076576948640249978104357966415345689191134184926756758811198093467975717370083909277355054958297236792075295161473189850928984111570434677242815187850521224946424317672666568521683304621246388678790770878525820830466752353330241080071186980281407747190945959556812957383091615116895211224249878815545064180393018490962414684780909955237132092505893389070289603489733648338085598227606619393202632753005158565665763016783230199145287454568990882615414814411699622728344551738520454014184165527009712657216793721655964334608540922326565175346146696941986009595129782853474093492400174548373274353030699692270667078334023201723441712976011781073996615136521563969600502307185215634326940222885255540647787538506755018103941643717698152885068463348688840063188555792510860017552899348386566619061218459136250931988150280346568202930326257386690077757836390006616174649447391826655562270987617761178876407828366412775511022071759159928505762876192620798971357788386548545433448893347495774489706728992768417159374800682669318830471730494664065910011545837183768085147234399333580682399053759272075147189204660427451676826984768920855584443693507285753761672844688289949915468421233006100543734411337946287310453271962127191425046118479633251438530044791299728407807949010323926322243354263329675379248507361869148368997153821196981810350746382476773531047983070932452845182802221868780378251473462791648683652842134867639211587384434786309501312590386920817159294719607284924274660177881617142245242676089737733032645968653787198671950422701950432512255071196925054173655024351549331295154745604798172484100779121716907928426502085622544839703298510721428606055347943251703202923309564565969559629257069099618625359711048339741867743652160006995883086122536711980715860297249302906963660578352708877015350029276714824708208043921862612458282010317733659856024341293463856407752843431720567429035046516941946663245932131234926930873903510925139410528862044024072640991834027164089239231276625541543853299435203277626587813398837414055080798094935339118049423447650015298145923869202414336712114969122944537580833377936910367870962678597694942952245351417438504244342624039597811372978742949866277697198071663115677461048969295889223141495089973000255691262462024290728313950032315301241804112291016758085631325737680052981984708474534148636850406278730351233225357960653811214543526544552074140058996303687846280278071862974867095417244558348913140598657387255290531438812567282388212276775369052570634275746682586912912106804110283856221766888703604111186091046873925169541001559925731336715058821956431596712734367458827966541706212988443681635221837258047407224593137244357132221483192809892057696131253183622417956172717792335741312330552442851160175644287345434126994672162043064185816027556792983656843002041720561720275827182424838245820689124300322305838816077669146905506652766048688017491997832792792558623286639521011624158764948825075504238380741523084985338581809679142611208085082312495366669440008489044187079804427748634684135102636719004401316559671011903315436870219662717630984791077422510838945733681676074028452957108232106714215780563786768073784920753314106267487861522055771186758652737880660476625377329255839904386446083366432063933611977713736859534008357498706186488969272724500985878617618799166811556293963875048146518214185531791712896997717530552117540622091333020146317480821932800843087976747778557963017166775698614678305279478190121470683232874786544396817325410026048608369683991463243879220898031015783806609635710766745465302678159274178951419568967928896385119879822510736320297124248394209014968799486190076290178453807770606789859661157172464471630337052028811754353416551880479568902252054786335324939426790532955193642720405589960156681851511616766234650005477083218234818213469562245669522045611008368377684338808002137243293282461080287977680457960945692049484130149627351047507561648748171794582305342404019866563654451369829939614375997068151416932905839659625567117403132231120371450452124337418814184824981422653577347872051766298714342381478671367352691716288373445847785212398691090551345596714659011551097274042843478285567804740359449945738673331914701478626596367852418513520236801973176090154313000984083550412983037121978275333308947016079385499119699504730281950422584607020573441934683628966546555776070843720770821500430818284568891603221253143457292017079938273711051161924903282402806144574739560687756759272598507354925526920127757963609046586339429792860080115600496697228203392830735070587539461613108374749401279954302033081408852171491560802047089050051851146284426368081791940165387653101732073468318153082690058693748514996246134837894141557080793335472063042855353039306073924734097741604110749254062426007116563571041771670525308848082781492038379869806238833039011066892902160735544036001320351376323859002497422152471634068133530104020924269499200767415464489405833465319829938991766359162102210527672607514104435897053565788639622988644802502465637053911295948763969529130701642771512886050322387688204500737456455870499206959245286611833486795192935725095348156996631788609239405709531980823000353533701278210632874612893868072532492850464090735273451979749470245552282067256763885067907560453233474696455189254979664173952824587508510554710187723989290792447689714153267247152346318052584091389360553447308591302507068558434552342261810667923739879027941395088940730158076555696536859880735512112917077669181573318423871479626648827054300513829396927660586374381551172993222545225921239416909461000738396406506935137941360393296271147105048221092967776902898774593259806447071694666630379106891718242736327263782328902723428585991615974508438875734931471515056611132774042268594397012224190571203590365630790202108559085818668265850791869755398872179200625434301831448055730900709873634003843348542016664121531214802666973042985865591785388232092588184770018896732865648721193953713919564475975201681495489331705143234044173353254170114984978567342081297324753302191105706908211991323902723632802557272349813118314960631706094489026198079344067091566165870777018083480742601241841823871096216752325892509977288702964119789876360168548862238543909094910957918457716457782019958142118784868713425836507582455629901072962474075458329116729584767419041796352851266608520936549429373231071775684361536123012544367166725811507213723440007361273202144857338204265686207810562875635467939202725605761658063156845922212307560795717945187531872993473480061033650210249876103995116953752040408087540226975256968051379183429748179708726134435403829530262941626818607915835580975125369157352656158305429774376026527059363221669324908193146625297679477420259870756571689025029329568455396865773772126886535071806284463242026982130059204245598665446781882272975572249525381089404159742850271936245784541536995635560642389542521031300816236446473071246897842844361435521100306593874592752897243790759235447734819804102756410881395532145718429126044257932598947836495489973497150177067068432597304353286869006561121430759732545166838070310314626483938493884745380382788682401705332703466344744645701785062114294539844811742216652454585663972936600888608923625982566494775436003601161391230149551509273901473604284023137465398889421280827930113022263520887362087924361725256211414294852174486747764571813430098723971719130758284979430144063788398780804258918701136121130503959233202830320316563041245860235017003663493750349175092255778321825164718614088192543889307942525841258306064947326504671313792757480309122948918376318718791418329633591644312690246705139653693820102875092077154099306708270147092088327494357362181916601248465474703254096464273319569204921741689025655565191113452674015691933813840132462234437520870244453642937251670491536620386767102098242116123174517716730276805368236032861474161751529057786643803133009285503300644205803478108851334071668277882163665268605463301885031147427280191756093132172496084638126939922823972298692371513061755779980596278213110321749579770024280649418552789100314189421978683497992879435055032411404818097006436537975925956627805254699613213527564875606175414748140080780163702781211460548230220521202072781246350977098939631661948818219113917016757941950865564357524945423161183285193421928982351371077471754521233301117594827122001524041501278859385670834883754375218789712629898653413275012599124711622926645288206810429673084894160206849977117039537520568910781891866913328266705304235702392469638528627309994761342565513775533165657898777637290681870542597584845792518454971480965690894530358948696447123220103920096638872710537825991893712563579298776765848284282400282642800883118243014670512552758644861308171386199263040006610449241495929012746845205844738809230316217704109974554489194729600021439230026690193199848790124256480165235038444285073638774748288453822817697063450258047784594797915514846903397221555599199119930842873202381211070237104894039362874844304049878597107786602858738518281994070801040239758479872681435832191446243573747718999880628057067935756480912362659418956395295579152471353011630466425828616067636880178918510137051605148673147925939494705128383939845941468123831080600483636490377674473501938428782611868227414963693329308924398328283288119119503217174185315275182312773966204116363341088622614131310919624094622308973725597190430114931115011202985896736427126945702945240888657670314556392973399301788218215075764348504130098951165208826522178125313266018217271382018838934622632838593165897085167709378939944875050129064623678328201876995013823576969982196799869174479416149110807975907194975695867034265729433938100409101552030324642145890938976587579871282644759462136272550709618852530699596538289890694754972840676898123100399092656001299158069313490914689280163201208620827419668249523765647126439695661317306209221057306535726796783962483246165617151097771472071380199011220022551076850735200627061722996233014090617550105182499288356689531119758495701073641597995625134395388827982751535428358182195917882526211050506006296174536032233781537168171751083984685712672510161828039848514689152611001833912550506548746759058797674617301243180856377970143478253574195439475600777244880075628615170480966947044113747495963030878970845832938331742471122195684700587279177849315452979857760023903944903421634235060672675836015561764065367206593129072179407989718779201997287660992295208890986994895570665620136091567183515441595437166553420661640378622101474007763398101631983991566486329435905055124254836841626416424322627928665129852376727047195161860912986227739554832401108382764855388001446243296244117013632804995227975878819147723776840001141517696978130015541508770592424518746974011170751101762758273958474793220482133747298822447959993224253154031873982475470646718406676600190341872118669243550355603484646039598387887203126756151814189881352455020377858624169395923096963609793276021367365389719862501309980219004352176718480825450964122208136063597619899994314951382046397896472252930764931496285502932257979885541404050296124480869775465133712006283442516914864441581461276227289414679134583910527344588765860336378010023977082362378761204913040105850230508088108794760536936255815388969644961339253137337643657264095218864313578930503723615768848676487158790560957797291168347537373431218885413898883248631713439486225505088729770894159007459987407850798741161671110375443596077922561412817173264109384994592623847358415190897904145739278609810907133701431683771803184504881734152178006052890103451793236326793988923757574492088239999809772948260152585307501113015206882546296739038036654349158310500319191645713718932013298872879829183109966242756361147965361602355946176997236801495403261818393482215103461658082253691566284516839204289535673075518110599944382728253754068831734898707379724595114924454638379786440075531764725989697755377467923761889106640401787179800477020400113776769521143027523139542868452630663519291444791188901290111345372547828900655976083522702608624249080026091688095647462465229895103113729012217449745441710312826697893973511164983223205750777018918790146669461099342133756373331048197084406931727168133866812615018071133195826658899653409194225463311215963818713187992695176243992139174064699964653163419336498621382464313001994609432001449157483807644792896029111105658855397651733519276041923103536474472561900646978215095207682380679846022083636192715940623121723109509756795418826809543722824371179796054422298184374380634310091067760904583015998336504084419439250346653091794651162528705582350140197779613944732346936373032764475404322212748402467501190810690622883374714493106926222094288503279141073700699707512176161373157737406793903200414369785742806032215763626473516424443013404158598130534183262444364481602505616827752713491570558328525423825363490147492137038690931112533549392304383143373954220744031566991249493165808639727313521309227508246962455633858555488720520368907378351784786534989638044690751167550536876330142852028043133579814473275702703891319660841342599519800526741801348467149964290061703564479270079188676682515272257811399056769853600862383090194907513801764319361252297712663710396298748103625421177542025744974153215756697762741455761842534118338398383370751480414913025508164255260787517927246350254837050747673392972207272360937149127708094782926969063441813591260737892367088186875018736356822398319517661719435041568592298161358896028773339544780414234205261560650326584394683706203571948915307879247082760604845581549895469277910311365066863454840121832931295397309212535133913876766035813493071484154005319657094513143277028158080868883545267262039277980231769909819645531047868012922566151535074709634693852121178025074408763613903715954562654413830552465774305606866129199507428446936713318956631433337250225606272786606635985397379545567561501694555690030758174920255146518662887902491613943629996883251839725741384699245291292474041471511845118317155696187250015774046242006597437825855618458794349672585034605948640412121576234104253508503390586611243454313183600395657167251197849173929444597837350152853429483212272562462547535857079241078255143084395953765928041941415350816000141527564276710836266637120797818840070076888707645148856331203502938695704108766334620299553330415302599253546883694966351761344796088117602273503473264854743686827256657798941338341642177887841020431268112812616780993809694729964383068498197851908809955419187550725129712885861050098702862627847237565250727898785053463491597861424797352649084192345677254307119766762712568285813938017700282772303116814884077135663346383085213664056688090245872517449087907492407771403997589424791553997932080091176109694543943687335569459661123902283859362273134390873048201999310836196675211057327514260952679510482408604922586202196517956235860190274885097227800852453844207957910606044922985874897153349628570419021538426291440657517688781681406942357525758032822601170588522174334148318223803006034302736067209395838807787948134058078959921464601564141070856831059381021790373958158238989805901997132573415138923508764344042421460842952806602281868592148795392764326864766251873412520364186036781169676002904064823179633280467790955872959964205646083941205048449927911405778469593760445211848301429648471844657598890290592600470258957812899355500046785473953216367583454565136651322184151217941504911444433691719770476970892193745845529412812180493157658984128727883341650318081794610104752652827027757190232278563123625426456560275220168762648716193958890346687061619385439426309660549522427007994675532046351843357867219082373898505593588777683050719550569357636010435995134237497017572927216488652615964404211641353689427617784772622661887331822982129646749542997693450937132344455825949492537947152206044357161169073841726731943016954343836247419716963111939850662282914103156652166356273487044949337106977630932881777419802166061654110479579338163769004363585714237550194529223627875012530077787476187737229707949714749089580870242423353422165249499654083261118893507253385585475873730633683515898960114457265108794962742241162512883308166032896592691120319408310667262884258992961123543363342686518194943203005609469165476656428571891829456194329691950552991394366652543267275077387190599502213292763640642525351018430068077422779793134419573827761514630986863513345452563390087968023968619610600648429841663061747974858858507321204216300572003393980776766740385196826890306010352069970738538826991982214658159373948043963633004013731720872316392358642088399773174200600282242477830381788362754938453409040561816194470750115526617247266471246271548586766893211063758846316330957089328794937022234322077388939826526855166947886846081067131790692842845238672097901317579529013650501404338223651278688634351269718991124056350910498335000266804696774717922243588813240396014112769891356297145712789509473778625040546486975210320291360500329178943450936185722494450297713952001905103493781232428203367283348430894567184702304351468771631855800905858026412610413191694809597589537395985737749260966618788561531293534838029975383943952913750137356267745784205554582204155601477660761109415444879444812898977248091356863963144753849450539974874126173832867813065592369320175701368788018583043229596776905273988581229799318673770186795243420915748683735226377784176563360146010787610996054802027191374047581613035301232702810818626098847262771892071044267118010962997361683762347209744183235306105664584743941271091192701594028841682509029291772192229353053757114411375081482583501884503256367599081767691543073358418557039721571480819671119046362550096951771821494318005842882510032633500241184679570470192603638535086290893718252515871678037358880499675347363827551481004897552407920625916034374182930104130036390112746292540292292011495990841195505104416014580370622513131112218034565308277826964448033120478282108499111230732492767693975035241812800024609717539871215512398560233498068298241709678265857332025094111924190212974500052189777036744580333014622137472015008332043581304271355729182544673411730338538987458893192148512308460933731679814906690139607797731687306641677223570496087174460700090673943373594240598685036958953762483749602806553079489358115514534574522684861816570554505481326942255546229751831406792634885564863144867472360810556001602669520989866728237424483080763048232362484829522764579670215219594963667325436584934860344651690177853787469439271000537070266327277534419155436583976957025445364964226254044210236457023687969928568966167578207637972086616974992736896195845746293679312117575920665717119575040930067715843036422632739546717226689867035843270279440912227236733446957457400397675682149644947613399240716780187956546270647008552784277889190080954290168474048597595661132376876223503709280827898851516220575022466864597336452918384973972317412128285845230433722047207640391018581603693992381024681129772333834370579064915688209227087289511207393761014544420231333715243954508976901012118420282091704956349720686607897127420158129078026725092952365574269667517288646809353787800627641379956721882120885790066104124208752503868005541663297729875599271021928043885983416093295301498276486872504330039143252976075644796231174805500438031603421815971867912962719575060124096081744592547362738113494490016342424342264339299016836118587261512485039357165738334451443440301067576081359126613808271821294873037815753216157370145172968220176392315227133690455139216055986983441568813605341817742327378311193467155506204255525336985796550262444447046996778545722053171541560964196935923499412661027535984803025141215940439910984627714182921518215816879617901354594803956199057542762050724409891571137193444322986464977312046525206855683823455410200749181216938284210287274253652018661815624876174719722523872956476652729516975181181190003001135087293518047026338912137804803543212260398317749451738822778326914061339740502578292549534309258690300886462599039481656632275178363301947289156870481174570009495250980289194584446977364248375644592623907669949625128602358127719452856598359324102380175329072969751538730760813286740130602732471097250640625068784985657065585290938569290188504153025078477205674828317168531173474047221411964455761001436683210761656017159244427313800617720335609282806733207948325299717823065489777258212229470064930421473173234566360680959289242261144736000046730201757261055664112637997939945639869044022076860346452765780740093299105657710031019005787161123565782326838970076069822675915519786871018987899257259835729933593006408955807662890560280694677214077893482135009872075640740278250013590079803407846936703514283983186506889113274363479206178142356262591575900636292318590205364599117195821420768178896970494150260337872501392684948302584910194371052431819858569540943544662206586944420569171697746283542584772785806059698993478946019847182132176891482735480802518371685097145565173815722520919584236604747415400390545844464392879210373615944372272671073454313113817284473908108353206731631689348636941228779554845839214306742831046960881987815403783813580815232510962690261409736599235810869652602905596607395208753502704588906934073727194363147561902619716599606373496668998944071941997943952648823273397635463617434174670359323216428796565372325785375524478501865986182037410709468313970954439458065318667905540184989957050638652585078086396718259039590294670959614339556042685529476107407009022788472152734733394876768522178196034945700295357713464246181155229726611257415880347403258337062407394576457031590445357093823020411857186488241978235127963942024744433790726548211671210516148268556956946096498281513032110001000571741676907882042302023081757338267853759371783469431926358295024807547420891607714290455314208804696826821549041936687222962027731003296145469699431665786843740534434138560141609565791260071940031655392576943635667910421922527644253093310354373471948978100492595421192437130923427147970973684707530222056553435883122836991447613052107499847109456381997943031381674548624679561311619848005523256170867108610238734311636809369952645527126715226603777977803748023728689994960595130717369543116260396607394036422197933941722038614645634937840684608681330535173806896909562544378054408828534075621879717492107622620268364555744267086695778522812662640842423008553311069644232443365655998638122336808222967513326722260721124749110451810105235966762554343685298559837950866310683330239844844863748204761082237169004939325861606355684432342758127474784701382822456380388128525799683472065698290346096537371990056850730616548004940679603102692818487015944011633981366171595449310038440695467575386464852140692643040594389936739217425364572276802013615236361685017873470251569340559439445369447128503316486229206143637003182578516948785658953487312170178394168902829429201835186324261934979943644322369961165327523368245272196866504834068787590239011609035767815844623135526329633742269812372221324702546505499755682377845807491940694296091505468999250978423636454303909386611358822668863038550754206695224489019022636189282573322971681733645663435512226245568093591818154601866214590343243230218202702440904504315736296371750469072468925322301951477308168060574016917100086073376381358588658503031664163191201380802962894460683986212768473438749815103892074860418190337681222918757219427509221270370720358043108256872271229513162756259221023252116371635723693867127487588991902566302372615890412804449220546079027628901152593171936278587419502855101120090300250257595267798658418823275895469430451719254424777905942145650546286087916274293603486043540830724431562854395948002070077655367535809557007501292223967628832908581143556413628067403148145474411069312971379828667857845840466629813547980881247953353594074311545793065217956755963564721400589423312978017638493634117223999136468326538049400017377214122651586396875325804339232207195418171437481362966275342100598195682014983356515725672255715647795518498351616765647198618004681570608583284372491827702484360425484207223451727354896046527493990705701126187744487297323352210417287893823423394471644820637274847767680603286571423685620854467022801319976589408736570192240726298530181906133257761938658718536452375275520046040671784339157927766078151290714920071154008722967185818098981114703837197425539292957930818650919230418985336176723122163107534217655883863715873295138785243424445940819884879758350575081138132500014693612228172568496948572491186867161761032375101736194612078185764984939947248692853686143882866852926612864093576166673210302081772584969924950879310013703165354755570594291355694090101733337697927039583477836064406788764739175619647122510066395946072318870559294567702056299844927239315903264719533119705247135840455589350228606184192680229815079177733466026416814129986856974915308677512272996588841071963306164016022413127963388341012549471141276822147389852411000009964187542418948522805743262259120359191716300915355577425863876332462303958023713718471227485585393603942897960629667702663524665997244658089566928785435017269319368862800607932891433226057785468631455482508909725827713071100762501719272947665998118753586798729342686470499110117163312000903672224794866154397834929690912744579887882504905708651791686777173377589516556804627876028296696939174488937195616531029367297901934088511775517088689629185173319953803667017240676397225410692831075207975914515075975989937864818031107439099261350873439817934001256059788770215427375974039865977841049546945294456618100102286144063038770093378960413133855244606624007593299391551985696319675288909976781830176534146674507761241759106735024220757870724343538485618724450244589308822152482703759000765478819871168790551718586769866477653608331229620402853505174782581637715061475725038492024488274013229888025557031325653437260325368535119878799383102726091804322321985400540461667683640122668055195207518250143474673647801371409369959646082495262242526667586434231553288547976205784130390962509889642739630340965680292307045353996865507333358724708596976041730537150493524658387243893933586190328437858526384976159968961432205566781419193613854933835329467041293347557067894948505505908616838765563203662911011901907960355083768629274330249173957922016101905560645279035747771222186969695174273183834444540021186849491128167218109306954960799478476668735471224436277587800595704660505551169273804753563772004604569537429558254069549145073364039212345568630553236630244270950343532693798450091563272363060493252388937389797291885079486623103284514640813809514884418871579494648006354103661913482640375574460773427235567977192543602067095005980824903264760510685418969189549144927825530361785004861241469301206768553533914429241838976839268204399606792190144259529963865971720196859010293165637607018666064968217188601845278732438842217177035798387842567222146277767442171145655433866375935142492974171276516311850727022257449964330014592980011892360510636935403723776992245439765918893913214457442526912560299286724369779219389233298421111907117841029466098599549099612032980015334953436865183405393425502152907682427334514780318928367554072810088955117715967909349087336334652590471215113647223083721767694353820451431851880092182825872381953153362033776093192714438323165061006526021700541185487394178861814873725993401972773752226956618528999128375982541276307456155623267832904230983247131045764107603260064775917744879973707229735901238925279146603975119882088444060998262463900504425311717303500426933842099019559254017311427323880323301580111281137519154982851085720229292220275844291678861112989253281655862873253258966378008876838388077795613375576277049861197170995956603090798233607286172285171354409434795826914377444521080851202669718796027516049470438840790902847197933444990303959131907417306048809905957926695859087828308474433858037638403333346699747781211051902666589679550085588473583834447164677596469002849593798915774769241904751928189337989695167891393945585752250760717574994221433040348055533005777551295735979868657888653085365327209509444795753143749958134882198789676107380539465949842002721743272060891478020366561458839948978461605339019631771389292066142840324781181790691679064127007233621559804340755807347621725932278113802370779548967070214253322138219168123974044146064258328850187736915703999185849737098796623470316020012707578004372439646401890724362360061747465701619155289973228239455510709187899171424166934084833113331054901652571447935210810905881237115202101726962832598820203017082648413959692588479452406095076453199414203583822744376157364267691612332188969190586194862313642154170448955693757888252054646692712391718404647454728199354034648112525455684112374147260258768404289815415804113301347368909659941932782115867672231385705731318591414354966038115646102532648921231129506933555281842514701351677961439100885307049923970764554366414167273637729267612706371325242261924220600685187409036917738274088277357665289026008775327559216868046409722035871523967786851476239444686924823771762165615643135467762142557581872533333680927088793036307503773892032004636466408121567816018675435003950826391827986966984782405411544753000985288359160090772757067977441577104039733627771010194188340073543514919151833652017339468171562935297213511129513199486509764731584266382954860717102722272528242867985969657891751006933114812993380884775516006212798564132465229669600967068101039255649141928436750261949528807874882328322546886269972788667827227390681809327559505011224067539518139179334792758004683847837110870183477334100348575227821649887005996654345726355022110764009789874652501715518078526345127376338490157119145119289028750535627367202023034390522928723505726846044651505582231307268634304429387072209096576320995192940345405606471364080168037806751280220856887387940260992065060864104235283388039099278795377033782800368998305846905849247235243815761399010652007667727591784445816987564371507924856738026194278771951940181428311595772135639637691747262925172589717464372366641383864194057849964219311784918053604868619313861425689506155759695240650368689592380758696829667431966585194646565724468054224521376819348334514749725462039751742495772741479723157927006476836307657707088632488354394791466382877342400405776892155824417163868434481657958560279137728557125947261215190758128345187896813504355017767358606077307734340900545763887345403637245385745241419620816211215101305833914715847610650549806301165618068359559932345398235424417756682861752623684594125354624615346780416533791526722147601809123262539471709623323243032843803332519968922614336713506788671917070838488937656702332675051189987229434203804351653435453863977031762781384484076740073419798352321294079604339830934871720756977559880011678454169188199770512372350019127143221726505122951450304223613691485883106939330437691631311955169565320069087607065376291610302703464034846257239802687584564533508866961872628055056700153031782322559802769680503293690410618742447859576976298829860615693763133685873259655491447005013612066560836983795831929982581452217603536433742279892807496298771922657649351215683763444928626004564605472068536388353686967977435252330018496289807423795012034958073595397154331365016586554576076960629969966190937991425338572313245577832019157745277508420164522066167243231928542801735513866761855775955578885685657994845570450364905747361994593852652986801156724690626500732570435448517499150543923765137848889904938528360905283523103809914725947625312782488626762569619900547196860101693800117084398286873599915377719037881625328173318846001317978299825772259727887007067704607694911778691717542424301654447454884800603050620821555625493722439898477416270430634142251892435675227373536067704449350096162183935415960242243705977861756521995976395227124392260154147432512775645278909381770668974740996475984087921695169471488602084495138702030705220133148908574158716981948711567315272790653470393594072775427798743879758336077533392711680680772756531149200806826963444513988401182843466917622551305936390260394342490390338924118065305512117444024519628808726399097465838113076919608426260810650071808201015573331752941412643897783512915776275926980659171456833145473390142627203532582460665942005146109728223833285238249078084979529926431850464237827169994237689260532939673969031618930551104136091039772960307234912249068313490066657628927123873539298818853936637310205457443582597252286332711937896660340554382226384529372824462730073083531135379134556934865848190135914213242831203561966498292000911503704761638425312937035858011986490190820284993908892805143733584497072446888682534005159534058123762985889924324107570582718434908830606500639106311775344073105672698592983541564898179948208272820554933599764515670125685247072581031011531456078516427644573444102136239624743197688289512802101193758326386382427938237984616227096282701589399528403676989555013075195983388693014964854850202507769089509072482592936279044763106448953586339289178123609323299751048708038518782484171136175838785080057997278826494854815915696372971170575281899252996797354778786544489815033482518527280109576722529394647183436990537272635780522585023862550932002469727002277850832589299704957259064005090937736425658922895875267454520226843629202775837537927570733142208407059351268347784024424598507046643990118332527869908003167454877883760259724580204509834201076819440753818790653294358259086993034178559614283887345273497940580072285839829754437717282195451186760572227675651197854943571225646904937101293935246488796511662899806346539885406624004932065857408305070190092718696353500711914027643666656085178129707341170047964895384719710633600413441022272032039846325712024110400431771245775172891577818975508046700408638317488018258406024614349871019135527174412478194998911359001736391980843410423664158418882720926472475260858357407498550322223934420985499565456574220351756592415215934200620145276965246577604826549585724861190236719530657055842792575328151957329060474983648186976691586438053329483374563375818764004513918362776846221844615423013049094773939882731620260795934225824540821798227808933798140123777821967687869274222162658945998012556768771395419871508213051435582103643007356279605379246925783152776911389957605956829523518816333650776499397948420439013881470057734423664358678549772844973371117533137120218673593990555742036696585583038299004183003139281240757188849765192348704479007990190812024195174567342322105046061546379791738758178547912589633119621844994372639965572058390450138594970527766130428084313528090290932491483339584473002494948378813109388315796141839892495844230994354302206122007014443986565045858727012976993101541133704635783811375524205360791274917450823426979867363472858852521704971078217848429044565670672246476091769739269587324414545872534251568733243587645701457220220661544971971372068997558005438875018481403052764397783100009034370721318431627693046633875227769337885597623415305840328926822875160052633479423025942544375190283437979094403191549809142167213984346635246004437139387630261206962120315126129888291818563527577810258079755456569792917117391907799273898039690211916327295796039856343837719519142799334737405831213009168729189358006130542401499421233998237077728089471906986336866263994212458133404489818901441476097364876549164317549598495516193413879931919913092410097070050678926242796312350110696441932597987977289990913713357858500693974951508131947181586731828300996108224030481058947085886345294045092960194610961391700016740291332023297776413394569806707956046612188613371885590180407225443148420288446974837186291733241117068180146147150296889813252210188541481621922829167377973502262023970282822441878792528860082156339934146054227992929038677202798442889548040357758779689310350387179266331625760476087072145883470147203520445198725413953559209325744036462530125191942634057746761552331198380147439198281966229036223909927468920817701379348436858077198014177248767496850212951123515346238558692687065139971781192397673487182597912884616013432831033684757419098585852215586071477227052249504717921734098325891078556495704492865882071298022775589109874754401580575970033461130808857707939767782502745620528526501961839173792794212048055163185357562824229718370635781165371898048778649398646207410930213654882811337576852178092838584340117484408840059658815660869321349288078369044360437843804900784869997201454558193436393762325222958840563330107759073900603837397320854810237369264157447022756704628347924618620675934103350155534068447904067160670049894517598791967605453621146641057169505738795162839190080167588154591079421772416306289205921834265576711640669675719364447135659795642029670691956739626078726585880454864463096503124265262961384649451579387870630649305288335972245647899621838782769771578592012782546773383276237615034427346769366320941050055382833556353972089798839874348063767420279888825516646568243988991490054727210109248414075299016836147109610462253509383121275968912779627690765537078395835581743904893757749893962032951987801642787856852460528031652717536880044052075017226707889974241815283759041435770028746466280505657815021776805165586531367026739971054029555749652649246675406227849116610193843242733414228001451252294812278467253573933122766964607459197982413636530482901620221510666925087612343053798119626246136136687087545957967564907420185228366256075881867162165628991313418924911621442160081994484873013016607521367584857988472995028442809068230932874185423555030000650260260720513427510948978532303297695585049710781426639620562465503318054944860880041061692057318280733278819682937808278313307438557990307053495267660521730209085741392371253311236751781038762361604885314956159636968717031147745770887189567427273243217991602104518009308498131308987722212485134181994119051772880430224535893553914861291110435172933813573545622408724717057055863271878984057928805014684488269296804452014792985803281155138162711957646341673320817233081754260522817104159815169033101213423074102604122258313817462095970471583880621306438320953576508354393929672323953595449652115229217376329214583407029481841430141772750323831630253744822252638433655866807812482441393943532255740004419921605643753021276538963629586298615977882200991173751753900349716033451607849141583287499664914266755221704358621351201564449344816684567528817638298314014738359587584484466686521499637867901653179250301647751752217702178999777351387780032464894092246287517847059260459183649254873988243167736654855745161948653151842574544410785864492923091847409862424480484154322099350371994359958212570760604511930881228312762984917927227611902513437239452358791491837458389600141289518924397776771500942491769381816905082215956925125703801410898272915007842723193643038360442614045165137381093075473013276643805012065528339890680499758894418956044613751723168371964399363242357740216490789259388702466375743164978558189361887706206022480358948093139612833005484693883063459241730017782036380835695123423625944347032693413054437049846857470256093590585292768463906680390028855338692471592214545134946692472002157978481170937073910649147514206539739577169415675496036175124220026928339364994730334349764003682190052584527409900413191927296138495990334711906223464858886055023238029190546531860018268923492070828426052545339444299707657223372101435246814681472315043325497476373920105773085351866843901263801309207992373636665241393667877452657247160400950348060113530889330075769399812797300974409490215863273371197003926043945220420559370508691343886957804694053782137587246846091002483195129324521831389589882968448807980773767285728219070387906581243948192608588340338041923492093625992282042417841592416780561491317034215755384455296961189636244081483886598043073944895025917294620194337475514114489694655712036485898004233972946387961198462751869262727102348107924572743999554668072521326442959450614511354425209900046293271903329754029340708179221344340451441755430277001849351779615643399001632956731731220514767945565178772163595264668052281177085106225671359388275563421736569937158225606193116153506057257237739946398313036590489788950544571470051233439857056359737520934768559806825352454975222684162226815680464256400194406082367243863220096848723015514056987427451838959050745601323993439348243618133644863279789906515857199044249380757458740699390716046344818549511888392560437608460640342758170252453674466656058682593808783568058088539586162496839212464849762185135439092867962258288534301843302942579850699859304225111776850134097987038268518834765891411186115814975685872462445329951939565893827352894546738213600301025925656048706577879517907239640480869529305354688865358211056598086162449315642297444146107168662731461640885823341916375062928325657829131106571207946367154523419829888147218930003400195551344201354069650131603838070525457637373660753924270804351473840964482939896134317365801366364678491781741555822690304143263296878938323743052383769171353333564077849690282479780840710890783377803800572758026169658617135053316840388726703682841616012397508807389015675187223138424681840268690696772097428437521743187348759754903786054158983905976479438035325526811431057916046783170139285762725536341577909938384127764356112741430450602467439892106719422825827846414587209263827920938140475543607537025629818985194255490024824662147246379897721598947769808105435988576287333614489995519847505135563016331872838726750636377496267186552683182903613610917079031182922238419135558901117572286933246611860138751824471562083038781946710705471194273242961608089418425083320710509448958558451613687504960714751202409755094825945314064362693280822220173926840714007072458795109550774833949352239876967644699473180905470148430464790700118818868484096348264692261756454329573700596088076196693324736979256227797094569413319468888434929167746875490781618020917179692560101025452101877526465001572787118660163678801309332662079934881646703938560495837572209693534178983334274220878828936068001535531809906201044376403590192174648149955375436475554899717446724829680989473496779584355452664230755776196133859536584863798167958452811999274797042029754422038771845409506240861901187727220840140394181866610396366389739046753542262272591094249369138211617970965739463487597250597652372476477826189936380889453193335300784719208389602452657649355373582815542451978351561167095596698822041947897225659433499332112551156199003956076260432078757105473396263385191042707554665868425856800784417389766644035741614904360535218376949647688618670744173874194338443913744564004212188977931829795936565962152596872046429688109991380371899672164019734372914648979904602972020769081009489687388452417660187925840471797719606048147901200029920449879075615783171147602110578063993448890008700558235641736761645494532918986221842196569351737490496454128589719202021740761119864607656873729873163608357793832829239585660675603215780509582397906466070280249152094009615386097192058251820791338195843828750272990280023079924289347093302341181102774740988688631924930974621832987628271046500706389562883523870648064216085474480652613140352205832220415530074254516629494636518484729548533471454238817482366362746727046713351152788152403997221744685783853680044294184775683591607887116816378771667539402871510791002802030693839170845149845337246818364164620509839828682489636583490695131163909061395954769752589771835979525583400917338483879739578067941706471656392723844788187934903076799317927205541878928142099855504697703341995200933099290932927940776367274393725747960358441230139461372085523114278834889316468316336406254079839022188385653344429479899301860604354281473135827921234789570732576518416740725571142210126415293017469319625865419240602991611778641801677808890994050851471843924666542598915306296206515224302785027333679472297429426758495950258290259872409888275258322593692012892078681952188378946937957769097625640769759717884919570331220823214232160152425778372905303633817581039973313894485649357721995665680117505173672214591347378768176788952255995421792804325972609994113318040160686825450524535030201478798339504670524695776960138559248132277462391242139619475873038533752953952641241908104249594488137621623612089513008806084773705185725798954742970306199690705571456956291500290361886162552112844950703379877543758302655850411664625133409674970322795224963231773748041176260783794504670006552153803883949220574162794394298779664937798574852350905718812187599673939093748433053775622825586598462967730556128798592302580915299713013239024131243350457116160394495413554494258182264040559026447746824683397389298159467265090944167102624692800046963533101453700633465941193495526405518339764257515823670540169142563056387224256915913092572750991754430373013532754641776764964043665924025248226227220629203384046404149520728333810115100299066529213104824859984086302007234022806683521408958521721813286151023966595460753689169668485802413048880637469475876650951881624742846339235377757104652905565508358290117290283830921724045236848296581769935155008272487618124638455834333417417644056181371294641791417519705563703628673848140242961824395477986091926204287824077075387573205245637290335901783451601287047491461698989154045439892552773978990645002440696152489750713924679129212967865915458278088444684637854072509694730593318314666994425417071571079691645615677271330620551004070768163460380425424197909230090692349176611099796949869798370512110504198962521847098444190516955260986175152639627688788981443974895144299458656952587482378359604287692703270259505901049145660032858140652664834027685424376794063789623677204985141177781927313428109336614299722876517333642126159670069244008455349876087438338178541887019168254552969005536993249351590022060356509866334733043871966406522580426293754191757240806457711046899979142006442753828841215895492371426704568043574433435188729691292682169058864109165942351064210444330152349967483053222318054909838939480831087788940845089596344179305245676186418743064046379793507687411186499957338194585677366358589508586210343291479054954143731055792967049677603843925415657814443395261252230384790681333925736536645530450766471184981466084582132548762657544214906730684961916610197240844571529673846455709559537112249319279457811124982019649534068960159141714134693527579508925143560520512535946375824220104556661387222935488655851437264793959119153926472445660173661994747702848389236574277612757481534108331272502307854619207994025359287455327723613785696488460608979812401000546710438583748187997966482387487326765035539478296532875025530499217524374060153177936810041397561305482531048430760926299377923377213147381770973853464432713148248560254265603198069772803127750415313201879800372222836350564624193053170635101637462251274177785575361711282469816889058868646701709565085012094086260667997817722655692738895776286414758147648626668412074131915569479042867050510380560432552656595828927447254118480936503844575721784265924501525401696738821187422144422292222598309608763691404550288323047523262459706520938316143022761895672177760665390871179744843032994404993696642851321488582192083067488004908346591222521473650110810863208856722113409355432197896706836372923939200229438122568488483013671124048726194500082640193128285992905311869591106652275105135314570012368696770379661389225030821948163157191022798638924859650005869493765957071093955158464211866039593486295318790690995463266625335604748513823361410228323181320607489060243509150753334802388121728557926255127822440716510541596918681902816418890612599888336906814889107612506451164125611156340550374804015148631350165341556528852405869669247768500391471054462539598706860204294317250859552815017320821242496912484729460628900814077783485269281843527903937075729181018956694848687822061154000883804904733879950902430111261611595617902072100970996050190603144861147710354880638871946856982388031022272609936226197600182035125818210610266709519816592747494874139117144622520014916239921936766961517651601014191499049886861804640259685713403302042333494297131158592999364643825143837936977730917288351290256236691136243867315156844914577700101995661205396277207700959349872290726056611892785485658309687323006297659847244029577235395279782749688998269803043893968764184752925732105174174184529394172290351735504813959164110948353049403145838606364544781137145913129364580052416121993462278350052616317512202969701609956551459032557087075873936387314371277005309670887907665502435069806487843937129914057070913627319001682569805551413252354210013706525323516981526762239850368518818373957010729810032879916589468505234218737667852987950877277306817851154524160945374602463340702596448555179819833366803208158792555141447729215072916112212454357653845766665200011008840987586880760615944025586129153431109216052491174364261037797282161790223907478666951105880941841101021415279175155622719692085861058883837066685696639694205152765852063749995712223472069431582445740070935762340733940970417292313896176683871680526147167891042987804811488718163358364644608900822916971927409962964072735649722237864955557408136828919634736001811673738594193212576817365696870081803269416275772100506798378261569654203065563378588710680481804926571865039984927297286345632226002329598050071852295864276547933600795040236951596251265274118101780125930731568150873053924936374936949175050751808942358484957247534550527571622040034079424527824623474706455403783805642265402034380597012103725852005130148166709086650638441873785283203882623614547158475895484756251271428293408988286082248483254656772192546239625100770045340329675207302613876117740481176071083798936119803840963531356081058167169674865461460225807266459955456018117087154654487036996174068512497357291825183332833072185565298140749037415847957976466635449187485209116802349739368003013690498221084880698088057059294099250685727000524538506473187921131433640671705807953679928097175850339418410586594820222689575049925368903219889968223920925585832972225869392434872067266326894636853427072962615279058254404203828355259283447256822736960134780684584219553540888678290723910467220750934466004365079257446584771935216858564656318335213318665823600514925466980191882843693884921707589762788947494625717628364256721259678181164432491589424536761168357488333475504159484114525976771405216309517691276179424740455484300891117020579819486637515661726400888940907359733405830468455592329566220894360789710690042341559873312595083720611612111297124405045174482763497732643093228391572857025254076216879176834080008067229613719605292234727033017065626160476604346225229336043041579007546625259294653567512438662676683428865905710488881509387055035007902082799802535050561026775101306535217184281088264502074046114273373751424743098137530868656735418637593464032399012227389748916050869100409913097920503682539237048252857002080842140516413739544447243370272406432501032764360766449391112676668744482583621219944626378034021570629251393348987593072399967163940884744151222774308898076527634593528596989788724920517096894293327431453944374418845765145538675972663785316896355391820986949338879151021790254310709567325605407516360805769404131887409003049191147361895372608251205018076809910280636441197170842784446337322142486247200970881265680528690599036717300185117548044497790080977581331561014034069939393454189434948451537600164950130138797766055097550094280057272990108020640759529429108782209352017489525170266594949046716941783334943415157357303575391135317514331784685944601044385196067664990142211755517293252509826964798399976080449603274111202315660689330445651871534579466255943628712250661049910425302435129344208306776342361867792302471290899192003718743234350751441001960854202844797236063329807055363519003127155696317737590035191244382507956838827468787526406287331179526085648452497175363036685528655586244049559921479613813795174209979028214881509087848504916496795977214320984022513947613567441469215139116464188291565708858125091605751798269221189426140705703434981397072336467837002233452793967657019569810851530669760605440971338627707875598713473493404147823591794751911026689653592365465361731118626064100910266383324555616882575509955398562679030811671039449354800257956664090948411015186329762097195907896578895412030741297046804796925290123691836212719494224754404428405550127725948403880462032188861032891734670839278362424664511672674928359004727232398001785559757682593248035914563141146460805925535506545530581115687942253292621198355953771700025696458122221121737001250614576568605828214315778193986391212617010869875840297854369796365301270171387784338531195695997985642254405287274488354211483944656604077452919732408045371644030361297767321381344712818166164349246094460592560969705561546230123692952904930202850375578663443511000253929133568568872892397342447384177720861174135730634064975025795252527424251304492713491587289289941214682558386576035096492452845305484712164738586133035228516801396656323654488990694826869818925173199724791237873205937513756357107181480224186545251479666808809701457227698827498060047922099224512055653613978507625281510036871588966518203639646986298810728429454525620634401905656490415533054818683492609763446458411455363984079217120535771621085259364973160714566110694356255973356227887013665855229582576545340318071240551160711610896287125520988683262036029505697376924116089696403649484474456176967881287490513815867096638058642173849129325004821488018141716694425908974864137516489057509304626934715533894499984406576387507766680031165379016567238790109390676145249761186077257396461186570897291405434414126246344113020362265080394618771164746417225165707139845655313284342761123941521236802257685395174320537318161360570525620959181632683299845296856087069942540298553610191888012301671609658706607490727299244515774977153115200994523388640891930878636359945162313438555561564733568735769086762098948158722931904813774314148784866682761806313063930257481073639369332476344515325440652473906830074615272552382404731214451989030881845717275839158715292410388188118163056807363680424253720506834711924273483814319039508713485032769554723322939904604152222607766711683959939556657628152329458196149246843275063790179253432895104592945521002288041964373317236906040268495775662323537869662014843403100353021358505503728816009243482002990220191844556784105024555288416235177233357866958780253799624855341148470836550204532850386774610426387616332882367493511380613628301329146496843994444768793011180372755078826109788989197824787380302135800620211132943333482595804598948636049935541344456492390434671582855991020141705085013694043920837372673990302885431554891348364145078089887304208386115904740263832651081860506353928995406741135411516931598334242632505938021266300380350558136298915957838035030492508293897269682022900373214781894396203652661731943359142694402301570545991364477134189413922327159568653097342171365011861726391789182866487121729083532233672663529849452721825213947819318728325157764507598009757590433614093408943479114710599063233151599845083531641883771448041055540184743360908949173013307313626565370626701580740221101483484623162014655367277914559877321985187768719180171031460943659110988454162702216047665422204398161450187601227109216216624381206322041552690428422034047576163440587696062034964073507417795500132069500655830663045067742847656157427064235980655123056395742862794784126331678364389203478434780604804312988089718019516835996405420289155127442234664181562976432619045095588247512307087277343942423388128133200948352995338323345333281436996568994816126783356737180838411721435341785533032859037483712139128696727413447175199010200625415430878684588938069869218274815845406217722825774668028275775699184413630514345211873803582218537192905134762682020552934941427700482645675767220986371896909576408016831567553662861939625684421834192226934534523083609068012304320459502835197717733774958418610781116901737826781332568503467777650577319598813065543980658947033702889747534065829539836453988072383359568726296505688026297103621931403247595647928907025202470110975773910905276152943601484495117930923149806485362197742549782065233252934844485228795408823124555108664387487393565727465179809397460235180448123441209506684388738038722378390871394677345030009436817368846421445995281897664839654362115244080520723275936249669031617435407728855042257605050360138208034949976018057200054879769093905745624739140166465291902187279028845786658171321001902898859260944144225461967838829466994168041933818763168288280970218015538150551397364950355428487197725976635799167455623500024811455851909824608791296999846637679978619202765657511259407935552249621027209220665505032765831305024729079540179553896114841117151586316687049000420389484792445685794990225971470863396885684393808213074707229815352132191047899400242506712045745755566538612256499932424303416817841164686470034692458553152975739349137753173271640804305328290544429207028169724937853419529082975642261308067281186685821224394267035057867512586819508560495700627045687191913653620836528351951794986713861585873637168564356470679539284612935897750872535440235785534658863492973955024403185500263950076966239592434967288693958602240093514178708770855302938335277675086964593007279022908331976881050629270993472229307933783642089809242103465098516147860116988613833665542565931012040549287637713055628035377960915266406477401311851620691027629994834432549566747383150050316160662286505862004376220244254638613433886287490608116643016888547177905044922334965568279449047072643332457680985677876397090118350411376228159181359035696111411958147450582100767627308505950055578478485253504219439700869736116665845287418293237496688442409096023949061656455281310697565033390631735146675865266329662365010937914565026806704373593210070885062876555703666178787420487387468197524237145282286532624581354324628831196074531453024929228784917652892649418714257646703721188599084218767359827699213784666694522554489349643247658846154797316815758602381764336490399013703408503057925108409606895375493876860869200411217349445276823321443664444012875298141318469324347535762412931971227445020441624509174915795109542225178088052405254277462967833637024139391588717646456567891428822591820670911034068185026039760319092369762600242430436614959889716754867840861790916820838238095491071871099112754340130945662123738240868740653320760578083799558036146783498222708083154702955855040533624749805035801949611621272428741656842658590372313209537986837501938037295024447705561232701464642973354941617437628881496127931249794551448671699835454500688102578669904083728971366561723108398518522297741708994118934539845327984015670023334991453980765308558611762116564955551771492325088789564081304508025568347166481741536989650000008251119712385077539160376767139536025097447857377762074291509703661926430633921527489411403611002078205736525344265894987812076083398022026984830883935025622250272512568337917978598886507675735989164097027494336965010436162300990365819617254961519596014202207902284173033240545605005105378298186712122732601130662052194864034448559462249383461838186600611244046220969665124707899695314359783162922220905940420241802548543919903309492310767865095210808639079726061241471870029140989293323886949024785732561135317732259611072106869783831300741834122456386185357403774773526713746924280555805169512694312148945657588296841014962044502289483137736726172798304349341908059195883681508067902256336361751785851003733732661357467447817837358928448600966079624122942796806247904011839063271821726391603871484347820054780936698039519497774189101953765873154548806640735820388134454893869341096643912174144742848750155634242187579096093039156889033625881950344256606008157897071493760030890929152132650169006076400597104166965718008911732483619462755973277016324947129329847937273383262760886042035084621394576875132617619539533857119533560083854912250605571930976083974424456976582137576717339853499193343528642043332326403562369363712010280520546898996163451403403925435802497249917663339085706528911706814357353268039080342922922789424190258907353380083702481141090573255719644523769766315911502570349326115122713099470938549743161671943713262403437387437163738454870335393322587221137903731184155665738910279487152279306386443186922478945438172217671051155849024003161512759170739859495941695814983708258742032355922018021953795888375607727911493376835843295069393469432292930700829708092001048833149639827842389382318447107938984191738030036078185137857667605667994816130882174647781751192110514878730346981772308483047232317485523867402969070657793805851102285822255727308361126048175798215212685071259656965117696531132568089494983914647645748000931935104932440111126752111004332011898480502246341465048705523156552666218019159667709380920475859176065616490938075086967690726025631654129780926746298986767571091588657525176922274714564851725287454927923164203630159861583623133756073651175228072666901014317967096574179170104982099465469975690744658287384394433202103226240543950832169661607995015177760983019780230298629579578304726748106635806373421703804123113236918214914624183472630252994493389164440809099939429141979404153903213969173394139785278257250871378214072093252482383072951923067612483885783172520533887299204194157796466977000536944707305093894453478656069841353933323482570594784264749329055042163646056101392152513154283419277875734326837901539746311041189410526781739869597859484741177379039193328783529068657748776793834317388510287459570323305477982509773088833694825802593509819294399513973544659377325642128091921587140212692729482134950058113681892736620473793453426628103440133954473005727083454497950890517533784193783098969849580476427260246156701469707495532300577029305795561470648996181737667910381737100005157033504368966523318435940741721325631726538281418579109421323959137673803279148232600321726052398911303029119141370612022720650603643634001860119006677408664940806379664615520639788049859540510044843697391801776988332216337280638825410490701185785264476100491927477411755304647355835236784265897114143999572978671675309721441808677965196454812944084760799592317252303449230336145403145253282788654308043619506329936569008906479682079818061048895814164458089976786185642832237169160274119560498528668673937692419348230422453811514641162280458320931484768801013417889626482905523141080537274771877335026666646083167390663651223532764524628986430960174195942523435812603765259885383946668882323547327610795784723429138404324553191964580913766433043624244566778638780409254960839274539777827555009670686571469671089717794084513277544438887931988879850429312781900628008074405174870025297905977754234637074262833246461154813243739426072135487436356054952892291532951250358247984153248563583885167672299382730812893962170976208940773402039780287363949413666783896636737107327211415972078514220921601415205219667818676715986572553067117348638718704360282971825494576863739112199267115749326824512494495497561286830514488679119323684261016882685426709702012343543348527863616970941650920084449486570844399643719345799023418632110845340515357981356222972575353826900641628529535825289211678793461609517275056918265751356333663735317546027876933655409111183998135447575127474036193794280160378479673552115050848754960815557869301977964641476146866921058980738605276674415757470836525392395611615013276778546744279082693649461816411521921234321920061817394462943057147940145218935954673803086111802842039967332834090147991440822020898928608048420076630553594583512933716724565197875967140523604690511286587335060635196049041530066777341152052132707225718887678490756967241277635088428726682272020635276845878199126357950048272680480691848627691213916614051877461980799673935902501599396068751736986726298846419743397166825361939057505760658774129433305975093293846376974323107694342627440033569413665590979875038465799665145912242367289566611833002292691121035477142070998089076598125514667669702327271054825835823903239090002581496339602588476547557361695253275953659751448498955211984377049919464092489342707982320524241451358444434981951794300924401584999096599385856330861227277860277510248359560076539909818993482662947090512717645667976151724423575577361982071135408484764547276493705984717716706332536806820171916953463154109672706351111159299164058446548572351900764603603022076008027503861143040901399815324476579094249171394899411319389048050954809052285865954861412798403248288103319710189215182471073831289958289588495333401764325981533464703121596892943488638124977133474860553961485714247745049641565396116646210398649282762961050856446781325220557078052174943844199484697293509216194281553613142199710154536392090029853997305668800591029095580751544009347295683014108898848614005007979330349204043772104024512553607275885583998642099447319580440259878027002172553598372260895202317898905063123504757096348581888605270932069690418279425204767889138489045138683413551695225626624554206566998220210814230574249333010732513720329140500122931827223413969801233209164529312400149678611734945688506150387937833901849653195701161210539743430215046558111810298481801281984585428645019746922899436908656525479131559676926203913523203105230605858830234281464904973828881444376438908175518429602766511365247793728123333163765923156894324991906282488326631066002469321771289808026723150121595730138838856442452117731859326329813903130928280932894324782178307804997018591804106622559175172460331430342329260689069487940425595327754997723086867935873123349210312732928534235370419148323385130715176157193034959303426436670346037295050778914128779260462332430884071414015524335943289317616632530881400680667240062107798772011343971965658596705230493348307144312378386810841773711531495901339250180774508613608591711530573339957865585552029764902543716468429249537906001531762249865635451404185140832953677350970065961606850094203330565826426867790779892469029782326347440338604772728667783326438436831987092698697118793654374398711157568998531383475567198154305339115595590878982417881761194517530542108190820933143898609405431573153236555784407801404599759150311414081809596129590812094987548702856494274958444224632049734985186027491818284388054242953272234442008073087697320627469187606168396232153695165901312258741330562771687632917245369907045098696112167722784215641892587951336755501275034011390041877715972332101505883764348869253978314646441896037784281777728560940164646206197488705429956599417435312014868451709357256839216567758516652384121424498144757976438307285210288590599194641375686463204601117932303142888991212640729142521793027139405788983817304108561604252324408839920474401132139756995283448342026795299960928546849470026400312586654461486571448588281786416815593252275312849501418626681342851590894968933940224880651449245413200696612527946481978336165641187114992594887132960259587881856880675144107516915471677220577740601427659798248697726107018977423144701993553968919608038079617957235331890820725541834095483936486340624039264321933647792173584940199122038767519236873955144402344933012195591261142475570715743647506963736703216771391042199275764703532540570439574372476588787978478940388191559288166678730255194819686746429137361654325360621160929931676578481243713289081757366432862274792407725412896567523551744010249614655696411693135243898273847618065464141044713057744814521086988751313338794488495350972446983862760891245012361919599824753812990607080742355656230888346331498778691922711574435413181614160047908514773773265098178700546654646204351920847785191805702720968649482427846274047406372151056342289665961855519630212473071746030619184832237376623539122433050898881658109381108986742408041159606617242521571597853384049752325863878705678722951833072668103132221051945290134501682192183205729387811916256862973755301897815495596647876891831656139012817307214113226606084149119580233552517242679336145518906078693720258396150752046847619010308699802830941162765232801804209612881197113978771688068995269390803309598502138765734884724384406142337354273563958266587025449087919473620598912992977869028276042823973485904528782507263717105914001050572540063341998596415893271721502516044291534661064023059691647367603390005295224971266994953367507415949916537190395729352593649243540093078661977627910611895645160244065571852728838358399443211953661336888120986014446384339358979170042240186244533820979678415114905361710894039272431618142269420937352864874843625008512950484522878260107528516762553337771002508038429899722581784651018918248127754906218865198205657120867899091458234386383657804144415098570217340678473691771416250632409408752351440942349057870213288532170055070424774188060594868925398607430850457965641999023896921024224364242131354194298934874944112335248280808372224725421394200313919620270309005247728962533297033549779559613339167965654948510264488704516513229428129209460469577038498943032085199271310094820301217572238139282853573010332556417877041774933430572993527568712615871747543060624030329516772638090974843262319369640693029290774560904197698284814961789752657170277291834799611672294438862704346204191558774221156564801588157638716748032953547905731785388662709047306679720536745543671524129081940293603065335647856391356613035032499764554561180814919777285246777522648795951384543607903655130599107674824835668788442697657822577518046002043714493176947998700865674187907882536256795806289465636748745355987695399764599990543632533349581325390591726777441598126924888412166531693419244994530873085635656321453427328346785991347957395852001837774505558179643641436373576227246946351474543068077456210480763220395835638559426443945051624187174289052073399354663821538543332222617640940859005581104000446668217398819198138859160462619847352191531128619012366829095791401179580352871556378104041203676581226630630585317853040851941891503980432262107667964418977789869267051529809897598119625751371008712366348465030129954197524525228763548733014525778208717152690544227139159235346972744290069543670826709182757287270494056007577107153515472226820883367294154709609936221883653816142267871976265871133874288697407292395728720688524143201280008224074757239487152325578035061743715293736954206290420541306779649591001755889142956826004258257256504714974496519794406150176960207334432493686734913751799492327357273650810794940407787149063982741155915554600492348773170842312520843838538300014824010513439328874427466192932154897986806106237934949056597300057438799524748014641670618244508434762662497714577420655041930566921331411189144144079881007988212898481924766540460499753197978118665349134199581872241756507496246636490752228455260289264082684338173398418438314885011876420726440954535096510624672465338526398360753775075149237356292088862688436260176521333319452628171426194029974480358252680014701475306587317912829817092381007438793047052481965198998439190603548182143508710018558189332576531567255127140417064196112979156021642718429625472613134953217119503556520485378925249943248785770396198784684514293058871121898510344690528313439860814684854367867266541030789181098077114842050471710997177607600687023438128377799953560202952437092335288979793808669853605765620351866470009642271385101983397970785617967816612297233201751127676767088741375577923824661573832995399217872799854644803121648703627823471619923729951678790855728795187463762316635673148969078996061911036595647708669474301942890287191069385642336624183661508099855685933665354966742095961105367546101266660958915818385965752322400253684220161065482427526196354166959000284194098417157773309506317250181896211998733774025634253407563446791779648258803941731836992391338961495250232280111953236949437552219435568672937534281838037903389581489887236531132317119016187461725560625636322271122190509458906277635914955676170046496422797440716967522485743351836930620155795279325933822685218297827559302360414477953768104507466285828829286194596810992389953060563592877981762535029145735454553828272207258018765042735687859807546970930514677883801908636591000290861236097806685233750887201569748933432349083779656055858167979311326640934305372788241641554295702564522463353131729345478792514894435267100664106591066872206245326079752936626004441739995762108919977142460152940205264178858652638345720155895233492980516630715474298435820599017692794879233929341206354388888829855903653161487342586976429839224354073638853324475874613113938710295783177121446715804698106448183182749574598391979140142558336176765675615756896532992283872299579623018678411808343498085480648962471607125577456892524921423650474755359968030548534120943798096371237107686651349176834852655853593467474771780976118971670320127750615604481638430888746260412614454880230183711539012415082919955561434127797449434852019293484511631834537092620400251092709418421990185468335568250639629000285561625486220895635195591954494113158851393644546534753014399285815405177447858746096178797448816915811290083583608598861398646964820635346548318928268165492146742971099020962526381725175753591863186136190882735169692902636989428386943474463492964326241018459747467422888707472038363401105388021681881912002698631121544602092753445834233836179017317042953042697291440274824520192692687113582704707410249748746077599978636477701118881045235358588283577637726575960478150036422542365138613627933307541507739909314090164756525165256140276415495593922648561853125176597265140899868488580758200866878603717849390837354234057957748445941867689858878860842153768556525803787452329699466470643741949878328876267473367106250728970828661229329088258390221614765268295199188842027359450705531975875110162856164794771549058817997221448393334209923420057488210739774277107486950135875519006883024032777560310463495193597299496962200154074134209985037739841694928484261646128618884070500915637004437012625861396004693756717833381447809792001736630552959244851634531088406376875459604970542541951629328544624972790587856476811544927870022404290906713967265885141473644296841593807672325897621855007789525128915179781141956340326097100940611259735159258434092051049316527208687644451519525687188055183662766507624621751171555415166659830681161596956043497266810741154324221959756814747880756943140634357676426871509189189220063930904680163007962038768994405914291224208962100243639972477924934611634466387256982189622628584584086780070005787241058756510442445179768807302253522506278280553248345724753831979212257834818954480837472272700931628812113772049893759008069177889742057327621251736135828348288946534554069169540362140763144580018480590893002484314734463865646130621846129514154521548672705246509856796751582428215512076341133620520886283887568528114243077133505106114675190253139582391928656516676688705128465215394346758789899943959929888858009462114147851458106498180504524072485398104073028870013114789087822690739558564823298092949895117360345350282011538642944783120052489831041288716643065879660154968626879936927446821877161904570315287622784877182381575322351768309004588811596463131525907911062763611042925883514250266942069720526695294156178600889555554829335596177218382778430111281750123299192508966927554586315997859435749901787800893283777676426715617581348659520664074774926948887517305295500646212560386868776594012214868618731638017073733405076490693632808319490910391397842079986319321552902800849798221921290016731869088404387384253457194040230815284923397003145727770184339265568457826389465169335732037585289981147116724633940557764415167693219403898612733745924724387494672601445102824946759427391806799322096184992975941575344930126932095385561878164587347198899643347884636550431073534786521374197081608350749708227786708888824488663781387898331274297339441652564241935631315328253432854683479131978684193244830955325980888771691195603363426276350813412781566720552703522835848090137787975104804469993149084282116248657605154383269707690308456255651892922009925975759923903556743860198080768838841800618317082355799900721954274175818529844627261544425886807773069957998598478669743004352006623861675980209136454694729299875180025018583327078259689187716997828808046359342805009867480974468844713447743822912224502993058455811339042012882497012728024367578290887880846580371524221467174602458957924521219098639046204954697629700344774586006077650240370679816223323305772399801890088496392929074614122328594441904665379825799648938448259066624006501135988046633579629961575977543449437839671383026296541001155000734863223642393731078598488469583876109080322676398649137774199319058769849595278250729614456619170852840769801385039149243283894946402898471092075503918713402968875146605268533323899836691793891261111235481511667099031013394827312120313259896425312340295838258424346505322011674671888714257666026901350701252108990303240923570341864227253055551492734192266023278357855152672174279591266971986866569117749768473141860368272867943852772083538782198994525568504112204750811342429927329290365393258739132017135764131336005937717142424850289352809385796651866876773107605977469983095399359966351353854085496384268126889670454589830196252722191037592810552384786581377935403587330467220780752393995782563970667193153815942648742562184121747757384926012087817878318258774187544834026965047399709001302128006164990153893251821469684925491676664931410886810994240321325099525189892958129946313319871066006898011650519066464375480775426606657295249611045615440577058401408026809059835898905742273874497384881990777443625178819743778197737026385156498273705479039543202708817456134170577412545361213992720720202972002136210803960028525098953947199286278568589260011134159412658160193099972739964074796363000141442606713267980837945752381983511871713084994490769929876083066662709312639165121181989061700093881233756579787223338119334598308728641007510873211244926249386780395753952988771225061702447090564227163166623357858252057365490886847287950746443631678383296723676976716963684073007887973298757737034316842563184154939806370724343692965059857131916374430444076461178842471466731072574311741403488270133416832813349231074869007234850087570610227840716773914578435778541015676906620353468147414966032122089096765190464680911630186712926507888663841114976895965636023644523752353000940221015638034849705345323689722287694950392934544622836760112665788197587795513666989753523279049628433250219432248898350075705401705169936094630094301307827023232045415926382255712554854295021574390795440884156308220488753456056377708289077853084544870472422455173059065602907896694687511155202283608028811125529893743925511366919748034412613440772718983884804640928360975578578612848391264894497118570718045167943366636709055313844912949382991137707936783206040137563973608348219203150226737822386590103007805938768192697555356058073698670954353132014634227023362240310301523424370176264829411773673461773832345154895188240494941291304786607979427436171099211188682584358785148511241263738185789716619081797427595916604493681168910153884531425209916291376356762245302027032688338730767466179252969443997117720884028013402144895338288234386396282249128339280385170088925950268843801609855053768010059460349448093856562443129257783576322724938912118247572314588344491004143435403564591042824290577100028197684507644263680844123552151247681159988789742775941506319962158712312670087319126644146007915705261626435552391856160037321379648767366963244581168973093007796770735240249924752645390073265279278060691403619055026192923087264835311725477901461442363157263333225966849650652136685051238509949186840786177649809031631373591184304311163396675962824371777090848978422041480206217286280973297479372697880275899351907683505290809100486655200656221259637785332849104287116612250854085321218295020479289036009140182206050082943809212983766146986440018122009581931541875099363401819936174346446923068267572768468590822706141712868085582299533186997157300643064792101614899054965057992362195234112480646229555956919030678370839775160296932722586099541548965711732200433110720399595420012515730552857211135799979467750914614245200366784318953808697148222701464280359749545223560006391893914405402096361515009043007964247555711530525684797323906210316417397381299698539702979615723749815836476119071392915962732693239617042887960898878295396772347548541433512661858740574827557374884013943028102705334545447367719746054548256114267408156220332628129968242298921248595039081020282777358798661001835567376459412502348180458235869337502788727985889114885929127280439661018487428183878714756876164818352879652818529491940488189083566225301390324477441953340555307480002732454623459951290189296892042167383571366367063304395210571594352091417397894706805509298919156545400927452527570910153138123027449559795181697806785930101440398944934291765927686241924284376002327190993844977272551466306977863277638410671127113281969515431105504118835243117765027036017463037838066650043773782514728467072775623471685266979346073315992622950373652260667433135623559844023720327281655763852829635161133493744095860943877984482074683020147190514945871243607383193655297217830844607292794115790731837144337063665028140424400750858947477935877832808835202785707235811531414105545889295135175699493541286183739892738905453627505941568557068467949409064346776284751382204451194919095070985309103723735119961257614954077108800556748480891041379359353557343898697003729065634341675703613528334093016030204511620029469344335635841246234734218144891601303813682578213173188456466640463309107908306340260053380473350866202701098586364114375335858371484572228553990830401564979595019864077769648889611196838247031334497206732886708256618919468743478259561384484269983054380924403223554649022291313443757612078289315906830051460933918705240755398601281289378755976960849539511984452699501646183781173129552551348427528777218410631090776463090269354417283372583109219199475373411289047243597388113796886956361217353094757701306799387116678332578318551151224240304474223594319681266089330449984878163496302268325802852725091699917811895194960202738371692280017794169249208104975410466578473831255743233609146729364183953528150721173872614673657132592742354300968196933860334088586957304082047406647055887807615739664039203704652977434587493608796063255315921816510785728697314325853527500289778797636887230583556939133401837172697946727889894541566755426004899585041841554713029679297512753415976781413262110252319122184401479840386064515005155410156586072485778234826443117084374445290697225091123424448279582603202476334276860599428185268502942591791955640255013773695470652182497966141534763819775113470562525306876397216014306949308579108348505463438631760692207814467287406745278082448446294936345976980587973618370515731494097654153690393713020912278842291380849437696737717691880415812798041395807554673165364402150189175316226962548485273419891052893154377684695442900468290059550784125162473805574691435657989691690872691682761030310180524101925711709161251924685156693842691850895080527544933609439368945707040961239396655434129732852666084708793701481508311636331495620144405359382623455949294996332959081870790542572338280308592053475613956491725309661350660587223650583572650222547272514746000474927058987444099658669432625226645290860625860004741841866401575424577807349306158125773928943539544388500971618557608397113085150618576774390765659808893503322345994809707621158750813436087387332903052951650445161227625685028501728922827918593818649462623032014862440990906917427202953624456240869545937844205482872325248383597472562406557992462475422919494902389712714485495752227973407613882594375375030947369206215896184376525738992346869511441266038411972061384707053889314931298793853724715872462214722140425061068202937979242672790642601129263525009977075439749654107693992868716880701374548403359558171477742553487769579836513661745740891049053828883055991074476126946180427423904980963319794015832801279327852126492838230700923054096728420106122021800081563513781332801079077301225595476547215905195563624684742016476178199928251506494967832026909760245782920358477111692260164975403176009149723104513871450491353938683913467627339784737457120097475646851718019993968059395114333622996543114151134689352037017391506220144693133097802405483686837034019476972779615175658155685971685617112918341484378382690348118134728435655811822997334670979308938815237560967674564539325053282843996134161499089429199564483481709590025213591193663670724624957318027122694234385823761723981840827724377564979809944820366477184668513130217123097124616483691516071568475719622044046978291548901736082604445951975713948614138411773861111337983913933570813579252600730795044777144695724770007214269332156015856217604846762099339840021572434678894615060835559456122709274164464065548819086025862508154631971015224421368398179779598466560375622826203474880028403962595516843040726954021599123677902529967027634439248361858244696109544206628468122783306675489095269314844046387191000305014421778595627018376118338339180843536058236993180072505768437537811719036455426200082592804405285853571881129677606409543791846497080920931074453386225370070292078342445821523761648639347663394864698433067293102483946264691475071604795043361884828096195098526584708324012371500220248637487666698653727569887296948633079537133631274978208884258740082464813880083478486402393237009008367306300483272233321019583672463624200225370277199500919501645267674277076429800097548646584911736037226769278094700597308512503410555876069911082771413312594569091536739330120020952496353337157706406200861743089198570436586968818063040825192760267829201809342350510598829680044945057133101492113236201647651679778206853807174738293645511866856466352003101566665040820983916949056112032286304566452553371202605227158372596894806739347404454135179214653602806095775716727676599224851329313086511119622979850794956066260994568014463457808303347009162067609290648280175263990125502140764132760864495006797215662157579792217045374651437364623256345470585892083121555037057878734774882059048278092139779213185388274108064913098083946411112456766705715221026103223888901519513086560298732283480900733411122883807417537933545786720867443990812457639865893654629661449320335436308378542703520874418029253562956589699778200411375717925626184135807143147211100869293934695686291352629300076241919302606687639760534158988245880143602650756975110310169994361679632047892385937481080892869970565793278930208110326542003626713847446373559756849086249439222839469341188604744605451679516413635054043546957560670635422182503987114778486048288961230396266924774041023029949320686163478331725902238133021332791709112562401260618350051127224955882281743080968507559647591710800133692343717534141098350947706529062697418825128524861394393520970554576387261137163072403050132645933703149768809371664907278463388913535746141843916932058917435602570862793715524830703112654762087517841217323639549183545753330284350103779473001934211491523607018892235837051475449092732495943224458873934852077053906214720274295202670635884229744182685202303807798304451743587294829488754976988116833997389088081661413349670825717950164562676881849200883710422343010568878121861327275629994820923447444041604865064735389222546919318762137378189151204377092680347195445867140411618761187440405484383115131182466702580880058243147750927059780180867261899251226613149851483891502132151944541607719227632206575977031906060063830555366473488914337138487175890403933824463066969459635160775859444269538088799711732221086643241248078136824473537326425889036763462791697230821167761807699093729005138139974400901942421572609043506936846180017803761433578426006663004118882632104280242402986592486553740233847918669265129255486132395159622343187850371504881226769922171795156822461112073976931211016461320553591014961354080357696191722769325259654828619448207257608802722133750641531946838616766140347246009529514221398211751954265465308300998433749857444119820937495029502703321086644007966553276335208081266489222609050420492583220443846348078332069214197270624707498859151402258478228002768084726493658117890169531991474160932439320193641861880266692249552126744985789444363720130807809367169641232610531582484692034827229611947746306926320240834626314212889411839285532850931751734507384042032609006899512989970966811978866261854365893049292943125117478444920691055079757234061362459059627359145757282799239676485967185942218951418190272837243129662008107075254159787504852272561333782674064835277347351156256945308308502973233185480175958117913119244178607912932624603442791706377098528638981166772112080372857267127003081154817818453427260891875552506046052468661954775021431055982571308202700608938321641133900657359220090842048073585893894696049146511346429600260964702052712204354971473904340059264892222039816933387036441528402542725708320129741734414891336404246365865249464512249631992630721823449344423035559862850014812379705123240206764818005698491694154909970461366720755667391035686856872632340164936547556379053524996037300664331372917923411435248134775535116979484438245592550375007456754938624318245361836724751384571570404246862489991398140875496723270526116228998485954731307564197181624379416273245514579471458696789007572264598022827952020823094110660697084475083106095475591879977973261771820601244070815358835790318797412411931477752637860167667943463257155438394604879639810338105638486790124775581044499003193657244792592805380485251649383749346525223485097132355704231414176736939037075406778614317376415954524889528739326947195281306142966916087821151303666151281242592235478928550850880682122038796608229831139799580754481221870363533095323576994099164194127539525494453431559600697965560228450102852875166237452226570858823846314434641242588759096287403490070486929428227349962546510138605711579151863748427992698287084547047384993443462092017997792213433093780935191629716110390743612018902377582010795733123479015975326890967898507565966901431082309171900881593471418395779447328895586245190064943891459650556564329318660599638197728041383410528817886464912920735185362042183420762755940694934198091102665444540957747243039750401085314212751577295991670260858530656290914173662804906829825465970941439119801531844505543722701791475865029102194410072632080448422791477370494296312101999844517889295712491172014684123984280660776812918633078561417286235185536536546466520817880138538008046079531536991819915399579115545560969385312913036724649499733834924303233661649670790606638634083154999818701392054734384508459204225248663222486497243987139425702617789737700004609678504341559744372426924500543182259298542327433761888026217601572506316998866304533751704258744658754339043235955831019142191786163213898362115309040262691340600206111923123938477535829843852303496925995968861726913625615380167788747273629597318525252077496190508895421728864756894484662096227442667690687892984570432024547197540838190630069231660042995505385055717501323793896262778480710194841509514272700274859831117479886651089404641287292048651860716220573400406460079927003331732150996797895064186214455189875477539806876479145850866228342202288970365597130878713735158230600889595131001394532398628584502598117839628772505913153512954154294349102754990796522915014203175831220037329834254006649195513593490721154963088405742327764656837263020276832242908868161972962362448057673447018372837641582320379158377906805566197738101894326387637731556934333597689416718361655583960008153239122692585558964071512937780586139671066855750102345159303227877056561852742045523151877940771033890632371372745399661078593735990317570940980459251291663444012881343481713536944342254139626108399734445000679105642351376991525527725770616385525494800301783368948717430872240026747437406294581489631883562188262583295807815425839934106205548441438287501458182936282922412357488700598768703473244127203803250864848918633418053170751132385639008727357119402530892698264659095439336271391685670808475073026194121979018161884925260263068793560312796535572343676190471311445089691071928256131482898309378238858563806037362528764716673622259758058795028836251237373639391092459888650545308513213845481655549212754543133153980940284651365390322562470655624234764287917040975389971142011671636503612478648738611301106602357859304313970066037073681032999376964760330899501619195368668360194072855934343512051012991751751367993995550553173132157187573094503505941927033783532462968251240881041811050099139991122600898564370086682655797429465901745629111161664097690642716061969028651346985245113233506059475955800560174241217621035178122870991288243078730458318811876427012649041777537659717496287092217355446165845866573149930968279811230954246856266853369523863551224244861782684101982991224060981557863642215213170094859771351813686485731533217694240825670262203203448991494769827130216794130027529278979002558944481457785356914981877610672025883294860597568931779896883348026285083489301764462763570704369837835263186303130111969727059867754080157374299858314056090414355963522294945125897630036553330697313104493572516954882801691270091293623162772736238607828746886658565208121180292484800045065430797022747160603396207736411330156444435417901340926027849207349291389734265213589033767152428547694049619554182103802107048134077934285076168418914484229447884530476552076359222344464348774141242935218550201408398480919942213684472627091675421749347616830401561760677275763754670056790314039548553098061676944620057033188909626666953456572714511819902756828181037057355646778171804001901085565605765901224117659406753321426820550149987719969125376812127925334405734959466120789867510977509900153468185608480513174111737482745974558142161079060485799355230703014499391737326039221289528253302040151334200028530275500847924118388920282881229009764253173889490052487614081953344790106016506224774208934856173151511652865184038953508353565879692283271305210410394375731614961754869435464116139450535063840524203544173249754671381593864230807793872763440456966505237707811884833222766572935211277773942273000010070779484540319189889830835935527340920927250292096770491482310961334924698395036668457910392240648106135589145045792152232464169107965545867625140403238698115228579680534459351561982927429277637554166796364092264699464580416088642331354998552842241439665348742780340193957190405607472659448649636516778991282162304596224697088725958294034592044537402699822479024931157960260170086005621564057881741787419498727097101173566799847157982635676416407204250914383402862206748527904626169207259500678447648399756270344011618705021151744153281897346589408145484669956451731787693413260355539073890351624807617641449109805548180255317599328404857807630348930838567634744194719260823392020602575147198832560782611310583604535924352208156238225421131882247820031455053367006870346454332298914920098134719982305292668826856126347347532248263507905811121016101539408926468793683501828866089518637903181476763780663206686166683057874331405437027557309825780497754532087671489672397721538422014854073091721875722310278113317715238365396276172423159056565663698341428311912572754631929723274688118239357771491876377550990549888476717595609724193463259342319805072072439675359610864929921360647287110702088651796218208501041466660222458898450569954104902012613936830255329560080814497454196491154942507218466184500846764208644823261431982577269735408354834850346931683190870585384764495064127893796927335160404842172494394937103016264076172400159689165420009454076971130908575482067240086925643010476625713251952815982314388050039089962688336855963309999293765414479458158009976801118170261704288655208573933770847698449461753726348554323557620166210177270481692767702986259583033053140221106398363022577923635970130530287948204980295918608992472953834333792660665461454715325652469400491052356978180731954998980992450753786152016963695742996424147865774886896871554328236982645217913440304661310104804643511494772638065737908703590212420827698433898897859657088685743555048208927581199539810777526302695024631000781851026937787318792760231457608826757855403340492548147881023950704450176753759103151518562610513152324953601100288437977371285205014939285567956314298600971893543512690658446808195712516646977783766997840904347464980494007612944070258930184835735545798249564071311892574318267701611227322072629905638494654025473755128343586193878049102311822105422855298167337761460379788035491227240013358079027045892343853910783827444435356590157226786974981827722124930354081126262698893886544955381144617217251122781516197140961557565536882669079440862307769808665968392886932394539365241612268998330154919072807604993782532885514010634159303482616092126634604904195670203765890828189851073158090375468912886182973378536356562632402275025744178863619817160178813604207229519473737251091484459690016828100660264498503467326463570221108350492026045918602480766518910826108622373811845492837331191906285873775197411491506035399642145125362626539457416740892468877937372781540355282587445985793342106878313345527541342203097303647296690517456367795161420470279781882316154950299510024329959292652487024839739992454627832894789766439160455313272559220192515799668283671982273948090936958603700697733643101507826621192768458629149526039697646129927177359476784739832016619298603668047046480599612162829338847296733729923104271029417956545710537746260404459931477449582684209152502712068900528058417298267307502737908870707250670712184399147264391237132449807565960528511430913247992244273138892902744516808112122244540506138165849265573494334180927092619223953048219898631226470882404920962615666046445371045681603944087603297364995526904532311783228148497098390208043165836389367551272271150018760950442910700118083615814544447023776775712892691430017403045342122387920845807283456507970675477117584091656400906329630540384809693679005512867218542711922134477351469430775188661574070259866317258243394264647170420993664320495398637750741472339281499032050181626739552206765705130159585635261937965648114263136036792972988818327813632150460849153828994967756837610574001541970682081082205246347244347440429397561527219097813493856054087717425112368863057607662594108757436712551898672405957146842737348445405777104950130437802880961458934582482898901323183264596781781150756765817043483931209894048854717965533852498328970937093925531303118232248928652689533048881903916885735391697581971592503615076871023100476135152063608624335504072764657255082959717308324070506425172034879284028486625225160739864769054309906593893708623053373759468680203361008854674126486834787181616415041341776888068084964416776442808110375878595864841753485292974444610588156893128975336385751651369191802602999166379779991950236040421032314006496003878137890759597009833116461174331704027615917317527234711151056012811978632007954960677213650028305285239737404923635651924649654191968160038893591713085519541772130525830493724132648070845457484520017329145835143473255064089038534470644087205764668015690171729153770491307841650496394921547089620557268560947535171765917150337344272261855675297803553370973802058269028525433572945400085390730988817479241977602382171327241979888166701617421443571078547223611148733839042167634801393098997772618051736747089489463858200206791500537980337154273276948012222100795686809035279374866272769748379138049769184256220072372803641963947211822476208363354411651713539811399319914263800243162307276042851966070606569082545926033490470357039079105025651606570689148906912839958030037821245779871168366612618755140504897009615946471401392686089343450750506144637752873407457937540357303865940978544856395756754490246437507626457162932855257201557266257956455132516043455177066362222411202746224135758476286113717269526152636267677865230056034864113411550726803140466843706765674427932749846896633649391340738867793077413997420154454379228108101392331574003528531730356461689880613255134724209348099988380070895379463521565603028790039013296101756999404496757586516920365213744150630053840297138177545541271176554369236909042752070764591106813200502027029932036678422404262407822296724652386178883384535184633895148065900742117309718977129103571770395410526095530095307163970817486491816905802648616551231556966392949558071026318037042648820865112665518226762071841853616845493965689742626293280610986024766319183647440081491374834100163623651880516251934188016935445629678455808134578584968951908388057799625438952663309563440548894407892405412689946193701854570937681579189183875576568965586190053519081955865144172095011010406145556440354504245741233054772492909370988506861951680350167751728172984978438527451722583057496054424469823494456874476195343744588362152880426322967029081574687416366328038002950070963465206864536260218349332701344270788952804069904770885229355961110796556561530776582606724290273864950607563754255219828050852363169499083503086733394704000238158272421049922091054089805750559884068728446923366327267915149650150792771910957657504530508109845358042109368363503705227302589112471554205154634434145745508824509857689816379984803427139880012608651650934672204341094874122105847015103677130569144378267056701888020344369635595699225110310118020073475718293977531124545162404823890762734315239558358010879144517297046751202782581650908197443473302792859824842800281585161905504785347577664429320783496502279281533171011208202248173406232811118917763057235479441587662728918205435058917246549806178005700602597064521647224575730359847244999558006517223303302529491518372092883487802109069923095154585018345552657526642453388272898834501132566545822629404067599221319145335560160030209954992688254475644840671869545445579563214212828343384103494175897908336136956722691559885851712432557898216732965274334873864212260285083589002340466913637287292108627145377475662306893249571372599032010097973580874370655967440298297924591069178210827585042721698131646198245859072689734712047269797516734141926614580821518796533869215428821680926471702394419376940496856401543312593541083626694512653113544413446346691956565238371979794681111633365274344913101589248200330721183478459165797904043236435461528347276146257109394241758957280319360068533505168305402282602930982074895946779403435333593177219476694398789894615021580984894804139347370102421453050259585165593233163924866372579111907022084536726258961085519932974163024833509877797914993710193253596795836920465626539656824098700910009782845305427745756795837188298838229764715396647465418980619777330632329177170554112083368625514144165248757641806227648566847741844602904825031875894287258390987456545728329506876164622866846003656004621343589599889467014605405755825317041099125825982843479988591460942847203986499157294757853829719172365125923716610937456938755579115764860418174698264192390866019765163216358334167779576430679221686516316150576029907042291472036275557782673587829267287402558740541884515178167902987838393986546701493464001909422754144289826822705919975287851318765500610683684010564646869277910813987144367866470166099947707681282563448135078946185802594601779315320286056195953648764118592700117108988843231103935260299483730713405668200944071440220571232203315941683450818403460698139243876380767236330716813892830986997443693383965979917297244290337748742939371496016349178139037264979264466759197408010510096750628499538030686015687877775624259195547183088065146427502517068926209754407466693845582928956874529340807218644546647658632786444462322566497032572601830471762398470533995487093699402047812906209340222658733822674895664464818441312372319046020171611327876062088856208236638400417664292768288323841849270189150631369024916920253479188761727201309424465546703180982313808305844411698525090522553173356633570313801723247867792698312906430478789825468600931104775735214166985074975199565877329907869162032784403326244089808290021444382115611271003605407671768297402758736518375738669363423718090287398457896199590174049311484066191127026950108352237045525473148429627137900389057031377462128112208698409057224211513252222039331693979605509614673317535743841735902841204348587736510521168279597286992200663736603393170019116198926953643987788183972100054317976190625018390430272449305078363212363204931712630801353877635029813045402051927143029790074265156583652328770516451950864180761159342862473537890178465795128523091648867306608794242574433295440542023488389816504252079919686101741509791912738026906404067443369167761010641080080474297717191150406631917457737240204719227888824208982242667842567442404079808487851127577092957914485718024118229458881041972723740154125266740972304419647395063751557561698539512582616397117636095595820816846971323142243959803393036487682083877235412552672812889878369450739370584442468724589525843187185930425476680718233042821162505696608794700014730444271448372459132540046098059678733197620635622059219410170144586387822885333894850083355872125319896805024908828268712964426861414417729285528877189820472614402978384896101973009102768756543966165973504190274188323583705235747974291938119658865328047445929272556701841570342570417611474781750533435332797288718202985494803207077299036841830466491982447420525250888762669758564903915862406731439885342241450445221846779363802455041371331549946938164909689714091721935097057962554341267564856860917287726884244937859418679985765413917586001788564052512703900125759698108736484951428608421364820133148180315709093412172008026017225128231900884134116020758628667234770538194568622892341878819891890248730977447338886077209432420792310754301385008552459021941364258977608517600488632245933665797967778827252358934363867010156264360775513895396048963900097832364872837924856584730489524349817710029008120421189919388827773208108651020441754788128634457508384399580182991337985683253068659900775600807521850759760127762783616914252259860081066897295598244050367584143265401678452249243304457163630642880068732078782509021086693972528873726122191938788577132514709782956658160486875759979839774930682510241680427125662268239005955050381267151108577346962620028612054488388352865285470917246085834839007251487742437900499872964810587067520681910806894990291878477730865288148523877041646548382229543432297693703909402163900289889550546137642762549365907092719291815980031630901056866800017738764893656239728634489491663559723974730906041395672959125785359149594492005669308219082830831625902164150337326477140871486863887429935827349121952570316782113256501022095239968523934837458666638537819783798838466164623849977063132725575392487949206000435597967332217068793676650344938545208112462475021665864674638567849774959662883476700486840258969728285515775411474780669784318415989478134624199230146316238146853286101052864139502276619174492416153693930698598756157935990344754927779995755695880355605784640686853110196628730975947516100324613514374794816438470886644320839445436123254387782681112268085827326699836164877269771882512040556796256728344074442947526354509038328177576787605592710816303101396118803079554500943646189790584801438505467536249958542717270809997327362073850035586485429355513701244049934864774973134589205997141482203309557740488967173805050486792119033199801126736993723589329836263091227794740141466872602204410757441795340823565208737985257958737462958994717027112294304124926151199109023895801958300941894690661923097444163719751431459581430695802623989035595706571472197198502374294553922398190877178318461664506810108785601363008177326452688506223679482747044054482120131716768876885889126894690294685981748400190646205143642992551135350775737127707738648379713540170245684833699094910924426318061496680240433286400313836532391806301167872160251785676908150413827027247566624325085737728768792634041611827547359598947954461751279968949311153666524575717073633362330161527304269458988693897111594644471250442444079945189226955010048049020370617278772011030677397437683422649874078263574958052438408428767346741622703671233594521199408121159055243171490416638883835708480581397286674321069795355037727640032061395809843165004824993176679193785987241108012003801819996529501034833648357651555578110281903436541954992355119931250206520753354586827588268366385316928592746662751065245805686432420075017570076871494304431855922098492733999071117275017874876548358442627484540107968144374472273162055914658930454331994145608790849766024774299843707184083306884932733732502688914857490999366687344464895256027302317944775767658688372953718584338542904838696499725368707959940206897276782644214977417708359342806361686814594752658981442504710120632376687508921311505843292986863668835314585631470286714960788182218897832984514067381261961171006591381270743411235503959102595169133426233190206564596382950438174291962507458861144973554256811671533987781326594441432360478828915877217920727978835047679663192223489368308262812122550900005017218269473651310200604753860810283720835978582021940163691011412408110833947339729262128561144552033850327643767456316653071108658878499403938005765425996534001274978387873267296934790286419773645474965136186665397008945852281582649227164030962965240501996854834707030740210401043320772822683194474642411017822241701249701148509905553715178643279605475645280928982631691251324796583302610996460383779166323390728336859157239532907213117152399563311429864534667356546271053820353200076034617664159147890709388527364191239293581224300332308863687695363846313463670113769240723675373355176134585511371318299063263711768926486931337776271738004170715772167980268933872968465051437846798090377812911029827339440228412577490005332290792292158753221437399698750958490244593286871351200931029525948020620526093016263990468183604409703434938037235462850108881891347263839631388262357365147786518088522903711042711335202381108883113567227956307614507949296119814959429320699073205007817808544803879288547636519592367073000638250529572176373022777364171331916370433539544379683517110216811434637441234928579967729287046710648736123720161596949582747350538259932958265340109904522285540802870214976470899716920469115008725117972082174428559499317415920062317612163247016267914617537568492667795973400172559000465490442676861421682244776708783923987803109643997388239652566056957368629578278613954303311013894667467646040106587120943859852684610844293760493644758259613659050157204098133005825082355206354474776174329983069900950947604954541794042390386088681397744850053158743372686662950867009929630678579714293428811677597182923383794998002596205929730889291974680302863519474089831108037478351140992518339425734253901620259727459887371016530202958795419092962845502192223453865759819160720546351375687040853560499607186127054556185608712470387171248955170539757692643264030029482387942178801742721959266300720492728193120707158162066280271830582011251542685211792790858679633954762579504849009247078244457152031194713848831454512386537425971989269249210781207901148988878941195460729254261153170291555890167749053966444280731990580220078042043867791534200171997264497857340533263956101636984831808289837056464702341530427979410355580198865430822012949471812246701242543332046602256205791579301189976947271738431771671985453452328584108880192496647899574251694456069966723683901967757712268394036149298928217489879913770602664172438460313712761425818631126358559903586577373042088152102922511643378492140795330524123989836610875354532166753728652994605333950009040771225929675346845182340622455665936060197254663591850776566152281255813872145910723673647395140979694809110890885639662917849464855987923836193326498194572094383618425553185829755093393989154692442742156809740473283919024153524698419243241011758225471178962180400910098875574772905287577745531885030092179095352749106325736312567297373027807037053919828233680706053668671462797430820080010830836342796043609013696813285355525887030969079403712490190540706629977529911356222072981958555116431519659747302503593898400868459546616273517275181283030191425453300051852419182311464811743633075505685487477589615910103523394981036667803725164738668977058228967943710243738732782787553527997723897402696195514326816862790568405931554615859005809810951396908281329264881963297195014782336541937468985519511771821440848339902141334323242400390718986187282781026973889200894691223945609948657513680205740015648444985126091741926738658165397207835229712490277517154339801403226596176883939553561146980151824148026727859303093004492381421608078062904341258578191722675289640029151443494838481225894194553393350693965303185866675216824328601385388779834844946098062185351075100345095758490081584709276207658766664954934479193628387675167883487939568798835864967260366242928619377693217539817673700256719248605584604729905360699314471982517007766828451574521996513166473659550270261412597547024490956715934669180620083533907156519604995739910689413991686125538071562161644281035536510949032937120780704035591898820405723003705964048423039042532843753592675665802854780350599616761578034000429711978311691360554686316834544875493135483383053472830037569586400424316802406307571594575705834614144725738388811750428116811675151671883758182914799384146439063606616204046205931001014038739780260872565706662643439199544287678212988006773519296316728657295136769788680367526624916851701884919001057657670805977559670671463507376634112067551587178478592387699507353428276594932106377389818456745500421163167959505776459374874046977449985427688444177154803253007116493510585615224451870271209375143922690483797757676181330080474538742488128383076270697160160063944254711786185351845049336041763232682051698419210101162830626317549482647220283444445643896787923841706790355416645130350125527404934048590161433043194672837644697307569940413781177361466461774694726004737449163326480431415005054830633733626187448085357982180717829995367843527799730513333254020948204784541841127268596528295293577540885695099460473704328175843038078210796136134131204959108300114175210150259673881026239360736823150856461841145543528238217224333806697400208812580011981171983551922718188003521779717457930279301460980622501222772555452201031914874109120069414045960558781363713296328799375585389369283218315232686948873571428152616959890008880188726184609790755850312222365469779979998697011845426574274742991800521126119689802367363323622548860868978319445097037421820676902267930953848256879984426696304683931617574725240714477775953703379056988538840645474013582573673916195359728591565137700825773988538447913063416303354920459101753100309137592907653862035438488673699604838791664539455423450696935524786988093490870466488592871395643170530883286663305587667254473301313901452565212644231845405562567786391181796568039587503191821185995610400858713870371278074988129915041609546510419870499534748050079728064671004355424044232512282516307188435335043439156797647401551368878452608590016304658197055342414872454470123771333741164860973485485224323289599253502060052186467056901350926492366400294503378614685276938488017621337199574545482203954733386819685215879252264204856325994146922014333321502137477776045253140113643250600104756855801887277605581017616408225263584051498688518820907912349922362059643930242883962964485737569962292427814846188145576354925754935141626025836275786880326580013478062688953348708533302565296215153081592899232994387234171346822053792243090288394296637387543224034438369823973144814564894840797128735355700229291089781619208622109861525443312138930698036456477089894061286273364046756994900634435033869511921321120131472999607458227730589807164023274780456871377949115701407509598546613986327917065983125103739488579954581311265462159973727469278251836142874860766335987465017484473166271605945250204061427431918407955022154414550397835277686959834242844988910620286583218960851135986044997482554356438151970911406085045972538208926940731118951765025878620158278851657013961048935530338744993347255247885951891453550550643280428210561564074222581988455920668030847680641967633343070510449103391451137749940145541137472434173026859812359545867450812211343313729206747106245183568390040389471927713859935873191961855499896207388885763998860900548159904167757121353337038621961556037797132880703471492124077523052031188877043018791778629987868520232574890516097081062887304454221110472458059665166797973104756922747338890506264112041043538028383927740952481088419189211271256240167879827568061743988046467505091975505585486743823972463199606775800909215425798216318975341638366530688084817080974061413578275781366025477327361733863066059990959484041841585952106702635983439693614017411634563946018530863179013440481324841759263330285810567026205302957417013351726936335319649332225225204274015602069348978218626069006190628735082919641538631467033656072313573780283834277543151373721900920153779215366825522099510423253143836714571226086360783008650595669577308233977267010132830107399417411328390976856580731577558965821037009794812225204729408594704833631156397713347742954386148284627341387455612078032699409595228634961258194512687763074968602615947673329309901137343582532375593545097050370972556882795854463158787405543247422234165989257341341601087767223707699326903661089779545786732199403239667509831365656769171758545141474410076648723537245959434472864564663948453168498161862101986717195784955643047314621209282039416000320081228707628160255990357297109267051435650524015624268020752237248569641116623041367232897193742820400623023326006445942242909882752087566782356563724585393555505692821200420072310505358175806305640534215384911303709498356343383712020222276107654817357861525442490880659003729906890415947043091492902955371895592540611597353748952324753087116133618644515092866489269266848623133306667695506077117493554491149510794591935848730217352377708109797829892239437184671922134597135803247779554206212301151458082614263231313511913833544038975288973944038943808540478166347717925935168874272253650911645824471910557070096434364214339138988189837951162931656050617373807959908636345818711917034999686367872033399246388930891519882290556293024742836114266400130234730105080734221303892397982325951476286281131398679677066307484548706054891621092894415807699086471859719487228336656593486533970562688165435619605008124274669243372807292110745765853557166895668583225587657629038335097974918775071357417556591858147903276309694852250807549496316279975084996353255684200310552969192587153712809142344195871854296278708871120971616926238159462956016551326599517469466436637245990833842405852659982241056184556799925671285853028064434455821333442564341469536742919756306103228681628074728780135619311058317639709647405859158310663005143751751413565531404097635709788248659512028377243567994066091587508947123818331799129064386562615865093419450141418917232452353901150852880798556194668941606334457700169220226127748041964674636594898695632489811542028397722992184918934960419628704080185772498576913521955643532612040213156395915467330152541846973788903266114693646224984916186351316696784986530831119687457796270027767342294420211952326049178037147939722915185979779275306188873454335940530902090918251616503083598704174927225029357517060089000470510299636399846853458367841320320480984987961907380523110077838552040845741531385159777447214876469341084842229858964593262676623341896983757973244981161385671675763562713404548892919891611083676964681310359141000360255298733474898350281397259841929491517021197929622627678534863347497315661649377665066341258618131145674299164744306516068087745783740937823214044675791324687065762645674902597901898688962292650596464342135928094439333128473149502218950298891477588543681173254866289039546132310082070888108258103874866472317018434408670027774099796334172599818162193927211931915043804197030530919983559477250876959887381812569335448089029024538427195520497018716642659148281566494788446790813967174255044424566422341569811129534528903867418899924348839449952548048496817351386814244971802713297412852969535779145387718144149676560595249874165703141100657677254901398451019784023114450119333237362105242439549830345978418329762167374065989779979371601989199719796238714091588260126426270680731423527980872623502483047933420641604206543541864764985339686047687010155549445434495246696988796859755680631791411891217494851218556551755798655128464115815338429327956573986719699755675299148265047472561893038714529412928867293539989931014863619821757671313670736554192620170518977360510310072233874406430793997633419987427076165078974956319670818846003926626904732519663215760536370543980428455896904161163838048449983746523371956628874041991966676796343516998330471505142623673489163453130469670131914495671063285431250890739555217340669430910659639374967947469211647312141297164847786265354697409472793519817995151830503033706078785328125992492158556321540144915393740485730989204693016618163045555796652646431267073031512444968335517177818981995884666876286539019104785228011802877981358209392820553043210717668248458704014999117014198470192528693134418701219384044291837943432356546357731323480999851061304933779800269036760949260783077118769294701270029501945636806455554060530818458227024894577032131407783444575967227916644896679168247327641109343481391858278508497274298790265602716287276944479624019695326501435539390664926977876091747344658143456973095487297794312391284080983027283078761105757770039736762545701863888114531962051396810199646690412912004922965791708303957620236268278811321696990234984756993506945044027177947573377153076453207044750970244249678131317821690467096359581987987317833043629890516583141589635517359857586422017533246046106147676849055579774816637934209843079791197825888026117118537715198911011560983964737717160412004024165025122692284637803208107164656348162837124236966620982906087155537947871455387705150778548418408599245736810568771397494159127468496740133750489987226575431501805478307764571448337584385765459342844174190311714486990067335431088984204457214110312041990319533102401495797334790112569733157273454034671875653782523320993427646156696252850643951892516411004547045048216268689176442680290831360993938769519960811748897209107610486237786536088421905912595957128711620464306236865579099303074934365266203422773668787174309178454104313566017037686269795418336403275594161767115473268828146548966877614784659718131211673613130756439784835589877943398100395719617286484784870039563305678987285833162096519120460185207268323348952748638526226629370172487771182319797698064820049255035048187102320604326915915294159266763494056707537887952459884507378644536616614343463820974587304085287427812638970549031391265848046787229989923783426810465914455221481615767439098134322092097925143919745830507737745913972566847239849662331708183028864271550282640438141553072301285429759710408587392171661159237587375329876087638280786826643281230316571473412514888737635351524111689324386815923472855347150419383595057913057703495367662446409126765997784344990087312884593870405054079266698992588064267036013434417498163506899861964715679749536028644215069867487076026396043488644088601063651175225366980359584306657495863962793295139452241862571702678566336033062744429943233628065908521939498760277578112933823881134052618821536170832950594657968338635555200758816464119987332661246115803668857764964710811518114425074894841986848690189935242822624061780232318087917726839331079616591134319882224032787469521633401661628402486713548925855137145346459792466784830036395689138757850596417146028316458132473873385828836377719005302718647939232524065395284810002397928481621661238052552120934489192164596506202002073524052921972594583066337413443096559301434257024229394557587847005121359104527604821195342864281625214947215487701100158636824611340128055636351981082831883959707222283949695165914677927008963565324389786765953843797118808895098990123150033410359811689971592550211920783996602130653805947999938670013920115414962966115967003403225693350749137083442581494633229678902569402771795894635435599878914773764264864317834761213610756454762820302094188017967295333983764839766413010379492863628484778638805804077014647609618195687533244754142105723008037649539464884400852689800149023959823607538827262226858009870493130486927280733781716846102821136334749091767849315306703336916915570572285476379699070107960145713247677527113550803781165741094361003992165628369299705111095004241201074681381355472180078545313717249196665326094067202677314342949125066320261472423556446157775364644139028282506605112883939656061295389409728721219501848949775753848355226489603947191521506857366787696136156803119862314778247716966886066033030564989664660808637987170208870599475191879575227781152171884353442264397014031200029675845620487643644857388597173106416303873108518340616559488154455936048657852526437939099936209096246349287775282071757830409510398299423636310042235340933279778636127567343521880140570085217150938242649678074579834877118798754207841103988572885478858195946738995021284107483800449750300349668638668400504042898410529519416785460970795943016706633299161493851014161109527387309851421055499373377370448036768969011231730942745666759549533538691142411829173486716776319608641236857465075032661029444089033713173363153209509450381539474054475224612065346429152058081100990394026252241355986086154496847532241608166916363640814478080201943882136270388596366668941616754715274964286934014466572412441895134752425484049854310592155042309900489310197535010991183664882519242720688977342795817127351053746934984386825450451799985597063126398690714249770968883920725087228372853140359275768386398619578687533147674350216940514863590654983108009218108214604915020652870898539122601018047923396708262914968374034718747789018504685058239628001265310216293591865197232167316007604219814630557598431296883085242299537778759431522470065814450034842935987058173724827212292491302687678657348249320063705922067905908201100414006658937250663914301011765155296099834687752153710061253006983790839144935178186777328916294164021221378476605472047269611677105013707819083494192536060154249324157902704543534497210022825146704904533906222378208746163316902613079558502740640986782675097921914487086945910586867376496810749400058049932296683738642709366776083521434136776934961792374805774953198924083089649740354196361498566364222927960323903518532869915141809136685999435757929657272149029417345614167150127548781807934801770092196110398784091849766744797916674330496740550397436769089788695666411037917101696523505961962253006030254210782069941008170762662373069479704923835734331680271024761954363543661607314248637542582998574908937365343721057898808036115668523916508888932987396728893716909107723727761180942928936697300043155582746464589091143527535357444791921709483590993921597807376205439367078276911590769825501336723184608956508548910505516517791048590242534579736109477761285323309707971201027279985598609994744266033699316597512014293962318577034709692862809693871723158342492776490716195793241971894323130142562795657852365725693493791654476475931045589796370883111513555470706444061462667387016442654905219500289638487061902094412093013401538268464187132844304824673879780991540458141439415150089008023543971206783802219529810031030081006328486114709576623684412050883854213220060540376231015511174746916396340564475200709989456989199152149021225967866617368852712236266488641458619655502993488265591815169797513990870841039150637553880840818242517523065159647771510368828803099651573128029952035890692454227543480751185992872554277797048391670963986832789470103108510728255213652580361143634912062196473036967685578381399890501247588933923628121725833649123853132592237339115397006101425410698463549968619684866321768221885782249447534703609177030655264117127280973994229816210517791503928499955551451569817244774769274976088614406700344700794495585044905240631344835988019042665089128109859206941742624803489314674790478579236593849871184500438782726152959447113137820652452760455221220785160459552372995493725493876173030448919302519933937143204772696892049562721287819384090528646704866418597710601981769477315283876403667971174516433699557459548014593886213579490571702761939639274693957869928056376793066195617793650665961378256073985957761120584572971136439026417917779792442344757352365215688294896062774817756463915784494874003090898106422239757714247725298873586855491659517145667377292182387035311533223864674543191267460114372402052466976587959255131051400694042613861517740328630200070246474718712171702403346236705779407744678203690840381292704875415815852611789995223838673310924243642173651172406793263658368923157638558038484831030961825419412606024564037636674251219871002421154935973872585797698335620216204546478682263032883125393566330576274625341130228398947160535162453551990575855662555078610327316634601025549725802279680992266994694464019143013497134971417104085057038444258968601777860548396092687565639567462841688334478312721650716622226188715368979337618925969855544345820504960484575130103332952494338633683048962950470424792787771261982241824315113324528279775015160628103618108502645234031198485715173768860468500244580379021565309901175974131254634134444033982983801138859103580283052545383462424087282967885463409746587763186634480654689806897307730560012130375920236360734949794614492607293662701112414671164484970587993992083853018682771880187972969654343789808474294411761869565474481495758945269402800067774269087521417195533676981614086305767234105791890264713512635423829788833500628640685565165527764981523089538118595638889913785057864994347726493555547410358636063877324584015789597867804920794525267123009677714693555214162518089952766418526682003079112012235983176975418620066887886739663621380273733945932870123133608457732208801250432194289197205423598695162309236538159723807529129685534951061118809035189598074284982542076433443525981759938407258638639150028382639288948236981870350739305102235085135674905922210405263262051772308757701697903988376728200790048338960093449013038327475917690463476417043989977496042369700369280296210414734947360387441467699709034520387657866660061211907717615921427303489008678571105590364827023480152820850481118101721965749456397485074118428186964515861725784497422610232865064773806772176807609939102889148690805766947576034919590382683441433186890218325855539892984244502132169013954747706860431276632990817865948825523992343190222577950799494540702976609464707477702310917519143844824024293177646786345162498912611924076185044466154513952844219429714767992740719987201288442035284794483061379095190560425214459468572084000190692871379073195296674848806357075282472244174544429046796808715932267625964063381963961802184325993807517686616535648117565855709695632966469362837963129642084107089446278065041264973840460922511068075329946240721871140739985409947960552870284546064539317032124148255392321308413365205184252733883507777195760194229692211905328763592840601036026814064099025953357424036199033908737216424391225604527124310512060036405572339389361148585141781506956086616869725207160266368836711213439771178380011513781188436495243172263115521685434475569095934269801229514507456064366358101077404228035706433311381660062807497808443433032236122977286201586196351886202947666240725665491949124056738312338865675782248736066399316812135830877819716133620213712829804533143430278047120863933188727977930000638589984316957418622098503306796675315273277726953379638274452613229375867340969362795256302268521998640549462240753303736149487818305238949511518867224382064511127932470772381213059509189595179838652627364064915283282548824253352690538090547516361962331717942920009537011540033539507518772570114177430042002476040135988997511510612667339463504344848470337311391829031634341194641209577938940144106359257582832542101244952619805797064706026706524830025734656095098912279982635730760679763074655498624225517694341717233599319610867376667473902918035047355853905217865026964499293445321470071893590942234379220968660346088279722190813362460498055431264025112563970006584858366062109543526394437127391465271797610589854052409434122875405321318523920730598787120800260082827712559855348521583302403460364253569455199989741989109303328613182118720452624892772641768519676050052136180850182776126260470741405392196806509458766045623451793733157331050645931529327290228712475807338794562648546086106573149915444748412175826710516898708519687699214588647836411593298754492715039466203946754528662847474712680505603903604980502854052690502416205848575930256668262163998907549658189805093600956961505321788722282153592729510718481663228877000473597844527134888851257394252485980295566308934163773105898358041762218172784105393083842029862898406603876698181978589809553030828503792732610227429463197958078249143587525833552795184386560350211174538979768219317359404248022577560236848988035842611173685581200346075029871950821474348915281719461531098805015911094214779851174940451896663884678795909365983496987398379847579569094344279283189909833472456183605361492150925365142873623130839030755451460915249507897008866278015890673833498306044547480481408090495918068621049423062984697864447627224497223587051561720268618211280601900790947499343912298735239944756163270333054272621196950713573132112717123642791101012208558525304138324289363588247884499310236107987732407571261536975478558535042559573846714964355982066818271336657512573078135318337834521891829902379127792586147731045608747714691063989071663376164870925100394066054638116535034073451780996369078524883735727452643603332044357515651862938072077139465467282782221227553287476152911498163779743174925611083287830339178477096539323449338187782453580076492171030006118537598599695322085763722844437284255512667435747525573904707392139650308206690113717597766265343798482925472481694134268445650988610597961425450595662234668463850821699543259613839989895223783399096120855007398548424979894588473035726384686867923805851164181151536273272485944865677582851838392488017200064175435981442962358296054263387606660745707750520352584096561585748801109584761961181221772749431694626781972989695461750916427393018373620788059576237032072867890567276474968823615341694895899621819822922469364020372559191320765737201351329623107187895577991805892836180251707730571112641321551075397312370809834741447552719657490786493831859477258046895863542769291582326603729625318670566277392289370024648139393430276651495134673304731310965619127863690284544469343914446896856743543302381336684065994426501789310177931040730584938698799034078752723543486775673967152511933497153072140634543781946788414617362214810300259544847511110140563610380067522409563527797868211799144732044468660401326549411061147479017967382898107748405228948766873023217682614707221417371548840805373256597191325706242393112811066398882636084967509667377733124720090971006996341726958019868147186835129909181025111092681657768718825909394739519684567827808504730403878356700089328888416263586297715847379618591993100086844203902139826533775838971852544970090749446552388043669792752973878730043759872376121333165748578024045442437458548549831283825486699167487144453255212950988951780238798771099949868845989200011964227745170956860624432093646246643443409079372837416434555079172902799070430353788843874444084803433367746484982447921193610436671155643774322082256827086765973848350154678402639545881624907740737690141444300745485292622421385295024505735359555482414361890546239433214388568177409990705199345187644685394827635412927024090309163494515562489944908583365810062735954213598244254247291489524718711702445499617069507659480043107386123797267571949008088749414118788873895508226282540219368333091241394171001210316419165109205546346198752148400307077367166738131262684524261284787538022325060602174415532506156404826575928163106249721570781248368945258533252194697218283946534891334402734961580152784123272588470307286174195522123415504004490520696301675201989589370080133035290601388125708540159720392729936704075525134354463308330249751255616658857372810759749540816529930486096829257818736288698087164374030459219258349210167959346682205602116730219270536708475542798249958504027571304719888488356206548415311663458821976828500051868790409489504907234395285575334633309271856349479000733325881771762924047763091865998578732005200375598510047561195771494195559978824511588088144665835782695230967536050950193542931062948023060553077472623467834308651968114761107449894556415161794250282074650160781853593092758774298312964716605502540958176820528334985435222075458793053424163478749253927606604757123590226389908092187064509073426519125924795176606835351288821282222735389300200993721094920484738368799224728911837036176213761787410994516160737579504982750047752807053817902095659009805457875438413669772396065640521592750527188837940655573353687159423307882080263885083665062932240338958346231528807439450886040866686310339090973247377507751243935074982360983308563088269802372257152306904759034908465400470583497700152432163505751192687199772851496836502827103663682024603597464377949214333759187636118361361795163362799972087696180673309533885445812675827523727785241161139491386635887740720166260022880774714869837697232941799211941825721624338724448497397265627195363750759554283843179423469125254795763581221010487663185197527887870353759638415378617938070196367699031445553857384670013178498011870496447132346673341956915264922911173905412977672087347285058460974833195298082456367087737511236624513301264122837603845630489580809009723680342613981531027477767042275665710877773591128867507625548987584238520380201999142326332302275495744556189451539581993173469091212746060230092939546941323963240004598048634640741476912353087109645571430193869860021661805026514181841122358332341964010766358916057828697462928286718651471021366839440991435664846677352132295153753056999244347854410171223124336180173271229210314434598760918324573991627599612510899925554995811734457751950461738096181649544528708668097809646499058510396190146598655219329503547474817626919659337621459502504639891877023501416137929803987503310385249916919298378250299401521143340618052856844715086090361400610323709192719816594819963554858236999796778846504436810212281083977546738978416494118481029458884574112135970876766364180899295106034159025645451657247648706844745443586735851978746673397176949951601682377923942425725432757007609390161192415075626820352512578265312560795513597109999307417609775213229151673666473233292334535629871144961002851268649782681041591841903669539420209962880607594597853078677620337599355566404781997830159394722288699887270765699503609484694323703032855967516193642369234096373332800677355414862593684184149304621930053949309951053456843893662315933242438699292216799536293687441441973164386613757839332617374991624696770879574959027940738660768829954301641590661098081864792534409943715458008319062267077143936144053573078389216342625897593297341214447807925277286206882932216108765813794039190770133900881733617943466993752806385340976894625034335976622029634697202696064940642003773535078743462962034871130392919164506412898397155103572427153717587861759219019254115600354796272319229559488899194879624932509216279737350556585347467922357530764432358699273170008051415559919168812011215422959539034224435203932585313292656487427011357233711586157503126098815888575839783461643969903573566864129692810368556959299629719083199168314679130270050881476463326178203972810067220559511458640344500875650777036698959546205697056381251113398741836706972025766361146191733339585792994765135749558785905811410528293615368109674194248583567978167736694011861809506438329059234592212780076610037178683946613968811384670719495016248868578164885689640545475764950607906228122145592413835667932310076886987179617851534751248737476951087108014108182384946227183510914829547821225167044866363376625783411358952556851408920364082765078651324372576010635733927543976680259719030251821435077856685873103982021137868232253782676684329201700318153813275548268944706859395898874471209617852703556694054127155389978375522311446519159319600452275159135433676123819083671573192790683117649884126594131576996947944539320901956845940487336340262172731533591027142340291332369371620065019002983123175970546547935585063584408559604615575769480281270051273654743488630402138575909086454858487996952308796623880838380504786256048896906567162523555255270952923166776937480945047686316936762531894883486550793673038055327032627928693097350386596980838500160469449549872518195014246597107248339215415241108167221984427622083299431669238718377598206794905941890064781808385043670211887734928556698045299016539790405305099872873840024388728497628273429715011697593274546456489165710176482160070551750840863800543603791454482675223515097588694356249310190390589491920201269845436672246216911706831939153705771729231494870980089251794094919639060678643304019682943342653048602410598743179436561430797911595058513931632001929160799477243963555606350111500928237039068272505310934645959797237031372143000846756411833764406722651397773352342159153393489276596822692537964687026596661236980606707402615159251092600323222474451141080722511500745699636312503021653652025451329710065339104629926255229450118693660280405192850147977519467086296085746842603617174515512898432371854559311927154632793469550218029869655506380769210024719776424007221580234747670204150275966163875498760915179056568178920249201012859221808500007696755782943562036248128282794407210558234114930115000538184573712849451762144852688145726077570988255010137902186066061359488273788328748829497696532704194377142916511096239413252375532150694717712977517222458703481087292872440049232243426220836888962392994252175851154294850493061037250656812449600764356638774283695920801157143057441460877905298715981337664681697548490891207311995468477882675586006097835686097477693908300938521043739916537675008134844109992141719701911666618696309093730723800965005014471831732523598043604679846986041321314028650790628732825074144119938071035953927362398963936708405436926242301896135509652149635749191682441936114740007070617954435835783311412698908718031138531630731733530287581641996732110339327941715804580351063172608616312864510359221352381205092939261180488068894146307070315338465460498286251320121955334001299562361785125811145582851895222383327600153531878068955348839295518484876973140871035601414446446818209369823879253245243560963114317299680687098822171230758572661356773517600878163696487127158644058741473613512588296664220091445835102653702463912548124745291910071550626660669680669489021739673584970600446394931308986353579828321124127541235611874478013307658379448560296856372276535810061672292045884406027353194635375465146559597979223979378356581460549009142391374830137947288826873635307871473292506286260513950213789715882662565080724657573396001731303272912804208824521393088597130940414782101053473902928190079471562559513554924983499997554717543747547332618404687929901648552866232623477085549588105410116720266966574788778897048265909198987851732771257129522926447695341028892240820151978686294247239567471319127508002452667937102569061590520148828722041005655737523286580371328674291272045699277068404918780732033830131390214611907177163289380337496026391073710692085978053565106013661298660250122145490410256329945665891079825912579014514303469480491528083235774908789946808245642796487733000606991268989248573390444238589127091898901973046522920728846915570350343814303793042202111850180769224998614190972919531010933566672652888780649661291613635806027436899085452178026680867089941364798785383139278365169135457130693199153534681852501325480351867579800874491854310807134572020099535925216878974220302403268317026026637114242432777593768234697580263360577776463710003088085570118224871465858340948804266560620350457330996336748373972965881966425590303027731969529590628531331616636190266772699279918033957662948721113540888288353244862326271907967573564827209371328357615125450550366921758521049758840610759704397128177697221932676727188736684818769076575532985203771850000376506070172013238986631904559235431801636627314521805762783275165648370775604677881442729954044726288068110836865123437907886861681394315947255528657186776287602031009452134956779997250055403395247015793176403825655463053466338668162340236987672240993532713147843043437824856772502798937030299895880480571704328490780864715439628383143248728471556992222742994273546434169511014529115618546440940844204683205264640281842637147337521374033834170050920467108054129227168514031542841644428103741195315817369211923899861289824403229717062203555765660692815994260492933935963487038342381864807960794537983993707606294635481358339650408330003070156990989701672991325799904001069160430533279945919046224796601815493860631854812044475768945496237495608520431012768316375738553910770099956722227344785730033176500939137244685251934000761928770036587179950785977265112233419136555232201009932202077194111948495628562236453792665782640780196984013737605729772929011122448426802339553839609788347954225654541634192132357902782182524895858476488870143917879621585808433714408843635352147791463577740456642140948763758714137254781300103018432524448743975764751131533573837473993881255416672824250180845305010241890940162132703381000981644052955874914630149961798431427779538712897777391368946308427149368250703983546892121969402023275735304944647151285635467261229636391329542371853245078365034206937735126690529264464374682305560740597962157750314726635230763045134054984900155474331382243850225580056885203595972134596578860708798052886037432696213824489429768249627712777808134062196187397839451439457669664081134478459522879638718652203445437713290945738831873538137154347633961603856507186050355279653919317579392457325098476686183753161958356181158806783946535338910461159694781242013552311477192335287503877016036502315186553621588272692465186809840466882444006878475143637223115574475398015759944804449449922199142925356743188716706623839552261523193368118137465590871835657353707382473318636078108067921326907781149993681047982569808336975483350394650614546715358003641849147098437829957593425982841553820089889171386487897924959837093899686095112510296625751129412677061875313371973045444831026892033052166874425542184521134725067790544113484996956875389372839274048951995375316844719664252651172940552814555427851687582010363580297361831862170815842907883527423159042838072185172728020116160928651712059699608675707059677651571187502110987811011137215951610910444375988649597550121773005690920265553972487076647733932674433870550957565551592577525264450861614734847112486922847454067135628934499103853583831319082808011064317307203083818841880875643613624702470689979431657043544583490412428375192591998168978035922699750423795152192439947793867827430957052158909451649528356639450356719316948186136884544578124659738159513500434175065823643414870119134276640120493829938342310045201351362893864956761333402218625308388718584219706605919148523714982933389176716029082469142084360547215987601878324924978176473578498627412176785362059722704251111379433437913273040088729905361823177633565545144272017238349625823955672961903318330031173639674438159263554410650557541573630822120521118244650639605877008529961980202393937584676191164489675661697624450174908141572442825125728423408099326561963906242009674734146347763484336415816999540249970146530610342520631501215726266083773821805811822207126211446452906424689155825327312925960731563510480792272212232579125492025063007999484927089449136593897304903593349652179661841914871143752612465454947842543843720650873895732697706053552744505244310606579432479979465176162466554072293097633921536529021062882812924240533886611990337590821296417194654673041034915618609981453622405914433939066865892122841410045870070682777465164681730456125907571198849338381344223722927048457447589552635316315657622159770214909784601751108737370279506003950851695759026255373634872420129376442354675596085341148581015845132466226988000078981836095051193840226016637340747579417064405268249104816355905538076807215639458595316779207104822490551263082031409511474382136725978426292341384525365096765629764234320653533399905805426584765158444321747165694825261551693282684682285763646547412063060247965315476084099229085333424460233712527241532311997951799424183590821382809619973213893504083373975145717612947331296628784617048956212182598374852165446747766688032321230259476761821469534353989304107764687206934285003454617350835123482600056415408000623877562116766915781016486034603640024625938200953819037107946320994048565357598865754007305463920413680955106259065756069895495698944977646870707706928395480139238532328754457849944733056723218714418699460074935136486421705619388791236403680775815382295655620384171440992656687118795951789653426944028382130459221880896797766441641043850691513589277069059687121784137757839290538144239200577736841306849754322575442998511412097728439120650356510920713251186270127670854105926746370203828845575919974892047180292843462879035263223075846549446483568538809181691624790789386951340640454837640198493197071857040907231518286780050409869395298595491536489164057873318086106580654741311082175147859531676165981265691247566714528425060466564715791123256189934008751456630475878758270515354162431808809125670925522627504808295825213882990645122180588343555010902186986546716800139399371345821425427022820501061104730976262897237896358941589344772267860661962984393625147015762353843212588373939919147178781538938832042739753387395578892753182163220980847535800766921581791537961122180520901639272663892274666619223224654679815262437798769486796844247390271268869923724192479027991257457064577152119374637222541618311768873230234834471946956740581685738564485584243337181216214144421376978615885207726520076933164235594551198214240615891264227736968768950119880817862685468602062887517886832239454116657445219860043012400506056211564629109919434629322725076175409871424013765431916507866198471108768904953669497009831334760362638403004732454225574490680539676145760653465099999143595982640682633933702712900000398542116487647688596142051140590196010022323003992220592800418621462887711243359082897908070523875202801769268950766749786623295178705664622142367759591579649713656023867171227767158976329626419789369550808689108761729277743316479531763450784316570832315513296848556377378636125081135682682121621159320406860623294067921855683720397041271607090206690859332891917867038011930523804683832095005711866322596437086920649330423400466957357494857083938042782756388145976810743977330620207432996185909837448364850225107023570061015622671674346371865621669879050050094785409570907822205130298186325058141746104299028452001859318550581485137569421094070565449568008202235857491948325057267635443123235251644347210843469051796271221301318992046799156487889418653147499130641024686923168839202287173415009252801518177304981009006366249175231457252550876877533842013644543568838295622284224766913989472202031724877626879671081528728361817022209933022071440268795990215092038489822638264805422132750570413643733555411366416487265099339887668375973343922102875842380264770883904626648848614188550604332133497892095378786096011281548274438403696672912638701342800288852913738111077123593036531315934071873741805384631412964430181845926649743857140111329693158028512233917726404242237711481870379739211570745542715923041700205351566302612319340670841991802408847933077165635666191326415210162036190980042589553073380746714492633084748912015231130751046660027951931240384374145534018566077781046827734263882912468589636687886448276117594153076899438741486120997265409493056191427195871553370300179238215896488510604150066694520402613634828801758819518601786252719561163987877863844893079596436014981183714222065004879119062815041187421321868662433200393784901475649031792994714361866536558825300077619974092812553803469850951015212705545874498890387206400738537327363327218613308699027029491397402519933635209058032950843983287102699700895200385481577601016646318753263070799488919756763330209595704385273402964905897919156843442948682710901885381883552350452669262517263407658941519854503311517573333135838139489670515296495549218770115284808696516722771962863838476732968422594957072623182393853415905312425590399651196244221321847907198525195287871923651254986215768744182595736584092195517766122646626301017918273987726573285800781505301694340063521783204795823379392271442076156287031870951212598038817310109324435167147222859629899559038196042208776175247685610444888507549188738102337541175604365462007145742303572254948706845896103437509289353136353011628449390224162063379880503361904667682367670201858586810934341673696674196179513616886267863830549320599668636824855423566387474859467868145344748049933163655339202339743536663571608508926255659984536825635499115992889807223516494939583392393176780067772976547867259223861902981083023938379696641258834171520685401838310106798793303637215079510079773568036516243773152378048891275147728517981899365786220349020144711900505945398841112759120249766585815422939001210240930754734850679407226689303531284865336753041017681610459107388892730903901807237330408413410326341049805055955974288557588422580430347521260003985117651076236008163859172264834862071090176178126772827145707929306001329088993759179363024921792129084139073324293176475512882292962924892443236285531099424977951078256155647030572965323699505806919820951165980776682902338074874045129159057009845247294589630461688858654697239372163388913050943172507097659565040731391124363898268397380164509426288934776750572601901412667147626346324482092837064454185048659364828371590093316916243910923923187658634274234466412986938081570271639156473188202719689728358636257005903285239778601840835150661005303132548764589174255853604789475115250883003218026976984821029930684676945730659680781755588853527496428833969243062493577002055239663111786360075349216909824311388415076242768076403714339250083865940810492903070267145061276845594789713715608334567276380642293950167979317992181112292008519690931202493472547991003368774399352410930655766782077918732478857757929316194342559545170904517748264942794643299690911269126846738826246866232978369612798807837613809710865994369449310476214173403760131131116518271058470585811022063042959181306537138494203195035885255257900860088309322391594499256624946622672358012515853746973837077688643372081742328574049295430381815397840985169732616256258815528080935467227266924273689683132615584566601539990161126523777068354334156100145482838557017196888355101881889354558095623194764725139745583267996403870875115225035315218642200570056059541651605450119426507823187548362905838879535470980363133098100805263671774031886897305399605659567098104609152200355041346725684277265899863135439681433977318393852087514282417734185668858076764539323906670585305094135801264267706982731408244697546844866695488053049857077411924245943738718672059063153887395538996217697703601046951590028099062316554859892860215529763586590512381144479707963743844980103914541210608053062220509644939604209838002127668072578133678737865313744312920584253407664498473268394074213870726990044042370591463637146360214193823307201440779248886785910158365541533525482499489521374931507354488527842664927327005571691409312680030424383683117307548723828813331663581322797731505774717791681585596889524591108503624720039648835782094158204719324140495773087729832615321576534387758174810656864271610611887756660065270323955927706214583250209072135528591151619626184129913337855479072571826936696226949444609166829183512605473905997685011644695457544719078994813309782611494749962985557003312722351134002101255613033940205102680969220432620964641449192565235854469146148073708211548501093650284231645489803030060125935168586083075758291986352478781097982253033689600988017771321500622507233305440483115630440595436051745232482773278135917330320538969661573806332197609295213377122264637296531510134617488326909977674540331905850549918899843521711156199757277457039327238322005296828999320688677289327149519177014352284456289470794915720049873458614955319470736318111440925586556968488656624160829238938710560390219977033639893105375761332929808160546224817823910173773474530590631272618771967152063183621970279416673501982710736802065045769160947566586461107653282189684087838303007245357331294079893652077257158962764091158560987432745078351573534524703857109100279185431125426329120355507038000343320799434172462359095936240090929530394221152031346271753620340904748082212510019605720069402860050221314512249223687264689331127601779407325470098042695663145355174171470754470145203023472525908516592386528823235434190671550046138209452237208283290402070655945718519497548613753239017242313325273759147173442392714970232730522986956229376510399173052960932087262953451396774557269095362759729207948058418369938196315232360970113941712244535266825258247685503589949701361709204829025255001606624660140841864627450278455601809473201887158235831262299940917718316224975433093582623761250133638281744557123354319482422454724270280604581181543900238807849974883759991387309414714725650857020929304525125028658867734191925674734936465658472027650289841188795850994719880465357395797890033376418476830225867829342751081151821857528647794528496135517677122797590383134636064689295443907429582096265617157529500817391679531116263792658169576273933068977697321913902762073364423748899071179968015683987397053200955937709986710987370130289896459743349831046496175694117631612868199859401038705632663537374982740769615202906894638127681625918127383077726003793343914607305071757187839325679392437197330478063387017294733822729202765721883395456409950963320075338201724514757042746245645966870226873057217381497181958113083063504628912150551215446381517030305429337316096154086144027277357955076064140635281583583919437587062030312834513379185879082731062531850633977033269919696331606243954510917171902325869245868834166009210264844092572038195188424438856452072606185345271042547803752254310230236312239282812941100906053364832043766457356475693405518748013820736131996763108151335931531978213699881770060063908685074891051590375396947524066369681721293581559942060888893999686838356755358430535557930065667057677432872066959807320022783961033771432482880475176704740321383628415747149033961741629371893055816447987447460209461303748888771682882895272941537647630240944807280999381065450706699479116038876556777075917498540807993695795569917546305722805632974337531483952591044928016162762138699427334355519734327145514613710299174811187161483795051714887945192929939804688637522990942754562194400985436989862336119381512508466480074359400009146173589661335259860995312888202763166814555124096077308498795964905427708866124920052101415166940764272797336762606776967948809930385875651785836667078623441138814052015114181364271095296172437630539378722582908984274044722433866589982266400008271057591976788103803736243511732081555844133441148226420182347879668621786805485316342006939058805315810587582003457339499133324982573037706067845168854071900130352355724741109718559675930831720358969797308825489155327041656725717646172298749840457489625484245134174260820008872249718181015183766446734912864490121975816728407904614998906089272677949211690896988368691615952667777234543167836631919649471793608578864555331855020356553513966904028267047630015460472459424966963236283641240192519326217410729310564190516963696845234651468828780170490445832609473861972343507911593927349650947206654000164350159054260428266511722839157943523641704582383761813512070344523794795106378335479649200454607854008770904907411389471146845383267900734486101978818019223222369500145525443555210778344140433940684295608837915065982837073629253753471222701560037478484597764280389918844236615236413882994811048671825036148495579776105850704563185529597906979189542087759537781575756461455595485269689750778711951069261263159134423629099695015993091395780601084376645475281376159042333694803744769034559458987672669963409699106506967584677819680974551032297683466873840375797194696959336725390861492684921281928214348698415917314481961886418422637480846875147260378604546866675363735519198206412943845563195285205832918084656056688612968805459435475804336135206438689099638796550910911354726988473894069013254375655547197646337436877270378708620766925049122744638922703385733839992553338809842141143062634552932601685286656091713409187050339817520503394333825745792808720031815444247010268743214488334325891322134416408978771488306322584682222058090461782463982272545915594816431776590704020489812420851780020089750584893678743066971324635722265359280380022701906667183554485078071495324337539754843272527749475073015799533680890313901265154600608836614835755348019667903748046384955612066082566446371446888926827275882301880542357477804658039613868346711938379286271720763633161422168391861764604477780676444883379973510777496578534800783541355425553131403788820192192837634195795304837816826739275016807603225177335419511372654812880396156870305278183765105408043425882782792612118186375430529354736910028735315762507475717615909229290398787385116971484754745751120953411943054926245497238720837520554882280417575357245852373351435112267235314203127451671513685914148187048437765106184690668205594439851837675919771270413087602592449780327440213358374804000035500745941458027952369058009163509854738874321581150489741098235463919460564951997970873768705716583602926546507808295727289690718661622982048985080592934892580352772926939314957638660504659555566759280223698815505777017604026287794490653751105382328659870994239581045976814583137992018343706772851569806922134128270788735763041538074081775596338460876235078920055026852207971692870512352922638800602596732237825958019685854443123833453209197792200575911719959514351632320277697259648596322922741238221331982896932052676280067929308442411601220336456748371136175489003799269211907733954713162461688935151609109102522020999465466255698648740506545141577392506100642879157692263237357034508448368854108101330725724118371952394029075549653083121045671055080327669325878671580722333840424747271319159587300008228415189702079619017290841533044485530508832125305467689748787720198247467686630446924746146753692173493492431552177190748731895952609038441292700936712461857281185256391049615069423107840583813282234144651803811992486357666925593675712198216197000900950485144526589897333396211054394731254594385433365971664631934467898872021379037426424282473151483053135705723143865948076514892339814449824001596473053625808283312716449527029142969459578637724708035483118837091234843752533709142378558758816829000639538215963790528632169306151036195221113956040993767583035962330895193348544185407150755767559441115071477862525897324510533983106847590418862555707057566697899542320462304891844019650378943252409691966772726839814508085362003878342601944781060022724432806119782458248468802728171077587712823657230208226552892535474194401928768612525545619370580307442606343985504954049091763089835475449457562768934897054696401459837321268659953236233161913829550488288547901579450585784913791391312256891769083041268288088326908261492137841377844071171795980864820413719019758927631319436746314197573588894652129081097550882848002203626777513411067666353507120571447548365541230584309632396359149884243200096368754456654853803705648232125159780204569444947870081084737365216106676672658952188046615574146418777486335907461522429547079721279107680144755942000005491003184413100623850435089992039245234367312106776381929422169176214913611441814312115812534185320468940014346145999834745978991876929001872278656929534739943961278911075256145325948875093737375513516032439166893957834635549936728701559631606991388517707007390020408570263821876449653746990571205597222988033084428754742423612791782215283457758139182546314641200049141828631645683554412978546154997802931830488919067257340838476609076498447221216525742201862986034540312902604929647788724294465372487395490473339716925668315361936586277900691430667375747540692994146822666974831313577605760712578035674513567984384120011646471441138692757947022639441736263962984824292175484448215288873039798071427083627532708260715379505573025253049811131805848865487613389475360046683026876087416991119058581594522430397258868453757088165806433904644705633127249320069538687728787325731989138896141755917569081960487045326042198141530248645448413745925592553785901829644936682234949756454662435739347281715496259296558700511263640785390303429198499793639120873795728324613651755591625182970896668940819543024228681459498362249595992661684683416808804458151912404731538468684333862209065473143409370457747032434177179687835289324445851663949686465678472362326239258045238242518967406913332745057138237474790592163436055233440166088576584808178997312644870192338920058074149187424913536213016599555352338230300883530223414674401921739054116767778982873121410779266928178830076436751577460923193351941661153444602512118499507367670137466496136395172640530057349650161370624120037455301011631159391824037851371396679200629913729590367848672720681118741715587852358631798768033931177743459866589879415100435446109653388224459215128450694994810899087231983007047919596364394468543133258902411508237710202289038836590263541032921447395237760848369781857392530499761460154273853370269932120217832362121531564630338679682868467455594515140255331104021167435431740086378682749965090501973332776937580020056389610730110347720206437566895840611784064334811268637759174488833378987973623104977589901551307539287774237769403561851522208577872921513173037096919727687550614147582586382375376695865187446337777775418478900440102674778098775614447440216817262088043148635386588577173763061541386155361078849336069887041897465192660640817988892822841232561798543840776763767624688307813355232031798112515695505325492274305115005978307277644905372285054840660436744353692098920364012654290396790896304039608089868756090862193806397301652732285736515832435730410093706062573720169145765925779553034666717268497639394522719900723596065845489338794422409994093563790448727502184956252809934247696766628113564980567427057004553452458116116578969816010959442413024875840044078615793783125249949896933304911535280666089071600368316428424062769363555670971867748634292888959232853393872196892555130065462923900481286811220722327792041944771741158405669420591207278088486498993852023922383415558378870703798281848959596762729633542908412569841238727130983869381931704723545068446322121063121900684021973485336169785741780828092617731672069688765733483636397873819915572377824527462012580423676814139897621486356474283346430018481977194264859804407915184270726811991770252355282111949974626925457261877021717797841600882334479201350517273646112598638381661812370886927481930706534468240897792573728196007152791007093478811530817607805428956488728368103746773671545235234604629650083330317417967228615743079428453008351276312497764141580035952856396142467558491487177983572725295832495201403235174170724251637438473561584318448021954472860597148021760959670778554789201073379910222933992965262038020626212878562834539736907791260043914594785594669583923143282353194195721496953169121746741314227278611420964938793626302648873705734099696566909955427825643883988007307796195783812309444917453849235086530488590576800584086719683877570171326938676440489784128000848548154577361711899884865300233991400623559615394704501754473526890388146326074967657747925744036864432352791626832431615880019972191498210242043847278291251117025989116983554763201568527825918087833690014473888986540704558085029326813041732103731499645019940163764902207212598070639976681583916372187345259971929484886084330253013399229094671914628382957094349051826053449203978868842071951296287440685501481647637262645666799974873131188469369900336133444846368843178064967409101018737066107224300587379050436763253958163358373608225937462961889466924213778424103505783621286644296851623538889872099369337042009582812756209771138944573086607076122347115793496393131655567067920955577545244566434659708144683313930742505299564477842442412473741759349521961523760145991861562586850581851216657283951640582583158907853979043941520974636089672484949563936285366188052527645999474060042428913053889284780936953353434971124924743519578013763435243158401617038869108918802981645569061701447311004275468751716967576652624494736809089766863499543828825437127700793091439523209130636921404450722742549728196846600295080227900095790635056286696432160847486646752631744928489210370775970770192238623811447426329204068179129873875683200428048059081542138229295409847746782328938024512240084480858202904512331818973777199398784967991209608076931272320662355095546797767489274813310038439128327860604283695581867861830490655531069458117108023894461339493760987178901417388520090348128859767709047821242079827102721378593770357562994910499626533815604292867779844606465771866793781504490211064433786772546241118072670200447041905997480179430566286380004288909718473147532842234444036960996408552426654278319593030548773782899659903448913444514401207674471712168276790895272781622191565982986378446837522007289574656141626777455496609194501873025019132502272800217907577709700001337679225337918853992655307420083200263651166054063444488372285403099783698490365946641482358860678377002170731124596253396506539425290737923555394671167886555786957223711799578844298806465795763348144507662032136825285624731673955460583937793452788607346772908985789043317678897954075101546818406161431134175871040795379741392852880554783899189838443921448025923133111264419187865119322255484789830343810871534015255697535662335226219642896993757029491899734890276342570042995941214806639567510015383240945609959396853910878812043177873070206374551838787914753420382003951619744053836536350110300201858116736439723058934284673118929939259932901595595102422006782492846965763638592740541623808426290588030565027562328239080140920631696297229893085393809590505966965231225516900748396754556957047374484494082606448135429344567751664845240857505725416735370539084148492872138220568940202291427221190633882939404490131105117746890578288584361503814764499117520948261395640347828309053987530081336091405541533656708512212216051655695683423544301124622372483757117784061256075802436157524903452864805775378417176411694937602127721987294346536314865718198602762815310231901805164420904982204180374047653665432315387432077813964566081862585487030833866375249682495257526423430384231547370170706079050717294623965370757208681967341496019104884533770299705660401710577501400925287188520576814894258373171147064967188061996145365965734979952594683352846354532223232069589478809806275682318348785269722531843581946655316709722033971233002031050438029911402533796950225694790483243904396231773564798633824403354243620733361403826475253005458732098044528418440700835380498034937599386410358301587688417952424173214980666725686193563020954237562001618592043254361635798444052797403849961046339792611013935099367208954066678599220831105910874606585941629385814086166718791036386935808627804466767705631084314351488887161045726436361646798600263313580003967719696090563043492348643505218734627760878420815524677999683701907400900334921413893590499449972841289972686114678999853249969849857701929920265169220440667853576482729340414140850134329919858664302591593705179794841180346736534952184757617702506706063676126628258997573205120150526560159595297768614329123371373088225947054209667690585047148675811496914742030452331773664810915243844448797813052716950315441015189572325985166630125898659461381694500764903356337164084577700605582495215522839336213064605034650832417295034147735885210509775992638582882650414305257852453382272370542091820605274963869662597889959218135966044392786111505581818335864017145332069683341895976019234968793105137663840391063089575125056564457599419143534963943250199574625430816526422406920274035463066828259497722160866027882929607529605333365559737225936195538315720843070503940228105838847334517493929221143960718611589162261595362117025643504027029716970913341870628360487511393268302593368944800752762927319103142372695790284570509546783777240889144463125585566030689965791985231596536686575884744309292361549883390269116930883946341594643571761547481875089666419866747605123516194869934839518561732932851129046884732776662875335291158214665976387672585367661339929278718673490994517434238675781273606224002114743448483217109260731580783533987123804011178070565783971470288714756620673863986839880712455934624672482943151986577101522169048826247113213691180196131741706578255732062559496469115599912866529207270272710028311463366185099925956659643425655833634088916350546729840429047177121936100877015462326730115293613830335006346749871429015986745834991831856487829708405003551331602127229066503542741113938168839381986515013727979202243157526438453343097943525702313522053983270319410778359199333089190827401104453785214921196550564338528815809015679757997105303826173351473380916189581297532595277690128660604550684147604217487837542859158363115750334334257213740792908790845921852202645419902408305201069906780907913442100901690494090602069583306840103980405032213170972661679436835346519084774119209168637923657146429441831171887945710571933864892433194690085425589351958351464425032819021271861984929282839651871259625488073555357003411971094662426466478665702902374074986346316671145076485157336516180298995019216976314600647587965956510280056454336798395309934691604032834531876041552668292239033478603299072050471956639506727186705097858068671903041825767388637606559644271197056173522955773710233202551887759003654118653049512009160484376808000079472137192932634705668302666871418161685314352467325468620667812820776925163134357704098502903254947968145766081677673981621016451934112710995682419692655981208927187453956450617818185694973025880365584602889215553800857884511985778287762367114600899326500624217983763956622958636927881470758156295463836664600687709594718768787296835817463400466433538015310999748902228650850167881777032299850379391851586410237750453977803557651745537828119430404939643388697016538561059561072418794864189847160820051719560735541867553152716495629597997021095263183633110471809438415251020785012414011282240359752161846126700577490565127496023396138916946542418735320324205764009668036232617947052847929968423203072300440514401962078776913329746976026930788012161185950676255031596128890845246248504371071768300097945656194400714423625921229653396334497537387371965140373541698124823289730463224498572944701296858877303568422079221805887347405267584249174027443276927516274841563709233554380682842385351866459807026605311428017820060921690813792393404807123094845205759493851030724161340776051934158239456240901799498052838125355137823268490885249639532570266084732574218944763688348174392159571819525744817020813707504977730930460083712787243835176726268150608292231269628114143405603830811679192697447822339780152770042918720272341646962292782925826132722684585181145077409244996252132323579858076391693159372281377394187458730586081599589368522972854393815121547410122619155582567558832347057237300198485753202833188279719092522536921689497070262399957098247141156855815322314122415518583535977038900380072866882820203256389515254470697291060935871593403541879774608763040436304904387759047931186294933833234599886874605258139530900569049348113481132987081975667646356557214421994419208144252230365372494951769313676283693119167505985825319918247416432096842673035473587877180142894471900927698982955689100224681582064045479522426873987920482979784571436560695823565346790086126060853741491574085268672107566157409391465807607170201363304347825171092898434856770784908073327858275143819403403754226562065365553928494280816816028682949449004921649649065990910292453843442778229218047895754667859984669066288654912437309617629970011567454756094017892919526253483026328037413035114277305020041727251907400950121703691475578544837468142742589538018587107267955306881400200390089352526413912191154116813598422916845066079874034453998371594795738734119677595816336055422119798934435336281168969817973671846614644737931229977302921982143184679280841589860312805422902226430500839751142485447472543653699164690945875079440137069830865908739775089421593465278391249556999334678749734693320873074954379537477617035673669636764411268131561193478547869349138832377684002025055536091119976450634578024144279925643709589216818155182270948495412074691423583498250730811661117568355325894254774017472461471008250950842732147632193931113662155460485775117273347036088393609863629607756514908148397486497766229727940505042372655475278024483669391292567870807247291447427553298196748184809216166871316791242610312417892547509286347564985219296362024439717544429788354591595542193909811832902408924837909821158092596218594310868749391865547125837886233370480819298703697469266745184086697218486315005586422602607869701169007636149348233952191680861077487748939391252962671803821515848007781412776552780145811062016159197241191085043307772883615995496526190961463131397309101389458002768989527826550427664850984924317313209935363922222527274575673143545256909695618798630595646991280595997640921597245170162209445062904866724819841902036845603862756669452838116018484435458232472470720770852731976974392837213395593838473462445385081153531708225666778115182766142572607141540443163954853898384754342207986906646102665061896607592687489646936312352423366750561399284671549566364574488695195601214886264288452215068872316212524271161759976215287946971338877775190117490629135657981677590751624416217202337955414834123153128160870231591203305648585667714627086578223677910698067987754967693035839873178911014276207417250152820893591138537592987743006706996467074169681642654862250218043852575014289111142290925092839235721555069893465092272279392252194712437444026839861113748631939184845341372353118217503941007021040841801134738324519352398302773559198998988943560967642057901095602587619800849397844530693708323758552227937177394623402844055437295587639665358667195624542580210236459112532719861640095420886272044365195035276982671354612720798664771009950741021879697480049953150442416991982607045040017708749577230038536434711709607788820319917541967368339976331660922821744213687716169923978330102273278830991766831114794267304253874903976801756653832608311363166771759527819420363568899046042957406533987995161405103825418557517047252954939498573839974525576047480762651918475847058141968017868550125009146777960039061307104188334757872032447508839394697333884610019534197835051405771017346757497349524808223489833502447298748222309430584836855590108945007293540729716379823732908710977800408955227573215578268861009871089544850241013023072197376461825026353663773855343257347270265960492005541393091081158402224103213633529003452982809924025364116328054159953886346170550159422378898701433760147692849742845232433534518008298309928897054638285253905197101366862841182816419864576346791979920413251552150529634487309898795475055334040454558891717318365129118010745546760104957695173217522608833031546593376432525844512336609740850121417905387719177185452976601581304908685440495902876412561780491935159404703741073429205074788857819315534329811714816855930960372257081254818520971806005705924135142285817435257826772895785741512102581922355062959289152684763280583699263676697710029803762655963568800606954694987056422937979348428593671276788830857281595382432744243053101021581056937111253556141580299069237686374612799862157375403305044029715966319589042628294806355896785867885315177376674027320415374034549926722811238153381715727709281786481148198977527388077577228064972263474729801051949711084901765070658191809234913374308476572509034034207061200001714140397983301668629176496197583758710758720549444044105668264212787523382878937618546572941489412787199763151191820314336017824148149936216501113805241576337557912591087505748871572247790386927997174656332487192002552336662381754745103082287770548105474878430609392258257624130976795016059859055460521070005732616655818812127645049318833537506354787632559276986073969886056464493671317273233102260906166069647762523337524835586710801131502287754324324600519605361718321328140901038008580400057793968877878502552966918948708464796954014257280835509229842977043373554187686380193281565093564537191336652804849160943820639837695600909255049963709501680626064923063052506280582055432697690724103176614803329851118902810629230337470359411444783598917658565176642236761948547330733944331097497555786791265761209759901421654332719501818353433950926890906009058455711060810311835957057289429310075629861511090828907844510827977386091737986791517466484744330440117063727682050308911936214676991278461910127479623775210311574619755743923301138348737254723784505322801162279215126549578184100241750605093878908455418684578577525307988762302070511928052739036926778769405593136351641097876350616346968123111020952014355907028630892764862346086868316593018925245033162565958109499513065071748247551059251028757878403430904736117331115149366117954939272608809328371656682103717897924280165951910850067415644667371330371429619342263929026085706730426303651760449711501990324150569890619997139276082560064365010161722634452930574993067311094040510326762696447710577843430610997398456015818678770877672928513056119048128584410536273122368007273329604353062805387515021222973046831793719474349402840566329990228812254766072091013412320752700643839836873342882480647146945392321321274671269921616943843547792627020582002696960093100902593825494608250593704350081184571757216389476472573822002101490956990548560772626293325944728211210511254488389524591933404559178946832758250986359639856152617952509632873660623001716934071893403328422823126013333196724672628273062145486666421183687276530202495680156766544635669052824697764463878140317214074993265756093580102631332906048008855484765411716087995990323541112705230510263598574209896171710418034435016501067421129023138206934438337431165291868124038826626523392872178265969747225337899825611461847514410011983643405550791835872866798014896938782264193021306860699448725868211193790394926190277500465150440907194237082381586615334951698515135296508003444895010643387681995309340113599154947268698648210746863827794771802613837190225645927076699684144410501417435869851719355680810556363054582425324872190455878171557345242552548763988340169897311243007757425815282980251547044238301567143461956066967921392665037279334217898137118109606842085913976882359244343820254231199098902090114067258172368184501204838022339810016150193563191472372515247601125479091807131134460535436713611731972834390270311433897248370333530463890488918250339234902863113589199261667456256675233869759905791887720523755949338355030139500345289350052653225661273879523282319026114925560577107237237106518520921420429105590692399334447210469624409136572079569826586230847266460737393807864737176103662058633192610640964286080750895575861060480136517229505807473371548819453973418485227174662142993993876174652427591954029601952302591265717750736890343554533643297438366248482548474234525360923396542792022499503671323652177914191687120077296642081337664783575825681209505033920833158453025133444430780060672006625634771120540402598064997160651988701250916852351087617893594919627242118557781060052143460159867075786210697126616246562262341506669122564287515597002837561993965329181312380296639579500945710742361897567810415398481244277627884358110987074313326781096138686031740102496571177569302277340087646506071404737199077196041473539843242554475850000373206641019638702071723995532904185117570980624064119070827528360301481201748713799934374109949499665298237198037896123079010108515508915586609767304704065484444475040839314414181516263452192715072759300465862100497273740493049907691760101602177548827177113299542571969693236305780661393434736727079810886344657775162113516722957201694827853109502334488102166389973492576267489033396905552748484316131309531791049949599266181317890491982234933436356252087935567006868723843663426370894155308426997859728275959554142999331423605150633678769215288065924789559569422321313566183233983209329960688474673718561653852077893562889320970040361221775833611034401752436215494496629942829445965702483420969529116601793580802439224789925076328535678601238179199446223263006540495375157695566826608985537861854783547274005671340545140878326597996130793243688201769110715861599923171688251889946890331218990067831438795804874327272145734426176988509240872540225328467149001981798293500166077798069345754679317966061818427456621084309910039098076216641313641737255025865817296784594412180398794233997861051540292539687372404480517476126968288987179713759458577183286752820330230537025535169566924513673217913851266325893808732231010889702660259048727321180977127629938405887631249982944510939614464411411822673790039016267176710905080668725705925194217090676732324722688157208103989461115839974275098112591101502344863298985490192620949109242418766737962628825502180881087219568306964170321440432728327764466455475348803386265646142520681654606415572358578634332023518756604014662501411281332777193402117077199071401419081297421220620173134949952540677370893419268254403809886206123437365935933147741407702504987243591324227148919913610192958315856758118785844192876195797776301552939675141791065500800112300849500152627684530128695412356711005630596260518260847833086213218451335719373392964807966442717000435665466676430810444097502394855938607400332269504051298989941492762796081269674290258925679834385974516817999444758436687181310499723194134901114703050467617713106701531386276360771800447777663435296282091903822274842290193898060003372826594209713606745645712560329242164818038939901375469270382406502676032069280721607378427034730461162780232904061182735173563732620885370453420311970077869393605259307321840573591102231698424723106300656987653968389654834900378542697905894897204060789829922927761127795179765021650322862061614559584096774353707991849939787734978401502243906628197137144029976444931365514665889350214095837873178088783204238898749405054985117703180763674111509862237131557356330001373266519325186805381701515583307270213073497669962438158399995589438560001589012964822234590453111589343425745250199017813680779463457617791961064794427240848727470202989932433248877308185572127422346576938988376095047828002385106771960136914137275897023089958662543363262073867643347640815153146582859488490538570170517611617728597586377451660816236092125344057495626747484451016987459047391357706160011021151194152855252875204433914866390735289700450860464456405480953820667152061225507395462456227745096699547726460166697419677576577789020378208660285650641377897780275558817420315677013957035367089609703985092318203610380497402452794757051621033582469231061818381043966284312726780329833433796865710909493168482015545072509702946700944307243205394980146639947618849952811993617080694307252415018867396320207249867948871666857752474606904252526677302126714805322104047935101649429508916619121536879081924055099014806282675321964856392761708277110037006777367778331177386214373263046553416137974272590216969340905875901267428727221418670965383528265282579155864283928110082260170425704705641213561268926593391791438675326264930473923997574426536651208606915843154436145886748118036717041444126131965628482916083914500990429327348251514380874760818005675537023229032922441589213444663238090532542192626439516066451815260152928842333369843260550463343229744177784755781308282848042488863889479000231305672903480757547799616249202754137402282783101945655555591713013563168196318943922832080112669633336303039315202041302415752175867468419672278389653485192218673496498519081724695157559351631944984605549881036406902777290921562003962415573221103925291934867046268876829288277792858736649897514464854996821400979324533962243876738952114813067222147125401778508823197110478615460246976651843679445785265138147549937389587529733969978877827853325319928520310317613593464411420363212173164637174806846368597304073490234361054091374173658880309523742435488950899382030225213120265962423091426068431233631017178321235381543806977219680171368000333547388126435824237930114107934437667300551246400915380037072205218362093505445719782386405264783038743295231304209069102772720458406740087042138248713848967002185085835428326135924274447769066201947637574677935549329774232973285733131305729747356619834035045213621913133571277298660349471589749351144517325133049445115991024622174332726646408478026278279673509253035710983579085442701982729402056116276112583768333882446448213411981194997048608894076792921848153965057821458008614934590336288517831678817813708483723249372855540994249548557113863751310762290015928747998015374695139001078973802658715092234865258092200505315483855412174489127544244760303424641018799923378677572292752596830915949930788744145536708451605503954011389919743899984553795117455899383237205317230957303251363929635144764782609319807168361689415464487229729180909103632468586709644980233138427572090044780390934065683726422047244354212095145091623644773354468889846512352435267951737436035003318388316386091789480906794548984398898381813097343789002596331421087438751026821560135531843430268372367625878921718710041395850788344820011132474659769285967043353319218837018975723375135209273678947676762407068697071727279330578563802077816867260367093289369799123133834920717088983844427261384079983824065632364289720997526729938414233899534053083992444437958654609020859267790309903849086143295673262227382923362341855539544065769718687829876759617784913840850411699524871404205740118717611758401730272209966018363597112344496237129908732323184418835075049088979148126804206356918081499946833999031291512524334960536351248709026914560207649458793519094465280447176556841518377871167888957050164367148226427925399251662148239591728352347973310774668300441968448125066196284710055764869784131572957992619182844668128218818429297766157413075717949591366121431174546929789796675180203453291366830855520669159411971946269159055635181936492116494448530811616323219065543381535599271916689652294960877578085717736903232979346279522433512171191967714184597881387355417776636126464802503162471890643530339738084844675241137103460168182898694800138381984192860748368211532727123142558676170432735038842315021815252075727749584551599114421170036729064011439828352948715214674954318924854441982748317072224744529123354949168766692040005651052650869952230321393462529913273069100236647332610859555284744451625653205705190305112307072203156560111983553251748142715482463266381282835707661230845927858335826736865191974202473257708936785296165302960153435976998464749899597260717308559447096202467062603140504777260536564849415356219910142697333277611036716928745909108987416966990235529132964403858407960071702670726366163032326733820265105829566415143150738324295254086040628301050922194259915131397189339338488138280634778814710118350283410290180393702785968816667660371823487608224629505254845306656003497154391798896597337885829197217867725034866536026555626253838683683740065272442785661399190922020058150617421601873979447132301745132704386948922155416464466303956279611904584675778494141323004245916066662560212946687886591471650082681764946804351803422558517109581647945353822951671009249486298885432461641515253785850449856755822131354166294019536509664252237865480868220429759317465706471050799249481968451413169733616472023613509443716471328058907885149745185951377756765764798987137133148396846560170349570465909762380744899647481594110885783129394578044461016632949194213213751422142913731187176979311250012614776276843174606755728798800976091695724816462947764112375132139173142848149209289969335035080074463522982056308094008370310395575486320972651361104600738597506866124243612270783437923618054862246908966122173140843062132347646435311174710598296216440699241584655172987017836864524878824388094005389517088599665129703355211644389732862640031377907293283615655766390482110706887828950891371308922088460761823327956125897116683512704917901369668518002752976590125434371018317925757761288678188068057964901754887341045512073319192658881600004852115687947481850863272410973373405525113487032335869464654734287787175536287747385177634948731860198670540725113141735314304883542453290657870368949002668945826227031050051318547551462479475327467297164171422621264732024219579031171618497076584207941704992165997123063641803457254360546181140796486055217321564060534274138252391535574451235259169552630055389881869950742482684510254689692465057619921260410173048118425314799364756819805468674087470775408577826895782513747954048224632736999944327189968752949021581178148158411986422712134383426248774137326734949348735517652409332239724267400436037981362776199708502580650435192127494002561562831681585450702286778103987302109865768815662080297167347444597183960697539506780726536089628844197643176541650373435490078928869212946918420296433011419254947452442620418810510865967960685737512930816282246251251154019591585849812009690620962365091391560736828824791163070953525946926125397643650476323045516966037412498904295862523898567160865130567313280983240314273099003996297462084051076718077426745128258679465464307887851876481975392369899651746646488433708419298567234148910743701562657780147344641358184964113858199901920836632431954319104004656843151684298800825356504118571703916512317541685820704437613787846580595420931887806608775555631851605946481345994613647186189929550610786359299074183619003627679033107357483706232309266131443707577505652789682382711206801285137101868618875655910784238555410699399488840844638020898148349290395504097528302237172264033912646896344400617597747792132804827026043743928244573305337052802749970130824549065074647229095462379493302196860293687829364666002529830243264389931460272335392550952311615595387438076640846150297782761654350575733799144088856992835138971728440193563407262275756229826594330166676895938480406096603108581671228677288867073407254902753655055920699294244378519779007948669664179379904553978200892718515162995803407051763455629612296450995472407554056905590867315981575454302262542111870682667068828796313295557810480612697916148847368487193529315226184061373352182063309941320059416564360553172128413912449040150709759990823430932496658994883475824425042854266632555970647162483526637911917217916061977308724305481796799343770330039779457280700651206282114239563744749720865833557866993305122501805635448182941508739010892053348547581907061410351555481193466829548288834022498117679298710206865698880157189422518976254889475620808167359190484821938107479674720523936560433112167414798679941045811143387620468609555683571455656560157909344435779455686955851386824301328677386328167251017237080901368861407027335016499901757738292553680861856462899701491055131232959583436416830752856555341862298334236119915730050280853872705353139713672979081686536079023931683925088212647859617898226760569100787796975777762891234921754227308363922421890255407293272658289803130988313783046450169269581125522856926224665399019234089843495298147037495515727158079606948033745908554141019388263686744865142986979985293426994682847964804472039695529032047063174263248330999204467002744298231750897043898833157218055301224359107472169582723259944066960766217106538201707123371404012499039693804680877301679159686300688871106317450945611203815763914792661577649110512248504891980369218813097428877826239578805333129713730160872279608563016440889878714912832488348462951514410493700384907284630883298196140491703409574988565394065104416796608303244426500958339249682899848024193773446660587494873781336054959401548460431629821927609776117497084781389095053766235423143087549268324899961188824101139062525851476297717243226533469995791052641921164098712275446995853521993219377276256348615351448656762051360395853499530772953754415546304531622940796651967934861332096960865075362065361969771017913616839815790638272776167281943449053025355587385031964708560554483960837588893695469647710103315775408957263643104123743813718715658519641587922784011358587040748738788885565904915034991142982408588965948206874190819885834723576784519589852800722936416289856049390596935031767074764151912512073513502117120270925796948207723806098917984015829925105709539057181082062227294387333633322215738155501837096973587719766620129055798398469945565687078095737901692033408015228394605808742921887650239403257506442710930721112970896738368230187635537758010619086517534210328863339461504688630313689583753523747788373238460390390908904076924552843536945043187727058349195493023569468488185997121748242231426050057915247752963832804680753087263775538295394590580735014481955332395482865887151276549243137786311399243589541949038448507177830090221381553637050631412163694572702991459886445316713442036796287296200536163698270945043354793105429192475953674282317391532347984741776585838365040710978938860036447702338905850800459081907651684497252310292291264672080196282789071753021330001146667656765431137891534219243224813183618364113313086645914946357085907993887297786746286925337882050568708770390002979862990875434087476325778555708462714625632320013752512175025698730641121193558458724990503062120862532671222998578159556678244641731507163641298730042843695636884280218966759470959024219212558833362699394124267294320450974126401688328871804880401926138183013262433221481597595657191813640611379831936602553085562749245415027189786505064417113437564635739206263590057727331748946898729598849650228601536103020055355134289146607740711158560550488245247607286613026310696485152682924934393376695817082457448798524362345184253697756928349957194537940552270827130666447827926430949977806361004419579454908172519013435194050714717523268122482770647124864470190171848201258474243360754584014929321177111232067865727820192788542293338580830543590290974741143586490559960179105735338402727030372922507246082508003356722887773030476370696782407875599026687288308242198654851388636554745913699604585451534839832226616027111168812589298329575547399551439668331147824845732980789105118690195533091009966707007091238908262718989332855904960538166549251854698883352893912334499112653675146244290901126997863793860505696006902955704839857442638772176662234852414185613621181122423027308552276560786503053284707206754495366777523896096523438840119106575648787444423149008689969979881398332722361823831096836334876364530607390366470386006034700931523782550391009350937147422890498401223012379324186187391093978427270253149188737142128008854215956542710855353641287877292575258265625312163442499372889226547307768649726870874834715077439092932662761258626225423810524029109600185510640301317409146076169911459869101939670969819610495408678742216904646300813269969650748438454666584202637901866102961955141589421380980866604468795431416836721601238777058713182791856741415948313533520750112106608537330579835903032358480179328336538981605242326076049146288917002409138781675826969038768550380573835486770413669886551402800896596116997013282332927988126233002885520040051196852827527965665334151083912182301021254526830540741879268430445441889618612196750751722491013837527093856353795345252041707677100151270897717756002881104153388822836042213916107467668100131223600503495994475097915783121346746582122546525632937255957575278049198121362199046650766827887859803055543403391605055764562484984899039189781526140990099154347030981721098356156553196677873768554883941999976702286060935887407597715280243251483483135655061139290300984685283496572354871020492932750119454356909953084019860616978821629880286912617374316863214568714225613278389013119517660027433478431605280914619653207902842299597161019814072971070759935912460476977325069541404714444609114666062964766247891398509167834102600714742882836976444502618731232134522590361841206061922142610237776767248732082912888735233029301769107304832312504839929855164644572004713369826676238531134044916013209855773919102741353344670538679901005042405080340207910652996450894536462483595369681764969319070113195126355071207210998508653028813912606731224867685752250543849717458553501436742325765112708206975449035161158497199297438990573239960574445354062812197823174943426037746720511698002972562247835404467663880920760214774443190738477280708340857151617281224827972517700616622169301281775347991928172735707280495115966544807746205234639638777030371510700401702834643705532994334092253849794065098976721183772209012992646183241826766661976425322456308378117476051078325991600957451068293166614509260686299677329135278716984745124616735531670771993682449620002178397080855465798589636674001257601907709978549058830011282731784817922027158691867083629223125459886073464279947258682544048757066447243356792076924173986795522643687117158715898917698325892104819145063347686364887732085359430423644948912648766181730481543696467785397288428390788432482974037626096745333182194787704089553246737471293262298818323743691454669755800969121676895174545066722938560862927505793056321203015874768683556275230959909774156706277227812523736095311591752133888717647306703068700861650578489807720082341596051989050028369256486838925312312391484916924262509574383662725496818692191840703348723678369527371887720281535058271544717268312646388657953643282377530761029406324552180836142786276129128530385966368063950689483815560866622457910335887589972024570553103580273389817926303285915752554916290161240608568436383600997389603574132058484959058080314832216568510825243876813740267535156246572140888300488795382556375539339540846238499912477809620734553406871038837180101032424114970866238790618481939572840684434525420918935808288750625121597778022411968404672926554987022237576194002165121575848602593713459206613367013141672761417456242951843342156606626015201494550429236164820296090493863742938801408321134058910535468181435887243735958654165386338257458461020037702388714298049226904908495699072875513488812721798908926781537142742797165614997155486686206424132637800296421838203950674646605501866401167555230230843783493616823111764849320672139779001660031534263068850769738630081571370965822678136331123274580218886272391217954288470022642194129597195924454720009503267842473896202287849492288396305918260632972122981284212033023757016866840746511096814105169317348192204328223869388946347118099503964607328329724481716610934404678213959344990886209275030003548787457939243310954656565271780349688589762316459685542815437436070700879863167305686848423354641102975544238921026439991435302195938382125169015625294152573361426468492456298362976566154144441964251463947121428067410410922530414299671141836915334055834515164666401976767801191831103412565346707770048609947611800086267783369828150664882388843746625391421269267722424492515403440741815488282536135407904708566610176673618652707029798892681515327003658186155851126203443326937425358018083601272128931780327988972458256465402359619551135016930229595421164984296105176054927097699599144132878690347505316431195791034427565080943924601019859350727925894234761473396356977259474086139387427868484739973395723540244374518713622842735382612416655367341062189932083993549667358224979850390975380657902827905961256942493178586761905527669910987285898958918099896970663849893629933160599343527712852472874602591730613709772165978505653042511920011702481599679212808450316337604673488681916090042491830951029025767908678026732046736600354263307499438501696666523540468006577828506296844561905319074185066843248047700225532533941031274902591190000120100334011191825819465479459993604430041504444754924344778496874360934918738567085990434006121539047342602474357365102955584428747947970636952305912519037322882363675082661379297766920014901211465168617235954363031459232408468785768545023937080996852244007574048221370433894945033593677516206368749395257125146093907090563140166472598197229872681744357328863857300086798009000500254243020704798521835556871983043572684461592197311118435949887097420637471784738356935895985942514202853859776306319426640462331322216500479210611477337418404065987622718074042259780849626900995127940939193751742828343412878149591687063546947643705253776189000567671555025132684982436821367397181443661109385349819662244227100361749022300993458947542655545500953854928502221065588942878410300585132855598217502521476517203592510715763285072399168005493312057527744680740847060713851935789421498454048356683010379211885432565085449857202190590336917513104516446474343625067228199861391442898556500015650976845634718037660891900895822263515494026461998047154406734745901712363559112851959066547172004376615970480334601067610526363480274855690034432426150457156724652553096185824821296369089389791735180358566980643759874977330036980029539298020396478367247938842246231614325253154559803471250443624651780312218831297237783525921980206337582551525234520339203792941565951883699129453004534697354528823991655275720279926548158300850414683848029457196072169755627262754927624752361522483883753980483863061058253628949589389655740760047444553964206827001736249372793094078984302365258509997613979716067347574300992570850454065835789731989946291434522406412070753467807209470949095468619697566559699802669808598003837289853462897703873324992571834479072401409578279269407574821267045101518286462802465241085786055727560076805462322197039440303896467712522507541338940171454572552191202869058748078245335742098081710850353348595796464425515751699005530433299644249463060453990664563305528133551439632015431264883967834321026905562749670615016270736621743968141932414254147942208632130085587627508370647600587255522723364866727000478949787705950668459004714213871188957869934460606194760022453439906229877445973848016348317957509678384143243400913062256766721303446405287362958429633820638125123357420043283141097449116005638909686974512763647046202724211924779704808521468060903010731596821751374827048075817547193746333209780156284814346998570508886218841916820708977771122122179983728031425491146870292949377409435093494847324667150257131531136216268553473357562521726985110130169478816390668308610006472011768852010542093392794740549779170926866196903967392915702691816107307493105655467551191975638106380819313347812761793740700291990566611356635202543785927829615014688251564098361920290521200654498989113325248818693000471052278018742013094521374307817874148369603134810736313412212246872413568656018120423622703614450399966273608133429821786830811173461337100866831341591195869926635856818292502172650975044014085025533186673758662830535136443386965133236407643852736787464207631743853475129349000803958529036406552263044593710254408741646953901993040365226228135993503881146464004718063829879553936849168513868400172527768622847539435280672152930548480474938532979041521624160540934944208349048727323825452367928051936109156118425466259109221286707362755020075094562267881702129077616722792601337125828008654998408419184557481549352315933502744881431547486806638089036363017614403208350354877805480791478012250116364051834390747141699725252770842190253811066356788395528428955445663495793807432984089286724033548566397792517797137831529334091349748225145208319873818725422258882507597506358426990753753882238127721012410840590140210528889527398733586567532423717398085575926246191509878000482987271916544453848120194146427231459425362130059822342567424873242914585617484596142980456087676651819100238649177401303720248984024852111917767735561757061787322905394399796471421986789798448229218187970069287635841401121370746133719760701603706101410659865844987639219056578988642422282185743961266934908043488226764270786324841856224770070355388337551741129464601614924177484211336884736542550316940886640472975973074125846018375733660985615403077767228604897183082405341925112039032441772017435171025711345832196657804974164164729173971359347414678454143232071211047416287786708407662366681097737245472293295043589610097026327901673922449472119776303543659344357449923122828793819809430020323635035112341628752137428213591757841950566318643067703257452224848755365537172351615709734999122109153973003036658591630841957369724137098463830976826269848648367234048822176977898064807983991974122924088058204105657910926848149270324752877737181307717498322570082342719890249555225569568355026535351660574902893984129131418978210687978930489676100011435018592352028544477128795272253147894400362630220916226190499629624286600236907933824726393373824337803182170995809761012507976282276754532892131831570562784487031137609863026475317498496356664883762964180821655962397660318043841339451203165836037865718030834862908020573953718790822963804894193718507071252186245932874853551846478015432558059857513875116321043367580231551782886449771224491630452474926102271413631121964721675908021066096528632688186570816569420211812260282960474741217998823180299991158116147523303785223844356222868742421452091354515509503964078063250149179161410371451000048486230757359224160357194995381002368627758062166271341760801328355903685257609151148724560779578323415691960536832635858007123590775281735758923282256311105976109497213465945929500542232590384578146598245424710237826022105525235443506861754596921995623874343688898300156883990035078334255845210474538585713855771934918440873024910968545874412394535420216589789166076447599739532026247175047997935866472580281692256963939154301562465798179025067179154772204269487622271095628496552666273552133131525091280975169086877995983569819007906444571139969676912825320373345852761570452664956896212743948084108195999433953316322670413980801811874153075378989091044347058833445676902792326395891581812163630544280409621455535281611744493604148149920337109021264635430054064164534736433388408469378262998567958315789054897752302006800185270122201278459498564028710512284220773372062418880804666874568141672230208388081539493868699280110390795952278500088605484457899915346181462210966549248944506420501186861519371941203503402575125444910200499925583424909914786081539529507640047804872032736043347662242568638129625332474802557825833691590876751585841349503907424860855424261225045203482080500880372159528987484016180708396044783526488935487032237287984554187125796524191246441759129980230057068019894942054872563194741036476666522232491807803728131560042433209066650001098395641611794629914364209836926725093454056298805251391111410787046490095091125332625924720509063874662810641811423471015883192519589588144672748131169833997763172169020004954260542490618003423635941386996274245371958190363371267546895271933913001467873440035634028996545733842912666126569405110667148792844735765713736111448133741056725070423942755940024705705058532639421203340078755893687556558278657533162260957450833358213008251676030942710094290216380654491384320286585576619942264528633207075519585751825796676511476942400010618278228409232131923261321591114813723448174482625859132550971303263847385089759937496637306862681412939803434302029381259993264750971479063820870547671145587782378475234425139126768140414279243801924311450070864351767995959323873649892173469147393477580776218922820417860958738283407473510611495254743619928585448951347358064487399627053043413803261341660814434718765173242359597618015136477127979947810675708845735280267961781172967112106213440970478724783926488762320466793759070273662641871358011858432479139591671114943519948562798965257369177869115495506370601507330040814470291465239843592180746993869216235735510456303324722127272983426360606406325198795827265868663745673786185387724080412209463394970311205858285384491532412576804203786634895910197734530446950647139076310048079623949498553545694027825608982903195945552023756756112970001469264068045352991748657555873895218170950452003490212981243894979604469909325607940815161096633421630789110447146141547545249864243561371077218941406661667797662531477977734516418189619830772842947979376454041111040309731448529446985164071872330336612136022439895663881056817746840576288321645979027229875057367182456718044885108296479670036007962531576877074309393147816245153814239636773582789114288612983116636066666042225974052062613223291799385985577631305314066440639864392970103316464313759758004619079435505426837692206245016528818591243975049198059742167519552219976732077586203685808141273238498502883206288768712638548903421517144652391564869155708387066584247009152374277486685661916683830763751835620277505124915301106163916928859480520919404359523552167684302041792802073854457378341852700275902455210676915422616214255022633929081510145427227132595554903334843924443055811797134987634945614982357649016348168472239373023012175981005522871337377066567602166314018729362816560629119390638032874948092734868083612689889013251223809477748182361436727897238288665775149210847264510397599789995656279640261029326638077671180334484683535221254991338667944239658611111060718033229482498866553261421349212896298152075414038160404247419233985378577577975802923509731011600439177415662583307970598511973521726445348145660619389295833914788663130809811994621078888604537243615809164353081462973758716841702545446611351186282023294831219268024975321395691597334338303312680902852620906688744561716475004924096206087213528480973008924677374715830878843220067193430897643912473437336896512124714285372376125466813860877317499877170294154609679612178624238860558500154514428780275083250860355263208786098121118283720053068113815688538608813945270750000174793303114443107461723648690100863237290619762023450554956334202342133209542943306156607720597599660337117669013634904405363290590212362196066887306229271790320007071532861811306890649354729622076609614527326666109262197317611800478468463095538220018753963194002589872859855138803174381776075072268196039111797828202276036200245665966585777256202143133950997986695893110170254900091813595836521992647919542147664428106834797323585168655841072449469650850638832043474866548925862829673707713336537278542269648643213642035735762569186554491426834788077351782548089184139342190647571767122222298965091362601453284223077465168479107768267432325286706262440297933172980346239061568744076120996113432541162496324561137676065730275091668835242103291599104335357011416732311271313587602515952794404908732777561350711963987504109063077908919770634371856235321271880541643061177656194978106088485445245879290915214408829803120182966321580850574510475510887828411585710783571073638387314617978350155290132119479474681549997138119813351407345043004050312919627184162620267331487127342382784038848562730512590997621454380850635544682058884496131685357579726433734540778584487378579070230000977378555089566470218384248499865447156402154955452804874387402901528836252956726755692923637014099633053699856421498266485381201997762136366719261157059154444217417118644264802329719740139575896816497510308184423554959588498006327268984487520077258695112960031792424767388212297047778614270853118959230307014564710604694144155202686719947562433702780210308785257677134777310984005600274589438439899245757425263515665975108624640212931743180205386314516488803420774022015677233356030784274676464151886395208304455996042145126144234531375808025461387699160887823039052518853460188676329420348087243525112571256506991242266489231812045751527740499384951826750233287611271477930276531117429514765224388431431644492438093985106428820375574942423547891811872372482466696660385340932660585132194064473461204957448123561192852542245617223437458488746124252411734104949991722214281969205268758330135719933871254900772107921406638746506963731680033104907042499551201556214887624214446421180064503411757013835235991825254487098963977168699477529015544013928358607810020862657426539720260216976726235368537583089182323731400957056095114349353520163050168611145262652833123790801145950102430289987788296218460233866163852249566066210877694342586150013442690645492639126888816057044163191690216755261658421167938744377349698279236917942312960929021653987301699567742833700661660644445926254476581602971680533996803470226866976616069031862233765592997875803023141686094400592554554655846224288469574891962470639061535238578651440050873044414411854944864864556744498928720187381680826087653406037704165114587589653758863136304253103860784343411932258488245475862886151808083111044069298875383152831156872058439300166255666554861328422065304793263893587629174529277480865646280504824457820195707223377628295257047319866935555177881084291615445766789362091508520496165274259157543142354679642825854255574841517045293432137896149201059500775826094526474082121613563705437534604455103783260343775472966929358046033285976502945305789201688969593325305880782416179104086646670649466857075067260516773220735056333364125039551386380758638181551144191752570652294936867676511637217456611428356330847064033498706434942279252699334500354019000043953401171184247893321095867162169362101890393191291064169120372762329952582511402353026892227665088850215541541784964299359469996276476559007074698520152439938568902954836550247356874753825035377454324117813324558295831469363471360533555152312401548535246389523579393962408643081364988374227674516630375347069322663259413821108494838927452447088556949255610433826467930528873748552950967047460033711283879796397399343141693225560493392888284419261018416523676569696180416221014119363088912232132617770971623662824890570675536558771702421347932577653413747750684459870423427162368584905054604909076698386295131817842543879502760287644662418969502092880850429661959136391958462498930424413909574120627560301654021824880885704446246172198725053851872568980125012307849749616163133984184120620164443653997276993706915683020267259944517894878174280903067836499459983122499368477519806780735117596758230562589222050225285177561993395806777383778785599624080122152075953459680017426455085479686326134949641052247173394932560013906119693967720937854980526717089951574362608364853101379814956638793580253261363720119687833555062682609082355411127805060291868077772825258129954397832758504144522718221369998846301845872441633359319981075712556845746756846993883079344974010480046942935953438279380252675669581299680770739709804681671369868185525756584664364471658348103534437300758100129730909192402328112477651581123561117491240424523489246533527351398642691980080048048101503813732159917513863627689517930016429061392462856326297437098605235669106327974565625772802492169910578752990904299587762376870210059487258227200716140792062695310158168664293629506551030358610061488485612064061317148322303069745669140293300570397278239322556377236500490084790378886056361037234434069151722900004295571321152091854230410162310659504319748554464555605988340054395825205859617556021822742520104780698968558033450328406287270389279181067111934298657066718599534992944306318880596932997554108978148732568968719307874330106162427842251228543907946157219421404105167204036180986809189129280525565134964222688141011754269347280968575421424506099022754617005487653716802983195606595994943978504578558849157790833497340122282025646088403536506659834058583673387165042034520396689767250443984841493546435090776269454517855588841879406846827957370582855569452567876166572698096504457625118249982503418221578374907869684733768491457543351445234249796628623723389354288773556978565484106858005198856494519282943268724932570153289417249079087123255860133681373217600783445347855807001173028994074046821405644327772693947105307620283675659463360778393020363744518769610847974876384315738825592100445609482894584504738793971016714324110057451449138294576632046747854062052494526314577856425238320178463742277723894713055346528869730089160596257947158614667159526888549546541436641210715802187567691169665577431564287035150853028659843784262630244263065826780236005712573927744157868874870988576161960051641944610146162066513743323689232211104552630542612860200462380751146625908737037357142630327928370818051376155111925523382433013359332470581581286494781987319030368267787151394958879770004450223650412494980450058543481916219945877723646729700795040751407139240976466200874555360932810821713439009681045682499849257328576270910843807896158553914969980618220120434449865610384482347289403598987340447036462803860883980118886184363108476098363384574937240057117446601869652543058853911564100990240801234710147153109470947173826809067971890277574571066526773583928784617462522257418745447901231353001770298934266123299848439091521155008686617940016053146866278423386075794984592362991399018808152277617321385465131172993385039239656894169605035327822209891276977220093559414431557625929312935293980024955813649585657678825587848200165089367878547377375126704031661676551229689896755362906271417826730193335036259748699682917979182623462081338733495405926214380916802681274944651484355593155316290731811039250945301114764919922443713725030014393291629348258906721522637903546301835568663680131904851685995281689987315223314024905337644665350828850078848151541304611427597853547478151366033856082231396616820614591308631306727669339162326787746359087762033344566918354932657057006876706095779741508436143744515666114199026881512478184073435080596599293577566570648325711975871957209753309455384836305426411431226486194353144599628791616326076590542786478894810591132382135233752831265118708579607751980452858255238271785008568422711864728365986519910324798399824267718687356229656927330250271280639070492880183325307563440841649537332635073834285463079761263105816058719200421177737773788335293116133244250578333718331143351447857547616212740684660974438836617907964162144071061367122308424813335198977566499770372924542836348535735976683562305640143035808211315428303796046711394043499173657248463935823000550471682705938750989088560967849768241999677564523719552655450935691735848031585543799915700129347930895592066415940212490437132841018025552481285875951434930038038131914525400418990060683181986152694934434429978880652054240925939050943748104015692928564768242989161237829593112696814827958812218468936363458967563402435959743420956593306590181455258491034625639060910925625835064236361966251769547301174822825970940292981966059230296353341637399798363519727747452028937228993932204502838478577068114312009010727955183358492320886957191580104954099590522887412215993250655961058003590560529151026754956213369340500418361818823132394066776851789064714156685681776461282989788294039214216409378981558159088042115102074699897091478290128232504390445077836171335166726476284111712165212787453981200939188964527443973001504578668409260410467147033042046251569033941203108390058955801076530095179341050520903846582226986695235682598193243829402233257598467849620460718562225129026796589451518810069495140909111996216651894656378160152565424272587802277150099770714430042766416550547980859351132728231092497851324590947615653975780339846290915971037377759829188223939371119002708565884971208354950193185197915834571362110285807790102999399184497300036112077098796074089978384216995031835299430335009437193618360331376978643018243911764613462147692792582723776591911563741538678718260388660104378626143875987916740054414364359744123369007867163872815309030185511645000328312849894464830070618410160487185882744256718684932135946360338359568943934385875547063588668611534990496363598750772628749441503302487698630998847645241138449708833113063134325413665313013894208691802307998562979240336101208625958596474918502030993169537769696171466990477209993479068467112241093980275814018660169521414349781573238614505966927232460535866155139925130584188195869743538599185305157838697967640482444102319020087401316268174600018249165203927488748779158802323242674390153721856679214825087947992726738897794185170427310915084570702309238057671327312141515866120371212839459189003682396297319692299887504239885711533657972577940581017864530840388833551327151363120956189567953883668012272712206431475972344638613010273161955086260298473529606275728363343944438985479335801012048988616530163423351888886576707719322613702077076535621634631215095406502699197961061025136326608379331532443577830912400592837445450429994687038142232467339119157438346197435615561811064976022348445417222571331061707564824357334231851729163181791228719014297377148246309249945151733352772199299764700562512977267703761146883606198597625223378265736821921351692041764276254424821643803580857820218084346337972768669548074279612072292372803891883897859283857533896852555587906297746265190380700707581251206390797878901783876557108842380595834280271054250223912077125771278280119844289842393953725581678198175391380000905226880274116667643479572910506189621685685546565032852301809750842376005749834514036472081402733307081821171398956018771707702851756520969510158372307706347592894431523850589712533133420829976513714705542410320282543804087321629979524831746988703172826388295601260871600339344036262252661367838744384577645071933268491129908371472424878158569870037257543784912979307321678172774758738414042710709334740100226083412196746690053070546771352662630483011589952657807010569996423970240986302259999482909332110854555868139984928035688085855052895050519788044568196282983607148552381256441950433793886482288232337115172125946984515373531471472555890398242488277495739846314886234601007354668788496345599561836982531481126080895155745990696402770229247652048105389993879511082245348849575885797582988240245242721918819297702587923267000814950939789885670122675614339297184450343482454586770648849129981993674834757191934996861779432951545397904385277610347375061612181180289737985050283536925503788086477283991871611285582106627157632056781478182252772504358244151584279848558444845781906987789840669500526081321835115800392105841659800553002226335181003188873042473035575210228503469395705258209492334603711369279633501828424124038899197409363747573474276090093075320012103133738515835935182050964559060755813772483460143844434109399497657816273885261159753231964396962569553501990622745159481162763806287637631320082780504035336990472000956079890194032265969580740057922986408668163423878342227661434936740731653227211246919384128018175400486040698671226342586932371113371743800934429572865622821612278578171135873329657031927200680258161395659669842591467563666813305809776183288971896345961224077906201734981255264460309097035406295254541225169155728051978289096389193275707457193899901147622213877672640172147691588226494124080712791235421323190321921194135779033794982199967999894485016477198686913752355488814760580872397722033535356909898180680117271171878048831961821532283619137752186895089524184826303331475320492440244696911347471058733606460318672117124000473594726889288520698845527674961127988132225072189385650259548820661789956363180156821345927139907761304094638313732397395044721575336827465409113571331108533843881243847830120091663563934550289954496697070208505575508339386026853627271926265158997853585830714524486956772164021494323087811178909906506812796290479802804085579337244784846501384813812988021046605753359079579183740681455082127902596897532409006837420729364898804508696399180542794736608604706350740149130239039641903662254005532024487718633126905225610052590589934558985011701419811937717940479659972357065799845993135172748492953455135668906607476497437797304502338006255000661367320859791904031093474710816794577003711653561831308755862477596460483221641616860975881744122981056087447878903333613894292832343606855516464751855563214505487884961260970666239112025917253141501153020310639473675495299930652155844423093039472264898238644023619539826851998268007442329708219233634609187252205919795236202861572083694980501772457169518814982093251872184732709963256751014391826818864951887151161330478058445382174185823682648160659527876135826056210737607234000889244656110674471646840294321245486692569400928467799586403649701356384864099628162009059571401943006699499275363462364703414948895136004054915804238608572235154514065216663981343958804811259461090829558850862901057077605171605270806924008272940049343810364363066923954860149506605105651515068772285598717016081420182940285427069171655503544292002666776508316540929745072146696176439053326304184975589141624420423235315002985023593766095102120807718799480803908260360294826044323331157930234822048768464932978784488199727120538291731431103752434986016744073430306102452823240851542899440312255713474095862456732886925905006793613698675977782807066139469424724209011837959859417776826053068495560217291714106434259591609653313898702961661543867119679298441010298964674400397382616087205554826576886947940419115172599421158745970875903744886461619259536952000727965671456953179489403027979052830158507400432155058097912205245823288409781160621414653907359672734660971485726236278886068364597594199919046862366579907865831841409341112348912133604242500454841107706430143544928470490552632116555158851989402463371573009849688612811861906815434350566490066114364267590491788486469666602968412091606200164425540739708359677880060454411629810217772550300972067811883154694616557320952790288899208110041020980510104663497727648473164934070886226415407372336073593865202145998187839718593998251117530825448595941591044951821807303425172891466802017246426305304491494034789051384378959680648341997830707886509108003941772846108991750169689001582983246271696172482493068160674187892026558908120245135944609391266874176129615256081549357501043135732679805278688147875534666004644439292527087182805978476536770594159096607364826240861533066499121365980279768163142414016643995231524412452725012040453174006325911615610560478704008658390016333073172757337844757576405342212236308254869903833248356858656082747081624121720363565154120066047141336352311625887370756865516300174402261903743084889892797639529607621707509005264807015951262044621789736332061166908388765521337482738575602385837169077754918180833605848895519625190339450480397984812832036369579267688348407732626573742503218049669136833867192195136528360821623043566547599368356737448797590537414766117598422006693903992014942898392822500135354836961264260864239908055847554077367913459699229811177820797725000976271055376345042808401385018661794281455327750780420484344167931563586202180566567436868110826777258949951405341632666636777099431008904579157530638884894996108675056248077191702470821858228329770082591954177442889489550206501746073331097202236539244961787556469620071382867146511217782493847189942974815972338586231034661685773046294123918058785439891449491983331705618817583175499668526982599708431185200701892794752682634863845166427617503439835798131181828803494792220736292775306429824507594550102777726573686213076895799420973335226552309941200583147002879829747853849016777250210507917347611206346828196703478005881287192947407788744269603142617121064786007651296303635856705579222090672741078002752047725852026934782809119111087258695416968099271124011254769998487407122080576426035381621730594135270790837676916609016722688909132647468246130685623425902757722284280638147045820784482289138633711223146959558931698594223821273979894804639985061020017878048278363743470761849075258685959120290738225333802730017580538499472837668415841128245711074611359782476883803077602185584443646954174269297790795160534797278952724765813379623772303491955312187504352469882078691726061881065810607168075430086676908408629857315454541684795869259245448709221466086545689890596182091088222188740810389417468254792356590247952933036159337369198902189047759900822482099865640562112447477396437506552655443066349065602626936964158071597303731438585431000312745726586697844502020934162445427889049601843002138121166598901861835796277137647459393039374265490054525849409507967407087481444746068404148960449334371527467393473740243033138865246638504959715033798233910838502840278144241199995304037600165611081940521922361607469695393824769253447092229577662254910491043224967224799698218309901188646768777125291319515008267527678207033489395208246511578559972345791518089259529875034152118101922652229867720646082685564572225778644517643472444096099177978879002784719660197762036514038250206836383564908748183325837142206867879049569020288244852338732308762634659341324047209510337016356912744697327569010814343932870122399645070895817266306657395430005005070346137052030514807721036016778947906358053153350799652718397365355526479600384969260831945631654275499790211561905638684456793484603549764991368264533162319174881552075614273727635882730951719084984949379983713166092931431410196209257694791632501061391996869501328724255879558068760024414673053477964604079702659070647465024936811027992714301308399117529306946682007174590345610187038336348815590598138433320330058866105910173386168490695815437923560621733150582443871212036986439894301570878407254379651903062252107834198926183343599706084916013253070425449332139111639118301902500006317567410371271909931899233180868837548253819838365345562633091627025869734553060812771338301124314222569915964258286176042939603166393570182037421686429360374924785814344828346875993717697692377396733868640919238449963726481621250638053784602606300761434326990910918614411580349950327540970099293984018662466028204957069818165701779204065251720964030445369713931258073578259521918653675712228867185345647695359080284390834988364738967761824851509182776176721223131071930742461983269145249334601481053040430346547353099371458659842022601348611825438943966837504250968577333506166155100015777661186696141185446052289861515177165450071502351460497802157340189507272677224812067274085452892516924964387843603484510033117643242875711967487732482385976410438561420087575580927796849382151386825597251280231780195995970048324774210763606329789651569643848741056463673677859784422805911780879396519483580671718139561423327721448029970847621650042916753474718220409769103613370133567248058693701984532591728300680175327046550768788659325895960163936930578993810037870681705520897041930791087207684404044751202541343373229724742576958269294430396730393802854230998836893692733300135898762870734319084768085682399880542611593623524463913287996154268941425943048238330177091736180537758326997491226851431286293962808731037165510325481842780691296888495145139823175443925498840567411709533860607136847012965352676639792118109178673556925345675061103388364812330657319244161161954082181780767788655800880137245435594626415612856913175903309716122381357576581885561937649899665086675001418257132233485607232849856889281168475244299307786570125931014479858488943547408022111983489962250771856135720815401857094305523917417646499421795547963469580696969927794314028032148964478056891410811329833624842874612602433587650005609635461793343718251528440720684130117358447643650890481272491146157522240517042949747962012489799669115212895601568569356423964410481741415837742252386148518146532893863890675116768831312011937128237783105740314422825273394904809593181380920318382274833286681353650244425254141718326980586673564851795438329111067012586508908035689542077366736241251013941780700322284685153487986938556909717478430010968971264696515540043369405042215887882154652284750233553172899911697960601670495137006425980582954657559939328244132907825596749525649708817536674620295231234399245502179438179752986021768489957545720728799353581431979802741958886433860507287864504199614822034980257160323825128722711658077254972889790842032090483210462224214378163586368729464226371713365575069881693713566570401026148996475847187440501394109893981960674936045338159088403656109573837266697286009457098116275967077173996916961607251881234987895723801027201660255406134937402392240471483824160811516621867123916315498030543646847442181947123031001270111836203760491440173733752734580727424274902295782496804145752203475681258446895572202127117506047188609492575140193479971817828284837703417330630357487696101172712383562509259725726611136293335992728040598600807725171683751616156063939210829917639354344458695306477687210436153544519393302091526120519670641050442002793902089378770748156590833832099223344543631667935199157912689474211612274265676593438832668235850216159614819756545189228176480938363165966537660753761494238491435220451135239377726765082829886474434869774552830308540388123288182786925525901408247028241665674787061326493180779839666946026138584111920465325144602126974163761143033666834110463896788781127733672671617614394716035929985571277418710972564468834994532516465057198474508971012461758459668560025124773146111974392730480547214768026098942171370004984119626863691812392206012464142191606604511130868216725261643619735708224580012609544660669943825509929406626947821860425726323951904393518920829005230054827383698446529048196122129121563847498834935487468886567750723294068346539687485254104872848815042403990782350399178445188483310770803199006623486201357779118672197082380876529805215893456814384510102206029853805581511664389891892018889949685713304777942273916081841329225783592674752948295392528418384579940837406002593478889683361715604718372272414690693223601806641668171746288204774945027587608565554895690839306720109777128151641020189631067297592309672125255896271567169180339561204406714517886961180167809991458778251853700465865680232970071632052498456829060758214384582448536630947692314015152970198142776234695511461884931205929088382642599070586561023786257142481553711541882703655729967092188844305326296855846207692674291981533521237428913546866879546584404555138855326933134832887783841801422339259875070784356310810740737248448171674425754713820973717924321387270693733803389284531401737797657530347021148626287999032569141284070126915972810156185393086767911517536053260675438100813941947830887347051321647490771200273000328905029841196738764436385729706201356807117250253221882051596556620337166600550632300682462076384880806104871437752493849190903034402921879242467179379947192262045814513982061504372469855626643706480665605805419174231694181022544631464004262495570604105020698744086730773780361619458180202198284369645742902848486438364728194475942874171792396232681217502067993320321340847984155661973575328332766754415777171852770841087602193641201659617023444615820033761570749860933048104504113564605578154712750163666983556990376035688140521653765330576655559611372344766877276111456731974949764355109350126033309806150236774304427560700854401840837038670204400688722365615451257712794474931194406455923219197820763970560887500945192588014762867099653508972697367041301098070057131662582649147684899691912268458773272811568613037220166582646129631970682902963731768380439849412093967199497538430032301598761647463457897588620817377812054037934247667385855336931246744783430011561986149115215146502419917282676223369769531371441772665048137951774712981935951588726667963809857071392993349170645763516997690916866912868424152970915644644778508833317129009479891029236721192796279124438727987986566578099944305606300181363980680473814067893595650033931585386535958863620655580183570113541972593445091088098964825546469247079031141596822110140504917298489268868758155084577954117738215734103993252048630722613943770305827436292376893755174401331257031697945872745213361537212254665870958896616594014341643178041107529890389501693098313424405166212395075315011184070722161526262911903514524609175564471352310637787322569835585631697929906764651719212161097275243033260509956227103626823634664612824653941340185197650994859723190788115370936584660647109832530293256572003591843573416395419528537309419142258063287248812058207181580275767480972305516666778346710472894267528180002565193995443968560143322430097182009758873981268133494953581645267579169649378175513974196329655920766856110018409298157485652857523723824363120367791753335832436529227532781724175242924224626821599670956754030959036137974227731972370525290990294799107191018367147521129767157661086448549785787980840473488968567491429850859427266456653196431859958632419594463643264701343867981647414093406741465072056104574948114371168884380052771550835873389870835065799083136261548743961097332619042035573488252208201374309346501226059654477212071814262950709288153900639243029145659080263420645398671198193724077885046213292136851068174202565898453364642995631620291478211557606451470247616848112894262198232292948114047975729151468154580507319423822170965372632197484801984286894498472310166259461969086593069051505815908511237202339866684544186239787491006128554620716081501207197340012001920711329156228264280811765055613669448207140222152667410848021417285003462313664438599864380661203144037498426308525657417004292290810859984688770601380893445966134500552488355964007677168024501748008698917301968637606919940962121673544346191103995620992539874897598213264192139105881865521129898477936892274689876316251055066691146545476802470857570118105558413841649888663761864226915057042865691695920737594328066010375315540579559034984904170373579512198591023851604716944376682355109324231805196396038226167457167981679224531403500906270543457401006909538729495496610932606498845554049996181037534273232401416519074352327369489373532391856474328454619257110567749540598029182875052137568529242380421022172129588762799933189748988945011779227177026024828382736229772646512120130257696957874701100359605317958258495900625201120593475537447750328650198799025523321859604824302465882042339976372470149497151282465850570763131845028362629425225601724158973026012413676829423027759245985299805067551232536837256737935247057398904010161225127312025603234123484238765635524057718119201427436496050248214140583887423859436614403314718602742182690022246612503290467820784491868808400380444318383278121707252175499803383425336697307782755349424322721130128841068731861539291249187251019393381776867756670086754057171515150903058661989730713865865255379127400917701614836974911966419906336174450509875667263137509301774351873737488823105237499601814208656726709563270618313279368970688380696456857564228669940257225118937510563188000597324512628091814112796723533704479325935009201069713045121671007426237451150601764382565525564252693100624250344490774412964771379410779625336480329304033983580137969911559130101143214966915956967257031089549918190835091406932020227786149843315718340775534110112144211273802328106535574895203738961115898791559748145763577610906613138263771370594317894287727752803479763807724012468449729945189541820964440733336547997472310145107412224373423246526885028531699916941038567280267187738812015184597888669956425448506107756670711159601293454887001030550232209582464926849183163340151104760468958675208632378381049424376319403587674223127123541358482657712501013509402602894998733984421469531398293295481774610127971911111161124416755040497767089475731017204258783979771944208734042425300964856341646636096258850060344743859605317233601508155949433815796957792838253486225982075676533022469593343903579274983224281187680356829454568956494666320620937786672260082595900547474031541712556732605645388710513601803799150633835567977071857135918138282315650045493765549065753717159063099887214784858170775695016875708947762656308935989757922651165449344982586889655423613037049153053156622596583977304498533534007967964524689963027185309806133028687078559575959853540024439181756581136325288578172645478256092583899679878099079368292724501034061225327392812847857102651950375733227489066359716515303970809122880243861943850906847099743635975787508323169380064151271240811262777559466910242151773511087421707058828039305770145059437893874738577380249637776556765904504238762192651398257118735371252867215217141853726314985383804736250353799142056321651204107734823567790726460882837246605046318540306138641227872105898584336085930244566052957367917605222125411802215414920767652186127582909921283109341985148162342682161846503158949362911759200819383298965694871898225922748886780482757191800221189378945829928534742134633369341302861908955703442422751044290314368989009891455657537306622915858886241790176399127698594428679886408396221087085062665972882303108450077758259934323665344298295021989102187021872668844145177951980865820451187895630415244720432500782997241021600135058651435740289335660349634096719215851929304446706757346512583172683705513508716891471320937184975491710514088720395640429826148115463080149196382107151392609550579721175696871400967642876878641310842492652529852880274558447178488047464556516354316261200998646280186029166115244485946027549999432289043464953571219994357131646596128356030223192902892055508664223197358547555638114805626381296918772738727544937098877101882560286365485334432432376461460417496177104106135685867068810451386229212728945476814832594239646694923010098708367034190731780007420138063182092992791413898084062858856180428266573174947884919157162043528486346847626013023233020958825744315588526716562420704962076917462602239256109445952806210560279760540965756299404677053017160122808213999864423920293043398732196737867727855882825397306849961190153058364875192875655446763412849067157325614123234747577799438607090890464617698269046010407404114264994232989752885714567353840907535365424266607957952432756339561068903026656944725623785724560092835901890850821548036816387806223575429971959787535103095193724227866370396716593882590535570062048220909297764400437378601493207502349429336060713789899942195668535937374015576658511090215108391483130511957414931191673111455385632693538720672127693668771033585037213321533002905884700382302179913494389990801502894603385520805664744284271153350617578278253895478219871496898525316846735924731961084250280541165547509253509896011199455192726772024235635289520271012411871319308660312286384931514648556626007913549074127708074808914570946164426722860103066809842674752307016601269436473695103712447909507055435734302354759383978306360397343326687731949292144072001243956951488494895625998659322142273843666733854554926908570920746080965339674572914244410025165408628391464490644068967321612935785893609647844403945209852663551148812943186478364434110770606964158964185706828373190214086450960581495569315014788446650264802570168243216208681671161094418576412656209380356014708152819750585905453138647611500005730591613326690982228115827568794051206402906962959118048799227142382711598376783922105425058785001433229788258847427286553469419179361129821830049787676181051437575015244326056324780126842251771718840874925298315147845572078662977836417464469369431487604300824029154677908253226854432489452099717744085784674184399897372549528636136692389147455354935118371354772287144915355047190314586162758834397151482619859115881588238539401357239618638004284382326965064726220378274466158428953886821967423105223516196935908075130945554570208825931084536162094694678452634801198584675283472674040412447940165342432235695577506949523904995149772778679374804800130125179200367678372581041379939645564262699257391209157109143345178344834588861099763122901432550006273315481654063137611599021195134737133251849354689457317553298890953345071579608482513813272033905852269444844585197885925897712027214145582149680891887792351991109224344184087117174081818581593744219240161438980941402657602210082756736686803178051267341682620297517096390829064544568971339924508485280488839995513707008326317017458218976923080572824407177061485418643229531918887001811308559384031914160004854523553658265866773745722605285089696850966057704367357365217103622519352767310696136592968698405459131618822554658654839845121442095510260183966367562439305466037961920403389060441836544947210286714576420332630628701698861860608727746092283327129272399095798428484188231100220413675522009624086364421858929479803346351411870915423109528896663042985625391478423937644151791519599059875596838154272326024952159562392900660077957871570751308068561325699497279480637541210296213937944265265988246561078806206096412063293543703927686490226311580722520711829663552245989989965441204287665239903588244125696694598781348788049475163360488987126009932442777624938888110145605830041070697658995335003847882403492168636900490488430214725061206149033524114618635034374176128492785154290760899855897465373532933111106822359293271118740742854700584715757247066531844783168912137819809008228148712272668730342282589959616667338721044317463204469866376827894668290086682333964384712739517160890937858640341371263233894953446401061004283403223993033660808513252501932252934934747010045107750311990291369454714390731579662814302143102882644481679735793119301672743006328496536230934510302119729729951376721941445982259080926403525060371908723958675870246148757656364145236756043261527690365617496231401438284667311668941674381888086976181683711837808310997601436367960585791484645227322558211523435518902103616002180843643170399897659421297143786967326581888394253880978838625506574939511131174911952712510169574625189637433807464456409480728219811721465448919338833784785586441142198609460144940150897097448846868408553835975286776997655532061171991167188832197795731382013627862463854226852696025895648648580830103067579591978936772759623800342111530689362006802015901139724192301581954902931472878121402469739022949485868268775095496422597066549657217173048346279759511554358829306361441589377217864606035093312011864716775904085478475089691584689682637722595718623638462588505420037526762766170974389256844401710196091658923264598547085330503603172338204616827999694297695431005525164960677586078305986122272574138040736013172365323970886436936193288347126131062568942423303665919278660067422491148719489836255084413157012823175801573840171987875135704104368226398451131087716529322484210606021948284598179094651864254858342307532274521005822830757552319910624695621892247565889875374444873647428931187260278073939367502497895941809555863332422810979934746209427919977035458303157817861988012696878366737534993700046433703759696945570003138248173930469073212293882770409539363454066194528593378685780086281404129470676054356873546324982256237034096241392985336760124484042091037028800618778910481379803553488160333088156842092216959831063237811022171595696220221960349315579979155854586608349718414436821213681991329735580233771811469886909080097702630860098573770564798275319448898451278400077608195125159578869588419086150076386286464869036396454442575449858483841802414323139597840904911551833770035206920650765002926371426891187068409013554738965927939367630953221210585357832757801605385924027990194900418558166214489431888940571994864396993180755627141144295077298835398673169746291752963525032848536603132476846358560910600752059758675666237951512425195859364767432635624629666025896849078839024930725913831611593736896360816243246375028165388650376023685181818815408175893759193441699912910948924277618853085199398615283527071868081954142662231054805497007953623267595806476659347127727286138467305649189944583671177430216684433601058580590842793543379231344129459215748090198957636038684749712800012603712839320227634047127820293588430382773126530937308736331090395947521456385355742936013949636872399819813919447486243350064666447356162958076079192510398667048802175541597711890752946919207201733280288756132152804449997801275212556536803301578000274888919981989786447527260811210872817932571934127730714599738100732904184641886915963613281381960970467298246490354843444653232951516834447048596714454170027011945212896154529524307350420646053256612699201081880699641149507610627743473200663533632119386010325433264826132915671404923256483130213275283809752028667452785159732287706471750098500892070804173750855330775335188787002908131077782065066688938173922196378408288788816301363913059911843604728171504101109025805432675911413162364319211342456959663262714432006544159705137072021151368731310655343490474673157142632296920240633123645507261837998139043036274171221579923812753826735206810041103748559640742001796690078908696751717194956284861412622361408544114509072255184632749502466526251098262003045453198128093242799663191551216835459673620665348228196651623901944504506955403305604026462564714723710950361920357633829204759386645233217093967729267791247218135361610348368742847336785179877724196152557025008543767519978094345484453830552837560598430996635031722693602461097799286300230396171788172581440716462701936777676721882604120332116537480506813444070365044960405887808611376499890084780038325507721723795101278760176832077944450725658954668881528396298899919855925379693300255763219863132726175704459333786622547941667996749598039877804104280333337806159600654431281298653438871651923297728434072592637447215047453742123435060913964846289246091083367076192963020012243297089002940044779636282912010755409466507324966633522292322822298462662070520954998117434902436378036903189882994986294419952834326527348121521399441579209327529793064655452792928318644925061632178132651622253932547002630321504285974808775411291226544446583224353357882685468604075993730169477880941081424407297160815247814393669213337289577261577634164244418282991667332377894593002748056124423288061738514142690809643183990605540134520120610694770987710768175242806254233092817334236726557976510523388990717685543779466901845739230803078021869357316310067645011589840364216651211119269726859516488973433976568867700594191962467319524969829253001748469522609835126888204297316962822426994914717349003909073689494869885424769025094124001975533376796620608179997351266025956880215244926004866606405309488872899162486983127023547178792785460501525977840811187129034275067361277703854203877233240367887286959749733896475061156938711510213475038802232398632282518067238289069116106338412824539878104680253678374797942984095556139661300976230168124423061584346173007621563630168969870909929348764473024452026060763555990802535810153412313600029045306021644920725356029255253025956789661247282230393770502064072539742535120741636317828657069345999438257572274819479278014579156758146337468169013763981072365511060992881515058513018795989273758649258252931551290538368123605244590832254144778479831358418058679023570453641682082585698421343951184380311181824661688422436279516489148396472366805916898237110574784321292823318572679268486979294897717152808380650991365696654485081561559465648712062662645575543871289742149557616944316545858334566475463854782147072524633745407837768084768176145715585108526814471522067552850659537676469550247031735142830306998107530664628030662530606384401210051423504894210093295461183659128618396045148957214686398967011339784997634599047427656260519609359776983644614338734139779366267614236617758334104945997842659596498236405232183287793039242797106991229439914655896514871024714267230203780958937061986199207274006024579461002220451217395764620293048619135310579774438056385477162131238973275398372760216135389243098768671848235673976567397311284100330173717753075371396225305117815865893430725967715920961127928505899684744612138425740768172098903700159061428158559330603101819005065953943231965157929025040155527106644301601919164786272960704491474752485860569074550498560210477469751485701341213084368885117254916399200710728351830652758297189373741823538201101324942594800899252166413941882580857764053450277377527017016411765347889698132218791592719792901495760982292032291755978409305132676281241864024379811220083060383885318452740151234146763662043595235699132252156083214696201654440973215476765011452976907372943127798354026510913133913932091220764512321928231284890735023894522296189684086382338291583657576926173205479262830545798702209692430867390412593833921564827457759417767864992093989862279547169880741960177643928435966778082438240868233248308694994046319980828630446442324458546064071909897103517194450586211146420625626613323998495552204004818145653533759003584082211607311126675337035655807833705037621442013091781909098963770297546328580266262987146042730291413050945157863158813602101362200499668260951610658857220948431979431318325899494922818654199595607873966878185644814138658201126795994058939442656711618218340969797904721494424506043681787143831253158703374634002716084529962899596922210873206887878896982084108573061355867185254624286475942781395505493483654528425719787267360269246248583957338184777419680311896662743854431765383711120711796917059694009675786228051559275380053305915147902948055468756312635376998945178415076585720924699125144341860370760778869198290433957800558299521696878649200853074104761387205834588238615249760837513169230420622003139155258155965007650060765634606443448935005004042320643372795319352743546255539469365768600207368292044194256043327452541702059885145656720968688084702012205539986384636355845659079939096273349301850043704637713677119432743367339405108739677433492817816051564535299099095921031201225461276790336782191473401727343345935403647148606817132775159127384941148731343970340909299656214180484334482738090109235374168124775255630693270628472745740321093965416400404230020462778659200373245339638026324218086666583496699854850841158990997956177841648980144483249767490466820457936952195126892065273104264643034627313831626895145838956713381916718970942833236669332478939276793956162912270492376636036941239259915570077570929264399439261444004778873087112136002395273333392907391148541926245474123245014168827173401604650902582090344909672338181163886162557355410054073703059101525948821861299207783442795717622329948258532710087224890252795631296864809091444939548142507523098696644700383562031489301083584376324557655379507402368602699297110789982670603882611716813714202430132811832632272138255011757939243170439611214484609310755989828543794368151177596944693437129594099038292598446277511958221914544511255822186410724634729592930238469702895663917575825302623219658460884848576039704621250557557092285223866642368476126639226978353306751730036983107214626452178745859824104073325600218691312047899923797992509465519045174691257595562425376074463777851442366237825024737669397887344064303083569098535843141640109605789996525365405509291432553987264065609601769934051644521809030938235821073855342559633318937697144750223587180623939438028296644024585088320754425733724796698107346968903524865792141447694293207134138541974937702155182280958049054846881084876914909118453778353676385526282195143343200303171104368811090150036020279140193633470176259206958050517304087635325515557711775877225467860806231979243227411064261032361257502970316617727954023066268713292930317668477924482869328277370369629257479348867351303662363083741806888416479527964658549543113071510264404553093700173338498960272702693438938879209745771550412754781303087114489009533563114237565948549879535183934719401229901144588621285654975038129632356362227388746085384537211281814986412478079106765175077287014368048179237615527547451745463845623476701865807894084264604478767591477379791316979993857875696640417093504726879663606623538873462973568427845229995232973473840019070797611404992536519272425971538961913189874767592480266068531902539038888938870455325517929738145309301010531360487013054416340218065237581204808994410271100906446732580114741033935155031006160691732297425114659972052469481076242986926255474022149237305592626174056135435086399651405812399315370830840378352345804399575243644924455214801533854507267866054267807107632815333419005505638678411465475947111616101023692903984984278309450944815145993658845961476113598273516519380293018878644633602113356248646947152398074289051665884081172994537029245202049938623061242806338481553387852053106358580955451920401040408933058377883053333015558283683102820495630452123123466419727259049940266246171265947452278781454997402377451803096074514222425116313961930885192954110639343057910468492700515530076578418323093409169215525832900901810800226014446421522086730175701123445175641755171614689820226512135125101054808345884005298320894163045646645324107703061246534275101245736634151922050699029029997520704610774034182949505567261896115883224971806239380453843244482446572489287697202446812059240083708961224695416225845856065674886431503821842663273356490822537922721937704577459925436350678256362771547169167890870031309350547586525653470335085509706281144212743907183857629548411914699242940514827253440056917900373673999829457735660681236569451644538451806673831969624443898990316981795625370473631783768784139272295143573307535609691955819940204531305881387842413206648500173338485606268966929328641228426777757170588560617982953112971707120679567407057363093319064096459661369252835737401235102016474241625157095957562494568441258475123763418670882238789088357052210400420980109228011151907127416551882544203680086571231831891630913762978176460042633558761253129330263845600343886035226868819398611801293997879896071952974762002314800385624236228832455498627147511257593851852995949353741731720369277423297985640789277283880085193898981865724731968598599181544249339220692156427101367911487105317593044175997056041798068863626771970694233303142107232721862901413085979648961734974876504972783459445304413668067784717259976409524966001366297131856688013897194128406339396210492742437313625306501286557715983351931019666677031379324472165939607756198431575164516549774453728383276323807988527007842694493830544598204699895351301807106942453058831901301961324179936540925717302327333817704937582912833632596281958326313087546972998350182598832954148860809918883239334055692134779547415258709299945958321215627712439187999937855231917201055327456580163545753807348215119974166012680171155913618159585204025035067994215660935630007712200064015203293616127260806074475844749621823470224612091599325763354954803831376606464373723468458677675223138130361751495673565404309951065756623327200548025896260979994925001437132143594442091125191693622271306540498161153827077201771130992316902747324990316625950466769514506852023985719503953171728189267117975414927066865845501102910929841706854509046257132987176141162818996575741394056338035933777527016981461479575469294830005387846282873069947636138457363444030471353215507214062958786801030237022430807502647572721121061566233712404463411087790010599596458356774181584148059308035045017845175301108956308551054478836522570950469020417257256777540613450908519439656993876777342870139688549669251127196939489955780505626983041748637180340498890298811498769402856656015931212349265739062657662827456608072498169794581846493569101188900331343056326170957614536897114991380459920381554394520217818042110544830284556799186383239406847474127744372979706070107485908999423414635603563517307672113908591682991928041326822270856535641853120139390504627008387522633180138448344507895315532125275902648155035631611480175171080250723903899507970068169251601341263892751220662652138103151493892274251266636641285001398378124515451099850215773496336144984875046871670814443440687826267292892138971465494139961787055458248464252640829834435892222340272955813852471609158114279581311678472303333309159530575473961822499949338637757382543858102534582386922666168797327941667233982322322365011199095383957025524517218242347671194280616878374634917681343876020230780392582291030749428576785298810481052183230176677371525748612782041539177429078170593216598328918764734321043441516244588143908385269821423440524829977097805109538522913369769021832940081411287491752192194263415265932550985860861093999618922225227122174978407057051346490365959832534714431831764080956385633945422009429185584448486607125129561887788611918699187922246096192511875108505209633863131229741116047575657784814900303817937014734340496558977590260611179148364634851867954403097772017522380679047865335062328178606644461725176433705087902708891473456982826881159975607905389794619942742664728026404748316013219190569766549315891152579275771503908009381699713371101804945799647245276321342937293678300471903377169495310310332214473024634520608721388250228852883844041611059783190904330626886211905638231189999452382846084910641793040327014809720734425302840940104162380659795710215065748350995873523701867300106624150397839754678269084820732061713011632353061564501718861018012709939982747369581513027333976565864971453630815562884473683337717087236265233715689165932393295332092243918463414919962557787147943272108108708604724694199568285254902711759472059110786083660622145080119359162762521821551875058688833201717155233378217223505657166800746239132830114964532575661157761959087906173649067704193111131316236346307757989392948889863929562759218368064630393134838392565688991525125990931629230673437532619099005753354876680515210827121821597159110433940342486727536139807778067428796855149150844061255936716512727888994108198386712015695387554278545083451131321633467921794372570016323979614481826391282387806744198609059835936947900493160919471431171687183928595613581423482199742203036967133824380909096396550027805683407457791086080511210475149340590366183239265358109399871851281119343083641321440891394125448061432447547073480550076678542706127124249633229626986280238030884353001687229809537616900366107976707700761289271003166430479463783370993573604737460511615953333647219750195145290306749567198162452980493164810164380735948389379055725639144307536365385715135849938518351833963983825263580981371512552758406106954895419555217610450356944174766749843010369031308461729337436311133007212371141884982114402251164467922182409680837228152909672973399999438700348844949501720400536348431877806810564796449944973627908422291565923158919047058427636389227080120126809173744707061113756512728667518241534999660855797597986845498046110972396516781044974050086659340786680842200383557877774831527252557538961291705883123843363713308721086797494683137222926690117000798804730479233650591364623940962540829638705290394227283215742126723834916495346081088388856578277354940561514824421398861105867061133956552111136923344573646590868847988737502822818700843489039059982146820604636252927752189503455661101474052319418867052206760168093476262165745033995367449953992639562320455691184796545619494675821625674217692362816303714733933471467437939339573117917887425295541031522704155079991188891468823721549850942223966667793302974270825679361746601850680833079593517940401576004587155221952823217741865046408603238612356683883072799705689295616832674750634777780166693159386698015175311792623523506568850756987294790135323060033207073812912433041425535969403020413195575969579135192575433610231693519986447385007552031958367567830414582611824669747252032217746708515229945110701311575142776488712682318947294011553015619012267975289045249864048539303225636534783343214574740166207156116766685698153671107213395403217660679728913683134019398482701613178930913265919414003519695485613931471750025375700239536463013450275604175062056312241828179237066196530158131569031499452293563118258429633855813753971555523565110898901135541500479146435154841349493096689995011164276518104332819616664205999553141273283582447384097858636945682932074938744131722542415773054524554960481004566676963683938200861151172174995512888443498878777964064885687090383725762721428869801792595462193943982695050259293404292814687556824386265228775261245010756143985144930129686274262590179550229331497834121269736263296209555863885963541419169933277011553749391379031601232534509485755097180969909025034421405836164634418010812596981897293755307379399765005481763000693394757439434175031870757160229925850883524740596774280196467816279237825372195975631239665294009077206544678969465159569472475133228757908595022705887525984413983850293482749209226038313642031350205843265018743642541911106557510235544801875643443809855920460315837601304312176717377939119479889190949808353728602104411889021587351128421320877043267794016819469836095603380210682612999023058255501432801473501887939646987148578315796367700461174277239485314686931918294576427657060336247796306226843215433916624193488604980876577428887046857325721766153194188145219500947357890756601441888951533077366919846572137094044659721920110368260544002509606929947359956834049623125991369787699827770911786600520129648225257785316794748755705068047924793143106791812254935743476346674633993773815484493787258114584719907729621538915259336993368220444868653204290270780121501068723093840860324357561879781466896711910635206610525755485995645895184970248705888178717516751129088784279220099156083393587609951178688968247900917545525455918604954678011325109045016441340287578554873382659214037260516608008020334643311413164519694790323760889861603197465072237523278737228098003939652015111180192058766391522708813139286992417550769021219702544859919213497866276176205524300470443941250744129528563297722311140503397955783069057456454090234566782362417274375705433990111658170486230789369949059206275749468783126164606089530341566706124990702019723550708324194452815767239352270974042468435236435156436707894719892280417042517752258944632298693105665114448214141493059842843548092579141768213806799704805234643530441162458135389406444720403764770803885632570808969170575539686382279920378008930769294770160790341736412582151919920527390730286030559348639387634957552113548865374712345813820251760892705287595611016275436013674308173956581731247005770707731079823365716037361730415247608379818476154068361290472710070502117720869896395021368222264207329511574595061879595799768924969169156612935918591106804908744351013465827218416926729400664749905795350622599914133954738797150003220564111101597539470102019422603996620936387784225066932059045194538260069343837941691757355306121051141458964721471727672354395825913356980122381836349083348024910040084417670675822208130980232645665323042507695354026411006120291194086043493840750106876328345938046113350944516689864848673810087439717070115492530608120008659789859005953026818878282262437657828538584063563667276156032637343514188588236439128773266656337243319412884991140239365435350888148891567372128755054967011739561992122677190042328241163772749037908471963808873010046304991647245080684861507291380573771769564616915163159224955027011569844660922292725706742931570216915662803576258349956781102652956732820088847242043035655538102350283539081266499740454545698242608381928031466967198885199363601958691640045920677549529437222037010033129572480088120110594927280889283982453673674419285577200377285715660902950865002711489309766976239720160982755807680282154409118900655160397608605149514431058786853250217584325440664640547037893311713190642162246296081694137481027653914066140704470819358390441139101010369770868995071858978046356216414304597718630309175187758602594079922114461163775202124905442263165898719582819808095123232287179685288702512124004327894235259079784818320562812297137154866402729060577671695335132544744475695556189146234063896366842071393507361815279811590606721613343740822912810938291556971439762094784588036962758664421175247214443698969766052970892764983243100072573015817041199163551612886402992279825257067260739990503134109279625286920346449300293446684934999284290513914343556582984152883562208647866804469000277538682848130050333728917469875041555641148912804159006721628519902239807846465905708202102548790752289418964491828360374205459566459460856584141495559320735484684480249158389701937424737230571014015468430079817418855561667626147877486013320616870592170343423239471891372086869042457789955624441685462962576034923975974390980795607913052839474006519846548024827420827849782415043913239884241978303417556017248983957984648481798790735488957818855921966695190412462012120041046176398437701586536346165871071968784435939940895718403651549496870351376318955456229903284214040141800603991494872506793920006542531369788367097274673868555572677522540931285240782294458828037369143623314470096869249520476529941837849023525011459889893587143037944632444307032931870415180072671500854726911189224969400812341306116611423623114688693363411872011557784227705833734688936957835267683441951688255838391989143874764618563101346042879898719748539779888640754397343074156541934085481075086919613853769094085514081872729774868150928628673803215243452350528259194977451282861320696294909485407593351544628067277973306113135541193326823118911690941215473172152231058614629787764015037331498910864094883923807252166043464664373836326305779762341237453382527007490498648316632662925824771837399469898598838967888179261320682191309245662990305318286912264843967698035135932437853983841028057171693826675195376448705371385202311711662049845999635898263330781865575941821370621767235380585061074087490910904033885342282762211029587887302050297024473699193625931013796323881679604286610752694851260340261113723227666357567364193355557358486914707708721500460679533127941274019313694200260315483451554790338743688796967432684702125168686976074783308996303681972068736767858839247271199134739724343176164509069245599481805615806960748007068947548367962161867461282859205087592410796876613814882696272386478221433067979227534752937919465689891143922763438674745824426771870193667102897422564926427159260789941498761582079543822512366802823559678070795604230107374433780039449341119962819644306685082999434778958970726011011286659439140285824277938859566838132169406457039166528331982046860263723270314021382026136716446630695964660688444870846537083337074322359980060511711315438586580862608387180448168805454157414539804272381595298064109122568057881770306596777909217260583877593139194396514459607866802517730276730210663732740064032845089543893659439374900907739557170550874250116291929290336812020888198731816603047822043030510306856068471901340909547573834494151025294871616926761277357437821458486349357958800239561354333768852380022024994736236311796439606772209992741343933901897113985645486863572453339407720101985999628437829909875512296040464177050609076129463025317606501689716675831303261308457408204654047896425012270590073304694202498566239837106321219776212805436772737924595910738015961814452129188995265184973121539772665729543622680524269766139556033978956717482981444671629636024680203359332749433896635896945705005638492416190586529713210075612759721082965720464519636158211063241142698688933347426127223325478944646981368979801582394791712669277044673267048751785046683317447374398719519836786225381881319653590165139630469832096489448864279108718982185438511055328628511446617124939725198576893992055057144788515029911650469449099910392042849432663926965417015544006893642821545259257225693952545280883942546934686669910231509621177811905986456356122404122788512147828778902926466491111064992425197073384512622463409138396948265667799303747846038072631896846765382096021759512364767192943409517712738107404826327070740960151168389311484901673517980505298562467234746320230281770755290903990326050869427400544830683577352220892664986298250884768770425711939816527760382920742961804515774638650395605873512788852491318038038108394219251261186830373023129961647505326341758658390519801511758042583028682703535504393815647648024683223756035837531183839963179587531634085003809996020420789790504631843400054690680893314816319041547140191338030354280692309454442515723035656825424338060861941905173778126880326888971651876577811190647352580094270261781107430669120564761917416480756783270492654647540051414838002133133711965467111366956267539220516795475448565375431003696485668966031702350324052799181825887508768057913607655511875782128222693478055584174055875538630618566385449105514840218308090286721094457227103160233235643993347902392740296379372707715862676281412560680399336540067173205503482000464262086517003180167857330561648862046664118148904352712034089434167675458348320277255121836919957509576257945791861852110596100758224700797471750103647088180793991307270115372612399391771865034174741922392723342008956091016664106397347325731396149500099957552389288707334759571966795164766253924839131886127141812157078608270366930331168536864638213595729609097143272852057161456350245490951820841505436476886867631142608983147635788925132346293363720225883236203227090567563305775341127532378551019979234497650375902471765340895759166345330605955216125630392228429778868349620400699164669886328879202259346954881960288626585432411135526715069620361316078433605532645963945891275953086021395361102974667894818447636158827442400671775884247413724658954259941210292108177824966936539145907864937847042816667953297631780249831840131100436304588754193683625277440700065328450393827824290761841719338121007381986001056133125810538428881696615925774637523413495665626917506204201555877468486827134189266616565255724364908534325358111399777663942337559072538406308472730753147819738824802808897735831295193717573461220295430892556300267771317328392008515291745890688507939566347373411250932671229856585157662638069755456878281123544376500165649278841094709001077566356233400001677314344485500529084858266447551283544718799801963145886716316535186697708814433064495283077337581226672373293586138087137439029654071158433674553857493586442245628748387260892502093023713835539000399833879950218288369187903337433290584033100932953094336518019898709019871216934922772614992336634303353641479716128839994935849003208538496249551093840160858382342064281272457225724864068986769773323813713284464697067208040088069813540905549417993708452050167988411602958230225579498206609442458547953912167299971604520447833246161983930533663809328289401709071520654238809887508301797534084024212791932454210214797405104139067601436671231531091746234897891998058723516756923198299536896077467802042821206296482767122928681657283979851388038532726357472521591926036604834747813755394955740051578116074094358953551541434047042437190722798062989821672056984684929118845499300842930482447302127440928101045618411343923801633041398897662804204901046233932381010507622433215941257942302861583367262891557766228034882423963064643742589753244558327767782483856893560168653847207124323648828907717231494037065300502428534540291752983108611660106078905897876835162084551963586966435671024230597124549784481867833085602904209585145396238104112309062854648770789682665880440142659714005617948842599675619376091239245063545660370758955022507624881743793700649064689302697456195800085315106248160891408848744419770710938510014773334340719615633390861932838304345082591064217886411204189006694744189723572059990289047194306063564774067273010190785722441531625738415876221759030145354371523615982175393545503482822530758829751392073411077517492064776659220306955382608514041173643544900640058080015161586224699712886585882200570606459709042336536040614832561579706500614118556164419317323098861417104528125836856912614351691214993305496185637746071880487932618272196770010170976942797148898629962887879049355430197070683902577771500573298890246957131187874513658453519376623381214195264128489657126870827134927705747850567184973297075224452408522160037351745779029445221660860982303381523453649461697983518985506116052160160188701945610675827202317731336644528333267972147495916566057531781050173298809330779792184780361473206337572163534898374255407442464480046368944041392303189721483338081905061546013346107834128259762669988483407280131637069088446418831622286377434901813899231216703658236990985967576891279906933538395417801860666179775293908619653760837904126530022138882455270198811735991549096088820542240672257498653237641506055978288875160858611752000437923198659473355352142585240957450411163123152394393974671306383928186208820200824245441337149166685446887383723210607547445216135416462670471958638739950502463169094647514738613385995536943984102205807619754411690642008193090541902056238879427467740845901125934063360800222588240181582059658766360219074372768277525560095566705954445443403447566033555308566208457133995647494606099617952883415616456097393931036635536378220415452311622648278529433826945292261743565478049102909060568794180534367739279961128790367648661241750286865036799088357247151359029228912621794631968993286843667474265420387104493400068000312219839577392960411236235203392338100511367446203463443211802966852320785363995099166523244012364189163250378217847863804503878549477880370413919553716954803126415727899218310064917312110760474756633248921060085418384881554557924908385441651336727581589868817343366143474134061762527347039844257718004328309196146730866771883293883311431308205019452117086068147798630037177493177247554816430482418926839673337574723952149859040722789591887489341137632968812610711889811001242595955518498190930734295599929763448349938857550993500305121491682856167668144371688660084076454880253082895943968658069652903376075222221948898311142139043989976056498283710292095316954750795002636615774741488628687662858930170591325599256979961699437121710276877915157116856664832596316545335219063016727720240811667731546991019902222649924790310179603633694551679438697275526451020810867537311519476641861847124465526280546649284412902587953422118128302749446837316897751573312189963353714170856810058047034636385811177495884040603756098471914136395387018965963692378463088936471979427438509930966601072982125785900428952053188308508194130243745377934899264188805734330794385804394810146855069365490884218804009701678288991870697072436252119907308973339691106030205972778515426791600654310928867099589309904441209361129735161697698199301469105470843102719470216232814436267407130976794958496522908274691108361502439276317029548266137195424423715552337074432348856030041465576725395400898312275364379414901382607307177507450216078785835818222328021783874622461341271853482341379033269649655003171040904485048862029298134510789331991664482065986753211008740602384688301067774171021114569701807636921072831888695314412996947746001826186041081418950924647365998079677931282379430101981665572471254027096376525806200322632807268609145329830895423183876925161917170801018242354332995678214328790306576987338314808100898166931233718435196893708846148131203227639710069300622434845298462695153904197330480338970649226967249583248262121704053161183872266160897876327964961161113497144148873847531325638622224954943624030330315563333955297766334506336672668670572671606057197746150631927166913477312572841227466857515813855620424829229571182291415228475414855038340452834461087442538556665040857518990657021223921348515679164030431367188886315377041372694584182679547126316232817088017552534367565215914554031098837530574791552853799121087094620463218233931990346515216185587677675741313969307243544374398731788252745842299309571354437370714874682785350651914954339408881501342158306342680042996579018807952804418808904093751636724815114408110400138500023090006537856712843285281745318381658568479156449673177108603045885638777405637985894223953852614590018641685060134659268253026347624824832611671850133155939991492754445596536192530624790881416358248829877442366941363070712754824654627412898532775747321937835088262908503522714231420767660030118940160783884276584053228268838909390215139794526452521703611306029776650468390072601564021546697421763845367986696298805693976279897123125839932814302249244683962966360569791508478321531350045705416448021884468693546454760877764166138846686903774850424260936747763650478026496098618355080943190877693941749543324050352380136782170419531253944999610035272647410071502437907757370238038938277564980693691800048389285042067981689548655754740498528666459632799822160781992491729992422229962360242769197031600639318079778290409369197468889788449096663327028879657206045353882372071005803494601539077902260670595576000258439597160334224072307009491341813154803631257793869738712941580432857466083700499822457184897350402763861796476169093797967715034262280916546313584358051695455257156756226637475422677815794215923413028260352562455829483444280514346894985764059100311373011647306964633805467703315173970498022293592394939554079231766304917461375726241584336379024738045850600650828648879265273195138861010753192300118983799236627887755863657645840395724765114531749982413977170321215412559413474948839084386584298696425271463306994832739155809376083458436135943596629325932418757976568151750072044944792743535162099643444195737309615584239397540390111523614492217859338461094682722377309343964712558234209179443896809852844787585012756860060863743683690672227130370901685254970711656419245610222427365235228322878458760593780296441634845428709906202951047088259884621386112879574942443702285731905651156695179673736449750059364996319144358235888104930634173963066169808371128318155796779516149789363501649615322660175073739661495746916819181200071575927654217426322008171507240572748491652696206636389264291160962108995491599811265616191584556483402393589321604826275484118202784617159211438315364350509566663669563743647241944280783135048678952034059312289049696714700076358943444591603976499074025944803162264093093365762160584769059164650602427107784267860583758828103462144398622627705980483334351257534618041220802366515659025941667542983239905291477431823654295950201806037462452428791731156392839276633678225885638880224518764785061908986203291381434713400899726898806801404193211215897430157423185029044330497861952932782052476036682051957996681732805175228656423603628728462047232677961888540589635144695327673257390960256379127784636715802860599755837471026486936314306900353855350744073436434697875714077837878495527637499030388096145340778389894024075704815145529792572056127619415478302042204819967676732586578667594042252133432110636159217253481956169862544227381674116929677787059306549131196367381346976352119366487510311260041196953603011282910553962805870447719256097954282587049621939792908647691106302276989290928484740527943288255799246480231022811646209105084358607347685379321044686525028968474737475061951024363603206743756049455345751965819562992181791895344404788367084675137236046457380586245365951031011069634350129332400688898842988430996844681077349375462332518194706820256797166429456673968801467537086080085299946958665067255749405993421873976074287161270813520608303850968916281319076616534964638363050914105353540281357840689372666136031867359173878851785948065430428622759426648552796008698113209898422104236100994548604220000991863868757173040857672714109348924225947650123547891855265260678877266793184137626127892462934066019303617788818673405183575689390896672876294886576684697906219740833289884945294893508659027579539170369012740952553873367759956642618059377076718038604214637984565681850125620658181756773797825407498746595864722459390977401263609729485472567444814000469976660754060589036179552152514305208385652448585842373919607253398788518005175913193386103702115502296728973540227705411610567814237382785846189195686678584331417553227212075303284081855586117927495222402212727411104548082477871979085184298657977068292109722703561612758861622134251824967913875810982131181995253892326400430225634744331131270972976593516048982728391895947635647552422469409709904498687574256061498984663039602495084671934922019515263737645707994842349641914033031518624969627014315970742582800264836350221692897152542635795114176495691365821830113290628320261193035296302209987956843050680255559359298715207494253738422889172411905035409107781883882068201462610611450622317405333865198243696657396944703269965180474847842423047303012570904821481909775430349066948547028761104326725694648150554611890045564807479708126559326693654893662232202490068219883950849667001709359673232188986544091124571850138225645945317674100022737233074142482359659903333533444301786367766630886418138906595224392741585576002450586566053518408916391310681630214409456023430061515922272078496316042347198854991021635552752292880401704280858953157620181922629072561919876762175462583087838154508490411889419149348995959967153465426819512717837093475907101126839998499736884804276527214973926702343499337352648443962909800655037992331306224310668880671236369520312304671786670361761488728979703921488504622433581547465774461788133664251364109508596716293338620685973610347344795931934332719356796792127853680427363194301110697838895640041547616338305792584791492630163820290267720312530879982821317982978651853615174469037731521165584678544391669598281011838642569720100286184919671783960274753357621467548750991028560968765947169368267861637920236238455258905108074279457651448735686865290884066437164785677978552697238581641392512631732435661770596397374278263455988919783835557933312109097519171789433569395263852850830278172494029125940378678698253220311217116245395399793673737327476353776768753911205332986594507832930011112325732818234653626483885737418812275902900685736354116606037524587943865573109533871065959499700243878475997839608732550788059058573253953613913459845120851303658831710643824973204709860978370621421152354850136470659344221679649499490703778071814788938112624587200562808139741892085483335025634098243972954750675440849797929156213344874771349655946509474740648614816596312295496173451777608518461186050074304248959398460667502204631952185784891850146525680950944713692050532767359804354957392936077696631961028244105413824796122430827299630793344790484002237047312919448673120870392351682696339711494312501994945205922853906746642078668752814283290614557137155956317166385028819801863683239917568480219635850417582443958286189832551103973542727257401476257715293399475365549892087874287905484944556512896818650228347948017183996733906261439479565615928802765563750880791709979362105349504192818620985061511244341937196317100386444125381408248595711487396793273266086538203307513757334903843143883884223563397201463782157763197366403125307366756084930197938078803838658631481652565501446520112143722179755048963119496767265864262836751099332035593446916112336025219939561377009544510328464764302716441727913291965841455161504505303457961560247895163619355996744522725806453236646463028581040766125400417031403981902672852340427836974740239517798750344048045189598604467280005890371764310978597729833853732560428131456318771114259567142535495817914278439153299397404317385499429040813698826966717838585695064225929465215559330246026867433485097079822938014843015988300864245348285555971742176416033433657734170496136219929501679266381211558825800247162780036746650903806590900078235051009780622250556656349106280983992785245181485838891978502301665246900317204095807465048689544175384380244460005655549532956208068882972978191029264332624103268220609247730583877984765347723855157298898514833127485202322092980187790218240243155068375888444112232840435185329457859958502770197125539081406788117638675242966990867170906167411541250674099897736038311430980491299638302111498203561690457540207110997784333404753259403438740020821814217914020777522216080227602550390135987827015328568088063112998463207631181070183195237886441234536503271155219579637257520245197100216780800698581351954457014500967470371125489819872131395051359213256396823669174772835346682551296661432031020781988784018241773511583885434601394954004055998569747669893498354957008176672414493299007143805946068871111990710420618517325818674063268644044487024052792577063488728610244899547828334191968875402424409251442854424685494668075300415807544051102335688323924031523003999774940063771568924795996373982092156763938466477904093658910831697737738913105244783117553331991994880367814224447212212284427179750020847430793945254192281895517913215632732067390127759876020784353351057028202009114915092750037753017486759149649495821297043237729655748622174144634743160099672173475415003669506854557975321931033056195909621262687018685367225537370631404707569781935379427786668248865599228706932170738244046079552606893813621363177456659865684407994181319797416873651311395921967676142604536524333807211445211942158816472039503686103966741098996462978361778322993344467045828598150355542235422529653193461942382565553425208946118548357479356878559475343473375441012944465969445654369037548074347224179468584679656500574471464934601399557538530383617290252107681705764003203608493030083623779155849146516587391440830624895301047314250527282503442178696764688192882797025026581538306470352328166597884595903849929987410427677531234491304218479381167367962755748408440710118660173746496718653124707962967477151873269216327667072492000614571814149199838136415561761608973366942404554311604118425783189831346910072378035421675251861145431248514801448022314691174766061533034554751343175748730638573276358750394844113767224422977855717832771680037677854161360778820519340813020914781720795280146619516126074629007470401209705002394235882393798165139699553674410957535483793813617992304160994167761861247543944685057808710171216803968109144876714576452534776358216102616286808027290909058534832111274865486035654493971216090075078958787268558855628258112604385625431603122941775150299246926889922494273351103096815137254023121951666834418687668264694059429007256945131911787727079572643318488243849484793522395063580150854006970722974734720386597497312601371884198430101163034178756700538362980025114914009196805857114227387855739598942838767318882085421455807751096191211574479902213569493310986983574265926301195694437362579006078497293318491164587929673374968900872744727304704632585685971857020040320701693833164649121455580862031760325364470748252677721195440029569414821247957667986000342584424026036494731116869655018985425171465171467071520704655383962478762355207731885475638011448028692057919769097087853976009531608054868182662854430508954543289297650711394067022210689662696895879805606474535418111761575813203898585865421476559860656183065428681725469984894108324140504022889033555519500008770207899331252658732495230219144451272989072781033604369067790533995785404567342859364718548323024122633217665431740620926026646750385568541953227242815859093812072608416082724341004066728305970896173804582312180788572237420285762024538108175371062911334984346772361016670612689635466402444463340810451969052130361669365496816779883457441412266244277056016080381323117334911979620286210153729232434546568086810131639976025703670270673835587467771413017337565289506642116886961527720357761611460961741002298050790475517955057152564517098307230665705501254065393933685017965516671484560065625627946415321864553756217332365002746783951636553268734310606646228442396934677131389345886909621427627895303819148817554693612203058198745838581404792209649016564402706398658470788965728281841740622042119061102540405446364765811598844830460496211046167033823273446410131437135041145106259609495689161429670001349486180362610749633759207817985070400925251173769821473106987334847491575775863276537856817579698389202333573598336523301343431335299615583546950228676439061648756572478717079255959788731875917006506227287651459372975758019272471436679638869811205331025662052893234114818156973804945934554637063572804553648222216002684895657207477879398111156205275396997016785010512781554098042471140822076025656292066242147896256419677302176885448564377618201569653499178106940576877018027933782441085662658227132048064105035378720563453574334103088922833367939322428826482305936545139915602803302290146789489477559827458873886964554679585388633520031562913656192954142488206334199763849472569206281792966322172080206809630472027504775084298409166211659665248867082682040012272168688017941936750463814304698015706427471633250899389063106005254347543477155496953650653550808869404391298578546957132574251349909637373553381124861468754418285886995323236410623328991392390005865104414115804679210441061179008161267786462968586003442772526958216635903038654772586724029959052572147469184015114730129652731021078981293716166628298734334798770315858239615118970768523492477432756876686445992047549762814371336266722517258085474940262365507365000579471671557331769273438847336307700803733028943489871411149395400694478473558802075368306754564425270471741742417120700934371694615481849438760492395999934373639113097898536872968269214580218552055613322976171606126176862398543131450032002021995805153593175132240054704608857005700333462157016098901186603025165599045865664076094012506444776345814381502361355099241331147796253206883445589722277208970948891950894438574637391041352233514842189050488669152885829675904308217680048904673244384664869483862002534334568450993238090803154913243727733174073781922102332955091646936490349725468738658803158397575951009582877907643719061285587918469445738842979986375713399913407159594447147592324595141125022388443589826984693409395844064895605551024294034580739673428006256169229599732198481570871137779609070934265155416086974184895103037355200511939071372772138534402584268939379451979733535005644497870473093518962628344477684514607142426082535255851453383158472304518679354340333620506939815509897555866601013793293128662433958531489365113790883354091103591219870436785959485978715730617978171009160267640833369165400887007288614382419100795386008520159690060419193310903560929634169348202992424761135493020933597942642765630273999406513932779268832192373727788798397351142617550886401220458044584435674382628875982488024304190818922708466454011954950491117100500692232348208230710182164498216595499256971374444375324250246600746444729333002244884102457378533196530905987927737214026238978725961979154016942410114521296095645192947456907269455281930054090474312917286666216580192073337226568095266998035265664907415449462555410167561278367009725640421317548049264197203273291304482254143502169653551073227301050795138752481317177726065185579155069392587420104138921744435050864349952428792743690601059935067438386722174348321394554504552418657275205183361419450658424732556780946065218608094094167017984845343254934345139984169465866967887971467687246004410117103335757440521762841529980257829900438937264484622818774095318936797264351769762398775709630779145625268480745161062800487161174012328282489486893265999773122059021624572656612147003506744228306983825917928324103290470522714476347828308393983432775993147944444325858827979271716899631472607352437599026428257162107604564640385409716655587754456809351977111941205543818391020704087285561659957339708656084870332374799666241721618591942470473092944144306084507693886598530306390457292453411104181524366924481003684100028567435354173136874204735489061045781081659839047346083150470467327225341644780260686523197185172671249450147575454881929648462094627750454233352133496773004389496810635865636652096756869852320475604325773950359145232792004630711657343214608622066745642667792904959643499940975878419936179715784430057344637574050359033831294370423220965593184900509325997871245347952565113527233948811903079116214417266273392023395385585427972514284069895650705177386004380362882922769251818211929236684015709100685170528943798741137332567052585169599928400256974824576877518316686206553311213222758166481968171921309580626186827321042925826284042738499538937416648579961300277041826724270525209681825254386936249160040379904264963952105578013867770121236714609284825387216141344485672712707727819095597207507131421748633306172990665325961436422870944777548997245323977874691830619183648733456993016705473365151642162437414655397938946178036045576701298814883139382425653671505344956545354804794639078447402789292098718649152791387332417496629145576949179682833124594222851848946195474351371042554476973166743662227164917933643049060916187811691990361018584891267748280900476894867653992819512400700411596244839502513337104393133376864563614540807016203237562634031853093012601307722689841665955901136138346014428017245884588491653026311823206610436423664456830811780489251561142513382837299470695184958876234802885503374170491835462026148399297385325265633586731617739253389003245452361266776619258200785289884661519080121476437408167170155248102773179010156235461010674315847963647329290584175556638176581210113009685008170936192172226775293151488521233698006980914334272938925928665382269673617903980906520294241828011398021817541099673671956521228807178501953018815002893403931780443254279611780066582112544505977288812789292317402415904905306403318365597612113088461670424580680820136395528766342959826687330598737479898307472494764301293006147812474569869506899372259139737642673741298215774558767771344251655167804076274980710151207918613696345820867197179800940157704163168303744451039076947159816748060226126291152804375776373278797811214958678315487919716803289494853955412872373744856824691685465321347088193055226812696860257447479026425420126577462854523092787913809720688022892610762003322018105297587442137205734860464621206484370192428951689592099701979464862215385413377359448575550269085936235363062068407675613896923149665653460489677185750054268766760029488959821023858744595065757401431730871055385120220753066008024569105003319942480735438129631278331999387026169380059547558698888466043573876064403381556054839824979889843923457747351590004671049371648477678543668821984361520582720901589194916992976813877124706027800595355550658068548294641783176408059616194886078762313553793744434136905726625644607916222804943521905855855848526668666635619920387110531227971460535876885529576697036785403510506550805075868733121304284578161477407642811307491796931803829034005893909195402451056162452211048404362465956868412240498272259115371925776068061660787454273002371655974151511543435706475470033732666407379710112743749314360909260379779412606181287465830952534702320248951024338885309885642132062032148564982494433350187741847354970545516964954044305369588403919316033217877464635793640344222695186325133467731880321014938834341682297137129956944653558738217867620304839044416964135736186406208101026241000370866687375983568857200430826193184846969315390451965799008523390090195513382622775197887445538383624330395015854494608844608934532452414312337671668112713381642319397175691825589134002925057888609932586125391553737231642088677496491661630087999703010361729576216325055318543292660302613075013365249787551199358609220349086305551145138862521833030347588384592713364806511422347790808762584332266838191823371701175313825330368249696171665190465793024714401574460570915272897294933318871739009409626931038703945221395493474430172157182363256631475826510803965530981728713239324340455323996003477182758236058975970198657967604246603646305798768590704847826869044039275143724377344980987349383362556434265489250117560862835288561247496649741646518087299854068552624032995995759042434070624589907280283297448452154044512517253493975035164700344388524007552552089799638092271446075075123660602922325858310733745529620240035678391892538293726457994243779565532932131545575731365714162739446186648391224074381440747606766980444341982441630961799340152207246437699355670119833792175525316969387783226704673803947464160373244293629489406813419797755067045103955045102928991375220492875179577354438653074282086967518051821631913532748737906325889941345733302398995076434193420906700710061096351978661237383429100967755249621136819150606371770961865022026016358255650932945093259521480082019666406791122195789959497926211222538567461676499367519148758581954015979166970768340926399740613296087976097992693796327570946164220004575553108544461265609556659745686486531600293598937577063669490108283078589858358207939113862023466133931648028104932811925926997902612252080770580191837249920459115304117210973791119075811994888636554758811601332873383877002425264127297750390087468131538901722822270049929027539650352395645832504455789418167216031333152481780461342022630777166429667886195427178204118810968469539683613974723308138913705526411022622154130989267582123978126985560245355433380435418536185841857951582227555392769825524377575908869592822408256583632440941506345828699223870799761033806876234017498363139769940462436688175772133430173476011764295617702652670311076626342161628303429061561754726646535847890688648208852137784749607293952229883391177282271673342119775076175383633777508836793337602572164130318720167500802461128979166475622631968167446301592755760287022743222590958177676253738532333415917968217574706491482923202327718542176717327527043313791441238591624642862376719186124260233722950388512183509315150219609785576768306958414466919099645297168184270776151687931670585905041214643692672737459402374758960736367885876085387603709644565362660491310872043909143597161713718152408758072170988653993093445579144259556792779073200737742447058674705276710459011133663359562741808207029335272530768370821700434962088580231101077887295032231635156221903220239253869049907368582877880791588436671377830427946121950000426609484616055936309150971568431160904363927144342026603720716473717596434830084323421004617840352101528991554863776662989895023815411741125223011358503561644132405181501229825824547702097042902589915237527637002004148260876039285585366031564087046605189884046751354174660338077456180860716760369670266514039287112015473624778641805062602594514644358880625201961807420450950521417188299427496142499761275743907917187602465032418997737717872198736516784393030124423437601193701988486150186313224427768083331663821323834455648538346003073090580124845562053636997126086092326862238179600692157637873244557254501974910740335488093783413173451286317197870270427233732604197860392195606739343537875957495018082743774405944566323025626785813450324166532909348140495762280746502361499569849805685250369712231155942166550020591466463736828750719253736010907349530832313368186187643051223298801823869602741106023317170731034413113574029362917452960981476516940166578554740473824359056450877250404750420616603627647300437951762783459672100738311534839398861533299125300800512392182920170639661780865394317570265642210294318749013067137097301332953211808804961656449143319809812736157339978052667438942131264689933659506606505222475906302645051148404044832733984897417051855426090687993320417962560784459598654412124278954040607374448548397331510235826500918590824472910643096018882023856237634822915377953258243993661429088409719370816919682632257609523637554924120221302641896862908466415344766482373452927125499688147655195565021754122704312842467646408670020201814512461840647625122473663784031500562516575395487673929715558608363855953262435661490639406273101105088512681727538975101534559760720997191857852083449566304995132887631200439694611969807517095831385889072014961477345109479724140150385677651701770600031903738701013421476661104890369746801901983961062094768923565635257062045820545824150310312753438035678154764866803789773806978237015900751413947774164548896368089096405343983062774154567415136931607538484405881804432226562836138060038249773193565865790656166829706872411091616807762640174746553999642916157655704122321158437863502675483426766529764643844518425891130689791026773894990970466774068704292700883350614395798547976676133504262334018661125985745544810533430685496928068399894627325534640685623227120130221252670432595155285710215516069250675641834128833204074193824810350415657039667883015405738107328551037730362261164083411695630950128444367003653441692297464297738108760753082500539672443097917053787012801072243437439203109591940466365929107753723630548855539268485756303920644704047240582807932109324346193006198401476337500560211677154333982039634419525550606694232342364694344231695111546283453355172625543744803939350656406980412545545881258845634753453443725151147840146960584730361814504883924611132659470534669384598323413692359740505827521000034299383709438442285862979901661176305981805509174405406203135247703496199302430932103123795019261281822227689132670146520945350162323060037414513483321553784022560955617660993401362440553200192149338626196369680097758612316442668873118809443808524885293277093657103883890415435504095182001597392229186858614656056679404136550470819522466400657233428287460959948379988916255849576726891032635232978329680909645303382132355968053839805082726832246888062302983765393062749134758172239188998400553256957055626053482233647021150338746264450621456633924716114163757200354137694065859386577937796856490158035373127730830049562451433124009659522041612468229605081058717576833118063321791848438778065549237116328734480133180715433058979664381269024345028604065506855311058251517508537334424024499977224930282527477431012647393142857343386344162904481890474506734648820026546172662420806342477073232729270896883316545000656197371372178906198772729133864805687314099102626948473567929860454073195887695771419099092313775436380686348534737909718959930234649653039954350371894067753136384419687153873951621471795521421695882533915563392820720182552244680264914619955388064938698805181803566502131232414857563237367854157542380315589481737920398757639653027985162224842758785906996167027957775494715674189577901239383654108076753472486560564659251228559722136778843875183782730487516142894624606306182465107223311689939292221437899127259539093353353098861563154499128901371410801350697366794194512882254155463546969227325465650181584976367147960065225437573991149502795310763587960285862673033188496440245656181473130847831027171665727672545729473944119128415288322099084472426982523424664499820011490993150815334532932090667308681473723519403658419178904753602566838840692046096399835476809525420446426240937690871838431541694577657879948496037473749830597514232647015241169268490859879558348799820412932099425157141072544151688468646214674609403628774536543971290627676890152560517701861043113269002130435609173355096899951735333014901675636773440757807043344655238660310646390119334181999533079041658820420862553030379852631145512609720436109876576333231011488010427895929044879339689706704816056493045369074104299634033480641358431929945385785047959980381947330316767405695071599830586807891586134940828686784445347830941616502729295106716568946972379614698859606045338993265871816483020622421272296412877761339431188862700760761872888258802078719811141291540923142765984275075257719749276978088429006753175969284915204726062118109455237213107243369655876478646702944841984386266490902748488592184818343044443446453821881761725406649438291746735590425966770268988874946796522639637878535144865618034338049652181661650654454348380251821472576362852449478780794459299987528872954929038218928687955904352318599969242129229393147734491543232034285184495511331383433871243752649285348277427283143601300556637619804739838448490083188494316135991004140088734634556335987967066839614703806808615955554893772913400733680058983464312477635920519964429981097728801161511329134417467926515276378330194757426665430376206826424643008718468142128471333462789035975848263955142650610406947312401414023018790149036668952440331560685983615497860556266568060390247641157751496283826218555047234930261121052006816699093587484265189669017301966887513484132952473707720081282297281710892825963244375823947031885608733517019945595585146671695380364666934278151263999379573713030133778650847510201693538602257538684174600845693232564908243539746930378561620792338016340643234245779713388413361001304708458735193722975222963946811002092399585878184839481651278039146267171495129473764143041200326419603483320275083786017919411382665414165715915286605210179094294301019496174210413708607717011514748512097436919077390590927663366353355556739869474046935676665821780348255232352128774579352155479032790185487453950485379934413279465260876659063040587351093713365591487362616905726953817840039431073133517711195969465725775365232520970283877942312639706517317277161277342826646721370994726247998540420639079128341245266928573287552967271391160357638308449463386003399042315969466267540045241774333570322421055753591169420286777168683602645967116879673981454515295166639845609162141431592233786339480021160062912578286248956474271469370310517619013221411636284376749212929780145176902709053353280149336003039714728890924005235795226577420825983245460813338612922085343577174735958498580998694127889020227200936925618477276456786095811373154804556013441067265104272017305261036193408921182959311677251213876555356549545835388930222428727329025604201566155588544928222140757843950290200163430567897185725545145889796654685210836219665166480538442104781379224991787006951805429528202796758398255797430870695768488414262989329627363779958324442086981238691383137355052430687402627549564970595993025921092533957050989581732780898823079488099591048201797004943699197466155293824220358943911494414365653482396362436824766340353537425600139094772727248147905076379675027450541712659726977692948381452367963923374743367834268078667260013497624450735439024843762135631787347376378580527665553348109654750699836634797342322729848542412153403512063955117811738659962860783929022514550614184335356107902894397875474558552399024569930376966368492421358048284562839931826822779563922616598423103843745072480018931584573492049856412185359628810229649801737494712119239164394550470149938047247149560720899875495473703653856182926526930428430956691838503247118798006653281738064332808173738512041393170385030535333698022425238330287635959152104865458381223276766914402999928787071033561986800460446471311169874382148857856704142842282525889344458912289980416765653039316184197695865952284452578719071283014574730088020812219735643393681376022397869404532740418938673965636924456160748000070793509016686207541008362363357911750865248490087912963409560738518390940772146142450790128360066581471601492035872253795577307004378630291358813747325851297509297366979123342396778079933956736649120335926663407178229536663828754667829152135851101435247873427702777644648129398080036524004561285439270616602344938930727670360771622607130115893963250465005031983108621265091918460859362632834805254064381319663191573474188975606995993174401188244909785467585759345316648072995922868276877782268085915932686759121778327944589189405234883816860983936687227941658200010425105550038162811877988117653636616783985171480906869381903576841519720784515302221105794661738489932668309552276637810635439934252197899191707334714111236604575123395034159428607464106603740104090198232474445815198500165051870704516163785483999661575196231366964419345260750983371493748342736519062144508270935865802123738782432827431605712617970848616147665389825609020917804863517603988368477410382241526053085643584002149521756896490573193726259548183758147213860834297883711465608065142129515735522549353371338477877874329758241856012619800398456453387391656873753718496324503462915154471398837501107847135755773718429496340834452333049352158678354366034766336887440809161712956829667009598912938572870967086273894762837790672501409994372648649294894231283724833943651392950781693382234585646103395878637258669599316124290351033571314160806182300443062010769444691064915490042832757235181610290044461756979101910255080908979892988607598224245822406696859687613609304078890610300602722917193271231242673171458137763975629504137682141609225411073302680309873767436903391947279801445775011514818415887331864775228542134633392387830480324701217426967370100902728932191824130785581782567654621561154498394887801217891264546128515977485564469844619892742287136629815461074193272004263026871453214737185857468050888270172634605033563519333308226193257152836629089632917368343501057885412095299173930190507967851623193930335159391903155168483929550044543652524375021338088129303423840353635973391482425502927478653021822832596795570545921626818520201663380446610773918135696062640216736771465069709371843062763252713967393517394584891679886580397332040963325923810489565925942369002172599840369513675551246777658577315732220188431049799096539897365563441489854229916020991174490755826683659580573881654374082058828111328882442832280560022841405897035318502173746861918190216652391472627911313388678111205886213167030613677596286617093116641010474882182657476188375000474002727594234848407093584325565100636922515461358149096981553269478694726354541552258120145858720159316828662090089311514825019212522917487838993502017036430793946246831346087852176172582886192870275983945326941701416695082633655885320691207834634693458775950700293718181960984232944661045248523358768593693377558440381563741574375924977361858369042116977801257647527152050287795600133079904716462000566549093944690700678508599306295508414966615132060632180737456579266833991280380623830022142618679051639338630945432442958412617717769936701591069896590537948817965926395196419390158815165057448974167123328851766656977282543516966941229457022091718145561754542825301182514495118281039881605627661057000559518885850454670087998346174986177994609201300682853218043392709846197322327632115999919631007300924360704825426083071802454717138642732931185739919870417608277315332810627223373670342079986331425168022386909030933817589228620311170639137103840315202771184888664620249082322656589011924015382710214840135242738639787701960186141603336944152646507106298521309986783499337956514468972374716061287571310338374516877580229863585996040454010057407734517050789770190556277736145918961537378835074002946571188810108325127285148112496964514527739688866879436104826302904011936112156425042696100278965337809649825242605365637101440353679867051198953804329029121028782422189445974669755563093705936139386357803851072770350406066792198968376124143496214726429450885112918582099821832625610543003392285194782964959232247752331996029630752520366598919706286708017201460488561319268068388725242617719168053986605304303388648417408355862390019496290682360503055202782991328665767304834907542477098565140512224564800508190517376474515338514306386744423894470746279529118736223039686659198579655352720458301944865271970014547297421541408101433776664802498892478176459028146878956562653641450323619314278174175412750729013841484087555947744730075363188693506339932734821548653101938219394407691973126611296363543865073818668909823027634945493737669297690954787191551881188191804661510613304720188058896131418577954090529965791209095026023390695962167545784532252854060042877661078868653524163204502360720908504540090090201332445692555668318879365005195242530945130416114540975054146632165684074289354319703995290708368024771966037117330188622781422962556041674106843077561868912221593793398631882898629787358470984472688045640121735955431561294097497272301551791640401833144299450943893484422977654607462317508520304696747758294905752879875127619689444702488100236410166748446597648430249188696214217683990555378173385557299508965520530489538743531659786308597767820096408337929554252886916333269320875879028461098361204485632716231496785609984618244763864957056473147398048822109415995445097335997746397137098762420471275457851124421742525723203105483231273774797485338975302945357715267416399596807089358847406944703896245647679048532325920596320290525476277210515045506692003014012200830506202733252919661998176600436607621827941574907530383375911696989915594506190099337484883166666455090974882118696584913735573323973655180844266163890843161194665524000145599133047460726464194588840543924027198091145993098218286444789508577075101862919560911665774630133966976513977967931719657618832023036168962723794757423020222094601835666859964045253555997412915097634532905321000042077097619195651034583219696013223519075015647086332377532555683514897555684625154808669233801078474199360108460825630503804002003681689741474484487499744980855595288900218347055748171260723472379318270054778812659222529729944514024816502178004985339481577801346861839406938814297318752978340793725479378172095162359962208512456790054724720647792041962957758303541870126835647656611660704097591905210619372531220030994388191725904963043070349050392722685368032056297818000484447199117259853026830552423584623158110886244217473007300273260121196312653305464508500474106127802857197861200351771598634766624042273852066295728930379489926002785880075788330237485441843732066195774865401737201451463606585822622634112850080911316729138228375461714157301872812305580330511642132950347725581284731470309350955049146612471202958676087786451724817817350315975222788930124943977336021005791917467685430183563827379470303412333451015224522917197883384139273386878051055537109321560280325768980974711197558048574607044328911991866993384808784245497754426464390855455712948969756652042879614862700673730758783007371988109982638012565640185265212052514647004534961091891010129793249181675633807498096169536090038588733202036631323378943996510480469977585034832853281378811922641264991100938178694989246563866477840540111796501554385006365226241618136653947197822557371831706613789369863395947700987818361323105780170541021273082987811091209951471084375573291887623816618408644259919557883560221750894571291759283688784522214496298792356733988161536482198265189457538586728214905189702076005385491375057601060393371937429160821143444107024929187025524994767952933417844951189751340404341911386363329990716967889240662799008628759116939394695072140063092237810173787081614615026561561186425289634123128450693949586702386510321927381307693699532294615363105703536556420427552410920483315831484383486284300885782892062048095727786959331142923842871070155418480414231104683704234321425834490151895204087856920653725319399685985089781431350484304812753701369190406145586030804731522071765470922937740888161553898015854871463967957462030562984215812986722851128559846100162327070676465750729824431723578670824746169373259420681655794653085311496944013761719263017544735842521292701525779252689832461192634458759122545970736229166838983781591859353994492236977586441007653941754713285636509048837209673125838622036747165450663344160279426630984005104306466716347034215823996107779610771644125349151712683726456344346404791824873249786577180725180939401332097828800365182724443448764821876919281887449896763302191538872366499043732933537618618150479241294850116066722659814379361825668770970183199391323114718364515545076187771078579288165302031301587297586135851760494993383211949576628797491026246042524069872914406833363186986786205281217856064899163150264099799499987017051037513969444131375920977703392356217220507582337069855348549126213894257070069543131471831051547521152401585164875386553222995744609279310831437023746524429797314879904831645078345400544599478232768945345369347942513874615914343040637526298946428289945056725830390571086285733837452839727252792959833231003354151119168028115376734209021394757773370306719771825048740176459166221221831508314423351704699508455689384307102737499814669256865524556909941298043579377485210637568584291500383268122312899143714286670474062410041902942266428667329541208226312672748557053253890906287748659763665217344073088473077911927640024918025631005772180670880928660525796632659737151417134816296287842762587225864117527763871921476972148477128595290142613136777485414956372913250989528201724383798530042676496276634144903430851175059316437878701601946872058517713719532282884755174820988908393158040048508203893634169905891977389032016437491367846543560938916197918200523325176792842657079812698003131080522024411395809317386174898994670062205397915497655461551854425373595137855478881861774694178171237051423020726128323729951003327021679617187717634859458056401650064070754429485559627034566882717232453476771927778574999385219907668200689169903572002608094838921463933398652804405129812719806787644834689812911611281433902084725077171853315832215441518390030718284864093269207088927335886697405573640803771793249796779506859425849859676048684663357677399200840201168494966769513419199512935748580307180665627424142669038784809820382831041454469313604185418276255534994679528190438310606831325462146676138729310247690749599653946414167160329564883669181812524386322857285098509606441859949779300918039314115701249443430044169688261350089269099511916979374518498525263088561877215987954751257456066952366720063486854450271127502293689286205065155627227445633464054780585887978958109206299240964465638036750575873701915439770784783791363251992304699120707066563601449028187729329257371550801003047978821155352114368254826717119699608362404690612540657765739059983124229616793486471536983112123333817040409631167052685253838306473072422800166289505860456883381022286198668813214926649992749251451735893289256436036102182543058923628968943288398352611847794455550497861715871736665141776293837208223259200632057245834813234505506264226639185403188161652716007323081107791411754136605743115591388476862618323590441276017794812184579797829848835318520358080707630886291807438260429217553692614878343490413461943853640158761893780077807624371305717383670452056137656853684189796491291170283798127794889695125560236806820141984247212772949557355568666253060026843946278642984783257959657779389779621086714861433989918849915468397326280335116513929868078759356921096988739336095482884511717377805270296539101018233186300415685282491657043572193949478945366734525366810496435499779303194884860758429818806899860075241936435521460172435415984323895462758120965840795164306649840179070874254269863110347228628948810305685913963525194088093936652925276760771529248334203811819432892206878424736778736781749864550362523829169773642465345851013003695187923078667863012873109900997560821569453656444093524731333385329096449794385456060400895741224222972706367707752012670675412366721242483558638649135488658717585395865309733825113965285310346210847179166962568425089115223758529980138912373886250516910941549078107454092904242909299155575575266955891300352230854406744703940082540779056365822690895619309723757289308648467829747283841112601655503855842801432039889449690089486744615801501063996435403683695753891781652257880349960580189276535331157575658378190209010670470058236341411722091887490322879519033424021236454401886067913497881158029814071406834377832243677829633705587813900132904077731277820275484363192555150364341543366481783502249967575397112041910662840149137519389394127801012762403895137856548285520632534756166472319687329890423180484124307787830548735538299330722824630555411315228328112757290969208405266961921983557528817102920759152714423051663464558410360214606555754551735366563888594140583744132904314190758986639592551570164752341231164495047146702245418620730876451656184066234494961305981650400229109502379696777115941117506265714537630150356817139991154234601143386641256319255520070323421352989370719562367137673942351064483830017477025426979395454611986154166085151343343117071699224069140699302787345676730272286960208653706282167933860809629746513886961679452474651560235827477380131203191178118982877086577656850656865038861335295930576448350299612228097806169046325225316774215212340244126071122139066419766068885364964003966235155812594218220392636644592347841498082745662459789557526439012306732696893308759556855483230854042239755913418994553877521003345281616531475134089480279639531253854151419828492187627642865894261649169337125638322122674775016656688710748607348199657359137210544913913557584356911208104426209157630442771846030269679651693663016752473710994149622606268555614114537934163194691042551636306352173558762539541531638953286089189077733370682956000573281186655992698190764550789888429216575680355986902228636764414290971020958964281040949561951302937564231840073448601463894186816776187265432320357205132904473952573365034576194411045830492115721818265915718002854376318122729660546918811507379168753569101124410456479318931909691267938629119154472580130847735292890209562434637970463911616926622338450185891695198850502159268198149605389643171970926252708569318273247685824947574607132642262707773710700685081935885991274635258651067290323346791611625835066172294162760178650736656244218135229399795682125409472047873815857852638495738528269747186228149931889764925422172520389860553854523638418342886922480872813821681324335544244755298580680222644999283420815856168928586483343539736438294891430990815268214492170077165503188861727078226893588815011293735219908494531071015803738544848953862655791166447186959639710165782270588690684377429391916915750507064027882239824008486045040758326401203280429783647040754856640178627769937606314164375593187043448318368389266210192312696923940705013074755849761043348243846269326455788603004318934731934080717378115155471884886631603501870286102083801756170346292426203329665073874389235324141764936962454267052477493211307956326567766818021233227161178394606963781052906994006484878299626669021824676163906096587700888928250362030069385569818026795241890290709453166802017407391693810681021106946440658584132059673580054312625108324478698043394952777908500358642283104660034976573188431950751366647152218654011880579862531203976106300763245148079971609156764073481570190172011381024369744225574047428456794720491904153818989905695414242815731504620907147778760482540314020463623464353635822988792497994478915267441762981675125345306872130413618773552317545837822883646840616376755251735530510938479477269543728086884573230903845630711378810190529861809285955501372552761558492147282923346029124585690207210137239370889923373652157636176610147213805423673673835802028258039034241291955952663750318176195311523327507197293081081162275714954714090535649400406153611408669629989350216729075907542430101927230465447865192091167953503104303944830397806013805075798138011012454148619960264568214878675645918414007347677955922720628482433811989739536864824678401707326913123454312491513155091056680700993198499340420047870619911480712994239028659883229723253933892287971630841900609341584464488211985408325420526363545674241237757039235174179302108076314172437197275885247569450254883598833205559310879243083231761064465082413754699401206199346839579749666769866538419714432551547500557852810548467647587958637847910452511059312749343859660980439632875316556780292561257403878672877032284173626906920175165206494612919540724333832147199694316341889073013679748361519954384553286497405631054064768485202872298278198975348105774603876486951963480527826268348987101087592555717655078893066915800977841957939688071733036221213149349745982495838225118072076924501419425801743423923986192773351034548844306769991482979832762963613335042734558633221392982503495691152961581873354129421167541112002462789149734165875023093056765529093552699161605799582732058306672213835846176577872885297802278147552304050497282241992103560567241055113457544548350609273837165976359557478025939645356853002092753675312620655548226287395801509374878810908259958720538549243846604065692516906058775485307993098039233727937937072538144859796598622238527658344028754252508967139002574673395394625488325912833760890523315440764048487444226191473209829918542444842210891402894375120237353861105126496922589639728662799085958770731702494475622991544992427277805465803161321356869714417713681251669277564911258282199628952544535364513299358285349838809918843607429252878645321013339977544402391256285063193510139916838907713077010752141341839733364521627985972051948286021709079844803028934446192895928928117180439366168222871292733770385656778882796359754294550241826790888028861367853521374163558648804195310595026360919436840827257140775519664321509362006455234036609212230932768963698944081345680714043266833962216595922699973715249648026442318229746345308183502497841386627410964511051265661034492002418151943692014060762136503162476447057491235099386034128043562453479370232072224822985632216654178411744262264143016660231799680568651453772452733775787364839677321679505701330764756706564983059175691932308175211310432171695312712361112385069368857337895254158206851132066726258033159003336094839415479755414972772435863210879099410754554493731987005682970889463801181076107321469241468855863735564337935238061121449629876784101253129134181668272394998891538471020534558847548461415589360967136318854714870662253629224931980930479593283093639363433261934374934343166952296923568872914968739850685709417252590889568018437656474309739192304247613170058250395069292155589209637707173040853618364963242641212533524937313608932158957581153195091432650929164312095545133466360708611483383481164235476800917094343200734592264645642574506081505142026554391247171580989982695839957653669083501444188482184627667349188576011214187064399795904513339209248786581550264341528523960577896259362467503915290553683157314323972903892913753356646044834805476494719311490196942261344962884646174655999941305165720747303616052082998800568752255965664058362176867746901512072231969891990595116633922196272938150985537005742011520749731733602955776240831503714012007586121447611795383438093592253849588024326230535592556766610914597976075031679570855074538059108710503690156696521079149317073447668983096265596689337383640170362293850436763283274372929412944004547081996974330991066401718392664642144478800060671245428661026638236020923309271530615761252162146694375333181931101544619484460528856255564670026860477304093419304862068358456534923969183751191321778063263362602461511353882401435761757309867177568860810613567377370239425788809693821755019510510999274578941300496319699361688170400323223322214316789625438530418792141322059921967265625322806266772042374238307625390682569568649644768567436439806859742749303073142019182702146125093985262856040573074099207594186203972241851591789769249808826159894851262442598817242210501617162339732457225151861448945806470090682614254858127475602206470893051681380394861367431730856488940854632550416408028305929478507508662626880872222679402549102699658976214492292789794719196242291118110327195919999188699685277270115863037760535239106058141428447288302878010508874643983103888950848000823689337741530237506066227365466959282396079349578324451373720225928457450152651876163047686058313646984779028355405335200952819271495982424696205199657293791154177388059487203231552946552235814648472573243915163006754916043116343842933037682685408361898821536037928022863528958167350121799408799348854632825735982923552154958059831836616010895895267287361987361086044028516879517700996711191294243448216531689838204043332241896786694423245260319670657744149918650081237173032309460430339910260027303883260596270915371408578239121422017553529934352383374867602776876868389193261406535162787770858138215666189184940548702233849203219146371594232370539951606611083486480700192908602037268450467122067400606815277011801114746004779610775335887171629087828345584385449333832003608563288792708960852194932608903352746970810756312802215090491202645719918430920408579599263979240757167112085883326647854387356781891399261499100786220461965741681609867290371893003943761004704975958354715757183097405635666822682900229135924429170901238105990855553483929453098836332940482895962266387812668502349673138818404396436334919226834965571332040524828214892324941639652954920958701152806285231960364821700451130716632539164816301479626338128174491402632190877498598867137991346067908851141390195231252477342688635292414340543377403465765760705853120619303572500014656605651150972208914325663113413368920743730507381560327995181282593291740192184026066843488916577299925332777354248876938322999307325865793127881869076830043213702496909255108018952693166245448763130613697062366611096531518221088732272105822500142197955857732667695938517760897147856161286507239226291061322494326781016560804195899900528451826760718634895139159612622160297567371608053855716224742942931143987402544575170359875392447623858567464155828679566485466143057826863969322754452125081232787192890907115555554290726871115797661262073620147940581706634859805776929299927981675021306378653383491882602706221144915476207502987117800879124145239383472994435434353755532524596758027790852670644987177197917301632393646658686833717762964976185094208726136817685388590796462080996846292663054925907234669293758819910563436956598292145431772180863311715955636962950698445242503500034866152435354193044635269649263237479527888227348907746584081866048155078281648967611494889313836009266538316522487470692339198724848333303774338686574527746788756019649409705893425430615996900099084069869141703822866189350190315707614340580050090175594490376076538083635360175480167844169230565185187766904221033706685767952157794546453376993692470079803677971773283842626213948197741389224288769964606308480025876753897624434970276460683497101637958655755847678351764263171092649191053621790771089140709564661737385282822176601292689037619471173760441605069711910415960750934003523985054187765630246957099940408542813700095994008915057274346707999098311826497708280447835377318888542281811555263333648155672001954173242004154919640359721259696196975461667921213715948702710049739635656617929087647261383435151840192122115261948319070819908261394319994474204728208544413561102459681631862299435623415303481958095831557385801104078768104546181374923387392019154186986296701867413024976603967838651892554452423642278339197230417244896043365757212615022424519430374163369766775779166937843364003998568700838816579653664656222030162596836522618606298317212507351763139937786936273894786573367500949820699577764883262091069584039115626899511887686478847236699443292681918216404303677883995750676489618622175135222980792176922513472538886733895023277046984552225908902689324226799984133221088693859822396529336922070286640345671935978311888498520673029365081936630430133054173094252894684747297980505291031761880817152132620769564514023267678060120961913124190393733301542901336439506621962531440826770541911127099330607765030030403300891778077979790848333143821401917418370557385130395403871416285459825350524617248839359654344482086253597357994342895829004416193178077315247990616761677069747349690283282857792200793244030851350720892519214673258112753830609493755676819140352741104587716151907784914046678953686587308166884576473178449683193020915931994093365982866620724978093768130390119998591154931113987686615720150570106439952279498399798009912564462218109019127790153613787193056546429643244474598410579531040034529220427495096701401456908893893698133740734146610015311390070992658334074355104161868190085596728775577516345726834297848695954831583451004244458039869781210823232989566312474986582256554347027086170157974511309626620687951189653360074748018459368119123034080962158283430567619952612006027270924764842040231838691197857928439517935058632339420905769138654593954410045266635966778596385441598047400412312908227235904573965241508070232804992080757682647062258944054425625515097313122871534171836025600517569048707397493873861058542642503935244525467195860603149676346612613009091262477306283304411775910737274202186460632476418427867396282220418243636567395116123294500956352320359922668714598441599543877720399180470106083437607490950197861647657063905356271713605073772510811604945567610422820313123083620857291210554704099583173724130774281405962030995878880143579765998752819684057558453084372142923623117562762093066142755372846082933941741685253542235790697137572198126238933825251243450059834129458956663914413257282377931708298401799196185641726297791888632825757562510584486663570487244700010972566383126019741056881019210542655163869457185579353367323287347806332825188877814539218173780262312962515903264267013210656273243774057542283218007068622825652553878487086341957144816299626826241937332549411858380192280103732579460367210729493159013094879981155561573579225017665555644832112433078410851424627343313324434392251142170521396751630917968997178520125505590630616457023416483844496079089155056912721867912457427381424870007852691832566796667588657538226034547050030393892168993093422516219235853770268064725849519167493810351549639937878483899886646656311651898888685948168748370557062038881953465273701014442106887215375586973284559689724368519860587776983690145673213886674877018139234901078241605085880626265745762306530382742378146564148827933857452121662139659718272056713175036423406625316818998855753422981954449244647204664783522408964094268743246527496179611824147600038762147393482425545940574239887013972350476433561298029271189721740761996835370952166277456889122077393063324429065703183416148527352568370333993146671752262381580074997907424823412506028093830134755483919855110430928285843430139010385541928907473414085679443255701850242663368438499639378753276039390683431372864561140482664827344506652818754964295362415214561963792160538713460483940566696448840965452703280080528856120989207391998804253578850297117248793991515255563508443593241320608392174817027356400719647861192378895937270927427907110344837041842095938264480379540359704849853805052508138954926729430544499440362691700079021704345307472248451606707788900337996792822524043007175379565316704610265405679142102911522136548602761961967378902400311572654110261868028838316795625508251524902374605932123953806997496972514151543457007321262768639189650968096915330714065783611712114249023612026385686261508232023751484631330468029187207639278082637435790839528412999572908700792962203170045996683570793941216776610979885634596131923032910796184646162822103794436434574699694332206507994531457683539777510062809816718219021052228359789986944709050044227173084910407383059472610432619654161115787168888781820975125285158153662014626851869084463486380924225995258777372733321503214309149841103056633509789884947233886468477015464562150839234205143820489317539939834860247652185159832404235168231612135256754187619331490163634908490281170593824624748865730766929326156221936722158097181248749601990236465768562624334576383572998208084772747403120959762522833789691069250459251368867086305670330893497569410574677109725145582436787212722540725091472538476144843663811219906537979812544131979102999142242083048239740930346614823391216962384571503642972756442913564965172525572430705638574283359674333354188889538504848128188408507376415856119094825741157993746908420206738812421008469026505449529270261870046818843209398660998570152315387263577526126596037333909603519146809088342879552986169465128154756136381578880903174600994572172179183062675923889409699995561507774656056733356044384243765010157650715707006684584474517269711998519266973378523329578002046196558860773575732177464373948903824431596001785481698725390330329307616640220258333993136286082050854313529428400374290886588401429094540046822633918276299970758444747452991561693531749377430027432368294618694272722283756285269335394808574283550484993151877901916864804582559056452269316092802642196504239117594639225949153941615697066421433488517172567425211255721558158708363491966557342634803191679651202514449484524853978633704061025245634272332653044825049754081529348122694580665018442444178873551895494948380060228099589323260263211046418917079047299940205573016188656615704943520234747406394774448038302882097948029073602992001018907017530172181323702486896546530598869318776476603276647546014701986383459737701743582215676346183212599213061472690268114803046182516094320483259501357517713118770600525881885036461511537334584599467933574990367750831120226458460914016026063034687828672274394827687884967311797970262498507693608673211471910339505252955282667573247247583173561479860128421721867052994103220839912395967404330998902421821501690674121936734833531011388613207434704866735319439722660148290006186905827075480609982781149153695292573998659234054792812156402357798927243327777991199159002489725704437070327901908792359389547998162474096485510047008983382400567641635699257928024238531255778222921457965537612538786011369876869696785426387705195238240056891938083045155103222058390601402119919150324927468018398564969525951025764308441820062705984086095061753602504135853684513508402227106366733992121954215051942850585129089537688087063146811349256753860500806837696896485270216512305190527956378666491230347413203124479697514092903342675989637478079749794010122454277718870525603822887910667651148703978177279895032880407140778929202131959581968287046207002155104104840197073717087513964475998428603911992841172037863507955059107100900386500011387817555979943996196447450779931541104099616721139020383778895303121749546242076627690160851709017087055352612518021708831655568178315554478231226628480848887190239545340797492142257041779973825806172607333743946565078107554101914991244279162893080204313367444277131048865958950305082912652689002963964612365609533435432360822990846768224139259579846334050502766314347572634795096455838012907128137051769679009137839055772454605503299149682703073696876936736028480467199298155099291826815021441321094387454693543120993065966607946400177209520011333477557402729696553184244329690628642539829895694562703900348783644282594342914446081792595540842894717012553246708862226101606815725460793455229400635318182344033089146146837739089301282655498455294860077594930906325746913629095179719866427195062735527577019308921576448463411729689026827199220013466437562417425016260288600536108896154441123439903999567083583285446386651804529158848102825135392963108163268191765809648191322264484120403750334547365312334627496925044936619278295976166357908356188065309076983224749970773979256594829139505749717070130147186087519389429592936494400818964443429436501843233641656406840592343880581283549942718042476460453304435235937639763574444828747559999692798698896509443129284764456291121801887720355161563996809466576436367543090405456423051317058398788404597004585209153717393734898268817009158129770885541967615207330751224208394405877440019089960849579511104034862303693442364333579708391398304791392144615987658014047288593156544317087878379674861536364593705764137447568111964333445594739265717737129968941719163987254868084303874712336897723952471390328187201651407831188373653372770648118269962304858398415648532175158579449804091252131993026923686722761419846930841001611688820732561269320668316312694899539544651283514240479308540074272103736317291478194474828638886037554049483133731791855618573187634774322334898626689176757245098356523091036777570105532414585241253472810365758236849564550390837761255413501718481880907473600798038344663106301486514505762152923808684951402655692291160957460343928052022545651250128507795730700968468144351777654410616346551729117948035100043112180020889447511423958678129937939323735278647659483464169559247568448467105873809537485705269701807097947816198460807934036087172109794562959370462443422920895258651089942396103149376576034715489534065427609634751629246923522925227553783655314122817119112207471676895536882711148230700684767101751623150288035409245482154777880871760851100939407665609809946741217046335705296888713987320590415375716584633888112608179094043870858456601015322317812971723724095616982842927497404120820416163031877325254390394227465517692015493466282644929415765022658457091571381752228970102010227348331934583674424281514336698801608346938253978381734608185291343830450028927222841770434551458299340127583094099915276028120323467996435510793425256232524089304260125450928235512951053984368530315665749657848207003361173069702607413417847118322500834484483938532220688109073130467523050569509573869877621324845144144704531665300921301039936603599688536791966077296535602265710241159265938556863353525434719294018304466634771264921157334190797144367652513128629714000787740919041603664854944669110809797727010897763187938902583080556208598277360655894966097557703412051111564211903259852085120685458518625980236236338283068712338422308993425035584676804007419073578403900110810909070733645954666659258597123753953837592076542335485680010052982611524874673154225222322523315958775916081931421206499582105909603743567097222895200217540059051427232607640314996705119509909540390295110393662727818602067790303286809859216008205976516892913706411819792254790707156634946566185036941694718569128188890432453767910216702353371176903026950277728711258070934415023094310437032673392388044476138329237538207749093169449772429562935631264626525562174853368269648982072484590880145889682942695813256932215760465001725667680874030464084129934848429082458783400188376102721274806444998751509733380436077549572593752953244699076281762045766528547892845890313442693857143964464527956008873828343338767186787850094433244815751141199109906010348616361548530879830617003556711913190555270636231223280170651727870490016412673524170323972582385557780644390960255307298885607675309178807308663296604146453254471669669887859074192347085536507010994001010739805189187295811654879526871980518425262204328958089640649966645765130032590104798850221186811382527727925351133788404910748607032856534023420982046789931012000606384997992729379298821984904970892735202175847635141550980921939516891066774102550853584944725263047928878134673021716571526626720658731787594397112539505662509475165976480886820249835283142951054826973497358887243458406951000557782900717252709818986930794229149270237360754803048442274736767417744156900299744503428815485583170689090700105020729878525705503592171545027133707445611619504325288267774230493244586847594183067457885388068325693726189336894149852009989003043036972296642791482967455212024876699805762015045080673809233817466024797233501960741769797097724150383176856823913690771226961635680613196399898039074391408612801744493130915829772003305972508981262924107410923727917572111111818177298453823782975204463479686266215494004056011235647972796098010023895603355361984022499327060365175673024384569830273740901246893555325623500584883442302136571213794579936852513976154958958970513692703095331975310853101418585886848380173977778152998099039646471041588564752350958927394916500906486737634059702342516076732176034237193759787279925103758368254190183003230585739259634622096162575510656339972539564494176142891718848835603993508609708750489895606587666297269396802808051781722435501423459946698617444108571712516141020855532478160159241349687201229613547085941369338070912591562499022535876702542745088382978177286407426287123447173736954062711719528595820540926041980161398794579146951519219599724072776947355914942061100388556740304620244001011976423968864076127685005923356779165990609841673706515085909258277351294178711219617511432501021404633833058922447873633238092006997186315926889230015504544328029761247854936280313877262340200131410787089317786757939400310989048599499766533403120329317772126351960756200479690538301685644011819358306945808193567080559890001900242845213771125601492486747978951481170442228982019864741887913169315717739349722141949895859795346317150982857712906392352704926756503419682812273299469486045434595306963784535091735446024183674730600613059647088578616749668401260257074522637182988472227476721363466347172336051611204882355411873696938609040719329414110874169304832493948081872050866689101851697979766657205173349853013807914091702143046638309139406941226927847350476204074906631350741101404058645456419741293062705989199605460694092094037504485326950258742625200486399809135279576919222633842252649278650618086536539292087571693989259911137166834774332666366079962491944964312855749215771339125921742085892783140493395817230409761169595568596991995906286923912926557559467726822196920672630013078936835245066429101783478948774200200915396655981697792976304809638922531137760013372945481815430003178807209615636389819746399293970446053649460484681062808093694821502878169799511892849960505157057966214631724971600340273119669742821037087487694413222195727610064198356745384575638125056996595285207810697998068704111847839518737930361336693884255407138382390575031594369109908119824027460856697654607528708999433472576373081458940080523887728564717162364512372793827875708534091843887450991537910798564453664299675299515403704612795528997674094160997456967139484266415451744128495232054650607681958693700573192302996473472766600829979548357548374268506659970354700714994655754908549469003575940015182179837612925653049625919102048993414225761753075766052788307970047664245313429959606920141430184379731443350789834061745666342199867498037768973149560476865375439368702415315563937141653646642905233579318823718090949886193645861131121399128592740474683599811193588507004062878299250698475485781421182836547739305667737567389407991297051943135834222211780918061534652255109004225111224746694254641725687807078580155800122712614086971364093260949682400337784666541458835633079575036516876500766318421193867420094200610404237410164919570128145565024005991788917380184345647558291536648128561021683397365983656872114777518223267390055862178219659464202074821507798812033387528271593232441979316660599040567949773270120745374153558514477130053557791756122734038751180203013395372858470412795886147836189686500988956640921609295980332413669789240066708400628296622090608590005185948735689694328269806056858618560987625828129579566560864646668148140633959015649021282905623274952740815584788316452534839212236386516737805208716208429440625714490863503667401066469018340406515901733991980426308578228884995936386694115943606102223359688342383200719487096097319821190998569076354450954260291509393355050648083411849730829475993322573058350133058964040690159217016049165180872464881174951095679045612012565280080449662907749693586834649128508471184815936468172040133807697765428793006476290415563273291491942890298324904209873793744614608304168648206470840169756185086908490443173088221601832334325418568867328744751954294530460335132141628688700377753272822701415364435510444248552628611920925384759077634966715892030794161638844207959283652114434184534709144034467176895934616195665482347153691256161966481795970710240041901703008097073203494253348593492130823259506729465837283108985819181311235046862937921035724472813944510400935236846209529569910401305362895368464059590749878605522679429961203466120459457776708060772787776823575614866796302942899399533159952302751228799196363758957628996459590472292424865283236363781681750742172907066253467479148721811620730453674986664424284155742604438520802149067172790697401793817225987780949097902216297489147723082771261479152468524643538264305628853526220723940023601580243594284767521670947760014107311956600942178287158897751855638063866677015578045026929787841260329203571136383333554178740913032035300113671947930057317956193715431735268346433171886931114357970295490222969901216387299318263620455038173328298384854290900992258989608894314260097840195972768390621934297555604489269631586583796549278553794890672104745112317011679169540529437696776588048001309091486509358963449446453056167983026734818568240713214517296109062202753672521165200610390549922491908151012030993388578766719318297358066324030246835748360455949371643665818928423379351162898920179653095504898083229122944890762104748736919854536961672359225835623862764969626596175937255717758500848646776052429846875237438549769842302739788725055995993835456770804645134126651456970733010556774885926664570617756368201182286630498081133068351900310528309414899558987528025859029078700348621122774169375957674528454710772460574825875788041905979237272073758755759200683444071317587229998930470314135393007475698517215654523054480105529869165259942032253727352106622363857503255963212595834261041065486313131748269998331558710196994694685945985731737386514202950249647240387201383706040155951299249761750358431369336969112896542727682476699746319862655150369490080656341659823407584891234741487975547777638942411228266856618974095139654071836965929779291001066082493736857228324293011955097756043777601221983736483840082014067946319479928378060701993397502200797599116011447777156085855258657848678979298782087223168613623144652643692234254492425459545122666229990347826113622977136216063417127979844507096069332619093925968592355295210232818837703614007192549713773191053061330197935979974763236307190062625943382698145107694264074165398664457883198663121068923382338037514549153527892429826906239158753814286702287843801283974794946402254389234774296508074482415933288463685987355308757360122394937564050828766182567187146046074859754649895239137637879325417967870604679232300976437598018165091829964797890387032667873158240914204674144345334141609379579781919588124286383351839292687970850811443442338936947953847574430194657693035362948430881245100642787952833673953378888334890466459088557699164078821779138735586397614944762871269302199222781329198358621884682057888190969363013327423819992226358690741002949017349898341259027511253608705457004736597684392611353469582430449007075747338657442153409435586873392490117137552100618975944658520394653351958549217861130002159006460631122136750838456674578124314289719842029437274173753139711902781029323496331002497591993328732051319631207361182753179892997861813809667807952147999003550208846438918632566240334020520395346615244340918293319470180528025228382657376468540433973697457916260417315985126002347767909599722776910315028054955340312251602373900632027120732223843287484774454206578448606259465454494317536848946768511469095333814267154916336197661257366620912632882702148424283584180687292117586282666595766989381139205400414281639885852766137226769117252146808025703953945371923785224288315087972471236992478523712927305236013858423089809558307274024841277645804408143493741654267330903042365724198758211648639062821200036983201561866305888598189078829614260132581340109527243867218782362145773909963386575806881807236664136885562239544358806816559176069372061710063933363330331144130024590406633700032405413313397538284952453318117596679346864619064472460363155218132041663032004526390437915759216889201359905543909445916552955243165063350729903722411228297580724852219312014292261170918653549961520718345528467804342111676758100773928832493946840830576016342286714600190261731126709348238424822842350774515273514695296232527001492600637678911320021261576736263588892862876652742665934664502149307816836114981604976709490276273051105650701954972585737769210353255736432416747632951972696263134567285208494652495497994820595537197298137981894139345816429534210019166425829376084772014182172309267634622513461035644495860331913175388516228517370930451063570201186490621545202466610638684516576618630241448834114167595402198491332051296808729546906925262239174161126035051011419386548348573708518301983184693237218951755888433167017118053237636318876567240222853796123293759238345489350167714766714613104892549494488607206899839834892820682517221236221171098918505951679760359282216580894691083752646622857182358424128698250889838297302872039701116297755289322740067695055326422104811254292134228737864656056381297507005118718006108053295363675486085053837654982103239377482877349893712275687694246237726446894873259086341236588887114696530872194524719522652530593061102679417732489666534396882688110452499207378723987892091364839173300816600413629870051460717565131027084331809181666290288772978151409922808811315903815116564157269724349403449177117039754265286406331365969446452882085898015790444754730880274533008320722643590339399732323222000258660424952900615672714690129388890929501473986917234722753148519509387561809587983180495973223945375994632784548753717224927615197761386943027266276139255807530508076735795901299095336018518967719565198503237674569271305350715822305530828578893012485877800982921640731805754022900361403349129908258496219449164232337727345634726844312177646283477407424539536245801502091370825212192015869974879965944769703864280105536442424877325961017032709125736143931876245290767657722083974284705636918804131667769410519214594792450801554816408073961101657251594409307398648700900379533255062711628169123248370946221312800125417496312804375170210475450842289648051762827424399417131094390313257087963667717885162988568605218184466682621042224595551233133350634528488691533581434725582048373410231665910380852967610667720362318777679578040918181822531907099091048526983524472902984967736894023529061292692655551073831205137105940047793826726243110226857201029625355965055526723852520622210418868614867645636628341322886337927564158051459399525576700070068621618875586693758440489356840245271517620685025334542472311504662094142065449277019647456881128126999811246165650304731091588631802159601942198956691344487597693647487998924938094152507038481130029559499305305064333816755344392511170785653993480038218953693458391787703382034167706149798456221379104888288749970768258051820979728799746111996966769563493966889896178075473059037088104172058441566247312584137861806057639215500914255620109851766052536098024658251411048845336021526303981118962896847329452290738716237901717292410044938936286867113283939542033707796905948546652985541794979543359552760067538834182245097834814348314459323825130300723982548118541653201716632863739194908708472457986056914785900984399359211967799427333303458717832209676266465918004649146410790671502119731932617772962851786735024980122221530567361471333539367643942586155830894894925568927393649556784303072223460479402391130646066295447421417515339400031679179442481104100050895857356471904225959611248825835124363500999279977187226142987367958702661509643208865545596866880338483275019110802366148568068598271893933764806229559101047328100238415189301579642917625884643101183711405168563193617164929242752904492335580439030536726882294078838071075209560393087288768525492717625638951101195995692983662861862084034502159664523514669806824186959365165042740469888882121641505237513674780283606825440353137262616343478678934315508134295111675399288100390912559337437950396064040558080387340056760732592923485214150807297781775687371850634427434591312542407187559576665449422794014700489981857254989637057990555097772659744252643092501714056693304806813149963611538337746093463775861646873555946069579127777685435770172943206341893091475004388135952379653645820924983451313998669179512892484369096459022172637313955853700721361525612567081991995165246151417310775396504626326551871470094574615954933649477442697003044275289383472413497384180837687710658997390939259148748039346324643856387004231989739732105937567614074474200323216196448894444732576054798400233938147986857626211044309853569157242600493597226285024297321764165667702593413880055248361803818440001369187528854094091576066488977229318380732200221211482782864592966440490251634151582759594272560448045527927687039499823519693475689165030440660978160147767896424161661827554462250349527500108520069089382867514114059342942850832848393404689538909137012138354186083196421638587562344997888796719874933220893549466918464736915414689432223031148568853457023283103772213784848988984741336905332698083146591078171950279838606125912647227025419403064429583564157107052340541083082046625503221925401706623922412328835641974796617254526360683595024266103657516467536288198609223129865423393101625517045162360462879844280223335543943646200577176926376181943559170912204087717756515424651274400094902277825870191866132197055349037284878528552404695311743042096363460983749564066423451411447283614000217186307347816615370829113429770992841272622624753882014461590220472023352344704283929138058292171461003837783231545312417962098871317413139389646907707053473439826325962086149150915078847215214991237321783986496955222019260266981113945834536280447509231334380487380249405534229739354339429145262253682903846991625174679710020315070810334948684551538858728850585038387918430162915610175222154013799858135139253297713268966829730849396905672359306629059154401496319788072051905212345090002509010052167968631108626059758629817464096992640359321307654510232623991615177698772381249452811658643649497606883266563784215622938880230950847240557039131630908285986036209323883032717124388872191882501258284198144859083312576157570675768621722137220157439313522805607012108747267210743002824115146284441026408362428799510948503114884906274783076309051781721946760939017033860941472058104284574062623884197573162128240580483956361539322851231188538024086344096929898589364704645121019100512167848945952618493840679781577948329027664621531152129531648625915293647827686656678497995167224491447714281324118257379247978476885581898453666341733490188939767833386144683867351272375303983748091085078477061560854671731041236043755877323266609130162609960007049661794842994400148679339775640908808805001803829826512934668156521810920091729582597832860850884603812609370289265056382892089609707649036956876994536230760972251245757347974933397186517428348283225171586198932337518133852309113486242517402627600138656164458625857114295553650913925306462084910064927884269550704162820882994974416202825370968593801764400096617198058579625371381687534540212734146643153458754682635751980288468061971842694374338565920936381130449540583876901305568229632272039885367609085420311889796125016003255171046599318899000269735131335117666967552381008366314711888666174784867554929175097490243001351237284089286820932232154193489901786838443071731221623487271466525215954312196314308768187137523721398330938485661987388207359874721802644582019070435083204514376546679102581368928078150764472723965530576785262149108596296770919539759390827156790628670163433400682908012808775612434315538542611804953644487416302260899573720313564645803927793336121954939695610614995578515486473853252971160817968998665851050947053879480549020020545294062368070002078184064312122056811598067206204186992847073686841581027593874604125484170915580365388843073622551381665869211564477935511327820024351504440877442734018781778347495090296062839275131153262471321431503288225511684815887700495696171355226939587334849149120951120187235661006798835442605385467134029891271151755797828323756029450023752196389738017779279434480117078778688608595209682485099821983037908524031986160159762989853727117602498052126544676066296863249626472984617698245979801887136885377429287809612623991820714987681219582337087439779577923030728742599908192561427620895701252500063560520726652881114049274970714102385990461010509562495163127939625874468301230705425631601896024461118927251522481244841172228305921008958862839382753917150922201461036824302884964927322750314150176534993424699211560639107390482001715850884154832362494062503542671745758031445421241987763334518894504033427595963525305254432998499260180252627360612186782895541719738719891098545792350553423849322116457495043718985763704016367139745189746163648412276570240629142469415784584499553867638841957298372592485042776167284727237861651189275713614114771918254970172060739373420863850245332151490797233589120002909757752479269038630370834853130600713705863420290371139987601066675973435583806857808753097452279748606569573962508132112710830466928943693143441532425130126911649832101465653671421063092328077283394024238819291136710969047303058589408703366213895962909640886056936748335804072588448627195960876816328789473068925586505597340927657247947169857218478936991231172627976970646947358769941925245593803331732636110696937093566227371872626633935331496972267380208950087105059905693676435652695514024009488984350236937439168566274030747988712568820037947537653246193521888997997105841342778036037894812201974890513996582313400354288627925187640417042328531911245554645359370458214615244410342607168164855905966558369474486240087369408168320989619368803717041326620040477655626345527435547450210299424239438110946173791255355100223909943223301069785796989556572620280675691986035820692071875495862925285853423189392324874778980605564375986614213631563419103889093323020493428948385624679723512192897333797544020165329754478974350402948937695948622299121767448301003708223817841765154053163957397030164593480162477610073141619052822748884448125263622199291587869934841860805139158119157630029813457409649325888263300499524284037588742550843280879710612809795891849730962607472228618631582987869975172649755786177726119515123114814092469042490772797747893234437863570077954690444669628511661819767975717408527970388070826746535174718169271038524583684557392135936967524867274198305444980264973322404514971949923600395732126607216756062559336531353393239273177927207236040596386610272379833805904991011235623760216107064290072097561157707218071524892171049322680410920316406248156463716928251647921676458746502759735435368126343073233376489769921981300878147569863850737600138099841992352531339908602814302846215890399817730564191561112143672349890098973306713104361723956724048498701307479360105429705611778246698143055483718109065304051407571668042000052085849706102373480364695378463510938114730678290875705832388082276361845314447183044590722542309714801309043112256835386296634295763232682326631314823642000252881942395350525474785698259087837938656268112415330041804852847230936783418138008999805146261626921215753086483417491034150426176851401941982334748137034903241886804143523441903319875556164412448794639375157406853665443838809999447573201873485994736737888145791883712553692878107380277663059849443596635361908197320471360760483477126581423394613337033147443684203399891651612015999286524730877823550626557658850845183906503138940316362490700198075060243918456300921948221881146613311269099110490257311504593795117752865158182622373473687546748816060344769783261290528761270660642628030625026600433657018405274441348494235876064580444193974540436270295196464382078201057147920015967033458824488962482882165757513546427651685923859000741223042859762309526172021719722960104302639841761510996393603384998819291027038543868719795084976808855065248709417981330691387346138349158344869631683396289521546136134768517854084803652460715177323024508298768006645406821655695163494993853071675491667909184306145405864058103410983111508256323604988398838066917845268652715516363948633945320790160017236070988214850705122259805600688007352990406768259067469925674382468206189849151715337033430353981898847417741127866226299557688555195980617462853869000680481745497316536469152640601943606321911988804469973963955552291984492160304266541648802454172472593794810911086650735729562405116990231509890814288599165845326595115975633617530374426286112293770362227888001024790460203040074422346831289966080038408252729379546792780763639371222596132514451452813913130159280086682297748944357222378473071508165404791720147815657421857199024109319513561385754502567549719394724371468176232586725754473000367839548747763264126333047698428130119886954131527314689473692096250252449871758716230871675390219307633540004985039951208064321956111023706511562670118302640133453156534425293842330758432450673820119980139321142927697580110010295164854646027203001460520335458657796170355029876803877706420419131555251405609182949263193801475657939820027726746305977072300801257255065900663098943827589170733646102954404275678094995616232894236657532247472301992029082732355341939819228996166004449346562778914064027051837214931634537008676655223934234947393170681243523094068882648295561287063124689953099749007169450872127958280990508374581116876021145861386770683862737037248721707319488436821128234125464359699169405021024317771501520254025369602664992610452110153474359393577769829686552964161964378787664475030976029083573880791729017743152021900784095668014726827957640550028573649440939599214860846546695023221374904897046829773321038654582035345939461783429085431122027183324987682092419032534648697823034540503575243945249088413698200324012006274524793229262284510017487721145925088261633858657967463191805645059689566292086906774932815624653575336779100003318573524047932157613372521033456234874675916394957438830225747686627456689990932999635897145265727531914468431130060711348397671789082541102147408662078903691946240908976181919820393995269041538175511366611103712088651011673023570970121933462567156868369743517930645616366838611755532199489811372432172861660865688409704410196621150727734140503374403091984163233392365064781393711489138292596318451365985653931708781600969084361042518936540878104165846289630427783645814573776880374088648404380515201295916815156349944021104941947079943586302794260405569554727125463721910435862493704282103322707689583555132309251053500478102609649652684202996278583575962700609709287341904451745078038878124719138460842341119929839292180829955964206846058974816497574528232786074867182407517359970705197577235994506588670618145114033056659991248676337927977666062092532316862059848813620885440368269772931008473161626026184194494448405374916308384591612933511565887978795423680317702662115514482242586092589607861965232906567263276779917710937096976923799624313355137645834442831258386756272497418723283229230993296525733712880959953859821477611039462418367245676967475118037701019217814403860109385814865798739100663089212130576216254688645645609261185823493511741041637163642332009878088443931479259499100270656358788199285972826833731291044855377938374701209298128080682000350429671758154828372492783016629063388976265564630637884723141085174975816295490852169076774401987063623132322574084601591225233145228050633775073855793398730784427250823015721624697380599714109028083472297575165508120869947055468119391661093372078449408623177758017788663354424477785189778890130156241328424272135576389494286419119971204309365144900952609842955688488757719311384649589455501300657640762146298336127251146643912422518416475191819192734599224654158805034393701876875619648200062653697787572909592934994571951213438071320280422833673134621548256449705741710148196550569958660861244377267881659188865419357998616663734096717915153713490331332295186070421392193337328208600795366523411762437824221347837316091718535670031638737199587148186955176901456509004578562074991121682009640295954531826846593221755480765185318747687710027450803204546062271040043117202653506804147356441415292206220852138976898455261792662945908044675746558376609398936597185820640013440485537448783370122585721592172707893779972287415725981103858258368642266470336567323324782314386456721938176371283555382514334225570553035627568039929747075114108665947990835819271825280269645220557122177630115249483956342797912929122867878929724302851656742070420977612392508553773763938903642743594998491968248378097355945212633354391328045028876284241248013451927088507742850738959844387067322417789588438311508737868699106293892431297626249030256878491056503528159954517997300394366164590725555714356349671403599630563200097410372232194819666088981722554610364301592885295475246867067308509284747019217351502791405191989563853241238775566467377475785388531935625780906652478020771499484984091263204233343218971801458289835092831977160733537713029347501931900783893396955387956998212073291838498378282435453138964985389707929274876019893236495020402926864329071758583651840582942699425112340588777618220717694898899699601314674450385529934686545328721931099693665870511269978522462955655454100812145541171442365724104165557449601819455332438226846731825487157369857194344776740593315769243466443581942114981853914702067302168225324729872941404775729712199628624714033336582118719217648720794029381007553659114249388896804388557968319389360239384010009731924466188464819416982048251767204147234884482706714396413220186320207450129101423566866989292005948794369148486681759506701551236888718132082704586157447817675255593045199629271594927958221531234087999173064281405662121432586112510638918926616858897729941999554916428046524962392176090172896990147982753143269522949968834508969365648444413393902195050590236200297910842159416019633152030049679532182277624935544105197828768899224122960661004082057335559822064108646735637986279246806835716632829942794041138251869848416743464444726722465783080305017118532264355529777007376121686593190089003676159160587884703681317331669626939387510750810450902002257800083229660744122805334158711812192507219275291500679946839457725911586663928490960993133289445666094786753395248500408221719981269002755344857128366478891801570817663809263737359943210516894300000631261326277670073312883518339837208625278897326235988923161273799546119378149375521303494579754493791500536088716783765044422323893050859245299577533324049955109654358640484142840552880995184494106272899699458467352088596678327048537229980879165957099429094781164596398721579869296147970824619979815467942539861000653854073125777989810983027232572214197529450805966672098969165820432001202286024609610182436831147104055662875633919743151824755024317864714220155632040843121343851902694999455089709497814948719715690233121093620822589163535409560822580508640884730280857141215748321855959916292284399684269370468020030199359027097308168898178833053895933486462095599444349695151716555118648150482428423911767120016878050424791004970474293965982743087956937562242615581252942406379362585331570864562997366622645213067661280680495738387910156216730875588422598612061387380062812798584653345550524503581819710886329432648120104871928637816943303857362124545526522291368477482295987556625182373904257768046864136175962882202431973086293390867544012954925215814147658215810394045133099147461896262032258730940077943660944772223183164515405199043872263181366938217887099224213666203157824693563855332560798696952707372987543248650842334305506685693943688977342749231555439232474220837467243391993633223526014218186993353775144694096520087247461831748051486512510698549267952641461038930283525750262356085134323401769681126028532609913711732031113673465998255642117048102444394071268074714217239387280373472060492408754093009591563208902519763249033395639753263472691285815771129206824002540455847087127032836919041662935728247548744779454944166487402626217642521382623968319610215048701039951357092934297686107124045288877987877875772356632710702458964007016178431507201905005909320626756347274235112148307584415698557060609896572803719320668968498727911426584007386002774399767858224306205061960394694627795102268847881236129870201462406572230909832481747960771833293607817707283546527538208038218977281552425916810104108763112362542266932392550345386851216345187155576667440807972994803227411344120372584821269599908271653152978112042904015100646546932690276281376202142781737889321664168686232113192798915410313643886912407143405324461739273191507359433290453293744644824607417590206172721609454819607421048801299794841521703383062769388317841467843590604605499918943743189872223494977994079219092024699738407325964489704435953026985283299680852624920743605892332955697513460753988050389379414155710894810365747049802275237392601325949170616326023040161740336800414758392656592105454110693272468526442914580388997006354263839864138333919919086666472706917417104371758685409116916320430302266595953249496810687564101638851036845345735867704780654082754112985640838391140800659040963233589336219952228633258743361299133193364038595740569857738588606554537018095221723959747492030657430705042993077881627419043506904246852290593010980225720300123003079104905908752906845270707193230645484640635717377360063498630353945024640438392261876737026058017604391240965953448666023615815328955047037112941673588271167834367962803996795722872145662806441607319341607621086293041613910069698315057285792910340582020686957804807581876065518891209795179787525272531048005099067912173721463940046693435085087385316814852268131673133470696811906970681316790305392358711377316859659448113992675229084358833051830618886304566400378943225643883878430093260086223868333065282072502226182306833563050814335539105424046672282162173208015260800235883043366386437167417784934127887556265076988708508089636963978950918104285760680439964889036222341378334222181678847083978203539898886497047847259421593579070908890765766712070473845766576964846407545507593890658044443145391356573128121415899442197054432636817966059517184300494648989911693353604409855925524238609974676768696222815816390465324746615872633925102130230061115970697198436927820810150799829307043415200542793145136827541663797030644734135434460751124985027803053761688178858971203839980368959669978093046816111155396897801899065173907200492949677090115539569679993750689776072119920053936294609130346653189184846306414766905287530879907673560821592125339569747632263263649281902981695502748521562911263010244982182600954224855356116086331835982473095760730423527367195221434073141769765372186269217940562078771229804145889358324415562013970486290621166700508837324900347052277096592660678027524190263527209219845528380093148885633539681407544267112477484082552234493416894124698645938217232405292022341901523976781531311240370049010312902344145148336307729556046123918759284853598763652140783778927296223796360209883110625738990709311699996150436154454104902459139477843548707545219838198639554497484798805296118235718702845785953493312261462396842459805587887852796685500583486715620640636355356726574217090585090617352056069261605112925141244231487967694167180651290875178280843066932372249511867631835006793481043671879908921705210888527653547914421158908240037799308783741313145087664567161600607796074749883543115798751485257445388614547839757125140687348487694412395996854573911806421520358378151715740481173724186740559676633397487711704688155463594023575685545298591536127231509420463775648590662154996414703861204086846388077237808529657161340776907737917593221246086398457630058180611691981123406114479476076997868564543486038762285165775957355792788440687356377421483197711661823078656362417764075151328606303804602699742199552053928268488894258377889055272497048567965698026998059886210077182248392160124818306126908733139126144324554172319811602135874641772659275000325923667897423224359603384304372799378645735890060909813796003899122878935822665279804949466552427045702821095174241143428753926472998590064476146867098675917308487891210350885047527287652682334704560568077070366210253842662117263111203641459783560388460253011077841958601568566265843875926911126774967591256040062270534940750792717302280809103742782167126659356830150325787517392237324902526733556572171033286715480793426543879155471675341935307406302903827863830365842540722211797907147055126049803399084380917616194230554501729895032281039549312522876550227712483491534300412512528323622712394543080223823858736341843130191873389407973861153399796621887709734740123460020327820651550842582508019250535172947824285431329297162580902616826570228085705245392106676961081091288596012188971136111621533135139122222839025746868068194165143121368031536011535556312109381993308312339318929314378872629546738435426893292054815468586033795258689001949592528353008455385384624867907864827336124906392900952776254425920905355975717127324391472297891080848707274515485005017343956095404806307573287908364675091779284614580768492467130864623674834381498778587721438785099021277925632847773484669208612519080947847744561754799833437781753425279972205530217123958783035249246175306525028979894265768830651225977050038012827934345540392160838238809013772561156058813378917633598957117828726625397886847561553492740719329623214090420501639223750425346915775388568258314942673964701740348456378649368615419587978862179771645653651719476817419229491651473548271674585623264995925845548525866870642997357697965659939123898917717023376026029682604981646378175039559086376482254636437130216346927423270535659638952798178706075843247330010399212175160049310708119290700225283570862074016864810373947330649245999651082924844416749184466167534325696286801072000119577436056387120761098315462367849243944275761564835433599985793161636516725494850545129315450884589049334070436439206739992090202672735260209334024663737487110671820703656556167098635228922628900870238924358141077674179666021277722290582343944907821979460596948725590791387719457581551824491716575554465596465760908507951613436701698222288021652432512934938835354840257173204949412633762492226381393792214147806327530532232622913260619301306434948808902300545870843383475315610314850306210945212806842374733136938030217226554637371705236560891519633974489449540831304614711244459235373218558007623394907868108661285242175609911064172207213362722101594848042450099514938636372511410022360684212069472276214576085549265532029241047973531234186010220341498536571328602604082078678179900657177947402298692723729810469074833700242390970238977615721149463632082699992747597562702954126766900287414377186196239514449784074044434584325954763209586281267337821330416333175360919602648422335509978240760297043336009021173641076435079589854901758553140490899991029708409210553421825862553223238840764425737601935486495229420592381312853592860822111375737232724530150680255097086857641022772337457762148695371293877807474643568022829185702395284905329562945681440706763568407769562450856923799107849282864465565574390374294782500309836173232073626697752129625944288064483643065814518917221031452059793820175449636062301613259897248754819515119416023204242928753991406409929863106597481592546592679229665830742222198024223206426220673944225097992282555280151528858612595046555980768114068579307892168321801681122846368942570920829405311717772213310310360353314611436206226900534979255110790064572570291931996483225089133970026715066715819345910234131731511865048148500961910277779504077189971479951602456882642585459017061413053271358155265865037133031176196094439100509499556317724810269757355124421524666717028876283060330353599554696619019961358926392105340282755473366455598891391451765830089116904050969471294469289793806684358482930877138605377356456426633081568293175868023695516659610980689299618493902510227636011045606394540963670249938803622868181602865703190324760089938208448025018682720127599640846802836857446400531193214547436895664446705443152376269714762700863056681368405416263824747059453944767802454971853491989793561671158955928346232625123823883299667219111247540512876375506684614605251299459274773133021886945389352353999886759477676307996184466700455728507536408593130520631501354729499874957079280420592784794898271152781286315033566432049031741783660561538265765342897681688509678085414886216987588963130006431326176106689598695631359678502731288477127344012556422996470472794935883563956014173397373326298237029980422266327805716781781558708254096386296770012809957297756019112854803419614224986676058279516678569135570590037354746039912133535398912744158625833269755127256625510206997761175043225205268603773113267318477948839134708838514758639939599353750456304281377397387822184126466949731880389972720080137626510061697602383167939922805714829940910143291612623512344334055117321204477871354718071596147481240637840804943157765762453292307839027476261192292294843764841888508987455327252381389079783818609731294422654059264238227537754657564300766332844185891208163123532867986247543187988652443591581017158556353307638315158292710114891897967775460770435725494746692424038779683576127046955911947673856825930942611761210956916680605914129155972898112036582887640799697528698277620176653778607863602428885534433704886525320271622686881476953142434817588520315162244437737944734008199708135080397773206239009318477640798011284487459299214116061778707328852014296404254411497390740088755947963968205586665474746135909684191804890703971652910243588762227818485187509081052532567802826197442585748931593336563741084017770288510982081891852656455165346812676746851334764132709604622585514202242617813329369575267562764196800778097008618924186138251771514127235644907103200805850312865017266124474690696694263040269740919584960496679081397895375769707825735159933481119537625272758380990734027004325654173911089422584444719566946234977574759740338260118407870400093083569814964533376332139967550646138379149177029921407150965928032443329519834520819832167156607987103758603641335992709886074544808591507565184486608669574898214376751437742744031101119163805339776993811522655438859201386067065240666806805920741854713972200386599074940759955316769915986506344818217840767820034731838119043068671444131330575469678551514352293737028241610832783327237525690637510413625320476777450469579089845071978896023396832685399560900534983034995506236770003077875554116615216461539317732536102513675447446754567555187917533994252393085607326633386146156643948395371883253635009956782817600074054707907152762380727984661632571956276698321194173775073378559300961416873849981454549077519714379518501443016318995984296232203382357050292592620649939011216262453194365392102883814073723308920787032424403044586695887270741258755989043943500582687710267737669332539336895493513500736592500152961018098617913454565393277405690864335769891162378009533282342705168136367449979890195590808415371888422453677690098683337070108557116107415709520550626153256584265302791460785174444797286354588607594780702896429961606163976089799578618244651733551211732776089819518677846133178812372148913908468815537168205240072960191567289077389264821752504969575407754534100085554294766873011428642141971100837762671625209230637392930230166223184510627022498811300917840936128116330641397759796135257101746961730865437091734633376648384704834308926339004486040178330399445449256610129108474281703559813867039820263656680185092903068985592545509746990357376899889422325273008660230061280089131902539316823972987379232938224723991394377730601084555678641507403770129078684013529859659192719913541490142687617326579550397738036070916760508434485674904500238285626762821419684096005278388023276520665011190707024830458567102535685123509675200456260813331705365210868923460309123930953100938082975799347497199627949770100325154544775881880607283397965212698254167526109835789850531309153935608460354178956518350127372416230901537320961191194939426662061096052909621331490242827132069443436317074914527765278111020273709993962542974284344477954816945819269977157056421774004638523360925649172434611425628042155166420607658287635921749280108710359903828218757309270183405374653402286179255246862114474399636697889902756922195195775710322334289512586512570112387953055191898874014343266179390014716823915350059326540062682209937263241449607694799072011167182691119959120830766462933568232878766000510584943017488659508180816712621144626342353883516750499276617764080089549524461977582067152425057943607834589767092951040702968578939636487205941142413082694605865286594494986328848536810343995733474944526095691889696492164929698395891093598362561978031229486774976342533275430733986959530384774217093177310310434918995991732035971210813496504103726863509592728044418233788909674778866316459268077177910590524433890482509147999940058875464016343096229379349839311770705953319017928521263919167203206880231703062518206737512147375938875869758091267616836938587780906566615887543005368326855912282706969239933574232942686172272290028062518116586229193570612332188850773566771273179906624640085106136254299957548213046152061625532486975877404183300939616751311568059291195655576978640542624198435740654506415600371845256922698699782346566809933660036775286962072669314882713799059099820910925257193197311544830863592805320341686712526816566558743844656029581712003537389170405872070013171638520192685459005373551933789079290630178086312272354561363808841559349679155624398519866582067681843841424268638212883643498027380786271635676823432721455477466357462026418048762860875609345889479264187152191614155342816677899411634125170677373817385603132619115351067399455394986480903060603095345561817453723860559785671715799766581901367498282803749953601522374177421235480477917912850829853970799515549838809749093249605298723572642082460667880623029413036983800831794569618773324658859115531732533941122829186878149714387553839837983618799119728219285056466622936929988701068119820249152980596925892763662227227050133925822727763373365537436725611292960473927052369178683255882003763647090557207390416503099104173730020217668825293680932756279117393309656101316313088190747232192573889058869281665300021051137035105902932365757748754803873096141909076470687405793225875757766212252223559215975741071084338027408063214982286122360544876178107944481585656800817820763211947852479485331638615898714534986849044190536848627902210138520189542604115410959107856852898815754346295301986625605543875566845619953432858871117553484985577652613550855367767670395646894771670346130692730766789374961049381725691643607587503769256989926190168209197280644364248998648919962750343746892530584665117175133331428042557865685843163930320911096215956748465893204811488559405143793521214003176898877168536466329425018911690811770086506480019276812087591291474053393511377629904574017159356312542494266498625838815370427477467889620932087953750718033125619023231543186864094705203579686898581829345122724021329855998297546482991802789854418959679108347942173070765116064964637980337386962949612120852506508802537863125869641261451253826874770374503091068873634964717276680693926146282290587450877924177834369615454526802945417847906307479627469863187121947151842920048613188819723891293306060389983787142898432909068474399968581612213018314829998575597050516877151855671672863114194634190895266895563055178982035011542953165123195653159623260702706375170329418682337842763652921785863244760894997911195541597602814649926268973243886939568700127017624381043119438927178994751759340303311806981683744418553152404348345228474834474807388165806092866334946289721246657708075159461827705094645757797756798853422455800890609040681929449308112920841758344226140312648480702372397735013999402400554490305283638103065158898343659610897703526294482869132689695060879039693327569300852180918941801027157470857368117823556433380879885954762503825093114936707500774626185169074458521843881891722172346032620388493896783102199389509042513281507812667915764071740573720766476887830874359981138792842026944637785134431500152955778353393927922324503195200820431265525084012550414991202769418160787830817987245126191333502087324964739440680038019981393296566021724403939415703392694272368130599005061430951586428566111915671846717986617730377089244594401037110814465386835299293298404867617666618336813307406184170513001776806361460120277550813924520310805805743785162131403399615286054736847191878878139448621478133028661351343341662120290253877100260524951344270429140075067862295570945557830623480534470470848847779923228835382595672125102946867689478705429077461892146878643491165448447452553960684798828800560967578048901839791078057750058663749567644953383299685366599217267091060357686877578652634564583898611312861331925144554243876068858548022868767355013980266563258370561568927908534128338591802552996103548241899146750113018948318169156830113338119657821117143375454124760680510504379710482298308228353787746130319266268690129739239396091807738316224573389011150379991974970060717716265458789714799538632934170767258914781061874778690602477505446519588921294460601926125212671794709441303331470882744045145707001057434121866368390799236868457887100959782105242643045898395947742429773016355689396695832715529484691453845174912458133585871280553254581769605237387705095423099425097357281181641339080916108564099981800083977340443491651157283168062839249782537067076883969378740949737945871225469117062987484650124342077967957636708948772479756690876844443195951991015992594979667046534624216140916769453327885302654103841855541071321223617012194168212006353729925276643109232548764116382450662985426574856196887580625813461632428268514646468728186283222705147110342818362443975476984033844716471979867702162432724086374498133412857304637438227049358515551048524003913470356806304329805645730626113632423986547557864177708190154281947148588242434473042156101297805310052347513154332627589593220634055914350423380156723371773464421540416748952225793939527632303648526794933329719152605995085916793709629085545414694142824534704715043163249584797385921596015308580346965528885712148765561516411313790519047763965266200231432360291897892209612311027104693276685430998855753842269322180613735276922125701625295751269311944114089023709699901460200612338812914270349459551466870319587317506856109896324458778868778926098443970651600932831435657853527394951455623499892475531078665165601554007535896354296808540549520910822444618473221228144625121599411911193918116253114513105395443552837798895810147615594826948376840003714617231088685456779174971491830214635070364051079624667035984811243307433591903215883851908211736359189422460944190549803386937342202302545196136404422816250933820587071308430639902042868107162251859324352071114983067063462079635209866382836646194943310233056360291126861618847230252103550705380121155942643305259970682495999136636897947599860852586765009138740329941222002006021146466202912697096168830620526765911507127828704628198620870496554638022472621193961561421055862326385433178681459950968232062703461782465324153211959487494211626416834269972673924105165356381399623389742606032942317137066424204416569031689374870274521944939861485791421556501973131687524565489473410418380452668723657864930218122510093045883412565738057780046406666910434531630178196269790210232155543500252342460460291909705838710458467397162910687717005938339375562744209824421993390341976288788673131551796603293689747113157333433101382740752828959980824963939349910778124941948924169377987355470432666705016649815163681556418673653942936967260299297160682132445546362143226415744516307326838251655539716575155569217469637445190508371723857884401760713848277648551126418618255039628152996084177939858354370184831759016784019793820391297152833448717211185789787798634354055082657518380946819786648438411777652489713202333980311140756069758818847741822254436053498041947162502965371592943680812586415627931558914859731543022186708818045821952612407534443602909674634779443355709201458325878725240214010258689628088114906592483619119795792674924131801138596440983063826840897061195330737560111880256374366603780165346024861575694501899522424179811366594141878257126572565915761228984957492162317144274111459706870962968843839004282270454782148590157326759424747194635721001504461596168297386967071498055918926822350158603498563709325759440837534255708550001575507332962434245314165649356102624988820562133409200861075253645675688191379988381750751231287194568361612379211726069284578749367497880483283403066091573121019724449773728682623227544831661542892171786585280767281960006932816538462342964440597642704847782500656476936592912230363475670590789763180022643662521447905908285731415788105389229930073103794095646697355680707447173924082114467837497653795690518493111160278746692982084892379610434339861948546344828110346383459516321849836643666917810752878134424764255993714617376214249790803435459077607061308721928586711210210359165523313311461185855873551265074530306058215690008307181009437657155675478970625065746519365661036357925492968352287011702829138266782477461322518592152777696277456594540680980699569854889372577219160288441707012951860382959610211830702677931985800926806083260042729030156583900754696135216946541285545952796821474737780369355537325099312282957047027488089115247634215839966802085662592295038437634518354354335147676644009090880737719268686258859583758989254166749253578284006276805933829203689216149049077606079574626299826126556218527421965928490930375334676796380286009665222242298697451389602405952230329232939240999255568670484879713985688297526668327318602329245620184316584791934145014298288712625538836202118448159465260099592975775563027078875010979997039896519827447019166500290268302918218224748099243273452302306587794439351034996566278104747654350960264589598393860406333704914755136650642239824446269013233465188053514003898821706736411856977056821741390926002250784315036534047115426228235601012350801219191154154923486080391076246369943396160302922449958243942416647124061204982537185529435299679283203183824514559823567851690271787033178948481067041070104172197482497451245737930473795475214996769841454885345676128174693011754994322305050499436370360170002633806204190527991874466989170851426827585938661887340781513979095247891863967970494350110449183839411911777812955215574827547752328003715386092014532465423660784859097824181168793554107869135755568126249694498608760569173680661400521241010318059141728111062770266954998309474305457613531251495409913650570896525374113937625943143198762965438537139112937864840308902549031303014296134734036420993276412151231501053209312154764511426865068862115478373697097448544304262552587349581127146483335596645540751699543469754707878287619311134924915851103955827797069943736067592583759052707358716302588487736974205500819465134587003094350885511732950171535335055664678207089643427257499568530049541397352961195002928836130171000831127292512499391500358454834278751486717945504620859987447658749832319672382334242741618785344922502671893733859839628312383842861705075659628813688226968723586077061016917808031545243994232510982893225682719701904408629750143846931984167390175561855442300639631732072306732007465307023250086999978427184953827362631962270315325575850520389256073349033518066792708738005120803552514569567290143661398329344913829795323427598189297544378862604673283482614873535726414349151510186178829346429857416207560394308022009505992624965410026894526703946397476581532589699126087322834405146370146187356887836396721347865364955172201287367220481066934111724058896621953851680706287216628421202555233567571533625550333969747000955562168696718241089127407905416483070177964855384579277475169528674892809145875942037026548514771689930546568415308573475121465298746466883522868326966761309136840734056369539108173713345825772589845890614020849808185716473167027828814745457310345459388834441885839465088114687187284761952356455035599293046431687470410057109460800221220861152825462282244498270209401833271764658028288816296712119246407921999511838260394084760982741223682729878334099089117792675180423102797059599518346607320855583428139392224233190910862131476051278914286078574118446096279675681226895665708728743544401684831545747046211329969365837864198588095087762366337169334835550386234099175037176186046672944968600610941272272646577604488269035591205673828603033760111236611186911731717052897098808141975923259619011681171546369302849750162630778679785796835870689480439040370350148411384697225836645030068588751758630985525883031099774799511039839457890820130733051395116251399606154145245968526534620362148545167884567030939099028657961265747333918107022592638417518903758170659805768547540951799007165551947719042373551541101871923775422381059560443125922975354022959575186653817417332751968292153808720672891247223840972752503507876655604102856824064624921070749993390647616396540306626359480678655501351264093909124434174984666565868847164510434847089407791801321108714826184489753337583201711853849494656695826076173672484815351121779750967696498062498548671297854692185534832121406926757111639843900998205315502264443329693908042845464553845461165890864425130317143777352407243696063255273770887747435885351178635113650945357702310489166771930954843842020228383165582304341656136137600374271568019336060560125842606214434827494444937535118773366045610172253118393253876178724271915312169463426491954240734800931441395090306659921226322697421229735352911433045457749847980297171438036232912904604338999364881297053988862397297530617755647638107288436017297702442898741682660264178886916831886744995338628059646753754797953861188238938715315985773675507625780331088208079364165027659831187903957391892806353936365049030882163503747237897351768807716471402581157433665798638344509625831352054856922425947905560192773457137067492047110236866229634675688359840821976099918170257817412370915747693249954859409805991478284907762075987975386794767147389946399165454056037888050023376558586271074960072766386815936999268349982260946561795519421909215325411591504981087025927136686045118128472904998623500557800358568757087577554486177261483378797328079489069135345949321658463104401735357272645476631801392037569960823168603000443965712520335594115262611201429348382393770839890138274046578631153259717793358448546541475630521241337571421240919323314950941674986689216665309544666685800558254258119814066228150604730532264382930683395385805109568819911163691535302726434198065388540388957089160046140136225156243571713493600229251050273214179507707571743151377917900034839264932320989619933598865514935409430999400832164675605487618417178303966915915549186608284445466152459415170206552985759146198710147773443734485059550067022850036834942537948183445779292148390224380109985389573416408267166744837982866401229706240603935166305157301635174086172467805934035209335809213322673565676810240314142730315178147104471634843374791508861895811930496672698693347091613057414835228911568970896841750322874083702654812765132328230553899775690660937772692957091354536744241422483575752993793385943288966355319962217655943136109458931086828393688162937192321838251159603803192722587578636855845005714043243424995574367248150824354149976566661567044901225506722006980175271257207442554274168126739343124139668575023978196737966917546773840121113069689490953857304330296581206662881962033040981003275017648852923442318702374518548572737616160805936492012110333459372524095470366320265596129573216352043303765961873368956787742976721334951775245712998184346069269249040432990669722774084009735722706352443655852677016309821127792028992721542813226093059824040319168252884921841842492284713574691958960983249493453830765715077262726211487237574820584984958856765610237370966181068016804278213537744673154870023091961049889313244970353548357619368969583610764914140331060400748259452390952534564988632091565958049751706246494350370515176615779343217158589772078778978591340100756594223690959019897469099510327475564074555579114143309022504404047207101338086151821270283500706243882349915729716375200807509822931526897266449429716925504439106219917004482965104348391524214559976882660025641677976466187674456437061288522253696212237907882459015621382979191931626185708606920236520210205470453254711535998357953845827311762947464347596825993472555007022791251097490019218104496819349664206124244898970115427004189550706011976255391571925570353722955300557880099868851114056667753550772716754034110092905209129717812835136938900534399880455775624660125129514764205028063167291139397491293252118456808137977052817096221829261331051236801472650911432173255386859973662207284762660722442124087577434895519910640233585291806520499768285191066162913175030932742478991223326393003756366369168927443372769315160712172098523325327264848761909682049575895965821225188337728242639203553577461980715494087775021670144499624301408711881101494785490101904628808887935385574731465126529249584591172482499048554603963144329205639358997923861050813794657552419715377438854934887746131129916100364840196677910635097766010548247972790491790761852177504504923597967209356395213265671965642468038473468085725881757653965612050850830462498883077373981491655435598423233786894297468807678248412071687876871799544527287605895808572944390568942461365854179063137399591172656681607779567886415550389265926288780626925297095793200174685090808071789277493600182021293270859798039582094079441691105814236253931159757639446511876669417868060390764680894576943362591675529944953091569402195566187567047428269544073492950777798882390198150842791732578885990563564116649468680441997296020204023329101781370268610585218746461610827268469044263161072213637407068177328072411733312418442933051571489187457821641878251407718225969892318783018300008081848809372965018073344158666414071926444580450852144488149815976751590891620362655709196682691181734081469781816392764606834191597005663531104738527156267890562555646075478487983189189272662418132119495237810607126381518407144672148393689477871435999165185897616924605454233076137336830306567561264473015461233955981865346234595869670938795950022110060061922334378115597891257442992315749537758589454636721993645976583180135648362429811218273828149859423170394428306410419457620437070868832283299448593484734515087270491865665381850176189356049430108875535739978865887313485775896417634210465269711905113475943371523866154407747271610070546053765545591236674998876162883961614398470341958186939135852221312270778086736472516964192116756878347759675931800268924735310152692742610608399227894609324455744980207305723654553918294491250530568481865405910902640360657673789422019590753623046034583335830925320653827059376182684031793431631693004221427293951848460885843706968380673230657715801473076857858512983155170919478099388741722526270526918415950446478722347384269579994876832932368527678881221418626436909807028394960747457032662561125933812388749295040805912017903799027297131784550235408333522766461321114406452660690444766874815706357626488813990612645147496742487046911441705358293348973644413763927987744830120437368876465226145058852627369514524123143220880444769072885066103846981253985091726866236130968564987479120469677695895560662334674130376936150792631182301669630626781870695525422002405939141656205904539062267001627851382301848460725949476534663475891530243388610819156159091971035490984603391676023213807686522449958389406925593906096990298181504911220029298406964770946899162394494542854188755834692664758739026908781895684284332475086974406616843604143431139909947665029138566298255719608060652300853760552134020995254642889596006316057611089819244288126910673733239740219107090482939323348688649584172352120402814267999004492992814150479372766572638682974993034357776548591810853637214156629999793616437883631725891021069112115840723654528974295842574914740112100865933858562359551749135011916054876234801997216351986678941825789146977331988570466039673003657084286537351329864460794918811180819793771460011234857674101874686692708547426275388717045702738585365330664215334451255741193550076702115537963203271282933598271304425827661330278245952101469804221702776695974608289387831607551980657276160763679772113669605524243373363960957068989161190377177036756455598381336469268985577991609893607796249746318933101339011920179775070371551143229736885191996856856988264598723991997988592999485153727231643053109648039139274473356151915569154493369700201912832717448770858587213239420680371812290165194467652166905444355203821579707601143095702519800475006489009769692103815051605672463255737733399870919392283074210136608260165144790424464965888961917326453598410458499486642641523072821490872948507320590553138600590122449596968888282530098933258031137939937936612235222374360277403242053355934391744758050686840654322704009560063347592432491735596548127156146760640201967398443296078251551659786440915023618133890348372028569683632043946383084856206175185321414197612239424121564615747730305160251421025108435128015564181533409824631179661075765062498583776297956206317262351462264000527894462215843491619514819271322893082096403193270100160675934794265936838443774785227256582372105615829358572409121876682046384076867834899426232444251162168099593672146414250886423232872625662700443862834708582598608607961693032049326665167137153831121352652840349019528688957085872868483861494709763271290538589800740109419401108211157175848912774206576540973447276011850335276253682870257729448205481722800146446367162884876685230869988165069612033408887646671503283274299822169183688375348951770723208730027059298653594056301574522669149491278943400826062778803127031199219873427694416321322003478806970724584970703549103981545955576076577135182472903565066935008114512845752823806223554283827295162404412487667082032457736093546645393938609003044190542035857099933240742194089009717914177243157684080721405478920849859131395013393840822321918515227566835430289433056266887395575086141780789467130194349570182645175627627508636710768379212350279534858949160666850421336061095577630925096585724020142911746490150074004228534815804491419131785829917901081940608538254778818924766797035694109483691152180014696628640987725011853861609946482397569509895155465704359467316195290255272272927970759898525970139786333851715125335474274029256519653391690545568569609193706952703141815262795740320766864944107655850658364252984741428465053021567870528409100758521647284557720213071703394287385585903813350916545689716363907868450975364501568893752117764145317018652285551609076163741358548680405118743090098652481141567147455185732693162811146374727105627873340672723117977896821404913804163667106735081238087015383752896340884721554635681153509311354046887684967269435667770949829981906021030408254010129952688445357187667515860116895387377353142646155773628559999260735044120739660597609655662498872570109773842517738361584139311085346620770051556556665018125623185855305446056816861961046986514366153509696813968531631467401537830783866137198244159601325605071822989867238046623167833778425264527216643806208201561961815643635814462652900897269582006221281250316978568035889180805246195439252108428342826406583101427832786094515389883934810891234734294313170256900829098287881373225046867526864327667800897724902025115845260703307024086732842070488859710336517497625749309021814158256440409315737568081321780239339624733341521900465450186927495400056349024711895754768819199458058751352182385396210860395740647418180604834689135093854754421234898763320163283444284797020242133227803016046342228816872823723910420335187580234544935320246606031537766601933785681862072599090937589714751994694966899205062469310755788422431584726892109029365580586910518256684922100462011980109692817750660673311080788691611959894308159282385920244210362189856392834314612994421776058438232097924247609153191828954508083629888986172418029750889069663413967096020280117583530901065737890259729391328117681509179187468838767261723733748828828987089170348945149906716286693574754511934752354103050500514802094878224935623411632697261647328731148674531579480884380929370975694199290679097663420014132650724468332856834907357059959992374875752037964940592439322316096342705757934252651466640777745407587251928575034376317560981504894071054115531885554155684997282868651759370707391281652058029377866778842104991503496944774571696056915132875387224705950148029495637188772190781743374453097542720462171384066636859231367674508666482280440614979022334155752186015816923283932183330788242432304063164438320465213575806327649060679287843814005823633202461092929857362041444930254561061052815180616318200273690205970184881764212231750800351856217499752286642297455471101668051368082140036832382069564835265806806876874829443193139619120286252695727455987131004503292530088977656701553637689197927073277541419476194329792525170196604841140920631980646881623449044844072383241624287419282490977017796016897401647948383930727051407068364552955526653853501784819127103376752883896523050334693207065466706687949667764017388407572012500988760875460152084714125393993019639634383710711256459379447725375034188778356512870672532177897108467364509683545321934789373651898889622055537407303747607926579201750360907888184912160675279933860679044357107940591225975288648227898809064213149389044773736978740114605999195975312948717104368207732783779723237336086880124918356682804312817939036199410720523415848141922340150365641267262759105739336343707659102346289810099995208037326602258271976088363347331546967142830639894799126692399521310839989459840484807579550932015778767219966349918319205255720315845787334546870412822151272715824832943415505413704640976491864619632748058101165942608639562274565063908537034805308834908560769192119203137628820396816351648175325174926612977583136879001852087994305822736079036381435892814114555127054313555364550971117770582655855058645819696023023890406137053418891964372626591029871868900491052842403260287080115036908831803345837734205757362551596984300246809340753866363811672524446368636244709494139564392207952645769746317130676496411447909282494677694142515885570409755187149697010041070343655457176108102429965672333811709554609177832659082147957951145302163312791372344846603127706136707888641942527897311063642410078637724581132087706980614651170975326223307979580332400949935775188360015010822667105218122199902828416203146136907937563738717613095409380122591251898324951039627861920823341308860901780089925954212891766755409879095905844144741511170282632660381396342007088649746533787708731113850630323129317643554555069301013845834195901377546077154826177860283937090360847531732297007603275823188610402656440959532240780180813674027060710847802176012422793959342635382818171291091360337215408263201608168861852111439140215862651516649109720121974328475096253657417700666045385665906364702461593009818874471655253797868680499169417697562018793934810275264084488811793587430740551202615172917807427261310579416603473283869917735393996233599896419121492342984485144260390794902799930117179558507603564981359126769147893881231805728438502494201640216730330768259139251440667782216241313404517818734352357846684739588999429575798763932487998950428357963908658209413326404223499536130571379306866711372063461052956484828679916158161040983779346131871482563066403518566419174011311553009709752758898455775225662140050998277574604396204966906070147483256607840523223577231362946682589588803511386830822075816131821006560139420851842678378783286426631768480844622334949695587164788225777605885388736683925398198012145854034020657762746677588354740373960031921163050467712428622293006383291249915042062465271497416959486633022982959204117734324072437783459590184560020927175342960117683064358780106264919722443790905117659614002531619451742259930860847472763843718099672079363233737685264114247234218687846758509755551843088931874187487634107177674258816554231950859722906771569043384458442962112825421336425271509517990428043279517247978922224558331393840897605849887728219001069089903790487958580874225804980605809797101738635654916700484362704037413498562123562632763298768227877861237784665266015368985112765977294718559259384597750068274779630578516133600234106202142224243944434614285539460280978479530922500332873446484231993065391722491336607513010216476494590025235356159328540422628798628068450506713517756766274294786999848229898689345015131442951435304428457220533883317530730551719378148801975833976561949784786067712353444049282735648910393738573618850918962067039375469950034128184916050183653314556416299863251149853446062383030266165338740095611932613881881422169474305037683301235808613859800944154474551178771340035014114776184920924988393887754307230917045972746931952890421909615488994050294902503411389964035454921202972371599698617500621684827472174066078493083838727242232423075103027113275946313506301228462625757107966988907732948867612185736460674424403890459602476261998721012522487545321727577641241113915087426168901357965333717230833049395233085775580178448620795374520740964609298573809743369726936274669023622859692344556704224153678588616046189647527250614969364043007905447985814453438565947353353068295170158530698510816674406854727941038469749597754934755827455574190940972282190535313416473210662596130974862760912389538621508523256707306621850126313012389336155576247672917929671072933345578383431229911623017463511462604861159849708990184672469530652305748686107984994599863201784246645134664263788629636268187047229597163800570673806173353950462814197169676213040159509857591167113133151685169598334277252146224310145239762377343282732098885499808425554379375963160243940286518803125796675735215938017111625799589599359849363906324716817448717070776172626219217939740638573967276241415175947830664295301736063782748959229704566908199424819362504444093154486396129341719485979562312090230672329182172955954660665678872585801362357426529985804771670814665889979271003995435938678422166852259300011131913994243567237528495813112932927438984731322712142556019716332868251823932509494150293305612573976657867601944168523625410567482944335158360009751957899399641095065189857465445468611490334311190217702740224217442129147165633506032642204929901312173392189961781250852120635155411842194658996374034243417100982393540233130469761743427860575862527408233509053906329152190127845418783312669433078374072030555018638197027786674632092464077609368220281482115119178703060941302852105402261649082124986551055873535568156650580448105784176641053099792886637988978857798550269680658837105202997245889422061679772308774930973263905168970564594267540179138314252296384082525275126576657202895218449549215099293633829056279860248121110608480855006981534702016530034366035299856277707845951339020634980906725698431813400314961518566126845768917664228697451869645885201428913371933723477052605190708148970935628785033228499165030559029042720354007298718598640788800337480493180890106004195037345414400635894525590613611601945975592348071029195393834751716964239627610339405159577739068161414869917127047166032752136153959260223848909507512509738933906673712012171496738626802068735556041843925542289565117261881478683134089191388123834798373161835586877266741580614729175742725117984350918868947784624354645245353502258758994187365491043643163405684602360224221663773274399285544262758541458737846371948972545697608153206205493455696908199344064064551760632642618657005496108613375892107251349078833134407456166402389459740383692133123684685743262394285108662201152870396063673589960917660862814130014850897542654735196420607108178053459571208639912960985274747165206656500810299308461668959774701351541155787672111384560405604123758135453648917956994304017492604351142203493489801505019538474518503630649063094105015944215082872783839510999290292955100785544892041472036887683565415869657912762254342241634461667196606812152136087391370670327364386021999340968847967166494789144279259200365943607833314483507286317875681473995254745931443311872975810777476466023434334751389156478404796300110484100083486843372128705927018160056901867846974481377950217429230788307227602470381349975747962163125846369233046417507313299285238118201435989443362806450162154446859105676447272890509570842895350929920434765464360616953642685614402518119589397464038032075098922623274285421346020542668103297986552724351507814326499336757385214003332123583680989000172336449051084630565701336693195814513202397776910991072408923998700557298687900654525558352237464589428370906887180633385066335667921981211412666481606102318881102953172755707368284027491324499846417474160685392627887562285310370708825139395976332227520194462772840161838352821057975059826995348037113823921071394427807515528172360172112346387168742677532692862403527691654040830303058422937658419371389406636279620409757427163297782390654300905260712624898540157828818898459679631212639476448777238560964274766670184025071361870942933130048038766059825466146902981494782425532098602722654791534437039009704354019880786224184396019435240875979235557986614517050893256815731023419269980295444084233631448290991396432103193694636077955923378773788249545538859389097019634040071780011440218916932819482042132943825562634542923265221019186456422339264091811694917020796962424762769023408953490824102038818431599199384355308037636995284966011226962930516834688672170399090408316514640106892307512787914752455755087688307580500068418000312912670066322923566602653725190654235008251135686375892923518937539576617208790300881780091624105963900346822711781424251346234012037289784012235562168812056593316297163047080526572457403607836655995951882790801110105639424234842636376772199286290332007632789774176501850759072307938243703898826121456763052692283248074251906079262864967205250996904424140026109594643049178470967361370997611619515620231048124764957574656132442591017370339017363070751399789201273611533135912803891287791745663798804948217973359118355676270731766894031328957896396393681352382306876498566240819584716210051593561132122210083240035077039551518528957160844266743577069545397526980600218807653831293654980911467724144280152758494040370339298863323460318227399636954987713270173399651599266318821653561913075388978400017385548306355401503486294427172838921422533125369278875487942098270527585572156471725608022897548515947894652310112570420993084902621676062992529263641765519997309819635695693095402791174186736417932251858765772285403000724994911973686331396927114473658789672628273459851499660523786536446491750647328235284686859227139164751479912941257015354606817305721292300261817285765911638390252169190201851940506893751512712664266780068626727744006368093972336663405396224162518732519186850701284263042218151842846787613520159024439184342888138322413322270510399764414840889977125154081502552970147816256560503848923682913499305021649049812896883863331693896904252943817807520472227673023721188065394102323353558392594560777905088893825338813746456850742507935965682533313275016224910594496838278827174459204019076919226936393540660777228435580665948326772511517338268437683362433874511720855052013868537633363983138821913876969091848782030377229485478540370817730975519040456085993206736682338923126415807461473555022154853916962464703892605637689557967425244255114224403890236856735887678856000029188908352768632125508212074560682215507893008253287287609960907853753901225252808414328716420666182069573723290728285916760480193237855094193404141565286133942886637142664859367304579412727228228312312918779913315581512892134237338817954227055442774464475818585015119741244405961278915525181949357289338844822239586128705749652099582688469304160585969829019344983988118211862297726705048605673513528648629730564154837046773779228421214420085523767338884883728350755376096797766281764069748976551245676101568689512016873369546439892699782783151205716447066081606656031405778832800253848814684889200662987098441776730271467967521416006067283034125045893338575589083740104576796108303806630251079878423563360689386402555253844126874212430251189352452093157611564454454236214629423013290418254969350259395575932264692418240436240356401593072064306295099476521799276030093391561248193401429098282666108338681684435887412430586797711035026398506013469647098787820643296752068147414241474018192172023236550807043507768062794482397032229254540198283823736096083635793428059052763297452005414918383314501938247502070708617250187308995997338264122582186330898047742426878936222610968271925509577611625140311974710024923441437674975346086177169482215267344670819056829362584332967117694328132976602071591683409422745024994243658836791169041056577418668902207210274664077230327200096156220309514246877637647275860966823119864433926842946996689046536700258688528251087020535025692571162056328268216997625636107292810001013566412102109569358364688228403654140297299300955026357086055414167341116660445121042946712231993112041096042363749598130197031852023380760767815487466565679988551735133594982633630106533467938134938369285892044235514225823930955335492335026616191924344833494827855403070736338383688287859889990567692426019326022868351948974448910993713747670701555252031342773515168838267182649463168497232256671447543403955635696600269287726551511274443063922619818773090224516316853460273796296568155624887788089187568950376241011873568152220535184832852915292343749590463845686906751710799041950967767724900164015640604311532006824064214346535717738374828363085790006205967720288470975604769265877209345395651667762420406395253512745308770684084114944033225938965416421877254648886481452047547417211900303688142687734744898927706623929756637345454011689327937925246581959925945651309594804193155286577881548372428571611968517481016990951177248952997829422713346095026975816058513174367268979470294598083629805052203486128488380855453147465937724344519537256407240641546775338747668041250379317775077266806862631292028836311791543562849796549289033876061723599718121857202406885520169852925050735717669801110633293532872151667453557260174014546541650749821741182271595074145162176041494459402809624237009797223772839312014771244021844454814233067143587963436211338868892706154662265477040309689272456554843966079065078476182264883315237434559885719438463416032743594836548085512039193936719501984612315291709231724901378195328964036589575890686095373155220648127049866002098200984660220492945552830423726320478172186720146959754133077472705111412643052748795667315879092108698660258254126152750112371557755677264338140211226767507378386745784719345338061209222245184911851154549243426939873135503572096315527785427928635868899065068589142112378459941254226279248657945979385708974753609094738596609728170808804517704572968376394631143671473736244997585940725139761209601968100468521761649110795431445510510499863729534951944327070617842898300417010562830453145959797872070256058834448217773600869476470293354984340341944784002530662353377461121944020599125812493148934939079202805815032002265719173343325572304840654958990061510009820659185356705664006534545192861240742508384462050434597411141513296315914001050729155056503897377005903098879645358233467833771404345998387821898447818175661964894803664983574702500976626092223538003778317475330868860574817279550913690969133809389414568322302124352561298657367071652381405143312429563661845316766326394751521781666057742231016893819031986387124076683483015360066604349127174798673610229261275725955958809492781739464559756346529389272367976493076756471810363288071566435165507166630967322524539412771925974935488736331106008945245138199062472230212721979041101604372559987708081744759000676250470804372940271091877988078423704965699355128430545089467560906440542018721860754830257219860634507840465849242888853597917903809825492711028602866314423482049863785734942963144060176680907429873650087903683114073050077782494259895033637063220583191704358600097409868728543237166043084382192314157936148728249801176008301969503046985490585221092563943690436932346865145026758391929625102192734561636156828760630150250273357372237743635274230902248079437868470743809774985694733507702596016317108741559543523783793393369928167973435135598477467815440176968749056550612667840962992564305214854046908236429642233827201138091297442644159391884879322090294764391100183869392141435739515592636696710703667331247803597951128003835499593909613815565282695507059396353287182721518615761686463783447515649493673391356056269276410027345302695451991628614985462931285039587962758902061684680627996249884997081608385987980530309482262082839803373077225762543730602989620169288913736543358951631344586584425313324600606945875203909449636412389701662141503278781743738750034951032189410945764742928104016008490577783662064430677919728683234732497774998704545280759771131409866039778251819595840166262903187315272955868075615463424152105663587602431941646519113214672619322248684497632492882275657292541108247682554694465174186303217846159706146332119005143097450447325512493962242909011665597188414686463837560766674737993619787089609460002088723519334081997044599536110354267244385526310006537257792199025001778015851040307389817297789499838783969398526972687958564592738806937080073457858592107901742805497264405534979420214369507113646836203734880122700415382152490798038750143798255029170226663352279561485868136451995662022114809104850331760688108372870954479316178572539337690680946401318951747631478491906140548085994622476712180688495268880095447399507165212616160182475402508986193529116307480351218560551756541768717811104742890389322815167494848823554011899555543890253336026911531371607304021301847149916322666809625154358705688771285335378648551802750616475382240303483872354545755133627780701020250441722296145582306665335882040183508488224460161488504732563736845766189400678948637509734209542897299556048794513760011870673334743086372189349360218436434112827474193661197981623768164937722318724447439978494532589340925505543847766631359979768933056142086118932971628131505297961257988326073336958911045689691934063210370375828441672214159698577314006685247775708119101437090969900192867531517292519081433542070253136445833854233126864041673149651108465851447296582070789346672529974721852555536188198249197768667469303439766157447748176253668757414608736515357596347114012136733691607665952329548101117778644948342973435751586244577263330145442242435858292430761156859181424454349326976501079124272164659467764576535581207588292776816786909037908648803497555437075170067835505413152442002658467248026633134695006424837897900465863624994914948778927199080522656411255051217731560076386211290751542206564524310485689486827986633968931065960145772658075380348016256833480710710666814223148590527317263376244997445702059017625512417073532576131380606258823205025642702536855675611665663809909454677091651229114757089926992370366315611545559150816769150422713852876993644632344894391619532395134409639624020078681142367914425162418239637656685209378211039006853047091375119956910236252991832527424435056645570229012495140994053188486317004925470959565179592212301824686697536085902513255145698123004493517146634403493126616748688653595843521248222251246420293118933207044881157366906670134425079446869897929711773213693090403933345524538517834173159917252959816508612219734392456343740115429085189155176568289688506678690320556708317409871136315170578765071273005919071964343265853946797579563295388695673640950747476504918023691779275516703110826389331549006175976610514537894822569632156528336081929209255357813556983462643311605253230619838264993200323125441145871936227425589390564558193097762613121244214517562003604394322630755800666917049488395690889235102237532068974479986235471731070691626562555727994454219475137536736507649034468353124085794184788349476751502812547713603951664904301765254003772531135926530554127704990432321665686196423063917290204892785920780213993648394435219364732277614035643692308945277896098689352918110407630726410338322914401375782928160068734298427543137968809011427784707048300492634430781337316586651404767729997311203955040421239522558979601508746882425050070461131058845113210020608775907747632578822086640785235741183003658134457019375734676635834200229568096318049920357431316387284535537698274496958183526671884957045979939664245128268949484867715718545413222404240124859693398172460879160213888863300757375027091388870433191045749659654142235774396149349643534681021638443051421229529799754309092000085225478484962018188391368033040362728566672920266192310070467112209515079229183741774100896406738844547906562649922001585396331094772543758249097338400467571850450695530522722498913871620334405926031817545700294023445825676029718032951545874999614542620197917651877437177182145339482594065471424402296366411952280021746620621338111866734162645306666270639314030998051275652566044486657981178031844856579985166196474765939178757963436162437339130191052591837676417053202781908436814959046439884607232650492058467399470876470223020896691940483279718139955112197085357177996324610650850081906126535665137638577997082310923385716522358124363665962840194041323677352712365740029018621915393578692964743285327407295636776898565392695838556736625565045524512679289809807019193623407473528062390533555344596563306208289544752371417577386054911174788465775313041025149065207681824773654284202788332699505849867764730982751136437708226291824984852418396148321961852070324003589860624473289924532232932472790221096001176977152188817775988178807076480154331477611841482306749569267411250180293559680942373631891897960479483308271040800733468979099391610259386040367264389363574806261466919412807612723821078825487278118114838838203053644427973052979580658936788472079464065598394043448738539251352167989670308445155037684214312551066164052107830362262630002663441522681177573857324922155612743573866672636385847309862141094539286102167885682697370844406410786595962297845681792406873228063849215949607505549476483317758797951387009482103200817887300005237320718139569695014361659477888616105069929816639829931328500428713976937711765604415865332546772433049927494958682866888784357133893166925155070960964158796612364137320976972240780006982942688640571812569746051748124584111098311448215811651958416753121308378770950472825563468291662653840373270468499316197441908049504111740307825516062605036918587036592763968086480603293989647086481437445108200665162328491903283370581249969553879241722619760688334704201868614471773571356249837233324237095599442025778141356623780931466559877645950451667440513230060362742848402679580713732909575456540158754612567703898412179533646508249509220304330137026493341324071721177042773895422814645756047046121219829208748191445145270281425542817434921774788829776334300603554448331068419158148414255612087046292735262855852305498662689680255260453971843830331518067775858435852943717135903688351321035309471163343026636028455177545095473681868901045253583541287933018356624417417969922728279317246974247467405596734266218346291062439120896753034161802877666932317163226093067731112551290081783400750791289808664657272090005276145147093310494590665318052625186852980013839802138873307157608272504522294557854123843581858541828057456221669230850800691983730256674938033254094948241049089205330792369083016676084658497180651998841667758822782508184959879264083636629662046656188361487984153586047279938979721618463185553539925463977045866809569487066850484413785040557143888534773685766255646209276906491842008649218415714691941644735080047926081171937592844582050830380614190124353442906600783733417578141547240777749729618478213609045728064737141557226605301284207737768663144373909142628347101513446779350841684721139946502972266800513165763379328165494434688971146532053973817533539613909651482595084596881552485362277305935466968079261133140795154194073770424079770918950749091476285875657049475731260621424188483591967857519044164088707530585016303972074324685733068374213750305231853292207645920925237315331435347474876454126075245647990513219627500985152136496683766821698933226468343515775465351165799424079518492866875205840905020357634146611277919227657542474624931689740220805440922067201937492159291546616624930930470059764910739703032428319770902962021009637462695868107289512097288953787159669339513364424867323356997809209300828031434755253930055431632736608903002644206651104641309564569369720430454884758445173921043874540782187604597665453707988576862413636771897438547422127385295411463075536340774493680870165277165514735379949234671439726850404911145579322238111082116159351137144115424904917568342265943848973437664071707716438285846586960387027318065801956777968871124267975325542480521152420507005343506180636220254548869590583381077253721432819476399014597591173851771395542591188750259932479358522404551955041020826838199112606543219475235635683859359555124327622366397250940883695666588923048783204378270310045043772071106027887710970390799575573265971020517819210868524726588442606314313688805079405934004425687751275020273450045719849876957646334667471219473221934361792889144194947008260042587276704120086312199077716743425188748745839628901945116091313090809060772770349977011443395404162827111397122644314260173041113326113061180697182827561444117084921458760302373418860859151473429081331264138087894596986101477444924307267361946549453018060972951658455752925724390150325965560435728702194438841754896105766283695642103578413823756160828169002671534714576287486622927498425536725547554672910634436530587910198928604156953936589734164380258047384141540114872886064100797383333549221658280990037309536412122566582127017307230073896685713192178948361353437672911551886534578122230083626711526720450931577281273426640232095171910698915391590780327858722788726635583942140713257651482814497188644223386852823023241409259507189592172170371085885218816062501304796654982292300647909226717971839391316737774027635791632902495379984322889800160980830495075829897723011780371058429077144962591691044664022368248323611407983664227835235135487252179674414138648720342296376163175521064141265122409142620987756818996822799296610990407465516477789172038753872739021021793710842903977981902305424128462230459631024260023235202724540540720897547384913194096842751832886816693978196970310582386566517194857813872366670884499389167654753518523987840655711580339960153488333850160681127248114974280913910019506644514638350099022108337027622575383501541508083158225734047803623506630948660488371873015543247991389462728541572822677574941489798762212160676012214038059145290006241410624292971412081676506429791222383550393477526775529375338810359564460326951663543057516670828504216206970816791486827211489293606885174327685095332370380596683372792252760102302283287421906088451923271966138205931293631477503820105502684366038630234532976806962425474537934103818186816685480456621947449602875915623566433583856609389232549578412446623287587238218586807868472951787288168827362124316005740329405620059374272802583218432191041514271518255613793524411287515651374009498313175431458694549542977366707791922684054814817258398546576932128805743219628970956027693518510529780189562042854454205259972118555196695695106001021372850122801336128913320910276431532044214640719169468189893272329760311209664711597762933312453303617745313215971003272311410539948615008915383851581929975488950373288954007982903332569962552920252196872466410874145141966576645792764195555076037233355817158413269627838348922344912198150377869931131768181966420613648529293292678755087972655534889176646205643926938168325132865240951231098702748716124934874817901202206573462536346991329761879538317347326274190439346115930519817914101229657587977730086446379199202718938663725696274720978943414909543213039121494339640158118190092457055401653433071703871854834394510658542737804156577496416397571232622631655612845973124463803047291144610523941610147040944342861725016052443203366370090991287578972762004905722542255369944276492180268713582977619541562943981976128038917085084423849029196713912309066494268280585286104251891872921429404815837986906553826827858179129438587594263190979571278133537362513712101950807301869766041664752298842799725732639979288025320330531528263962987888608799322573132143489570953411852306938112881359227187086880776719119081995569007272920472467637042211313398897879976589673854958044499966139918200419666839889397874795994790882449325306302740969954463445615447871554067279832483581701101466355687828031209765856996969267152775292051067532870900520969463241634093615584411164402079433538582033031568187499491569348698858100459470925912881965870031877053591854688687399567386671248532857847564456830381004408654876585244709313192811706459661633554714233869701374470254251583975125896016364364466039265809658442913642233157880330374871002097134420804915303907687297288685269525316899525034572280720681809151886126958436457072423343436345885223189652524077802877455327784259341838012209241901509324052124217299958464250421921590985827923312790305339426891365060890426329328056079981477827127072370246151681115902156793331021557829308859407326169682403136298054224408188131146167799745062840390190619200707249520714747545802017048984622020426341451528267251696620244475843739475074040791184844753175480807362663619830541032137734729983855473997565180945165140544340918794433439505156284251638004301503823384133067002962521740419160732992771542193976339499905952666115773494026483527392303604838721166351855005581048478741465982477355357000898307707236554690239844409219384183759503953024381536179842411696599429352564272518848252122712423111181269209242479775867906432109560029763726845590026697957671837777280884196027317184402587422894808267270108023942251523883154575547016795185703479695686076349532220821161163865888769833098869351969176205626225332256755141730934115385917738320976483673837119585724882788027069826616334594803544844030410843123740118653879088537111712763953452515501492995203804429257777361687071183103472332445377823797923683506341187323016270704300427750541356333325193084907250819251406038666183622042060968785037454533551587493255123545119248798258305031367739976810949132003903703685183751232535705182239208790160467934829730434911543980399045468484286563321460319595071366759805534007693030699613164469358446640972361154102278544984939997568714464619950926255826071548056546462126989842256853528161068058944443085662210248089793109019978452592476066381462762690727396978405902054085318606465620841074337472279740330073456830154117377411590756149116833948685704285045331930464751023762541766482314309063215857017834863994101845320113515279405236369981181054940340011066008575762927553108942197252094814923028331919904377071405259849762091950887473415315357848323843528467729520843878397161635637206720468338796302703302241665723130919361817661466012643387853632575096777165313998755244668346322267309342618305352007987243196650637232691465218854842917439389641255475806454156594485048400418923037491916239108061459886883252386089472252302073793520988860439983965415004132386812040562584796343244826386492764855905266105895098399538262744913724374626126540930261277839844178667264016005065004130249541061835083536068884916916624671538141082809431123546492981848423778706262482306146422376708900686087517705402650869827659262405670874708953917068439696984858362416780030856571366455721183639921047760765255699827688097821249985750283594145205264290761760048322826798603418618770486211560657384284831369596698277871597070425151931112741672516674157520417295006820637183809478464953467564510963163361619949800034723096261397539454811878120922452878251358986804534856360794641479955190409805526813859184711836225659930333858856932186750748530992912556862301529023828935455746906472116985492583719760003733474759040908389450541264371440211078476834310205905466931542077932461133217329905506190065555758594065325064092900717334832622882298001354709039494952754841857795012245824357916943804926352995160864072643901145339721449815788751924152227053185203386334975401069347058303864765324529488928511535454995770095720939981219799650094891647365574106558857246612653523808683573011821579902024722288620056311927143602287171124908430876689510718007461536149297584711638081217236078239092299825979114978995078101069728709422163144647376186127853603615533108995210223577833580516709286194439665021535593371489270808256369906954541093985926771083776054853849621743982975122143902224919039412806440801483969852575549665972408877988916036078812598519627642060484285364865794008739738070053882588063507024276167422661935084627992330127862426562406858985878051133539882731296947125860173663773381483191607800272911783127079664957005436020949143533778981298522837021966106419711205241504373790934784850257826864462832920454103753282227261351111283428308283395184400933537901596778708875807825615032444346534337376175783156591955370231821727061776362333473894518870276360592352160431936792469457260793185135410571971900159452659205751898001126232624812529554958279568745461872009790906290803455583162349193564950046913651092215123076788341123166165934423117620435835425899610870618841499869445442460927764824564954102685753331225556696195761861171041244468758064255408268581067646410352929473700059647795590923330316661731123244025108210638890631636955972312903452973356862771605558093099966218815089355356172892848206135936543429163843792627742275757790219532494559855004553395020331734552365676214576848727760580996321278711291049810042644486788320238774528791988733354698035079859967996420847153913008800498564977727775300207115431836477548297634232758973505125669817668690677168083673423114566088407387809925067009872546359036405170370506303634067665759145252309883535693170186453354954877585218070473456103004018187925888679211365084334053157325270697447120068106040892181703521225649027354142308975291454227676649601694964986532990645216599001906048038890810367548307186095286436741130327246838564651890017908141554550944853556837211663209795334910924566277574742471573949209667134431562224621923741368668114081027824348131598799345088503030419165555622477764541349832243747734692484606476442639651859936090932616424528739648673867588228429143567081132843013969343185376007000760913814369513608200313188007455798239916953514495197666789842327422872392811215018640690049761121979744623451223965207950752711295025202280423940173945277362270111487196954184542559754082149380612096174092757278168876779870347181475722013637406765412367667481328837331934462988180595069428225602527449375212176836329066340656543615569545442892366120101066407791348188282660057785495703708243193568070671715159039191586367600417119532023197058237654797787155462752700702298378062213122617891656715478672839333706919989686834394549837920381650410650369776471510427654928054937288033909187721463985027091183439402682766564762985397163067634108832451900478203014524225824672808865818373195918797949168454977324928890609818521263064415757844483546785206757201331256139262387957356076118922843897765767467009260115665658611233317668355572075992347531913550140085260145786714176202175064470306221673733114592961475709392837456219151776692684516763931931430437054259196017636705829135994303737477839035408910326843674060182738196188455227232870654764877896959062090565794691463918289275943136467430362663338073852602846309682717515607832482569086554294600914752885497612691497084028973029138691714916506419196782183261309296230509792123377743187703264704621206666898270467297848481575392732110459039870169424780739314882682420216908637303447745514473868434402681489344445762228856912079744810370485627232476422159118716792992215096100929656642613793195103056196260173077244439201877681767275801780796807620085119764524580367795398247249078506778468467686049362633202520719115769527014963931522781577928583946465822866934571648202410953273903328329996581497830213190099996259783007737358678639010089492121511048666331510165284754185323231783872387462650403311007162488181308472863580642115368186599169187324867823607782452351997390798291698476257837645664846753658818831442743751874484291813108350303941910033949718657835725356944703594983398748484589470176240626725451783574686727460547806623421340637430444387309564575301464673534198098847009638605818204787903114361740697279953528075993093141783329396764120091796579365960153514504493242343283937719245157873747938216906318688403930451383198953385605903458814464511173074833543493790159920982850107705159951368011266303838186136066409955945485782179191767471330638486558759848346388034972003803115373393691509250945776124681965693013838358433784773702451697400779499359921565081680985212530232541991835378544829170153063100937568794891783610786291613412668720072827729354047515801692011661099395080342774005202503975954862249162516738396376862236619428237940677425391103247328372578517353809354652324406857590913162992418516815895849147300706356807029842170374580821126370709507432486440545521323503905071096138300648999143246373668227811581300618198820608845454447886530515065563983724552238331305329309051659189279066420316145115828225751309825914607878722028578338901348841057072386716114591383242272367728738576094680551032948936445725823379949595198205674961795140531886865760738382304557087200443157475698973338549818668898302663668910181906152068166156108765482240082017021321506155077232044445453478874096211187699216008076048943575790934737479215443505874339229612715462265115083046318779456438909526782668724914563753810733957106965797661253943445270959900583439862928488479133779004501948233326066808468201869237575734330103150183523155992890459980190615646410020367480857400360739948037654687000864888930864790417843377130747113097615280226586492332302694182239889735500247487797121821346527941266237557122564322828184735433795436229947575395198645279341316477060540238652230279589539077204584965435930077611807893433379159627413079162362704934301340369057490331457060117626484116734992485134003697138383330959315976227076341607081973990251888918085742747636841945325309310884865889569648287755941541438535880309884976672046959820818295907626599341308399980582742016264235892737224499612871509649621009378975813695666637365191642540071738811985280640150199082056468442809139218922859022544617305902269122780817297521478761355282477521251831551469677036379065641179173664975571879415263712047372125888049295486142910254080670572898999094925407827453605828346256742394682233919712458868807772180573032939163741899619752711741418624023075474181153694794674144971936024981293077460177033578719506353055311849903869546916807711923630747724123260045519834791522501437185300634695256215427371928304019034533103263873706269952438329863193404004894986419148646076189476566658462456078825286355190729570319996095176411076974659200155604357336965539918293079122114912387438424663498999624360836717099669169073255676700132956524354763212699262616653688011986951855759398727822419448054683489772132256616757830291931771927065951830047250886454078556456070504373471012634904624566865680485382698315655388840626138975490980346361368214232246420680614054335351146915649015479143484257478532303939673704005667649143791869152548082807233180473805311122401439432323173741476092961030349521433199310827990192678788591532086808500548130995923999275700341560324355965129683831875302826195655821262215153618751794519442148969523815158817756302332263289814745392203642845155622915347680442858198195081212569019129733474119192325740662819677931115079810246589214734849896284313353302819366717320453747766558621392507274027939823478189068027539832548428390820622708471109570938659682086182016783736139361462379740233131916347296272695774978709405551137303926631508637608395824253950059537711178938947299953284880074195014001678914409234417902728216634871922994305580738378023013041765181096149483903225261542138046000884843927703040305102496578846264734787826221996297619151077469996738166655047175882722486064900148335667569811893056468428742871515168335611382204791536668070310842697072018237808411859918436878054002055211251795078407316398933846582895242159749446343703931942487769150139874449376586014108787570672988419150437073250648333585226106598370386008901427747275202588369078312281549536750202946747340396504538756934619649679289464802805981346607305199143318005549050583640584094772741565500418533540539605723061506516851601946647121348859350750427406836929855380194523130785939779037973122906414519257196637402755903289036663945320181715318888809432013437283114091469163553591153194279306263697217380672682194045899853326210669813910748736020206016824514232663117130127948341246374229628912246586420869182005647224939383013369058255852478071073622914836612715773912175738313085847175091410416635926278495686078995215477104718010591672852766824429936831347859133746676976159609909168476199987423357863797426720752506496207724849501609247252880848021087610299696694921829536579916807717700582094842785339724355096841968012509863119389753713277576412470461294479427520986945203116130758766059495576859136646665885588881917457858930455397109107498343850739237891392939846341111444871736983820507819538054080218226412781465934704523680488314941423101443900724085414798840063347340963067610263438093876615751539633045989784591911544661004762966060788889293673983534628916610727543782167626338908642805306777583768520883442769132200158438410576163157414290248789708363601417805952461072002240985562367723292529529987967265875888185689945450903716474933853867072002225399545429006033574733459825309696427884719209267878369404561213571536253760819052708186679701948985241363340973336261612659939954598481122708313453030848082248796930891220820767135537988501949271359160286844961328078927444939795892027637392833684155588303283343202155625216691031648982573492839661821675447887195662242229324245052283851261235863753807574754943231900914090883506173293336182756615578640111889635441922871028198012952222988116508804458798608755476313030156344720833544931800015660540292139984987778681708144041377424642545844099230981523628386757707124005223867853198583123810587757255604570112666431030898613880675174096459654621413515960310347658648802680004277864661635438047409865610173150604514223199902161712572306712744110564367187258660138093236345181638321927247046182979187242094802427501369824974751932684444268485989340545542187525493970924632900606083633765446848851531091073290735625780853717077450998494884086077416832722848598353095988962964530278461931311626784524027832242359424316713497314688876385720399402593514655048090209438712813507072743690296879511521075158599602516861844546440804054192751590691383562303701400602174156027319280366522179791125832409467841131120284960814638015075049743536247671384561630068172385926320280071085169088618907225313730788759814380583601138207630921101397591901290717936307415129208190210433375937724849901155290430862922400982774099179883797561797313079820990989968404840041016408515626526705436961184289439078385842356752751732982979269450283176031724933825131172114188658759051290009019884215315674947228124269825801906576568316085428877791870295027324013142238502684206738595398794985128386092101587489114646707154169909473786156185392694772373246953515552890024357374160096701437712773708396431829940362951882596646764244778111156673298664006987682343366123871779223002163336842284564334168388425249083081843098040916541143007463715079090698528836379121729618734967434969333949701598145616434689244779532539409940027743506075923372695013605171468264946160979998270831547999830528752811558541190486900493726710628861303693824630808429445029629690405227269912186959277386578694347316054816406833812521244941525855404120142973829665714203193728887927233665791012458264492651793190020272806666158371137723980340998023466843722641966240750085338342637594289933326342160679773482466466958410681017452738582070615916120003292702533117223851392814244165858931366560359637773556195495822253211139992497238419780243931269294158047226571303637076438550090406761859173194639171720448606497098862533183614720443904318617005959255604064318079867585746453039648836747251612989870189553959364330203704310508034579302681434853343026780816130727804593038524071380899510152678495926140596545135602778344020908779683658418600248891214727877437288192277649154529380026138265902546729507211992491631133408518121975888830818256503344120216781307818996148181905545788163517660661585618410679408408229931576652774619838798896720661185915110323246752014319008346704902223538169433805744750542524490864151805372717447993762682881586085333801414048908225637297181132509942454104865382132392250506396329070493467926075703672568045967624275872733184937417063672940029024188914858922421859765646717355741566238491989506940682206408670264821836132996787355219090568164462261299228839311637692432959308348665545655466457968859124670117951360890376514239052343455198433502817393033995740950244414029600045953542056455162255002706030612500161989048515471000161993111019407597850551995275518357262546972440543733421189961021784422010522545048937612628287229797202964144287849650858718807462565634384216196472367770555979596589328690451895342940624448167541210094351276341008013322419292979097738713847827375425979934922519108903570130760677558934219149939990883338856129258510594397312349096184290856858874142469001132341935834708710464710509873783330691251374826905544137163463367110096328237406069905724282612107442322955101695200864631782635821174825025208320749617944497472365742525564093471156931413386043001082380836051013026708030815576500818566916411655055198842800350502497047720784349983699546171785070717347939464202422027923904344794291389811720471957582536985986878852669384556977281834419508608075951033984197231906767295153894268665124153803182607038529225137086955031876331836850471641869349843525509621526260304717274775509483339696153313025621638417327975487691314112132688636598820568911443949695868323582008571763195439181610864898398201261299517701955676512797516026942168213698788564049729273847939468243101442654759579989137795465569686776432204894999992752510523738080595435768377074383460759429499155840852522085009948250565635424654574210979749445126671652910647715638821000754338225046420344376008965690716354825236733291499907349515256246353770894274520006842259159592902654566563692539118162022251594075070338795142979926967748187667322985281955228371662604305650225715629942968735432861281329641792524078995577706557866409391277000040660211490607675353525730117716773615976449718289650551560218875400029819077770072384815844565876925814490980313173718815456349865833078569193382517080356172919584341945648278098554410426353132966545232742849946113604680707640741264435338915284126438469456559641718440849638936606108261608169057987820515712054383877324692491461484468732084814552915873273636608531640674809267185378761282837076924792433773100989015031885989697861192678618493912298694597321222659923871330789132199820418894396463868557726230824056741532821912064066669694579368957637567996192493709523681800939698661189392909748878161070550811831746266648028707282330896123813583123258644133619107747164608959568439204890294704362065915759533613027830491448690625221698809698085895408833712406276588485193491580072177074567274829943850876849726910893101809168330042375327652556226154670601579263556075860861111661640501071563594756593928133829242927118620169218198752944757293027278445124712092927913575262808342600804094557607945285278284426827182067531147593445449279685716863401228765004746095365794764616574640952058007785521789648371591783882090702014367497233438425222098860071243380181459648934286839032274930106059066900353008131664617961549489309667454830071850067438287389328661644018862162527363425900833797561451961642838011029028165042012242087457682306245771171445849387776742580212878848737875060879895229325915183184192856229397229005492255260613308204814243715012937977110981362495111588799897441122408426711481780849606143335412553271857076947658981375575847195510178886398002837545313285766674411053006132991583740977719431645537162840733329288637389647631738835398312054498418569458403500538008514832135134754517594995536152733699654448795694799981074202398315579247029054582052909600492559165707837634796087558266824357705118667948792661119434715110239542098683497503432266435443029510811156140802297448620537044560657252383232331999442808358319708016908126803302923317547929504536036958960621760642199746524385568666035306686499194795371290432921553405859945858150714751956779337394104553787441477894844636451596883884535800408232483507321706243481722192259064666109451142060424286864991593104048127461621341132611127560332522951895323859485975134235153485590326575866584224921868647804341310553083425339357833865021352418633392259641956605129817261393592887195149439119583416585066682359423992265174344616813356681659349349850627550943066190339733656306223316704939577993236178355743016477764999293252885199708744579677292458971491337681431524072299030900305673573562236973875481909655460009761675774764952617325780572953935731676864081295914391459074182396634695198349134157324266341767631162179273142799282835751827782735431139921471516746875094680336818439253763226866465684805265886272858769435589340928660593198612128779726464189519773976415804587539688946541348399558779138311576354241302593358524042207566479855428025204273812287235376989288790612892426171716487383726859019481229504268242216561612003468178700023624956883620530395816721178341958397216305902952181884882299281943320943350844687086492509444976521895937550894735914802800923112278617726328211573323794106637135578681117621053992231803496551229523901976013763148522423386067743213627442746596764697871533254045070974979934275887385941858754128390720024874850877346842935718044487960550426041280610618748314083905502034827329594198875149690337689057599568950538202982331390182640699581442956172698222837878634796418025246132802707448348596702564926878490715750088059682867972067915960244464116188802108003039824789258306354419691844959108377112017800291953555502956384092908023367093555743306625722846351226349189631545735789372505088366065261704510712709126075835153359893606283930840959108157678279028283275390315804761818039304815889156650777915667186275156341390602250810319859426701036097237973434259202360988741426938439906138843206395603913079233578471987374092422855177008787331644211829218077311427045784437643982796739252509744599187094357150519142045532672761230981955820996143607450334517541676304252309596241558684531620165933734472726171595898137909519634223245490539822695507032078348449629151991193237826877429503772282008300231459861571705322284952859478930740793142639161147258747610661231454696911842229610777324287996442801076155054077287144757613802943305985729690928407699593325509968020782176965107934134839837800380459300246156708350858616593184787083451869320651815996746682354134960593025886436215560692120137912942405005065910711711289047749662695147000300541081823998672640791483365212812379865085005704906943782921231795673988185315280498831054929559750109336032668671541122861697643777023174147538406452238182219479473619353649229026788112019042461441025034610953814807860139512604028946366559584272304705965227044844711372109414835668540499086691425003032411958320689253799729873106255858314519662158910070431764494918746398417191461689746080224864869273158421365124882430600986404691430384416584814301325762268073869230210756114298390595481456028260242357572017664629534350246923773465561990553001519787433812197352363698585830185421156466181562433659846299683115315976237583531740655046625194535127457163921618845104512393499407247772671766316767282431565583442219440970373785623987975816464145808969101882143809805888780641854442000462675433236217386005236610300552119044059244682932292633135967582540697197499031973135442917636622278412284922752256980517837546653520749788933134976071477996490634080853052902805422460119825495688591155982400369140740523870323056305556785123455144634739158842942280828871782819517674831141196689147062089186975353891725192086592052801882764927548900902412202496964036000568003871175956898464887360574960602479393623058746159574672987579753850761822951392031509575034426777470290415092371156964108139960272490328727428501234969523574064092235808138283633737219646066090503416646332876726154657087137442014991099460190697546662761290539489024163467024922457094834148206745526518887265095029042493394342776220859997481266669421709327569963299639895187858096431043614655070496778275368339928436724536645508068343164391256723281572043537418451125405035625619874432299716041290066310288741810921863212405636617106772814250723448944806812604716694621297594029681850687116876890203582175668890858735626255567832386174535544068945435865332056483364389820831228782227670112660524676641514626440168155968353162864051112453185358918108061107388517396568618139663803357344501178048981960459269187348626311753115724764511227156980176479264909522322202636317506446094890628549351169097878266937527438844468355290450207989829238107345446610972630696497934148242582651094012484347136498549309353195577434870002992646209460846014215600277749888593673798292787609201208657501105639837338719128299621475334563956690785483617666814705670714815442495502023192069776739583210158119493880577649325812604988878194912919279274213268195653562564841385410626210325037753111422481642743894448575832431343498998450021651720813316431810785349654513054510173155695931869004016425258285921849465567550971968337560580174223853547951763640602992879631577476696561281633155615152885345555816041570397078440937070572059700122249723772778414824580592909692800552972697508965992753299995809073211308133114190919773536470007360770486950708906433608933944882941070926076995404543458000883277658162799696316833114589037875754144363748798974096540636318545757897247727868045172349411972779311320172948157321080807028319551846920895913582108423236859242034343457970975721072491377881399292343292633848824877237391226531648225840829851194183753242615192567967683167484918222166985499645557420201058006887622320500022929431559560548951326567892532456577266776651389125835750743060326087492102765914958454082363390579921208452656084606097352569114529919523363649121621524261722263488801919944807748698202642072440314751212848202560558416893611310925553020108171527624503506705886225909137563634884491365507067505227805743784007643328129090207429788455876709532030668564006338951881262101934091449908268385370907981363835679959235426117606713642585539890729455374177392445873662388267256599594725605968993139702691719520613033782680638330657997489852443763599251607783182126620926307206311980229619183468324639385845496400423322109439191447747052890639838591752241558620519912135180402250260592458759791074361464944592964511358791542423409846908850216606110468357420182896107668235457418118757138263721135543132871352722173816328856313606909548594641236635534327029109347566200004886728767217079666521884290845029076911787646225841503350219133772242884653550512204313358095471544967216906928940440771372240520012293713609252715207920652437762308545150214115301253868543241532302419436077183205683168189977271343879325793370698462238339485742887528169480119977732092252740086735265668297370310127508807314195210621260057399404396785198763116533736457946451499249529964896171742663913617506316946878751288839414872235316627954704864065820200719450312636400985796695574257068309076449906805665738751451097998517189276261319326391932530626488336798340755484436536818957964708967409028780570787825884460910657751279214304803733202086965934914499194379597662048234144555682605336906744734469286585937114819356203829464493539423065122088365332259552352780190831200966419113748723183267877132276003879951917665659077305938298550680960669461928169289470968163333223722534432366947752211523052145384478161672133291539443388943789992255697765832475445582807093550801364953976653566243101032544327305904234012741716821213932588077651661711002793177788770883919272020197018063362213608285096158844682680911170484278598078612895743130014625266816055143955116603555522387292626510627397845645461494361001278471345665567724492865237017409251779954357645992373537063938190932993003510066102376178167511136015903874487759368350727564116537909968577481082184150005075424657038833982062166014384176523741554757698903374699531295630617955177907164381897076843830369139916098619808884324228752959873231138654998491306447008933409580052644111182701171197150393896313900575046835120439686122004295511708035467856488710295271047248047133321215881185820771486892113567759490743937021320350042538125871576925785304657792510327624881755050255822235986621449890650956969459039041713982408635446234926775716940203188267783689843119291188839571779883865082176630214590768916184267361516999694793399206061234701540090182424487667153242854503251081937808492220917736236290258610384056432795737630164301027853991747018532658802416428182580675562808225772656844340666197317145173018274350013190903771783968500449067455658759355291509077062534173004093380195790989612793613279191027693194203798895762668921064826934534485515196482148915789201564640855240852524012994161859354593853325361668143881257959607182047426244391268609803460617628764673308992044795437102128405875375548280296503589206035674543763436777065728057061643503719038146557051668460200751145586528261045321738389429642337586785503179991600104439443485491114124971226734597816235569555825909651192232447794863093869470787911598343550669948645364401650195844364682792067339656502657357318090813581832261636305270874209734442805644896080682773216120743165181455085848251027473230588696103449695575096983514521098054201541804576766439044846039008603935001452267877295385113732668284546237974891220999035842560496091313170341842112851204711751242715115585132649080026451191929414018021421293878450991564979410771976412994415351895202359571179691551809633591546481942579698566768582402219115262495072426633599742898996348737398486912977421826637109837885914773256188179669822593181660519214345632390458528048091146445623958611708029730171474716833592321595003615998755289674589201393695640314964903657207860486117579402866384505951338152512126310599100336327696369841913924318854916005611877405979481212006095803011997870924236678716887572865335428398481457253010997122771427408086511695794507383126119167169074519123841242136955579529358976948776673431854753077886572029075176238554148456863021470889863462746354908927157799010157186455456661485176078369151510810534883356217425702334344549185183912736828697151728544885486481929900132481751410358186044797639858483222904745542364065382814548989579440699442223122073779465652016124929320475121086674768128333054692655276858493784035490237305850255588738561993084653118337795700569331458265868078679397939244358689841121367561381879526901601226554580781467327509015425890582366805183400268776835761361625031978694393949807359789952337562639661068187193939591866534333467982249305877356975643675166418018319747841729714637096458120998209784059448663156599798410984674198216762118251992009391133543158698792122146661979815645640940597732877202080020687746509395947752358245161620390407668406614582511356437339177548669525444949834262468641753316334590953934269804917607700723192149134084257307879498464048459391748982461757390978073818438649048984955679121786365502891583126774247266080176967403069283566635328548585539050569480865201872559899471086275739291076787350319057956755496666165706029690511453907115166348187097044846658310095005841848920376912671323539215394242057882092134507649334558427885074827790084137178333609143224104097383695568280831648812458450013094194046559929240716774504528014978416500328932575875595743223290749871708218981559008852223061957222929499600613523155464591142598999231196151122628974140162267098770186254888725975359098333895682886695719365417027665165546648176613991331033268261856563921979389141026521434785113537207086080552037214074839954738748064753585524399392409722255322248532244576093135771182515718432968564463691388529761348174499771544165536022195746310107631503767642950744083244119555047968187828793237471172339081784519610189288406375242001431578638975321418271628894573021549995654007353025073893046630642655265512831421300763701278124141228848105643189659251497256509891761781861095820618051657689481446675213747567532596593105265235380673867578845783962372908349111701749044330483782140059985986254775799540740859897864773935750277470138759069390170381929319891552622128392064654138661238457079362116183064017912388411627190917808431730110026382534850485363405129566518484178597510502523121331991551608971380062451070397226730855146677015101130906965043609142849561624934620015700846168600285687924649835389450566066285583953420206191507841164193940092929205076993381149090897406762619777332839277669280175662097267474780687669826182460288629892646886805602191497318973050402216537052742112102420663382632746100812221212943262503429617796084569783349078443470852069357501143929255148274181727963147333307863102804952246205060135413389687172382750196364336090094753324739980090773246325809605999286247305251155085799052749221708224672506013379037827522518245448619130305894630249936389307236720429860296980082987689845746691008892164458818364594703684619828461389110075129339842020667600202699881156076196927574202311877746036375302082955967071205232396845405802471107029450033986114303451991468788886383560117098135185874495359361287459589674062009039357124697294048282312133184784564935904718993858609496266638965911655562220262242718476634516462136591631313142821233384264594146570564373311271098052406710194589465748428526550340142391411703709315389220193179445247630676802159332479817987905272840137460087562414485620699555785062634025194573737495853007880901530600884878418181118577805342839210865776337918301774222466863288713695412731076748330913965958399483605971207415590201686846475131672585712385155491882840952704835032793218477539470009787584325340363716889844314330616828888251866401584089885854176135856051274153536835790483631264696686592913420289345943478954576252639709980636219441563605168539083801961064640811787698471585981175038092024616527752992816470229937937862495407481468544639281540168008559289664798728214787586816776126087124170088429478470166558786012113791373279373061045261851198672101922910597921784946681723697051150593517819278930267323350412363126228966133178871664439984432185893347642235549900121837866230891391925563673874075915032426987993927757283221100835186013687933496797187361190020077993178146325557612702891286382912641124256897737024327840504129528836431515332287698448437917341033842291468966858199876088355625525590948705906799005125247135918244462753597554418232650485577353287111291744891577090247968343182283463537301743365033585528593618544203451061301701901567402673659305329493397529754908981349224524552025379448387559543063793110182852043074105805760612212909745407716044906014369172205757290421776605896278689436569369799668743843321037231431460039390783926580695132978638868037445131153378671397458473730889234292072278738470517292830830079058621292899167625436225032403415930244602889755019624405952321656874509375216586816045449978337979801274556440345631583445539850186595372118796133477461357532978002733445184545201768467005467426727423544990094957715863097967921418485696224738918883922857578131336682355430988325426293563753664779140007144278072674592750784013854113839679923354215520412117525753731796946340831777827086988303830741737603441350857120887730058177332050226336463416930751267625098578132086922857480138478594061694180476143417182625112589866111776621076591508079576482033927787902258476343122666624556743948785760915551123897924809638374790501573521464325727571690061946970361719198616134779793409432059543270222513763263987451010729108993867594393120655329645540838689919976545228421600469154040703774485135716044568231142352440623534868224977694106086096402886285160803549848403988373518301213763070702053374340201162016048771735152871861384073589019235707619177944663336741050680401371804412883150899924750530068182817299251371313784481314913244472143864980831633944479665003741426525260501098659702206363325309274334038631848019401141641713164316108564727560856229408492628944537967583451185178377585094358725147298107991308359971020339857215068107013235073869361242237073605515908212707933412808552140427990832708821968334825223031506059698899023678879278516438360009203178991360875770384698537219886264387356537258722623180458189664694864655915422490243706172142264473007016475373245747022651192214837042005351992456841872641361687421261865090841493288378308304646809267390656414036298440347043930078719034912739687708871996798055423058382313789758778397958836610716550256774784252835130301947906790254135963586269104606538081366093985252591005579960609931204009056581298120322415857780814972462331212099759460546439809564985078338926651144542286537764884411409181825349165869807456372929615534798130798494823687002901249504659797109203588149396597258956332328961198701869218413372754614424728150333716744470300820293031367802244093192661468975123804291355249569582024489086476865681107041666108191135090237200467895164083582322447932816303727539607045165173887207148203887445562958400474121761408236654198925635971104120288802433049023593234652858804690042591143112212059418944900928014540842163213612077668762107043205364583625767599264283378862751484374178511609663938068739094608933584684894058281377110254701047027410465417590532034380660082897709735504399066617453325320054051000397892142878243962269849959323981515978125308141963198799181704947298490569419469267004775954929891947443545435799345363495641026961945171644420632046138382484610291469064320026669441386448506160171914889119317256844277811704618245200728544609193958372975726151432051512266492316646448192371606919362702450123516406148774499847930565979277538292434255048746102040372548164440607010632876527553777510364049869100158330591552515092279150913427181032591578936565886511474429792036438236088623565779080212089633532642332251230346112616765320313500174088982640991007243217068856827039849739353714580537402414648092836951963735683799734330528588778650348320778281412826306466675750174838231373729580234605176271855702738299652069197518245606246540652758162816048240056530049753239598759345725858764205958889231986580854498034031432079124918082027874904460050791173905552233755850142379569779253110067895414489093969302449931203753301753252848673898391585399337774804651914342746600560536597497231641969937160162563671087881210489218606147760525682094099896351304313846099041212415130702805626857766908206396331224246158048663673966514902899631115500105732737762466202013616000218776384081845103976257026201110878450636103379071287005985615557984879881068205851884667474976586134633439576212975663713913708474050744760388591456727445195933041004277647365746364566266016274451834975882135363982166171437689270163811318485325648775891743946423361646839103803519456482833571128678372724425349005438959663443709947622338730013173115299795645119467135866408286616491155492452927313839814825807487421921165833709925911339794814732925682146321430494634861434380882074709890178805408333872084199954237065493793718925087122163021535172512990052870941636157658732338574594573149498444098667457625637882176820487704823238264146269811611822693632121662267209361362268270629397497160940733296632696742253233115235784581854480084192293123683598947527135251471084628610956069652682744387725933469022566418061328715342995250672659794375861031645055220270570385808655133076655640881730419094368431408741087570668261091650462594666481192281169219662543690941111437060440621579396578557130469912369558280031705646867127252822213324893937542705056273221339978683059759419003925621728073891516979710136380104307846056549860966234999198385420568385416185359517951202297167478517979635719368602057843083134721006957139795105542540789102410036431718414542575605666769520870309831093537674601287516065870607746458261656056681269368940449085345525855641379779585030368289789526124292877342144487824171452062686312172977065303796787220447066230666809913142408629731902582147890222612871023904316927318534681167008292552610115769066958292017961740649265287949537923306636610755256899994310199762320372951352879357803730483114480542684198357021380572431571806112764888493903263889658375950518502870542054826669907762597915772919250669338822491857519173220557979668832982100749839638092613035742459188903996867534942626739081192867578038495548914896850620167237935974341558802304794245172110532382162027820034653810749536669077140882488259714815245646266363573220494325565935547993329934821487330813861769206369222438058311441440337509015255351077160871050816066812708439111831816032877367439549123002263140278947910886671718752095281308519805733007936545032837408034745209516435713821934475046109681361984799959099748996578566695990201354787393218253865027199816031018951408407926760871697209338388713774988615263549381728727732814689901009034359543155324441975975546947664615189354742210220454351506471695254703762938403395045989063063085493099790826185036970789141003948585064679347668386758577856536835929329986482490776833444150797711723316370840802122063807233623404671119437238991834549395653167926815004920824384136108194063885687857256659730310404458114996219692630255726910681108287348446735438269122994377704990079942813436926816236491050842571710420999294578826855432940592833151503757892003927878645862107233057798238273204007998040011817448727808285432895983017337980431221575296969842019084236964499036028089698048194181070567918384911197013979596878021720743753982436559016429882198285308358759942132346308650428853390070252353058998643871926265927786605640821601291166623695419080730758398933203732247207461339492193847122896026010200827608572244886209059850341203249837437554825996227035285899377462878249178126285325324170294299884809473625769936356155937701556691370350896196630035249749369354976475569558097496535235705664212065096887037746505143511858610873927253229765128752745982724993308391397972292379438067461698584084232317776757978985155307537098425919131842195246900440299543381204117650444037968042177295512916866755641072313832688406458415039059697303193777673580422697747438204594973043625322369135511903440790450775914704417934722243161689221022957231332437902332766917878926437320611523013420675451031527585497348025738176318599476769990520286527913865172059864433310835149622565929068638362989121573786192713114424355014632172642359574800704144551830653120056577720763343059665749639075935490554293623929068616220855928477503286845650932618594145375594041325810356235088602599503165703991945943875821984942665226227150923386954837392728709097453160062404279670076611240149102616536212374625982694171235712072721618711391680274895064337267972449393102519115343383353481804938379236315090412634566797571537514966607820050061269682960656872631838881893231758292863181263884978641795182006538488526733207729088450804032014267486179285706259001441673495493506548409804490065901276624058822563504141839605484961654144415859416064719913722147449971917574898634414908380067575472651975574080865981321858245534229763252427812028379317534242490105252773094551106301465787202588575727677668412307295738400737807529080385248787469993642369633962308080149670078861488184627660474377106803189611054921975990632873677783193582526315542541673376486938652219027956494098423345326757855300571044785591474687346572903693956265628151896886108130711469514516696035465602664497655749539805394854354456851685934022611425052813253904812009384938525008130187103356347807577329824796989271029427614745519332602169850656412308263961525880348756937846327876408426355606508168010901216259163954130046645809138915128229858759756919222727553174113574250206828889125476041310300002650261321816487550370086549135998814686768980711775711147177104945750104895940165753452475085930430056283907201576922813408668563521792389060572421414171106396123938312108893847066410019287155900286060762716765466085887679739531796040213192468720521166552736272122873013083155066985028933155750459268829856213796424661273093218135662884184428843730625030433163081839400492269393187713656380035363362426922481178581295035256579153916191359719359478837500201515613745006919702879696690853424552357114134349352155948551414016082045335891064275404514386945822605031988320627395047343824842771167968489151210475101551264360365030628743759170448662328464967993419738240265586806098487937676866014174636228676319746219547192513703445307783035993766604631404428466996987925334116667846461808243451394487164139553540182536162553238407007047574754117953737177802808687099213054320398887310242383608040833541346695850150390891058133282777599643112862789424223767153894002746314622480477014757514283080258038161118341574263667919983158654626504759905698288919926881259976367958630239203136399426951228261500656676250825661707359320628619797451020563399629311180902312495836833692107497691645005143407609335914856192767807014582828735671415996527607577391384230356102431431966673609629995842517397251190595681534918182628784014623857901576764316270190947796510552545915749327281833852891078771248253917809651179162469168933122720218337145688344130546757887946038346620251977390899275206014051292299681199247089497828626928725448392005193098822734304989647015220244751563507281655437719321796753280326618378761591986366558537251955547276842355676843408883400955788323394430432920519543908922974889877155421308167640427463171736072291491265607184618311585475942715856983992971956731168524705424607479855389879257017058059544932009432048859986409645254030943440365042366981115664582747622328715240776776815316353221748462343537271963176393082887523540128272657842577775897637073565521123163215749444937352627361447147869424109118037804572232967730039981053791286893539584744807319160204313149885639320119183624228664326573850324321324889056405476156649201094941051403434853029394680794516297143334513175925747091088778280642279996542503729085342263825719351193377188079186171786211814144466378382059525977897259737676180759434349575508415145172097950071952579123279192650757143557903263411187598984540229448108801835934405888561841415365003788489217571641611066099716014383627610135737071977746038414494145033224869762167616942539946876356180539047674377728209785595403980080498123282108212977933584170204982566925623768786315791577505062575145105143514009264407141734825964143558157884676672974282707628924046671139722065904716552692223907385628205268045559663224733050033144664341437758762574797045875918698091880376431988227581976341364284827878003370665454154999829476144322813938409416776237802747998393789640125276690590416209369370433768487715159250678195172527561670143209398755899757662482534903764413099244693539716491386419180903379419679268998800421059007766666178997387668520461905295145760032308059667311592429853431042933714583755154325839612111931113353760167632943758900271808322017260132493457958020955617556130787739777837288809704544641945558352448129144107257427282122810710927660684643883295539625012505430877179100380714769778754912393192705893542828027243209777582679329497729918718745097546348123934603681919513010844836190210230860488544783128302064841762042473620388858215777110929467638533334929667498049018425635423766276930975327167954507089884692971451227123710865746839809363598632263725429034847332986947182464500896153658095459866149576288516423423347629387816831795894053717166646491111073584711731349104597993463813586426532017232324094729840947598648590104339896992135981880561534680652930313529246767258432554766173361892026040137123533683733008126973374851478037813138838767070846229588701933156256588649773084156915535520792622880678177698591265581965142156371027863636757668415605061352690031452956462588497426702135110365925100146825453399880113768644863806816659399160445231045128856327734473953664205818674221998410052440282874079020354439497095145173235658151158542158765863702606910167608729507513837277310802501337584724460305292071288312324844397956908591896912382200564595625026763579746200290450713964197110792705926632167757503205708437115198097382623618157197891434708045879876469719817976572693751639162894810138070662123503471838982284084360069332970736980991692547907437684066811150417874554373097197756876733143053477007668304793106621469826737849954878213969908796232365478268978361403066225486170025104932805964898441701217819125700196193981810309234148171041780186120945681110185496518191152588190459907323111661413577287533808608855162729228620478174244378208702480548940482013017144960246521228797936480876974232006817033168121179446786616158624609184219591606978625204162231405451848466277791680390503242742134186089769639342422763730049010164120486079520320976101963589862849559169480888300703977661893882114614174285494943809528097014601766553056321394045920461287149394014208002481944050892994242879242425696895818345272447997959058867750303460814572065050728318574817049729971008640779337636727865335023230484731617704890132101050158478617482806412807710559753349546387276841322256211212106231293352522889197997988694266444152686841979777317688064025459114285684058903864390849413552573514755890123510483112156525373167606683114043760203747906542921871557022275611293039012471566987196739111953945593957949785914041623892744437757562094625216037359406796367289409922290314068487392238196130579543759519364593785696827867684384422220485831554130675603925250487722378296909177635534260742484886431905882424253768016183497606237147476117047032285175807921986393659587473166031872621553024351303643895857212283066398354816360205136237489929745321115731651468610389149932501473333132963514061883360339708089909264794542710225328245251560159731761093275705048607107053111824197406521931832298323124450334357659064074798694413658778070981822277231538209949658460503275339506885562641902442406321958846522094156675871290898814532175694318745606262857723900098077595996927651006486726048713266913625136635043987474518314150591810227939895177903609132376241019273855515441507444743106055141927321069960778741327491650063741118628733180101331512095830417213089376502953966154238475541694340592291529781325834322054572543728518908777219779649614601488923250834941069164562495085504155838174344518026008739662654316961134793471152695957450016708322435041427834298414827925742539375418829332722079315396131838131481541460422898974860686252697706347710806244862574882260396687396789624709450349827247744247633116533005185352714872654633862670232427375102081219602188805268788819823709459600744378253566445475691627435303217274482142303969136961667369653791575375960778433796822215266056365617397989637952803968313318635647187244714257962906870361071080741545810863209701478346743946556324972237412570445514022773981632738689165470281060759727513696575966081012786666164761788978350029128442307209272583744575275918186068097780966199877540020396104768966958101947369959372133040374003729556486817784342833493119055428812518889513852455228325304065084444168866513772155889113609382760031072371571363475632965149913601540164588982798879568040513602233789009190253080210542695476963280629989353757810884249169419339700738872784466491695487919179796379407326547667422991204079235019389516592581361530999183277912077565553739132107695483163631081548040416292940788395176628539068753016149000494360005712440314647572939583499270876802881159414140407097367851483419245450276209100166238664247808298026083065578441082596789111564740576547804931646129467757087995214818698358878356297225046920316944474931262952222749218877996786176582571925430665311617415024895160202287538066444140423430010408310725353050498715536962406943193623290854727294368546279017884981041315387509917623909058769827471634080249562045242189861300431295268049699920831946076476379052304608422436137553646111552057604326529418466072282423212679805591640224089360723720577154445627568048975601221126963473424760904560293462210085440700754751979409773755438708919986581856207070891892722607835692173793331433514395602232951731054878506388814723385852878151401579089886835151522473939823777343350385833670856680069983524155327188130221135292497241066482725250145006059535917887176635891701417965525597323648298745726183950512717054937402149642382746635630368876247999323747522903730777692449532567918808522069224996456044862076697390876824414238796040868168148444218612997671910437935224205169130527131758282287965209564515909402891944114777959554944653472081750007997908919111155266629688873297543643730689123342841256260900167719631000103696374751417226583704020853650188109048117211580940912404110021213979741832491955800414075231704602039369427594135479955737686943169771277729753287697916694328864954017929150334524113820624686125177882784983871165632500978103033777966663319071168688876093324508184615379096571799343850836541938727426533657432555708266109411930957639199261047833813097965203989839868830283405642356773660276860013349251751896424308426263641474426479446572803342778518644737476958603968655924650309381722555118111181425991418725584293632068536624551543418176499918762422680043595948154240720152830031386648207612892299826020703007318278983613076225224796186873386440955791871327224112116197818589404310844663033911427833092816317658843104763172191495599062787380279455039352770083658648076970305399511403550794499470137613987127213470624500039323104996063893904690484826288883321335463648528268937283493748712146960600827756036958999853459970507867091986781305094773964803337207299314002476078177658053182917311008534858357092910857145179680945966270474317235800681647885470993579974916257880225269218340696916895668861108970625027172957330518968458224308570326570111348224498865790772497719172557341964875621685033851751785559258342355662872074351892562793292503939744433320835903309388389214112863449557560602941560062645461484838956126178089734304862155389710693037291143385470695393842710671613690686449890762011205071180303739527446625557009936136082443558442719466671884840222888110697760800415271733087356309872981909041680869100187549157697349753620023596749092628417039123031199046676640300440024281357102813734049714892039287150701402034872383106172792856108063869272511738639202698568414363803815240109713859446628943943363730609616113472698608702410362227533842692980394566231258361006469953406909086697589863767097258731493170603471893322222067877404108569338162932483766622158695855347996766829127804203698605814218749208962994180602506021186098540375082145809808648275426811458271994124592648315674950001454724853289346555035985744070190633859956327628433405143845421219415177430756160102364368955144004645471704593676122232502045507657115412861059813108749158153200797381352780925039284829621149626821543552257221615625139249132273050773138347810149573961478508055849264855651158387088880211425367004455397698600839404415624630485481796567242435700628063321557756282631374802061640896683231957530189018381827938394197533229962264469879418122570325288316236817325572570089165469789127115270013670597034624859002632216886542035399692505910489341240607343221213779017358344745957865743373902961000055974272629354345603902702400828987990983027331643325565734187333682963584629941906241911379590318321622462769925690192251880713863409971686561696613230047841638757494846661630244668642344751360229394388073152450448635570244036536048061805667272396763628977960626819191072777655395954048998115393900043383579801296379746118030930287371687830620250191771137170742790908913955384933616064513395624674090255942680189388657032632350428186029908929633162844617737151085932258767853281602915525103344452730400271377844839709090849960273277932458555055446822399189080973850998088116355738656387752557077640974100189174449633182921207903285157309539018726219771078019067259920871431440896443403227559224233478383320974864192946096501174817711121616917717734405229155353758995909880664935745491589308230812368967553408373142536278218634766178746075785426861022453431896656928419104053819225704244744668483527335917396531245071564438534136519180548350513666397561153522085790326825388379174561925514573132670285365412126494634844935381403004113495572936532284802005819489826410728531792080224106074069129413758449157882125820651586975443672291201273788946776214101447602357735629776363132205744351039093377479069803087350272160759676154781713152776655364887061318311689831403974723914472501059835640861120618818865740171522999403710662055962328039201288118597041360773178604888466756708686889039233409772255452572763767897941785552675600151062195930108712211955213667324040671582128205010328223960723375187744276246757120927651254630528517270085973811274428932680161035949808164900938763828634850418130899870332414926003468243416446842840898630552565854932764496495225287007258262410680903192497894520771379629583596723721611819137692363033279619660516940013168696334359362619261855701601164084488980953034453695227047116280413353224602651859035649661915033626965121466005165376376356016932080352200584395542061335346072224122371230222825370725716682163213348814467061596948077320319728453387680633626905380199873674195541912915685123083593587991883535135851186626970635140204113100681486926554558905975963839545603734381077256378934205296096856918626496872510139081332059143983348379074391851650134380906774002697145973980371663722601762756356940801686635702738467022046490149056411974926930495853771433757400439776460352242958521386638163761939352292113181454030978690097681867836383338080504181239413699789287130846555536458463278397013857339086873461738556768068738684234890242192865832998834906622504478137315649368386297482133228239558286185769344414272325980943721097496141424002173143265611945575249859976212470524188913097818649488279570606527643631576597956014662418293797590015049098010743958636856465348298125764363054957915248137681669402209627006975602093183662454310905657193599261415373582820280203457556669715790695866537611247780043541053158204811497789762878209831217095913155443631687077091278279161145794469636291377962791498202305150706532831421950933144506383057225506834161777065804851678961336126358010428812456275090367386234025466559045216757632885822889193519442650714831680404058519561016074948103606813035247468433467400006253863988596245837565099050756662136966839766484589705798217070347923190415092990210167936145066878756516957483914295560215837476212048525615477876174627902216566083388531841163035655222813848538505698953801989402963074471920836658952807070566850271000468497414987040545876022037025804257099707033518097183185241724050780127222250437357848449839252640996942598237054062280413421743144687441929110833114534106895160268187227519624047431891794614004414929486539297266783651610578805995574410558526678106059594271122428171099022683356320177952392705316827506144756433971072061839378765966781985301871757799373606848816249383832850972249135057004486539032406124474298423854612926903491812559189771286860120050868454692955204979264068562837265212824541511872737411230637714078116602553124377992411619698956286800232058950641927906178445535811269310004707377055725194150383117439747672333849305320826931894201977397395132575497070866619503221151290277042896989396930068573660632028783640639772013529983095475462879660637830275693297107976338402767400245204749210757912489105978187878964001671993658410355651342578996981975991073530681676011223863740758034526780464071859522401228877764258834252731306918302993289358166635171269614229130110486171283513413679337418201463354299002894980543108736068117387123967851756466299556683262509056696919599476004793874465343478507934403928482271751468355669930973752145429552096950779449126009320804132434874916823013914727944374121539337825874168431656256282668165438195153945065801918717268736843265363334908090770654439611866930273312759541383925323485576297496939826664555884186981202512732360452777871422020534634117345706138944926999288340873215544811935658905136678403494704170889931788665506248750146002457931412180493463089025914196444037864590631202725519294483732359761519309681059240311644859076197404107194707437251637461659097951041289700681130978636106112011668952314623941963905106872509225318793755697195941542999650868993667765545404441510102834728159068454203792007223618381619036067287637877091405196159438136582084804018439713011926060737449315521682270090375491104675516088980041447127668126598875922357111297345329307302151033438946329398908053076958125674836730724573780582489129983695471986281587874095000112207540828978446631131193616066180551617556638725943036311748596590028531865194229923309570740271307407326386870915344458143497265161749752245773049950908743128950209876574331345828137736285394419470002680081374566654199803676921578080431529965551403716877725038787997974855560361195638040088996229771286186702299811677601219107719892002687124728772945665875938526482920020069014819930026649992494280515553104042805621047799559807445847967330129549867836537288477746648533891427707231383025097896270101676393167692296739877985683358089018048936394535716493197564494111361226387972059517174795164019371121036832514725121868518591983373054314517976221074818731733935160437909128958259183430060862976985713530784410333037752659564723674712454627126020921128933873892537175398600327320646407795896642970530873137085353359884583240206983322084059877797773097387167938651825114786635888623567525200846153298783344708534464567614702267228384598915505297620366715829233652164273480443110129383482229962080154687218275523083504462390550748723059543447417927268050861667444421840012723401535111505315116550263451450053943537763934242745970636212767283382055315710928085796732016213741573190881423101998420909848313576842325995365976130480721916171414326915127283387776293711397308313713077347088179082203367761928025582555697476161238868271751312024447400428665023323469423448712861906995606126596141496126103591295098703885052194844309654969669954237059270600161164889938424440544305532156630557890706980563469404854761890773712241786251517393337687081228769222094596372549031264190957451637626173796543115260306154699963361058655198760562782161478631123917916130281783644232592705026884698548865455031312976509679734116917555994538231537970461914098396056097030147596548346131470375610212344549997822793549437077221030488677986655943166978464280560192337652189022665814946860731108702290125506131227311107857769999129277560868220147810814150411927464530016796118015512489373235813671675590916972858493860261614378046868673980113147484835405302760074858675665785883213457626662655903120615864595204805065816211521928359192310155287353336209848012605679263087637871407062229202713412345920475018090026979606312294760872401075203043045695588209107712578396978226535753797900513897493737948510384371142320247539731921635242254769673333871648206728053377908854196421450287243104165675296747794876024270148932474807874477392929138946661138867171359212699465650287315236528657534356318580098401927962548470497009851819624074418361015404554504267740639281728156525564577881292166929816017492609428143918236869200510846436998063288315469366735163525200685013215478110018315200882803397459288016060377279505503525098542030394512997445922136210691622375218940582258918435862106475173094858343830658217039319796500865076072961951891423382937203547529738168504977320203987123804797351852324324282991956837472833681497023903762625641830872730219871698516947823117556106543022015848777519896848160293786465809001303620398060686335559673056395625471411411782138541382135965844063560641291655574614698446789617892729582581602691396020702285152050759848823843737796718467757950127390045515394071729306165240184775498859526771829772371120364371455008283134102860502178770641797750457669696297383707540469122577199661093266128348129416836695882788308730578429507244338126515640902031263379889984151101119359520600441145060353090318963484386643197494419231869162234106010614072234095626790475183535386432728284588767205962285872025215295292512826876895165937873792197832548122094483579756523767180540938715703813164539438399570619028460804240646202133523818762511836493124914060802828878074249419260724301722677305245061456283817899463456048076479991082368842737146105011583186121245273926068272525565213413777183717268879225490228938423184338236508542159233912823524671619304788197317207355913551507739619433831758823098889231645484917067570761656775596067689309837085712300743463664495866910683259911568181190628408172309524711655354508788397080445483149730085030853515912312081393050829340852927802296710578343651582469127769876214677353782792919356540461913542607449555328696520424497599078252500795295782143786281193223183434951037687481648407546213570236441635577612319586880370901574290857333462634558207072234597052596461775216730528767995911270083071347421491933655012432234979277871039432081502373155964684644214748222897446712869055388237709115952935961033177079107458681290655114285623596006879529518371537968753225328502269274596933950651935998017383127239660447106385862810546845172266675782730797228861803010597590285475127393534640517827331679954687756827171444748655614281929720167594466193152446817204241344344263248523875541825744153223629459771967641938810755347311219147539268333319396268750012508239810165864501744492034349120221350479044825762535641295782139096906833482715631386460503826027604303469188121192481908540370202519654866783567019953257964520612598429095010002670530865309211677163737682619694915698060099519151133897935716136466150848650676801870051783434065962699782782331595986103651253959588994576806985636101418626097599493925932712929049789132494984167964323049664776483247231763808412415693638131700825762132005262621077635313494371257921726159173445924269281755038964875928446413578637284842647161175871746567375883787293808004295450102729207064438095698627977164193081721581827162596220502880214804308219340589891330529334406758119160636318287395440042206943856427533658417383707252475040130384963225199811763104958489842892368403025366505235989602870947264100579769585099089296342829429295789833738402934220733383640661102835306534057497204791703814716404889911966026312048559836294416547765094958092672424763569539694411283061342326478915375371169504696057057727965370420741655981000194899959042689890473816596816352848117884133974918239758614702896210891924669029393944212659002902856223566722688863074374398016122866766076160674954798517901849436853978754350796830740322395786678648107380666415640276007540254288867804482859291314954238861902880989407074456292447050795503468801581958178038702352635002643753066425238284489005629399263456002808697153835809578595397991803648805847038002155381695105879673207198983508020543225904193704081982094166621901193733991901420118544237060133686451215206896608521479331254376502657799680807298932550821182268378550626586941680240723520293099387670314624588769020306132019986897162904540563768515914770118722107584175039957642211183356166956686025028391424318046859820112481069516060375560304752087189770248993371420695744353639941519644374182886613536275501145003904396255275543782530211533721609218148694079845403294269837883725372490282545911961569219425231661505371686673579240117085557429649311975677868969479876516339305196664904489677605666407393954334106831669383868249409372593638835398576314854684576571186969854730726839018043856279829462121668684151048144712266545717396373522451946845011693402412229326423005455460371358812134069418775285150124649315823321666498466822113933843531236331683729708587541617348203128912542206012212187037767129035830970301778695764706339648855109145481317309499659709169865136371240451577837562641344603076235977793313880862393030535169067559812801998067483526367943109535437684312905224304191138546320191378037685567144246228013000791661084133824125312569911626708379581085295310018618044175364372888010294945637546910680944440488264303660913568275754568411770220975186205716416700686303130574259861565671907358783640474512726321604524508591427025256909547340143268795557810744351306018960642586901139196182214864934834237348537827997816728384168963948505855149441387137414681107129525274332659780547870730950419673802514327650214673377575176713493582490098143186883624986055987343597720469483282227966420125863831266032960159212191948625879396804912750889788217242295566234643614830761522123990920800163091025112378320162085364769782020984921787739237253705584410012874802518391051621643298118924079949039338173535868756147393958779442197731968765445436756120973987632293095094149219132099984304962327812381147268834198790127249464879120543420889235745580417575404242388958853164739896824967038437544332561246875026784921587302647026464297329201413750692066998782532287600692867612445942487046781630432879226555431507578285035362758728865779194465707228545276521720009706716801269676623485796346582438119580114814207010709954132028944093321944568925612231070323590713308396279981248158703386163926771877395291360321534587919327306474138741706709876675104303492888575138861046615170734934103382070532037001974945865524285962148411196699437297194272304198350589819300626436741483285020646987534994038512102166678726492513540594153388826875730471751004774305388629795711155056571613352352805896163379790209340972252104944591320328854698788098194790146738826903689338195553073188134410672359971514736430063066077775999997609127296175299573410126662005797879638074117020687068742256596796739179963400935855272076594482056838306563231618187023799641171675528814167340920914439100868211630554080742042225680044379588480480472225377137146057045340790816011569740598451253342374635313722620689048088508512438436535819416240276930135217628900273101112970856561695333713562350181316689482665622988979950211222929197115402651855179166459547725571333257562825417255216176118230720864313993331745648403576827868398869328802630350656143817661491951893546104166061316132709668299301830579331977707881306589694693770808189501963307051434041258417641988520740875693029853083380792368756339919285732241440733768496677252725841435634161108409606496049822989289888116471354124566513783441839398384820211786446975854196623534581020562640561320528579680256577451976625090991675441750667119890166647600735158329477756982087013249568669725743614585468848752942379021276502911713710549540515354233465048279680750088563611451459749937789676829422765957414979552524844889090885516254308854482207393120343874909451487739021100946917669198499490069122138515419132457129671936284641956264353805632191758693752967712746302826192745549469922959751046266573589778101869653963724814134881370938834952851051716980155021411895808106472352958641912136591338222191187844485432361190260876536676227537559993244572434316062319210206994937861403308028622240842877277571988486456512627459314121487997618509736792332033044829533782802067969344842429604368139650343224360005342761120587124210086371549892239618554682101340815598175582141334874893827333278238352335189883552140486223656560919493535204223095304741832552266773370974712532147150548366859897944373668843441417005139114943828474064957787467336023785146543840804205174838235485000763250775176638205408525931477375485001409868186972671410667996513204220965134785324062452494495731267324828163742622513928876780480312346451353763994741270676417869955713221560419902445365966672543614046609471615492719859801224390386426577852582720584755937219911609297887470414077924666906796397784425480076524634849283760925734633933223369547938816143944062335026409009785935564976635199984173724870183911676655929875641885286473179031160997056846829355672978548882183709730157626279801251150747871639100676720164667707966429854664191762725784877420448144146257223017925364644962635629475849189106377433112260893241668291145815303922676854145941828166616798004390931593442538472506548627659155494836510003329080237836918488383878279687815531287097363709212623174911518751323032072151426489525104364923716289860216010637696178606126535294962178445330820263795795501610151641042518496606779302467837894329816507163444289149645774535031723766360980024564903035719110404975406537958375869697778816921741931356947641108533471864219330052564937714471120969207889490833517634652514074179140431511227347838478436386759608143543263140637516991644032640520601626892630546762695296135486080083209700474557194602460316199213217466140236214245292717703952715176774346195333901395405680207174549653096330592319579281963966352495039128367682673287280970540463212754402423526332784683606253311281619599508144518662669579460928755863642783432963220992618289144548960127751939361130320123843858535597470580331087598866849129150112704394660215797024558410745314410073672666515302960677329394199336627962182002222196365201363316918551864829826038681435512057543123810960604145593053766986932756399178763138258822384598401374170780352903038016215173006509735192212872007164911813982226674826077045028999780354948139198906266534960017961941741556111813459297324696522942240582840483820417552272198458698577583701573861606575741651450703338108052027652719481457615652115256632249557373522664948882848579837746710205819654345018981218992656597921387490004525592144725548141575337287705684121792174050473107039491116108257954367642607294884654010086627299540288540663112870381177824594834383229287233349880146477176169397374298899682898482168827953281635530251011869217365373738365507502488666190054158791861412657260499368869969160700642528076840587305975319282518298456471362380140454088528685303749613362861606241895181590478433472603584682860781618098817076880954296502873406987627306257166584348171209813234704103275093852915419862658702372626695695881778219578451628522588998592336167069447015588015041676200338990405734863520393980996840996814656544963585932547214206330675149318432030098545491071375987831219154724067953389061571605366726444908410491083059244523508503121563754686749669481629174409466341391572813100839633634470663088260335829243574732855581545239393328096153111421196188524424496852087265004504895003896495923029329055249514982558268279081072155212655836993714674722607627067632115863024535332176653680759890025326016093755225883110733382918972535053921219673022665061149623591648964137884879865783933329174229589031552877561828814078234587116902268712686138426972341632729107250487461287709565760171356992006976578382677489684600402571870917874869283225252741465778605108139847392688672727481740758104941063676004655985712942513149156567287705108620812229775038742057884179518259374734794672459569172483309174336338703917462998037356622132800458584655766166953529667356393284630484580002239023851458115742472582859476822515567493476378869257123972419615725675915556907501962077675178232924536013260400022390007442987503494057727807087602327303655105658873091298697441201851246604405225671449630426429255817561006151506607368198289560639252409137572289454432859019742691251958467047153354764747379482312387334734536588885755988799910162081067838598465675719549078113469215577749197357401017956325820803675057705541331677675810614438435544988652482606977090329928970674212525635021196170103528009737330993250786500561001004998561873517281734486177012859342721800716149980405059067764848340912865801281136750902064143515585375701630508239562724337660462322749429219998002131797335528950726553919957333076830464928320103495587072017931004707393640620948119834611676216785168136064515781841556940121321030412770481823926928160193176290723493601999836837466047969817052679235854996141440310974372902155631931648886260006598102370948134659315420813186403575774176679811971274856915347910586893927002632009150122608179090526325760782955499693355173369040825887990098544957162552125056830143000029446815830698828611261857920170230622202768552642988167510543161335248635341810797473675838476291585859037790362841689280762506986511100611144817089477972068137938300270137450244820079047879757681512995053074870597924559109455732985452105265601860828637034541229747537640177591846633437735854590166460071292540004591108400920278941010348973293253113999609036706898196387835310748295380297568330455829196485761176947447653249679262583203399920279050869345800741302392844973541668076333206038017590361791773585114376674806603344486131062014099495209918065382949616731028956054236647833149336093324901705506608372758707924467778915427607999989447027949445487075934138542145677763874275328148474089280980106949246102325151912158209129982136648113919018757526300616930466660977486709884544222207380767465109311312189433418577175138378292464218646786849319749456945051443834222810093333393350312375046609381040079210019980666993896662840696369641457831139278963604310839568894105218794466419561803079059824937636132313935346591617232589041861861118623761816279605540811867325417981912104994740540650445624451922036727038711063217112154035189138258395805451785211157532980470561016863148366648974915100159673933955710730703955826523023752395157186802527307672983674278271542895985296673048849840452198712529546268260011468524170438101885217845580205851575151625468552015687734929547558457109240901902257047046798286552596450114254288646109212603096057114406523755707038116862854355889970820468067780556279340860026323671992967632438552214257770784795637708423591170559534027119521646390960214610190369798937840487853232235970485415011764656940850236032419926407655533306677463939276283566968114158940339424710984669975030603390811916574645988873774178803775554347815302792879839301213629684800345688678130685037496667441259922280388364731204156638741146316558404561222763675553967713708312351375932650945990447675298772168220312372211098620094599396821496332340705799365397235553501463220708300907144389398507318287756078555613675912219292954124008120638868843067766282002571682065864351659711016984227641951392683797729786392027515655890862636609946096785429554226995311874564876554213478372631589126180092779491626227644658905807862997989034433693451656397512675746849527671611754349569457878584547708670319233170269317100744021859715237607989857946201939521957433668520993049867745241049653724115886011645414098356530439076940316060237674636234313938743896673898972701876344406417850698688859033634825753138678272648066064044285325243039800247034585773150046886197346111815395542262883948126733999530745995739184370452053541429513572946287793395737791636598977834584883933432507386111518782768521367995587651383867552597222156481754143923790546447390157176127070754589410949165782414731424462886629114884484981504246690759485527687530971360955914297001882178320825191928926313882166577213605353476013115631174645572863729710921218892834650562258180564797690103690728081241279218232233905126448989941398083080970819823362155567553900322197163190814039180911639642324311383209368523104461475558435503300684826885002342633104488954426713531690269122805529333153201915618154355815548152542125822171229594592674251645726916267826069675584649315519794939013001728444672529842905432253185694248455536288203156647770575811451507350207722415856037448394888699826043637450168976114520827173927021275716904825709013697643464012815320999815272798117506016210196440880019062656418942624426105590080807289361902255162794923093699580240193890727044659383410262271138886262534434088623174945108893485115765382958667031160033113907479981383288953244554479264486984062615448421624564200431299469858318634954397980377680917984124563716970748832867204653380385368800984871756950435912617795069287379507896154338830385314366763598446532292864142202741113430633989005190572437827810909185470538046774926364967453062729462097506627543244958490513844272993529406988823137677956127574712688960787942266643497674430071758903678349112860646873309271268735631326308753105583555205728511835204514517386040063360763611248252014065602753368583951960389570600782325379927520911668222169042658675655822296979738723479185863701467745908169985846373683841184711087575600124265798972327375408065132030489019369726492183035256846994307070778265706875431542995265298847831742714031604526040192056203279575461856278913657742999831248809435875885142085571632056417595253905157265449965055397275073870807302561630896076371289711569020953028098728236298633055124755027067025774546010187491542856029878672415550611122015930048313814259006091989431841282956018413408968278770253653528769266145795258373919715965919831898022405217635398454562848992257556093283585182426915270352572212933889651463855686186742353864071513880231566135835720154864565498604188091965861659972860576514826731843286663004248209127862275018478825336129210705059743743594626731432712636288944344153359703870721323625207298684886841800707411484700952386560787490514481370586979659096332229645472163649576409756536214397884409568708717147660308706895975099441430558562254365616386696805667876106959776885614393814401424440123806477367585843138445857798561880950762100224274853011943619792360614802997449214458245830285403718715865271478842999779897250292554109550822284130271550634514292518731437832076184833820802531408100192163376021935051129374104554685218326768826675045821398497440558037744465154948936954996025787887634773969517437988222788981140317251465765322891277682871789426142254674905074052044051617119902323642277264340725914858431871998758693202334202914802151023514335193442435345565288944167302948385444951211758516949848810125527327649387454089450433644734863524931324489792226893573796768544458134134658704752427865190468470467836232598239275658971542715682201501501754165257851507015741983530687108387306125346324525057331758668432215052280843508039713215984243338172310539969408822695646513759098940140605255816503577223000095904589316965197158861614582099173680361684448036391284922484785280044422904560304193111778336302998594792985137481219541050186091359255551242702243124967925246933917939413801034095394427530477138546499373133925457160747170878475226717348491680529320008411397575054463047562294754828242181678890017674522199542988870236977454827767000063723561875370806629946818136544877709904778061032533737830495195361704409771899387824028986662159645796175306570772145817863642235250330313231619413180943521585510577359357147272805189773250725095155362368145387348822044923336934375696596226161237146430132840789374585875461762322447018475078345306021088061605594791375653486849986648192012382737625719166942925262284409013489731305590364300652840587751532951487594872617357291752999023243145270537988505933000951803852285670682365246521312980568592895617710017590566945783670976076752810822850982877570114675637103536326316516517128037728913653552558966709464001041887172270875290201897600346302704938916461086395251457307219533537365170435456531051188205923680463742307020320505045476632386773528622455737715410682155994048479731503188092944132690698917051638224018720167453680911174379840497865423043611694623807210820182228186562898713038108806202013776047108610460659221771491624314175829206267042520384356711856174690912889050049887823380583851082200807719462403157588397444636816156943303518783872474844520223189141857536171538125674510260137317389043534131301301353862316709317841136119927964626031728850111643379311134855012455731265795712902736149041527012329417755666227524132574291703727318735918562668879222079554377367628786684859886414726632770006397006983852066740360759269383659326880434298944211101189584727473628331833488591034055032467872014235145164994195719128175715241261387119216489607905445808521999737885674503765852649536034087278880766289279565685577888723534305318177658958839731765747219798911905047199029445354144517299792735957754228055023323430300542593060785737810244909662386142523198621919446161272133739876711153744096209159846264830639417144841495645202491505798256200378792142855871224962784180916810117674385713923871648100320349479612078237219412338016646478230348613264276280838215348427836225565039494788192364297714411680859999224171184195155793042608862624232741919241420052742538981151102709579260046015621910894092950320084708422106696597366309871491747471874264079976198284191610198899788338398468384496026469560444245360878527607878190977080940250279620239603499419324128643733700521649018722267544283238385975027741841128554750253075216496204614664090074250651806843119267030472024540151617212644502392521276545710511340504877686958293603663088137383099078503164352741324448636916669602179518132315481195871244213084778913493621526582624376070689871857054277391390054567519159999865123848030307724841961754232356135262038766694214114114147820068977940220607293516089537385447583487395506570943150446073487118841868307882920000291127941937519862644471869945074260565948695910418491733391991620843183908554516524256769857804021728726493967303232449455203239240464575537156547334131125613358388912960352346026576331643911204884945962149594961887238309375429099636874777048601258737788297490130720603578959693459153468940063699163560783938492517464073330270494146318858080482229976405340114377078545495344094137199955758640220134963735878856193079008352325245514389451550240402060887824894436179037642988591061924628234576672110060029740005581576704809676374505825807657266098896384824138261047962791580826789466956679600803731228158470561731773190678473007948903526120784979915349692245456747363630472038831523594827553015280480444866309298878977073944077005038237121474466498523612982235050568070667350776852035596690485806848644679742289066826027768853869118324443968597278583528971358844357791660644352432678702850569784107353402098831680745824467919443273078445103952537810641667651310660521895405644751660203079414619792201831789953770940295070820153705911710593289614783964974172297897619992448918767833424903388741795983008050746582245168421250351588411981061202174363924604329969669597090797622230866315476806109075358219415905996972428042559660952985495970107508024878015122964654515517746374517224212145148147394308188472794489688696693611766482491002717157066695356877101972901659113161606627709969805572345310401555489986254737958360748335337047416316587105420388409599200820578584606191341908886346194126328337946774995509101293832196091633830377303761101362881934745986756775698736763429488346911512440311898869459893635811077038853253490456166058355324722039909082706128303242199282893647150228338006422959243582399397947371153471015737552660890928330676347995533691429463719183969830732996032618066605562341723332515709296398665370975094120153873658552811606053561861794289307618557592745380381592514410440729608601487752485650473918087006982230236621625067741851837187588801156450589064575398729950590075769820624001866808902376025635701291650473687275271315947208785552896245187099997763230442691793553296230104702061589740641469205339779150099880305990020609531643777966742637976286766032140809096632046167107717631901612868865937377160653229268903253054281633092050269263173517514851693360254741929311750185709172876970677177389051241261270160609229564881331617617254023176610071560548867176152994413418435654116640068857804223982455664745847047045977447712835901994194497919878305502504774907553160661843563335210101871806327115262519803801344333125927224855717786125351143131703751156548319935967980917676492934442226068983170562097430217782928126998481147574804614522824994105533417079130004823934193018788642931887061674258751512012788397313888479865014068506792885053984280340564430502210391244514619583015265590206572334214941222620794196872657908572399221022165616503247725709537374347941493018165252364159396408093104670058013660468430172482340233047447865741868799152763216046249470749452074526608526448544179283814252167682471244023641289104951596986446008259661909492529384847893650800771184581915680391401271193831904831503137546385743789555475205264264635642975870592430424246813510554134549816962761073432196580622164479095335121467299246118732923456527537149278607918126990570703766833645448061366562855839411722805236907919253298844382238201462332783688707379476997621022765090933998543158805793564822822927092834441319528492469393722938618476864982372312320663764817982146996656116199405734424746123673416695839972326871890284036212964462868163296114107139277544751627935624116809423658132602923774946485435270001456653593241189571949691767329191037448372230401647113691139165745723538759838465030658915121799162841339652528516902340116673512037515139995495107614408308801652313474219779216148151471438799947010179277739261680200328473084652995930113691412754285427185308496260591943744735053682044204764906112169293204216942507238472460896585428924114774721607747459205314735680204160872969057336306474127458734095712060486796246511290748760012459958011133751372460137544583841223878911098453141613921081311372546532526796787883753571579937092511178081294012777655253616907798279206934988449714295421962953816377507933815267471636029585384495447970499632701899376076340942766437189174178631980025983191684461276573650262066508411888997807265557108679281631129835401772370597512351271747901346975377422358510462317281083972111283479452161179947226609960821166767031895015664745369899898344658593208463006211775904520617765955391551245498929159302466196335867080754788710926433067518250460874920295738121907807661978713017559526830861238195110111553806565970767556327349561332049617162622742088300366111497909503686538639178502535515914790649455093755845635814641300000881318447806421456674357495858740659233234421456964711883434850724123314872769799718590642261908211438148063165100967920344902826910160370836714335149523893372325306035097630033039958297425941496870866170918757881543318916528365675977577829193522025547530183210551534923604724222014650003007839294146061817001634527083761757167815560002151311505177963953510647275221644512039922834571101872192542043134150777064341767970180560926996243788541553803335391521339333671890151559205565260411556443255358428958760506030970959511430038846946043230522940675887630607696283345299398411362345084097329327565347296088120358615502913525539385808661362143258026119921897968214582223039948794569373649701220975216234294982971585316969245002254126764372293994611659678973947532299950145512695345283666038753019225730084560280077870122293302806166963349765854793304162761819343250693352843164949830981608381269685428881667614412131334172687137877990848676936009147846624344510969216064895394436713293606814286745116071100213095265288149840477902345637933942615163217489802173500557036563809162474356406287058883813280369228278544964960723722593294563133522911976376825305040546854493750191765123374737626992459696264505355612767286591992004914732919027331438795887392276732754070200993973647414482602721471610868573903811232635073215001845633616449165050954019905532497066206668702306811886346842583283950242962615277823771879124304663432793455449786127300141538488901896401568255537462443322536016454461355889166078589919219524064168873164600468118996562391693017410949481333494809636772632997567179759643557628838852743496759515631929893995882002957849549455280517152937178733149269342528644417396664385241052592803341774961985223079750245875473411452674392246166218975076477211863660059656312613500391450452072589258319361131370824570355846384203433828589211049429658100902420576146531493286167988977199086655904994853293329629444644164284440565674767653952961813347494991835223512778315856179367173548357963698629395597593793824345151602274787933877949985149877125213241337961087930809351019242359763503134222375023318450781329266913212866922141998554869700050982324610417725693797397419083148356918609140375761067134752063938785116283972958227263129649776288368081205965637967817679556249236643310284106480570056184371792338443534160350601061001344298657136398058022140353092782187783461489998955178867648240974272320084858288937650495542786835009567300939434612941460122696155076790031490740999862270306938280222463091994516483703358598552855066708215039925845402869621507451592849846754542010189513358480882887643773806803945336249744570849041478915775054140063666820850385405333678946903492760970072009658237791564662604892585871836368567484800694330678713202007221798531883578479481341929308152314370144495829305088087035114883313659298379639247326560830857880379283162478785688820174480933601071698608148113441306666775550008782550974797314119091502743239805815038299295437997029460049782905819107375939434795608747067455061244529241974599137209547639653205566414538618470977253981723585943023039937832469875636169076353653895433249905090657330729510426074684047489021690537971558936376948449871036849168559460259982411981529838130061087053252984557149571210970661499813286615829947140999492398931875146912191925005940542660640718382326404538879354393425534047831605214081520573028709064109865732695281713827874878221529383870247137098254251734187751307751666992410691776142540399502563309725699983794501099432673601641159034125054413988392771839206941120032092549171199596988817099739808264692691128827044236736904986932300036714782476592253036049854435469939069362376328663688460948668286026591723210800682558830088795771649388239891760594360896318097200043812320029736723982806234455390801507128667021028743936347664329127681827785416256988483649268760559349150113320791606177363283302769031668035146021690487436536765380648577944062228170631750628063713765101619016671433123525755065915882435069423515908496318109211629221020173199789835063849318055583407537638328557677372950174027104362966560455213844200244692332836612771629673508517236471767175447353520422466641843947040405350333752590722355679441212378547887016999643222103742545548951420744189423666634974828765731584003170339136746971300884004796992480353544436829252996747485617902597346608141131342746014939141160182202491770850708047297621663012050165308099998467555332226702814844066461315745931298290422655780055053472531320776756026660456915998415557334173311833492883594971928608848833421206725590789032403312949650699608211001632465377375330218596477935899510724736239183279124785941449149362317041823992982369680434294995910991526891727699091453743868058549956815611207205560882259755409192151831529754540962437113616159618192368896063931030270095475221478768691089780357497526920252812292026789518509596106648134543378547030238741356290166144257765924655402123190696947928316923146329117386580136303791963297408353606808235511387237661651145101727919440933324107367840432865076072559984985135802766282707285610539348855481293163750520221318324943972300781461861631750679539585671811817930244519706578635394488236725964108157133599946924334775748259138752853951578104766307450686234759951991437073187912245299360936343678008653164110252362899826922757738326532265564798407041861641918214023544449525231353799806600122944133644714665911256223690595996884055136071137060205847217879939140978470678261806978360406857833838269935414774419920844078208557040861327103886580905471010157469718833859097008874407926144401507418592942480516956589095530812806151120142737240720911665323559747205446999917351741881737337754046943929742836971857805533295368268022944313976695332129721776295659542308923513465204102954220258027940422844008705937310979738305300038244989886583955132804929320898471986908579952985479777262820205849782879257933272861255831094342577270890060862747721022891676675699465424158465145309422213058885907731797799399524067386387096264487776716904173172019941632104255043641329208484064011581335740756507499570785431670711816183779200116526792416305608208761214524738497309423683938531242817205742335701233683129164563136908886094541041604466920194649144100025665182072534845351020550411041314126031784758969902346754527459444786777478200746485107842136262403974887504564959869241073740732995524135107905363759523663690186134005621441827500264639943297981414991856997250859925624695331879313606035028921072586762816408058902995821168052202216995833772014187058470392723131317162511081321556210300852268562320627540947058466311089837713199435497323313782824749608259716846675043246574042404828170972953290572123319730628329628217121345717726317175281577485415901105993409936373417541403037482650124874400620969471746242350070813708684268171976751761591908988160969866275053961449506606474082528313851061185703696658134017288370945872021526104019505897447498991278249526460724659554565279595336813755142497125105517152486739198542066516611069256857129801586277821837424772406923492338293862862182423884647348875789410354074804965123553627032105782702248174301840003517956258795398305541945535816352787566446360938472051223224832084177417407968334878692807215955616212071450992016165399401127349922718641818751033337107085477252388621621063009905045118079806582045062035033347584005385680238661165126798817539482537034831413012742041277031853842526557340712759820503797663993600251746353920649062432084928258365236886932996336319821240263198304946210047005165165136221391251098167634427779220229931293091184295006782689239950482090259003502144703942574105804045816463852312274277937701364017832990707957147668321054673679663151230343371660248850278664287793314763479015582282868783687455397959621253353278247843093730967588317885698676254093060988177168911618700012032310857571192269329490914231476513572768981237162140508417144516336302710047801647844824183814762349734114309841779156806282477632142701631745637316759061189554383283847219909056594613307908898945416990630221186135618131979652565028871554449025936802185812395477786107947674939221435964143768938350450369707953729346759972430733898706362455814576646044595409456355199310826499295654799875375615085527205971388166102139341198612491873498052246707573793176761940064433378315846446066713900129175832905165929011022795253511055706454980472872024503079054731782929480379756991345181126061692068942093492694631326067531930485853620118330812609933779308475517066437119414805627579738564493359398862390892246710974234845974024264289195446591387427772408777194943201645679901954793994167219837492981693822262809559321252464786031619281991334612768237394165046969643849283946615531213251056062607208784344002447966001249924150536104633792898776227350875089114069512507312936244404748281010565386771061452884253035243350187938191305896455501393718805759469467049365398373543053921433506524372529570467450446354437361424894653317601535500400228252365477721335341357841966417848566760221681160240686749452959474596854887184482427398565682640401048858150248328141060749999025377602443181303047079707116008882583768141212452892641255416579362744112861649695534668462575564067082535886638229310612859279984943017204688005671926141345170354896836183008019378660204088637324666164309113336937287966950207878327865148038255442993963942335009998284089806195170257850426572383043245311593060122048623807807423178057137106133078848660197999552296848558335750049128472035194727090734725912157045817957262073755477339989351703590868597471832952643101791722797311380647431654456338455145496486609977596419399913597290110699302513068778702637736043991490290974348044850948263167253754195057598142971482811508562193655147766421271631929104996183930465004210139450354684360592838102719188251179693106737386516098177411861998804837443197130189675989528892593519071822919895530502564585016080631920820462211333594856054694793093912842372155344250129507361767209097703768739268484011713380499141433953609922598129364098903283100089467242001901850166409852649197991603223168424099056720622305671434170594530426352662170710905281438262016778104901880635859203561649505248121701431903461128642305350922603023410374688317204717582014863494066191163660408295786283157767848340603795925127704219484222272961342900366893012883005685810464213100342993529554018914040569772694665577514611675034661537992948414746065514642111252079818114845120590098114735937613696192843129637746601842076471768753581081295641412137423103510524787313564530616123757993959620199917464685982693656467381714054819050831848309292366568935548515901044371415763362237054599489900359867852400470786331563101555057796021241751623850212118999784817660785560414469068941612170664059659419153879961249988434009670609669995204632391525046679571087808605020850300143260985415996323081856487927452030755281463137409626023032124804334390355544923777248226630298512944129857731939001469891557065269573953536912750273370975827435167454138971990689597602868951841830184988074740340230639971857114637832192797569828089797494890878894495579965085138782787881502096972417349381520072886324679071576476587441431297234095606529241852436077996634724982358148692623052112000961067729770541339274516895103002551910104476028127246184496285369896082460859134217643900318684273948909910245897139272470581898742558839675764997998597149604640340352481732562450278372074330635292584800402601786862022747499673711934566647878595303058221783743734823988089465596966269083564967023884580672937144495028339390387481704052484944674094244813214099340501055359903896512016067279514277922720215095226698156408754826227667167619703795354314810069009986630350631908933606203815049256240412503849020647219367750630532539690085104275845928003911648580032317395797481852503904310208190829460387200096241224045205297692708604214015326226537549987014805096018822421390292664157324215983450115035964204956121512422853417358265838604793215263952313448990350784331543741951934606586727752923799785312056662588805363629784319048983992350560875713827025273945179042031673853730135815497599697426875016168023515873555784188672246409045881481652269139414106234115682660408461127336604804264393844149776226453691740050626244846834872009635343290093210220559606150165080858364431869121553813405787219592779016198557317046342128705898276474747878488216520874142959803936042224344122997073432574499157394444333904825994677780689917137089901536726253391798448775661420690916334692595544006171813530347944899742446634215642237692555740304185119726005132856635498453680564643546126787753609516912296150412845415383409130812340078361788526642495340771999198905748565676976428711552640409582327975949542402195608069313681531715887733532249490402552630946122619579384619557817820808816045825377646828839241533344851485111415729736802706667115206343752533535043047331618154511542101276538868377436472011714648959918513300740241829976494183544342262901614759674571805114620155900824332727257320924974124562385982644978773822554728898384716995781602632035518956423560311254393053362387477910510631512725369895698843357426199564660268346328175210309843494098902444544020563225052978754767271277569242172909527848972792889845427401602223538034880810781872509720206520328862188672531458980546685406760922296953540983830379299889182812278541263487014186399046720131371421275763739474504487091467802051064543387570527877576793781102153807775925481231421376548254873452523272597070917572475691394487835581268703173177448838038141646456079604884437848501847085218884699733077444417517024659764023736144736347861341048531948064648238691046351944976111942066491987758496129940606888789877560953262572007578204053179326051028314204276455350829663570837623958320139768473305040472793204804542434187492528780137696875159927737128377671764786328873366562835348456325678805049690305247735120208190140865807619409629408910882599893867473776592100782672421544411776644057016388452158679450763388264834141701749866402547089299883303783276903422482821543370375139163659849445987723535372779682817869235857850099489958830954452989212227820280628843548336409063994707008611604862199066247049812043284823458906013788673422780676325396042980246630131741692865693521530528996452093451369578861266042766837147278185173404187189399301793819260772184110832979343411342294755091986065313310727416895159969828621209877449434122334886845519703519689678045604598972029884416429064614607636075208840941317389217564210411705599002157853928394474783308517196348176901771249454318602733691855555869084066729702729499239348570887644395013659494759481753346674446076232741078773751806655550047017183348258592793147560536648637372502954043114536242699242882115417663915310163274904223960950498997378147953996488593989975995238436039212169908099727589081197336569062561051479213975426044751971762015629576678527469132200293830048378057160589388304202535912607507922586219855606838639774402699766553362836394331329148236564205282835708042249609666882271182600274907351905063856996382440338881051786629685131078586681542957491337227427750254242763049763672309714105546021826761601772790719491391041890110245956512198465808010600905726181032764864984666937880314423527692284334581036183521756440293318468010668732934349966033309526470063339957775472983527134523704339472696225714952230986152345960460255602682889695811439628573085637862735325948237171209357074416002278689405301287269538740353050423882360225298946737662392775101581686772003491062305167331399570643248992660938121856703944709346556582833014896645668250996709650053107793939858431843586830957617916651502945686719042457218216399818482644561090828587812336489054879800316142558283087533903812640490084262478477783289610873030062247266266901587274173943456127579361499103393382082894774540863467308413982092716916333786914285203789715618078201064521561843341918410330553662410702137432744252780066909611875733480545325858790196541591616527162214496746542626359246481878525508679099702109764718660043127672514139061789654144380218478129789363111206312325164625906514473036447832516821341980935970674068659645096778794881994509961574857210539378042540907536886502118444285297818630730407571762270485782014904194425135626468246224284950815780186632987191685150023427515891755618513846940349130807031164606409752125603229589164148682734241493058551004797786343683202474117601963720261462232906474250010761525489578504252334878005002164346351321952858402592347983195181136256137742622493816404667923034027428901735186921979249528589674162834777322034907250467005527473597618055710081913527025250093210681209617857635596621115956228297045700368335465511802117599519063320377093693560092327772076426248353117494577493505252244585450681171042765157566656175949587771408692131342369484549264700274262608174492678174628013748229957190125317168008103396622994276143883273507862273491831130278434518536138024803860869032298345498393309573592585789433070315792812870489437033534425877596517292831564767859963156486814875578107397704297132057667553456224366323249095521659081726726259252541809040671144614030707571805573423786387040057947148031774058558906709371523164037164601086824531622684820128650824705842904061443143094935933976392066679748772436083428775224563015934487796461883594885614486454059642336165759374258532845103743581849370763889494376768341540808951878470548790095116194191065317704546197353363073385440423886565177840680516705399512211530894968175944937573611401208398078230421255024194178874795820004972570355643282896751634465636973422887803982354194956425957997350057088848884894639842064056106960558684734797492730455874349722173220324630569775046561107777667098471821433863528523337546360228323004298661985217999118078235600503555138501308323996545286190691070025785325352170050553747474462075072994763147675130741820971411346524866312689918142075970496143490184507915194726794055739945312694889749528809511377163241952675861147943280371444299829268410582120465696397185512591177627223630538279835990040103830328031069064540225947255964040052061835621289575287547601815521268941942099240466761346051911536844502071036912002048079629580098551968837077295482272329862919055192672341707578448307379980881658213217367946149274985501507687977827484257107965581727162709373008603094623458707779615090236076336682215443841440703673123315394150826077416517852388544315844582815597463908344882673125601637613905244698884615728099270906976358372404930174968299342231363230052696937716516269823197642158030110925935314401989469130458691750585089269350046065829493588341207683355290292650703963580200963015786858944224356868423482591138161083642817577647313553172894474361763353093826758917070756518570027258088130625786609852867470672659703653280304134165787212828568038486776749407961937144542025880853131460749736538473790021777694699669100421825686126443468015936241709097115651362147470206612079605711152708617701614594802182263664501650127842595493245852812890167434654724770543782212527933786095542325690767743766591521764893456671633489635102031329784582741016398264843283631805183626917361372488443805960713591436762487730245112189307412738217400888721153616691953573093044001914020466087379124281859092522750683712365672156148191797730775187602037066692033184404688980957838172954625025812560386982842118893513984138247712276508489226784962725177973589258710835771678539786594541964696288225896315587120642985016559769660399026828088299848721787855848305488675057412178053952277965802282284875937781019742708641308542153080270155946931739834371347754263757266088357096662243413041403591550094101706825303580775290442307726751866330592788345456174075538616477543458495343357395071895923723170580649444587315287550488633912076231616096212529512801351867494554891283113878735090164529574537292343448861975748827207198654575425733569244115609357334307481572793778170951256626475675959043319536421376280671376868081902490086319433696431927108557094767765115956640951777825315851019313379903365716607669115878247612166061377557025203760877376884335778015805001105847849369839157078219522516764441338382825289550762960387879812749508889183846287786212779524933906439529097954845399458822370354123007999983001790874953243960687290554337672228634282350546094046454506890722949841998590470269468841200983356703587689420700845883024331553102880049292379174270147068514951419298773338192210807018953451342556898164538816324649492934736533140107390812470048290485289903506128559236675465677317117956831435808751699985432312284202323219455970639068140239961038703471017417181555696596194663471966497297011665108060871849478464783083904643705614073144256625195632445749033681443839990623294642849459955424433078653057481415790964314626865660434105657088812422190179001886431629568658751596918250215050632459304814383540374053017258866584641048956805890898723036282469325815880863298628800501643060184547201389004153332734655323073146445466582893269915117764602333548865100889709238751778639822094099637260393456107876767654953912127722958409689424232176558762377343797079355141125581967084918372160090252338054673905696141760781291678813254436798926291064067877362785917103339636357127412017713588794093761991627803660032161730631756543046179193371987467516557639602762596526219796657008280238134929805561595724219707975964080130094775028667205141638013147033755924478089995667118167558126867750718205527887784155673648861030878682130518977232989326431251770290959132230971285777498484383327835091330233438248880506778359697931355801645101080969354975558834830757736871550956515590940970263638369193937572068907957011937617884194345600028373800876947889849499916450519955727426505568908111414996028483814189320039741757164622664257288475903595264651830142512673100927680114925335956074250505280601138374410172826067180019606823536347594179908860619275674953055012889641809585096900810537336852810463994343625683069598384602548581985166699049609404231594507577090113082492645219812167608335641350301521587950377081281090678975477219767501388365186847688068465846254441638334363904602704443814724223781775569665232950093553648091245369710336786112915827191037509705972005256699149275043419748514127024370414273937881630621076741339924307528240740460219739384781658603962060729298430257136521914475089913284508422896733902113230520705301703100486481956759006605907439307386234573542136898957017541126848078979362183030645477129131732262671378183127036167387861674418627316542147497557868793817953558169915363327875161216753979512541946805042574614788754962346062938255493731119631053397960861871659123417396804402045092776303678456821192493158586663620542173542868821110717191547493648833452800727340961825453958050756409416318786860923361672069649711403137900917496413769437441758071180585380473710847219911865191259469017895030290547377168414455818563216827422739100412461606759067482875827454253642821325291757974489970091645261701655491059320435373603423346207628713588633181766421095922097053539310187892854643945909608035682061562413644160606856148571858328799474109755035416997094607865289935628225730119706905615910680931792212822576928900022259461249522980403441815749378271617733664211218102890644276948836339512537415562013520797530348470099163688400071963895418267993979297047793921692624695553854854392113517611969016942621140069848336456613505237254978991532451221757925631544931116897020105695912034386297159583779810772576219855783342684087802866365681625481325009124221858749620015771661809669550208476731640374278431700941131689774141346499832375322131507259840042387627086430250226940145191430032858947712280416459264390407291564587182646779309684686761188298452924829825405446230310522740642449532264135550397537210523281069096025737849986295641169762781027314879069792456585436441272709780115338108255014214865526811712853944570923250219718041409079245330261133534391208781155382672883496984852530783660973929041964115097181661844932319464041727391859411461217276669765773190454096173357855886578465524891743142925684757015932234995975035372630391210845097764283165846776769477856246574537376178695791174754978571913813075854434368619606242487602982320978191425125165490856699101173364765806030788029028994537879626739209791781556952607074503926358572473777483485812666151608241671937929241695600776535026367412259796632973725641918629259145728218137562990770858702147448573825681913737498414996639859749370751560051423963364743239979852091613450978168608129778714293667353981571375672607783403490466930438063558534715542270768992258870599309444115868601582789551543738649053888032161622656959985214781382879287532774690429139928806576988022163471485071318097352519532187234513215650813127319497095218642515951381823737140765011205156401230115775782332381079541012703514864934595515200031946640425906310182704204496306628323954730771733565894518589801726554037836961304655444950850620567669914662603715663951624892840147723819333308882820842748591607601048905284878998327757078129850591988342116242948407949521712671645417192273805216070090791167081520740438290592254536945061073053435373584112558991427463922511825210625543396748752473977300032647512252112727797398576069639338586369751314336818899997528960311884871226468318184181093838886659309061939297138584120082373118080211185936862067326527203655433283382754064955257081251520074554714666173631526730893989574407381365610729742163543241532473384523419803339251458868714326101658793225481723863083203476181449813302287831815563302717525967110122494718614658332874174777859004538188605152836714804096385210839150893943982265785089968373427311129935355552449182200013279647977026099490418458419610302063195721594985513733739707021000622079526897563050647659141004411591412389453265492214767075602190369089237181287785470533244683319171347468186806455208816947176811804562316821000824393498770991760223336676103767927403357050935499563680626158021342853514387216707799314051416373760247233505138250128195207048603747453838482036045112773773277545308384012010124606339080827387327495962226934096228181495166884790776693593729258867716857017588472858037251418953866232796553206344047454482409054949022104482273586809891972363460495899136474196640956836862732304594799827874446627486628366275575102482063174807027998556625415171574955487920716300743782952489444618953410854960251322556846925186560118665690589304843849440110135947891846859327019379758143652988032137594303589147440613328242598272826254885637702526662387213202443157448836880298114311549869137018728133213024803843501551625384091570460851437975852407777946860435441695065890319453863681128179744973643197840339740248051700942318336098258006980025188781968770622950154818155189815305389620616007604816802992562754778176750174261728923964770979786320304128532649931823406569578907697518946821543325547978955644596979069723068891893648253412072913070063371383090069086339350912940394672366875420965603417543060863903524739385666533369808151933313854990000492814239841075054200806155889567093567261306990164904226293939727782467505323703896607058362437953795024825768706481954194169130629958418676906745815067327157914765590609273611469137540578130367470181578607565059444396784268304835913101130637661661715572156815117827126913459809263525143046240949030085405728881292980204079989255823967630519689774673220027536517210816007667251260605176347571256960045921419630659135339123012417182339516552269210871639960221953774098838792068243808789459943532469487542013747493949107045112212505617626414907222006142075206085375331952737979917655915630563202528845333957034373919333921674450479420615551684161130272178844668648379458588317057560215709324924662147926587899968151532373988018705865951001224613742509138884277906330730439794214558720428180532751144531015968337110621575734348307675658798191525433344093662256272544654296130082549827389791268215623819160821400412953577493696668511795848113028562702949673420629510476529820977675805871134505145934182535448272696402187283558958831388358421849315524008348275887213774405797731936600844655263814666183497740302864135315778503610217674196645027556230782017057055382667351815633106456253970100333814012108104643030209087425177970149292281315878815521352731719099340281132759188488269940367865854556960861581005799699750530331301869859079704989335468721423265883462148571628897014118541880605940133831725017054061145542889491275660296188117740089333537953078766374362278775974874990775791090729880919882547775474269927434127869416206770049050023809312845291921665550442600179946056106278562767035702347358080167404206235006544047931289447704369224624182443082147254451623496526297857801044324742296339425308230301559322360582054421923852146510965296701849638815031613025174879505473128003580500660734244647281813506537522339480646964346311523542832388254288771785070979918056025465350346835994576305461646994379418449463548294584620810231564628699844372678190274937473701665361938535973634142058442423036443453309380795825684798134592110567668902045130462471928647947852670101877620442910145112229028586637462073088682461706781155505346676820005045985638343918682048392971168112312742804866526381940255727298720735604370367402991445712896048015678654920641986458655122590711131050044919530602945519896450797721074590039211595760026876819521727393221412891280735096323688975803871457580342356162857428528145860552982243706522633072070034073321613247589448173709419303787157409498596314896610919541143333397257438420099338566710996808535274800766336953122096910223687778089620919894417518044164956894864414807632668483890201058334897772542321522410429160005191016931681716554937900478035953870690474138322107104060313661979049174900218803027484265541950053929772081416711913060224940858058805934990168251223897343588687386281800514109748736647456551652492496801872871595307667749716006948754140527544111998684179464336346416402393065606683360764890330107968789468848050436264230783585541647347650592463380311079105975915108056046451693489020674707983899165371138856093741920187609941613769122719107660714120113873091277740174075503167793793537296016605434933952422577999623121958518640709177579570099911516530427326021595634347804162799723330796162136565555786567926764062528192498850971936727915868015663718618024552640839239185054787410629110453211346353420811695883931920783339217025872504611339704059201407352865081577864330967364354359702574571866949506935150060504800686801321924986731464892760766078437690506757686781911386777295856953776318670984963543251261109102728483310534304345353452501733854495517337663961503714561569962380911657491783559029452904046052974969570318576049879087533226191230910443567397349429826715875725698276927908317523854665812085739294444925341813501769515822197985037265510385863470259374731794489482089426458791677937928172474413513873748382181125011758261998052374344821986781787157053153905637183359418491875027560068324097194086185223616400347716923620118434227356857342503089706927381064443302720184388517556901783107212274097852195401623644253168075125266005791449211758039548544082300014276472620878057308329323785845748166727629798042040518917782063037536219447055878646662575924234757684800624885384718792887029694846281493334589870580258036465185489266161224275201679802403031487491551028474816281575453913954237127795995145419156836768728655450119457747885628859920930961592591520003282548587683584897165453456388590715148920119915813160325440984680736890091299318441962052129944774162157999738965539876326364752495958903187130672218283546037245166811101319569533027628860768646080318888740846128386070041259555343532947898197338387709851140853799733875448686866903842479974508580120716122903478441563408741827038999542807265654390510058853070281431359532962580600452840883342538765261499392063398399675369348651057689613726277045277706579157372504484497794845274975228751552121829618004299443359888593735523137748800702419020960182968604650764339741232494169097535378124411695279516375203192111258620742606731020677650627211715195790611332824088746342936378595601243867293213011911777030144250665818537839323973489754023230603074116899588080451852030411490132480224252942011226861095976451728670343319593581494404001880777307236572715283377001144586460943832823881060559047375459731191583593183496599864775895994429682709032747219528119365272259699501250239825136074874800913534423219572566429153198191753554453080849102663173685775331704702575494794671636488052529920849855414546020036907998832622438978764951760736842966793520241469729638744614839050622842989697502631503800988031566136733121910002158118420665683756618107311602466968796228616488107914513156510976643437791424536158963197787810198771590692054865286997616465976209434677159885680756392547343011797385210501856799633532535578425041459469994467550157962655633686144087987808516497984262057360128596810432643930991278550290042432109555889067679329647228075277149747566478613131997413659672243993265086183189412491151073182508783203961450596838280159929892724399547155536250635770621966419117989460306487712456909734051752987214866244080170046981068761856575072015830452694762142428327920792347224029972240657228764514143470456365064425830474032163191026603914960228376905942947908848046945218820703623556739539466590478902984178952087050570798423614379994838333960752376209703609599643166528711713982803338204412182031984300150298249967303488101460298938628308378136333118973462819513267600853406718079213388893835503198244763324951606326576106304120558356326269629446649830239638238912390085879086066810754906625794288590034431879356449477032383642972028601465817563517954658372956848875289967231943492237530238539381520700687404924200318868683018447449802495852722145683293492024753353244457362210880121688690597793350253106351911007007871769920215181210824304820614617712623789737593989142018716757969668633857573391210389380835187510101160552372573534414577522036534549055939184291672375833187045804733546300169349349330928824087402924110013303849988746796291338166680379269891866299018412965846319677688235289276301772799869794188951669947929487659606863911123574251244358220517254305081148143089376646935665708775091568729311743560043134695798871607097956508811216947345975133132538860403764768538853251958193931118554989628186004482553362646892401456502249325244450016055971644387382535010093385111348285455964522141878054708924154271568778790188122062054854700971613906747981842480033091845929129282165765160222421475871462793205614729211726641791879984886532123474763838509900128004496471238300063746569470299892053172434806133339705896643697379292698923000837715935351664704391762180980336983230719985924293113489838487030584082974372799532986460734635895474827650734226006943579782325398234501472386110232283242739130113847601116401849111481627029894981760152242453626799753975154863499941045010203170212452519500380177688083488697533220284521273744831456723556043560198559120025887345351644019529112134394177497432004039643880744431615682838944282192084238028513427390499219668093717394490982221416144082988446761341052629979788964039235250678649270690797228772736060299252111669802074455249155755082020511301853022524264465682594792376185435081745740984324449630859632863069024372772159670077348686277450079334377054772839554223474350780536875347417947797462926438994526649478413867854981728241965968821207761473490925115120509280778521467448138946480661956351012312226536102564792974471234722084211708737374312247629888520172945105297165843625504654887943259580875329830446659637390714409550486685061784424608015452008456959913138603680088558973969004581699676613020673478041572021173413181093197748675656892517853659816890977781947300544457779768341876034753642500093431189575990762407972758677593770968260982856122494248816470656026581718640641895700677949176517332932358854390246039288001032507037483816599321650763689533940969559366958467362807130442176136392409610526216842196985574745471140768799887842502121129149770214723431964674668823717298090841946766899636700392671779252340103715555991970341569111291195854701361882222450890866781573771618739233886628370763425448551899727266396226328000268063681347753085442424985014366420690548785131711930327972157801718371448313112788741158388363652559020346003217308975503997235490016462249769275991528874527115844926500158556764317218023114598370932678424229389782452211459949033387645096592874057486002948588635597423307449479291553004745565963827326932654708312806310954622427071759380166045488511249664329027776958281005111944839945703052945366970772994119459473551758492469827214616284851114818143584514553584525251995137605830861396999653381299109783529559433349447409452037932688598959310517527791882324220649618755057171461066295413038025474148627280557997928365982367850301907164419644717887363003654006935879838364593331504098017957651218638003415636596014920209572834038266742960397059190673280647167113444302046577888531227232749189331266405740108749962338052074409626391331948273992447560256047366093316036691133075250416875939090691515085851490445360271357861367306932469470948662239769964567750550453300045001889531823652209922429848658189224248875200997443898437229960317592225529621896711672814158278138362491503132447527622928557449153876697998110489601375256503573580339456824631304380730336478403393557951057987061779585354508477829726716041240302302235078516343568678691628234159227466547876556781354612557214972068979061825947448819403751288270260871579595711364853211726619364307024647325435161249713141557623644071064905015862367271972904698836078277522690990290658978443881722586936678608219593669678805674063619364193693910237209319169165812225114354554509248233889929731268846230645410764234025810050041151104491928778416801434843609493982938860277279359327857614856355985417329453867280942640629132743115372071266609636460600347670305946818649193253564535672449542335247593783957709752609453346436546097520999391497610556093838916443754768687990043045158618080880260474463153161976703021680918031158065112915375957890178511063954163187344064503657719065806347131876575454859748985319664631318789755704703923207179414540301824016629246052891228871392812853980516715697585585095989050376499579968209329425805156002688725324998410934214780237022256568367983320733798179845497364133258229583297374073816511746922330778142247025529689217713959278352185885675747635561271984311756770257318453083451664083541293852580402503990744814970401282095369266329173575443386484735892516158448094166941432647227530243941696992174128222282501550405259014446891694663805459630777044095989337748435513389082730391660925845379147259537039453860155346549824346334575111882647677555968659384288677573833813335240159576375852110191838665613261511757096389371946424245449537950216036493516988740740782928778875344800781226858017807254446198661583021481697868810220490885936671183729673614240714950109711054457524592395041682018026498440401029971167956402309955975791716531207940543604065718057827412294267634847457649634351751659094751781053409098905637296495954044418630371722357137545918721707617965690350475992602520521220006219818047584593679550856684138688768158639351933777326567253977323952965435449493756895578848410682556753607500225128305099926762734675446482113849166117528613846056156002211609768410950578843782309310136150053757291399304143511503707624685731477305733337463140212352289085047836154905068033752388191550645070133739288500157630250288120857152839772769394703699676450490188482249505212463292579428414134655083064598047006093724131947076907563779731157083710634397954050317393460596109378426169836504016877767765132610174476480869599887600798327778827558894678591346190926498915440469285435703873092548387800367580932964241382223120714522259549352440427928872037887193084901574750061559494418936357349455303949978120362587929655366187602998477680974080783181582396852950348957776850536817256099005515682051443351634771507225122252086560620733342813517771788967595659198367832355845369098798978466532297715946601255839476701697640833710735003866047451912202699926811430309455117330354637761786790503403304177274060790046992143585426402630815388722534283703035781430726266043327123204968461530484679553848254005000905510395994989782797980035677366833271368590116839639280860933513232458671619181150306228180820136022418495470022260375379352195078682795009994605350676711981717335982706366316147689580684910202077418278800008248864910217544601011077386163326911274847141539111773329461757167580741717468961040005343749497136381776308944971608005465982224495554546186971551613647744467163425736553019508012219110973897230300002005604580592689980336236808371577823826490907803458129148555705788609867027605111996692709743898719429093797126713534781310686479126473144620855336664052156845455217969451658507550547939287971130918130743872582148919290490724491888676010150116989376400488199097906095728000857148486572255294036536267889037100875448131378008913298527988721634793630220733468260446662132957820569627078736371791422602776533386210862758230329514629769840213844602931519309935336536384421455659227633464376145759475854371017326212660100880057677378100603572117885073751959852208386883906910109503687536743496952477024973207862046945706661108813656094164141841522371219030425988830215124844822388200889720351442841529017566972998865240296845559670120473712451957229584820191981691867401950181191496085234220146155647693629084626014180771677853617621931551348950393171771871040463351765599790436451727825383698879886315899080958969038136904729185438707509829892141355443522894943241561746014744138158874486653846946917751451511266687453883786842359152301818303905557515610659986387370601062010604797945382697201131649804648354777464463186870697429517565498789879220800960867851711819437165584772029128889675521296246453540529538002338763116618777478583107176254516536723137317814096180745699818543080059970602899628523134376270092651550520952198743872506443772427817326953943561497640523364700741811116879468643632215437354260649285898489068388857189093024292063377131530796056905906736233773728161641133389738088273052709363911102520799742036371190634326289485448360648746692412570729596259025753731382570652219937138333149070397283074461563653256161907554063471033167727112628586381891113195603417589863359422815637179325736176231646886595462095951679129430048952805956751516222155401683537266402332847365760853461797544714933108302393795562307659745700506792811048263258205628816313126185683869971935656019737670855134234237068887258059845025485887816325951236134226990401695107922680384653856905331360242339873758661251680745796886595082277945262870129730222039524020579825609864203458079737071225246383063309699699916131646285875029589109559679388205408067764534039241326408824605241908661175308290217716877969297697667513816474585011371891598895879948638705106646671114016323080237360181773418366013934464607826859912942124398724903923117039466992378727561916363918354774932157412034358419118715051522351062350378653930151913956880283505248744434801044697174083820460256481142618920937688786460143187198241583132397611373605140140356631470861221231198499930198234067949677436364685497405335795472219112238205552619394993353776947463960903895840230244318979574143631270634275707106892462751492481846318656067663937870473098956190448110620268805797263829718922228614781892639012572802626530235309737335914313129081447945559067924699765196523635842627745625774001697761539194431990844047375872636091956512175643806778707645069361921756593860886161766337025453380608566717958107667015310774181415780157511365091748588025214651519796526411678974147437116008236319478027145962652702502794860459271714520646527244130900813838629253290696765926972244973585885509363669568617469448149456823307331956259102545383192261939804217152228654893082968962036009982198476332568453013869536194747389766522526295897180360304677731035955575936115112330043742212474656456947829775587357545413167724706202312893068763918093856984958175733159554284885221117973300324862759416416120618546560739304023107107814882961701029556741378798753960278488733043597380593620122492293735587398352186956467212696185584625080037091895995636615093598175969494033081759241102054231316361339646599204132918751816315170486685045472940355741596169003599824270258416148897109241196010748045414251663829211800750850382213105154185821181075746129435924511574455180717784692662333991754875150726103414786628800990375566219504975632258147362305452828229138999553749006503741562860349290125254828469506356685687202934564515231082429343802080629342902668520275385721906077487885925161564566011300675720711954706729525884700203687512159445376425033147901228881204299330001639097725327882485757148435881725664823912015818591076597713029391426957353464437093094226517104276235540214450342783489406826087721237584056482476646437750344080511666823584938025113275587380756695915493852442039750740533814985436476913634278868808264297351895519064456219954804402554097135675991870217098543430018790276108349590219978817799644832839018796236246901634860790740720289222881262867662005591035703987064044871310526073729886628207170711276789656304034629867667060312055690373302113239823006148584774097278291332030704316628567799699083741738027804727119157572740777033104179623780484776166752419519518917137142349936895687748785674369739791031071993813017676257258339205564385437059690396885495667230750477476579939664188909961762302965963198177092471500600252742677229976401128459380260228850288030692890814852863007065421211890227739981452546181252942070323901224228622834961108738067788311309005404613464144870504517790280972448992908994372391421827171742548361921619323102201425697653827336223801107207697558447105859677986691936098294671110906217141923541366728954246368880071039615338905170607653780829468076163744050025542752483223278246869629672918538727454806993378233751265762222848716979047764512863077498919400760310782709975868855295355031886523596965420078044113302054015084203770700311249497401501738719764035481894747728564476435252475927385479718480753660203009965604114611724769463487358896074786722109997415698474755258271678266477271557604997565520148326228630499200934278751091649768712810413148891087575982635575296459384033096515311405220047732193280566105441836138077168095282610978715861588668047370081189415225859261446792844599850876780543856468154596663299346096963265491861870793765161650360648066814113603372819961638879065853590855546220363142465574623893267464406220732564013617611861228631458098202550981006212953803303944940724677312851829497927889178268906644036783197339030428394943717188269162869072699180302685918909854530471598323888428545004225245475426889966678198731908996488982370468713078512961107113359773611339340091516763087890762798957549193045284980811987899848975661618516895413736450233210139530863474598160851636732049539113582681547584574600155525309447302298762718208903626910654062768330577215539013952882901083702182547311678052628813296392434426502093844528467075331888505579482881984877640850291179251260506827927352022776083020222478886782015718587916057557471051732014423025143639411192127068279052172835774919002140631228807648736887124625530351427069578906876353515326781262345485701210078208413631723166734044889577231049168557235850662808278470467161195729719069914279644503272336121362504868981843828260249087286803928384982939725947213026363676607652479399774149276486314729338923278334858788020436934431766437511954634867681616450052148795007874312674613998867070728423068989530919110109933548805772919814480610225373929319653406190727109605384371373684720415731740909708670347454540094779629444412275826395834386453798267963728194657019334585250822530586255210262603755783023009433929797355293918046865987152720488374024334126120833327866922185102453774669494091743228501949537938855948511721034840547697474012948932428864920583360704764290825104085839738378705612365521384494104498485609097759728529301190935651454722053345558382995872641159239061522197688111891604820159966155888726237190631000302330174850433324458561029091274538065996282867979863116339889012738113789128628530940370081127581210022697704376434269986943182240614339229140089692056375012908586373667430685560058607271495837707551648617267375359641961534645674715610912664310727607619622802321963630310298190419019473414335620454656732582132943458051390438216929445942464002725645289743234398303998163279978844391657664594837619607094162918757849900485740105788669225594386193488715474588964681107013564474553108566525158055768264813862649275354495381974488861839132677947519926795278129469894125074172749480778704923401351845438150622537903250195435600186413133774978860339193696980186834179530381609961432296203530353519896326232214680284633214330183612067546274946266232432316628721581445037889857636694344569425841378088362366070995038620002322040605105426147112328624011538872671594378593509822326690828849470389049466646126800427874410254114379196974108768175797594101691909295944974739127554123439318993040163698787490027914968206481879108655880281509263558590525308537658596627968609386661020581396641681418649566461382841058234118679749186433730410880513904224733857454376580362689698617806544188758675200663966196452183401029488743330582925005895997056744188214098430531207729384980037573346470707005793486454399818769860886044065748200304216962948937070995690913956277222058417129944147143690206498567052024309661188177174193655245629295366792076077073804302662963730772268596403245940788347910796784599652791460525772317292426924684533918187549342090170718731574977554321807579615615792668469609807828419029029500298292712553016205216132360316635702799587412330681318564583953106593088225557390225168458962668845933176521172312407988126599652722293377414863003984683357524741546872051254251792347516971683591252044454052641079067913561375017575000094336313614401594036268236521067243943960285235123886683176375707565897138847294091561684218094958667397089827198473481688190991383385871341922029484226455122126332055891375771795201652954538324651139668465055894191876769468959737466348713649779538700529139691086075568421387765521580462692924837502337301644972574521169894936866369729276350854464927233366898819283368203728476448319711351156952625533029940731655446866237627289426667163038597245548956934745995097110072314801469712391630286158052241919509925007687187070713558475322867023515095510228685465911780965823609365195428303378877722494178413109879300066270318355473343026534880533613615938975660615680336295267227100278068011621711599897508992152441189316721485991833750613853601591786428708899533976891891289513178745747418066541866003317614122435819789349458852120346492898722511835259640108729763472847546637252990592142970988465155885746706537277814847663065362151807244276188676226302708410092969606321531319830521710730219835746803736982197635123954847281307995151712880192244064777722675655554530209303234332400838500968406442571253928047714488830705189877776705822636176002750584226696466735062949706186051083302702728211371223736444153033397547593044319771707887900795552012373125154307141684070337724302843744491453767133400396682984107917385261946097731320867341155043468238529418609787076265145548685761229049275072603633467298416947827062550700104846021956408859069994318989911602953024631842152924410735771355134999625320510731136198112358687131927794698183224771917130852555423272988586099569446559452826580099787829355164977427618549771946143545244885271464210875330793347377307225285851546828985624577093928448840644753771117813270270193337899274193735996906376194184231882674999366699252980647439243248527953489459149130455877447087148354992985490149356739069224201467891230225798493247236630383414659758423071973404117170851008559487252592163908012466484186905076345916959968682501733046707781552029372533589115553425829932501436296243589594358136437814975559430547140316011089117881738331759421955129939340154351969376427383843482897952392312316418494214815558721152879067900929155047299521646122504225948770121520532881296755194840674497532891521782096117018691117269286206755572538592697527987916589879096391155229724952719474862061970175409600291097558000600501129521872161957394851013292122655788675746363878167198684558624018905271097030190365736956155782925881279863697813678730877525066570163688372826175936144365925005864061158095224849505202960100227812556992099906135223022148480072935266326051127360993184415728783247984174269980542619494295002334979515965661595356838386723243149615388776223590092940653496142211655191984938996668028373160998828123994467726165290383727442878985934763866535666965597482608803401677052187991427986311158524251903984027248598275351907321848793077775437415233657121925700354251079829878082086821082016980121547198610793047980089508822403865588360485682899271072339409421528728210686576063035520515789624432562142862851643806835864408796219496683257256301375081535865660558940450028897499094382533405076731886004556295186143219035177697627139925497194353723330439606427741344348811118319165606916690821235395529473540498726951888571531347866050299726653150466118494037950964620471689167400972371696153357869030150271470466557069070779158364293307264271810158511384944624266817378168545432255850483266739360463655445563951745659000851844278941719263573619359121800314638702675234637625433490657239660327326143092288337046458013482008068839730467503663309115371480123279459772219356375798753607134757831304771303566784256539166767677906901041942132423957836022019764909096715053141447321156289317271072822782762745505101700933689342130937684819240210730743003105768748656907427599817785598691282443142419718919984631419632772512951723898710107365086326154200891333269777804882552713407876619771746114293540104747242659697595292082557272109091793020642285537747193803354419211883268380061336168510597380370981329642766119013773958191540890326901916408735201659668514845384693166602817496272113538159007881566331242602095305446708057627970825486311063468900034231251921338057988845072599571746558630533154718651286007484191667575625784804881304256067902697467158367155367653868608665454756334147478354780617288672469148796526529099709660690527054166979600747997049765227034333237765092996595684636524807186173668717579841839095726237030295565575109583851239194340324388869590785393357888979078352011091484777000904116582656441706858537646912621208119362962152051948536902877853098108695456503578278498225398801080123620629872189366043263603995268816046894528046981811086109891115984555332623046460141096758522141780843870970534548101481263949823790249540450239177312589493631759741935777553151772834771841032707308849959020628814308149207109635961869993043566638270921378673289804504211888794465430264351692175536838629409360269761417960526186664761751978634960389293919112560989674620277603127636068725301415162254573624686842708907653838622549834996482420929535480487782273734406216731671797026646771873741189158961955833309296599885227257605126209160359732654773199576432793070176645189176649455312323534554889455729081078783140245947892672796264407659011151613598688470233191753993337914083178442034207591196773385992744561368702075441533217304675610736651696419857215368273951101636262892808588996336467995842977378416596436939014456294269912465601514635889789355637326019147476640973359854993729888172082189105207264738228514523204403988089010055669389906192935059473897227385196999349441027300299612205401504775664498255479383424707718324341334371522624997260515929037966384875461144987761428690030437351798338308541171836669156086062892867693772768165903620712000249443491416344488674508557984503348197321142414771075027431645641026830166653768997454176414018274001478698711961772031631029815566919946522536800849293274081947707079399042925850480852998790039490564581088907233073398792152291325712000089190371329545713298370550560337617230771425214527116071875243218781510966848332991780564730269827233741371737874495354542552135216300350269450623406635126312032675078758077832573748388868821554255204071707347719981178428640935090114710573079163847562725793543729937218380717457259468699216004370338624184906007016567795660355843408494397103765647838732838750287280742096072872352850562838308184901481645207759007182354232610264859742967205212128171922566058469097117012631228509658347481770054132488096629430767844306630259149110358022691355452044796037078260345856411286888534995462742785268828181915101961006910435945251521922202896118847709353542303154056772431461831739670012545010738407763824279543806170726186533196085089934361395104529721487845461303834901974431366859011183792016818095679182043452467289541292082656531846047429251326901792869227845279688061540143334272590224012036868058663287944747761629179204164997491236300039239915961183745303747516346247714993801018147681690781105413670207744904929647379931698268378094180920014354703711514441770020378961728962612499626124146646737278618895876508020389060852858315882028621189231355582336087287735250243104326580505782468558757539254683482520099352342475632400146253707847142912080569933554374731788852458736910961165152934666657249495888044928848168973962713104119317306501016391883758880556890662363819401995774867166139785266008856827006186559140505559526025079808169744929698335120991083898898068960472991775613390149900982138408202126856730018410332655743093350484420631854189889193638106167430794229431576025794821296979342629278715963867376944582051574544789851986412193328866800315372996801671348454399039510552466582316454046657534928801118285597546029473879656613665743159181590012620422926291919034785631823771796007029370145082273553042142730315848114093066965794789291973597702769119297508817508482122954000207881894549566625569330134099358175409078363238846695849376197484653955221297940429666063236894504855148842006550736749990216349606352676013341662146725602393864341981349936678774567926850614007224576391261865772137253507459856126934503010590314821564267888508012366543058035207476652773996328731899941636104336951748309087961174618273263605171849342877239994240033267148914327370742956624347917489979173813432844644805958129210955947293257394438438147530035099502570217177460779862411250220946920221664284648122212227945962949802553979810019811696820249273888016245812576709371399960529806731410689942677886907250972531883067454909224553195125134887412866543063044490009319816191373469196644074705851154816502409168548755802799914701588069800027515523341453479050521146230534424398797306752315680997848918082742289587153004914028270677605730071474032863365399949279622175245014893054794541343022279094425158316195176170543807378586519858048604988493662358119168644877145360535321444224992069032358505866750560122319826603007789195345167714635159563672253316325931618725336912861973810647238145188257703311332809982706412003252599936037511291573377994148218535577147915830718786577884845034209781261490742912297098155006220470866318075650520726649237851328626559767369595337726175277743104502775481385003875400776379789864598868882116215954275697444203194880891351847122068550770253368831634748615924340433410631460030547566561785207363011011512697181102221908801275406017532976740079655493546170049446819055552251009839972532871183282133203726252860219771217177598267080192405702456417441722107135468791899515041474385445359312960876501779407922773378682944222495146136945391479837884781736129627325729845527836573751065717044757534777935810951799330513681943254789318288059530089932683456273716446221635451866814921102170398366670548834562395476072929855037417084729499368095714206237032913339178817776473672840444902468112596082389547594351154940208862413246131128748740098356820005989127174689382853101148908635474309155400908661467254372868015328273027698216422582447510787704904349746161518662919519504003384075260458633947401782820539668560955350181241488428093108225484925577108805913991745842284924564094010227496501333909676214485483613292303010059558337987067389631545665965782517052833640570453367076383292793949740469094124912965379713743459378802120192781431625703168741063319201958328961331186389160751850064500191882793903461760268281724625624523621638451107820384993537516725803092863767023003324568910605024756174095627434862955135631588765534931788193331084955190190230636744382694251621245528530053529566888917963672405248920555251725276837199723691056765768915281667152595103505136028263788178388736032443484468820774029813013167895051341858548075000833281046144387241436135991574001033462698274306407575963453435432249374716304471869621001456708191039774908183158777977197659542739559026109332169069313940828516093448135060817895390693425056282317047437809542811670505977900478157299594469545825162529956224596466436036570076494049390816296710957225787964810314799812149475653229331289143006596554528854399907870033604283262837379338913947946970365380428972867059004021432237896784311974040455619689664887487110497846061972739173176698265159137927849852445271696505916648135123351087954215033512651875914402442921665311964752496304667239819858357295973182182165717117642639329794112355020867777483532699781185814416036829003935358974182319677935095998280243185745754789956388092915981692462652267945428545870251976574375279731683099669917346515861866221941083864447058294959303527578505424501857904259404689743707229159526026353777415090056515936227532315621817548467436894726713045356683166500332370967428325655747808947336602818482176294340022216553688394124132810664458217189841641289199223871154449221718661218950623258354971678413784649770849784435959180101750143735836622972362542464484269186505410963946844919673736532535086049049183719313896041434073615341268496221030054504362585442553256275509152234517590906913870053864411536440538569526615547497201958336200909236883437442996255050238863998144583224122504645048127619099814624853222552429617376000690314889663759020275719293750701594557884435680709532821780006027426378851840981171188696705895131888945944287324967830566459123961666746524498293372554473219634984283413047984322208354405425652563113750582246209540539176208847448153953088686643865747786345469466871635609827916817843866768498705479511191354621509836555069672450232818079288994421153862932438821804580170997436568539513480123915557814708517148952304258034326755263299633805661675546989653929939334803950698729372410097223631342838784024786528315011812529879362024175214394657839889622088170732979389259096162461224112374360284887602658742573616077164907183769744065179493589253346014571049633325435146615044938241114400896750053962258006369665901844316353096131146854661206778164368571963010854324060591561139026502032204240288310951393924839441966802433217632168861131407878176675024036210098818701908410392948146440664638760924439516635668332164203127505127278314752472078190578572449691230139148570633598100270495612937845485174638002297484132150971697933087604589269478554632967069701739959759904306067671845376288841696452127950964255648382612024558805243341861615605969107577405295177672161732555399514597531484907663421833728315375050382841632281848145186475934159646110427548792157385781565862151562990847099830471466987933861396981840906093324794672667218388705233442266954041201155704260354434989048538054096653633833518307515290863588782421710615392833118193722045109591416277051567132975343457409909275137261924274786614728258448292578350764711651795704316881014545871058465450769388815062723662062070526188115725907981761241062948958194721481285999547325413602357078964484945428522240427131831265216327870158650148101740665753517152059683091952528410398041488713242409093451800631715898272296203681149642502348519108798407521336369640662481504202398117546433759110586563297140387586367134995314930061890235873293840661694768166262378426514133252151930722684558749833648395931883773428164080544856904282499371591579850502536368349277609847226495205303749951822509197540911766292859249760580963358342644064095597863594687728776493010735290634250765716889936993456622462106156237518992442740093862118222235275036721882482709032975023966771971431272836850151056867970062310550383750385662963245465755200031908124418797932157524309869815979554525170646093357716777094472920825348150522835938727110245088707805722302348156882025885968835470140077359021031443716740923604942905031032054987752263627357769289888203037118864759717924056599194344892498272855063302633146949204597122721122511362236747571711287693936267018870003265438404615024219736061747697047911806612081883382883738368911756430853114121535221157505739488459609873213904101673264772000455318078962068117048652754274207412511457875350875623781236018895862463349728338962139276226788707975846851740217187317528338777151985913247808157674360802314763134812987531416520609220719728995713848947541967725560393539221508559688644014215628892773381811630641504441545163500643374565230523826676224507754406351550405702608872043939647731518650930159794567517097883443012580430749270311818348559992081893449149152532122546700804038109945793929523572913708507752301311324734680842140418148102485501200711801670303540382149558328661059863142202135842579290492766337585240297401927155204081652137139776281229588265262590831889227998646894851533489101948208475278919587951606212514844760238378074199181171474941537103996724528330475916717262387309635855855427217229921277014064169951756062526537122970614643158617976457552994701491414723286382993925538076545896704208350436721648473729673477478841377045914725983852388112709369783672402052234143422076515144869468368570823079766305957657709342144507547761121501871275419344885596388929325655124305185127955828564119768621034899583011584770737565285925074320925036572298512933069229911226971375614568526830779530726524641292603726973165374394942308639530027507151874286216496616519314371237323585500377812980953212520608552620412722503982530654459855104902991198004529795068130020771675802359858707706585007122700443351048804610333749473951920715454255524850583411382807053553136904795171301965212394924269072684971661081425095448782550018720817684808655443737659334508774818651213792600438867449038789784586529634102342251028714890338277529789681465573435061066006347122814184656281181750198103781936185471768344994474346903341625190445967914257217165930755018332682419921764952085238012745791824553187835245161129969853328421499064184967592046516505474416064853608742150794598007039712111161398388706918191954210719525293068546769087387986293132756691911719261721720925754534281165147105644171505060043786184800800678032188952475860022726096160620414708748761748192947825635389187287588297440863345638285995398521723291482927851219753419430297219854111412451813020078227163261386790101031748579489648382031384415740893767793982337700387663885985740863743019696224218139500124032400191743807508972773900090764687797154923582970083976044291051728422811727367714959353523044847941128442534305755643051988949708849740223183464625830458718072635663666424540232908866029132433025901788871342637524731797713897991146171318179919627409416285821173949698829411091310791171824111218603482463101723504487996153909419767463745025671755013687617048456280906275589759687649111961680846641992758707412028030228430689071638505228491418050664797080629370818659471990854646525008759198788853696669694830184856611846516663776065629944151091200564587222653976220908924337546044664412131024962145495934027926476161348500910554203937213829707297653580535372890072490322520937278880237959158252536075323455425489396243155763708295881053244310059163968042920589801651348868955590309818870567336504999846770773833670502747129141239905425774197758454157659092267143792490081378741666928673477881947063336142060316904423361627822370053198436453233357607213386852367523210169443016138648917127881491092642535097337043631732159088461063274972797947680360633362244268250235631640932601197823851281094931758194713678058444460956541497600518134449458282709617673379269063601050022888951201454855376620565585194761351789693893064004941673312486955462676303901930736335145217043443645114080257945161260269275802993300764683026468210057311653839890217471700155769704954730478698640732244454413924968655381421248914622200420376616747167171421513913610088813715788750616218413647028780636928538880999691177490260448247584324034982874725625245791212895528937377888121256570395400688131179898457711583613261699310527294636144628269298928836022831915008522264116448018679375177056556995512608530250481518092799838942364144769018644413420768517567050591015336347188649185935863756056894170949870562498619442234218483817735528661762299423859450267384897710317460990786769776545189701147711366060335797944081414404908242349213880100766350852502875607846804025076674448590571217482320742822261004231939988249527820138627970019107600833877470721161409593998740730871176234669640015089806641440101193757878349613701669320167246099045735649750110160478755202556594106986587132358581438802831036935966631028170078553395507575384424572232530646517663802344887308051165106793580936532769977310497119885418521244314819747643152884031029886029079247581996129519566797737755365623162348939946928868759637853280371895743859927679073130356550268425245050946127470923297636463777325736279067666714317530423690225662392537610517617010112398422661216898405643665188998887146248503906260102720172168969567223216394802264925860661925723977136729366189255125223077790068189177216953706556278783782057371598662256552532508105180185345105517941722771965211458037429966161518978143592697180615398780337682972109715896697523223778638536943655519859279541193794393659269136440870241719806350049362743533609575141560846855532348427088906587446698881625710786334392421682334947764523464967983841816412908405117126880970102454989776804772350128131121500575976696432202346215345949460976970832148603710048100130085396173312946009940312388950072363163192550466237406396737576401360320940902505634674718152088620198394600582905258451815513957839115146598063357317881848308145368885384019758885445370188692190854299055894155799729314547595831433263134974975888149633380114434044784966082419475459713864261329449319217034387287094451407046719401006393990237104157755579445851208353880370430675218255722659440497202395319007795236776036104701001872949423917838734797064220857060593884342349634837140656282277230739874698568166218936844043008574936319782956066022731489900996959401790352633861872267663605117958488096654006427529948975299045988348031219064756733236907799643662422273109861567078061050556716735907397928462919738818465873562011770375123569573939710857561444697979986761837518605694376928608383270789975647251052272218836706894828624394177106851073497496722216460436539099322728187531498991913134762873631635865019867215866268495664584184775492923887893621999863775235236058186099800960891044007713699575911436555254853134853462430580334481567182935699875891956167552469715669513253509038444823064899606577839316975753193596744447199340322108881106024898423667650345906558256496126250712267319077777625135170040513009487085733740668643049294355902031274718333893953960485853557363202365068861594824752566003030448044354899680868251435843111082764860279922496527980102976099906677121394487899013372560817481295738365771894232827752170001755830687112138279190294277617641591400094955248049897117214245634268385871925011873311887282145097956695377888350123805666747263978470386419357705316846734710846835135689045680443033538824273907465939178462659766296342244113038193495372225061547153942306446236154281198096525628615847320805108265483457460944051375148629581559968582075722747578275702945079387963999397300329428495199384009769363214042293897967806625126895434763275855143441385457409575037931527493844891113790037793607839025735931896762750736556873455174401799744953364991172862754208046017571813506083394084162651540014053459493313709406477020812928697305131867043761648543221760103981336876482400309997030919089960651305887849390494678853285572627627421442944148782771860953232669943418998140489847594976690378074631104177773690834870958571616703593208448394454707497113592812113681317502028820122935746994929256143817822934916435553753748026352890888029254098630301225882646969058171088896607441079431237321002599559990062850592279163574782354011321945011909085840609918978082005534120745737667720040257174491563750625857271950632111698643457785296829446801170974906644547219728882142933523899371791107638597220974579279361992386646381643549136002103167159183339634629793167866724112120083576314500950677879774718208082933365087391515206042612315981069693380424437373335464005938420373947859125068878253079311931146531812492519849991790267624612375100794019853538084306285844683548232271410557545628374429057787408691260732502274522200863937322994729157556650118557078030833780523681712285678923816622606950764388714181794549577819621380678296349391358640801363119822160892116186090510215444934131993272258636660495910198279687408838744790958589416683523676927709189737881249362703244245053565298800957054468237572840123525062711517664071839616517850598456540162848959064586370880370738452738053882661974998464273515075910762158971860729617691523522446892308313061168521250418937997523020889734634998095785568411916340770394140580680093923997033651485361286127787271315827130693284063450464677539784838943426362151038488833471174391008619196890304886006390517995160308296058376280148185880029695610000535191829181687366877191501639598560448188930480292772191710362632411390204470649596171465442782425774283569567938178259533637423077788597225187254129773061719805903764477915861310384521742077870069068239684009893232129787518926282610467445175489337476032275392650302904861380375533458604290409404539124141230247659645770988566220304645867168408300276742433533970424622534856602324211033657944847313226728606818521455255861989475680057005001575932589345488506453343401541354463171867384108383460974136265058892941694899093439656548203637972368241349622845038900999084009966890026910064741323202129340360347332837595364981376935877667370779806405411038550486098084669618801687431017169999144592202733148936829525206650560325787898409251659312904414160603781158306993771659363378177785776556499172601249306097586753888429161453887595915263584183764230036665556335317132086641366294158716375318894643742021150503485243974547846774970953652592839074546621538646097305770835021135926597585582652300645472696618515465942044026350660092973596631595127665280602982557194490698291137381211354574026863916753676768106336878641988314244511253911457845770554378032637805851012403928382168757832863957063891551536059236426839424677129744221355803682377975180683175307863751560231991749202675734648221677109620083892274945744688675804712385792004184141820903707093848110433719123490874807097632241932826296160109520908834469028600393907083526448947552984607596198728338556493978951520775260090665467928064776822804375451250034475302661886581074416342055690656498818238268556022209689994931363117733854751102182070284290087600391920553993219907218451938844180419821583061800687933586311817237070461530376516695673051154191152313230699161790560091623466506642305866652940740629016854884042451842249705050235403833040106811152607233793761912129744768938547435431616530412185612965599677349694513095165169188906144515830355879440356484149819762447873632259670929078847708445139902085779107345823366083015157330094559764909161156450314628989417384581932063435001352453513776088942968184000721704703453910423079866884402730237280869313844855477459824579596407012524111098238545913495490501026829325264517153814914957950244942643925983022659894119163804874550342633713304668453325957794397400638526221118883194905625785022714456090163426187964244339245804362725162364103876202004947773668849779420439438910139391348964196462089161538474421477461500812743298628687439751752568965509162826410613591148852739536422136690532376600056716290292886974085016416252818038300702122358140651081584433903405272297429212618873685669975552274291318713140584205941587950315694195966036475075046902286542437563443464198157491497277683247499604104154350179844376943990554742123403303848254394222845243378905940379630257715065716585410895699814379593561213552926636101325568462457118999714680654504884034175086078403194097995395051498277308805326780293903396249469807763323905876078504063881485706412112825938436342985683108709936895931889581591999052270989872953455489668532800183559457189752249102057324545300511413958079632640099603429746860103417358900446607412500465676620611135188090900994389101961310739068465047113996350247366639509406111126783996552744262529958698410409826449538156816071006146420021086245259250892659321626459225864294601632918600695726862691150873766821885735047982406368335448359411255728309699817553925331979679927671251731826346322044265557717485352756916603949608496324938119453690120913398529495469641729224408464941720101389951827144351220481437911584532344273929202095195583035274230689671027128919569878152858851055706763662789802807219007731024622836134328909051436967514751278905376482235852420081893033541706877523735749145944222267345268024780305979600159054930703459720578554282187906158406461193117440797481534959452720515305418513919527213942930293092138278670136656795769867089211277174764078942614949851718782033571240382795060268197779709189797419621925479405849075778259768564841670984893936725667541514350801668479763467602561307586147773676641151291881876877900783516898023488825323652711403817579741973214900281678879370351086785400591231262251076676038778449533270076639438552572327970640767174190935837338769882162916877048874418703340905091982362371200531106198593411885979416970693023548077204459976439809109044375966604086955359001265823429778951369803629126892813460113054223070706098125020695573855996380806852097403281634466408334944933230510291120688566343841843327476470258497207405589549668301935974809236736518567713397961982608441360462318440199071417373083597427788533608523721787108543206582210507721395871205489720278737820500652624307596131650158734493016100227273107225112241500063425689747302476451440242270893703053379180108939219624031121492522091532162852624186554942572956590213469731058220036894422120161158263714907457913432535669584024851321532284739195136100100566422489707175370002037866951691163960009972786665911572551798106013546520001871987781406419182213631254037762170352217946321154293880549559581030272607970204634061209692117195556533716834893232294913435409952803754413289823555078287561892741156347216616783376030738230850584250398383226419788956954428962183674811631630743545199039240503973456099944541110925793859683315329484586542302137564282959908481036355363550759366162996584922297797523577166078451112232984260034298163863080274124943095194072361902543506726611158386056254683594677744483420640958706362623636345284769745027324896084480881986612694658543932886671229156236696143492027639778855089488392964110570439642522507248274548032782406567568485112610846546796904887013411413351862102961447316675111021108881375002075652759665244032750505378969580088999547346628051434150660003048690165138969716007669266399713850850606355445868449328524939853068237412779040332862400935301313959288232478639778914704684043974727905843824744077412191849040078930112932181294651599685790868371654792614869179513221356498746262537748733228580124243641242787867003389288041519770074725216421080405765850565172506141824012125058759645738912218217349344526288828170005478867957225334570746797722786284945036418040133427639824754490619445639765257154270920154654076117720708813425848633678416378053228629793619382262030319484871028094317649702250522769504244767008170625470386096337179678532283315719667463395773051657747876321204259109296947380058534493568056138886616445679264810352238065017188493352187242042563332278633979468200012664225949088315234533324599967529971301636190493512769557622758385798467951005581812888487608051095779198695479009959631747875092631991128376369938795785585271512400245873892192264488722471152919477729005989757995147602802087521759430000299212778021050813663115186510423316761613037604523614536150911616003969061169423090746083257316246743153891349571091823466017405508757473233467429524979395195001327519351115201372940958324563500477241561045973666317652895939576350470639111229899661794042451772835473011476494980711601433381649000156259027441438510616518890272795048363070512590063227099301303842719565822895901328046833423557311413549546601490897692459232934476686804062481652891424040028410819688488512461196612014239373365489952719051622315723521190679930225678727134885760438985108516893511524881249142742357459004514483502695528953391573216199584493866435846692483314117951592696067365942029964177838512064252781262665067471756226786297541570010759987857031991420941317137422808613350858360739347180440484253384050134934834787293226803898496345567423325825907618233100092713275823956751771616475387634619978898296434094065456824196898403660562478770493915444460260585227600548604755212489082416286111842607858066341835095003412336428815328921832956733404605430388558508857550362656622852823287960295813430188252007737739709497732574072705744664284254457337185475324156525401196705384678042009371198301969898613062462583822278197201014528370286176965511848935388960434160517369863314920348237123275921057913212075687991671432151210205843468040426206669411473075765994298229219685461985348869883316581364257225213342894916622382541904176801544357731145562242808731872963229367724124719058117016572692351748096262500553029096345665470431586003010918206405673006240646378014069756277866631316823588026557393692614549382460923405072624705226286055820467500897519911863439909756165188104083867586664058788400048602835631732376952235443828226283872179161571798853464397970111931437259028402484356016331097562026962575146781692765599351152572428799334972602262592911862911810538476357045811277436418030971663157316647612543561503477219408612683972180953642493157043189577447946597479350168198837221450572218255108001272647956681791554101410787463850268698354268962321120101781346925725710524418038329873085235155921933570583123895091282197171282044788815192218551581284435032144555817132266297848349546276857859724279935201247164621218079683973626637893411109228227456819781286835910905604476452912488209641043240981899334007504583418323029569148986572927038852460359239687113499996796359796334997626972938319035160499346530712711832055071235065199709326145095130183576201819707080675142056802918711205537246053663371038828045210339691591228653098644251075358384719846617389779201355025495947720766261474662332282131485744223200680571194677989705169891041723219222806946984325965139594773024726868418910390187477400642851735211275785318964232013095579945387575040587146080247151162545181822905582341762254951745688790132338498330103261985038661243357137765356995754856356504853576747478371889021495309748064423176084249665358213401873990994097328918591480178876248878936366981167283103438382549097965811550606346043668190749696038030543051754903704681900505546581116658737196691412879275398030611739795344286651279542186906959857227091766817565048000916347912545267616280923263618240903308432288717869967524263521464919583579839399720313660211119745967369360404760762440041540992947227774104115529240389125566972723174067891849778126969642330408990026862924198178962521719789656909751430003534561169833107190196354417574766700697476207537660044353167167810396070854090320119221428508221265044171386101043133919188241474186376848029506430422697595138394615674716857165988005064719546685096092494877283413489528888029232170504371059075091432543708464781546398566293926546382393262823000721950520040893705174994873357023870363133754821390124825258677242636061637915868890939069957540618013246962280291593801492338981560778699466099294563213611918739788508929767152023056659277070906576009663812336437262095861938103717365857177478563458151408103376236570512953538842063819182092478182308167151903915352778376560532374592937283185988652856209570778638099765431375257263059057412624825323591703165814871235782978050237623449332980145979675533237234458196558598216330513845794699571082468856826308163660362531135387954046598795665499393266687507573884232143034354265071878083871574144499017868584009616168422312809954972276278095811595587681340669570328326822096794738868490938261182920628921215475062870958925033026630563580303749029599593149640892159757545914412518889410626480588329980599577988913350736055831395209178169779131365016015797235843023447664403216548587130492962715786663296410201986626190184333381756507358941402854003248166096385048939249963857663504958634771907959997910215582207987858845156276129448167156257238068280489663397052715225699383735991893653332523830611058562225399128257859060792215569725167475514169431508343910220971551791864161456898809656811650046516266066161428157658396780827588760542098959135601992676452611706829898737045714774366341466943620574843335039857421611699517068658610712674695151331659535637732991623382238417178665731388749941116979945571372216038148265049373168735800904166558752722096968763231775599643551296962271947038957312590323174766179932820662213950181874560101107427302120128716591909456212328425113801663577132006437773102040114733718547558278846794629783831594799508080118277566036023209811199194838560201894895797738734195339438797158001074486898252917560141726061275826775676140212059310668922690137563322373653905671460324441168839334856622101616224885269694165446180488299905291898298105329864075930874945846856266640250790186910262541680761961832487806835351285331704907188709392106338070664074274470186354515996816582397416408178783870511602070196659702667152005573345428828227877146878458959783963472536188705077019086987801709429354386284131647314820444680212919409516842370514430291981703906088635793515070459285365502408836192973488502068087419840010041492593766939237465684517710216746644549991523676996277804028437349475420500435195297590100909861023312572004442967932921505029315018413862281013361841355350670993415619015880270820515581645026425113185396228539417893151162593036664711019384067106378670033962565913546251529357560414632327238426368313258407118326748663000814856333684091714659846054924547040289671657338280295841775804444326520681782404296515726866595415903538202582815914897018417682178409679887244463809325361263982432542620099752471817816302286311342491105355894471536455142165796725304513438356119760799419546399530183128058672263518339168252127006764343486363481608642563515198366772799809423337327134132677540104487342815448761518919499047118580170779186913652124501979103584505312585400986212966318201636979764039580855254495089363345556099630251492574152512588335382517751095191269990616576468180244198621420326224650567517353769051894079730789872249977586700054858498660693471520800934169110153037279045807331648562872577450149844150018038745688357249544257615978960307916311454091246912962147632362083209905377550774441302597679583955724725621451852509448869364823293165840140736648235915476321798549498196705295695884005051016987237900351420283709325985323682358790984109766443885765893978053686508274519068631701226975210925029668161517531402469923278927252347849230042516581418488111390936748669200982192308743099677559246256325483612674209179716142278372137653468502699652620116338913545452628529525613110929196525962292870943788020245565221918956191491026025370249664268088915021940010932442533350864071266433554010790477092089155060773431427064382049152373192795880228027219530393670497722776889811342434466960909929688367482884206519359395115078638638137886251207355682754803575773899395902026335274882486032186917147515055082207957412367618293483070542007552456268805956352487877977647234626503127876034793317817247968522040045147117224411823074348580721405476038663981851191461149556501807537745115149851856281661916314961145531043108404954900060784725178639099064585731363259044116437369355298244686857936941343093466048957157077236658749776178980224817113837707346009100863781929776802698159870753711862933009592830095206750754425550787675921866130224696128291777143549223859755452195233611380226394065361730581144504940080290074032188436771095475474097979337211046667229071362484758026949206110195813142705754713740354831943667538652245867725551331060447286787357052940741251850346047004816150175271489599038162452943564137954859321551590926823173493493232684510686271015363139309726333502516336420500144373267184572274850155301578483177155435562309763364152498382989462700240001454780999064606927731075243984802385158771736468286303516061271457533614458622521657837952876494394920970200546185368002542813877099155821715148524132704420947573119866832187473327400895938787561883074423794811932426095794319955936942156219931947057513540538626763760849594552819586475031653627257211064300582552886864203695193451224735818195701818047835530729055567896518754209688069009549827885137054228698413861611014535200963414527991453013903047299605396860646116475140989171843647318026663668850019066716338841986644043855371518340596472377295289936916448595853537430982110669400239230431093043535471151117252001637191557063450562823358663027712696266309416479860109245033269510576203196482117356209905454847465302640174330658885263782321100464540356376749922123122710081805623590204021204090028918532132876094264647320863580052167798227237957929676483572902083959706679797349773867867345233544975503411287505799537329297075896723304982712886626606200122771094712665460042838537692675471744863678962947185045242373405530097314787594878790828177114999016800859499559970465888300870995865411897330311993707687193026978572943548628772618754003500159093746720790630002141021729072188001583028242338921073645900304091763842639842552761770800874838794218073297295569936477933398511268088757299913535423431611454976887400393647178789352504631774700354464651463592747673035147631715017528991266398453815685538173582732038528328002223352998462110431600838139630741397003037814423161142044860841589840272835025983606393690199292602152119105175127967455677019724190359260229962522895968526222154124428460068988033689231085169134558578591164045249680292471124910301618379091691015358674478569362553590495211728082477224387541696781362289678656933879011753324302107699803075786756252709459972313674969266118910804530393186452383814927840145213453171365123013082720477572537787661939460893482738936914580048585259279005469659607514131374682387661363548591004022032277999411688462333060513335351149812826570585889351422810649329801227105016342375289878690135216191142387724510841032690146196355619886887845004214748143302455170608104819556445666867321779905201446363998542388697192913548452528165956893530578759806155316609911189755855803278975505300987863589357452825981872633021225971731701577854422916175402034522627989641681518486792615984855569872849015399025750031609109246147830254679269406132692523876198190847237989164773053575683176204623205985624237407200030966183349061824758058907268405223281003813094571250002635842397617394543116001639725197593890384509549879479556072821019095363266599449452517062688522427946812567702026280623997923141420248069920385766487483376990240318044026582114583314452347690633416536666419845239811745081314085823238374822188875140551610721117758676535013333731616971008494099603368828509477286194378198821616992758640330288634249545986901771859433214249056319259287395434983342692498717716473795022945526041367094553402941539764715318146985897533412987138042583695035157318249702777642536217004737968455649193493902652896894026182451817087060643176378508570714662838970682711212657088930581692357758038819840260638811684681298394088810301368965799792383617875626306180093039202886198219049318954143542103595034050359270759255746403418095966979769084732647675909395749169559525198553160134061037002048994194322186009387704966489076340699469399703932294505238550168992182978263391177837301389801977043802838901134549300373998826968471922091447506344253399781793490473718502163347209256777546566971025903369308360143106862669784084510715511328379545182215676823617213329669770033562021306872331270382263440842253842943028965864030411840541097520047345291186950671376170500471161114913536519084055221003202260882268386256534973611655204578806638827862322964528841912150864815651811340904665441800388982985430031104732257149887136645215308305292664816859945648689763596605154315948359253645641503022394517202906610032567796674108846793749416311184271330171317127480553151773132586784607330233711296545941896506786036584352579256229554614799433454885286828415581191531493759692006725356410725449220770600227673395360334384734128230645653960534615657763606348867627664753022489466681276029253487386649287528323488939136654083592085059293633604062667382481049751335565415950954739943941011487493725183017044360216296574516895696807840619082544725829071066926344479177046397452992299700267359336519125070800636602483264292943047682867736725844918902762352853495532342032247062064827714971753156181156273722789741754740252230469815114514464060453506868379987350806715559486465505380248065134126606555377770727350890507206023946010377858197803935913142941597517737509268251506567862768646414299945523549871728718646730002202286277141534341073122492332502816910982751451193922690083950798953246320728606146421591839897249190599938854749903753404771485076353059936780390361373363763631685536960548408753073186937053536430322310560582724634159391035929953589063365142135688430875045965153129629468229250458706934339427748738737036262201714374534766888235857667349202898257450989528708396117530210483290444136822281816322476512704452492768352113290200942959861189870126772376916454648931481292013054540770294182846904519733595421462221323680721480294960777456089352595491443206394882240530267632531950571012471478115758663000821440804821964112851076326470043479617026765493418946683742187086621995561151560189681548404321569323883087137273492030395684400536806090641752409930080500691613536882949128809703526801792505964598581076088859441784421700082534864215992108574797775236632148126818953227893521573686022218992987599055219774794388583911297255945356103191301914380766051300533253268765896567760360415955691073864146493340218343078522437697981458272075918113707583920780282522127129650530920903564086436675980259723437529502755923953026152391608458183418352593089282897702257595710345896805260599644304994009159011126313292078191525818783256386375517910815095836817055603777127738910677795313924594022277871830697382050690904220538101768733931703930673887253840382965190338295870117172928571516891512172621234546393320795332955919094233270341196194979476093828613454719827382790947342418271360646813463882308857152136810688068107137672544498118119956470692406084918608609861515580190395741576620306903807995157145953189362485062696270466608198357448561591186971362961685654601188013201013847245246172380399633027611481479269170602910943822871060774017241605400589866663087897336592035918846200719418874856660744564975557716851254420004232455790385347939554687341019331363760264196766347377338996798932638598998396293027670586484735826894498331358113219241017575089512820092552928173639971382219948779100501582411716936150074965078652704569311675702616774331822645120609434053489116431037462831615555048532749072286774575988211266670611904237768243181607184125207464929818252901935997803309628463880906956782483956635793855599779350974970418874283160196465887316104005473592734680827533912908422103350454263405174632606710899602023227195402208054296505121586818645724860018323940520138369133555573599904992270661923283283540951056177108626540002644707230647737313975143211280171479565532518057124505140199489179866137509127978846055732810178243102501461268097706932071012259842127443553236573738325365695365134214891276253495312836831179395264153809426343377627449091810511751973144149687985738505872647925312192674011751822146189621763555327087604952166993964745381140926898648813548718168967100825713482394490901557623536538231748614489358755938892174038475068100407400748618603169949523804479515014291970385773576903091431286179024734159935026123112415801773827777212952202149376331757492476619661277717905463901085615877838325440583766815899129990383208297276373324028193028754235867673236100211838799023287889548701713564537316603649223249821531419242417229086557669814602270116234135911845926638994245937974104302926155554830481327767235371045862230356364628658253979787611658370472934256456291310631504230245892049201258883370380540923430693051861524117568782842174665509372099032275526685824161464882404735721020575868928868857591016066149181138067223785251660212840411882919323362841008923546168416795762865610972988735940613166797793314862167243228865787945151962469819059882402578663595919203452666680112277209579847796171097668513147690811111842851820007761029771893142122131583223723646534297090725120402194618898522098072254913734656277344073595322159031537802131005191154029307515453658663228986454682176755587551857877388503975129051596140851626529202975487538893047610672193542645038501188425056975059090888812656785536218809071974989455669112568917638787271296799682542851254789384717891403841269844227252826236009860667421103248026658957805939052267362598206546485841076901501506521357287035359315874019580145302054525825908370513209465633617138574554697596700927182976859371095686474001262156323707902024773609903473466407217825062606871116603021141965744467733044444389814331471389204384935105657106596453138615832546340033923583480378479013181601855913608938862306531356337628704402508750067103819637056286781960768623691067368818571032106266812185791729482579748913773092974426435455733050376480303723439512186369358373075832989312203375816811556122344724880877261125217684151881287155526372746258058485174265303915569073367414044676289114772576979629279641980115649672615219629938858384132589714563161381754549373643837474948356494435844423849691705080166810390117538154659897122025748358269271838156591679655599412109437191557419078796846548305630279119084789564040644649332507491456538466060451705230816170246157120491136546792352242960801327478991697746049832972939383865447178930148146448870018161857935554260129228952398635908577368941673055632851803124132167533505442389865542881773480027198232485791677004353212039299739274478541044311848340522203195557570518195804917378407852250213283979566909275928791878354373144829169976185745100009816236670303711800244921531737736798681121969538200852393968489809469897172031310173513579286692469731912251320333246800271668302159549754360381852708659623277673956375279552739535734241340333949416355629434044725480858815001243502180545121867498064200208666318227779550799112636964866883045634465983187595316324952650468223155404825014751873099359667924955416021958868109011212090171961283599279581831382384661624224170324321637079296325783273992448186122106211173696123329888436887319113820034794073410538442882787893675820047216112974842669402623858850071887975687738392443533834593248393348049615840427782588100732585179195376351919554362817217985460683040801781891366594000873549605755792442326478062961092815705573061724404320052971964970669995504566912624144627969234681604057630359929135674218202567849799918822813972141019391928327926362134390827032436803335176389526043618146504062547071142067333680463773859536685008435541412873163670225506210961900603917590498241304926598444067687387341341213869078308555134856422174890155194112235324601260328548172000830129211053610501129485296654075945897877313369816217749491648390762139941334185550627846131915249116108789516822974339657904923170098814056246564963743032301636990751106150586030213412662587847174418304222737683511193188897956367002746091275161286368854812115912997799796214077489991141356596045399511881651842456985363758400269356753773738849001183679079847944569396799376959746679575442157892854009367863976415532403075681233417439043338241825905451210105664247937522955575828914362317476021315719804243540097950647378607090522730887715555701556798745651703195237400880360317127339876122821289750050966046185014791608472566794216852180834170042080689643312493194374818313197462136492779077722275446153005278821216905969252619333709914240305364264560841764951624307352981795347820409185045505648983697658334732564979773280528811777546460986173956944014929552758015956511001792270585277047579390782494098597148216554381138656432199703372885649571469471116260360962388259894484801874345600482234376583401806677703298567942512442063526300932880597837428916960840112787163054262580908647319814811035358765914116395346423935143980580268188468436500571979030037328572415291682829646250454633914730164109878441666669369771444866334844728176142007434298359010779687900557707274353447936027914045620111939564319979816657745355365203310444006644789929763855022700760706480589392584909860447630733962429975231328579822994093695219062611908733712951914314474964779905670665684712977827552727012741783295227978493926400176819945126188577875039903920131210073233222871825730916040409970043690045484787703417373322122827056773356442265479458345104964639816728260446611820557562655226537827820438809633172153219455708087565168138221728959418086580735863315332220089517581520657548955127314420518374500108976163181254842040329798801335913019157751142844737457915584561914858950750557360390321889175604633246203788417705980620529077804764089441871321159744587826743855503617596091738825198860353912760058324272609111920488551528323190738289769398084004846842778855216615617219763064800262421656614640786641556902652926092725594186640826006196849722503677685188153484469689436372173230258861480794128630442279769229267317306919105878491701546472809965022579469549610316189299320645856046977084024637777731240645425906852544362673397019980013236292731469179163311315180105900300756735664990044122378842314672267435034183193822475343470836369271677852712115503841230519872031182686670182178287283016456978800070795994932393495042692645129820366913178006803866373620554894608064351457302326476231886381905036291932409734028138741562234812849622873958760048434980979926514803178722138874395806851590610607065378118076315929900980665579376775791599716581135458692678971235992412213519563726137609582157853406002256094113644129506167493677451721924624956755159356429286634876985733753101562765750165501386458069819632750826248968382180223300134949501255260999278370908243314320875308971776149223077243893717979684218724059385048382418256864912347108289086174439957814117928868404881938066276740781575970739835178015788236847483083449201238074875374223111926522293890134502321516890538578908168812219724153924404306875227948855263487981527024955365302993620463338473116722697008411673487617958607017938537628106948810414826474236532801659986513803145492785706011089203657073085267542572702089379584110916750165170609395104049144051465903262056947363632919178290656542349275510541781361211048718077456758773310679128293317742460883008064231574784764263781894877069981327289042176799789100036163941172910727953228471549988312038214288705948117177980438296704939270926607540003032937496162721861673412336966910043315396348499943388904256619504517741393525565200444727028224396682386307734443802768729659395264236393819672862551439067541635858930994992838116226538818720832421415664412508911547833685671415904929890117639586912117756897290684504092451491887086716009358903205175015889276125684656204756444810687348072758950128862887792190829005254705791828850500171285274454492152746342095957729105623615940869425289045480677134732257500719392543743127758711966419460275581401207865329489877049536220972601912561759298953488463210703659537287917017928954628024285392404086493297525663169923582812559570021050434692141808375590429150818507574212752362541344095065178781093877366415041480727546633492033610380424700381680818494795531428274073021625551884361937217601764866929729412698962757524717628658349341813003591417020309889938236857091565301079096874248552689446334453428182463174971834886987813209127907654282153967141261240883211440154260797559458985784582481214622239543754360969313482086064377572418929855957776485764591302982880722524890617801704828988260223982056347891318917057420223709631314462489738730750831560137408776644899218638026983122779375365769108620980866011732472306619864584338924588211034387548372725556803625819100916866926627560018601352381733595970146877624131467283718360203825557750846353008691844443632888357619965182716106355256847986017352383232357380626502707602564502482955754591006928267728159987559989062700985336836687443356888196844824468549728111156996329971083844628740508283598708018601875616257090610459815382857678203718777001125939161454769753699935225843269758784357109452027009910080191159668445532469605782869430098813416064867660378138480991818678627516251647412477565768679763685019847510621089580545956289675730860427134674046861133717410911787284169801524833936097484145228746786523455305538151197568291876841196917184449032550259627884389215067746379741334053249159538905782030882595391160922226622102988079909338814193685853700567081965182233170932803737262196848835754132898746028851156528447938812750542856514033189671072295815031957119100703064163949506811812833478074229891197920607342790207695025340311981848472037398215783125455584235883411489273146301730229208721224606101636877753366942912977190120132049537521499935587156667681964067454246853046611802746454625689506229861511804323345512630945953822823531565225457407677289148690232587159790270390207702386398903852040976702547553273995115164617390331819945488334089502339231758805757325594850089243440016750291748384193841803061331814942542747448685480337510594125821662129678357193157199013568249209452350370014313179551365713323086104630086300277039188696866611320965825418285622888453682848638390209693811044769480530480349219413135816252096248744931598393390889197528540396035371985925795080964946370260468843965142419085074980366591903779732263624965416502465772884473992524611783902509579710018456806274636312203370461898226201749559580069538590430064861957018623054878264817366381581170465319102772195639106180692941824362109196601071059386850479455249623470311434977138853410259336724173326692111951319881178081805797780555616335873010014967585365267676339768701178612564353158763314622071189839477485397264488403413057570821868334599107816533822335788282841129583165939027613614943782329367875246133261057872712233775729870577250777057935606390688980621584902217775464328929292285203823960353946421353342860885750237503987965229316079508075281212686762501413073868892922004111573722645994515313231646647900052194807014601866132549440039570587878569680999994552992085003260479595138672293713097609921872763257334432659708691929563173272375151315852236063800470360894004262840614456532055779362036791812436110355542362157478794844838653650879190853481498793744675644487199161882860682913217614138947181355556639111574469530260137176791445634794298059580450134566348730768510804338244941826498471166029299586587900344568034752626506770927606877241136459873735823708534019670419710434773054835014740151099494932375791628867538848249074279896257271845578636982103819487793237225447911766204251822854689573260468137477537367464447910197142064270099040554854346769462382385708612567287306728814979681197405739070168649949312635765273852856719841218440016487925040796002546550260014482556848319658901050486671356615736250822759129882817990256339103079343900237602215475954939418920023404610344554126243219778508096885643906595089583735703879788117987915566134028511376612921498110426533262653221017665290739127432497996189545560522152876888007036052680685488184562123575649540014405737606618890525465798709630224686831669213853971921476628862651619906120386358655746086874301134179740961032133438262834851077365112575378044019240915020558453802097523452136892175787654619012481792898079404124654169629141958286211803334308301574796506176008405323172967636674185422054686094281537420364065433996570110379894932670828774054216782950994901959034760622366547257285630038840058262617478659832947514808710080368264954746132891747114678743891687381124161019073217166281291689564282428144431187751981114310248523551990629432641615999686592157985384393299415984515104286244885125137102583828176503196939284832320676056673834316295886581118079893169309073666843928464153981124069564810374954407601504937515553143077051431419218883206576838799264948173453443236112430559944877646260872889941232670161302001082754434799919115356889389830607433795005388010927487246773646916480609851039010465269880903101357252068733229101429719756050860595432594264614212922120859005446710523140504706398918894621301573238049957196035555923145114914231814688600098866895036052315784091153207610566915839372574285347815926155258169600286555454348519949853008921521141209991073868687508926595230161425459832027630930327853287334687321910960907104141480732064263880569248654216041439123960003995798211876971867904360011422588452361333732425432833271226750178037201352864448657389139337090956630538339335997186230747593599367454703561920540973306074257424306105834269194941121672761916084152098677524981907403068564758248219820090435519663592618295875938886894245095965619550354268159644168544721349884087590426208723016562805478745873200459286178247154174179572491743265554181232098631748576734974758054635417211275160301699315526088691275994988609534399224172820038904626850774452747043265848862252075616198722520200058346929791171298179792578759190353136300115463405186710393201889501951222804318387187606185278414662852242262488828880701815766773568070296919256324051789468924179207337861675609145528632640494549153838460614797937773874066586253189094055245219145109327769010792541168740439479870991798246872300492005612463991564598858826492429316368205087768897590303692698328058639766212241215484512396720785094543423922641159105315768731822182377441906619774231314157755026439297294964295327327807261696138278609198638409921367697161791874974168238239701243647032311549400558351683816452793715078939288076718001539568237637758079320766706624916614314907790919671369731007249880143529608644221860033468857860238608972889486316429405322283507232967637180587557761083451283471340549117147053117090123207617727957920094674918918251563406068586508503043694517671416554959074588689908603720054941055855347371413232129815947664521859923156209065699469063744354690987558196176138094302156443685160459504875702238056174442690358782765340053606489329406028964114008815659316421420704261721754696919777046355112254898537793552794725328166325831069439741141824497148072577292653714360632165367623984969082935215747742470561496504260989922543786974412958021999700630737898371475196024650356208441472303144824368873993206337520555594303980399033796832267608858545490808294535606648016491025907735678076556179347313540260113844369279208051016401648439565641534208213502362837912172345339114522575888530053410074928805099859203753942629256156336996309976225858899004170677140663769236059912814877379816418845134365789467837617588198481005725251452556439980404619999496459279532340511962431528739940101024096559740376435338489591518492773342564553892130214319812640661541831815739230653067020830244126918883414756374800669078540901536818287624869944582343941601816427111008729981722503410664817167162671279702225402241140988227354313745056526115648325483302190699232992033548927298370332411669239207411757719256609523616285477556684471618800368683869013440220806832105152081141267744198387352580687232989000172977705083585405024616261455825047971681246248458812150463699280093472017718890318010503909077966691777302800957295878031870103340734047036856720875845590879395765856403514954819203005451345356701506275747262147071282583764174602332174699377843779479436587596987398890996574829330539465468828608476749564703070032168551824993541226745024099214952101843547849358200753349686808684711238314213740741268422620203345663335135821871332204285150600666882057493713405625062226412231151301625658396674766664418466721485584951921706707295464314801769346082825355147043262175481347433913144981588103083312194416054851699771726913075060030280591255539058531594677631893619292371161518098666189585436311894485568396042337762982885141786533346325856098854024108064271898765342282233868821926172180285807864255804242226992651268295915673584027242565840681036570203368567417948491259563520067902291457133966402158656416263042709587903091231677671431192316149270795410978711849275993207636268919562093451711584745308852804923422845899696072137764816792811090141144002465373208201749590525507689599780032176759083109365587717614243008061398263076757618512331090041195499465759526375631836860035309352289396366234191009623188411680887740931883209446458950670070170584715985733294950422554891353844279901145133452762601199365770256867651106567063098299096011379090544708007049062518181229836379436398271567815200575951671995688030401551726285897803140167080044237095509097365710524791830813975097936328194999914429212566832066358576754885776058658866666343574899807868356991034934446232842094724519074899680567922786444182226709645504201458120889523893703644630918944692685665370223137048446611922184733784873880290826201211893615410711688874786556875761551276567770573346951559732688541513111073353296327725897640459001611597913193213663681506093270976991018658516873104809165580086440587361340154068054372745248352545121303229835576939091768720893805439302096637331263267068831331972470390388407184772359005880564887360607109685329315210249907413203500348043199214405790742500764562339140133459418691084159687330202652775136265195519212481666867023116681416917346518129823383006923259403789620294443663073527255759775321070925493983955645347813977551540564282874433162271926243934769351509140198185251497500034691400635844996859447688508362185922939565911569825870438162119734010890410017785312498223786994886676169987317742428452762780020191125833801159903573679725585859491611476586227347089633419225298685089316063017702781379933177302476438219242524561906093873155534410397120032240219977029622420198532341658103609067490596128571042765619070146305786318214154170152970732993231245469091646679820430101391025473464582004103775562396697181807801929594118719837972738802755661341823764206901193996895562256701888158186554914677093441465815184046740544264761277686448458846260440000872659959891732267403936369330746125201218743531024364625809107347630572714335552133260566626965456915006911788640670189897180894408622946066982030905249857128650576360364969673990638004450094580146228443979316408490930183625394203062890611869285885137608897552303167653770551653457685042128103880812285194133602079523258512063785116457936797478322666696843457249587880168071918291345506018845136362787435887831910313591187430895122479510457523855449923356442804011636592825292546444051608181651217203182157385011088421118705483706380716477123922860039210502234418442632006401993356800525151265998510857945771895898841570511527177927304656211225674894313121486827916608139036495400180582789144411668196949484416966098056930739222776340441983923628038716207449939470631477364657904974481913670381565769757335104055884709469175855117957046805607638436503549121667251922728048169839458966266749390202849616427758701320617854335415691601707331660609187960609399089899864844043140318847684784308622530720122492908634855008046882328413916182694933666581974218394590088422140950189184091737177853708254112839029850457203605086718458790043274336839609629772523049159399650985298203079638710386405687751102346199877489577377248270452241400862082921645921832466381691932585748708934666588052772884376802361495311880426295322407159766068821412173732932525096817946408838640578678566378191593010926409682025085608936805193257896012813809844340374392806052547342032145655222124806110403887676093229328716888474417812528591430485815139320634584085141935487926609734954477360979681678213136514865714833254810805956155260503000854245463546291756668543175730740408819195543994315781318291790446092342504682877960309816793271065896224623121920895996240285519507630905411930794536415045265986030578652509598953237409139425474611509434452698874741759055352352328904108658150031529752985196106511795410882486473886954501078998314598823096443624785230424991362929335157485898585056891370416373326657086184375096873689156780626915042488746785238306923183871569466773935056910525054012221940271476390733654616174772328819654215055563702828920600216681076834198844004551846360784575495271315976899676891220102325844268931647775552953965250781634083003038483561234694644516586794730180048150163315574141066500211774125982914807890282177564330324711854931553273222904233226621225125195652803284280847165974425903409651056961023394357832306632251704674940804199631689783552103991321237103862288611825988405662980791638915507049025653397454226275842597056594315317895179040481922279488697179854539144629685270759173711934852777770704089754595504253310124812317595687950296117863581717173635744513015410186271046186098376383579919823815666457711362649420363103384413598415857732924244116702164009856765858393925178138168442462481060256817377727164140367607599143277399929604148923148026066599380355446607218982301551728730085206676192362537127538734335324096650116500314943400558929095333115761184766145028391309448453269023434089059840708878978568009734007295890790252939827693702437912496201622409311926067190208366381269396768243680386509308276304034720756807621044760385437619009829184741203932228847257274904639756809178159165899201175501298486742523791729178436280530106466631001163743672939411127409925940353809334675682210040650591180859719208014196661527095881112893978364611651599464279287758715760992601371614084825199054302320903076400897074997205760031623432351873675387302322922518855420878122142111946306485748719390966006758793298972767623017908359637898010811297607281465578065566638607190604306631659525565124921953126440117673220089850173724646749240569259186033733918260859641552437000325792431460438819581348200430417815800281622523692789175923118853317214260722951548864768806450613351244751884704492651619083089658497726089933856188089418426023784561388364571807590467444980464720032644566357759540405245373862055376159827066548455073158559287966593977800223452782862097583082940491324175230109955892553649011683524590752760135591854551053557078817633683867083840405630754146540421707148572119441038913491771099613870913062511204658145724205446775292834397896314075221867777713694816264818064712920991339330515673107181614003554403671171762298997032606360616779806421550252499465536233170572169265590212131033495799560204119112739588175281855396208065866301694699929852837923012787868456590896753996510954643393947354432625139573120757039321514140867485246816639842794119470104512229801553869947267456397680126276106126972260660020802045248139367587623954503947953260335600466828650201644533507048002398810218021841899796898176365321257537898877806538840959936438299605379783265866828455068353238135757187750298210136660105681721112173957396472702723267399433275014039954031323755021834568309334414339867433365478611450734542584001822607966593304893316575854919880010351556834189662810138874377296430000395371517188360191935471213065739806153766681780223236583280805224077281367062704173450376989893535222962641115761836713691222905798502412528537683925831423700698829654117975744129126751010009413653725806983023717005072050675345401417924350251545826330463282554333033729747493300663790277300008837787098550766635645413430206150278720496010106713402929784742437686745135716819221595376575595925375209867408500866345416712260644980008949503531786421057775107992898500353834785688398048454414497057808402453558783311799219927037687676768148118444280490932591039798262639461940520745842728404189818729837460953688285645831664139392595054453220364962314841566800249367372478975162761408765952254113328202859417907584784702020803084755739442986046054037799612777294899301316742888599948657641282090111363930456092868856286318838859850556844262913323057463935544033612130077504755448198767017338833458243223751393990620488919341170391326216930069310358210425172574643376646479467321334619321616363951447292713207933929267778061057775321955734345680082578881532545949657672141799458913134062582603107640619160897279777103740070598760759171012943976926586322944562333626962264461870483314914439362587646378194405832975593722048254628078962091149332884390751869863121862975222966061020334560740637629497947249084654613893117507589485637517889031478134009215499280701459069344788027427485717439677765421018857753260379384894673143600959332307737281663820088472352616724515665798185194249537019824781445968464852864076818438599920333483918688219055055906711620401594437442621419004893461410092061962488939246350348704690725079964889917366569748712752493780871913267103869617572577710099075676380636126094334028717110768040904439848743604262877381147791133925802630545344810267021607535609478013006390504861259909152688337240657873643263779425926276047679917498121251585951246434506179857387255179209789089651965193251348188983774936267668468435306874697538873035288954908254016840587283849261971910425127336164641326305245633972282533334868250903241816820019066108413441691457490864338210432857477213065536878246229277224891657457202644274160512822366823159754949916819371564219062704566798898595912641462030871116669956858667799662856515473272107922128333850281370362267036000395633720207171260635914913454285327858157689716348172809351604451975736724055760055026156993448511670190571617414873417122635736490773861108806700105104192111957746774946840043702072606289971922806894786419790298757511117080095192602951917331877793947661726609352843832781844742348162504199473097874196220475168497799994819288375254094045853439705792807758086856187261202208248981932272295901259164933163433683045768103650863407093094239783348133221335271989306540087394684128198087958679986233200051712721893176478556360470019836318269049307772168739536339125456071697793458314184504413473775372281036898460844998276884971357280322794972294514163454216016049195280977108467543725187762939773014952752836203223446515839071446638725048387682128948766931277256277171661450707735946079102446393968171825018398809578748391819485188759205043655452890761062643984890170584376553448835089657115269010758765915928858613267320520042706581153009523093519179979063084233799123550656076047902420156683958171358909942935797912750904579271705478549431523545365904314694448848916302873809630816537397217301729449736480578408479400143680100532055694758763157846348044036219650610021304483031803921940151843256242561985708558021915431948698244075021524186755547274708933274644732258377392616262289636180553458028042354263815654628744072585012692306259695874329046327063730954478617238137817866868794970486797233165162050248759704524746308155149424327001073763324553677395730748335105557429258437268177842386824479234401400013880941440637510892870561127471625612672037266008640933712970145473229748857414077287630470131972371076164731127762347269948129523221506001633889319356349798007637180464398917027780017015490313054206832136036321504268793876116496057658210206825964686944080539103506924243751824452639929348250971607099629343611364094195788066816385389061579417924617656307707650967489610192401932374703196470365325093590349307441393331273301080558126322784151124328912308026145278401108736743501169770828061036437493451649367810183228485386917821375348887587441804313481175191672244558902653511420402850552700341178393421704854859291093636389329808128023989609020791316320445769714733413227672279418486474311760069760220123052396094414417684816974218014334789113115823707390297325846234282792548788932317773783209768500518860072893470509827373753653515464189983533418713825754248877636928556919998922571068753925332750967764495762397008624336841790866015021692737516214060762163705563449957197289982001465641476650211540651118441674134990926827509902550950440373741994724432567275261494851754520024226979681075227689851574263790958557205927715096711738117660292142252576421953956555363941660422379927070940468125636831703633329526918220418743930584499877990578189062976853310199287246854420879357698524343316340261947284061241343482712034357600564573013622276503938410802600737813017124753171956629821823202277631602984567779857396245911039698430553444076346708187864064396853870639674032116461566925962864484063278024556532880844634190724724222289678738017091728823650451652956174125742103120813674984483550817352093428320237930747146869637143926330578278937936289416514516444875731869508926586419108933993158522288115297061879527132905021489327340406806566633125744530280779061951283211686794229633057309090248604221179277586842588180454718436280124058513145940616149093072735236109706591995824139072777682133024860905622347320025724091575093296801601233160252292098244831845358727221495595229257318152551711622861123073923033644216038445827117454737913174305362993423461699596690335593611631218559111041079197501344934021881215295507707595663469615419391259387355095366600201398554336524350843474244696579723291083946959119325616970917978868362194608158271172973777851623046024080478733779552402002316498990141439106013231405022662505695402320476905930455826071580941280388848085685312424890226362141439174360480933297173500254746019863758419050940207467932882088284319516992138860778922181597479336153876091171673813034147959321750235671197287558021911964823892172638742424960850632755722246268253840393156820676188683053735399944052935231630024237584699294549802026583302628013732671197818435546404189235634643112244035528900494055909461295157169941001444031991313360033677171211710617160940690933107288363958882650429382994439064242780532301953674456033925853446840475383685180789433646200520531821545603011913628013314171020451864078720149105576979276576463521916041138177729916243588052585425081189329269773235010201347798728982418463289288765349195440783511792901690793746279148356859800019333027179377798078224274209019098885910263483448657400346052972100135998156012736012783078076214816604417631138076568444905539902378152310131069496080071910960322078595557078352042941100482787250315520074451130181586131521537350019385067176157709727864938886812406405865916096335428942381952203499147528090125492744846085037397144070656585663893082337478120652336999129599625864512819350940289524632835907291249672714715676864548199295432622051145307117582232547967116543214699252364850463523109327093553299787096043543423473503805286416868234029907126507349997771109593231291785564453578631856762628087625885264097785239822811588789722308461936809030805295122491886335561445705589583837872968745431907205634565889287332397381173940004959560972073983021636675521434804056369224348573689140709867121176806781518285547326643643675925975297962292811658370075493990939257716118046391865087188190471452166037469520989668820589650621475758184460181584635168191263668973364653213461503776863124644147211929112378537647015712401746482462311837809917604344605577136381081033559361398999197698483567741695036323210620096936250208951951104009797735513123102263122402387470768879752339929749219692909155003449704219486919946441936596360140941029766364439405583610541998334645729671281556413256026058782460884620599499750829608283946101435097354404332979489225395648495896497576747968660542717968541221862816981074818401519925394912876854650905620197215502436921345255308431083754240676584889255525053543039578782365425695194280470269361155313204820870676073409993140300069146775160198413886748929666373837626876108965075091821772550475140461128756134699533880233855893720728206462840497794943881100594302057420279987243889527581625226771741222260562378820204079787239188963428420840181280801706260822098837982759541159935370434625966287605370689467153267046471575333714437917458357493002835367390552384119503577075829244011528515831948940829268194103578307503290500374080445848899700815619542885125237260471619176030967769156193898284209156529267419819632644346538569902719447538850411021271691318972175728572895154132765801802894974913138236276044817931756029951486438962615953506627070484758833278760473669000388092532402794367067982696155332167632867593447621595663816709930847414889207538123574267093036045536373185636890802899210931372045150989521119597822310010919205145336932550447856469324891138329016809849044420614538465743407705482261864166274582011698441477739747596940315672319066891804288654165000330902283269209137590038555934553401579091520195782569420750827654904000145114741980465574769565794969661214118016695066057727732332799794764518784026369680762693356972170194914818526266695488814230022215730878493092017132241291395807488919594279404222828743407624381328032893639548466854576194185910605110450076267379981060450719943518422570916561984497794146632628355953512771665690743815041275501831876854796538308322597241870073754817717347919788996359140469344988288258222993359414688708369983658984442087820868941429073296705217030141279062117380260678385836333926322041858973520700685978048251277471952913707823735554383898074666778616590005036226871433511291356601796634503685462624315385935235071287934524360013035847935176519319265202698614866481664420785718180188925539737257208411711955077880010891033010411154373900615457888335446929045501513312911086185399121998931045439137059805107805788628269471731360580885412493015257332657837544948586283589576690435619115231543034134751068917721943995814404143345714309732892604281301561925376168731136564682058810523812411957414965751452258369261847870756400052689069829471057880090978382708052713927883540081544366503315344983775569422481725839037503854870070660749139460807612337367326520098871358084502195125594762388308099673952389000503848915005034404277133244863338755332880301760736337560789885867526044645432431827921205241799619428525485862245424746714504733599300312409647537315784243826083620476396557284753972762399152380746686278883209371947640098033287769814500926037906005734083808718270397064091272018091841682736996536190427310614159803397472921672716116973631473244526314863037705584503295732973453413221969915458426491703601159610033716104894385093384883672184374591110272886125470909092839898456738218289016450961560224443629067949678888865502760420159364887269104525944457704426418047102347677070404212875011162366495431053912309283190393125191796445082123973071718982387454773543760682042792014163633299597667652172371112947492666394533317254278650561880310927077335882566793543441957299724161444686753753338325859311164670740239129082817266624387734743523093344858027427180779753901146511137088646703732397220549862486566899636571271564853826715972105048752312627916947729040837627311715782348290643601523944213831403381673056684483373076302604739652348942110380157829629915920531794480176179740954670401454554136250840999041341431714510817379036149986429595471364725947788356055729272290465860863587421726054165765862439670191446355705532111875988233324277695751432662099500772624826148589425490235070000312844623446283769803130410078430000289053023856726508616842045349743785564679235602362395347978362875863685603314564669583612627583623172177589478750650382471436507218898806053173957234998867716186101520349505701588813612050880333776959450893796285314969638751688334017899986479370102059735684406025195177197537528505615012861964850791910946168282972947214682827596597856018708574077254958339927445366143128640116764456587297898523708390233711916950445731395703957765171277518399333029039807668338705159980241253289197462495676627013771873249131543692723967820142499157360717177102695808010587339486760769717013445567455724952956905312630340920709141356549413041140692118423235212406441469900167704637381984711026912587399456970752308406096259141699424454834403403761968864504121424586573310959407937112433754484468732276120725273186401206671996873164495255454895348280824038783764417407080554748360480608559335116415194214085891213217259762068200502963021647933583899220321561894975228489450350670517642018616021651091175012046548045819986257413755597076932931408772220606426551744557433298237026935526257036874403303742760377170295807461261529666586925128732961557922946671634524335743467675511580836541002172843926998737453464978158216764657633190075205169881095798970284808883117142660561042082080206861616788495466202442746645133072758103242254326468284051398561173774332785165007074804018127845402080051864850459670549619147696992853961841854627955596842673164755240451979637460062855700470111779843544244523719389966437788449141279983844135907867736575379726597552730393597083896961249308897018079243119587437120299862789621071494985709747957694965244143661603751001261778797122957441131141886707175249769874058514603906420079122947387835634165021430298964213404300795619260316289344141012028907705263614252354783483686991731109159940765419470300386770894812817084344430039162287701853403344178446816648908341544053350008695525333319638483249135578275245977813895948704697754558353697939569572143372742210912150729430298450811038871988791363395770694217275741390647908676717555577319255847556254399103837023791180870348681792936162539982479625492727861905900605078923496661767509131229905741688124042491491199651981675548987414968393644206682524303339099637311246042362885200769660962815843290465105143096193922000805346249713100973023218085762533496499486280384301301301313298654970818684669106388946822678023674448110823586076005616354665013375834046766382513007628994384368471167098685445916523128424256468387556810916223912993033523957602411933727425579173571811265983580062377653306841100412806064380480462005506645279145348344633250118639387749110042893177468006571115073807103213094235294822142049026220909960307238308303935294900305224244136331842070487236675821065044683991507639218267646547729229537770354408692384790250850040721099052908485756042040487637754797750176281033566294588229547052163234719730066562120388682343509408990211806743747972011314890576938416722435145522564261419759875772857914443727514080754428029636134047687658440379015682355187206752350348912969440253254932155287472175940780190214750986387442204990311021361595443386516801320340648729787733783263456166737497105730744903437578179542725771088634260004642738651731161909988162564115864925564101182455559157191880577165481172231048350601596094899525937239577121498111779189980795901737401542378545779514170359587866722790084779530990106024197511141551122664196504904732635583890684461400112828412260820791875396653839336185392744945879432734609436827655309911661477811884100036795145747935591461205158719105182456002597430083277133182910619978787002849771932636290347944578112544225361467355490734319211528738105975325319911324958166397313063795218909829816301550800490342640016101245661150739232773686659530360055696058098655960145230112585642477445459515869722755778748891080998910975582644866733618289228988735129358271807173102489257221579336410154498448811505447675902917955047246351307880547733139841466324052980067644086700803356397863441200543207157463231977635660189404198248962506629148392948617760016672786033676658121713599163709415237480599137613679732950374654775009471049972293637089216230110186461517381114836012824601916816380418122162071945523646449476001737820653588894411171762190910905149177354832962746296326840530787998062142399471310503685626579193374469850346515694642310779214148060665064721373465444525029500118638079096333190717655910480830686337629951436598834458293502373915098827115132360344073374555329771944723164350982011072880383325337846325076355611241979499669497876079748482518582340706734192202943753122649910885953752488842091050882009659003386751452573195638738497906333046438304200206380168449577038921940243842679283706631561198475659224866203176323512910815495956006091943481544453168896137538112935784129420679177936115784656125882643749781813108465703168069161751938508308199325904139447570692566040036431212148188835429126547406002983899147215846198054538718107337927315986218666767845106550123157659288665393540808232416060681225629322632042734771610090064385392699714720241365928618862231557326322000378870182551675328207732597667682928861743525176597233592692379785701721755969621039034215869495383342575990885657985775327491534711503032559567224958668076387736652766641915882903998822569388323452917644418470282568492707142851125957325952281130293588410180246860660236464765969635266687953819612246034225171684942060676917823688747692295185999022649322312293111621177135532586349109821863590269776078960900818772298736431595594002917666233609931617835432797679328134040680342483730854939478778791878735122194973340034855210008946893748360709431231386952419714131208589453255367002175024806503848804700482290665557209482930240085014732443559192566443058103013385925528936024489525421978075478981133905982783215447809450359017526912651996759411274317316658606270419536102324517556175910416668856432897504908603300285004687438816172347354363312353689469858335950258186516656732149568161437418799701705808386188774342216455745136847757394128956394109723641447065916782477274731589640234251657124890974053980146224537483974065609092426072500649620366958557769943663026989864150779476095056472188396765670073464003719716322677003763810564335230387623345465580767156787458786579561593714798082891477330366333744240449982670318885230013217147185398742186201341061248380188093518326432045873672298381870414591857532177294000765873910765550051217619264842035413701807954444225089389043907304871390650073428883480759968372091347107417705055122567973660692195436467761570346458655292252685565030023562372735520817087948970505737769214622906930433290829218670906579999485375908231771398845952155436338619122231265765789868212991703149804459704518039572119220573736729362456695919662309941707617460648160988454408294306382576980998650912494900709816869071045555950192417531080929235712531433918155012001850972842400070836884569003808724472125590609653742801916531949596679332187282507895009973097500312397712990765835915845679882554599932035460774269176190192603704588226263639780454284296795524361581243060145990135729374391737541210455018067228760048777781216190921284599293256290799242374364303924876884869193714979148094793001723465663520300691481008538785733379531527874010335697827305327756284252856842912631190271705985603773357696968307362470270479401082858964073795156271271415355240859046453331743393810385818610206322530253993113747101617911188247205179419176896917428584404104492857445351044608917569025337159017827461009770355811567611906023728713391528194243130261779039061684456102745714386963747971880574263011556517660431894716867862669589875751802638438134312770573930942451593022884468215156156549775892223394836344004337551750047208427580222779578168756109529011374783299374620407985048717551409694294241813881270952770956573495280819467054582763443452838010625534478543507366500886899588146443756603552088849328565910185148808838541884440722541071049565512122933085014446898642998394043271832827527001651868922078710385749592401592451848193684640556795148213722443889202711774900504887420099711710529807924781974978358051211102629369274508272592286190429027438563106712516119540719178279521317903561907572633516914173109909911831755151866029134058328875896505148777848979458138488284577534491008827527719599259981568696848672549683326124537532601280934584477185480410498120453656513663725994224309569856835835110688307671618804207574925838668617252325938849014578890079080897832465679842430322443667267699712032223038408892173413179003417771719042116289657865905996243366827472340310931685578543098438168468452258026451504559108753239769288333916441404148867279465392588986501946708863510771393842334276147058627567254568095203326348132474753627503826614459526569896450178293395574992888475242721303282957588569105404815424118627479510810377963964069827904636214194885156393871778732170990565682160080839504013901017300568926234268604683607487473454964780620011003096277927837419183001559710592588612058680920455649192612656829477451453215111850514755358873587990099369256594302301481119923741241235685479443968843372946855110563461401805386858671259587137541338276232076302090167905895535235016533993199947877026851884298155752784639587598049845679981869110159780448161348758065852391470498006295917079993855681696096423245978157986798017697515671758960123102539243990441285888821453263342601015302659501980236378668210794290715119804441574124669036852982566229249810432354772331792952823258070262781880003544263934450475495631908609177237987553292759140689613574658120438790690505921293193038914086212501119275775371143430352315709731393870173477689335128145482202606890614753815607869144268636938378823419522114393633634754837441270829012661736011170333135821696471266946923733185415168547817378326365115655721361322005229021737569040308854891733409877697823802079405872085688052631666335611967406625609879087827127115574586860107011426751038147451912734177384785419283150505360894031199911419158252024793111963812028739064898985814678726484420349682109578837258370544160787836656980886312697745768769578159395850564106758182636255649422426803536761244935350923332740420425352071386405490289314469523124383947752340796966597514012546081177908218492489646608632990460773723993764641207226039350112819663386790494705884956713643155460845832116795540172994900734366510799734848618488447626942132053364927665635497712574758908709251222155211817114193187708931552474360015037754786407800280778427341869437876714825381963767936682542517112887855300738420040505921944614070785475555680069548656755344504618681616045518512390088516236267611709954465698880043378922453306516528973555185086842633356965388496417948553087974451003334459852936416768590709308399025733645408775562497926830789678096574898082433995320345694962073860742269828943319354674132157095856669242138437969678946807410932611578566509359528193381538098779164385461015804545508223564261157619899804392055932719963728928709490359057564638423134301746376181325022917118189616261092524428347325262759396829834221908883480617771402256298925058715013537540915161799781741236806925931083664150803941381987218001967875550864695634278518867109686632603825070849994840038139605124558026394934002590907439732157415923078965385078201134209815463562415588407084450167957434588506735866066428223539203973467442236344374315712446422161134897294313591812849673177687504404213346756269080723930868789886712840154115279564562055571368836792620726224544612726200135136807376705758320455242054745277120360996273586563396602932583578260328738257127832328990059500524654744596940435460882690992463495261884361779082365597453616104389809234845407908724829373250314054316475695040570258090743977486029752484507530738914881662297877638464836290285514501352880579083990093636307052753779401731265624079109883562944492090290664919148122348390123300937699996637721979608759172632451900679396387217262588539666100270337996524678661377316207315739762568718884314327576213676441784570686847657259292188921556000173543417763580619091476067177493954304831638289818967054223337077801632092673972721901444409537304268290903202523049873456369323715418437322876332804629331624089488363936792099821116267979667329322885509360438843667786012381469533577313947552482871314447682277718952218468761988282667665841106967091038810448051408657737548929276959901839142019656569722619522770943255842014755207477433096399982192955965198937937407986292334448891288398774949753986199597739793906078626454642505463319008653765469114784965538126490638710137402670205331608988816961015754831610457593210570536776967414548335898961751157654749920724068327732055270409476979606433078857506291941107082222769706547031019136731815135736944038952780945645408533118627227402356871635384344502301439894219753457572987160221340743876145515627925958922386159040576382369583814011378192275525066681727050098201972123349200620051412058289474710651291007247210049259148351970448909516678256815289920117169164045717869845519128239552108704955076556860794534631749736593273397749715721493869121760863212382752101803501979607451010557504403188153945710629194471678810670887497690386566195337213393074414100622652736519945668074214744143295897058922147332565439358449917541150642275752395691913741365180378935118595207140926957258461298282304606404626292186962602535054349083683465394335578725243028912820929772601635351925216041154402108342956677983866207499963488696475642485316124539861859888200497413539182808625075948632013514721257337364362201028949895496041283141902956635659837960498931389952928979151744451434749293616370678463503944592576230364545857399771935974378994976149162667825083813393042578037411862651984841793191563194701890020382375911141231416237218992850310048246559467842355871868600983491361794575248682335524154960700546157737887548794254704505741417128875371999511783358332903833863139695451134097230289689329829683602157359529656223420810230312752557171975853512172626510147137239965874233039385070081848578536525088274073390243490135945650627223943492229921483845237953212390016716765790883433479046997531102734218637550618550013106565012216250416131537463724496777736039158391024166170636997624214867311139493149292297419124718024090418333382053965089680911348060106111728733946980271093147389155920768791781090432643143252880544381194746337755251227951919310724421321444812729634786345610361436444587830365359927576822727266176549672162165405087756428542438182420587897469504700765499761131224379839742513286560448140174009292997845451497539008076412160082603707973337895580306748075411088817302770681453664996026438696134645815579810547575199205485076373748535972247537143741992563796410214065573277837961202441205699887179903429664469533095605329261671525701969631310126838098590820489263932723759884065633203373914953241358632564429538255027323745915624218087333841240534071537997969727483321356374028455885550022250334602758520697496245750100037467938087642389037219045625101623891271975758225458802186701256499931689617398165820275857904978041058959153053899703498271532346896319793986348629537524351671228227984394112552207305350110969601448960371930420850839470556675850700408460960107498883603143687055960695306714394151424134518173464001330634060516011170387211326812927305076841789514727831071747775854636396092996161436144306668424452151462947691105607638192413093415257403413995377571842457942823646950792226005877656664157642832913981828106225526625278048691425423864407786512949692651303911540613209211896551274024150033969146953664577783230133018229298113337673521309124434061836790777167917700897909477223119595734892420250586615897748200800592017090187036301988241250166406764111112896985258962635080685138066295086776684350171168164233099448856530308443302053560631443780139756662590578065390270507676098731996244454298764984372963252258826560949237973747437799773459261549156722284418104575274225029662190890232129440920134701305676214247770819366398207782464927239033394544590952034503790572363631248207293963830681710367850433172323227215041156886677306206258754958038693282114974811275654559243058289348533889384206505339467180328052814947421721718374193011448652653774949441401430124358529509127454079663168074017520832275979636349954833660297693240380106471452682457245111502696191855566604789211481267151677189467369860540434927601318089884773208458949482856491153616332229719694147588019544024297070218247242875852372785000892688149900096134743400647585582468027453477096587950872806962609396894121348155394621062926374197495682891376148901537829717629838033800330820842175722614888158225976209771163256263133849155520983641445459860976432098641753721082818051989397057176247940738557778861830275137005626875551512375834587094360403245106069767002455782476797390377344632315146826640498404665010527896474178456808051313782770336859677189777916116916554626871998028623696399685208756427466591727341772223926470147717235187618110460734710444999637744516616001037980917072405758567776566688353874640118896747120189907316550292441241728961290349376623640577952095260771708535009150555798312533531953595717471597999978437075045678477036816972275875451287004514085618105128899494326535030964746430783895738485074422151121577998631377683863458946944373918292385299541287967050650226732494540905310983941248138083187830311558547537594444209012094908275524387457677464447302164004982238530365546526079336527616854115703795687850273075795455447808990238969413446536111361493871511553210040303197756673464475688252317982641134507566150448138518722511632787636583322440854213466360911676467700632185709811296821535539737974791326299789605271736530889155167693706007808327641646722991059547269751861372954807708880656816963438317943227038298681876975711366122540226944978046986970031290773443909642074438533814186210242302138419936275062825314652704248549163358424470750699658106557163692484062341168766354470202985503228280789561595836490156290358993046850789406467891522360367069955895049968035946104746120355880897408754376889941172693125082983090628991759159021115291960969181110301309490563450365118857462404927732419217320128027865255822891394415578208885437476318775432797562320411243330871422702491247054712666084335717821178649935385531528289088104312019026918945853385871898906458506390389898848107961136827091249041398970867014988395089455395999539000921258945630462034805488854368885360659988334340629627605517505898414386591878468042681764941131851566758096751466163532411264537723992354632650113453903802149039681904988717286104895965236178896248246285038618984987701039426092890572334863793809275851836913330393369139553122281729617538728638784670038704650269831653348672385792065886781106974153465108038991618662958903454445683631999673043305867147869062019817200075494535800215476740935481189895576303892934155926540320707001501135496376468216501340086323278824110013290615772201425405311139066368440732935964799901099059596787477443402233184482501714507462369082041497429916966109226566245663146256835924529834104330385142239435420778397603405985829987306919689741227877488747826818461270716274152646983782689285350751819576131760268797659399412754495539810141133293508971243502357223387425069339124893984475876462739865964520979304699355931716697759055551974775148597603809136071537273227126131524189204828788930900957657880013548165734551888243942303732502059930402245099979252691507419443166599241181921181120717405746315289124691123438915739187897353630601516230130741039621377546447708941715165924390430457388513154998983552136469412049356288150822087651318072892152826980637970661813963993514399595987597204105888714883575437705859996190890214840548360305676653774335756770249686095833356691463761240213875150357635871573730874611472188554690988802439318860491664572101974099990068340654234311109032247134827013415910507203242865287120439540037111292534373437515197333402097674829045881604559309342898218858523722703654158478236091574661366273763480922271972280929884468963953288191756689798070674247185728707756355826761983435422012612055828361947959541162122307835869084835694031421596888740191177887973644096923597295053783264266733650335744196795854804514471458101788005658060798215031440099067892695367607747970464183233569145255087107849926097974688275530008344256615869058811460924682429590928470922985588454565094551682993166643440777295145774186495737999620503875537545213133156606655428254519018676131520343399795477534006419276432502430823430473130995296103900742592312430002888901941907631607431742049617099950693586509894144589723708122162047597375316481561855341157654900995588839769247387821449659551719209149285517293566059380262562427643707870083462573088486101070314857518571534668026159974860928445783692610883618587811455304359239533275998849963735586160454440782158506955855069539942004496826562034548807846530708805135569207018535981890365903332709344745122200451665814518161601222264501871784224427024763022625166326551540285789923766937750292342106319954163129265911739750958950687545589103786228585886219599320856313204042592249039682881689229744853436499745580362909393309206591790317493989602629435719902615510825573132768800912047232326140826101311329747799460338858568171747751221198583250875721013279255799868388756554148554734681624104399848517824808723383689911252441022081121886070020406886356641133330759224440097054188627793232039411035073292739874699058281769075424225668393097728677544826193627281913365836739862139130213788308319601052699702008303747877307515234736610252559173135400294158982821190419646191582474144240673236597174546465199216904549082328810772950475522490448269183275668248104535230729684175132810825802317058519149501369774335157058096467812997841780083893645949400956535117008040194386909598640583901590328122785812025565442192492758814363180321941968594428185599120863922997745946079356550135716665820855154040639134491966239100024597783427018338642156784661445537866408840439272404002711788694119636140823334800330709082695294729851617294854775914970064020319521394424623695747478186230727878821780914431787789874972891542840168423235913676405927006808332994145348280696439590581894325218856156487581627690016568796982423549251165666416743749481475513433318993062346517681881882285770757148389286044459221050753869808896396015227403554652209638927498330513353404137332056285033848471692775922908221974518223151384401992369884725476611258965986845604930855434889047666579783531071144100560178199760202461143683424928286081818935484677377703958463539919752262167663132198654867441701737837368435109581070756383217556031914449664603329797000608312820237810471753159378610970842453658620521070392795875542870724119821875534090182205359378483861463681155359578140286209614486020011536318826796434287512840126256785884957436489134061596169397311237334378997104063600722548104068152910960655179420243160872404405842910634870188750489689523944276180878162146007044449030511101115794783114593088106625325096958032643005254255813873806733198093442524943398750011719319661186663648361906343482012043143933566357956632242603216469287352578144596280847907691650714969104233488767438978950888225969999375583627883958635155096929267303210847946339098824744206714943895808188959919880317061522274965721164208633433560372492603799126855234868478485251913555839343804691524688856423233752986766138562284320936806524029126352977761115109379657106054756896518297994782754851538424262731104049714599544571245249686271438264887062523316951344812092393568478793724058269037596580879571736165129173399118934611393659593768966877565935710427397040134392400625402387992085004586566509770491439462769732473036270427558184113289886900406308704389111983643774693353774359548355419503883363197971087343415510042264064066328106132148000150533395696786027165591958218036025047484840655190071540648684270961779183658098072552191930880436045165789087563448668079528756590510866548334013201479979693994411956009017595522194550256949583539835728547424838930666119829051657533415821023059818360670811745132841966893933935178624499155335690884612363049262670265529458568745100956660781767683629828685990055890618160266072666793130909335964934786506287667478126039904947608725010025240568134438166722775119162061318640633048738707596348214604007666820396734091636680626104049618154222561280404281691594983472974829532857741742051020250922918496282651291259283520832565973372124107264484259872279604996746606632827874535595785674712097822043964985295712000696095716644677846176315653197716677751772689789689750108039097269838432580769532982297011804649996652555713963221534913264097662280474994438063975087760609991503219127935515818538665046058138784446858433912622634395415569103029032397145584667368783163429312054821845814050836360455235745324050024118374394028585091985786747794706565935746199828543031872766130746291936596995778137922127991885585764013553237929241455174840455282794767819961243332017466284555361082372629310102714432664770149497038777344946814028206154425562105983823304672365852425147781898400271817498880494194692047176474280257597793281962965582930995786390784491629055039811521653501279930505013158775524133692849525970275042950969517150686535107295853192880685465490748868820091627586862739176787248589066450492803263099404528744507294077407488018699952004962221071992344919580266736682941410809874623817408579691105414119824062868986118934799452655314330875535911846128766051964077642729405082843611837651726028049826593727931695199837763992217034540157750725540657808347234054195302540179062852953955700806144707831100341730085581140477339742046176058050180000307238830429989838918808939075401793970578028092336800340478746168695980668804293007197142093659755249458894649644785611457814791076449916890350150755989276947823608386308304324485760381292361494603583237689434587983085122332623469907617426742268689260516634265424859172775361357262062667958968100347439299192151010596770800142393701017050123932735446953987721625199923782302256787850457234361877376273024005501139723333734281057290116815221275186926642873367226738389774567146068813042822650794210423969899414516559703970308710382135035132925399272027082010394198450249226423955586684008973874272508012506504613321266662883716453273227240643695968405568033006923961432160827857204516584360020013618662611767019536724456258952129085793073981269479535074572435895320130606970174451549099534027711856537090633228535320598400307646625046786297433482323584321089673190358922635333786906056339462254859785449595116576058107960990384178463293844825631524907397245261153722943548084413961330076360673145826456717690166824987341746716312440707500352020914295566861388528236509742271905521010327172429503985949649502027176761031998751581582350363682917285350831375536643294332115124029055292204104550911671645123662243847147077762045345567663452238214777233488891288818186108907529029191072820433471803560307951617520140955937091080940950020680380759875528189705187980467221176129401554057337313491112626280077863640453027190354368236972210210876667382667330535431973878932679836720094652844600440730434920033625054410664468663750612755854399860505023361073806437918577573026816439303589773044520951810729794890178476887187661673047885298349550241316959214400827819659948850356865196782248135235337579196846850557714044247672201893399588541383023348447873190566285096789167534304411509217305496645148308796811550540840366038019526364442508202132871179701670816390355537770715409646691637765170505788939077734229216266450091154099994044076726424523860339463115863215111017052947264084588213009944285664498500348120918749811637148184893352229725717992522866345061402257900271301827292947080797794108245236297014327820698947945908137317186245855998311735525303497114917533976947565825285962871550669422743451863760993064063093683261369091515351149543145397377845096666641612632962643476184868393392229774224509333570419171489665808240655006543459442164424703606806628435954347124828177778181293012217896007620151834824834168130412672331075890507982114446939767611885041473266954331259219662013052071194087612515989260072826389585265479177181742552274322106879570596180791436781963445906344928987868794348929477496543699029634751383856368279491820540478936728581626465178866482047637148314754373398888445838063535658359115533996363237330018890279009726227507101083835815114200266216028397869444736137123800807798319253110362122933406769643556765990221220643547639859959368954805046028946227480788496095604604147321517638921510629888131533454425450247887518956147697449080619062776679990569803566345743099399700221746099393048869726884535445435886991365625114612861355363481277006016871160763088640717079639164929405245398627930611272648350072723862218480128725019288082819765839872778315427178135332826967236643122420171827975891549567278949161566046877873290404714585153251282789929616603780717328201766423439551730679072967845613089920347706836038669528609865175447670506880195542812106557255855677672752170868765860685189811272633134803370746101107572081786966129092438743187411922674082979299668512069537843409790181665734747625274356718191036941475903277205511321228000847831478594289994859922769136966211917864272354962771276071677760398710961970621467055246272482309807592078968844065772397687558507723630323354588582670136884787049687318544628757669710994774759962171359079945460120683081050013857769866104333796905710066895545154366863418539507528458501185269139428844110038465106232421091670456170902941218892050740630183699506181383814521307136269134320978311434981079162190932273654442014228433020756582285323793402061574754798240593072709713160861018392888520781616700754923007854424656484716546071248411042244078434274101369861535069154324472876505527528117636815823273527413374493231125024997766102396334943465846931132239622366319552601983195396955828588141895155994335300497800788934651468018802393495193426859744755261644646971529998669085279367263653159880568596118484709207093320377688618428102593216604411954872359826757080591897871123645880708654862076744958454987515467763632028421650831847150332136055391563963672137253251642999220371981752160759164882125612219536991099924772889144440868418681206974317230769342864324816359204579734071135068284890434594436031393478838066770353135678428170512476497942757493435171415281587292703860173225425863988273430075567443747561119185460067901946409372855940303478130662516151685149067276769225076059822903924086155069736598340519434932409751360359640171834624554651167837467805397402373495843890791141241778373697455240802644892795059970768019167750492483304489861936796849750685914901366753252042764465203749922951245590691295820947821497444679410038650068925172035920113012464778672246663663994150164648037619004869556477473668232156476489582753633718657741318225651246375402006131392187653508826636361415353400449977218167714219648230383153948275219847148716557119500754813132391811625707962196341107563250928820951722099842155528481382781295257653456405666719870524804019908519484606417963091559101456888741558989752597947737757310674474665835283403797054245922119352204815989163070184114949458288643831468968339625316047682162988441309055003755074173752319475197301024379608834861012816468667953499318622335613074062877331009951115259015474499433032960862315585320834968587191278298924879355432234673443461197258140050255102753445988886161219234617242312825923064500221761475124097475743776668345539855958346571782245309870054750193438272796453480647448200428329225111696085010046532104041114997629884080839314966277585137695219698065468659599872203569450143196735435451474074051991554574191669618412563212203892468007863145191171387765736599249956643931244408802709692069979699028632190619815539382572296128775486176801407777217363525465441630550366278252479858527983930566524174002134184312195821048392046934309523109444599714231017594800279906645998764533277915254589338499263064136085795670101720175701583979965324661035428393941420129324955723367030691437001858934256722257211158041377815088185423824461391789498896926207904380080948306996511156817006090154162012172565524404098292070707971985528363940576558573078800983408786248350122251055210340531632081556514892157690668335518490688510505504954610137585782758533587829645450548276922264558175926410976857743690639040706941123085616736035758572923401659548897639460243527655178886392845120653886910884224625212618360731405793826814917672437172721670389335428956131407674095105124471487118265969652596199836759905658282928602094035653975128988407587324647055164323747906338919872945908711331617716511208002476001630846874813624187381305438892307614728794035225844519032622977255969164209530930578854735661908312992878020005865093394824449924831731696195125129922619240857437016766971771153576245980022814614241212907687085455853058587415322664694593846421761386553513066104432997016440450518704181726662151381912009855510824424459759709312341483066882084708359453761893869113875466345867212451024476889955809765959134062230647270904102227355479350775792953730599038304714214698693760185084601737714756865902797102945377873538685192816159932394353828891675847633412239407333400077826795680677023088848144234782644223033873143065158047953398265112515251510653669922926067537070567421041502556329825580390542218156916844340917485595765597221252461560872933381151633956611128663962133477276091128936545492967885540447852700716753789263464691234415772493333212716507402534205774701521255740593846863732254253647383668339057211231989749007449324281869963257878379514839612303245134816161753728869856638037508125637198363472154949681519327680171677864671653323134012907163358128563577681611975318345038707386135571539644796607076365421634801612168166808624001536404918710356120795199298124399765535673877513729591041622039907580598608793365306585639734499963423690466748024283056707865444331116898897083854709731381823622265372915252611082176824428374124371479835667631264551541161640380850664646310497375535990109934674666839369214977827265496316988132323630465283309411532454689121639070594448502171717380486868374155175429253811943028430000298440191714235720946877428000542205652608778279770049899295457320832382041236794997121706288825298778222320636275668520239449813689833250541739458834662695457718890148283383739228742717596519479667491708512425779902158657638351860922155473912072019542484756406572584032016343834894883675936834727524532279122523152307284889311314573610682898455650746942901559047205099807074233739557861000933735450305186326403991694275026029652989487277096548430112824221049716972125035464016972132214598603399768600696815214771970532916921590049530540802885870789066600316258735692035226735671452240539288325600384522695153763142043816783149827057302308821202262821112015848109842593116557417038283774081468784626172370311770930979488274028374821891936844216400496457462700989891596736165857511801587084337004203279820012044120294386874532976641458473971119479005131652083356938754849935978289589533428943711671715107697385450710054571244526624788300485176646522341139856958835085898776247928544049596778987602883965440348100911513893240818181154470086142547152125337352856968794610381755411981690107077591303109639541199906583076789054146095997373413093151158854259283623023509119947580384817866607802090055423211562903211376284399344470474695259912854169256144568241627181327950449124969528198048982630233075644164424759695014104648418400977070977074793563235195214974392605289445047588258012774902578351444359563490407202808704942754967327620461977733990527835085429376125549593585806909927650009727830204963046942942227847649772775665502603877027868556200432527760220523565075248216291299939610789833919632127270757366179091141559706473732423174667471065433787521644802272320098000289621089377375395885656631843891616856572701754332070329430811488321165681813181230094805794306876450074095371920500390508623405630960119738735254282294886879694042971288731779773974067274615588399524604183912607028178334551716887932282948405224013694363743709670902471225886812412136276932299068052968768194369467724644421057779938731375356720113273611797692393620325024170517587709750367123494075499393280346440481283251082634906979690893042961606748302685771209581123125242119557731106673051448380523584048879984720949036236250409770562098330848889866439159728892733568778518626785540467897042733826884399632537890980302381457926644588022790734349556365298238641402443029168203017619073437453149755273221890124893926504460917503540950254104057796803179295175732162904468254350682318696740016356705104668057732890537490748688126522645065753954479958882919834381619763245065317331711477299966222371559993934564429722158868922784874926121821246771648752388043283139367716628267465864245360466809304366867677762563737688949630611921402699437688926161028717054444713417575361460126930875410026940554344136036873438239437742751455535181465690116730432729448054094181711337749075449044251708306046199319605282327218368037370978271577522494836116643739599422918997512349430026590575794829242476051347690896825601926183814801951202511321871347698815491735666667277146339320077428236457446996551378507540696720152246220963820432826629729488016345793257854780994072776805074873135677180775987541103348390275566248604689952039540095698094259687162646108863166194286477299695693552861977573405150948545720059443664495838497572184605925112362229694992377655675360948708703381187857487685795886191298039885623840084309869275550726764982746778461164898790980577910559058938666481801805443917716595467866891559550836456559902219286469848644964866894916479260062980447978327121737397580335383088271105639424690758198102751252702171596899159293290555426804385168720676594660484208655979870541290560599015472456911910876271961691567645757097786351964399790121268561114202750134386761492273846456936751307060119331810196803932248105764720653852577403870848225056460451091500159212099614598547028475889481280532670327660805078848389863507201534735323072577757712839808241019550636167585618954584886157361249586271725342761807491650138314756758890013628068989906089708160296290770094077299795617578894423777121352963207173108552560355224064757587414863201359045652382671318823106532044942301851737754660073985840168579103479854119772099518185058024467100925058681587925729560616623380562124304951750442292296776809985751796513721122463041992379018347851025479231770172383889539380243860842482995691554511210129757782788679738085202480120110203072557186543943510002199899405299272354124591910825504942891090658337914045210322658256537425238195886989969926056662765702817842019439442429863357270321690418738897870291478926029523641107052075369727314146982439140847369881209578653104368151862691011641101239716173984721770947122874248548800129329493610191719283827932112791737070158733820516911667932435530033617694150518439879358581548629676980492570351987631750931332694207848988877588009736321331106121160346501883160717295382102238303819561218446004454644582688137485873478710208110390900911389919048514492579976692637268729043977323863621719210057260156566304190003962504617541363819895901322100856435481628139869587854540901902742350291123099412808742857997975269199189288997910455174574322523404508289678336745548261042337833437597639703000455128266927882492044993973301382804477254842317883980663693236013907991508729659683086483249806101684896279366461435030392411497506932486356225910950291899950187381829430254181719594075755168484561502860097905732076441744876057212495529487388324269527702232533146196665451607069267582148199576438899451051074693425359347330598769394719172170046899950612354094374113371008329922906897645333516880632179739696901720285292107606214199219745421052427008641817660508947158694998435799648356468857780496589827642026405492404247944958508704813523946133037170633104679442379189232349709672900528145399427159571143095596842341683531768884603118475439507721570229367727256213500346816946326494753614986992456328420551730135607920736040502445351006548041756052361413615062806068920343019109003298296661571298398577118569035018737387167602368859560891881178349060303173478420052324047657192020061388278149088159027844081901351776758439627782758467541601127690188291303931038656947688782326721306742442379644323330826078206272684091104661478574559990185134447575163744590481691257753284605234126119585667578033234857684807258833506505394469479570231349350121361343188640555039351195599152548963285930008819870960147939058825132167021445258336325247350182229073124517396249037158660914274377537758470983308312586846589867230177715473476205430463311861073817052136603348367370111936756601717354756793650780295777634038575511835245129426255641343644214035166607681344825997209452588126152836874646239980174945250773289910498815232677936379473758514941524365874494768980574166244563105987334488662577603419479615328123782978741253961494119820439974575715571917892187100927625351875006012303373901734732407725941159296414334255827008266486213151486706570258034016230503067848935862481485978420953217953450100519793334673336236948566250813251912552120572345655907829241750568730006926987399049849856553844950065634860463830876678403363181582552894856571772244206367310045980698956968369514542411909965039468303407174500339217863390101060619619408179604850629752446551334745020107335555101271911913490812492420912789768861407168619059959845531942904692779442721516831110870300461232467520607653142149930402037522896550288342199579505600091877171102912952123219772339712800526325973978197548920818301281915653969620942882525356530743552730378970344025018303439031751969894062140776763374878511096273384026621480546783646207403735782173040137860250378326039655815715415646807502224581548618713433886788800121958195756297064870804765516804056413009611191546639857765437521680095141009840719994342983032760532749356375162447974402759615914561910593214742421279483250796641706561289932220099760048127549332258554329626358122684915241686377130255778766240952413969238391747113665516942317769151823767802370967424319882486218173489016613230457802114930810080161299216397650115314862572349963992607779998957695360370077563142858134662618549116894343534324742256703344055050464659487528945158992803946334344678569833428517924709909916814983499487852695789668608768889986110220164671088534854782155061709925886588975911098755995045190646419799763636604622623472640986205531738974265559899630513720158504020015816165161271119717452446273571591636356116096700705702475232561931125552982394989300599708300058240946440297861413169978264534354223722286704480604369621358680913569585849435166652218911520670519880779115265498393930313022225195133170528348421424487295545357909676219674616323433438300585876215017719664864005660116043843800656757851980401710367734137911256996233040325241505613990981989926890972473094410880979484015926957689204896338921478819257342504664484254945216706436849449181167809334767331672587551107169609621515671518271277757790847021928026106428678815809051708535707341425287354232201224746009732284242213475824775122394767069812579513045258846516116504369441193235257937363809683980634413456158298286899970607611208929099311557001928193555943983504141622138423258556786463873747809847595971285152970004494583772405851481930220340098776949747244144887981814283492532490058993916731099435752239762706031091019403515088982795821608022223796353245396889112871127090277618853931893159801660275498810096232117711322526028701312246207671204222682421673420762256625238559240489398373898260760157586228238364124828210491532558233559716761197222498997016433913028532949279359029570370269621282870044869706858488226820815916119650275412162441027070648142545829134198716054645362753303352638832680079508721818876737941451632167011189612627053662558634563446545676240644424768951132250862565693466067253874337608866097808411922074323143356265966565325731023675232932215310755137914115180920071094799434052503015516769639896454020929280639937885753880453613117945464265653627910358381725208443279775869435496932444105266288333995393958208791765744901048064890103718843219771582939433646287638458546914515159444297480959820654385870799121499423086060547540817969162725364215609264051094265950154287768534099629422671757535707576479741574576765363808351534419999083269036496162401532536626269470790265725084544681618240176810703971881970683189763446152407660302554279368130396847570757342547932205940040067945295279646090934811534035242890531819766173511629367462280433616172980819325407596135450961418370772286308666152063362591087543818794083200367645513680739640511928536096206453946392113414125955207021405181966308777095344746213301437090745798996304534715641179428634694196984330382982062533706329930273218300717086365685751703089853468023625836915235493162594706557729440173900907146353250125745441567477192461405985753368432395902565618649026786769943348452205504352314485903139081592682444988766609714144267084530663210259825353400073965198006170541958518241961667796422642945193992027638816273504748241015750124801419514111802998238226596065950046162503291288225976688278215188580349003459429125025413648789295074975816079468894290767866030103440375363906720150225359732108191409931537726096467557267313684487927957371754441082483224455172473713565981749964202147840647296404244931522298405745752781309055834306309741230879266863071256238032420457442047136195505667872076134511668784751552625442575274001131830231927160583731310948329909398006477696812195765715146546964512483001815066618056401954337243123176783425540619230500879787101439913772646555290622859352809127155141156718094044032764694153114186677178833831543985576318561559421427340483509024259035777394869892594961704357698775996645347965121318685607841214249733803199687475775159076598839180945624092467821872035975335529598453990306453271691085008687648097060222156837487544088911605535263714071323478314823180176165948551064216252416730206374385729714941455463000347374020703000621162852896449355300364421124174326917086278857764564782712144860738110745435423043740432384741490511386559247204165774068756781620693554736832099588238237451780029333815499700154230954882362711076266423051809507278899744703930535436647626626236019128634051885555913226890525294400034678011280583885623483258630097554788811042953912826115110088880802760511081091950307170025530041846297654082177736449850603121904911436681471866704328818184070876690205950100928321451209572640456911331499242186472754568784741304669187724770637332049829149588127907542995330214106224673467482936469872250915569084120728027594506137714288183984056413258048109981760044015862873601402469189504262199494709928250402283332488500351011668578655827599672410131493332560891500705199451905613821232963475736585363512730539333043753862193421001447344367492571459530921355241560141736376846699722550438218227599810555937920502878659422546067605977279641717730529931690313499501794819534374238510966063217396660881588208356726358056164975427147204840576759890673588069220919597139361845510164878976794289849064133145638999095655618761431445380535095903219450044819977870218084380348734024134963595496350213829067136591950283384818609188056868643306880741032324121544083062834346663348922021353112380012656636565084863305112420954627297559237698466771151816663346388403578979964389834782569974773964901040110184362460375783588360317457371997996852327853293874823498516320126675907728880483799048428471430882775776086424272599154406690231753460684508936958153904243700075352817482874206840702526934134147764791155997780596935964334271899676491905976977015805532808863362216294095846833406621375574620728663809732443737495513345949092113858892107860765179774055483982832373382251962398109983846212430064288766538404300678233005120104888831832074054428671358451536428222227238600171423852151453884606220258507032655793718198400438567822176193703756969738250835736673034283204633993413105420777315869072286812125359772986738060422941221012053949524990900717579088473001849201661344177637225267825339321248999634649313564832480525742340068299270029679228618687715961071220030855391317852541024893684588949203344757499638431431433788558165260031470364187390917760964043901336049920034643299508769477433742999597439651551385128128070863367164433635789969637396275613457096161814282728733032698943999684123737301907887361769813430145041025273350881910098535574403428588545305644769648391257325220454791971677726400096627588807414227579945781852561312024366757788953652244816234736171779715897530412267338563425037557925641130425829195398687730275041542223437680967440004383165242582355702520227015159935778586002882727348261411057382098698121659630211108785075085371999309678974673069813009054354034692336526634209092731419462850357497129887577386717120073701851207763907664312208638177817489736754003340375452246386088789039182513214844301570298924764709874779542466054602458456325048240119449367086297950781412614887883301426421591247553647910351752755817945144219496871497880963840762344405691435639854003792468496811095566011510917813210957421647679769628549836635346847058944944847539533291624757772685180394338343043765850998065229456746500696615421116941348130494862123666642773717279263980617825977987329829440176929984217299560918709434147666664688274312326879553131641249467895096554614718330980848629662790906482985232533407565555966737232530877446065238702691274164404102795369706929061664288166614837958007750586966139339749939666656178418904655195547081244819561860608484048836488798676332036441588602119163377346030835961108888981692605842970202968029651998728004357958055223014703416268634809082177212431820518387903379880724826586037458011712372493116537112913709272508451588256913484752942762927079462040162048705673250331415091647177004317467532836572734327876768090233645762429740568625738302997951804936779047118746806134087660216859326482255649557845288804578366294588619221833283627150071666889177888283608261978628728856646195430322475804934682036226418859749381527673106326755745515778173743845458656568612808597364551723119301783512058150186998631809617791647982421494119522917324863329528065296097352716347620281447803990179563218891294055166875953979450032025074960084116101402328844564260107872534812589579538949792375797115796908698202691876082227903388110337860496224552940305040560187108684429355889735313587494707270877753331441485211231212597460727956625600618830671725257997643805463437494907873084953499430013728982558376091197050787696519664582376529135360551380438720990110024151085284625062872465806190139871585156834597527574027812710846365701869520245780279241256768419973075236014142808543228105413900730336827152933595919361227702128250371321395204164857187382823805135352384741175059271160818217105510158252346487354011793168096872368572046593058432802815767004592566387480587658982552986646548124347168680308316507239487342491119399200701325900483585216659008965537776616180549760800027465658870922417449631363144927474042603736076738432314505796420333187865401882285029408410830357378171928924202790118439844484614067215016708038559046271681259612359961544052429098537260064154902309438906853853552309485845959287473015904461326192424389031934099624777076470933862220951206026721294258188009901171392680233929135791621681489214748823619039976045455310364123937279269611084425509213428117279956950876334235733657070328957096753466556728958762759595886181590468866814733481864366172210718982803779107249662163988748180515113722348228604309840554006469580400622224884216142026389933979843492107533036654139336543146989992278299231577082034269043006003457417410534127160764264623240559687420602067324481562090415021261163460871209165550049667027239065030513377134168256884038064550655822700944901644877160901506523678736348566620641419692879971181737233000765255039453625845393104140558534934954863498800335278449453437178784741144999253607069506193623046980389452485446825772746121857099003315639350864289943537097008734441197234876193847534788099955259757456271581394614509403976507237183492324894366421038215625071349903623414784379829052955446686083550594832271164369414060613844243744524656308248433669870120195836679646443990760480564745154313673730181430162824019745628350472535840947312967029955446645518910633744912775407647122426630740602274343647044129688268109274485853627662654923993601726639506672097054327433858759464560988690753670262971034196154294385861380834299259572752918308068873381654789953561647196827906808128461641116345233905480985125898773878297062938289903668682395128663595442471384963135878184497549404424998039384526868985246012286712912705175366954593108495512164319086354192511611628568252094507255296550518242641696247843998463767320316501366807025200031940214419405809178400898345289151917144090516441545578939365550094743605984237918561741086289104959856532956537679161027344277712999427994339134536706159909192553867696183171550144505974610321619172987892502228143725791348259376358605687171260383958168752605791255361320758172616184347560985500040880068832179532574944802024498339885183936431213975475567719602696500892964381336574689108669624942882918406592180878825954746031522342234305669671730267488739064330734844693941040100272984130446784172137714907780407228047852921831891473710642140646279215589840071412528824632110725447097508631375533157782171609389119510451337340550895828713442315193428807014664347368371608385738958737978340228237241743141855480641151131051521333585857811467188427887657452032876736283310385141439682549366857457742993524385891661031470353077229499795476681087978630669717746351057699034334014935350224875502431935341825932410886716823462266742681042201622249227164674985159505262751242465869014966741439758790640108524374518987920394296866556780982757194673000925758741436838560762790816791836358125340970637881611076970869601300808125431620930460279757427105545151934599583628565903269378407855503307915573464988129292871694714841447784434028477965710904315722278670743795511922535256950602083600392179286582245871797457775235831434747181865961035310928663182339319272726659280562290273366908845363662521187703832476917569096137009970566582515391996095758949586476072434965053609552742024721021920592944395801696251379778555859343667306346000879903707187454781852239193161834494739683009872212949568229737762632955236909066533907517239423523843453871599681102237297160896887979115696094946687744966796776668207964392022998107653639236298965608334593062894298039947410688973875417433461055876365778791704688954717783489373735415247947804871009674805450325643003035401855509603313330844933342867113373923315059079467086320334444282932281529936152681778346459335541917567484399836329696861029732686615995140998196323719839546016777661180028989022073055036900642186561475643554174364888036850868572682066873804144714603274870098578982977459945496417172423017850969328467811941187879545340678174340563295396976776542011877056498738217424306059851968438573734584507569610405490269240416131933523760555680035664550323790141921439814966338211350676989338543235914204684977822470418477732608446562482128723127101291078668410833536316544058208805474902659835764613979722250575736455099613155905619879227702685436375022755548774715797800157544044936359925469847802874463524069054963854380604168675345220788819432729094575532988459138075088279700041245698306567528227326681074369233490476991139727088745837746041633542714994805708781322389718570501350236436137812203136055995997063514236013646292265263827684952409671289856856020104595591923132590291184975337547503606782213093962518561335558258443691816730193669765636932030456740315825510958818011922015342093831909286345752985516863142414845021161439654550513344815159119711976382514712787222287494569747551437423524842636842215693659272924822482870673599882525518473623695725239157435792414876264836353415997185307652950511875593576333109147679625380407911486401505760086622665005204223784402437970838608874437273260927412573781283912800656659302317798256094068292455137857254693480947226062794779163162329994467307620239378850022195633043131254532581557464343160538409759356411680214491229339567486903510308270847824686809503667831460441561998157148981680746360361181689740821612649229349119334219312763526497836686673665872205063236408532186757188272725623525509438508233274496371052317300940454867065391786698034136206434510481288523819863230010300727916334242686404091904217830800721878790274048476162290908829538790324163841877243760932164348761835487277728478968509468432996439822788531467704276902004325708329652477724973394126080964905795386313192799531333202835522107953984849161613615903907422829054326030498155789707683937656860053874110063866043588215604797925873734464832768842963565562093134601545719015621929348970079866589129619951884026348703123596247868141498728383491481361151186674684962654472547053747936956624912358874931932854983844818517204176031189428503258135660666052825256736942190922160177005122599107341332136184132193676460195869324236243949673390422437236346612096876027703058626206780238409466228680918723334292461874949495922996134184661485875184747115893848920232799897054728458693852895242346768982986490358816610727632642093645974310309498192466461588350701454626411639618998380804836555905200617840662423640410978460323636021892196787307093970276229506473557712554701766072037578146715996725546325567016122977245511057785826135042865479730386989674079009214884458485304750811977795251927389917990989881894057308732754837803588209142678040503140741141092169423548403445633976585126144812787965319129138013271972522453414892461977042021371270352050351470067863748258002539831277986932157905529254357364669865638806870615965324934980107378185711325559053427554064844388234227700094774034734613828140754351693769469086297456801305315316778333740038973856347255274039354120460145271429002409712696971306030043067299352533810651852426961144153664157463393349190630586417717847843555921162175172534742074133497289483897221755380641000811476875614387848873783424598658019708801728596422546931206516255831892244796456483217318529344477226994991260951402666892371808061653035758227854664333536895906089970102447397352268199450648004989400648120442224196526586415891633039435807396649780698643289608957364832621381627520513662133581457902746726815285052293983374302386939149882718688070704434372922090806550093879830951095017851643238069088556383143809771508264149029211824080226628742941365632086810527450659913486135679767175426597528409174257044280365157401445432173481536749255849064721009841645682612056387830029513136492075903872687463247496828248393229295308207059834110021316027910898779356231362342065342516530998438863146436375379966386194844797229805693528503717921007115732241537936850028714628859115020466592971472615262865134007477147540615359205002388265080667046404048592169502026509158139341908294685472948204709197335712922672829057283752503366888473691213679409091525422744100696180051248548205701900947618939316306238158105366969156927701078574796140003610166151519677876169281917701023349565260987028814351888076528540770223157320214945107755413864386947608206111427147524108419485132161150215453441630835054734323576997025753551698295029979023589848234422047088793709889360141969550977628082243205596300936397834002000053518950691314816926368274058741865521963161290473665804178657387942677148326147206920822114578468067277315078233790325939182348991300851839521711929609629872060122728745401511111666642642899736849031513665669665460117667133261631488638455403044901814582806736788571172586625518116067084428163683564662261339547830798606543245525350285627211391596020775940116794971593426257667081702438983469599208026081749432264463401821746915648067923570798602227300695934903971427488630812394403327415080036814717478016535702468428418214756784025682693323587707568090771806613261515293111054227322141290146831896493371021260399892629494875314852179414247228346390966564850396226414405361043631316460171004439855243165687848813619054827356037931484365651122303657814972160574340750883504187015353651792658651806521788311891759219068392076092548399600617125921283864067583181831587000875347194323725121375938373822496552935446099488675604292431649056960743281413381894035844146469605832870618568420714601199536120277657241946147618778461663850241554259087303150269600533156427793934237963340206913463428762204466956761395267941174832072804249795418890404340066604840521703616958016178637928676540565884710566956687704850087464639445542757031994325858881891174340311781236172031118556522476996975917616760823564816532429923988548680433801714055818207408714450121747233783355084486112317797900422600959943609055984071212913376695425704603395734502891010905798938192108801132120323933233183564372701110835485565962797915500819657042011957740185605575202932336123667399472150531690890320050527374023581619315700226413042455369409149648772461781676965346326451538181077720585269739773030769621156480870288615186087130909205764764249139160197949390102419582237437632862186369085155761983653736612722614721019499049289479522359288207703838876283114275544924261162606993341110277676623143860366162165835702671799734232882917117777720052661854939494367989907889168031082341847135475119613981162515230196075018247247584685226393405975959540348588778423222666009301239707165346408704843894800707857057794837333600310853507266171197406028350396526406048198659008473929032392981223745447385950059123196716972432548414267193511204704502620697381382798716017816578819288949028845113715909557398110027428653523907725823631603389359537220324471492485023462809839547158389047873017932781717997111802100403002032766508741553127436815624179938221749949003626777783889182810134021168779460579652791492621716538048129146942780488888184183524114230488830611678217803458278069190766567875345298312548300238341685558531973636455606988124759857716375159414170913562326446948614071546317528254452337736911710500677393555578216225882400147723695659760644601259744959375061991652361855588101845564074894997326496235550055210678718173177463277886240012420383831840547406337522931433236557585976720556115112277645656937783286302510434301468891800137981661253936502620712252927939380930666094366566493112004053027937225062211532167153348035106170951021718190067320037640245190499330877630298950410156074241699930019449328195616528089343536110703342150666978387576394738412142357017296633558504200241936451450419538394727187822475707838981748088443805271789133241703337493248267629907320216412904621284881749878165767887018936571189155272434091124687383423172000378760221114663826883141989290330803084533284440435079477754222222703273816271043526416845348438822158402357802630351883554610182862364948445798218782342926567990315244222130407310385678735993526688428263921334923480211774157418837670370318594771913326853779778363056763419349827389711602270328796828442196800772681473512789060254532540468697955077187593264934659569898558627085255909427515013182689736049553423033476291354321722513615668737966632358530391592674116504814050278381243839693197141973130594214414113442520120910941748322141568510153568943591665694102449833197846004306954517184993461581575974073765282578407378501574061153270464548345583243129299080260067987255126743103985938483460639718670480154796509625059396149671957370167990568932708450994846893739487840550320784005445396035846536796821982833675029369666417221699609554379991492939705108120636519756818898503019269043628767455975404432758552708178581635772221861961330267481004992348592134207603137916781647168034787053473717041188496564769185235858763396592326507330115577458704830832516397923976528047851062482541363791366794567750228269213314526642209579495629167919966000347823675896675297162368231658772439304936417544680016070797992699082246571507754384873888321376486078400725238149792015150512938913710184247256413368069284011711810917898662287252834833649699721412762720137334036906270521058484788022211049767526132711267607529596250448022210756353155710961987328495741640943412916084391446563738921300860855217391001904588858489646399337690132491666063933422775442460438181782498812295183107192541729284096041424594555047083683357336983559924072570660875263478878141860271201829818648473043521677342169102000556059379403560734183347477458344860289551849585994731610301326401936980415445887200876864512739368412391480601376087675228810027263831445559597465357386104463292549213926403886790226588377704283772775513018016820004157183624402523476322294752460515434674168144626027787202222902835841757421592573632872698093640743706629862837643736815377930480345361665524615539078763886303557453681632603439098592545928070702070676151100058574532863021778232090723693496983198443186488229097810694347430476653552539760169711945732695832790068477940244358212473065210880156675981138332591717831220090236082122866452851440765732826246442979388705288851934172037991156228278243096003541214700922263176943690883353525089334150134725194466776631472960956611867949540910443125851429422276866502370946614626355675211620230205984647276392095938632770248018297205434733468819355445703344240928252162321895150781327772734476791827111949785848213059024964585950215873846255580122966109183861977737403013636082476826494760722788081854664544189095291470966617050386474566921583619621000357799297203178116206822084457524262716685825719829312515172187176227136838688162696670007559332023775989064624316647907520106085289701157349573293124859393787657024171476183207721516493682189663108536108371763036510671424185667540316523365030307877516039825607740996106215057843819720197418320453217308059906292559253107683113981644334565116827740987377599190086209817956156562153385643359825218888460685165500276710966711025198255511180487449618903376106325512104357573212306381345329332728434118195300262404648612200420425383783826313780279552361781275882060483072986779854343705777712913715464370833824304468079748219717283451861086400905400598053250652289969328584815689531249922456430375366732719594739235420536004914817653613765690161409348395884591126150136437292595394805060125085887631971348910035487454518220856874575901796643704571731208933024726557536891248061040451798552440719710169498376794310736530568068700592027091230068563075130870426534611018470569132524053849266310089600241598872638615176597521202036525290748104705330014704422302897966594967508135457364964672958432815908299293565685123553168090760888358072034501138189282635108190246048232205448139549700754513654266485883974476054748518746268879720040187486681518139022650492475209573635101150932144670342493859970151819463710186913681727320705757233154766845623688347354526302596344200160047514252531552510239032908614415986449557772900069067756503651193935138752903615553496185236240536927140068604676091684277429806916764363868515516893670631134607249428484655066430728253712984809002076909008657461628856044663726000274755851787862726204004791155370357616360650228652661337051618593451493257362723859406377764617989175552415256105030704942250170092069469015496996455306772345086900778088989112088085696437538613245978477903941170652820571400593409426127556178140041465372052718601024036560948641136719015199406454262455868579936958188856357892557871478535457119922302638869336548268599582300617397877286839927663197552066199730636389598315457532910054489113508079658827493801555569372487257189647021517850571172335705782825452272387183274375203024929366880894232210213005968785640714578239449202763483505275687009009856762628412629320637533570510112876995363790452148944483088625383695407086231385077798732569845637726726253074823175181285974250784391463153678830476751572673585812344949484412683482322923165869951927018575900271451033284205213555890439368318941739262139470891232966191753525114136906772932462648339734249035799949377981448511067520043250502318626201660629691029699927968559291146376776941262775758636148173932665779641157701417426247947329562289027310616763839047844790537182531763555610841873574558581678554770773570021149953452615427644903214204970974348140577025549127618404471599450556662043152410169926497273969155142214693467242262160389439083996463660520704240669034727117229368132948544402705227311391009401252397780891389522768793045795880891655030683276143125150470011384858523010668043708750506615013902839930463901609403391164688318250328786962193412322048064011899840725870871776441316006185819575481095957398136382929364709068926918456557386935483804689706009346305463362131851918641645496907465029090379541261808708707002860310046932840479999784185132607797346568267477263130723648677333415411277718349417317384157256234423153731773949136204082550260938271633058829441337218748975252653110748082893223923895451309307749089986206312083742158482286112628188277377805495757722130626120485200909133398937487317960309086718978430233206518656228029047820973611544193307978537890588864838836216860938990064827947744500968180347953221060424040379624507558598163439204754898756203995958075864157236153147120239241561855864523135255236977362550960754650526328107558438174796921585294940919471012800647800510243452360001312543613112104517757541483129805684938964677994051398094205494700196793146411694486511439795718558014217420840477508016065352556080898647203751152528733703423297263585443346234468148769867766958746006047923659588784032926250302634722963235645914314490954633646626896339292812510650789974942450173517836138234625594802131988133173196795404456029073938943864538843503286167644352303997915008704953355825433639807205453512054690972133576792106602914847174583830761940187222724730160208490393760179646643906077503242395860998587613890179163630095340742114853533255841131147117584970069782734221122914365411777739797170404415648750951977802517254521986469404461724053102372146846459064942416386090854227157233338198213502884340254465267501188791906893376429696985681873216917947687827254877246142872055128778371240693945039009947330195120374825360518552697385626819837533466164772340168240278188319938464015181652571863435413096134704857952533248028170597193599459105793893052735909665296673080204215526518642851757505190330319580621859390144244579102637822320714614526575181775895885743442528505278645301108108082051887046626740029881997983076331024967734126986627636585807337540123479011881337800185914451163818568794137611178137859602198748084767148949949648476765429989922527494934317859828589973017179934358354119236550331578655064725856493957923713412363893831107554631108158533698861572004992209006825088553623340682759660541461206410312621767942630434519835098713663583282069515056063705672261029988420794662511229351617777641649072891849983278242021440476605271269178011392285779604129215878854214048212031898037186420386309740608708415711634073483836972180764728054949014991364847359583062476090551351659106538903982702199823466862205998602429440666655515679313560694495248041965845252752449401227838364287165461045712939191171872360190053526910977536084909461903034895654719192609323343642827363398516547116565317360689417727953475448543469072304491945870584667905581972671452865662741958614151310272786120140087437442837215434281780665799263672355923799372391865020165076608601528806181680843801379227519634773001082578644272592271851673195107745423699181495511841304270860670085353007274400049955756477143740198093876119900135582047948811063183324042074133597183452416291151364205858462676070614528297454890506538349467182513222256568395861242668363547685567094746459376239147771514083017414355650753387551261320799419264926710778081254756886195075133163169566259284937734227243091555261643307176831650551952730323170132358179585289678294634320622715123321434399141518765647012743695640852222551122321089879105789027103908112399528364228527631599050686472277472853509244890035670014944178581442576247651211832258594912857630110449535996948745274213927134337191291529126432534287458398958809289192637299272345448861162597718798285867477719160157682421054353415817149221464660123077903090945141634476256150621345707972095455595834278509383924434177252015075035366955743804148937222780821412800845417884314595394411534159287017776756139115895444972691968620420457329029587166137733802677507441392879261729268773698566341651573095405786790241169695852941307032119672389493365123260086164427565587555703212691150238668624856024187915567653160970994794671432942900863920567535416400565376366012000878577189561273775711246219605752410653921742354518001845041192992440905970597168755562424382544674397262760748359461761957174299340191259790248767876551654203156509426076639350765778738011301472757378225664942039331852563846033114085919495962167874699517391928225992241716367658082272401866627519635681261528262135364262843185297532410610818063642535324521557312628210724983195411040930609513341674610110478517571243994060625244958540978317549296456191076789597077347172389441911977329769860423254539097973057086694332005545004847327927313031653580891977109878411561849975458355938464884545000665563837463512130822050222736024308074612790347773374087738452421013114364298565899540961063185318505197666291756459334696154719983707766747358686262228506095743257062711964700240081647390328447875023288407440291566269991564674867062541390335067480501525445235652872506114037116825164582508095694421898933229876622896374631286191683688908540639266860442624384610860048734710755656424191598135572438660459432815366822066060691802604898558224411933803512236524010730007768835053869822080061704551841794844885124804737600458518653914022731999618076425530976232201220216714504351613354865861771239854488591735348016685247208531177185593912015906981946075352418826827296392452036511417231825694953116253617577116926710567560746210105957088516348416164621992454686092118781760606009376292776135223045887973699421445933460642247900610422423338165784153206313327037149688422403835060863168685558325674375316244712811844434233050222236815013969711704360479075744226913691556453148055169846906334098669045810229812963329710542673622460092571294772076002219525522524541340997972458135825475191634584492581456699817088101401008590361875584481813961132808089830411825880377581570643626862214690912821706910966284827982892416969797769741089394732649663141864910066862182077529073149325753010173250547257335110727857857394717257169407258141821411403940937768871025871708883235626410178359306051159636023844600171224579833821649593289088659071139305759694592481991610037180245221463243912506433924462262895545572794605480423160465027771133166352702545925228227513935430325397042449978637947573851243409574644734363266722367576604830940374678819340946331382947914845718875246176696671494666310785385438592213332678721413889319653702873124843573283211789088454361466569599890875092654902513331925802095044327529282168426377682947781850186704008575581879433305645938298085811767729048571509002476316448922105272227620490243457629856237885370874734891183802774526026437736083551680264843789279704453517166001301965138259834814753134913471409854975856658222449263025291916057662608107614413345883715434339812920683881019422398915780844187819443904382202201526331968087066805524611313039134710364724681845603380877997609078979206274034106289906576714441322913130399274176005889830517054065361188282492449344231036083689031254162264535193192693747947514445193097075462691154062290576435261287747884034706098602412257983145258583399206557979849350184855131029273065266977826699709008981481360303124722764066319865750533839411829873756864428027157659229726382103381489856781604195808660032368496727440293212542241215961582947984142519145524476672540069833224711221960847713184598675886140780369129253470868781496687692161541162362713256763957260632041074969124260339580421585704166392734056687161445665952677065349057043586487226067277226876363603967864628840380895316374308755696046645913372249984791348387412546041256451026413118946131849174347220678517245564685270528909844016996078114182101991177891674220154725557868477894060014757139163953082192281708235419867468412876592005211639543130731565599097863300270460419771562060427510654265900814011621299189199459914544260376859967036318542326095821478776383810406192430397059509114596809043376610127374927713762812735098341549088572545316036980665047265973383090194871483106414446586881408031142810489081164260006390867311503775289190838124909416818537726856388025917194128988626578798961915561401822584291337419200162968322923030258055864473563491302377480782050617876021825620864200408793787241005986764136696733866884351875329141626555229995451457509401185049079073730576519156234140482563235759265006030114180747374849553658546448570028331114620995313480193335612345119471897318852350634394152396104284653818084609060154453393198219333974361039992818769366244998977088657721007866488897260246224417164281424713394958805616158034962927218597296757308250662671442277236726663891693514860953616115944572485567622861966803083407061375973899705773272286745920676645142400357026570276612184749567073654563485369615868529326224432292855793934411485016219481337595519650378542727164031394733518701152306709953873646513485282335621578820656136665384087590818123798199641362201022612023615950633306649004615709453054148648159251964845338308478922202830254707723647911857486076479306791506482416892759701335072147803331082612868535276340454771217396948996420999660924511239251368760898828691545650700018146900425089236642108785412795791513001843316246469280822083569549248972084877658268590943573856623211436528933460920472420226439604305546558064759408498925923621266847649470781703165152753884654246414567286998743402884523179398166810468870388182999361036122776720545016792286316044139208047887651460746987488520737896445891836440064395890865033769116972740997650315117550496069613771253541596070274374361133893008727701595006780899637081011048456327587202260948678662466170906335369683953372461356517038016514849681491751642163753070538607174830763186217959789991212913026674072757489746724582351349690437588936308744549354334156905141320325342501515229996384456549472318602385153853512594839927600559370193610878575399185355275057318512704367472417784702658927762221793347761471005244908462477021244494192836753134708941819990709240104304632150853391461818571051706156258712714396357439348293407078845439547472742246164751266334744373837956244977460740714562199965028255878438681796789361796959539581934436750624638918287590806202657232620739943224033094240657520503226874676175479075061559300237323297434784353024615995891533994785027297154189127397086500738566021418837021276024895387391463329495756900344666880248788964295156907101542795837677515468816873773255910543194938170562093896768001749597615767566229999325497008147531198372027123545700112791933596624174920565163347017315088628109179486480957017796308706703908783735326236408109929317829752929949272413630809826415983048589808527255946120727856561528332485709324611779941608339647973906624586860429162731254174982501584010671567993605605883963220709581152529255600562858111419283070975700090064029475736543460404590757831788374382449552155843717134606736852385824395828988260371753734259141786429993808793184881860785089963410542000811647711873747886967061820074170687397323009626270722898111769256921166139745399646274357619073510625606817966032805166341248290039344635774023029827820335875184612447530320751386888856941065758653816900929731427130112917971835255820162786591020773046140261472514117681823836344592382830927536130077901895273309539062124266867052615576097425715735933591428210721177920818944544599286184937326728963656084740166584823691509878986330682310148890031745751923715724658604684110069639852434013710748828166818160391629793929227351106464794204101070729127495525625995099960327017713078493384745863846048026938692368705487316194484919451439933849151100363539973292781030937077045969261380649072441235625065519732850059522972935855704525995277443942883966663756880538933787739141318139541095769643385279823121485098458325033260937839563624853378506463436936776200429336885062789651907014443793176503218910042967493338155324412150270301221001598702520155080310685693954638963424708389336432328093389199803310776768345698364409372523863918612926517943366214607342557725715196002242735462823391242882864681455148923014415635476550903362745659537600447599414402289601794437962392037226394470672931727336258522764615581939661218546057532217883278437786803693760209759524912552233621374792084892834146241532299447750132992546027444993037771981642834316365867639372857265277633590911843978684993016569970961350081580079769514728939169492866673670321294592253764906347716225674172627236661892937595936366123327759306914681926554271959012580317164932563751006872349822110322708175965980411655164125351095201382529181427411337686300458074021817378185500878156953798561706538797411329826432165577177633057198457912076159573264235370426235580363667861003383090747837808172436416899154154907338095112159015703611338422203132805017513767027663904323507330735850844341965208692197280283189031465104890313319808719974794633346829029174440768311774863243499507777243557216299983698458669358154183115309700073719322231969199955852200523917851238330086126451461449453276330547823573185479621339055144339962022676334250633829188269918811476642926411704053190770897331879038734576614386888387811717466456173508904724310436094042735445732470654175460164081438803464168476663769758317272155576580259772961894899604257502129817091572766634163717846740407386909699215832338408783855314290821637491006673688997005525057701545197171816132799447958310567701041757509982444253606489089043246291563371031813589093013375126781261071578111950506470122006800437802337484442252745550618107252756039076483616403210392667942136735031973778032413641728288550111764577546947122344023600010958331208828226840190796887994618306352310340493333923935838472581406311704411956450383593802048568634285450495494567934267833241229795587165411223476207227549814625647509089271722147154063039644211282070076782465153614735083448298583326577341216029269279597707624535825555105440756688560638198172557524275731400385023561088712518402131185746234561086360137816352082844876299275923144128487044364784183689202047221322088266933523100651263162262393312480547929446890750988402106011637614433475768466291223109255704155614526290102090042190200629579225788398638519560250650367223112965761055716340544466921355965595726051584441584797908954935837095382522753263793353152664783475440441236925157396729940163750340033374167027594282947849398969898050831748476702165865333116814529304510016748476362837156357235751240333387816943462150987213451197896420021380812868941870041433667972541308050230987071283284370987043351243633029329765348524056043080409083983385147995337406083568161872462117644587746347020712520813497423389115416204568681304614570331727642033757762530013050019432557644254519232659381902966915639858806450915028925213797038153040166982133314365366465659434154393413535518687275681630161503923320066163282220948728441413629014055174466474737836727286387721055096512530347700429078269408486552190732978222711249932388787817725069729073419537100068354075645884466655892891883706366476479146913214622667389675267488041527342561849737731225914893733096668565911914093260746316494961566403391102140057467693182432345126559784246469799128736979096994548077495447019971054085585982157861604922487095079011756057517949215392655068730986597019409505674025925875233990646851468542852812453908153802972876519935340278146420221544694495596061871483332992459095846116830227270221046180210676142098550478463890139999623004599876802113863597775088921473185340361299835157067076809771837199356417468564524525800343078341156444420767254704369893401875848706666551765683081227487047373820316024238118261511402839763127056223414422517408032768836851181339918299673711529472126143503991800278568106670778920513232523322339150252973521367432300896327934478351551268421231541974454976233989284985522947017466706505926992490933754109374123502698115884264256455717524820265751889574244613867386194494284616961991062377238735037811542591200991491974522713377498077538735326131268744553851066847807177458833244491935323738265239081732411934432606276935698352393929986911287349936328095006518500133270105032126651377484575761804535939100529243980328146870799780141574763987936999881814976060042877107277624938337301118211443955087122965677500249792666783486916332974600458142134402690994262255697906613050199418899710691658978138755017804563413440031466493149548131001816048785559310987879932455663193624587860908044238898651973586282700854262048700626020886130018143613202944170313472382970064365650832334511656921219926570522789494816435515730109461903227897178063284753302214579895390448649917642746846151073526079364607082595606384108709573827667720450332398244290364430020265156660817127144338160190776230856178911561098731676780728756254523148133027826109658241373553426707622775977974757578279051490929258385649643842013955467900266980451783919545725064999835563658220929890717011216159562330497380047524454458736482162525950885433117210915406485323745459089707817494733553873412954062215262846699233838735528479936584639816981521406261238841072601183700582538201082214672708045720337594259159500621743939474926926412178398927298139456321637656933898332413997111584057666923632186539056003772040900103775495516879616950962812330445513326514058758316986127398835021858294336136679610473873926306955823041169319750084616732160716589714887982909113072067231907002613618374419703644555713317747881204084378139576913158549089863089128642876046112145922608625445802147491636948299474120914212981778790227582003380024536696132093772899007190646329300388666157236544364537498427272560277824480909979522513879592596950698269643364121909040304631041555438684448959773924851975313077746782549507045926028477317627612544736176905711650340847306757260061166210498122850021946826743068863782626107341941562831817607954568065397006286722295195474137941626735432847924227852781278322986218830164813994658041731636093179641135450598269678712477491972104136169315572384872054328397926804696867023189971304555015231444608563998025970059669527928238571378449475600128920484759663696985415247163919940060854216865024315669306138117925574009460655296915681113577611624548165043808494787036839308269929956128375289804979265545028749650723628570361783563860918832644549470710175692518018234999150946672878939153080807763315424836369772001106726860926625750436147883732960531132727667756369670195520194537979843576182087985018340124342859417037453113600246393584853497518857720408987111037230400870124265899119475888923619037374639069538622911229650638385298336494833872111254284095614888079159895652584986393937757262288772723373264995691571245096238386522873796302423748780460409784972930276292796594693865485173806736849058636492031233826573783278743062772710298316631010768458765433657416219768899014568112808829505510166707446509623738233948212407598476925352789003890917089192664821183384198429467828057850986845660787276215861349729623239616028745297290399722856277280293928469737966351873770837273472198449726789812752534611664565028163456001568505513371554542446571683121631870605375823335401392849991672312188012611617337318584948858765949551216204371511586567337454022664053389657770359925336931385380904035933615467188761725047854064613853593351163412529065467167379091713223929463385102424954125441820293666585995192448163240690166073452135591273658392480464927000999749740886521948292163308470140283824083089139711428682728167272154925050407681833206419899786050966054096913428517995357226241442328459913212629675239506459287893496664139183422027419460837222609771829355855315177135234217280713540120874596102107011628891068575850581505322639210076079256650563570785876932421654114906594235551885786283954481810559835684307420698850512992009801899750815290808411611404038627094268160477448791229826678645727396688374273657525202827891583947496674122307181915348797678576844947930943855303334115506942748695220681937918048332080313411436879976784307381778782002259304117579091041777921628457710061331764946665041238740727565563579924435956656075337701645710685782360193526019916807605864605035592139290056259341107635496635106609617135374108010976530417440836272062969751270253530174963438692695363512374326050904460337908022070276572698593446666547116171198694033181967751314270624447473916970621910192480372048728743803607368936833151722598561961655430325138309683395509822958367612068069519463470093935067293579619516294196964328024909765171408581595930093070670697812786348186528112416056052460304762443947816479888338308202868402124541055404285422613719088512356336924363583557542628493959345573220029724389003464473059998399796678261544661397424835648141465304203882875935670172070989630311221223472124243534731818894200413666362682464350303044831887531543840595349577007338482205629747239351448099819564992930535666794342470867241885416264143414258288497453465192559044354476028683490378081406265137598025251001014429347269081914415619168890285648913669574470608765631040254543819815297051904720875047602887147441073630161864743222311087229354955657173736646113566303370345447197858790118182730104057474439231118772287107350244915920559188016108904808920185455177479328967534844849896544854543187705017883493162722642149223773227502197754374712430036245570289847334792284123724745974775524028181930448774958945853026681308146806180129777796851043445209389641173065767303493008685708855606950214674174155644990713544194059134788962282678190102983160675715640698737372759565644689765067940283040131494444582450082100479983881805188157860976287699862622389166058523066452697173210648200045793267166908107582797768638889612014847648090931479311958475225095343386243962749691392712423466767172437255149872574531102603503482011802792577430380368234551411004428748386869665209419320327494697949885575040566975117460687453756525650226125372190210039352128108544595483088027258963694817268207166866539905033676247938771496789792472369419466427910080898169388121008013469602970804509119083439708328365458681705384018433687873718296063461551287268015898995592140321241058748296932771303787307601832709301251460421220247634099999672218263578733481361484370141003445635484883693180222934802552865549718133362440175047661471935627673143308481947124806656954405338452212854499053558655585878381843667331417846567315596612184207040458538899893161853031608568594601610435883685246319052403571007621358015182817295535639036898521240189693784831918745349816817219248491676528590353718631279164363820426980994718866980791082719371915174442095184263754013340923651380687936527225319198719887205044134624699256301581576818203584509528452434286968666823078541838745916302911021291154552247437888950291984196030548652126470421601300913380960233215925855725136751273571230527663271563320074723566872556340003877854307331907614672631851379808343557489872479038034444131950976053242712383165726083161315764241358565870854378979720237370849097479413803790637659499349527432385515107566079320248025891380025229587424603000997996549054651953518628832459718697517693927798376480876813797940361621141364277497723210286142659537009347520433238617419765844528051758278688931506767873894732868876294343378158294471266249011092163988692061695806250550868678651104159753309897394688324344663691789895357839631926601841002218211251150043370383441567739970564572210272430403049640778066008971436832503232842224697060524168006026096785159886398261082405590535861238370357640254786082855699077043574640351189036376886029829576856575326184851970189128554429588725400202996335408740667486515282552100680957134853586944077939211518009603033758308750242256852432368338859200217861594420597185983821492039943443038575832601214508468397686232383197113147864850819640236205684701799475473072570443863612135387166665452767244237019539372049353342957731076515144459046104134112435165583444214152633681440122597131868575734045267676437934844994179653629678611119219373445229597528404291790258129399532072666104775571479957372524586421602401625292560042210298411836902604056572317488179542552459890775566995160871473757977015853834882475868787431269529049313919975784551480890100081951260792953242998187994176767209601357601224492474710217887420456149313836511337106771335042338333194528804489379518951727525557663515827649376449984150911235188179226599330159623425519394653654370295635524730953574206605845006826263973769566856319542595676296730954482007913539426948172880480536877844145805852087496154809671271493002975136132006468696765795974423388906910644955259380738887762991417050641094208993331180513003799048304416554895582236967664278661324551039111530787986347376245261689955308084747109879875386529605448660846402418729170010799578172950310802395114071837744806559077851574401623002258626030051380476393745591079636616859584806577027017435658258833518248140462922514515762427767299998779897515609014986711276746708285398255445440880725853864960420888658658103222434441760529792532449825359969594751967715364918099650061298768623559917637112697575268239705326090381986530373472766845935966229601042589055436090532346836070862675966837939894591058664876147724906211422105532552198470417446499287461335151818112485101456140264187586335694681913328632010014047116892269451680140758718942715000295585963854697308130415864832170892284753249341205704115501713780925862287757685053509306429119341917334598868577756793863342549177264664002992168363113597041128679469378682260142376713816786622185651193523111142972156163030011002843164470384436520265974385962082554080137083493602633770980608606187381692432582845238805133032836305541527623311276222602251052863576494824122653184884598102139318223736583834531128664699348430884420908944963093770629268584902372953965956775476179988991166193123563642751965170721634047972321615067769977155659204567086886152344945575966267634399625722921822893514157023579088758634071261243305592790992322266497013822984232631228228488599046972250046101164246815912779565700240255822524280293912044677117544848554928836342308151134701519060421831494698654395231832368287277868737906270996117215601351111076553557011716261750914035253950056317068303392325116533824711852036256049495039478124684254300527975802646209717453213175053465696543804712347629253825264685328549960487554624577390503404791529603766126357031716500930565002655158558875780629455852687313925112606182737622993655699055045163365600927749008000949472864569517337370222018080036603348731704603506229814039418483298553786731325642298831315015287377821928417813166568214794748053972000866740621803035197244032179711520101758719117828813895021744211311720514650112772316841911170017770997813843938483250537189006914544628798362644168373991483889319652494633845041806051920078219860343003065073578394111196486153402174197623470797692045311850501774789213918054516705974319600542657316360038333646389197910487632091560114720377242243017830816842648906014966903319750826775709636155658954358285791709859592419370328738199986345191165591655944728124975785992135575262373416176617192111596284540013887296244045456016081830311601032273024690912189256284793351860865879217432314427343434042164750797073335256101452093815428281292960494368022013545538831097403751949698894176119637552990721566226311183189909053560482777625878351937749405245826999063830906422688733197932300287936316626903948970035305952693593793853006467300135639528893298037932806927254361082546173736187074632890965503927572893015876076162273267394740268411696545731617042674287429591156568185463307143827928169737859836465256386988432041687644082240838881505069454482721568194404151130522663451759162029034710582910241158005823747620833399209151247399832815558772305981291992795962409978585154234021438647093927598780381653955574862786164655356165358623270201312846534770698523646244642242284232063455079272352186486112438231995147675592393071720519069508886305735626591107211874794729375939345370206596749982562912490726015415552587718505687967130159355600981852449093657120143213441523543595603117963019269546110028639356193579279592903869728707367097583031934645332769997177217205624776102765705312291980900966930689950055780563342368809493773460940484566266770099172893920387871031890141954278176302656370175112032291155472667984279640030908191625918255019145582129282906550233679058022878327944719946960852499417184186365536961905586819166532818293418813569442119239076864483774589352494254665737686709618090554376587656553556931244953352437002149974975370080369783056411159494641521856694120792946938311764077759888875602946925887920248806634786962302240247018404964581121547272496154169608496081866515749118850889214161594560835693099600019776080874965825917453486169583827883836497626859850611010192658245723998337827538774688141626780024410348795751120452758089808857101005462456348230701613501140032882380657307024372026067685260154093632488982509866277876096678850726630285095900193832595525734451773284355449370976749506463963352539513173025048666270448042600434335237177215968011125024819906737131183907390137849167481920174327405260040085627937395152492761922733676081731040594991912104490449496298364606723998017637475408659215011856822888357634965556229474688977544426176323125565770670100127861548205514704071510753646030117775636214800432351070882072391212290500636780942753321802291680138819180651147608969646536829482102570724059173253370894940694192075860985742085619710580047607952546899689098870301777722292370224239327525988558059659094740873633644690352613436740776015068662959098525948901477556200704552699189200577664466430688797289591867319405837141777710510137664342348691775022827351210032805897808136830114706800207730979013363992301749744097112368689135799954110258143239040522677596884289869862154036138460191937715146773176693341252841194205772104913655355746822330992732908382388281131220236610601350808369678454822602700117261158387618142805815883632985622543275934482013845038022210894181429858648289890233581533949323916735241746410433928650855754345462564630100028553867935675367069641225433825991571557891661608682763506651603200779711679131350614159536576612393063573045565392905700977033529949356596097211123371719535987407380083390010049961255001162807270281667475596318461192157376514739698656789841711384934061498782506657096778827551074257608581034161911431170885729193701866179835278308865330359394615683657248054854403802678708273787388123430143443695287877607538596455673509571304921095151397596100432363094868046001668037111101076595304490583457539148357337485200352662378955945990066634365930481272772665067378337477090747719379482229983294886031503244124768916469813115432002476132164272290562295974467087585342130674225289927530233770902843436446057411690514113948775782675933767162089534524290098834365548394528801951807929906744283139107926295005128428052178991391815197582670758524432457605865593410777703353662348633435873882461433125335885612959445437441606198307374954694946012226945214066474298500078705749386415836058353312350183763936332569732994934322209138228296985883294705659594752208580043671686448768298683861803681755463806218483675044517812104329828911626278685640313165636576040799100483887957918448466167995226370797316347215664998971273301405241639194424663447144650514386850565851852871476913074307026723404215007433872475968954898384626626526550644491210571550625762551496840665516263358961389206897375934391911796584722533220021462362279921273975163491279915631926107773179527152903789437267546619436227175006799110742511357306120702377203833373729471487360975384451998817861219642719772684840800832734823719421754717202555702965482743660300646841818752812415584767315142057456835964127908191147197453965725760884778118437389509360805520550787571412115944137520149673644101561110716509498806423016517071877196875257129857199052310304384246413114007341646039274432531328399326658393312092783245886171443255921057036216640918569332438230669157819762998576998877145032130724138482256674401478617853611006994563753194635353131341007981515302593675953944295194668505835633406915433693637172467133226798452646628354233931614436044071721921640462478669247968386894032066803748582735322213566761762271310223619941286160596065687438207273318454075173519129976292122887807110245386737548660573655973545869849047674852051009876787750782512490661839227631586781046511216504380825160255318641660620055746003227308117250034952561390194811663480141064851757186827475926550307535012006429904265202566650443468416963095443533501406163728054873976162138990872584858553661909824643614551510530197961602354775266463537296339911866119851403686275820782891890532830681198651143591454694322114565997902377883468166518206373598254201582081985226448601227727125368359689527615636696987123139103715090014090733319116442056116274228171720601157351627288190069020240589711114468282402456810724894875181676108378983427539567182781186182699799341548320433404955917027155840486186325504804914708678887313063533529060875518379016329727578974664275763557902913477559431596781910726918415343850438847726968604524900612764394939068041486787524609086279402851767059228981948044442317219297168183572968168969746720133516453625096800361560886787227227190104058926594745920943277325363747902872951001167475192992542061362581586674102047542887457020678205295855874738069931544362960075829017029911476729095908687118815171288519161637324574830689191866938502903042436631074875143093229301222718126587280522454888890564385921221451632317054633544053986291040651626115173244283589906863846797824274710967106250662597785592185324523245825252115060855472985685859105998685889707668853174399259908954276149032937709484377158457988069365625053960442164535982274796411386708604528313886814925003176608381049175433568710799981534155580105638469890875433503849833835031464166247451117061009824768838216624685279665855273145955492854362198417333025425476119465264025057453837643934229792698300370133557889025069060783274266219016295849371574862380512627585161384807190307985326864372824892020157148352390794439670129943969742415771257410736903683804311965932278466212166665994735109581167014875071583423557091928236913782157912917022173890891447924490991042528445787175398456295266125091306402132204820059427939421760244416621467056167860646916027254604673824346738928243009891430944825737201423253383105962548619783864805357107711886822481909217456469539386375026145912041809766383731837313020065377273960024442177943912317456724314494306439215274858205468035217625587593256590309102058660825315411280414382505204368048303073343636601701278053441002466769633912028940035070611865840311076225347738329577367366600903263741046378176467639986567479082715212513890460231095719821709952727084252433964606593784302837999511251821314497529781454281503096984606396840874472319680930108305116327497809086173321356509864465191291998969553896558187664671229330142777887560568777193472724055107553017362269117915859555818300042118571676304157865521345127660646438867934095528174359358039448129847501669952425678829402586383856000885518392083419150943561472244006500996513781433650176435667359113407713904974948495207786143629840466617175486843319210181104033378124852023932600904842863312101900902098413716352513075916921667967130976789085566548352803628247591372200624438986055520948196404560848362381620665829152277386301936334084233407434686077039130939765188665233464785827390810057028288458329589608704466302797694651760247527812774931288010400864270163435628552422283071793462081577222156161360819959821190082792499524648256588481088727555900426989296959629875899546725139585854948058671418490087496904495261615130054771592609088774263226171838386283031489674383895941458072762806955646636841463073531943625903101194046302716823659117597635340247528043880337794713994390077728525616258903180091869821715345578335331179428173672935016022328199233413306348145809577800972576576340131834080901270720304761601301013999890740034636783838148207029341474292434794670887394073675996687253894532221855175671315648013824703141468383792360167607487381544192104351366099932584229950075136597139475604979155993663630428194690090725658386886707653470412678686512122455975290892411055946751461201174231342127174325478119887523347973826865460749783838593406061977333833242731903419186270692291396454679952480872632003793502086378291843470636548961829689548740144808658835537921374526457311648622098697519607759919870745715252981455254539223371230802541328647313033389542325790206391085603883443587261502293194462799842000612204396284202570252045986381332944340302155663698590507531490916851658107923974145794678771663801706483409278138327292583175854722432482440913911701182913383489836202094821875571938930195531548293779516786031090061621531271733665538135609743752395803300412671994489104332764288106732917091732969212789749051468613891505616161133112489725382686069239226861225316678779442932588210508742069835607314076053468319480971290636536457983515112112990564264611021292356996283298933979881927557885385968375458376952983507198602986213039745777612967054249903759254972745505943353352646678893739384900254939865467746461420331864835167338001072602372271790395908429441140141585443202486193008617097015984719913403226531005110458828435281588555203858991157080803237116271010489364507182027417169143210781675215260077313227476689899752049207929229390177955184504654019825958055644609181854327933880395083894872873707591606397854775297048801084947628533167151975371862667623906152790949063334219121649175729446354593415739245869685297792048875036520544171179396864998455077886843192172680426908300900740106313875807300884427585641098254589643343180911589199870155965651842337196271391902969462415720680929339648439532494968062139620340390035055271086724188104230872044505618542603995155465103348883772610345795193021844335843199953485427985469804720872331877316739298380579485379096778487449410155015430641046703385858730802751432356575811107204147480825686215560143854437071956701401206640874664706851700709006498434573958845500023500660999241497291005683709792740943829706128370172981402811867891486707748701776041484515631608451607909230314460629515957435457571620174762494399368635882325690363860466488441754510520770380057525880445053146723167062585715820388589051860720402605202985783686255243083369145250873681068777083647430919113324999069325265983569665649129428429008985345261623853513007763580421104767149142163076149015232383271323641010965283921929831747220946326723657568544942533925620691514140527594753529222091727263563363337127772063050145120587953955716064534199481525913184870102744447056564821330767472506703311365616181378796368170641394032501051539863665037338878445664170452311954462334132033085916266120533167874473453920488627900746179551899289840166156478970254287240605241827604033078762146637069915228613135377334333891871269097124011831926807883053971624899799159467408085887274019878309910067629686765427283233298469221909523815312592772626084227558229517772508733376191270161502717411936711197593276934405188712502854773296829807885759666342014663342029805578109720212533298414267896902651751097468040188720988956125605947810813109881438381279346574806960520243173057895990955903416737282676288503632509032386635783100808275954952537291713068830656030194535482459226579193374992251013994723781756423640375138823193301520605552917395156218257723484549686472750391227549926827043659238764744674979812765273780332551442057499611902000657767237812598090764516852702922412813129223497724163150707423788092578004091830688246146853590634743792397948711428859724493353098973926929289816527741065235960861873978947561675263607685939030989992602979326497169906296214788216970626753012101017861592419214840649065973006137283449491785089660629177043093137553688238253488555354374731423209010511228812794508179344895377627447475115897000809446693504508437915968002226527009895396557071820059556137649927430367513613081282424576487183313665221651253652483770308798535333393764866504430746986298014909032887238124986438647854904322679062612377266019471652270953236446365844664191565606036440480225096084248651854761841181670304131230951432112198689218105769505556621777491496826124169523733042830172653146739326262986931982324730935649522270217065593708298428664085717662418778536790215753907442918176447621625378675985897917596919360194936030128433921705101128486029702887294405861679125577010302407222213029046729598572308964155600533769805420807611516651533580680577236136475253079073371021968929091850545969457589053816900370439542069277357543654964518689685225783054590450227305153414970160020518679431706645004637399168565356919812864316837474988641498360220393435980899581715933254667089429960008333635285842278258699089261162068999461985617315725898457584522263574388137325891899549962625426705220713048907207782101709460436352604296366145947724999631575041759697173359581987903502182686612004539794000145300934041221274317881882750436205891019867009624498561357422794011283167971384577962717819652297622791486782788005258962735573429342634524158147412547466725803119972422518367598696550253306123635958482319507210415269806130562126755489689785554823759287929239743985601754209044603199831039501907670773787755773789130540275447276002428211014707642255956681139997662036646234130849403298203620440361449809104091966636893866592222478512891681364830736635599927165261032160995417516965918797914632923542070154722230226362822332666073299643568589822992676803882567858669132041741747325962773789140998186027698233280661350941559690436925873550833913404128263897389589628336943766816458233924359060430423594260800477531451962446208472134453416749378924187220383896793232593867821452202166985446627789774415905035164517925421568557702443828794644918853392204070152945868044289003654367215665129080706014858287493599809857965767294395914327892799176709787317886319313688572925007423044923111755980789797899089591345641533118695689495756094610286583876788972781036357801437564765819384311581429208219272257951891146843804945317417515398339565954158860315512729461684567066962891725318582122181518355113168371552918790850172697485163089071779715580244617944395769107917630076893626144312817824230179909307807714961097330810471576132709461276039517719661284219946435235661231780556494257754189494058372090605012359986542140164508629883586226242396842074853400169586641540309775457814227167356250495926174725296895821634312867415754541177690686122917716910049815075029777962332594031430786861180972574152889137141615050914359193296600530339089437246529188799475803251758450549063080614911938599954746956967103473105083525570231523233715261584932667868328375243233205851423617364556372786312880936471157601109978183565546397901840320199591380587055093129098977833754077036876780794530964091473595361849857685594762429838713612896666820917793309725813074899304986653326424933766274944484370145418835974744969907183400162488096735900730438399701160825284887783721705854122883378123149909422684241918342868140956436677164295523203128078233126065743532972353212195683310961041213462269857305820352764795327108139827620356670940351111129407487666678271053856864110083814262438580446856981071808596354865823666226101509924247564490738585656277577034876662275670763448724159304657853082480755494218031529901106157935830153543734441529010120852597073469896270710794236932649884221957271367297143301580642476646735214238653349740162584796071874742360565662439364391930226589139037267210557009206212355600445303789669527235325482492788168140653888055548305102599018400458375277874927965468999289392737048463431423352339921823237448383215517368829967822648817602412934858750223992638402291988939430231871973807336520949755025639145819142625763211267070346960735945401984127044814101605501112351874971542619856670776758805965855352424761379631542052676126995380913538064939987504486141196438730649188305614335697795507919793066465434757663987785503230195138445845330639089729782943135720277597171211332932206203205578078965566721423604576267459442032756714326852053778382932794974961608280080784927419743628675739453403869527386763256046867859282970968798316509038835747556311049659167177742025038503448061726933906533987815109622676275057095696478035148979495179728327262394730738639626582308215666265824778808942330560713130188195352157734034652767755889920432493187905053206478043248325363779048757115431221237268695731891889014303805870216505463406017910050998565580832834782492579106712896342653468125079277275035352886200115026418843402170626136606307765090017948402179946423387671958305058101767176512024462734587585605277101901174457625899097143609195825268658473166727820998234861790018522289521421877496068069687785837590966240120418816622163169517445787402390487113607590842845673613816098034419483008953611003427249538558092199236651829003489049618677608020232832975620643542780471493261386541763222839278326579513968997906383239800112447288266942698440376590974082842194725934880257799585704234263750432188336933894232363554618933418296994496282611799233680872250597726980147566982846453442163336178382964486363595408063222433820501474706006373085974965646746753100001587521221735528642148911874595189213896511829087932799501608126979031060590908228517022732716548460164749001672366930015175251828565255266456738272525050072422088707162684327654987478467156031848545371734003900176236719425471459251042725012860560148906919366085750340764522789913434900113828345900115374652742767006880064583893424726126676377546111054624389087352002531361114145866164366363030750951498783880300005300222435163703165741030111617922236976811789153972369350987527060480415060864181227798106704805546525831985547492974161485787678618317054294603360951600985607692549220231009733369669582474571113849341858590106937118557721947809293480454967801555064978707175341880988912779715887921222572570223643661138214268275404999662678372672225881759359183124746649473237586043885275538084894755165061252582168625003857153021235934869570778363356820331363329541520354580959212085912563353918385115723112362558858267846960169103042958040087775389790589541060620825805175175174209989215653654916973813170563100364760206523030870827955046698154515577397535964160973583584777282395383083103766853707648307681735972600888846444420130636834904564215354064901642242864787228374694775204873815930040377242587279949441924088984076659887477780521307006498399183595897544227321811902420447467503899928426091396257467849797376338345024454292971305072965596137407886153902423866033608355848703388569461675866445428189589243763214749911366778404424631542715288269961344332735992278959750071792705932400780720503525923522819866398096772782217320236694481323764457301914703651536898353822760244197213148403602796090673233137697880228897239684605117544849138111604954057040058684244136689768951403914127133371893209009330033161612532552453614005630371774108313273848890827281560935485965204099212456596168517785333287646625130778256570850773696183568123501200251106643419685498316552146989116047191528393309839977300056276338622763156216220110134793245134441026764756508719672299634598978163519602705347082009623919704023305003908017582034388668001064751140069918029321649129972507683561626099841322488698696623950155340640540617233946624352764107908610222457580541284455248651116571611572609894102812669797687679315429902174219019066763063832665817671836285095644133940054878120097759190016993415538177916680140116553608522353357257227124978920630021352790134265424485614269771218818508788919939947890511998098783711507253502090740055228131807240430372434939205845741676017910363896399492019685660466055970508098111662693583349414605512444757703454358793940042928506785977255380301520864131288280077554045588433647018169683593304349117886276033126790877915739950618514138153871547907100094593242183377855862266301481152473605472249395229995379280801741431879557778700558887160114515798816460222899189877947747657950395402453050759041422519022202807048128128102890161867628452151159691005883105746033681930876016678898562586858927959838926698399211399204647698572358327542192465911006120338697619522456871058620930167098877065550615115975323921076308390403310751728479696544882195317445825432198673257549443601050396368629671147079530398128414781611616208352140438300786567005200999373331334763424174959801815038455325879571688418383556722483446136554355487870205734600435585686054639460252850635540212392287962613531348068435878474391048965985113185795539161253559796302257255515303373852867672836748162719823875271962336349799494296749067396248885559045980897357623030895900402505859445710435445766845963666805852132826152465054971609973902927854081873037020663131076318536659365776351687109701177388020905319824622327429846325056608313807379438116103284853762705462968221076615993677987377986021499540053749419444585147467847630581363164979582295669136694929762818677835708138606340785389919322463196278852799441356956930957316502433752389096640694640106106918839433107007671703320140173164448828086120143971617211941067543148225584775202465790203468859700296484052806935739355439219217832564860128297207754810588842692735430931098747470870553256054949508195073468053018784041329508208286591426815621034768173782375220283366565408341434315708386651730473872366628202228598212087608621123452223976233127060472510949716741594038159053429479731575702183808212464148368471583757306583056200735992625650594267958832610496885206827219254645588317587394177141790349899597680075374788357840631392666943440172978847419443490903361966056776120529216307585086238897644512913497272628591462859167708447153010890974367091945564996666425356194477989797578956299311078421164646314400154618746988602744308400668730837105178977719871196422930263035653269913547671825393181909387173915423074564994556385654260460410687523689817882523357852839484206664920920480674965035357152518386797251656606091719795734407422621865278872803273854688510500973664573897052131042763001979318713813640936157460312539213627416624086679310445776516925614499894444897184072022736668581021026207205591014824640335225678575305930086126668734415133314536828807788452937987706235053591894550250004508423569764238325246418407977679012238733899148214883142964083218576747182384231604888012085053008428591626385153219202248773759581448862857788272251633352664862943318172703787401780258454286189634716254503269331819967028847522436167450419347848775079406076819475977346684825553405799937848630433235069743131639689664759156028874169396505095235739896049999663489385681703467045064545433741946853485628466534365880808315729975151608196498060959633680732210344560870049744214857199316938936091743595577809373513871204689772122890938121633371564246451976890639851281811204701765918923900363817894608432158125346847183219339955012812789949296696472960989010344716432220868327751701033965559399952021778142626545848020101806694967216670061645238964359846829513419277216726088506863722379190219766229969031965544992773411420829537070536308036779419600119985214782597403397345263290206381090117215067833659921503372375826031737191879362085189384145053343541868254259687522957317848775831219488149159981857492114685400008043606225024443457478450729868636153287208512421184960718776942246993088627250544382705624021655606665163227278034623802341034201571782239099785554108498164690958525462770675053864790747189307569129340077027370789199095818242388814650483556848454588841822804295823237657136393618952239263470956305039481413929783964547337001450195251957224709965715125440631930475433313566113891942732885377995607233956057434994492977418620479117418239069864961629666596721286114618915068238786173085575423127276568852679028825070445469946448743413709954162343117051095461180153593281022156776970499147558569451675058924717568178617104777671409637680201223270693141056487801239378283539197297084352182387809407579325922379628366227068118907033732927926589669560953913029825001380547295190033930906478540258049562092014115586653540587806243662942261058812750440127975620688196890728933813215631782113893321505233989891031025336212997407273305695477629745034981920032051049483719834026560433850895311384687203927993203308469284444684765271366016609616578644035116650705135608208484244142891780526249399262749629467570240826647777016978952988590478321645166890469335161861400501556120311804046445484025559522481352879638293430872462166799964180911726945426472822999209220968397162423083848172654508679354608507469500945912118714550229752261785006286596270219580881737705443934743932680804114756450199864461681039758288808192405717351990795180049420659323104475047837279661297168092678428442545824941174398649653430418682741858787286854132240628302262936664704264375177246200120698664629447492721794756780118500860516647682817059430096812484347488772184650763258574939625522319767398506561032112343400551917069973953182525760298914387714046225186385820944865682771506051540057451188463022780241626933462675771329034186186771348513699659912664449082169073985605609773626632342606433805830738169847988293108734009564646460455607240828832910759435836672791522315071023489063934787314152851967338141315756489840670196841138941659542380979130751942452459500259091061929439373811390518425169425055811004380625374995951330237035083153823493899462263205362739607106695884748338045609222766217454321375371519921925429401709724628528880145624218243330577010582129870362742560549691245128648283849282756158407440272347718681428092033918274115510247002332747184391763577654496241322281883912935703999010421910702593666248022763899358010365734517172048087764311850844249798247180514049104010430724253363280653279332162754136495017283001848825286789167920569523132118806563256151187172024856094889723527916939494389999585518216885785969177620554126655084932567426495000759563436834308898519633191893540187511885435979402259698180216512919988612647692800522416796303489247885958886982984419259975973946813010951015224055191096348488513921681492452000767241445611370872248042505369665041183675347394724003582828261294097652822955370201000012065885379318383509975912907704849148959186566699564135071800277506518005227980986688590113795522408020124782956338007148134590120756846008522324550148498920084551782379222750094824949343166097954155505950044860126077731519809924233059279823352217309160398686906588320791026897943091575447472475185288098009696002260439929162302936446331803140467390576411262928608727429286097387542212105988680658570697486689722407019462163980399735285411598046433226025092552982915195950619672988957443755856732890098691816169928970239057812388173638625041154696866821509724548578782279204873501851442457188914155908629262376910453874927681578105866616688930622391543551110049533284324854707175067123383039295116992805608093617237490837460025549993836341314192134969574011970511992023525441810215668111936165383180711995603705186617234681496753865618698869474344094549592633504699635898970887510081136705057612129740884838169297960884626503168104538154511178170936738951196077182919940903236997223506258527772969730923238845253424615797092102522833345509884577492805705540318832440566947523744860805300230483544628464685175254264783259109795823394598346401348419212563266150110791710516850240314214597669005180623396677365522393164421278205810241364397374442103863089646809830848068954080654774384989600904880999309799228085924462006337833716011158993345647957046061543225593368269558713000309966621476747427735069355788335958923755744364502538293689627566977218687029508403229414049008165244085569028717029348531392553217741191779482618841168291959839338492280294629018730566789737674183307239003372244954896423747606543106421102185197081796369869812824758298076254027601941059569040837673627372728928729862005926358337240040146540564486297186371385137811505177781165991899973341674851716824504479022740183790004592094972435112837010884754598881116336874862706021295962196015141486015240589384918128540203531781024852812650236557549237077190119683543859327773747787221352397225614709969953566078802730620340321705297593033883491135872824889052563537201426877051362079436315234330286585338541994939780450702025583434275024292587223206341344021053988211634543862378552031337572855273408031847012058361626976334225676412994160924054338173137579123936710691995193142430350280406461453949848527948983123863163529074648060576828500745521746013474409248146254025383537435094626000135603207479651942048415660616413815921207109209789251710987801950140725602884387493538786762580790932117858267506755180127212159362848094223291103145242417728375322066901354579973695727103208407669080248848308552650474594648150788214726685080640755465451096160809093590854028251729083518803287547477059032144158745701616889336727378940340967679626609247779310818769848270454015508312467034663644709005547192751609811457723600407757074234255819898026089167574234572890555572984749414185930122572236206338223492910356572255426598460122741389781100787881087153479565788069957548714562886257585900057357010280100802803665579956056191457927310528565320687676444031814244425549909079826768053309692985832385379006290965711083986912885321532168165821197812609975937288876909103873934845714088870535046239538332117327448515318109406771198764836465739518615672188036940476776165515919107530909429558492224930836804313126858292834376621841398340212650534678169934493292567248200709072725674190065612474015949224418925390586602839632819384060501546844563664197361266070298856795044798355363514680031961702989222697721983588906220528459626699971784929116208762022701970986314717430237133654551645383061534913143184362024143761999605246372190441801067269892851751777484112954839115291728123869755139638855475560620799050815480645326143723778851705341333245815906949777233173409123586279420896054925518151229490306487355157518371359859790287691096872912318491009590408816767550416254150597704058471233195269882223170443631713536641680815332826436597169427671049298247014335955652683541170437683654121598318781801758026875187922455741529032278999318070433287405742434368723633574358571022765519556000978386571284421716412464473285277064967138844671162834397161482138299233745436050106139900180729840301984014317972644802505223721382289184658598833718105020401227436174556911372636280791920766251044890250220442300088281062357244548915699294030626292432338293720309756971924062098532132209039279605592224475999711528244819502214310730053542641333677831463985104541792737155076745868447064876475230312801395715100665094754261177818744803696405638575023247890195249172256741803574520725763073765483396583012359143007803678205040485922383343350323265417436345296987742486465652549373625167416706127377787074243905728778266536888187615636553570097803651781216039262293751530506831488449842221413232214592395187780120774670513091475528901631608757543159966947232132967927464467688712176887297762740970054710666059473242924815397886771005537890501956037552583713989471181065519575158784038252127465930330185387375437517787639347227399513118874576367039802485258883081226145193716939131933292232761201882891975057624399397898941817346141114874733146054436973072858167684516645722091350930889139788466006381683022173591184507424267319636546604598463353426787151910403571401772261837241951285574317772722974832611419876161213294614289700431203288590073815348383443974083917801509353237374701432033673628100933587182982428486581783213578133536637987062680148555903031671745003655948872094678280753811615897155658897772369177241902905238761159989700520277811658607905491700203983557327356003722802713092236724207471230680921205954744511737765025188543835355734339913537636474822311072899917888986952070958295358330566934011428774834244047840456189327712802128843468236681850829520360890271662695986250243068117633198010982136450966637632650793887462884168848246756432970176069999185277200023073084634644235231575779298798998651556203689523083488408023563712959534042488781282895693142735740456606681155135997244173521353524741239201099707401176426222121798949945963598986873075070094344136280037829721745375251726789978305472456392610932166231997549718710199970989280103277351583787172221406168254546816206685998079241329633052013903770424260960597421396005879880836043830373496847684029052984634941931754179663974778991602006457670783530286488411652354209624580195059388716444413734500046211963482898521512609555198745183584837941202598711657382775478455141992793541740922023186976245503019181030662480270472676481226459292471224177356382032021760803809030327640818265363290411256535505790676220069655317944583598977611505722034524181352623352532066465811038967146235432524232493034855396841595383961107649260910995273694283042564390256959599713354981513092294353857871718567047765016305495757059837091284385788983373047327228642617643746515007225263056424248896328272441242489430973198474566457868947617319162587788892174563944163365144265097537039053003079627299861185513731181112364192090020868379140044649423282764988311292566004046705640430146281923609857941579170959510538910070683733679239307835470670157883297450606413951172601713234225097985777069492546615105181461430700568233710051320710192107147135170160391476726761655025417093528654066103085599794158728802732133041692042375072581820433166509072794181181381430819066148512606094133246172750537481374409517891710868828282326678025308787730329926944333299514389150284814640720098963370034302102803920340258162592222786906244918786069916997149859108067192017655102562163210117118306910225030444396962327701517271723594993667283726121604269977373573079968991694762266031274547246229505503101421133682144812056025452133706316620728103164909784372854629918968460899040058229890745250520165643420610026462501679679653069252059304315261961297867982957622246538396157567820889423218529311108018668444300427035862005361661232725519934239803265780444980282289215877958584088236395997827730462982457558238874102964857917411057388811084341860810875117479553861390940427533260207106711026332487523679834847018647356001979239374917734968538496704882572240225184638501020886465420137942804620574592797405875009478475849308545838774764878502418417995409822493595585180082595015713898176183093785274803022355254825497054975025928177175777252888393982591228515587936141437607352123209609185194136606603894533371264936101054626067060682157390824401797698710726646416696481964600367466246314031719697085104475524530154153123416741018729668466058637324858382986256082611988985034563990131839691678519501680886904197373079867546654925967025453307231004326587450574049733247400706963701212378731893135963794590025300167419677077309230949006268576972028851117730777299923837966284218961427931704827903064333621983814102964293640354734656396455443243736682216767010786813005096805254840340514580290183012964638160950123051435255356067700709410398422827312753319024386474095890219006192094557968187076258951846020626307343451685725986368991110313603640463690864705133388838857522501792558641195660840037259514817966964699843297312825379959164643446436077185469943790264776701715742139451528156438212722802905229418505716755500448831077931156738942445849180071621997092625730444644326407716354950946954635497396674449210448308500485709771170686637557291880924066228208849351754368744772769838085045657716229998267228584346527231826782473573524332394836951155753967371763913595815974641829494496936878805649077884781226864171490798657406277071916284396038739510018407042594727229818829911975997504280733214351886262280375879551022707905420413941564472572158966708566422054266440277496311095423275760428894213009620586981150687518382389815962743408277331879262053418364297211952937584336601593073768549567176096119668449411329799889122213979864417170841365286488322200729566410193066283188736459074684141800262754395190252073519723236557785218720586888508684097360856100645195143588149999866387612645823534104296290719725259825327480005964415349340613564314907500263805337910035350751367756039263174037359813981396860022818830181312820172673929890167573687823570011468678483720311456850273701579291584387593244261829913150367763645785096061503021239784457904531392494785576848944927414782949148739494745912879805756618122120605309733445004926658439844678433841948871300250445149048115791450263693889981983246935188792993983119046608773283105135365044961895042832278135101880641522285030761147317195103217406124465841613932065603292271561410441920082446334448895643425319354620551102737532424813446469969074175469806740266616308689287603494388002950050177530595419669531677403258558314930831389622348459229311506248531078608255442437240929500023939469978452541526737484893778230418309885231551574981803553749288717715869717416359857959552593927947489277399381159263761582524095953509576143112652110530301777933798377629747924923386978806660238719736731967998697857825250346345981707610586693148493097349716836501629390454251697702596775285206200964094901949104769114464337224606697145969933975248098105673232383357345962538338762559591695396570372459733880152407387417147624504026043951030090792006668466251122599027694065250074422254015615895248423349679753301051315432076925246614370348734340079359576348759492140361881500496529046988997914171711456804552252740897171729828476429437371359386558260337740980072614511335544089077716631139226110117255904744595421333497619149503037756721809230640650167488027928012547721166194810941107315457917691504503630705500750087431027721367242775234425506013140947222063591248766439315845501993572601180959579819578778042579248161701653326123997601275195182738349731954143318784449844313290729661049690605663871890881946518342417594933801825622118791719575007902508362411639695323707525093827427854415429314444041305549198559466466157102911828051478919398283247062340221266243570672191113706790056271430296593548790131546617240577944105002579458350806699162899247689752951784230963212248333908082618210310851225322977397662119643676419662961750983110594493613663250633068012493179985433427711976787126895753760443352744257438973936427864144196160465973240711322006563741506517367971128752806970464032036307644346113228353030979978167718103752891512520296137931077634469804686310466246385442794038424722212567751872927518056714114042254789241715081045873347819016617507503720137737666291557778608982583625367219001765007741900649011267652043117607798221437075536186924947290365509375725294783427555909659990514061273579460319651651417208578578613777648505105386391224273682453930478358515973175724362514577253492003051910742274455659714437054048908433094219329008500193150656598512984527173733233998776250085950873483830795424635650297927903537548757581096232743499614453533568767061506847924076642559206927799985334487764236463469769444941813507346596481307870752950958037916172555967585670185800026558288495682781698277998866868167852749379986774539433182652310723826833441602028679062096401066225522659964590064316397225118703913032329733511799085390669307468493909965879269068841838180358574367176730211976925327316262170485513627441293155817440946294588872445091382953785811052116365697100803804018766886362227890351026550498313301299313901807897334078639570665305634555364613551160424337939210115700994705432394632069495395570565174696806748837103410053103514435580255578760022026639025320248630500727164799843923194906790506311616257084391055645108190753190581818686350107155415659809222169107663773213824333096632347627044056712132567359919690297652632131821684672864103901684472726306884197317623273817294189206884585807803884638382637832593343316162504844443988400476162208022736303139159332330520679994727543401325470697045053807319265272936739852776259169068376661295600107701669826366981955085384135804066757333777122710221265174585016292951940932834904444451806364262253745045037285691811129396675293210877785763635890179724210329317199802683530263674841344178602895012084348007582649835576033429219231327708440060810686341065592361190854462370986472846900013555430469441533297297705787120289762241255813925112684557191989469060495318929831582718334127233040338439475109865385915977903754076377141703226741952339202117026195494621657937304485913168075318120285072114079424297327358337394573954884686680194278297191472693655389372685207584731261657599934881548354826078930251936576166196702784534342709741417443166773551515009561902752617348328945549766465613862803308172860790719245197339752223866479931072042180998812055550691263267941084569386455838600158976025061825352502843481821954649069772367088122333781573225606463303215183771144734909578430154339660532928921761474884541748378637855519073611824472940651328158435314852781223043703050758194578275093829261949358505801150089657888179046387342409352856728666571959423929086268035107186536154789905745503467635086920212226936483136867187499647347180336395684054322622544986531879291002361385676934319627813764692489907005583549226736430610478433142885923461283051331482579791002329525637564997308543365123418593337951263673845078395090014257611038993098772965300955967616371947727269141660293165357839490679151305992391787866344684742613166989480788840345045406153243724294448581519330344130376567200922680466122139482050720520256843725345303411010577760656896225343415909318927406677615737304114406419562471585226105939796260092504528345062498298047055276501466466538297345771409429652645161204776004759657723554329388529075744100020075574700381441110470012876631935625987284249958187538972824489196519844933349143757068897568871247468539724028703922508760911098240459690589816355313308904107930260026469880323834863457954338990637440169926829594397364785511809824388308364886827931319790660617853702962363228542444848898194608498070441882681476338505925653162030658528798055869238800061790143694337319595653314175290991219259579704960310559064075058720768810418404575875157059737989330850793760702819359539030443726615222188712260883725076780444227572844108481728877327158500521691762571225005901298689149396980917190009068046382084887207156494206419224685141348508028330504268469035162870894665813310693736668743065437838968876809323208877212225875082785842921206127595961891058818682598938908788848069897697579262778852913155669803594654585812642428382800827529241683448049234599920539226364270936036546925729889118518997695205894862391854453258044134756930886016093055362621464201371026374206756445650738424361610267288203177842838791983790860148366182438338659709451923147257383073540005582528900325143016603625781647752892891071353454636038424211173904413477475158978440905519724298285474731433160083239680758907452994178619880273666115108266465245561809705332832009271409297813076375622337722783813227208841978007731469985730962824114868527676806200717957165818055144830705835963197230274183231021615025413593005655015120715388464055075494568942788288195486395867131674946278458794748280525412653141134358457286727653411293265426325079636902158447905941818884678209217330237930655322425012092503944732935009574036936637821263485549756122827437090554801726314180996635847423546379932297647835105468911875232345367437059814240523689855742391994873666026633942976012840173094919727971895075641832830090106073360338049921123389381733457764030466782355787671928499340578863483628159886162316602842246697609055774138886808275682096629003996774813324436788916951785306735995638841812285814498329073006240934920382760993718401226564136594704825829448850119476909024368683817379537328351539808747322151957454295086141865196548305625851337226897528376233913046920980063531443188651206242261901355561586839919946891267012028848423209792240306774877465016289980906171192798438982691049152766822414016133596097822892704453555168081724299443321102935703139470115881116707178358259588096542220273105602212418802365843342936847940898288603204047738208866510736062418376118861174520628371555327839867573718138825679699831160788172198273821110222157838478016155834688101911507786648085053874203195594453036918236885804509163359672857437759004840337124717877398615267624752830949923056076281667721970624846477023480230229766113377771180083758056123602596514655539166698881661832736763959831612850765767667479000286058534095164588240740580139367687485808633759837003248427672384965034190300217476081719544507435769867462681142274313639200547638746225337145798432734951487161912825595151765193210486200045427316922409893285532339107812757342622233957753091667279749318974604367094159310183971683422419950914965214836907161321868588220536520925707394366074496412179502436576868696433261525596907236190391560188324861432717316933791231469438815998485698130208025342623181707397036790507203938582780808994555051461207243847826938024703812769273135080895144490403923068932485737461322825559839242302702324665354643092830404812832028394372570788637010425906152009629302922343636900026522978929066575891820981799661520109600899204945120571124850263635667901438138156502811574825834168957768509969301506787456325659057586798945315530483766234356868432475061702740999338999401591150839991430634057640706785500887548827495142770751983994540619696775140579056063067686347820812575411079704816426335106039953474159689381020339077747291891335746574682514102927903511241291573332101686082609309262727654818698518916685845074263325562124070433631095764368167626625082424230515299129348259374670171014039419949660499665585302152755838157628917776757235591470121606322819550147059424346032117198850210928205585602873181736920534081916246279011545713825262835133233448423352219811150808586355039524467780423926440058027685491378979387355797749856250816029052194188296754281660248430615427307297305440462435374599914880105569988577870549932122426927347779075741387747887596926488649231298535742188311564306738842408092706025329126532053353168359033560520740163698106490414936039102686695103242696641753262246554413463606245767130491701743581831291913103939815018836172016194051643527737560021164868497696226109899143449009602015087830214946467033121226985343392692199293375307275487314240077225874631868342167115576249695655375069860758343942155977546220148774107120529451541631602091724929488583536462697175530455923881476081211850786186194262260142043657924970881641935897898040224711348970123428701672028686639382820094739754094146921750795655262799872109433187794132853175141141139311539755346262003848911871648715252275638323478661837135224496391329888488414947638126871295793609963703629949999003866434098742587384694113659899973970603980249838488645387881230729750345991453872656908779828873599818664660217338512395674260065379549937997871114527257339354694781843162861743545043638643512136826013917583614247931306990650115206185977092982093757560059031595836554984346238948294985266276022267399049407106835739245082155474658970296209726581635568369153497859472886768473350650711297595214979779094500749183060763038825740373363385796476066534139869437733470255970476228750211537891101211353497703103754791244007879307385644617977064087323677957087018729318758991057640556688655791958248104613492357012475951967545369759631157488573396254801761178349697967527623224919475379289254334449927972170168070945035055386125268763877931802796200354066817783883491514468828082430883573720722442860157651927616814274245536992790442968568184205134868713573040289215152942901453619718521222670283730141773600534597060641859445318075090866745973374461223874084147060777172737507077373069636623329975601680898711722033238984558083910362708996321056978411400347717464795026888249796017163864828390056145098397602113893541956436816470651086756238498533994849823555696687071322071164483032410807681394953573962361770097774065459032788154099029800189087525451913583295498437445726331778742368559021107574967874789538389615083164509344464359310094064538096084029899672482669064749756362313332241286240968535167726569898772349269048722053278685274857037734645091852169376259672609936744355886321367701347964913543840101208508106816529787036561833820368765898807600499443954162051470878234256877584147556676250161379335510463760052324357283370025388655206657003369998845863052328042746391238307634123121992654192245028481563949932998878116899608954961759986173202395293752971723564457974230253502756049879376936470706962786749541368041493756311149270977802462033649057967501520920272845783245082324246599920695644414767407056240842118485648468396555147261093380458364116961944320036094817498238992202412019902659339499366849639978112285421906653382775522576589999299251587624174442397716617255021091668655277890342274796584417326164751863698051443638721849723465309196052942716834304080143311350569070535709552056341273342980180978849550138127990674069854206579514046651900502494038766950258967703603837009042793663158793463039488844060906268632796220833001330025945710578092216541479216993731155401815015087271488438378037160519063243400094440000905475907748664869784348791776729057757249325872199368387150029704097359253680243166187406849621655118797262229791669124922300522120982309856385110423415406069945074446142102482832668549752732525203693446918710322737596540063430524920412186560594574727467827977915222967786045850464348415221497600220097874326628829830478538562848117767628629941013249620974661238747758639956188417352635089509986043660325391247758692206424587597586640633218831708694094992019177630271858211132505257151022199083600815751267908708050349002954177528274291787818571288251422544368853887030193777838658634065171639164077330864256217930642586431326549002331024475172219748252320581598384059100334280005093085102257312853762469263258221413220896826760960972976339713146980544195581094797441718177872076054975949877623386750132634839524337318835249524683307218174705482731260246654318062524963261111117746645587584602175988812363739353314754664746098917168668053887340966530899810247971284974565430948105633193356760204637222811925416350519341611146712046482023006315830105001241493180850729729916294888714756606515460664597624927941733974960767693625223268249037880611063162052274800044718276466868156416382274561984963422662853433303265504099434262008328038651351551657446101814893877721380698039266312218477850479735654711308440072548698399656605815210845747134448772587397825713058586082826466457747924268336720626264373448143030511493385370820136985013417940455125592832849297815224807593917110125836204706860957535791110021632897107717024900070274797018039673010869296660088857386375557200424699027572175808295274886828712446886732366508237309915798207835315606188928472419006283130723147212379295014301907881124145744511892875651127482300201698053722625594103590447763559339201728452568320038655617812480091152331970962514509390800408993151917582397047278832170167109274778869526215618092087000579761985003840677643989226130544352793439825295540083743134266657649169682774580259609197338031428550113629387935549970628629390621146934241365773796454483661201281525228951130227448645615020821403269107230024516918656562092799902031465049735815103559010748300038969214762577413060062945449507335102727271053449399133443637455200799148586098366917899109782182784466022663926154676792691670263087860738105910958425438169754254727427847203900828831431976239185655824394865897215839718435877163134691571375604459673091566649511712646703489930472215557627005092010485842795338916995531511965983144075500688197260000069914795578706302095106610719752048794709652791858579205955995994470422368793343540368712427006622770441775489595809904901985434039466432228108498871726042034117341191120334710739106578201966600547968706925913694425881457748175468775789601150682293427922339631888138199360318397562511861177003346769837249274666592433085062130628672307888038290684082577172837549354263348646457721334110224054285205065442806327243103480870536375411856447690707133858997900721627744110357017480501243631635303654595461767687722295930943847406675051542991798696026587455156908834315872982169433234635153973354477371154376608329099445193245401743348239054770994965667514990357977446844149770252986020803154301435661296659166927214791814759309992738558184318249210764204270102521579323779977420342556549271250889603313906848348591232588344507957878941922427571544264348565624825730918957320264864152458804819066746784048266800163249626364554155730220008644633350986791001743510551092598675881119065587186977405039604451372594553394429736876524005312305064740033681485161754469771221185337889086086867691727924353561320224116110545322440305720667715097086093447014670389979447153278771526630244696711884241722402786856430481235772112052736063269746323332372685705183004107968893685391874756133537288168633651065677390506311307884540807823691342110849980649639533919630485264254330382653576045569034872825566142127708033997914997802417644207002594108047766572201424815946277620012789309725774983684767805766973436273997225185644319439103460630563783925461968080216611932248434844831153510039674192190725074769272736436269844127040733682843596708655952401064597440828830923228038322939848548445730931911882350180945372536471940189927168572311629370822802385507008337711129929666795774578874748994773697049816788576325973909412623674050645635779211718972326177631151752348954217937000697357938980144437226462309635859524292799505599893534306738951049081694151449519418017265239849130472401585637208971920141652453410874626064214548947499688826152978577637369035040140784430788030859494636628332791462854544937334642960491593677001475051345529601677775358581480672970438044463495455680947088565633718417770481646808710162203748075646975994182660194019456261787455904316341883488628449301428836491218593821686992891373209629029386643664873264799514556270595729913065370990054747991310784933005804718827778743838415378596564763157582255332271434050905590209143774591145407964524392980957812718780892601322194113136009944478479068880875378123888760817632291609912213268943560497749972510175991774034935800544026748167037606715327867308530069636749300123780926086840896667936055143738248139005244218776704037332495518446781603830782267601328139027720777846282917575336340362082945227155376704790438599126904508371755349020999776530916631714019547388366106580749681529980824787484690326334970532975367358321637551363564775343669368793897327429514660185736897287572773940189707152832545875914871333159590194566906389514569452099245370366799305046828450488980755549131499531846709688520264544702688818270488796581095564263772921339927475912963980360986300955372056749274115370960707531448861261623265889675273444079292602710739825778471694500873389544988302489063398376628321681060214254280274118106543977790288072933958401004440465208236186224577623406415761027550196681207831073693853652002895119495463521501148522249511230039492363777397459804814508630185468626223442543706639949714729001679873015008955594927253459014784802043059927155522112505800144945085186330463554725701557783024964857952564483554577767188450963412531980753059849008769548700704672709887714801827282759937510248798762227305978658291321702782095138844355917296596528843517270778730288257177121449234796588597551164330799796240972172280962508977321004134667930694101064629389267330823397898857374625581600122254158080373731283474722137394725666212120065114080208888528564637570246240677365723014382404694797708746883141125696518488465315563336804178902279942696000424280678444842700071819154174820582526373533587121233366301584689015843541583058832965544484324305538136974586501562028149140659049457261454433143768518035726016117347438543194090729743906881188547375759080495239082446288275780054160378998759013436653368125140040085080030501417077268177651697677848317132465915034661723545931526169202135109868319317798586755885426080260540601287095281303807520907690992062497027265464013172616368576043416579157414663082925044625287568169534115102766058352827191521128923004960299328939355807931788423138193383174275210523762272513358527614336385046575918331054499093565120148031987820267245244963626985495071383068474556078771742303513336862074897960755022345190627892734635179683303492157326366664251581866251460732564349389544898222356587026896696204330867523255352312184858047852263125290302530141572980913529996468964697231777843667301471897803117388235656952609567440192169332978282914629294201496243682203354360512939024897806280313240374746663247428333451449852980846237256360177624584437764265938433918226676892090652178680012159607975652627270723787508119519168098026189472869516445481045571343767593044886470811631396799302391184627677246757278762181518365403445410769909535766084837125546674200407609928857843223340297438378358730848567352673081327779119809685301835019708776437909948922883852946288079378452623328855181047714824991747940824135861885457459320381771715114439158178437849341522954966631700743835372167150759279242761140878679423087788854451529125457459190298678370523205851559483655912691715393777310468870339000167964254225465523736219693434187522028371242205095947060571675116415590279387013814639956215712639447428243398101721798343008509505954920620001080205963747548871241761226148146577177679015087228268273548839941907914714061523645565005079736022698570665994101802401404471702797102498339934544032726697413291336622298494137499152315868706866953205082257202251493184393407218488412791348726209973474167922498926414382417972628136516503581551088015494308551883227014357810659224612291386944897277751410393232927205943284648353490701035569944011848190083948009735951930947445618920390835123992589869480072849701214698030930636398381264038732215338316840603765836237592498569969903267749397354271702891108793778140797747625462633519765265846690580962067023223486071670221438179545157325041008310807323771799148663658730440527199453974392264978102405813212305758397122543967482927338028546140685330336522590701949220560269117047170394260297424370878842180644235689878470409317455559778992919090582793938295555287173972832536786075348213574554796998509731744900826370121422571932496294095563053469658572238634446437926505881310140848949824713652018687291873111413734651071836053243080679349598122408789988510503375788611134037512735667881094422926303839713023357856701074616391683242804717814453961843918553245060997799920446414965776544943961718570497912443402023232695005354858461684425145279001240105650009658259331690645107607876480421780520311924192782972460593163641370823489246214442628514261906224738787153922114671932091966940823490757106168150075944526757456284011256361508571722941661831815760822248047724999873687301539736093901712221013045695790989851921847336602536816323243364791965233764273297481181327342545497102829565166060027257726153557307472834327273832931883488590132705351546693585079722592924921985686031714265920587837135253709448894679399854321198133219970593172654937127068090357072459589659715639081924100032856993721595252130580611319780961007427155281258591735371890344891954580779006816053736634503630208108965774018591480502363335000151367447341436773467529299805119840324653741439908181122103217055717648272127120232232020178421152208269935495451708429708854784215415354027492759733820815049220057120074924034479933465288463024899121770120907048597286872693528034461264646594104930689607777170194513010740068243902287619307245429466296451590194438353569019775438474637888325748294285877790293624582916263386091928439439470201313921538878879744207934927863031948106993962378471794152446019872250478425750343719965198522716211907346438702074786799290938726781125831369124266616859665553023628048003581523500460214369493891400412573925284751341179923957995949827642596843707993142477447956992637507664084704712938373457288700014588376882232860384316297127513193958386766052729912047160788282975335705851584534593933115827841533722298902060723954903837203086149525980679438586468208912139602865030641425793387186899307395779917471905154232323380919652272776245591746028530740680990684006527705303747592850544759283494304947821912400046442138875487599464670689674410752924024645281155628469478793748103527138142561093277360004033509800907659366277898473093512654831869142839014434314286509900360843659895327587811512187544342179608351507517898628590873281761680872108059336397123122233729046147703891000487609870298433479255942941853037444576526921273498674429857464207994460120093937003224517905460014577882892487160550726513567291830797751529389079460679842677844195844983156371925572451073203072449181762208457078644646886132165005123228907653671585133834689696283321752727258491632783360381992518157341768564597481302971872491294480919066962418606744761269534579816685665153399490865268023544405778722190431404894802169081699326242226787725951793322549401142288871387150370572137199539967423858568710575521194078013534304640544690605927387443170221846634030904551613286199771365603513526878387515624496454176639710080006031023585788137463226147407442657397709874181316807950568299177339353133598798417289916323558340883928931924750114712388419789285688828384362852144711686974649839361543951409799983348617361893117336211019844872360503280380208804415579811616648995571239798419965059755368705643286906035029683666710182478648982344536050824923676993990194008960435028788722938590037758589949951780407316355425463291966353215876018234310903890351791323018363832652789768766360873392121867859392881636270897211726523858541620098693333117886257108124156017919834893511409493099415010087755217141891055835934911214542475331036613267461582843901716837169739974543395193682651423615714756943501959828354922331113933412344994121669005040788260292457092777406531513958432282244666515545777731248925754708558121665234028974905921466274636291983704027938094774943962416509179291238767289576506257632505299565093173563433166537289071533939820139328428426373298840663595953461548402684860264267929999288897269249586994505421980987874741738442979745658279737078619534361128558148977930489594470166683121288094010737692303551153083039559360758588643006038981872218685500878508112032886929685555916836271780919693475200633698239804928028945431797356437803387379049905215944971006573377718474031936279460849513889880795366603846878506106466468054469573455256592041948573733313633307811935412934692530524552013671493433718127824946759017948009472045739939421011279928656366858683159749145899243988316971660520971030011492687165919224737351111314835686071371838162115709761744248289842445202355360818405890516468893187246783161567053126908648221343310823627678556093516618311140642177296503548786298044388382377823453260227306083568565439731150437377913712869933542434171166464736713324356780320622337940023740581394790153817869528289420765287455518663484231887087644124169143573388000528759203062644708892682670270745781274469752765798724493547854707601282890804945445533561984718039011809021582739275337750993632378423181084740385928803369585363592743773329973140962513030323127924349592290855599093178694876737694706717603154724155046487653653607022976994893408745319011135983568363304832284690149499575444284269479013130753873493005332656732932140319178089881663411313421720495654227886823415911287945506277696605018017235182894216672094541716561412729711393480393879683803919272841636657462042344236973229257870027114062297834000661879801874650438101257064155756030476247505527600728668055344748261297338275945352797540989409876584975366295769337858189745594036514789363416873305799487534693226112939350692321935639970868062756828603412021228996230960862830630479138321776211512760240476948653786943941023405443493449754535906499463466410861870092964648908835936769843840013152041420879526303316315839637878902943524874989799421809433530999896619206622736893728500903098544025100699621034223237886160324315071834362489266937096953516989432297170426202417035685050054428069268710568932397968559493955301609738043015771220231193738217258663257940923229739512510767632013844894413828163034976601928516769224806291169602277787839291922108004825119394382699640480282051954664185088457942046809889843160630049547750743114817436749934689980273091243829956070090782635720506687317774557055948938262559709330294711639549208449699642563812974995508171799937725570633637327415511737221690069026830029642910158930521406123072028419482911428337684988228311869521840900688509917942279813907290829405457286233686887324778266033970651511969070991743837043667093934352556575110503606501406552495207615914747802199240181838826426838655082171189538093206140095414651754909779447709473476212539898757526145138913713087902590179288754762314298541154989990161813257680774959821840457877127598611327562167985497934093706155768772095934574586557899675781343281521000907576391871706559103425631560761726991035995229791617407074757588627526990255775033300634104410805622513115036993509866031551357246559493821418699409673882246526718529350054191351306538862689126880896862161479756283043461061315853801960750970364548796518872281934198607787754085579591554644207831748069166621714481488590288325938026752512917969289226245721775395996825387158281804297233737010901216638963521058197093902830695332943197760063679019622603868816788692341084880648160071587205590583349135530150854708469813395233525161658730950471370699597052380118730033972011598977739625458545840778444627480418956291476010315996488787989455840357098074800592896022480853881446762630922298241268652494964866471252840542548763483465366971941050147065550843663762605169988720535505214732026119751238515542764446143392846995282487256800852136052671887906451574099735712515195872557492165907089143702062955572335020964555891607939186144995145711801749481455722976656296914694004364209989971314125573629397100434276886241139340993105875395284567325586694033804709594348073610809807813522578285481066987821905293591278830646952683850196102049564798202001374333243245889337903269847260609665700258395639893080523402943892465777357680401774092918303900369128546318499688735722978242962526806582035908690855234361205400895259028059504747044361225564219702596733894792680330815231811893303637809808727603872135430636280427133452596158005233120208088065826007728647858820609996150325624282208306797483320179575278214580787381728325153597202153744040322070715184164487544581384890057571999204004332073222209813439253167685597202172621750807398278210414616869208449884867554941378442074565228914362218196930551445342726082093537503346186229007656848063332209179879521966722482932456282383452992123321658227008619491909718745020748285324245859279616999414428435056706230660563342957036227493557318518743785134385678621289175997243212763918037373067060490092181146950466399299218594106692851587099909074860854318426425934530316136172238415387625995871321666702702112096227528910340646403867597242395629346532247820786570396044256884217100723961595310421462127936739197617446964916047982002809966205572775296485608964392588544927714027513988918921692087660334866013931180672851577686948334860038434184427581949161035675103774332600889289465122498679248223059152393852247312287587970639928942546889523305720585331167041697664731133451265077511260355053869807275177264097097633787825571306714584930515435469294874157853513716473636640527286064103325007948256818204189733387442533266978396869939935918830379152317551143752530462268479239143512184165348216308556299848366751379194309468862662329710621916433795849357521258682279002984287733320750771916954026480039817828506189641282771750480966474875893621852622047127838362515822999723837160833736188913556922701242663552070281918087558301639946150136833035167216653002429669954342377733875636020926037271133385376074368204911479664237540674638836299702100938208545766287231232002554462197414375827696022468934330262850605166902499936199517988171846743175876768369712877330689850658563181920839000242858140847803428971926209503615851117694915007594871690877777811375428624495742713395068717183325072487407928980606803369074007000250809317597547164003033589374104414430809603166380754798516909543672223203226183002460034977718647625718715942159636701083886894740080084339628737885751845627287927466844328251560943295820118184305180181126498396502694290202727937632232341367890894633899688022200055226342817153506946858266478824690533334310787088760249727092456524116440422809377155286158495149697901781097322737164355847081858738113198831931672223132892429552848388197352135617347096558403631037145432546705884587472581270219590215874118348745353142081843539474112426788456367040634442989913027204440964478968776305243944910987215211525472279083616857711292656663648514365095310092746101993673138372689569242575691548541195905337482158789005564329140730162889782476785781778665934736025291677086911158872184600989740818482791706976453355190829147273538399269241799672629712902272491211823599763262010120985971405451226915753230442552692159230681488335594981259736769024183574220486714299015258310169455913572035650252277057691986566895717449304700274227423280496628107424137343288848638261108411032122092920726911586422180454939011389356114276675365206756978747155734518951646022981780000144256251581026310565139984338443871103588330040116435959104082403014928277000363309278088469288217589218794273423254461466942694930632585205438576307845921987033596350154762439587701710233540627986984264173981358463877091714906416984232135788018451000640159274186888501089269245093614412863900314006819225230619305554512641030133807932771955250936962988584772292840272685166519153755755836479211793294741712522229261398303206539157985340818659331966747970173816725029031594560625479470776459789463172872615719092615804903091037402838536039976698762844230741373913492246220880924297740678411780515356699772402978113232829132012633379035805141861694528823124442133781833240810697116897367590999798598603540331974625752827631668226422761939313984782950695750427662399121695615228666297916838744168710303414009229084886614891148709504405568299462786138630703234602133856872530549520242421083488359786120707840001457513681785282372911590081125668469540461358713981302283825543924921796578755084481042679079823062149395809717180333323406357597105439115422115204469880915284861691087944380707289041947316734252717772031898479161683939863681998317982725173457618057577363683721945309011755467662589326785291925234359081253367484172872031277563899164840497801089093900476253663457725989355907367496714724795531566298321911012951744405724068169625649852847886698626486945036776177445105823018065607071075076696990513860460261385931716227185899452948307115374754160347376068730391492126996095119426301366286672742923419016178595946879668773495846640551556581255394588286034566566449129297159003336058331455357413562370263976282508386041828552029350099722044597577673279367251495677177186672374241745310800410233167675323809702695625388045209613068527897711791264144120254678768055776114479398588147545284087484398282648818839272739076153716117943064709967867679934487454231875790456273311895210770188591884716532820115571209451540703624203312345645714595846903725707657453051663246825535100545244845042083255073200148955998450104087241414825212430474473859890460445366438818854279912290713805961926984050443880885679938059370700494169178309375066947912441219547171135537306973575328432225953207497731828532938214204602857912010034620316745767416477441870086055648479725892627749423542793000416450161141659386664315865384543329733168253168063023133252202753706367384172612067461377891211526132715785281551692912535874952050012037530718845309491731077532896061683341630019345530382379484846241405727566348413965122415855270760004334053353406705832983742997076813713881718576142788006649052452967161477311897301885501982313866792073372329800837084593949854975319633319123846699104209604197204069528774512256968405917244612752836830258734136615570376949271865323625342380093985242043194396442081235487836453007339084779135871930553872607999478184347922074446874725649633910922046460776371759238957847756277266126707291593261270252241423631770886677987112294799065672657877361196467454809353231451775974963483817628882391218364611689726348634689339761170238143529147253280920929213560586034186040269469667902554574166604292307638550739165409325993364139257426354747731169671960849221704159700734774637557006403376277558980473785677174772573446084147467881231244258744226275427099617914981149711998913667714282573226201144082870101464817371472114063646654842535777851684145419804617098462137283423249478474060067218507353865756031762921687373564165502830406574652813004781844745192628832417272647705579771053112792014704919458615488898209578042447875063395316210030453895706190149731803349279640089466782692641465864131692704140386139818709983035245307746557425921111853727817415704192043340650592945618839648019108369577289617635943100097789969108948791680726435854566806010094403809312757528251875585240341231966727257914967960190733347335224923907938054883866842079497208631563460571547409799828299420879597615780632053226075257259857002322570328149675544883169659819548235443972268717294297928378097325295823750971284108784823095381904286589499412765014291211041618285485622315356069883392766047469340928111561154132831390954917919550851402230684189252796900061779039169496590862231503999037712679374282870186176005613687688504591274463085366189082637236349036213599187864105578677521693252796448201618666870295296016709077549976603283806799155399046825018154694379292802546831843276049172769227750705054640319019324330470672417137926053614882715356856107047825410025148048503988758844469676671141121439808815880737376133809182104893922696462052809275942800080133084769344478072106551802356358506541801054711048438358601033826760126798167407984707849138767377198655530420765909364529655623067377056912026683175354169890043954577943967350007192740708862015497476099652786940274358427809727951258843536501670090070320554766939744873997757136558576819136506969934408264410836926777854427298831413161690447871715360989424522677353945387522596360360696851035198310567448473965988168716624618806356855583759750752368008624685206753882686295365926110230030468311983570354108131508895983920849355510829758006969964781019728385694765862001826798471819592927085749194639853112230869516477418055457407900026562111764934675053414852701409601572082225460716588134990391947131877104763957919382013808710089263055357300012956191910900020076826216421682694920639571486858209968266585536782324724441636759976953773645147729668432388600782670464438470907023299879426540816211594236632863953276430401324048070835205215147201662997385292106447788286910704304771731822704785206205680936658899222799279143494760962462282573498644973212054104555427221887584319459608168786005994910534719212030149619501972405058236004110252622116162574787011891268846301418612033879164260587437169634131717224801280681681388750925898846248963387483724186656344050389617603925800804129294245671659025165079126425334134736112781541816271972559523843202235879878463260832905704550963538015375630833002698564963383848636431282440900918434788942902996878390339768587317391644693950467457491920692581021033084213959792688098025945450545872392823284378089800454469531180605019976752564043701632751590235761146060444834024557170988792628581448880890120522562858879104816472749883324723278001306200568132196602904363607201071021161124749517264497364808572655869930288591327034091387739815544756965934701203668752006378638046209376626381610916681100564416077222759037932548358212332824842248061383692145643277213292826195296711698135222470246192580677434598837186611593544742308026692317406948938636529449969918792561414442286911282195822421439275697412988908507543367648798094414376737920899334116515288905434749894355056485665387146242587987916255831769111051633268075570573147396507034492188816007502867198570580479085216357194280099331151541511909401382157926013385044118073624129962006859104026736432662092907333162123932598541965507527018739439869817988053503555667951422921815386253544448619947991938849864491048729675264041595496350696273226800788636592234307141755007084519435539440159150920755717741044458881314728661133047032090633005212179294249978026158867421907437697747406558288130962959254939819983461786648123927353495244953278739024677815743801825819687415063817200349511898355685734198662695009020677370340121883947194885640988604768925448330797870820244809992563769732141029607579402418134559610688475808925683745958801276240525801021167809423434139896929395136157526126825978899530104576464356577433951664545507564885881717707252083554053678313651174804036096356090090483037144524862606891277456763546339854484475771026006216262987043215500913881844681213382883388552431506962615895603694818798161725558074031640582483551445864239616044570039415821314078678621022551934204481068754980443876093455836755772014127918508337602467957380133300028150335621449764719882134139159189735415986094774593049559935077217461280010761790943747797834968538942854855422667430288544036857404447039677836953494371422478694168168536998677359516489095806480102803775106283985609566482371529223168518056850913684907216894518778135623517674378081913987596596158162375929976726174287778847195085037935661480683796435566805894896175338548845527313558090717463193599130418473061958465732548148140832218488015297607330370464223095196853254145441682133103807794893523027819978714451217317923645330153082298267861226022300087115965475532184807893490793764649139127687319950492735822874777939374165251225075645624112487025926616649584933113724025131628534285170617388873284311496357727229907094832899281751941857849623805016736060497064072942589991452983766621454484007250281547632515910674496478561939527205337967503190316528240232650662575673988537490234517914035851406159050720080102493896089092761145796910489793804252744962412883662396515780741895188828576224258225937180373838116860552288351818013668536080868277041742554539469737476939013625086581394881907435973655333763164920944069845281319492119779086276119876871632241915070286810262257500882823553597124105776284558494196104325191496789001703035288340600307847795213435552523850897967358355887481347706345275441043980192653005955432057381986761431639478343196539044099257612816471131438772134115006728943912355823712209717093837851209598937570206690001387604616347980656693836916790128760743803975612044089343743466931193777881512777496761053374693989226384493194392195499749158987421557733458753997146653697969394267580563449660432957459756959202799094332201102950349417724548842582715518426226592274638817138853037299268781909540616623019849197738283941432800756193147501886760998413001303729633110852020772449551887653777267692680233715668990755107085566718586425932448575154862559087376870054367772443438880305178121448868163072878652439937786786636349872746656448303252864055629223858741132004852206063492462514766338194682198808721926525946974275533984177023437694948189368166507025540991830235043021291836363410351002922813834333519720778943217522102258496776369412034981643213660775092249818933536140422031383614237782585792162754413555346646004915914545174661548514284919547294418030053653973283175746551022816633375452988287656422866871852277981787675258957194112073692199775625547917440236520599773949619722910302961159483622503464474344446500435568604800962757778989209921192812673573334771989802990616610953302508459222187979773550745203286486463746960641097419247619466212914987188053636207764306760740778118578396715672092440703881625965286484490174829425218169792710560812337812090913838284900697106547260957079057099054171870954484178240642063387583200513887269409551979679788975242305176115642926768822502655111036958968130986721729692581019295097530472782990723780066531083647191482722926065935294555934508873861548341686939165031761273346040312783612293328563511573604943028549777268016118364623042306738408076722429864333353588113645091094833974286011978147398838167246667127992188302500452005213903651028991777166825119037053351470743613695893907287652794622188734387406644160835397731087203674895962113024474544497011405724617861150640502114425594048694580656154462812159699105254272725060381098165949025290154796431902731757171509940600651936580125786471620599201996795083030473040772067083684402270746683462178279345776735597654047756606130600963056779101259240085567438923700657480645910656591364987444557700012098958460813399912689214210622333318162298042456834426663679470959809309058914500371383042522305355538632890330739069529299827072327742657199590458533588796802862155410336319234492163518574781078432044317516221105023887454671554984569716962049960546940449557790296017978841991001711837323838135216104668903313946650909409223374057319585391130349018939411591730678928689981131598648728241898406517178165013748054151426996561111616512384223762801569188756574753040006922395552241108266189669994913705887864370644660605523367735258290344105662531902522566347058048401922085836322941058847231787852577934293191868791497776226670206153622503685775795080912762896223418021313847754290942899339260571166697506262472658823249597815881333742078982881849453058208695729968584206233429311607997264637069214184279273719840214186181448189683918314198933160034651760320580488034143852461625985379741339161106819566212720098366029262247454324827948127777520046953197807990899259965862428811809967199914513045881149230512500667179181699071543113432288582680109845059435969636397946158242347499454555277824749188556655358507738188594126870366568106155392852045904412884174202208532628424050496427586908693443670786210911581307869348270273232230516808232150177894559073859757107310626288855874051282399865471001108933621322371484382702299516910959541534867495343033123441180201882295915710577417487071939353488772591439075973009759463191049512202178060007183798157212795307594406275032464580380323266366029963629145922911678980259648499909300677061328528809982371041959624144456804216160144456197303740233667165017643903833253935124974660170071695296772254395703913273231724111304636912187269887120279982002963095665232501005520755126673861755253003026964415791359743775449891654012422600050231036913003243984432690035726182149622744130880678247699167919491261210146887861782012983936550566784581936584394365997968049523022846058977968626291689324287730526841201150934768518916722742163856543476938303936269528665977507840211288407134463467479440867500022836618675270163738957189691445963154217282040837283772041637823891409163563816376818356660563393189523743280947617403712774332767733655775915195530988624155294635870518764594465482454933213150536977670012249505646995123346260435355207791638537302031309374069330445700925262882062275720019304637178348858484582805651740401374921120491380118860974250332440973015067310401894656093563468463190499190773517936748287918270370851422430890523078696504869668661745026526315608168041888242938753028733563454089102427511805664517979577101678232224697384287758140458852575466456432058335822777003346908195315183081207622550164189241507995392974514957978346206642269812184130052309495472168828199466177936882946860348546347944747273325081352808864452491428419952029850688170263440738481438274073689071041646054780215324723736127517468773371093981419205386896348305424640821208848966652748058241063912389195792269793456562475166380646358269050311635918576498132873147237818299624450535428686152063403680596752292858729575775074741984715284899196714886462709499864283969133244373470149490467096536707971934468337675595981628905553951355206740916496587272852669442047497657871719373764281242820838129437980495472831194605559588652958762720132996114798760105590490382931872640101817627554434808040071852416960696689482398003212954900346383987843681187299390144514983495442836180421052139841784044636938507375390043789714377184786216345631698248463435033198742426110936567046694154188200098716331584624382004916552207475112258201604066831735618284558751082133053764755627711553010771714098829658391904863483974190681300918697028544589383206081700986922500102109792811724656974665320999431059055195232946625222002967754800512924876424117803169271342916217036286601515452858259388514558086603230783784905534045472745411245093977648697588172847003119891093866946540013399698062735577719701195449139860053536056676136254291810707259445343078056345546973503265323898074552683662262140250659306866927361959233736153423655439491344899570420483264549522821791895197752198970033894078820901549796911194774971553928808514676792183471516150230860300667173095675384542908377402021665005728568224017303790097557700285724498378942453348975818288844462809566880836060739038530863536369833680177857222449511768056387024835080777457683450767844006692359971989651007919829226284355221387508981572536315086328750876895041707869106535532062699225867705177125791435551616932725168290621924864987038206232872198103420350475893906038737133946760860288520384734771565753584327293138910796188610910196177547706763649915969214225869166746127916180364087109830081074297602109029580253469062116461412598066843397585115112059033302045574101139434432316100452501225277684066290180687928081828066653788267275843251561586918048229852138842266182961422131591352673445366359152153629464254639499856047013504114056298968745746811539629717883212024726709699819588963771888138174793136555751800864792371169061415983796786802390411668330079624702236219726478233100228234306022320777438416386563010616109294033624749324255277988715256723549670983830304354393349696796515517354369234827269255379509223399850616007327421902323319392625350432009656764596927958078945533547648183718734325343796599124380503395381367848842671431020429211833737465842145542794460797662308218110184224796958778164541809348507648999228551138117840728499944308820944512005959905998197394694837744118395714961860988884939023060811627336964854212535418341168141039531737174982242999160630794436202369235662581218380051653482070579309749660330254871451798420012774814028377432154014676520560255528955158701597819967986161215743591594870406950942166293018261211376137480463927220797028228772958928631242767799681298234864180597522423556246975924703448667183782646414613055260216362899156954034395593571855859170511962672514372061654591201531907141877969760280154609510347904640072042987318463983917230222629788476984364262081460691755235485402512624169162709584235664543983938420753987042621395839481447592935896140055739856774379739599385387948254170030320742114422218114517455938572070802703910974928152923883264999050985463383834043735386790897708793438499238910747311287333938319482982901295865025683620014638162276336292816389016908930285679174433742619203993616209150088460885649999507679392936774687841779250929743096862911164457881874751996601633026267028216756903959290754893110982659569505023006749882664585622004594185722701243756648411193270178197535959164381751256651257691637221802505964821095323802985430389332515395662396622826586171565609403258947318632583302944570506675944950046869592913851015326411484150325478920129587949371077149895846484807256068770865853248402394242716752206794715787986125298056039967813853896580769172031255858636774962457129159619068330356993418301084951702560188260329306403579702389157061999318728930598170630497793543342880750692675196934073855031436680649853411565719789760072038698070096465324883892990296541227338012159361668681387963759021436738100955851930396851561285559087109639584950922991330164961200413760263862099527881934841486491517225939379648586429602851157220760715319808798190646445149855694542348635576932530793036968457497597430107500550229856198989381577951799871466719083289156437528531896738771353306564943347619364074316863481300243943019447608983441739528751120262620349148932643327257250209389472365893842374213781027128154132612801341387194501727656985503920869753661546259616923572306473911550262745707142688465769756002905418043442462067928536105256682092763372971393111662260770097008430901658800679042818176781783285021801658355830379079796355514377654751943234989237050775874618099372797756338614785477732136938010528398159728968886335153327793037770381011517987410774268582856673645006692336174331257594857656328983450811530145665928713632221767434614633762928805129879803358113404677840490525118971564516666585399586146804665373986467627649866325303678328049941075869717202220762269613463049753621141362996242736065531360276808621284186116955817027836304614150670955449716694585089839773618373247494299256197535078827011467691058871342989611609678370929572486876921790288212202301717849593912515291538142262282646881933309265457361422046228249355156896252955621155915786035345271247938899578221771387715591316784340893014820685368736699753728193449766131163943061302918603523197182062474547290082377189226256250663386409483686329893620690754781609260261697265092246407228924875361225092650552746441693785772976153789110976896659936419203404546174994531399632902540013854647382812647646963891733871022179452969913934178004269320379214931172424116503748772696905708630299728822029394907224341769012950933774730364601636422363318431027166770784176433782778485352043683267929875974705397619113513665924243191022572598241255202706411198232096243891684736828328056692682215990501443688084579593420065278385496740686128231297835074068017905390160151974659959382528394832250743515150395642541686020315729851195812218827721873300968445190716235180370046046649729687648804226354164334019768115019479404341645174726668471637442147239093657732414587479980492171865456738247543659062137722429546542893477728679823591316314050302312350200076588485664198803669168293845469210471097136337223876735429216432599040379479892343207949828124857289943531864823512585971245708608746048568099194642547373541583869901663915223535969676916606124877603980462972529640255025942308058063574275219824143519696171387861794477037448967763886168660983306653699471032290490436282736427881476241155322322044756294387765153427742466869434470038650363603369641509617507837459821878980147038154649510311754901623070345169895954366846131074751044156744425307528850102025978792976547381806373157029629704143710439500813769149234016291200376965480828874674970105888082364747417609486545327925085732564545654777059018870809679263817937704182872460235442725204211930550773105702990362134661830656841402668020736681236125261494790530579914444071151502685053103857800385189054694159443227138319071066949917822132248963048877238811967167100019288157790796378373062618826566879725565127623205917352425898498147497243770475393735378526122046168602203526803397839846575537088886243472296854593666065398298894292789766786187354668647731065680451109922837930749957628142047149011709517214358948540060201780198764411803558296873103378768836832360797941387298019775801145132184153783292345770595495904206079220871293696339473683867897568389674218179498606476981656870821320576633159450546788014543285540160963252121008045891342074091007933746601616902906759278997045858487361407793566669318087112521181182990611972263706119243109797122167138224651436382643436287902098824302562852531474599245537222483392424706465570268760426182234143274207073904517412012258644781167326069725186452551314212671617100525494885621507032589380562824871866492792327197365516264410534638204568682550433438666094714250221071235717144544317431020016597259415777656567867707709760340789868854827446587936349340182538030053409890002920034614709105303880626072500279465555113379371819334972427946643627253106544775759351972378941033392463764555334271279851069864525218923424572360303157922136044090143504398234095097502266503381544667064616072199818023449951658165334197552668828271927293811675910016140603336021792526274071621809138948229806718664455471659241296055960495478570597840864732305333242715764067184884269079099365346402657554432268037583320525173162039511756963416720381958834677655350235916436397023926247705004623042323731405525326604721638845783438040706515986957008464645972182141407921718654785568809052184268953079062336020699192247085162435328036110214852501449836969300023877293754139451187132440437768628415075023130878780591220354478756091707766165114587200171868463273104932631104219116599135497560097463801819079296351678301366130241274024715941160325649946396595967509686743790745868035907096406446669981984547418938786088577900593248752833764861288702979091945651323158134672953856932404937112919265739110249478133378280056514236219541770253369690274730601953946680559082262126867072003081595968203469924736603152836613558371617694706305282384212006276358288715315303631559683732681640586497111405016552461416098754508716108837513102373642078364952200352413218653686266158993571923181163422526763935163131732480724762893375043374819581348940945988423446048165398491809839011172717000993469796012630171557842759416357650266709579087080386947453929401826580334653198707027683857242110573882489171674180929025489053500271868245726365989887517373937321337616090518091315908544797058204190017229329610032667760702235728198320989906253432712702369819720939740494373694249133154438865394415818672753312532172794400347042468744226593155847408121985965479791661552675069326686192158953026927986199630235147187745710201067006070201563822854480740136767961665040387212511481634772875586026762212025351108683759872101275174263125018200863563000667469802670350838509441012801248792359251848415181211117993327791993254416629174948922158791512835884151916108155763572885829901295758249107662899586625281482307043197689399055838614227602940593955328147626962108659303743850409456813817251303838144223847278927408671561349374199244993013318414079934954929828569379945446894717753931855941604536699021738294348575618868732412211701461914478242971712065731416484661536861314337295892419842597966987550006802119609144520534039669147725164224767790524108296034222651588659030593644384370882485982127402106773268559291180876729343847977197101198507203496006600576092667655070897351583169516230213897379132918083206208568658479012865658392586677014210190016729458597651628561385571691419178544662784326572402603776524291609137704414802713313911519372458254735017661407651294550147542087429348604451722434894607417665010849172434029029510042629424497602318369521347663463594440151055534859544403143768540392290787076519446558417482089093834290824832768601488614064564041966126225760094423840175433803866289900362668975109864749478684809902407649231497713119064611451821862094597157882976458026111215858541628606936851147339476892169381495786278923232355400769240584327104177644881234154914055032495288574329549420210883039436462435923931489010416702124886054216898125181831187700371980817050680678449296056459288656833652680926847682616643333924748078004800188522606739955496600647188759058377808832584251816661782382022680815934530844186091721270878640533122996158594103145220041044693994114941162840017454718065440400993749902044945920279047112137660909248902831544119939173653331784520761840615717784377255282025053610344532842521671367407702194972766821773452938017577090885368895388838803650816777493920524444729036260969875144655996509966488889290101037377700179843416090040395520773372004008471159506334189771768729432943386799247026382909742818498075102421098888743715465560614490778137241005559959094708865740103001832165467227305976696221766123694918991655350334044459669974613695677577444596645502708045795147462954755419251942538988729484855418884418912468451231188689202023072905247005169087303193525688159664269052212843304650373826021866875671976751249978037262618573651718980583878292749140930475989220287877222876720728728721681306613686029960224844521236280595249061457006821979344184817114263882259515878871091416548537469857928891938872322284181534930600850770907088658259679840595772495416321650149130053820724926327151491297262267543794277038131624368562402212234363265080369286508351457400476713367329694330750827228088062627971482389097248196377177029916722091607983869010353835005130893832723620292279026426914566976371433220402353627513966010196208310866456403394194292310264225623895663983051447692258466704555139265917280352337976563435124244259767366334663395197506249398828141225957811873133711575483734658101359514453394263357990142634652737237996902871811914872349002445877678181040052408582157226296585429968576120083371219705569955972942718788286547328481935774845587579542239100852529953740834178534450930716238029190441484065645770214561825225760158048645264471463119466258226218807869592704734515990909517058236776559185593105526080358583767973260013234847234235181117626065638640751016466985896788293902774403474632416218677039503676683502807155775938306364111848776913222934854548971963415161799071838132971942417972291994167249421333350897015893566275017763624268934746867228166844201092876153066150267187786325833632356367359369783592627676343335637723663902628836846890466859904792445459549929205334138738237639711938510613033898355141492122551928658541294735756623740651664875646209132645982924604474915206754113560910980148737847253389506034173074156357444600466822078005439679457261037290347416841075736600679238947626620679507932621792436110064579038711924534581008385790139259363932578352648439045050615334997166746058829780002998222924212622093496992084320706457627242221342638810705376242123618285737482673602559929158771563431944461184368052504123724651144298311493027998054895532055878731380802439613669588424630699235375873521790535514400797355532010776292235605632034916717491049960532437495533762613511682470748676774530825378680016247892764556285599135270815885985766167507353978539518117309727344689460897682315673768814325491597870619614537626477009050304799499569870216232045964180777593976745700251847912476768210102653516527177221932655343883721892534619134715671052629076037298404898889508738540969150138245242115736205310906466972010731867372142435588868224951655580087125905669821136404486838083382224721775674454943670424666541283165383406041641836508062253162622880060094627065235513532353056487723651045103638654510849205278708916896607309906390245366185949101798926596103982389345445670380252028651398343687733912122561566402820733162024894555677716918572052066954884590515386091286477998224214049471517679331478892346750878528187524905842677347084769249519041902648137033568783062715713746867032273452540639746215446495163365798387158858115923281730102491048851358509685710393187972239324885650057102194535763766119641594021254980585699202351495010476683859349134767524337153386295748513952069162566115008954109259687275092784877266871647693617779140041568660824494316188159168143060174104284411866835754391588411952989186029639116102524238288660945746738298631043876244782937653823367330814631168044030857261132559715165974061851991463292724825243527430715810085036647687256075539100248679060756980723598008678641286895164466041503897473230946793800065599059588272804487828693111539447048911372886839276210316382112625260143312365488176153772803784822600685280772606473477616781465307156444582339970634391982421223019292770774022336246998018417029419501974845254475994602302051368740736582656672429409414072156227585928879414078038370069385152911441825405121619935724756584320428489385140251993385274503396121551295304435974539479052941662072021841266053927460807590735230223846019364048953136849179509948943423107446767654906950663699346496452663020032769852091668384431869232886956136607687777176909209666682313304775735444449705735877055684805299817654997319297642219908597687096837065940349337724702818592278809597565179093920479327737683348523347482093315448920820549879247734149844229704802658274413090998220066105785652273077224863661008442929072471297111825848351168377248945813723160547469217720821465293234879576907498272811858800441017850773505485360711909682910331553157362698420355102297594034057246481177015804279802873388074654140527124644615628324490013799166340498268217319612439946593587957908102373145014300536643800316821300376315697729526851296757730553403097044721478406381355456385686279615994271314194098649554407971739218391953850737275609481453690962160137326928658414274783000396753495375729038134380367793277249741847229935077089717759366960025758322570483506300598075088769242056967133044716959969999682734022769973769199714082000576741642514881640134017654165485218888281462956033664962748698381639487015542081035062458387725089927355171648321422402780667138715546619905660475722064955700984383758909136836658834578878201424737507568272279497824037055870351790336842870605407106350599637980545061996769990505517512386685026146187328928956505717404538122719249169568379888692106994729218496559273399045623032920482664453802685485833615780122201750894713969935355469450857916700427913540293319509190947765406126422788807547722963261200389757279059627712270040785226287377980687562402420314611497037696224815880733099131504512603164601707899148974183464574058367695505263544530195864813360624510457934066584184052994042918778286774522259145932500503246886881058774409864773148005059703204787450071897757511485536022027642659862683955055698393807934053760810507186593725985790381347194927702776915083211392515262919010265905417273393660179438730867739396747324833421797525943052893421069182728835307681664744274838503965561345537580842022376563325251950767198660135353167796845967607965108773439773667379510017522515887735616893130805042388461971598564918907369594166394733472872444526388519846491084338019272358215467444868192251246588172498824286994985184946839967190291245589045642858896624731827419548378703957878916553413222494168393241286924387572540028247970304266540159530938518241895674592114140375828700547144088546675982264405113107292072746755261649028686596510686177625213181769077058874245301513887587202322584431369406948692505217723295551053707238806328047563869823662697823005864167243593848562881202377220198016803003843900648533298883943121148172844988521094077806462034520203868138461495902575186682875277421557596589359909494381311537714516750781345009452983491404693472253179935611245481014824759040126223156178516258555890389492555893191278035734547964097203267928337105244363467878777711864799539069797429486847081231609167092021771874428380254058116614751005590333825723874561567105984942908585894757264563005166155421345141204016613135549724294487999695227362521118983154404010647491941673168058606687890993003168752039780817742169608851412841766253531062461955526865427662463991523746656203601411332578145839846932150971463441742623742616242073228411673245825714868847573637136466211676076391182978988604688745720311046721383488837641933493026891918312957701395425225643345578555060654650786050509785714918029225429744767228754804180437238260861941595693332626504150779627203412204021760087784862407739834491774604907262728651593416117391525916294254123367460383773649666368173775952348459107045577262867194506043913803141951871751715751914654928269357494534483386150295584816046652875571332259790834135507219663696604574590731866260182554628231503044384442821407304686219806663867154860274493082169231950583807732779327996118744926227357586974940835607890669843653244794137910842275674371538517590791791272292675428942792953717181335810511707699845577506512481003527320056713820271341848875501595335944481912723381949414120282545812157428016142817398957402899766608812165727594064799363620371474142427922676499738743003985371542438793942602962788728643581078211992455402790806550265178913495484634962563745492291183341496358665035025957004503245810448379604530223010168166186095107771438614118797843565925681499894821299073571079747458282887007435807867768310674685108182892611575981644296488703362361957842041561176187020317455706023667662599809463991170991006229970687502529126427257406568399573089756453793768230605665433517434313643098230878656302325599945176278098353897598594429514426361885283226985567825417349524126351702701887190232706582868717528459231337650832269871501075422241137204410096265785820419900556574585012704871790105678500721341441484257486246242816060424022952884586002305149367629983763447034948789865042554467415340695956729854086547391519668318407941037409310442091062261326252831629959018478208402141913672459090392774602645177817365998559565159858507127795447781272923812363178833105194003817615150017799213202982840892762639227904172660766428232689663338137385872342541561004246089755639393937600083445599407863536697213096839218768663167130355389942497097787366618588612209253713289404575791195732732432757361724421209974505009845281282719389596986975076566327437466390467828627732976787478535956508083887142760800731114031119649268869435509543891480469662329567018053237525897285868360123213880701134123780803505536502950334741777526499492938965164439523980256729214744965130318666910014762205558959419644025891170131974445492756188968536590170870620287430408473252191179776075323072079877631643519238238633204917700514934034329887321087578162859686630484600479539464150220964691906074396173060752264773742519722168347772608311545337923934474572011543247317043812907630426266791178162187338955228416618831241133853784364849789211527236692409155829689952656424337811879458087692648014816663462171882267584049216069337367136982655461866600698848909596411851326089101422480944369202296034850893385473847063305833500874795563456546205934560068166213405394254755367092807231894980977628676860821074574665158631289318180054562242443244653023621098814363549673507870091947144224768087034319894618339930145315722997518100350447436093942959703037764796448099902103707288036392836600466677844085138659222971642496862787172613033026252160198915352923597104831018192946007478396881049563304636830738116588765535047538732498018572266634884060198588843572596326599335231576417115422218187394999104712127454528757430652846508801491474727102957643530720361641867789576208046709646337827802349908926501690800849058537707226372212182449289161160930658864194625950372042073084696843913928811070330364090898862435906801040542849626527669795870813203496090965934122728446067282198720083705851335770657939894938567657727614085559441262509322726531323375876956879426548455269283827366396148662350873687290359313249760525351704002137383025402418605543426766769380271752272693424591081523706478964690843720637278027077938127062479790508264385391976624820851846453293703931428359533354191081855208164536272158259203145151229445537265782930295969017362580150317273072590585092498486312357739380122345863407423722681924161738523109338690341308635443010693431446177454042705925359498616618335555122300802575356602925714452853474626570496819620227836739904227980353787400139305646521998252858678870310698901808618380725857070157498028805261123644521026901836696445432511340921043372758728592897109631024347936151041311234922678780147878614656837551895276168179448132473952197363360709261254353118398056572052958687261826332813157479370208589321352667495520382129412863186533950301881526139474552226430371465842100063818591825141814216315295119248352475771737060734913693007760122399262888889454410447077205406849586378582115256430348322023414906615832879998419896987387125191163323931054834727738624992290931845956327331503350668162122720115359041967075651092518255499991195372388374941649127774638411058919967930424901504280037733471230467599038336334622903464678523446562482055756485901341823363941025334133915484223327726624628713725082002587811129523816092489662446152293773965589094727138509185511849636123965102916331008736116642718040789242946690332793074279786343979963585064561273032653548097438105915528833427146906726141298229865145204748798058628838056868835419232004498166838975062290741876347384486138719852634664771004725251569778664363086278693278968386634448792854708970841254915946653001015651393909118375527628360683269138598624346830239806250424527873006485661613060876743052236762749285769863940257220010949944695556982526402826382662709815761393011057376168502441599304760245357359264851370304775600920376606031278795849329591755285260810071539151399113758580316286393591598021187315048067798947811250608924673816293736444803376908130896230390213827116575702262619477423710730124084988006881935010316876592221677434307624381179426424983422409217161661654706917855571064799336874385012964051209742875543442270604037048025475558897354058987437333878922428271564549290360070880743522570318899983027962887542136351768575391483394828285468124798512988236279747608937216531393233436538296787873714081081901103210506099050546417500130618452970467018673320511280988200724843862032383776039770156322979371350261580449749564067886789606347117373749723127151827319406342951872906486852474015912454054625054806210654753994748276766354589288583341948212080315605455436865342657692786728832870548361583422194426700123619980164142531538995222755205455503291193902984186180899366187164276960194238985017174461499719146551612124939062229413776003511074642767136850801740136690654947516089099475580512458262314000640682842917573541968306481055516162500960705038094472185998231905942991845716269915201977956353330554036723762601270652611356668257801089109961728848015699829379689360104117388912656425517554955848563924963099538385758150341540600217837282018287243368899906387487580358816311671391585650853244669226036404891959505375369339916828557147250322758631081399907579101360533870945901997797322059714067628050926777350730227224972451301388050552583008265793796556691180327797546702246763803214743334947472165692826575534727932031532360022374248345270100814517283452906768480262185756131926349322871914005966327935693357110512033365364776769064506917026464583240512128312829485625887071909806087369727499943989755485705280988809762385261216235164439482539829551703903546870320820078437248779366507497242980047859741531049855674091557248251653519982403698515670508841053242670506543073598170116770770808862041436851432040684253207788590736873013196050176169974269301002643332230621858279526745007820641349299316539426446660549383777730577075514769995135189709557933360373652790100166411823018883367566530776400091927530297635584192319969409062925957763843797753826418737219491155869211134498116465472873812627390297046025032621640358076796866135340862444700026355110110682004052788854329648749842872029196791312345017552387676801450239465056812268756808724426231156628219793880154565485523230029236107284181248727579913856733716630079730736919731997035681023433888166213082476753608198023609497927621419172073111090152026902750219724381973894938641362765543618509205421392896958897651704325338807587668045965413637510270703791140551101963653990286115135618007275260546529651071265383595507629258291144409048841270848733495347437781028099936219335596591016362657650366385934949786223361748386935346992868940703329110166784144087733201969435602030567733775176186540918551387092256643400626357625796221572674155396389634259578484915851917759518383946205631473835992340824518929158005080759852264965576367434946775205804198171681137001456354401638303819631453647866515735395456926923804899190039652911424285593627967251453750399396141691802739451850052486571250725001463429059668486426332976998090998525201960190971705993541773976061495422389253653791202416278888183601576641992897115661887534270454970824243430327661516803055093673600906270437638087522503757489932873318173289842900576884137948158870641807400767882386569148594904891419038900694779527484369024705633699229390760020931852353688904188509247783538561743469714994260152858047524586232945366022953327274847497182222084381886858948077908428973433791691736251009539004934464174049475946826325724399730543043859880246028291103608256081421606766009709246947335757019041964937170752598599504070193923433679222952449097734657303689156724467352138743248471589207080929354531728249085131282453815597580155393450604614235677355568771606399297423079272326911717876328461240025039959886781721760390690424288559594951244638592445795117752175710467648550063570246957182561636814667643770876923110554852399455614748085646137410761199255542581502245724043959951587597098948690968645345985633983507916896591288447806804038328713667962332925287666452509143786053185926094614246182577625501222780914995899043561032512326400616794635618549999750728181399233965777052134159269012382026660073242767107479182137803051231315754567353330002947003954390434488221879080182301343735324903624925155017248254173627217990501014405859857666806969602628949862160834814120114883224314039337080553267202072726674563234011601922433050347314332473361356073962153818452651701790023266434317878732887724713891283863678472930793382575005983876603125606375827553442319240939085006414108871882788611147568465851007728430136589147100296408735313951818218980785808254672654595199763518067014453818406603461677683189662746062120130831867808029235667843174171572934762690595761537988208204277478352823964328014963118469381378603430281220688068443139186056501654017859965872888758779647379504226051673633972936918264484758779630127327645097974336405409461630508406952908244553391822754750188527840859476479484605845995220843597698853089633745056888977724743774915943246639964979942946969181164295040763287262375770004400321043694037695910705377591907620841633327186533454868998022765891630152729132266408796089478557287173545270120781314945981958429234296318851937215863198784046960168559769271537656051603759738450414050558876805403442030319262840386688152937775977757531661498161840388029389941742672216265363611574986854931883893587727391357795641662569343211540358133706845043851402930579089819872704468287583150345377095361917232052531918504412725235747935944567977404854082869943994269925829575954262548414755161253322200811851403992557022756270886332908389602413342636677377221080762217573204475251192091378066821164446194040636077817063536150335480972132165241084198188555161866561300716281145030480806364321642528408680492609901404609296496269014435494556847073936894362229153753941230532822936427444308427613512865154320747330200850421524866116742574976621111430210454309268314179119186726792738614261531736556708469162295754418381741955977365663960712715265675847798098189336099375183191741651612594713211858325628833302922965025647241115067613008474015459163111725362544559953781565367486910704684144459288360725006831355191688332461711404890395040998205796262878962066565576924630571764770011510990547893017109841713914701528087101911503682535015886693808585831096408406650259649362980404752878446469969039346073930453978997629561812928540916261941001865289677362508269310955266936823401734083052793277271471662797327680154155201295672654003420807313171553421479560853388985382344239932313527932755872234205842293074591488281402388079323788345410162897985092488209292025041161478012009678511855692270677809971960284711279978489538358341149266353817722665643074522995487112885525210579716173116834793769701212975000570654335874773192250888380848848672257918219128244312555831145111841882287753018589058294500531066210375201288106462561781048848852038317546644766120831417472261372393774453931586623371227710340086434396729862030934927274544809124098674851460874242787966168892148686376589537794314000288843914962594296444783555396448460442220379500335345395165864790879427255516627562497007957213012703776488132098174381719945829495605499085394821540279669026486132557750391140509474062099022712187945989665441072342891884146105067648879045815133732152242117713797559614594393272532493128512762882562050821840577376134618685877508785259414613386875608914607020168970904072653621815806038579008371334770564343238581273642978738297806353106664410575569009856884835099823807693329304720612561861741901701393245869312788587324730484333894218821994719811485266448378534222502396144336946096112640034166965608115984745220231187927926482281636767395844986252411896277165161629443375892671827038086173229703374669895321665369695712569115091157285178676057185158065390410977679309281738946653218024542938115905203399812978720156710419226766610947376219450764723895044607304714304134565577988701666859758794576693083338997721002035988389519599867109874953559122526379656296375638925216670043521289972438565380209328537191568651626158267563402710527427212593563153324438487884404946419110467787053921105200997710567443796073986970195444468739187948047479830719055755140580201383492079629586277961198272795432938394634136319911299285241150414340752323292149042096035654989564363520202239925424812258856999405706883282581586959756708882369541349861639300413315368847836106995704940415860621084781173978216649165673413272804369074748091229401854247101765910550068719118835595212415857029421946693460585031099956434330644660137122127044084016619948838145605819414986204151924541204954032155881914297971760047799380493509624825828076964224386244928656666419029974199475084634373080597072349449083287303255795449432695157865427515871170878914051867297429020138611568566018744381012972841052007623767097442668427027838628759047838547600579176264000853797794768286328131218630287360297121339121892214705218622418839776251130518743162232675969821856866146432240583731613349115665611516959688096228025389670123764176514543879124475908297043385468520248868624038590402141179233910386244848444330478595410958389276313960789566115082507568960414317779582164220572004675785442216022255458862270157498355546843301049063626198345255268742689405859562345147220938409720209781563962839641104441293296538744840313228535245197313944910194454025765137920397170319644983786396302398437910485512428880629774484231359747791662114932047124685680448720406143534234844575955576658899815581143978365932831359367109516938262511340677138300812331971645312261830162577424583347206791144985074491371336415392683652698478263128574542617020058839941714580745725261231594209406967314742284049416773218158530247365896421199541022011602512759092780233646265625518805787841652398819888581616471374788274692344366498216951540655418402855316730949085299597100692268231732378499702025684133437366229092768766926117883829217585677970694253077311624726651164842393501446297718332070556852071622895949522871215280386139597183499192737914751131609562942944961258599033151786159287640526947796730594584962762949446638907501630640524855354253886802560084625848378471526637506936429265478060274021608476281855566291155419140090797041936599878528579284993518132497727438521413026429356700059134897772333343903087388055526078353158674948437837331248142493248439391026900544071171553659417280631197048931095002927760371436589766616382429279964923018055648020144246618681090653409857595469086125787858826235846749779911464444477160073953553581785716640213362292972320406124481282338459556026090658915474207970813839733724246117507643884921849976593794582731957780444416926168689446255527725376893319571157250231069010933304612324686548116958132908802391687443558762201599638386941908504651783365878485062429765265827595396483408759357856891484180904666292090624958499079359417789022504483667642055406544461873423108450941128012403804520735169832045476207642398604420185386019559255139210848635401716165404920119174856371361475457506905427603178340860879198111251923324920027265372353037619724218475899005816321649207050341068403010166550944904361388996958087250588523688509317914090227303318827545156068271067065978120189568754116415698330281399018389367342075774580047886049431388744537164136736812529113010791845163814291319945498282192093845119940997040964781534051308525750919413351637409887000856273018245926748802981704340993817842822089325002969463181963318073217162817647220980101510797160020319745458908764671953269160012325478973893436131163803148979247208644163379107444933442944858118980933259289842851971453308754628234887259023335098296471042600516947523552831651262753156097379159762733686530916025132327713760621023122387266837145665041905657183140047445707281155767127230099738491759360581351563046733157055554917888282264488961162655645403886268548369475144478737625727405995858336288440159496107337653872082374409752051622152855599512440489392057461676013641557934332557067699758891811396937263250423526644664046913232532088943719186681516581143548867977823919320851797564299014500507321642047687687800312249710585912293917474538091803408882172775807444886212197077899989993891020128933673874757695325540900749554368752042894115251467295782413163701759705954379301826130139778602803790013949229587763389147315853726475542409939948186713199687554381406756660995749816089294606142609447642599128722534709635462755536028227733205678732624949119679000900127338816528395808183330956165482181000511404541985732957978519827633894443655407195764198471449216156661362947373597940892295163178083700727153793512168958040251059052476974315901766379388143415178481227937019862577803616146359123145492323091397547666621383530707335178819642771917890767385079261267928747615899127190329150062069756315318351863561100778554838989055917385663401733603723231675706551075680754858030180564800712171974696085538572732839988494022683518244735323840154726981831111878983254555187879101712731943778616551066698279822802509026901182581866224759357638086755932686507418461475251683221852037548834319722861235596291252323005102557497658936356047891084480437824399334290065418685519816604134537270319203261389651415452787948920363721797683546409726244441009704290079675297660640748631748888204329359532728272923810184610648224477993271888737598295414499289830965555811674420415827816566964488802145878452355990556865555943225875673837818503578478096619712282743329365202702549996686836486154321168351935513109472766148950356581883551579539209384004631947850687254176348990596579745480513119127407512627608684863908490786705835857713315205303819373335360806267483766032647254071443889959068498443482718609261287841935558459538928905812993142276837092264681347587263383642323390397754356094855569349797387456834077762791985386649498502300804724543842683973524247871350155754542796954218469370936994029487687302278074880679077369569317795575911815049506717266070107888963519285320797059737388879598008277959790148455905062057157941961944651987661695727331790250559742444326466202169463278218220157841515333772835799066392910705562321650104083872174231831494174801397767012961011390138569367490526694806911952589861337037742666141693765101215531938707400129767020809930926349107103841339213450627906827574477125045501019470271928068207204023732651901337274795130621761193535456349289793493384927087608942713151064188407418207471689749004284310329926835895107365585455749746008924492224875088656802948648080156706382703058787078211256161536341138533107596035056133745193057847645549498713016293051173435027213007177793588770078449313013822484442883587940392339092431650551163914537242057060578443219875432613645273215250499514890372442386827759341019580838576782172086566144143698684912568195742664388902081188324535135905617946461166726080196633033273317296739477185074012014636211012421818623901767376460144313051196250268321387812839900810107746255484001158148649947139343939633637357561536365225725056755909768001579317547174555512247411148499514798449338392176436475884189972365814058655053059730826505464448745942455879107175758812739814128094676524415805416438083041512821664369864240763123900837390305028244814502655522218438821013537190453513888821349609001245253389745339769511434192834780598319074743899673599670942028467360172164888348974724758928322687444295867326609491011019271073787102188903681289840818603808794936889164890496720925471498369575986881666004010352837379489293700079458837265663083781670272070099549339041127907742054646250455382686240066259095952582715780701702086779890326969170268653047199973481854330674964823395700843174954710090753833965221932955022168105748917767657217650900266564391092427387013701742553827725626191826373465291418473895081937028699953997881931663494802012161323656245114838760487962317982669609297191517971178150365119003150293250078826831565461312128154183384951227739087764557673425393167860326933780820021557286561140636857183778650522256888174957177730506824103939168336574625386638218155723552119903045992349701944650291794143290122524170714183761956417835525064817122860683330670531833268791833963084079927591658605132699402779898821717315580780431043621822715642710395065022253190202465278986835007491289921062572582217607666405784068549886810634225921053324278157317900602371802629375411350379862412968263696814183532877561807360353739689410977024731336518462613228471424774623417111839679208413660169208455716305232630198751951140863025582456673464137671629933510848127786047077913203966120646032035274091932338890808008192135850608690779896213749345852603598563738718447556343127109637880587080385613584028129174707814562509174571769998385376061621859487002389169967913636295035261174119687247113922454109387925422541687485170845656942541355655743241547342631981177215976450071635064409664796098881512586300252129357929050713049653645631419851491637421348083897684010698123849825424427944472086692460669385026020634283708902081830868910696137064798487080272339435168431234959186294572735980642525177346256724181387794168055632731090703216693280292879168949754333967397086038080513921129561637970492742275526224682257136165063435992625522932785271580422387424856426363812021188983239424146960308136355225576628125485736805773955374210344514228577603490775021499214216187448520452350194925656712277576257578453425179812157740144885188606222462823565618049726197123950468816602937233907659647635717006861831755258420736772408137455463500026412721515220776568069812465852052015868700018701268482817968882366869494032428082205749046764544988163112074849787884396543902373169795077063888474923757234301701614114876956911597195226930164062752110983936100250630667951543355802702098314144480994487217470767191370035463577628087522421076246928219447821988726812264097814690766875045240683419646489303093038223852582145665128984577226980916789213774508414874239158619636211897984641872766978261616451176150974740980889222598696738861042028162641080326474265505783434094197788537618716946460524630257087239420489044762338685086322310415502863858217086606426839703387046378620626450915926870628854542467784222135429653687638213547710175091871629914606926643220637232983103135609578024366981781097893227092715690078024276457662609736162584209659036060253046841454162314432000743498515001446366388860046457828797767622535599807213507330199828768799240035071369910279237760330443065218631254902969763276674463397760847311123341170087941084783042564409493193414775626470838685190503132535054057276560996234432279811144312450738968291644326123701043410591590054554745227381900902378572390631078548000770472228677812118132816385928514659763251279297102965751167860233993447197949365463718059598919825602259899731726836627142859410555317252656784403780872866443704283262183901983853059302304819678442996881012712307183362891286495122344559286471535842443519294294430800262877786610858145559005128112612485214097664345622380583926537014773377814914404156244650384403425479316243873874711049075227376781566547254651738937510810232897306881084477420150768557338433466817964841346241267187888444137133237552611248587647616900507349665267661687565161628893819377191226106986416231539948632391294673273145915191263416772860181207039950499790426711404549510060226735669041057216399231073470672847459574151288937503621931209130160332168325947331603105152321423803967187395772335379828938150950473637804087055078292849306683531850256715842969173245892209648616728760849112907056847860685246028274052419215205212435976274825914280908900258274738121603743034999478365690791514519589618850506840139862010362691456147941734582373527873536298257292928001255001357303760377192781965815468815466751010626951173505437333788313860199902291801251312899198254951478639257308398166774990924264031936020274676849979720025604935775690031536507893262466745820676312269040136658895255512574323581349590533859196011417891677214083525705091634073542573067132296148221896858895955493832144991692455023155094131158542791307563051903040489122577712044403726414976958914488164776219257690736661207925851365874238936926566303351936296197261413875886634469761612839603047174409311945308973941930063968608180036833788861584573949344401135974928452554911579790230262194590322494335157360648145435801786991924118853904740203281646125097840190075133697124573126233227928440808242224416183611918644472307875781946887239715614380689083886115063220253469748225427359329111684149004334393408906026352258172146021494907380476841290803543495315251635435984382466319570963904199190808837648731016834425142962086737081977590682011534441655037589762584493657319900562991871349676026393335520021742218604855232692853333929099030314282379554205143293920390941542797187740575665712778359614025428493320957627009115096575596122849675347668566983063263692781145055538399949776437354428856493712826572815283230520497708235154029393183281852878630691642699421992312591882670851701925629413239660259433059683706552882912643784694339493106580424015442928839106426602384348525329892144243245622079006073811650175833210943591506520541660027341514199705947997746194510791478344053914380828242458981170513691289565405693959789432247937916855647106857725223391403839154255707718749812954292956154127815492917228215913450016823598662861594379207056423707457140427906581930383037035245506083578121825497383645437828691970564204625811847861145005814937307285086468439763298449505632959706024769737329215947400127155692746325124448069840093863268962484399318579748867954553440998276112181037315406167978243083998606648041536613638103958459109792663049391790664194128390564439433773329619031678161641997213212354177359670603143223220554683609035813085289628651837931804073583790829340397508194529847703129263157543361921310779470622300288342105383527317604467404605968284616812419201130363618338609072403547878507321209080360941843405679984567866306989448924163283898735475013248996651681385694137863858092174235673835615972792165979822385861066830980176596227215890308875896364782892309572189002431380395336437632361771114351090150982755201890351800070623467429396218150487617632126533428531513766216129201795244708410419074348706392312422034120211027582800408183493525080358569615530517995365035770141909546233924873393720806280681986205141774259745489225082143673384693914490643707865425122351481287137206396035093138040443901895942751534284642519597145605294521456176622149555170721270255137569181233615253293477747398763582945915028075391923422919001775871431805410991001247054939899245058851446279369866903490968443352683820242099418487087180652721685071318011229872697546345945273666413487505147507152411269049133443462391796001462112556368941628610479683414027846013315891310959038755928094823670817116765342663579605525284507182771204036206408716182425685305258259869481627176618653078785300874414911634197839329954910285459825232993298232854829597363977465598494646247107527854531146335216840210470659509729226610765470981220895129604779997318174967437892143525871052343266653545689221956483912224735896171156550470196905860895794891679386911580433120868678777628936544435846271384123569766545015281551309161009951575392166018652984557922358776795597260826912059268147101023152499795583711973587676540920479446332973980458504424604658115101259893994752184150259808395513473586145088813259995456677788325531495548014793678402137703717074532177052313081078065349116033886106522180167742809940127442779028095710670283819090394685122034377180888629171508253126185831946786538469032681220499022157440267273321139442665242551645646992209938212541284416429271626182963664146459899857978095803283148777554854108158319368118097338538498748013014911983797007969573833179537637773830060287831779261066299161999988592369711150169835561834136505777131697867004185923949109205243853214494025289318157471655724349017767266734147290499525747625669397583914996250415820821010360797507842399436275964796573153958449191542307231005172217418998157546316831832992533491382308026205539802553613470076770164496085727779906877172557206839993472837084728658856288848770422027451491097764674719203290978362034497022804059321610383353418523145973585820215571167358175747147881104641831993178198553728798637666509631994176688968585602252624097491655459505701990895274908542039825738173295902854838647196632374947685242129051741747921718689228610101501008247227646775863374671664299750269678338778452539948547371117172955367018243395775646156637373644939496694677919339749309054771766386735287652017186558924104350111190880269590184869735624791545244137446794578780665650879011821091535274495173536834728467197029419892005445885500480007997306316593975259761938397162620759113251067017108789299655949081460250928650530230487658553430390013050004859501308853689360020036003337923263411396497124525685175919177627400805834928918072639842517775301006336075854473089820249353707364621518016584712878172110057019229314339204236797942495480478288572333756813942466353645013059824257541137671778693768973362726580780463102555826372126911055093908052863790515382869972597344763089608005079266277737224731326717904239938919887386702001651070931340591072242235326883182075244699570200420856437178515895776104116187982016474828519793819245658050132051739702536375298041909564361419925033125080234490399131775801510342371020611527379323702032004329650719911460638133221008704802287427644078655277185883231692820612066820470036226356261225079227583757059985963197685910556367350660201508762489584074783775570543603356284418868749550532795563990396079926363277868062930935103337961976001520694905817812598517749710924041249199264027446756694529719403640326202976712722319709568987725908425575273336682686407138920236605391429275586838685081851212775623994819237828694868103070321804078171183708464817846488190747363393690978997707649135877835285110112473097213795050618347406592860374074420968672499181114076282655021155661386030630316113690023151819677003596439296625610692567567994617580058240744882293017423105365442105345330390606649265820254254777194841655399841711960430035015600611610445942966465958501005219017597156765390777485068726839321545951104392877653372592805119092785675026596214672400844206861318380047769669094117365749655910867075426645309352196364227742498762932690647372744350168401945531036936445752976396972738840197658174263978915440393780977014791629415629167125277855920161235321462065572205342444084433165164663959341209331351375921228294145074806827256423470328118592640994620232623596744652279387316564588538225019520753441915930922830851273050522576100381034099520507107502649472522125713120360227850857563405125334133371609444913565070457507509955663592396137454053317271481363460020311520827095818912129040989141508005794870553969201922146774757488532976996287992042916362781102904509659938058195978438369244739357207160706446039268714247057124281692671007561683946835206939914199868393286050101711867314668828644272948110820137207852549896423410349290767101272829726212971803230404836104768625387347856335524740443841034311222224140883144687704848834014291524260427693757251757894344237546283978300620529713284178926320015347222326539852162846214875508464477235972559122757306008489549782269994645002408119003618844611063959794006602854817437460707525238447925920289894320514189192296978131478792461956415769530899687012942860476335514986016832327862556128526200652849592785643407327048242813369080200032975993146396042511846294523342023336487591564536489371235698998774134893162607131428696280977585220063569016665199504988645915511528664432150832429576781717908670239047731503767268024861648854851272819036814841576591180077731520756041160354211834969436969051728967989734040508332799084556001070002979371080621863730230746630501889423217119624237352772322527995015539129360082088262868384716467241272828473027233467277797071037660157402407864807319926512290896693023170950512249577360265795747265328659719044752617615454527296617180942000499461231412615125755274370534158597223124139858435154835451101010590016175949069948463099854064467719048009914612472743389620578132529958230471035507307683325444604687001709279474882017578385616510996930155191635032345525769395413659743631025976836606881277415416741862327950876345168277053559293872050238541043422374517840432680899971149538069690881436519334182384364802998142002149515083579199448971953466650054525089772535100592816021939558468543970899080228974228342688529109499224691245078979725217837972343396520677184171527799442656588176478958866756237504429891709841558447278435351068191164687848883496010768808118794751712027651413300230119358099996999586677311131637385674050281623277122152415324511185392990988941499285673183451162943243863897528908259856373721584904015982405037163611162176352763657213504322564695600575385764487033820186549335909000259954846351646764413238155552978162425132704476352897269733277765163336297324933003745691872995333345439832153528627461668318804204149513052387466322125738263172702304848938002409779487302886519214286746625558028622930606052310034615454455123995792111234311640962343453146111152831112887543054986682552721822700391444693220909228965144588217278621160508201587708707206691660208020991350095394878145642818770381298852954668617533238418921566361222316518118208796807612989332083145575184011907635654821318173012791548785960017409275502365618814493700069989229606266294036105379867780003779095324185706134710158765769908582505215469363993365790624326418458899384769184956345763309196617577602502209991223380270001173127797501196881349935137200373116234981328802957184686120694262644961755851722009141292221025222744760988272058544663306008098932825800201447916031513247227635125893041014748480199238923549063702921123548188219547210816017578848599395901060839014488551572716923957050442546207782319786999391966504803377502375470439391990395739080301195506986533976588628544840012784260360110163495107668748281620580748041300090019451250704115436524386664483641398052743883052374859748810165967076055288205790702564611936151788328319787905425459084354517932226344443957642971683516649484755253000717050871999715140419615244064358205347682330401351973397969696461527284616934625144407000530609792174245535738523029502060619751802674563267076239546409936676120539443706792107624995398821861793568393367319686199362781383897588966611498061743817659484932610303813940523536356785604101950012215862032516040153855163087695736251740581759808572106850890624507762694304520814727505998021573305537191547284955718118128225604512794159252521036659551751652360096894428790883502334824206608314380343948576189004289234016942298769225498292792750920691767395649682400857012145068897440198167324874733804584671019235275568075376256619569191278011493667077241098960235813129233821405439091136951830300408329423301712288969410549554208436116588885737126884325815878507084064538600017205243408508788331561530134438010785089648994008122551612490902648907923151330853865287455011809979925395395338559439088482498994741536769296437254310206413904813577809116052856651891995318073890585050418915995298024231083493632337263298696480775964867636505234653602158867030186673355766846528567087868029997660146112976545015097474468710598093244077607466275383585131963383999065409977511648756751684263039999696923842434437036743816718742592711562761725099036861282024036981582722524821592840233453497528965950018078532910328373253727382385643341968352898352143868378299910632218354524230333070792978055839982476813866864632006690713831975252896473749408718731847474784120484158990357282654716414203395459470461110450547848755807219041934240353896015797438153518280046341109953222132479395841525160524286954144362029723686571061935998427837862938119822045673678443369499482701323240941417705945527464825448763179438008659642435693918286882049336513637974735356582346182498204103834632075329243649750047146820906698831241767982693200584807835657327350169703713926696607742094663540351229448071640589627531843388260749085995049737202157008856288492316164862254114131384665614384850883698801995466722941976700741085570133073408202829314532818396748600215664212798030942486676013134040842358425912309550736224354956183717083748156415459136561140041297693623660450217552995004098953892393101009359025132994453827966750277640890483608536038225733602401799078593900002966559341751948115811292313628781502612978496045654187599648303155058229059484821850325547016027762492271778364494984663607204257841109518278934656609465888131897472834280492097053695510783820013485837605963135806574269159639478714868976149952698541609067253865119060728962415631451177365905773504842669353338672785768859421166064780112947756731990177751652435744640073287222781872867776452496051337098995619468460909302419667027644982703103921189402358867411665959035332252626250708349691065057144821901226328628372077040122471110746469848474299170831808135273203079708233528528372583452688437222393487403102195645384703565058421733270429687107138109078851735082586047640743851939952384571809325802083655095546776344686670013185253110680058786256526743648823284574223586558049141363723072318473697087661126976241558260047012396828345646987757417289170499325655353646843765845371655362480909233186383248381871280409815698838634993427220756100768699064687345675358387314555819528487325149371125729806586514158291714490681280451272834076462931643676344846013223433011534184638417824306715681101091360260608847114983094477838915340634168720250159839695435393784818775540167541480377029819340183226903653253944344398831729720352797256333698300712906793318015618266105391350790316393143195518800935331116783507772575638446038391462629700579366124434915153925744996101717580598075685905272967489700476424070571433687437753446230265729438480180265632209458500138447170362797300695917586472578117453455798540698218325958369455672520142750883854692960611164123174812770605610214799872654269394005796099206821690861439053304899987248375064542746542236848560001854133356653049726258286536006840709263327292499601855617918513482782093271626440416958617513072993679209004861612425939095286749898282729517185868727485637728020826575405009460232538082125348726747934375441130351816879948702100846901470297049236456049046565957193227146481492899049404631959877941210002103146434257038089005779172553429071563305697304849771811677764355285814222640703570217369927004453161249196495690129235014740212495254845868588207114978796474455526198430570038989111796533666473157704265542042234488159210589993998555908250175837621661189356123667472331173470926871245928136629813815452654082773476733035240197499317048728317709169569996552453992574373561161575657577872121867346342528515634394097481862929961787204396264051408486733099807968029467728785816015902054455329434613565581501177510932659848060883444080365531186531621994996814109050783125653797872196378794848918050701129454308275277408452737236558523612027505689524670984970139065647543541936648395361654516666833338700804667236749613810075988265248251709137993930948608525303193528000040406224482623450090471251508003116225945324059416129228915757362279867718753206663653679396592891350926822928180848078715595957610480164056699745671769159335989056866570548811934483508647473097821715777718198371230559842024658341466856310053924856064211899148644605523590732145887899395687877435250623069163272973487231334940027656676916599053669163860209372730927349159406485276699184232146115561321618315148651238386391763197852383338199086356422007466583032992939252791693142106063018513320737394402970758798029047001406102475753908434107344839506699253327632104881088110938065240872329077511665545169254784687160388349745501933024553390141581216247864776693294972475725441006877070197188520454412123949028002220642453514688494249927621812057527197399530289764948649865687853820412200257491628060347765134078936764058453645193188492426246491136926810847742994772273846751227443419042017903143189366310655956432688944634597360331761449051832971991108190139989892459725731793809651688092869655935072978622217638209832963949848532792700714576008049487569690155895878098182057123545396003529320149594534002245989643329379429648498077601763962414112492214542870312454686946074646143626676422544048639212700267561126911015282744105335521397331933811690737942836498427405313973717483671243360787981527635470710234314810710656725636886505247153001324467843238004039776952028455722113760957507009816894999873385340376592381643921080978710217574332341074621113847858999008898055423120478951311034845480725133733288339226168363753489681858641873385335697679084666555907783159163074106263089855750169943917504711638958827926192583180111976633967172167972960015215638133854713282184526949653913311267930137005008580016480543178361325764574304568008543194551099545165854880162854715894409082426646715946886545329516110587606880332899911174524334645722855202612656829117761190495201785008129891379769494964614050438654201234027224682870937202271798101277875330352214968764600905847518075570733395995011301498917260611663644874378332018952832908040196373671036129683173973025624906009221301852441643264851404024698826210723807604158620234191102391017764455568263752098556127522214592911359294660718659859455120291861750580453801432034862894283744444222375637178323791174929092277868077397099268503597207574603584819287438834086483855792451367103906927966180928362860334046947733479894976141572073638149655710380280759464093224812852231330795961333379406954333478978797830489171062134172568017404708656674873018357476535987829193824735987332435890637117242301099903876665493337455049898724284364583622931204645165253501880840745332093229246899087375338584316791509379390602783529712086407287806709125934059957410337033676404925959244214160093608605751901901084982313435557520560674930526553085428659936253192145740435867977937132875683760581172444324871815326099048914006932834049452016370658831276773418894792222446507530222454548024064446091051711193938799246873086899713536875596889429452941060664524501124235678547629456702913502418038779258846601259820835900417310481216418648781622266487736347114189543510809366698790776302239073156155772346539031207815302149863783436075538743142832084601674434118182563992537175021951192297219973935019652466853501729407623498019964000519859945230353026279487196490790203868813429150252808103174002011176606187780190798631102129596779351388514593490926546659963139658935215383778802722362508053821119907891884417582910379033982898480569237261303994076932144350669731432367665222378278294696672385947535580618941438904871582747982215462767337589698062160067381651176230278848985650904042131747028112179729566262982286656960462768341892847058490706248580646776525136271270443811948931245810284568066702315343102163352655984855042220211013508068574582791922179209742890666793838778361698526916279217835539327191973622518759419022367220739599130530675625817378814802369488520798772488884831530911567861475983915513083774494114222631978413770753117715160780549429947159170072283228912248769920889369157429361423469437066830755908214444289404464649657440556013656681509813533089268732659449985439554799357232276049270454833900067933058374896079144741342557219759031609965636584269033519564479485949068736113079230783159908583222981308475889622020007711774182498645985634251422769007587112871053784002007214413309210065699161065863247444469179521019967852699942534890835804944081976600401898950175830293280264510676915750458790232314545424311968804800031463785313356133810809194932875015404792956605582114760864532502642773010214207130887276843460410481702163864916328968469357710486802442237010403983841102048984069712574453880811326917428338130726548741357573457068114312588383098246230064837292328704618026712775737606909693688449269046365743896551451957839918110937360734471683690319520441741478805398624570324107092304724361478987922783938282481812880964425172874718621230963449350841155255073383562131538118101513718697278732833819163296201953065718489868988152379740589278331375761590229977932742300968357138845127816499318394489366272381548807232340608932239949809300788306927941853343585686992577260011264415887932718788557049979461351221885644337535657281310884469537588860442490812162275660157048488661126358768360747425670148758972269616642321833193547882832590292603804624380342878291517917190810491207497102590262817577166998339526278576265542899292138279170614702762511484510318548028620195616340478558072695162328132222912171450362404140395041940651635477235068242510239334650542470427261060243007496847466293550315616381688673483696944827141021345286083390471880982759255427649287525212533850478579573906153380736514982863485281628496830801060950604955382986053307529704797126377287126685876390133402440088838873687498115865196240320366564478060276213245855302764681259881950263765269679167831539006639435306983258584643444578944895067842155765551493898222340289692885372457350304193391494261159063239469086958472426473859048652641126975553414909630406239646723808911662073544873601908902969061669472249719855694853924563144780619853635081136489452991210424644239304668186373544307149612709957502287920907841487698723934019556961707775009518168721840877902815388052219197440297914928686098248620448638511553365481921778729530802494902627535899584394154620370046261217692271544467267193219956840256732998438570711252129148993392934721615716915222793078316201071874313259807674282152662570791228939631659496617570979569815393443347499101256457061784959797640894138421284598530897339521332908469700769213984849264464233214458555891272574854583973718824589450698466945080004048993885515673763032777033014356068978646278021199593493824110902998922379433764478634162724454978870940083506063690465767138130351634469018755727462543760803114761111507093056700270887563133277219624268290677968586054273621420881383897790302174234931618333755359818718500128073581005340730156012778442759169820054153173972105812777386382181422608408417088327313407155197549964548472753403303531854802546924862291663002953607469042843809351254145029758853556351137208089516306938442558924922325596284162626606413746364938401003552160265208699595107378114134885797582472464224200411621150267389626064552963207345663690261184776601300661977112800287782069828426702596980143183327111420769888780903842696080066060100705337251506035536774071601590570512486003140543048663628194112678564200227677953072378729963181775869413629964404539462258317270599314959789935339721539173247050877107714259816582261987703151892447651392054920945372424900378308023171712317002360155561841098429382175694864579544958567384964369764215268922783088263061623265716824996449089033629034689266847746706018825214909892425091986995071687408325721377228303397885469931797168978432574047863146742011276821316824757940214040876199024006735499506636201342327825080820978170535937732070690323720153861405946789830436836196533507214853298584782850418071224372168873038333119910897289207001482726665314594170534066095778244158603146610394665043324951016540452253735756990872235250621325135951470732092807118027353741082813850683257906190813806217644904605732605713110316449314322219450767457445127691367068997913625378562928065327350214947987527703499925402721061286254079399470248396529818056670693474776602079514956120564145447711803828261287076384665487930780837324547726981248121200457596322470126335018777094921887782691808336789284765533374097622324362055083582129582619283294508794340934716094723349903349266841960108896108532596839776184838458537732380604157105221937187068481707180880753103559994197082003941099485627039183789898272342069729301336843495883021675072843331953144532977213629914242633833892138721224285840570969122820176928442082893547642104053287043661241171477025603060828738676029196841040112405839196888959816657191704626423840325621323438172671291226579760971322335767106428504971108022397036527661633634744341194783712441973910745285171163812466619322861575920518263391995671914445642148442193341036367879630801017608895710333813093280290293133382587813069735709297885112609485723180405190223748315715876335849708236300346822243398828923102452410565349823595919833844160302391012397994882297378342349372007291713193757169826779879475846186806199847421814299008250508082808332728314982162102618276966853710272821288580922882234547104637511258447160177591324993863769772677152231520716596330991466764177287780978415247198903519852042463053951771582346335581853277699339061511096757887664906973339594585393861828989900455536607909685428651182977093207388152449914888626088840333860194464266511910645622874796345408707837208007426156619494851903991410192341320548049505686336774067682113208436114855004521048698360979200638947516351216611548613377148502529665476479674967215915090827121714770721708678069377263987909675507579293330145995645423769777081086303361729597462709907692113989717440229582768934113039613941698736680888517731141092936476226364722610443339848331090673621973279469281287761402873459551744838541453329044974550964920706050066822816728505772008258783106986711621293364070213531867651026902245844389376026279547142956013929600643765177097084584501128719919649911886309171063756613911352650902616931849192116435121450457085354245226306605384389522093833018580698786334452180336328124574727636970623640331849940409480691102739763018418708574752315058545991857448009897642766551324133184661893024574950289025011106687574350308939872994893477564589238022534318679777796919204933499063548009585656243962547687578540696501172965783566914441426462811795442936477388222798992597622867285252255281013579605332082292752190504560520774655653228307246197857973090414563795259667502890346948192867927574970155730637896171764921423524445241832517510251264565563642330755903271562584463373039101286821635812159839309987549420886017782918305579951120625536412825119041582165355320643293588713563972022789773690388908475029747617020394376393924290575774661600641614621177644104315455278378181763357983363685756185587267492964188960904554584227968793090471765218164276596177974361901194277816445152644402738550015202268691474671572153051609496324723370228608412523355146614976526852522126343935618774077031632983813286936153978652947336687034437988381450377601333177880067434729066245735916895269736455176117156719578569998294843998195052432805799122818259197786086486828288258439423366454384863743931703577453112669179556296866042223205518104883718378648315000954946799674219698889001943148375391205885399290289094447123923730135923292167726880936901732810149346997513459612865301788013082844474844771190945623373096759550314088223878104631786576605840305207523112594713427287942372274312299406830589301521043372658064297834510596284535362271984218673815373410242390132394125364762054064522526615106460010972380777024420893271889328252548789826498708150509100813513251006598995498717317876893220695776794983627922335680292091451023528196279656078511854545224167059683310602522722000825083977085696272485236449370462935251449519917911779029704296331978642711244126390361176879850524049807588783884256864956716753203578897038515580795961659108635880774128481393028583257718289313416902038762984794694534093860008383741727129117414036602835015886658852646506624669402949989270591529379332278746544451698251598959543932432731317939716510007251219746114673437105060768290622766368686505332034591839225852323883435406339202169828982201155416385085508170514430836104900869592373810172724480312674231979003110196908643970544237226725524076723257090881126391355794882157568637702218916856845793733106790779128712209504914511751499986084900810646271541047457380213642931433348883951908269088674803170389897968877826491128567932620913152240630987420516584571086498396610169528316879391360192657197741813766247054947096616512957637935390376281254340520656975329841334647571359984272161094850938361870642359074497238988152358968979146952016774215264631906997841773508590604782085214375340871675599144339138317949168416310696025990401196755135464287800683530269092245656588454960395547730057019361092446214718922443667300392472524925450554490441110884263332624504399712862797264263457144344092845927311268764627235333123486317137640086063016351027180561785503537578034362595410752843434419939861068347497002296183803913101171138174540443998300928769791416974242023221305827046037129813443211832408379224206880151017976353495690679140165076002621707396831943578574971377413762935622762501609582291199854998261663796016233210075133885090260319630038468606300737490532650842540207571503793559497654488208204337440676126334054784505665736695562210670160559505975001773075264911286285163057751752812600765753425920546406057051586187088883955758321656406794143054644665002168289730827760572654206960587020805376328414467559432911152185188996522345919591201687740237495686128570835754470555434131279016925097917692377999871003612033588362389649045791874815817867762080776383578196839512071670476653407314378287463916125838412928493700841242941361800338551706087363937916819372965712569628956214072740227079029229595106661210464176436369306167140811717750386391828630363671093122588819676367345437251078836936866969537931359886299636591102968498427452021718231854815636349766350273614285162588902656469398089232043135900720939727552431538743469031632148857143223530105620700210445140105665264123876255335662443704900444041483830178089450832937325029966178106603412864728030650083878147124928782615741691237703041211790136954961519548233378282099358335627160488498729673448274905555556055664786788254486279555726934369661111019446774827934042757103148146307586287050973723679971864682221093577862885878500443885201320251768999667512870325053956714610546560837370515817017190975865858160366876174092925342122223668926631253544275977926773155952520912026064797124968220998713887106914772203859768709335680551996069101918850324910843615400145954335715214917908466972469590092406566749574917675581107516443254186124847427313789494114700193214093857106027384333783718814990112888166519954540149388299467633701130957184809843094797753251831306386101903090152344727435794263342425502949669091111867156395636886793815137352136107253612808544751458733254339225466634065530557515118503567650773594392874271123378188494142654731831234869341931071884699671296168642396766786645154536540355551753329444010488667961428718947666195362958832728124494630753174201418294083831122456796188764876799164088598740173286540609005271673166982160739122782817771835567292305711514591650815132978825857751686597329811072040882663994579921286873786677746694053863956316342428043553463702280814195715608171985593695726426711809778667313239750511087708442077302891587374328803002609170274551429962190123501210280144721268952313020222405549620137094802044644448847905003598109046633543902202598006800335127047319072031170453296366137916315154306006039607552594277990545636618315315198892371549928396787818300589625556253124344811664457802601706481169567779047155002224763711478166900423211712872357822985436067733098588624471876749498403425920580519169333113240865805462598483493738054946564466019472245503110679524181443917638285748082087936212194575489445324434379804799998028987621438807587747710108727120159465911816706429391218137188400370662382632305571153027069561007430377108105250299698237415131702111308915015059520411860240069287617163787534214487615072948061542614431372988764170860182348292298266664933900515873478146764790268788677536580846451806653644654399432473950115848359401153469539737275251180693292628585972714179147185364112866561926984408902125532889461629152580691893154642030081931098545679353703110306977857623346803233256081031830616267532478993714239131127314045277667160169596906093335492016881100204648149784650011457578614758143419540621633728507140513707666968668697755898852074488961483071984837913338522966673604282713354028570096931175104450645324586816289018579536189557434955106052748410382919609983459795627829641939339760870563835860170848775398616936828808435360591686390242173720919708031105398706873788769229128746867008418049310001835852800750042665935941843984671351154739836136592473760516974072281317121093372362544210337399229891450225043306121515062879503481716465860276759433557389631512217002095717637933481064292475667292048006384362880297944079566851974988050220629329981806565650890716745030848992928152493190907305809758093311988275962046373496652201622292612699741906730240248578356759058628996025119283528332401489351944224609729048924753919409092317089536922370059514094309293317419363608992179938946812605785004092012962832550901851582042692317365389159887992691104404188651221715049836916056391046271808881970328745938064659822568248904055203320617858230336404521711527415702441686337213261056336199777011634478193489839874135098150046327649523973531222700236965569961569843689178680854981375913199394047847150796074161762878537626354867922322048501756454573545468705687636106694278112169746580666505157019095050340692774536994962584201947509016489678138004959439366887736852387278235688717445856434172930021377229376221180062033700631370641641730302472436143827559553261680458517411041655558066974363839278701202278397938445841148337676050714151344055134111685275506539120376363042743245955069024144772713901880882464355649884402137550472512600962321116734006941207442809203747587424010428660783909276594580424662320610559860043256992607658100872638053686622888921868793624476034892653339750787624758177542646477521951405957542596006740136873461744037895923771091927877709707610504793692049125631225344200960025821000814972438814512089374369141664601740638103325362471361066830279596981329275910743852534809505296413240195863969211991373420410665408229655396136041856363048567877202531822180285158487720973400980902303093541382274530621067432185280795381189989980168434961823307594101457717565412689327580818407303912223799030299404496272401421774662618707234279343730847903432584106116521261681450620834154380909516896682946230504966649802048639774245243600008623637200627659219471850128930039877057714873762120323410336418064804280324537332842019626039562091957481659478125020095331218745497704453391224914932476865781635296013572671459675271412152359382704171818425882483021517260252228056885718375091210348739788358187904822893082484748198174871317988812724204247366430722161266181120564579156836227282144368251769688370723502415001694842765597202367964539837647817596326144963784634360813685512666197877233975744473859315311144139576002394439894923137616761324812200403067433857309027421310863607567790664684228190515398694737310916917939322818401409163081271283383135994962768650819515991369411140942913632753091016444351231528629967822805618249786048295798260442519956991162603175784612654926782090321636643252649240051518758160896447025495872281020845397447271704629811647674907418502453467955480125835944347716854957617312732704702847625993252803745657540895136893816052493007098920032506941048331915755132037958351968134132349837486619038196824188585806675184636044478347603232066841974717727363845395270672480820284475294380068517472710633981672011481716920220836323377015048087350742925929923192732475121899267556911735838344525684943371540579177130064504441578620082436412323678233402613545699123994030166657790140979722958404433253480406160206196988804183804287957784608856033230490998949488359094764026774872036419050111874884178588677656383969904083143755405644088271574429776302516313401019728088783970392177340677291691274601675344059986948221531861539656755436264963491989574579225423871540183261217441867695606377187916152351557185430366018121959798211511633944452543472584700321733773487266482667122237971757814105810444980480139263677743516336372290862850958793817867373029014745378940180956899308432854207262218158463389264349504727722246328011019386373490192837736003407466550599404757362902588839387156498842759194231316213699774885846090411601767138112196272863923882522073846277317407929447379527504000550366332359583815683625577987395244295250170708537896879678239434416045254616353595864920658366236627038975145965189937186462930894818933270669765882916548915670992272406463708870530371298736499745617963489256952967811345654282565216769605458120715031201848856359270342708911169003077886571615251053836694583814800495303847702666856776716230353262492161644772816709723173994521013289078278247135146117413337769547328283495117323758820684671280318009382943097045533135529193902611630241323765369464339503466623666803634921512836514550144571835000904851796141080405224967906996855428974648136614200553311157012623063709022493733551427278174417302709833256083911351993034972396459861544646590089596600202877335893509322537545044896224241468857239657052857817775586164289403767352065850541252004265274290675426162647542535114212777579902216465146190544861966260652226199523346856814809831853761931869574868604264762702323555952280829150587847609434484265359483536014560660847308855106113445080758654829373018024896716603341090662853714750455119699575558488538818906333109008717416922909121650839615324447242516628491178779008801098052153940066237722122713464590245638391548179691266721170643149805990646440395986072198636619316101221041719118290349493446497339476507952312474826759986567694821417809646766015695201801222587074381369494811177574517873067135850798318749924074165309807079374115503968835574297060914135516539820440329024683242596253681044106370936998776738137011535657337626462210654260335829420147410525651638583997084985125764312066999952818637675026458361900337309524942733166901330174322932526347656574436746678599153463976292652510681455498210143695962384996732832655145743219608967859964651909673239736160392979144377511491489992282915954987995052749633874401969481679852899795067257757169316484500852901088762839683880090208162381481736955042191229579669554358520923197918661006143550132974746743423551956509895286239290559734662082202215011163890509606460334262021897218483638927832451315543629176344271700398249982656622749047848689703898945170269746361036306401998481614093113969136811637798385003586530252473666048315081379257805136865405522399018517780726762139173094960548222404994613434071833987566089408415611332251361598239382117191985057096061541507955131156117494521788862040528828564990598668847675954997410135729143925257497913707010563527901471180789325753522297664028397031881887005453700663375936054020004241898004527131796019195171732618281269702980720524605270275475121076489318284052780049925931364759414181408193600855599100410274111675638435331735091887529883241677609137493921107489533564783404770728932943702099551144402381262163802739109562621711456168654310318681465852587781371838794645215382728952232534480320038007756407740913713784357529820134805064660226019746197911591427285633236045970220022948014331486754889342592742564623850445872309260342102385610090162259688938488784819802467363509146890057758666924137743778563682885284341516808359873249720916419965589001031610361040593607630238905428126798657554999472973518469238552597078423301778533807825465056110934445499224494223358975174679357398311188887456733813502330882327517778976169919466192130697031853012045843573513110641241856197750008569574323513059659410770686147972602452447716713630343861931492455964427440389669021282456062880853751532019999645421840555831926783300847316020575369994024715095090825836625322904689992686508896430553231758869209398466718038338248713221909456472076533889558182714920740347044328253202248083350647136748673875001327381532474146346138718052893702913322616549346501092019575247224503487011015389316990235915341636086515555316570110514322231592705265664661344466973774718346047703505853894309743083491683103607037753142885441766457592827119344798421890796736986885249519294738912800111035428113229300994235510590785083087845883903623440233703417996695498575300454131261032109961275077067313496299559637395610538667677831318305292259043298115394925317019781317042912883494273825790556119472495098596713821868166797256531379404382041269426356500281293781689461794554856892018791856885590789326844526092016875887537112489257957836164613047816358696542902721638380639186306062993804535937016941411975108237881272341735549271754202907298419444170130012195837751042293484161484779284019361399134659779829773230442165049351716063698842819161371263968443594486775154173691203276392849934019180460930833408209800710655672500485511137432263577443249369417170592014802894615644407693839971389144836942208206702385558340278018499432204472764939782397341444804926020494709998314662441564248991688267514186023965147846684654308151651387676459719848377294972764367634831697789501972242807134642674295860651901246455884032855345859544188868097132632894079685833310307917905186964917531781623990792648038219209976597527167638201704740283390140971449904148889383950279164120215079539221376673035544048270510130773163828604714186230702646743373566486025143630035034668522778692442304057957148424240470125859112967235310813687546542112997557800887181209623613667185417634679324447342908461539380596368616959883459916671328976062275591250157507788096749234507610304311509585089010404993636409710519735822070163762318756524963313265052869247029450768672498633986109091547261074632915816108269796079280263576953537779077984743256801087381311507951668379872326812183534368059022495663992908700309989721050737704988844426268195215327412169758524312355480329773915180082524262241910994075724844412444281635603245146705511531091302141087349233012452102511998268470963927359255891605424249895937721689157437368262986522821708676679546633232002587375630281702830067845656104698867512974344016644763565060738210932634003959948074938191707804760118980617774799462772012386747664949941879998550984038241329650909643255625349086485593500760567460311526347630434695350939947449626972711692204930332736934922538431813638927989828494182311108087506147058111716546589834967854779748925352286333955809395275750542692141786926835751852391903542354708371185091279871283317574898871685792036048753966372253620529464085364056768333819631173722918967840673393231373325207844739177490867940915214165219369591086986533056194774069935190935812144422263068296076770564102005661923095892123409753383079595983903798408267726044568415799032920640288916044786460366325772572685668050407230433173628208936484358615152755254906694406436795133162640661438590262347135293579559050714397796163159278027748503165939369255821685216841530103184602124568192102584029881503186958805185348245527303259893059648216525628506407394858247383385694829327462661548806759338201205431713124368081867704347639813487668048281807484766993046925431930221096286037455139468112324381697542207333870122723914885922896172568627543229505013585330337682097934875087797361254350936499449499405390172043974991858251446209166775004151717252765569170796435396624829589165668854899805316216257406994651661584196480338140139230653400575192904394436900761785656219048780976666782684637465869084258183982065505040057650113614347692784667680840718959762035213464588296112272690822748113596342502037565424756929710094321488594066705601715668239094781188852795898394090005463677574164529734734820038613282735436018634187256241166156666350729327168501894566325077275824198192998697362668836874466080948815914137777647298592754400639693853343233599265986304453503301183767596679014909128716415659646202513556867953811087010226775838580001807113390826312758209314240490162337440855561387058531413683772928257676110321345942769390070393109545403090272072092634846717126467724035747241938638665896154077419555094933288542156271649370974020046658742443180438156647894348114718490258972636721677381015345152146266720729797929880007316299431553015459571343566357852780271090188939026051048389339787675605856246452090791474729490067174621371619220913490505310238255268929460892417501469163111200604046357813427396847583469723579595773382044481479247189735405219934807666087788209910825768855446721811186383345466145882403082784599339956789000525097480740951486775747645723262902111647428668479113116505702608238757775066697659453659809060754352691209864363065389821352700761478174428900176967140524176487365415026534192940596312882600556234410825570899663657239400899282391680183901815612755293637880948048796874984999952084640924391450635049255969267432914881274320096237206550430483644910979634529322771871085055475518506545514664658850880238718510245890800965721252707522331806661786183505812223876709957964580912653704981152765380247600187541995593883394850870060200660469162626822252599019266933482249610189550388298618247643521807061285635281127374438472502220770363955148552821200906210995436987543982753037192542144155257735680678881813899688271541065239869491364321072439519799355711529813427979913893950194182638961299172607158666615409545163590209350298415964107396546032628135383362837356504416987261603030030953442859173258260276962187036680140785117075729626003597208505605445854584114210422992536820598441453277510582832352468549562667877369554149427966006056033999218934955148241525364111746541304428540046919595552919540246380469603474862434862316976902655209982723765673820655820187025202427886909127402419791433441111348830217313358402243192655490797658257702906736726920480765625572911547473640000749288975029867799181033727712850789889859011904015333922656124506427025601500437876783072860545430718672493568207869606647895466347925591641286150733539204066597688578212642716292254972949647839511644301721725158009155477091309303282783740426997431849891222878902684187413013114751428663917603670532178164856348235258236447121218947244416460170898779915814301169230554625871927190233975000103362178127280790363731003752227402246034339306068663116740539367106961312885987393633882134636983356283293354761017949151088518258511824242243419599832559093286295540738353306972912651481849995743511860929436256013963424318801955157086463574210816925080007600455929193281677757983056245950526370924785033201303970393471473209336578648450152805780575511430169878355375008655678520924772083816728792941073362568080551470294513056038074505566559331978412856347175136038517457105397584668314193345919127047642581027608148747762306149886500125115782207064272046721880509784683883421662753917035547557525283602352427878059504598185209789622110517397858282628879456551409956125154093964988685121570752267890467583735608238373274991388776751103010023829144827431949911147967932504033714150693912366511200083321141603500504705108513142315114516670399316413216707246746675459298170847467349250937676474081504902595540688089663887237929572600256421782605857518953322532734513408860669364950667648900119587893929111641951800041906791606636623008719520615357193151328022255953837563922170106767653536984125983367697501956833610944762623823876104368620403344422014324406970120414210777605262998530173638226000282325819389456835223331108023900082441633980940436237709875803859180236545188200368245802755542128234314151111566251027442252159167680738496817460488767790150504365448355789905609772376371081357477221337409563981369569273018654892784451069171375324914395086176060836130097310358870513630416752410724805288475165600472485745474175569676926090428117151950463677451892819435225321946664939285257433199153648560940039776057728444619257077393025773676189635605172387533304128557667044088583379887234495769445508923518147158119434948486363429237804705951348887930405727795022580452475290845998470886711845813861233337463096673923894777789932017041710146537348960547751363043352991369962312632006865371450091545985904528607654291065722308316758230738444315978612970985789585953303752174715170324974797356309572221871373870524965829657913332436302595614450017258961311224149634395877241122510142123645069551047617454164513756846399694294598473266358696112719444659877071263474938006303947282520926757171922365231049245236371765357766897379765197326993871706365723329819244166639190570042698403546673388836625904661296826072965756130405176359507443567637063132919655142102373216168644637150554524780828980872630684128045165685734914294661389001182747653177875916534261920296329454385538622795202173430796681647040126764827505585244297278300064516868498113377338354589826755049063352741616477907720666836620163320557591762668300330432431153471136104560879167795286458553952345489701449146950459154863644109997750495945118752906576831939190748435959293320686560118847645341336837599747322024658716191450723318993872304723018857794891459502245015414929069645798601418736253084265124080248457591442644457315160585945299485372885958695227282155059399206206641545733426400087840167212446217726892630888826258530511754036730864671824328826320156288835596421637321562217395886261384233066274495229050237857627856402506126772560848606313705249973889668856727512573200692298283203913270904223002924507916500214035417287685013398592755768161505307556774773460701936210331373916042554324853296924240505507543771736799003700094093234221963964994369210691828378643893533311727626240849437342860437505034248036973157290061068529080875062683834350114839835152730890206700072054409457754597054258225947392425605265859581450570070171635477528278021399166824328703291448766545997834768599240625312253390306318875833572499090481752999097883374731211471788206728501871265333750827562955237776363357521943658896900199770765992433439800977559745512051406911375057152214477940817991055566811979719474030628600436011213346082574538144433346081339321248885197983285338106073797958414065995625154787925333965197213478894818589870447573548868520712540989887615642554198865892371330409136984794286929996075679425154276644073518012833195752913688881644662144142920940148403695275232218691410941009683274784056158535533330336315742483145816801418168022922320294636135904410115653127458469640190264953549803171641234637031875188984547960759876110303615913697633118247573457146863578487771294745813636171746003042579323133390367008616441395032939773713672629485350662538915062807120648821568332690067301056756992510997452408065756206193287343744056398105187136587519270070929613126052731507741753875060382381152741829924727648745392075873924153629411785559426149814552580509092891838421399243312521201299286024353853603613045760083558631803131709809010969965260575540600296854742057812249544348742302242231471497619494749619604319341603548007594851279275309118497513632935255104849055256698695313334365086760523163689500063722278113986157884990455272953666624168780856381383320227667168363684000224950757047844962651198060411177295839770216089659956918287297619875942723655361356792407033618004705650034408054865771440634574566747719415293139635328544544894756838637500883770026369066183496242792235049983005852219036806373699496277422526706999802727451211209090648136302330029036028730748093063917825035523852103961237278588968741164162157145601648266070779716490279374776496648572281585536118381817563291020009200542956531102963802936158530012034680086252371118127741963202027672329440863875530570852126369505064547228571293542764205447007930177142315175097666569506408196057208158331328073475531532083004891921519060348199703276213850365518490673126900275380694010105876596739571629651492011780381199609150761784215916313827166234523586399093350179883137223801418150943684762235507767119333874461584378720671632701657996838348380211969497731873742757800188800035182977548325407498990348481830863573580106608495515360030644144641757324353595819757350785008164516419330116063744177610085875592233026753057566988235314255183273989961195199030983115303702557183293399232565344122914192836258838384711065752420818036001138590278066044851916993134185120171967883389549706542513511968234623958544930538812996993041889348088855082775035100700787571764014363944055398073035022428415886850053976521679659629609374265749225401600197118340699703440775409496428899729305624906755956987435782434203441188000306635640471840421510042961019900346248659840047730504567940303353343565283056462058987975087844301371911232758806260155731246754378043745508494596101378950680001937942320701043657481252441722323358840635601614601730849027567660086625952253449103536375232503053156244695310963217991824817479366939398355375043938971909319253552085230493675368091476386741012515217065085001220026874456423483270998418818293129163351616093155728557782930405902864080678437828604918120464685400752519886895621149335097390518524924681711521048777693566361565381410351630489763343595092725495993150880816332071498829430065675662633193626640779611608783645856472502618249081579461058904682519149391324677334735357534928075688625886398366918140151279631133278282806176433598769725624443735833225292391562184361366175846573589357863712219664911409438486540188346788082268683726307061775838980227005912157379822175330927108924891251752704376033863353273678462675714295237562988704952962950894510247776014858564389156903968881671470099101442115458321432863617829850613802972317976802354692119828958050241634303119805167073311226865872550319767954437512720588314811645605175213702412748048611913224063825588293393065736122532766663591021077359803798849733241800000637444989664002648713106393861949055343046571240922447136159316365561221138757107370911529036172181087361339317719296842669418830419034717590753403958310683895631112978258511303658195226109295359679902449813356497283849600918862298376523391188632520135106917817314989450097650607080606655980438635760144832567312959479291056809928852940504812365992109007189482219624851135501507507155372293937621293420977060955245173428838300947439603910803183149310991274138426620123373077360948787706007689563763223660655506072525319855132504566237878854717572489878398545219432651547705877228329774143159023271043675884404591426282859942465429908825790088452285823797830080505163614557785264217219081846011653823279985003367157637052544394062598322162167332546757738465209496803134941674075084582690584356837661277845162680246942391095939867147440651603479258333535111087495442809232116369208315141186462727791544551595879934816730059544598147686343194425300272549443883368967904567955436823635235425869338868385137144214897418633205394054361436340956967476322198503148670067868919762710050178067742657324680976087625369770374481079565409557880634288143365303432718373242160183141927929979975992857693716988194538970915152647402987830726866589754037832554954591565888950184605442368308869704756231385063901557986395783718357877728550877617411627142766086525623037890334818300851826620455184163253152158196528243730373824734503705798306091310806230223131859722138593696408623026603967374662643265728081933199134294821697750387450817582569554268272130447968292304080553362571575203722237584835620375105818044361389214077784574752728244328965939046554999377553171838302099570040563084428227561165866905698522105027415817801047111466559706239851932765960919949755334741162876753051945863103515419729340731095858851533649405223518647050437502272560894470720035978548829855694950444780289218365762115558438663809383966254400616222085250384086596174282611218450659888283765082828658275374711281730976778623811656386149427282095784741928812724739582992670644356004785672347899675941855359684802081207906681014813463501919866159114284361984992792770516894001884628458150642473452179243202816202683670935363238157776048006049300796669946711574959727562192290276826799626721379188702236551441612245965875988612780779445387861242455449054773474593721362950554124138300552810403722606125959137395127033451653874021658546575491378937829107499316446176125856977143625700567238040999439704855248465681073304337639567630475161112209363695305067257399217173171824492827175677339854777572233104030275207653729200893925103663288493895804542784127566046312609328904585924905418625312201217719346898746703375004531008423159381402110100299161012555018441592567973133803369681518022546624435984210245205232117576838229714971233491273386301982717956243787061895528080573227019979797581163907650661179721336171687650878613438753595209390191745177436723909825674117633181175738478867306352412510642588436266871888650838858003332124380291377380681079186537240849512407153317462432603292172722124463138639727037471075435415329928246892807459246114355386990048504110249585158543170614828604829409654424628506481718928690657792186571165762578494505412325264799639428918316994796201813500247986876812641628762213094057100332300949599021920863894427397642172303529989715852389169843960936438377077847289398598514303035205736915785154604808630640789715944836750713690317807726791889558324331320202463023024952155972594963538173125795921674974575352514150427809632444639232683155366727491960506663387440199656234434234414329442461329139389787464195996888226241524015634989077318905846727712497253984572618843461900826547334187207658155217903599021520391635818500672946075381264277908472376833967698027844769165251701125368929956206390024280389349310323360587053876584854883879390705185972102841785177943979787289740420247871206458344405379088816662856493449310661637669586617438954134829661745047747107793274950490764161996721563071972753441664399512340450191225286335214807136796114169610045049623618645290517122682603370731028107070199616777519792477384485723543660496823122847960648355745852878220139603873221651686461544849415259381962016449062727642367227069814422304990736921516579815845040836803325414703887246093216705747432795114372254348402275961899190042065801089539905649766284519259498618810852359597897314879520854631523008278088658606994921787537992051725258491122726844791892054931281064622144379117327100004533233268862537703436232486141394239074018433539771994769314492078152097702567651985483400847981937681558769655079515283069606677801622318705767560568584529907617747993177842398355012861160535247554293188470374241635892859553591614414076599099925548642694618734462683513763166668408214931729106648598283634504307638638116391999504260888219974496431831553001150441558084659291033755986205318792985432949750757769604919018147690711297660689349885550250635532999970345718793687352563388961635362496339447525402880531582416738657252224804663580143451824037952386413300981135144631914579196999962067465154263793618348657285450694161155726353354669068657709185662373015642677782761138525249964797949553555652059812248689399487480245673235148169156055706543038423255707821021883942438072355134941670741900339787176338616984662509683032228490894906111558769215409911502465391254011697196352043924208897210875102428687173893500279563193591469021919361692756153643267975240446163601809716550431597421486368568199551944171697015714858685199757585123891608251399710229564312186359490248232487297374809333805944267959492052552163482937312600600807028793588268145351520472641909572272368587584941322202170520110911896947258173407914135032834809458061697248429493286716471028631199910891551729113009156305133837702845860855739651715836081454684326631351777138387915671040527088769577350169455180998172934522750724149189714261719178681789209895901194577083206570752718007199128147545506866070591059685155716058369606746789807224002458781442221326526433598701012522186043533861330189452909818801379296335035419434087480250343251760626679387589510195643674387716904215024874074123376506060700426405548747224573094641547621240835634258501313259197416905710422595718822786664291836646670117265467469415042259898207715607990932020752553396665869732701492955304710574178221573697674437602648316128989269101593231692705647950410017199036003269517233118254764287529116741806573572383038936411506719240614555125842100224605845178925452639767075468672782143672268066067963753916686305412193837734544273447390646681957919235253062693541546326538147074081311502910295705972523126068768597224758699469357740696424280977639557954692135490906271830273489229287853869203157462835768992537530078954512319805227646268672455612077622577481679088915335017909620894858105838644587858716247585373556260044738329895992056139575190516266495699497160739252524783673799223169176452598738667717061351551413090363140318945323859969431085801168398233114842449530723788371551129906707474677534723699905394007549354073753914755371816113213334205446553450660015965263931875564317274029012415448147982384759206110838598557626687535477755549195647192645353625733879634360784000807577344767936386910025602182528833294920686678607611812347648387127910392498899384606638960332405768756660266649360655991112627747625231526106571965283018987565103870004580812727073031838757560358136015990700960656993314005796050437665478311122235230138948956145378335074811222668430664033398357408812524512077278988324398844108045076373814385573360238865581734451691131800904456270552958536798936532582577408899513317028311490713894093972620680920014640429838960270143527227513734858478391316616861130994661310501064679533035636198059815208029604418156078840470467355958609379182870052008295927784866892655813310494194207451294568891407278125347170951090721575221257638881258005997898232578305435459873366216295010115767964593728555576795165445613108951485112801141223485405956743631388082201535851999830531375945157717137778555631282248906231156677685752784893442832023336050971449782744943845167852195389341987713902376554620155636611721081513460002500831647922373640568646914964095500516886474055460558600250821342010572579859320597726211441941508505739929687614099734891504386399842843300084611508898949036562505366833797341028780044193833665378621577716865624337256772501064898666823736924046445988853027423919311690091731931363188464329638568340946341557807404375431235950302252892413776051465455993521839428562217164698307624950399745345767581352732976838867617605311183866357124193130869243577490570661342633482758966477867293219826250572440367958705437640117343344402772257737217961149548361544573321449061842687254230593770112102323815989177793007328056994944828041856409277497716883913512963667769857723710418741295905988429257119712412303635412139249063391811305363531870609776597782288376869256634672630538517079040857168467177519305232413335602514049245412680836030948054464374837466242894666799219218892646830835173708683077012292792453986662767862534156733245405862747306499995625895049329174526334494687373734855429129556389515918442680993709082228532159354669602269952362292066356000786786130087565147661614068965210469909051710713032711853612444274050861149395864222113935206386860931778696359146301363500455173017687950615455509937967928313452669335198964247683524496644534011258740551049057294325906113267425786594574571032022308813473722594399341786208445974801525977484991523835077241223732766529397007153937491780480633548398161903919653003788905347600996138606343637360713727900619253771669083286183207307679948727403604073228589463116971838404197559194857825839354726036702457438809461070307433701422463783290515655543947693131204402433358456899825553645763948655687902665770234406403781621265955141764745141380343875347651686465920762767484263716713759608887841330768643426825751061306186857038390356698142431181218808430674509273429247248119381051808452957978017313298413962739243898654148749094001045677710281227945925836582190152485988496987765014280737941512030810757239575470821945542103924970880373999886253601866567191089164538839571713543422889076535992723734800192165209585510016762066465683992237655718648767000636183571767745531400550467919983908128970675148742076760662728201969931419603904555274416501435635122719121634309346648054303663805874631574397302030027032347211735202175492374913103110219027333885450867363716590031878163912144562131324262306108580113000001316220525464268284934589189514446876072082006712981795179736604883453747605340494667425551923667400630670656806833029869721448432667091575638559630476284426159946678681459072808750510759188751998717556852525894362854589560190100536495240875192933509457521590288111982264508623383353347968224571753204791999114611233393524038044174660891035823483052422723828632250374796039701708537489979907532367714060288297577708214229259376066742333902643450937084708477281147822841481962719462756027942653704946249070988637834409362328430075721434676723006424659463578410021165378794591042602072934292923026090358452317994486355900083281035480665642112111726038277555437779829845173511431604582062223104913442956729055343156948167977983504854310405473626486559277130684955389861263469258416475816739119841089662033318841136952930202618235050904779022203378397623974223109858379459366453547517498125481087802230566633771280893464466716408992893946527702154945772091374961860226017251461718913324398733124281042775628480787713368431539873011362659763311353389058242978373994808464658402655029007051129865747042414706465914978582052777826962387543747282017618499921887746404984573933170460205528981577300959531774916573020238690606699375030718364243935604324116147843254770510729692021225048505602330523874872795239004746487120004838252246307550755658086027522089729336302120777646019497417872469031095395016694870743251571987226758275114324286733901002808682920274437157591184273349920997729097612640846871713863170464122792255748377707136468812966442296842941002932484579909184154886308724855595633712744475898585003401850796760901223066566100361766060331133711963430822981361673588614336014642480852879203048153802893476757472088938362180343182130273740397498149068293263756528776932626039191186524400876982785868661288516977477453911798183904200322872749895122944172468211704858077947051676426325536359464609333886293967340970612505750711926864767794523163137740688279110646576169316855373658737292983641622171195521476193230895070844585736055857253669922324580745234772106618713664651649473252054142582605930560570106195061411242394256730041301208675626971738944793376855367446147481088768713239131313685372477226529673036745679855809409036904714568453619395409905224053989576135300381335011594285832047579806821621808724192271082949837034933313175161603858571616470247145265026658953434007972591486166024673336200807818938793337750236465651150524713350937100247014312851456851086541446659876409153230727910886971647300860707384693454432427458013132156089877931192253142455632355581542305625420983809793240496160212385496389009254275451331307473296830432616462839730477443199513987017196660931688067360597385792119175004160308101378831536143962855317602960819893085737383366855422409747729158184505961378779219427633986348412559658775924362092050818504291240869855336559524223718255019103276065230864880795531913304018196770621205184397251098050508676277756816456998268274012747546429981611764620565482093423417105632409176107251097962957367828006461204120019204370224193652498276956288960046137032314339589387293391627034715096670233983887439041331763731778990708694857122530056681029636984412137355120020077163184113460344855774440607191719531769349953708715924404243991280450099599748262384264922015425178785185418734360966641110747365896196028594645698176939250318288038899271130633525138885090049321065642405350212519463357162301851518979799521784479195606010181764290523276631265568507052069769853083642879414618693676259836834861974634553530264386602676527850437107652796347495227996560659675362010627972602377884989304271454304732774872185625758163413954216074176898845813869529874908928583360904216148893255743765954125443400180551220458115110739067372286840395803481894955142840748479316150817404634956078464461581963467498331341398182772804475758000301339542717137246080470963649322309899558919555759341094489965931958288774915334391168416926478245361329150752685420352702370874526835385961910776665691722170997459238106980314914344392455577649826191111326279599729767682922443793309634110880340554095312334193682068111653037564068410732229902462160523752955625827604546032371061164074194750044696963538497063207008450718993058328888427890440063785259129935550736111959873833002732205180697601127496836949866666641303683488439411494422466137382948980969505288674917989327942507574420061509087130903982072787327406666971242317998743740178941875160890867717059609875866960895306714522688436990922259243755962148257679554044417024739883740807525450951504327373604828430741532567410682604766839904354931850220285059070601049094639537478615198313928489050700366205293407869939160658431133168811885065231951036473666549776553453766074609777842953537944965514463523973086192999930841645044413061645086957733924862008324537953972766210190681178810396785284018778414192369192702114797509683031897303295052904314375869968129341552551683255685502493301231012083933362289655825047148754504665450683544903176098387733712759677935395859097520850199681064876784249580494834519417397256255074732552711867554969399067904861166733525146282039371480610131454297508909305230814394372250659714956003837457607418256395304988752175062219220790615503357114751177597701034595637522406516707557768605326991221782983508224139701546877150940008524193066109767492427727187717573580197045042149180371805492451296353712627495283261514799997837750665980620566287701305286479255624931914851381570288049234732948900603817734099498621949430013948482587965020175548015658607846115522346501855726919562460888983268570583183558131360368772396359215809433089980875360928034845596642204059838825095386360572616937610532988135003191857819346020070837546401019205223869456841069993763886994828525844442967586361295270593936768566095255916672153194744608917112492679334334170348747569048554483892555316122220218464652718405361571483118605059639370205125495015902360350051713983797512091453003081882257079534065036797243114138426674821077873737031385908613889101716552182223543715946915527758004167310119399742379903597739189933585540561462773664306381894402137786959025690431529834325548364365675242203135512573874416757617862158960101663341245024224330568963407118394735363726926529741176140941042357338040330768865814798743420030981027219898300644251503317717919245840980093449089253559934373651520453194335370825722335944419124226458671340387774366387002837823583701796692584712794956062016544017069603154468789706700216451704680426988342899529048776069856405457657145010850901651883179333175460615674696364986890878953522055084636584226094198930330295075933453625759996778895194198166891675192673933896582024574607844847998168825897268615147964941678894050142676872899422765380730473035118447681638649744422301976718145722260087523869257990786776684995812843143356058017282842075487341761700137259938829371385433883640082582544404359536391233906043019005698931284558824929479849185065671905750938947892672177463049185628408808234667911359622982746973835250545488169484378773868827050046846928595243043687034475560952026277344948685592269625239041643470613927670727089599298377473990998806267657524647685156047611312896378021192474297798056789807285106778678459331747534979963328316617888639304803985266039338449139925684693396413895831973029642379192049021625252168172756537728756708760955717734211856481601611692554173715774545754081668014390048057356866126892487819364696965963474638375787562025669058993805645547901981972961190855415640024990358614926815303044032493687929355496438442013674114702605645327919382611286372525890473595255517989994455189153862401526908073312960218365143264753996350788051258232881410182354388929756944487783199048533307970723036803462255185396183990553629207858596461955676525967576238732725270970416317813972598930763443613862004705855303967419428056723155337913507822591033181018694761516766859630594832636907210707790891674320274201384580833092260821290894868063238998809095256526318991633397425965656397499825502340878884202501736871440995152003411925427682557547855292867437686580198982210703009424791492549150235309547435392238847658131496705322270639733674188490459243792823763708486904329180832800927134212064411112687926359673611050068162418662577197024847348069229950150117457254799814279814408487946687464183364055248864457539868429255657552534370338876235140797848265423226204989237348758072398390740007856054624399866445559253409190834423373945625680100350518392330856113412919606077346527977286473539787666577479936782615151497884946667011792618789216515335596032067149116376590948235157673294117859403558743041621862661441033967904518384258673639550452365858574845657015114099693620091831375410583093972085377409780471799716342781233120407173610363482499325169559615592940799006437455781491591272968524409713806393006009463259626865840076778716968830015267795411891929667722235203490014990813352424882582981759007785255225386501469271395667791121830125059833215591987182605419250770689011999145265423378317714935458893455659677412106078404218946581869674699806898401147167525232755805911411627503358570117111204664785421437209737679617254153554328404649048247400188761243076324499135609242968078537236209040349158899124940355656749038645301963203713182169827394942741573127177844014453565137454627656592510207246021620751060841098196281407179897539165229186886175196655290279082432179999237201372128485003923094403570023878687209041832399968021381481474362346909719215251229163301505719139887598026752511449851345110439376711267170554388473545354260470309644626672416856021737902488696926027923694399638029017940272353488327419633187967149848137944291977041471933310455976956115925166755237707239870475937006648451335440441851411807050507669328944277641784138560677721275045843008490350942749843841791750792012492403989918237570147805115697288912626800883980767658030417864999484907323458963754545332701743482177540162489308312647102129970274431616331664692138572392290517955363711942334887202637760543280778720464503387923058679898525173183018888261279904155073408195808340119259481389876845314399148817958757415947693833512804316835925682647203842013845550812562946126943065058550433490477439310339851529242853306846081580260563981320265565852750969659466036678615562576982100806604215296266663664646436632286286499615103594338225472812762056038580454564959813723455180531013782260173760528343715297313936517579346505370900076584445036024953518658336577409912071988121502637359625795356177650448685396797539413438948972942398310270470927305894162795714853136253157935733577786947001759154004367242906582357210082853295947432449908416090009579304589524684672906210164394524597594596103981284844278053842867857005069745412659027416780273075201461200641190761553520384936635850900829674876966806752743098176668663723236834374909817949284750319686512084818402055908344812864162541588822886322527406085476615942658558710475488050406751141268299516657536309264794963636604898026041892202968872837235940333631047550619128888169433407520458823953990832954054519498542699688478067833329282463982221389229454470483972401634397061536927113618249033970247390684521603869711746744084412369203591616190383003597831307123150512773346741116695702916386694649609001409395252574477473604571611436971534429165519941942221294567504805784060360568382316424788976957404411222146111145604264991412945124437275744164032455558120484346211418575872145522046005037599471714224236058907688195186167383295623244537924839290355438621642419298388415684313091046613105235237021181981653373824532128774235102140272131432609826138009661284531138031603461169319779837111591896128466479178517646219360089795133516224280306742769946107893635384363431569545864166318273674968077967523538379329051469737930514389290244203404266557298598884690482377741932777670003173011872010115412524554844229144169291976044257569205392327098556382003582797020972429940003202179974589118182425376456258268027051870603230409064797331929636829638055557273989896220397715647452794416296946007576713762425775841832077406818254468597771193395319309886200741107519627076507176874998687343156650234844246666076192818307150448693490248890478541406578920761367292818679541590981297866990506754522393137155097128105940881020151980624763451423179164131728305785313875305692821990330261212573136868657017027836935819651213554712734096483827432108956278318130152509939536816036225468472178959538160257267015870409620463683701906070539097772591489395857038865734617927561065172806281081092396298783010418748115112664659953012648168860275881972457522431231211234982961761145405808076686634396433671531037991682017898287471215988633628707942316410741677765457684927800930969622809036332831885380074658090942784876960758716782934567938948727520526936272747310247541994700009419807913833406247160828455013056604988927976669783526205912359358432701019474693443814506136901561891104244314324116575827011542149083557106685673693012678168082879131544707928785814594287561412149790533785049346591899856680724446350114664595255153075348887435674616803458615687608852463104884132884350249310638691888579434562554536264080522180360066543421281723018054686578440086379484693647326732040299251921275604905429651677917136215754160693276892780161586496964693103987263149767457265280720616700292459824471944153595626630801044866643261633162486452291063540375774945508546844440168534987179960644497188765610476048128674202649443762022950474311508068372168507480969857787431996783731821552975743298793405140503188427688082456516800822255912583964548918934263327046708885690632761263476573497141963081463634166019277683641581119969264909309639922508414872803133196750203009910691579698227984765953915944848819273424606463650994465525039122649173823049205422237330795929991908461685757163711510946662321480641977996842018007278598485644007637976092096359073989872285706217391205795710463590501048631114562272913021880955022831983750026104541515281694073243078215095980172203594626715734567095510512510578831319699449323636394017010787214945341648957998029208249536189129828595765035411647350282812916394008971480847032979241287537597031705538423736600189591800964296524219570859352738364285461656212349406579334706657978563828380913786646026551818565225137802109396482793555184962563790004610482272008631055363996512909564702808213346453419035107425907833173548399370603667712162313707356629639949637031445958658852262002906530609632199004724268754216465937827428795089510637839708032587061368413143679327597737087466809568339194671887879648510488747775700596100010796045798384610600129147412433378867088736902175570097347930495558231214580387046695575612049790513080158155674542679231447467053242401614963737080510191446613549699080970597030436254578829249509603776474518427295346342714032609858022998011197530695596026234567573622333731676314166285919438860428032029947351834291028225483296864674840289386042199283040573882272644941452372749226435381504133421851811279858797360773139544249492273163989968193010899086330391871291025199020063930763338289334118908102657685699120703016624187195364724034211819573290730029039373697425387746305377081354146829394777815141935220754132741072225358271314971542213888747691928327359535010384028812323424262541930280845481109881728292611445835057568824353255406291789114501704469619514501350361623974548706152136184720231409222747703657490453561472355426535389018756946444120899074216055275780435008020993462486965057677622231137043195791334311099678539955718984699282420219908353935950318013321826311540667552775250442988920992547480844806144248783062837593315083433843207221660309128449213318209233684955182487935530533547732108183032867633296828184024715635057329612372256539367893167656737599896713125464623198783376971569575969595551815887407379574085868341059279143535979427891046723235205994280544545972918841468193958760075008155281633535408192575742975665392929628231804846952950849059937804175407736735482603340819572887779773996102943681471753716124617006901151451023718793610802443234406820038093658298934728965801660958694930634391586163701983926492578329491806606296495790587305038154750252107800906464821375388166002276544279798731102575539876936873995537078711496919115326646838081791361270455047521951050770209100031226990200401779773925568063463095434669773683520231036165175016010675372102542561724867403963509488641367146506252901933732373299498488358597184654209859357944731782039123511960096400473979850235569353359453718334033810867940246143576599054357733574984044792640663390807636048867954026278323482881431367367587119859664978705119449647790278569514538009363173181874317335984030668729511109077564970240658329868492939370980279834165050515947239997364017363429418320758275775567123031841939681303897252240429092329121002744768356908114066169914084723497569692040916461548530377145723235751937182287121435976693690540017030506188056952540391615778023949211559393975668579001735844731766569706327216019893816840114717817913984157328692604091735531961357673621827757228415319346368025934075186716338218783295919079181842760575672688807031254384900869877271520159569803492546481272488074886120742808001764372850870797530408415912421741645760467459322299422206748384557067448228247021057130232235878033604079106046060016518226512830069943297623770055000294712793975120449972021740769732721216544669016931318508954892770166991340639096473008368586054310630178085573925722185373230980748148731819681300069912673649066967055287213978523504055369789606005074026482154064949135012302746691896144845902410823035679681045720228942965164694386862281072434133144033292695080014424712686828458078237631469494631562981263158944551168025727793307850240175258297406283453425059185246494890930935379109791574046883765435694071554134833674721976109837969972277093719106053244333387650630839846157897983284940440573057666485370337899650237188583266399136563720879860905931203013856008247504611650234632847987895338211398221265342033976976368702676187211859150516425412653657164084548846234760086843211789876130593028115273066360141414344359445657956367913191775864416554451992458390117368542508563872657988968193745696440415907334026383646037863974373163214433511129084033708452957685179297625744357441345316290588351036342912845744161587239522068994137653993478801198673811342553317541952082745036865080003036154324601688525599127041612400352671159357314464513347218468196591111349671532243233669131485038283349577465122693555061960141225404839767485657844512500920206063429748638571491297104418535062176240333573092449713281744934255520676302833163965838029391979171487263459610519184448445664126893762211933669674383139003055978948180612893323752465492993339919107406806690943533044910067489840710746973703435390961236785755998801048956758875751642870593500655622044797496187574512697949346776686151320797621548704206659503630421697254641602696227747078475584191849549139671993361923931006651005479687314919305345520902584449662980144871285830751408324938443851591907195114550899369724849794726111970009860965808393469788692037929520586197436804657762355139403156234839132208036842566090165287122697461988992473579657376447604228762988954623523251042096959102806946945387700270927677689039206734141816639153110541324434387498417220340202512272653442579234083320228791527572693116867385302776723058207340642873270179396504011523746558721699798358923588313666448990205452679191956760298662930392430581418802690952142077391047620647019523900552851131815019405275550817911043039519358945038072809199347387828104716482545623469897059793953517215419225920635234794360081372113704131308363623367599021600434880517459059394178223869847145452096035996796075381038873993510567561765204915746673723013005343587888925672911905431179785452446692251402260278752058725446161603811630742029748801594349315020959346625394318531151227489520739878966922342934433011097454641683408581151432056076709139167116959706804644826462800808200010819425132982073118859153599114915000144780277751815591199097515618948222128718996475322812369384969759401348157685468735302854033558057467175625517911458171761323086346922332739040722071438950285649686910905000092802435810925623644918798263641801002686501017975493156777075858446670856913469248938303905340947018877144525074146504251438411541620539375468283789869799202496409597396053546236398627928030153357163563781309983801691890419262264463449303695338055252039443666693096464669241506737525398130163558465621166515274355343722040686012179957020707701643950530519505284518647344205752372333511252822366999672636832984304687686358494443963463219936731094214019572299229919269035597090293525980645904008263625587207850339713813614790222404342129622280814163277036625775017127571660789038752458123702363274512771738201353690905030537453384833438395599812757942100933052887640704542443977162307856170839372024906145676991324969133541421930395596317410233563796053268385754919535713445903495255088462523318906556704318480557345367157507564303253640988121608117974295628619011159412773207855812063959225220028315877777189933962870212762788361202453771899657730744441345129546847200782939042859214525096639950696865006744076055724689417955462168916917286585528972472628141451766881470730884034760246014732227025647565741980501493635361596392066048747578198589243983256735031746126388106716411148076851787486198710683471165399106790427236805670347878469845788042545700621320322182275098845875283546062274093212649636628598378985493432152799424217829360836355361236394070710937649306642213509765693816873283513138325823550117924411901206172872990323809507546920364419007169568417741285784585630623730585746529111539393025697046305454375061227234760130414729667321073646943033059995580807443962366388343353937834994372510736497389389101051802536154895078187165590284397510409346125785540916272252904211232163786967696942829479844638933872896681676291192134143554299049764890219635933379649593960178992151301052046082401083577185927556529479710675658365432506558967138854547289279626023500651506181405114223048029573416064443887119634100892333233112766058870308386166757879238169667507761091106240311492835513571589792878677961851954036874023709204549106545028784490207449068014206046959493483864915349264626541633172198261852709498896443175256036256810381258673830358797988880236196945448253860010021250043751524169546440671425289602569373546978429791102397206050293315468108399945077519967624036681887372204310926407778162770373965641894472839908905566288934116963747918995895757694484611284329362840778031078678919133614591989488360809902817131928484139209171526161605146778458062727964575912488073258601503538966344568323717560146579455631494746997269320760787020303321555956960594782559491740572204905064742427081087543654951726109139809904590459909345540186376532196835258792328769075329122852062829175102454417376591051936023345761361649580360638370555122039311095441044549899895591936972653596426895585500882370524800889888595971437870289649101470331532481356442193881644417574765776712851461862104916810290567565953944678350903001314397686711711249141586733944902619066238844449120609838344376012228696756854115360835482894727250730628052136415428962783513261497353458838791442224872295541492976182338043121734933943129568833469470860141930621483608908363777683207883177789641163567100980813053295159188528201981650372022431400241731683632525030458541442894836117567517772876086920713639032440362572350563346089634028418600335663329241657670822022286678795613253558741790260188261394256018008538192317993707956426991857725054900714405922689294434645818032387508751151379166882180745955366806464391826278546841683621588064432918797952819931252244962363532538408726256796827039010116365048686175956699890117884292443715812551080859415701355680747802612989873553435444425168787751887348363498664222369325966603482215720645298965314739792509425694870961296469667627537501718198877781994573870510381443451080813274911176897897556930700699402321181442083360501480054949259254662326584295488866524030145074789815766246306470575496501480220294299393106324619567759896561944814471474176773244950592700969129829226755947247591891858005125408140764077307851899714978773868696958122323794036254910549035283296704769069712670186404641455851354938183046661608436730493980671528192461813993803578005690166167797975253074673313750047534377206709380703347638249005626476074861865335161746702009201102643019678840151116343487891103001902693094799507328835127954894128181522170816495668658749740478889950148433417479346278444658688730086696954541104746060559553537922162310894061303354132843222155849063924509975523422031404339634750911514270169292621428218022720434738905077533360762584511079446164793536073527070193240928880136653035078725593724728499823886146054146096946314609049722303082294850057267296061255420694785676055653196032514311336632823740788712999668659020889850779688943182734888711090746523644460707115294419395304318153669150887700390455248337037577382431352593851276521261740931334447434982689022740235418930496352994823966714290992053268004725559610771136277720146477335879687701549376557321101012095147859027724981234056242655290386401862304553131652284833136672141248759648135287366108379670711890299337693471535115433725197724959192721023269774099836521363637330639217882888288672688153786606887042262808437986405473839437767817717332015063104303231832055319646167766911325474274254895605709184603166123784498287654640410015467787778543238043505374962625511990167063121935795425609331558708552926715076414860321545330449218710168812500456212280597692168507152817623982385259603267131366252943870566842533646240046897434888364445320149214360674420671565514778954811672730423200216717146382672851797081615779128774252256775983217366965681175578481805771007860695615218960228848147949062492283670180806592023469614759952435285284147280330693059810551950180136123489512433065507586888950832824428866873701225322472100270718341562546943668374585425176788926307849423851178458949792949889236762676576363641328926570790256492404098259335787743058211715929545707253561517390299986464300083861097158298409217482710219442945281236143461199192973962133694891684951152204739072868400012683315155834815491218452489116242252778361579445406068653882968283634400872564609872070048659100579814141550083426180521318199918171976367026489407989182279009647269943531687134380328608209476842227188555688385153520072919624598009476414241343873250717847120400169580090943750493669808574689564856340960637269385031206986339305510461784940289289100322664085413690788949271891886882879779161421149467624508789743763836366679324813913947581355861411116160679468307006650340085519369560986357097687292841568547581624902702621233547833563029144375378534009970235057231008921255106338218343351689823229275272657038242923690577935069293887030234746106580874860547737254574555128484740267939319505511350883280971354203950219882578152177336667664020187845461310977851882682212591224675235453912261002132117943742374130623974295389407009952811630369237045944305235494987168591083579145524821499156777641102844979189080996697548515269373429414648334499441821289718086100572989092801497715317023306146247547042671997754090718728744271882169916217009771034378460930761560632674717633987942066257474635407052531075673434005761899928950697793429315577195938060821846677638347943483457642068635873426627475994698517508778638937653646091847435352424401404777773418887454659349451237470793293715811373227747070793200507472271190275948066659728757824391080174987730614403140307224083758941033191564211690309567482569721322918073885614222309249494690548348585893966002260215993432512909296548485778870059597792176577575295872463630892570183877358038191837996758833514141627643346844234026867934304856268700053345828036954383988625088455078429046508265359320282430352349517491062148711401771795317143062060875312767010255954789217455111366890520464252635341588688764859026135974614746762845690516827560423173969314441991351722288250377851489521797074915270095684311928898926159783761830596124324704369098071668309642241497413967118481170421312836793083966620407075421604608103457752362725421620723821620291680728564242047495646880289208837661959059799869738238097130650636556275584860888792922121420635345329755523434741503637286473481728095072477580866345462460077666036988536325250222006728564864182607143748642836616846596800578205563386937279374516255330920773136639803488884424824513163824902508383494346124800350791037938227865158935768921575864404450173895324283407964295100011215691784625634706132042544280564319081955159098999747787764404449793757610279154315176812367052834987077347443756583536875509703161081616650670299794060664614015675493428751537479335089427435989678744047596553769137796422603216620896081373062978833662343936098337782267256312985665742248077119302223089806909031029023540308861522667281046588836759074153334271278437749181182935826542222190740382438322496002299108111446203270738307993065968872771345982773922649310936227554807530438057266443027467393447934183132123337761927580870008312784888827498480335168912643398767959212958435135542065698536130789200148608269826703348681679429403256023684615167644385244127298804060728629980337341482927607706693390454684714515894143674597389812858408668170051997401999018571665618427540635764331344571202096687200889419742023682999551482603294940742302965502311952643909266744806395380449152783795597388010466614483537058390826816679775585285520515140980986768173133516319860867941801118241993311952248747126697807707037887794399197021900722387776005271496191825840574368217877788772501820378299214530126897780932064862330299880514729590679097398208783484788053614601012326392858220376585129939944324490830969524019759311232768806042114917885177948804718607393273501017842610883348917310899044506252425771375571532200164026201404442556451169333795580493498933346662032792417793299697143307661597912541689042929829491139537776949204357098896064458436742276425617688049033992418503234503347297540092754139045602283665962564224275287858119186166055251293155011386762534328262793159755978761048788959173628208705086682822576666846947860138975381105528034875872383246389233526539763990790494345990716062175791203994391760092945861472541056335662571191782113373378907215854917406578543442441552368873020828449597824250684698001339156769173740177355874532387726330744144071309231168228982672785089393567571584613121905281337779304868139315322389100321548618036616266099770084883480527247197899707722438458418135966124998740691598499616132713536809035015372725183682322257616444315651618693249251416034055894243069194519120711441301830923607508347168495474284790977991229733794834835357675530529057472063998660850317197991618695690926921319256039227274567617177055188906047855502725344594563427662844057937237674134834270806220271834683787750539719423335820243230719368589056898723166745138805445893943683930784442667578101153289565505054751049269882149103743801253073332264147684121365053035136475918074689877615375853202853494166700616346161969622934490564632494415936465121676928666811431604033654088923761700891673013626504019156194111387095314692199822821480095598200716268024653966859021693341398440566371388035075433859176684197250977566825080068123268083776909340407755282256517146310874717845446732871881886965927028057989625501876885410797631792149581451732162874469542353802262092077242808234497684488124593651721160274892264041640983429220695148961656844129341314298778864322593171744757838559308023699944160661681829223816888495456968130544563672357918078803454922736723373794492056129634226342999568744796889661402932246946765059527535121937057683377681307046379667442520996887920268481789726022112795407583036472464234475656177043262837252887687752232825726147225258036758639464976523362601623201739420930291135786765321151146055922990666533065130784006911900332445656545047237617783324325107249781608058283994550369277313606094875646299975349569736395242274564671616946935919692532693897563260646768095592581072374617155311784403948020622758003410070333141614405891034204325430947221992384667749178485985133492779542711366820533940907634847521820720894592122274501377118378376530380386730217960855446044392645590419206800963222927544076898044497501763943173802679419892193791964231583038726723387313677998777479585889398996848887224955324932538533370011105499371567208951446268364430309510944995906175131980607526051468894549073104975698897802565605776809084650450292974073377453032799735934950439527321940092107269051364830184744703056350610804625214464329433029082946172493228519063028891105888821451539697285363025043257667155891698970578745518175885976331226158157319993144518194385184810354091429988602452097031304909608098384395712093162057622595359478727852057481158779626359051565849830366806785001370783494205203084480761772482810528731197254765590096644249976341303457421830545290295697266690360278683257638817209959353959107631384145411492443172380071767599329717169232748983127850939329690231573608465876863592416630715828749438538274466324133605957449014901851776951643827865289697251096797556662306473087922829495540939973761331708642811440688024906469204926600678727406972617758884201600567175784228398854588617365311481325860009224908748591971544847078067997891286617219591266285165662177599064306829479265402271045773859246977728616892764519560392476965475241964106775721768727359935385493809066020723674675732396443593451353085206670757141839526059259065150179329820372182257873108315527840716678567878158572488115639538862816180837818128199483377867663316373821440220190540168962570468801304979345585273752378629075155951573936512383641498565044223781793266756910117169142616708107372102714319415492969038991896276741069238996820618369335826979670256017090188289288281088116345510406792920046061321215948078327176204481462494082594662722004937010100453966310970226773819017431248248988547289260887395503439707277017635580687071226052111318133613205436047444458859517447716146247791918195244299934098623839669935189994112481922501339272616834100801809583187021721822996392122305475454695863982021194086949057755091825193634971002310997531160019983060758387081650305164595690544958731596040961820386864635395928905781381088983751916850601037106805928090913966591643560527004853837657410148377504015464266102922890956648632284373271336390475137917644957708049511063405617819440808877756398259815938159500320342854813450638181416284751009314009122693050742535469464562225732290313730068678504274216624522980498460673926270461005230882015390383071769409045107706696297670587805549207903741482552194209900176281667010163905622476497328436941836679371036309575758611754517957772353122303778885008209985985389929778631203218580270336143670963145376570515885398992232550673147116306635009718845122066872818465487483781474739904990196917265294818277052768154346389373083104565409661526849251284915112909024446668688648196195063334179137020854900442461067875626367928754364900718564237495524652339559024392617662914876346295898867716773762749034408409962533854751715740712429315634364086932188118170901293153283200398339337785889258654862142038867046269685482204946750356104589458935519236064034386943290851157484658013079931485775474270495878540149003179048189415242021318836451459411023683283223461666337817686462217505815855374321329733194903359489798562790039999938490554328516392153929692944029629142844897122840248835482651055691884211072182396618724768189063811085074938142671696950999623658757963277801130601548156769721293238750103276155591147687074118176180677716462186316950413661057062536444496926374821094778995905941588402696866082987236192169648299462380856460807692866037360977560520732798723515578155201675990467834479751184030503507241133150910505477377649107909956389646981618461729916236346592586870313764947742331200395731637105895757178503596935195609722021693751423178095485015156543821046417341861186596769405697711461725042902934841916730664257290466391697584362656620239156630296864218381454355896587172665066184250168313599997339328642620636017439173944770121879646838030854602102041977465242534782588173222814242729379628860434178486394692297187200169300009518166461147226119429248399152686386316105764788051407838138114765498995445019341249084664428410835872405652128345914184668972857815863995013790551872081724011439997265591314826945414701092896517706288694034474976185843883792213840176497522266127215147311670289462290571853021614278469246552279367368080455716459209618399492924088384497223494594077756448851567336004458399106670873706012677541900041446206344689224975910746020429678831135632828240275346844110082679967584661945422996742326844590695227744488660148994694842477608786836148616347478908039211265173639446220034383458586732066786000447882604267998775410264744578014776315407758048416546102397055307254115363924933206511565814538742226513240774801070377905916311270146807815093210685713027733730099959005960963734119070999186470737343240334813216592229805776615089389642738048562286776424985952019290516779394292139902437831709730412358026156792732432563776895231456737992725881630849536175991158514093208573040918628082368790688846261109495704978195400657606369893795043169821598873123806027349339978868860353725942551940415534806509178200051732353262580994052173982721324222637546451339639094154102629689507837596003557328386893504223779254948681210370626497773273999497468345266921152015609918760852045795928497921264040208869488729388521738660192504382349360847223368858595949458426101680088028585691210982850916183800483094541695986610839427044204222081482885947463122895195301829021406990146650733862905924657730830364214617918222170418633184391078400067931482276191842138215377937833369234785517948673093253150338040618841750305504757566533207599210312298030790179788738411592001480137208760010428860273826984179599172324182540639099153495495136454192238683986540869559882945028261812552001749100743756966060008648984449284819625520716696522829088867211313595185656048139069610666704057459980618019401634424889477981570589929355235045669657788150997047471109293092472340468817372974682064637233887687110462075259527051815351530245160539205253536570027023286044439967385132734210255957046486896980937776051974067104476385023833921185819317093652666527427647074951937620019988721303702078719063408835155140880144148943948006814995369413376862531710422449036766545941057477404906271102073770828066097994420444348040077502322966676384289722071042942137707102438078194819157465566590584687928409424907255298616889171123408886530977564411549142896367829456912593635966415845235424468544553319226821268663487875370120165951313914405332402184847462750754596634342713713934935059320809084798587182668237831698404209839722787012557767768444732280119105655822348838045042567595223464720754086065368232050103093508138822070464570040719983225601484777529267556182798337776126250189870312398202496698423789876429251236822628194559945800409484496599478277598700470098898368576095377185428673547543867391080735843147182177304441893243888439733963237033686243184445506555685490260349279642238369692411406395577473791247417550518579962050221629266786664241729740060275073440711848032245191072881378873583263810617723014157684332835145567641074977258381193244826980391747928726287939711317196359024542268258941438348855149620382719868163091745935411865485823852314434010782826860952448215492129983331348243234313165984076616737757301122475084455103017387139222667008433817906584542423707272033350908967009314278631361700350127574846899731155218323760710088429335233036113303973438696735098230623899975404892471228477823446087558536985572148853375898799170631385294706225548894258447241543303120699610373317411623046500562438280777797962397133628926677087689881021130961316842156047204098829916642851074613762387825558779510143621092155129188074544569348858343516537875548095632192437817050132426344723375478503867631555815764281880719041104691670129585307777666637833002306248046296700247483390167662362054361715005797639465441410952249931547447599819438634441075456861294956452188387720107663886059829176059301197144307898766627666144434334727267759812056219825087768448869759253383232489583781504083969871997543249340431830995376601204955251850746037256503342892594329645564127907653060038206668381935957770398726509539090523693840004913418939204852988465025800872334822467678277448630775723824137299511065035864829508749895230219421840707622880557314968836250446604389983246645237530706502626932622187451882696317583364642015179970035750618496137435568397725570919721441602191161382975529668095475935369322421930532598792576068998773196796078319286061208214059011825732665361530910876067229719297739833916304373640334815019497043296082673080889374469468471678016534108815180605324107180847426923246149856547591257620302472437625002649391329907512670819899961549341708990645419857773565155601913535468695362736208058594533364965049327371385315352014520910594899072050668268212970858050952396036017634065762293788560118208756206995123202684439221485250332479474088407926085285034262999424736420293031406980238364257741420172540221632245647614625573774358797633057238226140006938736000133065528799347404922935002981057737711642874467106657670377881821782158169149614533425819819744184988882692321294490417548742943827288751920955323788766899286875415031073197743086210612622847466651531847871904517557770786460644304225496561151007894793099275715213239846839447077191761817065908680296538431089538430277585358438753291263465422010365752945140317100700140606851097723638108520637264066108724643253141897899717429998457302201914383577974233544131349674272274585567674811818061932577450471407339153640044929072257397930185588028125138455992183771102653216060117173824384958777032165079972876254703277008485787097837825213139668844933568456745040562162415105979298428169436936753335491978367429292776402197144364228088750016082777218722071777665581288707986624430121394148974125998193159286453048909183727988956073222931206553514249842339916276360068946342902869928537114891042364798346778657170975854608652097006097659613425947832577783626566657409739010452599520612896086625032182878319936943128082319973276955237540614109415563384315540734147975236107175984295204692707866199815724814827027882807655018272561300624972412205429498138322749509758243269577941992227987935914501989541760359627783349434434687428118414936162895435573274846956991230442110794340650057838872287553671047573314580648756949766438733771085993876502931105796689348747065385169838250197067323720017191511586708389594217872403264362655444656165401483554433075106335290126359548207328268638529870705556531549298134583807558472963378177566953031735753447203103460557278846086332955939705453933623125283481466515122727770786066606407987741963086449763561360273290857570726811633382583633364500824583727889889060141721262576796934709173959242555368981574133024097863308509438207769670726862043240529562832656838632674765618374908927445982247710767437365458651421974266604290172794715978487082110108726059564023890943618933594306817680681168946390856414010883355617980756300844247629512723398716927207712584525258325281031760012456500044373605195311825904206872903362738003732256854368298749111115491111137936665761492142792157048200478039893985268983942164050784346142791199630095564079302950227363452807029022398005679160696460808584193189635159488183604462782507602072978205489653497401816919479242545959197804817289479435959827545233115998637723980230634278677300819467419993665802020710507047576429857983771515556374967594081386151497894075850289939654875864641310257501558201098756724149455264514557193541072254598929896473043314794349107237752615435883437549695333204835733428185868184462680020357889769261294721106025966195022277669660657654394692731507701412875800612801276817767507049277747171025819801935700573719568559917439280784408612169372535836166936505426259677532521550614199135223583455880765819449695300630297325350280833104386493152150627109603006235646532851451833670748198052174809649470359848875771244283469910181695788524187715684566236233985671902737914726040523551079763878205030845230888143911640803078250069751268169140491401540342529836051613007631468347848268621685997230270197789073375373601792299323459849063052137158612435135188986416749059111010431457267086032575664064016723894926971709681456785932146710632319906045725520812467649841021754523155578489666849602327953059938879011649331427000380261720272226467021217324155229193871235952158719492912948916473627550026625839221565672245571250675717462214298838192074143642721365331085852596272115505639367636124655836612270159572837189465735368605253925531495142083592578989156129946206340843188138952933557002749397955917095690581828170942358634946131433650381223158541269498563256218377910255948830250568648508988860476298183080663231058939928355754145036774037767751593267838960430030725940058492183366003276150939299106202974247292399255605923567018599682856751007178128139566884146171383659985154369793739554889010817637809163424375745468443204989139079649287397664581216381056658575827976302364523751142625950244285358935522014302907825028772809644594634614005072031243472315409284283319737529356822592390081125398389910940056092450269430678909665113862899993769332097352288384312267715292850057233323449004642531672536404711665020723397872626038998473424024433380865330222579472909121586255072737936632860320735299634151287421827409290043481255550004661202268628927998424571499783462789827934066322685776945892421570956264234613384202745619073996074665584406728571109743728226501974404287965234424772968104537468820727039162407972539256077819795365348997029954886545514022886629442113593883260271565393655180620083753490683209855381546169328181555592529513231537228566578367809056333426214904729589439644659046406430370030153428066400474062613972061952415852233548822145266950453579882819990818323658412366423053956232458007832092018085715924443458460736828212821344339972350431324545485494766134840684603387442391492643752606424967815194234183042184710007710221804736483476456190160175371208760510527369322029518763465717124958521072885147894291782443297004221315243512662722313437290172567109774398246958806073256500313124635741105041333492582777020925003611361067921380220652800798231687878904823756097041164856425537602285837589683394466618984067767321217769202736451208960898403252308150407259863393632690542091106254783290157877714385173422755663076980825418641774189055926184772100047884129419798223822065645477866866583054034292730457130250060609378544566698571961748541321007876288603437605066243097691465081453315630372608493304128916013219786230042169885210047224290576434494776318655677433568574787733300652706071925950266242768058854969149219564996716385479903860337037586471217976132453008235846224371785272945692299556028177792585772852430669179000577262167605219400439394755071035738778890669983758293332924820064061751205278936592823748369852972569477450440053820333815331129810664017475342826418154865960956245688972048244621481588428637183088331648743429561141473186572174203082420905660504319945098809246219097384926751613907946906838468701258260276767612371108757513920755484722858358904978658080958321677996420151294816570526878357250841497633239786242483012253504114961828101775399140128744467871461572897311664069819501550496490540864844165048781835680645799921734734475722457063860708128729441941400771298197438287415454161101272564001255420892278116676770324957838187259864156664892767397631274794538718341737459814699448038490238577994711523504909814486664343647221535598161991923879181980767470051583946314928616439666091273808022718038539636649541807209951702373931617723723945825381970080320358044873834320287464921672606010167082362402985309071165091646347104742644515654323008302203721337728831600212550398079447921359429943360080662255149542043279662666467244484235551494555311197294293947380003603163227281290044608081629348478563637342636412908500503005546075455156772323305738540901705570869203779747052546272533658386227255587562453964750891860751693736546408299695804815432156859138171652239086421568516108995333278418071599303525875340055570869516838544961791881977647803092021170659961849226603409921861650183852563186670366372469853483754891939812207708797894570578519550751537685877447633315158320730962151260316356824477023169846762288023068676136815236263239666462329995655192948931591706826710812299228622693485809845726262646296702346003945427424662356916823116229001380250153954342123812854181676185939845648569604151867242180409872467943685990943841595030450012088678408180017332599627488781736237845118708093899221583380254744262129959629687863387265700225914967241331370604393566916116855745363136349697865185478143010210920809448152347565685510953785534084529139794883086142221501133020343869672083055667629674735115021851934769721407630251779972589854085308726055197434354934069447478456842492149604908940209926039565730359866584646129080869279127301019175430390350696763879313633675208500379470857950147172370800855615722096451808361439540186915114759836106760030809012080909945000419418424056099466235748070442664042855008112981919894256851927102913187659129510390300081236047037797514339570026373977052904309092814152540061065054701149822250784115250036583671309785500120429421995977227787783623712941086703340153975715744136471986910435914423700064729500393800888952826284430503253954763301062519299663451354659959342669898738970265322731730538792428906468076762022251534402958599872214867922103310884264264893152805035374420780615760026783838531847327467384171431664758369872051358101456297942422247829977403088777637482057558949660261059943939824697749654069209258572486507423809385578651007274512237481920261803091584620566398697145199244363734356630614364097452290512871810805533621610089902000495945165196511207242873317703461359128449687015898000075187976036742129145713721078478861850906492733036513876711711017036984923635359694558695568177412540858744824637373673462574778602851007406548989729935103751871089441092908071766173545161546732062918651668220460912866980476071280519723035071328570405825009865888303685977690284171176006486232076469962548293942299564457487081545998996033077530815956026113171618368080497162759101483048888474510648545309814250079048954641210700099202423198541930672613762472904891176418170117342838913322954671461995268390714298020933355386866159449691711897552437061893609960831780808235284346727896392774937645252973435827785445790333130951948169726667412554522643551987244319314007458886923507496924635729630017239536937172471832663055318843376659778016301365973146659249742632845634708312799301678156271432419591364082389091984278031717303661065801121736337950988319958188445445710543451564315453271392669134389130701587318618147855289481879561090381667021318537108803112996965057238154703049967421056129472565444163703652570700512878082811709888170320293293880439331592121919454011553747633423167821263415891194711891988700989039756518612131638337899933153215960936114138669002182504516162042062580451840916228023154955007917041600756612893520886583933267502401435776301176139435826216484297747009924522223312140683749147102804652723872678366410650639075197196184171670775720510962650609649242642479844703506514276894504380042364073531564758902116390131674385734341985067931768811749279547806423541472723135674309598467354499178520693477969832412389909220047732553801419557991134840172509593030014952470022227050269792401294394761109042005752173724778748743317029733595205689315529117356623012413682491903370082350496943787672864386645407628536960821224164112841779777133989357418221054696454339438727562634410288779842460975519583440835720907495527257398973660593052387907701000431960907556518171705752980710403044891798611359696165999142807561121219135301173809323484482692714753706820221669886260105824170576891686345488656540786731362657215135214514505415863665139560460068132358121782187095991377768704583224091950063751369728498017649485940265483562501142212837584013540515827806370968895771300421875686007114738658769786133367765146335886314708125307384960465679155545384412830398441597715165328574206438407401903493743377762203172680805517134520266115210418392088578728906669522023707080263404204545699404337435244425772867258649705248241388199550841139590470653466656925517330348550671905685203634351093320579814508065234691389212384569293667082231873589898596143669909407827642389999505785543920641927099691038337908993167989170295647824361696256414350264593149085702168078731676061971955759519016102376165765696517891917668751684823849482788411316652395885739100087130983414073342023982163038083114407992612264039212873061800200411078369053800720531726143689083419493706940106688691538076585850370384365894204725981935381281312977742818891616659079957752840668716784509247736915065456698310441663932847061347096079644276774183725806995133442601616534296057498075399014399802755692756435450882254912957854513520132948678142671055290745740792783204575588066841455543383514756325943823405538275031219231982760608309421866619887474729162813745298181591499381055068418745379057873338010007390445292142571748329631860786072968524727208772853413374594997795235290519441951606130570420092499140071954985360866384226941982702178354970199438619009801008899297406809852334787257739991816029354589692772886054868758726299986830554226463607267973810637086904295189825380975346578603627621892700551627039668628549339058236434304375394359883116292625591567516655602407943441183645530712192892064299822619432627220619978649207179155609141303682396433228823936639396814273414124877911171267234597911090110048422082101969611164077423342155880838379973029881044255084624785160278968805093005943459362912873391911736635205969698945991515343274696173568110766983266248569120835641587062903478215016956262966445251665526821065049536151676944494543795158002560426635765687297121113991138536274790476442597607156077020971595611664820545947412155907195902578964621111233955037392289274554800972359689806160559157640235585058732962289558958596081418086609722946733322051792980874549951118275127462465169814768987526089334683110682958282378577543865475136229871336463083312038543096139253277648973544732902073342255127168103385366381982104120403273327046475587340830055339967465832958499734733901074634876024445671029217617633606981494438420868893036081371840224085741104898794347346197245419866177754496986517137232267611924404248624584077037931016492870786262785918556018779444061960878161158214847996072732256322073933606687687895230250789587732269713509375431649403000909377931853762706566141103182663859978548348862790731554637987617633248340181092889601692519168733798343364243738505692879602201786860276580291438922309990028641561967637177115630250735402873247778410091826630840472280803873581178609467701023046834535166986141091499646374564249975836178779667164879291036348288907793931581480827298744940004917147259797397858876585062295468106762729911884691324764516021924189981198611452481065340282539909277075875647800496624207790110946884558633930800033923885182529199703092741902659305062928032072596567653421191328295676280969489076958799742903933651206148481634058455499437435848932112868259449889602955033289211246161206619570586866997974365480542036238333594779157964670765858516321807081860827014478185623801657890764357307200622692312920811003958378223219527980464565684536041430113212140805865096115093893947463101116238137582751321438079907493603994206962147817579803560770264727632193657462149108276047582041400194411964516416671992197799291862123801205682376751187024087918088878786388070447447036827447510507935789860446081744912434544035824713222687904515172808417544268388874772714773233983699902384443249121080454565097694828619468023511435108666628926034180664646783545123156576155453097228779946866499000674923410392756995466080496384938756923213480064947242211896774532965632482948025574333020397794757137326406039154979098964375830018017565794607050598503168903708016229880420133358413527213865121788686713490835991817251656123912412945617633142656469364961792225850398984762089874565805131414946541856079694112361818529571335689323151326391447241873054039189831172383915173394331357710575362523951348444680012053198292583523822221936076194250992289375300908850213372300753681404633549969098948367492301285087558961502336787461413805518741858142204244509353609787136310801402836073239886795681077364335574490277508949399730928183128911164629732790599591134005749154288007873628747632916940181973999919480616711724640365196661689257815643529635533744075408607516086419585876289505987918886863500705193278408111252456890244807167711122556642301277397176956215726168732153800075281096407692308042815515899349535885085703011343434043514536101580335573282085902249590988184274657389837434368338344762638114048020371586410029123354454269011946330115729955244395634633296774696044829841171666046759468187657020267207491119938534329898565644223875482048178442084860885932840711201287083552661432694027185949435096047094652563657814819706879640688270512641150444136147032339607203819559072993045006171351545928970741840887119342362220969211519301221688613149769337222856357883776005751370628786493957091121488614333949097364972443631209870916787826247468548456059506536352699631339033341554220820078673264184997275914989053919192511989063310354771308741576522199467939254667327616661551905549250181185381293937113675059505396602514248265557276932491448067545669943334615352907593396459060325193976986674158734498922704614083606709539707487643878410956216791018272378500291662723318121119755569028271965073923705460267496849561511527061856112156993190210223349705196166541494268604277122246821336926143192866306667350818775296570476471131978208131125795838091677555008229776932810999769892225411923229753621864581670819635837010463170929830743182860126523068560907478070556558232309483286407450933695105712410788730116472602197673280419518564049719659664998649587410434544863544183470949728056844428547041839536573085467853481087214977166711903121185304813663756475511162498112537158901611217219339030339433362883624312614584031911606432105068822425909934988037269923714656253531053118262923377877109408174375012477201713296701474085932985282531249013082390793505921650304254305332467743618708426829976214858101880759783086397120915506179450494689726271577707676988452866122139709985916609465543494263238882002656558304844635633016375948007054588483619818573134419592159773357310545030115867376196054727202072458587162638995834236317100286042283572306570772167034803381547546521109708818797394096902153348167055054237562874665317166074368824641554072777717812591747343497457742717742846418762552396999847461944518718989665509419249349003573476518315118229736906473351492262946295010515257524612440203160724555252988182407153125774695284780596660154962728367090198630725632589907613035907482994347033277222847227639915248654980269250839784096699783903126178733465417896771455784553516839833660519241199278941021426186529535176495154332394874857685132345558457670811926678720019941709935633949941339567585882338972301717402676004750908914270876967021254935581195955402182337581264239315855278210139078369424430844715454741544704957684276446955354014849882889550502023154195611763674779324702370549884232592235790005919245640434267882972815961072779474308139359699111195619817415989718453285560833991855474990518368004667716704653892880460494211441741067163620061907959238454146024303084827819335747393762931001069724142678877979594031998667753131475132789753937349811845838147379305978868455222111379330294997164090619617941518739425013911202678290225768513167552171536576210741170570861845206060177228937123937457957076755229472044039876339710666141044780212220075482719546878089612711607607236522211613057838640833429195311282949162312146086066480254693534364665204879953253343890625945036010234977015928941002176958310239383368638190606712619248595264085350362323187714873946787740490157333433463130930230826837178464080514877499758180031168194967133657801950499870264085255485766053531258048349163868398581037249304983941034115340399415505247299892091010662330591939943692346394766855509777389750720567891064431568158272463530698892283318354739291096019584245459997373518377249539579131577632459037098968675028368393434956688817864603032495512348430541463090764438371339982209128412062678428497792872411310086582939800093202117605116603324276305186746794397149568249149525862259349281481459580070229828842710466607290316144449458420552551838652969427169497061489482423130064529889007152679960076250656160029230492839006648782791449480931485874433074462090490619192293098853749130667829631131963874227281193776883690918944895859889179987152416399032467549511631749588774641755585517950190101489544860302262833134829913397298128946755608373081770532810745738610905083136501405073428196978861633294802524123670951549184876990941850403124263556743207938641352237535506253939702180427973475684203692595226310904409265894711837660246744698186940124945870508069756223389109472490805985019038031317170932676397511989116751919637258263259662811117753927199321243766226084012791102998105926482621174691887595245248333099020099168497402624813402486485303253042129631476488152676272688851553163646974289771427157643110043644628474894590120150913989481499683383758873874902938895344245533736743759479466889979651101118476101312870030948823533028659515299971618940240129398543019316744284250930848721456053416924075446596820725262884471140546435100897023271920417470841121839777322018169576029997092130029501318823647402689204605790188954857731083824829941304384595375770841353395759340311447523433811490113313337372100687180027514288305137839623943132299073238606341121325869968828453210602790669181890023500066440885571457135453617971326822472476619744302120399144789367546909030528498107605504133636688841656200415647105424533685773003700090613698201930074971229060322277083698501580864718122957424698251930922085782922751854408458394420087826101950826563067928237831436975430986343112641906305923948219202477535474107910326218455557003040619417527733476115242697456369277954139477340696347422007715917319698205251307907082823290768904548736281188136321045329677503733160614815806006269148793412563868868271758963257666212507428867088942338206126435239010091660136379996802154130906981632887988446051325518570437284154151018380587978487773890414818484988714277929543677791599891384685023001218935832004909427558990377221769837061112087159830966350394375162428421952562473002986593653987281433006129289193785637716530912090246340763302440216352067715462412059848690547656955630958228503616962003544088539713982225171970065773652461870759877929233477550586064274496448441460692982463388965824951163871011727674688730091660097424636218928153048095256007167267493614841764718098507217513751411153622807924425958741431708711411119689959077512583473120229312401608695323017066369533944235410581328574408795212168135362921673255933090454310778154675133904111664900111313306801778171272941648949041276998047301886513255148300643011649388018821668579266102659319963910194650547628896193949733294644045064716536533743284291599289635696857740965018103709734279051157426636876838209716996811015912984458854604598974520954085382101802941263839047344275840198045667985235452301406509489462946260911306775669919212148121142802470937676642810938761855093423441536979967346378317041324959688832592582407432926984080603659032787105603802172617963139446838055437567068628128958986049999750407031591386717046402745849732503641704270269135138648100361996223440937969135090310883464960191711653732777760422183673678899114112135721601691293281772657595279860229058349198483571260614323375158962257599004378901289977403075950577686599157730069509876943728548895667575528754762476276151628887329809145858655815678780915992082238467692718008704883192904510688127502974182385804838031430682228703094876154308380020325323699396397246349187946747048381263844595297870834796796956949971528079955139284080530174644015313305808492054439767951157288494537439006422101068824680858641327474048688525700236987183648095149555783649918040239761363153511057940972480850825826501394046653229144585053709392993046151539297804136082637488057479013934942003901717015846889890907838320802715558888939000055335344542179204196372260915092326758381845176660271623641335636430153697715315716008452702192782029101667661853908822646217162997114679548038280092824912755743052394355523394912137461501258989893261515232989969773156595620400003993628856571754223165841899994530972522989810279324880110003812833451483473158681446244748867501581893625123608150659561354112514681719842583340124543848006489499879358564595455724413628774763595532540875157775799868321715054396045634895494006002913641291226164786835637714765360874619595885247321890286999801975291588563965727450288185036283230801395429937958974321099380632394289240671701050591103854338298424922517992711417598318987363880883566390317693136254040199233079343585546183737363983776081196570132766164753437421493166873866450928415155617080686594816976281902226979855530054746803669700755841612030564077687374448835801207384690733535695689078387685506646287381256244158090261431398640971036492648440484063524735905716122633800963088263134549959310884637406031331434946696491989836194217965174309491723162870149927538387258873479964965957070777740079341843543072069185540568751467270438714173849771554905859832062069243272072020801901881196780037895736452235863287426672811420823907894371123218769614009692123127979570214371792909152057999487067926410426459723621167817126590094363484488163660960131187726245410635321415101036332822831756609009969690946069514620321513923520701855509958399232265060587560757323830488372043297764060746765397426195423965156363367769526876390960098000529342199252013442236721598187325403660884746785158537204966188882560394532246060715988544013072288760789076760121631093139659475970065213080380216162155914610145696253268016184802036569460532240657970095409877954441625979796802642231334937949782967342011088418919777386048286911384608012219812728667089829457857409902668845962849627162487942169686510593090409028597019908075210886437175196828327803796461004272836313329766777032261527313181465939522476094840975165631179138714710271025390143651177082339913752236485061897230080745936469196025634109410123303842979637173458168614727339803152342697444423459017010945129567959716329574903305459101791458597237909978195294404947374382368806473106783466105226741346961908185961629847016997064083899681453491068131491538896951804628847696008164886856000027793966371714633134735172896746193011133255238654912048527247840490460249327373504055131899404429293817803890368140184423903232857604606492225609216009365512913511252844654884746225949985024535428664975379353389575143733625823669361556311278110783082841202669559334643143524746505340491687002669866042916426099488669456311250760354023058340935029826436056875935231949044629236279828900317063801939156234850446478812163019085870370935759796183227496820266516497059953288345421794781637710100121144952456893461449147187248071742188061061631097406095581973830612820177351527050258333126662015029480749951364882165599093669389156780228395477386319176596433461892630972518079451191632444156647804858703886739400662746016650546128869755908630470616574639283074545735211092858504844011395099033334544837573687463393180414328692107947829013321652536375438749303812128564257418439801040633806391276532856559858734789001117861545010255916803408139083446243971209161327856690086341906327581216728389355919238807953947439256561549694523421616598478052138902959198100882223398318768559141338049863396539538956958395955726910139965114822020404542024023192821289238182033794774025939818385616095489458069171664075255329614480179943467405148777420768092294403570618644806293194578902733703666785893188517329472301126316405106924634676343800536885611734612072636608260747768599294355484717649663321939473990214373228485168355830897231574802274381081533593209127804894373800090527958171845423096450913378789205060548905278052717715326256815004362874654036749277034817588107108826393402994317479281809248551800328640455532864439210430368661693564543441726025119222204286176367869240608352971918793087120083246957621374432979550629818515238034768389062135190417256168735294143626667103958063533077263264208146355892563224554712738323367147329659978537355449534918912317523314861639580750138940152966090842069539878046686946523468706874805530033826085956685632889461702210845867630781494237510528726769946016899856133473848562545328161327107857402562012290555372989030300824831399757326538798995401775059062217816399426831450854875275213203667688262837292972829100106278988137437723417535396179335983905640880117560776450028054307323477490732016753242084213831694672759063094184682415992762742594862183967028851045577892552484847784447235861724714121035978001797921492281141220083167959102821857746227648738404676098333946675645176854941678551777749381026858328495159822563054118156535274723088595104944343943985880064951660619534130877190535160906700214830387984189857161668211011027909216883167253437765083379313307208168692503122091975351819351481697275531696598312270499002308511641984342662971078526455756442767997390735003013042193197316004340338851799766362503109958776279021634470218110559432227821997076595409866360174482333000052995427606035478781093497101169793476453611285679513191731118526842925952459108681232608420481918448870528593920538135547396485289053797484227569950366265113406489526582636421730848900890863057667091864321483370783334772984765809345193963110757680673007906177904132067424283781663683912653408169655395134000820176417522832006920459750899620079907382081388589633449439303347815748199708757606258860652409116518847324464597285256215304732712853266211227763517624356091013128445258376704016577641818358710205806414705548344674869075034678556433128389581915523300070920607354920161394112533349514221458960511900902152436896582579302373725620895314658499853850220505416834541588127022002560069521351409968493540121199072715125474707170760669660095605584438916363452474735527215987492264275704054816664369426067564306984395172289191074767561716518808280153893820697180322488379519696599985920775772966447778376865317257261491311389695570861741069406698227250772910292701994101796158640662469705815883869613998359994786574953591512694407430578025386712229677957018894472453308541045331260568532991080962792752729080561310136777961480948199845699291343916711605975229868350242986095336133568944868272696333584847796952699827928807804071396421909385270375949189240813359549173138399608321731922425093003107789030187647138419517833584363692704692729497911213078831338412705969197125381847796438925968295069720800672076172349342820154595202270887779127194295184051898552554210703724750068076964219068063112573855076616403747014679829068031346954509887122946710162528292159431515513326215636224342351816726927115369250125657393616138690343859359568503006548327611222581647745461108374654651945139232451933478016157010709302648481450365773867198998287989168115109503293770703448842343264203045171421101729628212662635308013838593892233250885988887404133004245561470578363978415262114375838968927206924405148728658668067185837398824904394334309130913117489002904946272519428517719012222357862167700557532625247428544379139854661870256555390349059943448967055502540619909158710802175419711532009737402074527553226653226826329686065131026185789947748432369693789433673574293721681778249018971351956545746309326433096489322435143216178194945861967014304030780208886475838193542693671893308043530117003833557758828209357412076604119838663686386776329908188277793802000823071493240292230002559095640423151614657632832608125266450884302955890719266304665435027499042679441876064834949240614517979109350884431920911553994445118823658976692352878690559826855731395506827477753233338799763742032914892708572980213783926230436460446954096832339628235791746123806549314068917539546917770991890302797679236891066168931319111176906404184064093568004295448631711750842968247062360307479174583956462935225933911821484348744496148347170061594995308273153028920523408423053865097552435720305906825512564549453409948630811208327219224261558434726817960828734351729943401217283973456082485462217720045228193718454512007104336855116285128717446240034577427760656213460401522563531220322899146866893713822431842647634564658824473516124529374838708331473875286844121535344528993467691431699718273483346977396033567270362095194499025708942957948086643098236815718694922336041699043872732676788545551943947237764779022635847860286240443733116248846762861062458920713378971714046933957651044381033959489036638775029935073837557498566295669182688462684550009882590645129185896556782367935202063320526571321915678774476872610231483871116737840442556034117121061653905727839338864336775491205730269420169836486033116158397934736425591591461851952384586211445491095783262344609465123761494815608448825286131252675180670703555014929072743253873669269903597361479130421573737933139529867113028654123610183077122468331159881320912890039242000909311617268388271007741348223476112982204809333264560827933764868202525443660657572751654535576454695557616066920494785101955505002013409998129256048853771085838381274952910443794818979030661328090068383723606739157289569664218762515229299543239574759450837217055464035147959578261992618758753785748514544155611519431658098140540589609544614812753119319163078629547690995543858327041352909719475104153290159999039423730323564540643386736634511414986321078407115500250611440298065041659021612265686690711030697042672152870011197662804303947309845459314674305111129938616821863197301850619143617139852695787833916539395086125051087110423498156904515175840229519321842489192412266004871542997615819195438088551190900577904549789769061220782139679010642822893827076705125862149425960975269162217795542843227388672682243797877097271476823612179294726291685163507744932417856956416974799883034653303923065855880408871447665751206594807451189964880404769376331125303179997865134707771342452390113064697392054636197931033401031412303403703482090105638056859619734933772489305677566776899760163658291829302203092298979562311951919476295992339206472232295691057155288395522910731781013940313008543534717102368813619336884741132976653221136579450409410349416391415893357478298543600581676829052892341524446617889879935538555582236047548597722175407409647233592695517165409958829823081170407046122202432445627020319281715435015452844715648255801388190210476712611947993229270230378301711019295602908595455133192667337608720712977497793716880685933226751603303211155192705179630795680542695541231697129194673479886173385706984148931326371411152413733941327295871154569960046220388017403568473722148760645395458457893636033071778015752820886176567087894179782348867468498264993249786299244074951869506803922246567536424397632872874679378651430585931276247209202747806785362101964357590757348881078584304216981742266302240388205993410107106998176083199639345765303088698033990307199848340750064940281717931052213928463451523515189322322018572886466339115158412387600240519800150651970269426269858171160794340956890131849262377468446009242604340139167195344431467593724899149850749101491184100914299974366023014497273447986583532630423379882724392135430469256126056345489322919530236821362579448449269530669792506983971990198984303686603322892135433324278348036283719273956755761445416667053588985461795648056006662068033642347745863317292073446658254261289774225294608149575435505732782806461052916816962349540927675700112613893143559214079018484333150525929733307362977188386542994390645767988434527793382960246980339623816220103072269922710873013276755479187559119258102891169792631375325375282546339453712717204549873302906651856002555247339442824693924913133419275230159835607201253035479421961609741752778155584880427245190652629455937369861809833845155050878399334939557189968608604297932276241003099518157932763408972938197448743073507362779084810846555170320170056852789869941803947510395856125344198322391386185826559308080353330199693105607992405972151249423194678715999341257279675646596450360743162077351497581308731224173503446828380917918344243463222350857861786313002719769806743395499653976252958603202867170010698581535911096616146576288976526620244100960146713775783304227428371297289244298760185872047899357261459200005270554351015665896625243878930163799739957524827707553433794447582657524011892990866747039119510035399320344914750329936707960273820426935777449784841659755523893021952930638101221458613909849127347532402803106775315571172339442927790168977323335540410702317911154910590516401731062508599567562911980955597985385555383518336351587403352423211393838388188511049095072535860793786487868059329718524334777143402247069387912903111504412953580884745992580442325865692158772697330772593302911774158511347564172838208912007692112789496456792472817828894862794437402288148181872398854645621153723165662446911443721854472661074910918316546486750151816585307533935151722232693132226592833355649468202297733081713309142628111041360882997804141136519160572158955889562981814388203797084829283179959613011059084111024109002252674132943108810818655546638722032487217806652110268527441195784282343929215239270350852312052701896892320963271109028552183968145349030314787387411602120343503830280441864719587596131485377249452509326401034482632145554558570239311374704628672223790421847214799358453463953878290332819107487077504492725186903939041410169786976247693660787777223963810744376772060894662348600461554026127709828908129036101013602775030084793000303647168730452605759338318778121370375489236888104321441972435485472721843388634116514925718605982472046471131586706958314538991067903491795532734362971020770853001254837045945224223491162907545919252402986644594921179486471729629066377723428765167517453703262966499501532160232156332688425915592454718711609462153771502601410458536303743572337133142412276372953597369602936293360355570321272744908049908944836356507082458263575407015798301233315584594800843069138516585615267348402370318515379528113530522552776418353963145153198868591977737652318489308196593760125995300330999065260780928869158162842513866111165349223887167626692379513184652233052611996931132164934828499554004562783626102279050600190284628202272357274519754888583298872461671995680834426975917606746587154972232405997921319744029758814415313035242976528912201341987295004852748412462861535604929843871950838940330831450826663380687855244160897453554614360436944574161649175613367419102381848054021378988418180288847297050979843755331849817465358238383214459627082827060757875191100864582936074791398750759000163739132221013565489973659549802969400939212973476677874950762233617475443939851829162416095635653760589345514323546934922378449750933513477849629399602978255250922855830141136886639347925148892768598980927125372060233385084169708100482347277804108541988864092114548748159595300153510828762844477670930462892955524725017936056450011430874715016014634864504833917047973651610690885225597790401622113117982419951859261950637453067579725344873906669904267549063737643622433840944598675442844145628934669445415920194637323423966974181329939199877753576076381781165889376838541122627732755785631400982289803854147839914018530333726279854020091964330342332166887422419762391459495439213459702984528584815813317557761478493725912925223021058708957593414865462024763090347664031427243212169409372323569922591307308087208709003744264635315174149166577637125302785429171716047629893862648432670879773207449093103364473043252360021624479122227568202594212932783165211097815393634985549068487818314938806050855654278677146244307709712135043506703736041664207115266576217029810234932296747254659464518527937012741657358052540621700473633155494921234047295416027355622183218077727671567031333777561654403463971991141961911484211062985532860583311881193027630477263966446931952217108180957987315283546852094707692104436762411614318950222641035022660254177287257742342997331021898055441425680759412765478493123605817584394628691518785272545171808655713337626719574849865258090919506011768323868928787100326757926774988461953921398891585959359628823505339910374134376046597268126068658734316312942779620676173759160330864046420513883443736940207747442488196827253046202451132815762157479677611369349295770774052079758976306548712601240308081520527048461119035840882686216852208474175058727093846043967702650650173673293817216564840879117927918887960651329393461117868170542708434105786079153667267092178792412275387178620415271226542382448161001728125973694806476017451166452135592960174859494992926054164350473426937339015181147243151937013342932154608088490599434699067024663475585573265967787718790142476323962042077999784904100630924015008436898412156827533506685813185166432138655278085381833173955287825175641729044048441673979738741491219484425129643576299471906214492433424383887363917257642362675232611010000543796158185865720895370969443331668082683499826093905074114049669171313737080688759235230084563800239286799979971246558074425669182274353934420811280970872770886689334207735141608012648268858206121543935932121944712823964501815411902446177652311984200770934578294579901623385678374531140467486801651271684049503319022645068438712121399322821971899752762797694423300516654965413112205562536371366262440460562860392078355272776486255666576290852586621293839337120392365901527879126626178265644428331352950296892758898970508381834253706590489966396692666194062009205761492226121006449176455311864261400292535216289872238740149684793380179196642628933764249527074972853289166239335261929792226502405904540430818779220151814860953783171728492294454359276460876043303012781299658913561017000266922310382413207860118041637444115542485362957901585267594782006257235734712071703082010149570970643286502536466632152797414250751835912201379375832717048194312308657264848535513425859973429094382267186014428001244532922379135623157201334471047849420467780456583302228531171086242823240811887338371412543605535472874583151602194157413485175405559016056810755696584555887727344507156613677437946655928446407112537588059366284903236746053477473460304532695875458474054818810850663839897257868127187462179592219143821178726441130786193516189697317028417809249006651234379534379673936242464494790444519363193076225846554301290962498789413297411803150780425786911090061015742772931407523383483942748129947566528190650236917842865951014674867718703232448848419908415062363200405836016688125236488983344336693560122985794914019908504540360902942965055918120740298917415580894769512831586138263042221216675143725594348212421034732114640231630031818384909966194051746524792024776369740404891226047056620313523830152727922493575904510048137568570501253076854456178746274350759758630354859160136774922576794126486568331677941585722439679445303946767571704059837851016109005968479065441790160671334944839650934936156097586917232336448373817688738197793043468178156223174050344811779694802991475630100569553856012927225633661044977810772513766729072081281400791079609076193288828192209084837250075777747508057454681381489244371339744899101513709304218479742925071498194991093834313944571139905647666485755471642723258318849768482506383356682343234077986296821039565224847256515820669369148073023039959089130039219223154806279814686132100154349263463933469924556933726221802954023785063329414848291294022165672360364008966730667502112980179186860260511661183153104013958326709108439315459042288047326378530538108495588756755300037020947662438456456380368627828284197892713002604160013669260286869225184988355269167664139589710878243150175627902800542792158969308582423453418555522903046182361169288954153769555326551890165967385332047543788799787999087815529263980312277199846870150492380019180287729313964951213144520735182369167880742136692575951242565714876883227371525753912144785029161745941205584915308017129207095484445634095652455365087192828532528623198325374817966782057192811144547650192391732860408706194092377107151768442529513991978099838624086625115219312735190499242009991072227617346676015280249698617575359598154717038399850166772741692794929270452933535427139492562904721055694473247964390722857246718346394309596546170573671938199592831951475313218526338265780805992155378879118208645684765125250710411661722295947367907701790194421112154468496239625794410835486355929878085301327337923679022322535732729535016432428978351084524308044445114339737162667207406431189373907756053571292352993259348268100241283013100069142311000560966862433968600655311194617042877304116419685296710838149770896291730287161318033787245621556727402933786620754831254807045047291107628634328245461034837928206175219140104285339557051553682339966417596225075977832943690174237107115792682690032688286976048605965778413286204319161732578166707855693460217130807432944676787492212314498741762727236446286837563587985560250434463191780122803319099809865796305667528445055578145955337046819955439498474318354214334324882147249670659759683217320878934976118141916018119023259110402940939791878534420398216612486764254099688290787717935764564742101483909060221093304292973817119872152092493522330659443154885621457545933599410842754510016470220051082426721088510097458905046974256315551567330346521170969581345399799269808922295287797277526316813540956759574320547198359740045351650997408200265572785199239528668724162053629012632615485859612267125380547651317030383190016917368739722493180164937209678221384295409136377995367519088285840537131924503754665120223016350059586202386737632441410132663835641926190427086684345755700784684860630932658518104380830044258431232729634820419464002974788681631810945164166855286684925744929407845573068058731042110386840825813827939168281103503482778108429996805640383685920273163914789928202727077282645007081712484714401004340616132173087104769683810171556716126558814687409362679095002391394503565370908180683754442402405572707617956409463318955215242745742625728570401522520682632005186262307113390400064989105677097997986323982628683320616758711450860002268513411234061064914207549964660463229267825660135646029068413257977461258009718513880511077769073485105705844592430710886698220482105480965742609896275526519424914650987844006445577256618338997672714951726308068693818742366413910630663389237374012814439104346812028530570355341850605163016810484484191368697737210477421760258386946331330274187685132143004629601223421008746386642657603509424007404772404155979952637343386161826002533188412237933299706300944385303081608852030843522183119027756021151687787535486089768186672538643149970959748566254664362123065106993884004545483817295298532672989309365504364221251887843380043713069522921817262764335526530133027631506757208646897130999024283770790622347211390117113219227148094257798792639118140529952990671337298237264178976025439256736565089795754267722652681403282354655334784294542446076668961444795438651995330816510462513161739195245851693180611431391607735253712286081825053713819620633235142003242990100780818766882640556791745001939322890512002432934853144804611876449908114283536540348800715765518669779661830293835702398860046102906806772559021409828313295531176492911987597235497293148619005444001218536548167753906913958740535596013831050292832420988992429861222550535171307822483762367729391838651405844744953299010891082555178933460784152458330984852876334671708337752793730132068831035749971188479512712085177252898931575112775773072377544827804856741870221562894830638205178703577976132494148042241670500428370545605394616705985438745075112861973602039766811467437896357906947612677342583228128514198839188535336932143194064289108150143206574707708740460267526062357890941841463680503034519937499647957609818596862992863181715641402738129308963037424026233316633522763383833770055440818556711727752373732362062074966202041479196009501831928931860859516531690184698259915681371941129431543600172156386100591235797486271199396607008069946096944242083762671891136669836861938993882912431622809027880389467365639534813452622503769567839411495121289713805929732690894793606168366108438917709942983245369716592655271256068906556264461010241338386533533162644938608552399024883251902081848316239988849432537581899055213426381722348489183919476975143737987879791024190059888120600806462595759351037113532449969535555659346596980706511815371678446120446275269833000543397271266248544577074818331754449843752214631080854403132434452217279399083511193581871810609705803666821976357937170936350077983789373394621609676275797265468231776462684990974686470576116743032162740101246082890698507877699231518581124285910984952638014385622913340973884102490087423507943094164447052186843682144481083052709822628561637144830573220688106778785898749732687172598236990391666123871251008322170842741548029693070841778027292626959641895089050030037418587987351794278003693756243105892865381142870850182774270536567095328358043665696614847224734206324354090215191048692280349750550631866130061372081642456722979616500036868040771680874245707467484921268180377508816879423889181497241098095629881214156210255478403196008147131213070816009420773405023998660273880227159964855985239406586313377619718754745222124040992506641830099097548721656598683711775109531254056611484852115683114553184925387250212137371467032144166040338435893695108404028762549970257495973533193235234947043500396974156106569206655425121277375120434129067904646341929286119450274779953841810096729062977700874395579935943513943285233481004318406877104200274838997619835914866599729062295331575076639731756701458437275188137632115096984114357188578423576001735952355985379140798710823443256229830543863168115809455914580214738728917278265627592281322185481535185028772785555643444946393402046843298073039010480924727971707491806152185013795671476559089244755980451798371805161517690428208350637699503294946953958100361178585303068218810950360043062408973455848855974351923024466562867048930532793606775326620236926766334290488113273602956106736821461300687912523630856330114267374562534889782506967501028696659499285899920307623857196263943880435103004663808142357098965695844463719554453373107611786587203305629843213076426370746727307984829863862528489704126663193870010814095245392990039466713603339996072102286747593907218921370079168200315943449515000781526340139129303716915070712166531383143735373753107768972062183961422030970803490547004885761695113358046176870649809806905386534811114416298184672638337822652426423161651070687395104630938745359765297926080164527112594713496061309694830076700145522745030313590820601256494251378835001011636193190674044191615143842570798292245569641715812040139220340252812044293212849863809262373563844380550763805930090158068691044606975201143715524624191641857322130330215669228566584210135168144824898837948147934339239781020237486119293870026598212270816047119523240523484088243558421670692854836358907940807647199031246121057179319925057250472911687411535982943771817264222832572646268448477830109534458287214855741625092843382133056150003663234893501217608789700176963544231309661014890052936157291471614454656445581126387164440478362998304986473376862165729485665157268259989612301183060066001558925386167641396028785924694020477755769853307892501334632827652702671763535621084401193117137367650339198064271838142728181360813870758650297423012973728562503804515790810531833539847619128903763033026451001884577055064677284747132868107751182344873466605565772470145258916780540239450554164479836238813064454390907555812236330176578640606474284854541085172036024146792294460679252726833706480476055815512659070615737100548396797758000357171589423392545488312364480727331143863114075774186455435356661726083080424492322215573938966196141628100697826746801470390524951972963188962695573478123849934767542878322387026570522827819435785433689664868298597752766305459570314965756293871677859640214270732780004491227720886975933977697624814830760043258189336633770836754130642266390983102457696994542857819854167468844182575021735593218235887312085435844539751760717399179712006185586213210491812895952359790504168560439794806282059059015302861137293485161502075284236124359162439214442670874690780173671037432955252395686479258863636101634551560803783680176333726076581218011686652077708920186536135674666254550100057962087469535875991752759318377332566913327745680086529856625951316986851309414799988939918585820304123670636796198176813072815593311380084618456451091096683598927795240604945996513217528373154010410691602863468954629010283718624136493336744367496102854912226683301432544872856170893406469744733807208067505334081794092999579175307439575921136993753103967457147148616073843661171748673370657582980914950813988754272971732839384527973550139157585782848328461944191319608682800000025027714434538884772881333279924309326044291665508059359706775469269562279002535610961658886705563729389084017952321275310029625476530237690792209283491488504919892693492604849199533675795247719624289826540925215283680626954775543988512709726007125782346699309772804680368652789382501822777238701949476631255541852467652426694705407067748437377311428546080927535103451286256006233399379790399130487500562433577249776749134960460220910569078201463889520612993926330662731152917590873572811955505293166358942648410634683263684791381212195859634762177702776942026325914423286304858061627223719418592502578104301625633095749132048773683358657621645708707084434284121206332316357040777064045436836944894397185691871972042615233917757024496944420318714369644655692397527658821790787762770997185309922663343115489160489766077952430112790988178800894304753277975513690738442777399799473816920774621676434490734068881801611965104610984554835128025643250679940680428177926363130593079105468621263900369752954153258207077455962195613866391735842857387880042243095443344706035160948199384607379348526942661817254514992644418384216159059452962318533812578860584218572037357292867038473408041890355311308858354815162218507833115946244643130578168034315669810208042716906521385464571774734925712756319099963126275227902611116527207909100076774695934627514690224958577968601530386070282538614948891325650401520888537558652323324825228035522846334347279611878796124549633912242038826692528878195363243422980731964197169206123963240723074521111883824553921608048787967105759470248683611616075609756592996479694948483385541933812223459441012338227207014670278574764740244479540940213340599949758677999393289094611381355173582852358394160839294999706153364419987317117331253585617586009218918632938844177960583950469845260237315925380447881617358839443780834636915821515778176080190534205717038814175836498923243174399368074161127556816667433010715525423868236002653061449769124312751235944873878921870038428668760294967544431975107524887730026183608992731455885962940131282488036228250665584287202648725465758093648169170088874866990254496408644704697613591919207581759113942886885345171744618702902304826682128477016668841183788073041199430571732770263984170419389362787922536285957849536362216449381319792417663918068938672669079198533525494738756071225948540704241976167031735888739515433692753615631003789836149860130340002348709575980219785272344397643183889993518151430351112595719100209983054463817550904726761668217925999828133189092744306720924146202040758193896685815696214251152316094364443837431242345054535616546213431849046297405647473513466367524934220123223782928754289110271777314295787764446778657475358742895281818800320122505054944939608834226846859018372668395372259373278120871208306787553408743758697054765918382778307932577069352209310227110589779366587004964310804013130462601664563718761837646676629237831593141051042330479315928187636358610791173627232164756343988114777248691697489887980628144921958500441148707897705684859542819078513777722000227258237999728799259827132713458917999000728040590510110707240811877146666318634400142429983679329387325173207928851093846255037382415421730873252559491200052053287644705973481571383750102483856028495974539120745239054952993260892277328637269480392634883644911042284584438587941173154731273720622629945083134957889091377019571373562795867779553687075661770437263630114833505805946609790041539148901264557314944278310862602595568418994074438743680063162005927381629120977614130652549850314837453941162113811837075338334964153319389156530058265526923405522197869153983035715299881190420595499847945548333205634930595819605820720470436716966270046638972676895219561349468344871736667969614945266377371154033962778172391300213334384417789449177331982628218379402453506562964492740199891394386118437866503613157630276143904104224071098509733727913142096275458443364778271463186579891510223276733630317945464497792065886100953431874506294748524724032452439457773028727139893011623520375099624009741599708897496899050850671550077189565012460840059254534058158054668591586000695278130245658926294391484371832290488668510309715319026833872335237792497415068615474125200371224901402774560872482527324757595917710061790761714518572230443298925129218954285432800557276454566479832775495558925274674825239911731080760140678680224845460914344297211682927063303420735107055963172053444295731317783575156260675345727499606286523770343012179380252977370684710452757443831891770416140872301403609919675248534813051291359231898334289722252021734508409083878884059131047384298248808726658621610973646496917242162140267364771811538898887210560504370752256173465308245763920001323344073479209379114365533425759736946817326783877149976448816669760797709934321598751346794063324477264099888455340139693789139934804989052308421933609325253547116919896728531334870302320022132754105246859466076460580916515411671241966316061906674391142496126239156511478907183233669130691543818154314220116423576578866060459901571316599366389088927167957565989228119702442911979194706591070726481944437266745338311211668457649581013438261632856872713905103218363024621678074468769491753701137468873712847223596629660927361514737258563027721236957060310028159669736944524039401486108429288046082740303309576190797444069949999091163342961364845872037204097627920185493172377382239894939615407420517827351741124975819207851772832149252910119970527784215042028411493221101715430553644562145060309944656686062292925292135965549363053371617739640408540251013964389994096658847356460981328074040029450234173950112195563949402384005482209251772952506398675247409545249061157226693748889881105490666219535922089144628789949276504514632697927510205376849734411968700600082773118266849969388846102619392701369671537067252332436376385250290901229504534240471855146986079733599113435426910794925641424034973146793465424132145739619571224702440436339550229462283522890301382786411982412230920277406393529997621214322184717594351006625912480713800557047653161307490649857483605652287305364814864155856211953865013891009081321127379623101090641654319190022183179504735688650601410752790700727644108365857878473322023807574863508438192122838048300750091701854952649216619245796749094007475817272007388214600802945253975447423274179284466678167204383522774293028471601576331687839278056698200671622863483262731072066243543314252703633146239255315848949048342762953616100980475631529231291158795264044421535084721676283737301244794482991662938008358272463866011448434413334654447510565716158832484772600587490617390232988703383354678953759864602811443417849593072786026768715435989278094448365428728647757394826028342202633743699535480644797169394817281674915554727112362025280187767690781546101416763026193033825599104767068119555376214707857532825517333171300238643312023908111218931126042023706248317050158426410464699749321353022385911087307559869446704446667141098285266283681155027987232360857002345938905914495123219817561446404660873924628102811450462800411240392229866431223201929986525906082237757734125230258685391223827070473369300713311155452433612426877321365009991986874018395784404171037326115173089674443085287025929541018819080991125666438504965554011262009296287354992660018074424880418462415885509375406956640928025633760774512724732743490979410943487876840247098122783656153390483364830804144414393671124211471000896534809689757857164080248575385374678103531326936816868345564164325726288459681636363611795701568187042308058056115665761618373137364272955871931854771341076573335547365166194342202641154954171041957827369067675756558308005705264161799682938730977229056071298380650149794753036846012403774027543894918538560624460856894426974641626603784792397152380899907236424946209903299278869042467326424254824854758196815293549925412411312836961426926450088747828560943674350939322495931292705182633874436752663850054926705227890879427996792062549446980022322510297681639298555487352636478437838582224485835149559288574709585581620582845568647538472046785048871630581400115758734878775711629267007983849912680224035271823812619797182393867692441817712592269182946729364724830550406416082744706857319283014152387229501645512716931911965173615264448884726679118708225137821432362057790729926021215527040939586726888526092900068899426145145484130375724875149281649516866602349757352466643122668170128903289000479199065154250900076370211884062073868040913271967925719740024745209908626079777925074874082414899006158327282076538427311546027206283636569511474820306485248751317425864109713659703730068060962847798502228287991112082165447337967104200323562689165409251598639412471403838771332757946119076076280476808590357493854035209428042461449918403303245297677648282218142991755766234926591112697604385459766149492848820891342187071973917950596549977269166477167695265577896567118082177907601188537538635118390788958612120172029500101419798286420072938732227699208562955028683941590280020858050139114637766848807986358454781854216509459779077179453340594045028458599992648874864018421348549311386046779331258719555934887971093535644148712408393586867297853143895289406414355283886938203455414401258125423976684485973851693288737516265126412948671946810624271860998841233572641591253894568743927157824154161390162678900073990079707705543598713875318383841975207985923516031904974833529696859520673704493790689216939082527173554245130985357075039610145927530467704368777548737929624019727452295987300728332604551727793813695533799954074846770927454148194351298965335904217302293437225578516808046348355012630410437214214773016342003657046789035585961482454804947141321020100411988749398249256554416697988690524632182651137847054436118475251953849652898762229278499174146446968583083561788326396826881298229187424941799874973203058737829213213244528476667793449976093150378519131764781158136229822226940799976560074643898157164660573242313700203851587833488276378101869294400534521564047855139124855582610154124091552631459921295634929662447399273117884355446550713256526879865430622392410962394471173115517490667159842319255566388223471537205508707815604872771510141578200882861692212250271467929095615540792844527447882157666932406580705453072985562263845138195912988707114236627143933320801285990121040920116098725569682645607467119515115247547958116826929590563549540904598107152488976158204599317650894202205652589765112494072062242899527999767048635015556215685210956543473656093552070346891628890627806186359525568914571764936401067867926863740251037484942758250931851047835016431844260866357890159095174885696965403753196360351091796404966802744481358992334615262515446054123255911739126206847090062712626086620197017835696318109790595807010183593743715067993255575438919149308313522058311366849856082082616315030719762432182297447332707034592101321236412188167502240222642028462581669187385296684079736960003606213571032642868742757728096330210809410928997244640843065304311259025202218912359817926754367207104770092886085992667509721669114048077903518284837080026224188510689198798083787425546342383759267659611368512054476613731820906471332983212926141858247826533052938200763851962863703818405642005432928565506933202154674622611144319268557342197920818746638344668011315059078791032947809508984943395810672185521224841050904541937032885859812068165147869622850846569597487859653174925596766709557953872627671799685366290888352170624372909939782990977872023367657894360806088239529633615457148342857800419182585072644141562845805574917226298009903842774409462891416388711380844709446299261125518165927230907391340518363691877880589124824381637648542906829397026285843769696672751771898474855339103592236724613394801133612776382435940474861182851741749083982546588147884896042282388947662919898493104118633115345871807464830302692664615886084981416707593416102412141901811056781012692372431129190817889140233434641233468078361778952657718624735794329944605753691975694173470292295672411688221384922496081827442029943918874566050289751307288630470518821972567741085639728106807025823169175430613108829576124166589894229691762812239373888509957586779181772164573470864652003024934281469815353188854213502863836318543710028100282785123245975878391230443262660538554996721874694499278006339744575973082819856688080684244221097126446975070046401355323723726925638439644010058481390773269292800769525747034695086439436058572166108727687977198987649547738030300878045335798900597286012475296378277868313640081532726755230761118137058606571476854017599783361624431454741744286356333144036753233200291248324318371489877280179018369930360929599859861214084518051178273101023593095620101733025208096747720762440130561259567046199157601646604830681186441940653658387824603167410095365796127261621461826032334511727260851383908193042611267144107102368336369832307072831238172994431539894998004949411973953252846600309940257613839291356261724369600401039643415624892052447514566115468816452319385792565375488138107814463422124512146893585449584796843630615809431260708481945212064242083989262407017239231723038797803894347827695249857523137019674496261690007331006933124407678261259965804171804276776884347605652777160477129533251214373805041379911376138291704540551041351234323422242389126685120896318900579737198580884848133998560252151988400238073414907884537575391054575886227810725781755409779708052108862447166870023342490822027100853693695089090493507806124523870503746061769416260931768454823720059326080489736541475735901665964668722812684762904824178000886441372619098791744626248893120459971857588755378672753410098316659862093881864170989937481981562290161977698946777263527836536259022622878559496747962578154160715226600853836265650939923365442254388533970954475582497463701898419484899801667355598321810545391693266558071663885066426780828155472550898687211211132472028663389584897335595274478219408707650274063420862052947985381258222369511245933615073466865837614338219214516477304276645048505213359130182594189203002454604516847315518254094253876552439204065345050434992258545598609808963582847954685053570752553882508177968476054663015639486268637256564941069913120389253179626031047839423151070261025161363040766404344301502698758512506327419442920678820614180808625602412046867069886941435478062506757021033645319326799640784150024175324037152565688638157833923290247021383268700139185222868850132856338056905418859900262473437135699764683502866548772247050004806756193902912369451428319185644657981619732315185661634283848845825202554250500719929669573905469403651802712652424191410079468204211283339616678527897545526272151352897107278682266797233577255296828089574799180053402348632479622609762793994644557203989084998377302548680289748978686659933113401671495012680198271832652317132004398764491831369586495487557707523497817615480486709949225233554173909633693493939760976858218157674733210415727774476957519958191616006616695483878332542342080062185550973542515237230756630343019107200656941797103029852200191231080617656854006353259775304068512831310411303053433526355886740472541748146717041094038291771339981653398138108423701445788662733225851545555516086259733290342989738418892397990043467629499083873315730366679444465321758149315638767986927151253304492514469605593857450937798773333284612691719180720793386521404204796657977838492706004653177207537539617569507210989209057584935211105467824329686365087388291083661557394555381869200238593649823630806821190627651240745955112377448167871683421948205460495895177970655821320928809408586483615304812206250242478116940593509368504791602122157807274601484659178237316137496753445878357542287670324058175473065264889226664717612828676542302975533797646377577395495622828183292569626356249520611156511721853638257544014492846941697764105693134169016534447156775100491255853904906820764660551789407978162025623228100136381675923055245007328115686660663337967369384353615127545762985016479183296138703804536037592821192099095303919830179113020811868493524636645173688735142113493298412726190155114364003029002120308451275017245886784383280063541796938978197632507635868334895888977784783023621744504339319951863727556505573535455666049599162203296594239061052958295204107139558331022578414157029503930452195045576050146973237651938638757705303835932592390653592100152500628063475290726260004279791755035263002646378118302850063260795939026319608976820750665429260867619552969252884545822750758501223468220910924273479901010241360924010627969498952953055878920153378189670755694037826852006722940100083724086943220252296322623657445650516710239164118813521249643165709572784452778171519074782768639830151373127720989084153872805741569915343351130278330424726150460013231208649565379000828119709445729813993078721737016265589545143078102370601653709180856510391658075195110297807984228427868282990651245341853503150453129291076279537311627373517221674005638853403247647551841999514117174992627888624266070160607927714527797417874600973552302085233747634980066546781490986024711289736712130831731757968195806622879246846679697578501107709097326330843958019891372814177851466898345976545866686068606073904463112429710252493265839617971246873050208836090877382263039225872763034731625391936217594208570470067166973931662728241179313281053469006005409426053017576108268806652325572799611977736791123248855891356557051128830004437747220880018889046814993578883802404563669178388528253728573463502724150053637721320960087924059419993381826034333310811769258245085730771890128089076627367822727674918030135786424765447583421847849582153770463863671801262898621853053014653873857478479711516238250641089402988812684505242725622312685900582913038505506172932557625574212480111779143480672771705755687080288019437642151575577318669836978267810142098710771200982901181476436945917037959092416549931905505146478391177521451783273358609734181786823976011199800696750353608310966948078315723321044587098370142579342722738146929380570711009833185030629812237581540224944728398661638913360416185136402201547531258663245341872364601801619299656396799915559717185622391484087486539537324717026044250617785278336001418655759452709882049442875539916264926405299868444583609852430371448296209779204916552453605325328378454286793512508729783576183686033800735094992918073862039421643184761311939106347578686525755044533773098035940845629821813504016967348329709472431880983633663317773327634773090521057824630147032362640327431676860608228935219075866655961340219397383005263141762446195380367359794640759295825540267545614023929868557315922959346012226330490974933230003216260073799670776971664620039269089754488588188340836171908684902525574643100934231435994886550372194572392238725892941950461695603397629093344010434761428630522433096448683276960818610767268580346006971980244772674104086896582148117258279526006241588128779732263507296985319536589040067666731804511696193007696326315120672964447245132241701049303918108235039231104211029100871556526398005139365969408998826586323970665793233819041176611700340521515170228844523788517665327891193264759853722523657655355460645036151692910416610849245172937727358707422747257827450625660560661145556301862296717954310934102838112845293211747724928313256995419012131895008628789748605705247876161404094973788288242080262454211919351841993564564006157466945375440879859289806055372481333083468373443402793767087911017537238512331084395733637886755164581144396148997090057735549216839874234846222661451591514637328089357739812822164333030048443371802306282459387506200187906793612932833996820097140225435844614639631557634358450079932862604225369066089815905703124556976868293091583753034670503336190666416835064530133297183430755894086196250367411619524237710289611745257442148452415729717337800985261271647709269517120407089404281758404273326620323052563814642563623325555198698737722796536770433391171596721919359864526803870366882786241773986466322424491826894306803637159781201561633889271622766198164152671737513074100559555101115757172319757349193636139468685431669167011596054267751475816063156372189848648102070314415997532250254439265420506533733159951822735234341453286099226579627632037385939254763261691607537351865646196330234552234221667756767017383344479685072284055931444501372297465515095581260671790090508178041634587282071942063106427582436836741741473058646382976717008584785631333573423983531579212730957682163593812465222820042732707411730098266387831397599660673107847891164016240266909752121671715243829165431195580046335475930285351852776747125497594352024446078672904538606646469783943427930160540009700931513235625185743904905347151635634194279114177699558324540639533356099527598883423394917374388152895420096018781746037793600478711625417220993025148994516138362830271299004453144640209480396277082184240605116395059313923142307408433271490798673692713617790014561191709374755429803451724423324599382093838703865202487393242396151047085283043712686336298273955622680163661580785024433181388625453433560301529284284370753252512253755542421508548455074175955728972941635362227480746619917065222480298677195452302860376903055657776447271211753744710985606900712637596708727621548644968993847791852186865588120543052030302537349441170145327104688558262743153412684062108517758300080640889790774326967246813651907191148370359517369197429520515359934567378524156243975047431155027735938313431723862340389829690026999276371353555687410464530377595822392474248769783898302124249718279760094667949785972425665480029980142771943351812044027620734789207732933711815253825763189200322221830814917319660846954899203877628015715609911828140211133198217775956132966245220341916241232507603508407639137556107199116836639636303440682407899234560962800793939454710918020492687816597002229736649337173790266762209954095422964975152133106358720923824602634654342551706198152523007567936921914010774607505379122956496708055185847536042884147764725593587059272902955609683076917881934601926666689338913254432917373242323287103307082063053830268547620774277626594758957913055318167452512275898505751628180963699142667637964418307197530480577661469221223313113348443862389291437547628826565258308922446558559250868915471013651354488609584157643331312460429176155290633918353109336033663923835229947768677343515776170884444055228376720888422735817340635324882925235008541743858057881065180464581248513324455146467715429404222132800763007191400437164438924604763244302891067380771358048898268529138460995512170510540352550049543487919130697709045454914910777408622663543841903116131845830467582806752735478469884022876925620967517928553518057797033818796142068241354091056088137904546058292364028273535732948133317226511731448956554320025654102300465954672259130498913196262498084004988746256746566973721922500340603939247624243888338949409969640118135041004168060120279459505865528440334588952635139632939915986497109484889834344346437644977653788207247062253372201389574468367569566566532543409867997970780198775213475222111472499705883402736737589449340431815682727903106033578366855928863157643824440122117515283484676524490771071632004537630800509327990204834770902967414889157234004749288046875850996233265696579438246814568262685689693498658432148324578346976351256540143504571440457516123695980244418861096081086893134522535478238274711285739116371031244469221134133145067574705107897397279145509732111048856660563694247089704584016076406121691870805450768393652442767003976185984803039716961444787648404426546265981827129754519014178729516981149382054389125414289224739130672088811976403296398386561908848004486737401935453528151220153454700974241414046947057145859538183790766110907864542890659003468689192116723746110005489606621353466526095516560047359941027949455423502123731724302053531149863192903741168854937822692475852019071027494314242287375258321618534982360445528131113710145853723336519581653479786329006864648830682024099607258065347575846254243251130251753207402348038630427957020445120692629005881246778278192067765559627911864806500877433482803078988738780978503134827758003351832567293035651771331305388890178906817863804437287971525957140851404578335378709480074920629829026640099526470212239402287031874010849320686740294051545282821845237608977983253439025825911348293364191694362860678218322364102482232080421402767581380735494431062285686760862381196799316667934712510687885381283704843200825380189389014892931746781052098013227584986578145496096161972398546392080394223570720802026019135948642000531785549975014274871886306887190813757914505823655582759521405693545444542370069587093272132297780047907363618268957637322683985341048961485174275770580680831822977458927225837893010930707049294190340073186625569853330705439875877139059199042341552089604940075896810406320530595339492204185482825743288772754165064662041256439530259446411422300521215442299862198149676860674829301003531692542723828409965086398390480041230918216440457982186800195786439428359026062244829282044361023831663297059300879331716809966951731306668309595708366918614754876026540798116550001100919349625086601326929289893882507441158987740835913722515976761614513499309841574468533043088564075941163620538581627764814491724572427494285447504296523946229916217077804393763278197435296475322965469264638156851925584148053484252392113348502637448309172569183089412638911505965582914907678601712042930883869929038404170877995196239733350998886905293230784122700649411007267963833731430333964523529641707344942278568134038758215586749390045813533271670115006208820853148179164745510307602755276919003777748040977231353347388406781920861009043541420011297548156775099963242113001786871040619985800552711465548803181893234083390316105223795377484780493219634946603102740869170881691621198330763069933510470339493748502560679957219678141814536591302492409569945090713977202312191593116183646341400148128593696615789659086784762176861823675601613334664994070608682421409353428747638417297909343715262517539436401008432654828319636821071471318243398043245941523092774614822765386186626254126563025507145444091834328308870726851903153528838147360803913800395645512731375445080829321208938506725215279551815435279247441309649652354578292871122088321346919885281774190198071624127100326260370576713367617641234489686316404470303178603785385275118330374018945980237956652022115009544586797503278972438487354032378016437688262617279953425096521124652899528333332669340597485614060282863328314050413875523537886044040744150077988411931666666269055446295587001986694260254540271204904949656134216714390212722712129611191145885571258858848873235123691541394278475011952152980019523630196138521149395692882781539482530258489644704628686860572999507550367210336409111878826606110205115736517313004088776700346882090561544012982246699572838476392320452425115898013459656650757698391624918733175472695265402345786464422941530974732062509903907594257809730313021707541310042525493017169432605456682865174753914210523075434006262224102014025841869635973693063808572800744281399308095488319367484130808916648231151298551918662355566572350847093404248619218784607765971762909654701066294671918021609961241554912400917239399249060893791790842404007301764864210817313421352515259214242678277433397293182288016748454507821717908628179894745611170800943143770559007818316709894214849039522890323183440338032722067917197993219430287854642448787482834847700533563151271538894489755145979132689201152510230239543544382681054092298992898008913557877689817637575421872432984207399141260016758887557347925904788297029801150270376440653356764620203793763752218028392497699422631788685631102436002385044811061033875132325951643673222640217962552262257870513843599521910156134519877283044009304714679899200890181734492316510184261519998317566882014267287896891454809891207891871088336506310111370923502700575653710030997512103101241961023759746761704111798538476065756699705397150094663489007805796754570003954219027824006083912745200573622294373651476418063042330693902347638916672188677332319587298886459269157951569979600916501630580579135722223784447845352971512481981332096308179681139776002381240634138060907961808906257912547457243313199764941416442498409984144429022808897563652658658472069359838980032914407678114471290561871377450572242519395544470380621902143646095929177574724946132290731112816998422300062807621712584316168060175945613500787872929664914524849945396141831243449596839973227449248021788574599551433566600631628844654306355207417283563128044644137163587629106247989462948879013858407766163539885282268061229617957448011117498340148025380703898573739182162034037033075592888898608701360304673060771143431036202750774493561318540798514953739356679911470458209230252981107789319040519466156839774761262129777481858164735565246580949655466393145061643456640409525861612093811147389704868473195355554447017536207364933648345512704747797324391443321127363585305600147907034623793696557236290706154884659027347645391143518399832941905209280019215128903608750020601739261278804467863501807948945695961290848483796316768336305124377453132394087844784924541415712041519459756867413048721047614117092638815041200722552363394419822375548222888962013582399993721128107639168388288170837661538310719172754418701529372045955567437526032161140723487997265448599093660273705685065405030981937458101059223767175746629254326708984130619914234368430596795884095872260820401564536785536518903652033566053224894559426629731779960670671592503661207475413655801055810568537131292139980570983325004832777436295262888130130705125640886429943778864006748176659653832988967073823284275809814086603121410976369152955467554971063327695699074190821551955460729118321740982840058623668638594600267264623097926602668681799877875919840944530484359017813387607310769287986113195217881683952419925231464310066253305812242239793948447917514883882476366910271326349911329559761949600420933482227209170300364364455391390629491601701996347012318170309045538150766031626942662280042195365132846789503678362779362641141896548514073783919644829814129449785272737970018709415751098769862476566938761969398179204360292514382178530335772362132504616320295017939259193961222121145436755895131626182495953327397266582095123907172352933686593895195126370464990260141380771656657749304885935246156536645273980895091507418756373342443368267624652803420969224399932706605927413373609727243366822798285354399013580598621164556899246539157890021739878206473744661433589218621887180434995321739604038325722146282624935720048367968698126262891105755092261315504242021579429826382432687120996494886991700313820844169030944850544912682094899021574578140126541872569956321697714150365834214021681757041395606248051958775313387388468223326016530912146650559209311358684298011734306831151975561077281081394967736889698397402975799932289406799673806098248123486016637499499974005957170138293906482787751868000814599276080022919940437203576248007820681777291537003375760081853696597008649200897375127145753106020094376656898652503267548071462884219462233110978871878675709483796312367056675009188310144502449451891313336564027858211779359594607326978481592313399786259056531363783504141472099989343463387646453690972263854983586663071604830213888844930103787488054758298517478267532383456228479351630199774712440805207937399710033397957038609718372626362730107096045360712057237304501317565224833680744231383486794497545797711131266725185418323710741844542460483233784231827114936441118600612889635485691832456976157284657751180869246341359973772725616987333625460193746825746112071920070816570243862048537941026262081269382265294984949845067286510821027123843244492507028437503537153154507115233260564732072786869887878395421462905266899401496408794848679736519966300185654589265889888620721188495358652680696900323993134736598762160986465716368840904868296426359654265850643277528621926342719780478926578168760320674739803842387320631106334133599193452814895655920215516912658766181724960334257205475273689238388233332997907210152978184151467177190566751748570379686008357086408204546980275438872001963046346677459045831338333188534816556644886810331411891072792732398460117819601629428225416647570421635809183103952950652014110649445597712520231429609078994978076433133425419804773741922652347103921200853001330771228470373670915489487124909497332710865712196629300248991752219717041611781473661068304881521976860246780583383622815401662090362497480412075738812725273969582807199701828250932643549661890226017510386435620075356169825282446342679616784272628056407506432556890215165389041346691233273908566598261530714213032410224975264875318945119198307884017266819734493972562199590926252839504097118492007143576744121883328211468766153783411328489229058594847806777656669128993157342622142127838325431877433499907595905426799961259314476690921846227342992754270667228635346283100397115735168831367642865317386147791503624750099874463117764505126797640017141755934743685088193762328108076188933966083011484935689268394629383860455577157090451226338370666414841263766480002384217406986257027082035485553346314316105168490318316096753973311637729318572742689202216528453222805913473210116278188128041545843759636499138618114254014258725761034374180534192108612765758048142605497142468281875493388672074271563312821551798833307707396807039621525145804090761285018238263726983064909945817278931247379451637300265183131321557590615191940586500047708689716061692435542819330365281805140428112100284706010004001853976742125273430164028975287412677491853659519219488194697263748238073821456575165665400933782372083093747297329384233722872745834963182832680954263993560246443592725779535352196065855622272952256666566203283303062222005970951781257936395010570617706121372959417083486001035480828707177353308032521086202503162875972678030414067609577508695595923745444654157588462702477874698324166953051301282066406477924393910599711284643045742256804016133646339562224576526205280168294356624005373518203934318912222670884893934043203963532496644337119361930783598761598520281712930499715465237090447431279458430478187781626745671363638481288525852252601044534576030217560307778679090678103033509396137634621154592436284359959542283883683370515847671767479708118001640424816937200208114506150342381020351633097735902319129540594332338532185628276343997648615287500170964497852477640785121353300345678075629385571715710907502647855798470240311051046322413441202363828587216632211444623509349817947427267629886692342451629305077898705016661439744465811835156658524435549571428499928787273887546816349562210188806327562159606308265136146675494639088164654639875628286207938089023564362803180373860029981886064172797360665507164234993631529055244480498292771884225412180068941214495406673693853185228200056729854446193118009101878237601567324763337833897412434972819248257605640458497986391861023159985723670369370944821641844843826161781311201621088965717357781318069586996330454146274351955359019598328118953669253753492442096042312661131110510311276220475805880050449557314493175999587632249766832104767919432552461482102257606934921215438542091637511198688250409996399986229883405238808052809699287222103137520933221168428738027669759571698713625305898405906040784439591611359873142472832409338512472861038529415622889824427810406991421014919716450632504581912830189588924820118146286724089373252873841996249176951118162477286202353937514648671679830829642569628374854659161699852273068732170605875893630112696640616213755906308278893875637313610002149243703082635393481812014344538973034312474334126679437870708393968410611709095788800182231950372267904020954260277015327718697998370350895268863103364741415647598077701648591553875765370369720950926856131537738652980291680925700209801081134793945007317299059811041520923349693262179225395018179146131417581650624599048830470835107469279890379841157716610879702891244433910683396688317124280892217447649795973091359153553560107229514129569585086595460646683954923483357455958098862540266875501034145482630119974193061129271252860689591349595584174791711627165260661312532335596442193535035716472249195032827495856597876669936484758021861192105829010178619327661951185623848307476302822238843215281472825385669726501139606818381673934250543543173370979002393895649230603516942288519374394482432519636440682588973472724415132801066324104365248624101453273707794815998022292591317369147474645594281187554254821467987723399214034320388739241323653889194247716153946465254408603358027518616777241950118313626325773578775715491033065069414183110528415164966316204360124844791159037626211873523543793531256120323925867117658006606142922699217231481446172913119872700171544187586681530599601196333421255144487849815962354918600707138474953299483443581371807752371060652609408755233358994462721442776328874676972440285073998823995610793974159249426456369220756987791842497223129508681630924091461031003603144473945798655271442181346866444625817447084534888116336414947909039042621637234631267742253402078953895420246298448443933317564483990750592982857105551962764375513229257979720807364094121100452871286261981807390405318299059228933658156338641134440925802132303326923745690340539761967573187102960970064574481857829528259217072412686472894758338102111674504778052111102886214469733941635732031501618124913707032833349174937562163072637353373086820129570903325410115887714049637912705059326953851158720694371834558273801017706046794480733695016978869485216330916367984048927018396055215870184867810455815209008488968304744153469347699836078411144464081006799642341172612804806152252710019299165863505614100733653753539170023885799781046137990460750062809711971298158763478348832059683237634296749014366664284568064231017316811043152086231257526319172208758763511167386428643068068948880649711701194353832928736636550028475533099748459081811772168072974422998936084249315684251579474512292721312396731792417492410167263613156992312527065641107235703095960076691658253923001938960249044743763332966891887282604795078308080574756502046460587192962748808340877183085622037886369534737109784609881184572844473990203649591560153127571006508729186448831505026888815618351139176322816121692801395101918477374086621001140471045044646056671592263248129423240230479931931323104993220966334699584900721769262903861483044952548052699527494392888149870035790691218663747280862989366865518021522387993436958742092742689928683056985926309885079845290505057191203776979470247289195227409211164004178136650695515274681370599839979965655619263450746887699084451382271434608406218901997429096211163450246497065158882918768138381883569661681131355988590573318037694198343696365831979671137805006914669397726050670313174395461661312120109968461196539188669515891488690850919193789894892301793930404831966892904858308283836556095904114869343895967275859577014254033880580603582777840409393592113350752779570954012421556388628523015180752712379114403525342938656043374277856769388527150285039267717791405113289495891992902006862138804030855508569713214659221090908105359095097694699996213185477658193679018448030159009486543890029939157270643891263765158404471090198547867904892896339524352679991191592379470502296171932295867499844963461383185831100909134482871494179233195947618260592651795225402424907032634137696134770070654376993105928550968338780237682975619183302780782838341547058663060539215384124378535440934195248870145033180637263102202374928252778156033991208025267493582101453309238359568706408835573390507560449175219012254569196580753729513343256266003843437227324815778747298518096244610048632699418432410549730751578281262715144043764181100394707274925388484613111497048608547295507867250671551435548064223010330451502375435720537476042637421381735534244365155747312660653248671189739124152015528271791319060840781240378974133365717550077350109460757712573648799357060829830030435908298240409927363800876966920316742412505323248505878213062062427269328186092838829133255109379673330052964689646298232527215540685813760238936707621708415409592639481312812591714759477007834884165633825280845115489816882769912280451445625560566097638640006260746164675650800615255222341001075995786489967011871391676461699315464037507985473987631858404443033336879275979452193593738399876771550221067147258438559739915470098331141413611228863111086272039474574944308497086640876110195350724481215420470747439941146372867461294601235189009387671176767608333527047155024280929751642209486249325229799564629109190591042724807914903200015132568827353832610206182146299439096743092166536067362088976477289069748772183840403415241108344491981717752821773584408474083704088149885001525378099603935798230297182495291536008661717213325638222789160395590755647128509480617776799760736637906677302876732668927055273257042945185384144867108710521123039957556966197553422478373872942184751236292632629091103361271443420193916707726827164324461653562002467508867450928187302739965855810781525174043299191425756240309967265763906576305057787310412437801566839056011131354437693309853790718974264525451552270561240815271546239404912054909391753087639926678267909831744805866447576256981847724109398820746555133172076860524997536765421310872628841596511806525173676853122222940153174895393132072686827649174055284540522542319242922883986317874764020559489314409065320388113094544186140867668929441168228164494517432626681165055345793638394311415651672959620492248879032732153657086153115051558145203327307298342369492707605326056631328874962667767403208317371669573823755502924852504421399905570140924055963948147786733943288461278336047473419739496169664008047645673234666115223820647210473096026022038736190096520618928063428758142061638427866074856477819854396328352560760367054548213117914713901630993261167897776986037698956039648588834408892846658371052316996868592281206935263179546878826783673427069036057624218410525961139929695063996706751204560373139329676612643905647100318068891924343899376281982576878043524350842468568833538762693658700571452980854552803801655433286521195352940711829778256498136740071593927826540780071171102988401377761242520399483610035106695566460409401372290357821896474522563255982685250915919512225783709377314365778679878911435970135558644884075171655427946630687704656949432584335386405935372863677615464113387161626840000099981266256480281961190515817949688725996687804180561627646850424391632903419716018853505009957216617169881254486279484439211662599171909175613565583620315946825759366347528934981439351846071763188165815602391718233315068759977694462398747908028314111008764752778076268265136944350052107596528864577185201453645111505692724739116211553979940167165497926562631501623926510983240731472712131654769983145603502448099902744638039841702312592543078275514330597977749098262343798177844295022988952696191398298148069472436630262001618973971297905527291213173076815905034125899292768128620577056835202334184956399625026167716928466206325586883051359682747883773410695873230288006491171449947337801843155516649959416406004678164607377807283766798871380555314058606045487573546779533754049058235139999637336185323307410087180709302589057988124275197759294883865651907269503840251141410255724943062692208253017996061914072707809561239284310144593569502550774347927373606641297505589499803492946434527935704519776719973447562241477152103338547375768922737527088247146944325824719283448697122311300608261481910877913051716481118179305830579859529639685432013597199882614584453101327814103195111798384299062886588374977871496572370896886641273843718570112276159396461497867460631271648730296128236459061125955527782101887823705602560448867937664808040676869388177575391582053720663233454769672025579142849057054277447971955701178961030292026826726026239186046352604031216058664216237842401121636122516588162565434605618697207850876436781714285361376032208549033624235128368104526725934622153469658694816434391046806545021038925387491912089919328310733220026726396167681177874045615196806110470630486188061616913248492006599511172158440191827621199262370406792969015783587854789151905336272561921965676749803325157057392654520000905474326219447715238712155121834459686073067573457636748191687960519347860174488153369670529003178690836983272215980897995296278227419752441722712165316454262641430323653279695685886456022439380773474694034511591634049959859647206235131341307330654676380336804546863959128870828009305207599386867058340753108883813567511419930578896850168922559349146393346668114753146594560736740028878642053914912414972972531363949097877813187986578110599513401555441395695035637857179886382594702129263116370925304543462488476802136488649885997926390868694831800374387310458410264942560618779001109712864425568702769993163546002950899536756417047032121076932046834893403893621032698952991894602331389003951106766323286892289956457576318488943032123240624221966454400296140940431265263450026147953020389437866184046832395395192935693982349133662947397803913872381281384068797919172818953898707044588312865595491738403019805510355939199700077344481727515888904957669538763610519051993239512742353886230898177224052038159135718798596639076230921285023652239417010851794678326133335341551741819963317837240588906762325180756085172321030365874453817060101312485467514273466860394332909862911078589671566023210375499348624992296097087564409592085175726604305371227962629567228765187062707898782661110235199008267677762126100880427370551604416917970831297858588018006474091010099175021727053061593034594962692821627893683343281034784511146959585225509628041284847448298590017712751928976815927876490109446070621157904338341504777512004600143110513367880247907324703824686926631230364274970592976573114657550603701466207225907506624421930249589291359448252149385974426053198254775137195258352277907305694151929582463046867346565485162632067314045028855739207209918820857492723596725838430013157654384298781282135458478878426937821975205458722235442900407564711634254453916593855281470134729170756340418695118336778318979145696259342263153707522163412100240875163618721339256139483039849712663058820907654005560902365063985168908866599049080323308124223510110765964528839904321918441848552408326020544050237162276331651682450542453491778399099548355530064942734519187058017749237874494799029279375269028387043661972646245060384966996718871322185011935433676951802825871701329334824759515134535936189613928587384738304520593716752992266825348890203022268404475745693266237700310780102996243256848372524969413768672111767178544733032503845655944988080042502600683907610745113698527970130262030486342083028805766010700879414784748632937371592352427240494033146048721177172632105544784364551144411461375712369168766731635988428085968707153625770580017280055036813817561800223093968305536244716448691483108810708314390436885900952231951011921696234312542782710983408833348280999092256101793410129076784147354590714024296244764740007004793862596676173709431552770038817076552460827999419337525728401393786479102020895194913404870265836460915859775157781940151146358033801126101537194143243234164942549192010960111780726267503872621588691394991766750219372391533823301077133593737122258810904480046990500703482757123797403427075694801863829624800950834485924417773228432763798815178205527795185380701673978024246663438249189889671984335122715227830678192961574365225369038483951647811845288979927928811474760845581531410661512932038794170420246383993034869027289462403791229480610930684330054725521812481496913356194991701307402798261643792327385271031230609810348520431825658581911141567320740464246953044722604288461400139718090572708182528979824558835763707410989243768514181305141888304601328314995303022971915508331135289911859546404253325272609144148453448896634841556094560756153500864360192594736636025735956476858171355826850372516092748770320803112178491860123700368334671483925047270712736133933634003793853010534585805883026005574204178107322311799027405803677528476129422754676461616199891606507199878067842081224429215382092764878784930305565011716329469516407855015249382246998746559166289217275600761511248479029439616245881095392369792228754261950630850943520623735682143305531394731993060219910035406765303328218831649629960263465307270290939517087282728496093008767568298793905790698754768652531053007765496328576542728320516279597512528288752722165057610187143742415750223974754277266873778998451710273741399452373267788881340021296017101899070665908063204225300531658504079962411023188275241865281002760333336771943748149017597325352944504000600716262166215827926438048784737167835766865472459969297836243929779575639112628587495273286437341058044588619979197127157310669692478917766602274221715875847763739268270641255996161405722812183616615696200343700474391662244169703084303907896843149986231071107488652531916110025343291317246259100389312245708756538870667114334946053127773203659832194069225063733785223694010068263223491564154419463510248553158015766817825565656003834538577038762982872674158043084837921801313521610148395279646395422173319405531923991241685886621024136374271000272826867364847510116416309677925397177277032290121843718581102325079621039823055280191682337220865425653445309638582156234052536565757770135297516241797898693294321071299037926758933874194319570027645013035836882709205302823586472049717081810049445196789604376170096701753187640152844599587406617893292026408257650296141101851681239189425372359189126246163241103075348538103838533699237572235588108747712634053401819640616300312462216913008407467895923804004410764996634083457890222306015271789772122111278955333290780300598792183635360563822240884203586573579569449110610912959544497780840307887000838903476681646965200822095252896928121337004602997624154806788859950003400118401460908542344586759474335257108262185967871259910339938516884766649960799187616611876206268944983837402083188167349750182055222674623744532182403441292842779676616196232664872368718535227502024086764503643846455217942624252469699736614262369998812093793968028177249964849608190525582581730420568145959293633226462455960050486243975086270519809684883730946676276522433232604202769296513229218054703757867608879837815041965442449889430324126280207015548178636416621643132147712813066071235802786197059544095061153961700643098741700815070290749621068111527215642838843799229273401544605007476093694380820295330026052085873349893139577288802679967770129654293232770769139246306317650564680163343981397500693182253612509007717349738588137518513016571520392161853485987834038898570280616032626960158166139821799078112269753894763420150904821783549727676162657780625813131691957740921427016942899486683511086281845001355511490472496344723177935858320833387071965650441206126304007316517079560605904607984627156892865040156876211110607486862919546261496997741953320585712627337049253260584471072452807916614877472030316035507800849981675497686835631857245581274165760213717049736340324429895794856028821571942068343379851296555249215291321584018378895109636198214424942288991304910469983625077457919923381659526518423944441529476286084249071700542446488470523580792697628013588318331120744156416082596870893191701849898158721648655562200535408941598755218752343220703738550647298876358561914540607649948466208074541502952738597118415254726743964946025358126244621378435973715917207595264077283082681343812957261787266961592439969344486631888478025540684313288969441921822289655262420030877956301610319381187541020457345753582819687463124607734772399036258848100910571628567444014696772931160206363187345427677994811113567844966219706217232643917620109676553972577826177753679979064227001187719819821810338318185009529722174337695090018698135238868054078074819397893369000638578888389499969154168719253301881177974090238864528633031352862878609620276365403297769259721257472371141432129047466027807987689018133620753267444968123044757531502405193982030730854250538147113276179983132255198545944840294519069625222911393056087729102407110786997721229138943408332276544634244908613983165566489014482526441355199371260660779065293755115550641592062958063169092833661763567174457848497872097630435018045538179539661298676300983770760040342382145426593181875444024629266457914522744176869012858712504224212723447851846681448844692382013138425902515951898787200343387295309087652780573587511039672881736252021998589553684337258224208081294603827501406026184024819761450761598742435628239450210746893336589211244729890075542350771198694667952295972327698460230675431372114250965459660031105330439354843387087891883669997882812603150726778152308058697357199703830796044780158439965131989055682915390513863551299664311957429293997145720907910993942042629488270618803927955946823855530508458844249539954418428962643905620336402675609405296516721916008650800130448759550503905635476805531995632181854297399521233793421768261403482442189664157798539913736604452595499482909363303335358483287984819822960719882527448556051952682065934756018191077532341440131422998736429640811007252037435220508557538862132101462240484897595303471913561261913190574098973522313719481822921923109380533782897498905472540933751752993937791790952216951917940266257385935900755070139837113902719470327595285085634226408896331367719354977970607353428225408729867182907652020712024971239311731772696182104187847611631737500109567464211173414246455043988968896686641401418245641867361431656592005426229159694590479189389709639488492406363879772967531520538269688348411983096463165871975613944247932332224143364860302881626305338932186654170844211946974940003579719792580477610433815449402019082807106116510044030608201031570167154130056538832722504645121727670315678945965555038152800487104871616470559704379595463600295445666171498228624260444184470114173952911325694971954909988906816479268938799358142328183305732891490199817250376556192830011011793453542626825615611738036267879131489826195172884832692503425971320004459280040530927508699249660153933369055998028081693641130077373162901230900321584759843390046291243319527703198682918072156229382821993709798915937404384846523204532458697911755260070352474212063079514835262659100488933449604783664897998534554200240100628516875616765169405932410987575480911373907321537702557317802216199794013926072691831147797120044222764788576028442211268574932129485491145548944517691886385356563330191987805963387373633219005406562700525641937124607628125143948597571693389931119654283973738404334758814586870489914453627987958714784755080811203841433883462439890694384811419230482112817112834560088793554091839303136594302441100979789613714827722784041639304739041713222695430448537490161109207659398715898561126282061853894098260224461875872970006186844866486017374969075937221642793984923425472103652955928682753987043291829326190090629264203840660344171449252681088926323514594751311504930328046034291539957806782745832665866623626218417326471328512980805084233639493265707477608302693194554001748860651904841119916248003306815113839277709794470655255549228357609073119625024145602339885037997717659681209250896361178419966486961548789993415605634230239957359924487041707927317308754131454194440070903132484419349431731427977896735549074236958189779349560981136944322525631443825152832940021705895064335250589008964781329203558624125750242699748658759404129534377936986728662017041849188380635208187935469204968681140688548451931587672898880427038359210553272390390612159164731278350463332924498317882662884835233251040990740281439784674080433358324492999283496540330697844195368317017783326843321265802471388524788123650169414877733158599388678698773247755788301006810937118951469141045938470914291471283029791578405534207962550962998599394473495478972800135490112392842571269454220273044530986494490607327069128346417703432717662504759990442964741972749718904523498304649489713733387477059746728304537967904763736066859079212603633356736008703519151113604634539992956482427875632669768572455642350434016205111815602221548664444920689316752747325740493826701412624322018884203101612023182656898937204668676290981273184145505453512038245263194801799270730597487065148682670375781667182503819719295002815973574819594025699966030538187623421697724553999914972545818992725445977443831276767495345774225837190029918277901736128945230381152000583554191990063016066861989459596275091945704763495878993214060173404924469443028063660288202184318081719152718018683179864315306877858906769754550137425913629211693575164332378292662986618813726115898790621309224214396448804807900550466044903999645151009165045536793896410257757571313995761033450246100441869769900665301215874914344651542254662204270278501335698063781017237894232013736997072256369948992848905129014124239214967518057199381255209549435019421330259992363327758794452688730231250478920705531450816388498654617721702270806273038584729836264065545740535246105634528064422270035732006133307677940945181487510640080535136860666281641351651235871435030142468795940103836092470387470249125939816529174414085438475948215847794736554770688965914541611209084453116628210693384045654028931871109778437154450991340169726506570344425091744101076410148362294452704096285338229650863702544104959890673184026027028228406086534081271025031391321653227441907295884771712448336089000389041010178659491529133479934318395381800635547188706835976223966208903534460808734891693267221556571222672971602840029149595563871795852245395582338187056853951194079446514788182790904019649848238044550235940569449554778462037113802657914362370234461195515094952263584076336424239161918963744817746114845263366654474750520746709430600711570649264430328510513173398333109375810880041066188311578384637308469942738613143147909296028019120694010114992578648588429070667176780496746693369722725558784151351924854501628382490754760650382078319683026078921689652297112532073480086979012738478517905166665621726501918647378482928786031778951874220762551238068897543720397898663100201019336748943608122751564700523834055206886042663745382179614016273910678175262386122315171858464676637641388600381068230251744274254717638154541455028748834061283716736804925752477206740178758672181550494350505048929996197824315140688772214177001279847484267844328543944382498723804411975539785077984158650754513899597896224500789282124293873474852427718847829137745096877157368318668213634238750491252617963312942867960356002986908139351356095276352080259473302025151616665241106314194584990463861184181139964692998887830323845531113589868871464344080238502590327097417871433000328962792841471239065923436912241444963885551856053088415364345368482827653108838091912636249180228394107230510810293654948417519304819272207079510759710117435659646027796416490776117741906907456560574549250186114336882430837449048325301074297272096040821762962620084196345914895538286401114690075581550222127230184505225620680463950577254435934130867631472511176584745112258984336560097770768568023281577560172569307879680669547753644609185550341068884548184219715645652785212454664653909538951314707447485416588480831390823617269607906221218738204187299583555017825045504662227277880793756324972371376282919924801187529886099997175834155968431713894042774931526758133833330579756023128970386364649254436133043165332515663530907567895138017705795207488718541677861978467599997931450567034343874069721069745574056853410714254738818610903413500236011917513842166390533935451062420883396148577488767855746256957184082877065222253943117711215061456628450579973093944766244880719754014333009033976732659588758249992854608610613753679841343047215304646015394481758312110143811407160917385214514971138115625218136791947298761481440421183419096683437186401380909267402613814948082487743651951231755030297387697330424541155215374433354643054138083851511461546393929837611701385625463760730115970526181933821671616490235390655079694960952699274871610600513047474049183628773973938208707982313811319703178820952572800865465383932724980324863958554423625670503728180712579980546259827765423219216915453437872538450603761969138153487058051246706685862461348476863229667488259387017277121531281444273251538262097749885109273090446957228796275891030263503496338719055707785194194979916981207451884512133312793098607839962276932255690274316937118605158800291286846465286360537669511903412112112388243850062032444216276334028627192297740104363864365385452610488611654272132500901228785296288297010229776085511689594791109067209656226024067901190853200954804941859744595773158797722129709637182916152288916571102490878086108994781560303091481797384781849777984395138124469325297010891307042700122863355285826689581916336092205732750159362417588491674155163600538131008861328105063846597865287300650281003133961819865555455925843132210301770865461280539608253988276236419861830888164699430864564941130196464693606774061099863443371995812649464076721864411637228823454499782501885593671261502727863262828775316463368698674416672151893898924067704587026962978178413057615315696467790792550439819040822845438786873758081490603640630889530779003988228658127040965033656370728228668228522868911043353631710392427950716982985496347129746076700828368881768704371332901435493549549230827264695280575536525342295359477752307975876717030394502995145187992258242642437989923268242726569550694467735719301454036042757455682893095047944261181028345438714036841653350590059950518721352917272404454801584061949093969645797613881905078940336074800914939404603055868700274078578126965349326716535947505932015543276286061265865441897869452434476324599735253020358741154081953807635164528642950289239743612968038396411377270575421154122633461321746503325378152877335503869281035052596409396367670933848238711189497703792050931543789775090760399838316909319294079356430993045825562884992789969749694190206737461815683211593195025481395093506213385633019756240427793934064277259652543194976313592917955071893870866201595631689587183382996687498874642902283843099652934619358907261024199143351202993752074653137577233282677584434500426204371939121409083051804828183350425133897555347206442652622625764992376608830276005667750636727362752462448177440618905368192491421555663651652326850351085890360559495331164074243035091263699243467176335931401144616568630603942904577874925238064027789894231171183780888149384414415062185030005611464999517912054298732848528289882683228438451568402395926626044098218239944175786269304223228219871334247516832664622577624935982444578797459475744927208489636672030411093659403484132909216611266305540268317696360867135172966905443615484903879844133414415881792035441029348909376824452306903533564789937624231016590425111942583265144202701584725184978882663358199236384176100581543189209815627556206610282685182549560088668059397262461244046107881628561591064685250517629915948541910357482569451543307529148349809607409489361008302028413402242666216423480392619046372928455717651616885622470947311822822665363132693608484398630118839518520743228849668534318074011692964361300833414382498706603705936907524472547023656333953061399659771341901678378964541568636268142198773810403841911995139236586680554876985947974499356345914141741684983983154214774248261934283090550616032514631349358020407552782483222730432184648555830344012378673172200471022559682220025683802412950664252393352484031538719643794774351834804329468917255227030117034760615480701351589847509195957840819145778063157440896067061261609806256446280859557935019314835329631100275501462593338244871737709996278876321848755459713063542297882421107173133372071140212692965433400384801662511858224428653753218286884338433014994137154443264437273782881304247025775360546132903542139751555602163135986708085731279600378120935858743888296856391446600354940801573087810122173591046948037555983636305695087395369700321945804232828909766515291002560392953484800860360410927264121306932781909671653357984341887301891044630072073903723784960240731993693111760133396822866578963711666026207609227925035503125958950167307283051167416849688701468771974244272147567201327754221272992491567766839287785395038067658061640368684264897364664079664967784557295493202884418772208301999775596198060732459118581640084105195807869090365701961943937925201806757449062936512689929375131003653675365562622498627205439905686265201207684409231351898255212384287684201475009631087248564349067407661362851345145275889618595817535135612481722378654481323843365226207501104317322901381483353327119394422772741449383412827959312564562411010102038198351025596404883091378596030656339644750299955801991225962661562995316355118706710860978566324826688448418115817931961803332371639873473996473566295816965054754954039743181398652710486491933347748560615574417927918753670920286443232558643990698018849395554874334729026332829313659862909377095221463996938065141621964764096913934156014359602170100495869688749896491360652571112000966709835793403618615252824613976317289258652292312614165161862736715672193186349599102433087657718112600232768874022405331029757936273399090149085372660693967418882630886169995151951319782489802392793748623644494970599673737173303452516887921234484438102861550955516017695459728070212119441561440494148987077211643207687078047512126305491812945620411626434253063671943615030984363195018923727841540471501723563420577624915452771117206937568738962264580570959806255584707770274863747372951585626112685789740159537270598653548122547193802227191518339641631883963707279047289189559110399022709479812747266672189607015311705465892400322772786033993806739909388377894183909800562610133027221893774148219250660378880365176486654862939713023619259757982294604571915256616278095640012910319592683669188782035354922094807341921572536107061534275450322641386819546730983660067449384634099777526120784123462588805345862952508456006701967518306666169759387912506407089804162196836986038820831052378085981995792646402596366579753690874401372417778685822825212846288752188928614628936873420790024923729560552060885613125968967479871523761249739734537377248025985530954719696576265879349069090380221127170037822373069713648420218840677144172599587933013415781194890276529707064107028382112195293039398496887427110755850543994241657998200424605739883680549384385752133268562043848417529897695939557485644172739965391018656157673644112717847029394010398248637460639116152680775084615967327382867262664084584124614849710475744123022161131074745833317476242259327312382803149946606357530596994860412573610943764905947222562707325598014302529533838966559611592964616272662682833945959981806888261494021782136815964857651068633276548734791384828564862024639345845417905326548319921120073263532788923640172371978571594834486004219210768251567542287223224629852558118654572822626021565985227744937717263164299860409996351179388691763994440060825391350125464379220638849137187958297953818618076759270975566317060041135953421641623535132709654642900889954250416251806838563113306665908013994540579618926720731373262323991247873117022083903108294276302031652054520491278321750039241462885899571720248396472898336288664905773309795634821704117818384843313491872006037147911080694055569918942696011189167872150535321987516452435708808179058515570773265506457116755653668149142841361061919033044013350924326776880426404101638174242533637501458364199050246256031897833162143272529112431800352695186571018203639079178556748015820976510439676740740465139493897367639626259130162244255209650639835176426648404364547529182215615555594421216007202830890879885850621798206048041308295401040135326758279862345667308886994680364413932850384163223423770412681036469825692111988490983156952430181588444034920489667097163538238826068550951423001103682279443801085918963549130301142519050041490695771613443938960666596582334845856886546075791594665954295215773498569835784763954004542722296858542717603369375622955194767516107203059360385805401178506110665299057053895513659897701748684226083033511833723082624317250889684096418394622610673369238911165837737536994788641730295755001728354793763902366853551018990957038554584358969273436117371242896528849646012722012169925887964018397186664607603986818251783469007635472374169253003962712300017671049845900215891301773234636287128190713239470920731267703852636795898717183389657448789361786569307536332341821170795645028658289737625775028888538775078258691386192969313627956946979896700313399122929150314548158830326939048029342390865464075818086795078701807114407047652050718256096974548387737381179812958569036101301893948111208631871385526115762434377064365356096536079684072674742440108519392546773057005010546947619505048523785290776713292886690107391272571961538057492492636517725808146517827068392042903135209331853506687015862876384630724582730018018292147343164635978647725033312454989151326142238835748073676783912901410299031764933337687352210091437324836959320544186850773930606448052123709616913694459419773946030288981464812315224943593346310511166368991937112592020904916347003944337102920675152734665470995860103415500831146278407165516075362047556960557403804653315298625676896288977293866735195086175547557075467260894571568326024187277612113343203030167951095903490889410778846555167304217054755012873500782819582929707318771342279405445050180950893403872431031926765611975688015171770770792197843452038084639898196631526857419414990080473699121642777195298003109187764023355106791335171318518153488322613274855916646341873966206867725596068165413143282875696727200630326927050784513948542970257624927817984542116790055004899213587047718836307174011894821392204592586857120234204796996359770644213634803841020394983479311521679272328853039469291200759906785897598315264546312167466878719433611762240596972233026315049827438525424983255083315072712552364936063710666646592281304561808070837842086747593582051793914950880791453369955297576649540263246802499269537600656420081433471213022527059381120013328671232107078180064814270223031003328977659591460046754726550089335157675582952663508051327137778706102928215570927698544433195559892602602161848565642841194366188074385330604551351852580915474982903305492016100521967180335995342336465709543064640824756683619911080681949244508709159968056222968697988980400140864074825040498401773251606767971010933562896737041188556347846631055622222254461450217194638533018404192500538026239308682978311225803691692473525918158209146828081490538253019137300733886663375958196365622836528267725002241133914836530023702149102044429142259056478650410895263432198758831588379344279943333083706584110969174129594626962102258738859755345185447755942867226850319443769825254455582857536243512258983673091341765967767234886323733760752440540277615383903842390096985869440066631513707696864079894815842002229319682528656485776759651004410585841954090221245063078598503476075937660161009532288882752185559185719643243316468628879698874907527171019961796346664724543742979820745676452786294537548182217296444624092303898266682020141001801876060822827911156124064239041054106204005446156020025921016799903475900457565872772067491076866055835006756211208001664496542598370678609332344017609062027444656837303671835088957070286214164060429782620848626687254520020984685616529051526617037346987808962570367520351025780462973417937702438428973728156966480320331730432661987424226316486321487765473942661762564510020734115733460901364209005341581531528995009137859638477191090667787882322553312820868472109347885377777688381276034419088167557509850136460351103156267048686980311154325169721515201272204625197518096332868965821150149339795410041350892489945764868875931033223738386377595211053247357820622774066693421872099727401975643347411499483613893436645440229532420714451526867310627145042342767840583304947944321788091303038261813917628313539561956250999467496243984144518010808382188819907901849866856756025267429683127298166920184643589036478916810994659153225800325502601599243963906376578159043833359766420130268891782334040732608020728482332162412281688930953678733976862078432658719747162564689632030514382881158367555879226392481414796648071828962047748237633825307032628803445024158568991543508915677168636174878201004251605544130190598884821682628784080995195217818589824459502961616725346080194745171955798011923303951645334943400480924984694909128025300641138786509944560856965347311823978719424773416211544705803755653783583993847994184830066692114233100380351744062458452849760140602399686723075361904867087513572823992712947843982927814759195212060361355747797230704816960194630421631824258144249703842406892753085468494497308645709761138149209455265179193972109482181334933440298655354627538706796105974174121414258631067371685676476926558093483889540737887210782999924396262604217359268028881985658141214640446216895134369091140044487072721602128651816924353005321577027064311133565354652675070944885434817645390206833510559862478422404967697508996820025786165423761445635750723083883764254007849443211723227957341158923093727622906161279751773861443477069153988892566215284626127083011006970686218386877336304054764394487689816288542232400611294273166291837619562904445746524691776677929781614579246711031343146409355898490929248951838895718668898690522974580474014981034565935005949348045047538918611717403397381505261962687248202019029460260398706732113489134244221867960056656080630078942309817306006801316766318476314863926907362686992647019127818952269803983808856109198032142707765631952929138597104289338537407246210405411028218395895932150822521302364589914036965561140636727096319185176902489455951819772971219274146990796337886755598499596835228605739047180406059384536442390311625823246813440389672705895275485850284320966574413980947910607764572776436648466986523080175076237636081592597174388423253743991679078096982816181646059948079889627378158806394864915216019163989415961251225250459675614514748392630457788111360026428488837055373139073033312408124829737852478820239291449343067449130997102916329511602976487603305152620867385046105985344273491051201447437423473746368128722707339104011432475022606407560605776057949275803883067937082113681124325440778124951229120796587936527672977084718389533713001814985670076506144601672785527615809177378350480970864557009538959788593619300041847901226277769194155416216519035359715024100278177565015447730581408230278493643805190628229430661216449474403099617432841943924669021306009395458504849039422271126500158544494257491665667306196478816778432335453457425387440380154388328476626238378697980209125347870003202770493513439636182602391089237705794531028588003935173104692354603392383843612665733982797193114474780035639909495473757376763429878835537211903431035310293821484981636341078286018937377133435373059620580696026742953412098279702612727378974099822765747086705301249964956452555362856624599563567179146608677562990454459469910713206004298581819078361043836175684462557356250771499648440636241272271515043821252347417792783154157618071877920955715928308785899274565205192966997810165383664067590584406184866900775931201334441487820101159078117866995327004043797405379011207194188987691282983680557985132875378143561755852007383612876936914600098998351906626647928622569188648922101713595852235223303637379554539036202571495940794068322573433603079601264526648838661264620991640996204116844415173152169579595518663394781422853949068652370057589586641197005053435125601027631879799840430143990394863517753676731886845519347179000281397771175052145906876817916616674593294408725722277177265635056078187106691190793954173634517974141703488775073911557120877655864175806359763957231974727303134266653165188178923308800177709462188679140230802310732103366659372849738083562474211557895605373716698207611634476443408968048860214184710800292858296287026112313271218988181487264242980302073307898739011128495406693121978620495525751982974310212554757765385765957216868281311528006787433480621968559261466087136539552807663553404111508932516828212936347004459899373509970314371712341798495392544409188648701753575713985657112945204797031297172274770080114939415524186503647235401775992216793635274450432121467632154479304348523340405465575850448768287461431963552434714188267003087054417482250763259122795771188030567758615841397300010494489106241499490297322334944701339171355954978712447276271669399787943821819808178428124177963668440010930182684242336286076639384031765793406459089516042473904184318722007834098844132929500642063160318161573436573176986738781076127305901362789577829112643180176293586564096404082985187061047294733309571579170502986879848316647531657351070484901103798930311835884723203300306292661959119342391954364100970796779481114506167602395425033829044222745525949665272288206695302729078981627946568913171700877573210513097854339197508459285625321901930461059949780030791524611799720738361360064150985969635878797632006325956153934085397345947158861644753947521249035992818489178594650048080727802016770292970353239901667075464391517183976461069383839853539110398338346192324898327469921821586965089099080718201814315991480119350017091411986975587129041899542936601932852336920890828857013759338875829485438966088148061563044215045418571903233292443241303227197842073288455329382899776544908475978667960476953731831934608926935181938301967283128565442217523713579740254680091358354223110390866593547196327849251024033706133530478089366913362445502572056424761979292662361501927201391590739671443212491556011184419345119192174948897602681605461301047004509532195392092115704586596447374241832201702379518683022977819170452570500065278805755184752172841689975528786579980227581426310937549933922852374649663550410471716160339689492722759673046921004989130122427609934766099329419000329588085278837039572606105590250325055362862491206191082274373105403956544541273278238529172640965472100123816097283149551739996765339658505490842560419002156027161728439241691916475166038850353439396434293072902881478318839880155236310277479002368930605543370245483652449494673993936085156718944998115159480037680832234278748164139911231793962517229301348183649936192770260121622439807339529376027858566349019938298827251956938235836306595667648589444984397852605844518777967634112255345294636965569311428223836554480398598257165206118547363289828923790798283866514969872805449070009747891385179474410750486046677569527917986423331676581322227908642564036141659171943917599799490425694859370010429436490796977706921227091667227076744653225726101414921147501703884048803715609768935958667728104349329343946309646146436029618059436820436605702271231328499564280566890732264167260627850932508589873949336977602755909497155175750233312812804591083158461306991439661292954471614007825397183145032248458177460001228686650547510539557045054900394506287442410077298133756750470056755268233065758243291072675969644605031772017823579131479997789585328546788207650163169299710865491114902180754132362364245597325335073110228379082837620278021226375499260350827956410238859140776205599701769227151695541779744905112488309779237672432184302500100210943754293096957778689405749698707621989193349127558711992579524765137849458696745376268203922306294836749305509617259664876172486204698625290932441786500682022590214196992278796254172479416194325511671279451257356759937532910661188997774759134754976725804045006009915053787329342625842240228116965753011029168681048235841839867326560583547835815917128761071851642088950167510863073523221540158082100526802660993903865557860039473422832331457940168295578681864856419052208558094613593579157383280136161635810321290404711268259194549273350318774547966737350165619872968257299851067190913383421698118105918194978562727837488892058575271057455869389713379624033728660814147968574441552239682779933040941070360428582462151803910322322754753890072896378323957803183124241572400599474159799723478658050960452525807304113429110366932073219632693314918959357332025350248272635361191502770216443458683573589408188520264811861390326971263379169795259889289422515150402150591599606316606765377713141617658301117810362450027824822054243108417348297057911818811271348866075315895884122102901930429585194635183048608150734661215831718581359105174588939413864917944735560055177770453706496834160564119232168601331056755175585762852579421896215914534045026880827700862893442601370184402133464031792603424538353197755614971993127539083668711266594219660335523992783600349469734142057746485754666971242347291758007070666898756057176826820710672616861556475427306013402306785226711589105245276343007841148018563565922582771738262065027877286779943472356092938247282942252643460795082300514149962921373315347251506898616402581316720742485383154561096771240844935501447864446353715582950398433251582332292605931912601891870506141910994133608321449663845681439719457821807893377349123067220522022199454545502926790973154931949077148107849715615714950382425857500392832586541166773668687425942910625666151859066631378364095538992018827419861792540347136759685549850820677667468096618847575596368201989152753726274606079522097110499261484386296533488503393152474445020277996233794141267517604688843111174113817926184555658006961148821212877569388018014723859322216973888609346457466358501793021970099440739755677342273838012020822392437040454216199479016647429896826465737142271959517721407289170554941296833376720826203943696591211798188567069546113523935913508904538498913589378092400304441322194662798840763243471766253086137595363937039529602984657408053971002480032550909807397596685320684561802048061144234114986756663995383488850351300627798610762666256462455000234259455993832249412886924926105908260995373476829824797302738853305177799260987091352314226449673480450905184631481386572214725421750446894896808137067805852027250666403636713094235291660556529507666559273767868249116327071140865519927241626900510611387592774536514927797230460514234781194405837770918252392356109728667016366884535735847441086895986473177504838956047272690039460866013657020602079787706650003791201986142403423964655130013292833211297839179293214492686435909972946877818430490186660136988059420987901062329819159743538381715040172322520556320121185112154307464760909187097911981412219114495248309046233739360309846449174083485949133387145018226234242647676445320803941314219969629168323051218347071025753516474907660254088661041082823368883934259831458203730581266898206343350374459546835011241020585500524607969231856907655170698469268235409423288857425576411218276320799235972988642026247696101781619282880275518403722365668762799235674033225877007782050578131172288083318928724259040499782266661266711479257784847706143000115274691469036524856971094795411026786641111060883081174470657432955486410506589805648073413597796404955143192005083824907816502116440078687239066194056750305179530628730845781629265038350504115444882049372847548215222658261416308900791533344017622137498703714572801619756065057815794363311949239121321500954993679766219494303554142992666230561854083005697568990892679645453927605490861027441064971514670404981161357295798796702342766946310698986010180384075177162618007541557539950358912095290090676117754675260143798576131595728315020697558799961912184124267062761331605248218043073784971617628778675633905175314819347327930585764951112909044444662271147872330431104081008258703582853139644494554539686159813728232958325776912228669278457770334518890390351034927903360373317557120900850738740661960875956454168853528458060843069666759980249102822227282877100165498758370449168183214856225666277352003511149697206711446025004670701008032411774344011607663776099365244659530243117828750892519036497946534960159122487339050620146159947328951907322320960695330808910128092031813565690059500841400559907547013269151108283606809463244031652334976895108180954572688554092732834245161609873411320883466827838470170277613494208367077023435025265872707487733758744556761869272685770708850747710854579520657359723544893471917204370881755485356100446034661946723599478805888383242053451860868703113769222817025843996707867406533321632482190113299396170078029208540373436553132507442835066480523218789786848624944194111638060200397669600078989320136735454163519185681195168200974480752071402102574886083653490161307870971124427399689544453512489858198508516854655474768570529338946878586686638603677989435145856850551997306712526593208750847858156252537117253723444632240375234589194932438227902735589764557757865247006012420030682078024511795392574117398361148185385375808939103904162628264099185601696140452150484000114580716633653854993040405501896258934307694537067475350547751962342657215403766276314628149482459039162351710494474844518514887218701476492532147489975802332774675021986711733198770625227415851273327481089001423920571592673831066006782746719317106658991417922032361305778804503920909629200152420366198355161588672883122108584431621719196179763937119269490602176331706802198403423646631708753831845416328810216422773377384424063157646278819639060114507271271931062707298997097338454592383651290190053844961869583616314529449466566556913303961221143159510781454247039355627396762644846760580028241917738751573048903188193277890042582895666251341852320082791016393511972488638449799853153659324821211184100507459588855641113582929839126735898338123238543979879848064532063227602936632205583868795914353145549051846316795393154281526876722335830807763800255373301910710755020758887524977850322163418953672366218253255180693644589868095457054033654733617451608342715292508577242783828565104148234020130707601431443145392314407234447646326316873780539841893475390209600911097956612276075721199638915569594811865416740611294543656109166496708251736494035165077512487293083651352990517411663008014838885575139945376294772684279040453798934610984530231671319495557859894487582493102781885162864124678277044869787235029766457767847460020273166943188756791308837812907856978972139785556283891290549937361971194651148804138178555312140996379840265903879959515891358026962867742937286835853672810366944393121723682766760315214911514176898693538221590373959950670020665998166450647908671778676532716810582880743118552185196064231888699489610982069727419753144700790751394874221664446148896254531139125918597590766681255645373945892904950693206029329733667180078826882972574017652474667670695341896401773321594058361541213274610680364197518406178579690913816760803570585324646334246614398606004597085873540347817769281069430640925524324544248392658253210769280044644283947282577757866497326556897606508034411196313330885621212181523549836421923242538585909973222206149547419972692098266333818158999969880218487255796847239200713465041935315514018080338122044640714056368118283850137347090079287806766648081004027922058842585150643271622925040876740056161866412554728508309604544640792309451175075913344603477837980434758697341819238787932530890922829115936884756352098099150794701415337727408522153420715857528786702060782804961930540591734863280677939100331352895908229650480876092441327912923635865679065512113832212318088686514650310641066011131544492487408351472891766280610745439773788441412531115436538393860863122081500826571091112865422616485397254308503993996034299172326113169649024428504034170004818084187703196370329248371014551813736107450204619882203953660589071213399003170460408661589985549397038661523445690015868089638886399671166387049780416709832289177242426305421114368973406019535765979428047891074713513098249017085339037077996815602717020541451088847176248083944532996721354424352864934834707867058188748962943603532617261499799749894665573092153043769071839102729270866591880571834009874015025636177114011814842739605578768626179701437120739237573693167636613674998020174232514200513548456465879120114990753426717188869981621703314445686414111974736418686839316905860581571378901370910027635395565431518049711533996700107189741030521197625909280936844974199225637975130038374147883778988247346480529742593599217322872555967841320161035739466641287812930755646462512851310731974306578896494720939283079503846892088812037865539203683855575765215023128644158887962942435678511993961378309728545029136591361450408611068735573051480679098780625173593457037071099959541827454804668124347824647520417726901462688136234736903952374088335094153084432705662904087546190745804998794129012754823484532961761511700882488368166358412438510657141610240073850200319946958046518231487575236936422687076822696143907220220881875876516552848090947695070086032066680333227147137185053993270640410663505073934524856066223036284265695239744231375413636490162485780720412165529243039578221380005450961840123083907084970757016240081455540353411912154761952400621176112795018002753394856811428385616933559502397487182090680113113751444080335561666127462253343617336590947010403772626227630430434548035175716942868190899258614156000842212141000215550044363522392431004363073880635061124016159844277388316876112329670912835034704361351292535204610167758186761832260619937234165348250210561117007011121023241459252391275637506331753215610122491575782447567206967847173617801050884296006812899723984494240370814379206631801544603237214973007108791937170316988422270908668887672716509119390637936399790860560650764484348841727991014958327856054627188858171357338246851062737032362296028609272495122650542178986104739111564370184805691931635726501265272579798852813837695595672560588273238161967607386068676380818000422432729837789361814083936530723793829444183142404072565933973666351604255658934068071610291630000139176424747483806109719240197179542963246672360509710090896346302147453972406791248586541043618284592460205063950557989074884203729913158797624561507832501016074827614767531498785299625678182401743761451200153990100263844479953681541559439134720128355467302773192610496865400851040315273145172914237046164822828552446874426893988870311066633152116646216925496117435178004472182761979410457778467509633062962268685342384980565975090360504032807394186943767115279167296716964647168763518954872977078189414130852240350503057627697938990620647778316806085067224116012808297230394858701931641355474615274259819674867632137959632620522071598609588181704026350242008811036392575032963617364700065081486019775478353226153427722325967080760778676508390357262082118103473995257078084943093821292789926546966915360214548020548821624607676337468143505714526237941642176005839350031902308308337889802017079754900739021247070163853725846027761591161737801290543269466470693831126267058371326468915434958759071826625657460933469274805914563993442262512347549586718086144435384111324573245230345420057367639581705524957711239993102050268307718295540278150698158618021218836304153555744348796208329202653040619880718264488606222011116774362794303678862129313130848623555633284137800542779269040052644527842052343400543506518621081367095045243997601929888698592923472216937105106267721572203145746532608263818321664264353121471386721824617709641927316280820959915421411471391087997985760736435398854920228107825304074741611322981336197664181716551261098396676411067117429031825686403209245358158997782199201215138727897649860338190491583209279428320659492193769345719657501441160026558309407835316910033094291059437337838020732409305783043370544463700863234238623318433073090464466755368656414298056949876003603252511746508095943145687027207360994616140445796902520660215695864714010855381055442042247835479347838185091507257181209751762449144383796808010569814456919781934993913481492108520551064511029981601888817818410372988629385433154900562329232509439744348887230438324290281312287997701307652211230913692327089457826970821102484733139344427766450123872871969096320906802092945128648524540371211539111894141230436453195484051034816312160690442359016980258297320075606129668435118136929575465880925762535255048242116018795749864505771324337937988842661091401981958521565789514475207497105913489293259636495489094877646643773843436683004913720119803195914489093256181942830391314254509324150141716787749256960774856425235131419032280554298196267989857802818937932678236022097786519652053626033796529708394689583365306538364543406934622591172531682768194640880091743460652035875527161056667081948731554171996918186144625945456013272559758118634190611893477725112803484665885383577116762541679030377184313221571284048316095269804252465964802615211247768341369503142095902218917055813587455518608241669084082168734032191874073656128819984217841238624002464045625493007638490654184339087886991833502914179794863244275675934779259103793700868251921566106847987971816907930510970951631736267564862583920964627537481384530662750023703779662338777121731715721113288127639120312636274006218350914881735670103255696426967937355564061051985607079721667681403060550310119179461323906707518289460770807492538610124985606742331161657453540184850058583758880674054235655182059809574689730280516111065792547333376146173073524476636082805472280263490293723760599374544920746307560176827049602765967119378134652777961115211437146356050415018004479826761883719695817696153856237875443887882421041567309510054315644903124388812461143923526485319038210718003958131223595501838673643733038058629103376382775167999323321141960951909954003215731511876786042981797237598530923845714539608957292825604565010133105649872988867043028017623734808321757826022855405988371447705887771452921507033136602660340985359799048286770970892323838192065989587818815620574355373417575119089215530282035832581868658955786918674346100515304329919899846944293736517674294773803685320331552720720385006372157048048080290609306622556472924791452298087460199565239298578192446389060502290637220012240373359156493404071329457716863374294520758557694865286806820268677913684576506180182395982657257243307783185208975356438321873869053574544831209334819741260355942784538441563421404168936299278804537113936870261860311583011490740457100194011838679635611638474554468248620735755355922813550400616551073853225768435481092180768541097332986577380345150558908353476707506686912452073314623981705399238654952065041276000724833839811653303980908674635383928083068134434805687193033042767608849171693438005291535440172655329928019678471184896971822403678499568526966366746486394360069847344423373163299868580059872251545003787726144185048837050210932455702672797308758967147009426253879615563228251686824074806604689351077913627296596231125350606705162258625303498601970964284729334389948274686742787650704445476567329129107200356360288631496590995127211564416446392860005894220141416749598942969691803972280061759734385522631686967937868815432404639927152481399858412656099162439833896249647823045064652623842730553629723019266941629623483767672895487615380779100852223198533834174618564914775442575120336267763137303950670782508030930343499303731941945081981371730503117265838794066834129903382193786511059832237896301255809436712321999205175920555733161631651847185997408978150649630757932122962706304157601579371852701422626000687033224676931015711576252117818646860432311814504151858738241011345434573926755381576077263549102035516027913025538459010992336546992219221864196044722898947754453135599420232757882294155842902106454018536384194033506049291305121603499422796889013718338452979605036758935022272857728431748895798264168225410447514127312918378391103778784197206061673966228104408849393705629685519845130467903391932331965131656580577824489698018883196365303829254258041051679106179926110068034171489184442971525050956866544727835911136392918494490083106542870381120251242627441305218191074213851254252189849387368500926153682018855055962429303366231599854412731433593442530744374587953532123429681266041086584532920756276431232528601619296986192020355190638036922268201556036358205579501880273685366688826244432510131633082510634620392327441676096958740319273206854489840098349505462378698121274295581996000154631586969918037857246793507961131346481588420379769211216996204971444680409884599598544365699919309510938395423866154721078280295337665958541898717798208339901943224121073397208502880665870628065394253973562754152036668351926815160565790821098836018296397469499623673355968216477415703848277398444155698694211572023147641986902850358039967382478689641661990637618614703613962474874661761775702964128461638979157759156796270467460612683359347835880683233524128680231615613901144766959429916547342394444226861486953557046837727810939471758329828080275095879356199235432347573081001608287813596341833865614768985275800934613161353863477815528551776267879813143835413659947526552997261182038939515208446882735395111353428207900740378232769636095719148706851947793080880950086578898354083727675685906633280040012525035915337341605935656537835712905825621433692103263320054291746798612510567184037306174248397416084468950351232585855773893605551405897203133981551682984518627293335125793301515991309759820157542644229953187977130073885791250215451483217323074955831357646948683763160095324820836125402591454184288520302423181482930961218885659121840892743178594827651247721223698519048282809870551487291796466963197735043956739293840901351342951662962647699026409499490135477240560145472631395031329753022846626773511966516043527156312853257013238686328433662954810182902707109995782971894202424679130555372045742025326619790925931599338477581643625770140703373578800641671830927406030500488882589252721256197346274444203280606129367703973581968235695517932203803931977230400330631141520377006343902373682572766346242795080093854851345841382675429925682379797743688595694105691239547590223264290583628247598580798697458185033331737190185969324060430958039007784904751988116828668255191784409037925283884177593342105690319726692865336155506208400350185881432276098562062916966006750360211676603334746814210364658896846307334204803520761320243995557375912083961347458088507012435694540940650372604593080108717760826770273084680345878072134426961350517132563065595561690707788319643737741972352044216663363758979686400238893482209982245975749398886399743668353602425188652840914018186027148495789554272865418533388365771110601372376297176261834241122246277187716954854748377919253789563282823539449832547383274743134431508532900610467415682534017605127290159348000999668448178946743232917486674710766262380838100162287222620551478444871222839451442970182362293201294541438153649376898595527013855456098593131508428610415608083062692238492929586304692832184863052311085748290036058830668593200232159187345154089890879644764078610834841502418891827803899392214189019704852378369165932808051753297406250863236489553751165644419512837400849121983559330740809902588586012254465795763352355108166109176448861095380109713054387285434211298912738148062760426206956320779324502567797818465998214202807491673161894502890003769823256522944551757871875217492947485082776293371554481275960609241029063856775772754022190436496440768120245796706553554068445986674797946704602480264052747435066192821187043514831979727684945148521479854950936068165750261060604404283959273688443399360019675298494189493116133182002068996071549257233195530247532578381041158690523005943695994368233275975316713970120068687398682602998182532844668501318559797185936846109846829469721838560324270014705777541295201880903574051027608616218680649204940366037744695359461404452674665927881379308245229014133602763301650937373621313024783401512657098285254219285840777805693916247423060561379014981458465132666726220799073916259354004358763543516228230194760647967570383053474826834073933649419418048307988760480327112185313498723513085951178110811453933523625499566261943460542661446885644045185017816226278329011260887126503568104057139766769217031029018249043152336894638533350314004264195357729492340114099828813218132642059889104360448124169294706163432869840777813831570611790212185091166984677449690272490249353127773156374114896095743680083607925084162432631087625436548222955387779928602605959976313640321568285338258921778779107379262773247420818361868775276050441083641861346470119964402035652719735869826393151153894018120524925358231242144631583257263603389561811688635479276261730335428478422742663174818402005209140368664135263925831319782013356860027628935660153212972853136758393223902189147467983134849265337603497807576624496184457782714284707604537344245485227407554956674541550564159033720998028066291980991012889529105795268039435370371647563394924747388185969137812224142437387934008268869915236581386190773301339613872563170968528181380073881907849040661363947234017018796566188246090156529998677349200125898461564420412105196016521552380320562375681508218294962106496184295187412837279741693021182635501927394751791782682156790968413718984767528026784725437256898350510661637064887123763654868452206793907933162665295826944079352369800359069480777647629464152453480611243691057232652560565725328247642423549507616226756017440227000431357800727611439845372928771651404614496004903186410890283428582588787349225857169018545263281094473199670589924950398014119294912784735615911353814654330712841207427821830967197584654752242398729926269738337092659492195608265032328110343579234709312635196468463896126248078353931103480481289166577473651674990470851665614775685448706042647178625622946580129912551092244938195135848968646521396712472113151658052028321511807421934615170704396127397588167686891009979168924481728813900256998555925225665782302766129397805985907099886375463026279310381185215020646781381599853470837527855464887639107351995558058189927658078143271955864352501132419174164808288094119414734660341522773333810701231158824824670882326303334751648271734091212759533810191344668347708858494594233639757350317667302083563722282600691784903972350435316228015216967640458271603329196463535501002087431370323440590219917382591474899160646952302726531213314343842834144087222790094185820881270754026695861024074946757646613869505874189009674457274199800974328648389512212311502006220143607870969245241730549551072106779806488446296580077243161295073882114378951636336435911073707078653297612884669186578807599133680134573868912017455811862437933435848488420832202848556486183328387235393472145282737259302526884456526144317219827557075196211760344801896228356470136587424122540394663843741171049741791512441651971564951566498955824859323515254984187399931553920188415184967723933259474169274249511210673794538689963587587926456004215702251524122026956787270680880488179489950372016496841729764970953785758566073975912925820407710718195256022089012923605262078695126355227158532564423732640616858875779907716252136306492667111963296124748063950332190542040015582494762965706793482209814530276870351432227559905196871840812469723718812296727955684310551993272411775188780844224136363270033857987325806686643669039955036287614435546966803068024870290338416000851083610388890951740078131251699958323816194677516524247285469763396401061553215548901933695000480097978258886617408510904152309313945839300352460504153878975564767481161218918658702812339165541164729324348696798610938193638665369666326136412420052323272046775912241202695959244691588483296055997870294733867797545336610942953939972074231327943901209666510931193472769193817131448995414396142944272878279547020620898521459676181189360015945661354752465586048791220034042376522045580091606838006643240136072145997986037408049657756671938452051690512419107441153459448139491092052020646092024912415607889677819707624383730182179995058383180641690752872394466282945373620296147762711177848211399403871144036036226930327646762853518068638421338946022864559292304276539478560457243547132598344274718273991656237389105450777822431831243392546180592741678195359821858256682905848377442847525291288254981946150103820164169604910707521587567243230250750882697293229075342035401135106381036292869489495869380714883097748363411160515126701516805185711210507823201710257894752818564220749539035405308736552316688261457633018471296906859828297692176027612633160305747983408119807202603589099547427744844833002423693444580542207292826291415218653241185982013484346580242836054024285808095735876138550374358642620582449281228297996459463294640641103951512043378945172293639487815108051975643658587245746638466639021625479735278075333094018345058684786290456605074509852002731454305709146684557269233118213051580293909236830055605389850204589933721704497073388571978811231606628476334935818071555337475744391821125236976783998013855337437966352733910992284362324461016673305025423199833681385971576364315345711866003676329387773964862065981528182604243737124419936868130196856754272972857864261213448152311611807076522752395338271815708180990848261653898927585572431551742180873007858474300689517394427413850986002924449889947740581247552808549599015472841983824573367313286704569034490447577550356579293182320562240724827218738502066581198241314962286659536154229200279738700454245771876512809940723048478179275823314676162562686460249741140404806200244485359062077572259427128300773845213787133973942379102413729537068513132083180411374075288819006466403779017260121544230296607376040652165653981506894518826973406442037166024526225458206941801732905752161102959240308506632077388233758068129023527343784893699719824532916360019029559399452762230022442217281382059502562702607569051930864559997570857696801663004807137022355072868982211956867439392275723551758090998168995323819546861017725458126737731631347362543076525581448858792403529912552338270958423743394629589574278086958185384045479179908532168569440297456266443429462315711529690583426379873353664681075537094858113132023580191312775065281650310170796000610431345340440337972539731826867456383165162584834151345883583140178391649945214267272347579639716656247630532284960355925425910483425486520435744968740303949677445319971998544417448036293391454700963094190739626760093805891294312854827674134354367745219788884262492450190909093890363372018854719271999070041082828623361131223205847495030705348754104283625013579661658332861411543379164268376264850772012942675640715730998037120305958450990595089349056377053794436730760656601645482971649595774190112528425073138527984394275966103788671947955120280235899768186303757310634342806614583998088797842468461115545793324631212583657360624390716204438477987194490680787517343003071623165467679685283532649143217868625660905862045186792796433803585421400501896958143379979036123717927551238525805401441650884633720374007289813036529554505148681813823577644360178591906425452691133776557821292941316168737086778940282623718450822212521432994243197241813485871555774253411816320109569657167134467445491873635686397443898792547025605694976739877555111521272855890875220405289862683122046836145553582217528382394607535227501446336202999099733898275001321988574834249797344343390798857864901087673531462142966068870722843816318147798366630042192211698357611174508491937417331173523113696016817789356472820441929295590200807922823435204353202035213213650251662455830760367576590482737365655655727603103195682664451151205727037335932866759338782900947135074723689089632636987366885883605072353351540555094542705802325429995791388503464446760893597619843646544312919773815506339758396595478307698538210416334474810620887825141596583793488643381393929182224821079216056412139062166709559331072843624224804400497473899685117295604703877758621691992462583088869487752643828376380670661907677817034567026640814651060831277376466990647294536708579894391559323800287245166011155140944925430235611095284509147433005694166185228671260482591515673135903277269911702012164800859691448669192092857701639735745637476134359586627090697578168635389976123125891701439175375293556919426933984735344097530573370383558001368211931692236579086293669010500591237382920792065153224066469904145992910475039834232301697216833615784302196686190660281808606527804150158638654612599999930821356141515056972141799554263525759269412191491202907312762630682215472080713639178456301972630308559945409618943356259587407139028482106046671256634130009972095178031349048225005134183042752675143462570537647961265624410603763225928643675319609676235669874891567305806295568091036129029035440692858630177599131083881201025652544192858446565265502058147498849087091622468334671643668208214757222535741290459149941426176540318348883585138787211479566823487673796518583778250663404294265428485779311764013004289285319516793298024938803562910195776796830809814695318844970545892403619398441157418429584513912035869849389754415544822719876133041865571314782397548017893865112873564128319434627059379811758939217450132061404920701481744737588913318191221939187406580083167495742742168284066342396541999971341843406446426872612067256775912648946844112990683107453792070766737231860962037497181626959952784225511589503914261046409093645194479743368952997796587352472868862766591168809445999568951518620055259135412625318580066331452739682358866508391999946990556555305686562537895438534951257608010807057926719012268756052671874897237345629290454207477166655953325340167359267800914764280749664037164216228427289101491563654233237882310313599033270088290913789429528703074214449146078402858359876264480123932282953649509541001571802558214775403935907837558026714900777592385988025859651558917549147894381989944446644552751684408849016223652721008434527702982836511376254609888679021428545818614017569214226120759182497965543641107572584852115715653929826221599608833554971382462703247439445552160301866111630553585385094936490505533810148287943772211707537962888045650629119735087552826481729745587563218829809589904221589361489970060325327390076468183248554416744593596299133713170576778832594932081370869597626585714175061674052999367369517380761418282429103254085708220164468203897552588235205140580586005695470861042007882070901551099641014469069518563418825480096812282685192840446425017370482065864272953539893700587594111956661188924691376026525070160687166658514937227036289519020537929509668222418735256479154659207374863877600283253024689812567040793054171189984236361401332717002655504889003398913051747178596896117199439803949904375444141078107552733771343102535481108556105661062244675906851254834322737159137330860269527313991305762308889926079487600563578395657763770907664180259729844499757273594823003711525652195442756562729979580290684921259596771407143886644562134450669347122785467867463641620617126083135168065155666348202245319600326857705291976618136342298424100318153207617891514246992086259589221362764157988967929480538674280828743963958974499674995964762443055974923366263886491480215211797889581747111866200831968413613053583992636542335638900401432294862825416969822019578661737697440046417458998007828068753836738429189703530060743842616055638817458265840760848378245645099483291736186022869056605345711817190863680216101555316757328457246250845583669065649447375374215230519715654451228219195523984843566960465908351545930481652848106660384983116078844548568655306496537955280429436956091743836549937515876436014874818070768302051380327583288479270418029322919558169350819750445342178956496985815586011573060481433460406189496469944504400852884169211977417726749494472860285988072680233012261975958457912498114799654978158012590432248805946311263308026355310022693184007698790829582419108465838096032101249044247654880330530252628212984152819761189015654729199699098664842668153325360189921166230807566353401615800091884293896692186156054523211828161959072568131339313122680319277074686225852115707513879180371600429651155566035794731548397954173989917635542402199655349035063790766514355834425244876977764186078865206666473335767446885238023577281171400589558777027828636246982368124564816726761664777022102519660740589118171780040571248564856722751105022827128845607563595082110205090367879042964733338712077417145712712696345116423135617729662697278877025365235809064170783780067879740536982053340777643434962950367160010955410990491835160793143252709052770343829990190083880254272648603321305538616400211278168964680912474555348638323829772401606510316632893637614550404534755918527228475023859895957310944960730774883112377903981373999940415726971040512551597523219040315916288516944531872550460631406985497506740354782474894537630516199982904346189519566026281482554371214428659992321710200350265178461294312283147106283358902558161058895095638790305955325876148730642247307889567776827063194835749220009450023997985723057646747197952896015393069671535374020593356277831730397606747151120617182301967709647840305831152324626454904297380120139953705019289964464861670273693044871901909980287031098259640872819008133831947842890527425481324646537170914271719620647078751888808794614095125951479898620316226316401545917671722098216096273931338717167305928962609179280155601933001699577384888673715280877901557024488262963929159441338209455989330636085656602309740762357021267469366460663335353991378947527237711105983317478703728663996554464532084401442732220732871632245893205522374052693507909842889264239330465181053788626574163441709943311835345169408734530320913604843303340863360264137859068747170490426249229788900852314904390016113409798467587279709500969695152270863471844708189680773267135740635149237346431494287287219321120425705543467111265650051980641211063990052714417446297168905323604658621664314507251177180499094033553370842010934468993317720159384910386045566360841772124486279703632201394316195926988557024189347503779906828574195540878728290870600894520129395619195176498291597827928367132312123364285620963307078398616236485872461782042293512561442512920511969763119611268483083109101448147257873393843671994529280658165483089069580729752118413095462581751935445785028811442248645897889965214898784909100476808039068143290773514866806017801273728951333609960729650519397510132941043640668633922800193545628636921173795098537453914018018917900285111275709150331911309380132101858764889874880316309887836796058748419931157961167341575445600552594919198810173577717812696294370618769399746301236320631055171379342789828095343928030278701574025789210242836895042160206104453405046141153279986418961828891800345710556079893352695468461901368982467113604624844900172575804057662445342648496976807257516734754634627510766481812965831472299976018377562909576895902409122494508121779886261977398540845371233064245892927814688694246437158660733345641738721877175001212917044770834936875181782331797223193416912756493914750488197227488616903663169958748472675099525380251870130072204894789823558130773725281100655620896377716432001446239134388614183611845095031447829553316290899921132543976346718703700509880224444763613461171821074577793901854546650954639573765549339075612547905735329458507670112960730636275194940524108317403336966811171809412280418554701318177777496803648512728220444950288210731395497588245801450869803499917457013710632974329379734390175780107334195027918359319530586133823018216652699315010860735969741336997334700500476673431428661369728159220780303000156651110663786743469530823757255045625836883934021475191932951347817400866623320921799430567360136765268869737107234125954555117635725796523902610476195326525421876275602702800009424888122341862755866885332324937229822946333504748881076459384993181213353542617316506739016553714465299232957008672417784781844110825762140285643194330867166893120476650676363375563459540511846629616851041487367943302117865355279397185861608131951185651924035242557283479101002447036434748226856473939089372746318776915475396877425231071373453578575016480335255071292176992370425724089759882265932741166678270670989490693471236446090495361845067337400059877561520231518262430201298989369021275991394291768487467287938663186326741857209270382284361481180703292180165740980500633131587558390936921819097640176086716305838916865948036715305766786917353035159648815137413780464535337517637383623940510667674068449565610387017555894563205514746561615819721896339530375593618509009951984507065336836137203861789047568670570652660868721150765049214722811109738091476606696530489181185809545154518150702962966086179116950822562033752014578521326052214234225172071685497442437335873924204306296321868395965373785484272952961551265205223720788012423939950419957292098548217611387532398849742490826812891754538601045419360533377848168790119208824784400702123800611026026680248602742036457871171815398068844138929801337049819610950637364032936752666420618842490573318966471309502769034216414620841033388628034212639522523614993561952467858908472981001604753582593613859495180686341125486277747889328754093408598031575281020271586365219522625035191597790141862925798123227232945673495176054591397662554588404039578033908676037142255791659647466550668522856576167110248451618428548502559508075203052460524947009593308058375490930725429224142621162801495283995325736075586640034175493681288395360544831351508255317678580238180512922357955905130527648616682138275956148565870199139741740247968047154037456709044450300552814872195225031588742147492119115120213905975715641194002439028261800674949831846918271099080686106296687995769685951490977427669780321066118059122720524551953446614317887788249098910351337107522212321904544294751897742513873010733637975756393174049553844711671425991423084330329194180833500823450358312879767609811124881627213791397353164891043504435527118927869950422945098571914669615529822688715905297269378855019876455340190882741219423209896206905626214648107046145194260748466007228012628816340757112179427119609849274636257205658066541675130089997127001059414302997140349215765082971680623649499814291642618996464935886342652530722734126670708775916435773195935953283528455721766865770955184163022067262447852528433545817740264542513742116047122353250624344683296390802880295392322813793659625014893700913172292022323095069932202615249713875840730662499543132090725325805713889598051924731467697977001811601393835528993200031555830925247898260911758094635768826502311066690873613156805096826079994533679053685180179267658705723613446942167640569422192207513161474791006985539677338705732517829036854503061586327911505780146080965177157602305315959048734023337041741498043047590757205814170884001604746239568768123329318961684846365019262141694155888603918166181906512007981601609957000096524573527400110542912774597257968733626300969656187039879260982101514686150192528699847798956687002384678390984155144597848184794979632836642865570878238586382596255979133036678519915551443848460684205616881609070800876787603123247585079581101006585476798224449168789553450705959213788265606934550109157440509102645618519492667731973563858322670686771715259300534300325736243076014040570228098646963864069260023186744031728110168075375281474066037527949055034084077230623542779187183535885927217621112293810524954035396152620191903219411029382692126957374587411155778613180979740782743989883275668983811823784836317327712644755126019767937488595978361022114307978486655547880722471938669623352740461312331700766976213682698961588912689706781037479261905066247237479834825881303789805000418212256008161090239981258817522189172349732729562674374430501701847465861686607372826047728521530372215392014967498982352943314358407752153881120781709222182548920395426920642353193657960149957024886998903814034578406355854273381554922773114879112512214486389508710069707202956284856923376576053757350679071245660800013189632228300997147055032172199761907597499098886644717258203982295244586962608896582418983080935391098330444125296553521960433145455395322059874569204289484394751846211579709198009101468801724230223687042428057714505997681486405760020997615355131679020509250059364404284531414023247592525946288911483279013675258701268947937956835694257789217348026081587297301350357389919969403535656151432597912464858971347222555264415498239219990303257150782701464193454015736105811802079329628667645278771093215880580568781165647844558294717596385712094560947069839690932447398369061547299748323073559136498529212478320275480613773389974476240751055482164436601801550754021199725569428355596454527811655433086655860108414450880061866199700930455393197064851572093661324112319933143577421299968414937001253608704148669692741246504422931741753983882015999820056274349316752844528996366352835874972622215737540528737461414341393764165469168377633245180242389850554737834434085794189719374692024151999457942216323861773898595697911756009250113166078876145425230682672204123981635326076116833133591331681449663212639689677193571846150700791587336978321780382360881507687937952171551480596431656013468253150109509686135206436562700834792925149342604534503082100136431787701493622584492220282844485010448303593596955846662800167571957782831330340761435434133517996237023441886473942806716004568526795794711776732960759743878487913414917854591972682948349153288079198618151841165802045133963958666508958114148175167552238534873070482671860488558250650885881509015519429263366441281120712112760952396793428883965179420624987730806896904399102617624009920529331295685487900373272366456956138893094580223387420656693856774595364643290040466219181156348513728123906897607966833477760702039560478713512448838547419978099495252642599100080538979238655945973619936745238037392025214424039828462521770649919317293290286906849126149900538245566522460358394937743382097889270082128383549834137872007493153706725760821464014823341501996159413924241760371848212467728589630971416703214739759609051062324935035481867537235827969271292156838430453729725736950216808526140168465440609785114797982974789082166859604374936372990134653700600666053574826205902812455322792071411405497334764518012723157515800790066607534157747921022815798593332037858263673698746218382847103863299367406779707985135673975012698890787059470386438900550179401178677981631534496265808036931788744534010599333471106668187056532376084798172061991887966817296117366256092706645216577334918232068319415310690698978340317306513236696056634263074854605647600367141460159355868047351959739877021980396563548385189558412785388648432317797786109290758031116404276155262995977716256837884892250291072723048964538992325310013920198175291660506262527697160171958089143030677257645598097969616122922770759153997482710425377903855486269212017630875351870073708912350513675394171269711434843818003110013752350789016309003829264508614205002133295320024868947424515819205509086510173024248511933490176303322370153052150134936039843103411053662592334940310522989288428189490346310602030788492309417931190713410887490548752466994801708537776498144238899526556183064712281910877259696655290263159532894549643932789430264424501743219688320884771705134816145056133698274583495380762335260372662303439176865261823097691533335680976430272259782529808056957155284065894281503585169769646147936769573198703307486812485780376067814429412386675354213184033332735323328086464796128121538570028653921959527529736252174153264126255540230155516256563058810309755580150381434865529508168428827128868764984934353710611945090590807823570761269823366524982897949950523644715775998124359235696947924939269471741512098863392190190570680346528004799429631206904905036726194549658440830112577930795366144025011510094872519289956989926647679092601932249607218524303559194082300135496307650478975507586066321978623071009144046784061476164808968751739920886298273070603304339342122329481865856039537057806810093959458200180297055678165978205423688406367651247916876939087818784681692769698516756053868254693299452503144916210359940254821509537102049978153828889132109783675091793892009836227951953227762290355732646481115234483816787837655643128079516289803718314661886352693966825174281083428418907845484130653310100817012483572606845187276327683161161252940567860779712694017295848789558152401075225845770518381850285805398504684160695318840244018185409076325597601309764496202213225447752796868819130816450701271507462111873832481132829620070019793189950617160595812835121843056979132415197785385316084870987624782697902001121982486096706059558671566566760831179236116341084220719395954115099509693175319661896591007235567970694040447789058080260033316012079644675263354368202294407313166876982045267362766820856199469907896497897969882638364917868416112429447307553969673804634669283448867921722918049455238227407802974975520856542844671219668457856965161131605332030840600164687660786260425210206474677847797825261724298702505854857722250160308954484149100689045490405648772518058620325720420125161756659246298391428490493442933460202089218240394349246959277454973756208450375955778666712430663768783137698414257528793959785283510371760346676232424132350175577274973869861061243368812504054470528058388841885878207454934259149842149135785160268111677932496823551085460575571326501297306869047596594056344390437636245503496766250150206992621734598771719819576818728566238322965390189899733202559597511391086009472894931387859165372255208552143884512134865376777666177289037576328019311212704765592861400123482611364710010062692639003456335568104677521428982173088602826580581992443133359857364284150444565225022544300230486220602789667370216430983921524652870761997628259580662616704463961342658598353762516862258368582892444528984943093716428753389208870037034245034387766157756106949973678480625114804523660615365998582934357007001555090871576060883904101150855737391313075443265382577643800711177509004467262897740444042145275925630465165337962166178297882904750674435181101822047596641506341564707444626502876738518791866539480135883953508251444807269410179938212985287484272493327125057241328751185072025889091200101961875473497753727038392600439212392125611673363653393978066232952977575824265550240615343623668001974734610202389167884585742625938243504059540708972812431501575741616074648445347397267964796377498545553268596626482057905605272773894684170527655888095546359186957109253437625298117550845037267553379950216854890891239430454267920276053348987956046591641018208644420808956025526760655251545262577721288264341335346925307208397972730210958091345531258492178211563751138931163213981961535380463675317406333204881485108413043137361496545219902267826399871544455457518442275288336020666532982552899223585513923670336371039958926280286659133428366419809182418258640665940885961815531335450883156865828636925186628370023725069404100924481956854298324907666025383422444686550748381845368178993516379962084874374083758645224634625356791479401124747060008916158394767107160759590015610725897251569617750820821217272082648952867735636605460377291312783346285530778197362228837477810489497331410355608241955527518182390936513702528141100477948898993730202355053461412376896013696654546842634173239193747034427411751101491494707525561247559373663335124723277785157038133181829337907843331163628765704488304805761583139817063011789520276580660516183716344127467282617162557663374536670303664752153171323703813673427859417066624808419433633741334399133734180995792934767155341710809671144135234166833071225461074626337326377413488110318870407633159904798908671481593518310048649417619113266646628386304418106035661775346937509586695004904905811354153949453242049439901684196663002133022827291780013453923781013560607744444129870740954962708247935089762140231726155199928858109660610507804383419592878252074901587492807690878712065737710762489489849269598941574107926060411213632979838843308667327727498840160870606460381770613943899371417598487724763306490340766356909717488743010337495875025368808772977239020928858707558515883593830372281125470661759754515406991815222600532801895995122502191564156432673426336944727962182150607686277570671073863854556121885397903702500330169869314825875311834372410560377799700435379344547457625868260996867363814542231506898780816155502844770781949152843038344967709793680678638141204861827742045180714221289485394464620514449517698080433213048421580571566253637079087619885398791162685084682518958696246414031538217807688072545654826246358571644372684030227518404681925269089596318065696940909639578752003197303580986130845853802910061133438934827867736415732253335326675708765534823611736421859893696531416614623701194621011446204971079437349963346396338749991007028975554271656996158855599749155494603268473369914922782324446766713765697030054264734570991415653403874863663746165507331180005930470163739477209442447756979881739393310625004893140919948025642516710326856586072693961414091793920723283273693240331830959488539456945208516624649698555443118393992179394174051455074448019134550481686341358356031662892826616915113485438103361481694156574622005520364100073833443403195042353802234553151104547574939486055644376988735869280907671943299014036029070013681391329774096109428562294526142805907795912829041606683060613512130486120021303439951802390457106804990937771424654425549872087968004862811366371962240491738083905870828325263817790022177187382019351481529364558445629800205038159853721688343515174900265082945427329424671106550574143865384330304329373998150487123029182725990581939348837117898900018452513569339603868418516541616493299579088526932825061072530340165025632909281396313505152567106932898226558376632307102382287453265725204015727155719183078663970002528185257333357544136369823492065032738277647236083055764966231625977826287125668217299245646499389753509026372524471115600617926696886414223479075065781157737257352126100381156420548464570747321753016635722434054670433841912651968699947182910818236134070250113085540517165470079773145176365765059693559139660787784604262624171220421686218074390724082113166234283915094148390421046775749365424869247650932231293481332737585961209850025971738134685530344637380591382837738244428007559964691471833299063973688204446718635530506328868095812109906804203726044606535745173912129384739616715250189078751316343966689442815361108930634449932087353761276184112208912815344054402137597277192465504083268418582680005563440718140563533919513070947193060225035757416949138263196324387036685117716767343680861860594123863192095837430830662389556919905957363444462359554125835600421703442191684914804958976468676888136854219046581123870975339238455716568845402865970474209287415569719113257543248092505244299749970622504679717244797086227091175161742296853550169271464676529634852561828206679172704219908723133132753579234613068832490553711942940417676839657196284675217029479197711460968748479229934597406615101732076109882149529362268128899473956218234623897324693117174347825030818050875369062552929071145813121848347197539876692581417726329313926344655452498016407583058107625297230817466057189608407648690828818586478088216850474362743918174906366858625819694132890979670330109978713959143996802250052336212851687867085950207433008190201401843458908982901573474704195279381475849146884169493947183016561348513443954701729896567967688538459206521605883735515127504687661695010922007583933461376581144066506891594677732497069121610157614279486487928159583886665986189281801728559117385849775122252623569046983604704178581513789654368435243947996554075686625413313867614510894540371112415352590626423088413361610737891320267836176919509066906169727616448405627199402168599567167253761930518633026237306853931847611631547562833538515006720804807278522499521775967036375058939749917634052369834744803047228225377014802011629768292249432308189787096776271955608511409305266760205306392856354233361471701751978285735378631491058507039227546440430896204998631529490492708633559546990125834812523262609085172946713219679385039565230098863999965791173257306027238344309953463751644632214576063219382671783059293411830375004576065059524002682360579707674859133744979777543216308966374129110421218193647124473915384086682410274302163345211488314696959447198552056154553009520836322241014218980135695097666110550638627511378777960232732938722273057272702511390053112144560070634756148440420177152367327311013132514234873599196632349456139292268584065303604568901552582743924092067210935193630671450893171792399849994676327754325918986060231859303182236331569210931013525694314319284145715311378611975511361377600017457338737634087701380498099743239496500794213530862124807442019323539221928582582641553551036078219096228567550635321588710200334161124606276248422944450496800668422947316698146254065716953821785927466428708828226468829545952998850290202736483618521366715141182126908010596598981724945087721180225046707436938724939351270125940501977212305349945659891287825578363272340303101465542417138355175031093143847638701660906196340071809262692674907819171870264904894455450357008442196410427720298944629042074830376743793852900508973349395785722651926013483028428248311318547739964154538427831331908902416082310095700548573516338250164905981941588717816082957428818777701077143805315941332613805582252263167294181024950502274933643945038378068810467871552637529680758201025426064415991627149485399297374277546998324998824464543932198000712948121917031776969376005641155024387270140992177376342335879717503973427799894820868635480789765215574176717470457495575088573865158663106448588573549779090673336371969723032977401715920310499960067628926286976425569318968898495540482972834490584149414653542011378363970870923326761335922167161050740223817482540455214043490065750744920386759952096484026480898969108560281275483270259036184756154116704750530860560539583821422711990066116913531032703810938529170993671644205574758073588081020734360462595557315889504157336503358218920796774499876489801059229853219516688592497927275202989431925353641091717619138487049224709326694959193598434557884246293487423192760326748658320961208741257263007798015689479840033604100961072268416309130804803227662201068122712807809939335524882844878255935224570753245783327212852728363231590452141372422783660585885946443529574581727130123945641550069443559200879699792992293219267008442751642736757896589512079928730574459854029477460178222209816575859520574436326388119985244351536264984584219551075998141924778973403973235482448354369845661594039730153784725434175963881870398905037036468649245473842158538118008056702649383418945204574247966689332706717558960621590014115063910651796155056815890884560059838506989529754069919448166629878394653754480192678811190662781790886061311429459785944429283233320276667543249236929113936823508490676166006974366165481040383428685231963632374175585035972794701171198990066924160358296237981997136374813636711808551566856418525635481331943256492290732023272534002247918963115267266107261835995274455256201242814824470071785967804902317067291602019692750887027949743563271685223131020537826092155654312427228767937234517972203164771499147156217233856271663895975214071676550180462940540171036724253477225218351861961626225182009836801214831783060984752341326036288679036816924910314781286743943988046674861282050349315365250415007427129255394935701441144681192178333482874679235934888888499512121615682268133539345016025078637471109603812320612224413679557257770737490418736660866875970163611066804283217523676941377540806995097181230679876805027366439873128951139092745952000015564334799219888675609204675750080013106860614760926444531586835645385109524202609129235439605288802618947049556072287257477624441023275696976428958962318662412893748563025559415901277992687369427650568509348494760685062248591037801451082303236950517386297581072319412659809637028665884967142669829346711385206521290065331683553079039080633118302429774281471426327365469089283262335475233090153819573202520794453887018620213429045305699486894356716307710594396264343842880133696950051051492912545224403342069428401823642188443814891561907242025870122915233877482081371959711034091348619582030515804445552965293543404776893550376735766620129987493815531713956115453357260085703637345673491130702118171399378550343155067592780065382304796457746126086876880191184514072841755727558294330647213599127877300275190782648791912754656539041977656360479405844491431854370100191834471435050483747358807433337497216052520324571116493173044153987051693195673101009054986391613014325702197138487588211992421754561571518875210823739545456615650723733824462518112778713786485409340591107950906991165334343667685611979133381230099363450928746705771195746152002962269991190220517106070686672118366925581409945589391393623068419729999501512123402741696594465417867166789129841770072859586857255697432494404771915169454315665542783566209116123389342574594956220439906090918920967036782469955824054955764878947883358119675616106231107926608905681206824401352958553953736772027378249217181002385770050504498695605397068827336325549241017962338441090484426195665893083792536616942675473107561623267960542982983945581965072460559915893758899771876832960683107562334750701552216744964252317917634321506435438209632818067220310610831042968493589899785197850569821694249938759293513390780293261905264362163967388297970582004024716337036823811120742180499933947480539689815944853353157211994353050995554168330712550644447618616938990278188786791890648835517200304642876101631030179977630815184937591142317075201109837904885152066685987595955154285034516091153815831465574903127516938128565289840415318651156634042203789411600069911327751870600184848805049897306262463488786847942443549343885763794653870977637741878011600628083473826222772125544668991125338159806553542855993723011831943812826858428076404829097179916225145573794674778077833877160784471828352865666816360588628811907676698769987247956098047237281184988564435020332007105466040484992015523379360026642230128083392048826138880712198888131916665496800998221294945951765016314347551375742363706387847187920521727865560906301892724357345730981036954735178857631442095533676978103660191689828673557277162451030384275285857300556864558635194730817383660903257470950185416150668784348645799775309581286489059147600832291703303397000706579570957973399413218899045370738650089730531595005101854752785438500482298394423280245303885859606686202300067169702226082359046638820999065690796063395394963210298424766247367279383735030427925646939401039356099579149952764497241895466323921419610748930456611572239363670978217038149775808234625974354301546986876236088357103012382310636138074818342282014602398449865618172895021497826403098730710068321825548160644548473248963798270121263994166467737055801298292071092285951152350884216605850847472335115395611419081535903614667504589563672442857689438892081646074777182083088837256481874315780833988479698560557103675260522427998281416998789842839545173439771440749642112145129775877383401580490239144578360281362508979496633139735396562723436352998269083784364150213720338127999073046057028463608272005510321738609039487727035971089591353860710881808935326576804755241623729849982634309176087256197680452570237579450507060385031470127923531991100352140968780221835199089703102856351278556238103533917903581583458390677607164630642727909260720176798847781506481663094431236377723679381471577227552515004907886102940745217543134003154428050862039280628515177476022088947793051038966880457757449621747961789999090550718372856515673522112476719561099022920645785240947253785289703103899077387792081810960963802140875869430732038721845420199486808698626600893228269006220733082871038602419155208957438961348285314613600815139373086651790612725900865479396834882590223038246427134137134241516817037537662858615856507901278045643689142439232461611847623908001122638881538780420034416132838822319972575957672638181015786246158683910140167804114138369412148761658322511681446990691180066682445057079936446842899316807404261426228745053924434593213541939813553296287341567483381622683633701931209178674009669257579287501972170666778146506977416526458919983534981257064005920893609641609942047891576819815067082923985702758071688012466939773218397939009201527914118002146268810389403735173906651686271086521969442031220812430846480173565366958728518934539595924397795695203041489295708125912202240753405437979304651951748704112292715095898064092665555460828039432201126048138833503089658228757018099002590032695104920876330702980125975992413664351656508615003110650036422609263220441033968055871941487633644742624611921733169514990241806174900935470306536841132000167520749473091203064026561919779274835587361987463041646281400685441306855405717093665801491391447674449522205688749060796601983104174988763041741736892608059038294202483411749388967631408987689156321399138806752638419417713014440302071741497471931202000799727911546224477215648071493643494531075529840986200611645709657919105210753933363407097290061519878183808406535755050018275953744402143656647703743082113185716743567567589900640585796417562545267888187112528568722047780054258435424502393779931194770188994828684221348769775786866826516037422672526842332444441803045429638195129518885665946573218778619228365322242366971026908584105399062306404176788507937732264793441040279663927663564284613533619573171403964983730444497914590493848515803513760102961100710464252727505678916417969335396950849392362362736840258779436049978612760828442337560090398717626054158336520594787913633871848524161940642982173518752800749557922667470380654069223406346463137101784591779173809346239828940590863068309726346251778786970207136066963113225197152653065478885790740389028657445183578738855353060320012938385019959511413427838368505085852732524624955251412463797238286530199012640186988889637551639314188649334011526670328893188487498362539786799947958614701701267573411579074365048716051422573233262666843587585283028280844802658439372891852067816767365462553536410259210602411005131166525311725042806264010864258077805745402707103860000184217645707736060148056414724234530205490071498793589536236363929461647255575646749163504177893658499547150563166913195787433427705438200836796470416629611352499672245553842976365843101866342337845108394098493190672544817714879873868323132777510087058430651216612434694580080516597973497068677885194758636855045987054973387205307746313221843531731480309029377647679425864544385939994671839146341689129177388992892208750312910628709774280513376568718953912962741437981019589451348885421355807367303755018680002068331386073933199410538253291767629138715623831125088085051747819563493872443590382649961946720383767840103024543337509218997384460939079378249580812255606272268757260068679865449236298569821227667669154700386376564248567232125225067472394594323668793140259978812615779545440264673829244554276655920969800871234588045679474155998437101295914721299348497547032046332446673828223636775405133463929004817425165660110411396326183381049211121502207150180571837417302833262473932349342989107764852654742931670663447077610665011227679828738456514032273064919355312471832004964845820764068799247980592254767132336814937945975110318193084999248778757278172397511227059407855079001897524448153658562618071931785863090358139044827950185434310212067127561616865592662707664271471406313049858357920772605105229524223407694844525797154216085878170257841701429427593078577162165433731648806642717180673129180970861947731986781823475487835116553915305142233205954144161696264149155062218197285303080980541711257435545554099557645720403535723994154074516588454423573991118861706545614982379231502623499371057814657075040842823334923442826646007205882517452529097742228216728949938835715941031958518442701263208368133462958891688039747007215914950661217629913696770322955267244045966958533497063495389383063156186994518166147585756461856047342447796880910307570362539297125283222972360002083936248935324295196942575051768270436341499897329889061419581391983957896142257410235731286700493600076768872075627715742628081810104318151085860183584458698882834326985013431042881092825893067958454512581067015689951279629990700910853948698461890195667968778758332036981032434387902322766924558273939365354585062533631333961507456036346081314049739195194696452182203145188516357644685671661043740090154710809201361379545973949714407812594745168942342911621817153526076941225814086472717812210658330728803728990000494635859000144022587498541977855546483603415305888470984364658913401714875967518465332514881030991931639835760367007231630302190927683766802013620591157834822375671105008643390984964194871795241226178849438637408235922652064269348782558256700863307180397213844475762161268094391162266879986321773767484409211401043558572691697056351385461515044486871219121980602505880430716064595232897919735054049474165935655880323608025503428062951742416160596626538756754727357093530160860267662558800944355124620727046826666953792374446957376418649117754476728148546875140991114816399417246013525560869483954272859663265435615914480201361373685856595783667135161346791118316509308566988519642413775123514682041730187441475398671114151785012380685262212750672900278034959944610831100291202969582396309370892242680434434901679293900850734017514901284452060794437373471042517768980456611670025371396945303246629170082340863176943388528856000809823186443041111718888247795635351649277555186194328761338639053935117213818492765807634677869218197134363107205248625851346166231044106659188768944997715579960400607485371112654720799838375630530610834364267670400565713473693068708618869366979419534086722251852536594079875185873640719465230686795739426804020871330635480871815840090332881906824451417615737885198097234907341377972436541708760455178441843929661046969597466631926050712453608915493733348266766507995198618240598501440301733841591979823375780004352288763608387728374729159379327607377158358314665031536878752024606199110244078789688278017175255826576916009339488965943512343144684310552727898823070853243762334809178758519450843184532064776338912929751963845687964720740776477982150071632382209294157145557848187230448166489135692017837672686752123327617353427174486931745449977009862940254785556083893840384924894026650504610283567572633913506350317567989631572287113018317794230796461057525618704295048960095244233523359004946810020052653975056297955170252467966150502504371107943514321957873542819961589058026832139717796384194848266907052345288900523564049316597291897244548289695625211038154389886652075550077156728781650826013542351531792789174690701040249136174927421767060587702153391998886890552780880665581725970503560802219346368391999406199422660987371229124681245676816955528125499468675475795044374186131260535041236716541780902530060989695251835633261464349025007478108426189785229982707413475474465592068013066856980206719075192617210329117249496437339138734653905796938375526486886146710096376391161157298308927566723431260665350965799380714724827800873843906555952340610227610441552428731088472001110633599725111148394657007006571423216745947012211462335052226360036629688484388457224594899019627129532895769234871714564541882892406687966543278705842801819131900843973569142786601021343883622074138116732662867505535440015493102503534157422997941863526990130368853808856751028257001692016825410311781609311083949138511526188294755213881841819822816858154169459440138743615618225103825065346178609930462596550858495496973108245982233993616923839253683689476175665126517312957820090898180077992896108812936516449004210592612841156302254715594366341033519100581419807041749721411499915294399996876525702909705202485389860747260474928278043210813148724849527912621082219972436955722736575607377897838468847896244008878230691553491695210648551142695669252596809946394225212322338446575329904387087192974697352167955571237475653767292002386176297014475495118404453242646442689747996850814998393479216363364479473611050070233243843753598813493180632906540009911895007476690768357231841547363954312331801460161461533999292225790841293263270651445871140134159938575439759590465560054500597399087993820601622306999054387429623536788014644542642150313572711486158421848404024722809051454332625986149494044426935727320921531268811908394440648405839366234290205075891085636053355255856767054389080746543317334856453530717774094364461691177161353220822857078782582806128914922139264693643725129260340133803258366009996399148574455591491720310238901658670822980686579505714380088258100315345758248602734606349839226123020269717496984640175624016353799246811414325535974083667419812816129551894539342751410932561569270962553151892406236845420977114311930457631288780121795611983788473084191789074374436406760296914280200534905338126213351259478457631982244112335921869656253570457075692456904317887189920370964576641141878736754767772995322067039907624410922628047439660004891472012530970038147604201204598275275895882388615820067999200856967588382561154577669923992295750109949381617880882774987098396603314944622129622771303273888966537676563612587894901976677005070455707827536801843779825703484003958741971669462179716950514706098806625766044436306604832473439526754295010429341271548814704155823227276867368421685117246131449455470571755294109646154567542350746831224553268793189397178141283311584054644460139171190732225918620330652581667546365938481847275476305804026693860155286925203694010329448055152963048958513251022941638802101000645400694487521649242068952594115404853451035384228124033549451757801186984342352361166568020192053424666100951001201749281711465673346704685243979614998612370655815125874488612308833659224631485479610569917071158037815807973202328803101941468163320736565460554749187941448842244938611927571815075647279994525003282963169906664155074163849637501796748096168909508379915152885757381620607277129725816148964670266203901682984621280524354569376047462815368733786858051040102642488416601198106159504360654634463266192362160269018199291426310383981724570625581632370416436715416481181668807320863205588827647162970907627906486541770908578862128052790366790781275516111590169588999695298555272434572066128285951228563565570692252681072532069187492018086192815701573614193877133796289215889984391999147148742459652320086502901086115138075434829874575079115725056859989732640943982142887785819306912700420109250137179226448497076964903344174970431563276254001270814588716926073361624518148488250828806895345824491966692763650866084061738385555235414928379832567185322545496629732191484854060865215674004520742100348805030806074448220279087085558615095011015909981251657081034272450300536935052200157783460509040105479929490279405538354720182603648396115042122837879778311838679287619836510988244229901032671255420823062177995619013422844698351052589938126151745575751576875612796571156439637337357168650581491004353142632199683768013700898149608011580777473647692844049971427142110065468912847632248669716066631043523867574435438568415503976768514585189521426866027866256578787677666230683666802258982848156765892273975989197996652030596519352347851102823251307251199053554324963183805589809790701844713743647519199991258809169891883925709505542977220203434769740492000451506181776366783716872252214691661985982132550091433928876353087480049325334970332727629925199788919258441578067299998684389235985177346015932590366840798664914525272325386697889182766044541328484633478444275954766110323283294167140917454513216095637457668774334323927683683311063642757703727686491873742737595179299940498269198614857655299701054248743079340473275828588835165945656809577773736895443092334330569480064999362086101106650264226865241482126617089835414009429019268749593194753965200064798856120105010489091303642098690483117684418869726760211090804441581577843548120460183892244560885655211038090951280203921013406429083471424719382383332351327110620652382479359821980018102369433259164914437560005763897185811907986353264640288949206509894610410509636858506448362101834957321695040033784443287233388841869167624793957011975581887405222176835838300203031102706496445736922621960431864596755021855194689395564495219878573335583428305072683080858813626557077416405763591737836163057520889107321891322947493674203145780753143088194061254491769968423081113068589886430008743522524175076150754706510901434951418415579820617624672273230908953576453707286207416843290449127652266755348058327532780289363310376185909102661663196083942394480312349651134477294615334584622240881674393957944860059361491001424530087531649889679886884037697449939958973993813696091263519742017464641036593662249066090981879979892036678963546141098048974305873511947850368735213261616434538446310105964543635891104047152922239981749957608111325900346969756858326068007772924310114100344570138889563404995982462630081866043454273248932792806751749373322660889907795552580280317599508321860379064776083247201209365163977218313884178448679960336705429614297960008545893875110207310342512938821343166318333016400259326471213574648055474347420371383299879625687686213362393852298177380825928506028576816320555946396603557122876933706493653523058088543512116952374109238936497310747965793241500449245009011642013919752761473777293837170745687176065525588141342965351038476991949437197473730747355922013841991300355908249295145705059578663121673973150545911223680848459455149783714748333174586854040127657471971244194901660061878885558582588521302747345533987077996516548766103316917722816413884485354478705283510161504917097009321703620935402780935567611747819346142690572652656845394908469809272227063430736968958345648702571447364647561273753234123364970668331291754119882293619662899587025488157686962551568215838355436463497045975723327770565727439038250085246375279236444943554230277934112183292920212600304376178279451955420885543531206638334309812628552654478968002632252018418837631662988748964437366077895845336316502251111688984347590637104393106429916069626538165128555482740112242099631586872336839259615401512596903793958409369140117614403103675126834468672099602343725462259709037646039144431578113316307874408973936919464945211078614668995800560483311753901452833582824271040390866970529688817258703521842966777065810085876546056945810316000552886652500464376700389857041532712213341898594262422559600371622280758872277452793019123296395560316179390171078817229318263087329917731512528872655631126418925852371471760777750737189740225868702292456073450736050113206932835067939310703659017479747254102470546276503874412608854119954599595497005561932228373648114543100611211246691066816417603600049832448582044314629842502143241765183436707273078950354283575417286285174013124418708924672446736521426108794351408108865383249643456860843082401607196533788653328412683375500252398019254916628082892362422702312562280730156459120973311638649235624657564768772106313959476395062145901513168831969613241549194237750953497084100290029079374029474438649931223778033257855575713512038233056217525490793460772547651992820589850645393364515998277660893959427051010473313693172676559734916656347603399439746416136157172316712896916373984451789303390261077026739641374230981268750057884118828100163332009429691774704897044254426638758590538225782929486189526611133842623888409271308662752646095801633002179066073141781750544374062516513187221387761248097950369416229827533243129487411999680862294253865752280214773239741634750805560898685306541588620275181807381976162149598677044450131159439012802818835353714746021296478321147784223261181874079883026293775968735514766426647806450095919261308244644072773394005028366821071538980734366809604019594286151000050472106009000901238260247165541191694168717255565528764782754646008797255647350992650963731764442936896871032475944156004978623744904358237871862258511264329190220455089328212330280252546733519745636698741250090924972873501445685138464024814105902525491342011487099959903514497362086599725487897200769371918839972428040320802930036356990919396083703034395468016803690704852332676634321210739714387344344001607323854629576234821561893745045088676980843150520280093715623668504038768082368674456316270244867694637742873923137172340653347965037367008797916870809236946232265211647617957548739364679311295902211264645471220108796150657359163049691378534792709398251627309713543249514904673973690222883744066676445786616166232059702650353286030409256644633917159768262108046471961282837611268333080656782049843558165592637431275248013011935815948541368626835404228385958142184430040060694794748766969159964785900116986114717399403310287155722635582757293824828688507937729938102178727574304223972207166237840521525354877799774075044965668284422119900625539227657661115410565163064322268480768146967128293978317487495121772724075191560468554612438662687089036033935143439373924076094476406280577364301666813039896299804085285772837218462330405065552153693466682028594582689656435964811127167398975699292140283056233436203303765908501223745809723457972119096400404713938436416713522213535299019667552587134054622130886588720046419605406980215415177048825700847619428904119358396226132169524020118270233593914956168767915383894811212560356802517675287676088533639747656643354089814283272900993946903824768762361808896407821157875960217601245866831719974745443688123837748178013696423725813719160496466961210541545125407632637868877193823202295429003198627062214610819722411033250712702411765255399200075888966511518707676483183276416142289608219033012410390736915175222910489076625005506979692312105857653860161632150824944083257410507869934927541526511095436862085871358719359366304438570849341456156445786163958517748183505487942850348911600195568840046898229318793695269279563979204327574092529731543431155825699608240214250722572349373325749004723515295671720973995915127090452042292051310775883194807208702157024324428458281099206253714730163355880516819681261027910033915024543936895558581151024784310651172158133842329233978207080083623102433034153993797492818510965141494378569401772267253531906186231323273506515606565399061130091810083385924744624020144719229162995384845344103165242488312087822478309743374332526668034092088651801195947254697832065346052424960134602229906432508365499244624451422412909299887507382598676796341625832793808265008105705453492129193339573032642448548012411624510084296584244767740858438457071068685441447751340236507816330901835165678482074285751098493734812502247661173113339016381687650376120739118355953185585611745358534490632942345984173420570572862663486893966128936394332097608297099267460976380200275543787439299797343715427295821011503328322651144235194028546633087153975101051236553448816349579081143451592564514854233433037195019236035163773309837973087108674646145551722556512743850076178390935493595070082767021288802645655530896902726114454315291277408350024704512829271000603166974632338875201642655708542284862239520086093222859320443714543610030849640559825733970271124187408026151401123780291617372917779144877405143610790987855847439173567523324150461418429648380262562377377218631019990759528441735070576351354468187290409880431203134396613810459735105929564451464047349528196205836960896549510163135480057102002843742901187032015938702998878967075035872415179369814461795497492930028581513150012182353069356483712795171014993723570388261844863826540813628233960583688715535493936464832723500403838633072766740401097012222949004175714276221284479767337753836055512074832648908187465908847723893738124850321353967250051151453645953247829637800903316122262956326601948372227162682578175674748999815066219287986353271055528955339890457531524116292051864135721505113988417574851827489211439572618768746051332589513992672759034124441090141583587806478743530834743655643098483520423390085348300471831042867237399443107654437215360950038683053251662382954637189024719751315310343976940696266951339165846869191684574022494829323833173273554801280500040486209030574754500048465509638325967371926072138991369188504369647445244546289249037972119027164494295482419674826249059724486646173485109289441046719117927940995071434221158921264501405842512363103270256064554189683101163762943142166116456189722792513715056336794694774282861549034594105682634488243424186056904839251065896643929446677192280052384170932443022304452369305998507757754369424412941779793136320211201321749783367321284502957775695460642696374955599341392495752202194119779043947736948952135894963247713721910243987389418238623397932968425848514828620180363459624484525428115506670468725618001109571664594319275908185435621923072661147686549777812496520153755412947279320058289125127658170999785566550288665933142927818636697104998958024402933455060796609100523042021275069029713962855829866072419306880001048527864942548657433679928876226748847934776645753308404270074737954907070866440657789131821182198786430421439835622849421505734890516514601036830053189425235692892706996118262082122406942759126154399214468165123461003646680477428155208425345171288552725192887057419244748574295222237704899672542795155795597597421861803700177175374155729998634115846890759730323767030026313235834091095153211179573976649314498269254412068830523475098100942100405622806291325144677793225300259829234524538435250423249087166694918719213726602951872968766827930786892495485273963453054674449256210341341563237845039456427534211021802428759819712289011565571704596638922578757720485354071548305125639715594483598343700955250158003470036609718715674513329397255365430127676847798115208289498711904773010574839333971826692312408250073917973907609260475467256415780571590913807578536672238378227747948489346847695391898379360515292999166085373508243051589255160671702295166981888782556460874971213301436045177427064138354263508726278658775906298976296990634525205245300912209889895148362774516689959205555012960285089301556084031745607808971173851217254540585069810490357446103925453552989880656537692761195968611250704765765649141148067291317692117412689919663090928326913599197830216555250504691454246077816628845234466076797083830547226780850023560544429239774839226899169820151779340931020528315707853763461519971651625137908794476518401735230503643971761154926360343351238777760275725480940742253563568865237817935698562809624186016517219036872982078437413750450075853488581731396336765134513107671659304109287675221058335231193021243622206897653976144326918709722431583367440166334428228456462456604543435486847551918074455627922890700966526096910974304534038931669414715466655149080229260116833987693452057254848830712165386826011878849282856247090898193474403377993849128686769137057244966991326131243617110232484329736840584855994530464899270459336065910267956312905697290480653850597342749148925666879778731890949443626570381494762771590480661501502336243140038521034711472682147781717930591614846786934837567446974600186820899968345162005027032818150770112907823391547812159318432430777232934587341837717025647406550936028867659745828956998860990167529934999652106328943452221012998764894387951079288196087746890157636767788183373425754079373155592930833059753024629418005341267766977231622506058136643139432760846534670637922799840278594244876045783288522904033484097816827939635928513857685572990440583698453851977318331338096852802781702501263012723918580654843497891969792782042560006953578314836736350097759059769531831037306725987349136266469959973467560739760888473458882827223238134858189050403667072202778181810169883774230139242648228362699847246013456191819739043072805334704908463485388308705535460928350515944578606537977367742661606413637422791882307181854989151784169600240243789831276496858204818477683841551139823227640200600656060158763791853885595512507444776529973144121577484186661225988565679025289906049054908555726800799553820402830658950083026351093320309033021484205751457588622644452322692383632149607338507134404108835864515425967113416133605567125863430464840927621679706707317004003557044533088442950830500518831139174406767706387820409262254522705606027195425716533323050874746731978016031514056177345368926615564437801604177329230502761553289663351002263015224314227262661245343435251448733967204105833042958558562735773881328187967643455057277380275957664708973436416548150943792970240530807835599983104211354347822565088469829261032401900222789540830039852207102323108382683095291345315588883559426294725438974007031741532237232454458769388459314823298293105274913053582968296647038988429172046730094767443666120917923697053428763482248640882385038011560429520863093117903050061594372340504980493156935393142676050223914341631485584834491603333621165848194038508406313174283175778183912393215391626813728457876687660461159408536232537494260943702008721573042033165879301831169167336596904220804375880799179581551011766150434989995085727025170261844503790493433325122950179900493575652003252197429401228731774781725766676133450184031292907891669468764347796928109714883726862256491766072895702543974075553618021600435549534039229719356010222749231302219913369146545362095279703397070982933106012572387815524127190552785240618148166826669843677578313978710721482084578428790002724118209727458923686512241768240842913726245324366641535708678038740516586811458117458346784544588328578234262115044935879561126154091315148948465019404770021866212644115453372465473795460050005804228080652029777064919952266963841225792612683945574256525084821498077825644937940980493954866243330471039189482266370999796373213386384778149401998602622704000054834005483388336320652993415621040202136238577258447037087768031650539649302677160288543254815796191450891397916942895629080836615410143196804561493633480780000319704278183256271805346307024468534401180902430041081352263937265416498294301844818424777343718027569315646855931338606540084818126666459955610746650077987643619529665647770963106409591531646545395253734496222174100647412157204067688853283323222981142820695881279352536761486596274495320219727731296434809831911169918597035696408703186031676101046867618114204096086388964446077571649569056735317335019650863994080059118777981720050281343028867881735478401752245112792912017061567883654948780084155420391918995936050748667988463855604969574280335393019602174401620473834225057161763618827554199214952586912273565890582442526288701057264831248170285942919745540541018152727835878808197510215034591952594988487290030432395882090858031347778973697620415315979524755766652267280736958210816896749284801637824387023675439607661432490276077739296803771057132460974840649130452795565635134746342659998446357153870663097099304285378451195628509446066271015840788212414083319419932217371606434354488029307101489193767052868873019076232215927466837068503005048774607345886575233403672139099687304622655012193298120598147752069689501328770273569695342301623733641013006356619694171279396837405500270557659643378627504870826524676769013627764405908147255455425010196666976983821166264872495799493312533532945760545118485430426032037595959606287695866237821734429754622143952788145095773979899277057244106005186588207398126808830949008856499983521060575831344601962048400770675510601711491978571390216739035776020598784539044640318088311464903240850599838412415195225437881338680587088340000987503336117980832484666723180385810478493028909707299149998648113248692340079740080959134058749313221313236446386760466087630905068397665583960686336027115119109450156411885517062267247804685177522302523247622180884727261769706099544541896422759340081202318613703433118018158482698982025225273923519416404686249351997326631216477866569402034754771679914382691738649639496660418765249332670341140761564507276867145471605903055900021539315862248145852674137529660568476910994755253099060720542814614308525388808041411746105538135445575393662330225495194118369628968703415815650829035992937912582055916327797550052452914264479557879317619969539556194215777245178885716851533774409894986671879890243986446241916358653454859379983773305219687982481623676900064488636845141481283219000654067342551299830368716042342800490394796266876616339769089833411214053676316668959253963557629609277792038558969591565421066853095098347242066099144357074387164247991684506559819183472251123074277080661653566302068894307018639090409530490863727484080230075591772670258613803755047548547341591655918902778976632414415614570835077818075577816404614931708833925115538875796729818184074185545613644794835317134720866451857076696047019050288157021691316029773117585674511309611722263728483658935433723726860894364366793635212382845200848353890720695434423943337611297187975536665319084823069017177118178264558275394801024873531315091567915678787415540871774909729079373887135640492824789051492671752885612698548205098336058335414830280525532981829557888744446789385430558463773215387740155838141897479877964251289999424665186241671147012835868491304686937681557119662677552993903613028522734976561874893485698019236079534372840953459850516553309488228323469993819840816491551049298486608132131449649706004047095037826005974289109044110802245958515757312904848080610157766357769987475759548176493128715341218867480064230218699273836761942568252340685169404801519951824015498284084800346459680238112924978156427421795918034344907938825913585467625574563039235298786942353149814739045665543908344244518666099101682393590459797752828776892773565007136498169786665877674152510060389833528009310535433755583069771507038030709490473047363266188465447925225175811516242804054922695919835561879931310769289784929421762733598151433755727977443289714724863704696072081862912608795155110621319590022188882441563768223549592080350018177907137110226836695714510164941062747623880416779725294808134801732331995469268694870920399838411575460401101061562910748766502134617475581041210257182011171995577012586629309575412277622525789899561324475611209219314631089233776292162265288763049205348126593297100679487724672242188358422242137558192389657416618733535952172439082749556167133848350033648901769386045311973085394131757045382411702021351188197446011088707704326351921182664196058272216102783529346802055227412959450327820054433420723234474842614069908545358091969552787749750332066972340685863309835947280495042896101715717812054456595900926783051606243092776407348212054516542258547256447272674911888298079199234480957841560535758937771943433661426433138570856434660843390284297816893958474593480133467126471333999723258587543305406329550415866581723849704901718948478747951441840746446979765148496835219284784006690234279800073964884638499646590707019583540182605499375921998694855415044396843850944739249263090481385067012748341933250901754891119227560492961938707106918227924754337484676356584088536062404375048668768377409709393751627758291481717764521176282906530921161591028357655987279253926397376633775957474002753394103466437706466971284650084373712647811157882138437391814858086993442769870622518224691049342950129081755671683652717106360064901266226458222912855710223736437380477015962750345838968843274981366772338686259893626598613458677287439827021300617144049727156033066641706769608295337329728358334894371764807081267890221666516137543139648170700635268211692636611469644270650667450444117909092379323356412056527452876516395592451174539469679657328381638965657132749629747462130484158949947426956918904190756273755586118290561517104472890720461246380582539005081022009366275960145440309922585728376774388550068168731028478042288162024662221089675868387560912162007660245802879339188068531463890010887733151529156531359794222346289343333918127798651008911701804340888228881102062920210068215459611649101565602311894927504883632215823507562578315646746565698544370829364056107946409638989646463714530842090881966842807221085956337850532548594640780848348897959821984787440535254983909333895703539877334954950755183497826015290140376559549628611248979274191579219337308180024507634152429614355222286155568268597538746791665910084284635763357136033045341808498994062081311965445913027001670347919728009314358239150295244297061400999512889516592818698615620243714782934412159351563099049075359552778572473617653686016222177713581315845590120549860648347159509050018086609712406804189561104058692621657050461567662950822265155044664125010854097880195352775334913175796904535649606165426540953961565358450489508599879459375737428858744362021272166631796864838507334684475630498218029979757478272590916979824247201857672117133259174977428344319715959164775495424639685318472980874656065483658788408214596545403191928125022835900585819982510320801880509948854821076611229874859918178956740515250807686461646382337601854461924669926044440397117828263729277363281990183353588572915444524188853194462516213548639050500327965700882750096743294809820460195204456723911988955563737717643630540392335677372440768418345602253926404700337574456314451426101280748530271654579431655284549111773040169961103073736798783497618741986384793248879431694644789786049462677423111950509951593931873613913134105456697707420830279118395790220005401979920893493174355298831215342161856354217880661359342841859516413845913644089062156338292667530859354659070847500508876209290640820745271180391662929575707627833220796604275280025197953388386044111397870975308303911056491687668685144785266985419910037324173280054923777295392373303802421872833819761808681318718267207923449407915225930754470203062721909182445058456717958220436367641433990093253979008021384737921989092659224584651646784957674731131009367459395720167886954297001854545442238197339927304777670281001575813979774342824100231460901245617235255207266673573725997183519604933875956048941936346980204291819019539054604486946206336553996267427944409692786126874112351226939633168422654773952474367716757594286361532255424339588427728888383868349915045342396032720976274795571512088209859727755300270811619476288302594983058732385110960331551529590616391408160188897044425794953368951781450924873986910124889409767970065079747823331703803584561717080181658167599366378310530141615242349717891534159174195916551751931434785897037781838052323575810960586743149503362864067027155006911272760165966442558420087307705942697202413837403669402251129120619895639909786103738887071297392489678514579706287913074082307234871764531407111289275404720047681930413590948353136551151544825875316348297630208621539042464169147249888621919865732243777333816206271843457789560003090038488298801854695846289177157883911499866541871455740937726344021344618321545388279660027516956950621686517594302115181830302090432646194894820479824453575568919702004334737058873625070063286174018010977468063320489551128786660082250111256048609421590968233895791514459511953693331938072675139970149763593831104965818505130645372616986330304898605892305349164535918408180969954395295567683980313869554232775388745826995920946741653025128391600552625206035397867684577505362216196815768261297582903831487270957941093541502379688222997191996561171550470778797297721716030693370717840537893196113464371182034994621022247562058108797776433347349922621778231141479184376866919860604830674734754108935832420504675162422952312767749432369362842018066804346094763267117123376727528933367987484780204321894588990824191041416094743009213467439540779901463209063878347773705915357404098643609031531753153579227128358802696826697371373630876999962545281407987444962224287109273154246942624576722035815400847716388570998539890873094214230600663786005280540399653578625595472118755182203110819998791645544521975559947166867512574408684200270733454029667726801462642137931086087467797906747466305845132669064556284634496406577368290558853588371814426213440516754421859165126809778286152608754459724561173339686510469924553871447347178052695801697932583618739191010885248363412798489967979230139411332874694020385583349686847962638922332561193526082094423899545392644773297158482628831119260209926875594354318624446580107277369457787485420728406240916568898848369709398198744986154110721048528816863054002188710276510989235195126657783732541783907384186473946824834277637295669779020563488821470375415836299682689365201121826395618745670629428812555080951275288663057395835653720381765919694010545867499296764375273084393492749012044034634300174600320065598556556597780360591292638830752958883649715224693377392159558805013243800664232514056701667291288246712915751183399851691114626379512108511809912463033293574003774392322480063897019783279632915088398153196726419276675021374825141432666563599007057244440727012214407751601217467353200463121230036192823467827428891818518556341968934572619303987996241226706744371043680714509132054233223220119164685502250259199833463968152976119160424782102136296485878557140703810593203105514518520976099438538410544698963019868438240190127346958753121811167717660529847523602045165396364883230901809225784594541432706798547930582264493944635091170763371937466766064110074744185341078165437889790570280159310565124945107404160927246056115620401369713051671250250575364949393261529116049904852929207944160276697478199082693789440548887667384543833731007256268452717630128016529487202848657541353929630496775792625004023794800442425577698740393746327432713252266666297300371976476964881537080242000581611430575436798977624643864701804282158471793661967883100392703353818636227461330043161038500261367641926596851682908363585805488991607029049045625802095049140252513639772011494383238646726402072099155761755298979607649568963935218671740500237992447533352815117987601966269051838485161380743364084555147536160191469371040749031821403944505888273859664336984223337903874480731095222327008448930926414476539924599337545904535161055598145815442680815106273367790757271213840960766646890561856536809961964525530985511960551843678672453630626877292464716157958460864296339157956307877559676674245506126004080056789517457121752921182814082092340412782298442692327379033082781271516404445246883262201991605182973483319455365150758585377695226560706992358796876100072074332845110240069236524737017120344954044394705959626869851615540191727112479921440572188307198520150413655447963329168621361656663232557345346147949258653424242871379746041307660051953439466326112843449768872414524705455802334340929676324065069467088048494341465237127972590096760304233479009382862828210380627095107430442724651054626683346615209525746035863980073176204026995400235417852002820742217081567345132798817904735337893560919619099169044397634253825677244975715881158549609320144063832535233102723611248758124549741091039496620816987775315481592840098850527834881782442881601874524454987369067582276316186963604118113806795706329286921971708749702827451559408201459152865188733657220820963216825610249462371775145389483259140293087864970857801614366834152783311415793133056367463492529597488658833943929283022594225573627483462820273004539360844386472983614892073077911246041983837265912454481594406983703727670877912352581411368948683189934835738006356973102251814992569932685949982474161454880042120095302270578059298394700414993939926761908383429832293567788714691452584016048796904075071109225155697371607838978285417957295674528290661761025566551486315551111180942183201127887964594674680026675342160735158878764264900186350955414362953802253343887939570572507472812008512001290117432151252668143270078459654746266016067973832521887802628138279299904334332619259661272253583895847067391786100391069090789509013736179551761376403693704667150907123308969968824239967975649714568043948992590121931606269553005693678850346501726814587266522601652687312609163853011978195575371259277087644896247802847212370555936069581187579327817822818016807307835567712556810747341411835402493255756943898770709276156831347679634496066228195068824075918644620941955767327163840689810710638417315568312542355783556847710865016638390539318553665083089774420088510269379408742909567259536865518611225364856690375287898349399375727104146069621772023199745243288801487750038872058191417026070243524640341921439201978606067144823336681775960312805630857494724107953429258215931006122706064135139742718003708693476019902271984926566047459209956004540197795015729046233200814530629369354337697399785968780495569338634607508137954548656165934363589053968355205075621324739621296581988842129103465867109988291513681529385735477069143797378909653263224649326138743855310369885922505453186843542337541977441190595632335732672587357034633152261305538832728657399379939068755303925006356228067480722736085495339578512264978162702911250032968940982471123653045626089248975265873322933244616330219747162982341536842244093432999105381056135687608693234818633387614522417767805290453432413471250245275204902530084465369806183499124281368236756597654440533289072697979036171524055412951168190914325618161808643640473640978099280512758489188304873992917059838001066949012241920227613781564583455502430404711651721026973034691173693232257665234484784227970603055510342802897167569512206941393357126103654362776225011487679264990140647853316698209436868736955504740985525002752822432840405540301232852565239561344902823246705849185764392804871020387269869490669233773093939777866676837627886809828282980691605706450988769823211695448012032173841387865902581933060205540282921458312344668756292127836661779621728868380366824298770301015407301676221852011199705919902953946756023263277251493658984689212105526027895033667994091532883532855969828888271648286643129140345379045337949152050745371934597371730666701819330564809799580527546712495483572164410493930087316888649496675676034942354299297547293982717432955536003801436736962128831673955661073713739525002747207422844072026904130131511335732410541903081867906625689969219323854196317219241659603795811679317671908624318263130235770499464805207952258505134141101054221692085388665916011840000453489377683957567491566040936026111985028615723350943233665380135296920292550899098520758774669012087316318469322503442598017585401707403037755523483833104817532147177895493773577757953167359526455315931951749780510607856331353177098861769268502101066374724559800561838688116578506304633991067465995508950504496112209305629710308177037177261716559204587532374015681438534621227136765707477879225269620335073102605848018632920828858930995413557532055822972527628068932280695002646539670735904289424017135086757738827193045935544524726640032384988437441719390328480839027161112219754867118797642943595170021613755711701716646127913434848573122389049865879964269960144983346555042071660942381905832072544461228750375543153211815937295640625084500912570784061750221331016784340574528857026357566228217762165821592191699480281790584820210923388338346495484999729467238953262127510261007422415478630406191545009658022797551552013694072472021848902238092732116315972870901625542844461644846095067798667727366924064340874168552903434282463013351062332783130632245656524553313997207667402263865029175280222418305850385859403016498490604687271795901118092501185223929327920366877723719996188261755576723284666774901206610647507907630421528954993995783171202491849273233904667862973199723313152824297845644548245193617132901647499906489419913827686479693001805988549405601540200185933893213324194317496355839531115345555758277203761332055195944064359456736664146417299508543005848286842881672205500749686715829944215864605838084126175372305577086304602048733127795576365427656684297831008272038221849503804462716754661370931453272027442152040336708841889588212772093733863696146278585745604112704871443523745724413836944790290633191424859298937895913601954348601837759010802891393926988810961758836684071086120063382222036939729417553475313028632098772293742466343054467677630963492905276241268513874388530586082067384871616481322312699162391457917308398007570985613016049358863501115055922138165902116991375388397556110326431885841060566254059428180730499047640125878636166551207965851246118213358870246813907741414854856053168453092001070239070350004623274635274058433390549308525805898480358285351844853550042405160354503413878358005025225416478137050499192434473309775271545760371361048914785135635157120963992711892627808370622232565110124098236089971634577977972715707563017543413847316597297221222453805508700445047432016149263081980401598977095969339515443400636128881028558887231425730471106264648195994238810408370142126225030044709702178723407099753006439610946834527257535910531927728017515607745894756668417947531415711960861084344417073647637003824856363759443311844350943112648079152799242993966017852858555990913365597898387360187771599880265285511418069956792351516226069489774445206391633139645715350197818719144370840427088690645216683500058378169266616792449209257213970866984138187507212595521535143951896711472246705161333019785693844129514461426697915172705412796792744294163622186010322687439864157038994586340531691632795723600171687091392480870797366021614337112897729798328567125398618234155699796279556135542654522309205912702768263704996545939747866786967947231078692230118921368705118280403220743771642212700688713502641462676487284707876214630704955992210513017284772978648275059812964350671814121108168854063568348470180620313280537453851784779752846306346386160499714636605174409901206481988036064993986510220061918515642329709602831867766279201528495676623981619551632441898309837531571869780669980143051722093672724560911629673220007876447437949411980061016071265227634824913290543801008337716394674696114266993875346933816644129160106876842688740133303413721713335036195852797374700825766821134359651883836528316309249589083538056767546856455472050344823513748396156975754859478951004856166390843925562692954653902499917207105160506041739030623302568693186695674972947677596134455153553472463271067819965626758704773611334903487791015672124276802708111650377637411565910709141391740312193248090795744371295674236664968112692244952907456284946858581561625486322585704484961594834618742374431711247414841055770784716807732260247252566434992746183300931963094543550722208240589899868223887488306895605618024411897407405989124371580520854765967606817353149143103169622030582312479005276056514541736255285764624776848055269248534578406637144947168868045405949892060844526154393044459107456025003647480682262111100804191219757126375674347260851023001302277911849759160427185801755088232725589403375256191996608858256646324726759566197590464167280981225077702032171642746844838034164927685204618806871278838782974398997183534167139705667830768145400652199817698998470771892286924106467277962143415084014384032011104947347726810841173595081678234271768805317633246553994607256105632826548764244118967435627661198834077474837126368415772895497108163088675787422992078748053247533052603433769467199869932203191541126463044372225930976448745083622220069234930206178982789634796228193980424862475159010046658298312727088773103458749815309896851861386310627713885936008000406687927421570236980853220599850511583939205657369698567093777472107162673663186408963726979187451216278592480297209119440318082104471219006142695979328004818142118356953557961210726395107249204121794243580221715911182203023446733000278473490551292932821023379622165059207605561857580778089853958951825232484086216295101366897420242649230742016177338731381678363358133788735378463315344670171202026511154677613112650751933702466042125028571859994888949377707073286067916012349388368066518010202174229346838936317271102728589154003166192720578117834803653138591644525853568451580219729296101800423884139262772838186595678519604746356977583921297778675489803517918212113210753938992452266464334358864588825627958195704817158704511713714965210215767858425849378873623529263409784167056514081603112813171798539961370209140330561363018174039923459304901161216364544770228745113479146470927453900005382635745270861821026300587827849858184782726266266356765601288099915758888467939903816421747348266409869563058020330021302308256999492262530338634658165065307206950402640031950865024334097088811384195197422865131092721523333659965970766953971077534776800341523463047628412866391384173644651358367393789118026811945267948272471071122428497583395973393637516910124138538952175460702486592398276223329681736445430520628864026624747033162392018764002282149203483974152595186533073084427119197741477849908430665951635538925873711727334964506038630009036780423310795197717730108811259059685859744232222705515964359588027465402419393393754557469744486576820058493173585736727108277615955370800779116391453869018977904530062760037617877513967593235048346623551980001937884611611188320585815229001649482515411281146917797611369148925940840813797098519955869263323230130642912466550822043917962414120946768184067614445420210096133302762762261829356698370433694593366867101905992722437498776836334107586748625668998261656068386427529659861668427214445568292410482923130477655430539034452153347889095663982704998537892526141103723930668046503420989267396301432079851777302366164680402433834223476596089974016758339331760944807001397496408498137547611817159895527184532954703505013230386415488392942288579835679779567977214018804865856682923202631133308076308557848602252659454537024131811482757074890053736405205775603644447953958811244959682836000770558724861141737915648198927247578881210696602034522894372284435495376272868399086226828329250179511237612902233068136077932684413426361509666364343929028732135380198709803045626215788784862969462682946510853375350872566175765353545896375122334655395144251047918095050695880443257462788470819758026913407114432448355422013350654410473836449456111794524086996936679334832360877719681006349808398987427261143235469614766865870484297169616872125723459786647767042888202578390383665819764267398470632100478832280584783127560532807922019299608091883795828463933019746443813241953424879719324224680316855059648476750646398950327777187334488137252432304052421645158972101298941490914081803057368009415259428793666555896304463935376397667891907676639785798853681327035255680838117192222846157482110276889739292458887669144248619201629413797874482262235712643893256564485418829612289345610281567106860866237556695406594029680011644786055365423583874909293232369051994094773160844309019036236285692622838699214939429738079483535411193205299799026748924617454776109376213713922615958840330758956611995796938699679243349813658491649135831325881202461421935893036041984773546020823693302221522308149110687423277080989406950279699252052750630027318015706486307546840629685986328857082262983365801362394033532542640190853790595927889273351244418291927555473351669924198677146656808002499797247221295278345361100048557449158722768094591455506122489504769615127847565598215214380922764799922408289080832143782090095725991520581307980267003187462437373692235611321548755798914471496606184853853848545318591191324416085499023873682247769037612326702306213013498363725584774671196214930122383269422747283463348531144476000709567961250678107827732801663334228703728235030599144691500872501027967550285717737243626359963117049586610361811451734109523019219923071027878493775455815408050807576915992505181746922613846965050082061848663796467237701198150255466256063939446530127562537528656283837627881466479306143118743035346347018209884575120064696102062436639952189423076480629803169109093941924881935528349901139066668169613763916746584969654018769276085048051943816038507618629404169123599563789674671671305529906923400223031148576809007410800126403667889334805661476939186745567094073626783379892410819407985423628856973657829671004648055478299557675188200731061885629376443326325617477704815825318282550130856675087868743099684625935978025078388200406213165778846225513984300551203994110380860690323665264571766686768347770443456895292207249018234766880155758872818112706151553492441391376161795472998679821443410852556012981010948669574384555422323964188420213061077550300467309067710175685546526194202988276399791525145725086588559800356926548730188308531098678123120316840265582752246937132125517046489768969586615751672412475375079861148516676121311400262945080532536992274645742995004144857270783909750396030464734214721927317378513898019832653089790418549530469141189739220085851552027459160236956722281278795700227091375169689242451916841724378672602951966186197487561107530196802805423254819217943570348697926555319852967919781125616190664412226841068509650036948891738437943760064178474264887954017934167433532612485758175820101200555170643094274783180882295029284167729942470443732763256651294842169102599834416268916822200648296096432709052486431126203993618452580485991895714683358085820160618682354030533207319819880540686128381717789641721819785784423303176569856849486538296466444436929374296069652962170623670128695388758362031830243568246883192846791736792932565100868146314731382304356738659141775799828551143898960308417065502285400522532446269661586775829936221579988789488837155404420111032039621243022462739587841281564576192091552379110483672864664134724522726346814084715310668665686063687870919729461310180370011882915072188548333954819410159209291554940154716615847439904139636173561090649118068485734407364224448400951120809899022811353296896706618786668488257574870234399758103608933087782052235243907279418224579006263008570439054203053916154379939829233717431405977400203849787931827210007163935623421306536600805918896594971485735260156843850722671107613420237663853793569682025744395830993071340837623572302793246264934421996461430553562546683785489114333305083867373637120036038024235389475851740158279316286823886563048607215493050938322288132235873948443610369439975638996344144588186806854996650282652190267038635401348905967219644098327905944992355657026500665807733312117796617834648426930080441813313464796425848231681188959438850981480853599176437083891117178815486239495095400257856242807127587134953918654322463418584837926996260495919083224862647333803897729094975650890821146358441906974400882838581786476742201234929468678003858754176634467678846824484069697554073131073806829687168559519109805948379975177470077513053144176770657897015475321966354290698045031365246412449712794068025342002707412640065065065366470223364879186864959410914717368435199636623775868443425308354455990900197818038956757454907777566201401535909937005570623534180236655131968421687081813241956687492241715195104759597360757068122277028609540493851250150090320713811738068537440757070599807897467331821334159317547825359705633079887702684739585439855316574308119721406235957653661890649455770547560081854214807354740170442152290470386657829115284518740598807766878853658633632437600434295463020223125100375798045450803697413538137137329484731102079911311618362866907053725219778207219951495411094232401571379738607769420063152146347191989588576503978272157745685915157652178568700149997529555762109565274083291318812030179768232761882612606696800785596408804919309843986019279908072645722819370563166179995634002589946099280686328230244208046630321209459758504111544255647420834601771248423470073730730529751632404690851337530217692465246522135105015675927639675157154495781685079235956381473121121894509428772648504960702500051233109655571899389257905960531820852124798719428483334744532850566408926884397129660803947407535519206301309490785236819030243535039661643694444185868019733224823962057746169787564097110163031977747660856377264505242079371191339389470117085552428969466522944232617474804056348421071855886638326461205733240332651355526981734139352356206442540846097873568082700286753870126296493602740717122697483616510525104521824227199221329057964565140193665992316237117761524741273910032746694348585197690373586718390276193841343018071408530807158832179094646214223348600918417426363488942719404507455596914539997163031736325631352442430346779347829465424165492263120304286451799958644009575242439041749666334782277200639704618571735726214712286842188411110929296670789642958420819508867256687688571984504512014035337315430685047738416174057815031588656639582480223388672850411433463583201826062026812836878674081940695682808157922711363410844648837380130397620472326590504763939315708661140324767262601785880715876287765538116891958285291602321189779483791004886437690577105228281285296920234222386817144033930161767846769336233330570206648688639816947970911345433074140486021619425921901649276024502327964773554491937850148069009849857057897171691604443240396973021063400662216214304294935925928628292624964263217143101579041038365714054697017052526270743630990535270476644279227802221624834012704248644844161896377495695806503368893442626118842285829346127510734130524700711488904424830443304347805658392259916265073140545560624774167242431546035943492374429882233433514472373685961507471045529586778120329897121213194596747288350848210665470012397440287155613236245357865699333154801342760067038599565202176794673524305521139406299554786805463073415206845000163777894349981790285841104221329955193796618484661656279700401980339093365055126218179094278859546013022312069713481257750604710854057094803847106308006376800334768730129459498415673270651618598111443928454266953603098498184692939789022427901549938966986075739911202961552059323222229134927207196784115697754226446417944938722330498738585357421532149827886252884429254722314977080438535830397880894485681276696472534600731786958141006293350183899420879455452173540879852026300316351968895232526878622366069590204436878896388350343357519423921363953755528191095481290062675407816645725930940188594537981016559739090060315613449061393312018145537863600720735613291987130411058845265907116005600730939002511929088837704236649692403324449857785059956570426855727732156703108616490650793696388878943547731277878155760397631847198140110091642204043996728731686554935292622532930258470271553744950770720182751364858269843241787553912344990634552473119245730815605408475376091816884165802312490519274658882913486682357097424105065487768765126834939003924630948703025161588084375437862390762274912072721130752594923957482409414346610932163217288791309169438094861785306823220059323494041131907111138239063284682314414853711900928638070003921884760152156102709281460387556229021813842386542297768370942719277762952887832249064964766685055163815404244194392335188267262197831352979718804983679140909401613923249830684591078249640396684335996502604560904430495933584896748492387607651507154085032516423789202078507296376105920494844808868770536514111956790723603460103583244559705396902587371838030394312176821976807158856753905379716430038139025909511419401663967428908560817369602979983274214226175037579973097794082988788992111492261713028328615679632400430831212408727738108575719940384158959827562466291702399844769871930718980241662207364662645569031382055569547040362705221287947977010017761953578920675223630182334849017072945958975849582980232542804864525465740004868153667051129081855635616942333146032388174157172028384164057356069124572710433237632586222513578880543828777844863158374036370102247883410125802387443286216510064491031366827411484745013841953560941287330234428933328599813395704865724263238250146000657789178914529337602305465034784769973536218070680491807239467979730835741123440420120659132669202843556081683052915796702976226206864045261332754112123871215502083267571198693937933893341444903674933039401838672026350588981560091328925736699122555626791565380838430810519490881525487386011755640885139096655963022303192571832252537509277659921537976884639981259381582808062882060404839386853888406771598078798294656516199181898608215411173802992167421673045007540615070236060206820763344878765390169490446160179682769803682391479732323461717100786228167406382234798011097755004207982599074442728484205035626716760175561553670841978121214588461055720108061470536521776649425939294931166771251486838939942944419782495772410353108261874988182826119585365172728585440176259570118217969395179959402912159341106653117733379903106996742924443103706220636669218870443952622082261555269554596307060337947900322740860341045241667196721119470893401891068395339638987708861110482070166498632788328252654310700591985812467345327366806665235280088968061387165782812839027962585816541142172058738824556254587657334089660711546538962419912214256565385153787588431146952136467003396205189172971570296519258281871133512353933789687846205380820566213772212684174928405988325577328449799523038554204818602299787740622888483780947864205467235595287453624489156458550683238645204120932764236829566527460766832533119438735259572665985158863892327975082970416901112276740676200631639044843477787207032544271943377403826458837807171037374899748758106438133598704066102182583412697888737568614358995524064387817246021429185964823044930500013496961700936436571513034148488733709401396855118675123349624490980625768892500017778531404350413754164655652296530695060113510176616874405185503919041585156851196890969240510865172011564540419749088366522780342279299711320714258205488026897470044296287523865071234373337979964446569287514715876833868553678339346074667683189266077003918318632094483027126735566316493701796685777621895403862654859477509221161583195358938899076384345388853619438599111168185323745343983042159522987533848823039587692986768976010835745123814880084342161308587464514372981187934556201592893600607594119543704638334432583263393085318572084896729891512818320238843172586411932087436539876975459264616042456925273956593190940352666144736799646245331109183069834610991950072858925005185090724467277037153487998032794627126737394312530570179238084628129142687939810159227994668107542536134152734496191599806009071882927496634396977087626092078335568102690361794072070566584003407656813023693283566331456080180365071040735245776917713353815675077987501928616428422090486394781075258564184298626149903853055092042234857007393161356076597026322834018340469367105582634470692517838802341088744504005537318366373647976686474702139305964392804321878839160838091244984113800911085880770984283656319540726243602007778179042816985288584443203818126828219187635060681000202297229069855328478893461146242147694251036774889800963876557690525547482015302859939072623572833151187879642195788709212597506916624775026354572478962930859103319660345274350841653683255730076836818506932253360409746280555562306324807574549450565756154325536464503896826990443207342968496760157062915997229659583954532614413570815824331884309726468439388745902729176516510653991250803107421780374277960305840654311657056954115051476971352054197036398104739569663188727916592193960993908426036482999798926554219833589522892816191531845005885702819528461677161990757144873401686389065577900364492281523217487267079033784452188761428094125401424687521150306585355957093770041162146405735862236086836623666171237852539692997107337847444017097035462801332935768804881562764198004138912141316650122416627327392673881087861441255767205727258186690720938987490913781585223501281900241707770918026010094509594867567745602806956332950199488706392230513663892342041028856568667982759404723726110523106710323411039320415485257221507600233011322885546314124624139988590023266895793163264326570827560993921630215445333285808767162696187228223036464997315021347102320716017177699858908909557493565075800641960742270406636389711256333264236775694164049625806687767702906015155858062372591616830554874318049019108255989218539594805460317163480164841239959413897500562479406736864896017421992641997108638559715496748051675806885316049158750958351196731252253519386702927878069431981186126177060787805650897084719416319918855484897855161852973843575211542407403244368181307478773413387147597619888937635907153039448743672806439214676087588060536270151922763588446632004644160074559942205541876160006904103636409705840220402326548027522883134839375818969177170373375561443570566397901305705535683134825278067325535697676983790891780902720241658634029852878272223368124482262128589444702507219644757873441487128156548575134957831860856623208044039311420084318926455646039850072844342570299110318811907551991575533288317463077382820393795155537395827405917032497454299026865892150278507505815612930358736862508292815649063046837987217750743777381864769726482881613522880896668728585548987292432827983116423555672149162766893101136551475162695603381808714708937968464865537713602855885660906602357829105540580623587366342554943484861659604639921515380241884866990658360235208392838002661867679224498777915259538286744509078625372862645286624506030963782289394307644151665845841511686028534477210438765279402754040529364394073189446587693319029418204106418730652143937098807322936252468333256109899107981855711041720531756759360518585318584135022567858821112087253509014702780691249352387796501209765319747026780701292325677364075651015439356656113030430973841565911395032808698416098678482839933789996525001176248010943973209778695850796576403404053591951987770865758932001005906956423073799769290688589731333896050881207300797876220833172730855060124932557824727523422455990267934256347825181794436279142547248038895154892886648119840758394717786029168877934413536913667042069329152855722430563965688856563110106442009799362651916218117627119217505835170222130147733256820306995333292744371231175277037097364024788848390467291866926276434961707595299289659497312937512235874600289515847975411289308507860191103361150174506936553963400195007421804070860160518571791464593792876552183779613554031937627390493318840170430593440797546006148986031986373285887634093751836761152947179920930746750439349288199489077484897257326407576453589404213234369542402567612053490196914756596394952737486257799785731801082651789287086187032978143336639269221047356435877563866997100317572364761752172029052958142084296683134572101799434229463415363247624678681531390941484997316975789810823115703704386652432528150027164944408341141952690820088106637011659757807547953056090362921875673299402316883269581432984470086135479751320135917482562430371287626833116354480357018257868096695463603259294947657778955159796424593688165625028832188978310682224244770444257327165354258598797933811932454601242061205642268298039311105039732146677000218080892829680048325747881947090542250225797418973517435898328062606632845172745417457550867763020123518839188013358562301860982246858420958823632132958943787153990422077776403224791538831907110767511910478895241489251138891947292475352591289789622252630316298520791137990421949697931746820962541901109995110502699943667159856310706149128240676869578161342446431930582834527954044994985761334639182749108423573377805830389223736804773830789564639420247291608002062918186721126424903084404428267314428787535699035382988285096528299420771427958839767153977157404380439589697998026940174077036803040806581168221830481377431659004219962469679563490088888065256498556003795182317783128780490277420257070405291684452360234878243742813530869713451775680849568136426322590001553928119889731724763285671741291399926884683707876029107996042080639972893918692659195907045001981929484345390568121244448281066787616304963048745529094781442329294434063147399581676941718577216418864697004097773031196861089618024345182443188178057981166543033498463258719445290197329833896945974943874005357772722832703794933642541557701717542815898095921918690032211208985733599465857807364310573520985892539154619125095712489822410726559415736079241655031550778267327103253021612969144627831493550212003023830521700511379548261665832404407458599962728630983757055651028642148872983051631605492108665506461154343906623594280731018619491385526059504332414204590148057179770038105152763502690369134343831962182099212046307010326986963432429323639689254334691206547819075821231124508020003522231216612294831587901907694812551630471774007453231470534600861763495908816944922862261155053675827242357986035133971758514419996783938267878247658636801081969822754886636885454200838528167862855063386335912504977912813549992471816610639437009307588892656956675907871599103045200184834747582073047593571622835482437115360601605811978485517246648337030078382636618983852095996291200193415596112544844483033267444368485035410482668090428881929301950863054588918766201290242725739305126723742134082796759622742757849363065414577788847127588369717096667392515203507110749656187191500152602721338137030113589046017301288632595731745801320451912326596704498742353867286276290297817074630450581632329619565973513690934855664906506573814863277271135031018344017165632899544213239395414770661747061787056256406337315598738839711593803322082679574728453756548021018881997476080922971508065187520512753585466854826790101646360766944315295661377651498139565881775938452053721057837744554453283767542804895521007165687791414248209036090929985944736757461275858056639738476054100665871789023616216680811457118033311231122194210763366726002196591015891689095632097773156179894788702961904981701174963050838171653885883691289446240719806377869499024740444571094266503385697569110987074422241950777128394674758937326802124810325178722103282829932920526934124616434450628890893112207914866718397625255510064635353957313789435829363077970683629188275633831581002012668931649052910795861211173114503067597997879890732411683694381278349224059778419914248449894333841105671706486699148153943002094265829829136672788925552682217660868044576740461330749537457765406059113200451363898085595605786467079352565184862833421150143694889351127896597367193867245178708064542943093355550792231973079726657162318300583816198602749120774423236171634150372528419098945955638578900586966137887479665149758332162691149648947973454358227093506988215833229212055608958085097715351871594708922274708005433266725382120502716234610575270861820817598253608458816631680913046945859019151048358539338893278897497285452449586975545447655958987999737358262355373641911131432605011669898605353304649689599863611528074644693756524971941964936365016904209954132028211885679158270912274266833983398093338049156055632992441343778246840460875844442790484277895259385190733793214437788955381556141146201615746317697408137782579161412847395769442698743605520097467955570551618706475847446280040935430212001399388840914991433175863611034479067221329176191158847683188660994478284919253765281047328376388154226857513575984985744952281664816934614848296742564832745534305574317426520474043802542193553044649129259236897918108927170308649835705617218893392209512080382334874199280636588437626109730798832521264882664823199359112773073521557079998551275529128800882660618063730367756697361236699636402422698766115336375607761589072301190697746705988733247511368103834705726974256817363963093451842139501943980806252654214213330840371500967989943261329300010522483913857038713768026572714721990577324609586910496787464446127735747628314956829367887096868524501697965639956474484875890378281490979862599475069240662360878967344095202969964390161811165756683745862142135872291592815911473432589425836812607846945180635046882136439175115527519105033324384095919153799044195590933561931487011572751188270664146414524744402691200728816261449745497588904566979132989466993910150258454079866913227863478756669017994198850434324216829607514301439710173737429720390129998652488486260921029410672069542090747049734236865811373884090054410995707018714288924196916371701595797015259694531107383581763437159903492775801623187754056925256543243861085778705658084310997960798036395005753100557568578522043213938755734023736091795962984228621259592416839540170499482417436866808746090908282427722099703278178203269298688664973910626436173109899637006977666853707925409873559904009555438551794214293638969049783836453275437879032104894566089107662077045978499938330987691149649052559319081593523119776544478396125927227481698710854119202289000876979241523248739118743671618070830706873516519569084703108163929152946979333399397638485702192505610435830174083383187933662787151447764183347231895283321956392039406346244178657529940078815646482556304014013843110594133527934485775997702536182163009888979476228870865224702574863148341894526638396833447608153051695622350284109556202959101838717890708812587766094808741162391546046821966593109719072390541049551244079654779188551101843595717135409705255192724175301382018341662544051487839318115425476078282869041295268816645654683833579469846659151356171634913278244726249310687277305546863230874353887515862555119644915087763989994756491004077160872886278133362060771374587677007501015627270677459389622145675692145584899576080394900573492191871356428483303409548367309400041488725876101146021614430487206818379823135897833743995049036031971345998636137921054778244639603772557740877504369063091314925968479148972795041154306707054724654607495004830304200692818211986785211143404172830275584668713422877270437810781150512214242582586639734762985820378186067771161699108491945135212580363046646163215756281048620594930549901155335195060265783467246822575150612899748740550433192972847449794798717070579907623987502823311015488582706897605854765159470926410612628166530147773507342130949921498839599287454984382889349306981703296651779028944229476891979905646467883888708428857284644199002736640102480192324472944434275631674382586835856193809939041524612748781453714805967798170084021256682930621047362916470614028862913420756739842310417235810593274713095065133842914628583539586038489175372894938129442000460786458258981622551493586466645436578567071950590327075899506910190015389658793883382974367283360671918789529063966778002850585850542664721562646858002521146453086504320645544594318035785578121474494650597959455682663383606943122671817972130919409934345161421563775717097270819221675579018754942484132694683272682648065984891094557773799364615380879980322627853144585908280260635777943906048651966888982089272628144151450509569796829013442033942479121675049118306339904965987523329418223303711587801242567991384614346908092176665628498167528156109275148105147067878002688725870252872788723827552955454783071657460514056339261707990668965272114593792977927373050886360199044008860199306263321328944873242126351678414087934671580560130400398185924974017893615287310320101187167442091547016473419275299018918974083078053087654066147755473185122129319025431282412914237326133953029937240640810301083707135655573362448026380064077465345286228628152357816172644030426149584328918461332323849260508674730783574895344134763019234949559465664025404404513987753269893132764018439831243375113068672006861119043953633536954628671921183102316965688072799861020128326203992299454217375101084249297827610249618742212250142916535179329366395626947516046352963778768202034831549697756651504351804539715157859502438885788248515721656901327983925943130555736006732795852898201036995429256125143725252586658555230750020365234884486945734519023517779043056199046723488005467100912752896677168813895930890233189880357384924636413766560561117512428781435659686599281452844045615839563597477655159881240285100507794041631690624185734754154021992244391261512878947163601960284889371050697070177756323314274479775481500365470790884008356396616953998873714903352735113145127141430791036748288127398643839222986451551584016092738100429237845181551246900619966477067787758572599017963796786512237220054999463258885992786071879809251284402331048057252659774857436796960250211209702329488278653528748606794274946331690915211373903409678691294669952513383841390498295776431141229113922550623182442058151190316343448014177080523386920921056583492478598004045924696365929374425054021390091812435457109810210380906590614456881891458402957287146376417019145164912920575672754945365170493546726192391339642203778809579487304641802411225577288764704796935744662827594463716874007730866220780675853387732451208900742137406081177271005749402202466779212871041316116927935969768481138013737795798776435384129480744355989269054482008970877590325279725247620597181911711962230195545101723168636418848249272501081176760155459976286974620850188601033590661184680739289287210391370823520740176579352408336965410237794428547810687590403986027519111759142298853783286259322389815813090699774464345022621206301842888584393824569991871155683944626901472181696024544629369077523208987936208543909284570583923502019546398559297317954967381751854612849627445200813620590793767379898552946989211409895543043614659587950766435267142453485780587529975487219254261219897041393443122111545657535504862123503384295094854944895402695497535893685291704350850238879966124785938956937365915625694618399309791652272079048733980019649779908889983669655739488025633041079255633346731550841783308514192363301738366406316043357857783259749572598600422793425703064414166441442031207460519110599803615897015843050775673739242327594048592845959380775507559295504232876698947258735539492153675604608287065461649080381647700049326962999710462672633758642995222458008762056440964454453104457050185097812975263156299614809020649159988546898522113435495917439792544865905122930193545801962550303247204645316102238774154946576866915006429131762621872379870819723971758937961750161075358475400478732647138716827678424389375259254415895335259536454984607772279039397307933871370317808027593738468944025468973422789847651757886774074893146686698404209643253727629039807030458522458400424746734802270273468830715570347706005250162701784971587698615656547447033581513144030218864431252281623592718772056711885600208518656153132872258281947849804153925615151981853057990929009490493861328765089320844165834307092655603879039087148564945841610567794526017848137531926114331121862244746049130889289347097541085367459393133627911680421544070326425167865697683758276291483713020556860140516302140434544003120710018829010318881692707438596746542295061999184382848929580344372141541809003461769747507064436752169234326258526158811920838518021853723328694493663231471288185101672213281226126109730999983228341115562963407988437888537694015912182804204664111872868025225947037465828256877464229724495395534346222657026892835892266838729258237469871236678725211945629922687832078716393725482186021876605082033824665062537998105439862954696070925842270109247702943757126308942131192615612771002372866224141399829816296981566680906252519883957007243749655101355829636651882555538378698851200271073802145557345238719077086590692003665072227920430189955278923853712837844989642242405395159123688124273574651985627182722477087359067691031768329693174015184346860582845719452682028553821673341279573817762780778920821481609693523226615197647436284807006293433478545764083931860123535973728259420651450304704082396074397652886914231608632442419991565048026708711795726047782408097518972846915722788508539459630848326041376759424037279172313607182971863665417150955020443018486680123735588826587587398794852611810386795987696722439418026856622863399849531249279711077895631278735765462623804805061026898351562038818808273542876802186901396038233245224473702873267545244460195772970368673022780955229992184707532621879776089745290238072977084268216683326987952930516291807944148025101788132417768305996093449985054822086511070146540229929205298426393599791521695655193086539847370272537566094273902360306448219996743074547236951062749309289094378766844808378490337127418663955832668459193311381379168273329627931720784326367134922416682285666544955552048104860463223849910879794117416814516198677043060270022328928093786483985844484797568474204887469556781224133072217612061069372690766561938984942652833497503266594071616236699178908763264026323278828940478978022082435063539800513833239459821684194654568938290018475651255464137176184165872240425551105789917276388185859761083499831783076189083591999182934057146647379832619040281839511809112888779355600737026591019810249665975810035504963640187345969589972625351292491636853354381627382616152883217818900691976767429081008433013538497946081810422543862941623418604693605173786202484936027600593124732623104814176798957196168795609965710071007569991813736378643448562616570936570354055301316872037396936805656865693605738737723006486754924794073229847366777524601995367988671291955921909654611974814597669249171020658993659264600463053967760032486773446043147705235149876639629482345900944812896510564314852050409722238106205716450509440193707411686988698264585103569672969867133513766420418225343120497845814247317832766630631098356385691821738571527914531606448374671476663305837134139282064970630564490342467383843725014351796579941077025207494964680000200017175659308355304226292255514296471662230879785412144724861874329052857516978316796197804523164035462460328845218663180774400928435248551163917278596522428721864410874549229807313267180456552201339929261410303783933260136162648033517589730661797299077089791455915473840255755541047140301249261236639308992748929241436169842655587710999537465236941142625560873924410970533742986505694224853066672920792078779617600228117094458962324369990046881337020955718147073990931846341781334828180327422796349230686587999544397259843609795113815889531414079341129908162443581888683328035077734023925369664112274825229085111428581255174800720991112359913101748190099175897123704714173440572036461224509483035365972531510922920827892331892279719245097612230433193685034257505355039849866947489570964938683594660860443763263078506686910152634970531761920131604306986335257772604444002094568912119671068252183699213674179211016789676082149733453428231258899256616643918752004653179328332564527093524964115894858775291790900026185398254579407251558048647691277439345334716073185312710546490401947521052885536091152701364853408547431117196313108329724865567316084186340626771140711086562636552282309701102674447720443621400656759394709761429194090838725960578211941158525941238191482436853753070433880223556871439419522903621992276342953305343623089201358169981696721234061351272709466236389002660476086414209562681974522363606189099997326142857133599047516783496550051056578358152203321921347249301148548180544288249080997841844222392999880212100912348916642092752134137790136044897067473919520605024177178275597751218329720878062105692065111200464962061154997929082035711762570742371337780976524423186220086664826301517057011408118287685997557555508815738639965143914859849679437125487437902551780080344444555444573012823627747591958696544559936932129624692393617852315704391909011829171068557258753377619052118930031958509974013963309547094745647593631099071392756625253985630130468888224048024307022743284328086048415676069529262016083167834406769322226426745659157382833020456976955440247717397159382839840333190395159520361440632950671443970685391148126615554352807214966984083155303293439587291147989307918600287732168267259931743909949779475519889754766857404697066379756892617180838655100400511956522408037208916666822476398662880679734177748514166817709117572382168971486539851152849673846069342607006403204524506134073041101003153500800296717415693994414157782057989352553528537558942028552954046259782003001629650409953664788307765738561615082604073867020208134282916231458575306212371299855010248306002594512714015041142717490126611269200996746579068157913496237294577982676382352027722393607390896074240052933440270617344158361590732068518964924209311345344622406594279256509914471560692448170274131147403553834463604568828917473368661791479174436967407019854676895658052279528587503713142942966893797622318949885135107432898666611809177860601103988097829391309244477763930776921382546528626252430396046665968242558662388576290789286391732492719878861759561784854575242301524313786482253241404599536092054423723433442635918749302977138325506560147854640957438620251793039237349698618710362786008732835769715122609838803008733542589771690141821332294921943912026411864858473166006021879078259321246064014973864150284730050425768382878746467566244073885760961727839776225504588479870168557433678883441948629144284144476580191590691456917091078663886372779135912574658338527797028044329770721512192629504971725491147460910272777428417144659279306606658487251324993781804360822116450864814282392902055066221769455198741437417003076137959346328718841017791468941622507813023907166086064043942242439488896875061366111920530493973034905570068360533878759676663210935701026322555001986918092353102801069010392227401750815896099685304565836795112348395108601937968683148877440081633752398472827055978700556494353916092611289935627287901177607795854539244387872887894498302432797246409620884634241728658347658906709619088020126586412300768042333430637872465397516767192133780668120566579505583004197152504136490027615851707208630300437441233964509320199971726078216456486943214918481035419546368969960379369033942684765635316479537022781857713921910573764252648670040800427457624823883862444770014578339977246807409311337241375102553608026984689782474569683085569450993453087666070331424970099870118783814372792124148046473880602923442350734011021072637213883586675958954192170014083722659165360651606002555406849160106907277452259117366470963585298219760730575957514054498009357902018780131647160020420916323929801432306121096455402516070843448146150364847239371993807084653249725736255368406842132979888890896251013731047376653383176530846618141354546245341040683421373327938232444107209822227761272192560501452465777517813173971603632515524703803309765170308987667284336374615505745019930724981462097310796844738525383142788252648049139705217444484279871717635735745573973074095414318495008158777296722782997892914717514877164062600992791225521366797837212375239895973372181580285080474077868537314323137831268965901938780351455028937636548260515571027618550114537599681169382497993165850747548667187236197110352895940197818309208849633355677002343138585554322625245715478623392254950968933740671277707880216365844812772075901616237784313086188801141268323322812261635613385328903846859309479680896954077689522482809925637021637655012356278537825940266669282786203966424554060074208644702706845623091589275916149935176408027991504163397692843039293569911181468414381976723908419497530890872559405841289010759202770928373607164505825976476653920746021409989589292824103624406411771107857023007863677091911428244564778593079135033242372802131442542442837109821763968540725123427312175475601800902503100674656052150252238419683592529974511480901739483408084788404863913960558514620872518931305935319427269206637997262146679451070919486221028672519586499700819310413118055140877721240512736645204253158933822689172027498897514326213472642362235958162743565798708591197463459311912062012036265328002716430821017532530299847158974210576004970138179267857114451051105406325261134490352142634706445312422574750218663856780310245057520971321577287923423985884513872651266798568995163994101171415092673594171521755975844195463096844540370900022992459947187534003264790917396200318005291094284247271481405465607235722337538037858986526915554461357739394598720316110201420420446809150180431669480690972805007776534372710864962739055523729512715210757800331095146013029681469682660617199655107957362925815085619782681339833500620961876186354591600067955148848347203098222296908820342173958498439728023677088601970734933499051465536889099537905528085305236158479832029124579168400977415196677320531741421183722775285168774947721022618578940951823186683789751725685328629715228277230566880068374482825530862369348907492270040695050296894807331033586261272900478739670332956823992219488556616019056875888446224205057956256143623745077864020221067009167855594820999138558276890658110615823869990668384986551616918541040490082080378757322537481157249517128409360484746845368883420221139341333381609560420669115836082750437640711862640489235663137210819447553418060658356286438983677928807169791141874799076527757639070254820785910486771869860513826547534043512924514011410328142175912639600733520275752428081494522279424180438913672988638213024874431349496002300456902288303070638395344265533805624272663583209643088059991114971773526291904611534036310169532157501272794072874346396911929145035989235894657337306589207501237987955814117338280971357933846328926106694148014199377604311192446257661353420474794855178306195845635758419205582304353195564037794497145028526072506164993829323608091366871874883978630827191701629234812584510851405167247257977095033007743502796990563824765008073544509031942279054414713388042619714762996677122316481051959435326940811876565672377673390994003405778548776290289304605696904948161912289473536583180272303283067485162704924629601239459870656148192439522443172977070245307204957250501426745453575688133936700937442227165795001930670435322054000995830982246847984999887917327207397148576279184797407351150203162112887467453944636088264239052961732821034710222746762051618965877078122549886132766379769615374239699562523356782863668561665229869755958936263354914882443539992527361766730729274474721966392629002806565880622265528502970971072602080625162814438083196001398496576618334866078815309536524744464476819768478235811510725842294982456013262436553146491239226408237870165852345758020236634511056716157512897383304701219383880115674398715262135748920652061566905738389204578789730792405322517998289072896134640081995234132571081828655803650835949008595687264525213622097623368439091664155815289553782438618390934933950890387473093493247962895947983140141616083415481230490175487959802686663193503901095390638984987257944760625627410562747611616859854750242321404504469012154249393803166985286759010573547097300644823516775756537129881708340443707008843268159886628633682615705503532423398713991800894478203618561022241709355758879445380271290560399641603161854840072410079169388383924682739707576501797258179625965971944572227835406133676943351861278991665930748457685566794893237213211582732726990682884228917765655986342676589389131319653544965985940309651088556522928198619717195777130830442214160501733147508200669173422879971648491572785459541134227866235711346216101111198116158363322140432432375069206075383465257110351761632358972279535239536289542809744672759231496338998940549739085584917657100946121310646880871033484640226897545174800958163394094456843494886149535269787276566143593952318760742598667348655093602736966908137847413093042154331833548207355222566890760098224467056221499553448946308832405352315568221760229823317758277583045096495313410236647168525487503765692815060217127401031236090134081420853288046406468674940359382741590886418300425270441855900644898991031829003793781641204773889867870612613663530013524835379323217280844148344327945513304575263048132681710258776912529307971284169400381666453017005767006843376511765540035809013693416592217145205848472433866815004302361885550600354541891945149225280109934265332499386700462437351364920866996359445736039457051255885171240663239499384457843259393694748659759452028356142991809423689176424818157307262555553845786294928288193690971757092470004356817583025496219992383399566317049451986045471304147100099452145898735739228241395095142440997824536790904834073191712141723615383346751943667738155230394713328084835765193066886615562784507715468998852703854491161903318982306201156096824388734546651667215724296535618999966221348887784005162129509948144253554124191266801447715765827178629406843642651359625639296091168146561934242286592678932890087041465183113241221009681135056223060937859499926500037831205970895012105561140261923477295700146702621933584068262134982101079614475779203601101568245170149140452733349690754816337800133211968981890398071933965334160539379030178917704234700478578024104153661707120377765867110812441850597507606319264893437152146723110520796238465193630170280880964269043419445253411960527198632325676336383817231555586872282817431547794731257691285151617052934242107979975850347850286033382577800434015272687798861173989499610420684911799856853456486622574846788399782635138921745356887651246283890672520846216154464250477325267926410075064534508476398775686418908759933684873954753036520961631580121002843262624856055783233233041479893453363155964956091011378365434377047206972211742650775133509703939989294913790919081491033466181281695953737398906437689673161010315616541872246790966830409393241581245815587055111480253512186743111335804065653440025099546312266776833692948089299400161209585896062834760794494945016690545340724577207430859521263801201733519333395499338543383397888389667556591812280758690517352292652626506269028522165300808005955811050075896565109205769623643893472922747846696972084694412918142687000886862661636353277405956459784845702198557689109069005579997228953940214111556763120013842248328799247601647118918791773428029163663167434800743805946704708056773267541653333836738735968564499298860558775863178533737184412569543466966527886017902788181623893108728217793185695352375162299764990375239216045268097378871357735393957131577919253122197749673117308678616790075722353031601260299162650312787179668319715322293645822700177669144823137026951406568222986756608051965134699898856895761511997797352467303909602580621521792233251908493515150812330063466256142514152837493141137464931643508960866841489717900724936557654646457280591974212708224412652232696380673637464797534263180752050530214140167954324342449672692660611450856009129997685771782363568325763595222028680291201621818175285856223307719085933843672481687297867480009322154814931529151933487370584928171307729817192142884745390656922082287594490599268342287870244154556689240518387766914977869965852963991783461524188753826986892273489471095457451366563379515874118505886288939207718591494792096400691916468357866079787241636798531507741911437055790445798773838715649074181426081756456652706727355349110474122666243779858694756290624658238378661401262152984212401609574895267080993076878423728388783089525602094861935803387796240907365290092136840493560113119409305197879190417007098262341664376133570106864488145224540793130319124475502144428067022233528472766033827690155976958521408940326527048958358166373384397586089709450377394511551065803149914659787354224369235072691170909395280736532779478295019716962594581808641922879566391742479555577165008900061049872052166623895326374993536833696596097820433411576702834769696368637006168105306893805104277141849075320314174534228763108922645371697305728663866054983709956685789746105201943859297357811570650799492856411734573871092164606263587088063951266225978980370480319359214365318444472655825817333752926178083954540680192347191197437027942154403550514920622171801407283039742237357965978418993399442696532235118524153769098471558684349433099093238628798521120487387875542796557209234366940700875582752587868211625355412739580361960452652538712707542129121879743660634084983474021432369990186120660147014347284746277352649625590176510547521071504099410916373930356586660758329580833955158129034204703593854347129246763209620205784197187716848227405102437450947309135583904964264088783662492371490651129257724882622609411871437419810211005412665594791761488612598422615436761061147469827285833692538644206872393725792211995763371917803311284759018168736345076724631463622211379776230602635070666389436666782636457168234914494617036291967939346836820334659433363872476187882589174425538738811300022987534958651173729800707236234663188509486482863054773195639417866925749684309177780084134011933800095545580621058368622160415738862892145038393119749024388289215572577378893559816305291553030153219010520511706846415227744239461009748324507521522519912157793195135818195648627967720055741008890188042531570749552558224470357249004994416600257080888938512658732267478945391443846892385780085682801830241736602673645629198875643794636456026397763574018363834327039028106791817023840618598181004768768290529607482373165847451433508900684295775771494899163203975525917355681057894923652671212946129396837224373495202050189450828561854239669411291101919579247409802454712945533964530121349921891208667762774156535525073992315080164883950633722293778629609766327160761229545408144195698631445347600877887515086989911631528957810868467711462564707481130853313872840541020802218280269649036239286739602711653097763212343198943433773291442693310815682975016940638737187826265306973664682969840601421084427235417661963774125522840020947416540844110108351047893710873697694254902251287815370127719218885293215352581007010080052809198003020976461375855220513458178910607268414328267770817735822176769251009130088302797424537056200454032320652046219472981335558588976463908317798180193715703534455423836093753753860030829352373520554684327579038965240142253550545655466960493546820721124602877523441720616936238795370515701718783710207223633232398834930958596289113147855519658298442910656381096073236524787589594016176623308771422471213627186898004531682591180729063533451040878570296287953206834846649922724931024966393764149174480852724026713550311355304982688152718571224769999455607197914669958738929569127241735413079033454751499274175829059183666474224237681032387492178120915515829018067976624837242684654582625099247651508379606327894489945881031546131421245444012694383359749928155252342461055851556957733930266724461368199689453523586005230347091123836324628068499724333221829311317158387295497880560663412197733719219093525493309526556882296163154387135949809122597831094944114098916761373384755590657474954025053325468723486574826872512165048056678947673458886275755932009656384840304470513861174468936941382710085518109551554862619651172175575997663467299751469491938376509778271415518426240186026643414245977913712667025231430739244997064342470164321865704822713509511031834608600105703646379887190685742458426637617523052257381800902585712471547359113876876884967502365003291474641145142575395984007777344518358804131344734835102020139098103255841303788235763248666667444185310430314713937851515214039997895597144561718885946603969132983244845124525920911162770768475030396723734807677548214047895950785381779021323959891774856838634098109678184278747878755781806587655429913722213944091162546879174025027519577980856977625441583494776293972291911023918923824048198366244005196645601420194573757756556219028188088066954199381698081515241166461220630802083216567215077352445210399747798161046225501372317233049811054364341658949068760539641736738632681457949711501692710101487083852992871713459898701806456870496142976777977057220491095208694468771721731684792802478365098933929353721354546691303388479724961836351012820217898877219532457418188186037623560724188239211934975416262565223963268167584732134874414161623874823049511428065948615032319708925160716035055042919940187964541735040965613521994843557761218488424484269171889161453698657934986376819464021740617924123485476386145641261103073112114320890934900707139842906247055130185162744977314943213424161114839776886410520807835316105912497757907161872609631345560448204426171522710055896259091380130310681777320828639998952960241332157759761289385093950925836477333857141855739260606450690813250568326906539969234076889759659899844367567832077603378041364455915967289808130298208391886968190905573919751739544160476491031031882684507621458948913981749355086660429953340778267997304876139175709650825209254663515114639727205771323847710965455343231369188019072989395546841555111288598532451716035969045627864773223870626130491634941115554257128189162559645839159560884678389251250314922864911380706592016941105770984512787515057988209831265556428535473395747957746860053699974068375636594237817663820626934784536132280794379848278570281555729590162220900895955903019638316803483971721988897732042197273252786568948967091098341120078010208255195719133140578190837493362977153543231055105225962482742256678052914961546864975695984416252534057275264365734785875661124732573897508583261401052475633554128988503503865427008011194690391832749697729615268055043363234033380361057675306299009796545980929856117574873204383816192130800005747163315835907316555535308272923429316482730896720068881047553414498437040940922116954402652856117231067496951038059615373953926732085705388645850684531104923579734911595306784834600136584417006305602920273495446898343417480412814754807819195272714701179169497194751693220124874308682643044103856289674105999394416088979938102713288830394830687254507849599453876676419961083187512075560473842382534516719407814302660635567215547459690565344089910807058031999343423348307035939881472837453817902609836925605446865385952945373474664478979251509629248536531590144000677744275802052119347652849728786793562228362468219356710385279708750498545538010332451497720770246707903956155412281530432917430217755979810044171783334662887698290769485727696935436974141446784306918407646910452021025022497297387617371982759503963050272542733090073214839005306799323263356848418020576195931059720396054369529194317476439004423733742049840928847886685693983188664529247285333048372520258549041857529701735668705683837908541070972707956846623926344996763841444182494508343517536709101883808689397666160159630745050441681726162888134343537595739024639744470358920120197347148806613929899915738722949661709988857847092520135901794666965230446836065709151809280032521297372087584734803162958283751065094470631722737197419229188360730363059844256273582884205237131279920072098184292010656686468095707882859894620594700508300828711353828022778990021747555810683556325454984174570298133115711551905325237154695791056556227388854672593225520681706162660390344667634510101236950775129471437340372377638610917512875658760138140556325600277306470115511567584697728239066992820732972044334796351523038268036717918572717112701687773304636589373974193733075800322219158096294327128938689340493120810306638042760306893381168292670585559717116807573557129094779117387031121786983210251186745980499879091121384999997576777904968564695083843334225227693515819068724249765139505595217557583620847507000659489632966956525320753117600093560691725259272258010167602344703597101077409572242264994827939634427899167105225680037251594964539074480110541166197028166521406994823897738362598923980228060244478832160288692178309400112297084386677589079061172914192646354031585068858663180671007882979944023905118922767032058802306911662260413081530499346882132919991682107473193819019115152737017922241171133988713519387512605454946022410095519879531716615080725048255584999049557157104112388934543639821826990253446806172916309462657322939383824175912422317910502733696840180933835403379318433594977852119378062199484890144151600534257062989513096852090498603458858401481832336989843373255273795981986984541181110097683260145370590755078728643955450383068967676486388391583481680453982741860731944793675143604477296755972106580151621296978886959457722658150311653245280539632083893143711184377347197186630365690118126282269394948793994105410213797508435668876160456836500117371238368007713105499292316205405656754601153889038009918436827851240567845335567620698167252420314295776365626139445984931069638642716365960198566023989637363672716049135715517592181195409061978387140963791142482811719145882397584121214473899750311174323599363671052201223785151259590126902431167582314435872368084439025508505453484117768508381820293213718696553327290317536712736709509325595196131613073059827286030633094906598874254446431242630895769640629775799489407183572372608029172602685751104410805834287946665297961228937546107281084073696355148777541481521127495892302600627339347474346577204084236880448026309443168057437660848003304012077824693924319465112382302976651537849882093100445588620282101769266243264863520250996686681721764004994378613083328437809776001559920240738996575436373864520895001687392735394541893656494952990137763090080704825974771278615008316882837547679435072981010672648472767399349059276503864844110691775384053056707886022338274987074482745382128312006561686871565567458596963070595165792587445711123982709817926421151041351281103441954981049088834846706206319784124535228917280227539261866213152074598654896399669231648937182620413932831436866934495430135048327546982070039175990018736190363077103303437882945977964005929176263581376119719743578402751898628942177633069340245952832978699662337024702083077792025670901558304078460374486128693237350910970201280659268430035806026323516590149577854118067599855574040874055336384131707637185808992908294880660077668165547085992138910780798078052398421228340544777483311656581704614793391817151466555401240439362508482475005143232072307966021991363983927456772255475415802570942916975129397759366254830579421037185622612136080949925603686580051344514569420739783761887394310495436546891454863689777048588119488699099891177172299934238055065110699096098438845958127011734186190130254281633415474697138944710998136291524522266748504335643771899532819261422932818610321063141846569244433466232984538420932991616914068701863734195846396848214527012087788314186409886649356196050819698146121233589472366664515022963860327332747148291993260586549451495643541255656505470548138856439663511875886200569528827130346452171451804542492308611263152525312167353007859942527481731010750316786109406640783717848422246720676120032191882832430747894640941668693429505099298082953068850789332149109235956267282780875519949997326341241471287143659493936309270853500204011939991322067780197363434435474098425502106035879751456251246753780146835570126401094389771499408676287263008670427088451604529533448569198796878833051229166158200230663721210079011902961002281174961002162021541625639561646855178896945104606655321906609976390438773938621322048413746403188470002871443637673751113559350029007589647735174285480667422128373699904245979125910891955023021197311626511094920810306046064934820616012841141411194607477697319336675508208803661441112810759503393684595769218790197748831997726096317683838927859277025239987974644349107293421523942983260669080873965115182625465268697418094358171374404092023878887112474077490547403146884842137247643551662830725008886370601838771393280974954035525009844329064433907306182919498184868443694740098346398251194603517689477671722077244348904325086478976794973410972432952977831407224191654604612565684309285702974988701013556384101297416658451844935768115566580806969336860318491102000463717494871775579545951735362690348439096343254919403143693470676611877214503665623654162704806469109420579330070490194664414985949059218550461325157223247166967477219590635155353353043573918729822701746318234055486483469722015407283583141930011277418738249424612130376878202104431048040587295835706123993979858014559030875647459541301963201519656647300375398393855833472024050940461795158149846509746288653253434552415563711590132091064985879872758321671395387109786443538915920197483907505146724922640897568814872478769765935808778942524137105229768906550589308407759237407809580318633509276440809765168433327564394354885322119994186659961037875388377278609879041407651981428033160329924091458959101365644140424590802335384589783806569777060494334770769727818784309047186971253492023642477235952895686895224160775032178573577131915392126721328362678045633587935038260804242095549630573392991118349216262120324839118263719783484354748150015089715196944397172794597840294392195900595548085079599255290066109203765856543014537262999687419726237352773734820481698223307644003686146355669552632674154285665812774768644825796908897305354905959740357710191337171453109105029811503851898432593314573995511799052142593920452833669591569398590456699250159075443069539015562295218010744627556043560297541490476687977319011812773634602732299339598038462964448335100689339692914108756345294430348771190870206793833376292779407210890199268370763811953244074296935740364106758419623899682148661543259868037689477455275936948215087465633623482838992463682566830318622600463170728396511524876379203309579143106862847020233917325342492081167691382690890260578907336169686615989649814563712595542351445974811963462412384703414419876738798181851984490306214412210691678284682675639001876059357572663042821366659449838105280131525983851204391055136250393728801368773733000231072758424645025914383829379503251596254359205387090410319017616095301965484877423805564584257384687848154173792790903288948021329441174413811423826410092791658112660467567103610729634151198243373481350019638149316308430489352592126315217999647782618531286897913540229813510554856238547109002745987052129369450702513018446748665558128252893990407398173876722390206010884742477047322922617850150266093206036625842494549037755786526372444749630611528110454865213553500554115335660427223798247184565628612787933495743757843777828659132986000940278764232364646204077037170159647447414028542147929472174581800502512090699915868379518410814505441984173969924051035707492243994470984791524456425879714096174437443842682186799707156156001257657192723245110986058532204207478871567352400638690039564568484284826153655195709929331832537200565687742597973865336092417497031702604508276265819852445457289245744633379471521238312386082683986900877370721948474728967675604422542033765709499303895851569319601900816649459127470637056840544391398246348270273494619588797922682996053763738563335419180714831627698830959168339925467197368872640471409268565510816991559930843975782756614955001684585143423087639270564911894807275772073607819167711139715969850477752055733070853636506038153176332702653822313308298528763301783097797966174667242641574693338972122474423308882584877844412775330479017826363908268878041133340293712161832783254611070645890233681113627307021977246491451434453717766172381642465066882088966100131787276863589306775314582494106977544410390929240056607293959603270171929292560156128451160628053051908899140611071475476703603422117817004031085592488550894987418213596987658584867297144215063673916298311917773984048487377650124288221869967520630354408178094442558335347730389522939856695386404962044889345047904145407097156894898713201124651094845781060069097043931226125162654339619782894866931874266818942083850331980145355474592712543069036071676726480199699114245305244758511038638206767006551537684054202202182683719752690130831045726061855303903988417422627735853801660922372723022815403225912827960056205119718411000698044613116383510909311244806434474173228010849194214711589820817182119738241820087511339793124643882090190081476015557421744746158270789109723143734503797916299611966193387279203380682771368015070718391088664308326732065405370112436003611677328374473070392585612335112659041226436157249214181697867196758223043600817077401123527445626199268341858140145242835850301009086813936232032670493102637901280552811474709979268546578116385483158087715465281503172871742402672409987622882983949288772778705190782917950128590978130574508646443646281210424627934934900873297918596276210182707127338007022699764636919829814461378270486108087133615815935259252857197413955784484933400619965373193655505960188618964210362508057180142260442913057347302989069463892268518406235154621376893011662505332963077299542500300486970436689553645300932447530157944673819582556444477078906876659248463323639482784652172205913391937136323308601900861217045154724842867559739113880541191037787026710410164710208816577713342800203109932509353106529837513109711370780243554034474162676056341039883597590318854047284543585287597783671890506639777722972552767303639323503703671966206234898269690400455990564799358592892331872695878798102613251975288474451462730003801719610763860670672254027812890711601006387007609229692744525201042923750547975755201201075398487115126234543327130781050967113098049358382542949035952603489638830728067132618620833505731995008605959047764865772356485559683006640583363832605841007306367580193277154425830415706264551005512683600424045546918157192393199425071010042752316543018846527851060963274463646166202181034609717428077113775823672954888309170204637502547503054043493372800789823938668922963776273343265331914751546077832539071974646742926486743037496488453412918941987918043026156447525712691698988051974806663789003967936422587307211234267304391709841596690294105549040654917266201686216732210766655422700425469406242602346456168423345748171324635422893460299771982570171953733114902102956368763335928398348215227908906574827771616174000444212086853131099880133324357780167654553852222749273363750785682678528531781892941805265704598538860641295408835278934306557640223797049730203591624527286886503841468002267379717515767765667004044724404617749323864499967667132339514992449930904457637474723727876410016293088033710470339285233909691905527413499300233270441681168977172110843970024600818903954892337464771920407238928824545645114415023533261144240547095452936178880996635777141348995624849038282498112821597678795167717185521858180559813349265810120878756960735942519108894224336774138225813964185524717860873006757647133139346939866487442723622534534582252292911815168010555279077920171377817893896619411051199502540794475121830287543770462082385961126526564277713150657847147876096280629438052715529744925482527822144215627678271160548459258751870459220414568326266427060926234899993842869819202032205176962970068043758384598341682590205621674969927296218994052993718942935484112508847868195712956482795536085575004749897202675475976376302735524549695052116198172977788558906046823413064084332970412672477219915443888069921358762688589268837777281782316623443691103197763606975748612947486020828690004822275620972127676456439039546829091824950595019207246195447924192488670407420087369642482665201786202159360096581110684859794046031911379839623274257327548091554901994191729565646888868347240293160039283260055633343465838494595572351002427671330620389318726556986691460809686892657146969291714354228708131570705218216599164293131874338692851891722049394817104431390445141270289696390114016832046576043349830349901725374361728116535882012648474454908260429040945437907960846126908539316475716940803950189656844277609934273163863440713858977299503405586529528011979812414392035884200615495767888900308332296973697983121850624128906480923597503865377420581265238620017201909798418096886474229011834183882004986518161039297323391325065275311131501195385613680573889855385021093163645002516057271436604562701523183514448848980941932248734856627984376992921026921851167684676611630453116369066890316577446886475740228504647843774895770731706767888623157636268738131578835248125911837262021606915590174896502177238065067474187054745191956234833800148319638162346482732423813832724324795625917403776213532399080249725088500576289022777760352314770547950669210699895079579788787469719070981804194767718941525438332722311545515279827667614601735098838008049252177928014750394902638420417086603310085370125518810967295819058879801052168439061834236760748654889564161659766767100459303721192813299882917060059834761522631668019230701706006471089091496809680231028173716017850502426182110200601776700304293805989162651185999210456369579358661650718065164062053686277113535052354318298961504473091567869044766439495126489213352627425704869686124733405609697901374383640885003268696182850572855041963744161752447660053961992829178697819613074455441419492289809528470882592211448318269021782753035071064785523197985414102951461487508087022104734638930189648151076619208302943526847888513342028081050609048922777005220754548608636427229289801948171562666357270303810393632616903113132074338425297041048815193813369284380866705030863730963849275807144979854483624548426418727575931508692049425635986589512690104069904314121089628452649370159632714099976033267113506185358813884231996785312807723725296794804969579827089722112966967427769971708059193141421700243815503234538147938587871815105519153973410069543696814611016653657826457643702268363718272113498386684590770730789540161236473351689308579945977978029143081301767447597667659218669377649198453178843653434360905083809601007137713915785841125262730876381168430898908028235610939067784594780091326916830163116131146435761488774601994539067783931326165666467019206370012771853303489724751987786901285479646964640802439234880182577283216369860399376811270521228351829347287030482154236867420515549800224989866327765636061977810655865332528676446871389742500144620769635417098101350592199811128580403448694427796969225169098275639285072275778589311598713993701390270658184401883792320642565352984280053867892359579152590388853171417189422967017308402806221159336011912559416380869798980343268378199892390977195513341446071998554003913024147587742772584990693611091615991454480553834090684645154608042398351726528562818537400634895132103512018241266463733979155868590388877488576608178037445524256519467608290013353726814491552214772085636938999534173839031591988558841620366512699746280287677020463666817030096314951174027707532466444580054074354337261393999380589785223791441591775512855297808306088028359182567624331386228977850858643706236921956259532287464585710963830478978344919614706852245253650480319244090701766108686954162476655600001001253106190201919041145882877158057450237826015113133577694792533529525735848769631387535405446567414117994431241795071187370727665166299711833616334844396414269526568150503205456919012581381868177052781136693416189950373863033457411356766241955052456910572112019680716285234179405442916706695808382659150673683033767774298153797899081174950404243179736076418939164063430394885973398283455842917904566128392024750051706936055425160483368045658762747997585796466150285519241382302935980214473313538835197212220860770155395714678378892972251050205224826713478789140202743413372124843778379264040490274598298714632398252716494161586474267471752915817628206587288837024215470006484354379050898620416362324869146273538422142809172770896028253091609299938472361274590615625562036458280550336395427364520646467667767429189510354722663182448239004233608107572284734107332211984525173074720078513232912951895820025086260028877098948887709711966392303684071896194189365306737455403878719361833651293588985412001206414914562011180217493931780016378179968867500542696454616704028688250800705744955624529664832591368712792132797804256427515484017807027751879697012577597907400484333353487581099550778301880305465250775867575592139447030109719723744504842733014081916966822937626628939724780754523961031165905632135732165684088411224553191992213478175395092846019783742804531795951908309197370209079137896402112410590869842866259455956602608890992905360955653098747882399908623713892285059114543991591750385656709782979074962243229063228688254480983409808731854867364857829332487348560585894690492689493728381767490384219107078520209930975025239193827578043332528662536428084885300941541180579706322750765302705780262774828581882699196612090914082758916189534046642117362109275365907274046392976390093645481974680711501474846309544327102552875408768517082606225067701603537061032083058801522933540586037247136242344757074629140133087213444471291773479919023047727448762120459521160367827329157513394139874329808807491713493487242840982184671101314607320945739236304872010740258821588354928476288197466523775171135057834213009562471514351011518812224658337164987305551745005599811472490743024588876859574634316306419766847275305359561515604862921263263483183282511900632125275106690631935381549472098629968454615199422641078505994168545214156263086951753020367737132923423607954266203422028465014327876370954514940420020692958989796222566560616391828963061037017045880351477878645700778986816630596073175347977219526126982966021443341085144387555625948873793700775363658215255954606885949961267410618967760452833097721081606617633701118972640394638237873722278149738396893555950242267522023519357687033000029639890040717198337066020577825909743765232070070882154567512973660224458846212547053629968182983133402021093229155706708655506501632634876308765219750168459059266330424607589386951525835205729001682603733939919198532757002424457331541171120036209818507676535252096016418182135480098039220873534437738948422927000135449287515943794694448142040971562429995189006595957347078002406673786559995629917017196689323423100038709027276039234500817323359147104402677474539333708777007541592537398114666984203766909541435300072838806058001781894578699858820048011250065247570394179021850921230174191802719912370598108842561254784283299677865982345776977736906253674420031717510900058367831227227576821772242998137158646311961585469768297500223890658083926163225228006769398822680841341226641404474043238461793005986542547758721218240132951250644851418296446083895508431413648083395266406859644867776461967548767281240899045538766705915827125481165176817101175961910934778348654552738834353999414776984891218824288753847803301794940403548515871754968483439835842124985170531238888977079391776307947012080497435068186145412636979566415058691474292474570191355140458458550445997740495137613120813141821584073579539126692289602582064040729700762369948362443909602841674866855313224243993804966138753339728949539259909183843934382412586019717984911806004516982758234732825434225958565368042851270177256893696810812311233958951643075303419757522886084771762707325801153651180257743043608229138777978782116188998560037242185444533121317558570415549340143538868916848344915874853188875235319800871991089143170553883263013184049684754675624341241672363445788955140297658705006807508229302377850933450229011815956392203347006642419610949856102349217084790936427570220961678592354357564837228069826535398178570803711951199076825986752772625294276411447073692882195108599499603606510633556836874520206795475802484034638567010757197749073269812624673140378917354321158318985667385004673819645727586202408950847944544441201903006292680962911355336842721889838338118329737836745493825209179209143723788900943007194120490681171061694615284150125689020388430153431772169563905953161739410297143080608156235963654440660349354658448841611605671866137542660905030067090487707225543894460534998975912879840640298327228801572023069603414971197043782143787601071783547111551938255461877601065782270179822266475103938386036543579778857205129903833265148664334449121913003470385968629444176606375991101704269470344153213730064226250040583308654625173361213575301090541851219969627653629025865230802212644018555402727522942968370583814242632000739161545751579816523301195497716319134452659458203944197147038004386336336478711420857694091780284261550022663772343287984519388936259485392685534104463397187108291534239740207288212229951426773014652485515014930702912309534849371387492500723124718319044679672511087164640299538011341122644698583087478755154431408858441902608180847979585483216022913755948596762551078674831332345930046411275150155822869472959493711858114782924613047933147501371023733701509662856915630752783135686983050853229328607930723574417660280863141587634788156251772416690760514347101164810408468727725057423510256919863980823517590999360737626596869913539760516624819248643896212932234435873958232139595673040638908287366543386400531599504424574408129009779127664359311041921812253671266723056994662337003787794166429036638160840548014608319803775215418016568809444625805147795350898787100144031872333120525886142337686555231255063061385437378462985402341391561416181904374661768876584104297120501154874932567641435126802098373991089186235954648738403537136979318201999328640761661456002039506515799346507738309317454696191088198439997426605952777792371777149800679308983647374592133114763706263448755793642331547273823288797105889111068104058296833806777701142901690994574624086973270047462618594802591818546908478996985314586679900023550787720851584319516411151727250302009118867595063242397405199913552624926684879547599958145695617633084235826558069684806097326972215253220882464678139933813594598789526404039526035606850261839742113470840493372823342427094170067610844372034065640704760073357072922220091662696502306107205200624583411881305051453108646976290754388682724912606552515751287852210126641954746531863463854296014025904026397417451172569872798060381905206714408633370155555473431189106532783584523965391228912522998427887557066261279176853358924978169686678706738711608940281100137931897506744030491373968274650922343716194814167942916423511788512680452872901556184454503779543994014559326367204769721176307316861065733235228147018491821349708528194854568496838568841217889336727551526977755681643312159289277194413949030431665821876416636788208503464319643179514894015403639240282338057948755877044974870030094461804088313782296599529026374288254453851260282843366586067874853378562679648967704085181104964339424724127484485900497686091581725467251689356381044809021083521206814732258769662054633034444805491062051690792183970155810146998937702450097828613349110355510021921280347004066952981370928740066307116369355772911377334199017366750075062333678036716346649768675081211832908105668412417419774649989299462922461343665970760886738087454983218876326448012978395906179128987862691473501096856894597853278473025529341598739486831284592309949561782018053225679503544045666785647459686220655229100619244425826457713235179489910027836087697455186979995756020380925850790153420522661813403008757318244226574464104141248141680134903594543859386524753447161965197967027242555999556349336605724356161390446869350363532110988121008680360061071543940596854318648645242984227586841654268623668342749298422518550364480375526682088093493777172361145698002646786566324073994015716751733931080223319908963822104431833306536407323429618601586551077587924006249491557138942639558019153511415683659489874158638602046551809700331282726178895326570762212102984525232810300780103719728342645221514074000274344182837856736900784141840884029732453119012020763316905923848524088038516009072330262267407849994774364780426424346439127317854186239713752433117840012077362964002922163334730230960459169738006490083301094225788701066959151621863447006848731111480849184128226456790193075639234975259126111558691764509369298407835057839111038145145909973979482605919531690030998320861864174759839884685815864377533211807128874675289540904408971123653645170162028987763176848986399235067088791328693202764306275718635825737590603806380345089532773633036332474275659709703936164702193266463521702241416605111863058285669118966151923004938543160331745063627760473658079439964821725021471617682236843970139035278725009483000960722301103684260276589510700695175050635129277223576697426134271382827746793024979145377746125649352762628371979128927630956119181280118458997006924890052670765710327990498992341654493001661509445045993583036414514943983256622170199349456941708864766947732410766820780130638053524260129604759116555188797416290911786847979484406832642693273888041548025419681645392122145182697273985196679653440547164592386034132702830551820238198724803983833814046051130858019300763084756339726639843958256907437926961326985347311171209329075726606177414419179606640711404056757133423727491845292918522938426581480338097852681409981432321291040072071310787272003506798890563553309704961207622412832796685039475197991838460877495411868568856545221960292385817142805417137242307329525949577303755188633075167129293924006732566033693397129651715856275864235215286041752906977632015432644132442980326818746329842212171494723467092198705414448200115334692972711610501010020007722956072800027154966170755796689129845800476717289703224719701851139708832563858156229505550746319585997363223811541352495539350062727376904207119596247433092258666752082745694457512936808114130926886403419760601963635820587773322886349390961053940744487933272949467518822137257924173965279314875552981408826796203274370910133636377235715074553008686898345462857775066526326239723885280006014848597878182619174004367512116859121557910867717711609527052701559261022100423894528218288446795133690059123627596501479295025058652820879680170957533253195750327136128197420596448964349652197636116444878205669294761567958173716863240450318164151943014551779275432182457360824419371866310177085227761875399524533636651846809064612281883389925564103568045447642148661585017106718947790159908007478362214430046667504372239076151143808381058290318240206229066651555319469325161195578085574344228921761097949610947326042259119247175295562839173286568155270583619908900105914972047978026006770962270640330185782510503191946689541644057032904700017101953742970957236761711194752635357574850347468639397793740916453772623598552708314799811111669711541189595083400399352616560799237121453556311573466450677522479643649674969028603349442899590291276652925731435633013001639115820563051504449662677906872079508572844278760549054938660059587906263607676392795036792994083524238292628734160367774200874692680792298029273744167838915956167110253968020365007213831029249586725941946643149508335288028400261990947698807579657201002397610236205191925140923333464142804402160176865977833401111636000787509505690771484126772047971291692556397110663656690059760820339098712499917169673931289389700810252841179427932575061261989578182208242707970768782844221889421743797851524985606362455922248265926269743921106173059661770459869586630967125733051926968556261692342194822767807266542957122116554997631772509779892739672903431797052507245748395738290300662471074062863312976736579570736904541308481080051202684486725075770657202657439786901398219323445570483474511859895807347964108039104480362152336094515327867995746172801431092527842159198843796550352464504122955058225917372001988113829341665438627172502438184568777230239526137831662021456507085061283447699721905888562872071533746265098842911156472107036181126139511953884004450657469764338452976220580265519078976456814514692269962466661346528755464450961708669316842859335469313677912418048368000908497811364865361902456881417787635346415484644324621252758496556313639241324530643626365380381108274476398208161807524472238518357166192420986146864340926413568880058537943599725130541945379612000678698287993152396649630291683136108969792395423198081655782852658376951074499014952396882842814821586786312210642185982364635181240886733298975234391759953498554805217229742256658285595984555934688469052120233799584206854291747958304166627553578846962245921909708861421628773628497489345279518854773021468308001094494307804488375797734704501921304431693597074580071984766507732008910847972030772059367479052027280330730646048989006803662842436752839951553386039386323265955741250210358653999438470911136250838863585131645151925606424589640249758451332139507377197999356859079123084517073659785518041740168216829942679433712414789239246575863513141905533212598246784548622041866151314835230653616856996597745498505248825665889084343274483255835412139308877750319858522279948471441672743181327385066822821606232519938388545384337899713947977046070679425333895009626791437859563559150116994182854857749508203105413994940406468516403057156323266310583710313071881031762884036215658191261361924695823027549799489491358087467434384912855234767594134347654496305170907085280295388246921848474750259653207567342742177559008613099149727629329791652993542150156328392190379959233158450233228267725249381152435381140445619277434923188183661328768248928017025512070061440120938467216911242699620627571227143046612152025589380562032912124057760603795653059662703863843362727443630447556870166935226266881179629971602509022913539248284025287020726426984817067325545172239840834054790841621660475709566883041452604935004633052999157331214481910426217342075421203772073183566548841978741693954685326385230805759265153740991073295333738963611797252946587170575369249130188887252094839845471776318943945987663034142735988952153558005169146387798429871194042329224763498872464299866766425783878037904765848858726470977534647307170069138558184962488841827582428665543458293597287003387390272830264542687473240788321776534937126672719684910677822385765074254315429621556030973364574114056722655693342842176554566428943569477257825860463154819879679922107642658736072629683256867854364733277615885081502245748373144209660964374878055850707860466136646938124842489411311388605625800738354778260415338940620267351837875902525736269202542075342279887521361692680552843869507054034583443337842281175473534337093294248553134883716818515326739657702524053395886720054821144838250269505710780413567096043966147334978120464751767286759198350135902599902058553739542220843984483195715176547264965554081412920605839366046773229674101498948392842534455740420763346261104238937765222920969314659661386687399987547964417114260624796419509749716746358834278589767501584303396785995228508602691005939333296069797570040962166908108562055343383311619275562980398922686933816659728170188886343898718449652859624368977259370819071097388344365254966720980909571164844714363685300226775691826674136835961026662494323362876613012574601339520864977899346088571566672081318303166844949794186925219275322967956637268595784652683531540906675000749862852405197498819957055773304157700175341506593247174002933641047071730150055587105257559499313536056753302409065029159064014312489036675620110467455081636803690209554186740011725070109421677466097974395196516325985633982526270344225110503414389252253356006194475676706644918905875052034128245980413946098148785400247460371996162743796065074659363786693529210993198803022943312421486137244162447700977141893283915560957416328895905059672461976483750565474735485506172172330269078780535903255379557631924239350774024100125484649915627440494696830120445000191662642272840733532441318607530632417738160837030872632390375097834740048252103770551268300875330220594279605271539968075769077192421574059002346846938570821225540373444016160324010420629738279743891484971851063675428002050315739850835175676456064529171686650545033388001222360825931474945435624155577659852046669020500344711579338707630782952829411679393531377041481297759875498278228954734191043410435481188468141793260849979840369037308918010559554089837968899744551773855316272081239100967090024967599079233240662440412620296007124934808463573001911898666108300941726280475018704939043718124128084130595065707400652241595388215212351181399320198137777708632623592322746119552052822214289888769112918117555549062997571775536518948831035947607453709589842324140616549704662912530316953312117841453131988602099071106323773723760525194452299121815629558380185487815108515064390399925225781531641732749710435083605396432847097650216315473419053901117083333149715159683481760180229110378235986264625768256355945803312305515240470956588468937566592653980724398710220676559795712135784147518203893558494205256256404766167649173411325157283552893110366698863511181733902479269276859392843183743100936830359932613743956504436493597612410361882863931870539102835085581096222060779122949521647945527351769565870356290677769396582501545739842326076252340201145620605617499879551734488187719026745056193506107556378308500220659949041172000592489432666764356617520680293193276272584559163572244086447590962167978605703384461666076069829058175204373372495873226801389297359174766863838598054076303926685819271077326674383972496857248280827081114793532329732457576723588934396676847161608339400217457242549564922188286424223404812797459542365462637405683572114882803647574449730711644998950102821994377403706982888246767161474532263658141375670033936298718472398374697771819700017845795641124338051004684020152204822446599841319670027109979888653331784011239212123966139864975571642884113105443491741715241304361369199065720288222725846499215196437540734589983291775868264041151182972117297173837164240772514623605242509570332745469088894733049092517192044852465562540702677955881371733309595358782695017179574683524632624462230060594244248713165736774191556195788285572813138458753578666101926102122022029265797508526349233006924440437994202110512222887700852916931594216407571575747797596904518069757201375207784085104296254860056023818405448931002812102411469132657510218324810301586955689231455424360907914127410578847022314772175648095956510897138129268545382760696740899045179513613524980957126417238702452374808072644077327625882425271659392549349613720649347349054331580382617477883026026122201378286496368195801108237478048780698334171949580981651838017613695765607430286293736212409031130242351453881999640785845871655113062233718228923753653990861479259369406253236658832373423651842906019693113215782055457012522497401590749895037518083325957982787547358534946191248672573023122179065957479836575437556626595605893672334222779379981927943508275811205768406051966674966839651015763776085422059338140468177976789347979031311428802458773254301077446484413945781168238526846737125973873531777141622134578484750299672185614104638932362668317713563415162066502792960161572294835012802332966097269287857898899659269902423366088701899105833852362869387355468946566577991709365835024029404180331699643686480606890151959414955297844662343763441674373470280819621978274958545891254400295765784175977905476387028558339349863718250132403090743035892527714321821762198025298766668012087332647992904196436856919849188630742852225004322993164148616537607746710702148056152313817338833498725338803527985134014257437793801379706317639511702790439219650595781714995898151516205967813183835909851123824799155935708806925558159306880636519890077889361196360598716441598104001157971178147918604140862538074469895659915346080163485101536973581474673905378752595736607436780104819666703251981830830334701389500067026319462661349489619790262835792948462930657065079909885125290701629928820619809609844991501050652533889970896983745122897311932823214072909507964451672764271184180953414781590491174883610661272453006090378231251793295517587580603056496581592121010171210145673597375122121936021735155684666692842378149511061080400514558293061563654725022522073894338320496586648628052181684662554832012294834386948735454148883464825140473281109835454000810207301278760655143763036775107865432135332826543526055279728303942257142842847440348512251310010069763927550066751641302958517700884630355246652411545128123645655117116302368074780475757962901685637650236250070337717741160603784805448816414161433064398397915822709093584841386899623236894965122241086304548060350007691551721011314107929771117142128514936764193516243619721694584348827327687851417535217858374147101702261898213380600502722902250802563817310644882168347872007196498627125064164338728637270169966540926703716402406869023053730022019391385251325228285075589522460843182519239601870332307438995332582372697523623731360358111033504491303130915054827829305414446863658621418159391902592263987315154442608414729825109317269884881916365786349298612048573828156608447487239495057919353206894257522948205057532101671546845748413233660434161963556450803948006213245445153307367756585095766267056232903226843481614940888835237579001735536845544689197998680416236282332454646606888475748397990334067601986334175973019262854477275353995390330061607839845643997332904779011046932137386800260355066369026679945968820482921153027881477854645198131128676407181694526906692505575066968418392964624204765687765677486580120080333433526365502131842641080490627819850116638411555599518031715240216229334525145947213643692267138237619933044254967949906836515014892313596525571615017628221149224726200315702040920230433732700923317656827163564137823000497693932549908847970383413971323779061138273477385215322239479385555517949593805824841991847355409864412920792075101728302768818340149087211460046060486153592475848041149115815499172178861392670858393322133330670098408346209258034665612789968701609367431079926727098505466284540522546966536333639085630108156152316967781591677497993636971976863975897777206590665058554094491762040328035862784743902447552724959527724677254802553568023587286758552288154708062349084171502530327476296531530333712247916573563734048489758889741129044576329168895835504120497106937454858617451992496949112776720288436759301903705404048541281322677601198858614957662109760970498133065715231736571217879650038524624484187059803851919368158951628905971507419725743191950442000282395586933566753495277517946152189970038353184809662428519239908743656520767981286721428659213300703727875638673609140644769013479926604059318832968444692658940370276690566164967076147430709822262583607490837370257012829316267990631684819852731731172358183929073600945792351318399715317936763583728353069750663980781543042085500934536513301309634401637655615229762617234461405942251721082621529371475785587620764355507179240693109108994548400373719617557207835062134499335120978222048281531107752198257499447932435032751783115683625918645372253607375697686835084205162416084981481877271702398145759496935026503365299052632832377972421280749683812205479427580455527199065990353842353617536764519109943677764151843962245994837500652750636060335184345453625179600626797818080139426048298553485557768529087729514383418413176753983679613422205746900363363095405517434614545798871933105722655656515168506287113397785231061658223719805478905150125744670924324972746124101410211325937384626758573750179745726564145288077492518042107435076168429159732443346040188592445831030639269610585537167295129020285899227816926267533137562491489970349644467958420180502868667613574370787207508144092931937682563160758854420068072283748986663842815902174544472879295748412416273800129277061933579953834122186557349717358056504067350440439993781433726312266391339804454685266449716845862497415843136713568292157669315059491288422644661750152969961817174572233101601041137902786035527734918006906479562759710852004587101069739219375802972511891635504463836102060086848563389677537823118910336292044351261954257856899055552269018583107235994456431481443893030653820930245202968195713970448436608643092758045815653634580900562451170562350682634093729725048925874736359143209984534952544584783328471281651622962487016738208651524252722686949848429642311027068574451169284867860285348917694306570222973892220917651830198610990739785463533339112519654983426595601356008654376179677940732568264518296479740492253567407992570718316588929056051613259770535765815101812676195380608498857265621444629235440363215217052042377442461633055897788113096591454095925095599695195278125992726982375553896524174550830607827723333614991066183318308707329755047600723785586913283637256114345413247295379814683585941733110932306680583864251866576676281401695787429536797282878910836460247958619091784379634631767269646014853180087921569410834503115898515294705477187272587815036006875360716678525021952232214874758271280802266687843588072335917188283770893386293485604808537224862606252553428341678078498992835174518205774080337376380551400390990491215703647784674473565301782400615499763259613425759704314173046259525188768108992473954394649665617985084083943482390746604131949605546192886264296970995019019400343970305668658077152267634912945990164518182332974779882989009159979829954065423286794764864701362047717053617314606114438958526629982148475132748143451012198132078225054512751398124375356626599302496679600547879113101180144395999542818244593367111646212353689150454716256629921900312636744635799655234629222798595892842896836114527264842317435503894907595749994282561127071316466320459066999736270035604072541625078664286235780260385756976579573198303716278680201636574339248642003126327602313459854020343610187177644485201061768946525437150359398063721590521509860508808110018727583903039827025323066636310622361583687011283800760701238152261924857381400442693286982777646843457681447517457526270164574108461535574512470047390432843951850031243411869194480211082825278304215899814356501681974449637285285375882447713270603830059166758235447364411411658333011306503571254518556326006496748152076610498321435238835182415940551314099989459240679521854274213424801367769046743463464197792026593048606046917281104845092788876146748168634429375935825341304171605383624095992280320258900170533165227858599185708182567011558549761805766156141742266944216641321477177062475076693018686075340180129704698303692286489088604937404486248805015184254368278792403575637044291268852310498912242020233398038115089157720742589830698722232202299916808678342602109354599703242280913867741682350061431491724245631217378088405114348138647834718900754749764477829685217445216820018172798349240159026423870305512690552847687038688509982732739585808474407342607357840923523640913349211022011187349183699293685606932554107324498372353385934401429499057473144218296986576207303237401858316008765266134634086257430178798100584096298269290732251930164636673907810522988835899519918087736842707388864510194290930004972024333077696861485402832363229104670139351404437435203051505493418860091175574100318785420917818234434316548938234001060991245531719101207659043971385450506064179735984428764139171933888365117874984370703111983676163469998913845965713925504374043207364972762714205385891358803724213534468581465189139591809885551644299399983453385673198156542861609263956759313066130503690798327178278699012528904845372313098344214986405822942183127685392728472116182385342523948788063937774861381549793859029196015635458498575710057147182163540074730025261037168483528977039433643555715792285755694537823632556464959777368385251198884340103198377788122593842938651255224117229443483856103658307970950237084606732187032038702579209892621320177617192184764769358069439734021376716392255117725023402954366463876084712187744405053139847503645552655746796479977224064063976334222868833578011145001383721409911149588928972816348167507545947688621123207046985008057869804217419438461895003514582469359375950584528984494863932874392677010771188571305612980224967545855717034637466908077607537404977457484134105121952877095620127846088887104216412546914991801013513684562991030620106105232284256565286287271653870863892853213975629608850758271593212206304659857085820118805081434265189984822136896174117584973725362312821079105348289342627539316293235916256129222160824078877014840506169134044425591405818509462379717877574588494605218685343335578010107349431186827283756039928949062367313345613621614659477103675524146962040428019703857430742243308645451125383843599461467220152419134351709573341843580542591585847587061864110525867547049196767046392201706794310481591706689528072456734949559968469073242693083238898664463142921116573180464355656746219574679779658864356969408638828187777410292101956373856134148736573812787444185038104269559091615282937785503991249877017460387425579052243630435670745685103973668808445732838523642479540690271724131127755363048240457770725357026240357131556171713354044971953325586409868789029419855083272639735012280089587355883264020217058225507813433552984664509781925731545144002275994895950653743740202897393632409509916688073609594063272303044618374643987391687243522998965944691018138971176787937692768371263862899883822295472992628091535335066404160721449030583130243399962193296692032910799967786931814748930854890641345297063835696760334711991550067031712312777258616061927863674283203015978339990925069712441219800084681156410611052114793026022905978486818822313337551050629137111315731661376386632096686035868986193661954571317728975613343426090826812874757785101961954745458462673970283319967684142281748294198478363849059399356962376861727591121126655343126465687442478069892095979685155180712442196885865303654842242434576667045147758551141347065649078509574821313613161994956077491927070287812385886503601237775818332148878251961008913862440538281615068589016124980818722899565474775477503243357679239222228183599803349752581746127339265744838387297376305353867396641141876580655065974178934631594557778648761833114734190694801019758623607957402695975735106974298985381544027404526702998290759029669060141518371180727035979084787451995357401404553729863246974775597670874122403475705060421470526034926396697545279849696770041469553266570337948708953973369941541395629980051088130113716171017771733047859346057461176528141363072196373884668224048368291879935650801217339322428196849828880175634008979575805697004578214108807371703340080750686508618934816209792335499729674853260308758763113280481175872877510979859861533365910749760830043065490485220590130338714167318739031875089802936990420794392629004203742931591469271513340923994462048203673642124951310127567268950143762653398038148796352132677383765897098126009234338048882431080698111439907678813709324690145420423284119285159045673501303453503802153248201716537180643042016393783254931625068980056620097922990175743834571695721694010736147903122994485596724255625988221949171160706732535580164086594714232961298056886674254936533226001103783184320962272230566757971071297630801254917486291887451526639289162148983264554698512832940186541691155790408660584314527347388727118456904413208838847949653387526188423886098740863134519238975455467299368917082599360357497123780339215135075069764010069612000921811969347739183099181778331449885110642740358469411522646656414925525378571156675806647805997644969424069184303419300242861965227249490460837569671379641928504033780000349082145109715026081596988011396887942597161342331995023589535208693443231507377567133128354204964027959504500934604358162012867528001714834637933942577440692111771446189975781255052892496267967265943956957970306343162361203034855439616384185764898389456088023552943320048941966782487818356808133241681259154918658495207274826108105953204293284765870034005840004188826181719425824969853511472053175340971955247010615809417119868279117267709239481885306388550981499976035081532527002681403792792458192106606572666483551703469613962675251845224735042635711343339846666905606943800286038962372443348871994283530837915539703948031642278472403869631575540158093247306252513463584117630859277504319956135051327036622557345563340608237505346820821376837878519128396536626473909649209978938981863535753833989775873098701230718167325352955612130882291981437057439638105466171239426892115561146533161742273839824379302926412233918378264315384602752725580217558547808276792148806976441970940794104776313346864505893885539873639377112603357204963596997407247692602096387653874351649034489588317094256464819048265530387594139149882021842723379433665228618255522043883093282108228398228095826944448990137697142509738335931057580955505400895851870691914206511577593128736541655794951717161185200647222395811552428735559185234501588656543340668279260077898133126545320150708170891915200766656786575196234526587955768352731753885102748297138665324825398952727740263316365038568218767791053560814490006110078549039208772471964790930719097498700359853794729745502574853417350293645815111158177804815718085719090470884184879275389270841897075901696628093405880502401226927286524945473516919326653153979020580105405748052798363599143708361969725626444402044658980702631415398638271396124211774470102317516617902353698087115683936994830074401877058556377167393588777697040992328153340555520969279575965015008074906651635381808454395895279276437170562195531034798744323720161792573997617402068273974128462379294147101534196382512632704530078472073812921931781356793174505870184968669646738678249517537392422381604542748393948595126868020182031705280069908151221825285235800036310448425100967455751726332636310621447181502029181833956351667599093927750446657974126513418904113393289719636857877668896205040668571434380217896169013936212643298568556240036092634635904151073007581895686478020676150671416619887809472311523189394658486660276701233662865637410210257222521089671045349456484566042779725495354356790383675324729056432648439835240210235381665688834593872006065118294789810245270952140749028687892194561845469353219183605659643126554623574890380579104870811718623452602619711052353348190092042955494882890422833626575456288381969042520994418045518328822496246588720550409375529974850781969194542806454853599458311023487880666932991307276761414662189431097377476542625273711755332091375168036180890860518572107698336790242735915371838997220443508407346293649515187620307908986916146830081438442343010941898258093560276157433698269697734852065213216903846997454136548335866573968217625284962996060096509088914606382358727779743664821982576155236240229437955331699019776028694787592300774371591825869542809977543757311855546680383058345190296201239848683804292145136160764819770855361223942195858076977357001216057650934217587336317941103488184504055750582479453883696790974870462084877368672737645607250188171029755010421514532987327649910743844366145322919491507065222210354572215043577496246034548423125538803632840465163039353443301287512218619465723082268544486469230956898931895027756117526817059377474253385719143361273053530216999443005310984665580255837290662443541373457880528123965341850839345353406342249094210917699935691431899535463609686776925209127609385250123505427548726376874458076879104720994008246801639427545799362475791088170278674536309654870537690516111247230858089656861240308069359641992344900800407197004924774358636432230389064051605797287581910873730291654082598040712662223782534519518018471348815982523961881124846324919146494457735497837846210334262540943071975210919243833497418021405620103139943288268667647291608802227755607927612298032283134835901002737942687034137486899150786187909365364451928683486532496535470271194591528224545645620522108722115902272023755342224586150545261107073401132853092567851684857877135892256523399785835930351073028707106953337919381073502051883005227674195515207146410613583268600605290868768360430425564835960838773966461320562133968311071224537212813648221281617192235283366474370324474556493052412541286223624531223034447019711004707841192979515581785938141355591355107230550681087639087901191546643248567728404129485577612335549119896384133667531186091647915591765936329326589429667187225530984492560933770182948028762942906158578264161297168669633312711415229706972680902913043204731386384885219059650585624542207469272176464474251860431864380883489507833898273270650893662715969216987788515664991493277260851104066030734573301433508658377550617403681006125551354127728321231427876941308544039102565812782919424602828511596281556974392308546950914440947036220426805960843889036586490025838110158692940553890762311342478315123761415280525312795101097580120630111985067666042784648252516788489796457864664806164384905852342042230630077150256978256349242117160572344956467488335043730598437028143496443497197723341443556570558433661753452416230607498743737101937859491744372329423000737864492187499044869085196325798373388752923845786549927146654278687640231837865836653391766757527674912734156584211410031924949669301600576430089787865577953112940246235336428955292251454506071203385446682242777318515285525017213113503378272072608866891529412707569203695169805757064156169615983760351226955106740001411245588523513987882143547439553936710011521837352072534877945154524214357782346989917055233242465873956400440278453282578132278197257179659347098414132065811044829153897373544598881684506589259516206139606117914184702876883012507617655015449424591236021645213459443089593846294872458314911761520103061219153711260199960906090683391274349232593205149527152311712570721038924299949990347815196342838054745723902315072964230847669653250634739818753496416153358068167921269733997558844540308896318831623041194330745206284905706331758782936937499165680275711822799461602685511556548995289818030217479416050089930221317661085410980237033409597112127815308133915209604678903588494390026130060249222986222673150700056364315569180274608823829433425976524796386359611505604591388727805304056117064797673938617061272839087841552279242628759696717290161964875724715530592384539953855903090519534744657477605471265186524352864376225133757056632172531002813191685057425746222389021716630423879558757423552040241904569954295113475231571920719924273742963316425955404933410212363605182173228336203698567518259721708008292266681338998430245691639308900018440146500101193658007016742373480344990934900171528712594495262505261739384579781469265684042802221064815881123184106086641959405862921840793332014226719950721441906801071560089169886329901867486504030781011553388493673429481722540983286854686575261699022857598179519831268714510572662822134932703433455204471833579472548224313742725343138011022584401949695869079630357214087927987793554837621600071659482300808251366647924652019278424721657450228261556397475198747487385043259935639978791074584803347945291556627131438412368981611902142527258800728697768713134118830167045325416369071482806513224165164583197584402410997252398001836462025244604385894274044368480962949616018067850135368661441544238489404431925516572894285780851562504856031911720529195203375961837233699923840337293330283465204793320702751959676511102211278494846464035447030289592195495118510523285480373370813616896464239951555631623444171685274682590513068239566632903001146940342961706556520252747210122425727733158069983053807609388864718303500057835494133742276971688829557909623342668431911217680198767939956533941280202771184123576846174408007539343827722734978102256875880922540657995970827087309059520834485611449855687290689381547552967518805595202699774577914709056961951467817935011107847939726994525939783093295536487255867114039148632878853303472288922804081000148639500021881689771816626052291669585481846493628733706795626721877845168103295230772109413648336801495823452545041303704834875974649976311948146719759457287400878075838076151566712879965503985203083939617915441081915652022347394787284401019994159569683258620620028160379936700853575000853270474610021234599941549810468478252865642759678384939465694460015602134894357126453728856664580281769028884420698495792665856864105148460090477276646157226310400704591693012543317684448768823955100976466914727306716919864482470583836747258432613266922280566581188929203052504765166296425208716200058480590706093164231079617718543055267276690410708296522263493627004633604418363903044374603280171033065266494090995883044032871483483829209440033867504541634793523256191603452205310605511914001211719691476401122679636169872137575415123235923719263993014445698570779645465734304658040272370313525037209458643211868081401827496203951334140426789118682807424429024496615435022397352941178367547654221940457579722642729395528132181452569673625630000950203191532933377591137363216766464327022807574918933788511285788492540819818311164416802419451615410308041942504348812262452875306111836573413368076573383441517429087265939295979579962884585088501824703402910317459813981178205551995960199171329111108734939072937496510800542676176729830979649860391629544115529294506417805710796223304627191841442527252785412455472349098344710746780023431535324426395858174488776145472156147218079645104207545088066124995483415410228766954085531068090217533314555616079227440377295488080475703859707265996254857193776968905712884925576310319100856428451827325689915574044923249671231175019994220143194309311605224057794785555008957371197277538695508662288797885135152987186768073668895024081761791522080980656050543513273721591953776353979453203022020988161771365100127874313279383967411024101571015689888968465512045951271995790446111342561897298888137200818041662366878859731101716088356751230752961171557894916682519899212574359026401675333842001020714939470379607832454766878771295656471020882826481881485573100391873655879740200138117149321707586078802266225191445820150450883079615527103831108657653143154378239696176607836675913786284747519228060220685366166169703653697529713269880693878410936052538303130171861031249404991008458481667083840834065871233451509655443471856875032738291870552526018516529867597989451695938397953824636326282991863067531563550920920605729181115352505613303966401596751930611616490034865109935788478375302355874889965264048265748166865698310272129375809275336133661669836352618184048082969881124040121349168929066712583742107313655236145969552232326876569109038170053759772593447242530396586372954790475029041601173056155933462140411137395505795525938887864927565214686183273146036352021613289265251439694992222410814520751990088863905302517217822688550432406707162744005927781578331542636466503802817467939351143115941142080101889981146155868031636553495510231867720435385201198882125987016238052873601174273713466833031448413098705487566613366448467480113808571142518427571438246579988381969390421246080221835285003324946524078272884057230056903227891840846014565734997722174215142228003192109884663192929743596239615676187134226254002249244535819486495826161724533134087139561027980785122306012029279245705055249267051033566359203026889397062514680651144547915715100571388575687187262386500874622037045175501636367047147987860290258041011483989694963798764946037024906314807213752831718736147196945158968933380201896773958475386376605414037256574992482681824969523895629217075832141347575102228089877059945725919783366515818797216420543201602748081789075457327279664994849331454073862050879864926867628617363403675695069294705618944337103519726042049524481217878558746174822826320950339619190863036472407979103540942971927858916155607218856338040937122639732052794234490755255915725924561667405356804309458625006356589392783729203569884181403345286919600291460737784647531003198150256359055558772795747066276465936769873589993711328252533096596844637249849563330163405386067535852196373111030048483961048965587664439365238741205381830170618303495547813857464584538258774622162743884774574942610953747507542816828239039303228481100707575110704216571090095057339065932991052857704030007412488961268896999298001373399918492622435531508426269149205187549391534648476018759588610073320469366990509441650493975415316367224694815585071064108132207805181169678624324781856645430257444487639092955679601995565516208219399316951636346505728379001035118283780983739077366514761002386614626107439122431371004919428615527875364899629281640643941207442193452505031681075877711160353215217155948489819620419663615482110024946468795084166044968825367200030770304205196918775429073468180725349677163033149724941362695919399041983448205159699952985721245015000506617250347399077704058157297027965446743018234000743210348497793271216246361165868366238522758712762172683625436862248281321703961937535692951839534364590345191245452045074217657585898843605170350450137562480395393800439313036840171285786039954532790170473520562670423199122979350220028361975464278423002371672271486663772310900578247670982977130317704449920260490508262904120971887772257175285366207511212488439102900221448809088727841674760189605968033180929236535039438509298227428722042036051268530951095713416034192666538169257255720720561011084119176669173952690712044164449034292545583073245587639768526541815959291500748821853635869931337658730688854012835767445783495789014318796359303183706499626910722820750780005018306222146459402170145485359120594051018810503950925914709553490284904295908557666331437414267482789743564592121944145958660272129168686267385141382933739396073129471779927256780292541374445774856513163677860226549333700972251847282006757328272404984097099204969846786799834649783185936065545309551348813429567902622374015959774116545064637055769524010670680097295826887566756780445499308470425386803216778289412804566745455828115513461439845595590965802459689584852681853906831248848238713187555374315919773559279434995627153900143928269628802347769649215389310912015821810245056654094912804735874466194519348999000820798521558459294007955498349764833166195468991016038121229699759094384864032438979648906823321906601786810579322628339986838495245900369809926616707645477396163184698604619610285860378961163951844470396224292696202945732370906374550278704323208446396876476910286052064931504756463143188799326276944319566905578117485515997374153601826699442874438266221521220114023732800429623018152082872052082079905022221964866743605113469698542502655587902011921487812855970059796919879512031747914391578846853463805139094164534344916869708545692752067959136811913605021480151374855767313642490882622554963581825071434774468820125420112170537344227178388781338931343809184772124799840990399672354024157463112745483669500017676405954036307935267890432390702646137144631054088307914970394491718708304216915125831782115717613966526105173117174514151771416900507530486231922567646008603684120665638479434066609197729228543171298822389858967310893833434592593626655542955162362745886994979390587227540746327342131189164591619779123523749708294951378090836387370209358087337844473463208020418431552265738305628898423036861830774766049488862410593273984145797728664080647211506885552324207734165834068767529499630241098456527816885043988647656879643049408280038620056850039819105755423178861374997800284399166276385703068069483710350116143012805511612389297544873777443914770189723347667471703120741908405355011387342548060319722094259373161763005537265460739931787670376109290053067123663379110786000561158331440973087082451062274681245844540023135839755749111710308383432955591378021533509699673803170432658926910977600157729617153593572883927291530143225418676854034820615635946659137215215813409589640971511051292074275918147263190475413238725938360344860690508456283238706503702430179714317529346046935233240662933052247632408778332909949530681683544551312945816502832614568432458610640078055153360527209233358579537043401496697422603029115945599256974000189277670324124788742682265568512673945384368301727432325809574886442954315877074810169373136880932132136156747297870539418464518948576332845550998445369647936221356949660052039346244594540339838353460122094201479718506416761863210569761620913582690601627165330602599579563496813457367519407481823460536044623287540726026130890481742869760412664351712859364846909194257110048717425504998643744005885686772023525480000593170791666898725398699366998328042897109478118673584092810487718434571244763522839456223811573327350430330733380083662882747982221534449149746132192298237225122041671190764707120896267834381669119323077987422961670651919714875341218997407473247618176204176286189537410939583580033477629484478664330963703565014447794722984377289283829286885857301111990383461592202375180434661835672620340158552995712094524723036155340894006672629524588131956150407360450772629609086845842509516294599955717242511544167491807940131225134928547743433761643232908018922467126980273430033108450560116508690888673747683270856094539566484246547610303362318892495416447888933928298549181227231748248206713270294217004791096946033479791908342522896788946395017821229771866597413405631378574023296286260361256179103153632056525652001531405077156999550533436531108857031674428213881788605958728192946860375566209377229408779739920186437914221014401413700091709649759460853821628258234081196737890709141605388897330444355649929601258299066857607991813931569557932992229817348006914094376524959374040225786518777401608619609096264333663414320178146119723554170356118398112095180575600471783687274123172118161318561873020206960299677010202892396036807629516322001945175294215222230337994388221055823327613935818480406206328750536567695888314927810099940178478117041301291021582425270752129260444427918171960912911547494543821826058914724069739421646590361285507254009648633139250639964885516184471305615575003566819185169971240040399141536729703798869816369031389232239412615692422976252211883241600355000693082723373614921952019873904971573034649246320741487267796977720078895793914931171229542211525704537750125094594619225852475522902557992821870325900380175628930457836492750933364339874709785863849802168390765716252168117311113400327085324194251815304318845226650725859382690005404227645975068408560743871478122170841603175985069967579975127349528805226105266242859360606092861470099522751677687544988975231771189141008514481484463996587086146355208441841263214183639470709898429507934511797435228780844882654324396891417640083126075864485390568451725070431227529203734478932355869405953803217573120898100087966525373601264728278462937178213671738989253512341650881976767612635005385497031195555776120941395345818548560302970625160375653978778641118119351391959985617184998725628635413428133978815259515484406380820451335429943323023669987153246435059019392424006739242603583211453657859717209229200428501511778186237143258592931811907026467828860689138681181654246770118368249942763741533845449277351855172451092530207269425082886539552276259202583525601548363939033449472947408378564056324676951197513098466726726434420985883778686435366586348663316431429393504948385812644230369408549043005604902094358760117615693991812629292113004828276220133033851406422391527218431305535426462480474031029229761564540666095021918812411555596604236467004441542345323681378329969190753220312807029900257283711874489694484264356316615232064903539740812723093825529573839922345219261740921298060611022569675791982838785396440194951080071122978304243825356091327425533393978287736773409350270180330837697922978772819785490830536465278463772452543514805785925592823735882121275775319683448584318862917404996291433534052489734979105796872635644714611765135633394781933373608213448871784810337394489297522724270365083021935121275511990257739045741910333203671125475728706180130282598090590781158098541159763643639580939017712450263686873316142013173779341218339676685794760024427044033573985780458535996568853183822410514683546971742192818507198092932444911009234083282505737964999931287889317614094517481406908962379186283416009022927442198931870604782047907284537400337754725356901840848394665264633914440519115613826584936509983693253896575472072857214017433176512768741471879318896169258127203159568953432502679665546570175462087058844627321570701396922679129665817498126525506766618422410826061672973518832831455211817632248029923805430897201266504589995821495871705135897257573821343386412756833282038976593577564118085186485645979305532195920967856808791282602583678649158614326386357500179605260816059198134376135503493959795324578179509651797171002887983925223308698636477342024699907608225528857720404326372447090462450363801080483085405391180571336764454912426285593618799138545317210493255420576821044118637287165186010122208879948784569787211242728162699995609053983195667515872562504507677364158542200275012947716783777069366684006466669709640501710335925623481545554003973999848172475500272875993599344744008042418148606369763985289567562085554784561485309591780583920643014641614959505810326417743799615278745833917077463769632658483811610393062838304985636444268456630160353370845328039397862626160908260153703737034581127988879154952344663183414054687254760128094697759373614439156857988919173198844311270273041701373978202058678745937474065958299057538823411502916401148851518439586193168422739210089428984974975998535467621229978514083575959999451272806439421317554249783578444457301958486382543033196445938806875284961367984052197715677433464082518971518601985220663887924105374893391256397939640813647307025448364241044151971195685340559307959120285462261516141387448724876286703237159912770132544816901742054647412019299637664245370802518271705089793794851831776698965680040646531419565310399197561115178938987416827811696702521857623969233250406278902905165721543601723111061113595249460078504807793388124568282946200110025655433785717535813391522828937656298735562739166840425100081366841899119229449993152471995253250900343325050436583297078723524189799556249599753425055431797081412650139492735461122372528310495768852961856011833483981668575603004776642815480604000806947500447138903443123957923161001825368835184756729459153386672722520544602987294460183881883055423354959350776181708992089913232316458543362598754385542520632483650402844287109223014607633966916700984820515465276321929092285325583351708257526776547718583111866140493718526789281656182100737745926596143831756048780491810228386153743489343555112992055101044167933464263089838066996220065212453896926883046946162753189188319368668872992493721993850901339589702955296737471052739847022410202760243033041364779558473648338423481218983218853155538413763847086005307516224805669736725779196542690753817302136797783011836206163669680846138909371111273729578074575848712418744124103164035250467097073778139250258590385433953358690796859758337720119354779885779543407200017076664086148035338791886942368912434881996111410608301166707074688534649902757766352922582812184380019010574761263975940807697416610220308637141571784451209853165757564277946544019223314411927463339761515815813187132593880332717414031176731525802634379273643848073758301078260621889725821736394846615933220080879348035654610729552011068651049867071916503164683567855624908081661943611554876426972405765907306899155851236463834016850987384860086989935890275839696617671842449098345353573162011430531938901650077178775046066504212543120032886595942656450117660423959234215262078489294384174488381841464340253741941930329380117361758317124070176110674068674504991183568018371312476997896506085559063480447781779989735404698263403586697188394304717808923440099818358073966429159503808952972968910999805803094059917560783526969370579088888788038762342615958095153427046442715801571977586439271318883374549177181090049150743326145058353449930292915920869056280280277619326089927571143240399536062849215568802920599956846301216214739758714386102087394672514622460355376730111600114453743558644449696323159326573575919480614464525861999257555337550789262449878917680130575737608609175029340013667911053704458065463175905650531440769518056093833614552790570516302091366695380615695612785590077721753184591369530010976029899462674917438354902718359915200599541114104361187954520883502893219821986016355114995172371981130186908198623046621291596018187795152794403501199385840198491399754748895414984311212309862227214699369861769132072029358799046143912190562741635666359089816367940618457931234807153470008856739918746579089074039439866775938945251559549466269164839301552870500643904992675134625966233091104053170226922429683364556999265962882874086003983479271495514648668205973390270635678485107845864334370547316389196025526870483332763481969892877108935311389379742439582822786412018994920561950773598426235959021535248237738052051994513668538323503074042878718575903894757086715711159004360243542858162479344783958272190707311053208139091446639230168420121043106849234273969772416818218359889463683919414753651035053822209169529948257636770599471672282482391557582364815905241519240574669799066457994430519811886991006930514521129264246442131665079746214653544632933026250236999617218084585471200192870914586744440986243804830790659625206041862844884624418352583014329989227729776427881496772466160971341293783290925166436676631710234565638638060489354805653201073323046994772370086826537133841713643640584366946259179588880707319169130416003656144324354247342160684489118873992049233210953398645945896068459988548324295795367647978758861379749808667061776127055719594898835211949315193389188354463252418598568350105218996766051909326129726984705508479474121282352945979828977548953242235289393241337650843345454284400006290827857683265384825435967586542787159898809738565058300844802536889859158141453453278241788009438973540976860993695755144004602645079055370169179478317883270896400124988041977083384528197260982921905939645706210940928170483704124489935942034646237222018135585291556534942880227683873012224809365098626413302164849166218854289692160913798548959738276749932342888800137820111697765003605376129967034051392791997302635883885859239088539516091255433703263864293358224874355784623997456454529654761611905733993358831131705222974751518086163217091865739319080677402470909165108337449281335039756684015114934718048252185159454914561168478655825368091371913860826201061187338211970710058126013687942741119955629529590318220077078430091942582119756561107379277812778920478191649671534730197651154634774101932706952359780549359892825026941376038901987277203127838792815123414129100348679883709118748958872284003268572331289327224591661697257556883977672450304130465185626153317996284299958974996298028756561009538992083548406429149449465919135811435954326638600312694069722451543233249151156607849430337081435928244827643686227692308345152168116086275929461748311024466924611693053138151818349535697117496454886951134781268710491258748675371073305855618099484082702376839266988476267720089107576483747527578517664197724633388505097731463933789470686357620394041778005717207925747829481345163780324567031267547242783323260711804398461930954079879194044534730752801855245798213908684212139342440963790117314965622751900731232061549481181304868059078967418596976778841124970999206124537359882781565759812576199406268033602525474630530852317652306909855546811553042576949609988783790969089686991690874138436116310435654083806831153800107289225794761952330347242509748845648464828463275674599274087587160603643310793870449030398333909058446119225489536932528852300513889815390616037062520424654455181295615900696472598840863792915956114375532356519899957271644374138259820620280125764203340093299258722720167967709212557135197392257763855534550096890359985186480728778969189469974762096347125527723933202770223197806986343438895469737173185732219737405818946347630999485438125475440175098789734175348676711475377629983283604207126494714066280801042815642551210556367247904396927467524808024236827959431615462169173566578102407193902146733091932581287794729030550156849163126555260650839995881098182009892322280077325904591058509674623395236376125751535422496798489520637739596256821202585223675977584902774311737492233073432949873147906301112909362011830405254757797005736199778248881579676949237510336789269573440255337766831475694449494048514994109096861089242111404820457995120360333635292371170307137348585437665847861683071142856942708591641312981323166513687739450412698336641645759473896075522124983797206775192262094746501436355534019768298386730917294891757361874952520369501665454988451814035232083153556202653975242983290409759631251474936537090399540063669259595289398707249956836498838252103525567123031384521042255390130686733137636214764227734580339847957953974582971145528911688753517764138408862769478141343771651355456048631636222059854514526890082707451588893829700706192512464571386359688761167666097124367810623893496418252818691718407517544259678957345365812196024622525664855926122646947049247221413691372857768764553100008412285798339392612864850130229911729853207607396400031171009628433594300386044843784166173059606040998621907613113030369784817449186230075472882738792957594047034016464964977217367293279194920587081362700950333621772229630684657089170053520210166254051956327359834053333335579142973941707708076523868222523599857261364080573018736752856094086444943136719041714255819070325228875187948394308150449349899245134998786154103392074508459984901178412711280102415105009181914892648479301063700949129232322256677961955034967974650032721587063762431140335456422757364595353853211315686742420151597788057887491372942416414367095504223797129024776611851503584374921909699966129679418307809881451865349567126841284552586684620226706725903076231310199339237433020307623199533071288723775745294097256589593917558279464850156213242053193158075484580187721071921813096366877695431794790732911362863492214453300287872940495445783402689964393030557477355601887933422336274096875684352515758228546389330295808735894588304359780427209940222249180027910766466420592946999106330974167194728199736058979988932772140451683238057378462912146620823656574894569267393514711749190708972310481173414822759251277323052213136678837401719767594537986226113779216161621162439625418110474545119552900969626944187526802697700244698056491878167836593411529312862438741646283686653607902629351709673224000643707600883896529705093805878063595170579464129642939437945274763186354495927345264405471983537752957640301162548827615208719800681088163217112908513640777349052168076506584669369375090711440712687642612502549817541463418118464282587624215148892600174891210317431602689892928789678712762047927817366685157468224382567540272842764455418650563093250809660283994681343769453349116779758315473743108089861224625784621926913931322598976781651282521461283980003959377351483493858972924082561161564556881951065912775380842789020451982090833065042470964357316583641018359895001667357296204698467448785335414219328447567189033305620998635062382725090835394854192275086834181064090469361065326728813568835323040121399277701626176755116220430857449000542460409155911018640950521820024349587386834599566335826225133980544987863968210392615822390165358425682836304419946090011392357230122860136189134141280165650888655218207788161661294754417613508837570323635568159629330743354185754250458844333138566544627922568605894882254113109612941797347695271938415520661569771138629450429443516246131586196345560132635873265761739074859892858724168400848960277786973850451550386796910683982537315523583322028729556987696333316856027338769075178847880938696016580201283196892475467419873279465434856472301522652489574378003381539362798247215731555097548525618982989531872032879301104970561455078401516897880031728432065386590077696881492894042529561042280025648880788893251243247983425365949972433810885443363036866835451508237570084964013400641915675566370861368269229344650951871424993504926669874010488917901148085632065341825423114502574296219089925204103087419970840486556157903842045453998206807046302738074056193308480402907705714268541790051259244850057804089127857886612317271094350127373122538688473514780894256884161806176598235230600666476015621493021285911041098118651166887265057149555237321859507924575256235670340298719070685876791258096853373273545711601256418889974781592499483859896525204407447816870987259694813985157490488769636304218225994172208618768504285909242451987911788935665408818520919893376786068625644344313311783218617749983949363518798468199290110495447055162828460254557945259229962882447636996552709957166108162692038170674511949827855701699101848455645496238848529174036909229977115781506295730437497916826757287917660177313999717295825166446358638325037029420185373616156935597288397324694655542395187109636306312959859219533032748706166778223717093224588580640067477277387715446204992777009316274067049404528496176972313918819690920501392274112458561943709313920257619887791430709525629018318574307431638680848701803002185022124993380877381552578474855533606137299393581787996756130258627540795101214132602281983549471918256956781639320028334135687526581563413053883094366075999309739670651215463509685062683962505955071877316830999791202786997339072119687183992583683532915984259073676023420613558117364767102813447934022351035793703717754036355741256116240532011031410537295965887004097534625829167831117550182685132832056162811276351741664228208060935953714917309887002775463756425899658800227526239563537224760057774425002105231842119423746834836700281542885605681952943673237582097313606819385145618231843816006230281898089941515467836056885979238255191656017205819037322785972939806862634574553350333676815399881805665486869892699255705714563413718169232017986809768020072912969785825425734970771309970324994979253527686544338338762873539058594793786764606736845557145733052419470683407768597799821807529762634237414697981740075072363834410175212979448649084035555722819146532467098155226326469205727145126416565825933952846729528487307244005135379953025148369684222609177605057660604435939893372837075727622756451998215236487189064494176889259689000232123200107827196445790042961012947886505670217931110760222501712651475339770278837770845233789991898622825855777669687971574081385874675806550747055055845923329266218892608722199233216071979902227791326072582795799695849913169797822236308977005422762031436624186901348568980844874846965418581033967569044974826611521475095337261135649380434414792983848198389912341257117596661054878127806208717847274458953616730138043434489285170847393261880907915384179441343487019954530909914225651583823767640924443222694575443364018213848224210730442883478424508771792343035137729348178536922034389674263965512588897874976338147419430088472020379373424577102974340443901768225399581350028768462457287302958439066866796995535226174543806358923843635016989311146782489689077233927773120376070517531846813218635114380592034176514121535012595418978173839005541200059356895798419820702730194375943529760048988337788332216432189930330449571420583931247778249356236625720364248905177131426328956783216430176884974134207830651183733399082417423419846150990674280395380490450880291009203898086215070949331095254431710401541041601325419926858133557104979248928402190395727444892133049516363767261739952675626983883631740688722081031942652064773212590842489996103859906849797634572362864816248116803876577395937986014493223111523137095227049309985826499847893962194569929437809471061853600475940426351097927929593513740802393420707753350343562587554278757461877935036344899380777746820353295808282574706507778155729392952414980056156298341059655096582830896165297685882905985118016850689544950621529815548489416397769758863429209592630128718867489277450654426366077268160233062404860294024985648140057414944478057622421861671430446877904781991222894978977965610398994795366634522790639352663423176121498286509055350970339384109120841005170251885944386110488786268363713243448586126768052751063687632772965762296182326159318648928718685790025122024016484432187189417858230678011099752307506964953318970600360542670005818007686532612722339796021479196914090517777482623030329649429574936489712967086986240704339326384287504400320982700889654655986802512098642051779537923912514616856875802844658233117101219165246214478904534255226377029547968381722183519228760628700928220213154492765457589025203605865491194867612684121262473951128037743274086124989542236771850182261689783415968750217768274814062829186936884673629496578541062687884946441448535548138298822936309381643627761220865826871473980193364435249893865980120036529579911645479990559068680418114532350268217469540706852635406309816178219824819506916472685571851005704535392427662724041984107810419281217504225286513842683406025919541150535330334046082127139600877243356961848140611317414415978401870320127723386557065387171903661498875911561139285049343560448458519826696242241233443193753245935673297130350183968568015719985393416130086467874980213938630020612200995285443299913490627528498647792472702909310424582953564796788233508147033580525650857777701341633978464781260719528373774736246063386227017678825654377172340685391011208487303867361122905215663883309906425027690486768370008230791134292525173073140206873540711792703485536810053625489916024689083565938805484520521486914989358524069920292872356665267697018213659400830784632218793918206221020164639968642347178461991803023203297536241119945152148447177970326600614708603205967094430728934590784608921899311645750930384803800928902848042263702800809975143653076916325291370209105040665414113112271789768471272247814066072381650085180017395080724985146141840520954911138831325726275816540799451408162108706679892956559569550617686420484548866620648269837904712135179813039447681795947992356348891042209251837949826763380556565331975687488686992949846323481089495228653481074667390879863637482902994268219019016081366981143142276868641225446401308719131930622525943550401761303413310813636308605616513749309760022918767516056629373581419246570623070623279083869264356300010522547807856995380185501715783943279336727887803429964454032474248250431825315533974906862269271021266480846388072268818590148208748085758007635686733919132367195997835265807964290148320354995389248411501926599911440388978381575765553730076935431676509164426515299899079798295308258164143841969661221385558503383376004830810310036735756028758222272336484617684795348344840978472017717667063771498024987649401022968296269184478665863968260882380880670313863111782707294084770071270187831486162751205394785203474448827978625061375089537848874182637324378578799508786022266773940783268571106187405928519172147293350430862124927722094968838676714233332050463758364580685726340454109024823485984201184919581840182875478000776199467330674154035019711322539279914212049143693399678383334152481609389796939722421026341179125474566516403868850082855025490757553260924196872117955832735211101506117238564990339323482339248137151627072714323739766354155843882989981857118545986957241809889267602488733302030847226618576327428519297819347134819756318181600806974400191918876818949448664595867948006281128460111847923018275841818809007595274699803778508271050403116896352143688721798076903358426636137775165773695365779788766447502080634599064069138278771269004381552016756239678031547861047547345445354899383284303608775087525970564200236240023729024076055044045208420231077129817179521840769648266415458184362318511885695782307963009807549425912980998108498713074237899473805902961596717110999190440551688538557239704589829927364543273833462020121169316496232012986603118468762363788932513455522223555071997568128226758178819562191920251898961072849664993015742241628710890818923541684393998571070281075481363240576480609475480047975027577409911756567958340718098954682478879891280295196544863527481334884378876415103942145049453082252769300696042881049339943869521678693754507027621335635942515717892775445809954575832742935169614184172386225028734682103817222703057059575200925453831342417401889371067555364452092740067127659734187092720215410501768606224830638252422142298386476811894895945313175564324895150606392971508110757686814941002062781729293829097200503346362118926843778226050006097025592275968246714219331194430627446887204593106565480135351129631775493801785896213468713908700519858365776195335121793704814710934505954099650367990364235259395101336919269133156210009104151204928893799022055573346754246243300432403318021049530388593750145345993793764168271586013591104756966619423887104754940779205228359642876520829884011203062771887288634765275147310705466136146185501430778050271608683669768664794130738204463257959002795401259934867857804700429575900886952495334399132849090980717027350527100007860272963616245903062133543752514301401023417917558355613334573174719765354776429086639909833131261011588961583132634610706508713404845893073495114810776834940970271481709896597940192913738617007833797058167877625353363255903304663598076599956356226121035896645316567411206674186706014215621397702047944368825604210603618317093108421064795043207204327443439225194264997146090947640786075141829304488698838877967124107833893182120532073059252215369543749680446196808783444956574758686968623408467302816389356020634021603458897328896546231153687996061897118088099723185358867523288421771045042767930604855964345564346852851874196282956881964735417448615602908702139589400426023480882173941169439523437219221565801807748728114118419978696069012770569575508378129567617311092200973817432270424795458060032366253422351210476309489709581093434031880331354355334578346276744760968667977368743820154434908225866459623216758819607013536894740721426978326013017327232758142279638265783224822361479522726823956991770112100476284685164939052120935742790521688206794749529454473402391850881329202556830303531920396559602117495239043293067446723419662047981125259655147132384601221911989498451632060527655116490163845148937509438956888758782718143053612460259972870132154000146784733647855310761483940021857713131713155007881666090203701941535342366363265499428312138080652312795553608664640195791835697649406564098897568094168420165311421046389171659329361493533251289661458510686173602588980367321497093651945528716836889441919706478857201494067905527660201686629409915986993078253955456474294635098215438972125552731287923167698080263849059233691000567426790549614458557135042360555021256412676168745109013597034356555164477743613800100951659329453119906160127544454062701415256029484033307067274417689767570357994368176801835076782245594425337420787347284873572692624792469709094290005344688550212940946590178757743029288889488867444389213717621477342979489057162478620028122845240838287880192428610057589395181407543325765653945929759930763452430332680904088668489315212245312646179885264019518857778110236298946382684891726138618570773159291020822529417226592294578812543473212823301759687717936261153341993178110611402484275031176748836255448691225566306272066941155267544740069706442897604644335346548274125406516739688852145740293326817495277133423021097425746179285244202225623742405327897934634186045305941456239820288746763559103553681874024300608622251186199667537180972925528951242347178794415373390482030714570636001427356212133257634340079948830508003654050521302350508842402335407930454725644811741223585398860938577249262332734017020769346668086352140128412290738529343082804461315109030291572408498853747083208571327323382876235210631903443954052186424911921910659887596069051900910931002811691374181390703321476129797208330914130347395846127417093004688343699393106651420569004767134394099392383002957612761069612607189816184368236792469230571935875935561980523750819665238959712322038699631330263697047259199050001544589934927869898629546845437284845274046810001383159982449232102381408279367826280753169035608977871004734396742186601993252596624550356498392706709516179373640285378819749125003092038927079294831260963089747683500334398830746115648450036052653135810337567262858011366778322869323807294244105395966233769600546764869070949401206778526704920365617198401893081157773444900503554544618981215405067308050195623972281525203397099471741716316921283129193552133788915123276103028993995903989160486777736134959782072085224034438449537622927115260856248771744988588397333952041835160750272294080593179746910038064178888177467641329091264799363474908720347884519994330485182178805246311227757389277157810365955020266115109318056065458283120022222483865114470717140498566293697207316142036315339949376611974756337125497594062647002832452268524572856230305512179202026530944532302758152991105675356607596748126285635510609357778853404548594227779641192645988509863224976325466409311017152216352976418180076988679144258265208911931198088363520517469215289864072411571398122953535102633106477226155941168587402398982288497358959892325466957849874248854048678724955438414111821483619100173190084269406576220650572062108012981075322753402221172943174037589991419989517304791305452488298270818579428963103988345900909542901719248642371738428251406140373027324346304824494899631196354613771984316248993682894343696161049447129546327950849736567250299449978502915224334787732170871976644925490232501933016477793813921029345571883214240640444460468712506402639392170748750128842173329487081496898489394576570163068806334824241368797556599258098465884222396326500068552425578944662145976255113722552224516397872815263001603041298446789467860979522975192896944612346526449389236432248179730572270190937001460864360116877377767791683770081230587747065904376314483446054179685220869911106872855060243512793049880894224698481051765756616696017482734900750896715513892018777539719649315867315359743384637819017162696028167270593186541500097658648662912880512649489895472213498748024297400912839626001238888024447913524297358727286309681843900193560507463658203327203386440303682647416207826107089025168321394334942941296555234816224182837878119764101909797412587444247795158239222412895646642676095765453500799954857048430221499547821687704585449177368801090335478373858751052668579492289065084981839951530955210689477876544428833202414907262033937615814406144729211364551592010761462840267509445059852082762544422702992345714015090878187185396226151059287478233100478240958619700496140522784523429423906331315329166585797484544063452581434752434986540361501478659454907873378537388588351692874955607839529310847722710945710339934113726378383746253599508600488341524296863281993837784207107745564359466140070585021425405444655885686384184955210022180277250527539957966173097130529787025575424161050080335250092972570479779998563559573162319054938560925157018807223411735557136102082147899270093417808321141248136414929501412167454010195807666230872404511884315212103768337486577251211750097869843008749194432946652942242131080274197033318579735700056092327186140023544383823234113968057873835266791689504232509465081095154642700993332990668744057271544242069004929792621734091672019896241676387223126286079609136785691898639914696909367827750656529362828381827249989783206260020171173310795839151205586363240929986951131697346536496805167801113005157136757957621585698354750349642369156694719215675930586776347203195681416769176897472755799005762929960061648451372309115389215802949103584277350638175232154507104049878789009890316328023383028679431728474877794259807540721195589586702781300154990105095494782119686755905340146761386559142304731446245447665244137910476229766893834541005304364183554494327132659016640986678898200013796073359155068150326233709951713104009993952308970566880093561134569896401484057117531765348993972957813556102956248649037228261871132636841676871518624823148531012532506610266615687801568016583788197915728987067899127703533522232995943222979234625682897650850449183615603112716714011414352401804227709191344581507368102578687209672528309126305969244793966515960299755939684008235603672795067719388569346548769231340399620805915557042114943198635030877536677103563633709274280362761733120501180668824290825159916279360224677849336901551053063127334038203727293098515303163670941504092411345480238917456625806668008042756214710465953263652293038029991711748419013634150832339866051032773545994903311144362444427913084635908508206618182140294483405762558002112940015359938672968977413775530249564742742940616340953103015871228505868008168331105645989923679837198191381057884869376099822462364756097269281407987141742810977014202084943220823773813015072714306460504054082716224336617245994308100936268346092869265696804251535641428473488366674980612356390039917822553326987178860320294037129811438079855050827797380401546705643772811240435242428336807568557823454597431957655494974958439247234687835325363491495188366028228498383832959856593061464194946806743222653634232525917130482343390742552834066082885567282281289973230285562520849645414519791236717432416838724970434716371827348173470308814862878851578404612259977513011867656961068983830738488100409966142212286649140560022247610795555678929617226578445091936291571563576465989863291592467593263894469955571193894160497715852108760297151989718175965484241205877871452183016408703079208975284782423655497050293732997685947357476739810895300205276146557226351369806667299361236498844095327723317300233762094767525073525714687580742130735577318651078477722441542167837217551444730632328594312524915194522780920494065853920533408866665927186958202248576204826557161042901130370649341355314539348712955726319416893446691583762819635072129846685499035403893062046703241972781773640361159573450590313454232001361421766383028193391219190737328453971986584539149337999771644597521017286594432355655880205336564301763784482319934046128369284171724799049651892873952957445600623648664604051600093319385064245960429962020765974248914568279126670477950611130789903897126424757083286070077696727958889276313768853585949488318253882365439708981734656056388209066659908612008197083246352246268067759508581527124656889978377522456480420917881321324127273682403431107513655569600772172329518711457946214262804475839450248270763109091434975265660701219621402205611399550646648252540810757691847073499532786884190357432353507618089387018812521220892803166567385712135479292040844057639545879972542455082706586228290238068871642584869131438167980514989193726711984369947811864454024705099546456576049874732361591206742585229748118662913945303337998089985602170021638305255179469494531601686853732068698458420539062008591892785453394713791968878419214838462424394287024033988616271794904914921973602418336405699427232081663329057976903374128518728977377559442650383272113033975904646160425303989289360079545678163643929117149175966113248854149051693529756689540999600970056657988473172288180429576104304694607372372669758819728014343509896956188564918837169850250251896363744439844115403414912011512984445974700826577481378911757832361984726959650574541190861189512240235584461764186292715561001139297864628136622277903715293288322233727053093759759119208350298532483296436488919899415913119479319548040704056789003005962420432889486310026347472963157181244874431547050529742304308665866139778434313946700587037757561368833107827434737831726032820245611990107568955121559533628761373069587699571581950297385217356474343339628045927287537489041479386937768981837168632309132483642497929350509639484780837150777504198375279157666391451807431086028551324033714034137032240104651664726400330356768487758681468142325413550440099026314793508856184910102156757648680963112084504319355372449971059072749902570779752035182052412826142583749558407870531018255056296857274099181406213197747525287150786078006780915354334354155600552618433524953602658964012561538303730226421835734061639366876621652375756683495755421705801950294997650401324341554178823866406206783056833295275421581227900484412492282456040268606886455595525964422770035125669433835644976537887628822613751083893970230858452254947597270713379087310673700299970250416188310526159680271492123591181959069208755235126465775797700747225671125860640925216329026143781151309101519110883681225447257690697134060209986969909552816941956252076408161845201063947584782970989007165901446003777927310817210731839449335193212654226020497791183691929434003798818883674328317062405341963965621490598282576429898399750169719890228483434439643035111622000867876592343127609777129066728605686130506818422293435695869035077874719077879914242083290032302006428765223886386605931008309104712752532581643124980569248099139188403531479816197036340149171506370259146242982597677083257556276059644305155012052851569656526854013517708095442541952342431587878862928176331838098433225054059326208670996032205355792634330608735024273995102882158333324395113828190394810363986813474191490889476536849173149172492576996707297612728211266204679028552462227417079410838072835372212110392952637206230642956240887194881509238176343843093970430314261214366308577515311108269489928526338462961655384446679783913807158059068246068012235621524702128921418329088966459926060745600967713399214163588985658878857203892869251728020645923677179643563410087660648180265892283248560534195412776434737509319111100897917295829094938935768976965378636596001759271136691936473126344090411584206627030701785852156413864039898471058284461178926671740839267197131817960151841620479788398806554961197995975595842716319022615028371647747539790019742215659923877623117014465919401013038049104235177469951602004542658758982895253416090291068765236895618871677696968616836934290560733466157629724752034443092385032132556354608472842710245515285981884641416955627145612457430030164659870553444033355505371468677847799269423160868479396196783942581200425476036918741279266638501997917148394160776108767498877867995014357196160629320691845374421894831987807971491411892123384120697809702970515568061891063459659574517154990016636478428185089559405660501800656956942437022846307920638122329165335852135500432503422883709531498203977664962323374243940322266417466396658347104534077488231264946146597143876594442603551547261517589337989585839412156886190693751207409668156750106597420589577317922686516507783275157296149630345852380104251222947836655960052683794259912086289631163893271557254231209831916008218194188816901855709186912687431169149993099515255483454254257641785377672870154520874175118275468429447193498703134745143703907136531430621485853558130725571787495579819682062166146301059262480842539513139401835982057693687573268459501192203305006762635243458301813139407613914555657034691695896705081161893808011913716263106309394682744570841915541033092928941645794044761061372608558509577293108152285860350940642189043760868135040457910983287654472018046678543579383246473681642989583786746132958534900869310587445585945968768358076725964669427632696305134321575305615374248901768865710113625893389245315251989638579423720040116818580386336736039370219259099944832858453648980009093363513090811436981259022321433416531892595528621919450236519261987402265765406191887297432194366956610166984465383941931342083181963841712412757866805349998684410967071690015919150262262594510105484757181646133837299488697452038059441777701921640413204103011465821285374900670395871701353706866652150482126781010287412033203079420073992797760766219582894683415250691190561814578285260310676581143557471894432855637198149824315062879197244626335638611859164569680351022049975584213417262575228561081855582401932608452432942040965316575168976039298599363462242792597859587673733946840848516832198043922201789418260553698663374284071862278415458950660281360099285477311219385449372843725519996877925622621038598811742122092016364148120138965130007349151182065421383959625873375967459460331844821545122884689275330428156734551278617620493247961946249943330234482442076712128362070811881964978307554836744751583524067302515340129971139251517890796547703427169505088795285651122461822387744126507620144038269564833518114843695868262246319537158843041290126560634098786909963848641658788525517985740890199640040122700018698951787844101028373057638030952888635441422709085699991094800834941409655763207175314173181290145067540552439428019560146093577572318902534227991144029766756017542853657929491525573858618511262087220650795772577859728101203269081165015368307681850891085096821557013641910868954972848012500192491254522909083928700023747914327988230555794999803976650249485545572803357169148964100774956307448644391523648117715800906419257292069047800562076353486676958040234353164967838476966436735844275952808670135443275243225960458702769443246028931769777156515268919758446507047022828908134661848383875796388099022835005358518339175384253149029464961708392705361320999167283371891167496475043626549341800367342272874750985025011895329128523563185139344433385050470815135741995065726168594796757331471769150291882709171994458083567165270887698406448268655402747896539244016327860937565820271377977432709404701789742645234907818552471764372861674218328062424683886318621237887947827733580685852700016251297038357019815754747322492555105749102893031745729467396089419035403918015570667217983053975748542644578139911566025069559013545354377268782332143841689487008835784735286541822074286262295620142075887506191718955870423338068855247881874408987586601253425123647656237882344483935087572678383876658607103754052957594181276682763884018823599618126277602141942196810873058734267848499738926970578956089474676579218658841348874617838222059071908591688377906689904530468411054181968759246325179588612873396718418541595659961605865591089544811302791605315756580750278643390086404917494310314462671518023648045230086986405458904590317010995379005191528937074149267554482732476491581791582382038201454296206449562190570197428087563691622609112932004041584645599286067757868266624894297579849803923009920547850011330748636911224452030662032023362084729240926195476864780807652749861307195877213335018527741442291621015006428523761451605781204668558870597779579478410023783058168403797893208845411589536434740027313943093749299716791960477939904507351350424750642777238554982164452969242146377114370569765737240751985130341673726908394543077362119102792320882723291255951542387368321843464180149910839546132659993569495006254616458190602708112279546878865354628672527273735812808169169662029101741717819653890965778085048420898078247064412830357660446641302933686048408709083667540357092980858070341515664357745450163598141582181443718438469965858757346675611244333167586060719542936062295580857599925022906125592591505643057229466340703360133971851058347936803932197854895309746887587584011674229144273506273847544143545967770949258024431321062920510028603872087868655160707632653427941661043165399287355771036666542013499888465770610362692796998401578139414737910152912967983736766292680107786724620940643006683916628819913919655286577388084622769636878759686786408748573445309830111124427919522076730217236573702659451048509338562017771499923676324366570831622330671485347090929197841595172617829247290674090780067249452291871719034805014795036564815781640636870747568080220848509080673342713170731294696894485680341494674165877384285261937169409616988419866997101531407922859063083059220725676834077543423836459587700851838844051474522133209220422620890773555912030441132834750710925382542356527802990914642040515259634382253126236695516296907165905179370004297002513707666963704353699600581768230706212351749114664462129873464931238659687178929768877815156177192828962612751963528320347046950290486173580483249754315656327957915358531124843436630228494991474759600479381129729274883743681503235997461443107468934548242393033315282367027746720655004847929361530915939676994526570922268399349764577561602329070192602309645022106149561951804374179616168085481247376651011239785238898656401614483109600616541445174780349888669725097052005536099818155318743336080537215216907073953903754626407885452614725745100746415727459605059556003703192735911769453937125668165652405103368396878149018384289413765577309037947317860415484165749832418604589802027149890875862544071945356096464359414620990186395262375225542994336720543798185259373234914668778408648630103074684961075022470544195160155166053870776363232707092998485870936646822175385880192420920895348359408367377015886593042795756272427821972678215583917214627562304973462034310377790053457248824398590348492121520114037519524791726353529883805311112534959941222180588527061358672390891526003708567917370527469043872066075723264668147673678274744695007299742374235488149160320984783772948832443268759373657034570161407150717923504647024524703588511235599167191437053755332707192719934451099943598230381644601562088582693190995532744858665113966427373438227142151852585011913055910885764268995896026486803322424706068456517814030408835065046966137723714250922372275413051544685123038720169446365396646363718233481147031068946090799899228587068890027624865884477152629950754909537641835177089314925324894037584607462401102565666537324748431911955756765529592037541653318492829704165934815236304009675883573295966572474821830721647922631682443154241355331412164155944232994510464739608183035154085577523143723924938945066642874069537854790540756531380326808976540319140870426239357081133633419442444084883179960915666419989671152693448211246720345239759932191160812662184549337262218909292581293728907181881255076284194518462555650702946391915879201345057399457984765959959852915441434041447483757038328553543578160440538512502898190476951694885021267124354938004001257000208661648050525934836413398447949969497960948298513682563372316645332966724643338815630191941505083028164683741845154902386513392995444991537500333218494196439094516994168264305958935502310540656906395449639021998249104187741030107394737648617571462323655381571553991114272736341066867756086734446784925655587313546764327751467691381831835479262015351561231671325952383129452309167008398069759147506875431039221362861657100755339405416895133324928978405795748256128713920228940843302961348626203138772948256612221254760322525965004289393230118908020408146101850715063165177582057965375339371044254560250594127424804097509112495833342105836917642730889915604554585172839471075157751035878217103290567402090159329784727243089382053909204924465836094096780885078920342313468404238736511785838294277971930963171970329709775345613706676169888699667833848276325206054869985543456709824580077384561627740449354413386176042251898264937590138629811847854768544300247072344404950035062088825444026812531436136155927892773002724180142351448626055658380925379991605632420998862630375753743508558141526986222556591693320984346508318748713842312818383116391957620116539031845753804668974276566422332224377729500632137824262348031738454726678603511171836883639236091939416655443287264109058085310519415742989825050468584127355354668436805279303743240830957382579479041129388175895382376832930880487848043791672259877560738990303429867695214095917425675024658665208619529459239145567990416458834790440005970191486401162035827660693275504538447807280112430470728519909344352433175182364947753306264328881469543409213637354285003667063872328481317789921835943432629632251486928212856105973778037894812580187076634309942621978483545714440366623995215711200271525573325071857197364748783834952803524988325630287905728400731146362458126708740008263357146245382286947267367254306017055583465565898401916335351492844617807702116560853927142844150467995149851409671589674622503164106772784709696671877956633700777336150259387224903886910099026121310074030825127443499384140381420197267339326094106603839168559491469992397636337738604117313659280255234363811917224462903774734240219983168700234710022333496402360564865592043751727017059941728729244582950980838376824721224849028975028864601000751209688062071971712312038041741738996574758160606630635538480850951143224878968699333327600515196663456710334079545383390805988229822204022901501472098641001413753352014355607860782796129523496079493601494080280959711821625349259806212022092913426324279176313585407426050638261446673696666286149684891617199396271167260179924148277857881142172418518695025768917677012968865900175294876043568816193493207850284031996521248322746958546058185826543691555379884436718074826791254534404476519997384364297578647531931350982587990010501410243442140990414388977486804998075688913667886162579385167153756096562116241265702662335461184300412099015077759632672347494724569989387768447811648034242543745340916212011628261113972973215701677553359687086499671441694953950826599757019032567144948392469790384833506339855942317497160231931743994558774833810851640081447847049008612220960815665955979002810180019297527658806083836587080547958600658482998507622694958684009205664442946491751399129113090604975824893807382907588977282909627960052910918848774434454474787781576366840381780621470868647250197287215574995405707443536011103170926082476559042448842648593829060512444877646960995172848667524340413797154770025211322124786279544936757071582539419967709223374700180146648581027611637107860208381216953508043619958108359565644276861714836551819394280354132023877800713937128482346181907350891561837311957969573195899826235194021326775735909018299549638702861493499044763619990066181100826404040879516750926380025888956090098433686121095588857193203975840955578123899010648706952555844955821112505547761003177956036354532910319865328316233249731127048777954297467086927636517195055642246391462466888930125102616408235968682419564271161848803341197791456913903600114266816923265390376082178382325473564138586254198236918321732871867764060792217119121412472235515113492506563208882176842373882537959441809038732859024674070164749294102864905089916402848848711394126457433355536531669738888187442911406006569984460712262797694680329761685789709272706685800260030373854237784830858331008513194941984708675013596420882766213845628302966879963660301374031318470203690863975964037747377630879837878182197890642555444793753729014105566085257785187064625798445422488350746296603814108012695044754905680505404694996920228933018977070223060784759522456793098455924952877800862384879142185906792520225677246974104166994192399119976692877847231461764797514496833711805069280948265249114983597888831776236482334576827475918459903879679172593203487409927553710581310318251245669639537420250131947745089375434561633478402658914901942377005905331158927262787797545632432647140295959930679993381207900629843505698095153923574179989927682093171936217264319199659700504430604524356785711998726530732656071505333019631910123828498215776188565100154533192967143443408145223022410247920022997745518437448834673949284777857088758251673796499749415086348888170511162010045369522233169877149712660634903998772707510594956083277119225073557961581024661071814084031998647077234246440138806964166392530871888760847658720121359594243794080167249416719451530042874325855330665351212876159168214305500862133163793039694513256672816639173187870837954336286002844763346213466358695993458939973273964532016280119017753075888556292427678614362980086419058972064893549003760150252656986280503919200380529305052737767788957873498624980957088190696980009090228903708354663245473238868008428099690635935139631816840288024124352650829851199114640750583550045782056389733221235722373182825235432610473312540998589144281626744454706137053203114250199955858902080311121271069197352939709822499469424443298881111518708054429080280726524118879180647642164489164804819338238363548178812141548628323800389488775423299409123781418751320536924788849803776634005381951524751454740424106478795978425000385388819243598335114003802023143509716739730999202701216996264557726254644356185763335805705540162259573038104046841395268426691914982800136286363664201762180669802585032520291374018953012868137510353028677571637884997047463471867295303504949362396950516666670739041794005218842923345626458242441334924333681077129256262767025752408032718501974140918013444160927361916794420335846146241232812787564239883319862074369947488556993554789576599060011032470245299115680224320131276822097690931490700008294757829738687789905022137744835452119113801538323170125300799842345378736633036799928907633216246231365883969930015405204032134185055054915714508036561019168413098788359244814292154410737569676060617203516701158342933856900204845775285856903160874649591862448212211088408556570713674397412470030323704376330820741640187892865311790547967689124479668395838777118504869202510160503465818566563744495202585906096234353901969227974486465139145507720665942241239685764061321097389685953658254597585594528923517791823778741869440722260557033670720362835345499832720816738951207637120427130814996046752825311180494835179209877937739290079831341124405924435231402123544114156412647599719930627856239532538188879298610508542754153499825332921054666366030471380304734219897122199030885787453966518063134170718178555796689285774338979231912168717909576658737440638762648205661958721893120946072630989865343837046269897701434075452445631560415535696556895935823520609787365414816568298234814609686687303031136542062252081984332161130398280117634735541300520673345713416751282100580159906050329747330993587331176331230464092975645112636895057913311497516833400283154501177013156300904582485558128156435788622614222393701826005357441113143125291970385102076920603231984244731353875294801253202299986876700566900714787178844865676504478545187404118507552764037224181029180502700453961900358363684484500076360094798017542091592667490684904195208965281783244074700365885084375566550268494251309559447017915265124813781106650381575092358810130467632132585932081070477871691980330956373546474123468469398298501292645013166215242611180035658922681140055006138234499041190809702306109912788961296669334032709154849000268844304519512516561570964962959477658569286618151835371732125877186461494582669853573564423158140950783125705591164971502722612076818681817857715706596027744413804935081734702906085777458220317936911999216444335947380021652117200742440044856688995829019067610341763826207577124277602598980655144472208585759815739431643424068468780763995285956367960343212355221902968686772907372949569286372732413013663224783290235079458403563698157034290241307919450521806883466112097752338102768182078922040684277236599730581542134064567794640167320565900172151265917066755321018161628291397276089768134419324891011326113400125635451583142818008169953827971103335790221097219175347802688807201906741693522004726911134291801177440900830190536428867535873222824792550753968615766840577821203432064025853447414058148272387069982997474911457820232770218914529761276075986203580727692130508962439608029729306104100837931500484559578520655807664530685231360193921767527337776499863290058376604901788494015385729845961819217076490800773624381193380127481665722006106548198061179282426862203233634865403980458586932833492570024387040717250863185277956522301887966047492957998904100812185295456010651897610745303574948507532127327008965465547196068647234415548634939078068648423993582628788970394581281726285458152317641165795358994875492195564655245787825411861483667673378456476751781981874901387519897135768225405771628080346553695247988378237195842351892940242876227241122702661471699417851598330977376510069659717957685273761589324457898922604677635224349105305489947246910658006329949760882183506604787804925139002088320133992541103690639438774293221697588953693351354536735822412895765912631466954857154290807465068722881795011383270572542085630476822624692463910237485237607857650377422249937449636312463763611135096649225423970879969551279244825899321627838731933212078764686061793608133687011070407615494038628537291230817214735468486298154094632220157874028741711126676231915289283825034918345147358483160863388858028827814217017003432820200363790153529902118710666651976787143341542299827493207256130829800707606518434430615565716010939757588860240358469008523268353091027391585478334743251777786656286808670814228266673462361363067740869375139794587720205466748284009517700062817522391918118618312704624608499502687220669074220784404679284732310942923678892143850278720616392948763675826126070180316907180859354324257640542065236420946312410699575062052285316836794858650761578703558506784511217765503687557433976416423587485408767581511580359605054233872003365111892385961722113086773126252309105929180099436208980020514207200647626963483065619055644627333854128552323092097722675284658230906220894150182078936179928783307366003509013720060209841810366807799456348168466464084385626147110765025694200134775357253096070348387569100428431526013124960641124422351763563039418812887278372386679562180290470555731953350211779297809979158560482484216607349103318315600666151952240590052637840335632191267396707978980085690869132338836188742818250360097246407132722274409843128743853181545900812609713563922084038055999609649285873914389737603995224759046345524999626695938019320182160786974560401287725270995553293838885320050224325404600082652870928413654777952752672251232315557139668492029217978932671166810105367219184309856943875273481323778457001900825371222163902533570145489006058361539433837265239044592316330377586960364308201155328477078291931394982735029141802310328649829521441794981336654514802996949503428923469075566504905375853028618609453880421339952170703777610518350290420718119558203102124732401171232780416505461714523818704925650430039587182315998178518907671576259491981433703978530402857531616089293025096407747095269264076490938797784020910760066153846717148643107042791252385311754955446262273313296834420973895359627817168170721535270731443708746393299257425289013755729643252216741485189258862161554296676870789810109760200722857662299527026908538064902729423701967913279127995547031032252619087243114026382239318345621990924290705207377814394348674970219333784708777791266661922705185402203519328707340986996689202691826612868154712623568355748165572424348751595113871442923372425540872644928752547508095562247494717357447233949964068256796301265426179509916851210047601550113883081231913481599568069506732247465162003438070999183058852099913164927623795706708525085535030210925529145255067687625894606220856511330356476292835632419174912297710082650004186899339010749095404872966002199763268708205373836632352857289011108862802792208435180698929292618174652471264033194644806709580890929407464330069711558179653463392998102856172563408945406671545495106003148374557704286012767120853635235985797756074068651633000292069985208638979737014537122992343999513967589371211735373822291762187943288185218721583657975180694231003763842988218707051553192363548029994048208287353129910799131454123131010511075591842953812838362226211216702705378806779068448749137419799557272101702242303920930167478758443802905002982471096902337379236534275414462151609678083535033676403475952617647570216162512612844571877467748921883742900672830998901184467243510787067057515243918123394769627229911619446178385315562205475900462410373611354068906250177219442992555643613417001767667674100799279062118234632486467587385266104126615255210314147244057575244505421308521677040461292934292797812330141963693472162878114473957153385987173171485839887898239397221415970748116535027159409694322330520226907037842602679085543147443752489458826807680368349403843099319419975239988168421256499836585306344386456615096900463778025375105581524699930029379908548708777024761057798411777131741919434832959653198227820199669130041414685915370263055898256346877333954047312429679506869078989586532440112398308705626008054383689264250126421687383610618558904347114238840513989288719602474312899041011637813893754928998733443074517069275752373777230633216298061375544520528698804654666594208283586685896415615453575354821217237688751350672478008257720306865876732882082965026034164104948178659587265926516399855872546731258147854634717428700268574250210262909592944029263989514305532543229561018031968095603371577681515456181461906745341710914696826972366292356293458925825832923164599541398899163006261831206288647115567985170528613785687089399301426868148991933953489097385728647187777204198027429909269729918713827551802407853360834133278624998264483459760137449276857627365230363498268915321362449223399042925597636369853245804283614782399474496367334955292459914792223277374767774319745800659481267345868727748995242011246706239118898526465761451217116057654998255370768685926715121738118859357622354890142270343056847220209180482122596279017495977378676207106111077716964155550356580339247217037416174057640447962074377653282443072048374473389906683033303860452583191649812601771790249413798435569736481713762851254693691176297302364979621540895715077693696675862571141010055017441860458985542527531113651957583558496383057753859797055477624919631684322000751144939760633719255792007863744322917520842696519871042343313609133207342248727050450194138244528257867476084088667509617937942151835353586867631759854124356204851111874878273415675737617685735387161966207225132049070491853446298404265978413717865724182152815971622144374897354183925690377433201503351053988984494900023019289424645110649721044198325445708649007146354749963929370374237411243897955424409883648379773220335738556204341807776737366797523501718139020336727698374504995019086387742882833961234225014506183412951489769907098584609080747656387494913125285089840951588670742037153904865943340761400927135799905637845712054215686741790705088686821958581804294166786391241098507074973123934231367620952391299125280981331157963503571069730483083670440424711470142197654635489843431598973528217042684245450797576048837149111503837530655124155944168254953455601374539193164180854726386036667275912963657876859771850934947673659093402798609226610919358583789090273149121959906337058858997662493262647416306596445490210770369691543152130400203759097220241245361723929214585379331390533577729264500447961762762348445205690829100359624216995492291749050331534992122663895451943339813592214833958905623476242427432927305317955459446641667237867687791751941086304250288438147528035616165170300074906623252216903261100661529160269508686724497104572329151302128630814437489724777432217151985610923710277552511994024985249094683577208428628722198845826270098522061887529003049967369317029491845392500752650970643771010908117754318905686320829975991678957074985558408981661046465362856393038548973405456075076515995895302083167829748570905459086804047412727928917156309679191906850953104909079263635187019541004928940447507582903146203375438642621530035898211287958298083194566433316494409947846119760607126954201380342821583196348478961568032896723912334863748264991455864295085422982989246920308097144387622152085678356490120042084836985287292631829086566013037919222961794405617749510692881960534993182631328946725512780572459719033434175869112037098153636044940822884523752383006001607597816845897840974796692105988374641376991843580602007415644237073207501827369004964698564783015244948627830845495879420604732237113570754915415710080904467476739981658890966560864245072936949656734902877952831902418698822855424073020799929785595803508324444368304246431775280979426412963179658795192158237742067454361453006983952174936962670844795138346583301440176074244932446641747338400349517377763310727789342762995469758288514887987793792943397476986054820786553907140380900033092452452986536997882463455563117616790282816803210750921340048292982560542976381680490508866665724036441077005117312059988878448867000478091693775037530869079796379757683456484474513383558838247403900510719792635987283906504609992122522626479497580220134114214529567367144361091710994011275641527411444582225477881486909649234981609633502125634592246278327108347008825694501991404945338102630990078269354309307559793795881820913536251636684375285838592774219286286852443614463975704708941746398544598737579494163048740507246608840968820757073754620009583015519302255576517920955013608462594753186743531241151224120096115069107775453546215234293716136597316149995919568875620747794074644615174795650830066228746610297255943557039379143201868810302788064549383078936607894473094136724685848533672100507079484428084397040810381007876601961646578053175717876112835746271054288960507273108448674552277388641557313594017197750391803899968310656409392298699138708188182627462834240361081129798997535859890201985307084972575194818222487461309578892751459052321653328866006048849310995687387094250908739682594362865227884354183192308761692829271829172752392902240529486292006654209151835209394224675849168474783019136638154067673293145905077474245694375893948797707390920257968593712145742957930348347509713972267017245437266158536834463343761911151018134423041336422281226711752227608470723581302944333205567693304457040756784288039494551737832345058550388878125800437960679243763179259458794151775362871007054229761720009015187742697894206710463937836581515123612846680115189546480324808451476312926477670313731604657349792675994305953993871564719275355026365789447711755114997462539510757497402971544854326744449969514103953685378460121877127492459506338536937746750218629663095879982563606849670221842817961018129417078113265431961290984864626080713376667569300590597256847740784616831264853733793604750238714144991121008683476221629122728019152974144481150922944515493915755165535410035492089786653300742861031965429060325188031754812644888553162279220161194209215329639210732411707004303949143547100303789001384612879718203197683684756972325887111228139007688810400583800415403540125322150650703188907031535153150445175462227506625873118770086879637498726645744317839681718178299469298080162931277146866496263283339063857709215383334454260518449448360293362059966130009282585840042745435657682995398001308501553845161264841040271311980072258470386707777477853862674062279112381700468001985551121626162789925128796810258070659644629119171983105561043228063942936666341965241912942688121460870385831461757574062961350333401295476363615427507412642560149221938232600816407279186108439025503307696897486843275361489432568793767717114686176078573363499756774818031218999625254252724992363946288452903461293269576387992250058354313009009253762282543402312579436514809274144712507319566657850584390568965256270900151664925614875412194539852630105705056812672930867884527668649695649312939950271495142072282306275077387746819304150505668075945199614035872339767872814206958253713632785502459007939383947421539721479691994887783500985317038438763980605891926421365124765162027125741975169901904200322902669558848423933046880626740963439331991996488951093329182141214592699091761116932501368362193815140062404158963811162369511422075906416780633601014910556749143492803374526831831105319501810575729541255829900592501481173177779887964725513992999590717067435625412376881684030535994311452946328701251444923855192026334956670698335350577528137535369288112609547968890490744913706116150476464283871549807194097021260595656744365910396831251513946186423757753546038038323093436669335549850546330507948713023668870513626744119248514450090752542447413043477222957487782577082301157447634074105196812903645995336769464296627524628300694964447493784532200935522288708958174570615213008660701033243216448703885817889451239964576716332140973734012722282177443365042625609137483662462145327740657662042664764285262212132967509396497132780990390753294588081864753203181517927570909102824369054383163583018928364897709265054282369293973853776617394268276623919764263194011153272305109941198439373137276229639831537758042507465930541954516686653098335693510360014809108332394226833432753950781753856792270504104697948978515480177578268681182075375643030342295060287778575515183760450954709285921322535972277970655802878007448127792206697900160808756801618663878036936383313769764030060157339846768494008570809349965086614954509224450953376514733986059306840902681398751036062302158787079132603998032370367231861635506074671972535201451992164924364586467713722947541004352858317424530244582039037177343293159901259039905407249197466882778178280334571594876770894797711868524704098504247392016102877438494758166481020110362689127654982881989389064779842982960077194663965861891404553533735150634096419399337722985304159406674583173428770924811546457904339179269978137323129505734317681199419078064509936032297604740662323666285139653212205322943848138948164458094758590788673346266924389691358212064870735823542236032109339100929999020118873566349290235861586593955733206392573523868697620516293561062643621355122213433460563229724936145944361420448142159464957256117775911864377207113427073769170935448837365564052644449585519854262832332918259692671973170677911138387580041115804390865898648055205345209273878601868152012745907765779940994581930965683474960644581626162222962142636305399455218537618263464930150121135908782103246029364298801009961723607256966977689721459519273671842149539352577703455905590707817147519065619204105171391553884902700687798071946622356165071871830260728130263803344631600307635664765241955133078206758278038846818350586532496163849364844182440100240087184113552373683518938922421290375866134670070248971621368703459286729790170118223512379512737241962170027711606456673103007084310695557646803277621657493843614393569235163001092567889087472358123817784757249977656297362521144055318198451073488836872075770516258794930637993047811925605329996319833602297518601729954773016506439035032880777164023481207713620640692982553215649478074065687652409449129181717558012581065510323683538133134868422592769627377680042501073239131239515519869848798945317571791506135634016142346775700421205059380278527162159334088005365155735518022025935526144442940547256090859957413466648279928796794619792282957359017270952796626120312502671790792395515586758573420694437449780255797463710275226152189938388853475523070339107064437094042977166433795686129260454366205314249008850179793185008938644551401782949728742684605819268491202032378969994962549261732009091529110817970748965644739172610554768421536566359951354313520785036236334459426449151243795675783063101823908251775839612605995723772673618513191539422149321399337501824955187938767048870316030403733582512915341383858414172381202322531031041442162712669216183149625866384214502596867690454844580302450023971573700498097988306139942263308262287489380866640054303537920724354125601567261376293844229252098412160307007463774461354641248385664285579257549139413707857718138140583135427482651908875124737148090015102615899268357141697945746500490839281699309813970097899330955018232506876035362062468260698614168609786157593985061609532349466079878232591119972563732732856883908529430949845871773524029461322237893653928398819814754788361207052774882296296313261198371429192913251802104743943873081019023902261780156644644606329437402236788969483956322996699181078230967620366611813150517010531224246393192367814840159929310923764090988211769641362231005038184120664360256439219732949288024570323431013926069266097826301780535220076760197142938845086534985716601565748371453786541545433438205813280807861070992870426893479743597666864106005325781749614632234657153985737506786590801121554477879170700321104601426727395961757550652732554691922126398123312621040562889478799883060200717841639052836765452735063714421855827745325586319464672834605767424851828732541840573665824161404978035255094202993867590628259181320919523800161123018000658483074866087754365089626703210871360421928030218415210503427895889955670418657635520977019527765972107111867278103729229322039884721656994684746995185064955101015495082824232359739855206655122577894893255842214680857845456487053986550331944065035687388307074369384002725863505140518521674762837608111981318577452530544940302146258175089251280386570869594681207377447677383899874335965066505045947236336152793915300229958282038533200765278065362001376051335773226280657025916851883650093611389805194186042417949261048894711737603624632904761424458448653199695549343380003055199761462062393189485988230944729843500933551335765745605732540234554966573301649364579269882206781692223231986948281875829528443644014237144192292228943753809361891923535709047175064058477928885662203368793656826399456277334020857043642467969301538322821324681374478228994959168277258171714318354554868549635011057561984437321690014879667893676781766441246858652073660406742518314894997733151140366101289398948860608680091394266664936689117559984969857278220577201859251840058303590352846062079075820306361319355987872160195838399490543451324865122925399042706679278103022605996359861733174071391663680027643452766273772063034735435135986011621021149350088654710932072393964305957848780322621966380601247098734853565571771354237710003411345632469575709611843366439233064379925029359062717986403057326069580594349840005546356817389344878622460266835682600668547250151602190172737022450395417524929182003464428584665093607442286805603377273570830416132151837011967755505504665058548546830162200231348018474438708520436197966198906075328772011234307491367822401331017092902496657769009543761667873053478245802258103600057022825489208863028230086514239859407355911472147458358782053374795933057296975520912006436448267054751626789462398701136589279120784124410468311581306236308464565789721993719551449373709705355305770294544104626700473964389882014300902630665386593255992692853429565846451145496706821854725837712440625980648593899068382208555942108176950939272417824373405459067580371615195916398912062645741953334421374347640821593439835085578894806521359022012086078489017134228865135732236743848145414741869969877080449373557218756688675625209525263530227691390383485642363786197996286138764447683212296636952807878096947452083651794391722619789246707888145543935922136429957219544538210040220936806528161051219332677314854381695276393688077974291483861880240793962737023323524236981352516376689147744154326336305042278520723817064835286389315027063958855757260502522976963661966655475302917530863034719722719644349928747628706973922410658853184999290271345865461932183384454068691644521219840621305000831144222226451269971372658822365585218680563737214267701816449712283458866814812788014991977951047043870859555213706455715690011280959285692545730472247568587529553549466790614238880662546933815128309482511417189384585043084072461292624584659351725139198913043101063360050972986746449627695254539023183136032797970120922304543841558767043948137209345657239362836348119148179608576627662439822977847703301501481710181441825832487225097468572995262524625312117367092944402944036886308213422278019779134050623801615265661325199364477019504401667140488893748843692673353843739347234592397825751729227230852227326054552573849483140597735998626165224188018084291308320065898871820563839893529213275432511705172399219995557843028990954068857943616587932235237979369833792131964318656716391649928888073351389944977059347804241606879256607927587167644778852551551270412207953720203588594784542410821027576328733777225646440577507301813779949984665047420397642730019371855518456722957112249252199762148862741920953196015265109134959897814686550692480007356681559057790363555646725987142515733512833691359484910599252018650545034395339363449516998271198639379151304210536306479467803806965829043128021530327326191518745668615726774774032527070883147180284221284301420367868497372777324697512920720987381140151189867252694536488391548504818915871719403935900210626170684032220311400272227008973564195797049110358981264552628967775598883392255296368459994840820085821588907345793142594076123575478953866764067930715002445534350999116385739624692818630685841272856514716124944249121113961987847125725161617481644772027054181296596540631674474743166849920105662372286024054271007819035430443269842078175179975662262918685604072846508893918218128961974546097326713051226985726533498452724110733316584306047244611162400291144178716697977454203653436036714336700560370000292063380786081502773366730038294609228823381046311083354440640248621025974256541999507722846199591432735308156204982769779837774294725784317342984964203316553726974196625714802573856987822899666275470647714005034586207518612909306853317282957011402657119023710521559592119692293673978545902478456971150317793165530296852852033116361658645627338095213025465686022243551954743187445374323079074109277013874622958343518807040340194738597103429507426985107726738097797575181299684053371465641204000361293335574794643737098217450779111171299599990080866984290883427856928013498768400794093278853131505226506918149159579755887324930939294606434535927226284797573662555801318168720307878450449745726143036194456283324603667272776336416096073915850844826163900198425917282675263839986843609037098656470397333621494187387213886280722355766410157250129478463942544322337936145115501169868485320995583635418607192328577589164499930176170936849997626123674195397278030547145308672195978249850445214750416211336111972748303410067773216420559892361756668559106471306400473428422362067652928373938935173823985223885823134962244931609896408972642917282199111298445228495957370581103339951053277786247350830080523792803280740146046753268302390855354073345314703956349444894427694607662333682758868851367861091285880620659022521581163451320859096100091960098672968041611248645154288860681607734086744020221569704335285248592575681448499594341450726578288221288199010165693889637745886029577147136869076439635717037327921445872514523458422805173401530694449381135493652820923453094121769609583740861162679387398788767458178737162561818523579722593972547207856106321113861402577353795774818180457553240098475687121409409114198426874751935333514375140470884582471451093406493840948869579220499725367650641112873614960180853721737787442435429573946525083478798098827622127538693806633054957190804654223208627851525718091559013904996988795169355495010829853855433479477700408681516113979323298623822694811866334241969516487955393118960472755480971683075492267447585787297853157450361059830949991343241683420303374563146561530602306578678253828436581631660688148207600283371711693610255072746635783470169488037880043353196844572206333868340121082481660095130610825483309172578561945733178515136264355326226803882144393214532925913037810344620157848089387822286638863470157896017512803942575525735381084206229155564048542963175126842927413803354492370321903132561132581168866395755018429478182951384060284374124194088505460660574743042126367531743903653185901370624286829338977472146041242439157447571326314332240125466608215377341242669571272280602769980117926692327125206023220217725222268917039806832077967123952844456414991569627215880760198028351520626567101411294901611795932706981184583180738684635955195309011686072771551457795765245035015631052410308909455496646768802694427895306308607992390114854136477734309571514225731527810976637425694260914812661047810482462390983039386822412445871874173826910378249762543203394392839030369760265301602291847031012774635066595002250867226971843373058097433892864901438569290093015794660760375485656890514244850841614519566786817856097532623482068745595241630278606597597326754445306483802859108321003179129972515784711422922020860645092380714605979888261929620915463091654327396397085216658155528192363989774441926205103673765961495816350776781173750469971575954210490058883909934659154662937032368085016594506328132734330873105819646578926887376828300199468072237377464631893766678130940764320728423892028870462164260762849123591756389195451750849870627171203075721358520359257633924340844627017168810625377762395401526924546813046147048287522899560456902416103049862221608310001718748020696900982710318362547798114908749098539728017398855492220704408637992235328052616193734668142454808302876713067749107271395354178263007983965505898394381040466535161428549005683693791715991597097996636335995624755812167822492243198151234616214679116574224004442797703690761626205533118416360429284426409678182011170375846213839155418453611776255464773671053629684700569906144008470330884837481100403811465589159827326949526226746694327474662526048047091002372251774904034644943389754788918644840820525141912060070858957864800034317963426087536472018761438747680136713747927455504938243228637422611276970621750315533888342876212719831330743148806898095168163245315544467902969587010764149102494224156432230620919885567682522273862628532249857677754124963943083049022413689272624201205657714206897764519345341557229796262978265001229841962350354896653935222688512639278491488205936843993953371462058666845136916302128159879013134043523114878399394960506224022394619442016680100836521130875173687836527285622385088627998233283298437285754842043905974782226925129648227203371991693292995674182414324940109353602363278736241259756858366894393587969541383026478088235426315160463076343571214271517146509265417126268279213358067081270021297830677905354177709271343342281558431326003985156847911103479792978791146725131518658150715408515409572215859857800007243664401165324164746546135740069542913171274224588215567021265526379361817282248804174703466124220521550295078406494126109684228428327154820002452112205616603668247070670061290095126665637900845831413576110333574600663644758719199573318023317505087745281130246872785767523329241348650170102105827463102539516117648108342267681721563866684044826498001360720213624176345905284744310719646795634600858806546628026446962679957331874555297044334219608428291229325299852222993094523702399657059325712880828819298136659265235804782328253093357388061175692965523021508952920476702137036623541797719935046395823858388810456736986827634809580813084551849111126845151671845640568217795833011608636392781940536913576324853623433962368525676833358741472444009491987027969952402843064829830535471554594948784323661474735354870960341291183748473233478774697860750028112435956965260209114068271687405670224770851962819503546972865348639609796305634191853236662525975533086112367057390131471734948480265635507747565337266683080285405491898704111522425639494086578758559202686784073099996466660938336948136882064601925144544357237391964115007452216324576038902333001983314380893243775636617973167921737600344506429504297711997308158261373419306444961558089271926409813500048964150081149688275482501339333555162002629687838448849743352802579380539101184992129702946571829970920214765419770530358537527765649863565267051558968281911976678622465085502806702525603156598819162824136110868456022991047534757975755797199103145329135712076477590059962807933355993910505317248829885103074942771981607282443304263478882307423368955607207091386439465003798392044130537699929855851715780332527025987802187646682333886657765500644317139925629706872715418675192853432797100120958131279544829825789363602264843203732323319050337372458886208975932551068922346648634094530461544428173203844072097536662537618158057191055430266962496690836685263331684446493742143547014083025266676830792556179176467028356870829478875008963827991631406549034464008565671226415769718744442896701249624100134256892364080698344368099521575175444572701174073828931473231602782946518484720850851048374381765370155560339763769278813935732458937916161460816705143354508265883795963787096130063909255198552568346486406723373561236912969527667615680355430627697790161878275836420457575020650029803102695668238490277805579247900873878125464260497473201020150053662997484250936002629626172039711377974863789543355302187605988031691909313270422559601497298246207101171707458182536338875202456759432564370853391920059536955327967908004052885375208542896124739713030594795100463282591205022071560812995536502898862705248826660398623661557253254485578237339456426677277769327997374078879538923253084632199078797195243215557844812127403052759006124902334710303266810550501607794471680197178530877411954308591147892170421123809635143120608285381040824925300122394048891402052119274493960308050071060638579293422396166280892327844262071377913863277802633911169848106206764646936421263679891001642064509207463046996986413548149667501225844728080326653078185141957528166775347669969208384480674474911592737320881055099784786687424406027807693661356406795920163677857320715218208537879153483868233435742847962131207491352616392618812471238499976059458634204795276304882891911361279065137952751993416171252187690212943770421058877948058585248422027016716819522197400452182251550224051699221382202070720628423981682806028236773160085239091688787905788821942341462799353121560275594685392788592191055836501969483895078454872326377007821663676642004127943973995711050164059476379481773918612946177645355001375916409919940877723747281201021739408746164677330578267479939662214013361195073077664312312068462124765598259668795236051640963356215566883216572857641084221670307016529379421166660904828496560396085277550921668513058843137248838577056914177686133926989737987040833301469952029318224201195030669647147354533685895289766506557455109838250925720462728628448346591040921145980718644654484323943721262514770291342017061990187360386358023749128933913278078205251328238972329085665116874770972746077636075275380855177605266751394037453156586880321249017405023146959931625852151666946712479723121922787600712190198816906547460300672528116841457228900871168405054489657101863469060988821095545477368478890299429511286642527645776188492526877198596145120358905483798959791452585944818023605746422266248451089941828742005744516511112734991867797646037015894463429061121557286723100179375567253392589865268318163006029137036586645044696741411417814120576143134348254772814208475206045311929342310566461240732148987617935674502083945818242797259801169086936353030505351677989544771111435705872287361146921060327921614804879875741624866246701781930760768631121919392860268815047167150728245664551434598660231166981418954087975749900367372112994804171298535434921623841216748882511597034393042585418369769541820164348609672774521565185171831871072281868994462628077237135734502081558132338385962949300919859942154369588292605898285525136449806293370976038756379150031420192125129764840264697031772454492046284645107312919419873486186294006338385459078117305888972405777289192100702201739979726184504948294595147134587198437203434542098648915274727948431829105048170444956550353089300020572717133713168845403441278096426781249877380119949866104329247828272457105896070877695892546679194210801049897995698817432387846478755224078673524788123121599760517753938734565922809682963229925296045799247745184972462735064452021435063141988555924198329896806353223300707522781320444000642761388080715843094528052929882014451434104339794381102741993089308242377217602232945681381052707436487501276731532028414334285983034830472364630923647800460049980887939561960138411325520550751367126482128212083272886147652184457396734234320173931156834704230321208685901921867441713852080508307429163696941650732634166946065485624555754053109039849508465743137273879526575179129248262275055666859613447115979094054890142636433178516415829414574298169695863585448600854701476959007451159682534563781903480746556179506471025868707076755377670540186161729531591647560672087422123942348495694727812595266701981889038503914856272370223095391323138021170697733493097015741027557645480127514376769035867801131633980822392315436135929659254689957995664803825359736490419495055485074480109849059307135442635734125868200645076959268338593722450361022595444885932704307450233041035436200679483672121859380123244061427704174801206247322750844135488158697651095416570339734452137363812772338827162975381686802512016642821176385741124889773080325764967875944011243324367652061370448114881813929309445943434169094295442875328265994596731753218200190315995609063997849248177913793597002696575089171200275358151639816851976464976600055745988410837246006942485496847353157527616102773845796843076227209353706831148526992233404156344366799176401088850992790078257499508780993265604386522750854751999789091668123510705719421822082691570741153603632045783512240573344670904486702543172227500443976560021154937611286209664428553165259265421906175793036904889349760928009103920458370561998800597915904563874857589742724461607090949508574474480154995544586040648845755699032277812334757973455198968101450625315410030854412532336637035253968763216278935035437346699253297819313695892890911788948186243433845207075245299043118932663259606404535153356513943203615589241436585115811199053210979398162208351664253198471292596953942456901361951127267228070205663091745957566538020804924661870332223382814207449681619795640618868984269626424391219708766092808392068248564341150254959978469470711881104771150625418359358513888670446188086370280821001048774249629641637186013074201614081477918272791229228650333949052880538607868372842614469911008987482506405094202736261572616003110327740703120566203075421590103704342615363819578946163194402760911991705055889687419522233380745501918213859067802094149093781828595412743785609092033865531642842510405448987344024065788035005196936330898705867458852305061461714127334450021964091456840762593656090721797836872732890401943029233348148254121705921951258901595490987883140301537188658164589473096290960480620803763161932410373355451961427660498694471424312457626818531931479498473876201592816162066583869185625957312872473679106811068910977446198815458643813848352850575433681348090620818301146603480713604156993014372164645605733521106389844114758991956902702844212433397947824667429005172167941957943980614117295111113845468340385667168491447913005206072545601685203803687350896577839519615049955744752650695598543781375469203070633373482974817035265087464144325181862213166323197116758142633200921166741658930743593666800872649924543524420689829377537341249685846341229131687648853265816647620243552988246661224681179677045744864009634178760792750068126948586838499113200815898886999024550893753652953227929851757910638793804465935365797910175943339477099306253259997652655720965230928697153858336767996873299635418901968414072630180724833051851369384432659205691306039116443274618644145478987814436768364880642888385991270562836877418537182759927455794149161969735506924156569574044820071788379715776531202645463969263023802040748771167746146149602075514827021600372692470081710913265189848963467941286549379311346822560611842056718559031223845281289648417521154854928734777265230265359078157937215348829386988900606201455211382706861792696761301688327379749607258319841896206190203535517934148298684863751499334022368761073523717540735719925194636390809783078550008599308970726428009012204787738298942014710365846231711694728722460298027170540515708012488489231518738584679928224605200062608867359972653500018198088951537421596789645066992440425292176081871760627996783859983262497002973233957730195330346321115026750725425482352707868103467206003585773964739113137707381622915224361800460144008928944530055872067296506490457002317719875923887189422054601465370178634958602178836486484576333018340336269700259398457931410012748600796361028927901313011739083652029404268904382807050093475124670542724291157251751607215532427802507977083922994204437471360045672167972070323220161896567257937176572922681034365226649796792562447257377051865036080835380188411088414606369856474309841245314774943377390485030542479829580292176057872612027981635595336218623241884259094831461655133016124659161121373094175593213498665894437331132453761002189494251287971278168761763370217580244179117817210101021755386404760121400960151738717959065847058180132451795088603133852656133385021394578804858719712430029691615058650990455348268078189178925547524371158661870882973297462498562922310818344679551415354979837821647536764019040127348032607521040833542527931850185371602016360577443459387081316887498562931799654373559234961112671250068682072927552672837147919404577102445557144896080463867158902916275961160253586469455115240926461264112059831744134505579348524049640688849405294390801640631337282573440146820616829183848343389835617270499133450837333504108770441694513667081786299998984593845417693019432584827959864902171391845191109349836193023932000164341241264448961348747406963336287098109649586730278331319391101772693235911055572320396520296169567572840706618853137791220886989393800070342222254013163560738865610095302535613470151691709730233938946757226068533068097222125951008411348257169217998377274694113212848620559687699943850461165188782812094539256439471217494464461785622372711247389914611806639722434453609814224971622598140385109937366294205734446196676996459601281645908575132408524278761424386783430601405417099829346926407812151667778271844422390103004598161896010502219026850044986474843476376329666288264377487071596038359217991294990671271572302448350836928662221443261335438604415163931145401666839840901207987094292020359546060200600860496783156970402058736676397061939904261388059359475374075638917157346981969556925106758965006206452050650698211669332393068975705366432830347076752237577768116553693919802686848926477955163484731805927074312413342016398953850205084646820310927637976371077935975876821583490932332361957801674499025477412662840059933321381796637967392883650759324828163140639777462460704873961147822985290201822238901672071260898517320783270695401078292481090061203591788543024140215252015952267358929231870512902600134692120383461842445026362135056395989530574004386895416823491895729102719963107800346867121398535760175750317278867463157469705680863582398655576742659736914606248255074983333973789103791131005823650186404732951681732203780252490597530590888580546303270924877588923912659478749321873196244291891784555366715255711500365478824662320475495895347964891765983438013487761081973361324631829384413364553172062151483779857986114725254964039669320453122428522366431757395601265467298510798063112526970528408680438389068010122442320344002730096589954630079614234508687727127807570973442128802570452494103708677987272136300713779580992359940419265684034154350221455269055188394695160757450623156671478523160442066605791831493401662120686879059832520448931393996864612376977450642630944619606879219785338094968763052351166974459989690558368537105968603531852572127166508299120831452271279146460878339851941066098525183594097167890564831789117915806859288683151344094659282879442497914320280428444426630105866088723046797192284916030431622665534425295699052435445984196924966637759640233242841119090008524156959523390657754292892889622227921781060429630615138682353038913051588538000097904878248773080117438599109237618010102807301553888954567780922117625993875294175465980638441211033323509292064691985956613121412166514035878659699309448804389759965206208747210991732160771378436390327608284847106780145059615374543488814404070326763105459451524974139112115191307083867622303940391791263079555833641782795419967319766638815899487739396629009219465985610662577351946422285023650141775065324033757595433787043425975957980870257201974732563505161523815781518862801530593594254014807817457379831926295485437935246431624624100734716633010687841731414105909673022584061515252054803520231966577389569194842231317762272509856022975718563641809617106542424626088861327230661513559825224097944569923649268802859424204298326462445897332611938179726991247404144344874574822173165077934438064214059373221426547437871829276882536854555737191164771982976548224300725126134646698706505518660471837599233273342587373507635781208343486190445597842999494141926320414195058744322792665057605106553692008971827423921509105199690982518313647341150686368365836394212633813343025850557591582283292579239697777392128155777881899451473840414700317067980221807113317575523120117177805713889596284982101811705374083109106182844192179336478752201721203496231224131349969107721941872816143889637602496341856255758305969588061210045090412957835925223165644276745368346253956107602027879411069673506029879015648440053217653626532830751340091561085235007666563127773757264697096406676312735842323889608648892277574334536159822899610754250653551180904340602406286689442195594591465302393726848818819643413613508237548796308979143122158562620051498402076307379537848508211886994757581951544811857833954510226308499187415998199407433201223337312392416279104261232061794094354742551880325523816849233824578676145202667054223552132077451910387470909125228272881003664518626692228052617766955041834196653134324458219656861155756868816668460879718201286154092681976044855251530197405730041274878224365459656560169283427104223708056112523254494963199760116253616692747525313697845990346905429530922496786433938532032223697200642366732938008755975423180876710677007344154751573867675912212994064016610871705288653999980832537897498812395430450971644020772532082096185426103700233316015525765574452339101537092832793314095014685357141508668083501034999840625539436065819858021749396748392078169310369656158388774465719288722914026645591796255437580505283292684119513819316638922682416547142623042754063192447618631030955742398249172458488119085559047462996176456826120050869393872763866631925778166466417609727336113752060262029589555277738799843236610084008333849731143947274410490654344819112350030158972258780249441199692978051013941613014495104342085034912923005779740833721200820940966837043502129926659717392320939047621230712797618323821012778662596478533349656052526863484550389541497388293450314702171266869838166969326516157420004541500833308829869299082211168343092673569590676824042439850322146867706694969432787662485771068039373631184014904372791084363210205688855183540395324150970532156954726081753364537798456498239353356700193608756495352080025468494936340628296370237870011351230502414044776083578939471955349339903172397810723758637300495200957180189322141591157887230906286470717965394997574861781610726445632967789303512353711312791340786956276895471925188817326169355407442619536792156869182728897743605625923741559915681604291143262331102440150193803793523968723820299741400523699947772560188024307187253194241678640964156211711412435574842871279226393232900594234717375749082717297341652521125200823045873498291694094676525588049749981966665083757692929180200352620373334258545522350073512345721541385235033923923515530411581941238582887432459313523227529687618522815468280494480009425866876197748653995107624526967552243157319564832126460483252417613014770349168717991858050909915636607320189789025976597129926479077509826581691449157062727114647275250798373335396115693673373694160685600689670525728876151552410202400435648473539440123184683263080248855821061378425711454491095595369991748143437769068935463198552804132779701452447269973474380456169726282894488161426925922045979606584668488204367352911991780033327850748643601571322622654365706309034514957729244493510681376929940326737516035992386205724154103061833303455901111436872578270180105846917883406483032425287749665511203552413565763896715707100738509636779829814629794951195606911398805536623445766038689937587110177456852791084167376586333621711405996135901703666928812498494275885777577702810730655160020417522231759173753579273013821503826937410829292451460372184844602025920937100772278246855249793520730768688357272101849902107844149010478027492126960223585191158126349966013721983857284122423491091262493714639289216898346238486477413746005253096391550342737367394460627731818439337405711876255403172991581434518657169315642263178440046318395910931496189022011441149375704502118748355946662980019928497831591098578827890961427283131050383888593754987623038052910405240554284110453072878750720516874786559903488610889382544315605933667870279640634102008083252316806846735818369605972630751941667417558390677872446524182589977671469621281216215364933050873695723605380964386412802196228082853385127227607311712465430548202726294184598215740536137308963677399764887417164027162976499670199749959334865158782765343136831328365089773498028165170303972491704870178423352660164956552326140101307522911122475524207287903878482909651822999435529666199524432703487816832864763030045291243881638421170096127853639892013333426012889447352050158832482822507274541402088908120833040484301030173641777264033412200382447780225783152770748227405332382675874241328777773871450236236137697380713799153915296398717082602875733828242834391659939929659886120737053423175669391629133874703100218033978394009062386966252865566159832446570259193917681477407302845278759740568480117227786675242999764918115655756942361155937858140102524573182161737325067448533227154563997764539638597661013444604305057027202208988275250041027835309402161230704595093308486300047614401135660268637387838874003270302396730013610048649786285013373499243251876122789410031288311007688522535376770717295060592223207216807609517736045290666120489120517195163309039012497859324430810005957864123400703984146927268412736916367859114211480724768797220056046205416514814883196626000827849630871701957543880518336335974709539723333943120426323691719451239935415118681761308740016736470175335193307113888156400523281969488983913561490577552238470934330654699768399375302078242089424605841761057620108569858862773946305540721726039756753463092283898247648739952130241297223288656144804895774413712951752799908037969123087360721963709462527834695829266192290413535898893754762745111317285833157117254062294767289998605398520512449209016463145692817171011419863073998910666990111626779165168153419895685362354504815591484782143525137329572353663133684480306341597065552628653885973284682875533506781178278858254283998454358748898124406525071489757814345988389795308759355720511534139293011643002657985269862600217096915574126945781503739587753777611816962962659209320863232905448752305617823880881457436516693472257341330076959245726623991177201649303195290407877107106203100612296593991772233524532920017209553421097967521647012566337917333876257837933115835264737802691602439528801099286676781993569574270482096653505614923626695525439169106840535516388104209742070953572213950327347482675726084953270189827306989429992446628777213368288308203604331467868114246170335073642034296679298582730022524682559486145872263009640776593196715179293034637558091104044016558406546143307937115089936028386640220177705931896850524259694275592873658133024851809057922475285336383828994608750222284966592786188335361924558854177502197721098400647184299217530875019169272825733282530303821997035169854476383102959129599194825662271283582546072114239121777950167484589558915695757181707440890567560659202633536679581102164782880873555110746596403141802118707390443912956111829567261383570906097547994154551895591005225719297721311817627896881977787965462561206501034283786728562593295641582618130002815914905169890794810824080042454760292255812836563048942437788597469172414545288983970442906462372193065568683796355534032540960912849301334981409738748884608134811672232501013041121442757319193165050365372189269456398857388992612941372886388909150101892403762067970870375234133625733551443895156854669858393993042886170533250677514365534187899094456823898672453068732322623565653705346628369593957516083302983805133068877662020765857040199716050265899751916518354101136579583234272246444245296627533496238214018691317480181559932481388342337611850863173280530429296599249402009617248573371120273581406438949925271735258259322762257935785363508011435235550214489674148635830598755962792359920559446017772490433171517278191711742740772275979945271653315799419582204750433856008002920587993289652401963680252582909475571381189246277445691677716273497301255374218924048215386799752490559813499720623104251870734575231558235008257954670901323729621256995249282027919528723521768508346436302564408544748992532840594058688933826011218536659987529450218366871139258161064802636993818251544919712414579087541371297362998496232358345920154690117833658137689265434042481988525578113659612220963709845596239938898948680727945295531278244281442027496155967598671865616527367476930448688810327575264607408529091476314743624929193533435418821067611616952184077882696665790067077874931935113915346236289285468397156351468670171561949570920080726916633480642989503629264962330090775786702019683983073804861520357842574881215092206419802235126667255097749988075284441807538164420226919312553968830805442975498213129506504956197629449473009692655337511710603036268129447006657052802687256938816032533708093239978044876366973836789731604629718562794651060607062272533290937762294542107136049071645779060056974973429885651184097988206568864655454378274681184376094597967613073349508151604814563477939095309447592679650646323365055084616764137893829188578174586716730721091217638758952769102194443535926697973127336167021245309719574032884824783371923310277551090219382884112648542515576475077820023692199531450753166498894480550784017712594666596007373777168192158516643037432847402495268747515707280685180880039826570739197115781449869906059308468620120580978062380247907158481390125082579732827185528078455130710574329486114988963008476101461578555218870152357154965449315542369706913146260328027768388381440065004229723071798508922879270549214288253024529197352057524987285851175724112135529716022674508134676451654978398222713549915726683391656575218391393744156184174042653217779477249244433994449178658310956857647920658490360857069649052511016762407167280284638572119313026114562306675371958991187251837972055287945264539292874820465178289904314996028851737248445547495402972887604914002538608666861479503317053040378278810159237043107008072493386037679180857453803088419691976761874457604539524768381886482380469317356031562370523888086751390829934337837064354971129327162486177587661419943851016337201999894140237668170270959233710479853712155315373000999953159350216334504514245089507577665093633558696753567861797904113198907104952583610761884999631190229113457511147651729969028540478945671555674526202526164918646820666719395641660318579083005246305466009052401373374006394311736537214397055008989204335112914268474647215775438319992057409265087638009213838591340163633851400689317379068703862285918906081469375170235382913951606841777587496965749624470237489161866388826183415949073841941905659456281709765053678765740751325496678030365125597406670264177613422911521351619394191979490901015258730947878717456638446758460991004520583077971524716465769432116456197370458012331504019022732430271842218449732778532933765084928191894070416866568368815953609558355928882627948215029465058717515106215341047715259554579692438990520688505584563400647760124916670129670207224495342591622760876146905879832612807667771335859309279996504084430060824722979342153711766673988528009779342245422617666416736728916761097492530527154490524413499214174334099540075354570996278633744734236891358479450568625445271544250100546505387649869571213282876682330134783041926609153469997417033123309281781022840205699833545705817447173898145821971281924495005082974200325678319727222683096824203334179739030688704793726295379357430684789231618222963688272582398807083990222706816145343540383717524639254579529006377784587759685945190618651710820218189996517358806017008171449941280134451760208653755837438044725566524217471200389206981532834026967494570106113154100140275122377123939615914191626277619561066166512592651502882877597106349443162444256029682993224022137440609487818619782398457615380303049262510783495954817648254563943896323900470004742381986983103868801372016515599673951474448122564810417500487288737140869951726088458069318866428026624725339930062408641565786515013775092563314930852019804186340341019658289502612072256467672088062392329704252056160685379441246896117813774556670332390407696915230671892734048294816972510327569836446276288914830734135755012240983417157674282876419936683552118645339305654111198794459558606704887350538503420061309635683842627407506557157667616087124630176255874955604632669230315278754024517629177762242529485056784939105168188421784421001711784306566096850621168306493042280809923219886018586263210036421940175754579784597726563511171743518274361218241620725072127205111093703597171404518587545103772342679834101819338353316685160926695168021354551084382632930618141461390792423129940168059676688076067471437666242605697106066962259586867296599867697551077851836558781076747717337668729672736023581107467816809753168528544503102695388334381511407102997894709258014505846922232428324056257037918353438652816402561731690161197366390279357838406819203529753716375472949442836903392945837188014752817034380994182842273689424324558411270127866282213285041523017701079474533706532156875998000498023887555569599017211219650720617654827253064323396739942298981732789244767063201724354627648951045011605132612622792278201432887486833366669659992741555578742676530839779254962471688172196959133639683656632624820480483061721980316161192264629792296584198683171223147420865120911423294593856572271457273807952938506640579374035540873583665562309823836400754503457273018652247692320244902053715298462754824144486768455227548518762373961566682130112751903533055134971472769542228105835228244184057149658633577073824139302831357920588445738316629052116545764094326727201923082498512524996822045606895433657573429054979953019153453032960248212640448215248685942882571046765321063285634614548222882135105998278383688495193317946763515953736087310923814466727424087897179242571598997307655944081755797000283598816890342203390666562428142599419585486434877670449080045217816218250709911861661369787038971791064514930888538601972652124114860780288462431602770579343827495681141533364825922879891169448403558002364555450099527636042313259059503864370368778362082721295838645825148179556430993365119781105019658304222108127552277390185862909338208038345775506470286987070040601884143380300707655094420193334675390770873707189809418434355355329711380488054361135127596660344538422844565023809542325007382738999039808954436252486883710153930636647415854538514490882362790740089226961867812033023262304822003050135032024252832208452502473095534315255845451863009265490843239946411398492162628761942333290819929750567909074717012443821145224045818055119103829405042527738382316369674564545155503707454597810473796027456536390752799317799851424792282538471412939589309976445218466446665652564457374084488600544706925937051756434616567190984240438802151307447571140840128526348873134839703101441992171738434541471457937240711138543264822578747208862220767155540392720785298689400348182222151976439295377157146107537762184101306676906066615525257736803394656373627036827949853187288207517164809064030133653468011234706699626769186123137821931845647817139058930759457175149566750443546569379107548007806765766392836070198687119693776768319011692596415242413280783452470070569930747549327929310454340496651771025359435369183023622071155730869645646115930722471064815785396097854931290837271622940268248014974771396219281821630838890313192381758054919554390564234099378856946650900282861514349733393437435684013363294568379465536130278086392736571816445422168644627728089663031944977995774326915505005422096205325421563265450045450808559838170003436517509812321961592005818682145151441085645168692271614651354661902286467027386932521314898898260750342091304127249978155549219423701599515975932728670424421030399001380298021283519377053009694365526063437375964253585207650450324166716242730911513725472605469161254277758194194513869464859790232874039920502162009269869558641135065487324373033791172874936663674134529192444778969314203514608308586527988292022578007974218757727507032088278990764187483189261210728276543174726060014648724804496408144725865124749482210706983531728791795517100086238855419466793871454130707923000484310338963563453276625332692785471655952103594158868500063344756268240348975158056261869989941254601511129441440314364041749895352175654664075787554834711568868246784585396923150686246723781872379369273260470778481737468699273842744158580998497377782316317757263600790217898636365954511373457320139314441285859466390298413641131580278170896658171121586321142134319083299446885372350609966670949204534599244150173199268979857673124850833609278509668489244571674548876100486029151080298201714768402393581458302419057494932102288450995262371996714242967367913250829258104848767254789970666335296302150678679358299367434339456430227599522577919118491329809192259624736594211702988643451373020452004250662830471372413020145254254485161372829703673315150678385169299843224566378453501567765561074905210170606658307884984905319028395396801199096456623691991710041457819584449697587841674158364429012840793874957220084767546243037322095561870003005760043716763320579580863753441412085482653704697674474221457648363431543400639404889128412595460608834129979747275965366387397210729531910036441044976567962601523106922213882842740087097821153644626610515775466103377602663307904027547898534711532584655361097177469704196085235904245561433246838566638162608345325527673402006428232267356127532014929949382953344110833236955204183294094394923361204823011891251405284844585905811530826090706612740398789724660097932602864485616775130063462229918400183414558306839941233317280447608840630182396572297582154798907344949215029115338832917643052246305724129945874841960265185710878588840015285107717335684274416071818119453115036652368925195673458673522115573007771291635542956330028374182433657776482682719256110169755516897114889530230109336657634379888199631456815184103418211378379222378394426690654808797936547345207957622665783528667763976132663165868768707005745001997729117448943755379681954803010029115887168523790975721117085409388955637015052581705407704150419407387248072738806990480762283602893582899042877731562048754321902378131255498067863050415477698101434087049315785052487773033817246650654725701489528161747941983721661631918067068813508579528061457779927320151549999197149712712156209024265073927988674565805774030243739456313022484759869044406602747249734018978332980725662668365601355989112391558614008404476699259489874935289204483048278612913076695508235262466148870301713218055111749750169049658018677395603833650186436548750052539014912319837784454204824977955584026880222265376696009539589524713701981313083981062164661159185705513162898107606747444552319062089497133556200215098730490254809790143810425478364654797485561681302004452483510844293145319322948707275430503188156040438893874856940969998460295552957123249934367106711665211680258657636133433584566894471926860025644583488426160883129417195416115215434562908144362272097443305872429648368868433654851413929880788409163335154898682130021014313534810865281257949724994691268317668724817760251843201427615016240459551705997107523406262276640505808162125790434324523144558691605060608263550694386458692859729731440258686549540352663372377385822763347302849497345312769541997796577732344703735213929912563441944440671217760860853337285545491277224282829384527306676202426668613986025970889308372052302908624421729355315872499330167800224524876345093185640325504294508915946089675320500042815040859046888922676390714690063937600708908520075934191854756881800934106399455826418927331104597668628425288172143905933985584918997006594441971952118010804920871114396935080939619139796432779887322512062185778268619822875664521335907111407220914848741923741446047165916769651343909221206005901808532884116281747714353997852153806054795417353973857595845145139173708396384780650879706621982876474525801919042378177996477405433447795439746329186541911722235406532165223099812062412592940025686162147054412610678040365402366271575332083453988155260446768111263836942910850004066268772762366156273801734450021353292894204443266869452235180776073982334084646744290675454272371142340435659404271607825465475978821313148080789353564222343338667722366487550682614965721106462124257667678369485066406029835318934885148707085266258907339544852289481190749084340809472416012209880175937240092111004488353705211227219115441921247268011193920577227574496746231740007812583165099813605761290848432236424999951785715658330947576599016720060482205981209586956823054003338098532840819098520689582592402668677476527834039214959769829966394303305861004668678767131539677313361730463793923218248395435808929937849308975061443405311812774609769528262773054252332857846929150573475413559847203705872580180421577824935568230919844365727666969004957574463063500158384021279831127595625057876060906673916221392523916538873791481528917758249639551045897854386378956986395432987951635791450038333649686587554167924529695792812000374236996568724785314715221031851833687337452222237910953848781333943877777277699984994911878728637628992563688370236196209385770895589136506202579259592972734530335364591432494460104466886719862288792570523488434577197954646349660099742461197131494765332026142286708284936845134474478505615411196445950847781286224528039480516217309395038205479508365747952821805647805543972819661637780475883197786801509038603671141917959217305341854383894097789587103751370311304313132406872123274188743259948734567026468199513815546794441476422515331241768673334996414496822033638969113988831603657442412129670911590166175760534758736561377033065738261227299319689728444652478481928399853727615207337304395259890974839281770588878236014023010074563231694505945321141108056419783003278181530319052207673951426386899662257383468505929425225623200042314610546171440531934654774327329514934334831889456165108700041799449297586110911322289070560811084127649830326841727626007347975409577176662471926654088547711934849876867162035387080419270695274788699771336794361796701378459013822012852159734118462084355854869538218163687167979828743078434264621273910508061281000540235952988495884974756651361221535568670761709982817492114673304331400726400778348466005613681683569668008371803711766370145224807653499725271076860904032764642288399577832178719747734396399280787490088040117756059817066030044973773645045099644844726691893966851753628522416040369228645034044917595236156662148288629578556060903181615535903769230616070022809253439975571752552421813176321103589481594004044974163319029973723772111947922708607920966735567725392994656546002000885941045788665138513537465721772360955044547591768275408596955046726376618402717177341644863766099819498139500361538605100573962057752835747007581646643728926177151747487505201017601545377096879501613749429215775192032559674081851198052061033219123424497605337823576266851940533798876320926592136589053293989939885290994341071263842472314509537628199869691934124136517329392509168122081518161854305146629453973595772953960634259769812231394126803906351896848651715098433426152935356436161034010169636044365025524679709743948943249087050839147356651710492612623703668607594078815964171898782945576657875504960718702623001733603102101433556586319951182703996229802175246425963413970093386204275074534405188108114608103928683983555880377636756420133819252526928361371815549993571447101289264872702172295026821998392507747212796061257093623467497158605633845678159528121968062277984665744656316079708092994125509695851651886233109496776841403991174544577365208564803687738258448727820413787381211362469340797939766477955836170601709668194330953955471711993958132429371563524280289407336553193880784064506688998019004186525175550114928606428203444169847793390856539724062026279199618827405080186678677571681068149244624608139925713358501484818080514970681711496781034846635319553561987053474553258487218247242953717551246791753629749938150633983732144029741930593049932083052346357443624019574645093658017628290185487222153427964714139873128985674553385574304228957341276404868666254569972406167210314018650503068770965349031788487289074623615813190871122516663845032664811825634132774298235840528854368616782983027292950123164436379328468046740581565773331988762066174692439373352412242729910386210362607642801635593103107690259779839512053374611351836981591064820443767046155556827553685467261744184546650181675130134724452888453133614802376256778988869543992701180045344895833091970901636102155792408572232317457032841213360153971287825351165111077079621631400998305611144505456942704634547012984114918887742333197878905386847389026989325519432085683907995528947571158302789600509790186515204633303992512266424201577374493521646974983913221706935500501822580211514998319715303394640076060214018730684397884241683808632952874289308376678230947686096369507678128895719866934045973339959437132565003777229689757815840978085712755786075742723263159087358259205073025616900981373776709508340297147904133500239367349042453755825958755267197924015720719830788055783583335103284182273902144127738699916472232172490143458896685357489858428576124616974289538949590238697841909252720783880758807181425069118098362234427838524793444802094248371360219736210806087216723517896776458553651074662219640120106227744877011871641150558019255767522776939492993346130227043907861434139805461241144476925446899583287320115232783875928931025271906032422938916236584182340379071700765916113320547271530772247818507780708497130963113685635143683541302350872300566671213234364343349203593553839817459308582107137713501724838928602656697021261357046561129861032561227788400376803923644708343554049485708102071745790603241803905899110667632232901613838695230485859434336468140228067208576692516429568541328237978650662425375362360188227659048394364631349534189737312125150914319009164575356165871825157220845309898598213917787981979706965986495975396789337152644838918482243598675562782386594377148280605158777585657024248531565726210763788749572543830497098284285319263362540860756220463022405637569287490175342063229206299484716864985749831738797466038985308269418595510798064654622157135122822194472056161035802788275058254660375482416988113497990378805659979275396543743977599693458778959667674822661675681705782302991502982105579351733005398513377789457892065191363794154634223007864370968828896885214258650618011789151350520083095106514733351988798145878990749792329138837817955421982760224322026322555688042606083919633068092206237914620758611316843508601408468666576411354883769894613357904092620694961555688953537334383538061412801650701572683029636270613479838650302788696560172421002576251404497440339492223514155193912365968549150246155675510999186775314581069642404956974897702211545205654135909167270612470847945037973247596245438183446509210561273594702570488066702643485736640627318147337662733027970236847727017825273754779874544290230512920483072250907278788129137480813452651548112691529999432604285132429315075032915915440923656426302219569875389163805537321207520854414847583276559912611779292501536655194830147180358461958156945058345176087813948788582229715260599890572727877345783219118067567868487033101358813245158619535578804167591304589854498785895393750489282263298054493391732225031303061802198677447900967499827438785178781367944063979516476349146001161059804109591198002847525991498548359723790444576588178002539506763893562428615904143936890698704050094633674111836033347880684328928140896794159968340299668216447686903942323803386274609331323110044668316748492093525736762721671131374742473569243584688649525288369784070838703400869578772432142636142296194190705978722954149261115410910393454275657538738521856749110921473123612893315519258864540861703783875505244599017519478459856555065683706323964467985482336530775104773627846545293617748774455663972064350999762747743513944822166830712151308449691772250058541346161440684530131512738166447696845794378039412517456843429916920414694485234165590815522215102512451912065624346222137797542752135207428223861493067761187771768071753594058047230201789832583096617514105700670473369020922841010857301334225601780091845745703384640150577600214843395385831628475432189786990989088629266562556956851820590948770463582272473210080102749778327293274985800200460801735172241042648115599857285054552479674903334671658448724728955137573936319634028728395900484222364405617590299333522296051165035189535742627274814225581279459966693257209936219928464112483419581651186907564518363971794689389290537291634659223313669384700686621694781131886160876170872271092904716349706089186363657073985567836786594392896310278056792461569811873695962555591734458972243740117246102095228860970435220645349738086214664109227885342203707369932396882984334357907846419339716852978571308049456676754387363622394246656984112130954748930278221548774736471400140305421538701129191566933321219798138607980111719879108353499206780563490714453666184918678199272203949358646000459032503074663211896763297572283875246303232999134682038814885430113155833641973865345554911662690918678874967138598245449111373149937535600402974721839495226677227394462384396106861409183687222319330604617764237604691638934701727403452325361156963497013280803121115625285828204972106938082659832906078623780097757632775379100120932440357338920602307639922836953315228466338573959635849527953666176351380343494904061412996628404576620736952283667311712180413630576437599504255672035533189833694777177966658615189576354006982972001930707660052374047069141017935657780631987218435537972649310814712305214386625026584300414379323661143001468622330502960650503788403285895370531639032202901882428684852114610501196281315545336965746218759173233982530327826747345799967004978502200447564658046351315133117381339777538231455354446740454755596130151765139093231735602051715734532721622635600122060681737546738399778187281761204224135103505792557308274860382969078002136154415604309344270295743696969821175293224250510906898650226222942033636371793633142506475791567528820062844656989958649338894882131897710158531021927098152877240393768129274375192996400422614947418660966117379413070726298074816754975043608337778865716860460469894718041820696557049903412990861009518205026723751142618954783787762077513324437024873796020598349345159466886575490599565620764459602598245323743948548516629359614172337866769664994075193513521856774098587561411257449547042076076410915376528536189623965691178251702145256191191553016163682256333061264652747741415116653323284242006539844494254776924077171397548739155699954966863081501336532265360147136378728600810861015965369246608961591626192034203096151621993594757810354043953936538701619455897932676778998852451098182020643917077274082044452996202079058291959750875530882822488367898757513986839792316412419341247522256749592001827194291658281691927774390585289428407308724763960665203168133683106326414136237989338151979260288668446226826909231083659151979404860153291966917255455532194515144807604273419185497872824040840182951409655589135480161774133941719435035876680045119498873510386465396284105665640302894570955167137800273515250329897734009330676363800268279437968538541965422186985698232020427234572183008362685917630200398804565837932035760122394068122451389823849954826897085404081668743829628162510775209513407700906269485218089160771499644359876699488259374394795915649792076154175477555870735516371532882605251534614558858380547277427155334824794723665715025537980628004100752770184075598809020361888189923828144681764107422357070568738627421455871569211991102023379048247393938247198152695204196938744901248233824860019380208712298242986713334678463467706581687091064748370135514205207770087796505073511240100588545678490371727398793108364982229351270407686983694842504506428552913729192138352037311239134613900899714578877396576499176143720441323949290307352164717745219201284366404971611393684980065172250166471358054324875585041872313708591001305269272952027180856870031885470089751618389492217096087910803509887414076640823973370984572076468951978736607208340300980104528995279347258439615990023142877313475694595224988420175701633371186308734565546785957865627816180172117700820710498268738646821741002261070042001364414753493559098099755694008071085872593001716856806818220764294310924005573418162981090795430802926210609386723362665130047432888112457810809756381357721699863179668826049252457485035868521476068040595111268070642285066032449874482675609570773287204637733053436103583637832334565219688846212545371933122442770416020707809834749751914144147559222716993751059563302235138598206687079781900500385911366701258816457973344171009180868331109589375241718401807266777093511086292431498375283085914334529748971463469657259324590603111197559619983197958816768810957704983454308033489718591966007159702519746043661175119595310698496525282121329451599576221542677235674379504725335456007982108042264611784154420311481044342696034568338495693346489894253959544905997490533964453138472612237087836602676329489176933375028814571506315386292592664896667685578382339244013517162334089615617205030685862030342451500021101555469261555523694177829657013838136125885875927433764649334724433628378967867606944005454374079234181187217877435364140977418748689913955032220469775903583315900544801607665194327912472408266672447262392602530482271482464218575862108250562640236141620143601341685200349796513724409740055541504183789804763893051509115737218092656794946718210213368438580473985914025224749031454398860144651176166290008829367813226786530661521777679028262476427363749533469838341019873244108658643882631465318863615851067152398819699352770780174244718788936554542142442443493421182909949095364069859226363643864657720209814086482955738840566011066199111399289136942231465947577030289967850604255060434385074443257324595275232620043084137586150990449311261850185516700867448610067313855120090742679277884798339948005996248593935396506779852968736403623981769868418879535693047466537170659051321342136044705298920156751164758514634036259181612600652590497808685607658095962336550703838560447012308162813450431868797442514737200303607666514206316856464587308803678178838730400709927887388755304100515325465292737409353544453973563852879617832108244245550653196392951429092593606335029867542094891938200655668060129598738310595894065352279647696197572951243220504073798353648039543021262642551230917914742582075617043169461540075688135769313261209380600600132011725077860445138107384529305248927686094807016986875416015871817366340186667106834133911126181646967401138308950346522880781611557317321413069273608169008167222030281290146117159859204157301825955874081645376972847257537511337959985937979536620363971047091223151496776309626335351102323646534716204716124418006898427108059797375576886702339948488021327385104238885449808552407613667958946644233511185071352564923032891666776459937642201598967169998605331509804268067246139898867056943811228867713300132834397019445672536371427399562157253129412659963094176287516395581885615381095152541281746284567796496710327694736070856829228721590308954944829589893512530843074445024932019699111497164808951966023463383248351931403052844357724880852380871935139309117494878569411495084892609314492138536174581849315558833999472916658287542028119472631652712477411562752252550545692651702357773711676429601177296179488288053545574373007904747670139783579100199934662789897952138316412155588593045560222392505320332128519736187506419823434404077455490094390878124049220282309652542755640341545443578078893896733460187517820263542242508795235233250163042281843818875199150271942224345720894217339724051821268467143908614544171458491774351167560744810157769653055288091586357870977355170275779494461269703271485526427628763321879252082686330241558943454401484056225234411597905404112804912025557921200219617301009804174615357973668257583387008505643539151488461027512949892531464233701012193478264545839773847869058770994470618629211551483552219061301692200790048436450197540771499071393940716100598506497438631701716438386129893552431727862579443684991354652317578468678645789841435895899001642367752850056794586223776347926094117809140200474195094599345876255491926975331035952311933016704054279049107376539675490450584097880416288264110436952485620279486955017718167135744479557530600927933159626014067694749993653660771580154490486822352474897838271395706489185093078993176236201374806014596129036203079157740397273691967876680702229608124232931648190524891445309224099413019988646082904004661161640718475011492146165998504826563001158105365166550908169723104492773052128279611674223168888943356257734710753714737885290828420668047851568810116250796223845291589810754578322269196296091179820098326530711467677645640311254081654896768140040443484359954323729129211962550937919361815594312906008035906758757997248454638251296667422352325403268381136380635622274294763935529161085055913520760507222625383172967886890393257278254199974801337478661561197427825337801796640839200827581301449374230933174087513091602972457141897599080960010531462856973816409199290967159631330988978931532880027795463014736835202168721664538435601222438816541189436208517842087669575277656595102922684539665121792938062625507822495196625795637897667214016687277294005796271167497099840581059128036232417402404644255763906116264591714312989948591610028271048604285857551404898972679919001488053176416949354893238306696827226309328314289152798189658834232721082865710755001228914903288403527770731798617135818766170215849616657882679542602591354131561688266809337090668922588112619177709093627330704242608061414965401992703139481384588667569827566238313933690433809875704380855203079743887101294062512727516099132114544754480455647474690555993523059375806935296117144916020348909890354205625484945696019342104619753648219756560708147785799568034870501819227008363081708125340753104561587456130719138301278039922453928056405127715549839838805564490386185156466501605810796556148080625391941514192663620934444588499216394034882712679821418924409764915081816308620461638488425189927420148106940425179852852112984345083949455950789385560850856953815939643595878520888294336421231831036016812382076165468812444091405903943314327811045120396892908624370759301309187429970506396708826843439014062725991669645977753204603945302648722317058692364368176479237298753794663141112398405855042919020817752822776592046305096369102597433786257521066947261004985542408251445231045264218084339483046037578483536141221512827252127697716163869159002552903193663034266573579910861539612615412873715243629261493022491902673392493646544718391974954235954646313777834943902867742200195232551685921274499628959359047149521858897997133309829191737047309121370565432836852028457319940963482089868517364269478872806733310666503440253392513395997157324669222245994422842051512651422420285712414430484993097956384742223673217912908368804935681558438694933298629959011707726856657974789593080823153818548302996199908215081404819396642006957487421071269921941261069002134737825777424594058185108975470764427110972068526234400217902599000375955590491181045016789187968980466008910501428783133484397527133940696962835588242800459473349719692994290367657334544826195101270790179790758177687387969307498733016475219781495917561891742522511891579982689253097653790001371331157349282884256208809450526083797250799168070241496370545305206152568537473238920974755590028171864347464722485053597945034991851617550115041858699393941976673025907117409024706623370609425401831337680623495938543685631068294760779419718746090955577034997038376447759218583115134340278130135221239273946097489346328114028951604827279112637232961989915866826540658874839511863214111046923044494943494173378600031674585911769747210128597014868857891804812821241874404799666722988563797383940171771716748996940618857883724973813662628780365985391895044064358883228152456365041178683930005110109653033061500146040529504309879484448219311424087261526853995546823071222265319752157236372199611660312447385300780797386442700354079406757836098784884798544293231299798140761214061662247537756034539940049993814839192584828800712707124120220428215212808004122293961954128549487671744955641776621384697387091730314181773841391741704369112421040292296168423070054832799163210547874036675517856980326815241857716868376766725124034225999699188763875267370220876490236264287799322057826247074647755408878290076637519995448152884669760150480351345710021168209297686827051666387883722242509753892866479279469738636883435524032797973683464896653638856925550157036536280153837772219063879282961346296606116061582166597334739717005984024342000729732266383422863349074500445456830911114127122801202833941893211479475034375389798563984820927335804988089337048435681061737075038403503689318333896996147549346299234742697685260926656328300476665623423613001739216066360269106894839476335390522654354898866384341284406055105583235707236524168771162080159927596127633737530383448593712581034097301885290092815686761073484709009029177420355062653606320580934294821288146752540374446818334239221238562037477843842314829362762865415861605652586458433725537937656790858630924847398132933903924372711472691105138943299418898028631562328575269028727765976014318475639793108083019429664126431071818908828964959775708173234621833184452159831368274151721337398035358827601913957252938538104951172755113270826624375960351700123108053726427089136396742177413403562948563326136414049208647821217497361049466660282754734805918613982541380143206996163606760532541915032587750507811473990890375494357090785224909039797514891002492129650054639312851569580824175315925320075735787959946872922807144488745171099795621129932488568372952746980940011195458945556608155698841505740572300888851964188812821593829130564493473542313020361457371730023717821920341049267718342263056959250093290649236540277125750264864971781038199977007948181147481973538630388695438247605790637962590776295886656982509093546788365289544920080427669174399647935355829928571940771428332643674230837661068670265805418770219207318448845813781037285303465378029784578682351407887269199094541929759779821376947826613715766852810072411670208077138357982866119366430464209165878353122068353869465994570136891817483373171260137980059763090276315021921861624131608119402987149410234244458012182920957053769880006499147854167501324768497008980516201999908201325183774461066819397857201493110554505922325740738910068451072563195394511197817121297476676926972416285887606428302825060452266960541655631603551865834157302366840183490699893980804191298705441745765039247974856190853612934780193380413424648156831545159430472860237142048577723108791291878757361762138974073836130533682726289690705955290898496247113530513590866873510436980852901654298740309632867548041557239178261249931185587561888075329959661213177432685030751495830463951417783835782881331160209484093449314324173366567401965527926064653403318732253850505183962154967065766948676292980837249943635093513007104265612376616060033851932002456063465726260565977398062270613357410026463625689729372286955610255195913448516112564352980738508797821667574150280010228112001661552027700876492217375491110146291914722988672255608596657998239765726646160254966195592446906708147824765602721576819714196968896884656174944751417097745965494353926105574782601464680410558220693952525260929087041035402887903807653572547234908125916996157331563613826150147784237667148492923033970081221372071529491559375846569797927941108392216917615206190701635571509067973714119261895217928607063916271551681976324994542800837205279284025482056115432051835965719018087356053879995636445870463435930968905037343423427433401795079197326131105472047421126978860183204465978063133532419309179180964547764728500327056461444218585786895201610445531824420293047120753946272683582382894857988940975011473547988428960969948190369644568005190261398274005420142704834882198049942609554109054946514424842417351797092927519046272831279596344148953171793980228694583400751405602948519298225245652092771004982600851123743293292119042486154145413351781427199306681671546218701744408680212665020918776389444875317638615345939042074570350382069178928230930592418700090716704181287683632696130576177588404966248150489402647749351526879527480027894573092970209597054076147766420720199318370070135794018606689440805506503167003906726969396984559349417210494978591044528234355719920467196666361980203922643027586207830370942343293638208048857566754285042015830383254536980088920762135176887963629673448486238404308399502322544610591019912639648016270584130899135927430777662277743465686016927649683315236730347835702420254652420086171359827108885912053083453037505448697940166078087619781851535827293375327520103314483852715160708907660404525420816239509524240620206750171963803558427169280791614959350802297214404194701003996735790494739739523612435293183055031295987272303439840329063142744012702060255667886962187494241945394608852147817537353993699194912635933253866203364256968238953623952814168764610128571321961990968333298272121100175948399859174975722257272894634562787536946261659548763481418405005667288251048405741129549955032777146456600567787181789459374195644539878210122242145488225035402359756526979653389262052637303097895034342936564589374864429357469915533794129882467095139058482255031871448399130281998986953041205697400339840192803206432100882048899692631330786662962038209744778639628350751391396979059314649444811836496794348681857302514756254356527802483414928326688027460840421805023614754431295434432631757915209404104188442050666482672082536487238336486976958047200518162263494845799281468690092263244230580492469305649461445316945934665522894019546138715411840160787401122172598171283744763039518336006862055713135325404899468405515937394254363758516807130091018831792214217222005565270569766925712185620801280849343092174008545477169767271915298876472205454813267837250325559980756730207247271949720845345166531200333334880962968285215923129641935502005378020245982498015345792288748245439948318535104092847902000103958855635137696370982672513379428991730473213437143557532344074129076181625357863629738883567244275144324987407515665077730453624292955513357149689258431920498964945599429908217543707460432160087241642486883598882292176235736322777411866964399056365967636174938401172002755103157744720910694560382626055663373331665905809791168101329912667104231218043849880619474856975537380411524543544543771676633781014185913254158633862049106987599000440678219158997530281767575364240582417562390240980473773945502607338618446265847061715378088906167747051005653080505918057769753075988510392229174350428903632786384962291931586583230702856312817875122201685478043109792943567242354026045319185817687589556636843176918294994831383125195920961342954830714978318901836613191455630417950674416703489213983239976887724355099457994604974855842305782898176213975959797462459848089437851250236870004596942701977892458069506398764626519802282177799843223417030969988105021083686040847150938966093563943439031342971473788697351028039012158920967410595000563021427053646257700129232932531527051834719142184103502567212986101976959876269672574139425512014631007694839209980155889366269612388370795744585405691649626457727878063509454266594511092681140301211514022284994681045736075121066069499634978614238565818070387664283414386918752008820088100585080086177645074006865231944817393120962339716059002415939681958012807692714399814830707141647493413283919774633146886587339342647619333775403817254260606008229812890313045157204902997238089081764263301548101947044993076549414560064114675784973336191116080068517620616244762630760891023545857712871597999972016483395777484086754746740385617242490019319757409645776033899247624855381474231962723407901142586084408916942302944189125021276613238161841876850570541794145946574585122421526140575009755490357522544871525574484544959614720031888148540879478246379555134619011083312722619872104162921190736160727025076933806671079648275487997400830649920631039366763668817628981133180769489151831385936074935274913768156399743696181309548250438963679602479214792313722476678885945540986165878104357800253878289962351571114013869477131823982717381044535661347856711030154101503752175078602679819307171982727621311675955066632367186898990755219512453207578977697765662073222140143769805418929430904246532257444551824905410503417843187326419993300850638380259751143955988356423633689090016996886162222678587451232976212817752120644632151084852846169098761659790844494876474446386773005386568963988578043651433271796875099776654693938692667277878514429973134421478836066676782417065626848137647497940392297124421271435407537900736590031611047722960199454975988618233424595496268735054807298316717036803315232701103201023019555756137065161832585259936966232088046260255600985111163277067487677915248165145876596646202192707417819759156372277089162425679755595551676317125841376018703818187426502578252811908064031604755426220854570360949863496396649966435492707276117977770368480480756592922908033425583763502897841502441974223003057759419601255334191454727750469092431919451013156688428142725453326801314815765580549616295615952410319087576885894793614921887823201551180791842765342587480063837547743629416957747687770031341365232101852642365452029918924879112632713741707994549723518901884433387748029386722016786909513074973365045265320910899231563972785195448443020155812440557411415520204125651789961320944281326381323326330388497773095769869230786100016639050858823450793847908383503309592934107351954051047091213733340517569994500922235621342902847365945584336447670674335412094620782829379106955632021613404049037610036025112279321719096810694284993392021004591950943447186844797281593995278195100075814389079128113194334750447234405370922869842534945312207696178968025323456564512701532764353112786302357949867741283387489332894232057982009209438879181259756615708844912293610903124235631629162735106222428351636357798172898418530652743553712049200930043686538526104863851262284697960702639402862379730880710945756241775061971632419184339328379464134905911091168045335728190380842610587574633922634381108827089703550103022248728944777311387099230803054411005392101763290799187723329941767387185605892524571131241521256923175153021689526423149676428668746112900985238926252103682299651406548635684543199137821671596202612788974696951536215287469937595321886311349664412404268781807763103233488009988045118573702127401272938928439654703379331998398502399688431736305531650823430129840681147112849571662356792524522222255810667957072469796141423992730177907720316764999683513985064405242192209138151358486516590954380656223103272342790151837154775275379443143385925898880427443633684347483274101785733343382468237802126283219103498171587636321780571521392499424557390006025468562500236787257701620600156539593095278403554240338927742865799243361087262254216668434611507288508555046753596512706324191408440747016365079628121197548207090864999042661718526870115491955793515502788355196598705974919308144381875487236459046893775325798713187621900717832978827705242698172687361729238491070978120332360887214215450614567764509344390216792014792280779418004377543731114543442778093937930394713362918489168902133812960716165947567090746991718732975077155601549615150686900156313977034382676531277672504031258072071659334229869653382149754869839114688204003007964345019682574063116020000059625681008525978744135582813920763826458749865342168448722914966594644170501393969614706295851970626846236867944833443476663643222587848300923714938486205348564863974304360872381107502091681354344164345860062129123518528825230529643717726832086850938768256612564985182276600111049949288756039896846532660734940176020919459620081238080185016773391211261490090080973509379730883969473606712700926178520930894329646769084973268880159757305556665119258210867952580353734473509278960052692209120736606795594378899715997838499621272897803215327956713208711868598378605384114403872492877320489561054310473366389086619713148069969434771262407622558256121482357747514995343599259357110801608768072988369188486001991418235891473433556872719069647709638923394504797242928910162886421381333318518118626012233881426334053489326962153849205742890452188310814890153610987044132141263713392935533526971187756543570127083487527400168668143941545314576948297228536481040546649329770445757260259540960587546693413395868566295435514886107416834970396726660454068484708865948546838186515820722341301446059343514410106907183554301174347385197738746553695855656393719836312705253975008174688813896612859129083962739840542361319176183468357628888457144873998337547620358738002837366276727000213006260998049918152240436949536055631945045640745827646598693934705408515974598286173438325491819757962088560894553912127250579838718527070592804238358289033671839402243698815937794441453054095138136978200808051904632763279026472998950536086722472000041577835484501870107091976628949360833278174001269527791099980648965958831873148266170710955127729442136819478361553082944028094351181495146906924655322215687698680688190809508683269634631498526607839314804207922929341738658903751922805495003045048614586367978122116404900780245015306562242817864967116486855431572353679043230302443240491612926514718481920295727186721016399307523751625097543548323784796390237001379607955312625344101690592641619180551757296391606939513355262231494254183067947152298421601703991296152697128865438087662503861900767219295412507021331238118302591472761966983249234598349077953174941474137997421723416919628195789465487767868592402949594692676785368337567778599006690749964876047210542977425671131386772221002229537606274668136612493193937628920763721032649527997390184721712793941700865441405013328931158520776681464155916425339241540520845121109726884885388155925489931708137384786472724394994113266881626880074688464346031915570611078563166582064700130881696554212186383746376148895421790693099151819900728546970105015578408610741184712725882608735459495553419844714832680095260036620524164210955561525106526761758506691253888726358606120287272208486818979865044050037716349187389675467177545489777536156463769487708510639868478577992682273809511852609746812780816921822150985470086989606172484654707508205987804894962617050579311581181157909834691521084735962861975879192672459409401286881134589443687304960010507504596004898031493923362829157633933811687602775590823136553172492183677921838903210828242824834417535174280822605495099929002866878409966403904322538137633371888874619847953251584365662363544105641328861751157838654212262411260782460135365974638898371428392594566750323929724016956196456131474145872114044296596509708832628107423358855494306935255682373785940085040109066791786602701929721567515886547700506238111214255539067737633623416788639248690364567948784650010696130582266192444243171201464783080937384627452817720069330987540685297625337675879825724308386085780327178912040335462397031711470163179722740922272904864927091049801627410754413923946257728842592340009009383563037429608922109647824632671737145427553324841043268965904142968739308842131877453642701983273100788136410681448895998059179723784156109560697488227479699045389379261918864477114270740901452409520788370165123923916029641431014189420499792641642620334940349383136480305823735172856660413611488555576838194997828739638557881079699960158798026310009700756046083867370960125963665410078323546236437231859714372373144459936121543352805705705657286152829516889856669737879670382517954959200184957076120828967865516344212239460312680660928945820301132653244205392154196096091567571966935427197683756297989749032705024299093969881967950763138515193891966538102427825674934824451824264669771493826836729130220816894401258340183053588665452295843146104889447092262483851089493329457591459996507551358927267955670989772874273563861546945746901938607622628130795277672156331130350764584113251539442574078422693067401321214255324528797818705850261545176041613080153375007509280632108225586038684170818002819351460365829866419372179778009784591588111458604772998816501811274998022650779364695939130384028604225509979215603894706450960929587471678790226861901122110478518629639080643318576195365527550141640161337996700446556295939648252109579179674066001036121544977897460973765002301134762486480453201226781133225563042159753316522911456391364404397851120924011592951538098142026105679414041969392270892732424001728460410199981386448703859815205716488440427436590023878231825571798498603743122845463637184897577081048245861483529619798972335174404704457603368235129878325748631322077322077366364712289467425629052095398194940516594667626278858949821264766387561018359784820037948116310867218084634708657097890704007197150329409329765949468129646352144208867739245736624109786978747421420877075463885846010196292444235009775169100029327325480852409366675979970036259294752732986003228938098130296371289201841408349036023536321611848251783454950690065446010685696429150014710372659936784901002835616856156010376192131287251711621258457594607328264281597660847359412689230898066906960671844054879227490528543674084389572237815226044890762201031720212005338710709287459701954489019860481507684102372930681713333422930941395070393264805166223580152958122442131829402609481619151894404616237912425296522858563256171872537070781628091089328839141681045806540522687725292964209165001060234602469979333051490693955016469073091600623942325213194302505680749458956981487382904577160565698078990104922361333014492380624902797835586993782143301902944463681540547243104459083565784597416885377842247544867160701640270897000116358623504484249483264417159799874235110675809627743510856945976179209972031284298810883962808652485668569794097867288185384184349974182906635771204390657131069510319609565144067879682164473421399014945973486221686093632850803809930560850680140001728264454068086705618904622509936096750347874313364900890259719249304604540481275328732854971137284639806876999844055812812262475200971870858177854622979483272973120983917135544418590784894669694360821747258332651067960004121362052891724095283429605620047337782996258159519248645435929447876173202509075007765703755964997125483488254348301445259387797057077220778219598160202547797950140920531206328968138997207932968068879509724566537399241012555777445399986269677184311709730602955984470545119680685712422007607394031821217324320009341401753373326329593670977056554539843434828060032785702910231220705310646029232415768604936791499540263448237646426540859944946950196546649251591409966735621803346450237548619386191663456568648631820659389087599433396144623932543562332222675087226501239978299355123906131006972505718777749022388774346127005583500778298259556716803382746821284328438026462178864723922801633225126106495172064776695466853939506620613040949102434631549282858327421672222707200480194373864533152829729278116094850346490194438450195720648831278112146491464474192187040995732346016478261560979258808237458630818943746494058868725423773854549500157633979844677732349926053366942629411220932027863847128000790949959104822001109998183810475255811633115216709446494289063153734999237121470633515070779890829968021539672962655176069454263092680100479302373012028010142368924778238219422706626111084407502917109497028335044158415428065116195409488478751277248587861555681184433862208314988506582706358942623366786255950748575494579120326072135053139626907007746182529194379660949586400569515201386874169508520738736690525294952435236118282392676965315000570398938352192714541816592026765896393458145736151804829758268306735922041262956594586701627186114970788012528615718877319793727475408556579671277492278361299835925501640485180278480134949845587331542532820102317522143579524692825072326913316774508517733383599008808131141605171467183465780388731642718098783654205352951421015092088986082322317153048571047833438840446255499892316151698782062193382045918057995928176077924650591845594269333189238149023045552378598190012875236957775132982215202803825047595635181107437747044040558270073214616351701203547403034197623550256883834817487977864062874297275015702330013400758524441490261211431909488311899336488081594325710805781289778685296463749424700608238672769306749303019945332316826969708943750077883069300368837604865478691018041773321224874648115593819599171781744044908883686465943627409162697163306266877884243731277929628190785698489805401514862304776550936956521977430297849144058662841545398507838536894292304728070634483109442052957258176076478866061296076823856970697778748284151795861406553719753177916432130607777489137067156805420341058485786545297749106413646972703243654914291298117863363661122581806685088155475490744719373349167549535587561074407321771466339271600353551809021351430638538243602800761562293654615260600791606907733904337944868867486641309207606693070287885670714817925902827234733193234316483473127446564761290699189234509105021527493023149982620723973056656394038239015877540698079270321988776442727221436716611602288716266428703974936347073183160782275265279895296756392921447864712728406119322948056027530156790438832196752634490611570117142870909115708048193528154835660670519585454828682264573856348228454506534928296688988013387770528645793159837522260851706506963021679588295557162420045483393520817962403488980767948636701508138860712721065101395181149756066715213440787822920418477582301510479695962955238880675606101731752041408669116663488142790627175803386174442684227665935438824414542913396709312814005357775387822384480308371035064218593340499152021476009070124064317032176215630600801815113511223562922055496194802102233332266695922113035834681711429971065471015933633596062744067060610729451827123158566187493525938678374376460551485132917228408448963818297981026125379646317534094590245107670464943057884670647105306306523557568569199057678829671309931002732463475808502973162876443007273490647677787677998992159084172456851946251079397862442975485061170659473803958827566949343068124027228451670213020525531515382473298613251331661725132314012935754276180141595592982326427772596837848741778433967026210577769591410638606849136709424380152660085115004420991702951809406961881815645243764214503508505257416252065643186547510688329120140792440597301658905523785215372398773837416979781245690853997143102845721746202297804169653890068300408474491697506520529225636077067661550547092288918869456877341791731386197530455818342053108996727854009980095117017248115185832787963445448697122672371324995956107594923311618074921877362336827336606452330331700723096071167169161169524796431593654410549693013384639959973881224910213852947804831328989870956353702042248655492519695364312930148930256307715329011069267333368163638183323891734127118347037340714994861907582149972985541647172394075013696271334556840437265711435777085611923598928025700557920376974514868766584582122539861213014600989967296983045864288444700221397858136890458712463967381938927898429340862895822493723384174029914975858056746584144332380368831452841817141542721003297307949783217382072882645893352588662512532984538575137326418580585987672216809042085308752294584467948745396211853538737484952109535863818982665880759308362403277375405358570597068911152945168026514578299503696419591445970960089031735462122585121312105981596093266658316110141183867216124762777651329610733435773669477966281629293787083220582974009866910152208744461484428937070060918388653590936148378849525781942766154290100635995634232028174555086779774657104697462087296483134083002986517630951091281965994003724965185650302210091704539099140082569644837139286290583758542292855217794866091255319692212780709135076299355133523760488305274456796700717085675524511021764822876294712289433958724889019487038303977176453155513342701987323563349616613354111596774721721699935971928345544819645264332951067591524303236285413445823984051517024288985426696594328245087646775029829846723164416246278821876218328408607157849622828800475086074028933038905661682549350890233557254976270825221306676173139416002920255474875713236501646235809560891254620555231873583817015707323523699544722906742785520432473345667871940735241745548030092549448320329420646051950245678597180795386594980461398664504950288574909185064461958459381193617371341572752739087522709134675840716880882768228422273185164496298767666920943229188316551826556910808644842222373379486561118766685740348231553614512121281221189654746057655246033237810057917698031040869225082538406964082749506636996204317714398000668562778874300731392028293948065581668891794690750879862485650655896133523280676804759035595728150809067044683235383544571780043883289114464878557769536244812794496444962301851544065866680035382843424803656746578120877611809651636332942430001070595377880841403922642994470590294724526613152932800528082899613907827688933748567421234504707153905494502800125944186995964840707256413299405849305454781936586465775634997568869539877980595127261234100517519529447435200021570198172463936910520508688655789320201660480839398597433498038620324987078709040574322045766836912357893040496781007041870059228557775195382853099845134784694286706476664774691308659559994502255192609060032592190513578583866436159362526179759201387084075989646287209827606538234163148968675216561800019808523247744627963114075880691874486374561794081263316099385154557893465493329422890300152016573178076803864765229517038152337725404181615862389106955253962112687718636338337654376350692766336669014402424509500567061132981565767562819017820301046001260472075082203187213065931532121621848461401049711850091144383639053766158480937035922792256401307096977470457724909408762753641199969010558862968394877968708399634576072340459878183218032006633154030780608313162638580061775357852416516420663935217479072739064715475410984689466515329070760902969742542941320090016873407672734551121445060603946466042058416151202105323056828760664170363654847487278685817759117301305215751546619831507731226345124032472550590209964086963911825040988383607964366440778359920199540608431188722681987112172312186135815489926543102310146375817741356936569425161328690472870830274096227518214996738082487490233618618943742185671628432703017206690120609641036708894870868794457427956557161209495834093221251775542025827748456498169517172921818385401408057489128276558456114830644122098249600543190092950491566071710214884671629108872376665974719708363534527309084883094019574625769011423714202957184267242587739664998780874967154159266770203980604475172875161119523828127485172177265422872380362904592796605763502224809044507534688966713939988086088468854755803786264063429091536468467178609626936460888474825429370261659484413906754176237632648182604248651233905582776859495943908601258343253970602764395773097076323257457628221919020851189206226238881629077287196302414425084960453088165551265682825716592232137324394604855925317410313628878196356297047254916192631478371003898487872921013345937201229237588071312374413792886305423596063399513414084958992483203004026293543010779769119646612307128511707974591188013153515633206762830976448218337089654621561852212346600730414132157805733990645174022859200981614220650305942052851734868721817870402876041960333577181577177098549114736368519877948994980662579465944192109725630813181750035607584589172970084317873696332570994960562358464377671233725077935474180173216175465139355117895382118489612436349517277351134717600205673838216016931466290068436804227911130206978787604286363568849774821139301853075943683061867664961578670852285540192642489117736890303499447536822695737630289879199962121408777454059811069917941898260609792671793794125303844425793176920660213417935077721708640421778614666573164340286628187380780704282363002345808340193163529896401268137189453470218069769861227292075360127257275305594726141971880132493234445737834305932686851680332128862373796495804568632043302770859404634002296111063578243343130879773252903752703391759667550778972272288519221965109776318211840160631047892194820775502493296383187627782738926624298992819638633707968000286864256093883409274205101096784794982926187253031159243998057906222627269415863793243953473242020173628684120021025331879655386633602901324116014198916318419401297272380736913027445341627021889883633930479055960473714354665505107318071607333584408691670282437549934900448279180483002057239982727552004154494156542399178599702127166905126510685437372325675433063020122699559972117805009539184277992684299056912156530519951587280726328471918424584159467602767648275469796815927425892220404811122502002013875103616353139844165470039109743014348793187394545802875736514765465326616478738788273418332128002136347215911791049515913353529307521011531825140854233823025387254441305200983171076447457894658578956698457892088950618937239420770158275041288669880171232148388118739316502189278766613345657303221404737620091375887549046273151188067821584344356548801773143140661604098856689602419273098104732993074463675886447680393120850280854864619454159801882175791798822444106968799153159497910244369827484428528815179738596184408326813600312992926695120189723308393426820782338860463442013757675275938322869492838120964073838139129090835899108815797116968236259441762341722277016172794301811810523036077002467539314901170818596140425642782541575801571875471616905120483505016007157655329107572225431911772803416409491240162799860195728802762589305160544217626177742610819627089072457479243118759350102745943658338516782711112137424383708902510956979675652403288818557236828028953791430935271276123228186500964209600841217972742752190764393495838339978898943941267674616931000884288371912903722539901089517247852814430052638651809235121883198461640412611329106528734498166193491059927762374000647485606677845696375550214142601995371451039714363092975154588094201116543270641966396918233573758839085461376498690510608090699121174381491504844338745441744204633916406707681229243028667545303864901008433520804695230099781274708777051310853119129034659428584717475363310240333337862633839580171491928119344564553982300524693411070266891600242485418189174212474471722784263504562420580807656042850310653621547207758536679344556964978500102100924743207300556281193653884449430417762091650115719418254005225928197645961883913406630822051339487031895776581716535224920431486908654282464052506149556468444964901923398821538668060747920155371111434175122096000130328708707532403125183422560076616800973314872794115554521599864916091352650541666627048554635254841789569266154881527465207457091113780890084968371951184627818035130437676701803070488517627632226952438599509326256905948898315513618473020688400708116981439234312116459016837570860331368807869251095011500295041128733404243834659410810489158694188812503625620834333624504449949522975945651464129719896742174099324642692195144846938189349616346554498650699463003301734641717641664636205532761949344064528183043031741110072026530218031936449471373868692960508211701531629627476713565821349255672583500369626520869385969897548959345789909213164017175467076223121601569993671465244757420828701751160667964528898598717814223617691701883569663276182014979212169123974891422314457580816017637401921932189609024474245700401659192370957483141105299428411218451479753926434102879008751360434376816753238156913003900393520177711723393415055780716674084528099992494215184158520878317705586564828318870333798765091450122694523599860540643897882273562401431362083197267319386013066040432871495237114355751608786044721690535220013692456810968955781424319595278512442830616231497058006628243061453161076961821540596468892519392630832486479347039794084540475410392025838048182386033417451983018978571880524355634166123387248933154373248452122490193771266612272446342311600775649741065469470309330750078812846696297785305018664096548191530529667294933605670239212787003237281216672440478340406087417006965086518142536596375224695868685077276943132426969960030526168756193666499405801818334888793637050189518793160788395471629107025589449285868825907175421531091908416541396659564756225112679584391830465152084691223768673128805799165153982138467135393363348530825378262373903523693029282955911749069514629988368863798535482121340716511473421502828061709594256988427101072086833505463142049984537882114713963555952810495204526764696600748268110227235404501710154714867479027684302465507385219871704022787490936617069861434770201303399740512612317316603041063001262074952976909204083475463607344707725010206999325136940016034150223623539786669960903950934217447378053129133042855796659857060951455793432233370266082240990716085465462734258593739856357623115606884648944337093304531700419643748830320839653873963183350055638558866536563183244215820759382208971127894917817865292047271338138561746512765057208389698338190409512713412547150905777202222747052901278054593341611642880694187752083167827056381824984356982653257979747883673847169908830065085578904974316635496218374252475518816419387384937230054131615820540011454073691282024667992362535461933327831272919600210524678994101973337749268992622684897075237204290201034453785938321994569698616405163384556297358720951061761122314343763318114746212193943699856485092548573761020020164777872269387723489969342987815923430298457191979893325586861321551527564518900660015886412599116819035717638936865866051783806337840425776970038029488445627717202027366514204892990016488627255139951162803673740315071763410344358200661069396736839066865972335598348456224837281743497564951548486567186009207045358193279302508210243771668299159433420786189662794637660752063653979908193144487615074077970191485924558376765944885536106382071415376888170932662119383661573424533489856092114946477273193384101458098389529175451987949897691130829236271382479237655162840907570601567730917861324141099963731361503291218267477336959098133200105083820813151052511569340145305477449672147346802640130307078407671261609329394215209460797100095000859365768683087919889087917178368129407330356321739120698091380084931173599759001614459562014699991893309978650494373474382058072609036190645172447213772197758622351453000177648810024076988555117854376213132923806888645788251174227528763994790149642929754989580137932657965356005930361451133123418020897792826820239855392191904000358347367823826149041725033417155579958951302699866979666965345366316690012764893353129031382799752255566455671327661231434049513236861053496156713320675355744970170852650639174874833004688997553542566623798051817007923584287432055686324151776720453516659172131936001924067009763253035416448262092472422997736252438774625905224102294176265138885102927140306921145067708609672331085579069572908441201665749119688387634060198647766661004977615908031056721239349902661651601252831300498279513617302170237448646467274583714726284384197430819140321276054733255706665592480388369194464765069632309876118969417217126633234270787223001366666527766646701820413048236349044696592603707378721755793821090842059135391950471650710994182987750746869024186058637538104482004275843819207174047494903368268774033450188534221059745189451696601628287497487400338858853919641975315933896953560306918133597415397923733874917829918891049418142086049698289118565337166943328896685255799739973441449770150529708996809420817296371626382840927689179203894568036179235138710468561966699990473207196499253614851512058925392701808289658614495324931052800073454774636184239948986160576927698958347875404629732337441136450865025540488608009968666668884116888021872726462119723373238483747203460178109781717338945603550156734979925703135311263908243629120164261728681539188767330866906317809333365276907974893810098903007789498718352587285530689379674936465038676202021182872503593488269593771147865701802927961796849255472051079092893070529698788983735315516591020662154029002739111765770419789160642622526552253650135980277121236346283532296629859121192576479919190098648412174984631634273134111476143638628723449498131134269332034416947587814928125925505782680032296224764331284570923934284108125615010965090077537083860221465713661744372180301874837764822077836736359283416280367754721514128110862980326447491631807811589914419935684389034342637514889421863693721399684104033986960925998180661872280626893700622696261031044189402062035195898731219548403781730191222124523769890404487455845313388775369668267514848505481852223246212422980238493644258899276025984243230549931397327601300309919380063176533520001239655054644173439834530008428942719452642631146696350796009331768533383644546163923413067496186204418219149528015530883988665209702947488882031047632636748783672673800013864297534793037568276912000120189143288155849055633241427556275711978837464448343760034397080651485330176123906873962861062992212674065006296160074621750748618075885546273982032582686788373056111052338590221264673698517877628698860835145914204403502103956966211226023575878308219584050439542330841355146610864644001721858724935834345862873324484779751150670893555106977799556602767363778778338251799489470272734048969287373617675890039033134408663929006438415096152593414180533046777879260692817488808263621601991245983584474787955766077554567583475391226835458709785980759602602042987996387799336437847554917696280076967449526399100522561328300256767890109484592766208849326789690723770570285115243138596425543772427675110364028441221333947281858253273641986976210661573425696457083993066316140184168330933527135084998757666284326599923925801807110215638699156383768679718316161410740957578018280889829781846763709867873465739434463669249248541045768913737753154367664232882229445556922124991333905262636471047060757417532698128600776771391286763797445275798867383612689314527669334001297567224372226026891643065774917893722158504521855271657110709746977153816628243452849964431340281643265365331157298964558865466379660002725523208774984559512374442161716554697285838623474198781347471345480781501572320858424560446516586841484369747945289604507929592025822168437794692010732363257095114215297727191768643630800559214751826549197957030466533376919585674294133263432965683755343002545723340202825136347930975201030244015908252063819919725973045932796293184672843810610889815651359657720085041508064010485234942225530793076854854017877937647673636143638958308297651648383842018455280921925392467818649994774251714203159848489145069670117253411707629545234749781194178046618327523955292551285091162985305179901590098177265212454727220017207797482500688975416035294733726083799755249982655487426780957957129988126354408351742599951059560759033676917802081656103462123308236005902439532953872084163710962783742320037668694837476714026466028655265929643559105702106873381601764493416600219499795603843788843220848040616622992817572542258101664475286631754967311439438434644247977504598265592469588079872574227086929954674746365927499405523099616652449728884723168258450960042211729930550243163855715819273651238538566608705415946658786665084916641409234066334840800019738945856894099258082297417091886405210692214170914534156119490216500506011887651874021030846131699421041568101062382819923085385554501803459266681703288386543323617624119711269826781203990785806474367470286416147706361973145779816572747353220710780521660358671010339525244366609966766043733374193799282315002187902568054215791687530545494861258825406021899618445461321449010743933454958503235364116661976178367694476051411672316332963806506942394715853760119403664579280953125301752533290382764565138195723648480376020205977060179157930454903293211469217588136581911323775699911151563436432568335096853513765911219565178337911692361131103638874499390630614310064435414129075693416380722679938489815771631309665588246894115510876937916190341226209877478593214453777708072890970510897651415001172685281786449961966497220805756175182938149514227037006964882755478678097854181491563546818031231207309607664830120241826654819719536022067598972514583079542375638226133483758248326435000482139236325950560719351180949728557037878893159566952787144863769890000377662143565723125383201238212902744259017441455039590177000088436667134524773954427293944463287261655649726326264160216885542914733993570146585571559792387253972928105989629191240296518245373194450324010892893937304859950294279177730016431045925992691433179141437188280867052453402333176364039561436479323927608631033048173722661921286197179585219176776313213996762230840535050756698383393234213689738369457015117638126129169583376066889636340313235443105178700458717820983942161161298883906665780633136961734439670001729056463670145955763751498246868668877843491846479990075962240356109060500152893267707798498024140603552257347737234716140041097081973677754770817996195225671780944382577783769323423723914902076703918740827641996693937241819793180522282357646202844587794490812718396483963848357794683162239709971223516064328434617554419371341441776703549945837433051141665926051475106201755578017143611336466706103456735271036666551395362719593973092134112036853464536797780066175723641165026525489908028910548532572919631451193164762859852162740898440772299014607550345187125350792722256112905156933069728733512749394246192807453351224591605819117025428044577002662601937665924965088499788428298469034827533886787088976274968655206665113401766091897838445899589338866927888970609832344378952520602749317448093954663032170435777441968364607509532905305498080896762069343635392855113390171821900006041370031595179942561725984449921428798153707475384619180513349197916451270044439463887444317069988835141282102751388959805343911351960443547639764709055042223191128369012086962422156514515726182801513581435011236227002118105284242600032334515893404530352386351041739697823200721529662615692978668987571760021400274761420118833334362915121790608184028298260124365151085594044595879546536253614815026821373899242953096599073436664304824506469433356324552175511479382586212611662022214656518910998916100623263397046818002176845632840572045933184192261179952520723970261314594998592877232042924222390423345448396808632920072016226418887679400035379270054718376788258615758055041571439975409684984971262576574044201454164311221293085898834068223464631126150311128188402557416775230389531091004061223903538151800890222047131590641811818451754499258331772849393538168994619533249195817621954379508341819792152256879988095852791995563614471794258774409923955625328594767087754161130327951063316269038245168604617207587539676322083410647145042672791035657589514845702221942493954916418900499974595022047644370581098103832128122803955287521562173793103784819688582418953650754102818020893499648488133133997367897449107960827921537431162130677827141470899037237225611310315820480344994961377675574565040966453774942895596471666996238439310701208045092800646925490133705778192593898832585988390157872046971873893055860738130525803347488549968813622571319487144308821871399921664267239090924799172134319496719634679162217463369447566872793501711007348778679803622121366472747712004002917569588370898085223970398565472615684982201816066579339053432777303612468179217853160472404355549621779370075717246955954903746489645803581798391661375576656717216091348818999078507700213008832960403029908421429143254330424512488382254699749759675854860942313888239791694398040961029908369407825380245115800481450054149921511259963432368674376508293816003860856025004825468178703355742917360342861006482047318498375557436993552175271616109335749937946579899559933939802403454522576534089970620989843288230144238304632298439114139368031958908219602552693674055456920778365471668802602814209407804430381610491147168026162415294429771589311257159704284117904295161402983934267521225866601302599507527796278764206613175528654351309061164228316555934305269608201556559765179420689844036000989452956789145737266586538087368498143021774186979594581134826229658404253562993474486361546869634614803255862759287792310059212200039687404539192880335262561121427615748098742181140812535358062228607575952465740662091020568755617639624266780175631855038724795440802351163300166591290506099516646688736396079830609587977904903687813070818113181882693675735948359245989560602135137463353224141974756514649994928940493872840611546008707738280730248035111128324308422239238172208831243507024222473778571586613438663036906127509404184634335199829881287558609357529779820076119079814757576610966287174304290798023214134437719853878500298951032142748066450047274141891992846963117494958272351827520468937764616786960588353773847379125787085995910512266553294386734617673762660474947929542753024416451859444844827998074048442022539951976045424498508983516438715134780734598735587035310539323539417014753651654811446844969851781565558207200449876129235794037515040173509144595663659802302829154338369528449842613145124219159738673247426599795179758686143054630626618354544601598266645924679767369461927803625107629960088138256822029947554823942094778442230161943678834648105686862865933717375962271809392721610816595876040779846794830779533937779305441682844349007359322807717263759592010804195689611523581869174854553910297220099230590280697498067789463330687410782114168614059229071670389106532276258785618957372300558722159221514986547691774013442255077397948870577881122230946565722340100462697749927192820802548237942720246735607412240662771460857794763036559021367854213159981498483275905542314545042755421139723452806472543758007635153360046662806681551975056895455815043004655910267373389335581706469451169906725806259861789939458977755418481667660378252224523805002616526256174556938530621174413798109638021765107482226473575537496070985463258736579497653759790286101633573779057773494668782716517960015230614133297261089684829540688061599494259345135829424728074009261568648637764249578766658905109733075259742120211611403085824612877624834009701961980273911633921877283283844720088797569553595343842554310672083577974320245093314416406558275322467140878518127002583731412963698878885938063504435156209911418381837440963535883012632824571462859991247733372611513853189791157673697670145763735515071201358791763923281106103887311301284238931578400796788184858804153787548635685848300135820171286630824523275962340256029059330124900618094443249976693122405112415996587679816359816476526206495419356123999515442601860739891443964103849210359440988877486151473456655461577731598347198887201709854604305941966109813933799208740577185060314492783414426585735169200746925760600497734185622165321116589641244970461228621257861156630156802217854491834560200745607069229367501379521904444475220379631663853822233798620277047634876158912256106975093899952945296151845198137775527489539082979980595552949715383555807324851527632596905161191360834387408961131583189626659791368686225989731197857855075937793567076735758881413573656575769576737096839273649559968573131451656772306240993080343818963875446569558093249960010610923162652187989587143619598738758138679703179819423807766222536574527664401083585893204375562606121012547017610572551214739887702040841374731884261351822544064414139727377010117697496638312850357637887319747515187800666698991924053593554802362659564493510836111616102618519182849360138747196316647804101630800259770605570287061656395699565668787558043213842345590506488910271860520657595561370733583591882927972151787219962155570579193867126967212378351376837802561425159058742674478337232914830158405593217183305614435459628631330605182229882963215313796338881184286630722076952887309853306352567112397081935358073633042056812900554037063262877189318510043294086015512379711602858158897208112120761661931617659809833274293228236530192973668655554588121346364461728811327363759691383218571198197743381603983667159582514340781175341967427296574469166329492693971244967829462747475816329504214126691167427918227201168478890273621204943565978618697139111665159173038696552384486778977703500694495617810573795336535384473888775321125566192327975044749734046408920293514912342993586960674451049908577252674046755459063619079465046649395922933261636238237328990617206278559548928747985403341181744391016543340974833196357478650554988404421535183549723951737377538395269437389599340970424349503198330331539018214056802696180614570070783345976385997896863533254977257822037874895446295051546171166405574485171450030355052101076774774648189199241506508815869415116158743704356603229847945871529492936407331549789743219968910797445931180453057611122491701250853352375743055189419096441885739842356953261783396446098348297039592288891336623558743050110219604443472433404173999387171223499334183257210818956223742388527668377236962567737086167927365655211379185973942835773976065170441247714066719868798209804288603193112866711119806020855037426427276256592952781034028461954272362709375628905923458783283970110610920343109387280652519978942550739488511705166418295524628820257258634769876030321678950518847690593905056882706909160714663687270604598446523838909864837712604661260002473147889155547443968819763464844436435162294838820546260330815817716707082056203686992170164666937316336359550833782283742375747059124923284998065157384735355573546830212066954047573911552264367451199150897531218538341601434950302567854094894165611872902515382968608526029492609125815986547419083674854530806365967806449999448904400684806761362168735779940353413939796980557820555614658013748054721736175717472626837013161131127086648259761801214327053697251512131332824174192806218245401294508058119796829908899390580676206391291450334999095225524878000466166021017603583497322976490285345995364593797940528209865467350408373667647249086772312956232291326819613675202630909864674380586448342265365214930111053914827268994027537418380206651361564418069841176448764157936154783916192143836139441561031368914079763820667498456872373241764400538823277128401566370768459685928054290750210951585819676317901150628324564743746395071172047701583190300540986715432518955230991058447352678246863393490321921759038010379380690512986219795334074676405656307156984051696493734279912617133928977451746155658096480048066541682694744278579541308974766746169022176075998255527163081484606625726544407199658970641737566647325481629995363911810276085667863624191374950142442792052886253228382794028083673251978558182459561976713470575722701805602174311011433193762007678998023780299482324708158751793236854725766438845456940258433722195410671508096403305044918786778317793934359453249059034869189910338995180340613796361834795473700251790860075465281775340327100157528579555153566541398604610559354931840428137306961117849116048587682338290394016109123955771811015815024527244331150531729852403665081652681493770154135114322239598027829097646440657006524477253510366120348527822412557836865066108039723420712781788698003470083301000084409630883302593704573102985003068892036725645836344258830133751333236317684758722332221961418743834677729556170203106513409757302710061588696189457379807621279396313868457626832205378472833002464737616976190799074261777250994710825151972123021747937960668225982987557347602172874218257402891417370573636692585403891470389710229282091070839404929974434128065679376515487663340877257893175123963207376396646248554628611872582745261852423217673986904127169147852657469429681092189016288190809745376430185855243584503485574725051181103768918154636028235969877654130796963404483595200817950431828851320274731406074270151840004270272130248668869746849720396225864931662550048950432272582718308511257358851612522082327876934570180498786061479716436665090644863847167460177832162888860483727122157042357402073341468094737549226366525560181533593025278458812312976408481330627680527329209149175411133600391018148692937948014151497233763660735146558338887365287362720029745380435673573223932495469308572100385609182584680204028971245230640283045548556454915246959285536635183315914683141084803412680542831177711921994943685128006958040417139386389573684166479920304450638007672810137999899565990659777641583215057860610487973984813977582599681677919248182812661147858264121510227330431992145547416466944078263287571143736876729939088204915811833172982192845447685769275405166700800341774837750106643064440947031002869125266947929775809622025987408998208514979430079533939263850342917470166939472260274670163501217900289285483219921459970527225024979088115422122921485271203290068412169789124091736779566433233228485497438368813096077389279658118899431014593283703977191571773137483982071583259723802525568415138976012003887017557870060289397023894586617163707432339397635942008337895117414222904610437274933334927454065847917728418712561616632656750899733578505500361612025764329094645499766825601439155105826245484292247080809735851617489994950423473945108359432697679898068402981254869083832638129586837058782438520749438711862696781383730792414382432435158216033403703979783240476091335482844995340691513338288205688414369953909296773657034014268976042397722004751661660635438659118136566399963671518844610128542555201166077454793177526051834643829784740109536090063742215523779145038441016429001483376758768902572574755471664215395251149480853663311484249002561699952769476530163818604766726611288116026189464724134816532014882491278246862583547421478052544859849568884268130533443994757294312492389109008675899153608934224402144762289498851756948216743820422916785606047077679586151554209683657481342842132168253069021317125699654303595859539652645029677571094722015767323920103821724894800715633144815345396726680146792036069211990370855044446563378387821153299075055555506416163075455291286965973700935555373743663564506332578690906351965137888119470192856209677873251212815807367023258948343022613932932714111544811122707207825776004285910315875109398137866415671795210079766611552346387861725795936885251704713946226048023785631305514361948873604502497672424340591021645308046629683337023112215607351776496122526947037229176804627518604040147071560070441541512365239203041759429794753485791452693076980603134393731228246762121128596988149532669498756069839835474575183607016605711176603622615793990181412727656912569343673843172205973478552937661835856421705340161224077893055504364413522658145462483680836235720968261786722265414672133119043396467858361428703803754810966563740094247660028987601050635332565389531328040707860361799945419051029532261462559506665765713788278361929132170125715942098427606981282513724263591985535850929675965411148660503314705964958715472163104454223970560621044935929868499131555031291547194117331098612761017523213960908053894709430109686696528784631049633526774911900224043707352920360255331208886207723965672945456028601112104300193152336003914526997583778328828996674526175158201608761677796660598474710137673026439940486802809116038743769421295103808618003937752441225862975686723716129773825538808424116206150910283365227224326270343344925082749378538431784520945243975234674842787195641583346935351627189782854577480692976123175863221564364471800404954762327015022100446030017014036565354338266593182819601980922123691285155011084283009295902546538926868855326602408837854447522983567030372810783787131313366104658736566068350123260036518641056703612864315645458786318359418450570406640364808172540087923226135258146818232924413146892507116078618093969955651534530178747394059933618954837601209621391578965951814596468715636219446463029601804400938139032719024492700548377073271002013616928143635202812609622040672634050002861625252194832361153924243275257489066879402179424926075833968519162116141641444116838272959098459189728285337044467641874425496094022092504766935225121059358030774279519298710489441570832476914002777775809291933269752285950494386793840712159641311591336153733424277399293305675518339521582245771952695923378111954726255978059229356628428956387391902686779946397774567483753168184879812382516347260555018982047801637133093382768765585465107489574173848715093904595436605350566763134523063894774769036186642584145800835398441910577478078575792280693615164603534197641185287451950951645380740188950601380112563039731861558535212343723266601510481795339861738276418751317810930397937568221096878077850805793227279540929374757863409282516898901663242484293463301719275839906392520162873947641758031878922484896453442831545545712328254878991709131154107303860526731019557094986538242995722264943812862329180902895664544342919424520989012043447609905590398683214626175277440325836775346299509995626539699070415919654739912935923606997627889728946499782901717316665232180940479256714431775043958133980427877090753802187918266644610118200433756008372654586861279884167623430544769252619737785733135223698264846188254539101256917762519429902219401214896390775660902643496461811227076056084105900129606461301378611830190046644807841315411405665554502696855040142522271823698640735470837768296501925272313228343536806625569430438013718968693468703787509687414599196236790663618080362811854287596084254169435802777891490102110614058400956296620531412198468894141158248961130535876512664709918863542779890187512672887668255585940953632500351527379806838263267780364202819314297034675282991584412492955085145389233820431161687488544873993535579391866513841012436026514287554074837384677782447917412952821285753406774020799297171436298094806027610094531294450907684325081997834365096141017324036923674684619033646304305719583116069247383900722418868976001202452178540133735497867615474670225608484136721694332383260070732180711046146196903468535523380744992960812897477755483493697337297940553846973554200199936730048514351767163264384874889223517704937259865655630496818100277699956942092231282897627882375910328306208158668610208151895909458807802692936249031430681913084266752462808346163380995803336097760515709360744234929054204986752484551280127297634482532078864819031434443526127965433421190232692533398665912158605417815080918442070071009530929021282863354394359939233308128180367283984152195548759907628913258227298081466476203287080099760483807523476488893072878463494401975700272613376960846419234371042473800576617220869539481387133047803972694777424080459319729841389966587018775436210713551104785269478119423916906570809775194769801659817455653728841386667007601964660253054993279576570376421035269078831727976093133862054735197813494007457147480499036120965483166089806439848614634569801725628196858948188661263144341721825830681803113266193598332004824597831752102433689124315300566452909230414899554234143873381566743117897432659766962974073670351090052064882480242221872885597780035131016232946197696089626495089505632835631507758620584306377099919115477420266087091342789704363271744738224596316651194760104392950233444039549820771676652771468701787371166837629215859126366065336625522644160159188038766121621346567853442417487336488055330837221560674502038579996710411145541041340701342854705995597554783712045654475071979309286296078841521049302727205805095043383850139700883368126098696358040032394710756384238340220002300879672523739780588831490677699055383395836913101325192769867708033146381938263475096243108396768146816872506022554515641831354657100507639520841664782059739944202834065207805448382177745138489371683794707728511091980380627821002509710750921644467952773006023933240903930214073831032657841812069278581794476513981061393595131597525173242426942566757993087100389556835775146849176777362882787315589683343939611495945907987805289183638499632781098149002557989965877456453108087913455041022648427453988336647956244160463553611676036609629915468664629398140946892727865574008975434533258771252423846528556046083553166929813379330633139128932015799066244353805212174659303849979813138889698201141691689579726970695292856005664538533173602721046520516871034458764459495895819051636951555480927994180224335197397579193857362136392720854409484700198581288670010143829756679345032192717142175473866133238429620513539438866459425614386226333898042363274370452013576632653421742699881209612252811584901838066856205437511187811711218455959063681797925147645737376715233141473828391243153659883426977037775040808240376517878049976944204681808960355828953538527995028997964516805753701543901208513150046761718133221756590916995479716706651682652317501385616467881926685369327210377399209667286464520947371747026505707755176712208288033922137890845568358497294204859797284243130318827628691569482233098777975233050489741027006501599413600678719988505092299599906226012448825912583688060978264720453830681850054372062435020204040759652215823135202948292953304666631744131606822735522980618089229154397786131851205302311504560938764286233200857260558026325570939474355258625955606030928701021577253122520981633203654428430754026126543426594205021145338789218379244811727306145054028267232324233677480935208486503125080993147492685312022962691477164715630868383566431723892647040502203428587088804924908975544282296438213628662901872243564693268174687852646373170394659937331776508385781833721598611077484935470749230626432237111397536292826666793116912265536608403759265851556681944938778757530281282759551230588132212222961454032650231487011931257685964304543382283283229560736290643344503007347680153988542111596010828504084115120962529944608553049839794608765868097969944915866066393571179405705605601414502391671968077369347305052903087931518041435635038066070920703828562691095369872654627014459745236987269975847578516060851628724473189145103206064125948328491029139253229322647747772327243805099495485105866051601204005927785461717473009284050796728298246432311955616889942886950736945882683125772539317107393820215352465490955537683680695570807702842520159194028600862346525740464992856511153097601618592349446427296491356625547236711323017191447286917698268980601569424513723695363593297313229987077261411929533505987941422009015164324051149116729673829697928868488077140922187659032984791534753971811140112778370220215570613074187356779645933062470567140340738449595205313149513352664571104196490678829814941067241504652316156108264249948521763055763038608375872564264163638659180359995960882382759514520824273412555884575556316223735323721632647317445968948067733701862840279168310892425240845050134606353970951298003182261239708156435399323266425085761162906486209553219362887056052085320155442904870616572060572896392759826909901309470052911116166725256168936991991002501226126022444702395323652541439658649785743939751116509998946955712294461497186006822155829625561376132190712879309878843519312694157700404586612307575210537368446339920786783082972062502428938944505236006160876447384582772523342910950314348496007656646563431808927394736506801413891466395921748399531202645765590523586583060742967379143064690150083103011234167447638882931011396945403195238053246345378313146772694210091089620410579299818478937116072446200768914876360298123347428223961326117447589796302886503249756362420264167093610683009032811640576265169567168835246506973830689014339298606341884775466488112448146728591435935649546261796034038997658055260893194293696003735038312138352922069811523340865186674931540497041710785896285682754720234077805999865498187112623044052559794507685301953503048068455818977109781790698602383873322528226128779127420003830551606418297817010193788786279416494206224178778403194667087520967748811821159871484368793033880909710958882150723501771345954653153290140302907024921464629069388016735555989835159651393647686432209362516461653941509152195386521969132988718146245792041145844671668049071295299685004166341810864021293063266253792943931704773048596477456564441639164297468028935851237951854692631978172336436965718216904064104017683482427655729436807665979699523378549715654027354253153966960065339396398520781224919483244187039196040156627082634282861227258756636339967800841319221537488097626751652788857386537471352367567048007130622681362244749329621136955636481279118020587435267037399165581109139421470447104734308788664170298017197036293200638944069539601103242214878727435732292164857670478351510392486793978103418194353559701505195197013176998260052059405234445120327262209684086836250664010071174077305566427174651905701224559192881595474190880756135219731858417191968627837035379154281077728894334749833778322859172196346348575234471306468357387043349769012036772910938864614317156677587084040726538780755363667621782106323807308247201463494413309610292861871261622076765989950668527328291222251549174717929185543161356811821930262544521238946229079442227835812126690418007060983814947781850648275563952206067912614579701052496045600261922798118922793007750778431270575588903485425586410115125345530821368210109629629171748570406463784286140761755954734983337215489173334185365834207062900366576766776734759436025318298681213632917449397621533827745996162895611316582731909237854447582701419940661930796162124635100963510673102811457409299200988498901565760421894836495585949746804338890237939717667503500635047789410603273063726508553968083407600273569212002658521675404923222699531263978145155888510184141153326759224965119773050410023893147134520619619954277571021193755384089211796096311514817320687786824553749707843363626058421422587011822909031767047244006193749390860615386203930342753340236501571248783043052337623831604162996493779089137155112956908779791687611995463137688802660615344607851754496284224791292892714554329692702293270292923089184833670008839871662886427333359805242952209815724217330333341021060970182036287882306263241342618767074597001658074663085639100010259883667654003001537923682767768134441245714522624179835940420180419684429706257172901606367704567919020242545249952645076696650364102527584621417584361337181457030476991391783076666549466562342119968220297300890157725780018446600831175971543525950977993132489068253605712517704821746470254790779885575209080960389332626371487211950587530238740338525504670005499147298091014603004243691746427503462060837764465100795031988066053389782931966607277286918671881938329127037438392409266166172587964953208642793392923120572606907456448558360970964899109784801584649701628893317155500695628999401699873198012250410695662824339956306938583986888744282424305015506335113964458684161895170627031850576363966634790409068272882413042334010685194857588489709732167497786907422062892124595372933890595030316107916310918800447811774928483234270870888486610223155333939206386121416276051246840398916988451492504683359443362826842022089578745020626598684649958572181101942310647286372162923718850855715267570306681702941130768770124367244816503347454399672167974257251227004733259253257295479377048130974810300469712291002657715002631134885235681115521987313860071027720977029296870024747984829564279221721727964874832181011196270552006553362299157678588948281990970743100144404654949231383269711692626105191586049404384075035700817149309102860248794929431381031411398701366233204028314326883814028855413419693979616302383843990714399944894278141383923430498295170051624583021286325088903668225063094560773639865071033737124165565369068283486608060182665931998452621273059599469811263955596334192898572415218125633841629080206287669871208657944114467880755382466658618870450626770954786396829504764497487079138378849568942219235568325855146762519119931563373238397988723988346278831373168895874382857053109589054192762621693822397290072389334455849788647794838671045287501615481608677802591527791581946261978823732948336271462735517862555785128254792199889457395840479946515377516137642072647516658114937422547213409667887189034770001527014180278070911394970561130333020855861376443037584305084331322752932800694293733649642936829385632874238370851055502058883150212510821443136417631681806904305014406489197285358075501212519686395159593408760259056368688035641821079636658395788360269700470845674191280207316661008069252956917916834222058089293799347041564599471220481835398481181541004219443699787004210293675008503808815587148586184739644106055667316284269323853711598963141724577301590118020117230700636320503103696818064443718004081645435821905635300825302039125719895639700534019495749196884527633930888672921586537801973615844335933226874191596434415381868299546116860482458588994932816305724075886374196800152690086874529983677874923135764610894456521368548025183460331411805403975746087209074081355720693826548321372071620972921343970794671416377101435613147865293933748867254865746060167655345676224684465305453929860737141063421703797012515466539273525548085556675816217842324214215909036198442442600283664377555717330440439938489141531753045728751002305466067169865900901031817222641823068713942794331534423577899648573384486903158130232466512137734669006407408380474552254574034486600600069224215195511525077097368194988351593031141789947468673255000084902055049503507144698014888358320981891962229965011054599952455460966690873354366451775218482414710646778311447742628797926300700281028035347639270137831436095344115943654632951884895943853081684689729116254649752656730442068919412166073799325932336928848746924735017494665761084741314795703121678647652109337011128414621628891356997081042801729178141114136757690035520529775698509440082869170304484488070145983458870854351837605207337570782743286214776520685915728802812804945450026341313351525744960131333820203218147860771397748573283347411709864338804500781247891215289648505468295951642073028374300079144523188766735484939471969975511194140428687165444525096803510592682678866216467416408580469422288271021299431473009777734139544270610401148655478724083185700167709845530074104582283079151463720632975520950726974805379899711696605156577897598014829460180832393329541816077630340914018804272445109151806950598357026278276476670273669371423082960479462843364083509767163680994470870326727657358164458573559512305074088849950588935175863776931903177437215120084952681188983458448584655248345369555020550753459116155946884892782995849130215732136114113040877028291554466190315991470546820860404377761430665633523517894881696822904228784299321138697973540841920668061022943930509354054294404643519603089333234614160247752004055864877201438241404831695968440350817225228141412312295068827368622996362857672686045048396185132303768832627981138623911205352733185396283379610499608319034497007159819208261046691646216552969297964051195883366042100801936058717472946096116456704497357986261795934218817810544210124561649082882331723467296244157467028338521653666397279511415071861160571941110188696015009250608980710830931609148035668193094438227621923259847728093127496504367452883854364923607877509068041086923295069433250577757147937166346881269675304006291814031192796334986688728964428679787536129319989531222992219679163876070138817576558614524016044305297425193444584222941255388142812358269928296431148555098815618599122916897172419502746909431411032576336495019013766176390370351350139382602458828376645846441656781754419819173139212019253478287600226132723389338065411160099025828865364353205940037255935302050035342850383748582541013038191376533790715786436593121654256696806721719962344457143469540235931007895038653956332895190630638330631852591547157224509719823865187613435280308887172536134583754276828074081096114940680666959104931116499684213870359744304858292176344804770299466838328903408800317063597722899724035979656566727742990053710354395219574162016803010729862548481640090862231102495770780924775733677830506509568175344085641799485248050354682397684033306909996571673296330856582430791009347417902984150663861894322314086745989099341927703048171930131398802170732935598179717703255303673889993852150029768707546064282752822918500289856045036580413725776442577189018447539372968336351216184710377442056546920684413220289198947734614228918992061168652429338053238619186655476249342304993697999136514764153847566593108549087580355341073268755662571322318189643296449758867586680065053466823602528411007277918901197653528263456355632901853134896290341637644286468371178891751468354640436373501961219626711345030730024530330264864001290657922001672314409921736886706879692365649099758057976474049847118482601621043223736207413465667645525633440927291096659697753371614062608454163646479300817581137227073921558295957922544267239786530983410749740755990347962691350686922264672367013185393017369473830951550469710371837544834792848642275913664096988965870772848409432759477085249077820141151825278052145605211471921803191396441174809746897210073558661864531304165507956719451363383148920242144216772285735494680543831587386969988177640224662141307018237020474555725204820290118658624117461192986334808236359064867690623823587134307258960855550395768440720611633539561953778080870861226836381442172783730201647760075276999064466823055773679510176742892289350021922504085717740789850938901228271679085698771956744323361962282312941925055109218916037349548233215698323699702669627613047241400877149980527220169468814390796438351627090689486558185744446628075538489079782198170465323615839321830989426891434028344185979162390301687772262503939132140955380528891819080084617378131410040528078938568517831858611541400610002353761184734865945520333736054818637395500505452823179483379415674916747492991849909553614487021220009081590568465874356539463565253553515326020187432617234621731588047333150962308588207203544663029074168535792269070484530792588451094991158017625102868102369560238559048670295498283689587595458536216689798280578915928026623446236627900851754090406833990686050242686554994978434223510175646825026893329689550513389468471343052843242688440222181349936574107303045460505929427004141358818081644151915565646430914444342604359077679617073164964090046199046082140057313583798501787982079577444913118744793625816802269754464538625110666504825070928470496705573215420060516835803567822395619312037024399752140641750218027480180281690075541654713049897903626938847340726263864245454542779432188732453050371931786835991947728023151182491351821388381468307612891437203769226965353244037896511811062306569017747249542429985121145963067022045164358516470458323581321720253409426679048072343406373540564117179992816845355635142849318218556873858529933481747233019521509923053656548715580947669964918184144577380223742642274711473741424468535660871554132655890617347791202624002184031903825977300774624121326785546369580409678544798207793312414155065362378003628057056842046642167172911789588377782359853347512171013465954479426933183058152303111704145319667611101422393636723865378412428670784994224432570655038711236835236186875353155540754105438310842841701105202370499377296506780178427598405840272740809300163307386979512934670791753517615291577046884874598858849851175619993293544082433663970263332567869401090334266199834395994056310540398858822832806710652192321687558290815651127110824208441271033374510753325310388122873890551288833870073858635508945995602382130770570048596652669709801530344169058540295311675537938539974313716236902092651389840939162559772356663338253105963411726873375328357343859453774110281813167895283173592777685092015472274151101715541929775267011880331528633981143456048737920144773861933625813519326515885293088953274393472987419320744303427089030772454811289130285463898760500944660427813203694034979370456609487650175182682575126274759058271455138898238172894393618439502065299764750641231336654039679647730158341988014624407140311262795133078628684543684955587491149582189971898166853673179864546704456728423865146264889793235554725028661659753857582372228457784692125645045914647082743184154739394445800735131032534243965824287804084534057441392710858506723906384024007724695112318903124538597088173438503317782213312174643945625524929226951924044194569928786628987526073940756571145949039448985856288440898721591105203019024791843543990296770390027601378564155861324801554143014145271592806274619363190600775399713891418992585935731744782054561450098563971203273147561943834649594565626979577330214226699195253713865750906282696499873916078773860606664190613628139451947680282885347229515161470450037434962072982668554038574314861268664692413629915356143178259636455691657931836057966085149540813500569706533367622958585189097507581245259541347506434538550604826847419882404740313894306051080614371744658330690959040940833970446059998330099864220953670945287239959778391879430612425163882277234426040576177191794321783553599550586395456970273953940838046856470900632998759562279622443278799309377306963934682595899434127330181133406563810459949131851847852013054518080989231348034926029161392052299536160147531613131266929217353671267975621075440097821170389103055108702579148497796291281703389678627009598425470014321717996012502003050025439977785022190545284652521286447514715949107085499955728272965205386261102269205335067000633415954669978613343659465839628662532696676379839535401746337366570385020786863310695575603590942971980590378202529629531654729253763066896135364879963377005308276667367907936574443812623514839819901520486022827046771270338966318038787763190089509754345071436830273602252260312738640467227478792732567837121260469359969602817812565413024301881371337701357289999396210933952570816439758731496446069676306509985589167775377247609281288072991655005705797957560836753804653038591336713089458845578004183950886777169883070534049845714494142757982215233260997446554351889492615024111046924872142022943617714275763728513000058150930633266058209349291335532555243883100949237647324347863147893085048765659128455468184800129770900353375923005198435215670388030423243842274164922178591815448460550998398614020463076009713813179760783221034928679857533093271032758029521478902076433259508926252985103575530426340810691147980556939375616010245958272709627943873345039119168649141829870509319559398035495870937999247859963876938334886596404202367292220828399082398146398931054576770740845886606431679092801588181820469060612233484123091692592642999653407331451534170845048224135371696097721165155922403571331439601440899718915491852952290398259174536832988490430619298212270828313882850215963194118690558400019433201844873268036423084131433629395209405448737107633703429853206270452399439759988781001962941009705444064406579050648611106234027520692820663391395885218192436975989995724178120483426388461590100381676602067410034681936439636173384001426391356336558060447840363381251477621568092751379206963894137282827869042096015102157748800202216658247511908962766896311889474488630479193603554005358391489244381519726153504027119700161269644527509991036242590347132313227169556208995587118405207359762739409185348210841014832987464703238670760867622813991276443252293279994826715885049927272187775136032192167555556280659479984321367728520625033556839450182247558712990212680224683000868811950780274051591678661580504388709425827915145649413585655303540881620004005557168997849288002302924203423005129343848416419778340807117403677387799036350226002671412312964296488611063950846134101940601830439471492828020445236230955851764140979177544300534555919605833174730420732738738478496233029737705695304140927087270985059331461937644109963509467368880493393317806785735907782455903987284185337691483254939365726814402840050118336975982666133080808654718486727353669984597333348858793364519761841714777518933476134525106970441632079333119297085314103100188255742927730147413954765350833020031576424903822329343968980031443376737785570150829349375693145626681985700178442950151291897436875714385487773403147729264507946121543573564366026608206711396509307008234069754129090752957515131692295653281608041603077709312903082472478032449208783344060494199770773661720202718279791141191245416329215599538200000611894454855886839948215953909399285136529408975449923510644078443923377718021331031199003504597418949821754288680369434576100675916630454688745966702914447624668001723529882264684673684907606456216272291137745554551915016018356745483098397951628549416727404060274274028441651946375967801090651467815000592111652893150467912071701184325745275860520570086714766547044738196720127668596994156939831756274029184953218808426355858115370659983441420476893950494837704098633138164433054023378841767348110636521871405992773555771974968025617218402864926300829527359911189216674218583090386212424132027112991051040254845825352055925407280562876805885078740078861370338413654037185587441506909228424738092576056957483735428761553409090662954867558861921982266885435915306147844409021143071145438659987071146508657164891795155038185908522118562583189241798463186138876413727723217834117067956569955162944810764638943691121368365353090009598999354426775299907915432953239765129411066009928035667235654084833323829567297425714902103789228525636280361961670729516431627440900905552700944292074426037801010957528028251172113588954493294559225447176907551715456463178756078157816904642416235346579418219920262170503316634930272038929045035146722140434749772428509617602496170420964149784897950657551111948578762761959187113351431764063079641053587063427734417404205532385822924553400092507016178787222845179950595554108427371218403722044280339364057224510985060263087703285700578505316554715592258182329368597177721370786327723094308371993979581841153599284079199880772457020489494827406327604128582253884958388055064239378792641194723179053286726769938323966257536200070250188164854717537849670607610400414699017339948558497891969882307031754241948003402627672024803405471351356541243000341917925843171648233161038872776898049016196082150620044342289907735411671522996058098291274031877167587645548926791212948274705750162873666603322644430810434923977375897962473471545509854472866452527235454405368752436213891310747126944383501549358943880564370956464615484432498835535059757589628820235802882094975255755286961249351333027743723046880042582013946801923548322657740536056574509693651549175355125527014274416250923056350768306515819938018915676321699925018895030395911931243120909201044035933105003148327340303977142247506779191423350525787343389105991955067528559054260975993146147775726799980200384726529481227133510713301713584952440629669484814950909464275994330541830041960815272107212543306416874649442255686982967605370622709128117600408027874008671657508313632375583780734847695534306278084680626121310840453992443292744106456308452678870713652256191230593826227888064905952658716682738183202615809094316747283925706591175503746770682799255023263086324029262249317378388298416724922712109209016735216095186038368004771098161228371218159872144178606872111873488601935770428328597205668058229778525132256664867958159140433754737039244545368240810184990613436870894804217974156466813022115098104278332031853646952796972858125159020220718940142702123349500315127373507931217945573746087858789100607510445011675604432961714589896268428388195244572952990675818575213652452908170822532397838392917505060824508925561297928941024772119312768431084477834013005756524660547120159932353001593340333040766665566021469058451559362578130983089803569151084115173708712617893197027009052234762396461124077309933770636060510387425414168001742884945449333879083995128702793133569829494466116186393539497035437885671749826795741213677462696289640521595786842514571993606569121143308651704040408367067930360213439154262205907144498303527281514230675972779828027751608398528224010643295377190743169640344001742740034106834057541592467735727898929026558117086800317653541278916819250567463744069085684677641317208839685004045337911124711753641879857549561192747616410816881715711902507358692101276840239836266201601689718050098802307094788438863283521526321867296176125758953235924396445400894961209696511142786574005683743601793718650566181828114906651974456473714691292947780630060876500615132400013237996030315676421521455265279184962717726436539694183598992654451542928563403691680888810315442223905052697852136583331110463719350053784091687597183263801091130083742189832763644818505327684663673024947586149591537201342109554003745771342132024811644919652611063017974931527598084656415637168265446483131628253317435943593505132304351576067264373482076268215224128322317452690066257682472705353556554070349579424211609973483662368013033579542979777760430280463745113616261066874717330771304605401267591853884289207680114907815920542374073709921732388140609687783942257879432204135496211624277753842848699717073718728664956155560745564644577362417063683263324837697651729918196210478284931625314605567528677528528515324964234457336237886933296806894821966291677330761033368181519423826799221500443981576596807778191455909015379305270476565142964167140367745103244616057172041582783132484531175066548635139365677270687871036119073285674060514419360700568598981289155943286995504635642974918997281334752198292145805513763965167317246908797001471089354900610123755880670038099566765537264168227234287727616356258058090674655721733736767029253478484809818048087233050870353616514138854467034916123627039646960813240566329502388581476367588983228271971071409954168060940788264561521034772930666906787377121916027247583788988147922879296004694243815879191290637566403565809127541615127479219721939168978901246351744258304421525470296456752239896046122442315064444923105185284461641055820970495215269064437571071078527168035701656500489768536750320722311727178392084654575287957335078469540237436229335879850327514523455414515588320593559997218423831475004989515284980397469294850817044361125536219768370086817709682352022049980517069348357898135771725705523816078863595010746559681838526070327244976043029832015120300201893499488695353727719058150753495226743263337469554106110685337848787453920576945408976923916629512374499094159353618675575113867037532428053643178554864444786102991056666876368754012887791940208055347101902223377699566008102041193072810106063938296604328083047477202677213261140966290371436490782700705907468770540126936095836049485496297169358409784578137972500804714518301451216647000370823760332578999706203702844846950797328314704321191904348357596674391406115453935409323664796814746705893767675932524282070761122946633294086563755873853343654197126778835158409094375865959807126724769732306736390775438536603333213467231356036235215587949501350535020375212112406324020103152151636374648568818356990176839637343375343608931387267350618716055115781591025035325632680035543494456656327627931466557012514256952332258955579863994873894547825112433882446479921726906926311878006310078043916827415702918597391030149374693573225688938682853636902980319566829510560063918219275555430440005998372616251762393237928256158461336131893363935533183567971301347692305741564816652867326509201011231641999425088760483281267369644389042860964400225249611435948657512142462085540348152689393491110936975362576576681585747426804995456208161259035786558270385326130735833569104729572460905369764627858042030133329464450250467076001019206891457619373851484962070703586199204741016168936525511657711327393871394550363943187400185882859630211225003016442056441663942774904915544255463557222743946527355381903706878853678155790636186669542182673000170569457264992317597629175204524011691312102217362175703930690300494853374828481925172533844931708069612366227388251491697404817718061028546238304990991578362108374753852360383821931834486230282676939627060947715976450950179902237633160326670777672401783453678822991982454170631562480706448121421561712769247148000062150284770866355374418600441184450946206612697778692130219018714717359914373134704550794659852679414543905991533226411938978636728572830414400677916221669609515702398687155119009507004148394991408143215007956127019395729419173042942046110278178691417623699945403326376928452434698174547589250659588678988791092521845089090414483365967604349802187744008768409536359592783438074143797208796618877752907916682562117468293226719273329407682494111360266866208230487300003064023444473048457284804260839847523837420868184477225533396217262698250436103448568854402482137810182453156320187570418146053071880258996279930605114446230964330730511953628856147495527214348248209794836398609258245791733039230452670509953868437031941459663459396653335952932540146318528693905605116606356978965741234684504717868916495013140533362179985231115022222615125057826199710583693912024025482798493206649938043555318652829444516729991525998659401769781737003177179345777090058570931335830001796475826157015786526489544052010210102827366254912850843722762538864424680886824467378301629442505105878012398036789226552343713133159321730859315878580612848882534526483200149673837819420610961037229420071710105574480909561655425951882304571069549322292763460456900111567968986097827019829100455221987646215556813345127977020071569045112477387285530635066037792541527147955776266496204594070595143621211809595345047749269647362290936670899986833092973577857410107926999525431009344944581492703544485449044916904764769558891445444273510061710239874088022463387727930901471283396650122132439846667167607226466158609422767607742048379912540792915659759259333905512661037945058275692519690275111431549451454868343168920451185230750453956098112455426724528940978468543866357965296292982224452468937906528759056386413823922184566040988041906002258715417905181957296944054355173467974557216086178075934699504530496852101748285713123211351528145800338152948354839389924200581585011556387258331973834522051980879194881252701611142834254044079615097152505314496159841374808400613132906705646051348065784570204579845234186800137096153684743232874232573118364658580202047831240909148844150391804213004252675973257087725931255568191450869706541969543126299279239955134864113337987986385783476343721442021890912869646208936957501749497449512105886350933223377010092032963526409940308157769055173744026411582888286586774622236216574725811021679811658113734459219791237891759326519765002264615603961658763184301499560577775495165751495957040887825685788164739192650202813034129088448376664849696957759197778419668570619037006791929520629448858626674208427903511421285967602871142950596299238675248474831957290687864778397369305852317912608622193076152481168796790959766783438556761010218977918418973270520403880425261189402418384237412872771549473051990087340455016405855350095105331159922248230928025792699558374345885851483715380898598894507142239694025443842152568368177142297382556885771972269164976232017625414858951835468937257603898845319648054537882028340870269028957156425332391245662720353753036695410192102634509983451107315584004158293246049120708379009939533158133412961965601157023540198030560955558561347901689072327902502289397302078127258630496391863611978391289766985832911635153305575592784233536406077801164433591513990077677754800842883789830222875841018704282055271628960156945523420323734347740989143136395124095622800352353589340162694516316416636308167402568928500764407896625288983638109817538017650081746342405576773373929036751181673217638442911602723762320986755679202962183414480716875756568464451422325752617586132052571752964303954298670325265300588542452317598531288445264216384981599273042778179077270196656562402723145066103546830324091685145072149204527250351544337069739575485648389471288006110560519084182649155060683868671805683517966436385515944233239575304588016364225009211147651073325116702169914608368519522975063099063860680711682326990496138365936022015146544514363006817049526239956713461624873813615886112707564015232582155507493604242756320580787887144766638307412303564910937615427465817848754437414462680752792519681584078797630074986933443373937741160459434996629296673304844286886246663797173236482926502594362007992825013116510170320786277931413689207303748693383433973786922893546903083771336516640167441829219258941961019718088604140600657397146351257137486186508913455999793193888651781505037892766134019199083055720232357246487563107624583874146340442481531203134385964605720492222306080564678336950003981409157096510058745948666232597354748166693272634193247383302118153405989826979510763535031991562690945038335715418844164913784121192250125208858621833772249487782303721626675900953908308423735018093063297281631149601173416506546659520163801936810689997721205121227439860966613000527058450910501629404821622861585449306326658558006797450808143289382241398616447919912734843643051586107263319154981222543673057928827247784579877668767810118445492393785572038319744386867222143937878846578166601636149861021378059061657860098765966337671979042200519471005194015238921168246636263916663414938367915927931528176620563620132220808539576466016450016287792693309653552206625729664433661441143060488563084657769980071194450900223921432037612871768862680034167320675196355057209206841917871512202754300340342094705579305213573907235104103337166124239258601180938616758732705315573818892531274132783342834857757663575450308765681426068728553277906039191009261076988491552356618703045156579541456455858148434080909630666366131507250619463048647003857743346534003612008944340541421941044947311351648121694497380506309922886971172531399834934694286125714679426078472503626393433793229806052051498352456063612962846212879043650402509672016446973186724793904527982349314571636827179872838555748788367431877538730589052409659329985876104521099247973130192822298652443952640257144229878818980284976332000462586538106811571940252157538948303821866712598756337383863256234360203607504386334073661221131666312018210939306297641698147564168745931748308186560233467478467898089007923731120025271830975685516073705844291434840417660872932385158279702234788262971808683035112589329218730730620694615025355841929392271458273439251137705136889623525231941490545305915866329139158509309107131552448406874790277097936579533451829008304304127492260463544728171578749565246785954844213809027361102515707302471467828054619876731268352325572543720690717456913634458873533470918135041192374714022585807680310917339568588357866415297715774894531267583311019052709075463389374027766226461923712687560194081409521590749559583103164467555585873198040208400405830927688129582296879815382604099902705687377311375226013343919002107640622622882257958369049220658687959498609090177287437021775801569724049406927049749134729903289366450990540092567284012189872863775920223887855807590788339813951838059219380177769387602444129075935237815735951375203934629772608945884243878129443374845521471515561556662767229309932206102692868553302492917592126787896727404628822359154308844131921315751531105369254720802606031194552932764726203110813036577527754706253543245800928303741872618389686251187050472200629205317349676257333383390858826515429937603044967098894107467003816472426983329951256784697482649862164518732334925570742738794238264328879086334783388366979483811528902885359426089459709599458630286082028231590097376203911269690805646084698770109110778748359150577389983922535624182990737141818431658457166520169231747211654165310348060658100287195959259595022655743910614054452565120542931828429961412130071546084930200951249930081818967430161359184685643670000624961683664239165934534095133432207519919017392828527992318566357778108257331580784316734072765269580956930158564818517716946549959574445308773172725219306059776316496225114801060593083041043807244510128391533160809488297845115098462285614705794660175421836800931932917205285334905720837448100574963424297785460658268140021241625548925410901295653776442862030330809260977462827203788512003478276263899459938694024577234404674012533782615781579610872952199367623839610629738949802747181038446652912037762435886662241941713154548787579625395626336008816323839409183358449746181395291613812274359755550671301059655741234721727586736639567451344038403968754173257749176060264714402097983786585877306278100610349197745872091406772172593120721667878932077262806995568080724854946761844038955827891426269939916346578291225588167609534293907339621612005018715007767555643596796826424019012130013210545396968974503154672832423792398606077330145645397590198204870287604543410796801435113892288090266336250934821969727741816579423326581972962889177724018752381849505990244611583031335168189265028099154692152785616940252039667249713210022914448363883024094731502363333526027041287654081296867271580187948293780453912627659269155736703561625445857581687987770298967284401437595015946031632731294425394468801665044848212119994185570836952750590417130559465453870437289434905006277272341418268855831781085349072009079860762428525258078927805162097622235866553761495811772444140801334682567133563531575090586366389390748307431382383233103469607411465176243057479814981031820170503496855503530378417447788261110789671259319709117561955974804355406448860609660665546654124194776951881483130771985016802338639829845130359375478350497055451264232540408820373255808577001931927629724445895863348512683805674776316419507419136961057827074436850043030513049714632396713450266808502986606070773231780359704558836123816880723349032734565585973893377450203861631428292210623185901247379753023851372168030796499398254552871286508870628270099254676952321538036129412519373721564750321707222303717933139646501802872720911091617922387134323668006441987380386510888968931530107365252546230443569935530888802802706548388388215913529017728701307950972508977303548854043236620416513247040330901499710485207979489509753949258704876532164529923086700161030220156271197108798281653321955898118050543074231425450712798632594229903113850808009272472788953843391582950871873979166935476023525417959069065352634047044727772170832276935223460704142633483635039731450729477376539274136160149245341786432151392113760274570146181395484599129070352566297152744782342548464803379227099497945457093646191634306935548948372881646285471339022446299133774385926770564720800010787655025800923381954148240324602017043990666630098220121501875326365095364595087438777961911947483563011750621465909930271806751882508616427330229701813439403170858871708134402296746836167064528587439222603687936992628806375282849897646154941393702562173309521001330061474897009462448468168256303098527262727656741876044926591929506656916078095760250451551761384907152417120297735988214098588651429898894558271669301099598765572282048741408941102326204697717774012258296353667452859279548178880596410700765816395687796291663272757475737595565148808044231071410112975310889425249237612835244722234325221675521876554004577758785162900419881718982281506043860090865248948282187142038032646746061844445720176771002910392972405454165503499142181904744251193340315421500669133307410047877143384982291967414692029078293171762935281560719648618914781412529623810216302362849508434463904886326729297391704885365079915459742323041193630512359393365663318634955703904849080313440182879136106848733045239239491148936510085196934508380571200662968501965153384347728358358879831118455832993041163596478676494664812966824740284068025788873212051716579414355600532914491722666322686419300180939889167665125267958563543207712028194414744194945102340642833631144049360202589337273047415747988116854215752523462602765864063595552996159141474514622866757622548615279049610943381820103097537890334254139866751648312731331351665782644603143601545255286654907800602921231914066624427378809121097223659745054642058541989425961953516192589080468849423065174530749278344341547343266802687556326787566546728689961848050960889887868477044467248781723626414582258997152226069185608619415545996022099765388189984239340198185742112402251607759362183980386706871666904205178920090518279206597471826427386529082512336067087936698940717229332112888855124680904009115306736296065775789986643013459612747787769787559459741344822208043335921357395344991829856445173833292033459273130575426822481470759224506446896772154322905453116788817183545471801804655694319438157472199890764949219144038515534586295425884794801014881212476546649437724106657697608306141561021945425769088797202811586837771106589647246684183532173175344439412307794901011032623181499416499219322719456217958510751369410130718007585197182852348083847216815616630390268067124259395045595771202095724988399390696961708719981852847566817054319705771522833496164517439196295134049015622518299020409505056149772304797966965544907021191518636441322270908349801328805522753353741781064433593957217916931426557073803230526371016689700295441615686336702332171320575396514417566999491149066239750229566879058943850487235911552351613284311334843671062442941704341366720478205267882460430049560480450897912015521108237859973348155499688967950462315769994422065226983752651384528151747791924941127205887010637416948659948598104319185533473496157492517499568320870723049722538326619981748077323046016234853988679535829248673090139474195320105206168744210272785707837250476326397578702538799593655223059368108274015001786841495496433505863510914019129724071063084680932559122692124686072305987789643425335180735837934808791100396145601683856139734083980412814450110968046241419453374096492366666514828042789554155011619470139491885549473360910344752418744378045909100689125962017799501294564363920673657455001345187995227760351399351489003325493875988507674148876946091372161688563818137167491168299680974439039869179990478564595967491925614519351669834747461244591805227978849061549000619665684446468003003325405706215412262745490142318413561522350896015908207561521491607795897769930782406437128446711605874110105477549379024520285855242140107365348612100246341568049540921568980377015078952740907639176436172119252847300551808074286306643573564385830016909638825355439256610278918140162144228924036070747317984511863505844953980170388469217085064357170772618512241779026817510131352171696509225253424655409485267345305781362885996809146724621766357118733766404316809651883192895197662731264484859399375055357564940427071781308106918945603945261176461485957152705129602184432650311749196543469241047492948404116312803782615174108516075914369120040062841838134043464260339759626313700612285219994696249235009222129116099883609381888421329287498720513097674595439031922900551863795116214324679876592794905833464132235723287610452141670101508813082115298538537995019473011805863564553748409180027063523336807588792838668424607237681115503080304069366126838660467451982759544061456122008206909823694145143870205611379824342387956687039731301721945721657231568872180233984008529815902362886522716282036856223639396177452537124372522083912792441378264492090705030286057689381167766948926665924155311986784795095146645675053144128185221073574710023739189163081654232660845210168358753089739363624279523763753233555926006213982714203989383620875470103910524625130509744555862852759278675050799977768162339170687240512091446663439495480598743647068202104864029271631565542169558847061173204810474561062523264778414963123227474804888456266642736194097521209127151530044613682128884161580617642060209949709923092047609694112941556389373020890037765135037350605355444996289752910108114734720534974775630980506505671805629226833152714002558368823755081660991500509372057615388690236860431925091540781379187918264870812773160109236335012121192691646160867746782582545147152337729642793785428376450009138195386532414537156458573345928050829241171312787718296465161399870913253480511340606842603257890511834955531636724205807133778428385997391692082264037748149508003647096907080441164827016989516306349801045451389049271914850839006501245238042434702076525485218579133588495931039118502742833408367108412223495138236432222524243388526141173002504692342318318173497711484303617748349122840911754029569626783094022472857878493689169501042682792367087563386856373707587758543685341349100143879019126697832783127809397159338213630893149002097479491812646244265756880319413188813179826200458053466584034981412291663337036838288058920498492272949592028431049665342300843760400296378367403955282079105641544479348415258765259368240717691824983393890675098698275696428871056051184598526315749763573005564093333796772620227084890112467325091037629034103232004515313610604550495118742422354678415931922825240438107283158013547602038229252513396371070896667818455688518156104644020400482240619292799882309923670760258757091643532562953754692751891392122353466128143746388682210584306818642397524172243200536021953690467836652288798705702927932192750734852217494575583067880778319262308598571800145903494087194794317860491549912947450311730536879642780097802906340314800384679755910492685597821653104527542728488187052423454886900251899321908477427834058252726720105172512857789532958815622069049917311747555110234033929996415982224980611904027243850214526360223156515642560726234232219484929120077738042671738258753390719853723144192565921503123015242014556868818357034578610966890438099644011400775929902933387383294062067527822775904568203204178202205858243385760024964248864202253545978718346895719474143127900768486932052427810731623844200336840949424536152286041837919897977097582290105612930929959370280301483108068431217703400864288291005017427295459882067903431005503501589848153428346087837637289532534197271061925843818314601162926425516519823568310134053351701375645594647287532106922214011295603938843867569575576307751437098488584453770372647198743802044390933326876180332213741904863763193491548877181629922542506669848305731702823426517073705695466125367062748265627444030044149733343238719517061982400816950049999697812614325317459569231271411722816111735824393167973552307579404029352458017339810910202069044819830194566698855564066677221848873241908915905963727223541863515672260907178361087730717937927761849393880997760411554830501590777752309076442548634238446976378084454700680295057548943531043524193846113073554759951948229092699328572610225221410695566107703150234740331959947519984575114298049132190273700423900588489165778242055446871941170271480226932279988443826006593026324113767092995767180326450555552673614073567563094064788329639820483350222619747776128534143083335224989107882941113792255563505140801281779307734103182429170893835606819426468284632770561206572596261767568422014810413719387831802164536617019713713588523280700133817798659614170541063276072650983275756175547165934724413762040672019901796982163813258184154755478046177435714073621565594613140110536443575162366851566053559366986945654508061549797358011721702227182241306353000866392559955889119146958574017987632213683851216381411086046567172819465720543446263086068150776934942583910266705348054508402579029201221600765862695304301854081651811269060253012919688999065276971574608319505705540977811963494592328809334122849716163269427107535147063761799789345140602276973495012681695440171827429462333543140228174635382747118215721716556416130434036025720623025197291744344158674864604318735786298561352860003695133438973807400696144115441699349110705539163432261901867160554931512027415734141683121745019589406502886710294018446451835522851124121448194524137897132257866807875648358095641179659848744707269608115431624518597476940180838849220368796493863007741416222941700989629401878131901627527144885694707096168445782829943095452923609345288660170258058526467272318884067566046088314429898926273647223205249849968201861322958794181213109548932415129518133122961610629820457632067768006653127304575587522295204077929939480536829349488082547715424390966811462230949399642594329047259975897267296334313056807205493778106149513803514783023016042565277077148788446116127955700526667437710047757567235427988531983750381600387824291198748683283531434083406770153234758008653373272017074516038834959659584830446244600909635432156002498087328707359594257362378575600071603509427538313166028742997096093271753842275529577971266780546331471738449109392121593721014728486470630693261239948620490387602606269948153150273400406434923353555687083149751745016079164006193489045461044506881235836146144104109281005186671607719603029065253568473561324386412155587736807872722217923942124920965525220779240482524168859956347051657230690263275156308845545540387598375156978676279890299550534623310333198414013527129093099462845791630317781648524623939933484588280108746864186381931307645868834881656676000787820887582536491167335731076606247012728929823987603313069172145978396235294085788561387235531186374229677901650967543758515683372062119602270446525811778509231607167925370021834031114106827401871469262483863632649804928191125276151751701573701847676113585379734149271452675095835370284709997731411688176363829817616139433966540501561654627980626378623438690173645010726049769693180288402457028167433784347888729214476347607329831179934897544982851683826162822801638772516555167039716517618874949098271557900059114084885352193467735576080537464524230830557569876739621276740395203393617274513383967503343946359371659021751068134981628645655755509407317273870777481397431876404675058235073123994999392576627666422336339249986977524203775135712818731495448684061268555479510543977105715028097140246769850797963716404566353378674490826901739155673636783175217607835535130737547975222994098742165441406252994459803950626088512194829531090920086212549949542381595268486248849346796916970356926129292457669934337323173900072998204889493219853976793999141892825272323686844308381167660412719119470365176921936722845464813004150119516353130908034474299216071847212341262419124647633486800899484711941124024800241973458915381460253376939727047678071048777828949557373998627875279546664381474024358474295648620839128206728287375679662833821338036623708976745444307762030763616444239858333681403248086666585599817170299254842598909237442619357838258189119911546821674912207157561275631619485566234663888972847241259191726187479777776846396707435310496377166953485359993400711785787868671635374344827878683541720104134113463619816839535381466928575187360547248019249551970939098490181525407726491908058414122371000334862928282381094844970156246970594198369178054016747654653557311865765038505944626514727505319684542540235635990194388650831690512230502269655204736781990833512716429640689409835468503393022310297449831856924890078670318015013877262772361199666275275202434660469695189431953719736998143233712200873601378037257302950732177524064483885991255929259285355170943028106355546188244920911056287043073409546159981802617353995724349021975872060574209256697467810997224872346991481853055794093366135234036864266293348557979815902488348163293742186720913628023482703650863005323802055371566712751539096243250508964439730469221403510845871297683201027023932948689161036798408887373743851574560104747799146486281159673842992550737866342740360790960358295948517766219951611548439527223989513178855542431091392812054170988863574575116328507145632060664704529084842259674663015434156833366590075696706986704162001424667924929525092195856618740807351272934174816766627091530894933113124568670206701680445868111196474615242460422120326194710007201806649582123844193300650056850619579627105235650374734057312255929968494877820024517710634301590222656392801487510234600811559459838421858338624400620756027108159085444520688415523906897304706943040864565493499074748973207411003271397157228827520277523559146890209212784702292763699855212683892862538120320814242312580270944713270663505191064493903827481738764487875572192169520247603081234594770047475800589712779225866505650190323616963766550738426648039534707371145461219321900977877950604146570045228150469498019287532386915920973719925991630995487713324703647492234840563819846869151693981479111740615928033281304506789893553776001393196939671717849065804911419294073943204493194068503508027210712340428194074010986444268388491989015289363976439908836918306540091413302286913462993159358360455167028424387612645603833888064873495779935358193259056912861406096310534787124125524319423671014231476466341942895147053951662687109211535239420449094947636618249832530756293720497352336963525007975247354429426278320807255137590803095066840260695325334580856780630337714285754108625825228877370648305149798021814131374194965687621975395504317754474194369179533641221139599832571496825239930523494462929204790550903737405774667446196022609736883587291113326075442411135539316766363276177109250639018843947966453431728937477557013342497337836645028462049965286795654389206142805849997998258049021021018811952077649404535711371285428633986674487261875055885283017713762120485536853795654968288153600904707988240386690578254946278650885021840874491014825058801806848298994566578446699810077571075790747306498912437296811691877919299648341907797969157920699797050189942656010800550603281291168447029126954298034920364126815817679874463350417961764155156078351672973604155036250994651075462745522654884807685303143523208768318372975114422678898678709329753823939026397075554926286216225098447443025240079838409422240298630375565586942219416215626746382585743293744783630521456408118310706688265583399348456131184160294490458654818932054143284091457287003516227466660027893113740123028367895579557853085216148108590935978334925050179172482569331184245886056100287884386984162737234306255821895914917967414279182821386368411285060773411894023537555664318308098517036760307526598068616028565080427306633710561369206679057229730326906611525080533616677226797613175948625171144256445197020740871338867209848388250397705499221450193659072743669634841776879783920446360005331200515629640855503173550861868671969981411151447778936252456385129282321762618587601855746509062929510767332384450375830814081483986056682829335005535301962415169944273515563795572657877203080709054977535405051542691653792814081847827515613646236484735647897977679855306988328216425294204802651162629613603864182686721803447635509421767346623497005810218141649877832324718131390975815937019473629341379952342730409368139896800096415235668061232390951054398465861768167665514560964071007041993379211873378772038575459996490045132464043029968729826465614108609402043365171097528648353947029910100744250155093204192564534544651386447508390431348192410385187625951980103856025655173618813345087364659945142871866506844191579853299700422074480069745363089016511867496313375484621560585943101741159268526683633300927999766481600296751462581557760445699139375516453996342930738109662494224790295254029165405842642644851187471886515661484297082910408792092012580095840064606357838520721240154137376583227091788753328971368409500825609710604259389316187946049962367461633176234090501043255096509982090142659307910144377620377375566970855603773950825432084347311527721073979435028986136482961860461446437923114182751684448736694206573387086073753831726200573084189540396816954356976967586343088329134008532751195369684826476418918726953154976299249416680063942048195126581631782201884409548215955542101254408832752856007020094476994593704634659839281005873992018623427424589701581871519336870227986548258597957493197857751030855340075773602395063283065348292839085837808864800810892252107092906295404269528022406966935814815379629056954638907231905559282329537884615704232287828096822888085689909536330284485960906044530914187633830010323743204130575103289689519577456913847454143635008140892690453603315561526914270656746681158403694721186812662816130711600875445452771662189033650956452931861542202485501226716639265867191693258089926322400453065993486903915595494018216543232738033777300304443707756919888569497826922908490564117552897139539981948382397217844788994098250658383442236381268875979066780823488851781822688866077610479632924674697799849000609295370417680323387440792090068678264973911211531639073811942670611464996468832819895864332849146409468247128953324074007235680654029737837669559669461932294273846850632471118652073077561635473186647294300276096803471086946900595924271675048211962633299280157288901490915688794791291373247058959559220654967762514163732642344447310587422424652846196757090440412570909193544967424713735804287155067959247711796307517119424255599823705399268347520891782553397182387787095920817118115300395418799534330425250258149503586981913030036366495965654321043693743778602178260493040052756118464872335438120159800855534264507591009546279737292204287624435212949380224807486209861369133380743892160977964057600582243022715687139509237270286851353376852727000326067477027247525508072682986814676111734901915151722982725183747208174648950833158901652744065532535259833841941795384576351332976717906795123012874771320629387773486985102481084611406704685835553173134425125315959113648954330319901844402157979855064239151368857126185946334077779870177061390730130134986281469764650519518715195103861489360262667919309990027029377439170180992483725551996167710273350882599284063689865787175094865950988558029983826301158269103938789167308736992760039862654988410070200931150245226170535791217791260577779697623233978628094197424271483239598195214235749407371854035103305796768981584158539243160379758059530127695905650554480147333016262954233502976588488292705112519549837035946707914958856376474077839519164967258178954013120841474198477264658303072151545260693676477379231945046622511279717443389204347132822934657641491358744968080758022120338961318183047607413422305987841687614171382544892000386839226777393687280457282812063711539955167078617717595133104382641923490854649966028079270935672562461473691169674211186819711565508547493170546500142090310721357078686321618171069018730894452280848469428233068723084707616976471168392481904673383726144295919571462641476395537033635125037043370210431057798360094428340305163321439372003476291036316068760704088252944064259392815220746168313557276955022911631063935522470268755645930401042224092993378778501093654037411306838552865721469170318584259454345937656741084230386928397395598284364961193248924334298821018231636792606491607552255279208042911404731215540030113612063245423718759643282259254710445880444278532706345257580193669686657800128240227240794106591775371715451803567623739988120106092641342105703201091784289661172456028744918996937185835111280244503930204040738824594993497573473766098818446135777927083839612376522877921580257922606571604332973556707347826563690602265599052804235366115844292725990021355090552801857941022537485521234243500915134281253854705041898629168043378026815628384750559999846054618420594634513253230697607680689309538709364956624488300829907621937369704144039421458210198588476759194310433999010262907859991519306263519945565611669473413988679834159652040325938808791509152790145321052252561620833086365053108454067333833892825698217165997753372105005127375158693083648071328483943558917360312361093122564637611650714070702470147938756042226117656051057431495154556423475097685016587200701847667434091002348094446517653015861071708122350247720876027750014976887272696553934587731296125146332966295174693812248718213245339746906305189079284091596722625730150515168170166268198664971852047461458286017322148013879359623930878536082085975587436695480776243350463901933385387901421391486703667674308127157968197982311161584131549835393622361866140904991809174808945380853850549543184692486201450909794226444948236935350510628261612385720722620162845994172351072990487077123488003630939572133730586730153079736702091266281723360853350943058842479464062285815669698267699153821776786265951253523090045301479714360075587658475992368108772261914991586440690467027210031236340035377558449649260835578506122527445199895773056600260273550317040995393875674262150403046471353750028072881165980360165033187607836589647443990039251959125095938006610916756201315151789499359693049011768413457102132147695380486134653743729149887317844087221339946758473472171790356819944183289889126537974691288353883488455075151256127903149918029566628795796826058270647334753723163736733359928946017961511013608101696688855365605685919616533824815212406361886817320287329927303495040049036682008502971085606454534201988924149212116745099431352933074746715329181637217993033567000222346891733623804678812610902016142168660991935704134366764534027589632333880482981794608867341541546020769385106460709474754559356098871556546040971777025710304113699001689368496154776060214021930488119244487409461522296427482548043482029934493895624995791788266033865525307374566914341513378181230061426978378157007621490423974305424613335123668848708591250616890020501465351673124919118024794812555116042000900497555306679304250603537556196549085457951651225132345720226868430138241998052074603332254552103897038209915288081802480206741287396828005694554901366115919060099986920607571803391632113555665950746980701903053675743145383828530523023594350541930418098673580909640998896293537220254658668352930332943161464079892371471035581173640565310102155423933226640447081002912291319970342715609208705223034088536796212645332088800271787464646078713944337191559105417348087788224014630391156047487728386144296651318431388656889981693313884880668928717569293595350163114596403454962695994029011378037579250355364974854704863583259756094464172589380643373993174890921972088369386538564793992546392711624030641855419037951620010597380737210041113912087875718215368227354761226556752096302701174136602563496121763380583012383560501588035186019534466165866928105765267310549464454527698957352290279158439462015163723683143763794355778085762719650278297262741933071490491583202889833196492134891566327301836684128168195545670915487905476531375709319236557281695259291422035633832763841105232314605863683399632512619801051820422698007798326012470219779248091435715874305821049406078727607483754265447939740833090158769769495298260180603215487201064362792075816257828613153157366384987584805500478849835636907750475443572970009045260342198592036848791561895904244378362388060991357655039007215238057074710237383172783068495484725193270834337662586380381812730948446953595929162466840278701301454941488990235064367172856759299976969087814956971502255259614648977739991742916015556361192776723707437116985451069977231571501062853101452564156155228567694546978576749664532100976289771460462903683973029555316930236450568057380256161145409929400659074898418788949736574421326470938652630256606602512976924467738543083455665237177023699256362386548899675544991302795130458375953058461996059042377910063101269121730501648582511559607732954905264156346180923731286344103260052723599949950747423110747290153144077138536155568540463747081191017556447256439521793137915417995001508555127030735626247078120877793884543833417677428455474288547919294424014215962808567878272424446031819702522674515030513219910495634528028968040582237963854884265248320995811137856005967995292912051576413973256007862482989380281331918836175353977738420051217795364557276419194778060396698509936222242243350728223397549703857263833103715420075682476959602061294711009390702820583243741811745516421014191684606954211229555341321885755308488795060712879423933377975385674395273082583651860177103495087694938156045751799482255211000699482258714084565918283371550720917899334828902718309941419840435322245892563881974513367137934031115825679106943268221198061326552413082969700825285677937122804584275491297249324572869404156735999227942208119031251475323484468826997023268995904365450641861237124553559156043227164926360855435702165506374908506353031035182646852226242033741969220730967448612564382695718865441568993360551764555237889063831362269462426875017126344840373290428764429990989367235684661364227255490483638698107266872647586161806773429487602967906038124176624602394023606388315303132126747430140855717887601683825380836935417426022295832494476481877795636957432819247626797731860524080283506033762001810212295274120885241344540774397959572264767761284076990906616808537555853948233850888477138977963170532483664682033232158818851287810992477032641633926645869417268558634150912326159882682341058360929469007732822290759608408036179837595489773838350070667614032202334484181121730200233104648763292866088031175597169966707450539388336995323940905134444209313369557143842399108359957507967191559690810702345041623865722662302675507291704804699947275889700460047466430676561561764710426734288262553390989727793221985238181442023355966791758969571374652757803468118517021396864343798841298874663319277028142234717720282338715815607428013131909844557820207010643851504558502523876912472323173412464389779917190558120537009768857479015384117093670812756517077892018186343540782857779338265647616360696735338267726393485909900849130350396216295719915657129125822104916270256792428434549789543613229874877064599494817665997071095423548071152988483631896736084832394784271625273095265801166177252931061256005089538121667590849971041835373946169918268312648126711012425047864667151190157804907565110101611102924979963585942327635472033365429940278427430793407917674054267006091495464173233920883718527664224857244895901426271513626619753177357602329639168358535317867242849076652007703059217902033502988693409221948413216801128561509796354673908870332803683631002978198173474382249081317445562075492326856110832675023853793656516296051449728075427964246593361892018587861163768285624408027640615083783778285673133975428160038383603835983517708538754305110689356534328221568076695996247158094830727172837777179624793047319932032368474137179505451378226530236912673703911648352107623139798961067800609693908678979255735728957898340944209843352719599578151253799516384222839846029168171946606856232212911991443006561678500490333161779991830440786797637756801555960745159810374736631066794536516930996991862537234336466347794035307525157274495998627785849477279488918413291646501519799114961579971674867106995941060544344780837417996072335156352422856142841013253639193792827564893219264944104081532775373612217669257750400767763291453671829934171686532061011960381608436856283177811336187657058549323065875140371993970786575425846813854767573804445142026253242210585043431682773153482821157122951456958387179213507900425719291668019169554770456296591246332833944822240863300546452664751809759563965628547889384377848431667260668969915387254329676000397784020673142519448619336285070741014982953314595705466895154386449709183846277001043824356364495526497632693298312509165487122070402234884492334093706831318963557760221839444923930994016461767070143717066159305431677420188079951926482719760312113843136042243903816972571555255592132991569311623396441675001854869081047768367839072363291116529357793150870005841391619453891227277817912587529829294897110588683865095310670627782880164005569755531448795770579685126054807164396049082854014182171919760915906246091746718356536535136721490519100022810394395436251050094458941799294576675222471321415937061192408622893768253186125637954539734077536394310188108066749387317431393500455435951705469582577042134760609203420864839190167264540108384331630543869542671026518092857868917938019792027255608551617364678260101344187708506471046579551288324416869241675190050068770221504105656854790927986922690234980053529069523384516546629411293926299777895262604493058609252753660970106893537172108842662767354956875792999841696812816768189626954794769640161128798255414230412791998220021756303875150408367607074252837066816691212205525812670181696164348492291896393953990335082983925653477693764659902110141259552393374179928905020724132732822255110974179227390936803828718804523305741603112764667150320131950403626810136055190197245385256596668802962943242153831847833193542376636808067471005601723479642814327050181574719998223103735174056406113844623178141592294455411349335464910764339125950514696273104942635604998622746821275942968232464762044545950582348264805365815348986933582112922805489226842635247823735576411698437874031146640032020107336911398167149280445433128183864544851775407059778663408535604731323512716116886771856652146573719699736459643058947293997220501401525148986582673100466104430548797729574250114332629679420108304123143964214003836970262151438449790545840601302841573335462759575031405287951927524447076084918394242873193037829479898596110919759071738933354882544828935207148582768460974699006649246398823963119723738523703252032998505180659742394151945726209596384747717303037183919448145768645555879875495701272336238148694478330875598963162683360088322082340935085128291827946942945859756784784223446162204166422255071751994454571627574565286439583019373494719580050131134257988478880517494116231850296114157534024383497416771596791310299122070500357980066096888226223831948045340725296273657238564577530525241078289552195636653273652605281232631065379514378742662418209647489546490690631852737488666654916628607695335530812246536160488226702426269267982323519143938394781069519626800223824368922912359480907769881427366353652165303901028821322400459061561642553063279610745179237803330085539318915506455310287516966267201683330760769907660266591041493411352238891666086993948230892749888479632143624557859147947620156255982377494623226468207416003548449675180729178778315221996403478794134600291652599765973044770450419570861659347553315741223707256695437829356993408624065984094977684662358292647424462106120997491084868212098778781356584114523405391561662132037141768213504846686989485688755511841617655092257801883300717252372419313338957537218042072981647974086202644361204047261463317338517611238185214260105913740422019167018810812179214710467401824106461247343822903823597387461424564602109977940457479501542064096239827585727605881237111468294006144451604914886891436839681191700503042923426661968289617483571015901802617827975108433187944333563613717890269077372495351758688923303273325350218341120711256048179636500461244073032836388402702318103793942583520006187481433545192496128274893277639487057974876982332588623545211482993690681962513797762593059674097803620428603845407697269340809798334750108908357860495329647687323698112935549398246382409363568753347948241829884946642694677854656499390839641379683743543174705125228461551765920452807906843946509828360817424557149095647923513424280602790681525736512780980557085389559943008632924899266329775202840500615529685893545358680473481049506041284538984552150349165125193068326987600329012141578005775274431068714501667866893732976998500325937877825024567385504728845575025403588007119911972426292052156314410997554670229639315908838632143722466942602461349481211520876667141584146797037790872542033756571261454394232455658574072045340244566621309079603952469776555434314206828954773199347820288914576045764650339910308790499513210449259447540540642241566747382836260793334178585050893856559963405036937198839012468103535318872829530325653760404705161926205377465757944597603085854204968693022066418107081809777657932484730005490236477125299720196328079304709486054144577107931084074306897646236937324635664466101956453587194849719392739914333483641772064949222954244147325998493084706051230445289552228438480166932603864361711235550721093482703806253824688294649658566420182057433152168481384520715784435805983217268267347952777025803534877366019003309308659891684183715582768498368555817276988544157234812972089264314843182604371657220583461904501885656533092964879213087462621092692736959492216041546284724825510842326736974903928862811647094268705901131407230844784463721375370803749523233331586887953535030608330330671422838415946517058330242764475152989606066918727027205918912640063916318842720132829276361289896200905805089938693183570355894416593809199622932665856654464406250333089619845574342213532334641780784665622652197187022866529186404659974689177494791033632573442845049515735000435603995009651104113522272065786320320339446288824965326482355135393853093433757805833001365309321290079151044047986624956231903699575321136201380945817886055323121979571940030551947898352265617749399303068609010290522122889060149351928501894521174928877666332675029669481944606872494695710744529371036929979175332649156395948251363430794701080358631818763669353643234344627522645063365920178509138697816013698852676400675840798760978935976324957826618272633215663634038959011858952615739234802040532329588068757828291279801110134130272247179847314199324525643386712087321467806379135314490356163180137992648650619672666843995049877567641651232117274800960777022359211585206974745142360700086098450233189704014998839460540555836434973184873939409597782661354335835673753848170138851722768303989258786400740178895891547055494091914073405486638856750491938997187743670584634423043764489339396651191786375029519522910159419099620861623487255163894962721019099630780468140225314153648878479620907950266996174704838117712987777281597594001187354079517023235638465238833151346364002133283357768997953146002296962200598176086278433626287430284521812963720127794953701717781047642421915606493224339328992924444415920608879639190630647875435694464046899208807473500996234074392683117648938172155093757916528884980060895074198121505215943463180415286161832025673617525798556369868258535477343613456627102362981231329387057551761099506833203951963150195900221509211649717444484250777438485355578558662098099554333749111897831981335916787930007341101492548105313555005592719460410935966316458856193888622780947949980348515310754579291166604078908684421597184635812737695422245179271799108248731175795372147653172284336168090729611028417278940939158796236981269774472359310914736486803420890792125430984126067874821959445110113586366472595663169600276555214163363142394671073199098188505749334690680913895062663922945516432022771716898146543999857765565087433607008968562700168811987161189587088608870733475110993061932030687179853647588402582448677661275493541727249646401656782178923560432611585197541447593348736025384811960074951067451099694515397134021656071736828108124018507789300607882490199374219814219298248664078342521883369887097719568292651477147171064561600704768525280308431627555423302433386937424356916710936233406720688613372923507970990815716986329764641325320939365150002202463931654686840891350583726781552503771048471348815711554440394117395423464435103864978598281203979945173903353810237817115156070553625457397819565375941408201926351289712240758528999785802796496079833317910288576419317681403309444852496101122590203437015278723017178643389382361967876047925585726433514637112896846121110852379517064897816532966231970601437246076221791936633403556811665505271699093830747903856593615093355594449629733127719710445505464572632009683039968462711532452657889368572429586144270120240246716110824661141702227419593022153898676469610909838833905068483111109713224357749030193617739130537014902923616509545992766428357074716085165510733573471707252607458087937121192669374601614612346362677049313868951394695361033504379447014720468056085313706333753155777482682750829386137866292634489485105469208837861529724969105938279522829633046209469968405882493413159199632382712042347483385313718856116974967184544969375947039700826047686645816740654361937528269769922580035490977236780595906580781374838871995857709514581724307006424438160819522998699967368456350341072553713376214312919581659394034647961720395563509525129195543799024147569330375052815435880489736128282383802814518924300694986733144902743429791700405166978558965700820435404794528720613347559494089820695122582548295159765273104378773230938787992389964521838951475108485675554386096073038655022765562161151368064801722427911020076394864784883098065126969052455248158932404236009968438155976648020824381307708957634276453879337749236668685046401715851989762574659340881807705909457925335236570567822072751826326329829520760222162710509776044285667101501341717653565421199345007792055295575331081329306843640737172503802301914769505495163192355596664903375026458246205276199447438276711615854683910466794742424859815035769262479342560961117152292661655511029148101282233217472111722131471363700792831648631580757900333590665972057190378725068400428960978281286955755188482090279516829866047811296841048712165958223307372619048857547459604331219085305902965394351140150288445788588443747426095586938633100147838477786670702419976741031969046052238233103232574745453269586336883223210481065123628665403586098622096096246009581592132853506906220715383100971644541248659250580701203314476798654263723833261696336284076939669871439805867776302349679360870666132558223716699284595533074504183892283379080208678047173063181162580397787523263906032024286295779706602912610869623265557327641928710221863491190505349633753693981446138731625569558401135002951020971058202076485685582338196038768644006576754652949057546150018684790594959803678414538192890709535514148624626585421908939804386504700371216856368205542233442352995418014297252781924037465433619995769241205122206521429723722066364588558460235269839395593518298537061625828707084528601308055707394325181780741468959568597892303031842199730625674787120455701163083171900409232997929079879035804929171142503258092542065452733625697679585969783448112839299091768336663635195537474632455064805015308519422933597227676581219414419361360465799449800218692213924925175562814420095139549176102589586903684230105177609381684217681370756492888303176131051307082488088698231157605420421472168818718607247040587937244684877379434109269099736499832414276546542127973119653354143328867844024348910640146021834837014891846988752060242079423016031685448845323616792213616504969615503696659935234266779154737784907924464246097536593077351607708262286779075284277642442531639742248175284235003784337538128115828652838458003423659264504494097805807211001360333762464545832652100927287362278064597198416501156593329345121133224375778903958006362075544825360954517550050665215478507656751866931496196002926864337354518903552944318226168954762953955215157654146566418118066222308664660956010100773573162012988320503237154315881202364055781880778659515455409345366399613225812107476943568875107564848137812913860958509274880570784514104053434974530115060832557476953931218450219907071276656639549288831231886885321047811123903567269854232936552484302891865025911018239759774680740073678663378162385633995979221858916399008070706760577623947090757994479554916013259538631507282199156686251397331942425857554024540649187928240328611089144603388034975014671299662987303370866496457412473630132031719233509494579664932880088312959924436521068384734425121596510960008965204246365747233838106098352920000433958409492633410853754312745287087761319205691599377024463003446047207746425989075627525103959739449676548891184190306818684694707078590572534797392903667146183593804823671263352623531980919549204249721491803165786541622707238490719081092485139821759997610972725665823737477079873541609117582019747234206060979964015283703205942378279251854507102849192270243167385311464373795117105826923242461499757365397462620220087436680044957989685748385800748205398925514367360065699768723539538933809408420364248923152089883297264036197813296709315805512034439381814902527236819595421409639093033899130006777998284927775806668174872719206380691506742368736405480251949411959617142239732270464680152179928636140797068476955263042821523785144537006342268096487169121535799848500614098015948717162054513630176871268719810591769521732611226978588448541966991654021867332881562446996857920105474818146487717421358943614470413494870928007714339138607950247132233123692251005404044343299245226192110368542231836048375387706999972778294488265645993103551812126685696552432533935350673836297104453899087154816172348809233138987945285889729068370402857795867834139922265315191439713101491097789904810168840319488545385149382639599110034235266719353997543993004567582849317259541444322431648025216445832430497961852031155093489635285064008630086138006748997232191761871519226138351072326488106361544441315847245610832407235806023158771514577516240820117564451848842370611882450488602017199473972885054577127216311453905361990760803158572106261912711170679290598813963605205442996989321512609039288419548786515861872117591497058914545581506609809637965228162226360362139335732594986035520915946397406780726449321728102541643753291281585164485726167783058825692520253803547908952869499592588230503944239389358646067339508311487117976686024096125047539760288303272245581288323365773213497023310959850834540224818144413211903881584936016472210546754825441292605110541217118476251243331456593815667293357801021132276526948369523798156203306636293471203615938719916434523753853468125446551232445056046204620190441197253261725800207975081230129869771086727375060892969937204421890662998502304445436527269711568023043091688447517565935611580235827447170126861964254902956390379791371702527570023073005052807065343384026606776245070049672392026779032968111934915546868769434518834225685510347696874740652322273836575868166057599189666507296836317672867694101905523130391438782084528399468300537716206867440501709508440700654059130970233523783480510135423837506897800633632742441782648015787705019669895513326943485819867323901282496892315699114577506999998314610487331978579151359975804825365938577711443118647558578447760488706968835850120866868192682390341789778115056198116867463157526867406341207901490262833994004407109329615339938332198075302712707938579084799332597859345356435628622162593289506537690068167345407393231348040644429373668312492102288932195740234053410657896229351050074642347087401187643452941360703679960559529697043725372823409721070031709940902304449632703325119957214143147949407351145949600050947875283410736981815008644026389331212565639976026780060417655666238775899827587004186178149985152542487597680952759185518936758402601789599657148840702799847519237263866672381356897559899230104530352274981789813261316642964963883899670986443616482963568313313852565932941568536085946875148415981808412814415498490197466991174573210147130995886001162759033013862863307666519093440605680837110913601287543427623230831717356661319056282961707364748579378762461388529212763397232412335883922183638899925501123734069352711093571677419407697094246088963359151814633012306646780576621942279462079416454915355226501274694299130569015207336400382054788608028324426070913548271063875130768899720469438403694255377188738867596771180908952094579295930613000796519403725801568424135752155034541250849082656282478365629235540505679277040512684801255224455285142928114422097019047280196682517316925523871557681354099349876293671214107708456459495038008874036635185123226513044513722996227957401782855309358303351117894528483842838422631514364338886546246421483515203756955080109504751058890451403999741622538331343672367929247328515813711537604402070536003489717779872121799186849681855937259217870978538621637106759542172657095911849184921718931706110381955478877664056308790744123731161708299888340334919336718014075041333199656126172771208870766684482442750780357264787365097791807848242830196041218035949405818744745440568712765082166057032213254356999237841600781797884233601822986574147035577373771835400133172220615090625049624761693034250628607940707995686689436194670198731667650854289680465718875093583736510248011163645827283431351277188364614684965276267645853367788357512135533899946438727518827480179725796764178999151940425618560741475724633114472137849816280869038643365884400930793243719287622147651841759181715262615328112333574096707032452587367880699157619721322111346061745426844988206390117625831367504448857059262517157386781283614408116143098411325538231350326711609738880017808278915996352414118670117044480883357323788222984505825654346781742301298892750363106185900862328711150076973949038196627014715076155823506287121874535624255716151211702725950350318749520225445557737744015755889213814013001659013230724489455770326959218174862987831128779239559614720569456260056045126365150456328678632292218918342100256102592866928184618475599202272232493113776443001419716326861798315153695223217375028860548329468606668380306352162847539500876308234913436682787803486445482577129426524552860353577444647576530841066576565892767091053507275999280030230729868752443699033644408863430884346869781230533718853368601216544052811734275199637997815204067273147809809090848002659244244188113965801153714146618488959392314189330503835457275745240764786435066489365840110796042728075272519079996569854475068694262410617691687659843430798751210032136894998447650678294112506676217283468942104466020608160140330011648188596673368641115323747636466363376209790956151129539675966747368029967807703432714685219415801969935024750413945975162553683343706093056157417451315838912490228915360058166443895330314185687619388524964892434079611503140587802331481556415290895846802692375460083521476846491699809936708021212352001304166966145260156705116210189556885318124746515405687049604328168629978509616485149011078248613161634209478653250183938008002099223777705474844087812854877178040934374038196651369369900490249159365262983910343707867662649372864178328905767593699760501650186570175717405672073438453330883246691301955941505415364121582923042524838204423416508833438288210953514545161264834672239309696310855456888238825045628472260108325168631382614138785282612838138893196877474969371620004096230633891603404157467394664668013442287291914908004083152091325796736344106999335452298805451828108969870705855221419658693835043930676271905005016783076042454033378973693881401386859874104572440925431448854641764977341637437042855039899774344021903311209406888154242071706411395568128469547704332529175246398034235851153700607495639406935414269900772275768638674786701375340165500225888969679944075098126638620203343615149640019078430502158876607287609216083837785734963426407622774433710958612814225662768471543181815469120966617267856622561496654655187549305538534167601514564447779056697498440598382934213920699364404141333092271829607435768568704407013656330490041536536985208052974276792440168740642304161423983135905019752235769583923683452816521472033420480169104354674280157755787577545203237534158430132579382883033311355502205079644656613444017215406892279484919856863780022446218550425717903665924695628088974905782067368504777414481895010798035576798009346450618246726403204381075307030252302148589292987709738828191145823692066096632070941143815030222200926927262179817419214541215047752165435755182990968450486183351032414760700850814123735368894264820309372762833860319821087852765948238634005992542637993379254929832974434186596333456462561910737989722997275934808680283746079525713680621450603025324947857814645773380430433207615135946435742088214220337393645597550305479567890487650166834840890492719039766107598454403755937676909301905143591541882562777140862431626895831574074052135762502443243596570894433362969151544341521839070070385183851367989207753929831704279374644404383653417219879256248495548162829056853344146953266535025294252179470582537050725469352518029474655765208938631404973990058150488307957929796868771128254982464559363246236719680149207202822250894242428460792855337349552684153171503717471458459561194395579944836455671024354900207005503510281131997388262951581347203413231500503777503657521837837683718253946190303955351157226117589015868190003985536426347394252403710328041682164091960834163041304249584383375852856518889754182289406869449068854768965462784561225870942855303782059312301201150797324474123061531753464328234346662787581202554907295664868396075523871306518605914581145560097876046873687770538165653656574109260442845226223616827666418762273191820642468900585349185768520690578847980522558499084835190706213053607845232498198698614012019704147312840905798395574426180562960870432558733138423173716491873301080511313967165022669411547082307443288873511487758881043755960558914436409812793893392664061226222838361069636417158240863058557710588490179807699656609434367447024841073023329028023891549481161465275632481091937613171119204317181639148428294286183540587983201162252068869217058651556193942507598690715101472737749873409129315772608040243759744691673225254517842701742362336853635789154195733827560808625333670597507291442153676989263257789656160115357418013432229219903751504897801108537556100985950317051795338585999381301903723863423565478872260731783553434620411861934638613709534993477813434184536309625136583505668158402158560724981375436266770557133972157629421139573352456550162322289417526791396411625588202771835765679010449216094141388820607706968100880617427174731874836461884723624773531823336071831155415820434166146317834016813704565041395545542344192263870835511017450900695558440897764653716191320936107259212123228882268183573710237157665073659770815973465118229901644419587333918636368661425508765861044622955120336153977374296547824360662493844923210949089374775888681291269043040556564748020692754069860480076104480361775917203338991895759977973093906882042235063469651046164987220903156734876684626569145139662793905866647395872853656016265830808940521157360773210128417609309081615072275663823006622250929115000316108530162887854182941056617504831285345932896284894197323071595637950167139254968688610772580788870653635327053353782293748610036995265206248804976093411158584772236840147934542811749456806025726977656166257030079086098030673021932910488973275280892089925880352248335298144833814327595137770036568847144979082900194798418049609444716812458058615646220376643039923834936552857504307240801061190435990132756553995590627056068850966588934102435995408357213352289542012146431140082957700510890323404879006634888318052732859751582255081123820683027041290680065090771085927078578572089542353533453257538931019881044034846305574013210195179649370648871669396573994750047588491589062613640975498076624524764773316143779372169926636232185261100638416988281918442149975664010386615124668990914661158387255886008238849770866058836362139086311468177000946158109256622310815714345200505167469080427454629558801619249743736660762370175522825113118634866553938743885821760969644490211259125413524258211298866065470677254204951821578640364907160508824514429997238761047221994624216505069669441064406080074191845027207950781938344585474609559176664655805526638726525319312748339570864117185614882473026933343820131848460177335161599013226041779011318904497867247212994936766940502052833929823975080217467888991362062185442957033943006426400944167058474308276685157345646256787169600728079536596186424467531128860168001925968945505661854969212707188559985258553830560869801321716611341503199250583487720380159001195490097117091481677268393250760958392121787826589841220787745088284080127712431596533169911721378570937631663803253976789640049884118879000054725479103296014997796023378806958182091530170424121747461224372410815823809859206850080067371969244370149005999628611482014000158991143506277275791507957213147283713474303751434455932314014571296565083774258913712249952625431488924868539587750639430035893965120054908209859258305869279625357934633654339451493778403773957653604881606044418545562758037677014476142442807783183660493620985562022919350611315891544620623490992846692339948040507957323698705921333497209483490855570022023695980678140558911633522391184276153060363909915165642193823113265595948299662621592536688646295631545427445086211143968872228499322049979230884204221316023250158790037115229720859133622779987201163708301548115243414768740077751123717128979807217155632882210934262598623698098576002414729095157086229743721875943801368861582826766815263460828215979935886163776754602702940631419426744261817477225145951746964698806865834990605603655671841167325742674543144645899149783030097109892498813556013727312257008481487615615769599598402944267926538267793258562755535126268711692697941976550738453338655202224953787414057822380756566069260173818723422486255677233380731497268795560310796433211445844009395852215348595034183231832755253535154898857438306790177546194676066592101489498804895108562860001198523531834876831406871832836513022933968811198443324449483040974128544322131846105652156099293179636979100975061878440293386943376036103487739331893467836274570207824960561507277609915778636421514042523267050531935996012994579038785977318488500350207819664915820584314341732961094753379132483907280470458693235924583180944144676550914332857534105784942419445334595737402110721965201176017803257372261199823376877891007166797906425216311380975469078799349784437628694296414498130983562246563876518659825590235619817156860349594244912884206209098904892465607798304688950940755196595490492224167582887269288115298193566649172874422129943352656912053230788292351367271538120196107722532099960504234864206002654769754582853683998618449912452595955133876127299009098446607304580532115492951241670292754162491645793043361698407145641736201457897562402324835558832239788496596805697132311468452614729112547156744871652035890655045506727387536622251770029658809612437394278478892426404638262150061264294911939864150769240645327982274419014630404970664257701363621572767811918384719210326131966985980367800111764875799497487036824111384388670065477325514509074361855635395765995414618036766438956981675663262808807727027219130755567743786806002744076282352761752824422407905538209818030953467394317797608625160693750611806607749965792150809090380239296077990938645872777100252044669747832943869505400872807395479196681955917620843763415828028385632173530734532422544121675490247645645692345214528807480318371213755392848064241960328510530376692421988425645686807895921174383338191415735606883868768281292834247555322356857159693788471854569364153765822537782068139376972084547045380970218746617498496448850662078964261890931253647486587141100898880469760427855630025251014465734170692686200288163198183442206502328068860896063607936638386480585772913036097245921998666344646298210177892825757698332412001319836292787432627869672334044239383405429960413078680549728797907729896608781556533028380647833979184488852767718115863924716662522480919484897108049961977489574010544796878810406351166956225658611542331663620835409295990799148177216228576688811799292731383322682249189603727977420284713702676745725350554745307758000298694249109318076047537035171062223169530301229078519576608162290337644360967883946419108101819937415154233232348249893757623886787813378165429086118579938977209553214442958671262397782766669528577238643676355465918184566745151944756230597083197616743646939898553788821643069601476525651436911405402086477317535619565117926033779108466264667193729038731075861078215474837840221343310060018303768095760304901991792584333942238829031209104597628800959593519270913939781106639981426251589999470302437346730108637921967311899409599504306863171179839181654655624989540800908994533122365106765092531216284617509852349248812072634826839977350212641605044561407489776626770354856270579660175713142803579886993559763869968532483171283978964911910949140559412102753846663437332426065219359869530671403914888108352950873414246615912972174416389787673832980263235637527387888489705124119278583264791520379771961609490592981777283352333020004597145589917992339311033043146375506621618090573214056610153187835938474116503051366707850888726238074207246299507314928583885804275574346024561495412561538744997161408993839009807587954367565704734709457548638866784762346206853166818328826309621717405076618319004131852124985253808139916550050328282642900624859466479095767556797563617117237091929921383698562433345396298136966281047505487837768854092647138497894373952075588707445725536829435661243990879377860014634420432123913558920505107524412548805527111721928577189057457981620039481863076537635156490366838881782592401858917572235118098398423049387545916641762737485010930074796706257347782659731028504201378461925286611124229808300279846046103415776738193795452476541043784426517598305236504897503608388803128832888470002750429530478808514043702112909840493408900196092790528764718508580824757785485032714814902547308026245022864573389550265342187103307622286253005242757439414029613045705368543995482020590874560550977685839012828853402988256096054852746928357224946990788043257142351929282423998879704232935131496799768361179552948643485228547119032239398606105714313849474917479869030960812487011932423485617086794780122142635142398843689336285052338485089510908556174464012784273264903492578811201592645531329765353628474622420842777875932840352711225721911805784023901203078387950651895028511753577786360537456104234911449839671062375143600360418533495721762753237257124435959149054985463485782392931997470592751640932965031647634067019953666034999300188657301664300970841826853183526419862540042189878192007957754442699082242127836957631276578935287329816226225692061076657453357457922459483584134783587617994690076287172969924842356696678207389045482553862087945376403553288201152185107525640548963485588196191351557004182839967266258077719682418543592488276734589826086284858399592766395172117644772069791840231932902036142213961895358125780269313790939653636424187712649069069874928701737397395797292811766257078184924796161465073687032569140412927858785206193355965928221943382263920600339382321140739496960253641260072573432106965465489772577902349163613048304435282657008469424845753052040498273789414597776743273902161942361620323686899106938371869259810840185637627742007168524964705218663589681876040603419506163886151700412875014729170367257138748383319366522380535600360754798177766402715965931970637992717277156296444457914061887280797437329523441304658047222376831614192994413196989897351300668941731915121747814478131291455676598634041296215987434838152914402451817503861474309254093126722215522934208453967619343793287956940022906119382675991263489787551523561984398082540418306896079956548203531055219857907572599768471070746720530322915617066450652151687631271057673907487508642643619104112610205751316838091807090893899530031443316383073100937141124593274362299793308446810248067214783304106277349010759640342406212753076744691094434360297558314593959797441390301274024849096791728388672545565577614185729332979731976409276533945933129602050128599898676934516584285982266267624823580093081299867132576531608785417451391100561044334189358127250013112743276985799812031674985624075932279684387712993690212539911172413670398483217869206791772077393033774331072241167460217585084159048963165430540659794127699960140431644065928665120453835863077775733711537078087916100022186297791343184961722971693780652564636101903574174861481474781055988545407705593735808205243368188764466036755767583766152001128820807521029639954723819769686597114053569838668843959484951976668553011746904247619200474499161431067497420458367742674232940815343885995208844882663421911463806229818315799300408325378079700122403578691719566071164428753218404888332844242127185325157071149347717110749466566596008364524551901334485716030531146684605272285096308884816857830669927560746486365226180554698438665789480217921163598315729887210775558045785781185594924464629775124812222227392198803070068952480665758702596959772118411876554545151271847014904468532264426766677006554279355148499210858931419126317385506514144982009653764340213715903947680786334587470791101110846363728452775757893005402823077748069878321537834223466017901669287517276020561793047547142368074044872307317736374692825538474764278237665564298738704080868930731696328438680379391193611328002356698306595674582481558220329147545019795907985210240742184154589682626934384651401843376745690768371199388242198722753550592007651137892364196844665863607166899446567204199601038994989491312813970818491877729616170143638989802327043413439892816864379824617782598518070732039529544154841486390343074350653341592628428835327051014490582705719448585770999074463417024986018816846445116897273624009410173333294330802174344820399683365120391434391771362747615644274936214708597614922360027939601462499368274404838440674565245145757882698654424918610271863517111934656162626040067410328411016872757816187967415248525870159392174978150444212885731114627506106111790684750692978651413195241763870891212520149142149544639093665515029520315194163200206745100393433234144096832676996981340547005933642847877990117271880124950860106303713568916234021875881446342962473646739940567954879123261653219542587675641678966348068110007071824559099168847269431402709310465098821948169590956694538043129135298620285945498440838035387396025021668867436350364325726689950974317852359016240323302795843762381927813253177448232605419861319496364622944628911214353158919599319275372331666471383323727204315164902175018116169883696696602329896529365198405152691310398911754388437928234101569859722412444762249624561366160931351747519249880353819138321251414024608717122253518147838498685130065716541934176289505893758065393358281180161772339699663449656976037066440927336606667313263528278416796878321575659399376357481714707972215202354931252518678475176708511677069123847175738382368781689686526395053195405176266947949278033406024604306319577011622692862366058075959840883550568194739599823016428513510129104029153857237349448291911935887007975544998269917768046928177773833061063811272285827730334802281749535806827921280228189363642385756147561531355491578707238723190988932446194529771480435169782990132229202180680021080800865789396907350964266715680609426084007586525217675660177059936964828958558248454644441812792292156131848078220312502802232007370711968376781236873634737574702353354065371298263221306239584639372898654006944467099825932827929261994993031751004327170956565206390350533594582005981953424608522177758175975184390218929608177833363518914790099191187136114679757636818453356271651279024410248996366335102624378250207118978896678478433602605983293780940925388647215150865352605727085804023245493133738858001064278752271775615785161763485003611533609141920199583920946363208363562816636816924563026020641038495292792396451352426592999397580753736013604013643386152571162303436535215944664151772065565019134426302521399360994124092519176432993056176943300518789860418646641002986822796936514477396415802456068190776332758552228020518607149987317921492165001879793698315061763761775546186649196498298672336406307459831040163466330269319877218257062569717724179437421813084325142041932627671075582253461865964414483391031366628606558885167208127653407537750728804674088724809762292570914019454693665041546805044930914527726320622717416000568577692527035706643172588648119488504042329378677544239014184260246752963814595843491958222673974084809961864633023926241632379274014803448718175485418013546164665484322667378169950697833188775358568022406406049004591840985018288585952276682124075449133258294487517327493936010755700928442683774292504553399384847405244452895246500052712607487118403199752283704291501780082303833781904497724869190678915468437532890986398421888794044173201113451676577932166443266754189279199827540262904846714523117397372054473284780701356892619539802996966674530217556932367357052852511499615385546255848981433550649440734543892116373862296528678782809833319084548065978762972120653072600684113530591764397282686900729915710085092452884359334035470977227965110264390103195944325135805382234250210818305003058474678229116344552985389573007808021071367322169212135364198721445673109679803193989947438798018182443968210430769248071389648317779457246711300690343306050008322319806318414160756973775791250714055215663055136933233266812788187309798188997266935954144310576793734067048507428258702425899261110559432769007989792037234446365729614636922294655290849015160260559097694714855895945869761853679674089960565369913942825784898933905429472857792117714183818736833813256152225178567074629917631991866420791988312562451266641184469302201548278230962570496192587656903979181801100115487698227851007614348195567573461298418021058406817018410544186159594034762210975844532047731514431646927613723993152287061430551252701505292932460834091601973284320231155278135175176133195782341313248006955129708386285740038992064242369032514965572419170323027205751213566979082277490735713800311469926813393966777325600170257853460400385720232130502251180807459012297414416318022621041145656599746329425939200729980384847197192337496264754975628022149225387881473882608027865218073472374829057347735162512545300315077604569697791814379672960509198954352352276227213914110726771537997475303593965106925013922931359764344572364233265638498731465140352851883804297360497412200144196526237654521612274428193816066178740205862008120876988194896998123017541757448727205633565030690660148043840670958576005455253280478481381295413136426207420076854059830625488523149919737197478273949894361794950731941502319644857810874437918806080694062534588638997257727191566582094311410153366310278630379268783896685308730679475369367952499187171640702969479463788169573492030155023620812644119470901045813486950179400175100874339771989764338802853662080681328173331443242182606750582642633812470787301121655639376043151294891521743727540264784961293438049633597993960047111479884428069101871465615631282602113784135018204325665829938029132783918800012487719107574402243504233741278959888787317824121441051913137319327271988199777044355425060623781037599694511940417868499373106885235401435975917321402646050098272295505592914363354644813977865626109885518216119988278935870685567377573834928826409461050697981136473912883170255478921895933975627150115493963618657290418073542421972182015374001745563977129351201794745261750190274967760279886011919005890932548055650316477914421024371137641310088175325020305348732570316483900622563469797408938877925606048002421197462571676027356316819394512149919742065366373060925133023682444323312820665448778846698122676159156478577780427161974878021236882122723438524599297946272399986010967139763515801558681436968526812617005601779071148374300135707117263786900203297170154511544358792238362498243335679878198033965448519346645516033640472898706536758246857901320211461308652512110313449984368813439172171409428118924584943940436162067565344526635955117982645079795994898321122259704981630763335986524147412970554662899146878774340402314513867695840159393504468133382242949505773850774651080594229318939114077368017550054575680218143335058702816801863456031187951956737274101486014679857556889876155654809952304171537818439222152523683287610251578168447704520789649400458225960542305173178040488195584216710396940447899679760204730747022270762737736154139540609773056812120958162615354632579702907847745281550218722933860755316225015891230214190007036303663154550522894896606377976432381589367765995285757948794040317537587585797073763492645313770032837671365159464197126978296877030720522872709428972220151612124272311293794603738476993497778309205082747159074895551509348518929889260304128039579603635837328856302898982795039417740143571787144004943193307027226878392393871213582603741521858202286690985499130629142583272560820462378116316625569801410208740942359505755820046370115866374172289083651366880762228860621212802474164024674539063113247115165263901378173597953852054267106907398541030012115058619959824286982074671223298024660657923831586587237890050156947429110464455977789771686005112942232141151744918859425742302650388877285645423273292250358208713745450780749312646483940605158380079071055788928604277604648192745590388931219645692375491396678720549804426175842991466782184018764107875163147823834458333982365501867527824348435352139199127375571804168002978332170282479961611158987836302043240362941759517638525183445756150759187204223530248408886827644785715509002262439988787796590932196231301864058489600005878839090910373613924206414815944078378159188423574675395195637406534425993489056467722741419677741051111964340200943492315137395533597309604461323886234526809777580814228132556743139723812546867282030634841253047370764877561408502293578100163057888602538293462949321063164625473235897500511823244388967271978955419359283283673102981123508428891122127816286848981367225859747011006502985449083795814371103194576796945192254595012830406318017319125695506037628036606861137004083839183769223707515752782293731851241632519344256307871362740242989537555385196777566677317393059170789728737216953962294329754758821638823935153059484103769003810627380850905386261804751027811764327642382617269987374898978155495042288479004195510910545083761470900078938310676849655073462053804942005311612070205347442417145762932526498395126496661394633111593118040273252048180758258740257964907022741618760109721655843888159847331402019217265046196909493053278623427913962483365836935051048111661564088957167344436651370757488510146995479205634133288150757399052296338372842507581454254131457546895450542976672870117693618959277615359759994033059351076058491376570626762428438753754688311599132242694961177586107390251824058512686828809794046126601681652252692655188777193440230756936519206144209328800460962995135698069337778045540983097003123581721983741534259986624219113862911282165316668752778691196283432604389820778596145682236914129565155573533957606138850141424462272522582403187494398692308308848431186127436475191678589536518647857813969271425495652586369608099811687487784784047090945799159074754303562146904746652558711072692515287760299748882680130479274871157746756981986588957076253251486888899201396983868997436323499917408338380457029195530436712994220216878156789599940280678578162494145057164378209648000016782814691087545402297610151770240220054122300378643224470403726733713246865252463415174270417911381489186329582005471075527366336848382737530115618719180594393136397889412640030615171140659736177913593734865053955439376789104862862308602136878857254765225032016345774890545224813249329425202786076280710286825139042872217618911860819585127182019465830440258642620710563306060378115113028012292893715772528675127925386256185055500147616716850455065105058008259479343943690618986813966504288165480440574427311479893763483679055321641724584857417446553059074231449810892809081641800672380093872758232749896966561343614884442253382880070545486628120899596249516262849162097022333654501148964671800602366803354069194318335122152995619593463165070144889528741329041562088200724594951564106684713770912241879008766168378247499117430689327877526506585544816962392563999692371355200424527376786959543148281384800984179799347822331601245207610780228061391255139704942087799879026474402004966761654711421304151932213759338159123038307530345797147674283818155256067531898717220108969776537075053699658603561631823167420363616109246298567999493456367714708374076189964051770082579653840847520003703767593512085665847000228008972837516498918678921985056976295458696112736923309435362253977723601071033828733652927193433736039098516764878660305568340446982410765399654585394896561999091765029117927429329469038168247214976688499237510027448459203243944430559909068182789496233598140560156183192101785746300576421080764639305187403049909025788934495072378333485031590900038196045433196481527035570498177832431870282394744726014739542985387166376755522790690378887694024818885540544920355273698730406729808841285935171878637462047749523322784391147633510659182163425861825476029004491926305116803469390273378907438177005345747125959002926045406220458881377633004404571597319242058232051118852918011702421383840039390193505408827905343860883831419896347770123254400845706178153978860295661955151379461415729689778897090724978030641401536571536420468575124017271029356545226949813211641442135065997032536277645216396484528834482055962124952210964092605331581957966085514704151760625718399173199770166049767259870191121555215479882080236368057137507796679389027131241426747870667968886053920620824867379320096328409402941505858971630554316720008887717694935646598276938803291361273030090991055660610720009452092297873486736903063834410184835521528943164925424087408515068709380795329531503089125988335364890514120881632033528396297422016910798352274232601588784293211554454071785676149666032515281367386772727157083017888792022384679094822520183117539161073315179060495324024189439746766077261453530625064925608296079656750862176994486076908922384145164284021633917356522068637837932883686800745890754510200791019195192860114165730886694592706217393032776903273394164482064361418020606642998830604388030649915717378779971510362946860458089017908993006740812976323610798284875162638977392038005167228396558098687592177177558596253224159457998780771191124464001778794562811937092573381940595814913735667543842587265707871298622239469760292279600347280977382218547722180483123266231592361003239531795535239128507196628254558619968444144643733120144903851916103090668374709084723638639875237238827079548464603029471445523848564381296318447248504687394957741317115680261504727524507981111731851610310610785034118824417916220144768889475930772084223142334139836356165022065337839240512031806493663048390953338686830498302319015150428881493459154220259546248257111818357491564746322428173456333932925527324545806003932355088519818268226949026866759625251200489459863917922839406178438835233604783988500414543810527386213111758470484178423280797531308947888096033737038909907542451255122217306869859702558690118873006072028338808110620365669025142809122401593203630496160502157275314140444662194028216125852587203146823280251931658017916514761789775869722300357063255495901251777652325721386520231350445904069922177219390835783332109704215061778092871087247722054734749566676246007497610429832304601201691976885033989414555330476390757569905921411369665411231128164781498306903927811601916237665111973903065032251366042265777716873619813999917810928657491320535256559303712361092914798726825956423522451428210609408921867514235151131339647816672771632410517279407168343596870791391047815718119470918358629078712099709744591090672616890345404488239310515103049801199691033331591379793563550268013204682668276533221985334186953318944612634930832223446167193629484537528694911216391612714804678831782891610407163011655335495004852031387595479705045139395252800457765358130568501773822271665138924078221610807368438512378163880257991801153496920091898015642322245830632823086127709593162187860087049415725271410914930151645356365002088071828138043413213078970886263230747583102475665856948323984132633383703852709304512828770266073298531636292120214868358959951374666677510856701854874610800451070468938566647899940374191591309125770390191058341564092224796938278281920992401754537296434575943652671253015927260983720243450233407076598939978430794244174986781579831564658802522014285455020443369210980222628881641611202076289200639964185692859392517639737020428485706201512369639129778369081962351928443122194379414187094357681720306548441146649233647037076059728725740798536423589697935265872332329255302582916972328778218713796285732078542481276765159812148197673657401239575079064916452086667002765808045788543607798358763029071920366429406477059079905338064373048159400965946666096387616490043992313387616271923362668956109505671266080289870026921593415913871482669077776189446337671011157587508633511840938712351878939192910136294662272355056061902577575454145923273603783682337514168329334215565100432429407186372908858254298349668383011176312904107212893626083505726291539871603326446525594228288737329852911819409003837142734607449067982462607218775493079886197729605834093399710990376319601192001753359762058994094448477870485578479078907556547041511108946884666060657800483512852119981916684533545946879105297579807217760682847137182278890686826391657364482794193719056123815046304661207685220456916206949936359720061888229661797546641307786618532891827191782034918744384045557334825387785673548665914122274132781138025106573336638813870794843047926358306715199411217987193656786620220986747690907059339818333917980148635561733843342304081635109951445009569360503459098830164791720348160907842268424087032595534093692323824295563470497536661724742478929354843894322330109812454966379012054791869739265101871023549171978852447325467622623307560666236057285806689874883441013408720543116327280954429213742363794406921167144086436322627575228573135458092001911328070639642747378935940256658002628110812842436099452492623478087137473692622805911553643296135886965188884948770746697547622922527141075216264386122163005410455964408480500671773703281950208165607943388351920272162988935781501854370063816050912313621174975837811798731381450855300766011241963145399718785129114159069863507729165520003418908621961740005368985429278132436516617948814360231885821499515895466190883831911377652870213852985965375961044030677593391300205673205909359115200215574406814143781775232020968188088179693493842833384334895737714607426123202504498225822363329618651517707154797967770193289108830209192918467234190770135214345273237457396343857260693921266380872583397201079277069890323558717747455091129125222865326136200022214826460368930746099838096126148288166622352616160514360559314372076382577418443913408057970135470794566085986543020905731672353824484337863181349165518297574900951913491950390383528490918827371475180776375577249834655225432645584422016302634739780165848180153682603863736217976575001015865683296013731644447831655530108283085009688431638513066741490808139645124127692427132507601526305069055532407840899230446938263585631163637328377344225491690253167668944487094915321007750956494033675405339134661149358161337378004885413466514523054618925127898216864413315636944803641794189943173112832475027885203633298996173460192975790124372969961713697310977560078517785341680819598951703661004611009980153525214211140438217968341428868883014470419359515173689409283500294341451309561660396783419420799780853583473579607013728150886008687867002231503567203416392539507124840323019293745545990922594409955685807596846271223968476634695372461717948389959208238167271095922246656966014832918785747403863968428045006918644346544098956476121689127365173575240817430948909865061174956429708909296208143893036533606922199508066273191109296674369470980371827599909691078631899997730636580400896734777418076794132097951568703228171837953674880229136573170601239049981176934792008794930816502312968418143422227984314509649055958237712352570388956116971749688152056992756897275158652071449960830233741926504781992002179901372240255406742994109529515170207337268754796471561549943682784171341221169415822365155945565202343330558608594393910221165457852220690788675569388379699233820093900177005339612289430668384415621442174861133989170165839534397575296794242000800803064219680375504103169709343478541952505417178084785355659531317907066156450774753759766367714463817584852339213473527500999706292091901751963219150047454969881515925137507999061052598476876389851653648772743941646978588931647852200044443080633134341649208823940645511725515789020715567026049629918747874934056701005324460405399334500571929326613254041232959582373286429621914866996565002453091133399383972235978933602377843575584250699090676824825385779021651101499929189389160270643757257515784494962552297602375688688495568422853940088658926650547490038809361316469435264852718210327834747659848090749227832048237808107873611685668622078365240671498136156185291178542668841272993562427456429704762081029668519959475995733527678069444477914678686616286699935867536569313073695456245001444521430661180555777155400525457363707885351607342383475207472051756900903585531799488532153006490400793733925529033654489507553073214586949152983773325889803277606764191270105408481788136000997807220508196464287286408212262491863842125506337934211576388320340532737069685717056873507578764753373392876920201811670180150256196076268033574199283812500997333177759204888513846422067653248532301697581910331913666892020289134925322459286507506937292950397187528895200591684011101049203889455001649893481238549473851964802001594231801673835643305358560895288824976515189039392134702772159999071550415943498465339708558835420132397754440424578569239758183164344029498664929758718666424072447972197854900797513604615849264200247654683241737465144249839324516604023583450698167486701922929558511016533910436291793078740799406462179434512757668986058481710839528278545815959004708630232010140424485914436366539091015978609964728138403065746127950303517633545547637957115737328542445563053654002386176520076193774662873528969684746310632297289390881928317470990458549855374468181794297385566238837013923953621668034980090339575384586879422937689282982816520683074992750382174168592190322906162358023650508568488041849424037795251426180529416217990298433389218358545830856597389009133561915307121619153818480128978903885932650906658017789043921047149783999723460891155562814622390366366031791202426527605327301189901005444624993893693200662362930958402989042986374664945022783951155114256591360033162363230885746438142274804242142134295021757015736355297153217650178693969331204636403965233339154633425060848182082311287632480274480375252398186618561751265717055850942425192576757701402547084455678137615089539910568749204283848891798309345123137162354844647037984209479232707481921889421191835066859163323267133678850373679114280276866171213577567390403360857197433025303262230499549893896329197651715863730606378806503739345999969097619242460686221661164201885679593884441876000878836757180530924976621384395586762112025195231632670641506976357146010940411385958200402705103409770458714382632006155190519565443055218848322287054490974731122280584744405393395696848053749453554250488878437531940720355303694932529777839066379147481085742985908909836101138972850028894515382404198953634889798460126670229220277348141050835894944787512948651555256517166872184541451228949187057784066911100171205613137793631367515318733701886980164882713600386182384225113476026256388067984602299143707277049240670597858154529348563052450639053304293713606333383142684971250837025920176894949548319364014666835901789480337786275199426896422313485998146778687125041849069161101402375123188118713013692249281145136411623832807274654155579726430619555417239327150400101499751315027738806442135010807484545639846842688657745997664783742512779393779551738902298861386062907098153679736000842479140767840579143485483477308185840633315179100269743298148125227654292185676708721217286817256913883069916572700398233241579292051219949428360310435463353607159735873858001997108702180782915804641753032783607329457921574991659677314842434904796356299130713033479313719423537673806324783828834348410002042687485543775254751485716720833642747737923190145736302340734584249308324020042765802654312655181981594776623182405513302169072414805430178067050171989460278913266170648879855806680694511216982849648950399153192149583571457176578054027723976084907990421042472265740128915008488957664943572234491887229344573046921956088700624245416999955181438266595970224090415512111505718115398843937505176123094431540585244470669385352890929967364778261479908793753120395460243809001938791520232874283636091260648549242036844760789067705973114849451661324807692045740976982618055094887891352054082295733109869109251623476595152639484775948726855955400400071253653553136577447778935529690701581006958522788221764023989034216380337379520902462410611465470505616070571632608202438243350331408296577475853275044751964056765783405744912608019525789177853435741421062755661873029667563288760883586993330494173458684999256350610914794617885391507543521497123973173741701520702291960465887427996150805921355083005147805937683211228430537725285829499239736792093525921882266373128227919557621284663312135198058716095868196595867329051309566457573746192010097654418861543258058814681352244931294657580580263782837161451488253210068786665700530914900822239217975574261203343380147378578549795122576172558958187195252823782879702112855528862388627932214360003005790161693117802485721627152325719908326953495538805435095030766423074878774377701937731468870775526907596853014207364831979462004886508560245328265857142938784249262370478807513288543059455579085145055976803753857496162412549872013436770653763403709126970826946685779853440468394896927824989750125515299743346633407981111531214184250360910612605024324925707528347837730248610595628531695668265133824165869466609334869615747947287442979032185253594533626463085316123370653221281391499108718496038223071688245876459089791076811016545078556576152222148587373239431933802926865385841855992922309326599187760108518859206388662315366261687464866477748388257415523011219721067986928869254979223511457768966064401889777924760091413670428577233816918577589636410844055578182931435823206832992040211275357064289022592495252555275446220634588940470960323834963522223219664668185010443737730948772611804654735433500292779657002367797171679835713002149636214426063264963037756717656016913610885801213797994435304619120829231419889605679859821832750891049504854260326510491498991639686564510883976760802135511452479764263526667655940323308410051493958407066035156174490998188230390976534627415184814381299928837822308853211184690574703095127022821181714072575001565008643657594197827404938622496249253725221123753309762548886061789096160823461885152934193502406330519422591893274698923765440149008304599525392088706035238617996746991634430656403130036040338496609931019342527748337526464203691404076718076083138358869531604749967859846589760716326439068670795690264823298829666932142945173261158149931181869242048289470247843676787349826606217074371623227075066605947869202440268841626898868323300648401794462775176383727215901314635847665431417394085027722975344183116357869200128305795542157630479484252374382876961835941351559021088839117623002887785469068569280494148324357794882745342376296006371731764266356161115417446181701397199140298686982063434199405195107074344252345748080630671844058153530383158360088623228059795781139131370983970939518913778670659337927262252701295906885776897436579081440462854137564159047881119045674402148450153656764061211982347569416419029949002419939081808316369966575940071129689710811239871286346784469617982422715607827477572887077295483392118981834931817577396541654770818720986277557832220047219571698213020511851480384855351118764484986046471832288476273683241615672799383247952590469631182564523769543696584208550952200016785911507517762083271808953767737157856318518577742060839139477832384836177392522110973540782827186770298515090848488976101260657627296894601180894995801363221931213617887162283618777204419852770306390089519221238255989198878487449754777419534510752839004848633053821523460122994478527421661535592982417578162357639741129250992791310760005355025395937763583137094379008812390844906055969842990922827451575075073269166886560704095450164406244696436605891358098762909628659672996032286235019440433998725575010596463149402006139023885331529641130934655510477977232522268164379674000928165663915352792271650937959321430809732803457605194626312265404036408296865377640616645395463149064106094234061311766170682965886754577037210939149047504021325309841360402752896518097669658400588461404947309136089911918560054743034148115232150284098851188604257723379946658278532925437617002446452566046574994656052536669332768507643548972077706182563684890891057240731195606976617667971834549157177601728465371642915982952964048221089583157963166946928149321901136471381599353565734718065417816455605445558087797199512798945552334809796818889733613390590168388482186403832772317776267412348812866221463160552695053323622033305209353621643281106833998235959968463300573598040642552908833945263759408688769897320829421505230025337547275182010693674217545236740471225594759178811019732777831801073753620077964387237153983974037227119779051784031252244173829329726152167037247887149262588118544380601162800325113780881492757486817379441400727593594935554247112794165407368036177406204779762195172527940942212877414200668143781972899700995891611491601502583707177185394862324969894210573615699296091473168449571842651887440645696640045973300625134431462096737715147742868110681988775414194613589569470927276759434344715376600557725864783278792124435335069729056327742105704712120750357302762121324277782744412888079705357615242313688878069751603466389610512647687162054599382635434648991211679353999538947080241615297122157420410301815488525358244532113184457844584572997939132758460531633785180718750019518742907095830816855133364015890411013384258759990139175009413096396598616309888904653920863546657562747778841584795152948404496602387726757837057797808213474054410451886455327720127384741200085970554968659657351183929451517916413466529624836808886521170833506189614155873278202633616492585123768818765101432937551170869669798412686625543415000695649750068324409260685210511479975350919530695898233662763192057335528993622261278664178896064049891834491120590315366444360393372298495837835098202410086767501665751329402755455018140193303587412407230077712130756624874696116663159475171733660938946435842382327135554655112189983403479098014437177066042937486793292271107912523737959999080967845375756897083263821264915468517062721754976229143923672548371002607800932430399656459652465938129281974057165703522605176732699063480346057046922036277616703623398089702180605511787311962689899086495490752767008412985384788944395878881166466133034542159877085944361956517216332448573697935400728189236962503119247012299523013270162712625366368235060989540665743434522919353074039870923126331268400186073742813180143033131987125812476894916524353220438235891852256162733194971964150068077446366778341818319202747344700883843637787958662030610499175894348230472668815307068279608874735860858204837127090309313710071017134287664746826483725918609159794767544533546835554556239135971630443420606934759212113007145375157654100858435389826352390714967542364158630529561988962615576050483107522658776501475293239289277422937630852901710560137131370611670531381328726499305830707528481143399452486137430790191885614633306026571981270325070377171915792378517264941368997192111141043804430362339692113059938719089140558574078418366052344868456682272841741554593571883378086717503448564400757769168594255555353575187698590048878019618504396548449340293134597277890508884687389834282308173983568667571210792992111487997645712261763365497013931729968191513144706164343219905245436902196770857562612705820266798286163471141097138273496983303345853713591428379097525145315104081178744197459823419057843535640409670928952867705159789514851915523294576643182341025692580007356201620391386352201682116780376150405519868469272223640123096792590904512295938639077802536662931794831889312574077082338784044442616532407812997459104515659314130616987835011680689688750913669581139482930418332880851905326809958517528949276573998536734616582821886353704898097086780894534867042747567612201379330616176498375898028973734589113540361735796423127565523712225512275115740505353807007400305980958599416146757495420855394086402275519875109416104201790798032924403009853169327074704009278165542437402024816056606710428579115014105699125984220558132689148032929682266754299346633692404891160919949792352775080558650535252938549043181806261894367335725496589515077374044366757201144505638223572534366397242719862847124849695607779732143537906740469345025466434822493936232609794433790699234872770671553602758437248897467877683433622241668459360202725066162565797160343940733818655694111347903468607422558013991405488688253881584391507859507404135508596896236899049701924151665031599003669929881719926313644187145473543197715001205360363175559972653119779658423891103788640577525045857150717468243633394065446873833038138933890663604469926341085537736204353330746762648783691668416569728734100312826732477382151433880080150059158580999858699824003551265888728820145675646259734143650034099860209229010567319489626768800636312926648074905744467535869054052358027602828822662919728182092803817094878175724162474155715501019080644245921456457653470841945834756938908071523626470730965757719276709516633053879371924627916350121492452031343193351710212434391837204914787217849298239721712707627056905779416672917692755340471593977835125082861002173834005162778896327149462785572324649990531267231417625891563441608268479754555802859977294709477398517067317959500432684937660559290167222655878849654880919544534229609970338526683836037742485733364420175678053925920026539578316273395988202201882354250909479630787548012612629529110752971866492624269448016930778322303261720885277422610423337668896722096295955418128097157214511795567947400859910256040814577027989242135383157015313262241813599185921201157382235844508478422132283516741906279993652304516899333245006665560635945706559319693775157800054608178047045503291704268562977270929483466905313878726111331916422435308947147198188906425314813643387934787936754005655394140355177328403873599880235729126603159003095615199826021839939644865089015967675205482415489040846459807324491870995088495700711760676264248921029612124258336775820045896323750236666829493281026269804934915383115658107080485157465835882658367522939560817575366307537387904046773534205983746084465683771722643593424930408759517235461653767811702212626001982476389338684961909363479362575913376003086883828505832523462877496511648828004954160117323817575371709271307387407107078085881140078474572506019008494843602165615924974867518837257555886701851018611061604095675147767897521884514312312249638634426761336335801565733382960265189635702160431368377744366408149085277167672858500085994467540114840158449234392848843956939368238574869236836774760418684269103663544847646574317201023242573903452086567489768347840067679166203763276651181539557388588724477292536870124433599974468363126650689860997423298796541498816478958375937700966319196762570995516045148419091553383494075416777207652351462898613722458203402087232877542722129539747833024703742546950613751583444875193722826715492572997615451331491524678549119343882416876889634365703974421298812829628705559580282960277208183004778894239413581528697614939010582528979113218891430943190294268638826138375234446667032585398086420200707011216148773952145345690919932031856591837907782629188724119914707910990083035208728616338973742986306316361600371320404570178577511153443577483440863095893053121303705449456136462283029426032752250651002219772728231210202706165503433255659309859384662948420838605851789545993792406441441343090835991825362114918857470863356591796443453000650900273726539015018538579389602250720796654027211853342090485837261418663328170232091388285849380981962349858011250767439448591103992396905378772884849259990901893202941943830320140652011111329246406080765424626496214637420123604793817452195390507111487831724864295099047867541907245824262183876776774165789777881564962360408689612627974300173081231483378757771612666251118879461094367962904864626120041874813721562025264367923500850877950901591702143215205452029472146897582686795918659376222686220226788943325836722936929593099582595615158557236151814094606792676294582970046328364682711179732227053389730598365000793910356170803672053046439064423714180788307388294076477327748648879856277109215589649790160715267821168877149163427640249493065683362634469473019065056628003431804447460262873196013221921708119188043243635787861939784426549373604952094447707856169479294707092667523347584424244530186310343307774562759968435019251320313119333562887370470122778191662349110738886762533475201568356342494300187943082283156088832571187271308051001074440822837915695656315880919617120210228511391007891281220831143599847444772806056501033439667708717771991251413792813907180266650727728128730142387483555979641562411054370590798283945843115074153860309127852310816714206068660453459693466813822619918518877586712340916117100499797904056812697551053086920354319762732684229598914057581642737235846324545468718458823447262704988516071721591628583711376375444285240993272331137745705948396346614561252618543555218172968151908252992205825715500868720002471454033029309166512964886862646868088350191939266332626333430213349911450635895518782045843733879578987839150991987140826629770173349408800145207890078167029271873855338573931699676210753782664871941674564510529300802804573584661004095297747618022923110645427370773373209262733170141748450777231212331755074472176985618764685166734549704971900523835732315883689398236654902960448160202192774683439517695773871128370225283798773789450427267083086595389074602370743674075706865547074244088701524843510287628689537586016553709688323555428333414889230299412091518119994777563082893160852902462412586641882648314818806696351138796126273981301713860000603956793448168645059846162332621312547662401682606908382226720189421234589404275810632536521515202272336158080262022414121508381332383143473884678064138081541070356128305369863189927709893417392308568708355312353966857134186486801194897744412147900658000451069655525744442830527320007257888378871073127994417120586053189767286863265674145555683033515397809529609201470665289754073841567646066819173555373415301727463428638633784032963574650584529877050344892548318194945308802511944654301466604694913194968774616523780355262001445120630842404965622716093366882380722492816228375910476220641120199628462330219125932893143295811585821976154206047272975673200055066643789945593953973379506629051793273254598943086910937131232668952340072098135358503895878236812978085057358924586570662293114631318978854238754872095373901104539270779265562420893732032988274626424807406418155321325790577083050300011793557007029169857642072077135913620176222885002018165791054251858176527840311642872025146869285678341015219136820107598512319000764835691667322682212984983027668486793433720685506509328845529770146194770363826126322699914052527532780486070294407682248999196394983698226547854100307751851832435596653470806617613094955380166982117462529173397737208231360514988241569772675266580178901008637448034486126730017418480814202568634902203739232337498945422759675167486091765563965964331797987656035539151301027473582295925196191813899080751385448221356596139920888111121378866978765648023639722195960897385206321458536704300532652968856353472526308887170066620937145728201514532308297881227997185199992951074354487720850467829737367675300674418389658171721727662934020659830948631451560218138421285292060963120580120074855045157433387073989004211204233595284528992472420629397368208897202958345746832023442995565283422295193334729340930668615067606855681993810697386015620079117727342605863043001777548938674305328602541321780157113894839046218250297734987647517287833337330561065924746061604997269124314409177010507031151481923765099560608074246072816287397333024187855078453448902282608654252984936783276078627510935739562217314846933045057661042942791348286434455472292298446073874332968763569908117440179620163079208824970004988641405700836228644245081344830491906026684836976251778431096109904499986646026424931283322250727775986091115793294374691041295198373203783048503570180883845371760875760618917477027113394889969907175146690880703055018212119457754918476065582779137807809044196678179726136394560875896949682593107067941664860373711001129519396331610502808217976195964590137277707430699037128285562320335783425762319097874242203611989645196739944985390958238897839649245990570880848236700448650303555187390796512736939660263016901542485596022649734326446997198217507075149379946352707719045727099257992236925163949557803909326091047489041452293975214666264750401434675377056924672857019746484351173986433523732641919343810160015345049999118972086467345544187225538417960365686417486230205930344254351626602171269348682028492056501198066776610886512091540430154606823450745954217012575753297341229578173483087755043062930624737672703226134040862535964223562837142384841702871336021180734071981856266949663858919525830877304915030894331586292310325531495128103123133398756759728146210129751283885400050447558244214767590196195765958684854484629517398276957353756089644048653649183866858002616661225749045822180385894627241894094994279245627611728051093602475569018420874287482057384925858585168104047690860288438973431595914003690017311870564191415231502942187664201373292152236551243387840248061741476330575124046699432311950264831827851440500399158236629772844823698451769829428035145677301985238733574611942148045857911013666494498111695288271244660739594145096124420812179167681314845838299325725364178214597820371513512841129631956166194107228888209207357570508875308727902229704370858080554093531570184177160566840395709935003500320056552451554734206977948857480512114768260055450999089314987271618771613617353116247108157842982455208966758730527708215932518773813643156215753695798159634402939611619376135390452195026875694365887039482095470049442532801781292818171151484111693642897842177941993648250568532493888450322370383599504413488673468197897794121019817061626484697225252269769583003796022477363846200402316543399962019044322985415618658513056157113855054809274384900881791518060122059280419342519810116405234615119877905050006962677112925682948993007319612909655414392305262044695017239849842676116854066888683297647583199952146747094537374312127423096324782288232607600087966458934873017794842327264440812240220395873485458664824297208750441117289486304982185667227060351258990339217032859648017279208263007998566705474917704852702804424718617670537224198924989674981601927010102016620978774121439484801100106472236486832611380630044515888973815370651222937744528536626045472514057868702442165928750916905858490684709415741870665730945527187632582642600537635372599361850948360449516138616880287087208679299928867046082392659652052260643549621866180108300663970756868959821292570082496218639479148841105598549760646734274921316010227266174732549871820855117961920377110214135897953420421458316500305310196686927580705271297175056071088674197004257801861778590202582516675500680857760576773003647202455223632923749564409654392395382590417911972032423258719721543369409062138012339929691405419067989452622516405919060045990541815171866932309319574961189467200775849375857676781741352224355659777220889250467333625437885269191310220413413047835335238516297487147612740907344714658758545778103281619959646450808296725190749043243975894597436380015186508710865328250133825201141860056270645764652205267237447134470319060770527487889210851381762628215768288152071128814168121171091976231069893631851078208587448348894563659349815539509545423398248218676496851150745941831763005462462156521931779919947920388883350498914740100703978074197426670355628479165811950864487520734746361087626124860284437703644664352355384136654569518383365718578687004178870320461328318063000547444266176312823176157473968469180949733165559203720382593665081453706284645412523283813221424831198709589546997608964035070075925161432019712979745497769830860996624317330099833085549920315174308143042657277600620032844002071530815249067643000293856696380949939963476118679399423312497670064163739479425282091354261101121006441578883306643300735739437231907811595463126682281336123425329157031989041429384246891432298522341868081389671281855795658016021872241352228243967676016811480722187594154735454940489344889354707269461292882432702995080506096900838524891587221412136572655920593933574355344769568546003648675556853794336255408111717182515809538580446538728649860436610778310476874586445596208270857464106375440241542878734596725491943367214873314965169238595378438057950419271842110510935417808392575385426855309369344621224018642005999953882053717729014579966965558334174900434789709762585062682827617076828998488026498917200759492942267664667650294889599404648553618161826487902623483610362605806905891674643794006895322141660060469306140879521569539588022592839825142163602764098581475312859988512452196529539787159491686055513460358190257704834104342009008891653038122998583862037182596787442134591864798027355193520335362692206439584723970993919962445118913796588548300693203098780806196163749074439602428028974123625620428276563220781270643393462776492079234426965468124239829467546655773373409270974190022896195518148682611925959646720671645071393223528492344593747973107644539024857540744808426127632295131394665017166428777779137181116779267314113298507963938312449714557658305000471566752096557998530350677249088233589128914561504659487210590814067516907026880595811722911964588889776711765766280210936094292670531512557125126131258579595893986354239715807883769672924651370446602904627289380611385083587451984603527994624198243501411237208576621388136873407469358224126524053858472305149149363154972989460118392800416997312845779593360673592045760414268519511658061205475102516131464540687659486549356269168050335717291893326807594679933485785556764225035455771850502822287372050445198710780484370104883373575044061294676776694981674253865058806675507506377140371538789625207429347341699963185610229304805599786025564108699047066412632310141400419202758582372686204811237033658148512791649037316706407299547806994482045780547771634788554984464810531011270114144285222347939306302441031082938587417956945024361234790193243762738434042247376245629822153832858131887381235428970239684682516533881136810469167982240017125459503566028221302020757555546745289260188991494611209397971627216011425089596038394978510973314284986930776495265710088000361436056102875423091038330901282087879612065014446218139382003533643598123611581136036072499124391747790619940083529247476368590829138761414569501358917128878483568275675719497953445148819517814436286826223998092325948329517733135453442609139183310175416897719996351204719527620097475159326088840928591528789395290963771736658787065098549566977265376838333231941235161212949476642171999567012341903345608662409326534589739595632961829701393547336900531749154043586092847017275354660202753099296009415292884425325201469652537294137002794420827814187680066763722520616171656691000855835403025001872184147159158428089383071436077474510073076976233652424192387766276318129662197795182207230121160087052384132996175977838566630196659343540447145475718076447790526341514725221870102255513791612649094727099254052369160417276348839854135980492429724783746935020210026506158745258451779498900967953192495256866344288280108821349070666805753092332958232377843860808590001365866791912309203426083068922851494669681368778420913546912824952910562484649210842583850726231675848587739571188891409371452558633510497965573020428691011431507683003404287067062928968452246983267854250682154394412141336192618878143194958219447257517604014410243699284640124966989012812193812083902494901841380605224360610030387571907801949507439280389290668789308925685847951873535889059064461268410995535769767443134142848345755477146113717190503482795123253661163818891027228720771161159045156461993578818000587583725955324639334081566002924468457186877230373503215020275693085526283827922332406954462294987121635771456263108632749353999513543440422247918522129432420334061645121465892599432528390469422327564915449654427457792447039381229440537946491441769014852401212572580010399314029009943805498264388963739079519352030429071736521423606693363407224942408670243247070870311986440342251261440584276454670674056403827952119039353714186345305881936571541655613211779831226752768494096567959516218987984667980639555848885247173214649574808633971795161342619155472989988054306484289099548928707439026282332730924209871565718410646946617348056191407456092687832794026809045498825551239592089047714224518974234275748003340722045795360287059403305547294197056889560722141017265266940928023548504269440880051894190332220103325782355651876173315009659878536666682061362927098512179514589332698960717592969983778933504276103450330102813234590865704062543522622192890197035544320049152182205752283227131405335958749169817678634121500815934309316961489133275308010683100147710845959134137802524706276498453559432676501355104573599280599387451085929709557762190804969063771591634584218027973294277940932730737018562130850258706657632965791777219207100187076953615649290571397293604772544939913856547118528474864906117400945733865156651470602975809776658195905110186945637664129859840515754684964710628227867518766508850824921459497663035950607215114824458628955847990761080321702574511720065037447101032212528501377250227392899415468898302709831817374546241016247601853746551515293757985723952716685645562162214524688789731734970733533041768543123910077945131248418082361971800592373841701640191721370630038426555640057086224631782803121567585900764372975819160805119700467500141468011184633789517989235595234386567382080726446329395595453557918958024026904520709144550332158713783026670310607730844448599795286417737544982479445353564756023301735954347288054409597271630096706796655160467611380252158776752891378421924992394675239614604100647715747755739903605961055324246634208455380161372723949138811088962479028492842038487670238382538119743200179277925192224136294102891253674355820145086149210682639746213105327507760517324598864304400343114553186805656562891869834530834066203727063911696687872034298739934271649860454502515770709754214454266657767964317669365535663607738491269333519423507271988649702958993714094068183335804853641932376793631009297745742149952333148989760583807749648064680245479287203810321202522217593751582075752624791485522873728822510425535590363573006460009663675762597968071260368441940463159631130499027815639701505597032545467125530148886084907449686144083690591751719272018584309907906808475935916587283111145659534765086871907337397388457218138577690895049480320086183126352352810809486451218399486940973208474627023206301605012072710797757108765956103985507430134804747361820610663612613399216822252501267684479022310653421191818407464934716687354262887763087568057141943498757091198109065558266867741166544549185909784899182217029787794626070994698197183648569789058852912119582905688638735555253716644560061889226188787831935794161889709424198895343087658074308468591714639247754696899600594195471632792423895941750398096671834497899705221341516581417510648544837375949808337544730392984864139919718996003751457713564280898902236454855672278986015524242465535410465680160785514265139949481028531607132299333962089933785138395144183384763892802066743476078867227495635669179324052885241603863153010671691518949720284775443092499558139557899992090983778085635531978521373272918458958477318058621685839314846820256002136565154601325469148723127807897444669398053501471866882105300024116586347577159139647688871071405444273365300123853596902877909554650863394844361925172338089206462318093666921501435478433237888560962916770873107721602309793101757194010615384229373890307430474275678071373363326324770010737402673198978776794220699052897253647042589715120027632287828834033995066788650110741069927837406551229500107717189554741436744570147107730757620267237559018239336558858522776227750499882404969334087517179702102227034320917991971257196227187837710755193361609020342934773761076570472826813758182955463906499444604200732032847844210849657248461594797585187120278921026817697096409834160920921927731482988965550840145840303997807991710677068480849210291214907345722104946555931873506343375814536335268656024281992683668606574031490174635944702759886346625370132357557138926494325567582432431545330724084519649988129567032173110472259212272531340083614201359855721167966853878771118643781665722906060122894034885676403206375165535523691073575250017971715694551546076071022469049997015828230651224040227230595612266976797390293662024580830218340068513519592714546942333640818458982492786592003505331773696846021570491976327578166667571171727023923396682405497756640427980310680830451935788078472503585334372258480021025110168387083362392670134870112073538130240684226004403390398111470806608173453027820113779012036321415866275802407250396874469347874793233817272849356856032123140868193184030084959033397905633101247268641313048710892939221744029822303190566079870916083761136126138605243371297879583535301153932426012998689179968805765626702753807509221549006208662394987773978505885201512743273059417195708809326191538473626689238054929963818179576423593198568034037847099631344684540332224221785244099204097371091023650283048769223131584814080527038195754689536411282697548862605581758631625180822140571795674849058551706021988023863462479853245477575651826446127396394329793662826446088898130049416906745854233733843473920069630468865843406152860373673453709426607320061023787708880757976015418416672624423657450822523605685288097204493608993084558676174406256425786775276066584177469056376742659438831469207569498220434028067001868830464726477042941518994854883696609866406985553957901417369515019220721430147071143339604138601514386749399205878397794255825991874250635715078666028720640753348203487860320592089844887275326114703399275165520897812182975387158609599652983173573768713572875547068871899637688346716828729685900484042361341161177930676286180088883099790294178755645664542272833044573289369243857107487021537835607704050916077425277059686789781227918898215817292493531922975059376635914963747137107125355031422812696261623472854719417158861806429623702257864893881796756205362746234035269723490433648005163304155035918015710504091168784232212599837729091840668419503944407171526425024042925218183614830263916288511727143313191313700361171176069820029572944088159836398254965293275565849873302567519924812791281806437131933968974894462685427474562856055677413290907420633637084695057237109941692657422739665425601618141743943934164431159564578870028667948209938729512163458651033532446530109399449018394478418827337279644126956353362074127697222802172923464023217958629718926900094300290632142574961709392510082393062494260088106007921081751415079527242474992788676918577243934268863025527715544282120668588316574205156938235499291996159700290832841209601606688713609322052158109435545390845657807385206672293252349079184499637555400370491192124334574684542101910392141837301866443680453470291080359751136385002351557001567095057613027246754503851186322930375286111951738329445341385445769022776680780222457147358771264584289476714924575580485589932449370043485514829770365424803006030348950114788556443356453149129413735859141825809600101279861508261973803703906903757582893642577580973892055124097872060435392492382111925532041770656215475270275588847464987988743239137563858948711761986153443130033123571943857267701510568491370815148765939417233179003773944528575446181325837366372710472344162824520527062433103830785688976638074351131223021474381674054596722426869877077900417736816235368381041677010632863072730905512978339995812758961979710285007049542662782488162389914809106348111220113692492379168533068240742658838587845563131234920089527246671105321323536603376899624199737390999172926073576256616400348913910903508763188209228483643903466688265178683912997550703976101454885578592352674806569015562157494196128181429818261653999928086458846960418902153317224769563232911459679447551976721172710612511340820429448551876185343373657777968198372126236781376850419340121277054358600326166582954546321775065175398413172976723419228488043796074128156496709078677274291820494482576530336357025829232580067977406510772986025928642735649844676303618586098688622128375866674808737148043286106113128072781441342056560995057054304581635298112899770859219308652971765037093765145485118947925486166732397756521502304840905763856744254787291496602040304379608276451140244371087851631011768315819951517435161144854312552225450805711339117545822202003429402930398975697805235176679953079219490093703743878386088775471111202276672655228564563807607914789831092856968208045401983949876800048774793771196734560357725209999133543968605476001340157191766638920461149242648472005064354571297794727800432364667567875641215847957030056699582151697137425677438956909707903786913268229612251106852776014482353783712476672692251202373830289415447447147593738215439507634999244280807740260894412344774153720094397833623246142131696974720864296998664896857990036889169636925139449739358049788866841499163355328208436151291169418205794249838757515677668735356219590853812118493803242665349861834235957163969795844709261849425446121359456240592682162578781958673919591617740548794078529179366937605433430897767625044349249625286634340955051647788900927208282405745852059968275139822910276360021239669239139496976875743530690773795624857221490111483786549901032943657685604441274031873452809317314692385995165527971430545497405683447005716728795777686685689031423962955682168962076056453140855360641936822879052744155134065622970084682500192776209832605556566508776345716898569158285366206788087691883873441978862286177963497354699208522097443614233757257346368975784841317965785940866589184041914918512697360710611708411485063912687863768643065595866406014112727165531853250153967429609090161472167017788456900005352399727030253875019172577158143004738267225707059576121372791690986850480110046465055748949116493850774937557965807116015661371111509435461465980386729703512314316743236108136937737301630244365135886826749147866860234145505323969626858631298900755082972608981814889801488101189789534874570024904596241739271806045881283715845122972601509505325227598996961298164283930274043447024259830814530143295067951484368466444166065308757876815246276691489781208444473501533667671021247996244086640560354373757603771232645464234956187107279176957519243428542290244401941318885254358178315061588583310198580661155233515664345828363584921571074730152251342744857881702166263672553618552820798805844186935852969136167968649040358055567004476232182890497365838311068294628978298061548843021851405853408659470461593940661071595422599465288723726012437031150309795804914910754753820973988052455289786041196169121270009605869109233813624406046975658490108414106605487831829412585938537579441226483159971862765297860931104420378411925077058151811944386738517622866577800735460465886331295342900468345883655665309138471619856327434714918562849839185076667006456699123300602474663293415640556565373094783959780650583729200670416769000944335253040089339580730796952655148383299437545282768186795081423216313445080996174274040626253381771288722036262694502413916492370130085666497896471193618302877444783799195889794343351183340168123492406423655517069482577149639880164279425871959041916066117150621498382900695536969293957381403751165377287477342586190630487025938397281971063637525791675619778621978904834101551442775939242842397978147911249060871329287581005438175074801777845448911376858374726549958587960182472919827151048532081655232507890171050997762641254539006491434479262078200418583262166895122428367004657933996520724481100888693669128771881853162681715640676693000476796410441788427576832159995726645024970926074819046887961409714976466484359605789911095706998656848030606875513428282896174649269072199306077943987072432522786017348199381542121596562792742443925726859443338108708154858289826125042308563343081880807904068956468676891989871938431442226493140501079942430839953722144808884643487444589013536377018878186271204599657400634678003473443476041520228893754650566958758075004719050619848061578177789481934974186782266906344853560608588995186164937289187422587459570969003373521771608369753265222106777390036971115069991237423548984801794176753572018398553470337601439061711068052810661583442097529407947046550327501474016673390663473306048689010317908159619557915130523791073287407417550714949402768605332515516744355661273107540342336870736441515575874764971315202047639495495350918471258087938101615293415610056253486534234687620978316278401902748838027102474430102370331735607600561089212039535762268589302305264571309558063883390836410501043713457080121476340259454045212291627274897636254825861667433561252554786746275919185399152400736081429488517854782200395461657142836792656504948448530082539597566396869921428154092333310528580757481196340586181409037991030363940163522768137813643182651210748918371545468689873515152404758208650835831364669427291970028243919630720820652182882418672560070004908068329861678233003379598319586468555356491124181454510106793516984319061602018679075857251680273485223714481376117837670346610877739504248481007579165411322095102828650615147094255717362559404784264245405582816800958383814986722297563780303647775914663724645002948773448986397186157135743544760445533461307814417090527643310977695352271106779798220781334726261449438619251004202124618658676598189758352052917635147450351786110070158883466908708480980853160702629739878723655836353389503254581363793780974802492512843554883135615195713690256256275214714549033758745931868998935459902466558513311857249374214853305634742379317012334529901417902916001357314436702901318170316548018559157071902671232894701729571710184994846255595350196881547300762109324268705892622124345826077854917886110338773049816356078524119532185332979544751544299814119047796134288950683251642375817807981586852114109118634184813078747926193620571469736766602416007442712709868025713084132172525706286835450359776809412017917877022077475097301204961450780638603660419840736239988264096138959170767003845816261638213339242161660834356521696955355316860253458476711228063588113891588723467418445558744536518623649181643262373790190460620968373933771894524934978301563559391490726662333907336096942021130223380253519292109300391835452684060892579521191324882275038859219077542044810354903621855308532000664487132087671315681272104565298402814681747746765104341109106518028712572502570205891535300942077573103442000278089066254609179564310618898493283588874054835663177136197813788006280745267582830433069900464814733026083578992058686377721533474588936789923204390793086663503255710407972009595168762258172274257307246265310505006058572248006149692606193453902978596663660725973476717122812020387887484619515503448554724975081545676851193305494519186719882621429805085786009476507708158317861473393466640310332032035003892715187240075931421098217114854087891129156605770226448011379400073704249719814624038414655135006255846589845472952288270783739233575969102550462004499654616247607733432822808407574369896700544648143294172724831011406618805453228115321253624859494869249888163708382773693260703687633234561691744773117335322693786269060687797097790213786842156615032399216861761653729316829246882774989569875937811599930237841572811677130632209795219876071760725025576085005729105801213849857811091838276823003566492593548798722055732343901126878997513609505905691069987823648117409478009154903541183568409500194656301108095144531878896488414205261505615428366675265182835897294227337927048764933218413538095521006906202828537144023710851077782250310759262559893867748927485040809804708040682802030445441571974637922451109445848451872934240952608610371910930496935586123370100988395577147771618306210634194316436554933643202768135663581304973709437926237497354888239906646137451980504688270423269595301917609024296221915182632943379156425844957740950253505369806251107789407376557043677861052253996432920288074129898990513688368778020962932031117245877363832059231568726271985821134856065037256419603022933885393781208839184500418156875118927057748214523171543282038173582523161045233896080501281527647194041809319284485129459765175712293247101581779591432824556529679799992082814805924447211374989732668025175561311542251465571316639749711137773576114879550882190571900205434216806704240547705523946419119710287397500244668645666954452003730972659227524090795627913316879306092436207341036554417189095463455240920669481000990260624954160061639139466981609055317724427019796089052270546328759867245498980272562542507960390226864479508049557319906345970030654482908535361013465334232260461823575395761641886838959918690427645161909012288657136295890462257006817968101478315131755875410213647978191856671411322995138569943727398225895603363769994985981423498628943299997939785775089780684314314326515217102040877970660352292507773306944200344220673138022591825799612329736045107637127405685413570420533295170001925955671157923815313158335516534683500958577049242171274977547574971390826225885927933578772724143186254845351350533341283921037654589116499497841644925888931697708358966119030022456101472107801615832036986851753571700204346691293845023647419551469002720212771960156125137553383897588000600719865887430119371214080282951939993812844060949527238385660837751364599648574466100225899166160635097014597459454304010057680734349303705886936572250102884962313024376577304516445165000049766678144965558974973612922263492417076387854500281159789223482846687284838045261901611595550175499333935710330884258316551692048976513889939904272051717073979789345822353817919764077551259897588178461839157285287923403808619314417603856778009451136769696934391198411160527802770359257457812331203825483275575445820163182795854174012594512833136644860253666206382436346153030229334613427956139415850480175672896129929988923075131743228722449093211956122285562959342253584843195287121797954199381130108956170088019493605519230261374041699322630691863457653292538025792155818380631603305920619140077640503038002525219807421373206091384164888712281617368916511885484915326060188856611438865006040939129952778326257352228165997830851667315623853268046921985050457249182869411702541236182510665472612163855701658912267139600995529652672418012376445579070749789864044505202592231365875024952185561070630514914407555792186151782144764917715323288115995329178528245316131990749152920571567215958766927165481705485114097011347311109875103301077534159728402503793240633532299442301660092559705805880412055550265830218664232584489390023801374085212976003109054642546276061271123787496964431878333098821074359195153284133581794658832470828570711648939676989427675883069760180396652736965467168864660248247360755354426592592140145567828797343001367738581236306095292649442500237337062951767422731644701489751935382686512230566458914247027733326106784533924640395877707375988538800262467147109646260826307972088768411369413088163965000399744892220233551248847253402279319838617023231510830255847478980003162137375440922997260101591543675607985804732466885175859495309793123810504902790199682586454810122182621543812992191641798296444130196686525349650303171407714532232918740171036683167727760660488758963497673749353780003002410832129053985111591657146193715753952913690724727942261547673093153684008551864465416099428484561047696551629820300482456082984279965229515639678106501832505731302955167544374186491766365373970568451794891282491073938881646932513451650464587054303604669270860538247297085223570447371799760570789881961006134471441562332246322302488420872375097565153150559460165857666505161583152575893929730443437635558673293725035992161408624701461234164915888705310925946580349253686012532466282391984394526441768497717371817348248584703076424490225523330197050346635285958291161707682557732449437218633895150780272083629073583154037780450161676754659711576337084591360472291726085665099733231407203196976624721333995659208680178385337171059179061325382003733311397204669441914207410542292106973356310036355118293226181383918116316412791712988987557741542293674300696326496744318465280767760387180092124242318040800138150736028028139337970645204851761269102598135323051004005828879850582358216442123895135316793580267337375453937742402707115296660664004913308172678107246922850429678705622271602726953746024716835590223380148889998807500743619426603387705029665351816223981996156926374299301897860217487821269619161394237486771040491721024719475476348944155039345734790937559386924447910589488975313948201329065529852513293487356434812914998305090894672982429699841697620057020759484844684712060620527441185273042429362632904479429119447551356626018574350848876932216398098484978769160440092239119551010080331326539598185562292253207365111216618086817946027737859063972411142764185848954971306173104299880030350800875023500537060239002958390737000317581273263622484115294678341235050582202111783092089769598132538386633820428097039592657481463017498164040274592388317042505159389761537354381884604684008620973771127260180607705455583660739029493605023937695046953772453899510959723097634609864573591922279225584111290328331904745298159251837193265901872570612993527180325355267422368265556783341702435863066942377578268973934441660484425440629397776410103562798019761533345445368138376988140361765038882203747644072125494996530569611697049302271676825423198036121908063031994247888342535807695841728891038104816490601584864544663564156823340866334851691027515354420335933436927767635943251737258481119872312209586393975139210187056734421861051990776630786044450349449344414826114165183228144310018588112020145228080059497430770052373305072831696826149162923277068367830323578099852860295808678691629618847370763072325490999846822381017057554164899014103696173999054092424508751939789696597085303150831509352169078857357213621510062053547900092240388601432195423645902201314008297102339300915370833225870840106571242505948417419120746429463780487023723611981921697940973185262245601423395680151523907048755916389241136810961221690851596228589495476693739486558357480067096666859684794254216669728699747374218296130338050606127057941580516169862765944423839509566514278021651376619586605179193473034256418807385854798900546137070899222723222541103202171248172527155578042385894468441970311328903189187383774225713745212881370213183910531712073342675236965246963475224483471163837067627425531846425978039073298176479978846385769942846216625692453017574158391249720624259616001818061201264033431135492096360911053178543614492840387895557961562451523226788508970871101951961769422032490192981499159288101513718068520314939305435517104195797440669242626217807868662563966439403842277492980062570483721282867430197390593664684346125671609813696331333635516669368062267573613148888979879148546767885842371957887586647172064268595419417316886958043327563399221373713848297471123106397040849130004696620193095753724023870469370220158034514197835230618564072972993359776750659961399022500752297817009957440986571744845171816265364318886794808303429633000175564941697694397348086953209624009597561972908124952131617151075429148182289717266196407290712477988799354140184433928371294502565105160691555063413071691282080071899277350085180344189300749445688948485916799180120585483148066238869925327796614289701484614075986447817138317765735773984504527379429274930939949775819053783709871559081495100564017819863262841463969987070778206565224565057224753491656084974725633685246880423814876579761592240725192532421456167146359022463429543061864952027792095243094571108304401214725705559471944727466410809034918482588388242856581450422866396439704109245302782649023115110082026345104788518720573719729705583076062191305243949609921090760474396788120899903064167563066454679351656879741970650763708423891919972795776805258101324305053426258723990489051005809044927501987396070273455450139037172813371681773819789638535010761631616793525418581127837279106627897022709680625709407617047714738948348425125709787197130610946665007536803044459145071629359364430974455690586668483185220037849983660481570253237130122690605908517284422133024057496162120021129400038423089535669673433969071968919193578278308484077029160486998066388974828452571910220784929913341891284071179934006662414875846472443393523397119814053731521021299834536046105225655005570656876275754596485552007543100141422495666264044067571578251739661807103675973062743405536165016345194594306302804447526713346923057978880242961208350848729879818038307592501906576772997826920339272403803835942227053452211083240830918380848294076696762646905118454690812801026220575077103891592574713882209821538468452215086599459978424048450491738620915795676178968099996366691608350779109424034297781105335441705717846733143210580383732924307879912784703021725824353200251029163067645322221890797520055321805022355069270708604554371892823956430415533975041854579623825479000573097699394370291735495847776467742185653170438945343991338600461305180275984322818998353046851679076523681336449969396734762598040537099683081028226572189530690525745147010405748277718693928399408250785423306148907457462775911626906624943217946819205532842878378274740878141090527588016096345586787482648619286439533792292000001695253838763375206732637801711666452808285178644731278541361971753350914335919856733539895393238501838330073175051240109201403411367036287926888166270053954406574942303973624890579505705937462036358176666881611308001594109628706271326705486984075052473208716893943316752131002133082139038073675127420390829195301968183077612505016909919440908769283447560188620805041200825878832346576686482750998851410786897786895980658188733713655180397639486220598952156352317946348154428223119531892679649311569707671621588430126140945518552313753404510339561128249516432943039923138961182128920708217640329711477452904017876247334995167035834742177331171181635293854882293364920510051028254045584358436907571484158192950399037905162736104602315631879068726032480613330625766477974808431423252591832271503183319914291415380986828872970048881595285008669041440646823574961669240550062551764277185723162538774034783912071065355534963763060165086959817149972318820652046933522856245276997805148416106703173371146491991361270249307384439060949838636569105294142285152506024847988845674341246941865328966100038646214634639240315936719350772580654158058364941521528207900887195727706193918652073590758823180248248637027451573071384074039455750569599298790630724210463788671301527274772080087676802983490772529776830444234012317434197568018367967411945868788696037616989410435313139726601908596113559454548395427261029994641229559333929214401865808614369020918039360090958977552834903448497416368576106633411538081422092243433027248632911154719209762569893555316593733339023559831488668334987056834304944992187679915807440622581395768738215405768715826528886751060274849256948598085330715046960716421001570276460852050920847292625852619600496074708581722968970046267199954271867663787905473797895403109130623654641618001215568058231917997239884837861566787588691122654417342721624585684726074682978929457057936572838594999545821888765374208440813755869323961303841306060272505782730234847657188217794364725880055175356898568512952337225135517730950602528244961727418372610092685807750990792907357721292039742494616267587786915592400498790892446077191567466969328654386584175344842764047343766876684288218745826343132977784067875454987420460903544702685050032953222164975328681919223668864448086151005077640086740130618431610906503679043871950182918257457133608074274497295014863754526755507465921078595492622654758692811135924953297993720338698035591772881361116917359869585053192217399089536739791082888695310503454569513720500171015538104227974072338953881646931373624813118052532489474940230167131507318620704655028631389824305700265986164612149843407902963847342738935578619353450736486439324312498251120727284890573202505278011385016486127772626122774991471164544479574291171239225177340883869594305768347663266633116242346457696094255106350409016587423545059600656562648740325501849508513605547229365285165658072208380257501404009142835796314524472657141864279885496597841371807636495346812399898585485308307393125003961728781765087583432700644149845672621224971660072292562955732996771999018622341456658934280158969723092955600829168564286282986972349630094043477970252513478598825362612002755419474937838807526138838004871104433287031193528084975626076334524486547880713560326004624229366141270682423440042937262112301476056692591398453075802783572234308046509771145825237032259687391776408660595595625824013491370619984378003204782686791490493666112169368457848571871574593551073600446127444205321565258558688018067980888768275319562834449034144345016222107981722842882678901275990183261201143891324614845764478061145644425548810091082645830093951044371268954286291435844978126181946970113657469677290155655641723339044090158978547727650882900763887186669979568166848132684948549765398214651637192926724411769760895929476768841989947027331637107712282992070117114400930931300870481592695863197282030493762188386502930316014247617077066252034688320909693628730028206424905500361931306685829196790967637486514496677091789340383641031921998067145909916020875435415124886059628776065859965537336278656457097690835099220240638035356057969726939326291857661314227402583221351364280477373605291619317971028976918818438618150188397908022761904863083339243188390710845658691341453737859868893761888236700678319176404680927384068465496838228714226061346819957140668062767004162608116131838942410214395152930846981097097557676912952309946558194477933082702620250568606001603564079290964330435475534838912336646384893790377478247750882882004826516699513110945708147191749417592645964216310988768232857537230287620431851903188562303001802568786120211851312004928532735293689407454475077712053142488244782184118604125563171913333296441560347866727983945662291883208706050236220893069066937397050944909420560320583494583910402180609150734985063202727756120162921327545291326174884428312815674744622638109149954493051272727603776746680447976183679959970455263404969344462564241022988581719544523875627918566581111498040680564405732993566660470321513939822634848192999444574002910259017053661846936131988264278929626740344348867011740767138239848965559464201452450206219089988418347502463096804077805167556605418485345956094322705743715021543436423093297758634843252215713859617875260749837253616336421018543802977085976574429217203557243463867507412607314117370105071237360847404440758328451308282421166335530913083672336602583141606625243045910022530859187974978563222805356375616552644527972697224873953647235884814143881729128170178683290253266915465438999049431542137897396342357816026528817766380057581003994245239696035574575531548074915195692588894085788429602016634402205453521059316195914615139640916747992342843015301375476583195587697491673127297501123945839983648553145075010905640363109146669731600367896892430574818788637948248987842458965067419653743365679397403931002084370467830361292301472680277893176788599552417090946502996830124380987282948532772543449453636249417743975350634604185713241414805738131233831571633743915544684935462594695349059595268184986391908614361338933305206598973381705921037210759605983157508702549092618554468910154322368530764751669487773836564898968153400599848236168978281267899688710723993915268745881817303770241857352765135515944290861649387789384848354342966491891327723731113058579797971444220347421535432697679945669439738216214352248654108522908636228989846691765860544574182994532968657229591099025313110912271630695072706569372017244439042810890884006608935814512204613882336901594530154906337439383656615795903555256987845203365579294515078495471561190263325790717812490390214347651300292624137411308348136167172100298360548521394341105613246355486261180865842825833996417253606613919436957141858402587525401465442990975956028788059943208044823040053584356495342807928942268128268739151980213457643114948924298091911121489845409247977250793604888814646399210431202016567165263831185958402854942495714114664883491622578120742839094101054986245549398092444865022453350639132584766736274262193197619199673717587423876534801903821129485430589474443629417111064218374745518992910242811157386667174061755219925953288160039867432232205854231171611165747625301616350642408723208587125809971777527651279278666802957679346883097047884577405394456724759534669904076308396631785977274589950342121118570507010520654842734073248036242330702963463181105873361984222293939077962488244145774792781599150470473979627343258093088481852116194960659818295724144842244347507410658461337210585723540206081823415970745350403399172848571602990773216799475191735869468590633697145694595876154234195772240822991524536024031572249395239959493851097594443000274509135289747332321118319900464679077936453144721451280193323113144809766061048544660201734798822448728473858682130899193197551435387567480256274280454540812263021182918298323710289378216223438658305095961106174921971871861512860369644545611951805619034899714884549666302737187696549094331351062254756655435992248581035496363231229786984406147588322599565786475186009477246876682344479176904066502368045556542120227960855584846810365854290394383121064628170461712409792112684815527668521179586782229913314184598239778710098743106035131623584157621334807406557209625492891120813959469733660949006363275110238880101997303368657157674537280108007432673421208458273471855861061194980799899939158775077712058948338091249573145925921676670170299535716987473186649055826234192075067048204767090922897319642986986732259878156942287980113051463359729845123578132782723179825202478491210007530062749974380191944520179877619312959732038886727661431824467530913873740855184730580260606750313479491528740908126448677269277632223741794552574044916601274571425521243229114270827264775765315984177223311957352248608565257209760045128211009684501331156906430551103458422683676907917238233218942481000403501855313093093930174001724657126287305689454536773718315058244035669548420576001410078640131475970839779195718145241373583287697447793607722211622935838517668529275844400690990823721261059096834047745480520086732296598594464278499378239195333452962298519974870315488217268232121753830874811712244546270877384204332682616021203356105651799891008467467391236758402362217342840640064941187672405734602795078965303988773392193175781200191974937469052069658252453193423353010328799323413800767549672096190611024537235271043416486771666014569624723815198476969103833884100328812622340545646698466267438751360008203683487017838416210664595161825332446107082140854251049772028946365816625450594479983010850568083219412103676032095105472737936662085556847997140131531722312071427696819523827648473084269785099041420144248590532009895897266877255740408012930994257994970879306774616195076763795766819108512683641409385565354470650865492456813799638041521587822206986581452710187360049508920776289032089600589521025962080549559057816120236723590001594933732259422215400441531106974873993305259756485165246411378298603709092694877316170603149918946541137535712934751500904706242105185944008889042863013642127700864290117466827997421351671703602002286308604061365817675674518514759365826885713758461238313921420379461683090828032605266186640242468507748283921446069860114618958414425088614951578683451513076548343856941875275318168307362036307083580293933087501865141378783578922955356050353851950812593243556146553224695735087815687678845182627000704138154822392044777042553070021659462849606556227127645540970281807669492118727993152482483397580661221242749565794577479657991119889643489115281838426064165036078814781733676677069727487040556433891540228055206438730809563737067395991317223201376940626728469723062230241349403160007693383484463301634630828561734420836777290725464006005773180304262205928774364751087026949258294314299885897418067326666745232575423252718669128272143646965990368597345429915996642391043477274858837615328155076251713571056800006533825593742361708912207150449403754344482492244098945054468508206977742735288770921211576863328715345775991135481013207886394043495664921684279209781363821041841215339811283515128871840861625274227141640132956224129537745595321773461262953190163501694911655923710099278546459406287091954448737350133304822363749127572929474561525444064789857719854595038516730322634554298837211095606153005986376329900058871158311709611318541626111178845632173720515949153096345983348819915379117590482705763581874956906581120526140792646150783605566158215217659746522534162875564791263596410329581182059868089291593578705580287330729881118245910739138396813771657249631626014669062501892076769233546777500165852296235259354047631552769415476612707468064540483301435399765334986380472902017418150145675697998415828244192984330849758584678658411959767654335956978184253540925412622339747843111101525847550206174771336369060362989237287503865415418979863926243828807304932501065054077950988061440900909249037413962048073089618218997094353703507359700862819885961071177948156391872152109752476784224725187277187339499846041147287144205223574188701698882903625227786077598190081128741256417744258294866504619587986805063937782530302890351759090758994295672445894561660478052195077187100574595353717523845576335408018368811612342437878402238662757042530091586353598997895788579705739337033214185495307298580811485222886763625614682690816850784910346862013845132266248776018599231583219250395962226365828498237924013770781504255976652688691683611894756533776373692223658669671922486328993719257733579154846013059997043869023945120221968802165339942889401736292837006682972475668659215288653728805984876172160527568917389906638019947578112643326491164578276588423076732474422084727341861871599071288581669737729697341173385167654022554464463130605388522049734913305348316349418055814855609822744834782338276430613133505407189939138418734195058097207916443986826846729256265037083726943551154289841268245596380772533987027995822443604558153321999851214438571344904539870290561222963430178184280693851539862605287015499421827778426196299647376849953059773333576137024957509201308636710046921367996914063355955247075673663348257050565606254577083556798181328100271380589614731231077902557327013373474821606316434357960498142317845569997807992537039557390936542839636724962260571369939484675360069144855585823718659030538375069969812015321270840578082613704088804174986745498390723411345161187608409444033518125220240883691522846521116034746065045367839447963076224412813864865010737400483904072358931650161914061020995260748291216904971274898314148476181145598060584809870265020635171242991329278617177494561312405393374048711803158994203360560138280761196208537692319963941447106105228134627241170123447172828027972744799906343315935438596950754073728920887095170061544414005858991123500608134603182533777915695056921617449422514560255610166874367431594779717726561426570340283301174370862612839536761009688586738167972294304135701525843276290531617002700677479782926703813494272794526835825927935166720951977769698684514977622172907048345428023981527460850293681438773259732083778466790596674694992735807766599683975240794836854444134988882059120318055367126835615009558161840030899061562967873201840057291420364629324499793372035814197187688303124376974300628391263652020920722525919162548684227888485514106524535666138852130876220091198050519126025937224236161662740116596542131040872868998354409918729043329807067930845241475946849840850850129515533221358596501038424572428374603917395152022844328074298561818729402918643629000104464827129311580986446357367947002896069203311915156189317181429040706411616135248401080397286564621464548307308512163485877884081718347883706703332564682706765157700973576486308051978322827738185745560743352224618622706013469012298152171999589309120148842188206744923242166456060802525421203312269231553914865260541581761085177369080253718386617870358408430564135599886884422209325072623321202417046336570405477262616255074209759585112006140262157707587371682663429727231639673702010836825539382353388847275435265309675567746679670617847507301823948544945602994579436204891976253697679927127622678492725269526474793580777206483370574236850849411027570343560060082571586079095284830310192251111413201907829890870527000675009922195773063289694392695331406821006401168726054830677170119669014384755920598402527790743067960661901303649373535975192971555868443674930561007642286998715712961181144336918001350048183512762305811192926691038379667622612053831464265855473818196631123890669992052051385810198725417392073631521114832128268621878098335335180775093971787460730393896886140176719149729400838392223001837955597408119706346352915632468155392640732236363316360278293218508075795020485101723417528879870330155937535733634016174125144840719841757464476649334253932228547042558155133708478629743042930060368593608700431762659391047262263033290301546561646175451156139579161813030986209363520980825328193365950858647562916803518467580672800310594529375552327223664357879024421971755719549083787217981766842773338640321270954343551573188266113410318239526395365514492741806537218203033192084139536706225074529204385655260514058409946442665115646239721971042130874822547622990055772385999738754402872022629473401457595898658293067970590427020104671445912476725715214961783007325177374959342667098202967776941730493154002712025009380564571616938128235963431921874700047324335058496996969543878978004614839057114737561132537010332414205512006895344406913223378169335548494741276378409095029718297178401628570447210239469620432702538587855280021309962150780491069965797851356945074504822068479792306821317870309075824185637755468945064730590536000007135310947490860480978162145774939274036257098378566878505970214991269840923578711579047036160902196990752624067152143753952929362193873010711269956679901279760199561776092774781642650379838960581930185131164750452059398151925037025585239962984697933264186250996617182670135809108008231964607954822783564931450248310131691096876605079797393982230181897824893437727263338630020216950890527444643921777048197706760178160202819494527998245402463704807881565072071776592906750031664923523404489381156216268153330001667984286732654341915047438172118021097381101933558158802754716919876003117540405605548128686533460235762272101997192529071966512452909912568152963698072867219578066007653645008744154971879590762216390264346734059391010938063858979646855531667540411701855399216733551371244545717409707367446558499746121032037694747883012280943368101339230942907727065182062037930432554093858827247823174839206122897933217955587828465463956491052266001914893541903660088694832809058039414553278655114016475895715401070744568125164951051981588504754804672176337240070997271950156811554165614752009578687656661929709836205101442481577465644871902004445357777996677248393890758588067292679266362870685561125574351183942855554645408640513979012981638316165312638146220168834518743310338153795428738073045313592803156026834748477336535685376365884213122565175895568815799162388839014769234681455219383080100416789729389916372435811923387996144839799858865204597348522279051056842006548054555641796230742931936563418247015861174184802572622221608560579106398905455239778775871903713787188388149097341512709627006358843197702470819255675491026873111801348912935230261861319164835601210665235111584675933518071208829578723384139317758450341565017491064733599243959878340648343863718664615184070846903535675237435354455184402656759329754899008683837865314617583856283264843444961965690394418237474159495836168099336377504926275676936973552037412803650973057591584734229306032561045490526619759348680129209771035133033360544969701481410717290980093698961134607222829289732136272752541198631995169344294960812745006178955022853304260273145665674715449015079064745121588853965666608783891164933153944517832589942279578375107105534681658040424001930199718820767694581965638813805491687642739684793010959658427477594120888224075462988569389344693100037459243997214305711819993957162345040327120489312095343481443783746977140413100331268772785350324508743236705837442738853836649214091909314078514739377124835062912163961686744995830018179880190104432881201555981301912139926451519634061816942521618110466278945776134493117366011155429504805320220286446863526930353054204289384130827097557517824415991089020308078095256670362469829495126296458621601808338770302374626987810313263076181963936478438365561752826931410983793233940051829106374306253171655635936720550848501559104756861022038572579329069351010978503315867834462742731284856922154395859943224705975443734175730485684441507100607570595779641087715781627036923557587175686231068097880122640566093653365908355722159829725287225657147023518545466391906822080792519693915038924385314577418427971365837359437200941313513899119381115203558433667889836523294675970612497628517104890577274610151559793392325260433871943480075203240108991632118331204969157701151733502325414386972745112455738107543862871446646662821391388996961655611792139597971261549584879831112918994407072591376285133128250874318899232975030848205676189532118254190967184712184681156919152873913562149172426280617600894741373353519085130999426425733600425595860938913696540274047213758437512861932307252886987729106326795148090279909183221358092432578509831606139049634585432060274854856300566740594686701938314023367727367341463078471463155470912873124380703588466704340637272967853210389075807140010206060419623770520827504497648279032411731426144996732498563893474420192159700584440530876195432273676686176917347141916587385172688658061421951610479649721536821644347595387520625940474709579975813129101265931932163230376629668722782678413593019347176206042210302342367624108347750928205940075033256998139283299336465636131923592114100781130158910467193979774744270088576047941501248707120475252690159106484740582784781374750392052320609537032173484240618119132509661938599148449610722016001574938303135787849957828661043039593251747082871222531159220945921291450638795821600060197105677860545797087002013733938408517636757278186775267378498468402167215601107723872951219457435614620928884225243965052857025162929674443232137238942204129158816848745522147613300124323897383091850172047787226513074660854351045496046184271903823736077409812892949774978563888368092848391754827868299486683811759767779213312756341430610135139894305098169832908300972432983401898013428281297354845200942547676293772716169927220494723258053864349750556556257335387658197963047307430282027921704255841494260708316962979373926681724854568023836960151845159583841119059095874873576197979822564300768826005132425985670778509375613798026317174380904915539714178863435803294487254463823103385432616704021027367987358645981343493272989731132217898422697097182827828279361194799899623869257209669170219832494486722204890497668670171768751709590199613609940668758275223098463728251700700013551794587186786625515540762894539507058283151535412676804205743276988080279429193479342242130488843563541620117770282797371840883606893984833678680368627335120050326449819980635161723662654083301872804390903730008565407595477251397118327078018853555262275071484801020581271682709743225914772228003976939212031125544789323998786850663672310692634916711963460721698884476370219383537323629659455611795582369296385969475318450377255820129484989459493786689558850579488407473125826393399037926684361886406907390078230273380368766990982762388573881564438945209457448557223952145911621020685827191646349031948102853936980206405515650904949042749484611226312362720567536052887675641935823686431900806528113694175275185034036245743022276184127918523283598686988312074429727782713845129853404155250638515107593838913003232506432455144487853842497174523549204241643553548042469420976441518849958208393051607527940542977018207137958820487332655614134525290419518896635310477792613359059993440532009600364192794909659668609241914976575600950087427242851077298347123744953807089777673109804244836030339486777768560863228108794744684582735349839035410303673274510891189401035415742657492203103563218717067807612383163800338056399473385959510309659752369989197275314524135982169915421436063380337644846219907371896316606528752438246620722372904021284990313884657184946354461273282827109796571347752447859097519434607742937593193358156294748973442851345221580025206851558311097842563661272890383590162376476196383325761584666491738399507535009930852192979411332351616378300169390563813315528908892367557385027440857268506971875701905274463958283387130347334592000260979612491018506767004300536882876826451413111564319098680274907025586563513790638901696886932832868137802737280846524775038106416394529676871481895221675306364527860112803603434722363942645138717718902554796138004027861791224647429776906144301393333128712993480901300697786615551930913178999691994354260301433450207715031808753389678750476381577058100632004358042745388373949799357009283690500798352902094629377769174479671179469320247307071648923781656648139087763563998308008831984414581538056158292061209074752842892905970906863637732639281040406428472087891913275040141435698583688070390618249480708045097167323667840359519269864819240801633931333963331800371535198352855685224737498046499144491872876785982398598630201459960917726529029188845712553066901677022733349498449210745931856851405340506387081295318002385690728751773860235627340852356186259860494279386043449265171791667092262397628433188790366142136707201188144050346659773656406440722704036067962918065213686617580892722043388795381040546739925839770829105721376727182623061823842075115779666356477100310954786913547544571219807126361711950552590454625626707224943619358784899339098763840353609304599088271524074430617809937876908181724760724679421588310946546874933860921316995532751594326939940631762579619155476232561504919010476069254741167132514990293205621822318767633108407969545314972003867936157502384133067594553096842751040811716505358224839503260035200902583990988969246363179292688820811906552276253287424715980091730756941102727295134197553039817542716259029157005997524297109901072061232754457507906215822004415949753623265805309251893557708092864931583427650022727468370566790376852599445163900267994775741092712781410851005599694656647279381185691843601502187674173817648081920329941518180961283137419789301684205371664650728557339517970140596641985616256797848935174273892449491073138567174332759728141725117354546560675497995494013134989527454150626847168046040041036207135364486463653615177768443818337968406553814668150915849482196141124093673053800212995194247340671035809260236675093492379511554307659061012987259283642914412808794007821655539862862128120758457582727157406511799074324369815111457202160282709341686455540762270011707146535969972257077399909082355437125010716306100271030918635980864999289956783916288571801848635752093257297487994606301723115775559752865505609709460149547306761760114109036347926377555492405960969351379742912180649501686437152616237128535345400200623607498728810361200080260512074122878185644969657599678036716564440689818558564526611567181433801479346494177701662063001148784678786584240373811308987333976111645435381518887352617669974255184458004402643338250139742009836322416961930976362541147974909943682919027057080580955374810179395175924636971373626043432185466143973842167660372007824377501071239872677191281043760950380976372665403194229907443146252293536913093075572962872399300848703281131214928702839790653753561374058059047986502731419054392616288667690249368382812876379451274196757470309626778511046647197258494243095650553596241999484611474627576319696767622430469438858904852443912686811577750712935235417771145780063329891875633225696959528862482385467248640675797528513970625703709867904018137811350180496497646205844492266813070280540183211732646409824462454713612630860994300044841389265496495901032025948972546940562821583380485021573433508854098025192030273408356911212888139219244989430184729459422950536206611457131199695206539182577772723152262652947538672646037118350261149540596234101946312940382583258714195844185427676324711660138348664655747585010599231593885655990274866732538983129989730442970147915012315737514458537629811566595394530462002262621947374906359461412091834788026518959214233109688540268586999631663197395381440532905337888609050510611973563142783173557819328740246510015171146335955147985148155014153671604892074841694327721081451365119829509828685560690947914523944766203972611580246747492689758902383916667186230899513285273049565769694988675555250852811507976099612233315397999061715279416487460754092951238101054098390850946953965394688916942820726022492952001439695607785235890381451620193319386391600548908918809441092766662883688061651340011820899877911154408991067367003071047865460442006124283134959792815966767601006990836349980483881504357888442086848446556207705883328299560426568856266194836626128667373397188097003213223448409294739747235130200361084028216753141016094322815675805137191053898021121590033439723392757513106882018947689039822697396914709775173987144212206791568846170034970898546019399441579040006335234523159626408025736419107456270557998465417668544878593324486578482441036267848890418088335276700080311773368642155208924474806499186077627410661107582099899579997941204000951352740494186854213884420043785525234684993594901151879717180629961938917508707349723176955861887527410345048813512552062271462975278787725331849968183197702412591017774158466231338058150233466254032770634386204970478569076064379061639493278124978140803517764412458000434821072233882136547777517572825332298495181600169284444592932709457691675532438601429854020651203745037354598564308630745411380631847380497304193700930851517356606261653957060394232344081009195337686179352920622312355488984772115008081132927709494537828696821547441411749617381397785893546472144259646768794300716874077548232503658371257641734116929977873376203149332002017284746365253803590020490169347445116876155202320199077589074344876037813076090899311960740079889117148704725757546368328594460132358852013599465945571395652663455015222216898981679378638093728445166457855105762671626407988028242290144776896126352337553350332790180698688397896708213685210757084816802999388499339134722677917693633145022080028679923614072021367038605559257138232126360589209323261921545862235533056193001072320878977900844645837427543084182548022008345878127596910742291781149041046950134763615207075798940513295874769901689050345222643532147022645456801597548117119675009551154886527866052998857015194150293927267411277322673676741048162064844961331572348115173921105028095194174330861708362239017912922512225642538907484100506283259127354473300707128957343612470493717920440764661974290784120628834166097578041933849744794555795461895691352482062747284514872308549987648098729150524263271486405697517011859801128170151749497479896574256646296945816021871137810757724501711115309222912726716447019892322428274750930574148739930753481457775910140589021882648848668512174417924729852342162951677482819391883824760727285764531603866225327301389990724526190298787437306989697173761098327426694699295560558499099224848228731404119849734128052229029693923227637451694367457051143880697544707540307565911354147116701401173500107856437602677221624087239490186487334956672271781186702354239361886720811459868587082715844156804360154844563389803602614058689558507222233362569571436338516689488500731906042441011296832514466608083536884678416479376955705045046683195883623686281429936084513055119630321818951977095176626650983135957157853825163381602544859997749718397724893960386352730247532515287963687671151980874878688597495905612977959287595036610999365032302480954322592846988261395624168298562267142414194818889261441049172158676631150793466605142357905395352412596973130410518533472701199212108221883767652641650844416599337386570982961981436097382342208917156930081310685532331953258413225414690243131432300727906995942741088074963978084816864970553136596009902075590000717169766180529404204241137637256572303315285104674025038292852638920525548899719250688907777118517478700970992473553668074817367481608429777450387953381080227485492819127884499322040258936618883121200780355562057922783443487109586813309203290645735903373657543172325258271621727524125373182345155771901234673684070978351172692130820089459624485516891584728907530144074761548214462468456209601067335189669019231432639190308851772284702879288657606370281267083116329857172915474344303344098057410546981716715729053217143027387355085379475643290978520959206036104675784925396515284979521885648081421048455937793573326896606005822536943560170399952259958623626617957157005475923295199883151141716978068423883660761633012780100388766616948651218318124834501336550871820829443907080788244975820828674396741958420202393306393161899820607636777170073283378352000261549490894166361848422899288106431582124312858450187510444914620534735153737459047363517174007635508189240694589683429661391469786312763067462866085345834558098633667920915400914325641205283120584106915689344574697624099336335424230282420430637172244404875379151479124888961742870661466381339037404562115011624955704175882767210596064755540674800876690802459906873545463271404329801961472432962183601641692348433163398839985720929471316597547335318448219504127585565721576968583225077631569471860053340782801632918262186754059975010322918458766866184808511545916975555561399623552713459917095306476217326310597747838928365003021956678176885788024920310005835707941178445305000802745158586388039938574638660950441238702154993038082542043445888367636518137998498794072695804507993584780357980370492365366737223215193187992689491577426062936503131835622943515598671366222577845497091406124087498662493831969531298751634208421549475985181663096557923319476004954501711954472493518855534854505776020148476732940315289471125972014636175589587435242827867185262974009111742109314804173063375396094665221469873145115680372263770395323100236222072152481241992365228753931772473427155357990010199749380197421074037287494370073467659842617842135045089769474229036440006680761725477352123714279781050668616959620522549728914367692439417681077156505688278751276991926143245238182341901477896159107539444257131354504246352956493454940860179919487045754098266920218778056636716106076210972218633254260412373230193900071028664337243540925937355184729416597978709091129323583320336227203142173426668365721963840265941573046527265115958396698005310789696026922694260723198670017331833418265290838465815067933725713402139218216285909226248298776312025174820980069511898080394800969399036913335862694547214300934021815619057439207790080586058754927600280030518810989708733379086609207597570606069190589084503871490351680420344259814380057787892321518997039102316688603397059850832946056851205770862766262584937230265379957120239714690646266730192623898448578389856707918164463901535278508840573880851489837656661742615139169072105928733996184794937998317679638167624563760749305903202571365801876170217649756957773195374056823733810624696011827139464944396884744104079096660235132229744505798333208309907035760185938779019607612909947963250004691303093665804170316787190923715868943735526217255674640521603391162338695774168347803625197913060830830272485369605907928417591482209004563876395827358256173474039268930507399261081163555959946794642729923985938238908828021278228303164622297915281340501669533831954063875629379481734235162947424482768900495324004861426389125922224606983544985781529454922216812543811451798932729285897848566976224377537801907154211250183564596394274723862980064114301906825077764230757992081348682284565342649163352031157916418494575472524315570341241910177210814389270442877624394442308982416899853360076681381916465523908924423533343542504612546494387459104195205015918745299491191012601606832234801342285307797666533168839525730001817661241701943166468483083262851432637033084739587092840433905462696207746503227537258163129488236929551937240812565620224467945658178321673745120208676642263743558990664612619793460764938646768928033391173750772842508664321186944079131556267318775716303154166474695659161210909584552731494689600467724937818614742722228638732705335673635767572335494746879540058636860355166663415284985307512607510496827314061447497736632683237544501249073425246526836630245790349000948463111786977452670582933104788625100459396087093117842354811718970104526782166631478558311638656032491863182854447131629114512277697864712719365917846584088642613048193560282138431007591914132153021603175170230410723699894763515491711460704214783972694486278388353509071984308127445698306584991705397943659903110410549218679736596405649497735194195755412899574525578073461923771608674828962802425026477563691689234857118389190301389816450065867081179979048339249719948096710534909568433541831966009493791289604850704803580591237552362646187272197849855929091568786687492609528879386518955142184469689355743691931829299767178835138397972945864436030808189585157887481192107957776315416671327595383811569113147851219986783727428835602682506055305862374465224219195603094173089743115397885192876770605056535935758708377244566797413521866401825334381171249512702925620107874936378785849171734724831010618427140549498203158882280955936417864800564552198840522858061125390977094439967213055752228796199408079180189542169638174887618317082663032589897390274858597056292651319859580621855399346491641310729769334841387494183653079392347219133045698553878329423420853882463399811413318891505979855814842353053040534689838964834162955603094564509240992294744426171788243867070587611887969969029904420081215489601086851911643345192280232889055248574944457955907382764188710663656811345486438160647387708764305491943972345082800059101084572437418074147544544487507109881652528051688564454602631786775045476345469433252400149480374720015816919921101426359085430063127725915330423139860353168971093380515539545751737942432919874887458333242056286134586181988606905112941379493047039924379802329409298559128477459375096418103390563875703907683353002757004974842962987736613484141931308385709555443426812777160941795094799774249424797632429632662369253877619380996429871011611763699214156498861689598738140085872276160584427772665495063522569971121643743322189335968509000113211265546123617494666719809440244681460594502188951369474887872249332709293918153883038372136541388637465202376424911630862559350692521372151214686772563295074141685507281239688078346042075452281464971868062752894180479330034328402623486046197244739840788276372970512489300419999876827538603658758819411473501223916362828770935566926097315746392481631411124406196682182436440810795701704794549586925337677781652137455112222941679287841134517083759519981502607822479617949068709020385179351304321032285430156318638806329266628200860357001390001383543603352426293413868476295301275101020626066166866013529342915944020666219864427511012727250808421977155305410540598890587860054585314250741298021902878342114292095399461310271657656778818009777282408958029875691594068267238354177188463573301874055036412079917864850464372990498435711166467233395277612371353496757357033544697696579978204837232275522685565822444900935236343250207340588598573919277434341971703762919897427900192326981423691994434894035217797805416632517061997835428019707463542216659476460237984823791176799054826619979624672001241327365103520783843797669443044108892293904942108764957379652612126242605145183584098532268639259985986843703241161940449492035522558166263048213857459809936254295516882182995147742429462764592684588503256608702346914058751026985290939338620956872770569402825093256039394677816154447630660746955982419872813854652082208357909142283373457397833366837796181342129777124087814288697839010544506983924653349029957138291129942685657019946737253971335911036641607221511199203193910348897931422922397581113836778463616265459990985901774201712525314662743407043507213393716091710230159748598465359210234680753612624445996419413793288936666081100843593650808532346127994330014910760734517102603482418818661871115752710157897114077860224815044888566745872594484175629990065357545306900146581586449205645453629989712508801674994967259912900911436270285556412098400711604891931386980214968123042708401786959446288804111971261286265336791801519852087795196081054458199689160801028872733661699303012444227897821990283312235564411557490868269780512099636799508641082878423625936077688958316404017239241998850784810139104947921176643976066475788251589806144911443529055424296209445269709436479869187116383059878168956856597685028587538600828436558210491022328196179542969540825977696459192888405570795496332408155124832785457347534394676122979713805031956538398546385014252300730555974727819279988964870550252181830634665257771096945195806397542411421234484286010471191435751665599961117799977473409273152829622384764308152376968641516396761964976032167058151476272368084040387429155897283742596486953355198349590895235955996958712679190802385838123466346683958998642884870542075688753644741674486469594946423572148075979699013999959168331948953758366105403597432601283803800000215154138826392637960142392358796591571561894216772042936055815712647759875646557090353862385961674499145099386009052869391385561875016344314146404056856760266826745535431677539049750391564206909356511624005377023035515725370804858710002756078228316517201512785265445959920444712291839926931926887435075033337358890406746224000951474572571076868200346254645410717475303485286945508308395064123893123033858894438166986382885191726347777151494597510742883036352366294444519348370111969395501539780134999550921645741064114251930434552685660807252320283910785311733617413770208296279629716132037372689766236911048293948013916907874014997080967966250783765963265221188859418200538677277493723762467358015023043501031172465463041810724717641953495299341458592299118010561440162387136154259311176548205606658203839384874782737570721066935949960402640540961793249435729095175205154844671336046012814516340399007132121235429149075195925407514577427647196548744425673484024899580340325863674506287451374179842736416950977744767287915151210247683744026823296191971352844597514230303956397160891459142547418764853682375849356681477833285973552871372398204202369131613498339371941276885982556590524278085230956874881483679725974174784727018765027416642703995278710619576666211650376387447110568417877278437172399367660765533605241587652306058438901878473755300826823073708792147586147100034426696521387658404374861187737468092829521267137877769627048355073669771855868697244137624331433032399803227958893673817839136727016524890534933450695665323453473311312058881565670596576239293092872665633056720151918424252402075267987002909495792091394421265916342473101470186799936395032634943835529583677596908126068030017887943682923639974035144128622199986310145840516835926597629371674525627816198617766022356982037891911606455835966194961068799941767127606268793279591074797276633028202345224163740097602669719066274945200155640265678148326265790936118787805648625838232579524784508048941265407230692206109339886073032641288964353534361275617473200797976809025214183643087607510497648827599983325220687990663791591006253507102203278687532204197250595439069510031859088885115243967866914974293843969169838936565295463689239749428770739287826859443462869276284143804324861146369396379147572789248746925422857444119604726768297666711344028940817184664023963420462124919729289017916480978287075087567819996763663917178991400422644687961269851313010948989317996653691257588346868279626757851658131984705196167383771713013816223054084292117481667542220740742088071327691316820508652302756316848008967233989123509001542715192810863742347589958152013607494815818597953211957202722950265169296729233910307415011891885305075170555522231433397944280143668428205306858176560264449930591197438888408795229767547686011361011881716428947576002921693449223728254018928461667067961780858222916870155592984145552287640030185114906228532480435908800016598315766999556656551553378839279750381699297759893630971685421935190782670932601596113131894559617044985791879623741710612657977482566313518511765800262881511390445802475727096441574881099242948799750869896852711731274562580437769804841119565296429549684725819017292452920423066208041388015755801642529784052410056853109895712513089661530884466305458757017873935505435632127004212773223744928603132801940811805051327918468347920304830398721683270071007878231210274157732769348926480357123386357124677580122906762524932816006956497897701487195399494634241725909492557040868999621504131659221595699214418605523991572832891955301499044122837145114087766007428428961144969686018037219698818662291284380507876109803944825467243936697133092181552908489033188771855799546113118761507998041016490093473305019852466253934276757642843895607593893849712755859628344435957236388478588642035605286637266859607939458741574203670560336068080104513844634613130607635537509518495860650915392506173338521035847509891737877558814664279331183287557108280675163129605720924257299296569834461317470892745717266224787631210093175943986618710654533421972530441939421594434390986643627831690130840915802653650722935700740363360774798464140676448834702640596368366373819368910272933135570587850451022064757792637416137608752271938137135883722992194343910608456929387004205013266884722462520306601207224525655391460062282279953498421728711544484559131027754444423898512221857603230802040421552290644297992806277769064136914218814719260511408388088933484528297067950589158598631741633207461780203889253788014839454687513735412886238876879860403700970948901984159817629492522956591447136028912205056941423704206959235326325064231397668850737184315780379910134495453151838898793029158426410939850022491528803920514514617117506629006472845130562659782630061506106135736971829288949639067759802324950310971687676373558352629712820527204472758736196861972718091309181772688827822009333541291104257174985517446840072054742567434576336175867253623677758856697739238881832148199146017093187133338666358434149070599185939586437612535077359738211313426268667342058046812000028923329005446580387906963438076945193212304945922520407854933591693995367036723375473815185721325647864376770041250276317797951291332560284689215058790040653445683617559767676665386834761922722745800853250526246120049631755439551307024448783595286745479593872447558215454966635415287508513066217301973381373296295430679166227057764048914518659871235470014067284152266540940517475900079286892992501944922071536094994123420659216179903037788784699170897969915777073184477713378917393146839384170693164804483149246669491537552950958225872843487281155801826286129106298132136190412665890494146157255816866902489179097306895477786674658688484930833803434572626421884998066801854687395982548748251841567773947003818082286069731457615438611467414616812864989762020360741077751938226575990319763811159903905247244437633889418789700159942778349232155361034603755681519903675979422718163429682176905134111260775083974691917648937343006120815136063729547932508912573383555985788144747058212457427115914915523143161220340262956315176636145348703349725789491271328026190190726561581950726140138369943121642310452339743576893280593531780872018991498830099793624552050752203310874584666821168111539464631471041964783610325604578075931874352854250524591928764449894283682270767453163969867306624801227850841662496989058434573420510891505192663073897840931463338350152374079825874314576371683576499856003526811317336440122861894061048629389234163537962371362100341030691813000133939600225874460906884897542585528832322177125442344073638399812586190449103224790185554688147243642465398495004978935471230672204446051018140442866000491767439037983843420615472114120580450457675256523544032808509635821136281960285900752590864787139751480957339661505920426095975343079836562305950994047389941305089815339843392862199775865738178406575383730732956024552038974173836208041120066690007135994747844496003917277670962440912161541190449544095549155894340271627408994012637694499478373426123149833507099997939391179366284960711454898664353637618498436998969770180233433740602387765067786862170849696736412316471971338125622629556227591136549620092035588975714047224607377261361561392826369781039505240212677486711126884916435126953745449984419005859506908994056020655033749329210973805679411833864440212992160572314831175960349609082860192080776120272672809605137951536480603894814209622364719115038375915079122006332563423458819546355778285974254541591352286124698120122164287016176684267152753822786439404572458667862253287271788155015626702597165086387670397215463879670820968892806924485129665183838039665950613031875403423170489371136913697054882299166087574946810467664483449830622383830285336455196766553927690808120773625275024537983732735659581970665188269885347086211205371070295310105083104379252771069991655627730262598887549097797313905752946676801307956945594344432179287645696921273144980205514945701313676322518939315254443540216246058536432548032196861914922215027398474638040518839513771464059807194747377357123046894710290040937066681504844090336974676538875593542891143876405292636089459818412847720574430599442104044861213588894892211504770195079931635903734680100611335089007868878508428353362742032236503171238890389993384133075075249127970009781292536161323616572408935918454646308326408876431250938672544192905170493643406312504892636050068890791437262200333868378015250459161530719049313505864833448153246983809059265399388156702743656917178277458481886895100033694625081458384134422685515568686820261425812971573614284693882736407040279600372693754791189523573950118106304724186955345075403370464167816090293225460902799814160422815582598720736651681990036601926895543535300410756934365417768737856164739300154162211822622357319214475892788373110165740232030754404439506632286281593726939593209814534602913143965922432051621343906711658211932501010375826149295281801041998715315452417852851710704018145693435924277571398135697613845170791259311575982971128667037506400608977878989724474717916690415362216201290723019199949460335193019527743815803236497443594525441927508840880621304881042639539256796228695630130139068499019471348114164363236833195693563666288861624179725037096559355595655861132014683099056788457175525561310547455062365743215690670050901479247427225204792878251538573566408410610750059821035960708259595108542272657998353085822343154176561798314766656498132436770349023294240181530115891857116343727164075180278533649266830219395546826336226783697527788900695955408593732624970048501654007580159518296286649432685656495362247944459965598632837349403952856664534770420717755424802578729480741002906485955456174893919845598469434926482813249139353296930598588970448851325982756878230941887670204886935462115283926176661167712359347086375733661151538889294449716225605544191808223288830423490279253727469821792120114397247860088968754970747149878830442532210045409374906625254322582130115732655245205789351650456885845023460443933313725055451480735401346686456583720977047870968157108007331935991418694498476161293571151432187620246458639213852846697388322110863507054731036836888585409562524773611493379481570722258970746373597421032689455371292703145211305817827940908820207570346483279489931951786244279880534970722093557079236383157682450735344284302469835530038137980450518898390688097466074639082496088358626125503638273425375772666350790590404387656202724917134126698377054355396039958228007768992545598109899973991794307210956503105352617892497287019452540548178424238382762598121717798042100035381752000918077781298820568731691651230941703273146597113027016966182793776240429024458325191475730855890978128675286850708582398490186683593355939295603722447788743752961488051188127471340608601372257938774601237341897140991922009043982538569389103531114127392312643844117098954326772043920730453028561136679370288090649025034175566578860014454166805500773475542090605232711917864132998302559628351646367018499391440244785779239206295843978206465536281820753414931168497683950144861606653253462197313267272878016313717760460245593797813728855874933725924714136557334535968591378265325748198681522504459985127341091353247533970244165403129194339962213698655839068241674664472956073495987852361391726652851629447136988500359653747366513274303353665781857100950112622366323568165073056465385301598145553651663365176523280625773089767643717352939040825677096322946356843492720350315178838193663457784445555374512243556022110041340046783166124783089038664896780247160274124415102249265198049424611940313271816832871981557776656835486823813195202162596442816687458539149347689065795071036350894480748502180368453906541711316811213468275498263819133357825030052423766624899366972237241298976407011240819423008267540239533687438183899747821605498134419742838800516104414286291513119841270595883235401036532408885906470800457107253243482983104305843218563575379461887515068149173604321319170041675880377257580295272258292610448380592348481945762504979546205536985721520904823132249736706554556332436174119525313817515491824083671088189117885299209005296405168528748658476266723835820642374409386473309856892838436719502475105019648674629653622218925412260458675279888314992405321774232663550438439951638344798819897435266491298145341275625160577371038959079061895001796579168901792961985426157110795051480232526794128806861146324446436147068695382428993400370991774624339526617266459349508032833834712296400225462998896029993552097110776577804839996131416634480562981097993383314773317826580829359137267809749304936437133921788634081927680815556520884947052071115062988991055811112135716656577114459584507875913120237571110318042205207414513446482969718306632594167953055766722299560694244817965796597252843620057416441786647451168127857417803399497292169737016582276384232251746704176922350040877160076477073527613336074054381831183491931092490348986438116024552852608567652262549147340126660860706841781935872817567857027774641872477981634867795521112422776310535400511257282994976992741502790524670511985991855461428223665155251398519896113568304166294014380405084477453910626616084578314925850142394709055560655500114299934615185663353023532624515265153847543303651583700442394058205516498912160149811158323061075195745631689522019442822208138158512909674700567257185000233194252992354247294632666709113619148699521119495593041517975769778392520867908816256872032014875269202408685524533476335482839719973096427625196457318668398679574574499375334954030132310394709953557498870398185565829277313109849410665185979822188346654706716659136999815549311813253242145972861711320085612485761581427105537675252230816792906014001232545072259277637286895600752879697986195174796865635518468895299395236757739628001365250619052838943031954692585918927547971647859981625952684244310243373311857965753512542576323836662274739809458537939109812823688450500996775010062328734977326992640258338122423313329014727699534481892881691103162811927144488827391602166395966259346200079286310282344153139400401009849620886363114984432850718012119394424800463022463823253009226521072799462151954670760630220577472962727981993367482237022062422667265386706656272255681751885945742363885109419250748725214888622284035542985291706862593316591320715956654925378910811490965325356400104105972856578770469562825680979033951876878702979312163134579732104920290542729978380078086555192304346218206743512774158237125613723017224914221388161023089358066848980433345888474796028613915568588038265490420784473112588294618247499081333904383647588315924865417425262555962669886219354356242870763994695691015907333676384481059524546684206856563109910588610165274417368847549466568445840610956329965377645285476190297576816231855730841159351472688057278224242409020682135533907525191204673758304444923567723642686786160812098836627376463919167982637250177740034414330252290446450014706418680854226603111026061425814885690893228861544952472425100514488735551039494968450192294194034722775944777517510605799271142494421207603649537236038845040208701630554372057270024404830772977533945241725016718206800621792382640469303448473376160050082095550376641732258282002178796223689526184630443838536355287477362486060084640039097519978341949097278961848778006814018896840616226217879454559414280683695501271644296822925771930072549529661264707899842035302851385277288429953670588272481651483453587100428812058814042646426276709549484314511369838886369671448078149617994440450524312926198053720145571739375783967455326239900513940722535930379920211630314182435381350790566719065285909701621457072697034215577039909265095619226439986013293998170841338250349999005251395081785071373309806149336009595541938948259258149959962984945970509914195021339376781018974874239999590396141066226616767351014820520504766056965838639016568828398807250684146315382506945239365326233294399721138375702063904162652438960534488892857629590752160232549288958229538659135246196735155017456308539517991445039640025559694426438527042820301278215061656727196007288441348247514925032685765715970361795892035612885137018563732489940103967244744572257705640336216256878061635333910515659150963413873036731757169174176174747288489504576580331108735571163583500068558463565433626429845590279516760583712017642186741910150824304705987535017813445830309137670278649844023137515116734453494332596287434630296434114770787539521426252757471867492611640865116529387701889804531396527325298667383022635016075070424392833598932257654448133871982185091741488012471028910446820570765959012126148165381918525127293799537474803702439058725815864849234222456110690385421690675362213974575779364882700950838395219471759357470856214903221713727378598761005373812223023516214806875748465176065742065098543099899751903320007745590149230101765965878321866799507140406793246479263554161713154956816810372265702303990955611874336863483811895134987674457281874029241601236282104432535718898270394491349696316916625256374610946635762962416674863551323840115331825664788565317478625867685993774926965328627138679618493882065247669401958615149777131601647870727843615758113866996507479658675937529578859533397700013020108570280638654621124234785937345838251553452451862848266651961788303886562401425359632725955950809015850535584934536059784492500777027309424366045431434302327933820789085530556724699151964951215097976301233078683067280804769430616495638432002477335741257066201725693806701219151563038194976757512174998268872384986175913793851687902746177854024237755259678594119140196072897988495677217918224383094678213996860399993755387188944669316713000395272276361586283947392366662809458693429468870737978877478411095247596761219183462549495028715788429717687194459919883664291827157543214135021238768626600212856094046205859592218662775996296065671845683675024033193155479668902511589430991489657125227332748639475326683245197817377590911358826092152305164400014391656995455083886082373006143962286468457870889669600595811738139011278788529887617697518710321976761575426851822209779436596997581859113759195278442501389390091332486270965352550367438126109604891224892727267197085853480872663922927730089366225887075483322942347970885141500785353736996593718976730752262860303069776870331675658094782751302528332919081393649112889365968092930090342471793945071599721459934002586763959582326456467748944787230573575850490397114593159360694003697816653445009598936185956886091267323157448355161232108433315639973814485920783368591572209994014811364017359333199621721411519771680036658317525653103239505779771078242677249453504624833480783729104712735964921659341297373610753078591557830150894160088703050280809921837268654424059222656441881772485294196507686173093861441195823029455693366898116785802879307832852022297984553683379457941852028842731664945291023053108137144720048337375747797624559596636682470993340452573096774229921221102263099112597274497279654869038417526918744262718241478909001878007373785502686550119281882071246857307464329806417251305850740158738028475407200162521207077188180830661547771249247945748406639696979680442542023354881240044279498325837134798471557039556167317605082376758190151286043696988942141437973313091483375913143062435428598871837441470404096588063149957379584345104142022374115646720742521817127798964601489483735070143996777385321657443224446719576375783454839610993912283055632954125041582658038640435361948290469520940869081612864576881085136209274178944026026766918710236374640213925816820132041285172047212966058171184239708110197312585267827255903619997351912626400225199976201807114556792279437725130894943149295494307532183310088587737716121841221219660699535901656133367379985906729314999650642335764365893561421335301659275126245848369271585334008960110317591736398410049895025444868614895712743299933251721844769095217812416644887449616972657804641474775183025947413875371312168978194699509694650857901828064392155291004260310816427454120023367417819095683385228472965530769885816726489053713601301498394993914770995304863568941257854850547360648813093227395576456035854399373362669564563008210610710143697802849995753214841774309096544771920976547828097541696551054855469976886098106868011137271481831709053758613170823244675602286288293901277872707730379601833507176591101826079528043171495331915963879295971366185617469753003258971729228530050918263275310109574168905629878640793623026901895036191591158396275301216449649008453752883818198875634428198805155663382292821274690164971935742299153536309119433669802678884399760600222542871230472759528741411745012039366823603492593976495497790863362431143505993302564129605769162399485747515366222263176793015634941819876350552700153631114072413024935042866042387828849460971749057029204189388534343715512347292932812725299138976977416058745927693847270725682860720556837733838355997301814482170099327736659698247754429792077383140042174350646364440301109189972679729290592523673801735979218730459987084701732883190158391348802115642318436795607324326103881192938817180275950996932212842555729319488439091646767186650363195025457799239873679989095261563482171576179002984640124567673739571093536007543334141604822399736529736104900168132508576881958580622883074126563057965298328116869779076335993130428604038078903012673784138918107834689043560481054796814482249341472539844658489855731082975732029145729217846203094751622450720409762430636703009969450045945404096520046961725265856546962647223674997621867367793904128365455984217531940465041435981902085674784548871410347479057475543999140639076573367603360418614746083071683133068872938229920733915132439084026385790814886413034575144450116713175475094012353041873049351868489870105088241643261263349187421325342014274131761659793381178766422362919145267690854897960587953575964689043740374953049987800754035603584946074607713333901214028399795409634443652452618791424267975112951760030753972467467366136821919331164775596986567199302119237016873219161807276833479045520616836859860920299253725581039903608277802517652269191184800524589018047530566408032317944787354163021526926599173912385368702016842902305273355858632149667939939586169494505725760239175167342063170435530888082073548132944607677007156169418061498628523743040087947233720415877981606742260843357384234416789749557604393500304291615716550769441305752377269942054645805369153862146383546092145118444696810027474540898479362765994577663194865197804794973536804504735681750496589625714498659544875324038545639898349825107041486567897295682200597239810677195875046134757163824089314162145501684657491032912464971299440826606523412689626446597692690473864130281515387385005069554074955107151075881685662293638773976897906723161698532666030206203161705388145562812567032620555686110692401152535513920092862558974290576415850422707014690395880932678992685599922462259982789408743540835984515083232960117488642192543680692005608595152125601623140164216075803597861537600783797219515545045166429216663990412005404565187661964078008770480877961504673708875637660892134583127573608346628777310928780186622169706714964864107582178533926651493760810238269382735771943142746081131373839184940374780484563352600668114604158255129308333153183161145850618723364877806540462645488497429174507328639852371633327804412120528298683422182631989456628921928181829562598020259232176787330964137291007399870985258496158032311411493803850243446010696941111521387131827847599427776229686501364446698225215309971831303272085399888953432811571871291250473831186030649025412309382791385649117826865779441478481070580583773396312028025712292767986183839465207566189917228739065297484100117780811350930148057232250961723028108444368334889838512180059671027228974221925795967491230334004991488123230948646749991113822951200219915667650628176752793025407162962957303044196178289385130757755071366010365226189545299512076904632691002023322583825431187864504410587412718320987922297962515305708210897213012636370012620837802157288775356012051860838045513553489613173597339230815862657515384719738250020972979570447885396237664154512310405672132984918808555123618523191704603906792141710433128882573007923101988912730138970745995305967600640964228123702609016003936109218909118861320564921182588512053325344729712834727396183467521732122648697455913470497517103560812297524196983975921160778404425318011585581960221197234882086893194567563961617494945857900369064133530555298539715463581891867444191282325007034671253562900053853763455773208888830646219779596845124709511736602239075169944751672554896529876813686096783976067140613569496819293727377587776381635203338893139865890099767193371031422546914658546854006761544241648476500097666289357692922633584514794685869230918246076760635446356791023642819783070355665523597252535294001099031163300957754555304422018558316881126720533565746042470132082114411009729417370561284429428801777044896736251312768711424085336637710476640949916799924764971083072005138570065026390842314798330821403750611297393722149655412149890203860486245127639360445740923449397894461666093988256645900619834929347599891973864484917734476670411088292069987313399662480532461841079330231762258309862953601439223640571324724718606135983746560686688421458535402391187954182264807456269593830941915185992532583617956164171150094193605379394502759238087887445458564899866505071020274099137877205639916133657528707436555143933984476940868288385685508935037184830763985051325614989471104424721997317624484935366455953458536954962178792979877443735754772063403433972448069380221346531153343978846271326619206529382908438876917196187612816052962617826483357648735887515565626810083603964281722125237382253906220088229096889123145527929061868048960971623637945359563247993711547667417648568459525274483066763770625849330170240863216351252072110383296865839601307513928143858861172476211597936504912895001129124512730304238085941760262851435241577504595949517368199195467704246507196238948884121391922952136722757695771101994694429253540572161113085589027583530954546823561275391958703646392529512886440603337504637222055320139437980804745520471289529906717657969216211825619722356442230189728644398591537596502874440956974697034765016490735110948768434202991403048968587028148578785507414853860689070817383755985232203230044371541893110638752628748889928480812579263325156266854200261330251325178914009745001843838729638208613824774116408074917673303506022846918718231910660870043252046129117034681596326211647776218159605848705202223943308793006511405382637381675946431023511754343739943853767789936551170459289579820502923566759494314708963226379597647580172049542484940294025133550902498097372258500167082571005570517212960299370451111915110105805737705065659779358541827193399611425271617222795017213006874465145256839709260056587166410165356834896443485588499428403136095780132887992916386476904479921754993091557127488414747135327343619464554295515565473809088366062871219960044782188952618968440578422680732892072978909987815368351174326842259931994198327940895037562753912867266558938045739836111543357236333601984610133933347581163427411156108523531376676373033327864260410103035975097268446025749401510660530890715765578883120979350969908093122214664951361490654155321347136053248016591842082997492200712734418595543906766694409040400081048227353171752699902697158780559904558527316203865267330489338629355219081912508485621259432418375105194937866889241630244769742331603149204498153424904637827008526130129245653918443392522590552852029454923354812115607042579838150424854397801632333493829619466204802855405049553164239547966338770401851813953260102463755844686169669821947604183055716372756408237182146970864763517675300343037282896887011008743561793148290691774263214804001172405695753269524223000221615926994032341329874717800367390871271091845834769172053544306959960295235069717319407185086306362032370280188562414703853493534148613997095317284782846927818885146052342092451467949616684213019535223402206768845947663272610492995454033437163158683161277921338658694085597710823429878551986767261537577902184847816152518670677418383236969832031692692092139741727648326122946762533546431517572465942847118207455643790838744581350243111157282867281209147585062600079825501374027650083052368134508021806990051431147616014397890401981833346984731897872845736863500484232594470539872306197625669083864537045175627929335758912744144093543429365475703062124533717901888533198774734847777093650666702731991454258386596225492712735084878705187256779419776958392919775496220754714544468409366698462986023677117589893792273289743410950063942815325192435986553620622688265685614574047050819264198061032537612239815231616428656069554146946054915342548106372029353834323927169248429200966932334708019139642897215319868692145274761970773601340049148078238487702532277473884634697982550061435035778987917546594366942930928959019156780556733047138981880269759912288067336170290392401332943945781768822758747624894599540849110634759006131850364475792217348995322912738049739894004410542050623093376570018777123947182700901910748301953994862589063006069854478794424426753765258815274820366862461421013788820065733320916639983923876961540397124718713849494742709403294442541162620748096421251243962263118827416030712926428952529697518656563968343621884457118284765079749091181030460252933713283260321128660388109707104935308180494832491084596766165515295267915407323041852066931934056267364090748559176602678934470913400495332259520133313787574552607696071139832582003255536172064361725535558842234990549014718786860268659833708974525421482986747312008390698985072151505775171386450557084168760021528674251337680198888452735914085924348649926269884633053767133300008367750001396175590359129231026753613172595719995262398696103404893407215165109660464619808314351642093618696898220717605465063331821619396807307656126473109536157970566523417952849113763304876362595218607280189676990419341620345946810273937799766043472593927150566278038541233444429520933806062655253170598261475909892563959758710605273473540378567185826842996491316015001752425855731134009969572470442984224968748232103312569845773429670845259393572067064779811070201940560132783525041154660143384943173898828776438564287640365533459906737885762554916889423274200467248198087401349720462218658097247465015390055789059740483771448796489446738665942143752147971958840693247813716993966499442476568604287707374769000427045463299012899005658056481520681815120277673335195851898685185449421887991151315211363890640242413745607238525706262030036569604783279476467268165944558966902073533633397723666666701082051256556554188435644992396938552637029486379626457818053685999476056015829620591148301289670294951636637148938530369752198802490512679405597210730955283925525817785063686387541663946957865778015379435335984431371553502120656329609988416450889829087376668299724296664532819479984523507708679712412101998730809879052034175648775384045262322526365534449328229975273153626227581318840338794530260313269232711102380205513483042480048512014611568015087347264955060080016884308952201538978665361571981017799200154101410902090773554737160882757544513621159671606687136850287185080934502621936993832624690447326657064734369730925978149263021297972245258077634107519807814903909141308626633943992309440563096457427169867611270826319334905437808644740987865298528027637661857492919003771427237843010383247302350523372204144455767671592402303402006615500581898764401406711280594351473797647706544680569781364888467495833476622276853269616092335518481942383404561531589174773127920067934219166891812080489918890126955352591746880767918396648416566410316914722436850174974623822553983980620403613610975886749847357446809597191882443508949540522105497873962664608656206954724306223230486524075995140353300799746469764776678609873272381846935807683952663171720997120121360570993576721670779382808910732872701027174843775921733432300527948864409185545513268284184538936063115831108265298460937567287105747749124393375666770475365581174768675229022672447278589606154156023144058605920348874367925141474376508622286490031097959649536642341857795495485395968494469178229124328403434432649415704171582640098868774404436508825961572583874617685553965139133870575143505105065349174113774738887825745804869952262145328856781257868422228225260675825325887142396346764761244768371514106235702920790287364962508041762312041493481891796198304101817819308540516156836182451079338431418914595602130593558418018183035409735897017237434634041038171985558186411972934420639312992140172244408919091766518797092172149585385159158168797980634742390106678382077312434347799917993779426203478592535181785246207484424478907577963528271192749069909649819551104755890135672237606611834124587795072795634726788820582127693093465554625701245351721046467755492453341638855906874227361929254304473799360373810576096911258830917896301729805282129519720327691165441952741395302563419414407568155502874451768377465342907256122281105038875815853267517725962212387054909670935218158450701550885882823201318533001055020041530515336112757325282314028469646323440452491436924913537289541951495398743459389961827701352649359052596075137592178395953464792721454956923071964108394134665089698403337067988727616036668450429421631381343496487394754949469638200566517345068214765423292326864854562402368098214507492644270708918493153532661740927720269450269369635377823385575243394315073752110295651740224950748095353479183876554035726147875801779278088105566164844096404397995054060548758441008313101511736373048597990569336859087163292583883410675208439468433008045109707196324129087941910292876471561330660884943694643720944011856644380596042559475868720486126538209943219999111541092936539093502069955475253326965411583300116544600513421664319518705740109393437965822230006390931076125809413787905870323696127233665619957729725869584753848450949251736991673439133449245383610575955961395573035840299626446224327943961710751290685144477681810888266750327984803292837801635509891335534475661825434035616869697960737049958158941994272894930359652958196576707979164366675116585758352586041828686816464539244391448829954837196802469858437630503018186008123540214052265871715753248214348211069448017942355518334086222837388830264373265792936650539802219113645830341897667152557597337582987426508317054876568540081800764341724648267241483195527161045385625265422531587481650039312777422766203458299226605559358183911279909761065943677848284198259900914464247894911197266590690325525399506360085105232488617584310173790377855747702074941943666707036846229904283891395777143715249583045782985295832126379910400338345540797368954853763080497034562710599395808457519152114394361626449355050801743772825894120481047985405715580309746760578965219549554577805682239841666720192393392348637186768912898090590775803403951244357492332028231260329182202053229240234655257142363223028816359599010501817968597206247504982159618718394366074402621772354330983655344972873082593548949844047629117056065166161175185816430311012724317864712196777361833833921127687383396309465095793419722715869911716554484016989976985190231933539926474027864458600067078231076127538679691624986611177286342458935534215144519300481610854952594009569316099475051200155614466232245134162060072443540793629109195071602191077950894211567355172597932266283616917158625229779640380698863474414415116352717937515635565356915628382309975388834691802594036200407034848293651614797248158021158312951231461624731604555291387936287548624913555224213638606860709383963125250434920438989714312839906454043946899461115174966800917781495287835004028711344128964693101174884619366779426545514717028425020297378204835060372485685634540293530449337334881662951306300371316154930427697157977961667785390600317644861752489376111027336087180295977222958667507169751460046286831057933077338647799830608794332819204807613117034264662333329094207847647345094319467764801756584083934704408859508845834981663276460322233443400606344552363372785727363011606279798078219897674418904623113250341065443585426142057160056260765812125895185026546472792604390443562345191938702462426257254766708192817255031376624447884232041193620144409439416270523112932768374055602452602666841413099317481460841608704240455737869126611622154955627130282525936739075854428927315935672735162685897103673713811475413119643304061914240719170190950709112960771633715216696138083938456253753571856940455923316247304640005364231518056828142024973841217212792146943349017525616867357104812269124182261680862719372450151381648675596718938017534518186615894367633588801991805512324397330427634992350040341559069869009386295423189476320577731271053343788078940123865075299386037512755126049881334216181147769503042074768486946543004634921154993814335586818940038150242897581604041054752314755333634021747715103146440748935714548962217157341065580809413040976607232435795249499831175251985994284449529729839385328302785629489080381991187899187396105141153871679195927237507475098203926341865298767269047340712025757146213619643755791623731368775733004989487943600035365070994000615886969917692757813274722363775978814996825712278969216620948921921129415450470035321312649992737342711319257327929726572500308930403832408182369235765351236808289485818971502422315371389203749703152125546110187942383924816713343990951240109615680018318161337819415892062623792569955968856159088692785340274079076477046623718660782511599693929955745686524590954203370905384150706810088663626212429776823355824096615507038127279495245057670001196067491043986499786905110188874445758056472138479665911561258757955449145868803222012877705932435156337865105958478598132203923364961637523791703728946511991657007922360033766455643586227470993210957523903295224517030997981076239885911024042313616098278619819721677704821011478448487984814628053813429559256490914597840014036525675502560181072313017076045117904148534909808697171067867686750358044487315827694331509663991723585660525388617368406007778423970211312360069547724500921036194247346734247797770700519025408026824936383921251866283111207219087303118416596832025519523627859504095831847171427341762258474959813115789456155243218239959576224374872272397371951232375504468331269256263328173693638335514260975673868052188957078625034866250163446085156428109604394684282262064471010852658363661930650354894335512225560393418309778915743011562287274535036107195983784619957123376241610458214942505490772879040010301112814504705056650133897958568958136348510394755195564657205731781674006401877921143542752520763072825766646394457679729813613736147758264615191377983387268172904325744823965528173762988783323056838445187754157753508201897596759703602086091165459180697175951828706124934960269155068995903125213506173282375096736958398847211968065543684018922794229286632404571724236630234797580137053003779158249111493657744843596937099145701973885469641855062617640271971559211168194451709112855471988620173272123039157020639928262344069119649974909074888447116466329376853311039017385873006133749290178209476938671973148018552916567105386337552227432948192866440253310479524872080128346901402199289792487313257238239669794706989520983878502941479595811199927232265444769649095640205826013760371001020776570980166028593909382364205259119662473339087922182045915214947872476766914368372736293932013815466413733646670854610603517052987605053325623697556564849175559018866226096184026720710772558776214216117572125405033203103287254202889146735593293765394732957293288653260543667495999040767581782730558207524911884625395843204232613675771623698274646235317534602563348833581544887200062483335812414937276888385722202939335625133321889749413856965831365373363895744879116905843254485585355562500332445115052810013697626482745607887668920747637311603533541424523411679848900708008858136637156066005050788987099467653286540885211133149553107096698224395958716057252078029898806467126478802143502317597536019338707274296612814798162323116020795625489081462114211680528595654866743355094506592791551374171335729398369601626826885121161039135626223003024166836731021564107482749328237487581441592617784148661446798682740180754719481437297382023609387507365524528408086349890324130598996194008261876201962490990069848188814496447078793001927851449324181787818265763865410537037837808190165532629630958015961968932571340330274290509900051830242635561396201978629739536549502656543799247464299761828103593359018455965015706564209583246647617161793201763530256971132628170800059758378872410337307146675320543235122135024820612642011413570437896174310365267041269310670486333771655976785242017490359852764519661954130039470056191966940672600066940418910855263461356926483961358599695599046705032731391338593933567178501381532957039787187975880484846584299816923064908393779110712250231482263493165882303414227280990483613476298165797905992959936648176655114699337969624139491658377358174385191769454452407231324977780879668774212104912227694023655024306465674530407352160446265417822844605078253980252881458471392337567333872228003594746255244546641455517652795034402197436625514903893729688787096828361124738135497758387333882099214628905655263628805477298950556347159782868781414766164299806915121047882218776481570599390497014348877105747419824293339383237351627610151155815850050276321071875608188744218242676489496841878343859075159142129866678901570949767281670064584610720402309341195056162033985856357720762379731194236951359411191795511347962762434824439660481564038686119025442412979543706785532487081876863749030878102318635839332832943320313294722046377478667422582601716350876464299638373548391618323578460950937591724782030018296039275577812523056360876327611122217627865924856222147828905222020262254629676665892860399948691024693344822169921325887853571121648432397853489363765585982670732447806183288404399033266352103920329867240963064659729002940111793746035827159238002252196603217376558406804285043768971592382290944265981793356355882130300236493102700951265448413030849826120146231065947971474291455744734452466937508874293763955285355703253590251886364384421093523348732487626412393880997124333761781567114923846157326602604217820699563860514560734096944541139674436421121009030787282620591053084667997164488734733124324809952030235365853988746828600283867836423762172863395673612197429572042281440516008198217154507897931916716689858358690064953350135498660459320615142793201196872975835322390969215552594578571567834647919406597912744439497102635040913747131599296288126132324114639824044128769410086660883548111972769989027113108308156589531917478407401167363384400751292168107362415570789447907425058230090896199414291419409726822360183459383767841041471012323681853666339879504962911585704120292041526398165193659162271017789301202196126509701202667340895574178339031884254566906812417984602959457164311368670421744178170839763660035261249961244831633673508090171570746483578522786365847853230732086093578084869511859963959803159993238140399470332600902981893519716023016696748779642939731578187182365690509028927213916378197204023938226649023659077344142399288406921588309522302571187915424062100618611108998266183324200765997984471050022402033101985085951213457478045084732569929498721904737096798046888934499486201706464571430943567540850218318201215393483393475168451137885502522770070817195895905351330055992513269835213906593417867656179649107388560854032023072162136518359327149121796075154059971948609779624651764228005201521855178146181144017109211626096135393776382709599395579233573184482978359798904636003731763027689575323273589624459857456338191624836185843653818718804741971425341393433502635272784073833328142690832059202885623221098952004049120600545747898835649136112291730423478266669026741458377828172591785105383826555090319230924834407624487508720864018408169766658608421713510311430536984918984131000096361933516010995206253324734966825858246809299260242687957529597569700756143650513998752704347159693961638730602606647051505294684382212298406581535082224205156444842576217065374903929881884662246975284182260220045933377838897269011073277330165512068050764706562496302584172439340072923934235643328513370987137005243917518710705956730011765961500524074897713410644248469230456377190162006911932090709757549702213574773580621080000181205253875814900212773714735790620061776524094569170692747587603149948135348297558530725546276151493169131155011529159941691424853550253061945916694570285547817431841672116840494803577396988042892619916157669692590967980233386301080499391787772077748405821534076541128245367184720804865619555219683291563651127378721859661568629795476091752778069860952177719001378778281211327237482343046890427795082979302468648088532829853654647554298724165575967782276708118736066199334710243580612494806386667026448729809139836751946400744278327012636537957150585509078539502058640583666069187478255404492992549319849412810244954565982912524761333451893409272921518528013803076289117949837671199496323685151941392914544996079306795534583796240575688605859858956843829422063907011604863532658183746447111228850061955801376817033642275034058075602439397488476187878150440905075442674974322799049867393945230630145448062961314448822007117130697825012924549454636770090457823982651437055116968576428979398784175114588701589249081130664451088745758994507355710012017162901336310318737883441802743970678776879246020326560207273870220747123300341735150851459317745496922075660287625979569236458733910334614169789590292040234303675446978533353762425289416684159336640946719150634569891826894983750881278179590950949128793382745501149857589717161629787959563996160816781640050544700037787543413784857906631269799317812915342540984934986181277864543193037099517378108275176677536678175192125999537458259592224789934747361980663870126679076417235075107852881412242889855555332023831710341436322261012406933385084375959668468546536874392798855487891592826219116938073659218224993450943373282009800517227589543194184034928470918661215945187068079018976389717706766105740640818903870500947422820392228632242573325280517167761215352608039937296604990373206411349451104379005789158870240647884809862471572693487291841714527986125500384123708717923926756774660675166585323550446637859161119575722072816114035534730257756574630460487133561799768340759146084972875903318566824269389440416268153103421407522165776186135555322500772429080775133486305789737570519345636734181627140872338989690956974507174812173663575515991108701566106185553873138967802671986174198242856444107474172722937499851869996488883108116501373160144390882545689098985422413573692940475093947128757287541915860865446268664207748561314991522838403348131140260006670983003358711799643126575983760713826477898948914267210786767620840917519216140788787618882074743333325469791733359632173828145749112346911196216292956829581477577800155034604459995691010309984711022598258268902678761369330330743658119064609046737177228634969352494679397084653762584308550968977233451663189662197787431381533619739324179090348404583160917153203983352565469126955919770031774731485642757127230671855032055196868579996621191885428611208861348213181908692523107604601461453501190635751529482878825443312600639130439780051414090906772092986683376121824063594458746956446975087051226995985903997868083022165185358395539031405616573661591324220998921938314604134954374699021255313993677056590151215530328453324955740855705060585319877796034109183818747511224044566980683151430573981062477026001383247348404319675186681793016545477220806382337590223428325163020163659281687624440908044137752812382123475299382604387351450634723651269659370195856819632052894684135046842821603033178851509836778039844578274135135844161071340481972292061027128567008498463643437203450055418504251350300905339149276892072437038963646599532450451057570349915357073488037692213049496571045270277664254719531835928274781696524940571293230815522351673963824981977212105374918741298752979672634693622581521021446264291333332604974267794996870816050033858955704807583187342267372885948486968534705012710623516354897534339655429202206484240828222867519001178367851109293001190331770686338108675190814837335537416650899372743354953714468672953678541237498239362031592458730804723961734934195638078384854854097757453862260312569018415396841761343630139857586013560539612067897135599422104386757458151568699532932859779139554574798963804525758681174400293230559698422348832255414055791752409900415214706393390116648783445766737672313837389415868698009385114676031598731716498699872399991558441030808340132827941796490131323344271487204285590538948962291180519680213908565644034069065106141228692318646063331743648742364284528222748239473324258983217304767684941481579097641822794280782423075694195247353066120420847222377421728429987212605267218264118723761668760101940502156888559540807981154866193496382625163861195364994410466702089801080389467157522750844974558207374181656737208026247304140820513625224216381023452174675964605308706508969193422928163625147616896838578469691285177396343468663810455630271597164877979320705722714342946249719257730548577147987368614185694530310860753954359414271062811134038663983384083542268488588782153719645531346653628938586518085003330036743993352043716971631325473934667934320731156193703744915407630886322614088690063476378109965819934763789787174543824103643915266266503331796036962838841010984568912751758649355538300823023332372595593479544929168845260710063799577262387135926938634176407576929794829907947051500010402708509043196283224636104461787771082241507696890375835014148856632040688039277570011099849909998935695491181052872150398582887433620678255192995870992304127223611231827939023732623984885745675342826366376595146757183687499023550399069017289625855623555441992562520968179528355978314011453336638727695291073958673661214956433324530369759664296859747754532541550707642123909996032521875569949556677438616940193818344750236219908081191500693571902614403726686597527842220844216608709979820046098346124679720145718484191743776179569498919324786000959299894494426760190491602280215307132508170587944087209226992935948002554632078851179834647431071007794381111691443174573022022018520468315771752769304853990681223898788182461761184682660152368697188960734722523363535500660654956879276934598917126107829090099401465121325619051436412170394332651998954184975464681502346331686772112446338077927103366275776151371951353657020734108995486374736930043048752678835553458527736399103294812701409287116284986155135527015678154680352464469304664954953278474899680855892550071823732786281068543643220904262336226978604005993925072737518954744874782682948217933455410102156001560021446624220383993237927339183005308359616222344029612034837589601948359405562614260635821048755223950545279036512129775508818323767707187289758725625467830192033859013481050150785299404837534125777520415197144688568169394305547713412722019661394863667239510999393398160322235907263715415270373112394254850660951351583035848385924953024162197579006458671597443670889011394057713116773982124346416369345189072990466345152695180995977736900654631646758398769928594318688601525261952008533716069699424491488359751210692103821503616548146924801186725632381295147502772156900347316683323600655766310356994704164222958764425694050421026688338887224545683846328176123698490330133102185529347250561007934826829268126408171232935751879896205196042091726803205418569443300045090736077401921546749268965857093840947589065534953379706770487935496248925205122864014722039614532368034118904912221021471007664290822536049930224193107905472377736316783451877652390955472932049808428077190710929059176351412998002077119334516506484329247287658143294070108559104822021473505665705145166022918482509215849497745816638426635411997767462474098403796464365872814865841111451105313319736559645773440053263835126921377265902246964706471741407778346189292740289015784863092196263457257881129270716163863422259313816498857200464608846926235951779210634929765647962718051897796143521628752407644388031967225899297230983462514701461618169433964657772600441054172780575204648394217993188060401043940029499241611701677041403771456098082288077663872050810232368705751833805798506273905295288230594104358940435328741425574489700404873599285377926800801700301537028863129952940242349660768363985021548517970353013482260054676632296652920824150566380047322694431016250044798965361020027264847433967951745593551010326055148395560145246783042967492518021755181664868750224284120227169074155661243599209076072239161080513433703381542985372152239511282091382064313539813499359193391844380837455213694154982068340326799550378698270220902016621458416496183192240746211064042110492712821129681775748588010852626248223123334423659778796282735711943891586437383431516702630636806389920124163966055869280579426018612438834955272641749483725257633027653733069213803558155374442614890769252305059763652138474518260280713325370100894053741874084565008306888101094325721801117085285008532544132428750445551083334449334667152074617913579004453889273338443477541815101781039132817531866525240563196077213613448026403121446398315357026713535072931275430540693162154954223636315993548228997221064104041471760408706940637415077611438184040771972858970599629633547514477886808054275579028673765986298538975862556728682751379404964333139905177402438407529513544885309505367328778755758312734022089729420779974779885696709105678466301079166664682597881424515310679863496532732281067406915457348203643953839137422880259175706644572980757121108992255780990757376143758222231050166749993836178067774677385410014287928947533569082432431089484301028321882809627254794825490224418388988750859290056755221543990638808038267471943072510848591921423142936890172488848137362994848191846019541770467681255038298549350050565923052400369599937210302342244632288058389055241048932670170637425747413401361783950388499425223262150357068026278599098549475748228023811753955438328522625137993712793424659598450328370313253096213820435802735776092482303347612511607090624573761874328221662129854664195295930637048710203552293894707835007355888083244522121765833631567721361241007275434752035869592411709606149572383614479896921280719512789236250501968160518567492944953748596173757921883008075454647202497922331535087374032725101240187210291783966906420331723837508196951258126087955516129512476785488969848621680887953001392747795679887416240173499990294842151065844815160597179033491480197292509412054079386922049170585850069571596870252753297461317072648489721104005998002034607893278429777080820445199026603451020838414889146817818883934362823718985417449376242542588921201279527771062983496371836427887426112709496079238098180271983010383143411641480902605622032134765248438448157279054266294433963339748384048378482344005198660513323293134618904822170281935890935750198943065404046237720573254613915686914605846724887775551722203013786141612737686607109914990244950446440634648955201298598935879594631488762037164737364454878804735153694618587544983292253845875413991509026188733138299519027557706075614944031020014291345554691705599111410525915921176055859996965210690815269880287092497411723929112830222896913302961532443564169218438056665563412175346755585884150219392461479598617202670341140040605754764520216449023603854191827833871689212468269405310517043388995794728879278909396455772448100382631964783366078885230669742237844717762437604542001007560166810601708385945970499869126613376756833033047071974320363625967011063956837128884700055289511266538469621691729981637055401212057530417424228516487983184374251374245525135915870822058214130761602927852678960912771140372333928484090305843850435846406718307666078163898879598955480651913818157465908176346802829300883476787581153453689807725492642062135522047158458445452489173119560654637524712902375408311952429218095204478649102821581702196848042547523740495353230131790877057430246177667396144566150494320715138685215582115741347904522151578613927506386310219256527115072162743294738600886311260346668964527420494279115413691684353956985063705334105392037493312262693645726414637634077288397457975925859835993216650845427924246709707835543761353434267497610288734443700580019045319834034619787207654262309673138554176814383358435909671956611826038337928201031127671838283547637404923092024028360660088081336076698437765429386101463141923189445753263099257559257689544003125106738764630689055971451154882025957713234390004891291390497366470841666897894633684234769159115733783160990223717502633350729934559160789642465017690041266588562752695435533710191841984804560191674813841507374343046952160336222366950378262760245455526804673679306527239957590008331922708602869412536172784306839288036248874208041493686701781427740257121470149427098387918811182926750005560118014301633111816571818687287373475528586251191797583250824057895088560994489441390513909792928784193811455869394910604246559536713277640283138419356186861352490556290557420576893979371831450496538556073261321740210869137689257627174707837080560337521269263393306488512675680815318681452458114312641941869500770885266061043372898374676120237195544315294544595800283675897549686041957880593485031477232322733142040661129685803635084566510186921179545424439024491907891106052682106246303121654223904175943394118542318834506759503297851362394906635704543203977945476205589684595168028149985461303915150497488539428471187917222923734606177302312119679317510969867346307693815201679636315588879084569452862991787618155249202415859110594109720690754386558399182661836648037455835650717935062763614049623919802219880017406771790255240014017226279162140667091497841841902489700470794469078153200203862622888186107593480029648168345070944571674505965150301633563375184467135309201785751012410167870338195561115259612163247619643370573598634114350746649909425180111584654609218605823686215806873126635198395534489338033377417342503309973574901259931828940348918878031390046280774370713749413441136860787889381899541519740051743170997755376463748917077292730187517815976785552026535562628302414797148044995441557197633269801610598760504047289796939083347082504280047129945976279714453366041476147832882515652366828476027083231243937282122159799188304994482042100812646737465534667829475211420400446550761041609745211627738727220057062121080697230334333447428823571232140767967110143397597029658819637467828441892419373634092236133256105554383203219034417512150496328320767923977262389192152800962149949067242206862642461808388767046858533780970377159210813552047497897344369448451255408372508595531773153989799069594500328270608057274204558180960973932455379798206961650899923358282997023620764907267514015809251613926501716398072895434681846980983940328890809644037326592615453148580948567824475654204375549499555973221474435260774573997324714143368805688254634454357854068536035227162904167759117694027126876291317113953270197865522183769803969289919369320805484571036071817802554484045542802544725776387542182068450161930497650092586586776750777662182065337812594598126747666728371337522593017021501570220418195325881891548811798609103654446171834825207021212207844414958872236794376295866277793919778599864469291291015760093963789019154168385236115839600093959453282622077166896897862035876064991123598275854741787320172631047421591309867433210641062565378353198280350943620573102526195706724256203416136199172274926044644818363356071910105761724743072792363333534140496968794360765859125022016389722638527139161488705170943650309121525453857141367428094490196900946882171986317960652779415024756220541042084047557607995135923067103155742408525817146135463253514843606498178480481119343736780186979583320315461074392463000982046616314668026567065656180393810935501109352021219396440592083734692843189160208538527409419136224687153511422550914066772233164634936501904436553301661743517388541087710840201959104476995757615371276899008049556577259487369211330340825369462424353733774818746680810550760756289295836733205240427608377904101033477502200510194697758448683095611860866380929705158222805777481170351736465055420062532786047811032876174551553028986989189445998665772737757700974485789913296248826699112170267591400394743735992014812665516933294346371338189226750173995520673613151956753290220087489875259304786556454845820237392021109871826495436125697609663992639730089388157921267002645320360129431498497101427805785097010250164936965703745088207234913315987032845793870509672814839591020132831110086355419506312533660120935351348820725997600834403066852192691760879731488238263809099348149456816550971066490406628139029431444602582903456244730625826884519163877655542246026877990790471889725907414479914511828568718141769719590794073621708741419859589836401398703434413541771374467198392014951207351763245505849714123744207605470806274116695161274446820827198275543552960016127235587600446539290198474261808058644843517841224387019439182456631926051668524777665372342798487854417522277332155126654259439140580470512677767685065283450532312735065172741604747718212750401740261513798530596042914692612390896061926930790612868337623378865170147761837979710466465086344999380587433570101567152575528078922626827196266361139372438648915244184171531008147644282941074536877589078171550161519926585318076397422710746722077814286382252005298747917718593734434105503050277670717460099727792911552859331532185045617684345403491217617727375027889394109401039767975173700977035572937057389508735309837796729954808947455793771781395130230456314062203567216000112528797663194625320191179932037423069616534841958523289992691877046700258918936541985598039258036854142489520637694165596954537491138504282568515491232337327194014941758324362904208218192628361696755706981360259096796995604872879679062360298831094632713040586352266329475710146668920810032164123753175316957805365908189791405458175416618729879791402254686024537303445342236038605416012964025809826186674165970913873422681512448629683666028035039667611101722718289481259296513292008591678219578022012349608152798118350451823503977601979150273874224520556798213426554555397008590463793149870133676766679198578920912933692395062856269555897014228416748678404273475613602570290362156074450782244271626219355000937506586325316971024227769627594366429180267796361350741301495895194803978697819348547657041850232585866279626430231222214240388601880032264110848925943296150280396691064753577725750705063044715938126255034840804077257059183782724331131272493867364183015500235619729745820375452052066303333523294380920236897145174075566636143311979042408986249226949583085496496634440567072165494672394302227990886225316512395690481305518167893002624189357741375053344966851283000318631261891735049151176000339241074694405608755149418678178077062720609035443251393895695088722956572158050965229775624879746840824108960578975462083462674537373193407820194359338773606427598773591835015830986631368396574653912273554206364287336638910896644814612324954690668596455189065616159123980094052113707419321174148875631036337983373772655433495824893154306603780361059587821957092009986697844428578302126432781384617537968375607353495369736961386857092081773437016686866876311293021408224915475333809726433064798851469489470879767251821590220109558258491789860386209267089066723586884324238543668224608215731486320591345908779442843388238864232221338892618129266490330233039680609735039212882908061656360376013684290735998387781881884759866267023908299952267872476134437532687822295062793736992840455704793292710530611361184878837518897898675292467366139488584885415156039396007699705168972919529365647577367382945912581567027542291990489868758397671649690286538078222971498658644332742026675331370701466164888182788960307315768996918707347750197570570454438089591845952812014488700362963122022460118030261055534686672999246966619468226205240288774575657264115074738477386106064074846756493621769905564137375607120580758099582846687708694620695035246770958355596743841509190882485785913182368537720944980838358377392512304211704984237585088072690364043386030536662522206717248060780841714677066749730159217628677896082283014017611579456986969210245909739160079013491221318139933222312862748941891554124493723600140294398432292135811380063312033589824010498584905010072812120172422896433060070328610290644027917662369140288677090937670888105269082850683506839292063224719570008614868034699396366991110726481526298305282878349042081597832073954187313568346059699451570341532395236212056547102655796498016299157561368216713555383647609902653888664254179005977427827710056378462456406045014585382108215780813138138630558309593518266805286855989756756182060497553219786970078323464022323047853844556530810507296779001298144436414533700035876126359209187568719114792665439041696765201143271262460538463083579154254763282045470949594949758966597003238123670271391047473086956827496415925596945399247241502558616664128441442345625646148777834788043092300194837516742112456884432591668153607898406295539409124662585979626478211926132306941451541504282687174907783912619626562380590909639532074295484884490762394212614446354905891759970669577700867486379762108028432668081491808645877854077916162186196407997627295500092900817558117986917267456171489797206409204931019362569128408409586517072189971388443507156165825108632553449094061643058296167916240083616496793299196236850775259322455447867227552528788558747432966139202357795102782841510841018277185865416154185478166866104518694134091700865575998156714769697112154067872806283745480689716204375741219376718899043821350105418769654970561972847147819958970578432703796650333540795558851182411831257583973373054176626960483419335915564656775412685520986425522744935557468332924010128585200577700983568517458942034228233466989863824966348228936821499737849260284313893324337936713450642010919781189779328642518082639166388899022827916939825189184551174840078076023252797945392437778676032336506846199946003728227341757598056936698611373207882261796303522862335452945792559802105883315293906871037142164917425102166581736155270497122822998265941076166053671304951300414730608948242761232428950296633467089644305616429542950282017847667996290097927976199752418080224645685549314197362210296744308312888819709142342738831156164014399200171771334291004254362658604773184258212746992036180179836337473154371956285644761684078132692178728826722323202476256640637649735438267212062443073468655658562396579950476331209825302122246502904595830812422529301484877095314021512244770255082021529048915007041297430111839987367192246348733157839443269690308422292812010182017889043930565012083465708325005257990161473627467491340300101883690368109055601074594454755606383512692488358155751083622213581131937528728763394086890878452123875489330384371608077182262498010873512008883992220758925802697948423149747531386363793907368438409105475024099752264317365309141943385399950039342853436037732466327185486500816171478619459327357767150966129851850597882371786124130285382490930380395936075225792583412482789457236982723132266149470049182539443843114614429544506945876536678008574178832819987839623725403000986919312504685870445767978380851892128354968000314828291381476359834582721057147083762923263191932784783752665899460763309008300395440901034663111299104769479358890133564897938965209299493266322219285126902447229330155010475309304394778518526229709807554005284376338932745772316395915019837927178816424186722941579290803191201099935410228175664286948203311360410810361817594488704224222240959976547200943653543420782025344020523693776116399879685991493921388286171801331505468504839232178591771785857668670090808433335258426081389622750363440225778434743933847937714454216354563454105568858830645991277816374585445384713781473653614841558269569406266146825116629911264395650128276289623425404700588992836333560793537079319138321232403404192295346345830407281707510314071703199450121361628709921455796118520860397309583086010356056491294896098226621392223022356844719407961383877459266410541551894792092797111690594985008342512066840963132396767754259961678643097446477858418938717594488860100084086666091900458973861110601056529627276907079086345410709209908069549547141371337526302598227985655397725047908494660315453398823018267659769992393186110768853751186706312648233040158158665116208364700208401546877822271211743378672914389891867876409276711396109841097791845613662423601837889687959859329236517784246900770340448262866677175678794026011975947018903340881580681055300116777950067224807311071370232840829837900823828455203421837062874951640732652961424686684174283959283076641651481595838566233816271883945271663022686670240579738741032841236072669602084420298165803835931006307320931995872912977044471426737085130770624887032168370811266870846488961579802791687041505043252665414605286324599787257551842607575157471687753944138085085735876228613547931130097849037851402741449120271152962766858685479938814215586608878341600028720094277975767786849378303006101358480300702695864414359080787089452980456564174845984515754582835317453490616481866618844301374063877184389121535268799660305998445881660561237595627071554111294878612781370040768439830607309881269209739708173944021195565724387898880062604024463178925779158771682523867447484411176105412485433620812290555005854639559087842826054447928706230587936852927359277341318074951422652606959228916954374444168616126552099424636071467664115623343462853038116285533312818620578238414880486359594132238646429071770035607743867942835444572091970291262659414828677090758238803706247662564733015323943071821123737388388895960023856453922276201167452020843063114049247636742597186490972115896608669802197768683445412988100115777851501170828404513695502225779343150463155907046384904840510056932901029043606968036427273516963836245770816408161399432621623748059598833390421178699847529562380034590344005267363310825976560562092507454889283685415972515716678502985664028904677187733791162139568069096912275364275482333555219039579608922472760714722138969019962777973320328387868315610105257644842225638259002222447187153454229459302424109452807805480871113647682708542438288289865531712210295979690105855828313097373171149141919412939356159778175602214645976438909200537134491517312658677471104637551786346131403309397339473352694488552298054603539411806160521263191885340206979108483365191898000265710717698983221032486749253279723819600024359240305992858691420317483295012933141767894097144386610970396671151537869053917349212433153502055496664777423216220791812174283024755699477095725619330453673199717949408661099962257927518815820043286237545400097270771994934709583671845360592832785872750934055993946965611469333663226708827296472317119595671288422761321709177861116144090130894969740472393734428512167513464420488681073047702585858499562948686384996459638444079032884458566670282355901292518237311430080445619518443190399168905665046523676950957682093501270363447309113977420243345180032001705924076962757784316195327491050609158064089432283946550840343799862285080393657952548500092601375962781370416913968999930530814235646254035722776521466472073229086483203944461574463219755812659300467381126807128287843835421850148517000450500111663202877379192969240983661140620499623729204055784104021862172858709189675078240100718879246972446175489533675709220948217998495579433846507861632048474965510317392103098316691209942417065378051893180998695497772005695651988240428635015375100059352803312620918808289870882342653602305000532622414622954177183891446475590841974311247953110532793536361016492030034790253289410730318779436249952585031834387542389786921319228062993987881823081703011665696182529938820420596126396347722198564924529385692953137569019093064912740668944583284897976970962305299172337518705851603850528545327974876199279846196060125247562279773002073008510319263776134445160507670146515414253263858661230415848616317335509006507475882909459884776392856274647174484651780905127517481357675272522313410804453484978325061992317360314760754700316874692175265128780279217821346064184811247152059901160042627475939911745636973457840190240001209922623434079854894923662607487889529157892599127914244794721836371038312788382784240158123337599294618099670616525345295944267417568592399874289382422389129251213387410404001589119226421591490970305988716769699024571081646819486837776695332372596463794820728930684805848281915482006732537980084718050906355856210801393192756360470914079237685306799444034071471426292409348858018875468545859532627201578585456644756884414389696804523320752799433245727250532020070266048996695810669686037710659886726260924043309763508907326507389239868649977903068871402601828305277429565120814721646719295732649024873861861918511924596405800652152015947644586267494317976020140628530772939963733212734465227710301432041070053040013203311297727322033351766737150629552649785622092889930948137095738861040767458962736970798140613549603201738461864461844373590287238905810219974283312529707272958572281760816866476957524902405810037134400649431047649630257511876301193804310326209817882103673825431115296047205382479862520015337381795203149069141291317455473696320201307898663412839500445607007842098151707386550244015188352661276586455191190340672877858515013745820500579855206450458390158112230627718507265254276283303641452358678333910783338367726517518040107455341336066797285595537186393397890147047142191575516825394035603895058078543432587321641908683775558946373729211883513421993094134611621536745476274972335268510897986140344155654458572888740486722016956760915547981777544711658925444031845430478605329811895960623723128326805279415301859815834359687379517484397712578625415822295104105587654501738274474722288775603783049473811024031084371674808096281331856990764250045840156664143570391136408593260092163931535955626095040693871489587416688896283182247226478588726277650212209975108643701369338897026989975064486987848969077127481897956542462377471671347503185900357032180394440883961014895199445860303768882551430729156989596075359180397318897761794811842799402417848278082464579131799677271364573798399481424485257851664754366451513534477609037432619723157023892716833945193032958910549369247938788114956980910312349997918926200432233262375965363111332027232085336680266633923381934416675008710253692636199349609070585891790294753673480073554741754887042181601093083817986868850319631425065260966927789815325549211636073941279966427104208906197633331839279016530145771474193183254137578795156457865259719406098843470993929674231364840825841296980087391529995246277660194644139053196842021368976607567870782342855267657019827398889804468042449322020671497717916275707317492350016259330072469276484139880045679383166898390813265363336614246983625279364719357807573210432056073701250455277009557493392515264007484125342968301449276115931914863798795744091858775660029569144582248933198784470769281590412699308568400854980957524352716227810914797414082318451897598405198165139916015213843881003550561280349289927457653121101721136635499665035345071308025224871304358276607018447879428122455162258929505256603661489719475039511127765166120430511681078059554799094595628735890982808894397392412348749358327233894200529530515638612934295722964660130644139611696097816840902541371662850770893182482419491775948933583310061556904572550412202711609785358838860358335373120443958553825406939854720767448157826826103099742980527623788894940401006816901520973562589240897427053232552664557074293013425577798292565921757063635986152552321587719457954908635988942442519168428384040297794754380034474587611707927651316106940658635402565768681811696309374275802027997449071273591175438064545816704216971746508337812465921071068660471891965840599478004405998021115340706706781598885988570260567663615666761165995793674327636304129476842108018650335868891447025065923338515667121108032079707535488420169818464660068818633726384088297081121208382351750360008749101768202428813544561682692337417313820797476738938301407265134912587083469761368621928564304786484511082734670413918801502566167310740251362807417941643277721455489573925035965177058411872036258153746226141293673438492611529820050932485088245072612650704210369506887147760586648661421234567018798686751909768019001400455542731854817235725132790926745691517051873714394893329025083332321414095143452686229864115702514153376709316750126163145031191029211654513915749239045993336819622353879156113989239767130635358170557659775841046169054646673191370635425159469360274258490520464453569828043000095967893919665869095202477029201416535662654856847893190804884030413901892777272917922795139408037929780753553378904989859534072132816296404461033828194970510413349604238530800300691123778383167217131743204578600069650695364735923969323784569939259029701546184682652976882390052264698105392969272701596195788161331840478744378656207882658938634602355108340126018549181475409015955769523228454431319052364879808819956748867647151641883347017603869060034196432289620219823204251202950542306743036103094595352047183960867439958709828859254425709107351790819268033537703378820730622045833574468983533151629785402608271499761893915901291996661377029993855618083839657911065192835140874570627768703416352416391295972121805259745800808781552588257688936934464292930484551840962691896170204415929121722775844182920456764905799103530593211311901032636457786276467450458904244371782084467276226741387729435399151376631472936453323606641094323162204400912236714484571250021318277453379135570886328117380743941557219345286607427502456312821024597687975641039939488410743613320756627865222922138053500724484775337127045543169381511971247111151007079283433221564910845018890232065423030155937607293324831751375682995748517189726358404291929675786882995399962087632399265085855912629969457343026460902044030632640716953160221212589405654112140425755480629086836752194285297511802884687505596916872747291035448300178904533265380059191430769490405491697051070949134581866920028827362068697462457569371165500867273762026204587928490998489729037135373573764646960173420607853074574989172182765848611440061804707074654157171135992614155011994739883327887266587888623989844973517780739024366658374485922086953669797413102019549435082109531001488413736382339733228877412230470523243781659369251988021497498898161983500016931713658169168639174634614837166923997363964822334004414017275824624719136275808577524269803618657422248908773151680540557894267269517605777033075495783211817573283155949932030978400416742967018446316965036397414333831129616727333496786265561248766423607601639971781882709811594394805504993751437922448713939600566694317316002641838872317328461002192407018445065430436728688290411159370073624317829537282719274318931496473433351210047103514438014799572980005146025642209371573351169187738784856432866832035203702194900670017641414027973367490212103047749127752851218385775677235651772682087848589141350745201152652633791245921858194876118309016351903353734093381331547920494712416064941212671958308848939490735505638233562804128695909519218484457996452151966796814633986061254987747840728491070041885496436702844456931832902838593830144589514043806565017206758542179362461299495481816851194941043851080494225657105894778388965967557051157865544938977490005452341689755490607672356506979803229635817741013623596568832979408166914438137185879481055598489886485149124138159871084548627253425693863670785503673686877532526402196980051881147868545587106619053975722180933790712935065429053777788765980772475794360509342522477414284012195748132081840188618743388865163922770054743556758045337256931024667571050471294546779806590848404037458578105967212546474196997560176418370167099388031823938399922091138472359570969763297797219822313483506663008068422374886376481356372935784450931636587830597230662732427437209935196579365312626468096153501586430931001992828975268016125527798141957107392595939623840020306364672576254948501451049056064208962060917869270614519665870949200447199255317190772762869313021976659974701309577190936054295831267292246346457582636222941844800282408129509892814793951007959434580323617299338492419266652376093149821092565993435979229326324439419555374199146026856856063389220333782022239448858893241009245884524863908141281654219576816411845095675251895626728437591178656021130658265795942261813762803699798114686899694359665133105246738079569713137150799850026902912239704051479371747702365435941684267494842436872135213545107268426933148559834501721747219801318624404338405335471710438032214834208349995003832995858705785698399648896581774419408052193452364609908231891034082664070136243282062278608562389043232641271251935266959836385703615160445082037325116176410692618895972674703275085573651415648896918958687300711144046632430964310943679890329224994459884660272132672070814676077461098084650059998295558260186748113827589849162932399873312370079973755764090130456510911133874151769893894178482810119947809908985172622021743538179787155209035248037091440533234601819420781263263341039146280516753589962921193409022774507176091264688768379602395557264129259806515847491338606882255244400034818469537896955320969669643492115248297143857360471122572165017489417905275503329291040825470999594705974573337423342973488475045215277720978243763942343684388843698887761309906351301142758284313464690281188378584131414168262544526958218839132539994485417713419888473114221832945034166314905167266998971317143377918458105364953565134940573146318956943985976026937859302592607654293649170673276206561832985943752426709100680147199299891164963665514440660905698930981643402878314234211703385120428273043470874899538680737825091868400725692668827745843955146800788813085227785710078540027845177122600833994691870410304850456175474566993422467793152466157205245805415698757228779638125595195645622183481183917137785356343354765965696808933931555762991730487673774221354483484537083752425378289513789161845495811725330585427308699424610615787971361085084961114081092341296149034172675501829226119955573758096597400464018228985669339456249011152869833595408984627813622796906037536387300064704124779342116850241893196322662291646058994925854324067914448733448354973382631347813790262804061145596774692804562161510767070949419364482030482166554141265143719098215013723303004799981939855904890720013561617782223257812612315739827287901367357719835632248058219283228748510215145633686581756256218833434211342220014783137380981781772433323935273759164442489968213707141521980903468115898623585031541898601104889984132612654585308041704319875924600216582786268865754572378266175408685071531548408327639473783235895087571469313188021776188570764307136452779153294482907350554689459185341401166434614215737030229186956262945726455921034130505593117884416982426713627037844737020589132993326112464229147158512836625212926299352857226554647060271452455670696811096083793391662755040276868410662841777764207001755474431934141815305780154363782789838839912382882519802449602273798513982900553074543559398101281151639214398949733128380435225037424169981106174835158511385162225491816249931319282892448687410021134462418926554572101139464578422471696738928056292909958999574118108178379612469209671954607798361849947771574864817166382703665530583989042071622199789196863503847594574307287645263312141786264257709572937252596081430403616370499448200970683996658023685940008282456811458865454726604940862121598962924381943824851141210178130899667048665302202443376789089230241401214367458039927711204812639045308616482244706531416899048288984611727776671495853853688601000972968009697092211392108824229300282128272281902921643224164583675047547496938191052127854924069096109519535465908743728716286758012085792909015989271141861645004011798596964226870141562866902349865587887253068306802688812216952185977489887943368913728495198405745614384846805592330127885585873993706358448163442400524074563888932916360985073385479260258554497182044417801159589214856539981811014100959704806104238528922062159836015407327329576806935180607716304842591925995852134671001947773816746997940560025119929613118667464907123855541723351554680594630835863391989955032662559830529047330363300467342817098413888447044132929208879207347522790983343650865608815476418310238760186699390383399348279067958294153268276893233997902680648777337988359452147239616504168397121142364544948870890410181174556751942141896260999194165717619390489297327954499993358325803346744891104974859210989611283844591654515839916512481272648399903655550078047045322416737712201895766428195611936399398027243871117907000824180532281925627305069511241380103810710613248169635960671100071434850453801387543654196892596683862357566562386748635836691596846617531760553015945765523758303863269349547862450503594078119015332765303902615513137039392513469491401474724933135247761673058930591110404875270312893322358945179222222814918891233761399274263092383467576386419067056115224053858136320499564355636745159196128769381337453174938318905614318928586695887465133000259392782899677154741130222919450695719286932645625849047867672331665657209034927095107108140400264119241505282837999989321848202593711078255883573789735674372724427005011760013266626214925128954740464774978440327977390676572685187031820801550902157245949450097672514013425318069450620019082687661173524072518798569364776167159150526830570109102026458191130805446960489138511820143081741703871312846022548624085894531619214844184312699306139011537133894941112580314041713762841265115180299974630610719402619698557607637535004148690091212706953884892356881925740541518995289402475657251728113162358741984142407062241259418509173953186521624762665260433961658325510476482765752523098632108910273977435027534040820389968082525763455116153343944837813538314980494034927178424916574048814538202326924871423267262097289329034090239750287992301096085948483657710419978402824785992992184566385896764113504365533152283324846578948679939647669187296954453296883002327742997417736930458292777368691366661747423480674876388006917920429802015689263606057586031036425227158263718111420857461319784731806986267035013447022663861770096786719079043206008285902658984429978600880133274630366098918470861931715912530420784606854415421807956037350576870027482459381189877601585057288954719360110816216060327166439256197832044157136653211548296510381879470708250743119953236088406029346751010784114882184556656882089207402765689610329824947217781199571522882165510376678175863827901444142665575317302495811763208026076031897650326915103932848114853172069172352885681607643225129337469991022857890503315706760537606060831905916492681901892367572891560092553056667213151356080966977440073847003088660442357366811831001232098244720440677466656207037810392706561608378350529602276721408938910641560491634207890770720215080868899281504651586223441829253751990667723024211503106379771932745888601611164480871866400142846566690540911481006856549647931001949679049990555453801253786209204722622278701133717726126630849935118639686715983838335744817142678079655109343275782011054657759242967912570301138296598328880498621244192374906241265716570868384221033322134182500213970771082335590694599153352844128437848394180576230911357783371395874813098912929622100132151666545504866568851648547088988620470698575607303480912696555401904567376430573691106515327833279494541208203353768539279408285471176974766021470479184135751367244159671863181572249032537955572291773274169874073928564705904670219270946423300618675959411137449978435646557766639606193581133323231925224834823511354794175647557806764312922217256931458430453436610739728002037299271952263516209135780472558954468393553649871081958053090720630340550819185311658383059388820226721051519469122213875124434266408855005744966165476470850490316545160105367696588083277421482648371961184647491287041431553058751204220341769950297940377136857981572655594540895582011157799466963842580223299787292905541329843658586939363270428190162051760490303153984262973766433905741424617808067699699376377828047023007875873588278792300746209932042301766801855033878871064453959762819122582440299285088007361624531860280133941088285206324574610373521179261384896450579569815049696868362193243345910056740898373317636093851697235360325693336351932367259552318116000716712875620512852817023095754461093347297137969041390148695542760036666649357021151944136302892436098114470621817795103650104715322959311458752286009344940306102846117611347937749603149638547002382209289737314906634125168877883554846939819464899790845161174959892244624972776405338082645886751222871971842482624651835233362110017757935063634821425432571114986620332859949992356428332054769261000217451736900761552560937488437190487449284599749377874176958815250141001567266364529693264970852719419596221905338768119417930462887970392791507209130183452283098965648006259155538570388388697947876518178528750470036060160893243643264560741515939942075249207451882809180510000019428617427572651130021697149097434235286138576600889299432754408671958595029274774757868123842086318959737023433121367194695025904556920068226943785762809748649542172513976053305524100019213235400852835604314847964233195503193213605319436676084221584464795586653141168893855116947986050667082915137743942507739707942042730519025577704425443091294751518972213369059317030980163551297849812210070683360757148997590914554258904640002014821133200716096323599709377551891003371392481897568489851842702463941218573805967783943751213903782525646081566282468599890110207848161894768187662731317201338491352579842271397454390892703955124375985644463399115049470737148530525072108548636569661733573880899858174138001015566118138441110874106172500268646227021670317423803406917339837582539787104927025381242203941867480878956223957145064423705103936533321840522602478880558366803716468821585845852907116264125117330134858732407286082715455543663617891148686007183149970114812007700092942515302705409688836248158869510563804872239517585739015335182058215176241384704030662102640229330119224333120376494658870483134805611324296725974182653641118099643540407695836872079320460366733699943401159273339436932664696161802693996290298497620661749433535533358813895934190064301749171889816332790328325176077656582828353551655962979541763480871474263409659911175810941688800080789733944317229533198633802861853147567993880248082102867304129076545106798024461028243168815671554361012920354683961201162292721599334910460080342997504019696864727295866771067527200705721124743180780981505641038016683627433080455781338140509572826193411363830178831028714116431219107026731288706923741565970783447361170864253434040683475622314018853989975466844453773468235195446126961288375028577115877159366088783484961175236274920714897881177399197421590559431524142922179310535004828924149191175063311932817481688217446110700033510316793113232422117995025143113410283446806716813542285155350016924411273942105664581137130528518779850033571692049762136084150667340131921216039482731159917121088747987300201743592548135913556016729467138451476060909140666638746076328866162680037650726453416487140674062821898242539740450219517470995667071142149555501851004029870533662601717185350786796799319136803420181085899210718665996177636328889934888172389105810947781695834160356795972134175773632533717651783625200679839175645083785793014077643040173432093847786243499026378071865988458647803137206912755496946361470667975164324395387839860894461439357598191946278215105183602500123092970314659987713680947203111166331555894448161961744338446205514731147530781343536555006663746494388249040790753192218063910277779486887982996960049461100326528252204866016742170975443578640265527910531384722048388179633555988363293076145963780453916779360823087269875086612288500546882341649169473008420683242448666731714975129381627166518223736434932389492217408127574151947772636868342149011387139241043147687601035569618428256974934566228680761063305454561029599293938894321254177973811305900786687689075176312850383781719329795354943621161677654390005725047818578741987377257725923900047719099900154536513251410783033079280593155152945907141219843514454956168733575172963451444114783038947485874654220212613438356169706845556385635751698909317027047260451750394255631242919810025543589315122711243924318644273382708575623791524535707270814815324870300855558291067505052155041490575078807948989381001150935757461773060742843486618311293731163118509060219067749769167217482291310416793777290151308658771682743671840532614435659509119103405033615215790469243612612058234144203423048924770542389599749056716571278362864104156455788428959065608131829553256036258445434103412353710174963475476164559889851448992390644950364484123291568438566995145437608160915746401705348083310200223117805380638351761530343528229909186915140575078328311972928849496094194577902491717385654940688598773903278507148559041556325236598316456122941424503450802125698264104289355701419543660980972427573136443551024628148988195588405973418939701671611200545337052835716639567992482274062563776524065413217978837707602889696376507752638910804257114769037161659119933933116646289124341269841355076507515959880979556771295695746992037470788463050385839391149393241505830903469544595475374690636823424002136162755072552782568713400830674905544501899990503981355986826117656329523238402965892608589257076653991566165122061986501925988466343078266330172639085422243122654503711605720953823549729744260985853697281890137825541947019308686871266128038008369255010790628777007959808815671448135492474665871455505820804079199270918908147581077460852081927533117020910389117745140763191984737420779683980299803953961791406415745144395459878385516714675837513667738015745285675457932879380889444579247558379802346826767813125648960507972117013030674731128911809236487207428140392291866977000274978035518721139993536798696324056432393975567883564132352464853571948026328441610722979123283764480881355189127042753923910138966862207803527501359084862355132247855703227940347273880966743806146647970393882957208908979125264316092104879954935219499206204254851939249262684818510968169513151171069062935579449168412308126732551773014457850891883160725941730497198398079766512147381469783684267660439801233025601029728191725065371491119567377604644539800811663267039298471951502527398510101542473108425542183745481147240870262142378282916539448727014692216400267751814309312636714274832700882006219432968236623685430626708967289478346379691759662030941286590590684997260326132528758577316211032761280979329614101355637439669669699410560129610262855083272940593371421600056656931417200246313280039861613679523215494631935534905083886165396198889505423380286556627673980005875897967531568485618881504858254488738645361849700513401809522638468391398654553419002615386009715836146026354255365899237925599966201555183990366321189794408977479018095176119698045422315769808882597124598784388867862052039387608144542316691075302846481816064525813162315577284778204373212021236049648177987360398846787914691830586455871367397052620061129096051118774021338502950123250220018589569263228775666922645383051739297363176504225180394309285851287751805595201756551305162185678640297637951649731322777283697262240220881052337723804238796576930700297035842196777699022113633612267564977345134996873779598480956788902114997035756121063976347267928370619782224143913209807909365288562243710301153752053498008353075743133820922971977408914916364974228846971859648849325292808442704640063218274267531938853792832052367273178654686002951891696609532058789552187506700839331303748453380525061965661883710063123990630740725471014914009759008220451184495076651966531882619107584946809162924624829592621909388963380177655473929937899598156931832933454232774200292413873520888475746103932572360524947156992286634312950199139439821683462122665027343950002487139864912706240488222032384847422323248163433158225807704544612252963686286647749182218012137089471920130320646822330509294623259935782020214784688448687774097047974580867994139202727157050540504364039368995257080287912840019690690573465994400331857434328707242478405905475811241634851803433180056606867948906716379680323464640167653567773723188309289447330012716262365938234996497046772281875040463942086359622841678508976389488477985497889489379733974315344477601521836350339731640595123735725475818758981488093233720765143463813225106875490902548317233411188916397408673779437246233874555483405842186486318840993535965023524969258152260464516502587228376000334655919540980439016796646882052163509466048145170683996522036008176797445920701519970599018335386678317157584374587441121805762218160674175803233688243638690942089472731244515292300107841078200488905633153978519408178011669786036157349704500407484575687778304620172124150406163032729556926089580350510423404727068717265703172543909005535943291122590649076023351138467633657218941056141071993723746491700673601745965261673299587346765798358345717514309214595943815639891126688769661465300557109627753071311380012416893665875045851006106043629222875094033310131765022961217921418247157298337323865702483552283809762182221122142765058043488760384122469867588137061651916100753029218083368667859340657743418342949461363496316063315797673304718972782328263244812323870027473972019047836091644795034269980647856663596510394729636165243580166955428087334186655594490233425285479760675852306593106884479039649197205291127328919607380804554181862752261223471138409326248851901498753940032139694693776068160553917681608960412862854470352301904005729495602970374339228343292945245434124662741056500331841023504094379079108206305587457960621054854966504288925155124651084659296833654099773910502986299906637433933155053612671104097200533912527576583179341769751346121138576871688669647115086011617567873594329063581000676579565411263959318985396517197035852653067522221692924744076506112679638210397245883543083358908782598172472175007987764827124755324639981626510310158145132309160685011121488773617612387094559527431963795951404736557838790546119637410407965059174879429396964493294018850930020104708557446233508017166527280717563987465804868031737599393636213606631580056215790384094185173216429213194542560786865451025661256064414601984702723971795873399710923600283375140714303960638727043138326263514361662800661721240606930558672180226361509176735615273752751593745767423551764671975941575820586221714408722208691606043602485176998822823211175742471222310591928172911243893231174350364421926855108108171108414663467475945849450180687343967175552134374704812744286434132348075888780885152573343846043738128386500696118372180384203372567837315375865213697770836141281756836926291686538596685717654090217938625632288371688005608848144049252907198427307237469418420071114063019524797443205441429123391833938704464424526279045401277748838069500068447453113324830325189500985939629748504785733602120698694650236421449430514643714736837024974708914901634280471884564651041695289562501707264391233726220674588807523567677921891414862194810593146933692873245810615541263134762159424024228437755116824040438891776689149686829806751947899160849609316701173913994103699658063648990968601850944636155826617574464052908831990415676991266663643740833113314376736042265857581984076626808096450482838046994199417890436283079158915243248904386094282748676140194889873570240420351169885162909840187221256026201434250933487855317016463893643106578935156468217143772840114257972550820007805438444606298927749511803738955068273169899875727287844371082726576605491370798676960012037430719286433110290144260047090075655177870637099252644497822158500358202476596019914683326921190615868686243584045881634593904197734859480313774197918282762798708057158896059744594324802033278224102432060078599061161303571204178631250168467945487799407943077548996451356122910807377614101643250211963276186354257136290026969163542207233096635954117009465107141384920971354550232540916617565179388792323219845559438645954052247714745840061354733721849341060357767622808155802835720261988375419235517368904941606250000656502189556209725647503852494072566913579764215946082075059280761897928354583768328085873742520585863131259762124553387284582834319844554641240714290246182172229933712687459201125835142258268027119296260191556451961799975952219677087071213471105678767822779719698858638282780149928402716698656806379043201335679782344920699988212418925265113341795269495473012256050680467556772835806637323402114483543555225480781343428485117087353856269153051431816042453893234074363462165713052560448453030725525559024736617998827579136002537940015127525940113573204586483522347522512705864531869111223600736732194350908973849802738604260879869037102696752535388152764778916713479835167311518527570960777538629436136558278527073746212086902345454178341509730426645973092642591761165930937890991975908846036892034222878308817152339638098741475912177118239929201959473777586148611667482961411514932327840097430737691817277728756325480089865331157959106560189372949209658851367691196498786137220153580985151922500645819307925387850362699587398653820489817316434347023918346978289115324748292253424761071672454091196998622731666409828231113362681992693783194033438949828588174749266468124885779220409834601601086767489784207357736840790770693426421331298307682911876071541500026878988483405015628345605295694896023734848736966107664579005596667771300066429770509051805250447237646508883303241190156048444613060860157590729035279682801542498553109703052013687320118746566870379820317821761074977955280151160597450313747712514922933474162300690618036209177871751375211399142714617732788163343205714287935624507362182918181226903916652941812831188544099137881256738594207441802666530434730142607863130187090464515014665827360638010200079004268275561377677851866722919627301033032302239309724306575879974366398555015819597352277836734935299051576885541518687126394239259105006081419722031996116020918550771000971601669834054113348635361603585041909865621347173951882174645077832085497791330253587839471354365030249257596966741693470251151231865918037685282328111053082934171086256986673376628745614448574860672323371658826565906297731164567494405371680910439155572812920962104109765632349777126224590937040396306048789238542134799890387968630229692944482342572037455114524395737213178454991261559992314169072432644893133494102986609466107937657278412070981727071948945882947656486630054413917106334011228194145968548170229209568310897682602986903940123293345098710948005566447907314624322252925150246474915619795176544502787758036021108688920835732732635791382070535375243055255983905712286013868513563116710849882653706931872228660211168350540741174266748852251829798204698278604534249204269361442056935243404832182942761990167749703744566729394905821887271333032371215635580892033520599517696713303013093650001480941164920904921443730729398738095556712340354929420249688440925883748240088565480074869750072517939799208896021141613081539751902125312166261693883942804985664810053552115680647471329172201525288346467301178303600051167741335451142897793085868633324394095182800874957481070862543680067202350134330875750635046841819899666789222431652566617857950309571345375469357210657660758016248196930342116887952005013211145911361156947921217046617839942018686132993055817461543176175017725218561139044903961431349664342071405234945724044787973542443517199630693638769077161957485475369084074658095286840678190570637771996797688577216003723026452892315068642869808517368404242960247297741865346378822088922867641438215638981179454633726389232647869899784640444949680203921999839820020251872929690392443788103858628468975800446401705915515569676800984497332616271834803567112847103402221902240514543035074152991074810001062694946030380530332423670596815631517161970050147620258907358970909979831178963654055959256090581263025906020365993774708522548927252525105292548094131602068897290133029105335614973115048945511956962758228754416962161608581180795659365604157597408501569446836730285460509240792336074830903460697006352415780311193288395059697990516479989158376149972343194784503769311568691712584113331711120247440027620279549558401723745072770596181651193233791614805166651697009144170629235268677109556810363918633379024629526538068848738369853953865034496242115055913138940408417375523579382374032968679481017728785447496888400201832038145090248694937590092585163179472214910307720876936994694786344097965124962524761998989113281728675028590861972899600901609936688003698200030166651610194576532349942249181461396017214470583994524532349315430230776067118018999151299554539576214138589119742996591515613456867146967474537463940853777387078361216762688173024181895421393964708676389102409530795457658100095893482363347457715693203004435018146577225746397019424447397627287933807941913532361584504042325490398020880599997766446868282520620537621496400119538716596127371232716099102732775155568684401950378045429630105262328848458623122585478938541155556721080249155448843116789207805866061750566307184949210803444137127960726271471838054760432469398804467066674263730126993744948176805365998033628528360992904206496784733847954704828776840336927190391736975306358039509454361818633177946241621854543943966195373133356086598769509113418961677947514342097156362491699573119300331782901394139769212513757187597891332867035492115498718676771160486154934072507427536593614393471116663123767944886070450784486517549818508714824691819377105893654374020591108729536992284263970363328388385838208654999681621070364837976485883108483747079595154505142536429989936332463739861521716273785310842216167250382506158365419383583395764958453841984373394977492025903918094286884948697323291865821753684843860761394113719191341363306137916232022650393283439211612589958947798826687824278948335761987227380422541837793734279498075244842628799458237089066283371131684105972287719764936369831869615733787275042802176925787200294386636979927138088711539256508119918205955607355536064153823592951632378483475625810966170722044271144900833874634715317666867108377175493784855428503579168356358578892252954615309145184112892823213541689162912141768757036790920105125053649548554537208747030539605194398832358441348746234977175038620824872688730219782408394164344111813985857440387441049212596623770745553293832580507652398256828392374776244606377306520313926292497338510179805385426034856922086272429016406549872596885831398549434354200602275562211429571590488723776627331054277941627228751453109537858247716954685866901464555408145650183365723646498924673679532103490353544103339624841420069377300650280268340485178995974195287333962852391234915881976121621200733781979547252298230132971880360829977199826764244590444395933820301236030166053941319129020278625750657929012442748263397996965244403493995290169140516014474349842401916352061037695758898629211507158988152424223475258914766931735411993272095299323542323633295673160465282818780208095900587813332338806493564398546568319601703655294162363462500775867419494910788171432556203682247393828494350974841963759995525428955073592979782078152651874313219820238567908919605505346883753865035639296073571754952881635938331753600999791860347617705680983811288581272277628435472295274067191841493988906621425177808600023190653428544071597232393260314367358726900399499571504160806466440245076595805313123730512526777226590560205501462931138315105172640313624539027734876283856522114384014181316060957750209432971617831587457760947990844479646419872006908170476740045206473649382339917125803901422201905435177483285774375778561612595878320636078623308301732605805409901195979793744612420199236010178743482313630404507302935315520676506122714265251994749121011633556226836444720191931568243277172911206573664626794499883478017723915478628578024390616341643679129595579057104687358095938462123271116253148600827802770953618431428541345899705630103247916511841848872094206378803071592136649497125914632221316013344979039535849734869962234089031960426313661078298123986811481474451500990827713433295289978955495948003414892065110365940058323675415219173895857719284126797077622613811743735414773294265882999673119538111804713925367137160115956455568323908363763870980658544693925262122344582009708898642475484004021510561880150035114722813715877036408564239352612041236599395759718715190349856982267164390627145637274116144455220216099400592371816639062310827720012276976276107867642584785643131925577212527581801126130513184793642347433777706630302107546662320020266443483341558161405244684770120155089419492565668877770800562653445442447744042581644763109273505710143770708763203437293220020593130450678288026306124917025495191952510170521598273887931583643392582528986631716973784324948986641228495302240029798662291476687612498772049207374178479574519940107676124736148432395189017335179735027295745914380902116915842281102541617868911242263328274992290756207946426770465518033753017490087425614427223712327544551713448988400611004534200878482855577463302196668729552251722805559177346184939701446078065735236340438053351323508253598421114935530560878638434711073268468060112970629573268990616219728398384625000837592708624241086366604728837397950314459046289898591151018917447654284778813532442312647037481792113785321365358709213322677302606209290407193762905770575566217953766034980541006010452445469830083522364793182539107012949286396298734967617500822522477224457472660511615639735033067816607891918052559687384269866100799289499899194215441863118563933109734510378696562156356028563729783227867162482042941647028707251907514557332079220595402890849646718469792619031672055811241199901235557562724743654597432083212077140017894070052971721212034284314231432738080519463581982059152580160677157847027936833000748677005081181044124968919947646457016204492577902496181268253856615727637745169975528811767347995359848339406561740997324295746979661387369881678627036502374147491301701645042011061195518103858973225150173806277220024379193614660926143741182105731885226474624842563072472533016989100143060307655520455894783816799150963586165299983731201524026214149365947127990185029044660494660878331332793921157093571527923505939816303727455967942156303217235233616041453401091935709731678537942817826740913887615208707397965061723988930915012881258408468097446982424513618622245110216968418957756515437043387096129797141045656918239754505940264633285492700974337617609631468361142093604740475796499669650845722685915107744913705182984002170160159653552636618805651085249572225920892866919869987614975201119149247524986818872267067696368448401093138667900265829963832638959189364803322930529262181589497579776304016851704104785567399719878798562840912717462570558890820314136315946564201657025202701931106441224261152698485080773460359284497279142453882614824558239650190834541400290156357138859162137927413911857582595003157372259473496284652294500916223336742302088402020258436400358039768642565956545704844906634918720033383935395208503240672719604461107494041740327427072523875654687708702689298062693920108823511534076353865720034747333265132430984179846755063027651300854673855892878951451642413350455892166306091385759938957046872493712387043008332539760901981407328510088031894959872156634093799940973008156023619496358135426682408260184557384290287638548108381534652872386850460309597460406435845936846037868439315624953354406567844557826122291376506009063136861651131626946938293334615778554728154490447600736850167718201413334429447560448716016734620958571043101396094801237125308822484920229465472229731530621754875894873172803082105220567875690712251405021309781582160565612105138337068618749059036994754926788815377606002719479949892001784586523728895572822774206643493920541840518297086854442685939467952152025530279468968860810525306415771589622405749147339751387911650474942251774845506197575322794882518273009784815896212277635042054849181342321239939865466615156572545678826710242016855219395055106356328193362182774371225104969875027186638859459200987163984891857752578184409504464970780484474082359259876465025861097741203667638299313109727963302132786592473015215583386652033192346749850744200447149917313766106125295218182977395733170077246187951341539199149609665943772046992734888390472695361894425850049837688041597735520729933736721581541720228263452330354865185084586163112188932523083002188812014115708878835548306522343088043221750579993661724868263920997178019200400060926129023664190535498038443401282438826049331591130528975973934313755974585624060834823806775815988649080947368302171057675869308732263342562509917675661670035534015922722404967189444584489802831313184797468572780583675285898123542421743976828058088526830048246215851453153729922167652866692641118904720665569501481826546487271317989632792693099625044942706727269110442467068591353617222006819089164565773932610896612313824148052416221824740239666932782377185734941361330026459776280789878995995904007963476766845109498138086711159182452892012252837351722457935725515415291066859086114470437694643864985119349033420537482017861769356597483467259298982591135829852227887728510436535642514623088062456714769180407296957457766830934636708943337069735017335286845432487725258228731942325807607769458324723715950601106430543831423466853602116791238574626193778321406254229118116449276427400800691351526680796911987209824116560714120904584333981479668288028736906016280632165989965677914537334665962694000238059944986624635278353764073283985851798095692775479890849006440837062289894009689860014416972274188095357364337072868868310250034366539273509881907020032932457129989604770922661387240389872890006938386635803930429534970412028256694924064391905458525206896358525792534726707923736867011842034111952905921513549939989421909274409586661349784629831189608995220441884902941249899590792559704202386993829203280923876834696642158013075926802281348678580261903673121654500789062986490012483605136397872550218715302170926236444525218243232895783618737073282665689051960023765423945162056489954882187253399486400270400597181548940743755768497407078746758112695455708999779790425812642503920341352403804952499581411618183943071219232684091388761785669341657323178350981228692377311330126311386447993579584881547540753097001537926691079246179032374580920632088247803385632555526640824682359702391895384163377325151245675952719066507639201746700385535128980060349898618272230898006603728654676565897216163858074507955426855523362893586045389466377188732293024249792832687313692717709403458555511020700582457638411165765856476139140735108723727813410788160561253921814164905667533783431284436530571285522117000858431422612516364762798167023145097205592599142279170776034867302084384810761391268619572364325376121197937726775990349993318072596530720976514738623360172496039838844414297136457388332473379236456022673353213889522054597279599123984035188005368513513940967332898424738130785136964599540537495973709792423380114692340133374019611504514874793552418828200310867840187748103174990883981833365958201771375883150171141878610540889986668495206557336946909702832187065267347061471900673475633006523525951829827294017286335582376983806424324109690413715815540172803178331908311106240230692033481043143547825304660094850166492654834036430625805384986986848052603966564147595259418652429207138289455684001114363293119588350365777002871406766951139490674655121626503995835069214850124242491187871649312038900207186327087468779414082554292937388915044969881609257394000749716422494723419344597568341096314545322773704179060048862514007153472777096091048140137062660330679487130383549056525243262735981282918451729266099207954558862394803870551657906176212022665108243719921666575107886894115602555944919829615800472282829313223759753851760916161502206533405270699360249745509276311043008681624302718462003347323360924851137981150310658613398510953092531355914490244248181190603967987918725352367043199572449644658750967432684118230223063390264033113455634654868000512536981455300901722152392379266424012154037108971841798491281588972852331508907277903514460489125535326791340738720975658668964905709684672295695451649703675138320586730604002562799397430801660634106949270422091859081487008534499680483667273903954679528748193115537225363533787628413677994050519260836143250302199372833547749541076736558857427683181601331227385082424927483358665829995633941736099577343762696569336813330433845967173416937990463949640785536390247819712944016845205052034699620650374627144252948623218866157737371556184091274456386114091223441589206196025594680284938052588885119031190377107135048535310672011108352569430305179643867527206275844253411555705113283046983561958743476277904460283437770426547873809049803250946249329666269209982297062862207445722097494625295717654474009843040272555856207086067196211119931653939887476021654312314199888871666775431228320312486536817355390428875549013417081536542980841238980721396020604447985887582994158159280523296440400480299021606807324565521901284330905405195947784968552344852976483577995819022291825078261669682287067759253239779908776120222027398114536995450136001978345187220896152663945817463716014473532338032875537228817055972357063423355981632540972431355415756677231194203058660515452355173612126431583998684604559443089271244007740441358786389248545119902010858140967504096131624949721601529212022201146760452180370656798973561884529656051801549149445078299524014629601228506864404994506290758958776208824031574179933760895696428005448329210133561383982344438697450060650261274527702350706417884423288947177074142056838480714888742646821523717829153919992629281943510110439627602598520551522390698660678969561188929305900184946373801452681452558982125015140422621286525151984622540092440446979050764975898297187296372352038267977850854909886885586207011656601578273003321961583771021075118476290359606959983011368290672648891803861347198666254926364907234391502054260597260590180510139892335146686027821231448079068220902674273510728792712075377678597557677456447485258574955911343616348841297163489020859628410057893594218870382293850566937213917337620762443213633734951377418913213235477359568379448806259471579507289661475274187755379591749313021401353164719951442165259616630740314924713330498143346370888473160626463091563411525176436894555070784478282058538540051592915587121949087324240867529329043584773110354032760911243390988470923607273894251085745412164178864898957912964162608902418893026506294335872650499370294932629829027618176215541280089519324829872548736992057436163530617989858503834813355953546873787511068747886621652517056635840924933697229094233412323861980629621425006372422491455809402423077134813592910550611345822401089098401522498142298901886175599315735257731750479526616840483283278661887982163632293182976238607197269788716557762437549315663603336255465149082499446558764365321337355223905498707884950546358504157845766990111400243660814931302330718628901064568201730932485450066101353297437807064131586410521530150753898357687007794781116689196578006460117355428162497273567934809431036764548519118934167591527818871286053711709371972243376585298919982693323726949061420654784871057046788546671745052323788083773203277577685522842511268158200684215551179438162742234693748133283046769884367378873754186340284991258499976967335676360384623547627941714025984259518039635658452230050583628082624422718409295029835639151426480483467247844394352259339445982077405306564887661929866591600061301183426744639328572919244000099009050691447032281868220757370294137525558814699671930304058650630986359438778546492525730861861713464592442584501799402397770652917108069839788357825696159111000333012734566494804290118309060100439868741792319890834765093343167142638450318861962919716759722197445882981183955456195801060389171343674832955607802031845768685660705916790877588780574387228215261995376487912233397853796002017557229173438026115384707006825855639948720776394829689188906351917778659932806974648212438980192321113546208317759248654390551768110236848529386972517839941475614122864843016289089458027522282287155556141965937044426516533504803685521382820598708493875086263291492256863365165602339714255562474673651524808240132927006017838455832732424989621389430197438300064628124901629932809771018893684403006782525259268837530812942647963704422186846920952038517353510156076564985524493439902286191967969371629160484412331131597046890904287158627055874554960069071162373450974304748012309086882298549079727715807801259981880116169417491382556715512076517939700231193256999590911460136012002182400705836145252910175733303082584064673543389496557202364445269614230623150015711737033180205496774058179525924083688316654822761501397928151460084667979257087341012614013575710677452116608945154553629603909746785444120569945321426138989378280437430771168585521348343084827480228296222527752017385457413248778254068169110125801543430843093521231564629909978688762381814147757664480280776330992258348670827009075630031206635445966138454190613979309503748836412640688176149061448542440191153896410164436385644594548037217411178520056965641378834595655334936732134263503144770256627654831699743233936163950644572175128977807985831089636778786765374834472998391642842621029133063877804984329785977490735428121865659415815487388391650449432649317444978658078236921279586251157401672633076851345138794654387617574089576428799877949180354856672736673083208130739935693232549027437539036386235687116520234224574516702142279938833172164593257980257154471161808298979752113410538315122731251211042978542361444007931208958413396908033409208464131069302602303790110982976172206269381855658504105736656685009868330890694865575070813301502326890464575517270856349425744605244593413559281227287301679345900962737007333831077333993823921516563367252329762344520188519570540783482973498284480663369162592884363024432699311081468456821576033462192333675325774571426377145265520582695538472342253182218880138835788201060179090075032003226692275358406020959915085924427097684660892675568027939322485180077352084155334673548130677142563924688555696815933434693074048922842755966908010275135695952975456226387387426636212947408163008675992998054851294929934340008455322487253629693822203302614830067286087597873516576672575868115861711812106354194516539165400512312648162240652186674004364556098688604593796039370886008546119956151605186586786296394774173666829753382826947648807870001559197557919489878605245631571997095411200949245371074305671803180850583952891151784359710723513566836146678515376445044093057242359039278714015097871410966646049332230035139891632094665410159618597192960904987645691038506782198208845439398575590287167422961955814993373521474942252404063106916742718751513668714491522889469606503442346120509982766971410719561700467055038818211653862965038417406094686837302140117822288996057637202019873591963582345134746132843612874374697773182599230348430223146690923602591469025141306010450117062092687699108187438169927457870197687944798189717031535270485226694032883781556584578127015618212804139318712768351382448526437472588689614602994540286331160012037616698843016813226240495070099519831260485097329521687042721907891585735443655973802836350578630139844581244080162063289922024413064003851843699271661498438514966687977757916965383583664982404999612127637698305819954143387854002622475898681367693220204155129749079815269714029080609586453865344682967131189304727265016960945105363708746515967329666197731215341395153672515013896529343394137401736801027080075423500568638307313756695700556023014646081027800138886114931414817546965243292079414819600494727361982689146716182392220444932766354961607812834185723841322765409136582751611618793298845660751388870419673694229457547009483762881828299521409795736146035130793528432352043520321999033330863889249200492511591448534452991666372417433239693401673877248666956302185552818538348071798701883025908753658043388421551895913747305685147212720328408892694482349302503521699784363240322042573896208087507549763054321669565433316956132925826567152079570779700977877804162561009630939230323133857256589047393743662701439405270218673015518442168023624598122653081745236707060933960873412490314897540318498797212592700588029155127895772214365946526841612712257264742223711165146921206725063030533649550115225877399694405030907172193234408127862477912590942631006048283713557226237335581715206449521686264395923709361243274997130648139431950582611644339308013737449044344742866605267473656408955068012702457658812832310919980149483232157355873811323120947607588693070461595537546128617364772441450874291182262069759602124819784824406678459839405180111718228333619891400426664921580945964051434269620846820721157804321805970080673769106866225679616426369132756074847664644563352825965949992892328019075729627843710291876278427068209459630933425381897028500797039902505005055724338625926429688572856983458758666214961858909838619366977534447127998901566249371275874639278590603367077802476573864586540767803017811053338843795374679762080123031489022292412430158348450054206507869071700545034038545582084800994115209003849075233743543946749221656300190825108915638407696014562419665466570762045738879457591482926635978438291882150996366251846245674008457742466545421204807741695688973587332498468506018133379808325676780656388267714387749216903985255767934787290772289414495794790177988080067207520538653313506771368207763075116033022969456610826126457153382605509564707517026436244998865319425091294182192470758331300734395618406139365943820628602078340524275193693047440716484589892048212782706406938589834215638771086875702600569291209853889199874739936257142755583461784848411279135715671972628284981411255015700748729715298398218904860750098418519932081241610420552103149531207946317202252134672781082401309949264779631588030949640377802002361477392266364368353147456909132561097984569383395851690682964329097725321040394894154537542632470233524977781218452578996460170714232618494769712812234106145667573737729354602207647199581073543802184169363983951131977626807915046959838417044110647326089814448258309886884785745945287858690660615197736799988525027288382801113774545465239104488865770027777600560417209529367303573807428368217244244834029023790665970295525699253544349193544514657372327038721729995562261772165917463167445775773077410195804258197266733246285821596989041541980154839355897042310850808069289321245452892002108856879157965802336374197461997307027916691916134907074064219811576918299272881651366684798956681388332099389528839841460798158621435407379386378401699350538479106649887558182139394073217945903398776523768708455605462111403169259180847274344439798635324859373954689317924556313965876977583100900685944355345958832733460287312834193427238507998126167848585913441535166474390531400313946127042803891436049354106812036422004992567614355438302139519848670270462465954339974326892226494172540234466637638909601773603246987757449726166970610303896895390619630443865211651722816761137880000989233256034977742922198707451852225808651216936833533673279703866772115801897734049146689963338014652417491263655959984543804207729427631389820720908092267386388944127697571731095321177564333763219492136406528663121592017583268832417979407416132342702858606365926026252473861249637801941003785116640490435800255538320015303579930186969089088498767180714028405866517584736250815226616162494289857299517184918947522855994738986050082003384400871761655410230205954595627894288406194058027115902567477400175649554465001444142329027724985632152425931741052203926590148185952088142507291206707193456776329262141291481338666798887336613056994670356856002522739655332652030169392962267945185191258819116183724339768016489288356973504954136381651528703250029172251835648174525013654763409945646339418847496051520562858532781888956720245283962646398611717804716402094388904567698881900726168035141004319926475045789805297510694659453201222417755397699070301664709575303259252134886180519423821769623535601734773651159730604368676567639538997126965700971010775172970321662546103986716717558191636880861698266800342697251612596853462317481754389031448958951209354752809268239347152159174341680031845709915957893127669622382383663614718847165054153167962090317099256934179039904230330171102786981095469471622517382035397172525700152321177505727801696998310129929045586831143930537940267102487659712761966357350305569767744712342336028483643989156157627743267161393752185153460336588595857854582241007418714969904761189941478261051441292950945532633423396300670065368646046114128132931699482294703591984248245849467949664268933578600112089688887168735456721877667227896088719801791649865566810221122130477422908637389311984498601442370648189368034248597468157248287127539386949671348429823004044320025172185361212604266923829933548515832962913687007554790241932479236673388130078741664136568047575060075121508393693902584964594265602832148416074453414761356065123231370626343122874771626344580749565917417378293276998011247006820320824635766400761383117897847285679125644141939497398143864401187050673128032593821606140150968066134077245729420424904269069597832255780806025444717202241796436488900759135796474822413603644429781508656445816484535207464133525946204470520237580720595414774298255139227029912578293847457337137155248392843949897755234996836923122549193845753409065790064132401348562364834485950048182638858061978925105386826647419166125239207647778560314450766946628976473479872963078072205091981529617564015865378705829403717689564679101787186927432014388912284674488658402955882920302674481951091231946340255752827774102518953732869565753806126503162176190847619298592770780430177381588441910099114512574578337417457153875375204908761961196419796360210865174706072171738236000562184170200561479902634501030723489125868749791164087200740998792735824643990608741095064977066569964372833526847422990579035741870067600072751949405869613596172345049611404432129199698631384259751709508596429205239357014313784104353261118474069779876430133327006379599857962685376669661176676912102246296109683105775679086794259885129647191824709267740147388365747028573414416166339508401365192731821172953706272542675474142055529479558061667980515815356670213478852456229054111283089109745577905051382087077897817146978940873405355346721896036128178426467995400472846446396799416217161676183598082477222266570112653415156994402855366950548286824676416410593399054582091754075051566381386364200529897481838946620303637027976570683209894007267426710580163902467716598503205619984535262849432063044131356110745213390555868748914771165270245874920158978103802147074948455407452311519617389625241276335372568692301472364042604408100812561221788242652966023812559644930377694195456560221878161381590769348269542498056311048487039627141044934058138727994495279467838488958615024422685419499094258239173268648092915136805672440386422570250129408072362931383818643250903166626880111485368952314466801214557059653318197931973597789787964573439453348636062989863845040303952009871944695196047621835875539800740008768297343744379709124520975479587520910272092757047727445521183731138482095509044709298201853575594512089167335898206452280276301783972973929460221484572579994094707040627357246769829093708001779738350645957429357676718124698282806589272006543701213040481247023397245096921149959424843655387307620531265970899320576914707489947328241213096614134288047928290754570480168944891055137703146581085533564290544966698459916637436379272875715953715880978902372766810231665045007587858050690069094463833028006988247348462046695468272605012915444285897480224024455473555836215104917421734462503760682871305533839283747943957873276448693593981018773715832255815873308056457047166538089830189229995948130704995639007276627705903864331183206249118036400757922747766721228133470449110941735976017600956701172547394597080958101134195225066186441044154288206166713217003759478885773321978850168757307697397805731184132150804087366234636502816477590316087924129718763735027723104517519993082784424851749887986959436944114002378906532354534908229307703270310010304983529343707107501832764033788735376556311548531751189991626828608077824206154519634683725123605346561760991461785546571040205245239691503749544828045778835130096829012841881942935307813049231636089519880931907677020742166075271031375175721933052141844538480259824545438369074594411510565280625836908047722969871491457491572038004720666932541882386999614298901420436694414273036884266787343669565516487023356121999804138661261487962800147458177336665208726391344020568258345812615043607922214083338163066876733605142350051522892119575180522756524117373900102899060185757073508770071556677228422042447561576552189342252571959592917865286029511772652888887274741643057006984038868769110715460720429046534423039048488649393586770874674949179673398717463060902591304656895235511340998353016128102563059161395970819546877659571151278717479061738794916489255117219673520196073519943924079236309557689504848454348600199134795344310211968300943895703393529617370501835320466669107368459443404206875208093040581278118038249332600440666524934655159822462671980339089941484040781718512767810498335059264154464578430365139072070366326568781258342398879537263655431585933469201737156050907939238339610637719067995449260502355108557256003094405066396671850007399956115289592491973963894042928954217843673969842508239729284954407864630232202705564316244882999011380422974531910515930160769137832716111982752895616392541812258068974421204668397599722967863685674546188912939727973685994411897693958927225616144204674012500921695360262128194825930645475293902627859548783614301554050430540636982502315383819094104801048013223683335852563551483235812172331390073217069274916934730858384951260374900400102406840093147086480570194480577886694819572529114747645846206631915138873556987600252548550174515439622902311684839992851019187001578899096216620205555201111056850233283041863400495635088315758339455098396167997962114995090717160952489699415033612886974812888448264890363277145000251904150614700983749844353160532800633406300477324296248941701018699502880391831181251614907251567805777970364036261660229284135404158052785053685951942346196687530356400492401922718157998950160748467947161865025719191388247573731012914540361391525595860690035713085071744006390827245683650032685762827865256089352607380716292232434409064429929590049103322715962676774762752870862447172197090641429933411185092134133574416747391183768818416800944536670003301432283961555495537994427105887150564046751389316950863033181852448069169693343119364242953405115486878482149317813941412881930730644470659631753773578647928820580345839358827492131385256919322599694205244178093379453676968721693093285302983294113263856936790910118454804850307539664297418558475353177368769261644314480963546761559325441357962858057379082208742070044339170577000563520320696353737770157199071462177635437149264000185917583033486450136130010577738395488487196723383337909321459374295454222143113543830833689628208287410641844619376683877152310517614815996656345194779722557019184678184983148076682219081916887766090458575541884737394516482000295965823621660768387073160387769746584450789424873992155666101471576195004379025393966052579413209958102606565501436984973157823470500238584551933218305725023225543417283131453979124221018454131852632197533501141983230972655066747547331987491166987357704934359730801510307638567255359444225462973661194669600022822125493271378343817339036747092643925688750789484939982500078272835171617535865627612618655062587553586922170741363944940892532615561522877620906582105221695534257154885944394168155342510597001074772694868588434361430899502593263698060082393873507970642975291186182151542801566647111563939064871875528257356573050211324679865717008690713411641564927194164422255954102244235388417454074782254301127028191163820996445948246378518577690382576989134420387547139284564519157531966936706000961368754885382262552289161060683575603719358265169791032695514388950065422360943572179062408841693586602748446085684318013757541607214502701628330117785268803953230702806275974672824858108367483127096889076727279283134392811573299858239289762366144401170821288017051397265977869778886402704850463048911095395596205559499842022875349845857933508508491495795373720212679381336455931360283983046705054219370451757022131410087489289109976714006594947194467092304200011406695649071291973482765616034940738817312862348112732658357836389055638352875953929776107564392314410426363593666235038141453553275583896377162934771886546058685782502663494901836229779296558837866732924847147134930695305213605748720619775427384796829179413365444604481775127658507260853214453772636516348744761239759492200946053543652076134487820657293206371270354097637767445259798527760486518817580910594547831294374745732500543537089022067542014585220461554899135125609015853923967235876654785304503171546790948215715954051903850246281329438742485651484493925012728884291747553772034749966132075398860613457041541515054608950348330487508745944066593904198952448190699351660628828589584074592632419086032622587152257342785225609204343818761364888571556216329229013820299957347098601103080117853572669983273613215944457624803236707666476138182738124174151056465606849893755548143800910848838639353314789970709648139386575310014829892628133723467684449491789068183558848793879582024819595653990741787673765369146792134087754575160619269764021311075519227885784319073206933944302869421967548696418265944413275366942657486949211578396828127036635634677233736085700547294065198578827037219872667923285441879580563516156347398596275748872066986245944469096162633861641678946488768348131860491912754441254069026811210173653890865052664468401245865381568224573017072400154168187843166710425839674356446689557031781846155356911369900222144737859420244859449659708785261756605048020712734874815136257061016596992868881240309843059638709187563163051645242227717634828902230612412113041791207406727787598624427538271368117284557759463820900678423778858434353905288316429989396764103617349880942325954597539841146748006036343584582220814790561697322304453137525008545845192872571729495868097625323502652874197497752609161161423478561268790337617446780359779889804611861902606340669090730345801507508932261387347007177232790663037280178065085069615991610046170234508931328651990672089084282589320679525593449070712037752489658312856858591021072086226148792042464423441189832785617038236334675036142777458310899396958977726217827439379143033620710569238764684893137158455967174051264051099884739754283933337183026168911596762413341332543541988990281263037165403876805780787075616016922209761390822369433259143977140941938337356202364584052212264376697534892061956834215737684522888603991738857120618349349227721303507207491397057783503084708495954875555888141327281142526356608489825853673534715758610410520075062636160728883031783651320716164785736476473198175257930417907147716877604527858053330408121245058932912366839158513429758860642694892281276395278877759724485456177547559464561848443971128537616337494008577293277419191431962701338187289552125887977355670915297209584274392186490096528088892556890573242415798437599807240790049190043875531741612460886128524115418291090360829139770495207743721705748509316073009253486718170997364483619145270010286386545021642350531307689109759007913861936884278112456529415677847472061118669540935011324136851780497430767204012453016795723915842854458641741070829221476935853695476644333605780206641716464820636696228149608588901345911170648857299214489816373125811102568295684287990885745242476750141609319334257311463312509546972094077307111995452191223245016076445764468448268132350374483221740009305116713444785444216979416950344670280782350370742364301159907086618656750793445946068629610800346635038049292334304243678416821856646372222852380725286764013066114753822228586971302364400268247701041769694129934367863279324957145281881467308621726021919498665723893183521389925580630854869812998700066826881225363058002449182213641251969198224936514831227002416790412421659117178203296079517603170839717754917932354281345852532515709911677163876862788134924220914709758590729330485141993747313472726108716327907911714433728443829436594242011543417165252794891239603368401190169105809489912761182392768524947463962861063715919458619842105691586938090162105210265292291963375604881266827106414790269325844610034751106950102321520788672317269752167768044922447084123191727757596844796845489514611775135015638832749142798425362298040231356520213868569223108292391344481612329154351643226715894801840063823436218754995753904474781624135206527559473522281683382880937962663868662824325148797837010587204499398922195447353605564909682224699420433232298440826762625599164459659650399340176404072663249931684367371215490153764322580203807269902749531388448200317558079830283631698713857861654566669878361715080146679342510807912636249804035916977584753392256323952953595637332989724467993765816149050092669555253332496875074566320992463709749188498477774396438090861779627843659871722571721465096064437091139218935010071000110385515928098874940412309713562025999058539894145875172912077108277685063719456295311638866074660331721050962778734185071324664046672296629752708530218318021392218283271107054584071479505661846583421191761607554304393982864496342676747017684309086639077495530343267088524271847939212521858676661178194954294368572495666014161167490329630650556242849020039496247952307369079262479184647190899236219872565313031130464971149039191287182002472878292365704177274752974601484506053201146073690751373522469243045168687208201424089219040587266465181526259961239192488934576773923692738475275065076638287172199838980304913781428372652225259900793697743036538784169592639144988128402888846299672930878296536289428052172185380523894309278942971905389206628820619295750907357299400452028980648576486917600981167249354236193620358203096815795480502691777942171634372248476079060228565131175594580949852150065144747911933482767772753833586603489801374149237363810698651103497625733842590965162535588924536689024157695701020302314658770191218407213429590005730899127699745585912861541845157017411422583620031601793593688379896601267554764055283097916023577899942353349722962966737949230664605485186850941284555950179163479131218565630706868064282922270213583325713441430844293523948963543358015545361827044812569600855050942129112003606282346403468273468288035834777538906606248134555008772278527450400960523945949558614573787013602874178603964455023734411177651185786539067602862152965447128235186699971490462738212175927984644989576707032187405526933175249303310660031040586467574322825366175346092082864503911696536317124893531262741839810168559871728497133905087982124603409352102903885240807785369490478168261567080798432316671544695948804991839775013080047820657090075865527663789949944467763213788103748014375181792815748222757894696192186131216464599764340869393975184437703651191527960476807376065001716058096280687430433534080418769051208770682912060104645652326539139540359852356701740031522169454785642048482186936269927892620260026295618240358486733816448585854663596335300998406558470534026178044675826715792163916003222300447758285182310045565152348536960888788147272490620699315227174621180025022923850603425373616126250740770679062712932555014489343048644803927522144321962535736043234405001913186963288193532228338969887150108625695055768641428629653179828418542389153101350529632832956372985634533373198377749945642125479547669890991791780825508967392618223135442245175565962429304892660256263004182238353331739345803056014032511074079706414986447734341499398266969908446485301723398448715631049908578288362688956141889853995049744399294688908641646504153542998696290975120687009992679353687555725151868321173924919424983007643743849331893301764908192742351114944555922210161364899957275259766414534046793290924020063243210575065578458977264518161241780314528170765978265813189647058258975015026124102280493047325338127544052463471154177422477666977198402186823887248743478578814790453863974433825514988527307701513439651159856735506669502019743364644853387896211613083318879016336432615940352946584137233330843498242094821794069120244078019662752090311466737827040499794299923376910106691265526540248041546144940281456759982483138905362357267141465751872441629523166527687872395183702000128763292827383436337948025032977107833525428916124056958011799131125533860617571221953269932628071383995563808586877359565860544507842443515555171353688181058567865843870007675559365823703530246868221299016553833953235852056992959619368269513012845000992725248871790164359453777112857846165047997743079065715126499946843373775115435224782531703291132269574912043165388016044086360248105155158992519017712715614381742345429006328691960993637788553427675375315553480375872987646911026292142736663697487557094521934432727470009418758505404838420041741189378312231386537359873790806976733183606612882355433345203854632456005704922750270127512235089650761267084274352347320722059823956219708653983998574377934465827601648185833441918808620762696732463257599779914776690752256096950556267590413824847569116587083207636703346198824164574843678556411585350889309588304732329338909606831590458365132979628214173049580829773251336318850761301363872675650009603343214270936945015381243712825336278984230480955717462943374330249043001554210965592066397276983849733745778985923813503850628937535928131405446927835247778751782086211821890384138518632534266855072235224821579311535866141835076999042129082356291082758031511975705361052374170522771757759616326611475201558278389621408496099628115740560478298579721429921875211960383251369732235889964312873094869779860675798651429446950444506245360138843332580181836695253111647788096946519142795414077052328804489275893028991134484806160000411453624806797322968817185274550577677475903744991067320611535794821640869960225919857612282005795232339141473578236013828077940924347144964284656301058863458322169336645576048463294975725340909625007394646629455182024463698157220108643645694402835402120709782657276756282219005753971005112767525064501512041023129550392489795060313036051214732938790303855760941964132152389188917703648788478421444652982651198593231566204938961877260676612332494031502877872773315538267494570922568718407067449638464555040455164541997281681512304205355195611806924228264807357175787191138190538902002315601558279024188111219093279882765218208178515147983996893424648886484567139510748733450885306420503812340325631394625026082950749153994065905178713743367775152360001320745490511876062462665630055575774515070807830876118869445599186072025709712433049106219997319553797031936313374129643396752015298357297695824280522478784463966506346058245578645684037578298405087131406877385536485191203464724937495495439189784508840326029501307938453220575902943895029150740620565235795267174295035966922636383970304444158832417442740137547082300894511388327526883869661437179865316245899697136385074328030628575410601875666307224685144245389452863003851572890967969058056648757228923439387250499791834360553987395193272427024462311265030056485985779214452140822660080992154319688325309832620181680229524217766527060479617118635168385189226968745648326163464998052207383578804996990196308154474786040104107712105848140896100623307521397140112673835812613626149515378207683440855522255768807121336412728492090437559612717947768998189063430303026821011603793721223587190300960912092278883412413764478466489992527120145224551187439436239067319926681407968409970568197172903317412698008781296166307544861207684045861495282823219622080957747621733464697508966384083233271413831422471823108966868535596740678024013724385756808023547997633584795018733339701668788278950186758812088356891719070848507284696449639359157838551071538531455552035741208564350284004997358038905565115992295463731628433606230410264010480747064523240047477868984611686974193081488571013574088155219581075604708334461729412842106952783685874490739494006027456804445942070399755665323844601945685233254645088343371394435717539880220850378613072515741957067303988947839943669517465811045323870723403522053371592901932599894296203387676872091687389582072575685670729452270183039926029811415738534145351157483292558637885148080479989077599787297736172852688271152628213387902199665907069513138215003545330718592199236489852995941268026089783744044336502766153439302621957463746905775142382837268902463011779132076235742852866617836305128265979774460653672695693711052140793690799459289826423918644787779910022482152970186383560742739922545171845565484660675251183409724261488428421193041016457791490797422553907130890014033419945888194850841753566982259912238616008724293513203172536033673412234667992990334781477863681115762476662313092141266384614610921902653792205657377746675457966642751632853074215417093958940826189974503175436589360678638787661662665661274477086353930627877574575635393910698700394365240409750932168853946701658732337546348909742436959973479738713453549740682053977028235132936598755980086742731952377821328707390221255163900122718095966701791193187805345296374137306856675654544103417348471100671350822534855874912801437416628535957633705199996361666255920774403128482675956116120257518684931009182007228639248805684784655611352077306910574917886821416699452563457552246771627556759289871605136264735388926746450576844782855176242706871083667591219511616317186180613340780760541815465299411510617582039506393498557348087653829254724836075794518356439043015741165952677596338849001450859260233332827378570112440928569473851866912476082258935102670158113307567110239539308822914933483851473601754050636362592800516228008330560410605802365434462844821058282885297218343517247124568884297399231641986027417881107709984129557202952192100357661074299655066888540095901479007873168748877727074074966026891849292224925470181563056447672136248634828355559082995541629202849328703591699322778912491617165245833592280022495539997541721787531897268616445099975878723165399901631675266241876997344126705015773840879180155777312316589556067591835327026137385199080534758372029267688173298442636945066175314619930379160624601290583181775090404000037616482663132991366532733330810142616287204567484902122979382619924272934282316756526737519214222110543075259860382982223340706076219300526228941588517163253530628648566970470620463170442246031898547018337327718723838530084004445976840260811191622351874164645349458816205768522552902244181803506697970890572321112369234415535539661440260884350274442896861499619621443853936914913971690787196986350547589054237669643910912999102547635385050058958063468182079867167596401409293499934398495314619247664322101096759281685726272407945440956093837818883152583355501124610093954136458961418389786103889961157602761581930996721794583643552074122042441329559013447201414793786033609785354387181348665213363946711123802673161749541914369610155392222634363657702645459459461164373327349624375472603745465026234394866285282073055864270021172167539241523733587913108919613171539691800059590599557815252361602779290240243320190998977355777305369173208175452840166863966575954530545534779732668850406475669631161825241173925261970636984306639045970691647664830594702027191624237881161531692734290108184766938913637495436284750904732129823014916771395263550125348812259555924676757389495335492404050558752246757037927985020828321028026686330261683111189462440670146912646453103975808609091337924045042000659634368248289396793272611843958216045537294640546918512857569097024207293644555143899741485449386600962674285991599487862508844475533481374886508706892113212115728723922443665740348620585061798922405620946660128259210571636539193577126325067760912218134848230113366216081368801814996538881518492128645242494406585058217207901547311670125221826592240356984416840946191815801628828410265607056222097738323882732558525555193380981066622612672578359408374203376703183427535761424751042167458040260689884993539088295490370575535390657616714482131599786027273099296681090246195447018775758145142245541995017998404780027480868126657383461460783192905954814095374824546063723604952714211916700463280499578166666485522694509332106485982117079204941843042659033529582560385614022351711812285919788808601450346381219361886094023631763191737791464871668318643065304629858544736919872243252804000526180119633875344247187150348396738052580481996786811439723473696020904710834542792218580517099985918694449062181817987809874622827036937056514383654627690260541687667769662204743736936590698458771107742807963573632092514072330466714494855968590815547305223107810855448038296804824651410727681267143429563467018156829500334896103734722340225498617761009005380612480986132187059157160158393706893875369104645341300287359435392355162189482554872211862932878009865737403584220565793810807886428425720781871948152832247624922602219952197319122201903511641400900140648077045130861095964897738740912363335027679838934704161877405967263927518888013301366597139656244512067077265077176912376257113010853225667505552543124095795568925302778217871775732913896539997979035703565293634777622242165253895929136135908208423082996638143336085035745039711679342672733120648074241081454841819057051781294659463720254058067110680926921093142022358352467423993931702540688672304212758494272568132643387079753579871324824962005324948117919929923270396338889384361003427543150681430427942234353938758193041332574385518241448645276216970031121210949055999624805600670921168672040332182357584835400406720821744427683128112655380711363512329405022854641923774966154729929211181873873235737765897000216389220655557803946847939358134932473700065176646855739301042445855104720455818587404480866635546379266659486551213090788999524081176610989380819779015697398781552401821055512852993627375440715020660343805698900074731500709028854573492598650460060314263771492191664308859439398689491571451311563102476387005435444440013428109099278792105752196639179002234591973801980437445652448445811184557592236965929007002006273601705622915890655701589962005273412527616080307626561468813783746972094321597764321368785207969564005310219612287807222284186390816293744763857418439197663674231452346704581529376691494336665788125985486270518064391800793459151411628576922245981488525852915983046039168270434488006455817332076671901858428344814815996434693202417726985455082092385718383186567408395571003894111971865851872617736113701272312460347160952110500108974957372832483580459540925707294788175920323027745317852827408666602123252788082078288464209332906472406207010392261609405514277858313854004393810075186748619581027504857386784699806450593657204952226662751225325817019290928141148201896384011586073836338776131275652621111482600672008148298698234428980587629966905016780268833802048947481868342168449500265092130824212849116771008491872608276828147661640468094101095426953216455301691465889811400832777101630116066153610798516569950785810543605079653245134689973175988411666890278110035859598456964004047948189194222068794682231570557198744668897955285971431568936387453293226082472302751386344292069528116955906357523493785819939117060398254762205696573804118667826082825560346643956932364314529184474498378359968475281576293682716982608722144261166251597883040381248207248508007376861359627703734108845777242036325450197859723968752992677391844408767337769229891497675687270837364411829715569244153061578432098645478636403564553229095346198639668011851956071088954014468536146825776866257844742344767558767355715492234375441803126867438390546995349675263723043980049093622878215911422475570780036319863968343512950061764902857746926932484077844433170765843721947295768632817960159391376523907025679890276221511466167395716125930759237309736163393841672018891869032429955556065378179389368639852015965462719093600786154724736749039068915981932029210651146407070826615829938601385081970662329946957535242872450017183544452520508153711799785566144027364332897061326272881471592684667652083455981944023422233361368082411423521061757539563241425766786698046992417969579268306583266767101988154518303392051045526702626185247939205509143621250586429188802062874157559725660583547053225051343315215799419372617350265596918168127064572638116968923296499040015570483492453689818791135609258307090587064254308099966254965897357057546755446588378467244729151788209299974858683163856443102554542175449565145900378582313029500015853833610766919988982003501980243320762138115413875896930005058168273239316846842481063051199653342719800764540827533346149182214313141947373994916697425427808382255388799401487749947165298350805603332570775292291426671272362934301136186603734314434156612632920628070821132430940523836610660868065759943942629599603149579377729373979883556559723792410267525089315521138355032153650401693042873172579207664153393934319140316131010400148466951728596758517791433776915390124273185112829536151525404514682674565461273241795460550239393771733640611390510541212726760695167533366355028844829327937011418703252341973749884950320133836561959027034313906510166104126796756927231099533881873406735900602748049010853713314956507485311629676682968665289375027112387951284795063276330393663146778652026219906539546279995705370839952250086475888030469522770059076998309693039566638889639876340126865366176970133497084355236415053144758221309653180348010284755598888371990527138339966355802693506935383457275744741178456053635898934787174952250546260190684568792538192059502022142531758268082523726040020830355080633342889075544601685594834714368819288585911594158891976256867214691843991490710670836380044419970575338584328295286055864976165695948728032078737873865430366027543478870862388081953006791962913484981107412063484016537545610549763112848503969171085113729504465012807487410083961428702100033493816825676728421685931578678274039367265157854687510560420804787797935391673462728847768708659527087131945149325796935563950287246626549024745526970242364102243368362245148624341364840192839672369660593259605106629175814200832362403712141777320421840074389119911188066037393843008927813255873252762547277475722816871397037016510958602599863898279658142461717947512533084048435994093044150624586604880008887752969495220389730769702782534570095178912686788624762107137242561493482183960426616033441896254635172899966401671525084563947203102258713110195023490021160323634645149270731056509851268265746720107917738262604531866712378896108771669366786342141866669798275324843222421669446097693976968713034233030537454577151499474736553173140081236777054122171910787776315023441698016579194922769032324913054093582023876727216784633178066409552608649172438364410838752477081665890068309886158189566867976308039390863272928076840938220206566748912587354216554984709485242302087830896592994413164467402168597198787429906302897901802676884841665554093860045568210694023318533069877553597770922505284510115426502937046782318038124170617812971780938827859641583628664533403688473809824986276589739735065186884327703261431992790217300611196331446754602894944307172786905342385685489031769565380532748944369376104533152227119129200845562605723414448163718020603035905077806212776154347965811946843127267965361476864875643541863407003111020875279179980848057396299901316687815802869098875923714684908316093540495764895217877149931468048735548830683460003473014454173539122349742040828020206902527960052565694783356950262907828742117171519687840088382091250520885714976052130608250603762970285478897503268611136587595800942897946412545351293439251129845644281303957781746557340176819168609100134162445218791512212531174383214620673298320680831654202547489520219850072575195720205438170702291773970536466105129064567530618375199740011655485342293820736199988251792851812566562852116593476552790267772891553460227443755340659491370096678433426891351453590880368002859756214938958643285874223742037084845572114938036433815179901751219970564963224112480928060163710294882469550212802441367449464247491092894320787983980945684836550918032069028056116327224537754357770750536490888263746747406901351189939005619823485973037023941958102941177637959657479358870928064417434191452591196432642765046918688147879235551666007955705472328268320415591156200140691940521098305405643741930192773654480284515103626617652288217358587429383824612688177495695641941203853427582232087937209280877823558192788057852291150964695988382418278337667667523174612878823523671665172179848969121258127770164594825797102363148875625393085591969619640005983260097166405215896952701930947189598923992210570190692747959204425368258771386873401203699593307606353875950410863801579111492413203600707958982293879193033709051209383475215991835670983493493135396981522286448460930843461228545496949480184007751466773219525878748740863381704621917127317665971030901386866698904513049234179519679693918811131726634163951882153552166043887111601968848515038734459406282837421999214617060571941490500685501318834500715634337854041709214673532916378963541411549652903937704187501853373613562785997984003673881917931355307446632056447825079354376567356870833561617337832312705956772611815631720641354758584673400082062859726843809879296898067137584660226186798975645824817983325803635798323648618509546113374503332802775292695710734632881687815286041637797593515190714768046009036445171942986630834405329686043232761904197434396249395473302980756533413618989893190221651882328585445197347830990384533740204556488242629584903670623831921208772419253442489324196214255393775069651802061813024308248606929913667413221551769267902686231411030429639173099077543205271285479490362703126304729105179664683357724434570937585925446145901887169032501397543136607479865999493346412410023177818611874700135662059941502195632896898941982174980677859931014858253280691309532795578203333872340211590444998509167087113067330972907018487004784670237995066057913670873063690644452400407527816609942203331067263122891955886238289347044989860725986932067787215140140730482721582576947099701142451654280214114178727637404952295385064216299425918103746091754938833332765245698330019221769547950453221140086375954857591560077009252213967245467860752085224502854696341195848818946852335198121551571731217847747937450961070722115883659290228337966659598815816468581006115430872967340162115169835955009720075737739468868509364890095409591375015109967126776643574997261540370445175345521327469335858508953025187196477456583453077018008466005754018086881933366713250423022537423049483144842142508389784751670814456641627920744814089689271049556257465991573067074342035613369801801778888022100296774014778547566688511373819632124909455109623000942123261896734266354113261358260691985546399799197589318180484940692818755925345936439779402734326241238519081167163071299996354814844210501602294726447359893792574507888221683125003718393602189975370300504572399688271561994474092429122279834577558764362527294777568111404682441380566674471827852403663771304461988117841975592158949617170834555996033632232265055662636223370258668605469263222694643239231207086446077746520147336343728558923135824328984245782886943158022095403786540169030311019417923020316981709259773582958896743278513973033225022398357594547259766351668694628307492737127018895990009477871886149403596097823403635784010701727008764161869426778339113902593022278933927874694475353401279301625180525814308381382911618868857768891559712650337664471616632963728061851679601191248642617735763530301736883376742643439661347612523231036923689461249147399572442838798697591418426896759712122658416297533001848630853432621471446352175552576201845518119140965481855110707299235321260124527207929675084993212211764035867011457805096503619364300195734624137471453961750785276653494163489947034846252309910874068883481351752153384870554692422285581893498073590225091554056970027157206931049456650786820458562330227845392276782262707140582100032776390406345409756149892137972441113664824629594097785208058641849501620121849936762684513087776625642077367354534081342385663307858519055092066162891637794622274593091875915023553437096951801420474709878175000894096300513244213147606724891153448965286154374148461060640347466253389967929112543001870073582364929486421722011525287223818618639028000512725764271035529857638292247939339522070015494158231755489270854136728881111480364385238232072503328794104037622483026988165008630241407891281958197317493628299515638223223134637333359744979587230816416445761298890704721924750079500378842925030189352942618431553574006403618946999539856849742717357003790805796941950302546515169928103343793771803966993254589122973478829722987931052334998353511634560030797558156333272546061257865442939565879502321461751549177318034830395540939261244444704931090266920636458760288310497753747771983822904391741277157825766220093356987147152153441161831091832080826718677935372707226323006327191010335907744546586408620329903133428573576106364876141168345670410181315434642151174564304928729118053459714251886306772094631394870205110371254417272289038414705212383134921695935346465550837264600465993312711014495495443165213642548676823581625261630096041019062620114866737862359654099977394092918263046530705064662858194636778514305111582987550827292276076090189870524293079633876766907706950894209097528652883335900196257219968726351025597044072716841976051550543475466130021656632597252499249159148060024859261038999919681761410448434734117679079155079162428384408070732968498657296623554839571657414234378622131874324927464187140037117109748791995071892304460516488802825204280031326944870590305917241594438592670779666835331329151419629872719339647482648718410866302778896731905649037380222459332979438393065455686440728784648205230638948592023194588214982901907061019876530130672008000960795544468410924545787384357285321833255594078616227323093895116659603006489396764735188373462100989421397722627382379258106213589507639222054666078860446063548044073853081731184648677501367186781144910424404356824468524643172439667543884098007221966772012387837708262691888154469826612226408645651455121592305602995329211279513843512834894170034379672797494707654170471477216567123702296471698295157415293836188929165400891689915265103811150539945855606748614766934180386284142953003252474023669348711634327069773506932237042386774298390826219878730207483795636632052150252857455676901801665908428004967762987026176188850053048045034825785847223154035030268717623347418961629548758482220488693252831631603935888826577287259137007367027983465976665917137080510564918402190834738339382284921150332684169543217469116170530617299609098277704109593341568727091967782305739699764051305340481632165961493620733805895763961104073083922622701414168723601000226536878395298887580966454975754141767682350503530296377414766904692716003262814570908887668787319757956017940756438270814459658287801840984912240615321320662406147064190409971495997967237327602553105443323868269871288369337449212071255564903539136151250761178949665149928581720722476517130360601454398975324483917014998319130932157114349685393401706720255696135766232537831709663487180112526833071662795794457306679327015041170842652034716088049481616590726293810844430189383838290156816644494912360804517779697941601680334528967082900588327185539121102896171394308987584897567252211829359870241665828395618362904074928763899403094546236250265789562073192763647413500324973539147319973123079051059417641675909149901962596098602238627490558680816158087777234145926742387403312259690832231045791698066162361975580387297696046569143943517233736869143730747792766304900656908935576690600191439605694176084310504816322344488305669641888461899935740248993637534296452811247134539302266021679591803324776889283029014431322290085427558047793995264401219318286060984638714070988796343762334964586181393114746094126398614488547210956366245196383069584251966740392684506353675208933854352272027067420072140014753297346014232289407272318173860555874811583414143809885067683007090213162764251120319510446361005880418951813519211039293315624360796237079147545107441650113708202927417233623024111723126747024772830176136847662327147295690298192731569863101003514268785879153127702160274626707681927857509168692354196677156163272627918545369439564249407680154493034610058698943557539358464884671394648337232974461853680482762137107420096100012501748966315976951728053516200198787097844787207587758948266217641543509640136636831414059587084639992142623705703918854241337807330288027666103956259587759850715845322064587303594084165753626066281411942004824921775091314964231438983891565282142791119206877960201381835644401790090387516872320353566953551153798037291466906100644016877246991836547885288251818461579438657114422350814329480849293966117511098850253374015733685647097555524639084009649191283540197576102082712647507243197952927948665739515838327791848921466141403716852554238382832042299126660164854522033142256775824979123666003269024988325547299796641063948015661312333513568427315740630052290333423659815888132655205459112281187507826351936329827053702443170588970785530398972284855746039663594109468502120835537756835429630994212333949124582976214925153063825167863393862391173460211920971976073471241486075071943980481955211905742666278238197588396418740769527599088149778115531031716550993254553673635996417481500085366705987508325507570036316900942659672232362287900716218310713117464444363866716541643487320086963919981098515794922865560583339208807284202854955105800889371743471537138954739127970796240209787981216574218871805891075180644502371997158321504494152865035304817980005572048482725410720640426056349676295830805995846997013214265049710731563547337555828554833365068978425946707017623136854535377432935993284923712883225443235001861192407751215412305182497039125164298249957117922982730262946901722873797786094873981208265829974772176272592041538653964204170104647600299905189723772768847253876964352259513380832315056854657941486926124956743309105777225320503395020266395551683827964325757768591130186613042447100954352064074433309968913303079943791696200611727535650259953242869822985040443057315781629613497965350648496022876100107092348869485698739946924466139799875315664956934597221913129451956367881753087257259420089664845275139458587558854741344883795289770332916413600691582056073612555875462869285184584596605501166191810240224510225779944570200874173295207531067990685380838285952572298925473430519189648287205123798050624204544683598508876663802282432767792466729567842489215536994555228458266619012634209567708672910360160859623848877697107506451294200037516812026066646707631976062546645728263208960403088916831086633523879735986152500701647225944997413038385415046185485103823982914655587191761568756520422831275726512855897979836021640156036234016989010815892552047398247863697088484428389243924406263988030431523988481395216446898830625962958768785388892073186821281945253672450761811163100578127902022934971270299508244375160591448219560494819073843583462589144160190234350758278201571835426723884980681088053988385823550832496328112252572922569953718639430250200726393015006877390583548540268164728331686848118854531233428294130878694801476547729319193512995820671716097383438471349717227164297580719501672030635777947699055288486599304485579731753048907084376164152309795440227883813139343441504951061591837842019097804941089399178702866940331356707886868267730896576188469299520815335663300363488370879565956524235472828943457195285094038670900667016091789942430603899085833673441059580047678526933585955301138319636486370764312017127175066109798027459172262478509609304733698754475265265392631824065479545174626462522468128245722941762792503341525109133140081724049263633668787126286956269082962378436418775489992471848146033864924985077871762265530508658967254376008860746372804316336030407468581987498791242394883562133844352574172111488079764845023567568121766746934765923436752894623827503993329396904435919816221586655062917409550215067413772692033528735116567531253286688758502486349276412738019657613119832812466017819198660320689275216919616521358774690632740810170970887326339342047225959227148414056849912236431829082189987833573927452062711776460817066042250731610692764816668208639097711026378302315808239052682768504281319361356155697162735912369049345052929412432736862113113343736813227274497669952900744927368314891297407993002202766454828630120919058938875438895949784846751131333887829419608147922451990176033345772467086562852361588148763877162085684391326048345370194027740132219723683489092973905022236833246464070877716925930141564631436197443792077969976323925510744228078746613936403615192726417940422679568110568395785374806274014401672522305508564149856972680137699956097104869557695698009385808811124772451676484115563500684080599153541295178719067658796165040735011364998519475324382030984457109366774601495546692799368414491594754635005789382684913221088561250559602959318653767250938217126190939866989458458060845710455105232223406417490877891069247989404633885870452351580342193577916338609143495979224732189039421502921809474536518445986538435959616641841971371473136473715744054090590224143449942291590454013609801897226644736998922439386055903845122987911029514750542941466984444463076932209175045323897872724416504059509352092011073632918691346292157745639669749157593968578062540178089811949244036346347718831074154571592307860673477600651635236720245546404903074527683306120251961122001546978431626284275722835194603374765139780317912385869291230767581734462527509219206267548061364740144184770960280566804971555620552648583266685467039424674921533629851169028619297999635751805897864789067472687147990240681812167586078017990891864456637598347135754982855810320049923303955678559684888205359432302946935971190676818641811921812272168078796133180458760122543472077655326604896701956641653993629515376896534770688713546941025672870064230335234241939012808798672418137482950705463790236527747263432367212743886323837779687907986413079379472874921525310820421163657328563257632557094676734762539414132616367109916629077124756356417603741913399519469648027873345998788257462060106996156733502638235898578433972222775309552091166830785695130536726958043785375106103683251478185081534470071160537348921681474564019702921677793652245719280327326409095353270789946322673095023259280936581168100620002630052177622622345872179627566646429251956293705111337600429502043114054529600690740020584295188322664310476278830586339629056931126859963311088201100551723356786043526219720223874383780869957005298038284911344248638485060779596982843376055162202942440794507578699258430460328909195968291822600775950807632091397129105983941261859567984429267664087481567593378242456602313673659345162943862791758227135782206127256066754253634136519077056793102804958129842786709998519783307024553280303584574039083837855500252542683280609481914680409370236739191424432723287754985753127031526420023636704305328707203214096629589710228013839243893394060962937188591238711365481844914865347904239435749463182204102026429436734028411420384782801968844447674655618057263716452161222618341874365560006566293389580389896342964604440835039800987598418944814499193949079076695301755718868524132667020238633040109663303066456866064930087823469669522171467784329906491079764337863732529352453255823805493435082524881321663078898412482598558699050169720070439666102565159008781533493569514094744288122616400069110790478091904203727113749338143740072339160304296676505361910740148544409646716121548121315073643321372221914757939418999940548561449286003374640587065018447227424007890904813706063496866660488543673720286879861606353115250177600372503059866877399141770988158576174024521044180791268209586810150615727025458509952511216666757777018492709989588628135068471531671599924406766835661681783025181200493344399458868887296472499066714861100942826256096279721960435364222846554483713033284970147870396779325229242179367691929917341601661205589094079118617743786894136008737166931983258919907628406858592362684089321809073090582000091260523713034058246389086702235741206764045560447430823516855776866474969648909341849305264014168665742646189773965155265652183913828941824094383621954404289063815572841356909443411593406992663632634304237218816981496487797344926947982030722471005712619529121192878018192337763733791752913968367837417834779310938551485128248526995755692272575760351549576970218513679407886130599300805258625101348235938663767322189984156760960578053076518599726288407151064285304643190622880618572256855887819959714156582570482820843468848402868983749934843178764711431658689940625742365976162668739207689379753755609864304923392606461952052119207834191777997013501425882558143754171706857656969270815196461361824955981036414213004593873780561329528555383508050222764546951706601524272504493713834624116893566251605080696004116189732347879928861110821927836567485971418329504352385280537316217490499238204657277828633977557896434133535005118050192447626697691779210039915964562167212968724259729819218749988752474783327602146580757854197426592741437186278382904075283578431227177728178117004602973104833042593137875967461756029472294358359221690763679052144387512490982544554468920272698730497736372671478238261663435000736004329482583383134176797815840106224252842325765264211734008294984423832634813394449528888732604838426964891864147637753729233669695669613598049137771442001482996796811934358199665684393619599179476955974776988312762569876033260111284175424845964555605402159215166327923122513581609811520733832810007643007809697943251902887802673885329852538980741323936798094796092143636601483528927658608111862138559671404296099392173565948686887916980178430566507052785859940790463256934740436076086829955809222827282881537868503283966690219355028324635702018034431698540516385611605287349255467464154988544369756949669768322553939901331105757439244333358368624301076002792609963716290308185083998770643071187716336150523569485136821049055885244776529035645902346028316966582433759939244503747696189560315987592952341311100820328267231496013000133748377801691747325148836127066012939372423998013689720004147049846344400764942973051278857936432844050631259874383256396306910392060675239444223481196440618144226566797144525110004715037478742952883007926615232077154218116798662757423392326704713085299046117807762685663373607902993812366593319839177048237269135830235695798302163493680518888016540469927870974546832471624158550970550546374553911120802067206456804814253370298599400194917423953676597902163621276685751438531733305621925510913759966880081925369513499974542490408775613759283244159949389087940663472639690475671761995115393973650542099278427284859997277141189352950469167976184986540238528894308668004115399318885275924681816603481086116075595525238741955251524638340939077940073938074587907453443987115352988973301555050132637956545251770773447281589543111811131642184853726081108861805272232648060523259614670985408674093128072541790307620316840795464414663730515232952720953718461877256983867819088111040228271064050601861670119083269030214812255047700930940027971070848790613340936994946793518233242548600490005331011595404006824017741564870230599455054294756120257727753150550555972565437458749184691910662302448004485023195840077412692515231680491741670915861972028682580555685638010433927179016561856891498320596623907589182325872265515980210893376851320926190242501613656024499652814102063539895186369179766445690946861143135330834644436688928265390979874504567455870552054309852146798610306227354743584176862986117797383418436026319703716013757297160309654402645549804854781290756230346680961320413539186108759578764271832592178331823292967325893824863794511620131551788941160589519452813608800966669111576575952194608790389792483186622833380681388702911339907095329274162309600487298797707716357361987924984718140153795316102764092956760691518711329928972565064308431163151225548536091625573220711506506845995353662727551195218106452310914997337886424242962349392147275663086166609922269517921550034013760816302015519725217538192405684453124950831137812202053959199456101382202009464733460168592751985216645745610090081430386870755174918066494815331203201192822998154800450811960158707248170423571535629280431610505069447862858548469474733138087247769090347089071365248777874385328343326351975252267451491097888629635048904890846463711923248929084486604545120671380753221590515976792064027448159621013913910680492791413067156040273803467371667639517738888137245157379561860294244337183950128658702545327442735267754272174447919151997214339529501313924784766853895603660709075804604830707611389460018248763034132060975175051590219314995504110652985458589916559861355902986068079450531520324550119790568131231953723493197338091575437241294290945193205894007228279063688669257521658872523591693019634782116315989175647466949544554921572010611743858912666477808515463485190854708460320766697115217426389875253538823378121818588680893046817537193000448153399373852401133794620316946457466080925631774151650890249010076391207140596419875814526892484690642592322460323100260085427621225765475504241826733375695869802733606299657683150414785149097796533900165471002040824261704237384195617653675401258926341736534663761709369207144039159249489582612724215773816171129730836870143678915631151187570058383885452684778221244134888510788931149853047563396131526874355613003362470123836336145422823116594188645741278905108075508551066769386018825123197453582892351094489366451488362870747217435255247667137670454901295099989725511980719057185104624121023616780839347896659483342458186823034331419173433538693850142259421378093498352397265331874354803903444711907703964703626006042536353354732071928275047516995187378833888672365996973939154565350239981519480956632752791295365297188258334470042946436818450934457684441681472734337009367413333661432086489227178425161421326000847651804623420503398271796507112353340086640762379128899168172670043613222677944835276250375087675153416889847100594071927139820304654345529971305100814863529683100830390719150487958525190321118479957872001028132675963253083644823563201039539152743406573767580893865316907551506235254010768408716535182880330510997653205498828489668724859298362321049884643300499157680516565142980363827493706833876670280490691338561567714452187759880667530723439182638458830511251568727526542733939250432666333371568447618345991422091814535570279482173823354417592004375977085861854711266470881068453777233179105915513678108027427221050681367041005235565315185459767831877227085277742358248323274846873049233760756225803784712545943374973008698009360507431178929706224509508796650798615329609247936082554459043829651328383465150765516175468352161667635738784927206141520219594170557556553027474024998611175152981785458853092610059813506020648650298468471955694585162264945521661351959771592896753439313886801685334145796560313130418995257238204412856090125484161148741470370489949384452621746680711576033157454305677509207061063534256865395729853717186108269211657357386198890982383649706309984586902984429239854066423768204747359907724513437128814354467661720081463214783933539294533409991866425139240836629054885669514060647947890687808786902882605994819541984199631334451385979478894849783024153187450166742695744053049028985485774190620342090954909336384456424715502027577921405608191492931126659155530997970407455664582860008292574539671337516217293998109064206740943627864636121960183750165143531560823373674797756364492575960824270287937437595524363221525949628347580903213874693011129277612488476115532145392017059913794555353376991787547785302445918533646105827566327509069197143274879232037854392037762949559828202085924400792791396847335876406557550642452623678065140568115134729501928648553914216017881846934734619063572420722876021942245645400161570264664716675299151489109853160064224812942237947098922330576651885797721275255113266973059710110566221853529635108689591558221782087740964291162752354440718332534904103020883322940500795569178487353535348555266474945223887490102237441073583698802634057492195970848256324099398700695083265072799322368823197922348237873044651713973888663254799636879613529051673595890987931479341511721177615628891798304866950330039210369253705045881505543382055301252795723599020698967351182806246886123658859048570657820706354468065602762938772511401599283407926090687638540557128298873424698614951143355450799255117422041574306504524423516592000969142522408142146044592852366447911830166249457637424671711867618648788051620239998041759416339189255397520213560643604950780809358169390628623303475752745839859029593853950606819960381772727394928730208601205372670633365586597088000210674897789399481693952549405609684694637178484915419297170787871774883013937688895805160749791794066519941048052646954415813876983014834644841909424027263676765812436376170960722314664734744791762661753550836367497818657905780216293030739375918028892905682428150178014059617260201403879154999631831597848175856811502556385632414218933917095559588889371371195840723855520702970002167648094296623795950614945816906781531171032213264311826467136195370673879455041084015179055803696718887244251197489408305282933222593249399458908612153479198499330292007736222034273345742098442441596673730752505097863912846109784160103506747633194745242437766503004498285429945990632128911269545831285858518091192818850477092669202473759648546199384586468669913986968164962752528949820749709138345587631254375292956749339906607496295421447294518260376833290341743219651485551899285598131593942539846478042728344184033017819795043933445064962590714962913321751850056835304160594566582749816575727406899737482214942046312491856389891236980913777267659554207582283252777130866983637391430928694437729469758981731077279601701821984922686742786700491404239886742156061435831191350447174207957300307507510909527048320532909361042428517218817727029525074878508507805520907634895967050532476103919502562962878749167362714317943144271073183770050399312482282384665511750104516546302282316676797307744326561507944390915419386427067931872848290560168757630697541028667446526156897126461188040714404263693639129974039914568714859341407028683721358715599044656734708561074455117696763703760336473794799251644878294448489818292272667805636287961969299637361245887940289983951802496713456531929155595729998824240348975006263049280286521292285676337592339124040190683922234281771708876193701431504142147456064719023303004686023544986771832765975221401214193073472288264295905691409035162268344180944497186463577217188643716353959985238200006772423093016965826822998549693610767051921849662556642945761165003798902821159330622805938660586161804933617587852389957479454254221868388414080361865870760168580435468535979866491212351866036615679728069648853732035771742919542456699363130262567286756025122428373397226903817071902368687643072518875003796709257584806336192370665483813491573557975009386206795588212406961013411973214616072490280205520290418440125915103314721050440720792863390198405680574186914547660761544983580547931815105808664376116477074367021884005513071550198098105651495881050090799683970984903795911592057112414598738480294714089771937945084796585782175565810754268437061667166870701376725700000557687576545279146896717016480818146124737797106688332198447740454959556597763559612633546963097314805184223502361752846615053256901368935744649616553367991600264163559351010562823905712821211468039198073999400461194341660427387479147724272159058312170446936741790672399816917056256298339119389670066916350575730303956193154671407831976183918298811187185308682133193281711620933338675518936560322945843262704609520893221913298581699628189561718081525212568890145701679800636197558530638931897867601203028276830359751075797602742978537207998546889169361127068670705183085278999825311866365549399833349622409790504900359022322234855249069087558490387793413529651075684121914672956079890670243103695394566825484471496348892492404944593111955558486148787569720930631364553051753851745696373951303342034697994828515818881089421740717201024969317816515224918928222169351887818522692481392690493986673403364672988155696825396862481394805284323403989079777368905208305355798352588119365115316393623946342963802083398140471470198672477363762691283943725682660469440474800561020535434878276413038524655872586284741404106928887498520842243002659942527668709258526013518579519760359347296899807424349174586281786980613895987798069694903384268213034981468087783570543708988744417736249406784054260541541908013033060402770756984505794507694151330021486229407224370155335090124033055504743670662933027728592673818876636208155180036634107958072072966233374735964566323764334910388116813443193546420176198147517424302361965649417668283353621255845601283514811290114150821065333861426952531711089667710161475715143447827872973262640252914829321468749085282407496306053585249553665016234139733149210568035238876994106533713449934073950565011579033925081949094867382830303182535428084456902679163766111912611425956290508906757807045530061360638370108555928769467594846471550334791514706290165418194577244677059698863769920965820559794322830602740617597419671915708044162240811750811326811432055467352948484027995495212666248988352971234717666750520959951349995516078080464659587036636493661542900446038538662377473500041739361855667723548551567700701711651730928069351004580171623673910228920021964346475860821440779095573439710113471078904089854040060855644613744471246127110586237302491209956422631747711513107739844523672603190976985329034356472040421591998210542351409078770714419433110919367342695772492659271728060447387667440641687710864644223459841057685458515676956467686880949863854074343404088303416812573125546349624225257352063328055415925636662995556807110403990780909437533235744786188315622586231912613147364734988962067203360388866182101565838845147876643054670745883746624100465050791289301209238079392155473256517564819998799988020942692847208186961486816766392483561448945414165603560085838703537435457388067422779244765995748387917112640402778960300140944613354457082374674997230963442004473800558421450342695534747388469395947234163107143082769033261119630965570085642149793547609184174341223477513035859281504839435061704719485420910413112058111400428815351967466558727052305579535737325452243313617948032087359763046878306248682697048026302545130156689712194965282262164398940055194675862355304305547996382661641524351492319160195338124993592985260195808425606020180177840393132791566076788716735284460383903185168517131847949624063792561070550450036843732771392045482968982969015372359349682854720032325753550780898093846237319684510300932843782387572556687948209601110590346646367654044210445107410027864341189416984768048341026577863707821478718564398512308336729453430803075812225808808940107110751367859537647657283124017167689320573652575298834660111403737024201519957520225299331162791804405812166676078265351707996651290626163329936039884626641293779063450907238246666308731511734101902749175614449898501443722146893498773171675892750383081642376074930887307665577463989685476411303751900472454686536227830892126491892694805316120132251106255570101852390208807987435663848735948061566467891663256380686645305570779541377466383717647307510587204425132669376284222697698513103984104319896621819699059062067240758266887358330391311229649965331781808582407597139379473415992492842500506968865929381662467366800602555432900437020117700848126479583938728105232733579907287525502792782154739964198781110795139582170476490848107798685800337365259263440270119588206195422568430377342745348466194039266350973925411414125437687162554126236062949650167199134869366051480379060325810608580113724226571029210879345569768075579042409607342848561366740089088072522004516413351604084861285118172443068185406017939655960550400420354699401936204636059253441415919307692789543815927683285384868000474791050893968655011261740170892811557034221323179541984474657290456216735529322822786557059128500800765032035998561656975128834048955135548452283873898532246384884375363292682837371349454971408717560475913713978630769234543982478379456413936415774128379293230849276502269374788340494899564823985255204941118666719202862598953215978029565912595231953554651643160454769033589771803285856997848252999218128890474383211345205752949757270486765442957468030182228124085501357708335392233547588617312124596198466334900687068682276432091172384725706365423302541163363829550874288631013843625331902427350354810570304468551034387020188047196294484985681005316070303787501675342975190470835851053228644819637727434818546208673883646238487954048129895887243348663124917182451698326092267698564888590292730490777061381601071637278246076456091730913137305300210287500217325067263138219522888865896640374048645238367089428358097614540281087275637623643439131483999274913231240538883961320717036212991628507779331543762633010532607723767907199003682036099937030690015616792379875353983993169265272767395697210921912072858321028171876550370669528194159465280948298759785036827209161443610178821008956500363188475178858810262467201130422834291861209708076710762210913627848138480937084837261651503680161467073358586864327818370367837269402149213779060116132620664835369985834764167764232809143355836344919550279424241109849071647551993686442060019418784862452530005098365245930754555509542322945762312379452269527237762509218832106771273379460389942779127111101974706227115313049941205368956838823819911881227900541061908667777744229678049351223548376238637589779253385539401603304985137906785463258053328287822002805175365506407725779935150649503270260638597500156914964156482879872069755110782311225517054217014668649699446218916487305618639207689822590397708675548947870579493113291299000195561708080239146959857198822582303533373710737153578195514905194428700808734781542529270384566422953949030330560817295131474179557889706102414044548445815432607569992808088454905826988308596887884854773567174089889880508227065375722803256643147663963700916290565895288054173169467550416092146289553215543732491503114525933358185453294869429527421051921124638454301670786661610366510094255885416029094697818423345985215987050302501125382416201693981475124412033192396040919525245408521309430544128585519169530161125283371704341105859614084155233449596176951551932522691622079487524666416843673590753239301652829618186836782654417994730587926943536864777294420363722269236246145386019882630064534787652157015517121582886804544729258153654636374571638700831570884514850974849788701113881670200065513377291118963591456970605833378011800099807402915680729779754163960420126059014439829002157895339281676470162652236417397891621720878611667873504215534168713825383736761693692522775611174293977434376043437774087258834104256008653862509713502488097591752131876760548658811080221277170720850606412630853385284962138704143876258848146545066286852560089566646924736352500637122684519345669195147238148907841002162241166599043196314512820903597522036446115360304921271461743839748227294762192051873738472601271903584046992273143467024656107668577770535251555016379059372614496632959344900252311616729628969082026360139880122037756328963453712514532274998710201924391817517490999433529933475682564397899787431938400573798103748133495071211302772302185363094270643437568009128037755055118990237584107361009950813842065912705726766579740026285794772838036914092998724597468485960117352192921360356611811235811041641753877472586922084824559940562512921309831764078409982441256482776081068299097330153494373627560490846331825518280853704449595907859778114018232652505577377813627539098554893671359976812252534015220024272330745655802007016103079701974356588605693839336821093313501571009991110038125196120242631678676838809803313778509526959337700105038579065824940867082675822027271925013643888384835015787744296718842316349338637124948228519855008408394458336687839178461136575813108725837649310724388282664931082205049815586872708172448483169617214051415847985623323230638794509875185185683463876957129263564757357025132257919080446038438410623202673675429137807900690302150675323706437087510784381589006045680576768668269406781138473725113492632730372603387465469358753237206247252082502932045956950419646292678856491923002054481679636990413400822377451324875244869889359470047529196684262319081270324313466393530759604652113098250462078003831437113433335635498060954632711956207814710346493716247717490486152291113967016868101495928532007829339825326639065765630659385593795771404669217766785002253267817089866024498578368058563922196173868246264952067119302788357713633211131434665500229671166113573247874311914559682670394527017401380156580601641392669913302788852859018147139364527350263321646112022808074744351861668294783607996555305565613919544325965132909292389846519970168310786086464444476996495984581310532063384692768875317523702899850479730126986907485390784712890724009455053561577160043607760926145115899415403714224462007557134031414569937217581308898396276631379333285297267829949177502509310761141501230427611666402807008372026699815354950928101921353030894058408748621928219855927120629686181251131818448672676262612215838104104566736666206224592599780688819893942087452041186502428819709745997613080170184422530567193552780751123042593445909340521163522241731008956416015570674999601624403171767337248359059246885831279822018381114091498875202924447010612595622167834497208988822199597514798302723730492370167499489143996861314877197106368661019940179988073943704151172863047259747489996626419312050509213318135475017843928611482297418912362617370442473975321632206996423817478855151256629406347188369210420160229646322952305770002982363240962360314279519919744356782481601798647684403032936712747984706832758851238234127105425987421144422918634378368173208341601495273652135599320687517383040472454982242172542334737918329848081458171474156110089521203053168620588313660943521412961227230481816117169506832038150631695314415696283466422477720234097076651015481065232534562646414309015426963143096587016855256433666408789924250248752431061342040888793048565743251507425234494130130603334040775585753751768222265872941735899506208882747270558768340197187220200270520076042743836337826988036675845084536096397187057409163643870784736055978540700504553789009111697703778617614499510825189040108440568714967481386412614344994221844983738683171060017475285045207735463813962855722587898854770319502857875851903212856626375920473389843197816948376812924129690666271438354088620385415702353953101127023271582623512748214606832670000808634844487428177794949693968513663121576722602192770903594626330447092304879407567686669732995250081331314016651878296129364390593746017934767697021324906595155500779107771132785958938255345849677423557800368430055483704782539009484936389282349580868653632924067485986439429505570606051262802758429442380368611048712814294136031858931940907281792255270975963168215865945534198215725742138710016217222731788819306444775251361478923908871922528114440113869268884731323303747472217906430468808468186930002954220523901517267113411343424586110296072630061561897070174110126261977375409406346973501550316906472176632574012025866117070870663654256094498248533580360739602884106277129819339200984211314831660730809333671417772815278112373374882256031324959241099837679049790066930202224801564840456941300959210485454568514694707472338186461467639402071085994333297040266659250048666648750550041146554874189654198559825660528821068584080237808456798723158259870319361815966597591548557934265465869728655916940565126657422588619392922331723382030924270360433987483263981635408942894081714017491241850948145656364329556926177006708975861835202673019552401566707899897311626750050731234513987760541250873949459010767769503940131981206722453691980178910881648268621141112550492373925951349389190988744908574994858425525877145302017237246611207656441370011341014534099946409982252860721962841234145394303774764479123037964676911123055999011428508681839615978395080445241208467292589860860969874194935487092335541921898094417987470510672137510197192975672827516038416680194915447454524752836101558959327341102370814035580322333636365139956551572531284981217655070399255917817216559700419059108972793267781502851847430086159391208336959526332477298154313496556545107278900748663507413468630090339152568770598053246830736561415420716195605438906615093632214207518525155005513250965059195482232678314879159907256251953626440006385391827533802143586946152921631228630469568329904478020596057951387666844957123609708104443141023508970402578846979712090865451563392314768031438081071481211718617782256775272791101081015556866198845353923015015694307301766453658871209214639330894278803682951304671758443452004532081796547049731697944651220564327286500951804632212269096674964769114832955660508665905954185904801343666388628141434667188877694821333107039846533748622116864221531784837682270651114514409107391399594997144019523478811702094814453262573880373177371961173069432033135605730112431660766458479876495481631477252983139253359837912243680999001867609173284734651850413823929734444733247342748677050114661604434489499042464548670404439988192048543383170245310091189932775068875921186815278549910247576843108111176018381370672358708010261270164030099380071360424136050888442378240286257515037860724319422858643418646252820051447392037705107417996317106235366141595521113301644178164995231638353185151405652971174282992006398994942567146440016694370371968937192117894493052208431085452167505386837377448609020530277128522845760614379936680081414656413470293733379510369086824756696188952064484014431371969512729914601570004105686517313382331392896911012397543263172896572553597535936310372607093552435084166411626481838986650251933406343651060483315491689626353356744548599362388472040926076561728643041571816935915407315068803866332543541097878296740091357722650896634902306311075048370770312474561237036702491964782848078564396371582762354896125702964589217682444518582881501367443294934246790863713366547771125479903750726106266380649465138031736206921301248298601787945748028728843412088133600848176276926644778252559721436051302062381866542192111231085619146845863212607979943633584962599445297705733943139428382320328311586718432123682956399282927661083008973559418316589004674228688883768131149708897184674741569531422656743027764359148196164930763948770464616013983923514595137739000495269710704185577085092975417078285229288230591763810495985542279723246617718634411332841943856052069237887082622425369163699340360643249606526467630776686077642178190367501882923619577135065015238023560375418643809076189935573825963562086210662854509858391773440140731636725664015867149575904383531871229922828507978949656864359847450158538764835617053210677471976128041242632156450920929171285298387339271626937023241154786859295129914082814162304107832378675282927127870539466991403246391484222169415681690332330411837733732495001660802255972250501595478195938904485888797340027542055759675222395773907825332926337998289844228539741721102949391788089853650651541848216145993163154212869320738145539287261600551605053852801217720080026756383568209994847377318031344815692521136453716295568070132269741862989390850439406315872198596895912059073142603643821323983391230210201106977658514244635503501508940395138513724565296745246006086504833303470353207585471536532192921564950050169202704064767468296678990881870755462263439933940466445127573723450408603359426774807329099166827615813427236336744815999613563279695138608137856220836682719022585977629583935077669527914353969904434347003056782617511498968170532055885061435768418620498965709684331697599297694357813710163679280829302590989573518441966558938792631033119073361560608416307230452515480363375288055166761439183149738794031128726796585643336063886405615299365549780733972062336744116853914822262100554196574387337637708807974606308280135191038132814301333774457656723581053074643055042752793280072247045997563288361775644039132900488859484909917725473162736463459675932945968351656925699541439270735210972002849783638954524278575390913980611528936048273153184586758802103185293504455875482812773690348310258773526933597004252192657967398341203550859575573154463598137185249758701135620381324765628184950655167452619299321391185028326220282987604678859532672259124888896561590484086545232823209313868543032525840315004561263889028610761961172201360400314053262202923608353548946933033789843194033884642570550077466628036167952894901927285784306761131415711779073217653815200417828298604259021301071275887086778774853315608144795310258309124123251174539810660872995603703858740629427671133433566796681701588975069048992362477381431576347636443763723778670207635439048819736713875294942976721938197640537053844319020788675163187728008147809030172328747793239279649561693909696910402564694773729327621598782213109271397924766658144274851503552389807605094281480717724983047913439760285678931587541778751555411406665503939358111728671779511612065053792514348729686011800283999668683184206115977614217120952590038440957095545018588993512858880244070475194761987002892224720803571013687895225191455325907523617597594849695050942053334998752297568048125286452255380369196801381806479804489330002747552484455023199037715218289094960914580529885657532832884948945549632927349732354468827917556321997408016135902028081908760568113244407693348005006864697851960135511055092104084636177403248756791310454695661849830207270067373527822513079680305443837235507848661290767609007940299074525974572949715701938628187520869468740669979711810675064388622411689709638376727931936934792794501516579373670148223606751140195918659820364073453785634344543969497569820879510511033562303687309606285499708485187697154937023258252813113870615221737415947444155063391512128289221867649880652994800425680060503596052235186409791019780942154888192321570516494553273769938454347417749862457711001641228267295213992286316424167512108125118066055396630227718301941836917045775236121083294084878470068543486902671775437545898231154638250023126933986166824608695020399082996037217091964928277654414709034826713279606123414732309307005431374063155091786581918365686893835252528133203799534269755289709577370137359618968709641192021092924883301105957610837760406258285905156237683458503794105875028194373471918656945786389862176434580228609356802203647223951500865831524980511812935966758026580452934348673764248035880875745441608903576337103164356437302306330337273574991207844071498939104097120805549820493184319159897002037035068878796831535733822789364730516655039808300495370548295607754710897748015133412736587393892530843567944814801645304632725871043455923957579034992556601606544343749213888916581171021579324017181123000672966687766214417305825278427616055495713449152010211134550674792284155313162792023351826906810893683747815189668266418609301066070011190455399944553042239139187762818746380075473584939097799718044554029552024319961283638898623835103668763986983129036908594838950374135685521166374426761318856550963086009539433746955331538617596966908381811690241487161354420842006771238068505025047636738870784324946395529067340186600703776991597051588085622467923721187557728352518702234050036878656766055597802408684854733879942803941064825791901236265474811180707250694472946976503020760462178151724805632584327542179897308034831932411350866910334645985019112922765694975511143803065138018033897496478129786453961724402848654399210506403660326080924186072725511755013690680104300055806912834033809640409278197056032945845427497584266394257448262203070290470945235974892968429114675922277489696543284218985919806354346319437296106670844893076025853991880925789433696539786332029110755737868101251812048447197346895612820849419710067255085523389907556378653153022658758352701704184939491643958020172102727613041020044823900715344274005744043003499311086704921597171631797719586476608568244245244766388262073609502291064310387554340782336345202870222437544411555479060917804601886601309079770005689812396932584360191086769947790077045969979717636363675246766651230295248971262815009151788893843080958369002880053465694841390565459031231671355859895064344717032402294834528981115754766373657741662896048965638872475227604385935792255560936934183276933558143650735630642572687304373061809712287282110655143057698319249020661242342133266657862226802031874002796208771891762138545657145258424887660580978748294552236834055495104792002324468295345926144078732550034872930801736192417238336528572476346928275541453871519420066972667182100967472496090120820691060439711115945204308488070689901484542631361490879478703283517495480706819486967167224828409267669504036576828526789839976849336125506824562788188239088259295883880328408646984528186749037543158881879150749036895421278335674242081430668740622156619753196465751374177536610412833170760300554565841978161953411634998985798032542778300892137668263322533721631427720732668006417647929980276616462531635018029523388981896340510689868950647520677245217344758375020108613905626232168031371564274553782465128083513711070972614657385716716003924648877209216950355356308843040403734317029302072671338185215676879761107130365807352325615372033667870552659004356728968163633136272184514799059198904571322178267706195450812694888930537280357963016082470727919118990067862476365050307610401233366240736142098362045608954824964889201173553843721819022508211436457175261668697140265849122081314542756432850660644867431730214672586536050125089980862314164997747423622011588728901511775651524578995040385926579254858618544235715446356435602094516214717017807814727002169520857690978612686691296477506737917741372657749960233798284691212241371219439742425864461166986476710743981073866129914007128820976284563556470618782880932119608433515202192006159100045366939109242846423051168967891609870726618183763160873823160849965342111541770907834240639329675943821146896446414584487851902435300719115214433868652703267562711939140952426776601811447343488060026705931950356192703893321218033943891273865297590965757915684292025137252712270846762348474580843100099297799784690575864889591589489509933766783831412531162465757261898104877137988799943105171782691887557547589656964629289464885159951954523216091270274536519959097899436691871559587288958058536917281689677488624278866695522866072341217440266308794210160547602115728117291832673801989220764445455919459971778944191034310215589604960850966859601198793532579094476397259628643244940551852318676377295382865211625190843044441577956541187796882920979235738180900791420634751002859297251866254909462278500631377428255735488412294691062966084295540308715162257426650672655989937270392041413237066015997462244295222051569296333888178459175437158795182394941942345052866668338067192623529827015782235345355840362127866873159714694075745211826409340843213487984089168615218470919189478461204705144467728463078847740027149757406992614992582572923563109923012928037495840590432041145578233945985040142586280100118089597987472416587343661968388427195725278933975054558530659537735461197356372705595450465276130821581438002967865426336428734441632960758385227740709984799091997492356693327434489315942090807885137651983676860047625544662763581488442916188148752303513974643287406647930157227961441181394836306387888653662553943062371162312977931175563843256157785430690015335025090016383307939507499670107877912194348514722336744862677648176730947946634510425624747692838806310365492588146214023954636829244553050248610616450010586543010177503658233421664347155294794693551320146999389258944329014470972668247401450032981871968632142312712323553508799369028170733555324404633623020570114522330888833661626929060202242146724222613167838160895813760009570279825422285153632552946484280702849667126087275559054791444956206711182230368178291391007473433014267897327427598801685885851282385195145156589763584987252458836397820287572366273113516072094315995109885895164081071670653472628711836054315698820971447984897501783045702834778164097129817081549978826552258264481188504821192884676917829373805015096447737944411281790299590068706565215482144161661036723600234229780872429052869195298456844972066742805101272043057936493497738984923856450730529252240683550507788377309149202961196513588424171166456672779131994776559520892847645438152528620135680374832662054417328771382214659456821339534140489177308635890945917444606323572162504779714374223886198962978409611345217401161893841479485789951360663867856472501252466242684009808263574098189244368336134910672870337664101121409065914758319125297587890966702877978624337666675563008678965400508312311181831758501338947801033363230912876754287581392594681801859376600684672360224312483257964569300521174102303581024330973145443195111322364818582096986251306338140262808143260835801868437403952536473694330678089694185079058156498183349434078010332207329223178312795255999031877707907810744850764158861319582692283672117826270820012418742128913541517627415944089604885065898773436487106169535746425256531352305819121403601274664325863392362201261822524520243913675529819271949198117845204703899113356483675231274675270614407214029927412128643386266119243230882564937209948828595621917656936412166019176291980384135621120060137988123088833528831354794898554897998346198165742662564897090563944040014846944747171821684127243003445930798171936928457835060054837257715646440333578545230422564354649665108936553999593186883729758585595082417241664701229088299557933733552845068688879657775212829695435739635871146589639588769261277738629061004188998091062329296446576617229177501865252752080458190646450063917726019043889513532880469800525757316814850167713448363220691664740721157053142379089660133682095812948707765519484118574205497585950796529389820868005648695826599212039867906763439667684749844854051532820049011575977741893145836314710012873191589698492140204144714432959932817940494114244619735263284411454141953785196542406466880608880592345329557000784844573993083820506003413541854680386550335612134667825988109880237976979179742758679069224013425587983611837737218226289138255243507211887721720343295365927965461813033889749305385805456604657568041367539235173794359389466899465786130205471613156677712224815511609743670551460289926053031859466554515929078320934721494783158578058248699326782663918571439434760082291769687644010447593836468362344441036606511519035715668598069169614402805051684748737665256837869309221151433522680958513686034792220972428359726739493774166279173229657735033863130640238122295972229391413336256213255820809775283817485551061156406545817389719585926707602737477067435646071481925898205322371203347540423805352072034624512035020775945195144881915748733271587187352413097157410492600718797994577082857129683106183951761539554553248080619784363981729562629838843227151070218553693786965618482197941489531042835102596629935659512657776034829831783604919297085956971984295464555147623680131610711597676660673215145753155433228832696852988216072314601209555670815126888647278032166146046582777899834829118853043617239780709292352989372115860313276506713650711944778702572692176726105502363399821380489519143540560462525890332655508175749044989842191810864475010089212565507424690269736529887533702789010189118140832233891493431383355589448932280016196548082242148188586380501916170914369144434530786970561923866974078940355232103241485039816096378512666217738438641942937441026184406251826280187897497680871266545042277080223113138560645479782162090549125330233684951125222506756874979884654777210645820499539641549898750175999032238958062902022318719628985445362234867915391249721846606663655666487117918798490257227024562860633165728267615442355654625152298292926865174573611439072719709655496529753897291138027831163431976631795116655754479284178521081221310551838428629976098033592241845980638622266828189946001405995622744972712796089932742350472661566053744563261388531053380473464680183856626247035091991575443774311703427670360266019888408223116353025515471308546589836779944306738485851841251975802217581881195899375190482985292282022552989049768054330976739341934466188788007221644947115817768146123517248279821196786503958907348837639473600600684218393799861384614921426898261700537723962593982195644103066371205264566593830786765000598468358319574139209189665888657747578004799189484564034735342270185559656796082195433635663477364487531545568314141041422734978677443092309331601606631173337308942700972119700757485474530798753624523089589750802379875720398251645972806485798938192518254621380288754802271080461882915099181822337365269172797846420508563426715080501481984668943101445220968939084031223052279276108946230170411261345611547346294761406519948274449263545372162034601245564907359267014219970438059968600805359238781431016175171562618287754202195691166993510836250830119978152048143072754255640492678409401667133030127892217087682520691155838140284471585835295534162729864662749609519845296397605155558684112810692566505164354253544580993312140474170192545957981570358142478166396758976471177638184778454805260065152470158630286855843711794726942863969613237368155768030522424437224078694693172605830490843288328449205213074979142574952822119860183238048831246584954637025616731230731660879375164619636989646079135479093588917195491008887757261297514885137058102357907895139367190899611724645036087369193492534780223762565770832993736894474278176438941365461531332752817057705925002898477063643580748142521347765188084384996176957549343880222688381795190584608710006193025086984142327457496369198449242984868788672166945361712370106390924299259386706242744631103840095139749129167979734224538990841614706807610487224978445623129743535971982886962183704381328874722759366536690745836166034616617003673913229008004217672939233131715090773919531579108933834155209002196496950942347749680224458651674539922670745772348582975249259101430254977721441696379235949809082291811806262161800281786278191432130223384449169403220104603632024127323788672955702486002264200865911266519994606477307791243838158051870356580599175720107083694423659102418273404498745766605604239316450746326519038260962834961914934678408453663774949092369081820321359270898800909686302458640131447382645452617504178166417799287535359549307505207835589568100587879654484633144473738754314602404018406377979077774761667173961595412134470499455135160669230754505604479225954208674352186598654116487447894269175219608805168817992577949668540542172240283129464406688303419479718343025407687797698898446589211752388589330836979294523766647108038852774984408782359083155707974935602446016751043766173397350919492795165021670181256999806918434987108311957993199522193832587967014611818444862191043299342351980289579826461361013961224974351515469883445757435634194530971708721628376795641272469927505000837861665850921714535330793446208280581024356739003115592820821452564074317636482487227696649510791047414461796576572591748778020573265288534473348251904248070204464151163498546916004679316508880140010649016204508439271642318780314524626216521080903948960764406790025252149059092570897204168127960279478201380143226144121703221984481962181341067837308083762719747714720764366613839171736392736496908055573524255728306890663685313114929856312298597402904991009435792891466925635262343161763860705495499376027312729642466744225592310999468563696826825285179669666650021494006854365106608993834392931485000921805146724960221096164038106718127902203870116583318253442536627538721856098969555023042422499736357553184632450725602847647802717802008819475642858838432230478127607823786429555221626641844608123639873041987943561092937527313161801402016217362151299003645589667108547903022237820768824730384599626308482570451048391147254200913629054807773844043477506287218930432284014042077735204940083063626271764220833597151811092502209052519720531709052850712129834854648623637631012389862459337140757634681135911926371539229996399046036848251201507215318360047216201791081734752773734146799039312503375408330860981743112057474898954913826257840834757393579150214117608496812872248709361999833169715170624419344846264553308515909743190044119206047333353285714933923593279523716710977187948280056898563512816078004822260401870733855533015572746177243217991312037955845403848396913602874588718019723046661627192132052742032849702972742675551304065867203072214181887169815507201998839393398205161780615540518363012034085733757630381926620365926703127710325777516836031586184884424942535559248171067678343003322275636582355735358865068085095702156715663287174984336038717803038057199166699001660576388472526133940705799865397519994642334179714399145729454889809214066989758176457273565925733993354272869241657693463021359797040149595954427026863366192279276918423417918572091057857428385814091774131603821643598470311700762356961487419607448856867618822950887258055961184233584741230451338118176553895885968835369241322160798213096336280373703565406982332359497783518482658861728713132223581935895127802920039400579494939530624530005151244940483553635019978590891648033015273525256460931978427215171609381447816766697348080677306895720253916836640597325300238774738509142619005573681356933574458279202950500701251735420396294556001435993332058608471565840370022810518776350579164367268946555494875780735743638276842787968586513191788297802552862275287382869640689481416716168064402452628603570791093713756179554171458652583106755104958259172094085262019698592349346875632030569095587764394976364843549301577439707887175936617336384968845276707076300767256207232375537860152138120741817505215564341050596005988819875553592257629634421830232498169464734915821549270737835236952651548447501207167477801223522260087098548757570764542839018811535433110763336936523527153191534002443222793523144037553949694438232432098578682712447443508768163305615354352603545983507060235956954452118373881894667549328535695456235640065733870206326767878131503916664437558082405117393658469595915572390448881519901296930804416448285126859911361415320700894403731151567622109629633727190054427629867665823192156820023469479211913599539368250292548615835338905995114415556211370246380379417405502177897921964538569015884299855451917931828530107010182189971127077150113121853711770851986116635634097847879712078862046310160001775811174894357629871143261600112554296631221137598516341840735567688497678966302174347219379562218992584801792801013239004012739649372813633675263261989895040652814237083291589320535379265363950052046390880780850165348246548686555268196265016637819067086487956444079936850962040634471208887488395835143110947126629059949619989468594299372215563500776244686492218404494377545460661091656519744672155861058199083494786798967234151908972553830595789828570151463512223238814146110699783267957472318868340785299413675013388463364835627729341253938726644628603158492681397042186497636832317046456659563084595818800815993182181779501301484926000360508200758745082367708507092563735100957406901911263921940074819438570617919171495288124336333288329941381491922897855988053400755727988432867597738953621687424190779101470011657158551479577040916406558264506419244413695492301284121197893392886725013650595648425218870460674720732613829888882135101665131600214910224850248068261715314358368062754977930936105124249647748379882769858638227329642261805983183742709884785416222843847230635216738403192142773673095069591864468704264993644370653700638317755438131232044190671335695494193559364827204921787733231766436178979976914707635104521379485577031983640902326812324461613869433089112745487133121625991725519774261321214213048912765393421634140816291093552415221201337509412639707801912745820239064909754000474267878543379016098202790794087046566664396214598004629694489239327019510487211051849840579351604632893529406671517012854266937191228645686570531733374214523898030028425082084816571965334075137113979322007149875546220240967164274280344346048229056467245874060015224267960246828009342690471902564631212176205480756608587503843995004448024768390570786471321254616532125851545995671684979143312889780226451026850301410267987166450699640533021105096359523557920469831356264189857081551906820901509609398936487334153846576044719477708287521015466671805251906971715257061051497589831687371205710482581678865996413373854383880523397726981816074015642740645850312062214655845552061244590628344171196148288095134217026220285153217385613327196568851820642264008302032419262749065460300559660145905275053221488234119822078421037763624455193335305659652811493442428910670813576755230670555019680744571123905993514436849327274921714829291855036228331598817506085522192562717544238280584972097290618358411727636671894470182853359820971063088147064541962164328420697723018244434627557283626029157636832034737022301014752810076624028484026954220852283200202846473658499018100301993339793075964083949224844745961888749520932537210083033216255460462742211729910464375898536403852660674593718348140318283453683338453966066344470598707284209536613348014744597126194354438134406616095114849101191514713815690347895328308206332674362628597180287164944470287290592744958624760977037074092170231065505034156820168968471408914044998164092261484943934544341805674246232891159835544260424800250120281614756332559772909081426209925142765775232795825396776861803507291521288674388057061990314917340906099869765511309918122337227987875492706355865199460283159170891224755630550643625030080214716478628985590124862631347180545188382071012695500562864618858803361956013553881511053238689188034071632733369313644125906048537725047263959761584505682307077728313852238502485074593764321674774398136614103904497109623031914920730111545421325560696820641823727539426604452084519238184136174932225119241990978124202913374308336572885283113202979930158327384627291522954994306065150806062060433379801380413712496510920511148250754464030706570262725634435189523880407994730257011346843616218684543248420667127705500168567533803170909360902381101514232584908919307573296572116937879209845856490644051762732726095233352778296689453778520871541980409193695202939678697713689463803448189764467768843492400601631509872049885136742646976876296709680255845807135108667241795541936262029346297163832116324816935590402590124336042364544991844598170436020706927479693761263517296219883757488934020712808139857441967913133936942974166538808809783441376970768355835404659198303940928093975404192366162019423025724303973469383864442057820736991278693702284831720301311136992429157269399107394290162268858488065050239696951069312987142106845365015603779544621330114303628120619217239195668262755881305842448938691584155937695461366381101441023487891678395563882572727741497118416637708224406709585806230280341501103302079788932321896335072012203637465214100054857736409862299354269748860609974268984319785021065427336501379495612821691288008273151675446557075609403268208528268976529056097382959162644818066804346261275583518598113289008428033161121381920158597602517800679252992619765165415899540395776570811941627614145303555210235927228997339853131895818640283460636910343524333595233826545851057330206643823807933597832061548837307948900606272609258745498688352230395427124775434552043820634099697563077712456279486093358071011976270020267976409078166228289083521086660122313176931128576976322060141006388023897022045615468858053477297758077204549389600258563796233040123450528510509385923388348665363882969079159430871912353390506373356533907170510282531278080768886822408265245710784197142596850487160527520956846490785955599573829821086202776824041526376679092292098544080503610385062342850514547950431152226116900211480994578416711218899158631740635861561021040869422669262895856759622005889488215366304974578758529750035246745176108312127032643902914169002410341384686111816509084318507652184178635653100892222300131772099525122712642556424523093661358107101330053199546013447126455953255276938532737571092341662115524506301567177807737972638925212330315025660908795654007504957737582780234193637875022444549807335322697103124386448356767186342535245999536535093356188581557421886666550567530554364917888222660775929482808707090197387513022170651052454143176939431852167247264324668722595018839057793353713603503417771936729237956447504017328831983132607553811843384612216963251412212411605782132497353574650560768107355567696252732663733151331329736022777391655818903931245995834101412386506890297136316852940569698068329457592406407175219665639191947456520533600799576116078076089957052602824005021706884690215323860299439708848104065327004045545676549882895080051320698605948869778504882111854131283400160455610861350756793853124216982950087833081312894694387524048177590007934975958114110920783274639813354863964849583871542263210807629730261259147897862246619821773053141770732039840264534768269183153589531640784481604097722066287100026702955768465750237245012769306755146849357973156552434287565935992338869984174807140254172506400950635205176878685380827729703509907668472334097553007909187927754261844038542707292029585457108578459268560823467101017638307407498665937767341236661707793247061671977195327796286104016973448771522978210092777825768209518684649718993531076336258792767693319538212540656885342243099577406922216002213992264119621498763984328672712245105694460439590502032360066530866692510034913222011338319804003734307403317154696294863526812153927650078283474483910359480356058013494145606109235709449342283382642732011872622595248200611806977519076723618536778997298518199074328025417225829002578219546337839370057933041591794342495861254459533222418041224715964818621587297236412216554483953002105003266744867066371194921642516586913702005512635263095447353621991146002639002926262923182484789367884197674979283121705523432654961663919426261851005953473312058586320313979076332525040340014474739486283246842328526313818531801965522220496950842411325187776162887313967925418479099486160659091790309372453207366681358636452910066356269055594290543944083721616771903242258375245856022457122612900706126512990813153713681925195160592221330665713847401821410665571640978096053868658143473970552323595642721313416397858107664030589349061229770496633819230952476614719578099978999986428691439213209073563701080127956038747970095198614387781689607000756065276881487293991683464371691391534332913719639171922503579840580755967191200580577979220276079489388040568252355970011959870397344639174554631644912755855854450058604872091934698868063101273326203558114855152350614400755617082029018542712061168890260648750651909778799822082532114183769217204390678236151048311942981083699164328682639500500293673390470837071599973488146074742262683067311282234960207535064628711458060936670167283865772072826096319622169866314687509997102943196885905027877592966424367055147667114924039622706774377212373905044573323541085195154978945044981107303624630361611302089414988200384625345800753485211586204194678567832825851509497878967618267266302478050260662890234375769304108475376353953166610452970073678451266283761339264701758973831473798776727447051244099776013108709879909503293811029091540801339414744849672936205346805969578465430606920785211011311566078240733379225090044452700229728257539477105150854643612531274771965739994159822441751276796543189189213050645552488105197089027078650085374513956158277322914283976170380567951620377088797755399841159839686353729570622317912132811272154636439374244137323913610841762968055926473945756516919912688262564707760590303688030303843161958971360342890432671327813070806111633071785022747908505093229584468516562303136020223314101141516931818895719149779831313829768960577886328646989767806302416351346356739961346146455720311995127417058900696306808066012948082857603253223912045470325816965828707315667773197486733058874425422700630448165748279495855637061779525142074551823202140362220963920559704763707656779551606823772528781657435904959018011290201432615736782273210911565579481847423438217933190816753644494594572129343340918989827349061922906684204626383586478103939144977082057720562017990357619249785903238844069324975666133802440145460310315553525197838636731643020359263329424372122613474913135881769416559475483813228126492532904277304870649349629038519253134709202803935651759169443114925265708586750761589532718582162887028239397332956068597642763545237147453414195716865238032844140542402090597481851875031574753462240780402164069033041573320696377320207001459890805751249960733734278351657702765174091082228752042580111898159638930671894060064048781635005510956866491403693707970563413229433872238258379817725921114272811943362772430314718607696396139296952346564851822250702400761571190991373479020565168708423384341443890994315386159139441480500739896223068788747392571053102793455225602780328183326731251923333257962217528081268544764358194853349699888263872218055600368535812362688419809953758164719904734159817673261260804091397251468365681648024315452400917522903355749859025177342996114086259572585340493452772685687156317224990263740080784932603026456636599279665743396826428814739180602452047961529344338726429454945768998953805593038382380416101412899201379463948933996537372884019665790957525737958234937618158174651598162947616751157383257512371113710364646592368523801222461258627035986101930208223233603304970532716746065669371461679880588744978533284726186037675216404270649852423619605131630902208735586582147149467124016652682538486087008340779624167204805243561895354669826299000807598758758296116940182190634577667400495574446697252030445657809586585393663109640702822533416010263087841160427191272034701146650415717060266129009088968533042969002740912209653364763336001916988340349160704884351346870203394215911426904863336732495002719770374507702249287444465594170790001821381696476708960137713208541038177965402632688724018672550868322269050459704335188241896079307846805298651087588472821785357755484335954916845814658377933392474632226239804296635453883845410744827977164615742797045330491961748039443138854611141466470079083797689548135417274923730661502982853630791684788558742145863161977060368806656161667347255532390072942964958978279815152194623856481295249472767725278755719764082599633102401014128382528000248149674341276005611820393117682402670033352177434649884303586885927470667405699321599079867331080190046226531669318464320968836032839181113312443109319803074381762353785570109763275620341103682054368079814780494351841294773805189206089252126558943925289131511290334109626483504627184478624645327623611379075513282777701784784670085140373979501476178740353884651114154598755172334561056102473780857547593356458785806559863112276058493858514049377687968854465886241206692241902604562699375639328159723280608711125519226346899610152493236942828528193433778328928482050765355185210801914794169671682743053553734584236860253336435689273848908536748683483137690659565936332456443513902070899167471233498917035481611704638503902478350351648168324174429201846883554789135947038491171260682954120503764953268270265276355271920133220051691497902987456998623432828135501639577078194541656619473066766281563208654332210924307167634218886292487416033061921457439314317108752375319369274306232852297925727352200226598766102403369737997791295051786039608183088091519541218740172306467274190319171932480982001886941393432395508616110508168186992296476456819450541783609141029761268159935495442315503570415286230087116478708986859476933874156563850036459849580501058871143391704026509858684825048638130646517600551339146807143749250452802444833559220528890036183462250089713866470569032160401941974151680800360515818662590655113203767532053166771892261887845470594091174362698709734240886339489346384003989519031683950457867939455105119245179246413400547071579949943790776050766786901540425650625900808447629431103839739411367308995006521804930448383234622107282258180775512876128109423383893322185279238493566700667111629899613020097341101012610988048121843435977214640395042082380698248734048968387867981883076594133652311563528066402316769299114961747145482699375593061176642324014630493570446620525955009067376909473849603987457899975475830802203635932817021914997415394186651532244887876374195330131393030584724038987506590885997542807246137646713777084615656995541414188051448086627426489192147936111336384248301952588058918375738372852799134192829054356039690907106724094167998642069199370418650553253568223012207065863444282718778947208907362878489499781391880820635272918456785058884173892929455308331149040851703373976209368433725378909411962072176439366567420169598615896753755021403511858459807884117015139372193449686062066866825017708105566223591122720185186140921740515266280007404659455749631580912804390161107955831143330648708233921267009264645669513350114861156521240473825603473669784073667122462307062864228522578885084054629479921976999015633527962262750603981032754334499732044348030088963675945876928772077491005444843959242353157519120478488210557235338336377023562518553723628008339035156567572268598181488273999378764517029742105668518590023903316193861368296338844333854222850332384528308385668723011326984028502476018017096358420520879860970092135905382792403082408605489955580492311330641603247065128300205469608522676767900714735158506435664703813094344640210569987591152771119875088119427503776709811203327346431225761236726771344879541235437243047880130606111456992700812322775937154461629864541149059467763367974981620059452808913547832059963653800187922595532380345789226684492872725458372695419101669211731094382487595010717475989803923510993080980280729910586684953069449178014255563667384030498134085606672247293263492441659522269410381853088932810343429825138691404534630844262344886523176836182067928378626078489138820138410162528719543678088561376711757401351931660813833782952648746497485717013853971949105398321284910395528982701191086077966427983289742754364515520363275997426354262318233734053636580844904213230792705633110549184430554956134743853999900614733406968508851943144789114373580471203002526369102933405156103543162101715813437465262221051633602380811825570789696380268425967149410982409945783590395689137903894403201867789320389066109787740846843194252620223814624905788276365651200841234311663672316654207610436407462861838083543871156237228662721165692666148387242683121213412702815339175827518714139660457964008724826910466757597960930042467606313209224942974491770757017828759530657066139393626756910039397080390005984749271169891790657752991520688674836295587261694495639282782321833678276846534724147767144878641241286871523690551357268663033216329170121844264924752135892839677071406382378056103947411054761440330417487396985111199676837202702680081105222631469245844467338844049244238580511657657757975916081289192670246872185097674608484569219036290104692629443208708477774216829729076357833468276317350678461605018397086228036642064252043288060704155406715792027108961029802931247731129859180419622820811786676042403415481633915726837593088736763949100482769275494389960536394172838057839212741337249275321486348414308364010517049595005964625975861046703283468190173248360357615865697859564376263222192818864762222654983484750048133041341302616385281137989449627631607495168976703279443036462241503138421050444624067401464635524297358079276647765538418271848534528974913581659221187895477658482266545284155602288813607800232751565779516973256074744360834708421946185988974591179010713787644678388195826291062286459068217053134744038637358000573233259076567314067201720246355917734499512009027164683225966675969653860262295965754399999231910927065233496400003668301949841517609299051038988400964016088945766682741985830306474955167453903094741145957357040479699100845215627509354834825729469306545928890916731118194645536342052300726734816672769850065050335791925397211338839785729551007981786114744257952024160435228631187163930977363814084221750181765541167911781495443656509043970210937765052203125361497866607017973755935340796531173054699241794719573549687715013651210898412588774376830303481065472172445629669470843413462796777558828478921038034516600753808069396362730967257030276914313006096170894794220127057853778310812060128028642965931793551354658850440332914521514889446995156280309877453432802429172017949791236847240857445481428155763424109646547318915689916553400662482206165127009934601425703816136353516538089763564628458417307973153227408760467232334625708282674092496841594141972785750977916801647511602231997507144797696495030435731292492542639312170310866634749213368507306903237697624686124726009689425416334782449788611095727157883675892622967707257828244318820116846950211121151613613502096374114086675453417627158029120962205497350533071369621504826422487596897473682031009760286626866173774383699258154177908839231135481335289596849814840607055487088924661769302443997643777090236990075376164166063697335311148106351900306320672022895952483128574422688700045010180735117867883192126813995078116291081915522141581477412879452779080904075540214524863840572874423631819966283529384938586726516271816286833270150099454480525017152104691283949262441419189123312004256560233141560008078736925960623682549329130397937256188523601395746349284297428743203733100730364667921064672589003197941889045622274890877267252117559533574293567892788263725809090667495981970484846866383751346125614586744520553197068235661079712914821119800586926177652966261366657124648802122789035480221278912217637634690699515082656575264967951306165429490628878978579936111973881771263858948307177515691604880985740633374218921691282334541477301915807953076688112855481125438758764144420998456705111488848316084911033746732414046859240283923779502043640057565106222829178031867459492724507731882511352529644933742557712804170544735639113476717919632513420522610390241664759571223274443034741365308510611653836207436274367518306877135346086126160504708525302104582841808539264360523564393741494806949294604635169655744092828872805038913706415014912390689409671065106548710921993787447297497188120129846515774968075036890118818514932009399902066978034064567058959624545797913667503885831495110571984778579010907429516145617251504494194466129306351099274930769476869260201100098548264545028384294440243614888890167422738169506054214535429567710267922222133732112113476581282535276449886537794800861651617687705827471382228398145866195371326358931479890313810377906342069498332231075042034348067553828616638282012312268291989421291970124875484661892896548555822063233629128582217974090923714240058217618410564959561590087785548310124565952006043726618093094633042679493831244693238374108905074926230687112915230165204383594957297427300751097268720710265511008196098325027590401488794833680397879048494673793578747493516040098270564463492214008898984508737895565158412981822242431500887238861989807740505112079867222835215533419291164715979416896192727204703137129213752256690256264654628202915259140258597140353415722453659585960350287767339442153118984152790436656453213602644243220942206988529481137739107777802139545345098392478667443656585288659030457981732083106325914206282746682407940756429923575487912008400270705639239861964712394450669718709884846536893518146858853553245168123419172833317812825856360085464445336497397095650129023004060797110669704466258384685587642905366603125349086915414405984920055860185814530052845216112492694506724813217081541468392332450690853384977943792650927225228664305544312065731037918311066941356837602814074209502225821831967705734789912799179159809481953101217879319261946633607034387495170684886802944399200290111391716403116989821968470044095641479102584323296959065950707656181891520427547921462864274092945444917755137969018386781496070609849816515385766877957890925972633810884181270020132393792163269100399453917020396728371925679998699226921376137186447672715505865490717915883743610370850684029787204109346426451434334126281857546494360331845828915713055913023055976734473076492212579618997018976758470788907444365637177012320845157229264947920267478301914745966586385545109035972581469181862479846535976444716660317459793437284530791265669703259075362847432719752892642007886935109837427100250128825796774058535667587453377980166692128974935578953432323883606734370544094322092024388409514196525332549770156170322842929838629869380302982494970118221301148954749781837992677606737548761959055945078907819174948632805913236195517573343426123944720941499761228513016685642762166338657901059746048155684196200136924273006590035034556244746779520526392141996728946309221787427684687924137627737071476750859247929183432390502829161461921444318911617107955812695832179343377066944333573137760954300634166027083427701382413802803383244250629095265843496500002180804541373992628479950007881353568964043764142769409260790965721430865239482988763998540442779762265526478406191547598959093662283979355196808015952366485487675097493676079896827186691429728039264605715512738013195989581522009301956077776797921066004633994072788596238870849155163912355175816928128653070641953576498568203891520349434858008571223401975939543022033214333038201552309528862247189026457223227594028420858636845863082751735961093891831350558805856312435513009995242072502737108480228097258753370060908182505090935519978586480961372899850429320816297943191317453615059853316843812685224626973613407815858779709182948442032861905522298834483536838707344362684775536676748240954698543492430392124754384062600951625209931752729767156069257003564995435671778389619651022388740017917945271059230499534831770661396722897599026138368674175751708320149288733130148898662032981911052736123088973370762736496484203876370977599145520570826451374887403532413726497362409450611707549077861043860864036352446202033650118591266632697787060337848303813296786200600258987556519636522652172829256803045967428323046089335449380652463661498695338898154639781507808505595883643606900194146250087145444678820177469056368799013044146299957582878985004725371136674805635392680072934866723101608004942853826145078662129420144019661933747165250018605489254235897352080755776910232360646653507591978754260075533820444030594504754314417889964939689810331837508100226546962650969143120293073845875096365888271147871758993719271638345050228836911503265088067916736586679022768514829929818279936221280379123488170607952272280454232396115779670351665866628547843285473101706468798533388587375898164044846500694631126606170061642098395112861060115359114451610654599726782360116478286995454643259467030703336359439817532337119947116425226709704195557247071456987902670887573770505345668473571185243338818535302144114274393349231286591981543436517742825900069148593138702339270120907065889989728509568595789012278846784634865127388823951630183859977131748751585870904975591934153423018086667040592462909904710063296171207864314004125487637575709875656430149392918360450492123750006220368415050791029053426556632101992995611754582561628059826001025692186998315418093233312605459717333484600965788342496389431522189288861186533067167100258857424894609138397631237631080866974043101509780797322153933876625612845850567908704418328866988483910373101234028329380105686272594213427417300933756296560943082719620935877943110458417298323614239507591362864889947936951025448653013140838685735646976223952668873359058800653778334424904272368834260626534470553824593842266864783494596942086485182090557724345296519913225289991905231041208909117410365774890168707837470659959650500094497411235373994803027300813850158549843710415513090007593585494958599744594909476446621241730718411561611017762825022556624590933228769326854137456536334127137197852432139107084219070692212341959817909260849981044041087031337745747349348674861588417118874699653302566500952626815275549399677619692943036126407139508880615403387014837020838275532432646482733737927671106174657705303465722097749721984002675556392294456232688215299514854493700043636222105682516575636323668766660262298450268079361627986642162078874778979541953696544019724964762652327680822649255215354887547708301866648928249467269008090840379811760884774741681279684441987372967604693640490973940360293661408371361923469740514448494753830714833509935345908950416826010352866859200782922780018264708490254103927982617978981118430324983652140961112374896471508231922278446678883323512094458323867541013582265170673839743739581163640382450445870002422009313034245919964214524151098797596206103352449211327774446030615237669451103648404983881584273689037701296242509767145509687135587271787543191828042044814716503005268419654745500038537357783997113482783468133811744279932837137018031557460328052277224721290609209674019487026679507423803363653214244480017865559854018859610496047950986304616151074077478264942288082225372793890716168966794829828124333200465743752434132634033182720920114834104869065708933646910486522045279532555833246882283178580943194710290525541984176726208790875217221748674781477967804590992841299043187635127160701486703409976729916623875664346887968641438607894342574266970188375868948154407631957861003363402661450956172158911575157595820257018596268170453508727815196193409634745516514556714238676064736748736191506889013093632168587834435407205911147235147301978173877817582923974476268402891592285080685651698383282401914784566529210174651202493656552177069423979354682463084538867551158826406732218701375174134483391012794944651555379047102777704353154352547966510600189475176020662649442695638741701172342372203346043607256494693537791983169772222534862813398040344181213974718793361442016605656227148496942052083220087759885303590842060730857908217485569976484461002537570706027403907525038643278995286547455704002605008546856120770067588533423614171350215904252641528003590799376871073539868698716649425832868939883255431578924236722546041847379362465464354822304422235445204281017595807922168826149462491920494314815733178112327143019738768017751198027426079276811393476590522638401064715066778548483400312949086350891983336606878618550927518535202119377115430995825565436060447044874040978000133422831049637746548292230222695259870065805815327340011930290726058386995676251407601233418403433596164780917875129207739298117680943424632855598548618038572213224321380413982884867305169531283811470161862602266535715514200376356572246008574362012027228446549771591144236144769314019097443391346722597701262783337744123583003311063060036595451276738449000343681062411693757473380810815437091532626661699832224008252769298135458845689859742160335278884319433175006877925035054000574021370354590202405863336506616867434738237552576762485683503997772083047669997707035754423768507618053412430661936679629723693935355214075843513103390257068824634898573176561762693183115991089537810024634945389117051084625807471482708088443405902437740587474494327096628080900640506440270650023108473031352043334816619739541938210536496344441537736976475715388322005317983339474571057870309820744848954223614446119782334079943068486441966246846239884157048752431708006190357329234382042704349628067283735050137997710957068185608160482514057143867742851865096829490051007118468802703320600235145778450610019194228280338493244534225408201314446819335879824802288040676083997547903285752324804448585737516292694277059474320008686580108288921993099043107870014515481457435387428307532616356173613668462099745285809007257787308340463653226530914201913112417775221396051176404177599209344585447245079388069884549749455647287335105833817340400945666575372319049234671592079733498879951919681151934278039325285456025720342826389592872363844142300703848488866020964657214006358819491314750361239714324442298561669150820706414810879991004436120563601020630865350647944006324494379654241061366103362595578817421372543155342866544859544025825918278234744848913741336828286044630351088298439658239023320943133857467009456387231760820387193408210946476751127988873298766164869694568790276463548156025508732697886659776545395383995383178509919179136362093963823186558079524324544472570218030305771118199603884203294132728716144271698320130281186601159321771404123307378925963703842366818717221788052153871147704643826072190871938575672043899684424725979198642084334357685872231184133055727846913955472520228022875303785441893702037051242050095867447944166163425928430145819727450395366764392659766996727274709665945045077253870915609920735917190658054511934888212603220000176035690139060059333899290218064975664870480703839493720277937124995023785580073021625678917778046808084713283468938643607368321035332736812803736517662100948857800488600202937580837432524122598946345558152938529801366626335214762502882000910782482588642781212963125653581802360570748625755606348054148964511147664840807191513839374542765441934670930430194506806142038198505845563167775085808303070141669663377907563681418741283709915860461682995705577670514808045764693370102314931536639837379773392807215990679181748536219322645276388049853627197274063448225865764269591577008467006061593188666333053332959861298613332250906446502090663679752570367733050784093163516696020826078327437358925438093743807778049978907277843587909309796342788698817201434674475376035100667364120149782981276985641262169056018281710969082829809685083636810259322969146608294312894069617070157529707129941793466628357740462819520331358079290333785993669156561096935221931501646119479508711276161953705226534027706877734394102720779554083852519754052006074739032019595004145268218338555824740520427886639904074206144587826458347752404447173254487213637864541122881730910322458285335196053053561031730462298129731931692593876681490936894722787328025375802320918351971706024441014067223497302227799240299230685947489538632342579893190420521831867804367129853503731858738739451315420215984854169542369871247168004270178579117910122314181780691140329878949944451131877484562906372751523810228379071206281306720217382788134968378269757969062277342503584725733151863731733734666116981060730640254682383108785402706400892117768872936428265103238391307602273828692032000195099148036769001820352182708629546245964358664277326008767662127562049463441164503881841078090630545359017447246375708528092084859606963440941937338012715730691607898809535478495355502187944971549675705751321415310282785482035594938907854892581410138905624222979518492735988683066416738781529838129999042916566547244700252573201944800912230266312349898232475183088288280779629836218954699805771157078350719668044261153941507330991353671186056724042012617934620444713911170079115249371103933033572308048270277650311868394973825042148564131962225523716494941967558648091702493571989571661681996742642823397756690974880801918075284003588874941945874020239454177163062138029064117775168679482144639689477358030799196300269589368898561126161334444522340273459381389147846205515222747025052000447629904877711070093645522100018691331989261953223859416885439102437850252882860756988093229166387954698647326219463300823196933193857252451243555729482059604171900579048916195328689829088694339880959440039827219108211294990714190757755586681390153437641037564147649961425858823588016582100773602545545883464994370172287267441804125773600473508461271194075370093859025542690671678494680110215252439475228276548314702672833497280718843746692941677227815973703593652623105105193878704507541767008146732130196758159991626898829702382887886081072979203768359173252204834205691297871275239031462604520419346848433563389738101464604706433271777513464420769170582471333991305550752738315293711410840250534809726867029852862498500023147551827984265325997215264942919090483773798068870092739263914910491937553499572859121938459390545836019028303396361517866034089145569421582047500079012716861255588103305060139308589459619094293934620607596864877051797223392362824957773487780705476878746534307833503226018041744153887211820125957169338535864335349277056783468028406731024864128512991695229330016701016335918309314456259933160602911178064339676856671639679810204055578845596987181135393463990840052066246772870989716830964532642839961376692280796947168193312900528785466307206401138052341416091702438135363258455102333040652527470633387547599210415949472042734158376025846486251336608848509519114591255987280114447335418355858936581270646018116690275260698815735216231449445963235940030185381077292338399085609242626300527400160706495932535949180175697135272270611798941433523461141474017526653475916772978628473658124760901422991548662732456523839444763037204110570931284295707937174055013649439505569410772559824006769046293352029119353053951003001649645993346511217005429020536841179108143578023554546795666272744557806555465903351003423293228314401008361595528850031806823002732997833208851790817428318868035153683097713334309808676880968761628943157683498974042930930772274426448463741212821955423068584139801962842716425437394047101719901238050861604518933708021169262112644229009158313832813226579393912832732675594973850563344632744705743303862433139668771691351634233264886832664847129607929623520973057684716235249580886354561635969141199735366334227745358628703568148205550524044508099501088219789332046645831858122977829042717633570582286668895820162788622751165756614976479089972606517080322494520004270593545756398274406503450255722245161794022603585495991082551994630855476081100557758960022030645368745701778026863895323078905660049554755268273205240966673253814520348176593555707791855902564844640929124668752526835050989629557983991393358526342833925213218338321945626104103194304706758790922666773714353852515686596380349582581367563127396398904108242770586900087577454118018758476807925895928629959595401506694666021089709745828525348134967393245317515747777333866093209317414556178799485764009942979755927778481394356488238679010897859705070276164636190726347738389793203659831203860554561654570442269513070976812905482039120916326601581232999440734577856817987993918385692262980496164348513940941067879978914632502698491738558455811672190676254768225662941714775856772637590869128740651761254947727568813578758906428676329471331296475952579209301502407620242195245317969909493066165382505573081602234857078628949150243045757685635992907117061544254323254474853741325190674470394595794150316435171923318082101018452569054734735035514134112186763973643812902162519329795005592467825059929906623928215446972116189645619182645466800045725162063983938867557198913788773498632430424950125498719577984518096092216739169955336081397584248617486875728635324118896075768847374740914734297900301709277224289651363233641447674482952163458005196370431615764759891224780046803828404299255528894039945459421208901346576761866213909985210755497944952140016598715396041095008848528240895003313939875260526462086792007411406506293821572432877453097723128441463210133798280789655868140828148286471885148495909410999023161380523999910156341847900418967043947245569855608103379712761859407631345511297577859311328577744377771727772791801718216902509060789729690925424303050616007649732577340017576204876578246017346145010386221932502066680820309101949690329343252808828311697563603304340189611084578686291000208854892193940098756006833152428581933834078608106582354476833568345312001294392710042557842927479448157590133755821809018594221762327198569165432406798953701872293475637229993840806904461981881609440234581082527235394164995982922121074758520369735626117727961733238296231957343865216964656524034054539177299261283569546487703171581900173719901365268382716843322582196055888551523888383095444231469233534958798470331190043016194196179729708201378578696184013178318270031117157346786245829504540028435645800938201410001065448639572692419551311854552080324244438511010242890586695169694603278711954715212511021703426550735178299569594362620509688525690315420558017764625864814390273973603014015511168420334842649057418664668553776515809541888846177638419968431958784559645426810187879657035652642318172221322153976488423208679068172662890500016318789294158541197825025186530784529885765377487051930416553697254684036213941146839616335376206440299821884646640845544457505164544579743518209348093712445381435745766768721389776444961328785539331255105279655356626911312641860514587674587413255366442090976648510376201773568751881769940948933755181649152885653033701390590476917800661874850227786243505478722341547879483873964376834374018121377522474110057755731691646806939837121822767950458093233346822600036212427372626284768301126898697133965617515170988243404720977198441689825214799860441111832358910820997446741366461504632702534399299693197293822949340884531608273591876012097493459353629771018263442614011213925617969397260510155498855512303710139801921880945888565734108306180783905908547704961488741403761078663634702109938465257450277331169430638284389806207856751019934393772500571614020100042317393255535792420867343986195772130241218634299586594131615663485209410579264429095859028663521933759802406533979250222069900768575448162971224591709746859346646191341193557819039383842752337859145382527701888372816451896001031035020055673441981873151987766546642695502029648426164902044059870899500586353207613751135224161162904994154466074075124332381618085266613632558155515557167882997039054069103793968824136696003380541624547413278592220608494076138585646206931856158719220056508337670719342421316137891735722211811006861869417601235646612438895822752035479640150646970624571071242039413535296904735572552804811695162226528026992600722730204040731050225695255353442632833146959776694044263941980114405785492467172294973840286153369455216809101905567491098356806997396046439778313472609832427417129169560978026502625859762415285470274170690473987639430236752424868132350170674520548514861644115738191143990114981169599759475146570574070266199711267990372012960652947445785308330106515822026781302575507879136212415507712156336236150809202987372160860536988451253460400546089864264119611149530389308283454076414184635027361568297275764487263957009902507511458790113359470131220579885544101668910520642159483741906436815139372047757400874501067327236297816331728416336057508581549629477033917481303278844611394032752495985803508004695291648570493959163619716305894832987558950396546856872973227900905463726878857639492182875725872531244663290718078659994988452091052509336902963920447047180958420667655719777634584274892133942418509510368290942503121666165526844675478396656007638245469729195198383293297434090840163294331934910739162476732199708733273423703684272987624754943798840801653288616025095152965816921487257670883589596518608694286829801535425531975595533259517647193263618149279127873957981108115701430697263574747017052257333710877365149195659285756450737980307976318546192323246166227872808194767169015559063433538103819259342549095191791270557007699683684209922188458570809057444192613309239435376989428268610603280360084151581711262362904881356937046317959196475050526932175947739672020192263569955828876592656004752685978206282682467053330279180912536800423908788921415941149658965430741842605801204848978004093595097247880491676809113127540647271616908563101182275192724338336715316919067543214705764798047171669411607185614052416267627347743479113625478789291667580678196428340170757652741168099541341366063743771668822284916894922411786151883793445386082410943263109253506941880900356004571307579985808487549428678682138891777981068564894117601827284170491817115647420983652182219816821121696463052132330991284635149011600436643694246251563071103451818884211296470124143535380448215497316912300173008898987975667688554950687572419440332064593519344775568883735103082041546074152399712086155141327197216835124779666790979155485276561827767825053596034950613040131397981000446419676705156785047756051610896554386109364335004738284917768607196912705728730733118025185238657239549117634540642477720848503845943565137043434264914000166640910655884546227813788322230355031455010846678121378779971268813947654489978968818766669196788564807341031717794681309610593432718274755103243580180386812941769038247222152188638777821392520120815491258525255038632811169535957888983101673271067484344644188180225336270097563648649202691921488158334468235157754797050067228548650273345127656213762335720173156577608971040670827364718097801346712194237168655376837075536030364232682908521272451442960600787016389964557160926892100598898967516519906765519442857102178084109235421773238716600787587051578264033878634456240993851083542010101447576723758054209881049137558150260649801658136985301175039362205519894670137846519824131054093032494446851273930008211540712879166596173077954436193966049297938450453333393614427107558316597431733171290006361026372773246940662035508436316795989323386892247589124952306308057284897075314330162100824295526642357845151019461219679279556925786033918412409629372943495862492279907302478279400420072131139009198684528879565889069736065656970851119621280423220248829975587712233311745326109137374421600668330617869716040595456702532391260121429596258380145620229329634185446022986930249323712608746814446563907357008444706798458605906356680115177567368249665065083157669325259848669827700030768806893266065165663739848896239176992421863603481997166414503991184160012541970246130115043571266589715116428232317071491613271557514607799513530206785142573152152237004754209255125211174056087063160987754143010252614822818078742330134188182847269833487306205977698218643385154055609077080636092445039518264143519928904460848076677786300482096610356396885547500650880948825681260225141847996324204608580405065283099111097595996098931284270593243888448005408200625150676101650162915599543119067024273944168267839888989886856296752979895746607475347914712706291794999534437091297607249166357899226365255680493015000614279213035905035568217336836660640632902528112176458687576839877243500727471515033938990421479001728755159322034183831539777036111037502844742274923600787978782648529556524019625100159211463315672929777310194928250187246546619467819962898547197650135435192426252734077439495886676529501127232992314203005096019515298992139730800956326252945010524682193795834645092166126512322180831385910009348930747186608047837748430559129324786886901266451423467678024356415056211268497394019621652844069153121719944932000221884283961764720311112208099957941407108969635022071262096975027932188416372764835802824537266054908553255753933446503588503730171327591698188061499413914046684919293405787495001360491140648133174840744383233450328990650825370451794279510976845120245148719669638361004642381547099030631012822377242033683748480256539060203671429326683896522498873450669677161988272468302988169544505766831642722269430587844035808276906882764477969079134711654831865816531361998720272752973042051079362991186197052997614078594559882442442345743607947791805771574853495376870398123475500717999780111594961440812465563967629144685690746250729965193414356150729040627751685973765309706242185845706834408110459458653103126645793603734903954640823461813032021766400078649449068168192009884124572605455575672419856890053662756176966452065481536179565707553334976430197344425447294408563165188868553868122348084257547490717975577727025310245518176163380317490995983235500387387229424936009789993380321421385624767042049096286979972257472280009951769477788549152947959856545339781490682628724185630470683942668779246709337754363276479296848047537273419805576199233814255201106419157331274255668433726179266250374419850601838622989626575973984671773029056905456062177789096799704981766826228130449260768327563538296729785766124505944489547131348500109028140428829407508923670207242370861923477417972670437764571663858316256389393852033012788603055175688441783350235386035878950132577438141391471169956100883580834290505228310680375857886818034707511412182250597183856380792814656450925764207160153907382697279952620526466567840709511389327647770085376653579278961200264329942012493907733782485819655301109929993507723744806027004583280305932588643605994915973036319223144897837132122763400110584632979242108084832761299693636361321542024685696339223686666388077900242520218493386805598790398897827541064685970019859749342283132519176976429001590105701119836517694970969059880096408071883844392752433281333840666403147614052796903695991941879644621226022198745064533819377680428978659559582152806780018753630513166247766908173740931222339255756459178853739943955061563693855872906207046190623140007420018883375703812162085635087920303249929146621329702192958275347512846165057318659019728576553777489505338309235903092613327678319144418635590810190736830291498192880817615979330095357173593252235743654009780568677942926109460723914976075207316192160575413195241461506254699834050652614936363519436440738230638645574159193659864909223733119172746096421089321428175781679565454139177316616099010512189886165011797931103750993481584049992013178506886716640006879613371526596460063336195141327096096723435264834756774126026141153250407387348324922800614365476725733180370464389196138850997170604694122553331251271536811945094344517065732210960819468909744514447337353742807785956375647689904893273080932739763328027487034375149398042312760596814821611635666154519328707601109259591559721970925581007700265224253103690855616507476877984026081141215466165499894191764635222106747923213593260282010900623328381642738864394791600043105062216993749612382874445179388426587084803415571716110281356953290699347954704216674775553607154170652236761159979774269939350516569068990411261919372433007813125298990481501633643165184774416380867792655346404766853190345496767648276391839712125791773557145529234741118529486559766367718580667941761041644238467938244282109396349034500754611643682740008170841091225198797659242578853986827803541282223807517250747137547820711102320914411402944255525942293553635717985041438289505406258109397431260091097446676225872224793388918149587933565334726731756464773965439960852818490725268985523329738448213517711223797068341233681727573594377492287563427087283941078135992800309498292533768864194441154457203290564982526070091556124272365717466667631991826502702255474689585404288000842845102877061452595425303977423186485592318326343402865975672569551794126243159067637256960493919289898526306042794771605992470167123500667966723223081496926235149402253980550864109680998031341638181659074170830051443251002452100942758360835224598704663574869119982596936933497713741472060263983677149097570087385990752602320996846939387702282920866577823070278555652874436626245242118702149662268595685071390166972604858541500201910959255903944471287603765144255965448153322445180551960994720793104065642640974377702680085200327627851504239665061472468375893211290587427781192506098655490650258043965969847166985471394553191065121862993412587935988155789385757641721025086666330237987636466254500840012303293031144514778702383912581237166667918090470963409317839554139535765019000619548459202004931785908300209427997725635584647419579017768981012493829794278030804662968393105080187556553736973167393461408049913040407152902588274433428684322625489667971921250749315201063345825702773441963146973623232964424076167032925566201239455698461004557400295389023307650755903348957598984991480226906186344121220723591588745313205996664741083481108749301947707711116651645306384900991796187867577294476970643710677800542082608597505393278928598250502019258254256210062893192491317878100706245120053892403267187357607077254262634317704852569437789552330208514434298782587978780818106948149487408637008463840780463327595964052013916370336486321653047540188664524506780514581747309136541118541256368051431867921395069242185230348252353745345016370667498399864458161239795215084787808421642021994051063757404979675845181989593911178380240731461629148444403008836337698935412853928581184295024976388928906652866832512719864145183344931194431849823500954549378406300445066413181526586868956781026605868079278423027054891481552019927357491614393158190180502352182057552696219094192801753735516096940922018130349204377984374663178315341005343069363448428063692396767029018356767103547254988390201732203649233334632000562133027073690033245130746911970519130524723954187953682599694002604833149740096987794530627683677699612689391808263920066688394961380172206578399796376230564546677838052649827653223098460727431491966201061444997557135655818738674197330009593861325971620010001338959093670536010970107070726316139482492065497318306425847177302676170823775543989387390120878023118414311787633524641139975628071542871557894984253210937946219989321523381713295295568853752628329871414001681027416260072243341050370988999423006558441084839741016698269363996381536145852234684268519900987895708207598735692349357493203806034032058190538410567932916448511764225617909965363021882735430658592379560846656620450522714560630624555501730628575038271541826664311876231040979617369441136610793171360938862418351201398924437125806284634573317657516664628156903060953117137360893483930341860745979010599316100298722616994597299862214232038013220056619077062109321190684113000253355944128778896745939825485738471499235831685474179053031517937162780763960199705959294300627363443334316411508217286681666551055390676814270452540846313290515005999651097104550463801791744434273504035268504615465545022083052949400120992183040141006935017049934997134755558666915923858492733497827810641980499427624046154628068421150203462999418024981386615901836769382306153325699818398453545524293954402708007653249718565778887095452063245241795113622779353399800971878280914946720850842879523692591130347913970929372560844409808724194287656883354215830473466526475213415808552283603317489928195920365892556297110818787257948220499700863655554110570316045358051917995877720065101993726693555883467359727543330176206646659100912129306776160737323220631721662378788730643646120992045806916699923218945530060288507565645908456283469114707939374528849757200783281395634535412940027168573678643900290975339574262814092363185067995198819332132722373854736205054305352462626891925223524954436970962800892322144797730790225393509654515183026295156154083852427172451381377875459639091435052470429298766161115407548087206811442204270421580826804095686825669095265747716587544653346839938515940195518441255219076403156464147613954590736331121904125801115830505762546523067767725896684772639310276616896406787252495109214218664115795045447182234960604875951124201470409108195024615300657522559015478476504985695937543260406567272570668286820496806703580697908827001405469410455916244786456911660973432139014093023525758459585552384137520858293308892084296796102319681026108964070226642341495108148807688260146661046583321455067718462694607669272714117578609694744183576304948934159480901811285928562940373781073876694742787600820677802332036901831495051839908909281511463628339083600108225681945445972652373352678179153885523003242574117301599650956298304204073467825180049795298589269141909337289468309193762761346327510971567680764639939031813003968161867002229671401769387340329629606632716726146867025233073137966259458491889650702537043533065920124780709666410974736881374896763295267117030274786734814832462714494606334537323218318261201099465689151095523570658535699926027002171857915065542499069034365408693059880404352046692170324385437158070302377329954941546713322901333520024371858774502010703753134005742133967136817702647645529924163515667847219987114695445405310367447103920321023229992252971083936050894401602271560205941333528959104660351815629366714878699672113864335336346429159485474548582052837891459031473310602815576112715833070145351435287504713018621437924336571730797106017262823760543458995040676515844908995239848237554405491667487879629124877671993774500337558070272635223287233898703196399312776774190155685850457485073933363230632601175938398115251196486177584618315143796354401445972803178638517477267720147839761267630370230579566806329393658954455082777286563079623573356916730336257569559464598525041512705686237817939799946761153710432024928797123147195677654515839731089046834579221377055397712454105955574379824402216144814692347922918512296764570231672454962197452088399619400605268972993019965550604616933244288250499319842192930567305468451052968980310910955785940449817426066538845854941229717490065210247543590392493892302411942497996604429602538103547746126190133558932588712575289533271293575424247943909490748243735295298481559830912344281184232691398276291350579872395095867781349817954106498591507382321130411049986863665021516815003820684768745478255607692009853910295185555334275614035728167765613993814538294588139207377924635235558169194488685142378699430851526217135274214853696783624194192242175327293015565770608032622820008999686332826972486330404584465898122210875546032762062093466759048086497092243855520662184710055076396600099193035820377334401658366259816577153732604111183342963397106350128141216230597781573681869932100616108128271559289801683856294245296937779009411166902645246916325528893206735712023759720709563111206616580540156280955770905404365360819755158356672260007833919320054960569443340154671426678253731624518981194622694031331396743785866581321161938603113933544902223413136446155851363729129725040274216721164898264141281005889618241140793027478498499978008981509880291908514463864648264624611272563074989496869768166656942883054515866427431776999540646803891883292057505945284216661356938805669760408564641517690350241529554651957895803926146476835913365111045472193115209787494337410907135199811633492380104645745143990938991590183572399983011411239259061630315605769674313662146796409058337620883330822238922713391125908664095444271817996521378310311596561166408284412994077822732183728448751698795525157141445887745101457078935684154491940283702256940509999649908364274117985361991521837302265909966680357915379140026999622535864870725516936462418006439795709436466565763230764969491536624916561353175261117194840881760830967360061086184671506077563857246991269670948916189384766767830010391677296874663468125685929679431074912754682040286411128116287819862941126594932028025720774023627387288883988170470003663375969222914296533538022534587177132100637926321202201247777953225112380423665468938120241024545396452976495553456185915672830430733381095885866298351358729548621789157395538908299084262601962480924476189408888236359860275136886509752557189006871417429015303766487628553906344023393221371268125756172830795436852931146301052968124941189564225997224589278964222644941560639546768411465440364934273834920845993690627862209811192229730633703600016205605061337380925529505706186289463697758874050215050734461429597558380892978717586785115328941390761010391568865319494589507516123640820463570906377026418691681071289548948583195853381677567524681824143622203423803190815113412439177454779993280932009128979927768675614106656934882040643080846090038583747051207112279869648930314994241706876516242616322612314967653637999275733772119353022316836713256045565099367227145283700213663257397338493945089794438914908180916281053738627600565928435978551465701795197250693925771881401502734612004139387927744470255074458599767639192080316900491465526491207765186615059552314275145369394515470694695658216261491396700581764732871098831188956992988562853694166391283578455399622048094449038073121062030934111746121431055617629706612388969407682118804281297059981764315257613565858395607558888182212898938271101016404339100632241038567607197898227910958864943366407263053333059322075656091926739875187788473706320570498208998426540214618524426934023615579775130072297523182326212182733435337364664217919898716080448922140220693620736803580499660252723151644784798147328841474652974883466752095926917575679099192505137780824301004618654910353758420315186227047408171647439416408080862791055018750772882230351572980198597036630888245597638122694960538007638501834381662245852506039654296873006921890499152191508575658095591164572008371993648234529178219993319960166626912679478664281040837205054773746660814560728918517158140102365544946328528341089281613005437346967733236438312624954224843137950637904653124225266382879661129462608001621061600253298091222059137011620674253615110969148031874873065995901518104728196943583707558181173965690997661558974793158546200236097571167626322716753379259719010897635130744172377002064066644219853156865895842159035894028616488103679451930526182900327052705646842204864694005015088876470192722373524623657662655408818490160710530702074115050827516408784253480419967473214174156249707069219310095265994177500502264027315916678383822024097581099109905620817512798448774500010108956585476205005437967251621406606055700420793643003809371161618475192621911023524384962922486527081099083645843950693062551062859274629305849138303503604068023092980514890759989037985038271306068168847882434664249283488001384767407652845050885069193877262067126894558760186305198785549926139151736295672736711389763555905108585042137097840980342846783771771073815405556604669612083421859069298713313995573266085838068217508669883906806485062262860811166187326742486486990325083294749107711286551031307733605175760542699316030931046777774083366472965621679128174264561848480404347337517351708048252893715467033886985971233699622079772690181307162070685328505637820293790470163410532710433146546250541547197297812971092946058115979903226848173557488788486356339764588366811737275971305819196562725342582259439037226208235190595571117541882310440189152608625115050029875506621103421999809899871525997994165787480256026998864444722604747291901980485343284351423977532169445774322047764685439107219024946228110923688481585258257095624489213817367520462731964618772223939502452788431094003802381315258510246052682878951455196748936937985671980448018173703470252241571697927236462139065488510808619715408124723425872907174902365597704106994841676117803878193993692204516453013701512325594775918832333416428672346021194295549833275285635069017550347592050599735646682595078050227287442549844816465515103483451739168581892321271384668588119525355795230124539626025468017078160967068656414088836361247072533084995281018497843361304361028657092310667814553258724243725479009605611605460952951500636805988968219686394541855938650107040847995741082910470277097699121534689183999180392576655086565677374064529001005032896597790819063106568540952440010919653726010264621617218783081493448216154539770420327588335762877708590003471568307476968797344286519450335985837717463320245301740297642169129781624560580853457978986102699393221581946227682160353500047460100060841163774731139115977446400923687772536438027201867909008651061586381392224037951139810357788245938141453302580387665666456891876240856322568747188300163927583708724658239140946859658313213655896985882080081443397966909539853447410831678836776985262269883184483271703627206416287088859006892392145414406958153722502699107628250616377228513771455553232726737826872511855114920180507347935098846581156990260970142392242958112643117962278239467880842744852422086087771053358043669569785783546662646931366898422298277906145294684377405197087968266422335610128913155380500244133731892802124447488877288855464861453309843021439106852663091300419406103023532984890651920373811602129037745329424255659418402796373116309933282116230527583655519632720363782942307221508612375942287296514243307743877262632831876038772537149967022560849179627894366988156791855235179252040609240747413392734037348824787943149635140060991151579771433108085386777813040208715207070118523927401022641760876285956120531907304422264019333136830774555302905411090036997713052835331413730378286957183076109827495284288429149680270294447851395168742527621373514489775908212488881077577154051316652732905186464099626516799603912502333968267672385026850022289763250679441988935884103843905788876808346229196654264738819780573923120778905278405866106140508092282739458559645532769880180689544699034020963888676307407891361125304900560377494976098815004355236025181929688693977957913349309365406172060924941321985470811259119426423970562415836424659491806983169357435009409395825878191328970575247593131155269808355513756653538197152615584362639811747531704000076505526340632414655481837390053937238443090093072371772091160113664045815593749315163145804159353541706183190219129346632992797629627328030262806003743833509654035368037252968280245246394317325703350183012736641121231758624744721488622641076931350511673813737634117943758863207357032560925814868874856528315982910584585274009153569122974614762294209185443956724692255045893481350603210651460009215527039051623309738188373824721087132250841767552935749419525120221222548265141290879184485124973803011958802215774639508545406985722693399746747641349856289510360448765193021887311543696224731365752951747458260314636249924252205295888171802649769108174883634939399912246204077598490629011031449730908288238739419535556832999594793525771019071865049527836124743652036892508501031311685124414945644476481518691691127515786304941944103039533834788805864712803219142211204267425134120295740715147633196693300916659345355683996980573081351694323531770569398258000713882500998446387297795840917798841526204407234792823800548806635718445540153336058006121880694491310482784026053286820060212953105458921661358128102851163890511503395423908058385009815590378824562621691223297539258399694843121970746118859935909292006744995616619761253396454811003672930693081768389859087892424590876963370012584549393326135373985137713182344712320279180997554796723089703643091396915510177421489526161060712328364949242365062900251791610271776082360520431902362211030036544099423606535807672234669884342895571056956146320336949011194039351327419528580172728323128417066463564692364186644172030624749969780044467212337918692830142046645751938734146431530064415100487184355583307208804885370489663348388034786407727444434148676509597764849964095364159895431386225803323032656745011112459556433831669831385471965164852015562530500477606673248768252590584244968198471379816917574420571891199924157000821066949091597632123958758910728716270956190309638575467989389797592028573268166556933734926237407635880487517456371504812913422834323856373805502853117853391268045698304071937349867997102679000406455324248687985327027264199597603019132559168369793087503706850668038574234560915750683656095521171469111125941785669600183240398942141634121177162085801237695746636855950255501621355001232778361309050643781842678648284567366959755261950327638936324588057947970702364590617884758239559119736153749733418901719643336467331020824209010657246472466306121786953100190039859632913239003499161409627438877467688765882991117612783209089958695601639862762290036378813760447279708838417776270728714499886890868786306429897737998190792557020283127080141408214060969328104377743781386979559657192050709598251101883758427436069221922753705092862699230698434706306206663607686537384181080513640268431637424662460265493298264555942122048364565205327584284454483353399652822469937792610453056696888734237299604933480534547956554728410452563265970087508641268830591174453682317565978474971479529143708741573717743829660239978525091941830418845295236094068194056455410242398970949117181047272602492410681589349103599010535109468747057548910006774359538423148711041714521277079058045996223515853025887967370719471422258114898818457352315565692677241111168802016571552624309645918323070751236401491299419532768420450416577565463711757209027434946980731801325727534288349784624067627246751166257880540446764801755568916552982234903364748315672604354088686781858328642853986127777222515931171274737142730157408645830461227337063426542039484834346010982884203466415712886540235174915696434442813390583538258261167792949496357522828321222332210467583154890426813621446968049963687162119352969321119995847440133400232748243172104843984168927501654412359757200993470071808070565854542329877922163679737713234871812319540345434571438586989023381811648365400635865732936475635351130206016376441943902079453871871863253408910127508804179348910225737566115877946255716091631190414042908027571206889591127528403627210948686754683859049858061306156351724197228447216207614497155725397004301026635125840145397812141589456301761597559107244445619272462125478362271985937473787803404405761457974745855624057307236451043371828988709776672185866162874310999993813629976805744498269916622739159987788938937959374875189414530996603596421448984550870526214363258455260066855594730358120958219351097917711662826070265850388784644130840286895191209374308052311754720121706376131591129109590090635517361704581719698893619830358482919057517084467682718288557027329153831868531294264085307296807343030683012964149447835398949081448147673511313408973084641045156186630732011847546288136045200227550415149552790708711384968346049472789773441541484631379420859692482790504565452819887180000811315388986414671153077247584731006002709688878629282754275272209397380097029195262460617273559310312951864762268768474738663592511775989931960898718615593932493873785148519338153379189916853414194899333271894874044459545401021802223341846574168029902317870572343564854359072131347139490886301702506240772638909332692154715714992289642126068515063595061693390190810795777213413628325689107093937241329698811113514934872715949487523156938348525215730929690726934482132342428948772728654215384840439090269060840395288907920028533144001406049398816731663808712708093694917922317346037706850318403394117137878933778067179039193866547011798769297431972173023913428113470860080781238437811133699038949722223617039606583216522303477261485026523959442594861835538015253050200345549520506340157276634786687095640657861869154319924599944733401091308372080980488740177328760897878636954584140470390708913470148920402206245168290649805633699546451029675929181047541749209906758055131668924037129397726723978118925988337962549953127852519059531767516363593808608124221475004958823716974253338897391974816576367402830646399783989783701474305262090686749976096545496231951601179961638744719039025112387501318038389354746770642649359912299312464581056717816146724604942047554328947620488340361768420482229794627180751444482135021271613913053651805827912838249132816598743817185776422044989717675740014573912401039399314523221273022597394811843001504633692055037072578072304542785966641784994044290583271036415585728519386155689428653522222367122661713898738048504684654814327415606138975513829878179448516105859786210583829558317193717425010007214117757173013338022337395216320512297715863227389732732337055719585087816776488622630525106341243949121724208388721280326928271937534613996138319866701433883167126998253423226185585071886245198540013480981475952787013355325580839506382017311988251636516933558163414426607272677577161594233114052614277778339884042186849525046037096009544066706644225119211763878859294107697938507224592521631152755390738046352509749334706207667937624238338475429066873924008790333486711448453888154180630590316535755350536502031400159328935914681506922653329327017166707348947635112440844254915706203355467293890877582422945970965226062056933137008486204763678969052379910201297851509267827503827879604562801944247138450869932559739558930795553298218478008992955859446161804369014026359810601001416837543255546595382265818472474275862996627211318743403464888385284531876113729014964846911172459845664446814847584584559054037186086376949559242653840341215745536956267384472151076965163015452667548574282087869315694848560908132730380020764270960478957019933012035566882136509121903143406182334966886882822105838576561634017881959542739483590384571808586565700245260011200415216621073926974786511452619866215714363152896073595573609786204070634269976012783942421396882036391176319015560036295410797976965763139230372658728500661375417384286157601772039587259309892763893534480410246777876962626719781774910788960812729811912304307084122696155138892190522093212525515204220239536887123960676818110051232622943387292328863265679097435665864723714171078539528584237738036699179952139808361415497947805680881281035406250884628707590138952568671988778566108468038079878456171618225634274768284954391665263170583586155755590613745658031995933393942693999841391740843890060634776986718178553860418313798157282370799432243002826775009494114449575064113455932580399251882792895163605593934906933991935608481008545203938097737970555956402445859801457811856290724718146023087176225653699013103745974598781670786944326199043101574257012922973114891078952859310302628028680861536074944634679755242219546616359839726707045066229429310262795928757714775260937968554121334653416204443996462691670178097626441924727706290569167939298423002927587749221641587004188756929412858770816923937812418470070729379029749894088717704672701828016755045500767457914532963706251710088187993045520367895113321070922526467646690880227988835773847483118685398526476727390877734644813410707569402962774647848324772754828992798653189400829575800192379374113780265499456981841227876866665909425058120860837890285971072706927034333526671357947856599569201181283402102587624265857014895960438387445877614074451009796245788062780752479505169786123398910623648836164872946732100187426935558244892849745201223381771177622878782452534056794041260446527319997051903663389182719593830952844207688245124327991572211067455418167786548839378994642385994859396325721519949116904747673116863949107385627796460861899455888131231961145349255228762308160768283565405913768507994378893507512652848069545998011325313196038693141896554876771639254031696643437127811265010300602183137723678018990974348682360344742280830536790274136623339793011691643602820064744984502728229712536275051416138438538668301206037820045235817143192330344127045728454488302400338471215546315857556973958315621435166203893704122625498689423823928233343092026294531391121418037955685403243463530993731401619831161338584306930189161446804948568107010350320583729020854441089072567337812058922090014266527394183882257687567426992080181510584449287693925391421696799967139440103289803025839804804538889962437692076052914365936990056491746324760556087070655456720536823138562286141408312718759782244636807764415836076887183481822248928505878070064384635318066149528355022486762608815757774920605297525604857068546207970230998199583155858636188286860772818364242146471107966867063615390883629672044632475683986104997424464339986060179057281111217211125503804578588619783298404363978982374901488152482503817031496783434289356881855753749397019449923090430785615851624975057343533026559260121740567089307735488612491440625176154817841714238691155545402088384895334429752386258926318075579149913392004688119643916230033671913884587845721082811728396303642415295472284942912453183988756282276915645673582705471173990042223061544243550124160169252907101901060830927132121978533397388191719022918137717317842594332173779226655957247674910374646517045674718924598101435117639105762281286906173256402355432172288741486971127650060734200934796988949986910735761085211785098801647589928213355227481892284573233835612606055692141411280425384044969239893591943277630216346200624119587491976227912250517096854227450856959495639856468648784875224772555873507845408627951547200776961259557438120869058012951514177081301390152020303500075181035230429212601587453284262095310736802392132777865295579380359445550201698721683814736677483177613256772731229374124712564222347376270103041997428003862224154743256410438576362157269930561615814758206069939225618141414767918475990093032906057989648217900051363157926690900766312774728779165819002117689500030252731059288437427920020146365465581569153747152091789887497911768719764256931226873025257645884501579421935055185603823427443094366970718080183250967116848333903079010157731692415826232166477495770073515529353788277497266755247489845614987046431913371494588328348960666205095746544492791623319106134808719605973491488761266185010771278731988706413694601153694149748616335598731441818676309247161040530451964601377662266297456719944284861398645803915786756818727143733586100834192001528513643850250678145617287531236066129194159730808384743669766170330299877976899042752948684359817820361394067490169121572975620955774030045660786023938667626990665583289501865778435127685904740862098158062280744733156253515343593513348436945632271274460364663194536428308092552865517711168575336617491214918723004241861305955188903672454853046116987274696980245793672272701686551157541746712770593777653506041706383369533657153833333340080210653125045084898034267543315746742143314848855996863259958838234169117952548296032810280312711398291637918810425915479247190650835834576006704784709685487848568055117452744864568828019686086785350504418480364153249368495745247259951457004998737489607230519580544135949277222392680648757491831091278612290611196074002721690619036526020829975341890772832990868137803560691263561260755055130353420476029442217596858636357490664595399125828299331296092355536478234806545431052963856614253348208406549772243978073970487621088564529363510008060660917836928856258296784124076810559634767659107174608378755734351447163453116154359507560304837121223021135962518393172401438682136219169328672918747556291024418019305937495264690382165831911006559782380518843985444912509604994042001271642499763146044486023213992359417757821774083059962483090201996544332626807405069971343452967463353877781361199480956918678051653522681855017388840142898545987878145722668544871796635649006965759829012912042954111859206466475939107447833236096180722678065270753166328896689311578252974957035985615003535257761417119368216489814158720593498166516918943408826703903534245299844088447192526879836387199029128044348392654113768776339505465572394888164648230668690318566524196776837949114662556013200583617445191047601373022455560990911778463619194400617401630759177654838146066619641968950370525353914223871858052109752042362382169125022510899666209998303615082787881549841694555082232272618295245178260824225532063551155822527515645804738125954882103037661517265312218765525274064753560350722599290378604577487002363964767141349451275375609708072015004908970188944152536810469611639969328910973050693366052959708150879747878132307825189594425729411396735639657884278195928234436404027497030384065132174854418870472660319230089536959757486915401838249068074018748273943966739881429652552295856087133868673606347897196788314709477538769077977051013567051884356064923072423379565122283006117585307158851063213263388014329513537349276534580399726650034595930388750678107578181036355434417493204092806112626310353239612167911880459932466400804749297629892189273454294462450691595571624360831609010583443865867075265158458725719308940976819473368231959922588758409622525308037279496691552032820845776231247207449313550981853789708267069052453116796776307524759099383135080036786339376317027984259069770738961462323050915484218745185343140002099882590552939979198987581692106332759758073525940034392387749660761701430673498870777751698611641300815492912045905701862442553356437564107535130629977809381010933161453096037690492130726046140120536297465540225572425671562829348649762232250704365410480905409677384373784020949744370642311090655986672435666407164939116931032675014954818470537236048274448745413672708251123070043214378480795958487089967181944993083745101925309694689381500189076460858437550565466385243224558470911620989111927212660784981152166706757199973978242491478506894687465539615806214613654733399257526299704924469486580583075525914681281763056426763548696134187204993668826289171301159245357813690735374912553284218664006453102963304536136173262717062935955093717687619864569767126940160657341100262322702300919136297391596147769712175592184734955863673516825499442274435148142601450111762492305696245371234889516983857950490153656782014644014883243885299230516687223517627505765758672466703867542086877187138274300703727829953123708118485453681227653580629503695628093994294239798704034935518737899747273417593725345300547207007885265226284392537463216840342825550451674518025660212445785428855271361594858035138556681414205001115529450307091463849476521822575621425452830129642642347898535577003850755293825828588856625275156167747266459279610215076627868501237503273024285895600121879644753180154392753100028723225188083104586121505225961276678813030517909522248289115030270263639383062703696515037130604358900526582057988151229557883667337489633569851577435082941679879147701748793392678722384212110322679392415416389951890110026461999779821358340978248905616232541478168702185849433200896500053387020105084690583866231948332181075899464506467873454020420853671342021615235222714336163184005668234715752107341973978023358771009621314495920716417470044448562767769952759305900816628121006894280560737406689948995590739831391953459762543512032433770510662419518407615877222567662232849952316427491684252490019669503038850175796886541254358333694284824998004387035843912868603587983730303791864894911489572945447949550952206905398829495699423389009624894139305875216757450724124682943755739166768928392021647029414702386262909343071064706640389897970840053716599286139639157362088865003350741456874088484096369752182244615393117769392366861809399050424989057980701960958613101801641463026343691626862502522929858770259039613400428210793829674813725113709227332395016420435968857982069661469333953710338807448831250001477687283062276944232586440302612319965146913472273209769318597939215401450016947890096991520578625253749219597375622253415130751599582188376113579172191600815039566571741944459863480279390667972464902231871663499258235082396819863163940070150052142140338668329576318897902868744306203171229293762033199320417660647397524974637535792504240228330710802272031464075067365418335434332266039433241396658898740625144614376872081897121421310478795009017276198779435692201971229058791672779186927878424716669714946407927506703036996248826274712383316831783040740515430455288096721463191128544407383716074918240997136015122223211616268982343537441418895653299980293641264809303357003493188282561960819886112523750531408652126765990218770783080849918043239530292675151264903059074206461405482763940164949166572478147530403148152012775323439340044935215413385963838785104938209764719222606979207642746924460315136434457433633405964759931804187610098892347371281775751437897164767396909523977686520298402099775672217894137756233745650760016679338513402299078388290419794217333570245852607434589561430716647229782977501535892261091597157008754934898149669268484877431119883231277744069627441820497883948572486673406199316460828712409298186083932232086934504760515263540023864357611599603948022665150008049883046237010501765739412358578785825356275779373186627205403468163461898707536579900232943620819556928335268058984096482067974187082712241983316561884763410185142890585634033957867353861466019452361569755740908142075136088808507357284509492287295845190383901908147578756355622379378486538706445411336375061094468218491310344199334541507504858704070067957499082592592006434396222869349710117333001242847874488303120056795324622770729129076871683668714968550455557503178430864182207968931445822308956427968589040209528027314676722274101403255260693106159454996488883661685035560538360529534618281096229628743527520502288052114240146900217744971753220959964535629914306444367885332971568145618530270949782856452517093239455142952762325672996186387308143594150384087478821397342893080428302912835233159742584943535079722473918353742161867740778489619377470543250589421057774331388955489653693566801456489930018219387522952002047633353146584726717517451612612682000153992723085311026245945042879349168973908623128886414719299535026604192698964411960790006777886624828138545229804747815026705599409653449115759248251977564488861190171742951042397598859910414948102830844664650299120840815550940441680565797428884827678197581328000745958775969408217776449737257750470786751132382647593074314594411678031080615421912341105646592022327069496769957163309260749322564399902936120908065238692415776789445883952541514404503782204894540499739771863638988318669405357003187142941008491478627977710257082510487301649729321900660146446248054267695130770934865278235375289435645756318161666553687580211836199540025867266894525644924304749853803357113433852471385343806712023539638465336343342234799230845538085195992831783656181627559317166016731134782896634707109044677739021345151943866362054595213574222550942668953128772910758090755032656550952552656918248762172415227302743661985324922651948560040793550008018319712457325936463790939930663560941892593143852276976223816233029442012304685823948773519365231928558288974122007117018167950382776960320206402608518315958528331230880200961001876816654991109746200247783247581827966702758146284677293947655698609291580834855632777055015566600575734112280704341624179517515787093309662435178378436179660101258578342987648763331827403399147164275291053649385835954127748832962984656417978907215054627164888780546122980626462444815377732633062416122483950758649178729093876189443144713809341907988782461282851693839672657958833918593826559660055765343010270290757217880876098951931883864301731373172164616731871370794302315903062222868197162850170885024759312720681843064007370059354574530228709195547051979103643397438218311761381895083564326154662980011317530278693942605394450386409864043597034144999183462073204786027008852342710200165477648245465414014383770727807948067682214628609515257439956103682810277294820820078185738735661323323848389213740325036984957564407001783799825163761004038518226147340426106129952771941811067730019549200241554438320493734171259458528995704206472669638229673154198029334905400773975998380552721584542515836751877584500208357001822243931034549816193641260731194828365440874052986636656241075446437612657704849320522712699883770451114671056593960408790622941693248108732863230304267751118901840099732713102307566811621132112077266236008859820020621865408830102304173849815482603884034436885937518486274371273527602488591866766825922528478749994088924400164497604505046363003897597925888688958190909199732424974687683223255535037218263930874043411468557609533817253169331799548926805976278574109502720879897647451250188081365117904405614468559618808078150647065753467103288392974403870705942169155823558376563299351342452429144297882620129931185931516476113550675036340921264680810834993562025542326255861272215385823320780378895429350329059445857303408799659157671897507087267897321009167144517053153713282703298141798270700405725006429704642494770685332661473813037036005657908155867228874282695182264692188027279486927658847844001640944292178920833103559482328032646049090531652330556017903422806825420737668777979405050237454749317704109567165551047537075357267853675447916278794498667973267328598896944868966424080861489360534405875421215381701291469930057707614385761173713276206125290631674100250728547595968848943332461689936917272241013635043594804023424340213612361937435050226890280101785497230899753213422259869646216133752515664035378218054265616675557466753564360043949810761338139911950530319462898703031806632891674395799339119335779753259772950009630892479739999201277432006872416159559152499493993991049820292115853633673524511984979342910157460079155781561424153595353523425265074324488648372080536501888637477314994737194491465041500378497157737530996033985950790842646093068828772996968385054553528901504719132950082265762491023073512051777841871194436376363322802914645225233304845901771126288723696301280879144607869356903322004721473202744069222681469064714211863457024779634210458830324724052656624888016447497754057944168875054893652645982458310397733293528135699586918654008907925406657940891209917043660153915712468394638642836812830134732276518976704381993655020016129251055209105971305356899342518063188052010431125925974679192282054499372418141310553821977008416171773068530185639219373012705896948337089115477758940279752709755591716936408433243723582705744700220193098740329121308231621660369472842306920400529247390817759716598693904201847199369087802702901684263068027775899616171962718125894721992090313888856882416351548367281619496575784445236773703752550090902756855452778260588987092057906522966708365080146029259152642526248636536569561487582714007333225517976315568255512020540027536910366710071492923015698412469270328060129321615168445204927113937171702503143147418996295123405393378627206904360096761580416346141157623284040415658000897780090362095735860697922660699013408563521607779542138824717941094173866367904227427475702411909728248283753110736298876924056379477168216881408728623865034656653796434472306687182365140056413434903585435701378960230850917052808026573403144909249979544054444826887250435535734449734858452486889891270456097537461318486262178589822139517800751097347400471459136117597279806185225325460736196509505906442176417962349339879331535761535520138381641150833208349674664472555055665801165689496455346993827674924466175191635849730422374724520632667402867316977513701233357322533593811736097177139067447145530526564374251782908481460818666394875615556543888748429156881493212033601755960002465917634002126454026621219776105794860390112095405658893516813804812443932887852058743350419195367634373665997685087919688064257255381127048949589430314204098564094846440580418096240706537810899843995585660143334728161751729180864575225138951866292895480732664974972914795268693524383143379464932685806783367230812868409287777967133503714172353119769464314912967699612532621134888932498896630871746329238689095138978109366278260748732495035345398890845192261005751098613173261940201920670797793529237350733480274303763540096051054356467117286088534551432639643889107109631643083607034794598009712366162973608946422042269979128192428272880978376073477511500996401328257353337765614139676585594919145211773863210459058637112097648068208305799522504195209597289202501838749525357071631800013279020385986564672966182314982693203170722868859080143784005043679431666764579761935258020551989888778871765997972083403066948788424697160210538307355638735822418151149964331051653146665842834804529897337818190087248679462453678217556287644914174959312429639038710766250118715680424798096742076589026644808518954215239393346394767989687166439390349040874516625301439018747687705192477373023321042518569741069278739010821316081365634843521301790940366447266820142156470450661183840712252369357742554175453554761469337264113867594215052708338899013216969113796184864195198410967783122338864355200940385666489361539678175694555529057737979947304851418310608552616513902700899691655346176944330734185412376880414251776833802970154567699741948198094550097947477612480073224312674517665414255596609899761340591485943672465422729182384520271687216855630914241788055977840325735637888811243105935080319634162350575236569874344275281813923106952177332045362551048737076783509754868057853910624747397056686069789596786088664325526301913315912908224325216668377975056096656223486095752162265085417897390937483701536551603702928415082765768144666922112803369351496872828046042251312816327766682729585975154506363131963648501298164459267292894292629513043879015843910997481601912919939186324548826993277199508010260565752451979716066221496467650426227889221625719152551914424417941905835364552180835371383007238942725016948526702726339179512533060354974221476897754758661620240884785442286039897993852929961511229944287756757380119091204143042021533350117828712741692297341497364414185960433346132680180109618325297704844601158191367837680484038025869395700300155766246181785315390041615402240261432273417584281144151863404350331198740847824076137078607811334010131958331035409673662117862459202256744778818398480855784283729669164818260014817570765963531862989807204561031984515207861961686457708450627859666540102221144656561975943451300366955433320116779450985801847152598505935983749673323577008769479739843888306419281529077221768665583219779491470112675135469938552342316988753684950798147693677483165689322695771940056977482009339858575034149328782251146870111803385781140985652419044323231711930296923607212156513460221106416010248529966747615134429366103249747855529309498348410077258793459523074802934007678999904164290743480466918805680313895535184392172702309188471774449301178620375963211046024126258510947115302184516875370760429646843683265764477940910665545342091797818273742133467982794845215619063340830389193044152054803535174650318738785228708543380719451902041520126867891946325640755495407282186087274469299749353034052912578286171697736785581898551318146872657890894077286068509155849370611343093336360369673711222138233559958043087049533638869536358301034726840149800699449656017581246803092303565457536165316670597104583332286681127481202087842671134823379307139647607199537654472592782943314696124440598126515723222313171852753831123088026271823280428175482188238305512364742654953741909834921361073542458904042479869595747201321834470301952198861855578919271392470126065743345376959663986600522358924902990768972718817718117043068981718182559884611199016899378229144063363892516813102217328673877930790590195928005563334452266491963296703692234745498628437081858674851057956572210474381419232048452252794048964906944152739648158037183039289260532739263003800936349584484348117280612310924836751287801778987096839816035596654334130081155524492242751908627717304171401081164374323086390237388895558028727328314798303987034076216888197164024493552475265487732286336918402095175426569358763335620605877050594550559698814367577087581609070475219443168363573579700200511382048582187320385443006737481612938352055672511418729911873199211578641799579978843039298638572093411955269164039105420473552840949201318189213546263094552051580329239820636607655793097980847209017967728308118144091408865628943816016592728351805667832578799196528718304367738189093150435016148701666903330646105870749033080780576664404921352040090334323031170466716562823797557719722504046954625722623722397630546518780137569327620558011856179643163051657452816075475730649227860882787386285288351253927963734398929981092749904042459437852157453892608345011070675535993084914505624138066564548187213542518085961606040624785665453709542446579187626380562380923512986234791532882373803584360666727876837463553055278482598366503346920397384083786795556876404219797771739182218272954901602464631887970676296942810473183549247033926510725647415871234298332722030995735554778459482929567185297409810125756793511386799108208034939555511364125443333462836401364284516512197481756729598839949524397703095794733446196086837576407572884765500011170451721676814804936562702105825164921991043167949000638870708590871290382396288822553533696423395187848712920628081186466903076781074795880807342848314476905477832034755488919355773999190767677765074998653548031128319604806624950408892200101814234605031572134964377941054720142428928381568689599334344551737555536278289710601147542167868403739721540946672447569319195256679379046848185672490635025479556339463767797967945572714896123459484332436767230993134694013558137398936938255523343164092780116964145194261305316054764638571378818355426873824684771340790128744968562808677220823657875457745739651526412855783516363849952679727298621142805592981322530690163595489053367614820671853956537630207419153418384804954003678479532285955228428977810179653982954274605291715253793495212859993384099680891168452386434508795596083603637287972774844441238709713530611230060925825070706012506058085955054717604642791516682992103581600252502223390232674381615069625335721281549887258170033318443177922353388260326942976383595477327625889629796722415176701553890497899767449558555914724167452224335747703837069952784339373306324176816753484339239795749551508764977883021288580133892214808944917542460075717377261044798017709944771671535381268149639610249831456177729310402903441044363852753547539341013614162321893672261801161297758637161884070688008074730986880255871138395459572855851043726635577655571535510963063742356864678717282340782701672178006370235196082611447564565221504671823641544596118093634706727930343243452064428916395791105259988126862343926799961619544826049646433125524115542018467382202502253651898054623640488263004165587362894950857948361732816995299961287939888672139655438889602610458208856822795760925421151001957051983530470119376712599973115084753690654437065413013929256959631174166507852106191267527795958025506387203601003031783274763199529362287640940378784033493416424570110461093697150225126234707834427820504546391192261331043244684849852534024797738699874077580178456882331732901481203390542322030366919268122824772903942885883278885738645195144308200240323198339052426904387794673328148701575884236248982011914652702492798304979793622369759282781180480670791747376934805071216393920416395977096974784128691066498133337672237490078287863302662319512672143208044883544660974929647006202159874641061700727192679278757436792904147408960622332591684093049359945675334287766406116618690074678369288350130180346463426815349195593428558231328560462593837355745047546329978664320987767230891243689226987072604292846885312573425154026845196291693607963384503583834205704808559029544048022028025901107024677919406304913267530284432991869242993429049023346847105460826496360132895905960736836447669629564996963144099632318688393123781163547460188963432290041305639454677202992715210311936545675972190292954697856070359174983431579010952108262490325452764259282953271072614613229264438745564897072616029652522370503846377332653917978934302313091143107145227407827003562284643938975472939222582152209882923761433860392529263475550761763388032152775549851883676266592996406027161720290509533583716953897638044291639039508866654255788189787860677824787931506150379905632998702172579299134383696543194678951531978587025135105918340213202641385744856408451539368308217366920755903350683259561739973429842886906898533915613223596530972603297083642671189315417655776517640227182671822416739552810209427604716477611370362147182728346409699477760787633349332098817678356543451884955005596069490537532846705000730111286541840013855160121379739438725736540996702001731042754211472425516982377093828365053814139091359961947102699987535495108129951717250979658586114478090523646529873344577081359003878457756270206494759032619176366524551346271413206006609987495480334726693815474036832081472353568994482578981025398042176860901806116522936706074038173286269884879799047042028268659114145151081213621925554170480510467598462218337776893336466711575520810362066766793368009308824627748141868043030219559381024916718127107101105120420549409121113843974135132414182604504344670911653862844327262700256359061440964702843641462638852518600855463818377952252890633252776153912049936249263942780503345298660553972495553266174246066690829303291204149906456347531245295373285140525941691366132952412724288538443930297967807713983088836982717640620446106833630052500310971350787871820168752564222188147517823771072898212507500040429541077960142720394437044627803325503777399843491086884333243561448271844482883351880229126834219251584350571167943146551446926092379574731578082355895216808610990301571966702524805933095182889396053731713076688027948159326746900437924885077923066757351955882921539672895826113771487134910251307526872477435420014514658728216834630653584402748523710499156742780294820428791184125728548864648836153615832253273498360995259158501305152886129618528629886514471573734052103843162403993995061696752899551815981364097841207530409544079412636619769488066368284034326147999267234285600386674272695562788283039607565238895993590016494705208342916033336108258511534812644766925967196317902428053486942900790013060259841172395636265011272196222477347800937681710676082675103237702233135881149927571304924189088631566131024147405125218728633442821441265106074729012767946522732884258285716167660283194107809272289039735697204516111209386683071868299055618524178526521384348562750897741009475281658874982034842709660832571229188719307787319715700922004301749613969173457970403828038223010511356418836917863629983879599806009806184208000172568276591322182797678466353610516325249542369791179682555745745068728049493849763449666947933627462127963166930705909472015015376601884667622356396541941155357574547288573197542365264671684996197168744474949439865866836721550894232405578058165249044169034384526909825707264369198713160077204837020590824088115627914698896748130479260090361655154967477638407162216779731217396575002790922331816356593296294137882282534287845109058509959006064221502349712005564787667359035675801105369392938767549687978817725683390734076497183888827608676549083547464802619076636533926640054857551614975150401675167928711060328095305400935813246278684549969071226143210816854786076929192366456615354019051657308095925632978274285460232274654118356062133843012682463578473180180305887662527850934866084104856355157685161673997162203928601854346473063378830119525316104745060092290366033418376259314498170177858702952874188354709761779999641029457037463064163171354286491068336814704507927976849181680330460425162585707338993941688587419072118411299109856617463840372096288590243883239160433222040098742721429075458412542602955413424598920288308096589662100074737977213861531732486367471283783581713409882399260900031606913838626519035184871946846183883175881302280993929227435896096534988145299115523255013467070830339467015965028452950782988357298591459089823828470545543726144325407484251200739005160662327769721095941292293417716979244564684059994865112048721430892858160427584602083860384234066900776297141689472529013127285252221671227221846953106385390821047672448835496172151293859633235780248429870815746033119864212356328240283041920425009846808282883135560122286678804886990746651884901741185229406328116868682883083505765971761227264869221153076512029081303536166413025187914735091621308991015579548915241332946248809898020546856895013444306100022282183714169775703803136477949434113829378990374758337305646453240072629948048822808912074748743765752335396585180285145398945067400747679410820828173571360448500894294539729762016969937371759883665864424711864261675798580165105555772506520104247294664312523857371082589866129251271686987637767629192082680847531701881828257666247879849840896782670333290414241658714120928795961142929386389245184090018739170261549068441555167509510976079675420810133359453547613620698369218799338007084402064999521010828559660360703882693894578927430821639588207312643618345764389981901780327661503598773707960069868889634137468693368998219849041757897591594236551372874607338358569781164122387438913544947300104844215144424009861708946641637791134981161035203926167586810024696607976875685558323913999575881284678708137951802340783192341277183369613307441590325956786852728884401902064464803933438652093242436923238526149015764189210595480106180392422084727059915744914381776688642468722173199582917444240058449623627123347491814374131151052714240685089216253667596441899898048092878760606409424809512663998438885951700828599330109947849456174632863587558078270812798445445298012435956501294934395774841301752548297045533411512149144057948558931574228854444123264890933489097132168585279669851460263819982828326790175095310927588204567436186763163738158222959955303940855871245222529607185466611439946752281366626474539811937164867475732381545326857506987417188574562559691067323966856261319616596818568489062754477274823725892007295672538192136228078411564848909997831930128421313141719245377143869262948840447522357204082668358985365762032309814715545706429697913799195979451374944890242785858601210387027425338757205700489146974243312525333828489565594531028358980764075221818584483405826174611127271790738265211532909878971679906016644401817873798114386936185639746651032897146872687194960662320110972389754441209917689549968550849159050391185378930602170477020724997338315349723596744551955610941717155887122484849725379851331877300692835425592776638561083426120146336667737956047307893634378840446999686868310535272691672846760221408048586512961139930321103404520094554311233693319136493934887307816626600502259586621870597322333425637846022966038569380664252053979181511027391926220403234813728377303787696128053104239742060632829135300928885466360299031994432478691036768952588271534734859789627510728571519525735853462551615227746105441232731619276384679052809053405811438309209836529856442431506933012378353219778220803164758815917851520222419146200774864843518380044761865283610883810345168507714767097931005597742921474808147603335465501853965344830993936039420599709575125015783575533527934789158826785052223850246820293645430823135400822832626891121411834939217221391644007101652199680703777894686521327640874896795496318765853163858671355020907420963736514604261519317706345207645383029260805525717731953019338312506779773345740314493075489345724416954820595215413204887149652700128534232564509914571121649677003115949775467334306733539538858711052476066732584968409505868738991913383913980472072168412079920207712389843180261242226125603445825001553121953078165915352251281471366073262043615038097866856575706543889890447572371636515839458297624615023076140657499777578283373664301252951357081479726408238803163536430087005405306924540989037696453812339669714901700786831019396340795004570884775183561531707086103216798837871983484633740807949232486465748705266777248844279931740113639537655050607625690564321521185086526405168994826409924646781508814348600505559391954672006334117504268185610682105366659530675257158068749364982055810809620150557218462470697419903717519492052267149168997141652964050605303096156806335233354190782322966953961920178310211293771308067167627997983161399649202698402082243469044797377232878941969647201620314271343758327175449538372655340253737156039070415971682166322156766776910027528775153852537280860961917610120881865938213245382036035579093027024992718450960306666625514427880058174214418010006612950793084454065690876853633596866292889863682198405019302000171785917850850953029348003387691585486582638794807388375339305664027424271811602366931919145244225542553993649932691544739754004972337707073582536677044492170912108751665275808702531984132161682763453719265684234949715456728260907719864848638557534202929615062459226752116879226996008061334206503812377058923442119637233125124798865016104755533585519599905067380521366691489245064193074313898534134551007873846247477298177328492883020008438680022447168275336576832916412405659644437929925415246928978322782991823225324305097670504400664866961633900070846723265840005840500638820784292189022496850190116371631632312748233322295095899926506462661611781719677492284014518423023253518405306715153490440381875480952635719343806541248073966844573957221471165506139658298667311480072036590604093706426369942667148174689885542366321102226080257231849519920841231094400060731878845022253754374993602535494981320516471635540771942480616107085544120837827604303052510081436311632202497818017506239311615912491313062505079034027307751671179742208181146757498018464367374128475313293593283188459941075847130282310414952269137951727082825811865831554690023454312238727619035251031046926123454941750183934400117787074578611684913872496521657323900771390339014310484399307626330684353460249702828927594955987522175537719780839695315182459293604559619034306465753153653967907800395598927104763806837314343195334448735760905394531743521888799293251713017247545470662577781685026841479507733513267576888330587560246883123674447007927882507848162812718068387311448038315425967337048253474499493313945804839363385700259968938130482443755682802905336588679364257454338007752750815832368853082159733050070300202035883865798888890760295849898945936333847367174412613034140783656587110714476401344194035020114244382927845539082925601155624584255996850296339320223132595950803501483435878366901869724396708877712868246247565282840983800569614096303377116651682336866836464736825029896812584632849542369037998043943835860301949970510813238856558268600021580795640093408955440545695120547164225778141405009051646881266104967911631904610386059045683584329107878049315221686966901218255892170578100965156954923489082284097278293020737269722163511669630262071620669560387007128947074322252261238514280960999679888346858398440781776419593807641656629931049499504190360282352775114284964287757201041400755725389438872850829566696822213451372174277314334871008665645381875795023461317136285114675547025300801492796784132330081323712926624924994242831373480915332018824275176539908262183767426053778967179083614763492994311266591331106282755510122679299226824427639155903879404637293267035958269132949086759763591100076104646879620501813511439196908580578641038574384835432753236360435973782468090372822535499245497674726947060497489212864710069183738971374524467147116644573241713186548740071985689279320130725988675458128771212704280233461331692631749499301930041233563964046541262161441137265346311666036069600559785050300330074849347017217009999394994667260552422625746970279295458062388816215138427126933466670725623888790926526842864422492315728160431771123271035817503793120007893762662956114346484265167824879180719780728712273672016382702897670171440913405334431035370315380285742712741936648002174276204763701735956510059174775771310867095669232575218935751332073712079998554878918011320454845631017164429991040556825875330152737579546342251153958625372382025459259626027478484241107128567686948190267586900608215003421990131340219440032154222259149024709493804039094407924798005116340607079748340329823903216296576300333874737941733991970054559476787474927523928520708363079855981008164530627494508956720642100463777460707894878632243905456254133409498661208249335160270263106949588964698505328967877087450288897410422933413792437254937681040317933243675665805094998424534604844962062244382779400318040891294220900373683640755415523040935672351714981454332492592731795392894314306534883576577457261343408249929984751562517274405929097708849420489841442372240835387155234561809221272574528502414976310819538786694205659201092518866991507842413346531428511881007097068517200698722469609942331989422757078525476449332634950538294222429591620988683975640592183040366965241238992393217366917557754670519480073880953642479538862265755770555374676964009220550737350278510443594560948964272791347279712984497303917465511921885854681254788154898786861103964283693608936881379773693917616825632927850925565358084919979083776312068087451805725969405495793731724041254481458426070019736456198409080251740117871709346498110315940846971548204771624572176094272411639214175591757454087369287908379364196145025841281759198556749031224856856218421196201742373164155455238636859379353820796884081041860459925665541060870291246868236669647605983444431577224392428094139997809215461879621607921850004591228166763638349082309902042369012377033073613102850180602177045115430203644200530500898200985748313188602541744428667356157200835231871095478567631912006504870595441196828455416640819830795231204329334402077346065567387526081577334530147308844702850996837158044391813106324194906358685695696707352641610218913842955635158937895311777259001894803499297447026211841185684677324123543565694557104695513415117584927325079738090780319386167333015533738156834486765591962317816939329292694642531402126565498736074444475939364785549033443543462789339604921429010977512372953999136412614722340150699488583994807112374131518744665977827713029061841000248895929436457542230172954195444068032261172257069887266894524283553836093455620181608974607089298358550424354613859025739485928109739546686791215937297820590536502402938921908737601833231397901609488422666809486158508645428098344907623961294554307063490007787068223199880602359771638726366397147643488028893308262664092398777936392800971378665592079139213183697409912098568891518945242600051913721067581431363284059824108312845316807946406130594890181972418748469596748981689306053899227085588901441600541687536297632224499056225780515966209914083491823085173921075615045904559035379319085104618510859399306277701365132328007422485263655133692212644338197746170450559185699285074969444144537399145178166795974356969868261852042860423292586536597906221657984554966628789890790511914067035789980949060117028600952918151229461361556518206924597933806237942379150370148379843082518554071426439447423547502818784132427660110502502430133576893173617141722376713612642159098091249631178458529357430721080897807822891137475346580120610301085348722106944883374286464343673687283746434358768201539523354458318675739214636556126131541846656593360090673996546472315003892726698568675262070175492841478508052794067061525940693892989969469833087568949911386048386063587420168442170979111497971121849173418089145252865186348965810876454264976244878474380615551827046340553087831282477585756814970784384438225510316336930796969221123872074329080336643886036481154468323602871268050019450978783587956431955710223383668528935190376088351214748610734745133392340335594169466398154993451000639198037383732322434130188343170198484253123397842638171271500454175756850697070705128382618032201671927428282561413069863047218989194674425961841265022594251284536188674014311814513487971155362798110124824362217085800661623500821246672304941317064149139093338551862051195555187664946652615876144883781350956203274978752649413219750567362553481437626904953688146130804604723952067288121112242714210305434738794015565365513306175589683964369137850905813279247685505456670535597289038218188452148127719826334920643605812641316827657282783865005212304643923502779974566855794167454881792909992058603486791028536930381452291969123984210776746640818202873057515761816190898904435208842475032236314272891768005033532596950036672481683463305280132529158636380096293187928460988796633510363776825162468391213774090113293233750660534936377903867485832020334100228294537371713256187260313341723094847902757963160276367677203268982357133732616058740434493331289809555065145967391591284507105764844177124404110804676244381348949119054199778257586469147828754315616726628836818805103381903633400036638320843458672595203256665327676296008839374045656549857145624211598120495922417140508994257982993988720907193024608566786828676661188298291616647713045392273442634363109669734780760976709762702492569546206286140823771817046033486881516667942688235125067597601155902995963018640928507890223708450738273982400655802667116709675438062035688612101662641336124414425243431845741154727825375076034161971752377420026846566518334948864859813106912740858594587245294238240527304015167134617925068712615161642661332650607826035619758755221820466848136927181391361192073202019298907802598753147456714850958341883887478600206147980697766881697757943690289066407462228589373793244054913588450372870158738361740560632340963530414938978065379046979866087207237878458499255543539434234156710471467197860622204109117782744619298580482283586318220098819332352220066375183056316379440716259341333549789901279150397725421039792585098554775204632324849597643520971179634732273010791146673711112361209258709423052709751988490121141721715949352452215763735299792626470447210773189540901497174099632348224415154164902043456276786151734352383559767418646585516386364169874104485406731243040820342932315207139201969551140337237278105396011504442650844257374115614514865177130719588734859844513334304101091106473524269572948211258599123109378904352760767371639592632652944273009854274596221013750983203216269144930722248601036892892331302653845953622321208205339996197965058627254457310826896584576916208427483015753508304717857767941325304301626472884011981226580849092879584493812999412556442335175645571257916604386417800428950018763197723806674402229787049153602927797716956867667069474952566414380130750529394938920419418417033530389355005843857964325060246188450861665932877565606786524907768236439112505258194357085871718671428012082045205969090210959926057568217327246754741433827447672904413707990526814949972223133745698111787996133907178449561445557243040905836469300850171429595817632434324466954926411350477684214870761933144661428851895927136407402481071289117693055980009570804012958332528566807976048042756302535163585178442590709104231447872283160750328846930571754671457012170027384788797646803743190327879115811549346781227761470919455508194028683137732174663845309898849909939239975063560458313421910000526100684364124874225093323600031589251105738491275410741789721530012605956291791500688137825721064016590901047753780682022048445958032212708419959321195724277223991026479399335583269110418799672220733440240498031454700243210854120365523652799040493270317042590524631667907590445598676252076875488420296018212172795673537840440576914811159571910201316765394184836530079184490358301568165149019429540074678366849337726970105832883672639385042167419445817920900454296962976013803356006389100095296412049315847477348351956372537446316571858153574835904949560359888400067964632865677645349304688259723329768705844922800193539560233014817908023209122442597478116968261723238340797005228862847288219089992975788594487326524891488121844280992978250172795389975189685890041762342289697694661433220574007012711817329325692276016678248750712378332661519615081285910707807783683150465491662332307841276553520301904406432647746157962403630684414836347567554966231290663062256072425536480711214447933537812796921799893837773902724306736192030474153729610107401124227813142507764316727951238563096772210594692936124321605971567495177236185972404340197671583467029497795314126836133289190256931569396223332681084197804112078013019640212640344799418045979456196414426274890412359680169970177562241966118086477207755049793062747993895716132840194526408181613544904050840985711889951786417395967821755540032618778132472860128718508358603745681994067171810972882651900606968772327320944896410071416090903933289704327628353126447215622118758349390565659614147399833450373388481449990208690029830041083639674976443554733038797017368147021831749180617174056498673323978835686167844945542959144861578949991513581081465166936881473447965692208143908319722827173527631258436538125466703232083967760247544585024271722653557574056099029697832968003410515511971954002440280594365365430901612099112239216999538654526388792732524667191843201149655039821981525496993213999157865096568148209639639480444059465604955897339405060315446395746367849664323986314458466942559800331234208155667080840954603735021094988160904582318216221530317535504561268785015803130702594872107522093885939757392687776453565739335233157883152887295031758732345430297474007372793433610863873562331534597830080528705933515438465299618823567988082615823252326367995468117990045172593844181354275771940698669986920694301649473997635473476759975677483816147876336120241912543606241880876786393064069892814730079924147091438897151210285263768041518211909788357779368659250313222434333126408569033373142575183956333526769623013144985463439856629794695877363055030723864634474085245025413857995781832709774578078758714276559776394129945442126620827705054486938801692256508369216642151025293588452207557343745596428210026836817850007284856937389289431063104443666721973924735873637400091044320934952668670220925590515957897041935133935784095451641398309547125837257119173081291318347038096579128289516646340484214245522674241106248782726234818335220867530432370594776218938271838896295855623045942403595996550612567778499241633970179601355958820911879235053196739672246925120403708082026309449198950266857036871195968500602917713206917621345228838552808492562991402508452100894702506976588606289167597776467336247444664573463710687011930201472621581472881207698296454487198152374218320505335760722200731248838988017220495996516655339941040698434279152432756202964022360980428076431068689633317198551791781432470831617571752873564765872776701778505680759285068329740693163453111931449723077871881456908070217225561649301721765358668137238994535051747464438234438681311806495970277895764800916070477012421459988469249349366905215403891250077656466106844848281406596908874126098807582021844104732256822931411831594432365248567431365704977875039437968362500119980958004160372535078653873224216774581452834887881568859987606458655620606594570710171579634990790618238933676777205166269948042505288448763279197939969748340569935160338544899912844255372017552095667161343543872680393470335937561286203947755704894091037031307389024580392748666360960197182110035126739597902907014608156439818904153867878581933278651653153225597219400498884061969106263359388828801340502112856288435669737217838005806688371770584658621296997519574349392378777933134736498953938376586492124410370729586911787789428058731586158406239313347051907236333256577210648332127269855337800162176651898661917498083188203711498010198993147274435937561909114455632758804141695377818808630433795979600078726765418777441484466331062482427673548635137042002741794735579959521370301461704660951425958633410610188563836638537274687806124985445373630954822490465301017139145574574135954785915832840821880196752966614996852135893502196027491690271524308587432730913277639630419556223057351657742702920315089686854782323244981959502270558351936850070766223818263748396748946838178452184425246217299097126590569749496940995818608075570024271269390559784939676394004446360232618210216576161338703195382306510142247942391512184943404078214682995612023578770729971936041003714228879296457001311072327718729791767862276373032539593353241397940658035079300849759273885124185753324089798127063844723713322882003009392461464239828030342246753075335998635814237543657370344670145851123318073610767547609941763811264834643487305341215774567801950551616387908765240967493776171420992892175728273587369767476674670400617636857354165407523014553577828528198223691643368218165348686822926593516571091897830367513278118745161913419187932231697427363799968734298810637923557684985827648030855624895267833438904905960616073105192702702712033559430097359457281265561436522479377026639062875657752241380743209990979617886137192704578687138785999313893074826907389980999295235860624101310380611386280361548021229354058832045421056512800704381394220930891266799043950878943540145445707207796010774827689809586267009881317933964839648205320511728480212347737178189589556791208793057841903929428656058633163238365157187698729801763388827198665982229846779004897775972934165483168505173309311101395844307217900777648879337385767270320376824969486693822113955355469677874309813722660606917423873736277908808580777584353915792737809271673169071126916653411003058155300671229449128790421167971452684134051975033846431803745959141297579423998519850024261289813927418069849479331300491454961904170718684709196628250828806633482215779661091755410266617829715540063178114043798433369494951886359350604377564491860009390936237667389737056794573975268970548006468291115650983124495414332923904103685675849934715890064470020913511963735975804841281427421036647026767869781073711111635362423320330930441367567593031872538494913385226922000901244817024786736952552952047040518238651031838362884329215566043639279889679836373711623168613007743379053294841772451643881700750539224739341465296685442113462053239708919133413142201663614979097466202522783262707807823721884361659824621970830818072219188419305126608391815584232375248714194506755641828101062373439672883055493841918435004207905623157770533489917659385390212898497377642991373057883627634945635124652502525975355303571472944000466018990854159205426855847702654091235625831321934072067191915449561766287730460582883100231520675354529094624771042471237782246036533020801800740985675752628984944580705577836967936919829848184731531389541587331964063149273314917022629687459077013629550860352449559330135595946803972754613123371776180853918388394626858860337399232188699206672735081529226185430096089758147848075229605822354286134631482929284657211388885263647393937418937733899575164112611753850887185647184152979385324270494200143174885428717881850308084480350311540248332486482680880818130032497085556675105078289368414822318916646910472619474322175563774695620604467282584984825941506433241945586192287773983524962989559084130332201412957300554628923214896680981982767900342567719757670446028848781993109159834694505966786430028426638972114508235738289020552248044748903163655400449915063439209106127921603786769989540877141280465739611731727836324269094522829416196733317125488594217059682086444132509672704341487484897878640753981528449003184867851737173454520362554829311184166212384332179759519778370520043131339198247275178028125123472239713120841813606860695080909504409192021188348427692036430990609475765586807313957935322387427684679230739967778854906865995678306847769060249909400681199724757915244348757315009965272912414188526794375597850484361845915528538510228148584449265989849145397479133922663407581664537737238252881686912449948633640630783484563900890217246584859769624185072955026892456996904883332347286648871809770935778831218297445652937245286792752683019262644057534581233503599237956044054114111492206853266699474724546522485110069919866685690928876136192440648714799967998233658718016159115062315462843411838626000056650822320683691628983683889030835843445283840631706255347159356165040604343006834552917986614978161675190785739611956860778162366561554296062912893601624492028410341094779923105563800781144046410803290139466181111121698336824657907876167403607065119242709316460636807219736582775525257615058046362066590421987969424639129985927434740532010907267586955553893481265734852216710518586981530421997254196765436175977095647745853908894626460706999598543847718854236425661453016220247166395923778874268376172846356175530185281722863528302573568991205651212881482807753495701507374491246308588964413313415071639177411553841065052111988414676849345144380732232349567075470539169056555339597120458402313176883515313183537635532488350365405732208403580503101196784877185311105562234621890743092862972626793467446264363191677514503840488632804780699555713627489010247303027788658885372638123234102665273963011080748918398543343031629835698146617687071007963530925636469099448161628703926289483350999234264994331514722140226137962941084460241194558133189172329820444478466922401447661967514255211216847011376327028137950899008458409588644750593286780914585891703926045869944053268806547063614406346902521862704019002517397032240069637285531284984107204136944247164537944137814980352470654993596222291561014129226459691063093077374484531851265669038744780862416780147914014472178152404629401424720900462451486831612875531232746001842208304012720922864271471084953457976646978849679124637947008106847076241502738527418099617144571743429101945135682553129428180286612798462085530013755001076288999430790201208301392289690010082532808465063070875957962377876396132154346422867381474580731552136777273803802982918927491950060937556557445213233502978903686963403151652782209580657743144345951271097633017345586913545689771090404117049420802459191243698402010917927300620301502555945421105633227608785446609352080926123277531255004806248501390752311867785217466305335868305991719054192667742757173221687934039476518706014185464402962826181888582093160399995995536072168951010073169489098309713235327249551698972570413846449060115262813609494733400420160892930689496605186243210603140580631961820497763139679304771077203026125083368010400956198270721425164452374609285816660889412803160978012723804778242640955431838266195337482151264530746935014432100691920902571939182729127165745102310546850792055903319018578393885525282033548011216664438555184895471758981381296223008136950835332319683256169446215360780708797177652514861133300032689457842962791581987470407236483047228945724124764570141643421456224988181850699589572988592130933670152059294337774287342726045339345848388761723260739309969478540341246024448426834979868337871975777123931967970477177631607873407869286502526635784416895443286742848752649658299189941003145632000343488942709363555562972758104562895163725526235852900817461498104887255615531610837593521507356042109792689327143107473568449835963335225896508172985223085860482128239512278890874878029307163784330844441902874906306156196021246594281516450362754513510684650760504047815227793466361593926027720407202665202093064461646283641536605878702643110768668691573719140916934406767352654540209731095312879432524322649674784095820313551017079666800891845157659533462863039801092684764950150821780341168631941583629924858691942450499265690776145578161873250414701109317206430496228942154765560691998621497693943093423599050419988965627238151007063941115268959644210275203135508674990852351092247991754888111189367597844261388147579643771771497633100116143202162275071173901030840149072496665384540877983702488106273348318807480860760225257794231904074148352303088084939962621649022008345064477940075435575367571590884931264807551962004853826669567102678845550478763566775539070043853008781615399489418147305530793680032196984644952363204248828136915734668933580966087190971891960658668491166297980656246313960481969289076065166462849646066624911509047096157899298559103221553047152331089253838322439475170245544627988886628990216978887103039274827344901735098316329824132151144708376379917432664073747313006980597576136361490078088082987761942322589042118421019380074581323094530708602454807826315698195093490835983194971629040614036939607118712936000604953956668392289859068995917078615561828492503773939538366201470663424564619456505476212936361306635652833616814868386836168037519841038049236572174105096097235712816187983643556249840119245667010451928941848017342902327745964365743387616529320596676523965534834345287943679638930779052201408688288635322488774572633151652164756021856165919685952335541397537725273931960483295303222243122900762986797586163114136299880223715314728269120401703990898767726845485492638126184408386218512999008823892700315562776017653538548611981868954082190789159024804667818263044150882506654750585249885714865532490457651722955457305109082202906589546250697535697191863371166486871031460663011139251705482378878016198644344649301467624737731297184645781168254913611472153334877011390444945979764130382982231157520870413475752198067513353936248011882456211423185526452650690028282584890220631254034057692553432228140499436466902749083736931158965920968123845723412055356605939904821726577002103303880311826723320950641320324938843428296243287256070677173533469762541962437775774441887205650749655361732503993049810377914222642881044236705968585877796995797829317957979122302060776102997163452722024706329639629534684927962758835769502869587232480173202751373761609986080018080946491928324392818734574113799410325627318772150547395714603631968012320309565567181336431881210428543782306308348182653435657410878281924721153941050382140291212226224571029367318238914508952461543853909426415893405242886614107364197721385196630743183112057201719291079674657255891595748354292117312962939010788710774747152916824967507642949964379131178790923597429691053156625135954449083790186323165512582799992823162986021088298272199363633971365549873117641988151068229137002325383452425855953597644961040610074726972549308492648012951862977996530522771611606224699352226497898535057090660005605225590731501730481246880114355128067146358045531739818793678805858169820611661034383359718947554338097794710904590651730836334626112663866449878440605564960942909079117689007176457902806944989969742599594145246655493251577984375389616519443100937711432195535356427502364959458048515697951763595762834644056075405391557328092346573692951750411250840085573975366138321442583441995812652040927104178716021842282532620369625182297445082795919711573746832054545924694511060731080342196214519529308778960770276370959220918304546413033014698981024626918847298246954843135676945114454456722992259745972766180881771807457089277633412867674269688089755403813544272260799170133055243054448986582839036693950266163305854820537720976060443242297734867298152819621831315017585426895042705723186342518270214825726513431052533281031012645075207240018259819577534193519943099490955419367810053829052112395289152202936948472826840388461849679192190339383355645311098974588944512344793218128038321977784776238360668294511536491912533028859862872080534193773202439310415848516606988699353008543319040055091049776633620887129181713733798456351707212880009578797826287968625268514421848765423504555309867744215740677487569226624380413740091090109239748768378170506807696799570207906682949405005631565436486909242909468818948313959549898907971214557361754248611080991463570822278463136491751489239400510048902203451539402938328786034174872130077014486048698488857214228148501835306931854228267600999534146364627489591305406573404200317845913346509559466733611761332184745757943738239329717266715396380332307073442606672884260673826878232549227850882944359563468461201583430687286129652692013418080306040142814713195412949287403436001623465359322728386585929248118454136937434579510710657869774536750262787359454897561006988320803892934058496227164798825619828726748303000894284838402512192409548871469239276355563239736571777483186434875030487948186106184927851621788875682956649064317020206558483431458956548130277091606693018157316830952489051247315455433322895038726832120004113535160522970740274939490208901997486115147471333148204329343403135959867137128913594078324092901097778977435325781438034328695692918861803243782547819864983434076236143565029057583380384035937584171001053244113296987006305717118170868782918720530020236792899068411762737479759772360987102243753484045013217788784068689429182367373108988650585042504076176606308996806791057886805206588817454794814958999624698901517655891346500746490310465398104906849058792060290495320349150145952120395495936947751641500745728484117603829604925144092669226239660937117348286322871668399720092685714540594641728865932383301907738889992009627327992762980346349623672396108185267288483036699423561913464476576581231162653868882680823232892536499231811585618982772782231717389946826345353905156730114544190797865541829680615809747707783937510412399112725051902076787190971834278926095232950667220936641497364042963254140478762746849980079082546331447163922768067417169550053122018862794483846664293980254709695033709659663316283794434111619544988377470825437247787059943370736447799612369181874688601701750319165263239825254654539322088290665968472908050242369815482103497698230256509671333134112544790980201487363193860063668789909378301208010235583102162393382060417955892430494791846411195190500182420023313783682471302632232049802759907408098952667792713926123043915922954244437035173541169874489654261388147255760750366361377038920961181552956746435942707140583637300805426847600722592440494769761395204356004464898940844551335897190804492797926392951856053254740991472166304577464140019609325798740577010541487093251600780397189571035702014224785456608006562910631987765953042441138998487865939559589682213506620197787344835586362048773265971453995974828579469231198640156612653443878176337351331921075767146474185783610919037873219906302276701695729623690413918796550057528653456359411003502976576840601735863122277234873028842951426367646899582283550365181420592029772744828354599463455581257078670038920279629217558852192866319819829027609565310410497104969119872337088386751496020244766068301444933815841081973218524287337904880908810145942292481744686696276123136795832721612667305250325214987184711746768825370124442679733901175723578615340196533617095924859017289865030386765118295707383818826253597639740481218370229810467255281217455067876074465441362550397213413100417253819145402406649517001614707651506873678243153402154713162463300379605506597969569320723991796228555415839654406254289454775411326061846594034894325539650053585866723980803470865119564038070433901168851032468385911210289773580878160900067706654022017557840680765938333310811769177686431771181173416074018137730173274464072766601978192565551893778642551328311572317599709787928976975121598710043652239144454416469152169095865287276287895781586122879888969982766391313333386943710698970362979776626430245944049561942679899762662920872276242627194199480938634139803717200869988493673004923381830836948887015953206584690573789234086637375413477769881522866370017042529705082795483838400454651978983819214314087424851028306893294199334622906661244425165834115894165498841013713844385218829933107220108417321221537033834305300161668694664202418421248917952852776955291322430308984536818023605050348316666521016548122988829746604043506804631621152858197988659622623853985871051175395974603808604254380894833302771691241181776022389640246890678164131318015129814711182362546387829605712448121877943199649888116803572733594658805022195552039333082154534521292378945508397012983507061087141032471844684380973071235774429245289355709173358440668606978361084834806893002518532866584372763622271157641545840021830083852917098705576207197349959504526945397731854377966656178150921437104152213346510715740415355974490518656448813060720594131507208590896063751757451252524433995212270221419807014151114618591943460354315354460215523121440753516237013647232148434356657039940979651481742565759529783227513711643752546226123340553620396191309503232094340440288167043011439311547775381286097436570149025069962308966769518825936686577753168237699459403218665920578333021125779356459542878630479916078733417948166142202389636568808012363439978554281748506835245565355669707985730719266169309224957528771193217068752417412128007221649543487398710441304586568600434561708019724146060439101556896856879776785241029646233481009689713176026105550254752434679274353554901296359438761788102901464532307188120895898983177154352754482325852902540614921687583353621437381332718659661843353743221770105298338632797261667627929538150744952660521954457309289380129974931532856641314915521832046118653227935961733524391383810968957427688793769964791322291452366476172072302703100569864015487047792152267311940738653644819899368366692217910924515634625446004780057921850177488466163819015873146184793973942881719363916321405903488597441935713515734816995200882916200260550556234178636071279245447897349791508162686048185251816491324154822514006669313691536620248411739626151633735485089342142836680007250656494261919092384601146028561582162477933076920611375145510752647646082628432974066336595659327524205114026479721223768414155495316302269359821219724254654249166999313504933685513909466927548137007595252854354992405913046783876161144408558310226975577077195195813251607423973736069271860653230842401801591650138330534188312400742208369808341250617523877176280225297597026255988681265867819672235269084522875540125875588646245647351595963148216295829224336552121825783629325684925735188243360864133286086311386495953556463752527852212488587694759717319734713780402912429078515860778361978867481621606973033188920988358833630914355556618786428401901812572204888900439040576055910919023609281062534189858401390728960913378882587938788801321746364933155403982323436947962859088815867194320557041409155432982115782266497616444711866411109728613053584746723484095657816210873040419089813279350272677314647375771784472072152268048241795932989580845566793333035389347789632421450236217743992478685916967699716657082004293083999451253367888537527809041825087555418595114816449291573457147017343582927362774570156368614004560655512752395904088148342659742912135919131986185884927601190758640874166216650265220474128553262517978241812991649959331450650719237762359970596356987133301890090851681117242629701081200942165529980588809491264378909937480659864339091063329184537936008287809994638341606671761702617985791170769685875994054988707022613984745121008457113148588784432883773688901897423765479288209410202502860541264588956615549883990387601975252549264304188779768162272106278497333470928282812357269658059567712203625004840266419424340710199629226983946646563319763580834856987592408700091873991268497068019223516543644602968136938077312968841902152142974165554988252779354276091557801393522476417106103578829569464562126776454173483672302846469654970938745615698051069057466814173310041514323367345175219851174699116542793693235977384152809613291915932196129765624308719015174826752912422143212463429056416917445679711175907319047487259703419176253898964806869356998021831596023727525861539393518225468711323826203911676331131262969917913297040894190883902979791114696667328006200187305185986965397164758773496510321415670518982628863999806890448319061389665933003212173722508903863450709812538199745460113937657715430173967290179857319913572203476904337449038358836670853956348874624610210166357946780096386693202154611026100843804571164150137742650884904996496869196037171989310198994754559937105333183992415955554099152271503046103024011079787580250834733203346231670275034618117323784873064580046978547233471501820912480156520832103666043854706896236136901873546473959050879457772961686266175202697796200154689647137134766037749987585782364121360437216495431872199652077045893274728791247043918712763686601348854696593142218812366576430031329936549900911065068934796062011916423245432778045246173345807904170639772447769747533877026615947131227920393178779036191972524377032621129684101230334170849821866873139119999446141671610695410738576812080417190602964617045271798128986251659840703050069802576356801103707242350382677033644345976359857107455334275654982462116390109143361643672252782392542708319089088873071770804681131368855363277465332610491228482677363422204899769526214646275701833094070725587603941187758330140721031283076620129990943109992250658162873166011004395392585210473093508891424514454589289222196324008050885661894630296342689748950766869355903619530822733932261814258873705270717290108482106480540272655196577977257098135414784985225307279496925772349109646589565535253061960916916615373171931034700867362062187211350217291967548356765044023107081696769029793848344702762618747543343730116928706506035006168448449177723302740954173620287301060808907841221374371685206061010268789482110908869584025971048056865589803506150321969817043778046654029760078386325066335069209732173462178566752586713274758776283001306664065441478808569361011618430723813221491246385538154988674455290937436814462608032713921197761008467129463065552846806099445686709132741207490644631242748182250934364757525892301074651858515753548382892233363969975590470844815004262342026154556068078931550517464555512841298022895824372407294723690505942614044717221636130323920045111631143608471272345887030189393974426726226400274811201341124937659408631603359935070553309245425553406583006082019209882581244121908898192091911200243878188721220896926167495583620743678159936176467803733991107737825105624203265631744101730789994481940087176018663657179789302760766036139423809518901981534129349206059422959080234085227860450377527826361973044670704599025769366808236203755206144450885725737812861062773831045226485331186910246641492837388393619650189521816211350133042879302892035748605403445667490235942520566558137728069171583113302265440165143026991880598492538942210277614611434091655532191582225742989946507754285754081063704929228011835351971502277224800260327720070185710597666720232625292672985827246043437409803651695736714999327940890869213894657028011634370866366377386618134112794696606406259894540208568753640335679186048834656774223334078988282233240183748885895788742052183585085006859891387485769215554114787065826224009731570296235359533401945018873860660520319474195005766019398199608594230711736839731531191735157141271828159361340751048167261835050503951588130282349077494493139947277756933138015580379534757831407356611862752387519721935853009233683446202599168519091998208028417779093518862066656809664300929430537743896808542428612252818190737140332013754192440335684260890072187451133241646957163479996222676503759236443116232440153637565105682056061839978135391936264928618900212468891671314241038580082667511877652765672150531841972909294918604368286264709337802773229943501431039898407414641999480001786150992191908193077625103520431281686172166841980894903256907016945159403045135603205673932127892799132614156499849853148775128835525926756121140997236763825373747384703700412395726972912853970662909438573575090076399231162546255417303609653839173524621227442130747331092404228553824448640478694838120722624086390974821929701608652193466099641068247958428219767363015885917428943759618912097504783460784415055203133512157765150004959711284889742641036616360717726693209265150693426288769659479161813084395230431484758014229000951358726433442298807729491116337053340308142119214272333992090731733750519822988187421755764884756691081250298835961446153551624463086234324956488265009566133656498222323234147770585327126244481443030548292122373309315976818937908056330297068352720045208834878921443047798218046919594700493637618400637965721440828441564621259080967374616692626991242320199502730490620293544981563296619426233535533456334471721836095092446072316039807410934492041594469576784332128178850740148703830441471465593011410235755518761910920598645432389582651225288578189385236602178457936438935338870374049717369779823186509172640521472352526346553303125870655168016771100935506897366908188189524567940430936985865470930830788707086568159129578496036491042684334230779299968396510498543079067363623056622965862475005861574814830336768458557601895921812090287324540396918809521739826512475197152328468021284061245761718070184142777213607479307676302997746510100036861936909786435530986695257885360080084364511895152501865377236311868669703717679905637742797308283962768409203088095049305052238628714118378705992861003070045066150514509571913580241312273429902078801023200424889417279138631042925897989425474618545112804566675380055226247377074407465359376090084500594528941900287712505987288325662385027318685833737314345313060950404703894030748517447605242263425541748362011577054407738270107355884782763594738437614459251855420719166013014576087927592958550415581600578885373974641188917431745870479586760672328420195390233572580279381944360677597580264053661430193289311709257324986273383875449223997167227396388791425181073750882074430520620794192142518818821585345939262610147973917496823070753187835764668220726354576006814375776851449369645924638968324222988634370124332983489075295955950799400047069343366607860343919833935633374253999871802166779399363634167600042159294880321716613574307790180368680975501154099628391676791423999808951914381253012091642859517411520605136706058031587948873184796662032394642952502019518269721320601031260263908208810037474642714737321209443880744555580064427633828878231443370905345860949229037460190931640040421166834901083853805382652437953600429713245811056008406129166069452908396101227721947646911336022266406949997113369611846690781853528681960018514580737126009174574280351353860427081665608265352954631741810940405760089334522441939525898299146686877844162653931394560043645281780959917312053103492738795737666509962956178323264429706922798323568619178597363220875352339562618093192638407420206505793589636869793453338328523895772241823180248467294747610595001399765375493810571717158270008421608339531836710143731818513191544169003938676487161669414052435520533462862503250982329076909941928976703422155644787036349662502358048827386557946351347758378238084783445155530467771783236855842740752910500896404515422066457484925903280405103070423376304018922529456951916600185726508688060271649021090006858590711227528704891571917462179313278108495351581817380711642755251026934592866248929582124385504630443998995865795786236313245434685334472517327463515423642531853416521268034771126081343950963962851093684060334858648935418982940168654962953441246588548150137464518165749146725872231413704745432012461499139735226922473687065476975374559372998721857417023474128035994737007726209174518624827199828046500060244878293323543035652140078243703218385324335741733912666943073444383097169037066698256420131621791732201397548429335466727501227088963353161177275475516968681155468926309536415201894023745672269286585794068487267832429478577529925410992962864843937866147912712657354781417593198398313968384715442644999335193050468068656153721973440764372119934338587587055489925472596742426882267393229870866361628111351136201672997897023660453034946589466607479072765689882626542927863107202001829253562622792062117027336502251811204045262523125788538303938938216567458498859769959740965344494861454567104918890219908072147891063123447545837321490591751891699781435194373952079191973203572079498803657562824633018000169871854520891498462073095688935333308127004831721164195403369016807915782778406357512672762328347210080646026100183032184709237149712703933929918454665819253719941134741851854771412515164350095759410540809082352810968610460824408612714309525082662769431564627546948921188727542557641506022519186290501921961642046885972952141640964193713573091386888440684002013822653697448464493835011123846814852776888086785300604730435665470896934553631447107197751346685843303061795334813496794664763526317013180746366258011094936541785768655040543189959461418527332830459529907494614485745469893347234167742410361260223963316725425747139711604694025783097665906181388961565174988733516318185520803733639810939051572772621977029433918700025031544571424795390765445378224923225474271858314929708920288725664865785455198041803488412991973593132380187163293740147310119395073178543800565700454323411178850442381525222225874715091957479168276953772439545069807853419396155358312902894771524418082612684372824224761213819224018300152111639968832629283091141445960549760621741254843086105198511238446969355581897462234546771902815585501531464173992865889709567772133700199521098910490334351854391363723866270414624587790284988155818401832590648967244520485831792911481596107230219759124589169773650416710910805930772654183116429607435910138819781545555347032332863916830609714384564828146469005663332412853524744122331812644733566424225558982784677432011005538950378003212358354777299460545135296546275535125169662787516084896269649138040168149452567246924815255813046239312035105165132068169893860215247555312030232604587831396880109227765888553934829702723707954037916047133319866913943906925662085653151816212781960605844971787791633147370519631332260676540695963886380700089719076993486692199158313605574973395419649128319845398902556309028919918297753040517736108814398405073290739240459310221544208228770374323314495240808302859461942262520673406847298096947543445524687109999018231494094298742148198939939623770216673527494940086064821977565606067351163021499545378645901701240974426006728454596785992645792104754817439188599009347751551635021997066985890734619519782013363149020174884481134383116658704287983127269839734534063518164740946313359550217544918465892533635241310365911389156742957497352581218725273038871398192427817509552669654900976766500935911937086690841735419629112646875517058387885034245721941110546436522059510638288093908636072043313726724380726195590072513504545180313092789865329271104661915773755607061594677094222354975606340234254119262099027624034425296016018341540615129996124803111337899610594950250647014867863023016582020002987162664928384303962483948910350046908514101970239645576912441357471083705259206810712006207927961165472949254161413604151533283480057326605170850023370793171731733136118749363402747968119860435750313580275022974108722771460191911192831739812548043297424824355957704411534234858422379849801760741332748146672469229672237858471882249415653763480239995582519761217981942002677541503385904891951435697026271045160053138132146333308317598612585392446250706467064738732278255680617849260335208046105641145648261003757597529118420134997624680326493567735834528158030179437388057038913747416040939279763895755659669518078068136812242811407857712600623845104981686031575152377254245127683046312443411583045292369687893110566532302288659669902729670708249597955988880482080190835942611737078465548457004589109949177787693287716883195574604656439517633654079582730468236672700462337942742098800029496600593440761763680164631970719912865411326748836550612533030291710775209554680850748274954464794922993814478590079424408995546098785082055326399382960047460942612411930940045429807134940852037353153473918196440996352730351796445675961108006743858737980546351442098747370916790845757651084048322441025671213193375488972335671358888392528922659755297843688910787496292703341761218245707524939998234327298962554196020586855737180135903929657461792705361605227013240211346401261831405879328875206823033046292446287576433394444557352344571946846656462236626564827243070538878385541444390841883602177398147298818581576396719579743915042023258974707038441812620329433150662739279246983981190815079343993368653419359843046128467409743804215495320772902888218590061230553664416768144477509946831516652628384398746638038964190157927642607305867719114949055688828127148609038260739100730794618120318301143982285450540631508008772963563710461491454784391075248549345927649628708577018676384106174794260865537119137739338587090741615351296537687886753422850807844479539703856610886325289781516968048386621994087485996696035338529893417111539192884754402441667763565007145668777023326594287519352068602050293434293601103297868209187813403157645451236633212118609105459183668031160778454832799106952211383633233196851659054650270234180555871500438138992664703133619010335647484062465357387092816073331263717598549402761962446985091628559735374983347487883866855256293437331329375432883530593321295586535864579388776541733787902881714700057534930119145719604850046892036543704857395472809127341697168134616780569393584638176837960027280345679870117843653415627943614154584076430145248470276501266080930119745401823844958331009444000334471140281527780076680520755396215940776489626233355668857602300790529836217539629377542211621549271137369421282614631493805687370071124285669490256610476552198821894774114662450248771738766794740373708016912187326275307851249134074098358308483818423514651931759009612282472877761843806040016649212530509171495498374749426687194730592509330909083190073264221501130368371652500702127598149792476080148417403247172890862160870647450489745611540300728276410004621493815096795446945835252050451806899284785449292374591012607430895657827850094666383343288341553626379874895137981394100494477231147384517629823530392202264066399634013162147736167272992301558639704195298024648473897693709748356857461053810977914910698867623614959205801160736025398617886569478121795628046104305407021039235489998666209137320184217694670828727395201543586131905795703454453449697010844965047585830777222775268729853243893593870277166176943069962044484448783319087533306298083569968519533589782129092366111064908252939817098293289741044703680578272890855201172378521695108002431445763571137021268105622363044905325732940667844294535484049814616021899900048457847906076130116682367859102045696002022779800617352196396258388266674856970555327598662597882875135092988191700348421059918514836975629062936672352591630772988025969821664472879820226187260489904349310534051033078311064579677571689080828533241033288561487032978102839543580381597553262320082100817768397748254302748359816815652196963252711693429980739927521495528793361837909358872890802419314962813863033018950699978944092643275740448506916792397033351254450679855053798981537043272153707729418880555099300506764891974495916263212966130328366318013286025367966507114695529466347170654241121298568223955148633334138699325625936793353001495246893455567386338855892361669477732346281536420849410869042433274510158091919950513881089102357877841856355715116128440426249400937551891473179854014572371935165583629326699503793555182245405773537806184406896584372793043992462577736238972380395645914080819985364903439630276849474473118727292699613264026700089224504115659335216586853774453030403454609497160955136103361958343308035591332764860907062767809856266268872255867799784523042017147158303736603181817206308115640668177626812189154719802818378403118290374514319873987699943596571030722454578662201752101799058833079616241362816150250107807812531157099613752028398294052413715776782261170111634200296631616398858457715395548815860141957301643116868160330290896294206664468188034622105078114004711863406743034465314898728259344147112778063328371886999166212615243583052622067388374615859961486355060410499165443902380563835129736039638858113693388224489547214131074262477135514936746724428477587835004089922112610050916742130230350143642187137515110532172972314461103141200894456920673671035703142370658391710121891222200015393466407120646144966918608557312568375152206056729095880905352913905047811393802515689235865232981454683855992895396527268106412586096678336428759352484261696371442211147321992205280467168574854142526293577344403372153214345853702879435150712187695494128353641752680427434587210196066671038412050009240636879377289598448260901123518128915163391408166057524992249552818169959818415985604939326406435102732225334330416439022145453915930152948635287060706098324563019576637416877506591505570005805980519261317407534376719609791595855301038872389373961850934636807989159174640450660524950905915114947873025937925335959128310579463849925958065913444283315040829190762919058571132509833218963013350773241362080396163130698438807966892042452202999186074092035256537240673984746811884681715048628597235478775873764526213375918851250800569916963140404768905088617890874693563008365117020984261137480528930390207757997164051333434270220517847240858545548109676169691439152101362534775844250974688257595931162354194817454607380763556168727573628606434485258872191794394097363679152367434983257827896521409157600252813785350115771413703170177421336628100451756437086115208305479621865954353639143549675856028174425520962795877823230621232981270755177519922359909831721560987141136683501099919732554194375328077135449923591959046195004352035263266418184875614457593492320053995297733634359247599834564326291842684209551439984226814042243727089207392870959861349373284623650413195574028496262135850859336610582108192196565362275873670059443372755569789007366144095401502091946382956900957513194940328962691944347398944236080380282568920005619659480050508692784489672954835837625904695030554093464454547292324477982172460187540471103133398616496540115087675666668070690487760478071565989110002278797206999492642498061690457131929634993533760702799165392145228971992680850049124994061892606502614932262820993517716831932264555189320882183724026156512304577606546336103477052434393008568414460133193346290212326276495960729706247041972736281833590423125134165812943317696556713017771492853851052932059559971071773848709347373117981238153736118849759754106106040857089917558980390769944177520471612240666774870281680202483172679596784719092489355149868174253454107430266032619718112365043123552075528414915448577958576054607835166178274577004960670346540457418556787100170685324511771665485336594870905913143111086429770957780167324038107637950203285323208594836249673857453101594746938951406001810225814627895541897897473347387273030361021736004934059438792662449182540583408626618338040905713639657019096656965660321819205871101828914584371669685524584073263330024027299835287144083458045225413219499309972934398176370502501298013139148489069847551843502597169201413442924710998158748104872215830034871074765649030880314352754006555283995080093274495370891644948549343481177250285642061757172511523489560898445347360444439445052287113776202592638129991458432112321629043032966279283572724106866587163549533284735449804653278307929785333366165500922747474965428756060421707505116135237683868634507497315626236503347189896798131638990791315303733125196523236387288789963870030380637759102743983363433022549102354091254852901435608827869000796369017576522973812681570286962195390099531672626764559134715877018828642917640937642568238278039314579606417968022980839899133797686213263653237355297974160618452948774980104921814661467157913176858485372639986462731433377985105921457784509953028794929506945953526840243388574598414261408584196765398721347339117047858464979101558165319852151981423576499773581395144760219346607402587880816358108187511959149024474950845101743675199716806026573307544758525094074153396123693830267345900898497676703841402044951685005499876947488900691808711327847529064758377935330971729180248895026353940780967832483478712404531842047738850941198576275226909359867914280388184689328633138318695893313837276532642120767431925476814357051931296732704672985408496020378915197427604506007819082513791151969451149422448767031354429945414524230709765774750942542161462517942704430276732504984079446462952919893669250332829295169392326157924803737165377308338823312730642085347637343417823350639204483556615859250862399622119948390073793601447092364027140446663191672825895038931509684496622031411821924065547757788622863105176142614768045110380224802600718719683908531817202384454975287123424610306276534321878818010857182874102352210351192088522073910075851764216604585368267748111072701234189714375864349835854612515974267129618506230899508352343513480080613730220117670021706191405675167124089681136456942028981162255949102597630635138873371498215131106136523721888041331180658398567933542426050688963129170803714995439225660782701812719819282559806664218427017779685298585328721023881507108061045219106237792233102484763309391446434116232264739316677462229322882848575934459187770703610146383089291388326521624597242287587722094419424492580463277459584475478091279598707885591365883742503968489883750589697224176054827894338178969455500069972649115387828922918162580466034766892252131931027563449643784919925444135219399211541306481530298037947505739004470747126782711804785452920686166179834015964685013851770418866447361290558238355228151192325686891464866070311061923621570411596806862944356857946540285567771512790612017609067807660124229043038447691685767205525245133326174403949337786934405135250929569585961068444558478525980919317684926762536613059710977117655779630225353225623580140100102609185131400197457024192202158856841863067297908183210107437778636544244598968321191621014179596488198719927187153211045655202279573353642284768348083954576087986987012411169433322810932048109314379417033038214581963531192720273665106313495568808973674633427738721420621736129502682423692115016881394043556740005632562457109433629698269041246636331926507508778779066509101744255263744713905567975569561156240193456579266393708013800932826699357815161312629314136083959379821145007509155426274233701435648248640561363994685296857286482019547200513275431783467585905523418909555571596835919409206997318068367633703238583006578463004253950022695317642083503930569781034010073201439712174364673804868941758815169174990058060545562559343339067868540745077820523549021168737241820025546127529455962404027959123460310337229844548696257805893583607276476573785831251115216765896862003331125284572673010706929049084402378008879784913711941981890040495778124481894580825156392749303321488477647321542738929143024002387222386117424009391518014802880486990403684578814431416689413570707173179584870065265274216173441873906826153560979352722923292866367928775458515702154746717656375284233581904253418437100409917387872831557659962025675019899405101242583173135911908904896694790151072976851872639111600712048430757319156535100879194906575383391946305461268079350985496472851014679495166202620324265090373801822158897329671105494637052868329735386572860364000211364110286932705783414777989235976829487608548690827833734375561590235700813295012949772407595573058556801120910277992187121368924302834321673463009309061670936700614150247428368262867050333033921420988671525964117261157997238283867418413756113320687520605325075489789829689617250450373128447396412743701172503583056176159519483616582481730931264798391382632089290569914893098212461331963552944640112144527356401973020306266772407623328088741848397112590030831994336761521846538896446346955528627565955525972087587797142554298809963209541075995629537706773918250586452437193280991992264921033275886625028555568968049735125410534302141495861325993813571740875788310911899537846253991206449829760611043604286079334794882276738279594228530524842320356133854519630570457145437416079020677159363206385893517117882203766846406879490653808700703579236879745580625985865967021743000176070469017423537194948422951829355632455237320761505868601929245986425041179263790604299157728869443166082885041408223980555858902237647733561701048808205523554888368504299086397229217382946234945331929808128413147587628718577665634605164490510555285574877072858887475631902981642064727463693100987912567619825407033983740180247723285439998090971255400065345750860473532048596992242776074762328154703466549889402531098063278006910646305887594007833134568681299002325083052199152776251654556137340668052334974721051824650225037171026710120991826145090307035550646811299125099817204892805836013204948452843177630397058652896849618688082962726935933284413444113776935407437564680230852270751542828029082638090637073059399381565313238487864292501039175389698327473274286247671233748408718656360912570476115022396420258158712815246788595524636464908676177238582373671499592869593146044126060961116187738731288785102777234047980243032254085077950414977009584869875382414665933727827505844934172101137955338311066967182660597519859882947013742728866515406029707542595064693193177817468824037205497021698566815841304977832909763753812444902660961338399594493458306415306838245723421987612385194357710430221718525862704916267543514636997601382124829684683602426941427295671774157819340255761273892987143729181690174420537895045222970943094555489778363879497194585990469726881612933901022394086745291910147289750604686081278979965864130709933484583995159931706611864924860500019523304186599897030108260752835434631821061500122608749546234222880122041158333119387564651623008234031431441719226036465571586059632623356392310082800518555123326939850092056700569283206131874516039784342663622386900209651120767353768557699654654433900448545066122132339108456621494190154741104410380793500122032903718353224814887990061057511562308013563667084809025005310797837410151275936867503646142066855189820737338305392521806541242490358510293657270161528522449463805989138001005538031772022011793426915625942080209286797033345493862167934562790815749256566696144955160122644030209455163879695469775936665408254620059938579692643051403137103554881422542875771513052927187211158550725985479258331338735035725596452575787896586556996926254297681143627985694646010076553395371328883298643707699284252141057758662167509796399297728430385840866403537757894099836426086062449872900436980448613747114114111497720242503054879265870863105694428276991405436099430718212672187141346460509042394873388781703861419528134141105116824561326890533364117837419933190504688385969086831188869448512341791402936235923226494746605210688899308825817201665891433864422809249881509939917940483748394445527154672298047220926533536727164274194984735000464550469003171415232269210491186311005381226006107734568978641128822427167076114351877852505311922777199751964066820627701968531782071114693773954008275204625472107109937298205498166823300138135443500172161088562784795819314025217524260663741224613012549457087419102176026790576410749187973627176176271816620499614849361515357839619329605523596498664786643687846731711902803870771323853535963085034011559917688517228172219720383274446218470563217419676652466412974313012254115341570964380205674973248856771315035521100806994252323571852673193627996027596997707078056964174608041429213908223517113508578104920863218897519309159649562912324777283721866008041942023626682112123996913833939016237950730445178737971797106549653048840598447021376684712913377136206290921360631451034461282601830085225091632301627272629873263851897293561097872168834279509103996636987087429797622906676533103228137053648203011000863300184055163092998213591622046846182010394067637842879497129973258395107556943805583764840474426650354287485213084669418161133309590307457553663744492432012265237729152925649494640516928601458743741084788004764124476818136099872162535320878392909036483234692601975585632631796466897029815419782228574353844290089665060990369368675838532933171610875600143890402908227400477653409678904323835714950614983495133936082576872638629626963652341125713116436189078315286053704882378171880585918491829570686187459192308561570143565075815299290839422374849412199742590496553758684553376278303047523659900997023281772651592122792504788313106874345215951204100276892008649976085516821673040759914006610201032631369035072806985579991734246253579437243146288887012285930501724554569617796686737952245081595963430254713348764961282557564087275408827141755108640711744101466056203247883788251873333825293349869259789638762120027259514021945790750226519429112705938444336982853140218859149853602134268053214249671597329732182195559105251585052220255055346607459375235142081803432395253654491943172415167108096830821996512191974064581500414854429839429071613731145897714242275759340230534990988239076249552195210908425658577230939165529884794217273188968572313191491025979995262100831101532360856941595022599645137138898212341734213496254734665487884283065615330501890332391175484210329854776811877622350962022978664251874026466111666955381862798362005416998362069978198495359435636695857280050717643560009635450876040226932850092156083935877526104769304660797552435348890779053788665769233548216553280989105506842650075078358601731412960733362578745104885060160033890421050797262788187834771650145768974431173514348856055798876727651723059651874753445319466187466737157463880656749772361527322500415459029731682945049769770712350447242785264339687756944065433990266593192053089797698227896943448561626425216873626953186705899559562810084688269340012882990806169286884816868546531433946796768316682948280925864063663877354110139836456627487877041642047250999671559842967162832405818498405702193074548754727984286600849489858598673453552412063570144435262000956092981315121907601071791177088490461825341697104132387641512203659387081223719341914390455361533272039913665319022064861417526908594932849391742235491405750572799369749311169312706968093956863570154646773843070889612684397764076202226104555291469633139397897063030173838697223936117302400954286376179570969628515282800597887156285092013685635061871459002772557149020930647293633658401269936744541219834516116506543001751557452517107774067142742498351350033304831163707480020443429763444968149776779640881914976954785333304655068665560278017796601639104862023918580360326314749573327885730259770461447298951532597370477179305308338553754427288659711226909105917680623328053419540935045198254305895089248611571223073399680096391813125667455646885449871365013284228547214554630845385356993432513385921417427847917501259318807240069460791206408676595535168053550430303119006398692236333963628014016395310864356214676862079572019658765407433909884068622816273619608038905605574114799881865750593663712173601440664021768264025908693043253580324951282360092386628384316184673270901615725981690435935608339311792153607251340666081698890592176253847282258929269067768167259850051182583718574408934615510067703627840856580322040587108386100617261280810181907370426715607822583343352234456023104624530114341973854722562245651129252706053464864692770269248725352370099774799090541351446801985052027437297720687454087115766554723222138827022333210005514828201972577890419640400240237142313634115971361912852456163345905208638923088408275276571833098518213416038969401209006352075023451864725795378528945186537980185822976113322310356617802760788610854939640242367552719289023539030712902514486312242627312252362829827749067000157199330921241141212891817633782443389472547710213496477850609515384379762781090820251761190418705871435563896569786763559628150323793744116720842172025625009915720359210983051503277738051082534168100860547604579698119113997444507303441210569716490658052865583251294626303362896291844416336954174123844748384319125856197463787033303701752168353682110395605496361355667032697776515086455443234252301719662229897710122181675378873700171833220160818557950059337461993004128229931319762488255675176814060735568910449441201769648026660079356208300451796947421923417457644293574359201558934085443784638483543085376218801256230103200875961952369343327000289933021599852157005637246837221103148235900705352881574332244415411941559285717547673446894056957764393423634208748503968060274595241520060893520590532503713421342199888487965566703137085222316654818475621782806340337677601458275842534270878632483393242255093059123834693913395962508435706078314200990632454690151071218363011391743110150900468022021926643430477842412807650890395631153409619641142065583705432371756400316304352757200350218829302850931036736123267813471323662968413321584703627067197789154775439228587211058638464313541779825098110422697362759644402448781681307803123891030629995466694853985087862816089240679648245060796088863795674577176254434603555827192796176264077752625415241414996284557717381871396275230733148578417692461527424702486604751249685986566108235669351781164869572698096610119304080530936264784531044833644022128648728538531698515823548562901459440122572489990927088558052825250161970985689737544986809221900132958541262471274441552483067899069593609138571475252789829220012551063159487306760368586576794748381036504897529715781356919756770954297984951307323430860272894217849322825285941157341037853852827126431425773545208183419838645181564456774625557505878649863172725845391879579171145285545922298911399843565689590270158076121934912371176620394611623382117009955304451908584727930202037164216305856100842206697671715588707026020393910260234740642020366163318569160810889865630243406564406277598807671538551311748077889453920029457014693198096093789597421849566212964210232224782647275747567371094246456939269255385123256927476454190195064006924213162705421422715775687596388233813273219324876780081009093032746254107692981154645928105710232464842361919636637764045567869588570682827226899500285648662605545827471327361972403096004143416566950339672847724118009524478231407896497239201832437507422304310870127055962778837571502283054057822767558189829763642065930403305520799613209886478038810142889308833903496781486114628447704142565900187996938913437539083693920283366258851136724579304845820432775888229117965859897162713894210995956464198660481453516593442948246734562759396038881272383453676609198387172884553040342161042850240646730723726295483802073874209282652778370192170165781378260054688200438196989590443833050491662036505845866025058927845320990050399291662133808366608208985452955555127524028279545483911633913297809156686884422383823615228028001134947573744809293992199005641573578716349668472875363130266703246194914658197390821720937518035388394608531473862117314910254534539662233254495155629006050203693280383036490454132120513890547867075659050084538448394573867821257445521600247669087746269522327598117756602029261712688261863602076568401372477407962996639960524494227057426441289385071958223478978163271565615490055678563999340251506275728594828542046260010604983724219555726561600947815452959657742291483502398578114977474185883355987502611165749977728582779757520954497112623947460140232684516498679769426014769222148585469764321659045272275800901154350928404591495691678007258359890098248582008292479190263809467927468688222710791653627319469057126846572654037109073381345162650469921082913846424970718652010787082963168695396063944447639848498339750663367732141903643527498465616320953006848150069647288272792293438509547615303420748620559874155904232288840130781713559133403800298528959353420139481813334653910901709188674077763076749981461327418950675863368571643566698882645364026268289889400730117082625688157403601967602491691352075389780678378606849382943589381225468910372544638261799064754704499518908179130107351911334262571397944986177353326533502590587017234478802985878204575795355855582065762649964521914412243159573142781080947951857602081930123037756306253230394622997082457337792579876089555925378195810449114354310701514941187238675676654844683810771506828163431685532985552632895853785424083586412884894994006452312028947512521475391785271153570085174646836653082564872547060556309670622034093879977758822305661525450283860175834577027405070557868905879242992001627410042639500814032529115179799405661458249854457866645710334549459477810884782044421591953704839124546906178441504410668922303915657360294505480660339706256151604113636318864599565367305620655443090985840230377150807710219006688502878108710687782047147986920826887310445117081832355687664557718790740098711171331087258478636457898491391762501099540708080142346596436309662377920056131348180962669313981167169276579456008617354620242381210465119135150379225318789484878729495223421316042419915817407289451806482526442436238666973784394972990671144741983301025968662704910062333283043486180608454736036359416738602908313512545486499731229606663235607564285594611811996531778000283338790792906574770440276525302199747450918919200594097764580485660687127996743981096694919679063132571355868563907980532930768573577166344403378018434558853892384449531796294488076181592101373971410157350935619117492252784868083881123070242251325412843670426552624175654963431103395510501077567801196013551834094289263363074979318995043508502277370252148902270258127391486814994564481399795905400685563173037505802665681067974196365574847429014564369692934110383389626101588799611970045459673980939288953209537685478374464794508015316097496845353272590881154982362267946519504994458279192578202909693787566669630362571042505447271778828253964173399759725160746801230535883629026553293705401854301949114871609711404267812478653200465577680507756224615022787035050482902951581580924298592571297043606949938942852533343475045607255554750014269274723998810498148748839487338970334432572443417791479135846197244034733398267140583033176135960728080731911064550706181573187521825238073054237304289514587773935859493035483975543194256900875141417276638649525124522399420675006064146390563901529025853593978569942401908133919356469488029562531466936422043235625057731892427812458590021087095869993070134310215701903561016205964130344534536865018068408686049697879130192266252310463742757604290065600931856377253728209710853955678515436080294463532873873140015378394734291600738481175319002256272431793418214441386372835954484222534517659816041961184927731312386636064209595005189312902654014766302369165106665191423603549853774578903107230380015390234797314516568397532204792543340684467734250886595995887249007950133035287165841473556395374665937316633976144157974969364698148900429884892999762369258121388232015484466898297191018071016689775851963895440750073801152856061284031906482527040214639459807551149505210104175741252521681218291909500910243404938254402554522615737492379126275542504179285297596401795961950616456317258676941351067311485831847457949385929226389260393582751389921924250728892110638797426113497843611250418106484268676737107629804882782922876770615401324980754949400258855540268792896542851083001953268520790576265364409139687554225031124131875793894137010501128350205465974825475484203843824041832483045796368924768673459036725668335797797114102178909520185848662243778327874935431218902606412505834442933126280364468945726285232608465045862244820191022709113208786362821220086175678120865228005204171086757394858506028085061493461087372708160433042565677405638609001318546336727676338022535509571755323977024426604163053097247306226038827050449640621594462531979835203893123958203643705696324930731967636639414310286608498541988649697193248556897402143582147935703452754620890740373334631137951944790558301032351117698200747979013384593018254554283686886028923206885642152370886074948390185397275685425256330805203593532144897620793330417693631843278864240870418824511231619890576479873862114096097614257940424553706390701866051442429295657521560052167675802863571102076176434346048601368922358784649164998459504673781950480612042698038066048777908173412029108340544029647537750198094013223617350753953083767767014797683430685518398708857193837335672417990615904236968509031186270348416344064223158382230433460020475306586949735088962979815724011932016706944914149698823821821775624819108259325485242054546784568937309607627607996051788461162843318078834753502606128243855911642166368782356890550532169253724627961977472396401911899744764269370086164305471405479409315567496895676015078638859188621659576970848217125998304542418922994640914875310787843284989466255862691395311535912429538037466741441482476537905077967511946733215921095860993684474780301239793928510355643139413726246712836956211949271632847657587512644140642518646592140318690636160781983185303035523263801663537754692321645594002209536428081010526689120190642736615470974106653073984712998716155887368442742345468267625618811852226350288372111135567134411831608642290540441796930898902847385127276116276800133427881504703750376788286294811375839081574149282146910842767146516397351433722801226230295363976542029557232453373698439687414786579335783139880499811469209557040907922055297563118582262567549911852478865076676007552151848893153791111247080710503584265155725546237852685737225093850393845824055434097757447614646851645137832147838088008093449981652770107035500238844803646034139353050411954643325207607906439812554427617080521338954084262663830388391294062814096079933957997820374876079484592047370398552312869666354853993277825507446054847478526768312166609835897416117079493646530290573825808405292548278527650764600404288110099719851602901092033518041619197278655822441072121780187633649910322578600805764363696687018868066524932297259543466155544135560755842127483926369825338261148184710982634099409185271094194693147845888077920489524742936179193411755624899112419101564789324177066464734163222917486478970238978860319291822077419395892350207636912502602643716943915743340600378604365105790197150672488125116810159620423441545196464479447102891148406611567226978680959626679958757118477863432201018918124392407176496999324636261114397405166801801441531790905857045272130123349650304709749273062290605516091622494860553056814258210552460217185030954108369631562619475239272865817585613454901902481139800606183885438603715167400518444379001624714540303043086971077948399372497025889543054170953185217736195520428567242050903095479475563877437452136835085221221446330195279897547944481976360544159026727911846686605075713989421590497201862287007330561121555594160663345876713192949231227123691797357351705121679031547542242878338853150743006710133120807880024207620963907885700439156281025832622527307995655220458129846191551798785204232701968611095937039290895319086680754172894338861438031556200140925077010089669872517005827363054718440889152610980343036751582137512721484968558532141591296541323126129418462356167830945624509880640466606829857280630720815568790619350072109098023217265640718279674693487197183319357523533104896492724029427373579901991746028696884927651365855941382679141995701710740848488578501202291305627543259637240052407414884500905816608512930986061248073975612667125901717023881604180959199289332134758104572972575389178513058043384369338015386671997384633101087222766369749219773682266900225184121928471771317045869879374941880933419698834546534385300048435094743805964003688592288327539248715742745801680536579477224661575986634836283873861504676585630240911296664767060384797691061455480329689126609384563647890077867842547438500741491404148355280895661060996435539543496438236357799802225755896612578637576695057709277048474391507791064239304738810138341122553656483041179501990576885868044061719021612346318069190727864202588464659630822165184867902772290655756401665419630020433455656439728392478627818031024524071100224760459288068597966598173450728811470857470483389307481765435309949214229845882919131012249644330632497664418299820094348990846171083816298269406652125782017231376058065445322682668768507917495527054808931186993497298938520725506578239876752617856725142346022280700205727440288145509132342911126671781372849167871036161539046924565401725592926343175952613889731087697269247357805682139795571578323688164583774539897688942208985701075867389595256956464153424959185213631323912196126813566401477995642450531904172880824480753115717863587114218175457868966584882784863588640943364987220617204382767740817849052580133483682981428103190996815962607347724776674645074048217816147166733091085259674327607593384157298348306422729186434491403943249042168613129796168448461777108227935053863030115738553376445184245308078429993940365936572432987361565588560746596736430975552765527272924038260285021633533888975476793038001614178280607977765387205354078081908825831675649509871014668094189613266617947514489806845470352545489741590193924170907152880690899859526951060343778818458734606574517481547509904942403905862125710842525223686050477918700910285940539574480796770856250110903715018006330558757388065341759009252918365983604352393790808490520476208645617473209055131896022433268249916478614503591169606720547988971287363535806549154459448313785733955663186818278759114585300763904490228386897670844654071294490273006749127325884943031686342260496093621926758930355458277195418759454864596010295669606660654256024630859618040163059959688851917093444444980834107873111111192440485973083647348239364459423436638904857793954916663225241583260101400948849737394104286268521516184652640955219525216957515469120329036243758283466187830382206279688356662959163559445335189366427451082088168912101032048702138771777028467188373825582828763550226936017041300451988066287414018920459110011643093323038622127155518463124345600019858732966716152023984158639845271004996500478229219590201302822955260529339263875689345938781823737175459309702790702719715212220482967116044227759763624246795076906207041473273758890644165040559084060590630208639059763717629585623265025928394504962354808822021186699334758621675098595485962599253378274372178251274751502385961761663485315475795163768507903594055267968327709402591727397620137704955215076555625613283928682313031814846062689011602229596935022360087490189058878666448390133607316843035137564160217053428030927962932516119334260414912580884142163059737670671808618900807485447055601279070614198476273475711287530448910539151938832610851306728919758095474050066846936373976672011026244637149483845102876062843744991729721991348831275758739724681754421087349405001188333160966403551009127251172930020485296343588130507943358392098186810763089942127864447969897250581314663149517567713413421237543837825573488409057367440798791293930285709914724843343707263076695532309960324704092077439208199872733529449555990104311284594116967220799107560227060728825220469375178629640314366771431381286746030697167085122607457837996725238311941986184437602134771096486850473518988144883868321943758682167982942986520922693557120261222842167503534300004893671527209166352077718234184469981395392033573372821828732221852340946837821546406614761561577380834718174796640377672538450254519085377997883961218457803438503940100102310928024635433386996584804636301679047897915642820959110433531429160139166037167647634236895474510794318089404542642532531878397093839123791029138878571181224485286743053991349351954712993385754594588571293321280099251632451146074212028203036010809475731525946049092337779243667492519570890619590102349645095189183676275929408817370339499582643044557800865229919756588756553973343197795952956963549787804963050028041290850189100124531775602736650072995776179536369464896193796754469804015957396598392846045963155690720003403463115065745425705492158525568150136301749262508111787832271901360220078823915556927875468990826686485301093013236633399751950335661860086702223801569744518849364229335041867049046765057587909256370831420553682250684092286544112374655436204213090279030031460719045624916769527337387235088572412257309778556441041201898564404202050577973334194248663726230141795929775250375117151758873913295370391007463608316433225993061664223949347727848276826978595645471098768448439096773605670824662770357066056532502480660722928340599285859881762381932547394043306380172020405541859087076240949653945349146095273424481490191520421559195413129028809111585978086694574013794280110911961239503158515462838881620009913081965371030800477657748819143468027523269228841193383552169768623430194749466987790349189084219728932197947356020213560473509797551142682771611993860419209169761444244030133544711612463865497042269230153364001371829669515608154580785242492160390166630357204904775487409394234985027997176683920492321052784760770027567546685872796787328205234079023096948439972507043918967013105792576700562472327456554894369582722985743643896234468397292743254834925723702373682602388708008166275302213853899666273204594675567469478797771412512104294911454998752192843946776129894916208942412857538391260520785121863023199465901502433156011849409740000644902663144746980413194490673933871484056917779446718055601231040375845948408527756906118266914589329203318472563783066492137244248842499687182887099525385757504935679250483031383974180221481203271461156143497179799057229576167542011979921026748222763152249285642260835242291346935529942117630098708331181735015256269003636803711272910850644979758257294555030608689868005433655351803883135494867736506815070420979012175331366725350907350732023520328733388375125811560139255541911733543429159603864947151961157104571604572491873493709999539952080759012867252915287346245537671981500573916466917688681380276918204394803981304445943797330658116810670227797590743614986809210754755777801631086889163735205304925214903617941343007861270369477237446328633191839206066731317621439549041264318560090921220430872037259503574268196991062444493468023959000853715842991883582725653017770976681119741061840996118414658950832212389446374279056881802343068898286001096231110332525003300897868868130743682642208573494082183427443677515952770503020372609190363047164223636548755147043919691149625946018625886232901664471763053384290409584914250201488384902287891611967155950150358427272671630349952373062146667395254089879951241141865943714571464180808106975129740204091525806033843136911685497105452181506417710016085102056890412393753216735662296360693966642484447450256766064470270929059564253489841553863838685846713789554029276023740804733977567148494713657356072832847632153353597665542850491232389033347497504184557614587364982429799499650367644879704521197841685304427815564717192232084317054652108494366228700088021344498183264541369854237921058966157634322833936057427089680832739469308785328133583379040942956614315606968444190927603431993821724144139007624969660083430937224987688672520787345704623290328834393199338175029020111750276680825395417614992063091966970584079662731800272930135648416267593636852783346538328149527372254849265616716817045349585733912203059271264567749747807301856089522690335905003870963198511860889731722071729261525462235254694441440742073203410506905583748963795306851919878645410561574134852411361398605325709492175177147192197865130124487315001204621072652014230733501499731639791496300746061719754194592380238741726431461488239443872379539909937656533020431271135118536183645620505863449844803471105441837504876637992087522309833225064072103539657486324694317381126371570427695047967744034069752053556400269368899672918170762094930676465188720550099871430679195096169300961834537216722855349343810860351058750298938724271791358477904989865282452324769308092679620743779581115804933671595724459021762808003577436823376127947306114135207083934339965880678721264582859071817004036423257716862470825377239695445224212119145731197620343634344750687490500552780967106722457087936465216588977117437084171203024687471593039775273547373638506805069008209355703841629280595861030273390302250851925851417369745038469792467541945226598542490199323680293593355888112873557496245422576860990336613674976252595734661088775953635584597353942345059882640078311907689116892297475877408528223542445252390050760004897274984790381433070210881345522503549526606853791555882181208901808638038238083407460574998484673121516016249674694443133786973043411621140270503331535063741543708925625817145933346177633265103458140980091002508711752007750030722962743792445709092730022479653713583703772693492130914243816672141299972584371026365180560177477081424764101542376957064778059970626467530741755397117473665287884250633851878558975404695354623829784825114086712012937934506338005929402860692374950034469109337685984078985891324671646043028028657212607103043319679536327958051107430999438095343229463128535807246675627246127288279486658584061632022289471536770007900597249899431417749253510145989113488260775232625776560261110507777604998137336872619564211628202393117857176808454779645171366834410080134888630532713268226649649118616691647414561213604793126701162762117343909255335479715881935053176265118078207349547622806511618615394307075628672226247962625864693722941456593093376890650257880343649763616369108775989534193401904026677478363820655602554660026173911572784002249912675528427312145008747861077075425741123455991388155972928319318597159553439968087927418977531692160977211732115177108233076153715056982870509820368832357937111484773596591476370364932516709923799259808485357787913140957444863156722480393596040011691621646795580113892065174406465396997749837284312440498697781064855369066922675454157881744676829096801679399962862439087082637825024269950513327474551823185654047696892724950923841724596710101611491420865440824463507841251284004545680943364059167574033576548022515371822802758264814916747700246871977932854623279070787997002833940205669867013033813634206308473367792641779347781097371498736274121704735033995271472590937550124759111160468151033498785824553336464043910969782925891955900786905539578374839868197429693593869276320890753281030228356562090229154687378912442069135596452791810849367727511366358644600235254056960113343254038649874673661135672143213736695768134444603598159948826707744742499907614491245646904502904022121731276018687491838421040777478125153858793207604625047134673757092314685084865623913792579134535783487092200434171747779132501208303041491785431169896439055972435652742181168540323613718834317832030663332837040488040043482485256236249737561779572372868705997455962102884343714690747351583966543412476821323554472219666417571750042755552853352153204627589004601139555996441448052310213642880423399498764109640624534288989277511521953734012044715166778030262822844185870843214859194676789547551790698657638765630152090983844091827208746747200088951973123566857230813021846198083510006866633955368820035310516113468328174800799747477190890735458042800348245611103831203222976642047176595644715918533200407569974635860545865376484542249188012540823622543733927307290602223425714332968585063334126917495350193214023643160607467925158075168047375263346102814801414495611981747571963423397520789897222535342855951318355556122381485024606174623938357834220177123719925015205601384401031096691642230913728249755714289329573836014910212888736634997807622240411198311781732459789994224003964970220932649179760411436422666040718780650498084116824082305194806569609498224300901300770180372378540196453195723431013462761136745598310116600350465542342894988903496810305115213743098270719854858821749140565865654687637417419147598767566729444239634912153334643646739189336829892101270967876566057113994725391365310125895801089994771631179508381316364261923998628735253044522955865217136909962701749445380709878475061732480398901996944937472601507993957051536166587259232313453990781525621595196686907200155490351869458356662411993694460462595522681733276723245246921180870384071451039063529329849268842958232282965767687190455098002255053890394216107680849444714697439779515825268615335881812780513263257817065454430740113733994702455780540507066126622294860586014414359001774902070533103637974913217463881424417895805956288574309889491671314312951875108915954163126709523352996174681665951606179159822688581893049957995566791387649372984084735988873625964509153290270183385687983161737140208451381192282399234821806761510838913914721044600670938801285465424286255552442334847360102359259523800999340064275967108406928054323924064029520162525296714328410788916859426538728753982938682875864231782934758117139952231199117912003001155882276866331765416285589599126066370893844252509994467032978567474236559635706549760284050704658313046850559006156985244275567497257304912609205672109242095924880718875793311900634813250953810382867889908315167042729377543666415014613930009337771739779618283964392393975690623414506733611355330350468814061361175647110878397656514377693346833221205444833184066700976348570953668668866766059594553707310597591633234443478123347439042008696242691966489953015602742065935650441701822274237436125269514131943882511529678576639141476966597086576226845111561951674718303559714556766748080644980670453303973116863764447928843247609602385025152919798649150288928698209045649438477026723970672264239456373795922034663003765690513542453399497129976980670904936132870582147775727627421346303272700143394143316882160148583481051981027426198286965678663678934225791124515655027368766032416195627429966310636476129035349238222933460570004812628655104016728422910203780486294657060398485701880082797884122271768061507457155115940831103060977898775524093065093319906258284399247322959613593787489032886393379631458056321050553241547008791215041792159259510577590754050504949964904229736794291301046449047043404638329744018729047852342227957439919330264923537824279884330952352929901193151849834332082363143927618414989044326848667847093638164934830610116543091320934057404291560471146103925298787062035629213448128375133849320169470549066990940448377659197394573960358214849413599191727379495363551706457505102104316672689426804093903457801926155802684292217689599964667490949933089485696022145933363344697384765300693058927042171880771323493888258098638039853783152859834919305812544161848513090121356443773347251573043870656090664144018674032097613372450124532376908345727799645897675668097627000169055232421969941873194763129021754553968374738325483269630868755048056060868976120352362854305057605436894276131610185081417995184965603653922558943334791779749960267599277424681026810819395600860092354799945308529528762990154414831411335531529967399669806141696595534698850319004025907324600949115478834620915003303008397238742763673512136751855326500656685211614568408138900789125592319965754538622235226811144959440874741292295823492328887163307870034919537949385611640785061472389218083997730057642439946052705200545872283334479526251427245525674612666146573528622187606347957671100780114883118510690477635843103578200479723619827923608907508728172974116973580596104173557383500485705543118407977419707011788829641838471898698992001241573143576821170496871511960341571102172705975099233659421088306178204881794343806637860627372587449431791638337749734316202647059704893344770729331339368811575856153670781352724120570529309645172931113242917856426096494365693983144989223642275531555609446038071486314621420777723487622462457398832035985683109592638682786410550069496727892328403411209753816664542302025716335482782891934430786794023494005929526258378151037501899287264149858020385540262069703520986455481293589952935849174251672607555519609736874637507721824499913840241087078443122574648229073783734102598743034728507737781468424937137840286486720676364544779018941476377424131370423896284429202080080526375663238953427726665114295847270692138568511204508513151173319059147711042232205669750449810297546821864454334305219963398114014051274666184069783567112262853387594757532850730609616405609255635842288800525153985239184508531826987930220754853457358749477783449605820424622214454026410439426291297720660921881439484045393637898323846911690780709045927663817208267341636122005937783199638408507301825658071235639758682793192599770276061686208486256943299447076548310498672873361264628918142478702303393103008549478656462568028923774544345736167695041351742173899912228721754843637897268491543836710063892954077981384192143937697943303871367391407078445970049586548649600227997080847904328520869786220321980250664191334149165385677666817235785900749356215388688167041581543286213126037056811332025444832704353918808671250220423136791470239130688782976664250518389556582241873127903327868790433106237156849482189812723819245186008205466675579458630203737713059802479025906097404906613339104202001437824226080383443624517560200624654298150633631700421077619362995616751913217781082618125541994662450101979610491759518640210679162855802293791896936555899200342582902496931872257866066304282748669231257248749515855507097087772220145232837838331361218106199014142151330118218005473166649250931199151483940766576665712390049753377062251701650530209662124609203819117871220111977893096820564317475127028816768132310556980341438907097977543686150547174012964679503712340413255248669836332389202161374761087861913123675309250468634344826029450533436979567046345124422514915270916265756602270677065002130432003387998930247176701054538602077397815839142532456663516475452809899291778248887754900567927832147002486826938891455793555285701587329530898597503436891737979487218104334718349342970345442704890956623646604917980376352005078876633127065998086126991143593749844500331859934476215448327225521221742521517500446959247983241014854875745928132352696658919650354503646642131841040008404827354063520432481570238003597002486647973663096976974365908294022360685100968458539816279232344717844046765243518598804040941355774727169596000792637412471074774240796276468183875761450263760383112282742389837952990992932164393367203883273702960318529075918631580340161589477586199926972108910999783463607205515508010520203630613184269837782275625246429625633530522847513934206149496177757229918321817337232914094457831088886725408823605228837825088928319904357451445321487476875523795606629854417264749537916651151496560536595112773714654878744712026941649047272870169307982695052625456791968292267323293705881007709337207708392255294403448288334968502530712278907944825923992202363053316459636297944789650907761802503252679270638341708773454544828243537642558944576887850554489079985614871266776871347315957040694543442626620607421849522611597207316889050712357793224211501666856040539229515236437297829047873823122945642937163136400269518159689942075306534019861777553932546631787845464582445821205783020517623125984416557011828590366335778324048598168691099712730237964215021187687407979715531673115247594367997556052424036156818771617666543317588836851345518408341581932314210606527089914348173861598551459682025023672407135487130723105652932947733451880330258918574071033754199664698102433204947816516833715590174968530327410500494543707196237019950592152277060277886669941513683682094978868324352451527974986481127107224277686791015424890639721281775880482103160027769559585824631792632683142687255182293853661746244421041159019267243756626937752541816482010298563053020449670684302904172166499740370509471984281424591738735263473222478827708988144330062187388064430153357880661461534554314237485940412593375440769340787363573719873513727968794116286080109378805607139952201521097606294135340628759642440665804422317922289597216298350516201064940061428926696658271759222513327096473477911320391689887595177234301187621603942770698349891972800965341852270637607937313448170412811525773712732100192238998860382958948680122274708095004189959948278812012367189275188531615412424458625343882810803708621245661620399521745114943780757075291341207616770008402011704637843847614505108108635797820395679451214670607750459390387500757271393819656825528887553788863481514453165365230652369654965423087749740143624392444219227203762650567690828317304237727648967262529654206099174707452258439639246369633577888716633955462954529184486526629253593749766033406089448419097994207410882853029987948631819629294655555937559837830923700736479762354659355547596251396826589838675607163955883527954951497213650081317819174799885487482049353732442859557551813987215544119989408164412542558791591083028691257973428301882581382881208547912466906816939320955619559015651964136784585020266576868250814122285680182629207028027109885654541298248425228160605272959221270189824703447842502442529364140089572816844841173503415792315876009469368079707491821559341401817078471009296230268560370551955365256286848794465422472495392493703334369546111983243006872726934700179184142470225211745626977013309190012584903762797711033522772909286689229110355878080356480909172017753858324937822998897463390209529070233595231792895076917627619732193847831643534532338092258041495287573060163489077851054188074474300555091611283618547229074710300083672327032827393603073635621751562002787869843711025273177687683925467212690763552245614433549609638124097843361620810570515197079311957544802756687060645547361922161439690120441862655739571099339454329306253899707569250545185808848338133709313213574131730919047124351419803163551731057194125215748187594822908082668057939365331159991876813323219052148960015606398345151109384735025598993261146735786407172153301056244514751092975104800805700629514920628864485362333081564722906194145460004039908839396261126917172616144779087138402556694593944363232294435318600966622879510957738132523875849819340993544148287102820412914172730923639806604558681942538690510605541534298063780662991852579742046114043471649351944972166313030826312597600332285100797323383422998183841398030591524162764578257337983101016606352320171567246945844907095859086284135931675742994760905020600755421559390168479560921830772063622288809135216359851242276765470984758747428642507754080758954750660547661321282538375520927254208743003871279542022150842455339875027104168882379226878267877482882289127473387021612291908128803705195010251897499936869576393017553449375679441637589367543821185381409506149896113683904141279572232805331833016333197831386198586070267231441621093740329370205716441384479188705306963438046233520883008079769909420008170048326675149373410887444838251622850768781287225961749425580103544488527901371889980257527753545887061286146466664252955551512078632726469609982563608800429558419695176249070096061554520730099133748451114043364766700454161672525630158945381825048974820972729851748601493879865233662559330390898038146739074664242564551927932154869973921933813341297691923816207094908276027618075901993547742038362546530889145974916225661516691819113589361867730870813778647587099002156737167045441571080034466768816769891713327852329438947878979083427843992133257332536304065643215939045057246583362783751911067541166359362065467669107331828818883536378249648016088447735824174708621993465669165360598846770682743974244821456101036384697671177724484183766921442463112303945674556086452750098435787092767789113666277310651137371536212165251167076268462488868129431837456679830480738512564548143283724249902123056534858124454124317399544815589148446870228441794204225258195412866719603485875363002350182138181576210260628030768227828741324565873258337567018349370659554886347655118960695576211621816891262202032767944247442179913068793369266725716319719409064388135966844340576475476398172871950074182913436669651244434742893284336749438201011660695570994290980468273075284391009111339097063748856935830616538468388890855572708610571307658743076908202928841862837588587475404998511971633514122707589378680353454214584436923794591536161717072564180329939537239471766392616625455412495472065652882594636815242659128648367373600192276198816498838451390561451349398119591059794290044084142369644859410623749059291620344352380328949461430821768289151249893062460916354901817410458876713081176925995597418454771644645110562776738501933268938077805933104865745054318606406446978885409803445256572827305319085835967448877365923450786079088409843466009642849711996604334861980366420551909257529443438166876939715269853099648023128456964575822334960747694979006069004967289520843324087224341418144113671049269580761618120101291954729485708735637058805113131873682094576203909492540339649334810293804795598630088287937989513976367589099036302341998892753201046232199908266171950608739573398044280048153022967642731630250630172445120205948181749496970102774949933082730534374629821730826147513178733812028146740156719936916620953320212726564872562732623059870008635683396405982255584807804151245550803968565523950113660015899996786397968348950640158644060692007648102988885274921964463383863763644291977596219436843161539895184081734647998016852925449472530745663817910626233184415140434640815855045814234690603138361995630132320965013095849406553482769778712459813798705639087108681175833723320331701601322874792959311198002481889798424122167045813240123919564979077294661981872913807269731864675743069577586612822635109050093922696387572722437062571645498425374088924330548132652520691507991821055769495620002995421895257228712413404945881232515137017499351215265867475687251381649243930950244841762767572706857719013068723444845077290859826217428250718843612868081835022693258105178588898626439787365853158451128207751361299433607997573837717567266263613620298310235382036129290257252590351490082014270176245267430327342223186256675105142240740086441494797123058583821285196094631105411009835465118408423342204738781798585908470552741848289114610681966935257090525016534256989282353322344702492696395314736125739649717437411207842333032498318811355269565045144123433848391993172332947884212771087944494752168123170486762015524669604458126640891598168359736678212880089396071356148987787606473596704476974217097037998674805868105729041999676842977314017672391581812348013474982029055151557810994456224618626053173317965209036408395421475561199611120451715237190871232302805498057271041340578978283195939790960157420168132379831361251357490238961521013701009174391391201306555249370667022347977246342363524410631133921666687911736883977188664015734539041783192260502480546574424457392255212172864694032842118979299414532587269623126429233670979133729988771442288785994026007052165340895004468911557981672182897409582635091896929404702546135730504824194436873841975335267040066072758706485306754481921138654858771367016049484290768098640827401508105758648040216490431732797232883870435127083649010590466134378050641396761680191012416519490485197902919665489910274364970909644327488302964408338144945875394643829497127266761536383433314961124072194158575475796632103542258352296998472768126623694819811534923951969935397587553136553956834776262506110171344952015916051149334373847373229187366323291387901172564075949344196231962278093007050190419476816003371705204234271935292810894919425416841900572278871567760395052142269948945376552963806634937595947544391475159037821207354899931716097494843183047216327238590984418064602980846650788247773087431206694771544685942514590438368907998975316267373229612776296183003209448934246372901906046096307390447483450867893025830234497372309491232850741722654653446396737143308131998495127632415752607837668294240363975582362622731423294457340764018152422584890664514699148206736642137463295244048076832022424753055151018811311027547219528067697801785207019061382407172292775868700165963200148975090253061598986706608522917081260606629257478906328656741408277753946667475140895481536975327489157725639426369799189035037646912629377418319531217530565017570691899942888426419543600275384811495609041609535489251969213985879835689734118877647058582912608734955281453841080795815321849705704692023107659466803741132833429821755083079745332996965582464436450321640925026116574951504176052128665626262239488191060027350041309623712032842229999509295410774939616487000182182239295362104528991312759122723927578819016306589321974255018305177502211444814501633203425828031896936472908629253014326505680878595189001577160217213834612483544947323559518308862635812213522149557858655916435311011951537556957106093522067572095215103413533579783880935160350403680697221829242233928995562566770310166589096167233128859446542280202305977725254907791382900470545735450066096861336493563112982975110168931214467955313790004309179043083767118119607830252569841861594368591342114704104951493780527845830237508786209917853197910152488397919490945711086716249486953649101359041476102667572197402168410732103290526924693564052898468973827446843509304442345746376608805406924196659891363414765531467312677383490487034637804521851256766642795847939163914509062275428527147850913483481954174850698793572398572038071221556067421557856122713036363775653032303011678684814000789678190886414333615933444498184360294105986426175502374160287379100773594063600305055008750568952492726856342636230465717507496970604976189530897304207258947122498739209655586096848614782971228627984559421319860937085710827261373349502592290880434973695385307995082259648410478389660263420961020875282820179527872647159397491631789959196989361470624849039027900032489263281510150470099759084707593447573390351926556340119978151053558445738499976369627922221799714558154281696349382005988444883028990318960027549627671873541348508734472487867868820096064110436440853046875008775813913124140599171662621691317361753067435103483274177127379011973439613449809878301586997084403755077756254711900195417332328494232974721646171726996384439776522904782706824964153127620925040373010813756276509840749089206181744611979240536353753064707270578800048671417616514439172952975589054211489738547280414425526338037471888348733286697120482205413046951211928437068086179989385004115871282075286130561735935153583903839520185693567408605030644802039573615209336546230205645086224035878943037529975914901116699114064790278768747837717258958434404276373962021168115753982030200636914092436074032144122730418801186883833779525602043782833213080385787785602660225465629485726111972430401651967222257296213955868350073298820731721865503772196365319222776526953379599495780820260386769646114953066696067751884215029734802118748504549447455793907611310634049155417666972146384382814862551033871993230789570963994098814205461072499323738388742168364258287309047357729733865824098576424722737124483479744152919171288079988677108300551359614142398111806909626976812588054131334344048803291058568035971842973997996485251046651132531782095047497036341058999365873714895245134545384211779904133811027773811487015377869347256823515649509248815917094843401100067196109728147571098033830922152592059866275051243695057457399862749970548595530722279495388736630655923765766366442691838004731985932269672147384317674728361346157526592080212072771720113094054254659258482872670853776232422429605062814390245655839018353240525854182642046934034447294436596849117526469172540737353322382823295465594062740287513871074489523701195013268139006610912718004997591215615893486287006150045730216574019553663389808514385122962091325536603155071673591440593849792961207094037585188868798724210581699305156830621784365747914982122314022400157812602139407493420963023913665661066046598013999388723212715631448892594799023314571976607038433544720776233415857975270423907723563855084131832069229215087748510816383192606124838746095600685525396523172269635892917592786419189360007630778275086924216299379365150827469831012615864248288808687991477339907071174382951089500933891857910553522090080519592945169419657400018304991854355127095214898067624435876587964661594899967996079594669341286386162460729416902678202481129663573904797064683300113146755254724488650646514059024393302955484060554259930260791765391331662762529724871314514325676296748955865420625038148410351844386019625548345080216730438661316915578957204234251524475436189202166804706274000625946349327051953713532828169284685064512691166331280270366465982064640026106583632227344570611556329122713226122229608419406072515675754904746911430166965222365130172537260399611359410867078827647170886021189301805975799647607392709349047938001902466393720632199181395487343622892441232574925753094004614515609777233649257238656431660378740909497631445137432388297408982353698594527683978050561264661781466206996461776474213380685488725738179137857405773226736546580551165147971285693573825757933670583484133807973324601568362314080674901006706432123062638230619457172583389418254664546277571071525358418059955527602347148517583173839037097176699991537866488469881630809699105659276817180994386528554792156046026050379881821989778880289707335522754474886827364121527090321263258544347338519194794256608179247337431824837183612423957970102006949654977957264180957039120033929984580047287361264256456076071968948771112868089208963733378689940045103858450577353105501391891144439619685751957794383346059225120630602325669385988282712999920768155977348815438749852724125231963186669585548023682261665282136636370567180524575064573031380117215202297120009229329454383071540363890549749431177409963566476842729158365222364028106952141033498311959521563501821625246118815939026626507104412307458613304075210131073997691697421340022286817436426408346802351947922642392544320248860378000489758190853717372281038941946061673828512915697242725134194921395745013049632168214083570976517520438860175058470108124370593068005570366181128579786805982287151160672287766607180632675418267425026493202852424570544797299537656456862312816968015365954990619204679203826700448448875258057290551185413465398619927423638137908334158683768662375583627714477417469828062970424352623751133851387073347684906496711893766171079552005509877696967256646006913975195838670242418863711501847613164616026614924895782413934568458929286056943545676426220586360112618533842993527436861647886745468953150021010686077751591205904179653216950922770247363179909722618052065374053791319019177273348818648491344258617395655656404999120125646170033163244450026202359886593152753989959392863476179835719691121361605869944927511023070318353286215326970931986777644483883326032718878375154900274199103093549642902317473619245800821356196889985292317737135237761356464586885186843452882046577614366677521708005910069984742656228367601240272868484652060309443500662397569461151872240205635865911232376273814034341459185901575614657310055181829454883516094829314980429294802070570358553245959393761462331866541590964702601602789647990045859609104999663299520826480123196307336614905148050599507262472618644976218293542042338125320260128242713844309586943689638608366017124101965482903432747648344122282170606279088747227992311821496382679623364373137502757778344968623647066902187157058626094226648285220589926747418297436681856592055018687059006675730046868960024216282998726326309227968557577891695624542690434902214120537816748903831252012986027402639941383170466045428675156371083793986148771845322013464577838177750050766026048848709570871901316200243250202521225054790249541957945607356270298738860769215157626826596517175536293906206350102844561284285061679112670386438879221998341018320685084070038140287848075169470279330674023242636387339397077272381314220310238231781835302945492016160470930919363346705599924487322636536222459138098389428896658449738248516103554917741745072677307404507851954304369769079600791195309390046822802387639476135745119342195502148083813923618022925598495752817663100379170962112898555765456995162624381445963230795031815616655852390076182547761377738149236540761834548367187043217085223847775036807205470158571734566563354696699522283299698455201492441358268188870123242459488624243352870973889409484344338975688744342494793768496708455590823447633424330318006202712251770270982408005169573936290691075870773838375408554122335916290843399245399980170661236847471037968557611641664706776504667390876037003869336821589695796690676280676688229536929417426581366163158466833887762912645215243444403461597369255986765569208928777551779347141692589010383356413222369781256956289067733990720356969627430607155545774567490663777361395619808673010392421898930997274882393511996690753182780921312479185029678569522936930789355210798809287087715885383064394488042764413236333454944990571436781277386493344310299100156873389748612670871921396931464418128919942232695112099130947794487754020608990991548866175368669377697239908710923653447771410730203648284851305101782447156069451338116116249724448101143359936035148321329471418848387592498825678692025264818594052124647732962677444992754223582612572591438789968572742853583631230242065294240433043559559285165229186584946148083660321314300282637581025858253348609597349176739057476101582950751018509902112067365891285639285172960625258055287732436246361981735131733151668801788993294397853846650351577096556090442306895601630550828233872905196487923612948122835968167582280624950493302355786838834726123068132149091763995970029197699179063241338709552955582628494795165340836790344203928871495094380768764578921794298722946277234122292802755269910692859314977331293305211742554629246731843516909159110877417607417528908191880692927773194657607181244323323079982232945579685610469621718416892664581623366963416964452539853668393114621894629447084512049860634479993035089516721269583573536224350651967542328061378507194910920538938523137235765335153571950008839072556227358792314163211542270288638306472472153434719529083801981071023562403877062904375246288628206087098534002157762133929532813513926934296549180941057802036504066725607224497794970248675429116221600025533483077243674499926049481018634678766464940642357499086181316208016253901154955030493551605837253114313409462989429195040070746112157855522468483785365060515833992610435786464235562857523919222993111456300039579242495479186155581254246309561704183176137648139180358367921618712612869652298081599234169336701751700405973501014413876779023760663831722962647291166100967594084452714999935453197323226214951517721622382944076764168568416738996823430499256396430869719453343330216909527330785703848384942723684490565800536241417226351271089120898990703565949474570992781727867570716297358760094391578153851221963015020772525079092674552473214716268612780522943429909386637742822257772659915793860493552371779983903773889395951152429964644389866151197759243133783359004906114686190639377508104528398016344236451425870095386092126125963297622966322925678794042660777362663501630029936551099595096779953246946732259228784274439528238156046342908233459003834082382775417340583052671132088273705430633504260083582804769748190998628978817860324942180635104730771914945749702539113050472897644874991181837287589194838359111576331480872884570789313942027041892858225671392167508476373140873087861906350477246841577226712756565030093178826317949353573686714488646693732391485063223674242189202761445002063092985144485035689178256915462086523982343385922042928601765848294999202760644059154737602287606169206287986953794339434414853807524866826377234786204227230303444842390893778220609992448873104575733124558707304637112942183237552406865668920374662768754146905488967969714326965699957329016713020688223213163971528621933998243789682056133900645680721567264519160136162945021319071225579592419633819790267870231931304884700721503915598372383370621875612606548394615596001649582677235816218913991145714084748722693177363693578861242936273196945408108764382498554853787973821190756471800153631848194265733730453389129027313590579791667226733428269090154458254999195575803944263700533950019840521148558374990136265130674499111956278305222764187504800355954913216059776846720363158108985200985128508792732875238728458571538628103092185805509050839419903321609741145091858190212415997245477000545608937456950877073311148770638735031376416362745641276280022231440031669834195740566248116950286765745171406091599139128749498916012900366007593926010849088344076803074723141554910569885495468869903291854071437961536543520837073107073147314297989007724055187063576505179640583785258565414330980344087723780971436431283222148692931499844240286055730449611023546768550380737422169673993655075934044646765227847503261919799406459634775804001473352389115664240359619385072270813964502009145980056939205574275831912283148213463569456802742964807301438393851391038524216708877065205247287800929102666683002235318987168724160796681803285099025181250346049631395464927783051234709136246162120702028353934999396349117649054026615271610833737478813912214391718830291177418996281705023107359788552557625186444445512348880703770327785720643652304707201355122038550710589715213475324802059486465876246957888627906876629887118373272227639689606334121393969840398119144856367981987840829053355426523889672436346645650154065347622002828891603749255342067487789241068156682587740564377460591112738337652191369802979767852325945962569628442818089948404623702557400526458974260112461245811720939214969046622562051454650170260969827613179975839335007880202744602268782212021789667344052902367972019951327284128457568370495589481122564894240902955265417465947313857499687408802480510746209860010424902792680319632940924981227829097015605882532441903183743495908518263832046702936466203973101896054419775043522522601968122536290494933351852315736019003523776181224184136296659503825585629355264338562631505118361831714962178912171176454437438329987065528064934864261412750106895675823028541000498518639079447084993559429199461734238840790410110719437106423362808891880527746448658795199590314918801657927113220890462369482052231038759096008956293300925635833183842924705612044953303412110463708204070034052398992428791215900335834161111611089570154609394447054156996862452577495853429249897555426235842870366292221868851051283035963393088297652633483027078875987890004220100496344063954886678692335670216199661733627258971967045922000193058694078369560034547302828151591192685480920350843111753179021348120740266421703844736251992375692373560441981948655948298142406302422295514544840793691789509388102741911856637325849372624351940507935730258443725054150048251688321376159329013156650845850937350610332622963634125716880147294736496630315106178755943052396406819241768497448613255722124019586633162204250923281100426044636712995285922830386639788200159833184660819650143115618531612135175305136734496500951023727088848376242766569669958147251589065214695799677783816506322519601694983684205455554107052254208360895439989595913427401342578733298652034082740372749078085497159316437148654191467588575808615364660215145442346299572060005632989692098537870621549828397343464919687558060505091295653153454004447430149411345098345940155280260431744574743373053898605882868062976725489904754947967771583064324768577733884864070462997021332161906374303949398608104986160542715084902521092066146303254038318436078147779030442414321131034459688365175090435091295419103215996580212993466209532399358353240768842039412428543396251504472572058850140299407692641598345225283259944509264317245636341156729085052643680077740545644776658501656984559478374953629188592175381597887717407592428270811129932242679737174252450589748681136699063041557949633902146064062542062087515885466011218444740847431617321965460702370445398688521966078036946820612498179313502220939753891045261963012129281034710252370596435267241755856200930600613517325591651673747922836797179157439462797606501335438889762789831067737363887762058036707798855704571493655599288736128977387271211796995562202233889973842052544249027081125333623426090334013256536409383553403532460006600039974073211981715761691242569588699529508285999240763178688287580869471539945649194195976845579005481453496060425930615273095375033870443602240469349754785182652515582269844425749258912116356972055190182275114426199849058146411463765126797081345262578180585688197526562215014317490841826106802018585971549717687321161472188841206884227678666013971723407673856568765271957370108926383270953334745380422308166364083800895243053320206204729797002346195085832100464737333132252046945931722714298754725337593279795071266377934012670876026408911284758766410401195055340354701725088399433521582025851978406974676584582443512997419635290127776644619536427144013413042789952380888100718095266532112471806229615125566892512299216213776907047220444234432376754880515953162772351632717113572116604020423257819606136611561633041560649567592774241540202889949286157966558606838358198448591338602777598217887202595940697469142510677915867449603925898460440715198723376510939556901921612110423798128535276040778772550467417979095431892062185899377355979236749762452358298345068792232773842704405535520075789331085127889404561537679229397323408481719230472942180084195711860357077230277230135375395347149919406352849898062071294776329051207769462670712321930956457447838293101244775286224883315530534738431974315654632002600861093426793262796821290070636869988378061331276510760537862580463387408705743898493274275412051453050346967983486372503702039194654076228833582941150577287715821537256518193401420641429377261482123371469089130407159267131933755316492747475627126404305500259838341227558929093323498416673005710199780433832944157273733245632269300128128842622074501014447091315218489562266289392137722248592515436282016670666171313379121199547811329388409972577650631885795454910619209028739522052666812335793286590100726013207086754045710603057557402362604059572392382178190483020955435597619506978925176031516598072688534532610472488916848654825432422522241080253142591827732825755030713763036009938043907402030290587107803767224531982439514146010595715855828568393549987745388054681181168870883827848890633573196617466359237443886750559826382449512618889199975313406006480122316878558001373543994213816321655821281677131420363598567039518435132261708205988767015623378739334108312864427372874788202114933147921841671449435347065500070428659391740127993685942724744781123071623579710577026023857532090135443030054180763900800234908101186900091959236392177560163359851081432718656748037738007155864177864038637419476437479485096904656662665878885398736504844847310875548369112658938750617797069293585350371511482717763681293457867133090362868898410588728626698497800658295398733271582177853642838944829512375351365625851611040113832108875836226037831709610838432719220917037799756148912653443453782953290232599907807975168512002021456339516714239103418315611021549762403890099996104714696693281299745327404583690805343428786606762944070937518930213376963795082664575155489276373924666460689669167987289867254647376135473840716072370707438735413014087330344296588050543462392989056455742552561120901000295814125840187684429337917314802507143224115049730646638083504312930657893475228711320063582765683808766699896884386521094774198303202294724410649219602021311327933479969716890754828893054179233990085464596542934788708740713424819784345473249993984256276516499008408943583851736522113431407390014573908639465289911435028660311011110922666749777988609420559660912464987940203377766447148943823926607582700225436461796869645518771887482841649861754751957619594750340091621196400064185683814980902467110767653037955297575443368837711359014853231500836652205080737394216223955932421088908951796702213693636974530724358091517330540319596900919350833720058852384453553000837779550212918047765555246034069097682503721062851763571394784183984164567340043120853315207484691153634878781872117625322929731297175217906560958293463365572971090505882544321914527553827605094948472561932156886361767165491563439205188497035707435819688945486330295284514812256651997097756897785363895115758594144991909565461666448336156792271755209009663947852612188449206205906633460949224491589515780877021323853846664418267326866453105334371486831434183876401287550974831472866471875223182986079312609364708050382292377246160428200969810859070599188950016266463954963590445455136536973406419864369218867901763287091641357321458151374616138959861171885121737142753492153017234499986125444508451055648293634778841604686902518337351515281489390789464464973756530633110627348945698573976165093515147239730549422556965792353807026897110201518458745907100016068629119893049601269825430826149929426917097101675104314286565651703598940379002226445738525791593859367588082676387951338142232247909220445372802490312509052106228317222595598733174773024187294305755886906847529881989894117893099170191600156191440254986850940964169759802468500350695349045139504875468372702541362863226932061313567631679041791234390528544061612649894399480061509342455281259172864338289961004484392287998149482255083472284731653683613388277733248863449623128069797983997378087060309495312200589858628408157945242977773570214041880255936471077277776119062917875883145368811111441962308976404078557548043831776483016741999286390980223974387654386506573968591906249440350454979650383685108051170844171709362355052212237861345764071811236152116446005740929999782174665332179059994904484785802873282474462444432065733423515823467052771925794091812701016117257248809260422962319017053438645352914943109099285654563827508646381679522036994751180718337763545130857609250778539275304402091512948407992954752854771903555812270878913349672557116840530338914329319554890863974258701202680937019721518784945259351736170518869157695905988013099755969829419605192997236503597372474301190787996093247591145848635389458444989856794764713454619018745311314529441688563196824178097396850459624198981708632560147349110116588342169663721276083164716257368649287592482875061837303467876667156258548218462430234188947483317098553036476985882389377039059642595513566673175589152861307168589286553617088146592299150556042949796820350063495163841985558527612560654211177246460296243475990007900643173986830385359163168776210515336096964004696698964726767267214169054334421951793839558025037547255943033078979656635892591918922579277932706349553629563322693455085313199769773205045481142164860648670966821134702276225498793832436779374928710545673391163638154092858563754855158907478979469930324467142415101227631953865166154189168863042036024709138939299480280715725172412279064353057834514296292678867069514788359845828389040753300223476018673615146643974249722689789790237402831382672194532010790760251025958986985091842865344518088303816975655555926990553151724715022567722184750257830148569953888695524456387125479508012293533104483872020009595073409438490953561127114425244191906077048628809854819846538012019281630641754280252267412792715041891997364198469483907253053783889813509483895804873007837892049087282702327586196739718861474252260652376891859221212288256725875300540744906514317807258569081267357330771780354481534328722225793870852963562838459944062751687343940430706476153462648339711404425158483878945469723173452451122320746423372950476266603289676332047953776730328314563401379395447932661102902117975618804082474565293917063619780076783856415121279212144359268954161676498541332895717881730039942047486006435315320932055465773215300905948583188137588050546149853742668076654920008085478488564050167090983480427989301486510960878923258187493631545985567898225582363253694056970953367954306254475127058277997346658383920095468575168796557503428477147416134500888914389195202489846359268149912989139818288545111233310129763775408371367516986851008192039735428536922954279216792543674126591386060078324483669183992546258679249796499795049679479201117112206905645461676093739402935871212449243000260623178124877000485315873792867560956205997252800383984081569671151316816107297150107443392204802721550494421489641303514747585651568125091892785386273615806545830449058464313852142011014853921001303656034172928659216738415332311927015171585895151788542726048478794099398092550137320789768410775132255542740535706967437490344781334502655355911924212484127463051701353315293510602963380127043162447657708801686570631051531098867231851537341997896695138406851083247695374161164176655689798127615266347511443745694094160151309091941202107194365401058485706822704353808548457394478945663650304272415818604585796637354697862317809152200480472013252596989126804546481219148597643158148295408535292772146700008939673057824066306946551208678921075852525536291209569366111652000805267962202273121563121208038458465089683283655624777183300491818019561018671850061948474979243336542161481267670349767700928611742664222807711455644561857072025585397301417109599348234938713251588488931021730421350210090485373197993316459128503065798726108170779854191126296222590840552106354029862447576990686114922814532966736041118924484728984658587028324360700898317800247626863378348796058004483094343818124762896388466071283813628934447681653384785038993970772727628651112650227843110394749732687134535764719233517538811000008408417694705218583256751775664057684720574750467895139292212018939105637381260629928898015748244848452439313807807136772241161568350063077830980110965648277379047610606338393782075498449066398025368515466238291123543198206452569868705135958564693236192637070861228167412637893662918685454717032367986586702099758021895211673816180511109971577046920308712022488203331092752515007270846047821832853355904196390102506427547930873907408682476245956533900516348247232617821741417570763093094121100861295037297490227520684159100024380781394805781140847813296962068423855596946297791720718200458273750474303192371418164957610077640433869257523530406431565345541760423438393447976937858384358413008038908406499150924533144842075898132486844517992610508718393938315839104993502949026571404719054435462092270525784866145494221878338771473846879029815092313944090050520416134556397985029087792208119166240712638045551329057085564165226467379630833873591608526671023916295573061561898301502464652808401156227844881603153242597252025474819575942806790546217269109550931934134748826842739863919105323705725342376375142914444722241763624175008237796512658606821914603408294613348519869333801726272569892745979132067720445439800286618890599584813080291224404644137581420025622227402786259214446217218933380858688246507571419057117368157900936210744482665961417403401883124061315024085029200914434496714908486055349761042737873191170528525251470373989010664730871428578806809287548794266044778276240454703620413170395663598902789624481476520289626451486861415222672748299927779673614523102478713383828859147372970644328760859081845654740783092925425999700861172949575597054404397262697280924360282013330809051158089326008242143380363881973183562185320185170900766014878543856177124748449548898142630619761094372169651592203295380611437747572395527753334771037844115260005959130909321736044075602309833384431324808994163228533481939348945618563662329280013073452884147794789120145076870512363683862454461562569395258775983201267768674023671712921098785529639388081405940526542560286559336343445267011250757047448135199752959278693205502262087196097186562690329219037889384004866622831894874641595380623846050102574391666386622054437105963135425543529233539670493018816968223867112207476584268873063788255722129561077569464826825009302914476707852863587925948256626180516724297068877955386928867397466118288052743994763992124064590224019463664459231004563398849413129592860405953976542377871046183838354979913473042699518895281646574864113140901646646758870044706518694866232109572674868833915812063128735667448338642024531440903726784028747682322660588999513402787942674147052779155795845716362611510742267072541638370732350018792015562882990998674751839542550661138859549157623261709912835970620675788806129243929957557170966317597313351548965795422836780022892046636649736007395522200817948640838078642331444235899262588780580546158956127480155617745330845234803515937343345354061298646036572651587336416337454332516788520389032976898647540069030797973019981109194848458941962200316563260605034242952876070313347328277211258739579798864887206314159182001798648560231439102418216361015671870374585484647373460403811514453746017560170397851492852352471324095723832186492482048952362046390301911463745728685533483270501515121451388941786912354540465998779037155938596573878034235838526188912631528584385305969156262949880986399094290902344379977745680983950668923399787773654426269579144531783736537434042339921869843717473550104532457207438498112149571116143852151696224858582090100147188658502894766313142865050095923848037991628791186805367153889806339977439336813307945669249988758055610864575786367627453779573878677134855008528228566947636012708244406926434759240806053354658293392293993524188988236416264511691953497449470508507766514004276943100964503757704615829897225302746503265965458813831391738388340408326474773977175205441116254833688027374229411630042812655863872553405820248599554689529614619257306433656410861105880594945501678838055801596140763880890808570521402289990940503431496778635856481645403614293041215284950311467899971328573113429690323873301978067780480942859846617789389796164179012100218024552688247727995937790697139605626853365999633509322446531847879556423959345097520522186387315084061395764039951057218119778176342123036344751813293170826874289962496080453888083473922622108898449651668725655249096850216753783924380568107568498173659926922792212638938030816147046616762488065170482935760050347153112093907555593787988816509226468302976545654219444680637202488991237509422320712545247270032492446358083270844861681378410579244806667867928899886886133729212144331525939360310884499128233475506010952236484160779625801109595686245192446204593851766661352711871658374006170740788492123362524206863861270565076103481888581654994624895513550130201821991772519335297931899387910989745496621409839588261235490111039636411226800786628976592001189885317800594727329463873936894267348738183879123559530749533980258045002059028231097420364905660410909506124627679703586611755838726983552025571703788173858928605120984872870502223186516346954267040879183326583688796452622292185907443321895724813525711464877946607072994456666856508236302720509786086581247862097088593490588592205255591701078705615779217042417353559404342823414507371646415025966140042117906237458096760533751056610035634333374763598173067402478166482267988378229703450005756791389031846175248373431781158410515187022208993333149228696498508170871801854644479751951516593159075954876994319699141361132660723711839865979153774259480542275010722983130583566235845036984328394770778529067594166600681461749766576258971406302638580953755957169942444993923750684697480894420306082683836305419197788741094851085719948665178195525940643867274800801375402397360862750618010015291582442944855168970195474511816483340416285143753163805769920473433977812264783423061297136928177453055176697718971152873821884824441488160696407276934452777592589108027786633113899411299669495452999381646749414822347367784351240945479559668432603987166289567086223374056332081667811572828317847034310588945072040402910516810465806939482861579817456850599045076588774905497508275445073417712454339214839421848773002829771243355601502282918581211064222475201502810075753678362586617245618823351798612440114397234293746891512765715393744325645635562366582216204095989323058462278999028066782931384359041865777245040299756462387426907305732123115551850326699469474892690989720958060256957480665268267775626306043395811505576735413310357958458992666921149276352617439487379417521625012591408994537396950997972765958923611818793915419063680146113004271009943016702140741314506805178238202689346383244981900110491005766566032943767127874658905480665371372088737130276597168913721594102291200036061289503404021033498928755407329624533200943018472603227655032100954529418630704505461496738391583147106317961679964293194000947171032119167843661336152378917634752423180723023955747862861303016193261937837221175232785785712793351790532202698477046331719816770656083129831011787807442917992268496615755224963842791033574154065066843362867677865798438396160433093833818301234005859442130822653981040533749106217955910267818847658886908634754004589803559208165981813250590789134343918302639516987464191861581220153624241614406283453541369656036312815690359556756905717648514723118981185536772770052127257543682728083686819035503939032627601760641108056278951906345025439644056888298947771883096119795932875801799570423687235389613580193957797351098818407500555151283802068868994347587978956442907502626873836924847289723419615071030901345705248288072394657668501445747611388309608437974759754807631766030955493857828852667501312111771429001029054828969385556215788250809755763060344493256172978080672503324934577414141668961727852274955540511126548276541535848834931012945245591171441470884715227383028055145046224645032703703446938575586415265878472264897039175297788640893686226556862615032245687655875099367645693582109311574009737960923863963844805856082171425222918938031372060941345217527121449863155521446339318059226130989655249785749508420375748071892724288344775078128976457560998066462291390970508032941429296770371193501392219210550087634092598955042091696783244009189810259042698269861648746810252232348615044555155540924171114645257521797502905686798809765803975789763559251505908165348035007923269360700871528009258009329822156698820692667108367421641811596929675859535829718468194061717900905445108931296462110048209155993662326809557188418111436225930911814798738408756140262068112184980519314546968463653183997589402400763624342013186274939264945560699721236408632528052584759065253706115965085537442097592214944554274385927913588539318797328765160192421664112283423262605274419974182362484187382762661870629293876565294218113874426580158095385870943652605258529357321798255066721683681536089337955508617589303641322215830799768767782489721015317203719688893847292485421676155291785846106657169807780689556307736559850101538952193340403826089814442221358720950510852012218193817949836214319510687667372662680818451609360562434015817864287693346860561258648962018251043732817296167358373658718438173900085715439376818695996245489525659895356078118638393325709760494464000920197324347624903966716926986541585830550159473034230575350134615961595940475562841934375295501395939785289567065633319999441619842294159782566628959569478119863534943537775564638746223844846112434019845637767024589657910978598812247654625738168061114924358656293286091315225093014637165953536092544708162979358235655702053021621241611292476105817480824333757217360837836079761712627177929856208518278572514332728712698305082665205755856935172886683774509775609933886408687936126438303328364743855456004003414383367761233870015956114242455142343716872258802740400984957338617072092818638972624525746511859812202720838893043051869376495613862055632271438230076360468788512025447983005826411902352861087784975573365756425510502535066442173658783412526403446345886415568234181038966528882981220766879829615391174460136547422662362457090602834471728133115620072689373202409519233160871666977431400046010040671137369638662965445761982284347415333207050937787257033682764186142554291202968495208286863788540158136138453362162435361321409020915499251129742793561237626977784833729541985820722276746911065811016075733309661216239146040288111629087401490360885569975947221995332988387679430924208437099610117796947350461903900506186223882060529555898327172629466942354253190594766498635049687916638755540416001159705125654847953034392170168755879214292650450719441712011477999791811977263791960925106916981126543935049864702339498802053305933190745522116674502007019569552771620114180778203270222785668633074754716612732825461345127593171253846873078648131714789616787030227987176223750072638187155665626901754349120711161803800258352832277096920364903734581453168086739088269662169169611318600797204686391186435208750107986112662927150485542968137012318231329761838831025089425202809642786028883135458987968612744784508621454179798826776668149353258717280991525476959781424413650151438263603981783680598980607712369232756390102332594484679422967926545415491433310996542522821625665001081937707479396631847391823319234919696250410083936068530053026891034141272489149084441175622328503374113583046928653841291918452579492132333503043018373920971009667431832769535886557750024656889275811888821543324989117392061054190768417268755400163647930583159534476058412232960299662621910542140228590048777840777880640775827180664196670337915491411896603984583201240168458218456358128937888503550942039474532085895014839609099110188156108751613692069774480306413570639393540404032048619141835740464822536689703253392337168797055282416575257957150912918725013605637164265753939698669641044266365742162337772300560902209830022429762530830583799007397496766620979069435275336916631110855083750878492778664798348236620232191367527941105508405179737711232490390964818808666316107004512109160968455192500354239055789963190810664966739480567196657007866369176403036878575968783743674812100182695899038215752600647622538704037562558350150253080930232786405810489567162565422947596711124764321062703431816251622599915340925316445812954348750795487293256530708258174253167673367597909811589004021810176736121513689281304792085118309514711304743834522635161476637365840199911055040399530245204156465307752387064127409340505767719117757695854077246768365786810812460642518747181874828951907172456125903448653871706900029171829358561322749169638532762764245505497424415498686075078489512829641055655056006943862946178295018232082879669918659161107920668058954792031282706607301019815178933668474889331873594716126851141705872884717187839097861434630453133351209895021318343725740594541781085334724685386428604712575575968908004455701841716543372201382040988807262757431417976422962370151229718199349584265715182885802856409108936499379765137564741683541322756479243915675215480580350872687488508585129171563789914588233553330521815763553636860548388218033368732599954223391487656644594655254392107582141491241670546142204995937345971336252194865032750564474876489042396789627216421464320184360287501239319066524083471033205768115850843545866471567173701543369889507427389577261294219555598904891840507802678249165547850416209700953842198067942830859229461507675771071877058715790218846977917079445764328056305867651804301549255345093838870397081808886397875687802250967801693904063872931878686062618345497331230445142316651770543756319805955879924833923182879486211533555237582794641871860337752350836929644947994507206419035196087376546077574104843377260459181167349791201610725383281682170461709980482415368656256420701111178663794254196569520274028789981490348084970774962173478423217314233309997999899881511249877960101839088496205388751393183207631958085938007770476429772615492422570249644304562526816748314386220565674714639310345299423642436887940543103918612137755198904470602530567986723754126167132700004199672899608584497451353014898846923578254576448639924856240367286354241989485441919218986791619224084438353715007705999910916780124911032584542833470074612913881741565506929841281967486267254836101375782312244487361599409160839287277305754718458798199260497909935888632098455551359799926909344877180912153286020214575007550845491502550202230936160275893470127218065959141928898844934234087326776005711121370752617312008518535371216732772983797251069681197849380776346703799154422169664536025479724264479287314826678410656109174035720519228564524732049810062134999236653538185762211948419188169623453390444449318063661420656294364942054795883368694095776279984972638591546937409897397433730778619657804478101848505822856667854632398458471535571766934578441055901527154213029127696631040421616350958892167222884163881295711997144402813967027187587568219666366314734772601218494292422188637382678327913913431919987288614178136266637709081208737112588488189571087054640647781121219714792258465891546029509393545602069922114981988968912666466550766448460759549415698852504349757421079776576667134179465710058691517206551508330078302414526751696709283540862968528340079322607827603424164663563110762010695611756949528163368412481417087451541977516452930405538564718012360979135317597983093374528350329276443098326169398540636264698530837541107354120823846103969671842664658701263607319905015776663642067449714295881187410540600877640284105009828863801079527462733821265763400844674486261305251272473434411209728518012098615505433726569870511097150726392914127911963334221668507760763075054351345914515689586501192668944882752251985791527438765689561320090959153663289306274913605644108181559626801945297076305321431847866823330446958434898849283743363693002023649036578347221474185942441216021218532518054568766650813904259458977115330988551509332243732948288629945964319823948977269536500938922619812950125258618757129628773201883358658567930298212100290496368079343036119486489618691130136118643796626247597249358001798047463123522922694511822564755361212077365395153100498792700012117889584867119675443851472726102747996815516888623538504750349356423831526825448641536598404335516174959612695696224617710635273368929220251874999498358504217772070789109027575876583827441995904103612967952058546256820405479438339345728312672411172877079146120572394106599520639153994133133745969623056372786477599441231059758039508010053403432880853818693652485147794705964974588659648601142939911025474671739458978739537274361141902527091564095913724726818099141824749417268523271822677217553665572627800040179649899424628927290161797754764138048301803047436475517212541222599232004822370732985793494951817443088857366949677169131585153989464202213822024657388747485596050275703512102707538452270981515108899290468280997007142000912518530625525479873411651577615234279218943955983335599055333248475543903718686931182366076518639452605795192600828883693913503056445255233889309716959261255508632121019176586133305598048403411218817231537549742467621756339092394575213291875033970996190787112348255078771850666510834267067440292245621167896858654196001674448392960827088178708770205200595102694753079333797106084963566120956951393511184823763146874882169416595764034609673307838404079452675132569610713667309477394457836602919524031103966351048971597334903750815667742835488983911148680862209735644193986670822515605558623794038699223345274402521930379662915133241412576781959647748870049024654975494743277897634831430319710762119708483112543763128817431552983058480301899111287379327051241880795059798502672257817664766712093061040873436223880239266701575766606222921008097194816754775776361274074287547599122355971094150616040123858252152062587828407415172940820300637286496604401414738401162061525996433525683210032063214421396678341442318826444973183166162400462095628837875405481946851504608308879520127944679830057890078292679801233858635613251995133096632010944119147258941031276370520735678352771112284891574777853978608132968005639310587675315958854820358015566065492237202976446937125433893006411171243290449390568574940372685991528165970954059140540468737448715598311162520041542833968185884700645588832470075875025323133020423079137586106204984463315177901417572446594426328234920049670508681957574673188843684670151487646819060304499763776630616260720312373819722754961176569211701485913326342923458546020667053116719011353451177972122806368500603851423483830477251679911679119831344468535467125938924702799576112042748272015788902653782575488710968985312566618293836243938945358770570531082155793898202183419411007529961828874456018834607206381559295048569908074004302994502734290947104524570793943594080940600685255129961938988007742540971384880318521067529320045639707287384742108169995414790397133484184569401098595138726444151303040089014748493708222918574696697485333889877293366091568347331472256561145246837155805618982625581197850942862167929223714534196712260312493152423041014272506562239036855024190990663562657034482439920019045553129387152892080696263810029922699229337983614721918570641018740439992789537560562296642727733450410561062309358328038485805630091493598004793391813241859936662923432327224492361854364213688327834233680715595635146585522808291177756040210902770654673583601809323402636605709351918675565227763272726863141400347744869658939057339892303022649837558297941309399311268759530508502746327631952426055774401196911161713840348809935935182396323085586458410558004790278175353053159090669761046962204006708341891762227304612555954252134968112583658694380470275661441124926811990400004035866555378527665037462612325935192673820734006305476016683349051531695294537461196009121522785108697791962985840675390019568289852429921363065209037151945049196951556073619690171772102787016864434016919942246973995383232770590229516780539919763863537706124550870921644268639339261442807873248104701980296189206143233504763219797687642387262237028348122151333090360112960729416247594316788095135829464534192082400020980732454986801288897880099513833653174923448906096098773719845378427252731326158452218429274993874508105752283199788562791944905920403761222928270221822628958338813654397105327053469340448723443670369464354407935454158676751008387125383707591457395517419892384624619553632109625197437579207803830958022521664183113700789162055958360473541227206329024577131606513101955383232673024318473757538589104737323519223862968353878163040109123282042227599969955287975621640667877816969942633432490498642103410796185484985547183973631121145789834385756496294665911668085562312559317305402645657053766608125446056202718721569308958094132029214730242720028589930945314876849215031200413176347203463430454058932875748314148122131180841594593254666388805771611623651059555366461407496007720022313813524676066574853820212659051710148265337184385386446446526926733093531716482670872372046969782934426959919936675145888222509158451366948355013359117922177707690929693272461377935563895812488246689352348937212083744003269145911752829325688138825697548886603493097255497259986967887920087039569529480385381842480925692023999829845669969319714087629337771821811981666756371510611130428676481325543234672427743269692540040960930135332345580013769960542831510361529778112529789645283773065827087574783176926720104609107080980037253052588956088673799807583768922994494082155752336887153316224542313122088745090434400708588846259152621810164509016025552230610097289617479012874549941575102064701564788456911137058670526867193041677569768157746640907471385527881843410161118556146155085808827590096095529670789948877675700130358514103493756278694590182174861861356555825789173703351090535021318649188051208911878347474211200046335222266604705585906545723816855618863148771432452832510626901262627839358054482683146223816366822021256213730860555920281583781419082678997198412939814693927425960298217706907241208686837553149413855349876586288999220342051462451276565845146444106022252681713613293729198166141961617888824028186824572946109750227000220541724354785179794136428927361563845411667913255046015103195574838592609959719699375910960174988073889280719307892855359293783838077924581315024449228184251650951404973925261922701741947984058035312008934806182587528398774008942848384284831354087048102907170609608723544356904934004019673299808422009100553678704844535484511700252575992766505541639914614736321541364121197522009056361624123695263727450841912380108485688489715500402644995182999813794214393365360050155682378799759678841432641647576155671603740128972422354800334152542735027113048392952489165021264631893563784727510976325532729136854651627528810064469370412961291135330212359869519409751183221557862127484399861056169099911787056839024084542543829258556454678014650107458480398365388781042114026659930798528681658634945093492153481687434550933075480827460917477811236672680135715453197187029402766694140132850691854591578421547113832810875917347920171693079569471241314524933727937935257880051285417368774756803305594164286503912759742867271431142822179511374482066715346592251072348954526490413949108682867067192528300997118553010085208422268100444107772586867628202855863636590477366072693507264243636869519733284472875249137824728031561270597566548210115227789181731194754054394736969205761177085884474651122063445152087266890072202926471918880899659628361634189947465443345981550224222841220825958050985819651279761251843455853351580116559294029838086987417820548867292372818314162108811097692322028519833881882197520860471060414323280793188410873826776362929392899449242902741580701625143191306615560291394468796484655009283044846337746745023544158840096243559664986081462120026165000661583076720738217345587898014087603525122694737083142594501299421616527013458340578026569142004608819834448882392965996969815518556716503225459551190924371206103903128740004878224020040623410759759736457273660423366937745102623713393178857543095810039198128677222613847497054581989565560462969069814978661571264300156472518246875165133807317805507926708537456800123803817415944650460955293362557598267040459055485792435863839486998744198290302235349033123406141883441976024140141305863137929727026288874022704163758557685308350347549074546475940157957154548755645918628925737288588869349513683342961454604678626970164773006815075083189033323528055937387434246691934177383641730491588306598665643454760193489544317534085278661967735320046893936804232020109935988661323750541582499311440732817845170402499776251120469477779160524705600102016093090308492455514486579468376160318206970315528228856145316742444443477009975497649734326791120230059646952756394010534001220303031608408182719132128713337346850562712300827862150740434830715483803881806002414606078216453268462679770490108502272718851311029584868199521873280559984026362225603278749874993829406508831867998038852807725161814353511576043642668953805920063745685513583926612793097243971136851020075576242503626715896637420647708065793960648237978873024309962987603300130218337800336193319167022861479518048759127650440445779112548052276893484308397345859083380681467581239756016743809996022250003032437605788002615519416289573827725132648904653675907466516734330697790753231481876500509243521348086736557682773913486896355917177107614204258519557605382947709692267018647206776406652871455363247766841986121296476084932660578228575961884746246848420416767495476117737556693284784489234442573268626577414319724064220616872851363229813356975288336497261563348629298939567485395862059416676639696470042525277980220665502826721489977096523001713642714763914848647511319760153127197064311567172950478130442929446927464709456077235932029709943263575506147523447752530302724334319036627372318243862246236227708005267793312673471543051378468309839646361087246794777647872290117581349310351077867713899329265654767459866047347763696367847357915875517160232007318814744177363847230338052997126983702535668072839478166857072582473738183930978784638649681468906237070269606351493188519703217219847299493033013652871224041337848792994307036546168639174080385232296005259876868726317332856355098823815421096657739911255614099432040499519704874272089499705882269146699061925036055122601072655795053403047075128101338435541554075455768340288622797261746050707100462615264711851902954994945492644531232986892054037696946341449876482136245688532319861360006341405173859703593330292885535791683641190632796666587258995662332080770077030317526012374342235225766514017230041334155319955488970217869384280897252834846948149805116287141030781193508641538556734503171806972973815633289321760323478264943660213291928611699870728344277766726536756552164783486715651247343557613709459453568012072823836897503026203538290741702578027899135483012669591039066097280527605967496899003139713783686839647928944707730687553251267778201359825839793118166235742319528115646689458798873898445473053752862695011952103937098497279807693023072255895258372096182689294120590005226137301137824133324218049388127378612178269234733575424404423405716984419069183168410492969203936972706180019859227355890365449880450867448450612333667485059271736013914585602613260616075463941487173145502663934822497170922035022234792395165939538929929890124597140547335498864214740399479673830216127321576589427714372231987061075951311273036612303951134994672685044088477268617338312857002772224619304188300871610607011828035743864669433946896753563706536797527906796731797070011117930204402467026349126396508804082262175341605645141004104227944615902579494779496629881374952218694790865670450641974122494728424531479212800305956105049986575917494692216617791294336018514911199750270264618905331796744287907129317247338336539517185711496800071623643744024817208798064120889088265197309226380412150518049876296645352669342783658628115737119840089838557132644088710981670172211542381746307060502578292185536865819926098312662392392754892056594630546770522852926414287191251660852843813445644413326474446987357956408980807911842632250344365164849315159951556688389198419639061824862478945535008469198055249031680617296600600308435705263828296354399167237044966100010058320618637984221262494370000919726910409605762733099975947518074365067820944532867359923907430067543098654996179690197489805428805602302279780573113043902692874028759152960735191929636639103741788094020677817781203273658648393732432206131070131217163538994495512271974419961322202126961640397514032545483220943866819426254680489237063825348875932878759245039015958890375622287487782293808195553478841313410342971664889072057374046452878141074964158245719111109877142445620558971580240147929212364660700227489903426644222773462259923794227770599593098278332781191864522854960723398810096138279532232627597378330910581779323615356079323727168919330597684081788242482534693468692349578455871851800520648797208551022916074249519653072898705078268168569553177006563724325674358520376602117004030634945345324717252358929634335098097250566706112552045293546834483742848887936907117219686804437536595574737444827054992864729173036562012280270040759099023494320962869307032066049857981880723601931848641582653227269232782405899467232746376512102445866095781075984308862371893962232635595280868446045944246394915561171342304459110693953438160711163378075826316166726757765530224338918488912236795500495455096449759092258471181196006053648750414795199218146072805069944072108946162727810660564108526555145511961255810995843902647030158683178519314333233817115082809071814506859360354185807660782645409311977264842775004278553445008607102925862932574982523692608628281902278271453043329962692722979071256787523735916372119155207411973077346418480417007277198046948045775396349919027216889434664818137611108165080701278250454899467054058493557258967432822298561520126918149934451274406753145043190523111027739514419384685690490982725794503861413904453907625716492091756433174879740765893092209569285935506025636448941946459084990540476016187038036183243706303882634265114959589797103056441255432258401971759282901248603396703427907681147884446015224067747350803169494338935062668661143952586762661754661316962460560328199219949622539617327223715277732507551685477244847176922290033695021049175370144667058172599567830289190768537970198235665180644058705500934514024765423314902558579808102928311300038935366011794034252789548564411415470868417293934441479575831933658703659878186824562262728512940711193412756435497191545438206543568274425261799208935889894117238188966480320891783367590968171786116461908619228968588635914521550922205115154853415504993492923568205366620129634089249492253737914474153326832910989170454256626219179321602505033471846331129152001714834305261015091738942379350711228503749594870167111269996562194381486707189789436163689134524214279976122014800415537796289659369733387026238110446871995201514076585177525375893995556457939355912433508651391758840914464148633969096922459631940561218595168886747921721316105502950973342904022585574343479351687924821519929514823917022606109173219355628183278652378979031948696348656300772501117951732535025213847807026867542592320376622672224444094521756742998976464764172958793255480953443606601232561278837517202407158914464936441324143714874185868636756151888638765696533715026025861476608912773571625351376267385458569685952749674612195238701640555298350825854421516976245279913455237896374805357080567660430018617717763590078027690598752689838462071072229752860764620615673672452680585368148820390486100198617022014275952804218010892084279346880577676726424486929446639236527380097200230359279403363884977264731910254539712459958672290157966770954702850589232675817887058987013288490601557583624117788006508410858922980577442619471928348043563727758250529198448396105035441012116487473983648268600101680204023422023796591088705640493833150722256811338836229827569584642280815148376460416260828810276365871379231692389751643480342433099263836048231270464800224670495157655159307006389137213949308812251665317069281919619656454226708403474107776622632767945810015728568151958431558968192186990876774679126055881233817732349822328378742986468454312530513125558563272221237628817623225729340774782605615295946315756313211642931890639854840912396444847099066284620919393365575712807837084245733034641247815374212081844100102553561269121699997446177498717317209322804052832973875074773259446827818320949738153041390630721667546334291835692516199796377534702742325595945288998491772957595121642222938341694138398467392817009047331870613945531873160585506113900000062459989480503221177195291021057263198417179483892517690821494972674390091598741339513239994846668764468307030771578214994867067694872470010300655538164715437194496191954258442367574797253677350698132722989411677074204566578369004697162267909137438288279616582661384477346905748930449509880441210405587440968787197481259154065802619786818887505596887650351653509461581367772846179363127675402186286118125137429910900440732663744385606549361725377750737682088761530343950317077386733351550256229806285914211493971194777850645862078446963871094643281642059079776360099023863683679055789702639055259291145809617537911352121343049619064069484976831244375611412799836092866509137255330581300143662254491578514768380982557944182907354042361697649671942951452962390063992521982343421133068050378138157341610288910301301748927207273891803629980550663878659654701954422299571969006191329432130178827520032083060262680191230313633889313976561880061643919920088225685859170943158733561815611505176333529289947587074120112504920880577448761421707928697112244301903069325043226620216235835243191635603491811460009205170918520845479649921210206437599411057446803443543764143602373603690713142232994215494548003037980723028738003954521071447728547931360455797108010380811658345008955632494939582057092504534379676323739102108783185252660485496430966809020840172206819113667759306005712122381277649238473691986358155131657218013780010747430735734811217498370582623781884285308402024939169218201636991069772774248069132068501897321885626999332028346655979482816726740548547730532497740880898290103288756071777551633162135279288942571035701516318654500645569605448479401216625010923715877953269025962640466312118005424002925562658875977162287361770832706197675222780789022044577386344041746649406647249725908089803136128809528857365228794668578072437823610999195173039470306638895700490819621096436167917386829554821399368347994273548405675717303250369710096394422524931775101033717404078004380531526816808527781938228369338628469445390121366591102923941676813798811823919164499103974363943272623227521296541000001844408947776576294953992754910607386732442860817537382609319480763877432712675706366943484293812895002808796555892644282536218797162406043454387693950652686915523388307160203151004247317877842765659771226240949655299086314828208999706156579080870072975462780498451421538192854525242570894668853444174716593925445054996125829944391040228379445172809211277071579609006924267222086373015556468674945920717532852713428576168913501001911590591908877328399029298248829207585559775771615964210662447152798283248196351027084420474318790159365336969792405925912574462109655513753879730987669289164257287936114141108937509760721277658638497120826383932910127786366456779556370564993434489738977753124679045630192914831818186069614235307892428078385530673187545370477658608348684566795580049403840596075913794747671737192882541566015940299461505084292823858399957368654536415091648991545142541082937660710013807040498274214269033635955183560703614467244442525020595049997420516494953478703339076434660469108676539691474381558285129657444938664037056174844619141090098392407624822160087302447644313040846831533291533529403833201085342776733476931070111159640903279490710200742621337027623848851077218643234647015474442892503432229896468895351879618494021004257799048549314388667960801506799574949206998358964342895177050428370593226124668156656669759396980211967856863587924102477395094558987465869671392207319702479024612706222813971512548974645333163722453237020914058379179151299596146882628609084762506184815267444045062300033195717844562449336817983808865645707200141738324032841340709107561650015874786389023450080823110000753283146765807349543976185519980202214879813898905837122721600274597501121509877026586954720337585343317654856338628271246530898116822613385714707311882235786714737907390590536260275951969952626338809911557733203364721872444714042463362475508553659509293090814655991026524395146739955698583555427142908214777471969492370477611883279072093236927432585473467388761800138965964426293851498017270479319884568202346562926179832602396418922178312028305623436777926156984216774015322932226053123757789386208523634869954196827675465457133546744687378061320346505669308039812362555209750239462259656609466018186438416347136188176595884218041354227765275138360296429019763169854046145605207254130153503861230716917193402694097378545491556891829382958151335886794541471396023387835001630960459883666430109438563829156754714635367120510800099309350229580165707192416674668400075742651551336703546609082704119439837724413995744551634737819545861159507157804052625966041928722647032592891189578448371137292260324256813428911730806463432885905189691924526954242910047128580527669561049533562839703133064921732050938038379476408830801161000584610931614515497979427422646172900984334504164550718760115214235485239395225289787750050575871539755068187045933476734596149822651323656470349018568359461107644023064362674478749487297072941654115256249646221679761221977511096807247257586330222577021674434217070580356435175680449079576326545770621712523876096696733584309651028539736581618435504460181610921523486310666424863576619918030242408960114118001257217411901199917887273250024056546308192476840472709187137604236543770997603096765565709710658588871851325786738603292481779827979769109813217674557960727083242397040023017103871191116514064788108342464216354802371077940928981275190176346452064659776764090279323935970365597535153279109821760732020226276043026506136276905085210455401796110455917782525268984570828668341858199660623248524618727801943195838266321687367038645242102609260895966518404221312387193436228181248374362960010721739424603227231145835462989617059387740808758607401340775540458860522243909445219384287989673477817587889828406750647595705246594499255046148664251763801223104057545857910896257881608550254655757565281412962701937169295684723207201162736362430802559977426486706441497488329069343072410357414084656582820402873385413783836731125663465259381153887707103141926232119558082877511014493413646251638607491632368154979893770029846029099800930754353316459204106166884423078499506538281952338703779364861474688506152137336161446077382629022542864471669162185862690839788125711445609024444605161548532347692419543321177586999435758052136135906156224363675602528235301737410949159843949533421306406004973197660927088326117782510898840934114071605796743278345974590088595264587321747299182294571706411239997675847488782237018564601664623198924655274851247028419868159858726807042980308517578104848663217361818912333391751063037685532673381945580274755820290365757637564550948703129259559196602603592806687754526100233519182741100359530960006880085167333110523976258938037769939029903823815247516643525157585427930639490246303113418094278063639652416488129637351340849051844590821470260560370152508542182192581252886015212263375838532845555281820478960600275366333359526802078041739974796274866624884957065066767724029173053330015316870265964792086681204531541784769701317626247934525516720851586066498155302586161030366185503006711162399728222088186299433945818212350626890990682908669472203214464615157526142128410166862342590012879069075200474211937917545183083288356849104308281307436187147215775614158390931441932957580521471877818663238629085768445618338853394535153666579293738730624621240201093117942363274037910820235003104305781723586263096974526990765428230045459848091161471779706234355043568790179775316927243864709279928796312918768191283022412279061323312993938655661303751937370193572310474578729098800582517035003915675037464601050039699649388281360001570788489243359097082107091766866689329395648002939359915987600370507011000660354455345157065344512590470616980269349111456151383528503410406881956487844008352998473132416795035450324472857309638987011629560645535024740193329954194811809302717519538497837454984878314676734222424314169217905563071976400451541151113721588186459696841510983522702471477806348377111455195898166083727397028047099329903525027565423683202201441703726184961554984742407278012034328509990899084398554383933321621751458731968107809832996312307672521214361440738834310187900139851367183436922168338629800586325630421201068973481427786314108137531202352357092890001565671088729287997848897702006979804549642958488462566736116921901001918193574252650229840770500901570757774970334278322346127356541421654132603380755496298882853161818668656358142887844323459513146960100902484975717525328601897659447810397060269330961845304960445093522182344297327282250571321762147964638100644313737582191741051102579099099131120529011636660696485461683936849990275043453868295773423130681386271280345044399630840188295616448658415557275714478958862111437435877775780158123111668620251380876039315596137003317747297070081120054354444783460005848354982966365969608392964191545284335342482106455912504129203489503036262736731492048365097963605690176752904637949282957413681940325253309581364430883480309613223478201057091280575277545532267668900134968981433000646981791936058864911403106378256463654473928842349504140687212791742470709507442784578819682694357801787607013897786001873238686228103351747818510617075441075567304612791054635183816618132529541358304561144420301273164385398869347404581177261854123594752763349443472848828520782854479636285833186480323774098825016092681994108991894628638300291253843301678252336721213665025358789552053346995867813636387437874462597012940543241305042318954031399059155224663027615707495289102535521352496932068659891203343943685822225026112133616507330465733014877361337182108403121660475490623615126526406126254319429210367108005164369379985604400112412936782297987580466916689746384250157073640788508911993031339033779671804817134128704377602271317794016627713162850983999096776304958993871002741017854978264765437342694144220174713206382799858169354723748471180542744593474245720796530312051924530987508362984807152337810998688237842294368765557491890931273883913262502841604631023052023349789211716952211593602999359598203589827315840525396711501294474520207423735516737108300655614377784307646380702566600639146777184592139053951287706812319705770194470558970849256421047226423476748924140373596091460852955101397672140463297899515543616260409671764543769256512022736223132596871153595900317244920809267071256088179082331035726000704228729244405399048405736644208827023274471987142136629803269722446717618724479851119003078228747434987820810989937759759883749979945453831834795713478924503936863490763475091905461234377789925234860922796973201360830055146199464115997154934583766268492087736469449380010909851910087966193252690648428092536431849688662950213602440214570926850538949272026366996382013666643038045335891561693052044393129875199859469128485055862815193813491940063514925377279951249695129472292635927101495994127990137753913611549489530293290640257235582543596101901678622854586263953645915799412919076432822735050529092717365801022747483290628827509175434780215386335981627914106039071353051563543625628715185332488912516916780711024990169746126138612578999871702134945821481629175482689853135392593134389970416237190868429834094209381245706236607705480038935333287365898431952072764836014196863115188899834374678507560277745620139654317834846701838729013396373733610462516758333567940806528529853881353865076924528537929045450976803014798944895303548070113372369432967312498343884084014497158525929009258605153402158457637878374451218650550669262573010309525639774375306390491634017693458631575398450226500268293613510094966338122540538200166628882196754362416155047286865196714822542075938255667238684444271039677020289131548237746462729390423364819750974278422675631926192628169498149450387049525378585758792274758280761938841603138661426889338829479024167466907257582143892403334906923519855641279648938416388670937715857448270676797779481471693884136675461252356118912623133399059178875235624218575647756606369745949522801441110895982291765795647059584563185039150611307131085901149079408283491438780272188702187903529156839592643342627063869776997214933035553323558801404649217318563284374352330994410361510944264027571899503062421475155811328678654587607337241006358074724967814079493940743923175607685846188887111891679679915734113603362365130469792980218474150033713465221894776506929294347660165426418150440439274980076827921915018239178370290466020787157115806771019773707565166251562731768811734173540811024438413867140484267328788828714439841435624546761814722413120131520402715263444841947584300196134940905709806550521561384941832427453480086929900011131383371855972725242663604512946033233186873543238581613586684393663353124184666357127769767580458899372308815359156404447687121413395498667999099599444054438815405623625432175788557458940249420721153039013915664033034212327093247251103931650369107085128800808801209544840875385953930113097255022763885381361857751678259881054779941080045244969920693001915305094868396975614041400038144263271031622913902821544024118403584204193520316483749404397914890956259122157293725837900341921524021117750036296523315399664947552445243020230867430216071126047753332676257752262960563379494856611687747808312537647084726963471968400760869420637780845531511730184346865798828068325594025319878791755882849948692739388352092344544518971162581345359948324149431182765029606759430071490389989711607922674744020592478584749286620377285290743312593483246708784069081345919212591458571646481634506519337646810761616224476889562862350963873800733583469764559368410001811792106576868909149241502317835817728728110823908546529931303389160552570342601241316367185191828995404446051186366726273177425392139006110487310734786747187553412337849049925685461390625317140511761268041402395638816987502244887361350563541987889071000558442633838863722350497830433938638479578272638939322346477012422275022197256718350048051586352044793746819011744516126082700494513907659703177182769194378501068043842074229173598198265310701552445990354163108394960667452885440258094941271456392640973263593667986969751560137529921900357936496581156794659071472042532076221796438809884893695428312878102194728670103793342089256443703043311103816640154255744462312511309997117589257809538076393326492593525331178808467616037308187724060587479227815440056336444154660285066916039142688044183468523561782928328303111940015725688253297787043920121693799252550993959515163510918430650892741059950415298259855673469118400951315859176170493436559999091840757524323863421685857641155118909271055058888107379487477420274346938195981955078372214746829828219403220554379110440311924503075906742774205084999318780917392834226170367196736288572053227628935769846497577105370894868730614421027686196001488449720595076342307098391744042307275203733233124202534761305419940680428691805559456961635982210548147126269091878403505614750855442425920627603276194529409981026912898199676701187074195696459370917068171332043375939459587303527081475943009364888571511311463630104614747275068113812409989889292345001195231267040596294016702078253009133687546423498701071219382488640400106035743146483965524218807039831423410848004166928926607010394174012809502150285675763350785372623411252972087800674169900783135542319598001421592495337521609969743994715401739181731458165153847844717591880981867085361428131536309012736576982140344021521005373980479555732580202246007371508539797008659639145146634522789867596209755352448246960679582499630223404888837382747790502596943462891644529248973318012590318565523561136762008017385620517476802122816062022494427904969087110523218516320791986029487244612499299072791471103819631205551820475555061292188284302729132839791464609367069886285259657760316175044749763614584860441003222966097823432702512838299106274710332386512583855489296217170607568476880203039589267114979451996222497319955047442053756388782192822884968771201321374707202755341693776467717090160095239618746281194515034690844876884006442000212583505260460591677542687604657841282310297009438714876117208159907061382271809311123017728175496394393684487575544891853212236678728027800391989864606112135350176591935828013795919244489177524516083971953066805377899069250638441970472924927639665674448701652702304166745574674847921115864221843475845434130728129793619268432617673163710550115762165277383018584444827672377454308012559384058116570659214483003291526783127221160600647631020137806563456531485059344958682803008538078077867566516905445442916592596302013053857732242165541083421447118815507002212954166066841428407024970147249046337175987143880428750415609215536764608573232495348555694416372293295760683070225402053275761252853094715639111655666432635792070138050772813280170664162439616416597802865601734956713721764151456111650639414603691852233694955429846546963286583895889479574334627087617533062399341643890821678330999284884433216157747981737882102638500848818564210793442415914532455332433501342099722118942184052537532010517133092989262382161518901713624956028881372744692066616579930479284692217443806480996337793611495860905843790397088280402829724092723409516533421122029345970056219106639592563389878606975810151899227955074615365193971858281601721865915297041022810403315995722780532660007178079275652243053402067035823967634084458328550067091899128310693141940852866283822077908135190529525713493121581861284968508434898835201345875381191306270671100103851534033237305547852787003570488186790128893075065066305383458602048599468666050355853512720750733621866320664592419862542371750480601239572840270618900306229586019722495103056940831809903896432856412977744022965880144739155566350658128246688757084635251224475256273447315193125453851302512779927682035827427715751019768999989384387267336829640388004089564371827700299293461075233203099320716176605869855149053253854144208004852243043517307857033889803861599379778656503352433650604482608712944883676925023938691411152714867374184634187360275792610239301741616958475968749963622941618794398267572629293098223923523518856554566015101514688664315055090908449296705219478378255951589107022714033873222760275321851677081562246752514674253567889158464218524495984889064994966117991760941313000321488601141129730673465348639946724544403308127718110738578445893037061316541642757038509833377048633787813727945401232045303832818240717218345311412202705617589395069926546917035440690632563583290035928196387906584370155072785645062804573968166434911268622235526029406959206005084891103751188355628264946437358370299256741782234056295472336885391599895306522219415158418420003308240262186545398403214719667456389116815104674995178490602263202866400262113230925894585616440336114416519227390436358326260119471173126598926343401497513189988273794358858082191657425834760847112621569581072956003448811005785938916175842550813859520467004141789932770591822443738915597647828321052610981801380468945835887974116189572730887564264464084518079815424990848746971927494394530212163065485791347524086301419936116723855734349288624785227596091223040789620310987879266495858965134803611716577666267508265558304886669859108359945973750529247236375720937738853564559421622930784801068663141968291467897831913233094152719825017086842905995145282711652995711122145445627091007147483008475372953563316452394536521568308412242242734706101039053476239216327294917909158068786667161616248846329668578620457609384373588848853723867386653811331047831547655979551310897425165743111920462028007227683387508131924055478059498153042867261209679582886925301860297784757867774997370558970455010469321293198321390704009547185113257878703627879373376525816488529332142074299027061534091713124575827266479747314930756976154262411859387313974461916042187002319569919962109880722160588422766841220237658663410068892658705041831625844380099542577575020742771360405718108705772789525064817184327924289040338875469049901328153820515428614290802658559964212580854750917763806109435184517849895184548456587044732058680853424469647030922206566074041216872625479032985206776947985517838446230736143755582413521249993339723846614541008871652803904065509382342211259168112769479288456591281802492971318116044514256177499538879888359320160148601666527747772548785270225830002277821545773360013364622832862187800049545080182850073487335737844197432069357908886095770022095482601688686098684860861270812771556662859420446222622443305031467587462959842752061854070702083939308527300325371799071441135141617097157399981546729258277313285228575153158027962442967314178567281286024732278290116869593850865268261950733396525265440778688238411665587627182408895825481681187610298081526234824457319538464520787061964871323189057076195816508500955995310664092876939334406365117087800616262291750874185926220667389126317874744687883259738893663966931699036170636787025396546947844414488875177719033389525995594517563315198175777178307680614106428235574946657460199192909411561809652444700724602562292387372856784013271259860789160797143549200624962061336053030858664295369964125674376876517502831357853697957762947023004268386618772746307027050701383975677162239677714281539265827096928396587275831108937874817064079053810567189343245843732752888553305328731118362478649054334744089370250939364605808373839893060285440053566167715784009401676419712065790275560729876463027200076695635245446341863671371999505943850939641563967295048575450510639489452685288620943045469760892231817970301415587286679277334574668297226316152710084789349778528299876247794654286812406320389036503955913996942814234554444656994703596146734301261722025910445625409493991052222007168930754022334134449735831239644751651965792659531688747514053310495198646524878183487762778073553242222964643766898049084875113408175183939089305420090871873619466371457057480670449275674028718877975140677145508267423418017809649611914806333789901777625684619017543267121366142917466150251995623915720346233957318230351958462396567584431076607137328124855331234842080276403185931869444468607154309348228381213917845751091013458107349374961903029498866174900554589248748741409678421209136951743601405866871521562908074494735152821484821148028209741254322635277630838702009884092543316405755367883389851343724468099492405900992779332344482539360468406268455656926147150217428426562753732131103851249366039232844260732022359340831397535600115786108468643132245053601212216134718446151905898291906435087074594293730642620117387211620569642981914381850221418771778712445670811611776530144043648188133620299686020147241990627531286746028668776535791350009044497199602175109584729061905584710607482605743287651687832483505748226181346107304228228664740727699085133561097483157587086171896880513275501961073247886393130026215741230677935582516617142159031518263079293246005998893997427532775893642027047468662477903687574565450523362175894331511840057301274067563217200299739303566880041885462481033401015721383859800208793148055706601955104557688969325030311063855478639507548262773690393377276693724230803974207524646679154372344047476938747342964380621413415699861992891433082089194020031216161590123017755858334601557241906546862181684460613178204183056351473509363160569189998183259846309842440055751738210686623699366697461678236156975096215982134573192462805243156167538952743077861037868526477866870229589364788149938099442260042160001746774514654439846764410787505744839042147635730209529697488465894952226298296629636900951058149397964575092649579075629110791661518011615707215778814084652267005535331155267444376991616397916675923165287589478492453742134490277751190559025383513082946120190521310074491462319387568595533179378949022309979781030327451918671926490425646475275794278315699510934308207005982586949491322083964928117981015433292562520054988927145906034470858228144637030310383805469495468086740700686995864806949093399828608765787666033101384505130925865343668030363907812933179892113325341072404712303726858178789866819257203024735535060760384204260022011704190296580236136782146809380800793402524266883510673214410334488973033065295595098120357194656775249802641476217966424424930033192641670861390016677326600434070017619039381565767370556617105218617970974231291988221750005172583669391473290472152794999107871587256384541179640898794454292947651870992209818527763620603146433761814698977802445673726098350034011660432264461244882327203262473084148057231653265002627589548992584732764188794453437014787968471427181814554561692240365815054059598014615065094792653745954380731873925597110727993597941657692422680716552089555895415764845434807774255027216319021166813437359556913392466880071113060722675778640406006371509611393263034620792296204454577324712434501789670023536941267783010035800547801532567972839240335293567923428671179861552898227156050544895248214316504418908669377206916499302342037803289999551714707032294237054739360874853356240962162768467881968411706026618759331093677901115669838585034238464642388466264713530520248950292156868690759157364178871652752155658479468471570265645815924063577140332045219770095010923805501362365173702364270922929571086683861970072370940862506026436726011590035025697262626322325780168692381415622551540228502202551779089454207945959659483270615715765482392476762979330203805370423102208838166620456539431317664169876953948433178818252650649889744433634008374656678494976222755637733218980382718816956021551575841347370348570560937075290428330693350386083525840622627253027359321997687870824613118987984067751620033029690763336679801741928476217946463522270145548228859502055733966872761638509471860202350220643752277327623350348906616688239393439038752387514080470378372645425239749923204420305322262639779467856964044746714216984618535549052415618943249698558953067715849525329066933651049033222502342121395906178570541441334188279467633526336433789225862215054806522078818082184556739223368045533326713909391143409476223254300870232865002578231794848762765245515853588366688482197386576723391241601923671832955829952380381989724852670635419237626743370143045393120116519621660039247280706397413519834039646225035209926709926670712576854698365742726682641192793688457127261535677421074271767761948823625595438915525705757517366924560319149362442132037975178465028570973169085353829687236902555317401232896027272513348089361467206755029508571597977139656159198944122787133428304984241257136878792932995811587955119851865003381378616654953199488985226131918196886771355787167783419970409276597276994191380581704194618240117077318869802642512402527196648200110081696844438393014821810406240559339846892381329767547351113333672087736464781063515991089867961808591735819299730230451633481727284593433700497666954613717551580880108776970683719980839129444331860956417304771055093021279929983428111668188629232192947704436538883880321852136230199742422515691900570130924573444288608944081571897974656786237805795555082084980378080128456747852006012949801647651900115527933228179667775921386007788133335714433281573716290234002620957755561763778517319212125407718252772293524988924200679143768586498402960532073597517661486490643225122184533725044198745001137420705264660417792940682584752689611543731542282577409165283974172934697553512276602114149473528510269113227858938227534743969078202797594407639021465923237873293174123351580110986431054987415981159597775177337002674305631151501398277343887259568223601192586791201164518103805481562436634838099572061837900382649882464855641294030650701054205781418994777284128149778083940638663013306926408829342366581218174344232427004604967991362867019313256434029774129533760939350430905229958746210149494384908839189218968093709753049603229346346105936683110150790826917921804352724865773331486273236736639004833875496511514074601154452112859540421763410856869925272783726826695695655079506378043842759452468409590433760536140004515032610951254782634538655717720286680117790716963774975948902692028430734295829096763311090074238639234656940835767904839501590620702836367297291508229867600305662575284839766800350261310557430538152042490855029719341848662842882363153828270525340909705701055633861088037640325214625836969852384468257566681044539191208990567935111323478880092631186100313643443826799093591096488756285560557692926153745614014064686783281095732745116118109129303187858980035250865515053291079405240326941438023138660129484895303926737901570039781579898251306896099428575737043939490871711915874987786281436040408508522391162038152220336957362266106497095299063323473884189047818230628167378451954203380526423807538302897663473122072042217728850894655926959773842074596552797608184056297471258280678844587820513437440128563967045506446776533631900149774431971401857535583187400903919692008483289535395014420318034730246009484718112502744529198290954451786473879379125512895217084866810260216327955765112591993018552543189042242113860287425004078805057144744636458362602033992840374842584618511972922162911109817311194166206995555333353274846663775821189509979276165229749312167529620506243888250482312998035728788582964941258197527977406828856893903676222896392351041637459650983195942648014528302816488034788863404144467594741510631385790119045592485151193563001714143647741096143475253786687362458222602451364404376970031885847710943322599829248723174579507792005629567750855008510222401303148198533062765247108010218533863617367588224839059976617413303159619402283413733314386596770940300919177243795732444231194737106705272685455123033182512206443256319521468059172318651016139492261472583771208025554416888285721542101470062312786837082832573778073581688892786183505492853928250512114482720085926595562540729056107007173858169649384041659637206532765867055344831979069776357188542899479866782325369327879010543608793452252163612078681442204920134798562580759138829619625394318436885407966998067534386387408641954463266981085972690607819709126911522400862336076458681892850102894171797274671195652686036585701832856382437731132256118606495505768017075022342237674041436406186854988609688060749469686250480231345859482293678461288564384910724667555605639890144825693275142717931616877583843193748477783119344663914148664374639922239486652641606334225172355710823329422262852995600660161430958406479178549048438682796006050006225295131854994385719002281476701038224002481805957595007397545733586223678429888307602321712110370250326255962065548427330472824457272234354497780614268129653536619233041652149588478282602601677542068085813048406513681336826150381062002527997040867228744887456306057184544793299280530700478555699528334311350555685745745030935494009018722944440066661436741691668406603390084294601819012921093064903529787690176757278469942998032660303948438791840982517313360424456407342249936857110745006824968569738128022997608332015314904195409046662861957742701436337659686588049054580501243870406486547607736394169203320299920635120608691140320781190841877963157657392218680532245187404288625906377623179827068353415929421259090128559356936530737710992920686213660827283033836305328870771543963985689641913888543741386766598496415505180487451720811785884760031967021916852180802397422881201426780185347184209482115715707093647867965450199865550011326364975904376066875328085176144093426293889861195290653334002360168424306431974604110147777194460727362813842777873850195610296945393922137229451232288869406660236171475004048749360321160470947879366659458386096131658292174299374458646342258759221744530658028642423588286725182696640730312341447298794889732259503381835979740493804984355757939093356151818559746119811580287047914123399735242780653174915215080377683146272124286737313764490777967947613895891563049137085147477860901783544665768875515655420826495693405268108228256196663508864548214392262766049595291213022655552987820615374067990194151098215195301460228725447812667536384320322977338593810451450292008383154639106103630254504173819093219954432306681095684604562146459997801202831150199336158170947143470081427089509281801660968914918528570820112648106304204398471120091859697637752944701462184221017719502398353667626596555068603542030517680335405291737276835734828720588845801700759049446513856609223436957152030754307900271215831711169730970251654770413497065120306853710155520085758223503964157182842519323572068757352911867146712733892033568054459689776911946432450486231711462453163563636289808517299388696085864147372198797247694221815016426960504936375407499612385612007585073854951453458303519747704051722756358186639041166549844904853105218736969236956570413392808601251244420517651724388898612839752994912561461041872351958556543874472712896945415412642747267782742424683070858414767727662603496905076270964802843171473902829932051074962884338983099017462441589062997847294556079238074066325162352101124739679324023798504314537796866518636343664389435092191661235942076686793741641051364481008878549518707288659394461407831012978416024660649473435833095489377130489912082047396160923376490115175927651823860200590235210165651670695700800187261849788949568625896499048165318190090577450177387699393256310295457543167733756568867567093069236754639207290435618487405673540375305513607605829658669639616599681318787641098951723660041568745946345978116449749003094715747535965466633966430665817489577623242670106564746585385706570151875932274575730125899247106369196897898793205792538968330130491138569722500078127292761860463953574181415385825792306605860181685757949550263066851564420522353435675020255853486382755623084566005630170980872067832038502643029496015105776034895084006279972523894600032546825363659402003061298553571736276560665011882770001471924170291230367575206881364770818511106507379139941795890336558890500684779992466479657439404289504790788082087379725436956478191679102273180211104967950135258513682621868993925642271174282063286726286611029321704365858890427561682844399093709687687241942569317758503416165702827087413577351590253183967320082647188152232257222095946077572497425846483253949851688412133921672351149288265107518338055888068673888538343974608796751475190170690400174704380799703993533218979992013510329505599750110100591515503430842198124837844951686287706361850878550899956116184765085270123819557457686265735826756921452282201077524253307075794571054866253337724793881588635424608327958862517359348587502961295401716723295581410164108259051014359922781895048952085411101155916173978893571580779142496920567005129171202021232384750761937999663878456902232021170187122263723172507669109099734782782032104585936139688922626943029602522321924914496901835127573863016305678784530161223484205244446298667591274453631661285379268591439697140093896839332230131205166603444519543781585489174336730594451580866038899659790700361600000647508234625865641920318280575505721167027470961247499215433564974578029508744726671562269962739253356124373244322803505181772843327364134299912719755743381812138442639060210605047468335892413828271091210419919372691973138977420071533653988296450979941128215004958618009622329701461615668092698997862893974537104741968101397938893581343771569515685918732024134114621123461120673892951022033376460633848775145524020196932698298308597360514564451576005618988712897498047207022123236108072234963458891868512225271197167231842497864675654201314955643659965518568055242987866514086867503346223430503836972304822431356048170505014475779411207129774222541975148216181068747990700361293871442863251912512900622476033632411796437101326986765204408546536253051927162758812958585117737737060970271514633971033140945095458339965660206481039599549397010300568465940011171261046380409375091215150693570041890884068124292530869797596867269044416640242220564100817622742246147045871882035432819308313212750871000623189992274520211923925765082823294942485510424626381806368176594434578472187898893090106557725537669528431304429808114937071414714619261424941810128056655015288340167369549007638416833295128955273543016343999515587504627462833531366606841709837174425428214397275142059190965973072127431182828894785711970524295221672289073556449288173196007859364332839184632592630337105483712988863932238984614093438327102409531167466095724261566838128431354895212757604085048604304190981264012446420332683537211617775712277184464789092273055287368722497422707254708248213879509060033663293872773599142563823934313265713548046215583731704800381244932263406152976426645609440382672104550998728396738798139583848449007042621827208979347177456250658568903265887697076559304728714235416072678683584676376905338961915575000524084321791196514907812340103605883799498263157284938092801332459013189280122537524914862704704784505567696761678417578146637439780489555313472270336655503917095039157699861123136097742793226708355646627178408818264003410552384582275395891007784540696234544678760299083707077020330670871096634916331182715823283159941916890950057757985506997135441016485755089634130400903266338408210688301073911999692587925934675113326228028318966045484210203018829952513133176348403843708869539343419220157176346890304516628998876379752667610065140487334927201175976144162850002122836353425827047393171346689517315076581465787262602883138727467657561522618499179579412550447323001700934934924862980651025103145454743738871195712841792826258110447452366396347117056534942773606128348484748534504755144891047950514032896112293491338096929151564659150585590079236483389986393032555260026593298631109745948341200020750788649740906251116343031681932397845087343511915277018550003581744300720895293612164199859299366686639305349169037557744877698980750117181622296695624598450172914458944452650104910535429866235502413205463212619705779326653592942872539722044822518250261351656088094476382524182678844612915543607086621803327689177098335356150418280929119054916560331189423657959255536957665552569844999991015326425250664301695305900744506990816796506528442356190196132656128457452477048635811803513293617644343695269852297114063605679665986665875120668789924593800097649222542074729430650457478900350429783506305785108309142674827621239765448756651277629057222548286824829112644516780843356238250276093601509325528599434780224940387819646354544737618593265285453430915888018586884290185520398377311039321462068321823085700063075073141839712222926316691040038869916845065472386873005088806491910583903559393642286998647102438119860532484318997009944238355535229692665640682774577251141856796963740419022637008896775533994311840611636943889670550156223205776005830348114629754242762412406882005063131618786317617802442722636975585180287625617879801040054027814745571268091616866950192348918255144183197796806421969977121932225509849208501813504162993479092061267564636112243403282241688539986573061428620869091797329573208184559360904212789422539747210472634594781158024305347423213942459948253563664543296587492120362227158716408170063813619646122427915318085780800544486358791866118927165774705648968013929550583883915473502629979176324743796931825900456271397425184326374545724284483295717956947569238084687230765113813867983051544265506859936371249063726234542970777508784821428920831219014958359240821915833498503043704636203756845715092409927536840863573212923043166559554638962869219321013899968106107588411351236923129457544878244643537163655895002627986783069199140260315727990208188090746288858743507446964647934121664573597958803199416674820336340620863757480427004102340819427173089621346886559980362347082360714834328918860045789359310270728336751381534087173326305893807751173984197982425760292166723110882703377675039539238936773583874975052299861301426630064229247273706155906742129818367508476987241269346307281105106403185427729799860417188524298182798771121705991226902009269217987562208368924228637809612723953019788785174972440801174568014795192317856920109847153074756284060463622587089408010511233910290219329077132635257864727205009773241908366084840319907815755817783711513223823287394001292116145532005542049420013990028412528880930425255977019405664264732361354742258587374823141041820034039804277838174371599966148647472735107782710204819652667645520861770253055854072038767374147107568766747646768868121153676668991032262841303625666075456642879843091605536740164697647917111868865167171259713569124419758179819168875537848890757254611273284306211238367935617840695015590801731770306857331833496235522345469729065852798911344769883266864003631066265590898802888708244096344614985055635073489017330093449249295923764703898098432963053656475928958366968266784457405527760674297864635025771707609716853713984571050555655288815118358901429514060746361125084208117617743834337682330623868066918245566410651668684447254042056751451388859049418155343850770686876209819881299715496335174149701177113652709949106220978191797602674254327648022023720182005816699528207247735815537046621192963482304307915353368024162813201825871968831369655893792467732082583704764548871734447523289034605999840164860582782511398506201291563343629139890520021838982113470598821827761121787658046590251119996152791707357475358507043271783400459346115227900402390670027653628209530296899505979156339660563510790401834436065915996888254063413604830159677867747308802294263692726241854245459034235209715637335765063424690393111213116586162475209266175827846133209831818970366382866802778908681195126995697887268197388034575114484408723225474324960803422714345183090247675260626665587067281094069510367810979826829090042639561571855909567245478556509356765974844508530031314602356734475351828733954713520833937597334356031636596969682572177334621660153662319675679180447635160725778923748406379337519295899067452960269597159672751408105195278125456419923601765570028187345163448219541021967190532378597476038135194052350742507649494203022601014497173986379741673640193041753399539721817064687039306086331766237030496669206863711772590048142583686903454125390422387855259498207228636026661345362284545070984078281234044856043978189682236816818306612076308857009688890513010582198341080300753756496091959959202385523860654980589466480979297864186681008040778846583820799770973199260117949785942121701414308056923311348242653100510497162518302193514501028305034369762110704624190828863213341465703161149785266265028488247202483413383383637048241999392024765376110955627597847173548166574315263842371911755862902812538948463564571557658416741089907269567319852009930011070610204937511075513296499891025782144993545459491891217587686274473346426748735431767811897248983577535499742100387311762497737638287998234886497732190649379019941851445516762719726848903621369099401027602267279287469947379172671415453168993439903949206942244829235838182528925120231858940555287832907700062005504529209295342963685785035391037664635234894464660118803899947092170873857113795587582123456704880816696001901880233748035107345378502663934443285188598948560441967731792443902825137423889555683189526167108081765804525148407591158789804336551352195931324279466104207595381961645338839296659607518066576691019210410917299675571505328808343293695990059570489046395958578892461148395838002535296621585281381043609808685750162518537176312418804951417628962882397814340283188854535822852122432537975711518844849030173787337246593589913304511600903909169527977667935660570389611932029820764824472083392102186248061733859248032460404285196933172174362092299527284864905864443910988307650036848133067210287257244303489470666207387846761142233122049563467199796296615213016131734685019624724530030389286063099271887002680972464432131966482576195824042099861731981345115822066926595881572386623811096090052630378421941392769732252374306012319901546064918437834770957865183865554962931373108138552315307042913188391226890013820754542249057197506009009438467970091986869479955977502600273466675889481385454204846607727213056882176618908101891112129925027103039982092973740263724492416789777155123196407746189854476338832696444847010835685915978023537379483448202498725192722453392872254856930671281517913959232629650621136046169985402004773925136790923092440077229333326449943601943013233143107972508080741205988181361746409329088566116746087262582462228594400489025347616023879715547884723054393020725364976575121070726011331592672812498522050291325043847589452424531272300704334137711808984562446836370540596192806419733646135344311353200146486136948640334287517573085863785236718575578886778019833830836037728669913311168233996496235442765355085271778099529207983037426502973192418372692450563347616078013618484869971457202845716736527571048070809780574300304316689871338267505994931351941165250266048382406325487876042969862389448508105692213102832953672041006678791131440727300978915662575887443175742524945768149195733709241420101978016157961716338358234822261560528306214553906823961216270193332035359310824373412545465263063476175623683308718258186347186584582561030626670053763848438654992747239942810813011266350348171698717835954987118299759692112859703376985982843492670985092236443982231731787230405629103422559253366292045210405027634008658367265005313233266434196978368684128216310480910268837675576085769344945382961987979170737385408293236401255140574286716002698918760841379752334367457279252801506431843359468455946012497979260393293361532154583055424398383463137518480707468177944422847955406553622459682297631782259278324380210767518649610198035785045982315674307599790051365970771480327581885281196190096161231389102755701902139144961340668525025761526046611295191734713836978071050584018674833860698216751120931447084258726195198367426760869649539961016109231094312537755781956736383122951565944952328966054577792568256220889038323017508528971157612438748198228823788575210864614377747047843151488510861072796326689540135050341327211263872765998810164594087650641333664972629162051160388044510354241636331094252103960492215189004797734515795059888081067758569257969354224235798257029452898121342448868899014236754168023579594008711287620883472526025379023735021178005672637975195803045135335885539640673047911373207296737792750301132315693772951454710008287944805438251437909271508491463176545555422827509525689450835766379992449646964579205624443911361782337989572796099333789674059050942560142762454814040630714342531141623181694578840281193962310479128937107639486709245970296022017763793372945773933755493984836968711818095632689856872300581381184409212231499926299793862680975036216003892418486417145266792469481097795811515450295486687703264718300123822087089301833200377054537128526235191095911555622425322795617070251300002236030473070780896676250344685668488101066041018822485461614438545272678798860660179465165664670762118389263626978322972612557013297930123767327454794697026563980920515795633726973862572553517734029585515629380451741668756529290437514269580623601943898106314997930605735077526415022378644896754496387561434515995121885073299389950871367733259383936436542576255311274193173915926221994936519148647850634868354265292949687255628758868877161848708800051849575876415737174855276943945704435938877872112811841415857342060645841274800878978442613856388320661705880466490762071897997734797333785028608653196916874784920592663149907593021549821879899972560443812985913025976939777789559961785626376175440516859414562294484631740121934843541882733252317948327543737862882095059271102261334180659857297227124338599754366759093857765068174595060950707084263875130842108949422139362152705662569975739790286083067855759399728100215476205448253949146209352943211191068756819788924389872312017210982886326312256588979659512936662201145226592750024125665838349962364897063413739559292396905311561736449297920201048470186075736505762513678532133217812259349064640896770986012614558790299728996931151331304221892916954067982884907188750824325947736887408535720732814624426388964443858138457578107167868015245263800690829499426461777364507376683576274061932871492595228266139237019188828248756644748112285959643431729979255681548151448465834083204588999692023559426216059599041605640862389600238874398641239091368427833183201032184654900247501173922488340226416095381892899719664191950230711933201506857813542294023944217334707498267346964432727522283394919229693873806724914807406317390989265536613621255470840166739313309262668510198531932314695002858721281760537017982089885646143839293809075504678911427760293103800140592182952851113299842072625576100411847440251355994263062214016935808080433919204181711366734374793152039968132470522840379340387031542691112919623436060646540356438133012166578952060714674694722202617303294125660869252211130955977516279585917159401692553757287526675775042150959687239244727690225956705669626378077944035448256738976062890564668103755457448141502279036824782740883103822907645987028892454388859765981721259136200371610257187864715878115356315877274983770964572857731322289826996125721499732502488990480493930102862281120754439061125965870631535099990380928333084803167149703679769492449954756566447384389210065889084815400432886518755393321223396292931618287363242879879128812304696965328583316075853992147145614623185841099078893091756510386636729033531312385803384219456077591453590359392999790411785006316859605617826284088137999249426398670196081091421636596065170094453513392940034807053307650247294459711585082691555482611944392646050525211086274721547042322655187870042525554737951278246885672839827092213233068402885002107570154306068847535382966174573661971974088202726563337353944341687632742572842101023542854175446354284374591303834979505977482816585869439946432110303664326943124355958998943198404789147613440582356732973352905859683212271626617598172653295769877383698654716982308728929796551305807573090555170992292282186897933511674805566464702893986574211432807064736640569333265569267854751650775441975002869410979751473734712106550267372402971737612295559074650031252889005303502159161079801423783279304386483695879874067866995654830466524017497840525409585756725955786301618438130138064491449767694896457881486455349387431383872248141732469354605697135166886290473565865026581982676997972528556064613507868272542402751943106177329748292395333979043350953937079392181487338734965944140586631824160382354044442628322482421998981156418356576223005361786985789943182341399500485701178529561360937820529801296751548427700604126082110477208820936775906528630610405496609756030629891899296195720211705289939544856358124495314778374759031547959608691791529723286854968056909202280253682817940582423358928757017822697392154007918710505821332504693482045540785285561617343791202579401577943912195503122008175269668287502332309458953100746903123335647850440807859803747696028312332443704590703268638521135802196043425004586364710572862711560726296446965754401462887937130551203120694508406473389074872559227735726473993169614643381776049374687221144121018073776630286997385812978883095088494745687542326142671170577069790218172474008616563000806036804844600864662818221774378488433807746601912414555671319689172269681606744204591155307322734410807187441008869682967900117662713251701766455369834040007461633711284789359110009576806241987453090228080455466334586835607628176214727653491406358017578850559937899294278958399077504740669901957349130214486289940164968768826142015103522305266263462066575689190062770727077012153842766983955066462833083913536199338658784447763219143426970674361967330744034552781628381259505986829054995444373441841738255553378352059233985409128654784244961656747060668791666341139438832392433205260237424989472226962107115945641292090692106391120592641200608185518852454645899250569390563474522182737428339345538117734285844910055096633265304614899499672658407200407624202547748965232549211959974005499592893893992123905349105817721633277034844421493151420190972093392172594455407349933790187536091617600434107764189055191555167391536275397802829917000628775881029210552790300645984430336351751523078625272284512386709095434034917794167025727286367852357268268662824088065962187010451680386363471790911873235745183257896451484553125147148241956469907154233456905441531997327770517830210847597902218418726685149607934702513258315978429122339979379554418947026167186542675563685436646748878736794375461307926445268660406592637656451954044232190023933050955962455868812637642615022339010332818666325090834915786872475285598315081827848834472980637766393212546693606986533746255301327103235044202306820373078808308459678774347356872524661428588448586936882751766730873024015164283485270843967515491624547680273955853158854034973136197134466287900504381138055322624527782756569041058298055761329492686190449672354924524399166098881042072284327398637539075656254620164968802287528434920335035360890212645876669441141161458584911939217323947721264806807266283679055411117762850376252744287744350915558230856501910763118889314069899963136456768751558688413495322262131881784634860179438713408024183494151014322778592408683037438535891047938345695148065612925262850933852664458392140569686257312291516051487881750780378049592248076264127681772552402322402457427373441433368058127634208882320423138156137385773167361310670033013447342032044795717102553322601279411524414722022484768396096587209060354763082892975266209637675283422440090156889957049375057780570131357974242504844262409471073408660491177838471215345932486724646706664016348928833466165498655618069002187352415662172586138246031184914402986509950226076016634763939407762417033054434990073229816176947394179835223119323090808397648609018394908257063851014443558808263353883400370656529421496315087950893938241354932873860920867889365704064288476278403366236794039177441677356296892970458231106833222428988417849364580354304712027843523779248562473531919905819832797870734131120669056900936603510997404473344798455932496699650921917208941631844211945449989374315478892998205139631045007046032515566753361139550564354244486094465875951129080208597942166755075090609891564085566546173859779364645681455743651749117700703623437475980419664438745623444517447464796215206140683667012220692966753363353518709294601828793219766308106993695735542276560679233798846557630233685544462145666569479612838325394500840884938457657586906231593566488754554368466926165234604336318214719420400683439948577379803397632516940916437591976685789762661876266522121274302180200352377848180835899625563013953540937989903000231731392655671126724427828291964311008183360311247612764731873329150969789262654681241994333752971009504201907487170247258765096236919542888084397762877564928625574303517385691708869149593885282646312085782012528922458657918699262994041279065289039861064275913821371770792077788328645508390847788016524930255925294104509643654641269053474159466370101776166968316029017131756776487661118586241937581249138720132930241913108211998903321065012897106925990584248007059616283027494033764726692015947120182942894367268256276029194627189706682364277840888455575703327414430195469600842604435819276297634862379160018923087735268376630623118402029028585291338998095281024354100479868585408250620568731173282251972868018632044810467859421852006871986204826456655639355724619245109846357565085080403325054297128297107867139944471523026578721997927163023604849545981089793564984102799388151226281846057247791144689476344000602688035758276466102026979297086956454231595294066322291134897667826986787113204166185482893641743044756997955911734121490872433036833588785652066580827919085240653369177256277607781791584707813196360291872869086565197258237843084074550712126530914445716753422189526948319947758572758685304686068681904258504865214706606903114019136665635625030852585982410914568396338677223902444929682268117288111092856393376152445400427886428544139203113707281987269431391163841906108688472686329012595288500591096336067734420992517004126701396766269865707792950605501185167992390576711026649293389374581603947447425964087708270632717711408257587060742553634734248296732427370583870519409393983699647259099180801253977260026533952627682941529335046771027276368093394287023892572620827559890470545999166921513996673610052841756685875355048603803823655923723695387861830314661241026837397358058652441461926202137104941785657686912770589803760865448474735033909087321615675660093768079177129727565566962689314824457750478522476774281825781072052151692670549229620398260072118632544926480903230922096545848715449618558978885624745679636592180706448901991378987985748497307196276959181919864645046549948190478244119555017941087712297205907303835360286868239997748057717819128441578032566592856384057450031091610481913116179397537843872519899095079395780609206527032303531976209022851737164502528265590312151687945501495852061477896485053014074630780824421651941355958712769448294050703644442297679337894473462190490751596326983095244855595217937360808739038861574634649177578876904133655940159586255900636432297332829155271219038668224612429946497715489790068168823620923637076248194105355835821778686777509427243730976464319539615417591482676525476802104349754850128668567314701582971041779544241404020410824100194472834899476936619400220160874297930719540480393465116728409860664266166745770981845298441410211894342831271602544425239838503053747509078018542418730909333950702455226841228752393237409841984185071661113615502398537154776265166780720936490758954709565247486514299793108841572272493540505266303822188751606216119636914172000156633692470433298286096297708916049292583914698790661510537676416315676515198122380555883114363877260106331721497698127125992271143570495195750799063160272052866448717319219398636696043689250200216521629702204939074142344949753619617904638133957033615499302487993956916374774252462785139583203978861173701658980725885863909992359654066584094518807639613272199960789351636125193893078924895774792440500073259325795667188228255770690354662004965928111299627005574036714323482182179953823028210535456568099872071163276644822001919998707041850194752552510960689037809356381180746913155584672022189485476802993746352357528097574021754412922248724185317211979982438131318948624582917580972753839211153047220357696021866196539728947830465066544837017363589711744398605570210770126871855984005873005783823228162311055187948623043179980645186271704169843020800761794444577436381490325069021388112603255451196493440808565015982052790018622209012551523307205202706405761366676377204711177859855256118703691218352413918918938484800662285645573107602807828124349711305336192354698005243137579875273564899820113859761373343090076583132580604328587181869984988168424965128690297196706430811613037568396535198575720182511731642824235509221540641796431631153084194372494108704059156854379363570688433243391556775684528575629776987000071690947668402936441250467778611038164521295385683501239220948357785463554609479519823555121251474840148026805137228270209611549380240752838558680445827941539171269483056632259477315097022333444530754458617579395421892886107014889482452654773540069203656210642323250391237016717080659373567119135343877812520432508277099199877281489641415574923504430489130023001600722129697470012800294303067919176682542275750724453961684080020625170739104473071746017028620035969228541497453300758572291908560321427162336600333239758416807519236911977140705772963778489180528480498813686761169530625693080857242476460090780255401090097483176220558871743583906189702112397383098723175132087534585457453962442805335178908632863293295777178916330305216673378367941484891438429203967968667308986679778901565788434021843269426209566622614452572163521285450314348514183501353777235910558483360353658441203785650212629658454709370644315974438292417400137741495236459970253048645812652254739134352708703775760917500620645833871228185696530182374314809831228763638302474561311026744400482145221308099261975377602711249061999381164763597812665134464121184939835605996665001191161332551936071595793480272809574527827740540734358671563873355098553255667746310744713907213088798703637211144865671778275792744259668433115369858732730014185262232477490473478188264790630123217296679894023262976134849173412400577598817848014903054970065463922508599839489818940874338422639016213534644281948108603994881942175103739206962629108561676370582697470628676683175989431030932108038084580600911735519638639081243801887670946665920020721807921207618359658749084100650861062649128745628081456052596368668096053989528651684863992101676158252886871422475128963161560440623205277169592987436588892658332298494239730601260737968243270334304347417041114561440731858550029845658036064491758819116736958847650313495886397100946621433785493309952258244265399451798367068854230691235481403511837013505674003579849068107627244328035714615878223330434319179562405533090300359984813114865175882194150013362949379730483240693758112958518164377400231648620619594117476019558622244373737838071569055431560041781780366692721453733302044638454037875611522215970091845776757520023105720531771677779752670649336870951346095332449970417298573294694704594197466742026718961518415564905210689183087617452396873271454206333676747226846844601372227807855337644736112298069663849084300945121374947284596913700671286652386719460466512050876535900527800712886533624321208865748740201278223622623698134470300929600122327408819626971171414150389089089816723481695698143122265103619566295121832589252991270634431667479259242614018126794196769103391578824310311645643951723339947051753766874352776583167034120973612062829737080985340545067437312974109910780308174248395438192398860239472017591845809325595307636705924891137048101048648297037370077154821234216290520326725697887203774382198590876380468516970129221687547441545582214549142839234986791474915773579425947999924872003919951153922510630380883951081885027522772530601961789704947629073703849394005996073297610876699835219113146266253900116893373296296201088551612142822672876049421835825311660566343166141633673480782068938126861631355465369179732119926199993421426166076542168082804938906775842354588361963986047422989012644669200786306844533578971681731464411710093566932501327525849187757776990787586618131122330259208668052082061081861585161553094037886064416196812201986142114110907904689387577966446905023526278334191948133284802442881847038220526124875697224866725491965778923990506815053168743624510275239085592918454889437117955632116992458946940655934656195355322111627428554378477608684665881483745064889956945034169736178526277452286845990831152357444612485394908456189858016224284313265866426159596724315943091089997997432495565131898954232426625245468863751821119118210484001613977837691125020977325495784835235825203232565092947952523277559454768038395311686788605280390141906108675868011191413482715238177143245876444973700498190348319581331075373112567250973083668106812489721870360214802683433873271407311403871483764510570171297013884692039052495475267796228453549270600304823624478964952075566858338278084495849106918366710970926011166865947919009547698993042186014302018900026937831045180408192015517355125262866764791101888015366815603180603119873659626845361617098647704876191357033809104587591985958679038038529891240466688682936082161561344070399140597877744570695899716574085006434536626607938283726013992722361458355372053075130502672594829201046581850852237796405580904999693494111199644358123636959269078916989996525563771953759992104830278314102245454690656836315104583272879102308795987857955049855774679189569611302218154011862855547777378123831847272531239251663658101661064486616688390351656651545750492392018262707239385786606218481886846461650471981679872459124535919081041194013347603509911311421714565956670318676598215132645293224404677350795334548519499499807907558218539262296067267339140585625958326777027046634179999100438885920255474211699412487505709993287516649612376987072568027480076191899031204784776566918811894483605198932717343471676105338519351882186306856611442213572472647621592966992463608518456862133256266703181679308477768998674548559474193720057053627895997783825268171789524325850944501015426325004707875071445468955444495663083808377854948243987916277747189066495256118668976246793145700628012991165666004586676338478819743359053075832010462367943873371802490826858457753391616277947625032028681857378876384444775025352448268450830820004848901887333452627327207170615325265937591813425284250277398870788550250113529595276742686293897985052154270719455330340368276055448475741728977467447290967184257066423657272372868199342272578462730826770955500651697749814160203603061632901911082930611578248862615040759385206954859061108931165394070337153078909929529938046700749526466412382252150562154639464446397128965609776311022144261747055239733387350418877461936579599882214669078122106493208552006932694712555625765348136875058017083909310004313999372693817671709052517235589741955276382634460109558972321608200509401193472257246967352369048814645015579341862890561445032238132959505721522722957198730523815612299259277744335632032195325846961053703869234242875942097974584443311713612659200306565095864418618955826239804009048552909578060552941336051268029417329415960715543909309819444593282767783940990782373504176838143783876877287926842668657992283781153102754025965703388922744204836698535544342418384933598006047572529179283428354848487446104542639740717622969244487545808450161785908281674471382587158284424366769947131169863972034610973611982065548674806036162224170391613273524842200222983671760817230874934390384859358798056475281797911687545598920034223922625201382166782219726811315543722094177428332454029600587353864498343380900156867348061655337693152354108203894224828009750058598485817434026212001671887224490622381897914450572024618453451512493188129853669918431233932094749861218827078063001572121063268002410654533054948715840988031350023241147545553510261787739207541898413903543830639621458749250293333770513895776815310575643044921120483650352172032034706708756651039667775425142227229116638029000066326682887851999685962979010532398702979279946523547268748885621001874558991148780907957142377004365023726824852754539328122906761003464039940656904368048812600817482573142104010132664391566068417140451025867305918407202437649869338872488655178443896047581041618904764887039572311709175664168487981264507875085079697841941814675475952644768989743190171771361243647887137892448708321875712392628767018436714505543149777245128070115356747049543275031363420015658728396072492305610981059690979048551234028722828004146306667433853490005769700607408235847899823565928047530050519854304717803763121936076944871354676376002450948180129108956139415649146770649504503094555850356870204510990829492064509031513185745539203653870629724319558660600693509647679684045040303288447117040181537758937185894143309594247457145851278083335241290669917529082569950882808766129966489763681242567057432038215119942047307826677436500939990924772587099095395457597316974014992450166810222017897420879686991638712611433340085604397970070695053785556934193388881781864942087898656262541029462650838294716293052712887235491555909357344865265760877951080525153139688281855969610803955560419599198275713001946236825009693281588916974544762585329666459181552663623037855858366547224200950712648601960089494824221344284206319547777623459187499014516802201750908122910705413139534448161165945032576721844292430542512360350245435321993074577557878953128354414279427601267605302585054632095669755880391677536925666257261490348493335732940116641291397772621379675342779106638511912825748076495077393958364365913507135440658335804102166431976957638040260138028288951802901899244685137310840342643016011380957319356791285520956708526578083676623277268672033649466728427032835942888930987177493782141276174320376826178815357034013146379926746444055874189533628005082280473089369294684240076227695933080325593814618936986348350736987757967657246937118218766349382992826527973824906140360119570130280576818209741513006616340611577305630186483280387942631797807120154383572326834234244891979827310203200976587665481422018462376668865481726806177844487505617068360172118522947834033526656709681970238345761910921905517242425237794457308445857929798173826484817383706283923473210018088229861007833813788500938478752284307347843118789850771547324144254961949690690077397131221104929692787946365132395516184970101788658663777107854167189894329349825665338208655411653672012902895893809532357115550715930207261947379052280133513732199843247769126116494090835040342271626324201560013462465015350762879017131084533197801774287778973431917481543179585449877000297311866437308567546988401088924585590681559492113470262790241840670857419832806737452886788502170497363300862441279716124272325943780077470095467103527346591666280192917756096068477028430165709854764808625832118064554352046595156800397185158112150444889347331007536697311793880758794825746878675803274207532664832054177526851296081191716776274142104175695647727822684457933938653992654499746386443618388528058974674042118571106456785376129543391039478133245950678800832545544723601963985104199523200494534632060741133247066158191261390527873915232258437881581050215795215523280240152272919434465769451361385895026779637074328748641288174323217275222268887436485323237849719726029157811866523160317154485203667456415954173277944032927799582097385864777829501610574097759876034829794849141643336957087358816251890032125942161484456966122411204711730259412540817444869038543607465043417090348091620286935091988206490556213625536349236040577613197631129722054173085603095955265408894320391149239759466624142492669603679766163765342046817237327994308458718819913948771891201645609474440571601134535380982308159270404422053747018050524559559759269547779121096753841005294688861531623396861519272833716029837064519870322769321983771936786686061380346905951334024167631553462089420974966374185398362115299243787031135371541578625602443484022209368043205655733605744184508439501094185860962500937345774788831595539483292839570534038920674695378855225565425442516473858243652720375603736015068106089304654726223264932432039590685671332297667831499109920091462928623417847736527621202292890129165752044069438331796709288618687017974199800198809447982930099600418339064628364978190830978278469033382245971305048110018269987921892033110261429237765126422104773947363812704773931941571582875415621422237187300089688589106278145150558162841726271233144996408713802567509361351375243858439280694203068150132168767461718256832500343103954306300416796276941845570952181179170120685917109876817082215481565022619917849973966027952263515567263929430139957579726885400861947118711909530860495631268522109911621185413946875829957397087891544518607730436503801857011433278397595195949426797741441655874411522334266642572259637738485473534944582952169890793474900415986285009999734109023507639788728979891132331162278232122722804824826501031714109912525554072761178905582521283952815106264274112712051150158894259680013750099919651834260522745385264592449055152992441705058310520521453080706816459331067059977128420122685669704417765825641651221709682829344002783689403787561123110616919979097450358103368029282210118062322872623839324682179321238252541488832183176752304770394587554421219615620330890089329038118888802505096954719867079264721285323930145334365303260524429793162856134724656460975632762224545176782546902832125451988974374583694967554238186839182350126954162892455550570873625784695251958012368571887709992617951440533663075675345640167126296560519419815940453887860969135327197455629627565765800619226056149342253523086195875963376763201009630537586580340338121015831616784703199879144170440355893681608323053685494056112347623391646306367545106297384613194386982522953012811993262244384028219671491808980393758088016224681190760494309282142852697776391698360173533532885594227612833489882852334398176021610322877935111807984163859644033469190099760917807055904678102272259752944957265377550697214821131408313487278458555970283236247763548139274436965083377242598704382503075298919136743833206761699068872951422120590414001171251354375840073225164801581627284956905792923511352821773215734453970089982595820476517200802389420283693269715311626793050302046454883927024819331961037825887686089958662057058880814556424023845151761096380346832957999121517113447612082064887824755220317257132242766127180966897352673606097955602507330024001725155451478847144806341488728830729648805365172368190711788137185032992571443033738568177131741454421474704626793360970871593545748870280753682171198522484357910846802829505083030589502313228198576588439496039058170229276638604087178000097309794338737223855935513138413774647708350501487662582817334419416590431970643367361114319832900720030895548821847397232435056695055991124001912870765305992726148369974821390743672247714816597229424735146444637326534735083919397281487220620038471236981562353476874487155915671652008459815834741021914608780013880858210509220132389798154629038853524865427900020257381403509913074359698431615782042806158772976691114209485536094835365569537366755516460197954342490054851413737028004716763624772848769740449035806449594231413921331403848188218732720676098156936374040156816745201278226237988659744745554454986659280602761759543650669363999364729518221573765850683285324670742880053495615647558357743738141902361840165765196223042338572518238682274820258442982316078459531890333511212622012280101687304503845342813655061275142800273279303083991962852510991113744688199675900927605626944456859175658764885746288769390390760801297438881912447159274129297150764638035614376542263080122620723597227430260062279194029431659427971415088065479760449289619229847542414954108583343916337188320466808438723030441298347716562321277272111165489312093120830483631789467081926473570225601603540073462409126433515871999762119383747184741138150471919283020800545369463357775756952104447646164161067547372043815210540892498192213070042861833026163029857554574930273388652516411769045578585406790972291730925438260655457901183217208712979757313557951346909725831742934330237993623564259035344781726557792801187580933728297979944885893653270213989652763968636751149275434120619819898323298075580232893710567764222675621570822699736403165787834675081581876930283408636205220953494971123782683400888633704808632075387744806529240138993729379068090589195444201293525945624632945683708762856204284857152951649474949754571719158663346609342402356671335289260799492426962867312677288513999813638276567064292974909236555084987120044911007834371956762592780336573460707290159458947927794836324289245583845546514097491758500498560099675571744974184141717920499362231529928835973670847776981794689534358500832270570142192397066144392666490845572263488341526729156907718748121202193409027723391701940148174106368736737264968386027151420551799518461452988573509023316500898219271891190382439904812164918769823718809963773815492232523285435841957542136834036000287536028608057714731556796365979670262611391388760170598165119718554337592158272436743532335903578908792428799863140729453670779987922864568943541410199429434595243353281636806718231040760742398635874312681253080186236737777770716287874943082363649332040230059725943497760937280431722799921844373498193785949917750318394115302262181578952352039593028063364331135108739840604247986910453636201275813579348696217816454185919993449128332781141640301187594244719515929965723058199948962203924675801857672204353826632357109595868134054312829267456030110340046825683941695259589128366706702571726745218497230072771379627356511903352782283893809973046846467997642940713338926239035270550654241756559462348462297624569842827454192999845074983696185949867001200531873480538460023895232591654696635716064702492679315647782758682354748315953622122825857914750148618723504391793238977734173071746819081171968529701292322746569644525182473197391851462707540794859697334524220584510420901815808090933076064566175555747014171576863021275791345612487622812108043540738681859949508320128519486182547576529867706415647224833447468058474046422716414396332421116132704384912596558735320389889104257637109575043239215718374594196655166524911737879929422262439084478062248862415009677199603140281960825420919893309829550164510108341640173105095348383100080200841206062288427943892785191220127939193885573817028207175394928144157176153918109775547844936745324011930231903911824701292211694457143582938632329147128779456914154620410953133887139191512887390453172039897491982200900202601534867597916363141278769590609911198011358572514063114894757667787394545029655368450504754953534575492932882406860617448528877768086048449367861486899157978645900154641694788656009499127477402935734920388825939575419176318402761819306689560308878941714192940858594004215764143887714088481167244954438949231365129369142839346453906508774038249164540169527717212476352142905528742497387606198721299176533342831980270195516025408986418918539211329963671195753270169568609242020277417042717157248903968998067621422294878293933573689501479773733952777239403347486115648788007730102457249572976998607285467643159801047771809446176608167881731529540961243129406000379493530831013060616628338756051084377692403306823879194303331170342007753964203363169618582314444546107022795064755871871878177642034501429949957327426132194525809710833348929859340369148791816450816415347107765625149340394024756830608879614612766004351370421040161174833274142141295403481450156215128522736922200358578501817025304142912396287474956241525034218540418004102692523448642943576093348778568422476154062978335742008855848104946378495653825181691189634924179108327302583659410104487841613492470905659336461348039250782903958372137893490132046094506967796736979292910776235306826755219892340222396116387819256930379546603477557286433595910573451637479046131731733757151546441672819767118750776321705562807618933116380017172097296725548276434367314703681838204759597502261573393724228962705474357157931120563158024707716044860608599845534624670104618238400512067506023885957000409770083665139160525953533397877770908172976000114213349627349361615847844701678983105515355127558785883813126310971055931813565573370445289401585824214875930347014417544779041858479227877748643180182613623506301519614969750273179767231044559472330269554335990952221832381894077323998735185519177377997650888735860241759864760075711454476143084890229202762865987605329270164788717635928660219389772328584822218405147201325143862871872158189382415340090080868454560971397839727222515234603865830715654630437203047795060527376023970651415724248421620120873322297199680235946608076683078662696782016799472597971822816855746331342022579535310845806330557889896297842588074081146168032976716295951588128493297240361710207798036517000996109083393048671693232140968887828050915393339612084266171950415505495380951989110853460432692925159391069302510426939487571144592902292631872080806645384506341002945839415953712702048569169780679253321129599924753299802706721758448033639648541963629555504689069890739493102179800299098385822322023762872048185393988187285526704341012692811710534746464879018297871515196637614299067585056692841577584012393733785122228622502117828033656725479421888770646121968306479858950962705295886949511363900185917362129715742383076577380474129052316620538129275469706765176365945410642340370894717663163393216939657051209754829429025146341174974626182881357353733040370755162257932275249733049524218966885326327371988628013279521383328201461999395842134380288593543278565483018113009151244988277747343315282861001202946391641646998316270783380033976080163654990836548607913526509074269245214061526417067493121100352882343757684406080271884581383839958213388741377213241896243779541548263000736057868069560096611566528959926885449935779861963379267539178992471147342551829315476477677573739931757513452034544360977070374409824643073548582424289082124100624537272302745930967080387832146755245873833222923312324730790384788611230363747971784925409940431647067816403231435222797243043440795522750136964693782658302682238357907087600557041983322134309962298904860292219519288542423704844088488587193968592417649164077036469954050893102253612128922874142768411153329098842613631369975519075902330015467272608794193479192048186438689397637561990079836566227766946312625963979912577871537505397682317730624783559040318306267845253355398405929991335532816050720278615047934233331542695844103958343317167553210687781459530459065164717872110914139325245868122787780433890879046845115306130110714787435704481177231073751796669579670339746691832579532462206684666778734064374426885622603701606111688487548018336801608070477281104072466391437564306550352589090934840087726401104454467913526351504435885590503748803465028613542817733319605668019901891469400724430708917346569962821757927562437273331404497303601125289294643063779673641365648829795947988215621868334022961032944634309737264855114034194310547314429520721076068068665220597182353978006547001926764240052941489235679536733665482601996691312535502044438602787540896322645838604180400554515240503627906193919396703340878409956309136520164071479702594744050359938338623737398685029151566678087462508871019111306718449687565680644488637937763030877796811840898941090021241920269889591853165370102643706247057365930241895511951189166722041570391228221843897956749717079683946856750694846090085687494031271112201121734932622220999515626438824691607784617322194408555469055153512952583972086319497834145697794983118905416991129317145948036781700280937870230246687915612199605398880038487289511117741783833618437172127948863057258540593155734637954129351453459732655491866203229487091687272774712473921364583010073630024577595141713712892924229684226288770236773554556709701137491980993736984025276326801045738286817319746394600604740933589002386676950397052793984346166648616883510046892695661040146618723262561651355599011712938650112369885458154591548021387068670234482536684824864081249961047014537020122094869190547516361003062955941106581630379769048905003534344540361766194322771011111665670175623220430719036394353029540626780539853580697791939459891089872447830208436511151136579051493236797085936932153810517501430772107809134463813984566531565553869961974720964980555695613143343388521294145795089852474082073323964801083811678909095380633277166915306682546631354487879226802721390647413589391870329213462271073551116148499294855902034307706691200259626093194947759494283710713382125592841544637505731600507411412046270373651183818996623262935886660228702904571652658932733083815120941256978194142410046623665061434149226754006487842050820187566091798808985744579622409196457987898705458942753599439386058647318800734480395759856809077447984274605140292173188720454777108213697003053533127589008548238584784231847075599262630648159250938482499404535617199620474503205485792350494037154303143526166104406505984348259386127882768510236213646418644460250127208179224984427218007722534577393472048681711714552464069935656440722709286401529832233124212284091966992319150598204311043685049284126852595178705969871272084253701097736779864073440757973462455049144070273772819054073603045531908148204388231189640633731729899189993544497706048529415773445210077146140716681183560851949030012953004968982267348139658406547744790112630796090498178352936764639459503409698481604032542778268574579891362923166378096926861440948174132195372264370923286909232133385003716134824680172816356547314094042458068621363727387736765587392917950368078037349110714429221842627074713559541261984653191524245611002996711995287423702060747517245923509971117600268054253142997538967110022068383509087638847443181186649096817696964523256297041685532108238479970624777860181677455713460678381778689157857756648726703604020465195839438992652680136751833186737516019909359200426827293169722604920562372907800303949462529489469419919200181084074133898219557303868899611452348232491962109151805951121926177307746559576185239235707508390417802587128873635018617947927486015326906745168023700826497889018222447506313195545981810336886996786234066873094558491400848700864318494528536992765609570184131314949127588316136683894217028295430663432069541358928109035990357774889579768023503772055718345289989152378610847978531176359423301160633071750765419288373560795386364519114059169654747971182298598666866996182866067374110162165169115236788862475256070229652772905376956160114632157110020616690612953583856863255706027528704067427980791376083993492324064685646972019581631945286193773426655326543965315562114797194606831572445265147861104091617527372865133942004466758477353867943426146466398675138538787959676634987929778835986942770866620849572669110878012813280891298294072412299671829131323283877027756929030299569150857551673926914842410847584209656410093554055161590475408722359306072043575351370647050528563869514339227220433101385237156481698475989307480335562603218209374839517096988352760914816270461034180321688625144746420391231843892567179786280325132851795517668517077337780207584074530495031452148696446035578157899261148559264790554213970532253267048409304690993360041935441138771423520190174798289574686983365792518733768193260645091777520278723175101347009435407401254474428262498861100002258963392924177099210307865756378895001436436475362946702363567689996118880546160751576886557291249844477868371945713655485352890632413371849272415083849419329733962844371677748883405790240461597698788136891058222959788795384861263512480536102076353109460943969499035746891205415797039912821955308314880331098454007450849581485879924297349561079299229320018050520827905288435275273304324681869191075755536703975097825608446383743589445351236718133852612485903695212078971603183285285313241993446150361246460079127683974036977224613030433297908503171062338727831228090392110093351483639956493417728727170418574174472343999986100679727774250298940124291479739793397161044990990272897505178809804649243280837477469922830634084318497454904168727574498311301394158309806425636453098745356342186510340891656302728175804469713534724960873802290600223598475350003317199216535591355100179377801401966074544048599479859096052210201744273286113912843946051430515578175763238323095569796373482059340010707365698658166699698503475578625719716725779647632936850486280559714027815852216776478387418729421778693617084938169172227554879316565754768864462225800303023527539066106395293318141346442597008347229987289796140454764508299040963371164587396663469423925642075527920029764479819345490913673757087883028454851815706031767902889784475770058474632395096589981037325522099937813721896944318700216096108257555299170906159628198347559832473490445692187112321441566450059062940038741821098610578014517359920497335943397419093035785892329018213684727736507852659099238495984387580537975839640256166762279708450123954457705981304467499834244385237124023639944731023784611276098207087219874220556695255991261874408753508978055175038218057367389342709564896138834626308834291237470259963459612259787347811090656772930954853274649126006824225086929767233448713358809723443672779891993810945735370975848037646264173294110575327595615630731208700631281600966059627589048506969988933482769586653660798692318376499678727631390904716021875144943633675240551919964964244481704500556517740932472305702232511484055154792399700762314844974240133528134939401021625879308412724404664542643770381522403447564217546773574714932455620982007291032571687829733530939747449422048676323622042304551419188125678509569904354953805411893165964524254016115412497342310121589220898179517928863629370465038128408942765224036647684466782377990724709188537429388829234282930809503510178896212025452445667993041791313715325705351885061381041073739857030648647970145374788296008155017984193765756307464745545597261223317794617784961540378443756368950754376152400149144373406905989607061320748163554670990905968392875188682942348614075792444890268024713154859778370788532192374506067144896192926122871941023648987141359704547293788323753769784025386996724532072300098823354739407791541112449258237102221959358754867133818359590075852414672162950250664508381173475972388259355028191948026392548975171637493218317789709221248174752656826656915981993812559213762797355435053787257361430040412867616497359778621698539235423620377717386875352650326064179790204265371411806354648264779263888712792826657297689373761267095151290224054822688846168438957242317625405966210744649442794853710515887974837072865889936778620121803944314809826335821421538758185289048629943548891221504161091727264669798288349443018269556904029378564784054476764088859526985026771303420528442402743766363752655653320830744062909873316702868599138143779737160528263292360883284699323208848487220707613824290663332700984100682499202201664268763490025227063777826685579769313504492028873839289578963446567137949817539353287109186769601597949823407314641833727835953765168404702984025933171233996516113314654973027190979704747300132587021403120123726802860771922446838001456329318124563672594147797498834775054493558243877749533117104366107407278237265086861892822028729465548512132364317868172765717546951977858225352396498061443391484017043018636110969325637766550743802734502184804350615710524647084663344986894856594010624476273671504589685864667882438827426551094581802416591796421162582855640719943533882472249907706221012234821924874767947551715368720956778645511473715160966741123897055062198019939314572490657951808685085029912610327547007050420177767183226542548524391342386432149575780069862963048068998831919382242582919626133199435864231051904683450355672112909410086061323720942345194774685160744223836171917137983114105292351275706318198992474303540445637487290566996309960877512049796902772111187741973184683113973674800401190658166088324983083994811959745977311539740429977884296412692896915947382757484683570771248054424540015462135230730802091659775754026507310592175125457465918661474503916947950898799235423410815519377893971107947690909874306945961789248113241384795697386848871269732111949209169202347142576111417531044651755366717478818581669837537251586987894112770090656107290392346574081466206411438663753772243822608973071738673442209132518866906049434159192714720590379068741560011631646101797922684579643552580550988364010512225060542223951003424464527491271333467471139642001324730896656832573775047045153104880862888526790696033924518089663225554571363033624157320922343227981587885340763064757563885811952889822915534468215174562650661876148660789692982424461226682528107382154659044261641835933696298577143778132046664367489596253193994443215249264640754001734937076530586651532576436507984460001950888542600886343872594045018947642654381769811257865573427410818762011889925416779854804564482261812677518665661661145252709156428799656863780143722758404660131355241900904287266112031190421655294909842305470890913070594300118327213183306454550541804317317902092477512029528898253675630373209340953094013907546363831722366203852772665787371615401565142958713217339305049676640754334509995488267809545589452147274232893445370364920991293288924704979703428129724606965665906406113757639451182486788779632660712355334154194045344475816196340638538118921409911390921460163495269190019215726546922267727537475879314375498021048632150001700830740360246993440441988557371494140718888453574791329314536074520211358874748486016780758589721717923651269986497259221872238427088628535210756989156174620790242418748595116793003263208623948268422568641766195938170874459371976911239400510680833814672751632556738317997858447790871116877588140164924388886611477025740366840760861407789328878592861657162286775842865422842891441770926813840333012344987768813531923662623105086157803369164858907632582271247978518268947815573351712745765915472742840767337847032227669141173448094295830709167894316310040851020887365728478089595312067948053992384571100105895571072844717451765833836047581835299846146558397241699512621386984599886275467206143438034540053373568269779688312457175536405207146800465998397960359026826997718452736351530817471882264679659723183730804250432512541363604075373466492839183566865636318176329201659799527350765742270139013573714678560393603953944747740495147338437754502171106593999949047502289145523360134223237135572409490607545087101701018317780705525666040196080065921040859499604893600006430773575523839678037759249635601494976995237804898834522136847724332910256057179639267729096636046201082268229633284399642168862376621515316959264307496326083003427355675823198701771980971674240502095859062775734491833369211509194503920299287112544285314257622061824244594535908291891219562237652433527131349637394279605105432017683341151442353853050423967041220140581860203984695251106842206775485235768677809280600500860389467571546799767943170582902564673234110303428814251835612775825734197336794231379252845835090024614104120738161872491512111432524188860442555628850935794335854424156651200484567057818358451929201581573714395506493909055236694298364787108079747377371155117161367306520484880905519236495724727437716291477440725118675744299491817466486815738889974217917192083664311087348507646243292182486652415222255264749040595790489749141589994235435261966627961855709986207456643732160407211376204288152067145148266028222676340256224308092960650011416513851344311081822299466389272532022458476523280254861833701995776247974566940473353607476966865533354449186364738505059501431928116921680989009177844013923423954274062636479213626231560113969694684023576370963608849697642894900471824743301165383717813958765012402808525995240533657620709518779898523752119058253900445644988145084692099607561123598065948233312424169478730552309098059907365680668217629564234488627615334794141185353692203635391338480443134783625273051314032349945112289200221978995856305288357921974784527568811566589917010418336715209571145212794240498679839437125145493184753450028886980232682153928320060403825724445701567356321134728419155791653727238416935024674280586437394388122584936503304958104950216917978992353228639649577658903567451135475015160538122663185363963836300012153183941884017194849603326475249300812424140171725595174628223999459225690341557876552041172140334681475333123993729798060322673209142768079444256240878874571106728212585028762115845077934070438443456462965075205692900323666379341274212161535956999095818588745454293419728380897802940278491637533708826065955127274956543175310937875512738076216570552372160822005798409017354366005089194785793606304503471213439910951666871156765793337801251434825815854065586864950731458712564555758947575516703660527723814340063808148248947173061352033891776430136096865439340733759053217680553659737478711348572412142982326105081434715175166207700476472268157238821115514115810490927175892809552885152546141268703076385858639314030684371454958738622266665064117424828177078387343335487589971731669047713486932975659940603156067622414146173999274971031547165841798395657694230741041871984616014542499509098884882323580576273083839565921824827384759399637918455664879511757193262459497732264226455631080355085603667690306678095320793656996446357287010014342319570444417637640333676302514434334044113133465024804516919329589727487554402326312425870784233839793629444610082459155412643844676768081152871460874097718606131746997614797468220764025627839180898980530202776234740679954538881296590588609489586968207570287997470524565241522802496295921175649644683969364521062047126300837600168728673310144234464816559013804013245277531918194856428760538688145968841068421369264421758811536832391215081825977748262347364917531114894149665116767189051831808152203589891586474284497709420270972227619672020305592732862975918009193968947541206043968627945670506670020018754832362411771152063515913891032438974454927314089871554692456111825199929243587594493271675019737092918040000418341315270198875767949429128975463463458107894561382910955963426821577445462167104783678549721212061750062437426453300762697982702482243198619035548449432084016221709646680814077114672707972974996805805084983276713300905067960734841666074431292493054882100254663304555954135600017170105854738102496769715957646241211425798999552667960339322964532399535613941300646462698660727847546639681378145330999483239365959169408774145214979098801656454407116056957124990595539174032726311499542161944640415493145484471112871313131363647021754549288714589439134354238380871136640294926890573683621235450687299110354711868839418622484080195013393409835389468945012200636940533982771035814957658456221345615155996933339462839034400887356779415227490122270358611525539857661404240941846395260442714241931332588347304819069549447658537793524164551134646268460017514167428126924617587591413674180562584902785764900987961049225545287922472012010168037505502999306636400197209962394911463375024587465844505981907671946644340949707989857400079426345433817750163967952011863931508718275769729755839717250155018101197314587984032277904271112158419896212960661792205179654767515261941252883494843120640389795540104089847450027267092695393799635473776413254432117683933869302077953058096461746450030125920122289594129956737298966272321209533944632423846129485599770530577143227272945474429035666955052673230203823321208017077951886317895459868718834654738540608710661581013294346222044452386514687816784470446665057924838771401334602262605530739741000031034942988566554061135980383686824759274757630672074438069303498457324731746392695474849814444336869508566857914982131378983364798474808825938379588218836536240757277301846628657430861211410944964259921914756300389111462186539612273634529878007776469889551112024316118782128019908155896342214724062563593539161730059974648787957895181081358323712967859356010171828756143811304196671796976912084692456342862396966187049562582274492750134593607125448266271472189475567058075799380000145229921855292317716643627779815162146150522046670852065228308138583083698451766778070180471212004131795964539534618879208119623477710929840714569946978906966265788129327741745882360860508369723270226428511981572646904904971378843344884957581381768905845370410737775331193382467679898007299345208229915048186806734267789290661660738054077601088043673144989627813973357080250228363339719178972854029889144575448646155184208489029043832131848283045008378481473286460484696681135295456110812624157342728754931500626037021845384870547740919917768535769340164090698005843742661518746004536436227744891328333685457867689154506973496980085042452609485438774909920229223524406224203015788769122124674442146397998828784283705579629093614565612653275391421739452900088685454696670533050687457435972010323644807988812234046512740923805678683049561147859897066912649951016694361772557323127589439063238949412876488699589307270380786736830791256102205485993899905341500579412002447321489706693190624382846944482500571617299734858799324893106544061991021961930353122982462064307933488132096097690653674324476374013925254729891821047832910641633833955753724402311775219107866620384331791913014276136796153766102783069019340023729532071071784589581121707652996821603406905418154552358608787361263845155074115382859578058814593765947325699958394030178498554322389267786058127023002410102932203826599338108807442579679076655690837563011992393585216348666247017321383573801117887470897195600213200061871610958569590333800502859200089035274443462270847633619241842925465295945380838164164726030636030074018670153108933561145244691064901553635079261740801307871484887187442421903088606534117534949740892545951512721148870377283632517921369420315594711671431312553877445445794476671203238461734634776476099069326237286444969193087894914042647214442234164229014141554941792900386471121341143092054281589507736858404621382793799233088230552287924017818392815499597497401544294300878373678530166442002278600206461401454670136713957934835822955567480828592329429643309411761537398509248293992095338542519315672594897269881510181097330112063758233674921181443555883157857923893050864541704264862471845427817008895538341929766004223359629744243877947381362019024742343481358224264790407277745809469671353860543418326637385613222312309536691700549044672988408796275063114621775163896984983812703595929170403342957453205097969750583732657842696512648026895489629512450932872321096321884442087112671548750555699402224482859282158996471199618040096293204736367068753971709981750912183128449920904180790288349293329707985714417122001500821747132897387537218236839380931248484076520989431258093096262971843297868467176478287985316551629108303884727047032951944328771976977557514359888912580602105821596154228028094602192551067734220258764471322300064564588941499050984325903326908812725638227505753274576026749104129937617664782910181547832866323668518187263640531057571772961516480828104885972290240664606812974607101661287227577238832740426568244279565010769157361103641942964502615079843355045068035699146289763095762755808352276741768600009256974174778280067377157007227145978549192392384973589438250919580931237238405051835193136940199915308584382775249723915493518425017083678248613252634209969134759428405347587383482552522725525756287440802010996655781048349186828015851495074643757592069747856993670799322611422481030377792315133878263737934840423747899551052281409019402301153267634915282575263791020973632252121742900298977226227153224203811519029618799301346804118970462864659676127305305375515049342620370278445362491166577566792298395997246094087381701722420133267204735496753797301351979200530871937194866119069350353422420763047748158058774949992888525245056139331092804434981914415342153914807319754975565961121715207280989767620701214411242490784295407379299882169622835689931023437660622298316252589048142145730791012979010061381184811113272117793594522604838111370110237673986606720999738058814569035303148592674302869925111384964700674532035744334199156047769948535045832989989528574396434430244639925916265045148338752625606961284453797698300988129946213884793061408663203103607233695247602715641213785467688240750046335675881181243799315341959168473492868057456530942493580961029171966559518266909841677730035622224526599260481246207840334979588964095150364708883645254729212598680996597845604215030094934887669523908147370866071823033862185697802720416939967992134352737432482908191682803081829136369988333333084693247690681266358557678049099813708443368588138121026518493577339362802446369048879429261613016256807746888587704633852375218650511257815980656267272944945892238823787393136836789262210944020020522278185254143919940893783403115661918478200375866594478089958522202412941240912883177832385488831655658430952192254275115731569968677471756448525805400639714190534353039659828648172288736179643237092583645515119392813556979561719646927101663864020647677917460201036737503904446086990194678883099246471293623649644909486872903911090490836836758497577017583474647121322307926277498369149335628456689936790320145919523218302061815405449320644370417132815828412060927388818227516700281562941363926169795326930645702792163432054361373415672009645080080691076543047478456587774607680663371701200268782474855377602376603955543827292553084257267795558919101833614701822877189182369576978132064562513422078639187411838959486598631957282960875136592614701400682280509000139406788761171159047988548318796920467813258621544292737693528223178746908602283396355548903491957134915687688041554037320107606730512991245345656645194320270195479940277402400741109703809108282570013229115460125504786559525139816901245849489379441025092890944353720786120984103558740644452994310272924179746360717159430139270574466649625072489053930146870080848986566888672354469300287850300422030344410377957286151274463147194240438190978379059894354477481549668728310793320015043100263031723408157619736961660431656993339435526911625509615985352911094788930624632714216455096040051407213829578922745578570563895595184666239432275166064164754188428597967517519104113810584355990029181638368165022696212730912443109500825096422181559541600411407870079403950125558276101516026147172238001172489920732521115090325955543310773098053614929615854984269318821038642340500356753436430632195838691024031466306954897260959483076940069214420230602748560275420632055703133790301480248751312601328210180437421972780941107138247960192882748736224261512527258578477186664676227959885702103006564604096741223224056080172999702987452534456033472992918808316737236655620989727990433232792599480575280444204424325451475270062533334019512959887230667986402387413927297682471131566850453338105802827616243461300468333891635621894608366714333775269291180507174677557052362449875900220328964736727278721261564433811318641610518249077530103406646739261508426792359988887368403623589337450918732463194735494194986800125748579243856625450626092482365228057523321237747705135291700944114094635357460665080966657608130224930443698525912555827902608476959993644055356085353849397986759106062762134382855303925395803514334112289954829383467691938903204828347010909985360104857011013457957470857285922492193958032108584718625171088891518828848376613784553326380327703128729281108585549223810305016727230121552795686356971108643543849697343443708074745378334830868393085501790361229394911359845128058643088709563382541788109743908843391452876344101778167662161426772916927467951162199686710517314152145855275893454890933266235367025931275211659969260022876905130083891385029229064837691519016505755900351096763276032585158931103234180927896427436078756638292696046653875173374290250671175633128530291301820964350832483504146484579666392274951667455278149104213891326193195428217225529873480029318577568788283193579862868146270329547882224211104215252833387869984722534346729113585343035401775726112720699962134765981978990203090109818953284142051055506580137849666965268818077197312469505458166668646033548870023198068128873033985098129812340680263207796151184293073421043287563743595023369661994721020684532955683478867622079815097855694541713256564950124525385535122622140975943120981950563672678535468023050516051306368115696837798297533647910667118488534687927620916439464983057889043890979864382017226373348235078931261212091973741389254275186967956620066170893094008889491567885999634540443949531845623324807952271187819097438507012862973998900322195613430119391214969987838632872125956449358718832721835685312107237951467524073905095522898632143339691053147549888508673837832530593785749806548150920723980697171992459013260913009555637085554799640255104617968146705870267594571265526572691066273056917924910573352428169111028491876620383591426414691233851941619613934979049868990903578321311618369023037167736568438842360719009454796041715441069904298341739212933122294133764630656708312202709451836281091761310983003495272376924807505810058142646383827542219378514250548467602583670761252659888495529552714635569983739673707572941414173747186965803955419871950348614905976288721020921782869949164643664292016425495900498717815661910265121057636566256027512187728002218264048905148641782516247095929316646394201491150819923441642392664196941414619863508468222831911261621750874456357689606831515572903841723782804298676157984658007286372825174396954794729738320643482100817876164709096158180613082101574286253045562935306059936550416654616262901511076038209291933332190208426665714687341674771128748321785452466244510861932854985224358315205036990655250109098454336628724264883591868254950630483309421639340330370606976109650964543847321315703467546811865530572717632247731300032059596984970264287875135930654519843006211918040202631282094994849990633596110057434749657546448931184613736941591185620582171555356905012089144966908765231803813337601824198900534103284704104058014206891386634265301621675341168832485326406922980538474176775030796116768651399111023034917154077860151867690099739353412786479542036754238040445099047293225135220085958923235286601672623570811411991445484571724925903377176579559653779698268997061979916627687954563140397104450918913747472435538422176819387501070674777368581248200517607955177023691665904168747036769973993120093318004886649442880621946004916992938711565232856329032669165706418912500188254934231194685992984404246224543136483643067735987066047405576414701314215759661507008960305224018447717950732231016809192857984530564371135799847117178010430193389847562977895688440414495955268820784360021969786877545613603352345830911392194080763798994803855863837356487767296918133768313451776221241079577520537111637945176389563818112559154962592521589779091986226758707802932924578337007593621799678780995975255685110313979035155339569703649721486287370226497102737170178090767835822261251028273893351306497723263935250264903146158578502220894540556137562358913124515206532432736374059051001666711353327714359738374224104496693909025439017531421977523749236120187923589757004474527988381708745716790291610152540491746789233334729917605846113954283609916123359551576385644553332451098942507368583396831325258251191595590030663835709553641402074690701768160362960595609743382411316596052287089152387011849063434000263350399519225685267830018926281443879294714471451707396166892232093505350254939402261928884306835895823787579726435909665666483896996086472784658025028568479940840533372234292729914392358275511349228423495589714467810243535752723129860475623624752381208381965150230219479612648217358044716148657181209289039917334695902713469815841546947203402057848686311516771483312965250647787494178669831136974982700956693978394427623308718335641743512178222150806918414161755548040714174336867100803104568293255475513658114164569879056075603493511337611333486584303668004919002668950152555450656756384903817981631515897323605623362740357418954504211015093973655231834460427225321426572016957791609230203145564020880355731496352985960235136820236679506094946100232740402772563168482448280036528139867123958800756031385973105212573044641386355880253369513242511908404213275197715159158185009972429924265099671612242639662151808980396507155213422544877929418081720616145302468725406770044006423452441226033138972279398646274902293680766566427080502575410553431331604797723683502711403042279030879608269743400419419058915238414376796574207285800086376588430936770955185272753943420508180350263245228924159662261785269346717227227499863540800352399793220021944352358178647781083488445083558812452805424293693341221796396793753262066772512468718547088564124461425051517165686761058756031317830211666351521465775548414879726479765418445793202023325373113349688491676314085853874566818675561064222183003910190662958146877480054507665119202754801183839500485074776599010570324855765648637882591512020543674774127724580586837741608224069604698319581377669734684022436510794595906878699960453577419633490088537228100417787053960323068675268212302339256630328736072323005202130023781148014580021238984716807477026364668174896423348154403001985015186171236626610714468848360331634330435412776025824396367692153511044624091520715857832561175796165440586134049667528798301008814122735331126495912223149215899666891656127713677433756106099825422112557525415478291915911454741709724831801448651665416939066628755228824116369301224050626623175868425536048253130948094000795790520413228663868437029629970316544204942220117845833839548134870518754834859956092906045021427230021822918174852070076164095147077704467901070309004364139395304095387368894601531303520556675874503706542118039027960719564205093231729033917626836703011123349609634087981082943927623676536503111901307710799697624534084792472340126489900044449243750933841251294951246651429084735228519508327991569114768166289056989935260563823155522303034490635835198266465563310679952020172176932645618181597238294606743119850934197402902273352455892251635979056846397496447070978836558673255541219507924737254025616587813454934617403704962408377301546613449303410033949353724616122949727558313732839636374061791082952395804438231032303221094339530543395634045730023533055897936335982925100627612328328763178387240427237122788484485703184825248576043515149288417781934298918997832265594308253275904582298648794029157142628140999247335767148226218295578319228029041041508459964192988241064684021687517879952364211990289179929036527698348740943736321734533179344362461832719030520865711807019150775017911348308504273036640890049256770789201653258442010010087343654018391832467707664874702178006391329459545379425566350743693583128100513365031772550470111656494796359282768606432695563182113357370534864613860649760070801181605746865592664646741071688249600935288454254658150748402016825532186677149912826074642140758578883944070739348607821985853250140059047943463886870434831007360397261080349496184618061388184244989985857602903294857582904368293330089990173884078417437693789177132740064894281896935169885782894220757611260693221449037591528915716467067076137075500133561529175438203129860225169868523265544744944482612080865691061699109001875469923233675315858868407417606317517088109730221555291989156322024391247580304942695204139099597440946290885949975414960852269513103816737551006631089936399730007674029214253985380194295990609915956750788623798003275778127582335543526470477598391801849245185635628851514785003586316133977030965823240638697809849667188985057913924460058097598846688115262307123164879826432867016184167364857886544534290487979195292498438584249591646428893382038738565650918061484000699324262682339270500932627366696413840823411888931495887371453445510322800912730255082239667366816677118412210812833690854670605930111224736323131852601485870535520092963625209021874607767548928765326170234937209576145845274950323422084465358499784811241355646645972418611970150108418537214265975291894836652852787950542882249589494137953149821955633011897339590917979582416273728238889863080947638286151472434647785324463429513581406507819403571740800056689500587345492547078715889262591011316880260148776213934627616472643803981955501414625714747946326947654586863252981560861432009876440040351502213155572357769667580890769353358872780876905596626618761152822546728416788280025211715054948489227729646030061019881917851674674572185225665811629300055536914769246296385287941811553570642087236078837968434813647242560087066125520691338062788296028123571300873714778476697851990687562919230919219861410676616971188129336172392643868685322228796608565866204282778675322570674357319059530018909930849401700119216494085784209692458902472362439611379422388610477305965009808499675024735772466190473596172231915667719330941519949926230401793751695480012127759988053903574447431957112654541368426883339007000095678487386248093486335304181906111704330305990098229229870852908450806319761290496870962782164849431875482573830515297303768688679845205755362642947487354750424433845465170985778664896741809033755549465928135028496914240580277275830640255964256181439309877525065969112719268595202229151800554816954672192452907489539819889454068863799441746820867343103010576096064388621309777511425073821714620576025074304180599416460555596462938934627290016576609904210715278024591179116776286708337308278091221678058360219484797446340592875123729263074681510578598258183167727552258861157051718178786677491904239980584450237376990070468948532311709270851892506728161655425416010852890529966719267612990754770088705553338858073003294825979709830612706988511915144854184670885088788089193237400370392604159254673614920808317689961837645702335556372502909192099506457477169423971242313657925868922091620464264250216149065955617463433497691903545109670104986144339670961163911411418585523031422498002226122702535569528879429838112766974213668274334839121626770690381359056792550189183264333079866307859046678642357583702168630648778632844231450954685611510724528221057743579087216609547805649138988062438221732454744819573419995233571258589906332427258660572282568808478644098068469149672790096427943368108918693289699594704369338160010475133124467371208725451048970247418017808671189794640840385536342626193210991662647380830144432479088837385414898527714344762656096977345490955966125876213944583866951069239105230874581378257875141468302870159498043948716088378117231143564840987567702472704490804602286836067463508265449152950357777522612597723104552235351324458505741610783195087661850819580422144075503362060090520657976967782401030118825365624861606101817501098497550155184926677796832698655938634645280913124521255048945641827020109286431158021255979111231772662827965662891369336815186399398593591195084279363976040718157220298079061636282555945336948185681656971322758334128091704659061768843142736172133159563076261912789308891413614353502869105615754788182555029049943984498996478953672541429322024679624762937321930042995302223102810514877157506329472791996419057344344599022799385722316951120117962983622712833247373679949458897535514994352705046138281320741767445285335878561859267050831172831024122328582255000240603549296340118798407289077540429198400468239828832319258308064105528718939610101543025070509628864652828178257924200288542954901810142457280799262822172824325409698020646542166430193472537408026538765332656016577287585208565350891255056147920978595244313141412408636925347564459802642527024571730287291251338870228750443194714661913792343432512474618356626076377665516791128897681174792168414977752485999909940795151475568735041400236082457875204346927467574429003719155896878302944709667380525035885414722748486106361368247196833060693602570731313412979545008004621643023342688051735692457786206780943643230349746099861816415661631292471667336122843598811947788714821915265966557016605580920825238168051831825143471830409453244408317909063866644160142183060369053057242176522660463145193805922541444474339161222147032567398918931926680891575562102958386612918194421907897753084818700457369645030208410329856875206442275316562316862706121733928328831437670101305375160968218942477449090799373836901166649263778688878834270032586910536656994684082671644777352932930983678514262382332953707729993811656583509813853010114150595516422698400024169907344272439681974044732098113336607693425332816803447676820383430559980849577054828639117277861070920602959667598691084222161048057932344912340110995069399924603970602556710761118842547768922260596739615415808916251417496174246956558432908648436369070341752609993770138411712943260292748795888262648837972381143629315635436874444862501892408613318855353529579148794570906501922441665605618842996242698785315519682798213142386604571828956503121946584489008396065777023913411272483243340639138233626717254420131192004529300784136654824149341963330241463933825686664440398303391090515921510151549876253127412308902047979170922600237149356972186361344563833294734689569223820050572902959468471697223817190861575080356561247287710692645437718716610280241747177029088383086643991575642622600008054354420439429971860642535107016730940499997809400434563261337955015496031627476663032356260794225279392145125576900562199404986623775659825661244166930136718021683905315975823782031893043683027936122480344971326758928132521306239730885560348739672247802903430347190139873834811628899772210441604337762751405192259021281934330907219014176823265123717230492906152332938815451347281044907109429333924318414390498864641205869666484628193338372033906370855283042680720523736252576496781092452695073627599969624386199895143649392779565171422183437001976571133395707146539544841872494170328910419127611782858434827421021867302469563279981467904952605981999505497764996323206415268230668864917921526182400032893700436737433382457949367607891733010668826955160382834495857196576000730178104923367219879141196652875827243382268659341355326016382403571874660252227442436798037436712314457311024331647259088814900727085675029263765585688921169746098246711917420858527415758592859355986669482678291380028441674224683606678701393846094405223057123198396972604575952579336777223534069955400358111036747962750055997996259449666774451432449314393214594745048732464930237472363267584701949875369836831153562979864403432377555316688089244798873026516153794580717180457022323152862741419369396864141952229279529463387839373132103920275067374445092076121317865215551864780936303124223172731988175374527063356519110593306616608345865558960193856747493141835502285636845515695557570299871363843753705412152412952472388297975755362854808032523544791551986109305589612504492834342006416844998222548499133084219293268994841484098599330376760528485381493640086982081600293593125114586555338673582099946333091700983086440623533804686423761273830471624493748948869387562229352795469962135596258578347585959649541782420429138955518830308853520997506736477200579692987276067519080371364173920967942257288511155661599627529856377792678355885772746234213030774810209993067242742408253898797565436816761985863277553903358216974702947814401785111287912095901278257694034269747754547247097079864460638769616011866227058965968009692699527312666419822719762496388762902287325831298130351326646296344740675093266993877244965600513595944013028416072997214885959150014200257623448817216219976197623577120606308600707731420393730819222133284878790668272117669475116713241654569771982379380525160422536012567887610150719957068561374304937846774646090941897845984793604190694057902954542774992805892395210146859267649812283330330459708195359388297843572878348189291705074805966516940414772340403594549080907431897255913007566128789347235350499913145758990364142130155359859660039920979461860864333604565461354482912388888890679297734117893477706642266514747799231818061568856482864909881832137292711856333614244701758637003925136371643293880136436584457685795918898513587849442340612564468327258111726231212369159164963566276944588418373834146317551068823875157913825392706468703843476473429757886095420914810917077702689696126730447072153559681226227738562513499138231955938992927537207737051912832366977190827508210196585923312321535300653401165116831427291618695229126763608208649805684342228325173478625871374676286923812848160760834932533200510545701072647220878578501277334085866584501849070871885149530492941779380287337156485860538695690844955308996252481998386813255558315799432912959630227730846669021917129810453805819118851101577309846645664485110038424643986450735911843542287720064294019766422603558562751502944533244258340974852538680651462432516555201063156716853196443690987270286039705305877787458282723422877459464922157387119686337046730622749561166632218942444263568148705603844383453415061400044869912812081274164277647964870117788525210621942512978128938699420295154917205630921641847057970817406320307900920270495354446597127620750696806998454352199637453500203066509358146643114928803876539282527375234881430455244414327108387434070764781291059962946589233044995808179071875336335952059770579151607402139071973160425059589103020410198260530096285751893906556958242611646824053762196560568244926265547879243667371634699229848852892225021372899503127199295504031751442788616903406490936092926712016649220204550017116457041758977109171038461122940631676445568072248077477727471245567562523767096733374901852600743302475849972792772331094830639147618101105111598129759762004052459353147044716810079449784213982169884196197269125461021160263862745947886033980017133839008853488836971008990455571289047019980499326177421891237442128510335233255723384076835607777343578353396824133984978331975733169243190657885113402432957158414108234013865678145749763723139047946897809246998103419672704856558622959734258694826768237387818089739687266038454800647777511609313980653582400786706418878950115187537535704614286035024510138165295298471629204690041548950302177194234803617692791075713893382845269338518879350714859091531023411092688268760259631688636026239361404843103060849123652724965404298743033342534198912764918717125783170567344990555697590554202664756994910641916840550012794568679803021440900427369308960192965593548980352703280848203380849234426284910957765592800002945359980953710989651786559349058287107890328838568728900022923739528613562196218380596108054752875065932247387224603935324247352774709060325667911597747395012666212872105515846319797668349617951905223838363194238492789515398185783121027184664051899721184279937062844056086467531190694180913968123384544893937494414261374255305557034956728517349329408068301643638305912249163200286458354441776156105318447794369716619689481527957143357415442519225066975558929653861832920534852335194300423341038951626122662226917591091577283753832239793641856223494516705811072759967615288319763456565048926896072797118203289356710747053152868985855917995318129200471816456262538724783110270879615837295021500973062909078749854693259649479222244809975443096862796385011359992822741122973395503227953973988265195535097349638501619606539499044884134830290543611712114744267892545778383942105604008756507133498849249803900393649588439700990717020706277813700742116140678369779050798740607999900906729275363661887714660652820616403989958619794833897256557285475627793096956404239561772988426267690194936496624637160828998481581601779856368448772288162685694573604538164541201681279910874967699556696110603490651933173953232130600174272567691585714043858988540714486344054559133392333555873483647384078084385978878494281622389960758751443072270161229593389406698387510188628782697836896975686641689153096173374395212978901829318262757914348293980992076642697317923705723277738376996080403652796156484455230942341475241880446392059622077619180772631933903786251367898856512533723870111504882650554259486625032237625742541037636951371096422640131499519946578544696684295525900550173336521265410150503773010553408054792519121945224729840157844175282824131650654490393285871050874982516294034112331877054234433208061969855865921539469054684348698668313194631880376395308038500266474755961718286373671896574038727926778502666423879992610933558311599931235165436960090387670500880138323337552734421185586423687219744121143095054254613086916669800157859826279990352881157479714872040322223175293494313870084715828095062202535757688903587668396006862108663927766308108106893468146526967458098211096399998666914941827701120054920885707620071177211472763612897363921418722656284647582413069309544326364508191328291384876346339509396802602356430579117429150636037297763509289424158642891170865849906090570377891500250215581022445591152542944055474825390582114350757754883805052420452925743380312442583949871122098604368807837613848341532633682773247425904730319483456488154428071979122280616752996006341428757528473467667481930346680412739113168297819237105425848419074292218435961747111428465132450088178886486890793420347597700267100195485419760283959634211507448556182201666200511348673861442673638038589707669281203416119013359963945883637341539038362712499049112189054925444418719515463331308234514307766203062387918403044498295874058280203808879983923307170914525012697641171940469912026994498236212572101014104624178257588894574900773258157214791743487957978961670830825632695884226647247874976489056828808568078822265212948072922049350026694028285658075309383759613288574602672915595485022703860680211335943737268125582616901395164749808342342617608591498619383980541430530740742298117095255657481141580865937812666529501126217109420945599222793469169489810224624393974791037487395462910201972923519578373040012028584993606170478640677665301236407075839595748597097270245222590737595209358928762345871081029528292850518469341783817125085878919528842013417802372838069059103579950614621218565876725156163126726593687485726702112585874235404747746962902273086852520251676618689717601979646914997126400591619757491440161998209528349646221943566197428745976459088751443591538595534135437018618761679169507022535020889269248988187582511305921290293271601082549529848086769587203425603492259850680063945407309608655065149745309887960320675530407565634015732320526566365461476111210240371494552818950892591413564121034871476486420541263796822637498231220014731369498110906999849608752308687867262069851651929926813428168610779164104061034170358204951492978385971508285771482081224927934715781682114144992387999385262822397252631185834396716274158480899108916581417461515995468311271350443311081465817369961968071660652545466422638054586108076680732119317389715490158302790364008341388663930644100793483388485123995889485141867206485849366343296384076841768896952021599297823215616147764347909832798978938180694151556859644062860781823424554398871259994417497770377475791009414771915870285334346118283155594136442992513959612016403820035778231997415284157518206511525841284941354540386478159631765866262513346842730901460231827121298316769586391037251032407728744024107594638556917113818579199862478820321809330596128865480458368736097745695917432849771380348727964440754253373109013202809683429400977034699446737579226504960248388661431300238780256567883304066231140579883642104598400016893053703219104549335742160805722187129103782288713322906332307138975601314913480345007382918327551131702283057625918085584467972517430590155014725970113680740107518246208098470401152429212653210146605295341913707846321755724642168046789498142994877514288654333152890276620578389939534054523999011125515782004693323557148114003388797624172512808380233565441207419422473358983254288026711681939845394726249211155366872877180533090784073030090751983333574566559827903310534401272592712445084524721803758772991078331484970152134821491237542910414663155624771966892912018137809720507322659238666519382309243981703802735907092052100929560839710863073169749638537368864526541631726479638816979391928433231123596296382629105499127112635909483135839090170986010704924868170020572496934485778377682756888262508359334422542703898745794824840021528844815730648032989736535365177996994761577157608706259355227225043666329734308786454263211346901537851573094386018918266649429562991526106079472238545510839627002916214647240819930293474841604589524017986538964890769445098452213902973921994520611245137510591801504700245921088067644628420751125305606213753582650396924301739018362097290106067691676620998317744839930612811906453197166506718536997220680603407693722707184506034164280581472613984270105269570417598752485101147535151414998120286358115021159887813405909529366699463178673014734149930889801587469647316531370844018405629370565157765726883004700590576480621344939964569019561607489358376036400484141111918941152537458972603390104251667107916771991905811996850046552192980486851193070495953585475012547878883577001526844483960662026491559656562036383023822780100545309731857379609793848036877209793599395134050533377460851904176391923939507232069531378238050045865545122645294744456750089010651746520022005113592332622273413419418973869933479041488615549810725434849154720847018647776457583581302075799156838853528830963803945639570529083020306632657930236908974000240180748124084751008112922592822788719898488856202101843420262874662529592935375179890744771875854622586188952801887538305607749580096959802162458217866780876502783801257978244742832373981796627879097831149464128772562148823367330395903679400919448257053524387164759877421480098584480406158061670917169675387061831865494221209970716200189116179001455773188841853468626701657078106293672640995089269022577020274153501696531020639901823780523085256338680734175763135112613520591275618867007819152347539115946537149039136602158148143223616949765963176598672415359654474631282426569868434214829308691430995171346764023250809732733685904945824016325459947643163715699427659871662081441264875144719270256975821483883196226461038226989538819419671131368338779489551248700369754957943840217257143786367975648084636128194187433661695302213267717260591441245367524165791018431907472676489279322006245452874793570532970573083462613409328008796185916551723697882836649158781625517471141418586685497323199691311744762838892705206455315179795058742188487023118162083842302374313527082462940397234928370520092460920567501609491040585457046314556992566529291564302326578150029864694677408256507109402131444073005036207203665625234485587073003762314181577357308177446844494462397846282096252499493505947323699033921285242561570097815234115536995882799137298751704867369423594008743089754030921556029558100110528734562466975136912338526813558084679139447118739168278887632872758927733702241716111641608331454454777766172304051293895131978694305875615725349989874935907353410299639235748799291087008879638198116011329044114793055483714719370706450976246776056159340672141300539466168780290426901107094700430499423094721841490127894369274277324097592406700123743007471207254745265992740524512030866251950069948361463865384798337213174083098382011396725710785506248262945988509933914851781511422738239843851194016335561452629676825232185951558653422380436288391058954719554887862602923075444165316186221548941273341713821065945408473064637884583121398036162315820471425455777994294837844710023798810874489899952196186373034195856618854655745702444639797481738516117411193796389736060855940544832669580258522872993426062973806731434977043867294835685194773846248345889027073276529295549807133405035011204501153312197163799330000954386537460794139513774709265723381062088672836867271554507075850958186024571389570434025480553059156971729313507010257109252569621659975239734116890405768488936422079017926074995036344414805998989106749434723250239877103258404616405783313601661742442840542485930511769575792078914730134476387983507525773671860958020522715472688059291092997572242155360410492408585979050466318145116523812183107215210899946751782121900431033774303075597243999512258212692804129345371059928700904224752263456888784649231439387475400655345508236588583531082036612632735852137400256239485142344047909003097367745465019950167943472162471931644846623215393552537742622415458427213457076507163694169041263177932097765819567650670587273493153619199681978359868723245161736572732488134747673129426575928109259193748959977247082299921834595038895431673222856822356748300814664519340214266654750840133474511952825453016340773988505707560192725207495284742335511506685412744993922195741547711997241377590193473645916627274361999287951342968809149004198006034998165034051700036821916238835232980076436153154286827359937003447974013249886878919662639425210144154170532081945534130745148753984272700022649677419033635496399032555694522381695204596393482604811225634075329371841080624744383239710027619604635012721211519800683633819685321533608595249676649237157611352305076742706179985369775193332012835325860537211786573755581092017663617707178235489780250392926805170036987111197542776707109684904266737980882304170800442572610031285564636880832358618178821981842752046243002974932688183779869297573461617218529400297655671555096707826769627861356264856336903780507326577753262233860460755514907396675245209106049431597993329923492686794847361414418281321723505607233720949372460727684754615677638530891785109443840990481713662369937324448406864287577246939059110911796492885007421527126712213439882086018496582821237200202888207446948788227737463505372534328798186433880853918284357756849345894144714326248594330928221140353452036078356944570900986933489877028321019081454139094542132097545604934966541764693947975294723784551420672513632242602069999025968631877649990374857972723562229277680270288338148674238719108156020381159065683181478001000174569343299754834872815879573975449012927834574461972870769284580593044427466708669388315159930510380631611552168643852772369831708417672615012197265147758615020624626286103487577751358312174718668665941096674234355315434937906631528987442172041629978318497720307589563284569917666100346969175085330911708702259249979147386774748606502333548718630298504014779610424791871402780238524046562402922416789729319589017085151098304485696738576588347949534053172747034358955465248726034171430132361121291096164870984675493894482706506025702707710142482079005581413169690869518798857131775052731027542723871413008899832926081134877147077463351302446757679942381383103855346350448081766313900064178572561079236715804761581004301503464298939756396465061234277152737402070958463820476388131955839421775521797691671704298950379569647671563118598763260738801384020703658646404712420630988731832289733423120003663474728762551964512167051432949359816089783026871240762876092810315889933543614356973743729737443808022853906942171115914813299065051629999842159964327879783057657876493686157882153310771378849771766569725684276526940371546594893351648210287724313676263225824695043115905655416309081924618605603074343226753766653485760621516579163379555940261061229723596847840790064981541578164586408768249221674466803874164607943931467277327370532639816553167739067638039811083027477390099391826946515366514763194055895288115605415580213970110714904359909966258214851098922849734907720419818090601866261189067812588191552671010330044650018900211905231271758116565057502822562814568874435615116430860179556028478310714460333002886382642843678912689584327099587457761468663406698172372587058437390498267997320140395657002162302770149304369615565652775403138863821564799603233342556218891765269941513749136547879201308809149179648426230588915680627966332023113176484970709361621201093693681018944005050555648841562275062930317047721335040631893760782987898541011395202440662377690615662784604280192516857911890736467192796873053661497108780612318968758734133420235532217317794940690542849773910951604150974712757017753480074761518502673928884132818615818236857815663018487641344765757842479704162441378974368068574566555751175209965283510621215222337903818744277365819803850715078800894610979324334355906638951514182100935923850681989512825690605584114865204083843774690813349322162410573726797111397597572090067375963167201205235181618190777232002170208171375596256426334459505296972563758709310869144898932939445156198935202568241879959122338725345936341371101430062379038401818955633258724766585358131359223780724800140332816886447056775905790652230828691246733461527180176571434822414874961255791159721523187041766583095694591126979243060196824677186702865208300735597834299228754176272129458462372621490042056412909710352609327444710434729159674282714572028482959844982339417615438736035820724199700603365551523435554716299809254258516802938085834805545205146319992850089968758696894844359106005547870789944915120116606337979753623344172277377430354109478485443638678698044750494766664399578642236129297998157590375462395923920803925780563583445953387159755588715851036057231690607987872868129578232650878553916712596671462902144800047637732959563594366470503870333249775037392311777453432342573653020479274653996488851357703889050790037351708653943890240570527399554159213858612053524583480143139237602633745548339833442487418247914786500778960564024715878518349168707666070505252501858295457574941356349888337073027913706023602620906733380055736293059005243312373590429327523881230911718147680517837517587985474156239913621644734518476115812048277510377787583204048731022781405404834432089438577165079584814789417730781279784071142256733487329116940656550466635366623731156044852050085460804419105954937256066576487375536025549093133127522435010684724909844727951879617359758944346604029384080382522342039938546842247979253857181281816767691335386883732817345769835914741161381355860685231742551345172763483459346762089188449243123024896627255675195117724763203376411316314183525900200194953763553481727475444742202762056775793950975594968291934095686112504175518791594168479191511508023889469031155590343080132202180748528788191046900251099740704364992894230180294192028020898731279887994449908664616207010015338226330549771625117787480899883359186824524273917201444516875267651155301343995060021690459931448220588984391845867156501750692787859709400854858739820789784709171860519653571821026663799735714218965580378045945397848517092688461820601921946363783602501493860716398464909190251453487991027833366963013848574130946669522632437764515562689749884753032510468429732557596439120507126969982969251831600474231285769083291612547475676000814832327571021576173522536364188425873504281569181777447502837083469912915139402902393471246556740810875233119441724998177614004823253490806427359375395870469427302388731439721463304354287167767344666251958243240830839494465848280491662051625313567752479349506414455851469486451636100891634333160460206819865394514445564127892206741016427072082527638847156737076197606307002030088905251904927907330580251414938340650932819141494397380790925601724604847290202338129190690824931874588419221936690635840885092915899514529004688915276575427525514318599023236049653176404238948408647904418298217059421623936239590817170833655999421525997137421599534342711975941469153634772183047937424025069625723320093839331471226557874132574484540049721831260727779458742312127150585088563067351681812822555887911286502786577155654149058176357223252208111091752011104997552400608641852782263285778192704733992588077564538227163867800417791228256182450423489378450797288995545819581486451455031359557328735278812569390528132754079083495152383974517240077576257513583935828851102862254202794415979511693861329024391761702619234110153244074850443029775442214440319989457588616642225091258028898610080907348219305239851185801937402385035240330390470303541882705792786666060530854116982321628293886159770205934705400661099264982490929603591385998543300598098312211759603406789595300706705191439556518916811782407936176112648630707771117826780146355671674409173061615228747216574037715437022090231339638153926905763205996652830830045094656584349751630854841137515997211899270303999653721512086251074789089272733402225920957376570495830931302629491413219544339810673656922067909721251867411271068532924960114434293442197820428262921244277320714681022760374561107111737329354868278881936684179414757002648249531254057930921406980206896259206915940407913228889639999180234836901473236177776876857832293807773494112882532251442229196245470422859330901183579137522750644034275431591692777282638234770604364556488446456254196041296434600939895868744383346281044654046495665628167572804549948530752674737330365128599600249170376003888688544670128321808038387285946052947747560268695349548241559684809895996890144641678642092685017875002024686763102713232970137828541126520704799608825824328740211215961335566492115226814137468322624419070092025809543372863434805836789269236058805422082058212910985699350161234559385258420838997585065586385564330641836533872196749998645274564099688964469566835232368890521345607434705482775675550364030886908965668422437528621555178884519216621758681257632087077626158987380056388180411240246563869110623657445459212683572992197777400078681985263652528968126848980607456977454501528691979732668113757919703178559011949807065156410708446479719573995440914052849316216458467217570528573550423340796128948890583711270181228863851016638206854486974436625175837683017878762162038904068861147788249735711005670023919610849945879648563029873582389623815796921447734997063637727472062690302163972110864490029618967967500068889925733319860603227075889105109517113675239978276316270946682123708429794341403864328684605771477205717696731524632268161005410088639688122704333938150147345278448028320603878011487879032532245043151466657554692181829281314941131154500041155501472577850901770525265000379938905748292025469231500654944953987404824537728014630697975245935601192402541763952396374899105662458442138839107090676553586576136180590893667215756041931426770395041169743880821808023912433948859528548398939075468165452638718020260841136335820427942138215155870682003603362382505923326249656750959443135576678339277461628313175301371732063418259000886882200403221887678895236181088434399038740688855870147742728584646109885252893039968297896671119323583894519183635623019260254270335872369136715986488007193380123750186346286651740816109993530132276129530532300984800480781298882605008022126427019251099583879287251339006150841921947178761587843002156908608968547617879412051178055452671748451550045204150515077907502165085425803759835000599356968340922824164844026960347750562541803033994828811667654444985530245287878231490578614120425384837330662824126100185392306758939915706453907938442157970350836404214005445255609053316198741358033932595081782805408822741664107360367124921622528598126682202155661845232519632021348478519726639484269785694741824833021498511008850522432991081345098313766758111255299208469925255485064609479084866728439279818538675026411798903227329691817918964979755617922989995653360663251744096838662037311391516785909138567004402350390876663952416400876924097678957313651741357575297916852235284302009456453708124015074934112680057798134959013618005511128280374970487699918969198182894288064884124316508898976097639738105274408615137534841026656969928091853902154031672986154952370544655334451117383432090769754531480699229888529893452013929389326189124288743440161125027420220745325219155039578624600266930449668628019084215159571022279391351082630200060957882589284893689475949401668677653304106033688042226532080555304437644272251539057224934477583066734059076610781976844115821892363790651882497838548183585742915417381345597426604592019698569967670500323783799442505401176280986249839409191080109882372052386624200749731598919043582098573349673825284688940388216195773402480086296174917922373113268267285408979210636908452358673361232082371869498794919839442426093734676954995722877072656022176483220662152231709098643819957916537621327305954495263492343704716657878930322797127884047156517655311775715574533117617281163533824679030818205913127902693678645146394892711839230224383684852800407764102831636354978955077966350310979143588679648445532864555619452055030776179844755658672886142949377876213750891586954506051078405530682263024564484056578423517038438445607250008170378473846161953623273178093823082400488209014946531146497225131982834253687662328433257063552848217994287288202756707418875791083837108726842565666057472553442949647378697152108918533395238753066142931398082607251473051790348390089785878766245536298145921186508277376917187991859359351520182965006744640672418577922662174702299342122932909583102929436359701867424483019795852104923627311226491975391785942880981141448762161099047553760672938879842896506789303284775877049462058248494011668819601557934314494455691804564036489690207227209685996159161968113863075614002324504442827501961764220828280461312885833888242365617362618731060503882312217143031136427338195017147112263484476415505395915894104370898890330304428289502834106612936319649568704961556848181429209046011776195586408809908571388346123523482417691420356732995828353080081921407963687616173968896056178914324677089304294614243423505168525657551039610968352187083013668860916579853358112719142724114828719868818251692074746149834979702036782159867097251871999646624685577866046276507725981539778192257325970616294199648832201129367196327129263844848281885212912736235413087714863684616585634778998985942614726963012241136970032623636304341932058771363241229772763052488368233672948792186365854398701295170539677585234816832354462862268919674181443648581864000842783880587775741670648852121401118072940573613126731856573682866914588190859049197022698087568415702873819303253065945121672248065570959184708120201953681301666926003706289742133192124213526866496279109001032888509435090194282098816244851527811393543762642855138436174308184540964443703269859126956008581213424072787670308636935682470616047134440979381029853449392291714290014448611708586169436185214584902492892334367238753185810556504020804041405465854030047305812093174006727800312635869281253820532396253170666503083669432795286503690219321133622141675651277209912501091790776338615101095025919216884517511748597403462629519745712639929247755689883710017927091813216483337148055233705221339816365744272283433978805070659441945973681080023892502521912749863977770567721513239114748354243732008861927600061475351460649566946226569352732672257935736440864406655526136876631098097284713297816709050548688519262425892888027777032336853999696071173005400823316789626163613702865189536428260678200518871276420261499981722426769569643548275223456552449750346689065332075840800514732335249082322248474607502112163898009590593772101745620114372339972442963680104055412731910346927447927341664634857616494771715651857322087943840386319321337208113635617825974567417462960084699256663287489338600983200609132572241884092941252300219121375845895088734774477857646360756822249660425043563241257704806846105612988099598388190325104134994070429989524983124033182828408862078794997626674733768812368311350090881752201049038959698690849244555087769438630135190368240317781760197411135347728094902293529563043408715745065047211248941831218771500300851151051313242645807891937497387317830392529541380085195969823798849624595011681158714354709631338387243576061056367501997285594900345355019930041457645253027112288785638072942341999591586923918572538829857748751732231072102315514939057155804612926786569729619262425903637522643845053095571764766082023106564445668004717058031238636586949198480636270402302473173352161946018027773071090050842903933593257513495185439386605228515048298390776855324714350572112075805768063824657620467054260084670899324921891371365683542622261918318140405575472537626734820278368467426332267742489997337196737927166416473531180688985732115011712824214736858096295477718158176226870223474334735534909535294885476213964044431188212501120760047125349601845489041480642162940176512129509592492507028058270895568174122042934747423417964567344129418087663320653925145017785206372546046694597680982262228287151219445323783452389893451410743219510440135649433013963447858368574608857472684822897857821780215899308636201809371747270501499029735588099522662457837500328285631846082544102491717552153585108714238209980709573119406661069566650511560073887822352316160677156142616488022573286741941586131904762316632485654388879794322574635659805090598827570756445546521267695886521153536650735270952564549734529304989860282260511222589022335648166880837463726365416020841181094897476066076748249474739073211454488100081856335699574664015189212496611791930217896177076056979788817694668180740094165529811166885685095087774694332666544696591062265222255810174269097073710800830074807241132021805765204062354762019936777708230749837190214740646102813246429860163063058775189779467009280842294414922907828749275577427100747701556945407709491935423277500202592552670916803661331259470825988492397203662174580451982839706206112434800766956493681781541132127654050148340371329976839540190030846093731022540641256266318976373428933682275647898562062556260688196258127668878384539779278134503474615858046905682746557165358225277385343712151344844202075874312258570695169094119939620662855391708176600852461054124775497239527883756224566238092177212471161929540853655059328462736885545793512166122453793570774718662533835366393081428179906678852383034162382336860237033781526425929327490334936771597973909068017963551950029417884885353989140585989093966810436246429022231147195661306164385923076182912714441945211047240549421276318636248941502423678263290720432440072864839650969296048456034510577222052779243584897343063474726092944130566845156395338199609202191884262571174260628846977623082544308026002624633995367562521897137594800970813904283027062805799214532808842610972696496020267080693676345752276832766162591066807696017436933128225261750494935482762498337781738813050960550404278887065680433393118420964997711348116928963048311668012056074492645458253288213333518402856072964489685976115158328287301136048405627088827929649087058909832626400044864575360445205339454429029582142865804466876819623963635130352611476672091680976901313593330720204519149251181856172018285660769291281836701503567280762560635085367149826299657982191008586353442545125806904037502172789276665215191696598014166405772985982448049153349355434526491063945470205235490708793459430967826886567420125794489107633621095516045281182047018965299420764632948052844212471517847552907554012982162818499927651054469414990459347236007522798422620862364054805357755975065839079276781668680946652355595734746384454528572613808692596475872374130868836193373611329114923068985678280434112014535274557478065956725736927748344523456177854800708991209805442232604237541953140772779266871589349381228626069551541636416896489270380717819443187309289372542165927787826436283653651551018985734701859267630624188283976946956132440469739846670230682272784011128333269459732473670721869553491142687182343380640506730918568198353131843361913819406901543018217926516789945875249212359805028685322163720556613259716577387169539967560983650927196560991407334776860426352061573536686326653122256802101935663728840854557257827089946387271806186764390941126017173013296231577329441426853100987260540082226337608398933086908631883412033616408521640330959635144007117431253400624700210371804307702311721383788636671825891665290585983771899770175787367079183166823050585205154425785897707753994631050436505376259289014652568863890391305625643781952140703070809664610868853000360646707923850359327623830483858787130339223681502968365802501999299772535257306433456847846899574480009354155610686730462191139336086491581159041133978596374349419429466527843248893282832541385623484375343784231553027034789562741680640545627652784698482493266948899516323038955816506945307155811482678758364276757862824945196235598268788578125242819756075993675412703183295279299492085791485785128246823643426566351932027283244222269179002786204272278732159345956831941521490217036460955570613346908116554342710413133501119678552024128925321484316405201739813477402224799602215759020282135736870087696462242825444804083686270667331792520322164054147663605476830105539181446216410828381172450447844799116946030964353120340701775929377522915776511121950944181104670027118266521950195316638899919599532031582829205648600474184641704896747839322967140868053186224664286099560968989307199998023501428485274310913235942901278729245544969989894803676827805737811509988834592896351914267081158736186672366518151972755174972435352963528867505467452705243738480046492127526721145455847362735638385810915629712209282349024803506883048939248554510688645868678079303212069151317844454276301182000440940578690593721817221608978340265202316427270578236013424879764300196040821098699549684797426254870615991732183870274302607415805658226520423543485400553142098441757837173371053246788989654307094977189003863762115340366447991081958862444041271799468460193274006710470901987391537952234421244146281205972221810975450658960686360807176800072284874357134672408200260609626671686413434486428645626811766958126630752255484830337818237482569722778076910558010081177565305187414634849812844137375837027429647310368308838115726526255914597535330470552232484707931354565007898432459310139620402879696057332467923012429782456152165018125565484737458447227949665229379218290344746920255651217853361197403164299431734411846273636236679181947877305501779824109340146434722197519281011106573898713863112360465704376922700383519578711640722008372272198174939252078352750070285322270525272244585000471289985469050548215346408201492413817078116138973075037060208063344179042068713803063158705913060218230719033299532014087218794759823679553072760566634352474278375920477433855207774525551380370450429144852356273230951064392866749007472733535149107015621226251343270702081644217547536388981229601884648375258064241631749867218653797391206595158284974956520054656331623433833051959720218314004846347675806492182704010682106323167248559548838542322761190186979268682237406204057480146926127721841693272997606898697346306717382442863957990347972548314092066943022916732398392658736343740147762989544325242723771834959614783615879944171299792303489694559221120926190235847577947095219091662602045057597501918509588013831314083860961511282353795055941234332750234725937099729841981750267666670704403237548129500662049731866929622618895561216411137776870702753451410401781457266406186179859311533993418316134362179730163283362346548056458027680450152034175418833378657244277192482965853920625548072993332098886592051350956674783310822350173405329536580035962032150050040806355344409479971947010709244149721224664105937329781896979695151565040903886935642419916389581051187032623373558250176303344415283543256453372963840386616821350538559098728091542036616440742093264744593225062360721857441334077844355253120430124145101179774324988961227772021610175867626759621533979352085122953197225607664938750515947331275711286547843584529876760076453854139510365874460974756317012076685747828467067716559649963941541360348238858769163698486809781813324075071752351987449696059849190980862405906765329349630604521874195390880887423968928603308514825657686119122846525399651321623736833519412128444233080398453506188943834494819159684121099946536250346679028801784097974828170206201746888049008333498736569938608169143625779354658915992396333916169032743607740797404899893423877371396850287590702958229365810274412667702468434157534532883215902762125890180658404143450966865115109476352964052015735725758846884056757492272996122509468404730371271326728828221268356933407147275910240951792817289428293032909091775504662952896786047236814413679083787406885724465142112395904196199611887640370304430404097489491920864561184508967492915064281284793250407415261273493303666448797324555282740745580870394396341045091877761258271628349953965954593898855473937095508219733969667101056383973310114527506570728009245288048639174266744100191306078332333408035986604894815256135629379427426420443243189692653808994148849986199253055791156557681891404019572595480978245205324607533579044976848107509534376003298572143597152638965768553951307740858822852087083035568289042691418714118044638866859378987412795978373877332043283824583030293133960516973653654214186470486697597743134482590750259966719033822036511866786341469289451554517230919646358388820081150655737209182701616121611768119514543634284005106971404455995750914356507975537040175208746299587835143494216252212570043307219301178536573131186836321855016656112755952097966742104715485295321328256540938409656747081255396419732721124081384216976663406868140480958801767645032519557324056505771448862989033946969349560103348837433979719504371980440554027834094533088086146481451172542990150266341935712483559333206527592907862520527539866582786081127945860499397445810164286493282571451707520733190221320996194227906826903028874007323571261679001701986043477062983026569359604950054124109772253546763500509212990672880539924531908118706611341770694662697999081656501454673496132278632455657748274910860566788484776897443400158634097687824015535807327667485950073772245627425090413009447919656702094807673834532750014216777224011164757267424703201387209324482482330597481806529642136731928691293945389683307936120968402551125378977973684815420879580891669560916896246028873491174475831580329542881857221236142730710033527178521559411379036669235738506935741723159929938052266410234038135417057239655704231753641222811228197320850099910017937375351196614556923533053107888685949023364045628295599969887471881996776795538909848454075316718905194836957239306208720069198760130845833538457932882057162945053860839409757586548559167657757109374666383326089774986065986329678760161929435509837107794672448425455841222733665669654777766769872240267806039828903624752462144707722020921482687233070206076835791814201473795119691428196417696843260150290591738876899259107141629339131061640580644072403863477338619925490882632902556900985267155381234034535298870181866037789292076952340866670368943872010154441283727372766428670589281002938120351222712097944611864425206970875856558354557207713560056224191453522674744093599959146910546450492295733805969587476167533141201164228130760850494701208806859797900961022099443820453455441187264140702828521930689496963176838654924223160833180700195212408908656746615368249137707045739101822908912042216968706463243549807563733945433302890211327476722413402394544442684344136868597397439632633189745518840604359091622031197218544699758071825608806074890141059131950564234391887216305930200188120195461250658742260209641829225829151880676946443111513956495675008944876499123434350533390987807118881415854440992369180542577512135852068762807024235797432875500475482003891178050280592573074527359686963309192603769875381711947203839633262890078215297387198323591891249258745991494717868088506544607385644323676945037742853979817024285902715379219922130436888881453714476994925444171899694487559306916794796449420436941386961834095671967523151258462003280987340544514995106165703496914635891787102767612433111574906610443489978440694591800223973402528915763328744421790044487973462207074930955740980354390809111341756024970635965903490984339251831844736799098273405816218827799520522199191292902517104301776672712733176531636823623028543609802587424537032794577562152374437626254178942189250634719598508995600497727049091539711101220678055947914444940807880652488321308579852516381600553717731157633370898546603929192860447711675544109784842514732901423649473561233112651015061551352511501077150324482939494426821050415584698872552331473411368085545301585202904852593226307865246143406178507837064551365021209186478080291402985986468383340864113937031974493148556814184209832636574095903240569365876633394062545505367158557740355052238829127969063960615079965885846262948887227310502831354131774375817193343468842158908111223094868681687150683312349633896810150975476554348573717003184203690245000369791200480657089143309067306647863074378485026602852710126614186156989309196025214249750879592510670080071776746451193372817084827639932316235490994675634508119505072193461471559017982374015132010977148905534590038641768123128971702417572348253479514090042409417539554371838452108123670695408241502414267401057798059727332142413268541419829556298046895724671289921192048538253821478449315295638351883740227923199997466889151106487012930268666768491780615863169388483182756003732643903062126558672167071569774386125800478176949487467010636468628635755461794536297047919611380561018467627251550014973175047433284034141996886306846136503034160890972768060607432178505008988791014440247888626586583940230503466784976048616983552399101118537341866291967583333753365715275148796724476171346895069427395642821165649838630960701322328825928954165405621829568858081703816031631023253036402248370773952631907139075908941651255585044684406145214674743423877360969742123851705235967414645932065965649016077328688868576530942046555425386665382786235843245215930070016995553820661559189997196848552297682129471006031448697755637584108411939470902909772729575386848586841766374536065121483632651979212304238032128803680137609278012957221891462362152235168741983816800240922244979481920546370935443607424248622646051206667780927054946246014250583885356228169520836194085786043429237261198894903599893154397242540019406703836520710234931265437476892551698396161490822055094234314969423264392104260773939063429064081767878698534782030889865109215708267144534059639242908361253251056708981082431649406753263085981199982161586797538607240737452590485022219928956303679175246803436454419185686101866707100586224509791726261996901410996717673478585681293227063354804233664915613709727209708098123006337448706432399735034424038714279472022385947785796465039738802119298088729040793987959276316709257003501326238498453838810053144135239970042231533745420671155000632316670865587863455755704944209611980832300091091482769457537750430204855207938776881660466184065281770603637866395236353182972356035109878952099244099915822689939761372477645084882461131596893573402338119825770532207450616567508752840268254621123127994286061458503258758140938026460812366721396674588343160480638419421867680341421441428704710858449741691479955761356873646435884997629974659690287899713690215794381331579923667856026163729283295740827425275954308521690527980855425947989189362798082068322616809279699159310010356089720003565107634816252201977917118647785321628231486645943322049577473974328436247310046450588408214476046873002713380480176880731363187490711895571637525311521901915241196993001234227467945797228614775930547786983571319448130481297365397566127403190655859735733917370167044484318694963099944627148121677847875798940597991750171879001834865683187009710709913461751509130218335374410601069022954435188491923998481334009161789316414668021410465431191908854334119828308621345887163185229936441079440735389088102030952305497638449123103245635644214394226151383441427816407885259040060776065797729469728640959104817366733217092125299723979568451586641549448712448539237256134142214363187129033210528774681513420492844346486425780600668223297985691980111290762805580138701666635947337789652892601131162791455188514681873385433802380489495168936494359047996777008710483885884507932125493571208636527411702277912542526380699265356108779745350084812505270874546069488122225478073635352939560888284142486189769163391533985513873727346260486671252231373974906959374276348777223611240419699031591930812042842185634939459882293992231929923575854558270980974348785858936001852163132885670034789152485528941794804144327509354414061313180403702370777774979034025555630854629655532232344384270990184365918360180334636602269557722561640405427585144555978629391128963254492249626942054482067576416241218947444923908424096375124572473475507973875505105684762025436644904696186283323984121283230671256001817394125395546007032287537512833046128805944676931751264471494128270177872504621244320787369393357215271566484985055595103344560028652731026781355027617885101004928787153981471413129905019745072757932270417436256667404717196758028488736316098884694928960746456693033819411409952484361452898178539989981072111410240759795572790206959703409401800907823931071252562610543758327811770330962842529147285649165870133723576717532776423796257184070276647245107440612896228296629639257223705142939325988958160319299008741533411480244072142561240700861718816596349550452746036814236627641793042410799065573445407659872622507765514077866645966436734787411401596924899090065140186003407107522127847464660277672967038219096320203852820705063849554983137542570456217154211819781975007933681520614643043815270333119549136669450022297489805990782592767758031035049564471233586128336334994192467081866429690439565843107210445709604825674783721559678410325361847977983588014516205268674675730059720238000695478239924416766778674949170245500571678422468435416187356983157346886938016876659562820525038737412734250057586866389697819019527650852110477698672527780329172643302688157964936719235818790029059290192545082177431587907551071561511705688989465091146703693189447717009440517287874927431637012708246489778175927951500652118007274083253952523079021348561437249965357853611458935541178226950547766421747334200190587761772770642127390230144659819364285391320772117698339334643561808206985965302112540988645891225846884991429776936830871255099560883329659924483138444899002479151536331049290914884303232606717220603368771962162357085771495097068847601546764542747904799249381796734115154421142950479914336004918035908483330994433300554840366789556811384681485358577120605859652494646683679873270649906131796271786231584326608513204312649771421390446905030940882906518630035825574444584597257071915121475169958791761626585335458387547207665117479307592908037554346788015498435081148467591051786193999751754239072510201669851493384061253574150087926368388541159819025195466789335755985952055815737847923991013779479820281113605128470316932572239834762478963211720768134108244631548848595847689335901027739860727571405016624705568897151950047061284919788895703906412069131244260819932706150595477310486166559425140812373137287591275665241268869941468395219288264540621473372857423877136250165933764026148265855213167916065060367955115986764253765761935642736846329517458641844334776490640063115080927136496857304143290366676362515410086823144959463806448244606220527631812435963617193655806115909129504642921141480992749535010077557083380190716216592882345872879131774156712902942980187632766294329063922194771460510084095654959743603236225447212894452223804917903203584030634454082589720497958925392570207663730023660310647487136926203978108998279026021134079334949175160645063586861190679613513002830996688356329860095207245561038196275650759227114683978488837210983578027736138051452670458747289913466478508584116485185627993885865400543657287236511847213361598510825625897415003037184645191276727380210442609578434862892983032945436970355004068735089417625241470522837984746644444776094833817728636462989880555410971330690242702222271119472178412838022579832763281757007823929720656500807163897574756623736905243853884766232036457845732744715166753508707482630122316625441321131061732833265532438047513037509670296514785437961148482213493220340555085322252619727392940419580769558004796888996036321470321135649997302309063114250046005465934292210747668467552043563190679583893185306462912913535821681140513431635199175935608454840765558805362906411607153218620749964835640794046953232681468439559508349022515218039071383023260257488701013056657907299020591505827214533827186656685673480143340200447389250052244553521721451926787760928260381041476145524475564892729908271356555528307872244433899187789528759445214351412360802637983829785185207862577010080961804354620701499906379924072284110894119579768505826882952223236180522001323269973324567964456952175727362329527818604619807871375685965614857897486819970564840361257860143405847055329603945639769619044893493093158533630180415130371902203053079865602913386929173695253066870831828622132936182844858039033676834462886502774156205089885428963242424167670828548289828543824915121959315333055753682854368236768754981368900553242769923868210563246282630938231302130062572492891065239158687896918735638066347848927305817918486485318937984186670219171729166487207557331150530691085679430949414808275732801552293984245353921152022123815762633692675650748560967694748668315311533305703768164548962463347785526364334497003279994863975772805926821348535340182652331412736056470388124734047755769207552400794659615826754174276532938008440717681523021799619507454116810912996065553258459089517325156914732686820274263227503908430651796796059715531654185302030236107050776488569642066107637914725058914548314334085831685756326569858712970950599044726514348297587597551013462643264673895642856665939702019639367622506024593950432237866694485977621559009457159258473347333103698685769517219637328866337757209846342300669589901517273139433330174474204064585816429584828501694474692309199819101185409462215621730767304896594263771155041206096962228763217040018811022282007647636289604585954799683006380617404916526783320271051617603883002927547815291024087515920601454263061121631714269174816565905211427542956055591730623934934453972394275168763790456497798500869442001714193567825707662782336178255386325092670884907955788364618218347660523374672332191744251206698087653271921884345671394109204725008736842708284161912122244072253532882224385747969289428427653696968137485600616024027208933847566091148079720815843248854492078815711498470287711280861902389755468834381405240170891368087090781741781757260807330730005209026686165544487497272204559963530082198727956657982094273768980767739322039163453149079164415099322036494587773361390858758981736159988114455951777472493372309979595793018442283050135813257892433558719399990096173840592136933093464155864464382830168297658851698385277319413398223339753211284089742025301881180829887434903594028064158529680365799852359253805336792138658435170344365552210704152476038646546491552047014888014332329613808433209163769830342904032977983216778452449322718714043060368911484666349350254889177413704214268776551924482250172045369309532946896200501034754217207749166008973408107733425811453462224158447620027371231472693036513127868920224430514591241254567161719665622718940446888653872540826959572207475282184915271092791161790400579888213314621749550614703380252234763956286532232111181192646596804022898914657102572327563912026880750452386351671717451413097434277745265603697873272457842773052517135279096531757040546865800211885697391039551894748586534958703508900967462895960293621636045585623748223508648727846550912639101083439561752637679870946858487419317567891377569938227540486479209376585662545783507730740146014434111542915843238889500973854777675293000619610142804515763715963687961414488217972759020208238282467767680240681880147488432817149632163839666496149303038167840024705745207226289318370900168676608940531180183970873973591713620430113755346016872438288977340004968991679250880349909114909352931895776555003163467948816632906304466844328454053194907158146208211428708293894018170937196536379926206025522328843637573663586533910577009522659642186372076153132838993275335706918665062134276727620051433340874306160296857616508498397083599438871994529988114089363522946579856258636366370321227993707752421836445869441070328885234643114050775562950378429500114620114876376514692956819953348099809638769614123273229382506841004111580243269432685744746334248060707082319157868965247250870719287968666282465867743512477777091654747827989244430048047153983404728830026782135437010721698830543079639764113920428024954029412701897942879127258446160725313882119269030825184129746555727946746312367514508965167307673407368587852630613973647729630826905632163428029866225072223316769054260694217155988383852474148295648113167634506379395361159813526301883121770669083634588832648344447647201285113193314852924944062125038298964800168826079085726999187480175962878872158895358892657822825897689732854389795331384306781509822532611240421486813197173860547843097565581855801215967996486829208726318206461015805712044042266361852369260692730557736487766121297392918709208842818052569945461931568721243184593489790581292229333970201384538236101011116165543558445135951305695431069928539663827419162310690572414828516422472059674287148169931103571866285053113871128397173174797029272987353657797432273761227487578739439033215567045440297527634677470456981288476021031171024260927710480380535969998202733181455637208755892235147004556850073083255193235705130221670931885685672066653577485731980639266680056924713872673080910019669162037555196128435045717374551509282425895768667378125218784772309372803471496229788265509232647997751264660535964240712687004390316143140336460568748840201421400194154786297429330785532638494279890325389067938043284265016596342950254020361246127321004610113684140805672389206029112881656909531099965780773842902161843154442038272316662470940086090934799528900536166254091041213840909764397635766863012811915693352230071933131179872718129844628348673979948702390195035486178607268294468894677208595585308769794053543727186757790945683887517174663176521909397739159015103022983023445147408504629491401077274983332135196761040404728888989399692881175230127625135394187258839831504773895833666139102336642988078881115792254223167995508997610399478418431713704217017633615570406965880271057945746398334088774823504503869637214631410575861742018060691304292043044603402982082219520212924105789201256696765861305304086631497359111005252580052740058824507820554038592583298606079147253229323549167205881913838714543768337049529503122076501637523850263669108027192189944432664443653434361635842777959097733586410355571828751406025167841524830381014569741099132777643879427899093396903662389961748936042193363429358698923353145970202403970640093370526565654612056156836721253648977982657720798262378896636620776950002598438363568411505794971175928728240439669802205826853354221042019660495233407365651832323453485734102543007847224053125393169989083276589572472928236117477904317912581721483337772400308271973141156114569474366722259555292945908266573381173195437920347798991463014947170650841003485986953177158019694209163320538000975615559966063580706045241420069798873736745464894970717775771255620740755946397228338870674007536885780611186086657138461698698351864955075703470731912392901300311747420116380452168729092242944335783751561432026029456548485699887780237355301209679826014773586790161865835563463443871130436295703797780426385636810434987899733351192424603014921840594256770341546133310837333383182888977894738684401153148582399822379221010246505774988527847562124164280732606160446387644795734054917259235965464691360808660079439764356261007717385873910372222735313769996655962961120253405483323774094481770873215388189318113996918576841919854644627313900817231820250368539357345855948608541591891820275544260829176031312638072898384147518526181004848756310869078318733432796554991070699411412245506020301337259388832762536643005748495423085819815048200480026645641605453378554247570998331042003482432109636566395302152137054308279314521184338390768869958907550520850573395421908488384188804795684820670449795577944745299974174118120373548781556386102561782806207537624111709644766885284720697968773847179023257463625198423633406286146076579701800194345508653205203619133545517254164287976504657385845954453407585518852275983369098274263326116193684487024417654231846377748955189464731340654191074311669222589520328963242167705860697784621239691792657746032583015197294598005087612892707211704692969607702755593392505920973329390643330236749500958760119529256052876565253913067531059408138821400311658653062537997681714739914328795785913057248708735835074525448744759657170685594697009386295091368856083091748453664031231565172782192402468058733493689037246079876199982853249806797146517097719222951977630315575492012348153761222388790400677040652030588957161993308619811441694652394128587515210669898646028656370567997681472889307083751705689196811944484518499426544132230355316007537517098287031962255868854757910765360925234837169908954797027598704144919319951661912581937508431585295482352502233041159018383494827128210874012617977663055522157171174458521115313508665383449005352278198832884265091246676802069929261893907863771880681295147735542320759351981833548290670643468891632730639878012969826991414852934791520299664399696169687578533939300129549170801546238448037988294799296383064387006785565161489721345860282594190585275942440253135052548297524997195857424086965928823208344283342953204820228225564606255455788818253886373446530166602550586473874898351375608558636581559673823338045079455118592763766258203826561382306737896502236318701237235313620915892563559885643606920160883788841911684017766974405438920974685013637989895264230114687488390311777929143578654497453659313908900510091146496819030459527441691309619004395182776816860190905960227159575325581867525322117691223093644287366609077493471726051056128738989740595821453266448821469723246669448379643831611180512262968111397650930104385680954956322362543177110310892128346855446840639462745634839814206497634137138329365691989834146061469934890512664292463599869143235825116526097307526118639420855249140105744086356461760643287519800226015296730520345683177980835327080030116469371009457101485398290104087558039471623015260755934359485054867173377226183383197231324288787430111368656873227626897207752951299861518810779058232402667559886947097002612976534588952587623438948009610630346735429220214591538020404019046027206772075350711911412655356341886098827381983561301216761045643293142637594067093306454341676534200354621212582455129545165625793435921524333280317219432670433232888003620214250525493062993806081255239113577054592376865196705501661296943049506665467808250185079394185381560317401241179994319758962999550562482730650672460054441336657823607186694245092199532779602404895703510092304339656681964494431666817616835779211680515220102374957174243710508297122318379939506042766345541732619742229135610479011098628860323337107325022743265384909768321135221720760629876472945461184292085149157103487559688859755411819324357781132164998530273304973082429430515673712012964022190734208067235699138427814982459431099320795152966117376521772641853144272117045282996762004579167734911402299714291942602201476363591376969561792660272351917507336884865259744404068465404002425643253319149308375096245690354609879438284727242549974618006420277199380460610770465275720436323462855883964414999752815506894488831406815254152755691266147227605582626432897144094757381398121866980894675585695794435774756094699334611045303475978105703790763033920672071327915957116610708276030673404525218075978966306028532227911004673687272575559287036555812411575057498224220183171544510668440112529310144211368509181891500095660920880990801718946589895868536400465152397761367063924798018137458101611381894964674066151514217079823127220913712951271342597170217554233084635900230855321784192077284615469638986150515746737110540216584500639317797063496002226713831802283030719447027479346395636025083364470107304351060003586102047813046319479492437190922049449733663411261627388267734693529058048669285454498717142736207160656571927885657245576508384065313029309703908718760451179464935326533568692780824909636829206334696760898180424592385785883349536088801585736816026565580595854784985038856742070812766121786465334357396968602391132072165002459518363557980702096238479720312032940694392322613007846915219295327228180902370961119177604092178550338621421044668094624102888858524981391089516065269409421874710298553846790454831823435599011751920469628020319449648008723315432250417279519922143014538925289912590045561045585254352579546904492459092081886029277380786164611016744853252595646467732375194684125485751429602552284124389836792702049107124873525776770976516243079938471250650658940886910837304249314454966868130082714466649704572308208516079652549932531288396465615800400823088056056383656777874303519371932366729989963048242183938242485872954365740409311964031601610373196579482043752310833390756935742613981457204168586977431243528449388254494040509905824213258334976793008093629193950543564261862584426382813682147195465497414576714929375078987661157634812788396270294225196373785221141273313015866341360042723822240679813931448829390779236926280509603953742706301718437197635746513343038599768950894118639181697474775963856599364751445657089491781223160490380601291032052689226783584800765598892571310841856539473198667499305522323211006458843865125087195597206822011874920809810297992127691523731985954655992218300377632030498204672129466358015085926444437856138085775939981254153773114229784145192799856208321463784134523769519401268413284450524321790291947165176426132606546752447341679154411893419803750545519708093466542835012481452462251423208605607558791712117766074731339976878315526734795953384469983067098351058829611481220146630085199794378065437629723781078589945599846804149970111222132452647326912325108904502482326460028368718131592874745787979703895984830149061348837260064235472714438850778787955642448684933175044355724613113773153891753775372609726759634132138370566833880514214408173040577467011084842148314314075605246324377933100015582727882232136796937051588759716348754638139384847047668407046684862911272787850144257607009167476811478762845534723557808208384562703059379896419598772059624458256550258227508632093405616188110543619487338688821802554679053692191891605415464723021295582497836991105461782973714989755286636327637033374701835814124174824743931163395099134672606407177034792147353298797303787389208644054968247611534038953267024284773199514611459358260046360567440460554806725935478602218500679167051498734300138839237048096899476194806377188266255880276446414581448220566433794042769008974642544769633348036807109241052159209442613254364462476384216491438961836584695031782776138196018648948273788870014007382314080412748360373649971558952925016147773989722205024144111341353182215181088988187405968431500359535244903814091964827100737516737641152497448878015410959290614340411682153794202491988156668580460778355394748715005448201836413425125876248313194141253825429070027838875394473554058928679810557627019079907069358219234293567965945678459497151387582425154104892479576395822908834645750758328170768391486402704641309084602718568763272381354340442253224335281038148992350499881906862955467540321093284956039422108973053666119556809937550050805396128456987245566204812590909972135843748479702720435405584745041831606025014094227286179005430675759985129205386094330207936828202289958167942394566784733375074662467699825551412286672974364161555386391129650860078209606240273540741382571779367647774520536186624759715802074024668227252475097925505833283525518134426960873343417311029355055065412178462290539036841529428912074796032420831621300057068501490052738399961285713402239828607576236425576219600976985392006766751338121478960736128342714408579559682031263081356247380204961910065223422974261073501391406914599387445706820473484949894287156257068549452085243165398671048688557433277582628348749919826726426828977069409823994824226378429868437376697541103776241492434231529163470157130824660671380433638408240614607012940437188195026301298600374247419198901817469853658869362852132099357323037063836986577953030370779716605799301499171312936496935794766333350677500724142718128245906704394676401517911208479709962614134800114626921653518755679385047654558931317458845453420301813719479048879087666594728161395131608544562091068378894545206213690506569871882146217252453283846766619651473428464432941592863782915457975194097147373662233836057302120557451608294212845098042946471299819353181271031667634635493865145475482459207577825941519270582483639300089479281217333618989716616071362214017536334596080731332281462645176515495907636395968785778785079260043714113191142153143660121451251094404792338102770392265255361202722237872210639087392913891210650867543608950813773695778032563711623680957265415058232979860077729239157726665622846591036702446331230303435559507406520088887333438793881319161564985275426712015020707963446913821415170338697601024606474875939763386551997856472108866391817433840932649691955761194513116766822755050824815288908929625842595629165058357020413678704051780679121127371863104284879524598968434642557962393362882198742846446019045735497664150927150794886792364523169916433734095683521094105592852026555864850247602859660580823197679140401641826766925078141981929370972488680817107265540127784718531401338975406562732643334255150678237897698785768448327762848698978375256726139079128422981673232431716267657384055742470242138925657203724715357098329016573367216484960718402928919376210817213150227634874143424260936465631202457287867962616525706947034643565814414233015018594726773004626397014478900973785747098481978394765736273857727915457425892912812714650951381012093711467543128863693967991640365643712204306275055947410241049916332241783140649853870299144246764953616024782690305056085381126074478690569161994543959646379308134423762582042199189430632883043806395487379780340766865922326505487656634260193497900097897641236303433951472269364881306395259666062095606943566614961318647504222906262864759525856840997902481289986269043393111011625328094730456415753594004096701479239438794229762416916749330271547819351415063378890375127174738532184868560794207375701339625677917288661278970207283945943252507246986549082848791613925813648857135784627012244999112096112285810736675695438470089075959481119591070726580764083034896532408909303130268024116454537265279817167552200516558159086643233783713208292894790457663913246546596795101098855850709966840632690232527395168389711108822423896944367192129983553979267243296513001605603569141390715834056491998166643128740171343147296092972128845405115840687914594129268021475358789613771350781987244428381800065664168474586134107601283235805218179298411240900326934585678044582190898216662444016004080131421415629777005363308923097189155084529093715342057632759697519722194545986909981789250719245120700730029877034411345899574373298022873239865204046486663298151682033270971430023992086880259939940554020162129977094882932081702951143302868831308627437240128161882115830602421440528481451848849358978886488537885636765814142552852118065592900421862591781600918891272307288469243103632089015662912434302825172901737231782890409401668203682106969199315739209115492310118385507848178011219507099774238163922184286059762227999541132567461079775801850453421431867686439916928905607077556154632007662914665616780659642334312279912517403894809386718601246439502804195750442963567624875107167777009355507685527113408948645753593061653439810413759955473960081679807766068503540171144436869393354548620430385600805969776523110259189827484068541366826158519000919417461043120873836903795009289815624749439265030481752578678932413515187067659785871307301653572627645272591617800015502450891019986780920982077233493001532606846629632358594874778514068515976494523995524909238059129545724551002530170900528444422474659014483982077580557414748653072026034851099277837005895130010145615957293904707237955080132282604102698162940163937493060442140038729932129324667772342198458685337661260766563870331897707962112827642609917909101482867046045293129360685179346497887178343293114047071684451940690115409133822970270529197054278309684437179720502598271146199511960823105103713304688949059331019527444052848336995467382180084008797691834572602437553988309582857065689249439268995078373448149618133856527183362620273513636767727050677633703748693732876848590392016115420563381783707751548765274312142010377766383114197378808563423784049324594817651847364703697290843025564892390074204305150307666289085987214777621528492849885611354515447238781673302159409360084173445448103607507566795083129446676359971800854144839849576104110173783461574618720291647095443764692778017454381576715653246305657128203502516688845556309917071466048047580213744388284423673925222712849288297180199126279924435105517626007270177913600172158324331471231536957625304367810524328129450902880928542263209798518127786386631325477464880181103321903408663216885922946316445435995297733614449134037536839595313265179352636708347802480361733060878507935841998131631892253554190308236440008892628219642160569033802012005807862405460389651229601184180143400531849457340479790467365080372593702662793519442743058702060907832748147744132376205450771634794545865011358143664347152111196311632691960278476040538534411283049735173604859415323920651968785979627735945854065462886137350445040588485988406913346851094835244140193093503610136838512982025799061606984324874903798498748767396136468395927419991140271522835893551699189252289033721118328719241883864964608160204665648810417898605044053592971013477454439166847069315213275124661937687563096295607455674957035677816324257820647429598358693420191051940778406269190986451706122226264955569788236032031314257400521898280565974313657320202311022167883462360649381503897012386071473621456875992763471830291542233981269555613781136457111230606659575505802530689090311625929596520257107576201295649497743642457498700605091765793355689504121386659235718015280898333077128582420987078510055574757442540744058674513499189447145643879959747296108079998823560348496280322716715017565741376621660624511392192390573091357931288874687819482009848713043352904285537973686302926074381773286405116736659692618797705584396471107995262181473655916706069830614524308628653561656598075493797916291452680655456134945678013017395459156261007871306119693075410706494161652342897086424049397414295529838656373674513997029922031782374910973624032598811353114067525134809546344522766891976040153519261856431778419989401708340262187821148849982656499880307877057453006733358842227471090502132180307442991516235930844569323341098788225456622133953872370212575638654741570583645778792299392142894602704093249165746044463677875072079852925675617985945574857593363702690150694651544262616039276888885432187998478875636812460542443446915864447848345796609388335195405337087834068336798424150507672725594207000753223628903281387639233589705004037900410729723251851359129797560657709613593426818832996596313112531976958042514126937233255679103696966288532011095661764600889598445794690079243235144649392585661566227073619335247094524192288399055478692584138077484080846270776895566473434671298494534603036662843077269143726382717299593378812771634314357039093616145711275473976037056745766738911128788253633284000753640150343400849943769371237318276348049415027742984661654458638147122824567189370113437317983433817396307076454214727605163244794631337515739461425734101601462653676438769315976567814850830413793473984026098810430853792740483539128759323861057065088131660070540036275992534316586767400469506214229309829519315964082565524901348605742260770562542660293061953986571575101690072315730702931376365320251636371475004370236194342402582066572792805670155305314935112920662722696410749416709396071362960000910103864140763285084960075078325609475488490742021709197093087341071059051521302474159825807483766577361837911290611688833151476054208378917055069256451375602717061620313526202824039730613555652468870403904796303402700613048858598630770984427446541714588287894551724245732956098452991174972952977328115505110340120069186458121995964622911535063117938007467413513309197207566973825068717283808380838737987175872195129194651983558964521864769437259842345384253028263444635248315580678073748819560680056747992121994508581092352220561558943542125510070433767698533447860008987231274992714023446610444253072163105995215477759265984131178624483014775671845268586443045062883252644909656890743966846487963170716131936400414993961990620952345452130374752849352303848839515329162400359384624031690401270182664135930081681905022295173793871152525957357104240706466847554457366108503514525744447917698547428589574149817550800307673834816189743807318379310760508652200094980680145030752322863784022640271538112130088317223209610837167044367027896350176796159933561334789446688842462222012409006322478583465198008588402037264226654826483421930336661555410997762894725713136009326452886283448151741120783224596591052354847376302719826515910933480124654876069392044313167992303765117432863764881254742131668237066452462052956311534435635451807225920088861875480560511495425053949126560210135185657902812986457814284607352586924149458100532062575550914283360115069578806016823191788605697959335411509196781602308375799366088944784902777366012882455980413299267473430563940140145226080132630920811021196439063444902687286560816882550486221480007905009747920073871721544301840898015192273197643207925877543659145921039422185083160051783643187947599517996268648418023691227643998588978487503251450812022760167453704170027917316732736255589300452705381803881316490490461405508067949061972412413532124745701613601266834514066104348736737731595245868467972794056913462949627007253573159083634375459037801394998162776943609329649558013466913755166648655279900523480025484037046097209252823434686579902184528136710941792043354601537773177834308925836363939690758135267674128836189166280276579381035488029258029118733665703831248780842620713456592233639079943389391307327342034721534607161370006670670013059639567291298780395802481067159462903969109600816071923988080872849927872876772229144207450125724841988198142081735739906474601307683729413503268864062183149960383129444515223896042370092301763899964900225833549602633935223273326107960193487900049324453709164762257297870893944293947068743311295065883967769625891345269981082504864605504572349600054088554654302179829388249426142053281606119831035719277691834896909907326323775067414681780739594538446291746911654289890893520414102366714590782005608838476463980709929942409953209870186831004460096380111311820463616272165552779634223434139735069545016274321855469431474774171137380958808101808576812230911337625135956283605635113352227002741465723715716766589943631112123849449988297247085093018311572536987828758991932771451230713113902869419397567940196612324697149891669182157286477605131593148757742317573273878353120811828996744112506357294515215773819501837678519857616286840420403086277661653560769540592527585780359987741258567200796158396009166265663508427544258336241326197973619018073619533824715834784003227293916275777700654842650827620850730141129412152591258006098984295461883387598751958519347216932027817992838105507997058139089270169075823113619964875379512178315797141436839984544701018649700893990621081070031564646056321158291557832037801046925441671990161531869141784991983001686257403472109700274060509207790412376388313751731104952540210208771945895940888397483846958564474304725243645878202395550367671933239494873268237863111223690129663165820876462240263550779443304285913217931781100888315281984599253791762720145076061394652190029876411839153934001666678155896991964876694576321202507292588436050168481594964191614388895870199907283235736002316975208714666067158099362835154290809253251261907450249683835774769339694340065774763257697486354929195606856643491534902339137849492324626111417928862584024997824153062282379558298126934696980056665416903739851824514437789092887182726187706755705316718773570998842158237445343993307845918517601041914303375043795683804690125150060919212422252051368820075246218146071615078013828099049884122792143173564120053298877590966175882554365217588593756923840280578274643379997365448239930946435241601861260521668641506290279562447381213840272415046325497520413511485953029726546910964321514302223896570834248868729211994568273829624727781683746642751217915208628892443101462978627214407447766369649187941120118403819284625385310907217771484317867430462868723038957894384950122438709425023337412246417025832693610038378436101742199551673546219593641180872943401282291063405680227751015327648828980287168541081427592430866146963016143090262847570427263452968603035082390118223767416258495574658147319604407390982814322032740831026879795430022440365167477231759514252319915375290246212518855005467554218076624631276958854721276117406847012467179771273154325506481434347033761902491191859498146574579289902051335448363252578696171465801114790023700021064960336119436330808178888612405718091043504180242280119703712067995463740502577176296547934013082822315340804521496916036844226342623922770605779531563830016557027919226341462068908890908828652894180448000684804131953235861006892851467767698069734637814305580756009870976896899060733082024573147511694097490147824715123750010222829121467148077761936114640738903516023408209787226816700168608939600246733781229709301035254192742787627129432733924338112801330722641035644407188258963085671604371557273972494302606945339290180209713568676533629308862651452388205059611249825913271591462944505914971364860308271245845880580593321839542654939906273440236178603579747212564706635986524588983022827755654800988571668337374272516104595754109384622635068781101699336423943035136891890773749204329010648365304555089274003439140741389575915039883825405213849832873369995255359420539684944647171937907853237189138998514498980630873740093600237987371283403650329171435808414746665487489976677684927640875884346799978909667157188183447696142691280000971255115678853437363778329719900624920569616110504695859376395907046912242586624501104381976030730225358640574639969115738970248565723004485113291663232474263138029094279028392699539713437623741165549375342968522354080584856479174394413821845482152171703374466315876252885134365174747147325193505692717279581536905120921909407643631140783993436129377915564716212246821046949810807202632183249949283441424393769850545710508068813161950244298710303267494538619212150244418453433966267787854095499760644581349941861909929057958339693973948963352074457748985097486553791135721307583873760274592312430320147533176609505198324113352920721243071295727887458950787289199314360101276605934428178987236065726760940337291825625965243805181457780102695197128655513504523467534110974307627560705333492510988782900534040611984738325466897134125481374238842942624346845178462271656983245195094558094508548328078528040525188048087293485830611531432509782784632139120429967783591523092953510950033584459039159358036431819906108876069084889981664527864176796759983446000547303559339493429782765796205153293615269172112840325494771251070336572722428898679096107645562548584641413172110525981640850011068843486640337055940279023781794353337905130512710017839078208561747969870562681068218828113831979464508538141224776521776392407532318825755199001067572431974546494647505316523714115800995555668194432135709513938009781757789815585739751250457947907495696496531147676320404650332732476739192064170648647008541780923862785546286195821710105664999795415001820455682430510150646433706531979929992688863301013416086114439556455156030025934610782409948116338896162159320102369478988368401043447764145229243919041270762313447963589897890964353716724079083525399537169515409349798868614385815035948265822907280845303264165402692381001332595412424501401180193128106197182556800850488766069900541023656245994441740828544632236271484646723008331959913326705665271963705568902165701246428107484397074495873206789763428561075305294758006715771163146373026193290969800465365060278813879932339673163442554148331395867104706146496693470119349909193479323153581557297609159575550348686111778470370141206059427996574574122366825850777586681261310232526954009060899964881912727007325304048658642382828827378322323300619116884522458944674049828660003421789872300375876884354488413001830849235797888863053972779697039355127123503949164064162402559639667832184138568332643174350395540813974205711514751708127991957298919921420217159053666751565829383577253978857643800576658584872284696755815633135650185218796347097178599053992638972214623360672363293567093155372980881821116908480618896653210686200019658940589796148382575613512215857293295045173509157187547216188265045831610294752872654888237106705466512005439561957416373232460698395229987239089673403127706509220277608056150818038486133839820018208667846572188272534899143346222442323521824122446924221435836903265404303576157502104099291931960821448241859332600369130492428074419648332246127503277819570540141051966095248385674985026388880960009153949100538744074351591357378470147054823119806707888839741528564721138237772512390217082177465153620042670628006651053992293218082050283028667325419870894505763877461646238577276563928411671180212545649626827452409220102351662898579738793398205955083830419659827263951292262792833235257543041267685174461486057111077578494354135486722478047709456304969371975781649593275369231031631848089701638376815398188816164479142204538268696574362128647219382586815974351045974559339099613357648494734412110155675110248865884457939817008517057572341255927373892913991333146852999961636086358013454195700343755234426720241578480087726046425357794867553039611221018394556931630383434266476829665588152905752499967080027170975897321018503032384086785916606585254715188173430893391487818982396441446485717030877007760598286220874990491334108297132035294890314199573414695636467486779349845654373868876639593283873362546964243313616001380902753193851751450088549436385077161286903599984974615098004477036175290928801667293101129008470207309227370566288676110324342647950823825702329216506144166490596906890285882941388184771675826835158443704852252065340183438816649497025448615395092532780652224766351529502640125734684665856999228809644855800274912510170445211582875257238463204401321336174967728732246024668835229656735493518614453554736438342290163853122903149201713375999295190380848821159374843465353159336479128185364504267367114773804047444104396938857430575037974356028071528429221728305048218287330078324111437197625563569732648450532317937131096412268260733064806028423257428240413153453129657390599458997604669054364931665105699845360713620250746347300267847114909980558081862135953811176679160121398806501340362179984272650457591859585435794251869369550852727855686884712239174571411467684893904836008172848726740313202796565638546966570139435418019092973117719974423122619583324596712940668531070722073216029438301549373409443392108889339820520054745684346703888269137790419653292268736731417870044577018204892290490930833452356194814865993888865265913589634845073982949033482426221862688923890978701609225987771554428374478906425286102536055238107983465109963846320907649110756845633886420377635129736753892703924158081385105344576810185165614785540452479084147448098553954391040494404886633743123689333816847073181940677669718368404871367689155396968172866919821564594421919263358190078273883780084430628758432248786805831489450096757164057626343322469556021163829919178911838904708336408599338328874958253163901628743634125662546515581439997139813941404552636661401243380512395849032576397496354962064783589823990922280231897687310722287760906878847206465034831647302684696715655589634065150332008573864682190665294628200662828653922684786271460415902784324954794224688533263959682179757441469566386095365482339864107926196302946503499979997621486391366233245145977282117421589308797972740267309745514964374748310748926395838784607319729889272485679408059997640060356100915836885736204245427759361252751885107032737806770632899309227170432660289501232641633522057649152918226469659202431135200326139599083386078174820156889805024383552169504674666534345990756396207520276785172876011272235911506122682470938402226061070068040268838092858059850080766393728384571961752272097990626906275551298744208050829478692758861542853633998883645661014922852528805336741561398377229187758544570381226953046157036929662047008116660776554234686872938064446799995223019756791584297009407447496038894878580929878379190276272594866699341718239279455983930714233723872477318308050668117770224925904148428441888082000608038250020753052443321005000249888821475648540668450752615799779501178415715784428584438500962123690668076572100842620702271223817230601684167040511729652181571136244930836129615884888500913942614211313474591006234318007269162288650206030178080367659764833851962548799775921073107409643525058406890786907611887045649264591297916678420298545607503853656450919219848074527892167385551346447370239043482785113588505873322624515744420456625415202339202663584914138979529365345904530165300698864069533803119702932005629638072304642563701090497014220993407652796410336900342052137470042334375763342258670131457322978814777971274288591715140119378815016383466201389530279983604705500428097469931197792037083346395845325808531386819822912886999977139596291563316652999320461781664243448189291106223316744946340970926392876085617105445740129436346692244220921119022107979422326104988655316448574098022288516681317929009672299611925057400420468719367654637689351525856590459612687790195442988552833620308562737982544754701644154199288889542828778826395335644026591932137804713993068233657174019566225367801476346378119911544694286307188102178561670354419817979070622896622585322962501570173596903514646898069384997553769649418393532986381551877304122762318653197892590271013719151148044458010356601085486942589198941878838667038680942227627710638140506044647187887576170300007661295791622870629588345734636034818174919553688933898284113202082993862925987217561824615903988708416610794020406415122132994839153371404830453187710577481116674488118052468726430575483139751912754483481232172908472555370605563518022806794705525366839129290391921905057499726568793631590459837170943282466904839636618638884109975919546578036395059311767385962180575132769623802416723498321015439172200149397584622769657462630878687384128804949940178706298554988670074582248266723951860503148406458155940631426648887134829262989039329423132961837482579852077938554545248244811762764040574467439900901506736794687147242528402253316124147148716491153028353644915950445070815644290306864521547990275949718616418034506320633429442653496731708184167839609818363384573319445693734032824362379400130499777612595324699098674260245213936784625147617545610155558681855379220203443022354973013766841297536558430087661291930895254045948239492868347751171444782707708813126840740137950010209777986801825778889280824207600701934630959670183204877604940641888609535825950614560609037506678995480785120891136227334669227864311195095484165456239552817101257204405373425380806532236034362061644444880332105143051376693822862290390551628276590763671407092184764521423647384981779335196557614937594617750810100579500821611422945120405669454118029096757008849318009701038511145893650091471696242796697826833574086452003012890721322577357948084924322406704853180230505064870784962741764943392101883138552945743128962797673464546404389452290437155625639549724557123402324021486803475977188575686975256095029689004135255701940136037059536885270988642510674387119455536372999221055849087731807503578326053857955393274256760728888664026526671929430973246127899815323189639695016362011210413170199821145925826918321489094946666183562810612858056785503622054559020607549575160626962971396446989183468500046911150373218347706636050150107528548509857093677580212943248608553560916558670346086781640078930809336550558761523835150563574468125949449950965635540982720541543534853573501764812334633412677007036937895506990670858161924882992198703055738378747681509940654528285817063755906456750156105157376875628056555839124081086871817609791227910311832853588737595383782429444715321978830628477036825525692041779871061597403985696333997894092182526183552229613114647163404304797920220025461431936157714436754144030985530217172557478627894568128316680844236157443835104281427972262832859924283380854270093487492734516043502282648223207033217657200394940427997613189758425852069294843059138712934395297380946379022303759188528062670889217327552492210087285720473548596675985192639806996603370798747371898840145611626547067942539548357524035862505354274461830637941227613639357683191280562384303468054203069631688745864510486633317610244713069643709629200011341368470907672222941295411856140374815573953101756620083107888126629419145083648316969578988155722807574728937821931434043025819855207306561463921333801699409473794981115029147516321154545360519551248415048565310531180859404911581580964486924321768396763132059268532879663532756869243800935153852827323829330831807038706130083639954010998345681269531056655967805923070247732668121003637590232906549452777417191193512302633360731673636463474704824624285780859351791510845719664678917036752493852804390396907978084040587206783513376559801856884599205916145414521402700556903242889001377426567814604423801036555076798146765450073306321805154613329094746339185604564809006429007933889024147300798760768848422481477491239668495290553111602819868630606621649671727427048929125100659299009986495361669910612267993237254066908527037275021668194143620853610047477426488603224094206526766622736883478081733111932719713632995977784848139638428291621930215165587734862379646913171624726579964222322450129152346206673607493209672523860575222988384434764522931006913365094662356703622853929593116204672050597453603877097264797280558017409940497478632570078961973814414842406008138674443966207905015854444896069535262923914526167902408990291734434157079136885561748463061972948370363040317147422618779231991400937881043939408200215366565168847776685805290863968984262791199240318770423607817648173946388774936725465813726715143328504892408118254423477538774598604219984929534856650999722790771852793354730815578504713130390461595278809016447049933276219234014505457701767374766590965092401128657433974111663671479745285425847052748731809692213615517672668386131406869468391491904944722156892069124021005809790668064972257785126507025314100499549733836413435235398910164057741992951537061896658987646936356890076540490622670022504533092004406268753546104584264256182724781024172405900632008308095973962995325275999593982926589489460916986822141385116360795712021690073241860670869103841810974396365480819340007047354865256453422860475465816744397972380332655181818326696456383687376025075582028545164251496384117861231420627406964205450764925465390107060361285384957685860213611791720109147717893778575721928551851487362066539095418205844416291280990344573224128339064113563141798136055848414408627045342321935804937718589877113729909112796479855313158608465561847271614440940209792462431200754779766899142141061805304028802743044499022414100959572623349758890630382516533832561670465356027418189732258400893589327150390965953008342217979413333306754783519573929165554457724201376501287074141958071860529477867668589130572607912404575928834412717711761109364533548859102991919129260445856943205667326724423261575657705646806276830129448514594170687154349732849773355408910837254225556195454231907271182926938605343434103017035240699887732348154478345963761166472590652198583437504443695484692089129899949966447402950573613264121658326749538312401439712391969554209430855545786492607970314522012756319335763971550147035074399214476083347591359660076160086203722703009882380954539070079413840361687577421318779590468210171416766591164071903963661048501607890898268011478267101653674837207285804466865184952844393995891146899061383144689291839092998647535838678863755578582811876106344141701784008846048956606058006342838495396591528960032855409724479456583848325812760690610225748623303468108974917683957218817376553647299767038441395719224806868650056952592569326163029772195382518716482931268690780975779811568509598944312671051446056684573136543800117625808203826873717237038609002675567763570730991299023151327039204844072857849174052766893032784983757532495557548220411037337379170443756420804379201286579934431938561911933841376807522225703469483246589997600157165648332356260659296170321493257747393105217991065693592377908329730406004328289600077337220268966576100133043096485880950228619283938904000319802806721395485469102511732002306397208866121252445176184040410971753243532167178035653257653079770725400766104574569590238005147505613162475653298162978156900792324982683117638565173261223085154403906898508047194658609542684412309167991531056529173782292612602651388741028844564526579836399961088086860717121074222702680360458913825589496529116190941281896056081268732977160018483194691799571629402335484276904283206268871543276899275135345164126028043815379785874867376491637649351062076310297971631294190940677858451797645402653662291712545132244746531780324600540803510750386750751067533480852731125221277533643322319612320696043975119753396304290156882833943416027525494182306549569362454194913915382382288586955909052927600589111895182152534331848959935585182024948703661802372566046168524604218010567600385283329843019329098890578981458962052668943337156544539705387967536554197450753888777516314094570036040597402239252055708627183884355780660213789897239892211445828670975568622043640982627891398540372782556213944151510329396672860084251457895081852141671409197741755728638563125163011386377219338535734263064605183205952457609386686223326304425342219859271337417848192390448753414087602067758304645427623343097500401243797362342159250184256760003034239904667000351723120892576182840034798168664845940731074244140329286086846887026945295657799752146725636849348133270582960196732244632336732593725114751844261480971660380753453070571021858869637771110764086170943728569703045734120800202446690131447657880057150756646428478289868302914337324961924586555846189343732351940622560664262863587563980331017314157151298149163124848680129443011833558133684047602333223730899626744889452016051977800482642354733676323176395113550692401033260201074568820519708270408568982960199630751254720005341022872758064091653348002662861056344421519642215950398642477571720722267134814665468427252395267828899105307007307762605406456898007941272022170817235096647296192999681213861916778682192948889289034460698133673920270521503169844013805837087781611894113059478378084078928570613206360807595098414228492022850729024400265221298588355146575689032954789054911509903084618696239751394389824381287154570023315136779246446085992850273487896232615849276824396586818785726499785067491563922309721278237453000304918846924685100987868273793121096081533662396800222586047890147410472067280824012195130032079840594174411884196779856048654184163629708683696828625452645608271974943136383642485218936683610106877326180150501261245766037956662545635770664592773718204854850244946222187840190488574552291140368231680605246659089446765814663199811743357657662999049221175195495206866409612898937330385741188314687752204303056619315718018157242804373687091760812836951592020570114656542860140147873152407789335616871125315475459049502770973439482275293362016453241428213272098414306809318333978975791951037498029269486096346267559971600030809047539277925932925593151553147617210454969856143211652527488897868046303818010832240939185022802265671310393982667021878994069893840900912341931467744514811934240414440106753130637217224965876259114400933406371454474045807366231002082578194086750091945718383815112349286329756626106732999279150400382083241683136739071156151657480821606014757667314195160687452627355412382718303182120828177354530453814021542870617677696918739693512699357360303463604026611408885380234665890350064139502982087326737190203014599331211455951553916645497199671138290000570969646467190023037597548428527170687957382541781165633291342440643240611786736859019370693479163474808579267096261061774855352982197531114130343572853633878215953766778469257424349669991111284561750650897544355077267461495841498897176816910332839965634694532181667913015323556644848152662135819778967268390695550783617543576613759463330399553174401774187340091313225784241875040135808764285204945228284504718241707277612444815923414532786629776691770931804693043774656280713873246635019218209015915815711316643337094512923416127243937487956602048715300859370102642390692907232075178879992624832779658032447005904842752748117273101620674564524901952735108931183522351102746797560348112500560514001145422485282249306888262762825842774661084985392606996632266509551981017075987899163581483527804295283530172724037397655744939677748781194520695148492027012954075798872906922261691973602280511297437428947896129591553273196169776654208326697390399262204809586810029865334916672164102551210202620263212784691542466640231265475132684166110641517821643511161499277794152881994398699534352384374598500109760699813719672801843646139437909726666454144807351662393662348159980039281841325778884337225901583031320474860540024813025413588808183970668146691450452835529680813115245128226786393910044472857423138327823555744524509425521235408862676097900649820043307615873398857779954115636685343021301506714759442368576823192250433681585591559921765441356071951566852341689808268841491195374527259056718698058228979089551449851118607744612712455202813140964012440278522805324453688462778934492730096080226999993626906425829878654346763632741019897917235450222026686941688707699450500790417217813303772129190795183139450817714242413708308260757461841350296625848247161831206081037500403353767005307074626883529190874553337146417890215100102114393700573523143963222347203155479189480186120713459472008081204848208691476741172842795104074408320212769318411082126831308181814930397025212623935061039813704551794805555198773082793231845230477547853404223053754398577025038981179528368511113054352829862286434111313647559718162109861058516657747467824517035870762489422705257761589349643078240163705979157069680975137431925869246619812533182256495680883109481912320053448380623673104851471860342957262452683155891152180684791350269043491318638517951212117796882438878982649689087408309020728911856464417315601383802869058694777334555747457765607205626226218063116144856888416434792257459474852204993033388929320359780282475983295137898682426896780098044112451026890769579338065310421664280420106126368768307081282447661115728500110103305532880357346436540278644821303355933267912156695073169035366531423097386176120230607337333219272977049979430184517533844606519187662617586097743001122666595853631102542000576539983121687013673855524087999586546560401008246769895922558236130583444205408390212691881307187223891658590012879859714304696107326229597205431896443177210430994327571140560672276383563888900261524036835272859654969473690140504766735722736323001234045489515709835828812120016478960822401021371780756229618411254926055687549110494063600771503895782292985777898352107585613048978739342345547265421887059782160440386162867900056410954561368702902757406186262491018801185538616456915804812740189581831763292793989412328308475348848112432166550546503189685708210682010248459510227605458434163707003950866465971122330615178678706873203884141325301344869896464319170092268409167035785715451943617468801333465982067462992903822935365392919932519841067134642665630629037609966323930730149538828586466974526988401381012353197353532243600680989462546432816076908072738229464652212518974479720657338484289187795395184143713150387440309841053487435510444430861216907560376847879351397359614711825512667837960940181222232353279758721761293780233656521472968650534293332198378795630049039640449519297504273413670352808454915057586660762626464620157788525922219995391629265751057367244818441290954147879616704947183370500923344759036519092782499215950121034546092083899863641312051492970977187924175735961321047739318647226895597809739891037986984076587755827256646745028585346435025418751184882925451804650067197960540022520860480967885573484610272798571779323741187079308340766117998413288288331952628545181713677388759732707350621824012109135191318405407489141171387420340635607746383930874424115906168620660897701445824336165734928685911489406988560058618789962760506574880535954338157333633040945216452503224703430740308675532489861929201520371929008304117048109533323470763121407113167870405239319962474488906774632019945126439840941863412932732113960120554257127660773807752142237745760914951993966681188821539314730997613999666468693731649538072772127305928081911365106737105034871427100863372112616818475887405266074526698760173444570469470133859091022028567040683390608535173039671613094792023165164955761959149032291603927454608664833245201096985789215069958884270569967769193077325928924545740133173364417856072793650351039755027770765541639218866991672518435975821528737876185248667349352332621260165817034640338102622165737547189946536842065585869274646655990359167423012556832414347518420121467128235087397444186917150933547481369576248348614319830784847874716425510265432532376120842795983821016323784520055575818832231605884167719591283361563248522819077571098751658300990589095146591937484392447961822995681983846045687599155395896944300168221039245943311613829084408228437979615447463620211739617630474685986490937706825646518774055357541882904945700729160900835817210596657028020753441980349534624467828756698554777137120426063140588688747298690430546090894283507736186684239468433112900195546695015487483964828465670262200950773765064279275612990258916166116928721376622944314051957943829529142855028387577552859751881768729938117303971307846457112795167622306692863486838863981489567885952760693648772106718578931535663542296028603650369027157764499062520302232862577460407158616288922785417156106869788206714775822049269806645328124845625168590470265278703071453081370597001458473424337334843313151934588997501799381206272450311339774586313190055695683776533712162903055770347115627677800674567054483468752068750513069589972668728465477938330083779218508271798721202848118934744639331327143668067197802314504605588065443221346870988242291000333653620393199309721812016866340618522041641945814532214501219152602357288566712429543075761805898887205525859103255589981635964914330271130383145948022210447319534861067459328956045359054033777760368634286687380965674400349084643622471132567000398506686006231105257303764434524643602128124313245756632052624912249645257799532686147968413592479464364959864105737221597163170906016316379416268039467267290657015321544642661356528483839367715389042081204153593043245900150446026853899404443089807100502975218250941777218514586276681711783774246588426413990248850434160282650873254594939847149464241946972487782424637766356120280275298683300018771483813576317131968206305103838681203586624100147682908112957063413017531148526731995927042693205880757430390021539915085693260093561851511096184868699960299266946289158884007416828177416827683301105706788342839732689533949383422442614151189878188708748883336179250588182069398756895228398266710790879943081376498223095980225243230940854727738443974848997386446586505555358582934226769158917279373472209848938760583515952918802967673890411791579763534949697139797019246895462202514162640310452911011558376472939398155735439481593207662502165517922737139984631236587452991832315689435787132128118572206555976338150271342534100683199563494407238760748488202702236555152271575246749255183167305273610000476114159347638341627688577349432060236455788861628691866402703266339162987123857042926517646488862611719218860913548174426273252778140998370766367680949967511629271262322342635564604544497666529491292442146742497993562152912119249423250311562511969083718725684212233825334600432635154774273700725997289083586553215681823496767938868512076899001708213842578329186973501182837686802050662161552918350880926675634704302887055279179446318447190175689867998949811183638794501891142895595922799179640689994358962300237996598767381466393850704392851295059899252251605937994554254087305911043322047580109417093809102683379057350109000712363786207829201399581659835091976422427677150479709702295758694301871714439086502114558684791511151345408639947640914553464635982347638473799670188309167226276576338449873310961830239789096048835431636853468998257683453967488743020530327734150460310759966027791437270384326613589525484527125137964356439180632866203732784365499234008009514188492183965654231825515722336710844436766740558560362077762923743803098568979117507380135783388998140263433843963113884688677405320945642189158245066357695262720178511240175336248619605962715530336700502203052162024136179961808916555539877589749845009787598302053396410837368722433414550498779288573445991753437532456539320335966731271097127907379592238924101336267647360806046428967384799531225156367057933578473683057774675198779111722181017959946685167164287301034182361984035144282562466196825223447393707196570269040863475501516607045447717687061587423259030150451803654107075942398425229774899889563552052781077521831001284880547807762546685073137687260970462484806998000182517492662429218188652865289521378726982444659303846107135293748659406167018106895755627011278731213765766533349734396414935686702690303452707642475349934977364207354816380714716597389866999445354554936522226506602436797592122201952353254714741899384855201432455698174665803669445987478663297435219525114398944226558832006126257699410184188461423545959811840731020294145533856800615999801803575232359755863784372632447443424471586295156115580563138837775222959628209278439403828344845804176194595820837126559714155929616673305683762438559775933916103907924032108137972825156873052755111783891826433877856331451595085051236607001558700218824751982468346062963698208267935830949012557427685790242503587458602518595490975362047720162715593055309029758878751885267739844107111339569458740427642072384183333398525035870773316383353159335528452309518132097784082315819760948773004889274226753329334379997529878965384791056365178044220980173651381726540157721243207749110118512325277390008032877886154311215050432336259590847321539862993316031326444296245596139772972567647917843521420506817367750778142355154576921836166978756744168775319411770759908010695368104635962738967801512748973694048482940401288437214219259267743035004884470779201951574734562987494097151354866364778874070082537668307853636944856912818937655072891742026344437406680069786488327097308125677374630263400903771849885407363627440232846684965068203844996791207492747927921561177875923298187248131347454754000697569371395986283655087236665760218775624414889271592625467287530331063205432511251084876919083620262066790538347705105152962698215578530857057541455826907685928659288776503233390867280047793104060163974422111589975382600545819046497729612339617035977434506452254064732729315068124482052915352510822558794691500251501725590679884291206785166648136866343743961833134466727710547344277066967134298922146095226621663337234735713341777771188571999605407068182425517267847660410811894423490357236614901756002558807798021703955827072609551540639834129426070867167129870864697212100936187243104272067658719309709063420646245555302123202295092102599459344003089703646251645497955990541755892765362076551240376339347537944721483161184023857909278667525180320724889195533970705249362649431788446502766241460642399253767770982243504295320634963443469847821124864478037950991972998500348669064365715519343108645881112171694739768402262941726032799764168411890577890381657121153679013490854085506347347695033902770158683502671407277222533255122325130143449485796974573614009811742555138175679363045403936774136940986194430110450839988529646336127241486988808092675577145604696682843315352583479968377551752843414563113933815462816695128380025896553778896294366696708995439629337960957357922991325278531212817845098442185896610918328064126315629442118746216453372410134500620420764119484917069380347950977903232750565991534195137108021199299884296483053941213484883571377864487108197369922772749792519846789893183170123883631351192954703090902182264241539899171090472523285833583822107654853611431924963508027364835935615366044160786215217254195650368429788948862112023019462421924777703920465232133780955872114087862565085901802253620229050266895331904141489830237659420021931969369730589234885948679849781663275224582005299317119513450221383957130521746797794308595809121326877064420401387770911702727653941197980706024584993483996546041950094488718619770235119331671963533068173076604619021652430489371093524082527906622756802478537211432671250103213865438104851439487683232068109114010792316708693691135530343748843964951589319179802285063547118214814916867924367199624028434711614103621799693038770668204488607421699118617865062682404586472356942391082725010820282657135559448912460184829906583438384500113142440701464308314546261729922908550226455089351520166255872407051250159438486616996322216650355760210688746050969087599985047242156658449437098846942272637675279627211940223061262838597106730793274047194921109418222603167341407724052067836809463681732587525052848839464042126075674203613996452536833026190209558039744176666215065538994570300009633898722801243181415119044448679520608010557280923679126724025803107020642651491289230129826955950821790095965815704168433122659083143931692844485613191419141522390186879710887720485118939405707755665861724023846077127843908875167883202898868117668381697510070723245943247111329937996150924918005735784993210746385572879588244323308856979879210515181450309951115206159813633403681910191631730616388601707264274338705553944337944530541036197242852131961571750137546524207586825086157222242530453239267527198567067612181423951629571748226777594082608887577313109129618136451810135733050037872037659621280587751992410880122602411317072947784725603252653635483585703096987490241510528686915239145739559580163574430110083354704731311119845036739881609856534715914821920404703857696661385835979395361355689499969248075877105905062213345030975426872676820325257699916741267634952734650340697551787546654984099914073064909884179698328263724644174286536142986204667211843391491379014269979827772783980788098042932987225231813104410688463209346225895287328523113218579790736461462368362145063321165832639479334836127878313694511680449556134443480383008044695884073453709958335821819198019471647556097512570153126360828971304539869662442980364656309359237993763664045217832886762175171663596942124705513718154984508247709029859912252468444968033127659868318178439484442070630837655449952709883924526124611375796470716803630981653569491203114471653852999677125368303473697573562300785815578063309089343174294441352884640273843037777821443278956257652330291177200527089920463756081282715727102844457213688196459052505551041541967969841544515300291884369014031462718699868759968582848141945239507863349994692777446403741259520340165906049118195854923326729701775549484690381087070615172552461510493973463692080912675374889965414528708137824123457155909371238924648386409333328258918460676994843732890476296024383735121777444945602011428400656909756304655810928024742295292129172414771603126442685500084191665108465003166821956078128906370601099877884945133871447771551399387426925772336726687539948203082032871726886866527557389024516629162784892067688616803366215685576117794403744209646335850737257810426723376590160892856747299092272063001669816319150249136151268449882570498083765103304912250139366675679273821315057826509767967165233468642060834173895304778067316493391827670497874726864988198070366813323135722648140502701029156911598326844135978034048902588706267977551801969517331790777301109863353738387884120410703563245696754473484818472404614695319655426041136914272708220654820805832649139265311618008271686990842286884029000502098954835947302321584894499308611301717618218008414754548837851145440139675104551775753753605071094740143127179328725403233167936296503570068304176367339903471117122201545374238296139628109609950820566282952570500890551100819515743932350090165857142918265854917147913991441883337183283164322485995925742320498127076158827187814625458862207437465415381175705955299384472454120838726378539524411809763690793734100787854701934072138168143454633116879166650068143744381771383360387997352672195167841754434839264414624651221342220328512949282138206508745807309548594599824907478671766803335251891137583678630135525723446794848516999337622327341979275192371005363112686139045939123646125103152823580943838492890091680386036476747309758455245245201509527739205156046181870468718074985568006033227161134660783163362428771494697627720925424922557479062294584907247489964816304231815872012621041408988284593241821609944634231304273109279769677527242837610208048304419663575750467248665511648218113303329557908383586801847402701694145008974349955277097108488877875302442500686784788674849810665762139986021870561847951135057284413569475659557337118385047137007510486554415063510119501986023571071589538714896095655430548136386185492703349774789647788642741651421795559992407045141008033639524824722851710172673613334345008149168527013659643100477540702421332452481393891113234847743561131562843045865909911221146147821870611561643745270789347197246948213919539335604558184340352438407451590037954781141132421934462779572994921171807737488290029009697686574149301602288889815126623559042882614317647719938406157486461432680108583638856172947112201043725660537424539358311019570486773026504131503085199770191766072751054520479968390926143333473408220377021267257525399513793840333837044555475248645977129020545080966312351726365591513047184212881672792553945097083724634706425265324080070227810606308019124886745981069640354223207711125290440056783140049342852261205035038332314552896295839446889344152107208248070406125119511408688959176662189535862214311795238101864516532303319286214611580698480686384656191166589553733227626535816895641080575017213558725718282568609702339392067716482120085938281240823602253702324632645019902797932834293379386592420922542222799203700912351536734716575771002141019875770244320865237329349609588332951219183478117550697088927320169342404558478345580274814374781802849921660480213417122514159899268809863234369835361689326530705676829530636267304100572362435347752116804436113464559045692094424854613987990584551767630872725637854515362495686803838084948259145576688940199648962233104224504932070944343866049063195275148337226663004256918127270410078408183084008323002759352356109284611025782063160874090849261434581143550277523160322148743593460301097696938748246471492256546278134951810777461033076555380249780214372757760497656631789035853575946960583473835267777831284402203225952669946383029795009694957208255392343140735281746878379459620472683688474489969680416621454619331906243182031119907182059865711898599316750305952968311918216393057011703166211504521944295795130001031514322265396347387874338364165833469246904593454261163622701700613575505103975296044611125800077282273997755140167833671687866132497060555970262898422957834617735280840809823333793228214027688975301782239911329436930775348307947984108782390908061928144771377564899834761806870084128891031931521485472683044155410686570141281384937298388992676875513613528073800919585351218472763067297793528549585011937862556920043973683500579855383565346483171715575519282364331764874958887286145282991493917792684714050936036245747954521762385959632205457872953431634141321606386225551493152376860860152726468242328628836935815875950636823775503645558862255558311795344167284411866663090906890499602616844070666670235153318923763872419055993152564476781410175648624596885781697368258614404047613298256114949323337213716333634993066440272929868100183642609790018286553832341960147415941121478218341002091790046194023614556695603076902866506411377958620086051331357524052290973338753672274240679499806842887795363835765440486358177284749486688723155573754150335126592431621464323578794692830318000021351514892665363350751230727201794968722035470443160643996111743214086813156644099178789762719712822463856453634155558180806771753392065788185904796150857451706205841128526681003103267126283023684683068764176524642756364376058164930574865492964367528957326621298890601830506449208561443744955097908676589475777605493799943190461349357569715348200414348221141568840882619907459870325392168443664316088569371164043776956156639725733909040263923135887613138820257413855826748818772915437255181778791138131052753098904399403485080332622989325729939594348409041251779260315579783294454964961805143409500117032097669858052204209201690892459073293083972069654051326361871839598157160047176676414792356969369825605858783834371531936575486740871625638720924995583015531242557400591389259337761261554641533698232717083919034618911036172909555115314950548782044471639388235038137329854923316058866511356153647778664108444775966907299222462594710022316810573387232640672035708708834643407291804011815059650551582172381926812546662912117254644329592770249070377376068004090385978624477351961843448351598891268916005169383252683982880696201757017099035325629503917829604596542183354642571971221805935059812196310496130147814771641741429076637754396737703580398528392352548620188455891009862204660647502705574739379280776982605183702391821194158493108612587937722315334038557779305305692456235576989986562210984080392286911442596692340243224092118219962631659370574494399269714587836852224155023033942919697474110520956076016461606871264396111874017507768060194716090288207687353122142650122246009282082060110451104833267555687358020480907708724237781525137369105488898990519177179544452846601628302538468391979119305178199195995269543095476475066787553565179737592831788884148711672173454557726813438980890299309737294429699491477113931497117430760129934351343716072547424555968430823309843200827194202936500573923173806321537438058178003411986521949310496312104181697583669401188567098146343384422243693982057905744910688003935360732848941256945841731525224705790715061422019521432330847588777666150959103439242639835710271738739678864557763014268670769591762794827904113198347010531226056033989643375918603446752062341430357382598426880329840819471204738086749174431250909349431026551035557677777708823713405519933551981107805400025990600179114447824437355951880510346007130462707619802364644587314768204561256778324379381414229075110581934736909213764151280585607127664308004060731531986832243563419744977735641890090042119662683252180314477224517849318778823856323712768329521770519121594406357694052459148700313296409377097425756603993137941593266707347517488337855762882962924406760483591573625529591779965281270945532434535598094713017166190636710024140998077812664713587449229083904198779240232820739828372280659871384066069797362738152424964769284681663279419718798716188632484752132248880116564052266481888265128782264667497449653193801747656849181741575850376096733567738739808535458498788530516670890918078385443936155133396141247521213848532971564992214949552620907106360382717875263695838926721276295014294494802452714542454597272490825061194378293626594640153183531634522250722465923503634421174759085717022318419742262940249973401967218258643195827057432689326045640057101672841762862782056297896021351952775386575627583358275424653006451507999994962706118717606966925083471443470916504533835358428438982624965308687396689752468499030203484839728680952160877509238322179251461555533154488784218811268422818779552599878895297435321467832568487464105014787190883485243618831805664206374060309752162205908892347365541344149520125278560946091074426682472662006631708675674437271642290424608703645163391664703832501621998783479754139766930418388539817530072752887272393297429911563748248554547003630671868609036283409069717102650217822699653693861557196605825291449700564619933987654508716885750993083102558580985212917733582325386788193356589856865996432227151009397772962819563685855225134461920151926603183354341158060336652026744697489797965468550845685608177923734994866743127137187790960634667455161841381113691142701642196283295594163484711151231110782733683485283573089272379268039031619178841461698511320299297305243601590121328629236737295349335788363045454956493123678759063823043991977574867292359682812861543817546266004591919873592083566600679022346675058187609267998506861024016566068834164699440128266443911114114953405389248257516274508239360207642445578926698407726809413444868368140804797147694774482936349059977998202255959467334400995777240622853660648998848459868388477747515715352398860324688003749454512029060944643106651576782005696891700618336244804072792059681442762902114849433315622517949777974645825982432885231581494676179320851615388130688870413140654501762526318475911938148227579385150570530956337234007386811466157280280605888242537473977437860564463556104783702877342585324861163905190774455722249618233475994088558443683232163502110260667831274967204261553910664355992998052080487517406118876756210623638653714438381616171975559842438527187794049331943291360719778515853983377982957100464432199589470099625021504476867112630846366653849101274445979555616403800303440892439715417637149410343237961024121854679630358384643659526733346362254471637002973369184718433136132899774294675675457925524877303828327132548272126314154912795278715879601092219715929556393298193311873350077944037810601609612066006031532897247187356055794475796505300760690579164359992275300196529976490444149631502980009667394423783328444434854962620154339118106752888192860166750305238309568339805566644339341493542573383875381789175762543990426787095224861202963785169995369650125954948243823074104062872792509087519779069082889097533766329589399661369172614060302187038465354769716634878892305662361708031907443906693482556678365925869973116300270424485705672014459292494363079274920195290082033240105411063529236400660933962504274603573510412781512758784939551024027043564141531746307911259738981121558251351968029161185520755056041401652042456703836536182380104901227340670997860393105652491087579026119958835173301214766669229740372789624531829185147315687316578804173514856663567479750674845725869056826968306672833016964123988230850926666140345531408515105623847674780645591173371295501268786209977644698889045566006708796344463712698161136870076757142661881264550586645358231987279168886432008475114638701810906726766291824267896580937497112488495339887719699127291524517113323379831462977838673747945591480594628967604149042999965869218700550419194018551598964512922445314752210504216133806546236048365972808971559527232968341465151341220395541666139889437784287743693925704719596091365043413552790202076782297683836558043017825446079585047056081805049204020565374192424149382537994540875586866577462568530289385661748528998494050690032500428781339658216416348692430902828785840744463418877168749003502620060215286487406218706235121820313891589612909043599526575512823073970276002674367492522736697873488062065836487324376898233694921743095130533843346773110829827810027267873898615089867169345683475154797139036126470862227424438243142337379036256710101228850837502597033870208198886471160719335758342368338158146450280105109480502009949521844907852146395713561314127835464935786615303046906259529537934964570733649080922540737653245845337661777560562401444046601361344136253059664709710461468790825457806819546609630258354337771184722877018850599788810512241018250619582782752293924566140753935530685234891573894194932595415084526842782464705142803807330760002175644682691993587823054086664162672779347341345062890996614560422514073031598118689369764517389723138093968806476299207974515723505434944574015202782464223645012295417464053162335589368549847276494047196229645388873004614712565553064316427178324563187234097931056947608032925308512324380039924767328117644022201382638715328137749478050137614923500462875725736482379322109733479990279197602094502672940124666778603076523160026398739977203664850362699216638022208545229512720877855601949621507862601954103099930957316176219645736655568935972623931260765348807131415597166784059520259456738947202014373238423303294441852830664216302307211549401829579906997078624115538160646682933247337506113109921226029941927224134367883223207617219852422316456074493450047543212113962490001362574584331178349580309211215871486671725629152644195658332155148414421845488518385272852979448824777703149956902278452228188327130383165518084498544936302979807008744395410923590537002464571587480126336246749011270074743790684224955016124548990777058289916629221677056575914761933032668080468335212855640549376172638135548801860763353804702093730466055305737386621638781455095913762352011944001045851352089136191685647484463477262729901433165921348774602372200782935747478681366513086206714996816996414563045957209784490059380670944590192204229015977766358669989435788867304671442422462440115483740797870673209399984198547518170901516061996451085974900008820583986752610838532543089506612934754386749360596416178452702082406055973859921017967435071225994966157700574141546598459430015737120500061330838611927331109739474583863298021267487168230818962190112422317864038016924689242809749146112471714124231763730969339771270948060582554655645243813880798337522039335073824544228463686580944670837434406895111853090086814138429682857082510036523206173268991200805800892009808090627346298748603036943975249319158920564272405941079590709143801519754526479440125082868395241896277792206767645193382125342415198143905035346316612436107190395485156457431010446105937405845892729134698166791262570427589301366907451142912827519467608802259782688971061855880788496392196730894976017823773354898738438391856035063075093720527834332587901045913391738916660166210593530611714372115208975917843172823185105805820657168257328780834924572634515806745671766642890161554129161187834197047487513831670270133208653016711787173849837771189665030734531175626392600379943038645920432751341614914797658651406718494398771227887169280310299088508778759570255059443821505321856625680544805891404792476678293453389432772139729004047306913656739093653998141449976886204898281373352101408452338917094560969496785366103856830749536585646749661203841868089643050741825473350487805188259629377201016120165431839200544761102165105767652805488657030071360500572093657856416017288999448242416681939623012219650063242023903490073807354642553244195622451451965692929464469945627679417254443653224251297451416269153250344431577055461378971146747990575136877404236315581666418802968235393298326460357879227081864542328049863856104651667833410395952709703521640443807136335505363135824923498754468378183999444721566957266811278828162088221789550737357776339273894580086899876333863059259730438586547977680188273190069205773373605567716727564352454664811401631730692015708895584276066966330626825721767750276114265434371341813140852387748414840394362544646170487907009942282166467429792105794103232808655937198106784541166367945124902542994982173438322491425001936874655443719693215140662123379132644660085041135255654100905449577676067162465006813636263199412883648574615017997269892388545995584501641140128267204552987353393380269649166108242097901774911361088395186988406528101034568423063142508822621485017828009364300486397072198156135888359735528204186692680402744544082781480327213834319001470042577343165082628933392878819546838518043922727801778847853801271889199990402065412206141769266983843172251979271541961848082973501110166211499375861003379995009325877637290323595891906055692332382078971038115641443849201385018746801842688174508969746135130147528795295544289859613894688652793562419707674700255672257994793811831252801829634501037891893159787727434979296775296854290063349887689731035016827407499115784473696825743699378519746743440067588341898011135059269067598611627960156139807503900558076507573578506304891759479810339398937116391910012423715605098422825006369486641797690795252121753351163848675838289108147250241947380556770394980641396823250393648730502621650776755907577054919174674927318083915628530269828525066707006299993906538249248316315681994235136822957473030331129739632530284485259300954064324464864778944830213466933876854043168546381455947607533321733777353681978535315780380151284994520235123813264397735393195826743226878905680968142067866171333767453852922546861874149265315311693093195557197996580774806333858901894110795096921745332773950626849508933808571679083847201197837769856087570006800122930726283398288499226671722006367945525865048488739482526113221006379033793565927206646521731287373068735579004395079695469936368119699926972066347446919863144949231876710725410996231729060772761850213339697179123857371113707910172799336253483344583169855449279168884852294087424253687304394481354841476048204594468360081299731121560353150414100424873840875392180523589766823804904958497749487328540655617616479531673477121728590776231019906579607370043030004613710106549420141697867827369472053080803768553664861467327624770908203484292698564695645195994621466481969387806892928482223099819133107237295942407771033656433976565420420062116470915406851633525988172070746665789792028192372799425045322704394056741248219860750192339433170273860959983156120728667145081380916602883708017412214243259434350881643851006065812842522429212312616119883166421516269432065665121962659464949299266761645560516356317823503267240289676842884385756118350941673500209352685947378526882169174328080738997180241653540675309215113856322206313202565359656264314218033858608408462648091412341164863339490104921462975492406355690640094762647640159779552959305471416335564513522863063451900076146972324667487698137942699146169207296038137263107613233132439857169979301805091154939087133927905693817127357211945540633400550418070972816485595773698903979333614745669356297151872233751551949798883449644945167468416352953304563868919364254808690829404969573267114083766120862620708116745452328860467414695405412727852198709584847664500876719627255272278057475455697695094221688443496348875692115071038127271387097595476626329936014517281472212026693291520622989915104351875131365353247391900160811661349870948991740532405100677667470758705763429311694568120509075081120101434976256703362911081527204342054098806463989682441559395872399325865850525895458015024067029744869033776450877231909661052790690592572746724285251835566268479598203044139512392421803405142154475229653071656339405819646990640396099104899322288187236128124775167476349794118005460047608871873220728066909169008514229774049420114383437026957778615781321520852655170435265221230624588846556943363499011852162592463368390399358253592060792589946330596355818987404024040390959843291613287703874537277471362670498993126958041793504264067901108160280660852963056472958885875945026927471937183742957112418240350252952122220495218922759835549572306690440765286981674173293916675793879297969845078928368451511577230375839137418251260716308799975251437441823649493993959706793900202049636038817767557729855825600109543629425447879670879140803461209130192080537871402209638174523947186462582948617811725723807266004990646823917090740876914689256262138476523431125455293981317973349675612253297597062097265354710453580488130760423234993918843090902387028653989132171030836299518474384582352344477500953297675084435673753605187273217895613786790254107630625425639535708947192861614842622761108019786554213108782002352704281668589322885609280979974327862158322881288857425964122253888880405785663829649621111180609519575002015234864370882330199784478344761351649668637824410258211351154424603214846037477388374027421146699191705106336011571989113160218792939382744101237677760506746905258433432816888356445241619286687009843853860796238533888709636979424319076032000945277548550318445190008223616408022282686994721184126400582394970824128327209614420880933313079470379658362070757322643502820726585947498674789594687662469188126068610875273884682545981018387709690056837455130809513075749205412910019491688918956744020088925293996091027944734529153497899073513420627532904694295154827542753125614236895444082178404068706855623342813948665813387786332154723253649236327534252891819027512777933499176840566798005116461108990525661057844248112686568116752198128336127914341831191250159818010903846351023035245430017091624986851742249533774274148997875143778634309904262795350932008922159684094203033699245229368494319546796494966495892848621091084670875322028780128350997828114892394805138336048758392928573081055273903996680117025973141026693221209230819330150957118674593246029191650216867698580603908224287532057559373727331477256720327188392416391982678128060538932482311514818650506698765483427875823895714192937269421837622906802772574578716988263757106711673517043901290510144517861908692332255135681341744080383807449031788736283474088144779581468149610602960785011222967578936332535011732973567437386408553072461973674470482617976035568419918241620384728287415484816572322650182387385241354180918521243240460511349023429390530202173039257327264618270204878930738150233488167453722667482145453826390228642622449881389542099206576363203510129427573921382085786399586676595154700787560198443547135460269931680644502512311297590349347096537758283108993082378811214972340545084968205504606991418735849886736119712418307179074622692234874933238874894174718726862326821607466537206326327104509270397618230924114704454921715926041088631279571646995303593801974279958120767605039783891596631767318842532644418520050774563109442588277261045877649731633765268991885246011110758963291233042745795723189466599566287063345016663753068213747769411627055556337241254109400496003618652811076928536026352751332568684123361744780685489052534014839803028514077197041361612242794594453533361762471234571951240858148185556000091978291911394239485501676143588653951854773618279549443203290613211770539022971753204850316360810994780029368515906208161314626684274702615215178198604335315526469803609162285615290002611837204697988229983830109116003088748018868357730942808365649234516979711497334069328549118465482821577964122284330412066413697350104362725051846936233659270690980252213744006959877784841306342735895898786659718176827611407441377995681244459693157373529043213230265746851643149191972124071095778569573763413016019245675369439904147888655626480523486817581445971938705876528568250232467836610961678356061545107105801910764963545385375176478151558548191580013221542060527247386441018665059148180705686339158329690244751832167780436007772119323498972936461775276006450156437883591633216998754360418629078536354943406692018267451047248866179261699627539340909661826291105586818134960697220326809501544882488188805485750443394232850199709457037596560484821619161195822391829627463587991483682293712542456856771456749348286865088303651791895230684049649276867198136802676787942410147586662361374467354700218124427841102093530325164978531037573739489717896884610577361946827982912562378568234068891181243336951900326320219792280130246049946467171005936305948997244374119872673599915771472954222570486635752308457686383055003104286657437906632013396804976161557300193686436148328466916914773370749299952781176371618453016207658376445154850735436412523340723174637844685626966601886476795834290286897616464705325676758229785897330611800860049522581677107568288082925296682741011886678764134442108319015180020266836272719196288439473710442914379188422539325584808110104545031473565670777006737248965055900453917396356473919387955921024396081900375541732206417491810046230952634185296813617777122775980372382624547955858427816529107507555987521825400015903905890462076108696116815977527616539020830803995797619722064613330938005166894816676978645643280806239031591623386173065143043544301679421291994269542292206692114372751938354156666500637511234957671727508192046519392417675755003851263443049805129580914671535589861548136686400407653190576647965024932010234190485686510559276448089008752475698798967360985594771010029906401711031526746148066047390605571448559135816997447677766070651282399662993957369790659744005806703256045234420675292390224785152666156427789849939770513346707302868377297729983818931557025745009018273549963215696039814221775433201449888767766683659356625212594500828038904574623317981291515099310397695318160767076431503627479709221213000156351478411760011664213913332793933899218467520119397846849534257528570420186073013744026393549406848127679290422354784845614738319539687014192273696981326911331413222682683744403309504303684807322521400039536227369011668073877716771001089106754944675227333955779655332871662445538701950251935189307252290355236182767471762887261423577792666226106629236062747043423708194818374439642337362807008209155307153943304002474030731643079426784364504542160234330248754311305609284284993290422130387438078509563093109505932227025341081032021235336422319661156943833055426253832185917308171334797891072241787631944641697302100790431340254102995750549897471169412854988751083485943003539740220904820795604270704003578350071191441307874885493917263430139156225858747254844962508572703861862565925730429002808862879852098257089679359475389490748562425605467973991784586210015108038993527604175050377048177037126898403363046129819906552046041084851332875359718777512765655774876141689446921133474884164584103825194076487136724188706761737279384067038479056824437279958342346230707004982862732364349198570957273090436210782807845514609743425882698976249664730833016304526417002115664242202859645436007317734434507136306587051519150970134659063175052214200115224184820451108941347753054308032524217184660947928560539401834492747278364500272430545981286168187254556355894151337170194319533919187390889907249696476259816354931732385459404940871739025011817010232281852269003205859010968663982388470498370369924015661561763018167890617884670848350867396843906108630728037916551959569719730817550773236128911437767996409120411129636107910386767560962261117976234373805068292563351194109166173493732086650295948240927919872871081228125677787504332903443783024165506190720919770637801157132700518379556056352907833953322506474371059979491607582972703041019400210748753326102890286611309944058484023710344340973345786461047305669023458059751570803158041209402293918921189264747638524355728631150232820678394491290556277174694799556282429908111239846964419256446303986352929847269777998135559557432662647174409023946728277909904555377100297486923218297218097254382426233395776989290037737299140507267374176165520857872327683488977009774063559470155047798684127610488397514859219444794340604296264676964373425322104300576892808919172296528878324897432479514117984348919013685430332604683566212201783179122229493603953738588935819812564356084465065710025692103623594702927821889399069277114601170181376259743931878903380205650615580786709622172022754934071923084586008764153073683106355769475623108204169601171105739561501911102749683725335254297377284792045587204346293439267366192176282054691223735053435601294468808430882189390308789178373407320739303609591786679289163310381994160169067240856834014879378884342898778233868036302783352835536058566929125622065549613093040076601621487590620003588482179205248450749245748093329023773481943647395465743195969939624045711156433274094621141827075415822275856509078169690393133197903169185787319044644160997080028338375646537853518741942919534063820006179722186011378134632580835212457508278682425629787653438866119783288165948629493846407463999259509335207534799071402280423202948465503345999692453817035208191733466037860815735242338221041883880758056024563175004464843543321455053058272327601830826986766844281209955995434199383878262487487075501742603074289451734944690509574403816869248393807726650568141250304699631987960805026613264320170249825216780360354065478550418433701217751067816470716577335501928503191210524848655059192732006140877951136061193011957522202821958121225808935999207610040414138340752018087103011571546109757226374774154225968670089496732330228151411554010057892811873577728164775040764124759287544522348026671174660484151251947083241007087433114693606807331519056877520981560368780301690422715280957120083104332469145063554867264795418121825417062821760951873544023448339962785240860935521367186084261956598236042551217670992751605474664103391510539548171019206052404425869597999698082422910232441060531213399435770959005493102281514384085270858922963615773675148851049312994494348731170972561696347441205812078057803623762800646595471258809299413397643634872377314861291897027520468387560037260527365157600554611107419526335467349285623042489638134189947830690157487562414799859010462539449006360613065124833968227647032633460525820830061811488413809348956337013528717131296719851493235953329620229683706703874350243684167366382711467633605520614189375363081009322458833877870743566539506890363228101918936447482364695259997014226329978874387658251264976936044412896760965963868170065226926673798056461043844813123428540711195796957847154181270203235349438006205271522743118161977559646170965322036658444579337229561280600481627278047226653445997986077984152454998233030583297076609646115678143995322121558705645907097343481805401779541576444590440200869937367336800794500197789757115582890106520152065916710807401102081447600156122273117615693755813115862524657780211489877479565085401111865700943594810325963077927185490383144855460799564652507766669569064194272340071366309395136779067906145539113615120771440863577493756158536542694680701668007504233727053473923910198491586107512244856756471850606783443365219973615743868013316719813315838881071262757471914197546198065528073263543540194270633568851885004036242651755045884553601293155798643305325963596297831206898986536731845511156853993203506091881001969611902389379308776036383973078551580957880815542585927279221589233972814254677464062582201452734493407958818357641052396384154195573708816205234040888202356746264702732660127407596128783082451931453611883842808963032006332258765133287973935211149772767046347357827020013610151264436135357050874659957676846255521631766108304603190451156057919236898005167163279494516527971271273833792751599854714354202408629196495275320619673642946251376376682081098704206803424113047863743484882281933236317177383236431102050151382845935438822922667555222566707234357176180462958053792526869378468322908434257162482353291929982728155262444949541272496444358018206864384446760317804697281171519148088119985692278221623437977287821910755807725047217387791632507848286914529701540828276718527473999492336601201953208038242378077333221656258324495238525541381130082019033050870484122717494040622162714116000355313177052624839965936790988804369872251823370584965119199839678391680219054014275927594960216541417991870358008606844684057695944344537001346638294382529098878417634778946203673449152554274518096769239118678563402780752638557786304815572956142314571250312587298568434624256650313569625514046661161844324533318459720789248737530061271064812122554284838596784424802380508972932123615151467982046639257003211024250177600166308386130255567604044421205139639014868148422092182857577900805365473664576078704999528811689079953576976208504344392184834307666703520312153980766672234041966625618006093226362623300540593780061810848814779203596565572494500238551338673986172006297465366001787508524982604279776042966291256092165532375360569526836201390659280231739817832248434837178568811479096822063482675364668231658195788440324066426742232663200293887342027675971754725490139175853040791901039031620546158610248998899991754329514466216947377234595350586466434711823219030363610898690215953552833858796474265208840553864107111653774907519645471523766397764007664286799674814018632078140275330907729434443943393873320087217364920005792637349410502239670437638158950940152977282226765318416509339605313054242529771635779151271940011221852105494674584882759982456274081968919840935999886947788925017385326387618799502038305603615786719423750402320879215440755961777298830729847793107282331109171937978649403389534840484912593183287934986390765452665220180069948268495625718280096361510824506491594666407868305883257584764397616952718624014283671210446999324877198240801913254464763516382850773806446405075450219439152417320351457730343597088420304283721794648373608095418163624216971776696072907328987046464350349525821820273648780151268876485789889603253625203186673789463506379795611080886155653188772547564844844190743192596331116735591864580782841340102346261894102613309194570464911208164710847769522930611572445250740857847468244362431104876782074402779012395866143601583931467586667642947476379168079215797483881248191662202266249660522195235132849231855482228002611930341104909830839897923250161064341561720326933555690462886837844934271630039256954138166434102192072038773013552739454702590188678557810535418826731908512499826557472751237944721341737492824559145722836597820664105145768730449690654640680827304276518240273655448533338712880314032880672728021608249793844600494406981595289840016068842787147446410703915486702186958064035871101022237321430543646253389359510882998464827088154977878164008175264340872368009557423433125093233825661893855961751018195499804857862155561736949909766702584787350143006674461354927048936096796016319053625476115426653214384473746712460901027171574026704157461804805612552463759857493741277384577292644459055105559054474580605727964427538734050936899996112432594997621487412047316701368522689570089873402678912926694658385510180871794625373163854199691694773762430885832320315166972778872075859856593348332620113583767179215526476018272210938668351408201147762516623674125956051686554560989533368508490818357103362851318403346029212485152905625324971304984917763545863651047694608343643798846414838837806763967581526699862594312234670875913329383034300896974971235372974242378767406980712450091906603806241928690982762726753003186907516817673584576330221001515630960570455154324590769519813215548988227883699128087969857402622547135674880743150829392231722602234000045799907937224107619826078324707181674201019374105119304674925453158689981311880622830938125466226807564304184533620899375994676236198915678306304468285414563155540129577937616758909141028554707623872473847295497952297629040271394715476226999855295909170814013486740098773115771591032706664867708343446855673811361787526352375273092448988760613586570155965164127844751467459841241004917697015049117524776322705394390870121600171753526155631715174590504931390888058870668325527289334446355952103862812745803870845230960693077640202511584089700146408277612639325930895447632709327403402501856602918388621186996520602101439517266161598396926607600648246132156515878988573365533545888483876940775597485483277307514345669714585600248080247824754791138123703465773000053459827327019365107169173638690003044493847631057761002874989887026315076220838593663713973205293322987626357626639717818917219599000124730222190527578694320698599011634195195861656524311182133861274988464732491730130163046579464365197131875372046579330952167536518011010535998152421619325629174022072250505728513665637422878048793236868367134564818782868072419469944246823023658633497016893569146539886052583941695261692506480075893042929268563024376157111616199574803366389485612484334143525957293955571469283691926623237398743424492412127267061812335618208207907440099546358246228601052173625589057942393416041542075974771130537465450405079368341190122631367798738230338650724957889087462555468272290960988975045397518828506920648207241403906493995541779612923590663678166805489098556543379237534017107228010611973668526944088709283535491927459502339482598402125276853718847191268397523052994168554074661640014514290438959450282432234376670304841034682474196881720874773242064394517835460819480062793787538374595147819166621718338638537815810522547751664276540172806665329107335188482322750899573294648406253403810738971324685721996258881800524054576902623607196161849663102053218125454951145618595349639475099715746189629649019526738895813926177850559542755645070588933279928749770361563315238987615351851332276069834554934890336328528791900223731485089058167848724505123369817781032734911182406229920120961063305229666453674730963816104350988176451499651446169079190687249326319004410629665584933635539490707354187116847741725030584073896549993930224352968475347269875317002745676057704381216940546539892279398896380150041235829194878225982266332662835334942795045627283413543286871500911188212470096629063764617418450444890296209808128135522258374632234594999318666614713289962584965706967204476367506935941103018254877882440187281075888307918951521609854801820176082453522650130474808297449233336832345225317312002436622000928625257842865977377962776645150501369901812788295480782576952368081752639764009870642147637630165887897305203983077389502252797451385965689612344897965007840558937071138571524288111043767467081045206801615202488502140055653693651745874778656618167951694055734400271807353322540585017585466456081857276362985116867529280421961115408564354476865730907552773996867384883026522373711384814173201824967850153797935833145598005675079446134149458883684206215501424471746007142110482893717290147674531982527396173978900768978241485180667710326279087840430493844637660404160349562790628646163571913937628628112070370593704482619944481295940113494834947593360877646840245656856534845875800882462458400309118556758565852314883963608965046160050484338037490188874768108488932592463645957182994805420544468908373683453922686686022745857177457352251405443794368324897089113363837076688957114824132856694543106042923233851166253683370902198234736725711605891069502054360319152882209618254856711874477019525094459327646284394797017916564659076572821618923082677225251505734602177916645108684556545401843423994480536036440031123662155665976091662320608317863945223563892950565416411624191826989193530029692540432145044601147909846575375661966667870247359042437218173229111766945521248345537866583948163991514894901177583637228559158353141885703828665999046764043963092701072320005921303851945327430842716238784475156019226487946007019102161294160680121397574094788989807407082943585729961953082744725559084289900308292782546788233123333310448254706994556453269621477010323078396876148367453929209802793952222877619869857486128647556350611993508294215775337067792438930776904104780360101206374478128337860672240588238865475459109716908212888318135625047181066754662941176826393308897669958793989592570758879252750344201096342383435322799196138640636650119539438627620663211463388502502492246384084067130755192884997086084701249142679650753148328825222434618670167969968249738157511322546704823264944470738923023856914970296587673988483300565188417172203664115575512135020724266371668007914835018298732999166307655215511816259740650197762988779404119965582077738208669454005093109454290326647749002964719416708970675830199286606685211317319199810886954526119421328636098411914342629935158559892831634284110942739913391225121335734340574407276607426352234553854571777084784348535709652752818754239016404973592475482149469901217651964397007948515668581181396099433809570679795040534528490039662905471063029166530170728235979526103056167832855286496865273458562654835763121653438405482074772624371277092986062081326986349611089958115338984947449149568447451361575310609601661367934183284591904972099538906390628825276679247937264241129664266256452835589581240396464647898347903855762715570415296553689550509886634963131920991691092554767522933650454816655039492916103542573586788558641030062643995837654319092220199459167340619999092528928663830098176165471441825209513180801499404694144289978216372981923635643424887130831840314040144993503147964502322948066763008781399783061389272767448793966387957661598335956306518104967201382259111300590597231400604073358667918348969559768392184827595257503068498148498718671077006954203641639084137008691101179616167051469035860221572115433323449824408584021401193440291483689840021506879612235813658385160061598480618673170358592743948301622018802056094840316529525829432842932643246132817802551847058118091786952577841397508762333659078229118295022195987774499309255666341166043226643729209243469605476406895796647671699161987851412271146148159312882210751925742012633780513577793038691789474970326905178187568193530366794618754985830968198963678028815542726052931850153968510089192509953250772788117349364090146591331795946832126663160107177359926023131291650537756987683001447555600336595767951222043536730117901056514364175371506305327549063945712989023146239276077604963881885137258894440966958217986350397018156214464599108650113977092831645909953090226544030148801668916476848942087097544877495010037624490885825651057243373623751338881697357544081781994596483888364751973245973047904766462968186198042884931455836857391825557518449717120278691985447185228198983439488097727326260165379175419577045687343954195986036440774480036316717037898707335670902142072833560069313345891417358686450295183543015011353044868645892196148452240631570861725807483907034862588962308341501395675258550002448398588988763228016682151889153893701456427918562061673353174961498002148066108621992029969725183686058214437952392112210158178065991088361858437245730102821560707641255529513978997857421607479196522963820080079978577291793613531076269629069244221340988361163785433403753209044547910027223018360449951650519122275407455284146338788080860263331624700457129729344457610175584077672427549190069164677479399363927339880208461325565590857651177427412434659714321745727819578138149313495298120196214332097873344707363900576782972871894406820378489811547389376496642202897250472268197435584640821221215762501432373283773987624214019411742425867953783933927090387433986249176200355637926304744101787567642250939616144814430608218438087787380390017826187192903580093818025280678159725974008695783746273032100012420661029502356847686372910806953962181695681896278656868986079563039987902940143274484382691567526311726946375061960430312375891668275852660683387490639207807079994729692585579273926487869445514613487351009682167677266341481252748232128996176195127593557055249691867044710696103816811604058600673485281713520350106145157991563405106160855609399188643667287057631047928539422024392762094693802329282179880776792714266914701079112248185308750759916716049934991497578181392699079756567290877882265266393911968559391149386977148739000039717139463949768188578429561954593293744585809113343231957716722349605576104623415269801732849672225481254640649162668873896515089947663330299500222819270573122857300366567162454872251932068603180355665522570614267280867691619594273951997434002678466839421555216199701614490169361893756185213720285331970732879901365457092576491478662053699907753439879200654748525973693444519514947218665057278663094343129627536375035399280901425723280581355965052213635274889687854356593898795981001380461560481425320389574582376082783491404853298333380678935225860461427030320158775516735068464063570962970283077237560532124661488271867283260960386778281235036858382477459762081438974835543107213505663347570137062482757961172231518181647327372101449687006875895812633135034138484729949782963360598953819330114885543362144945327172616558107411695916598071108653606684203105385522941038793575028278105525223488972046395690883048095913815127242680367410731852451423836419379288492349754901966398735652388089794178229241802164011183928581487371694639105661739107192527876595062584681514826933321764133043999665173715877750104612663361972242659743705995101208125994923485432206912235162308469858566168358893434512873612345613122212490843126438209489235627782368795307536152811822365833857808687696139948303546885774066290820960429396649345406126461943359682628500250274805244777650698979250002733254322285397089480585530268743117574911413248201668931397919081822995740073519866523293452207994904043763001308316941498858658820417771914511191289309840192420464584820073744309246427386296668527589538213654744077224829100700942431800971628247383875357296577498098114041989250209163577155487771132335142732958675186001385508916278955472179124266563088656857247348506347938384198395639986846181190971251434436923172178924297410135581506520684211195127049190570000440481618899423504562212000440991059362175298549701667414874594135835907525708393845675885137458065925374532540261113479695312707098316148807586122062239761156674949135462468535266247143734857259250099830757796327339545868528061776133277017740815944285671046688805691393780630063027919289012703560427402631944816962284557765139485636979724856610012166621529087915897122852358375157259654047649559920605596472395605092273357157545683166108294805982563847655900987062954790106594728566177210180220950562387052308910380606128310507906432966634060858837302293329421050942613685037597749344151546501421480339478495197986964864526670722821893450346055679305753621831003969855161851944209011530569849034106557010702804565770107850208574820234003101755058118636746311893787477448410822427195882199963050724072627626552681052271199139608140675731081356625078872026303459899564244675994044291664432891775754135902420249575767252410059392664163580438774958315934283616943606107100353531966986953493024028225989751131116278105403897685420566211966921055939096135747692579656212834957297609656769586278801309063779046877941238676818271904679857887020222161970215641949703496896814129521746000275699732469611545391829504081908481424858598952435227969101212294617674307908035059496799849153561619919360986741541894149808418986994748573418853043775163549787484950106710738120913840059021710817955054889181027265948252698127620196876219111790350285055215612158574856806576880761330644123383969771131279363597995441434554335939230695077511292079729098569999223108218933466229288763285108154931814604009622114770172599528018283503441661408832949173943032397362688326000303498194199003659894862778798505585232997013764924479062286143928107586570184733668647508158447311750473561875234645278440136524979846854208265510513270272566681932251665834021020194838079854780476934112562469499105512266309188045537154239435811151320363211964569030006316297805139227226749311035842749407328377891473910182668830232935523666895103312088547030849066610853992116514432343900566494763869780570077333859140542816575230360908767737846691096187668192211079829577769825136939605160233830373114246764964679177179914567984496817789265102612280330696539377781279934101651668921579795929931988369608776016448095320463300691445210029728769536811228685956856428396943663974809097699400065536021377366216239665618749911309046879554969262928556695450718854918329275989964954167900777816722270538155739520688683674763625783266475236467181579937359813944127057973371577554488361437209079112282799264049009504177578261252427859106293499743357619160874446133764434153543955730588069977444061795256592579272267282520677742494808142576795234998816235272777502167980137504702552512888333398989718307252424436186351827470131168118761005765316369817416488088470437486705452928426929008541272659882777917457935143192062285704841418351751815221295410091531694668645053237786950007949707216475526180959885000090047695180300233272240053102389539956033099817283593742296355199736863582150452797999112258580146979196233185937932909205582624821752784791781380575375330581907109140181328461840593042506624486829092440866868367157772738664262399184878533752119307955617060745594457159783519459446494034786591978920662010754582386679591691755606215063491335969057546275449538001425897263591297208764149973657188500775584233550166540395738922955946322911852000322257173812922919873688994163342285298430009435088245910958874143117293356348208720261847316007891504939648264530068455557805497286186648192327980757272520528143739659831280459144484310622918438094213269660924414727532684283594295379236440108805851785628828501057935051924783785101388691719665304548241111663792138051774188015836340549590635591610903556068473744763099867943289176276169049876458204081356722202778307199624709915076589814259592339383897669398706735581426770649389793216457132286489582461697489957519075741658706846200511338316027181956535854720772622135880347321394351209732676202546980438367281051024390723920750359116751945251092169133875372477875154561055599372021149031407664216432439739087471054846150544309010154398316943399687973513208532851992775960270413948312060422246317907365056409116119957043218398297454925867553466644222197788868289494612576788543795217545964403509598153239796702842797070938117190918306727965925870108721349376450092490466379907823020649932343167701915482826126332114968670259585599726555291124970338875166491434568290305522805281361440980798862665800698937757893511655280179713419003125013005083211859379774176559780603561433338308920682647018105004526705440274680927287889803854664281249166231055127468472990878885705159663886953662178288696542713458594876719817314550319333355014421403670276270489213133017408929786342762153252874651791847854258915951899697754315314170529713984523887147076762454218889455875362337148645715940256832775142749416993939209011279500332445989397504091244575332232636393022473378378936676798399930405140437112598932259701014594199543771303740770246926675043773355015014430552002724453298646453884989411648472923497291693981664581078260666039594620129738716002039500231879069144033592262775302159935667025270545658087054307865456677379064425695449694762240574280367811767960695360978784175795621373881608322725795546558595713669934341349785824621342356059952956657980077319058055220572555650342380212609635053711451587504900846799992409028630357595953422417841368899615143131372744561951504633263533771752038377576122575214929987321685091867454177453944092066954696380867552519788978905034987132632597541326537002306769107438047650204807618089876712115938956539519080919052082568348595831555739653508584909129632982295245500544661078965488144515622823289903870034205757527019722000338014357003072615762141976045189152639071175808800770861336471077444084080707214339371167332399798686184476771733360554582374699412716023850689266475343841553371642705842107588647175398726931858885906792149065671533225742252629173178741975967048205909545077212163143434303467125714316575435284067690398562079446600966335983191988171495414235216955973330634560118799906001355205160989075396227634452770206514783090066057344891085341057811156556006680599059004175444375572134706282007722011508836901793985390471195378108413834583408703870818363984310766738428013929456260686204692142338033944675477763465026753713569943838839604181702411984535926944788142102085254751756758512412098618236674988399147848941734165660454313965536282597573659138986682057239002872258962916259500893994072421211115930801685540367342536179616803568843907840970264548577766725881129948262334575524319958417133525851710399752802724671238592856277463669816701779610948420315113337142952828607975684774092061721206026338870904568629525287846469398787087760115193026806639806985478497988091753619733920293167750866414212301149501646712152710456724372003934883252453892718044413049465257614188523628305427511302631853476999697689611742706111525569743005025771028415379255964791280827738144172236259298394087606001953376763508222879724636510157095476237215349200322731357016598810275822915343381584787517989878704043990817146066699022604236425234525457039522910009259335010988818633042388559758200643118597345185551739711094756323630482192756930644734399921107592367419123030296170807384804495556029219176138172875697975745698410200883549777500877899796331363560006748326131905688955217427408753688414765364598662720604712644222317489924494950663241387620192198613773488559565021146473257656311519328014598208592247703244352661031790939701348705942629081184442144213218969003788190158103713950059885663866396426764637755435853075562702178629184058923514680418957627894696115836612749536188867951368991933028134193638799128359523274350977610713854330427417703380895042341226183060483090454223175950821216018989979599319055325104056419972444817861175435942038695517745758838716981529318301837075128317676773400265784555481375552515028452834760431809664774700032078497285474606714220018904396248640696781445184574322204291145008486638079305877202665240672179414658059841126695665191381478539468701867857944997454794255318232160493402374288346313730712208857958479079495319898963431386231399593901871413898768695709700478829109668135004423973736971954830805516199434136517454449862843534118316308686050072213877365927226736756892632904538158086935022069061205451473456564786618988962486968662232580138278224221040688742833164308463648680877352380856899606468454522677145270005733972660970482446524879254539150831342619544049619642303463912340990889739269488879939000008501597527507370604917650915963710797895006404975741431138531116417178757262041607934739040529884716568909500215849611479979734537256949918618603299945333612654192429118763416583484194402861131159631031942303512085446065317651818245814649349906527336953766449806744221004084890730525983997175229055165452126142026749780020292598960511810382278304603947470659729269841748258161301653309644302940204629563564636208845891650393726810385334522166247462032829284073274733507380089843734167383007673735249097392836955744602441785975543516231639847115671452913748648780597598894182808049039817161420637126835860579167799752252646689656907403231217913561037643158403839057555446926798871990866931185161844968802515071231060903218414870051071396056745331073342996360698742999025061903919186906844688990754461323881823795620824465556661323173737903564703169221846860821913529631627721646178507411094095666004936979459699947030437975620775094076465657456497110001556066818056591533474012802645412438135306793146135380146438961938131902607425921939814755443648586587766932978341512386980996849996385304288183367082294116350543056756612245863341653539338119303064630388787485238850883047423705026184250546957348195218656478676398895249280520608725129081442423322158373363776708522036136509409413592265288103517428150507477933218201791785823588380811369188855054388500554262695513087777814211216309523015619795306371856921992194730634682197463008792145703745030055771431719297699477500858854949756672996150713257394562307109065616555461672897187265235556610830452139258302571522409446862701100302149537198727118510560956496228731137899137782680630038625310837057308417169814393807712754002713994637174355685112714284862551874818550767566832666026474594092744690025926214841489088188381505991967615988771917657255891518090252776057527234745630365922596308052958392302737594837494545873157828645217278301361898121736422525161820119269013696755017551372896469066201834311309772115678739189000526012637990624652131993397982256080889414151005095749865190171070308086382887726738260786275277685300697752074446798275140157195748763100920630762476012044281900684290258748320066116672366330335227727121132904138077164767886341578521327575567764039320452614389077522708575720223292280604560516838478928626579478808677132195780429565752467656675540321144471635081674165751147293570915816397376688994341440328706870705890775576203811592026291716822096376202933360805648845446822370641716129125595735276689917636162843358915097786101057092799003888661662393286268740947443978267860440671540517967824707449374379787887074019107391895835810282822270941259691582549611692439373912660121357423973986606243561133106885647764637389455430880336805395978304646569389274595971603090123798105178767851148278869299750264543981712539580655759616932973455285582914909478521096653884920717992760511836024775881644059377685716468554827195084178293459760042464448583054611836309780608789775099315509444879973994493285577090123071983547091715918872522634035943216397910294956169485132456235684737877655553185472664247567922290248787772441936120832103856432904005937040410893376659156051296395135873266940739993939764310742750039180585210778687692365178198402524165956772338483754169650857943501012246715576982522576127366766214478874301622765576765460354047868140211114422502518509738017573980580799188213737430782695399491400584106184872233447562427463495971678617214334720101998522589102610098068928639528473265131060473775809617904241070063372758426101633704938693282263258684856635027571233974690790608918090468063657560843178403836756949286168248301188556520959172894368351499824979345038611669396463537365398250212947288862303562029350115418065269544185065588386999771061760809871664841518890713497041282636712089011997321466289177654824152532737834409472122878649370429809655256277863307646989266260972263736415475908758575246469339457320653470128684023200870435507393866803148301797620614504680752426015568025545350179728853300188888357377812602753671251127723644342788695333300181360688616800100971560609104996612822829732034004520394199696798056454800702724544839141351131077657029277692180097881795924040830506299158201568032252739267270621626238959613629040654080418550924787785773608000485965612612930117628443741567942343083636936407130348907461330697256172692812956199689541148679949893753412046031071940747532634871041666098420877172803208439638960080230295535585745354338529988208085341581968593305570114109826636315910811251155022824067078515508189653146493878840318765794544878480201068363731838621670494923209779771302702258802847831498769105424060455246870642522482189571980202361077058270241083937403140699238674411404586933518990749705912745288999644429089233598263860407582501038358657398681448231086183475098317927442657146973181077874504553222329634609193851868658108562239675884425109834452979986617924487892198419522523333227700809414974146327581750460981324417205565133935703850461807235710132327870760018593978240641172479098091682989793840237370903251410511936582157109664923049735554842237005742385533954756714771985021647539678403043449388580482526401249842760555286901862690918811643500135047241556032177734393265000478240561742294604739144866486588718042343187567896908947388813406767936497266575653270342033745536291341532733703185855342163414871262778165116614462255472753825585155398831010690558838866030961190609777966257742335997092360026520004779971912737412661558745953902586186205078776380698078253057262886465566727919205905357101849142080056493237892955193773470342030930240517142592672066633516521030627840987177795900383432118537675051407556566972389385966199092741180011090884425575874477002931826111691603425766332909646979192692853133612371419518589602125084568961017054199367968653425147508705053822824750255775789874959765183247716750862507258063745309724797669104476967438359685073502575041800843567779520610546047361563443384674354284274170991077532996104896415520918634538416317599985678017776988141799915331351993025154270235713708421540727308694080048658444153557654025187053153837085275709718117787703842552501867737220443855031867663404547670653364987984606507500923587942195290182255709929391729828526643679879133606749129939033710371010727318666330945206226242045219533166717426538994318898435292584626385179093927247225551524128671252347864534853110807557132782921569120597706682704120828681299798158046352013847337850234460743647503096420254443740638861685991761498966902841791092393753507512614270121765373891287956375116171834430575083995922545690145833813098455281200786274486573519791525250233452385090406415106756096663928262713553739315675868564979152268358819576025060021539052487834519318913386823103030360679189503837143843638908948642359026043517493300088780532851293963250311158948818664948939547513190165466666691904610569351088512641869516708139928597434269719029564022843415433992229994447465306388164512668751209564841396068438357366901081804271381088172790097309983300557281608391382542558592800526289831063510741182730739419777167086136051170389023926065861450161708776265854823112043390004683620102371170172736985571052086301515943768091055385226237058516802520310408078693159821474306639860372074040560433582278761658407757600767834883197677422021582192026050908523882747493739105774423515139340089163531529382302833502018060232422987251013924371745093125912726751518167139882629860984522142671613068255346531558438883599158489415388294069937227674348005529315913466314073904819824256124282747486570448842624702269861174544786377011783976964276600856483026155159472311355318654353095868833969992144113246935497269458132920906739778479762511527659175039454213755780314802951298599817067150418316945929178961211564831486097576854135480852248881149947973979943459484707804697377491837551877396726460803841549486466049997240995952180471950895356263688799242343892639614457734024693797175580104422095382687083257958170983691148385068045630346850483988449136177739445849996551685350560080491188550248428749043736614406479231995575202453803371197389001355335593999478292058525965565945557206143151570213948426569761808271272624491292624020827518332121653041351129346532650191018718480304298479803463027206976478071586030856234965456074373016579817865438994515620925155768181305080194338773452233327180727150881839887670536375672550690904830906810967270352429646474726668999611538277726865007900152495172638245154864811717027884469504749298093184713930589092697265638041399828838246198751152912896066541441044021140026353255693570052262769304397474382019602714206206044787848746834624696384710887677054615694115724932422582563763402238839945760853273360413394764166437109782935798984552002766117103089969484025553494583947698727805884726607344978916343128766225740684071672070459195291756407975318325452702501231059546521461563785269988389915595127052220069030282390752104915567519601469519178807955686247755899329838360038619143545573557343007718127993747446074372114485229593745146857533505798970958466847759681866275710012591252120475072462208231166712236454486761585299488995296219156774764215227472510617671344380467408300411183802646914446006754065397994870327677784700288796732375517134806146495387469791600200901302981877850972759052179942896160567622709393580512591443252564531745370410983510687983933565305730346488021172574855999401016137310625010807258421145815671525268068529078005642883085659097648283156086059642671901216450137543131894301634890917437467285938487044176186879207560740540938219588664013458179304305406743724882665675558364219041525448054787725387700772207526613452858158001980654223112833550879522539612132361456385174918210769082258271016152910094074936982969601090012721491540760135778327204545028026200937475462386774656293683284562328850833802581676381290098071114131548789161142607716222376780368918764123064048493147566186040754634644503858518168751729367337181051063907932097677798525381833946278680530316749881035007133521619529950943258544029062116880885515892263332215659056184438153082855009171314324427525276386317639736971222976809430428166963340522551929866010723780494098907195856567394085138859709496415508949228482296423016125573938006384304354603906922499335753693714201256583741915035499249888735475589080765393507979035871999770757524626115783169535318114363392922785653827067310159622335892802412857832576269573871380376004226398046387652545094486559716851185679803098481518885714709028937757106159022370499825286164128338874447467072732339456403408637705703330490252274161832135939146002677990369348450560699993781583426949140001551126633167895461900639956564411448777374772034691493458747506526070135301368021803907665951624919571493251562486932930744936469171710564053752663430610802078880343395448776175202983877798052076452269416170750261716049789024126578041042857477088830753459022822860498906286109037318446764195541353925307157260687214925109491640119236003148022426950132615599194809343245300542787449744986079290440474018684157772695711541019748122063835121481484144706073410680755573354525533385445843254795979717713054197901216628097534804863659499514378156721178998569992417275096225361007723983698381834489318209117859277944925267349132839561916417525086176889947789699154201210911949392726700187194374072023855641836050668287255852336872816140147171059047110727038250100115358087344891679917232311611088746192607568998645117345914638159766161953745246450083424764382480835656224124784802667350946559169643403547518797321866889988820110470226374147235574180387800577118642814879592555372136229899504507042464078457194573648981735663115358599404558673758961683851151458806288989276332621869045613086929423741356087934475849890282001919842448848673537473427823969698945121745457718062818779757850863840703808712783188427275169017118667130682062708730570119170203872477156665332335108427611659886147354999021634764187443039337651214510137126407072970555907796518381399551292757220891793885766669987869773089677434027708247552200066279522351426912295911333291509512693576388616086937946130583751094241208339945860204486201980975518227677664386710239027647968934821844537338719596122799611770281213478428035507957674840929369064575073590649284175710172043011753554545061408045259302767502255698952744921998631619106686242386670675436740763781598261289486760912132658586156365158567296415393238220138641112920920383828331685676033123128771368853181227434262413215743471094066169593436894506951819188834449403179406062075908663987129855771966599843148122062230573682785594616182014434995650571218650351801197487747129720643921528312503117243822481298274243415598549838332527425408114122050579581744475121167061169378243466191398593466058342625104146534207953733840994892375830993968561486934127443204296209373006680865340787274026254050582341215111646859599417899494534325392100739008418590356100684487046258834752635471482065193467639570561424250711451376348597205961295836494001652104397263049070421309277190388896276968520632368632239155634008092709726480440760767744050400474817987030600102092307805714409500768147460122030421245158658108212563077880449173107464396645432905103703175949565098561570708194520330718922063725592302412764700267245264640489270539298400079447632498314693654932118825916212185198361204602945754602733946495947137806006226587265734916031779726444845066267182745531885818839092796810926933572627390735747883360775896248294545918820645608898281137685066006385360045521559721088765505830902673899737081755979557354813464309375440840077361113616333987161458956660234626054453821294695435454806524080226112768726166383544164471588141286570453376377208537736049241750200905810555506062079685757645641595942585604785717992334186214815383439888669873513392365534176075164153395219743576993687669400992261230538621786841585184051010111159707026866450974444470294847161460568829463672702424034115552605937071991690205671349643502819588166471916095451084353528813794063741753588623626275101541991610817748842272825671498778401419761282534292966038870795591155993610175245574927026320563816185294034593059184637571093869028441909991917731146843824318120749522253073028608449439657609419434049585362291246936790523869998732813507997942617360086407170461161465092086648797540318336141603985773231835771109212099880128359620595834296407485013557166237531848558259727852502599083313746975773079645221067943941948922841708155545502971732423120021921079690846355705737880904256489865226736952573255937946564034510430723868229350918944572034833612741648348087522470547129499191333551889242389264850498994343835796732528836163289686141882328453568061835040495342108162138764481820147771967998540265677199841996544351260424379348206903517050723002224630396136576134866614883190558826528976645517802359959967594368929911898213754751852295045642524562376908183363963345949636599181624001439670168019756281614863673354755148976582856327056649337342457897536510646291903021020549079897230002141421536294973592678047831638097607750440994434674171136900669841086311047900378778282792796733125619490473318561341499050230173562576615286907933054690946313591546549091679743958160050278951257495011037059950845883851054253585840044347343849093014661725689894502593090600323367039398743929009295178161776659581143321027954909711013018957702622476119415053784612898281561081125751748025004612538086139182361850824299636861150628927430258342287962753084967649982069783050322708756637870010962388847181973211508614550654538217944057582220341249386423086377432225479322823000697218130652256258889608452882074210724047024626104992151366864231761826486993171574610700017064966610860972278596076754216167303489003858540518323327962288721265786843658643156640511285060330021315469091587514808770339140592203910641657535451971513493115622983131482877369981048394177075138222436396411951914168222742713537660711764466059801523912705620971846640363543563422432934404967343031465941974193222288607979390923730434982012804181443674655850472130661910933049031141773451666763376010501074879850208278464426629727957998471714909062068939388931040064364395561976009063349977701293906328188749056001195202496659372093607253635208890861478692898832786375964565354747456312931740789684278689683676854616211474166821596189478710772097569853267425664263882532166483768693957959698581593109150505081372754576706716598186542290309609952168184613575313992817029491894224163618739685379513618906196065898666216993266623563241006723527725188951574435220701930249690276746240153880613211464653734438435032839152812820168426963390902519675153150212337470575513318374314635905041549176550928002534651753587483142043954318726664710733532040384425301286344425741253859875503933683770000665545283402529701133703172167828018331555545619326456908665272818155981157773170337743689537137248113312666843688771395269984208153892904681063714402822329154310123776712179277228142515479283923406881066697017003701164206845382692884454646509687560270342384572102460205324665369816199297578460713033546223865889043598021837354322827897215813448468922514547748160830684333975791252929093273277057647468380026785776490022989819509949350235754651494538859850938147267268969701692464864622952883027788975024188249387069559840373291620163053549775623869233742706480112942677955603698306650719608370700536479434345900855942115127047832611196331797510822310215338503497137285870640766735996813039793991578237538099603004808273861252192240357205560056557011683948996599569787951350836987426472504311503412973813147122344360816919339598645201698421261134684835265436636118126973713199594270831402791834047739331896345177767905515795782263877806710661277951540662030409911823311432168036078504923933007636047042943025080626939279975532101808184692053278544180960952956463770098370938618832704402116648217106360216600242841437449591378354443629998900780646588805169732465095445690171572420827190946571181051923936804052952441075691454561528317101548433117745954080983106007203895555514920275689833484227152751058914444527873016292028884743776506758516557233355922458579962943313488554136336452382960775716141445111443248550709749244616453091904561828860294342764486748271670495675682902713765608255114479873515938519995126084826768391637671311387487973201075982603368567994078548593497526503493650575196023809266134458761169981441359120360181542220389131286954929410324211909631215911195969078604162441787086696136975420649706464364007723519220329096036711142859995784123617843864975984387634080165912615902835169955549723246876137237095774896437446697900406267874429066913132011823834307380210852899090285075731584523315135958530556359763786600108943288522331820600980687883112005128632418433190430244588921903455869285577429893014858210604117464938201278914972837713547301743238876188794207987270885195635085319881611173886279860234125158089199938180149971945559594366761292066595522891369013218635499891411338627888780183314101090463522142577373535697118248171302466424042157427957272995391948718492416665547104426627401931224799271721001670117958300632564391465611934173938108392293411567018408884071961458628150836287221354930619174589231718424791909717133394655552353967472832100727033275209779977534326738747965122252954014243091377558874365191495143487650609451592597023993521647951724049300458351922995711722572866891196913942529611145665236147651001591187655282728578681235707065063860416210485349436470429931270421141750158848689681884072905842492130544843488466181728841053016494010010082617910087303331792832953415565924802264348258423064787562095146739129227952637740650135585282312112453862489848756367561965684241463277559699245274708591615818393614279826949473879822060361413268533483600394911626755937426193318750796312405838610948472671806871058783638822508675671097978145178309679148350057286337706725436460646323677496122583682293061278234020130772004676541705284524476259340454588403306849589782508988325138672041529900664501439760340873629617210461146778365831589794816035621508086934709541976419135737815283473745329350572142810842070226213428622075486019849490358373107551875932388448927207390278733640451597069014136319423266877772341437247319974215868191984681554115165110059254106582895673864300429678364839979365527264486778997719156816912358113845489254857365674935489451280274736809230121743310246276655640465208077185297979712453623624716825079113082415963875453782207232438428739733534897568296741035402896978395270725016058235949676246485050696989325892045065277899007698031543549859207255617871198887361348759699976013236357189185123547910120776191501505571177478759743721052593096624109982774353057946424610195085343541944329214247247343980367405700541474207981449536010784686197204935190111802328196369533060003019887917067358287197838624228657985859823769736062832531390956900957692173616977866701725763244900718666683448080708058599731533995864847964395934709304547800787334854976113509280192873391836761556061197923943395137795735387704623825955065018871774250461905805165221714709633461008106018897511619814032469294156043677380937387248129920892663940054231114987124267220980715760336934294290843021614619860371796417554004816515473917269624737458272354902181285599801785542525528898716002476438896991282414252474332340018211551302014063788925350143581699347030502250521662489429416307976398001070964430216689421831286114230922061182067869928768752510951396737318097575502779643775690924502373576788078564183553229483577332785403181579715867607495858006024887957143636806515068936808298928690124012186036174410867161142327453860391218707747768692496505266459621660038931589168642724785907712105956965741598795604809011030667470099158478665481222967779557418384490936215569282471279647922661628854948473265363701798218149786871126077785583957183436978031096513685628405030090702117021214784097499207162749447928398706661713856963790221569454319199756040135012764888077548951214025700412206182217110057418143779736656628609549876696403186062464486851278691502921545845286361054656164013808021121668936132727370279388849133695525501347474924400368176759590280816955309819987267473979739970562741170387563570417439977783988048060748340859319458845248326284405999909141536858284179515786997592755978552189008981850957520603720745013720026961713382319608214948907285943293403857592007104119102902757952595203626868936108984916667088960937946199278809598549266397502793603132870751962510016097749267504771085430372343924800436643455144166460293957231047659003469878233749526468524864892851468341630814440621685751389891364298865218683639327776155029050388858097348145805310081432685235749709469165545263337219307903929863984043819741705949002024831857143175004155940187510006140619829325828634720747337727554788673145704260969599741307567847272437260263947808255911999156873571524535998604186441336227503452309423258997787889267720733696665265544255287285103158438273775813802374723410354624470252915993941377543445746637064336975245650610994502321387481084963462057303439032867571973898307687323092772029578977309258053037542475192019913154000757847621659695980912265655495470623436673017902054136296724792570252513631645963953853396611835402896209629954228042223884917919183810107722916880868212509286321892285740440967774657555123479939432240889311214055908176720683889915545923006850700167771379677815863385427036070700906053453838856689813044710487990419797058297534126893954615350119461226086185382738611896082699957152247983631703651721840370981974307224245564963999510618666683459682637141590907192489175175313505553875726036194386914591318694654271554380993433944222267864589963703019790315079621752946285321812580280128619648674728869927938661020459483531621212012820882713172517653903534208641060767173744078966586850757722676779508797220379780835485672471790641294270443615143452441779076678707915009825812140397676621090659027562348663181423077203207638749346989751851143684001962163114920089522275630691598753571967972872808670782512362177255446528692897442412152986094861416737396639040542866225381694253839999791327869730456935640699261978678697832079477600895454223777498642111083773253416125979714358246203945546538813468096621948047973181736888688567006362453143510944981750218486320920125451658366151788420750367808832323814113705605488742676265838192495936183986307769386573493862829452861209876166936421732827809225011873308768002288372666897526523627062714246037702567769014943571874808271964350688257968571304523382384416303852081373356467004030716033577249401736348701340714908345376636220113933132055352717444084550340199731289227541323409257042111067250883188038930561415794863948688805655860366414628815921339182166718528661416752724170961826623565690255352918462853116956094084218669189564557542180715775348275911110329946978834945397633919233775068432858955786019332237277600215256150287835004180036358863404586892713875705439006616661843900055259934722136311404865367590598336883939703685017621653276451113344959374251011693361186324832056756997344348336735328997717831336521559169314348553391012423661259743149157867859495384133572387161697590961544103049902827585001850791676788239244667360999066644141933798230067326754208326476566568499757889085641495258911247411900396480418145546614068157558087870774392392129949308635173000413230176618058618948422840316603982994786784234520811253208613992108931094913636857287330963077381805075369275733970291775160685737991166348980986745666231663039301176090038737927865816180572395071000027588905835197531788516744193521045971297509469947546288360970243087951083497340598304929524415297156963347392064678529107750207631759444244308443023793578140213296526271950425889410935495378906443574009773338890322417350792340205481333167995046620361900050347404256247662910385430907182351752234922433495616183241141070168320931495491943077964268442120241562435237775501973321541499989522606968236731822424505718886182838485423174211339844674598174951259354704334147955200149245605997415143496800515443774496561552199912942923151584422930944682066357016986787540107267437377451882556442716702268692987567146401078468989562660801502420818431684331021066210719776494631418202168887133702748318615460602765866282771158080798699585767743551549248846933171572981355058014446784781650067526734013599929915555895898741687283402101677560269304936632119780319550055778497464902026232790762725422220139712897571862745057009978087367278723210796830258525241324220374907794543145306097161216743007953809339272175546853693392942923868622412231917282667865752604450676692199843406052793404189709853676471245023786491912252144295047664460630438493962460648356802578968264501532211795886070054431980905136145049220931178349889110015258218494635762328973382968436530035220461760260327058294498327584524283993247721996383025610911332150124081062372582856192911092228441370657068281407729989884279508942339616798180538833362534438123661681607662791587026203512455618231256667877943725278060400610230587307744084624251714777426058434161546842990300032374652103098171121892120955136075442701570734630926218996793495436693085150850823609631422160839600731265095306521640843707599449130202639094389008116292423944699937711991678765836386126551935453974763045518523439285882154772043419123609593380015180278124260374564795963013541024427880913321770783204516602678691777955174159734028492001583579225971846166060192724177732880922515447877371275154866627680282641714561733362302026811704020804050235836259480009686932505768883295947427417825873674702083837682099583341844705533525463945246092142379305687730454200994436724361465165310707295566306404583698943518266235092833814799120465033465687022287179064727722134131980943715062904300113705726548370072057151136030339008263644704928734637304164695086517493945719881180766657985982546078476347191326340565872222426147193512537421803685102412634688752700725483458991012848403070158247468784716407888638619203174846317189481340713690732272715576834778124040326560317822435715703614896100933670541606717847662272179355425218406856445607424641256839498368846477284873273693097070995943244703308659701285652336252052713393001100778876155673805980979033784029107374945317203897522402130077705030309917556575303266804840713539170526138780309270995531844720488924364853174713300852215382014904298940479526962007680870520424085526144696024727240092636634586611443151411838389278762559857491061375140226932081948795776079250751918929287044190438816749416765600456311149464732321694560293985549658988582145121372405836902794375233738593305777859653939261128826634740616546063325257738174099845944950069635311265559398471012077103380254641188037801381607882354548040058204316574615934281815339884590045605667463517265362026050938380172386516151526748430811145665801885969104645964869012765043357146904271558638780003082779023475608078623308610486711727636826364762842187625905472488505930610207025679428843712373653832763902915945025362892595922572228699348429109839497130129862755532916748962912419213032609176597233127910027131220290584860710158224976727772136410311792150560551165908854566205768288687697878942805749166084272216970398940455771514475629847554924483719964306418157973835787559165773899501973398363721090147337713631670708147843255560542828713511464642530696849367979754702826331931817330545254669483560960164480861443737590035258168132487888402667998357612893039422132356270115458836311782784785651168428892941474219247157018336733217379623377878281044624357203269964074343335477375070029221677909135308542299304435096894761409505437241566431893701816971890222874999288083953996387215263869082266745324070613683625498098583228848008791217883856958441642724707505364170437580204897974619690667922019606354223868502870600893519427193881627123538366189015944400693453955203868541658708178336825172865740682467876773921355733838192452710433426329638659962931791808710464136302446857717038419148188616917173587562157147390301925858234594962672811143096288130758887555865610164251657042220903840064917113208865290082738907211980705315672159055686778618381818169829988904419695151864883453309882003440964030384584753778150363204811975796824447487265774724144999363268640514818693987744362008904347429188923892035597950177466879953863937001410580276426239610905261882580432176201896189103939545161624144631610641230682461830517451199973098503913437456109852423435489328326125889879865292781799957186190448497006987767655886267756105307183095722308018396082237918391667083847123210844072318612722189623654943483974744960748394817519621951923661060210475527808741555647492286335863839876772793452150405976564749726759803060473693874312126569783915304389210343972204636928234604146321945093938463948859852447151508898388438357882223730355938972340965035620182499922981657561357806093352188298918790483301088949823130547242236429940939377900205364850280193994941154907639163559304833611218548147461273789708455019871687347687215859278073503913285757097710708459451490814986544044343618281614273135891951804537288847845253382073293525409513679738471181114945178279597201108728973590829598341014482939510838427903201744733283026462897617131661893016703075522664809476371504008917624225149568260308786240759843326233009019962199596265012923661260287395926559982719194895027416308916545664783955385124367757515420160314031912733263378550415448061676694233209904246804327042226283955445682598391922960291348865997839538240065054250746249976056086424145118152945553902705299786471290361707559797942213388898015239763172664190992134583687918466908914821478614653603077939388910972918239657802956404036099395118107437992276162714258939216556550735327121714357372271908245061199206659200549607234962964213463246700817946023749926752538323295257814793896073266373313893190012130143265869790741981686903474124965828177047345571980173011683557583465568701683923376872249460072069697629231021836090985684026709974559765863738048669139062184816510051238213804838110809220220859483185990140493151211135508464503288801558794100901669589501985577258207011838768977975636512738504835208855554590966150048775597951687180146561430600480763445135623434275352104403922631048920136689494161166950656240921567023146718272013135241844653939845604342719082089072261476029724827702946252919771865905039341759002673369252557507451908222649536161251077277879463296725758096644120308622355198273529920728191974809396190251957971058821331847836573113707096683677412010733404762453648727215107925786225235771391698972488831873395584957238266979736375441816086026321033072146890641176479782051752014774056480449358742291611417624824196222989992567186823238554228209433380331577448115015244647782261780525491090219268044225808961579315252543331935207129000763947397357275065657413321322893602071336546270186644661386378397460525733601819486056579704499310239911277751289414075977996516969089417668883869317553547760900860006648315139777041923967367282980887628235413055489377227378093402723856908897217197326449740608246958393285252381264203500433483529843830268994770621703365590998314360151689411831552333486430799242978566017136676384437341484079081487433506408046521461045444900962138535309918317088766392562327788012942149253065366327629086871006045255830823802384314610410386487806885395033710420087193432717317657128874444676123883956223911125389559522412484958915140125247863648975760556449346775910751107796363570301885545854106642588285879690478281204077619775304256742526567162155253777285434418899894718114185784815979791904816247478240813881133776655855074380690928002113939662745093721722788740885516804147542504180731687456150665891245402728992351908056112578178418242920486852378903286096151750499430766317007562400803002107242305041872544929671250479307381952004559212288166449536817597123687125730102214802749939394323184098897921862137409356521537370847902067566380381385572321237870733942362891228004562833942475271010684618649955312852225250174616322329530101570206068373347007763155910640907278213756838758554168737476856548902076636553594106633696160916358113119446483309802013494466272380085591729153574479864153189199791912788845554265779299013089602637336504826518803427427748234590786647322287076372537542877470185983851752091914020027283360691672279360208005342675576634038610016868238272279690667211946154041338371517490706218217913576349939171714961841006673652186148156641539805836082423205859234275069837929593173785405713180367855210698651587288583582556671782359338521878293369860803366495031997933277852761655460225546925542447344580667674849928690943909656559662380223660553094403878736577833761895219975329579214771782554623133193330111105586343501826583807298074804610519485345381515694419337810861286379455483598533378609054541931052207940042077719075918117182295304593762465325914391403442677898738710055133029912717034223040904531209333597404407928671371393586437799252463003647052184669278290005590359600594263424846139136840901919186477187625912290474019827016941955363328675714834112470741751040324716695685545177356695685643512402150596974696066652849412583163985153750981700994824361890426891297710635587710620652544844306027038610454904705977642391285777013085267681550314359532436567429818140596277280846884906806397379086378901663923667253892572315114833782809643137316149598561285091344642156408014308193509514546804866669560357063312321928108243011614805083894529565026768988875333262826806301097386133814793525633802463255309100643252408289373871710367447580925599161887002033663881343516406914772628190487064088958145000299869295792025818166075924650767762980987516952903589661278147568766844798030932055058845033962991259395626331834952801283522883079813655790224822443484520227326181985931468641861727783689042720102482186177707084659686553168860161207947634561084297827427315641235988091352408150823113516436040712384263563211308744935361578634247562202709935106323915942878485286302107129638263040528818034768397179742382251331969266257936677412375720736860340530677919361940285146090456376410244615748620374107839395607454914308290462354294739742360606948549622454559825632683813951311424733709008767167525127891921490771205342618155749112610640397566822073826525005080609300125884810152810242136712842769615548312812335820868432733515876130260806947947769434543045083119530840166239133713663145063117476758697577289090163751541181520051032723712181446673506751146511425348674634195249528704579809088902622753670683084264882744802293797317553567306496090287360917789968695872989593392213182324611588302305263600542025922101891853025436614824279278669687162143655043231447618810603535849098908012034595155728742081821871130304182107351258172334266231175288492935324797148174061131738122169987685845102338986570796843845071459755097394847065587516450213749644469868932020176118077772621468392407967011438146464803413146144568874617973767088473165322542015399748702275647740397614942067318272625932611236909246784772860668272383995877289197674926957028597699142900291057784516180216127761671148587064315648867261661837785786086375468782108896988425792056705599405631396729424459116841915616183341418836891307241869245764631337624413979422655005421573782651991959397477853532486567059420064884072862779896270172766879007043296654607727425991121172854115832567250814737405680275112800357017523967814284930328741732705490822279203975583255398048532849960951865536661454950680791341510029853810030711756773021867228409454187088392682071355424078379750042848806398197631037517451051635444299653456161265800993585117302896759547956638173197030522409031417243499897849755447582632696798528481907384373695302674857929189869070917797549231826660821547251090294022778890524518140825088194394629391391918292245986511728023467963885885314023887948339740578943747049156839500097382780583701036154018494891305846581666729894777457073563563448506865714909449203938979074299845316099749121424036123842253569292124296746181433754561309932970000526704521054572968288270655284831064374764403163838195558972343339482967730687033250064372498408519927919524468870682023495075923824003299159145889488297644938654181064951388787923850624314739029757753439509318615131965309199617484383541118068955457639651858581929439708739534136915621120308764707174164679826425779308553224469462470988379400545050852486990842239314554370007690145433225108398712722711767712595736148700521454244104567230392968131661554414239256978334697567543769332934580442543751939797570249453934990740788162463067422411929977837199762924002813815479781291905666500484530088355836227081207230726010630040572553682975270135292372104320523811130542664613100955229174085126649349081941978580605079889281004017272781142246352467088501249908228723850475904956484830665512367545367430870408502864288242093994190941093505750702845088606302012136512734316941930678580980470275578662154187758070895707978085289838162636818510735680589745283218400411472393097960790922735723183015340803562634378732169656009272696006299858313309379819865432837799178992690960012593918403693481905535285416930021266317289071680486162914123010644691459720187581811262184713481272045434762599908908660313459194127833890150352531637786281399963604289678666245210996090313827320178478661207144394752989538242848298525297742354675265426304594176496184109455016649534891673006078580206470294818907228346415461803822714249388279203548814914955159159369954837906857883217339897090689356659893425543278300902270881174740280896478359429149358016105782180673067774981800067524607244782529226887444183448083474899262272698315018308665060377387561237975443431238086165544397916388327836945965814068612998549645042411227126237307253642816687296001143555714082301625586347920618203832878529132598177134514272372124015371640371068659849505173537936237153899408525931313082375361676746405087961685494989451648808840719513197645011627558179339407004000125471238535431710556769268494693856850107733154329690953610500363258401102245627262533693057288579713010827657444744937187001447380509806245866184203841348555109888263482096402566685263822863526450863106638155805245276921134732328407329567849983776647597667861487684394214391109645484122733050549104903932111348057256104891175386948352134664894873267626466984051736658332781227680062902670822945602299169049307039363251329643616879201333021691118010589127689280800307662521392575943172882717471326637004969942835425295980688009599881542734856532443534720639340994305133495853615967681495538428168865641547116014017470399552833187640283852817922359555070396035595872755892147709500180507082498148009216397953529884966120678029131167359313077561183878798590723403721970247863090256580065671178146680180523323231124278129607811912890254120151454281384845591340499722693807701551330146866101462763116579317240619039767186165837042885584352502546347610304090099133784164761025007013968329330472909412694290849181287557478100117736783750594564291944587756669968441549683448389093846203952571090344363650447620494744007469934271478718225871896209261582179162862914853864074942512253076185014618647718769257894040344893891426026674105012548558250138883891934721328317809323214401462786284663818411846903219537246677508212379939856092373011922027760976696012239210072324638278091455260283301789180309748428761648140354115160655300273230812921364106234274422668393941758321277328671777561639128230039326943969225522189293799015313007355243517351999206600330230469595194047868361772433567144796142452359286966382986192708288018417985112187056530392967846103409407766961599982359190578955144991007403360258464976491080938768253946909742420763484154659170390600155087741450595718235291344819870316069580221261967502632563370787563592797350501537297350987413121489799950007185716250147589493453046896028038278797887591961135459593498960967476503501388532641434334205329374639345772312864683850088756509970691124761453778349423625382637655643783261411585731516981045559623277479312106449969099806329926483619740441459674049905112574431031376150923205272569188212694938067712395149533386171381494593499442007052177098711758896684553360547145599305569031482927724362310129464821376163691301572468556120621892558098582378289358584885076216122127848314223825444109185410658572434342271215664724784941186778355597368612816056980888166908984498985698326113956870951641477072088521181658625257443561107937289619096198221040676281934392914880844196136588679337736098446234535560886810285934170215110111513790968320746822286501327693865803452277294941150408267448341351855236493602547834020457563437156693488636438597907969901713023514218399862988464789834498498913261995312955714962663159073507719502982423133101323985256469370229556127626586827477321213080426405164082089686667805582706458548465566420413037023404319634578149698427530857739004445013423016933346901651836004270585419721490604218882988581172752423712930071273743860987860522301775906669304603697689261553912148633382261573107646147987807590966840976466837190685114781402238319591470385378413459955030896742962693433050050699566808070643860363325555650646108983258739357929348809050497683080665852594330097040558670859684963289672525925307826518074284564293236263805059629636816915308344069325625255929967867421168131884814677070314285543123922889797894661794632105295408572805323746695205400217561453275870052521365057685240333302574354994259368571919381930227782839409819048305099224389202280299454696858028974048646944195177549683857566234408099145435367438880953208981164065133411724860368363408560309238107232682029277838159713625632558272168035488503814670846510607885695373056592691002082970789572856873524126798240992455378690452098195772964607898112158745152415291421283686213824885537373662459632361900742254844299226132049693869496111419699017299098250556876237660493517507438915586322083496165615781068800840007587214631744108213199815648506532198024298493364008003374241749040064830252861625543942857540126081410932797584312028987139274254792907097499261850745841628971701989037626770110442207870813124400911381194457366752136693226945322939386788010250451750138151029831973844323862543790008523257254889368368005814891059114391062919865099452599162602535394483873850366787926467761905571915527469659104761141647122455739463387477702501836531882966638468416141632732835658435919464908871600014528266630166233262476911311702768323442726640309580783152173179205708404137344241695786645898824889312066722602166525065980668708665589103152711228279887113734375594743004717088284654258274431294626038292250596653289055724340289551387976122374536797613853997507472334616850435959738818776153428299807045957375801959459155912560873617611184094435661176322139732105627254054994849640581041547907832569440493643827581914608555210718831545732434887712154532370257469918832089413020405325492189329532214625307101469272449419132618398507942836545482144562249198760211621674414092771210346985499100810726112525634150820550467175954485461173567903353260837151315492911215108057435869124201868625400962159107628909531998867407926395181753811405462295086069133850065806746427531651465343159340854551777372521517913993455967935529785686819131228055695798821143820335204322540111728350912495059462117150468490907044661987896434135956723011553663517840928215342386607850189348822975786437346102062676642806555258712087940816715608784636149112292284474110140270754409196878120661295237824262832227722839021875630452553960884166541449127781533667079977044371270926092421842073287789635870939880360814039279343028250325102496856749000573210613192688073467673634445292840652292941766245698644188232961774536452064392860353210098982583000006808133028677206755911880754619074346379609280027138890530961381992948639223159706053115569905470555176203423285763344261329026024919518676339463928165450357570064207039103774859979276110655095881713876773204253680054669613148822192590428301068897012362018905467070447777431019151034232808143547709976486171116010988532829848590567816907091061687663474821697182821846095624704684840032891268705267155964318172502084142764082174745868717806210661572193842438018965617310937862252706962331029966780398200495966432279879940182613743904632544466314427462261471482361589072220101167504396299745403754665954402525150503487148310268872014151655554407543162248809772276955656683843840706624931193158927199281935058391681657155289270673484693358069651735391320843031215984817728936911402899568389003391301274941128975850942855389729841561728460405509419229619164516443769718558839508272732148995306219220541017852592034378337179435374185095927248806098391374021146331932025064563873268375019402718743637589546133850380822048277312740904542997136318858765717218312476784182289888630060565645583588126811164675889679667491760347559732743847537632472986006013661251066761488689869989337765715259298355798111284266912342140031232310269644589008107383009915137769483558770548441260093841739594449457309958884216462433386006796624857753315365279879359849017274884076135054528426948010061595861017624219295547373222396227329497588352091196586636301300904582735382369535509832466749430227134155996305137560134645164107348204511088684628469543268070178422975286555095583431830805402147150682784641026925407715496766726549849724426356042727292613378491144574819443004225579677422963121878319778581001840341650638417376062764583256592874536524442367382117492194676803265139606663537465201602867758876805948953142221612528633178731506718707000026063389774591614055716187983869904193671954291291703846530646624237230464912690175996501260674110197086951116872070631182355082805543440013853974651429989047525737054408655326350694370267575835151265278444921970688699796812697824232685605848490973254870872716011549640424197133849694785419268019918880390775100217657926866122645477725233327489534493008210486306979359238768452064841989649575198698875445940041780232622959731947227406749733891630864740750893679602891392889300024688956420550700177456800246261502812843179018631774654560068578114720316592695114370475541257360890946410165901585127332020210317023128411933766460310684355458575389471059701996307046953063294836738992350508609862174359203260471237984484649614565841647033170043901664262235208937382300867177586627176144205764078253191219473405508295154503720529620665565967485864813341882250682496277521764771975763202674867487335895465694118335300357101666088359864793351663812728034992321219819846865103390140494483361645941099837859465422298976317523529082317162018365129800570335939474035369211288131592137978592209510768396579390383838975041075277374096941763021680976630371088258885505049616735970645458716883993539679700719656635556589502314370975874095066699525923720499074976789398799327814966963596837080795562779851794012324591951408895862467984335445264402079176052206586484180559037143547767358281761110422260757889217425302034679461451173596941495732346416987971360072143556093503418848773157645540759733166033030643158994631622738385317175159284906483753090844488128683452661052280170988706408356154147853652445974099393570998907248951815295497701010964326789103884253897300986298262866258519778919603966662383122981528455147957204235918096640554384326261561424379163846863768361085288549471004875886444347804216412202873248111770942099008150722456245247364735489591727408680430175265019123219616476996640254679358330503672895500776636100240015044818812126820570524647527415108415669003055728587139313971013582569895928836589094534444513925836594652589534045497198137699405232156627187349697985700721306491621044263498537965441808552164087105302095402516718796012233233819375072902673955985630609660723101556514103992708812556855222270942705600856590454084637872698239891899743373978569190688886220509805373050888154456202257756537339559083631480604582719767250240701465245815452612821631239362939401172328108268737377182053765818536990407517815119242367019393230684593173758499816201147311212613602332609922636433077032852978533694337981824811303153698761770126145070235477903456457812306144259770606129446528387184924436916972025930994837304251062431169555369560572827956301071601362741668106802622376169299574769034139147793425738978588691434862329521149330760596861694697655749278766249795709820733459874225069443239282254762308915963544184263555450700284257182198580580343384522618378772740851865632942639905181679226623867338475196210778141718829366396556206754029189995868377189339442553692753502221688250954483469717106495845639292386825709549212255568691782772746854679953366404503653765815878691142588219210963613676278984815158437598649993979050688382301367294529627287305880846277646255070837735600498988275415363894521000696567805423199385936160903229190702330703793138150389559707975602181867261396503927840821086939094115112479714984438565907387077329157963993996783731956235846636485751725035534348610313774751786208905932098428172722431968752333296168303629952533087160081872070450200520806598687578993521097893269449419799744019713253676221627586730568276807817442691353065718815426721554612262917548704722765260226820439426846153282014015266974129613134592948939577716334721771576159130409288838797561040799247323582462084869132060792812391014523725038917760360323443484159864952267178158541311890693901093480399228618990675982850750931798635385379036704094404516136355578571712587025940979465373085185598305590855077071059909063541217712727645756188959631976393482920669022108876768712442868137433586546201827937229908426339804144501919752641372368003822426114218862180156778975495701446164071079731632714475830514873245289505656756357333181993668219769626398448287556722111525823331845943617426467158656812516553432252243061633639977765819313761470463189405893855846663522370774725444146574064660877132481210141680395752423804022610685956046634281196962457453477723889655338292933179071445606938285358343727435641289001003400357161633163658934183661778674207166400434413323809008819529423524071673674204561109681167700345515107829240965578494326580827030620217285192192104376789146012960880860482419382604600431844985997568124083201819951753388284492193393983880684167957403556032195836570417809480474970334211605398107808432071460955940442102544054020550157038946307677412465975188066609629489643631086060118109512175920315868658177750718772864419898440491451412393374893219187404281258278181602071198857742168132499480737459520718494094973268843022423287797516595974419301821565684844729605782406848879682044408872038406679497546721037135607341451604585381172092521023270827459823536038104230069436799500818564282224551228855307026359497837263689068472465652350980937568274405148305157958906912595673392507829288354214855593028339011680659903693294903241270762976974697270669394523141084825453119771680594093063841740777671263044977764487223948162363917255801383574812476830762431523562835515500092292940018162855328319109461462220409608421633590482018755748148925423026809176332235853655406174757018917172633065795932678097742479841578742630146890028599957006045686936777652225382628661385278037746089575591429109940652673910374073805001669161891675779580944354699115451078682922109547881722964769620866304819060417551500047602439005778865008938848602559513856687496916476993721288957059755289743093854363081290956732647914014532643003870696673043689347542447437372281611108529322589647677418569160268563944328045983278576867547846232803695630382727419140227790606876811195616426427628823517952541325843156720505283759883015117954135232839650011360959994191546024890221047126776117523260127095586482356665821599052200956848846074741513355665732943574603526445236646495220909033377548444661344238246370457110238936375360801886036335813639052468851510625009582844611096399732951842395734701453392668282828335461024495663992549044073200993114873475157863815145464016617570727325072292424135193398643298100922054366757966648783198783859526294342625691601940149350185099561376451366071993291004066375723204348157367255399232350468447513384843545181575191972684842312420305006856949395990112494260396617074784843589782152437270728773177973662004698141819893043014593849637296391545728588717801595208413113526457423243871792742678969112227810156918351248787689432560176315894007875643193117254265782415157943907363035612565318519103563095687889288687815441841436684584747867188646734370298305173605853964727066825964705678422610952454244157299146676726793066085893111882577293580838184457728149103706211063070872412989969412676911938011288730628055921097538221101445928523485460221697175888348100649487062150973298171646268516918047453175810426728770326481959578338971865483961569272536188337776928859090257170004397205108782729140042993297144286404251495212027961179829033930738537329923493129460027653720934647113167359882818019811968569873422678221673874770719164226192684137981119580647128769596568982989772409297001520480782140720596637172254803179792395698652102005957885138627423136201486689040715077140600652278213837478160462216195186344653703802877924417941310447141351512189342725177597803761331190644897637353996900497240600904493930302585688216864061990479065094356583661851118587352100647133190845934608891469265073722562646697079137422461823251730443713431876599462855899850318602327936188663273217828840627893605536316078503903110423100001369748733201527492269081109871319805952719886774963970992069693187544162875320513487923857295439911012560774636193339691655595768529674417770288791804907484354519385627528452418933791770644115962128994223274445866119290400309176715442825593305506647872307689391083564505872411264147424112361273623698791084127926754882886872873206543416982911253255046501663379611105776530018663815874249445204412177453147538214083111938353922509975699148166404326146337182093795221859860297195588373905257773980046191568603472290955494357930978764049184934871798517795779226028215359128450756028038303274204440181065758702234001567760814061246326960879829526554245112178728691501563842567981485356540261885994552634075299688389578950762137786112573415217670490674137593712833309280336884363037180386472790935671044134329669036631529212150384404813425172361867894496036798272438467642797313555445326157800177510423251147401019395848834213949501604565636335142989026317364470977119106135179823643761174748897042176519300786881663677150780805069522683507140599591692749717215780940504964860829368748321703142356931897575740537839931092638982628736477871414024288320577759939953937770256050028485920756862028625359249339238606359555570137349420251428835114833528895383103903356384058445341975619047263828830698960154518381508342930752006279211454939137488914526843387439037661289583257061641025493541184254411153152151888203065734069884708545755986211113124323830546137206312284374458205457511636534158201429267082962563284441259980989381173635902206385354288079903143764790375879916772272614676173777014537723852401411208547619570498892760858479707860638175602529607115034555461189947419191815684618803172140188577110559211211146495314049747050818260291091585137100093164293639770596431621911752819443803772408770691671792510744739793452811822935173928000248395494163165610297019627422691980533395543375703235362155423741704384419858419784086763842890837696893808676579964144925173993618753433895635931306194011614766173798939070615166243927565942406197742157661898388578009353522679993822893520534998731136010391651467103534849211331510989052611774237929811719113845984082192395928024047164072935422666574342702248404651245399429493368221032370425087091595605104440453253441101368309571282944142399850610332150094369477786493367957752133310461999453521606297440121507724630381969977837164232895761281961880224802114811200706875440986561079811640280402440723145269072928509083086157287070936113785448860712707728555136864462342238389097110651458272965966727831221258930494768537157985436939861869522598242918142696978905459649982995837682766559313028773957503107790677012934251920300656873045682796635740720645892353381950598608065475969971351837438149808799497413945957811778171806989842759258299614821095052487392255649867564143628012868800536508741476129719507103522013253581151659410456058454333243987000815465307226036061363695581333110778682313360848830351555044948530637341143189435834912184990309929349359083390939819142951124936539594026833812389366647904758762811728848858139876461624475162953244939999422467636140024659171366663372181196310502213327784366305694999837890662337762293790348692481812446804906485628880408707062669653028981138609714984234718962956081329807575645545198758156529919280687162205804873046638876648838207098765006937019812796769773294004169266545632437137308544985012190065180609983595563537578914380340989845186973110281351866726631232859921224849006793412574087619791044113816878286857633737135355332605353188618723708085781758791757925050843015481934671950405156896717005270141701479616531298526156141446818519672792501944342379012581181847731008909855499275240886530972575564292668546117371317872901338136152750173400644482717348670041037941313012241166815576882099418569669711651885532778983763180406459961449783605519977719517781104971641543754308387546120677754433503769173747550015706917804016841245096606776499941452760541249397511133273536317889885610117343917035349924422760872927437334978549333958344531266836121106146382761368147933505726663820815782148456200940433620470428941469661759206280456167173551051035540560244844507597418533337968023153499446642931161424727013404555572280201012453780092627081788229486388350497593588823099103519031536850806889674640115155270486970034616499699926183372543999699555020125987380394071253434479455025819967742234667555439519965076935926991486605539905921597189859759657668763143693059096228033700235110668668251352345461448662272008390928771524109706041345329648331355471708915446074181950676886556537738243611763682297722838762974575630876462929514392448508535186050408207814166075365762345583806963125882029626633137978930093195407127098805536255049588760714690248415041326722936850537748288687289405927654129378979761284955993948263203632165084557102795399460714965834123600687613299309854808035384779001911403350216900420002164941656451695991826409969889625562553041103878645655446806172466571186376478318872162620674921446843374567553834583953649325730805774281316234640934328740605634100821317652876847075838286865213711199543850946049910043309114226346199649465871827877027092508059956160712020439474090183570596475489855395173764015925204228000250118851038073912123543374405724996329943569438155244404967558236131806214781071988727346726963510914547316252237957494468709919847797567925243097688743933676014837402551838905779719535846840288132499610450710194287975373199467102978668294500643130441441487507993605356416508683508023419395859367380626757576343941626155392648611880402567521369403923979581858031727425909184961758371453770822734225864067652568071551326200832503837590534583214569017132585536847862662837690245620305316267020012730530694622975185761144321855693186279351524598310968462776569283741905827489130370499181437922920831179424890662381839950574812674976390829074692395020712324302906100216993140527839204826460841362723092246804766055429560996544045054665091988345321367283282141738921628962636192928020548278237112633375077108531541850854068233925580431507176356713810292418573795508169377888816440380584845044191376131015683098476431512116849568958787276354871273167696531607000571963351474543066389851031646648274371422907794379711458537262717592460798496958822764309947526408245662945655045245725972506660205444899240315969785073873128211959595520606037095649522257787663265319252899893244913224000909884849084207438860184792215233666492142964013900536699878199253561010139822212173079764876822063803622861715114773364644585759159445506945425279138902980121141497813621681205476079521488672528791184336838934416814105644186114268258910640642027637817473702536031125764312536277335836066174240627399648334043884049929969217244113855178512226614689024070870637992769609782051478485082908064048168613263406101672717399498791442237045830164819972234690248269850624153496210524768955457417802851402800568744239640599238361687458335121278791092246148228962281533083553419602001957708981661118761484315611365405247316915049707786079668194186624067270454888624315570160681406487071477075936880920748760956126423517426040480372660973946714356337285076913880039682009045797938981043842048984989356596390179958754335497133566136850562627471999831672842706139707230222869630647779473993628424775228431325780371598557158111982797180095337027845107113571430943918333243596350329299856841762705589579294524543866307137932138212214914123416141880454586732110922993408894518478667286971587883242935014882856953379823391731272316167440382139675486433799830423083611965322277273778029338769137971998516994861075669951126154550746621841752901824510182644839336729959109245312801906399331832352485952053454128476515090835233189299632036327231277282223760589875513545527085963702162295914455672406810415447267042987859852957986027647798208493109570121015616532129272866107021160767643749494979100170178899129039114737320522066060827955536802319130193292690037761738860433305196432517765105891006360623284815092471546846178357683004513000450254145987642677230787321887808544863662748337263542509213689544402145040878911414718473510292441113966866142189936284152155716766798844302447397636650386824685468026862214016861366720054121830653185320961225728581302116482071004454904657461218823915183291522879875964612473918151074777521599473804368355376023248599585908234624246963257198995140751662979047482714401792373718887761767265910658743723573908917394287701864020918653426719319907034613182911101630353308479189351422765637573523901318721592246263983496735552760848107609142145477513146601686355304500679299058969100764783399284085227787579525709946082160972162707593244888313328903879275680697889034611341803428882930065228289443609323496266729524890818361378212246599853490166996011140774972501306484689576894325595867884124646991843293214091398383099189150560519737419008575568601041073296292419542982676855388343806860237317542328018099389564554208879418570519577401090752725776910157636833819532312382114959703062709719862473685259762407067109678588306293944458470969076297629441802519560960925665898278560795481799121648094633138472806250190363662215366058717236015766567698517286922129433904652232775886215400138127312256625108919110994480818914586887711200188696273999619833478145884138371851863023100574693279369564572309627051512129179796122531827452807257623481198864507545204779627317014245086549907689341335050394620839063597561545613094819828905609052829620501444853640802278157845827350715167887240161239575195324980509883066486513733971885295022880127055712537132807282435922672822050673761254106802200102436227554110306878649910759545567994701754378387086641052212117456941052112953643282022666409756373054834442060276108586890500267697924422210791442549854416650546974779175363498888424541168284057358759725842175258066510433961777203874809965956363966353178401755050218855981816330080747713281319057847986299242247771972055607602819172023035754909332296876836363129561057329023190805306397501273610017718523292313173830685703496160644548146724147495209526432192275626991940063491099516955051991604293670383507372316448569771567415535344391614941680350642717630004174637546740381080184482566337612871283512785305657725018542449071461372661586524530452727808686123492826571787349184668984058595246466257555309582393611984368049331115690587879207921151625524719557605658931187541831983260449773487664763949542617357502281105479604918041087100218425254816521339222192500893138062990780526578987078485334943161765413574813051075616997221100781541158550456513303901547043149705222153502561569415086982613964431693301477984314855801747737646608879965687756563378714855803311974451933653015440310797341983516141725405554014035208751085936383002758709810110880930597524872853729778720287372435982247581327837430937838551921574643722131363901382301087786746532841340933712684107776881539500980471864442716415449224719604223253260184543792398759688445590383649095965378594600797034555109533498537969100633529220072682614098785919003596432817732732113619217835471669085839924356563589703041521963261265730670642196460312360580168984397849859794836137554667650515959639734165267349295214006302013829816901071465289169067743877733247178400715898978677823782617036188698227850228383366867866785958391283519036574691665524844839048576509232697391845713946673051216864204493000336763229133515830090943253208593887501525901667492522930312328327133923396454748911225267632497127268964057038856705326522474245358751502550284801596917489778009291000424526760771811434622204112241990808434711233114122269823718089854158173780425240498856325273326072401178709420951597380717266511866635046859613360593514592281085023538593116503270460606242835574225193802006282368395647340567256131523276356347682589310635479924544048655895025657361074509560697754880031830312164367700087704055132162904593907122494011749983245648276924670089187775319552003999198208951191692329897973171975761931424976824115366635057406081722376820880263137615709946252209099304368800798046055828292160255804384096564720912263581310286672469976012427484987869010322856378838776263103827949572075093728405952269218008673927223264007075904649666932660058479931365486533255475331749839832733143626882237974225382238984307158138704573673397904730989057061234425832194890542173083712276621115235674518145910763647904937603784841043647924838513117984906336858877829400249238566972044509631971798320344394557195100584118746306182194023042658898283107433262916422474889802915843255777511436867657180758660883782768351957785680037229781001501216401165120763028940143445541787303512703349034853230320905141542468040292163092468173181629507904037195771207789858564528005279912959028535376575584455549182448356002708329123954578679516111384827416134395332636399114969955723671694042435123555798410083767697295565880892676209205529214070724057105792207272994808697368079980387144283279035578182049971427288339608812231570477933932888039070373222556467932094420537930252584614941811897899527737017417834265850329769620570800490960785369467811920006865707452256030224870979060418936665656788711616828447410693860293280447613784152937427749949593149695335714814964985395970246383454612712356364608965882497517484352301347688915788419001132902347183089315931610469242112506065089819637708934666720354297088238868193729514636795251105943614092089632077074882777228411720344677809739283651018611756889470853017523115230972291557705412718910344534852036047169720239711257173856599235613715694215521060800085735368928310763483023756843959241011428007473914855456306047736739852887750822983658117509733397563638569563231301256821415144133787576933912020169120605072409495418605334180399151566866973660322102964401657247355723151481058827472121835912835584259360066295432491572502039690578747570725763552851350869262261664044205992385344791492595256231615950577950383968432374514160611639004912414639156867064112590668757970664124519000724962902775331872950952374450950191270157423396830525680291551516445823616824873426040812612945739348285933786032475743856848652860432528496774261648210352964627331447274828702674460451854000532296795366975773004064627672576070460135438359707228976261176151883132610315693397855179700854666985440644683954786541442763988162101354151596104181512146923282733291354886371443016326852048421177859282848291576957486801919670963968686661200548081542557336034443446058326630660298212683268401213270807767141868593680480727205046911086690969084192830283488858022126515537042494019731773368244921566423756676823551601628034046406631167818988561880001863751051680025851711475313756574205164392665229051454809175920547879389575772939756254307377095987953141868103689456198886142525156036467779284356477746653270527377417620862985372244110479501709657558999916909276158312933635093406181590891166732745940458069356361567140254073305452400420901263309841667529723716423936144821311235118502679916886505702708931318465452850985451246490569912808913693847868651397299449358101845057255871606651785929479438238661971225144755312358559036559623948138634700358076848042968929497148940476634193816109032137784365622109976456552859330613713727320143736725180900637873572334063609995111978741643960119666174532011761677779170343007563069462783473844181525770810704741612158087122701127044397635809955412832649997968205064992224390483380731948694523373645541503899034686236185971351242139969802570950979229620207945378145454530774906142959623837791181727820758543451331799219151023698488485294137191102581692783023876942062488362146272581394592017415310739562437420983872212154046070959600254518231655387376889703255166654239995162524513121093861735397673238972127764172276029344813512860378774994408346716811200904465325289708192613484271264393437475115891795577296972233036534932631379102278232639357172223883723127607220887213852558322480077826687153820856509455387232114672329866387929825919488733710520162970394590880022671392387598392336803865681152097835996996252166639083372157423124473750988225885116869588194595032842331960185448376585508271746794265674849515353578748409247475672186591606383902033154435441715688874273925080067610601341911684230130655328922175672849710681380696389810328990599743393908262602981528042516545685824437561982407195816119875236137789315839994713204122646954227319724323025326274928073801620232857549605492438216929247365510829384744589550405928058849694845424455348211909213718539122729426309390245999400799043066253728961814802279634038500810134559111836546860140506785878989375556615857312459721523468542112226183190400389020836433645362274361472179645526979666837596543296215806514647595968846376850616413061915963242723552606046736820831604478921470632079652414418666986405395635748802954153051197792986980229384831186609079843733885368880564648893773191764979287115918316055429196409923940593933822830432264741177736726679172938509610786509105573500711279135915069544195661292097751270104050938995216248740985834984946481035827366037741006514825815227676275679579351354048277995614280713647983139643093067297454447476828132755368709667452585277541455039655293981771529276246270136876989534987523074816102244324142051657728824261572339732566700259811231957713192906418656296245380820044128278546999298530702166858021435966482316681147249530763770397926155385066503800641524283035851756791702178235540044263458194685591449466933508179099632001969391328983564787687280338083763473535176706189299169002120564729347440075081748705626703322561451431287572833746092257197690405016541233111180725273882027161747515557928190579223743073949376561540634385018337566525575906903494985519345899899308088654183891899670291034104697501962027722864991089621609782166416242459812921565551795581935674606934986369314243433442747358122931740014976315409842897747792303638327797528158777985954097242619157507064927891755044996107371363818610871295174680064519137393997634383431962018580952559548101947875355083302717765596249521504296930324032873953135725456283770092004334770857564684094023072550512426763373711540127559096795265544066988959646358656780440956365589594318943826418151508839159119244539231519186109719910688272098798318791473712493815273511437640659019789082409943807534694433066951678585070783301915134881229469360296345125929010772428548196103935995971137400648256333997609432556186468037068117499660101483068536543702775582422638038253522279743479700566107410819483633085321133963658633525478586059491225279166910970149332875231881105656116635310628656458416027107997730122342680090725148221689102235297925763152762462276248619336816789704837506746954817748135786357025609471337586982734915074097508424702271474902980825209130892784150070732788241474772124681307189457340125353173465821961534457507180978272946060983576917401317475156580718721986925563510378091380612590408092898613771334322769522976201187895374495341345531052280841290329705711599668067838899030999577629261009065330872458794586432070642295072840158388725863383750381035584776844542726437202069223036692530427500657057471407968782783483234504254458416042292230359336407239472965785682318402999400440767982757747306116201657747510389855785264724973432879539709945678601494748014933563259350510574967852829803212127948833085323529977232862243754538957642412065024298469336007738916277113053853090721508052031677449047034884545864161765176893677024209034899108825542654042326446294494749839038846353878233010219659877768732996587429793263557483363761088395169611986404116466273824871879207111594075286872713786093760893712461020351044008617863384754825986341824961843400814747310304137094702645765187480306237860958011704870818419753773456336467528493680731740201760114153195271895467208295132760663665142624348730057825757753496069809035952430710207279287187776070957951229668388989846199454414234887813526033259355404674946597055126625275672698048359113216831050787420286494444434758049128395711055885705291185896574877366484137999083241081129155572156187351652470895055992615431803544506945397459275753721771694283708760964860247593663360923571298606847519353773925360246016930156584546459372625691261835236370705028934276623207055239119162659941796941223055773338087799543176740612435088227763146394406903149724193334406431247618212123503984915814942715845018495511148976294865532340170130277019253591218830690351684724316740993628769180007230882742611204672745600543439403795626160886629569806181842905650176784606106525075444408565793322735813054740995430244257679409635912696814674135476142704907514290465133328844646557873029636370075636831511496568512134141266571732416652509782175342315518458415142469355188691131927513864989603819928929703951453365534729755540419024491945340591251518229703651068766568290197294585053507534150324271415189247577031011518645348306719359966552165280561754007133491883272255072308823897988563897971179648727418638279772657253978805332841327914027322540071731637664767999619436479561861555329030340289412536355540913870274331840648256187941548264715375653089918357153620354569015913594045363548145960104233649639985366699923563144446551145151103383898187384708386596269770120639802280109427793967356325608688743738228198650340639145851346396386423363965503815648746091062334415078017826957566629815198948727679328982983033078869967000711625105394213500150581321579758842695985771262409034377419121463013956010874351509705317476661026532350651237383549286984162685315820036632941099805913731113477518195165577236399359457876399817090229541969801782197349644261010311324864776847363055404812590152766458864541763104311622623977466570307664711944759989657787558327846528146210613422548766438626612048961830659087187992296237644046079678982112367704904646242466413552859759604647014111541954670437068847516685861107364385121502216392650435533696084953847832550724943587624690919634747902719015235993165198469275771198646046361364137210306569235344338127855737380829147166071669433993094799616413183162693767244641954761515925795043872986134738998257887849645857656480509305723049569332959951283010030134357612727922132995122459654128205043499069396168012659033605464713418829024182559026829459473622204635404754805432279899961461016171968677461316296644673905396147368496989839572150434947606519613716136899483384798416443366512999870560562928211939872074647741850064695863406501832953438566402832772345660104031600352771645129879383438943448182997609283344768799842020890280004866938855011554604653547353745624645568413174231767477819212383599372279030114966904117257479705098895455398653991009482947180479020449561162907372852029367050713347524180327188483942724187177502379382762576373940681970750122686566386921329593314147022276467346780905023532300787652994956451784779178418677362569361003195611754059015793372082000184683396490451108734177607214727541837698671674018533031877912093132789794130162075089280980167585661502845147368114102312184510901787780029187634326565553611285320751343268534517829967753480154335027496570812284245285624097785203339919500016566137777332194994675203053826882456256349274949960830428383341981109344015787361236783108845924557759915236420709310425923340083107848224331532277077019575002227347549161066178322406246789708852443988356243606327994294439488445423771004368654029216317724614452319156818834643706859097703647491905485817671644931573694905168335106852913811674817934084096817247257186471136088791958203217054137307994356343428654886597099443910913424672068288830313717298374086391896384368559349112949745905572973239867112478577480663517773068133794514665916811599230688631904962624255502017218003418473949643146805418926494915719726431311959119883817186463893934713010536949033093793450373367769542972393995059344902090704772893719979363556021237907059204133166928332554886017428672349399028523887057561167318574650818357373221085598249683512301315271684884693609158273523542549432183231753924669315455057391068539476460194857940466164922104085078645786941383965952618673100464776592080240370452044506197105673123268597230020424696754300673104928356283176214479429116423080503424211974286836819574879441495946307519855682901558845348876171320794339141759160624422616291162678945674675027354578695498962543340790607629566674611929998325363860790587708377397250047257261215557507386271669189981093054704887946027783411465899840600625412647922476692165537030707177629521193686392032844762028785282060299552165424133001158545845824674518736038510580961216132377765946520660205811757736250813471421502305400967055043684318406409278764677805478870595398332578678885919228389629291076400790520878447654645621809454181329157189945019676878748992932600306627646481593062267979905625890606326090102627943178267443014070323545753758022015951579975175382175058959570615785117797857418156321707951081676510562251582464128792103989835191697734143734764792358274040395870984914447982633947867471473045308724447764839907059802995204682979431166726685047333149246485791543689104810875711450668336126349022756974512536732662679829938245845800489489596996381427234805240827837628658786163997680157047860817252366620602288333549725384276214698431590076105104151222678968411528190021336246954841289905221105057146824103779043569813873641585381754943564001654223405892714468651189962462055609330535979063524763500936394087307837445643452080427184228030298791040276952693117228534583625446770319400626127458076458548608975432697887514965121678061417215726412471503030666079614513021798898349912738660399379618407913852418062255744588183357782771326952774004180145658591394017172437686157073275278388211918907791957628557543076632848292371194602608613774664840152063862576987566629074238323581994428831819613075857343539853829035230721519023209962872575817021274604731922265971034082876951119367312048972350105936595644646428347865919628304872802336081976452299831383020936850033936032606990223756414869889517831295801481983436289409631366139685075910699340732729825157170480150111247654777990182011112898333536482269130686521593115538523401050706275510835694871896551283585082686401106900819795879218258844800999334771768372978152609627751653031883574683510704883552904303036527150074307473978658227727954329315503290419954506645572810199308670796381053226386559432368220895157088568086105316046917860201832242644034856001125625888482408595634108081841555679298606054415713002850808721874834595305343538344215228515775323609875460274342382306056763293033051523387745650509525903099236757421652836772698250864814812049907984087017152129780161926271130042091242249231667597860492877273818441089599324002838374141637319059912040328935267836572474827429434103661057485976628446893639333989755387179267455212162837665553540984319966264390655517849320809807070675169927808962298865619734491957206949862924811782469754686029769566763665611959008939118978448118257234502719488967779751723486351864583041485825421877977408396331983102497551841562740513994595964965760250307799015247617319657678821541945978285488410187950998136575387129140695607446455365579594346748450617223993720677029940849764907786109477337921902359986524392296668418392603658791416420293291045416355017582640630250865523557588538457233252629803238816276407559230381073861293240343906782911286481092740093977092163316978589437709952569679582211756513967522443234822090116190937812782885582634458896049259667024197650452790071206561385581882834801282743015965016846682364940094722392277125697442092387254130964634996714413326679249744886390913896936872383229660229058752892713343602327364101655528855816173046758441809420830738739928448061053636496041325219244590392369810580544269349792716900467204328510150495996246137619914881136975493493380026440889990029914166903351407872765941495995850667596660734761176896421728165309097141066775965817355372290222740611523579060772691839370851169049266385901410625962837305539017979624944408835072346285265683845054487125869793234065075891344323638652862458257430882124213976693439881835707456538109094635779073889102322345600133945808217140894786901747192265487701898931387218858503333604933422096094765707091224935937292611137526324948303696380741651057272314473222514209669579428588659282811165036765597153221948684977585638998955809433353710732031745490562638241770056768536417321497106805208876837047252065252237512370417712655152445404353042198646827116433842273556971052671828296951839021665418849909362132606010712920715197526179401071088826679143080143180268199542898831230646786689541480751841955717274205731725864872187356220252961309121592803391948375644188591463875114843544984129475383596788835052723487164355927093000696290750054493928437545709930036575076807274109285168182915052099528452698255611585589158966142541767575592602136177307517439577048056173397443171349259363338381870381780348954303639129596191803581926642665623202582335739927292823735343588820349830610422830501679003083580386157889931858251134315308614270205950732004984338916956178871358668385154067403601140660254054840501509346045561999230580191419250482882383355379381410708762523209852276559177429271809847833010019653748996035435687616959688672044367822262159988849428235187152665352130706723757694356263448058859928968969501580898079492508628623282865379698689621174014326894285644241905567943521903511211153174033936352160482281373130516062185012049758883921723383391808078180352009271715842981440468944088105751554623931110083960706148897760200238197536843136720833032938872490657259119899431955664748605169739375939096118141626179573933078518041184293985867747358876932613268945966973718058088531004448131412101018239946607517741750690853263252951699462368353918135711577501271154203627746409380940630154815021796256957187320839252701607059725295748425778374232747683683123595517143531139875678657935117408522769607887892922607678793828878941566769230267066193672013657669801005802457958261641637462528812349382679919093303000620087878667395269085316443804561702359770017649675729385582384937208006754739101415153278334363465588930732841283756907325928139541878553289503203996545160721457210178171021680607983252208667347786478899468647163425749263911294900043470316057947310376522206723513018006236006609578698916533653218321241202510165692225033604941917975537835778159011068379839821395079463911783305678503026662402645756013079252140310699963808730293147668693708581656026396458954496804385287144067357803471126129390651609806045581938692554509834344354957973610232435008693622026887677552081059631290479662548710617388742474667420005241844834782420349963555601662488431832459091127341975955036097918530245345828718495843493393944573100963048207236873400335275616419291475767376553820159975661357397974352921710377805633676352904804221086244420877248034744669648935274984367394320663733174433297601734386778071483346329034076051097150945736711913179018774765095268682025492217513465362806859504698239850993906789329123857417408931951216566718954822220980498266895225847451164312277280195150779929331999940336158954215740000559108152512321648779160514366791071845104583214360707148383849261936006619865261860153894493629417098346374830089547963380761291812740034263132289417821496082383536141550069143534412665355871732349066540523552589984664730080091072931668358428512929586658935518480933361293287664763675189240457139876765760083200330770982080712119724780430667137019349553400986163305266770942572326982151692547031311674408348257838195071626014592582663398876380020283599284502489751844254299341749097129954970129865528285428189816793586615849835561166813131031670908026971456674321181711351818336300389871236461489017609962348781426892752133467266464199426764465774812083484895086450556360324777206005939039995222357022421107366397157262799782431918591811440720049846594612056087543443167537537254644996637086896835801388977535639665892513434429820478716810647469569047504710197582647078442501736299981748466703385261731747822222405368962463057485269108645161703182896741010549496525892507797236930425859012306267123344958300942105675784141392477640664939684028327822262550754171843753762992847776793602663277344929423551139933440589692510663324913691452186843885208110246480583500685461681536054008318436464047031117224974629244300274311251266048857624696175734969232918944103394995866678891214406314195407931146348834279461109404992406178687552987916673341062698666595227892360090047229453073641272640116433703669798896524011321421986891114887908110047011976198641235674748610209097704282251657747098925729425407968960782146634108538086277569604684711820119854442359243907686745516856854569852229693432358073278185855089958988305496072817759800211299454405866336202155879794882960134336969856199575542756196358730532929605299266757641453037746380450710224772332582389534974782283595965566856494178855012999888842965486621223465382634666364210897537094240703859510173932925972507246968460790797816336611516116652517090771036029094564209376498088628929461725740939891538676901612799484568609977340413675126021178471195152171015054653111033579133831105257700848564603015810437322177602559080214409493164619437750621460477782266032453517905258304775497371760405913893419373025634773208054976793628114812645969089331345936743182572652465297075028483885440725424020064200723858836734730600650478424332216612264488395359948804711620625427013951041655222451897158630921224741999127566629566710632415313555642233725857013069779620713725832023736108941311938267209073281243305005486715465626257150317334560987757757353165283607740574053067235482240705638939110403526166261702975274209754433755514640961116923228625965645098067661481435194942759073343510588957079777077376097625318197124862501912184363437239051430086943228230734654199672084295744113434349277738243563901553900878859840168316248741920323997541771893400026681705652536030844445846203891398155943486959867545270221229274970311127345837034806756502643676193346919357777614837174000866988272565758531109278567632674274886332683414343476628891766438520458358107181326378319935677631849628825133636175139431984292877357115186901465176796215768363974875181457742210898264189042800142714243750908781098229786938731579704016075477055638765784342447037098073626967388751160312909952982713967935349532774649016236507551857067042352356296185276847378062711716574461440586916498737623528562595043771507987613327133788962135992822590176807962570883065863944482593116020641201088751353816036036335344026900407543939866682778029682705620724022258696843807596317375753627217610620073363750187368279486141210443140955071937073300514452279902642998535539209535060374925506355591558599034597934023923810734294723367191690043066033552176244110684219064732966810351200216514412376803271335785692326431716889069739360137864641564179144039047185082412669036184079825971165809544813857356329718233239208453126468037414892254398602741270377166139053085344494425055444419969980310812946922779079537655398539146246694679548988355026431197911768338306338554301936907239014897551753143820368912937025856988835717930174877013486210583430081840769978122332434552349626577209181117588078273216897223633063456627149159519530217347697328488800293893713660067082438358824173645272517940940085574035557907298746289872987563516681663486827809301884640437273564360732026483602066511798818707336981678143157042859352795523193156521588559462622251795319124054828324316908531402888676157361576558613276389553903711439058416815468464050778290639697682171922006710250183923464465060148132989598448755861227290843342772898098468642603259876036643068589769087053640083192087440571632964004127112698941529534502674997040702525218351133111946640968325435278445397941192220573354970166563085800192107087685282391848344101469937932691291298240726362636973314053153234175753214711705280240248594856156490084243134777724793662615742221554056768759590836930082032471478918026072931332320397497914857579893314569518024027506716761603863944196982986610218425138557951831014014117603438869756401980083620324825439770501142547553792713474535357160430324616887823207503719726265501028421217740752876605360217147835840201498812302552770816195132676694448584844528630144635476341371482094695310519621367858578274973632317047999464638595752500248837422203746344909240568234358217380152406989206636415839719113372580495463014435737830520509347165483467608943686802925033330214015259361099326464264528990705276560203999292796193450502275646187281834559198426248246068914776881211455417537826637053426578678231888314888320476714267266311396679187036322644848947869610140955721570432425973954988628666757855497153561662506920431951508509056640392295724877702974943173659524776521369946081094273260136815078655638351894843631511410094128549392116850937215871487650525557380900931937661453228372346378459468354731648410624570095353337108663940324532801040905416109291519985448938669240602090056529892264580995178134181174523174448303172732577739264776557322371724982476637915364859203101550510393171868116348721033668990128193285870803593994166990771847664758404691567736772904483801993945347571752058952481550319434089009337929138846678383826214695698291284456470484595378377982292335094740784449646494589926352744346349039689099753094351667115723444871322930771666406122523885025209321839666897905105271888732295795340647803773606400205864481930351555656699721123903889470229362105326760989550923226915492185647275498818096872826746942590134510348088615927409689711691380741711779625185750694225144472345976580015895623576838234277912156515632684059345132321596912481842151093846007373105384971414547095835052091899602044837351985016302668372752080663898087883785706491815964354129588414387559484051593934782043070070189377789072880819688107223970268780639203430329109998028850750774725914074942217660139630774081155774428384855602920675573156984494920423509269722056501488103120807693637735039452690877125954228131871901996178150790749815942015295457914227845774964425122588081560597515256261627596725361839473641582271241389632274875236437275015075586041857398454612949834503632667454140303250808119107275111170962297549197950476839418758478041121972886632773929147574377909544783726918182100478872761467008966741720047232107143947606541802742710474152038835113719164853228427010864130415313215225341925961166226236871162113450449724869432177722114866182929779379826121731479447104199675089639221388677845193566631475676513812717783333739123746142511665178278380412541817461700875463101620020059792749343412353467543999610964481917377897669652002788156302951935505099949336477488573165293881984736874500633997022775213803728557052903638920169368005829704794674854929285908667522222900406248691184120647708554699611111564684571001902367317742509442580733780425769359424775465629953385087182549804636442823718797894090509773513861793216245681883257980566412433546829095578771919181624189566886663514334182172183584778309546885631300067755870197475581117586910800326535667519010334153282315096041949040041085103549263704630828928918479838656029851391169830060378134107181864296887186427321420708666227737407135295191430719762321305394158372530653195739947945473969991081255552117539215585714935972024822631680649493195049770572869154382409228346376601354344570503206895172575862516292219867225092744174590450950457813963016877935713227170678012846908330126257595326003184681080954432879871440489232690566575635622656051335471654563482999640940646522903920435114215232778383612983533550374809706742726446645714135283740612750683089916002167541612594634102231031231518833256539885360588360851811275586307964615433445945832481246776252600003897895247202182640162664807398302056414650642041557225889136569255467978962921161512164179259653380435994242315678121902832641324733659136578039758424406284210444581003128849648629829201126682542813080323727227202459065759679989117808020752734846925343008788560499150883598028564963714243235153443546359997534777302027716795343617951510036711583842859576288751555194644150380687254746536441977201480104423388566264513932962247164802623577983654006843441069923916122592568121930098401958105456771890179485143097935222070481200978126458153656400859214928062389792604269377655303081111546686158597953496750938830681288652001792051705981219824652579345526268976602943852207719109465823467193397192272837203536842391561584678574884892864568931724576162333007747641072464405785499449608686916459796761593315231017981037404643343591869135580964224716565091201691596012164572973798566103631857023350726755389912340870212677846589126397946105617215054861860233135809913095582885461996765139527804708203358453662237120390922989937278387363857547017955363475212068469422692619491662883490238615713582027944222721747481541308497683602710660728490377831798103033461720425094665581858623708065868335568632760205010746133628569882572757059373156979760298088486510794063112141784356404784781009340385835162593971276104261022171739720562233631603333398552506136730037641813402332613469095925658113547114370872121809878871048595500308543230320464574475521286808490250979661991317619821912525900656041411017849095833062730128251876516762965012051627208574352437831619939311017159713044176869747741606151947809705066626081450713845227423951400298986321317408092556821492390174003224338691801539406716812303251881016613435084390029655769086837788397546696946900833060859969001067508126723023101751511884273353985569926538035182273800818687904026455623307135660291341945448946450396386183086352373148252529847945260415265746692589105046259183219521809805242007593989709427612594742020455370735202881525460419991209879085748279513861759428170899517367222610654180083120608889573176056755155038022161736847193513029863165177360181535036719374334773915003179844065267307877948735414483250427084006058950528380360348868255820273596930608140661202227000054754489895009127955437268802273310709123475617037602345531474383818771690757145125897049785651266427017808887471013872111429889094540003745968206547077715453543134953088376347897217695846071664784496589197273349664450014056483435256013332217483981246865304375402275124322422193459552868096837168785358647186415256056453376539562320845034197837399362136786116201457005415686660802712388301951725825252379489604100203072022993231361832005385890168359036251514747384190172627277513903729261962108101691059556159631200841101364271472019653376021401095657406663438801810436530914406573083139696421353671229726170421659833319323055349774024102556927973272071315134886821665283660685234531521340389735129344078113703429313773684170140384051341672852809189689659557134086502713801483241761123346428476521441318260916477974879589683487018538623555789565732060395169111572951794654640459652612522394568889166113884038108120240031349830541068575632763337248521434341027044834985649299985949903402205532864830449623174940687036869794811649199969846032132390500705515051056175133152053612631202193575686140513253677017484924068211448625264387551588870760963356697974301507687901473330399171355220108370895113601882871240451152128635863901532775030850890309104038110696648225248457949580930796971635904100442289903836123202322905271754241759017017528562472875146584418713125068382310536796063653817751567557118664692241460279719816838453975997392217098654613215003416063066166052136738442444922748377638189801226211220627213209876204559545009512385043956490048923087091635726032205657462806525506072916659539778057815241104168639904786571495268804402645970357607556975162787735989743371216183902404207142835043525692484944253835453674159118015739861860142624365472152140177477459454625077916034958400951073035344148729769466748525518588396852786082720931705942616282862898488054761268252405804925983538547708944780898619054842153766834106262474698569051414405445371638162513353568684641523032981121154500029645621942828057072644219369991818002378150942875956013619687892129129619735963691590170923832433684110301158930595677242503624059621782051768644322955850207368995450039931694226110014959162583960742560933375360996504531402837779601467491802593807119944701297615274072816007505787182465525865305627134164104235553253458813359212879401958854463841381285099265998101348284915819843984158319002941930963587078425963459014249440855877352716565434890148358386903147368303421207746572943377813765321845715624269484863781110732340219873617000933383822921798259256277778360291015085584583869698096376274655738739843734299824047134700257142561593167991134783239293296372644617452165618667209875622121951827727571997231733461779224071697333637619793351702325023337389854892591059713107981796891128370380892304276556149310914309554702726699365856395464090307301536576561425906156751551970709818826206404362877541846875802606509981482967304373344300672808143874557090944707456823271069170140118558582012314092278555293449566043557893225612665513023728793563551743478682452993265935528386662729586391105244174901770744734850688119784462406515561016230526436988678271480748382853594840572739377361350768066199277540542976933108691319588675183548312902792482569034798036760771480800614195415294109495719725662671341209835523428243579324251955304449456259065830497707402545399812982341671744153784973727262977555127739388515275210479648163216544547914233709524317500248596360941474963370844288892538795277934872319568932785398234003469970788606587927138765787255153168168505663220629761657680205169198344440760968788990743918836428816198136705936125770029375341074729367838755513088530730277143510442354437052751282923511066758304524725151498650683556495030858055410085598189820655109885735156702716296084619329298334118645790420171925319701717704860485435723375342673017078840966013654193803104190278784440342534244958912852588926610471586378541962553625936718740646893335054594167377405681975752172307787667998148452408182735061369147559925176979937704575775991997282845932526305750278957821855876276881358257888445494947613450394809741116132860025294268667234494493775481327723392882602527013353078186680094969055040665819364787438968727491661030735450637573289878438552767990541096561781215828787717463164567368377492717880252622136820080050302142222704210228970818490732394481479045952502426124630554828383818438410570493179714646176151803010478623434745646863203905378720142889940387688971888338917395635268157496322898563484093919297785655493854238136297973009678251183898334014134078952320839196649091023184406249692790652484952096459695534176873522091843984347214607939200479377171655191022825391518374493824467032625420447084401507800271935979794994293237164344313498261944261819380654823690659512987905703410905483939695506393585680405090061566526995989672460394284279153694779632629755615754502991335447472006538736994100911238411024818129600909826982565112643300681724725222963589194823372652817426607198211700007712424313594867859686978292762548531132279995332703437318767937747594940813556924664168287488503403424472312716390646676901507758469158758131835333645002355003097953904310232888876279807804157541943382915673721060800086378862442016570396618052775679961650140716182392772600199460916123523154207739473255234898598564997213344842064004051624978507032799183946303967074157658300472636488504053315144007948786454990219518358610801347633190959913140180645532636841869280898869861970881102763431611932746979809196293783674754901229654567159763768513093994819346996219950343067544231676846327794521040906619584032156023035258677481669120686951740011486305532413962935833360104933225415740128478278721328485660193674681072686810201879014966586397082856060537975624064447302047041392485100207338237231453931907840129538119160544540393331761025183699000756271767297654507280926410122582955388344642504542238854424939837070559554919949760189777047534724545701960178524587387798515099290004066349460996608103850839822927706356229315443460179179426885443791729362017670353288379346556769828687550970565852149076494294448278759846302007220167418183229571002375960019864812412497567047534991037489709438275034768631135478491796479812121933195391425449908552179166627108721791512290444248219386914722943028236613078032239320572426692155356553163692245246267989978028241441600590820909455609473448016914812515337412090950867654956740778185034157022749610027232163385069359254115266652063659383330609438893746486731541758482564498695296571836583399392502434405552531086193497105829800922789029247042218526944606680172292632038781614284462644533705181565560904862638314739689510316020904980379853676641491126467972008687250530084088460545925163935859545158817807516579784613732966823337180785785668171015169422636616388117337662321572460983703600633144212373665579249617367847846621465674130889280939711646175632959022179293887551462729856786364174230586664775476871924795310946916181487666295443521818253943616918342919396746903101715818354116575710055704884605351369478035064508772323296952148608819709089913676733915408054558493319682162148209730654861858647168899959102764057629212058348539719533526741062015525800193274433213027335359397288033592719812408715030198974135770426512988967794239125507078208830059739651350985049422338711885314796958689931808097519615772743862654325250450338819716536573685538905613542324823694050610605906649677593615929807917703063958258462835233901602680333038978775154912583115656126797594996050519631106471567034635790404188609642527490514482014004795956261423760660720345290639854202501695575578694819660886731632872720660194926273664409944511959017178007757568134581040131249768572549395432784011641096068404905867911539202315466880541843048380645731767242910832577741317490746864151842681868614435135729957009766627969775472207802762130478941287932416008440922248578618764275945877034884482575873369701930282075044518043083922333410128387611929554091690114206238645321513787099825022196336031784287522845647720758279624662591243126698440145618471814529980173679611513040981995856123040445921262081205713720371337812487442823909075656358880582352520795164853269370353287970319514470112840650904474973740032714370892586623125340010440408074637019171759364975386574716262169017741458072796820223247628475004485973204907549170310539659379029703611822909225961821328672296753074146028057641378520229960676394893339542853086379086647902766442901140823562377769717757959277408554853201715718401127663407644440296133430746294890204591169671134429995710108597344463584699726827292249023075974026121045455090123759385211083238161257393540469320548584019758735311539136505421095379490324837424694405761789931589338080334714168134226428548721293102420269099116847448651938236965768102444298581894024457946621114195032925361953541611924948790080563526107389648535005193206819791793389766774646465193277404529406861315655192751764280892704844212732794549833731251174246626488803346098404551052908030997931836568313561007527378612784829349949458794445686808791732846047570519128422894704344014272871778356027647782858476866905309532197772070451898969570443019050455998119932682746163097541222936032242283106194987290346478739661325291166100487453410104249460547886186369611360688673823391160502739098913911663932686245746756920262143271621096696625232176894953473532826038850943410686497818547399136106373649159061676252802039020708095930759764734339963732185711313253157640148539362830005056788053106450814074325611246883249409846174913034651175444537723203197754860442641695672005174926230880453812604342591254752203702586382403295917298429110622476570654197910219354888472133281571239162648488019971583262110959391428161632114068931214192140312400072716344460371723470011364549794862224697930748855986199057617537539386425566046261813039423478898553864353393631043659811077662398005198777374827210552203342235590268175313262210380381770820704639833980526939806612131470357453490303992293962943419427014415650330700996646534901621404909234362042484761659518638285628150834069936283968322584681218396632631329054346588142567620934969726149643875487220684424879129443788667811683304424088994296836877400746815023992920082743977004495522465203629380128251643882912648319413128932597027601233433459040981943382254027909076695922030376593200079948367096773225080057376725786782299547756826603008724487654854908285876330637517503376176870303321992796940567548262171119322739433382971943839942270915250695170184574055959232866858355661076636664806538809580409450139755176089870270680259958999951422820116900161694753808022482495130758983572267996624592454751453219476712615895457463861383410357172093132823834794019236518424332856089231774602742300613670269994590378453158173188966462315116149075938050144334350753485233823165280973071963287684412444707604365681150221275077870821688291497999210440052139197385229744767388718146996085575617963273885466630809041333709846764117735086356794438504068001869713685906527704250885142645068544214395942663486569883486119690797485620636289275920314516405989765929415529428656400805729371684404554762017112326938730393223591600520563136991572305971888290443810476001511207553582240399106402913697130431654129623259830103849912541002301510966337620527206654948227040644261584310969785374079386079820668616033870082145450730759147969173836842742293377558390560732450216867956862252608253056700678398189901034475510787155689162240183407945293876200778403440498968208698838065667582172734714407823933970930091887264923892019582096693329269129129470607452888852210150055267115341746505298257673599427601509196947836302640003966302365427348650762315852043603651075048830317715832570215336096302621015072873465447897780979274580607589923614895203677761303214426185809543901884513557757920133513468838965627393951637965339755191935790131019365424358856465316480172784152182260102028655122467746069170132148741106415932180628872835161743113880420584029930855443763341383435351472457577485971642543268271278194030424494564249619659693160619217198581131194104022067027513588049906229296707617950775397664812861241116518116114666075113602310731942053806629877631683728535914704984583275264065513530824606316694189769247608769084632601151231589644096807024353990542264459224109832347863303490039318260494726840926430524024049978651715304731736676698156912707166633209475482112521536663325944089920565759255191365782487537139366782933099580648386186842741786501649540747312239180655608933042398194902945085619318021385787490618008285530544190888235562316094972290430299340794733223183185155402600744266214668854133281758702148269821711120222229554647816441113185240179024858323807401298680480515946681805604319897585614029145587267770655580875754191288028161965704447223546364030044473092007422419158904204700209684758412452708688781113320101228215287532297770261359408261325794001091990952970952469992229682630648943258867824779386655674594475002620657598756391964197910622669136054199866409075511146149278676699581425480953440144874986028259576679761577736765226092920900080107861829372003933321058581086670178407831416929830887987610510847802861802875451745358589510937817796605075017153117418949424054952731094158145201125841282857117634214088914768487096557308966590998859153761947713180363358495165778585589871849988268615096805730996715364736405414280653738439340397249171661684601004168807327295666317506556493368559179870337037558412124685279598046660594088640765529107473191202837277659431177166520658361042209124205982777477719100766921780570020205754829594876656777812768611776638178549974212682977898517657952296512674452007394152638684068271227167907329318043377286747441107766269795256906555958626647903410969123053920507965861923297576206175481059812608866896776814920606904108947748127898399001851096826600394644048509461296618060056842715043809159536840155656517265066234006816898744773430230015147450500709431142505504017782663742737248246295933842778573719042298509818469640627637089195275520294007737917054749607129711783711596233231162893317210354649380983960547260616815702759332133553475299026425919483052203122365479535676047198420016775203025940750671144190564147234859306615584364293352838785830678135535615435654233507537910754608258717893910426396149007021749676305359986256686802265506789879810566950372756602520655048113535042915174247218447281319929188073809251148884061994155951327878869041964545780422787816621142369494970376781302727732703180709859129156320132679474964102904266460385431327583722284782174507680925916692315239677800533863042295671684775568886549665933437636200810587091709040832296681831120118191504746055919312889884010728533753328689699703373355535287203927269312576446902486846057268007237344969506602252692885944256338563633696468026416662239063491481376398378580946628451233732448445912855459526209374690679053965710629449828231729301959561686910022456382015622451481467651858172335630752778940231282918570586608962162734406748431637634555534596786402061004089871221362259290511869685649805108087309219944314227380936388795266413502360898410416910709451656885761189350219653226709445484070630252251197441746193309101603677953750123216115429150620029674936572985678148612606346401771883972973439941076305928044129837762272356412979931331143461003059799649531271728630123529680321880351627112347523850548011378001714619520001910979082481221478753629326624543264464622722033451095476676944662760332341754320612078263268564144828880391198491114093189396587573417088187883013188650520602826351250942813987135130649568235643849529600438744440822863948440979872092971204771441238274387709521856718101040316775394524925960538505405551841142940475494462242144591480887230822562694639195602762923180649861100288358427170133479019385658448211612328212657211569183759755414037419994941354919186668431309201150790479957775660145658096063272445931448318571902775934507631833177336884704634699959343388116524285356129742098605355481912273645029039734915827216527921851925278830845031614985295632945552583507995173980702084482013685122604682638780304231228387720032643782697000862672958285389475201575943678963072814744061236393263882482209442837526428977020376306279308929074013876052170589525238045837243875592349088448005585329145999917172480940678818472621134182816207522238680928817580938782133279995559242226246579336146456757344374218461812346542585262420499112590192382770369720520988845642059053558575344947030545777325217988516772720385514964870669308943053864233534157001761993861190104783446124176652129387493369206258748444056858148005430215369013816218622932483653314240438280121188052618486945865705537007616521745542845174167699667794028095506161019668346933551261917722660163119122479798962550958509392969720199979333739961302082024415891403249275587223588043898904117525009182310013595238372168663069598483091929105661099669428774121109513946319917786133367609670023822270084993608266000188072295755654316399698038731768345557497701119096137777692346919335889843897616889537332640571655711553035548950623025705930887061303328957987350124664312006203538429069162014888577503947200647032611730948308333743284453661119842634590282077287532288988142937568047354051598810093067522118936388494575775675228272032722224080844053057399262931579923940267679337131663581339671464576811772740965523909986037149721866758739347409386830028359329618171568147862747753076693682036483723287103676999254445337560167187210321342397402109597743016056524778114140796983418219594866072369411283062167158788134473106320110234377896386692301474476773686212705710865738076857124560397865426258036529566031075924699487745978159212238677210541556738478651878896333411022294835817610157417177041333064875451520831053091694709298836795778571397943228202363062319040069770934500068353823543986286767909662032075498527081433836445257103248140376325354705916183792563176825139344303255058292760328022617949325004445492401038889528786511104337858860915987363207970165366291995603711256528945769458773143587870320055721948164923383071197442847236288869299474726216394437562729323813321947549752754296701743218443771451596129884094931492166797060971350050963724680717293900410752080899874350369991279502435647693109335083176164668979714232508107515899002398829653493330865462343795445229313891870506964245344865405739388004313814327649623870465373432769101146855428808639795634343377142752778552637390574974449444690789145538860201273288570952648189014926146493651072965567341974458849858808858924836742703101372541477325382942756316380723525026354674941660024271302004042234491919416527542963386741810887900114700170923941931474222799717389023307655276240341932626543661597761114011665379091265164999451972893851975565504418364853599498326416711100128555567349874014962559166827638911776630401110099826441606202214308402232352602767351838836292984216027317459094748162743252983104693189391359602622840448012293567512255436699338846563101457101003422828059337192498843548766630202735334320697756311028877406458326502367456011965838943526235662176024715508552120518109764924902396295142633453814767359251621984427110386548622775688975221349945438622768900164785662796261281255158426304235168233827369048100276467821460016463342641832142452223218050963894644746333486215317035815648062449673036749496095716179620355524682527245463266101085568210172598781269253044884349688928391933988597767805716334650744210645516586031293404121192087085699538042151938875580463508698065820980877907738873734410591579199604721167076797233932319139410969297525298146262834514529970575832800198299856662850370262280862808514383910039673300439686892231494705491414324263307337536296094927064848407107892843192174430286586603047438568091265999657608371004711473509085740033474537707272580859868527217441582746972410175020204553408868966815493017748369169293129924958959408392318360790941629514704030875489541121137816062415426436215716360829626212313894379013504978740769212071450575181582042604492216322199056153108694263094749357463288400653635110279063314182614346076391642755819228194510349171158729176577178831892020827960093831119865275419660802465303442687701996489040145607038088474419649643037527501869529200323406773394638356901909523998848590307178638706036714479538687171443948860460366268077145093746680763419921059838565123872708720649391441657183596414601449447912248951636348136790615318313494964312926873651600290021631923126181073436185730153759398965993937297426366849138885257396586856897729878772563421002495792368483750095632720030889591419341408673464655035672986493909106221213960051549801064978047476366174250704006599401935812280715942962489007813273069378469610848881728831974966498185739929726634852621828469509547895737403826548943742541118161587754423462550554982340549997550770318163553347894386487947684771967758184487760662177060805032160898211210535451452212039156548101575050742694852277102266370778037220239259255695763380788919336415903039867612438595630990774762247621390155970352965948928910871139100594074980099019492196225628831829347057842487344143008543697193847524917137411461513678084064907840420615979337601926853777257293009566690604507125814248420529214775393840220076222071575358097946247030142384682071578106123289678252959597542323976196021964550126373744264565989908870503879365518416787684610977030951511723681398528431751435810864864937037816843478391037473216303769609763760767864206484111761529466975018924365431219591975254416173935750919978201887821851716841422611013133389291045082067147997646548272599399890874625205229286885641949804749315610707697190097724015653282903298864596229928575522116125761444578012347699061015181538749725539769115964570598015139326487037037115860303528563013309188302821193124372495205024826983498689002397187267744852912582729764243144212671971964726203504176680515867447727821151045030436696267490419664078693809570005670067301599552873432298348442427108311549339602940778717864994205252954853364842673965716953611562112505559427967119021744343422951364269996566080623573668224082067085057990047077593083245406050277729202870101296426920790595122890371676382586746206124516353726382954815648325534782711921931181006095556811337104119599370620509826675546709791093466213291831761878476729301916380654714177990574656451864487675325877409053041577901896532260971993518847635946834302641141047435521385789703143081584110658402537047664152609238622384584791424734584278165780091373351630610544185339875784723723415548815550951895242030244105285791046705112481217278563400237179883068088104968398755798350054409497801072041276905529338393459588878710202309130264018389158112377008362141006336007716661831449547629146032162494466735092069943396281042827744190685389439335919390726457688113643754252657470044109913219255571686619605607146054876974178179173145783656519290188924180565688647089210448170037258524493998220058934828874845620831896432024048630730522459541140306393261045677980916978520211559034216813616582847347549500218713941848806374234342853613084372653907329347115009621326964622497693726358626835718693212613981615642235682646372013992881390875178631249408417913028599314988649726958204203326643822418913003663294561798858405521574830635357154220161462451414068175038527102709826024642453890045480530958275858189219963729202518902133040195856645464555347409496179737606119963278670193158918342382844273962910557622152731915269382588624983094975310282685917201092393915717069145744424781009048623028108228771602874640594398554931311746471484378475969472623256998415901701275899914845566651222927871993519393486530556477144225006257088183164979769655385676339872200822524690020154557617380941047481891764976888596149788871075303710905057217998286855660694483972945812651557676371602375174971533778045886249490364696939283638809886058290889318594025015430263630318496171878917660156915895481196370068722595591919936526905872411572999272629758568605536598764248453802073892437323886812252701064341294076768006619795740889994016442459033805288396519852282356039225697362420330615888412193422773598104088961169142002590596747480051505215349723088100979398513284046011080781329482443788929335352724716759939030711466379415976319054005302967707754252223271368794515354292753891059262159902303555608092221665209899245562502322739188928175705851997647932622312445386856417062960964337347418899214881295810075033288959236946692109122086144493723108870906587694265700837475659870080788956402152954860192379571894377914455272501137536509919843265882186433125793950351746794073561382644626337704897557068539051462812472250933102969730991052649575737137939895361610125977617161390953289542718174015017397435498256793531609812678741028053854520745511238240452787269157783963299611338012454755423309658359610833220497583222579214073798971858870331841557565647426221675237994594893948449420875601908790301594007207043411973727415632062363070340429277784394817954204546468999548666053918926172683683007814971578573600248710317294394448843033974473277541330786627275606140312383621420774880566398531313624369745633478060121531947012288897044051151734810807830133903912363861189668097331795608601493750842055929948222541823398041928660801283625453281006707018782069503434897042755222688853894522599030539020489337314955701790374496667098351368824090779420252169671853606734269088734526776285956594103191543334934038600834614331502557469072160648034010473120900872182019164934328470459829552841761921167492486109699081299819487772260327132417450599112916967896830655315617797822626558590521211930587945961089069807847149984859466113495251823973697958253504716273388000598408638789853382717582148512649445813685008261477649271119465716389258688804523573666166712010696452863002989528172396431392250291312262483770212564172335973977686021343039980890092367229053814682608311451536378986320709327829570823219489001685977360759253134429336394382468195715383152960017482352313027617381007733243440303822761011194004511093318725026098432061649053959342880780912679603787156400066065839403367142867747148664488735320135610676008920615039977342543614938497341628885077844138606263100970025595856434456285122707891838235454335359375876449804242820526083640299616364177021311327764619303074286323274845530825634125432751150491302666504061241063471017257274721228871746030094445035528539073807457384845737804090002028144411886288960163472354989836584644092235891715885705794546420939295243290585468591371650840617566599425750029314678507223679718710882411064394484643329954610677764780694331072717062692756683312417109611011139463661821085504580988812366689001159766264139646633643892715842266944400856953592269387612796822711983291912231659932082175551995516972586637652664464575504127727954927279132306637727960141992205229839927752398561116341622717121329922635523627313839866693733348493381729527355053198063453550618634819089014290998681196048005772585829232551537275670968414359616974512494937048907613973772801870675736637140739882324964774710077840969071715196245985106561437843256989934610872678859531858522937686990845551205581896795765912465763082661736774058799319980485530396403478501569645661663955561453947638327295701365555774465025874972527122290642562198735499545760921589002960070729721973801138130213253789629959175956580976380127822765724034835730786877246024398227830748771076971692144575457135964039460007329523717949430990160857712462250021229245151283360778605919006827357601363776653853200779474055280958500312193069665500279139074323437621133121431379250861848325647280424465758008282670171696695268596152101660139928326667210144807673917149527314776392056045349976212845888074350380487751079566408052828997262008936359514515926654603074014679601530117772310984324924759643705713307008403309849440602658337122578673702521569610206729075939404720231155833496828228041809889324994624711421696833404676468390842028404231650973959753013282955138873920179609279344988265923170153705971561222881129498435162208731615394369848672729973536336763220230144322732694159619790268731639685109445701908675347659733731896828372392361046180137023707484117303243130563496603550496964359947439671928353519657213851220859553195979535755195446175919834978563616157931552077561310981352603007128319832190984901636452233664482284789282600854187232900098358010817985762664452294735589197438231736893888005890866093978398970520816266335627840377531924666983201466433128399678098953774325670459321341163384179485666955455779787091539591368110581533297386048544434917134421497585140616229122751570991784393227201229313043113329183548351930712820846127729330398401075012795237546079747309970381567524660738017046436750495232478240676609048195017954224655691860793219976112949683714211830346624251616909314129097950710447792345650261114461202101219661088848540542938028834170510839880012530452661414190132504521927883011871062221279568011376115199905335038214726319457152239289943545293957164037130243566378070520218363669109349871087294701062791162027640312408737465944798824626757733056859911823537758621143113667406741291815265433876387400341707253708052781247245838446454896998732680766472387269955646795087710104379320023315242781079406740441536246774497210500718963982849567522597897977093834777181233480471158825443641564386600600500344160720682254810211808411512567357084984891738476083630055218900937851599137094599275510773759715035256813739657978387939578756271778657464247209261446955841495556299784951946819478918200609674353104111720620873949689327095809960878846068150950464898735134521611509979328662860911696681768575255043244658935010023868108680964806629790658167698852032389152083100452785187712415264850995886288775189703261010681213937412349001491231481785462694988259487679670831931717642156882355922820908741166819279570777276361862541167624803862004026440439995491547760156822245110943146359793321907651457414210811857840193526928832093995067034555606951909532625342142894542593484840582503058675925141311011038740264668736517697999865148957291767666582974699371529108379429383774742873444405356145496139200097000527309528098747428863235197576663164563720037297305360374385192658873231577236819332691694934923043990075160408252613077994667965005229516569039915339263626311375377854739514457494719167334441834323459348676579529789997565165108511845555334131972476027732292701748362002604242425239507799949556990060891874528005045955619941747934983249179883799559004350665707480958493275008957054007962507056917341834123332874488400532740411249445553836527172975761506548685240170400697250553779402156122844622442768084783942339868287720299437334601780996647565109361917718491435644824734160297147928340529884277015838959072439386723870343535506845887935572423871222754959006687262515299227861272218499889732417839934591841983416512223531372843197334448869061837860773621436199502700786890737808356396084742695103825175971434261221369457991269364311703842958973009545704818000569588438193026850912519243971586079299492040857173479005655283717195519706209467061350544775909817904127187258987596460895347697697608221397183032903130470422739255996559513062369358543356531626867561385545803107531409486342296168743322226074461848087116703725685858371026268065694823968046651853192889980705260860583867833994593885183196216939707131216567691257350011938712972055953794631249830001790955398651214280840667144901419093578924525845342340676977857657987950952691782923077433053482164470266471155573067911077466376733851072914290904545533151703473486240294832928050286282677198900028171229948729728330168094955360698082815992450750550078611423148482023636881204573521707369146713975496396813296891972530763553596595857525152337897004259092404266799316533289319365952036370915314011766200941514336732963208079909155329807990195913554093714717147049437589999960481836303394098146696179172740772884265482455962370394763096780670639821726735038598361786672895543208842079062362611051386863851333773273143204028100073544523619652687052829534556684339637117707028931937111627519758036565308058186945822674175883448929475526733529391584187111234715357861811264134048446682047895424548186789067790482194050030016516979220217445015982503118357693424629849009001744112936291423633414534293646187338413520352317278262783493270601013474037674230905536107838023386163548010133624571434295915477652677595392259169958656171117833890304882741172934674108530959184376333224357775449561538411463717288711051764709930538902243401670285223513519600795198878599762564480878835016475777447583074622869600332618634146440586029922757743762306973251191143866375657604471627410533452202153311638549932919299447881205478094540293615483188104140913444032310321912216226050619203927861806579068694933683251318824894233806657687954378563736995065132047525902476696110943803387077054394322802003908609016420664606492852797771143733821554013957820155732841196008551248660494271212572198065733410669412334550843756507327036178943602929597350731228848233253536649460459872128066351253255580516521138241162224148025020094290052741932013779523553352601222645854874505283513653768283777591559177033603353401533059715899443242636569707351874644689342705363099956530012982718273105433619543711564587949079375420911339402352303059567283990721162357475909887571129246160360254016485581053633645106406960339407322593649839613041141700995051102326712650802054860540555148562515601111264800635468881809467066189380311365048266103408665269517395311131960455219697179726347058270848091369700992950479376645894716803912243514367910530291079471893077052680264917336047623466107783033236061994202509229494704687425703178696353281802689010560097573691634399040665325818338273181302352175152621847176147995777548880060411793308386679957286043557712617458820524540589615915193667907018565169000371597561689805748285749081770091277075049668542102018700976371725647059577302353411824422937157915995074472565265911750531462211793149487446460251121556985641246326310129573300751403463267898083469731037660620948050990754887637991042772254268904328832978030728378056118512733357324754313974384164623314645836804474940516170362034559293322921192897230355339588245252766158471465083468408603310337130932714998322609621135345310176837377233158058539740452584044602411231797865010674163563615497915889292467053879272081624318799736500975069991160468590929772337178132095490295140276214407563690975120144224867767970907450894035161003766665157709334762628539470606670522480794450217390487073047502289662312662275738048786900610425869910339885052583109324920316749596977865457086969308622456744320839486941179915345009173497474293689801537545404861795951177658843265584791694471983791021503782209589181853813196089279767042280364995156116536155692538729195498002358575531818827260237872421394897882677042438348803355605391354523082741856800107288160579944690442734139955050582808316004698671621685138420014329642384581920144832900774382371607482733075704571068241655595759481059021997439659858869049106132350535537456327344605531531721590496868587611228058883698351349620802068248161601481459716940609135639264203494412694451879332375754528415074714712937752881840340262391243339173643276589069290462087297890323131267657193074493434152136470108955771711056327681005562590007808749307984172013954442483633562054365881944908934566735039016540724540589302902974913225135322094445302732957273140149777475251808876927445029364922572421662166459411602535478440831352864626488855321086467711980519549414178320380903916447014924456114357302241622610896327595570067179440559744300085262780142967051821290709183163086658708152235658758982237016490273421092214695424739480504756280076210837798166478011030199126546363879304929383482562328519097799121812912351288246405267322352555121399055094546814409527819524536083481620562080979561879183886778235307906436131638886512866607680290865550528643261812518710461679265496157099139708280804773192581503582536248450111310185023966568392581433258219892827476879488697800521174695879624675320425875678349034431628154783521927609527211841658724740078002302952420552913088424408192857198996113867937100234273557604899264388465498800577464081646449816061124718710150739379771610210421076416028623621179658684741994008702432865583352493720269768816922121946305714114312847740673962886854595706664349300740332687245624599948138717330616948227745009490200457630932344197672455249375979167989135737942703697453667318416422334219628256170164554743095609987060402344630421344204823158235548573639137504541157695341843504514177758866210843247423075030624660430110188206841426692207203806890467033630892777826460948187208596993345746488445224159961250075012590183374296015151960081028215553092407247242497085472368821748824668448214376771764691204219379267016331798203048712074127732516359083676008377807718724261343706257076794436414883709192664051003635267059938228187877055339628746841755311232973652851801622526632571588249862309836301396912945461559587097161616471500352250621362316433914569185069344381736050052726126259422300742548091139804232931443164363791520537486049425172325019364286300520974187246754196012196043958339679071684396378812754440776506920871412431000589047085125307720150971121411856722959563291251274900522609579272623799847099415662377746740171360366279121664124900546782604979527918522332817348776441165863940387721496699714311049080250153348454676266931224092200420884167552587809653951679574602154652095651045601079963140011465158606211940107029587956350133669599692205782483507741679310173533129347708411184575433380976968640292726782805670255665712937954814780622072773340215536630641094103434847196883468064863638399075521773420898158276323915530458370940211480581015114770976623293519653891217484757324407419203516375483441368146282005690324659097053545655319564128854997580602570714982677440171817073329183370002454913802731223740322170419014621972830496278302860086203851908873972243552366878205711598122382743920104705811610462782570072563821278786270542462073957033103940991186656619198336960009507702181300095230748340134709101332407755650838683751286916634834305236652444316802861339740832590783683010123640290586138784374237676138006142920859249196114182894131429045004921525387931042400215335933676918699142055549749042308253344160143206567154965887355221021184997516308771375836980739329505121273985856394682588184342433138671539227333240260668568707999906157488098631784260521865552444573344382119665353369612419810586850449244091232429157475763578299702521817937085264526355778719457480804285767758860692910221471585405116238969799302002454155887299362152642344440538058636076228566596484578086514969291544352736945884676868572963852480743916369147664863426832177536301050461628479965318168283917280631717195533952305941745527046223596879555194185831892782828658650729264312614263702405796004324729407522196552745993462261617900450587184430535785359121037507891610852440392543087594910285485161931628506791197378144757552145039144118481156904346009299975205031376229992833052241924332873934526834322149391988598610021256468294460328462290762822684523073307199387639270522759895259796163997363397439059217741511102003312854021325062043482209715914641125930157133245426164588170618385275488988443010225363983968545332878312169472219861511104593868379118616856540188529637308081749928355339675027034475692980347542447692918563728628333237759317658516305642945144173038849618120336701963911691706349857889932132267398163376408892072725022924424155747953481895044877206715875604869532627765795158179534290913327568167730063650103717630888173920144743637741187661366435641260333898645067139556782662370015692685593820204652112965415186064177563545921622194536400297666707573331123372807625904055384295668249973991329690515985550740061686340638970095138618398195943869655611536463840846816453195799078624725912342336007035742041335978386650972751296535753354883265085127517210518594738534925372938337173886780012603869683930432750415849432880770370243369168650992192817425754064237549067750154798272451209900641778423972972119037885141234293030771077653235779109901370965253427236055344762734455578275119576721856692481720470505278189811719665955837947330258709281391626558369287853065155327021395021671103180963334339546754047452635449354997303778207235594079324266607930614768416164117941867237728472202574002312664741867111021924978442175728583732790980655717060654078472268309557966157100356502287406304472799902807259819890053675778629080251796066453409428814086101232645618152750367610380800293824029736719176914739712033588444070705499272788657697768218257480021422170032849698524950596617942508544315058138373902607904124950666845373115772440043922863846769260837218553099275359543562355064840289267556611414141721892110910459767145956576122376450889462191778702407813895833163774412818809439470762905585564582843305779582859182436312350664366496615662330982742374219727068609466796077624374785793758562803181263984427120324467500846562442517682068233403689095832284272626778396207395319922658938245457863405800089449885097807521666390398436674440500259375142741105161326665399437629170250593314328563934934447559476939016683387436377545315753067826378716588349781175558064944879060974131481399947529347852175554831709962490201536029291464562772096017434281884958048021060967557183106235166535627152638595681180268375718143895850402789306915984465292592308068085686279696342845866163436137955659231430643881692411303816867205720312089036738774853762423975202258267886169906567412564719587493603507795015534735992589164430546608567787606085988358691561840362704739580031091008024616885321374049874455304933936234656051437005306041600734846196177595879208257341908941885631453866472921840882096443754862654258221950257237267520497028703810443652207971569957555386760338838516965231908886914717800568759818203619746620402093361821402265311269483512167732748753111773490910084948443019684722021531419475999101200889272881880410769718967427601615757550838295873450081216915018282348880966022510197273513446146249842696206003654403799746233813849591923366078688540155934010064093082209663436765958417475537131272076554072744872827553264653331211311373269419261150583161802035292785992426463061669626096784864622746627915758783291710607076367271084861006682187262046738529547923932535545221548126040538700440412566397160231833986174486933957444389908586581495526605090935839916792389332473235643050551635626857383179317668534876894864596914225976531644631810853906081075459865844926285774211444568093958962507118052718277563282634411944895279591963674073279903536509477288016274731509478235168844119940414091332221180180616915071298293203671034386123162231845508796787405868406831370202986422603253123108417923675734809775912068631936978093065931058532345331182565065733404353268390583327839733396410790750389631718776651361215952180811100493830214454218404409046605002022160443374019625330445227027217228913663499327042259174754686065375764438745195325252760260533340917005623885375522484995244681913482181271674641861032867809774496803411629031565273572781117532970044724953112318500419474359127528400087968564801828160199403749413766173162565972956242591864821859445071467417173494168123232952277940009658985836061177295457110948975253056549700315836495864798373679709245435631161504145468136963821707100358008493712080822893897867186245138014683902605394959069140737300229004793110454772443272293012308639948566224136072103294688285230835484427625061268843628547539843581485464134191976719447021401182271155480293989817522569940674645405701489544176685759125666998296809858884315024546054432500410425075024007574991706527726604865279792850971327866637498656176373662948338637337935451543627758846993492844894680141806037816766941598090884493675328737267865584034514280625215139502035824945179419181183709155834079622783696578922798255725024241717606599800803794899043213247028536307727064285945175534305124280731683928581156489763991316790497981038531268791353182865584649892196612738186869686742173282920123673423902933217116018708207236961323891335965705107147930819897255661253406219717027438329977461875908827425347377279665372777920901672181484573408770335816585694223682219033285893222968823831650965280693241922632799458897117872140092236086785671381761482416048275454964939043268231334345228509148545132016395382931190274802929087560323189460934135339954466936412909087624954309746130525141754063856008043319083103015650845513238348509180447992759590974162221752991096808033406977945404043002426412160120864432433749727383772244607912754618124012990572039878027517772763206356041257809899672651658200133042362650596243707597735849657736364810403571277984799961129187307916802994398007080902462183352521333611813076274593333133721821261279522638224009530404282411690165727721124009636861667629800450572812040214606853259966630318686221339031316469919499765330353918920326184439201089725297799549639857581407223707023250428771936411301524761983383082839226232983024458821596766574562860610270297778944810839680704702072399340525373488979091208163195969825413254912140634846739332381147366689189031847649879180555397450543687463552085874080437157446512887329667541846722051712382516693691070364696893871859806691829175676610987940939635667629010606509727548658587171475294462198508086287876501417006281112930937848064071482058201668086317382614610490918319145165390663053324132923672877943522113437418297999676747839145160883102950353236473976343997017995720138694437662498809070780200272773874598635279777194787552130095741710545588250176377923960157312940164628764822787114488263691556143028494840242410391275129465792395232786801122450895400806702998203756311264025048140015487428729158729297921157980186053281044486176231464004816946941407438914180298486550229876613414372499997809121710957952059326283542975073352336454353639143810293263806009359519354536796318015902294055239669023763734521810770383764244824270603996829342134662070480492521502363032036690989838566380653926762107427634688571222993746128982598239728140889071240224834276721493301201786542764076749314510052806674496430715313218596611156637590984697559363106272145942547834254376072388253306859736571447055132128982946173410621952805263635377676245175018225439869102124000251060221767948688345335269780596846852226603439164042501003985068168414785742583017833748779990670375185964311513822997841648661962517982683072529202505850286942533670140997113841570176903207297684639715838597602880877413683027077570598782012304423334940028127287155918427532717102739360440535297223559325555252199689330995020243002393917424010689659067441737028200159432768447905875516746910131012310979620811061575990197211752060409416358040313370535342832712818616045407970572154048281103663571345042128002955915868119217504982024013175955357217645971570376157548435459626966341495755118775700375261695413769324332408737113513759414446724016114404211884701510883618436856144064244636295035531598642374183212799357585772748420997531981097364411220697488113598698079568122378749060192993623165005273423406831959776359772299154910810500603918601822208363536336599291426632035375854300542532424249181993240897541177333083186450276880931475933831826851706715663099096453460317199869311410507724657932179958497827948997190451186498728105428598462741844867908036886080551783440296379079448831672155852561748769130137463693359673219724238010077209092793840957617089114884194957062427078280943280695552917700184693275056949243502923118281111973254158682883420503062412658922603028522581415966372475405451310217062278140412824493420571465320587819318319428649584681441845915745338628607989522556268126667017626285268406849949707144497561213128585640557953761830103666349007373209210382190466966068421334972592751015176584795914043612515061771601024465994002280921695532130970131427799892319584276421204883910248095052442195279146908325497388446501105885378390487597578719666580877572930312907740511902254634719196573358242043898320433026230281699094569209052049240277573935862194102736039853524828248861650423547356682330571863886781329783503165024665051981931965984572206786508541264862600764567351898128867097100006287232803121871117564570822078544158865152701094537434701851918142579185740859377005223373539923299107007802678200323454089387817297158372995230705573616044398547922265500607273430496297424571957203403348282380981270319701903436561976511607943567851709976573875172934321427770323238140301157046055660902600998835674177462456619344763162262645031126888942467976009197429907940752945485829668326372349033817277214008605111009329247083856627794209285602186220922709504881707002819175261140176869725338133899417294209507056666445432473445709440303068923593729488084688118154034596680235346864059048029987966775415917233347662943476321887733070804410093181227063769583093666768031192506134429464619352046139332971525513755498072703933867513582915738743392417712802905897565781883668590926336196842260498252212849563580326665307177230645005794802302194460357358713103324122096720610393668042965606771761631508037269078660897269927624543099365903482446448028657191838228167486523058932717043127718855474614924903473737525610979299968015232832769900719546384394698791121892255470859244883757301406160824408706084179021763348831327894648144428356468282100759002283523587568732038782384877168231894605829552510364547827367874817308970477196988629143548873879262486744704775780954939712331269676991186939905000728113792613772881182844271334686662770830775567219421284518810993423164934453244087078131707097927863669117928062194378675867220036034268233248936785420616515389729646681245755183109173742033324330826253794293500165501240332163223004562094123865042225219130694575146257499635991439652716592829743011105106344554273743000605133509367344777000175998424968105361704576445481165527018863389199029122589067035642026005027600864873427147482028525344857485234890082409448317729083879026403739284112578979818261251201178693676293918051673276681268136557578917352060630020528601229121976502425753822329345475899659751229600060434533082251675747897931335117043767081132986112762608408917021514046076625303913734410305792804748469501429742211533042144116667809303781360277803672079129295496022600608721383342206861639491881613642773659550693737144725723315399023396655994313950770269373835097266906550773257967416679550911303643920959819344631462450755337991430834895452200231276516031142992511548540006834344763742349522522917114000575509251257020428519978204700073839087155139792147686498227812115346073075870986860577738392343737174117454762085212988138496454334047343743969420458993592250802501979928514754356207010962369711638547913138892262253901634255511610241441120741611401143545127915047232889210428375777608600763017809158101322887089902197697085511232093116874496346564336022041111008519990590321527606679478035928744869080971808323923967910257587794725566696747723572991847796614543936859159241322855845160415501498166510432143529170088975956923007099176190650376767918706625848028314230585004013903125263691606286989749776857676092600587625244905718192060616109240332778119239340524334964229690973824488702020961561137514403031128901133115075737646720580311731552929408492242290605371346933723936942809908849063394038222296913777976838703006494038771879241614990883033053715697536019444738771947131508238978710245763653766645136058396082252247790748824017523930036512361557081920739740649939784968753551619404659210538492654886881914896319569153982222581955596258578565769494593517028499738021319956335985909579775786243343206198428388804716377312356677876845895351038842860152268581417534233393050666728626155400156708226714173024540921116770323537808681785618187829930619194686420672885536712892335077452897936759413429520590061626483086927179029250139266744480412771361776771079654594118469365506508414822462937888626470381703223388604971550020200845873757073621776561434894135573314124677066570620379093707759875659515467513925062640057139895971256964231970261424054426156553548266770086341478010065636198187133771350221686101982374068923646572891333342807115339973026635985209567946027385495694648471664309650769621988015221452472976317622729825794893724942595693376576874512262303834465712252921986138736598008201835793751646380422150988845975320299520141681282103544690927283919883841957477466201486084000777924367717230281825396496044540986634680541955039985625529191771038364926073280813457284466029902403551334652243213032193394574599949623930006400957136451907957382838908575583406583946147776821113623603832867748004915205702916834180335107940184206820930173189096456739392582064890518920819053354526146840384023887339271081172208051691214615520631013729913669965066067370668100946528737111835602083245600333903529531120395242093928441056714714330825119338351705767438565787179926795547796231534345832661450762266153364148380098761975444360979807515852310422509656458877200886946445255442378469307914442577992581509293024459466233275687263862198579628453307260662117946230652385231241855090577270837584282887048504989664712799913832479121246470713988754000202921957827271887971028288903046323947533927345945331019787815587765454851877896241934924094982299696257883099299571654023145206746890458949595551395475037387583487684828201417408122072895333940005547836385142514470049641069241012083840131889249004761027910741737380655585287058944763221135262760754314331753101771363818207416248263154230431413136377104187420527783846968556822178437965794267148790955036119761395423652791895888114481933532025341496491482435769056834673439942770829396019975829796341741920011962802343740804749746337543896221297243756347632852614943431750626112022210397909476781472491583615372412581203482632040859166221033035746671271967495204849735360376831746027119312823523186874358054844700254077353062006194818227022065107022587866967704279426293989627804751746350837938733677887311442242240872552411283900869777924384485655848343598087422378859737159555286415791600168240729834500026022645123866369691310076539453623487680764465274075203148444440172901269893018210160995683881510748264537314173307367363593092751478948336484231767591971782286249565146100279590364311940494724692673046110435766149967424221497919069506159147806848544690134915007653309903921268221947469909136314160707002663052485910741225008854379547079261802244771758518949740753054049409080230281046594473961791756130530243785875215293735006944979240125409673189487205836016256190319148345874380789603053829449017879177335966140574305905626142556824828251406255382684045732550120356435301557815735758205131910989462424073243832074331592580730257157336545297945930340963815028202474432236484504908000975547245422309395253571720483120464481419301159740756713021921258981082077320876126281692210998557639091021599645118733341675418825075406583114063065994050652569030892217129456748661276553292510586339456087403355430584011113360499712030989824292991171837893694238350434886336514610193214171631103133813320383416855074751730871963172794507223153235698311469760924307608606742100160427520213311855100557745687608415066387996873474924277052310120232921370350798526789922469241542142594298328519594506461818996500605840040717415199659037864613471690799182359009244046423290008345131547464194202572361850258123300016601652054820264217776924303297318540983161887007459934006282675871666824092906823425064146495520924521866734981935239457483283453053934202813886651658034397165529879608037247724515127830911812125869142273194290132440246557163758617460185361470359039686225620081604935237329939514754700554010889521518434443566221435324053046614357266582447778557418270649464021402722226711426504235783100308850671971195582830291746938172025852293923803634635198423670035005859578281279999854649577249874576443238413819103669259524410361645197871690947604991210348678386562902002507666257049559579291743191521994287189004623533303477593811335136969822622681372712687062594584098204069055483597307213259655396640676768833485492577809871953242941056425454163258699117556950627634712076656495054346514467457900483915179661793539701309151676372172448316422360598513613623190133346146420210714370206814034439957351821818977853528341170028244912503606442289296225479269568649845465956359462489383289825601247709185491281171863268843208119425444321790436511709973214106053187471207569766290135966119656581864269191795920375933066580137571050613663573802297224818030723823194517445014332238258197496826218584942285656432155487645069628390743546219582883548969464369574967672322668326900957170464280025837703019938369317873153013505656951270017793425721441561444763067906950917660914292450727171151803037579139804023179052154765265935948087779596817962440027800305748351591158394890637072548051191088006964714754749331913637471620129009707369857383970123393440515450293377013523465072036282790616254268728472273203014997091347646070823941040552980396215797417716811238467599688955943822021044333158150731801598040595749887649228716903295500603488680527249012500895371139930561853284947242061530839828787915280008236263581603340513818396371099986837157636016143373797488169600061196740749160928815460630123138882912972379512413379207584845089771841538802263407916211125369298365268278911239749470402412944223414307647792837763046459175472317566599729735661442658673519844582305358488848545939835117013396748098182719422133182706278915061009858266773651370755164411331968193616222255546057987125608739422705590064086328215966997914462418442727656254414767994646535404693834825445565780673614282508563612177203723308217708450246173780785152649475796229263407738257673323858974021764969715711017299717665750575363255425591043381383737872665945588810502428753676049827005086941051907863500457076750240225513477664043990107215867522341312024513383658831888100387909485034473467255848004285695375133378815792358278412570828185700514351367832541606964581751637429878110980866384143576519497009789165348587601662043865178895033941469571398710206626836849070962645313193710862658122272564813455219810855475597124061747664824045442338824416344446108756348471773486490459863705190463371901068733088559926785216131048115670849431963644035682558282200311925346777427962617851124073160623107304047857887249090579925602513582704301496696910868944523276022031683001486595449638895022245411509822160731027563572026308076945778776749636611372254863162000180143494527737591618185135137089873407432472827336885476250726332568297295126201421694158302226775105280510924519127164106057163878050144149936157035518235709849834430107005288246372747091709567220504694110953111815925088299649259522818879383447814323833013882516247721353700055073304676848152885076290551287430619608948348495463860568401538570919090680506300446427721332114094910188719149356425638738292997782246510739008170923073171124913906466875755065647054468947867403289682628899450868610833126397282518808894959476048327971414298833804289267453671358083326742351002541007546793137771138841580995504112076757804181893561482263595297205992220077183238342029392249044296441190631837223711484396400690293371394831279817062672378551991610621325656401283766964861141608388866199034231049337218237843904934949174695644317053775318221666815579147317243871360179187834248746068653746439187693845641662907695636532094792667451703923204499122010669290584706651166982385661130283693033799996961945960702717244501889999553722276427707325195251774393657179504176739032665890056861848151549835893570284934262163864061361609638859847117808581016103691306364335718680348780113866705038688975595071222212382250042789977538947648314876230804470416798374891294412092572688428098756477734986789494000381341920278068279054112741503665315912835999062568271399068927829432728327316772701567550239278298608180016597670585116447930807047182348362826155268410156073139892774102478367022898452060267134403615462738279241474536079434563066669485558265682834209709825904784455706395711675066317227875400673955765530801962248336256631156098640612349791433584404405678733114070986205740336927865433051595748342013314312256080330007275663139245605759739381763253527886632321498664068586127981427379611556539678644211816851511977666038242866865478317562442609485618284647882428431705967719502868181793745930926386365424416694978888372921380391803536113374746779871198442239023637709478979907920723561718661457137516271905889513702940288575312405922630863002035212377273713605852811532801070732677006963769030808884404091651012446065904386624869377105194105024271702811348563509752452755678105644618972357834292742813585438796970352618804276853403477740835312430215554726986054905747523908090494932313988946841764331079007834196576692491418298841881521623490763280892795280292952482474717557789866803789565761943412470255765117177653224513408633580114395303877459027842911988869756848837837873976350639084083922089902175147273568229193333861075961568816018052854078971836192978319084998517083535131482266121902148022945198068196297879536270409306696474090718351236319582596974347557430503088026131530047991599674922998674913006296746719322805119304583101047293986288117940734729114827128191925357268918987078518352112443090814109961044995523643553862731727821213422297937385940865329918324886318465060299647281763192662275163733517989941688700825332825447838570380684052083820698234516987998526085830020186250394783781505340950408720179267761401188417349658382435927666435041810697532739080209951323963817760187591464201575619511144516340844890943145583094015986912848545990666861721599251090739137894805858404336758167890884338259017966521518617729918418593510746814368139100152774706519618701665560834580159300649019734876328231278793374155528860136797278835007831391696805398328116967770121906056516061227082142815871136731741560731244520082595689426674338516900517642443355824547448620525853330509307306644424660445876888706589434274360511451394193407200184032950081805457238443146599812826893992635901246352014094947385909594323012066662466174039303877010135394865461763175800423389731001883228922228900473060333621392880159409389676559120810984302701971136999416002534666371849155809904230230265376739942277901925034280945574737703615249985297290928435162125660042589717878457481432334926373822323701493351803585656811861290273500673144315733844485841460854295134040432504341639989283550077856748120683214330426131342321757438799836003953929545020310743878367371804800728316877898724972774735586599441007402339093928632791703468349235389278932305610510732493344405250219277648533440181166302768388602425433237872712223733866874483809886438644932767368797271240368112760063128808447734553989333948986081404283735301183302553481640221809859727961430157463935210503728356544007211271265712965007566675170052971839299698055636681559418999091670822856165972738235145551840837708635302427450337176320602352261134273227039646079987668722978838952430527077735978574285967484935862191492328696983304575722769979430514121526746680868316329829993251129038580402823670769752049521846686959471736062951985827359431185168950501607482149023459454231505567476337815816523605038975183357481391227165009968160019392176303981503874021783247614075639647514817699218030176658164779797107660811754873210615750522282166099446435843559105393927375223772920935423232254488716194019830515580600427804915063542537473892454178998600682454875629755658905769586253021418602433505275510338912733310961627923964436719470837314025459080700487492049705142864587688324261417933813307242057279474372860259154456153093505619508430755984647624188749254945391787843886538199266619849237061116240710161410350972405869841527652820328856852640563387408030657142542357116739908821850985090214162606672791187046530546483574444397282875221022068941324306183853077440015859016446987851645779542970687958730750894824808287366392493265796025911214970998725127326268490586857160424267257241269738256136559764157605385576613074638753229486363785830863657996885028543796079027391354063289610732375635768728134679941227856521336312011572971874627319592531102847316917617360836692179978597835197373461276273082140723922993895468219056368683363464737646441447409381925885199866292286255863530204461681051485018313051364991434345133927836620640893154653760673299105767787736873909236493864708866376418833706176440972041599837852867253928670303581431732416163839213457129838264263831924912811547579527030822775490336424405126089786550753803278895880686468117705068850451245368085285505308918273230475797491611085449668934960336906226204401599795413147077462303140784897492482243429852675009205215549222517433014571145143685351379766466958675161461946557406953738686663158453064520780353718341557333700299872656910585401890282701994804826268063836491735063804872112147131113796523092460625910344461033894576337417232041932631764598029813145576340447543993512865546872769566973082877223261134556813749602970523493893111012684216230347952895483102569212304122790223155942005735404722527479542811362620567470338810273738354358501513405280613418772404526661174010456511528757013155518327858875183541477735563813168731693536096978125764445687167199688612439585787098291266284191797344058586477410106949071433072991412988003025207964227994223954683722385184896081273935964679084366212151781462221978447057293200560774538186218773220513715134286984888430357489998307213770194672120827679924075900564479470329372600372054482908867837519595609668505090110834928912923570082304445138481893345405263793999992954748255807483304317521232606638132571861279442518312696592413797567161355867500296218024053883439606785115839858502977083212352446023226148562162941713515086781494344607221643181968636248996192439536232686262417532636594391788787062061647386679505737209767820371050444090942847375701446924520338696517323415248355913456587300689908857548387966669885876374380717375808355381268627894982235420714308874381214446232181102158038973961152347244008235413168385207914353487885541089022926660578065046291387025391872347052847665671896438630950206239405966137225930061911237633469127595010009336632061448529331878229599833425010622714473416519445120411169348726711640136878970659889517869645217135089637102990834718184172668981178788737247390781051262581067425241025772442705906659987710449526681949667438160288458874299665686460962105886237739843872433355842850144100911409207659892072662312890136283754915943445847166718079585153262344081998926467280237387270455907314684119197640783399490546733065694205661438277771890624418744308433025811255725529374975560699158613962830151058408443395744024075208723351821089448449984670375817357718821739861101648601000032496682491444255484529883059801296915346898372615721254356605432721807628173969831721757156520611571020061505967355896374614578198672135911050754558521041410647842356803454852098236467951050873688153319401285794719493978065816946894050431101408149568001461825552651623027162084084395157393821064569313169321478604436567844326921564126391660133105267413309339329580732741311318461103629415572252358974081385392896488829173576346114062125524545734576570080241667272106924655845867788154575086496472479786825202692614631957425840992916471928063191847067013435206161003485096161697184207120889546950013814054659547104155673833956376633340244590787069472459335444346288066417499793095388565400744273705739815463831764474885827397782485351177967955783975354808973415895322264758783521382935198009968787340213087263787677853966776850315977502629529210850218644084710958265170903773709397349594834513938496578249098645612908181348320109129108591201273558039468686221474021294259665723519955426439104565802239482127995014422404286794495282812983185685680268880742874561682742193118959933265159496869607605181587594054919096989288171344128297188825387092516864543232477408660519037086663445266841035919770621303103390240189271228178760953202622139643129987974824649145763947450848443166192674228716805438592734400986110636233559115246927199582906339979639900384500771746369930943255311088489102325487403107487179504953672062029864396033752463216334227140859346131546372657600269112333271197464217856895791807925282490369245766573283565026069779716685025330586206829469570326224299891597066461610490164317690169762063108284563814761122818436874922745040571912768584780103353296537879383768115391919425898893201470820422878338827742992898592715472038491169116197934080479206951302573602550315196864488015424846863675525489957397236685106476187216160759757286734341797842067441867633225913570809771532105335894921916514627101028812429664464199537083056984002067221519049571732959827678670254787037855050752732492033458774802224879384655759987588509133152794819322779049547483438189126387889560369753627930367481592595177985511272554548014329974381632330397892001490497088193861438359080449056975341640018616375279573763307300606115792353804390898803527761535865980623533780004729896283705301926754179148158937228207007140487572289596691645476686929366634104087488240605106048000977226280298084314910350272503199021319791020074555785040998857618980043836010816386468264414337718168484085463523546827719853698209675289107635290896668471023893336460344835096007717710317562527384117090750799983078998639250451273832792796398854098778651229453437969873543030014821990752073045043780773761213186246290894340236706486009634879747768471582035734861013691951834860966285013021058341445323538371149507978956138483660699401105945677936041039991772779446440149990164259111847608261759894157597874394286981925763732164083619924657191263027636675569295034394363167581064117939973789177666986824147004366738887414423511855066638298593969199007451844084522406576231883798688421627852691991219476838979417207667446242142001290138485611062433161954941489951737603731495614430099524056946142481643314256640676352067111013988050214431859196596203271950269477933449280188468485440019226105017247958216749596769664654489497241247904616320050060261831743217926855426663548022377757065370090570132184325339482823483629342906582058138776089913884420831762221706898662848964121057212400514772430575276427596163417792655217915566942386107795567192555764126519517479200005255185752964406272906811563548952734879960649405762733396636102483449144103257391966681834589959761191231296277113050456388016970860231352952046972158709910894364605319229605373200191383320261413242208506808228739947985198994255677042862092213893164193115070869107386638020836477236567676923256602922030284554687356462653342223570871461702582100661821592759380598189788589003584625866820669101870682998390626131050320191777607158617692631035761079418448872943613609153916241726948891730522512394144521290326915756867480678945581040990899921737239662702493889272334735702134226565037566480665184763890736935894738824405974005696364796365816363241892954347219882036914274391309300831043195524051734009856457512545086429558475173473201313402062852906747496262225512836470735365199446691527101006932870793881523575311234161336882996815740871701740805695566024156901399778083210504882248016500746988464038865567489351670799375612426203423971588745935574688646809396769350638762156278571707123102903055760887668779497180838352165854558022862643698264610823455773261161702029263688919762981129699658723108825777869893901751208942862536139837882161732518300152917293122389169791766093145795611898246533334291528681395076867240742983864407958725425234800882374053591827257141671781323132351146889029908960832193912391874890282779867119227049180618960862957598924933175609198606466066472692105977984576209859450716264214767398739272973584985728064569429307012578024413936801662460233164894559266403020884769585531941829412612284353751394411988756649209041728070601552425730848721349380850031162810911775757551181177664834513282918482566064467104097970457991573796828463405158057614561085048410744125041898127450965724358564042545025536609710744376310224194406349631115841769147603254346614593670353302943827641261566422589618918540591489507285565828399667329371412812208232130340376413691462674005928723547218715153070964635028542606598732088972615920904304564535497944221795928044860166008135123128850940187571413636241112349268408634485161718687938763316193241593784278214694106827941777932245872880331415913932323307683581933406712627997106774849455329128259650827484741445087800155510366215827837374836133275065542362500715873779008479354211119135452846302128454998072502205742858637865985080466348576559629761778604374546540650212621639494479721024375050002418926193715677106117667030706969646330961281378325177868203153302148496440834380424239110326440759857682337987696279888782372550019877852469658990550922897855480065439725369197883860384925785587540167034351462414563082669599966371660853753714438814153441643842875387318206538564598513237612885461082234828114121238284162650255416370152818099424647490655018216669210624422721497601263596839034626342360992048719549001477387521186262978292810391199953097505661123476138498897628779223162668922531785741806526437062985682684546843377959067270795064845220923313754256242381541800183271976263215042023544596574276574003853905852587704964812876953702190837884891984124597982570148946684835340950150084599087448863992239341472358133530047874806933832941701206067901896037864203023701590927181250698674434186372948333896820443144004982703539092104318506627063572375630485263402689494096616565857927618474835879657355064164923304700333407883934388507824151342362610496922532689063135305967946974183854198299324758478854177019296204695460059662065077277857307371169070204549248528281852391668072004935058714516298383765140946662476577545474237229161708224701790674909992924652261773215846965121536908561300360412431606527017381179066984396960612747862738217924648990389013762473685920061559807048662888060712215816964701752452791301646803579943499856971834243118016347056757102489712268848084242588436293141353116525704518035670940215207332484801299041711153006569466627569683538527413954115503653223084219379477321678389335792690224353146085550979868057255590310139939432698109542344297096908393478327119690242036824407542588022921628240525534392906365859932632842088684361170499741318373181990143882776162612912354453974310588371880113082758790470049278452517489823423524884801343415260316558567392475355707060995865360459101983416386040342931845372060560453563722645694532899218680227016697019631021318473988846751027013588580750252674109056192873031072540530083753331621399568566533753263398807775493794815143782761458659002344311587645745590363274715262075491727598747719578641248447471426226639719654030020648744416194836314605019674598366248996166668808318017139867360108212428868164010970841588973702222704820711384820953371022698767678102718765047855267112379278601009207337626211672640884883369729523197560952896525747814543419085348592868137034627010446915020136982923256884314856250381560528899611998344705018477942227922209000833953982182127061546017248178095566063995564311641506503921029002338761908967604612473579048745981991235966957228427295329566678920150646939025989756589835576828739598588658517724579418681039080092436100130789173672780701142263801886421477900073682610691792050072792506185818310714482715735172309002377955697634016938651366356730939282487536261359935535235150215124220012643650126648620004516799353193955229705727797078774916803934434649420124283155525368467130344194841733306546550106970486001491795155905879245753478961361862005329398002827146353591622277683460995800881981742569615029590406638236128770813564836146774135633707394231852690788590858937811794789614499588842206007549686126670686862919850504440836082599968601204415665029162003735623509976695618098585083535256874145257350754083568392833901450634387051125453301944101199229151022100163053332354198644153881062461843464270179373332271760928681107440095255215018963729081589524528945706217895401592450450705134829534955587256763346904851658445330706378310617546252846250100306241754852253265106058268804097264991349570340651299289610900651771648901820075781629322329394230149002553856206491616551904036973789068985463568658428236252662843663655450435370035609218069294028287524302542846119214842555575512323164542423310257809932426245161173699084134451388064498697138557600229852230468614023237802681771259207878357093431778092799113012155208308653871048814916167884738655425857850638565394449548817207945752148929801290697500152939501731028088684079362906556612362889877595295581389473377906409377708275700396258152481479718527942861211328756522112809873582456689358992057822609210042059547296225966283188703935632791865456062811148908359155992234872269430438210361309208429230413794435591481477071387479510201962992306019189223642631511754199917302306619802497207595657765475919286787056912923275727377831227928754854308989134568723640718292272721688802211669858091221065947022366693892859190289369608683066556031276572396565034930387939541438338470915058195025873702157379428150761367767025931975005708709591156941440648933550385511128136904902030312396377089146399334541896222914093850027964067436895385448772360824369352050642932127207379132441413256282357493041976944251405153235363107396032510890207255757462622774778873201297076625097097153667207160956100373578272605835482102871186011840500495069106428328822312596963430028048724563192302084490087921436931751684436968063111657507358824834650475995872440896343068157348567023081116530791938373376778481472186529080603311786133740320172951838849868226567021214969976291962785280127048080183825784820613229309355144738094950657210150554075895681328018694341188478558527363625719326655921691368675133923947628983029267722831084254941129930452233513213021228031746808980944913659857092308483896423102206776818026923621229488761352288389585798080464033607528086880337508324680945553694751454015084390868601831701851402001439781959858293878959570003016577682596766086674959251256410936170097779499724641447686444575275773361959610284118559284223275877464485344794041375634322380778698511758837473039083309196539438062493558965471676719545895726252341810670145137533958308222697506668157822665526394804284402425659698487074877128402040879437543339341268743797069996870603270632141105154997469125003994309682642858487298707852536064015649518047482450224605256203094748037180985560966421332542599610508800301822369924706128754316439169402748690847989492161650581017231706124403528466451421557289871511640248452894140976277200093906768752196250874944029906597188880085125373807306534309974753677322090468433636592298912823790125434829954558825679717596708669580888537117774270747818562751589854211085606848654810272088176486490414241548070760971688080491988478087966318477363515569908837696363323695036233891332973721900078042186760170237634278266466635918962322854304860760502621734110708904002749594342326999592277041701863469138162007337563474559306742036933141348991484405369374801352243368684237037384267625190746462525256877681583738981234159106708289262128017022320960185627915477683751751750167382715890009332390884845013029172140811585305818312786534581434410298376709996174497498502097642753978849547830652653702659638399534586459619211582500449302531250132511833115899394763695137044426739884398457476990109901576532321388127540082035039671268088354218482501428610790587931303792871895473015181113292813819791552689014358516158553801933438945439689130013968815461931632674448586155510306962071277479426231176901184343910631681266495587865645276911564063435929912448698535989780132929878928819429199189461564990844748096284472838883070618954332635347240570817240057741583469349101545141281812800628507134568192964433382452797963893460466384607827289134669894674338744738920687031473585251320890465826459256401405737695395765708188888687959827134079299755837738629502134610565370803059934978112550968681711860662039684129202419899773436294325501828410098410437513814486668791432760471130410548881588163052537097857796803329694968147669065694202954696299203579918443301803850480902150113079752273450315965662405079370843601444066758208526106346520410852231934849215671183526484924270559244743275943289412673900550389383928933799242779576423039116341188668218734982010981875665414759008280496925723750451119059624534698384445089260261259624082168701859857635001420214178472512538689825756233024932939489004621649247505857357878236999171797697512573295603251761373199190895685789872517825908852721141319946499537767174190826635873090412746822699829058022817601352163451971153254144331478231675624308212567647094000368244428041288075802104955889285108204511219399542517637546611113904893736272997625968028901777274100994547375668131436635864839840193254851644130867694748928246109901279424527986924542943386921949769005632525108226396569410498775806902362084995577150499215056915644885890984254207093223227388372932481852070810704149342355595626752354586210213852967743010124052267437484045321914567682350070625308906029548797044693188191717318772804500158931479080051478076771039109255559156807161427465726585978373350969591878453435924880206692269110266609503746271193758223890616243290964511882717263653393291201206490909103510280773245943203830215380311780544307659587041043775884268500942279440582972508078989159731196790435146995168203245433988877662172311195881002330367755938850858458459421304866290151078889554433264026279134118190037872336262800675968154538841434906521623413556719288684357111106361677599433157221892458874472936560635587193725666348833286970358101042863180515658604302520550811276892888875230106650420907734781800081068958963086040470867412996048402815576832861712413932946820525741583909238837193623459489506022243950247017348611065684415928028482908323050885085503291044507312814463487487658018833488195194364811433328073534319774613045865119814725638536572131341390047007320384556221997516572827472256649797541386703363956824218348955077852124868485191268973362667723651660767757686149921988275819938392506445815300566224718098551712282518414823666755721569795042734462490173363803760265706573872791734353043458773383519578869626784142818142181198137147822176339331307089149583202898481820342570461740444451377242156521087537816422950563286601066039039780647583947140446730012436585312835227733100267575561043974391940131880212945639718071657018128994670025789807348724976843994310845357150053299076719246244070662399285027621358846511405095539096077379312341281059126827500177402857505564941207367511114985878284299333843312926689069047715184384584492103173978685706279190234855634155739391121716005990540269448795564299992826674171307033290759750720485527350617006830356830569472998886495465192376624935256649859214773080906418352745048881122345055895656935731725415870713164180669521757171812686356516246064787867727596766520167850499280520752251398075371573860819012794337584896464793398533634552314902122162057905224898986926300602926293648167253918960644385217077817271845043965724010391163136418393057133689872826133194567362451659004255270985113812080532735018130547088886249121058708572175069809963233355429069083578680477226329939834916340205564823532971987843765821435590023106929547419552064595425781907489896428353876982472941864586797113003132043343754755455630426520555684072199206123941703599491271998977708116112222971696907376754090499998283296505617567047821749980522241336946619079126517611763523844804007425170283585107231915751690476282785392289217220695821248190535360563400836593045454563688328701545045656459525520381499904313530225190211312804530092949160025226084419019725719118835973956714566526543022083184976709678452118199053856006904777822124278186681380292624789937626010501473123524963332639305288001671512810224983469003556619946514491103692463531118598394225978284626919274526795808968685204794286657950761173336010709739721939705257076174283437888511993925155849278903595632466641511241851632131051746593592536021147288926660344455798186117091418842309336870161960584452852639574865610244389324214342743956172427907237037335730076168061369534886025097582441769824219480192607507801436242812484331864651232699993232533628100226347192385101670658753371010606132061529044078371698989267108356469270901823762610513342658787826359282108285747428033118121458936557425748532129006360792941305777690609717650336752943287665655352220476454221638596945204910384958728580116248703094177607495231854658529144322381964432546843485533612147432648233838678945043458116609215422393965947660392741002008129213034776703874176968661398619573684130660176434099276177291621239119001324445108196063314633031218714811679982724376136924339448713321176270565680579010515940475349229371305618234965175883178401964925576256589555430494352771049983686628109451833030566674327899361833972115122568453329354894417797080159631701244418522334129797365832392381030653003361767814854717071226755153635725540047214051421689759939972789452135761809022203766435707223094671494346026716540459672322929602895386155224038229000399881657283357990521600518156388920701777387634084956617773509651612858358942441827947283930104051928344368820333876982974372797299151471375009321018644055797789008295566443766144727261228725478798452706225080190520599305919777218997752952181011274661504683237355555923898501808097985105831111477972338300670293408163870057452583716034547896991121239931010553840190003854500738800835889439438233556404003584833896177039178672515230286066735802681216146842387608997853847607719427537455625724602758500461886998527969950936578209577029127671076521753174536890615735983396840122858459000073888071136139083969198765967538897812779760013151657628226771705708206213576844445446140484238272688003058299826963434367668577041765793907670201792343927677097959801520697751154758751963948715980697765146219299466233449427039281696078947865711652924054460245300627348118096918514789801994353539390220815949664525450550879712948749577533626703211731480295125876369761529701096849082589341712007200294857422589394247689772101959443341383869656933382421227346762520291833631245643786922937907165514843281175052612266913075839540840781419989466354660938559182296555477744081043099306555586644853562131569598816041834006855706090336156636988379849695019891457108315181009433578819950035952730467442413376614553495263145946217313750344148733017393844739328622017887189899684523733783558804014769931626467450950948683210653445796990552731611743904326579699201386062757535270071304877784550236808577838032044227136184864080427239564936829760996049569623173132776779931114472184744608511497498662691867177286240303095176638334963484336168441075002918751379902525434667519814377022057645219957181622282792117355074072829344478024563022323075909437464454962980643847424193350221877418555851703770026820462112778673030439527625747448222047213424915873511015701855543872372276731722750849654210718294822610906356348590582389382911951051064880399422779233651298223444223713850919333811057449180419859271994802663788596136409693991287456236668334958846854199995249308371331574119992096670469493262960139630412833426784076295728022633637329717367360337654142304544015144133816482393278481919232713651735663577840100073991178940304139639213504718250531514374642215494542784490677263675789752966898313537582066896997618823216870200025590399977430990437984291651600936705034468007407122839998595992111621159746981897703366118781299178581769789692616914110849944434242508506625498707133829765480408462034021168716203240906298805231105138667834988415338295383100723908309873110374877807840850342939447126651635220362420547954759244436320336759420925809862475053074778173040769093464526417101797225544415938391057279453383983876161319477151114569777637175944034961644686599581547303715765728832068123640809163285725912996920022270570697606327351523450093392613372522528302001760942653716266136166028777396589046049774312694736496037262485735193992516433963958417224160422955086785373952285651399884980866682150938445934599342278584846977194029805222556965860750127147743458684369178853496857201183690195541548497304538158743442645445853587293343576423266300453276485597890266616205488676170863551875826444273653697833918274315721678819291708960230343762321039582165432075285153660885946111620777118782100293911211754599609505311970072028068292556332751709831942816262922819607040713345838653236674892566618319811789908273241608009688962633130417964591520639387970021792661179475557770431519468382320307669180570891297355034242526177137987295476158821986776531492550054086337261932543186521608161617328696137446992067353327472206576307245501834553967909449390063414207893957549524509363884857868598721623219405043857979754008196479618164501677098747727045472574903942991852322556059088191166750317868853915357191029116639267748874114898231986140390941293273671371273937624050086529489590322523714225934809741266852204041017061355153364757633568737151125222968690723661986760315840460581555777041240029342220549280296074084940869130874215653872925693873711652013200597078830730451032479123956527917662757484111422145844412104550913498263570038848715160417347468633835793900904444937895136282810053448759366884421723239199155172516802814334856686342344349666596487063340313037827867742079224841366654608847581370414234222575601327510189974287400834175355075974151408200099973401697876993741781915981963353289503867847518235949947925024586282901986981856343351541947667382244790616652706098169592932745687928309963236006521327420276188496454951907180347512164948077680199323147534477691956505079438073576770564960656249637829124207776396828441739056064401397041880076878155860845392609975036918569656007442040615520962345476494157663502828314822422016318155258378820231912852163915434048730339884493284307929736832229370414240721073850401743621207996028423499676666062178455706775174098910963230625213254479537452737101835078149211836385486867546012594298475834677138716367028470133132867372551067733224086653326845800503086366445930524076491856405731073755654459439737992837243377086922567166960893931031302240539121233695839654043935024242587433141492908210888573781154024709400441757485674076683857839993199291496973253967005768193132585894059663059955279526922148762042097338493131168676563350821502588341353874443423392210239406545937593860937720053132959573105398992032372002318920797518332842445262412856636945653726772852321125054526350525772524252897650305589936612986644246583939029928778212548569413929776380481113639626628380002625804642994317310879367553549776327077693784051491935934545600184718214215603970140948107565479455004464844442173428805625956731188124848727293724705791092818544912173450994408589481643089525439153735584664311554982218693538067569458176952888944718675973674480755497877447117809735422611946835489891764066900747340717718660956820888282292222607106508962458218957631430004570390651872849436243940594861927379179430183432802744720657780245805959002294244507313303877889330554865188646321955998167869573079318999759080342676861499539623630713066073680313777931836794886887547276121364857851941120577064264271095004379072828038045874507731708036923618231456002597081394206952992207062813723158125696468268366082224950201363267306779350834322235407361196371072933708503171527008250025469239430029622379719736796450123531920930497321807670741956947085433485451922431822722787254429204987596698714799511639447477189301615316836255526394376326632264291609247120154027716021815528500593841677473560613376694243137252478589651801668040559708347625082358187074703235309824327192060997242003640180743906758774380085874920548781747062164847877402033151993587700774417895128374322932215706516789331454305128492392337124702441699526832818915606495667509207570059779935167998041078650499573674023436055662791759413629410175527335086583864723886292059389381426379138112746071988403568575380730967601287362506662630504600792252904790850456072234664558120527828676342738891674254602719129397526332634183505974996641114261029970842439179307544870311599682163519296450339500510193658612843813369552339883053357536745382346675878618270708833128825856888616405555347607136901880077706662493452106807511215910094975849350597896249955125118515626746234363237085632787891603082823956734422074460691691695667035175417246165979723982548925498924653154520326766357781796874962551600705399822573006209707904584708067973058316248746063366547417954329706838009404576524147208533515158483398558404812790587902808240856248438941842174794598225585597889635361865367190724673059421837092757001424136667534800462374372622735604211860236147838054721494015987384808422531235148108811946834739919124319754222054434228189057662107890328213109339539952989489849703780612766639049018471784781821313804772246649654183229151946170906128313382730503044726027858714115934585883440941454511617954718825505522388116453788253620257854130443294788989309339858597755872515844866425649831522498889730556640165501877117439758313474822299767604707404223985692926032999510251169640478444647755796539609449387913135672602860443514952863824164680155540124195562828272310759381307758623861216398652745926251087545930058323000435024844709641592291832088303714427161411782328411724911097448740282164944491352803582251940649367196442289718930644936771747152247159420374284451286202686951663272529031557916053108692078272443310084809014528331520190312944885263860588362793602207377504140785803499022194700643481164569141974584951247798823225981809418324883486178136415592004930971608364196482311635171878608333351891299583253112444450955376361328718676863542178411157943666050853719210767243886841044428823634761531638415744167266152900488014037843784607766418659446899981280683219689749089272044238128170851393281358344189936445031666595267568218594266420715376008957319702943978137742626433129720115274807245913978643412498711842473471281929798131938531279100757263028881791804093080554571381015972806307681813790981409288177884257164231968913635328644345538961863501445690622766997986630775357108471975374033189460207252503036429654738060546897503798307914773642948455020688497825811212705271302839212809319813163675423389409390696206573133929376427412834446938269897519380133412788354163968201105328087431637171899725393882010382636049080001982012402932131887378459067521957460278091541008616574470629809411754002889789971564761745000582584824069359390379710183839945488912020435088891060165643046229369758664987612183927283808629853191895305717726758716874361671150518227050626139029972116793748962922360541132208642284948405930742853510531070278549233444338909334894308835670929705507354783776589829411764022842502506151230742076645136690175598705496307287387536013453427152909717505885184267961975743939934187061574727754420604245387500416588165826003747253730988736949065924942678333775011849112304808761302904643243329424346779719092235147419879916435546086681751701232260629999745509531822262365610139026727522671414766328877659524428491262592895708618582322338377768657174054909653534324822201826383206135817852765034554512267113561254089575553543770225998182553368562852668440305460671056300453349390552976913822786299291130820142640022581072412450198448872246792511976391183306195958535494875407042377219411352045292052810488756381603707368068659871250073269093546548542022836627527223223048015325184243047423273519212557690785939345431272139398382368944162127230093700291290914502835937359841973581473532443932026194674953184202727565854340499907009709021788692860245592642954801512814745867284944778992949311770829913653937139459279534934019654625200652485152846761156019859042460443913251251679660812811114121041027889916368152023914177545123484799865681661016112218113199393911231397833595221070333631630096757289417022452145012111936540039320772780210343886702796355666219869746927404017142236554996844262917286695092552229160798483848236691149202203940057567063351986962414035753010042205731012727346532411242951439805240450139459529812770564678020840914804477923908383707609150687689195555656035766542020274524192429328970320843774169497096416134591612763479889226196208136316116938005768703800946846779961668511011347693716297584406330202813419486064283911909943124323374681886510565935289394068953027214082992263239149345034319033073023015803856222794634544878567792663194436094873791204839524438050041098120637357860426934635411332761161407502195698177712372617993493749239499613878547717325121266562607384444294105066139656682276132446364727324678528240717998343031833834898192289916846530557244930388515472623117367047933473669289934661677041246357216418559426266257922089675474375790651480738890871155973362948869692411044761956097759422139610885060423040585859797926950334558170761481337847738414872336250339210793015441210396488029062782442427976827967417461867204658487247711124885771205328061658334677763779427604229540992984158365577252712753621044802840737379946865312489553155159070592843846583320530862350782082343028145831640358743811756431851833516809755310053977937207497628524934998193784661772163025837595958389771556504882050155432513639148937951515517293825731021553061936248741237055812775457665406722524945276429011007344821418162072549871415481516510481050580971634358835698239055604194543142393764446350580831343874155141031702984218728955384416724236564215815442159239790364673130193842356716060608830730684916194578585589530752196896195208498694112293096792128883440810834632478734633235617994550611776063679569870686893478404051704087311898296455849122698537574559938522494978550739213518604147561034878668456092163496253644839930624092985828892978921322737479956951372837180247484214557573314624665100453476312928787750754194703331876473644417797590906743382983832710431666697741290693897887970558605209934357766035143744400502859382103868710687216194398068901320533994478352247424804098234537219540167412029852388346271922460843057885869691056690511883159997622979067424203347106232863286144555922575681547768109215656022973057058748663954609487170223901510442047900273007757981206712812891643455298855346680381814886723228840111725254620163241194495334112031021942099705962987508358288264557081781270388925655154390556364453812367730282317923002035041007879843183742304607745209558223079117749951559969234657257310900310410602235495826646116668624092263764740304892761582569113026875766578670820703739886820730228614198507957526129344525088357305934344619449657551229950887932625856070014214848806399005988365209851219805746867182100603339993410392915094178684048249989229866011970954850681226846335042243083895219843051848871151437196501364924254991931949155600658083465317771599672739655518485710422636439610674610313964659465396132750255188907390531655710773502737956704146300232282979697494511709094540818048388390850976288765816866508321320357812905168087506458384121009025618987121025180709089158930481232687314140581287742919451727752354878118471676918141170436774087270276857127056606277905307950971808891133648883536377733346128101239907580181226140341401754529712598242164960972201316123077128156362455854153908149038220634701129965728670201586922842081361313655454216381204160368518480319574719543101381283779733623311684948360396963782451140649481698474576271999524411739721184789778198376940955155302372896265176292393617743790479434708921690095258298220562648242761001221905383815271315426700768417920332661566815364072694260140265041300477946330177910523257312295886406726225881889473894124094605919416534866387208298717845948945517298324263395715566675644314337277947600271797580796276244158356134182398428892222850596708322581760573108983556402676013279670376797168535222895480141012763351951265049754757433880688100159184993971439206501012849851175190162132951728523646158063086355200204823064165081090862782468984148896501801205405854694040806228703916046315210117605761072929051446124058889125420954472104461495635840753724825611337184485985922890549934759943667046682283912949959665367107267428477204895797479796116242302800957998676702966584636130327251520499327427388606636602538022600818316388658972014763389923254877213536697193293497367354955964486639289344337878323657476642754939906687986636831162052402877573491441605967807731336819649649907799926380340447492166937809891231578438125395717448326909412465142833256929794490566983778834715463443557679564710945865830739479819008093058761783305825645507852443400938209494650503692221662861503544765016382970683561156540981207496017576828475540375331108643340437300375200131486175786184213131144685550532151326439123160115101231689443657795251738018532461592249629722667947830967945337580744196837907247804421648145186172228294868273865793913256595382148929970638898083378686943807943951982444259886744045263530028032783639122699743835726005669370958625999198126327833909169041761001272168562749317189361218751767602854505726453492373524267883605862417181642251304236726795557254967911079201539072789256492729621324465509550264226384199252334650905424988373592115613211799235243239039797170899929493663480560880419716018963284522517716252663706326855973793969754954514505215628733123530385170599544980719902114133849921977778480841136799904751938486039710678330289980832224348666669268162957734612952555316803165446704930699733003284086132696192726626747125438855853820680110416772013012574030856266462556729061768036162659360958124839990858927851161538141569031912480246507497431402067541423999695778447159328293993015941175004733583195092050647692630922625677790661264992782112163072921713114677281596435569341053390672762728531966003661105263880671775292062948519828794996114000922216116204633007142435213272709409067673934716226682779766581548535355229907025397503522723605009864810978584179305881727959200238043898304014860766632124504864543397015723722948901902725545143092152388696606707695397420470848722252375689391732353232355022444144897013128396327027111466642798436784155031332206445882810329555905728911688722308317854240913622595510922141068460642590625155964468061159482624895059326435976276322179749351548069222103535828807769691731391845387802444935166601956846375736318169918804003133257492790659248991818791567021480538143431615517964428895403374670987394242645492819860359990454369772560418074270503177580217275394821362698258749784080115148318159621631413487964111161686741771601558187101364018572340386490428354816456236126157378339602368775286026629862639962623311913867670635968785147034788857431666990685989696564309872684342869816212996237080981235436658297784541886188770494319189503826828156392695464170083989818571823425245685738107020452226376595453224258515529702807726609760396175678060601218243336973212067029306803705288105713704217446728205361549682527570883091954972686827151499902260023915382553945882812187534812335200935622848964531280337606273666528781163087459313535179055052246954583694262456625552345044203783434726671249617122279330928724258894257779076507708846279154740286558822780767872283977561125019622761851905499804898322043206534895728289756654254260637279578328183727983128174128156823459445125979320752478257940025664303673135313437155022369088602576443417424667368177531252488238840169981521248855962201642454057232446474379045724443932412722194295003560439834954655642094639012172263946682211756975773036175359073455662175460687226206171270541438473017498878167339877568125082933471093861685914800658409674695119600578634602536563237526983002329926334719455065785473709792877495213355235431531781319290967161578397994523635097409090857417155994631350680507820129164328827266980499127447596642588062284279220262251369235386510814046553252859004301897268717771579332115082096321812449950157597219512829586719236490793729163069489590354067574995090287972817056712060252201457046709575607714137569239630070170261736791367278082350700445451436445852079309564581144603656969135537188401138113523332438757942430116977787999998824575696914169719216427579385558396378857201856074343601177791976568216809857999199037166719908568126433149070659949438145499370275400939098105837431162575198959719368090199915906490640484988475993982272052328021746835529215987165146075875721930922527758669483792825723966732470169025541712020907017543675352153793010448331091267952667714156869433962895775497813549607767980494817939713406680770082119159071629453504992074431759659106906139719975443173434041151128565952824400382904447460913184368875808498469607713553061508881631546349597206385773922823541144345260487694460025767753513851603569484318085725535859849007689664353864785350613945250522382048966319735852231888209857264167024998448487501811273233131018137225897876307249917317704885318787176886144122221232987366470399271627552677313884820929294022050046921666402696283724012591600463267062174528300292648384860278124187200644069840533187756189662283020015643984536840615423661667478182115202865028076778224479329614655773961205577695771534194462050343563949680494330216984755168716183633233358534768539655859556783649006830049903107943521638574778658525402542903236820804856809593119544813284669723222740649631008122952550237124895944898648444486473296038079245819123311814470219989473400320392390057439105077946578582482546234553428440873402837720176135617976069991172758748589481343696541560578853625091383133027704191461278362253785534866124124885377678879677963047263296800057110399084704499475300743381366297718318485512778522304976206771043762384914239763372119827598145229888806851505079562269948450200057278739294093981499185626659218414356413418792979420197336797852197471966066411832455774809664015348067380847624421526377622072635743300466672932852298988756327135290860093791507372283055031625919596991178117607911761792497268497143488169543127254515449882922270997431365841793002829103277108726211627158359794734128570894296504511736065172684748694341948097262117166201262812756580381849390287538363199921085946709990035589400964831707635897525693219548517019405059092349119161648447115274061117699067028871865452124328697814115985921507999789297458512594775989496699654465310440464243604795228759957055100124925071341517747151962915337639533309651848311579608610650038000569922750133363982083735846148725289194773227768049550702229770946670819324148432076971764137640328620500415844267773913185603962803694680329937682436327148728457122222198460110271690729685037010937551017510053673013822032370856843358903983231120083125703353753715984272463763836983551787173396393035783839795879871257734125740230951528123371727105267160594700524402858735191284359670343608228643090823066981297889508289716403788956603468254830581413982427285545747671057478343644342326402967666314968475006995518199390305287025972181411943211790829913269086859597203366242223214973321604816695753403661977791550955764060038468173439305455757099986206106231113144713906199509188549945763378842983824157955217567435731281958483812754597441148319090062595919639537442984045360577518925450326719747848916236220403248699520934905243278079524135442575281250050992146152280212908790740022701497359501147165136658996346317339732871221181832280304819346212379640012992193796509915616750255299194066324733316386762047312761189303872841716924517393409434193395403069709907937499636169776490489273755226090998752195898476608413827161110312377195522115560356437069644086124704456763588368552017034356067439303304902849511294979122204351824991858093706155205459102767227324232659150197181650889703324435552610964592072142673172839648397350318074351037997723537402140436007161106412134642264791412523635943767379182946101412674037894679543698958620747690047768002862496339272964788288305637001212739829835409141457128658431359251121421302311549847216630733724799078606539306950019296838660933471360624068977246887211008410157005859167789826454778006191745978588341710305073801168211547278385222047262253310199985959215613904422110635960812271174660935080969138517712490285750236041439329151686568131582531812458192932270741538841502443901280475699707784739478155633625155381611728749092936654474517218959718788605299642054106655826545819031492605423867444433625407803195385578278402727244279462233366412288910844094702883273008603883639279137075930347756648937167182289249873670892020007293688598073373504658871112399861351903705620377682744111006960641892796515207447278020363825723210170955997549830850503490783364646723538913936130580011321692481922220680589351059338583820028854993543856467273593946461517149360826932907657187617663039122795620409874219446635211511913754884883193009945072458244841498252518945983387070969563544490588306701406935541485216634830793590135534210508468933835152832385544095625220865915969941107462581475254898487250215055705657909882603514886245776601519597370317792160424763867249236840736763834434491343228548921218098848937354410570797738663068804016762105299277309040799558158785577137483065428595799033466406659194967188790708248350921359234616742430202773761451498995519117058603153948870412396334646977009684867851226498365542215231639650834557859369734155936082867518607782238739911152302353841166185020942201257371142966263557623814377614066425028538508789969162892651205879178519057131825098443942298247871592156792115092914310958383256368886544442799150208089791079150670278031140154759282135520941444021793388688835492829291132095859154560817083653706671242361864680128853100049228847718310041188671742830454329097987996894476199794328874155997846314909480180226841106997390408355322225596764666646485525820300114700126725964971906767219572702855611284584601874992823023914203876781204390317204374693104131591287376094402741966453094545819237200077530233794617614625919893513840308918597464669014084385719181946752078463674145686394439349570689053776045506579051554774324137062065009887412672276025540369544443107945780056855426893310431451560811012368206348705434324615444406720905570014565162023051026777389181298421413765538775196835049232212553348654144025057234567401544109914327915360000214456191281926221869109656919340874463947795015248631122648890620540854567632156399617847395510065515660396358458430281422727200607560746623966959021449807251943232163637828773667983728361114029943233418773273608869296900903185819214025295302367010171509192380717949780739069979990312085331286151078070033425541382555624148560728417102696173193964732980016801308703114755008056330061394365359034433847737078729048044650744330327133214970124665253005400636867909605544697116588749317935570787965091409091371453077809853010860055830529692577262217221917389507269931939447813308125468171092123370852902022485267216609663985262514293019265340575488102501581168015101223050029285168243757181389236550177418869912144251660182690064400806498903691956000891967436511923751522811107193361538362166590277017205616096807729983175466465251170153622944390727423914394451591061835130768364998486098338797361345923963740730661017548393174363170876258283797277802980485105062966660902868768600542468486573319140382847670091299191508806791908645714333574840313044632088497287866726224068087549129607204686269933179024261157043182575897162149184331662370815032614389758988152176456180503369683911986063764076437005713340828613577455766852357256961114122100401272361507552384976358689331143087711467955768137362947982708585485225234618112763386376189150699724431242490047861243170677619587895206962146013014781932771556701572406034601865423319525304359986664877546648517613305917407845423734441125655183502663168965871778720202691512423629978566422185499568508997114493801148359435697877769488157034676918450962793287177464020878974090867727063450522739119827078724525394613073310467356409731468399813192611121581952070100818300507110003303737280307349684908843643146203490944755111549413541300924479330817955484787776579589225502013431301188992235030315347760513049829336386693174192090020316043334569439250008184418755103168636092592035243998859522839165778332967564768373905649778305463304032315683951956818196158210511164707374860001312646301392215807334757242075275382940891550803751595047648391282185031029940668068468922718609209566766500610136569752867501484083133457184053552892677196192845075883205381324757600421393191094977480381690922319695761853239426028041851695800283193814909945818427503430847341887905543534339857283637707437800824370404388080115801647276814255444667420504109203236530389935223857968389161566644734669862080759115931471669626383489289189504892099401888763470781935621896350217890942875607422991944400772362692618370176774108530707904438750381469632494672507253536174526458726053231570662141432009429341384852065753478258889033783603676856947008381912544024399755895290661974178897586537470823483757954956771433714918864648098127484803297120571916856437811868570876777152183455160317067352644653296530857730905208363938093685962252827243209557489509877042787870655292085025529302284687785232919770039129851719592185181901765143714269341488561515942360306088821662314917270947919712860449875662391950537397612970618319066205113982907109358217803362836809467930577247763151624078446503486258545988867054603564997668696389391389721278376000675931080922542875172385607052504612136907103246717956389577632135359270545145924294837918675167230972251131412301445398204084003132307785308746123346094614392017675519836709241368138849498903032001618339325018230009811148403718347943738548100588057958603334332667192021105414289820113332773645185481147316536486472521407696631313579256006830033822433231525799764300036910994730393121647337481092601750309416569691801089878631508572860958246967945381838467692840405529283385334937630734262746562316368156453435656495979789903473414271043819622355779231835327150618048028782446730509446981877214926191919376783270762294231045007523997531337887998268138826604462814205787471932366778710371588838302664988544792317389366349661755943652802960530916884418730696659605521750226798825343261595198983311553840761859621402218459401346963789093654201308369871548300288437741272064016228446447685635158331639150946533600319370329692915739756009940372150849510821483269844835288450095486376917390448320875468146789866527707390200781798482423415793742596970041461662913277694202127457332365255834488818157280276900738515475573164323246861094469399334348948346679390869945429096830967002149536217173411743744206429525608670484766420792512092533997189436452332969879151049293439536035826408879417561580906152994685276008825406388155388075770173952630785905360654730073215328529593737095067517365524568564947637590950399290452599672338315651196508785192520139969273833511962588448056476783000953050947923181100118478910249239171837507405988673772104399046453107625792749307490991596194839246842267283249100530140718685763744120692138765681573434865984004690185523815742565064570647201468600594891191399713657902616760534557821894820648623019172001040485903762980336837559188386563226903515250211930950618865384464959224677614858867165515798347655763144000577682940613696968712996680837635844467373645802152033886846274839747652584229276919083424231244166914788712915125157205550979430391121725523611191886215886677463945103944462112713604987370455651758851607266005511674075323986261217754263221674311960780686901846291153360195979993883806533407803390752097155957811455712295820918671761919761785939225726840871875476984389926298774889265174338821519824729426868995025738100371955147672037750032228332735206001046158905585140312709661612638341499042914193112529020328395615777753214520798100680239762623462745012846533708917633333770298103518226969115147928292137920233003288010875502605511120754513977863812173396593932080047451643341593938932671309762298722563595345684270710359150804868392780094510736074551192776215496924024957330527963210753873868412489939034623402876894481167491815891055418397217608767057485820744562223395738038116159126425721735221247698205163966708933746460377814944043751629062149236039509838766485382847373481502312098685789850019616432200732076036966638912135191391019488611291325388471499949207781851778122006255532711924120552194117727842597322568151928203179836091047957030451430779235130478381953086548501878452004002621679166757223762233576635097281621721483899755900207095105620897112738518501951703798583670727515983179789226891140886271818247877808303740986106404669916612595466638505954235910643627902638452915422393343800420264229949680234417864211131995855290728787842688057603211155233266012837795057458348067716956991945313308599386688091294743414495382387779465811883174385085860350076174499875852026680303518602253910979025588156418261155378545399638082240100594361368885507561344701900970766353637076180083285093257409592061666067604736977727834141326250982219047712736240069168937361491789493463247317611267135189924245790543235494105508235969222539604185797917004901851666596055657523193131039304691822440253510594018325910971786219686995238525102971577135422509136435817384182848190685445261876973480726172302177974374272466756876234238520243952508420055691460350193929947048839846810431599800024308489487325087954874212157718870745489823354829362835979167949917108402745135935571997879693444471374699574076863691420005557887785439939227210412453660185124815972865445841082681867642902089830100997837008195013756118216271541585747865885153451795754968757474963269489005459481985959685565163174930014889904204073529823549408217719731661191682092402019487850314676964178733278538560214149449477035085829168656231035346310440253213473716709601930841044490988703726037442254468337587184671350938878012930715542997703715253098432431563756213439992128787743269903406562178086930848524871514120926940840596004595110857108635598917084905749564357483797749932467204236591591524629399436807745045137718791297704207466752632654740237938947732702527955776875587964462534529771006350388717736032183619476643441742774273245333576566254989454925257463743934409693049109274461535791095067061249696622593167858078480829025497685118995702729037977609041184311660893628941347569758363698934198815489606956516069064884885031833479094619570626144062132163677315329639120202548504638937774818002530809612969469339366889735390092535386605144085036777737032069637382101388434699079620265583018064022141654681684524632825639488731905074075130250811288207608148905559241420833749876520305370902442344451757445907536011738761408287697902545469625793417731209997488018590847630906302993190987780289398253668221732110035978136193976439940973339543696963543463533311822346147014845965207070686976401194997128410470075014839425321798778466492349040906363035301828230565017650329700357804638963823054271198299230284657051337108957998777795005557104987641499774727752505526078756198027353351853455196152448186578865085443745427125777444928612517207663129567304823416180244370999525802244047922098262266046076723734108641743648953346108077509792594873640004361354808094953470161358953847784032248732991832561829063743010064346050424663537195843886342416982695330906685746309461349020553930907666264602648554205811006133831987293904804460206196795690285103764682130066541643179819441314604084705013059902336009300968912472594088556190264388443762817152579725280426199567269766822695234374051582274164653181799900802588106183314073511912445706739993076430852559589906797822659011421521211373500919499630947925840003749740659690871887132591129192268459602004361921475211783970626432210500304915928400198064720574803651522736520529131328523954327321234992475410388041575537412639085486544049629294989571483587256545117823178880297717692437197771665960725489359194985105190317829279316387822433583348131973505945120937224087419684982388984838754548497945188363364478969181298753234662456112864647533752507643891837488257106361658090365866947014598105437342321047356257327474842849086304511342135606806017365418074458379674138329701858638688748695532098395729918204377760751817843182134631094061190356792986615912704817772725996645955935794051363496870244866906085017947601722394563834057099068196217904592593609387747277182782068341916011561734063332165887916996158460605313815116819262436182864419777531982891196174282307923417417279516758068248918128781823241249975283843897924353886093987911079415078336644752396514388485860262833826327964511539762265057890862314135954565024283137041463455858933518892467200068132217470659861168171388544656728618556051038013509685799212782088257062619426313673557627034666215240280142120732246993485207813478441450912801992699162525252971877289004728056024679262279043438101891194823399939595586524193570420336338552389756937828586829928483373523489257054433593994456261232626971122019179803222001271601201879593664161276479800036193949475688635369433505788254486560562111358616833433422374201667200508868974124865240877070085584343538839353369370730829175435932229848097369726877582877606715373063570234660761538950548092284821746397394008978229885701766795915628492351538002693884550825126266922619484418554833621928646854540585554202177561073773992361424461605871047975119073779271892341412602953319955119613602210419276312819584482995692940539214028984722510725344622915841713570665327027465939316528930596981558208499509026768679495922554723717529005668749410744170063335550599683411659041239240126681559091151309041758131700400623390930997645392524061425392219970681434956142014023243751103138375168430246543290617144088672356674684581257662724491782516845607904552754024959247183335075908850753036102691130560843142296340687659903936481238247893832345995169416169657071243889652734208048799630539287438406653731498162264811076881497811268369377349015204915977777156557485412514772410480683706838157135295077780092425998836723786428198199074965328465529794735317545658722025798664271467425122696538810062812484711803887095666101887544983878306187906011172019810820451050320538584647684317522263511251324475785559898126751816690029723141320517282019576407008362634234536502047498370315136885958853136493340752229330792913105981701604642156561023046191872630942069505381844624001538194779234692518995260009819260386081198076658831375273660589255370032143425193940197628579484510796199484324957394391354401755438691370690941504049483462352853657236119948395515735999116867924452230216555329468241741199328699498503040900626062214821932936069447013543065338054013242987815437078854561976632850401847575813623982765430182896200514906595109047714858216693499171914673334596433040395840442867421046109928467827767123806650616340867097498489371899093857358373715817114961274911549732624239248814522827872961685104119428720869420600412466081877066961729228928331986209832229446571172651528214020219906502568420221586236152009751661580749405573193471755850027674534306699766685271824831374136524916890880909508319990354201125473344288452469558631573259154978857962144589810197763470094811509393220928410170898577747778154847868213362126658036720762529914021241564116759560637497480973903035826659377068630402821170526107249773809748333124566360885694275099328236427400441675980088029052011281987854067180612101500746677059996234868432443861541556899383276208894931173249752435341382002211967040142190204915042447271518517358044981273918529737314036247145956133772256904590477858316637917218627890098835879532939736275870709432650467984211921795873841637428239032310778501168922858609827644041718283062519829616993035135211259220340552433027957040534428617565440324883103154363533770665134448180979278544350187251262135905620123353223626471712964415206522822911981765089116535648403671910261411241286766451977088079154873739529282590299605205789557727304644402986002623604207142200858646804521172370662839158983559075220864781677510606600959595265051712198383840027375481427349042551684512231733205058398006822745258962439990484488394890592928367978407503271637525232689530123949509169821171606792466424042799609929756251106185574667635974954377705365327728911324196063559898719397042535203465091556299735752883476858375801039133224243380294811683412735889076011848920379136457290026737696131892368235147513593327915820187742159038621783120613215646561207054368287754753359001944932194146723938953312669388650227770966027908181440415297883896002074300728413875279008244583045593402436707226347141971537503983143094507260307236182355173625359756276636157420401578899929466805868829591895175580651772245324456738985942417997791320795373052736662037477009079456016141028706222763538816394856806012608671324415601332029263364580428915448906182840419002560812385134413512090304913042777274761639275375606666165866931096794206619693063825305668181096705741181709401061068284019164124224860653128474743723222532126923407578089147431313779257072065638866899646093594424823188457714673274918265733117499463968871874422752720337036929019351002995965243096898849840123902431949475447151473090672115545814080751239692786988287488516040086439990449249974747562875506655824098957872346813323476585082635846714609136568727431487095604577219581359293345193184972029156833203166070394909820475844045106712755678624420098314384437332872127578432881879691384142170841659510809476034336700848081428364481548612463250416109479936137071021223715596461428023782519776073602429501412286758692044122230787601384092495603166731736045915807122085399687785871752984048844904980624332422226994666701134545730375093956901072971398680952414132188367492016523017324404728845714933279819923803110687560632679004915110353545070925825598151626245604295224815338713473711286522253311935334654217401201489922985720825276907190421825598605602007182602739007838883608987147799245082200723954682900451433407698805425245645167373828064642348741233468220870073280696629756413131195456043366251630382486531398197310320443901195243793985574952643586413415937658277665435173082472510805336373109151075869654767058325853754440420211441991031777484003998311468538007943656377678152459930791086690907929292338018367131950736101572197926159860174010642419204476871129925525389005922961239904855458377100723486680429483639549912150495040172905947278818938568389495009304045864545033775400701160984123700297329588116597026916185089819552603663241224373887190893972067052756472845061026949086946496451213038568465296844400771733514717450550646347566855029802795012964320022902639852557018857446311725511937036895138873544108435240389119624171057632558503470578065400369227534823392283930234675439644030983912943368168788597145164504999566364363958864597600878689283083884185888869354254151680546745336437009144240763456021123365150041854717146953266233407269792187562712955586477933823628919484950288312896235711140377919609719481457037920794116064953069600425971232219275167013824683000339704659805017296255286982287883221457496727999585085124603375331119581657211972993992093367267544988497034458593695491957212520075517755613180477349566821309928585216405991157000943498939899215835183966374428788761220532380563225018700386481082110308753356486883590407870182858114822406203783431083943365642867824914469100176427850481355886471153484861208190817463369440683833753392092117205967052539783309885065700087453200817517811727355900967220928655940210187165129176405095116560218733051465243327282184481408629681050587391459545326857813590923118117858409041138686107367534081151717309126079594965664518778944366203805278165341907480129762058535110934300026500309615624495578848524135058352954281041566181404402626349048130693068260993797601964391058376309358192338133605253801837971973413864481134267830934355270771276903587759110558560224728845487015979004636112275119832144359981342953235989739621058971385913082924620976805981956634177444455281262744814820006759344054304523729697086207056182304860601753125816176396894602392911033073027806972209142301734900952328854363199717083717159650403876635951955743557585045817789423473804713045031283019279662485555183141618795922171857937621119620157441306438325923535287660237881991656554720694397385705780776748589427569865294920279992576488943973781774612117986102633641230372662569681335216295123824244084636093578151304719614909555288144786480531260745024908893586453262306612913087044543142995685676537180738688816023552360330735238017827164679715391062590325879795457205913864021458429354979757741264300287028825180886220017130095646205155063481241350156479982492053680287463422753518352582975863441628281171607745038620209106281952428716029736541881208173190138777197564240450923448543963766100732699025707157701098275066084630666303352000753944838319800992103618016700865295358121504944753884535706506023055650308349568130385754868742361937998623497760258168748830441247240568087264463412617775896791199055264675183729484981513022531833675002906919420800637817331361331031285809522306894221361136552667905576396714476393753704367159838443909518639720437534955403482154340026026479634515226736194050299567171599390719055028584453261378757197402157442152604018928379627479449202297325052027089134521522640365649196116868722285349717793270505432577904647986829637908287645929888979707014513638926942651923407611820701068008636806266554792521231995921981341610316342058948396430984865515876186272917707297410956229949514469983139095861150513741597197702868921083974100670936086270472480269913907236296022698750177786504354156409558428887520355020824809030827462712004926969686469144076095219134145690061176420668857643596650694388930211518075306584037357808299121519014157459519449182394348822721334050992429072188846629580086913276261350736221248266200735251674557946752963542173349744335106584990209823419945835775577194389040031794359425442557669043630627977649008732465040117967920015501266849033172125284103341023885496475595909299217724073948376741638289651241983543475225540384980188620454528698404349093381825502897264687183709966048621732089356803219770290590660461293082718368607436512450545416061701355422629366364623645183515626540061954723180968283716691563970104119431443592375779388660887156834547248404525106880248958407720556180444348502204438854697316730035801556600864221314998012008262035765341636063813531251498263606437209615499089777298400127764549509470550376497994376424304415733577507877556809681570490857003481625401696337318187299995573400494761711831484621206338940662535008119739727403575660741076602972466961213594858817272091694179373649779530222607697970262402574138736958543780756357299866763429207652112247678702161350387723295271652052481479839172923394692660505207340184619490945373352495920340632650679313375743551020401517590955334346816102388652652400634101868566423225728402166267326408906784851271826835280465897318691034959223999811078792834947116080785054015649113004215871137769931920556520885940121495525212115271015945932995677428751749277379004380443400939015179459390951944876795269915172200863474985190948304236509328054251466315977550932675518083957013425812731280174996681662046532212852316815082962651784522240646548460168631396829961626936627519647152905956463764816489245931679854428808847874213367434987672314123255173659864250321109667390986150227102381615965443053469978484365403901970337262496499987501181191188428569699272599604461520718799008189566264116498896486109234846634278664553410037591704058525185721143927783767062744490001562129534211158451576191691596571850166065528255470231249525935945935705342360664617170178689377457910939052406098058730281410865917185223451930195066391892244941297008537192738634828766941155941889785980386826612921294071770757630613491568321000569912558599015799782621923017769998129355714610472809681208588402040623778358652883194418936318270362908835534620174619247657274505056998048829610404971357224749440114260029838422303135866939494812459616124747865096446769480976069910654895548928588028487161309927273436658241101328394629319152214729227602125082987148054860257162600616394560796474877563548119133175817680318795957152106831064765177789319705876916413870000466937954100215511419600094714160615698866873661195344626542551717442308163173862796820867052594246255688783576684256150045288559100609578576057675861997748927067319480771968457676370827065555726251921574532704418188334520375017022297944370580606714642086509174109353107617730897184597916479610751132978829754296806448712697990165213763159770576394455300806453297681005214105844864554205953691169825637663840717685252821398964022249797858689713699013593172807044950709766623255413950377065094414586044229935920193842230270527685370744800804397868581526060367822901921825793664298722765646541671088002233039540425927925642634038423129136192220459754044627259212796767167266174095276143161544671860878558669529816133422079796033621851790713218864217440792630003197259597220132530761849877359473111673599479388414976015952275897686339832352971053232859814756185422597914536138448273800053794200755940844715269868925760013026891999125431640923279555946638440816495938581210358056243159603653553915430251666605505728790583813448902672261581368374400437145654889062625634850325761315184364857054751757965927342267484950874555606977572211785002731449587080779691810206038840330551269455116406653231294119340048050758139237449186491270835719750727893881044494199629077180112248673176443101039311396525993953367658565322500156307202508172161763951393900601814633102017265435169276479179761534352255471104263351381971084994300836705087069833735507232547152303709146814756533257328741501391642830246363979297199695822629313936741154728510760439904742817927693067671235732977953752424163841714606447998943570258989684449639465258809659287326184785248544980026069987307255431311317611685925956740795516123425670488738881956171564611052370415643321693894442050385939263568173340521055257507200676900903096611735037335432500587218922390115253359254701163289636224893112209609421627638035820874499192962692046278536090016776692608562319476826134501267179348755396476819468393473127964526450221270329626612040677063998740716086587956608125951607240716623948437086823192985398815896573647548239249638323227299418005503751494947729456316236316331580313309413960583785215991860685778580310932291437725522038155127690512795479944846853416273171156345291118256682698355844793792777685131323131484225501792148420054069850714351732444256586520378300480280132262737708412701791751997938260316763901677323035543182647029048412172490882627193682034714833865250890851391608878006272863776547193200067404775816859969454352769471758961360995438425004445832837936048597672336416101867504438433761887064151619069588549021544441565912185980199720916656554293029439566453980352264281537855425094636057001579429683588785949781514637594341181867470119408764897022813492791839915419905106938011926391530478550273017101439205880030051902589572253877869336177462809551655492654408724932491628046199110252776218357301045141784770047812475663132083210940193482135196638862645369584617075837780568962071895276712159004691271600465434605622959586361002889754152394840507571068834608643071333792617745352416218338268466364737172431802859223374151358961892753203541939293288548450345268494952311849421651052762472925939484433463746730344546688542240347635342311227934649748168702581110630042287053084172738645079022862510085682309949272233088813061127184066160383909047516192370624957213789806487650035049071112713780899196815295339567979380096846309934020303498425430085257151770690292359962208250082633771412414229502944505013228618156411514356523889328747796748266253400226714018758661091318757788459054937828185818543730936405112448728957609584308243209378653367151494214895450271755890455138459281655905328639682084904437534145921796829913005762744897333930920651386293122605674050716744025729152500797091655767945440416053441833284728653191685043497306229692883539689545606030666404494075223673068478500885551358097548412874601437691428931783186348358329298647313333098774243176014847006175264478537155194703693929438898523507534298537252972521559366467060502717709687253031960527309156425509071434189035604318851647363305552559488758600106935253244671276196189273646904199974021795018570623670928063867538066437282498299124668181087902613519672425590255413379685596783631951527599822098535634080032663984277326667481059301114688847305767791011329884751347125436380753461373075323445028159624966661853631938727888286194262539360958120894500301845101927858408894871422514210694423000137044793035728328680547491205962621935379066236994594131645120963113756299363109052538149890427062610433643651364624223189474868970615761913060118801909459526472443873631279717430860463960649933524102177205988481533464094220224985816059046874939942374780748582051339496081199349504495523265031426759732348570683989044553228978520538016319645762079786784416716074237141818686071930802759627648185736477925897135342323394182640443173868454797116964878528376139848574391553138687289048816581689453810441119133240316062418804445200138935530101586341313455392763253505056640367506933151162725467356796274395146524213431196484805408095640444251911238216648694234352152795130877856138430443275397669017800551605302235608238096969679526052412935799108842302942113457355506195344060470835021575557237716806776530702181137772963300244918939541965731351490779376575275946803866326213601263032208877519591189180139424143801484451842277073854955736396180245645361615375632777656945798474735175057235600285362430307083024786964802346664868462689412946720857179266788216944898772380334899658859603408206456317565981385849957692253082211254022070892950752828929201154452963000298760263512079460664634182078289471917949087395016166579034140819407853323836081174514922722957850375486702299072488090106470160698201282152823966930458223881792088834062620278073385979386205023663504659372276139512629939339956557004970855987026834149161602097617901756939200602494114676070702744609702026350563957952679137913057174089594367612191143240098871511575823313284199046252028325504098965132372545264576360480606618667998018282657394837885881778979181074287239864906036653802885785236221476014968817734250934806758633097154522105488818019544729430286283585301249272952368432629984870019821146892571154382425537518227991326002036336247676382567191542967056707005834342580371711741632000021433229414705751819476303508394749430458657667189110275094795377058746259249839137874789267688710699727415655405933922444149032432157114011615030011804301199966454911243853776662223387449738734741515039529879799252609283723462878686828157853938455390710329097713052491569373597663087738581254526605098954153901585445934984333770844473089311868142566503331787635296422892287163008324782281597342771213557847220575736626697181599440468397460184724988547216255293593340974712133295466777581402271713301100272222416023542057524422506767661560240697732686442698135601162185369893041586820569626403894048228402913466246518612074959890836197967319213626662465175313334921423366741222940593008541053424218670084775847697550394094842879039827708635889979853521374530548035279926290020505777112007538571152135387651381418005523508080224772299943476021896651152759123551216956248663169594960621901409419839343869093847982382412704497837142272487473832108389921280684577373493400840692380591846686404349498018831772739401178558486276140811337504688408400948361196956462674980208181856132083987957594833987269051528258835751194023294901444930737777376668917407182736589819723225424695851716902189014236165929481231459193222647678960414079034383108202784186954790233910158813125341575874735065196482792706723576269949708551833797221813974558631272816915862686104034041726884463449639434165429845278647677675395787559976792060831500514399760748778558498847643584078811347038844600054013157892382021419379965888901507715108954807919623855254868921592873525368024328952198166959970599887778256543861387106060217823707906460249855720233576405681694397238878240833702621767082932611662454601234223324076259829088289353708330662025931327412579525217781797109130968119901980256594184589168886922523788845370529878830859665314991743130944134362781134154494005034468437673797909481254909340870521076741145751227660408280357110817235463799090654199715885812904548192546210055495829457037424679662851851987223845785116412703788753266177134517962974443673554106689188100272225217295873371153766428065120685612268458196456123207539642938919286432648064970257100742302621082781298599190318839657259250613624030653940329751475015347905510580914216623302314903482101654216247699318695143431090938339431652827050457349611746219038214138881757054709597414003766488017329264575627127633410369384360120497376343409361955286685028086909891221166694173619420740269298806669236663392553420084032283911379143113409167142048009456672392040940519565846382512284793864863936624002096705352005469160131683462661969279456578567146506261536414713213253142007605331267274269305821094050877010795940899661328553640592039059966792467018629835649611190588718820424285595022726408839535264844415152147331757006298590552735360220893116468587982227095845287189000070614904795914485037064572826702731113540830920677880307987372483454576787827107999541730327902705034391357667835229321639117214678569541046987198051463066278651112241271247585027526115979998952747559724014516617441453157908860210211074253406947648339082018876777736623843843448642057361596487511917281390825970487275984577832035959307935305183189874425430598254847290802995386836489329358839014393027935029965771775277907111112616250673043354418029560639085357953796891825431002918017098508963420409997735454586848225084367543354498219208980459683151141890792568548480174520236644125675413667001158079352412092968712725242149928831256769450142449977925607648178530452983422773897378009818168566643924782453003268466795599408236613205949457532581413994120063010228622873717373366047096004102171923189982133638532386531250687587665586342578220167719040744053693555075303041246548779927315000340321872419721229577773917311150366439505781789810203839375883797039287235258521611666485071107654660795472833420501611117018320445891553447776304824612524926606887295070435059704875288456118891067589136786270175957808514433170516958581048920667029096101782436490646033135095290634882858257978062929503845412903823758196752411110156375413142348659466111659591047252883708088719227388539754060706289334875679617472212543011197851002402556713436591357950949313638000316640194647673847196360758440344685499843159395357230825472358825240506815410782785957301244627814398261292731852837161150060111839704970029142906554002929213314011918202605057044250343112754018735979926728902590572938743072131755361404175421535218857312404141164821700610729273537976819403336197739472318549313333872278936887877562875473776574702810661222282953915690845123107979171556447722148483811317107069774760661646045041872719209461297609824407494058210121342743826318910549604239459382562255404648787186258963670391412780904256721941600360685463813793178604353806355996211159250975805088053842913258725796031456259112650696320261450501509998407049714750277486834297649453554844623379200234147346929555168299609230560068590988787014581393010052500735393530184749547501634046680488985285801050053827163891529465186948735490789810343039431290491012346350573293683816749489511039861015162947246938282788844707921559963638749846427822376560015477839948184069367155822122415133869072650177874046620501936180195406368010128325272215273317054424098878455486014781918430871748857522536857322098300654430696677803928010224819246752162686039663798090499106353143252048345134380109522103504823110257265464585084390008718744922810460388924774276072607339723383763899815351366168109573222470904708122528333792053352096562019476266398783525378079442500072823649638234422319011776222461434219278118599031782106589252644764123774296063392571808737577105502913250854487473038065840457575101228747090046159111067055740824291516088417252396428505464871764751872135888580183800036950468865962138446581318209521032109830432572645429710601757855510479146788724060731628567019411906566177507118297866628666210963240361422123770329055218106884654712479833348351330284906145643638002803574737377568123965183221815516944526054122147600302089903889860132531461922283738938907536427084491362236011377281123728036049815069715434805662330128591071024524319557344177535504224878128238502381251127136833377546791974053626975238127353504465403394436060621851962750905955875874986268777332969371042216655671686825792404851174288470910535193284858865217613508464040232719709446912457001813257206577016760234870492803194279543751061061276321068112340408384323326152812273889640210060647527170881151228955015675063063991409187029861599816842198713347939647988385217185888422870287765862758274953516647600569230719434909402415549891990650398811609491797968964416163470631811224985440359082858713976752278639482842086124408603843773455095790814293204282943141387364522855220795247553540769511466451534351770139844223899663432846889964624753822301477826702701446543393927727068758668216704612535112573597214299811141319885314641806583159829333445841638898910065375555718722849941150698264370619253417694355074852492645288703107643503288472417824069429324377558321460198816012922819329721239929225859103226462069905335817333489940418654806114454834598006512845235175279297199925183468050836417448286715466092079746571252503226865115568148481589679759087194270048588687726134017021401757820258314116006629003789075725660044815131530056151334794554191102844726425102856965324359067167926344619383541501112562695808322172555736204550443880076937687367999290216268106994644949573074975179396533833110333817065163847330957522759916701140899055022645978686074954719691640142444727121525965742935992948148696227977353494802109734723738429260046404615311815544470410169484489202316729768136641725330229180420815506864511949111074140111403984067735441895468945306622187702540465983797775279333951959611433331881734877375438604789465115112810210278602769318114986848448813374084202172255833308445014062001456373604908969846457860255120924842738718921799482473447635129095306838399123945693125631609538808351989026439674884652277702117400223566958866907104698850359561935720372979212682857418308174942061438034779136380787631632341214721585827118742136261993871254737032876036883908911788426976659042351746848999143572703366587031781610763539142866316434395504342088590714594702908694414421676132345119824340643135538255573726062128801944763624062415505475126500600399657033156085906209829570660725344339123433251257456407611809660559351572230635770036458305724819771033409380594708421686229520006167476282630815333410109419119835013492175151851967368433278582231086480996098453263413240410270156587045532324772221317545966381163308827062848366885200401350745212043196254368894595658976846872538002388398340430006517547837661807011595515082536725780047691056788989086821899159653522088341340637092552949079934859232202866007597155718860483947721766012787550610082615146798860552959220529463362373298710131207108449637839674367165138118819947954875171071992549007855645636835258955008183546077326942469425201780152832815284951072523894731432942064615339839159812754560468691513147108012496659993478994006343647554563214304939646593471559214188105363413366789486735571276387783550029010739853720214278116076872054716017572540138084567230014282200293302766832742138476350447360999160226621193365243870239195427997074589959696014037164458642395641853016212324874338262161468667459146010247959878251009740472010847729830303348657510189053244656484893676365419899788254551418763404629560401001411542110536518612457984347014695899604594419053907983752467561780496643637137048564627003099485418449166228227028261777896091164873517703743005487830266212117702705775951281016883508186253811514998463523694446362059166404208080535243132601944626818502735638492734201853330909279076521621062759649119554591449639227495482627020338016037393851183116147940186447607141534663922149901259931054357670379065031976221410190607417347437340516215845986147335578477803669117866258737198825225165149975592285164536846242114823053160640590443806873684750252011027615978193298514626646766863837939017961883627608769361982691774082558015095026471479029434376031730928420201607411454954728882278686755772180184702885606454186194337899626484676018726857533959317375819046323644860409453659822787850768651999474266281726613507623167312652086925803006405697479228910044676312549184526520916807072435325216456751179926205413984129071423593176940610559967899039718416522482323792423113029254343528708954184052324349032015112184323673002595666803122111711635077092558491390975450532469414314861629021069345190220911331428206301605314501965358869681777850436115177887965870834781719004262155087996305941887189606417873824905066201697183335812950770732810949291345766998265314069626756588487474958827570997333622528783251862042320530834959276796731922514241580531409879955741843665099017662876866621899892257988732466922280337493555153113858784465005528884687808096141471144722075919823866632326635333104563958196831844617132772132207758187046052153189919238146644527109101935026251652882299017911658355050041352113737280014755038554239148164421906247970126434414843042637701004008989254968351502855304398658634940380746554134289651645798193834356257661084913397359434493244044615895913386846660371419453572288367666246942344474489334622926526704097205866907614520031424745284889364749910744036551960779185763920010463535404054856000570870236470483161505099453124554850435569169786240256564497378781039469717789046545583309547453278582822063789353551752352699114999691361863025265417150781312207190519870604177508192803798242942027159676935133436640782189253779903908094186575183337598953085540358253543832732643950034784145156006793565885553625919301160551947728044057536019967754421408729670262821205996600513572494089103286262000169437016608186774906356229871152162266073647207783825400052646980300188759835973949905111633477817612375171290333961889566609667192843955963758859505959196273351620082976536669691604449392066552369672965120999558789706787805566251832744898312818739512070802754480968249732788887679843012917089365035771480143355587362402735618542627778717616771071174333594700491730181814770065394264780062999944765207839426991221640218103272712014584382466235895863861157953886801121087749709094946705734818989271857284359360978714372761977154644073798186135921363747750835173195030706785031547572619625060466916912769785761995291831924424764131534183171358403346105361378429956115299908184486659889349071318482542308103325234116531567479880944277606246908812136457796056118641914856997354232831732858248356529572801084824153890454920856805733700209779946891927592626414434782634371343575424545509651641261251823650765635713649973169005697347430526511222265563491745882370601810115649447886844665554099441381859369932384367149142842525477263998011972056166149665041222817141096894660443531634230181766824240482273424417071878882123700702881492555749784395418216674864235206731799013915741336193455787999390326924266498098490458059088168728451077832100955812229398015044242531946031065994340304053192466063706128887233145313434568294587909087706629359469922954102890414912501547949037625813709820330026236958846654040583607023743397632915414714114362500535259973160585857228919864205165307228175582157274962958457650213159125720009676365477297343677930321694786775427368872384150216715073824676588192125491547196030958052227335575267660926047181924824567272392442558877329107697214245360100810419048478537841985524613595543602300681892882531299638994921981632135496733586032258225175957937974551769078398280614717952396915107239586799869464183745881087640898147975878343644519707154043851844513043456132994739424018061743567902598077480653707979147009269734210544702798620752310643942081867835132459196365442747112050284432100532104433228495754796382300069208660345895637230242677463910816534762900306996475393281522524439760974412892889908158984899386081928456018178930501532719211571191725763144930447033778890744954384387238085414787953445422933329987059163330922307155058005008057152261273145051077212442691025332749717495788463395129231772316114339615517561692680735616730355362848088166093189172002051913471426520553730956269562101311510605536632576847291327059882925608195918819979958492521442258643653829176915052350581363340029463497314380119835702700098357307870312853441524039041957997780656010445580912277823702093406845930855290757808129489009938906758185307542344542078953040789375785631663065667048130598040276635710370431670570747361595541019404161883123225971449709499304685547056978627843444328939009165746385703928115332601459401000027848970176537618786537548756648003625396077695123350773973217666974106910627875540613018394948433114370114059947019018828079024280968582249899860808607810348071659408708594199579875976328981113661264607827995747652330699929416063366177130351150878623974160178997346750623012972125429102860421125988104750235264985147193018312409348155696383769493363189610445218198219730374609076545902849496434168726878353271441598892407354806656876540994879590535257319202317147191341139440458381838858316403943339200256022806983004589541133931216655427121513640950073283544507922267780358201403210568704113632522700852353790314887609923522190994778159682759652307348988599040264558554929585579725101263501408338036027604624046673481511694204002344495377896390739687811150868794544412888328616374445837161178732572968411053126083523633798869473064983767345616943467718604404206620270399396631946721672768269878190288577830323308012972966495479224103204574075956660063718528481021978191699393578710163129769295560424453792831008442730555378406554814816404874537561822690794825028578868746402023469339190988857925120095133771523694495518147523891228631353346275240613838666576085995068555432484791268629148135218403082750631311134055440961577476582071250488548698347928478771130850044447365397990229576616723805910664981009833022233685434142669057386841466877697850295390072530813315720312029308281473271084493275361713796899282603399599364301262126374288692818932116714125098295107581407066776606173814833254796432144351565905344934180644240107659602870855950178488982902672526326917161546109499090568565596599654419510006382623459956491249870954662801741260466417159733573635664335474720523322513727530827891553094028327617158444367847480726695581557990468388568139902648523005750274624857505233597075132403102821543621173170051869482311967421049257818260833527731652678557867828644298657208140946540152947761746655445185375606032254300268758976370616082118897356596316355810211907026233535347389030476694156159297186388469495732495260768917418808104537462175229027504418111443861891283267098156910960103732966683044415843179571493599606127213469153005536997471234612724165175441181075919272003250402037438357764771589011169129507547231552852022197872934204692188324018903808937319262228948017955123444090212809856819151564817330535989748936749507384627479529040367322128524773918531845858581796788539959266600386173780415635762442384487578154689703644189899790787904011192333401658472088268029924551547033463261035101875932142398012223821519482718642400193229367846147409291201467637104711833175397192336999014477112401075233898387670271217463371947270874873725143926760353222130876792033417586027057991635709357996128177049594207546417788540777744073859058960084607141393289207955889489883489134712576440552399861784365284452153302816018681821630712490285610677695432865716587713154934201603946486097749563590373813852094602264685907908292475355127860595545094036853622357477842058937210858784753915684216593427105788407816982383571256654366307039841835389492714378698351498561965672112721945682588649025663629009118877349217186335330267254583208060322982935690132459375059288879548124963410411429523790421744257875626667589622200726829933032491752146174551956989518897625753277805697633817721001735523123410266849154595576746425430433571191881845953574654085663909502436616695795583824507651464942758525364379483806965930863109109741811511182062258789007815560357168011992669174749851649195337499593859705328854131341901495865413834266751600405027219482131022923124725769077473061797753003641723160352069542098641944387730408904498910077403475312867496664814182127876651036125264614823171009380377439379423539939607202475859159001657271254349916208911826871666578324420221928383237516392638229672723897343749375905856752589305740942700198346703576430904610021910881122087395899489881322824905909064961478216979498715360415301393262082020097397017086056500380452458065478113568605512794362554459901027351348542626865398758847156249397419421506659979495893274795922935439695199342183419167328620884220925120203754711811398619951607293581486373499617260124250298738543092655446954810420105951640695528672743788147859581968080619215513813749602585307179510814751122882121610102755873044522503724252215459121454694220114480851915749786659587743887195818426710062827652777382350328506484551425934309308846372099227687909797096844424248648347748790156778466713227918949077899749622295037011033939261475013745266557602732620516891743080021647487508239574072357102016317607697513416246543075723662403585425264734829841128999642984831720760743177961356101365623644643109683279344536702778974981743487292876481843340948736305915032431540210768986026939431695454492136624270910855527462769561847467452628074690002444210177222873271950308748119515008166766000506326014053818726701446440913733410396603356112809340763023102379818371540991507774833662827005189101453267869260939471410567633361238576738173091549227459606159364410292453755678441842710330027715869320117783099134972271019844888131911964401991304949806516576763633707182690559610706868619012314451660799691372580597047571432698981453798475049339802329523548126922440152213749345271475519063767750355653824728984899357499406145189904896101493065127845288205716152843558753293129486526366195778745280991074605575000084489737437431314818031959098196238421047632924855516147949685798439679361628965738234030895710927866704047580077171872183397648125677362790442082424025393986244321118002261879322481463258308438381178793675508329229408463196072712477431377976383929772383476170264083393515021799913847882701802842467213282429481853618650593290382915502861851369770020519702878415194637372963610750636309265504097801055096812123242347238588236914590543059400720733831877439808911800371678918231457445945309921520756099080450666228662411176828650218891120150888485232079365156743263844502117648859466047231721606945361969611675005309114188949447453011874220922910546846366305842651231750532011985477161370320206540698309585082956803695342070855419844584887989364315180345581437350111828504177599220384868547874745198805060261740813165681261354267114609343001966643955173410765611243149717693885636542488944235337074904651589717379561270959150878333192686438149509398808995074440623155697390981146678244393238789775766091500772215191053340886232981797605034555478490666552522739276863854715314015723206059253348375346091222149500466611450135854369970467605144589063411162813362047861539301765063412002126881906982131324098721538059209414289690675941322529304474208387910380111999611571549500350163112642301032118014262362097003924489038960221522924374430337810847409889524324712483105991384645819620877825912672958841583363892879026342982101483951210981493509399664333447297160730124049439360844247284684139839852794148496072275854099546954331725250619040148435469584872157555409231295832352123491108534649074219942140188436801543921095602007695170457888274070426863537383220873714397844305948049619898879071250642009056513643177434136758082205968827690815655307104876415524410738733134373701791823744090086426162024234025825348591554574904337685087699997325595244356648269458491239806937147346783732837734715605392247063766965063959502413126438543643109098536264782500308221925805410081091039417445831169637642127503229242536998952052794991971536865794273886568841416717934313472767784925787234199879463390959190742348016293087963045673959217212213732133335833881763899069868496924287061932478095395856518109958109061764395172145896293633893631594019382760311794056045625639057426482735629490753623550049249437195274436478474948179981190088270919305687529373418858552049327189411718040255845463764876469729389327684580424613604642076968592647654276088541132315016672483568261554660621658001763030140639589372484715936685322247999365548280261490136608921173895335633295472622835872345009622813637789882128733866511092436811290549425367514217118746383638075685392440103345516437934781681883738154034630584294877226569022360820151840438194865140195497935135979140372580005249397650325342986502710420939973463552613063412028476074216641784165742009266480098637779896976844637907654162406256081349481029329946478719947837027803577100222043482569907459714692402910320643631123145340665849711371689355822901521434235441278758566763461589421556643964102949243878278238144885879913619582789134709313856338886120103004836660010801752914672798913661955140856747425725720237474340227205561166602113481382274109417593354701146108740468127672441306866078796747858655018907446877537896539039423600530946840842898846669701242900404031971453764600259892585576059260758580372016449334738457003761452062456918013782666818690045892976675889217171407157581579751733962438345127700857606069116583939305913079518271954690638309421723003038686355847352298537076742520906168841254488356671553264524372185150097490352271386739555517755971226769003282750775025524698593149067870464444789188393952889230088685486545353891623265716823518871577051354289137796366577896438278263763440202647159751914824184777981859652849647471949230407424094974890716948788355626349937223808852957813874695215985833488616803629179548312095744254346075023794923162596077231451214970049734652363378285353153424816609521980853071482691131399387723573398378807301732151487706999003594839464641666557503532545959062344003218242090821811589252754997019166569183723191831847175410281637311088776283148227439271859882006351376758395874861770704331730836583043511010551371651337474350018318446638750984171574104819609008404581433214750416947778967060809960989363242248269722756805124611354226537244710840162499080318845809318475805045666213233337192196412296491913949933088811573933191857647061354726846605086052935293221488346005759988020363016013976648284913325879317188610361488032011285393761363846165070041382637183738813533133380229033322184377306991866024943807163909753762465948694284688459241980029773058823230756452143269982830952182473871586176368624745024040318955501638689134941809355863907653630131015487389287915569354099093152655869387472938477590543748054927336183250471639271309565519464964457289373738733794772215835738053538709728950852513550025665284136192302513588183582694366882953450696206634793185142795443788726720369921176949185966426434234855568750003464565635306566057090267316524696588203966907353596034464141556800591811167706085641607312927725548928948769112677151662483038018221576350384533570784292865182743304237783081869547026256142124794261660109109120877163694078569921098114994475361059808859705509761097131527453848394280167345548180834835903327767640332945612112517594734822389501571461234165483210907098669146815526742949600920587569340637108138671635942127969974726946974242703305698654624935510246653747712035199134366650621606709236206834636882547679509694767851257731436380958485815796516218177165786313271108739205211956107641233892016610076636812142194511840875279235589740636597564039303709577019058771847105710929667998972792823264107580610975142900784104182554659073178464997648652731853171615992179295060195241674481129850826927919821852497926983178905150342774659913345809428021245036381808241558045438142037941512082175190531158552508786597366946590859473172242529344464556096863505825145459372235490400639037400531772028246482035346235318206510728988545767645567098819601255278134028595748171389763880774021039365757351986955932623892136528983572136430398985198495546492022044604422554798823264862211546917111170146598071825518734889453884422635973645859869716260857081970299475567490508804681946031807556558998615835973076152765802148797448466350166215693855992670463076946185937212285413447486120278718058119979973828879636621968478124184860910810746683184132584143183419621107085008050633132074106850983224218838272014793080620988138104192874754942371122724061445549337173089807745732305244141891963253531123016479628311615137317980207393201939462707779361027266817864598132870576527332241707461559232960667937348299646714059408358112498396632487669268810483617195738644853871264413758816863636416406513304986886943353097699006221323114416144604249001966096211658644635169305335025551428315686415715124413651830090298870592200636087510524464509642242065499454535468241153374983061682445140649750508832615735486796652048562396500095163312281688361827798416439629176074088373091886020733026712472140323901566460590944578800331809213062920268991748119538613449418699852674401169023714198016295143592998154929960479358431517272620448967292715067025212727855926924686853244984772503974294823726288753885819944532420720730837303021153311938246230916828575859744166460192724736396857661821129312968839950853425777379739146556949701760564631080023146667203458995274607918306146409898303098733335516834396415107298075682272245949898591368821330281865349166857426510156162378332791107686024492923255674387989306802864215288226640315379810283675796201346239592164094050561610502626600268480159512305535653018751026010715013337108283390069040622617064738990937211959779588938225897898472316826667678247533232103508204396495989671365418188322742800984529819268176691513897852919676527129552010266276043005060130048684664580947982011230327724884424425133265959642501257851323658280765587982451535157260096767191152053501583159114177990798301264534129349555090600770107564706494810454469067095844086771809319399452818953851253152556358086964328033937436527528502984258033044596254260204890055056942818702917767686656207351993355157687390439728740452375886554859705925060617432876135407222755965915910505374996979116215808983985689076572063521572568131435511289702653540650749881798148909986611835139368234034338584161970114107824138773604449776629888721179363619028544045340254238562106054094079363110170194446326322634595686133953263453455248175446381730692454785494244853853116641359452539286838467756000626078417498304481228314665447204121009942438289275365421715073540866844352195251546118772710479397075450079339602998229898317035884301534309584802589386641367475463447927151616463070359628020752741507129709137870003425159764488001798052497830435881745023902025997475409809654515777720847562507475771001089378942026645934959210828656264865425081512380230653585132543140409254928179384711323159363895498683251311311671938934329355621934677948349943202689045564026539544788136035685836893283757939026731674012032184287625572411172879669054761194333481030411546046579833537744880842384667907827292145198749745670728220316153063017591019109669059184392561669495225684784391938162806836166749063911043630011401274049719717386873865048294977598991303217489153643571346788119385588289321851755500662172579741589876295241442610899248247968979815642998421397842247882819632767599443675946716746744593931538084019286184844998158157493343048326336858394988758290639343494231989868508309853233223604973486821321508071130939252524259758388229047686729887741377828238284290695446268238540110444803076689314729418871028073875317748870622191390193307950687548532051623114009602999579423401923897984691710048903847057439187206434041015869286087350122697301012480025055563316547993071445534146664655458373435888812008293733674835933586461621895778692882561382135709273434682764759774524814798879949793935086444001514237699036401907366657406814859404745009352508892535784559811046299411063968363409461109755603091675164168606220930863035374157272024327375851472700946343165633082987257596278310233638978942592200621367231103533365618875006498670268896728519904060382389368594231524795747780859216637561344915998086126360194134571975366752943235944874951670892812412584243191312002003193064521619818558741952442465739333150438849088037945740845264529174306360500428824057320261770015546032943891799582492226119539572578937988244679831564743907421036706417685387440563736161967622284432141892632679397245528671188809096667100331654929263462294880456480772566982848929480420906387594399736344200394033874078650716163144578639831859141736082231057224761225830367305425332435308747598517899428707974481214687285908566269727974949911907309988423769928435743253796567118606237474254311928535460149775392001585555213398510474875440957795526802676928722431746973139297911161846928832850805090514708184494206174431147920743079091743071434670190285293588393011034605104789784591005412597152094568150858241282558960715986950230607994846707259859394863622413907745831645320464927491929744845819592948989455391391705649361710077822854378986996399370693616323932270116382404859289550008697923432034697991032593516074757518507005103873594560997931969939407728758723555616962948639046445837202618867210325646466391165074506527127590312534018746332279865305120275014515375180705079296148470216222221146981238733580626084856887142073359693714339192307841505377823058094566693008353221521396545309384421993040528585547118359212788328438258291653505219542913350622476398247128004131942819649840787302513778169675642298805147989687211882439015767005061938465250355138715658743261326449190141289039417019652158473655022847188197813661500151362793173241427186056581004295433035672494561113757752213144945348288543981320653397637766904812324149642147054317051109618994117692659478856273876810576740194804648105858806268817928705896673513561732151057682866349551877951414688673266515591946914427173980402022817685473576243232327225776323113419620732016023562576323452146076877411554494744008557294268778747758295051295975073273539392511399864664998685352889523406660740910303481241896784342588480759187408918259373266830257297611207603083963853098972416868615089138004825833025759018485141204567360047143425306506955645846774422693805139168700940485217783635488329777825762121764858532458814849842261854624577774930693005395370363441772658718730974877493678165043534594324125323263783471813750077815752307605884989839960510608291183034999361792260374648899095740395587329027782298263765697849937858592071726073434181029779985314973265926780680978879953614091566637002692227999427685939927750377390881109248104548505208560951303458443361377367945709125087324384808318152255208739133088035623186692573213723933517509056071320204611539566614933276637591959140779059235969419681988773121949749605212008859671835323338871231987526194891171081382228078617098747517385050301631437784159657146100647574195763821239158005796101180158869831389477500223123262719211881165080721849202213620989951088598735392989323848679716806583604879722909480255034589002397169001172886076170459241868397205436652228914347539616878318415494251887696324979084628480954702526518108094237203860246991521929632864265861657199562666096643821619538567390244727094099312183378893033282756350984983006194579871670690476057567320386476036674176311524569995926172856736993029037984752150234634720333105664051970657689618853364699427939122372893464825331574622513222123131674126186636028295616450302252925303483846302473560347500792489657289712011169638431231748589000104961643297160705562883762034951101307349763507574649804557450236248087753589493642984476814830364781987458456715406211571327355071794973476978944979460237617108748835295809359573175719705286587165934348108083065965198935434671291747911228873816177725939473054654985205375184245923710777713229007162034393058461734423329309121899643103889574795157840827278154389321001909154205224269168640269910722228940369897123829113041435532388534986364289015973579037292119916473278202680179568705245972244692990124131942657518055066299918098596505117131025223933604757884525819148984722132856889346384016332153413249974861316124587316043085625845151606771888678231641815458249424650247251279724827814719019161920673662467098967317355606408699526698779066714802132119149627371568909600621655908573196125157549558170905489550815254752053412238613949415111484305347683539858503315342678948076807712093244660765545887951115228395132546215830942495047509303340081130785345088715563820223454211002318047353346956680531203746445389321124549983258582151181904817058740279643538880977671378524434479706121822189787204736858306079284557124532441374397504826449141987581951265310678014941790886312520189658471819386587937387769256869926281524547150640867983874787993537619385503700777017743164983261047369467039724414799369000813968232910322318004612130493617743135789499642205441734717245870484561749260214800878971851593917944550560556716623624947656943621685338558498732860759450805267233408239060172218483632901724649467689509921356657204011460548001714027312403585367178484162510020010470772957985173617269752377250554607727590030785248787454725000467563163847532786193992117481285121281030612428172855677559448999476165703514273283685983918041224664734638732861896408088731036932060249588115048947760007663276823314464849997552696177565846608917342977117478416477274767492334549147180442793949177072570566395554268498864451967143806564587342258593429433266399477430875146089302160597862860419243033331851940603554389325078866625798267219267888827012000703302118940896637081793493984042491621023098186978849925064707730645014380581096056427512403335663044111165655614591925464303647222851196509271085910127020075174983699419782634542400627578474676507217881380987607565903106162370346326173763939366399434011189544265516965758597178490726107423911380905320319396787738840324589937753395985748881973477858427187010027747164049578896832865176483438210750233363093006448357680476214395271197372761830390740735151013628900758175710807416108790767561677712075115551677108860403599005371872341167047399806329108019416915640162431120967261008569330924887252169595259442040502785988549510447360421069669670763276355338183518653575753931947731584466071212986525315821359697945152791674031068304083035582051806190757477220641553101384636871903242061537168148329784075906297664246968301335451228076548973125295038551212769212311797801951863753779577051958936694569853400808785202965597309039336552325578418525228797633643635779286560668105505695216706997854139231933931300700612473001417714152033239586101685239939285962201685921689712731655402843627283725862269783765718599823145513204226375964765271401426391609572327313790513194960572709840099656196303399330310973490532823000904058449114952626911921040848707791257892831595911549332713594279891681915897855215714404115513550710584954958144106984700640512082782726324711096393788374733507060939793349917835885093209838754002489534813868366688265164207649985531584542643608082015926062446990304335216788571583224580923127473892304851757809574748842596254818367841751907696181875011586044799892843974134316649129223545754952411014357127425334368720324266988143353995454549841820472607405368944990936445671842082379018740935041929624178880500879956688570897684114682201952929886866599698977814969853966026587489626290456399939501840401662602166322449637162745549398572868524781939876995682596731725273002987402515950924723023575156599539745842680557734093080583981737275208116262698742154243293514851429070293274870977396490432323136161822765238629531564264658459563302558401723245439164046816756672479942104984599978839692149134448666787122735301849405029223118649065511008958637297200787694671385340820531459651430081908157719340187359166130360590656837809075193353601910357216391509609951939416286605731570566354989146642726078084054816036952611443719412541635680719004769541498198628197890477401611678216933741675756173457860670779735908008420705514180545688539982257060970729100423971689016190629333706603793993042394143791539836637227181927123430273138943364791582510857857338943234110095086086469068082539466704139637954489432609599478938934975617041619994229802933744449837073580098840563800705914544318268806309290342290983608249597741980912048898687348507905091097324903430593770092277738652951220888638845305133898596288493216659213958124396163821629071233124894385879781780584457377028363557720736032807344520507966441595064898449795772645071318488259870165021775911422193641016106889051160696328789049804066561462190432631562044406583207388749594349781052794547003344374396760438928117318427121490151866335296814178083996751219134775841576272423733974294958760904879182743963919740010445423373210685132986304239338275257594942985871868322482481765248822746840237446548147515449596460460946558698500502622275186453805692961775348263498822171844669643047219154719270956969448668449305596948302615485292901432418090045828772697303313486383825559376844737659215803428322104066658932335992145189408170073492273702159149421985910586544754060633198808674054561506883787776231436271714222949445039299117729880323834771373867346176121986670946327027526109415322317143994288496143991881951677804205847925326444309693100893944471560363818115309308168888109207593621781536378481648189238164572758240897585150011338369572008223005419422696079381991957102058937968652886003537387661270695939375775757331263345658587446084227302058778295477088567320993872715010815964318212607719245813338081090449866301414926878730839793993893555027865247748734344553129608081363606170211105691837470286717097997074140720498378168421294739852637987797299035154255904522078261399132752398916829616324477465016008579593334533201122891905790767037656739386368846172793865542367310440510372414270000222574984883931330638736326512043327135653102289775630650962024857309831011052687328075885708135091764879412595344653284307735362961981560622899448368428238129653944626537632583072497722774170549511122959029085584479903868270872924386217483937450594978463563340932854615398243571903243516208116526505774631450755625228113874736251214872254869372872747265673214161598575436152193967302763784126333626962585510671229816545373665586804606598508321534753421710208035822840338298270553702746274105849782606539259326559918974477810865366738134482785478419785419538564008305188369335809384621911295294885557409952234111352869094082994202148091236639405223560370502385506789007215559430493654863826820076371866531863538054062416219704362815127968882443424866203302847707639688355450707855392150022971245338032142115351961260500682903632735328469265463313137013732803583585776251551689083027081394453107758899414543313226170883004337556446276711618121661771661875311654515393652534000381222110628852319460494390924103399556494869834482122792989319271168963297230545131850535961441478405751285234932941915442033811179013789270181373510441133227252899279138607291645388199038911407458287995695778068118236338184398933337740039239428222893436252836359513425147709538946629796760416426417026553613054690423709979994611041227097847535796776173675157142849217301172146415519098366876855733234584192048855255104128144382067882880365989256290791937205803467702983510847514556518416478590934441320449643915602910895704592538927274245302075454705824233069559369224384571720543650604836045255526838492130355949143019894442886605169457981756360285073292135101802639397293965210407122586746168743788425423107531894576622269539967888727210643634343448842841632514278542130900630940365070402516197971520926992705517687156978318392948309795542817579765313184961520124045759741396030183147560942522577921445310807638169742090532214104905583779850172656513873466520293559800787882188750686991026501902205930623395216223693625176835555593695646263256596548554114245394486387665541893081116900675494292044831579978261790110595287931006239191357365100649691459379982548636697975127994746060269487127523174534303131185157258315430230107749109205581626693808435111220572468653511121806308746053074146017929603044348894630382144719728174905831637596912409676175010409578078810054473217954627192442669801077520718915652972168753681273873016866856833566538489923723272675592745797370101213236210806785780403813205824490561930480683445734971385536252347143147087297005902746421606183736877158737017690946304479339307739943715221688404189548412127070833680411478284954440968434392106972805134610653785562878097764772167618938574597739728383199828827056856962092105271518199146495842671937086335847585519230275002750427100687117097956401180719430609591331802787486119506530090439139143547107731191663568751944921675144144029031696313135962974540558706006000783135818431627111508194835634570792495521789969943010687454406589525082875084996153161338883303777067622914392696297387814551172352801687433783341405056743049777381642307666704833701908699641839568931761582781683805932940786673661531716517613100140486707711243094862742334805463410633427541500840441417136624778343861388160633631938926956793826718455312140705882978017787850626833254957616343576769238933146263634367476674850777234684644460595406154507509125829943327510434146705123559464700872900678903053499280950830472488925262619876647057303165794445625674011677662553062877054390207979839638707336162025693294766800644956625732802501526050985356106475415907680283181463057660902287025514308296243244412076211699866168910047726379512295032591750874720073271356543057852764402231445519241457595683364819760308819088592319949897955783071349486693885102495274262112628420984941769723806364633864171146547346355326841337117827680291315084585754360062450448846437753780726676117196534637586414545503950318029308177410601474049172336314445501017784285229204075898570731067755368011255924505090213127985188972654268025302555807417071809746351396997357890742382897262480708797155380512038215464826062836077064035796842992915094171400543911208396986541348857972486981740917758045679761719418828438305782662880736792224197354040083859168299572649218749897285211755008107403630253453891633421186454752345973422835947925927167466573927761257498905096774186761809668643171519756175415255799875773043244873848719668315402607035867055747600347450515496138879216967215556514261163930402783797457868192083052223656249971726968300585964324354321682473194430683939512325108656923558783307922983266454976468136428345083119498822613959991741664656635474275648646222486248515751152133061091822674903448816746267249554420944566059986969254955125139739701269039147074857366375598268852273433973655382258532919391035290241295018612047679436626081485705271364512924644374759592366828541904327377546221615910796860084465022627723748824133859415516938527648011817036499505171586703110568241889863694794108954134934816475737465035160464422200744262866643923578204634130185517403066152591947525966981232845036711094371769816468116101070263905507903611766855765670270704840129358430727870657030246659187437561203101136979208028892128677745700047353333253289951124232133187484160112124532983062675456875546341957420403288543040176353911031285888740143700516014279704736812012562220210314268277114166464280824643400243168747175689207690880338056372579164273821948761545774183565661907921045219534518664508581559449381856837290084543595009549350056506285504354870102280284876495984198180127201877429634688422881866436910108925147308305232088351711189479813028150545933213427080156543995609690898680091847192858529817087440573052070965061583647675370568924835316437159696062214219165927680321410495451550178815009425898246252440713670030514926328872296687189889329599946500849442254067849611467472092378623466597453366179404206721875080126627898137673840598527758827630906328632767604299811098168606557144740381611580939756456324415017021675962757348873274432017592304026197426352946065363747642889144397916029592339137651146796755950840168165255939366818471591729950695058845622946627890217520936686802659722633513735990986749993384285237363135164885272972490066746369934693995549819673943198229691309599106736751880324166366133444227574787802271309859999656287466924580277984243706095669206834544053531224573040271476472606443756504665773520535317038925932392329538445907268178544082999032372761522709078114240447103398652755571782976219842183432644746312247429506870685863899975340210910154096852161529703214579759356918504293159823938796586530318896301906808541583486654944731636360274504746951098595056668857366607369318677229326197583564324163342372515666844478568813868383196679738090516863866389915422862614084052558499485628314456631287852117664768746580343509012865677986757139736338043933918819307756489187766914076898472962809965424221402809527578543909153308314080703730401232450261712762390904780076131346706243136902348661900231220315753191405821501452256820915896117747980139523091106836499826755088005567874627804196398575543085376928756384081361533087221904465533356313953531411408972715032350890995149676011450618662209552915545057062116067746557500657229213725485953658616466041942756320468503189282209679726141831567255832351631922148367485219681697502968971409739111860448118779068424868693277101210502083375528267461785737540822818811208531087632813825416303692033564866732069123067131301317573538849973797322189921171751274426393132008526113988341716103693616422726083673924873104362604666035695654729491438815218049766641641891400606934056046816886271427906957923948341234414977300886608286366309707454265559165499532012457979735259465992928225367603633506663088743971433700987246795906652132815909657219633110181743763279394724800398530522547994974871640714310091548053960397292658363536358907546955472810178927501669071809407891181222720664764041591628705016865033493289199279730748552969040134937344529658323510855962310856506847405448487619129342734208421519734938269377175858485164466977021478275946538224903420910965372231922663012818819828997952535305072539348308918398536426679761272988504576153750486334000883586672636643100937605007505097283674419599992825363120849758098945790536849051191647289120324647833653467704151502332734993500202271089958468307271720767340781799416595929559659498561719311347756939611065710791613519656198511278908655945487073667647470489361131203615918590260314831638568523726933732148387316580258033471727167013147917317767533533864708091177018589210478742407431517208551307874612646258985219581990981792537218432177240271689347428436327262230092564067839813783345600717309468827737734552665930235984647701812867088679490155462275655602778963699899481186370303109722643575274071187536026261748587496745878743853713541439973510725452535988175933477588431855299172082829389062823033898886182332997292568470857522580573498095464333660933810842003771129904528317376344982025253631263023786032285169229673066900014192655248747317432591105730016761151197975650050307940273750771825244993358076712694673985528201272325958604034758579282920531732975593128657650211256710839624595898072800953251601401951411114186027431565629161817296472655476671666013783819502464337186077179183791045439118726608385065563786311984666912146944815543470369684324751899494215981762242005134183614103771061862334891289325713015115088175036193877546165287165620221836143187525616792202055959106253723846086158438814582851993272497114913500974809927219153447402333360896048175533856909678003709653162389215925206652753658240501139779599245487606259626518306888869230782988749420175460975055050049201711992853812861899283565611771839254927171928628798616044952153835860157707156260617442846520647034211462518396820517061646358434433000727221210451791294694031660172863660203318678634406282577911158819314580716346644991266656986675966602171600625634943523211837812205284556716576708874802074623233694040281461390482458846534754403706359195177566961748617956554134623765681550746898382130259062629276549112786408100431911042361547331065865184471592187881086101838718276280259263215940081942598968790221722130183080142110680546341168332783168168832622949333878251422493850171425092709701110445791925775328703081310035280323807691754588744554130362668272847789064441999326934079939377279726785645508900546497040112005264152377840631634120104978032787282351198355151803130490392611444567947844487055542749039235818934942322920907547003031153896247692748055703654351753399063454514402201921873494616163875824048766360744193659656108514172151341037152260473458289289125531561576187770167943140817343216781301291886213332765878157399420803001850148951769031871252040483946162621672782416084928209674857531016705146219455229695517104537389099900786940766864480489380302366812222385242981448459769037297122581115333297788600734770267999829564590660114570114022695121076263038952541176318795064660775583912076686129650427227121551129557694696342656502268143025595074367975495500161161308295301584072502938045481957757551386721508958337641247179076221298524570137095686474895766741127784201427088967152239589637249772710070906664689652395701715291753863247486410072862981786097484558573867161037130610198577461341100991943217361866054293862490050007258128104944907263110427530663075659801363475537361008460066626577180936617852199623411056480609135397217962542014941197115360351431934906519094280424115602087497625809490602085426568852633883737483238757345547468035193107098728791859922229085536046740603791596234911599588710094575342965552225731767521796690225927336714570894038653164052548949265858523581306024056569447376602928513480050554328077066780045930167975777329238137368813771711451321618847520699807279650634660566695656465652531361314371917549734682318898748245297196908056763369866018559014107443876033493444162286260322306356550273079645483330451984788874914078358221325629019286961636544801132054615558875780927883900862926386196740626291072609007926937286275743088439967349480590197025425345817909453459032874709835650053159785228546021887968035483262608438932740254769833542193648760709415140463669365265397206565966704156014137724090609447433954639246780125280446034098526992542978034930187992718575024773144796463784821558567051652831365832332033205789751980035113621746429522511693344760270918719236914483243928068491333031996589472939508876046847813729989210947654030683470634784241188109914431683518875384940833765994653648851839820691114776409338740769148994845131437558991678476223418390137562157512415144689508664623778065907792234461865102048656644643978126890047213247535202077094516648029139897984747731169214374405462089799077428897653908670959541951009585594621495113382704636311019879128468428324817181578452829238417350265794538360982510385519674744720354911380180755111246186758935458104281341798997676617389627831526646623067582843492526085518138003993067197860177879886245539759768083242394294069011622414911726667681990658473711179309831612513604220719844172554179417280992712575542687345146433919317416768909676484113857896706076235332541869321834393689105540302455458000189907577699580908273070514737303732264693159750471672145375155001974122847946105605549426402404144822750010146934213162627576823845204618751435761454857332442518281356424950184535741537490613926901705207236905909998567716511874809526801710294747086585859176611547032406988026099131546426660701512319405043962909262311043949103087144733234645747230592531533511678095855107884548451598035744621496405690297347162546115277926392751210443667698740936684634401103934109143030248226868355797792261385839697408610490131497477027607945249381072120555916375968515717942053581105285546492560401773900069554025678247161232070344506874729258479529716458594843438195144223739814244775899183199969982552893176902380849714921107662233728833058409112501907069523896128696849194422321324292823536640875551966557261829217882607796848691114283138594114015385371933086822762167603874953631417293535485719925827124168623217419330518208437948335155092852217805690423471728584116395661077954293513083445003718867249102898674847745608847313195446118766166674149332838876404638899744432600064281112429910018252274587286136420471328224130065813255536229807927581302994005267475154650504918807128812566585238266495309315970457275785319148980321241721720396354198214448190172125142705827022958643000934416281942613313789959898181206990457913802643684708288356261910945626656533282067524252160311986144370988885400349720714763822437085902320619568504291253090535518379647074455874953974246177980201627912855046927431800253005256819281632233145367693331301499056905636109138276715054046975824576597131620690657325109932882980466831787483646069978080505068901707812967806838336900221262059633713076974893425979244575505946294864957684141989401336445243681931244505166199893989206249985890519934835154981849579826566635607889303084737166232946617738333488651903551015347223949200789863581311036470389776565444313016327035885225123189479215675855226546587458066953679193443429617490141839483950073195999918547841350638431739533370370054417452946637881857704027432927278852740061870977120633556549925175397026558596990856123846140564302564309059588744773446266255406423289853061535155418610641846270394408614711987345030159795269484921546938320509931785024666937604568422356751955407488304897056921925148005504141191194698186180868201345712161734002781244491410598283672844879567326624006594892347667470233410158312190107559310272762996683878705061073591441748605612688114184038249902529596809753420060998388563746421260752030798795226563802088397145693974253592653456657692800401494727475984672035072878252891053918512857874415365459344904808551999826790830529808531069785587373089123030309528999206197088121243329713479133262639881190286799143753795394915918625148623818666194228481862807085846231042382892809607545005184738386707529327713295447872573226351802222890266605360273685964342697666502423030989419638501051285290495647964495575296434752111159214543183776363768333028986876148608742304375294071801304329124444423769931313979462245801075914075088828961010630951740470617439583689104010948641913097997581818549408295053358308423164176998929960971485570577583953162155069238873624478804947168880851366941012129106106161517766742167538341604403166865552395988726774312368969146334700400705411300710270453789469824891207351171313203941458414777760173776569126673830584348594544788949024817255558299469762256878926341967163750639482520268545714791945325286237402255469390308182451307104484190294933800310443031713406547203427839992129248027719818024663934813663585971025145468723368142582578232689007316398981993450749156905369132248113366761312644927681382085970116070994995103034343618142187558605725027938354089717794110332543969549894708272307240703877246686628057832812995356829743783783649001232538397812637198993059957798524425888827873031027452462219597109334016530354698719204535363004152474631388518683398153229046461598918253830330213674923221378823539207199193012356296807326094333694381238424606062121054599581877889670349881968004491823116340585025155240774275270927841313992019678821062317069695839523825622144494629734904661964998172859158352539874606726051229223370597615598551011740287685323957630016891375810207190022213920093399198545945550332581204993760473593310428579072692820335223503605813291734980139253992828856568211989475441166000847134251914484047754838283088659052080359444214959385900583290810462638992167657848537738054197605076008956628503935821973213426212386874366350554968756232492777980082747122211717296630823792760085832183847359435752226492981797198852209461809365567977600761140379665211986093249577940684800851654908698587641794940602259138659542567320359384799456457400542803464504182229938867873169086721628805379391914649865659129930844586602915691801043280546160148166538410205651359617971561484827527545842290198593014621664377212440095658367404116684897626671637636163921806908412050413943247627386439179838793823087426413102065437102161623228788755336853656780867098685295454023316217867012380164050967532477781963095973815644029269612188788012694821524663638012369675097136974274539681402347862423047764395283896452470032278116982689073193536896403336198475918745641850036371862104187298331533188668410712434286942935786868986822234990124319648782393333191861680495878034805483482022467370219881318261122648797150582777162386693103483692903764473869418403981877264318961835122963735347191435014777513171523837274295543338451746489652499587923439371702237342169865005201710347307272088190860522996906537624738817986827194129308943956194056576095857082449199922481134139135981754813943801404552561352382283338733203799367604436635592137109213690936832065387392001965284725185456533337578377050473759118988696264787293946835771058505885522965272295153360722196778590215084831818542443536221369541491199615464376470001929096786876966537161658590606208808402191193845989622381613221298632879299778355605924920057121143336542520234526117794502892133813208295805555194267993628370599554942164204096919478712471306885950381341695066014830514978740569732911471226285292794605137943140535246459256409568655835065003740075751125121329550929618205228583100078100495815636810500011412660890946063359023239843341811334614803800835401768713157680598927858907408540845074913589934396620799837386026313800400074517462361234740344780619354796253356006336979840252918084192862869500399716795090840216917584852879206197291157958407799799344720341216409411209059396661159617634938781691203069893581921179207735339287131341948684143284151308246489714921668637187685738360881060014536808542358486912530136217488409609756558819101311277823070771093183751702818714493230147329349385133422812474824856264235613676653856607155964603224891391899246109143468138423371663477203776850819961380880252031530697407045547102116223774151740027212307504188512584347809524189861208290657928181789685458244323476532972904841955555664992102302790907276045951199183290238540369349257493214828808375299392632656535289792046922970809837253926084546151308576545906464551659541625848066472290333534068544084190774221508583578218316930064396780714202980914077850744428009002230554186869433338453856355695172598159886563212393878895720364556029220249205235863340159192886261572485097973893510172988182892734395980494445333796289502571151623233760637296369600183968544381115769448380599010885744621565391890622613127510326048845603994148367919434452541167419593974135837004713375200514414515827880819862294693290820309226880700876047636714500335242509422845049672040269127275426008131817842380584574603589162713002117343634602156933288622496929717722897983414407544894459347620981179166168781036088981273066993381413764797947561208734028474327153147460511314863681058584762040799028962170326063476691901795439787459361050015005160401734003498155435267376736462695669667942463048973673628962354521798511976634860665234027662243286447668624185983023335755026799784008664768836648032442906464795702603855885665527684060486572486374023175202971239627126491487345227454614792688485305926201230120390141099896031009400875221076769301996579842632066259082512401072284467313161615127993516997708766072294570497781551585794683235326065933754654548307170651629062865494968273104387049681853484234778190360810617293924271876913811758480830992602873608026368287331084488708087994680843135669216602220070409845293090333360687478002342820923016960655927874951843284647741702877196112649824487707135254833107348867750101524448916533335293273994611822566729251940337169012241541283160199005394996558857080914678182423737411197685393639221627692947364952163525487480041729128547623978440118683729409705516857194353434725320980595600604271316555308242220546405513039210218303050153383398735550727199832719870278502384415381523237224277705583400062368190750386309283321150262192178654081329670268794156385321265268115028848206828941098242171145395537272190187055684505099916946348665976177817301391881898382900317331648593031717837871098161139468738450168674879707026027835834455901104137761897525886352522529251818552262799192063604215692842198944735850341357189854444176520741049776826435289739123040060035186567403148301147904799966717856959136684306394423060737152358203198912206658541178323554725753061318241612422418331009050001714391393755147665561271237112681019947251626521760148876853095803323429769948244458169757865621276429765376900139328473241799259663787890768247812354461433021884349077213859480236624930057157439257709612393653423221024399796442588027640926168662261753060718162449806181867304631869383324451878883703400949686709809910132472675199635786562629158191823302944814203010330883191964411546898778385792919676594111500735075755114245994620811594538235367661053195608729392165088500846446852066681753713693299433689303512134578313851294219608267098573727977870011840909944112142027615906099427730861289001451939818355772415590203874071523756650798661206673544995283194778578045252424311313089992973085174374212946847528103722577730318247374706139496213966635395865421525193306117790733990917763838169895641322836813406237413034458674545958642160348998619430380751694412159420445158931115697183065677940941213265612836208187197033413902906965038387390331100648149344487672501414667268939207197264949138253021224011489182355794353527643726977060961125171096315007643682481090773662483503980854535582270337425077824946681428569224054878937178657816886545860855899584679998056890681141039363462743065541477973600884155672885956396378450877867978967342422848040078618055334197639785121379958343094892190386350121346449111355351427550188944133545142018261370372775449806480191271576638457719402871919324726374606740650661191207366214987069225579199555232812109004066657710049828476049947088480649317721773472693114245811757111758245550109583723313544614782656669384425316729978703224421833196569520295214414141731588719748840914233444410207373265148731852673404149919783219461003793761015554204172864870286598692368883962792061028793248843635411380920254580744294415132007417124501354219117711110097024407168464000716452923929603571306016192023292856183367214720162454254505397262761291751888391708840676511356148916820209363472251269899026546991344391055082028765202018631443704807032479327814936087134603682978598270202860995049384755700512530985099458848549705971149933120940486657462187590733532448721067141285399553220231841687112098389167067178284870488308186859540468909161695492383137509023049882995516602626909360277804117637317025631259136619640469694282927413920916221327540978960843281801146476686017695134747830061959699376604218540078657999780024740778910342103329278893402143020682766149007052931383397234937726847578679810594232052531256478583022429751282602235857116186526390729098887247864720815970803628185492809136745388287889967176622595267936721976050062689221737438699557579073716230977579379860816348223136517443364513314232951315865558923649874757858298698511968236305501613215236397455437872846554471763579177624957689355552984058285089212424728137046973760996014960078778357636049979266102138132112615080122649861383605976643190671322017200533450925697630542581678463773188675163074864594759974494047177016897189553083966528151613030664674259649144220279925471903574757734939899471457450828908937943246783831724944442672381925882477804403096914406389989130138646320669239244520601466803467662208042604018804186164891392597596090511669495801413830546337441970377495236003628797637885171687958487361742461635648070545366024706423349327805408190446468325350729304819235041572881352232165847116035680021670371602776808623719214187964387325939441488985285474175693581523903461899446301602059455668089884466383209492307951668807595078769084144796640714404193053322777886849733239522269175102939938724801876440757103642844242179024454844382264763997941339512106447769592892419428458987475265725702377888970120576808503203990841531960817838019732955136831547964210907266370664023720345383533586932737128221506842021847833531606972872397697393745805691402699232289215160877455800686554357680234935712417867077973189556239974297153747861304133585444686677371848198487737088799734949405552650630001111545358096125119689166255366269199097464029480920238530682291990127854226927551531302118559606380209046286899347419203306765580809195037982812432962075192860687201261706138264384794883216706468807608896366492331301148064514158636121755519174202075653169073961740838830200129175411322330674867601474863136639816929423850135996599254129084101777403908467774616939314105250275479669212175965902927172885804643369423639773186260762959211355651931892287908691562593810540152389602452735807641542967711801009673114492972222271342994276871729520430090026583195534181354584594108615480929861261322751438507242718674534286321442351298558252892788675163172299836931401556365852621934723207459618516823429386710063917318244516567059719800371204105743415346066983733137185235387113882583277764080056002031878889592765581301037542804660144074631572572032154026225896129803958930081725581711921224794457041226774317783074895513757196388327812103195516409808927061685728443178827390217211506168847621770868359476493962077715737908664089077801377839818510198783537224247480842983133821712131380013853627352932100679928561265882543248591904577618543658885800944454656336466783934215738386760961029239309569736198712447748822845166240080230923379972288998474056406540809809731506536706682605161367458813143413227923633562169588154923476088708476061839871881593811597882553117032022538251309808175670090021427215767911401394627425943904117396427112969996956842945813081206647879122410154960709203214602787023937345786636042617766144979728773126471076544713431461597591757679955055184855610009140399334501666003414215060804126467861595306015158055007255167106863252300950149314328785846319081120594561923254687782291610327600016617669193565177217724080359578245593633494717016097240586720302386573671709993205204830022346338388103876285024684464173034572297845561159996489771163188127046699144106259218116382586517399710083094047168976373666290083124433593081661846448466029668085982001565727801982758699342767320319120958163710251541293448179268829967229921736317772208450388099488798010479605481195285061222134669263100850369973061788575385918817667834385629034301124742680479048219563379432198433772733250051104130237551145528334460225495563713264334155885443063205622705974353853728918874956926363389941150842873138405402229929598198191842292824201550186814930087019563923461362782414811988036342156801651068642315374718264360715988188953371444379353758033867394167467413466494798431671711102587508808761391116772981268722373152888838439699508122653030985835085117362709469043173823587272889328539082787653557870992206859905816778742200614259512901965771256969436166596425670211311279043608367814490788854677377833264777047825213891268931677279276990267162960457004959778858725724776016830652615780409365034419773988839390970526475797351691880770392747709471997310863229888559120800364805054325171143913899037314969680032424979515087797520163153105446473372549125465032659360131934553648782695447672316375322207567516105482025548653739105333350015339996047086659138343220382214885330780029165531132450644092035929231288173345981598825177557931055122348314010004740135017807840929205098536324293740144852774042674081051345744193006440795923183117462289312088528985573972241161906624602785369986708673154086609203122572722550766547774506054819123296627448614972622678322191872362687647795393649874959312691073666545129095682951669984069890028518402671015513481367115197972849358399948490278117848534902530080181404814136409857033526312805277097376370386199283762705039321758777550713709134383823711625748346741117598746230391902325532119786724500748904391943496791564569517771920444818962479553364135779971885200756635918372423683396359110237448435302973775178629316499768416392636933736681865505583379879854563359545277359635101816834073881008685472942924488261914777888086357772406295832208618720107277206743066402358425373802081587747105916541628723765998116054541008960304808151836159905445954522260340712992129700112131536183214082968838934905517996867069284632764784000137828252822712970840638286110834672642544283517150965143711425429048882887610789931641572254118690275075165392713396319245663849579651405869407303664492318216876826637077355350748623244416647745353855664684608372988886668296551158759221099561652735510182053643957232538418745952310891106386439957179287287898518876751137709584839031877389735174724573773958518310518897183517800059530195773543013302912539622272436048266251331706608768015019795241878577337496171797398616438580238265032740395423561453303151847543885844453632796424195264501182510257352204807987793950620305936782135044006333261369365088761634720399288960661703909013898965529320316458022836737580700943741264631559322035847392536371366820603000937702697422563826618457010992279446634012569633479335507832400599698925439023444743330934970643315129383311408524246758665927879862851602456857588650651925588382070634635479860209659016155446878247741210811955068140583064710678813249442822147303272731012964968080606267396257314263825518497913953804104235237173913233167418660047595287877239182430916588407467618398144112809273304870315876992800895244672811776768698537230034766929952896354566854119508058168531087233140165971525094419156783600124157638487194550676957986012579108460359122493044417278819255851589666829884308721215336667215007704155647505654363640584238630615533397823002783039916202220488789777646758803547297353033397018812514167214623546604828557747914221462578534989130507982634737342787922715604281442628312591276278177928628354279656273585723002282631956815705959511369454794343335498160072084364080575563190476321424713221052173654732142601888270361917400612902738915042587112087629914415818244780825001553983168499596099217022156233822398847945445677998054724062086393529361949963095244629468988387783576212952825709640189333434660101996690848707803830669413205977748091823351119084373523771170313449280335236913569700775771979674266447199748463987714214833070002470695440288144909173625768663950197425149475802774770962778752898462216660846786090588744219765299731026983150092287013532917435143204447857069576676300073265658186246225629052168394900248992533075914989364695060748927825408853675417245274334189630679898592033964911428028392580906929218962100704720412634690726720337851943034754653733661043962272782105471410154015116016902858372848799198339933015710287756366821319054214074129964188815134175466030145320998161742903776857481542733933036127756283573275579928724422646748112268231376626358114056023727462748938689586002528894265172290436677608565062620172398135821935304907033995642313032064501199291522664317873727552322489743452162875668938253333365184426932580833112448424050893803346563584257494569694721259483112983600260256425954947082368375496139903002801886062806720876196349186767924946780449267226422127197410978981551234201795240672168283773922264171789590790278108235839259216582514125197856347639835327609354450997531652700633115319257892433006355920404338324141217500000538919205732411301316272031542619399728202434135630397065324698297565133819753604179345427408314869024693979388790961717741275998172910310080182072613464120714537274569028330996688122638418363907630986075135008836795308024834891707393660140563398640090020275421066750367203400910069743674868758496055185705602405891676674617921643222273081464565539246914598856747166460817253153351539161023291778184651589672302669059192187046285598846939567422725827384919757832835900935177673904274199600774664816647539950537124446619757756949346979201395661338951285066867459551213449499703155716729049187604107569919421024892942445130384242757265311227133793207439077207793645506119552374119646241746997804823463099830503234122441207274670055130360206615842502678083802425925117350707723837080707184461236492258693514247800884930830581006481625693793518522721157400422389243099188035632268735853069241682560090548609190941680547263397657725634451456799876060642282351088646311063786221909971911979326478144738013661017483893793631645689479613995282058696703862491224564960723475720704006286868690684441162729418135735034302257460262406806592883643200716018286686201529506770944245314252903095628415502838382124961737968996335968342144490202577569266034629083076874237460249203217675903671877476148572356882033842817526321847098923302911942972465409495320014566986013927070736848659772158617664491276279134651740798153509325015450508876006164661480501886878799083617277177435859019023529822584383067498194256277204341660483413711151479690441465182260845048174505711071122364389359392069150514016329086604917169815691291909073844810740138038427864259382777131479143111227847222167348696400043151669622866352351285751439148731604807977411473243786089515793795758923271842018944560048731797043558921704760985612234798152206385063226085116985985958853384568154505686955447881694959408045769646727766140261192835337753133680767366646715066260781805276649330855230814532630911916900327894384290506360172086279470081552051039517238257551959645081465182688342855375392591465563191687108232710881586897027687218610507271717339428142375574285351577929439521555262886097300374170178294287312682654689630253686840136143448566991919210757811497371488965669381760894954422843933465535784517292396179634436633014251521566785880747667301652649252960988176583926681636190406255946323197542281383819281240229105142690640254720935664314793269540886639793601886824188733088945358095025017616948231617537898945628468901814885565505261730022750426013661439028439793972861496885660529854786410257940952684558958917544760069843828537359464185371829792482983136867672680721212917512693082213828137375142189492977324664847161945037046600956836643993961971754276545160182256014359714888061843396782650150786647652435578723240541879424604929428975027939950044549682004542165139311702571742051742933747333817911589991319787230975894216656701372181125132244430874253947696255233424005088089528133376595196768351766301437312165002793084836158237597439485606897363930994896251403175880657604687167599218522513550476152941661374617947904941871458391089414434436630027514769424320257385474251506751303445167627727236976798169941630161641755028478718036377898199307598413858114973162880344430528133523427180061297963659438977013800213471043542311365528437526219409097181602236534239051467557466231661096511869420785526825751723519866082732757133204683233688479944604443770068580612756182776741855756628085566179048324669351309788431297367990480785609322759083707574721974683416514207838798820360626515098621890012740157760624619672500881580283672007382771452847646664260310076152490438113868147309235365068287701224985021708797120109839329003675756404191704213999892300949695171122401083453660013861361192274382100930313261363606493477775532020564755491118947716583446606095879199862228054871025290857778871671318891023537816723112742816626485750389893012684653649745731435482669818104505238256778265739725422911348388756950683536379362072854592851595079346897374315974504986223652309359516686013184325175257167237813986144047658037646431299566048754777563444055535654367272673300937174033035737376362445044595675070729029818577792129710809441263681042746971289708887236003296360689984240194159146881347369295718753578069530568477398728636285905041082179737326324533315033471102529313163338716915307751032581787868141891129580163172604629324583332603687905953169914179006292463000746967480336309005423767090828565580686315365899943499555533504230854116069262336023047844215710609989762768931551225479660648892633271249881811114136585905857415973764172921892695753991081487008506390861647656149898191034223869673743544438655306669651427597745498284721518177664471651843768779109586750626234423375861328535050667023100863126363276624783394665969971402301478537074992412341305796381506869733466609859709707890467115951941073695556195745800983741366268655978497074563738633269750927285888954186057531587651721825654452416262918831399745724845688241907971195059365574579214261605295559417114651309631563751924375736310052567038082538287438206648663515899081418878732088095216183546812710073421574164760207692834684409729068411635004387598204143962692571934671893584525769771902026647418333443260874356154929887824836606227271958190339618980747430340040102930153362242699558057625155798667270357572864853631830403145250693511985407826653974675578501443736111005376208191265324216235494731772410738808866075112248146240350994902171149917297160842401407274699232569396777895012015624178199459665184608804486388568415132022472804698079929708770168867184617551586364695111976588897533238792685386817820193593897009204744006855772570658032037016178605941776899751788904511990551380135146909793658354129653635800033093713985066281688166760204667290773775016659000108975096136691609912295518147559741519639497225983238384868095404206587619008950725622937588926980666174822528884488267222223429209623468778987587640074298623136405010458430320337312996529621368533674373388428438391562782217910834308795034692451861357026338188515388816233247846908936917745130867131016483216410408542577089451439092078925931575946082192796257579935142227120226244607767294114833178788582584585621896538239303350457185241806202823763751568034097350859480066768945120255507990181728231696272082938780130702058734222151324004282973571307885123200523465643625645699113282686287552560822629006442154710253812120391119124128447663863653224069847359953539714711486087340131136018054898648476500170230987584352904136355574494918755723034142652609825159493475954251179140291600160203782916370277388371508652152991222874011785541846221315009297984176617434404638005063590950185884095588838638161229951172619286387556726013983955943857365639052065328708019373602341284998143635112331374893228129746360662589710883726284260737326868917515094791281695164589034515723792458667966194394105290481242946895660722568428809497211762807636365968570376473451965511299508200719489910176641669683137519445654965786800314076743736283256793266049790847187110549168439629484875093976492085351055645359748279166881039530317152947733116813315941949655356655857557377095006703255957122860922566370179843014922427102130595821850548075511291306730417326797836198931489434998076540089500558959362885491565323151778129296789985152832813735458603356516996074795615158405088841390342901392897651900293865219853159448740712214027678129321088610454263709360084568813834822892056478027289169654861732624006949446866377177095488349112512565539245008775440872880961579350418698139997284911540463491332991184674115409281056832975319517144182940432693434085477673431871504649356596247469120810094975894454937475679337975516281432107983208326582730662803730368584686941303510100512820478289380114563127298017274159094346030258188317248752184772558081067900899343417733001599481680240137751865692927379952098597460524051715771768507297163210386842532439998863458654610296212120799532783020276287355464237644485053917625730526268782809470535189024488760209600259058008770763742527193297231161748830586782227104697776488150852975796212682563713095272437150986422261121074814916938264261769920565681081964533881179668161757332763409700242117759636212232311196583789240859679957988849772094358760039478517461358461156260094681067665642212484042851833529760382680460769332439975727243847388215133961933021694703700522767465446329435960875095653818220947800516767148795622151534205294031046647303373753916717104989441605615211447826463063389863889482224271823402749343174994701393549354421816579156339647412750127143872711683310846827108120096179119750381143221979897161866141144571138958208609673235936272838500778526428614651746362274713135154869261964976582284635669691697635780433540926375644319253562791792074494180817383199520612086709615240773050849020213339814805464605429528596606557476045592018547938231543603572473516076466386318354148945005898180435254399785302554088970184564280870165659071110960446538673485392096570987998140155852734300071869912778049545438354653822806288959075110177073722554080563534881782695426306521097596621095848301342442156876529081904924010730152585043142404288733456234848918908532997048373351437589757456935634866217225771496407623990915126818575762571099599182506736232238323018523254541749759964096777603648169812078215747848280563038406409467890847232447828710446457950667909477826564599837616678938877181254895123647675287992695540886766320562147982106165012968204168542213985441084570522367360033290658779615831382349448073039394322487585882842206996182178528597144539369077124678837771578052152010185277536321924839883179424731672149055256780903102292222960222492570847165479144877557028399236875621249416303234292575441630585064495786341951769886462243982555958600077917422851584518099410070745025921819740606635514034754659381652031753733015786984294933654960781952862939050296537405513693492484600495099659473316695411798991762486277907525417232156653462387277752395739483837649685465569833152877675997626205043809664451489248165011175679369397256903718332103068370967523327346183264980642083909680207339017827103843467857653646953046883060905285934036900798981538706238246860803914663125588986237046126381491949071778155697201237409124756761185660176464919810525452247681575537757197572578875969757014574734563806730806552318732688547528781486888936227677247852116957201864691542979856607917867682781386270897630626884605778909507154254475197786578763333117169284397478799347340237565370479227973766953885597713312203491071573832934470901104453626035646143732517028737428649221052794797689798498051217254595436304446360286189425910244528483868034806689661814082919696402154459410669993149331256439559168654660049416174919072886177253372247005358231307053222703513542150369779806596545845226634067944110125727993689596067886857053866498385562195260487766456379950901649266821290574244378896875293384435788331692008798006880799713727220230395762333816959955707677097239359065144044108123262880713659639704270041470172579227493638707501135643362515394831762803107291717637087283426178105431007850657000558129242532567442542208463025309325077475567222904600880332878532189146936421196597199832760788499279114418116838485464696527567642153141126433214517736062562163703948080697920489571534823432701594618166445674536386972465358717457129726248591833645157255849630000600502294079629983143793034361775904066203362936074748331843733906603690452600861232243296095650222061371031175302604430280964422373707907667086731782917634868322391834731538053936594502616618655596696165879683580031656698441559669600593935203159558357971221709070071215069177344192348786825754627930633340610760158420849284064444606523084893914715704369940779665209082836382593470377403826899160713680479712265285267208939808802571644813245038770769282616292274136585092749169181590694762337836529644789141247635275884749184639271110811195135811032796583956832141206630892859775879881237971600876879843835847932844736761346459949694734350074910722388219108157008167761982642894319350100149839619927294545507838807677706181461959914355212986486909684252835429604953935507191093674830828668096865958897732424811886719534402502923691497013339433986198286537599344675141998505436033559634577721998366803951581063765643239771561937137079483860323236218798647687265763548256891290481062546321611258680647010603158165025891657301732745652623410388893460198663070601064348416778520136301422982841976752483497212358648884133192239260991340501683113337193819958038122033078010872345689928040804931533530836595569603189759656319603787773186097139010180254516289655916894333557683106265104173030883379660558617830885230350539257706238780488772304547856429209438554958777990738264111263041482150588238327121734203328327368693590254360891294091661194380797466134883996503030137139532918785798306729296716625253461948378643695084673240569666480820125743164347897961548773221529962840025777168074225538408210201494593591383433453184694269463068323733475652832609384542140165308441734495793244827320710686236335141797676729148395027520695390074456800063700701546972575395125098454188154248770834194042552670344287256557197478107431937972647052312749407878902013609569534732748572799568367377712050866527461501864212647214412897878783084775605913992838804030794622731360707845399736744261480708887303880745144225929726267167204009286479085907123917050980897550766103184483257667253085579237309242266195588919984836218981366115904381775901581620680433583014640766349956845862640704438824739826239283522745892517715174086458062146941369394612530474372743769370420072570291521869842303402174198775568830782404671527555779696141357334476027597549221346119561001673426732806794960691458624568682294440408284825670324434687543257749497814514956249923042243460544606413997526711128036614390476937415549954447332152620358520363859287735841312567551464096903771329466406236641449402714589248552797319840671083494402779540977036696924645238315272684900536680151605836547668470904553904364210129810710459075602520501007660534813538281883797570885714200884549020256088202682175748526286862695066381700775776685371341105163529806418919069259295683628590162886452538409178845973956578201407197605050830899533130364211073784951870564671072264478034350497429945814531039552695762311637924989829386874226067492758563104762964761062563851293362696203548157507981391246065698390826331066002190701292071370257333434222248881565333250252841621054912195057611913850952892958647612948360756449446592801030135161124596525692465522511537636199124204596451869584586234343356406557487497175535801148668987213187433696391663362170078853296237282183243835544616027302307359968206944972822191692999669540217338477533695799389866822489686936818042427903669422448959417606473915912242031423664984362795008482744019654915376440208689225923648342332475154226657275764354457894374430961825930949543757384121754261281648471870734169551186376836583413794606937526929704366666539579240249214125684221131755669082283280314991776626173885850067215760097528136370228317885961463749620861176657830442790668907775742226459189893978620311144239585722504336401171449580030177936655413705039266905993355812978036313093359021225285699591461461217698971614042638924147630993159488864142526675066080958923346067721797678196729119350067627927292337083587308417167194405890986839738109380837242196481999557384468564860497484915400419613487554907238184193999579763214414701564886765271879339159130958694251331270776464048358704661159821259349299243156788182649032336036098107591094617158205012643493022531645072447227556356249294761128755360094892644391875350316909169059949503420260133503600252532990324356858412887796945118546296786999574446768373779424499851554530013348889913443561243883863720285899276311011766972590574719769459346593981257905476914062441538406323837264382678717318003647680417187569046471539868608867054055589104131926466994549587945902312506609800756001272111050322927426968113957063334777689203263257206020321913787069615063988854228228210348395943478993827437447579282365636880978137110737575765806299999062001232306610590820551625004736224089973709391600309737711844902785979999956742888308655004246269669566954221406357220516679017910065866470364540976987032982962269635188108694234374949270005771188421814910167932298302180999137143869378916921339154493623596523913008705953681451625519594207788428042573285743172601650058948740629100224003696756050909647020240667966894077940262290968172421340997791357322551148637483500400409136718964480640731297796090308610826636339210776594429756198237859481816204662192424827686487478104045377015773350772727397353862616166696086180933008299926265778071600639387311086259355592058207347928564911676269498940524252269719203208097728271804544711500078114336360015905829882079187623476718208655133167714991853059574103873912779733553237337706301131704789557666103322775721590740907124916093592674044120006958942481090265462361592358645962760530212544617096798524237096463973521166264766166758669885466021261688535087273130456055612549615548512627671993965446065288754758611301269075969515484129364621477969854133795597515939373428931548650093102374068793609320078253179337215720761587469329328308957420989066167434014560080401703722857466738671708165029545783390016389898763294249292453222840913664871266323510669482336006527055822201741032525840289145037433146629272135691818058987070321752397774366663820560387101737088320270407173762219259426351222219612994155262135948177037077504689909585873620562967319466456323886028169555554297175979337969696098977935152062938270383096352556168023610813822967062991319597886020343381369984886999062960645461345607593340851691134354227122165432787057375440084505885020301540979656125962123067940850989600506097013881352692435374748635517279249818576403969825215531517252481833203657102194161528931452197032826031358242418631106617427396734185152935173175869047473960648479175057026553377765560983260908909392499581869789197205606725134174563789224553798865879194368691573620916245460572601774786500555526075600984247303578344297009412387001020522104708429678020887495649997137671458951634780297005301926755486957399497585476675731594298260484602009315308921704431996675312611202870811843005009734647473510545664141928934269140329804741879350010164155131775882495659447861969661606931697181137820390002544905728165120026428190986976556930392660335304801724812544464573597702351376319308961211504921274050191451568984271767068734109992911447135398894673172516089497766192776537755492618009835013993186248754107611121922280460899256624305669168551906131044247977926466612528923890093236649474205725380208188131539268077278230899063211675890851750713596249704636981955579644943377466329968215380436406709132242979632628245455133656970218436309631030484148393047028079210387604222029460541245476475568089291117081682763646391295216262046270086914191023818472361054055329440637654967826183023847930317743991053356704805997790741051149519785099385434443324573486753799888137412497568162201172648541192018635360076125329821789458084273288263726925818453208414179076534094315016868428971253058864532142441594493481125448932564722502396231499310280556012077472066154986926900551263174473082022320346604565508340948705524967537078518442677041160650441507073864612237356355343121593332295195706718839182477621783913947176531032293326965740541392422760761333605095522566263863391317840001692027025107034823149672246695796561866408611166399455997888776160621195045288423068190915233867166693583088628497050591866722239123989649243107722623714419635240606435634161989680082242105875868643079827358404877033322332257495955839243673891989364623670222637791331884538558784936009386394437645619315690721722481240203987079995396634000497229190240842940388375916063876641095277779409547133169387386982983560751533938876977923209863215577760290130355508701660865894785233050135725868939991092112398878097259240652541322153286864373613864368063525946126985732576483491831459784508270368026675840635978857666954544757845063193774616073452490136891302179397752982238040946049367372953162408179720412655557164673266333124583505284149238184652426454244884844268536650453706897600955482314910623491986821182093449646170711628975696241185468430306605731378508302689668767455765782978379049628962426109511826915364092528903777439131080622407623048692769651938377517890078375100992133289246976011834643582740946113104501539918267742590308347204465558173920611343432323415228840307988948216698402880930886341583600133515417448605401936155679766596266612728568424617246527927568137823804689528576092918677298211744121324300403807576342749292097918303112381639894483383007744946338667545204773292471549155695711238273282523679242221785628290196812441133298093179210583218011542503719666047121214977435991485372142092963141723803833127602718158818394058515320934434497832768616007661978026683826546917009337895617466186704707753967229848353505149114632864405426733180071567156649794868807353098713313522551503906988951665641828365005072265749576134437549925619235154709250214736087010587039281610389119195370919842643089036246782452638934278613184783494880477098641750511350160136586788407479005127314346870379672117025132671848209182366741151518042571019010929117787790938856092580738799447658235096725443322084631937793989638256205197677168691138161195912862117192745649204000018738351336977093749095134900220486830080584239569113033609089529951561376649877716999862518319365908148225886098791370737468444060927228086237840413076724709082551579707185303912138206044633201857797473686043763091842849779855643003207844729522832165123026302999331205552276713769486129149727964038882828196964837744605842040596631157126145775113810007546467897176964120237604093385827848470289703760335126256043463013286062303207399534928557196819309817663534940251092976416784452342014393974589216582013858701696438132167625736624558421022179624731346325990635666139173284430710929117080128914894221834640973422436529712387306119528741485828049334880529247870304328488330634278787950683437316425496884025775039641010304660669121613438554227314034717020957656588410477347318595964747237046721580063487842117760161820480039505713708475203756680386953344998039353217638203970638961694500102634259919665580523481643478705684598429236290896558071038246801824316867532725929950691207266164661654439152357123861959844162849349482670777615395642707970143333115810551685653055820217287657883802777970060156869259257996594787809020869170900398548253599485768587134190471973109470541860110086954957509574202402671124014864926451619369103458213001651441192419579130535664404366534609459590464489553860599155880476961646051988292828440373806009169098244495732311326526756716479970220782660079654535265813566207399890168086784753862561079303990389842168803982886501051910048809051644224063463520669541106765520551703091522811405482279037131626986957764287802028009898210487429162769365809719478215423731049979783443267478972328064590251583985797461826941653032364120250764080553615408150828465435739949011337528549856049455720702476956392000569948405484207283678442403369406067280531638105902758428970185080038166053295998329951126779997942624854938079567296888301914439246729350743785142097828123849646749181215553203028517290516300107150953982534195576921186405034613780301915386208205809996062086094472156575284455294613440908510752598336943239284884628789890608748786097569006016061751421785477526589215966493231737619534149536609161097401283645178676268969799479473126636722230815798454865414075000085658452693871103576220211859989019493693356119221390608491650650227443550925929146058753178280495909473980394576717230136548960880265744932428420195650255986972549335641986555580114104320175426552014770704478437801909989060131821350862641062069763715422715176371434026243294426255547437308767301957928633432288252790252749016850936368488483316599421847223359311784829937940671129584660540433708187899314210110227930642956800793548943758021052562667377840218804287389817846952123127249515225279589502028593689941266931332158444226289937815097017625081798727535371823666608700854156566312740636736447876459817958377856202827324990648327328499255112940510858151819596465710322884347610574841072926109104179259075238512704757238549734995367967894882328343559674996889985653984432508948773785079557766452553242149921917258875569108933820999438667935792578493900589070959064629906493452425419744613404390223118719013792774700177760289582836459684978233016610161814380964640146878614739084085546359938435649895093077365627717576457833390169784620342191965596163060398540094376888748300771005212475985229669126474601487906077350601305439663854430453001504489831726492290482466168353692466839223341763525340154889767546654184733079704270430027955695813580203038841114025114432885187557991973592565425566973250747031906418147781063795563435073768255586111443409116685982112762960349132216406665200448592915038150587399845545757491074461744172261783512195369322285615849355247889959992572279350558439011273249907239815446071137842230675590617448830949794650075741561512493235503469226120171425586244066280564296362771187812504415486036109354979819223242463340685282463624328447539908478446271825172156221578200021232949117306752755128058921192421487593286810361786042584835264429653678440410949400942068128916496123811928481904574663200348783455467955243838145412873052538944605114331539169976235857985826321623707822081572931842654155627252335024313160123612082041526001523189844781145603159062788713994779807618497366511169252929637335894442287411915714633494791729749246382467047895879349579992728447686181105737647286827447338402049357368731965376770198476490990554286938757280784981592400244980076123902755193318641997077737073703675397264058254624069544811444357384579516533805686371568091647305411111279275621527550439206163433775745163190642289018040648466875043632826979948959935003018557244030992325613264500237243915256962518959801553528381349941825585075861776149015723974600178450368736804616612160260608337259779358186141022890454114112965645299374368983310477982723156782840291276059977814570474468474742069873277861662525202885143984173479379320840394158238397796418538095499012602667819485474103756679587552509554111355277837266364777653299133388329385061070139833258527866397285050152346259697543842724349530730919884081560072351907624187431298642899962442081632373911731747617892519371559489227737559607612280025214756307164858061243040807150817837443772364181726863912580778975200334385508567829862664672929496154683595086488005360874609182304820945460412815243355781917302233253173231033063302542763923792368526034394071865924182828847755030799726707532040601169004459727237899971070601804050402407056322389341510851123504876106207778688408015339836048746575738149048329497867180000053874189873177511296356419039403761570778137674235797319054928348905342373025920643804512057493387093540926636107741868426174464329511557699956510342228044271839274364508939153395077577071936308862211088702688460454770079727236271728536908673964349132385221041542660653030552655391738035084188822586611578478201108252946730567817104737104344354313658632730556150390175507148020202106101998513408723055905950742087915069477335428563299959483687118918677931167330452394774346246667736571578600159422758722349150699277173626476157884241260701548684125234686686104134562742939442903444816967172060855372386489144845983416987464626552427265317744949626981175432137626108502893377201736858759941929352524758682924313182593372600159869856324106063489329363547941106133034069372857635630680460769223624926743040233174905799545535533477105796378091387928750210733958002723374810078064905310170086773951730746182836652410740596131035826384638765160981052284523886887973682249678013137988208649408259470318649883705419271226515059031271193854924875693249939250698844697834844053151494322079208304456763361294762680887313537296971543209551258491513780823056871884660523679491030015636548121618231026650690450242024541441637406857214859224154879851557290497695745576067229605464136004312186638992229501752584018615254057254025843679622639435323016696769853665262583318592327787809765208998549833712437384980829295597361363403925680852777994465406044357275103203596912621851286143816661396667264386780050660785082164101117567795173432038988209199311152551996548623322387463431251781630722608227915660964219037094251345852948349059015115256427288884198603590377295784426461533600258431538206068055880335726275978137969978325270735710923517529174164412282605954686677501597418976995096686113366949143016102546174375058439502990028106228923772448417559609949598475645802415192984175897571459147272935795521637492002312344793009670286050449092515176415619710218858409230636524009179668216786968585036018939100098315990673047108282756172234127964640643633164352315623893225962701030168482051003837406191448436864432199768576459493217972002401972956777767262827785260291391813871849467604418454690163133323872392637417165538795688932336500156603401515781065938987828092916288969766909472905904258886606945644037876496074068743704043422923234574520859087932768891879579278246969886335853525680903098225901485850685938111235991222626673316959583173007624798309102137645380521536255337909956585063242082180266612825905655603426608291929672058902423543226620007037801707264680175039836606488282013363597545469509248324108307387302864647362406319734318545328681302290964761871023066614086976508102263266697445226109246436563022654691370981553492500616819422577131611092891182462072813415908253111014928963086665492645650522551073404351210079865789126826126289731336503482023822367782772382421398100211419399201016240686471094449468390608488610623922043134229483087788987541640783022566348877266232130253162619323020630151197278333384117419651128051843119679519263426322262844861488224385149352202167478499651490024947896006852645362261151463766795449942679910971237995069966396801681731628180992204349947474920805133507291659202742995717237596806979811014614445431264243813004643385462573959011745726294705834073942172999348816913409259881007389018683310951856738064461690690030979999693788287859744456733838024222001947239533464353372972583733402947397679994719961396110957400411789674171311203014667330986778081300483892371153284732846018392869964174092758420568026379356251659017042934914021310455413739876082450828973982647543770974553391472290315191204770287262881027096788146148875938340370438979943517460625829728321157312287645306567478407685307674861609229890447158815509008931843856608308284506271965644147543055151597148302965766115858930640643913374515358540025152306203960234587453965037840265084946093239424518063334930311544060970455580206720793717259701305851829343627413478975834749677102496182020224516119918632471716076795252262528303733591449746735764628571468477296960716359089339697198250708986944763103963252231463106684475273025472052015176076640858346987566910174819383433287807313276939377992917002475129981762423318283732617950675142644853942327671964714794675849544276249919016780808573511944155492080372085283550351380884927721783900142401191144041726888615786795505389014872246594545566961588391263497515096048767666172902956640130259669888035490738052879224608822011299844527351153083974424379311040168663028466562794452671412640983796314259458289997116321541021916547744934343180146364048670322607464726657969531846949592662802314038858916316284890465659589437472502965427322799509043704008358192912438226281655339205703828303319119208633885973938881960314919559316482734181197396923638513006886284148835286925039243010562266034579446915574633046885854471956603721801979413179606345234365712440965649444822797085754618642586885947676729543021833597811335435618449263345193719425867325400105380570215643735364381866662864465675335928481117310357768402057723351258050372732173673836623491050492647511466031995099824405656127777437461243874352266429970926285631827378891957515041554185495784240150533555368035929997372846173575876073628753061055254349426772895719004501554889147649307899374259211685411181220974014656088474301366292661518890113931365772700907154439577228285161631066853293386988118644563374188245482814124159626899033938626924862826268060223000796213722636987646798782685876671986021084457873930188219686326003729833292857021323061204452857031614655854077028024335464043974371145236514303200048956719400003241252905626354520825040806583249181557207836600115370039409173397810265165339996912902823527621716875915305424505270331566506146347854411592828575461270325322796445419356630408004430832092651636248649441993463970374590725384743526464681001912980049675461508955033986409761075839131075757035651806952627798542515571188136987126177045253684709425236833347572447598528645785760370882389037503051164640921685189724743089539956925893968376732333891520783516065612505258330312039221973186021480211914743066778023536231983129109277256959913713897886415468905620931202961858568644929626641797087311142133777289279086612352312457818013792389453401215015689788681985560815734847400751032247979268671434654422594228734114463125809402571148445748727930413263308076104305618671562585467575724675714240775828795926850482712675398842322330332029529500828670452417488617892431269268009343157735986387322295607357267295857922967780800071006207901110189711129342123060337270093490964879454770546355725310930576880165920083104933982224930271632714455978897754579476707000336096539878374459656201309984611557701628470468992326101603988373729887793188656758638453358004473730091279061698656980969689964063019641689044595255992724345512482128028161994143117252679876742553544914085091210676906895306973961863402809435998568011920903092982307101933206634371810850256676482849769684992614419041570685219196315348876039317781602216109575051650622561412938256479913337468312560145554944693172500135588737755132763845997291721679959534553274857281285965876295935752187867544471196519134907746465604014766667579112863463298818266066724748808394153029901572283261265734365918153312498485756909713873658532238105691639683614578800036693211015189504512371806002456608995933078950549163067513747461669901569342986178682510128852691466365247285029806006264750985700611738982675430082382581906753162845171257852039211822691125007537818950898317493376839670411641810522436022275616633148364101861022125770223760302740592090980468973471132028511550703235815113555626069982771540555686017341129579032590857902030030439506422963114362696822725827436772370543238227005793082587624091134637829572543931240237825600671479137414542864062527576033726047586264511947651446351437521839279914999676117699320506266774755688549025784960197150575845514572462756979876506475993982567587108248006618680406101080567445883879236279597884318811482576780269072428016451698407550732230270422325543422686120448017956029423526967475489986081034604472859171218054601276650759584538385923108169754530639131049383675750454993974815256589422569784692567509988012903378291819860844516916058116038928250370884937682827939219816505507159380348253817194763687628894056617173726392968288366127707137445862229846172807795574333560491274368273870442837178813668030584970331539500653843011112589287337967586867732242709198109993457219457243839541462868797362314586859396674594203866964719410523403116965629424485343580512262794566169042868296835177979091921611075813650811729813963132811206733407243869809398345597847562020889746017815209662907775780932290727541594111245417794233118254060534154534687963139718523145811805758356035708138575725485519091127244374433453036828384438239979745917467928821092069558346212972463743307390276271145748132086560907074399640587476412678675705674312793801965214072704802399355012205182079547855889619444471526316424545539755096067233870664654976023353382673142273370678153655718918312857251980251689698124876289402662777355014305062648621294166604555480808544479981860321542964888229545191310552114638546196557546349209042659318566573706678484921389394689454777625493217058946017887155474293059705100629677979761009060283526784633134427369345070153682461401949908401278922040681666700131922240237130405736122304181349459667407804087364469913391454125327389471640069384908711755770829907974479066783290559260080333745038866671124323251350652726835125174397537507479637670189381342689853111005823186756138989766853344463770381554954639436833492537815545433563197806268037580813444967469473982776177656986078418261774435804223271618439329196949120101366488624861741957469620148707398021380165701714156609896629266699331515331746616494656166222000664533009064793911685386515560739114844303539817284123315028668481409806857411863753982788142245509060776883113968367511026493611938919291273755412018310802660099851921821999648464171905877902344625637367888093794680900628327176042614038156530364864470231281459778093958964475367681514417208209685840294277762747332963146776544132974759824757669730941081496490206602527217540582082060539191652109106441265484136290443162874692757336962248062517427511071583814697868578806794797186404069537731058768110881146291882188681024947946347340542937975829340489275324301136659903611387512848624593756870367531757751070419069397426632734641166770945572825023346412655346419117594919574780529007610710511813526749123020505981013279659139962241316718338788332578323744381331821952260224527603164932169728349581688164756403472909297471193137837556042819778514418778630177541081459005856059880096305475172901715816676579196974957312399450332215268746224193184323761698123491700222588920675785137567096304492611482247019471245995906316380827981956172582209388803160389296343989522009403993361475339298699586165797124079929862737890747437174811179172067664562870882708272980688025490224853194633898395356990967433966378510730675277004205717810865959592924822531039865169222029456682228035350784988117139489807078409743582363206804960707190788265169585042082590509307743381506595118740293540052978606540957637049853836029503677925903714987745532341681059346165362576867692442302003856487172343467676870120730377972700449709995317063627448669915692092725128192473214772900242651285384774589105592198612398808586710385813235392705702489829270955565048390478219827797918983878915896984430968162969326529224739987262521410797839824325097566456702524967769577779616720076981834136653333298936244413694567702106318089797816771862711619467870538965420448883924032977621540079725046031361718452756319592340824978895500996172205269115627626956966068639477037118574020896138668193197002440615821343410858880785810562643283495151686463196703964926713555982670902873564160015515526859017369910458944414335334352032431849070305611057622281070621074085015925143925719274523813726821210971035841563733697748891122691166416752758349178002451825101234301587029188061658355069952990862434226457766840002803267416692397711253927949184865093536890063022060759903948648113920130473645825085004745337041403562279691120811362460734756316585341246580830607439231021995375009751465063035015183531576259750452899842746082989981430327217010129808230400514215089631533485510450732718267404827799839370851742026690445110439948571138480161180785887079688851701328470462161191876747429630251322593233611857466022250788296665549143864430650752177999169784820613242868602307234048021934895100697955541718130601708389847585750416474402703169418857231685286187816698051893321223400099636715915088725960251028254468982507006906566100548531048718710103559209593783230562679742271640998736676982612966137419119356895621562916041652142519388843879130995652205445798580266913067371542432229681918941907506230967631411261418882370658163334557532295296532582593874458589248012207119131553867407353816466137412802925861643632788037049068847335706838173277607514711792102654268035448634257504042195908593214615240264915999749872449273928302094191930523723720602280407732884869257171089029963805869437833930527419082940014908199636585535200966607445210231091960186340186292509635163673126632650236679277066145895468343809541887512182646496339433038986898771480510734616333895548689303583006962755321357250082085748719278370718390538848607080341781707423793470179712702210175944112998685882776497632692205757464349545655996005069993102436616818459173994908833086169193926963284061066773860457968330721051380288451214800157569684562575087160548426589351761895876900776925849594435957401348461128380804268094498540774007782639040986491902704854769202402496615733987268910181775008250722242368425716348751170887199805129284228626879908595786898989764581995450709446099131686617037002925016745618715252232768692681394944780751811161248860986109852071172053622773273319996050371462645566939781774043428874513406699569557314424846692621738543175739244823408955862653791891909010679622510994453264404005599159476129302530517878161263878005168431925992537499125631902965676123854111536388989338203583597175419998526709218452698175325783139535944884363448953775852749833853558089414685105823359691794935276773567198247538388958888158571784407289735374781748912760232256976396953651974153394837105970745483454522756996215959954938718163033771913539424614426290354335299943074791960398048551213463903387088216355530271505431181972864460852075015321890743821368394475286030567657507583408398435772048013209492991229390932978035288643726686145578278354387197057429969864904595091322291957109180793073011054053149251944365817786397733848161336324351748585063426343975465608690902138186455975228633980911581827286862814257189243115690272705128199754417127349338280276752747599212468821136045673084243614515677762902230758368878067996787494460781868049003547578170335714914753805008038043185497691241984349170930724470279757827135976049306722556532102763494634489721557662065009693278442045139219496720201931674177737868300411789515563871600167349018729147694416516868069529179168957011493564441828664518258225733003300515980282515119974412311951570013348205288311344281137603496759160992420147173739783166323456247304242402503998996222814780805855527241642428059704310227538141815373042546910962744623729129023315419106267321946420079133766736947877598178649782525679442516597542866374954384643465322460724651291094332440913652721825307823072187966978814109551438828724919386841202848472685461754767142668759089458471198562484002643375344357440696632336799077297750864872717911755094613647485293677218019193182450894957637493341995180618483430404779439265580720302638111840446837629293809609288202058598170852733071163529092624958638101658585439924298382859334353137292389424805651621408986083988266033897406003637102286938539164890562706345571507181275640353501563939541292807675635254784423360806371916509882639134829178454263865768218731863081216816338025507278974302186082854363368277322830672184337868925226307339088569903771256654117892274623601466119492003229116855358938049891879205236135770001918505558401913361811949989396809411136218061745084560935902349261174901759715149187850351095231614046321599259193999272375610525534538692104021031294801437440822946326282665756809916802177958702215315960898834659331116102271506831409614913249496066631573736100676854653441632094127288473363289485698492439347945495786700589064846673254584858289634155320030292253863317549725001437697374753355596844254024162834330637107525892643663796479672987728201663045064106112330486335616966654259249686053763140527688969460386182774395119996668422322171690003078831520136843604785209315759022009765211500098328311190582523661610329665275659995470425881881010759457202615413263347948131273694112892443652269054104498610821132950773203527855747145137525418229640382174141084916476195134325837311608521134617725796186503600088024874193981871643772894398345382075034464104590143264766923055938868499888776078383904297159025523116652759387889947865204373750916493473326319230648869833498278305245493395552521448253947777417302442025862568305342023117536591140013436025645191226480066506937468773039846834434724613542854714119984029362492864616534931082277688769867259220883247307410592499022226804999629794032184622191476871404731434333825521282131532251782376866297508839356413404412535434332475547046444871866085575875243555795517430695540947902442224512094992617566954759754360655698133851671700635274839816114942346136060484175064091006574551530762116012964170639562489736341518683617810975042848006702606279539280328776902639806701665263061897336855760949290903402353056108754641988791492509886077378447364618222084131321522784390048040602506138129810917610913228094298816992395746006697305074785903344676593545476236492006079404139666644801570090292026188480297155561337494087113097431961427252821529641549415366187681706299515898520638496281145136951456588372103707261781423699968711083984302446092952815913848180951943641124028712621078160843209425111158217242418312102524196891246520621264584765904269882451870822142853215631795544450379305928611144317163824735317776424118489349529803655064157841662632985031358165227621382119400815795434253484624355662811614012608822761871410702877698888951365453920820252935403101722595600184076037315754555269800576989808656070318405989127811968559054857958836677956669092397698054669899234735118317879099473882750521671681736703109968746322896130250667101043962697044756909563321627617449595930577534888691795316048725783073630476773548256466896044423136157248777491093824713660227645745675435377209640320852957718456221527615159282982128034644245874185676435597090046667943864633285420578063255662658791935352927854798845381987268609785154928626397761769183860786945470302620318707731076259258784451036997510985059477652608712058535315344412127524344052707512694611490146119958643122856389642661835919681331481267037393832756135411117303662778518014569289113729582788213957118378348248831304336237225270969990197640673452609950251859852018911206231514744632343103857889029851512087188729077339935553446649539784090348189071723774697327234936064957847065160450675019310468764628379883552804338582945194566491995138461750181838262310249209366932770030961652763960903142303879960771433184833767783531867242655996728271941131470275469156334982921426903221144385767407739927527682396589987825686598106451750701549575368953965153925415986721172311309226497967845036970805831715640909207743745202026481504355580435457531465478810279053885085339694427846752438118487580863382765218215816992616180213948602582292113277430363115827242662448154931221582355807254292712890446531680691849159978944645433487430412666813705194042468595311718612273386461836515110683437579037533016869640274917593612490646411206171451026979360725473322033227043137676107868636504872762903174059087610509575511157630195687049390584425677188348746679095925311669713472352718749236678871606210924380007637996773712550652534249176722059305303901901880513461050304285873146052881495785199848736190970679461111257964921256039218543252427334267200315567717134825859986090629459299985725112535413505360085963312021175798418081397705606738920831003576600225363416633837519125231911571336958616504566406871806786550885885994525251525548690745416523344355942910424469774664725908235913661598013751636315399984206879228159748502150164129813573368710027704971333722929546933227059547626588218747520652106216055823719895120363269672296520915600709642362463125447293212947757831630574775751464531147424968021934128350558879176749744843660678460798151925471167942945072594426342838562397446526802201523808522697612021377800671551368307798807913536604384501941947349063979912728695182328607537264030030774363674398148741280726789676757714599464925694111822214402458020047595267099980538709616681384817250159799646697156863580873462776288221010561404909690848726562167105963605488672076964099345698473650682458145167972731519019289849825046040213928065263272588371063368750707501328532284870571653614296992981861874624641622886450369315981318275993775506080229068697264164782027126730914679143479185166680611367400396234978559424910083908327985781095847743374050875730709211534609211017889139107538423740777732081172456873816030903999631110161810513172969929640881930262926555262078197526941208371879931826647935907502878949636737577052402517212220841971631910261042665830099440105469993601527058862500418346368718978444504735884326226287999734286524942831251078395260445161955623439969256054265048926813498415243667709172833488400858589995797660532607320419249042865012339681617706938061279751122249751315244966373876135992706721356957577611359517999090801458382494421936156405359216043634408864187159099217903609217335503558047140793828987818992303608478501847509060529575841185246758569963249433620464440030680296354865018581221058117470523420229101227564085851940552598887640942613851682984779546862952211142232306987908184485126802311234668420137703655153152875045168638472556006536580184111643059335374395798177196642733268285515410499933700789208186127444709090223959071180988176102124659443252135474441662041607595255731741796622836790217507205230074321621532505641639663518024849369256919670261628857217057863335122888168143053162242509018401388348606282772314767833834583320525407586914531380154254076076352720530542288810080363844141504290564082315035965445375803452878116372144379428473923224632818903845542857414271046408515882237913262756106802098051592170089178832592713909089712348764298081485014595031535533855099009443785574418643233806649204898786586805949743016042811384764201267755153129653621327170459769697040611209380746321198298736487137299536650387837291267038179215214968405580583473837654230964234905735927179924705542744831390969493053868612173981086305270908018314122580750300723140961362553370870760450941206597124568792760819274517255115478883996238307255422923080606731115066464777309690043546307789678041567979644908541444043378219649997426160041389275638604225676053396726364437925195209059589119453538059485273760424193583683443903352732200624663122639525478510160876910777757791666209601334440143099699865653262930425666717299933929728417098487995247195791996784443228856855156902198983368091710204109279963780377967512468223497915826479166270836380090970410570471182288596051690710526122870161524465893587645846692598247814976310402095978651475734519842745398330533394312598967157384996341411601742476722184615689908496523736130230001590452618941386422282393860594001335436884782861946599802065355516067326812410784804410134599692372015097312406939080221743060845084152477500580920702694323791567594693443242969367371647372628451373684680986772934487919205234296647517410034611472931271693092994682545017105223902834045378262206211857242085453081368675114232401566810595885727095333280397993897372335824406671291268052098213805319293442206131721914108061248056833251727677818277594306760716218386187059062562317819281563443647209719707396205168823097707525633354801436854112797740423164238877075303669301937365460987222872013597197997470676455578373258019301285556185880928463415343910008101149982865130362300414449716214102176438709031664356244476550076371169334138392108806948652454375710725627084272334132099460683850350972287890403896511691039628910783583420174681623438106844102329411424981866128885385421448759209522146946453432739848795357973482823068214646638430189217106552326003680615391161689059748717148098342135385020486862434077673829356532525346899763364498467947316699730668831687176464165631597898156261480085801223377730312660849453214792333795394688371247018848283103704950083897943537271420276989983046227573978003604939926815456487436051791802551973229131159677316404138442983912018067961029410911806290788869096845906452599642537985980643695600102957674810964072041379960775536456924872783814194137584402876993811627550973100475486501367693643971071795138928748089581634231910357667101116293309516685050484197684455795440157377167704271801965483044812014365223306707247899694726447640733307010897771858370013406478312329597832342391535137719401339375088858698698996108987788704301984060447489010026609924415988384891910691601050563004750008343562285963171778911373011452076558305369031134530076074843304083376205287534735367751308989935057210364930728860719170830860906763543896213071016489422962954087391294124052459940585714919617813650107207550468291514584614710499919292523082511499320842439605139226870781014757444486444192788810800008347742256248326752680825455972876972915363856285751968365724048421745445541726490720072902266052348675168833804730275087342288032600536584131903591060540120775713398498143011110650717420472681299046363368045426118342902570165178717095542211880543946573506209593196994585488068937078361376559692283261201694240432891602169523774276085439685990150758751312256198234393522770963576451367887879098242602175826156691257058527493752402901788779387110715166501047751007595436791987127828773703843121497133052485818216234245308706672749955595515271931870066030327238769989801641564234792267397886717715015425408541526147624052970102208696456145158355148246090697178556155883749944735332203125401076385448627177184709461251295550249565563220346011139084138556007380387698278651698228403744371008929551999048207544343607189801065582484335005141451561587571741875487637575508050728945647965011810776449915723374504348111135665288787224371191387743954133244507952349557430691167628419917065823571885557557004481396472008931982135550396018216706928579477702482527861057295484118457978022891254085053700348760003860489214067777761799904304050342615918123328107839988638426406145637364469731385313117509501320468872937011997382517273667152165016343070382830763208024176344071475003451745562544702090334749579623416922828492890920214024682628925604617241516371693883531077335854510601528451832718108041574403510717571180321917603387516963215832701960188833376365418675996078806811244584751820318045447591809444616341128820297860215189678096399849883411096366479129122020409101693428704523408486712413284394755265388056961645332391849989250830834911670311279484682251887066855235983815344728519029449948475955921607532251950043332482529365872346169230694870357409722508361531261878688984491111525971855794381435275349701926834826865132736156597015576886669511217060528733326006144917486035032823270745095278457194430873874368189747783901023630040095840016214353572256751875457462701929180201748199664593028426937403378694764195787492896857831145247442946526480205558610774184934575649048784238584100395981468225190336854259935216777952949002095820181003847516060891046607743254351236302822022507259279891344817016563773891703402617790915037284055728912661805608666304060967689699717438020540418497963752218299490116871112241539502499054693196150222815707271419324116989469750257620910466107741066014638914004960375387335187790350517410352195176529349453468754121553735949547555688203073207420179225373509979699053451003962375497742896549488362778806498334100055928009220889722431963685973627921492621871474061383414408027808893599929004512589624965301857756638452041148184927924777255913411209058167997071487627203985506063350361622936055838074421158545978888045064802676793172822599890935606426781380567907413993098660710348336312978869372931368920548392115486944641176884222255129620409924817834525901195884152661850975399543835982621494460817330681696764469715690934275292030770205084245626061655735017747776499216744810619904998070575758488015216196283173250082894169726853632851740951035048900471823476077062457350401198140553656442180440248292392745466131327508948566200057315817276566238649459743751616320796652274493599216088857008026462956314693208978965698963998388425392390534577762064159509526297899714482695601003737165729836656368529306187022526631334621772872478551549498760439420004349325221854077088122873445468406558889171355449660736239923467156312313234204003484561394157363144559613305951203920676000654178313665855336172041050464195035379418524358747190466376170366997191467289981538011013486588667517673994756078474048084929768326429184505486420115679450076506196545333258960375625074576467286554059159996885192805298593453187748443112736551086876116802563433825757010017348302489088895887641403890124487446754307457540733711755993189428054544265625681993947858052837955978349009906539198812062083510550455750347977312825465634981367999130236025335375188040413309321537765704832875179706729504125086484374682895776727990586787772601100787931628094015824222691837457655503725322204789002358432113085361175470139668026061039098002070863564702283449435222051400370623312950753549107275388059387754690711799142709429100139006139352367149422832465474683588164930849602819497913980489968874455043017520722639761054820689388599644422110802182715480418536498375652004450163567596401164681107324231245574052528992568660450832439807478868177681664299376376538880366521637711424426270175802489589039956260709070282060345389958205080905815926188880743002704338516114554720869313101545365502564310627209559359471428848994865159130018648703311550196573252973718540749823397009063229728351440211486847088703619645085787106689547086637336323789719952746914928668554752482555902747293923349692128502541368355889246307872690348827375258812807774854616366043390953853098871446447455491384217323865649260960860789006639587583399820089026799694074090804485686142714473330687646229354142972471809790226269508309875007103909750292866752386358928555255927881681545916530924919140217826167728274024436717592774923008752092263920851662323780985095463388786188141031574443898478688048447190257912857093126175860310821060213767969677025514770625955751823856133894343725696978164323817725130353535416980038246711008039494501729258567086241218943455641054448642200796734915251910537752224460400334772823370083816415951562015189087496852868875709185997393474112987590239973455852765969151365120528835267528080588019133252082852677956319472105759124821307492093417302998091190419637281857014052440164659407461806501899797751666682505413420920986613682786413784978201157188904746788476600321675966821765708703404972269164282030430303411542685170044685263883252142946889142726772322220658048391797226891158214835151037676209495844607623276828964114157368537220412471499575848180844498041972271728565680844364413928201671816264702409457727170926360525069080875686196520227701378602128536770066294277975270281677867465241938553255604034841884425944421541274406158009857182112300095870688352114775613808681520693962724239965362989945756519711953205973932829043013326086782354881802695573336397052848205569085461547671690546736606418914590379973306870201151247669326705668751651003416987851703083441941675675957562696911005834634669728032492123390759776739835864192406803839822648095414990801362473594463625082573084887832098676827586482037512713101390493980038399209502136453958265323373140557333909782036863529203270748298771377569191570959636116356759167319244360303671994306395069607173673703973838740291944528737155520231572863392810465348785018555578796032659880908003551573709961743495679141955320173175015579293699294237489070527755289807491072872206108460200077850551890872513035060390694837973106798073801424829129046466989895510540581279044107557369929403727275142389541964006110896950986989419692448298070140263561691910888743971505069699744397976919021041079972904714672803365734978982420365949757360190269625557506379447762035123225439345371256168638288355598311200333555294388478243340704205929855066357942521876789159262640317580002865871605138815952462558468058199092175550996883126364733343090852765882065375705211789772486743745746425360027256812584110640100376154163522920139214131549439422706947002537663557208953952695787687754609083861415855284779279554681175355498096646644579696597893550303251608332520197189160705998337344126517221116240964691337915325870818428519807803890961121819871430528738750137357314956576328605973598825486538335612913935957789132338395110315993714349513927236483870937294761008396934303786447918444941278669759339101465570877889662562780845818744572770843422983876006724573866224035562774790780528719363084272927239669746591277908394222298929216032240485464456341007937132828663813579871653919054947139595087572646772013040492431644001936014170017480277913134478704908344422095769106940599052838009696915269799238219750955008227194980644374534498807042144708052245662227412245702495005969272721069075864045408498496025427683131964086390585524660099920948749337785803991673572931364242172739876225066836032222979785164189036527465756321667446403680328418579479598668273790862571643534793887112486771161787779358898177402037758051892130246757781775553000414884412295403736145023434251365618087894226294037679869909346044231156604671571786595996614807453448926227828405129855506927486554381518560746332400522258843784906869069482375633518285467311591824202082808543942529377214145094265324021972102973321473868889056106341735758752079528290258222173698512324786081300965449397670159006944564008510494246663355461190144101139399204407527976937851221599774954345965149589895248733937079127386151988025323293781691474112326243763347843451558736161245239195778535692093649667893680150306142764719189491075084015585330304884645325202105376757213272583143746655115870703071821857221492155411453811851024195082942897605530857401685980293256324180144049300186961157479956305656353428427278316757867922556139691471588547214079357169264036301186681346962362338370297277055580345061674894259700382764465007850274449042819135090145950794985583029399218272074014758427585574555003305004572233589190965567181220270925058832060227694638287671718259795057199735105404117475363682042035975011798540001655072839867493957145283661163818308449452124042519325024197068595160470032431080266986202815761778382788474048309249437772854818275073912312043880671937141572962942678679917143592939067307053594220980406647300494777525220635144129182595218909602805423834410178985476904512151684415366391111741900253334246179926326486281413365736379882338998257376077809338494169560926113378077640249727925070838495403584199023698732900177819932455288083825464403596396951327256725808981236707243266977181986364924659910834254393183765489583568000184814065639588402587759388318029941499686311220596237824088196223760084542266289214744154789997145796687907567727172913241039770454940040926513122881601710817849049866838711932888713782386639266760401548612112787261877286961190792410296394176680419912139898680315199667023596730015034174415899617705044974748664298397037063018962097595771528305568181126288136502299515551163189416263027350319154418965745493710154724429041241951282567650368527838521347879066074118686984769441158897733329072685053382035943581480985735621413823351686846529041700188416300002758620254506462399460895856581526237065427425451294456530785533281697923580767650535698831838896918401187451767278250826435857908036271982774252563795228840260098110726638403135269279962751121791800901254703583017205711259695796317197115237828126116330860688322459214846999443789122161723610440916962844127506422255865434512094761994736683868576354039113610645122077574284817225527734621713823748669505321107516053083515489069115903633939529966469158604519371337446191211379909660177706896345685185331938429438161469796633316352793375471612380522422065980274412179198141182293417898284980943341119148602224150981155415118726532429091413107288005887370143066877658864844256036299010189834363677456290019570004123701399819818309068713060199379093405052793650626494009767705914883791895065820332578603004033285489147464669085308553988080241929766196069655075239623928596555558352928199736836138721106620117584014277375174161067563032446944589149809324791557973042361185562592015389777435518578652323433203218894594405805722392854993873036028360019785947208638888848094199049986941467758486084881303342942055936386315630539239373422372106125389871128694301288904564317661297871082449178070091014948908977938995252020039729797256030564286960999017206559996729232535060850360092768966076354075116186927218044115868862880177963972403997758054786312706143215165609977332918254037545696154623143165541234691699775902796209438517867632421566773453539008010713721735608105030557817483768120059877317164399550318839976061297017633324943258593540293429812158544555989573573164632170992119301141396164912251147051117087317825484151173350605125647628457239222091585570053947362962271073335143941480463779432545976957203101241007303848355890463954418684913709104500006660004182227636255503982399937206376781166312629385458115828785522280471828373990760935142525322858755443281617440418371544936539346846480400479069833822204978700696807871016281636897591646285759670599890859649183633954324694000121906469666919162790915274442297968441283224125746891728574693734486758190069291442109080034884289497493708398921565400851533843722466165792786444666276647724464932737536977969173064911785620494457538659905269132016640889816449406845137506943535178836091818588863404414342317703447915520929576625415368160045111227510154524368948862990451451934754343577756195286345161646177829721172054551471020682622418383279512025431374358132921354876903711967965989768516476299751359080479890827726596631757771223906687671281856673494090952910798785679535287395408088768465979414954870294205523016080979647526678715884606258812062299687452885960688710811962675987251620619353533757603543454841527296908164767237044518662579024615571756192515534151333928383737261932817054764988776808779384764750963459630915503256859181693202026732898453393515076479862196568090209643069059093657950769255757349353838351630371683734487156579251040560012466548808691257784171082521606234750136772161105911296140899519347040843397984210112537717375252439114775528851673816865239410756201959497092891272841036866265389190482513662384692480297713266378961142477101544020474956328050993695055887190861310348408413135983059906684565182335051580974628335913926551101662690563440077811981244724757284103707938561183161361725544382012670301109141065474388790451774307477763489697914937249694650144803963475107873470774081600593775416740347989338768266041815333682120123588218349383711889962187381758752146064511206615138601646409504767328363054980946704702441830943713579249584797752114781165179976407189613442468242897598322240451732210239230594103847960107536691009214473842848546409200360867863458098976398974456787698223233365757780338461150545621196145834414687982589845868625945495657447366645152688469381412428389727830577141626330260278365446282819643558903363843118292487869658963680199056515521421923715946892211497905582338642473224373438541444003074570754995489436588608396716660265346528962937926063484645500631293262922913232906459936313239631870243155828630473245469925377576121133026397399949757249453767620321968610737842057589265999427706741964010097441374384840895502129986404374239343346089653226132479164928624195855926985376704118618154599612851790295088231471025309426668877988372968676647335365155006015252087904400902566163267619296291631884854759106941500539506450920953829145789256704014353647767308969947248880308528992723289156806347973528288554524737938786252439033794118525947626122130172069007013506307440867961438522765527133313491900793592959506726875609747332377210000562836419811260544701255191415599963124873039314457857824898241732919139504849620059234983952241242664884940279469827293234076503825769707372200262058714902903283798188459916167381991752369892342092159893351816503742445567361419154626681610622108301952769952839695599346376036341426104179315133683008810493619891535985718592277015491837398100646861146404736626943807491299465929919235995634390206026244817992494213297579044450878092770722038251898562040734787610557413527237194605460257876802244608346971696448264450337301725778465181882004306605161358977179398187430750233571946927995738283253550249271112036099140977228601050875764365095017453195683029822675495612737863151598578437754168892012937686982680603809921157202011133411663837336679006805389014625508915779291050635807637631704006004163813237565444572025631224942842389863922660481199315501652162666635231769711000395701496433796049102587471109375299430261704333788957104266144995988598074749238596651663110268684807372121295804691034126161019193299796389352085124199718688569119026819473609440983114938303731788704199655477659615543729217136634307768746599188214689897685619130864574537361298486007188970977880250461140488833913341641574691135689061429244529370819596470737790300632122318276013447540223188286456248339944606608543184737920543984916589696800838601096282175056111647394443299863329904322365849931388667056906197350300848303792508594085888140174076346568372929044554019379176268586497334717088367708058727571604627427272646633086179082570172551953497103339829095836634747702894961135612632757784485531421789775294843285298648380661213792942001001029449439922523084320120753672338854625003492365014311439743526983586844991759266507384270073640740541548843427463019046848408517315367043207085136943084092117164001258862217043792887412800400147484634029189091050788542071353403668080676731417770136182360242033274126159177441370719752726622092323660858208239698893294181039695104553070418046040143940694166731895400323693979214849374934459222987697295503669606353980057337156196402101554111907536427239486813521173013939037818126175247780024350693848214829575058704869130109852011511399846136317925837585412309570579034004005303625572273559796436168365886985763576349035970919208083081132927204303474180734240203797694575821645661987659764190188478906454004465816614359278511887211025297907132945372456131276320040754960789562216104064398591276375502013758732375668322370356181180420542192076966848343133506787791911634639122524124305738850940882458891466706673369207043952137438449584693280906970795249806654318722626186615284619661876566467051895717589353757739353662041358482988760236100902609022982274150902045898155032852146872157940339675846358772383913166483368775437607267728667558850775404745094810489402716050875894004248555837386398251627169115664786702133048403784994475051156876249092436342442079025785386399124715096868913257355797438360515830837778043168911772415986529700915227878575065260268120670605295482234941054085366127903691617475447832097360424666212722450862473196286427098663522635372288259527130342414734260377092451705572663720593938007272130974395921286098708413466222078263143982453835915117743939540743276979122065678996462892479752348493180082292700288611874426464633459295029982576681082950099991216508579357336940265951498413430758035965643459171374155435270782770253536101353594545045078851003651412001445820072866898517858199723768745921220755747408982944819593848997194073722830537359494745107256753082796405976832491790169122491809487728675711858051872686838197219241447019369569678759139902236638547083236126575376343638624052986585937474644168806437159899266875646251041608111122752234276373803915785269466445761860708996388546600114266079242247568327309444452702139307981517842962253651897641914933153601554559437346771068589255364706059288943379451454233517178936298721401675577965679340176090611337526384778791608784812551912805945011790069633356240755358304931470279199802562593975158033091039730029202807878035351149260139611441974843692098200894606267784371820079307775211074507562446328604226697596180715298490899020220552058197993673936944164790831297743343106912926110068344724519547544994348532926000183434504204216374723719626994734903649535499532427739191195344473504993342315173375083786059574359424890941262564034540384413361161099373107780330725657738421417150901674798890481084681930001073070853797978363125927542559000991883996784608827570618797761101154363463469407194542372440667215811322186736117478801237790693518776938159751720143505762614384725993962250350823424264461213694249604082616794801454381530364930510094314534033716975082630280085574675248634226623732675026716849766146866421290096296911674621958164413253420822903684053321027137732406448141248129256683513977829565363941064597775491181664168946658496135840842962180979322965839865659943292044418859223731127291122557475076645541742820100263144504455332590490989721551829417278797933364458202191896160605773576331965147593023186991190070244629902749596776169159598265097940296214162821559819670475117818650519535765916871773767605644967156285918999989201977276944672161732000941840587564493774722882920891295750150771719197858009584608231375551306979912854499238217639120467159052188891488714375356051284991157018031870120258020330425841396441715878243899004112304140832682939446573505879095513017608143471297921939298646187762367464507474900456603906831585830205233044379429712420322931098676125166719982734576498150229696304158840974149490302096270268319442176472881043472434628887422569142257162768753928429967993824468690560704185258712030306969601031396656879875810050140501022491331777316293975867334270537827141247792682559701098519995847486460831255101775868053925905585771818123599896543612224585854512859623063988939970172473764070977305802678623188976172231588928666673727308548825489701107521664018972893986500634261726665399359507238803451243647351267645262885601913118000155247598981466556004755712066706980269785184891157586362328119656165875917454357656774113174756284919754795975103555031925314366816217348671774453026367268127791375803690791571981741221732224137375455649963898474128704209878949656335375243205020988224254944774464424286035570211233981435562283077853153722945750644661862451014591839688402535459976580928953127148088262674384065714824244111786051469018117465055158736007161442019721952784373670181639420363947643728055150678772019741072488357361875647702237516611053029732830226168547024574857416482454373307144901640237971042667811741989254183701295461644167706823490424380228074973171135640000758334261392014200004078574757894355312161448103138854648023034590544799452610449576296402981146185925354963488871358679559290042450336562403294041720565374577086767940103088325298749362111123293037966522983492349619826324082360125520954700120626375415417294028782807007588593203341539963816239725616047778644264948505631347510045902288157190172466025425160030480470533694331049009195945044572093192039321154426526632100320355905934512097481521670447010157281430196619935708688080143965785390209429710032200428896482397757774829360808616676238093884120895379227047868998839639332382424249712119356886690271840376028693483563961854505603261625517961211637670305498950935363148842350353345782368180927275627493971529992914040146908604890588138551883627817127596339348694994739115284227924666619660790582703771276381467675256834001300846513949879741573882836855458646299141939920237765647513391958178223563497413469838582041039552395851930132535608729935844478764416026069437194344993865580946617934240127632669755634889491459983042323770393370577544290553490004919699569102468146877134627374848338832008770048571607230513906174104786178239385778869609898274263770779311654108537536065150297802433871408894639591522334503116782023495689012359684456467874930934477975744277897145544607263973440786523299675382564699526850266251147412413223698231772215817837457492604794575447938474715799836605806068485742824512051045371897252016453593949321757236636340859789749279157579051935126561389168457384854652357198558145247616710709860220525306954421331352493324738303155605126774328141725068568132876238402897893510409856756264116973317871457241267976040662473345120845156056571624580223010650980585783973058963247440079763330361109095019567065645968076305776899160560967333824289631995042004980182900788754006408271918223268379883744581142905376577946384194061179900360026618107232518552879825203024069581032882378138977774089316345415421325998663267054556266889198382495689193660998813302011758795600737294278151648463373562789179182303264175496050750595608585251345166869774503749532847476973411621737819449476381542136751223277793585999999748185185164568299708907892197576269642491626271440366749551531704193858178640956567133258530236705594734997037264145842888143385719068975030684850310456844547207771777173640557937784846079504480790758081908402869228674412392804304285808845894650008233867409054512079734649818861710544794566618621479298881209459121247112706427188854234801500935249913876580469129910295560929733794643645721688366610569309917444801802912079266809723349431054683836544536351300510678796392098895161175774143463239594704978161642070891089890995090613063003758605443645578937847944497516367573186220996782513288630301336733901736869355040863019226255661009274449822338020866125150616451883378783023325439657617214758935725045550921724192123295657275736765831247903970844062979553392530398148697876546001999972948804383566874605482481065660319282216826005580450172068141126998337686036841395025315736250208507275714052677781646154046264269985185791293792932830157302764085343834695246366527486042656094492279076605198344555831834285103841497497113536381296093284343781179651948536272875867444100819372826031582187672568859316396353468919955846407958156402938353927590384502187521173885924045979532726561978161672094730249388212928787930748771900922036706856379132882400562106743359180876679623622388353930511863837886856485020633441430312722714570591467077184397203485946846608168189281640606544928635142877889799473474485553734247963242059451026871427461884085274206709824329548351114358588091209003809352624947455859362026470561546722746173095643610845848061588988551131269464286489505317635516583086146305592118236733368853623861173064516796629764961972946785777999374414852294052895734168574076288415398600878524867479851901992383206958595931277949950313157978572051503942510830442435242665707341868804302419678555911767304266716274214448872917240617025196181968091573273651248264711753246195966513228153465150460445228659666162500298403343674015987962596749897593102131551347277311484340189819378691525081376852686044852531258139187490566039793057854570830259157259262958110612726039597810420290421348395654255597399501927231669217047898032666176191827406130343042600837519909203204666921991515578634221063529963670732786697529232646686008243300832925972297055297206335711106123688247529174326839633804577999041966183005957282336859474114886422088174671052865299524767618472670177388807444157220557702211146853505490221733470067313694477173881256327844406074558520804956361965707151634191837984723807653434247172582222558665688798167753340325594931456700709392140657363860556470037389421773463946027521278239113149528862549277131315700616455562023629617413338321724522306840711730590686151593199327628473717433049920941784758783250224092983111777803957496124085845950155741735253770721581489620242863719353601485775283560288624077664335236952042428868669684185883552480751696388305578424247387329176563109230537763641117769648869875817476621282935701698717895049442315145259865155696314466093812987436732870718161677542134783747492192327957413998818869039724995346944125163281439414720542598196241132096008420126610427309870325575960693846668831386800395959200894876280977794963296494736801101257337955328747717701399417991561926673223717111482984557994342702437611427241032497038022842157649213569697809781316997718458113221281753850635237121477791029667092031971166653917023135770706892458248589427532720016803960262320329069440719970583965708439909694744702322409800801512638615947086085411263751342375129019112898794393953439035492307961693473326572683354329213677687057068205762682825318140036784634830786138597668762721429792391879494824924359994280982513174800244705030107318433418609773612478397764982740535198038486469772258853724150487372754601260250865341554276692280575361057906920558598679359466117222361826510824680765787492731860742912127425043731453650322145915542164245158799615727444111577109441930362341116056856395985077542527594056464058284322054575124860473280357604620060756156369225336310164667037228012304789976394992769955369419011016392955837048725672838717587298597077366311426256510423025408281675720394024522253409286751147960013700563974576427415476229198697360995165261641539524987884594477522699637239379000553184723213395794246913349997441854647500884173094060482082232891210623415502257827197806540993723757810619719385366404387251143505235951773032686545627052574005420181999331637591761549539215549611572208815565021123786957392528360841136329310063089959387026687915213885068807674521195979414016194153473397713554143284661736100118475423731822811387719294553578315713782017706283992990253291202517868857370874879495675119343411194907237618855000540708685193795977046971429465782292578449824716430714279155105237542582551092683862707681459631248357305109713190005641161412943307379931307534474336866496301124997755786778315023656597406623719381122217955976469011433006763706758158138824315103243430118740977535725043803397660245768887173354399802601375123311253295888452619240067630010070149703561019203748591517428650278056703610389034552255432980420761178444007159932010403637680148302975090094107305566741322368426924741287595217022174368651385197299726123303640815944897659242330252675649713741124721493900458520748880709657847159548072882963768203206934282674729606256509961604754999620690820646498373077321762924569706147557594227228003128731854126333902465586683774918526273667453536515253858112865849737505537056602099228009394466975055733482831162308230917537276765692329309156831483849597307112516661294186307711450026908107479027571955697958612439999083266206969496930872162530138010345330260899781892577977964635641218218292875928344120708577040865833992772071882251877059183065871040327702453528056676515235269114851224631246181044902584984474132011610342390997763121334778540469297405575370398892249242899787422469496177574439645270742915508268346427152113615917792714654542545704503876667578666402603948737049724287362859364832410358669238737807135917797599484615745682448786647209474170470169955453796252037774532645022742801369483452630458635645561231852372736329190778949545044089359716791297173676738164314898952205277361900887996153615791363891460316738081626116681984606098315520865975605443700735308453095970393635410384776459404752868714458339021159690307848862863854437832853026218518308206486654628005588241334206560543130040048309199251865266589643934866557598558036518773037750043582329902834188474870731389081431591540972426670938236037685150180360761474637762849950054082457478967088884757234233543579969733444103427021903293559385021553962632404731359230293115275496833450389867991612004567965800264360931029557727198824120411708331145706521096631308308556224062120483359021888303888689848443616206364741604698551937101091797029177709965645615493940790983693561514028884977179321861154263383932144090749282099512867408157229549882937501217420994999330854626992766016584338020339637772368261159121805885118056359469421148721916201015015222964118416535310455788361679066345306968511982591300848002389116952269011229621733446584903574600985935130326730006553012966566662275854841873455654259718765593790905959210190579069629350849354589253742886151410056152851820656971084784727536019372534980794909937355682249965559499297768138292249917718501633933881433976553551038650585021718999997329510618375239390566798017136950873508407645420562998202838713155143841056104794628522768922265445979036727966581838369566353066762601234696837243993210901133505453989322421617324848102779673646058321479732653931707755163136668998233537681579349905591777932411210924653387210239656932455435809304998167123942483020445172641915171349801332665524566299653330565579439898593876654958382432562824127116417422904293717514492373769645625609116606475926160730092470890956183904567096657043434438354727778247208687262725779437411081827814687124020802065127892528675352973139518645256251727790391305861526673999736825578086851079504799088098588325314874389829656874939779233787264126790186127193250204443024516443318897146025830999031448923368328708233910262862644424460285097115160650397506777385039668773968820945676753028456861409247660090960057389660613668855666134563436974322635915293379943215036804354679205222319777731184167401644648546203972376671817084683076593046536740030462291941008262281606933445083790667226594371499746098349185101900845720536807556931753608147766803797897529565605764979638480324551009766161659952776983610167940971750580697453662499683624519987168327850677334072872676983922101730275468698413785851118418807192069351136954379865057613209025725747863746366888643246957298949483999273782704829392706649317928390405506455550564851208041965426129054337373503492099729146756613806277770951135117992502403434529933821491689807200313941668723965928126446537739197433909310467164363965603694961836434268902534976325110894296138141000102788534307066443712635032495016850450759051697132221318503150612421955963485039150829352693274671760616136182338536532827956824343525977389475596021321332358516712452731714370814359563452498033669912504011999258374656527669294694038288369392923500052003831891270451837575685054908182097161376604734029723323156034963763111707119844427338854054957318651726306129457525465157813220939474586013406387769117172698629841669645309871016365538139202597153077017626523491782338495516503746116513628137057842660276904843403619206224137365928095800031960222663001565166027540416035806368825521708903436318764567154210094029429105188510215526942807201701528304765655111973273514629880688062379613069611791441192711039502882970292277241486895981435002882416925034235722560134755451157844916661469325639377477806398194494191670183351470668393145453366846950469662128610903168759605214892672555785870881409021670259763410125646154733333256155494694029934673721751975118420551192214365619114095540158301340332248269716312074036731916633403475333158663357237446997982859699906535638330383694377436754358983287477296679448263914873536952223375513578017180258054604861301552505771749908397823611619061755365024840830385161514731215186081039421118945330261443949500080501877733330546474718647741509362647655582249284715118832826442205584340131559521216459871616514062429942637371025808786827667638878159101830121635067558983174486487706297040341482144171739228470427758877061470041030355431729065483263992098976126369398136286686862866129242454695112815317897430122819024476907033802160324165828068095592306395963078286794707983605361600738043901381770757952458018073223831981875260309911975690280948390325182036093952386904103996746701652283797514813342043508023049121704435138324381050848868623589400287030021315409692937500209434114085568791321276382385279950120816771484763414835391949938105149645325851605683209514118533455875581479197596395406677591037989178514318569818770867669106228534584785994780976341014394285792656861874735363128875316300177885879814428059760942492811439923656785614996228144927823355559006258946863683066807446151811464649429970383520362315645987072600731200162371050566425528510214909412313108356957408153104141532719812172584087684824860290305915452623008919965062498114739777217018319214076238331943058936467114982480656029286629911970617882009778546023790451294289476794425326458142227034585950160571691739416290342059389615029815443635089407103746057108603130802964659012527641843810039015588779516323881919096933991816171640324207399235966016331540858055127213944781151253294429782701157193480144814888451996521631252126441685905907321068465298170828067195703480946315062354974910051590354245918136886080398479230908268765953048559795017827391035471329335270431670029896968327092851155229547071356308953962754844210116227877478943158749198213430188892098080129860194712610348967284079943378620390889907253277876567580604289694716162854081266288813537470149108138477242450825685800915454257141871876697524259375067132357503416275952793484578239093113885077308273521350850676128625235103235512321666894741439168188599588649912350916939003825408341413422140187557799406930923300403134648831256504509167161556334392060138064935165583824071726255135898540895483213825863877236357381261949493417837078823818540382902734105449021595613872085336154228959370177359903225673083004523064379970282793161203054764343614779515264401654682047017671101052972820134829212724206962530079257881596002094490456404723779941443802255483964469371571417313127816869770395042550828580179210695610659848912330933878638907558350426508177355840882644269264632822432729343705156096955426607714856942492728733504410666117201192884570780301878365500157766154681752128903781710464727686379024534627440022815795463393601437973786098882025672280107252474599898672416453872808372434346798194618359838310991989279842297015670412920597559170423544257024493453398592692473919586377823245972676349192320595075428215586621596155485750433859249536563308956586454553277183493511901366185432885632411591633765892595175502856117382755484435780910095973972652874624549084517393123284302701822055327813179047915445631068163191679112683881768937039583502181611471717452174772105779397885159648851920850341096454997998507623397761919375339171908379543993094018754772534198358434805323747085362486776185110771424384558026813695543627555051979138048156678556310538062742379817735139639399315936776095238949635454747431326334477108626678765638856846308080802486144664239053507885056307426263515875399483399189458628057781587842437447445511739914614479784013745171546645059671723847693783470781689869475491838935663586822955751617129112185551820044976280264922406721092928162929724786113076553621703002528007685523675325162892689056572998564236737533749849574196180385733965980775151959888093347465179336518451431048489347416786646353988358710110462063970113923179344289826648785772720158103557829729825034944111227719863298789077689168143806664273845405911616267398720856149047853701123846915349156790550556681429745655812550024442936173515062102259801863256838703855816212566753813557870159513710168060368624857084605327728785598674131263783187986569244805554985011150132292843636512457815804813499355002137447739441338880769131349520364156583231300984287531356732496608176376400536296124571080321469093553657431235104478910532407852210265746343536392347868571832548735919284762433145180607199778865943200884566242364487568385448632459098890964384586470884718371079279359746963865048880482508912179291661273474757277399558996807991761727825663081273134723912705851740746022709360702656868169812410509528642671434198426650463692941056927008536181542911734611189669203654452515135863898036032148577974105834952807533998574359076821379385382080762560043065289425966510416189187671367507646522464579957927995364554729058693915254080012986393996244995255786234353919999044121894866752689552730646565737766186561592845107610565070762057626301458266069017402007468281132274531461663100010945283350645207806530326046970462425312855862370685128426360099320076856711597173809781965423371944031356510108312326740798213422529309451099170522061351992108822143712257331930218420026040927671355523251666497198551919495420251765153670147941316309801228661729025699242995202871955447189004405345610002245297148055305752597535943738352895672826952156564892103670664340506807327634449356400868626546791632955972152108309534292964835098195272714598019545582012893128051387159043140066200946556700113843170337187186244298148216215209012963818536726232290659028381453109490585211593593875747933038269257452787695179184213346737059808053767732976280540080543274166879186950403184244243284883890852707204047658268058792485530337938080574195472968275144471276760687201012042983003618103519101849719921287559874535100511662847500312523216302603669041270210110011640841804754029156764201907519261603006470747642321899792919927068904692631386478276725200735672979984016130668372599360469887644782184544149410126733358647055648860634084533015254980840160423988680127888832418000193522718489843147342947674259357769905831364688123326352911897817332021887987299563004204314656542220910779371951742111914909087553544112610471977585515678548500557989431393374958011350769352269499845298828525719296315297918574289832508975550994449555943678312596103518443706306866057802534559812846252535845620630477241414855042413803664598557751042546471289958104237991333556377827674405908977646020187519973879907129662590060876833095270497437478711527560872934702716484825841407634522324682066476015385690604331330404946296530328571104408701047193447509383075375738668150613915210994496889372077668792205207039228619149958297002102594013219764455340706733045238744008329304554846615557380458424577961481524658265415756574962932459519507242808096185262475091902888212757683336878773328876766402969403597961606025913297953808421884191186411917550065234809519969810363270950570887327262401553074046871251202081251969752315193553847449258991386204163360742026710866734668476838400142263730092047672407544774472985109649939853680969894903839694528436627627058321261095133645245208601615405511102547442731734535863316942554353593978755070848468603792048159214348385074976899122358780531259089657433850241299042265963855641534545005512027624423770256638111100862857589911048598163554404693814080476567632852982606579990177170491205937946182136675724035087317669737719553708040558051725157077842846497409546736259280100979117685094258081388357455482267791124036495003834003730841024190348920566571676067682275461846997990425525481682235840280806251154576239199873640189663319305446859136718684792892763886357116958358318008086868091077892297827142930778893208441246856411719334913174148759548315808517695673442330865895163397032018202255901401349995267860590698333359229366855909649453671296830104917236288554442809437600592458120760693733497731354602637846369045806109737624319962495613970557775515325505679905540536329439443154836898494040968077376813030866753222818485562665334693889877014682107418323196377767149799077128082111452909751933833050967180339716844304513798403352393255819550301201965583655684531368832374498482722310139996064640014669843566623524710877286600268364339581385552023610445159071407929983474438276426482699759815607300244037902241662009474151616031875827874804330847657145307751319709862204077537600427381165648595948882616528401570073713213151060541990059358846533624154351695460591645274700155295024236014968246490234807539975340905001813155794877876206654009764432708942721351974013224773841738071514719822345198587300760961066716037574984986590098303019576397898620688942560291893191970956821683509726472882878059602914943022875696067914852388206835294136320447078711591960531739421328711093118844993905490376603597922034822555990885260863542479131084175048191868256696002449839208272337415725296602504655698574087475203423949096554697411312685121894515900144235990758949647060666813312016447632637014773029820257886836502153822348189012574337830230178325522216714067018810366263079678900580980371595865122852338622417374520408767790666924593461980073765497252161378686884933480831792525289098708468421785572994211374359063886583609759708804827419234895331344131256115436916363601814321857101201338868305839489803534044851268945320521939310883359928222986567657532987183025697871549170963690105960489513269225821558609854716050375696812864446274390728340131695469600376853704518393929276856104177595681021267316007721626776405057016571970715311299410797376330598661571771838476659652217633089411955419611833321257103642758361047787692451234983457300599398148331246456611529860762927320387499854935679752961945464593895064222504874742330771526240323036093720777468805105010157153748545230114076260536960512313763942279850219232260557777740805307332969446037508131560555344353982203351147873779232128955261508815750847571084963411736804518356865502943764408777895855606926494635507193764233592692135768429471722671523412265891201964443507441558412572756495661816444248467576547282371670454923315206423952575158798509782462575421715093659703192957301384408305856989559872102801621350813414329036258504794851209924706940913449536183701514836293256822577036359759065645589880618251199981846955339212401863752612033208065996885988504313575716598464468789305739159836547743125827417558605774808446927918278519211259596857879488765259789045075671111445500967240800247880315207947523660881252191532617460163714108957068665501161672880309142522328065495106751297861958124332204699546683080789962298972616378713388614161856166803995607332629245090756186448441637251792000033304679251021060700336429168510200439440921710590356047409206351823014346306544156035247629526224282240081659898086201899625065477885773755748858956912476519463538949940346559284994907767234597113481540913419937557441303267871765985190669759754768917396451425911341250287389326051043555655151516263983479437960280395068441475306418076577141757154923873147074007479058088539844013757156162138395793823275224444586869532926893897200671960466770811916980120865129602902068593484902968560919614193851756282312995016891356894171545800381072755567724950219150655282226650693653165256688727285033357111628816773368209501052715907974832006016975804965849235709423094500098408075750785602620293778437019784350668325477429744777978398597703305397841175867194252187828198164092152857789539450074355181880094229508946095142342974605748533977116942490530887753735092022257870714360199189657352602342200632968670084772135740579183956424493662876416262376803974926876819133420853647676687735621894026088348974045775588396747461663118261264351597388378374122752565290877268920062830695296635538010031930095755379366518899076944901670129027022174368753031189396703980220862408746172909806432222213458665231345980496823227927468923104629464379306515580901999959006834435405123353700625882680713850166794704385487449526832580317398237946716284838807340460573403747626949111911017066847442418334262389433914176549476221118701570146984796376748042257880667522770506014207513157122550440014032270793469658086427722813212568533977441067365591161381106853532704174638956173688741697799114461032721904151988051815640062891925814565663851093637517509082377853975156753970854985397755729194998840437696474666309328993683663395058518675844534598472930967920057959661138971121378006634423417641722837351732235200676727967044496299414961211659684283045023991988854982334250340171626934114194826863381529634022632754486012490986455420543029989827610733121454142580164855037805745864473040774298579353378699362413094071269254155868749387820873112494429843243847323400896856753323815183597922671430545022310353313316315998626618301111328818940927087178301231370125717133698724548482722165283659769758636471123846170904121416712195104698662607327807619643878028741053412594917590225354147814494641398964862147619392331871453731428830521020023096827900748020984141770022976274082661659683625638474152209878433487938315962038221756009903845273340226411471804092438780272099697932280250898765593803820844290065297177912020901146394382655663759365811479199129326573496319790197151306811434729654390217395323693688485795689647024870173941154271458506762681781301719822960076331109438492004390894000536198351797740394564992990354900818676072607242732270608025035985567898232268035418438212574867990187781471330395352103251175759420809295208940245483372295575564082038239104034182559889622360658635412272637742395505261979202580859409467111746525808415597222766136260734826781826180553078073184546812646828021075937245453745736956021969909033560594683386787795185170301933351731392381316698557320850025573356594687436687827649057657140761810739067963734928778169665896046392495271347381322195268171942530117949096994206215659856643809333267388155720975952203078038995927952254104531187333880608347818448245431208771404808833187829147679529782591698314104783648400111457508414370177614603936399285088146621151855010115983390508249063237864691696078385886657740870146370151016377796504803933364699712420202719264195602895700543725680292382191000960919680395148421850722994611641181921930866490737240182859130711116632141681156747061650005524641721978503276426760119257644470465846765992578819092035274265777486152141391303958223780234389651371419401347643781453930752556558751139973125190377410827001308177862432472471843119402904093029606373246861842881827619745395059898857870756074131155417060069916219382916087370726649860012197140825128182145018832872467379738190523683392697973392938504492702180073950214273669637729791332978171062444379651850272877046730689022222303295673833654925646268319281293410956444090483573716641203537806280949065348647658968496432251022338954903048423734611144122590886568873908090690641145274451564243978687014806714408642020676834831926555332194816564068719464424250082922824175728797238146829609853646504766706716013000193435985654287382130919405739047726707648500333087710385071843985067906050198541884703013356079675670411177062387978561363986686072380951047014973510638252377492116326555558453077917847784068702644297850188090648791772688628998087216070633397699340802757543501470800493150447608353151825068360194452600030812938490166613330771665523066461618042937675240180853783604766224570027281134894611157971738831048971772897804994550857028294812311950291227824828791943648801932874010876491213218259290619149819048192266317580679187908222586676632357124661955647174246784034031815807283146298590335157457628256849431790121775083642869757909272266076213969146520996178027503777280490266807240812758989709526330880220379319123423422643456843919291034882842203725163445279783660214117509445147688917340710545848782867577277489439755180334674870770634107897384112671220425692082379073987552926255305455628921960703997522964066401352041854278495621009412434589223614396621906131122661360173730673487809935773359246652854311702870294666094691094899876709461063335196649896177595362587269501470265415604509848512331544400532126329924336085476074506632226724672243213153108003968324107971466658751477039426571267219423092957758221027648719818691000161724536584491134896293102324669080386446527676668627138799756826882776510264143412886289048075087123218572194531684620923672048767649315327695450336946612208827619871890594802078151008893633599532206490917975035086130447635173243383141662519586605019198645931302226396903343118522426627666978504911135763245849842092941850580819649936048045997105561546445203638596086222869334223526045530114956794121664242646383359141565156911896249161494981767799410709778662418641337962719846879920967790461923183322819776372313983694582853740139730171218022905716940136783010472317312373104281150722127340578529608081857087466661738488703638044774112617988982552043688002475574627922032373013192380445493999972013653642174260235713535375307776424085692595449663795647370093480095633344168378353401645239649673496082225885917200714028384016519910701132312380367319088523230290494591286190244289145629557421821843736044063028611373982485394674831484278192122202567803782110813254789445686671026917530594848983109537871382793095173525248564049533776218113854300554215777309885793186121541143222903355252664828423837598299440365734250485506795283586312536570559093334829123200067686977755905424587152424795580877027521905431738204544737744506922768202511886908822020818414057401129687695621035225674456786332227963984891627048113896795160236483049197596286188327646262453872325590893553513285528753250766822346152979161570331377964835930009525750256223878222980082200696298850088656556342133302816755119492470482982901356043511211994635181665053195156766705526546957786253536319324247320515862742689223864548707370231616983589931727374528971093205157973255820141470056270245733255274648083209742491698212800221774603106786900885358625831455841047181886901783388937149748658337728774472419397899524165343895060937262935628413746861073573972048340497409880633426943919809722677324108413686328088896045677192790685031492853114484913886197733354462701479072425923331229750982242972724474038081002952558670484895910170152680138909962559080889313232776408022642090142834427546859697093846010328690447647747216943857869348658255938161725922219820644524282887374504763776258094856643049676637026889670466856833701745995471622065875069215625801754904348774280728968759281466043149444332099394214909985036307191354683624882943769481185389683347922803602077454909724790910376642151845994717998147313039715907610683709963927927971188672242894518661872731576780639255619608951246602812398557104650322898235431149806939470877313311309088907875270336238459732022161422293792556440000090110065577948552961186498311866349519201390495917482750984741079808484735823039756641525789412991938308015461569741936642566967876769701832850847651073577511847721535708918469664619700815528913545674751885582196459616727163947158579599781299516278978187358734879169069851312056655936860906044354234123429290773420460648672197205757307326989073691783222908719326190120797028104458342520548320435414527501862687905653100115156127081252748223311344094471807339959471630886393424206303482421187207952034433738912491505101893610976013018207351803697360139710935771361932497085240428200300468360252389302368875158162116559624145839031301648102846842750027733841505620388422361192329941412691248766670506342424895725813718095093356700712565595193661044942981645626512874926399668772619894916994568627817752849877918387636679356052587962800155625082318863416740452733656817926653907057316576042746405164117849110209714775563891428095393475271526699528901564276209531017552200494261502856454935080263405455389030416683051401574394126719695547353635470125188155453643989776599241358067823035752164777202525595113304501568320671280650095363865187268862769421628467176263144716318124061124777961708894803168325107918226106557956219960373172552270054632690789275812112281255809297632207868588821558887359175452265626469127209474766018614353145692977267004533903223887116786614766014315384125187751905434855227138818744655685948260589809027165182822824081136073604746910708660019515864166959537147925303814015941817536238008251657586509595644327121459560125677593821776161576226477941318914988706716841633912696780020514574343418613554621211606104085821350325083680489498185882268301860866786999571155185944334972167361833102866207558430378810816288687843653221317211879149959307763791707500598869780472370065568382016144717118016130496826136907953461614975754818809301595785762839015829224850445293848715259371454832942864535976231439164890140835489394117298521493769376245976499906421993689055917811209092516027748758759689591070833241277310924980561861752971134070848888554406980730986873760646029899132247690198998035793541220543230306582399343664839806217596024496418046432523479253642873675105941625268406783658061072470389966313144504572467472690505837060253455659107972423000430728426556270916029100112105775312197991641773950629203500475495784016479075134371839787091975770350207370907904608719535035729950574750034859922807842357577851551346527901343455081314368989563225832840344959640783868486502973889931969949855193365509953049480263431233839659738672917628646987665395062554503071645348842842120689559598835954469830953447046970839251575890533379394833652133978180584271000397587242199187177100297066216144764635485396380291489097708831950415768166433109569154248526694108291959547061674228402148140763345931150916807006522847286622198206755739235928399648507974473435260865344704629407052912724549733641916962726244675480946370661045074990163796001248886209500296790616162948791309012963585602213806404225106933284233951218243259241253796966068928619057130712279337927048292239295252842647276037170204565754631335820532368862677037130481670052960356378585608206626499242756814596640711683136675956138272243674766115970568409843531114304732414112873576059423651333907499769425199916673788076936648219188143195727314302470975181260098329710225168150986552449139780828147194513032372588974907808417777690709925225810028343634490702005597777823300158728844892598792448742155118628874537858065870312398845899596172454639132906299314361091059194549558753450660266113120614699367903198083943957229235144587214400161543096537028200090842578068231313727465104664219836599842759062547630798700246335549732371747224028436401267822691395944909726551620311538962728686135562189663908102991213393056282803154948228068680288325315796406856175668968101197944986807949778504599198259797600290383925407108386485604685756324090897956197731363944372403745769944568930268265272811403250393704062878841193158078015616058433049578782110677268175707457438397852388285239482636633826968398205107160061070230151376557342986493852303222174449829630273218553793815587953495807868277724819817804817804724060202239065716190003886478278113132283978177519897277496284837029849731182060251729114250672925690542655397875626534154677659263851094590761032678154379468074927257362911408080346875683214112139348013224420310645140766684271976479532031768151698198231139058078509128555554020993529184718035666883024984318504450317546044037321867305664988925752157382824198859246853482777480890550132714081725858576082986279187836391094351783028063153792826880616168760859288449283292960838627749003427499935608090781174717107192981862181726036702680845558787810303335609962857897541319761480356537743921316227984591430087768426977213526079281819523444231982286025885140563683304133745259862750652094405257146470229536431497532443215877027107852433898066014850998028738978493566724129562477356064163255740459822615183306281449143035088076893592142110307729974797764200886055377030226821300941244743733491905383914762437482026166803200097973003942861872356003150307545931312030588132444116312610640536999328731939550302631863270397832238362980937093427619882705519431245503843962645156876548055010923226236031971790740592886920539367067839597796683497856476910316061897076230557489749271678894304814252063863608872493187735581752264151369264692346694628810591643535813796314004327187849465187302537945354752393914846533419860482614845203875743886467330017113559587463975380560336743721385969964814349407611623307731726103722918886363598147850499485702906498670581547523462582264428507522400565386886803757210200129083593262914791498889259917131736784347562471086266300963054529364883959369391655125815795728176847100349864989991640095957994620292973761968795502295767383977047206718124865216143508351319180168458195680779383069276959813381738292948762142548989077641257320400784448066887843694311974148108441420217628162266583934039780719084913767182963664069000377828740706465884834699978582804506250104789516621077603085357914109420729044225557727306576465989480540431451326514495555914302076541879847059759659395132847043696678328957428136075439124620859789045298673428901382861165633126587056571508587859263246567987815136105319093024562868291736521784472700708044820596781111844242759906231871703569303723436666871834118122866303605102704251480208340229098739746338868504324126057193960225038832406087799602866363026057289466581392499054246232190098966039387245997439340404323127289901076357874030591425247542353848813618493764405715178918787817167375438151622355427347988758373954913414177639406032833879194434836598583873572562894600190702912097698320563019484897059685211223341380333424498330601836570549509879120317028360564076747359999166139996138488036096516195627453955425026985848127780350708522687539628187113105966605433667444022299229860209053904399955448322335375083647276477038452821875752836125333536356544852339140884275511853939517581725741014238185613342493709421555284042341049088563806620421816946933776583295474365804769895961544146060106238012948176724759767794331314721967412842707585930807492418466626720663735893011322329818272935250152430600435614640053934987333932879136653595819601241393152318544649623901702366894140796179794687876435102332069386259834633712247789368620917869630677865355641954631785802441221962663100515427689006105147296275753204999877254101229621699926850463308604806216931231333523782680606560438959922603724992005182172290251696371905791137245957187430475400741360593374788252110040971413034667095982594509910225725108269585090742618384279434007054436864905087041240101466601265823671934608442964699891105112616352613861429421462372916635299587171990766423709160127459223133019471253987772604862346054042635936305356114403935830363809778645353023949913144691965946043892784211407072352488859216553048357625312104067333545258289303745656772192203562852278839752790676503755478539894661368973044552465979514404858281002435067380813352340610028210501720363299358308549342674308782942499495842741440695818010608655924147316942259324512329837183413472897540074564187974695644188025077429760547540882801292078284624136193933420965903012233212453252884976864352620539427511771382335390780247041662849272162072957987945911198314223061334148573750372353816340251858941418471226039039092044294219687054708257678792606841060780524017409543969217615433651628181661839861881423263557291413658843400015086352482656336020856501627070972261029183230048422112063847767436957842666601770280020644922461711202471424494857340297640351752056078842679745439204317216950818796864871504152299642115330129464430262808103886847983637779795049340607561076735359309819965305523665382445759776355293152439999194712161194331992551601365432003344308156556828880629004985780076493390702128787217312991050519023333264659424046516278750998867417322144318234281073560008206639234088670179586949278541507007417946521081888308937576004010250914586099172400473296248166220369982310283610059416583753805072138684440648708241484858831570179473980081873834387401590242158721089156857692537244637063730683141051470665579703939380284620094741853529841378575899125548113066903153052639794967300994346811034406308779938738484840994043928860464888391112361613012293546397196007692787340274769475149917805400909194041553740438404831913026888357802823569527107309006207708661880137748621190384016610606327628210102756195364576673326821015521906575223864317836464584822974335847088241453464679060981789719102860974924644036047356071759708246065185608938935720727749698921888950542876325330765368200018374862019317755984591311466402334260824001825420321513501893703067199267079616742650316940094048528323093825063142122238939160289138059962397154373154016548866717818985267899547948295416835473329036072727763959459952690247095209094623964795634118111701225928792450370517310000840904175186330111372128885239609578348485939325958564586183697026343482400349082430141829513279977146811071219962135384098919930309842508995476200086182850890889150025315620891964239465942363093694674789243456131427979716438772162738066195763553095285234424242518797709199344445377100894049420760707965686466710820793943742392732653241377994357786019394871692987850853778160613648896525888959102247907050224545636779228456679177855980106576322197773585369761867289447802310680686839568341200198787018999559407461417739631784261621726463637875737854784243185597552571061573309215166426309337882129543613796899603761150873951977159351823022964411226765507617091898605785181272524284250091834028769119550205276867710264066511060188602099028379640036237135009840492103154747139523637691168384559509684652524354837180724165562081609416443289382279767927847775465140631157353691989218193870486623945742720175452573217099988279870590365669996950284308558182589532765242839293928679146614491876915493041601569340538260060139108150984441348916128445378190694667903170054219348024879989881460610278219308739435470258454550665481587789941107931845609339041127462977931826437483311000776346281506191264974141479909640617135272143150485774704861128457571305491793476696497417622324967049764083276903779371366435021985516112621839554869794007846118090417315224073073942249705602474385820180603878068026753576359541314892415749970667245660532461222577693564292983836075870699462505209317802229946407258999458633493495883564774931563468114344522631958064314291394530738503538179751526214466658662802765707757631173016584686503054652751411976988832940610567721688278304747575256003440960587102831330788774797365873945603427758007369480211797388400409909249156109461865155481770154031318228962449895976304918496296467402836521741615061890906361895665342999938600974021759148857125374915103448788056703889836966139040215367352212061058030538308582236283597792679252202207955396623833811629477290874762761297384955083855770623417581328117113877666459761763035380821319728505104903742626691240848314864893252426804776820891014511940189299853484041005222667557950847579759506456353754013613262411826331654499567520154341600794308938489286716234156288187376881215193992219456463318970748377792891010226676344011527201811482653645017496988034431948247283914429259482373545226410444973269687400100951510861913940606134805219727264736015927001043078017516107213611098343391110292343106230081619762395428085250274519548429183477192342631004314109590488469816607807213535665509833472969950081276015477369437990738480489517517305637468363334663414348335841382689763584001386212041573500038233934185259358442003960259456470191285663791918699136675115360471250276206832725067703818938500497048808088289094818024302244167978909346390869101276589472571471311870404683879788374899778678859481109937795475398538429376620095254723409972337826772926607435795642009241374488327113124848081755206045800015094837998475989202350463778533758559288589214322430684801069607872285989234457116168199217488875479708607356744270955720356299896238554747010945927801147710972868427040263090832478263580428767151865710113557383191514577977908003286033599305403808968990127149408587136716412330439720659218674544817925840473637269435882084345995296060143613893982734209891987473396797906841994378995753829487980851696743527756538290761272866626053845631273604974475055439356357326679468338771502719187083026165281985684022488678502718977556239498539164924970047349238670248895698197286327612059892260984186632937566519745012801136871136831367441481557996610512356822449636712883416059094054348608850082534658512543172133073878608639587754800034337010629836467728980420996185968391540938116593678011115271321105203749824754323775709174127809617161403556378160043015037195287956083790749890145590016808249778528619879455802914337840089378703923247112310856359273255399681060579513095682891528691837740572248903130795976167227318166535382609445810169898965973711728573022235639389854661270994228145941596356100434823120142684151170569386140055630769395349954684426817106652900889086520299317653401116422997658877619279087251910405750630950419400543856781087205091439549094464771075807862369243068876574421831153498353356385673944440628280328809930670400982446383436149623423924537810002722227552614561572330059699682023907834069856285558514176258806655863381988037690994179001658312622118650835969087341004409723060262738848386421314319696677259438813725627147886670852966761465787077788093990330785600284804195631201219751140821072137069944413438943838991058177710955957367629451257671456061750840510793766175671700606630390599092630982670304574160339302573949887673296510895251604224222339049685915183234284993888953221620664627847884996982192017104102599189421615871219170539051397351357431496820636440206974660179721851943617002842251671242341075593240005378192685415409203733526534376392824165660634954251069183435230728240254264475785967924592471324840201228684002779666732393772700841767592650333664667942056042045210156309301681116694071985194534532045757702219972079690935586358527889738103462943233846476904741671982346886191300417285630978933669112015722886536210869946698714436967284516467457849941937103514102531243876973283704466063989382123212569693669164845760777826998559799000266493907549115862369022378066328930626936353995329889556671233162285374776744717707401979874419432063132028665967404079868461705339115368674259393068024745245111110698846692026365981568303441101979008548071682092243953618403498595917290465630026488586366992071162895733113242869133491363730909244915187074478928729398484457283758519033741392308681408975058514396344739272903616202114436725360474245143995118366828007468042209262585224772554561399254412719923550935118443648179557322042759131658639568903755636390824563599683590962154482379390753443516061019898948648378230092821977979242671735113394059839346246823173168982537803071738824898605297758049571835057360579374232348228036470386205658308877217197016622741302382764688690490049409465181356625711571717746725666220686083249919951733549720803160422066950733481391517976720918783107958249021549254277367351375168418674467609040840643998231930644544961859808149007720376308335987554212311867256655761736694412061144603791728425723108005976738825091096462549018343261492910708547222785712734377465311479958393911710241149215904179218929142786423100883597820343607708305192521724075935284063856097980720120215339451052510807681618348730034723601797051926275693916343749828509327828912626185727848196181339687720345235737222110019828106691531550395983941349314179239538041413106431604536106137540563633527934333910305902360890530744275811677287080266823623868556732837544306889659782627180510590059262537278607838378401722194768286423919845656078123885658300414805198914470784825786642496023976435873394377171745392084616417071952183196865337352902687602088562958376994442206053903902554287047935340815354606430723271020857041220758881213313673485693600576781384037305825469198591767740801478984953999338321862187627397655501732581017146787136587335191342499115541901678029365489066816837178901669341286517685367438635057223058823793614502582963290916155746422496814515445369992535324515490379493792116549139579290992415029424669399528621590918200034158044419928662350000670967027836382975737073153886019711963727253106955533374973586029793609109902367786351152309861782693693812943169781704108608201340501332894784870006905187614292660406068624913995435651680923729194341885866047926068720516638711778849704760201708628701152151634955395399404972012943000975611741415158038497268548242374458292759479461414061575318659994214312566921720237514895745450717603456358611549992767086899788082284456785571726374826706351623429287378032954047442444220449910620306583449607392621906777529092905334191172986826789127559265878069377586343422607680435422456156198627004569959099245036856425548650536282441510258836711472566518692089847921939006553710720252878672540256089105934530044324717643025080922958699962983712450396357889756756966313101849582400119898798380084830140767089711977944569904431017338627906720661988753343311066440340531957300725516481147732695920946620011056579386226830591746301879983009346204603983845895320907721372576486467965255272653772985262821165402921787882272829328091531551407469881567631201582815224527594000450646111576955841295336192438495672643555410096080843639725449962383413851952660370524884826153580804519313096260126508935758099582968282267009820356789267034210142623540875358899232006843558216553611796895056727780738826667947956329323872111031349209375114685773667288737775874884667732545406551653863391700094817552374290727399632045580095151540656788393516511742349874038191755820093149817016803059511676813320488977233339095752899278564829831235576217892472619388002949558647906630729092734695098100365883189184417701101570107137978520592672420070419657023208597422758893185813170471550626768327081775265713289354891288338032296124150144237578577265266696784781578700044901019186546353069730270025919649862596482466039951245748343170210934937755440992702855882504376565971711990067317368498416654465189654918643013287123010178700128604149564746069930408894464906393395349555076019362842926175044211559785751422191059836657556248968032446129004257927844975899875965214401635121287382741653990749818386858716313399150259311278906142725557815035025920822948152786103795485764093927032045907656826120403579386928045972139123072141268600585962427002611297297318089885941403394876983398163903591818823545065171941584719139529290828935591450875405263400704516989822147475848649165536863919743666417727433125501270068177401851148571038489365761709765467387687033438335438140595010646526672740761196923579130084347939686253332533042894787921843726137882909331164468458529571002161088937381145289107062009788231310378428831983366481130877417222681204876059299716020130541430110581669130407565562259823188512969467900969603383175863611326833246144091530012924334167072136147405163037358838541078799182191572957084133913687578990167319249375981268459837129821963764160819894426490217507361379867052227625059535580785900636571777532057438095465891249944400536249101786635901535056777371431321308602624316140667745859243918896541535423606956499694795326885613639979703374780272429292989870162385089186751151515558750663599485444584317756517160888811889573246365563816062690606546843564315633222313412226439510082862255778682036824830012048290112877330206131279347572758259362874019475339584246616353420308545338477553740694510181484432877108128366843003504625613440617289509940566985321457665372571735412709789576476682448660346849870264211841077654526001048630526089851102909790984322485854265644430751573565162404558616883393987161609520999003944040731366327061258480024310510719991319699705501757745073336027728783157857370966724011541633574719279800296265339724185406753864089075114268559741701284910200382690565112953235856875155284173610845349346938539232990899808913504280074260844138376311643493303587383119569184850971767037603737672752400470019939629399249643310989393320137671939134927446352521261666856766281410796006399451138448142467288060729868840387538742501307731577584902864686952606227485427022114833471540590156653745052131325834290940264923991923495107354988757384701645667778507040117269301901373399310774655392386576489220524002620838765808346190540911558188279400586307461761736769693442765770099962437030757794506396680883996198936847766018395282461663174037284186895509443665502642330105782852955799054273578093645695413798535053452793300661539002927001484686392662218617295637247418432373568022092214353259986056186354685075478202268144323735910377701524806462121095055403760424570822319215617340768306223471199448798473437896355530126218504439951414541404205571447799281465596852349859723608201418788790686661903002473275163117957174652383722466109843052679645815050490300158252288582349939188028941891452477635038038584212500837406711827166768722836944578019500382186282856885731978631706241125606859773108124296649075577916218378753080043755636017630323073016553357339457366720782899098101133398956200756873966033580326245802175473108192843271000352982847126680267635728045754101104501597673179988410423349764946606618373041007617850358689680034061337761449867351430289691446466144572076038216676156594199426007511860488812319766707695443143391613044109575939456008453059411838381983843931856069575315316252235350942184701361919449707625908122140417688216355972883977858869299730165712183733138680831148007056306837370366890868092983267995712614113998831125664617807935901665408536232035045526095322104701795252021728570646889011491532149229727994189501140905037673312647125420861408369896960355249587321027602053789744304183654913385016008622205467206439588554017383750129618332590811169422069972227360003264264052304476981441554486506691061773334877136905127183731531330578433077767496005776946730960601690459240855799920320696118108635173671670826527824421257505343246766388082039446492207886274078539739314148731371955395311123560589676752120768988279635800857660626428653929635902363983800623945319334638847735038791560577201171441563754377493531288542735280855915806786201952243501141969777866434830032975025379850628122071150832476268643136792816578856659361878792334609854894668437370991286449115120880276182870828899676472573513881238674061419913900486607111959139216203652739187061690873796682354199044372504383293225848412953123414847015660500526123268960340104106095062973221877324182326793445528221351310884348996399952180731202723299843465831449906461955163995788147074624919036828402876305236307339224286204554949369991024614903004059778272010358270819848418821491025279943283110910747106786899838107692379844692050171332592899468865637700796253398439571319127173857995452108845785832567076310966435477293483101271143895318524464157843544394617122211751502975597016833168059516793144261165385877532977248279028855731746703767442830663642589023016590026862800202653195021210979562170749829564607357549537386072120234343419385235955148913601883488281824866680419004106696890619634556903164410559227612274665058781843111516002386417812714642204542831264694488708444984171267381677703348424537522134415983936196501309435093731827756958324088082694769237480276579255223385432499316047204504288710078827450396593076465993190746839876689987865398161486136905229112986776055091534487156205124241277547765288013475122943699643631038458754539380931437340208969575874102940240148315100373002876130345837937497628814102079224587464590749970721904933730509770398893866342743917409551484274677161326269029621151671029050445857277116000585416413064455148713140063999451317824853462101393347283035013124301784412692694096635663152249379024308648969640027730423003894455956326375670781387587695549616875993617511223316577199380263503923599263350128902030061837686454108328415847859639720079184143783568006345554772574398057809478652263935963333048583764284665580500849543056738500165107394520292120406207130000803368581385192738073839285741286470859114161505422050117625154779407424800223069847840186546794341813542836538567299862759956514643126673941546353258984030544170734576905086451352134472762187600665435275868554806208434145127060721689580112441573816379605490178308519331212123921240003431899097637066096794728935384750144646997953171094788247717980674246363962641923071186812887913955430131039110782700005767337747597961855171528903796610545624798271793299706015673626269879306940063464521658392871077706077415323619903835673345800777933320311780788190889786716670890984690082670153554230765545819847088535979427698280805315482431074901635704080799344871456115145533121722834387715141076487315094707511879461534731498209308407735849254644369137141588591677198931663753546802637646598565386604548409488078826890897623968754041974002512123290954828706669108572025300591167521359051173436506630515420876585533260265556663071395954446553750598717131443301316690190034735613027608866343940291690890358606662513885939827193042968396441550243358350014381639769382231860131467174507100671620090430367891460824459339355883688249254915399449417875508585590915401046904322974434716379247489575522747656167863756172629007589057546940609641792386775941013913325081280412909763729023892391590696325535236137813455899084292181833741064320012417936762477078135643583176728898893767955186883718318864873890421732692654994151371624199101649922801209220644407703098615488935757466842115373036823169862097200381667605670306106137462359115767988247680394173936107398774292087869904156269591428939095551738504444734399433185092394544619214831643251600363597671281834750297795387163732698124275864952502619498194352285575994837760841997076525695206503833327532577021160393019272691152775275937476193602291097879636055263294940944888273510253478428370708674732790219260563382759533366423627283895764674134320806183887084571414667747407785034467165481694250619484706532231460381996383648431236193517025802011852224361429794805424185653298106622340500350211853311213455613282440381060997578265357441034412893632919235056155475083956147853010236182747383821684219856262943853936982878380682884204803063523777958487058077909213258151232460247714009938199954093018528170449511336777317178695761962849765488653769702884149980160442178776512512325781992603041408263665894268955382127995440402411258563829067297026922199286131090729976639196668619966189309574596432491789991374040826867389603364747632969638713575714835940088191628779638056357388295847098518487175822948967706496347869917929182811489384726978080600964480938523326442566507183254687482676786379163555864136608630396184700095201147736742820034856899116408116800277523866343217976032930835159540741791341769383844443667501242468509440893466830468457954914164519419327674181840304971424812732269373181305546675753708043979210594705750228157961225712657875646688876704178221560268455328694880182947864418034273394909858069149452997594344287119947362925169985659612551962328191368861788995489763148660455869667590336852613797579872327857282765488445973920750393202978666581812438126593369077716986319180298879927685335217194314464430157294815500368756618901381638101899950156892257218883444061192943068640455472958973758669542756896182758588939320768697455416727725544279255227552755288531857495931333247038119028905021957512292302228152761116822849074597688804111833481619351920357670960003316608814173834173458954728247377863484167019278122952619283622105829282617186192039273666786333337692422589591353536717279368368336371331987010798901024973791503600530138486610804474237738503715550482210416181108587531568296202680803962525145321164162762341910983575983358903277673127292187545793699405813913959310277066813051858388285122399682794057104015429218209222273926374589517281206624443431840113317606396635545655121577018439670654832117774163181664332874910956020035279961168720285659853409892255529084140452898617919484470191923920567110547752654526913490117520420062452037396674484259467507854501339826445733880527063309981262955822544739370807557552758263205749645712728021092323536808226496626424940900795161511715274442888497543346179911374323806983699294497401754908241891378895441041369957947108526106200924399825622539095084351977342151295342102602802916623346555698614928885796895713169663906702292437149808438387652746448897034459226752948069742218515901588312103210904196554440811538947072953339417615486515525677656751596991319581565379215101433693781622828751163990944946226099593929252941433055245068211144780184593550823043781804387328147297865254940033440031304986724032543249460802857619848069990751950789053242481183030570375453422124757328945797901143585906682444875629306853199928041617219326075256731386886245375382643013034289958786909565767878166680531265993855690842499537825650038043121688611687317863545350154366841884054122294001857674399194274979111273713698845505600599973161754880244795856776164936201925568484576723460562610367776699361960424397486631657412223941241745975298506155516965093476279629097781712744114933179788662207933447999245501790482960172971957336657413503621086152407443822701132998601369129827588352064683907206141814899796721353815788686131282047580235845783062922029718504035798097854810475996417232591740668547815842443514016894797413451269743637827975390920032596931854219363374175368139707550061286329005634720567282510532401118112143414134751904643139126893033664600834896874976338853419771982641086978226002660186725365091763665140971733949220207706872464640983975625214267035068448426168110544267895449580893705705743405583736130572985265115384871674798937401258793343403480405310961334767576571690081488577831491190052127572810814707707464042490320313457155807575675179531074004393916237038847117008679079336664275101720956023190293952497317511506713796514372366793514023727447926066929479585506572093846756828237416525335046482144622919230855512451727831989450798910331398539771579493629088593914822991594046720094809339011567776748744231564929510338815382918519363904330951779954446700956729062201419617825056444020613644429502899964345855724801183675888888290848442103784643345234536232313817988783870364958896721300489120809382971296189740840561258906959334940992627675225087779785342347313254758431004139655520586047209025725731100755593818113716091976679649954767256626989198800761951475592333350921799339831054828693802032781053036927498736952862870838251855553769845428314890416917373112288799069028327732137073446706363259940786136164120225691183629262625905292181240383708553924693459281919669950782179473816735443438154677402748403754910604078184602179225773530875755682490887076953173668594356515633491719686371903301954690434365874012481460256744394971741852994540563642806369639295899856773147509543737228281673371618578173391310967668024999896348074243846164615800497084765503142939614715036385465960447312918085885674801843883239471718995801927947238099975386769396233058756968734696447287494869438358840147450766277914739747940859782086613978402951266711443474726370348423481233745791598869480564387755347398147725099404109921584766714462399120271302282857142228867138480868236374796592625885859516675886980414132982675939559718977802876885605686663272085649680836986231974544195771159848837447774788740140119582363085265375061860218525766390707699463631058764156076040336804078772201822689560915785811411654890697518098662857978683821808663345706121201914115080953811342388486695582419697726722265725460665444117201360682458223695396531637685831451504384618831253581704866922669334908967051491668705462270360611224395618845831747663134371022324885167271789418067562230824313135670617706662266752804388634393818243174142958791842588507469818709689698811928928269529472693413432854574234823618730439746585679271934376167975096762561760598488754505125757871696773664983414948074378153774881548508440101449631592329317746562238763893209545289994471547093977496465181751323220323212704759864706088059253533462503730383015497032246721004963603298088785740395766864321868605086238095982043004483176933157742622843581110677179662514428804807035816175717519705726674413605920841722705878244862155037832917049345634029233956322966221532642974751455105611267358388161155530228308214251912631152932538756325176215046840118244309492865433847669875486883120418153426974471038045339485068327719280939583038582451137711781938724919090773070608783136065536647654834556520257732842558999736908464622460094212357782769409193683822044715525679508265263921565983437355813561113815491947669397565606663704149364223377610412638321206154781915157134509702732341212234901163463448128716392007465251973642979832848803295351371683869285275230035825883336284668389269616360536804876386718229471674395152973158791291792428655404297631646899950069230401525808664550627124443324207036643640360554053173801860661324693494425788730181419807650851750501053694005220038184064817833215201544767818027113924198513794189052772181596287609122665660550027112674334206901515361111947417493162964633383426988049348800960365732028285146669869475616070250942292418353637534934092617001828218072150141325305957614705346718990178102890097509713323385954406298844625377137468004908190184856800270409375874772917225467292354374688443293596508615810373507904368276299056345452392837779499289089362491009105495180171204002418142129325770251910524742761565184038837403456578712111510964922423103993428534005010790946694918565095088240025045774544965050711122124349124687577242981939167141898615647776007702088465418100722067162750664955384227311947353128748597938939317266396971615678225821581178265645274907778091188772889341283349692779813031094560086282390339520169747754583007831879904270928470631544193296244313980439341859526024109518514379830515754350636123854330872104435243921245040239857810460187432578322830565225605397465417120768613614510334933230116230734568574541522662427255217380396514814413958361192883122039754989404066209608738494358533077100850026870316791036489458168150161469834587686463782292065072610572006652096008108455287067670243757347209135981121276256865243990255429617816627082079306956846340815493649476006866142660634245923330225930117275267900394728761781042624316175607276938088625289792399223656056649846709407917742843618241371869395737410442715354026898376916845336927941083499611521943433390430460605388101987386587919110465667273691641027341932625026958021827125959590452730249290503028506876065737837445053087806567083167598530645626700583957080985308787674258305568124913935977221356180647471615636849887287366038148111069070607382919651669926829036717664094068477966916350638165681056525595301593954739190115834782311496026024764221083158894060120638773475256326064292593685034912783417833263081807529969078353598027177617481986352727375329101180418601049807868889257013334967667172648499496943792629575300800554056603828634696077378713853745747037384116388792006538068812835538646360990083046040855338751186979526229386032217108982939714743425968537140450965609150530524347312335547491429750963042815697188167788161999105521248288204277023229879613439777397959398600712486867383463101685815467400249169453471297086577376731897556930441907422929444690705713972397205578950150743947231908245176745795988766941186616874935903357456066555342487679795919242894615934810808893711384528238010714978674068289191009655414098975118035698009475019780117265267041910696848180187005344214535567546581196622356799496198970866408709415096303481369162287734142100180206509174282025702077574130977488640803632762280648217077561497695142994923991778579367024608346708446887810582281308073782358149734158060994526803404096296680864077719720124051992184043730739886212752315543316869381109205897306600701697234755109759017723511124657584882263222237182373849925344254487206082388954935822246078256655716599981446094210810246304589199707884179361949432088216947771219081612507490746401420297628395064474137529430835347124440970998782741941676688325518854616968785484586135109441565319520821696164467722529716725137138940431015918824363550386288136800904757584401924791920944943793065481498435795513450725858551522797377940107358901776136356862477667253337698066138562002791068866493945376543745490509344458855789905492114075683430165480317843939560727513408989499348278283800691793478462265791782645473809797811867184833664572623587751341327293127383775942222277883890296500373346041619812116360831763223629499485385892769950120877384564599321407696898218765790796853756074549619082106266374146990737742134098547767786673709405511647367945341006704886141916926828197176670868587001862020200216316828933369911955341357177884526043225487817678546831257285580028427947566756060537986597378987134730692661703534519255774368683904107623367814871752056663623387279147487099264717406360779969919982687257596350469155881706675082712249256329513824851010626692226277354442629626079930423352477152026743761254208829766177371664148511970345640867397584770574591190213098024059364078028106877538367141597837449208368778370308180636962047850615585972809266299389733995088222443758769250436298968015579768216124766236302139561199206063140420830531897799998365326293801865022181752536979415551414310328668736186487283595091425546181332619261306875721008769652109188109962037159079420465602183913991161238254880338230038994394246958295953563179932632984006746811215613180686032253629730214224010641396583424790939818426181330529939785713357564266661466437888402900262928706548611420330633522077291921479280395015276033830817836903621581892603036043602746997001411537434657314970434651596497314301906667548923890718076874906449961021957804249923935414823647369748678187944405886290643705485169730072179218339810454522988961392512053753103526441897114643778379334373995395470461191023747579766362548682555287106558810061363017667275462346295993818627377443330707452756623644208293283724288861162980786660150634299973990493109083229620795526520572371559412420892442712077398657654739708687047557065769750183038475370486553368366615278462316325865840551839579818188061450982065665629403778421084745525954291473686031749946155080060253265922776857076143152846890802214316892768987863265325593487449831877514483065952497920603794517752131452018811364588535384942563838544584653826559802001858827789492819601215252900312399083556267226004247065757582362042061797070834298059403290315663056329958660890994609511080512877944988947558272535340571032926964567982927719027478533577498100340149328153567108579602341413322418780101237625217869794102915314046297978652373330095979972852718565228672849144957827470111128329159945494770593049271683169978330215601270356109219869765617729532081216068109142970894767323238412760375211899247275642038365318048257096621566919067897315995209086805876036001833008506571610400288430270802865206373139142364871195139527672391896138514397844677901403407819249371502344772298028311108053750621565048418360568404632147389722184793194339530904479368689462984003285963835984094412583361497569097432911862610143387243291044434786078945405916804450195464393225291775913362221005411401274388102481027139351811129951350967599486698888200670898522096833755329899374504484954391098186552262549954927519418351108324793164505608014025548505455165072921383538079196083799385287699578902456138794769038696761970500911977227204317747426979848959629054726286178053469902013941105975399140787549361443182051067512308911748242018303573118410141391080788463502844377222635676672397927883751344628584940390131605186268791095464273443947304736589727965924610022547154954720619662354464724522541818143447898947603128609802219033625915324609939825228316841576934173299848610164753099750628290954852857884987940609842879432503362614597691406314804034753860713317313452013679390783126789807771953252552458644890446795286766900160340701296368330342619972259697099061046626591334173933506586371350975191441077106758226483355500472096002012891814795960871317420573061355968508613565406648812830311300542088164179444951758954197422361230077012705153015873134834953979590081127611262911306869831337569789707063302019788145710991245746648203720164901670758147290301672458607026658740594586255260047743712397847096940354073528392810384477629824210474960561481503192538114949149783786794786197859319308178630349705141863775528379042805321917594233876459491688324296007925299058909618107552263161498250649708378213773367462490196593189463757064266969233497433493799184192798272199730329370499187543364004000246784159415185856062648041305406664011605018688497192858810764335774040999431917939807362383797579578407341307148960851450927528201495027793254729100488535511576694334305991255536911583976126428819600988054901421952909621789480614906172264538035896632664544031233772953100709250755589840935116670803891447396375533061101994239844764549284046876982016943270025378079881468426186144768239731495920672390979845609473069987147855738867870923181546133422169718596874303641338935683681327123492211691067851239919775617317467557648355049802803879032899411345344032917804567246139554672285950585856437584119046707967303442598130405586000971474431738324022869377558118498015706822006281038024182908751295563466659789032713803285769398268253576047250466681721152972879046424933072279787954369075276469547331167960565333618738544495796041111773309201012027358168316867339347900755236808036496951579411704087618264161375683967403111289132034576691401091259237898015480791513893534957625550628065940766925109406279068412485657575052292069468775911902512908589305697792624610240301858868866637207871403643827238181007125535488889491173374143116910347913480340297897610746004111464604535065143916270878771693772875678892099687266446452631472867157195661481839894392532487200610197695594829703419828209800125886190122891584366869535275961180176427132189018064561354057854673142033917661619772005241577595488391118209443092545211909505265528538045387218431136915824342566250918335961503491896104865686856710122275828137210901802616253718302771104330929871290581610174345773351397921948793425575332816492520909584032629182537677271160072518144229762034802823774512259044657575700732078726613817047056527868185113538681556894932136209157980978361443664556360545000571697676123368902395062095118548302241832717393472046678182363998883619025204684643787168197513807686597172902865792197585855010697576029163318248502198695574738213232559079539947303098733064828451200041398216456470416322087686204257444620474132670894396926983448894554593012139312682370938672548608217997400400347367189088303345518620929249479445874982420216323496792690667269536475915048324454667118733702234496988877095447412155939555276048747768514038767008125212165577692892729014882145812251574479444962161316296018548357895783963841776190300368361297880243131927043731785503513333524026671934636741857723354864659975033778666466218865796673121072823469273029139306103775194077158330407461889407050943682166301781696794537065973632615992285783707634588990200821840673099009839156533772997497797296464939944940363792184423386602341776291184411947611485127820805430831654614225025952792583757992163146159995620439431288552219179510127238174770481287926623527523609013247310480065852190490807206700449357732431345262061560449028626197382947019892762916246465631320210783892833805810468895267208034375236052437303355206085434461700078225743599964045079879202954759739730187054002964125248059881533888081749544519883276573443569490678339573789215782583220177014503831070824227994560386471490831190691765495158320379103149780153701477351498193518263641608048428247510974374889250906040919962432473038279339232523800311787729022549705191634556777681655056903674386904549889402528260480963850150652050721919961646886031621622601061681618346934268100249277434857807863732152594414072355444242556668856063120234171185640167929174373469009383812326656646810789485413967912306259734794938249243503879642220579416971585166290581167401073550951590925089928168450046846843276940603508203368225321102731736205084620598036949453584840307138055458778707808872866007888974265228861346032211047180253533178805916320422874402174263594389174144798369123793923093215462579917933922841584337073050461211237724380386517796078483128274450464558913604134228905964845886972941117599139971188687532762793230994987428264210903547609738698602526842668616664055284859103976237177833572677535115240847408486386506230729010535423593074328670786377297150017886245465613152247700897164104140266149717442510727884354482557261903517215061581676031012635659204424504253953456403672590437402366210896532067530971322208664959684445520220990136978747520987087945400786864465956760762217738944645272089646302997234541730477507751619590233232381456942507128315512522991625561703007532022833306801580703987571604400257814246365870607580141101221080196976745825869299643546853738727983093132782698643207945135310505505724105513253273757753079955819601328016643190498182973951823928218697947360944405088653614660389300480813377316566053506411279092780552497041471907806868190667293039783326721530308420945410623326987366906618346700725597540068583083873026634865628114994311871371824833087286442122282138425854290691006880834972318432050951328647693051020567768484428520718976921842870273112333636290516148419667979880605923377148457631285938441059695335836994268478612902073329007356732523813387180318270112341476256117320777258124505239143718882649430791444121311393038439219959162416407008612019888544251388208825030774809805052403882726059677063468452077033780785459461566694525268814596129452394461762628646022475772084182379432193249116280842110028139643194741929680215063774964774722670539374800953264698695605901303540409080235609589957124917970165988011026486362513701561494473641391509943345074025249818037549626687785600301234339245423225340523756879120624916674754724028311017979172549159057355235094934523319976013163936477686209388113160229185595468191785474402860269050117393864045205371498478366944118245900125685202647483860833713093062592663153425257342418578650899515938688336714699539329438949793641753181468957848071405354528471867067647776541166398475821332812963325830092145686783827948371936351691943336445680126130622827762814137703396612813200097980644144572731687963769443221898244862151415372292116085933124721411716502976610227508438627917253709764201282726914571087184479826285162870465633846366909163489762682882418208737829608215853080009339042873291170112514299016303250499691950187770777605662709171022823092420115400660115413055623437373322701381562200995769847074138585503054827103631214230931052899449355961355552597914229288407836488881761016920639793314866917382334357294439529272412207524266485578280293052345455383434132680304713857871683017322397300014541993648519373223042192758891163295661425964399547713813885772932590462270063752407181049238292037412409909938164735750001384013045164401514612976766058027369175738026893885338329157227055277590401443013389311936170411789149963811740553641192103348448187020307132398715096111053267184530198815032405097286370054949216153982440826051009496751982090997928778055978536412734596035744574989625741748199397457771803716173415641261887835296822040384813861226393363773636176383945544622415075764449337103172433101331190590092295189533379657726597903532572786271825848783656093952006311175649087143016299742464859171917653550458412567712280587473747247183023173802404661131481477200722827865308908089822277927234169033850470874436824940367720744470270944630805109192662648576374731569386771383715909356206110076162566016460893956582395569775797378223522161049917564948749705513102154469697428913941058383322027182371221333748211460202388754386375558528587940370819823171262982566179689843605762846166684785158671374508057922574475588694555418542796309815413105493264202090491181332405379496148655698582954177658740286793763559951026501984295399975132785043447186979084607186937924731802831500057942417717367075937919593555310178995827884197245725287350949542170547824267570239991434616746875447304680261510780302620862827599944534486593274565244384261897829657705309417364343460631277200942200778541606602120215953377009651511064859464802229263161506755093665149744389352823190135415085879600889460882349790305212465913777586841417446125924661686571245615358367668146219429422134495117379699210225554755388523777168966557540127727949677977054386689500110035512935995077067101379858659106170652240605346854855922927642617725632461165496508631723490680902308454654720347824760884414813608846146313348618249315311275230264458109500149945514417332227211170992393675427472931322784524965692777605116657259929616307427889888162410194630971119936775290779247213456149350152238183483415646749275632000789004426154119113265910446976636192811726874035493567933539588000253529210288251680775266451538688694804958810370132572498530677354280350110684536208817157541098463172841738130970001114087113632132021206723437885170181336304565569834010478890478298590584880835886431904363234178930531904867544684275239507485852810055955703445593886192137253346965866849681028501295739662846279763952423343696522886182722209179353228000497123627202690408063600958702424142088445767441235334124934606135568085352205189556425968282037631752247441183985189705574142654200509221658095571555508361999236012352152587483384900714364210220802002189666910985291707125452588397011481435736530515855441427709587198703733527624488008587381297083669226053752745052728494462051592229168517194841366368462215366281575122216216799788241262887985192517888236734920543012438874700951030085192095521107902787586494790076856407499436828148788343333132704531423052861892321157580980477985688612234060699985773865368478140924618533277116517013367295648655424465710039169091511649736330786277979393203850645221221591540187762973148851690612368710562180252090258303341869793066824495645673304756530129901085583303735776354533376434112562111893289824389971566222784575490107477648889622184252908223100228021833163745708660042090453662896426775993896289989851017119040590809479882285248935364062828893974946847241431817807664064146851657779491903286315090704673844219560616740816945468600852815314844215602902629166868201984387376956619065728160208635444929191652940867211722340326271929554338703123909922195041572301542538491810615376139744018726541750284165330341480873206932960994497371894976819714344025146006107773514664003320032758626735688771227152761185757536075246100714867548220511427427266691793021905369720102904421171563182434458771532158093197087227304787110042156941068040324790307060610698420407215163362697429105704267691518235793293232025016642696055946974472003466176003863119677345778437208584444830520705390222683589838645468088831635965733300775201523949277675787970369102622028571765043038334804186458867929611041160371123958805560508150399491393070152671987415419439317624679513327941047857511607360988387860732926150973482674720005541499085216089993896842232037556658953267385474396867963508569162174387370997687087031461127216798253298672241574031400668077327050547520012288636849928934433408898273476002966344117791461926456145182027823760281824063819652409870971780128118522066326236534235166791526103746236690017412928589527101589112436306710146193660425031117054840197505079969586486319867594310901221893940629361735889744973706677349799789615218161035346042575023236891009719423927602979110981705908274575704445922512556468028247541786974442153726575082848997469935234400905785045947022603522065956971076398902763173161593857023416925847736468716256568948208472457910896322981816985561955100946461804249544722238480390913013519008216228148390970166437720112856996474731861281737548979051297798570165178183775275811558707317946718706915093829591653336089694985917562721185251492789969648099797730678461375844138087613166464646918555504310221526245060126065038834278319941230067058168409124620869818117410070027733359997611116355281358468581403609908075037851335313977737720588254016593191152165047413616060837245295819267919937276106900785589387635773192585065304868360759824413200866985039313574461528384015412126459436366596323911691375356572717409285522691976608296234675686249609238221133921835858960461739063109088228586988223719472193052858251317795102867885240396135454044734280733968236193085784990467010622143203427881046066127700666012019094305147616915096647084793220108555726668495769067191003451717116179666075642476418693425497571031917524110014109494023033719320154301902213341387026195870259776174658881748383500941602096419301742007483360408592375532861902944808066985938577732862887202765690301451918131235280831690776287948005593345329537285137069122128338828801769774080473053832215319115754445014159660171739522544648183907647201713677169320256573825920185324478662593903232232089726240541521099241126093235627874493923904539136710826265967142612992106871191975174022572492971010289449899250074024337874098646989254552829339312269935685308851166113796581173668547797514041537835493772057655446747018797170938891069186105972650994842739167032706470797437708633370346204288642903131360789709390395239545839144684288055306816596128217581452713702051738064629293251701859205169348193116784819803448165752953989709545778471293014765442517718429286492757783481461169612336246686181078301522755820750687123303563779956519167221268780812303740851279227173153159645691694945036014984800375684643461833893775070295672850948793042702604470944022524233544677739828773841214024648583967206216582070629266570142582967118541323659107793357742784846481833804857400274201443346224263900904249265975993071811031542554525748232667144784274411330725008677525903774924122085369548660549546694641826426667702428439465779540317777780948672542588832244170315189082028845560420542423961586427995464842485175433326336101558554915579698256616104019124126808340295877957176710360765830775977585739171826882523849862149043869499021959660917526262498020425485479865034918716189872515153811515084741384835979440074170455632312562527844133190506136899431332763520089762850890571211992068227880719047590029332063840049566254192349109538824419982596740924748203428852238159309608310332026254521784037930761301523019558811650001713723699201900966343225997320046936463093599682664115355326105319480485602899863684958875715520744041577145441995202010542894653925653150964335037116255499648926364073614312671477025657936511512513013986890575696025948259106417953071677510534787740017331142870960219211516593219725691262330396725959832707296648979051533333427020437738747182263876897611944254322634020430187701597583283752257371731334063088878129849381064437443504733092508778344523822357087894024464534070787393091556755658222370021844641464953022467808135252520051217407572555981689897928886256784615802148227738096655499541136311050335549900548508864559299380061163347404500801394150244998798580583144178149345649979975835241348056612389332898378900280533351538105951699381308475373285280064637684957396894218698955333136682035915036631855151863194827639085981905139199028327367667581985456120218110320199294082709369239895082140467240024147266290209015248163222252953625217888380161463462293039490737085152600739116618860201250645816981627511029022889268199290865754287338070740983920429952954260223068692672582403328997749892422020718995214448575914874339842008788709464495665145475295254407610444461705610503836935700016607837637728129276016552415175653027729805272624146172454201998864634312791092625350170737118221884193559439889130623363956041080945843332816218985556566896648030664378688038217189562905922960593371158839023792917598314376682114384183169338751279461978143494505380474897413547216470587285590547616128404766455812116842637009083294222422146303957986036193523083155337014935214348784991845258159913087675929223545932647875082885715132122705635563766125454099703830936035184349028287953480218055177578040711108403021913259849576866716803940493569338358195204827214447447374051550886239824100406446701568609437268533877480175863422885529996576257885438339022186918953918690740192519516972150599083156755371743344466252371327649580015688669259692672441386572742939603702620040312909185232159550407229396712470053858725566493018190463036885445545792486389504522127821429290965715114040867613345592865293625635160922767845406297364779868742854610197009422368517490197131220827088968881606747084289491661639879431341372328767398337877982114527016468021596940578191028946683943757131767341940382690340812326223512215188661863102843037691570785429335514322292141411833747075750052132056386965977254207757028555548083603268274847761363093018494260400544893644872329153758813228209688030467908919111258327719012048778769319765249338261659531798314788764341800334282730976329200784468728046512356207288436772411503642462650819661303077075406934951290876397984459126558840236174880907462631587316296802677501011137708197872405084645707043203175739361402699449747691308904579481890862371952302212542486700246355395166621822075895372818732233904972638436720713705249840920451281423118933083752339373410243735883951825982018147566536038219094528585068009666164875824676910435962666101226359502128463644607560383369336533093368140152082171794555323685585996740186175756129337771095132895705755731214457102603725422601032394201239582890400992489632581046268046606539662476239413590851583266523825604612265839995396872810979612532309549005535521906220755561098011801104818128013545932362795206509292471576078495001857799705779253951910216654454484060905717365283267691713467628308637763322464443598056017765835601844454907887757765194877882334392870777306800151241690495126572363915211807090037352060814555443906371394423989836434814898120678924203630155182137490880655523423311177279584995559036690709001616612174549172240619677915877365794627866488428129576541664334333693100016509869657563908558014958392885944988728827059481362608019705450814792788683578217297219671581450754158093436483273582834657022340884884878506272951111441936747225834998979773419300781557755349057596208107956042480402398189910338596485339675640383033385845707993463546344820600181357322244439780366709552123857978304449942159356229130502884342913741463858251210388818569625120946542562421431666146097793899181033473487080673037874884212251115863093352422538666242981231075257967708136602736744374085232316211923873394617822933490713720546738932482448813180645005902324885158281711065947645844645088389484201964592006452110526471869039611722760738936116237232885155081681479179482514587827850290132539933671188565786884919300097733440188529259653504328083364518534912563278342451593498058258048508429617465088210069466058994122061561666526763681129524705717488064773238661490680063762723934303870132360681308482941533319339389714456399687066215616609783779512252554776136513311988154840626710508254961510836202912489301505904023971686779853768585468271799141075025995453932226584993039370399945930507095185612591067578299895755229417885694168863529521983548471508992114990803408086454883228103788054832666938627126426752827299640155992425088204366569904467557385848020399316543918480972710584018664815389256076340548195418116543256059629429726360644073693005480038122646098009015067803910130830147412253741373969102029307825997995840515570108316057129262370081390425625607759924044976785992527980380863415658925899851050888324729396343922981611643415919092550413064625437463401589018717954634848639890476767140186672560749883166592324900456714218699859544936050880181656739294040998501111882624380730153918221507968890063033277938296904308818974190184268958524402396549398238594096775169568793447329021328180390070622910296819066215016086471409624942949774443074534722856806487349781715648227661854157057245954395322456416826140078974383868205057633929779316300073211207224302245183429080572514393026798537047866937536132445429135168092621605023062172563507933047272384494340557454993010046630874909170193170393186952027962311723697758758484906636158184719359254378243653706159542586956222476071066023684924605850717614493106494407344965668650916133872852677070876752578110243658516022359715876438650888699275928165828959543818941580133207848998749640614667471428770228250198830571680596251522350394192239319615716497743575242179120859268063546859493757515805831211737664466055068193503320843411989662731434777200865787447035225832313136095019337983562802567415316365951591981242553986970541615961169231118626947412689839998716948698236666173372742953690158024018858167136717275790341401918959650371659211414955812067236922963492083370590094985729651399675184679256283718619993169293643993654457894843886211890571718754333975868785945036911638778758703218445431631713419144087055379058992430312470534953993483667399891063252751979776327694452520565300318162771264135003411327413605851269355947039513452921747391437508985778768052471691264780699775115783488055549410434205557765773943974621724918707673538329390019398222380097289244581432419211753482722104297853814307766370008455047730960323155289491544449482384850275977364568447000589802971479843193313869940471914886844326457608851915746108025406866879382519199048864818947656955859222922515983737302297224082515275135284351732511577706858860748610045427516110148563852634051110348724111685724801879603909873691083837091234085417870402258267240592997567115037696653497401118880371890166350326202054325017463729657523471564838910500899247373522420034457990093006768384069157257608754807383937924667385986217041284454374187913025826383533478332267271399170230907866156180140041679507788208370930411551395714118174275027901088342479764005357221157800880651378947289419918240500701147375701181228071016627102058760360268930355491709937582400374001458225947141312127921190460830035061961145795096265523940142719129693303628397508223580327217250167136208721618209563853496201551809366151183184831513500944089926722288127553229484676454283876842847104787295467564532379086439218608484801002940032888416101894134570445804459873447708867020635984166673550241107584403071263116702017323050372980557435837148974469492536547830672340722654837609650486768761229585537966674056265918969717375936549180223796785860980917747089030168771888263878658163418409730167167766163080999065286617536435925140805079310432771155536590725472512665226762003624919807487595174499769836690690957075635842907168483954286734571684364866746352536919000090102624425473676981796649865234543756583631730009957818097127713557777299815783620575841469381740719179599350456060936600378862911046743819841193059254331031784148515169503137013558381303652729101251585112545916145394071819393604275981924526661582998614567116183415324742123627251840664692058926893775553801047695785644152661837587283156939424191708975588149023769711520742982607567615072405047959352893592122709735575041084482752505305037965638797081015381107259950801309660580255618896936606270352069705945794174087894887737932875993841960425994743171775904858512200615296089332685079923148931137812903204582200975950362625326132978160113262398832403669768746853759326856371127529004106721845855630310071946477364132179961852368669338793204026334715696500568387322974450135189910474966575793017625707977168429971888468522124927748776851178906313254483158819811662674681999743491178035720511087660050834239851531398821583913246480619246260156022431372663434028224771985255472761806836440929969228981104535012913258523184419408660955066904402600798722091912000582158911339824560304206363685166931002888072755907011990160060066419169647398059666894191648907925720337636621281409083677330992741315661589637586783151934159211437651090517734396360407032650564179202084304886527902838942468079712047898767857324193975826463287524335648076745440870558849147368651136956210716788486858990512045846322640980861648639467170229069450683532216525657646040511125501247185941214726326844943351190128136630133552003407647738757049360377929003572679097719037074096602084714616847379495746433462475291894450792414014661819503494802361850161499527988617094862937922978884528720660523472025516403309708737280529246299400891070557847662265893670415489794867929256300523844173485088649264174932249220934925325327960123984419590504371625660003333087373786602152662219124913451405103290426226806685115858165617800289786507912043872693181610653842574080193145446617898855393072292592231680560668658398186850518071046286018729597619097079690819886655966661013604623360579969291338129286917880750132794702849783414089358638103525225439275975702772010356582070697157197245077114013452054307700372057032266133843850022292287276317192077997874422425855945557957422228051862258063781572551418191452298825541281683185454193466349930955295196498189300421752242549717049935300313665960707156874916874791379444231015023425109828878106377572780093003543000915654616704419025427379193481268853152827541841105847013720389066295142798145886656256180719881420567582378895264699358363726550701161921013340094477259277519433803236305270932362654448894803113154767303329248081205866085697120912918261757636179044667252777991342501181668169597400429335648195063269076238908982221973766158514172631423051573082646386113468289857979331462562521715926051723114857312178449760314069860524129438676108040230690830579940847606161401927170934752624067965784170686676066609602426155570823448563262266629971591931963546676553123436351850419597636422732321457366057679189996829876194845466257716650013051476524741956800814503320656780683638901181448551148152356024068537894165939715686752087542525248143575762860496585649295814917602674958433925067197475988116516059113750025543236901644101462749802805177662931093457769684636587310094238682807048057488648240167694638753897845348400089069309054991334333858116171801220126813844918101008561584021277071594720508224075703723163941083822439181697559367518769420420171545257474171659583170034701606387428240638528089585198081987267162828270571236276991393932994620159810270121252219432632625196858684279666827831553929818324298570186801366537471650439616252708825503320229124997675367095625945550761755727444454242586595480297945443918930036108971941856814418187189969227362561972678259157523192203867804667228668373316503533931602400245891608782109518701720992935916792257922773094777024373327054683436648089357844048692423900930422649201189821562654320218665796482648318556917058483679174582905266687363422177787738365387704778924541090049263918584600327948529846690512230331420744693433951097963962284219311239891229659362698684173232186440540711371995616780397810856208152083150794211198731873966003771330236759267457059906783075202633449487446387908774391025684412811310614221256245846033085616017042806318580792090517922860226623596929032469659437994040229452809556074578141741300982072229531003871346155393443397435631838035599192764640841933621516438342880693009304759042334476935865397615539444402031220454537246290787719189251065555161474620605062545333232417000637708413128724120572910892414679708415599064234653698677553548132418688171596805662166671833192376511107529110007002725831328328797860769376788495974765968579907707674865419651178449664848123407433098281419333214422932115211210100280595489929652699420564395657778786404940443182973485505125235787425493476303515623452404165907490463435031795642717505164155926222503299611074675480584344897001094015193280761800176662707940138345695542209322659795812198699201148594951475264071083469004816790798304827953998497824363810677400163103832381233071738123758461806286702679870338665192153101292005414764360042862321238680417302270751775359683845188855475688018007006314647147182844705729960523803086614311216267202390226253251801949566234719158611353667110916194000228211858650804202665876137300708973387334610334593433259238379389270310814681436122630726262631734408767407939373447533558510079204175340243094065775301131779591250237419405587871679404721443464019231182427060330147041209404558877317812239573826016144286656908716997127127819399362987829391900064314977306163768723272984315009358302559221978350045081605666365348978599259333173089045483546894502374586774400322688052466679451951544831194856085740027014204642647305769428720715470091358063728763535105603254718452141926069895572069413250022912530619933467004406517283302520742500285418297819177439056582917949753141004747555754765492539696618882501077194886351149249454618285652808151930806232727050954394233657975325778108171426308452646388340270183090222181965734340247695696341691350486105772642365376048915465494109591975296580523583785467417230508468063670925870267543885749344241971976565424125314216812263202907301215763829737641318881799809223178050699519872812065717504613128569659535192456761696588098221391992976447519418892318621677864543535787847095387788435544596284754641918868106969239353257313127179385976086311192621194609361570495903958494941621100392165531363567162543993650815872780720154633056664746841367626107848941195198999362616839729517717305475063248657130060569892976566618294922941411038713637839216019837052301069490220923680889558183548633263785922429788528630426252085735335562502550943555471262945919060123169188792113265150648420892115310890801723379029985407479588894471343746106501850842413020777155489616869936274641620077081903327451157052339033621280747375211886313674152719802446130734259779936587359146033630583905854792613674716999688586400385055695968948394966723224139293300762853938369352140596866451584915091628764053602873957214513429474593133936359424428439595940164416184326361546222689981418942132485371420152436693283839432001764941414861589685555477389233838035883354518818238892183230202688349931198267913410200007466840321970136402966966225142347845889693314434360020716279928536740585967272832390974961385591470396242194731535210877044189343425266252382720003756272115711227920720938937777048084196125339259601788615130641841288831550465703363124303152890231373113464009672938367912787850105979907718000314863489904041423107990928094850744146058405425461058958399527844826512497488627716651726276382017380091899722562090593304563134056537330289021857563185045917526906852065046804881324299492242866410016938648219072941035775137744323898011402872924315781391879156668390831449052670508256829927353531197313360997205118478403747951058688974351208674612922044329246353846544481844252993532890817764266471772357456754213033552966997831929749580579677569700800596194802793139293698463525558275879066335262707335969079888448380048924721187881229952316487479513655390078062688540643087039124365626569254845183453551473297237749162304679935642323146670131371690153839264413620715298040298575051764929692676743838443438285525481013189762827006305959494619605808744361083076025493158655124445837636057107631281731003831167623388258776661070819044343398191227341921461827572014557341651263874399038505157615209136412289694659783511194637616547974496791488806105249851454769002287472511407166031629577584383096498987401038025395848298085416523269406962313100513272294445412556292327963681549391759934550697901059935115595622575319132500282814390148116520395494495174917157284096751528122744587266688489654839251979957035882290868441842825621401621350738397447640055390386960290676522544056684574204208846596398236249708221627005794656056248727307580972089748872163410327969265887639239246923389117296893925881819130876457480541130935144582564977525289415577194818286336258166406043741542086695441591684181263489137635254427060504815944087255413218365320114831280698097610547317084894903231245137065865040194422533812445913695870888106579116849444696601031676676126356850711899446852298890928437179235517130019476035055412171077896595857246626417441481049993767330502303982750862129043294911266261589904310367722759273214363536032502501591674071018380235196808933025496047259879413457990334317462215756147789542139976810769221819199846507151814633285752605717121890524936292298896604504459499712637617290262150987706167442714548777731335920687641430982429515324641448445761044647660778322838142345325832848465895830807265556807677094482325039142460040082804397925065299758998721891869782127728824937633353211856303409441181106874046383414554603794622454688783103883985725244129628878131286175757135140478165838764893204057974667652385460150493259005408828109420981244274689485591099436611576585343707856247197990554527473853433823644405060992974436675257148411968831837281703997545413612194581284288579267440642507797776068101827719941229150287883516382317290266861834654051216888721569166482693967658473005789597788980156123224128141272194688114623731633023965298150997941845092938195204022672038700929769156890183261505657885322900414497690720548425646001991237694501081390704492035295880222782514811334288258977190995299727550309478348928098315802107923856256868739368699347833960001624954181240280967939630220447034156643954912629313386803529156047535360173618984173958433096508593445597415197740607118548740549821386297892279949329960542364212757445653315805712195041957287023150898492037283768029333652632060280917163688745762438785536549493718150649276179109517064951890793730041088531024741394673009119771802322008603684841225937978685336265222402375154694743719570267031016965524509556844296355201732591549431464776535186806035050848757643928170941397742165588862563883283083178988233618948625095813892418044676621093296187334065361926666850031702629870708341986166263376827182852000251040184808552696289766413232928574786088779009665968492701774987573244031812235957187877198702392957964625411479330117344978254953806601429990041494043762596474293742052011508436200754924245227484871978964877431092730341921002015013416784119395555394818441622686896691932311975032913460926206583086435300877863045448945972970644762818011880900271462572572051217801362693337956263379349660650459161469352484385515166865714045292501332547994563380272460040282672771520187663412915007114693700036467789126879452331441511794621564752161007995327761711634094841562723949655175306015799510254351950496731787061961857357931709777026085674354359562854307538080630656838108283128003879127232234155521795701854609019373216335814468162140943618595430078355367315438991517995500680671897455642551888530381648526527103778245579165869775958800001259729420542886591512083685288956704021109073609778651110250643234351719882693634645847907256430236195409291464616745480411478642005076569765617069505880375053670194597496705659811191892833120429014083057671852715873952216934412478378918798836358035608641458031081553143834619738581299360107527560614561643109287097286871897742804414718039517014107718433458650385438182318281285133363273257760892408173008534739637137777980853599959936116770213972320863339425978814060026836928685293290159661838958644715166412523683279425517124224834352738562380368908381939060945272616253595707364039220126084193481019838966616794002819382388544593739434492971720617940801728712926567668341235549652640739810780765795784805545045903717957325157022723946692518256387610772168568263453141421441622347050490283966822575346660624702360093062266328418724643131176006669188208720630097372348167569403957029426105692144079910411428601216176236650977827758914062189311792437687079937617209094354260238774784783690945510571022617525194515163426382704228373874779130832980434254577007447440644023462904503236639066951834202578515485934744653080114578933296118622509362727886160207949417805258627592066034880015089627485516980143876870419659211567836060825137176323078346854622224194889282454802176048603944905842230108053531871480113305010567180135602982042056266691434702802375597455404803582825432499887507560832749784322207815554272030247498117490590272735734790402975110084745486209772056350398877949946401036326476977004253207263031981586273122025983487429409761286338361156705418694350815784503174126713379589041706638042901404510637111287643465943355231270125019995641431623753498068092141585264405270497909540103634851879465473906663243858940603405229974976385252753413446498402225327477028879153598230722644718469821968493302863495585016077695860144459896726954101912155200758306290899836705678621486317204904145403996021656186607824087995825641709740397608068329955309944830298549756259044764424614676036585324093825905192024706750999395805998381119931282653866615768579960919807657194247448941624027803021893294305657955296853410541511236806119414875367371912451485830005977890289519621164493777011939493824219183371334441354961793469695015523850649348787681055325125645447943910633939696631789983426854703300129547821806011937639046556613626081903891188476554724035986947091173214367300860666802427076262631375099794849333381446833750012655832952637757957125608892853717072034897152437881824860987870575592292838729008259714473843917430695666197323990781471938600120618041417652591450000443230573213486994649862476561659077251163786738213414779115818007351672890371317732987982573425491742034635419172551953321084702670127451692992937957420830691140453621686961830580877639354782405517648179624057893271871664711943806848699467928943339904654084881607926304245782732475509451536075952087787248801679737854906021414922890759582574277259932491581450534480071001221897696066090503767342537523186614023116088990269476212374708570074005360008299325155347286889774848433474782009955254002830839736015440187977332846016577207584741455471241831246797741522031367316667187674474751913699442846177803900474840668027665388391961083478891577240849953482562243932179450106895740395319798152162504851714282233810064871014778644327834514349710893483278180764127455318193927570332952128477128705905057199800089680391214791535444581473483521773255625864640317103376525486087180023958367399516161116754432562227356142078149481564631508344035579423491449251038729334023795906046692866789533732113425772955696646451861524451054471918861249118289975026178750333147604272726357072848425190785994291020599020385445512270078023497934754441404118429978089931278435978698931931673517914509584019967052911261611146476967755875858758185203239800605405239148719234520390260753281401835452976305937596762716905554532736475795814223288291651623630047485062170103163611332696398400876187169828086667975887543690170809091402782124789379879902128572745930896645128455547394088702566011403136572233124037423876270683894245843221572316677600328008168659899046806530139392021845205069257093245950787937194284658309822651988249105215181569989976445123193405446369768349060360302271692092429409504234914972944829161848056944449466377712877632388650647851115424938323583109261524387257129856695797649514824347073179147705108202163290936996186282399871115055314777009790240818338813394171122442569636853589827687534592500173082739426174489427753862426571441249284545181449043821257619010834210615088185287072014352987236659507686134060059342393916441368977117969835170264791904272065319773907335500208616371556835936518863681234071717538884409586515429070148744088578505528412311087671845556725781533241303313836244041711410757464993221236290817190261687820580673569984963515206683566031449163056342409428784989251462246179783216892198408716010137365040279307596686786436657912177996527561424942750502890952764972397856937986756858560700214236151622287533443231676587909224977435907869960963892255911646880074799767530370363180439745193823363248028507763845464805806369880318756977577073700588607458990369790362591287640347634103072975934984071342075797062861032443567677709336627018486152204196304891868986772421242931139293133777165442795423702042371707144765779229945293736770452353367408941231051918315796871216136300860850068299447939936237933367149064397211770685493852067623185783927256236327607860620287198033290848726174606996572681233642485645955244425066293076255894893883929185715825108401482519001766008728396153782422147399727029717948021051663061804141956926800378688714633451350073816789359317880368312641048181440116428854028783946254193322955786742650197017996248142006110179450406233815154414498594376213046942766232068983341467299118711460238628139643621746735518516733553299027190859147486440610674661008634974503221432360094058477994588759374754085959829865734049415813861597803012973604033156048896959054332170476989748095061901306718721950229327140534667833491600502542933725039245555420620992436303982389611567095788854858256830158166991717991511003073250069003460113094393240451474138120306748282919527867297672447048110487235985866482978252929434203273302332537782919655466918032509116784914263491771411970746202274125800451526867067597257909724238043304609617088478198236998615952810429374925370932025843228775238044880360359190757804090385343903477319775236531426759674009315120791529886943174974227927073569771552661569360656191383757062994585644187734015899905011123454127064787992963552612027453576883995387590382798490708129703190484921148258888157859505963205729292768625512905495750182198277001186618764742261859437254847154149351199100383862101254097240404123312688350276300403569705820070758438025901744021510997986254749235178514549505175285859825976593701114909466296761823644048735816853134353689535227751172398521882889863086170771073547329049019110063784760920113659187771539577611447879754562250274080847939472387905347198672268757510075423464996082439893423781520823170241477935676153763613823624660590249100089140274142934324804109032718547091340793996458841553039343269950154836617848330783576452335604397914976187480109933950328544591980143636839901496216204037786897409958933080346448804264332403123333634849684321152265289686569938728636940441456494044747572036471907031785389717261329486978855317372611557400423306951076749065210859940505641607219569444647236687499002374477200916538599238058932471449576763901185682670910857531675680033559846289656653437149511325213335603447355350826501879403130422935791128344144383723385777512594068206270018806821433658130639081147787418600068470915735391291275207898988867102237952142763594482487046457273133418347676904897199881025753831801191176857868408976842879832924963360512252481946329312403731330122313257926386743933912647769643747460361738984274175908892112630468013124056634246485123604838699143771655104322603921129372644516129816689735416923005438552596450397081277114942841823662772374985939130364240857686447318034298576301715058909739539400426801562858644114775145417221916802314571706143222649623270829961981737176526215082366172114690858497694923960747044044521375226166493982537459832077291818656153692211172967236497252709015883821257982474717668662360936770741441217746111274348866481249725341686421271358365970747762009169480272288744594403618218905317110283894090490242509202335016176911793731220773663141450220190820085010939943839016171065221653373621742320830111623193034962033968318281462606786135292369634775457448151405892899357872745008270085957305299040238896883435839059601725126244448096257777130039341279757064286242297166961869378521007533088469288166041682934386519689754577860391803731930857381309106000822434644720941973588483059559798954998005234020417004334499723016446120224116383666755764083239367003204976432458148249511431104907770541387379937158890821892470022152483101234342048257995616152654408605381441036087653862507464070400835123044516848151152252171574284689129102090980323894230049781150056575329525843917799440356090586646858374134596301128137692841292820396696331539753810768174862210559787592767714203730623452165314085764946703390311196278713765582878209177573038024585488734277783927081360839001211909712507276269759753445035907406683686271642701015545841717849411520776194778254936956359192874568035968675000389182966149487984004798430884014139108198117320692586261238243480953532753213834726338282801140547094894433221475544217006324937552608965293079005389823261780941536319165148499627586396564661141925093883065442998522428853850824868711443045733458513608141734510798354960325036069966061002554283935200921500973587087391125685548061130400482567037609168035307883465446948655196381867540680629138337954600251424813297671960769807682640603383747377615656056979140301445902939255661840448098591241368958069890810835935278953539619239524736970925587620495708578594227018339627868958204771506704002829694079463046230029388773296351216793747767296186727220242743863560841794919119906974881626356028259171858170667324665137431294271794428239484520937969257117507946586748705955829591078845478030338892856332433469475851326909759846751909879998389631493094543292815674048575278291200072876506839829795012394820299047969988739612326063023791367451534874173666908208295492469652393223041480109882383625629983732485205053389941214646133789264424123370458402597852334824427097021013675011150566490521698896983627868920255356029736510728514105485488860395474713307866766280517978151660805465129118795533297649517906947036039523270820865266636716186650834479309694089353769560096210896346110974956674138381199196064378352319042126364539876190288942558584455137750869217820259250024979852690359704260127706702148832361019978759913907289098511030573365733147979890722749958878897845791125510123866975714414706878614293989206833339017202397686837293522913176820312597025301536909056651175234012826703647365056298928461974607800624796432875685715822438811496312971593184855891729583822934741229546591972919270321600665661278177530853479729767538351825023553709747178768067743045618043166160836234294681890612057256562582369505520244651844765399313406608739128596155528850521719607499819442268088176450930921208027756873299580138722446567542091521240253573163804995548505889508177114769096504235566209688186838879759116510820515746654492647436964517017499420218923980287758019538805132705679459801247018774027999971141614836635212587811982592352287674070022824938975298568464694740365663059437678379878838787495140755951368279948371328634715646357072024104417584787248210717690024223216311164820681557685076273449811591954055644367779609646046426520192987822625414204278366531844507456843724158356917248938793207941133330801157639502041694955866236613774736666800396982736784787165917105455635831838799418028779085588264189533289002481727015087911285391365150532685549040961669732007141915088642151148256081962245961655681683636626380671750751954106036397879503929968880732002205853230283292185729626024438950804778205879067982998838190510625821410455201719125452602814300024856656893906466594185767199407836741128387823901835248310331191084633660922545224477660377520758771440181800573148158510715110544451510271291159213051170683346596864813241974506808468269235787436113369064645762802797049384271019437981298237711956348941137304719009654268678499253350157557044062357682166074949853469142166958243064032046655578819050377946362051474184484838316840846491957610714795245100365566249495573766721990991841413746208778415009662892868039663507879236924434954229307232850427002964291604734814385012878733315118656330890959686144379804677471452795128327165878320744327520082206603919713639196935061671860935263168966637838721393922961644823999818045411295674647896861009632737080322511981211838937681909723118383478609739570768994057695915605633772691513328632652908822402298250193173619088736030860694538387893196279045928280367316022420467710543700442650162859813375345382067069586242273612219386581973723105975796432957487139996108935805818500740817473757395228134844617124806929779511388524056733737074895365568890394929315107598174208737828304579852236831475789908948338457309460110806460931992733601524753811504279526814917084032717891323624874585289343724911384037569714660707279474717723535086430425406625267849110377909735466891205889144659226985891450481834659700528019556508841852203124903007793446556299047935372460258392538194894903723707483382739583583562194172188773838773180674699749048051288091116809928023019226086436580136435596535045152832840524279124020793311895355301538957958469662574535618010844497078074848333302724148269310729813988863529530382238670741477627428516215088094171227690473836103113684411213443657271058601888942823405252815713850677893090112897231881402003978025183243235717844089847795076730682653016633937504359330131120973110057282196897445201288752965359815812679684294560526673652047255141158786421587230997110167823992074105537447441789724441718697375019127260077184566921052729723715148655000037841738430029557966025921908663950138407526592416033119613742868296239575992103699898327565166298622709452292504268288679133245923031065420319025418838442286515788783710245403714829032078601820105626625653232680125835947371203325635064126754635064103210218426858151779155207625039935902276483531533292911608608132533681451469693784153351545943009329453940158103199332467526849611546029747131722126336802708687394602812778197523118157111248222624559742831135647628615902278176509184960823397160925086608025700655885541709190999348446049855095015057980647212973288632446075732051747657609828771938354489345200806390144035216949879564840120198188947834205142530943503310969713503969876985345843618861686537188819425197502722633431351447016686495522764627586644264679384323054485264115187308006691091352364257051165428017803119273013252748815648718498900319668710317204757174448368701369582289242320621093372523220891260459748035471019089678218413517177493858239815376504886438167198602777566069814413463218173869596990291535409478287172010049732078289893134026682626658839400740726918384212799877384177037306675944799642838595019169017600218674721426816895557866134801515421156131075925149044345746840059629160325893068819525653126654248399795535609853036682233800734414085002437223207265171146851647008225118364634823622174670057563042401026534638868264625445152991241347977068531327318141205428940337796183288822962431667494396089763757307074910532204139398697450169075538754512461206734579036450577549036592474933555534776636758901918053700010600657582415871492398228253737708059178807041314833431622520781671624620336358147940773222237627171012403641689095586421567006232114258372286846702714806613136480706021227370712926584001090897283306607210458655649092804532255294000390450955030413665427103401215612065250095314298060934727190067260987782878848050457200126113019068075560137023555940444020007979714418449016099198655445282603281607108629458214673490257670105447792244276875062759355960954281052802450713655766006177463853447652703829927391562142404062870367516539073942253712549066097347854116339995517681103272765996637671955384678996628408593922333901560794007857325764306189389858492747048549776510103487614108364282345936837780072418577480397529159674196298902546271537524374504152497571333193739151106483634343556623091843427308903173333723538527259207272117271962815320378169128957644849353611664852093098476130922827283128849801472376248544655865488015885102766255145420382303536191779313472547050389177648420253897863033336508909866198211947788609506778316061439915219863240031123367002538857503008560205793678113685367846673102627182214450861505243351588414005069797372686345371682441544122626237847324189262754214241700701108779727632948622449522205446385219093359287711822194230820396991557249973937844551355058236479764853725229515248921348164213707201481874579176134847232710878087402055579596911346853670387609810692798500820181315710809613201493746691234999506216302486492938480834474430118491556652545731802514373254327034562063582884270486664516792485473711786953330790851319504067167502489512118811808739111884328089750852698736914657183384039807525589784712674788513342220308186397359423159924403170494942475880261178593498550850181836030429025095553040879460121000551097908141933802095593862535305928479505453815742062340134808079788341810089803932134920641084234387674950473055000111636470430136901878822311091877451549383898750789400704928664423107879140930716293766204372823704094735750572239408388576511883546659639519191022356493465219529432544009383725644162920921208186546803702109806607249424186750286036174192300688615068850454445563034460612611658790259602067552779484057254127723613997864287343416404844976315221019903518661731880577334104646342842088774570493889375902201462075759623943080688918110418535078168281679514395275819745254553744350011571959621928817707998157897748488161597572420816911418155280204657155289720046474543689704722861465119684564836793722139407771337767419717970730357930410183058567439385814622915668915176877334710619356390067215842258938868763942602142718445463842752801565358593132863651531216183291028421710053750479748716255486676154197950916273451076574880590869696531516558866202880888581983251467592393425413557091503003778057959137451396486553304653618382055162174316341605719326151479586886894795655057986343817943726315797931953286102286743217706060202345239247802327542296272160218832158595685690859393631909177459936476379006725303408342288038658023299485519111655491765270487912891619322796457427908116793079637399914927470114588083634412032386123554793831985854676407611802968272507201701959097124047144728575615151624796106825649617499812630272465146132597193101812656052594847930510704389694424271071686668713661910779784409151491062469669224193095590881798475336321621606919839900876688771697365380154159109661186487955918339165549269835036494243512347464037317580246339772380841622404938634871232593578514203882540808532426847629188128291506407713710247824775071763307546600681295020410429222655318697191311774105489889815273369634089648421054828299617642896992977115022559493382456114925240686115851642533389860555513830751689722189042805215835255126306998953845205747214271253800781247640483338129115467147503043451951579571659075618561572115148148586632417708862847356936735601903023971874288571615986470460820973491548846289050013748677793659846737925241482283742110330671674007104977183835759372523670397018426768665777411517027739791986099007918304438157901137827261300041838611734638259961526125834020559286653311347347772642759517965420056276101449033698917869841897239373822690085684376720245105572432098264197174747538426942912936417494152183864660733564878758217949456233644552852361513086238746944300816134358815743655876097406271542174123865448047919235871907660450106660128414541050059680120175737006197798887490628390944894126908419895045946470343160773890805575082306589528965971156357427494162171498051078914295416497654046455371088604855145962158420704990678755059233376260950807982811166920843949727338809400736748304463390267320848432913463869455880868171518935532032249064555306461541126868775897203295368488827620982245170701668106870459461675676398412443969834676281730843308184235268911872917693052772985198070331904472756559498574171360877362382592795123991406997782483710834571026683721111877325309394742192390365335489851029376900599529626688932040595016694591491216503362827245129590288371037749019477376311775999752841455653453713703249521904480782716027731910304557858492587463021439232167753454148032655574391992440783316967364090072613119717805558371719580163768006408361373734955873460708271113908578751127928718918899712372806122209816377610483137527820682616153440843356634276146992356842694675944380414070898108833047303465963147278924192700891578540713583443019472718428585845008861380386606093253561255125932875873932873541497980893724974222317485717560689479113880695953661084167681316629151146944603643460766761569560237819466087467811198056590637104424566202309037815942012082426380168540199187216351834713663104564446414354736434575074178899078661613986137202231550059183431194234902649845402616303662959614020812727633651624801412972359691191763934093028331865357742809383345905765300330354842702050141469485409526635685369133221364235693088151395804368714931445430200231660054833289042383410801777885359339528337496388028565455966164278898541425017610832921505224648230028328086384104134391001050778050608532532469616294229124669523268289506425121099668676576251431551991074265085227114871868306838049124438632509486197681434717136091491236489364204164790983336289098251310312175187643029685551123930658866688369058068665328908162936428113255496173753703588690920097180084203233552448027411327647723818365417788145878872222542986050997994482499026263313102884931676838075099872591885552006864555697533056194910128317404998282867355847489508475421223814797951850642452599825183501435760910682960839523134665892915973712375642258765440541550302515602817608798019846539088979589683062447929653467754762233079520141777610947740176796997067236106727877406802512275839865056483980171420277785423514467461865882160681154687877297389546129583724948805619041214617611533644685756814100204227250109558848549336569687523178277114995797749930455431899451100396203065136109762297522357817617346673890097954582923991416270778393956972024004184466760188807560167956406569310780888811775341457425217437830071262609551907859111858838297176688256313203094953213622025933403774734056675282519227921511879560312605117747964480141149635283833607360081789101872366584466812418734381341378495120946264073908441888871800378116712714626199489060454665272484379359347430489638562434592594222402133661629882125947218272658889205471248630983422782360201152458263532106863723907775990770772850971361253949486195772689061481392877431507530697053150824284617168920703470053818279399384690019758657119095847065581047771803838394593835974330038523285711245426775494969844403955883286572867704538776977056909023272406567810159243639702058237319516082210879103617909631120238754944075327485823274425341199266020874030285810663373786176637676562472227390922238920587309216155654192443616082600213739747723315178234556718627538675124561306461385077666054674751250610196972433932662836684213550262320717747406093117364725665437851692715863744535179509466920119999032166914631702209167112208248572134445544229045739997882903965051855595913193005941726726354122425216071544693292286259684607792223398505268241090772787937745804375192136167859359819913419873020005790206965057246645289678578858918024719728901793064887344800856925694347999723638462964601197001325399582932501952638530254503367363580075940794804058667756146694929584993982055269784851420895404744834561884884778810189537002030108678517569739165763003148068070772525683692511514514382991064575199161622428743547217527620055903835706399396340457842896868590422766898333758062017932692765956459423872336546699743652221737726081067130227538888689644212397137662087546209120708516128099454108299965267190241144036441113032853216573448194310189705690690938630263068262047604295318883570244943604456721595423143070029382836419349264302571541532734533500377937562999025421229381548124860148103355834709796478805188521946539056060550541816508610795573807599021584345143979842571519142364098589641672138356201161421529822372183622930135523650717354508410352043732881557366438947226667966331362107971240021055546466741575491925635123600245151936268427871138183221860457064215268877333293458767614475892015194962055126364969120900297676425075825318801362515454901933315619757009705374783053169379354816418077689645553720849702030560464216485236260422713163421806729018858173060208873213502640741641757689419557572193702196131835947948064014695375523126678189063421563751984011496179646521770701909254507878153064091726398742243991037621970362457512062627930088783641229238396389837895461979197574710051108335558868277832210073777463800537461809790957757037548155827152900737895139084882646793699919705823183847960744537739198317109842079203798039449792744858199450487308268367192252282995409775651166931922255637302287099161159154671942830598053734205207629930360823720257886051898288136585634990767730568615203055619763100477775171681598207076066771652418107701922886842311666176020897037796335455820616777514225193323081883265913339645665592223537286550943629107765410538940786731543058826502080243759893479036030178804286439983890969681298386563607411256970059628042736954278144257846536014520560246767944834064336809002088344791183197516781246791901349543139174503430548881029170132400884990957536306057179479742125300491341134555584553528036834325450124823112757347703793288634042829584293011871868687038574626665860467360692517835624999736262624882108468475452343876409647642533376688550645555348883902367139903439350719425382101261807474721887475981505654707515549199481237135971709416469237735265721482051781789578389718559901839889102009618972442405807357484220473011453984052488837426779908133215853356816881090982198694293446458791348052271780972655263525604379151038885117686244006099682340050389940861300004401445571685203385641858583602166154112030426857279950872628693450214365566143285428104779842541018524190894567238261126163752178130703985062801200147042046643672974401916310807198799837391713867323516211470031942087157619743282215848328339332057350636643424123322698890362144513170771686375430877142650922703076612111342140831842057028942245055965433940133889884264914393452642379173114190911022367132109446425701009791220225327710147453845200048487636830734268400885225408695256408006326276915974459222292233536800543887184917813154552090595428594231658994435449478221759390526059934624688361038431003285662907418245881768746064416187022129033864351632303932733182769501766463998608676449240619021106581401271148828487879604567170224704858186331188416087606482701447499211590411593764695861365780697199857982719290261200320632245425383245992000598973157741197876190146246285881177609903930154613777412840798020590286513421913531826200118197532453561776699576607458127915507710197573364981648483002668107432537568233768660526550507938989000681778372157000329123224300080071831010386183659385298366774516239534061825832131902323008426687044129540508122159037759468964563031421934016457669196695736061211575937500552748211567818557395833565169031956502902513339471044243398744933364399756536779303512330981497505116744498131297992096000280316328785019974650823812562856923369726030537926481032696268592137305793213039635890536304910364801430192380390648836646734536942529465652194840100156205234290148149512648045327690545296577422713166570102685260536244911174444074338338176074630346801801884549451155831061079263977748636585480887590794439527285065100464534278841007653986854319828014249609953844303747131877883996015583436204099175097321006380418332079953517237811299128435642424461504533171111116812686807110448584058119018049498712738753345398052953701891382542500564763022929262347427098108210575064495683033972016976338298813924083296936880178951565452562599243696408053560998177683341133855364016237602321966209242042833050380175884867535753766447591371764188959908435310081593564965073250723879537030426174752967147350832288186132486924968515098385109195357287730828688746570002379530318177912262084820653212989521364386159109645880408792957687798274888271061285024331377858972544739502614996550016045851798169501938395564049445236770967232819736805738089145361178952310669048186216058075665284822812903585326649623538011406359863550399897443439171988800855812311071446996594963895686482473474479457478348864282903722499047455808736032289000393655092916182945669778248068438035147562029816813602352856769095617035685654792157035275913749501152858254011882928169018004676897119566997235258082556960123353065618397618053750407725959906331359902076471535237417146035360930000984828654435168298432228843481444714401723906121305810284514904429133447139497231014149863877202052023501360411977474565406755582318847653190174567328167508748026006229310052762841682707794200615326206044836149610690432808383840727369498777699221885215358675297378482052514603833537453372468367234680042897414433638100652270916018735857496990704930308817506985907715180685200471192792054774386394467384901169939779222483858823365713797751134427082941660428611090199109231983671553858210807945394044910161449169379762235772275635793474183348785114783837200111719783512282377063002512820263415113176380840127385329845725169300533379011182274183031619639956112317232612536854552282708882459126026068408307446755154864912695249911651290317289753096628096908458560248824017251252374252827828783850237056484635574350681086445172738850527075136628319104601317391309988165708878069692890814013613436438983610984757877701081833792318790321661964514636509279536237686890598860702356437993398508357635173043761209007159624428337241342579587783017039466785182972605872264262203051109678686190594722225909155829577863475690212359323919187309757263383472030382783500703409245840343230540879296547901076238773142337087735899926299389522452332594013709874564980470058355101358308152120096514301866554773879105280962615731236968598655173613394342840050865856584527038911322515089353371918530541055354063064528227038967166834520132833662236144090722906772275694327367493635127186440604934414716179393378759729891984055273071085623358323649110050009890234122097915554744377497597940369460960953930832109298502002921150913716196981055253649710096819669965966903955047565278673273058938013704357825660121924027955402250500882032279140825140243850355533892535958645310258792107082854724396933454552274237432720508541392311460148676511535473921697901295913830114048522010530029819501762953329527652669986664236092294811542547241968885518670197006354282975029108302272256942462627534813919731009500732021828482747647570478102983748154762921436577552722802149112063573708308087521295518040947247626172976091947444192648478592654989871372606231210157354595990511880952418297548373588257169592696605153667543071539647201752697483884356014028613048957510349246186728732011934381540770629026398657098434626813692323993525873011227002665219906661354648912822989858996427342448619705958162798381359917084586766385617698001835575586738244125309852799637373238913941719662359172282607669000494948955819471963831674546014523699422965652997326191035246667193411748762012885127780235205347721223392503525748437265075018900228486371331849463326087441159250502096492345931428212929533023360003072699833595101645719729000287804589228000988647499596350231579606199511292519241929036303250441043951847258593817789179123261420677017424299457261802287195259001366421956126440241458236467043869241675303988181296024969198961205926106851295826354107763962678055965908357991695240360455768369326333207139682790980253685533232827672070709532167474072853756073195944784349884569757607176316545342148464542139637524929640347978938771325381721532704418837516524618337194482372952614014724324637499469030115497353296473178273956769263083633385960265459227090016796723217935712106672028109909397433209734086559183202997034959531285335170604105244535414606996320115279844724220634561136030273428369889426629546595215466270955736767215258629428136727182167459654312260588496113869715492735323924093659338485087263188248675068683783232347755780180205165579435036934392319665497343065406912792696620804243794692217552462665503568081776653879361089206605363541851901685910761844568542258331192103936740707466819828765100136015630730504370461995608312198599385564706767483492993976547057572770585208715932206128993823794464990467247743452697433074299422539671406157606317036567638732760418218869076217090661201032035454782345993315419038631314097669854208914841281636784452941935855571615018705491107962569968676578086263245153568163149194389101856555932231889927087020902073264390428542624705542101742946149514629203330372876207214685781765563022352551364132904355700929671916786061459379918186550701779822074400000435589566217998503193254145762524201125591754418386034278889914603275411865888116312320954867085714185293487715715314075474528128180021137608479028950436007367084197833068261601037433457842884735284474018818071861127648245629830967392335784174284255436865573766527741367095864967673708408957667153651737738231794991431065188896193209858833085392896789400500159474952479830894893289115423052519482408598784302816824249436330856642631899577570888581786266867790536161186603611598468583059580426897029845839288550340999136866945515625306762285402790866302449004687345850505450302544711800712553941815264499371618062551298373606211849374329905112029196072626792008807982391121725937516008160529442596974340277481276112806659663335288412428508121634465945968882892156455762359546062787454994248807302180281432750177650153900826238465522146657918163127452128438035694979117757410918794524707694042026907729699965058109793281458022832954864034076697149053828858599103369801056329844063755261889479328806534262048205538028483841373129355154158683037002670585314260792506273867125928782192266800903539445481297072045325323782402183813699269838399668199365286250262098876409600617718365712387445332884642081118593229823233846810223324998030774388075494585491979512019393336148349372874717749552919606039823452544956915895986538097111230529610271480706903711014086392833953898331319166854122006180099118228919576902960641150897114836363070708414289995222792891754664324310512318310335979137845412144456264983475083030620165498606118843496765526220925461733621274596092110651159463835486396811269016472734927541226276213835333496580866609382901941211443812897744190164384903524583356342893579898029768703346479792401556071649494934785645371860159054528868654857655248284182660565858547824960205048745440051584219933565411379871592714562774222608812864267600309146474394635792967954420844684480717433318896380539692654705681031449346056602384115430471129450360838135236218064185214665587430538005230633592348042832804766189516804380082597053521509230231030246833461024315588420440597641932269583495215032289833326950274490009818327391425437193404176056046611552053675568268071898684425943337862209456922607012689655469171925773399946055218963124992801313185792318151209841829698373878925447459330406865427446524271554652276385169915986843181488044409112707093368802891200815172334994186556876860016838018786410521688886623210246075826692074498519759024336803790766225202901339373591249415895414882685594333765809378147093032892543997579042242972663684317373239339401877568002399755057649430594253668775115229431978385398555174013549523624467450062518647242489264737015344348496189800268759143205144686411416985832166452445857896294544339119258459007807120122086552655443643455734545662535291612806704852391345633176107175152598774734340120217709545142610422352421433550819828315709182615893876774800121710458768547462000104155527756283479363401623545774311426683908499899613056965867748490911941647530665743452464096256972971382996366686523003863807730681325046771269876692010702801841536907638245687345869847651196067604844514250704843391843687776045910348505198782899468771576864539250425669341884133922195898485980333010501748959659849807325140086256098085678756389492785820134501358079835826513673558124947186226798336324438735740251470449316915133463655006314704596718510568813012043226336910875503802255548142017845125065660347833770179365676380411894579461889148958528537521160747340733782997791077236309492423206744403757710117276175646623141412961406196712328801138647236576408664731831417241471125417188972957880202075049871556647762130261286808984602091970879282745021469335506847586432860738209675207528841138860505156290795264256106439392048478030922182490383174067268881174373718990174488179990078985548799959650167050864690096583597197166597745777994633381919746279254786369457338827915599642140481665800846629905823140858003708826232403291692785294829324807305285909227453939720193948364578472047358368293281409852534775374469822974964874651044946793466896120699612964423365700503968600224065349957553954023120361204982457201464876140588869927034021744310680835106916025776357230421847160707505060637818105971976768728337642906851085564489313285568500029454778492609452440890572903922654401477428148809332875412068836457847207038829796499787668653834051875780423891762586728826180887201892964695178952095791940754346288329000445869683613063647925089882729814055574064227863508791827655742964032385774991113056485961277828652754257690193696560086487944124668268000509955076578165065031466317547861206632688599224583927042464428812912815438068932019201947207690140744485661991894802276398956681898472759176466471566518564258270166849592427740474315213838220969119865084745474799385067460636115963632742803176049016732938251823796633652197785468467363000612479498025902038697338073357388320590334936175813089759412859830649719079557596392936358992382882509663972596238530382656411255984660937911697362893778116162506739746812191679431203536377626686790312148523580313632704971139061894080033047238882831738357979731082024956771658858670820660702256856317085675738221347335534420089909034589828509166752803905784572408967210655035165060106820696241421754317094730077869888495285236647281824150635001630787077819401385637401724766692654011303475500191207349773117166420815947696136893566800115998951208772965709016630251069915895229210848580791004503603900815210305402627439449446226887647108358233991733953067153319578133906290829142833566671773416763927768020331022855429098683962937102892751215226951747740579217077947661743805715192776139044974198120931866621343468227481276236985473690103679323325813675904850325770337989852046861670888602358143721011995104736271460812555437827336892804976633899665560545355079356746139982118946544556131356154984721743488181994869756275598224347839853257169518593641147454192832765862418473843689919212418634233112777256890057950046760397849039512811558846910381266790499241191782851676627725870067279873799151439455383407910435839006504014812148707490731310494969353445519579116127383331418446790500944882492962849861484471486086637693288165180248707070971951122963748252614314074754215893459159710512204582023276336827889016354297766611405042924425678711386961406099836097054906081486360716447356734404251943742019276594793395461712326638634679840580231331448052830593672335973258345576003224300900602800755643711425680336248291774253379523782815424925499830662770895979626854219116273067387644052855559813536836814530393074022123229249057991720771116219983263428033713210668922323391008052338827266927329150912083577276003735301162898776695285649158744398192741062199739405814613772313127900810080848932505249626236345087078637546158404401659339023848226700675686954782530136239769409783693555164177608888721591546655149618812491854268497368170520755822283776143159563449832355076476026344107316420519782724778808434239493704043898098414935402807255474530178801823891831044961626618595313107501601207259844052617338126654644096174600145582976148441706440651879352040644908989906295767278345451640325444865659823366840568565290956472575683346932743355682701983601248568015636474576261412403099274383641587241537058875098114841664762539640152713041038708402231167964531773923148798190957256630464747881791364669943194078885224440489644965648618787062065683532522356878646243578325303970933707237093823828898888505693022994010732944664616458259977406184997988744520346520168525426244387053786272561182675810895068301446005197146072907592990930656674774341285602982867436062417435561598839059254075631458279366325119565739658930041414751416722205256871704903752922110228215438421665964686648290182628552140715036244269754836252486413283373915387033631932478165666219528140916361387321957655827652825902024087709900712748699465887523619001971167468267319704337706007435037328639038489858027291234973273999382155754738497204459810260825036625162922439122269094097959439992521503637862653391385714781463403449157630119238589547826249239899707342053175168502057646806860327856034989638360506343963937365958566145663216292675189704152826492295223128098343412192624270404989927504194731458017873527163453407151121566272052058432749851379520049071480147024587661436587639841900014475981880930206279348945237116452998481271655999122823681870136509880430237435296863645851041341278262206419198616236527162975983744805775951980038220877583399206464056342035112358878982919202017311995827816349812150340356626408522936488384052253381594570942478959433635800516601124080805288650130903050994733487865828431029115665996392715812835147927198863554619352004926780139909748884598498727950339855865453075056555706875480712092198503357768777500213127032341340345826518431201174348284375998063459740313112329725710786762491875205001502925392003636833460900875584360133301912303871283856488706626690760451087764750767997929054184443283694608685061968857196613302307465058494347001288825815408915620960374156889506982868156612968697152204438086845621224657557435095126205268064312476923816652794899727828720020576249584188687408515610795878772618387777614933666014654760569328845835076226364485098018011066807214864948225186661503999946511168243653643334385928015260552430185647125061773599407882346774916798354639624164769475722947094321068741528009100533595569528127954891928107699330496897739704541866093532828334043065036244988335181734420197777442463885053155822421072202525687944156412606524475562802179897113989421219678803379023936432925566485090879469242904699763980321449269715631304456405104680329646232186143037362402816579429277675897305780097316520032147061127780604659164020236097241598715601302833609507212042337687187871663039131616081723911471949917471438505031448425780014878297434841668608864954059934953913669330360097149200871737862460250541013061820927687926478709296084462757966786519872616193333553237112122753282170057729938724156419796092319723394614475750754652465071834962048867788612717653911645463693207029187165605808607850568239721301597697557848550578455336770113057244045478620234484988665030273049478845513116536762143215206594483613044648874827216964840993456336623423933075439455065301963653458122948835469081824023616332360616832395651365621871434044665933287382938346392956867876234848406322631903085448396737279524292101158511235719912584446958473255350751888881892425874959700851846691793035589325702835643974259772425082677275207158554563439665110269933312349333931681657980671077166490024477211493211644517806671896623647690908477263855082426678273871770854860665731238594482078029803087957422566855762427843511010645844077581933077041264673134862076847762873980540396019588754182797456955770452961716114441673180081858214540254865043892824115335135093656914324891187397187577254727535697804951983343600304234509315074636806826127645388027133904348921872062950020744175131507976132594909885545655205635615100680215013682004053353087247064498395265392364899849734154453354618131523546971906974204583373570109852572294718559994543619181538178695689681209929341089533156166597064169252275303335893238102923259385388871832204650448078366551412851439593513680271567825868186400912227752532464484889535251598183561912705565596349156778234646180851629337852413097687838770667482377126270004811499591076540925322090598719952014993675034693148038310477407196057555179298877138631439789685160486190678205976865284709307490739020281166303290809537873439692857249591237679307941988825697717245309989754014762825988379939733334747255521738260041106100972032896170739518198503677106324342759258783977516493858077055712157349301714564620064667602482477725948629376368296081565616571106393618188344413596122156434903817309371254450194617874251393273687037096422427485855848407642459601837392928590913179372375908360694939904264120149001102293839446200559745021387954325814026107124468559456205822083409548177761852968591471218116886711687916753889363778024256102812279186078454195784300255437363896712697750986318718967971223095157621440847805841779201628894345421182560450159405163047116336905396357667772022807034025352944045987430530624642946271134676723493749597898911227552385500457000553162280032203081369837753982469093207333612596731192621091655997816980295534616007661785291934482190719415228648084481466766599863692194597080035443275138046034408657962972806094163257920393142891475195892604466962031960786828252322012580948404382437491930093072647790879871567961847600928323211798212964709838761951330421305547075487667711749744274266980318047314019503842230047793641398582163136300511097688213536846107687979153884736133309893005304128403800744305013292675596360373626471807895349023416999525466670716269804514410788066723176599384416709887099547140404268068539644896223596285953415281413761314415396697646704376620157542257131519135416416966389851223195234224704649327437907531900149946787308607966782782989125699878331203186669710834200340138306289161596056528773009520597237902888016875111157927288350687826919067598587326193635820988659027562334046836542315260124172282415954623164260754212409334961011997117831742255967080670543935001029025274685019729211387411482692150100085013484917655846459738484444481847725431405466861003489173232531611073028740290011202061218373867002673742412894007046619976540247262664883473305350767965116867428038165321923200335992622342582434608049141809047806102137737826565842618757714841600452319595180262145837625647144440129411321387566377189846963323482660898163097351852114182212285670899977611567203933709848622767777359652630343543742477036657154917240523281738862695217474901420709604629130118748971411408142528852489493003101498000921521884856018090159434437448476162323481244071742203932026953939720176770922294458982027053690523859929467072392958985309294827869901963817015845229317552394151963244229147941079136530861683822146200868648000212906472339461996228968035577384161432882750854135490905467639370484623307916571868895759987897995921862910629461873147106171639989978319960899289980168023698550471962400703381282071596664845778525103697229040907171871742842648005291836541314872012409651669045838544925728196820992596710899462466034254823280571630830058832658124507193038615582541766356892900369923169923459939082198983551410637596349860179462962662340556670190001884583414723592777361286329170809536031191477542102253534627463500437316768196547324723049841306521944255398796887444236950791982690352920737678445585447171809861992569903445941481158152334397083752479052089702883550830705211600444379259551295508466490055968918632356455970645288364161667637466427680601391210085246429969756884764888243967540393293269083494499494707351212460761062344714268740578948342457741220507903717682491956095380617222896907204753701627758765696275887807486957992685779302988791718536275692756951291942636106137831033445087388602511255465600904281965562958695581672492803328171318095405808910520234110736877603195524925043331430868335962613305660230592284312787713533917499223432882588881141794296490521894561513228147173357591156396970364921365754801918181421684272449219820818801452999238783052021653706085030718166799842694449777325350264351076758880085865667232115233364102587104103561853237058304883007342074533612868381577852150349368299900131706446855794454479728102732953990565885219564183092000903756658622021605005198845394516672041996367179438993890238236477300990615605016132628680049382146136824686227995239527244098376487392674872857554120378755066124934629953072417860522462472603563370658858616758989751673010251862916565886964150386724310679616587751622420410294275618329008269112076717627019034104544872511897593338732309210454989737633672182388352314261907049424639316000404547502068083503095452363382221748005168232886812631622284057689957252835294400999364678660957209711544558376377888150803888148423263506862234797483786942804899880360656755414262155142075542616420307395821954812200991116570106322429321200061960967438162086971185022911563083132541400952995150940106222961971443711687378791888531431633553728666974541095580408728289230044556362426671511688123790530016475993323044440268271222494094159796322534645354653955867679546785173834901126323961193141777474735719270386026610146350053275630233813316482086782009777164782281728218371245991635446825816768941816030468781132099662661528018767534171404998321136363831420582164191541238663781364727834054451329459585556144762782533348633539913661187768649376860466008299692128133136267035329931511878741558017396044232438032527281149808079805707556733825652352224049101156562188095858211894015809256586031626238190409278132679673738094368467569021744545360135328254839531265130028943346143401676296366230194607352330703588752519145482754840783031762691521520665654888924813171176268784160591478422976825538824651987447668371241287013513815419058930416423750373670041974851100990509693396786997650661401665643729541301699498845207708564623802736840658876271603867501365827590172412175200211023788554395467788784805376811869771168198154139696899222530710869661675585287052686127103284013730335358030347969311826960145290558658745376297493706316635318986055740950938575832964238499071773255058679657195008372302629732568672617472379968226460378827542592930971385029533806394233699410634546681589326888549664898864541800524584657984803461468596017170848768839320961431638062935498383475250328989192368810863489643522755060251193694730023989168874944627522711067391716133893212859943567588624877022472731004153951448430829193618567316545518039086937545856462101694449262718220651277909424396892629818553444142007520879918091560711155601468181123751247225642935662985226145468005584372771350489015046344985277754310503669338921131733917704320207585812970214466044936442626191678035397777468237263445207184994904938607592148575908450605828100698127120165919765711675070014446189093455085560390174796391232456769689977439533927547414076174092241037625606677593304663817269680999056927983420719505850100655788989020353496670730323683304739100668779386678633515845304961605189491414412953298592359404216132675781078999740512891686065637019911500958693240686561352904487209504311902532098018707107040145875418150163506599497603556209539523626922723348045438124279812981348827857695059698443457743793086136880869559172359764743782916553715398080604986115943274773454335094265441627966266754743721133990392006060167261425800597157060762840003426757917415994589025106952063179321733144052620055204808296977307670146402411342325868134792812063098615027598600269810200455081781559470289126664015563990596311045535096802375876258708076457577230944558166786680480926162581733020481957099485164399197600386238533859239489066658140770996757491554574269302466933340912171090795486517022446243162607081675766356232749443699445501283203385082499726455148737146250981221454821204510298686107431384997763326235316176570254661055356508774337830358402024311066240927441789378813942640333221737118368457059832993071297504734735062548435884377052111410901879576924634616912921083374498589479355339626554422720970879197039631973554895365595328321689712040911045992265224622605341785176326642604049250827236794948775262746585791974736444231256692269491739503102283521783140961756766459260181059100397900436279107313604962502899511936385007900162421422980871580888108090379890241836329208204304787887037012100227274697182844407558666583219138914094539244284486725559172241483292823354885488208880517122002567730028770882253079252231169318925476713804503329767437871088038380082938617490012546754780451549963288284635037018905764146179679861763200044522638731967617435525324208091422203663719194376046115930181481335506260059527100534794581432890196858477569400805809867331468572204983992169405352808017751426742269930335026364597169669736997418755416208387012861449336200636061246691712844818436308471179366728575023817415729178067901413127687930627653072447848240035750322221475704980537933999934776514065756052698435056418947592510752035466432602873716452587521983144765260755953381113766072867746839289311281421148698723686107673900439712139132516797665114926760314336648012908667615894736599813741265894624200124634348944035276567486876796155420694811855842224161129281357135619613103535604734782680485323054243316119010149403778792254180446353402984870873792730042794875311741948816746546908699183916323762585873997065748826272036824354115464948514080782449789575859557516287541883625932425621309255406440144442903340840877322799951230577314797706231484651582914276100504494647835865003830890650416735343794427204883482097682416927367729874810319560906959299513607392933735024456739677437228053829688107512478622144857455936165345447137195287744483849130973623209617233652923323776267881698878029907424354493503478568680468454055071373232762879057193191209495176204865658965150859531272455890934973982558897098119868112310529030248557004946326885232331834703062100455331585446551649853409085448754271574819337331786807303078202094770479261226098394300594155231336165129437503419031004159537946405922715153748014887643382084545378494607812848786607029694569673507266191586180788853349745152357473575795890702387032598948255383434370684498715471452086649310155640135981612824407425935954465949777594641550339946930499421969563516728367317935775988622653486862013390625111361133953601921152556892727137108586444535017524650061205916248376744006717208633135632869702797912490534067190308523100500350074833868603667119865038283472559094170148922390657632723544024815228981130629897793346280997322181550888286962901730422501521987030463545951185238723816916121546775935459599520520652346135728125398475308199288744907219605050102356862384626866806742663644818256115734554894069718054668261567270434485096468530009775661399545843989196557911479107701205929201640456995052883181050871944128929366696201838053260175201030834925890585768948640514864098244030925445535099343160445799624074106754214745413924696511476420092533625962941246379365515939322868380870761066092499803837409018545304336408088604156919441299723468031269939715372648761690199628208898395807418198108839432879370647134225039733389566140304899097969412008211246921750148578941871864692324562844470973895961676471307413685898700315438037459756671243985227598845355608429935009642023138673917994907271258671389989275859896564686906111614281421178016988599818199434244640087297890703455740555887654513306136292733646065576649327893050838454426305735792606580166556658681819678629601495963758605772362866767116854529830904267965877857967235436195383504040625733265035491004617863979949624265558446781340567061325566528466771231076325325658629014011546773925844481069811941431590890989498218450302208108219149281777241654228248953115320656765657347849980716147085091914148663677775543411458890662047321660755029008784546105707983129137843736490735940489843342169560446954279420695043028551788613160420089837308066254599048289124711824356013777291634586790225959871101417413610636433382454747188445433529287487049715576114694431228911962095796289996526201549902935654427627477446276474487820231392728296227912063164372895948039866106505804810854710595637001977576420456039026937291023486310565110805967894308662837389876089063789854721165571081477588245776736289713442325143849919326225982948140822323223709653332215602162608739750877346165977152728104103839127783069874464002967427897724149152214888762465877095786943186878091171805020775107535202155660530775713442223928772292266143535471853235734918852163898719680740152799581924991926648231828023932487942463854451342828463811559862755853042883229304851605073622852656349953928584233990812250748037842955177460187194558785514141434750142929139295252728036905871713536478795048476059897046286459343416130508452263606851713042517714863807373608550563025236407055272446005249120877146730728582007828646137529805875025226239458477828513542838740917974342774159489455873638707714242206914893933034744279062561790805627634249633155310587664739407504080777517895115173139691952006758680053266200803129909262816615950873318056540202634431263062181591725383920487487057109114993814307409909548260155574806523645902991051206101175856286959068309106781474850025765033985598452159177633240821505844020291360803322883428698682347881758114567641476640509244186383950256021295892217374999425778434025146813914139219726657294851698259524370176590322763485867783361371487735221430102066395038456151947271859680837421836822455881432852821028359662196474851359513868313821256615865282916653454996437331338480329660151381519242459165181383573233054545509623918355053507184451729387940008594978476625953960320577970299396528597251743510938230067722853953406176003208522829396450865748019448252982248134105830855941000430806725267304403071992068716513015506216016884333652919235598380656066559218480836541382957975760657875653630173465029494482229375031027121524081840408063114963506993904410185142834988896524026066715086433784391228502129354295174332959596876569911328067423176204878090037326365689934165396395358927922518129947375857363722442017074826362631060002441151803526599168476734357408215964663279608508740164774505525177611672707729800290483188370764173581667883184628826655346838392471912989219129659983280972803765044978275017752717625318572856923311378221280184803496529074101289510245067296930209493583332121525708903115564296093588162810785500826540817239331659058114299466463502844086931874983898970248479510922977277661754642068632484440340943112317876175490371370775057491759025278292884798733437210135663412167532909259968455327530250942693442129319591867679320071517445960549314527832030887913601365137996795976925195385035761022322690498677245520741600460969476561511265811697316737992927898632004490664189404038666014490187387152801750820899203175682195354192970208386252867553095935235696624250539230528155485412780426182949269443410826113151854058235224678126442705000256063171621487981442501609020167300164050160065722706278619522541965849589198473791737460264299318881078159296080881485410754919184584330122892624484564488553018984512397541028060535109204977164963458814499183792367814241872790776710402514912545608643811895978050341525304862366929319016809344163326540094493810277654303099007925981547909438160052664089662568885687004512230055339145703258876783498697596532680130383508788592578051187142116337843487021697159187147371328376387437878750485451638228545541727039312602634486960544190205595797805253700045645572454665066218172543737637634196584761590826532558870887842797550238193272751167660832781492861663128232118996455277166500923431869070202759927192932533176624568005001276130509868856060171060404857301196613593942770549113666742120507829909653628473459954839896103888031732811437599272069988014096755561979961183013908491313030082336495409460814154264895032457550916816186300465248658971592314302334693945144821069844478011974293596942590970300129394607848197404783332027036302737583513868976595012490792192009337564958267829706917062487376372650411349234882088625490372719317860911477396771782311240273209647075524149377659525469700076636219970073164243206814500423100342202602550631562021440716104543409839983163412465240365258386308374642615642058962150350030719210290061909757918966033525685100057149595447967663783864090212011892544082554049835009166889977200298512365249661522534273163682749038415344511849207660401131665691826044206986730544424418957511152680366114339847851380376532027757355783288200033627185204518447686204383120686609962651957279364076051786401944620348153982613976206829496496133480050864105422234250623964242153359366054416565178753955555311143536692164773817642589537476470567812668234806100352701834536251502484205949157648641164846699028445571665265995652559734264546171741617581283563768338195073568777152573946552282750341165186017134418947582487231967920338695677081604073637966183258737130144069651658868166880269269511244637181200711468911344626895062667541956594374477509653228279315235979354959378667837359158395905751773462107302770875129760456247857772565196572791577701096842099925336120037097801619373529474584513327120048942988496895996206450509418934399573623416069374742654482666483436644903895059258074749370755045018070796592437138203883876145739028545501688446553579890216462602633941574661108446311229676584481952647049561026166015456052234218736074158627491065497966570615105243083792666220978685092569978601223055279950131777874885814947280125100166418302445636405121422734574360134622174172785590962026247789392086205601261221798703279542992125276224565865762035395903074298941879297029606940531229167294183669406532582451024633548060565872549986738398264340796414689049870517323361027641726661106480793298884938769366016914678379356085719431168685825179969240409484567055422410746537599952990285337846771051757253450313707291355813190125481974470515930626244690139110293167240829417679059922332957496458444198752109540917581199984241260637191153302286274716344111169934109589175444436790496330793000849458971247242064348256548523918368204695660137284173447683815331151328712126029245215232524308101663746842367352697341967359716146011277947226163814214518251566901411889296987520583118651605836627255751693958983362165677153657292613021084116380110730525637693641852101356868814620245212910041922364373049228073561930097358155305075083971441534419388813057536138690469682656147482507715262491191983919671952079868104784287649551965876035651722743534436668190518157802283585411448254458890360116306818158681137695485565757688060983121035845227969976401558591726367342649264736895238011524566220824346363446269452046404613574064953906727089610304615563169774860663514463254156024340416987034268219175614562679691966729346932758341528901858086201153996076144094143803400960449417297856950248288574734254661495064464286284251332782690046794907729928707919616117182412528485730902611030920500457010380601783180804491467972375233637857599342490566656311018187178185771029442644621967919192405597202955758629949353866542219099873232443140219791762272641483657356660065863543207437738864474514834220035240670819004551716081199103251206849830298112801959167388256740467335536555985857857801567793320001821046620382303411618922836429131746858859552666494671432831734289927921253132166673983654065598162370550422246085578167543961417852047938950751693003706525626945439521002111600091084681969814534073189799595866947516270775178666938525249956675948549518997060092608423677107175563921316362736983964310606581236429784219563730566684548762502375881445489286441631460695732609618241680479292656345852277232713228906640999808747811141889823879224721787867058294003978570476955806285760471888420442419714212724551386997597354532099652918854960276415150899183892462647125145100554947595130659107421149830965322152673278817153889797158312221005067351568576185186624732840750503170216452958057825839312941169369334722663175395845994245287976933786880796290617972076813304156425230933075352672115037352423590778066620520858333806989562596826909200674492694057950216891644348710112353168299110005952569732280239677022291950399312061912930508573871232608979423275909854003542389073027312333411580885280865381996856697666669553761012220659881674540750233334066972035150200530472704489360692741434214205851142863771731610315860361773418343181719701660538933409335194243346295520975522975999659795244107944688838782672883052319464342116308403914521689684312313504201729513640321895868597022620280661881104938282151243896060219212811262974286508615299970368238979249913358590321238077051818834879820718460791504827841019085520528195280032851691675914645474070358117696738278795705530602115372553206420052607202536412508467957178438957113706258340520140680645282691260424827631381738966348338960422729937785879157933177169350693949064478903470550539056980476816909282062003874179473511208500465859494729865722449336792908647866651153949516469987395034435388354971703398017242254442263236623776709985183533168739042517660044294901041166657373588689729500299134378073893458125064848225877996542754530334013856138513392776034728938309227692715234256734475114333229998777434288728200533270552888334659843335932767373792269715072774161827022636859727732059892719015054890049466279606341742540667987555759976657408723526526871313803568994305553737549471673279041986811995022404273506404342602389055859967883467143857653587474130658054500954171591208545274727179236207486269411806151843026058433079869520694192991381110192309957489051713774934615134272776846698500295805567675444045756608923589036386746956562112964013067665266160638997646768846285759805411271169235227654765164928390869710465610261295457807940319289801456460926623278418167573894692302496777917571396222023272134089276571311536612200967698326073225394131692696379392321042493935272258376055816617081969382946014591802603043739738581169426055143512143465699936557454640004715787654875477972605798490619968825122448616050824696723711520013676596768904191318440686324339319089873862312633459215790145595780208705263040180848124011161884105570630630395318710889221261910959434658718249556309058104900302215626992651612603243264193482423450445722984422207902060286976015639250432377660882237681466206530533163284942819974705969702577489996454640948494030306925448232909399323669197492408064916867254927773850280399278199168612222676144336170621302601861716945937924045093873217228988217617915098373486047191094620179895165233865460748772669508420246969493605259169209811626461502366247322716742955101384929522955062757065658359499499883507603427554444105055038274588328433259412729961738765548412863193421583975758502812955121998216699390212276038541147998969976946941750369238048101103886525708827494073938618201200155157379597392441889297448220638443692429956031125133272392758864740753828743887991088922405295045263628116883790037495041999702901567450983457246674415192803467855441942974234493481640451245354371661226664275084823763346990153591189304283012713813530931469174869506888681449388708633588242766365807676389201142608921886883199515136178006720013903104523648968523159022006580886514127518638982942929060559691045246710333626947727319650926161742065916499394553408410172427170059886557998954043424912392928723354191391204554298827711761752359720203762565396981634503715408303725015749762529238698948179071241763096327776030056528050014854597653869979354147522987267326342785343583687992218318002460682295847624032805362491890219422138617089748226147622858275009490962805061179524887219534818484388769801875477719201539432515603031399177981234390611827253193675632571181468676797520996254159094034958590569618071167066229893905771009510291484040748878773804664616065975228928941873243764807683998046845271754637375277167845288009198452838125323570362482826850159923762277143783195633288262472421369944076024913377374286922986143215798091256864336004267333827699499819699292950798858027779095275265888109865434407698123374639842103933750536004524432298675055548392384529264186675068141057743594524045530072230916095376531532510354478785266827428287000033441005833047936298235180097404527588022417803237458349122655378057035783274771302047162164801193219186802774342930813357995260120136152200925573615718206376598868458624390981299717872354614802680533213207841724720983836989624812256400522756323111594581551284794458629181211746745874695099630862041711711105826610262622550608837877108665215429465201318754020465608989226313138163217218037480993754814653433466709087320052152694160897762567362511356286007910808859044557223212327419294503803068524519062262135597470053853422438411360447916343337655954251459150853959036981895205874901720556709815524377837274847777776910204404821296489257234767988544796452714123570889975494298131118225398621836916636161559987405153026575744316224730215992391387327728007044149135486111539111305436738668700979717422099257522710592576569379715021446610437909247827746154382130133634233369136725931918784440520236755516840088714214604381289836674128363921068128448347284490648753775847224610153499512887153625308193090013539249399074867894471787211326548022560928188854707088188492148567983147264727640513845144053189562221781742676200772151058522434696152826413725540190057569839523387402330482745233883439522968142226807889534177948140382925306688486112984638825597158506310402328797684286539048043475957309492456981983560028138340654255908456576631689021753296968979710038254938837226521333506702417627855796198733702002549662228540842990025068233581525326007550804966146401932539880877277381668756446546179624448291927060893801916790326726677466016780904468027470915181065056475313340536343246137781550823891094839341782250667458999984174378397085134607107935170293351625406269216777427385137253397465870284438625810799498418388539288911868042161290600011502764041048424753052940848693090211063422179186762325903587419375881068821547698452129490954869416730757144042819130863710762528349642329259832322084892285782160655182007146966778522216102912835026625753520833652092231381701275331644460900096327349939037171931457727479002073852303919985083680497399409382783080500780656946149858201130307508607097324668006804847729216422259732386453725013279023035771476435083927286021424558888139517719289493399784872954187343868330731367822049557474661918269871333976602709141294336020333615177319797750514307478928039127016011886796802039597520739802270075487082096069846355698313811496202327387603271982166375067320633074351155173501099976726881021371170213987098676979765054008809151682229152343832873078277660416497660579102193206797955532858897155739617605056270735712952376941236104110530009192250342485393085610099460185562392055353970401773480868870809958291078482591971115768639444754301270285797723128275028982122426154721756197319350946175506511113311700467448442553213736536605144085656404104061324454499015605770717271672826834715230259056858097492041952265831100572933743303987115543043555099381190477848888395176529011421842540611684850350096501574260324624563671094770329769642050673923950942437781812011808854608346558709201013865814686150481152180362430314389767593608180883872231394806113771357293468486422838200519591268835986944962050814740260192041021862592579499217314075041006398692390447103535431214911057358955245350907563967152404984493556416347171129715652626061399969603217171593270862273867039180178434110208114165592979986909769203168685967162710171596966404185281561566649266419647295557235535411775769158917055202012935765570864762734421102980018034943420001390647992225168707642431630304767437927922486281702567027301785018653090649374111055529785504688179169042143149439121061121892353445342849532827842445652882077980774290746514957859478730778436601505802081935135803808654594444576835789256924758524767608680784261492224368581099663073688176293899728641883119347243974744941103635674015139799883149115300778330075367691836845781627126589328370487314957039865195875694517043867793093912199163646492595369882339581967994265804133171797624027202417641303836964393316298571968367660447577747633519946752840692787255169046319473590101745145864003788528016546741027776381985809127982917612572870937572154838817498399972775564216835300029143822236347577748210067462703348414883139916773456932184636866172119806330250981841250998268365202542844562069825592965678067224586884070553653518479273979288994510128319824417698729844083821175356858729081947274456693773554558725426289079476808513088014946116975137092131581007879095165148761378901382921454673926945207549431509507063348406469010237366739543617888918487796218228759455491625167220717762192406451944416206251680934263170403070653197670842013115807375498997384010826174762136111166029851739993877627290563604298537060797536137931667652427952019277958205652950126885176451596158934698435456465448951947062268929200681912583108858470592454639539255295810180120086266386595601142842835597616634519828848570388352679809559367685161522174168821982918901082718167769630056899634599205206210680314759793024948041349742403800203346444794811251967058232754623381006133867206590295262256923515505773858753979348003704384069034136858008609944932792205931327851439524444223354077750244624849271151558379809791035231066290139989832759546470639010064267678352768493012569476186657790464340056006020435799201859354816463362869529303113922097331068305926780129709732854917995819232551106121655709356344004437664574753212659360197256380091750027130948484896044217801787199667796861179491170633672999364275072411819939875977082721340369700712242162851477791441594480105907620579522538083200686502916392952784038365635901562917398900478594341325284649804235209655600245692229800887492869220382311139391258054078556832747025919220862492929424257278321408909803155978820078780190937787573010452027410800878754877340350122910226905722429260465324203434784952465047844692763884124759517024912529622736728754360663782952408616552725802874363404362378239893064966044021925684953760457461562084697650065557738746946470933465039759308993739267939853646475262937234178854397950735650461485605150737058947031884808414239605138157419560809238738589227883764375745870353278633347799095203026775893154642913248722852743851448491228257643223876781316102445600520045171099493059094853890778350828751298213292145899116904918219185012729950716406746387412991733302409380060452667419071310398027106650645360223991166151920162436264002410643487872350794937800179861755634160517168748444251323969904408046957747152302636857939326952610117275390617992591382273364401819329793280968762241075620838737313007325402353285131528993303199382528757136479755254025227733337358658700151566091898820233944706145459903464969633814728459113263731616619505968416005140400776688865154719277997081465636758711859112216121610985445899127195557872740953992634664315337713389650114952854308509950649193390493198897253589362193845415595497001389914435639269665358087620273612212257347472958828683980267583539082044444056802983838646161678483825100203616289124549126229340892062312606211136606083183358847121860316297650607048502700960419302840874009982759788631990976871781369371360689220280801636561424717819112015662593149075768386665913701647646356609841177072050120323094367848139451409961156092431754870714264717274931082422897637666346149464475148944806541704539408870787510984705987796339622240111734339478980309586060046412966908601098453671937159349856648561878645127282687848949326929223750157519726651228587825861785098740650262004389377970522461298519878577788722703710471883767867217468096649286188359884668179554492214713846270689006522541341515481673934766168359543956018289323849075004450671165799574005196248181434255016688925509985945809006498094554295307909354202478284683687255343604958340211845409712278625500458477140617015888033796177061475872225197343741304162250450318319183653976295576590958713552169027768464107743823907297491949027799944648364143904478115105807023813093394868910010283475984101619304143634195385876731519007516092230257488789970942021579577352882385301656715284038250244925907894758026855393990705384602039537063094794780287062837143127492333164284576769857099896003816168965514557791683783794661887989902650044245776486107863214068232203639983965133085087492853030604937769286733157870703587013104983105057921384185828856221003133310736816783527786334345843643178584112002086574271957900841493624466374475908250866681813843877131620368267491288137972105166322807334999371575084169408424730781973644414849090830987769232185323884797378528348087583061305856823821161654337665718586343298984301189586360128599760760825224076686697455842787742783726313581420330064058297162738728558234318046940047379063863735400079206139294093085777371314198969676750496846157269730203854847429843544496014015651760604641540508989671069661494406601999048882315898186360798393529233892357120925134194854089668927724943231117633171179810399962670137888000571579190476029205527880407674841653923131913661308045059358683243096103161815545221365459389041983358735144283547716779019323286703622939087371725143769962170488884092177216819600784221960986844629384148848540941972172626572489677294044699282426450448878691707358123494315500700247871635524623240144181546216105629281834641765448276186929499736155735979565938222105039197933410833793154217387634366226213209297023833186961513851961278502651279277714344806087097561228281236667596555241247740078436482082601010058842990034711263498530827402924813449839766405831855015699281813967979123279264190257717130170083232630811815561661679476154180285453664188214772023182562825400420507924427504438217260995847507619686045076839109001009509789361469464640584719896889955889713631735434596369536684543486992697278225839387665654502336647456049809233719504372626796707418100052372546935090245456183704477665217389483595138285974555052433008674896038483912592358675157876860571641752573965128388453502485161013887879891347312893217318016208436159923010758025119169195857231457890913451497280062524752492289692270408448595011442021163763526360821773133188656713721302266180416054931033074974003365084752670437866510455186878320253041325389453529763571100195378502929521360380172524797098171907284467536609969514564853979503807069257248540039825648083535943727212768043106880070760543741762068951410744579150768966713530876006035495373049327431455736891854321825248333875604788007170518360316735645772084184030310222304972732862182286558961740687752269271006385010248378814889323617919189435083381731103135287276964312521319373373537415564336864583360353389072363547842803899959186934009535466934619583027187605840441801765244512235543081704107104495172013166484700685506496905707779704064946394245099961890549362221068246026028522139476818256969645728131767126634091893622906047662358742450944183644177599411870851818660006682334176469082448723600486358234983101209428543034752133548122020097608336547701178937101986307147048638106254118736890118584040762912885248163524225155170300211080108189114675436809930723111785980191154696862187962556479730465663881730036805959263818851117575260019356659671988267661475444445056067244402307811115678246138983837005365266968675965461042277569929686573898930360235203037141995514682230849292767951465355612873480090976697107348732229034426921467629772141791832021757402676869008951063791885500869747626919090690890880373581165005466637870745487215719175967914555227093004407957264180122604326746362388946013088389988560571999566586772368689769689570002554816939954696880394821099430484856253163777016194692983772813061419326923271287519403662819476060023334071499192387021699449391379933832575109782737567948588241617773703504274674518269698879493696966299110176842413498978537396673660911737119237489849525070241925067920098758070394382774981686563790074947806190006948118664661242229232435222243877520135108041648809530412950164698304491123755771978096553935610240125206216640708309256027319221867687935982208666707734915755111445471054990513767845023417796285058502009091208001101421971319949102454319509140580380886973868023781818020232852207240670691049957576301440201677595335012943824232734284681989086007069357626577359102478798108502317759907206157251514210371747716336740355883979070228316138289042877465396440410486498786015433331915979290359627341451468113071668279788018338409864200148012295317053689923432471748118187699479606386453043237725565017143186832742983106547851606962556620510155075189913086645210818035609895113219563912328998537049646449552445310333610521077534863296458653421615627403084840159812288233299072442343131600916937630699715060734347472329842424404608168467935451002694575471858197279303827055946104037905107172900989631623860604609935730942654849456053082020038878948366514252983022985587600888697803173286509288755542090395011438526583744679729462846532012199520046870937982792886869238097324796196356147952604405666655904255858050779541249341670149161862709646850021060142003386095192125528582558553010179583051077476270286714932044705771648518508287029419789399392294309608330436943061372077322481532242557815278592234494150310122013025422788619709461906715593986689639653186359023058108776680022518380856214916434185725934148343348333006555187210340901478471302132220151697711463220867802005760802933585353385143826087768467211640194532363898719960580170218122226261105375701439100266942610294041370681291096780265437499721225281012467082639020090994170008448675180934373421325591933807562435234949023665063964583164660283854589452796364664762752959644139426979273519005335039931610276754044272843326129704311017803809209532353891320604471816787573686382318862293859351431749778377745406223967071338291792411650706863514141973990134148836006484476168513704802186099920992972229474858761491620326451391426459944807080214999604460441920122376233619435840498237573457179279346838036020277295708554124674984942725968765659874726372066735751104850847628000361935363027027210364087606534593969113189473282119466688046022085017630133901064503136321209361038174780898825254671850528490175836761984407900595136689218290810513048549862547105035994174334767913219261219891717284720080459642774357341064991127799207416828402916099627686561325130012674283511971058705489253499329067200635135807754172408495800639012063126965364697580556277326592318751597510234943155628928962327609473278435753112797735663503255776255999191376326529830602721719970507087266913948763459269155087182581263980918545756615212245139846952047629326708629856248961905732230067746217645382874759131462497040028515836768312089975303417753877991026885430603700877827686827038830514704692611594420968238415829745137108525623306158907131955559439596807954220468265668637263671587931527946760874047023381836918773393285087149665430026944142077171123230156267303565157983156270940430090514603282024933979843134909282382798140389075153986337747380580769430301696394712660053824874504791191503544266477472961252052122923422268439041774814913238180520948774532189855287908874156463315614625836981748430541149742350474402731460291840833174125904190822915722191991874181715837657156458561813423680428360646640126179479463327466485365273758421722068060995724377045525683430145483673352816216598369937533343137500193819641692533726479378722027167169460408267722473646707507911485909120759671872562885771540669644180692385349881698923692838251022339207839190250174313416334034619997262610057784710976758735956847351096958424801742401422498408200548270340797798594762610723044493492401657284536256573828002972837534546130772782290375528022018820115560518238144643964150085838314863751427476269897152914355980605625012485901481761675370330099939335178877622893377639356593287262095711689026948390479712664883056394416152432502786578607570271855524473919600479062442542110134015200426532460305608548955024700159819589262195268479129178329070026629458332034681932914762375180759507176205748462674356159994046949370851753574142289032578387851341504963544904611041109969351935765534029477079737789434554531284470198831114890817307809148005265796769637751512856195947582475608709966710710723546765092272123999191625581863811646212167695355107406099368443364063630022425511868665003487365599770041965420905154482737488847510775833760527578994126221271018009537998869359105984806975591248613230620068778120344286400394535800432383817581203619223682376575095618662030587898673616299269995772824688486661657093555545479602626508551026177175570114171442969504210478568130566272305286393680164141641135523135324252229311455604188915150194516692115117453748572011557076010372284984067988058258467043437635127105837180254717967791697479700703811029158556177690600608278691521592543281919678513783510237738022006947117720166800752881782927062657222794849994872609570480699948969757470364156510920863707456715934058393306656252512111678490823697682596046608944651472168602458111018063879731278843185998119268670921437031163202660291624074049829887321983009226414752584552978721429146571598226806195487880098615563341384579678241890182435806633862084749754866531606944305445189603525479281649095196027217313308576976889322099356793186341501450017526092232033720518024368593708933811936938556013855015393008824182702076174030461119335587821368967118678255465916895744224361668248030867952211548340034300182709153457151374814508633739128613265057063704421578004071881447639576992088472625419930846623492619842668035328640162315714378248228143396071566575673773518128934757896969161267689028786919961877928686288877826985434669512126918804445106634803325558678603704862254365201934942284518247403404227863336005493910774941807138230963390306275212070168671164439768754828119382175002665555703942884974687844848529448157896468829343564427996130790048891474711121774337739047153715105635842056016064594739762203605814946683117275639477956047317465857260999033813563687620799047227629436119365788377358131129826936743398787833033392089484580131107671776210220846880533031493328693249133999769259181163690107122933169411573557449233927894092278159219556380377803183588393646369232115426209145360064537092999885085928624549507875379944558305554802816679070580659612817471078109094699478412078062384374814530165977916533107096647772922705870810206278473935430374579434797924394574216465567201977375555965555652567432357625759019940299041750342654584797020411345625494320552562682352693713108149546808312559629851111677627182434979105008598128193377405151403476761504857068472234867877926687756644361550326474526386241121262153122494101181935147099924445832578333034832425390407720177024134163316270584059874276248676465353847005823522795750479493527830192818324076163513256154263118395985388847401349430526529651849606550173919436135298789941405255221855578402269536333028941824727225314756195586586688679383054726878061736711766599735322979985671409292273471664251585657868577556274917899166558116849173542155889885947108562816292732082218435463004661413206941627993390987210120121158857081811248919254216566623916207626406918001972370556861046109844462510988562880417167758678094483488680962585426265394950698702400274603465530783928845516930006680641020089574423842690675883216220452251704421730666251255556411926349559045084329513117230254228872542531454008653393877898613209251108514197665389532127680397471217611169202208724459867415213556285658142351272167190803634627530761932152700403565210248527958310475227134847553713250496818713165129446247394775384989877840306861301954585690201992545522578232034494423629480121801444786786378832800113038195629845105899894166524152900069290185793439830919880107220336439000900480242347044696583266990285916938212440571177236904040639739717866185160426728812359671917290908487265409479704808162384750846541194929130783422826595780146340202564474456597328528401719920111449766834514640343144328491204006510539525920166094740815971433943920056194025541851094838243771936358547531846143185077715573257854083701653403543645263111666372398732025053545156044669574780485598475064493999522343535990035816214349787623278409899651642559132443844096521358318028086436166829026909046551442635817533056956178829073409142223841061041518159630260841095755394733604163979288655923739469703470503359824373816107030847512150137071851265400503688074310225424823624935552581675588815761607141817602289313715281939061921165751589782403359583932998013159284018688027239010114151570673612978286815738182082363735560661426498875721087504890781069947070840920437212793118041052158212676611562887577379306565508249721334529015676348121089322170787057197957595758173635911789739576290302571774329914143019475600012884890085631636432812732153555835543176598786274507142661569402607200346416867392026454635885457710951977160827461512641887579367053854040924307069027686692818503481906380740434602402524497858045326643108840536574564566040908600742572337304079318962290758446725295846156682232833829377218749508951896075874356541689686376528874290974537494880496544588875417039670994208475160418880835212259428042952038438215641292567148816952304665623636799435759881647989792268674110899618449042338792617196590964783694536420431459034529751562042338507056707728717535105130923328126818170528987803256739234685939459228006136868344154314252641761925620763064409366710611433794285128859640487763613055300781177750527688068287734682687946778586064262926256480708557990475025144078680052933668884517492004942818675450334476786342487540732031114760460088788530522085620464840177714953110024167384811108940385562483849510736115030383855176446646718142127852412503873484449605053586149752243509064259800000774874298523702828114988791848457359875757704803033963036170750871613502034983338262302562303715918468548494652991393752936853411881904320235916914594125621807576115079230220275247155857255491693629351265608001951743320395936331562362238581870535193745863938619225522813371769816863537236295121733448723527953459874736299571552385923856740323595894132565949545923946697650005663827390332827756795953270338774607760138013037639645571065703082714559364991150686054918636370515588793293457718795126856708539670306081473640944848184529381560199367183423420652205808059460290527393661326350345483929376481715610656759448909369760668819682776600346882412838136852443849699421563771205001958369572135518545692162635769255667487727954581143581502516406370417580126355185538773156447708628692262785166542582916655568286527124620477485755987835315783358832500427178480872873270209091418045466508335782297999831975484922768890567166068381912025779416239597913009085472907417392695427266211260593784021104256588574547462838973015425614777396332462454755595290113488336511825914005644728586084683969662043269041625990705552256881701087158056656359034517385682788135627413875915793915284238997110231334946827133532486393946928093076146662641103463428383677977158874651807188515600251003658191063032396708527803078962172558738533530554908845245731117305524677277209553529772780847903457311674298091656239153968420251649557670114420637039840283187918993355223760205157226923933796272624383399949942157566722860516186581206538496372209383558385482515211483892589177436257922893433273386646235775192516723535759952977872430392961115116300583829234705477492957000752985938661175427405849798252380184026500684862129754774495132037357209580232025911028823761798751644356780752300847653493847246580926226840948862160461062449622861340510327232416306043274109306557053700019614146765046042644400804653051189752404626051910695014368705578217542529760098521288614523676028607947649569623607997613068439099736943359612557616897165105053386470114654454833252219006572315139817220654292212416376446545624509238413213273521509107316273513278796321936505245798401507451449369748753460977138233353939153245578839478815435024190209708193013063647010583597588139427449110129817897089883957556334974299205624691242181989558743137766983609382855314697888802247076053934478175927398590460587747284191133719412668710343359900173970674185104262175187665360302281661928073466474433864484870944359371372034212669047455751744740719263356005830943716221122622222664760666196622426909445831063384892620521442390342642238617501641395875045523845635080868127200000598548998978410027638226942812869725815277968823398817262744886246394457708900814300189517022340508467597179869180013920751062130421820503686858931288204379736776023773434072019998057572451972769219612925254022297099503269089908426582838410414104978840365845088590227567235606739734038701545213651400044229595507182112092537112348692288845916705907195440546791594140392243594324374665045921643458489005728763731958977710857558388732383303479362936718986858085614596465336675407923451277023704700217018744329009752676762749303973306864663268462600780317877539944280714980682113132127968485849417061624896183549239703142897607009759000587200516328903228753227834147619726629089395946697895170411198480580873136861156625266759198215130023489444265815193485493892208244094045510798597226729748848557361767138101552583106570578485772742771350132214917197294541856401303163277090081933980043362908051895267768223604022913885884282311292534225083699788957400642688072319066070961917552339925965003149562424648059505755106758258242889972906062331974907968130257910381433948159954753503244701941906773585128708468578160657592819897754748356982731266607117628507000359249180084950635658983127694047729501482590035364707068289155917912771328884826791616061059309175504140201988501808880797295207343132055897600200355917379171088866945862553905666172248564827549848882329266599489924141418728293968578541022558407167599748764438224528079136151437709394154905316053017654022866917055624854118908858460734077055203257401391559644867314554834185538411143408720430647050373358703796635361338075588719406719284592821912714808356360972750454291213201888377039663525429907002407449246166495560073493965366088402732573891914194727182939864931638473162171918470927422016793461153153510222152885606203460218195106788542357579170877047859250588259424763615817451507024087966796501155495050870056898415587911181545366465697694303677076871389698668126648526536831918376953072024794594196371695648978042825504797579846168989562964599438283516564356028209189550454211840310256667173023537005551995455861344507556753067424875653027332548517377909509126631993433949608258737674697971092249673050644225084054147183843879456847253703635110635403431447509880667337375519056869578628417108918594272572233984451131818993744247860313848211588784119180311235146369337689977790260042804963821769685154644005173262419635351606552666123242507070624436560824282209459128042150588527013249420645321083617657320620412625540783964851706502500200973778397997017515580920471313638359722799512501274387714594940778007035419290588350663072028357084493375571761439078070509514198563580983931917615305115870606145393309066019193005508596664209488446546032229151476408505378401174437961970255125482148206567444642235887715235751565555129833209146828520446427744864544602794999333417287388243041153179358023118078470341111821704741584793692112443522513848197934724715706882543374219538606259716483939565478498072858025680147850052203909653779985357066924576576006616306895122391975511308695988279714049263262426944465938927111179825322429463421284579883049029963809338843975714428411818604547232031600104006600407032579720330823920641026070911615683698671357563193249833415874918803197732362752498852711160673970682570709013840054271819845095959543792610890823867147200905386444774806518278370210186736325731528259762574511883241284735819563752992805819667071627301937750574636651605661178115353792189094110203816934321487908708987577533409192799790415360915231318615753058264165973833922916649498954314012345886043946372168195719382193672537179020515250778916683794353768440463103135434415310969787356846536648659951275665895478188180840513496078298761046176172258160634475689203504353328289986141080818516896647516992221685541192812645719989214824783168618054054764067443155835933209654402278709402401174494253652928838662400633489549179766605448449391253672044189760847685292611010744375191148300116491904155444249090926575921277565046477038778572151148376309522882275925546999144840212483758058834404257444363356525781649980659918168445082584991192283884516577509269094533091422304625050529689679630325800067505540697035811722738253502748721424493739861932925357144485918310152316114693385136496279496810444250333463894664299060736955037610128728832588119668636381427928834769729008232844878857249411432485567242969574871562652161075330874762784721600653458548497097535958092256126107377640725273267885462841563660591838818708457555575772843218845646620420357533372718491063446420976637410167447297230921571561846336663400089655978798644058373873389845669080634613225468647573102377468834567326972379991342529315383165223458642077930964038436777370203314828312540083968961712013981152232936277773885460078700915281688941715808552038431146745688614507996287956428331098662648702815006052824845996534261048397685229792364620751102836447054787661986809813161625721977039342445581039031159315348779010807127779760074660326435148851844860651994852404209411824633809836047797886059034412666502003420728813747233626168830777589458137214490752916473918471471965955352641299599205179386134794316571842925506698103595825766653855869450128122661049428458482713838190619126701656451408461044795166984756774194165927718605865399732646597885665723789081421865823614522623975103922756961556372191490933881928292986320395392306548360931944741288791447730708819424020804110170727499828620675566564748136675086600470899149936854903485676786718539195995357518061467719089507865160425470910467176834427658519370003066314852935882618645957919232420328156467770296746142245609589673402270922459687896076566697680598260083896974521956961075232660746955742589987504152705390949677596885732427936737939260092076550147444284127614285227425481909778503550774791795670062211798935281428319366155393892648355020044438325652673483175295894877928299983673042367973692978570349091691287163914142210957617469460507319948314354089904171852209335261442830852303850125283476089679517609098332021044401871664458116996050672569593920756697416753538948369629469433760343650598928013386997527676803816166332050003154596629444372035819934548357037805844912460235421758686085551819986934145311495798726956117955908520281463286919195620679377129503285545663968399020554663576998676681200014778471267072290741680311253138533416422940193067529816557187588733117326582938267255865688441631685538013128587142676810617013093301598397165667825609489135081194263094460295470044580132203453305730301679848367960298739510990172487842340613574871925994597061859341318003902529335128188225161969948791883914631210984192356842389056533834501296961606475495397183687948955762747281635883080270111130345550147048345707526913754706040266190216044203225079426449633524303448304393495631683896735662401805503909670441459831020317751281255178898738684338346267589855728437608940672544732892883549733726744571998859619824216352146525921462346585108204571455624237292003408880696607767753560702948776766240260302658870583452033188100063905862871711103179052296206238565631488597901432253873880656128917285917564794129038463540857017082758055653633611245979781085182931235627038405367880874090377946495378403919356917705821812590428046114481849072087257851416787615407347901386748389058625255976994710185645656108348253773823519802521430320249563352246294939208670603991974741367740842180630777300062844999909401465410821933286839852826146503782616180225238007287167908152666778732954854377459997782441193725109723167289618279539620262838715202773285351463933546781602611007815057882422342181057421019728040115738565819662926588232899523145541062769235746910522936215661301093488866869818546663527729940826625818934432443805797093028437029701793949746373698837853569558816677504743971417953646237266779379684038099186182898394286386161512387017002238983102062920027402285811278161235013463313270827084042030158915633265515204002300360013182479034360554951506338393935572746803769554694979019957308887109309717877559853799757489995190615074101097073210899200348703369973331076994179108978986441352888958098287453922762477923148954630333332794108936755666629704188078617211607644055382256102662353422260421907794719081907795615936481277083626789913757936819332662962868171699411054957692052115661372526544357622275067288610114844316067095054562235886181453745450378107025899179715103494894909965081918294844228684851673451024258466413928377895008087788206352458724335246255555643056933139834859430504904305169768272441770708815925301629078480029111780039515721704212940940085041781055096722704679403186967252866640413519034960386057173095119906880747850452801105873580024701720502526307855782207295997717634271411801142641972218238686408995389291924072852038090473363395265832287082615805687845371948463679415534335374589405722954121038094496145751911797135750504684325241424922976433754939800424493561476504840386882430711359361677089781820564665208174302606379441752737791023281867694781506497817904926380030161254965113252349097594246980811969832746282849921691867624741670691410789153441668775237681423789714977879143953743449808556553993162157464697943129590667071630434662896884909466349263562448863242969554074527674057695376087860101451602247748498354413271313858957922196144661401835502579999726045665365522957062533302235936617080930066708999853333745648195366254432775207289827077216903794156807059276578603512281703108601694576457524576791515642018246764968879259242171705475317973627289196353672148908686367819744809395177515521128761337753761862293826604238120146855715389210367360655540674344553219884503331816948842980607974216658794012101936669363503282260290118729456039236105683645662573721313222760716695722344574607645897016860524629799228107845521985025203868389337350186045363126235384565815855752546140464844518226438710497084987713071779915715427331632765079030332599571652051220074311829216901871415350322825100386571051822675804003593941850313007006808746419499291589028977576289165618380370851577829137750180664533785984906562117370395320665536813781230309144194460633253922597967936717875134107534512253698813663992475204374897367088107556002117255036978295128806303978587015615949788008285049738466728528832148089425933708264610617345328052250541707789780504113172506261944333283818943612904058020405809664572034218548412556353908294429580592885199698803287521174067339041420218814366632795061483802476105795803043561325565349707482171601461813638263593813589839969548638794882626078105285968177322339420690657107795582265232462614476331727610886572954343986298572034983239613773695726213592554445088842485378334665984190459210350687204697830058309460449737380462034464334686881808040028341544453761773146403247792020271898109464162209618789378090900409454400137551611987133246037477909689790401941289663733767351149574214771577345585283977737149371016096828880618089044507248085875478649343564169015495543483628399635433231083693179580369867176857272988594021020124404300763709238392754727450135572133053672997606101403346840278772184256172092972329358341001023343703265425107616539463085703940016765659856526844554910878457564031589476078456459825560073819865770652336088946819250122140394880308541837253472946252784805048113477965808469668659886736909002332794499780422549792491493107368092937301676790701607297004949004421787363302095266002272522902282823566251748275910911006213830436689117468198837613455008204119317424756879508585284443155209411553932438043808080909432350018645315217205154116997184454120515002143105691543927244210887639850508596911643533078897314653173624869200975147244002851513015712637443997424170873810606455757174306557222879642087548495483811292747189778281174684149370022823049302357186597114167199566970456518287707169407411755353739072841296712265878751802665381003976658901577804133041781078005620589262715483040371629174183761597177225432889987293889248003516022848730621734900439626569311390762216574682753828487203828944575387401221344562460735061248969111195357196523683534212523022924703424745607141614583541242954466233035916622198367876987217554268805980705825105871907418421350867730990780875661772357463613025066054765575566739598559174540822384264067554925651068208689764228767674286621967373620919773197116982895747590008807965874766127951287185772704498123970131893128132351473044361879030085226727001483015847698738620393386652048128698129604615089834745851159740596546756660364736658127778448242860652623628496126319611942564253751112913600535816572455923763627076152179843286224177705962905916915493042043774176248433403460969011290827250294260829632877051292853671791315101273369489040706921667311741882686054018142327765903648475746689875355094506727804198270020408921627537034515402427639373974138143282902045548985889051654927607737399247581201477956252682819156457005190547612980886910391671246312674691031914289861111335628829830278416342470848587468730946824587484084696208007549953419912030333670140492507128619038378487676696283133314684771209735384120281837105114916205451048019870853536412361996488254090189245616365507199649642038241090575204139994797112539199544586311573484576267485997260119100089825023917263375741339879670827895501371934130535285569538173617306323640033014664231797175209042196237029324743805752513816423694724115242254513501826848018812894695813860762278016054875634309524631564491025208780243419060566290968770521191999774064349918962487756125921744560032515272737750074489061401303543522033227202534552436671775465792724786465353957040516967452307164482583439315112821676462102655690582218529835342803128326935129622589994547406175286072982241338249516059472127444772469209609002359894285029019805756281106644260968789540088880961319862179426563305877258991241803340311593376381323845760933723726728124351570761432898304845651496084574366162949786183322309046066569657426724843016159468631601385959634195039461688603846171076144256665910551577555598560605558561842199429683880492378105512491233228980425233318735051813453892963281261091292606517602024373622406068985114390618020616882948856414869574002654439557490338881101754655481207563041786861442159152187885512497349329701499792752227010308387232833032353082532035582302554303598805518961943788467790226842612496903536001687190983891171741775888637143886464866889276640271001906723976721721586533944851419933195086091732902435792927286571657988505070177178210532957586708875474588849772483827862297310588208733721779029864583708978994729380046779249512515877751789600066371967126942984361075323575796495759108425793828295925886235417797975403649079113387161602595505723909804853776660139182130975444085372962916881896273574877896559945181515001702162420478131741126682501174325599422485175642417350237032932006569409582931471955597186395383131563677440044762717040696480754063856439748959254992408530703964095694008292229424232933571854100034147050567597785582013922955801806600299608690042783650776718297805713969062026684652772840041571591890568903294258799415771518883365243797402001806855515862563688892727198639229231217872095741988600896535028085467438643402747408303921352962511611726996833322437253850035698305905479972069341710693049236567705294723199045311672949269277900102903363542074643115775186632546942428780427420236189580297168097591600449054592843324938467097332306934389735820834405722989337886629094482191882757782614217277982815723434798605287805416214553723654362692787375414871554552523824457160318009711766853790571682349888716119546612521148904930743789549846818794688166976419363073891850087045773378010390377014828828522090662526026603048204221383346775941552358773874540365820417189746475407629269762688626930640411595882477202646885976299810731857744430799594333325517817094371335009407001363843961806839380488310472989963262113795793304816197389293351111174292100222285769475201069673793661909999869471608278445457672069731730789538681985523499998599814557598191892396774903382691910575011090343983904048238694738416190353466445249565634786288401053573546583351227845828034718366205073490798172126285323183635543941021305530132688708217740848455265619898871637437730482226427275399357188985248272262632289502327246179084148839274645160648337977121602817189985895493977669880581181891103297318936558571838902725132959666658800847582260408141717579777512540070267139817567266150816118669211802387034091382087842447463942275340876858675831676790198327002377184849695297837871089476425673799715474180058579357662182135599117180107411880884186883544875415239163476155916393821572177922896481195023681120363492411828825354812578329124830349309324601713243886745014623231759332466751730800061771066719726882733954706553308821066199475302410355682465970624710592809647308738252703025740608645713009227988561282738478213649947363613301237592055783844888140305454302098526530490571555866467182324919948504549021201376477297598488876644522117428840692687093795988806614988444418839641975717005437885864499968380280663529825489871117546489835147783723518776911547522969850822009439158277680994970195903392546730718160628370735663255719716539516953750639860487620805550157217852360368242888108165774800732324664375263416858191278370871736508384937456279785670645170951903554842790416623677034114151568008560482709424718911169493662001532479880318432152325762757874199160633930483860403026765389185323415220041069674962247031012641575761059755445387628319980222571331240557890527404515119445723291976011679637547848768151649530010726343077076173407130827780242657439346706042321920821012149178306476243502784912333097578333453861187868693166125590491608773679262027326844404712098849404394349741948734782690875480826427000969415322320970134550516926153218499137360067219117072798467604236065857073671934209122614276006791176928087586948459054575768164974438260271766369260469622876442057422378283987247117133808520619395020174462133334695952606306276427022597812936866619384373889256799514598309344453403944887645809881395242680752677203046648446231830196523742313863127902645257081829539227221730387241810921220007594515311984564381620412237418550789696054478691922813134730559683644720424799210987108423345308740345621067967058539511058252159364106204855411270129448246831958819360723343683035340206472569223235406146205375222991315742117177649689785352774689078392747691522474255128772549838381415178007849617410845137986848152498919554983590320828110135077473895814615816327127244039912839240010705516795098991513155810592453763872430679378074050106612922002570680367979428692227620063625420461064988237512631933429394942220581070114540351935637945624957773133028178242798010663846484481327158918421938668776332437489175027600409491600591412520833974019581327063303387698300517421800451299374273984035311515842271452162187476863702298894632588531964306008899122128034723742351190324825343418557493586989063182257084580606564886997485345684980915457084708446659446594848055788469891963202718982031544414667337944381663221223575421664351213197815041950751967428389432212382855044079009364804382011569806712278592428059869812562582181719686972983820635188511841759031850057028350474589247607524496191967023197244946645940276010523297591410581689435668038203690524479912902885513299060586125159107697665813576244289478653050260458120517165474388202426302189430704129866353192593914760737987405876430117727344750428910778362968773868376830834027300197355930382506499122315322486273779991999619772239269379227637897067051632879907388089887773742637110706512169719565658864054849552432342728632561223261129496099014349915419164944269538536223191525947957528668763357261275529348996953257474186994903729187089803352301797204996174460592297251403213161565518992806462445161985950829189877807852709452767516650563280548330178056832969715299045250078220408860496383505423697233409230884145182962741485557065512210555381525069278522897544173540115474494609084887685460310558351013270927521160907825518006786666943540522538182119963413898286614780192845500676392986800322550191149762106339678782324827688277338705777949491898399706697516345073904562605972018660383072267009239656315619087390139294962317538131207970572587390380606366914314088037888884509153140218733297118771010632505944771796339932338262042108016853620126556698335146092807656707401244070402045724669357685638914796291370904878548001948454614477395679189082989429513552705408754351101373097568517961029580941122926488261593815231750256656404333717413947614779505548427318705325502077334250346411456509347617387783777094565257972837890411886957596495758538834938170747846260893999121147738277228709018046137034017422484989249398017571598774623779969734714923473852735971059959403918935014157660536053131597267627025565576482645529809317770655991737093853726685002970738470754227664619981883176543856015628481399365644507340779746638922561437063298709351990252577326056470123540955739880360359757645539897272842766556790680067170537831928485138183125363070220081849083680187570175495493486505554105718018676728107775269698166879694985196682118065806879637910987190923798071590912944850197298533424643728812192113784531760647633283855002682163352651677069495458297620424381072081489753218139252995126905359889065191764924094108764889424228160379824117246906194815415010454811636535655681061472624336275194841499968397816482353707971671499217357624475219324810964795561062692826052322380573798575510706246083421388579765796996045757129158807389217330214790794306160950197535014252294818617925735172569085961629384608868813968738130703988947433656867591561640885499718503145371176032671365013450830447848033599555102329849438482006199689760076491708195404254742469186111410225202732007484295709912258160156118335445155108465407885434837168079268787650168060218727417764103012793721605755807839721206191836558725923899237117243954038343512378615405518625319458983211079397300753740658605002474626709855900868015471010315523245099352332839523289109503065227898853113811864491236988553808627214424287233996070048734006143799051375483798487249219590322040893443853647970663247005368951415175176295054384099640168368158086548172095742288891663976190391021578837983345072414613118262795767545124622283097937004629988651987459865401191904595146312095054716961286374911465563525233267222300952046401087312266413575234381159805697657173147567269657271889212301095083134344285263549645371266010811414873729790176600549612504217649530511957142127820407180596607194793886095426424084432249104400292620934235446527027676481015462404567126061726957005589361701365055769010830628841814217767328774015880358568263407410645552471977219124746284517785382306434794114646308133550575592978090504502832283680489537375109650191467711020439489772149835665775997626407093539243778232854377958500845015589752380581133525511701620387946238068381203939467950044563226828290936629458233617140629787048766396862604114372546060918941284831713662155437174989313909147012963695432876613179935398635857628057725384588833659871495461983936993768473277595416486332146991486531837380291419960601175906972299404812227318736279137766751017271900360260973350059470235608702110509767262381933648622586489458132521268932678521833773489342526469959615582867841741927890328292042024941624663936966484934016348528227788663214608961695310734869191937201592628751729879308125724153238391814305879445279284968849240132536350516031278692230697926515344030449273365383568676111257668578261354532105631248235390402558960584143491721238512412693703876344827094772042365119391009066259951935603433908276676660469496101513445447598846563887594387303374577812270382369721163949802300595915391968348483636540769540348239466276011931965027501938708547628491249234080720208071769514761827316642338630776415007074217458419217949207970104057039654391037490966983013257151680537876179877077888208723420581539778797710084925305342117767512771780090706665439548047992833557434475808017342119749173466919242850004563967519303332954545927674873692241760089761528861082150615324748061211458942471500704511545514118965326334249007980597964079428357771455515561387940105717630879300955268647823752533708451757079315863746631387867302665277984369036264303803486675653680068874872016665249615920485186040330639115150245210343976619583884206864016757961699504966738564009276206562567243699508881151382784025571475799708799376612603428334214940497100819178845937213242600931982027782202997172628245279256382109115526955159535823502579397012279985587744835682919231315263479939168814879026032384414192561113681930814366306428589227039365286931873023588284406308814885813290733044700177956029273400538782248530454999584511007021751145805730186948175129667131487515964859678487047138012172309566841214396262009367447738205355607276181413449043329518813328425452991102202800384882950904700410314654607096257815623643244376364079185624513719162014126358617961828091490878998262850349980057808211981827310913062242638120967398875511484778634280874481174745064657311321167802138294015076479221601452533687320949509151559521600044176446536031199556897532236781466010796024119643970853851971685207535135092463689920500030136565991847694732559315959884278584814200348466139216764190397597628511113496827746246387121115980914619529316741676089072231725836763352482127165327270303929300634887966195097395904299883694177041124361784592295154725241906037655090926136889327734188263901684791262510091622718727580348505390492074880514229140454392387307828427140206071316103494454992168328095191692469688597729916910921409063746442197787066967732861409341928878763779576315862160237940192762893334986889028823519972167931751330360827076075277242155000403640006778211617577290137901515581321060565757416639725781023202541077191513307412337647314657710096375456165128307480568866457968396455221158413890762368259265949845333876232304346733605402257193040340195625270980678107406051603639752385601475875716411577889960949390653209782966540680917239795353677851111919767841499392701820259980722270729123621166443513095847909711745639641236179313595125024511364063585564950886339640169792494584162556797646443891981354183604998004742940848116352115415937913523131955881109781400595575885932958913508509732607481477632701968601322732913757275601024761948503700706580127169633835572759039602554649670186016004073854463827789137249459621194608713552352084296097530834697094942973542061673565106331392871455370311996657101295368983601527486055289775737490008917327606406576911408231474918896216295733434371214012356921386711763442036488851869408294612353729751827418077401387737699531123597906056375565263636292267884011397654758834796421223287660714809802797755038377940745709768206209470632787831501533532028239065361364670739414933216052050044714900517265990191018245012619312717900892284448511484665714778546542066604339204445766164362868501205687128805017353996608229321597011127897456636390955658263773139210285527482530042429011634249873754155046108225771885596053826684814887102015582598552964138586482216643403517421224058512454046781624707499531434017056684768208696020428068291265041693407189183581940438950997217685687701027763027093065783801002378749724326719699274401787121143173430885682240564241484620229782146245588229355166948468969812746028726139697940204525726873808466988919845047650432425649064930620560976350599072492468600631314763967122782185431819920906004069091176105493480184237170744273105387189606986193174024411920339435359311425206034691646899508836963046570394204298982863668512693149861682905338187640793032764876985702497614718483097994415823933685356756692788635201332642497064921766325500353022217028258313448821308953184984508806626731603271630995772329580268988500220957158185617830037879771303195379375492050813275821116000665726293583508772648955779125530531480961464482724490749043248987415997600623226016516898561006172906227239730542253161468715029274378729165409720644873175560091650291936484095170531510517887407516641695936116420028537650316827016825746844138886579411437038442278202026329145388038565392842892900225501385552447983743006378687989526121539087543627287055710732922376395584098034604894504970304903691689221647566774644434119916009880019238637075424845125956607690153620773700570519945297357883265393902724567915103828020424609939949954065968806946651220676930059167559314060621274336295780985258378973297007743227940947566716004852899171993217255689725259116937056824549071874040447379384939617392560756156806182228661315737790945658807004003556730257610378090673678023168850301042073095419457913402079514018381774477175601188819781097402610640999597551069366936922405629933808334529474716709218434112229774016581591525189525703960508270992808485027288169713098279250605090476520069466466436520426946661432070575691984606016850990550379658937937825521738405216623352575101187884673630433883768442070185131344867566444139116279556449049331912017856467216578309231833360042821941692301696668167849286249956370647180940600011339524683164760735329883533302439955664028448649543089806826105843975159802041888745600956001667981219481826040878529726979463059093503566577855639933923355947871313415314045468208992578411482483755409017333181064449203361877279005941536912840563526558288308579371093097609441271573529298682019906514179901246411307812457862542207545940683806298670868606568043257436430475129608431808628969548797130950613430876569790910582488118910604334867534010121165114848929225237359204054871144542643683723339305873979242913688956185513433136939015545473849196521386291544749238709215074763343777336480109457943251495609126392052258059468713289882620177374668363487462385507643361851480661961664774292756054148439594662923488617288340634291486699880633014125403024104276181450416389192451192795745288939046289301322015626796463330525154005908422244554440427942275308715502100441087531387358677120989086365939979805438312216972084867468435736729734798674190214517363636987761478552526498141189431357557263102147481580877864558353210075236070980770724793497048957786404334699122453237277490725901346830246908669252335734902235082399432448168674154103885797785254459568649472662533123094284241222582930249301748927873034916343666406069410500209147828878996196803483728072323880258319770203229411193101471385587748123588432610495956826402373419845428267714742627132160021595515205454531384819946930153037684867164990443381178545374170221261848187981705819816355679764431236972293270469557794871361321196126322534882460496845678023313259699820816910608718661249738664152239922860268111380863963579311278367388879563457162938320181481486951939663792235425790069879452600862325962747014973565130451854233956929553707011208631704300350214124219032661986424225222772206601324375478126544250048908654077606758864462849118957574299530436065134008495987264517558994780598589315204231055319449373092546887932888711159391397898190828360353746577557430872634090658848781340892197336321578238099987574024627262136976343242930662897582370311151146531398706454660695076528263030400129641894362123163915322143415032583913092696398663988110945790435842962442920581059049798332553347464538166741129418357064519342697006628008177743518134141580628453334145785985546925159249203932479777715437363396424944336239774874479458136549761832143565163787797234158626477399981312352135220933927373507448288145965502526796200031492074471511360670956497795164202355520167371056013230709294452748068659627182785982221846875317010638010712696587220669151259326700719222628596177546635027252537940109935549443523410248407639691601396829644510875558639792742697910786654330373732487772915040566718858508940527791339131478082720005704683214712243742697234473797893728484623508820070880077027914710132580647594202520628772561621547754373267911177722083362291849690914879621567921735669035759948108329591554024671783414306044699960950573394833099130762680282564552146343112803556919957846025607060112660806896158486760261074350472179431552264185018862890366212468232043418638234751322357119917293842196745836762908393259214889551752615677500432563284672986058332465478271405160349406874016327111432332094153266571568361440461695206879890312588285029378067819326071840175888092528145524911947030904527105483165658012873738589800229165672199213721008235313176218176490579491886221087511984492749818875430079829619602132063346159268464976279806949786476611828227731318188909724224717478421654403952719847652203909316103801607362374329389278615535696870429230276664348142976425575867539808031642372250580753527173413537865611306954523164890186923684935360299473149254086449930463433497523164032928369964275901901050767989675028930520550321800774849814792336117014635674177536411716732186157314999208517795271663104684451648276661152687773530756991523572347256248482358976798373163856793804169645646499508702067430778097407469199053397766402848019888128389536723054346826619978853546461218012526759729008904418433926810465517921679712816212382995484234601259127760521580808282006299626006578236408854216554156244943264760290551359016506138646344050380203010254346294575955861006038844214951553360990429537156153596209440459562695923037632058679454747162746912667261004257665966865462572965489075593269098491262925843285283622642742073788932162273987635069875077916383889156990107859859051937247828718336880762785742170226661698937940317731469892192542006078509947449025223454600906719564301992161563964251190065287191976861340886807516311611509192081979068843595580087273853373550406959548042504853735658050028606596794499704411584820215668233868187902155015659023849624041465600399418235360433873194137820974829676522697330184027354436909736869317620156775904458202623694868472887012722752586959383609161503825544869909477363794237969073813912663620750503491770333962465600773833295739212494516894207282774441842568587535389225628257357650426155452337845775052978098329508754802040716346481021301345668391046691952554270435749712178386602210771230753047374810480523004458809314277696092287287545275802125043658196434621028454854743193562216230964408386821539928173913423127738526253486090875631803149690561536666824337542547857278189477760752812684178223140391861049998084586804827371449052539938321132823158311980954756743641049724901936450311727273555295002979312110341617227902077670565771761591276937700991570187509348104529406148311207809128844086916437767163504904591165866771458633891060175239902935439205729371680836052223350837635254471754801419513423492901033857651500336642263975722446048251481956040931412941175267104023598740386706669863666329803884071896861971761083434176011489826633904776793799579053523734010064189405225796371374110704752861127910324984065745483935558745177746488262681654316376315660258464151538760357288723380841557292974378410821925785463181403410082760882687656110027371463902246764375048967013385601104241551895501977861888325365300405441901254005554893563386920168359290028857798275510655436794137808600058228309313132676979648997610029694386754183061147793175878437253853454911060377482906044711938880492035882018815045704541762201293664945486231128041704199832761712003830028249351059412688768043635684246759355392123180120581472768957074006192520562763040565141686475855913099044227070014522497917709635084459257082354434536986440380748091649073867667042268325298193732780377596183691678188324785710340742562189191853227828209727206753874892037544255870520720894180043139350888525007009139031298814416796939846499007149056103238945759920442587108447512029609787496673677804101630733158684059432330278472817035411758028363389765630663413392480288123699298369692417277940093937731449469486551068650313322088673415403707751079675696701325957682159660081472272169650705044811112816622684463620437515289583146918442903250455084544339896268644008570197998230451790000233722330713955913894764758760336539292663922365856763686565276789480144274811811305650804024664095029784583407146273793632203381651657765997076671066410137969197143664242804992417098860120962949284103336019591879347214047407032402139528370829496145019416411238696765171937395516929778135037184500370428455918365761636703043495061252623810788057984746194606826488680616580817627559350730762780354132161395880789614055029336296904390930086631919560804853899993933031452926359419668227119789888000690695639930039478737985714018485600330475256255770271786934192602336783346938426798068819953674493319523607817184922000344151101009808696871987114189005238022391878099257522541907110520792319084225515120392127787652389446474236010577328495605705895386872354855864820224546904055683766448895941938986547150751308343196564407162717050757009268963237209290371136947598537960369223152024866332959923820931105086660095344887253111002134521476584876690746869695655495796397805177578082849254548625220800594650513734285343660095341248698551499880277842651885055871010808994832630372246612811462436861686417895974464617530192985012705894834303163465901149239187399773174641080904588616168557361130695225341843288702207343308913983945056596115969121159271562131522891828357523154454148000943724958978437179393755843035430650999322871121712463057611992239435382355342648460953090027447928712290134608824771350618256866481268886554841454075845910547286844012546738549670532912430855384078911817619524335532371081523372835262539974556105210717973632488237219948279535762959578186858682677175153624421773989405345559348538592448795297688337594726097463076589684430459613591163183121516525667608267313217337060148528515443512361340305419639673018856867797716752621826550923926081873618334366215606115451478355371612968455749702803728060021524885894105559345482025997504633524934815620932712271988525073340272620529165756398629352046515342295112802729076660866941072756809869188485330486778885389288308062043723290001932804175446328490043869318368130976187195259759097724153746003365787153223627704119566866146368687892272059689910146762804527848509783872720964388163799433972970599292292744756646124125541816970204672034764717160386820417783115950393518306087703091446358884134693838033767822966081181819420990219805772725367201085252284408213834440107864649290762410203174516301130063229145045074751312808539287315663534363741800193686129831454220850295714593223384511027144882146371064807944548024503231695389052131924251306764249438406959145955917852871768270520111881524061768969520843155751915612754183550890348949430784229125394135675212239072587451490913637154207411787365148660361522435086884484088742524851022718797225170765948076863266935565464628825698492817523804302683075741404316455536409918629925578446881323285386414577146172417275192793384641389830983242187154560138979472665752346995492278026139372325410016440927445187340890280229217173214354360044596276301329476394956157302118639731145755017376743990917358840247857020460594427157570847693417760809463078670168381320249121924666301298802530291805313146226737686103118198862754146084043403143466831700957087779519217680245089219131579992192192994745436408712977885761430837493150490019248203541620647417928192133161068826059895383734351001998112185193116850549236625196108367616505396685225014856669291333650050027377385535701307200849270583292856370585777235846486257904463840869290477842040226319365196244951065351746330144598882432606456825288801615049290568165874373896309733729666022959072702731336523093119850377669878515717720433049736973671011303303413680945345451845545356367566438170774334828915118363458780018818843113022329179605009534640965649652087917161729874676679601799540059857678338507896929107360182345904408446051983912471623328919611851962537258906548085673446626258153148999874582772164737624912059108022270268452216484264335128117354166974346176966642568544378203059426836130607170404214375437906630725062130811126846193134865856323655655898783197847077206337127782499964189555349228901234436589902546658380042908135903810091027205367197059787029745044599061316588174763530269950362119080327600134354121946653886366176657776304197877556053352388917317230907908213744643284723391161428019707819564761412707361517854283303664391028788151242327440705746631520884184958289837011016282346883398462712842473227787071926967052153035613534922356892227431895273465364623926602204625363783889842050459881627491431184357728081380167844436143020526596724799197876407853003087321485866510257353030043184958630641486796543089706473724190301410691293814825687834345937800785749144624742985867294257839269780368046968002883166399321847236304352770122846511393386417662710197974283912664046348939806472457299483033612484890392926501731221263337126715006134750181374152508413867779509625430610884918529951653636310696077826040587606112769582580340217519093792064264799946337299100640407354576307639411127437662673871016898529349334685974110727404657910303948746293770859361834504659345015442299117774272602332247394555867227534606688340700982395955439829766728234490767341684942950327435669068770515771738568565290460750684297841325902983909706963219605077334242902556252037479025068669216929459344877830983385071164164767200026275476170511898587685470307494850808411167320987845709996928037759643862521282601733401418578329743695733961114698684459208126162947315625487744279709673775023196230150646871165131950677311560837574095943224056680166568794828260686333230740864051344117083978709472486111789661650486065739611958671261424365963016890602251483810564444517062437643469815068349434219378362892134757449899331197341869810281225161291746485853091163645976093207482401289527500513910600620121918314566320366107082809767443411216373730119088500328332585241334567556324682285388047534802565322230246049649708257944956180450223323822055432361976161281967883041435101062732435392242183703011678922124166725384290853953330341675166294333293114954816107970752601700476647888019117133275617954216329238222450068381140495204875229715523550502444934225567641041720809329827734183731591226366653779423422248898948596504258400403742783062928369391268817293487546196733719662903706500876538320043010484258579756230203146601888425808822112035806156984346778009317732846369390316379573539457335503283563154141644762504809252336102056494603214300022315040168657054030755884441630329618158723182889167966303770949648548236795727964952924216080164030474733004787310569447690306970510671231685784999356391867961020749648459180929575993533646320655704682825596027420865494879490685762487918106982433071618140094919631661481053344110317878107621601751741156771016141309067935771571958551360049775240085655435802291234530489985100855043243511791638458757518966015733188282506827945985795357560482346909709514953642593121441589658457696374409116245639952100979232904965258575899978570061615770601856831652941635108026184005492440804636041641129355426322778257758852256055922024685599581696776948932680235882690182859986080385116377702563392634494164414856376370255979301428436734797194596228400842608791229973423797848368504230866850179140327225480334905533176129237569490035689143387187280256303253713078108815433841067894634099588525216906417973166406149247965926427040810553056728343351005528307975221595167206297231747925502875635236637794109806392968553235387500829394347037653023686828971998653806438273999308555121927550124422929181586665170038703393207955142490562032234887066538852000516824067594485410021829266137738942725990460527530030883974824890157482864767839459177955768717776416081515498860990525077624934548590257887228317625328311417652011150991918808320545647106215117252120922929278756669928315493328568354766571226925078053838718004543260474194379461104656285651132816516839230201650311407427006999658954305253876612343832328623317571697908579678411098671152700395428556075261222734057725704595931338204376684041477865327098924302470852290965098677192115467287415629761644842906383195293728648715638999842399954011090385260309195127758488572588159076024686630485816740086781119007023460323476079811462494471167323708868266824035839492105227339268901324974099433358591334715474502796771192283561688952390118724215016316294416726872499009800656263780199975593510212768022072123352359586219409490907987693120306380068800965454600113575910945582318719765376458842496005854204672538598815922914141856473526004779856521622621789279798506537620749404515015247962657167923905957262245933698166383715735336100759794785080410081601638266555777917917489387048899923804387132870451274246984339647829016484170284434050110556618961513651746536123240715879112979896230848294350104620426773127385226097491238186319971511576553303195660313925824596176900400318874263555325368434938032832933545295851758283124267914304150817308881259397291015535132822843717255986496965920013962203973060229137623381146764540102271004211901138544815889657845863279897497518656921370538435598519182951199823942177138603421987407169756103172003732054206893859807726621694941727083911260075073610471469516045978918879491601521110932445593703691616921184602731374132508938974475915682900838963839409867611040262056451430936365159324374390318587853608267608118348489568941546030335406858474839324023100451788225361671245022238445687230870381618116025776830383985046045101986452612856061107097965148756471491875778293936021005213013338131713883189763291031052539859390412562804352700485144756881264834344511389357765035771865179059881517558438740286948924537363081155790566286237432831130088296703792821521536252025372088548808466051325776507273480836489107618404096790660318608808469564928963615867192445680587352531880473994769072605204571473691371763347065934064164257640724713137053716480738544949927970618801561490663678198611220138065197518959737157355009759531680315380069925383899904130135877578483737624384601527254513811028036310663294957086382495634199031889901887709713780363999339685126705618758773135889521109499674433699361312410413434809060694800668990775165516368790097450313361279166002955182633163929468866445115758229258683694581897800153853921380136666226563556197815295295179844706343852899137427755161356515068975439257404013754662315556150016719297830374074507188282353609362251550235869159154706765650705274997324680164926454744260248762582431629447717332272383999655465018124040076515986255629300179465523061578877679390103682835654355957655093723151810983932947235036516057662422349737410487939634635041180138671120013352981356587647330168104674307662157504052249325643267554662129527346370948314389016508628441587158706806613438840837791001525212070771908121963960136552174485155534846487268721787787294959663315475933429342522596502976409690986086522581135622186445192136415652070758956020485392799069378633546744414621362064779191478959600914655718855319686674936754111647497346240000694053065765118157274179530497697603882801354777079077931149635511220766151189271107861453278228805939445055962094074697340445932220887178829508496245229273606978770781889691441918975543686193674395037760317454654001181894449270883043088670325884089299985369169185293755509514437382688811540747365249170772027305313613432553288300354897406506881334218430514312840336759938446481227295590462727539261603912327202673840003509304610532855896287815093140716730584684593475079810379071848153441113404759833481774120905654629090791171946186165616408219396450449060843894066326888375849666671257943644852036668279861381935024178620500220540404569118715352248133891048529933382419269344679757843967967760731681926849082853479882323592975801671135382699869402331617360920948347872822884774891176381951274225256089732947567970021800319926488593650227776249834650391424675395289877674865299653019247279346062602968975065931094608508845336893328161963852086499943441774246591715216747632302872538923306985042933620706882774031459767734040538188861854127836712025286703937183220338661148008944214600692440580473906571457956656658732083163223235400528514139179647828128647744419057610181140811927146476091736806476448022784737142917700435918949064356853998952665926531081256319901034462843653525069639875644464060665639627407172322800980006478143836199032842352370635919322351009809895267747076887502076722371092087525584610986601276966235619445071248124611250243730837283874832850471481029165338304608845520778795556151651240508294085596744303907655796475684012110138606328126102724420670157361529561501263664109845744956918197889377315093946791301825422158130806175832399109052085292845907461369351536584120705007747974099712501336998223845208839924881636986098915634985354892006995794243421099934442216306530801503616137250730009401448710924161739619201334022225877907949924860029004832916649994003427142726577789991803592047216511541517798235930468800396254581497503346743508029960325676076143469089751003456545252914003483301878883797319483673498577693676194261660919471221743149185564560780249363113967338834699866374565369721962839864437549512880325463613110771656832461451106059286968233047126906008848649600411826921392571624192145280206001815523033263379738811018102630059027791694282724140662705176346883304729924941448685685252289812122457285258036741402351271306673673033653176998712293263383888421172119652620909335636072483221523060766924757437429560569697143780472333110343698601832015789681838226115132414591756470769360368307664219464293035138681989123516456019939600571053848314246174496292501268608177222544370527894393735060422321346618654117124774110199817381456044592131188025008619537348415709702118690955372885043431690387112845669333772871328848871844186008584126563316841504149485057273911827526683490073968531966297552357370640855666339386261236653105682005380628804358445417840674345979988055379685460700557844699415412689706600911962384568881419574630049578942037913022916453682350433887872668881053683110619082332432173342332165628088431711150101666275613697219195861924884872605010185336870823821238411516904197566702987180443704492245543134357593755997486830235067570676361983881205382806534760657441716687963153663449451784267197296497027950803629243599897243237094156519340932176894965196608779067709637146656444345973426690664967230547993221052588882310063660195104461395452608411821494369806822899143398761707672081730781766660693320289798163387324463951606625113311153412922559383551584140999219800674128062108714858713912399255179622783136147749909884989795830565929363906001713930878409065291316507152543748139984735551845069774407698432926266931328456209872125802054231083381072844651636387418380167564257416832429366850028864345624190169912738012827982752882384957279732223318830935420407907903509168802908101446669622214849229370830376635343557211864940149627594142604607922055877737720683072717062545023317766135212355882143785881265153668473870099143692067818952559944317742435769196893181256067135591547563244777869962106259672815377683700993101065502441767660477864045926724377040254931990564465199126374519987195084350891718504061723587555035348457824198971890088232527130790806126797400581079870429633847074672212708025724558684770077007890583837095482871986427750297436026037985110134258767845036296418571513032223861439862323239517208753029802441221236014497129813573197199818359946044017474736468573011137255175112962809671945675288114255763354406396110637105139735582911536534351357027969674953719570498399619857703959884275219095931592801641462783690220655957508377044062329032365793351749160187477473019755745758854955790506361446094070849134439853085975977476279617096827920256976628429982564106636274870594517658915607110939887629418428811710154715807404286665929159707872832835204026166809886046773340530027548075133704890577731826548775405525178701971407718536789342766229309051051951785166807745894477810121245123164138440465720352775679776566750198368008551254709975169452980593832930879186341606990749748068686063047186941227301932198514035182293551973024204929749789367445143618369143429692120135286696810638703555832212990955867017182976422330326344009676079636839524285987699482489172872971896203533557661893567635227026027714853820567459158777421224501705859134599768793867554896135869017523698559884532781420168431120659220861053266825189317910475554324497271028950347416576947502933129628235296213421395250209664335682096358030576607842874362190346347321566083922460366573155655209449400746174622002608076353432418876649835156493027945484161657690106600277123275083716100218077088590693066087730081602266078787767969154566163137481328116801422643864616393091832361909913864374979731800500351869578985384555989846628961375208828989280801667035290272245819873784966149798651893817235185607191070548966573481321957236466617307740266759696846576280190821411084113254602389882751679494707924488816661947688550715486274004193382741681115081934612316297133169534250938584513314329352957544905277596782704798391718415474564147337868814105320503375545528712942392223231257561725727681036423418992240013091254107430198546505792347423480665302314421892422775455580690395290309230100698928138371791446463377307805049606954739622903993386538240341799846767278899312338077219344032531868607885147569381970845965452694608039751131588997409240385868000556999251055536468158679515213074923235715308585810633931836684973887614835609902645635258313386362753302650466097052259395947975408899455216984317896585822610972156594287686473867796549668582352967630662969666591436832917354478923621808526521961728447195982327353421795724635969657100263007752015353901290878791256042107431786199287478297821708604629019329965263949397943481319826890084851881205431491984608294694955991359486337776967328924202226192906112292292826836887781813464166872378561510254348513588493621509281811026476029038932661719784130228071937613745730952873697555094261425011082547929708579762842976204248404499258941072731728033070585770610358413505522707478137663506808788164199669365266188529645081331597490996573069953170579108253816733475503369272398173708432491235429737960621325580852200299004033121016355050046859037850878571937390111164300361836667093599351346417127712237279855127170204504455561406325713355316731677829351730262192614077033059080378102398300804642567443410084121567226227364187465839023544141755781547332669988382338281933541142321307259350851666118064538208635816561201006182679316149725753396713211475476985081034707539356926684309759765661395364043848879813471780608286500652108972173208222394455795248244564532369725009622209412293859840838121863308292246044144399338751047788261299710341199408128968829770594698352460432632159989757295927582144497784771228755094078039375968814290390562481731419896008678828436551073830211291671581956526238734517304362180149909789600047176584275625691060593882963080189479004704473976581871579418239797283931480620644064860908848443597747895255739003520417226496205821266758317393102340908269982880541092558791026143057112428891964362976244462407680858320201936271202226757576417564719557102059554111735419596863023688098022805350310799513300840596310669418525292962106079411975215526696014668809788709324623574050434922183677176378413004805162467916254528166541622582461817428272960672419270540000938795544553485010199703729083526198386746368351540726861659412384044440764175763163179520663171602929743841537793919529628203836978149087278406777102525107871322392501748952686454674436349699832610327099012823967653998115193364870399756293508963654860766478261407452919409204104413251629563889272414757232296584092862748451910986047923164423835466453116191007713291071165013973707921997480779783964371277821976835388936789058093563410921504676947507209505448622196264798443246529302940464440400395120666691767273154772348038074944759142533161454396167653891681904802188845756655509298859832901982898595035035839686061583688421034467304876249195569939068721578074505365254082797242157094170116720177155208857396495191628418544275160200339999494812913497039024892851016249759717541446878166123776893208262019561212106857741885375499762229125089594570174540832111915145242524868744746732866408305221883959625770514465099857351510328203834730185628181674345670859759906147315396960958519207712631925760896853028363031009019959544490323887544414566251597261691543896355615936651948649429985577387591963997110483645373856067022430356768915023960465054674709894882421184784053863012128103747095692946682230742759132229355927900461343084006217289563228247754817820220241743872447291838733715602187964511773964983743162800450023162209171387931165426645552051817121446599535905790191352056207165671249320510593635902964311633324349515906970910568669448982867939688630633630878686549366514317176531288271348775943720041753038032024841319840638981101201302268658901031319179651901746773463587637451452079396810037080916518786099673699662855348598278865454641217942913112465100491524276094667601449146491191940357014351427832615074550627548347768034166826636840575950969697664558535806670655942514577202853640481684074991358987136482458463467096606525489799657321543560482111220709891185665452472233997574964016756795258437141069310907253545190891812424775211457484197683565040344948853633308373590169122442188874157480283757716049512926225509436810782981556889798250691428190068757139410663865997681311664559555445241010756479114584783929147602361900152751730485047867282322036932813767146224730273553329219209156727744892438055288884061078055260033164308382079485834982725521656375141395432787702911146291593177604599481618790231933053962506085684874870102050254100367118123330870513068750507728091873401271598273375994949657898844558451592097364312199341089825699619829492667028292986634065829240190904261888957298793308004367199636414805830344776107100691647176677503278060998546177066380133249830304161873437699724421249841229280049186150282780427015147569260642172432853438684247020859663672391362742331607461276825114451363695822000978150837140290749051499808476786690265282725091556575603861072707389621962839043490185426119195628314347610363242637662265388126500775810879357055131657453817955146503950831338923767710404253663725639681797970298648404963662327079036576065192901572643120795328929582043670104599828352186662636671048124930757622581405127555143596122537032928296225546401163525511782563341077390643477274056640750222835784641030878030679355654347591452037810099726335002085774220868244282403774619984018859081781191099190242002059884084002013478450376258250059046965465153049061739588540176168051111039040775990336503385595012844544706473808433801891700370694446375213908809660970165111699665195457687319484167398525813975635101640958402867898361353289724323435824851897618218739356902126356260376121390203606323614725253861984335402789680875182625498939728947102292477364164952379757449217652497653830149431345388964547484472762964259571766582146974112653441244274394378367674221239323879942564375791686279246393865970659933661467743319524623309649404010681677037213772403648632736463835652585012167489239633332073701980268831220525915854945646465543505730943601259530097264154089738001342416079148477833836651438621241838190554966814453796647090098161645631716181360465010345668448563367113200412308489227797191889772235821190234965166793347646852146366060969713720368443714985066403305702712155389024202419406409374725104436919160471266280858878762528913773671966902866714428767640294035290126302560976884482574089653570693949345168974418668820112072301375504646020232929924170738475975996771693033326775874584926477059200113943453341452228677830448018988634515253793527131500134763308205281094280641550324562914355566771538923313680515494134657187304500902574802241576180373366971445358259824990320721106991399655658020028293361297966689996542017581541023352728258563131056341412176851865611547019808572493831366425510471734297800797930756952441250127982915265999429511319548666032788189773689971510300591764453564094267756608274583580093190832941985685295797441794568563134682647191429214047964959269273956803949458824123424612535764090549839193327932166079104046567105328149991817198748558796646492523452968879045034560062343641388122167638542858485557007681574026938689267231604020185043576643517677836077750753803860274723560535759500581297765933649330606810874214564603692577800061285042674534573292904302253546921910734549862850706932660715253516761542746571469641854331993445095591367734919826706982594561811044740276520680597700708219468729072431166784537937241255987465234965498123479730970011434726732008696691915181656292958320406754815510302099862624319017608392897779533079104488148396362302412076130029293408818471026582779101667020121696354359737828931807752322809511753255856028624562058857708208954661844564709772207756049894055398713336647571686949142669143128069982193669616163833079465221624295434348720352207984933555776286584851472742770422066729044971772678676859380889183969510504749661039174544540851570238380312404721008474578877271350220731992950161787781773380559515067936389647340389550776106079031356818930193326092278481037892956210116280780879019104309994930257793224152800967744553663935559600727047636032735574459680246970679717576795512004411616485686069505076747256834178662542727655881290128504433537661100842809152052514562234273717608753843532261375832238232284298464834615921259781073979845724395554179774793583059034956317209584950810492504083118929172575333809452807908113422808745820986827689563904116960667498475918515738973073061548507028564646085651058099253840882181886044678300664819651200337851341068661810237617657419723776454160156133217505379307586869057190707745316331676246417310922748631187649588276410929917794209589607778336042154130954049794591558797855112701324816569756170270620247446552318764927650816580342411193162631838658317010385988445493220934729946086433373791912595499663191644892516690552612672509527536275600989548024106051029155623066468349472703797051996283430784680638695522846844402843889066695860727081869361593777537016984608340962323924565761120733798022439755025256517306493424857632073327980976473044484011713728556167200693238420829991665757112868105576502739794649669051798690484813117683185591190134470403267606838194958626740011637793608686329500143166974779931422443660163516800624269481339827358449853813461171641534161276448371252914794791861654237833619683975027859939322483714767306485008346489490241831257166376559984443309139393231633122034103592639061855294230105772318879368533354905901000457996945460887127653376211327606552465167160193354968243798923558961406626897030395510065658001786154836859953907256398471110001685375797455150394032935465970869776200485827026114707669053539675838682637880321101237503076200377927744422777785085689289727141486805010612701851959568927602915131947131564416450022737508174546997270677373436092703283054327145969525297592246215594974274976677861294054054296914753839071587400078886174127330523116484392904563965360532230175856405211834290685469185101404028302282960598120610807142119924681080104716424971825018611582511549910060241313748882496850289889563667039308859409858655528804764640573712897943195849127780576403302143859134056249834002931194572172761820466150320269798260601901917658928771162656231564996603795426719147058085491818613577858041599672450889481657143130242084373652139604358249882322611426601729540683199710178500389827547573087564743239299895503251959953309061183081665271364102952862036318810657431303738011888160579769166142539107819839491478485561522269403944166682099809506166807441973346044014053369875825322642175481598765886399998299746382205939851868026497343901633770387986591457594085804488869267055950377698010172463750881951964959376863860546261503137772161149217682744818207785112433588355735955812421191508171041775644401143092118915874328715436312542686973920323225371762332613588797650958012642914207575732200657109716684217449774608320138980607833852082419666802220223880992651988174142704212468833849933168766030517735585248030482478862778592130179519928102661426106201297515851186082786429948178436978251133490170019625958098731657720884509589319518902099888650118643316317583998603210872651789968732206104618912622208551879933078198330715625100861608235282363844380101929834599915736044561173319009197906225829275670942677859289754692365635997014841279212981351496074421927204118398009399476083500620587870125239226040279337858454128148630376091130466631995469214516664923025782012383957311523044904616614436898227860467796001593767764026675831461693677017639566453879604980355647596548445625182899239538155542366578480182730226835742687788410734934069698927263052815254249449291829164268006153498956180009370124595909872754763859205788419170796007958726008828911870709543188173572442305956927808753336911032569228100257609405255425533338493415207417936285836686607398968680020430896896398870473289465890521352357308444537916312998531397187711759230398012096023498193032036292070323542726948149838177372545670902877886567092916513755362845863202521102880825803100191878182114340036141705287183968280829476599551049445347545647480179404580803145913558198617445480906358124872987356335009155824449095490998319495192253093186990821184783403283495643634011159291582355631190332972964600414579193357815786202290163039138914089958471826370852650726213348190953504505155985040695731567393045704410000938478344410761956349764532630348645364469305014778406431127377420340842930205568508266134714762532799117940083172605546950664659822582144142009456084990348356498726126225546623064021072351170994687232577865336892019617620643658141665920637933315364709130226622529506902687589797979746911372402859354862971685136899090009967156546303991472645002401830471844797761804659435696326436675832686098111544611088758745891564254509067881353886146733783683206619507643173981307471423692199885467578871351385153817153366172251672442965573485835037473620982970431498881544215093458106029995912167732466744100370370927257782165122787977137341649094828188343367176704028489157684613780302335271305209877803153742990656818811791601548418776913488655807430924384883688653018278489750713591935513123035797643018220862226919404146057048403203587749906897531141671415666923519554939658634276151890027719892407605755481202206716957441321750789754421788614927455105174432981447724986928490201992306341032769766261311413661696471373046617024829822263603650700273699494416114565172034951287275492793479238095995859643744011830382972755516780696253038370740183900952157805410492035050995105431383904220320257892024801583438734221220461112852804476480943928586891083614222623846263669583162571812956998507484746264464811832023055816938392167757649448834038631421409840238243674963098183782015087581736626189961078621358415217002194848229537784108791330688317887968451764536470037617703371998061058066935655062563343254925274459025169580328373685956198976080480932935551114568729025769860759076877606794463066669811443894568270619165320376309508627880170189015913508852788646015059875429750420612486581294243473866683385785751473346420196029170341229871687677540351607375683592592310234152988461108746853547774723937741958774747711195299866882273580512244258971417186162755189644655210428637052678545511011023810554757848552992067653716549425733097711049377110265588319855058978125033152224079399501669363863068126812138097292876854425245359028697559300840040832294009920176815403369038918082681411541657412765667692122537876244706172780444775194629394017334302910740253039859130437045202521710765036603680349071026955126195958914986159093926855055897753837819160794336453462805393888281112298159499266213987394099654743967903258638057213384736099955743192977717315089986388117496227512616055831202111405664572735402268931345153966219486266269390590793155260301265721966562978632159068312789292718970250083210345142178382945944351532597961747935177231249970374671079902062368308650380565258694473968268179708595316144869133878177705891032922615594116251321007421977370439458414645360684133260147568615403933850562181717203048647660994230104418324000967433414722403182881885983518377271365577794817508622849559846912297220755800493634650913609730766253405073092833593162069268977264139842469508831604047800721568077652587492479944078855945514930430361863458841269814711850251896613917997683551009329166701694455243401617412553428928210238634422800615629777313575932227292713325451597829265559149646766127477493512571264320560518042181014373400021476460640325367943860018217123123840229213836908625604645924493057667655648992305588719497324565994751234365156068448707483721406941639900069087527332826040850803873245812656808778694391242924721678588460547276694875987836673729054417294366343596184457659594303088084715497545306089854246124357573803068296775298841615261830071862372361769310643157901098646534776536052052748411787672372405519866902259069728773217492325764146940140298402076495861318637085244383096356560603081805968138578728301509473900423203692811185007019607566143243214867892477866411893089499245089860795230906642298486086841851382252473647372433687037588324887815370754764271442818024718342200426929409242375421180590597008394086641747531595845414315982894402764752440755808093774404917558670784706210686370200654406159552869820972593830372710163061905453731443767508848860531578417832836357755491695976080025755516190546063964053739987931478835888074614480407481006749770902261553320893676072860808306087268701730389290394127853321972294129405207073872639048082740275584493979587748193489171988762057317874752955746627220041485114803785640728212132251693133522310603942776968553579238633186460182446635105838449178859419889343811112243016142558861833044736220806367998993788497477575173433750813482198171606828160055042678541043568328603887863512921634289271409533509920384913198390049115990543007824549192629560551323810881316066111573302646733382751577555622873688354309872630024319173323989688214820845793786396112951870828526319862260863993677210721718453000347154459950058027357860191202292380693258777893228190645990334448268956663182240501396450588893139662033400670112147352718056741561363974443836918274956310357127040905163736025546657433478898414601021753248627609681676396683789412688677090610459323696205786160567475829506235027365059281124380604591813544331037007693759787767425554951701888310291182666270465422322915179241267198348060898214638387781237817819678956995884129135344663746362293695697958974888117626948610187334441072290681616368094174392817303061357288783265754230143700386221646272993379365064461182473383779027663254132002295070724175134304695129098971105127250602081195616302819669429840910937079829361511978460454406092985795146911235696434092596068692544874115300781829291368427918414931840089131816906178473845963945184002518161843675530815436670197790551644186701457636018290234058497816551726608692184780403180141394069608788784698402767900482100407954331135859405741377031842512949514730910025078974548550157462672744858998208097869204034851856707083179952962806143265087954821155550490712077206988790581397372343753219751268199399052361030674060518201456554010293969996448408384763448955008633193678879741503694722843032932870923753665148761126116763371193946767050819049410282247199884544828075154879399780120524207745792169904108000870867815517030171207450964445866206599668167383753829221361537178491309069012890455625509440536916838914880427939186570072266350152533936219175065306766108290021931881518189778793667077767479346492827784682588629046098569960738616536129386995071030846186866601852217230780154974420020649453689709825128049078422045792995703762944033531069897634908507412425057108672193733832525935379696151553739884678299071723991432745210816557379105047332463750834733550195401420498470009531220124497414354239349258235709608771253362145964085631255318068312094057310434534287978836878236451315536775788284593321682760223374726014905404940732675010121002472663688112982418458735423158548351082506782613609009405739319025269917935863743934469356196967114055174677733368517962380088032832018824227220216966871327878235841127667637290269529046805965035158395516029489105772358748231547276784869460525885454021857906486546682353645125064094481817950914854061386146899387459203375551084724555602927078354103613282391181270851517305431342991484773403435348026168741031417643546262106057562398151259859767738161269345320029076143293957069385297194588951986624427809467323794412678466097873312358096790676301217328494568790386212628912029009143699311556777844565958108736942912874175184312652331473277478372500902222910115896714847794571519290030925655008931063224870858716267536728405215178745871752110337123285084083211748556311818499751342429353041555832773150322984381176677183565995120026157121385908763882640815348599181353996861286657596613609621448251738613446274191541616602677731301352699173779062660886203784405091546828661317569280230296405773752066755400587929913567735710878942977977092822245021535801644098225110146587878248204737338730465469096048911153651019525411014669272459702211026522166268836336015341841543719211652894541752315721808713438171029756520221351997777502123464518617821763266968363274466297862720180604123250798744295306111918701303796010045410575903204403174826999258153247729625267979337557630844380045641041657659329371934862271027820817878081229672014472406920232349973572665198639523323924267602139926843927766311009995258021647033734401580512841395813723347813916357907152728452895445883524183468123526351039340403171398140529086818935707671140713955772835793212743682402901689321482303143257719555245215946754475130444611636191279698243023930981230305654512285336243081308293388372662476513451401634433607741235607524564443230378278915562025087318117857905401367607646010651344190789761293990017020540210225062975678235716759806367171962067569856331267728677390662662084915221204097507758361091825722090546965307698100985800936386036880012004417983095809966411462023263606463450144692896222759609142245825824276845945502473445002356190849084458212115065896089009994480760977639975956652340007875426080149413514924999920585121438217451183309574445570066953260397772357418438974913368223980585326605250317858616069081117032541354171188443839792515248517367699162602424247897001955560349658875950755675344024475658315818512582270585797394769078065823536218782428122287511729924337783323172583840437425044683590695238281832322587293411030587067599554798112677122662318835669002888097779728473040813671056061792640229108899018173203715264308248232508152170650972836888271178000623005868083079665244266094676424150024632561314908189030442052964570741490997881892286023830187314347076802129613265743963983181141916141739654514866330173405987770212439568153048891745832857829482969691184189954509475622136526321795681268846477597003343870824102711090998105830991230938973568251058286551809491624131468699412916216461510477505774997400304234210176409319921089243842957731495708282092711322527470591008013497673231375797076546435162097969998821561428568938175284307832189636811419236480780026479783247038180128727266244419444460588823924545099867716541674962274356771438494397646779492469100496642024147923945681226397250329584790770482615248704365065850689650808301200097764410138518050764115330553750321029261979711686976714149859551462943445533910618250047064257980051549351692075512164359954846661866859672001741058188997836574185706257744146567515098081421784759289137670663370076256224369328969632589145236845421673323905919432621981740861618539382739648465455660467200946486630988219029399732327613103595186542876507256268810609499420133770553594332847742990029576023604723368784493867922167287221454383559189881796524444420851172439479276658893693984422340778705188186920611072352366879848253103068477875506258417885468779283606639132339423232532491046379065877420434467223982591988844348613357508025967842080804394276892064635924879433750204235934626694070802852623603890101502401433641586090922520670932783019998099490498252321568728995487557673174944058498329872751705758042114400430116152104610786331392514348077021383222906083990504562824187531427019881366002840987707613534403632452765414632283866056727248176369273682032485442558759293382249355991942773251084554144560726008090579763934705603773623954134351535876788342836535666342500043430975808091579070615804299307344635372572481142651279426146102015235145250634315737260366337475925439958368511841161423570732351753150179626555728030716510680342381518042350635876690077027752954539631712010088391922659633255568882976932985562752568274455745275352753983185609452481214333346445352866838397363935847703221531412346122141598107862138179356885802068213362730651759299731188088396702775584985500023129584280020913937911117154327147857500590771514703770347208070941312944662259385670100469062780847793886496676793261850207066866824569152148981214791598237864945989485994329215668736970336426630959155881877599330580922525076301552852809170521599061567187114163735816563099175814624029483126693089425644937976721337216815762597948916149362753795117271325339131991800435648951668453688222950390181902115378393841311544675111449895475132854532652577243725810573798183108689432903146250252926603556490329737845588602954193332233820155343460205103641105612496316919405179518372253827740463998834085016874772915964555706850823169394265392393064665777170231640237364265430887465700433435886469758170787754269856253120678397627662223529132854517807608555086554721746489039802587085577893177715416529429168675157081742615405007750619825727910519370538982137967741472582729775095807312394332288930965238064455561240702374556224775431673593005487987306893080768630160037163530623447642977136255610167143006710916932034118431785209926689882088647566166509382928009352211462860993585549113975586824181007188926870960107676916622321169382288673459665970946326626686540907694057770891769036888699694347408847035149724276524601362714288623582840058581650315994621332195083413255774319089374914552336953898088643674796776014743431723208893098553617225365554950993053801247281032065879904633210153302216299674524012103407094709879409658959618139565096269405829993153737361797203339728716248174611129368616538837432596091420470091918023518354506503366979337244934013984002565948137594416162520707409638214472091413020265926104873630276181786511453641562696684955962252330534613356881745985908033248204023233767925555090355591988033267254543661837851531449085049865055964282869825402589999720429986553537880058717771654658916897290239151025814587993288242834500865997585106457840516934429892064098254783082418440535556583925536877506725943747458072869941412028582956756390860936384663554593342764789335762760840122168496084725968229616351282327441279105621547846343658447430838149750365719313607827056648941552638861805583263456395433272380469327019509361592062614829526641505282611063632302226092060767333007677799554775204839234347017035760834872523413872326269237805898801790830981234552182382685364805462369968384188338956249065965181489479186736286007032218802587815663041574382434916269799087698109655434193520201786583895520917994511192245715442461731740789330804060135614227655706654637299372720978621820473824294508693918896456298443633225111421142366176233765776699821649206359857789760831950218233604917068252203876700886782663915852844827815731428362246178853970804471209045219336174705334028998287109122269071786244431439029305782976599167286193702771140874667847689791566027569644315622076614563744798749862262855046033265404149622932169274747979914866860418303546547161392704250161147357390428570441572872977472151334633910236837265909978552120743997995491698827694047473944038543518839987652886873418001302945864778135185772089182367680157643218257579838130727665166570011956448378380319222279265989653872707730211295796111330404942943069436328153279287597866644525827394278720316179948243724940863288772617205303334788599786713916552096569667425207388151782885674347537021232819811415605166137167383019086150739785610494412690769006161130143365167921534435718831827450488762857092723746875453016371085696581008389537885675569793841267286548661141376974307148586331989841665562695047712338049908007479454557699492546359697664516934858826360283402372307732885179688983658814456973964760726060573677891805220292132248498816534538980168275791248520087752047540875521805144520841298296095954116746674236564885268810228725965440742255188660320084989534982893754130922714648271132700427396747247890031847269048016462296497672147800387893038214035353945097254343030720405601023247780654484935754923954251363112913101035513349088174568340299631260336282622243683632154003054025363815151421891981660743417639541558809631668135987197117948414617758893142725016944197101717397298531521086951786425315196052770033266481853505024498061700654931308783915882857072293957861495147533511871841358722645615752975133174621957930658758571774907898230929568667305269915484522201841817053708551364000582253690608083638533553154306871941097826045948454760796659550026535094320122008626582528072597582746685073785874025075582294030854502069615382698937502198730274602991288961170497856177273919831556690559778368961464983633125047500740509551498830183104687161628935587110657308107201135669259208173031189231732873986928199395910075229985582370667850082972056890220465437401185339959579579423332900437289854494828492200987149630457039091218689729043053337686565817995840666775615951541881125280477991171489033591380412430026826733653010975531311616978827402256211511203612266188300673353043980021651930729680734052336028260332044193607966011054130514407034213335767934623725268911774275808217775308436927597623251724517851648423548544372413719751631262315432531883346741221710346777940462223581893134434905191495815887257930236668170943663805529634633959779714853587221092712034295728652876561603941226755420319398498110619328563645612011091410721285366558617284706241511108778903590726639398406068775726489274450534483574628751060152919976103876168240301588859307776199659602573810947659955568607074909857484400760531203965035947523291736924930915008358734804453108756590900237391295299253069702908978288510819823279920890417498348682596030356253452885743644016946623090898588333054683591611076781570820625819628562229244816838885687563824072252475587809613324586770939397479285203942114221306037372259412049523273406491150081034118882729636029015125090586275955733372897670169081101173819620180446705966541163820066590410243532220063136043502229416123918902375668968442069632838644586524907923102870755518729752181070299055508551838355249885586309241456381213293588749454319261812335922800524777107384459721797490395054874533304052226993750324396181281549872883028910748230167287292190002424711959194745811107870354942104265623610737692040574526549766235518673616223729178005419035039664911389977344060173117883899257726946144783864308895206978919089405520078255130247839083993324731183184820835785336698413255954044794508771184760661256982502830263065494145603386284767821774098011782903973066589765951290088243705366315417430914586805869197002547821631663140423142872028930246906373769822784082712572405763814152262244163042908243869908369184951246843355253987849601034294800819843593823760246327874923522859947686381222611832193853549886485731210162187942691400856050033743031633377510642500633886601430812061037891719309960169496147147471727732750472690364841041875976061807632855079501730429859454357334524567295517683486988723634543110158432674555446335660675245619517236143065783215842762956987620506592693212829334399897516994211524218865603142832437997369197251431949557580939138073967211528076830431625051980809155756907753226185355108978955235681298324647449742317216167799901643317945329199503995592885021660595000160218566677066474563363730985588126623684516518502231618181549822925684399353712116232469555755595043469947566063292874754376493777800486139952378712235561992295188023373557490352143636543053649609743547913455445655009605502854008866387953416436475295861743446463597648491889367353642566205216099894901359325301419653219921989144907582637086714232398837539990909147792172021047366043010370018030150056122322206449289138476881978261543999166262936796190765550752529340984586342590328660660352477448180530614400798932743017759387298437946639840724187206147976878519673136105214525459735364280740908653448101521954031844819948209478963633275852459286849966371319335920812744734184610710733763544655429325463774245354858714160746368841003857877319848883530298138918435144589221067375541400302064032981791444652554047881020480850174807188752844155178164127216548838362750677752732792389538574495190447748913849786034923844336701816996711555779593954642374202938901867525656598038446520857352399653294548660585843470443398063064371080236216076945886496855443466484499812597839644054113671456945879246736199304922560279190915152951804377532458184914417672537298369542150079673388596941857537844361387869449638353817992439707258846696161205364301062738832320369817698731569152271197254766362658447079123003067247830395059111997197786982177700654352024470472632000759078983571817090326820665376463741345819827545834876275791970628163887605318941013599141415020096754967685763811618300887903630181833513970413774104755599669899130102977446240246685445876265591646100398717884293335319573357667790354149834513439074723082891484993992382754124947165374938605534293563606278120415436160844187826447209153404426177274968017786138751179372788205274769559581989339019250284181110262442737871351485778920294576046367553099355316432910994964404145581597988098021701155769679927113249471892830148878660587222022624071475627741331030940984834878772283632567935311152343963215382398370627168177704811475780665561507102086505087100831248766079377271979232162668486156302463078305338736489152674359322938030538940366347943917169885057236523622815045180979574827787178600900972777306371118922906064953814138842054309481587176188656610613105582960751885157334272231343708261968138516145532659871670481593188941224374927090934397706665742379063034170581255456216525204126442488479125825358623100317665628520068048262561179769166777267206568276709275606180295515608547370370191831574164571475035395474838439776337342577387800561646689056331607534812940139361052906953068667928292740092065872655735418417498896851082554594825449953954982151183467432488083766265802910434491643832247897970722534178793707716662894239918513515331998832041627005269035289858294909914859851121065177342762561975770110923879601839159829463365755351071419209407421398964851360032111718061977425446690497061817064388103140334633035326609695900273491638788571880268417277150831489063518090014643013622497264854180487120663195750895978226015841781374265604908819297019714812025854923353391270085603055983385112909308104363989754759985049737923242122210762580454662997231376341730481581402662714362378358278328028253249601961811923727705436833442517742330749558103505645283084232542187608623636293118904238715948299700974693551425550452823197979039382112891070739395711327938945873852846821492626260109067915113174853728535193731004616108515977762454321299964835990733170384874337612957785578172459264229515111129070709344726772752603667347597484695008142518270361770276038920479638324594687594485026141482645159727051678138742028673258187502583821201302845714679824473548645524292117721391096471740328007172605487421220979565657431522624581864714172717302896312244466321196481904980277333810129459151047393437464853623200361185059867816870961422946560671830157092534504371461146409838663413400658407827896490534036610406205098072274341070155576055298166672310392768192995540193601297437173557552379436237923266966017694667493007951285509172335922321081889234433335464855691772407634377328816009860268642858023372476964339032395109648717332484047126795592152206882870364270140450738515124401505765434112943894355406460262909468661907510083709794947285869044324312700982338197502855581809539829703610787255268260266687027523836746076664325527921870067609873999332511311111516188008322850832377230495120248464426885607434810907805016097282152956720460422583742143042570181723705368631876071211661429955893191509878177376855836198816553857806296164635224004955452898422119523796889378259636752874983659582097820386805271972346788752346482548350711190467060725535418812407411749438907851698129644841834598333336389954728264159945986590857602404443515075861941929661639749425128169511089701968683902131788506831120234056364092966080572823584115990573642914213201082094066848197611258341302067165369231557089394454187572493685890845446152801300072394908171914590110983071901912922867302845268193881661358154154614958319981013882428820741092899616540834744405885956094211200604546519208921652789407889767010465472935763358117505774043460810417844813230175691190088148660521074991961554896667974616857583366701205511283012148881463560098932282731331785294153473742595832250873518547250014989628626507748518041770041868826414619068388478820728034223581442216160944186168693024793770892084293127291234869535577501337335698667854612430593201047619387459729367434824695769201290305178812075715897220509636612795964630975119386361189012339894072404581805734456316973155706495389311894109910754803879915638176519687042385795254983201848854801749825351423321469400029242326073362639278625667681297496229782964056995105189162530290745201619479432077917299573992919980478169320766927313483121373661645136676637825097859563019830704473253399895919492027355777370107141859121305554313874774384172445239520432755955943328883304352223003279448041127929592592719788516253100468684008669806148430292597842179072824340928272222542294281091575305625820956571634893687576065030412763692663444793289514801577993674639151920872675416921612908815870393695901490777640150819576952565161949225005864237971221630968472812661609572262931302521564258083623344428061436267772923105085400623164690136953600996956074339113469258218788404067487487691730508216497302613743232122894867965763710798550422719410240532785920727782255131889541095628707731575451767082436425904718689669979201033696288941437853329209170695693281875997087262141571972587257735003693893933981838487045050400698254700165309952162633722590345357291049651299428487796933902394400372199193537742965710708382898805237484122062151472746400924633302630739102375973771874712996963223649793994584125305433886056980371696508753366994582715063709765480497729207041518770477431238223880305406003071691217129734626656063720652672861787607851233901326108264603771561899627127877094378170249917322198620532415935463015772074484116462045023144617470384904291394607163620637232487420716551582287707321577056413984418719398500051426186993462163746561463310604504785461139518415905598341479778508900084649725200040110614040068006267163353290996667503417164335928982369560485826335587089545700835378429770321628761004212868868097351447634836242539242167220307188530529061147884438242968373985867471387941950591928269261911888073350135816220043612612558616349981020925228665101245974447850088956319416981444596490146610258274579172850419672107142430323125886020049867198870726283895394101520852879136208794195107162552580999946165224281202693984226153730520930341774166209029735604396170094544479967634151572869060343105597023952334966877102070019589375157928649289818617807067954165367843517130879100344818054064498955058108511002956567980921659650008811738714552849279957259002663978311881034238655340530282738594336224191602130587702373396266553116943241602248203025478938388678351323830602249222039928452221136187915396476783537527062737718846620602891506826642867018081109455338678161007512519659271462610010069409232054406075991702165491718310478608079634030411527839620553480401325680842913369206257701194642282003556060993493929784908536812447391656536311489898978237003597033210389385604474746262629878398501036474901129511769164567347373108827439429331574463848323485708042956730156356913804026470834263640355903681950580844188973429489224353559118268664316478071586103770000442919659540197381729187932887785891363985161373897646829864606565131407285290060226290200161432849987311682745041252757509672839971917834790450777961174701492954764396483238587865625460331405762068264033455358978675490223090101569155096035435492668567431624185505727197076607793959677656434772998981365359998808442762929852905593894502808248788177879781993831611956358023249622471722261373819694406937143074032729170255512520385460887390845512826678878961316688563360730426264432681316853122903986293816812274825001175331607236943889635934393747990684809525242161593468911715648820475447936993462367919753283537399574352462036623593969967333554212531469483982270278675279946901872324127059923310776069717763541095440932812326931442165949884038060628856748269322756375921252630525705239400699424988979768149221293189900718824723076765054928864762051683337669302194332520185823438087275790338458146628620251518170764695670446857394134864853858454327174630681721104888580420671276832357729915235574958335592444263702116028036106543365582938581820886337215031006948163660684461027724011853764137545957952445791929826596182778078902511064169887983603695895732392863365470200228928650518037036830718401034934467950727346651582377842585637276070272251630402212788070637689086254267250999852932911844573853196883698421015910199596837925525034687219049794807869997787745811428511219711404944310459334704914810074293518609008590712111787808843853549243298557648131725181607137842861139718923702221571064610470351279470306307996605599841935597917038586322902842194535206709415186265061344172331470906258143348101068310196913155655470684187271696890652915542000146294636004643699027378692503435761409848982474742889231835275277749940901913247483129344341074900298930692925469088129397636092925299604955010552649837292254580784313528908414548416532091580565614881129601360594842091954909733846910799892375900825511859397572542671363655805993981408956016885325430795439492893778713710344549787898281813878807436441715851901611446824332425724837372252127706569781885580279144444659221560768925010445051086935332708223390642852472781824031761013836410300347054272706598370567257530081978359708366630054240740113149913648175723957729828188929223565108418295568953551780102034452043133277004554155272350204962484621183263328700181580844769958661018915374775885765108391096969978634820273958872958584433147554749351317050711482918542423512617970360079427127666483390324351009396697239823372206502823780386316130815848218106372552763270535091156736221061144204262289967015800603446412989409863975398825248163407006883663705424402701128245669808114326363223762836927079291009062400673192776696018120325140956929925083329547384196211873328796530185663510150652667516695585347500134500249435701575185945906766599131360423032104462557412863449390832893659026779382986812087674277537090588549020850108132670631716734810958361048724518130634332226806917260922028865275890897296902950422158829391608151955320708072560090774878936322707941517225616279559568262255952928939783151711112980477552540888066938587687058857081885373890537645576652966570749182676822952112454234208389063342569686614719557239088415434761893380022008015556600852452773409463752217641639875421719233124086353504169198443597024956063348582745228344415950973719102041164722394143134439765165337635483743485535848279990017817847083320378257570609405428073523356515989822437169481608207015112568144380013773852520758091402882964640359365072039070108624739658657905715659104265346874795227450605181775177417091510893146625964399751075476289294710936881283353049451301958803934040924205673414317848051721157442155682773346641287804718660202743393609160236103171771552771345287162614513626608914828813720200893798610386956941554588652805720390356491161235583664202721710029718971004888660834007855061582460000619711794538997822226982931294884059641541029537060725303229858770993774404804062614944915761740375490143784810434383944573321911933637889266505314945231769989353378012522136428952001165661097310337313990685707047757753278280430223295030370461567472616985768284958074089236646064225263197343436815476320541609838402733775917134828140260735497588918738395443621600971225861637426961862583020510955058495385108295208467097977489405071769402395873505002963116986931503125741228757064633970391319727472294999132734204533347360888178664448382938488584844436561852347646350327483987472526360942570707543675632066793032539072021273078882052462446579300888328125605006745947171456387231354530640621593973585664861611422524519274748397980655076032596635837118319481182305391001302988781491141225811045041435173217419684602827239381857951600700606818744184666627284789997017754617511828869760429955656617026471030061381402408145898000159549118902141880391387979760819566586807126594871866939300008643249178220539715577701658471536902761722107967430288123559173240740592677944669430674087675450084685810755641007939187574025546522594503528734950703378758517007241918295179204704210581772327536437989671517567336852956236055934810933461756650695233077034893192882283605102012773895337263078080677606930219035589246567462669472180636394479522939824629673985716809460113113260903735051651213319602123491657418426358323775805584230382823639610569919604342010444098425895399199926215357711972103922956564309697095047807925121142208783549282895261933307255898774546176010427142212870072821043644258911171393941556361096677339822241689606214029432767796035772104261808912277788302727804199918027561383411023048817251251342932015584712550568859704166106321860784390476117063186000944532587706734261279856951094377251100778539616227515933262134057784213503218307248712692468673188712537910483461072551881821945143386851186651145423902860809875889475310283882129232918124726867739457932188219722159041300406371477754193496268423030016615536112286130831709941309061262030715961989775760014831741571521744523239909925670915859866553941263412419930970479966622590572138620653173524845666608702528933020604007531755140470991711580954122992939959269955880102715508445598959795516286696206326238887925591770310912904213914045950818019661265359182232622337655925488221558201762373459728153994241135370980393680206218774677070632845293128220494646923842535758531090982089398145556218379032436024019647902237975339049207369109112957112062299701662904680169067773685900875768838596769003215966877008677432155663971027011833693535166918240290548579753120436440726647426475106750265718571539110861208339732156837170574244286317679660542672753792950939322218453059392793165120843031193663302076540386417849434208711369521421218363273847531439665078304896490457271905087289101328552318136831578183060482017718605638948438870533885052050283612981234311313700887372325833940891008943624042774394331574997588554927712657683485253410875726853658759786701664253998663496467561696421924548923034592917945235180051351836392514361174617908976041475153441520344398343053985716454544009656845898681493783274708811141236644714104504919873427596657630886384023192987412032176647629726730063916135167431619139625616451684973307604260183685282203654207100612028374344662582675610078981968511670274966518492155745529099154228818344276740185749301328445914814093066673651211130180516236055472776976481405781342841801308591699321629048660104868516444401017805444585129752854625267679724838296565819012529942971064617900472252304963632877309968109960036199809588033529426233009807695014000380718205467393416921212203081553637774807037126358224310556033717242584156291189386111963685002655617684344891209548842769596421898741153291418118184221969993200104803195489662864263194513911149785674821913381414230891568090230283295280104629503387264901384956922862044372702278453130677431894397601930007495192298971045408418029172014351944466265005663991997743360307901968822014504284026425870152955859362403226708730432211558456289977768319963627051523529263379142162638603555569600523013306166451874038626540515586596759363304851177988351347838993482723776022913486845872503357082944754927399929572218826402499546107471000648450546364835086641291953667352028073314039391971146033471920890510401835100109959116775863792081307026252207049078932985641269508301385092100812270379555539570944753501740564000690453274517285464398338218931044008914560393033117300558582910008152151169397660702367750130576529531539718757547893293702987965704490501415650813571677065897128021751591800234425742852924242360976564455106991560144106137270531098234447003657861977979533897909519418909332156851532432175355162725705378240930765397729457357632151956850261979386233621557221835387671412297890136987572952778483552379098951676884494798903117133934817422389912369397178193009755738748637155751804339231244649716017394891870816231205900519584587452154434797138361334728854494777513117080182100894986173738528250655722203151071133349389526117078144476132913307102680232828978712676283147405887501627161271799959439994810473112532376991004319777279248258239793705381994834151074791410156801135942951987569801439625628359076196558236703105972280696496569945177285525825051466457730867356987083139884892956434062420500408138519616689496602444087205896918492689533663706223622999582984893572974383888098413596172852828788629505499448423443116296553603894256218370598031437743475025590412967450465014515437982415838433824752773396315014784396174806086628804862968602423355790512063564252575691441487643124340144886547010692440166762720300883243528639128281678755382672673078499504047393969582040849222325531891343736237666639976080172687800439535006502586517563040871395386333739074336292001097975594767040621820055018569133834162826561246045261978440168736659484057264182875865972435355678402866740898935904808898060203980530916396920251017011490978001825318435338204574835306551103283787474527126529143818707315914701504685473210456934165972669525381524409896690671534054211710040499780542894840291565218282583126106983704555687118337110544212643941438537488604503475927125210219415693066951748114029269261627833869874536277318333335572474292833122689934470948627516790799181913792692660511725245757990882289222731720280895770837767958417695732539989482036099389017428930275040337880882944330768121865750175066742097397586676393028288943112435043562939331162054634004558730984482890034355563290715003420164122773583788835367445464902726761423169739478018089118538615000072124633261716555470718641178699400528983010184031334859021355727051631582831275875480189949295685429904085911505867703235195758418181254743917265652150435543721915081246133362373259234702064735513755923753792073272139826114421736594348597853552129264843353084077056458704599870819074523068109356855935148489777073685232727597042769132524479617036568290262071844776246886446985830140922614658394153459191644691269131640657176650046782283131003384809943341301751454468032261115379118920681042975128056536693638617532886883905895540702810826699043495400654100515369659495957547059566934522146854470291928792336842374153724898755040092946476659450775851015140280708537095182241043983547265957950166202328228198662033287472918484980122926800857136917794224604810474904276909992050221026421258141413166662565869606577714590803597961665962828144770958309247603612677934239414253330992778945729797856025313870272707517624768558497868326513082670423017469056408945312369314484074151562365941307416511581567998049746213363038443877244829162192724441679387364216528299220931746724754265796090269355983517817940410309231089177933769906314153089323600758303031865954969501269144909134815374880324242545231238362560579353494161043770999966868357176277458483182962341898830842456660688595973675404874096114947286184184672927118285793590094254225402941574490331158190249521844470059090012911599535477654009219437742203374115667449829482014446554738375778916018428683649433296141814139703875968209471304097853678201595363253405933676852809147905286338173926962160738849407570384001510635201505915806547404286272917524097234449830872188497409899717092260121362611090485805258953379684860933556309975728515133229467364834819973007363039708163457646346665530501590819255556248178620531074630759559998467889262186958584158914839832638164326783000128852181412131605363746990484010492654154208937819008612884330477938092233168334172942511753241595866706269470841362482297864304977303577257138299453496708730883307240385916512880521546601971358001881612254119685709860952915588081165003566581459576685555582763363949578760425515680553073455118027813975626396106205076345575487852963953571538278016467314091937833810551521697355185795616766548439055869076987308371180578450717087208064009172658280613986368717163081601391012743604609452667977661805405919136410625710677944418211341250755800654926635626709500204116910026725120336806265298711919193805199025953763205946867094616030511632569375010805817616727546844683204933012084816420428745066439431317012445553150399123293442312524005962286936357085086752912490616804360782936294893255480311457978375187971658564797726359776833874654950593804237038670341361778424946484637478449863330461239525641687090030078145460957925665466966363703833800495044216708148864987398032794554233789706029051660282215827014496757418493272515279675047206066339489228959113078631889767184868540601905493151895151313301028171123851146424156760422533797106993039296847200519238745005807652171159867285903901580909721165708771518211268908595461067812891181034197346623965912258373456627243888691239163256406326806319806064745369715900760047338181707108015942783052742832833571971248908878716712167754750678959255153994677507208281681072627654332822386003574358715072138052488122648344087380359025909689506298030564664881143817756041763220163593615718096319114085644998650742208831724326620604624366512121533757556363965419946055114227355911327429993527685463349380012090468672305582729600135729112071324083548019154306901309145236782848862350945385736962698425180366725785970115463276203519686625121144691471531103742678864867328591769304886667701349449193809933045951191383713887274842744565572357173498755731840807370214599020950541211466354378172644499637204171502049604040579186100366564188250836479286253549527802275167536910368929444064023956357076790429627422309786129379599007945823685219967096288478746137767772948337930834195415149532204895948441918737365569668577950216232464125342123433416591820364441398226622749055796805702551123881715772277196564621998562564686754480820847548409564481887989528186599809681091605492966726554931682615456646664458411822205678388978306202855585473182244583693024911502994204141328285662603047782031837389074105240774181187647347659424114606649329166465638079342091926348814792767824195480857136979637122282193396437361125259032763987553272254466775235276454485036970513891083001823642900698448569333096901509530498841731789585148058419270789676123728941638697968685433667817887414380275649004898026943450551776508551624302915008799610084813590369058165941833181730092450402178123822849901004007480833656067752569043019952577234180776986411323683862656029941527416393756322125496427116611736861926236987312202629951115748327002987138702477648540713104117936113518715175043532362578276312606711359560287489187831417499115967910006724396226774418233428338023213738244989796340387487717232807436013019198628629623252248135166730035539813122310664702652607136435363728453346084096700436641507975125315090726722410436995010212023929773128380934254441759440342675583341967323712062735797332394543611439455120153313461909952866496985333514503553645795061761448015877258379507261392578513804517017102196490851171113903962735207389863081924764215906956699357285731123066162752566240601315634358671583729379239333842050055658089402779708302182591075013676545766055884889836024707538507435743477394707587970223266833167990021779733551843241757803305165423470926301209707099122815483513899017628476464948662617993000998907572679768412356962408772635896064985750958546412996461343712643568499569364315566385957022344343751234654098194915257557917351360861064084510725786397877785499303021808058860062080654824181762326643427452660732218409290310124409602504606828546866387094476552743857837742255688415514561586123246897986714918917320646640363514761115513144082839651005015799557376879287561407072356072399523548553962680620544686273869433673042391444801826891687083911234191840721710568726345960485411652015319547637079403478137565152872081736274970518429661264512841155774422198818470669686263387982302794186406033235839249108910217137834609287604239552877076343344552710015597053118320949010013277713941212538665119624412404214816220641532502751637212014776989899836829094425143457643233990490067327873083013853578946052965606251147873904798747945077092163727934708565536045570709536470205265854094620840128159108834881715414425559834011505462377182047863563471904833677074299235888764044990440570694451159114209604103002009060329011851704716943916204108858305385904297136669813826161554339408890916872880546485773208861349895305604451010394077619303611329739354137616111851885799010348001472451945648530138529930683253254422133547622950497523253559879435718430093623903541105743130095856565969469727852418361155659410615368186108113864769596051031050404134993129500820218818890570874152841003656151956484176058342394303016776202673840832820194057872478094947775981310978103433253823522393485703311893643320401303600697576218715371417453887329905891745187579817201175332329634461175777156238690503486763920302351433165185398881134969435545194914249897685248750070212947223486061725514676513992747749631177952507798437526559344790472587504635172005323793139857670284064721649251544916596157455236034104178498665961469435757900435955006168706831273561552110382158171252377878133525533902738862716485662716297536384090973126509083654174119635164792343371488960556560090341249041450325155871927852893402714873633235561652087962674631801933735000069734971754083456349740443220093964091389432565349025603423637901660535336894572772715521427503753582831668379490815349705654389176741440158518703619072215850903927618910023870756970873836645347343020633523879696254558057311582252510692332741901822071192805125530819132912172766867655009100312718669149723015684649620249542189283472591539112104421947227317251879979903426276364101930604428104764077521145658290655287020308559894495336267910424982431101237678451159965847910392216845348045097904718565914662510228078045116134116548924595283628458243343579724400499214977855529734629985401406878818241079433472108868961861125781098746186318041064733481372137423873125666080311959041923570482742725362276039640017713968003086267668479134500862524190158130418316170381644911210006189104396640265409897441671403105859295449237953145588252890246316003537496711233544623932601524972951979148043240316857150098727032547903861802098746933288882917225131042155478320962041316502002380522493261636893161765517743320888497740932890764585010585781772965154366675432833722619732949501559007441744242251888127755393757077877974758823116903780710580935705788521239304392603137975671009262777360858042551325199889092762326608797604606942525311936382779495461936167448557757171944501654357260354615795743018229898776449646664141392512253342972629312289334523772334189880491350473127982063394392557323605493079288661797581181901178913124978372501025166862046896162254054304264948121549736146507898404283657859668886420250802330764651233083158705943894073935861122742737523281056669830165453135639218391091016665061188606043756485066758950018322325209323978547478217305506948754338171506230673401255612409784950232449014318615368779368132229195339085487460272633605450132408296551530505223151776598791962286263359325199536788756098371196807738398585070733352783216029160133969198111573654136347885661284289652913518212013969418214249849486405876774862662683295003508739355394662970370011631289025990808275587813494445747972790109529303027053338620149770238971279217692340312559333057716341606312323856257023148411438149884495256584400926214693844153540284607345703740331685099535777202438417423299253194412458138200193109496245311299863187173832539551530726131048813698940138143340015777346370287659147164160409132755974716957724028105650332036480757464623121284638822771239787253346024813188143872650047756840341275060736000693710904444941897348141288871349206367447924172637525411670308406334817810786574194550548462396727212044246147575102376504031188061149873048818671707295399645869857929146467834740790805518330733332642216081644843776023302729030170568114238397332294774528855003174533413749311423751214236940112465684050025879649613241217516248554577125427528752910646553081814497383767938087172646761351058247326775001088684023952784346844156354521048885737687737594219727096673831607603365353354395737408685349985493111908048437011880540234836707992594862706553206772442092845530194887832726010425330026383872419790800653795010984912403446305733797141449093041558547213206563022035995972612919797205854445295051938574093725541587193871590535836348648233011579101091842067492960413753174954595091430897578166548059396427539856883599439095544089294621965355469532949790969049154852631015818036479462219213018866259392038078889053352393298160743817403783160746742649785856371032035758357246030089020053047346726822762640143724634159316422534990183270028907764065108999616109735062851192259900010401043016210956539961308710962110269469425387678883207376802909958878633382231885701149555150475227137406324811531467926691556562977678326582699184389080743059355174546864876743668531030470029954528923640581699996310189048873725492448070161731489769068701899892280866789802505097998105441825841576007656406102869647908236618054290016195665270626641000802780009084074365224855325101131194271352571477964686476551444613290965067136545582667941081568377537469592802558355544139608596753725202205053423916467444529379454860014938931405497099996475603393707389072750988126635122042718567311715363801116757780282026678037340354107153389039086170717161537372617457181649051744732453026607096330094781393199476452220596917458863865327266409055452567224392856061297553058984495208075888304797336271541122202971824670003382067638264808378756482178653106702887803762092991532434430162709382124260594029300809471787705847300596832822425161460093162329241317360440222252028600156697508833610538160570019791134250069927954441007803373743834793026288792293352748930263844464941544691327981458080506839394491709652061135867557745800751855322558036071616959661886145851396810211166244196247475522608227722761992835103754650009475092891504485286972706193496909364463574390539181677002610276504985744234028929762621694869607971707005914747169306510764832606533967927930359203215553843183890134797951292203986608001376942313870155537546904953595591382218343446350702391151300171529782760495437153378185458447672331625415107678489486973629016812756774055727320370617746041063362846086432881573674116138165017251674437699583371683135590571973329584906478614971165457427052104879944119116354026123600331495307667861612659299683998170914441868159758865167413200945479266202766597693999567874076239462282488533484171940886047476470289625422247642107288708756498738685597966750373682532447310148847400067040034101172217391226656564694468432376729879555465305508957530519006285887588733206824371562965991091344682023585030634854744625044513272341432609698769881234938867351828589987112434788595970930137108384922365888130055844924526309943929667732723383279198956500954615787251196134272081379927224806047122422339455162724820803382609949846433147131232047132317808711842813256105057665724442061683647421784198809044330176496189391173310000368213936503894955828792940702879563060562196654297027384135164832230921585505100773698570351267568399547727689823686133087760252850941710333068827767875226447393851148154752580213360532680861587387200577182182383264571193310427251421613833306094175229992919292627514923084422124209495822097484454877788780770941719971011936093520896246659513850475014583361893313007929479926270909788942107539838608068196551394993494517462724499055291723387227329058384959892087513046688793237074525518472151040412602719608315005930905216632164522004590663023259281756781674095100492128484138622556133529630409811697684170078518565520277443499462707145122194491688340363758918602117663602667796463249970480179080353291591421054453133761682496815765790729268336993058671328540640066924079501446279987744644006267191424938357680006458287973270598331581163848201104001255471108654677867654220688181271356217422650280435705931052086594492317288113531119215699488371213417493026800977087533687097590446365275773840048142642483954080735545580919102551144732850946168847913153470645289473407414422753119624121660828617404134178425146594579121781442311085157474948352117187276881253029893808538645590718633619625619565304178423088621673575330293992285604804017779747921542912800598940596205578735403351346864876694790621434455680640711213595429948545865014589255897390184005339843223398799340536176364783803050016065008016433166459169401678414973636638911776828651523911660425663024031881632512068892545378960123805886949825785486786584904941464414430569880472003702771722041441843196915832246724027918556506499893503764800792943787740364233050154347209895267805550249038726705423075758997952610006280715817675024998321076039177696414041632421126301695675236597562230027346752117085974647170430079189804086713438384726445828796224398569919701167634390204398052830421002982073844615020364657799783912482608736635854858333519992331500502431945852297618299955392831530778260354699381925030571949344221154319746637120187304194638719583715767044725160855090542715956311067867955342627810981622891823221753039233176025948798243028280113439157418540198686074980725937954552974544082564973051167765260603952119132362211664422943341435014611929728678704437220378299282187784415933419685762824267083152822214255075504950349492881752464000944822286062226189149454160657007058829081301112160331875878610423865756365479566228579656126970277550261137588435755667155286705848502539095989966386775552013054449396325840628920735608802600572693241445367241162579456907876041677331191617374981814955771747089541870444852648418631156155231854461352683065732804804333923495628264329190324862649657198585010122916496653479130204339446679640644921008918217340148795254719020814809136981644607468257567172327386908938777792358922567711791528959393574767951373519110676287243969773641541343957253660555764663156587791874768896815236759167094397156169757640445553565531384646337652304331284762498110936112915201748498160032450925891252318208603042650547440412303769594807152442338943798505268459253951530127455194753085812354874086718076646207063064426610182617389377995441048977175392669475722634166045954994601884806783517146939041917950953782942616012468457713223895281930411871555303942190140587253779240439623769892484852224629220724376491107767411222610081341888962743246376309011932769343825496967134196376435896621571566435773280160172678175588373106119221748904448793469668831127384799051678352580708143689527656186387219935787738872786713718528474679928824629336097938430584653726835731923158586026607461465350540751224669667287003706760908362293163890793857349953643361746921933780226309988711259606062176688345710154499261288965108388990472714146947970540166628920182951269438228205023893843386901316622478244083413118406959901956274113929663959986963864913740905544156189529809925576908872831304861866906237802135295411011269033340728333466945206500482843918605904428860207581122813450616253874745702975404328985008815098538131917835720995572547689001625898233058919638120619682028519375583858985080390206857513186261073303479843141247020857820855416516396576852997701879373723067921729464182308195347230316004403198211292842639868464969483825352023897738463398402894337769064963916102737266927981785007903535969655817753758859488664729536894622619240405600538898180610035755111368262412315003367046725972430905563651203832892648480786606660160506746318041850141585435850226100840375831832399621286686372594256581386023231582633617802038539873045476866943110304270774044973351600973832438329912347486221294696364136329398496520778185925480775059818325091192743604086842862572741426954365812348674178301162069851785262902568998999037429318991396296093354713185311429898273141153866363469296480104633821797893263655339560807366503786176992101993013211398222299829588660128290044206746483187692043284559918801477435305826514202044072543428144606668317426726010571247431373208260101534068553472649567634223987861407145632376824208425195300044205621997115475840876723840914776941387652725504354441505314138831148293443961023414013185036489420972331186282888679013636574383762400930818849790618633465830887339775650490138395675645734340457421599379315861864249129732890881253687733801308467718367546816361984030339583087509532830724706348287472591976079918992512362583089039486556120621972890504167464436877366433787944508187474351126046401200653079960421347176835874305885848965020547738486155944583284821964833753078502357778185708976864328307541256094381130720348967877632865388147745071417548659093602159443768211887658863394411341171332434467889364184770094439276232321637175997642318975707880717005442921735873012291122677642596204941980331979441028358685928675374668567815289705711276460156345395349911747616376593477145905743348843488437342795099583428664279553404410984684971152452684370841466927029940317001482907734856174678538316166306694847476186590366611169019122547209438160775902596526940118014897466913090126629578870431788843399086345265739460901455199872647405089413231257797347161207843109604251681109187627341810979628982612300151757771771720108160482274201861505934696934993398858950200365822781510493236129856455510976458320310260124460234144810914254049693674636209116686606949611658925617703215858467369386899930827299650910602452778911003375901957945229044855027463602700193944627334719698329626206949421999327860755703276684658008520500284115579892310034451806979525602638842921749635241632398363487290836525338321619257485855176723876959761317106398059201940533660032856348799853386764444237770914986120474232269926377740866440265142881625190695052824884792789605464482618101490516222193056578318736322544366647849374766055274504516534094398989549144326061372955451771319526587050774722519108660312667678342447774295501260789038092208311079195699975522010636110638185037405206487934280921552607440122325431318030410384015781547517791642614522391450345239625171128199506243995942139035095101499243270054335140499293546369475772494842287445534093797132290187231169893918984678871080147882763216842456898304790763079016383667127686988660634920587253458652933424166307838713205367460602797932111118669771335725346599601197168176537524584672256634398158922720524501420513135895750426206754808223911620373928422579740502212002649417995933811665154446779296180293433300372917357180498822614050734660436728054695745561849949550479854561999490400222383257158096899351010138541178767191517985498620564066952643430375034695389132674255404570946814878481783433989392275097248758175573307283846558618427514699632271907252539495956327596057873601166682912719439239525565442468874985551955450410580987651246676590940655635484507962306314212279731579164098157482036897706455811101415442350489250408870426325342437790420154762527859989180157511848192783122425967357085664790098401792565119939229269191870034273020510852323383323477117153534118567020725086392281371942455312282973224794082181930764002727800322345426543070009807948830235450610258159019328042474074609757364276275185391738420241263246163601553772991625535486616172240669061182314973373238489419186177350154232797391787104900896220528266799143932631833685266962268662024352238890244918676714798052140025329482791101934273885014228003918056145841585279386578364469852982025914297066088997234560603282706216539664480707477567054853815545666613474493148765797662152128415985627348229718175368841863093785421682908016693826306130371929530280693710343772479912701893125619918719282609780312201645246370768178706952642241770929726597319054067209463991444571653887377940626029359069524552692703296943285696855158342311138418686135141053070802749931259697018889534503694010085387622724162350625878339018908013340138848774171350293615766603214710301797731632516324490683667839587531753767412353874792578126052240256659491965870942970748058694199283688302278244883977512132085276014504699563445536715326979583187969385979427622712511769994156428834502817225955282634218945366554090235319871581040647515954629090041922730728465997416690737275223510843902351749837405107569334017143714883639449542278063545111573001378078991394334582687770328366952529635055562832347347427257124775842187605514372230521970249189214604464001223579563741960114520101459052667602014963070896673618046451553646320079206668115659943525054516978548810969442661812399271947083834764831487851141456770918041628674973453065116580673935862835957389343636310593960540962851359924742661818015556125575886282269633144587339680168707317480679596828125011061093513132576689664758029276837580674023132828271824639645429151078341978363018602031299430932731882793022395608319601198774431160514152213112876775217116965114885945313448861493970934180591154930384694235953212699302324570398694966620099731961698013917096236359914976685575407229897679806103015637833804821578128247003642603812973748949346172389103488620255264624523919081379293649964649166491807369876725679831631626061180841066069786791877516463780272717652982914949819675737866226127248428711648862955888734703864227861191046510580438048198344639223200347965580165610068305919893222839636840840516134525850780394067565100824424762210786363821362983128309291566478315657052305815580190888216479361382915272739909615066895346028006523870263564237766235226241031022924957285970940887264400032180413628652988578235010571149225001957313163556359099605511343530506743859389615477778771764008010885232725282459849989448486199612682423697263660100329327593785475832583163972598125990724363402741290578241780921196476003918874561681691432011667301083247501495647491938840794317812765571633959975049001248548240854169328214388180819740443018012105160031438004913713986471852277149874214923334059865739799122473138012678638196855323212617784666191044367921535802354396975439744001943071547356440676986129259700297693075481724760814550516251140235414826204846407989550548569518984808645110894230332671567421776411373024970896466296092687393708140487698975826145030419387584936242831287143629044952237080998478198478683176106286431945373378099368620803966541284111849672917610346523424975238491919157358819132724043817510376855406978755075312507163664435855636790605820825659722733774636669541030959544001423370301180669911819386990822171843165885497519702813135135034536445555402480917763625486425207933771624150687259520067232816101110418368464995346714316823550655782142622186284994119972223161150340132526336969936213979982503244546207489598489683760466821079950873868867864035489844761367656301916238714433786413035301724978032629331422661188598616229557484754300069294963969269562083858523797384705509633177808374945761297743643575988358414656194145872438895218112616075550314929981409233269198675811903907181097529460179414861427099800614771529785138584850255639483058065608044113996308264183426495998951400894957722496885625645174461819959546708237453466855465107810300717212742489138596185328826263605149482571115762021540383933815722686527202899898898666945358892367605590113385593123516100406710922007429209462878264949059686728453523735544582367175378255534881751815036909198977931224487100768766766902355150736742082113878297173680683172581801853577330818013152670428644793718516140626500434567315050736631443635745866830586200487417270445139755261903862039330889551434170391610730993489039834635252184134979472238584371730668032645872422538173990092075666705625985831047396916970791428643955039975589684858470556960616354694148415187027741431051503985015320963144935540370142410953749531976859392336035561867889340588498105922606818963981318376419928615530362781343297390122179163628647483752037368431541448702389935603718157364804957085874363278037389513767531149378674305775861051970119189119161878677995123871739949329712814863411373065889981591165057690143781392631255163118416982776806678206959985095416686160289279786110346844688795171011612096048261633465287865756113453254986478759246056159502732258038645713715819984749708095000130910880531569239120144540503065251640352867691953777583835487038050278564120900679898766835005347542101247739560024749633546735401415951866115632934835969211487886244308898866250408018844983032329195720407916406147035031124507361150225270982263812312171210618955966195327645913005542732791254432458111455489524000681631386607842614306832212223997381919017710824931542543952967169139326910626308764249440353173756476446712781081297539820854854971920361769773137386961219352407380386401944038582653683960312928855163911885630934979520143739547482429606826792333580441905587643636788322005154725772901455208958120584844544705104195194584641228597148492927085644460299131160484459065256448930980219750164966858463119974845395483827370037864283327156960265991348304124130825295383148463897170307704546964431536291270951497771871165628922520408279573133122700124798688274275613286588031930682722037887068487793957760528281270671286520854399033648359659421513597690749980741699090861976219949038337612977289159479093156958913175889615051971061617637786316362112372195007583669752338323875915036279907958656681840226731563661288782294573791202724732326226096223342628494249326416545471443782187256192532769773319435498388388413837519270591238102801860978717469013816058458851453073244208984561450996579077403649416248943727815834131472935590304802477454405423538178033793071501091513270992637450673974498177606325073524127359562612024753877448453876208446326915645717738357154231035846437458803782388657435790327890412084406300256883089573241113090110434398365363811957289670063250374630606881107732177839585443646787929938595194240788030286316439052539550059079914901449588096490410664220318946251653719512415146025085952414929024770302049557236129424537705118224736871290482445736062272210716333325628808664023279074634542199158551059615301332011919401969710602726972766766947308004419593626158280109605454009557173370441331581968025861779334138551913897671633505872211414964575033206557019481446463576125648552647190308685434917215878500798176386796860696966649162634202984833958443509478340576858659596213126967839057953914955052617701220537525594816192902147813302818703386302622191938034559495344153950531045994860966543568874085671150663823036360565181994578386473540142186842306000401457083054343668885048279321988745466239676062403214638182455215006855669951806501299803601911677314139621663017634715708645800508558616498406394268818991015757183562351572828570660854805906563483757605215669315334673842963997623599161550084172447434409934049410613392592167566224934655146203190329528843092530641223909431663609683547542061567307884649307931374318508456460426840847641603198014895427942295302856708792095164406689966958329394070016025563812639866864575322619070546855002416661677268174226362061829805824420462154910288264605095209366459352722523726175223165500862823082387193553405934764007852959850436941702360496659103936206976739358475007557950366242896479764919416150380193415130506134189694313088911118112176123231317191059778413482415901248207426272095135285646458870611729493643087151989527843899662606360830240995465160454732779277217840593375559753830079303056358338569087500334203454806963612768076782989312583321470706647648009736598247284686463451035073005623932880630290858677416122669456284895963280590941201367627458757832723717108816239227292642533346562493887158854772539152498850058465775187106878564241546002019550610655540746514723598638192813334196190721910586066417645363082688059295161838138043154706289703110259843619810275953212858234303117965103947356909427844342328243680908255435149702319397911007393072287995967784527827304754378585163113495564899176331742308816506545873158613671280643533893480371300531172345607946905341928170879236924131454407858820485408430311123803923370921573357126087564534499018767000421274277125125974849465520912172216395777308647256793469275712042256634541106085858144040118487688689971734876021327581307237879494793128970147862313166230283120545625145192515475035548821155357080330504544225635787356496317955693247612039885309037470534431349268313433016651336494906275516482923389388352157782627131889308757736562344587520515912851285034656565647370601756709863088785076977034038907976603344053304515714158634142143876101066344801658710975114898255267615548059192832367730584299642357180734359017331973054713193170795122786501785013233149002280011032625047745186325465114831294301737302406253766793291613568161071500267326979354493972299929159553258928935813597121453508096715180265833511675708485366267346036305123746314673738631817398178557669573354673090495082535247696552636382517803972241372795762113695025375449105176688123052317724036371689432392700813062363804500852242034621004124005556851368955739366246348860335789357687801112978827787817609887540149140367899781844960687673078977129800924767998121966296160702848711139229433906517683626911477171641104229231261304833807837991841750650112074635592153630346105341164692807101339179709976384781525508726912127450774097744256035783466890571026649886613509851380896955986155296740285577782632965224895130694495773370007329959063998515708410841266637669386746079243212081001397512871083277083074899288866344485413508552123903795301273510788206473313742852862726797269557704724525567294231771373590458984286802699462601799009232285570909402898452844032573437625615333946565097389849908078281654704749677974697008082191867517628447020626613276247267674230506206460762743420876456411127276179783265762634040344500869490170984027593062628256179664516865870558562654649563356350230533083455721608848716779173802705204369660230273991086376701248715863808032066884672759994443928188792380860176246232654084048016651779204383672177723813791362054682308547900487168327886346450574997990036079648898066715908218987797128662724491829915966895166784960297455437771986895445772524233698911007624933469227022612671993622831598024063632677393872014696017447831889715667653244889802101998827623664255327125975639775527761212671149448570207880473282234128537161989308516647481593926359534400609234318903818129446563723469144127444633308319148782585033526285187239207517841782766399817871498376472856830764724131046878250970686719319661477428257820642953479446071533694512664243511870529431902338343165452873252162268199685427983569393603761585363557333586178649402178502631769460338752121931037525519548951316138008871687539506539397283234112193083549899317309010834263476202353788681579082058086012830789629011396502592109873536516017308643845019538948727368314373580278678485519233110114029638298530723167323174956981925415075253293613585114548940120540605336195075620612509708618542650158020273677490632873559725953111382725657803688531208397393042868659028081419439587060156978077466148656365470815950585821702470854717693246882332268474682438983736113613285793564621876423211021366647696310792338628774029077722410839043890830676810397675544060643648398746872778247457385150142714037113693026139827288903913337757862961973629544699671706040593392477802869689103630602606121889924845735294269029997751389163182012309808499644381552770848395853637543316158355647432475607819731758141890467252158757681978053961654056081854351839103935562667865075884477794604259331989318113459996115810285269043335721389456627502302343850823813448616275056884960655876281820122763091993230295647755767852446511854217521032393020010791721487291831984226724860070551057757082995835223152353606978483069789262921360017194177984836493036503030449014664740012826583175304645566054682354369081523223731087735196194323693462626161512895588681907537463799298333167841593614487677694088655781579210676134803712117190402958946727844047685119713960658643442297391805386594411361735676120968907767236943839874891246437557489072583970025838077870125145221074705430476196241040977429827340742118815290623112226905138542386581232434237121834157616890744297020423678250983207888698860828351699128177012870607118223259810585186463938150013687714137744225018872666450132198770516492447134066949953737602767122209357267342610048513129075105227246524510836905445113618531334998254092716787952067109419072719564221068683174053534414720643175493753853974375085249799915422146434453659401765185900976715152091818130553857178675319175595333154437275098902527294595734147187489191307461990153191876913171429526566980169844157673865464512589749393964654438299655343857022536392495297443020230600938559770711136987782936269152203082154689037201978170064842991203779411587618451902363802155775385454037826214669090191264725913620572581088633772485160799141246871052048699611067762719421787055400601428539502858206701986272200098754246829231785782416203217248029476700001550247221812390607599975175387996514086744599983363160835915138661882431590810906889253525599092847317353809198695381830835750847189940627323775996719973517069978517409502834147758623544224441985617291858227030226699613543333270833378907199073074471274171316808444230894516527429868547840766349606837202827418649590201443864700331607340776610880902958762834766454359058553877708132684708731694203183962189012694956378782124666308909604927488656746249687652634343935120646359402830564014477601408172528700227489176066902533696760761988047153759782132101577906594159798701655818773671837498740883810396235477624975475019202605828727285793353709800643882169662072571709978279224434232090372056526475182308594065845165421727957556938721907943697192657791064590170780899932537042159448277384954427961658069188647918190074183922897231631045657611312634027037158056522287796869704883759775913700460438832045503055462918661351643672021738280869991647457626733753946647640391317982481855275994373915093776318813069988881372232873671962033205942466704025044899769515248485370114063147916427142275284323735370799943114986151057007944030867983676158185722996413634404162909046075637609795710531186077286002580026804952048684266359801821656326632858369169348634165301684178155986560728153900412848099470749678817136551603295100748101959946355267262553407993190396561323133286841128064672898901073596324066192088708585066705198830673729156982667830213248499355125325047598802815527239333312504523679718056048917456370912929581893123336109727906289081938770839618138737936300195772811278611317178737320362662047380192230327065016736899949290086770488648104443222458195823735212105760377924932894072592706186385955176180204985607480338253109395596057430768625104220217330426752480807362954610291614842422241537659639987027879721042014805895209750251373652518757243895900854116013995424652348497414190491449010728865858119520728437206568679924826633382842322992395607613345611634293131825545443321297433159802249181360470382619106620131758699380353751187375118434123457430244918830799760461140947143799018706884383828722521352736417984160159941769387778781681996693401084332714307584876609117298834487656402226012890308770544258404794908505791892319269721434455612676274757161348543967291101380317089052253800382120026902948862721647321618340256456064505372123389712495877580553572701857345095263807634426968470471068599612737266646225216317131824908984433427058360963372954242369305438327855750412123543712637633259254789263823765230884796585696430139429780471145233554201780534329210726889441804023800274707964704772771048977261763236275030311155647796220564174856877463869422737029217842231869745472151340616720572433870050854695050264085163463047849946042871027996639755325465913194645462050430912585498949412677904145109968278511417919938621161339095372761735540518519644809953160977480883041846163735844507505015677957028490701219040125799813039125106273094606964219299091338069289017430071998045744213099878823112949536633252074117189506157324749093525568386815562028800377811315721842971048382792448206677286754277872232828024371821343319677771165261801511967832925106095934791787088218716298059849970646540544050737040013720430186116313395358289933752401087972219352681444778910402225175014676612495778542723123263565750470001351369578502301929640645099935169522941058589082477358354622239662675673311758564450734085797032531890380043292802696843538417364344150935935932136396493604333956667733286463840671386142212704989433744599066899307799991851254094529843566173237951795153564881427991743282048296969349140186084062246469231684346982671428395098031856103910073343559472083524100105312415462489954249556590467091826486365644150195681011432565277493620825475735250995720357203148046679534249465022194051349837093133247980379725103167849589731905866783628497617655521087212910439256205243183607800924782256617654863467150281417340112825119655709722876023710133690601564307462877728347559490397837291320496307369209698633684706718902330048916591035594350155506115403082095997208496018498454270889049814598156372279593489234599826047771092640400926357331495472987339906203772769984360767732313115493655608864106516356386602575434215149205742981701583844996395084075807992032378929146207184404061652791184483645594240313899321177598323354059201330438312432606256061211165475409853934579668100090362047317059298057195163757853203966715998610056385611045821897498378845564355877161874485843395097871499078513687750958802305206020251671083468223394184511942664591615561580707821861634569370173805215483167342464554922900348036321560983712950790892535914452223414340341365526423603083208589184789097769219576697882955726325766806527163777145112614632896542984152309320875355149840473168052761035141759758930013446953832525244404083605711323786910012088913296061973683807518531439392114831266668672943644759243256090797971223438096759612498559278853930417059181115294631671759451836407895049428698283060113955999727183632880307260555625971868647080526377545314613530116044736774118728301505344823088668064237866907538490949683436621881513856940747047590520228429048334538789114964462263091495214285989784946823547755102792386927496108311674197193476480511750977550152294402206995534965097710528522948269403884804063329921824369600320637287617335263289130635105990123581361139225199474877529482583786504483104861214624368089905352520729480897235065149842361815416685133368987079768238720179696871284698222321947979859491489326731752392438342220222048245699429095059796681603987104457547884760604378178362085782598123808181068956807500542020507919151795302702472761683257672491218909676164994014921010226042767764791368107828887449750090083235716158609616007970135379749507899285652010023215652424073846224199992029155207681600154416449579320939066325673090045371895657671263823087928833226636613017179394331139386436895925951302870180140836163884898760242096977446803810661927701456972642705199948334589361833087058604441497643825214387815356801749752057056688297609485520649144130233627893674097403333419184627204191749717825625255676500558292394045242500017267432652348090770400919384569013366413648054146575307825593201288215885290387125018130508656875238896059243410014642985749804292559029782366655924774207005633122383388068868113448778273403214069649289604488930077947716410731377431771558569625601598315002671797831032214383271523960166778553471163368057154574018839624784186033649813565881804186164306478048789081130076579722978594674210393597047798851256224919916909162968972420350703912676960335516177669805693153375667953358819001532340920141882627319922410789137583452302454619704774395697971929204128490702096332232435789102071262137836926952240553271604606153207870604321650721480493055865655158696032292185789016447310480145482493938607135774231770240350988381778288080440658630818253155648803144987446742000688996448453038607960830920297333417559493112618699853005658598210582589652100212972182870965278504667690016268593935041634188740341377843479077726735237914844586575689290943911651810944666736347863322926924412292542974881138720133690782987168867214427447934469864532511200575415360058151608384765984182326622849755935035230442750904714808751128404191137315023247079552152367614537570637103067372591410663399903963893011372688070796350037891884873462511252604003214077315308242897629171245608712753882647394968562986511422001360323489067166673982238574750799000595928803480476725172187409330643460367510050259869330619254899511454959618752662721896771596639026496785368988154653743103718075843350409562234489127545801719262901755628675558545915456872343245308984690344236100985662627804980455233390075287367666255561748652029930499519993303308752609967457535391417224459713505164790049809762706681925995873197456960387462974574084959452797510083440461125812870724121268273610357305343220969113059825972975293116856514688601552295272490095975838762034656968595849743165862683804533960522798424401412145919195371691195139106099487376882380135364685845783550124102109768664063933795874340669011348833711248746333020503165259843029495491325880857333832606873130968653839082108154444625771747951468222842122427768826673286733064808676593769465530119856415992653200492765464231255165759420879027724291110813641547542322394835446927357261485056920681585847572831190601593462639769379538686805172015262669233102277951978560500721726147979290463391550174072951332858114190137145620594987989602542163640452577582856552584825662014858072941464694655993217129038326761211461551739258171543579783994311921124770168526941862859417052200674655007389609003692404465169046070246618790715364907564539277921051532362206407844479546844151544439546394108282376202692099296052715676628216770070939222418774946283060600859826217856312056535271124086169596505572230233186338112978231306249969547097563561662901609431788839380510376210242250571878422037369462793101452673025148634708649901417637768990277462961142581301666979704961573037543418198605138312414310629114591852641312100523911680422821106756146475563915612998538853583250660677258228629546019173069828572765334654616797386924805798988386297020165292581092108154323409233508181427287123603498014095495820080165548907858696251593990974308025458044615722890139987963717451381943951514151960997965905923065202306543763717222357417124738107461707891671706133523117005424461204193515072634069315501954580136217177797509661113009684860148273267170706084945644017316575464442007799373441554237530669050713679913464712079029623285539906019932996185012930204487598759361677632392743551366535537674092491545235481251795976689621628411127326701441554784725737872958923012131738980064581226919508728768002381063668598658936761834276704515642494489496153121897535825771795717366662571824902472621170758394060343837985461780479432691552811609542987127985683592315018745671943169222569577676687453922967068391339029680215023519884997680148008421305566875665589441805135889623847200258979092489137567952953336398801353982673464219997286802443162213669502316076621797775115028822336798689878490614858809662295461861836860521641871369597969834173034380437630508462145947301239897478587908692741125821021501066443803274509983228153380527242613778526600030929712627855045829247575366350008709325206386163567259192967815226864072152496060963465166681608556176438202330412150805156261639760623025422032139365904075516379164935273469896629608402473339884996053358447784861444261140557376385387008773565946523232419846684452113014596120334018971029843755748535078162210888606773895075847843069932418814648742009108897339444397459219722893260886703245226234545593197543517118879753927413901105472071396685386098989343389554291703464827509325095830576347254947540708416585292766061834956270645241194151022197440570198163309408177641368167923249654799387680700219758044814561149357994484895927142722627730149507431433327849325038507691281423979419855883492902041646178679393729958822490909864411123955958407837873962735886881714917166446120928562761269977473674454676118429788419044095810894365040827293150980972660092346613646832717202831936436876349845032407415373582239639934961294687910011738363418243085343723322486147787023890262889475860324240508765068738211800814450356755377086761958749311770925440403411609332144448011606475982339236248663366220045021991629298932023158372643725326300308197905500619317913116875093100920647919564990788279992945275273041017015241415104883700120061038473149676708141802649225777385689205571193486408251212882349463228425373555535096398803754082248362956472800328940277366369579034855242420245157899667637338438819595848946077936196780814648765763922191609095193646868859609338493744298509258280617060390842990069249457871694510800831946297740976697746058538937213029312678132671636409884731623028077109913270421409289817177577856370774138751809618404368254350224855339380436327374122168793794584983599738062515246698334317439898999878871813387723801092858710059640623730642159295465733908733898842237783357947928975780604232210725943151102331356377493897517683492088049420623407038196790444453093954706339570781405568214635197813819629109322126477969621294103760429653834084779619556093679834998597998758196528561878076768119170562740672661281861657383959395962454593279616334304221341766516586532234022951075631686015437883722459886973278110729800171297256505367214735474868334380690237550443349140017747048574866510946657143513194039684708807342824542839202539915600812375033177968005224381340195876986770304431506460178118318071082125869289147529777312457055307580829275439104158841680572338073891559501484258649385314622408382701295650498199707555855191209090720263079486759623094314254941095393658189088094848617729046437221108291933269432954418720285237435375492841519321404762994016011655477291158243621341924324192883195728196352646939749082585091119978118487181752350663361943394159214592227541775787958968838289601277989249728706518251215233389471564528769961909715778710179434719749393407952755114830723270748524946350791795308661919332325615953536878673885739726647072906787088251063450211434635181941595494183823670818224927235502532096498545654127455219939786627721310123355198125380925061690598565085041254354061393765941044046411345124030872773218893034148250498605520250599602109650356010432328530149895696475240892866033210566984517294537019609137091768913136318730806716297830085185994223183654131688709747412519819286363933342365895884251750042493060602053420066608454939887887691644472890669710395602967234743512990612446071551877135696302420755680130979779672805450404290393980130379385539113419715342804800777543138061988842738971134246080009582748525498292962160558471816940385293096476219031777982558136561639085836989220540991293287583212284719937903298996864278177584069315392387173114301199040491186238484910312905170621153284929273469215524024410001758032386175682876719075399698609891771974369121389570886663595941092481176051713369175582779442150865655421693405080645949372734841387468280192874760444094786834971240372239782719554377343631169356506985250570285948500746586254195807890261075594110616210555509660306271245509102873172625654134625729300734228532196675495859528866064281736544786044507791902241716508213739335532349506124057556985088794734676898930824963607114990822033746034702721137926523908761586077493352282812628864677560973361195450420442914569256014470801136632282319304933323527626403402316451693174749219155344873310965840745663543242155837778193862033572669688815864541384581763164127971657809293451558936994455038808050609093057004345465754838198722216938512156590125356553830742859307028276403813226068224887879405291328254566508016137489801195653296667731005457379527426583920324856724237327375938616634426001533284153746623797867733323574504263063215788811606321181944115282467513895931867603198623085016913657872013548152407032816320353496405131776253833804998537688433354277428765274443773413260087969750601685790970160505069631979854136045414783110782925638279977785313404191687138511318824172411619302477319430177508374707633217283513642453089711710475290861884155063387247000960677497298920112191255030352342885555202172654983604838146444730289372610736619735761526722346544920440051836648695178122222652039021544673457078954269745987000273231981343094549239237451851587081570328447593881547220517032632996390421092550277886485697108009650560287089794023149937776257142279740232239438632250527049707540377854962987606521576299720061336342432825003803904768579698968078311517566668544178194178393943158774130412724374420239878982668644640212900695908779005095167079427926394010811161036168222669713271809160498084025083482404395355220415988561833076088667683257682773241194922618951302422106026047024905858150277293432553728861617890491809645563964142378833507554193628501723901240770192816099052881148886491832324539822680803677805407683616449628684058674055663550124348960376215311344939079414152500993056179550833215332617820571184126185003568722563594616824215238965630261830599493297102737999878223324413943004991887424712467723780732148735921702527654579124782878097912706377150010140399272341847939537351435138896426717871113292255753680998589220685705787704855231612683416358952221613125420420118259868678306665879821716962379674986688771591830549762048570026144957053965330871371029122506558226627775477524187145386498273926097057697930321263931202426664015632195174357193774940663205266150305546965751861401145754042141507990320343382465223569657600974962954902398138827185594967898974409204714056488530444140036546386958234086552068948945622970487318526716578186758387375176158191242136974292310429415982042331008440355625670553819871901124619255947929261552415059102138048327510992455868515624907513791294454632680691831182128815929694374117172491585084880437144772029308935419623189263293742480590135683305777113872569419728702294878975792369459608090582420688246610667294752212332597685884236056299533241822427743875301548706695657236929869665591827302685623964010838739808305769904910681220508953444974817840449830902007250593136553581026714905368077999150053971225279863901140237956441450691328286695441393281777739045508627398796213226293197621439513112365884570380257504587983530153381697021533245867765853011811426174654245458046058350888069775564370056315275798614668650254226768687477206439646560225425732440961220176848715072475118562478433460798184810522283563287172744823102874027952938531433769268340202931722206026116772540402072458656561656628287973329713370564016197187085320904589157964025924947889742038184683597569211539702358445760359763908672102907781080041437687481942318287748822238735479653745169235825808091410224030261027923674716287412590706128074229109446624520462422285113506602983451544275817613595208013705005137126074233506279641839230320415882633659548290743253203608675839416201142840029039188259226649288274464771623770460878940513583209562117610131229881378001346326664972867371067399430325565241963802743680575335814117837894791618619194464243155202324662080639576774650938555970500285831390089857413926985423847217963403330090830030480561208535082688412639157329760143461279762639535316581306061287729440518443923692836685189034156075789371298152008092069504954531765791491893287651729810062778302442092180879846221333218292845423289477056318989591187088290495714686963118972727212128255653377269229920509966485858166962751543013857553678838451229261309611900600086342636711197172241081457832475462090208705211312371479267932677104841436781359064618656177076526306935345932884280339812445835060235931950888127923300372096766047260953494814225579328278615918624176065127036358993875587990950116153931851289775989669142291772306159907754728691227502754368230607954390207946579426424561260569104165802887328822101405641476838177127623415815364447140487700490602668250689428693733231640024630736514487796190180905644239388098609428367192923452821193478290831335572212574886441537667648459204904262179908786162087852398229429326880429322980522287385666480125524438644483740217871840838299615404258368226549215001659630249332531178890425606128634950457191503364629419610039431271443070543425045629188197129168766778199943331614861275009080270247213270750992736784445264910666812386768358654354295386056428780058156640621068670184929126811470183536423847656091447290048893019273869462153386001067055452728874440413364291913979944923336650938251938185896299655760277710605347760792292480836639842094060170296386540226907442719051595853433465525758281210768440495049369376580125175817752835751681259720970643525311589103721523112186296554053249005815708461193759081306363807250420808512283271549806819985596629776189567992000955437853678354701676701117696506870698221676719936262371689055836011902165258407538626045757704512545578504888950389735351121200667574039408503672793128417242872977665880010738386758356792564164848512081554899155150529533228964901737044109247134586626960581052959082848148338604035982655677587133755566837916052413614646979415617130726841578583942142919645754186078056214390124491253486152415259552255449764466401351472371291063141659502683655031840959799773706236878071458938274340859470025126780090762626154738841247359739902899242692988042355899546658619772734442747141170295086159160984786157392642511102373063832886368590272817571418363642929344755255187627166701770357896515465502423501330114616991875264343003299709387209201786966990561702623259586840301570628478264002564053334066216970420831809292247217556165856631035731934039201609229864032396422160662890804520956069666447769771948691656476486170383165290629569195922523807009745228861459966036802888235579382950598034504941036019486599955386055599229869889402069790190781143347492659840172942195921507994148473295493662492567890467375174483573866450093641717379265674385167443368012969875428472303991690388633557373964169170803098327529357679999211640057078283986526679187415281313694979124218872586418200265860319725412821458125044129725110920500260016840340411054690375266910685784613936359316493194131667098270451554447128115107297245101301433233809038119705755106360826240686919231066829639906438843565103804703912641541290902914010236560909380263165482441205114997012581132802769792393955014096264987847237151873694324825411564514022060814731978139831857127799023170663477386750279985854502282674083743541978859459988350555380018687585408921536562080035470874999975351755676428507165135252936888400530103419331677489662991506458972845992773745128124294192935387968302067310903100629449064984161951564287021891458190555914319757612465878123251318876340262021741421186904981666030290169091900410500315834773826356986109278239727726781197540490558903318277133429389283257829771690862436579762026829089646295922881667140400591457631808772433153501264268970831898754527205977962525473854439604291131188719105189586505206656181485955744426273477738490330290405113712467770444609062177124184404224061450388860316628530191076296231142880920931209387690662793373678665514741750564561481349060345599864314476232788326585556592844310630371141192317052386495856570006296413045925328750150398352112253169471947346214269802991362057599899775661710625417803968609348494539355578133597770171762964853994118860332270448352822532096736779651987353243923011415545500269542558220783477867200334905548427634571485068756002999138115255195971554990164903040208489307460630769130705117893450828188861798035884935997374845710401832960914986076385186930694990096083781438003928834437727940239875884507026657957197402610506660388377019856698545728849457541482550905381845416418719548828156605111636801782936876418217126303255446744203480665982922382580862271605515334490835294063539857565605950077992667795177389756327006967926299797628242234351951623411634160919171446322006254280948953839822345737893852553983666724676982611784012256963817870142190116112047611720139900831812693108358216459140676442863623442629428036861609519905757588120376340864761304684145853999500343233012575944426755200855158284084805770942529573641127527903639642584872012339488507614672070577658527916732914724243072513263371116383478619210035182972678308449503349006248624688918589868585346688457698383081106198066690437641113562643697663948891836896622385982016303154667915637822242752452128134780106061743653591022300598610370215457638171472795824599513455041620442544032857315907374042649988893378788104974531721641036013582041257315974923622365701409967534429471814148405204752349048689488230293899867291549315592234246088841424123687570410572155260037815711979817018042297693174305734894405241951260700696929972084067867903381536578222190614217934684018388091263288220538731145604086672268008755457195911601344043946842308430140474292320618454836481566708565973538387440368547330245977983127007843312091366111231736828522968711156478631167983176562495206861027710566341671572806430702185750838410301306190221856549401503070299205740234506948968507840998119925923723163773524721711150177056026057905784637609900001824651808764532320444214091730491924272140150623674414349995346852928348500825879787703334002767271576963809388773392362819852914958632719265575145239367223766026244684790746282048498772834152216809018341186074039357436959962735117190261215066065289499537117724067360380384922091913280821470954918238892251957534485393813056665435837550802669943778214766895618456271171075893879493906076683454764851766140928387529645053968578394010103833519612958900156647055612187504399434178876418418244591525451589300416903052185331857805336919543849410703974852134027417569963446112820443764095298116061336689492868859045873022869942711585839806093394607986664364165623409362727390980599720940661756406750528164597891497202146594015395758477036676617367602072616547134497250168150371292551988862554099310326372933987456866439891013709663531203238066301905634744396693000003052154094433449873873778990164178909437234871092070153251350316374807329684646430300627116757794949006813037991481900084076396182666891705028086628595963431911214773843386317696155289695595715897974694177748616759494860131466491091394014627766938213196838288849194957809833379689360146168447558081153333025827116360388909517831782216512126978444239194502094167489202622427186855038637145070420763967705698561521857277037593492135189000503583016411891018149525009289622856334617607473712879505860071475919438502872136364688926443952159572365136137703040462844668639368492677483144446125413590147499997033192348317141632219913994094629077790686241245671051242594074122163923649947922628598367636379187228782522755068651955448465496080850263657435236747883814526094755890387428033165766951503593637783788231517267825487876794245467928074234681404008918746150457717585318789848309964743974928282443324599138131075775819836637670384797272298932230801310452151102537447573462383695607182256851083355637904364620206237788195931367937644816070834626883385074786734649052938928740739073340754537138623081630278001222329620720317172461196150724004980783580392386635707846277396034990055245952249004164786309890552691386651729040961756502089366260452569370813934706721942529185505168877867335304390144823501613266127761169872144634905192397758231903018501986809088201348429060126760220451499564350075115092540935722739582485162452298550260595676332555234844981492839508003799090625545914145961723167772167658880046146823204885734085728407072614128725640517228201539108203037699575710051540931359904018165286923412863958228711325087349303816876966053355469636202480144015686312798061970265024008370268809176760982937205283714463538601481519055321536705196715282483556724846734568167340121036487183194848064632278220991697467664126274243089871293840662994038788367259288070960219943330128716194916382164512594540591302399433983734216209430133656744415636262337505639867619996018650042610352521538985861154084696529575970005050601845606094857291350925512813949031402491839567430699284250465252518028101639014881519420693577828467119312215511507266310143452717491109985915350304227294358384941492930910200800858631030939926811511218268543299720384814086555330290556046922458997044665934224581699960737886376706271573984195954577592252272133952053818970069991557346963802003838418090149781076766587869915782724988660601677077587561456431531586337381425181819335493461728037901089596399061286165431774867978571496734458612547843251141667176300528580312313258287585272217698390425477309738997671176695510369022183863845888844454751454029090982835011945491091931907705647869273584835786039828687040067804413593168134974729801722759548486930795465397289142335843311151544658950606618325738120719220111330996102880808717057631143392613947607843530042364725970504802879633214445463088440822227599191732502313887987392563926594428136775226111718815208096647195954658227855507702642402777193458253456871355076989788228496267659272170213413599125277815715515887399803371157282166566751558266598697031453012168675300358849799900432729695825826101151125313211474697914240767417719761400755201946256376719853990116176459312530748802293234959296011046509892124865650078430728820873676176573747758141031835859389056714724506200651566640348116397690980775471604239343610791437369961011010375643894605944185672438900070643799943315168967597282240876747456034516808090004029136196775099624884215513167616379317596719676156393280450146851711433890051474331881856945925757675142992144567593825668546448184489730951967094404506177508108953918985361593469902523840610277107136288766966307635312567574174148874537179467323489116513993013083587521028783751244612518816984807627498639702018399974364677938959115201143831631131567634286818005998061282819257798422767586605501303715925681769255609561211233037642118693176292022839790102755335283027532082975057559771692482585818508847228476991814501201901364983234790446658364399303495519513068717607113939708277547094735613282388933083311473276547400592599231877994987971112566960489045319679650934382593164616824620529013676030809745072727010898285010213498287146157155476898229814515395977910338575597377498118734510969818669289333566642135574152798609103254580812258537171283556429294691535038969655989336127115842383081506493651105518595416884344221810378909796186705600780479937577693078569135136180124857324524267801995750850754588223479108111569623110094815090268746931883797326489985708870544767290167633337630722916157945998456291334114268533754407063233861525992091415686107920978805388946428589641148408222737104589027912855844484831554431070983472533188240294371927582822458273395669014631849987987683570908599055186206614030994185193502523640994003851349387757782976004609403322890964146991144667694432813126550061725825671660461006777271068476800415563404737897756722744601990432040278269494439572705156548094456931889664660649159598326764379447205605657892099634428822078199575673603365466018133928446646961049239228575487735636215423270748571801360483013521630366970744143594401802251114684479969935750096529842811271935657818499450030993282980917827916995423427117898383502486557339298976452924397019822371797632466538042629112136044399582446702677642126775191878304658845849256299770179422868983395992879211410056953140764551938842847601668480315118539655089084063030309358662786764539501611396246732082424266893946730568638220030678737367056646283612813310152888978075407538923577705520545837343104059634103934455794159272947719588397815090335923487275527550988173746392987866600281786086395362230664991309770679148102866417261133132293367453561457690363989677440295005333128283015574823315961958732616617822794340146436811725413006441869301143526351678486666648289389219283524074299535939231517735990399526743873194029144793403221491579229932056454861109440049899229742849010216469614226303049041519569415184329192133972719535222750265520676068910115760762189866555286369449088423960397876577532574914155268658550829940072640853574775062455725537960449398520691815340339164200902956677408027787281928816432502546805146387505211833067946673624947978814881256560953567858324083225384524705984249527170902939185435833092759653076549420841271589831968479531774985384292893333197234501374908762813855621284826602199612524146553218364517752200658659681714844507988645813936896954382672580790261613864731552978401895154609887047550180543213727632832781711692386542195408506677202097436584513280985412140025851975246574474904979632454556346695328237383899149988865345534802937864178677812997776985981136771970289765054228247928461979170872419141305285347421100545991591633135983100865281970121749273753569788639898536824157567164885623208696636990866162080636381991930439426750996178951229894208685173582905763824073117694072748680078987739962692126254339374136501216797375725564192572595627084047562897186011946050859990848428103860058846091743136041698977576972250554962659158244396097597130922846668964259531777370199794588375300497225094297838397394607489653209062849089599227509379980076163328297812328981086534171206427284719545103949998437529776609373500485296944651488755873743027016233461821249981099297469736956995133954658567163584329896216710196540220718480991192259657938145923912579261247996254125209458679257162174771902818012675832649217800046789221849319519107556425359331834769701464896224756057264229818172307478034191547335216622936052436906060771292324455338056785926730686350137514893203012524611634906881155527762137208864370416388536989354759780331632287861782057483218296650041040631135382979640535102875836097395064882603583851838581756203307049720971130164636058637072940403626267175943876088883008757725226897933080952878933004588631187740936850243992875710025548684322579870452291175324795563518362833815297753263963435056909310583709604991093134501829894590758236883895115774417172594207276215691025178010899616652739831831703378294920339346128031924161117358112571169818772062680830837409232108625415777545205910678857113408975657666816343732229116620502389354349926986761302582945626970148795704988690067678216336845357853897465395824184033388546243753044025163693129336710603281757074505621440477643779829291846264839174508102184120259117050436158597472643392766431175340497165703892333220727666136912822461026118183443572404283195937708848772363258476989475165959334625405991500101697461439268749057434829971447959739411981944152670544013500760414274661760147017939708130624201519982890200836503128095558081592897657667536185971292153043109482366999962415656768924988566840222567823816759987453188813285555717375811758174100415310649375103190413097683874945692328450832410908924754174568987930877261984619565684847929539723826561320323901421838502663871932748415770229584640068033953873021948502161209765514209430762543849550404537951985113660366798541733920327295765338984055358789444303115829469186403345098587547864616356667884093498499045038491169095587999970754212979509524485350989058938925297903528633528259473377681756558241439115643788340178462790421040634624843702046855604910865346166964088609375631947030192256195705242352481468161040386635534798604190671131648279829108693159511378342554592923556252900740484589832092915267121927781223730561578890497925093704572509554140689839406342304430259046848735980953982144084208549406840536458606457485469671277284715436007410447839262270053403527783677042488679877921584720751831752486903203314455350832275058059560916080398197910386430936107666309535344725298682625791602960428691802367387650622406451241385693135319244564637935706620072480192608673347414499043998728654010105574129809104265042184755171550476346812613570101959356036813102104548496967476798873211853846352409944556392068341516480212350031458118488001674992043515851969108746478789470122837133436657871408545273403305477353329294056106673058167949692277594346417707004331460148255285505933594419400831876749629970101145940948576868563217105762076361444266681562455498532282987250936301375566815788683138152470554564434673063045288326958247628855747581606145734678040383177896758937466509076371382109063395259207870934654697441703531353444020940725401232326797691047026673617729528750098359819704406665943614778353416862056139786261575892648851275427708452937480114277011387749007408978664950555594681041508899647466613658011386622158057338085762034296858187123894750534415867962272734595890812264698408229829375539616616879114395082155197981785907786328991714992118676084488585078927356785786294929641178969396085331926008869512434203388268391301187820689723471660089512431369209450642272891601561307210366588412389817721782747833343265144718259518488367283836438005072866052530201489483136580673447133376010690448275333869864728481401546696839057394053069015180303593653400415806616147866356063668497751382124330768543833848342351185846229917304756788878361261363114264861086095183260958550943893525181775734694249972262950724378178271433028513452032260782389036389329538488431873357235830700779810913532916135162813046274307555288568977663452731504612376813867160430950512947053994565147671308360831880157740786924826516766476205930488241774049414616656519783757783386867020441766483308047451152555086189838461397318751438046623128314936217870398091352019272716809954099497309406566343049679703652061267414635223698019266214564022939318804170874761496686914716239749595641187560611766912146740248079764759923175023850916934025278929014454541393067093114475182190185488165018926197438933727962628989312757373195546345740140658940869124974806471462138965116561683648582569039718884416949339442927317095936706608350776678002712076992108261747672073535126724258421430869199895276459745573422111442944570421345022342674564491461217376748014082008924148846626556697447780037053575069549672466360737200579706003744194398564163656649496545870169548925286424581695763530984138888032590967567622289941022796424602807033319282528010595086309519466295781315325773104899338521443685668643141438488074617142369130485082975808836737101135710262884824666215897945572170611729294391379910870180969406327971525376854751589099857340096107457783333430022611559948920505705844009544938326559404729853991329523377702089221449805326160295286286975843880147539389480294962228476187163835561799982726165042494255198911380127133656464918760671918683988135992455295739938307021105790913887179566795566985049162934024769222546584420828953505390424686337413477409336648305731769942787505977359231844861554177702771058742802986400822569665674980530207000760915952822114176351299312260120493804079807433754332355002933765369417401931710800028864404713676949040860060518729724771513536995622984917963130833116760310367745896792685034243866784800665714023778058210243030398003523508266091747516704928814256314004742977545080525613194006700904635512188278673540942582954152350193473586352614863699072958022206413457195504378472960031293514425030031862913813604929098359156387405271344196324960400544511407037415251930491672670830722893280127036942270176100017538669947953389627750683479365686179350971945785653742938854863314051959299127740520559329862643325090685026044289780611341463014677747890239227460523364578364541966841005461179194147871055890509463364228401764249223908870778071387501194571246035543982082709505672698798989700071589151463257200774506274678812631606028762773909612605454743538903847450713302582314328380276518329180208933616007243955290064597142967096766660904608177581828932592540071686892823772452240920098796662035236074389222442167760266551765135805066731058378556981515719340917202982864592613664000933623093129143339377225233484672467560309786086119570618572902224171537678347209615622877776950018930752400339458308005440853098282178826374609270838783990800741379433427142221587513577640305077240241466834162632257210019011544540996507187734931414276132209557108953394694032422350195997346110520191278641201164992562370777735960847303059624563740235301055943635382988233097459528843755596864899714397116216359618256628619788700095074425096839085436397942238678772648081965400474104658110447403464376887344937818452133934854140809698489033925131764267657293346903942699894962806224629126840589794343993144439407935830446387124619886967634514969100691911280812250082289116509438223037074225800255156777301429534697686754925420229466901698858389855791999803331116965932839813139745961327461439871170969492428755770061015784575616084744905731699850350650686116817232374231128383756875228716961159072818859489950329411178193211726098605961265405684055819088117888399172377938536883376347476760877621696923255681086115569247721839899881916501659544038245231053459197796385238972061568693554423869609450147686652341212329877480618839654703267968019923212906451788567189389497726139070248055884847627327871598057178717311801821180544707303805390415009566230843944929031957666119185199662908962231943584278731159810739668634399223494942807025283399438918396245611531376884962803941118932217634171364887078815137638558846612350685866171655898123800548775079741499146255908642673231070700895065853453497867903407212505459209632143622436624625423689023307620115799860421666568510360413905114627816203755605534640335817329068001497687328971721536257393113441180125127827817012242502508622557252845281122532343286818822476081813817700863498323335049604807420551000096149228114482948090107731680287706400119835000456745156955423761320686246570227024675905408294267705546993955638121468772330076189848384349974886975693251467761181683335462551955889440001180118582701183483683643140282841949784541289443359163774554861619714197764317151242422696980041322048795259074640078346795443739017430123309450343523328644144334926528474209700083684307233745736699620370139356554754518375462826279830888358068832172082697978451694561374894220426834294988225687361978431278855620547764398506725579275786279261465800864718426404569413064613122361596464354505378017068449791092686428263018488445582209104556131271249269236216498108201311480855224687039947693098009848252600553218217430980704214063116264323417659654469250499099829660774109190124386089562344509905258025871080959191938865126375264029227802550363521361043907266363053513691158613099269722685942537700189775093388408682427933606161002581809812394373393206116226482662878613382176095694704155781443608702630737896290826189726097801649051421109931905973279936175664759397397473741405293348223458057415207372282582430883876812131824923095935198675103608956649405589242732812325004527475178698202441865033472003508144262486071233992809417706526181237934250964622569081851637582212445873789932356851728626757498256757061205894682804629474559340931656796745495191488291896742802965808695451003671209139285501717153663071212425664600592399863717119241435770065369031296078344175554853959549140709606948487808680578731601668289047606550895918747438082876852397092443501194781927660599067399105021781681797682858510166109831267859632324417826427424267339578932789520448232083931526688275018857611599802452149710610073050624915452845004154444090312510381047279467880849186637990510905853347561170290596708431057816768292341738288847209205490622781159174105759338152021514677681083705954930055542731642526366015213625573580668291729858841904527190749651270000307932483695488011885460320056361338411900985915668015197178920570698320513371859974414481349076777323972585561299175669220736249242262605990096863636365366091000084572782875903740266365141522984417848692080151097434510401231883546076314333840483283540580405747731176747360499743251604888466094646602311840236728353322294304476731659620079181590028010319847302766112378604000070648426505845253207284460804272919886803745777819884402266317500950341264572689809471701754451031579777442169889105777104725744288921045634051437703775853935341816551885328091001761562073116702508306679700552779316929078765958067198821938817047851225239671028582682887279445336199355006303616928591849507553600279444877234426957365032925408829530560465407532378066788895043930543412996157272583678280647440602655840588712593260876789232772298481478384513451115690688819127472857566569368098632067827993717994057792724330571786055508800333541339864184007738124581578886468793291131322152835441176200247220369788801477904562785348524164354895456705902569447126986835576902581916643674422879830491390660520349702788513452892186438730908152113213298042445337561820190784173981908494584905737139649017612846931785241370717295435526943303301350023402200539648089130227986955365315264165669758258285264339235093164973071540080771178538631132692591181164086538684237057300419077567818993629016874508550781513593838300304478823013727682172772610688009716562539578748765378991248551600347534492027343528442780709493145359600626472369139527869670663242555611591129339055981888252945130139401569599981344440175836436059598592130124394728792423863492309051571273453724627270395792014915462378201266919339615492851436024483422822685193074959871011098145539657378652572063379739868134213231828137183787502782108599259703973769788750183112863593210657469204215664787579693720503774856674869996304088104325307682257611844631354748745674789381741779329385858388713446774045134953624228740877734809191247068681980238294025367549157217539091981803672215411183459299226809643616789159538653676530374074906415231684803584858056539399653332951144359681849950316696457073569031640981775680574793694708953432561916882182775200582581218338183812197632148835431349116265828608609147504737700236480180226950287130343315162566660564232473354332350551698429055288472427109321367466295658293364877553102975792736666724280786753306301927116680394581754850357165055165668063469648922579963092210426289914376324340805629654804283778110033474134160791897527897253992662164207536921675679520472583822253785383608121791372241471827043553129125133601112759452196042802033860932588531552520632434100335706035255696130259600370724158974982069999836914531756618718805792005313475840600260557853884475094558071741645052458623045585221628274933594869142802345843102222419999094411984949251287609370454250513472158955326699102756369570027624307109874852917249502654568339913364220619033504466217722770400223369246271564188280047285861116892076112687111902990598004075565454381250677352134208288454867630843873807880957634550449835955621382787760290942640487316732657960328737405311434088207491054494719496286894266492965742539046425336426980653218746386673799151079622566715660717254219525616628636369856027415581948011080449831976250146426266017932792869877165538459411835911849053020874919316319016504263621329263045913267018721452297318621734414263964709124440449211088337044036894864166743058956561430460106342244298184623301218281967964121212236740831977170961309901405778419225516716176421152890397965716356481713987341611807260813185841624461923628962795490262237465176106914031021101736576210154548885589633004056697344916733757818451168839084680698220454397442034633818579962779412389336751576292834675895955626115802529032752913973083607281829173922903619943392131591428169523676062942642400937007881868818587175155267541370210888552692963833255340046208198750625965096349030794798494561775080698604659734866034959671842701713146526213567455492829273512764980328297268073386086018974679974473632849814029694868271581345457623140572603542241115787672889781039287523432535614886167353133072756413865391768639398865947821500159807565578562317391114861491682366729443950925147475709847487795641680679719109062703193599875994725871393070553418887226855184205592950581802630174937810479642425461525720923396309891237924784239420307896004201781192762093343042393303495071039831657103910196201169393601686168450799772414418514798443289742142975098851502573480901452206305059872489130867555525831414961598731161945274904847315469983035151450991825318353137220505643445202065990396617922766156841598176809543810827747168796093994096360681619059974902011089513309958994235776915071931504073835994456090051795838959604211364058370403052348528681450557680415137559989471609451674490547109072110054553421401515224088735280531109112321283064300153962669342300813453550910107376091729213450785235162539477857490919861253111797009888596959843905272299805998029642009864511319812518560246693392240409216198564710762066616356173892128776344189066281867681749542155992760382926641906018022240275789657301396508061968958160203172734217796141654542628646358394961852542340631989961693667233846935083513191763864993144086613914695728513749440805332591960137904255497716419826484053589729736357108461058471186984107372887199009437614120485041872651827886095822487362534178786226234553738551809974039478386303915263571958277278247830221136554480649872714645772675067400197971582300196240756944621144622032658294214604038538128985874184078978932928535569743023364499105126017369095024012806516042382167903620559062085351852981246412895665928959103033776571049360649814684271120807873152793060824072538839425071517845040040843169931589063890452859488788602250809647590367010535913913158126842927669813854274442147775185618051825018730947671646257230441691052817638057487449891576346450644399903527537683984318249842926475759282600720542171112156953923713998137380692065612765691363658348739434282279255860790536279636222893705414848934446145581162509168173303342358689420978337951459000775884051633220632226431539326101332464656647191592111853732358866405331230161795566530137997473675312239447708884297927222528593547312003743520388375856294009029703837696517957593689824425660686375072146730057242868868849895786328863029306993469637065022687532638132999168861722479009022491506379454477849397560519322206572190984930377400624967565725045519301222805446993016888492043017938128016362646423946584833211052481262734566412933352610261360168456545152477078182650059892155429483493114316497291371508699655227575032228521265831012616186225260659993091724879564044115358330974237094462537744621057851015010875253007955426755852511090875679223485893992974523927192961381653690002242907686369147549493436151398125887858606380896645116652170901345198955488515687121166691550496783988487920910411100111495402848681272896565924673618420722663001137754472955865481094610356539685114993211644201474974596057092606118141754384420635173858501386636653379676194113071025346305810089096778526344011859345856083130206461853726426886237099455303359621209430137353440589997166464430333321697138214515715124139511631951427389976743191965142455591638521390880873049522717269690140285286559786696433892229794900334566054624118238641789286279379768609528701037652528818737853879891575804206368315809433081723330095879495540225200626341901369622511033429440079439011633482517256950438443341802442255228658823048948523628006597884139834618934284936956618775654316993587381035352757565965245736686216462084953815766191717833067527543153004823186590305321901876939766949320481802212424978431277660529357387884701122592822706021357167272957958873526832607670625328748909835940429444578936856652253060459767577142094493006367053333763749448789160503339249261829836850551235334877023008182128458693826656837808389308437452407748137928762014677670594904232233345920017361219579551645024122491593345565574060228998499836535238848776737647870311805829343412486504233662631050123284048962361092924135231838826542611590174925765755842523001392538782455224669626258939148109843734255886528236806287149346340362617849277969137116713761705784736668891051850243336769433229077724618561960729684046885501004006134583911129051508261840194954886471781706290133898457838736425324310360585950155355310813976154377701912623247616365316058904996051201965181831279142589714976356959773067947712367734736466368532098648622291040886657912332780516869363142230466918476986002389199102640578072569368175943517152051565293488514427052473977308768502341614484020070782820218750805307657312167530791079512308838705325243732562688791567921953301144201420186261359503408442705578942324632969564443103315219656998196743026639717590053219442327922120232513991664726133606633989594093043423361151296686631009338507082119239520093845596736571108199134203738503243114956803574518589625467026803286105724131509557143273280805758937774762684021210482980756028971185802797418201846009182588530134056665415825831065200119672822312500928991937576325892870353202743026083135913562987392928894536788387538202472988461822227028857196665792856961635579729248767839210816307482339127621775260848162051487420730875597820984661679998438688698128054261033364165929119513352172597848365232960362251164421635182195906265968202371590960232357366617130268362908522404402796847918208201335605964822679767170794664114672114985885509292356514033348714822736612222373322857901782067251302797777625079241384129638179672065769283368141402652631656278703394853469227703004586741018439001410384853459271355959852665083187057705740735635572483263205847195967750361540823615906040157217978001971226430601272903556674289803648906482260739697669008378917736198798430467165338363366062318454946176247567927431438954023062972573396955719789875350542175044316888349153745995890912826673327961299512110700853588091739420105494152839607322334706264486504057755531865382490841511762045146838016211985664888631748376436598703611065412533008453684123752296540748308014409898504821039053265681787485163163758598399106940655628804511936362169813735403960580308184461965752549657829765662165143849073312603168650983491787620881301009058470716535137675272361018922731044381990125047151389714722375944784803187461317111907029289656095656337862761500930058161047480330363003449788189466130872168664375391265111117000205857918677415044870519186782057588963869679777153164898164684088173832225718861136374862012204225790157934782771560714962585333182409682998002352241803533661040992565390247736311559911960927461759855607830255834700870675030611679726755299843002564744163387756022783308895190509748049103962555761798779012125295950422552918213154420865048262716439113446704854537811043571888214657811434169470686119598321060071109962048426251935774000702489111702763725479538522864273284815632762296774612358120855195270632307107560907928426637067286942689515268094717542785117975696051741540771686905075767209634631744004256437400304334381836431784029436309073762560085437744595337367988369518703065915468750491858288781974711482382720172379645779928983041024250937357770598229388303309590667612482854021436015677677586017955895744526012911593037311970893660102372742774670161773267698721313886492266267049076076569623552121093924427837423049401667595106268757399002584788593179556155392140625940108996666280727799379232206803690716596303246057155411041243602429914637056026017326040336476682711606858161603450559297168477433538453000328931924980708459686625795679119181113815409635011692054071638644163254213190957657888613289631043147345864863668708555304449457684286632123599989059679406150134211195066703163178639597801195554944179089199713404445734922714530999031388878606614924978850433607637815552446186791264628834630724447163247844402145986894742792759539622378260375417063025155238087286046752920919024628086561112323226991816797820902480154035906792374812116973166558693237566139186789748505832739463524412151691095006254824157566905023983025908110638590740381817794412088795266252022043864560309187927902083285539810378363729658493913394011285595898432579018201042015942543513473848486270658383147640107824908344664290522851070231930010950035063827851251291925511664407969431944899314981057413419096491644700233683964121625146969756011173643177654007319314333506765877494832063712033961330418548698598198322665965118789644010973309806925333840004330897122088858689145011284287808013578804822928819692363766657707526306136620877453858286819442667713992759422622370454741788408801424383194795700842507026026357014324193964848460516390759523025730637251284844601712822111244364664194450259812787255718808907363869206310463985514389274022867826639436982356464339984169303840495610543420863305927974829835791075809767151129900795019681668276047481966662170600299048961845733304604320439757992351320385585373434954195140090300202629975519876773002835811629566088078914109815415801393848645001435719338785198386326868467560441195607340822345899645595520267015487476323004211338646050299445505864244866537586150680819810772173180104358346081590340356299605940839129873399468142530554554010589449917853838111617593434982772420505000039094643597051120183130991240574931607664531387932215977318624845625442219313846199651359945091162751874042892745671415847323343286112082866820909821154708344894712827348105189717901455594986705150353608472822928385492511516893849740208873977680042980018791601955305271739635241076008013829031114848005952200772378642647044638543560639631349763456926749245563774654299801818285593832851838530593048872075527546964863819429742923403840062594412566214182293231566398188396432018204343122006795863130102655249470433851491912145028902942422104348114573009558259364015801390092761348643444941140545979418577760462399703015279353236935610009834715674076449704975315152469823060355242405738005678080491941370276865693051766383156751899670699318369581026721773142795400519876898659228642197519860122752508141584637875223614109884037908159128248182828244604628286278189070604267448351467542599503784713242468180534750743941136384626766814450976892392155810110287813956153639784305098561441610216077304982948248060682701627807592193733106243629167116659572113796772524375733688022092568536912644077834790499865509624074986047811598310810265687205296558752579490862137506633173732233390129664259673457133005452739848189528343391430199577317250757952464877764102921421084152920128269589863657081626635273548575478183782204937327117824234624601556108500047040236648045093518144511165990492123322917364851178797349334810511185210518711097144663809167943716372340128103151722161612031915009839056794252692883663085115096042112388694213856811389140483388093377076958526172826096144284879133651070575521357320155060895056562285236734050151864137181884969429494981855373794730866319504412380281107785320972866704687283229066308919128988178084237746580907917185007093129636415900981883508050775934833896989762232763705235113872739903439204191482271836462124024789841415432591682057498171267441753914266588624602603098323068722673061570331599151716389467305554137358010696208204296754273491181459312099069698520362785793898906609876665745357290917302081609783005426592505246761287123767259653339466612492924552857140048039868376925466850596250238948220202907667737792169029235530751353730763895547753009712515574672311031024414435805007479195495085785526980607199669322914981662740564445375650926580966138460416842149513204581103163784162521427293633166702543839154773083421973037398158324901154351649522666577076446710479035334308469652714661475084736452293630759430405172370047449723169046147632973239110280456206268655452352741384619831685309842718635850332779430621518958515200223893693973709420013025075639985490792534854278379076546362039787289582529824459969463321528568463687730026841704016862767251538755947333061178520967210941442286651415800415858706749378301429496303000786781276469366939168795669365426642714824540079841108715129000739009977108030175268913470845529767327177339203075096990973537821096520951971774667149769983274759201948319622526038862451588209093421900787666311386088686253485745882727795501030940820383359467013402085785505435652725573324203269848297237836728302235182795846438935984775138330746560685059873180536821681919287140683456532708486983277931122412171301785285320413807565641658120942818313155323345388154181430521093634873941755055617740187635222753125317454302100731072047382070104539333131153599658090905656228973648673883945044483767493953945913113184422799681932621608067376769426188896724956445568743004244505198893980200324513140871170532914495576965778234135463069927327049743497342031533354818195018405312251783723956245334812348643539542076940975853397863864976797453291177679988658095883349211110583476785466042700755586992602796148714739977197972339251684413130872011884889855313441260381310364404292414649568158337825257518656766012160882790615958193473437220099229466538379317049758949736324390123958029790791340876692467378722890905271869126173816182884264917939083473731008088093452242284253696848126791990013526411265210783260206256180523028355458254481187413481912306134008992313490488167596889813105241840544585715118173024498603259500933582196101959144118436269635784576817458316602206798475999199795410732089753325875398377084454258167228466040878855666503108742370810130858557481233597010268023827853059734358195297541674848525751868924111489488462389339705638957242059362001101556752368514379126151312612990286394921465436895013556071930144324072881796517610645204372810416688419239094541659035019736429693347995524621140643855315703549368586643684578137391152890632094706229782524809280251190932327314502496912627686119662665542093476210018902683605559325698839703168170978397283065304441178136246561504013023973809253263242666580821718884189427218163749436777826904343908471337987610401197351113636286221649922365585715378702971902518269354118815160814712067376720581207500194332386569655915964359141711412954442575264590245758805018643604549663096391007631197015262109272351118701484213299248148666183943792824856521104961654580068176075945327859936554248629184855066096479786194375294382484825786868880610815842238662508165561077658104925530562852656161170075948055125148048446699189273884296079772688103350858508850372963425908901167470416524434107134096023301898888735656394418001871159831035460653229323832589390111511923525042953158034384490461359152090623225628222397397997785193838900494042808494064222117648860625156435433225562023195975767433190151975500612879036443156459974306209806111423707469175020931941898291799128210090975625350890024733749461631165228258594446309311319011044498810872887809686308010183081466799118211650516161958996486658678326116981239159820505107212346497881036909754319103870694342748357255803494836887073470294157603481128418840629837979167073081472378270033932409019530084140758338667849983578156676337326879078881300459645649643923946666919330150610523356084855739576289164984163691836680016933671021279559629517397742586220828969711449983716059929421612260997185280743000647962638522925915708698540651033792126913218183858926405453149623779508455240846206421043964188413368902284798374904932970065571958122707750675015920760841778332363692826330600609982436861236461496649537738788208782892182705948253963455153697972020740801420055763786539924533943227794577455104853998701022709575365877570112230253060006543088685460662527838129239976967930337390941564900743179372408657415863687816025447417893603169252375802286559048866912386231749597893404603325844918333941945624298164417337535665443816887399830098798836455025403681156262098688143764471349889375990325421754901269586634739978532706812035534046058058147491279948910173666094133011429802283917487385738397827261587652980315497485960695601513306236781922757147026648324460687657069155687161187164411913751041086916034124433384560070872326646016877808412696718577470174123098938451241258754278614772710978694051432094540693722067072636773007045781797453524732870297637302585044625840035122085269074846618704247084684500908388818344314765979305660806681665822632371000057584143750645154732636364064648658708989279633972626042472113829900950618317834105618595050531652911357381116003648198937483715739590447579002965167214243091685732218150594672640057274282938280718581812985543026671478374926056201637069522234893222695066536899230554848879318218545139247171292675416859095780110640289298618310751489401053930457406349664589337890595031202773003381007211937210121603845295023598977926690580332378359770715539440340161697057783196216594809194077617288038325916516850163852925562266854835145674658338468839292971407774466019610863583986126049276828619028722078944782438567718015299470298263538710805184453128399184391697424034440803607778813379190966735277927106901952698547988000874897976008008979015538951097714082302806929634215577673046689831284221465531424274834677970382157747044951228980283560468155165011569997246132556636828753134914053107599213558067806069518604053417227756501022888228579277231800050235299254240807775847670929005349832596936042193509465947758676841446481776923300810988920635273050944733222429166410465660921983326581590482277542242604693657065481281916896787170590355022009605230660183146311545007689191298256338317364702174528564778845448318761832693022225924813848761551296352678599873853514833601552781586434978142924302669489248640667105506686126748272307106461568469601727687644918754837313817630273419077667504584138065794685143670986934654388668753533922230647608800028136030490199661162495597687032975878389620376158219653815233790579339465893623800610146005769112916975892465228814890843320494942223776971884163234096282561614039596976799167912148782939804224471518499885790294294552723779822594047728240763861380064481555085045561305351853276788233159515049464654888066917964018301096542285418288739120630486641125718786726789796172284434957940533987972423985542356212000753644250162236043912213818494176759980072768863232751285828047368208605975773310681988472258101369891734958936935121876751237705763419582487883744196840770152694161680008275441408877544144797528295355463342520783059121348622541119494102796347441455708298420678794268859122472810997615264106602111905510805858052675380325632765154386406536074757031668710528843266622486894119257096260586739672874082688885887054109188508648537973045127867842470630368384071441785778473973752813080009573509656724163578984576736647350739201397180132925842677713049329874239401484420655330297513076369973676361494279550826835251221857174594131086895530055066270794543018401335121522478076620855830321206539180176993758390483206682276905925031557363406991565687388719564112517107413952726209466822851457087263516578212410400545892752724528573198521925833241771876706151460958234207500080487516615461751944528384280909872761550130749056692214426109177323590182120822327000973159553983525231339473810213383822209089339432701315341646010210416645688899685396386544730712215550835406633346365173959095425808273503929181545032895900218969291179355609134531315888661783960921518158076805212905387363428711267621361413955347617222463601675312999188893597420712358438937337757712675825079520031816185879140149498036139087501002526636679160523004930352165358087794459735109399906363401456777259794395060390966484905523150784471692071288460987960187392773182262598097963452988053643040240079043932789342427610662075284552626106646155183715297568375201078598118171238260120642495019591693129893405816291764861521709312534359750689603265444020824596772564389164313056065911034205911570593903031355503617216578562342104775016703973845089748967192129846801293813186274238649618528817320577263887974586560847917985916083084822379081873343326266045409849883940667646115132839279263448371897803357163338109593630948017312065161384300754427688989482353598216793610109965349980130653136026312173440886077783812281741318839014705957376218783592062835018074163805859287308452162045223248184461832089984333630093399084987561967296333244070491708254589091815154729818072200997418969003422545379812338007827863166851565374952536157731284640543923207785975342786189312839273879352489002492940306863706420962476764371991176460869485097606949765338111042741657122378276215733228903390687179343537611021612390411959834696501742992455496093748521277171406549137367051937289247228711383285887082823291851439434862203179261582402240866531862186894672800414370271350346699860312101642976980749939088929312236859100758333043178830796419585591912938886616972469472937166630181733335060080669504080311777753048911259647601503297283530673442979407375925351179727525945351363241699963321901641548793279781641557927852600659823451354141984016529196188573979627071144672475833391564425883034691194654094260500111376380524291653959127687107685237949002894032085038898408626566501781591747978538692484644606473988764707241182447706942509016637976276078920442141873329452436062745790336807955987203807582979367376710922109545936654744068843588091768423602716091705583264318432231973045038697480845929844602824685550008342134183209526469746230842566981042598893418167042767023563548251290238802385241585570584294685371480001602838397841286740293421010252179525993908370527486822576745578942719185890796133163198854541349529379645104503767043892507031331612746002068924667992549512258583660842157403451956972839835304314230198358499713889906761172631316046669502381574319837190644475573878942359699561820137789140279108911302430076754856890619987949478912659796632304610346615280611392659687636158104451196815872420336558846110247858700015335217011691168136542554661333889734092497126770148388367395905810527085238622718001946174074846145789223000181356267851143508289288978269129016578097636243754398468682659950469281194634932630471679050664000333346287935881650538469142148495095280945971047974607683298564931035999938676563435662685112099149402746162812141656996531357259777458087579812020998561152953593466538893147913964664670782060826532342126506823074999737122911640800813339227828684675558733741748351668568128877360815945076176277944442203333575985150868247228706652180055042854671131917879540024655660196861145046100382471778025961132669930646637765345645301774556970974889520880625015631280619115051867317605017067681020806982232286909026263686174185546574018794749389028772988725089436909591900009896551408947752834057662728927397297161976470703355651725857338914128313720058819385946012851537759821846980407370567078770110843222222164818824707745628727777745588496556769357669783666209043564026352763887123869515807760046992294714761137884679960773058901582274823281384168753081972885277396554184353069558798462607153498189495032111044298223081846447085629844013372760286201095449771614915123528734121702441102115385596798040237325268593931174913641640741569947985860155269491468540792721327129645281045931866110130464548570866353588571319782350578712206195907911281247271948095379651935085441952207533368561317244877404495711532827465481647072658444426525330193872714852182083388067765803683090140463613695947268804518906529887000078488293794855486152684751890343033287473295160883831195890836480282677154530250879716442383475656802313942646021739602394765840467400229366136474651463363038163026716397354345296128710608606282288710678572323224425063850639839356921477063570173931590076942354250812832483773004801151742344634409661974395866142310745897030222620999447858067464882457957030692759123066176409425222099104362295660504164771735253645720125253068004718225145016485919764569496752465847177601225248013380461235630870809378564347565653104701700250175728863747734564923682525187200971753204048389523099883530236201863783099193885423913928201005418038091362507963867977261009335358997667040534030163544046908487465455396433756861318734338461555546835712230027375877884671963866658511248683821992125717413588251946064916918175087802479608231516324759648316290135908957946081484802391808634054215501611399606269185595713211835708751240434764845049252472193149123061084102557367169156330187808907048864649263204706837591184297060471642705789110263170013966435584961562275795020148335121957150743418544050055714382758710693296791742259451619787130329131294264018979839694485720166339087321343811237200463499218608615768701532993697096376793361757607180850880495777694758707055610592917807958378642650881810722884637973838745779726750001414058522370139521976997204069965378591313295406389280350792619299292456268264757995116892086158860021339706936886150357677024709685566291371750996479568301054864709514666843080127245914163384198908548020079303526289373987976151821542702433734909470097841941190767232761559725971289286120656707898361726023441996125205030296839837657010917754175519647960846311586243279503111877975617796106524225019881362036930065050070367578617457112342247697857951973854131299316813728367630829319707405582925365664481618001979709238562558188454878595368683067652003855996349218838972798634964316512806788562176617330915269673569343235982147942945772718370646496509813805848435772901851729021178438349221262612649989695502778527482558299349114335394320080653642979131670828351797343398302919905061973843813122562054061942948454613392850957619450419816872112604954489590644110052882181852014630464011372258069615195620973915206296788133283998814173566227757345972914277462982523965690007801836661763516210553939086135797519500681276236675283563057165776153337173553878187312627908687240579484861317273262730699639789415857302932481276260905799357119870706973770548469909041358409677936963352566935447589245267412542751626185390370052227264955552595781259826851768664584395930812952578530039331095302339408425995877962889399461985126214581306622231966145491667623610405690934920620832999262963450206790799566739956488401283591087940760268251212157011063866789926684424194994948750031505747521880432610146143295184948418693035262435114490668933046888254032230821415528701384675806722497556743091319664488149255484123316615640856470092596656852824803641265338692176884935328652632421984948975344391410331310484645801829951976653689417516253596465398947289328247784022917356108972064880309879763940715516244711444944664373154739094411133014868571843626154565895181319458712536131802009476258352948915105094230796861188081439693315974250820042851646866143829229769362178758376313181424057779365313372663270934380818937400277398223996113340719491696933392990242802885993976570701571044793777954032783727280800592800723019981899509910184463246876924235240718705107036707969577266267963001121970577700135388858269085327521885925748191828501414361997492508971340121530638815970647404841622795403241333083428212638257349689495946937056727754756018547581316464811753756981446854027468401181552356492066500365917194856640594254038072282454289407276558175592603461253370351535535248285360749227265019096047163528158867051818176206079364108529589699603256550968630039887723722016782992411478995343061118863783233338147124106247502881559786892401919463161849923087381744980400899822452695374868459298588111220451550445778279019810114629722636023187267564856084901558880347798636808876447036989796093621651801367028471880029153982692700883741131654151586197595355101184082481763401876992392835205783488900670905660560941749182344567908956170622095392133611680375866375086428073077412897760892358554732316946517734231523184360403527397965161578421551333747781465706134791351343516472587926998527033507686339278802915567369300892095843005385868849289120641553511062465566923062342840394736798094369114340651310994100738011637804046345744602333701093777488432276222454518241178636264039244968268039670917017677741977726514917499960622374261691352555097330417775962707775752594126490360275168970950717480641587519365503089240701088327478160285652279196241800476020974675727408961706015527177881483846042615045162713030783591633738958956834494200471531650988277982429511270976369621019219221478515535628993124657015216961976024661800007305723702222644560027114204738903739528969002253894069636571437666207693943288264131046361431948178312567063975826783035089031571818407318620057621393814391805609889665079298654465538851169164510351666539925102770563767932688210273401003576883256850060701608792971050235175449326742846993886145571027712748312838962865663986999487155166867847435612044674383706263734068750089014306902967508553271847156039634901350185898235996724432825039547111250126556254437438574209524173313206264256680673043087994166036884488451619086360343672426088437904722749003902834759348636453116775024965051832460088719046625822337816305474642047223434240189472561034164184627022053638785551682544624906958313285353074363486604806175494957569322725201479671136628061134830823430668223846000595274026161384158476395895606706296747883476014887318875124131238382103146858173639946886550936581769733935437497827475505318516947685406185100752487184409051193569509754846610175971906506983328121030723499291161783676236597345196492476486864754062762625123953366261860538199911579715181546724519709402019582131532664629755013517122923998074852301608611385019992761319577919963410417405960658955193490097536739236140715240580158440962649966584874118999875869958476793776685883758987954349234585074619273034424896214047473478635865962591637920168577191401347991397091234520405370416946383355651612981519687576553790385011651421858409246476501007213112907022695522327252320176317602661176897277198657011373396130421146485967547897929005367230141506144915263930895087894242819516272070983354407470304544128323664529941919444539161123315937239425213764538213399357550791495369599761541249620217974461076130877086151530705454132261774532805755686842193866573596965785236387984189412952775014328834612467537062435768292292311609311353527965122495649192321439327591548657102507912075881987588423881264464853194874492859027189942042352986023665710902552554462806270814929089711462749075334380290234111434697944959123061239837540133525245985863245104143816471292929581756263510184583064975322793038427118604224707434598049611487628254220342629818866355439276092155294921816199612119418644482377111261958876606213690031699582869183056772452979536435514661204915792015592513924791776315987784702793680572441701913509914257138205228025973572601345343494149350494477967946234545636232083046982880494197094912575795878955672452455995607623729320995290596106375883936673375367493761385131208631891100161325523717144780880186878856949054280102250604077506808185217854026074401186270711754329769542181138727120607088394579977711719580210886203280610718692558451468896282079574396487208140757051364940180979045750696683605918769877242127122579014700366020619430123382732145644844919644190285362937379536569517464004171875788146350765798478979627360787475970727389408970648568284665153241779354371537444533342827128948960636114882111687679953838735622760967614785923627574675824847734097906750094904931643922917418091457248415830838252747869519974031121956110733096666364351961483258200438498156689589733145248518269831237164361691786077717583705140778803149292063790795873667603969178515396961740390585377709758823278631442005742745738950645918205043997526746135467390640495800951499759611997870861674449810654738999326794466291656397911014105912819186849402550856416039810185377028390356830850533117861910627876667824297151858395995750034360573606747766766965372736570241648684741471319482748031955528574953079240692563533611802843178072186472091422725835837794748185347875879844461116856683794400074327240844814057601424376615748207919574914788344160698812002604661466140404342990080304859283611049876551767813302766391490723436193038671929899454707315685454708287752496174614337494369866764887938656176341458246280135279890565757671445687089513992299600522763756312046489602912992865327276255121200753448791132386300237715639403183147122386761610443380873685737502472238782362392915943492726889164209511343290672875498416928964081718762717407877403516124063483967742450682478834067021741657097418046591774963742300664612587668587776632537359973961311645369573365384012010958932882832626691959004623777476299062055828949973939933706468966401459631664483531032429036263048938567116068564294950103502108339474929550645786078534431349831461602614010254857989445956786634320521808478381253662103146824158665738590090879815563692709547727004156481445868004277385283494316191961448839640384572623041515332008536805576281269310649607612959733284749425731087675490078576525203452268719520911859829088799132727906058704014421317885503759826735437981607072267978969118891206883061422435680348557742136841870290660631836358359139194775936905734251041348109224822480919303723453805256599319627890782028101201947766620578122141331986189792372878946572180701704048590034623055326498646929218700838940983409620289100072344714193704144733831305732985079381576502420035377401051610354236160583220742954528575986500462344149854551723977931960514634473776750211644946593795389903497194472108930068687085110597801582992669241016301971778280813652653464570235443864852946088678379578724847988049158864596813830006894731182276785655612014937526339000639394112086514926420903174395014408630892610200101478772027784806321760292819031681528668164892107251859041867411719535032369215564131992531156911938971326761739460622691222975289908015398415824143347273770934808072907994885145260633230737854208505413134891302529899702683791182924948543695785288021904023795459251805265647393043589477415650321417589197909506144334874599945776868271464358503701918937508817961772436345430847593675945469478580852039659042674425762612216568617681494515085883303689089862333461478479311909836364751865952419925576914471368992956349998605158550335487472571474279537040980626970260946177700639130408679429060804173049513513017317372265963710471791633199866550078362871406512012305955565458561320833807149585157694744714050748342574992503252797370993400588519407752466186483823483014953419671540233351819338278695098519827536352078796180820298748979999462449203497224068937451787113388015414149124870294069649949115193555293963452049545225812377524311414723720472763640726948478013994385899181051749223541996127754139498301391002021056937654302445562734518262030406751337830496123496206017107913572574958873182398134699956325219722932421528360501969363476412405420221800855521165484013559335584061896150838831242764605388164783797626031494737943785100620128925779761395764861867909828550984646336251791646945548278220050541937564018105827862872631130515184607474868970548526098643228980412173388502068542176678494086952948780384017073822374455397129382331077855686290732808803076198996567908824464700701298253739883476045988610111741756233490303852569484822404503928593562911769759413819576786649583424526083732053754177348138395420684408900304557907830819382056238765422627795892053106238459683063784114765848007856962503588870836836744418032319599432118775816466840222970842695529680463692377500965203779018188048802729475021696781081746410225723307249518790642163194540632858835922403623188181179208443029718271555435519084831130269089979194859519608437213784373519627345626361227916100837602980264317277656065843515743306734809263970106734721354059294341790748122423755283943852721452322952388579385271166646462438087149474506858872295131726643489459328919441723179625777367996305809630860305781950354057765394710512861399365181711243250810721334946643314958317504130816948605874862612731427768214396368320399094970241215306334844916426870667179366452061811377565691932996558381779705292464122670510527422924611111679482661995828541594229809923840279091121818458356282813244726104364937164960567333507148923988490751722800417988518960852602096393336765013591840312749201395119351093065891264302275720915796766543007983196701874005719769911092462106654661416260714858763312789602745926342572045146369323392401206004099718449184677858191448532311266177419417248960881979366242544452288365371367938807942949509108174218817834502489463578330890772429453226147036093321800463570435021292126660694928570453642159791461790312461660015145517283861758670748517126762521048387040948771676348374284508213404115643139837214323652837111752887909421045745373268530258152473320055428099835832281677042575850019691945394535003961000292358882921549403250296048219540692314636017917605705572388562793537836907227277466874376472269011961489464795102636191848421078697193792480680615920969815366246186239346226470856739846311319758955138425060252610572994534243306358167829932406892510553017677651978559270742239094904320235031347877587333984925053317635749846117117929861559319466660340789517985635167127173323043051965430846565199366401352093824318164006645200632943350005609929273172762646289712843901465725137583207511215833234481323119581651915148653486875045899882461241056212680541521777405944611445172803374596111442973141865010022898247258179127577444305777841006315893570861873401867130129274142328130764835507850574679152529440693479614970467693255722730028874521375693848440375104997093385756231705734515969891604216519395493390573303141927399936031663984177739314411325778210206140620042677956967763431416743193970905234936717064579875528097158728117888881059578370803793470126149378995777806248496935771434938186598166082931693692177420797037361891217666489394026357988803534803221240285384957364387054074131647722249210766186133907929910391914464585582769484304551828507498763780394684119484396810709005127319731441729646799593551642154045932981442735319475521687676939238757162170927590252890608268901380149284224983713742570895024617821502485271119361507673435107803813324256527174768235539963223197690496941013099415258281162844385977879891744777224351319533377618669006117306105134859333164072240418437002734319042536925566341029017370006370282360498193263270210190038124996103108048272413983304637151570575210492705546774657255354063465800481183776640948382709325937363305209287806800459734423620672263777904970562541057890429215190413112418577181487443078106140251159929689418276210643278592278407186165095097710923239969537095528573137904052564174303187457407401233605037246452343857674521721335380916749568427975992984508198146355288801298733035838899184825348603033589077766570382509824675123424506189732829342806461799416918628241469934035509774302981575329879341611116548019349283116766746919379220973380459296801464207481846625723545311277803470402841691329238447108264255046191452797862994997326516359487817228993912846258850853508560163259340186806502825841060491185283942251928584580113052065121031065455861300122623117169915371227457357882680989385568441848841011872079014898193031420272943623823136982343683882679699921923194282808315207264122138628212347551131594328549227292185953927885120495914387880801793425363071747627128870831084968154272644805515675831122397866129584826406415547625556709236561811619298403053716616639454566470272723522706128895998978532717958098304687575080994580103659029262908644654206699921037319181336949269588593693448866194257649681178949180038953144341479949197498423519495242071749558710486697180299670088877819051932086552482831858447392367499994142720635564657162683649725072864102300263717302502356495066637389784009727773525420414243921951652275491367317141893347401266887522663881914372705614248038658842142173423269133480632908892550155219164816930446640029345691837639606791773115608631864014645351616918875006163093432193200697844286852021390737472763883484034759860331394266223163605876259945859111775076831493317997826287716129334146630097987355219639269090565102241095630726272569627634391510214940898180572665400909585137515932965399412995623963383513884072556780159396056970455507162409097854197318448595320998029018104792496977409118556878625467779734482379205031242406735586934460744914282810240341820078762536560586625095992042701728219469099997045664400390169607736388821522842205242730836126827810437517279794269304644571931319789470043037417374099515899247691132759232856522813551641017171700352643433727522679793927652943511862674069057074437369914286017475212511431634345125149232159622599588375439412114703346074634703421788233624393001742762222620574372931894933303312030994624464367663225779759758663654620520503712405837997038394993330509805682027727249408507756715508657029757022711359860988686650728258153346696560830572322772568605797087485478695824997618406371548592150929054422782189765135310149100821902703759994841826621513365909431776735417249267982979132917343031528450455724558452600317463304921252804907603622395635724282733181813359544483060163966550516705364370889761233946151876226887567562210560735368711561983041067622568159351254945186535065125211322533051554071706108427781166846357611269731995466438230600023312330143479462978294146373571068323451527879197902826597111545779450918799007358393079253254891719880742967981278684576527441262650784627396184853727289173446814715571261072166514644911917688714043768652419975806326022611486441790700105701039431354502061916619516844643812497846261707446601792285721119333018398687674140786822732801883430341791921753914284709727814758232705900137151891226067081520446137469378805091308511646759253401195355461875989055692505787577114373533724571572889590934402137072226470635417450220092571875123581969070615255410700521939132886500909651749520125264749293516413447284718954003354495307205397911541999678790602288735929084103376915937935763203025953367160613743301768805095224225897889512818055795279316698125932243782113130752219184305534123897429226564690500637589650785078778755438554682136519445451445783112981907748641191104332725292234097809813019532696289294544060693129022291503039256778514144741741223227279083229619322665247763327445924595197740768397386270383089137094717647377714229062731758606244618678537292662193563050068145269246777317336648539685189718784446395910175467900881843535191301264478877129450068833022254480368957964890289286707997339260564124089956292670123828665662896137774588696929646597944146473151833197221328983707252742047030975255815887014328289548095923819890014243926419942279421820753129672637875991227179010248192196889373118446394833673352930852018205757428231941357078328908168694184212055410614011263598187735780434413808335421074671223298370155609845331811733558892383961617072774108608774399384528048106257551924281219585984400755861982455220685866888562715897664558946910239396064652791724809578747252495538224384110155883200040109826953783479301375950562987152250277818452620860477716764159851746628953819109861913279921877918160614124156218771071681887138054680046869368630723067064760566794022006409259372853022640853892998023224446692467257536409913455019717318634811016571912722201489430545763823539587040324241371848872107770759337382948221637379646990003175332632044822225525939774527080824932127301011716282275684745067197804507140396241273820975780408778308666215414982885475510150149394395616956974142259117343904552808160707657627058485776145962756856491579823173077728496927904334703594884553975561657233751298757912524513200339761433972372269592467148516620840203491092273811492993554918620548194347970979633032937814259315918378847815593187891463961456791755010358702925349420015817382608641503840594348747410243840024573382009107321166085249504741645110102034503272454298720195976981817243572052065213049187385434428974665074566505471656867296056427343817487255444496025508243253203642428131565619974005024278230564858137025159282910911169829386116328180975347718262851732589462716451915745495828971595684580019332374111441426559211293211685725978881190431233368118627538481625720427085179015715491480648046676166962065384515514788737200837230705162300172335217845558138924366998474009727958616921142364484407186678073537830801638397839442426585118834097334859778805813473945800101171037932963940140878724053681549650557774960183206788312885997675483856810254052750688912196658670356835105900721968679981723754987531377444337955571518978694422932182563372174334800140999434626400135289838976318898667908631797621670555852744223580959134806446614058903052647770731040418441825170640127717835801682432652963851656487517742509118060106555961222431138011517467007903885689782213410511702383818577829838710777056913092267307771891426432199706618125087886734891526423483656938641749498410250666942348510123714799384890914891548222676043299208594187048897468239936029018994504506967960351181898376446966828568314766004217866789901848307571369088643175353682871833048336999228083396602859535103388858825186638702753469043780108656617770718183939482637926087848788986330569198959365765939311039534709487514924469276914484863458436652887150125945043878488091083495921127460509390415631037410957426292627255669830850513773414103169215995131461948978685268413584392189284169067745680024293971851260748084344754895671863836904121372281364747937808555616713561005499050684382034271944753374196979327150325948872755313057249098258654827751552331671514075529484992483975109664640854267492387078945089482059576917639578205089759351791091556137484945257287768378479020877130025261746172904178708256139745134415770776783272286585200375965882318611709812532451759961061392512246109136980176802903265159929194697645882579789015782453500780441241029305560523996374473902035537200225983578479184376748115335041491672484844938758289098453198080809093842951196981565848738717984223998321969111634857553315676130570560469353988474275699067496465645150837915559609343676146297691881660555230720592501229844496527740948446800650037628068642132532728153086906821294548593436307432074715874973714589551014680180195926604690404238468962156520469518614885646917158648869263833196883053792283390849618062437629056960551133522281196000864132118332401807037224027365253369532977201673054165213603984683049561245260402997837504513974410573008945978609391510220243906329776711173231881063302140089040719552943771519630543193114065804766161253352281610635291847837694909837902073282472603678027763411972029066565295455683176527548540267700556071034744260008200843156005706341350969416646914314228344354674076409436834822920156506977137517236669998796303936760997732080250151368333058211435517097902634590809461262901038512011702428012885432240102271750571052372348721235576049797941595139303970242490493836324611029734701361418682673245786146315932175417278867625279480473490431309120595117918249857621725911843018801091019174631986931256560582518523532072929284415672174384444343762905242315211416902977540729832152843708513965638774022788582969036940474733177220115874194199331289283678958556892837569538190985760870147961130633230745110926195438755092470873940297564500591454196538486909314020214045224873529911378852459636922764024616453900913566155250164807036332736014000417538853824742923220576512963242787716894217632470099511568225587095623286333580482276591762557203875081954807451791452991821054556731727899963202572485417413396005516976487801006598392893562602639467014372355441863240049827294304951034790687136599129473586014862045340033842826311015359988492814572212140305926112344775411638866933617894708132458975307305891313328163764241423477763546175616966741713873793665464184254970166746443104063663983783608984021400333605539872526997681368702982604730694566939756529478031822955717852077241950438269638589129303821001436699250245382842639571982958722336081912672018291817891536774552248182525998489675478154992028075438937867629599677056714713068913239071340814090932251794458771274869765643793151279063125135383515809388684408005641547821300569518421211938317948209593677568577459121485994960598255214753959304164876815332296893187348520038005128061359468959998142534085816986554862460228013036932423720552072585694587732753465058288263649842686344561773244328910570208992802062833484707367379906591224093258699715673912224815791613212181077453884532823027391287604181351331815008952162825034856345785622659260558375502121077863231948072383592307943438701929540918848352358438838397621167538594104058923349723464209941214520901839099966663634422360306833843343063234262954880699233509681133337677621488721434120243816931040478159850462158535087784309579355354007297120228742839066684046738515551856109518327251608046572561547982030304194779705689320603587699822861458911415275821102026454579533868563013647679565151234255608544647813062880564865780905358952688319004582172913716704944090344885570348206788929233223086925002697740296023703146504792469644378792005306240652595372279170224847322222196209016943551516664993045310195543596094306039464489804105296916336983789612621715338731513662113473987758445206738720673450161230079207560605447515982971732453778252473637778420905459010557401847849280978369802468868359751509465907665619026076830334285498723610251410604077742293082169532604824641577186427509589509417690746926740903314452190668717334592502163188998102781418455895314553337963991230938134183727892579017004042136319538162894043798029114271567222548171060331393361732200443331567096115139119785006995294967950474082965364781280517100171708450582520563259569771261989790014299279878390951080577950595768304514672516350014020155679080612363264663970369346260124506120729811666650320034923083572556218703405619752764969925217808050717730653490414939806541741178688245600342563427030864430972243936560001000637391786301668447499313667755483174057888538224942542982540991073310700612769036208719928838421700503831675874753869377749257228215370109973544674880086355031277040491786515865181800490376292281875688191277452180861374379748173536701772241730875661240449677050783971079830477110827871650112290346916664517803163156602812372394985162933385499455080155581035148711763108701427212142380114999595031631880605443946847563868764937544217771753190956534366477354236498609439681297714068989682845207791048170367669587365359757774381998581511967714122513635543232815433852552199306645052751666764945237124022658114929263216864457044550373053861658719586379490152179732050891868981992588010926881343207028866296799581202806495155030739749502493075307067088440392370096158992268084666309924969520994065258947011175467135197627265984037098520093119338083613821960276309548725439712804897456091723756710135866439683835022616119992537510859635812435306549071633688902802129089543647664324575896138721215421992225441911031386739435248669530890303935560170527501150692243019879354783950869837364465578627026535204815370871666784309908300539969806772786404394906608385684010036302826358340653839048345418552170319761880499615769143517409950225303078101196962827045580772988795037207061563215922263431798466437462739304065391434311729231811536416153344460964266012025682828237022823873510745599440417785994388526906484472483580686959817803871611388348388433941744050137453192847250311812766802537969938987874549782608229179652032634941602800410148813171447767406899491210055771109021460850482454833653124309203705987684373978353281320993170180669759933435360385982644793579672202379793415851187311230428299745754018323144976172769590192932559716307168354818532667792966021305708132942010852878350317700055665636133034103130951275404832278698257540367758452017111269175079140642107123956393269733636288426350496773134417342927020306479057742669126225874373795602291086105318029575290904370420343894846010548852951497256106078870357370463858358860987416189023933948783549601012391119584310330198126182455001737713710762387725002690818163526798740281411898522279267117200839006322508057626100822387584168660520091905242175117851492836821406773348136503153928260391087913816971781138913538164821282262246727075702921387050529086890193430266882925645266946611013367918040860633120281972941033432534693378426770601599884867028816499959448424352175808886577014344243846033319198422774056579373109934629484631496126279387873202687632009101687716619554908485858704400846913985123205926332382939373291537654466583253784399164070514632787599465719569261569746509425581888335023729200659264793156677104314962402713578363812438574852256667682533956427694885418474974779601614549760134466899441210247234850172388887738844741307048054472872176324052976750001281080437480535859109369606629391459112952722144712829875481802443339781652833133181391599720377823542299755339668612993218611378556578252253643998249372359017618021061790257558557678796093128594679333118507285854195853448863884610139810591550788270973543174778166481381204621173441301128172458242918782478266587361106885693342238941603616343446807733780256188894277880105721104613327446069373989396835560038289114083896516900342768677943077315221916016421314194647858843411774010936694719885394080219628584524194461518714862295523105093071735338622439497025906318298709936868121796536328782779112439719163388141699591003663658607437782815591018113464730654756015185324447361059058866521817110533166030862666996812333090106585016744483892983876342819028990489019379285005573522803507630496773542265481162536982415399592420198013017480850867187736510104515018703073223415353615179404670711078712692937168174753398542412452956945947623755868046817473352526439999346394059187659285075233990659079257516370293715483761498529043895771613010939629000016401290658647970572892820271443734836488388523428425396676880734330248676641960870279550482282736118611710532894016773592377503661690817899232846081326314546489327011888544629548821693539023631701212512596315127812270121584488987098618763605001463757412831380782168094409837437360329405869216516822828548376752576548888066252978965473503153809754877492443034723420680476458241119212919589423564410511297389796548721610780218610802437787623689552408220001600322961807935110534972182477911115224804696139485637431288965008768438443919395055447978630506041486904582642436967443462000286464889736385014436635737410762018721838323936698521439249608883297982621864414976450835704597479178178182001222026840104383070571915606807952287334898178156769125340832424919990456504539510129057376285517345536911583722947565446804363581557226186529807572773865468238524711964177115830687048714999455787663500957136181004676419497697599253462419915912344929004717527826415434796595836121813862933412025260950762332262290290181893043898918829332474492422371650025630655187456837613311384086362080768508932480621756002917575144233692475801671031533580426505675175270971886443467210232417850315145164572571040947162741788403956055643622395197568267558925614674246270956353807095317702780643738163290298611407588844416617700749760612360521412369737403587555732328336761481854893233189700609056121848770931862696418747133145001802000838987678245954124801797376049826746141347086237642918686183427114010881124530446467901548603662141861100651451315732031072949178611346782989284445758857632509780917772517016187885658024906900610673363237267832695752552657401462591613598273241453596764858751011220725621662562571937093236880737475437850489215292829480315997550213062635097101027549435999545210925496600514778398313283793489638466679915901814995117799118118263652264123863458756210518448599987329354211115771990412333243008577070333454833030027916869575531989632847828503374006319203821906446376002148027668081054509548628820780915726555837228113157224362438963853578686475388104634248841106128992907315119920966902465991702087588608881662232959764276639847588595015706909620624960124533748927066579112601184221053429048355938637864973009248512500020550937225199547745442247862268335867820508103334476073159907223374829215160542214237572153911406623825064791666282452148217881094103608702258877635595457812802871330533445801439840174132163036987169015942754884310008650958999791059281661104378746938042006315756858320073868136550793390985264904290565227257808851481618454924120461351986719855290653032594081274827744845313586049664523270878104516454680525472507823855758495398818920241702698203153865001641708448168799579736952885272436497245593725535653386585159152411032499715951634385638260835608873768980150139606979486204351262445213601233477719048418358282841743075790994078081813656559081739587838436361161046935714310307470420264333469235361012570089429026175208246140146681131737630706018612900203144243649612585908182724230886176748919316876811302648537234677659769842485403340386674137495614350768174513762603522731194409101480503000798483503405864169022738386195490744280473636139580396995505613707898412506942610457573866788269326187875909576618747396616340319992781899354968258258143877747923706862890656302138483252655307071453869576696920233153187422123603017679816195970745143342099628788415005314094409636447265552200969277910938091699190348918685604315119488590129392259899491427267605396455653625465186778298435236089530835201336464864213254821278221257313398403961912043911538165298367412967412256137499339428619717477633155904152011899363028606165888986403979853205978480738680696647583254348812341428757538593008051831195076520688469506318028458317117672035254764313847997290938980969769522280963067408176312917478776794335345281499695844129714524585486208316039405956474646358465649658721758052297793574606906737854254510196254981439727499023937739202672469326761794228687743614167785224221299753030269053123136276081537985926222188702920859334362183631510586959092394969493937619735437208109772586453341320627727696993442573258902402690900736464355360332129806107750255706709716806585091683532497750845068869725994224831274804431753714802593501989574711362208177775149635055846294254279694917614992457237398714712154534369036384454781104658057274877876186731935350652684470193708100653350606540908661226832883021468143405606595423808939866214632287070457438215972397037450291534526532909097002664488015100946572918943920583841255264325739906154762216593834454378829655986845611740458239716137015257492184785696724872155546003901688551689941879026497186572277924948523333029734634587167522748818089184475844640125327824364994978294605594816465743787212922082901348913975836751497254633984773445394452420674591666486527004662906289076055557912441818644915099367503815079455698520208917463542179296270990498909511497902446346536286446159742843834543851290983141063243997114347781219022326882554519945383591618639095092677359615208901275746643534414685328053315341100357199923366224712668277099764748206252097315102231496705323087090387593543874375024678599895135962387562774245636313229693285995635941943299577560233332558327146546554264576334305581209519679049893333504007512824277312501391660670619637689250948488020364755789609223631281060817456157818782931681930551543347290272909995989399898871602130852776191239028385560988564144962181113491960741596779528003052417658826612579171002623304197481887649215661283014481963880106399724751568440642913681712522550910111095628757383734972972337919846411521770309831543683064414983310108323818469510369595550318889633852398347381879665669508115704489014517281449986448738492657087336760945583745499827321268437879714562115877204739240985096550709635248331790104946709016915017883899936679485632666465861993185719455171117287970940040993917250432661599268271396747556145762028471954625932807006840360281138906231329283981797767000202675713097007825257260174162485549210421059078771648415742459900192482833095911379778959407386200614425760353549208604589351302474327477634793689383673920868313672342079604565470289736245188823890303922133188001655117586569162302752542354205674696197822448247340543768871679984753642110165207238695997448073794689854578291207202643119544006061093422495480044888647661013861529614467054540781899218531988191188886776005001908846281638345037387590226433512953492520159809963999916490117569110979568580863091550785922832422850408337397975081415109521992101916769295662296527285669742888707862912368676710667397577175233001160882789293364437484712773375875732116605708051794098701721446988984075721571485693903819832586379726329410905468135119066467764813406784791856399739384035259525004276411284200864251434865583711414707557639138701990417523723525342898582924794901399921446345796820110419124790103231750389723890462732701752300404016502942517812087089106973036984020262358265641959169161846966130553850605011470155937787775199747818808296650350228954073115525504664487559545599854275183662370309509879798334502632403082881463250165328131722353595262254866718184478172984191016460670018576711695637671320624587284755638415750510855019506156215467176446045447312206734395648590762512098052803217300990820918830631624183079669741146739902284300942902108582733844798939709765603246574873291212651481989353639733327758283203810230840878499283046245084867996377140629716480090191970152000865810776234880264239494633933089806332362926907333927310272753129823341855118666991089050307966124667830707378023209252900763025002543701216259740050748531248564022641245742353542819856160204799262870785852556862576013513716260045706001330481010484374891927801861375356768630367689739385480258118524444877458843268726141060510882239600497071148340588357764534809005387466810320141016520395809208828957834316175544216740692962053067528819387148623098206137713032021298692270816705821240041199929870885817760632116502608514075387670183661926255155692275760529229081800326749526000830613777156320720988237032066541186735474117095226526168219869157221996158718311816811190634495740390599495247840228948624632048408393640864812524457144430846812405062888323430933795597395171436512895154506306845910624105277842910699293109856137864502196033815690182049023365674725622857565161671930712477904658196403078463268944303306307376430565566186875312218564114513173659996882053561010675810107775105233886849925817006997289002097069246386065145719202431438663652597287061613830793889792645583984013168333854985560384468807894049072572862645496297877367850383949733223864933966940902084714777037932224872374523992864749794086262743291665493972107539961223384337056998212551387886755867682568066439605826087287573639978106615621385408408665662562757741681037596402416161062297011155083168113989884678352935088803064376628197129777773218643797757189199172782768187625499605537338803019676973042602944290293347424573967902651469675558039025480098808713614390972406697583600361337877647535739872357749636572252307707703965534600655365032519700564987295748932463838259779153285193225122678867528627727720679580622504336264202867091073514475191539589787795532231116285994427179782999094801344996371613392485995740666605261608583429695007791896091951628492461265316226968357615113152732788088714352613414758633980492124619279487445843884860721065310873102135796071485906081542652074041220889714136890890311374175000406120838380755350674871867179013709641725210260298355078906550693352160798506792258080183396438260823032464896314933214850940255397977150411325139209380590094940118222508813685367163162859562537868702234444757628941047823728404954127683784842334975934011638858032707874688526145877143491647393883051079972743833709760180507366268028779497832644913273987847171446497591753564668026158601303254184729485643520294648452037359093844820802170407693087766241062593715126020582600492077746717164448186931964858568885628031512581450771427192562843257344835765238336859186689305006247598758622373161805560571552892852815276634685004492165802605284663619622521783226570222293246750845367935546436044956188866980442019550053562187626721233145261884326035762399942009560259017318972647621116321879512850586858588897393840762559048295064012360942798376824836746808380147422898577662392788887524147579433721569291024163097290833995646317171526376620363139920481515817638265935905111210066850642105694468510410557844745994352253814991401670429371294031667369471710973709713485747782099960723715852561125529006717395264591863956758694367169679287194559617705043639170554577368909583459355887188560762251648805025769094801724992959949499444594702105227807468138411543196291540512590535814569116285469518071114371869772118857506879380291023579124283987519160547010257435411433993737953557905855179479067681627916803418672509380418618344985179363628287036223881126887912965638804824462369937259658872507090726084821631762558676471038897892888436980018771908728083173782495025768669100337641687104631181372329584275329952993131917323009795956876481177680507788330791197354497306883468099738678136775864698208038495929213349679796210624345319172156081073986525422838846860802893881612854357774232500838564000261426982996526315170361506855703080083552151323904276111100387233329678473992040370921906131926549253835608385107050628853526084076688544708760573425278432729305263272919803093432853366172963618238651738027735216105208696659584374410541873805699957929885767653649875056634790855105802103438223488593989842402586816822845430165117282878164910607929056854662295108091437687873171335710928614612930491144105117948926649071711217379546871596013971531243342696995194384162652581739688715057985088696863629853889114461667592827489126261491695564505762506456299975189816510618482183719559256937808217812325971666057672586954547923426461072122599824633781451368997287106560904372275617950558608650891250389595127723672277088622024366051447568303166980053303635653023760029914953349472001283082425581312331852336641583979301712177119741155320771995416546852029745811005360732125381160903609995558498800435660276090510016226059815607678527447684601360881581705354381563999771956764355174312152941827526267419407617245686521730852291632727607181937194333448770084567789977373619573430325086647514059283706740480737527436228072128288034426406229490318682438802973762292584177443110917973039861945870115535500270803599819405371948502503977540511061788148980773247884692162860646258057296144647636792888414964880766211690280082329175889823591972984616829254472263379530178219561813570364558601664903034253228819009119851987066402117900442002997390051166358280658170972335455634618467219553373018911251654766388816958801743048030145097843830353724241919390572688370106785300638340431075142583751643042934686885997474089624545545452958257040084055885126441851378583046389548701291335615711004838851720163666775910975910257777701608765137550965334656838702451545727094844041797380889697279538219623304482336038112204051104225143136931007462924579500468137662440765399740961531223054874681152558515052384793520804537134204810866959113090719582418632039587730272197337147862109028058839122742986812564444814610179312219418940440202074198008440238087119324595145805416770514811796240737946845387407771900193610446197490495123782548240336080053280372825149945505208823796125267953781749376636350294234945094812254986252719871868710340199965619206917740604916842106102819477139188206194513328059951901637545102642060964746378507603892682927058029003085597859219920698911597099975816397436409192844820774933750409634949211449716236777703995670502237111104292256136562729525071399003956364219719056736295339171994582463313505245169003987928119121889413332845737281947140965261896358612426736685388558808492460744998104723120492030715479648407812972188207940803643216833996408032807300353241284217604967668504189572407796125223843677618222288682904866746358532856427612893715290096943726745939418995818317574235524487764887106720728904351949672878180077068996583277818359836614604842621217031051852308497386537653554992487870400465117380818036898177699016642609837675480755602427632092405624584436300558815938102908596541022612484683699071185373845730929948019075011838235800019577614712822241357583642570480984151825418912288157369438329827323047777159759482979450356491754781672554509475813464333156936682038834583857852402341345902497673799536782005826477120764820846541718204414029880163789589278297041870446227345033040375853367222225852704224491193852375234103899443123969597798647551588979207085405242824513494424313619060679532025289027387290606848107762372117040447473126037491501570398499527279880694198725562827061684723703878624146807125848960434047792998361020668231963290476777342432384776367904415783338914271413401614676394790653097139791333162776373822636987481695814828446210329485759438135417349166641384566096870271226409817515910634995184636127566885993914761946282174960659893333425964328829989188234516455754951472042923647234354360253460897530261091509178354869325022435440648479386947385779092052092299856196270662386709425680950839645741281055473621119581003182643433589946603335932873006258839316117887604463328634358156630243712478902392778571496344814772561930085406409844325817306254361823075066693887260599416953772716507996762042837490123249976233792506014374014100052512642123521058882659788987240069961987037036096141733188148914594554967330657819970440247616564334491010068755744675309606304948991959536451536931699821853739150703823105176988660318656434252587625047052256101440741051078738349040553948403825188259232174409330104464045289903982921289901716412456799423355769371215493531726179940917926018169270418869340927674025435236710467755099440645140474805211925478961890320220886029164069911462406698867895883963245677794102561230529945695474418540118498861884493698852039503992424601559801983995000468972967947690164548219448394602430087696758887157371276604826465212353354202821685347451328857929968970294960516126903493003477433006905323986978379819472880344833784005606167790833300014126654039970187690401758321001620500399923410053711116864391437332054875843404710201584505968338721291002092728074118733024950307595215095954880859333275258755672286067647602947337552518483246591676492749080924971141034139934586093776465400948104226715634693181138977378142096884083958651368531890615444082582376308203618038468442939793157977212254308908237744478566970751649337947712353375001986529812276625723831527467102158428089966435764681225738857475103020747621922853847117983816641136531492089449307387345464813622400898457434763171195168879590303729434970759073490329493986143122753062644813098306338785510730372014504578521613664951081978182094112660813195146900855248709416498015070464994689885351391390057110025138430151074970743341803127388469839472955261769520328652539885703163371939724202290602142805886377804264651509175653943044465575730718184885370175206124610024219037232247191908792799091323873231790628070899369074847962909699883035724027837723796726516006448448803642408711585079849186751017737392444264472537201605013199150664916979001124289234590932042747468862332751797472540997973620673185163897493901620018155873374645142759200646362173975736354518173449699461055835623953714402177582147346272965268257752413324057861878032967852259278010418818758828769023454010230503757068063779065624326682982661901334992388786320128817238975431235386553311791526243020095431622057497683694977577662137367347877790771867151464640985420248926319685575719705211904959030677988651176085304045286301554355738449208785126097440984190058842342536817487626005146928903829388229915825656592124833109065402132771634132314124233008056477747407659935486330318637714708592982535388009160336814203158526774647540894441472075904422189311218140238957769053180575380055691266162140962192910962419063568271958949228122238950681141074373345788519251122582207967158102218452248522964417693096544499193755833965133606101052177898673784269607946347910410266065641423405865849832249064197483592209438596786816250946826839720344638032508418893967054000582647025896916995019407805431112877665153682899523876980740159643624620970023615657521411826433208748053903133924531881046584068170301032240722720971553906884268752079915718903293407860543318405076023984092030383532318746346800843523852718177219800460852139471285532191186560461074921210147463215606033693633264444396917517443749709355149753780223956359550767293146091396022607275964489683931486818510659228152241083786382013541521020394510648856264456395292003354023355529715806540371657827694100341501205549871754970110399098299247535766478664279855874964589252477171900830454029626346223559369964522971328605849212122674971281020025437264053518877585005071471123109118230921112553552416840290017218805027447937844165962579748565481480591395527876226791094354374505333059696383731741132524209342329977729632667982271699007724764541079584120036833716183557094567651081291242138995445484422285446503885969628219318391550877177301152468472940781419714626330374245999674199256603556325194025324802430975945205875006834729922710024212033931453353767184336502079058372822635563254559014644581618773785405187661154735253258799868446927640964813329533356715545947815292705044578288384683395587143953172204559080776511769425479400598484188014814102673325433673458008534326991944540516163971419526715097943036754725507229785332603923780297130028297863217971744314698970247215252861048305317799296758855218428034070039327040088682899842949314116829819494917313252890598525152298849774651220465184495620221063384092571425286183007776989683156396418050157505897104828381127246009367647671588316839805237086827185743511912692365165711089663787326379993199308621137268984952656088816629594483802429538181692622228912460948812871760381857009953057219628275599000255124821689784054216861615452615007476281290332012821488435690500346639692387656769157469458501913790096847543315942792925897971987572214347158460382752033257438725813581688655769961826493391959368051527297706413861667501209211948965528202036857035463692920314731736475214429837582391930623109628177701010718756831162575802159433531091733481526476944723043793349299094692025858816105549352027897242414888887721174189019227577250846230541783152142040381182096411534295262810157508514771416960323510680856124191814686860055996977581982910189337568197166698249228786685959389874866019787505252517060442120626418400513457304046285124123711394324923661030761327748277314066144168670018688355633284713003088780635257732799451162629901279769226925394423815128953688681948763879548642688835887817534636830699314045960371824200810697767767069545510708322523642811493502620638678732040702171903524374315124493082275705646099678886128947716020656931154397639350099508710152514501851759964391320562287033592711786153837973300548895460630930289277151435337650729460179682799418015403920766431302306916557070355986504870621731874091811989795501984662874305571005830855394771420682817132481906012139393109132846140404246166789044665861953100908223535783719129908202199010244102646177375172800972921880036710546127674752844330000886063101033651688790708586102866012567490175107331592259197174169937045585212854615335796742615058610424929176779830593040068836497180298132340568136698603474540971689454313911142110720030189915687588960934203413807200020594053775693869215557858055726607165513284086535273105515190041249517069126787798613701035869390576045114376203507182925586574853143638882527144063093937782827308067254470013296849773660073610082153662399906075560309479762098375690417610273925796520917116308563797907916817492736137067222458628545339345744974338292976640216278285266558673263142392247245240813177933818886848235393923776847487858635379731346501833320058855153450829582200941552688585817118561177706407323375646447813769711573381066873866986855171664309353571556537707411505237363120616073480096754663530081706074987341910851274815618386278344697195439039226108150079126877827088701867591393259868194917547354588787927768731171456709062188348429197434280414499263999720821381834561534126491258920856848169599373543074090194857857007924424374780273952168605387347398021102936888242976546331287414398227982801389154812570449243241096523009502015534721705800296912135124036964243487351954038317434479763009465778252051902731046987167273530293865462084436511954374117916682940046698302923870425916824758012768127909561261451279513035076525608618941467250549911506287117533067822217721673373564959712846142897476412122807897556900479893177099799204276418371382860088685403098857822930985091761561354044010256742528545343063368794847216212800392437352758168839145676944591309850594696249835854924078942651268425774483241635767560732554788677117893589390379386896653789890013574918078791705652281002178840501934860436620013801406243597050296713042921706161062356983400976522273990630375777364075642236809761393683800296529549443666439655112330175992534558365946381890428346165608206552960354101775976824862673426958658869637858457942160032875905906534027116165657320368799906568241184332844606995992216058856430034939349856578317003132549276284992800225022212343180253146565995748347586012688463901698357455117206274736431086274827799667041844206096108738994358157981679552680389386732931414821415831561523013456504854972217298430025455991750099170950575965020567271565425680492384030880173455601269585838903545565096434634287575624651854205911291946625637806582750207314819897489131426735549343597167963542026689451897800451677391892477468887829850052472562654490033491531891324797449706439046371324764973352757114712716360355250455200218161191819993098961292357435155848413815062666564486833419301380658862572296892761558128443992837129876317036361953954202859666282180613639262270016568369520129901862611710355738312379507597884696704907687347677946498510671379106581089564070435782317156660978751928396485630314921332697750292680164263902469994192593190224577279133723627913102659027065716467465897707967707911695669909469876757968333421936735664432208843599052957528295849987849810570156011654988405512732644336344147379106469974560912980289330051559744165808001529335079842084851379813228599693268972075408227669740492442637102715539358281330906534547428808071984125809924182964991202730127508460784825234403528654716548914235424345222242531547096422760036350248513061911373240370223453918390152658844902635581111351776669830305462290043115492708282765879054033774833749521280126614931850432003523658972513150207237021339445991293101782580698370579770399227019658150794929012339903124177782273157976441812940923399886758994399637482450184042923345344328926453387579814851249036413609309326750871419394038137933573148790467942785239128096031853540468850718665491205140853506673883324875559180355114279989414031041938545925710994910542991682394341180240094317186431731602299824559783388478534705109098510102938512011754580348573429434795949038080953599215208526130171470510487746610634741761226224958620624646743649573743374932673791781295524099727126225983685366230830064589997558317316172987975979650249894070915447893957823517692937012566367815786933404769477104764865752237634134807176461140741856100498055566659841371278052681662731761137438232176883707802555870290618515423109802320821654975717340708299046156061076977691893527776184032527165805219916624943402363271437889722602602524917880579839244357961444570824374914842511490314379966312229035582099431254645407439679927951876221843808622372714312229759156924979272932299892230492960543418710500753729742118788739762308047306287863592402369679428864956845922664926640825141136709364846731318107177378531759254187448583051962736627492363665953746397991032363971743219850245055680828752207949544426210415524569211218205888546442458537468119971688461376034918512524908116578631191618058790957249136170785903417451494034371252563071782555727415727144422269988502345395553482686911401481881752801447737929737087081640711897833005691113907763975255527406321098168821580690104857304883454465749659599689135751816252040907558618146727970275297586934863762772317580365709489335410888141461415826008699076358517810910577448875005473281534905553439684945110960828519850464517738885209370414005206800446997357769198563465470024840689699867001714592730978266030118755371412253731308551692218951920449696787703315557812041076923090044412074199887281768739078112611919205477829882105159795615208342180695080421574811097667933514801047673912830284852133469612947238172482685126643120198090790182980953986686225996003608649200395815190566209920541647667357911919335688537652938994765500203686811528066844481334365013939002174133679890200087673738492143409123036662697140348027161531688510418525897589204073426391274574198211433334877703362082800547326922672069459448270798860680473482332820875462777705942805992293320241531364029070659452903642062699921431797664154067943709104742833917810888401115659558986497083845284951463489074147169232754244463373273969957749741920157267931904752989448716244755994956160434354717620318227250922878244658145517118418511146400463120078016304034458164830113314352302002655669853527913375869981522212239380435837868109932222209099296844673526390133570655921883776895489782732916820111171609177417071863870540664825573841948509806355696036206935880997224688052020483475051219519672022254104175150938434369307029153262271741427466531352807918265888169329901147104423768198826182450166405023454925829196928148517051425266370434578415477534579392541938730649617517407434116139190803218135094656356287954780660363565734360458997099270576724697635521652794606113244327311694976670376634425371673319090599316361793130509597804414580299162018144698706318095507586557097344096494312300587665484383530072203504515994039516328924003431350562726634465703585881274241551606490461231628677796571207680204275638332042104517573767224418596276511207314585013115823722169163010548632021324302348722630947073465478051107151068587277751901987769977774331702461108023455272580593051474566067214453205381460051476715141759268310406608484887968702797560676464715161403670609663613795151713681426185681334774455321755003498692486022737418032268384377730411669508500501304446859801072602227689165737935353525201532365067209746497187762276323054356955168555780774020526343127356531424475559997627435076400842866653712267989467010415327041337935139726026298471341044742817987482413563100526322817754651969353077279282384503967882468056381247356440814089779074980524207571992572360815095671748766294954398935835288049477817634993798835225711077582180581163949135434347908813071415767779046370209523539588617337655816190894067625438805853815624956064295847540336056821909993011262169407888589518640343522733739194412182192561073917563413074620635974118268320009015498566926602141344206504494907622947567677794590009885612784649142860525159300562333705970396600290480227538987712917782052758120206847020734405692357810810874670470172867586205108588063966679196302024901380560220266075208543082851355401980060835929120177841315916961529884666572723961094529228883524733597694110596821666003752529176164811508054404668122361228557199886431529871594241128091173294643965789211827424903124390939043385642829821676026725558775756887473839403917300367822035508635213365004607890212248455478498459868680983747402650890000274477932163593646608703553798764929114934740859631785105835670501708932992351368023472270026922441462509434430836524638376818374703088907586148939127422903847467093798066871220077614575885869590674837996733976788929464090442606338755240808169184803745142492214089182378767493874077773960451897327133291615816786065385087536859223407798367970635519718357902241294518186474165735320196791132951465226480828999085137170695877794698885570991626452793248511137825754993295077887235368766584981929656045511077101566009378172512939468853482784040431199271805872755918944511728761587011927268714360351936535918998806708393038103156206237858386947330182686853192045298030504201465321057911386806967688549991854603715640761956189162956564590974720100047945488110478540030948352277891131246932650081987093811865033815814780307663560519163314366400149426414466899617918782505115822307660651571586462631199628986733166130141658956366551462294824759343099240697283451975361381856302811416143508834050963774939214542506719749558936708522542804546001525475416407639221367133973723091605684954419496064542588231297478832156992402926048223104157078017885060411272964284933839665390906754788940794286205688436583517296800244765196066968873298170216268414169104158311717822787729755770496621552398691207639272402718955683469806880823167197545758053727660986510908480915298905225108218214899800923607731915154910200447573764349267910588488561687711165110100286998965239209269382678221117221665086336054742430713843747261492540939614799925149558500190205713527455447621330512241148211880784759410131718202028987644112379679845549783932954641559603108123337745711737838109802628174786871802754837601470023172213784657488611226932644057030241272410960259481659410381334567719302458853877002578506294523433688879150304948017704757620505516217101838450369295505610017278953054577139390538138879482218497987781501409674647224555491893496640712380415233906478383809893261354355022396609164106503423460927686531853418470179587148743942889411618259637209224617221370266879125234084458554532199525534575160347833177462597915528097699298290817906430163285167986386086429701163780115651753856599336903924254025848818638951489548447906663412599727311927717342187623860061862843161305104344840964805791502928700756305825974715068053176245903733127605084445997545422420147370849256138264586820249678057654893252970949344665452200446103240384675599952586501969100947320171170469012315312801656691600648237993315063625041699071028026072721869902935474048414202080363391696919637482330245321242893541080285878581812262605744053232257897966250686375834542019077660016077849308663993744197116943557720855617221563813692395867151646550981693763864624200864151780355716565958690488241212663666735820471899385448224910507056426960966152729933733180045908156291860573022682916646509218743053366823535520609132346677082538948759420097646586316081906945806789126220605859894073196655708655507877227463565143701989647197520996322737452980872919642968744654354678223972882212335101309881142691078815762971054369182670968387248329119787189127155116007455794244676402396521245542677830757535589351072368230099330622525003286365931900605926209618629788621630938794712259650076464077398951915867038570840333134838679964511032080407290719489575877515248552100181486657012568356062310806446914501527695531514317811523889778458540742803659160834084591583839414594582452387269505015879920598794905016528766260066460356970716979202207390716308409695938698760276630210481877800896403299612990234008119893314162948216325071452623053932867890946889383396205126440453335039098216815631305417042289559240385010638747819864315743478942417573146341816810760939532340855330028126883286334985801034025026043020273623389910487033159825302160053450646183201082655231538201345592908358278310838064901674783570855582489152400128539357494611598196450679943312956992502618314962148322746607640693686809436328887361725622872826529922307956811545679482305240989266761465832988059860625454776354161610473810968980701032090415457906163371362983001522894302977174136693346443040967593901035800019097913552881691524642314683962488551885734513047651368650309291749084620642736309756728197667607931015268247066962646210823699714052259322407940610436341678933853237840947901260749435655263587939388239720034567001278099549064614534385816257089374231593736595103320617452823784667261281083516914347193797092224179227236273501634123005679664169273752433194071415102390610290707566117904559520928696966612629472798357052855416509167979764616209299855479575850457429879136313896084678690953734691638253675600870765666724025110807419021150937736805008233925012943292431696149890199755241105053173788287522228392157663852075911035829666646178597560244818352904100130664592602663718367485390506246826171432219469777487374923010046252022220816755151022400582674920161205493334551306469332373845974069618867441356380722952210569674223946980707056814688477012887418054132825037638258690752921697648692616596782011871340434459434197438849768206070780161967925654051865477236554389647733093875847473871354827794179411495380702682818614133217280797393922814931758532289209100558714664785110686638195392345225903765043470128495032785975079595350371763679242235458991003460274644426467593390648764134768285436674831348132018752128076386387712103457126807479295520067971437301457645629884250319897562595850251425796991897156897087074630906824839970937956642936955991101831074692862380737798594700768909296005597362966606138099254268577276016308085794025258259251095908318010154751632294948177491269528985329370819012590699814751589390569566808837313314240087607715539563090738481983063840249181251215741411841644314168224214674075868132296540528627288546607706170320511556492320460537172179101456509646719128914917041008676380000079464891122107460237596361504511616010726955994406605522302775201160420338648645173347063844715903592344614023844560118523601021145939205310285497316216741487882653519388313801779019810366291260963280365801617187414097217528186031350308061342403932828049948229867208378300642372758157210300716831829500580986305975145924644266609684332063666084282327709941720577163555727403807428490050718060982841052885552152977798096101471550303676272770790986496434934752496085485881965405987291311858748042461494626026995202429834441518874007582010146473482478790270081100193757703058293166024930500149800444516677978030314571444017795776261728188804718745383800056755626932266419529425189109245002764757632880625946147012495867870968627646450851229754819412083341116150860484320880931492602511119325492257442942985843248300455553508791766525398017243573157938173883250566967565719029209219741820943846219823127114772200447093259615136584197431719784876530589614161319636737440926085596077627056657394973953699494803707512012461722548615007933224600565629691970018097171787593218553992777870354758454061884348965820772486215535568460157426535270958736151304375110074534438411474466621365748623041114840128196958398235260540498688100639451649481518611529709308772802542846936310527748250838451230120195438188340673735639835859060684176801219315143428788073077418375953044865963507168565545029342549585796276311974421502399853880546445860602795124714276939815947809345673666695603827232581194409585112131357578291405348713064442973457623323931199759042232101484517301323468056265282600703652335479264364374035469310577060036297891386444948427550898869060281843108198176471353381813251097610050060565606981844910715913655272749111233475474447567061018545387280687579693205737223993282904095259448911412815698287984477211122854803235986132895199804355287829702954142408627263648907350725918678794318725436372274686532273772588843523717916003068689733702568424818619448513672990359242203302539383640566831055017762675044544774474513760750204713399525510169913368860990665587097355628028523135031837226218193289093113722456719135074507811157575240673302245039467461014970347885037374918315173696447995560522766782177967144075536396269434301308106567436371006533227369848316605842750160524295621690474490244332255849701626814008060715863820121641123699482002091095589453550449363666767791413681884736073149805652307433899078963565111908725830399392642194559420742992518513917755056719285105445206255901165549587222504000500169882657385758043811135058987760351829861620695051620465526786498880687567194190385814911103208239805402760018445286575386305789881558156029739906009223299407762285500209101797406873371370399518308451277475650711035320300680823270988721868738246167803607786209853928500865238454253972558784113636652648352099903020130470765486298866675283183238628125986366129065370959252373398747951449451160389957310025062387601553848491143821245287258100085443611139182673771412961681157327065687100742877646879015992101768324179110323993635943819355826453081780188024802874766971550567752024090812505416478288632420879278012823338151190566786899896842442715067306839589287061306212188496941319732433818098847659274955439004585148372097173445213199568827197652541892459038174412263208387859911153387442965423596696885524378876826777097119620714274459903136884376582002989969950351806928192079206573910640965423587379472244981389866598877358097839059286735551026102145057906072692649364102069980978766931106814278750810000804051161795523355513490105128702113059926311708737148535706558141425115884921778807925436964479780297232063268804251841016069729407346742248006857491032166550602407608982996315235450432882474132025043980975281052757374513357343399733168654595334699706406751183451338210965386541683319304132428416396659998199133338161704906770749864521016398316041573179894694614003775359258360822220258682829223164856920112696860050652526807445133014577636910133818891464233521693626690567509890652676225242410507774595075637119581949112574537060458440948885394334636814638195128200081861874325984266862855586461083825975903066367206464938173883990930007350110079941375656948556111041104373563571433029336156961126730141939193886976265254600476892585066474043168352523446289759582737417521123204903948108209669145952513085417009145831086590081046149703019304984010935168235666912966767296197199728710432515190175696026261470129288412956981683849924919730456685769060800696760128528518540902976239723641684030714737172351284734392711784269060768889684858724601121654535647350944813254197852530155578149415506325620148134422391161442210023289220450355471720261581431791005893535468754747291136822821934130090362741729252955785873974704048953160331724891814795471058991801111535522658142074570928164065242608761941679491067606325874817494264003504662571113002955607615543296291264630827697375013078412189557481501783196973585733731209257511730789585174201722398617518185496233629615549018720908222803492555184447443656447547591154651699819332241253182724120672821518409445005263407952943043212908432921203360631198241461065768440466476196756176729730048450925884774598815241185917391810737792716635487965321830889934277754130867625045128824932233045005113086143968031295681298343783741060134171658213366988418294644479814169313202468486916750323437649605888184504128493613960954409191658387367970605402363161078564035941712141201910688144457489200816896975344246872297668204721941457936788521163716751784657656091351788893543799436949516836911973281366253275719625360369207490728338358321333155740679695910417940975359970834855704362563635331569214443222911464532746537322525310648990565490925970408610709718724936550517761282753679834267259573741725025672418401015929839256247993350050974819317532431940038334509052045046687350954040242767692161972436758380781288504964430240718835326436487155437924437619989372766871336220452561741869470354732285658038581824042063690027398009122644990739676938355607204246302097233037456953066455621627465521506428019562296562152962580324126862982393867369275762927714011784056923723444416375818924676921631310706647640462705247135196283737219307376101818052720771454066559373979493864869539016908241135747641109617553602983414147825577836830095486363994955853057815665605117221293487071903041018253295815488424990082527687068319172478659438019656518155271617523355013441087452173233915077780787500368516446131801744798426933784292106753497831305144578539888608725345881660779899804192369610382589906219350913642121534320315413302393594928380111804554751180804809119638221640319697355624319328076389174556204350870036706771151638963531060444625727615863344289061572945360774051638904867176451111736094589382660588436894834487302479304592261518776523914503405467253630504631898011540199598491247128863344775808122715831058221875727582482183897496851078133757032647512962272937183912609378060595210995393867193107760662984595079282148177917121945067809549187664369320166105390599115818482596981245703532674805940936919854271800320405532583191798656362970119607750599595556276290648098515346350196754709498910312294225281987662500343300188270102185873342742822220171779125879103566300899232520352587661449177185020268481466588331612421590872064296146226910265859109294038716490902519891103971472069794964235761360269606917833633424788251810671950819885246759489396635356951162777020776861983228566456861589706588636068840310893778105521779716057176478838697678165044739485721792292198347487508342353144078210712517993086404074803277151030541686950954864357379859954988624947452561558155263657255654998048992697494872631140382543713302614134327350119897384622994288382859963163781059843338378798816175586721036745507953631188287450258583867607227445911420511115309095647600790550164793510410943173145364400508518893712673530406215796531489207754077226222201915318093918781869250292309070193983823631141208063386922337367972009470798828918220246750796281160457689532795693451482381594736189637787836010605630702147867646755815700952340576584951496236797007815509788185526381444851215507268360884106423127904395304630213002859396669711494025878256773974889603293222356184143208315158879428534771550989996431667956771123830462950504360119898252980933581467036989417661579838070255494113044402100642435365007623244140533902704213092109018040625786576724410975768038600855671489760575794123637023106702134897159334658944849262296587905761666856276518504172285761050756165345767031002492539198278463324168375848523655320439315354805289422296664785645121328377860720468160362135408126270085079471102999209884486346405400228210785163602749764106401964746360232859374234322188941919949699221837607184493054079989000944300198583605983467490326508743546166071831072612137342822359228878693695602945904793665591053981933712128088091277471120976861726312106141374167443895830569113993684846797829483960863615363117918637921386556855544956783358777034285221353520827038396387592856666094259117871707251710586527055443600338763758389580624517406741350937080638166087945310688537417838305238081632135185882598121876889112140674220552941718850109768012199023160448934568522066164365505582496402960773225038746575811964948461205680068795173039806098681206976903369088414534541432606471652257801228175402652844705396159390257986769467473828904656250822989678151763982776348558301993877590134004617529007580890618593041216465117998863297558845943524408713528820943843010829742326579938641826633176718088027988086456571066847714833265162834173419325796705343637850179907764876299351937053637987125860235803322152208942244536640741596065190998606018775058517922556448334147488770630728474267617375543947404813818982651043055815697759931053564595326731054622722087596886661408071458119021723082921131138336356743073496489029282434414891832611135481099988965085734386726106179603858126150946197477538217292887668183617938931710913853778827583587874047168037374698811808738013510847949590274437940114801515563749067252268268810817919461742435737272792346990687488975033808688027736819932963241844656071256038955620807246387681420547879959626826549975282971535747631933259028426608484509862794696155444556787188141643431642927212204791248283625383041018024122238234054154584474347436188702820432981158696835209213581659810871463077056590437411160601846245633820373798736945006576032753786168141257211225956170890576978214931177644878483216023757464699831698898284147634370051975799645671761654386447887510679552513438321891642400419129275140164404648482697355885489410685656873739190028259734555411268151104461944836903097338655932446657687055962921855400718580527918671625432619534901198050499984739999864728855814193142993622553913624476973625126286813663105501038134976396664973380274136570970171705268771434606580397463314406147585230107701887842385196836510282812690808647246847425605381001004313298781156082026529540969162562011290139756745740800383352738354702703861994948209651339178304521833902518467736889247070397451137855450391134141170335215420499109597207837035340720781836649804860252812046712994567442516602091958598457996026650951931343491582439877548005879134142727491996437326955516730658084991991624783680400112592326943805183890854112272375140867844250166357353312599400652536193502105594255028859082922779869172862695749857394896563103684243698274298374307753180634815833735757052547141032702754816965093507104750385329819252273255395373825937581794326219755330563710975572351599661057626220760819965666827819400551835000911586367954139964084724563682916977509596849017970143561956803916760356671008069264558929583156103786203745051389370360319176151926736077961339587661871473495969372595538045514856281382248942369433458265825284260491319487336261585956036366892972711282319094166537374592424073580675043993086761920595598555161841176966609850045288935233481707396719763407475451986818961529536037075714851725547569113489397778999404638571804200242803847574914772371802267124747291419911302122447542716567965959071697889059362765501553711127442975124373411135147727241560028407117563137404053405512153896304763536124009658014080637680642660947392424564089006319564664625370789218019325592724296330860145730791519384286916154982368495527499745886061753908268064776908532002355539254683057771521950281823965710123206764947717491469980855154751339696794770100419692998647773346031875779422094497944418640491069197097088993474399217899391056995060395235476746244421620059292617570051901071760283392930511282139672134441193469902280380400399580210313749926949912771529027790524145299248209001480279375428469798457409902194017480238325036636503706643628971021487524471890009004324884821011314689544156552083548407863292736727981677087721726624672788732606303697735646045765548042812641360481273697572117338949476172173594273927770950459485902065488383246446435623724058465782041851072862997213434640536405119516955177536998236357921420850086080052341599508136684349314693530440436979220967669735322318955637853789501587873732623249183110185968309446272823839397757534783104874314322658587329265318026951127839471077102238317205001984450388291972392209130230060617639033817129509148381080124975715494302669752372496930057145021110789897697889724970510651343067950801999159680633618725199763226105869818288456270197915799967907949809638815957892473081332565130091785927243481067015344456787137718185116657292257052405543604478809193112309261042265241428327018379245490254042905542918288675741504476381955621969074950379910379839493698537993105967780266491575071956368553118351591035807880134988890281340524220624470718517958434292010783888508340579611075211945678842967944197260918834478564075809414007795873418965774180445738685108124828779140981073049064865191956857559698762182358621500296217296099128136621578636763503809530931182673137035414023368488434844993902882406412779725469254537266489008089645144841730113349252129358327153334879946680608227832806831039672857279431239343994699667333208881097548600150696847244504822277480606022600944729672672649551372487148484974414081386805067462145576884186380627833436014921506626932451554420935361101987781434531016868447035884582309657127271096490509762659442753260026285805850675574446975547998610906334048952916086182611730545290413186431592101126607796956784068691611184720705152156740542914034664336514965087869591605201313460177365226170383347567286029898919183452971584083796662721681949513486948114583667141858545401870569305299602773486919511215340989380337016724715315748982354666912612924969076228530139072720448065475936193165149685047450676447005538281524240861022385093760187545797749141883139573166381816691687173236972681548672503835350511398149965407291893217412771048557741343289807866608598482307025716464190042216616232099018511934001815406044299532986181341847855833716911540729448401290489218881291264992831418539209504102973781074489698041726386279830599659733285248859735496290174386914665828023266144285630794579450636414860539211152905444953699159575789054293853279836888149358444016283328277404785844597191854849876288637793783940676756305838953392279217774659067005599760941440654496379460627323682479476477260733446922968164622940397125384267709475556523864615468673240163812428981893569425016605984520057628669566222867437954286351868843461140591448905335918063639016307384116737862017845903102127128040038163621225513933186334561126683937622925020463209263792493381058623453373983465920469898465187599481101830407049744972370507102232541934883454722469415913647728400094959380889879072470935716637031561642211723126838757853830969431667463781636835610739190033326576609043494721068819150414230410560751330139266104998249610675932529059935361710999405775732383646572151090615611305261480602815562763298731098065002301665754418189034900671439121114531136311635877966123159797437345443071108757392825074316436501094227344234620656073532693846227056158750762779526559688453067185639208824416347731558157387804556923560930611662460006454521336428763888334699415311394651431755732314438013854461133933405938020545437541761360852975051338518625287664317745855077002018244987331541617074282229805223375644440558660976298039832900623131284473879532264398541843547457747210275629092134876138093233590524465915950538278357155772879313956646450492130764549530531533018270776820456398690964063210428421809058868860188012604635596763250502150707102538345844960636768782675399476853004807958316611388580521651783865965908242097148855144256179959597293888086888977033083765145856924566829118172360513987732819506157419754664399196458383622000639297581520459404972122402774574141093914468885850262224037305688532095361337152510766901433576786039890109215860447401936921487104797987796363421939889420360204352219648516915291298304112039069448159256981164293538418658933387885116419327624579310488521777062922477540133888821724164092233478876411217778534989346176095910567282934301555151097706201364324878073460070951056019381989673452421447208827437080810873782323256550357856769358799535248521390095987349749590950389901945100552037275732001145376046942911726128497900720727686362942148872516454830766525718905981817202000969985418871106135074901233846656428329821428062432568864902665756615245620825175914708836628002487801310650923062576474547926967706811126889302788102964326018129176658608661152665109612742605742093263760698438840815060085953430207266545648438652618912526786826932669629344611686660850706764827868045544794777978184795924389075868297076400453042775232185133795485749228179209704869993662889915702834562753265101337778712597920275079447593157473333344792051551208573008710943439031742010478868104130498106081475398790039305745988792141921832265551628990268791042161780068173592296159633615857565850641906344902507681757798276858624990343417944779173740009221739290798678290522449957801055518333777219867826413530675622013678191778915947215061967555910587357411064763174747315045986025852989694534640936449747817025612729076163827734982690180782888445452881322541775462258491459131487143421337819857759768565922755108243378571457905424093066724632794830541483745835512300691937674308783045151938008322350477795094301319367740280128716777434451865400851200633295883928888977389112853645163070339538745558284769630062764817261609979811742565954595708201328425089438924592638091464873728546872418297111095952843136480576707310745556147222030481521733110578853781307310699068401889228427621858280635867621974080635437367807431752526201684069679926217573867922669488418100797571705739938642867584775762571593521280273776726153479856346394437821983611344292284862080600372933749578260815666400761087452474930254566100175068277913398248768449766019737987074833438161541339012313433849451918869318900851768756075137544206463275353735007892726661784504705043767323420783058490216382928150128980782791442675512400939133247672040346038516224085467810397240734608464860843687959973318571418116932918541231998522581915350095477082908117937306215272777405338405004890921514481385731862443649131819595806581924166332668596763940398892332802661268051526591627755009885798444857512423231299386123683632737348076304671185417128311896469438807882564666447568804509599003495624592183544354259375979016065306606311575959797770584637214023202780052749860264320182830847788122092507351753700439365029716913183905041239468803538717324503396283165459733949257956180693851345060275830259874883218112085915497430589742987968635558850943210466828001029800579998238340551966954118031049363141276811906270134053645134541623598715896947223662551709075623490264389907892450971175030699700319925820792100138020526462895221959755350840643228110319673365361197399482779501845050848931617607266766954123406498345831221228028677292859782899447445295567355178753696333957940896351729156154083679680274257670936396474597240881846418575749136245420363700342108238986550305548043505866282080673943871919388132983690426242305943434189202691924156336574624437493346975492580887035790661842319277479820349178302365564149532036848594858346690452368498052331736909559717048361126893982338541624061129685062292406001712794437189824288963470150590424025662722818475715189026391099902141127350495173342796524004226442673956276490283207557813275472898595187347453615163593394564721943024128268888639897556381064641504135733657937194987748143139356355664669997061804260194852534834324744401352444423715160330813684175649157779226266595578493407411789815796815318493419185560252641547839121261719928606487116083025943893973133509957924883066831423763771364007449100907336505534211450213382732791816990522916515916653230824624750535185668369684727863492589121104910506928940854563285060809428479203414877495665905464612521782391175514461739247996566664447790796354654069790038664471197197674914519505836942735118442347475530228044128795601530283258435709434340840042922905144768180973199482353708334966929627321740748122152328644793931733938979415787604264309516204771042458637720699244425793305845695118954409377882603043945579344108979447899237404076302487780133937260068311412345601742225543126688091138448384645560769416838738823406642051283867579067663541435087812100165085732794713936273012862483241866161179220571870846519234617353847792655357965049251519585112678854156720395814925983598791914434595577868232688245126204129505608107566672188822424238431518445762660155547716353584304412282330535434752950715376103998165862245083382074941166685174634597627929617546372819866410501072905612496428259190167880166016232577182496012305253896640967677168511689361583931716188239464256363139950036281778683168721444427386939218653579290011643343471675682508596365374557921074774134475731600710098189743422187014130593397827285142548413882012671676201475205711666660970826509984482220574709012091484917793437869248430136187945067430810057203082847771456002294652327207490672072195670500784495984238792778562029183959379205384234213185374231172605005019331197938549415220212164897066734585911468756248041442385139681403403649592181775911846602251629553401243642573272960987476661226588251642928256774867269898845147197100679146026397637187353052116059231561434587624707864846580372105667141847884629285353523034019499801465162134418505626687527814567925519859332095519085257749777546051199380446741432571706824971403377673572634533231919897436389023807940941328354634313210541836638937248679689058049410962984309887030295739331543970782815207598057725526007381546194149113679888017314230799608861822980731311765552752585495236014624426527029925197694073363550747749390338733457390382091099255603175010452841565878310936628962155895352999763978500841222399005411750206928268999584108908501468576608471481704914680986570768771675852068612320926914013130656724377938717298615464288626327536154947410481987050801630292285029261539925975735016125946879021831524068789052782332337544945714091226099628365162370569316115501894630262175719239630868060762206125740734854581318120823158539875888114732693201064841216833546926669399022057292237085257937016993787532301382026574472671475779611118726989820575029401080276071823273341202144680790134681159385051798217582465906802165791902457030074549710150057141727194994481922867310135099970001724188593383529266634352802737456342300522393676194861085218203672792093259005091238964263376817333333483786069587221346312476772729932128554938025225100796376046689017830850530953051570550641021323000155522882643557671496897630421441346192928779878643328738227144420837689761808315808106949568340559461485726462104501133134522211150872677714819894707391486443026888692655247817118255116309172198203606590910682933676265036705410534058274669947216643470534794582878348809258554119753323961601424635729675133124940950219634490217001509852141378718578974961748912419054651032605920950513179682109715875294506220463000784906055546208162292753805128850878114753488286515365585745671245310311100416250186048388743419563577128430906930345991971164163907923633930090251173872498522316099104675812997339149159242579386560372107939518059850997029958284640075669022409550939057024414876659928791029819610860539837855651602653759350606125495422849608373832201075124046648152999101040816446641398852330183235832371302957125347931201453521905106646296641618862984157982496500021875417030247450438776547654014853523807880912479002016699010472926959359057777943065735655038942103789354720260692333456036276014501735825475155770110991068840744428295080648357918515736429105329630599941436044205751679923848439219511749777070566225648652969418091874124602992803648353706684367566006119541978941411810348656608343358124838417951930316456659392155879039170957154485282515135703851908767051316009591347892089423799826155589399330462930458105352239153422092262360992185298659220037321608774402006098385603092989429751543973286462995383979651950428579200313541042634216764580922708212760626032069933751218467034043894096385199215866018549132854026122948317530993527085490154761573964402348134876796010870461193481725183282929477100528236255988471257201086191724885063546150885116621537342759168825503200939276598634016008707574114780708547732892086007717292044500087123804153047256039403933113666064654397487020736170442013962013610913634115771468466497781017426274618489008558407843667417228790572044634732385058431142924784502721467615839476090691279534428432106806652620384813021979326985928317191512744152668182310034475515449325059351097799818152852305721955847392538911874381663428385061938860638964825018688554516354960393610745855938845974753950910831923297379245576853687867352980381917434890381202917543392757322770909779486951507391991844978066392765380158065217366636772637903859590914416547548629691370213293635721381661545754202911311193688670019033176354580438374850469103921479643504380797111128994690543348672328774713351146467124725340514749965318859049951492927460003322053333168829885424220221261104342011284897152701662744333568090121372267524688973416219527701400713430235298725509206629142004604175857641012210183383676959003009128844198791042971193729355725162619907759481461850498209383284505670980678394305879228274301440185096827590081735897910656686651186877290562766286346637240812750204063840219869571941175279436232859417009537434972907581877450795987007756644857671979968053713868738082083399419641070744353844397983473268548248531459940859232147221749500867358833711022587913050188521064572327677599740501774031342978234828739838219499715609157744097959396420734113164651037350835814181096441133904949713952491398894004620123454001666948307746752027819942231535695467864306399665629595949607262026382557247096467125508014486522025117458518277698063491171652306503295929032364941861830074959098646825136194462731480412892754733979571315529421590463169301837088419175296197537444392936886912690406349686937465246506457771996551091458871110194661513176764090106596471084121121961537189551392572995032250991202828908894275015556956421508597291154706312970964310350855685164578985232688772618462558666022538054073458510439723873049432033423972268002077694826969990438850838774077861916540064445490623796978780317165005866334795042373822383916798210847976861499268482643841762841608581371314121145097808656096587989568749567296102183629772959463562957625323640296630195349704234588117916849179627536662106545767095083261244807372171671771693743658626150887016881096115357882101211107989300005050087358669091331433216629810585906981982834546736020319458151541475210355509622816376669048526545102780130368400946848054240062689291658110507885773694736248577026379776026468791608435978636669266744644470054831652456933204537711397948153583529686998621781112572921615864991554761631707655080144062616603947897796406094833476345753972857147034129376162847762559330583564952408528153238562117921182498113105589358723305644719249674066781293513423869769695063273585699377018610572468945055793910424187255043564193555772948477095545286976648864641930851099155046437618204944956232689334749450266891212880839157888138861084513289979220900050264298556443180867287395060520480262809973802124943186175615308392011039843343929163238018928767217601567447753948768864687984096705986662300171872717052127434638577834981800750403044596563923495976213109496975500880235779885682317984130877899027193760679232536046316534779275081355302040341371144109088011233545096126860823561941603609447830992966359681849725753295597040065510228610092994035780657969885413723951220178353321279271596709686673958479778055748660097029116409879507847173597710677665760267792872036615138889700609102999127670424652338140972729105558478793067540273013363766551080655578524372925857108572821329120677848677687839817919377129500489420392161339346051914343994701363668546602030567048531153036171366088490737013081324401692820582802324240942963544427487685850489747597548378967003068246915542884617186862721610438580388182204181654667491295847431383414127532631531361948245543669720617021472542006113755092535308030347163518958757520251670528371487436910429472436556967815168608239293784604502570823553481404018783257722694504548825161400622628045489051244197053531693137784688018416858629359480091008127560245712504571831799844061137633920363166024098027392099013147145121612019808808599258971244513848258774686536532358718334778577547831146305940470153767124185619608574314826211744767452033816990458761865874232036452032157665492794674197855249199091470468326383648348150054253679611978483416295766136621740236598312040570739490515186223235595939693479367708764930925538237289665516230530161334938439567302976541591028133588827467935756693535239584713300853071758394635616274416337870094441067952707647602875433343696151890919780537089201826443865421257211341868712969229061740244302319611078769038372338947100587660672597020233201533008996864382092213415187625443287624856040614768002496673076066951764236488086639191981931825358009090226862552234219622369712582444966643733406667173430236955977327319319512678244188435904607118830392218430716170312888109378282096631391826181815492982298845823061083731175810937072062713566674131250662483957365330123395611068441577165780071033135433549501606982862330882224103005717438794544050706375496910939494557373733183358969441808114311634863469795396340395112551356081344726047145163666532683147332657526055223126270025220087880918207992021125459017453818469247006210268060313289365921164145653284662842127703225473794619162563269849540548292488411741520268019746172132698735331092598239947366728815088759212874527639518786884938696360186272573237371524530685341350722659464588199654703333992867276040409617193786752209432809054932384982139388781517165580310725764748926403559963040325366142526966848837908252755285275341606227433326396095655735896580123064418910204899903208714213264118383332534683319303672078479610507571938154557221099862951061832410613166857953737238112258598334388325359066611099611198735695927408190080865959299375182220032084524228636166588908533335291922045967406297222515867518590266174831292646250532778306736804854529120037299440717451355156910042310915982754391177249678482293025810622759145644521671767553323913029559548215147102871426680296068539151139378834088424235827449688367001593722071961463000914065630139241213525016143432761596308384747640939940155036603411736724191585270866128241142947585077026300630492283885174133431898415776977441304785981813974651473793821264222829131248542854509202782897335900690829647725748696094865125382635039787646083014119280485265877563569283785814675506527622770693244088750565712826067584552627700074737472262615177979938956219393749324859452123113143351512595272699749969485932086701842319035054276251625510719258064838696946071007589698139710264007091691748751213923713513423094473191061333204497592473366261093459265870483497624740528291618669537789261287360081808467046639842233919061647751901022659022005186683718382905220504728165861160442446322347925952597812978281718272383847563681629845066205773049762170859995989455553206630651285299889892662291767880308490055689917259486146330964767832591652852688664452784108023347349713459292207481311567320904194811678386166014617931222956181578909412590390522361245159246708754504221960498819898735663474728498929294427299117853434345595512299703678722013053395449189841391465489409001815763880659943821277905687816426657891563725005887706784249902703350854093569230782427994502855113495096617323035130816150783173125375865699416863353406026631337112756854036925643228569485052381061314590274883900029003874034355628295806818895357207869108161724074992540379583187812275841370565151138085581342983540970497497759954013183356663978573055300335707506663568419095868001422701615029060884228934829549094962652362270197420604467682213749924858897328813226539094195442314491939564382031324866672933448275540920743067320073530357500474448050512409782382415280478413538197822301252994646802693910372224512544144330107348264113325238911738344589032166738348751058435753387536556876220416167084783638274052853580076141716133489316486842477239851684695129561573905202119552465316159778845462158495005613084946133522569092905176390035373128722103675484511049015497562671038845409112451069652606030708476516905541113466746501945238039814287824977385051829904310840559887893678053337945237747493080646158925516883580218613839901904608961444142491461036152560384687446886773929763337415745487873928147297687026914087081328300183427329325794982239983281245368391266403854608322580284930416742736904043074415085840366729579796216336883478410970176948540086568723242487901113137762562068183329730546540527539039394655539463394298574673496475727867357922326208219101658882399410890392261594347952875258022724653580867502346413230597166094595302665904472279253832317481735379826732853474551159105722904539097513601041803700561643369729710090189317399974471184053506996767386538948711014857706881433376492238268773924475294982879918761906215535239362224051635139915331415504596526654795011060039245212302919311307862103317637203808052560595130115572984772820521867815629489512845813192808839112744947720066847441598692672558127203011159478294458392059605952103971340777159490429468903270616055066072252771684970902355306535416320515179923499643709569634164844172266966881417329139437703617816798601847750258603042285723890442179448963451335199875416080235483197325332457695180633268093754200718989047863050112888549386488075965410157187123898994127568588523492794657532166473417307121932808652941555186239325888949933605330218780394758813319876935073121999549028135216206471902065412162888942699624817674731502128698236264814163506100492058319799416815863529831737152220143113459216292849505172051202812465872128689160312462510474359029775361108387221072923033317011868324290321770505762182497996076808777587126034647174800644035652993888091325674900070940117975086506127646923810375970452055656971860000645143777670254745237316101934923572663266764841257584467514143185692092034866534745273399216870519451238223523146015337778896762060779561145813576985526646104219851664768271328434802753529886427797134847967736964675388154027446733344428034051393868937082548983156215399398243343692576869033603635279255675933062253423124127485751484901689090275515969160712487018463312491358764369465928968213925708472359553748249424381704873111057774815471778518209434760133514097855463945110841823637497995375127244168188793970530757117742440333087457547121347923099596002397053069124282918481661068157086513893176477402436751534930179691978432645900911560159554319926244642495235537666559514831958151736122306411164307308823917823096440192065948024031629323213804057016655686160079796481090823847156177982841574175167434735297197848246724889721816106202678187597785422693948421187271503645777795556850545544185229068808057666965342357678849912614645178579977971120607363744553926931107883028134727828340557255840274547756320903114964456826089106332386985871262274219400760705123014002936557456066183790715936535717477424708624485736808221274172096525277276778334759007392399253006917337592210062612133078882935587436513481794655619630714810198022492401714131793530666399981925914238900509581241476494007624808712544866357317015738727537084058523622550425909970995420097095721728012871862397078846624773654324626768867373432416409900479284612317548671686769226236552135819851734594182323718872970108887841149522878170453333870816501104141122525315559447931354871401069503805672640208482680706624462845415525076964606720873096562570728758441162155238761189236905082007275775655782797332240267853851665368894803984036295024846643205949683854177323391689132662254143990142708292391505045066330518761497528918413558753017202229019492838535530664648253008508529760882223506778473874583241587923383244545779334893351985884686924641733853952757384839176331183042329445876154271518291822429192659442398093527588470875001803568551556967360256685205868900436040946388841737173728829745468970458326529187467972375288938698433395926212485763922884186173832013162545182702791891030699194280543628991362574553845575073805417668498137773447688127381728495660357933168864290480431677454458038671750254837665504838338690188293979847990110914713906044897374737467396381760715188605474842769447734363328582158780882962004902285780951491156664878467350900451544475465974691538264290529847038710471892379827846974042535482285879012347162334304575373895454042632765894187825275619890284836249816609746522134073135831279681148784484445862628990338347236982564054791417112357691691679490885551435975472704905407630978053307186250736256097316143416001629421648184313657057825365768935812680122265057246867173696464620434206384856491375526227853707355486321977080924569029892166977583349163011600329651928429989078726950203950632201958829503625567186904807212063685706803765457501931647123950024068992799928437619641511416111382372170625822147069792664506949894198303723828482808605119831571923619698636807935888086207584722839375950270813628332758608903771520932614364640156973773681864021633698656968060385378611080260902702890828571163938395334385533449671189733979383138467358417035831009581223666420676877606818649443620507218750899248644092580279016562175032167360964000159519599464841162760079476614814722147266853935961529938976894810474963835429683324286682275233271125477265841528964530655690102572661398291247160765052019799147429454343852552589702947266741837420092665119106442047957346341923978837800911481272128231708707558715610465884359372748701171901122264337174574479058326092848602237803241970451175130820817782490384602340040897192354747149812777519146589505873528523496233520255807406455501891632208666825954993526206188099708674294238945318977323548845990757656519828735383472645396337147090138524653512873086714968504066504966621913633251936516500740130838670944055872651008951879804786247838934716664795244377282044737440506038264785037562143501905629497163216988724723709733467607005083020276419829741640722816230417388079576642244307808649083179122781665850404616841222554438776604654781666889317769623676002268691446006074162065277685601100172917652005563885259069587955265515668633696491211117042012792573374817344593599681823626368882665484693609748824100816236464820932024675852491492637049916277120071884084564821613194966990854565008713564022841015392904563438862501611064600067906968217656645896667380516540692545248393316613678190777632757238232582947789886516681410020312416698112002712912137475213214482778121493440064208021234641037396164461582891945088698658713373402350442919289337546076161315747132918437744957416467293665612060604146156633372060905790227192788043991811697641534015396977210547610626093107321823011545076820137142560774208920435523961937896240313028284547550686509119361724245256204360104197104850367651548194335555801424437914968380387924169599556401751440950245178070455260529351262433667341728991100342223298790425206006379534498043747695570119464764476445952024735453121003373203243427148168433126052250333395608561014213156722842705227885114050965769481303920448032534971270252706860969633977372732139062862904279548308061477887369126035032848919044617046506429340357910518494793248830737255161039665318357169966247158817618729692154545405335635976535623383059733519545896046757498629680347463337487823941721240148662292332465940517449959650309219844340862370275967268516844200949368281307741523001097558543426071069124049463601132104752374734375064792136375324544036025821919248256359260791374542142654801606897953477662005321778494859295718109431449382835883785859575208491163001973655422804885307261844786817118221012926081128946574335254777598488467441312118877548991722919661592895480086196980099187868440424511159894762162010159324217431736163372708894787820051723103622498284162833519163553072715960598427739573760157212430321932784378889057245931518250025033319906457129568546696162287593350335927615944651963328413167758801349783228008151434682172319134746996861628152585850635039481033272232751635457044060021267979543782213531704735071527225800566489131772853391109265493279904909960659181043516223269910783288930434230459253423839664715148042682380694677594361014351664912623295557722295457857947965987559845810760917611602758018704606348901148493077097113521125077639506977666466731640890740656119910926359905068496365540954352040312922131453249680934484675474872052757883012332058272220601321333939137735212638021430954869441772227266023968135656630476019467383903490301489064276439505154515761402671951780029655557775193421411839978681893938157951129634995275370514090567231412714194908666713567861298519224238328199881132115238425684903339903352095225964238682592350287449937914722945205758437370831814743283723643461640459319731013151068026511035879820951309141851824778902779103190442507844039465990056262989638134102376082969921515375337576702510056621547695665082170497363845515844110622204030668283403008787336828975459772586180634571445389402854724933083542259930792803618617917242878626140047732723381672166268159815229346755504607367953966098831960796836167548804851314267232083706267109219955388064066290183952636525400973990380454508679548024992737282242130071556012396415322979156045268181879767146789321304371829575960248838655723342197513127635223239583862740671400280760986037023910913122570531025471209085940740889317464727351611051288973703897683931800805777655678301062877833276521837606966598023691858026244408257675983034081258727765859872344875610427689406233117949089547375618433853720923520224713775759689466775882406878883365158873249537740492936053200207787213415930463742810560460351133538265987343575981423386041613657845207050483060195094334712890826063419163739932052038880965025614023305014815926486944177005774099791858728200556912758181387198814421265968067688943014184291691730762936418942233130816579801018536746512355950810939865163675042624007178523216333525479536243640314257953986889614464917816409006471897061440526802475555220187909634986161989352623554933145650320254030136505208619533414527795604054836220149833135095493497690335958059473445541634294790306165472375179213457857662721701674140778042723063134278639149374142365570347548098849669410045221817410362414127923960912176973328791155176235833669031262998235140426313988183648519595716297854114585801724049904387376572633303690601237485378445124058156920225618320060330947609603929709686917616851014274467576259988486002498726854941448408884098840184572487988554349537887885699372712629720612238544864499935009577314596193143448487164682039527751555271964450541400889780713385145838466956554412070014947246038145549614813107156997701235015224087705437643972464180696137078807911956003223213522488670342653336747023777641349370009980784446875250382905132574780547076294086648550646652661764291924620837571981805436469303154040608487620818717410718383712780956331396473445729603923126646478036270794803751704061775647398982989377583164167785924483807798393714821228083742950012621787861526707224968671637338124716472752077866958455138892704169284010630948102864044585256969793790177443701288049578738996558436099847319030891059528974204111907364586748770051709450237747282227590028907800133209859605743959113081175066610983054774166840162922937851830281108672746299749813203140334015471114053184650002124216346665412922633863019675183223941550809383021399826769377990468473563835937322070774911555661505261639364478636871988622558635073955743271784128749902825994982940735437619463827246621643116198666710703240714881611917231775941013215443773421597139615190196539212222546678580075108960082293101385658439875972230804424119063615777254996109788302931372316283741133907564447397151700810323554896673518505953153026344684444793326565525277039053581121754691019486958836094241392476689419951551075778601268188978412152082774152516584185674048245128670886633242565799734953301426517128511688079580250875411638612466437645593991467629244769982892634735124719869663573029158759940304298872155546842866408516614791968993965775051780715666856496100025273977368594350051612740815976767333592233108790130946539526180405749653890079692181623957165743050835908707452998419491432660311216945386792655127930581712045089222493756204143289453538879461926266090963870529092035705412063212847162658583153035914623706669915943576406680956245018423112810024915860506860964763769815852476028952246103412472268159663514051575440703776673844428132664877614834991266359561995228431357916219767733297874379941723218803324307010925558811760386096899155348092984346976170085176192279741170727503432288855918756401596191120828254601320165672969140538538050654215863374028682766912900369935046182338064080961853770557015101621311646036522576529619051167562903690527806060380492755332527709986497096214585673096421538048171917729229625916324886509985742156692392899130060752116157035857530357298694953160236445036475002093478503492086926860835040305391137431280645521926960340384375056456534421518478932033198618665068025902940456743228928919156381632930340955151666025227661699359065300072619649920667120333249860346313174782818728209829525783433093918588540831156838571567118588386244893523036438535011400713716216005697254155367052635195834093650311005640089351192039614745675134962372368881082604169280862141540259474240527982634805448015474535039106366799899084912654041032726394389135884832518117701060381987871233089661680884421663348466974217895021419923801258589187150761009241918014167310327385987622730452512685982229993984750884865770442857999654636587665693857886301191236549593682534125099888785452481011670816474314455378060657636528868592066661230273537246415035856669901928705524249836212380257475353991544745987290607052325256265626154616528154171773199151002337405284083869013729562489303868241742754397772780427133923037795140871019863830056923303541450052029488092236200728020790293731860231599627328120356246700192569266452547850508042704803256963899768405042877609878923049711291653731127341455453457611207623169163753042174896380709371161770878677020385363658579232782142448548158404646144030178782367017390174473127427817074019031186312148344290910720960012379733629851561755943702484185898035644839754912460875540812424826172777227016895851891051785249176528062166221958570945707861441663812785791291996114500342782257073747778114085416561892407420138037251936513768530008283332025473731043426414658789289705849724936112250068203125405743360524138436089953595804422893643161391903311669009452331773787533365788031739938342576196577872354613697602350008044423609899059221488300558897060799913660505368949276219016985590347319327099960510602822729477386056232909805974626150087634512950841525528037808665338735521316586083173115581663175446666234440048669290875922297632543629579467065918794195790875266641204629161980293685216760960211076509475557829035733436941261380156409378726443026675344960968420852647162512931400806086689915304895070339585098023701321061060201932600224805170238302870985991631850103180135799718343991359950215081915520309020743597790939301816682913964822931313041280671568550359503918927652177149148029172465937372368957790038186384811274720027548632597612131024414188997157241794563149733768550310883397234997407814200042199927072651500833711015853424098102677356769725044881301186844152205496010664008444239482538378704405587778171290206234408787069701006918201932870333447386495033275915173184912479173100219583346725051468180241922219668159131300782438735204537610175519372036222185198755139581174150212182952451262517290941940336527776550263025644480584328715826194203735254353247783654499135237232663673321683098178965190611434718613317071909547628642210487697270958584749338887403292052024607167020335207423687969469904457553625280817062817838293742144701828101138540494537153460001317952267223418373267123043708035145039852488409624450552894939367874658561946259855937049343078969316453330132886909544593856010646638615093726829132833120651507871272060925094728167842212794586067596291484141809474171182526171332605027195918675353639005279645361402346138367692976187607622883940823831592325509147333885373361228997902966732219848143005596701470389599347189713734855362644054818768261955220260238186024187197604514676561053023860826359501934742737987161587861539265492881816673501512045555337794075368400045290541306767023928565769454435385980721710477816650267201765368788388428946107731065749456823011444648677550313068183282396276155349156895757731501523715069652790836585413928767697314880029484970691947978986964800484111807982419022059967613196361113704396808748541517415169983424204004251936657875529095450268133901123786154892754392014955897420780939124106547788450861175026227128308820177621417171854802383024162774509248026864871741415289874449397880424940925178511878893832566048267459157707451795362532427340697755024165624073449521143911878424339261875584504228916494547966021060899805041107579243784635647920075172870430871734233407924273060904107510734237925844468156175411295038371136140185957274440200839800465908700142477418799793660813284950573441667369803363088260494562117432534400575359850058414416538359833870781609725251093666401400575259809334850503597892134255485303241590810376960715518494085498562537827634544739560363341829695430708803528180284583686397413231397483339509979767983386689167224952694878258658795382630199329530757152228057323510989812128419746043834043696586857451710465914152574372811779980696644793010959871035462055952573072022793348500258402489961881129193748642704619564235040159058141095282887038450414809635098501430050360927439762254709356078322884668658529970385555302491456077174277736126657555595274511236313651659431399584322589540775274871769146810932905451141710175607239996461029159118904568690001558031046382557326950060814708441982871772895498649469907836648606195827907549194134791269483945208519082060663759747980352689409448582358761031457777126776393063033776740131556264225267308664493365390637691525786737712858299729893342947423831958708829855246341298725930945877155694147648862344120966143058727008415398412449238036899954659774990592433360405195989986508092080229811452012760931696691968124020044273885912483958801131722877532246836401597600238249271147625453925256497494100608673596555698226885149350026603442283829825962470015069849747751741328045431832974031808659613658722510881278784280758244626932683577105781634346336872799239223164049250048806717747021082467751907782728486687208936204045619990331083668315207744716761097313577314152681368709820826212804092081945644299071700592190346635827842889755099000567289824204133847871752369785790513748177543476496857352294496282445286646080020167673693388508712784597241583072563069104053065633853081600464475386257267423456888023169474709737522919872497142611318892243863504948623504067989375940665278842083105378621640208235901197024302572375783832173948574177506681502112209819343171415693424415374608665170294490500385268988134765891794056693899067571940955362119461103495303006702205186818801495303618096582316468287508222479472295424690911543011891711019991011089162110668530290998351903997246731122431385601775268958839157503514237447885802111002614711416581074969251180220106244189993618611072696978962252489723783683834936036365830271064654753868727340764193073768172873763329090606800265792526692011909169443281421154311160690418989049784180696352938334825470374271839678673390943400275566446874842401626310151337643741380541719573781122521517850891582450293389430206193843688361454671090320252754667668899630805439288981718016866004327884890351959507481207753063436401361502309159981058862611289942092189200673279643551874824141735507626562574831158307728584748188182437317486758190405578158618252252248562686536527724592994399489646653934527523253909323541532426099166615337490827081905427864870444619686168926159055199772398610599385270669645920615526296364686421714054919887040831814711097199577679489760736864478603085610735085952178601352473352860223399015771968539992419019198891947052199571800065107342268571455458156236296171458625393203731406477567251393748536127291820661074188940044243170061943646234146752748834537646595360139241790081674048459186289444369312267591679993017375224190668702482396103414320078729068661650732340759977667704845260516658312906176235490393227729296285879616539012490389334082181299095497619258810410371981804347525585040608668816648439260143024917743551315349846588186082008173714126851939890357955981391545234286601721540775916703680261859402807407487269809066191119834848821516545780160156478892100007214160593720185075735571212350685406621651613036589584022069800737645453084732218557745614083118647233841608160455449360924053710492102908057070087556386164238055637030042624021189226823376182984354130709073756650137271507583448207426441720064275210723332428635087368252203215094094652142897663675497977376177645743042599994939261294759211309449984872383389700674831297177563058220014941321543703817583863484855438645864169590301404279830370790227068361085167796637081737825537690153713591494898627054501714004187965091526587413609280240518991770041317177242701277263450278102177462068963161674719432357310501007159670804227367366171951798725996839154811391062280077738372222216668503915125283889848113920584935289217694701603791166417560692098735645746516389829166985162556702600756964502828846252544840633096204180571900189259256581698540597566615558364273876599776944517722309431422932256612400394556549100129527031431094161745619402558434020732806750365875260872461316952576641310419427320332015271250835015212917773996968406709983408581347690830344119120924667534853058006688190056793990488150251486698668469324162777000991878034163420322948525375207105352702381808183808958518408408888770144648267690327703305433392613631510178170943754098141502854755497733977230414592609597364178438476697072613077530364550867796257805232342777287546965597041661487776904409098463403237080338986701754421866580952310690511258296411005516448936729504221965868994204165803371474285238129448378635416859538951929299281902701932908033430748254278180601802794028880701180062592460460932650614017545040595107389083872568856347315654927558131427079949820413548695747379018610574571969955738832161017538144026843331085029297216782035927729788263880699816284968575599993709045545059244635780017216562311035744341024191229516882271791275903551775744245432638794545835110706745159450619886022927562429058535149322205490018193270864078992501754953885885638920937742533927905928613609992371503854976648298090693217867173245993138403651462463431784312763535214534281284377782816451041587576010335024822385648005603203763011294990253577650660194674810109818790314989611307282422258943825844798124416105726976595944543703011173383676978338829842291654165512502104064570253827929734441920257747612046426901120459458339990185060768826488042328614777857795316485203314496253102043359018641822919240984967030915487737421221377716222332270790147789833653412073614154597813284315210206649830421625514415218532489371243209006920754410931024769008912556909502635158033745845465133376831169489935464443164847407732716910807541443536820639213375737449297316287824234767737996840456347963821948063151457915789338361238971899421292850214078917430016778755513578410827939065528879267905758148293257200515558342876516464772240354678006932471165033167666557199931913946041893544794108988576606732954454434116185212971860585906535321521438805057852879657119439753486206084478464128152114035903072049382367567398804741364469788529878719188463485778248872088179774934473722032426116491823153213072824458688184432460115569638037968181910167695876127958786638183936082083704362922235244996267817127710871078703809897175613922535603563030881280358882502014347401649710713545243332401229014742394198738565704521107867935171968181484454274261891051838997780017611221438202650721774531478533278203355831395598491318293899306800368192460210947627528617971954054450578281719546079044177622295604752651703228806431976683075565421975931388406213150949025996311116896324080551979898314736404043725685663859049680256675260838057131018452506632319081995516456708533256614155993177039086605979631900398464339774052189109110463950188798030628805344214192336768489293250345056201914890297629761433788953312799761028314537517005598415311864390926317820074473659210578277584326087127571642938532892864675047997978842708375266877717625357192478390846982034408840105394406659655982904335913215072039818181110908698974227492630545609441584172417314715635524692851157372375315058130468212012360261719475268627562823094532999914859635689238102490088420803664456373067360877334045055097269218893369505876976246567617784459502545582160852548342561765616747664258421804174363345213891075899438877932935264922075679051047340177137999095757551477009783809983883656859544322442447742911166403947915177183045389466197853430245381796833381068925095341063181429955739864289846724204522193393394539800528140683689766989960905950111762270116269107739976780821512893782364831258475964039358683482244278517219979035708273709151153049249644040940306979930146110063079767948948826467220449488364712720832808933070702538523023489222841962281069681055302549350912515866650469592961579792784756046325062993491476888891536404052589986612986355757493376242154512975333066688196611617644390916429436425896813250912635522415489213612896094581923976235885514932881728692220873176426323877859083226529923329879087931980933016098142087591663586609275107177655837015720093653640491110706233414768181660496731014388221341569279369243640164952350603519045865823699763161907024256653429178705969173398424805971905366674558886169513519277064833484465777071399956362992480441199676836684235909031347813795607878646399093692874256149168305027891406369973066406123169138999391731459221712142113550607822629262564064102890737422672682150010494199150971982719592057444433674298575370703401105127264899174517897955197413127056822679081729736341230890095094877273603369397156755285086585115017808996311823988555156953657881255991748274318884423653410119314968549381760768091549301613215244666692224700035800770008630107057235207797363664484690050815966893857276374544217665497064069982120102755517624835856412565305087277735750636450015702224462157165402045923145246581234991096651273418852959926950762471021967160671844684001547286549409450998585293299066052743816530979579768714493617807049681520495628449964473431463318335973909483930212813122033779293522011031458329329563703272983464482127148216998467752086041275610919598055131457585923286884806771861860614310896393860122363217610151296081532019786203467348722952417591653478266537108393147728004685169789689840723344388008235091058345546162488166507480109690267780968900360050495875375814303196182879257273718566532558282710593608542184508505412836911599473563343026791137578790078533465926612711111786133823851330664727536043158036974785610814506092578337477124145694412805481123004854910683465742705318600885386739044221353431777991510386480110838516189600833225628587786188063269791473398487244428721351430376430409476666180929001277491690683241358876953115861989875217485559505150085184619082996983381104279459776535723625159505069881949465669918994321880048861848551796936771192911540056030851605087149662825116787427695193690750608705501808186396416597235618537720653905427217190181510764702203219407561136313945808533660575834751835607822558404673443401024506044707127031762076788131972933774301035485007877737295031684076178174787322160023848109389723739284947413876196755369885813012861492495899235944013216961607961919826817388167263136119824498021484919002989579037971689986162656525921916880253963177036070080852508054357596098138091186585302704636219072419687805996247627355917516151282860490280019708417619925992001900746426257842346869826942283096928574086522995263985961799378035746081961388412375736364732771130318189128969759880241374224733272947307798312847972820773214476245651735132325783022734566726231778437283356709027231098580690356011291384194405597714733609510639360168112606931890933865672881042153084188477962069984894348228159609977895660120542863100835658811512745260986353005626262847844349237271234359333775940332931224242624582593846747787769126290549213589376960230124683454978495467943308773337004771664089786450353010996686651866007506071044329957120740237443919374937241891921303161859218132647079976963833356888140364894603102120323257319435000512498505264793050349339845638129870250408433177385992001891484882451041786458397448234436010351484755587827305479435388594392579577173228188231079062898186037503309245421711836769354771456489886846354813108646722173251443597081729300890892720468440436898547340624479846778506952011787556570658893405530045232213198994677290554171124962478167065962926975366977912822039938334272677835846835101957975173262172113247954324050816700867944433304892940992029637355799388841941453327760525910280654734620832122820034285011731620339024307244583760233799509918497187348389499626835953863629402313230904833158987028613892437394405853712366706149343120128885364660633896721482143759613676389362250260092684015295724572949918572664593080794419804188932448606485439811136788582370731171536013331660691935421709813409444637223783140576606864650698053743771766780936995654290990369723100916707256262632257983856615099558561282940614827120447234716532115143058700428730974926229542516007464611183419767237473008371927688993284534345322556164314477696139974647018536211031414741861048745118687142473611416617844346098135352703084530973339936273247036000798198837033773780289470678361083901128779384056252554215830475701855565620129101060131579700844611875359927428532326571213333686972390639185547348103490143097086036643565370338241484720770322497863126059414578321883693206983858026189405763486235906109315121625179715696649486564005827730547682814543563253058150973539276601473050401043534632649991490548074799464246857874101578841071645365729701745994826571427651909389525755362109874821120375318786950765099476248222609531916777414905588641043595681748860407517425994782157188927340675663878431847954294260416063101113094097998603742086326545892710773525960329623404556755846147507467359309947004162795527677915134207308926010601662295649271639701065589557552738515588856974403517690445778063480010907617999098661506268053701058260508420718604791262748944314128376581220650771526653201917701648077229608846798813383664471169499890105774561517275154460707265085298115259399107954274915427734962785583437231552675943200246716024172524767485261655617076359422918734979491317865601965580281502997431721413298189004178824582830672481733859482348224442059306861144508568514990234920605269084481238119959298410838082248525034410983753812504669393893465192291038697894807787807541916046022613382205724303729395318945200248594083821795212773855099735674417692472263611691476016429348451143461091012168092692470245175453026637347227577831569688659873489714114236479813857101445047599204322881173003710343215183329660557426436724215440038637704912978185570374087000318145404858004430749934160314099303222526746194065684726816860894140594651488625044920436976994856131274851037512451376902843481544399757676174867957964523228898542005540572693159197504233533953006038323014228234581162573564360868173513744649745887659452767777410792926908368349874757779028491866419119313607191666934537584233541983515172110846420714328993501184269502450992701018047017418304055220309006195138119196027997366869231046620430176045210226760945361492107286636397899830824926126127500574197891422465969586240812603471853347819691083460407187532275335857752337182456812323578212057672542436724631596162816578247039769407135806643718193493895687896804213036471503445822526233169834449601289238102613107994968475369625449786134453179430451402351429201997357962732473703538780241137073369266185243739419670015482589359882792189507011365584980640884219585523555262561461711271741736823280502008598422673421330139103880287955859433100517149777448618154030265640820602299228431633984676893340174574598977776667546448606733478671569977904084019767890753069937931707376478821951137814546928971869953371171228126865445966039962167995960357109281714157892903518195890558341681517719033427723956812052569739222556126190314483799190023752712755665904542136309408277960431067646997048786314171508519473819558884709368955191548589030622426190181563292717357682395805349943969651623014608810441803557120000346073033070235747032694116801578854232837707557145839367827250332996875063872493899666743762320546913170550278874859859031271629466288846178016987169182038692921979356969837868506190727440926550401760317577842509629862445755570923727381735857370048942103618614908846184766584769838120205505437094745570157523368029049238299416351131062237261852632391003391262693515394333056805620042653246063604900984659445668450276356254223061391180754817015508967067207583042056646337988473555600376915708852830486624557671575008972179542397495088457663263640856491134862760252098441982753349144821749761212870847522341841877585117561019802779132623103963156033451272844238128930343788652081639064428415068173879162398122298336293814122552185510539274945695594344210528035940306835479652952836250453059937495480634449785481581901135634048660528148575085594725483534586622479154607471761976187565954223277924008694786182984942570940315566617366410495023727600686634265943732922904843885620889471676435293568775135037754533079597977142308752849286058511374195929043875224446857730347354641507634156437876682827667388716394110895220175052171237725703200497506760585343613829927222116449039701314598031886313193826318886438631729084409437114717214648011079007833923906915676945522798397914508394191219099161687407659546572464100969964212104773633391515059857896635094980022290797652823237471645745333018229375683728756198666452272509263625194366354750534696017193361630162329551462357280234919035057691126013234574184870509193256677921595448441641957752753658549979164621013701217858875743407329851730986259291729139749600760901089774727374819106621919529120925013447926623229679677669979364929163866234533785195887638300687402698001921984759581028824776502193501323446529050458972639448624264021513835505135192404119523849259188871457031518768411678374938231579378095850634685477908735202739684981332806315361376421060616157231085102909214643787401412588392591693489288575100752296770248060922865951363356516612802972194630176350568096900919914224588585463604854471079531290790134949837950497209816082257800919983590414621201851615008682008227959712942505039003370380859192931198326755876695859433026508998437920370742842264490224315774062777953979369228718983536717792699915238755369899811502134016573165794317332740110635771272964310758073629677617987402964612519892631850570503150360454721763254570239589636298042390432407316135020640920623859919946532662864079315439364745455057298203808742094347361259691470788006263299107141188424437515464131850083913277419191849141015310736264893481849890633087070547516048629751659528818017311146985551922367747146200204104656628984660279747245656272096880511295771961492519439433539886290779265061213196662810472369183057795870191420662098213702172048312609012064172816125792819676841314721696527670390765421373441555536680625755055165151633185945558039958608229435337028465236364241070215904126977575915137303355936025513620832147980241374817454143464944433415734284527703638377568798128615833212802066650607163452386816764181524843484144991915915308519415375672755453114308324290208783023499305989368074242127643283741040979489564509883535932219219175423879084512173142857996023820949064014330791500083896499281532233319791670104535441010808361953645448361679997204885122215399906749561631277859623709104064173032361347052103327884518356574274462829693894594701784405327114252087981138102632124200442998109987840708666690110755442186640098136159654465821437983804968281282769045337099179038898897546397963628316727440589624749693566148996081653278108644982960297228715672933287650648115666665687244099530110865771547023381993959815602447453543355355780173960766082056680969824937533115206772952046903823841189475189313572136196564656202123503277555799807154554039654871514679525819212495196259232759520922829588354756881012995485934739845005991944313892842248977208651208648832218975272911407495278025980145046474683615178744506196267479218202719565383990817246438969385855624428899583906476027727910630710650315326290981393489188781665480519006041776383429344075412499452856489545292421582722941088523625284262291006924830134327602404507681926064882866908460009344058102819758902483122503198613555894358243516669831075319276430269518805395671482387823369878036081631308468545016655632985607312271326240508411733732222334681760209299788157547099533178743582681175257831531821139468073052022818414156532235075124216474441283692626539138089430909372234343279780918074244835079018906821267096008958283131750892628830869535322125201239421902409688132202092338200175389622501932269230887899656005589588580349910979354613954559862241473758856087210756545657435148323433304816126306975139416744267219672231809704833506170290602780971022708238128483611869441106322593042547043910191232176137314262354989668892257632281107794619774941605771280090049830597148579652066192273471431804564727686647145690562956786356763496281733755199851185887053439087013735548699598626652866145073513365001760701232620722139470135661416315720251604272604055858667483401103320968801192502019559526233873321945124937131877681603789197373747536800454761181920678336078372097580575627306427516888910282686038832757695984113575321746398001181376283382914786650329725456718310260343465655443594000423587004770529423958385164941862613194074765563005958967842906432339902336299169971443387083762996909075992706537885316708755776210009811764415058072119703342152188921175544134670685473022657477712090532130223444436836250696897156256295177755751939275889732102936393958853239891007937449176336110567072241106470746641745194291050600419103585554285519136668587788100993013470764574670007772609117215548659049782126181144788910375590948011055374224766887909398274258906323835207296258900226216342804516827603883932435806866671709362573955105308399972274958502329625464705409618031115409773761987449025701440338645084219042574256658688177920898588728943988732836795261949348513087243903851319113709314841867587523261030150566240989441912176385818008639322807545376074700622284577103258371197059536344775070291595517909604638053783775800580744851126556292149854861063256008866356535728796158057607987434223142254178405589812803622049741911009463637072756459593850458895719912300119182675966172644883532919982897327529494546130299948155705556693211478566593968503156465680795834582640752619112035084284993597982927983045578922242719027871127041005775964906077148005147261633264785909450115857347664924468000489108663288325722688384120001431167989907835490711955555617549106285120496368922136873195659778150751989214181379063870628286240015174813280317982905016689721079006271011434368462093712818203156477582272439452965290900365376466576325812366070723846552473093191546970252330420597187631112971089303000088941102755493708106238525704973683031392987194985684158907013285231387253601048389858804624452710815129244749716134131436634203415056224598170783441762513095450759019037193260835257973656240595066179367088342448760051591834575514601259694543469425798950408585878133176830024361727706118234202535926045201524609481735908587174126019142739870780151338323597025205314490768707108339721079143821440850629841225172377494438559010440114181239042005510632841634636192148459217103370274721901124329726182085652763600365538446994605804341086091825462730035989639468713324746026503498772481743960159726390417696097531844170007842628369766973726966243134521646387454672612140888945464374238165666342620902984680657705753117602902348553052300076549617719766665709470773074098381045033119337628730768629843794661282759842975652822871581800125709709192139114067017920875115755351759667094046533912172733302410639946800565579520331006467820931561673639031339135863314876607692466006780132589277185705903092268940458074422475886276476098168293274939756979687832736270177064091913881314531037008435875443650401355368472223668841020666185709793647414432299206776107804902663739222291443654496113135626422454797506752359163751986220058173544501723139946972511055235904528785462546630155207786242026064573263990205256554764880990673806560265841205495403834010772091036243487319213117002068599925634952610557298936143821672344361024074133426201314409872932231092949995744007982076930427605826631358905996719782929099075775990383269124061018289161760953933990772371777374013938584038070888909180541537207117384001391368990939631223889845565271212646881377402026756246618081736210213540611882273612239061082404408801131285206812967911266807784257047506453686665447747588666565978855016631791178926160202208907636453985694440123363005630288609904976396936801349068631132181383105601471794935967159831863339996225967020350807112044252838312866881112627078665548236589907549306774281381175350422575457067456232026102327894873263421613033611451204305010766707770371680342210357341781667578556701554724489250883205584248345012575074893621315256808160616171240856504437443146519769168579211899008450687587243234773014646351414258460064563606640152569651585538009803951197287653475540378644691968809173839309868718230631657860270646456197449064813676825190878957106345855393338809252384201985777555228780678411485065031745142777807622538391593515883603639428468417002578370657934557316571528046200714212035514299815591845043210186452136315836933927983319503781644824860525411263991366435918002987396151019425384802388627958520550700217438230612723733960155298175544910462042281099524957314968579927413027651504421633562665521126288321507895168341987859595822471751121438246906791177156880684258002832332617810810185057819196767660779439422953409929093984103163811790856149854017705706069364799216766662394413977737526343880909391847474259227731856432483823888835629763815159945676563845472033367234971643113774484354502839008157482984883963227325881616153088653299903664479234672585046342201660733220180262042455590824149672678925668927101474975748134120346332309522583108169823914124374510146670987974402550507007888614755747489131481224556944513399611774608841831747174557843850209023866663391505199143332059721465088720803470498575552360634486534415646868947941013705709447687305621580115269757361042898585561520774747739341872721198206961202521061244241986643412618004280939197651883814317705739085204815925816496769865103154958007129957599690694617240001214908242465908870120884285965198801785958396271355407696811442600185900764938167864074999407846200606414459956921458484054226607735791174394018469057728993785390726767795169250009972236021297084538509332447035945579516863484967967399018948721842544460838322964376450923621578503202641942661871744096965849277926536446438363645399071343916838977296867066173955918263110965572688294692795408362734100406431221015207426783993734209216862113822503510820541817379948448017911869710148860810848796181037656370349683768251428237848277618539465995119889917549805976437468697831962257047121940509378675435593895206794907258616385831699199091681437615696373123526331188526335463447856655171106284761625052841118335716703689941101235155285381325029205777633396496621097674744398674249428970238114385140246121663694884452043213967498147255765796348194384901562679763692888340297821326323332525556743125051844147070725621600279273807955185911118986906302106710251934956338485967928517416749162020154299688767967272949108356162208126877385449701267131193199922237149685132185532446026538964447835338554585254527647772805078881552472093521633262734864073955282566834288263509156542406838554637361858398533991203468060315437127833720331500855080737423826435523277723040911035187480772959811211601304808551043118412815990827792627257560797221860144800033401667165859401829744149121726440459985207596425464234556224197246643308397319981041796492148963632713696859734306192757762814998784507659599194170359186385534001555252868564797541279334805710393458740396203163932843456981549026767369420598095546868634773901556417833222751980348626871348646735473721841508290627122159498354822866690147491782877706449065975910763796393445998338881338067666792489655447332055532654021175233128088328230161651171719073873099814742921152183183905233559447279536637092404558086781978514116440827115758553329849084596693378250901918079716934856615560112211711958381251246465723216314643762101813003418411594501083472890505852604367218607414795428284969700940982092414922888061431491160827341625828733126655389790559085857735670058224244598954123705797538768264689305014809050865719539349831206141846210349519110639901917541997791053255088885063284688784532122900677183317935190593984156953613076879794566430498224791588530428339521048148219103186215118412368465102792687444595223258224723257965138085930203795336448557075474285547689780084107784179994707096165684618132381233354732207788842507281939456197488513191718208484912368382990181928735880896762655772197793891296055907074882866109383796818411669941079159390795755606719839455992068105918374177867931658401839598163955998254601545292355820146511700484995923451342156521153017830670666887139845087713415750040195066141459977095036123342398941890281734415234861115487643704489871695591555329242243656594837871830178947002432756683834883673048427284118766628432326011717695747128552558800032774733457049158322846201541813673921573387608583078159450163519243670195996413589838352541965035008509557552084510933423392743071087313919236998195146586469758289323298381616420416239097391849419288415744774137848375187745204337615578366944362917502352574606768152391670217635826669493318945245822004646976960224759148592735114032377768700541135131307399196617804334066177720184033452274818793054387689048765468769381919997366947442396864318365910648017508659767369539910227284440859260053208581559780506838347242095280772204777225063636136427054492813490559164850595603872059831202027012386271591023081508425805617408821304806107395911255572023084231301275282298931370824724798708246297217999596704323574559883401861380347492446021119870931381929662415253195646611485960623861134269931557135623463526531967474889911905545049564427782222946019966624978613456687657439632086963469636834700083418394673009028738724486982478417904007725031677856101072335932823219942956460631021334056216878870794881072184575082306673563657423857654575372885936030851006234788187930856223249973737033358319824805323771735148925196863977717449600594933337913639685807040294155257140426348980052699275434551513320456057133864009115570308262764919826087477875851467243579043356158544541494568529322486452118951692155141669749684317126365721240986698041766663993867453481621338712599906268772473886595357630608887469372734364468512847686820641551303280627220183017709511926321938376023248112464666387102882962956989747890847071487830853560957867157580177779297956150645507537823780734234855828216796933515297210844555298264683150568996146253384153908062203641529840177237175575099618658454032743248820768887945371464268181279757498110193535945172675501644814922026418785987306713797751753040260106271572028418172217093023152944501146012618898823640491674973247194249121936424351479398811012986443846556055774796761163305312661729570463030933515127177986796196089871241450440639350571972560959886864897737594521578787170796969033855862759987755387822390380758370904264969615596001450793410958951784006264002523282637573057449333192748490568880816815786344150901856334158876377224442732226511010196519948191682054374736183378870590799992846001006472088066967126465262739631761556227127606678579862214323145359142210003536231238254297151248887746310678840391753628937758125105860439081137451738095630767590307493371609326946944299339529765795477679121438620505001972804136287765730242132518924195190191645402077282784023193337116600530816918826133210548887990895710923111290049369473062189616343105372274393065532812052534016922148011506562488596828997420651578380758145050997709757762993551717436203404440133786124399451672869267688353591344208696228560672171477248969157614543060566346404921288532758083650294151336429634459311107153932280965508307033209584543364489077078139808583513690768456367246050011283422165253181859467142964436077286608903633550160113560189227349526168388699827576386992164532419562958876410827279894191030604711612370998081612955652730800781639729632633560900990950647591064380882468850909439487409895860537915359536559690985599852505889283090985355444632375670807188236788275967355812313144346034533867398977895313388539732054063975130248896428166400497499874750036008017207832600524793930183096199358169901914353236055713222673147820615869055258496655724110996438884401694549145151763946850747098707822159800487857833877494485164732175002125415377002692314632100275975020656876401098184577371299832404724070062680992758972300200931489724655005805574119564524695980335124060745454987233443885567076970404919411846911745088871095362570634891355232387482200555388259455340194396175224966770450126080574211434388882721225890007549255804874886377547648176209777626256410030039845526867135459876685014710343746370921160692078768929812901959870229784705532724825822033538936662409879498150997570305290941117267410522626396662356982683475072049197719415665632311803676673956063850070778592354763959759958038130241153120007858098927263461881136239567465181760555306583219459845100794823001611821079847971812632820632433093300631254149559860529688472626722061805724851527134619483486562410663818552680018640395487810017087505979693105588679792412380231444389422675280110938188109548820889211062447314557078146596664444119161953057913244613113297006634909113929094177323664415144563096017173966781740025514317773896639719057648300344192206975178391612635974514819859493920879809169087419529690951352710913899001902819503957417762532374498550643602036638059031028664972984295354077008202728556258905310904107415366571334340249528881923412746944555252712427950371506982835361776012497532579848602448145400610973033364668270639250230634090769787117978873396735683817504776263857571453231823157943451274735851130370248689376852033823854139399663219380157696623504137157446311377115953032547875305211433742008473141755007521996764073540719212926089852462248075124660000639539235599279489543392144317436701289077210504624057002356363891506886465958694247415496333550310793203156202199525671033124257717212144362477555372454300360456780319229556691305011313123758622322529312436805665655902757627616396861683167941685429382772230934446795325900212465612388469174901478429572546342798165553040165130148548240361741713505966697388937583683323248763867948812368479948090963102557525852649272625702870433037682866121922488193730622849303390118494843857895417215025912803048948354196087439529483885701610294111274268212986117052712515652734380176121369952577302139771959316883633636333197312878072592404010674241883043391226450875366196189511865724517571708494186768195632991869963702654359074491133630368122023051263840379525169077938529864063652588285981609770799969786488545419614379462695831747228283353463486143201414277044301186544055460687949733007492866610376220280083700807300057729061174956279469999675810511678517221437863149745496922938999535587138256186059901760054952040764972949876509603678628308209365861299400649322867591169736788147147504045719312226804526960640242103501556498773581494138058202338829654709460640471522192321130526141394452327680222125772370941517408516361156328005145988703806276780536900236268642300295510304534082370257901378213928538152728521867807191880775401278934376210712201388226309667084925875830469799401246547028658611128751729300366123780145702320446953491861555722654287107587978302928631780194213555123262690284932735961254073103675096016691408487521721520047867721235867660877893223170640934979606718208331825948556177318851828547245209039043141869721398538465692091973685086310459098467840614750019370770180702503685198063008057153011184078857230349754991098882782703203626145121618560025244344451308155532188706536709717837204872115757230621791986356421821007081995667802917896253880148241157537952067118237339988684080897301828788987957263238199742260745959193872842941227715067406671431568916817661061235362000816963949837726652767672272647940863947825574631439591000861047194402562606193480796481814041134113033148706922963564989190970629742915643105443738196229533358160652349749097725348798710262259078393394111275422818852672872014235677449313519470740839824376334958754535439890885623219299208907728854670836869000709611309067186951062147841670206473245281403117092586473499678241693884423796094356279789860195698989620726894888887559166339433104788225329367092901227893384033904786395409621554741856111958389165517716818754486598947822845173105401684112184582581752488656041029120228538812917593841071147281865925390715207859984206593460466422439308184952785590103018753921752075292208668044682674051944094054757002326883182061499787547310744635212048450674570124853028340602898287795755743275153436697787046598352853270259494406398225806668589816651288287629495067398528013042169322987893211788423718219416776892661937090215081395493074447739797365715462031737825296915382071420647317697241894468151223413037720138800298656950750816929947320271681852720030261968447702245730741538652949107579029179751172732658601812569820386604007053773429166024894004366483581236537283277263556003884282036675637696117971273702794690668377404794467561533332839873074099443746600162268517681061131427197665054348175162118009412168111268248271742941370063618261295709477439852375912353561907095404839417085368959988070093562012297421902229667170549969691602809463077057457118293992915349287309288842561020517391305425966780841817068639138171254985119626641855088054635217305165343400529549294296786734188899749765678205873075610795519965342666124279005767467055176442271036506236844986400397450798893368564885062059493041416491789710769969133513484768432884368813486917172008137685565877178599293303979184941654773071971569493159860660175275546315209748264616982767849152192647419242777878648475940654578048337209072742024591639846392509358736188234709500595996685852041515696149766609710379659790563809726946379639595222556038540694194850353322979496492635517304465016942724764151646269986450043077702072212505872427039526972153837388769066805693250531329516703038333349910586472136620555083063766632428403897291288597923854299188764482529393487343884664362240030989596209127732321040381298100441646842819801208118473908953637231652703677678601700898742076533843076765786724201230946520919457178447884978393557547927678402220599355940888629866580796428350340870047879684762556246601804728406782998884593130940285469147196833834820311765018114337338430181281934784870547941796630249740096092024495512351108228131175457543159058264376765152557567714356915346359131968006172093485302928037505576546475290632645852877838549055695007841739095246368536124083530103603493393152256468953413333473902742855609717038121334165361057531086232028408050711415223387727566174315571295243634964282436524036363295110362733047242471429280648353125011723901373269189407115481237108748954231650218304326781873659730146410596380223671862075788031949774376365223433369750016695457329534273839795510081127329619745162767887276905109078487603270163686483005796989703639724380897096727283869593676455392217244654787669260347139264542084895849107541221337142857871994579591628964912085969431318585049887511134836332352770878296619977774519933955630242757559091000196972794009853074959698083417857537404015817737690264973022569355916757618343332740775061471306228998403175258234615028213584498106853793708092141642151382848071433561234316865380904488675718038757221182978444670481642949785231684715774338547719992003026792802286381780626090592414401694583175442307373963798506777705314095452002331726176274532586968088181254420558478737555247441520761958479923729908790275458413779907613970842474377999473276881998022171651919084816451009484742960430761218316284857353848193462085541008561840037141357441507517744267377084358134880590573964469380067440593543295297088498934936000182178767761440347907102260286246713968728214786998489815832288862134745380105547443337780866333357134056466718197853503225843006968698200846314697903753371353146994044221998743059267945152675803173046409138805364425732254144619858502253369312163076866418103560517020444260240504050113854769178431168404411862587210144443665614206599465455520617912817408819272258283212987730171107781937273142360740716267079248168101589115687207860709756745253701756139362031348009801182646677198272799212464421582762055236456032183571007508379281686542854512197765836214082638781903967476961780602855208643988106788986688703599909628285194866487097851089469147159102023345970115441428859050245123783866643004430503670431009077933965718242846520924334073179504730005982507950253684655737643038871832707816387569961688480361147809173592492556969645328011785839904571842737617130092924437911896289826419745366997381317662390037986319517927763749024787689811712139051936570758266218933330227046730856498718229172666779896390976155389764751226209706632857713402126819005711471391987843293912865633457384115218358017533399656234820026159008699245833467307387351682432218159340716613925339254031425757622991536331240396399141739435149078918295031456778877685706938607309906854431321868694352398967904704765443696474902526612294925112768924190028144837526228725798790183957659015987487411444678039323090789728191805129466354480807388850036160147264890696374851080748267342967528664597178089822405983922378814214563467828071366103426895872558969141417829921873563400945219208197128526956946242089943408767151121165199258905379026690111416391185000228145756253455043243855912428335577139478951324142566808581607381930438129770178620103312601989889495193597111094301807636817631910154798212112175487101475931496903882556072560773313935102629254825771757637303508117686252500628575487035632778837948657809041067833915544498978047087489279183103908459951253738515109589184266117589812287434069127858282210639913052398686193755947609067656396443222399730609482323947454869969513733673388953397279634358333357553459752774462660127390431103687374190597345680241328986130021320409555789884258580589207697701774848130268335926449277602534494493459856200690678090068503268571973843225961212292707134521377438503570325983096401851890897885549513851086315146585559610823307007628032543354932856767430796011315471437497569661085999603642626472426271546414780333792013084403388071525291415846341445828666781995984921119650194249918981218758009437977702487794512367701786938238777074061115697149160248828943413653445814236433360279868274513458460400033112737331887029860870275237694866410552985219076355810829434066919480176422915929883809180465601647034363768806064939642284669197003459710283047771260669166664293997598147769796731685770641092266352446040025449936613997655441975942141396295899137926473675232367968104292144319296894198133106424580483459574670548752068713189903211059510459261311257760629240634646461342661785786495467269668430371457361974440461719099585797017758628846122466321721746444193987544041765071779010277295180188681440222830960258310673439129426028731431405034820370900299449068518742243573010164954793243275894806877763443994776714544607035497352297690165541627434395757980884913796861231628584490689065144110930770227277018956651549696425741791494225094591326413073420956890104033201893872150608386875656689082027956079536059619921046363172887582453124393892832086590531480260936121037393172727676026210760376462227085240455508395481812213774305141460984945252748623244968383084326722477958162824029916198108020910683510568848220310822824721795610807320491024947269281780556992421963674694941373889902427719918298882923241123824733269778383605416846985108614944403521806410743480600345771164349451351229772369606643836778388929417831111032478566940291166625414812922986616157566399783125136710346829984445225379974482057066187721366414296638768880056429237251327553832847835289658317682807713600536853226961541382667821433382087000904095278053113025459619653856371185336916605767309324619331952951095406085581120015780486732730611861182688729498522775678522371352751116706973302076228397244913987625549647223131281779131636039859741603761948844311818533052544536386252779833546990161479963215017259015131786442279403744570099398724807280066645983822034951204756434242975073533628202355388524040918702383532223166865873493479903045091141372854772850111471416936369563586302776714023021358631273981142444886390674084885294646157197819350402243374654241635911117828672918009776827033465313087685253867783690219060688331454078467919328513125382193742826884629456903963574772167547114693641920190445139177276634228515057833188648996299467535236918692820100220369034315631941941126039059213827275480021492997252644974906997398156723094605522089604155867532389784564396149575023872092338278850626732743359391614031723266838519509158547294207821875683058481514584671434435758058650073829126204915330134710746462584292706905197107475721889172048433733531362691912542223553501379288500094994126340734402997634816080116005554300472663249077794306098909140870290631643999883700908364282208755863210472420984328542806789617071584610349044273363568254317746236273240802564728870396617805318300209008676269559884891159427542290640430850213462165209536465563176319351635037410437968267746645121168938883070105518158259397173653293407223345410796600996420922362777945118498959771359897072456173845704465586982033096023540941325195459525638104171254105974707800663519182243178429908726130057790769102101587320381810461888277906523305979087239851181808714154550959366608328640492871427675399265498338192219440611266035980116984971465684864879010195461426862716401175029820525113102614255061699347190761982774702210412239398424775802228934926372590014642420443507334044762491558420788136927168976786874900467230050333843015178713382624865034294667261903357258640245911717659779085131062447588861902926750987093204132621443915019468151079134658243636305189499179546541792439553696904574333778678087354799394048550458395493567075009011662632281713709371814983038011484454983248939972252776289717054294878193095995487660996771820916932312339002452999428847386735245007134330526434341485833558602986629238380531593699988351418467123550945687564302078734217581459499187646209546268248300463029504065617252566815488635434796208345412706230927068759070084472844726109924331928540122201700800377922163914088437269907278807514282023090849513037531680906498613514845198233520143181568144614967770030561011879666755862883020940565759881899738867597248428745477810884171757383572017010245970780827542850959448779156122942133856844542582593343813662711077667978979297565981005748423180120379438381535684928444498578492407642157313845402151698059474988573527101092437027687018649913480217110502713107640413353767948125987597242103552847870421860319368868463676201340030670368900583977429013128398283919192926813805383451048942406426636339396249116206676721804063610105986995769370732136643327844167641371389872479147997759604549315231464046407566256455354535804987537549103960123243418041317219132672106399517773174926564995496240821231856262428293837693063749434931898009980454384842512258807439743618211058650346362742425488220258017054740062230007242626208559429108437050408902267441774780191552374338111692549017768311655304180969426177116255273991702621582213501494134579830217659113862975786371641193169783084941469194284657069917277815647818593647792314800133682559140173270022891686755793209606312829338376450762404099528686932051583410054085365224215002418943726710996202616459423399374844129310589252349350595982570970721839050109707471036184372056378056192257118916603618873572047459945259741369375104490226012910423359806780375927826422347818785027285143924253132465341761536214626870492145627309683425262596938591197778389377477507970887177505436573201414895368895676511198654985914513987741929340676746119723345634457713757726969266908742955737319390540982068366377627918743769970577165315266951979548398870921810601487626791226797939509144120429781453067501755986375762057685234525564538471601266206556728831748390688686398321357600938025515638814916186931508880733615656696245189264255228594018482860419670050832708878448300379063456921343328085234942935490029150489513627904632988355212166007989192749321076671976704459926862786851387556497927056304926915170805830297243964142507079083394583222342260525574575681010629219865816664947933170076219396618879156440201065003157052113495505085435834562124240923472403525299405899310938465325127079254201003354333602211809299849430597550779859571688787344730011766890816204245607370673763791746973401830751119286550543045023804389147008885348978852129191142750077781112534649504326211536985685720679557943010693708632338811717046314572247527567249249527409412156010812383744455377415869903913753246139179569359532440636959524114311965193803971330647871577743973802640072800008315438417431646969424397755308534210828260469714020673030292887361595777873972050703876774989642770568643448037442688309827195757434841010266889414288985378839067875143669209155348729499019325498232717395734256495104538166164941475779997775020583630284994042743360424989914734204976414109692325166393725980660129414492060442368892711722393877701484618942228640773692874620408530527101315352697115417095999989118180720832136044459787823935700760835410826825846337198403570644258127140734002263902879111337259543840617831242913418230318614417494595334400882678947464586215159118981720555390245706546842577279992131057151228606640617227840839634342804791607412593411889635322981891322325405399507768760207148350422315905506757683591858216447477205019550617221831646954884171662575669317069325323130361273344572225307566046305252195577481314370399542951677574619931478941592968065834559358081983155699647443670200623979342709854148741160723932918551125659563190318317992740021638448228477215792414755792924276428411811919898499360853231741505138439040374376886215087123396453046417868134083001757712216114944328490223363223580094340944092049114734802224519847138421980766865037932735928743494596896886447568577190459924034005785102467030680563355432315263117858021859895369052045673729538065793520121304698510567550451721804248851274096294231713099520159214545434698185918323783299835022781328878366957071359074202590169598901447756717988369577690508560402540048895723877950148135556612985300404856656364693554070557934850697963316323302726090694396418658912284095423127524741891118817363858419485699957740786204601762824700411943395385578301682596207474791253176234663010430539178983674947559407561495230809574075565093682245089253704494812302319727694823636617349009812535571818373480322287653284017761192490464200881026651987766032675674926056293824307638791954293998350320889590591062555768130441202585665074338782945715611565505938995497524504201220815901175447086701638330334829051007873297666984153182338709055914829962433625029670831232401808799200692225466335504560307705696235621327211871967502123120555604274129484858425012673545962223844106529244578438073787020460942361987409296538335604654755140452768285997261031555347149660243894813313869660974199694247038069420039693496640876620103750389701977143845007540228227025544315457237756452500359596551088353255881604713161855895615482475149011278813978396595925350577668265283350043923443575067932470684497024269388422435529789067288507757027809211038648933623931436025229730598756081404887018670968318489982142879898245026095075917095075056330538886829142412209491553140157903513932737158605015777092904664546187761964328090708173597818066189697860436694910222992268371327480896634542876028653750246912423669882405384038087007230695480037144599237018874078907369274766692572006466999000873805812802564210906495440766876621596903807246334875881323146526062805180177073559477954806500702780089870974766488940177268455871421005068680011683843336410564711939809915130378803983912508623449650756730871567800611381710748884985695181589823143628001359016157137698167905495607710896810759857888399856045571594350795376917824530348107611643489316191476994112386217814728071210616884364701442843069908175261382879998034025460741115845638792133665359182622721889035943698480558181572530836914962869396695908312493642286859186979285326160435423457398812222520472168332304047898099306576119125552354715059088852500734920338791099030346340695744109566829432709397340518174004709526520884054502690188287663418045189280185204078041947385759797942904905198867365429298601869367390791500145871206967587511054613091934405053860395382225925652645361992291185135246861597535037010376489815380516058093810617039612612284804025408422061420150760273794137233831726208051672910815158600694918873608676211026977980005856207431200994765275127365768595894659897975763909008105436072513481976079818815151818893622451721357857057890600538038906794740036243192823365138827818830979119602331855731067738012444165195616973149427126195463969945585989776508390962209449816617156927874536845428006192390245059456793515457790783791074209305355163324645304676018870409358411513408557261582425264033199350675985329308427453893502859353929509574799484024161525426881235916586033592239574249256114119621675532048614949582545630111983436330510548909487925297455820046601275545127946433198440160250077923941224119530104938481176258694278281454063204762030384178101328543323877181226063123427094619594832394321630373364879693020504693039005922855602191698636138747312253296353263156441332402278257244465099002548822550238558622080408615815320439767396788601605121457867904772030897771942257196651078085618018240978361332865057178299921860252329798013099014712282699363797008408804508493961217712104844505660592071693169141275932050437597812164248684377166457657136780179730597613677937430452101010126045971294633631208173150386759066677055162197652875653032305913068233768241721405215823820377256987279605956491300938434399140553735061545498507424882734839821346657271973846975071306677020518368002530875100991416645879270736478483809540610803306874401173129502013190740432638709837027842699924029183777619281864957780029088648831127547482285051380555736835609843218265537626337619341319388757976298237908870626445293048404600669774878487404846397265486755489964382021276346879532242645130403554896608892013360620672523379939502708842615981006356297067198966822020854787043927516568080579376605997348165364044010066268927505647990431605095677084953454334012929686724243888653619484245980112353330079372174767818452175085006450078844525509043107261209440389340777231766731818038288977283806656421490781420723577651633330195604075522694269940309879460896441646121180633668914310265211536448676214080003707213048249878529498245613316495399318348858638830812680107011480524449413579662861356815812811305827036742259502892728349684350772990379581004201467055563265405603141188542494853891097915559296506191258289639851382827312187348601933628002701639469143639962801266990474949065117391482861857973250628306654814197615783260566244118834454683439190952741745485567561067813647660387394117125291203826400516007867153954561708664251550899316503178345953249414602117430544086618065902976348423145673383454432586967955328100147174879772652282201393872538201899540866170757989373487870592819824159053933608402415575347314653480245764254095576865548188137333400639230257293337655347019045291363870273674154542808917291497593572064524568653832454645045669000433651684030065213725580679060392513922754304069702696294184205367537278516623570114490500430834597513440439459906594073094880665779517639963318849737506102181246759234375458917939344431429654158174527637172609033425318127450692027693375716944718743165287394222833105491412847333680605403466341172046326583404735063565791502236737921002927132572358529121768014392207031483831026808865099546243287629210636866788751427620999580736640193158358526571711119633097280072491304607337226250591201256411128021201164302308644616928817238847324576436235760397167355378660875084412867630287198238266324177392536592921026720920026051197161798217425496942702457263522259924325113204647970053282531075831525644639409697740906818725477035048274745804858239849863404213406743355935395945385308576100596003111036574692020852212640103587256867840490110211014050940311955145538740546021176027773691398697087169395187894051218247635723782682289245173493020717850566323392942927487583586843082302759031400570438810867341633149481551846443512722561501454524762027754540091539822153241945659024234264725290560334375594133660012712760205800329295286716903466223394948181524266562815317570697708116404205350859704721388290758967353602902957349790380697624946107929243066227623868603850162158275977289177503821355254653868872780573775518852656081512978683998917195659603111613160606207728192957673440997329465355189201760983490510474598762881798417285264924771767665982824852851106506730628609491809451846828214359794419253994537530876879882266346830211134994821506543607648315799429420173396292658619335285613159351619710152992075170678232456806658436264916716282196737384058453325137383506078181545264527220109099520898296795579885126865217214261126335902538901013543288811630535151232193744172682178789598556478383263118875293867990970152769803205256517018865705346107255485242369113002139932963108663171842997461542651745976296756646345146930143409676446054595805376782747216108809346922086235755224600992530013408735852969676780575300108448087794973560225652741533263850736852624409982271326454181921106157672502225045690212937827817786716073367241186817735350503254187120474963011689534059266337912866995006656556888866643380859184873940991191725286401190049352252089824975984526599761054234840527025600151323816948070828386520550364653228920598736556462080519552191961949168405395616972429992850026886216343055236301898342712664071193293515385673391811670225385486030626112444739665676795811782266151607428947951972286626052037129443503405486272655772300430948670482340448748636316141774800776518517577493306997215568026641823215263163561846485195670453465700236473804604025934630324073784105071918410256657902499541843090972291871577448095241095198999134265949623176708146870938368225716880473964522924016948907341562564910229005692143903600088184768175038179313935087970042192250957327109389625654487009149635560987214998616399884954096049203013088675390067979779700341111427518930685096454379327683937054546508718484182147929863268171771039642774783000734456678179293472222706282335230705644863637147830768448868177414307693377809167708665735972669536248439352300594992139302887260419872588239526043346067102202709361641089368707611142527793875837062099690816561556860557285354575252293146086099108289981716225237614078087291493946538509988271343005422072350811603921871340546467203642953512758922910615621331463826351275955505855751323238114020950238857207810930864391046839146855906175744494017084131657039080026091511552850382481752785250943483709220185966065942105719880206443239094190522710239724822387076454886189289517913192869410666518841134710358895547649421138743798377306766331693241598773957665533409465576470203451249118946077593082228181352939962390115057725673938857053365381330707684943321540151176729934010955167908676054181148843482432889984506984865258931990534549590833120870497079085620711239593676330586923529121794532818483160251221419193796543208953261704460920080110362047211840385497377874609279178216966239677738820560849202424493391651731262461794131272232291547369296136680695363321328798874386025761089366432194020030002117198423134662437358755739781604221270665162926320569286934398274629952345617602589967465820247852415524284094226332478266555835868777833921325913463691445499468020981842372363768885817647243178410749349540914449089802170331191616453852463669285906738931066792841712275909925512519209591082305531944798866743423399341117913233416719086386870581135782038118062541973820756027000807105268939761099835236642821124462641534732695264877395053833326962102059126046475384317559794104458223207367297274176038958430379032074737082961783883089022494369231839819336511203818809940910017536489967895580609582928672518699421053463404608635464785846368905252043879924860848720467367947996049365165865953425643216133101905589048533929960135088096798654556502445095147988082136069542823591547347343640470706003107984832425944113547030925650755404445414903534947360862767489946057242981162426302489871369896250850626842432473034374065739235491263418302797909107714653486623482286636950450598729748557489939617515166437336395563500617896807295318820975559885118490554374606233263078409364903333895527208308592254036552336988433897187888497244653934805455852647416268453943109316808743594180434262371746479687207211573582115563898000852546691834028723745988818284372727892824785451090109737367350758076567898151144944936380596071933353143709191349785636613484183633627508180574666621553171778743959014394872087849099906680718914797401561669403812064886685790398122229214446813492873112237163658532868317759442988679532654487327692590755673065330404174632491913344447782513973640402612584433284584544025992043378513123309426362185082807169567099144265272607153809142195217476416551656643598243254625362717984243618999121173995804748722638718533265651747289340032391055786470486475922544816961710798119174346921814564847376270136260847100769645580499098084179881385736282351188098679419056586226769867921253408769605616537079275517190736779475645657356792308746042803758910279321505847625048196308111649680955495137556970327431843274340252763820457006399882173100445241339563808721536629961590304697791303664228226252641840568154245176461361828326920296423207784550684136862796543102621544943329260873151095857334676518129987736543096307688877280531226380130051770020629824166308921638707287285995756103331968028365177924636381595532007282323306434620961468831202604465231033604025189267279024515018570756104888047942530695431228002032555678560518779117292890763741984164940042196638621924788054632217318038404407795061750478177076788675840178408229794833143905847763142540100628045571837971651319418024882927782859548274482111502914576376189277547114326142838053912116400609788723575463505488023969831341162766694493023151680626844516242357252276457611398040329191558813106318515935227694450497291442948046883414230572010208008395893725806293758966520438229456157169693033932681859382494045531577850332442104535500831776696191392829654645815232403983410720999034059360931850562714827681466640742402901897676974808468867633948736900789229005334848312060015012347014949143866153005732484108878490681791431471800486935543167464482896607613581114136216626842800456410446514162295479975591829624211655214575418360612239632046094570969362638502404598303592524757310605821815950156728369163520971882203306587416502271153615952276151671370941630254262536800900193847384625313570638355051668815227582840162776654519490788992592751734373971856261708348271401986961774984286617143059974323734275111182465694262403350280988773976039863882117446554480753636991984979170267268821064634367454774081937105609943268901042577081743197059362387027714626137978438241641576347489270209157652079466600629646422130645447424167962042389457522472614510389176450014889311456320618279321809939659585617655671171923085882182816389853602767916140252729912461546979087490561061526791238727018906791981003848699261799905258700601166680795449664488672574577894994010768345299585022563344803052700064608523495344295425123085318833205679182298885643895888399317478855871050044102722797881878296354934884865406671764517839110735487215555096066593277230252018088692003884775869488044352522119047958241866804322592616420668286937420915719419195171893615132748276545745484398252107652682404032501192645720297004885930199628128926237399359719933891227218152234407932898512880598096345260116492077240177775579176985535062733733054275344210253223969704696251352947792745742211784299739534542081540202872141396415677218013001067581775511999372446254544656433108365041318954220330771253336732761266420924856092583383163516136217859181135681227214858772419486573625242168067643801427815663377745358899765070989138266669626168817406869365736449823905812519198956779441599152639874897716097365468760154683567896038993996598400552113655949985793188058428151642835203434171857301829958549883989557246767039966524581376522392037101762984388891365733534464606429277032702995322410470029023385139196796423727994587402243478774067643240146060510025122526702794587767307875216339311473831398553418497931553064946548839596683480201830050209845993361326102470853633912172000455381717920423018491211884003821805672662131145704165838159398854327872556352865931116521056646160359916961759245411815347076164664587411985640377056032525744281575831310705603705337519544436537632313262844342267565919694027943579746704807967682187382189626844455568239791341155709400900928966987040962452913443499371844926533060154357142158990943817394679926707755635813420138327898097040499546885346783141313106228448739083320419470040884060801082714006617353441192352992902880349089439420197220253837690728907346148250099854164549394524654806099635827107443320894773715779691975663339716387657615458491418914425094336347388652716697957548728062813456220853037500691681675700648762559922986088867489264611964308432495190025473588608153272601044483872321117790923939344621526254204577062423635536908652405673737404135114071452726723615912245744142706571167674025190421991407715582697440565620828886432185379414655757077627469016463431264330859819857160054304516910190973693584462370470905468315756310226736280567875825301236699446026309779431861830332327288347623800615466892215112553326701033926924902348963825649224257477717715711185936161258212410236780268782160949710918755961682820932498063502952736741040199924755066731765966617880554758583585125238862571475272125924430210204416512685209054454001523149410630207539640987676498865226108880351442283350878793588309298555667838106343604548015791546329136335533123631570591312545041269859477668297437860464808089617181662067637427667408276664426984019324639859285771803388395057086719641553574046477527943060830384994366743927395524553273903700531852366701583231877505901204423771191898231721373809301849018549924922144522238328905192725961377295301549977930914919735062192503064249408025586452298905436491963727728735467171532971346145943987890182800571450912753260879385738816299086127196856863887986320396181581735777100963605450191086452119895161084655488588861233982375373773239234184631883489761238880539216016151540428402155750885812048397788757903706767262199459402267288854249988764380069223760465567123881652247131863126213410467489241805995998757158768784071731363117916574658607972377652625878533760183998352304486024208086324900800223077669305485384070813518720516615280781699783401081156343932040620544537725396012316107204360774254035545541196336425529141558212768418421846133269444888608834381753630804287629185190047925925210128672488306957266871147553146160156500625619097550512016933440193429349275729597923371065733895095477523420514208874784921664834184076126943502041767776406265818576116079928989381813772404688164551889396821458947726583698804554025806215634444216992085248982239548748112694553312938955104491506744749723253372569653852888388081922606997408033911018075243537624045126745289469186697205424090608147755860330664590760453989090034837242039936411538094705893584271849923356802330106827535854284494984769777311607382003615142923033055559229733971392719638998375593616745941447029214919822195446139660492849014806952397345887192131486191543610474111962654810465587871392525406832193228995363400659846406817335194608502433585492301794116295641107806198771807889676430890910611475636189471793268250820410206299227962088634634864289882346523873396567370263997457325800121255048639260569593230731997084914841138754753683601148335212955962661865728745175070286540135767568117652838937606542415773663295611809220647681710324553704458626853456983421377464014539395949496297159890091573835604862601489443412182261050346616081755887566680885853756074353683513634504137707905653942600896214583698227393479923271145913113917474092646755991846064578076327504193183674707804934490171829374174186743582442766213424433816989743371185595809354814408798538127794498047239351044762288088428662265603847139141139719024497600122315269658345941612551285041096688930187543551434620555459398647074979567474261365321808351924871702776007255570596585079618250999541315051005629706387101884570749039983761330375481820576891174452062386117078737638330656178085003138731483704721231403255747656307650501532580785238366723489131666504811865322196788707618115999056181400936417966751260797825667984376137769877810065843631132175349699673857777681373916131557927206196167746157969910745647974585054605129337907888813111819087196641033039075212041731618797248073994571840892066357987639212763988254433478031081827705364430861762588367312927965970414544285014126018494467584872564945811801254272261660640040457668096125640984044110406070675291485315258667547138841276835969977445591067991745445320471435021796889772850633218001788207712045059391715375350610307116374196129272801077273884810915307832858145257437706751409097662298809900466305555603506994634168131025262561789842986572226327083656166938719362498609288440857694240390191512567566413526887787017664273395898617477703708298501157714460043621985229106919920392278846388776231254694983175361244305876070760905050427182789142912890785856979004911183432176136749682951346878869024864989777003165415577936220544971668396774317251936474838654345309704615369909113152928456896891367555080068854281138317693172447856107970091550426821920606487738947114980304052240885031208667255126982485574968791306071200896748923634570395942772097699579264297454172376559083234749108605506168224540298984968307414209674522455489392208748862254657626493294028109652853871297433853900111947616255062346746030300915028243436845247467996323853565946757664214443189118754451871717312593371937929470375013595861690849829783649983325940442058791235685953997107460724533415869463149699816306835547508679025324032986899847019090768741436429200063205137230664827618552888483566434489963282555918636359836699924113690043338700627968678334530986698180564824391164523027342712770929580220438669487937395006975478490023855856661598434712091905307778542819264301944185805627629174350884535120851560451710493951831827713792362846674407999451916994458547264162659307308039063066466672498470349142950362637991750130486153174146253084541516827545481722475016220440849072861077710866978077095555844013032777787920570179208843321101654129307545634485901386538410091215393439756271029426048610971267278905712242029836915082959711941632409484351426267755447323289010622270672072219773891434798936047639843448235493614832708468606887910203616500413352426696555670420949540108764780646649027670652298296017002661751649193065906059864032318152336179786150928665447948098547792158308897315291942463855568930248880164114672789889861250760428851186436953055608568429278946926700866968145992905346430871889530273137094180616698392187885186327514576616447811604206573565327174630244518029718500715937499964509111396619668383864302255083203359241975360801392902820874195797375585091574917236275014256497886613711314143919816932679133535432399823820618774374616170077077852033657925786584177979357547912328574853220094884609606537562097520025243518590959219290729953676996951875386282503261647530405969421495305151726969636987074966495071028870544949412898446045372244893040878042258937779506708908315080750458812657375331530968546783666646342699023849549949278625704072064742376720616779707493746262098007293787814845773868728602745549284894234106263579663792675976962630458525831761540655524754791602905508896347440995823716213527023473271394958939376734189138219646666351304983535348066200866587168316971544909873901135098699892248384502138988810751626685856727977182242667911523597217008588932576124587231848143377887414296953693067620303670551185501419547126168078419646963101445243812122314227819383577113205847249575517508744166121869077962468984137705052517488088572862306365334675971483366107326875216140917947630232629407897307031251779873876814820363660535135268799222042635103114824647357231607375542567734521698023646677916971236829568633301728789864591881610452446275437578391240022607180302828228098106365678949148836914464509114849247585565573011819158690098203783833820296729628410716645825715246356590376223228725938791690021782327858106220782396544814261487709446150308928545463719301734569283357334652344394881406883051025957993951264868382300195110562941430076111796751181141052211701649136714220640286638548437832322727545413274771369218861048831663374673529047026132147360297321012827556764704343953115555306513103670755322454756726996789567577434134680070799715202884945861602665321983003912866311596966170229342110834299388697959500632903690246743086214118200327822874589013233304382551617554243411628254171144376127743630921857268675793916173917656240673063431878241063785990794143569895560779891031282604633179170765214693516048895453441726206135391269457758324282998059219682103009254023200493496305662907277166153655724300888548719233990232052019622708171711526973068249664730337402539645705566874781209015840198590775729808509413473512791464472832848689261168467460849047487843517656486125613107099335495668552097977198038294986055705231896436333628261901609016564879967870293899778662928814994275106026619441178816029802587542507826474664652312023814265696250957608941692333715716432781907690460822400947360642347776240232467496737077919818354081302078798406380338400686606090324949900306946146792327550324765090473021856132591299944343079656053327286236296025401044133449975306718704808941567708553303684486363139421256098184177211891978498122259386563278245946790923382612572623641710182043448152284044584181029659537478013643040579351608354605154309533013122637926156342128225229029318562673133794883491914837561683302570504997121784950725928586852772753549383720043137844859916145456192893997656496173233619097741356442794620180488112850064273719507531919725856495154731456807867074035780284821385747037399824129812935716215132137566864335598934754281986917997441649811045691057399213571081151225884945439346271430551059652589285237143584496985739100438046982568294248831030461345299934152906791195032581650385101343729494267145903694484038682129845629549771170653306558684390645512770872532629418205431140213661333413621017807430438641704361477480300033486334350769186524645441301415969896841334576901639699879986871013815298604808357215997695673380239705347573498004173266136567351495330762915037648998367406682715317514245559734932085959177556141743167207646077209360880360522622514870940208733215303148651492351405729232026621245428651686262427100996895687150912033272237444960339173270408446132055248542189467240190300745653825969210859293080104429859112598976878357033115221242294478440514862435967403693344237880411228650580901331257971513899556005721416804517539208579970462586154777839924800311170395264415548878758682999382306026896729383048376582554744272829435907491079614465675324961397081610610602727245424472275965524925712281689886055329874578509263680532607740918832701494810675421596661750427808044588194823923400733212687367772607034493876485584941467628590145628228553900581528282486191598006494635247805990173207746341450276271110358701591740355964605616998830662698835381277926979321829332908418924051414316196331730446503570641054910890783410486452056760566689429642632005148362561464445649221121800315187496503422980332653437219108405290445358442471183748349089643395443965013761079555414673215581818772328026856504388540542040084843934835630167868727024112329758068320554550126393835723595391835746941295406616259910977507829827092746554100707621416811130957769778317293679536926492606636592142773660540204782780392427611048055895836912928143529774555569447599267689196848126455270791752737658989812999767056999491856048328623093379650864500946352312267882969578081716435254422158331084497359062676103802313740681919322155275007938033976791972714858857149587807840398357246998314140142475509156953171400589293002164380789949172446867242894019877109907881172395767189504987608282311640565661326502881588690211471989565769704818228529650802659419245903790569476615173280412023283163948093961313071345922480269553970039706294864272102155506415901322868427665320882975565721783339813075580310768974724672492961782819630133785063414783662714674957215288187455395069483789253232465970152843945972270684932027665360140482621441452710326992201541486986848592484862378349520361468038901115959098278218569626841358930909623652832001256153554607400720099473531560468140578829220625761867658254421875184968797479926038431341069061589007523512633491040117809572957588777881575936646754904439273552042125974037868287375744083234578698491274679153667370618577568914583700700736191118003781487404115763087077333150198078890853889836196512958524906753571045072029295555005578290059786335719338680667299726012184004224234323855953649236951362624351191228102315206731788910218123805459735464328159773836252204131103780436093293443171039640885781948624958763616385339293184681255219381305849274458881579536397435718481226861964764018772953240556291829722159588119389186484933347511051066934717578791623640877684853209943659242614395292950813340635387092490221701387154098552961671337887466617823296343384735493721064181870605563718299315894485452323081026150592396526400638699289889027790991013636206967395055187866395192171377316606474755164664440405738471843011286312226941158610041877232737921345893793610896313077753747007955982327606435342525539811038626812673246952805600455439847880525368129656855517107299369866166742971337612236241272046727268439504225696731017514932594657240541111743203754589979994884382960630502774208266995930791747266103674428224388389913764908060597018209672489215036753160946281521209271856933964446024158904257350937079868735879227703631106990752575585061352411035625983595247471539645999858009898516056790259321889464610013704694174042419489884543775380974770743579631043202794391518464763394467219281509485742235892033886165626588031705347314584437227426278928677718576523548082904229941682063335176570706902220816166906021384536808930656041696565663571343197646394706446170793431678360350685965298180754423163776792808706163344983907502741999783702711444092868077171662901274828245149067557619084410202316944477591984950192261016481493802813413240876134773229366120508995099045208396001671452543521252826104745340955904205100964902684090404834613870443069810724679860968564934075742935586443838574010491023965047274402268636929991344295268220030113794426865409783931013603177348526895369225626459936916683868162954371895673577094929175849773007763574227238764862517562335227876683130105469093553975258150088787211515968652443876365605175908673648992756021983716075236110934835656715803823024614424349369501584986449702091338396124014866028917369336002571130625146275919564171184249542836647037487009700287070461898869395168960060704383055537652741493719485103247832637267967393916817381259717612093474292092631595663991576418160717390882001446764497831414924742742120908074305605810556143923722135424765158881099622869983875934203408854387579467200893258926960637988127953181430689701386620033383928939348078877191373404157152177113992695032492133950464199418411098849879769457081963352751044693005876402157852095272972260794253952687443395036351794008276807621758821214707381805899078849916999608150890548685499571455346323776116252428981412054822031872148995698009034879959471983403969088121546042095961056327601446636707698033716915978952157991054218673368786197929633601766540279229865502256878607711411257577324811236725999564861204064104845557967862760418181611049369691246461184656280543900365850739035400459696757064261978533603581004693910938290826735579854794496336285497794017334961703602844996190022859793209137728391250265811383350918325548233296239329300973347379532414942499178629436233405228884845393346087795816995960924724765416474432001727297695554382412503639440145721877252835832419891502074247700590863564318225221972566394608529513793127965997304995677966850039690929922276128341059695746248049935091054767036872676152213008546958048354281121293405353006778573707045348899964196780038110721336951291410918755265926562272181536713204500152379139336719215026139309462486104501391355564733832345443052999019862784746926520811021487357432647013934280549656609278138226391039859412712173340559471950780657735200174016050350046364231539932400381500721219869645143712373795439556675007589663075259608622739056416264559028241671376304254327596768440673295083591037258911967206765875517906694252477415928961458482907519728507863496935028124050762648280635430609569475289547974822713850060659324539811458799595506325745356011616447875472111296064933683881605587245540488545686483372851297550796911184405963371830945055854822357782271722837574001219061388403253943505967045190285600984387768873136891984249242302683673618246828442773919737812158036915484750211761491807900826273743352960429605223250436473740712219766493910536048475290141594986061826817790927900395744974673869482046125584624283596372997836686024619331174749835426341778868280327932229725388418162332449025870488999779422310472623236519732710921264187090990713665279415171239401741556977839148484924622024041895121907467168467262266106912458723233074188715235449610007088631442123642519562984768074397650347741004503812747725995474905654441053900781290654573258875709373376686728515190911461900626306776960772398829672293398771178316034329835154624664220101370310115302857567007053757138856690786176706341665219636870553923428216760279605322898795815955789794326394625535109939123103906341391979695049477699344730575597652395146434079603823631056584910204596733265507955708983772725345119357149368343065124042070308068650552017499539065816949612048671805908877565736606050695313981303893213158233639680070835398570440323024505776895339136553473959905720264497587185556024416946521332787761403665715180771451305148061923209918801870201534288002103496500334771984727693982633882627013875158749262073562712526689137628322642766123339231953660079468974556686437519605940117311105938338906457132961982526431994056105720203141476694107422836103057295513722249893979091938099860686763822780306871492058295343972201405656928134815790052777627782184650644631528290822617303360231359691193758577230363009424278256711500668941164296623759982387645482182814361658832207988880389014729183328715697629884218978257515607121400057376345454483321364364912108047014214172617874491133142041281715546118730608604723674066145987493718937197871102968851346640198828474042581492491512162584216769997418499575860140033933064982324921521748758072785362181679605796796285027862202019397897724053966575637387432535263797533188956799015300102143008783109966082524511311892810954000093747963800716658046022467158192379785205830454006806241721893766944480204297112928982843334665357974483634167394585550252348837587628395989369585077330160504191388337678382246739286723534686537291015896173300678159007463556960245938706262569491641792157932762974076426788359368542331582776495992866616015618918837148840882758655468421132966306731789753464583724288143577043108202984063493056158718576198992852327654475517763259368665770341203881481478156212907859466640955575067629387505490358753646266515177984303920752242618483851117404708771292176946960892018750717373356443670966575714082409896438754809172019008852473161891807206925972396075651487104897367832130546397139604450185047885764870360667046315377116332799505402309948897978601844827216911953051426306915363682691526573053699295804106994485220642378694743053886171734155205289327424400292402745010769889829912033233868261901008847134374459845429503567743801850469201111741414590145250816617885033398458273762707355976905924056009607461917792352396944024307037728555779149661827435244969671288374717637519088975045742783885827277311868403692444082193263201238681907050887270902283847376485352168983816367771469502910871700671142751172753871890944221743158481643092194718957846038800785538503123357002823912458033037632585048171665394828410150763797432991871654589028379049483725549783748799238741311261024726947182860938530049110905780033639788231990761861951483187976002104389185283232980207450212093260200867037252084516759814796181803230737455893447847759553193712333038845148235488793835481691672811807550701036296274945709039104412381041014986881628644014795006777277338382884916364917612863285560595824543326909032068493981287722152502712139243460737231546644530710196771784282026344232884500469408163920245530654839793219739695087346172704635240742750833454878007014638580056158256499308674970749142321675450576681838677693181823434120168535667988757815638816345606688300533065428663978731631372659769029923323942910172634294342866174777855805835158599113159569115980333032190571775128055226613121718415310152289736601873472140100408731855362862038059505894815580811992428202406242115465754676193565347946607141250626582238107599013703811033150971163903755735309430099295898299297255217742015680204916707655440188414623345388440274870065518984185888899195488789789304922179853075128031107281962580938939446809071591785739808467749715847807281962730092494920010090357958460984660144374115431178845462267963569574036816355065499190080804876764997526323141962812028955518330992202344669087598249699588408551660636986791885102412571447947111876156676883525060643472866078619626671038051787004966204461890875352994970449592487722784822755768439535383071604568066283693526562420302689040571065622381785721175235578320424249769804243613975205818864793857773957773958176125816378301012050105076649869372588434185926501052581600138535417018919225632587355911200343206470095678547091158199041131123366700743162553846644944634554981971221866449325671559009277483468381756723728764016673035491415222188419649263603145507635350599273739338953733462742707817936079296057893746639341166758725753298763336213411542996000174979696860755990383050511828193477907364397491003668652535746591350163539721203187159518859030906785004017631152820049348887822828318600415119752436992853966706362860589634975151140265138438733373362797787241494352685469580849036213393710858461022678641326045671416898897550021850578473898983630305157325857382146902118658144051154168962949321445027940956486308946740318179253081610433484417422139612494284186655955895374490765513223900588909624581070804393190966723198015053734813855548729760490198954559211309412888719788504641065140267787347669227897870731461965770364215147177747664721746591279348915686065611894827085146324577793716265726740332125941987145709877215494165893798838620555411688025947013735618202633830091776259322908402329177627303727882478259020631433549381583001814130771612413368656078823461424417808122714742898404466654487739277663434443722671703162615184279968518357351898765453616534216991985885361346732601534466256911291136668487252913376685920267817635025504999234514593639604880015470775819917022385546712487277022140118011887356119563754126661453814994595277420793657175586871800873063396184053604819714942131610756757305062199844625770757194241878972607208230061860341438767049658697259372569150632562014562480904762942512476965915653934586663473404617808447337797175907410371102387729139039573769704899088346484110529401616168934754596240027944201738498110050728024431488754928136074598670200928062530747669804807691979692445045381356549889142317915951369589810616527265026783883660921360011305102058156686177887896647665745552925307407407584370515749328997971997448034967609070529185280838432270700397016538796813224468919444537461132306680464604214914952157415676893955091397993079420521343838012908521937166920982063493028140466088077498120150561971001922400267162639676307324956630931643430796956312880464901794871227296687549196874902998689338294648801474754036434510475278558886411725089360211305008676990291116400561147652504804044346701844399045059467594894537952750122120273935400498912849738313662848025611324283315982043818912611198986839046895944480453313475999717623140082637799963342767391987414300453316213746969123627094374069441251471039112031713487546925936970750521240381666395588583437972354496109400408772353371814695649559457513367295182448202445904477986760690014558655484147292512872121492256635781602280601874206580839630752765301986699304071931281980121057056689576357477878744046663501224897853391900140574822261122846933550649072758863800365378764804474930402601695061085207697652735251413510126250769991860573094788148719071296386299543973944270869445770808659937525007423080636228641218322037057673024932549246076846221716846712617617580918435332312734289129898525441117722455117963929222310625536764685293707510044408216479439337341454791503066980986620290133774064848915432085869763173211804632233280553680593923771132595217664865659219051745444721127511023097340255702246551952285249291489291657327568509685530482138505034129920799275785083012877633407086114020819765880523794937996291380034648696848501566730991999433764393178052689501266291366234447858062143624726923865870040397064400912556621303831509610636392233115109323496929531173879840447995628236542234672144559429945491837167411778117440521055774607161554347994544155446922338616463598334154235016430546908329761024435406916927500036084162283055463645532349032124637709899758233305762797686897812022489655851131732161670316378186052534743009979034264178795893377498722424223386635668900410250555571571910504546608741791549259289771101914877417031137771455441846425849254735480710202471682699536225957994781656358950739272150130128091752092317952132383821210397229577859614801162072749928273229307737089795165391472932245336674790772966265128006758412676980381775904537185559793328791486951097689989994579970701771913493492087593772938935452915272366563184533685249939855479316954634547845382931298858504789373478019605298676618535344197272646019606057367175942269609569439947994425277487740777057567230970389744862101102517186282437947154496758250166411305757489336079886165147352321815122383817026819145644754091004540569852805704008498593725809521211392410347970622017606275947589280611345252488596799595203646789145053356696012972759393444240924396994409761664841135351206557528631737703618815142239090858995560530511124557691868239048942390119348292791323561538359546576729656751763457256761436216843938545252729043215277146022198486869098823887075672079806976141222586342910809896553733850703801350499489372653601385191281960041527311163016928453684334274827823389829996058860881295063204809533566054892645419297436271572343230957902471165667165377299668195970413685210169222201001820431508038976720832278730254711467670218484802589903421703736554649290102050804747823922280837082956345060961053589452163181084728811474121482657564077642653244580047056202962856922089741240194918664833135723334287416000359158480074635393828123991610418742988134324769539615840624014294058527614603407715839803499596737207828581823035044285627928881056677198616723010802399081125913181875937274588751931163423696456363864059218962434335335220208622963125982519902619937086988586270249548170027156306075528551897001183353836374405926757579284891086922390799878985583450764542235145646181575797398257488439624119603775462684912543631079670481834861254447800369120043046733731703487404932646908740776460718689998834504674235259838946066550097646172014777073877993070382773844678547959257569692849785134621635484945325478758229398159492030139978946956476455297848006320670554421802027529688082273552559023779580915536070281615523864462446457857338262483462574063135252434249792290126969016836240601839820296353881510083693076839029227859952871859084476173253921859691365771549271585720261375089496515217752672653408762766596691657683612548874662893239153053417578856217629756508467410045151389826205913066598842301275423501592420505376698631718465166524501197329203699772216226380703913538644931123625460614859514840956540041746610308661619489171098951115581463625165501511453215921065873914968538812272150473180786186442453741157132998785166798951252956805290631974824049053973001444478044271384960579483592640071787368694691141771694834296600988005700315327169906226673147463419204354012622676384548645201255470138480936731385072596761636568069101514351783973469568686553505031441283290274827742063497833599107891068862894956398486360445433204400659593186332222500318296202209343511076021203183951875766268939603787332148801531043514848115465424621599771386524207122429244691050205148079969649091650022852124178192521703979732403987757248409313788809392653381686272430576838125270575851085027349022109404833400483249483430586302287665661018421657484492061410740192181616660944777141949624479311771400359473303612699528619215456767995005896215760228546011435864189111486286984716901611400734153472729589038059009570598006657948918157982006237784603782287398649799894326826976533051332565857997576836993595721840376749732421125530151978493291950337923848436162476553046243350027898424994540689912514025818356967972663420115924761625966652915471406184987452611968621482977866920250210520639773276059687758995690400501147805697302619598032028282364767406320574952415084082051539642231489809983060796078802089247151958541188116610518130989064497001236102225228577437040672901376609322560511276921787565937604158423367630574545681970402882971681736730258587862315393927757714131421509487160168153115714671966026727152051946522883013110683343341010923176997443815191812411734902102401876009674475482565622521784918881703157168340831986568389226803774779408433267349989837185810394542441489717665210683722811270150747253198808371702211253648804524743320044454180271776667275624197607187118111702970307436251469527557203571829326078730175088404726956542078515508027451684464296008439059309523780306030515883452837525427238509838117700973991924089063205081745643242924373474062238676874217344687888162502347970164651479534348256901875551983145117459741387433691308553448604146175883164505125154511791194619240008339836591254840984935407517856099657832451754061695289717841632143959485266528744740829223984822131744279610017087409253440943716434509332523730941594497651826503348972468663073192290997037500382539045519160761538553599024754928758840997321583402645779452525551313269832659081997697777212725018585008585312087594751671762533221065363832966962829576188111481217829388208483433644629426492535457508414838407124947884790131420801053748663412413174482278834347020635076245085415836199669635453498948440397116921964772427204756206408367249574040007215763162285264880704537630010337910194065480758724345144622732409151244455213219646788398946472728843124660288662282973877215547898312167181329892903959500470650526510418961563767756433168939918872782314866185000396674415876706429542951097396854395133838162255991850295839212365134981562199643741117361372435701567752750495403088150511830223815255891486719266700357441078328369077145990119730878045175111264833641756450472941585950753408774287282020897597868244108508357974364013221180009087032635907902382489073327089327879187550702374273237594018732009676918294187019595334814383344798875007255054772663360674660488304977328396027369396510142061181350862077187045697776881761673229105500400050164173697878288703151210605193249955800310584459891341034072064583188960218297225268063549396068629632231691247341203992974595551291536767938335165573834847738861316046696033913650165296813815503848009550314376725311881046199734141841295845021127705014002056280590578458578011859056685107682661172746561250337094401853789228260635944156563336764162342703370632763989972238971690761181742480130765383117922778909445327779652616952218935934164935822369722893586880406731623616995323940561210203360022847774696708216644015276480048682109964370864842434621007499900521658692930172452135582477064689526630478923907537583126449640440894428288946546868711104900971419031072139473010654273012720108706972249578502459774102483971967802256557521276864875485093137200062958658622870932360917394543257181924731406935544007544664266855341149138544236089800850228566466853662785635642662125183883329662418178730901043311420774038683952573947499878962514072856950108585671398484552940491229746247515474585554838551832866386759349972356297022800857184592755565610441008351545968305221278879202629195935715585600285048296604834892681326344602439603888751308254428810051456669481136082590032180682884152420272167550628905312103158303870369951463966745276523331810062247067805447870356245233820382269457784361181607314780991060491159809404359242973357308327385811760014155308518100185037159099110763315958969912382420753830462369008101959706968733584948536228416659670444361857502229609776111737652046660252214114165582225516757998465308997491071576723456353339823188934613461668909106436816396995577529289455919447624726001392837217369280096247072490979779445052583784515889125663130468547249696717236885439499091878503872578984281482624356013953339372787749300072055882631410899339114125889337521547797986511780861487907821800675106964658053612980404511893676663129059046200390667140677799286534804293842686029578018598256126686901111403984136531527560937470316356729225982185987893540048391625946562306396142065197368650268287735496040313568400926856999085393558359509017962951968485905494886985490646323675374687774661318832819268209575632924958818802994006215963878623127875754824731487717208172073231298299988334620470876470158734776839689166277572465342866802478243443752793623482011257589193026301083566005644563353828788117632959010661549620824806222353013792337427895320205393678698717388532874066035383512175470701248087683033213217817378498562088642750149061123020794282980877808538830747965465386703808497603166343747313073526453575335612143429001480039691352611384929781113503026626823530889017541154418831397761953436356674728427640920711366460457708737836580102435355873178842308021591078802019515541414934286035260571623827957528539636485224394409487405419076454234369813281096414659818074601489864344903300316705326376263902861084507819983625302169940191269423434732638943727277647344928493190966780523273388234333125181827082129710948278434847267767962911075245227547168784402004787247212380982113790573608759438951746180825105819337082770276134081846342678684644490194609376889581281680067887452796761410031774967069334817454584480675497088540453490496551259323350403547091388541922066496576074573824993034081140482609042082730298903064170018155952701188897705113674209892729849611425183776223015889578281265874914623398795355377250331177225168867776764327261505494324853026787545148530127412035732303146509778783403922736683862833697654503501484605431180191972800886808989599220770071209175748856470139341138126659150274960178968868342175300214731442018129206371258152463539535305543027955685678155083105592579201791780291028640489558593151295194654105938969455905465727910030836977456380015993168376344399676869459451071056553289968400616705379343418335372910007023932588812811986625143518492274906825013800050943455439023015380168307806900775938988169312400950720487676187441210914131888791367429240684984725661239703170891525713123749558136055905927547454864942468447472225226360905388860154512532729640797377596408905424373044929851235202979673230405533690366585826658863403878447883963828037977195922636891176325281391535327028000725502280733141024966791432799649548948903706550650998309921741600914262239687143054154084159358380294666360536207395969955872714134704998861512682938702956463832049504414962006284754020561610066073766717004235930528446574228080526833801992415037146480740872052359115008546500792607173761157851476041072339978595192140033329059746097800547698440707866820936139675175290116631891326737278879715157526644040655618213735533847922556601642073529848468293882751933760943025384337475793173681110690256419370931192001487686703919855554582176698276342354409767364148224621631083694793490227001979160032853700565067732751772437896749146803455871320472972148660888925333454450198169395151629267346903745210630786138229298516968586722731280608740430185151082285390143309576536234768912875373635090612943001128548796498785663367910731686535151366600030241824363166631230968526080864344008855717466407466735835902824285342244139981161557133507591100284528977479624774186130684649492612666644427273468820561290148607731152472950038962843397376001030086333962094745904371249053268822664415443758336011191709981877084185490453257653337558020221305947588063376542894676741755829779065235667120600531462541686655401046603836780647591236786288102409201953736897997139159675019974622626617927768723581452049846594146983423248424076116160107526772696197433495302060945987241454710664824153805929409018003058222416211856177775868280132427308813297161413872999267476485500733360229250002694729977912534423671278045792576125374256601746127663050327831289084743152222876686411894969108479953073486934211548277239605377260409938888186560803485916588986216693318360618237050726374446647945231824058057795277629439752574512238594659834206038675667630363003828717989221121306773921261152643723432346058250592659990940449239361524993714336621490032378339313302906394749139729982591975816554135600640773895825406761342047759645480477732671130928547286141989111087949292138277214096621480761593026971649961662027091984384600282897048482887841028298176550515118000903299545046909458053611381322589090997604833229293670053196525766521934073496973682594527107916198401941893948228446422013404726905193467281783483558264780051878289523576307714209489981073180103644498925768329804214322017835524950802768417349250317659888192827890453759403917793273333702990873236490381591078917285808048513601222874588217632624891054080788038762666116446592173264902503635578001114349340215783823000545081434048510336119974201119399146110534001491314343096019304258817375029806118982653874151158963205262580840673897225934234240048883320741937396316826906406681261928424716357057473588463947654138200205470802352839589673312751827135986070830501391540817755889579727699117703803336838456671649798704301273285677387773300912835981511380140200216681146877004205801926255824856236546221311623988701116729191767922125498052315588399560933949359224596245643574438607655040872875008599952734493521540307672118351206312768667643029179842367762389398022744316977340579314937258961706976708476167781147695140729242368076075963125550051768560421277133541756198002630217564477460334517667456611377879945995321034721576578026733111632612174850503555074184739946654226170611513207823135450303877543197638759129332992496489622354587503680017824865932681281910266568310434376413330160790924858489435757765697920325714385982733825922179577099936990597430125891947659720452614332185222744414516824710293920493957700015400729037058139984147672096710851472556950871735241378098589194941114720345341596430217462444033059406731100991790347129845859347873175998580726465897044905573042490701498268205570942172687489989979568767678169457989801988172620541377304104120916276838266414487210378539788179033050970302832688802391983476353770464675760681286680057964333513046010391553746146878967226067572512697220131600573755577187804706825759045018999422911509284428775074104665996786032757971480306222386630389661519935216254543185248171376972605310939083316996386384086749213555384681591727722785105301231176503075085895897103494163411635690656429967561907028498054734746017732190047277601127957043846309154669632989783393944999410004958536637929847775899804040265182856433650677012517831742684041454081313444162281935145684194880455139052085538526444169422064235121611976880171113819044160383779414130489863600224042863714911557577854423290022122520659733516138183849435687230358427013938171329238678097257927214342267179459071459656672778945468802335795244274165977377577342073198504049051779574685430502073840014520417864630672180720065462594962972249225033998613948584221504563329783654812118603120882329388623695479597464338391619673857793517053743920705615817518126686807235054375894898398692032082042261800079656073915192513773648844504377694120699392065107875528169648717089789271955281688731579267635532745127482442919701688962840998969284705957267444824334282077124180453173845977475786722665452097344348786861148137364892502580601321070557671557609709770070739678203941290252542376810238469879439937707429130964449421224891078148854679090646441092650639975977883397804515830975584843936666642685745118315251370245818733516789468453330080047349045439846592208858122466500161077643624593578098669840232433963473216959000313439829861985264142927335386090766621046832769443571703172949140863509150140103990535262021498845149234650069024497625665849601047276710222150771385343471489853133787967042407022062546876458141314740318018303072577146636666744587977263277596828992855302421064758657689593914856961759554144313529194519611019833001664440880270305160583400346345142459548256523109913808510356751650277963643153221713557949963611407650513883289839355765327606210523361986364536991749808363574193215010512374990698190736330366797160431273837933754285941906838371163667180681236207917463373511211332179962018737128115332510275868726627202936922459907088961935834010211426782173300200149032984400056229543150140532541416471836145302768218239022185223708090615091008448712405699971440037615665837451761490751186939311656446931641896538488011591957513233871770182720413673606875782299662606126198429194644756123481852967323437268834856770883730975906750210827399874960923663404380505020902699215338835172351947243518659174157682696531832535595942253913428890321650507452657084005166201669695937748540341561128467622333350040808760915787625527491914912775304670646240744547238782701466335875767048533410655039415603688433354449453189433625159843661541149789787248964557612492818788827061863974717189375761446872921017228822955436288387455232304242179895496684088908646604007207014438049619857682205525288031533030616563828317403687836544110762661715446454408544512154168263305890520925936576462010154308526424721374153512543732928211346521647646313136701824371614758551267818103116394534630235557677746418790293819363055414804491785205678571065127200487390686522917446894723959255943821562949263623480363178347556210003731558298407600784936123201269009828556472372080040889285468643511402819733014184488862268377237478318502539964045238051302592105203578679598812710039161491412266056037656886498076029366274877582797998875667311972988399037306834128481186237170962391643285359157010809001679495571843232140140901221149040307179053283079977518101962297460491991049482729889923506750289253917228331909500771935020247995127266704511799102777958265520962043649371037781332006719233889799106051447138803455366164994004614308257259651119353996520889208618987808824658203658666875525348752515367925822489395546181675867165170662340527779622166598974703024123686895220879540958677517770591714892898544824251359783304696618888671064028350001333414336597627141421600278788709804508567775270321788275376856301509897996015487853979251764884944047197347511013541999081340240180239099001728994765301101308557678138409731402999635657051132870509298534900059079435186797094618814187194554239656019858335097267806692688851498152411105826551954561512886939672752656110938206028469543906656521636438611909187632955245898686251948851849193815192676209917335190233890327129734534528215781794704012303732103915746219675735658133855659262751217749852496498571737287839583776054837253145477466975020026831782230810161294540337005612525919903449418801502139775219578255276254962360102858951422280340451918528245127787760936680799330996943978633686681447947508829317118870208762653631155879840542313965470151937133800600443929354459208217352886178649889508296067980412267517652640656332586237449443236449050811357272870695221287573890597666491428803306691769918654409886385905211813363389111385301871555877526050773742311406583266204309727491572407892882876638480340764573802891425393886737780401476817476542135651696187145031261002837351361782982024912329343516822968044729142355189313714201704385560318920596091006194689347841213576243907333960649808090836984877704301369879117948210438805023806338961221364795850728591343022365126619452275497872926087028375463560383369505308079651915384873946580093516870192836743277997443872022542532638939364600275116150291592233529263725287815631103406923083210123045709743238198077814584171796801916727970164225119711249823418744460771961723053883294601247104812049771390870781302900568869965321027235513133418443492137133025454736364477228220071864283480086761390848200593147619902433219195043387406313024821881980099356415371912436925729460537997273326444331402118574370785742608529456958247709701692482353584657209955421641383228539764513459875781136445494217217695371773407130466192413471412316153150902285651033831537709212858695081679158645394368343149933538973290449829706137613712370939866734849879279956932296005257891467987939080855725109256596283792780033340388850431061247269444705783181207366467824762812278953710323769767953622409137115578267088354675317172461642079584799931375936647373465758254669148512246903651014250469782955974090188108468248750428566722707817748582499968587035227466066571118815545274168061811379296106856934113973786805925518874472493898192271671703721621203180912891445170694750524745639776857425225738160793071396412447862958448587251236913753283377835292354304360374019561089962149278281071880027902444350501678403076990334787474951063547130407453177675588944909579389697448264350509672390065406210929037400016292417196912194768157080345021541414514437085013294681513729134485267837938378653446298494723167112009840354925676584356295246066381925599370441744398106900798013196953187310209866906633912984321425836370409044156857876239447840672170331385528215542284922066767452959842594425823344823011918348878003437526702225840038818468135709500307686483651074666866493224525439330937324369513744396730711523160360051397549432720327124868317822926077970014092257963768044281386745290179680898960539951466732215345319871860482472731626837819495227589765076396464018572996507995718083461658781452709105388153138488314276423682663611720335419783554342462280488011704253084242910862762805624721776463575921800922228572304357846549090333073979311356071294065297197137413469644017864776437223497779931366927440196989032714268418899122638236758414168762308124525055111866420468982222131676285020130240906242609085575737553184364197877849916389818786850904335599860761654171585893400499959072016200365633355759298776209611015537436474456064090859399626039223071642052416808241580977429385490246897923768378601510809290609696006749177940237707927983288350063205865575181900821649447496968326191104696568449892072575211240986774539368951635544913717149944082571424188051503432904009894993890323606299879703480970783137868630156388456903410817237004346863056076289407002383104181962456065195420052194162091497413286844890414004870846600383703434202387541506285843115499275071449679620123659327723992991962324816203891815687117765299191115993473015120671812995163623841253539125064747212537549969672134943910584555891042886250127135800962799802810219183861935300005368288736623986101256242673082740180466467648003793551812521604478983554419741751694764682213517239153296324037710943971912694558605348709731697718489042173879975199289644675454095935755793254050523638530090299802503073580817197745402608043199318444499589237332784539171024870074167976607540231059623042552616086270582969590874943007894004878356153672730632017161925370294701509848122284612247162493292022678646602910233270069751073241317118466064135599901393853181218214289472176798433973059296236467429012674105011512431122518707859169506734866273557228504872112400024908721504186830480587531071911671260293307700517988794066292262621717812545367053284993533047749621174973043426670694968763743544507106348926070548231184988364622642664239816579798844145594835023457487164145017230994046958167141571977730145985191117267539297069234340518040130464482827287948718468150602846450417753272085302039015027985596593136874999396953066598826931561714984989590103719937795312491443894822111825549267198156630200577743659787100704761325420706132977850546945610340938811299598163092492927980427159898061058204829961445014358219331503410693882891326382976490826367411367510869347145724376751168222459580470350713776829110452022540376997106902066411910896695313351180215977178120121366615275367772544520007199943446623840550718135546737312431429975197544254839569854277241141435966970367806950482268112721634358848667510936397611528222202320751589635822111195061619057011458011503274350033300217003593274954102642166313493543083199706843977943321992467716820312676747272471705065552354123798752253386454113779444162481607573545432426297997615534790265872531779491459695319553801448735417932464289356767419815396848189319273241841064450027000058617423256559196852206280682250646909822503690826338354732762061212072685337812637823610434931143069453147544340328993073679316743583203283520318702597950910374716215066340188751632184343512302606403240170535066508308282510731585279897451390623058788184918413662028893478689439538918351685472550976162300178750995013853704630977350798743788123489370156722812256935414238743186007410897339926087556386498738972512657628750875989175805811825277100644875084226256246317079764055584517259973836961650115083459016205476941324376455254124939783589546875485850110378848461902666711130642052609254315190626878681133132704887166132378522928850187169472898042171738413607699163085458580310547168159841362827191918018299271142185343219749650869397502750402980663736350857066197398863040888943456042018996788925194234912191480784703396333655826373298236397045765623817584712262413124085274509996652968212096488951492986836135637604157709527835816800851882217995691736108710485881020315505931630784307155999598959830587673490272141671855292370994405191543078673519050870977281332898842878169748916328257111292271776853550111245687420016859720515726556951532903696399060488411349817766945635772010698023779310145080566686102103769098955854135861265960627174680269666424887556733841743084509784370272315653745484502400457410402820699786025100283590449513955255158085484716967006125760606372250663706647447811920432788680498203729785433243152871793396501504599572982582666812422611206821586133922806288692472532008583112464876020539301508167677898137265537652622567902372049801507823509731831579339402573092354051644988662513600648258492755893877878397789735297967317033292315144203488125309795039506839023565912720793281210775342698239270241610122639188980586903940412822904165309799052938883868472422747949867936278024902349414596666069277391404478231137234617072240238674744311900990875653955173143622653876025812702088948479776703222784720848230926359498838809826026304931895520686299457255714310905240163157705817716831068020002992934956775563779925223650714074629005538459678485244077857035323179150148008809199082216483015468750594976443030318591645386182242125159125371420819865683959685527391953507413661505124740931965577921417640675917518432322854560544494453593080972921988117043754896852912865918027429438152889243984770332771569832175731498331344937488839748156094288778067830999982343765563594816489873550814044661083074389855032524431718902649886464242062329859187459679477013374906766393240336802423984637863839480458295775162184112687311075775334356863374297715869814394218501056246625239963161223561423388159696567918980974208921349957287293683894751397530607080992450385838105860527878130822984666792032263162141917796656153533875134448637154708144385601148164471478392442620203137553640288224863514291536390927517074549360600960469938950404930652002736816512906226838879905795315708316118085945164020475686150716971005112026503119292494959339660986583391080847108110957499857823656699911180833771865848187898644104918578881714487304826363058239804148728267335786935689759331066556536648131632163302754620480514209173479828876580589139581965020736870644554340371213189294958393522006641666019146779816281470566395460451515761258846704419077630942096664120202844806434770031009538127571430954934639583410121214080644989552236837667487016738981601550947603775422427987370583315037776134699083865939133291338789384849880432935064835943910652478934610170993686814236512511190283362479534614951036077112879634561377229045178870479123370608342349949148862820571364915738296655717989707953521335920718248825636199364306950171963552788895125269147283568227072803452581651712802270545328442260060898758958810124395482565084829952298076286363942346216732716961367921415442778309083990987620510732547576415610408473807525093205054748576747538088643490464778137324913981775804185398684272513237762736910440991946184805635621392827381041564245857783632009960278845935397842586157878355508008507302064447081314478209428832050415680762673591991863021616692663655895995900967342544746419651871860897679180723692316473540816181436775512373264992240275177572395074918761165471598134240209490392638555235871083437877605094691409520933267267028129231393243156864250951399934069945905064196733082180389787500426963285264747301435816296362190116043280610304269545938307307897907986099715551724230134192628937388913166886812747785325809274769238500803653023604752266479697102728093198027437152809976428814224654976395150398471604397761318006662118189162199027668507243402504062831605005815352404775160566213015430552369591846060774237874502828768057775362156289536772614502914346909198446986750973214132325100179287489507211839955844926584858809000405558314752792842849693757814413243487577170836763533358715841522253341200864193159071086775897686967912852957143746991221700176033226669070562309118271607540362009416643218866430916704685328456916950165567804986138919030318357017220796416430275905420623622932443741349875340665842179682185151521230878636872465050899828069150301355907005730830141748791491655753097849099791976822888686173991281477136383093537293578408676788864171837188969263629758123186059089659633847514389355330544542091100918849497770935103053320624724835900913611455469602857534982637967445606811115023956877063308379057502874503268734078671464100508615101795187180339055863235072299913827439327762342174186858569178162524348894168443032202135271867289555791783118331685380273016261675106121825333346533038666618022217347721716330425711792903994561171991136519562724108201830637535880477617919205774012307964394936452938627119647088132644549882072346233526082361781891210238383181572320270428984122277874508635675459958568780694846748907223910450022547591441597049422598348337560979435807075812946511445229790743618566867863282507461656123066062194540172005782921203922147665275012287284276721136734165652389183744441629197045391597884647282826899587337492923595443396767261116655393625121929686573549809020731096732890737294896809011290928815080500012705950475496955431536105862943171341681320379861330842296395275966309161072592531159929588697339184155440578688546955637269524472904148482150153180132858262277657046694281342722375093950229874541239071512706274044369008937153349765082901053425268926660874728535030650666741000194611071409346055893304281712001448336431210809036069985037742154001388419691953680942258642639376715188940367686946068333332482678286570310789022602190244948610269055861261347731414379569718465737428837641602753616652773910361438830662136812669770961705625534095178304640636217235430340382756036571727239277678369743590661865480211801000489040144448871117522361334121689736105665389082079522672866253766877885170990140826806653990214862510335843256328517424355418920840519476799039907046407239990192203257995054009292716192193358011381235291228164639908060375841508584951137265968788305459205668815403216034680559696089134339676581791823382076205376816151039696665513263568676405660341811180435441320448423694218165698323561031239721022544379513316312878594356886237013450406434462049437389150082510344400555922442229532647915105455216557254763706699495818550908626717362576884476060990219885017043540919243736242710167633377904068873029748555291145261106285152076130035383376128666209833715598850675580520420658248068150356436992395820845071124412582628924453640076757926670869367925382071415281113341560047685666302740217834603094533001550977921045761245091928615965964892751533192039473613584310520543895256439798298258812241745282495632626594220321088476195254647699785399397429104540372947073957490938145012578574137218475921532543234936306380364573216552968734896406720347115272158202260551867478922650957862190734138012378578852650853821891763916648237197808211366101205856783429655349645106907488519186995441299752470867343028031078744438035437321224645518297612443887952930306641087179093686824408808030043654788030216385650719604682396145620592050718530805954194596355544256479256145380441188790375739254520468601961726320289734275252918638190272093604344380925210993468826027973874709551297286106802657190289041342544189310194005941125380324340099696902307647035819900054197450063444744374063034891642499274118514828261368980122401568557182080594031294295515391721253832001960572958462668306559409770094234118624510625220949029643313899862254133058654976926861295298289377098042295340715992317241545526324402645260084379636848550269769201224539263402188959999588523622518228471665380557076309607259354214772545385176185382629201997818110667167392362495135065700073693126070612811752415869778886861737670681009773520282034261113445060455806275191697599666693916553555995191771824454319975274750447000070212716146138701112967652485721818934623946360059733544447625078321526499933499808401162188461217498222965713637627951472791970094523418234616379854996683950659385296413060741259287686192897629912148426624236261278901163334389804119063125807717508195947372279403007581530298486650464296891515726782015664215065791804164364681034895516646471213665965167434497848907495440638330007516003994770915622895248511298173990476401344458364414939878819322071572066470030654046293542102244957210357248648994366541024919696123297039019184292190731065269565395269275278941065291427439460303144743551377256253601956861384205653666358619044844201705424139624943021370996310749123376521873551192269628593361400093075411511896400418839858468598757511890237065038222806462916576479614611487861749099666861104671186684375108293367898360025048964675916732196825202533156565700083379231977534910080275256081506953055812467418998450050367647522839912055740140219608256993751304435620930866335776905760360194862652496299183942340062934014885335862351566432637895149494121111758842881013173441799620798414619988967996147939994711136213187363864437237334804144487224540626730333216658629029003158353932896810044277097515447862955179361503337822001611357768023457028095374164139839416303850331596419063157427625032691498580245118524371209694928009944960415719234592794035138570070104280056573280301004509331962885459083221144275628888366924698687272710720536855950359230011964045392063358426616748419962948328450238235350583481045326822473282584741570764993282730384576790187191637017709750331102014593764473638963188913733533197835052648420213575717564841875994467387099838975200879297795408849836899635364238684321221079144621403345037069517891819341866563918974076089345673339015702333100018313893622781463426662781513900677766061871010919949106724313290493322380422197238584414826120944456022271191808635274889182774513644633112313240412698675995494916155659446736586559831544151535437916802976658583299521425803855081331886613583798472045997740612480115335469028289070897724143167675233021118088437815453500619039805468547183448048483596908762900506992903541262065072090490100494693980422709239429938969776416738604085772327233585773319439690925848031324260858266931640672761511736260970741326200199965205673111948136948556309889213050485648556417823776154917103069018590235943657861621308711850341832535243857560960815611068147251454902225460188956211528239588747782174079969428615377507197806926054737828947747773169191137914214137039531036460011059829768987505063608266458122123573382332372427475579920658415925285000961694420319335301472512074208658701405054796477591185002257078364882817477792999220099133256079968186521153168830765721494804866961703863369589478394171750616066775533648413897064973249260468377390835547759255312602427095075001203158469836824557313710133654720403067165469720311585754276838674880798713591313581888467085847208665151348628263435692847184822531906123532798870837748646715834082893217613267388705459379896628288823774299287592543612773316565659863391133969120067054209291637005993525441132140320751570006565501742267079292302701511963836573891680045682112296009220221589999749363677414380356905709239910606125895345829780666120345815489120800468392296326795055490408641566686436011467947262345679721500915270570034245283242501553797672710736587161834392289053130420122290346810922358938200682914021656215750579155376363056246351690511251895905064274169247046438215095917731771094778794983472450671305945459322814142660306814187034503629251188755594192087934805492557910787732278038052340187663435642006965671319422037683813544471291995569034984283920593423720542298627340112933335790637505842986142804282121975198766543388650527656856568421487247549663043350587954150466663280061920190813352272073489513826211177035671713337956043723590307332546850725598608232296011081958718621195498397812873626125530194110165904226059352008728455503089065562351541198924354749915008852288213541107806552403525374648059414216644763860018913752661190546416643133145916584294259966226884663444980155612187941542443621634981923166872847092436650204095226402584370964704617639394082814234696491915647893739248200509271560101603305019628314639100915107965038041304650244986486228108555319471863189302424859506518150852660530466212684099059983463061340118506641237804293718069780241598082341329824490378251281836837141954777462105297297697025883840756251789575559240987040482239855188297482875867368793070750965626866922223874444238177543665421280710706058239134514439665316685000552795459697291400850401325542715012355465239483802236549365145741104698390256486609117093949705499798638789718721259394913328339168143365588345443610949309929801398285102528228293193364953353422311596409574691429687514811942880392820480538506918120379321330032304192170052839967575903395373066776205923221467365399518484496776528886900722454728904867948848583788402854333121034664996332536329575740101889261429753514324352925649363133100039786711311525365905750372885556822143775793368144857798300002875630702536502054318734939695139730901785158652069819771174760081326914061251668472638974678020690132963274999139079999448130026864714249615754225789947338495971450910499863438947644664228389516772326191289402730865405381660989587592395497645900558853029846510701168174947012518046222009482720033590822704988180614802828421297792205973046742840894448454072190222155438703325010732285210810393946067350217825876525782825343976218316117014233569288590823458729365408456290279377475265907530939234392840656713597189985991989706452948986023078406592234602172661000475462399167934088948069257453681537185935965236053834295139779501062235538980481493387258696914054833492706840216433173807865194271806659762693245131755871520306208033134984395592082026713662137560992351039563113160709106063599512068117705255849822055949915346024951066958184519371769147568678586095906342799207802573704772398412337244372921259406661861431360408075351220937472454081450300463400871557879186388434031264257450652979300666143349591801590142818766232627827119130518523631970347033849624681253087703553472113186167884338988307428304053067191698209251923399697644030297739795474614512240210201646154677938536312700931459452688926839163017888523348905754336841791240355689870855657419661814650796701898205910088341538418817393125273676423795790184589351555806210315874794617522318373767173922193867938431936106505729383797447135322182723558779464725516911375938456694051031731352809786985015005835351950961801120395795782640167089301686577986580326003545255194202537680713202475027308645525329093318143441850745591129104779914540036411181966549967416103646985540245063295105409753464524208559856042228209343542481451560901165272463060748420228796828125553436868655793076822892266336916033080401080829741933165661473351383784427225802376574257011585805847717545932594958214735838626764645032280325976788429945817439854858886257430738653553875485590827141205459646437803169140191341294139461191201540013296250020440285259293499723812163054965039610972900830745658017927502543778955624715748183720544271243043764052411806246529306649131511823797066938122419249839385702591101577198934389095582358472323804372959445451325573217999666109181434807068391067045843676406507718009814170900499756866899140755886111466149246008626503306113948444372393354549501691019231377522132874564822928339375041427788358718613136506086368088746144695036345037338275607536044943715696965990315877775960802721949855005236911534598828233262839154810317959359428679649589658605277702673762046781131513274487427822086095064768957191027680144585248547427288037971837526977862843070699008233827704364244290677314649833859856665438215878159174243219081323047481388222648342093255247739616609954231169604533438167640298231537731680703447970818265188918431970337994846919406589735207387940168124979303082219050981555571928142520374610252246238142374655774992634451926561233496791147633188010679092376852424718255274391420688883225916832110325898603374792238761444393401556754671412358965688889790922000761451081753337819822588174089009615014371246430382596492966242726679564383421459248025540815476740559405915000578686971812354423635521975123321979105992412035965866224224751173778347967356291006409677601935560765368883304071396421256578384571295541112929981879487201778823266034000647163246181988570639800258308182888605511521226048285111966742044438523270231936526824157915136967148720025321762268252305747923841996381331507917695753167802540774701275261444044427019369820943078456338925555357939258463819948415672886190399843606339689415670401268497590496135917515780400476116079555488654822404691759674059512598125072391711585811310220652227077715985810296498390758560165558476679555185162514975894857473790807594818196400676858765961347971424066247838580925163409389551310031290329822194736791536647722726853311792465635331270305191625327923056218614823706465282781923622109756067607915237803466400796083594707993413836008427186525507063594666137893598229033623174772319967903401012789688097768343423364522203365237720017761423139940536901408410356831284235111565370921373699776949088412189642978123424583228572665133326630942959041420736672478133688043634187435403357701416097116835594353707972308457217921444795666945446152335948650251356403769277331793814125455832509645338010478862014685629798356150364325426049009672097111622444437904129400589727941186442661602112772616793917748070047967247598567030905716278660578158338351792035599954064327005786818786670853978525904411145492762065117621252867762407378853267349841011421621107617174404589008731810859806256793576419041604181011740877406073422059632708716915290942101449775039720850261692712753819646785345094642372280625075004441225053138645458018383801420642851195468666261723550680595271583310362598316867601634373267768973249223842500251011303079103117431988217443857497166510638547343849537821402232516668366612050710833386478693519758066900911843803303831682737374743997879001899680689276066343463869231722065577646366708825001868014271121043684582131585635187252330291156987481367474339309444151943384993325659275409661935879025498362735397984219376596295756650462029723359581422123693595014167135926062185656020967693540046120732866915552424160646409967022429922613362282107335342203123199869582047504940705374057520075304803223154623301635036997796755091165822399631371512989182545879223166864122826301845925276035817499485741246907328472106930379442516496775343471312567419211423069445710703458669092874315234747519237313812128489676962533287263116370939523735764229486934307539632898816909332872567443590636403416032863995877279452753121957583570232732760970050503795393065269741966788883547625879899803202755608050294150317789440277971089953586645832505390454922238502602793635334541447196686705698766435904434777158762285754217077757385767673137797466738136886847249340120443166785055260923047438511729307171266060882015610447722613774997290730522633713986667140325065848372602821083251113083726832777963857334933125577370044092751579569557676938464685195814525786058671654884665373228995999324033590380646008634992845411955838374132794292683890320365534808704651725269607353799925686948907752507709501524344449389152664384322970443380289346482570891952815726318635297088251686414277511313082076002279578630795213622158621507679302796753124979924839023404769438616886946821874126165498357380125029746521993686040272795693024267976016045811038270995645645776842456113105490150079360443706255921937489003134108246217999940910444992046378917025377599294615996830467668227653933480395471187874002666592781344099473819023242760919532598536862274086272086643897228363762300145553652628869689172876004362335832329305250157941201763184476669306887673263062796397610279837245570897186024214489091371393637829001787124946852721960977155462468572990634613293754695237525833630219844059125549274319093254805962600296064474934070712792339652252362502053832082867392023773959243804490496774505268474786434679798998034240895998963682408549383382505397098040207907754821782002523359636849089548688591230442697505222542827373096641014088245323199029240207902921409722908663847613989282703368630867470130649446494491411160731787445655321898960279220375397246907954549573197243355934353664261718329266904354448639997839510248681163135490949779996842695009490312231225877669062903667751689799871496194279259564282059767631926059131459734098610205049803128679615447041659483005029131562032020173078069923906640572121890440663579736103694695331686997258167248686761081904560205266952724103727374232177993749777336977878227996835969402566128326827112755263676927293142918721961508013229019336612212632985013766094567747400242840390685110780675818948929392769213578475760797948464452526568654044246531127178374247177308874655482113208289654125441373713172342935512089767356265461536165771804392189517400632979301908178562104344043138980571132742954209517202273025831057009220137883484698206479424043947642129703859596641352074834880634944350756858718977602139483521282835025346901066666342372641654645254909947560961462425529013734161309585859189346245908062217929787763532164168529787662741513599653456824826370655258180343228851926044177189798505093262767584488971281254202602308819941308454339114460786281026780622841836564703489479999138223581181198510060785976088928267858051815469327530099112356555262595649894443862561223530000209239712167898634028507284899533276962435634730028533237722697263870496536159096912244434885361998360952357417292359327812873560459638757151355331889043284122214655041269127612768934469701726864402734402651164883403032575700739308730666950600094528873906357264926711296203114841620108651829216777367893346113628909240813226938080051553395615080359038705647155408738369828160500867333024339766584844460778618128943882407755679903003084387570685495642180292343586109890027833261484194040386954925056928038203069549897990148611827380552051681633010508560698919800615859451804978426000862963298617567075621190597044921140687764295646796390493487688780245898579908380723267769490432881825970479436737001430687946446596966179327415881442780907089523063865857625079685433791856759703086420265626485834929415820430304138459964622561679695696020633355579286636154848125795634066980575613706243502467547387618286878599498679550860821455505459185650989673058602000654477500492278186780754208702580715571963995604614479373375834097990434414112043431004875176076694381042114221146948887053206367230327578620815072698934058774262308733395510131913720491293089544182940851985014839389786133394087040611167687789196296968489160961369029171739156881639499575686475943106319307495404329372244854851253843310136082237654302598924724648126366079454560034994285747050494659444311569664682869026731057243048600749229199521413504424642955598445588629680851118857290265721628335865635080597055809097295924643791992586942064858932805096320824471096641057294246004165442752764825012103124686054102291130660541136759056978050803498356153949011210097374753233418056918966191422782429990547595634535471441673145894672762865570211177992499424974512167846818102780339396910648222096054027380950623755605146438790888699571316248390805370218406239083078213779948055844125683448334651889103655979837271405215256600615503251415147427697720720163717330842517112735254224124866596567428169564308183484371864775898641104007470433987202703302843745780172344986715517616851699557513891135950980342900181959870922023934267054820400504023188316218137559872842627184612895493274987996402193537251016984834902625503237877153723072222540313220284231929169997982098285428684317589373755737901045171550253767687802653500708293348669975573413113442402148833772604049084144608161678836393258254793414175915220769328267983263423215848323985618659449516469235561779846529199904230525561319356924793170468457116602844316237291845187897325592247051955867967825674662979559830075274109087157691402422178065534383665072009102964971598097297334642144074322811429879340182024971203795842042928214002299628475482917995548358799206946550212738059771855814333034359012415095353414504413984190627185364068285601655848175184079939891840546307150080433086131635060785325678586966519975860496365673133255761838925058806898988676691075795181384410662440287065358211422020424369715882860639872357043207734450567059294193807354148808786041684698736892289575810617882999962674656089703264991193600623864203770583288107021178799057700964817866020799346263387471030472095281406232201312323125200062940776610312038740630151520960650349894033137606155412964938184521762212623115949231695057591201377822128286481713874488130959070984663735380695663768174856870802390003910303384171471938387611817009277670044206036712105192775589775977108157228180475782640763560492988399079222932394371234859660371615683095661626801626760675859773080977909590327238260733487653985888748092193332902036576531317362601241816265825014974570479389920999363338396361197657167384262344563450969946261144051857791561981421288807679063480412209045420837090288951903288884632532684166435257242547878848949531448863417179122038808888993054960285879935499855436843382267057853407289241047382842655397579263787746415720313780014202008055218330344164737498549004107232093895230049118447758302411302374730234971227040710257578788271264969528720343288146522797103419080758248603582938202560685126544162696461268698418582955427453802529279168842923859608053948353870401001406687414350939824325294979464615098703021454433829088169114129481784610869523579381301030613610169286597542037225869368248033449801984399308022765683179836900736624993729226061392608940362660527735850170338985895947796981584181111754166332263832842573842746708111044967143186993667375665650529493663895163064670911129415281014874173734065347629786261780251955438262867974791358861789861180041027482909589681716947154210110165370165121362202918022198075087212337338077795931237535013744069003542870491697918248798970671237145992414364879662578112311179572924548798896123067471299245778550925690026108510705222120993720438528960938542483347683554249178085713353938458210654139969252896878346321800826034637748478750835019882973144636225495589244079382085037085777951625809149709875907783747657249720307889791976454311646663733877437686897424335835955975278811636054698187408362983709844852004081570998706341742590034305226502011226315982804933565815817982208321919688518431720941212501008677381231158185204139461066686988468609053613924062862822551250143553653859141925757092062634814857509414882263597449986610692571812154626103684954788703946797864653211636036869792515268497170862001417903402780498676728412787618503765834652537768740360452969938214118259645943429489111971603041997954263391894990441139390162857727784289772161186462220053353916519611822375504977046306247323807918981849222578829831163745043647298866221999315980705354659778719003536509855049641203194235048652585251179391931630774150336034324745097809650863562344356197338423832897518745902916572424535885072932670363806782990516372112798438440076699501760627224428673408109611298186480693713458113124250454424357179672430930658018703179893070970972200985195228551558684730846358447312728587839985253692032301856762542707030319717649559605098167852170439049771324641306984082300578062937834574847699095460122949841502234991897830602900646131872375768593679842670180007816637806303675878193036544940173593666407267181746360046575399051412427542933137490264961070955667866866856062865457474571578936986802194351520895441172003724348972703415374754862604218726356834710909237592958139996582113103145375734008693979469497263287046959010058201645222644169353381340888155710255565048446364664011943897467833408210471667116677786020233189321461447516137134827425072723320199659525052828366677538568858740172869597631455754872874306647937215674843629179261205621254734151209654895964940305842671799079193793854543106685347598926909597360007736490406740023998045222483258488249893311018137082348814402495888742484945702430191821601554844939283998814104761596228010599156630931927159880315052616936848857879469000748764748298410625751012762076062646249006410486499990641590636773556019231039889686298916756240278320879108697702548666057306925241376602197564370331464481557354663473323904738096829353993592840106568020146799518935037232761025276868897820566099276660622022028089948072674952845616445091418483300020640136238912817939127795822510593705054035434099115254101030549160345431301238170135567537910968353515241867466019214029802942926975672268038409624237324975087377121243646576665405847738568079075315412239812348321557906232062539990637706476714010019966907236220442066856000575641662006942765694280951649124103849237651434569099480228666237163701605862054021387813100480023911186378551813038596113575738843269653441862739111939878227283097268087072030061373868202076861737315011796315829321576925867284682149413537758518309592488898024454776413179145102899472957748431898672144845753858761461084437443642427883375273602711490219253776293128531464967837602870501786073468881691929363830917761890495090433659505354005106812477602235646880151047259383991149606382789109079739395734666787332957785177619807059272826566044906694411831261786155585477658027071347604525813494838823629100134109218271557680744326066687578350428923250237581752780404764569831471119889403567480985178735951903131861308410837765227278875964914522129704383907967520931288960549178549157839448145221266433872807326229810694972182052618377532919137561205452839752296380069130072960020528690137746944929083398516529556195806631203752492446152183117889410128101023173853295239160262394343984078519162897088407359852658393867825145202004371544769091135636030158469161414895660512719916412615714521640859954514642636094081966257032967118111216406526729965468153588209438825771719318058516575078757277812018119067861177372126997755237463093578863099207437962192464428137839688237869968077673103327711416995006072352917112169928757341978093805589611177965635675327210026230756718796039594526607928967163450314256938199051237599468868398272830783444239116524443683980229027552704111748479087234720248183303068658707824257696116054009710635653149311063092244964758557867174826653316203948893135924249388500490953098114176920686557997277438036628933607839215451309717014858824537406640520062354579114190820712854854512074605176429362619128497977186230879488265227438872048707251486586321565470766579889733700802754923101719973696784300944536054132413668469920006649833677501665183930067250089736217389629609214819819392984669042261838207843575383562327733495162809202686189612904243979338246913035391578801602364258235775883782312060948899857146926595899074258375534060861936378888945966069215690468365718525568517754297767637513965715850045388570269054438040313350289461605473016907757924926803278436729368299411379915229047024934829149766231118069687223906451664933637458838786228518860653703911305358417136265953541497772970130060977941426241032427066499462113628555083839038643918823815390716759268550716606743433290888431842763013672967628056642134645493257154460223201422432631797988590841795172788282289375066181171548110829865537181243553823653932533690306129963331244581568575296910142602616657135842965548793019706238946656191382495430823300379184776572499453954980269030191463087657549862717169335836166758204639981262976200978529851709429462876188496215700283010179635573427604956229344887103722909420163940291125701960559441334760297627677777830352514287047481450848217609921998689088384111903861955257889982669400150237092427729586629846076764748661991211286453985690583391326648442165933344712299207637737214117796118170496126089603865446809317692358116984049090505884569218146260813873246061966841194567569295135234819832561555643063555894321858960711161276893862705606066100951200473817291475880595510149190679322186784589789615453078926281492883952571867182221555378393240248523660374803729658332945817062782887677291734389530872258132480148488965849499675141871213776960181441289553220189324240939919819439958772810885623346695697031445225841701452643040607768866845868595007019311607061684559643598694269691896785435681262949613479515115826758391500426183795749943395362500579759941268924266083541754547571590897823906623559726573103577928362262705528984988097370576408535461223697816098483618818512861410026798615415760701028557082733575797802694016495545055784037114661981450445148522639159075972983044985281214631146422678262413844033391564697036139336425891028973621853848172475791416765837167354425212578274095535320581375720160807912355079070812175398796797436970616879157370154100600576088408373227608199077780269419756647596401340556437576897710501524005129342778012176964082055506202555343936464437550549735843898664992855713991024202563680365249261540861743194802215089050790513732039197126270489272546574171343704946725775535446679310810363777554188317806456426125854001395952112572941414776315982019670930340844597515840325136403592664168338249771346698356194078260590742366776448088890712679595732641091060778640138262223116405306920043277289144362169383823245483779627820537198856501823941761188676491847430635689863163931361424610143909942551150230914279659991065286133168254969025068742733732278086414411708009348168880618723480285392465983721770234428716619741089834137723788296318612594818117574608050119134326293065066991018742973555320122861148064718453054513485394882270708109554872118410868532791797919561921755890375905856343721355077430212397825262800697800770380539190431586211530089410016418728302286997801140228147882701564145120787747749410752437764441309954275328477988136383826088426784717376557226853145880899606236109925767084314117843869150058549303899591857682242429785936792459546517681155898153945964705592054712455497425520840008935649134516946611677562686896533345986892093436447285722898758984115166902586345858754402601413446205218319154127101262949530479703183042498534849093084952433863288817000543580393887606420643241451645224618405470197113693657284251941546734134104327263245000231793951091085952568856410464743335403249142314268957963224895925610135665722667178086871310105029950565801224176307311372738312616416308189199498384455993760742598879858880013840689437893166393639827052069144417635965800569278874990222667494462373080383011265663061784468541292470888286674883412884544854150931823883334462619522724900053800022001288815637273211124086084779352909463823786556657649999772596115106134652394425036873384650521048837114052620742604420340706426295021674698359845689126287869323064044593143938131383147139604212240783138134019046170107851371846158311228290785687520150416038036115777095793833274915660547022562293045987824368858789918072531578447232656147472525677037552872899254140324670534678568114097735099066495896673783623397538566367913376012167540557819556596837575979599381503878307047174518558023306481204809583837162046910094156597827344889156770164996054037621545953483136514869932059055653717879894192425960029866036696073696237352283660976539747123139231029146637902398112550598925560899891266134258838786885571063667045376432039959714533782767187050907823928521324047333561782122557367758467410844800214019114414582849885179256985781141303386094893529626188331999851611702980906831616503771282774825529042600326873082554651707281350281132353475913518702182393837645491043412403227686797542440581139324965000486357482296790777895213542536757835109041768813980562329296213196454053331937056397625935785193510415601524857786539120877221968132104957233508279149686111793025423205910057164357889652603736784564440918540008105036990372681983008326300236062998273053630112221123984579480765784936380504988158534607202536731786451377334508065633263127345585264289882515204691382938861516683093358099263110504711989233137560550975273627049345954002492398205693995976434660553251486154737252922027356363854026854292009444055418477031135451865026366578365040908217200100670822460623065110506401302436990310403470158127619377036308512183605176482334110682008230631061572114987219798013285257571945702134818507863163192324696558186785359962742238655243214993075847479127663100385404643619736253051474213004007001410326927792716644114416494975439752799219905742000922104727431505984412827561096506912668942467489970487882270073713783299147392102910496733125091357572713053821312768366344875427983919930983262935061126127108450787549020124800579588694180454821659955277720922595623503732147173558876487545402562862799517012432445807173659418571640571608415728386777089049322462706661000356566312583935783264605519711870216248350175175028041360760282459899078503871764395704814297964392673247907857672458491815711451521513590557731721840300449617150187216450783177292593739761809113107130901953962700277996446168540410203491948874258152087526565373157306712872264782612317725254054495922170190000538411420259191536930882209582919394626612314679974545334138181802139562075954408225462297003072371063302737315909947068385233479213834414438507210338685006730045673684330178798778550541296738371717775821716506008010204942620121875328201461133739781330070473640362683954046142393285572048601421295040961525491679241134458512142314980552337069703392241508225176563420916111719212143086981412470028141428172100304710308100089956107734392633930372639031456091217405893954441416858047082877931330089826482260379164954111694407855571612034874104861618676598431548281912626624225082245997958645523255561999670316592877351735182799472815866396143577868553979778612400265255235922251410673771261805034850887568806346252478406080698710417445889685905149708680396277780148323440463535748016547526650456431557096502707713986450611582470947236964684988288668893651775348327014961107834638067031579029447273288001963476643532571986035663725839989873999531528064889850787186633979141783976229630363815892026766077880248093599626038065788051460358930724718991540619629003505709656845904662049241498645845130768973407329890011100698327663895863859638049373008008404882106071449750789600358903389027474413319221195993781652476946850597976540741115263354608914844398318976599799043903241664736283891210718678887392679390601466221634810719799661961703266547987969503127982186233602862935188820175224757143971641586006840851277361138860751400040626951462344610386744876206442597535645261765437419135633031165242933791252692582369489826425832063121112204675136575165399332382777691975419002355266181051982163689603317427391824230522135489943589709734516734123111832675895185470559678299399908182070198432383893913881159388167225290125863224182823613982483515435152351448713292079232782501104385296463959949727496316948384046979582214704874494242568778966270489627782911114305335188005323096752900152708199571007686785038839008657049760344453601615683641933417088491355644770001573753120727653235546838518449363075772457990937563474253627064915328320023992962498345849566722622883477806010774492958722334414092572638710513022346427390951910287350124014251497197236395538932716167324727128190942253236953466147733501861809637738730929646055122677132006791167983337789677077493079818721049675716309912322896550395511832242339951911162157395063462472342212038262339574067273474531311237977405258071992387188523700532166969675767640409502857041171269816278412635574407590066355695704737062723976811125364239041982774425920402489760482028015748767365822780296785235625995251423379300494660844541357339093166783404312768900527381230647717196288776455425498207720555751690408361838262753393060368953211464854072355787526386969451195246881463697858370680107068459606786898501563515340338002429555737330283251082338101094939111654087280950141758529511400415354501480185012722976116770052049729952822567261389436003334171545566669997056295525622229853267154876992856995487073993925613534857072990827939252603306120636332322812615329377832627030407876102972544888832826366100994583619411908188604215773806930623949679812415287127070036202260253339375031043845709039832838269008963549835151613703728131303213785509557824884900608428041070985805079338162945344869387860826402245885216967757371679166589959540111042226824111512520283905847255682900601892769271775206155677450996930727027798896501278229677489232953005003803435843897064645505968023242996856435282510739595861467935906350856927155507515591343303764981907807061009749369230512572825432353575189143126379104121026782196083598130494525925183438401313420805026933178783482293320806840513183344231415702924220518530475161253984490601270911686748687533683787558464683228212267316493779946857374036535682068906717936514648323402014281032470631006440337802688547467781878653740327758979772097313786924808580656540023516962089601717984008467596936724355025095593857825076290643418886301380982459710951574391745692022769869628156489699534936779313389706092879027291510513641937091058832011663605265179580738129481229843695394173326255521335655949858928201841353911676201318641577150388538377883962465374352333167037808649123190824177336101922441260701709218528876700774365845416865843476934125800543845968431047599040619207580504698004503174108629356179834760733595733785497106988583733537738073016513411186359311124335452472154889962257499174497911684147757276886166490369390072730803848463203407392085270114757552963605381134833513002631658327774799290317303723186677136625721648229365171676477130961324820359378466188360700294609449916226008443378327948937238496642694227390689306108060547593088205610308293333676941476066769679995534826885568217546711949691677517321863433861220868674275235457944615859729955011199432271673809474698346662702186144391977463519589890259389195377301310660245874464092829138173232425188190937190200785123743035124180258707557069184444662847946672458355308576082686089894793741448188346394899014977267274035439578656807385996432152241626301202772350844133003933685517347495974616605251918926788301217388626173603817114510918236723942599419207736354189213957312517849699564004178548165518881044722268651575658327162200575165958157165854134338559009799740313268545591645751204934966660328690638232290637755530172191607478288162109952003912931401373843912787880697607103194574184342662945472102460104730947334442552198132462278345849430543361132858287775190430987539348497634632984874320277531192130009194387562668289576293839197366705482338297007849764504181638794164343552159150039248884068828377844022545038884309062068424459314009061226089622252556548088929330706076054917489422873756569909799143637802255925160443400429365747597750422128057519041366727309460960364582456216154942831713295111594871274461504045577264797293998419091055579813761755349323244053650633956200133063754365099411588274217873103188145135641270436772987333774938683431070714257890408439027647668166983957449540112782853129031342721727019146254965176216134997979713223170768930871070519739698263493199654985680020620309363966296172678014898237798025186509163856757522694903975804702284506547236687622086655699805164565050938110098822364275691314493316899879713258796919116552764295985750213335846729503026056334108909333247454448962147540391413020861810517144059301646363717114856449431259512600893888102576657502865196900616054490848604834633052579857999083017816784103262723181206796557549527893829657806168684567487615098201915520878215733081499664498721509565328862915679220994317124070216778230364861517549136899491513669702260333584262027922002032645264491172639489179068239515291858534255687044007470461946914971524523770430720299262916317696327250956900697879010408233591856628448107324069069641343441885487861786784751389165168519903284104640093177626071603165716840762614586743731399420087069959238524537056010029885238405098363987350628910271520221601087035718919089492513350186417823600301057300446811317749096954541196777346369120714144904356643321834062794630355716884462166155441447224378464661485849293504336714429477620027569430563169536029105992481259594703073326627255284973093855068116912947335924478568912772967015010514706481619434731016551937120986483974715796574534623414858055039939741722728563902488403004758206644872831098821664621109541269145821618959016052180495096509774129323609996353979844069799077421482584899361030679343424554145519398285969679055536296103939398236527968076545845314577939115268494843313786092987860142493122267975180528745726371774077237730135794374843093408524647882480139031408455602277043715061039538210487607262686595216935653534860461886197936781198581988650620692467639570531741033844802824368473107078987712269598005352093990421486972849555710897442520769350507101888709354293922337063466405493108123130366907577268399192097728972476720467087695092884552559496246727181198331267311400503970483596355439563141417945120241101634513685760400746963982298694836743042256859927681911550591495704292639589156141653167759986554252412327276317406453257608699085384753738222225690412321611013838330716688921906678836684736306751099350940733230739353741918158684837063525376195131119295222570697834471333420189663271710902272833149285459593401264141148855330881892534751899870494674120117690685373911949373168066234225341453926659701003220264006539869582490467520112291885161622959708147022597650793167356831234017968438503507199454672134349300022181831180773475977415461464668378271019266415352946226879247455773873415501963930682302211320994267546821779727899076085726026699000130403761416274558697572445797817537390478589374451538726829519022774379465267840000007956465196740394267563149664111914566155662101525691743872987105639290243752502211713998799170430389912954801320662698909383736469573199552885334444347487387090100575058448231438844354830171484818687284810234138770552715034143420397949995543570371375964912810940829779981094069905539869250394782173886367501985644341986205639117774866409411466626118899207955620622998246150423957330802865116580490626746409629578506065638477136175992116291121486582198610427610915622435301063151530648917287588810028411111653557595498638141830900113653685974841177696120922116447535547707176611549024239907677860151913084333157665112580319074638389071801979388868743716640282786741298454594203757807191228662505951443757918120125240586193334114053465250971501487427328978004116428170573016951599080625736585099012519902898617320245352204145449382548300254192178756433179580729619404777304480722155904810413847725894622537158434748587707484976430142218840680652094755254182244668282332968828898494862297361502771255352546218054649663825241133313591719732457260711197112073448483246167713609387537009888044676345990100670892245853672654645165782188057843642440182809734742443817442343802026957845124747710629555013267342428933061228667126647992661187570676182944965053921309270889441951252140539464839997738520080529934513509719765505355472841977996579903903082225163878950049481081739909337811996230939932986774121586263869852483905556993191452394443188320360749218996144269849899805474791740436157490816920160703043422727823919522440536370382567987265342546252910660157465457161405294470326694882460049850934595600772446661561952952462616843664740645625062054689743364243503295987778948636182017164166447415440125471940762478697344144883791789880022405380864634873634551022177822066103043821275087298431011684023221102118948805639976711949483156878782016121888331984798384881392407206336293594951685806166100591780911399841745511253061735576144046679596428767501592673960001873957275216440956056341879111298296153220446785648179726304973824069492644861723779243999088531263561501876058346384568770515351738688232130655482211175203317914703303864168182499257812874561087391964434902171687939814504958807213456074556659098365163691664647767279073574781749364912355855435079669975286543477910877663332193907771985054506207639055222556362357900508873195760871419970281266813988150250163226357634350715927584382949287253924515175179751522825551394897583739525194245950081819711880472319488363121410805446513171564794028492755792412146936800391809124785402429753449911705010883426283951815249538821053704110557192214608174247193871005227596057993908888634101491607177779788712403188804172179574015152605893653591826414103434664818093002248209983546216943248697698706149455362119599451638200618175005117437419687838915861819660824858854982651470989248437910226742755674817652499006095606895318920820705495372670095618929358701130607694959630601028577405441985046608906638585291167947303459888884631977072586181595476389096146148784184153419064385603959126083363206519371024097992319812744595592182323058561247272100376775604406257875726252768718510026895925452449929277334209047924305097252770535348902796537056723938366690363174305609702535396266421106893827045058481644339609085379356311755560754396897476699365361587924657803581000281615150797058963656556746104784578293708182246791699108192215194321768250732815058112025926845249006715326212422397574585906542300121152600131611994589363514169344954382574374876629254960530349410428848804447998604609197102738154931350405756910010931801448568192939628485542694120087037844936799512525899244226482145851818234559103717917274866324155553496711086842189725670269420961119551945555299891103786075006989299022521554986710083896612371148656065963832127023428271008957974876289127879053894145214036209760655483291588650831983682155562193422731970275029321821682352357094203606789880729873182685103532655827453118816989419100829044759113501577985912665639731365121993650530358101912073245063471664261068302326899189473690737570790547640393054235057364043818509082970472444955788167751161613421108360554585720486085741693561545821010652113990687782020985470628845000077792813192362891545173941448955130654738834925959806215969313634671622942759018309093346817027242740239927239137686146544141470623146395432653802800005412643149115612012446004440636447296253786414758155672207927864521450547308739639349182789343648724328275435713722738109346737875025899595915574752073862509223695337320484591092417256709680221699621932502896097819478496048310947312504394483441026529929194756116796580811867341053647379299141032537940663614130937683537262032871694981083867254360693908271977289538434253710497401160444048501926284456567664368063510909289417582976272792235176325814492178590022452364802634367459704907117114884626852306238562840981598177804094745005509631179973303788647024294856853490661276110075686880436933884277392863991713210922631948012821292065951513784586289123341512930921703195106781240305611639737861644428163409530666444079938658300366127537833347707390457359589007210920569405060452105490370190219328214213502823010644291734652866598819655842315205159644344897271994290908619921447479762584199800948434922577651129036337191951976731679521944204500001073411203592179404407720385771124637786695714806500084636007174376758865119454547246896221603524683870660659984038104273842297471855503377457703159172576925362689656094304943308090483566272908765220386855909377018456183863520162701213604056055094014003256258129615716058778956505389259595913078330827551164254347778962243316217871328831611310428627753293236419229545324464159913586120958314705140477525021165107471909702987627759503122362955648142850484509771165944459254255542828535320385097599171410520250623762316190750571795213543967090779930774543624511419821127646878658193876492319227076809912820782482083423169439800280647116588589590652555739008139773437749287340169588478948247411711108512001095676203952897488120971384953009898046067581344565869903186397053860691136692515996127219780110301018885208324433229962665669026032526652638666952935335682729283304150915040757304462933890513165800584490998839007376408592608792620302817300211897264365558143129726960255780179010950762533883351502223342525370416597657231545443888654077060703980304518271007117699076703803614370094952896130043239593977074698273211594491244789716304889999765455437534647934206638405039327563751526502298040701239616941189671085290995585460347776086506298548060734904381983418375533951249966082493890018647926252765960620493172620214529593756265973373676520592071081363504981631263798338660586093551345031607641636881807746514433847713377805090539352389005329935454579352225461062446555434620472998053154501855986465455854942200822215009188281865501064310560549763740332119161805146659636132198764960647253767598986801835464859249680969651690068459469752293139145309203181364161020868370387254271162508606773692296582994470336529696625734784043496484320174175803350636820873326528761181585739104481705183503438182064753428253039635789943895235363176097763416357165690335098159359250591621039047958990213158185349169788194556484629482578626716309101815984710117116585828250811204946772451894777326755539730282727818344243868742906679798318092805562601263974342887681915336802294979491092007613333177548824149792867195171478975964127784563713637918035520722289855938409811288951819945545868651955593401815560078346544501499676829780163452002855885534215965307560609060445870881943077044165810773025478867674128979697766128927290795043810816984368386615886073075089419058408748175761856890694231763517872698109719415402145476807315111758276503839182732011220374667349185358836168895797531364241311573271284312172958998651260354986108174808480310046966365039697523630579113701043857562401197508941989334845394995258032420697352506939367654155569454143852768883807898761204132126330868613737259214642321990032771158237979603138693495207762402052724120541230766718522645180101591039103929270000208562809115530614589698480981837424953828140587575376094710578170884489101607435079021908754374192979339675342893327040250080153752948715301175341517919483501953491958087409930890114280832490013913843466276243994689705480535785948365587141009241053356649684624208191538054823924705442327729886026329011419210071424188608095009132465152133833275989395507769042349556380486588212415815973128453614411242062346401171043985197301986017046228677191976719532391502882178388075775939550050830163578777386926454796104859764629831258400600994719652893368080587114691266947118341578907210898199917433927116947066415880897640722905522531278387333200559401883832699915508777167174480155744903893528526662656689591956170861902109290112983631084065181370890283508803994434708114002458621787983380303328020552875937072211535877505703798715698477260504694716949062186963066287643552731714838118903571473592694752120590387885382259207401317107902933668035532297260047961654450512170631940913125099702452816913590064298918647030050794503550842196092756192945458488919213571677910076726001397291056570480207698003107055379145570032195179546953800540738229512200695380631193181922502210582647917945143215493861277512683702616710855290775295991619970426561261692296221100553870564881180979960161897570457594424975757024038404416217981949336063616136841658161357329667104942729290184673783819437818604096631530669306405650380783721227544200879202540807265454716399558347618285923998036216352226747024371000082672353042277516022428135259283845814749119392306606874077307841357065601655088918983767579035908314307871491972230298880910070797210471959080611601576409881345311848066758739170219126625977319832198810282212337621703171972999333541133360809434755730894557492647976649439078151294342077667650021881185926440720941584490689863808564719748758433805182445134732710947381456376903149559394947271585236734486277810876518653395110215286105444362102507311877855599775315610474857904724230956987955202514310036704123278049588143576122444904119255486457372828476660689711713560200516448743721491968873085753400878866594793701876709367151687168547164580888476418288044610596077947212436289564416932211266687677896247572956700626456607739644372864490338518953957761225868743040798212704117613563834271929127372169324720633703873127117115234462176524634283257402361811807174119711283141452675746316046370317527197745448687039833868096866151051583738038766222671948611581896636641946015193653224166800823774179197653699159899904814885745197859059377245722250923792569322468910123244429278511447376982643976531686752974112544513578605924083882813574112555687737285478447365362892724333021786984306292514905879308033655052500157244279402603142583848014159253534021856227932572638089961544937231105385425506286700350179505767276353675688025254656214730137257273074021915420119748975933610900656280900643045026281152557422276200953724383394298318412391116285348782182265038472680214792815792898247711847219436590164002848416683593055203762205914208538059223038135252298769106296004277872079577237962865440831592694471147990960292624862144179989796742947718085859237102501025983240379815965665180967021223798373710066064740287561567745272114723907550381237900094754684384957358290314553284022480761455177358436633687505955635168203694445324100032157838837585812543128840409962448429158483709425453774918469295206912093578429887261802351195724771640487134502435747219886473162531554979952551277408373888783827597911987080056090842491843024290912022566789256530190237332674177953335370896362695501754818250868461488002932610770178897397521873488011420873879941133153925782502973425996514310633806290758798356468188659588200531032275383292699821041035357546370539673333379523544817601461027636607416000689787141615911499489516997723244799765533730014716288691307846621388159517524405537895225598630669998495674200540122339516069490055218373560758110409350332145594404012478989221156526156213389789152307923380387136885766245988344725419237396811200503901623333465081124917231292862298446236897446147794845160554903616690701108139697163310824108123937222923172402464483179557865538606839221362014871310496576904595554360974625902065465926209492351118102819269805275015163674934113168931155585032953132426299188081333116672017520819953324782214252425885527776291649756673187333817778594416099990326382590032167799390299934529880359932487877726257142618921935361793942582693679770480686631726701710235448196559770988770584736636434761429571662493747947043640862825442114474050876690338972845226730584302680984501458660649364948490801675484919039099354445515910737473923003980104755264412506673149291275881675168598770598884139869039934306976880966760221473534499484161635133656995400972460890305080879237753331460357155926510612530038282569797768260155044759778681312572471253320536522204986118468153392876513570844801382043261357972191088390508891045005050002826676893069583021670226289355908785121036290133801528251730156603013444273773345920792446224167638352673811374815566418488628856590506781704130224067171505650677440861251510408126201705980481166241319034886584872015950895197005721288146552317743009285009050285612549482290873544555558078377137799269504026646991698891105537232776937924300584839165172960594622205402585192968344108880534832845334701706177917416210074953864618276821604141877706517978139720912830335597768499117785157143155831099524244576394470009655254200263423221915960336408298362036437805321319593328140121150740124064006219477355911312631509003889560527572414770271492244412926326906037775924952761190377947402890925508197798881658621694833620768497037526873350173056302242199288814584917884012046135809168004909239576679823313672067136188325477410716464178531315101087521307525940093973068266403500981919833854735024619734963075339581402196353431308073337000978849341337641210683500119782492882727475823722019140755509920218012914678368318500399806381804556877290085722455952360886613351396909446691304596276723293146458166999575038866548547257519941195290265860921196587479545609310623726934723881035536672395241041219474473938747277945978383663420573894756068324055286155018303893883343245141967823889381396452510741743669133193185544611141006012047014834899299856984363700023824540867526551294253458164374860258942967856152978614365161968727373318528762895493829356440788936930570879237023724396794025290280666692257083700405273593334552319750498808400063335738372503039138363116086846014460390667154860347872390303605293993095018144701149195466011585987616511299209654380448517094287805208072034602834362408989278872817331098338404984538765593612989666629674306659415011058002080783776787370287651754492277844479678228514285296255265004933314299875259788860548440249212713089117072082277926667217407676183658931596359585521932448681224994000466044428259307670154392523338210770503337079828786084783441158042278405008988712066409695217491309270721624955979637409724191872184990893078677120747442945052979458653552912186140422663646424869896413161893520493560126838888607803387672430685400996747683699256450405391402345146925014894965476605845445933740066157893250861465447872788851591179006029260073198117500007977805521216085913292815889256677210118857492946817528629354299266231901506289245069588395024950477787969018882458111136899579586474784796146867790980221006522829330046725270881928222763730136978953366864837997190594773912457079698262866331636740791027785599591070673952267426372796371732213550218939968267395007908987981352007179386639611179222858021056830089799509930795285114604606434135506295206177258804390287529251587216471464427172842124698638717992932744986782722656488941094091272680446611864884664599993038520378699842528974433045935154260591683324848884660325912414688055169239337637700679034800137905653373191451570690937059963047329071265262881453421601400820918056565029713920971988073655135085310070423978974892339699345441474034416421458132442536542132628476485146289258859264086325248299493002406163257597869765856712154289179447614002295187178523764930820199335099988119681971872814242387118959370139384290507664062392851356029072229933944885217985627908429285298635585530609707765707814217252668798144903527689280585577477537414655230073412983679926690095494110874967418878204884526943930969544441786094531802113636985049145302759873591812013942773405769888895336390974229400448810386248966486188440432387832083426542997943544579704183672156647289988241431188965960925981527464707872223370909882460942309008546772402200659731855300187883348705475083240792317316072906562311161833574225369801147216936001065512749445920886022415028879023039274933379691498038290004900558137649428156097161914907717498436198703234847164246258285943219289539302084955249232783018737885813353947022742476740957100796477827924994289061076371118897552933763526224772906466302287875313820671890021116535706560188619913712275696824862677201136431393861112284136292926901343073875860524824299407118968947028914563888764706469312925542818418609910815290188643077102308496870671991631230537912182259357887019698813414938011814508755365844810809836410498503494486251980969273299759511202203513360823089948246399730346412807479440135608966277655199348651330826340240834280748697085981352934710794845821804623261162436490594394284258396528626280219351985178845613962949519687366210136907695494386394801693452718955024729503740570559516827937217415219810922925720343060397595366144527228460416436293899024142798420440799942937827451003497343191729396130120401545743599611526886150570981678428747833043849290655247059430783754696484227506016136141200189195054517012200468098685473845628271692525493635922127955850747199816860561868932703688236348618487533865128703219266598112550437582696394566213913660635284351269913271253863491316574028242727479399217829982353972794599512742806924367981009519956363774966586421035014135778365131737861711728684444171949284223457007374413527630740185023557105773120770080638451778860632456159832772732129380947121264607195152803168333924904734788485474611608691152737799820268213172890500025299526515448955612328343279055735778320698889558244661052735703742441079336535025248594913034783774609353260391519415111949336435430929699082681570263966110895390070731504216542788512770053780437593622700679679962747374610809583049304204945139223917801353289708656495096497131054391891881740014153153785124159775815969630492947433193751983997833850176630360372347520263882835700595087819744987648756101914697050977867842271463878297390377705075820949674925013504131872243117258900183976624711348407310589066542874113623271065718720701686432448672953360210076017456805211586997864029916883040131846219593397339933898285255212783547598263404356758241931801613795342783817428088752200755857356743849574076132885104712549815207684515437284300031020304564370206761121607667765349919603329299100002613367088079032454573153345235610119564211184348157973257345793609240925596826545606090044359848763534825641281884889189869839346442911084142337663663605429908276419658359583832841401970518492273507689396960306950629775517380757475997499418469303375119529430494496915016384712483430921960628708340387274887844031669496227356317807518214319518445617818552973915399592701437816606387331717485024368013656873454258787984378271293481263809681557728528000354643682650553223685013712346120164538553795023937394475360934402090791380255660185393702265515476470989085059801923875672814636790752649951122160936493342004492734889738625265457339711748536366665393279772627525740048319362874322576121539495703776475161008520250700087558316753123406713712141629491652146382769486526540210831580335185770817228027590389784393370679566714632847497346556544284064669893732160996953990806813842966651028539391029167848224308011911571750324372062921634739608959809581345644636289693808393083850483030337520723264947004326541556224163619532133693641294684089725434463379268643482121170969285012338060361153645816585064437378130721014838463264138969965710901160607005981857254415825621743129664749276265265705210798974174785335204195433513577737007781071579104776409782639544585297789731526793283270818371778610101787540263484081956026873128100380952236161515834225054907515915802384114563142547575836786546577161586535864369335244487980978133309658581495447013367305815288401623030518685059041550375671663139996655526706451745367656941618770577194771917433391658235532854147843948867395769096702961625274673898162357031048662334007971840260379133822593995021196840565640151400259078937092053162452454873626433562411063288983578916965817501179920752102506762160648909708681504601643614722460343790786501791998220322484833995941419193860881409068520148951053751585753954232865570732462035140701063099747039834819179033422500614272052173961663126426675240123326760718729659382525859834999543921026039118237790950118055457038840630561715574080291850577489445118052582808831475184898750822345078277801366351432992228115137637811273433910469688321771437104483661866468743408281473291704210499234784108074585318503823095268136649171597835728968606331111802271351699865089929447388172007632349243749806500292851263054848404702383061881534363331128680256536707002634362656189073198271424630770742114738093339640290339338498486591413734269748049054783884757291684162131016458122096607368182224124233509064368593000796748576765827863439463220008370090310164452745849319747269391461349409007111220430872448839984381251392263428926341063866285933784190411849746905751411506025035708284221541162366488816798582609769692521300472378104973088243773504478380385954078036561396050311246755921062055792756082843017090506624643967535021650690880193427795297815479851758306752905967006989283139787568819178809567831977267999204400320370326277410085044287443805018557794205304697653027063307222735112878676842097813274414280859359305305165791902920824812150188543339492305757846055256608667752359429933359846499080904046051031678767215723790432360611009053836166196018003000402308113374546254210126233812407349522250884852538147750460536423810298135638668414929075987359004694564377202591337690381234857601898752547592314526507273289219937796756533888237885370255708509657342707111589875060388524247873026365163148367690875268870033355570894166432606370137971959055368245170910856313136893935058257984911626808672348736414044219328478643901467231477735691069111219910886750346378941536055786278681500989635045970784491004619865673212335505794379478406349706621711170888585444397376118081414103694760168206661305956089822412063339289749968381167054591730357803867728677851843861418313134410028850925816741550094156596767303564474126957109827190149205892948329906207748318325179940875341415484822723314269879614157001663884252493621929164635787343784268729254193371428985426660664512590517730157024843405362330446391938914204671634947185520832133329308622505133883253573386298961442143515318158071271038765994096491496835917743339861543862767668535338175828145684244425186374803781883291508801715378716964300767732732657556585286440400607236578175407557725619728563877986658883290726488238828835791807538271536404840089094778678183819619343176233675429461779841940434358195610209524878499275453876679337608505745903697398093403662835430143967298839600939043947868960395710758522374979978877907773932920189843350902254421401063117586284630094155489452790201996986778767706146397239709772452371789520882945770961288569309511354365518051118489883523345756974577626208246010118519715648008900797804717813076329956802470889921247086415430581332060052894353205533581523574023821588653406726248496973980503987259715136356565703574399541983236086639973256769244859478567749208207994910649217465747959817069564895123679817319364543621125870191287923891149293663955958492865825978333757433933025094480247500669061321682091132456977122488899479969680195058499333033930318252827453024281737147012130889772661133285949480958479334838775298674904619508309905821693642044931949760253232260673687821325391359707253918642466357859140864921343172256576539394240265881848379594627022160926690656271471474003273015811811090497776449341707166969370343479909953239175052187869905306533507516019329206489363497319515613035505914744295324912420165889150275037464226606670541611049757331249450235753309638351632476268346413226743424029495481897702427124091349970823842283726392438690184527382303769264720870798194360432732258107079649559043625185476959354731535606311421361451393435788368179980928015474716947879571801439365886280928595506669274858099147176448746150423266649712921464830838688954006928588818657563622421170701793082291240840055574186040528116404024448138983822201268126405347923642885547122958673377546001042186301442379823675762866371236585458400425889054150404267909020265841900595724771802914121216842261445346927176417904714846384769344503367852997708241572683080140368672537063093676775987617736004584216909164426266877824831362340528054193819817614912576841489178284372867673665100304913841181225138370444120404236074215080714770602691263559539310567075918083343472764852470954381202179977062995553894092661277645337501381736016597449143778852182684357163581101053529932097053167674578625540689596022593430576312720284420405482235440030017261016678609407906692894210749961699061966861201704683715881613831642190678496565165520589502276565242348612760366504099826334641381501946639209654175520385577057768213433080491335335706059228023041997707450954938119411932224880599353194910371013713741743864013924575376833811952520789520207177606696960314066055250271839511459266105984880345101091248784472413736003427674435452784693326183785954481349020899385371965932513313923350100746819737401985683728850363926281284791240267219214570188742038213340512490869783521954504779905006863561879270204829487907810170755909429694094935837686316784443057790206233847523775417559338998363110891068350077079817584940598458931653193568783948683012452077251650186597813116119497458301077073743511908968043550726573068416211717900770295126627506508228404926139209104085539421145071097919377329074952682310347717656127495877789775767867780817187920228821345573406345820925631593790866262072483021134958236642402417755896381914992157241976497222111549201301218415988578349475677792089744643129341330746399648674915574180467994249255533720369252553850441007609859622103868989996626240528113736550163123111056633362285016698418147333356294826643996472360616739874480389405460925717297230161738320910303609291596099059126248615576241963640177299427464964636408525565972794472241510539987493986314906538233741551403874080672617080147942113194794169668745640358824585284289559462112143698372477712539292063466261290973945822325127909039763169877570969502924764914980623472659929406909799473390865579054304557224839222725757008460559790221520998393526111838272430000385990205884836160337251682727078225597812544930035162056224896050885160831480763002932158993877008343083964398480730392773027367127340989581988420543593749949351022142689908026696616727820605988137414694967477724300260485514723245779812485829442721863349205530822679678824684789547707879050177607487174586949098005564040372978768421435791890929955187516449762565944682607063182004717618997673915992769589473115532782542575251654686214687779482955020847474694464608804268270955150444591807777968691848888940235328740041357465926194601352248058204864736098394167638250316798116714348845972029627920500636192637384896332154587719577449652305036957265281195459315223787789992101799053390638403507165124516855750352748079120456671044370648886054281506055555939471831536973745062143372992093135859633888447416334339620243791572137846436456589195134876561480896242414215326196574425245214239718209922032821128599301639481824276164643817061587983344065160993765155161523764123332370807853811395365595045850155250102560116531951790376452262390756237542560787573263131974449923418251478606485062083327603800945602547697607435963901339775138625609246692337004142436117840021483444608062392614731639587477178303112411949834004224179114059076316640969016719919268111848540115333886663050181065016300604335089261933869445395176772017598365298086606312226553209204056168074262269383406871602011716901522995078817537457045350985826024302966429261330280596521628521144045827820853715394234594505950830362558773354414369931566634184458608898606709496146170833675634998640034306127758539832160700334398631858920564875475725872845733577713046296570466325226388116908053501253094930977709906361958777407962279017946505228902770873604875779556953598337518159720279686693365119609877607579356002503739727668294591668011702090498231656771787687675238161870073518854150981747143755053582190834285440719837353590598736024479676296201121869748719251662558118453621017632953357456211008137923582951044933053199903271737804566175580485583000096600862511652609272378626605413092590681760870019284961581010654444383360714380674934574020749673463383500267545078943208364927176878278919267179168493317513594599511371572338182095333491557872625404117769383636609672840199295123124110950790179998617349727471634730329526280184079684542256209776797666283988556195215568706981431604911119429483402817563334071845954074736957342471714197758582968916160875343621830779449492886233536481010774280082551647158258818567459696099110685409906817827775162861754562908463408989839559338680725208082422196109308802003384383878937480762109824263719153598073163792435963108355243105567314282883538053974353696026457478997179785248340832432030926796581919997749633049736956671431386057822323772693715651781442622526831270586700053465628335113451142054991919641032680626917208829596023681851769010300659539927384506077091177333890648741355486931747893384351065419957541780599978732672349458597152287994434648263295985980236458531318166162970670301705483901810700000518216558832194261896625348110151174311502218340442156953647346690860746040250895395000786221447616469071237747189251161150388334040085367410190164770683965784701937987308629225944789698149367344393976407550962763387667990177741542566373344668751688050148873350591901459849777397873324584529299775884341957762968873021199684884909080873321856241086096354310631027137859109692387812325306794080915558410808120083008407503400753951596650866032648449527232234531700561736645360988964765623649702713198202740268745708745471878696769594320409223407629648172256641274073633222942575341850918611112038648605380108319710433994255602887662157903057872005528550056260610183497035058634886455055846866084239215453972291529340050013436635786545464397818518325955213666826575076853090437513772634675158432537716273257555909264605298494955814490718774089315473027790370839599699973131732644849034797811646014207526856653996674188865299632290458745629468038725879287661531662511132524953632193271083366934261747401120586179440298030091738626786901883950626444923279466756106763059193789739765589197428522605068895882057953418956504391286644405293514615988517388653814707608528111430126794678034257510902434800923312843542549808615605057088367957443846948824002911962002543146581945147830264996101364262052767914710865991665376378581806366058514867643556763948040513081691902364798152589710225944490078579187392188805146401024361877220780719775856204936857301568241552737897404266301315962630802728347210089222223003167994344959490003492848120835912144820575130353253777946799521092955367911832148204862490379657863771285860368785234762271098439766739143794408793644028521534749634920716137763887906086002436395410704166405094678114312384572145535615430465089823701443534099907801373666190413391557283053465867016975397431154236213098252200243932448163978671801354441557622977073336789981080759267741777589824687889498544475345991345837407544819918379054510736143496263285044726877999424308800627815825969074113148907488378316159888062746854089409632106660193046693878893849531775260086054834793918102961847249890793026511324789416521388770236046285737204937632757164295333967798119330241822141973905979870361992646246238158175430465338260021390284410309731130586760452272732819997568632260710283901801023730869529970765440270003338036847923377090543193797487148878453536394746703153386230222776166329396925554383181836201216130818538410211660941587183429384145170460124421078761781937134151039836749542702099419421711984598833331708887273571385251615843351953293413361412987765153868982394345922891191008530367523625000795876424674920861834871859396860177226000801804115897904200068421361655191481334108362425946915284044329901686206331452001650152069231250252869825627835802384342761590468490041970151008222733769256569996408337692521316979303661951359586870066925863023061694467240754461850893720730398272201800244561974367096724307121044094284846690373613335792742308806323153058686471839271226291773344371731411422495991987335986966945312980698292467245345556028136972727937202678702525984503255441883959996313694485824147108243108858092139587558593687050460364319730301818495602788495880294323281564179409884338818192151215471989990901434635403013976561296174307373976626664519872152758134277367657701937280825202769564800397733949584234264158072558482940266613504107325403318241778045925764477271136455711241801503927784125286474982483260835302038482057696982954966835356542335856549228250879028172081908485883063386701551103241020869141600484838891567910759763017910704225353020396010059150734481500507300332663741672024931380381980979923287970885296633917248238153209054798596381353295637220380888696219169131496855765065961271682296891923502941121708435379857155345348710504147533171578824887641456081762333441355754887823923485316294268565154579958561170339304368436601794747618749070113178127392014709590437442513502584404585722500103274136840869345337407002700859587582303325582305623075365033651897590661429636388130471459423316245724399779906432786861279258994516500071730351348829594556948104680078001014527802053332382382115874186583569696741446731621970493962223194161872585397712736276053668872797814956653434567184109416996683082327822149764991002226055091772405472325477129909086535752636578125409481671372424505652623246888694461661381263489962714971708492244240796577949820495340382086135697946518167451380731770312618135356256323412182012343281813888667129138849741859304910365049568920947733274817867523238712058224307877893118399617349288297404000811361765623805337634434899145742104919210606541887144288766374695133257095421258701353210427472331647988788962724874042987289747237377083362011077808453040846556348962117506476242838471741414077887579329648460426681861720964718429243252648746275951030301800141005236352323128594625403898118510974501112056972002980546604548155040387484536979974503743652528474575089116421953648412439776944208637050120328449260293950903522162931072370251590978653653832899360938777021210120477062300506405851959174845762086692420701493299418452275357311921222316295736330065944118861662320415557573367922153878648352759105479417018920357883722376267165660022245578895099750001493777222637845664082772325026634496504859992406852371003695066365212108574060122090276860584222744327474323509926792993317575534171659182777508632348913845127755617644141791765777176928040334963430172034235057893692161574688573614421252614888941647023261033738448028506748951294037967465340360506707769395278025700834886553896143085411420333462603071503099059310223716819558813912196041925238658216245993400431824726257496077236544238741019480072634095787454080681853820104766539893113067602433160027134006202346338190908145808134980619756734383277015340503543847340571300009080827272668363008192513217863793696356238918754259244731253860635870317611768850929707399135280878227006413322791494648920295229964595513248237517288504103862481921877877045755528670792936815574990661444250929277753888687110483687055802199513162116612355197284908535779353061342284219116731551763000757776620569386567176161321332773337606375443046563689789046275469628519345745517861316720213605646188537300510928787587881575570025929173415217859732194299290777971344063803998717331522464502416235659078642601097886824076062249922681553678549658610997670481549917742103018420787667495994948032685545753335745218842526209013761680628525450856972172241114321527612037040944551964197669745697939961940028039058811151652646912144825037701648575259062674578142825277310591505234256988368466795043127173482057208319748570664038404754971694533038016954468958376470291577044950351355613774633306908297084015601327298135959130804906721160666016116156778784721388653282471068919877179368484698246589748519329395653781260197018851120362195273911806196630812366440289145296858867759617933259929443245676229540833538552907709272446452480954074097293418640462596527359527299264363504728702651179500108196632637745078620982026122671594541998131771387559660089118325917383155098431269345363200652167175196102607781080737123508786735041242114812399291087488232239820115566860153325338214577364947310631367900932247503606884051104556568704684194606375861236105906985636374215044930997598564972571709789819569426150374514387311491363508854138229766413800236142354272314477333367230625911423153836042118290608894349371165219232083001960548040397625438741193657085076737512750278863387804679968550000663117025928924623743495173962901652746385570089044056676544541429369465107059914028649647343299994671683911375090499171157852706941003766340822108721481100004726785449518709574129743977311603814902212102961551210475888765647558190817222176889994823386312355168040870687518567842217404867588073336440475072930390563014352204469060473817262211538214820859579556475603521287887715362109030360669920211201174485840265991188664172452013887270711390501707906367087342159394226952224235420136538624666041495247228768525264490314456675962621498918932457181126763154503318209961701280738261020202980112793453797386462696539341502845128209030704084118580012896539706145853661961463829137847628007098912540306538058172077617117851708051508831756226587144915302186109321036115089659628590597329291157751041847993472836955025100173028658209947113694228731203525978027867798817165466526508848632271058039073362380976821633184415314939659358543278361294403804932256966529030524357516213838886597131177377783563852000209890302413508830969363109355008612902908833600085707462930480273518660187134584348947761790201809919748130787515880714709517223919436649522491521843611248456830116100434216142770252030750398299083289327120353616334160615029141211234641351807839665037829224138747563949489540150144219318050231770515457313769842661456309392924241718300095917117314446416571044344118938304869315959784148464014479570617162566431865236569594910496945577751160724364861506732827528696699717593709033391704959291767289727521214937024439881071966859296904173083343687892035313086996471824376146120055871773598950228644392416710434519023652429269784284544531087807690143429798325258482723334300113377923482948290455488337624177325396570799621481191598170267561152209383979704361439093286817747133005833107614031993874146478791435259539925063224995957667384725929797550463800719314713866873557813114926623324511592431645555435865278051904119586587366503462521035484611353947473251211837207401923095454093286914346551335384316921773782141742554009155468447466988998614609570355101900264506080928287633028100417808030278920008396937837017779861951134000916117466712714460589025953908538107561351840967545790385876652369696413260984379707096010253835757725449392934962786615546964471162992234931063176940947016788608123680914989982588645113533999262100288459279693700598811084461919984975460226831647033821422646736507733716598726748169326667338781517638705394517047752537364714306125546119152448402521149174901480948304341501623317137204871244027038400386447479633179868046325810300073524056867086722445113374790244323448009762094304863165756958946544946332559560257471302832850464963030868352794053028567177940765883677487755115147116210251214334686958256413835856963806301323430560204076833655608433335436852470766265362058462451105355885508179249061585241518634460246741746206850607762838120506840020854420338068335820749392834484493836836929919141572290341486420750181505289183696560586594435394806751927513883945887725836566426253278152469429433945782644202907431413666635063781084410043421435193939441911878895215986352972769593354508704855737388943732180264019275820165207233063014986673649095811878922610900585958234133043796358313751305621426164331465806405693148585477433994809059790196318329865543971693970430439867010501712646822701551459525012357331891829460722426494217715279595304010550482152671309927088176757323810408767979047823362448308580615461096656572952778537143888918801998828662619283033840664271867596783644067204382438841266072739595156790917242896764415919904717374025088829121353737326257821785042231944380200436786483246492078534323041993009096636969976292944261119728231339786128175760292745511571298559851139696499827016396880133550697971772875575838178612368892642142762803584998551402892687724653635378492946849270651602729897287115883915947251369459436081986740987776102330402818916032586460797417939609265065148218178815130076260742094236095639810554758657676711868886241620835267539033560035174103241216605287857626454118345409711661309867255086350161707146543231336330277437205130627256124531878373213977833296166327434997677624875191217180463413789802349870336991927124276650815948711779346241844019124024774175692898159756476598623893825983446180720913744997073459533408670519323876034201242935304020346528297366978266729138355574440963373717933581546211289569404283735269184567791869766855436460783909136607266098022267052428367874783119855998821538565025020139542886872849432435984528710641712740306458937563702456532056494129102290345018638806277185908458070638976526637670274568662290614161800143515865899279507458184023506765485630167816861002993131531842512968182359771051117227813254508155820808878699954682260052165835922055250791907577481670505038044862692956814697109395545263971203375891703807319867922059366371631270659793592415434485272733527375388253736842976717975000377884016373924033961927704894984212608500630072385690476551047927885769666892761193248241993574699938379025751592073236333170192766846415328704996125056086720197465211452156237766348702553603282066810781681382756037474231217537335927996916099516119200435639439741845205392453151286925474176770569098915370107896215663256427847832668066448425855885671554010572002942448284991195341642871879222842184183597989110100101396443438463618087588104571475092126176041923122796531984165957442313881755115472470769671094893826441892379707444080295288054866316596299554291680721402126899316685585822144463039531398047018064710225584695936305019500347968948106226475632655229911821703686160126518923217234876526834694301056021875033809429414730362928595650533474657253298910557736882926832274059871851247849600500007298160250905376618300359915516169161188360320470738540867976881825435328497387487866699481095910498322204731744168664666729058311393962241693603992582939313268114063752059877617425716783583363519349832446884090992964886973848355993703916700913126984881298280122861433785115140085066020119366108263184712340371304676533572442190218724451795412032507117012418804866607495655856105042527709475143396124483262050411956628076962845691212771636499027868212135461918918061136140859606561494925587766280731118409152335876795182739035532444799956367018328643530897926313547242278582342482052058605597825367947258083933970144142661734048038997840131876042489637513800059391788236794473443924173148749027654267398009772523350734823160242162105148154247775463146141545982257363662013129588737887419920198118972494953535660914458343984910163335015667847733209043270656160397402799639366889962728825152555514137115041053086906491902409918871039335487636197100487168519969180391836053110174807297932659621012797254398181995278569061290081577155565210722096769873884991225487793300976744952373613984861537605433579593911228113513170687574499440252274230009697522181029474051273631447283705249046965468779129827978611675639585246900138541459293753091075113553696391477754466893718947047588783400256166930078253883989950321543558435307799337326901866359691175126726733655132907351908984887353406787581922707684433793757825467019776319101879664683140825350900803434687787669112080571189651655989225644725823447118246249712958607368729591448270901935539455877059305760295947981213019228612020402382679694356177054630045463153604322663644910150535199378576877619989478638457945638210651298525712570563086473232149618281328031096162901055847800873169023340403990496896565034974853562972716631997337962248449844245066781340371360911579184480415169478513158147128274666294820588559667876665509053745026386479057019962325193605599732794468658649695519403491148949635966200288039077900206803109378857896524440155776071049805300352488210214042395508071256904359337418416352106216607212713477948273298773217460081521907677585651186309161072484989823857852305346119610985016932850041958609153706040728731276385945883113048325008369342214584767145444203233200416435644304292595372821254553917208573893888125610359909759601683277492180562738478933526435238655929540332452755171942612277701100344391622147083769460984589218461104260903810812280340754702541669046704387983708409019510802775472304969764444749742118148760609767618043704130389479122268530256882021861909847336055720974077418540374035804666669525604949178450054446529098120906133552493943329598098149794268923322892189936633793558226815454488648177036699517173749005904329096460832390746591276208605942973028396448330905348899908438701099524274126376833889313206744219349300024698267909113913719249412615591357617398100598695505826342041810870188709008762386450059324935003704425492993574768611901482824622260278159010658003898269037754816110313524382673883202493603749556095054221664467248699359422567294079845711490608673581440554743779826132954293466211454409761028774615814880821524026850681273040690998953084343678536421306051201431676143069988926684553551357854121548556150126083214795153803464323355347354518711659543864503005497387700701594509731240188199731358618158953304411764099165755089761278645488146687481424435491434295575866314607320324442170433075016297044305919650632510227054908332769732573742661892678136314484957602364421963205410146727180058325577180612401013938148085673602116529326966435526749371260689106111694477257942234668946282041411623627790644103952624718909054204912473525883159463780538177217585560502389461006907849704141017433350995557464833985619194231127663787825326381281907352138760262730295995414474266713875299667169995045583282877695089894163063692322253010233972336640410985915751494023785007483086098548291026100425885710561938671106152155127817352197474892639987328838923305868169040530806295512076757103779219886440089259251490253230011330782826763023644611914429328184278793768439792132262965216155564030796110812257111613286358301898904325372000904205854020011614917978779392511313247907139861586822976096467087085889160772365732419038057357409430419704075882976879737961409060832451884023111420024549825302767554127589601286699409011463060133416460210072682567096564525377571728774351520886507275760748375495951177605986601036724377796278641855957255377073935446080258070122899206769818665037043684011061889556454951896903327244192656045636268092384452712408009413577650021742052209197523099570997322482463480202642297733781682127396298414053105733987223157947049496261550132521033899983257948266603789492433663602090345079733917228255283334869512025962028046732916646307375854776693940179342814213570480810366124702504537285366566464259060095061290472326540761344562236434042707211076006759285709558169500350629609736948080137757580808028699979398962926543835771861556939548975948939444541116622388357499006680004205889583850975556195214708124079214190945134499306368149388671875271129898783116174529780168979319999504214437820976915757142748375597850276463627426950150022882228419467399248145699493450815855503348877300830923342909695625297332432062704078671010607929072090442359828834788573485155749011162726123109602199746270780233368056108044798252586970969747529506955661169879206605338839418044557750172918262632584627468811911211532455053310666845119817847290361712513305109982592638545541032674350949488842519913800875083360695750150142237598251080068160819101041126920175414413657968965682263818543525281633967385221320085209236525279726457604917675575738710147660032369890589907592824739310472432854020724440436903815583000629332210259019341979803147168763170415340364214557871099592637453340020791784172102536700489350320992910843180783184850801383828996565019434059820610720036181896838089650795264896432103019457064336767875138108430880021825674405231073582478958965943822459837037648365443542209360830532837460655654451283676747630226806775543258435304974680020421160262748467729880851857934877739752021171453945713454535622182879134535874435830793170169801901330672247815031945194784265807949244640799898334942813598744609134645470466110340767122754169012659719952554465563665342681093406564227022605868275982655992965044374622810724107773786025298084079033686713981332167661693421928376183835889271201697451567887624930868453325518308721588160263694006675689829330665865280122763593995960499350051298070494635472339912702526243032505213181129183875624344001574237007125594041338160865059557733141195969508105990925401476087872328530418672420011708625848296426547653348606096580263652780845282584938714041235280483808322800252047368028926201197173656801916465093125155960091959645385872030078297467824315623637898560958451001858572955755956180727336704676035856061874537458776902267502597144873751360087333691890962724127057525212382972280246503490987382163099089010315686432678556710492771252439500383807212977734186949982983587443301442183086449459005717221757633153637298721288620465452235388726594628072436264632500054187956665048974768173979487793179673224779842403844232349877511446547476757363798808562730184349611119813480044309483380519196280300544814670578589206376374395051518543411403275402526408816237574380839332595707216593655125945104567925357395408571410395966222397485074561206593142657411925938452456040378527363292906834082292348014172562737790309812399197615666246095394392286518026352179756431227043199447891430456723299862668801349838922786498398044809935227421671775736467142701168563665339874369240256820096225262093344671306559143638584140443105951359371566759912705458572666500699981202136107282025435616021564113886944059510680770852680048074008839835404049562866811604021967890871193259243669046767477890647044087394574273903381663655950894987084212669925638591248290948772727637676709450961473228158214962365395780644594007252185697439982282545665113447627472268847788016047597570247267154851729242474293344695577658127851208845308779349433754178171886555441268764630502535708915030678200755598813385394151235323385649331370461139118057911731679971786510111655178528276584184481314846234050658036355731956701532715276319191610450874559974698623411347617534270671286404935309821357111646471800655621103011150093047724670453083825996088885053668810830110406027979208943166082193525674411521849863495494678419883612014277797734356016903187985148222683151342523547841098897233368048697763519210902140492625090890308503470364631708977581526626529829358161399298536994387913669583844058324473830470068902568549551379064560260606487352255371552622699269225909799693851726550204497624467059575520220008988679447239822930863094174618613653154247852193895422216587911092572846426061181897972649435288132903070858445061409746849271810640775505635992585164784352610880964361053851683034617299252370466911458374453709646741461468261750624514249097405106258335131261266623269434995482286495619420908143694231467498866595789273010010523625669007601930071514733234198359394022758109954104423734705925892155890612750041986910798124702745405772463853035497323476798076156366845942049020171858346843152295533782027157019726661831175138875401005773117827749122987321590886650902139861957401953405524082158447361316870087151809239282100815834442413502231427698716676502574013056482661103834257188910799521895472146194356900552960492136022149579366428459916754128538678721622517864291711774850827726716147478345475919878362202315800387753635720093995078702341623025674025596483278945308636591001592220979194146201174022417440799407829754994122251126839174482072475505341274142141980887955250761174717170269328393660060583834738943866555657972405615401801336152785117646621892185795243088544279880769652822556443852216222692651789802586723903529465438423561427382074951902540399832697647464625902841205482085381500320503827757013738649024078023930709625519659156776812555470509130539656550033957515595580436261941013788265652546261215334601909422608655426740216109536586779185211040165354436180385848258269983441765880358783611175920545982123654649658044828625838274467617107774117219599472490185183719257475466941967651930218457826765295661979000651460339875306510929266284482639265933380169777049304713187536718970879822762914734606445267901842105573479813040607079032683890501615856460236136958215105304485008969560128292412538476332622163925409037725788929880993870803628008563325807104320150850317603132371172242690472591476684600549103040029855250987650498588009096309873644931729188923222612090275436366072722554030120559776728734109755316663677238765408371338022759591192173130277936541066530991591092095203715386797589165774454020326299040680955773995438803967254737848216597955008461381266374065932404400196419832402882767187361747724016107390422448123730665612036851060830240059426656118885414206073279406113925306475751900981719723082422757142293818013432595882830261397497786986528827587344677014811700432880689975726497385391642757777061382308393230066611377376960671168148371066331925025369947315201000730437391240357752066504553448120976348798178967717133354264823739319398924750749980424841085239364251288516162480194169329822023446003452049013935693800806254981527757823910601096009970933406541400609105528972616330242311172312169110656189087890223242428429829897673587231809575097496948890512852413546438845341254435725263498638579299132193355650677438201583617912042137340227565586719830915240351071571337572555443309754688369322809381137199643479259693850796563558498974337674590822668522435305662854983034099166327984628747780585249664106473405262020757873236988872742174625320807771072405968733032279150250083280186460414239998062172096734400186202630789685348363214568485885492162540230186047781527755691977249433656252605777021337633221076226136521515919858051096695445943145530628925302778182918377853067271361526114731898942894357550605675575051648456511597471649700873285929631251896647950906087464979339064059995023247553062495325542036683983997711823334142474310123501319594961526126777557975221444021150301554265151121049450812750353075335511340235623045814344696343014963470209952573345547976118446599841136391104639754414171899185626197090513782173591982130269235388246864831034573945936861940825049798430044357385467703573363390817833817117752426591188515258543815996808313658945651796876588650189939779664281372632461276378785091842699049018013538093551141181027621426256823953168673723436039438325092115789717481717239399345470121306816854164422421579684860067135380485925731836534257242726083587640032763776934108240842541165498830177264948822320114753310424354480864586256579202313334905107095005060740310133647459699818691905216903583806756048612877520282323659902273673790761240123745493461171619250687278123169092119316701904237008210466643042100355496311799662874246606377248741559191159366664432326807662668986834397645461426553941617955482487885123085603286228857386303241635967432951072810890297420005895834183849095333280960213494145627768094027135538590484368098372101378453207511572929909853194965807407751472666533573246650908697791645158733573166317504000361921616323190632276033391007755182940347948781191479932216132043819823003620366278685924045104596156946986683986913350106532726241288548508247343825379085994431933050371547901578820942902174258966890743854760492734000535179914011007580764745370763187110466542751328100396728461038608625250642175478063730476295835993468598790536510609058526083027956935875396919665219312916117202630055942481612243534871746336663851321891390897395611203113219319159186527460677111737890656305166817436791944429523138628356874700787614263363421900169504806847228742350860437978036208614399790146907998252430046118730131512199027626124054806124524947262202664511967961767408235943379193640536221105209007911165538102047328943343583850478320675204127633253567106408897798438480593953452466411996849924814356121682085799767135600230625733798905043150817834080039808302030318378638178432722021210360857311275703281537146841168722967559903037064609776995881397110928039454840880936703063872893634269413620408867638519580053124170459533368875618657117859033784322904659840439621649724675293365452624372840072152909334678555379232243828968212468480823742051966979596824628133731447250936077899009923909223654560309997849552429116807107422397871263788650268894913537880776283767061030587027819396487014697047423401258419848054527638819988429136855058177449889259010513241294736591968854532051083966088030344736538533958430714822063790740836304377705215002603324108128586436451133208165641350578787332917379547823778168127319804711980147934357405464217935864670611668179668967989652236035266784286753191311743583039640149771054188014945653787852371114652588953949206265422544825554139133127607897076592345992862913145857732970419372458712200217033711369387313685507459155714404830459444976879445762217899060795240297605123365831364165661157781732638580140590478404956392209459449690327881619733194664999344571704599537952598764869230035437276084032383073096853404584794176689050173511992066502804261481084887316756799868778438395775897555599943449389769626177978543152320577851570815899617359433765665437091886088898686259728785020901960081698098193745153430543343255950925988436541786822997449306402075844617323050260175364571661206250731059732357005535924659108525181801355580941739827490278292734309686254221625199573986233464916969100857651450536562724059737258926928515328727533701260593493089036918569683833771744075064891200828123125036314086757928564279958525301110606026172120942458674546488630227141788223630571840158752560756245645249844973728211883907213806490462113951596303931286216521901740222036260514525390370870989090232355204393672561416618989381364368858234544054246392467617740036256825426882701579755424495261774438086444263724007009336520666160396268156074614136211895512419783136040183664466610348795055495463768283888479304492884929244616945316094735530088810554534149653458089244034374614781308345613885559096785785839900541425260138468983915676750013416448880701236687553031185770177877349338728916400776066995240139878738233017509185429062785600941221444692518018519092986436871424825609992205172310178737265643480316789104813649470563226418212739488709243068433505770562560374128694075150348559630675371462568671562292639294279631763958518981986091754786238064680034002110161316367032260804782331291084930413736992414973278110955467861190865191948395903753272848818724881615058958561645634177026102062421632230908619364140240538833706517386593056786727800488142141718692389896322788543356043500161462369841513140454741944208547958787458338348238101553011335603676323707326501723172739224033610161516340745491555442915900939812548790368075732673686674581635020496634133655230972631584116484868421697912486891155772139353605409267763848150191901688652235398046103413596341010317902201272434682326713979028499767999354307908839275570506373235895369962748841105821908001153768078900087206478444249837159372425148354044160677044249906721010191726633633670057314270932588750042617198477276811821078727854285185626328940123883987961329353371828666827738518603782788204279455277480135045595398387799680842504810138776756178659190192735762230998930198728587713504200960468043718441354857159137874424122617825261133608274483178759178966755410258124618342927084552793544313722435644712452463842389710114492807290401527409946804264734263006908921581823699793518311012713005404540668011319517734060662123745333027024233838387024037944098759480008451799026203222897383828334081980778229584481788279924668510280507596532825949790532673107323612488057931549784027233745722265699223638300961117628733835573707549142902819368091199210463649873545154270563791716179924335205038654993242702442795310534973202670312809139528118148212119041089326884883658080886425379913065411001149894543886849022776871110613127663030728529126135200184252382209543252823105267655281008610529596270354503498522527411276511824052440063300500427104519009758183424534531856345574737754501067041176397169156515882828126969631491421441622600045238337070445498416768073223558842305673094784744396316359272585192356246199443375759789589110323044433556035714208885931356180227766020896272965009251387512661463654632465949616392181464900488749585093411663322110918179730164712525814614179831938790068363415946413797918889148762139273129035114402667235802492389295510272626542477136002242935459670135983990936515316323075171425333670905173460847669662350223819494356962609714553386567418330428866070299592583543753701188683861470084488131341016504281526369440208414554773413806120918383417154476111285642155172412707872197713957245413406727595090617801706967623965120778102853397542441128015281428881216056861806531587619698437884692260482463304828243108685315647164675275573047394630958761083164879937329230736212423906088729824995538955032148056245590809084588580151907815506886132852509157082405862272520106768085645027688621546734455485665256602094187694594277653330064763658472951695031858126707497697460611049204170611018818855859608799701727511444047422978538608840314179162690340638562485782933738809175710458634999762970760837434415083240886530293758075384030627503445796253990909288976583078888844668109017364278140112919332094184508854804663400765362118421068130133761863325590707439204843972158963256055316531727339925401042897863846109389643992980873107176451045245221440218897784709887037998083901734727202033013862604215399987430671300283711590489977926267548688934668742348603366488570586836508815973059887296829197399668436212502631971342328171823748561414184451870109614118466968971503555946891738725849871737596463402088715928357029128216016235750634918274528335028223031294699535848014073088145915362367442198020762336594701632240805744947926732809731941066893370975397761963198755548744557391173530685012027789647100816331903976313147085957067784844242630773698478781404168417200433362341625575271503863242032283459865765893564226160986336405038673621399576605197580594672916658657146018709619083377546860267830738465752414709656786574879403020412635247175346131185385801731209308617383156548016955286951992206810478186721730994914969520363454171900269733693082634749224776872242031466679599757628678414467197961936412676606624655764139877749710552246924587451590357026814608797380316431747896017590149060101166648136026873002349166077617250337438442691813042229273831117723459207894878199297529745600406166927399353574713218572220942652432041463688982334616819843960753897080910064001720787170956821515395091332794246247164195057895640814394911648894313240100453644008361673027083236704255224672256163940774083363092931149039504270467894063951761405554520270139758839518852948161423994207478036829468155224309900616879916211363553616411906186611860545678151402672268623716464540594245066166879130961026060813261547793628613882769100010929152348277643374150916157102335727519978434341210729560145246101089828347621301769483678693491508823023392334999138939286349762815413273878323075144231887820611289427172217564562608288929982367309020886053535362862520471112607756381961206169176582140654679745625810711995670474287722743419841046313819475014839731073175160282800293045605669362927675335997691492992626873303815991113051209276959850576633749943363479043317227336582411220274261677543625660289143220420667042219621705165860637152270590818305456851854718145967334270362528130419628308160462342877781111396582924576717191246794780118832478078769330329198116384236487338571095278467153788617284182217608337532521076804958124665291410492064286984627859242907317637386260985195430772331168277726341344716400996995412254879385194026157707441678346001800834241143353656637541713704876541218432512640478608639002126465809142634559254249990238282513402143697868892552496005674263814467931985993881708491508584948669628100722630189539747157532302481798024246886133508176091109821504166902265711615231967656378032867606497411945403924684077183709390444391712860161396922309280012644449357168569290962935230137327910820456434182417008598066968403601363233949519347427064851837955928960836659018601782695986443437063387466266064549402586288923923079984041530609938100454778050467638276995697647289978673346767606053366739551056539147952553668525793967152469774254691053230282220295478065737302949558168158445769615425224248511313624520304402525317829699890560003136544809713221454421554627601031594370363072185106932070825804673605112954124810342177586334615909961087560522897335611374997420098679450967424918729468333647632850131904792726619538855233537374058735911297526329721415297276292969050214374777268186026683822465736824780028272497518769076866259348128999830362145065438011072125888787930920984200471969221259036450979730006470434984138750975604030328611116976158244506944112051963008818201036563676741230220284097722139853105577715938216255216187665088032130264259003680584503049373053105749458996093622083932150547494159958690928450769216596501063004906923478686043252036607334881983011710776385892341314454318010606605539387727998239152017866187332381756672516635426929071767121709380223935991747740438931244319448524457325178106089350095967848450891638024136312092502252111624164394118631510408932240105412639498599174192800498044507267109472340308000327170638211527402252941822381789417189678200631099104944193761376799550898409137194613125644800201685642994785426674365220626108172785507768556904387423614091236278110990800120758748330928958368348627122027312626825388425528331749034635073254225274041141865411589732347173895613428533709222794449707160072165749414422014321834714800160275627893062664239492383856171696144745679403823118332667468837108043933831141109827060664248562765019060406097342934288869483963704172422004251641315982935654746230783948206802892636612514952459186495466560359525248793938946425093790437892634562973882144897833569214175576972414406489213579820399631191933582176429652365564572008095666652616394919143707044431341271120284679319902923315081879500183111282574885543731102681034768240241531382713154665464148506122121105581560142181324968559396449856587386432054664056229590458078613923017441980691989799428166491607826441973311812682264939564959063720844678444855353719499148189243687649853677766955545759896144951436021822361213626441226619546057232229150857605414399784594821811960201245210817763930914488464857653690420886788970316479949037282600622522273150227810161976987733306652255100575597816896125217590300915272855003060580393505098580499867934576523941055345104790488236271093336599828005318088528158473068838650187063684963268242159481273325559118354879458688137769132183177981339707032216921977702614748795001877504978420390073127618277600414642049101529605099213003392810537972603842314587567018057481460329778402380632387148053864891223608799846116003570987424758701964718232497306252173907275172608074729974558355918953234820950535451460765378474090916638797663362101050171339730404747560468626005166593576663373647995927315815621266059571122016006539237158202280069148655114284446462674808102479302020536776492776855336621650033644075317076700879680113257155045574831758772453838119267247017619925933573670444736375313838329529752284743005753692695090547217175163858129620049836873671088730688569401101148508628458752613214619399923776402534393917824232798695520156344455766522212394627428042145850008112671555041507704193263761567752140694997937508608842630905158957676821093038976897054006738937693492784035876956012458692671129896742347173165922626957646381918538894209258334454930598710338678312942907149145959552473872779569765267964020410446808060166242498232024529383698717488618776549050100655060768734302877984209091899873798400489637141875336776272121408588546548441109352363396608366914738996473546372580687434067719598104606406614598997909479869090876959581460597513549985017486136195576005829905654926273011761420658386096318851588458047736780383235013271995279977021898639037358867114227111728489377069990228584379310517978938291202368447633764919808609364324415577778845797648783151196939154203963666780633162243621997219773773734227834151332817562052976832810778619933968149981514427378419191095600214275583468154837491203879822602513835093971968175203926851771079096109623088377611608653559587529295187588307294446754226262636782442822743494740674141639011153410778200297791421613666465697169686078833909765284765552449655363813667774601238551366904448315925137983511532302580631609784751060749921028334676248290448664899415340305965544498872484732209027739533178377498680255068286316279483980845849122321574919495530822661785923176046061145653685613242798856958814843463846475591463568508315655381170221608181910785667353061735019485862174625265631787939943912627009874330928126148943351490785162650670577896359599881385444874640480933617067880674510857489603111510182606624211420620505672365707972662095927221163207588668752785154534182680884992185573316529530286104884534447701167537558459782076352955628539992207054037219757709050424075185338763113408871056757915884363544335032916969192088503842406872252124053168080625238280594015760840440576520837493646527698512019549474219829569350272995777468999504671329613869779157940003038238526551486160702865984132708531755680275585996489497886500709017479325576318783230204278165906526991826595822463915303525044666242858648295533284612424393519761210852101100132026190658535056017412422418706546303926302631780109270147969898466443053303992884470268085168412371799950614399600547423268701967086608495842345803379736912616246273375557486291368601235881119372490426129639181547341908741422719338140992036394605050168407840549611061417906802083950289820383881018479531352227210414202539153150211811390055019565667063199537723145056758177165965779193451917699712620447459881571287682295818298597360760063894362400701055935887375268436298704876121167253664694792841955870030749518172955491342536469890177822712407163619862359620855977751501336137670328068451379186792950938748406755057447948494228021177498791480352695747774304842055837048905399167331690581370697031029160658877618602826903704629952148640782688192439678046279985829549081477060962469384013064488864736845709537801806661795283851325178831282047161991751537170215931937105095192588379637324793571755749578169459283505204507897547432135932273514975483981792978407782576663406197871687542146500007802010516726497408661859994094826542271961985029166157242256516288728231682559737455809521750250123401794640869182872036946042741133894115867060393286920989840238565413894224988343299889783387765999681259393075988717411608473358362802296675590921024314584902846662301812271445368703694067149075455728222766501849952616656605479343190165197519774704657234053919614316734860715898196202948775587748127821047005011930181598669916559881740068247571154644586438343155226650327406875534526024181794314598739902627241357571917475650708076732337600191988128737095172932030508466561317264849512148307115316161914880979305653090207159753296819584499437307517031400204295057570130362966073713414537123005772066941213377178496389758795406288624965472315846376325569258165360678944691084949181925657233123579956892123684910742780691368784979907715290603124368898358585193817402744271768398665304791306729091241897194166481558562019548932391436604083071432416293822918657158060055874431543261518859460917632825118392512984732346056710525887636893210034302034203741886744286612780992634924882691999158828153781904028085836471884667000211124527916501140517440061041987691756470180419033153955996455318179873680116926043910383838398123203742511047212820973583973612037835267782974076587597648636635075454876382113089692924209238150410446576540959804599477786830317009829131194992421330131222864664704398477665418260964837878846497670931967429660635181179080245452582322116717670508546849384734767515508950595158404393719148807854048523913797941438502857169550881921483293255835068424438878183287050045367340210567690050382340673783825604543851853167664572308383235841927343589305783438427793330327999335750030770760970516100187354439578478615830202507156054041821503461048473744736443507120286716942879186178896861990481736249548125711941097807846538457719768342909985105963015052031018328832795790266081069532124324757531469125606505993846770643046628891499367567313220517446177773724024561727645512108801752014193977272641890607997248366217552712586884929703612419523126312699613805174034771391922595749664116651940509771538942434768019543251967359830433902655362506554799536025360060409653932869013880325836407664303517817075619687581371650567077431000166235484766743688096956859349628231972970597429135698097116791813055530398416598789558968000131320363197290485764817212691521917453097310346751955626933897616268114296939964368271483246981031048945655021233259982777579762706524643506263970982421664814320653563696167578984444227634310064674505277366981305696166366997939314521000738937593591461164750597592690738532137895390934589310634920565959612553662626942374669718930919656207484625355282670659425602384719333925809534151540694974122207628163440837534405563151986306308658785319740126990878607818472167451179621806348118384321440189844013670687607928961969663008422018793957757979301542454125519316349526392665857056057567578081786309199184279106708123158359711424545869923551278622150354860915368699161980955380315694040566270934875702936815101912572018933091535729603759781710918242961939911080617431126092758788566866010914932701603177669145680708789298886748747905165102119052005212430579278248034242282314813744794000276691334879093409879580615945319581753536110333263087614849582364015247810933135842370365955752532946030278487575179900578628900033020953726631545796482327454048285236550265669120400035529723405953865249720641580552484975072316315325763891644289591582076352303934569588609934194968251120392789226450694343457454895470950593874167779536582956255441646539178343895237880600136133320779706343687596128039667901125039283430989067661860716551421553074512890073526421488833349212973503530279033328290591490954801390259126112358574835678211488910650260580251136726606512606409286544951569407946384393536926888778495332698680861478845127716818943194078242435007352934586592970658941404571835540902622944532678282647560484786188258123262909113673424276103587936833197697848311565358315981297775240309028076579701645120659454374698089673887053172230580472085473576944388188317648052256683473568393755013309269344990349918205398392203568568906495999715133750163430286056737140899345203155279903632206451065576117714195910711752652534790996156093463070376363891761682232763711122745184789137096763662117259132620965135935480466184570685055917338148955687021246798880428918685985097641696439780146219434261780115389238450011102990137235241696062855103373963756889669897970362889611741948551084741603477895538634259425552581665453813465352441741444627831614281678768924506010024969853306994026089951571198809753238518578878146842400905264607787733648641885432565336264322230121410094016519090549892879601753692570287500407810603969150276726082896563932233216890285071880276671813578854771375464009936418573366930011546182754395782492453986647520159372723363846432094443697133301209670111973621360544155698310454914735438133826100705671969125761374436972020257703322693712103692284883763873719025243002836931017744245031537430202911288189612609632926466696331130318764917880756153699344315750088633969512767511120298085965144828435418850496295953138807341000238375621684613795459871928441247929625945669951983491382395914036761946573502859875874365873401833428875895209418503502805658350203713010880175939992596181558798925190525490373221549055040089391555746555654799631172252153908152180843303622379715263360784901760698056893033432821437715876246684392788845330454250170646857458034117361128039414685193829549653659661711538184371366419095226827684625330741736422287170277597383905564550214127179280538078211204650324345381644420643529359270630287221250963067586115722920079465771619956306120637919199146591003110556139381375783903130375007552004028934132531682371747613297684131284350360836262747148890596598813853909939345655003089280757804569682010899836158144582411218881213205959820129789355074653516716469858660017224312293696520904069086369736596905208208512427707131284264006209113026762959237270335245749292686467979593199396939343052380989541237534429111609382949170096352954821766663838458237708434542133713524280452163831852692436254125319590344147430669594992997944449189244660646648510028647910390345245408872623799715359277127687154700311832928355023102108383248943749128312622172998552679842955601668990362457240706780817998889973120459756130343238532370948727368993813984654471047387915150478319479464056767695007099382836706949588117621196560982969858415366358983101348877089595521938252083677098971203800272820715513055899190073844446673005423693293701021572020598071990340368349456776800751004991321368331044463245085268217427441781376354143847939830480331722115894436702034578589932700149073478135942143266951183005071371435014465819561680868559465005841473049869640514533992065203354105511421117951993701447090448292768880517630483012488905816508997585987012441717306967499928597387979382798359632308288234954356856806659224705279840385507332142653315744777068054153319032788429039530640953996864182248493692617935749470930581238082020563477244252629213844929477375355334083961890608974807870687349536080312008522146311968083751537977465058893729665193725820851851204845385588182142841599881383407388903153959116529192832875845829729566253805333373867434143638108312620093877823205464364526580580238755561064867395598182262487957048385423178974179713766728647047876332752018810196899304628654545677683297240297724499252322771955772684573737337774527716265280432504631256247009013487016561401620108324132295982405892273563122364476678529460298615586754173202772453375781439676092531227305426325628101251325136348535103607440965545665400770148274337347712530473483625321817009333041514742751760832622897882955948632862827879402316160660726267386623560507641756151043213752885831576242279545118007768753855161475805534931367599835990881088110092666024516883303878669955819549128202306509817086251924665552702888267019523697645381096961136246538062930785765775290089094810222026795804013679517424552505085185821440021774456830334372984696057851222065795694438739829052966710111469225000033092440242591059486413860688273825886121889406726624997461589271777554796174978163044337415417277802090784371436449664151181613272439637428617024128425477579994676981267664287656853666208180418346058293475029743949525089834640194106997565868409432602827921844300477495292214822100713234087507936242887537778090716780274174065161989632840386660435930871838987464979660212572140799030060037288878473794171834186827663753402704595081130779014197245478369490808807549264054151578726660512468609505913272545450829521821969617405339748415733082676425730398223769961378764183718145026013435047228121358335729904377954664809906909690133757020717303346190259603771412187637362624289904634671636995165724685908057442027188499663630200423203546650913032233991116938534390925491069277159570857730912205919589183501113552376913409210563659106789096005132907290830612273721321847393713083200988407089962909555994584697879739284576954317221760310599971677009599288808051189351208638026226095335248905239379470736975260120761540364314498104750672560961285906685934132860876716590808282676148173792693173144745935543281658950926649252103675513188947603285187627511466947714668362523042358398249636602333914558409544735650965698994869830351338765924709946330805106383511421984996919901799521309919535904229380177754288510193372595560409660164695236231131648147500387182761527612955318399465331864371835862950478909255425925878088719859501057249346532674551488408026546317427652728907828299718956847392627723194281771373760632257565562687546052541005336410713572162985061560850441605539039415904208764609607133525342894387887749984302607853538947610883362722636465674281206687232708642097868158497987430869903411724725267438887956267027624460355472482255209066176818578121517805254593727795250382676289997969314896894711076398227689901198412414208121557467126567616532189153888895524381187505688799130063211084804054990524794315543189780218250905197707386394384530020680991089541020813537771360659235288756756045553176521345175991472752266481411768752268275462120987071461509386287638631433425285542637856204904650119263166868999281321249078147240509963649570039899367948349785023545961394199791479230445219707256147714921937547599604028205172974423193079112394963876466398612164634964427922668172056041902168718902890595123165071735067594958068086040261637855876731347883049665776743072867661988771613326949380031324744915895949778975612368572455530635649437216227137364609009952555005767296462361718620370755953226952921494887721538053215002323575426661459902789836109050772367261945814961089818345047890843555821923154106684951982161158977681385012342054526118063127474084643667069074900536427507341228874253700108737534042457410596825817766105480494497148897055297406767478382399849632724291392508299280883026830174247269547839423673566311555265010027239545069576128200990104308885116308159636049315749462209105912833199900988835445650977838281481900870057270718423484914752900547943663822779700467542713760839679334569787089510195836191292196306683842913492311737913734870689733715364558939968374644201427887838218190162620533435421037563345128335767231237537373458440307049303191648247241450018120778568118970065484899152892083078986956596428036441173692572445655233693347643907070243372879918542743342083693044299100721664128585289670860159969844632353883159175362954013795634682459160741544607835006423559540647277059746752657560533362223394406286587298910033861653696412903497130648252645495522890155568234199919046818112242186351434734761402492257027723402040050127224502686927923109907633847129803751226915213980800480113189402906986537731755571684506927596277172712020435485302581559491986845534342501151608972631509609282383939752509066255691021838540853889096001837398730826990436189839471413137840889416084879743736915504071908666336385093543904569663218175210381225850309903619771004380583522851627371230559742872784444375740150444457558816091029543737904418798804223751679205218996880207860641201589511866214321851785902791849511120934546378025692634425644414846174905331801440077306017005347510502591340866923574824171885500538231374895534403581148130156837043749469457535551376799171038781500807854636466386723113437721505874952775469064533504198776008638116471861336466960726865435928726697409220526543562697425990059305526714172558252753455977151827387303064048015683387012099097267199914289634155317401215159514182526864454988355058325612072905706281667399263672841255510186799022955422032655014920856528164141084626406095430819184809223964621031377869451514773862827066413238130297418791911035851852075612252418409428910475474977867167085340442716917977576919236645021416151632318372757890698983551391728942390699146010173170505854970888588649655641583996403364530806814316093571145317079342904804885672073237124386646143900638959102701551330134785657785144644275005692914917697249143961332139539812912290706638587910999339110468633177404138137666723938402956351101123132859507713157985499962037108898284143217719413868049773220055335332641447428814038027751278786367352810012522170053347102723858844510475386123973240560756924097283022283559600839022486237788168958446406941067056606309909954993431016206910081557334915813260401759537841214388992354676259186954517226369035145345931067073351056766605569679323138968916637631665073615416654875813284080325442656823660388752435722413910921910565649895227593435034947680704678505598184583389119291235339332440590443935194122048345965225470096892444795014366455443611703077938910942228113589567800699057630602498704658974391076814343746024184047146228037211976830969285635327801657866337536190177079083595608871590455995319680889423867865905523359532494396306470855179656823066427851685053017127308039425946608167850478598772343729138208387729583744154135970566717740526391429362732029939667178732283185025863224110238428968868535510921949596931801589304731239607777880041242507790867351500131905604523345291372510318744762992867335599316298565131520139330601520871526513918701340499126613679188791873554879514933535056348692365474849999517998422878085239125814835400956887539019318767642743417354633716342182259480189100907232543196658276129124544773736088530670187458796861162664249799416935511679739013431634809725702746053691582195033531948454231523827983614263607037564493794595434979872773661035129143749129483848215195816973689806596444091968411784671293189734152778465844599582461392086236863483825056984717064237256032656689356290893453917641995198231587138732268429748599833539228566764748912660790560161119358842301100362144289015770609130549938765356563585466064518462249932019039950804793598164371681922652683575062740750423066307485450542445257051162134534121470283867667986389168205937582264170590196109262256032962408262906697721047793838454810968179999575163308747508581097980842741664839553432853510959564502127717876694584848235143853862317001481657256989100215701841951533168237254114620084543462302416339120728377621062993895190916932683337627254794185334769481214975677256774676813686642892841450414807471751617241784902336105590858056105641283276627898127144887737928459987439127714100134343276563131180807887262392395028057380940536149052104126924945731470833957620720781650217702566012302536302229569126890012243171952545425329937288079879862784174600860649744484381736970827587664152624056360826634150207265195728047402012313431165618623402271173959107941373994899452956990638142024490527165146307137963097565532715856170870730325992679759497627357946070265048794567627118185651845769279272137829785829581384436314718111335840074224878223344133895814599304689564375800527629061982915698307789018226455321666850031732276254897926953871528369446229317343759938788627896989521531878256511302218142003169773918815298275980625805485177335362623029496888872903149526094014017946899532257176311262193481851526413820591752605387708003888952116458640344009055471075871982910075181272136954353851549542085644796814616423289114021120213038902898386662130538871843916942166549322139066777306033532121228838936063417393507160144975825055927253806863369475415783115050450810159346859001402567733310361995268494055772286468326324478155655220591676764865104820539290742856533884193290717253804415764762469320953248892757630273117966406201598777678397981263311115671672937991906940208957453606782539472439102696897113387080659636428114528121487875913191149677388295980454612630763646615053727544274993054048760307041484432784752851399559094452187147994547931632703472134447140407761132455079338326689449635483883248852178259746733870147757554332995473378054271368717112244266902685806099131434220147800518770194805160316990179411436396411205425199932742621982534624368916847897571082592669622050983345990016031674409817240499435852078594296023574542164039381854658971767008196404287855979980066021123851257877380712791800354862668251371921902558525628346058900302327438123937064996546050810109418253162378216840421120717098437715001381265056248979735047152983170895601725840644235133706625898296854642127118086104501386307998937581645549162391275797894421240735038777847882903182040210892375511507232262862106702497792970739436592080289276996691858085622083215498356308530342681563032712972846585211200122702649667000514039539006259064700374206198961590638495084078493364769841387023587067328860714291958095623511734087709727546986955946304293923315146605268697724400408135090015640203139800609509883040949046062853551348974712670958535631907147419414228898123178241242284199371691220426144855523779869641087075684873469937147230763324732130946758878870401456463799408634854112466328367773904439270482654555102613476394122590442961124092624075235092763790071000267595642090465143554510517649185688347764317218762626865937738823459732450310060370389143661826408608343384947731890695980030063908085627878472675062499782748094038327393806557738110100887023037083338166630865457143304353320743210942866637868151269299136020305843286723483843234417180462499286898400117394501658974076183684292575754325215603951122934310578853818760928742517044883693654382477625586070052830388580475302127821377366416714630159758962280837774541427925151569495464135903529119075272786450464992370220728890389017919780291796053694197736843547426164590370964718276058043328008794873776545850932725327555845252581417975452333980581355046137837603361546712709902805553256210408395177419785481244857937637890988483888340403230937508491923843403327993989096307893820131028898993775990584013249330663903115848169029054056726383583673463084305178178874717035133403679319620974091463642427320382169153394042498466228295443755629387303323616085824824201191198591828666814490391829331417406375696910289359597455132255450104748711016483719299026326667618403871304374018388295681299944730044996451350530606481791111775267994390398734931050053309722631084834435609593488820336816683540108055267231201673221771628836345658466334311316253669879168885030290290142639710000433537569997229290731078331929072846191482030199759964554683521002055369999368162257993957897275826664580908230510637676672203348157685434740701332667144318267395179504325784062008035294499006433569047597033229766535221375318487986965520351663162346505014672571836115043132054832825725443856401478136585809391215789006325139321924821999490389640969113971923440226322803840097726015479515845884394640570636154263807919843676028207304342962816981819893351439385854987694134131804739271182091546852268250333926307105528282043544816253349817096370809306425813877541861345390102231898782144199140122093173349885916040410599646766410695556644521432757010463772604999223007761872070797824177656877559621543787326008183113822240157157579744142435395377974150695322536467013367728964707231454065599329110140682165561584673772906898269583765193087870607675886453740644404292791313264251320667692486924127973935742800874080165121348661248743818441816918865442116971448876226841747149766382488372056919681048900810641223077267604103705958462227289223127407079900849899412076161588632768561580968220387704581331342987660174146000457558230590005087455310011458243468485283414330810190387584498312680133942852992956203406707466761401149614002423433800144434879768810665677116796011344292860453076736824466438689074357400970157956279806494712468338505095330140858749795815797159273778996773053790771966768981635092780179855260563666404568448667500229310528191537739076610036217832703953067875465573560656031321050129419087795598516444444711939228588738128580537142056018986373303363553920780905889208533163502321152205293499800827776926806263160093949732812270844117039210822084161034730909834742382713255827210593110412029555362639591802766239491133040861217194020299400289052884165591196525270389801688865418032539412700553102645335472751905658666871938051007684204608261824004567594623213290312287775461567437542256174868612157702257277745823574855212227047052574662623517829631067670958935053628506418382354561221597106539370832464582940708194043536028337956817950790249534377539797031609113757579953197909420252872899709997243205885931045210581771282248753554770062611154919063794024630753896961781124004152043410624111952130531318452193222561464137835885327174645656965509994597670447707751247384447749949712850587000369464861936818734006116922310500972120238927601902453309406203449306451248216436669450214770020283298467539019992795355891589702999513936651705827688447549304400680584771131736616304600321341368832944437761790047358966097183232406390612735242260525109037262733708697648402093642518477397063997881470479749454455791049640649031651282623346661829109533733720377648463879191699700872148741001211725454553552285478826885624969030898045014651646558553904720254771483841701317424010270343743816137946421239351904498027469421975954722126808339273355871358433109359677770880560024811369815652672489268705711223420442634155815472023523024399086873761141868593679925582531328255983076184383497741007432094676354125941039237641149187061342132297257297729226333799729916649952586238502824391953399365155180464591519075841058798071082925490731250335409449190838814151406751249368444199210816581022052322701852946873401861955469794861402102095857689850470030294217960795558670773151516964639399937987993888396892321128739965841955120997031783525542351244776419543238653405288030714674683691453841327915892200285108762253505494756617800804960966227332314177294336943566650889147908654065114616458894260181347057121219135529092832960824712689490748997240814019205538541713614781667310988133270496404846090940791001657849300217806291678459533604929340544272093775104505347430005170708304585256273081625936891538217193963315402298545410403411709234983152546301587656521950360758045774085795340172945778202023537273659515463210574468372946899259524819796973188032869683611188533819213797194680040372995446360301291659995008410736283519301892548349132174267657360314901979217806624559615878927417453119598693776331041453586252785398598875713559318510417434880633598301485096898411953481913246971109403786729762976118845616302350434039119260391612159258503702511393584854623363524739892200730565042353498249883763383921418128496624582945065496671214121247120104600656935359089437790419858130660858494259806410121017444027013826898105835119946777034649124119225347595358052233381989642013627265513669454390257112660541295579869356566319803214276295138557965758273751997581401857104852800843152896191495206502822285018263376058038216810226821872563285502620901616628574122792801688754845122775381969835031148554182210800391838879457478268879128423266391006100628295188016276085433082648053250806425565216353625078456211885669364226381561411877727622660521801846638717745346896935442185738106216032058788053691239607607297862800091825736936680379546253016682710161965988245389533721669398912542435867062555059879998368518504613233793499702497665510694364263646323077991262855610697312703312291547493301859457945176198409076861626577132983537236952267004465119116580863395603912338462440975305341841273128168383228618001728152933134989043864533599150035343949059280084006908838923464853373599548777949831849851747973539481464481353234028341552769741015570496092444651245050380075845181160871615745800299803911702902115983796667236589193708878644893502784689296889970206408161543571402273765936395602045717369686765764895836729555609863652735333520315835501659153317708771091259976327780295768173519089313128237125231109033348832994053719443709742693887740733968529084767915506109751791138311683566095847641236773767968379651658167847776949032361654431754185629768064393971974047283217495722709998360444862479424631873579111346068301941329694980679355791804471539048141628044807337650939483092864267518128261336492576219747977393054150564995261932149053586278622636550209684802223235240066258454193973737566536831741093147305472041438759811308380654297889881225008297408702577167382371984026594444757494031528940718978444792527641680025077579046433985851921423335382462832195991434053857322548104113253989969508814081770577745588907619239703777819195575998974994073688062263560169869626029586650223540235254902936306976209228678036175446859901884503177225050873870731955263147743608892936959390629695541067532501495376199864420582760820991630062008063221917385040438338172540358891817052460932397969074579280877371621909864436571241231019549051216124493800646133016615980689565913894581225962092396139624335476628411211020831444951440475324391202844146054675887417963406794377355743786424112708798245386068086300724665424770083819386975298711879925874294407371896821855244641925087681745193779855191790704977344202137809347234390705301463593964267089109200972769254198268115806531112955525584331710056832694494957436390596095038705633979439676218834447341180870134544912085305503723369997311213117977777657817219921141997574394968019215785685099196151876028513612594123798486537597870947312894078678425929856289850089723292406196246850772503324870618052864266263432266693254956876721692856859165481740337810467113076977372437638880168889229718366363022615227417068809686844580044133312723681464353263881039587893808916679752417257042618387244737892709188665594969928274626325881030210454845711582464585647740790949374755367620314946521616305662578491905307368855902594623928866392275781968740376497231494868838107926837891482320829645731251660383566194060047740352132073477546803955020895447275957767285232235234458343431527318144974622647614216291802734561142108416348119856119637287763357205223709359420213517493402348020517079337014916533753413159102655029701020318236191591491193734373872491768329392048678750440863648889384221669761587204526035329520684945363029707386346639894096992719539102039787432363581694538380990643194431050397323173752846309063495566765420289370391121721920273479277276887031676034460523191059998345225246729253808418886379629037300529135063025579993867193995255296706088044880545265512831023326039595747657233012658509807896297347191933294552226628197898344658572205090567456647877394275458661918533778485065988715220162218648054295061111997011462863545062851680119550622772813335723837816130892449370116650186880017442945933676141492256273517068826834287087759174545767592804228414723483592186828040046996241268486304593394250231049421590586944461216484619066019759764737470849862077461099163113221770092866880817836856772040519435652018354578933511823356817639436699180393945250981064415083971755860011180154701175260653611895635990611589416853341056375013840961875808671267747585755211625077182494557322680999826763914318887031545646694767335380044857761026401484532099641457672521356425498657392084261515045746105804905996323858055498841919473660110041317008788571967551784750033137236693462722609110554312585553390954739038573155918993817470901605395142583899440362957371887316467172772851658322372318365845757185040010362116592456026714124705287182469747254453843950510929814187580481645611626086079890035326030594675231819303660991023189206052579844416772955864353421901788597260008591720102982187330848972636236605858113571543158143702770746824825294266860706997407356296450579914903662472813543042595639294844908639174304930038605109573016594310276094997794728337921193720323799779144834215923064020616003274051751717541308962691477991218473390962081230579413232387884250575065209957144592861779991799544179725891708821879341726979657931798936725139264192870748811807421049821590163175487368474778765438896300544218926338940541994553979921457817729360651911807490214330609058603278707201383827439704055541587256159955785507698271179032586073612040208673654999965658099279776856065476251017099677258292424626017855582529095839496936699575087505115758591005035010256905531407635035326269429642871596435470400085913795910559180583925737925115651833630075694179618763249847295827033625261869363858848506236311980465275910172644647558874532210860029125483324171931908410112290476091648278999196503060662467128745819546908820429582225495156894601163865856275468314433358556436233230050149744784666029750636209724970702146675706332507470734255440368187255286801319115702396296414918564040654423578347034318305332438096566978915944365137519708973397525423392829479186332216622480185608759508872542626869152818904680177678141028674696443438362253920086033464439146374120389333923497209634987444322989384302356041878107688062080724128236201681178262606647622931311301017609439269217303737878687321920870282069016096335670985562590533769919636317082652418324835468499917259884815700851377140031492664123691196730480962060582794240747552756935568947336116874473198961036609933129215843408319298820454577952665059470423703590827652164597255668825618510820605959821192944736487361682930283679744912188328779018920061832070917187006413490203378726328989508780971654355501450004905017618080492142114961368891053767132529432384154129418156423368287848664642543382197211574930346403316385739097812804820055902031342013888812329117837778182409886704797998589967045700641876157594038432573465016721791468458917719394835686616867041351743861025870770959801430017366252829630902079271615093316233392190657089906397932694460879246337442086678003017760552015063473693203776184208371608025302312199501995875814397286575623322650794202364421665636514497171528015003343286528488514189931225834149611202689725989800643960357804136385630714855947305723947630937093978848307121613834920287334960531963592502751353996832996870847423613595700669182969517343981086412560425872245827827125438625988124738070655886005334815408686164358071140068162268528949584909579082063132790637790248934328713306015238090013110227089364559085352226424621639077981548857657738839207243714475751399716658584606373977361944404794072970595502158097695520643658487327074201059879529340452645096136415077950789634313118718302979250114895715638822169149864149505697230311484318896995628434674914580728510274424246794423608487678876064604394058374549142254547364944699073259021608892322867669830435123011301185824910474115724965212087199548273646528105832759822032174072629813966411259097516314670980203895414625281667394921896192937088602858088203503062574440811525802495230045054825327547546292836045394763231815204527736232816238628025330471069300421962217711757462032400305893735634925118373558263293657697507263005495404986994086933284766817231993722163382731673240322718591221263133503391408671954955552896761019560992937619620880106476805548197873073898818659589196401941712213472628653502744718274914229323668594192203272421802252916111846388975940719904519989770023772200913522446887519125415954177908316609621761130346675683748417311631955804993789664169355120391834863959223437781070618905287936283489958414833458656296844082730293909454780545954611154003095088077843403644037348604654805621896205682706318328246809392537611321189363879868125987194688965251384712242073538276295419662172822720056682385770699268441098904521125516127202993148802733579676506864549320709970446368758874864108119811417573117585428975184427860655726815050820903386270705237569014528195226063116147984839403167389211197541383661316253288641638744772686980558696333186418423444831670207232438248052293029301962107324220884212377469185526052643275855675480284252170647653178724215242336174955818569802461506448111231656677045069271349217025411487054455224707800840152747145860177997030651210252749787826546570257792663469612754069478802054789348850035091644147259019191936650937539278167076680097675140615483275405035503932561556082910069547226515346642813363805341296246529932242320020570351807416530912453869121037951177965195507300883139384712536968088755664621349971866825098649320285956783431409600092439208939458001200167195322951562077784531566202276179820339957953855142438525375604008079967750146244208421136949659578389318298411553766881483757800361134941079328869023368893185722300676915981763709699795783973069530697654335145590832327850772381083231877274963893852106813679895795549319850294786944977597127978253144285442196297314301581153840444308356058912726984984016389840413804346756366333530795406489754128223604267108787097529525751082397458468852153359337733329171354384813096459142631092805604321796341669193126320570424662943810426384583273200064803976804502532477236689011226749614406192966524255586998381626299795433929540378209238482357604301925037998734260349338688809442038344055331650657725340170254714465380988036206081115752514328207348345963847737241271408007393169553006137630042161719874088861910682529925012188280664591075578448974752884020223387255257264655223500160541989141489360141119819857163670431356878843559100396592774602088515130069170360270292595524988608267857220199415380024063354280720936662334830846379514419360740820712892657320381360548529718446451431847211672818977528665101106720509017635630639219506475958824096980494022487964445784970599832718839934924013391259802254238072794699469554585890915681983799258257228674982235541614063797316582288301428919055342598109312827517723802888573120242546033177839627987563596946375638419986966576248840072812331615211219469965431320989147030394190057000974426171611572697602702991207609096930370999592834003845841458010720069423219094044592438581529882735500252695402686170662858528495767952427981857337602355654956723006061063545411172202861445165040742945886904202019261654788857340027471557387259344883728114504897010210683716695416369618719316324031915427427527322060986319849659082601112639153272893858651743731427677290786847708847018982929333635362459645220066013092028868583418784458086591102584278995194730485547501640485454625358975200213391163452039210374969496295250076122273724048593161219437081254243368076154077448444931979533921710510124994819524358678300921152514459348133980484897695441805714501404714819904890043528901893224711383001436231059861984820331037928741829174111779051470110019178401387638006091225365099097540856514694679463321185297474138897785459850164096217410544431624130316157191773690212307495925319085854930036677759588553992298675289678720081797713641798177577884628733924859662565617810874662346925655056827032092268189148538628003527143203582669141719150636789306171233711158228600739920039618039555693017271510469265751019701534655644222832871554874937767972669035402677787930155804016143358628511426102976796940428820253740007195795231355597002675482695815849668627242215174837512210716615586830774882495851974200573546799618307808197751941648058389744838622954941970967686876471911156395408817447153581095026995829970671576302165257426729160779339039115981351232331240649121722483948663383015500282211034310865950406502912723337842838831792387892902009071712366017356919337199468257322301016878187705860362829486943273356917972128077820879364311159377199828197534678962129722006798109516667889338069302919843771265862982170218558743248198171133685858459959520404500368863480949709255862657032211405370570799320591603919572956864571351025607593691930681786623518329420176188489665069266756274760552833557095254324010746135593555620803181450620279677084304272365289691050288072060690724153939496441739074006035698825224695283792194004503947797193857818616188724087814476546543934033342045146757646773226421098820654012644476880570627862962875820426417704961715265422764517220363931953871584079740725095062221026518488977480527034024309627835937445965834988763809136676777018428479712113597130836216075856164461460991112741768732669675088405483949647760458285344865432143610209791062770969555852434564714907517930873552474195012270885055580573824850800152231818036229088454403060040929992065741889552721504307775864772550588559426482249262961327873859754257721312143116614151448142358063317402640550982042684063666368329459300641001647222149452013585611775244346736685543100336152827635263271877547359966113474918989569343216835382825482090253595057912490649772937898439296999756646990289998818063785241701502782217604392792441035822439706239779857521981147789722357193906693753994459266134351999487634293925941473782080678532881125311131908704788016191372926004542209117793863843547063016563908584055772695459875336973307426287780310471319885388105163845287418144563368481729422024459393293612595911671207498412062987121894582260116098471504767452166229067886000555711871033361229351708454746068341847032525688804391825274270265123714771412328723888707131641938797661762944667924385557036627779221316332857355792535585712476969275758073242772996299438767998932265582677120685830629175322795452348532990944434725396921750616688534828606480674817630352229442033140319912960202048172515564838424543257402419006540613283383600112282705130390853249489063217117841121513598713348953645439255226754471724332042576576408168341479864595833608115348436082437879389452910599228570420005792890411319650960386041602693190462696084648773835783128815818635730900560089021567668369080354134672015828953685928900429418676149259294054304628461799586918250723946415666072704518751425789046447232840022692232767416278325770852380629473067815877519988033796389855035395417864993264825983809894571771699645120105223362820749477219005406249061805680556261805631188774549683877208310234392353547830949928851341054283515465584108017400554646667013672401957329507134673702304898617668709255446780998782201537215755032487119132630050723594867768382896370695052431886483379168430158043253936554375170236876058125288277433884932280733197415606361625329137586367340838288246170305433667880185111767138718914206619160672306410322810490686576945092937380947174836006891357913609029884272867232004953642192883933384416730728663041597145988205835784381533036637005425392142548202856334937618143339783820461673626733430040749750618659704337720779667377696529624997429492997997056423858917855407998918694676991361864695879299986524088802884450270851108626657969213246583844176510270975897743346761788309743641585090271613852156409689268700197700165193348174642313321509822012070965643087471109381688424659671006432340818903736022943962015080681077405901032820113191430506957034996593803882029104580722213459156202265481151770946117787423563603287902975605874409845998163550801734416312681780829621171279176688350397456536974881644092019454541411707688450596744935560387750274707420933868533513988248233410974476514409151531728154028252950573504959732543564746018177137277016358531154081656148783845480728107847450585986620031929425603263747271974404673509478684042458759356552689327104623909544302302818612315765333741493143670534397452974351056469792197211725032880167427477059376737227587176466459544614350973623529661917661598744773022893179631105426787003794990838071141748428081486181863952312143232075340436148637199406773804127903536306298618345945836798383851221945725502922782117002925648356028925552276800557906458068063694431291137332921193271094926907418397118739706100753978145097486363144511585247478215375477343034275530502542061022944343464142148005006932738606874064917277720091508282318003786651538350536423502430594839809870990269138520501612715398744659795025692691563097462768575788717390559930179239738945254246384334057243347619793207675488671768082465114646995483086869706153598217989689783340183940844183308387569871875972727901300456284373919684776937190668221569003301234481498059288859294081573357463098714789218032044576350852895449077374067738326173804881984943167796184691582469788241488680547422444968410373021133019858377639161979088740478726380043450850098438067975673107782876490574866302139700904201660721127671208724692868025359976863907733976867293844621503480873769792885210272112475262385318469753398431130884601027898854230604993758659156111420175425488541358302427732438195306361122901387627132999407273403408472220719662873576025201378834120187372925899790952504606457084919398048128320837994846308042962202377954334687977812965019074164311022477446730985183191846701869290867685867539840708987399383723291956934407809940156783730027803293758995217061642982561396127454145841915958374753861406568291678924824860166385730306432822382164614618126338520775393699598261707193170642627122575745136710069708283148448502375988441886194932028692892392983766035760730873480123064371025192614535855596012395406423187768825508267282551270588880804401194935780088708026299888475821141793877541737074819725900812837729681447576668396654279883309388682679920352534840328532458469556412297750469227853722091443849194073913068877386341637538521869949244877192451879769568777362500358600265957401775579241297379050517377476285768896001246070144407289078376646266587699898525022582016204705669916423340771214846693644640223017524363162467133629887005217944907522184970252905969123699924476491325863514843413988477474921295220127086336543926888700370286327852308256803020428604591402770591135643741817447252120757483927992138614332752347404697392260222747235845928161901424792311692149320626953294074240480649286648478309381714462056680060635790439845084118520319087617459754177753184264993949543153774501562096848336015818247351153099614526750120353454592677811230460896377188096139428577303924230908832647136658630051755973835736062630274353960669971712693822025124981938502706574489112976545194375018598064137647049331446090750023100610722843969807201686209835167545200540479268325385659463459837798961299038656454797706078838409751020609371311505349732118316198353034095607370441087005057320738120721681130986731074744582647232790250742174246572385487283183630915798415134049660971180953989683854666884282286434493450454963253579073722225487938568341798890253864368904660970384737648742391917278248138099254589696784795603978157688058609524743599646650385630321928301124745668310194998486501250218483663058218166721511556693741401396888477840444310014102542551741976283010406205178627112893995286975589479270365009764648015393854705886930445037113046111838423765657673262034826485322111908706650977847237101507653022165664509470151675100902333952023372110772425660435940209204426694791844426918379823751511474517096424549867658068474286903529290747549309242491422780241751517121972173523820996274352875253033095735429070312087206465516353057677303865129096304310590102158788860743365681039744897210546687143940108780126435714746152036545202373734456893543404503432843737021750785055778595277241153320569497793361320404955033829074136740910428745233902880642399574685075607714231643916847469533890934840641612565380395093646756787841037914928966575323867220369595178847239351948281580278320657024216980385176800306820257033241585601705262271719715430739321741748162278307485587769009572515380628748873946774517405606040639889635357565581296305434769303812945611734120609997973065320043772239087854544376663218459501722624814339853837494888352478505096482432073591639537304373309948187003707805698611849175156233888935909319890905094271777395965308423463250414324781549183815975377511453383500567957708604929858016205623369055101231796633748034093216810260749897295018322954888477915770670722565415997508006241792504850616671796663309985764450446888215577377245909389718331148545708281126360112545068769812444556282487779560433734784321308596135986360035735211297823488741209502750629343125220206442775767770206306859205598841790763585765128412537761033831589401295085608057886723987014879750683465229826787453041166897728339407150093500001560199669558641317137577997956965385448272671965178883049365986243732685604347401425197782226055287423004697819111114915198865281470829433215625314002738861996536277932170827936423123307604339641212261941933059856069538941938139017858469192716419911304538347571552656084221968103699370376653357465252498447401154738612751609474134402807448555577972601202040155242877487842530117257565173533734799247113013710037528377919505154897629907443853332911977982155023391356313597060455918563293879940317290277199704404972772951529873091862560629189059862668016388114179904000289737212149826623633372058514014832751098386920722845440061066362493191395977362404063483881811948165615531317672608179116154151648673536867862471729803818039447052868042901678781794546430414281406218529662342867112440238490919177867477742010661219310090262198576682299271289450379498716741704341545199658780332432869072151427411779256092924575533623228512993221396054894140208029041216218761068009217480914204503264399620449618103925951689549074420705807042410834307036292016343391443552103190956108522983375760534727289326257977160290567873882909959127689326142588505447489930769834013228009652691929008838655293005278256221884882150303593147138859112601900776094725761552750784341348765958054350951984447699020973204053660311022518278023260567480132919587696182245921672348396161707465679514969264423787151432544605596433619465523147143556977102148966821273185039361409396880656643571013457644335639644527990824326827011001488094223589741774226001149888719209635358759911576691843772731728201110740594615580722999095598928455823268537696852702552201538833596108101630077510832249778492974620455339538253719307303903377874709145915070509378898139021508832861474023405336464534590363970356130460495022669670958159856105982948225946793383360225689323537217972098475241030958375971388339357678756039482085179680216030157986727284313492948755603446780248346623546962162437259292037319854309794663079966699584459360973549731762702208044399885179776486562883374261850141580675001371883407160544782133818279977332923094335983443224739545764791131442529121614154719091192246183930671648454844063739671971283435536422209759318101947844586759166615240562678007589350174188628062293295100856905841610062591351951495080863265371160716675131162503225098390208241570191844155456164942757397461523474508860995118700400415131530550972675832051304345204744766641451105345928535632662945646862715382365779846887060144806544975216057028146613769613857326233983181383125875401604953323013713396015808776994887726771628655193081644196356823059311884970139666047353564768966897532070664717415324134375886520717665839473394118581015850146308040811161607256688459600557172607567122710898164525714847225983576875076177497877688646043007927271104714751376169616272800189940527934030894023541183673461113574429610821610627989307029048526776776205600895615106454549109720067665244746726178643766425303104868418752675409157101507683814340606399612215558439776397797042020324109522108297677308097727979046889069118203574809614907235914876250812962295307536069780978252576495196163367740344805723599015934435564757430740818881005755362164144098321084469094948640734628904459991950453428897314041486230189062394929738082016966590911620851228130820319699296220600290829588682060680034821468293743433611101608158637821364287667870049988917826386938080968242629917239770130684321785758783823266020460605314568584279499101175872665179489205743701605072486240625429952273898737117709216658442381256777408683121619421530866000238533940336795546810424744910741165020469174805225051151116660971773456667076777194845544947649914063801238349151240138804582821999387242790483827716768472988608759551169906315805076217937224097223879944902603442224780014244059070479191236301963879326041776627941634411208534322923531155892169089410221892099997652029948116755240011405716362636271480466818544159799261766484700291722684563482898617050071045687538708111283440876165337309821672088064915407459704699004016039647323146079927876407726924843017150197968220171479224567690850840634926860924319776077793721114793934031421969590050421483072160948752327064062653220970738939660196938694735493595669923470882521668759363790698426144020608802538787366996253392744762752176091838938243169830818604408458379849000399114379245094277632918127301002412301484557708332558663245384896692449430420405719579115979838431193506561740125961888238001903518765045672441026616466992699371767513922918074288496766773113281378408762688214125050952703493720011844052338479029068438498287426991130284366190915967047942078052210446170116470864178174404993486326461029211795934112480784632565707435054033512021175502976672553497218990695882000083113907125905775121142601094776150577732259112036482528683733976929070584561326167990020882913312051068114109804842384663544834169697639347920453553950350249069896511885086776482210952682415022043029965563042876764486370582243235002585587223578927531417459178167399737202053653016051318523520952076772852028189543301729450892999667976785176213659197884616497134774946596269383705371448583744160777997936191632053223535237169694334091452668509424874258292232629756440561147074786823381116059592823788488308982587481651614392193465449398153474891896291557849874897635941234939744643979085996837232890593946973631359259998583029772275230687208865791452977633965543230873130893731021344780895737065523381736621326887558882667561788001477237094979835521390022152182584654542662778211515335141261646629564839469626521924903214377854247664333746960990764957480813282473731888197815735889394516984276621515491598131845667956839621883475465140717158054481477383185001746347795134589615287074216302135281893925453414584610254669616912538851669718469923319590352108071760870069502000210203863306294075608279636722375831429577772303946938113958292346284587122387443669326135720749456906549276426580992155759750939407914033313052162749270141844312178910895745405195982763630025161346048440012768001518068510671508918965140472603551910929865790699674718833550913009943391828874643368670767416614424946759505207868609164101234752908647193053176166527174831642874133165844150277505315996505164346639149600215332337451634681298374233737723670481132317067128507119492052659323833530724022691045021469367595173205778432872935918554002022699699449957004084991272089922074546858692419196882782204145195595009361146006292440973184328401975899737776766534647841286818836014396327622691459736817959572806430257307337511902146548302142906495958184881648369869355117249935795385760528537285610882402893255106718422806917397375797609646443119851342400505672798146949999003353180149706934679105534482295316852349269967168020559545326757217193618283383947220849980130986558774941022779357894097350691490626625878891318831012541680441275694345310600413217566114570832291834543305848565161301940736531830446207464596055571779747062503472789079738103735227161383980957274981587288328256122481409911785411360574681632968693220603814606388269018416994565001564503520806413784277630599608436143744170407439929798004360971574990125600741544989207682351795572985745814007502439480059249797617755279053428000679544375534369162454046165019599094272206216940809706460324416626984472736879136710917224086714220657761367862293076320903887248977012595830418603640757179768768165158542532086476751606894026572239885810474808903064895684088735053788781183504203906924153430464066977728634928647646413885172324354772321874128280498612633281809063910020392630546682573089711510582870718357757935754482689154047229070123923179715178194861680086158048736988094659564432543815176686120508347930174494330811004592157625843698858966301567869641749625789267757969528521563789133652653187609373295862950843949240504205504843936875576430260619172992047183438152439121968394621893566270220822188848779951454530027051625795240619293341919032587360992078953393009250326516205423656310026044128851657646928084054378322972093007308560664650078205622047612067645106227434082520056734289158575817986544900148283910703179466957005661694382848163942317259986417870193926049225283352685307102911290267892959712802390194368079729484438354151981390211014037509233542968169023185668028211272908409112165097674108565264148124888702372237515862424912629498197519699084349249318138334275365871351423162769937543208002079875699298560327216239242685440866443840429151840468688695955861960732555197691262728020165941455117055384391945044259504406978076119395090560342910616162233114070497661205324765457892144052173555300113356945506223639623042107899191100174625149333810783472964040296484080689747638747782459254377942072854078151661070438970921825512588695501789481523316074502797362649206185022477447448324513211444308050033549587133656242008127204982914010649805038331710116671584436246612392388831209139880339347098858743910734050666180101603357020789579811641375047084651857938916597317911225738998761682511012904161928779991961052531938979504718825788134266813541010209695947983013322835889162661144607884864362191349848152321892909886361367993957745802766570851051612906921462878245110906646446398012005776656556118212306217868144187654671306433898902982921167931849738600441907501358795401391721016119164477391317579325493931009148793305394452750856371515686965395192890938525852773162217445618806492483909524989806277282501389903512458215487147224070833934114997932269680188627454989882192421939853000874253255192625193536845816755004289291526971410490077937448326023296192618866158178509239364189924888782864856665664529825472964446633086027201199093376214026500375080158150647952365976060008341714494599020447317839047075407962797197985104268291825652896622998970605437040981751414487672778208990514390508808012252440755990600675588042029359701444500620165903102863753671722838920587061662956064762897732339927977466185129778212214545892103431835205435246458076573052594700400533467633471994131394230163216240755052216479148325048555224361478071122351051421112257405392825504655520046268529708591684814212762443874020190931769928208156122858576059967947656500993640367533680736418682276057079427030300427314675114042179948531137665987268838321878491430226664516256826971777675101943452575356050454933668881214730528056552878167902137443099274236203233722929087862702090845706112914327667993095367265819777864670487806540630611137554582249758954790685017592696946886725728385126468740833607000768036299024852146546671597986950439992352679055038166113177035072709079494678606236889746807476643698124094389315716018432768637841350905923037840525122304667471587801878867110893992011380260466478632116700255642866646641247216176872329594278380745953912914244498391068325591679531945385239828054036908041976514284165240407711395195514171886345049952908235730055252693622735091749474757208307147863595395641084813809408153429917408154808870332854802304938270633277102235684761124543425180804407505321612998642016225769298886346347543289323791861627728014052770723780771888775783545671960154432183087975030888400111734971753447899823690658783128201826087982460434480807255853823367038671672559735053942738089272440393230896269116440475319827016882501484935218510387802874615044182554256589534531273840948215618903394690199473934586900891838234324428432073222935786112598217522843559675265708502840221353310406932262119712159931603947478003348133150963715970989248893687301878039892973357839289006973258362393064743076974433629473054994002077891852667914768602899285644898795416050187780751952907840338839944271803329539664866136242290826010087952297684283872845365645159472620494364130582549545352949850272256470919344764466001392825531800615387177972400125078422384513243592922723245852308563145839020509341467843427364982772275357107840691764163927402508765248292902194764702841617721482784711265744850912152919314674272968435008016667294828203999010744675827230969479304446636020378940641635752415283740330167027432958656779757816681254796154752066220886453621991788553647772383175595292360815869043255606008433133505059125905779561113969445953749309696905265379414222206583616107533907160106685281064078440932202120338270023217362576236663737846636267110198754347580243371137575155262519482284827231095367525452780711645299745472644895483344934281081319127060623722373519069946371516905466964357173935434410585821978012996873650400202327040670489890240629085913611016364329903856681265788468214854708822098273477412870005742137815497513363467442226063370024949910414077263140802493909782377070560839983639452400454446224714398098927827303196174221002419918626145474753796614692182373312296065625944170553515954537575255641410596823714327937107767684166902851791045452155111812937077921399730920377487354386902793275010736785640933020851051248493049299144059898687702476294532355159576204617553718757270888250203405026932363005845066969256841842727870423308540950622312405715620270937775448032534509818706826375869819634611673689320485119456811780677582071086777292700469771385494158257838394473786111623266718178227678303659080507171906979485369541348010164665599727675535597592296244896996082196006486873582800073478440749544406835013294014046033832734134000938021690014679972000958754597592876345454204612135884634622387165517225731678399693063211449139096937485428754699452010241628733085694155639440886256260065704819017767083804988992083779712033093488292145691047172072926134586818254332001467113172774330571825490753122518972445837022601206521753098989021726611542100438377227677592360144186906987230755923431533385928367259822962978625354861431030421276537005115093548871055147111768380957880465890977397805862939291602447239711646899117487141510262141933969250444922099217266608714515942644840054130471361717172409939441872113175341883886929790258846301556021701774033431036541275907142374177321977210253336278350105646014669285464815220983736890804613812787632472166223519087209410858726169632638210926530587759982386165123897946300192916486475439287565832765873732279667384309734106305168550276152716301131201313942165017392270572944469135040034266180915965945496473622610532569614355052317611164825186468256244862303551653351174709601227789090160334462865762447017801612107895851495773304148065875588692503725155889033142910623080328303222357269203806677665741028593166468104686129011565232250922841416708111563450738475745007831971554942045125142271620123165372263784341355039248209351943519801784403918328480889687004965257373937047247213940169586409640599632810505868499884321325389356730923602515388510767462889158419560559930985913995265883038532923418763188451572396062914971973381202682805250119037637362304502903369987817105487618795488008317182448056993721850653884559131987544086309228835314616503981451758653824133189979729965834716298463820402424139227573495431831905941643127242003910530506028721827951590604865438796836019600301504078508480978327571213675354943290126254832820062792961867191708227514871212194573659474788661515969739144859902838865806949348931250401069220529551929332624194703143485138532248012600535513084927813269370029845760117417007162420474678008827654688372588584714466397490112104838914626117654625776720932884799565424858742158648649060243032650192435678486312118326026248534650206482918724644110726497133110996009988105160078640240762294236151777268556116914465403295737120927724991396185031255279727839012778357687918641112962952296728838258980721890965592259221209100121953891359616068336628407588402816409833740008254085660129139334649885689066515024877845147645568085368019823492719701233528459745688478818342861157820660417886552340389038017851657203004492431511140751259309066728374718344511654115606599365304670859797444026979448037467428911669754866918619432132157585216476125687312142228618424245686069641136662581153317932519483301063074334265551629938512244425481677767883873482899153706315361576662448530882626148366558169157682805468548478652523737426333869003940871862081448383642346226772497572305803263125348933249809561408403251981686847840460871336905265356776402471538552645914789090899352041923653728277371879980439577961988553911580791896653453009540789828836421543025931449851174603867576581636137768233594544004916597559506914696423071331833338264877811810673206582712852674976039267667413484135489261850720870831119523633244545513473283154513691479568275660348332157633902350566781107262547252736821837200178929091425514478574368640256184888747000293159668680738632801667407456507418837575860930624424871491873697469684485602959750056384067020324451815219376406846745386676088629294484927831611501777907368157864986749142532660870301518261978543101318242798867784228057298876539683687642603113881394042033863521370921140355513614042128095057617179347922177264189845904311751602111140072240539391037619740980690033918957892121409193823371927849083692003435665848016509699799100109347745247704071304816821953915645429884838634846278498227910521377522687910408533654191436959739440354945419272025972666949855977029038459520701426676526565069790428769588666013650923772978920911924709705913182130022331180263263087382948983621129471714838854316425853302747635037485367653291583925482712154590909282819991058688931197775460286746064077900714395156423149163778040521330768635142375198022257132253516796614487990969489201359850351769631127850365326386664024224031030518436630580895674358769011275046538708176036236453463736591371113514358784091641580266318906403274627009863197469262765795880571768781626834588035535974386546901272368866467019570743928195742943206938994319460996940959947541929796651778045670324520325985956375664803750101097343451986978696916782865806350939752809918288929080006171111677489906037952530141635485893974176336987947980378329378687790988850210832869397426010777649376376428355271699298763993035756340276699909123614686587709705068747121552144617739767743526507492975053123391035694762744221809418764518823636889578391747520140228723285104282731756259516381934561058946189470006314873124689085377574407072591048513611320407329393528082473921392481236013720270394608968192757910913462956624258812738201890544420171419356268922517370608784518486055717826974592942488610462448931023240840662625536255139497586037976795896925868192643631330064348223913059456787546362577351226156222870486866603670948244341720354561938626105505845623402053096354102061370377220612535207813801417169648043835081454732982252226888037323622503487836223704109916120022829408601877974077790621739208476892292402350909642711996557201794359450262899079871057944957183560176018362707137108847920883282619303016799709699590862641621348281759351085710998310829264059607351167440553942114843341083101422269485361221914463983379322838955863553154868430838758650948204063453508354178832467635035384142063934999860487097313696325578842603177676466887775832477422229835861937065686096086137153608066501124166228274892389672018486848671112533877866124682985833330120994816629855732763048524573464247919705630682780789683788985552470587982724387313489441218154817332576056927271409379704292251143953381216025297619417244655647785667237531561331910234481413249201026373292292295424242293683031064082827010267783142939324952853516578881219417968586355168397438863362793243643210879214486524130060087205977918551760026610189878846704283118387514331374083363343600615924349693072892841883827870154077138844575242297249534047032536695660861789179326807514715673911681488787585728143887821592932993770306283372972413595729783027339667811356786622296208661798061063642104172915174626527873966813855250137702411477710213424695980399210141585107526916508264825928503986686489627335706342619147079120569292449658540362055060007963088868892836425733273729720006015669672270375884513662524459407091557679488935495429616035261022232386319024275538531006219275653695111170466422648185231380117861896297020563515775645523753539994841234030892308536824943221394105566991704271632083534436453186190516631831846948119631620227361817873951938407291444341070497065895811612110154945628530259821057363348804157362697722620790670443321220611842991755204485832679927518996210731000566964839971612070121178007446119211164707777858021235797319163844253382957469099017348866086091390567233680916316155318160573531195652947257841596586104851837735489261721577579822466791935060698164972729053336352602814386186646332210786584104004694751280847286362545429610506396222231917488549658407987210453351677862820894785866780806214802401418992173398912820161350830758239587045520501428380474888846532689479100578307958440444928108177682391171673834771498296606043366258033343871836246590977360013215094585625711084065143432955754395782905505664977150600932643934001045716583211645479788079124590416007604847432634325120615289503242618401038201099401273288824775297630852791263688474404657417671485249189559840774231441117781535672698937443999279399393762586709665059562305533889886794014777715788209760725638246811836076801468752951623282620243355579753657624204782943860633505556355655581156675481354360873027188548852134048747946061536417675419729847563341039671275821970828575134841089773108401499957520031646003655251998522085920344601034134955173722728147585636592769935646523779769543132223960610242426119768375120404722657549050712675942671559060436277888627170923973695947560611527700502151942691886257075753129674688997906787725252801694253206629698450363167860807889957389877923328724811111096257075365973165882341022151238239398548803110301968162031826322655580012194336548277228114394074159686190047136739229907146447384192120875600902980123099443356765922424245516415789143252367854216201611568906715083478923349802371247292757430348682880240227798499550808585326922729600114085628184592377516480337500341049342408989125850215070125960299347686403839592377028594645541641392798391600625509295343585570406889972418439188703571449740638669423419959682703650255816583808674544429084233043784646158236810343179304229070507091102334082830823161926363898608635758545545454822990336194628205548460434575777749387469652369920719617526538458046024528365909307437570366776702568038257321232361006644568096459137388148744198894083677045317980066608034975615119418464211057476494114806237122823988786649050179562342678386139076292433841367148497744040159672733385520915915934818185693188884763616446956578061465008534672048430819951922082521872641771966882286949020222701120565443245866122211420758223017297624025569109740300699314153616141127072386616038851020252634273048672205724407773993098609440343000355664730336664507475541645663930613927071643786171843569078319720787168563529475292194098241694239184103960915363619108135574757314756507580047334428097169469138823398559391566009870764722650883864950747521813428582315720475748616417304675852272463159798109009374410784790238760929128004619167105851760839118317308249139626486948727514056932032580827602883041187071758450730762868706691724930960826000148460918554100427523222771628852247110548111529344621075459678907927866558240355334684324518626427139199835163083040971246337757538786867535284146373685511288754557877624414749354503143613119580888134856382995723194150630504515272219478238105137976539519470299499032533992318847953739134113018634662098022902418932501768503186048252577961209554570574129380330273470448271872996993206053934708910445091948545652990534210047907362029091210805536403640166993410657136736666081819844639461047694790647534859343738473195902451947655225792850206393190606126616963766168981189511595391068146861305550176453204001543282442536556746783922660684930838846303093274724133128895518240266727513471997521800194712327874925812262625178373977360802523264588812938711450948377100159257028500547361300942392630729951282631597315911138037389263953700094431024073370951148299164716836791297028693592281411696407829209891220405703881964753302989439046831466212564212140293876810359405081473496009004719191584530624381619939732809629053286865473334457322403227601349392353725991815354690616230915412568234239083291634973097428026132374417419878002514089975605416420963809747421741437502464319417676975292159848893612461138108307369238298918139523259097494647805037634397604908936862798316664044725534582158139135698866040710230980718439480755753895579631535415317775494360230986451544984983027380560328479796914445347145325726972621884123268303167512089442845732084067186134639591690037296431498407383753960985495552205264405999984853122511612650733589506410954595433879685836086381671765210822044298221318035601481513887465595697404757237740127765335055451300553665553127577037856575163813137829408309438383071451836851505483215721083908895987400347639465702640673273475334766865475055894588478277844188321918515515371302524071619433666761844891162493620683127483537011713275403432586001075400685928718928430304049713011502904676896805847064671988379137661425889914093206201817617980739102684095341115543281231104944996047810967966388774371762052345295776509494604782046761003146414469636758261060928502205151232041022933259238455089999018308928352332772549524622142924494971100566963545383917028454413580961952001573865060380239081034678248097579163431064800414694516680914813174803801890992883766009033993410804157973090713968733167883747084256996850074198465061772893655732720201480194828799367455591006287944962869033128776261737852157682407496706921304694715399544108626222862480696808529325165782308108593021879467701051447338588749130259119904635148312184970879973822569996901868993374052219925523056195172741493557594637335264333772092128004946164767736575235355019772200671463376741564354955400584417759237361826277788433706146429675703128811791603241990486304364855960681929428653670946738406660509262223771665218054183940342167493414120593286781221620267720165316163918542397460772943986998923295524920838865076361025261460011678446459287509234128848600763897624937396099646254193833643237954717679345427581169711053183741447534505706019789741787134833100462402729180765583565296211292595155439542378637768896968532662499721650614121454842570266769276452746485231465585279427620976158061103354884800100857393541935409083200142105378738735701501807510329523736528691628275550522521004604483708544759008731133519481690897032398971093087844967694934796902695403349307935875424374166137574026233120684758341345423890867076712216732484180049140071536582634574405114230537837479289607576171493452002808698799648668720568075355400070886844354999645886548434109781220210649963672502570426246915452065681868028922198461867562539248977237284237559811636435660960435014343762285149599645852171742123561758360761803968630520599355574620350176232987640491176953302025849426455730115968044989979675204605362162793515511673769181043589905561517197938997640302308670502923476039911360951172056031894519565460881174350435021504105883282220163498553932106619291409228881531414434027384492993083357781029344014991221061398864512628617120838553892960062013436885306835883365751162738687475848286141567372726130550790751522615534880041952802461107023051737778584383619107129321547551222898673271248087473792016934429546520391826516062298916976164480171738185289262770205677974813259091288320055947532539295234800079379564655212230411566613962468003791304558493439128257789927168432061674616799038405707636797755947972622522440990136338533426811098415063523134255809464388191385686575203635565919182938768611447999439752892783541721362154406140388525216401227334003729086799517643248642680760553673436189907541528299544000226905646257476674507818690616818219944338425931557552407584563685129848087539166942141834624617524611134392447717455694128544588516507933840272570179152376838087530910504798777739503328812483036646333260273113580893796066254808699149151594696532005956287245666312192835175953480190687422842903423638493346978882157057543208466758723841982677368760641849558292933516101492949096472920377664075770973174303856103935495187810225462102765324557408497695644848909338663609138838845670890392431309760090248017814530659385850385863254137685091004635021808667252160353544260423266273481158218774871130962720985722743763043623460846570971968027226018930099476471061471456007020145767589356004815813468677172562004004316081040201639633483269713056096671960477459199505593660383680574274669799369981840575779640178170612841797016955146450230513694346263398593791577422869602516045003545904395644524408905576712376268029841995618661019254822029102851486598035282264857801179765356894533611799525382122760203437693381579732592465154734899176827046990454756855517087130647166647805529091950472984347097089184462511321952414149988636641696060556026299574126543140299430874383000037645493692281125417973775409609301656450426732070536362144832737984652167068184336470582175132491875199204371551545146595551908125298190431207661979103304184552698906031678810352397245466383509104722449393332113069854261467407288172741843220705902572669910244939391880033594832096629668844390897515415992573681678863407109402955567755546362081350201858028157875231659710242055623533003719650909772885188685550784620845029828883608645555214707203445215175637044773638338104283665781123504645293932432597428411612826703302753987564024248115182975381441080165548045619261103964724675228283191537434707026710173832640742145173078935545531394324980790601642900305586531011472521378680775546982479994799534516393567023436303932275299650161206932190795552476095675524964070893966719873963260566144507460109866768515793247239417322852122732474205106811984847653817831761283770196032621570424767280504364910426664605061191378201155086527457524241828899818859604885585247966899934650606513240211618478636215319875897136348333923252775719651046564731062213078824944967772246516017370351195529675576056045706734847154497377910016659433981421803082081133230566266929645551898408881889703911417044746084910301725060432281842653900986855181957033006811461946048423806788701698072570035691557844909070250237014435016214277978583750828489184392592849766598364712936169003627989465611627768421460562473981602066794651391595812254938806584285775456663975542094632959283333458444322771855858341360687838697772423808215551308618158369678438008043978088668357818062844067958255993693610756942482860243110057741408232581795591660373174407887404124097309384705385083221704767878576828255289313022570511003628427696658858633149623203165338378740674544188047085911479076571857346695050698171165280393916473704233453529644248018816666020176824436426215523300927680976454264640596624788669822812537072957742177838245758854449380113487528198860203142067566778634291046405878119115602428395590944297572761384110424035812755907373812519513626015068847938027021515956857484134075758868005052615324996388644835076986574487955736797397299549599258670846664296477815139666524364709497607814255491082092319607004735876547461441910372642476965880050408762290993525893125658072583662394379591680822361760543404346883706850066452444231747173929222432072604194419027292113904434992698685906311116618484489128479181904925385485363197851484799741833975968085303976825949437491971217069725353400855853741059626875359833544947720643157954578250682160467340249179117539201157188874027736699091241052495542781425322504660194254095470502072869992670751865229021683445725678228777916934303835049663507574372601352454061059943558005452106316875037483795049642780594782413402036964075528479394065467264844506353824215663988854965128157104659344738307545191998847028923366224735879352502329633369371085759159689628206583808794333235632845904823031670107288083727069073560313113146568544129308942450154006503210071638908565394733494472048292563776876740346141453310726706826058556926253708383104423386540550242642607079051059268497465417514920566820785480513990888674101424258471694106115090084966283589059672751442706725285688614529266550924394420412958550296611604197584845941768098255813445886412213375420676743317714141699145640074457143405747362569603487380249267162647373052112749258286185043450314533445473306061996735987687068191640974581246883319883197409946814713868564143882449286357086785893843578999760854322821753966887982922667880730608769473636577122526824475071737529084208293789816543846002604177459145606855818146449048131061904945898142930927284958794166958983319785418056526426461978379695089857941177687999420965497015509687128100670095094210383517971518087429464596562510184897202762330103737702427386258960346665807861483565150147394064105094834370557635317770194766138866742915049953972352386408450507994683376555331788591958790211713174849950573544361706520427175610844643709679375300517769459011431563335067592992661022327733238195214544538976096354673192485856748244101141917329235831424968779475589064540968027104008448044296694611916014204026161129525587884779836670243142617324189460390296284416819197072333611806032521535292004037797361217343406443613031851000242224875187405178809961840643995496178122793666404003763636969934767159808152555825686601902422821952438465057278483019939371786462235108756982292322419465322873963408504051890684261747088689453261933205288170792091825809921788181395134598300198177530815861899613691108648023072753189139657410762566183364152372373882325601294158018083926121151493204939133665467373137059223877721250963489827787710656951012294911038625815692807029589569419882037551334307885019890953065486916067970435610532332049043115529186553735043665173191239017964083284997901674528461549363132416562384952753667145968774275789746894054526628132137158183678067247153986837631027397898516409811488948255575259497359038518620200924124134816224700118088590806808804855987509351588350989091931192601560815663802871844816431142083193340934893069875714676015620584346778277858794396241856666818110547268644058909006564950136477704384163363744782409626255949044237106214747131632619681769743318627532549262825076195170026889256241143202419356738777409353153688298263939478357171135177635407299167945564801244995955487119934704993384128031645927905689650799683751183078398609037072160022579912671171391316782034640923502262735782509452195304517430944139308571428674147755709102367914370336752167332859005167182450500253818105226470492158215070143361245893555225042709577251341583897185842083597188914927813938506230796107579311370220435786661528865178546147729749417886347465126226702979211959768842685797319923104520696687095247019968657425340797857162655372023960023214674448405296227700144013394351651292181903073573514295683138151412025015953662655505078978152947309835002769493014989738437319920964489296749388589061103082664195457504336946717036115420219630025223460728347528704938341282564375552481453888822278711482237621662214679351941194540065171522317046564291223227755424317618987053859946494567118471156494237706261580523043303701675225406156157317618164808189569459210333867427399952581349627047405963005334534762359999264266909392263847550677782211062032365537545368912644671874103051715392370748674789896032087754543041931176759461742450425282832206926592013378934485043593307019462740556335256123443516129450241267294379564976819077498526035056344646655238964899042178317393508679507757482735740755932218849803490765164710938278256309186450399067198782579212732418616517413509515909277922674562339830093280976152875508912320814906843862012011751542645513147954585953220353051025524841811451219671114509142243443208014107117734982203008939340828466727708939201925592906076295515878050251558762793807367181919587981836724707416545925235971869477871145601767921574969920859197894849532360530617623485836990714571961976046427759836491242069751325471547432919210347304642343038093988380397182149890131750154523559564356700933635901326553249162021453367597556718925721149265537249367342956185383180205506612860920729616696893390266999836805399133159754723768209954366554850090081645244741101625193557721784299674467666420527245837942790007795799810316310524202266482822945401794729577321991746414142921083158114814583707389545229476308556004788576438421591495122131266540136900613205991555825985148747407155610543138838656070681959246400219173280230393913590344141842704684143532021868932768583626177775678903255066545587524446038844105068396148174969336332108031291904601088450568933595772154109926162690706373414712242205897142907795265923068241235656607523458157431808271934658371184037928398123564552031632559222223410538149947199620872732223927780154711550033986651150172889505629505985264232374512503815251290714831227953733833312596534754087877005958178364226963562609061168538902506162328857102548492440465042739425989583031771061077284034279732003357272714013414330371178368548207700930726585138859643575503796885604589307958223260930958500196850456732851458672847862550425784036962188565619615123615187019772910807204583326880165888724505828794410317078161365213503495372196324372727311652518947610123782286446490700249332315803202861457580519042642248090436771308426849731446522379040145366738896523887727754496046872354112595449891940151823089114503938306069536846054470423353068405412002766241407589925913585447775830849180904074862122504538669661979225037648037933255297535394835201665924254559437003430015918349442532280809971790201294419179559313192269918544142720012293879666946808147919457819648464411240505830910627262769802114412557872644182128660193475703515794285459034417213040567791135848853418519518619774623935288936303831617767647955904896146224301396221117212232717665465968125483872542770722415992694755975364158299860742983311808225449742896848929062060818853148543049762242376146985197399018104748768087665446273930290964544262124377133552627539493535937856290920372495396303515867084392845880565602634640888316211742107966858040374102025366442944315679207507812771725488358679718629093989409686175785386262521582852519162754841729522525091146632382152837724034788889154253591980234130754667456146333143035955860916611639072066986256714405115168700134431910971241735682545731368893042717007738899247457273294958159838726415945168291719815277285354279296153172024980595530249807334770882300187922962806622789093210850815908232861347084488510151489178228320415535781144387632570718581523378844172776151585123456753988149484325731171362028339951214375444264621294978125018519125602523773602477794137080318879714886878183787019377893575273968590485069396319892670438849881998994993594657260469796288457045446561681520917141565824044144688126508661845578225846176972707468694161661886778485048334159581622076580676795426535807252486979265539936988719902802711747370448579196750137547335992851005124983542011322171497534871856301651349598818451389359351062022280156823680770931469233243095516856043488712666208184294302855785343005936957588607389336229047002014366870895009722658330970487553190523261240552211461187321995405839329632154884837129952098848629094379736641930300022754605296305281704095352967795492420849044101183616664609980994163578135655926445412760781634060518358005871820317331640038816131877530510068555429969423962486756957195057394964728406898419393857018102559886595963741884552500836602998613682767273352656319659968050645285393805423621698371848417658919274150733096825399243717905371868792554177637254564084456158171129867394792269813620901987061417913997237286423117688500194252959667509870297329014831852554314897042467720531186537361482018242686924729922620975773626292490968458034091657170081102887934372369405219027762337611757817516672007358026174199952560569768725579925718331687966862948529727470229643702363525397438639964382552076672353488261952777504957678400251501222162004260171098708146955023680148154461276350207964208264897395069004741485959901622796659231540916532551419218994429032526606057880743977439697934954838466258633519009686508908689038231154717498121926313897406059134843133806742951950875287057794539496257597267506432257828230030808601634655418068715438920850245000461287351210152889496849333429893107650453196668214666370527188710704046092275018068239684045560399658306358711187388219072304970153194849152702571367321104942880598683215815089908865242955649867284755249939945192468967497078191721249187574451866073152730557057363169015178827505447785288526493444050208035628367609887773991991253586567388378220175924995829621678709711687064191342409199597794981834385088087026672041654191200972738793692852061771485155476518929116480830202778625402450114943333688738335069131001020289023742987336507360708239504549605274665351277190455436797107934977585840582438469687573664413816513731339486524859845902557070793035805334066015779818389580806085371993947328718610416166273118478175154583849709086372115170053843748965277558908815180063460549348604922876949473024197223536125093665618577899435709219402453818795889623126487577627599964519066400099540880177347039007206647306860137679702834883971296189534954198033243245221314610604077171463911711647975437655357975201471096404419236164260392918599925038537479059176383422638681251196967333024104348960307259631383041982452964143773344073635374196523993458318096695668038676005713179387986520531104411019755428224986748682163008804827431560934930618766694538523619959999177327445846610079295340076787647496832127284466824435485856355617075656311959385602159000198858671703339505106746362180461853671968001250426281438652335772054631997618531820619638589243378996443605795527792503669882235847352095376170215575177858133780645506080310336253866645856043350717439398727177717275948677178331865927016972201240861330502260624400816036412273398871497104031032583494819763726296827224066023499656650727876049891489724883228584950498609830854016715981941257063133911949572061652345332345236527009698956600037036368804317437359239393436160990733631253667434595007466490507132214442680989008051459722958138252253046762902311732325985029849569443324094121490912665207366505449203476871449784021422480611421391291520544890794537337897536930361077854718635278308853994715686989587303525017948793435456832284763155704377788413783655459106165143530448347457144007498764331733825819941305487159137985043958516688409262286935781949155407817714557362029726503841144081308030958125677548792735151878201187090455754776173351157139560685460188405307597243496954635196715287162605799655440588120521215309791241495610673525490257770433040987485378353742129013355169706173783107218597042721975045894286691198473119947174496643022684365765050511188171487665041972342614362847954618477346496054478126171285474742506023839849557361776346280731325725341474944309307429361687795766792824011903105279050014751773142868705218386728804046859913444446091783117859945577488343098238776016815254790759856017111948595926727601285805887430443087894464978501810910237063568522764576757873590430756329157119302173867942902040920033828403909135701585631552016651266405995437060755424816884797713891581122230243345574300330307913311619811499035004804709091744557814022167786895828916465227760191143747392179564948593977366878098585080253295931243602224097550389003172849715014837395779806514742045936255866436850787149302801832649672328088630873586955955697417367632220322356909510112158469480710804584753740395597707015732873556692323279074635619345842431188170715328075023375697061880363407559728693864244396971675988436877860727129271076201922575536190833677271329539056618178651096183402122236580405553205933215156401283925492724178619038162390353105815305423058661132366899941469210465510143566377521762764928481310440497000659080988481336341493987620557611045496435669076732956771553039651259014742187541128200315432787965746316533975679632855905541117061509587708911591463944686478821313036411367800097700106439127134174926511247898948319123012928935564425811011475885227115704057637873354076259823125802284405188978528211704734038606736444300193823603044047803757085382094272524861939538448193530918832952939106441269563349268712647995131644197548053411172854412206138470125482547266827066506229298786565308957979898270304080431028014596873044405272867162041897771066076077984792636878156509611436662077305878733015770416136263692039085482291089837761536220171706296684423060877114889035940899947584524977387887627639834202609860653597496223730299855350328715926713324065201542823250478778580951656192711216968151763444656538920781930307653211922506713654697233922760804268092340567156778637197878686163015067256064187744127041591522091167429874078985954119306840543618806128403288117811101500739320358096957759559811060577160334229075760897672645416635768118195828212059364695981062433482396139487258158573922730679445750973619504408310414623117091007272214777798014575305756022947948854270345563383418269018413742147289569433752169692201106578220044879128001562468214934277545991861070543264677559222619218248955177932017989996648897634830994201731356224110901073910626405545569559717925395550868839682910678101760529939836711303500346718161654873984826088758068428923612330853928495198058240865876633152715788397116638590625914640301305942319452439905161674273506600258968952512686089683551735327679683400245752385825037701933663365406811664744428530573228255317808300304557266425928029091569774366911587630385906267110531013574154544199218520293181187567716778109011412764239962122458447171477866811515922048837670994396184733406386206690931819861926691058534365956796474015851224880131645712733653330516767824446585046673343793996677878435591706009549691449642011127874905252071120058576908365575817233275536390789588696890627538375087850409366512346003144347693515004817069488371673462588306622960079189053943301829707436873200123129170843972191548923823700341909012768767862275516948410666951730366493429036790117656879969784323980390584794686163765651720732565909708314349834757496415281587595744624652952199180739382681579829331095524749465029712122173963079971867698019395092143088426421781972684298492139885647895355826706791261965906043270320834615554273112930883299161813003660976060521975860252280860747777617307779717494175038771061951553351286419340376054232074906371242124056931940228600842802844023650050741091510352593204802926325372499774890206026859281153748646266627661284177905880848931403432195841162129255097049236319245581136428549715398845281601288701244826320592554909919749435901423561362733098745227998740651618915364693719674341719255625458724344153723320040649751958512420956693885123521700349888116199893798468251597657329667720431511489691613587132742772082155078774213989632267677679383752479396780423434125263128536986116264142672763932039421195147861327300831821113377232225271891951478172390803362860064682643829401420787267718346214101048033425195126065824448467750881807901376805825455001714089685810468850968228586698488641384251289624666948355313041316080517555698162429714996364899997362153957142813158086967773464798983145809887534410413659868646833927406545051370102415012357157796739044767888371773308641899812444238696463049626193741481877263635098609126249359895795037145737866607743395538288360955039377487733012962272070679047526324952139397463536305443537853610568575952589012571797804133621427783918123443099392339509648402920068701471030094209637137828766706808756912632242545344782979426191243095612095168323663377754276827109727869653805720791482729996720017375130638241763419881145053809894010001288796046737614118475922913724685718467672478054524282684781643380992160418873021277279417167911645886685137111119508082680842525693212439123393538856988238048739828724987005745969952309285708481462738998928707263481680398398350251108812345420275305849116671270017836919634551429590089981800779985219718639775086332143680782931219928150232729053754922549660709838075450294085168917839273042120485962322611470929316061297602838045237832221875181465463131089425230322748232084788891449040111783029486237510106828002407536868469870119910433033819043408048652699564362333753443642723556126101576719909993402785057777117676144136739097425873889877187664540940344213892742190950369175390790239885784877156597802755918153186034730038286600631103410559575842629519106804684486433903998292229964342862179425406870631648784785491425121914960782806756131320241761063884526551573704186774079900801422477031678482876838244584864447250150476963147738144305624196037419397044903629528472612488254241131333647575370798766917028776377720190836574946353637580962284400299126396979609464406779820730542134650466718810667700543179039906987032848081889932976034516333821250932188690761822556039514689480826903113608672552296503988034276478684624115281978904175154923158657810474325148813050935176461576775734134366349613805216008964292238822117404568438622266043947191912715626906766605035030585436229329648827079650435161856954589491845993872698310222205067965909786619870928918576739191583203163070058645226910206270483449464862686297668578014548303563001616939803135944897309449958455836241765027595385295372674280952454388301912539926190682766334177495401825568048885476488260419789927831927385614786802973298868352789721507633415787038537419593994348180259130129527442535715581908128174487842934889483306260612005258411397564656578208135866210666764981693192643440573278274306684423536405899338865871480807489093499272532218311541267006593250932707474362927965052729188746915573395960102509797008759014556791734183453962071631781471612343821070722110330333827630246388454229959278927128247338210612937901149516526361098904690412551591801144512083951892771470835856576455133312233975799134375903875344118757321984125723558638923185633962104202072935012585157644919167224378698387890485705711674273887264588372251814565433235888757904848809744021609603940923370821337017042453488800713200246301034122925839627395294365193221635275340101250101328095579020334570860095391506354973435294669532197139689980470822805241377165680916892848510325485194356268050063732905590879263049553463244096137276222690991678650597519296555230038845591987589730563721776088537361978641220747772616944609650024054512120551439515851094666992620187753005700158656103137649580434669338571952420022630156145496172599931496322879924166608969819144916934181928925991422658256956872113173982441235246247442575742673287155430358858786304797476637848303472560161315754342853534312289508231853989595815182072657867019750214481830851270085002579570977715791596562806974839639092039986033430650042084444714051153551235073473742979919017437026154273804155224340297217498589459339541562615413614336724741779353398234987920359328054766976852994237860376023962648525823891006152447379074531690678353742485493278547653242228940072397099086034872178871824071697770599417115077658734652182936564622377163983658437631359055942002520997322342918131826245015246275070850068382920032363492977827177030896551941627364711150294927229589157901874955441776226810308743124940827028702819805949029400666316787385010094582145202987120825750162248623919868748869605961274546372598456536072929594095544777426323187201680720012558129793046521626928055381555236121272187225117515874387014174391572699146337435356694876200713869919424764417945725279084865722789684830016359997449862839506078638759075110782446112140725957985263581692656204015280546595389571731782861653956129053944278265500817568039674076647849395186153616745821638118035253729735173107628636693813989003027167855017399652553725041111177275838779748248114143833430708556394022598278868524110438942633559565629783984244534512961897191103509294427983732009658984323978285701921561487280422267091145033727311276874164752631661706911526042722985110798782576180319016381572260473801637540112518155212345903166107287731281431655061538655412533880835394483081551278189263273582589838589910141332049280261038015579576558624863939583601886903383307782704163141663616282669469202935213036857449572784479429961516329021477806500166355427487979236624908292648917264260860905908034945811488911668941250812737854605848567964149450177909814190910928407239220224020269575058716202605290623738452342207366371623081822564477357384063663783997015301474163060606737378564905279421645296467866857529301339363028508820310411540147388447545039697299947422344489058255058545915971896073251809679088209475696112643553477117597514135472365279188259351150020551727073191647304618574810240693202166003590762419967112291049224186669107219016694715443497296860686869211725041077866591972712042478755166375703537882027201450928516980870899344207855039404294405513917910040905354287703578085548464963544761949888566250897560211016800058658479116367169681725656223972909987769697173309283846096247612701209361952093298801394046295816376492295283252854695515695232129576779589894826186360844237443210648683171063956069294656022604205105712901847275043292759270679685025969868911597520164423260246275063299161286628488989771889886351235982230797907772524971310035377378414481180888588426421145321420845852551396716743462335759970287765190562101097288975205398013303595912687553524770744264767156007956717080676362527802655034167988578011850196914775461836617008633485803061789661105192333150077627541718966893959808732129121611711566626196248096026776041659956553727793589660543852380989543701924714555263401065433338993275333441453712766089215856226626010411192175860400033122186753214574742917927357001265040675952126652709591179576315468733674734222260409375663578908105632174909829574085740306756392311469587817377647996332892111844456637846772818931463799498801508360804836238704916898925600520787680921728946484188696920657301203827468136991329332320531134002636018318737279148935314452625992966375067234165641361712759058450713255653430398545707145253973052923505078857120245945410911562576014816730366449384054847118397517732204083661565783313634400871910463226681855088161893145244346109259784374607007614033433501519935326130091921341041057013171707347685559420993463950105437261607892043656166145015104092804255801639606964506212193379572931778514530314890470763262409407099938085517671505339714816240332546306530258129201895258520104055482019103727164964982238742914856545707019586320999179329471052350261580437417041457627168588579510768516977984816129752481416970887788169345969864103397876625588540463571829357106513679355921063888195809482539319415001293725482164287375476791992625450318846969546375853124646072836799884525933529634006644904758956493627606562895423949149261338782165124783852155634230061576631628982031708001481654035841751679809894499282229545995659479620320459080780359915904207142007662794870037557150821606934670626253154564354599720586098419563870670694957007254610463965556337252289577133768992501585286105469020890033096306591590554923792629142341072901885553318664969641473648474638188818170969691325991320588285962918569531504310404623793953511716904758031533565666806754690820827058384683735757049383987066434752681681865704037943893436677888521671034583693686346137390407164488535366241556215356814775647776901272942358979129027376079774239400214839270570995709943381973169174990479014126893476958571595040088255614584091504997225193136383918067500377130260202499521355809380915748122065418008591126002738333191596250824924040620248838573313671706509405742786518195032003768543357333800702618042479371350934359850883080249289238346004119409097327121206932495965249744772627960110202605841402306116049870300876364680288758281791669452352948655984450854151106691062820283998136544167955944053527910509830586672307518834218429194561703048235760424370290215418365897468629327722892568929528762735103511469279599341658551796015940265590003103384286246323820266039920990973490355075082612756612391578101684843434789896389888978365337709745664607723289032656517436278570250036845142292720799388583567109203591329606432917666375075825735249246093177679231261618085044874282303230629329155819250266807706216329064069277830395674457220888569474684808225266731592296728660985955514497680118474594934186803644649386284956618216889785937735926364803728797325644285209333620056688910607914989957327357791766928650343125528632322860006020894711418687990089747625144886855001971839626882123970905116553286113963587700507195285582007499949792905473876380036045339040750581171815562290639141375562366362893394523137200530729485956037548777215918911776891392472185273975728057822662823462876668376569839592234147522728794755809807186867092587368756334708554637646135631073628783726980117188349025045051600221190788058610040231565099472871986797640041246055224993197140899590503405757765221706916261748786554412403063908648474782266786615959617275794401792019474828003425055426063237010463809422874893290107443986341686344329973238925950168185870114073181436051013229848284460744806686891830896533358898589174850543118123389897227447877663769284334669680637495838252780797099973848480542349941632882740555392247995568382578381862569771450775755657549476767416145232123947127359849788102124823922436699947368797690781244335822993576622016849349207604586517756937871039372295433460268232244898783850799114756603715297714932127582319794756128873011343453775327537164395538414584448003806465100340459146368667424449486780038013112722276071110890203657382388636412151958769140577099465400777787540239656428949939369533786015989120963275113353029879850555858071485401589586212198414498208002547598091478872039147409244878766844128771277257997825349652554824794890776893916973256468876249171738273218328572551938236572967588524329361107251311159433257660094864964230907751242898633597549324462772986113247692272922939398417600673317659464167504371606071907296251243689167103811367032891698517450678167317005712372921725479826515902045422869974059210733524742880968380133046897226951255073482932581845713695905725839200803489096645593583191964220989751283446979940596933975193014209605149193107454009475206133867131232730754999414101803373010726831037118468055338785190326554477089739455957444770477956931189435267079113463634217688225695273626656732146731216416250952299382584301894855807553750572488340015198246978032410750040301258032311307444072729013939253787695365422456275978146536609187316477900774622168635383336179356716817489335045985713289490502677413854970972818302805724734839711232279915642827887777685043075859216066262769194213853514726374515195332873376508306409971701448773299646937400542125633408126778309946653263772463257868576958232250143396408595019703098670157609115361102249290184606840327624622949666679739905774883066408702187367069406454980716680475680584971780821296333785039154250046197718027700815272257779922912337969654760623959157664656788099463553165368790514213256767207020011578644241701446600830395218890303395209336196795866533109324606893081083742670390893444597540417487970970475114463841156679052772252738034650539672809059077202151907562422795059813625241886027911007730902448453319853954996670764086131040722136611886096736645783187072831836474298049886344451521503606177533377293447451856806068389207854836621690250154613565619207352636750118283049806240028479428565433062315080694793018700622744584666654775859043890102493782939769530057397614596278088749468241190883594253712855860725271474113475679934400436783065672289838460478250033444201087779363134459289470414988668247969121841131397249322506030135266831116229598619500694131583444737598764546173719313479683064652308538213090976560161947407077947511381738926522323977752759246010372418528193559251657317341960617092514209792237264820517169814723388928690639009935430911796025783689224969964388539076655968516478920205757455603536711807085249060307098340467158553947588656397220818284921224937120012094498114360766618471019545485887983892886469531827713996533442975156322097599091745680959880728401137491885689274192166549917636165471679712388737978615931646648687706673192652841715044726812868802737756557497868781108641001878080844973315472323972651821444273779880350778170595688803646791119526839471159047391705105196660486182257532203303466370993196249633807665468898959298551258442273975000626542966603925465514484797715101126982401250699489461786617805566483943506085051274604254303443239365870438887731458707133915384390600700129781452615364964592088798190005792074766730123830923976321615829626468047256965769694386090799533808515973869528463159149702383084314703928525537796942499129215215895646840795845401156949892507739109661856586186945991630715228061088402372388504541700494411560443400046097042403421910147520082230018722532560219309138580101176586054227151444229704168954333428725487806197763579786797113972537413250960821906240498911766714296885895054833498823726204712858540784136235034861978515093868528727282701971003875004077295719117875079819939037784903006126093480956756651597166251000932708976768245012602116269820629421533255254176453522325144106450388525302182842600791141028259194092368955289779187075048404877183994228252371567469262792847452182923152695223853519788530038328500082145064403268941672006014129019574950819006015064999117710232915046808388798226811309769326215660473109137318211221632327864114546387390985309506497518978525232848621681700988647266869785845605997082024911178941378684965900215554894039085060788074001952268456923535059783145880664705220084005625109035788780440655742299517386475417051025438081107432388621120289722904487969489162679685758537669551565655920641005932330407790666077005387627338006379573062024101084746264300815808481690367928721005411506644161546397443835115334418356072272159593498258375033386122062830176750610402149125249114518450869110627098321972739893450203177083785489618124074710063843603802566587410332852505220710147735499981394969417947509730738118797519192154493877428914127917565976290700526400363755808754514777352340006323972388595690901083653845036738371265649528202988566516429207309528536769457458672368176186222621134147512235553185021262074770959566813824290988853332289319984996244641799602670633238219233823751193485316011649879888096036255965581150671747053390835147102255000081065961100407030349595028419924935707100079190822862304276694598173588060298914578541827899554308662728788203044146843636599831634163928263188018380588775377314794945771905449515068946723039945417109104447498997873185502192555795343207095685125296451276191693632088405315240753444995109861132772985373558984650339580397776677972070225477721281002764916957068613080390053064416133366905989946151561608273832933868171413852556836167103434710040204473922463941030162542095883906842239326601620674854743610561658837630120605905681031369967521008644777859351245070171063939035715742678311483349854824933507041612562688317865152699559073818102639089219768760929951880536414212682298970422338682631245447310256773865716623828302968179457396762489682915358407176217745526445856002011710009999177248515151520490130504990580840027120226236043113525591544757549240503314186803157447370000809681492920784169672743476915288931188592944910657464894999549017639771683336912796173400839869920024957236900575243786366177104366122925794209877767035826022791059716893758797714637506237249534067737203154186706152656386524092289843690575645078964155655633018116061358792928024481514966823308495872372998678844154405750905637780841696044320708999200004320784283968134916083421249969680616992085104939912561167039891943955230657231894838232148158948322775409482227755474627826020235335931690156874984627262403788335594532685467292465585040780349625501742348029714932686675279192349895775508526454509809130632034472235169956088435139412385862995391152629020036203273869391421599498022179202149635395510445437719724568731910578317401023724252031123246535008260636465230919961170519083317976575246785716387926005746276015982756766471054807590807406249187239355410352037964253777279779154660327478204338386372176744591680639740534027749492136764086928525306635842739164802564371941793564767703310721559670905115808921774474435277503253915422807350481722588951356440688426211115214623063503409201295476116502722028446079939335771456084018600258694999138125152994032395151086389621642387173333041185502774376090766883226122070610294496314415178466092912586509476419206376521024321651938367272262194602822590766974594267492594444655939033605986783355158033061954494705935695342309001710030534224875481515682883705918216066006053074968315798186260416333142345996701860163383297492218759619373558738600709972391468753293952763551549385880425377949905744851525618760790218464958655285548693331922436882789384141073081996052918774961225576899842521125072501387341784203511742612177935778336341900521988186988536024450358907470506275337779902220735007800840820043390599654314923212944979193789868649894662608986693052200644912215508598736884737341353729294676769517937985879483769279910758524252384304290232095001209456858938362479427981321265054560000426092557936838158530015139384147294240169853249763957433185858178383776932273256367188890638051694061369192589332406783838126526396685560902457964426454957998747578159630263814206516723242715756086260805634487775228225812396614793986055052299337753642561737628644944580161853254771093818873861284607716655232068817088711318413017665458864297188971506717261057123837335088984907851667314050871763393347394114879216523254514798668121940049507014328015985404970367301760709328971384345478135432428675154626096507692007170584834801204464274543530368452395938934742197869538301148429467233408316500454615492722202352647752704511608753616932241714455389456406516652943985685838970527691987188664857495743995091240280708346255377785081510679163790189552656536669267949187962949005010366239560049989798135436749626061934475966489894518192560884046693519622456350810652800646100813707656370089536735585068300679593669562963805298075395714276871775870755666810240629981220920036740594256157975055228798204402522762981344473537825697343387243383343421972869505406072209308427907037832481579429466509810292784622018164730043694536865932120672576663208569258413790766246542906207354080183038263165779878375284997772727355142662757345452892402110215158772205147762322662405843735418410100271490740691421690475087936589082162577248773488961470936366376892930344335211790575157591082053886208575019211089412126924446388418953332118930392087980105826121262712511469561019759267456497732888550783225886280537590372407551660905650267820826280093730378509343705786397575898719814043680827347287532367854718397758445543811841493373574386298082042367997616413249770960502024946925781702594127261382122584242598295021306396070372849833487506091592000582748673082572909078355195122580388889809019978861088073499109105940649661082302774293843495620011377588198417608899398747898921762524733573145282138874919006652647090898079767878249280574819427707318429954031695609331465571721817666287824812501727223509822635876744166274023759439399114261233743109404577250554893957166516737329948395288068806507751753793880383855274535181328999054997296871810385177615767397210641390583080818682446224812199448273933354794411001193085459194658937267358489744866474999815344866352127520675160810195994027497816896193605756622296930002771891363101553843430179871195599111255315799813991518651833176533870531479550870386817051270347291031571537937397738575956977439072475548696641013680283789109763618849313399311915628200319394179959493690605180147411744388396387571634667548554073015584937253090499076357281845705096710054772390938793616476295251153204192694297405711042041243062756485970603429153723549055714150504989426807884387452783727345327832490637582402494687778075215398827791143264368688303530041057139407852487375061726378935157031146747130169705869679308710551786661455215967408350445596934627388810207970171709042149190922761104706493810030020735642939635413000176441524317354027390829666822978425536823646523145142969030291594348644092675065622822569287297543144415659409584102130383370881394400437362937731774294992764107670798106730465931749322933591001070555328035858431007591329828630071997956201860519794026191549987972705703209241086986696941869992384114195475893053936497355303995022628142557907223601747226820769025542677545843406831543712766787801742986606231848686127440592201358624936597896800686042301209661382666432462555551230585142183321232032631129687347364581103785588218313843236329585478453936994164522557689640797706388484110610096625555664748412125423999660938558089909727042327723376260922453792665005286196723095760175751462765015056596195355459888037813195518048635837312419449266567299053095486926491547711951847929156712701195851365359521703545753086412532356085397211954631161966313060795263200390217266453930548412644015930470592194309113786057334512175068036053275458861402480601406285941517648115178125010394820558018550708329249922894864380625813976606047097951601574309639836013669283919785992948401695743824906310716470524840790971571353574649020094609834701591118978480840904762530007439338753142313944017961816444117382279323896699729943534331447525384112343752148782376348808028517716906443832536789291709805492339206956891234446009689898724617416933634237736527144242182135621040144266287125700323352892056155094964844944799613027514303662763694684584288966072860738677456537315485998532714086849831209733630617843490391772379829745094115438667940442787370838475944642373339431926264644526035190820338466875211911081784467170265148147780919452357588358742705370929024062632403263415470502298776168165293719857050968168541695845723030306483442479382640509565058341632413182560587347342712897592230340991082561880265013800898723803115698061947226607759107885136611521031852088094989452889289108980675845948584638581049702847105173138636855403757137552311447963011768259292302603805237162264471997629307663659024354162686669747855142847338568168545151262074494566816292687560762819904520000358911887551476264359692592924629452804682337593950843234347945570329585301736147556332580558405731810967882086280189029805772772845418355686715779720272438400206050159964075919938092631385140825440890999542203055275935613092462163183450551400269955592052985177228390673380370546291030969985806247098425795829833445160555991698915504260636059408809500480848726617783483146177587868871636193156461525483623624508042563335972369201580679780781489175760626601891317525062182733694757312940964227891925591861424527547103282335410151336430387790717732536910657056913624010604399273288958852245768395453560547263353770755140178010059831636189274918541242571202716722415325190413039234673638264227767752464796753195612917243164854935297570590638344826921451786816811787651225925916620260748078714647853194556233674326031860119754087955605582476106154240872090440260159099224791176744914128549989259852303360576011100665707303286787392924545566825146071008997369063550085145109596024390103349278347230326246097981914942337686650547485241855478232806192700899672436061019948205701741976552432373926403241491730429481880442673245192229155304269141221587083150410447014886969626303813243390967559163637564091165500680800762960737266064824722677054046761552969591940388095579656363687388844291565907400973378055140859508794292960327217413468610249416363808723220476391256804585873400670660274010578106011122244880685687525409357499519686211826615160822888564498950219272050827862361707110037611692847590778666312352874809795315742474001235712598666031949767144488487919631852679172368583228120008989973728614690006322246494056076948186519309303576605970192146841765142092829866292309888564700190285850444310752166942301125702860163722800045601914309801736308339426158212076885129843787253292178375655865861477425846794162143845050988229104404207929307233989101093517229725485693222439854175631545550683282170127879679460044199382706250776152633965222806473808079934115019686909888832508366887417760569822998538686402286729870563418028859248035252370226567949436548338415630367764977955351227842517989326535129093968386639029149966762120620047093566272745848628565135345502964897466011932902370913851492896437254770365607556863166590215189712006951744226342935729896806880060555369506396834556149492793299213032380485273974617499353266295241600357956059367338666354174883203913045829089653548808932891243060590886127415730933879680533925201267216803741939102144834080919491039990856382353870180372179450046612109694404709594335653525986334565912680976454370202656604022894645831448322303141416919161782173804828187252771821793083731593927490159781739722538797587229339768440699889999611499253771316482313850310609283077054827445421118953535806025076365369299157188412379653815138260804892604218153003377829184671711298537811884777930666624469151616453466419230273005951480189320266436917852868818478705637479160354336493754941276363277944055455251382054383598876055606532914099283639935718733818398682718752561631283213253755793228204733704926482789232469106235449021673864845328374979940597231271646891231305572382202749477430417245969449102816822067260245165278183681103259694430822455710619221388545292364354993204752810655109155672485388426232256328260540869408660604281100878788618532446451132891283256881801914606249999777034744205833981533745998627900253763491268326310935326951604216536412884813874709100820946673938695428615300024887976729038189598244490562378727436285242374810945137014266969579160616706174493534078822615723866288000145274665574824678585489259753912139609788567712506260923439023179626734929714382402122262422618372812749966885014740343425384075403633772543665181376627867854693936772454306875500556816370329938553202513052291141416516558235174363374080091080462567127195386337323446714297203513061809084369148344654091652212362610546802530242777469528772950673073021265754954246872255284888527119731080124492413044768170527442322222429040415355594550691237202245204277402626468694825866000418028468201845882718231996862882512714416530588064326916619050157245865269511514340087397809287469954836854371525806013376407849148842442445984382469446144536033911284993463947381673239572001841839518892238337806314886398282694829853541341419230451275882747998826183025503907156831815259808001836800771624552139138147782041292136014417592662765092631960854193907403982886860893238433259434202387533411016828038643090204775977633387910258114342066333987393842075120108961424290940179701758923392599850764436405339363637116134314296237927912651875270830615376025242853885455749866236438368908473351873403954800762627332822641796580831325615418909094035346001536073204690773609429407783451830135432095914012141778981190723845607108027008643214877563738403960983630170906184532975241879197697049183832234410651013141120444452520511634979003755655816912003958112516468254730553055237591356319053435878545917747976768264884465480685883809565118300589019999358788050083364187635423525319235354519145772713301869926339088956584192656473861701438381194220227019529194657389792725561850827541639650376438852701777173764799439512201384170705590547380391499540034964571166755446097176670413159057177261173298991601615884230990616937438049892082475290660591386686232465527055343766186062017942728873646442091935888881643732207615428715730326587583256134000438053866065080587155338652484274349753206894120816749726326410426313245530325053048223566050987909847311448807892655572460061813548402887982773652863245836403289856295561379526670484117998820303861920960519327469077626607220410228458530907100984981129119776605615317550642108283416835131559717629623803430604371291307742455118890285682769273814479222933573409141676903692224160995265064213794633833257171332694138561589954828458701812252357271202609385192533247114927083045642123889882499203552864725990332742248409769722690505106406203931931754271986441811350453208880349507749896162735550387700125117134329796527385441959672596781667557497896928478849851606696528199602878746239452199386343786830834621224052410108037891796867752114691191648025961379995354253493443623976157796306467293311762896440004325584497036591449796500702287623431575743931672935138303843367708695986632202586254811844105396982816922772265612802856069465011137140267834019249657230011759477600157840995392260047703937530846834556874176340415888918257485442405736235558468567204057894018417608591221221166145620454203561666048137957708841026629072267424142808006268941551117792064960206906202160471123341070543260508087966633340678452800273725140301549790020586550106927085146679707476278441176557465971743595244476394970963762369934811921259938437642746271240803498147678007960155278281721578535659008234344969931903936761684038056083768463950918341750551338113349277860942738289969542481233474220419692042016282974721660185925738820495927282013184847802453246555027747418683968204065745630938058933525254430874591560589493730357172900756196378620315625711964641236226484931424273532608626475845886768845041221084472484113213839807773713734376344616310728761829476857809477975381900087987723313000689432306724769581638448284620538346508781003321515110164303711654622638931787635811282213357108574414028556813708207529058474638034872811039787431283996768791268305670842108446886743207636358418413080818411613753333595550353806126782745228577277607349594990275592401736358219437328988340431353631729679851320899215087748101765233680730954173370532289087986322266258929598530590775411013323008644058648914399972501704498300631668306668537884590939924891893338590887124267664921125286025269449075419752874572985723310861254985717940494346352440658704199948660553759803836891607511247443657463908583095878004065706039099368411860209935196002258961160956061150239933848062297836122479033544251030093727522203368632331526687998792492540716185664852495399722526486415868693112774831197547113582575484360683083271292000739044064120822220168894857476992688921411205160849623918269964370050690382479638053179661200569971171707720145438230155066609173615091478131118906043154291573129492279886591648891181320688124768515974223614446473350659584562441788319159501882825613216828487458640284075553058384992301853608195894163361515404020863591358283161262359151655520497731090602037867634210824832040835665999119038632597866969316070400439848376433597827061480231768119453961464440470755276902162811953180081177380207624272028123073249726601047561096982065430517492633597577482317496738584038423435905518815576968572234442072160520879524129900495318209123382745534927022739760605538992460438724610216989803841183439067912228005639765422042762570574259568036966277961396407421953494681036463555345040775089556636439135639357631071021855819036358184147956455524154561969829596997198558067253658646205901084633584154766883066388196867347129234188345906113284685824758231855789328229694109979230935137607207772160487352013568025456149972597413481783520850982744546855545190387699780021350287419558631102151387392920944722007774378099784243039899002992666935995963421707344872319771128513432069895099553081803612070176217401191339952508599972860567176522208750464559919373544688624897153188842757483372321259443405824171103236444848060560720804165991129649138916195715756165248666685558470211305453969903939781926557756798333478623960740108859682889607678658620102302371830726887942278973780031679854733456491316064065381551505122790370812727058145528640173615915308370058422002548486986475753227259040929040896129140390108776413567369728019105357536601027679289115111256804893088649418854791547818257065367583185556165197723714526997185449528037230129387134112914636299946664760800350656398657876586600661339181143872839837322478182189072683280406914061136199741480327504968941827787461581089004535549225138954908425261550527786776628739918446263407848323021320356271069797206266955173113076505148222437372663641790369379959025029066153065287182652844280755000948081456740713171027950445297765192779170522909677712041015131730770419064034819935899892194666290557796814899792988554800932020128374731694485686941401469934426350684933134581564512443353229896523968249492604507193342637678296007055326083247890925914768802776828396499949344022138625039213193488645563982081721618017560775355876448993204016765894993734392891042929199286445637548233124425809765706810765487293261926993543710129763276084730381756084369441363840827497956024009884077491745300051877949150547588072816810953109779083268833545926167172535195662748969916046566315373080889698762859826387827146874998999768398855779834885559814648437814424519251634569232859707024325394752630049063062433094666874864133735987798598022265294287496863989620853441768442360307474689088849524152183652006132680106056738540070773888272865576163704802444450851474833681535516010334031344632739361030822878817992213614902034681917876614400401466169186471953291770677851769936890820118599292379442056743525758591120915962657383749412460874136638328207642359626416667391069261554403524384770741533357856084189995026120210709351218194163166448624255659119054585632620458347353346783525841072820582684120593800529039948637880346518924984244942134854568133882949946935926497006739613457661101332407223580498234167474009731405339219868375402019737148916798906193749063579573713097133876778433745502486059700900380652275292078258611411127652097133153389452208638066780804900831477336522347159326767129456678112712341849381201244292149017023139665853758880970908313557365043463903293219304454639447047932158847609593383449505851856326961932449444643647137835644812993258226351625162669569594791159699110289184297329643882731373057871507900949046630413202262146255380373591477231419143276860207466091191496656632448459160824217302058881346947285664620429734944202556412688318857692017198956907782751574353554267198084779849659500749874397837873489734853541464402309604941207019997821217811904349014747727924447648112000087397037455613473449554120236722509223095371660295953762792500364928502172326387130380673592725577076109317775808276518434836338597842250107814081113054759152450272236914839493965889061189024449350247911562585584414580209126175214922917914181502757379553202276448603199881599941764641728616094598295452151175195122817602103206165181198083536005092141720604776527776571952343728030079837145724775626951599008674663344204196627362730095516182843900881649047691527754316286707291808134316945268362622265417700210522246904005167586608713428970600810974904212642590352998439355639847478584233851956103498211759994377071232738049091839509009634003684436769704773144900838694300165026542639946211130500516065802827374719960332231881257983355897435279493553691257908297438366044152160353554246785299175295713304494088786435072858173537149930541805761525003980193008044268553959662877621066845620171551904203763483315899549333829327233619631991411357590443029792952282373042860719112945195487125474359502663517208571249907481674719554609600995938035772305530706808983333367202653088963179290577538650890144253338365783900515530879907793195356865802667838103190601300926097321514640391000803595776909790586926741659951213061657632464282629276672287358581742807723408504879850954590610180376540692154106688961823968794290029119391242457606693909913938859272289139741102531804486994373807514296252464261372903226909085032146335831394897418264612015788655603553780407071818372734039100585104868241494243526642390968896098336696882932760196188127212948898648167447711919916843958806393894726409593242376964630479546769119266881434553947593392883940317566503212100537732321144849576779837978326684775183411552775701514044302524029226046810079804026267097242144190573023876349125920591421982387240595608528067956026680108078320170624476705669911054754815926087393606391394242143562696865597346625550706525473510048885646876908157059742482103892967239752524917302204669188594635771716246440337560201460409651535791875695064399814411651119107357857798232584938394165334214743899774279254268723151668655080965664128677029758543552994347070078658080781865505377864208850507594051634126361470735504356805534545372548305685182522761013002689719334343650942555927215594619124322875441391653196244805591285668492907419294825945357347380297252152815114169897986497551953670227377699605933909414591393668359153276376760823709140494963924952077739020672855650355161003975271352406623601047894757067842534731645988604638710646667922595989318198689406534171127311986228678382309475214817048657247432437358392783116498151191113637159807934350511955656170922040542679388017094789851520720066361697425501767431474624366244906919353441170554519914472926090113951660964871828743388384799491452389589556455875712506694475708910097985149612265967281679019691987094198543179133408108975874455688885950347611973463412631270111397125966978155319833511527482528623531163659332744015634534886146596627433789169365378946480346345242024536952047037831924868610627887388180649689214699929920918859768643499508702670324926138665671979076853128609897695708390311746977370573187210194082729056596988712994082520136109359985611399304434564536814857597252386745072176938242636526600282452230430970164122776721035014186939916925825914821101389401498559441486846304075610243501860917273491380605408120145089639999184639086490352886870474709496783413753480571334350656837950200974101967094013885099618488730066265921628181316561073634933245488600542458090228860565209970109091416038107981432714799059235805237456939390695487435397857752840436783123426838399999869678169111295209669854075488999559365857257543029823209743200142378203167714449771485438778833025172934333037485037146384252287872247724006695518602929520219296736555891381030095249456670560703362674807294875504215130543242672207267272565740511221920575795851671451689513283725140581113246087809065236145356222672282644106763185126788777180232473679413557092448721379334329367988848400484825410337669883824594379213768775381001495576849144220371604942307572343284686477538821051520244004721305103197532771496850014427864149316575472444609322823238511718126397170657638783651934866844404818166907801546164084940189152971404480206388779473189817803545763464303104153220242128641761860645316570375584042815330067435202083482484095671492270698076624257090071799672699717475073479552411323379411949627412711996221110056428455295968833425460456857966587468176158401271965432417868769421256215406780933545537602025743597662771402308139786702419355958374788645791166325819237511706783560255992785029685482799392240837516912970450055584181980575891392454773601516982449261658568383226340769871204705427562200074801947837467676047821951083534235979621073611153139610258448749068923258148645714959477694069856351396572847739427705623581055778568171725565030346590287881383083242344920524554431777932549370727356082123749864131622949910605364658937352719118287202887302739884281005918885941211267353063120301614020053439582519257586243696917622940670890295907413590089042137643884921292863036670264460652222637567881284464665367380932674267700364713223875278576369544962234381785885897740168164910199103388641223587169216343409041771045676293908336654978770204388037249975682268197930868284559650319022450061182679485242017532489219600001259149156313953591459036097285685089718480795955846136875868426916046959189878056428173265916878481009957772893120088892506775668128713888487464868773910003345769343649652430794282870057101129192769058758719073651504943306052409879381711741159860344418412935505794801410530011720550918751139303619510262925103287979221933432604444743877196906241928706016689215349651804559998808385747223238435924076557098294323204330872117456360618790169794092113699087062660943875902267949068712350940114832977586867930205343463574319898268695648165026929129156214802674435072805801179845799622178922425783462535694789466470419232487010589288709086137882254798065355885229341787700917111779349273947954934226394485216938448296266060961950451316183909691494529281504957095489640948060734817768364544559595311927594377266025535709178313377703313873169424001950570311154468826719083115786297658261541293837456109104198890983065642804050314778023414096917009548349003862620700103752065539752487459921882301882981090382996235476144580046942426095616649437424894159618192580036758085767404114746147063600724216166087381932206784563223976587688936364588550503249791268859307903844530564523935120117830929849304227171548036481734777080166596280648295453775590501073293890862286965260275144892453267369646776708472502555172668711182363304859676783430075957207376093229085595894581516692972820797152700503325753033710882406367225160260817246062978451381068328403983578863717501522953454170633521835456800621945065567827368651802607136927488417617884458223836189830841483987874848398165017743129984836360735054661554399395996829034396950463651570080270947235688722057071291817274506614902431108108567624414204990908735731903394137435845846998866900505412974454375751405479437017359954893582687335595472584960009397151659817087908641877438322212132025100844118979664616020243690246201449907032219488213067590109556666614866254917293871087834998969826885987473634913719796219183658929047330713745244966710645833612347093764880292982343733721699500574441798917329663319288122001736378352626609332674445629795013432286719964499575414131507618882474461078581666318059503782538507112802564864979729067693419114833828407622883883146198497692801103933694174465449751518930463556046270496556659051814226613207477204405455959155642206444464580769858116994952713706943846138062862872512022805570420826593227494550092881327486361936291146855974234478282696314415903999991672362309544250262184732156268326353149775385977475031718536047615768160606266262218671624127521643466112914851348914165563885480588654097636898744339165828260502490399152016780771168074164555275170895886896144992156301065102101715452611592757307010195855989345935537590762503014901746902467938319417657887690698863360849143123914570129593527470341809101856626520586715951649636180298755842309695121185560716643615351259230434643021084087563309452174483573009151632001670021074017235280180598848252995751322771648998477288114072246611841633271020879995790243499378644447532172563968240488541250601408982945155819249895737383501068017318064168142930807697231983721790335787673986411805565347300151888295869779894811011587429797966901651705923613348230541061752792631068636796785424323266458820671329086063023883769799026750101952301285053232682418999458217692141733892942147310384420546567607935236433530570469739168307740616070295360858003368351155266684783947103616197983122323749009938869006982448707661616197541095577315293669631304079652490993308491095608293654270605787817215237377203314232949934655864317045299144623895437366426375508260784762000219966374764729541316283589628646876502854075397853328057534468078704243487733038907929545447505059190523143979888355049331911196598171110539736582457821234339987432334129466624329053694283582486341435033127424075134016086771106632947334086536646858912336786138127705016193009019941216400969384933057020440409087053844653473722660883308647529076613364419868804775049040821152965847360890583736180933933893609664186155976111721851910388054235358434156561252681699790824848176837620196286798841263117297556522598511493395809651069564507118663822111144903317947014909332916437638584254876722559146359154630524315721181775821875805652948434974623930188169566702293243259079586261842864756954837830420938933882497909441084052181022477907879282286954205668664856547413438261775735630420623594321116217090029537442797420764206705479584964558830817301950731913521971254873174130017246861709420348472724624469132778269533529786631973924285036842916528701851173283558872245624834248746129016147978599684492312071426410773919081486542052373162973400638748909352437749758157564794367783214307448957311075508037767346922779608151780303870599958819552368059462528524176043450196445867302890421530573930960441251372445093059763282393121817619939358387325406644641324544566670642806544467972400854407004508237531729052357635759990580837493339372784454689776380021188871287828150060504122350123970310007911174439005213645370017649211563954632716991725248759558263336412137836005034382912420561643851387312421992665123314811661773550446129615294278832009860224143344097262281622211870446204192490929176790252560486694240006007725786258886472141803395466648523895683736781372784254835271806204011398199869904998452815133153194110204299810054405807859648851473124732399872386264016497825211620325146987046809203269719269016965009021982874493867313697012874100631078332933480128628722763873070782708551665367496212477730020687884189081529878480713438788458729958377463934374245152062213290460932660654149356667407730140019462073529096911718879353301969440260480071804356696816698048699990419508970337903556333087550942100228566041348763014889697287170371054018970646259863144263081321993972046518779206479342611938885984590576157929158387954691931112987937023138698327854867780805555491130130392767028459921678838267909741339117694130345396310250370357622101970227379683154040363716267063128699611412189039838009752355735951749760385161037450103406415025644411160200249591128214248575203903237544994225808181658134628646568924226470920063556294967295850258516671155027371637244001243689868785216350757605368092484458857613275963085089590271169649009082042237288023064379569222115967395581664773686514275650843233233079445131904778227299095220399576071227952959870074314649449414164287144405936879617208265030640256439719747417957795800211158227675530931387931237798763281467906323371888898910011253573955676036389629425452103571471723413909982925441570955576198403205088707038670928408580957099479345004721717245774284200076441591786273569547968171573711867997083045204062222840181069269309401098493586671241326415891474423315697288814916425951898437216288398982007713531125521460995986372484776795595681548486140683912577568549067221972512441665917827877378687684545273850305809173540833124584108506421560289129403504240183971965536530776898982246376617742754604297432033052270004596693016061766602251038331905586257803944497186613147767361448474973866651018428395053112594191248902949703428679476993464904590296246082491188328399943093918089618666526663771928177187615780056216201504773652767524667320903667179239428496424041161644551958297251564020496532849908067717626731275507063257673428571436752876680566130138269148648823812531969887737854724295435583731434994686557609540715815881242673427472274828953564887336298394998620043184974448537215986693514517442325391356698931494012942905271187856846180862817116572611260472325534203864385583394186115923810022122079100553857350338270702514465526285245764583337592933118537796625175978568165407714120612236434863047019035994055301621154296844287208598691207128011453119557182477776701558532035132831408940540895827108163513069438435095209724902393895368568926264151931664241140116055068999376820058435651754135517259582805608721406545764958672686438736650978857505343546312185947201723540258666401096848738002193872860606582786930649776828279640281357539217722610523535222400052175453162063206473462202918176029945114255956503980922636705435078178736291041774767020897601288205051337188546372057595528850043884256441461759138550094422300267735033826812047637196322034366586062991325766363671093624141131127325058818113849373101836223497700688655513147445901008647217872376342607256300303742268464873969553849573649533528645739030490901267917051326897556806419303777286008158785910862705546946499177404182659867005513401317197448279828856592873220515194531310581904590668676784698024095676420622822061768652780851176906949219282838560210797074595982837072547932363332844360804967632774064634692703944379531165735631112910550995157668928558604018463069568997323401226003656708225963545739579437470313057217199616405759817571099177938673098850136734882446688874218900682225206355025947552570571705292367940362705433323352440727302736048694669728884708665105995968845942315019513816416922619886449532891449011370961606444664205843425122035209888870523767571548703238495270186108985583468238018604723014289999978566237596113623831490537875144028038660963003173531448692194215388131059427289072884400505283332617801870996054209356502033673628477098190133454643221512310458471369709656246484812874284091047966389542212812032428419995780726915613011724111041802408193399121845665294189293423715744487109712982748237228704000400614936416191272085013362162464992050290323734710821422696412383757554610676035840964373647777775553061472741326017847605115588285919511301403899441251026784947715355489387661287064673785524214850951365329236001842499684883441917641330358875246280117734164139352566419942147293345361868766894214087020624659010071379504232741479205661103688653730130385230326540993533134060551289622237934921565090965324065363193798747286602806926596081975445865499598277702214134485791027024991101454741619523161741786707310249217753646118379172816279427913958823187149287394565601423075317497098111247247148483664527523429297258363485865513305346910663265757933019493660766260154246079417122991278602583884780476237132074238040093628972400806255468436940426476163255374852469905006145305625724372162515703370652914724052404470671098819347187172598649814553352806691177284200072030356151469679991315039371860308697998559891594708884586736212770548175602801872085619267824886362486280266028274428725262154608848596323714634221590541189968007314972423310115054344573947317845297462415153743146751514903986002713896910893048944374421442021054936462507273013389455693853170162146237651085298482233428077578968129087455220316507312439825075691596381414224537563755721938440947984204859007041849261510279183273240424562304241211715273329737674539059251246862392563024590364196796864370850785509135711045284149513826308437623246849923419361727498299118534364619959648573490060013469512572581163933062986294408692804722345344524251216266514933428697029178510665389089904069866760296347493143659799863845519569811659630742880979261788916938206876692748971684235689475385276528118409624626290557238074042707723762317635070001704813360058851188780430102326449872843128430495304269649890452590908925781652610453920807163203581027197396437278835903032280309837828023114196933688405382190022022824775824576879829385216227189345711844448858680869870254595935892515351351321137780836525233116799279845554521882064912875455961376599830991103334373413945197130189888580409662787910391463998043704865367227653698228778240396768674184548455275664750069488406238750790398318415604163699326699113829723452571958722362473479102602124665246053576849276749280072832370335924957382850325877270800223119720810925666414553058050088515194769688544164573090081517830205812950454379249304552414319302589869214223402838780239214919596048626908802940308724150024023457038906728036202885977875546764309148946083395722810028701587042902975202502809097404165383722020594973399564667316293388459163630537532700690996358787216723690788636590857827948091117769693681833821552176834971956041027399327839876934708002736576749352486141328601114142798968575984623021034241052185318568912707345552939053228962476424524809187049283374125010348673665815822041527368086934927360801267067858123035599914124662456011932952677175064941811932459792959854566309692611650837301940826639948280520101919863230551733740872168913212970462806945226945056071861010395703907887307839509796313791321007264303056945292848505659190031556255939570305915060729254568321512625433371843339875462804646585889563922175054636183143737913304670598840987379897184756562553517411010507350386910677934833930597982684989878959800638162693346487402159303550164815261927921877976608482462448096592626081239691683203893577164093671043050961164752236911230778863326844004565168167274754285753374237297446630187465472154314271732025327027111358363921976045675091227217631258359660479707872999593180801864145020362238834993918950142801686470668572881617626406149603657953550267954707114048452213751966294787336145547136919610559941880997783920793625726674160577595932049022873840973862678442858332527067670736968176436998056428930809291148366985119088113889379445820765163816450816311358930959172967584936783349472577285306058012912789748735648459647767398264476236130923254795439557392046534992956732704388190580474387891093080086597622477390466038626342299279394954575233815606721310308457582022870302762987871690061435547466988328544324773710948290747096582743600021787953623405962732091916520826398260582280697240280392899526965595935129469993581090253978509053086640487729672068324719796424882864265955747830857580750630864889320466695313253017325247566880827163856448100368223526196361502403671404182623469286600677705914360916878819320072916122406421869248907990026946103236682322665315096424805459482635265818507621127911468162535769100664188493090628312191017459544108735608104045609374754651519707199294026984102230275622517597122571290836882049397812247008042704874477075439922035277863374785017303577895674631436853505948953777632759329570061805004494600811067682293291997228604430563905311571684393302258323197685131494633898494432734148867309004709226342713898037856413647346478893507009691081206756041075056592448656916507637814461911026375703161619986049096970328630390129961601771075120020174680460983230853279692127584977523744763212635735085894720777017915801323642522230671457858390849691786865289403261707745584338395418038447603128896714547326955752784955142214178754769530561210867578109366776823343570590440291266784475421737898601814740541734231627887525273405346942798939710094140691708080583206974554709753502873786262701129600790681760434121516815470703809914997434774917090001733239746176732602190185260436842184254210907096771532354364971213093539124002106798034711905542567519812717162246604041740951911762157647059847624301856756176357965340925254510127590986609754511482851576142630394533010119852931429411244807411882155257698228002838307023009689812558840059503017331844767931216188621651808991410951882012183797410741632783885348709209639988220752945493331508222966233165346032542927280511989705325614927549694402048555551969654179231990280925681721501022783789633547964639611135210333705317531085517094410956671585190540796860268232466163051251940767004714336219991582589230307851741268178243086165170462367755138887772638801055713061023236919896274163299278419875628065947537656150567477017018738814923887959751708021584763720779343347099656892268259387430750248858586166143335413246105491033828701358372504237870414969563982040430352876921406320229775261381437225280967161002964164816802356018700406926606859167517703716922135599679084046663160588511575392326529051664688206753779041235836553541549500237251253626299739782493592942227383182346647599194577891515756521796999639617308976241471356889991894348371127688652818188940983980180742866669135572462224892559999435436617006023461511339646733474882455041002408913527333253869404774459456189180221401479636549978298327451476592975161086730969699899405985069612368895432662162107797236243883310416439202913642071940478982449895950569253121224020597313218111920834822836852273156125453203320648631422232944681233777244793125210960604848280089754432011490439704398335467805235749162893792857036774722234062272765707786142231516719201296063877982139440217205781516008917749942235197473362234416112548708793377528896648760667139183939430130010074841829018694104285130608841893744262879724752526940621473270248297876708874821344024320685719257334060140036597924391091265624244908860760103579015189147068944015174852361003231850270724419460304259141903556411096483216923822762825255524779012724160014694927349572946192488243708046903232626304713507869160035979576498159642793940603165578493001506085989935969261734825446511670460545211483020970886506732355728765190037746734255856481843827781880373586171241229510885120746040872046767494451141949193378817500253963243467051650951499242702319793229615811404826317853735195966363931285582515829344875972959863360772663339952186849142060140197914149220071478302098957275580986871885529814608023518131659271980016596846829754442910018435070393139485872584184909164503425431162786274783473478270422206300162786806596312936537627775907714069920129640984403914193863927783812082919351862649729099068518377359429860035652817379024371772707795366575709038563410581849911086923250980876909816905030961980802814477427587329167784918923209428864874841235160911198406330302009208048880937231646816028718949380594670609752031591281430312165370814046035457949418517862252986572922178871397497941807855848661643229234727952024343596321269031769042402565470908582656762903126479433397339521264243590841004859421039110215821059804301452390037290286458866081195976694331814855619684961160747946753989341284090709486681299709926201615866189304889569404736580172136726081537496470136681618289492733611913756827633102102029349704153037448426674081565147814374251122811922178800347511623390591610160062007483778815161515523026918052344435696553872896817643856116164448435889719630860396423423564350910215061004643829757666919832712063938851885527295406402163998531642176577112426735155761826103993573920418425984606378187274382229005636893564649890087786950346607720002781288971060135551195776037787493149518844287981752382181327280420551376050375647941180181275658579835148531685165645388872261387240507628311718294778482440258964706714243864003965492485139060577168564101305249030052637058313142144863018462911328550974795453535546611341520684846945062484439825833738221745438287999532804539598267573779747249509893577040586945762510286385134732286384700078516059682608923010233628001655776347119150282131003063923797732225729866869764446407505629278074519541936734805911249480383586108780499227266773536886202695771659336520206328485367326382793851020320221554363446375279077972058662544185586251915829697085919346850906486486369181573951496859362152052334706795153169881534179153867591992318804140743236331563138409578996416672054949850875593694025840692195428248915411408289421377014220460380478588036214475519214592739142639142830303364066577552820328288584294146347282333347950419133599140957326965044226221905793338093796209380713838976802242324724443025556790258512385326400975833117553330922321355738814383790949449088465892237355141874825394273130966349686668916485994357769345853399891923038044679389379279719999974896676278398045920817405766476244508318346854532752173283497464927573289919403896828805931130272020763162145965846447229926340169211750222605868945973626540121218770773914109438894386346539171436364495314845088502839184293630767358610452370227941309759879948116033855051777843975113973686510689279942096721862382609762741928602027457846413805726050578783145443382736339525922161774772368632061817625900462897568007957075969062869122442883613568473525552656135225311022873317527891430592988688739804778196742935277281856625661329339788883273149500029517886099798596410558096403569954276644593496688159905432634886333321714465415527319606587151910075800217744392882100968665154167126691583391997112060288915745350905808096830786577877397233002873918595224135507149116575300997578818665295085441361907818660588148344819402069005012164991778800891191523420613793149299994988523621006232805491978535893311267686901403702856433342970594742558812877860660815263684921780221515602003921388137248509932433322136307290701471823475528318241026104674336424941387992318503415356350180633674611502616005010915665391662026908114279062470486186543349343899619660050193177792848820519369027988535768670104216811347609020324688072720828388764723030904989880058146467836166025750332481322195890228496561847190249341235404736699221615065022575312391949506876494147247415307850602317354141851536375190199272983514923584359008522158989211951905393867999349380734135487025540454164916580135814175601102434678637690070587235174150854326356909533854808593153244052809791745819683476936763878402304028256356162008922158737614160110735937179186499575541065963858137432172999062923010434331637903132774464463551228010450327322027270403533454134942250458881937293735327681153784104119483496341217511902358118452383248290912367303177012704292967026204132512864084459157032586758101026692177008962050947758728271885478848552493789798901229010736511909442540521774856745811646217666499147060537116688572695199113407470566853839355525799004342549075049696493136750080597395211989752582232237718954829160646564520403554356254560446881532911873535520867054967738901602463835852338198776236793962636220061837808559411609385959656393394981493888778171213881996026863563104519056646396027978810604723705312486356886148822247617075606960221125363765210384877898150127869684926624623496096767132377453287389696476854154291601091991968269567044712531894933223493694334880248797124106155301301664564610923483124357171364916349191672528365359057768184318375559139918003035183947109338993695990970767721268742837453464625758571884112097341680052185447924717725312680221719112547029144577319256815622805823444992839957038177163905322950839491988793438355222717844684211069862638290093018027955447265710548016255127358159108352877091696130987942652777737189321028907889980606234685337481501025759537557495305770628734554361823364678792421218283693173191441651124541179803699160063498792348550454477127664098390807411317551416902593081253937662112933883620400443778528457214692786706294324082713745204830226142450418693069944140918284502380366345692324314487976289103458125138950889110498841698081728723156757199923397784745657027084279285911199398115810063660152840735796212463591133649689855338230563405324200469722843742180180524311262274190609482959616770262852141384738287973480631389938799919764141555228220076653911238212825596427569184073754508373630930600433773833825469506589047799493615338205421869412886695438622743998823166989308498668678617772625040796780194789181469411535207306127656620724956227265777027852039015029452072752719273732527610955189917263658772373222660791202935966519270134077649443514260174374747908859204208710854894324063788850191656300878227265619810926189904121725881306243545173253960784799901101665189976273598873663103907697813457626955087276952964389405523099072428561996827960083340771965287382316155438536507568585969562037412526758456818807356801263245602158083000444564771207498984673928920226196916588150397027283013442120611479377652575073791164447711873469056716477795443757610789217599873529885919847343773664315555422124836158086917000393428933926290416035647175506198199592013925854304433561460071373020312639222693899252372291415389103467618706500379659795428655914648559026125941881070316617019312030158328848878698680613986966134479257746854956842879315369261568657970775129563895509309983502500355629939301050417479421130945627835934143010859139414797190104685797905243553788557029990605332891147447853302337539810581904627177138361459081073923599519234123986592821240621743295220448577075112074559787503156328402254009040131567536871920146130050759885821941129246713643249938236585681922409466604407790683027732213649009478046144938227529950554061433760211202582389529326470742218236220156734314700385256246772709980309930638979897057058380916209235083690543283221108827926675113827502538036354927789704524765742258417878722102712392379948196326550989326263250545856434574681158653314516988402401389872751035644760060519718531101050124609448205850183469411051878490397398469952068304055318402020233854565552254284275878190451131941664067132888704102602497258397485937771471568187128941672342657500266043694965969477056227546371891117808247952856702504487581297821887002264464282521105212388629680493670707037541123783507177917116357930451237510733917009358691044758610277020271711215553124753126736815048010561185279771300015972724737773519239684751340924872552126080979741005635088308176133934739922107446774241798889832286381310863479580694727257249897466182874854884400070436860760054065406343165476063129494954689157896758703981339114414370247528845976996901740416363326760709904207990584387399694487184843280207895553907448941780098045628400991597167139668885397820427342788349168247078834212385479955402966816546482580509255165105436063138890476483028473409118816427727530970329196418701720750113055659246254746678237488942931015456524488006302190109415373328794256355040456882957369573153637558525299644378678692278934438233046627091332089164880455690885748913664316763483307108653968826599086211947230271104621691885462164495982982053046779976447938471711763252233092615555592481517840098313572998868141996153690674606547885890173079812322719814615688573848159386206332861103519235972922345212061866053316980124531203673844495065282981732265809042891848643992020956097693443815898603981979449814954770321309419352224605016369757010699089908863938577334813810748730247529913775896350941400069216726157700289477438069063473512681096939537995662128870990702461177803802376853190503279428671286353295706310489112417602984345049567455338023568407350358626552256037692578408504812366600786587771040145319300724811326218704004928378866363065432813977074954755383845016251709492205859029167455602148549169222851324742631231699815885225921543311313284810493196529313116971586292155316522243318378742926012580823897328649718503476658074493377860037812856478273087303098942323137858326820100233122184710819347634576595532822093229256682755250519695011302097768475273390157544545574854653909331034897771441830764992028744971379472860010202651024058439999124514293767815901032083646224909205918294249308069771112946945813266157118655276763725401104947571935022340466553657156366596808903016202165882837300757383979504917545377694771987910940296154492235035469605887177336401207330033276941220135970635682485248582024357767055321028592722362879704682427697521162312661332818379390413098061578981813444899484922651856089189155250087569142021169619920658471739921685078767354320384081113966212015226318606773726327156532738772348754091102407906500740677198047564028565180211661248304291433792167288103405100491776726477803660214109350989167711547732739570540083222435845617751921973499482768170770317077709794368267083184307938674260078603229413711371708434949230848231429502559638692340429062319087185699996934133063302043355812578720313372009602423400805075584486046755423322199046211748180374185872019642679183086416724996809148532539917715544069314865765871766735720604183731911778705860212383473128266594901422295478771562407447901021117699405735010305484528318495171613763988151161609867238032022611570648764541247353936742502122851293038967457108501149726410617420626538406410698190657969904988944965930730058592737995375636241450030861578050820857422379100977196290983364028669100597436102543835535749896071772806614605486829575076787797136315710534831593299680106569021799213088342656940919473852442412659094090270212422555170822355444691238768393006581753392570384407324356220013237063254793433569671979283663374481203233953299904841135007170322766380766348219282653050939000446932243731220459396305108765877441584229269969281092649178092052872125047120642145879437348653027027374857547329035678383036949440502190113621822047521982103629604937671478840156339052416618233860503010917959863438096459089204096140313929151143347342234017559774952132108668581719346805129044227592316898699292859591013706477046405165654028804792374231684497749093467823846790396181310553355598273118779555861523655912986465924328937777714338370000289738181580469472674897304040061631052169823666846541971970266637989715662180607308183979950247011174599140750097473127165040316611813019563803602227856221176543343927597241063045879609066794700111651239563445792452142241333034154763794258930555488581790823074778439448904048794884703138762032922944096691111942104694978480615308086002977038810520202035460816146301411082715351296116680215588387924575104999363268245903475701444695955426256076441439877326946459438086391427626922541178034679906488072952553465746239746422740045078944884425888278736477880973329902473448848758492617019559100804711363879843227470838228306298562266465590176342063457887060733562623478868483212195149422699667828752084772420441731291126210948306645016779223900233810955253266469759204881039628871176594668024663295949051345502424640058315297982802850823229782893086800347778280207134071992330629514677982120470264243967706269271944589359401399726371798965250019599394642470866845462107369213880707948449776501008458485202497518479793794346833743311793741941432113320048814229257433462138441720655606579260402693016290104726581619379494524095146765255818804161265004178623097969678722649823178808156201444198832494965268327011266817364121846669241732473663949451032107215538987324790287270119333974837290905318250649422557667676073439435956007039703518516636079584815421496534585487546889796717192884025540179455071525020796653148531223071084382951919930730612995104597395971650650724111085219944002785480887495555835230738998503028353852576925607178335429256917163918062082172610052789897269164114262796261464789234619571815787886847521350408246528835442027369876518204701497674440491303199824422264367057416077082235727971814369481325756268497002136729458111967178317655781472204706547619120836262336472559612324487571933433472877605137256118841838894572722119318551682273600512587793460693890580477278997324299253516797432621433103945366253832675128803330813525483914936895450122339032346013280326992410284207306019467381343931643876080586258559156011118566830049042003880492751135427252546312332609768425448914764066599414236407290800671977962198324480027800787190572534740456979283244302151773403221806254582216531024717875597428966506215903328076023294003002368366664697471077009646689751594407565770382454562040678398879641794342930240965938846578848912782876685799129467401243909923657426989230403475816255901123655889523061453589773616372368461101221859019849919057218132690712534325967120413775618819847553119592063867314434203263639141151859940328797253118892863536574040922181652773236802011748571683364451444274598864136748560326713717956759980280886668326391132833645909462845954226322663855083056682177104634503267953021520308224055669011959573987970866969154574869405024842734986359979856363900657574124806508171487282226987214970975621021759202841523306078061439293438928380494472143155102132440032731440914988845638908495927534207341042125683580190601398359129713697789600471675282679748798870932825689797057985173743975346283984158651149572390204260120137783929850981441008758483551952072478957580660329905545318231459630684264303668992944855903646220048886980257043321066241584908699963854615479010874871661630077312702715090239991876349809811815635071104147562788513499329136369138460082540971994901159390998996985628904091772979954402051772858846189059441359343524634688912003726901418142136194372341064417123018267754696181971300912783933258223614787344670165657743528623534151383333741391535279542962515452812545388978463527694467277087385703818217716002056455011001269205683352855232548454879476848178331729580588745933699561675128944959244507232078371221924268547620091004067477638011834153478971301291639072474832329581814116237078239225148189075488213492991719241698430065814146914685827129299057833656037541839443642280636495604838250361276626206434720865410671696375696053336917911989824694830684436554332778147517397313398168715283089198022243469050372655547771870686021719651625287995955201960500646588398550122413836736353878401915648640528367321229913264617373016620596615289404718809860304082011547743883886438210694269858306406579981599242597999466092968613884261006311241875650614576415831893073219834910220841602485626261592854577344184415806567884984680522544309934503848625062835808090419804439205617790985857941327719531184512773464330375852669821318410511530436149557405503910912784880859612810729318773993282851731468075138025520580030499103732252128198413370461225914319610792694662991106014319425609142961828620655854546913843014497579731837493104936850371652157159543811389267233631107506889558053029388870989791028958900828816855958990968234826376156518287787726349021303313039141024181713349322894251094674994891967200221269742221831969924776538928310047816591791956180590037277814363139510022008091065036090241907042136318321208365591693060719401775228334865213007914246238509506054019052786681584964354162312745516404265631011781561239300629419981865253943280754268826987359027663769734904284159096314698442052534828540972067611380836332370621829181372253998663179122558786838345418705609854371272102375698411339138670324531723238852904341136883555836530738009115559740682797066569071919171938328271696132677871935112156431500650477988407555004376326261814364438720510355228725654110269984942604025416536376910481245807660158957968883809215250505963239917933873897760041215374349750101694804255638917524382117102271483939803135206938962826217453573568831741200516710578903023841971449833691789078956847938619666635253933341207994602530856857320731137224312419144696192174676308885951304928061547501112692087381442829145073357842744928171579320951058886171493547283591300034820904106186528204453160892295382110284612534631977810531056014211014551175936602614972184783435919373845753335217514923981367824567300612518048044439112984502865283291059398784507156182223251122301026443176256889258878613340587785969900147452053527889749399404298593952205687567216611681582297392106670159666455261921203060510471879448867152279200830432090235667781662316020232640594825867043543524032373560458494173353182061214959253634968308983585983354576080310054925239946250007524552061758881135860123064365827903493388392149989224402098191539889633703202382866362665700444952005078143006023164233526602411332865745669251132593846567158576217262293358806029803031165211131345149605964228128159169369793762525998217720973337478777051661309192295048040170256472226118670250366063048138351010003342094106392666666728730713501801781157346371194647351986687825954187246248928172146624549945161120770333976273412982193308983557056491553865935946283575036534460002493584493448027667730496651093581658763902018285895444972702008441147848778331864870082294098422131948028452535247475726883409546733532855643069199974757211429886297485515548178637108239091684928230816412995758155735118632967233267970178256277836719105969268479617280781403082554700140138025056548690337590162106460315282778940096652452991624567669550842505584180965766636831083483941572102081175375621947846334885996890562905490820052329422103644007537929052506046973438430048579552415786764774182583134826374407584755678305648626458719095144378835122580485870651483025748778524020404901240055249674345966139522922260816761509060598733087917042861079539098781554371698511048382758930178774568492878256193982988721713737290581344598368773514723103586897041416203533107325790410198902065325698589929395108243161399915244813286856259916130962072881610783554174234129843226479444856431733025953570099329568554269308723852885749287284013575961344065895528199818802532683393115918683522982362474593389753901574605519886683340934349144575072700573451869082395686564158022539200596187554737657283978376680919146033577779433344293825650743545123395745265360887624703511553770032703951076089686249616953839851947764290584287431009083620965834103858356575664798436799555109330111395424415232563839541645500415852987696180568779597837448790044322552454477114152613033074670661372204902414322855921827556590890114106082078042673663761553761414541537043397865869982930408862097419163496885642513437620431071456205073884697017899511456063516516160411394905386982156672623021018202436360378798141345828430213946733326506746764849519331043503770259061552574885465713063992582280792936019508545997250507086056153538340575459699748969008449348175191319922916518212188031437641799022228228942716467617159532947316824129449901894076077687798433309932203932790074880742677283993343855726548032665770375745958646256134517763184532433795269990661500375005022346675694200040572110512365098790572480777040768180760539410179905338153753403124602534337990143522271457269804778213286121574028372261362126712058878058915344842157338037804253061889703872705034022339237824232848154792626560295104522383924742972466484170758736488209304077177483164628924406715379711881827033530572499102006283641851550350144891654728678202236395750398184945970114721609856911203217781515950000787534917847486175341777458472583420267197952306057127366224622981353119238420975938865343205442020868599427491705396805086721804389390311122152147316114742901071910138426954563315389040240634831376528698102015763999965572804487572511252543203159693538006365378080876730775506043660344122023552559794334112621176464050276778221471614910865009414020159338441858316635295283303696979717973241576960380179102912215151622851666364621286962194979554397673462098003298476777138097736643599537918680422015604724325980539816605357114556907982730730650762043207582120196963343886178893939940802445354308629988395833571055024695712177215867022582801647012711053834999565163482488524795741679502042794915176188396153624645931830710642401952818537481314359735113965933129410958863693737925536034614753734292693439107530119470111358863556483677566381301272465107560441837511024707956259352641655107843503219297336007643127261233046095964144289399013501698668602586182667574776692138488977490847460399954219549630609412020342298150079730173970398365282376173112571873357217549257175879373262155164901262171704226706778198743075555765716972305801580682499584197331788173749704114611432550257611439468776053543323456878396245758479335478310101176324923053394191680034742714242715975201690472082237001711758146467908255717971651972916943160363502281277686962854551309357786885404100711947384764462172551765383934561312728332749551152516165264752916903809846415012256440961490074631339192912763779155122498185630592232878749199254176398372732863665006440058036975907385092093017921819323529333573478126115095648016032866596644003862349829889691711707574835905179172972089940640362253870848504426012913313635351698683751840229417876038826010205163160852539481386473885282804025682548893032292057936722189043650974702467217762094221073641025622703257007804566241174043817017708695955319591224119964950600041406872465997304960424262001419036086305035926039176375219687372051095520680974200876221799636901561758419096287087148834825847405502875929718865404418166781792771832437720869881826456439929897345755590628965397854885109193184260811941976029978262839326585210725080426557185542376596536577121869409040420174191995561813691589754291981933722219076223052898553320944150687717429767699816117221896424478997074160726471363305918997399285494459933581475642112534813067684944280187409982445240693676479232637584563821147513366310921659564464576341715215162432349226557727332517682539286414617475718246750394182005020562274304716354723087847324557692187898839583929708881713882873448507465714418110060402072566667612985544988201751349043856341036660358691351702161285069769598609260088243118868655478969899740705834825204914364536039413004829824235372863501379263011257122244448333614260774417525512019737706941315871388434776927825483274886299348994254524063360846054987805709449762304285484472266354333302473403191636741609699856001040815597115394161900588461652658539083771048796820729749318963505917082986575274611828989882695432746843779634000371727835482819812378917835654442843949818235862300207328835751562828681215315928112370479279401421813973163401124440256334258822000615657022597140256347706204148428760420538141341095886371410731614912452604932214859018231631258026830951816723508687632674894653760113346466667293867723268475073874493003791425359104326453585450799482627884748335309929341562114742114754891064317550191191405827062223984114357048375800968717581372875461891673436045319157127247442860699735340087746967948394453294662642665787920880796867401929132887198067869874675487867306082651057644214723559753211951682244829255331001963767624838300814662203840827757254740617359903162375548359880125598152191912922178402926923402503100059792236610957210422753933259763890350908279277519647062129369301727088911626806287065620385603722008538695001179739514469608123386790130980758006340311755774815954412760627517761258347802583351742195515220221340584541625302174809463364287042814704404390829050329471418107189564992592590453126425048392608188343939788578489685556802981853217511617855041460742054743683177941931051129528538866524295626971384229188615143291772005497409678883312316579717646528130882426389648257684799799837928521649175639204747413971144201179764770809235943287607975742920617162363441369176585609964944899487972883282917489741649478173008363648099305975489193402352761887765051711313736752007316466469897132807315430557413999792847100479146352508582974712906194474343586557342200220233083112874773695964379747912655496008115086851077692856692519958693699203007893993763431713093443499775619950875732887239185164895419775611357688233720642935156927794169004480510903352170622507901934478300473549963362760349539842499223465549930030775079595294730065269100492810287279179051755727375211250640965867364268751899992956622765982469088912017971797830984368407248009317201179746601986755303586941087719779267791887045366030414720332901786142376440512401702936940409156269245578335594333506827120054039846077277200153389816457462981121237640978863286412661566829949549348194798910419968934973325082705504408360407176565185616023092909266278438819629683364569435824821454225355356947570252692670531526386304012741229773548300519410614607510452175434382329847072245909151466684966227826923764101734684799820413721163683965974457855140776851675574131018556541881404684706403964900884144878470680097155696080233808002344739424955185641610101356034409895662122920203410712223459843861247148059761298115882346185628543324372570701793344360974494685963340527875682360450919346386438593974011521883757621300740945171584251496442839066420843971293394222788928625243803555547156018453044144909728173212099935222076966347085589311453776127333126264248355401704549089552209854120914225191824645236830627130215235720876466488665368508521657089500324550601436740804122624667926446367979637362725816422782756246567129748212490746623013687870091778277728911747543788517183235688377077765449467140068392179800200546514273121536622036037732061662116796435279483129257171574388674707129056487475859701799142870122258763587423802109802980220536692356319060297573897995893803720002022708507650909476936068247888670129292225159916841460455199115970944244368733953639868915140162780665772035170603156942578359972850819928901019316875615682506793836075471256914102550901095750163277669725401010646504127318111021908014137654345312610648964094663632402883556838120770608210230474085551536305449403842659127312285099329000605607087309198690765133885119442930243102480127625369752819737873173744532000103336727008254744804080298413580144260205477349594035607745791132164838430451475234508142167090097680934401294474369198438340477528613955925370663214864641996760433046972730414910616890864638344812732104077256604505865602477356174747078405030440581747124262588701130877611855992630471712856631444251757973070354888919074957722073069343722720290664664673056976029827707949448015182069452202000563703985953062057260358817433019734015394328813966482492898062290818853894324656414652463440579542340571152963638047512615695436062603662208504270103849300819670275305508806818423162670750860461145871270986319464108982123516798891476323676023952745025522471822976554476921863574977011964283099632879757907884244340392242406971223702623732210985093043012384275651206516040672619648874129016191049317379755575662955350607847016028841721824338491989764434902771039078880424241872384390991244866370996456589580871417001709856357818064614009172002574696841459024890296462904892597905341977363250557752990420860714647197820491558748242184740468823570575153657523923001227863791703296702976416139062816238768942950553626674402207419325744293291460179454483090396164302619481357932090758002420158941168934780400844620373055376551551272281088037065800262672548594925871745157306781622348892745792830467378506980687441744363825681182884487684795821829585982985651892513660449768819381053387421127402124088632253981512465640204290529866288329038239400922897502812942363829222395849377277256002341619361950521315093946317262677121020656659328117217044209177610290414709716412807426162441720362863298287723442859720465748420657543821317355648658219816096720236196394327460029778344345603276968235005353509935781735747068370886303987719248204034748987896483306360328754063356864952688692015542007644266940131554693745809837654356418306880200057631629474542111446257254191925496028646256243533160288885173099318778268238500549715965925484618089861868704844843157745867216293454299626002055476193631000061492106727653681480572054727617867226343497098989378037520141340454976572207390080671951783255966319877105149338065069146872180803872627256827922136184347767843487473372715007360346065938218297748788236942369174707555339080482072291280136011375715035638085287491311535357773489890055390820174399921444230146321612851410327930754177885620383036182580949625016863250394466855352946554300949986425253300845315592272237562028849931673443310107671277783402350158500772596796937754778945232679862630733157337409638550043502128742359431502457558865307957057761529315150315599734491209119574951942313353215367198487060903556798026577243782600017927745735753703942869286813674915563474785535914266438596320227325786276033760135467328718309668539090131902570832109826785687290195534905944640234132300461174940889488583047445110003672611491404788520148787556664727770664731250259946301587528634843775000847124103795299201382018588557566162122248699751249276947121663331913387117131018715237667515178280620655147598104228202042664895974230223923382147255936934723376424428361831472450760346808905355859053442327115993698490933830486420592658651828486128391997404242667938243611145538350377264440796968363581450035705390302548125464249380094047687744425575880108400745079330943651035658427067924185570425637198892703430536092945916046252388633832113586557147101078665243783498552726712455731599161514461277141047850473437510736090802345860075824546616176839240091280025711339172888641557980566231884238813480152236302744913623535793623387464845597148173151937814612551528318933678530350173769897414462590664334334845733393579439993637793031270956934162046476189331191301525261482698581024052135216728374883153551725358537885519045537082727682141634686563335004660426769496048106931686168133108763355452808762977929497203001513876656978607034386266024687260339608644044220010251776977649060243335684132438231791993162068130169499010894803953728876950876237004630652230306395304625857413091144192172622878732694135312094803612849095335561179133470839510914867619661598062749631018763847803293337006663955039927597891050252764226457908752725292893012104137384345823302443743913103931517402757538404289106048971010451863328363936535479760664262350840815129459352055239559286654712202682154578472151648319405972598660731845072145173911302147601624760034623584408233867889168574711930171067874174855997921603391875337681711234118273796648156323709097084053498400922508909307093727496886943917189542319023950125763067766176881812508997137472345125208566907463438347859966120714529068666462390568680471033265438803439047764896676739050128245179626981902482778867770477453592497827880174281623153262414356619183338818853605691025279626097795520587018811888737033146529885912711338535816449201450154670847495970716953288476114829707491189489555200924310702492084323885144679271285625325286903359344744441742805185788647493264257261859575255576246891847863587251527439983057572303860347706679754584446979199466634628049225347695909367118536213889264976997603956272388633237292908150378800821760515546028880137491029357625235830006171798323237359832274146057489919538786517930995418208145425977566781491204383841774855282684132652474636590087254128345404441898748465288753414596467423172637888220350582829848943585765901760924771053518612149372827940763143850111005065980271918962591146337455268800108471364054994088919751208459999785601999545308533629675900743397152216048769895068480993955391941129466969626051380504845375055880093710483545741783265408124389569710068639048457111005793748901629349744256907908799490997642840674227667998988541739969927397544841040350546563168374595868085409824614339011061926170876131009093175732727225664784604087971934110323116005056056939010001039708937464175393772625499082078860584079823668230802213262974856871609495416641030194577542684265620243610713463509900541908774684110835726038498966097657408577751943318342514996432337422662191637005964278871256957142707267978566755199645065100125878544949273283868733819462446404046047720339081391210586696096968936739821766218138660484140927776140561838967804944275417769522919394948241068760513893383752026172293211424116420273464651206845038011580812923946222082236289036049394614207594434432539885639300072455734462486720698103698514798562092711597764776877634042676519853848125717491622560340266198563980956999356543705383468233435440242813240406532912565342444654071817387854412248973887464477923900871339440679784055384651652339877240343077232617330418681286371811240520925705107660505749252780687060161636030750846218186186679007355679214335373085436617804944235810765200542481788148322213926322029043711383938495598394027903444196340605795216930761032214314856273674365611657781425707692802402040231879772482617784672413984326086033869410002508046759928660150797003600111825165435798803985628809700136856057941833390459661036098007782286892983273607442790621144352252474450946977571183994378500580989040774462571293526252265953215077437434344527699999638024138630176574391178983976801842429621625708502761595514042902522381713426893485610363855694047379865479158399602672395475591915002844010290752584725674862337828355432047532087101991393426999976316744610722819825669196704712884133725837937524844145777683293852989479039410290305728697579051175805766047253648216185117063713980247615928891052876323082869204472441084292164869270349883927322987082361264374122245347512708873441099410814484048878179709134664326406138582819746475849048042556601713132205463248609484355170322261639307369650484012964757220768828027576387913906384936740995070163017479813458716691532669583564703661041074447616996056103680559282364123765011900918123842611763963480735017078547139681749224534774495807401251888696806288490862951599855558043557323656305694347086535106554017275604890844900003361109383155409518744883753181611838887409313743312966830352787188725994732777525511109806937768700640578636791140801027644274916940466089054165937857887123076496380070830826639743286000604284922563380900258373754547519585928382441786665637257977584043811839246472318000675834151263041565185008060484078623568636696864363459797009354593867657532051402260042803138793452602880626656114615102670335439718989832932110646326140107715437504401247183353883516661149188086383324795069221619666366439625699508369657389139939498367612594067770383730179947030245553692345726312355926303999943689078412153547747402846785162941206007266757308091448564260710190871195321122065625226739716643365556154215885463979959933139594055387522747590650545432620332148629782766499549327272321948554142218721887105377878885368054799179789562700665749947759480694611082495777429932065827642098675606385513021624505382047827527272888257936086987701242841339310657696562394627587946149604937361089912838987450920658281160916132882801838047117350057217087609066821416203655465293416057090348289539126155477517555139316283602983239644437073945847706581443641324915077676148975192855764583046345993857507846226527022743071876230586343969713663124003767788414644979059272710081179767388679184109680637797696482738089444236695364106786559878369517127611614476791818224245366349993018112347919222318885910997769377564285463158468626458480504984088134945298806662130441569233794231427165611233193819864778479887718412365992760956593311529516040555484692354386077872780777078317005361346222107318518367227015626658892240624938847439583671015898424683987755874796812684350208961551372259766162352341548261988283176966417915135182577054431915318459009196320357072834764870673427371553055076443777283054387471888394906642768696697995518441334107244336555418806251156909611474302029128139898904327080470247159663376349117459733950641726226886338687097384625805985357700796285213567975376994160150412389973663072505615534515387507720292716248640372482283773786509461882908408936642385762195402051354767842026299984680434611241586301764649642309762650926851464413729454099804341843099273253380746462546911918075258485946392593714440062432274558764681382673518788877077710391169184920520193293849505038802202609167476458642508697651902388872809635209533002032595082857174119571382265048485031917616578265546813040644724147355411703228605613621610525074423670735571574423387415742515014245409257687671276055309231609292013459905468288013643460165570903051474403846392417344665940401068746907820459482017779228139015291821875239535553596871008426258854765541386201919512599979532732110496605999815180059286569510910852102139877762832420670398168778969756538418638055742127340659423847714511995423277822453296505408521223411067744292364079710065684496399507859255869742422260641368669228496150293917650256673795170898599767591998940109376585265545739066521854370394642182613756368585138724604080988044727313320579149397785942392021255419744432564144884454747155937021361483004341261055504590155634961690201687562440784737668108605220541582622806136791267737164505665354662710357906322887600020121144452488003408589824995623572524738669075370726333511761870224979278299689208258349573138406218626130092617169531146298322246299973751771833965760342264349625477640999359160878904619605963531234499226712439589113402986571089645746676990600249600550496945968359131557787673604256954607022517349917373185868671975976184752493083008322113308879901082473772079452263226857039535436617781085119902901779822565565087972785507047198668550464466479535252668773452083728724299880496246054786745209882040364187641232879888715183974715167456262306804795746431481576382247022403449465290964186496769837183190215204019314870027746782991604698939293648801106092155456329567252417306064310728254836033289769412119820295388974291866045827276656603304404499705643828428433208051218614281015073109297321200152132910248673840473383254933062617796043895498162547181263949895627258088803729097114123470782747723157730094960641026034714354123132069996166270979067174050280852993039209642248278228072362018899256002297246334619514160023227563974862806036976245073333207667134684389727212286067201205344335546711171064855337705610164538283444407277808559638164554931413564133237175057027868621315523488375767179733808150524783801499687762202772618635445408843247799969926783636325775360323146402969153852292148798194091987881462374726100763979624745902355742644788665719451512700820957833536702008963419959887755563610772369597943711625846855182922624115377680177331862476142569900093631185266676346274250820371392358416998790900354182880608155496303368253874624892221048592484984546955353503410879548432315832305517062650983933366669317908696226999184599327830366749446771521546971469806804820437550818588160317014525535387285084584152316032649977685628473624044798308889733547965925827149227182028241073193759115777403523479165828289522921322584335730503463897343356511440187873819425938881727630331821155784476650456007643959450835841251818854098091594299830031595944035505169486872648622639516979209225622046627356110529863504578237254281117349462794798433326472550708747768964866568063679730242985889895928984626736824195807632708969619618468713018130345907594000067152086620223452352323669184498334876593330807070379450839100777934029474174072123786708609321502463022725365784044568594081639572466147780461928830012591528962340924502566104655256818491573698223109367261591808005245475640093557824344538905741929219888367460791136223631058720028600144540739534898588101784873436203608915577023425339479036836655108327645696899912277544785341459585009035189126158066270937191311704097225382456887563831256442411912746217700052689747658862880832234150075709658516650302881557960245524314765709868019639230797513811472272034830748515291411971507424964678217473394306611135290055415345260226760944102129182322553361556315341500212083111427954526453356593821292441795375386159683465321516591503127891946458466299370842807398836062529002205647368267987910076226013913018196204479917730353878086326115349067943484522637161741924297433539823043857853400563663284668706953976326465858314231927143183577846089458241266854873227356724680086887031369105657368597636282399236127793343002164105562556795581118177868421469023745838143673711624943340461802367661904932710404355287154855898062480790468135569884662034475989391309536315274177713677657266441016373782549090538705062322504021006717529904423535925496053016516062670751620122903709932064285784070492911580189725495750618682234492875720096921670793282097470098092957509058445227982371550500606715288169174472267505606537426027405751793217697335340857139095807413722544368280166430247095705556045746704262309276580162103361248785428719887938392199543429676926216861599270555955713862824030085851352336275232164946516871770602724900364649547446763491394710604958559257902016538553977893514093143574767336565169224628516339226959603875709049532564009677838864884903057612356314909231330734216115331666459537157279837815540279496727564245016487774457979152997413682932463894365115846344058278083062134193294824418368112890616789767852656258987439682406439696802383723943347496356823158638416268759963193542155143120078422500726762693326975613382077272638432352523779756077447449612886495795443261103582039956545023365838210090042740332386127306534134134686668037131781451624421762868731435783286326603920987332371901241154662638929229617575779129480088177517985229157758916477598870872102492758846146422638212614855994420224945317298271858780028500115862540832079188121755174652012071851755731601552927981729674012660697329944438115216587107226870569557924387565118495778095661909812010870218990236751038996598522063578639548356805848321191009840065209892222186182726878942373816651840021591929822942454598013211145995932457329434885407553972605584745562807712766032018410703888765142274063025361347719688313161336454611993573614276352553160631227769483532106540367657636290227631961184058622253656842326294268849993965886942950416486836693707506812783404742804390142349162140257693196199989739443858611576289186479070378496315833932786861640101202647922533568885913918116085803200697357151115307378316724663533328411825158726953864200612539389078739613640746753229933629672289702632544925388028500303320025986502554430994460894039616846628312060785423049649100360833003647820590957784707065314422390413576908863145321198367972526304309630008793929951930448198906477008437318458240353960230313004572717505486461575841199271937768009007437898105190151150260449440298905736572913873995921065875256456783861746035329419635199865934293432431693086076693183815227217131588134318827556834943379900923904697137079167470749591269314843161924493688444477478894620813538539447240342615673904187596580907366391429210636615336622786635492504851996988650778916100266100821274636656686505195552332025425353891795004829977635954709245550126134226615933910880697312911330599478182406125297242292014378250974587052372339591206870458303933521118918436582159756248937263940032815807746508520448835412954255421478992418805456552520775330372338877942468569814972576496016761182866923096092071922070030012871159276353832791694147396966636478621278995758502995305547607938976504557158336135906541653846745753912869151267205837884127051797542622429089036630416118496488087661457485548417587830930362250110548199406217312717845123019795413455351815476123563507979823387407271813764360578655091523978413855194451460276141441461078067417241925721207064829469945850118056577138699980720771932423227856121208914990962382764173424738382527035120225818386479380277871765324977755960900756580075317426315178781319208729872316800331997432175037310760512464604590165133290796461202879671293641857703369260823221880395493459043080566828426585363528691156141111534205714405184119494294313550379214038647491492247758014903297268082636583381039739891101371616353866676342858721333119472330978672474083300357546674062603346594069149261846811340115670648043319602250268126688197037246645111430793405932167833933528650348429158322452828820717780479267397175098714546939766629003861716475474682128361315000575332255255110870746153173656189747460692951586745399391442916418826111265961971232180262583452159713603451430708312747094224254397742965261708395895399965389021346033489650028011526108395508287562085538012822682394736519634674533156672201850982399565704618349945558526177630821885067290901419636819794031563626682647105210211570765009895734387818693684582486423294324729824890166186221560517612020370185922900624449396600365994695982264273268167339672253150322894136536266291904970818230687626458774479647035922480684866941069876609980500809176486652762712093428239557297646106853355990922123981734088773701637910391700658002264345696022790035269353958160980074255203646071573817602611713986522397955782841261918771164815359566699946817411783315102875998561841377781167483078465781613697299637366851490632797842404812511864075569592130130826394997721095076455114165032179252283079745977120251468270543974862805606432569976607446285007675147260109165020784262141566873061402860024495556103024685260621387471354783223671077279848357933802415203525367313868368563357263234643347596060082709725976097569835064130046120090169206601753684945256352237610711662461628508124480004534716140768059625810384494498931052122333544256833609206466926575625792316503576471803942460023292770542463439309449119711157641199525280325777743979055194919291393798856073538511256183840549686516623284037898140331825154198181952328748364919385553731401722287359690103787312031761937288383507092341626633861425115529657296424539020776377829310644662280826745088453995183184185187087625541944624261696491284610547011051488612080944102729962802168903512605179174028997487912485856339315836595354337502086180387709335045668898816596767078041560575630564196383384549170453847851653968224022324017357318568272142884052272672082871365106287518819862579608484742875798247816838798919812040836695638907872825262578028289353805474628044476557684381101494393743550950345175495919439309650805053607124692198709751142521623316576816723559793502829758836475067435110839222573819542165655981000996074353481557983438839945216720398995805569691785478313040090899924310841838200711948801501398046607451845280167036388949048222970702782902833496778014002887372862501887069449996246112959030017768254843644279549545733072200784656563387993546162762694857300181025735099311855870988953026542463817933940058684000828434771183149875786345006087231217474909313083826328586845678384382586652047152842481507930900501164499287289008277370559878958460099957397544055861385786475427207374374445654750212096347522443545834626328192986867127121105085543428421325894957434457577857700671923355551733285367007005498511353885966903875178473195906852490697105146399064161962864085675500363472375727062438900230568956993028245430406028979277777159829180783007107566272854247245233007089803732739038789847513071463512169675202288319052206618830523903045067382382488671938555482156698474654459033171374145480001357067537658973866481851068344311840600239546769696793199645993098795920609856362506159081621310021485236890047250912792182275872029751835770187008466074743586561920982571243861113551621330990003161906508495712856185008514194199790769282357983517405199933491044543687579087312819467590302332134408615132893783071236662114491024582043609871776084295758327468083710732557193863925171396392436154817525229376849971093776528255754525787745983926507469320677474245396172132955981952381370415707694970033204482321135214890459923351502826433335457325376292584739373564619540491680128797433113341299310917332073988446051168616483135878566648163162098111826109205752011153152068262417476842026992678894053037863592215886684974693074216978528221268225532667129116803505819740182183943582415731536361326015203793642431651831917276172977830435000241970947438053310632561116045533784661533361894192888342065516892146616909616799630029055272703887042292435486979848772992979130999547748951262682617279002586261050955507222459111909284353941266426404454711392109146671774463262370634318998679454913116281121478188351385634923767248496756040657496841943197272389781320521019328142329416799346729464991389355045410106926425766765946929038684331165244835072217770428344429951895191152762582411369270570638604680625559180319676050762676084028600084754037079079119311376941327987166635305862693383701265907403746305771833283734291871383093582672735730099668365004531417679537381692447562793145476194894600536639955926717280204984629951202179286753177656978163768970101787256451851228815261249625337386986371411237977510344209362283906624206562296595795394115604914378086086598155955634098312895482564732959742454184844528345716980403592459823588230947240145992067347801910868045049351320028473756473330945742497140070829499279042069864491051888942128352566931483301761329410158075805742390352000796880545811640963287548172921518663356561833761405416391084125966309107107505438078472579959706653263400291518329976003103642613732646498068759309869963223670080603157926212301710106786849344328533924359592463556876587936485369963751732290309787329591582647129596836268285470888923061532484981878590517015862059790949166566416956767301067969144249040545663360224808477882630646306158532201033432279582561246354354520561329981019191968476777789173526571754410170130835201836934837144129518792209020861274988372333379736556108367663541585663823819105457444857272415948368778154911293487453250747061042996939896113473208578420957705985831646076790366515604456539701065239025216444030745643244831141308928805664214980919330122669132792005962897437862547295927074080929784093442184545889029290494234420142708303897786296540587611903371028761435415843215884168670420334674853809618277144616355479870303819754303740528293326681224339867887583432287278484767884600174932251818305729856401777149912918954472744113386180394521292902399158324803433984132966246876720238609798578261952497957876156153722462977316204821667174578695999014507466155960330068577016897503542471830781549840452562443428345166245025521591885984656082614090169416245943724845591560641292271255478612023502712391019894726465066051702736058984850198548124614263283693732947535597423019137607795500261515715701404209579046426301302179757933668406206453312687941950519193695971041503659228438212739897825634821404401029515041765087551531965317015429820487861365628627696711827645074289011047255835480723286833638083593898864579474562722873840029104989881244989438517365623442407283924304950840493704842984589620378214322883865842209749395598566276969610426873516195118302163178410580670526850233307049411403462079883852602763352480857504166580782119439861098137546589744630164827199014096834977350811600206929134628785054484835227767686372912065161861272212316237886313457715721576068537971979294880535037630946864697845441984456820228940559404835812237107749263674748117013928384979734011506572779690556852179451737715025489332066834360950063529994672329841069866124741110803029807978506778469204638687274810611704844245029709225664018479148636193434757903961922313954808439103843272028301354595385601372506630368253275394242499825730998891855823542964153125179040425788420736817745698424855310066588836351967358667188207072250634486522881002773297984275338578155343400923339080762010429930366200564750352164682499225225660613325794744732817758746813703369988755149319362647793893574117437893664877449077146815340611428992112552479877311543311046488877268085746666400879225850990649890228634698562878603169443350205666533284481154475172661600316752674451787847163616430730640258677224556135149046939416371128271626899029960722497568205686210676155272194285924489675296911120990101615333341743192043210286594675771245970879989618923378945941770489273134446374539264800277470945604911126303520594950204168642187533513182542154199891349142178662872039674889593350842614893386234426779968661780970244086371610659019560645516061982992147629896581790567096323524527700718849863915578846997634691131190698026940841066155216994372816025933963621025976964354169231492360231960449981228415567653072161034763072044542782382686894217433316718012380903446348278523965729055095326849293648459134651559306878111205675768354551407090402205948422846833653598982917989527058266045161003794600354860488210008280912794609482520097953810132311895984166904042702400018617264788716691717274213479906805266644151365145522536479829721370099351128008431039202350509925216294216148196571053788647176555468585877760100857105226947032678015350474598938022641617992504594337266176889330469589523906697667405823426243427191699225012662087914827919223168579480140369684913531534676653461730795419515904854662780671953162186015799104670506114505279454777861097600739678336272922472901101758630206788691752331181098189721759469799464536456625279595419160640673329021407380527302616616289366080658124961348215976703849981169441344351790246408022406915275199210841048106016309075487623429610828334907936325064139692882171674870890445844100667372473063918369597423200653695846923653105773095902050581163255426551088304542218563503468662013556934212761977559614059777323564511769848499659404835374941921553685494264728354629207603105690565387719145027788615410936157236853830052696396035733697189095699709969379441034020799470653649332496712680760879042975786474642225643833355041867847382884604477728183880675833760579475659451938372785185475720882930409406534945263106091223924324357224474175025461422921766987604114649341800691295289865120677175484590760976604919855812109746311973561870119125636568115036568667989419980686742954292233247923646777220038986533587257643537321651128321713655097855684960942210863666759006100579356443980646818204446438970607218030682214669713293225978848058424416223767929804168135979903473051788331917296235819596649202332695974721675427299983719605250778246302914336489501688906835419511056625543832684249877749701535372641824439463797134622230306425870691930643400305276308886602667254671311124822332889866728044223706011360813356903814288431423556743191488498813547266201316035432214840706898364931637778903078907403487403008731204589637772837655804440329718645346022635719185511274906190830169747457681315922116885526459866532297099985919398028801355654979692203211156032504605899975242038171667832180628700740892497046866333780614262699268789696425005734308827082700837002426547043595525789851849322734346097051907436121280011863484558872508002083484749622870073850449977300536302143429399424962443932179437401152060374690914415455267891945060254600968689337871278796383259747879575358809087874750775948837313060312627941678405732433797190973340143898562565768559085560793991350313484701784406069900616886854123979402293274998837094274334348406444935876192452244360220862205953422723204034780865449867579630420349070707887460581295099992913344899633145286404795026375896368241475364060451875917963322910913072161797521927263215520086447022859204306326602153684767274655378920629027574937522378177019143267562149993863797349428943784069628755188435489627569586956491367426499168175083587124168655467784623364153059301020753712014744446791260764256503071521511127749322569266508038730452107860777706577973886962257009594367618150900845389736327446233874714325883161244893219194860908322452913136227740071107440450591933195915703937260825179391218361579827392179467261997240349218155032750598184324599362479641827076578574281738081103731946478206470711905523672838276432747510596062776252804304773991445226657171739166954306724266380734922609317903657925517479027870614716126199670863283737408972822806215438135889644856967876058723543276250079693307486637294017081659739651779873666662842742973871527841760473401466732814451334971233007213066560708469525499637282747456728030699278771023742179434340284022737515192517505096014868683970404482884778652680800687687111159286426903940454095038115612215142799941983889781002962094297233631721186700631631363248256163439338024370492294036470132954041204826633065517894171030852654705520107072396296526084002040736676682445133326586644065808779445056405770667721564806534429026721586512023706029704121902156641620112202512350423599494946886986111370324992644105998470214896858377742219496694716803207445674447979613872122924582508106630046166572848733972910248520309465082895429865712450657083387133575295633977278114722655884173510790012567690724988627630944724155638699740358295993374506166414221432379457250233983266692965062863475631274227961688036457363666993753231305338543930743914058271823341835600636108977902758132697038351108032240816311376692119121410330265898544969208291850143213768338622674767318484760958447475686627432363437227096982025511084688163346942375295492324311872330687232144903095747758252504355731921087326423548856791606969347824727777743756412088107168349137723435659983130542243010376367917111549712152214200143486441069736115070481711125349907100121831643496163654158762538948015307423023256541441890669125005570205634939434306710764977415308614074162584150008506774113499931290194125306158364430215605822259752118642447018081482645975605983090849260169523858107829044541176240052427741808139023737348374324435047926355340033096490674801678448713365239912380976844159976963684523724742989245070182831145260598847997843024622219214299123837017302316731777977271220367748233679130693941901752423025509753439435031374202898443999505303946036394181438016064277664100645014842968731028594717359126193499057174808567018130056126735019357576212183338462461195578720921591203554129804397257829870143218405257863367852029833743254715632550462841900576592234879960234392843072130981414906873918285379220936811307233931605585937476059649704361159252812267469202165814098578834665907545559390173174209770836759358745533101668828351371460500242959723989845963371877875174385490233901614453265300237071054185945287988040828573635170384339733213959794263377962944292008988807492108082574782954187211337603477417038396044742429584891271293255041441720648142414737920376354415273969599809695926216492841994721328779898774297245778686489439112357002740216453101998163093254079626730244256885149606827494331694530682464496050184493901904118818461735998836282226026049382205842048349501137262409351061009536826191770102925204485989107383467557013045756843220632691654350639080925057918533115609884988831604183370664342658425156171445691356581038900458973811383684540726639830787028551766581996897698060802695725794028408586289613691109548092551525497489382135074266346454230148862869866465884502172273724320067142363997762391179699106767588602778620784432660782602374009011856191608972832458054530875245445345071530293168964642370850128499765195348195830173456683053932328065236036165918853733430051851240926622345208432142730929688851899468006942920451515642432081592159729530451069132989840323429809964184676814195791263119979980900233246622484429793234867265186744012797621345388880785354188871275826793847280565638624307725653091503299238070056729036225738903963023400527195670095942954324927949421960290327848914705620710886155263221106413787320045710820870932132058272302393376438318077571019481279724556648337593977554797087090058758661106286429577052755110001167074462781802350009349281201423992080056588907311140864486268818092195784879576216744142491073165088297497395256084027368039031718739264121825227253104577341101108207159798587769943697978949085889267800602802112911150214857043909339982537835653462054606680023839514794170452376430804261107943524030429575113326206746028247321313384671096950448213368239136022944657397799499964494742448858285158814405917146003661044279347641456037259244701018593631895571858705869662049085257851449790881357617764398559184148864179415609415962550008592652773008154622050962285666394762069916294805714679859329493658267513193928921332005208697262664039929807994999519727292899960662030480663725149109025767393180511810838929675611655592068213197123432083885399663881273407117650976447152788994964081633432508134912400090750924550124455670367133753475265817194859712319699149031203717567697646092044028944041013868363246103998717359826302604241364048874189797147430016906664878212565877109854720844442601906069936513013204550994388598736846639470245245280557932597834824837696556641880311568184041337544693551731348867991225943776660482361947225467675453199811140395755435317999454308315742195348603205590389298165316268875632377577669881182605308697951623564535976584482351289515061854989717996961004945565236020647328694831951795241905649824936956729649701508922678636160274728588013808442608125955026760990927397073304445650803391672397311481040479436316188960292701985160201385545589600522818887016213149991301879863152372829315397278268546066700302234958840307617714439648800923303767007783984689946248782499079852190531390581206563073496864689167629488304554354172871190606557401543676493232458789135506103459787680190407454851140106635676449764231241166363445405618547441260478082168380172450107778139107850069029269558282216540029635625937696228231055903021106450492811192714562391240254529101848308648070082457404426739269874938639180930231211635110741679575510717553094194511152258616618125832897654094283821066224705997021301427054757682904866052210156047272276598150842263039007406320539476269286219613107882949451725516392820338061738060457462372878798459776836865406419957085629048696040219079857550377392640939043384862751316973398213763560606445704756103982083186125525211733446440225401846504378230160618214541783188661722656417902347293792840503148915989139852550250866356508737873708992644264578081739507689782686259188735739106342452790787566788275807985469435896584023660315103983003888761482031287586022327538396612408678893863748286030884030543790426632458080033983663312715435028638919600194781833587484267692793251137969313129447932239340086439912575815042264400178471644093614711637074258796177137285761088960734650525901895789498623617452986721101559074645454798950696464778840850788216453395678033692272906940256734276669613830118193354560771365917299440809909631594898424778952583999340365607542680311213428480576627769732698303784925896264472266827374162224631817885344683218427247422661039941987255674279727886285942778072367337903229934004365780391151743798309859076284791858631134983020796787811825694606712442666805060823928267452447338900787142600297181706415416807576154048431482335361559798113451387719604456547432547901319801161353054767917435425393986826677907184298575907601033158577412173965123876980833095032550631188596944698863820038472978410292235750238431279446869759035803617744672393523676546650608141317458388388424361858773799706219877906199704875992899750967966299445196643224147340831291705673462746812669078718894649394737362703245967377627788586390724775636297487857059656522723615517724679578450754774746989568623905553506480741594925590064233844719639874445465697536248751514791270464437561731672674904134313111658889471202308777136412553352894355888020418105679839525406545273435999136740335912705940594838031440982177850197283836589782845827672119950282405318885831048746047142719518369631376169552028465687403150941706459717425110198317279711902891357159286900677694361261148428804650882863886690204081910774633465322227708114258332860903297815332305226078088156989159063293907328992837426298917382238004225188867324908524120509661444495661978682203404738753551350432461488113556501275589540526258500172295369666596691524915847923506107164618233523599157692409923016238031792899585055304641229366190733838372359304573254850008610292492189335744195737815110699884952148549984544110516719476214752126467507991723222526523071492279418822899031827686036122223658864440253898129497413253642745987335625089660730364691711629130029951632559545421399793097031240878682734015937083817494404913756237312752645629594378113728461985404072275254926965945139979259801090747375558035203825045495136461838188622116747516404207143063230907451597398424264468936448553225801407548739239008906383087617049261336559107417513211229533038775100595430642170116211745005106524446102272183247558422455615088701618322928359828723604183422715692910803876087359105563045428146448813493190632109826595925618617967704825801000205257345167971850999293343852245213780375936278358118962675563468652108426518276698654327372656853414441083284779490328002647323979540301638784802736682885706653301114998303218361178060995625308329885530455196092770267848760718766058583866868735211974841525136255016799484646039160343928565794307853535549968183452669270027465651183140647742869869944579753615717350371481103315578829323960071855187314174671697626268411134153959215454452698181137906225486601639649913699440746354892720226002175968792120774436652709738100003977633342036654487793173231523985266566998404798033644848079142410449741317683757167510302917688099689047339293029396637037689343128340524245148771806767872536127835854236255018608216800040638128930143208888505556829569851592412630173287562929709570557937051582538214999870729987541025102059225231053324443938995522739966021779228340373072173009275115885016704757231479367725166562678023662722308861703723549670564731520056328450894606499249235363514926011298622850364233449462604235105196782981817724168300448627947020083378071027600416319160437674335237047500392361686292911417706919623626660032814657187881294434810058136770508588540000665953533420649057378281351775725385559572746570343395048685614896349399480936831628212916858750757656044346036152742398323984142588194072301434671944375596085919290390088493891964391753383025397960405207055057717269795612022199611184337801146314410938542299430061038047477909170358802626057994492585538146295087884542469581876878155019886019090956853390386684823182220331023146207175622719273322030057481676342239917140394447887678277857120795945921397897757389140184710938021179322402984972570193392807972873597164425533129942581112977192869549379070837832000550723849756062578618576600965194833057641746021252729866672809006053087067892411481208111741007840051727434295447991896427472064886253381108533073832310338892173461244271455033586160778610191398397178676546070090241499456298957434562685493359416169650274347678948219627606596236851998222304421961377870119541527094475222239532606535516990387234384447398415175279167834385869116532616662710668770579972537157986145516975887350036359560932494806638217145182823374895434667333804416965701847908738639658816317536208214244335414253309927081700892629687888092856030747243893294068280321625082685716161535127351646909949934335168126519622740605174322071566300989549370741929051879999582973762297465152064571811426793956708269898928786942200417493156951551936601347158449918795139586372586182960771195863559691057573814027013930898727522080236028596948285092305521248581801004271885736584589150203615644861792007499694854794017128126914677745299286958388554464353901526706982987113321118043532679193945623510442503877635685331779193502638812936787903522611562796906784225010719077008239778215196305516673971297449600629716908835075868425945562061378361422967830529792602561189877487316889100960848248326043432263213577315124480110967879846900183895406277256862016667878624882467367587274816125287001428561000173708590399785567399881439820554647881079012356777075934994689221956942584044027589548583135711782219240400364871091268247407292496507378065724724251441430479817127173683309497199970891453085400997443500495493578527799854125334508797289532035492479700852097083152247511941736580327550865133291108049131344251106016611431522359911504087694917735694505989219546741458382776870453505318150832224101218042536758608408858181450797457986686376758507143354824213380807471899811006802487218907308347363612249218596974739780532370831987983232368281096471604055028327297841545001032178115786268574198236961277700249987104126368302452434109242966996140755544247424881613664249658472756208651570503990926836979465581371863119807578688834735019324278737499770375011735919758167763783605298659927719396788591219278551197250035577952379642548236331164649881905735862343804486640361148603289450612885204035937254486580672884529876685298416754731319027980657331274278135165360341135614135125271846315425747682467001562796200412958685763268191083177837449057094988936434864983715818385084363507910016874547659694043967287150210198447312880776931410795298193195821903949718418060970867989688492931355121117435374822255270696935004375629404673561912791097331417971442921525164539477734297860701805205584345699951518252264731372915736581977031136431192470324131661156502315734006905548286282953266925309611268701035727999111170890338428498358139425225867561872733922140640580759122147949012703447283744877021147465389167764693214266227479158508800283354430854581874086176373540978014853519714994443968381239796079227650391695435041347958433991945000281989984153911391146511577065153577844316878385260733352462142611869655663678129103942525724720117358767993106235635675507469159168853764201970388565804237359561315590649626269853602197667841569968353462078179135562950388835256813708590831018958377545646880711382708927318184425481355642267222422650570467478081952339729300221648350316448819381463211775154688392105238191517637063601324396692447687003854368056778933940024728766448204672823236406840342154290465549381553278663992376365309174121395802254571507208706066259624777422065997794172614992071241361804925172982530996672648246341929817159320869521241310414097232998685557381384287963232542322351719727767909328011170552306758614097234177358061712775957445423361082762668329845527980563347267206936325643224599458296514112557069185126225059243832904395436963845718102673740175101911627504789305818208033461460274685973245335909182866938490509381794646491504409084457906382830461825033660986321549966096079238171727281877888271467112730551321840888579600998215693951366787783598999318272775919771802585143016387017374869317906858590462807159797236332646993351105259552168906349361827812364894840341132595225179549074321518058999203175566755127616294763482282269102986891560230530566419041734755308216653196165693515043103552759681336397422517096800546713137826147666966285229361950286387138370858116350753832097525880587204889735324144785027297579599216842877253607353657963967883840214771228893490959229913832900491391779213862359357976255224475302685073863017899978077033610885177737049629789559989592635060842200722719580740702281362673488196665229527449186110092330846435975378476585866820658623636113483357682996875696033067035095280241410331495879316602903242802416972008089937473228823816616764997909542030852472530076909085295392425090070487189701954788224980529561263740000411945190609472485989600917935029354671992534119518309357653330975172915193367963156404814811220445319594971372714035090056043042002338290485677456873922049350909308930995522783828677083758274653869769583752682379262801484306233592296101325991211384740550706682440584658981602449518521229014196702096484683079793394913383231002139209982295691484078405282910832193503673656098776651384014098206079756961366111489745028822768603104854565397471112907275719875023623545642002411632903230814262928585521563427495039788490385500982506979034254498183951997155570647233011582813218393816908509896775970218381301878024024403806529692187633906588987191779977049516697256911899982574618769042923862848177310435130239725559346513158658033890885060964514466626779558905301601254637772621691269063399754022597140689596922849456043482201070399223193657019172833492712891700164305839158741799718269405543413528934622381134510934894816811487495622923262555185834259167509583764067093493873018535302544416727926663507937462835236495648763332356293242336399325942622822487121399683969173839276399162482230220547106421147739459465962731361215663097287450779722728532404646238229398688941220180997821128270552459470547286697498255697094960765774197616656772850311543846366679941153938854064579907377549884446644130168271660060847756555429248198067085424222239686358987400217604107805052762395743814653678673243564495146282191536011564046968878073432062133940413205187761376963116664049760988402881609794687539794384489287578536306795781069744038754980896110439274851506939627129894040308099981531891014450759450687492403306278122841231407525283551676382968243036125428862560273089775226041816638637712156613761531333097367278256830333956950637057085751164229044313366001051134582701090016064422414095386635267629484780838925061542477319938436809237306049262961420412366530974221270091634445589933005666779690907551707558196371269263158136408984443443071989719041025578793852603732906608964321424382057541472128984176418835916469220532669988163828750112789696349870615664171079076742988021383681403603142235933766826813229720365939717527918156868603999804157607499354070305973647680988023885123099411814479814276551876501651618855405661492813556223688559320630295890649200077430809205719667613075338911180151898368882707926965123880843996699754509034800715212289518196587615166151831478827355381357082923025233131429880841420443563982608025647038936553374825357739978052754113137926027472117465172839366424657741289671315277082525059961473474523296175242998456361479077705765646468956343064883668023394820557670522511714003896631719097532072653759627974299708259488730856096100148895256298313265191089657501111391341414036459321994125414869299909083853499690356439916124046398534180526315926620524035353531455571628131685344200054052328816977987412248238806569586551577736464783944920189849112145176583547032320334406810692112255753761046400548358651917880934777166809846309071939828236605594148602029296546881581994048829835290652664456601043523707505133074320246077952630078282003696628937050102276892794739384651998305339773925105191568530396628049511617795600370464202017515360198882355125070944710534763944816066366582095643995456713402907977286107703691055379451729971477007280845274133478829854417652355491432672826237208949122416058582576957669606503830054957323635901374911101692279892889322735971953395676924500932784966005459396144607156710304036728820842256096870722740769604993231440428408426281036478620752183437416792344291499261584507401978275298072411488492062459376050859829540922484698058171177626153108011659575963920087444226235105396478878557171326716117976328773836941352491357364822189962176212607087367079761648555368807606799260632680200377720921637038382461543675161038443992174511205727179830397032260088471079453654513566952007138366530073286386919191391402835134042586998466971689608857697158984075625052555108212040818093711185563922463645464464935006514390001393448839439788924160605807706279682787537795619722962079352824568977106892456308764895754245281849941264375139591406387620682393546804064152575281092410953403646031029692163881446090187762393051220264579444559432267066377319648707562360944676705325255632956129024523579024474858242234438034438544535267658455437968136949587775106529497756580502159797565301550618022318560649937741945142920791755710959018353001002792188258683104408977328840604758056119189978604812734220432932219531202523927586725986910343617658346564124386386890214257759958372447902117760067185619784036345268356301381044542085529674407839142235618940355520394510781359229681556427029749851304344109053539817997157627381326606261747059151355699095104109572117725626383785796081880659175551065211290324312820992464594567745334953755148805215402495254033996787941067035068267350846908391563182107818601863125391436682838169050580244545787918492706830197646256583575217435549238686352043831822904405142511384209646910812567335836931297319470263530955041332785962530188022840665435462100535772242127585577050450956650225039123151670754991020778637435803245461954495063285813126156138528423883006689919388918090475099492279706240525247339475611541918248905513898375868190780397440299313780328452983072103612733694105299594128221984471614323038482126513228707695546905419787464258986396848372968825156705199535804432299838275289956536066516039515719154408324394896976588624188703017546212761764277585031259481092497896997851256173847117728112284016202016684224862906903581410533155733811028259493311935534805816246245247588541193039690667906928862088806072258648626913833256808764001640484084246559173162439343700121223264199464875255997495560033620469613089821766390892375065977445258382725726313630887198982258918011128945047500308347722582189578714344101739981715400952352309916231894131654026880914017055686366599374813338875658109104077690157949642351364811127473673539420347058070839381242667464976688494430071912443393996999340425094276708069798751212543889451229425244982223951935116961961846568514155129764940774150546575341269579415965517593908866564453843075662335261796665815803841615089990995660737093342411702155833266408850098975650754085095580728494848952500058536097619817713391285921612973222809833873304634524239685667146418272177690514536911378464405812817787778403629492081743197983960001955282774158101828396831776077105630399086304381758707439201072196866277443434868309049153636016483884999171476502928317969573118123326633711891071185682849503657801371502831632934544436966592736382305250536693294567693908133951391212300549464058848669861628534421256147202665590314941131615678793041669599592326887933729414395798357633097919918402597917416040685577383051663824461172529837552299346468587647523270627191233814559401533940801691588597537298614734604390427617572993889170431383483908049902959509085191166971304797913477943952867087277800622581257566149129420503347014641572412659036487255522054450451038949825033465446319052147423505667850432208722111580581477604324537601125307498465064143695187888668921980472046451400061812960512815811722199962208518552845797021593960338475212726189566306418996549928061808168785387952069109266524166295398822045686852113292520075035530377187314042692231499880435020859734462764732950610877141928806823939054268761900215720155996344994323495629504363345110660087424291176639327911840687487625117501831679060224176327269093367945176165893129871193624624236470713816803091882919447712216856032519495674170147218670827563252561031000838862875926012320259356935604923035850593801701146001138220058853824288928262341420487150208836539008794424080273017547192228883273159790668628667697184508556135428405748748658621761842804179890275849804306990697300022021608274965660148818019996701587486784984422271756953449984873600659519799436335108063945563373567415849049007941709995883460879272237770604886692672875047345581292499753310200514381428674359801468627555439361056257126441418383799643747167385716642063946022721165232891749599061712409432947671450519454671129985832526904824262355715294576679268162685012430776019491785821368112177854137482222565703807863758995890736860908341257635754801325118507425472169377204480808809635502626212818603634075190271877541974462626777846930164565861575025218785524983074141384504768660136005055917923915916804161559651808447487743254663838858654591603593068319983060335832850210093144328569248211210935965374488567556389773898521691041027939297447404775672024098337545516318336081898369525273724658584910474472515762508295781589322241727762157718264055873668586493623022462509857316029362344902559904331928218724210416473747156042991631115911350050295649042668505116439331480923447768632027348837685112869632296883980030007851855698551526604466165005402818480718419910477833799110821331046496705627508372676061385083796181965709373313481410468375285599551063386162461247794754074852133863744035340415466221308923027147659644867365702747658754663746679992171729846248689787876360254785896043892422685307951912730723099644352383656779674510880046484596298061438244898867963370164864303951130384442010048870926334212582301614147776078749891404466088137422189569369397269753882393419274607245109728757524976133622915500249075255343232126600115618749018676557705230759925217134381111412935042964274107315237941828690091416126576770126277595019995688547952921927895782100608723444654465771708994907877601612236744427814175640301419956442717290126456888182453445958422116847639688478322065354216459817404199416183335347687828224388276910694165103519108765395028468739645176243655790300999478667107642179316006484907441778288147240484626360975114921116641058950052448465380966296995218849275201165794657462516006902232144779047452017538156615242067232389892708220742281258918975544910268512086722588087692925346888244706571959842124186981023151436029549332110147235885130901621911537885248560539760097455008657420068466407189954512168173114186567629589165296827305045571931337768215916139809936516404208155095174418175294761035332376573359340947509084109405628421437315328872143117562060321642429841986902475448626103034299088284557236618742966098405195852958908880461529909273706523896409820764720239345699937322682471124885250239364216256014351885319938818739672245078285478382700164512741576003740917069648192999177126744775548012157866555894232045597098932354155571348293849298460887549688785069434657379851240695851369007369115720610524195187995767310001538231130575656087958889805767845338664549427913120312929571979436098637687486270613712416994276117873736985441889878524648261041780909730088169251245225715776709010007231788617985790635998221712592349945939794591164411309781828621454935277259915377482634408055768321347313827463650860204700415639847105279189511688161335945269595361730744980862413438552454177075658669672534528344649021178787210975502630235901181989732848320263597998383111740244011209918576238843303638832280886506613403719471408332741411038034555095663295876726864479973561791895438469570399232152107225698114417189698945126763736069262285336044371420841796933306840680838339216945215366957380374580238315758130661619642340226981565519216466159982225637859988440353370744589851621664169939666107784883274835933386226437436010344870697000053804538942700150998379138409213135962030536672824513292713567172179874981585079643172918580809136631005253102211636099089821781047466006102033668876081512298620908941857502146011995311596610618630529316089514098694437422451635380529296133428769835753327899475353903745311218096442817291914759966256253471901059709338665761070594623200466979134339120683357041071411978301050307872411098108912076934831482336430020246931226737440613018427983130479177415638299365269904287926597990731589880024479651995517666772890828970205749187199442221318729725697725377452527428622179183546929532258289519178134350912254718436810849623525661261412182214810127831836517180592705017952271176665586397620987374910596387875689063486547767557434605409707465387258748289390159515733859444616416819768932078646930900842195610031691044697955675529330095396868348730630271825945271994105607511828449831583704139381051039739017649223814349798197644783127024681137093742740691882035397837316886059433019336067574493685964336620227266640272367713412796899678936926658891681365167427687558325923043292031488495517629014382550998251036565124407014338111593393323742471217099415089265268522646622067130912652854551799061200584989286273299766542425850376891540565589309195327640858508161421712546644046014556295240878422013201697125630288415041737231658188272465848207722642270506765084309711533196417398553346754480999029225750025024841182925170408881035918417605751485052421905300966962009321474647943170080234617504539490460521040746445272549893591859895474442208222824227440788822531156695426869042919985211665416107427347697266957098683039746336475317485182200389370793275064934057835817438270396811785133060123454546459566798527053946888370252058861909523992829151653433464241747238944985292120905458507499286559659483073799928766357958157401331484727591727488095267313519880123846727023971299112300023269148584576184326687196859224152221826197601659915137242228918380775095055822573081042973029221614596946405554638706616303878546824951103916814659196323059476744490706878802158474604959177994179102809487634125555769425225694081635579874984862130766396377122612331035465324474876383002216743444844356055820093637761682599092096397521968409804003732140571906802447082275155271486202224919692482976612852301356307348318326397086426716049608423087358125060268584834202291257438235455277971801655388441356280091736302270725970139036907573764923033596580146163750794537347217551514187258360381483588235138162928528188942641032214195660740176919949385824224075603074150953351102507876645572360150838187453592678953238236652229321922326240023463588344103065411631254624026197770887941281055459692951405423706063448219800469905349614419856694817847766488978482708830167617763293857242422872129384373024911553009086130018036802173689227739038779143467138899681524027940713222526464615320004569689598740877707172442221467998780284494334131946352611183868754279233999575494478718494579571884714503556792371639452442558189975676270583527065967472461286959223256763902215679659299546772709658083017522790158769612494509150263298973406768390646891955685926804272002753825674160810855255546582385643897239172894645656142048019939108615455081359930043910867838843130234444833630292214526100867527192760923352346432239661612493694611304808653129390301549892569597862722888107513201680899764047237743459486663791959465779604820475365631445154951801927616296343951189738328735161685869022623301055089861867880757763841580861282560682179766003453233908469333605025393101678704908328437925856957913684321409418122350918064245705010689928339937076070451969402456222034351915915213054310758203941672953329875950661518367589163823726159656496869067156458387964148155848680238591918836110913255790080287082578711318486253412918222941138493805937815509590850072146303884277486901195981080333764068667879079875698465897475893090473169681834938858978633209538083063977319356625383786342206050840098679238180930150935462455026644775224727776558329181772745933434211308081266879305795362641304212483850269790280819133221731786132088865865757797719805574215625489002467725328242323108697127834000328001240669626651908410263697178960631626331668725474098536249751043055135038316100716878905436683212631190770671504843926160686311218390901759312457898871878543576853290660317742287239177470272995245601794797203676200053089517600615339500058287570531812607528863969070009860594757297681208632410205826341401459581793262740810894073505371995702810376512808995956492238553420297217946962834868461474298475066052720007314826828457188243054103763513386807213399316369166861612421028304556010919459565159862725908515228649694660375190423914392964087896321466834346657164940951710415137324862089256581953571193166431671306236280816244473236614987634553520531524242345313702883532118395952546521129134079235235335710197640673589357877187209677884267071462333302490121038244705975890428536379736512179005132992786629719156334353132316292639186481399565909222377459214194941314958521760270915488768394300480760214335656281287938257242342704379714658486169759303328396009460010258510252487239045768563950857646918374182495556219192364166287270403081898469404710795399150866420053894269026779926519003321058635441356629886406268104867470838167179315122348366696949331983677016127122062570478626732329576285683727379138754113548384901656735157626877928483013613149148615920777292773627231612365525282667829092695727148364433929139725969246118213957165828190366557824006737782162617835396853621975744585923818508661016836324129216877071639784615561410605215624563318966592064073231415870946516755120317093410675767043054226991246224056357471500306472754772827420697772211132167908744421311457172269553323336744093276923877094118549807584231256310217612640438743546643048545981842386969724899031630408625499929622087291494725545900827865321317828235200899546930301248703553638449140159804021930160633781979598598599639255671476667636784175908742748941436181187072734428863730077078034250198324971614749648072299052958724466807705203293728983159702044811359443040988228495199050033900019847790641877683894798967233882796435147051733515151092086147038295644389185385251189096583129237099038484436986697495092254100216100097440671005856671057244738908022241472471693256064224484340894459860604967172219793815669977520788600297890006133456698812434032700762944880508895393249427556050691638066693314602688774663174414423186882253852117909429148781649168480137255813251643140628151562898795210523625309204385130301627033913950253038527782113925015659258538269941441582635304276207630480012453878588853922335778527435617736463422940524542664557597830728671970467915177886686020017390686351016728134881750398945137220288245952573443401111310712471159771113411906591763094621550648026585478721497327468251053292442326962755939770792847617141368203180217185631871032838652371276828452274601685776677329888051476030120211559825022232500132056351763943446954202295591713485957549730492303272176861054489567122403621986363197607363132338848195953069697434331810153892999049585216167948817996865972451409405615388955888366595267000659728825101054050383527284285707889144670130116430308485061248052270778877541524358447672642115251531069050130045559670731840681642127098195896593815892055611646497103890146472547141729325064295490471974550490034989948693309637430358074801137964784640654358181649484895597891096158468854846989113926512630857225940260054602496560901575201709595701203366717692775703671276546349500782017859352548494127363606831377132588977234494773872644236271838784520164843451209552949859994748341248807695269147327562621948286332736280822648204030052036660124511842891528734002482969043323523694719064957638465042743263757142896405135767542946468080382169133821158236157485852749261003115436884131710559400635174327504250181221295496192497621309176650868495618760714525301882654859808255641732662218591568439188940108800459105630591535476743716274984232717800434620453597515866531364690113605366641459323871189768251887276161986967147648946016440817402620932829631978551946940883314594551846270837507054736442475326879625519391703658172887260117687873928504238689782487548452987257641110054784729395120587521689424133031388876802561430482014928101032808007358051023415812350831285811607597035574816138134117829299643921599803898037173753664509006794301980151375997436637129813746912449470303735730956391398851675565826974242248080621989854561672309706441877552618688722631642789260131309993432558273423816963859965630733263656636921309424128699024758770091971998372681552625288936749218226016195086205401078258751344393314221494246799750823965563223946684203336782920821935978293657316158031477984698067056712316897986125626694620896231736111421641927859854489133260652094235973769440186571375842131935923090191724382514119033556626303036421817340425028343820196394009283947585189718930386451001428999615180181688341613352306468606207907085405595884809742415067686092514895894866684626553258410273231616954634135037871839770228764258955181008398783225034514515698545233621940655532702366838376358850395688271416418155393187704085721228756670677196447476656205871868709940610061801784973837952149039795353579597035974632691343997045678994231401450897400678878881736993087161191123815059848835391094524649080308150411301365864085152545143966410573416036640595860295586371910388117101785134031303880675955669893554585361860455818357484066235327378928708203882260087479217428927005201584021535554882134956551136800361649973811488862298682734408034898376478013159030251718037135851922028814617005261221064233666027589602231065209314722998528518821761733966359314466726779450471357325185239408187245287238875708557575972385252330733292661734998404611236305662727359330255720254929054275345487980044256377675639508399418739535039166827755061838404820525639300589594946126770207222231899504790001165266275368819919725841882316752829744327382854435124698524826790114276011842327308188806978900145548591348643452327849570482261295618034374931342082395696074373299596081453034227943890117101577384675189235121959959916370179518442486244724599769341868131624269710180393338296973093951678618469474255166595440586059033448366239777821484417522804078564792909099287876249683303682873123723954539219147121102865631642669525538100072793380828680548093826344404672429264822538701516753449029281671185110770195288893791335712187502476302313464545514486880375150884911550727896096779252030709375338248779273440315626833009790940813913263881436699740589212953875574824397833163898468140512653543977407240930862589559370792369597982336339894385990065448710147012582117112596299804654371424465323205245833505186930953228161471335340060912532956484469735647765137712662658577863841915226243227772800306255389352577156335262299155464663617674433647508448240244846942901593283346312791000765893592323329331775459661094927666098785640970378120880036988519000483705182656884250146440965083284822913776317520977334048557144043950042908597423665924933522560045725057299816908243053492936479444196223692649242903267652242230246612202826899783266107842545523569398932859699669049848259647639933135917360714106673502111168557875643941579391318139123372204017317578937363517371637462327174123825263273990415408411485092107317571152917833937961388350259723018254971377434556371038083209443852711963629177609872189911324598322580209499043479046211411194135308258669641377419526370946015203027111074320921905424564366533083251202633600957311312552819309407000127217504280421992259748421279339351912256571407672934770824084791540284798428691499213731252282184219583906758609855499831388094007786094366087242263981092387567088543539767886393053100395676607219003540767029051991931101676699524315748904620772156135022994812289499417718338543897572337407226099154161805900339105403327253485749066863345041961852647320417714794894870846529990695917961492044114013357309237928042029263696700072445991517604566360222811919809646824299576931412684781938071753915112316254362075413156417346579983577219669389158796442541330354594097256561910913409256293236170406196308698698745364604403998577989541474861519047126010944282394495750708268083496293869410246741411406621902833713599471907178390528539057387109894173232029549097603840442926171428598100687260152945746377046542343223226326088174896781879866888381886428066059173842125351935874257481227938545809963413318295892947376764822154466546706407238924335188033217221911536246576122257808040914082993740707183204778158882581215068734691377660144743079953957185512808548865151703673910015249947385240861525080798454189483732754201667165832852166901734569813550493170645550768689392838409499972206663264435450280044378789609239825047324186385070830825935874604317047558698377715618579786669153277700332424856852942275442206890169141043939745984513318095987201773076117244404761448631606083526858885421336086366626442546295877642114669049108547834526772918773267434481777030375236996609686503274742371565359487541443686998653720080120457910142476763262359418225194901454541817001956216735533075869227599171271343153642267365515445204541263876643967756932307314188233976307827576773434832004180717107827224305952736134667343085093417510792204296525343093259495148789893567298058566951795112368982150895789555773341547693959865701935536988578944737450136680734146324730271192755709158559155878584797011697030224053498620352590862497650756601961291044013814415287601993139372375665797540880164748606863846442735520593356361545396116016747534233084580443216017085124673915310409785217208640622451674926031785957813489266487938132082128135287988189781272503691732727889213914851307143611538523496460844359771840287194737084071361214407767983524411979076973656280544038765370575403627565702307435972600448643250002192588465342066085727279575837180850510213347751353018455552030502565430366045531238817135418837446045162390374964160625129308941374664186964750067538709719662683153471327598088472036132270953190381044693155443829178941799296158863087258795672082117645729726362826767985532308196532280499904105055036445297950963889454565413620827570466650140506997341704087013133696252420656937372150470151988951542925185862868480903807782536703665340685995609377424454730305116085599827639930195091601095552463499707389434211196417888151622960771872884739934609226855676341174387040881570900805010314117129357762384271902990499834402269564394704070832230728401738686795755463211159376603310732459251013655538203375478222038389585051819095565990010291851047819046443399279624017250868348701692694479048554871744698928789172437273051294093810532766343018300740607524579136041540008869088457413528210834980086856358888148046770582729432834584242110832001649207407489656460118235318833830423499406644618046263060965184372094602084198052720488070035226562383289407420910370911904551835489624881206071855735249805391914985523730326802900446816960159276872609771471239741520998758372053690421685861216868315857520735954484559417456000313482543416259179815483794745492503805261847196361802704968987904594029479370516807749548534229172414193347648548925135918544900669572126718253389225026692265611621062398333701453337674071526483295399965731323940562886218047974562852780757718245082197017855831164453604286084400779648773871942408627560734002944502396957379564167029437132270296203273482779207863575952159379179913073159635520422500679184237894972654713043899211268157280734504303237534988505097658299111737125109834645793634774421698678304012550176176187225704359579438112947141820917814391041441386149648573653085809565257582770042893762421982106782589280374337970881888991531676542839101704720794408843823536181101511258709169411390696337046958643465928911884627619227016963045870440462604235554759206338991231701859889194025411255242723732081861398569385968323657128238794440193161457814364791017686344154693621221019749526028989869999666169735494597523778991917825203726008817485660719571546323270833703467612536857987644671630939833260160701214699183528611230941388635279605520675891515166056168019314349896405403457730249864099741164255988385400111755423864253421091503693954440645695098804270594484713712967974910944816238167321167931283109998645885471197146587477295843806907491488925606165745338757748296735496304575305955372623109148140085726773733732730595529136938557457059290839667998993505694097929614664683650758586499012770273868687553079654589974110683758358150261510510008528019667842029492199040883469706726614438470778982836047897404325381017409228486665553708723595142411408034669054648295804309813829278231453913012650461697021944885628467747177926749511980279300790720373886608397903208685011623392848650331167376445757127394405309941419412606978238500157756136840248669909741319522731001117371414884796269089273542832854249443070872830221367617568236846678683122828996364235988534796244132030163306666331089021899484053136931941648442423172793997678918143098911082134172966019274383413075380628800915229010811052661835472238800064726814737223759815193624921767010550146454921202638396095619321877601804895620350399186338147342352146337080852450036922391559872106755306903081789357328170044439699610789402967283733474372658019109749492184325841667172667301108889957411946506818680067728704859435954236765566899216987583219439362381177431592138939123133513993139182785236870168986030149030590306659401665837085380851736680557342201882426858644240469768297581605840916630954625109770783968031996428390854006099755902655426555972733037083340660821510742619218327914191752281814245884841061184321976358156715754699820742529348279836632009126035943139955958110351578083256506720161135611938884577099933279275020928236853416035374512010581619783943221521606054442342695954262388719793071445427430798753986865839343761043685083794849108056906725461497636672691772208097496098329140274242405613953496813090669133926160708995529160797207590004434232933156508666292241974488924074860007476829536269615529494283862979982443280036459201790558875911858257744754191938812499861875410034644682647826895829513234324034614245877616232067040412505722250718273462630821170308993445811150753229660655989115150164432753330523296419114952081720575187652507130097614171307236326132554581579794381064264153051145760104421916504675270060080491576762502733766803323069921330423273382582501413628445178294597528888293644453247360017245721212697544035055296524900947330477352376044752780525545502191867466970106536814134144970223986829982704600318624618528439006604036664689352792707222038631066991711868572185130269393847594189075701521139956321201152887557879132830969412382091611321103875713415269305895548424836083833598270381806950673774881638321978793339057040464734791456160467939360897298593353412487728999834413912596554527955837627799541484523962010012466813179471268553331832260430633090902237071163062973387295977196465312156258668276819236657428198232092066609292255700346071303276089417548789207896876486165601756918850963344098680549030350390075242573014118464601858950434910696211035120414190258024839682698994670725723017531101843141533439637583913792887601498966588111907368998181045302529330662207648732215069237450052574613943654182830089178204862396748097473762047639602249905133993363176797374407395578001788823809622487471259135659181151260096780829015848888025721034882895327795377657509562378439751597385379727946012884767476748304949445006191479075503641036712407592202764259483259115262861615617772949650926193459628425354796388239696068579048979476095715327037281365343618001841600135251996344141215961395227436700870322171096325827682640048053305713409672133201271533617258473600739910977508075650453990220951370226484724207362363834977354488559618054757387677967442134073893034708588637626144560264672088848414780260995052400150104114837257213243906504725439749927847634877447556713906339537240632650733924462774092476711346354688098635466748390623599274704883645659057880162935955417407516955723010150006463298978397348209622437160947927508520782325436086364263703349394762429056684634507143736775905838678114282713468035796454211530886264904372639361546949415108381273764266572997531379101968249010648423054454088602854663989578320841184853503836682239087452390366606429880491964926502838740774031663082845568654076501815646185734794719180094928300928465526420593896021701144163839850870180805625062931106685246708124335969523358679716779209176479639899811293153961158686545761151519394262064363906777296979529362031647090598372493040931807194685760456304928586888579232838315943572910639325568729571166735351199487246436288067703357446849130937145163185638702595215694879055510302199728135974174384550780757540807182120794269280000825002637634123383595792359286432191971848183037747698142370867547116112054685314478875317566380098589174676966944534101202355879131180749899834697961014826586911351717925281640658143338024974055510675204604429162712837093485812177679871810678113994358231560915924621340321520917610652234439230897548856442057954220040590706652675408184461963183947780818146787306841248207486943302617142912363803316837484147980737150196359258163124537805304118548506293660634896862826995387830571241126424061303310373571148944170525303565840759491286231399075076006815039935664415555149265720799859073085563539038746932390218887244214145755680328107059282643993236837936138522900440231660589294436297267180019558918903494924784056778704914970598219811560610860403319938575140917800126522059447147028879706443662958079568622997408358137545496693418080708173651359202159191480348661838828013403657198464812735084752437047130893518458105162878548201501816279922725781409175959436462588618860374056891901760964295651794998537350612239735623633593573477966481463013418228146843593393357059437335654927066858709630025857506809278770796083484623467275189660792293521769225281356784568970223998484777847206543656688150969043334530947192974961175492425637379180759603197802163641183321295544306218619183316387869445301538150592666882665349177001259160049374611943572748723280208673702895488972598093686818483593954889078148692143541468036920396367933162549230782843444518452565991862816521595974700679427153079555615274282849454495221564457423417717169100432605787993811139928120854972159421297541539751222424061450774963297079221878824955154071644292051005121875773225298532666436440560952715625779535232137354399933286055396803138210240035982400554624671981407706042002307032509424148219157323555288843697267343132447289693679911780709313871183837496510209927756807170526716245521605349557433780771343817783555026384932467089272642167952682778549090165900148129118380409385862266786221387424740197076041068643063833908948995305566771448441523105497162626357918614471575265029814648246273436547309591206187946622232388958565448941266237780751776759244139339034249011857932903955005241837934575629155901635852955500489745975999297072584442323937415047425187176937201457925680679547730261617860085693484945753839496453544856990538851357293695764673435776780577592985978344297334889223706571625408500449804943945373193990539291439187896709322598779501845413907403506372856571323089555405818562468836569027104367497178741266454071963560717930338911846671374013717095665344115253953935396701594118157893037953019371037563745889116626672305983951710839888742536637371715088108916260766199139228342440540119437151844407058024697978982468774626479918903153029100613477302488489181269959740278394608016585839583436417342457170912974765990773538611853917165526535715834665335664126486109999495317287939131238346657852732931664882795720642281563751405157973147059466000323372873543603811687987021720472626883859588440020538892108440292195196684094014714094610241023120183545797111686342074162637811519566307699199768431394097418151985610577751669480077713201336423532517670095640153692307670681906928730962799032251725420745085159179387159226174453293367185868840003017185498166546356538544839376413948552889062120573901611995467411780453631572334310989492177892092920414059768509135452641398287989633005121890772102514613994402688635399991808185886923515305626179746364115665478389018370650627512535608231654098279119366966299064923001559983556113761791316369168616753019132915165057077735069658846349923310583014659513215503194448786510792284613003793781182127590500600006371251864390815965271280983548263874154015894770291385084656396028035519793187479001714883845372738488623451758677360710930506262673019550726567096512287711292619842547136348060706369033757551979390229181846652039129890520057141355900889099675286641695440636715380672731605326849097773107052787397297824540878312772453147826009329749446308222121859894206885613760289911128189612702216984637873611434817776740484571111576638376489435090338348272215241207574404049280541403431605543358078902002623208455976773870829830043515147705849630750956069891168290176874014650571572954974960865557750865758360723255810957134603454069450519754291934760455022555997572574049497034902721188373712199453051935530568000881558022534227247691354601285503793694170414845501863382627596088719839219626369451270285370439728338799768977332294059313607517934047954166558271657492508836027792477157222913881554391830867893547588015902712334249343149580486558122074438165912081133750333204273059928034277613031543682054426901335314943379234198986484286398531860708235100994261814119505578338153051381283337274704639642258569638959963240292876379737715997660589585179440014112071862908461292444413107666351940085415289111196159501073898945887264366135377737561552190509499165524495689990536361339800322654415171525471665657412383693884181323118179199587446527763328189605012316551559399399918197074255024744017676652301272349469196679287360361627840519044305418366975230980364698285163544138479496051403207855832413820918221057571777667220306038126631555408403763014681377387857386625243265255689156969479802318782986393834549558277720707432115806182545367546489068078520739671176480931777522145355081433730347224418715132606573151673896229320963100033373307702279493111716528052971227302615061516088855898228962311962634031267436016006179759986549566683497667312736541464386058095252828064073670568086120721442677463776058273511400614812117334762742739244684172958668254234159063601279891856053283946275121280480250847997157691627316381805675006688161501561049747464113631018141891297209787143905530786623816466382626455892510730747141135784628951216903040729318834506353044363788247003699000973913287740302992170054220417637980041485154395903808163251935852802563133138146803140659882339624916427924278497457878085927852531937973480718646179303927142475961702343891380395253690216237684930721795626261049085082393802639209106386078833256240101703129942739285099016959540887710183698072094840751439239641275845646369718963086011477268987208605419600274863076330637237820221255045810501625804867428790828643422301817581143776053215496213932359721250668608253193870288385203636926147566517250599109001903541220050480149230780402382283658373228548458987344646774753950063011180483496368051358801353452796947374979623665636165505015389700983813452373034690004821908535971510438405649586230833807855360007865070614010177058641042580280729320974732421891632423266806234477893483162977963226678804921911609872238792164558391613621510901176768505417347971026371108601780672244520063471372940492515472549614273726136243971666698936133408003226372374575051385861017253164570187848625260910847262261247985240406118906347750386267621906635934800778987728128651604531205418424652311843018298325038650021052276533238413588288259357649761746927099759445880660200271321010517302162720117563838505932629882443709675929663979507719388570050326466203305101163608432048494472103659593167711971678947102563701403291393428127619880264318117825141386051284834677699432816578145234948822658741054098994649223802689560433075299856341308838750492705793114767844329211272767020782543873726134327568685136186556821770016268078466275366060622499920133659453976219511221706730986512860654686235295241385011132439807359430995848178188044894652797211248157482677620933254857467281044240760239884437229288729282588504855096852875440076797132671851519595567008844743974350568958334507620557206289048651350189835815572487131914548645186691353285730871285494123574765479245847976818389281127782768127031127565085956922164505017436340116243077584518721745963749813852977184236014986409043375869482810003034676424495428443170131304882494084650439803284085893025711902609907621143879707457425219318691631904589287289998666083896222524686836567506469465242065758950157748768730570363115647927785511000620810383987502964007962489304703155919360004059424683779852183166874558996408909693076263478530555008721303279168519586152405379173989954694218128146306697073787783382548062206692024227707619261365711411151506256242324388153935207362345118263663281697217032810801478866166392511919424026038641446794845476740346199723067380672558628286048979259726269807143979597385970846322592159943832193473175045534752262280979212955300908483153937461815421224762157255224094697402681828082187099253564657940768963508373675649340480961226986227011791680638608761614133449072710950473853909062778613212507307959340335033280712757622430790004729273561861152046960870582505271220407586609452367107360444759631465654156531530606170027289853772139652204155418496081031857390907744942543118603510385715227654257723902313458755665905114024750705695623035803016304827589925382869692608841431733134260158692742510766579301184518291593771160734845717903968935271152304433187170929682754584294353508148325492040636546093247568477347470269039522834139395484041925035236794442535056000693710370188456207263411347136834057288638615493070220134185071099134859244795822251934691001266444746265499309888252298443439495089796769470059208828514553166352772765403028469319636767059419453229807797296651381133967817357587485185531935490349920470485855737939920259243403831338094157432534593891211204230153535495698117625447827225435352905558452379588565724866609005327874047254319319451113829788641763852791914572403689735788817730703889678309953579453232580845485685224933624828046859452399050999796506387241402870245039618311951756522139117446502750731401191399454030836631163577612327246975263357954237776907063885110881790720122687042007463003938481793310078310105823942030900752042689399004218570258899517913169893884174623338460748648108621495431061350954228371304787029011883451180656428524867071907742963554346607162749437357386736058210522471339984218906406169683783238507502882763101090591729577931593833633801428210531568819039780370648646682605046294766732372652164112816162142407228683583524259932828686281510194581384792071137599997993398772713013738468520298407258392229234234493775051424800965389803980427054826656571105850939111470552064122327410354808777481412529662878212537022103828255454078799409776684868296526421871114367983203110249337203173511451891915962985074456885445718228428215677304648965895402099149982418016810549528647370164548830295982178053283537955829265836742551718788463592620203871931566306832632184305259716504945070971580339480032620070646519620826724532064747275253624460159328305780768368515404780894880578079682080912973751517784077817884807633948592598695715176633680120085783283130012863239831385945535090069427675357863827204543498215991364475804890479358159272989795616221759178497849250556271235432993400740708028947256359984528532615627087325133299208781750060590745996856264571745480598443687236695662981610540130171418698539626773591930357764871679685943231841864543464468433640633132822988342222936490469933975252466715536395404826083356110385230873048009825193983756349466948076240727871328535495875363035056058438620088840954147617972883950333880023709329005057452309413711461448900094336279345455113689624026778022317167189098720892712320892381355484651339330658289435252883170206799819520216377555457195534058028086014628129273460451361832857577621104818897216853839039952484673989388912428146247429284081352499143496988774587223067817403712020953473829857961340537034421957028668827969921280329590161695455452877038561763034669763068371446377447777908627482668941910485254955302957248433808111367310735580161734867268661788300976186130746736767046737098694054254358250954221997943511857557765541772997650500904642544673675304314205889677636835645153160446282436481722173334990840386138977887091244930621446792872848568714827251523599478809662168696248551614071064319221177292864370238266229509831740031935467822139606843793438426953125143366602703835584940887015371135669321973858749033806674374076946355096045797801949938054311000993044264206704995576961106324117193413541897571305143151388054485080027596342148691261807492069796050698811496723867262254354572939973137973508841850572257766074836804528856694649981483761684057257068660600382830421242363887562957656063859904526195105907043865862681163059600374044645459959013712081745363898717464857069965350113199282361683604412607900983736851861430696715355689839021494429888769829670636144798169725408516141512397427112257434976444566534801986211891314556861218357290153873783601274182741041394051649337438881887495714171124706025766947473057178607967242875479466694075433222894817893537880595132645124914204207692713793688902942838795059177206501899935461272629618021343118219458772532896698513770450015981203990736810614667135604166342118301658956076329027076939562256419805771890803241910328633722198500956124343040001870984576151664031089949304827022179279069845575526361830694248973458867461471671157140124278037555965333157452040829334295887712094450374383625463926576444864695704427831357400256229340572156301355447838293427473988732017698604304234505155966511808494699274870450745158324408945927588646871455715586453447480087840845432309589970589029243465875566933347896153623113347263393845066452804657387760493211946463250622307290242234602160961441689317551887082691844330732166779564198859510341066078428905040476937529390742929986409974827221348138387464911162037353822523142353849525768325744059219829849842153255150536984328756889955132833043227967752854869148221899780741411781408529023587504620323927246078289084061338457381064224975831183543191393720883682217556398595715315045149892190673086419371357975010870118309495344379266232454312486873950089715957701802860390881266651618295769019474971194851641454617734694462989557674972906153399283342826849380380916861014346044405252320636401603946241108813970476901809531155781478571700888777236510649260137553028655860303229916785696967329900550872495355976940805490923598481569763800358045091573543629400062537610148616584479348518012359380043414315985030380855063338147283913672548369603448790260578986284880704887247896717063317722079144440290327324386360057046100030753407258636078756479072444801252876364982992356311677685948035614477381453600812677132342614525766711712578948642991422634095842210690343003933869489188099650995926117816796977723053196542834533484890811037521311787629001904265225368175081055599796054019196573239085023572219968299560150209278361414494651595996198452190108019609911535779184116904702501856484527145714743795125616138311920972321743088048170777264850682295347350053242860170276626659182572183116163643379615448506288322903008941423442310782372146162495420982217035551391763748799576300976592131927614206240613424810578796102092138009529289857757610662518885962389108265192623423433489003650614680886257142455074574139027179479755884307478344486450726696073560122322881582368764884530598941307642697763063610517335482210560784273792662011991638827747521592610631866733868201233973765917585416116054463417606024161088096685437585865381403622337793511171326006819880910085725923392532698538057714560709629225487492985366412233537157482682365236210836551304902281258874218944444171941277059921886804729909317022012625338488164201126897948751290337757532111845402678041206594431055985658674779697846196382986212589659157815058430892258264049011120873405563591609247893538859672516897800588836538926161537191747687758351059725613105087381015624896391197594937416475582833090766325269661594717383690646175082745574894437498367407850799829522399069116018482616716104229850836409815024239562236785284444463675503642637210625327446309441979602287001196434751153312368828023425553049862101730924131260222773232267332421956978720442780623026092958945825213576467636275578138806085265862251307228133855012608484279443752647926682303458499610819909791037452375075671849835586075924616185690856323031667370630995284011142968935949220753782386208956737354068164347387178863984972940358664527804449220567872102593103653683442179763414297073319387550900614840611785868316815244894212502955767071187160878461118985349715973562213578458126711552070946104430695811867817991656487935977101626972747840789404879709170085100892653440312836490754124163512204411370348207009963381050468882209882953409084921604381626972559884312137949724064773944372006494791182653878835806381058253782030248741957551884118019665139452817476100136532418874225968318605010470205982462425459804238629075111808195684862107461505469206497946103208279880840003679424215661441741249994067663765964169294614236523804144847510389615189589591212417437478956533933553053282533173702011279451963486391392068322454907625142314558339758073936352381540560068214862364383288704337910995817088981727700588442662972647418050081336520558002310719330833404376133692096156530341358901632524820380608123281706157043451421187313846538640622825611227934929324559904498223525172686422910343334170911720626460941599887175739204284229574899466951497588972888232342013359465266697134596331110836696049609923284622414382834375137013510395891937784420597741527002135774401366694421609818833003489985308518098707272917476644090837641053527894521164896413116226550962420403853324498399665934228848289506974675272537404488051922430971306653177287555955155067403331461470269972845864528150926195007984874692564615402265665528903991542695036145716289194536962868688407545254385079760887639651690706359075798513845553897824865573017915510767143816502071816347165404820264638620371572105260469569810085089927769319556190588267053546407524222913650312525180079363694054333305235098414122785657082792382337693574720033792041730328976866498896506647447759480164978204562653726395045940231132413154791240393755734302662635023186986328569769124965966854381311690330434693302616398672152791978500116130077647990724213394717055698961527909109480575210192427136284421861569094215935899947656409425031087521462513200730294458878842677294433104434934179865953866126649122409373647435651164703421801253935101259250990110915327200877886165265811308645206402124660841886070507562641979939398887810169235304569703200308125457056691208317561855686326885001930791171926128047635732105852372862202368191410529025582178972403961772801666318062282537934074108365699443045149043088678942687549627697521802822393602929809855367162551548259017971541222106299227495869508656234883307845282563739413632729755211933864488748075079926584737594632673367567314191693351199625044380386049688627080559821542157546906234843856083665074335572483176929081869461169102703578674170755060860747705955287009354358325637470434479857911527405691231364875269313979809986561631213532173102400678612576487729041903498580764026829478310690006974169295625097263114502626155354119689228500122372587338645385206184138186940572960882528084588709734035212416319192476466105482914141985140628002680242088652378615901533530648235474221472344318170910597262116652278131367867548075894224768726921203204490294626938643107546714432190332753290049530208653148076018463036053362371025833110094060557032293983068921665796537171574386370992330338803141618789831099743076553165751790754721597167556184590419337895238752721514800994050743147952701003062203526092947003233811560370320847859819326115535111122759666900744910201338733985408239610497497465025045295657741865847343900384570751939634363712711474300917667192439999657375964290106223797885240613799378363953656223926399107058837620716125688418631910521514728329852435476674998831721293687192723276795435800186997915303026649327966967014941003100938902904110473170663508734369893301383955318880042304235585797111119585761282528971085604807157537653374286593579817951123923261421538028825933993616812027023021616528298628228278244836181652611629482370816661212499826452716179438733353791279624452818657272842214945242663427691425850483344446878107723586781611994849998721229490849149165427615407782537968107607675791415067860659527251458195731048037344422441902753979287138832078363668460766940293344388059550485850069794218209998723149235600870386611162059302335649875835300362861840271404199513453932247116486698727904739562465608761986112688464404636305499592086558825998585148096310316069250551175669760314371901068059349705855895424661996314857726346986077300640489736237719875885374386760811025025966384911789478622775640495238154744191851010010593142877679585821414786259777488215999840225600419161589048192056034166884434872306172802959471407886329018102776663818158444514056357365251143281414565825456929889343760731817794481190433272513428166830337898430501791348454268028352153273124100028145301065290793536141584177809768165207615088903384051581622682223562445063306997437898126288053945136239670060920338217423176491183554050876678830776144214601657924132180860448419966336923027524200543317442138488444538076333332400458312342697557367115383562343232923215636019650712959410662838452619358581542801642729526641941921610656401068724599598786568559063205478178417949613175006244977004908321375726213404227657283511775420480564185697739943832158828976563393346211754382397064798332800741180118255381630080448862260037898317279527586275601889994093855754194358173342737238753309854179304737667286491759476203648394703517269568397623018946564834589672026449385062796700067507086799918628810138143533720406952684907646337941549707424157343141274797986024918281441668927574238001678972082172781850112541487743526334969500257023605069859485576521241543952495176758530555641354384066012036714957569414444298506842342146421944562482728236118347957918080169201248622402689486909691317621482620045701924125921358701092739642305508320355599037983527759132875585174339459236207907089665248613721760203636617066484823571623679743470519714407454929736725064428374101727727141385304025153910125411663160633664423861577101802918939347166833009210868374670211764422511282333764389516905894861228877896511704126485905145488904524252648854095562177509309301106336756328542222761675976375592252754039122885358469048276793502753900637547033013791139376833313639059881136570996182101285170103721175922974461700027153354192277491784397707378544856064351000580849119804557471189306543717598577642924583324445875226348251390890957143156377358896531361727831409621088556882480163318308718729096293286047964546418280025334263437437508850539172158849666308370342609389748215887045552353211099718782819314779846293663094727194258712771662394342747327745427161349607376775489127812986341401248660024075500194783934945137066722413693943563237247418747071171747654221896988400268234587340695806253154087333451569899794751648648540563913227082030716083755975374845543776761335297188950837813888328768176063916321804839105474930198238083275104716404419428302257467982146374997868397917158482051330799990874054480181452683881460124791294447524405550387990095295473491476767807392937587802564374143263462026963943806777815913861990329551510162709379412150105172776118463387214061357684041090806815232990044381401790944149708296333281367163496824483124761142685468061079523271626455793080825501870580076196749256190950000442245132017324415280038466796550953211203497425784268769697765403344548855955268631648184376260409707038203674219240634610846040480029120147956806168618365101966519917924816181793858436070594531303790093769218660493110849524111842192840082774460865026252786831263685357576438758218479708864950216370571282268210964533030370254636231646318721159455852504141971216879851876107106599527928639623149833099099476376855467720633188578560038524714705924748054555881302107859766207424033441639478692418868218067719401579755297082898994542075727177201161295467715097899918854000881756754082239858841674502223032943130291371768637978187026086518485463649793594940509023286857928634791792828633561389481741066358749025645229012085507063659651311691018756641432462666848633155422998579347493638295653497954907401696111356076444106797147238607177180768980335981987082615719712865126979824536755636991593359791230267095322711056964781545155186617740005949637900607531622692822222370367820986884821199917601961964498969082273094402141170260607982150677920400788986871439871666583891194590044958096784228918740861626597958218521551802901219425542415783712174497372157952581629331151719858655026711419901416169156735253999290024723637092383372495970975947803058870215272196657406116896334481056302493927505107450619286600556315562590196268654614360370348224692815827931824128513465660871436319827015625727717131722731193129547629616445081986239394034542864455770872598048882600522142727548619820968541075854021141902152960994587444030224142789357091040441994880740130499540321383042448826095694330492175797680118510411940311141757276811385548814855407366290731620287268108725490356263909584719965974143745129554880853352150616351558457922155693420268515359539781432337439382760442467093803528509059046613813611290319951787981002148712395997462885183470343890354705390628206475392799077451070376801073997133043744803957812239005980995285687954256389232032009364034954970419056692310803525716563666748881425546151200733775916312255958106252850647751502206602743913435094957655189324170876325226249428077800390629720565996455324751459642539319136336595127556416245020952339602144023875263221564442255053124277342872300024003696335517039901480590089896724443281248486916021161085585369865903484371612846002926868007047324841388757448661675042699883120810827127781788301254360346991094555326332520069001913056994611707201777936257727411006354627477902885646657437037351546081860760088417140533953139583176882972347684694683770549672112394995564309984203052656381834411514309585785960248892303451899282027530860501493476037613510591331388309223609630198062523251291317403595058285072289881433197918868172159439990545833832548107695237197582597405821178473134539738109275176020029238202745770603592049366674436588511656552084129145549198211875024216291685897051988195782689569078739651210987430168777623331413612151980174908141997049612208677297167861554944163012089125602881660658015549308976443349641916388421362905322241447818739898328684550872912506665933757116096242604966256604699308763591034843777115969435689776241651277383969587945479505435710656416998228038563243298792401278826760814666659552425870109773254324618843016285591446966801415541544150644698760258869567177887303598037307754422542445004099478217422443038638028165160931905044645276473175859088404703153856348664131651245683059094755116013029617950231567628555234664216600265776614711713587596443727720665287471385420520956282511217120581251960349939856014167834032695506854931724502855654926958738681198320446729245722697694068410796081139165188002510268873685992833113575576111091573890660163881985517335647788451706087618812140021170555259600396463707072044733063842580864425306834496691837459478194728891321355545649977097620784156830607892671426947316625604190756506572663332083452229109271412160886023039833788154391786708439756931462052551505726935735421074646423779168426535238060745693273549028142658084608742169830377463250053099467166921721675513380683359562474493089114618914729375792891931875161351838104972537468696479175869650495062130288166799479278918033037443049889810384031740096677036921845039562504975456373770565583662892900450973256608105689102939232804796020204817112249830059279481224604270147556689982794013021157516233469049014858627401289422674647110598016032242516568068897134469787022947071088499485316437283239618601353461117870122170372797738240395286053901579103402145668549310826408027681967086066719744224596527989005691968044177509241524679454149443938548462401402559613527911371317021341781816483898520548291627222533080829275242907876149861640040265705347702321042296473064567243970085808550080164926202459839708828423110376068061344284613884111341631007180732945045510006851173046017918268172690673934633714159234152310431708300656111520388583939950412744326130760187590240249242411842643007957983817844980564310400817355269564624388852727102422923558838175952227295093422338728109215300031706871668670667467583363593887298801719405476075790414892074670093695235126701680362050524706761480898356981883389271933646690503986910842482841573613962819039130104467924257308643946121828902738704651635891866972502348062438538534911296044805691377773611908409703515947596027344798125582327064434520046122483786461931486591088381094194161356078982479928752528744799146893315617251380068240038548459469574387762745332052345222012120763780883033036956269769296245902969642171766452655361967585929737709528942460321747447669157246024029161813001059706436878785803183598048972076048457432501907136964097577863056563384182540461755691391245223304158888437084987576832678829867825240825916756446161762507975377037900429989460089461357724204958951277773245604184956548941118840907816031947432194543925113289720418128869033498451640968257821932851107279111058593065062530720417426758507144914015727596894370199421631298897957169659472330781638940259606997913100027326039998615911359721080883746376473625439539252338150427075171079987800823477454861631884530531071542323546735843747512470205516417487655524857519502479250486387266612617446439700607859094949057415591747124158573278128868798239842222933372514113273809141797228255475687063221960618400814193678463710298174940182185868150780439604508467587950807102723705192250168917024271713320970296796152631235358382517842063782184520474107058105562444842013382418133641043968969810449854254264572343358113832325740715835311048943282708431904178227033044210696668043456268657034848463960906807294658589281791774277255777913964468490354285169437898380335179832578707030005676222177756905468196130652306726186061036175056290057564782857701410111205362191750891948054869238180077896300581074454601921647196598327361191791565658205209635530223256372465037690264415110277439865420820183502447036436111198190628486373858538951690258407669314185798515380026318426668149120298324185553526057568309602375607918218935277759262714685988893767105498560873160360942630357330926954443828181258121089680651440287518023569999217804081707858978922602084980059982899106186898780948464250877619767738849336738657414284011339738032773955153927727581611495971804692507191807130757295140523388918356439615430723403587703097585093617988332940137730341197879652936162279056729053960372698520229303797459567460554097102283677071226419171344992045539816850413601250728761686063157544383204466911678798628236811534215638886336474858060948061752379358295930108944927042970058350110326975040179665530826891375826287874033571050627022436257777493487291258869228528386149672008100167334120456344226186218779854266343288548391511075267868361882309251940972895008103355661112417164260621069384065332980323933502274855696690992107873362058149013035672886414577540359599278287721946555502250437950892933636826320737119973244903506860931891246561476319099067547435825728592849773131712970656549013168372991451326763693469593647709663090505291901016747174228120231561594860986851862981131819906260198335086070300678904374377941673408587687600708327359193963497407986603433401187950058663619419682690388271559885327170700050219464985485471446425973030275437869195391367079088388437875114913938927374266793361221306236535260265652678316325597904036316753250679611379523342900902474305314551643869392758293465897368413466215089163883488282777228036200306885121591427610292332432359471506914033778955083328932006573100821915093985601687480312966585618667150534768786277586308073715979171888040005091149635294226117574021498929459370630682944467075171166873298068877798846608712093054069876921633591180777837015483786963381696967449833656656690256921440355865030820261940352763213986825898443877221811013134498985709135407655347734355785513693364639643855214794797233132593096779829848785516848098516649041311127434462666515640217628193878052487427230602548310739264222515948030890493754522153243663629235778902096233016848441725314049255506114615635690279593907729325371590039639407506947400945190712519037023976520671210257470297510205395863939723983487315786298987782874686182503294371996165806414594617685081745346258090064602211456001802293881523020739852864510642720001328714958602987301104705539904587942080667311440550404833182690655454527049788885398011905647554371181434609994029548286626785076504746602994914849028251871913019587452646030168051496290870408930448771756708831414311036009990083395346372682936318810015420912275684602751479525376040973120507950988107931172539634761950833554924718707450959798362098424145997037287818461735235661252340271465092581675790706565655330599795864196453039672380359980352932840140109887306922310730688907391555305422761682296347203683505065703043470265546555270024380745355773648211615695612074345167084221402292802225167680853801648205344812794378073411737174223453033333676077037696625972507735805161971384663717671311461247903703225618714182661660549856802609239896601435775389601488622499980144118809095090547908161435743883828795629955971594032835575314374271940199953394376648527794708683775207299702925570240490304639565847475903709790372213833491488533530527362211623477514606451577146138139537262119765544234876688069411042075314246518131813668598909861879341606851975450126843199561092889019079845331126032899992903746630508236289136279733490020444118363248709291055883044214319852393160661669356232903384157056288493437075877268087328788981962269925807030853089596496752722396368645159163582499035939751124336382795613598407627156513428090947113538854951909925964247230202344104489155873446275578980360015891674901831043521079094878303907140579375709784109155035498389071338914851360844932446690012410226304583558871843180077525199390087049283623550479040655138869468398662910946508245309797761548854460690048618423601774501156951534433831781440849729053769352270093366837199937644786619304806720825670693617018792387685711068221791833979266959505858900765052113305478091991402239540164284351972847700390011513888727400617625343381889658023783180416952063004866320820134940095256172534586605975044039772926918774582228561102958781284553349034046631486779357087525942955930291039108063421302968236040399427408720366050487236444090031975210230083883072090528962337621686695432011189522716054692730336239334530089505199892918975054428284163126922953888310433817591883105309739948262395614246441242836232036881138517069072038546644990835654204283429007058877914356598962569123145868241909374870948027411725268915087192159541383882613233837998769916671290842027931428555782061909046667588852267182976295704595634312358879383809920548631630070820514741477541284544865797257837042227275208180729063959056283925497959448034696772966682929854946122474909670340539891725534922300251315524959689474348555487526420876473450489811595854375684146104466182602433183075186489053233120647868348055264195142721781004182727315065656756175900484162997122557290912669688198823246085423503456898675780188858524932975337184809300868988404787133382757377465039005146648671836279485876555927777536674607590623236682584017301198555020544253349359002636826029932004710334781213253151719190483974255957614407550581648563624651469732395490658167852078279105120892645880798268742978644031689649839846942982525519276235234525670981136424325292692400549425743055238437341265885633335851325353444927614135136894075499948405369372795714283442408084917480188749171980009164352803299712014424058634001379189773961503586288988033880617156173497434153785936649825645417116414978076733035585245927701297491295543032306874911540002364956077326559949775775339207419810661601560848503463818915334196144101011219092348570352378615410359275237815945269466095258421600291866850135249288665134960197613824430353612147784337518207486034176284525781005298179925553344490204517314878159840830427728344191042939914619374266545212671300673489005262262281238148173417633961618050745127819689490654370968612482633864138646911876694637924440379205694592045415053938081375104632359149331798808111298525519647346065714538230593040739463852507260846130668453733983515726880812270425613676129506129748199026837463872210138336710570317232610051731041118257030444925947436355690906374188970141438765172806771537946739309985020098655465339940369928179315207584178645272301589496789732380739640427071942674410602207787638049333151387428440669984613160007373731981476649239144806141588860044415469129639824694352292529918015250162248028859654814766969173328450796072504966256699299081171332895049967017639825365842297964951615951632918787779778932913110777551272902046629930029318584257699460614768152998496156099791621441306820860458740183445360212546265423850319471151907294834202250969841375814703268260909388363309330133629704592123705046660840243734513146089356235892293419693861754157395430688121149705506904682399686181158298156692404176530993652007312806624078932220940985745148365169272770376426879613653032231655618181044102931036364737605830004466666870193317599898020648950367918481196301572870705845411608153312956330337003358959633424677368684935747167824361683883365653138685893249764026693262351610329299079416602637567505043275164413354109687754582199877210163812823948730444494168506538498305592221144186337345225149033165802844290871365534260995855078796911829202743740511642728112651577632969706627928911030518133263534920293203808794030526081593051977028245872190628193209873018021317877663231408203235432471510455131703122780216093783292808353840349548357220188107076855969329186727900929883106612434288834174344933216614139616661139144576644312145326771481179463793693386531014479242182915979749139105413768359312509883337323533202815350998430815175469910495357090186474525373359782515052689173884593007068170761015670883667556606649102850401515538644731668318716742653396021973009194051588942370284054556740801018613415080148064988975690819771708606534578503549535986888363018607940163632973814490151001965054683812854485503114148916291028322812171064250637645602512703176701321822586320507361289216842460659776531356277250935396974887730168653668273193671266316120334515639746736215823418618837876108240639640991548107636233936454740251535154990786839681241808570217678533303989599876522244821193488703178195023937506556351796067055308300457264371585234791188787825191815694729419593301650440973680241125743293263473547535240749039271014006132001771530190721199052535078708771489198237075514552659806628468927477259240345216057074476271417561061451434412447641844835679979945947974867192506390443353103202518077892294013322982400092365705125608617399225528603587547447958545022331545055448106383629655795591131567107516380568072177286666606525297033239001341787702446606646877344423197318928380171701396404804836749965372598674756966833773405273941949552405005543035238370971578999178698710885810077146284301191370744733094409673708205025011965360586591120303315168811789899455853764078373797309652722471075890589345020869923448227107332057280838493364788365652776505810688912660553598502755219892264511200514716137176812065581005703951445370257580692006891935669897799456889388814186751272619044886939765060919337225742039083805827263863998270939067170484396339343800172576804448933134804233766978409941578023924284558038044428287660286666001949607222403600664846761470301477874410064392099192876344563230940964960468762312673902520081287105641366038951002485762885294746546023637459803172917885214542962324922313369094030706026900017275935373715841567467440348748769364537584534060917708083070612841109572802092413576976983435406698740569416243361687723575103984685493519079440018165475772645569234734795126448247946459047352295243036343252362017162636863795168735770916064505544879568613751884388513536705767890021647457481347085039316712855555315271917276329621996719688920573971776438286192520562061864859960856798962671044823844278860650437881749469919743622031635730984360788078903434053953498498003539183317428846669702384131090420995013696854064079749759864516355426077921533401549738785903410174200455232376405405468427886630861904344909380788694732580383811891226420361306186298423347867825842871459521264046101078511939485482991886127314335939640197409851980068512967726529139077307221843999322271551412919995190796777000315254628338923428595463250799939293779077077012643766060354240377530301282943174041551504613380582327580563650124372738927870428541163065271045339257861751855285483226256066462925297683523899542980078731469776381387070483898987505208017678428409260609681655235674351322569222134839983951449681109667615713823843845607205172441332783979915517151859932246813365014527010279958273647619449290570945470253675502628156597611491112111294589539929136285799338342233585371113258876100904799920753246850499714841540781586732785737676147295105455012230663222324574943904963379211114681251117761019113558298794096295253005258786431485334913489015942434621395804465228416625111303399972201528290493925704520125424662600263027717934196470711010425244191409191338900860406943490397009870866617920224361559621364587793304171641118379516260041876820733229914840076351782783879586860793307006688191022255660748589324656636340684389280855900294829477847376343132448388132503094864327066178613157753227901843614886591490931336448285792689547909190763409365932852791200876979385040568610594784492761649925134155138262614918046348507503844863839173753967556805012419158521726655424641251870061538393382242953483401661623083883586989517840510418772782813860584706729703073900367844952330377393501407850947030027398691395142552595130888233075911381156325667198053667431016871487504181599474967342192829071127190426528942529222834623309705046457505066578075447876892369397560583077173839468698513864002843444958310037052379873440718913062583131731996494350649126812268970218560985101912073484115510415719234884490225009184265651622701080620348321226171342931608830295915295089455531613607533332957373478854291333873182696811305606031105095086976339465750434912504035452015279933341085284153851030659168801907261341122113452846792163652384173259843548349148037391330941178898006440420283893599887529419153943296237841786907104442925670197946553208651766404207444959843831291052397982726247078223117589522098737390637456147067779339632319336729119696591451001168836038894006570109590028856459376816893611946176606065187655157746553708967789143225442601536745096059717026470478861234026792251903429197732445865081244645938873285605145092027443479706373426095566458632573708335827138778423754219773171859845948935045286188381008037640704485875249197615973066592161695188160797118137078559256899086175973981870028098009408353431741290465235898878478979097557541876050533669251954211205168109855285230624302086855197098781764013033309802465465503064955480045320182353699196195824572618388223512304765359161731836820320296693113443381597777500937835534281902582327306599904241669029041821402634832055958542190953582080762828175516635246537040172758516456312069404896272513733626686954444572193582989409295369820619299081231978132827511612783279170982696210609013424953325882978361555879234113230254642015795835362674683928569792541242075844488367364675203093129037105080761683927022668302054858339328616376598838442736232003958357086133224194650447931750936802322492403979758685772192557824107564963951094583905062297838636881308734118620436381722474850785027151417969198662397344988754234993577429150711579232504450837805592340111203238419109559778470120765153851711304259195065737407932799934697623514870965763615518034124574057194151111426296076739178942269715702638674248789208212509068349245055284693316434328894608540604787843826673888683637320750787637466842280386089215822353805486279206445652664418875082742284406671111878662491868438157937790592413122255685229014220155640728319392165873374793687184874784545607666565983060936896840897249819434400545607007778757601290704023428161908713909604295613560568521864888886969100939633953278911631062861660078540595021966447149820420897466525786285640966700210374060452762664618506502817942631290478061099521253609033119284575162573540607441230719872317954901970254438688932598681781169010875510448182836463643040165344947395539992118003391797972723471498031495758226252675780563093664556635521222702815469156015998085567135099573736221252595269940627194927657699487058799561850220945159367605837657713263345123299198050150247785292898456528449124195795989000926595250511654809785625657799274521682116481071393063589738896159097142709422370378110221826185322050618272550864348837006975241885988128449753420254875367605266244753009569874591544169338581254407570025726895050766638055831925260200477653699916511661406852890179169014624095201058043341050148602203323047410933837355010884636859144157726193666678469006299331158609955770003568392634401529309262118202705005486415256273212050087329967681727009656830315557197501025203797903698828099107217639805556765016434148611351597308497195498613878487992997170908334587190757559232167724840795802604468876087049575631107218849352640287050032819828958910091630654541127923546008929309792002537566037004343606572191156715038676179104083001545589012536174772833246695892135402593542365673130702427999237803183956936952971735680140711555704144596649335903194111125044040964418391895389390638182594894567376703802552478718623643997973445889950213707420334960405652091471542077331734807194849411122766127692035579475746454492384778564150194074086755701331634150618720357072636252723894676786712605943554245742016489098180138352144465658987027554252565333387421921892989037435664928404215022749500215867259365750478167178130492497322717508672653011458120430010719822111110097528261892540314711702280538467662926166887397378509379654252272388946424291911257253858720786841440650754600329922917238546074064868595313927916789538125276678985029166584022940785092529855429334807706073309041212958838491228579700873306296248830129162742980442765685322744470066646881938184621958946174034585522129590683621316466883236319331619680905917381935323894697049048380895280737490510618263307647929866951201589603840068958885088408444371748655063062777636357367595264312597300804523682506855604495459549147235939600405530271160771246758256248659897040946264902677181432056819880223712490404067386581887355139758377142821387637762377716913498328323244934386071786297242210206303761218890539886436916400621224516294281592437640805626263216173324916274361493273560976864404694668025806247773296343991317429453311800352060458557208618817142259072685597049380547694064793623115680340015128779699343140897748314714380018699606486372341957593687238709028822599256378125062367527368267749328297298527589311640648586393020543737372317238417119499459134940440694178155637678868159564588436997116678660149743472845698222990353746042573384320601503427503925651930104195129732375947770925934269989580973008077001468652720398645274973675701143844847422633783469396868392271820323840266958961353267420657374735945551021613265299804428066004765616300400657127061516592520959982861917421638559345902027310142162822302032627282225487997378772787865781792246217414940372784052709822554382489514451745779486564611218599979769146389463094165748238729119554195206027255380172571552819969999494247590418870329911468104829859469259582003878157294055770791827836648121233028930262548236021530800383001067390229050038105454525453964611460653193075301527959735454980984684332420693547482712122367007006307259646214353739837785815261139387484238110023445375869252088614221220229716619444858749043847607176221628110619043945116299620771557017743339617585934435925913467122814806766821850014661582297662156240497468390382278454102042785462784859955999476999415470422831545088401923167698330583985591611789497440532721514166456888505984845391579748372556921170953164516027528599665640647269006231779082901615069241509839043045353905245956425822267620291348985723566793158534880581729130409731595531823227099502245996336374987436647574287752764726200941215070516179186669512703624944193595269320947108434303614963859233423876175893650152256502928323466022673981731357347885516957463795397772375759047923346111318501553168229712385091899742562045056868095108468693169633952659682275797589122510858054848850930649759143091606837117669919015031023957987466043568716460594567863511019854643878379412085967550883674662848885140463083535357500089806144756190480365457260606707502207634979477737341213318826762088503762742604320870732853722326040692050091195465846101086721967278162803090761502338472853689504340569941753544476142072745529225460240127467825875361366659308577825662140808731277238215331812985145077184531917680615262440926392293159716182066913233109008126494498085381803018568267833496223950021427971010984244056295880551106720747488924688209850807457306964917419596917537515148194200291985390705161929575860720460623461181442308118147250404416407306159254546798238461136639298144981266181705258865203797670725584454216072955244810729588197107109441550637778511718248180783055196944206175106697492116945066157118223035408698932212350298486813571343818023877782826641789838980588111235086765023280753485146354364157469304316745698801308207227823679419725060701976139147218221845309906112061304659549743755482534006082523683083489196602086285362643823307290828104970529295737237647004973533291300893193073172643224275214846273565886042553060934694663665838890363779158821919759648760895002079520153999687903890246450074676232495367475430635294810585339996197069248544175539793439724742135475414610381243772247454613916575246259790341957900247163215113303330630806395063502990310206029012834161607103134928927831570532323708415061663100307244405382482871134638485487962251839680331532511465608462985719673552183223342748720567973233117168210384884195733028433851114373403398065843296762419211328889252084373607925072323531387856885158530417131658443989324571811289968257072534509951395145426082961669168211771843554104477298161020191379993568720014781910883503366620784489642126298072818232497201696560109156419522523191253069432851692413661825558340735810609002744793276203140569464976516211740193472509375531049380438984879408920272350093827659025792724957476390259741453953933618112085262091300078472203809766760359366370346142736956917482888368460149205156104981894149919162880462317412453094848657615246956755135921113085522618452613488655413643076627861605256418944644038799462700388767604770562870942460501316362718911281324001450472662513051275865110341897223935332147575041240468064658048248581027634311706027980928750814544986025896625786545753094500061786796571494630198787827479397017105924977725342159560437446827902003469281177434162470616238502723854358721611505510929137100976653134945660132314175017951813541155796413786858417803937434916457681341705869949720125517081121818488178345218064281803439414886614861187310010061166927524456699473360337187343872373748159638466833086232904563852074767149616232984900671614491500896520456187127014386691286182453887908846521937108823879379090242902340059910506101617921054329627359866009177055801567290909846346650337061929440013936798201993880592018293445420022309634943815764434572592890936946722229485652228369493751641721004780645986616531512631774332161290674602305645232342511980403846456323913757093848775513029698117171494560183301228643433530988167913083944558708932415319389663712380539119956657432708630475153422244219587184637968263385290675753026036992837697527273589073008168231220091369930619073472881382639275728625288705292834558791808940748855893441623476560513723231958208515499493488408572652657305568729067679741502504222327088143277193814412923347790151071647243110271905976323179808039226832517297791206925283483951044425753920927550976378765026702919937830901502362086897771631620784012654505676472192426642334487421577885753726272316865493152975517220369711414171314678254573308313748000972754086212979579162263290156111694763338013195655516485110725987493199900852365527203532341452156612124321057826166507148648906101348496685027175636468980223273608963609416270557830814517861052083794532361786980977927248525361499957909737125813311626918445460406380702316962591776532070015083623349129827531039175858995791539984841960090130364319785809689415280425293817056142413081567064224026170632422225046475612737863605137925106836838244218758712291775950545925825924258151417410163656514834785677565155891415162045600885082400373367839230591925371940651414045678964371288539402265771947168184928146471475000599888864292698332138139368184074806142783556034986133147868835531698311489526467897503724085964773668120777710576968231373505676882449424194148356135300598853859638163713847932909281316986929480970952977449242761473184046943005717678510655211788514965829046163303923472964065936099797627630052666822617153859595599797611422451554733302443897367833530225051764039603218541538012394871744632009816304194232326468766085305627263244951483384014909025407840662119023201934924830669863475682399456581329127490241153477541199044066395412891414022926009209786260974435149211332271522955297930884945355945112582589546553553481879135756142347198715264487003576436566937060257539037841228506793925257535477465977121724974653952590555252154102124111873190228922689413852749421977303264567712492869470798845615722385111237035282682931963628121806080916793794674577812345728949038551642933219433388715708927641176404621288372687871648662709858144275158367407976364780826164026666117946267071610526774866324029777732260534422177997962957340446600993472503858158636280310517783545604234961270519888240951661005670476580029874411074921932806478374475014133782246899776188488735592364843204514268753980406770573208331589236753005582734391886651233595882827991138396309001630029360254791486053120094086004023465200374155786425240184432025089619093763105315158730157509918668685890554850784835749430150632693028073834820068183675288332397253939911349055552467239649775314341097068679329458198538059966097434101829296296437903735221822267958614164511074272219357371993881974831441111442853325201813375543515964038616426806705150377584598824903093119415043433634176689714789281504461119830744353474334600816083142962523991808388250156455733160871356442219251340916766900120039744601343006727064919862096857346066099987999629834658691991601289293067691075257177258961624960858438969345263003174589918056687700614896653109618569072304930991582528988679123395769980920240937078114369697104611622032846130737216864542627989754012846464033388794721742778381358115333062568878338202783646079801961201242101255038562085144838098132984634264653986648274772242423220535699077901046470318796722606310181000151044235769335942450651727225335837659305134508292364581013409140609867451371680118033805747132843686902288958945235842160846002139847952329587082105673828349309997768482430625489551725225917703789455952640822099905065523366314337050908694756708093228598627541374850907445628417953491553487602123103918806278628492001470537907785886009900241104918655982667724744851387263769138034818474181536271452807347301642887093728840489940234482957059713504724525370978375065249417139683611980599602869167079933251282914782202843720047022680549822301846393833964906369582647783868687087050759002729586298552246160749326210979207317952306042682258197919848385693383763315145435124611376773332142886017972157856979960315054954829926740255609411863634831776454320527577622967824531754073971333667177021241687724741444645735907102092281567436421268785262286789158292013200446725791231951864597264739443433143966637862628416216837912248526678275947106793938865016551678948279702113956881942459863190027652191796954517350701076382521826420339913689626305891149081982178012076649297112449761034251761571541762453122970746294389270413558424870344065429144359041268827088180836587541132048220658400682496046862148250010820220522434705748534761802958570475673076719239620830509753321354524787797074099121727104844141197277656347051171719658940059860591290078775991990827732725662064159604602709621693839323766492546439245017800193271403041841476189204269558631155585232355021172811427374515190286976037018959439591017870071026804657423033612120157007019612691952703990836282367726000398451768443324442117274865697018081615304008068332071186748602706351217985986893268386756600591441628303315994721234222660222805057513159623932886399200949417077925246548696834195554536971060662665986023333903866444927770113699967837027629693221517929495191138808219915710057189038626668608379648768524327811775874633049111540970664594478669775595697190724313124051130527260333592551321847472513651715934195973203461646135152704535750211053902285974244192163793079688772548335333857106636344417174413128302431430871690434911156016821185611736695442172939127942126957682428117767472220117706440951444361706569343629048578872704830420860157242953408676186243190780604481547480796352162667374318402746136279808306924882728647287926036633734758642210052911858755230144471340705431324529968214263206976820677577807904757926851349089758275439208391621283943347268642230048150864334926541841594452505646014566511001389731781026285339830476902455219249147679051815058125504657621486056866125360865930791331308605373963279351377597587911655279268389324665439499738754632177443356868439643581243672826637677807490914861804442331221718863712847588491251188993919241642547239023621485076904917202817098979054810913947874089903461052567154930883615793045993042387378887949495770727620094764588869625071694239275967315521179643821234727880671222080975196520207053984501414008683775552555120041982150391312931751509782482138710794982980872913525931411137680471732015559633723695199103806560257249069509146117003910231505973965881245013476774924741411188398663117030907695309502068791908035496670413185102965092086591451006395146780394118014085419803320913054190674091804149210946807641212062630387267246891765565957793819391577626941815032101113416473306706278465419526498169987113239584339260718043556278606756716467179195925748081426022278384939930336821138552104068853591039070201719477094807939687425845313317217583037088047851198001525647992033406729291052054478550676501480845453455973878064259623413861580162785227263757419235637124313563510511202664984441057117684601325091316556859040446062856557231901315526967023884663741860928876886743754686544092134476942277182856910253604188950456286019854093313530089293090190540050149902692957935099731214503858967889079632707210105086157263741999641647935723612457417236823643850205001879052437470907877521465240886313467043859945128186324439191799114017045203228643097211202094386217601006407355291339376796635811651558568295046134283769068074055544922074863302487281021515123668160340941343981848505699100070765234519676285576115512646280956741473231422088260927525399765688230019898575002122599687807585582271697048846970625061758577520435108550565419316507623073397968491075131986759508524463023202108667841701074518328856499412319829248166628930298500739340851038003854207205254522964597813915857988857176486869245120712901166253494220581337164831773507006029122270848561445349768727489843354805675421294928572125087811526132502954743997415298659219058815243706251598369152008429318719252445823490869121794711384395843974468997418240281799359431168922824038294377904342437818424197157347279813272904548003921407981067093361669738420956814298112323784971422018423635522364166333807080767743822097997333935484018718663178584919409364279954513644754311323830510249156536415970839484163097018616651308047999888952353941918373920401080409582993875888534558977227637465663087921117142350972512435533279804591855238529185594464602386959625226179313926105316207689982498535680360431793698218075678820768284711361522231102175204200958275932142738832801724034094952256775957250783086378390442067751025043709107294569057649472487520468828977125036844154511005552626375712745069375888573338811188401843227947013778510702421441924009865491055146208244908097538439139830828731265617109105621923647698086223968611172070797844759493044727798691888718056845833358960549930501890429548431830022536862422427031596996736676012377686240077548360576537484733965221559437898849474146205266432210039719343010357036048131678368655143795214407305178435302533650877046181127238123930628685056866423722983018015562561687538359781034864767812338924819904036907651147523230116369658071984824112847694158973314481242385396774748958777562242877848076628435192175626909141435230262855057837347629243938998972221576245889767128520429296753434365962832543432133676991330098353960242577185503874492455162517915153060891604676829748495681291104231369722843575871627836627427712293601844197271061693382113717272842873126412616690854891619527969601378378171545605516770700735364512627638613563397568326186597507262153463376592382463264593370796911906554574230442487290801442184208538051125099514310008798365651225085694463041785247367971589623742657263030408300199729898360789350010358692154974339918117997821075702474143846147712507866896122105974929472060075903914458416461718754638058358026348970082590440750073816081577007514484781940200723320608018134629172310003979917325601597296806958962190716770049303279663770093227208285350247904375154128735227259433802659406778503493312304220385772451163322657669391748746187360813721096637693374923382303472024916488893338358515177453374490818757029672442097884236071289805136627287719275365982812699459186274236711978486218383418979861659214640216783693880043681673712294276827394406458328203218874905908554983480514237981217561364686849826370838551935717832795579882277932001100435813957276855804947488740432795317848281104212811701452950767934292637893895954502833718018404769482445004778152025566682820830462878893532646424705378834514215711891725430636871329372048323937683404794267046430704007438409623490298066028158283200614637930597222624701342361959172768039611595825901631516642187173974620280336028392525023388685332701342504361786672650856012045070107246110051113907769719336104190641949558929744824958650408902917633387791744283706297961366364923718769520773543907488752767174901867377268270120499569819817479674434692358933524601714876091033360688115941218653854680051888461764674071769897741912256191229644918986136655028811635674410208072977700569789757077514492604661265414156426604190259463321566379164213546737265210644491267981851077994361789386040169997785008938139549258848324849320684063393908014942799414798157225688675954883289074735603890509420573130353487424367697918447057914873975986261118170433717700009516469085961258235346564423042634454026385133911560998026668449557399041503683605442276640903357438599184857804026612924844086347314880967416109013626598022114752420696501342511531297564496138734871989100675245771712158689650860396728946368805130625081645450825299267037573010644221843636886440180527834340920358679742431333163220107871311020516777551285840993894851366526552945033671643571626953805491940715937045191171953953251005890271963775225074833351015725193000510438747177793857285895435591667352707101766315017074847572115481756498454956878402833995737797202502243269811439888631468851299347474694948439871910045142541093680846286461033509189851094882044489143451689189578762009092018776622969804889760867282634967270495221109414418069825553418501809031861022618610199157631533957366898372280337983764548917381304451604573686027404248761104883294292465735711109393878126670705887047395136645839425842318656819970896520015792468300014656390898796088728278556104778809499526893143052016271220389517665308211514306532751034864087537113065508701434160696089576319477978718991917499146588551960431561263694817374069056568977197375235944400285489021498128471767684848675969701805313833678680428565606276300329824597145102111369040358472531249963841237056007757971026094591322498732485180957777961318213620664825708146283301552174671854590658741773758304504058318289831355619561895503289351413384383648955171758854715331650170531992505504604845203301637192401876577167017586196993018644460523201444441128865518502686862419467284142047962908141628455333248899975311286712430108460709043427231755171158638824240275800935505606254227641646229122804865815964165688436668153405881342952128759563974502672851173398563500524333258835345243719396205144079697395461185158406218147624960731039873956627570565180835186946660971220563670604982519993253560033874539590744417170774438876018698459229886932964102680930970151175365815678819289965024462557570958210111806663442362183934904749772714871103431648513141055138918680489399126581495135725992473794606111037344934618195153396295839476166582076484390282773655847430729698901067417591675785351892409956655734672620161675587675483944626143028921188011288908297069418645091401104940717660632181251047117584778444851835833446899792334571710317943186282926221677160904145108372021002121549943720762364166218423511389125679868539995818570801310989677241471897430840800682736394602551860711388254441840781942313032801064317643265724852422989486315048399381463077727335188669477773744894285472724627885244462593612734833010335249864056901584386018402433656616352544455517449408253318490642462699950597822217064189799985788169038098078310067752674496124934121792647840997164872006333966889669928664012126097089484353839696142396587865912006702837104805060993679251467621395208384053226144380780298145672598702423812746602111769913827473641820866215876292420415844703350540967311070715207681205578123411344825402061168183124197392059501334236939765280040949444664971987402554344899007128718888204125252974804541836407057978303424562077592251008387192362373931203777872258813326689650465430881000458110810946212831634302211826910783394307537631218816357509418967476743846954450257779798262543322250114783643495874810532781752319787312207029418526949786168123773209021044564749545098841391268030833538626294267903818886990312103402869077251755907003341042650199018595917152901520149210833499380015840698532483046330248311830549546590402995036074686532778692086916896030705646482783559505316139318926896687609037709396025970489373469227543670868965258316728666136793913965940709073272185539760908480555010233206279183584116759349964068563832918019722472041244576420491184304413879007199473095170855295766878151956069644470403643940276942146081105824719429384345305956499869945365245059451981228898522231395049587407161885010093081462790274672287430196619588021082829879867168505725493233692975709788968663451458928916992703949401813705923782814828474882524818623570161503512327242099969023962372614721352757540873822080524855881555319706493205545057663870525494364667201465556229562572611147266124988668627337928415700527325620836163443904050990507251023037804649122978879031833098279026076196189582721631270787558191315531252667495631648776439931288499731140507101308444470693960108444878295926662565994644472193031790153049087746661425228561727321221169714567524292054458505360303894456556643754386092197747593778778755955120695861691683495533995546599026951716235346934261324087105318918086023047631242995831399491493539936711769121038629228588040596577810342684771591094879285482616866573569469607438187198080379074966721706873397049729347743184987736017009570684909311301205725376255210620980468811764953090203132468211353828004226311055605217062795921628120590795783165174731191672949752546335328720490924716208923802642844053714019502729995743058895015062428916708311304045895549609534287793970206115589653453868950153016250587692419811588937769944820062147932651495616925118331145402874898868405687630640671013786570698516495082455259247106296078560555374950707527152480521076905093061236136737385034894646479251168765763479561189277527422945459529192349626787883111226215647408063961323482399510504234344062575972984492642609061165348130508669522991549221203115823345175641642846227608386094456017053023057756427265900360582277046142524881407564127059518170671673871491985307894390954046102531057530874504027484049055140609704960020967281151415184693952573034471073428377092930761370799734346689405309948302835455901720611081545760688815838125547952130498760616596687724854158186176021533129699868071625815473382655516956915862520694165130601703426694982294503261119480463670032055835465377404445479823119067388881414990553914245874750650380457167260605665408568297880837543941091874541119099386109826188461377961746661627571351406031549178784016215986342575080987940829241974875460318259851203694065452155074579917140910356806802493598474235976324057667500362675555268115547422259133934622735935023869994607123947548675895389879878003552927276457201871243169844081444421135665579283912684806546627878658172526971659550110620471274641338003018601544681048579824779649792675900787687021373284913627402069307463089287406044957896446697567458516810251284902834241193049683969195031521810392021395818965978266183235982705413602457605874482659721031874012636018761727834043507808786453106766569821067440708603816991723719949591535411225037607765613881166960780206620784344180980188373051894151352250787390220581448868391203735301338725596401176892507017412621864960728044148106190330730330519218522330809714321363824714129757960887440963298110307387508351849529637852850300956271903775231195653818550013640661920227394710633574617854762544528309003139000456618553291939815198498080889106943243712059859112223740126702885357617224968070361601716846611631053785446449340590923184133275774968924846506349067793006656591904675333306473827925814008296663748667139344801669448387930086910292065657273226542459123989567633179284411544217728604393401842484911908660397216485903747688844645153921370121622406502935315770884172810336011768551452787778265362709723224219639835445897105193036518129872038638376986394875578294419183122105850986359086385842356597227361267304146852937840102190471867411991306294253959888194693603468002896107128968902872600188003809301557188404395329956432268216271683538454442104877015233472241398743679194451141775289346204755346950917582838264420038916315343320914676901630133010151921239226876388462457341810515602413305706154768398648289140824568552704688852660499043201687772197500833062229555330558477999888534564619764807424518377022176161867848880847834255818977887905181693798815453975626075057500429305174589237443574809574060641017948973676037051744566733477047334614170788834596779142551943192460869374563946534153124576854427040670756807983806741404485196932020395494681787181386153756855869426736722715824901934070865678985452377957119625737037286481998164997040785068618340998663603047532307295694651747641471051091786534415239622924715188266189306598453875846396048919025853070454655871163962653826895025102599940434962879060063662710790637373521724510121440875841466080758085730306992286616163276725510219627293563416326075993497708513752425987926466198170723554605341774591021537949237018824960660045053892637242739074140998954552360932491781915513731936212010572029523507694467226610639989907921449386871871674634068132185589349062458185516268725723536485288888824845907849271771141891768424476895256877396756926411168117029017905904853423384509262174665189057615357198232919052355115480780306647402530331126425220318693165168070567757483921681989585785472667889806437501355964460455944877029968031132436448382573116320822143212838494689435812512309450104898003989782128152592840546341267197065697359374425917146721639751621751364899899631764063251341264055209587496540854308980241964204935353322720436102616424758517541819324918523181927657216771328880378594327644107167610721200822940905220092261029087500612007198460560823367561011759547147924179118873624556539521170961446088387719320345519851636806030140559436924881284961523748276701176707927902807224149159575510333667463692542557229689126835326267807173203440719805753177542750134545732657087972805029880095642424192528091330756451226825158622645230173279416307615520869977380101114079056823371126628803984688145243051709875807541799997621228979981633348902684159663606440568552746713999837050432078772652045566517155921297306149392595264674456556397518591603849390983086120885630623948635525675560324920086558361119394529147328557342438968380956667297159869443475955439044808504117068041043965220559328573935395280503635833464247153147808617544019236141671043095654861248292529771123117084048546533282249300880217226595655561540055131244074380226358383225793745403867454432442260656976830363088922871685718457490731030277249857129107503630574646632150640968118249222558873710563882662148808318770018026098329759249409280157249258368285693506834409883164222775045389557935733746214800208669777965485016926256812151853205625267837599865511013109965345848105161405846430682175770365438406977049855950429440234071371602689146843527644485274101008152998872795316243662398576448018939285553124891037617233597736473786205121913145406225657891587046563742032332078957016475657766939533406153700080490680970883048928315446061864691425430404762069470160079813166097935109795777661615926013417598903276241853363626306310940010278298715202173492116570217507328617044510889213922180911725782708411432788349650024783188555264754946967781789982227256546794279629848164550720766890492676437119778753182329317377118206661683379211965911856162798164545941929868663574456301040772430990555342017335060998699392333805193692291387133179783246394825114107409306386701564564558477507574609226572658951875143262749477717478720393847275064539173477959109274163530426785739105880969971877974234104201321109497614440231859847699536969546229669457136802350893440314182382767037496363162064338295397636754270090044919926395744002964188308665780648941863059411899941841714254336000582115856025278710652521835161884213698015785787007808608530931586257141787339847582359454524903411810042824591832566908252785314807188873592285427795091059593424325601086205279721319242225713510570160825063262771996745732927281968771577591574979674362373864832086349104122048236749304427285264009586993033121366224782531466152277582587021313545773664891688208707062877589065773564678471011527293179984122160324074236924582409968507822286739360946565405854912358971036274179853672478978431627020727280651517734257876828509730614136123438929874991420348897672469033708446103974447928061348916199145416624808940237771337658990508585752255153418582578083841658210920977748196908095775769974451781957273457321822702326065291898217015356569078356382845605088755735507318706876288147691601266393353033160568687965603947550011030070442668143753417744444253976551494778258445363371569964791208954317997827310115467032726120200231256484106056251136886953170000074382689120880972029922886656859994278160468585474529313149451114210866853376448967658301154871241000987856010618530140854356716488403551095907986856128377341297524408547118924677565940051307468601719762470431054137658938190108515020271806467897433989823015570939315471907839304896564168964884476125799288503087142362381710625799109021653712038066353301677235339205248929307261735938682994601129227155064796876086558577135657138886947727868082180342669180928489404985949886080214106652793182860996627801727758771757674771793171547787627109187526109264475140825650809205575189455881760049382987759568642601297192840706357042416864070170949186841639611157782689019941981760574471737151412357808723111283075272815681098895532153548113003041353968051538597576511448311388533030202198308759048456423172670953877413503765661456172859290514815444474682861163115303574253415377163810481173530058628677285120400311238385727001626781791692785446866793796128198876199063543175250018332279031655311362438972198681502677221171428362054310256370666137094621791717155888172805733547296031272501382345578253442720751585766064447592302425920484233200368981933493799375625211923699554884630548853378872953269333242802096554989708377635508920159235567788182587628222610793814416908965999677683191240107076649077350158293695371756342692252473066135543087488556722972496438095125640104796590851826530626782191422825666775335491084370225672879735139757545066964426493864685347452258464882852422754871671913479027520774060237298445240967694837523684689828470512109540293217984208094001563046786968391422758995733985388629951194878816403101620989818492699624364811967678642407648177628667849227938254715089116720993824257340274159351864194606792053306108985393443724330531189620514118529220738561512017286297958404405778546465734801602485961101409670022521489791195263687972563872774202235196984957234810542148813495344716221768759741970848230297453132501061837551905290481231478422632751749824529844580991718763184409013938432217563190565614385539622899937069584588515312124605919573461105908368164897721268652407625029633027692979962884544937579694718757671865832863531756894803624745189491942194153595370875400105862339336725292686849408445559721628777288708243727946223898772814695272567869458196707624505742089739835337416947418005707488573879095895106327124735375066306023321098865201028818570741330530044470602136311553541425826195355259168284735269932525801853498417856126846955365559547311079584503716289393453462789528814412871571414979971198686337503421913993039254836496818879662803043731453226530712412215542020845894234288367052261244685448214880586625695719815721599414848590946885569292387837189646831067335191509111958170892280142233990715003401451566043901910485434338637118696258688786518186098748716025665887264341860000420634112228510016700035733105905030442914953108263059910117261880230734258784200704743849889259968724654674115887703785628919182877373976252094864469321099906429546044733487771701638048969696553416812157518500845347802875027946091276846383435372002871859121824057762692143469348289762751438988815572616697956828533247368718008793932221298044647529616064933339114361574353349211215500117394617006358485670910335944434122105118592395589209342140538654973145714927933664953149380161112081044751873413581161952636241908012173292660088050173803644570367357532952414322817656991284685062227806969730691003581318544686738937495370768014282970236786575295339378041308450242434742336841076073511319991927475647969611404672838199536279739931941456788186139203371214633042435889933693349271266561877164924681520877786714714150237600354734618630431512878111649700744307798889649725982487345918578347182541925977961578867132295424628894424209426463220566476499958797778318504045999542846488933074831500942643150899382536927841037571790433986525783418879066453511307904654525324759310569734160834078614608324750349258783968166263238051277149229106571442034446392463549887013025292804612312611948501470127642630139930155518656212694568321394731011773446454118128995044025964820174686417683003117275539419892407575887760828632513138670981873263031103381016166978126821541396665657277796224230988611609238284253691204190530875171206833197380319185605773575850106765559003464437357097845462548944061638645376415423203972489395268793840712252942086758327988770403303022136895263843663446528306457018250208842289829242608466626535620419518111825272929854674181334921914836197895368418202537715200577402437626644415270644196035568529021730259368634474765151636343302639334066470753648457568961773196290032639388663019665837349548593811193252174938933014657976044032042167408429200016533282335310337265532681470740040853187173969055388157419128276517133194414850445735057778787822051378295387838717801303260932591656754796917345210241812176906803901794824910273856748821842830633058017988624831293896878435074537328033365004736375037774320108310016716070073016531991360693212301649814348105030115530694908315360392030733452693338484573998203229767281316686304490189351338864688281228599297563836516354125076130487107905430627029475129117005032116314562675047777286943886338950262391010904061100748065234794671705132297858058938245586010190475987233994564942684850256910875778445402603987287486899407520539798552560890264380280597523247539183849070311157774984897564215975186394240499281603216221134216183971171620065271685436124182710003677734527089294023283349534163426781952553956763565623498953614552906065827766780749114962345716024870222946795236163905877456945467564801172055472554043104925973376564103378257329569887175679695456318500279719051516289946369411892448331923507915546324421727612140207961591453508972286456428821577450334759751399089274712271397378522244648141050306962767317412828227204014072022031670795867357584136002362493656439181017587369029133665395457036063249045023236026908865165202015637081371910178759758806064218343905623831795440883173530423006474871299587023257301886468476994805295059050384168687499570255915086694002615886252914611065649428128516287840080664134737636363064690895612474953557075192976547598766972196682195945199420110348770378886883382910541710629949077815605562160891574246148035281341760508595129195417349861124004682401703742132684103923570098725996148461085558358552912322287217084050715714011036851701375658331665732230346937859818184017725205318093739877736788197924452082836553795481919288198595666618196571243959380831327379097491312548798608149990288629706066374538451968043414682853025956646920830454253296953222228240295362070942987936172588898167845905173313359710164691856903821536353696195423833547549415788187629242649513611904423696635390213299565581647635493794372615269873768562165247676198841551775798949446255594965918536302669393253637482620609285298200280175800692646789128123375611053404087105855011961546237467693722178933342329164793513338821440684434172074090875854378034708027723394066304592919965375619053525251477630477968749242185797554664636856145643085277868038753000373398974531518870378544858789156820355196563443114658152437990251055026867373159728218070154434010642561588518688682821619819904777961661534118041475710171883058601796920193759793648724617551144553201889644225269255883887972338987446415628567558937626203939508949716726543306414547518341340148905551257977214449538633549929543813594522142242573772732583256540442739636721645649787419076299880889477702240858795339416550149867761341264563175817509221741784069063982250626513160776565179387019639644069705605036963124125677747154675134186391167115227654251415531416511268232807193767957026939591302028183326784963270929858102098318149402152124703240425530503884427239758490612430437600094244348774937266946435590487715892293138344127821279312063105606558854420176835318942290369295943365511624266339628121245171678744550715829181389745975013407611163653655666499687251114700458882562015337951923850545568174728601809541070524088785219228810996012204368535020740689907578377409618555021650573433964636887588892527939468753556987721193800474485900935673045080151435160570680176801067979899875789800393307264334558862280275112394964311514935383927879284855650268677030650906193913116696186854610093026616242165452762513680896897392167327113180291945518801080687163779034567810712005403840378215546062640435634658710979118729640211431644130495975572044969686347660458782492566110271641649366267281563822151574468413330913980391070494961260865542980596081525755590593864270462279343642843511977105744713042046708282961888934651018465811005209779225310771055382223035928518844163890282204111292831115029333647756740482918907819604239232537790954051674181286426289164942358304885419833244723261041106725514207955026894821963792229069934256761698683456979205726945360068842461694680325376025054583816353608775822698970749680882900267577257234719688177955989024113186101181310791617235334199781668666136044481360303794776211085256899891657583957913280211651127417372224890999873796261217845168971891409158324396540212183889888739440950702206019797132893633483319032156862088727540499828577332082057744812065832662220074860948808015230433858713170615467526307965824524341519590246603970987122711276574478244120778443331566415007570633862336660162730162255078817554565956826329250965382133199816245751472346504656800837924436658946378582787917816463981657812847866406026742932600285445032895688462724169752732869017865541926121557339649721490313825767633697763980354722667079511527815537113920823157421597457878181623413637815202802445952334147156060429868681681402000099220916531220101785418420295709213105818856388467688701294931660340666037410489951409997330700896662621262270911213807459675539617591640492660389359650909748770581399083806327283170080467109952430518801892881166654575837745818903372219412055385573957640588223961167682145532528172470985035667310596241136440256615630019482215432657323355895061294282596609128260190210576290327025826481602478771850209427391392073165739589624433285535144480025150519267832595438366222348700969276577655423410089176597309157413671352837532679524119832984147377876531459189880692824807109790211639123643230804869152108215769395414834973572196360286448659742756288636858033963727698351767941498263839173217078437377960013646095065837840214603592957668370125027150484407861603474357271779255523748012187008913513205902753699090623761279986406399486866470239236228788179040419634175620945708303303973413742622972951551609808612337381194567639731041211877035959278238246420437394850615542641062200994884962770872159225619100590123263905845181420702039945011296343059325648977255529225591785189174755702347479054758933894521073492347485331358654852252043361560181217637324333322089566854476147560756532096842661211621208009362452726432820850962819152611862184731421984950659276260556368229570173348945975492290508760119752310966583760985354875218048214846176412120947449287280156481022700104170744969002826984365363531368191010602533095682769447561283174984300674549842732223217051239137550206662165664850650795667377590564853404342962013079898326221224218938264610148371597308812151280544152550217205527281755251220531146399612264487815429006241365132070309602659852095323849834392849917477942708154763882008358281072433412631231830364126812314228458417382140946155233375255545135395037822443910241068008696716202215728488971099909230299438323860271224643771257068565744474806649599679720163131905373281799095631788979006173429517777266506083973119947281862964936791530328527454804257683183738012583676673535972487169669569687783256997379909359071590109862935941280966022035318069837699434098168199773970218328224455519643995182258153506742921496416775373503469098358974086741754851542076697466935468180150702448126585928517776273510615167907391056192862906099437504191502181849538206630638893987221583976317387247377805198487460805054012110844312475332580225670146951459298171508888462144408179487071913905838595472061552988379586358198611023342276550346043206044148825135107437913294111223207293816803240652510510553358923594832044555210732375892344456205832595477400008401580806645833750197895957128745204769452860495452208038500076319227973227226554098337937370503201839206201848371342148766140530697782354071624277102932551636638456589495123041379290286378007835036828032587156596753390761736986527250207512375286704644896726135442024329212938459232890765344544050838419242054171221380803663505923320881581135147309689194814657594270119174310540879257465323966868709125818566230378921067987241124817183050070815578866828659307296378595831285873838771086511011800306511813849983405119018778824153812525732932859399741400709060741068686845573405712483858214903229627276218443186296815293121349880993517349731483486820606189480379751394459888724652555418942368051084191563628475562054146513822830748826881612919323630714941276654959822308576086567589868470999990708863990745284608212009349734573553540488367771799174990787192301792655293985358688438388656119989264749358414853778152913999720883587976792975606421561036040653655327462272023989277701440947645527934382234360904883344633334862765560850786169078260768141177633686884145570839042210254509367512250967259302848190031010558238131362513880651744995936272478111895124906540840245270061275696280894017478181168756456766254187023190213371726572160640227661204749487639828416039100355250052578875779101918824616932177439403984451213547907911343132254883987205015767850207292251941127791714432531998671888217893196866358959980131500912306781525242675399925495862637336100299181087370343345321115412288093090177116210610119585573647237015253032719977929029623783063386606895993330686453664850852261024980020872498760658904488249561301951075536139233015582038508124058321499424020790539797075516585737824838703368599304168757034054433530964865758153097087379353575112047357272854477575275820695412915746995850275943723206720433923956483555965388070628288462569115465626079250766370574449785864509816241520019073188921093469091169290937270351819536565358663683954223704332876992317732979867439019908180597116850619118425546554271686010786061931059196986177295164502763002503589458288131191121040760901084460747078674116364695056531835700952121853639827329502609569067391845847220790423758867126048121769951889120435805423784770577606775464816393987550257940689368151327080770878434928942637302405976458520292221625295722159422384811084129154647681410299911277368800768778478224880434680965367719743964503456322537677068248426973241879444352164529436684261100760911174677173189293643102253414520084225283924251362278297873296372552205868591945960202596497253845788583163671695523536848530474773094144838523575634250257613016664037998875556517445566535908983688687808349200505708731483535485099511918607916755489387970614639472171624814168739910554916100774770343110146605298710884082574412963672296734934586821992152934160224206804425433707750140023295545080709138034428085089066538248635860150990397681158682006002874065649891209804650046293929426283381175546490656899623824171204007679047975737546135163341060660372845231226958862776747271262484303527931734764924842038274130435175133979566788302503493003108242424700090728221291850791562801173452061975544955763576835444145737075075476094239712238595613703080586004871114325993995050295024429122508930008583946319923343998783981869667878788123036067021282714794948538148741299624121523075204307798999913305024322632970604580775786551370374127521084827389346175834408843823484939679857849474521801155907020294743482942828301415328921525823368774733995956962902571775084969397447020339264391181289981713527263521918662091190516507323719379650868600543772497234979501627499309013617856053173163080953922724227179388524349462424678437188739676301573497076586558856327475897295137193990381956011023043541622335418204805895170191102993585457370077206145358159799053535636748922772875095196067998416538167562183658759666366394283937442970366128666112952404050039764599618866773023038529393709149365737746238071146263740617235570288472804807787020604638542409720181023900664212090734343608279812468517717555013941659000497059484660101229004778852388429350867969518587157234126606571369840151517143391700140573920316155326564973250324849928559142264998430967033265736129490871033862678923384618910739275731336155599878207574406404008451113045873532581912133991332725892177790646222644124546614847902810370390748389490001548649957571315491090203311727226902314132984836702113641814839644815204676099625219684995269894639858864334502518265766139177455419181735513895465305611515057614048091397860712715398903701559540568745677583522176431161677473827907945251169685513550821390218955230691571167252265735620713528601853460763641124622074810929182680344182827139694341930035412463664927018618010034421538388150287685277104108808031326201221416429125691130630336632731953066281620926559930772084188641685692631368746989927364168218333608182415624200190737183535715042643666220161975624445088680056143530301025007243952081281657551435456078427902662650404369882195371821712538749599051093640129134084128476029405930337952322959204386032496478893286930108942433819667216203740776715022388408152630924076582597735917457699856758218953444764603503283285947756465679008197122658785564271583749746699784354640578037674307511288932318492423327591359220645716480276003757208562267987955634331019064020273825093276132541598619366103715236844158926875499118119383878037407082246198120557640798630563712092025846347685133409403026143686935393553211350838303517029325323782430405735617028537497286935713634291445257547882309913061346443545054374723516321334961512215441669557977060050220536473379866385645996494341586617372809422780483847478375681887657491930886032727632610480908379303736165749399677205164704374307855372370801432176593378833792640921150645228854335994395650906551117088427531000044430629149657918776824969756448864923394177948423865933298091858891080629632559696668654129857348243583054643683567303391162822641242127437856857240298480543805812838419648610651558688041426738662909862643189817073656997776787765693765589137003864931016668691274488597266820550142615190642580017083609996806699542073160797322309274389761375255512689860725274162787821238863001229464595252687099195558167102634446733897627999981258020746652060801165949614591524694162826996123261721817293367665943548825050288369336155806033746883701863994550752980691367457705948564923265047895238123380387132920580176672663841768427418789572150205642898992863485325610416821044460834266942811224226426399044372979181119573718620750508484279762231766657708279738719883643287035003311784318106020733519570386708942533537573813172955635413008061616287379253001106942414600628779708785542801548610178565694256454441208484794968979730917907895847222127738224840891432190188615582889843055037006686732311453176609543631611276120335287288999841488747357629358378138102415278098580412642632431721849160122423669165623912861576431401373660682444050734768413799085521738145209586038398573504998030229198164903346931730640723493058536370756344130069268752422265201078258471867333373126778255204151996768172974678721057621793692565417581575108770983644871697740774178287048787704949677052625886966220711876054038673133319866326473401235211134665474668189666357991895775018507916414470535877622885471098170419516889537627871869074757779967949213323991470963359453122272853706280758237916348784716808629588989214706609206769486489884079476179516425304230562688389299829058304730588219008757883815777319126070041911499083776038462939523031125062883151450872485253276495297135340432053745374520561226858686801951713161492096032306167960966465695764030633468678330242988976419681222959531124033875810288341482366735712336298818776971405357128769987936721227928099962985690235309545832598170499075684195436467752635029691060159011036150267529256339883818429701486189657843577761506473319242040180984082646797025588470023641974227743459961137021684135009032261140361185993791275231976729824418883582107774156378441020583370007368843024024559188611789953290946835815428828508367491644923347983220639384593798844224163248090562998755444985366292462699985674968189037722159366072280859123844609280124477981715452028805257529899804546133277515964715059771416049522145003374011252706576885950120309505414140892673014864600147777714236202205669758074004816978975673504570355100619719520504517329946816309225230102132377958142668347151378408174534650176443125986701512513537284257997275355377835658986500361586911272736466569631662938179884614183429170809709123524931853248999473672630446748497077467322371246129714069921904716823214888298543249141054639058000109896063887059276137746240712808884579642615849390861619856837802598376379890613877684965438427159903401220841322336186878599803389106012175238718849006996732510316582489405102587335763901017453108435658921948083779714051806448919696716968689232493607237928863241889963217039142797679880715921900364573879830494477460673316932272399981597285048672699730133077567975244787375355244805763115329376765990259963454278557185163138800526620195851016287827527800622526468467962396900135783896343548519255172266596416666360209126627223618466411539878674351532835195519035583296944731639304253971586412918329620801038284583078177462347802545312347132391130177503854676843662428229204206349429445334543705526813225048196721530524950150592294789547389860940497855958835091212061460890640085873065040593876269173088697109365231449974226896796232093199807344014610834913326768257027653227389179363605598107635275684838549435864455426693297253783833125060073873238257311921705397800274626963684362461246559358160673399762569630322841628686398090942637629992763847458390841308566060827976989682751191600342588520895175772003008169377547144396773363090969508622106069202225365123168664930139819776898768321897786794074009737749464455663732435986541820421123591815958034571722174619303820466002288091708160992605546638582963804891393793272459635169243677947402632918749900279059748507770739966463134345855330775780515284962898527283275981499422115940008056882430109617070075071543081977517440296107701685026954854650648999639475248613869708657249645640606736460388441676589778571961875831806688730409744783990182352027944659569394126700675694528922916072427412591669755376211642638085559526767976498220386054140293338287954131659553434274659826153906549066259942387870607009688541747131979969901892817637095191679220556020552605045484249880683434458655605139892056921491190930409901197141865159621845453339866080496468167684661491610070652096163212539681836194854828797624894322210353471013170033639225300058549996468781893978377915647943554311700085327272219964965199678004657314551081097710030731675316943037164298704389273397247258952935776644922191042131969544325342746257821331355389763393144108907489095254976401819416141125006677483658429204182869891017960207474123045203425587012988538484409418840299646405149829307554173294603336198982907315118148381313995242783047838096159264797432590303447117350930627258062852873831857112122076321423239414459488807075317144933851783339654231656612664725421288863692330250150964166567197757575013966907338849369662144468271196932495283213578789117536690460598090915161981204080172948452456981569590530340353640777620899525544309232353318824473437545161594238860153365904039554836300703719519034270859363909525100804962525844545843079623222333770456588029514224784035390389649227895032321954759278032084515018028714829818962494409764801588650251358721278174457271918222625008996545853984594553174486202550724467134109029686350413369840198352691403719569194813432563148569841804508329911161219572501191946400113820715341262173264930401600097489949400412621444098413200010633076807573853742655187741670573048824848623695045029208648460646193598579463684281100046751464547276933352155456494222424918531960869109321959075093921984904904035724637250028348928561492263186025196259100174518695524436459105093577496322355572805802880734135426861535473831766935446479612727338347769384693542963929205570133184506891396264362716086124134430189523336033994171951461196887694530641510605140825413097641458798979020306305788266259183220395868290507402631272667237199025544502978274460221804662070654937338648709201900552685667793907878745069161788145717055153336717486320999357375398565084842351796407019035672879853631131584289747199888590190647381245234387158968213473476410583785076880394573824764954640343657054010134535463932821296723372925319196874124892263696937285925103204643205863547365112172092768394592539897400013173619135310468992306583321185612696416812685473699008334772839019809561973470489914559923568747767798029994795468492832372475047660381896052912993045107641392947038883420400193405657833717210494857336568299211739068719560540962121128144764151008499186388249883302810058122571368632292254591917025586084996769201276179366988696194992637196172288987268024052855096179540510144446591914093337197803989215687111197065013010142253430947902674316835050587104443887241298498798005150288471549061633590502403442184808678947531806518912501035561194537122827296581749368207813868342908854683840774849475477716906866857039740149002910480753701113304614225222996391298197747924521936859372651958014245622280387787537739028354856128169770103745498759107012521907643102437128414454389817399625568741633703020394269576911238019108867873223428903913723253280910381165293270213383770920038190091047829924433700736989246970897568404278500469592559137620300788732250663163607595112251711704650189423658142798422977743022210810112213396378420115396154302168105053748606307557739093978943645808535589591501277489324514606043947498429939429436870660805254202457522809521384153527909723791869185312286287981529078173529560905987306558521210947776959120422089973687244909268578589495670932548579306666754713225034068436407274957741498959325767756766019532004378925802555115020013567396610478982084274625753415459660391877888414253433796094379203733898648072560301705103614431569795675952819749043453245212655535039607083261913789995333630809413098482482130037404914529307210434474000856828353588845060105803269654794557085313620903772686021414942197938552120208837079301206751909859925356699271127538221322517960624687864618441418866943258904529955624617732044863347520653235025280700383350045442655583930568106864032304563359445385494180636750447974253355000656738237969978417035949522423017394872803796968330127952054212654076631689686353538828741554066499576680739571433786943408283214495584867181530305712259733357880509953204227317604553231818525095826377385204387203857514227874712690854987245151208111132168834707077428863762505186137589408189238174705698771317974134984514168914630881547714628203253196622982685754236548030715378043573932029867797241459177483592125653210579725900513720218444454548323989362196008041129688183755379891758689933022851604243802263370316709461374642756252095851714459735757594303814894229361120821181207213271629063057551171162674312563469545289408829900029103108439097474921052538632909143827992647852729188375902953175650915204539849488345573219330415821583923860171385485875675755265640490469552864964898172847867917476932935188646086498126683542050927552584427092065226912726294257785221054981693719334841786120946651517061249430477016456035485916572821044456998603762836244788138790682073972950147084495033046834997757777595476299931929923910879075647973144204535433421729033974213093475349339552943994919607139195601166949259136006760123233857918302235805926701609945402187758971905465371204398078868455890143704150751494545825863249564780700561855314681319703036913224254188664581822316533853099056024615584578118293257599242016669647900707542884249775420068739161290021326329293570060377459092119393710607876518946264114933092320256143224067970839775383446747419872833547721606715181318522416744074169928237048295494607075323533994264059084938078729453011484385467292391999959492573580849856394094072925524378985141928017778584599430200914659658300202469254621609526643993725478552715512447431595968872876230953411402266667557411050680141474259239384233836898244787195992209051591893869457857900629942998174165694903993172960874340408362799632408558864640004190453823648371759871810533143720661525058389746607695722030053362121840915008125694840347188158580093807839760555938343489202523261970210101990293605020250158342397667933541820272779377083106874827119583571992982320732142197856391783659593780801168764882882533717845821812512495366969739835285143009914501548009637616645827544744361731136431287018664689081797071619705335382096277133877718264866003964936473207389982445072216527111744604706273667564047204612301474452555063382474023208198366440955097352354305270960832236021141423776633618481911812765744966428635518166622193668692222145617479594772201021559037302306104875847798350555598843164253007789883404221304763746060521914595631681480011583840089528783885178643766417831728451581680033748714538597314243728128045667256231961785938928802146306643195825183352108408198724175932216551351241726071982084489681239923584588546773914389517058683279539503550060236917690187496107958103177266812286539534511595448588784943596357373814754977885544340863793190291075749143596821074942331662857598376868896792215517313537392339330270301138137034227989967384863787132912525480654209779517244657130591700963110926060309078803811450456183437603375645674595449107333698364503242924413392512522230306953346713855241393414966134016476711785328827945585417991453793274974348181344738098633701806744448909751964058418785589607553276320844867608019217550580253274812484245406748316142544729989536103611025248688127564284155224440790300391681898392347211102501190193010926722088398547336320780632584271205635530329391995927435668832171647048148065479132150927262632855285034497649620520656468958041992243265082949320458552649912822367141912691619167548647934508597729986140807318647684852625481849803346520374990648306185664978219579819270083528810717509890330060989672918750513421427813486564835965356066688583950945065823660910509090200833815585725671792137760324997550664590075734815838967806075160533127267542394721892689875747392125126336689034183010570666131034120803690969746927467299019671773877058861925434846079951465877644428369425368373100726700048943758516039679658111433382385132484302811196462339148139479324102343704006376594327768405502318006695690892791076524577439108272607808448239824239506275418791117130341262863185149863072602374161303780023903659024843948332938506246034257614219337319720464129589849724952770003908511588487447081889718150936885398657892584113785818762970374220452506796983920418702058020333414370342133880087662767816628989984484596585303485659834093460479101192104343154365035157366916982959290583567085493645275143014281052787088448916218326122831692951473033037312061670427031727901567860023346218542662220311663736993924803506144031219768749594436328135447771826009273765970327077643721972025276307855556129224640244273655149031618681219276722467687992788759882177182471402911835986318544883035012634141593220134221203378675195494999933170809652727925524246485418344147936813941046347291016313821381788742411978353370289386204737242863230355152496719303953503520502126827407593003414837688749549735372074335271413648000985692960878173477610247438518128287734814888930178658486008827876703466906373110187553367990313603396053746753566001555692841325095092129319655995597469085663027678144639011708516227408631887049370987618961726330032732517492411715124973718119177978483124514569783331636802491794610129485317141592727488856603334160632632671238001760852262978111487922312381397443132575305597341973893926313046327298164932280179029991184802620615307158986107529608327960552277539147980794375216762487516958662123359560063612906134230531131714821636663869973629590936356817356479278042230979115522143334492828676377263678700215775831721833143595340793097903527391726184083086963940652288426055008723377188788859634742000638962084785949230338189673785824842625207395041872074319401222522342246726634457259716354850523334476703660191822252794984741327104706970747650004975087675771851284443764173359450737569858565332088225135455176588962043002017983571606442375729284737761182601048407194039130063821153487883134099791638275083439093626377752689832523868122904451305652380192386948061675645919879187378942229706089937614671053000807580200589691015394210307090923020117265503584005259224851174233596481335383163825642727148270604951826936035771086162939812673579214812609703017913724560552775319323316410908660251592905409672000071025745870793029770055158886042316867224598138396911878571584299033327732742172534269546949379242970861898735446005259801040625430013040338543607531729908544844337894871613797638007210795962430502643261593910809181296444741891969976685567488808633679872128821251807391933524662288339284048306958564085320790918499077819000833666359783364833054639904349546618451422428942372433070164089807904047743339033300368429176503241073941642320048074412729875952624765890633091741184828185550510468203476449732308440554404485495207178650928280804517660902897946531187406606042600238415379781896423688964894648491949994137074113155506933370141399005989017199989930213001679825146212974960264365602620219675556200231110288899578446830880258900408716035019927824327457756697048898360838055637164769182134373704323206530705310660944789293342489206787325059763788913625108651333456363274039262612099928956491858680035841371973864927725199970848709167204562742879491117779382869341240106193556096578702769375266181754045867889374404756174317636069496654947216001224514222324979787134417852590431647365263641841452588542809905121646215497277323185525050191791490620055519581113763901351923513193257604302206491077724245645376058047773083982300150114629440876274107179167015041806422354417894023641113266601975902975493103743715457562044853633806281557579856488536791866863011566514591749754449018964171665384167052061479859629120493448371668426003446131628065719656647862740163575533320791215970687223227825732708492451938899508351801067731691698635098189811452296509001912930655396592234804653760673569532255454682938042343626695989905254795471452798465702474027111616147678742263560144787041479819486425113162286132173783785994486719202460450331450841396059865352497541316330256426538253259794306619693753103399546080142968533884367893098198648523421263865763221885224258964287419927544155353431438658315574525239649103257730652646953319118944429338999897955298245684081918719516787566060568298326558152598349520469269952339096954075674625392851572739962856832286504059454807681542943179180415644237970011156163009080604800809883084235260772430419281434651778359632427149702620936587947541715012367381681738820112234899717849003883920606123467505179179070443132556101443098623455964568402992838728574343485146646312482189863056093365504372685418550254146806430695819328574940539140780267924106785695799441027470731486141805829932494309124218401534110336896303746600406391657867472315906266692013853276812494114227370938260112104869446090535340729997375840446282106591558616287101702889019256425752669992837069971543051443870835914696748307313798948779618598675407621400014424452543488966552347030327278736358918353079079499377208483715402827655180964966850099100055356694544108626091416807152921198943096252239956700252545895593053011681353540181942439061875540801227032588332558602406960248427206078414751993717040221927952199517589058692223443877400231678357988704159239403471222291360815674111931091806817229436771035495152933991798622333156324456496036937745106419250537594450453183017882813169761399828724445208838828398004531654733290722127122062056950301030065158062927763612700465695954737526417701548646206999034545647190139764789097714563786573734859578192704559461606689214274910408858807192818424725722247744509311036023730876824686260148616323407795957663355853201770516523978772717858904537216821495338518983716128322464069285132608565354944401224599038276324020173665174584961591127326058678650517856661306984082220402159078839114299723055840601765915849084899331339195408896819273115248096812961053602447103205967047139942661412333407476809318581493082862126663350953356083309833325359833109213691823638805257122353551054654504189945122368925519047424780059565397641490877364614793302449060447934252406455897380941697282137239166798253276772854813473237137570621743899941458546342837551123140912410390287691691474270990931941253473225410155176787793665620228090641651566916310266345664114460504575505968302368444731747199722915421552226676847872559862377317945313171151621109541410168221284207980678072214394047200022504307774859707630066670904463230588477695570110196946636878336764286273445140637496239474185789492612142775270443896029775669033216815319857101818118447759978417163830507266412354334697526287729330634713160851100388760287870827302217474033117675060096342937411044443247470600648443197465529009128060136718415950978689499540419843100066304376575692825305142771780488904601140910924027258379596512262365760182315632659651667093399283597307755826789352341369164939693758346453792522846957201085733784130456676381142447644348458658956498125348949489439790430749360629794647697198791203013114991687351452141988444020649389736292165202391497742565591765332710232263539019326092410371888582948395342035717044143178040486641776504486950550308769406051975313917046251588276954254503526776055251408025969719634996618923067514581743524956279019014826921006017201745816224072838200095987585227805434270393172788243195581075668949581498034444634359764946137989532304867293836825094222406120296076025650751144646989044537149532239070280442156473167643175416013329355838757176311868401726337192305706725150278857148058546130842686869824555507849595008062240779323825978811127267234495182413286614682393892139783001980422687521596716510030671624615281232242700513118460156859447974912986786620639614549508083462426117896404348082066651948332278179639411164251296526048948821170900304643033161939878528222703496192154750445860907988086736281457358391748271140011890012265549597351882281670677487419786849288026070532615321773366761836038256590221533643169350462024589705908687340454162998836553756719120019271586123245693286624170436569587570332061567661005379345278051201189597859763968504234560123295816961552934037321960694758908243263782378219926973728908447951215295209128991935268884793216915058335846692614413997752977920003739324784171367908176952118621662728844786616131827270513868600375142656497552887355714078868206731810282478350462013071097413108541034154088934667030378841559743012600321339630480700070690351554669137972883014709630832361496246925207275010066275951464942627838426154630295343110556063810758628816819001923669101561057167067814289825318972767482087699467259154692259993313268041917836639103401840492562534392121066985015008450169530526139970987310571901175327415080179504591812577359487244094345779859471583558280805037215770880062782610857827007140218259261093865036611614737464489157834931465702261515543974082254828827095445665287845393859585663497251953332776405335180678629720914314269539496684775976954827278191174752459513470941348152169310517876749783931921870645930647538579796454788065268255343374047685108179574252022081049691009984468182168705952397740485528260007011254477167834135786544580399394870450665949468794656587393844063338938680577481555185681424648807654828326126245001340609490976199470052812600627687523508545362476133956759026427010610092067158511782044650712961003767803373220499847547351209610406799779820529071113197326646678342749415342879162325160220344000560073073730908435546703517420559695401736667526760454879491469953919085181568479138811997826966270042881741646056642556731623136307320969811008435093710969358956749448761523307382569304385307187264893393501696067687396079516979464700568021591900014373010369428858017589354672316353068649682877362371321913087051020528003562889719226928794179344432744030802545571450121417547489835539929122842444112121863582197259677172863525241240353709341310881291569018718978372148261536474748583259981854380307764833575280692741405068678118340990215113932419632437730565731553227395692176376056712130872497804210622422502666263159147335922970782555861992655691694057714753975756367282530610086521734611547560740839524524789578196324459281566333988158380365381210337366989108461019963486207340645322469534234549931452893672080451398090272146155638084625345807689767792203971246368403789573376842024836992617522523442589313794779378590701382674028636775615582566403234249268596626279330554050714247618662618438919344928113011859567328004132287457226033333819681101288709680954725569410747981922563598869362142518491135643335130642016805652067799784130565005291097379137384257063964811951719151994375952427320185191171748331221076633478457230657044871806145730892682765092939306108129140173992347944292271997648454111745246974659649643205735310219308395162953787607512831985413434052549859009788374053009685675604933413618766446057620235771648059481846322081329639002225816766080533353608073258285165432696719031290598494738695566244912746211794803226923988857288093896047667033075343046038044556945086955549645386126275453894176410984214599469663424190554215884214561731664913366902792644692491094964550813092503206577926622472523339398308392751227489277552921554695763770747873448156391201846664806786108251421460966512295684533102907126449691234133452440919131618798503379622596021899746922190704441165865477332810097379488777886510767389782777625613053328409504432329570093971367483560103360217690954245719703176612357288376533940251486799322119354359217978595625310262326039895735215685478288373988117716697077568137804069208978750068762558012801620186838150443623374799807875137295774527218123780498616072238274432713284270965661311554877970017285576475146836353133736522193741666064664300649034383132984372518121463990208714688616720427182492266420207326665539592352691877138537962106872931953467397242641992224000683757621265369688956355490370215373043080369398541148407919348399773656000380310972798782044127962312522561096943662731370282536211552742062337289526559332877302954404689918744301409327766644576319251978323923928795511554587009891055735082768077953605396087221705949818637778245114304607073088408029583619092981718860751484781789574399349303038788877438168894390624988584165717105598140478181897640323235663188335842968605537408960354628111392124270523886153525775863484306797680157835244577804682295345549919072991310568647909630826527929394292112084874181487234395340722611060655286830051298200856060857893648754628917429944092791159595315258128304505150032318233517708625123628595657171018615887184177147581511882501109399601692319829774488944334678111295695538160686317220783679270020725979100422628303515047530337950038323961821398200041278641495140246027595423722428148481284671271395315455343798799878341600894560216348148937061498216462861365185300627155090701552426866510445541046343756508150476074362234686300574936669652826439355917671051567733690617777426354675107635259837994396545645166370915208072913400015085100416999904951358759007059627284271271332242310491948588828936174232610614882188181488748221777485449209162314067337557749802043455264557026149117685965539725675518501471542254531178248176267174151124101284275412013170547126718815544630092180030762043516325845461844106629667074607673124319913357447851566874969019016724537089958425946520855396611128602537764770401209490293726253839783836535746587677215989833210732586602865323168600304413150643820906508500163786376977044937317633734479246469308428729848660554877845221750220408681892997023155725721420228585966658184311186443586754371750443418297574603280664517235461033888438548211791841866898396292056660074850713373030285134084309314267303321346181972157742551901735132643975917657786498073782696955766334513884495756674571045499707791950673137523227545124145674481423356611384608347883925947401511884936954871142519090621519720753431342475498116052686478941439018823932928501870692188344811869155480249743108370110746854107858558810174401311585584165728110860661899895605454271849300186878886519650153196749745300841145559511888138102837775230813556109531255535826898430108013852559706446056112514879058971208273788919487039955596495626392208027229937723839326602529935269295932945166392795337492863078265189342031681709562907928627082904904720749978803270363778550624995388429804859788189661147591434034440185890773878958793456643223346675710327169090290353701561125818577395140867766545850438333885687048523835495149715435386995946166637356373425695782137840521464932569063738408315399090151696924150811364725863239329170197724949874413969823170043472691297778988320020138893698357728738092846131485950348077701913214570211029119678761882171237847213930158275637266632872594453614633446585710552018466290122982070189868342214193954145240824660490934944583144165707631343042778073297788028751555835501597577860294366493155684624231697632458805517888281503741349853658788754543920086400110762448336399324454720246206383384113661485447436395054408289895358352898489858867992133119828514075981332066815315360151496014516110714155449694774880212720115890053248688958624754978568346285491029347146103336262399681316556444880772844147606953525412835760549007003950703313437063691210790230605412568349685121798046622719008796569778063998511142199311279585453672597326873487635590392179347857595914341036349526275641028847242945139884967005775147466577609674227964563622789871483818845539120939482764004352334003839433061529404835614586458402286549940402612638485768228604284126963103040912685068145076219657464548142347656466560274101214839418865805109763774919901695101476315834439687469490597074424582360770061460993664602382164806445000109065432035661242003977247270844832568503948462861442234430714422366124812017476333388125041209692573411530567787940244520436671468944632913835365475032731296921096887208758791788244516311065616919046026850564377101721251110178616778158614365129167123336119002053591822804058942306904721812590758679568755592972232360784954868324688635965776754436544335873661981863586149615052108633403780086327864773802625740520501029094726112776676098064677984668117567532236898531909695063915719497954911628329088901885138357194987267481661147790567262439165368931727148242555512059551069683811706509367658213777920471675178753310100001478808732125796417786264641661230466074459491187670853181740994161695048911813190026319800076485489904683494724094116106211291236007167096677292569312169078054880134544362696737000335944374023349117585441227705111238848944020605060232349131371223410664002425744303295309492701539063352180584085391318317137871559973581832515574512472710031661324767712739086296400146635364459143541197722339683873951975557857774735733715768618946779696119716612095770760991288110547859982387303426407482633228904195394783721285149821481095640310473448067072546010342629033923609041531480220194861399660478270535890025176171631505427063890051716181503266019955109262214568089575242251342753429200636911423401376282014170663793913459028686993882171904417671439713679922837542021337119817072482152076243319988048797441348563145297558294649773394895204841418235649904976197728504061102625762303030627256755812736846939336794544442452178273863547156527492401852829930757208205297744114767984798645334288972204307193543358088470777265774418536765264705339735420543348007151565282439492611306842828604152226900765468204058530567152095204492847866373355521847765263801438863780472415711241522301025063730305684733358167945320917994773801947120756849290402728828703293425413136990949863828615029198361848158479768034816701966358581522881912767876393342083825573681083114909523487079598003431330821345468835910466721028580337535109873821911708941225264299745587563168262795593470421260935898220191003537578200838652798353540523230975208855524677461186062032200285182962905346246523749393177206646953076017414421209156458921140555817454797738103006442070106917712752370525561453276102904131569782260131879580385505766645401552727661054271674256928560578536606809463582900546361126484995444610737862581033079906776817351175046333251461226861542020119335850430027921377280075540437218370473665690724426075599601757753088789506807094748502544240417125080812870108494493875217833384456445341930072639204955313185558751734649818204303872695795356033713738647265767561002875474308011887107722674583346754967516596762897799659644644072331861480053297600427417584308098121443516411806190946307657585948449800723514341365727923804600493980602746055960648870977604670920317306817194963982836938350404437827005375465160527141029125282606064276581696152623930589754559636517972349157489168655643012170218984843691529489037125853537482702559510177839530726219798324501292776643687836225937766389909753677486264316464106635804242607679344351182741451010680592594742192772076469455503590534343800602931638680492015205403041259334087473865353713750011880365524614490604633699757317735162755996542313754385990587028208533238153542545194691799431698346506218224772007126244397030063514300937246476414746991936350176231961251468273652299867287668479217038040885729450376496105013979659159378572454333585022922068987345923099028907278152644256623995716046742401720127728798874354384395550867952817209052089153032629258701667198894994862744044485749250133091543457655583545056489495508942167961244536589566364707030088682743106208912960433662020525666653694272054024123557879010424384374152822518660476413322388956035763684150100956165532328026722268353829867325358617905261728313155376675375791702174478059365012131738282131220591281207026145408023349046558688749842932167443319401453099206142682397797600224180367495726328014967895513087512218276891042047052006067470546888943647840137346891988197816131372281947846049148796774622386820014211586251192101163909354371665778422362351974157152785149181839751480581408993486441856911046431873818708904870856163968262752496171762074769202156553471738150956208069631444754897791099297357233965505838243434696400658258024055959098736282413470945009661970302878660620712974144223452999060621426344417495622024288531977304250851621806997687599702361139033008927109950214083042318821244879917986339725376284952951376943591532913817747456923244611727192801835839282676119552346928241659280279903278286051023124325294760517915788300148422396708922049051334829165348681970949174324317874183182384183505305823847920519199503791548636698807564120073529096603210816095738778341047427121483443179375582039674352242061659942884358630226002021908029558617744746094382503783357165749535842531987225721563982319819302482394335800084168878084485660055255699895631679532786653211062940924360282352138020338261787970164103126317332382626657416069154712341090332790351495710838677286840678350442847351111886131799102962255707773215651321800960824877593172527611585673683427475737316997983062016778300609217398486588797244357059506594535775012746349121895369806495333213165250270843507241661462931290893368013518850445737198319439563909074163249891175064020135941418775164628747338378168309938385932231189874122554865082563162404187209522423414906916532437442308154307551709545661989579466593745303864113923235694666356325492591884931506458620402078684499412994533296981281791652017262214829154145558394120479394036221954477481181291188127395639283712686013994400980676858982822456269006327910648591249776935676313079493385774067037827400276670514291984682524147245220842123118553847864702684628855236271875918651489187812653686863782829991634038520551870658802154921747717569858787879974835285401091098665941071486579780140820329914769910969949638870919186676118836368567089900019778586654607397095797325886546460236311076888526410781217440620020516223970916592025684338027413218987507275156171227868478237645659901466418971804350121578998966347645132434787126647502269666127789836258848638580818832484986652302759074827978794043074764453052936969570759203737473117079565952401744131218216123025055607299593227201987893908212230708161682912389254930190365174055258412473334125009362050081281488993671677169344933919751362065670617002758986102009362488464316463549664858313424861363049929181004280290333069920125433626303146798461442607359792977507998829235046284729628528489896394059783019473032056798084751065260722311157606086839030451585283917363009862464941178498624896779869525146924360366399641472142319852845842585881043458293459097477780633489352923229903521165079655339203595142291383177387480216251724392146936526356749139298739416654044365587352604638771038291480629155871472283905085321763673226664354216539776959024045424096790251886494301927725769728543611021154519997693189831153364959506288734618487333938967126423230737344413402501903974071959667656552040072347176254982332753529394608919461067871409962250862590822340541083043831483932945679618957074278668835575222467183464058725421448452993827196506140203105879660263541957351307700584197485789927540716718062717528214550775335400108465585576825296115179168451320396485742534146906910900650443230219922788407800632385054952015274918834624826913265102193264220979181332810233292273446216871736386051543453675727871304735776357371450042023418850800749587080572895631091645488200506628690673829868370630580485064065394894078463552840214970022984162338076012456718233141781688426021908075995402131488743540935897333308116113071242605273964995499908038903577439614389276866690437801710120361965482358424656994103187651901064017093936915724513546699487093732699642560735447533074543114643087386504438005252761318582403627625652899483071724452607918923130402538511549900065657423124190683618049422620193251874345803087160596883416625737504296794114273127948210818574137705024285732455532701888642427179755870812380750836798791769207609041885802373936865603355072719769966686987671060739618526720257454186649792053919918980769988896850791112120607477063471932976727233379381852726545660760467675080017778047776869846334668445681167531397998007002583553576741584016358863217868112660290049027402229107742317342304857042974642501628412526819022931082418489926980808657238696760711159360991965618008801444334124724308873190154078820854005498872977259666293811858133938118455063941566100533631360887114820423825363307067067519495379837518304158509400571838030435678229384573747437661734655210049616527293506158243651384213276296946702182408752748345126665899619843929787313280806568943537268137023645733429441480860102544470870178896582728262048006551846380088597806602631539211017323079513926975757661198744976610314992285261267248549799320388427174128091360701424964691909389722382460404026881686279010706149981862531987676929493773382210396506920667859263581460637113707620246465719649674876831004564527262028017310562825664797605214479891985214610813294580935371990691844801685101887641922099717484465866388144923618775641226306489485603491030518578112302847787658675722803813274904206745689851323458551413142036025602099900506961747512220213031588179620442491395893974556357615692697970489541200745147015258743133836173303943470233530518300600463815026239090311881676679227359624220701693343051637468744088089642924325349994122916741908311977690076036496305062264176979591448084071846039080003431505443974639236418351000184687736485574547736502639698673523041060862058925576355917526555755701106227004022727085869438428077266318106715955971213135971263105269186304924254851775150502148103414004345888300691582432881237124329667684987524548459742687345584719976984217731849174935878843259757324733332887148064803035237482507998041296238056295140380902254353918819048930947443535822342627941617283103966633112448315243412464038220752325999970268487764725278905797262614854064473020348838090324227428380282450801127144410429828836582668007330023073215105260864057909754195428394615200719813151126420004063395867239796749173145088122040889727906735437462518413225794748376039287685440917918468423586336032412051764769225446174071413515096408690977136269230648380616434023858433773506948829577041134966419366627353988119313296350159727700390065071534406347722202324914091983822788109564831860189698724598801193646126999988191589718620627220905583430624201090896472910755813421572081569188936868300252615278879753901397204795630033424209300957998226801445474055383025199451220125937335247237146474243953710698710347358739667307967076653986802267730910946483242219322659236843944361429643542888060806277294554929419649150819558461783643616588661986954012631732524403022334506203969583018235297969673615940334553095137360734535708660084477540933231321088658919904339156062701830602855085056106853284230270534769517921504686949387316958619708484998153630507929052839712619598309220292836951887504266667357912523849804960269051472227810950729257752042082049550697686987854862594798105154727447405471920595146582979899098683839013512593833015919329676872547970179033322931044995451367830293996944809569750523576419361766154996448823924877418999842540164355194446344098647946116895688351864235059611353262408619221454243253757865575243186084800393597951362537524968589099820185704401505591607387568900575572687714071134316399985855986556168801184615302618376936103165978200009555504032964846603024176965410576284832071688076377373622076651389885088848223044547131965460356485780464217935218094611752683897616359183564464538662647247659656449986492501331827820835755878924877624981136696281931093872679682345342120764347718169724563812428422069611055796561209200346524003468076252860028380279593803285294491020508429874816077921118075595995218689447092654721911874711338293861329056442067524124805033233137303133124139900835942164852876043743869950936512444185226865775238438778522449642997761540396121201985594406953323458845875111402172605409830156085379752934220828859908889022451454919916875909924053090566314218737816383496580655328636843175151977055997535167569956223461648905389038146924230344548479369113900214122549444380161115808891793281698920849754807831885226888562286279431105719609480609475172156152840789863677790322056183223859959964055378499667520733722575295954944861428749136652561672965694184654141983799536157664209237811253581994932328030074482001485072248047150204654855782491738584314840937356142237258557962334092166890843220382834109628916787985778338083149637151516173109989647622231538824486845635185799746264065325253391858393516681012770980176461705857987957879770460272639766837113501654239276994459399941626761857711747524165529901378606361262990997433692858993212781973500200495801120782502507738837169764580909298984944599356179038158584453413007469112433120593129765310811631636181940240809515445180127192192581194460813332915781901778867456131563189559575412972008294363809315758129918361386316360491017203276964879318201213541636661956157617747356163893219861153743346817158558518461646652716389705999577550322640952516937066708612590663368274779917327425651490984539758813379452057810121557498182917247495287313720096564494161710835949130562172505866369819156970489915424770650537333320647769420181190067571075049251339515759734564831936685801462370393512736785386544071826418488234101282427034398912303240724437990404794550357747269310265404409911599767793457359171821507030558130326714030554436913941390845409893037307601390849028006666970579652556281863635294206498126923684713573115377788555263493087198286503705581577825702130118859419107083276464622809763506340967218443916134700773742049085620263382259656974587859652821042576263072051589774012518145320816794443609818539328895578864311111035359964823159597236887542950089355921863201140239376671834635300132436925236828483302368647505224577505903399128794157221207187461639203653492384683064539094274405899503691916953530785522719900215096025431057359853125870109388359182059937923732699609096424774165228706706996345082090152203035692804427839473380857450887340678216159922565151490160938945213163117574652133028424206902088807161032951422202908376499300098350613861407295644073182746742664402568007928782193904050676157829719290919749928641693212025060053947138342506517285231041800209538749448298075708680157386769739278248728908105822556308057480737595522246593122146703063936236861013977033959338168571338991550115491644177517590463728590763913601464805697971161788428360340050960144667354494486923245382646249342817397967567510562162908336440748421254078697441979812518616439304692053175174298805857199263143144055124723813375650083383602428343228116746532713329030598079935664728926789159999654373552966636297989588970411271618790044116402819483640965156602182789942584573005698355750795861160987766778907801050535535123749682771284831095557052485682821862678816997741809023845945516791436350288702262154391017520086331114300510581406144838110361280508879207179251860814252913542906344215155096465239263097949098742038146266791194732725408278330796847185554638926380049737112072703818227823862063390163481775004808894141845518571411787667702115481147666554068328194357216594590858660929543488812456054332492359936934670885051982946926169418403215705479714509280289853066219334268551177889726913237700922226620278157788948272337230771007186284344569136349991316866903350525957371011455734956929744168705002575009410516625760440016798832898437105910429592871803512166024670859227119659044713862126251283851728286738086956680028558034409966059719681444080195225192624404422346037167519828479560869577062940714226272721325494797790601452499574407826087703911648713392546873187225404467875417338993496599406148077039726326349327247886938806754719138490431004292986176911792495424874480508832352252040048112548793924390438534673011734259924676975241849402210223851715973010629060923851773425178987585366798026019295294189067211704501025115820496901835885673212005013829277621209932296174262265726539306701705124167774310265155036555597068570466382382414792357210931762238251575530612672442171595848752163061434032344305422983831308746528270109278792497531523456158915247401911816119344643825270157782446675742301722626882221550322279004009566006224535526017930635244597557630784152991928776035777025692418071691033360863165030249166968933428769742032819201730824934964472869994339402477298111938755238885922241843102768589155677451146818836181626610838831591055991146517231617764606488677770933715331233365334753293595883923188380226964465939262267094976633438750657890960857942487991508610840021963374976305121530482873496370035824817608369804230340379418100440225711469514110359609722781483438354493844163450905048484285020975094257159960862123362009974483440088422935659857479693312333132771982042502233328633927071402704123207516452549037786334654578394448183625270868482438149244118952390254438014308668812440431485840279736558278323881833768323608577108429021042249198984766670131769671076423435100126591055195833970212310494360335203913881589563763919603810084645931853685298668259934902174490357746585149355280634529316948697977135372566409665139233702554010154003061460647035366461457064005010421461185494743390883998046966147972218873946469099936658344454976929213905742927979775834741482355986377525336588599817747423778943081627673074005352194529385470661559872272542045868410766907423492212610846684221969741572519678281894195489629624501385070830863771789638283533203010556937961312104278551902345266235292325169642692584011381411966319065043795828670416785948171957239426882144294273590694969149538872189030996581138330911082201259203564317152383349055808045813671345864251392169675957577258729427668582211202831063538134567956028464402618720827030253465181701047022012373537250074926481665379656849121738387227748524209203973441558818553498362553604373796732014362537055828013213605622000073562858446674345949191427506135735162201024973164270910828260380233827188643049293345511196232997714589719635622912867420290145009319046001955360910751404165005404937195493019709871395854481510188807299340094103058295768038422289917636069762487636284342237198613637417330007615762371226565586926712350403662217247794192695114843846565754390082244256870439678178035888844012587710534999356023808959751631797389911119053212023044206904440060149196681709875481622841259379696592993905321722309988194122770657864891564823923225439148679956300527408183348886557462193322029130801558429420378982751154819250620516482736262457567835202085688288672255650037574609243232015213363837116070909141152844239084557609122599550426401069029720819130089327117566772373557429807605081779159718061201565360790889591618849922918871683680178417588160031599937365832228417280755484151847513808933913152865170457659881806870744367415563403767977028473201645120880002201177165429136594423477298628782883778238229035113396500772161749492054925181465208057810982219853189889066461466777464239354554969966217271293068673258534972430080130996251141029348013060157763617217978456308365286295954663537437754775264518689406063437678458160795055295890535089387815536275909160550093445456741166464365872653070238064287327870161938542887628451241198575634880072335695274236193776867551682789285430931263500653771238357974653686734425376188709117872438853944568022452573205656353646235709736651326223533411503928649259204527393940436715209311202849663953762555597714700183106354500881427669303689139631655589225551362857902306700850290515479311674757152755275958402127300705275236921864775688313221159153993822473961349611602828508996351634751172615116864964826294776950034468711641744808869525056707624762409870443189233517757983130819765946290560715203857193036124326806735491140237489530805504948539750953607715489432074246670346757797878461344789807508292332223354381134578724178828314637177050059810297008490767994915737071402567176497828520834686343534833395090101532236447039124619115839106306833427203381134881083397858496578415400116711810201125377088058378450422471753162568224777879362995445362911269311470543307921079805347334840411595492408152525073578513294589979370560110531585752651044955261168794858591672690940258109140398540449082078654674646870265837625914012842472861076434626977896001949693760533208990806722479753515593834780926296073769626486110843569445488560406527205191560359380571677083502765458453083848773408574276136988635408548394165146510350936746857642474146842151039903689989959047205303619925555156037030674880701161885065008498145926062640718033316232287248652367886087374816062714412653299647373068003830222165783121795760070597825918884362835106527723439440620613911070913412649820055538057907728429833123422617399604817112333644659076771428383205410397149752987090556685090497347584170190308619977676599892764945273374764472024852431804053433682900885294548508250227090303410940267131227161884941034062549956509077827431589578184649782489336370149607580434990080486859410545021845287725337744563992048551411478687427661641309148614611800890560423092058264797347705906063746252281021467890241345241755158442393432208276047194831167902584231817394899921739523880301861543973649290137175814001059257271043304402556962202863420079334665461853830527501944307421484215561079663139209997872898976648007126897236520012969331580301583907623249118186235913409200374888028384564400980074778906695617012589787614300978427240439788366638456208926581433217156109497528744760529863672682758621954774005975050035730904570434723458707791153410784360506429417121029775961903034710292216721514502903839878609734823796473398993637682473193099768452551733040076538966620460688459750446664417788665282896302851505485416555896165961274130589840717812965696249417673791350902470802378722166516110068735312379855609563073442578587599396430452693366457743189242191196350227369666776093535486446476825327927921811021663291008004831907022686229770486823822782586752173983435100714797931893672665779904061129678543355302152849948640434604478817565428729391435802057889155405877284243863706912258112255914373228680497259571539989569133570218125464582758220646558876582063225916382373309934338052514164107618083878544584735989358755925866324947772195767002958906850234738215004896673310508743931987604239143722274716179626797701803845647588937582391328341625488728835539869669218540916552897564336499844231825926186917132264534261934419701543767041211099026742153931309293556371496600942443149659555578664075330728576839635937928355504372217740266166022163554472837980364645273458051732483912107963152890485550527992703740395876291327574010456185013728324597493253304077348832832237595408573148600866541061273511284375379560571226180718089252925406734933200842791836039616032642736145288721652966919099600328992957396606894615113443246521628558914938140114477550053568578795627060835793604234447278883046035343947017531860368768256267556008228277543337655712533174862010569759000594451613248152764426059314795109912709153022538521469694218799853376457308790937259585589632105856166248289369398216306717399400167724762801782398525317705322655247363259273299242494768244003942989706372947901920451966826086208698169578761882499334868780172161056426468888353946644361703668529082723907111861149995855293643431788240285574018749852882607600481291810383988630623920441073405566805583373809560874174128195787940004624652908840599201450630864599027474317958469387539854775962862114132798999857477924917835887728188789435268861313768050415808963980725592090820022136246770554787355660386684363145026306867002062323682593471249831985488593989999211976772436112430992535844140911524253310532110226218215185336231126318363050267115765756700025147722556703936403481418603254962620928175204867745222530617519771992244203199260897396925550868637786427700448259968729569167064199343519501612011623429255650554022473587888185137877059856780375740647087310215819595995860700138844539582440643952755549353435456441820779858654992964162640891282601560737978664934445167728031613861147307979246939284280509701324909413149910639532248133921865168668625309004400217478674140164234097886668331184760432452161696839232571318753616457193109288522152589674144313910735132615118720578929112742352672977408733949241831135386708445653283101721050764213333280719356741037345275442044317178659772245195008046641492359144875100932282418446333675559893679925590682494698549533361500326452096070710221276490001448396748144564410603493565432396565308082526388518549973976526312389667335800302715130523940731307257172839995210265126951174980237893287165218189506817908477896870646135573949764834046505964798088273373144069949905015238739052304987459982906887725518577829457730010829400906471929851191854714928839376495470640385703890574382244857933089124538787128482023014578003542080290295013251672372352936086410095990864170916158753861057580909351767440829248349061216006663258104695163551682022958374441911262901985941139896100593010135239709694505595281196859029897878989468691299728039153950978052025765977348349990615367927001460703866202398617413430354749871398956561023421925945440770971681583248882266717412037387706420227351967848238145843195819833923214279989811726708417630205026222467170845944800105631737035867074096450909779811595045633032866460689823352831550340164271135157318611622158089893469422023400110879024974158704983143363739531993423748134652931686956968783849351250027761831221958874324766970819426957419838329732978532559908636229485821530036919893564101650264692449080210004920215623641698687502342203947761282100437748182552984453489801055273757330742728332674146089117661878957510333143818639880290237882073592866008797511549979870780938675170332616769754140075761437834449432229246360484472863240896729041346386817718269634499851848073799318385627711281125059571848130501817815821321706522467009359632144441798096067811982006860607191200601067775241458574806518461773939088423897712786796794589479723269571146076746317131594965245213672920448759510829069114124916355464354789066690893104040484644879747926646924232369994024042450341803419298879899306521887261414394585400428116904379720508382460146496018776451947416211203435139063310323309566727370220469310769709122384717086896980899543727494625046070520490418530366688059577525287481563086944500250127698196599460380434061677329685688721363001493834041840070069438008628608390320074616968417921482467292068171254385070607938205669782360559120019000781821878498876087658332534288225927984322378240010362727488272003246724463240029506297738483270042982574727562000102255488183463957623477919998964250791511771648616414981429712505644657736698343630305356268066716624647883078984063608805586550618320402459932631982419358946326511154582891699646010437119805524719232858875799499443984249545076340308790678373361294803853983658008222347935326401135709433963324652351033966197036689306915621110089813665242774824868034212274063009633149714237023114051530780280390430332455973003945128200159240817686847377118645694590460717084432585190072979726353824775027623182279019456389445805015557508844648580368177586538549372049868619906010675700789652326623171723906007132668688662772644730554738916705207945946996621249626467713225701387466459383396102914344682538592708450031873291616749759423539663637600995879127748705403873450817631345773340624331633042084810676978500006280221303305722914730183282694511070921482728367666060628962460907194613756649360472447264994958159526893731121058647210670468866865598967904313083318235345462179659420044691846425516830459844502413364960632164705167444794156007629592093432088236329388802967371671955540599072715587066184203561849756316052837067104022011367143314225801328490448805434805289356809575949447677733988248174639477060850153428228267168375559060825281120496824710875535598141056841591832079819578037976280154724366321792896227300035475825471931000954868695191624748521057335951154560029312210105476551143228315187729109169338168565381978605329674348733286361779670458296908987359261812534972442734645734205402087639746028054513088964625041489506186746203110827483541307555771858124819874416518187996085319240941127234835318532948943829776758185942536722658680139652573639116805382601349480929539893680767337179722821728494571084011970439208354397851693834678997757516241042061203801607699240948200619686750944548249020936065245315386781898128352415387702002312762771332193929222073179400570025281261774356777883472038395383361576721246052978879138264507619867662105680454838439908684329842124352078817056810719178977547347760662173726972366861108607240452199152864288809497708737275163730148891263722900598437887578120204565385545336242195906448870551037540890025959020658134808736556771497394634473841001013525901370166784028594104546959969842212087264788375592714435841101896793832396609426823667441378958160765745114037333111477080598212487858201744882374433886256943331236786780722843610233528802213554426274591330004750690047599503064073091634338771397563892157511868045923988882848146086095804492111288224032772158184432516346260416833343116424009920620691113515526263386148688846751338776704480307868180266583609001581039613433608455164844677769028873761758083217771988154141188093422482375686845321398010096231505703981330220604954662399944080942627360144583270956562867272317697836407563176260983842855674600167132166205524367493381993702947780700186586789085759508117820589847466724721102196342839734967024254153142407321246910748088047214419290429092900335784589370890772242024147226489593051649952071779383245932503117305425839452076395639695080915093755109121074843694984843050493976137244239716878625526611985199447171857855320165036997334447609792753180926095212306422403358051909533555303231995452344116637721293219335386540784622801268973920556979972914787317680180328737266645063907829657685895207614215228726191818191300805901570990629067799215003532235066647554317208626903033878613429348943107541802676309917315238796907064415679903578525222282882843952353348708990963996155148590107873273756470864457769309006960722391252927775080941712401343096559447374264363282573366140609058220779118432700985010533719386796718909765995028332407481808090214172720195838292246932604300098683526602607213509038213674379099047613143228182119031163862100589312853884303398423974348154245801588729298788004149360898771024573853798992979140901852190660257270656730191667323686119300978372313735453042213754616295385258377018550962267751976020492433798710141976803266142753502452399782470770400673920960521079899625478173483157319829651285469397743359077531467701820455405002888389941249424495658313864350509365730908178104420089690866178280351480350247501490526687077181779328953389256867830940385228846823768427497010246867522575672194718159601997547422776804941869670455407995794458716100296326071084295540282506203779206903565878756452656846029926798184557897218395207398936834851913881394371669798101450402051490339666810510675400229037521704700180122471391411686214046303405593871966812218309253107341987264654947026743320928981703143304862007021249099509792846614831715651385199049627173925231650585460971337169458959574736497514125818475591364580704200696752691945268045813274250148690521861966054407452753508223330477436837161384041509559670943995133638447180226312700846986740721923403093760729965607616710054198558184704502479331561310082614756981827504027791374190291484888041123109272097392361622819726399497325095517447691263456380045146538924201287187863313247762989615222657353451255320414781139075278308978085990215202345068562190155823084527923383813969902640476428694950536000732462358376390217454441678477633065363555921915311026353214767746790935202546963019647658946092395673924956163843161608993394652815798794649686580055525520132424608753913679200550778948562352395885036744216181963191440598674190309173211380009567929930287680682923293464995260580978093055552181689497803136770496497494731525823857312182067188687416933604513336872409950474054320549568545140645658163320168059838832643241642697430444670858643493659757124141587190880599727142884000665833504233791766674363686523404575914090429574537726743808958197331741713963700577412953545071554509004696582713072949924024103040512570860220586112615578268152740798677782222174748386264670501884631036517711712504689331453776245697939092946074138836444699809802727558911857074096937943106176235673320970128926609703851035358964694796784924593481082477487411687597490087532210895101990212454993052561951807773836408482484764995693073530180320516451718490439767667537185802812769882991877745194901060145912128873041897477299350239510447355283788565125252252741876107213326127180870184552732626109561837328136145758124629665246288555375044783367831731648614395744563926663361357177494266944530994903429608947609191862083697628861789859554468615845307404983026579494139104352326322746434775726244376629359892705136501297585902884308279681193995710411877438008562312124853993279080709846614141208507455272092446531556049024304490313687742128507478049426994421112670897158748078894940804011105141958324715428790228826469656906004548016229834876588635058577961057344393671638369714358656724019046855091578747845224014458544403363208698227382502724380444497700978879301610636695591370596868672662695989002801846628347260076476347425615256345439246856795441810029933996021274719105421847748820083577962642538679810052807951701867410775093734186045967769840781980662292712545167725036721623321253272809130118597255843700989028968335578503144569722668406567418497413052367201920212874258278770575576917170126568125653702055202992302589054539006768170314855198356902514843877466703602344109167156342267270656159291035534411799836257629572102811294196350663048619304775185671677716674108781549979551437809108396832910946307732524252136286125242433415634626116033364095068739056482905813217576042459416882290130206094491703602631112582181643978714874756006840971155528938692594145162440540793064847438803141162565486576307023974556967308757769908804110219328999179677729838302691484685896670780023628813331511930131983714421932013946061076804180709749382090463940738145554034670886424004346101916167035728405434421870752808101509304976650431343233935064081431657084726543466800817177169171941717160152216629065175821884806018677193092213680999927693740961208356843296119817607552964402369195266507766902163979228328314345706579462885511477097041632433271948681994695619727826930982115315646095143190092287602219442503586865351069950068322670488053153610082794822959254349084980027280248348272313220009484945508292594855139564358436172265633295546649973276425871206335200546818027935481784969731957613500360115529528097639424265899260916197676574805799584034214330549475852656592964004314786337094665969294334578282317920186543136587997637005340497883561204041427037047417814347841550128135271728462662039491224707330377406288442141419440192895504768673841945428231376590239288587495065766769329943534943302047660509868990450897487690568648732811440852934517735962429357023834856991205255675061017232430955102032707099778009654433693371780966203065841721962727097136551740993959025011127458521625668503265425252043767584519077424228103147500317711990021678393815668558894394416896606567227526080229485114869299604722539632876677463993187456452906082749964159301288547265287798422210516817590262329721161635200123615468963261179800386001292390497577583873240865796706339092491944123571525058140655299849182222211003734857079335797301644375517212955569539863156765360004042853085680979798670573508368945476705761387899227850043565907309505468575789029670961933154271953176429022742123885735062738364106742649014283729528279057358817516048045512216756153000564617720017907262803601242629354660635366747672544312560407907020826397203024540764385917396463937849031676103922391090600411432959902114253393673015408991130377878673369332036982077429474821153763053727577291815968352326934900834738241836524313155902007917797502831158008137315758911479261840678498114189215366363508635995401219586611667213336236226356175669201802654053831573929755043965993809230080780528214805568723568811518110164789743198401194161020515285754881936743635407703010865026411278251862883521299523278557744463439333927917823388868216560886586015559391988819004491645906239799800572185984212264262985477749542384178042855991655723079564924686501889379269831724898344488327547732236500147781871049909798164178457267436235874422968166167073010210736520503306871792383041976170113459912804830656355342210190504558920672895745800352292739610505748615270623405739577319897998796840943950049468414926723019503427333788948262352414596615005894692642340601276100051827182609869745304017236976796139756093725586584008822351363589862244613253703614367645762172094360469587902270708732867464397939002078101206126060439273858782236282907423062369847555740941099316185027072414783267047539120804395319215122990470172016144876950768358518022036788449801312837335658326807842539516832330755729066403074491622438369601683831220460062010364340515499533058322641218438887925091590901522255969672057307645704425393571431728809254905557271933822331285011681547747248686609707402651487925401310344187351860030065369083939460777589642275020418148091950928354127832909040444012579800716387456307995371507019178623133903410938396403804405592314096070956302259498569427158087785046214761448906070345407591296003370671183679737036371594987436748646480703258813858398759646772646481736617705052742339649685222938468407818060170380139033402684893963811413014307566122714236919889851845546014635379478380723761364989573663446888273185939706372259255137285398570853428171680907304941491715295079469277228246940323887703917053732502572893189482753956914484072879243375509153678682808045806164011208080714769251449218215503378361809634824753352842877469129566688036507407142158668072436463505415791670204987708722931205131478951521708761166852291982460281471861229201817332989287794020901584332638692398384215621777813809248351980692646498760321044698069292096829851977690552511878686983675311444212378443969606685307571052692834876543254744730181943097833489931420562809226426306268483430323634173313384588853709808147675247315641948999797086424725083225914174998108763110320027228308715625934099105786118103451268610079507751955649598586091025746283201720286416725796475903703779526139165373285257612757409840518131153782618475832451174673658867383953709104311113512102616544421764163444020571612907185456005505760525473110457473096567542536425022206429285071206987772167514943970323134347127601032536993941470941461623223006250338959437842722475232082608909870162284190370976159456726642489373295954630542848121684636791530404222158725982807373960042525236953286867286728215870125257935853738095148974302020133073551251666950042783599939645154968470152080784995821320718872770063086150307266287157730890276077480983663122171875535867589234264329624262833812908937243349477804448115843683579221870514971087215317383253150932438147244721267721196862554280889640900156560234759474922322317122984752657019567711838585442674527555359131145497955969922940433087898841758926981445758798738099024038851488848648691850842601768784367130707185609308841715611703096747603482384070090555682385431561505794665347127217007029441942924210927021836580663828415838436251279437783803046547032144268251886136554762678383733078817634490893589203016175189444943121323498663464704477771505626685429754082881801631375192342571677118942251426611396106881003042882457644011300577129778412863163335724677134464853233887488513827437473801485460065930696290173928170609219038117615899638204741698042166309577110342678112981757747912563956541012690086708697514515009620208477884804378001113480754354415469986276965476580825997267545086990648355506164987808174865000346627089323379670912385603018689392453152094519944013848688983638751842725503214917671830131766375317334519133245095454034388367156987820143423197197174868373950833271734822302355940788060686266635700573831806735178901811696614673822174648784888414989400675322762282344632699624357691695988366152210346787723171091329120427452829665828812362653176509086512640154565323067577302728190565428828761766151328621603776198954166138204276862899112178538660843840673568716808142226348330805788446082832709848770677641438828520779405361357042356160431625866074048253609951466347755132718866044327761298647209750060196467575651714767435814184780134961571134468165443830547701328822438687674257148606165670052970033955089758505043779704420577293208667116330510096015319505516403565008601619709357595019415849579635929464626064869004601185755507878410349644960858331022347625882660507744225007685542680833164041192320686593358912831335495590432980646741607154475749671642577141552657853913993573167036448025583174155780154657230456245568766682031046323886250256389189099524245859038999947588863326481741743689064103298425806267665217516138643083036255620429110890136545279646080037745137422739888888132205182319661804688786280098599658288335334421958784453551832080815978311888683016878823122075292470983927479950634832733537225065994149399309065075355949334360016908279066780960276959815706531099208198977755782709435283768639788654346430853419505874579994704346371085905180503805057549638923290736020659277294290662164634499969956476787975819529728343084277180604572301085277956089777124952157170917039975931146418572732102342756017565609320403926132838942950003837881287545433905155691779609420801032792436289191196127906921581405225686038332220381580446972852642646677602023330962816801715942136458089023101377762234692564805688846824580455901063701100797235723495528644824355089022150370243446887705852766470965357477242521996312904070749727888840763165056181462358855284913483806455373013450578521888775332365783647382613977372842419999046328129697210486895552272067385802247270269126763295794266305358305194376215794556545491565963115633198004628103241215712256711605198305172372486832175039650633970981654827984242773588428024450165580512284554857321237967743722618989628957744513582360056527226657023969201175861960531399424170523067767898790613885773509526317180775511623021480124280837309425894711732753022052169392733426530005667729508266241188379609263590941715322705755489786084742552001469178255370439026639301804162908815693196572845420975257983950248037313760756695210825481253469745917574358653291611241752141380430180318520171589781345650111877526490481855622549733152754721744027585974387072847339798216827225082533435681198452282101905313568138984200988331463498566760083872465134286742617471576215801538222985764324944555845247144407146042794143637823142086514846818751523335358197280436520102265713799458503769642167370222621775777280531032772468439726969538538971780149424705275197901443347930640397086844732513164435295733263330052064157525545640702130588727428360343612231723733726299707645408209416601353366844432927498709791296335611412808264675019076144206096503200186188685054910743200249296472033315916377918590350551926703974582062581695478311122138848030784744835292521567996384014779148787786632044009417833459851961826219823851571762658825483455651536598401645461212621356688130899149224903920918663469923972574645103963247519403118153088055944848041402361872347032691481352732508047034127477050711348764703554714394421990037576417523593372234651056860650902664490261603730564482847754969161914469129424289712598976484903902101771931345074083051342576356938211859456884179527098242446517462567388860155398681695679818984843237758581740084574883339046447627057912159461980099061500672511225166730467526713511915093276548811213086190403322827203171226712523510179017144705204559725711903573367269788348445435420816176821514687198087257778520884810125804133824924792977236637657671743861567683083269344804433582903714062789892379034308196154436263825680856366165365260824445697717213951335271940125878087662554440582464526523579303858402672968417959764657878880198504133736805914259068042911855823640093816938362755522125162703454818983753841442035399401568988315716573720077898653036763444395080047186811482293779653210977482096640623297860068593173447609865648070543577110900527691491711858235263245335891249772250141277040344121442755162772446784417195124444067721473622114408107121975612032473881632057008682438581786862529815575406609893066612265600062379286217034657988038625563686150086074690553390794459627929857701216985662661901306021845835606393179318984922166959618569290471737027200827409880245596533447811622521364356964188173341604228422613496359634394127152832076198505294357998706158626766320690601150278107138214198224241790952772161025420225706720863443497054873655239699926268302185848556165723265144748581865939715738715354069824879453057193220831917864433186267404711937814349310961162268150406054525813343607836543892951243918070599291088347620507147465622465035521717303836270688576224408360588663672961905774053968455770483320988272372272048217470563087463542492482700308697797250817611229710598637535837271834499673645257618857855916933200144319004895517827276134296745177297637742131169587962859348145349285051514952141288040047317619738362985583796050944855421747949880130241749094950317860026084117302338154198254467979402398983360113626762066615834033314845309670566375791106655244179569023926873547588944126444119526594218261628037279605539492886378709738820340611954802980627770870409665969264699296971549805304923646496400038822565720750375131037449767096451132949707484051690480970439430652241381115940250329313617365092653251239913354191779680601623768346746590809705998606615408131707756974261368783734212466292988024990997337992398260364527138069160833459947829097209968242212758592610565915916268043266803917372583579968589458961681044554760866171457793085538203483004631828079464121412972304995888560311966162456549089068811147417195335058997633724614679272097833486303276556854355139284113649763193665772273989767121821081979540909504810562490686483913048175546367329419721655463912038556532945060608715806172447851332030452910418270855392326450280810629557834140891689918230571025778941896350815214924184663963841577302857684896188128688178405006713195242976871492109167909315670333432679655352003875679642351370477212161716878370285410815117107719546253235592095738734902897139313417472338551992012047719272575435490839253689121955410631856934816675729952980590636838717606322294739038804363702933371659145602242338111440170997175034292188443209511121894517492858610170134676021992895945516022190265016474484898510649896178859904054354091383431111473575005006668880896445511533000929062016768127415161611838926975842782675551313774447509562047492544330504418555975089028297778886480281439285923765547723135654755092059082451131351502932537040133329175416665165627586835926445473998170879235668239247467596296907094137146859807735298215248620813215242231991453368184023692177072225981225195179089039227436143498142096881092033026883695254713027679477385986922422527376105380088107435355047537105270579723143132624362790768376392715176987751680671851846326100398091341479396961467418950307243505267727506168333312302089783097531741393650919618640702511365633518935237430176143301738758966647467493976748118206791868578050476544463905083830129666429709102471285367793323260806877413353574688523176152003048019289265661123884773125107182013699218937677479271080502021442945889532192884662833527730500107923872119843290052780393755734372915261819781892821199216367577763458020893896000430035003943051863977426896444137961601696840386621232044774529133468532181815398761242582366263747117153303160589130159051863883217586293206022830440722198781109161316067537149948613325329351386587236373485819528060026449134363994131107679908790602840876535714625851502680730740388920766225051741052506457853880755443838753261599944539651983428129711095942582566845246963045046644962269015969366377908861756391363332335992943590726453260899151863625012484201777580981379646724408231936989489028733371270982711384809783836505382031446050476557030082757336237182126850861121626304504103887041293812451213494249618143644120350234459267724483278316224222786195777938043160693505252885360351106876424842712205400130702267924026509423535958355238892736258219723685537670269632305026201722902459295155142763458654306779203518657190579910757914878415989103961771898421787605767912603503828658440853178535773500308223434055690696678171873008887644872498386204750116129801493227180760340489717179255689712342808426073629536466967759697462561239410121678669087204293083705336508287009655530359915091131872123457321937912781967266059655966485393739012410266429619630090421529917231452174075712705137557187593221027019350115353555248893815537772366906356713881777823687566559536014895224723056769621789988584954465485315781690232753929281959085650533075864965844599893694735175792736713255399416863588917772602701847029514047864639693829150745330453480564296313225335008475480967644226988249759324041775426608652735926101277232731811663332194769214288425667118484420689748543968514462662097101190560097696917367940668257895894505104264627317297538321062945324812865218743595218273350096518301675336085207087288669709011061785478803713414497118478488376765110672238813376078996879693551956257333935805435389670521835831094907775000393629963331294700146988439334770040876870223384929865088099991547692163325195093584149702324833103112762230740056758752622249063877439864078407123145636751042497314003541557758058760187494233897255847602241722163681768099124529791353812820286056774384535470039331283148643318194527664471126691540484481000012558245736767084447959618783670421134633216997441593721305267448008154342097977574686776221514768686750459303925460427476030707504065364128737834433961897210043485494898962078065769643935854126611489685585570402729323024352909513939515828758943151486918960709525652203343688069344638109374468165010952883831398294386683993546575095508924445967288786720622284445140864988675705708685837847746575823500200420366159876983888761344696145693505868488591955101967913712892626726792413228597348403770240509356476025555986830872342855364968852343553640076876777280165441092796109108048164310403056013921951010033252475267183943419743469856199922293757563533864058709774777904973031118412688758159039279227742696131191426451108883961227280969886398408420918711651054028290856192119144427376635672491824084735757473719836318025191867632322530252482458454556958164133685559641745507108173732462325943875440583318132168412111764314839598747227928048925154386872385329622477223434853978714441046365196417659989982877513668738104942040630265204776061399085959711808830342956711513045502225700239998028197234449084038441152218574770320723013400132647552160247310113130661438700475532627499120238132818635105772163697829100240894171839657416801255020110955895317588513736580920185518521158239760681973241633213697871428433885503502084094650886461650306479529833863330806400024209685001878610821142876705517596338914332006839470008703955432694383529193828266270157867100412790773186476996368352250138785208851815731918852642927741624612939303023441249328797474620919576299556585652514666229811542813332775810411427691618718189326521522482880238481244937947237614943694034189589709977396187647401103731257067234773764740598959948522187556635865922447432315144870717717534220301775323009618417804018719888573421093710648971138485427558456512980425205470393909127554950531178794571261500410735370483134856881228440886348055598140453724871166272205927778893688330281019842917162421878489829049653117182531047640107982453566280954241139175277631530674248603910465151962171126069896569828726380403151982124099962678175619410986868664115477665310006522761014551217956949481786105091919870746508578997455809476032276473157860421589427530700381873784550666802088219367755409157399934253938525542847898802735109886109349173937032160586348395477333577470165442630691657932694456130652291416652485425740015818971667934554953769583915571160582589257318770575839231264461314821399702316613655193580967558017537469755774008641713083157824233409844378221862645239580959914329209279370094189437474040816841904727973547646068268840867570914204135797849303934286478032458126884653550680139299973604939930233491706987675432669873139645510015082149096162490035226913970845363927572645565415799571522144774322442980251195638122489421882968760299988949003733023485509592692522471293682228798061286874211955419824953411202877764492870275345491400240446561445868933693461940058578380480396565580178851977315545211736877661917471196421458405376804794834427316110306460124304798924369859908459143734266886879140007011624113929222816488611971372244917977894051335570738577061392030845970660551656921141275790798283771438752385558241343697900987573461440025294900093325266388005676121852532362589976861312341041953597112466972265909228001058504970802015480374134511237281803299191775747155515976082522342205775186186566924439180603289484878189935209877345708401942090260580372198084916718120766763848936985168698771727405361241962494220445544159378780061069580021068858180665722155695330084866102657608265633215840625186932447951662829696356203720144737281224316706014622133809704103387435747391220082762344960600332224459686934980518185901127776315096497867596656842487917745038159870937437796069007276085407453231856819516790636980510420072758271737757482845533224701408549888911031180276179307380140771765195453967491614923241160780591611131861538477710293945961344689543424329572454862064176995791447600503132688975061931072389423769063158566467534586843430715776691948633529400305734176612893274437355812483048229997060698405107080344149069636070488597900204762088565232580892234550102397246730884891004380280526813000920257751239429963855343597992837548258711245283095605578779536547586294878303440051188277302609298934627926330094510844631484261142328986677172107300325472170279592078732059906426488102344718356984381532823821488159224176391480175846046041731865245592856340694563052604853474910462662685492864939303307786374940463528200387549538825851674170763854267344620240482421625434706310532595470550302186280576665899131667365476896149041266975506342424598787323619287543417418153023724904458923606970218591800143701395115875351020318513593556843942735683553054111628299568832009936227857664348722783786595182172035752262040954569750786839113580961529597661620437674476944065698600296197525132757726687044818106274773887764694950067429178102524858320197273062640190178295365680536345448456245369260093451389016218832703825527427996692668351006119510413552343495701866095570459886507456592029654177699051202395498510046119451780348582662496962876369142382641165423242268025083210281841455410691650585512545866711893082982378227266559850380748237721097831231491911910830348591254110310829977318348574790792067481259016743481585831602387509803810444166518214812328144685405853000760488354137714172004549463729696053298247846329909476201463912285816227770198959847946828994469378168312542446786275145307815673515474281160654156077579323624442230117365840867749660895929334052085167883772913449660541270844666467187449961497319185499121310991376526054002063392785955112515815879895101963675213061984269846330296690480943737295982466850244712553775535403870431339391280237196606874527133561701910613668553207868835855662845586086015589677061755727273081751157688499587684229122359579721949710926603356541625376305370241274608690556476728059185510617156996833442459052965557042735713201160617119697729858184219076355039477921978826426751032946366057979393734241361551912970425311188585784037257620192372821035206525938695843889191417422758613246419424214551156434147134111193178787344161615057863987646696097040723260237146147892483606022926981395285278309780377167383843225166069054843757832540171126981186737017485243113850538614287307795895824303791998917623510894804043347639466934114194616674844159167445305989964967846382697699080924653984445868743364139388314382403594966186231682468754452158062991143009735996538663407318934412945792218454562872113452178798465544170049896947472006115763721068046974700498932656891628784604560054279584163883418116648571231818272454185244885975269808316810003066875713758985927498488699319711678881298738176782059525614485712576403930206136449591843622154809167716153674822403418989905332272251951033329407525498329692787148143174956066950141326001971016364187834208376689095697448888477474614948773137162401114497154189365445624502596205877685924431723665477769045455086692691856182216211673054405481038841183607558234979582222981221579917010350126512686083012462888711211005765283994509948797357131027591124713286954987187163984333073341883865332243447814599547738286706887857867947811079311742400587448282187314802749236909554380347063487268201697796572636188976100622560317881896193704243890572781896637290513549306310401980711293764787840938177176052376521575852837085530953002273984016565224693495723544999627097247250550549220887572968696999501344510774491125639574923647224257933657610245983554572926503386612566640857134385230238621324073871425369027024383374033015815216746078791831363536561941234208538658737368200564621516223988760405524087472726596158908148501405684405452116210256586214220281722873869960428585468216505932783393419150960682743243533236200740984141478278028924548913371030476678457402859853169405350378706585943862129170050913096601071473557595701108652297056640100123923368768329866853477852572855592387162407873944494201514068571754979883343778419298331056877872753424631419834450811782121253278333363907325644582027315976701561661331942625432647718637129801659307787865110433577902825893023065611892572320694378299913508316389842891151953326173998029863193918224824483613608966604513279521743591628828803829969675771613291443012650104491447020461981534289576045991081425096582992353796461396743265297616870510414855915745123586928700816827601271827439355905423792523758621798363675086521428766611597323543562938231993825507385046643401984297602802543924523250223063857448667980975532437496889149238498339283504141211773552100375345570809791658783543195226954976577686299546098622449658595373332561229284872164034577155425359095861010982620757979040815878503413342806904203937422097968096584114041806211361127042454891883710152141399364723487805606486480821055731819629714201431434681263063287408783183038057321923171720348617826647998977714625127350651715170468018000224860487855039110994558569701959767976948307129890584704006123580274072461071531940326988709327309284419629584800000321566844574501655399624370006845950909777384621084029884258195955596772168929387945594641588260095415217693078278994024665505271378222260373855354199262594472588115501236624303016000240363096906483642598847126483528721247753259843337873188270277184485552811334364015445985833927109042036406822210881961344180369825884381406519454032843851523678051787262343428387457289359619746487330993803399215978534122914420602343601617551648647810465285539694400932071448445031849883659772311600957202830099889262169364457830296742537750748426237643838472385614296924163976993451427148666155481331629507148671829600935139402355946443267940860993001594314224331080120792001298762726734188662399758177094455186454120230988224441993104448588406178744239748787042119739846400032473089067619654619650475255751242836909687321671712248956929350024428549308640073674347255398298748672875619325093722226814100821897329239775434536589571107063189260157000433981028345616060937727273082744504472214228782395527760235543732825252450630639982132807681141758267592661091946619412877374851101057236127051685980587988688309455133375681038691432015147333391235441439701156601771098144200691943390677266481824072386650007905814827017054814387705466968954602415913826346860560941868548920245642030880610137861482164249451956737566524245960208306115743326186446185089417436117338583529381982490718374141847330961833624157437492663565571949731435369927598105766349897309418534065889416147045519613365674317553674446698632839444736414664886512321582640835282413157557865856170182325460297048408038250991710915554912230993709484710580776760608998163518436431893188033503884104281784307421031751070538252738307118654497580163184229582456420235557180198263094396607087505387209923982586562914173992464983717304744965786631085717321272093527306202232728219115332582785737613377068870303539548066376547386107350324203519428335403430790931869293124205257108512706926689009946293153329838071163996323568326067350897111122148964202392606703460852193527281684091689148809932322415098215464075522337067894460550944962879269664337916524041445306940661746730146749677889524670418476454067947166675972615326549574162852696799387514072733333365137931239553989910448017575571133314267380113791662798689824721456981999867369155751979554894064341962461850822473093979150681408979951016330334907591875081565695588079863555345964305465634895522415300873433903410351985902835775106003066039142124621207540746402978309515386254148833605150696275637686764769748183404449474939459338801944622536812429131854099527307559950010802072729755382820531331472551242753377897672736149708068833106913624245446075199128633048879497568728265327538914309423793154401909839522468304356748697556121399561632011558036694101751350390470791370245225000420508946353438611739918438868452107813155372446815080674375837983716138188532101086385285941157244723102741410838090573360505862969317454715039495773594305033938665074270849472722746953308568474945231625103964903470205489604851230947093889818403409294871940489675514470476088824128087925894366873661346294810640300988179629534488890538561995093079214491107315102354300218534475283593627207195715519503474361867175821175906306648535888499043824050050281008243266000848494744720772581540328352959884603788072142176115467226066502953113897524686861188552428025030965932337533757632857376622131349781439708424568736656865315557824229084289922174503363575961104995379338375301126290527700098399260020919724011542581758682610925536404638277504604455983895805318092202598581533923306637330640869190473589726912218050216463219083338304314425115444405799403255970781094361303477845782441602190555807737338530520656214369778189168957017464956620333417477508027744462656584245092234316732104849341958114665317671674208676399895450194347491133225547940482849330942127124536300061627318210865886267290324774460550626537479279170075539986319168709389109430211434871799490547740102655915542472754696983777853477333795880754781606030589653654996201376691051733455052717932760731750507555613473733744676946625259598013846244163618613205987506046340147258007857494308855729277645073029361388196424911441880117879478468586962010085899449918601521206403443629642164689052357374533752219570288418254343549406473980980893770894777682211515178473550269952371639338630294821651556568353746462750707776226207447075300857627033303535363178563378859656280830720449492682798350448323782581239037276292502966716254154453181559438012545754835353976355497701587847439476757281648579273220899637785201037776505139418703300197269303793434819394198580139278975210215502628360011187300579661583727613021686524165326645327459272090202835504997921790304805638063993318265664720037814025220970291171812610656530086495776433277979966848875610867808076454285303452751781114733938424481358556519593554348918765876065222279553623737530718916223703303715277521632699483940468885100075295014941035607616692913405443446095965554560146184080046243529857316795796737731724436404632198429989749564759504641488820191116961742135851212992651992476651951945070355505343955657234376540812901547846399777837332317514274011386332516193803748631230898432800452206883027378697231660784326071351780688636521457251178021492243178528482643641665881785048284912808580474776077886696379013235439121647195062154741537471513147442815916803978339954432444853376939669567746364499713299568082293188298729532953435329279978232809640682550837275858119321402269991921334497038441593625368769515441140064031996717347973975312922485482778398489417610821376294728443295921265422877699626681278843809755746985359143849720220217696278851853802470602735290711527162070434749362480428438890047570383463469113080100833044599196503002605141019067908477035374997618267921616575842088833162020665083956592134464371481979071824194001849053261877818188129073739867944505753230750931780032349645979208174898420422811856591372173539818148253254841737102392468738930101519335847478831592699441372978975790563790563527230359446133082615792190818679546653333305902382953183740286825779666405607603553108303153381853759414909168685298729922500519523272589501324082038469500981481516992420880738386996808652931364178384643680826554279240738626086836941295294753249964050926704098878933920083027108725682299511165985092104858915343268889137122003467329791918573063554587851914626687777863172857671407039033846267277810433835904029174018127770230793527968492701477295018723685575654169896062665119828954237225181482663562866370165363237939837161268387486265994719316137527481772063509290145367941913733971273162167344105891215619719249478179531981411851274158250532682686099590293552514992082382773514311914292780070745202557445725760851319658066175042875698016824228370861345272100344524401324015899625839709339608451570625214444940177622098171434796683536919739391012200003599069493006065962115557363231096332033766682539304774709424101773219164041897615470975131582644117294121337549621359786659669539376976774649296600938147937170502138031228605725443376210080412184975158914970509679864437660720933506914298087829345814840649088684207815040289389207264491710123785920139450311343605023973095188668340972257234052926311655851403012986518260974080242472417324092986863731335842950440511968374210959306000706869092170044519069274951933026216495403792823640697587090492826559197032983735622988440540599268238811712251644255253959255937758930800430668845127230223337953833294782396315304183292120941111435024556468029320995166453825769435534057558949299986889829583665909827056008767821264936635842611363117949699748214434114295344104548625166366195124998141826044131057832196367301383643860489626024034449880017506677586315285132168871602309237525000174197044796635030690205944640729375176466058912765680653198632659289411027567463996219269366116571920135210291988290392231854143400645343188163017437168141562996141574177099529036290904985118915838323860603703895411577073446347107782261080194352932469611515745311379773102162294596232583577673020977765773688183948453756826781180538910145274492239879971087196962381784948764005717453909521169325189208579758970590464926245445209686818117139846864717127586131535282007983360374598730358507038119416737611611293587700239567966786854821940976646490693290701882689606307338993379061359699248294738166537446139007506972296317523324595545160451647970111410930608010059125777368616231407622336027210923302598250515026343686932296646652176543833861972371879106569444322482857215043977142316511698097901690895720338348263560091331262328658256112194889437508571513680560592579012563654551649179546759558542480756888509258038980163287382388302555292673889973691380461049005894164024871783345397328982922723101410126191767562397373097581573230539986583771061945864339889300220301005106576599965673359966367231494686615450511995236574653221275267863314754159198060363605477744768647325748229114772433735860845803759218820018827370006832773460089581138874152397290892148170470180048973285923156524585612315464624586397040140960706707416593631473300811584755630347542835248452885140128578165849230198003492559572641206719396300977072617785057144846698241679614047528161260662526161416134952593960052507673715836397683480581359441357104327477655259344732742849521273194319863472717923469614518030568461118989119497300316308809296781682510987454338753905572951979028161484366511470132045754968193529454597211020796638795626684888737043391774339969320335426334472665018534965577387958873506287593163025402902432044926850013047040562749780146186668745081023073181885866705614924908101566418618884729304249963040180595755876649468127047943301214928470676292974621014546431085136240882583625966305376742890496796997663130554827736711636545914321210057653756650479079875958697006037536765523986175729442896862354228033073659788023265957524863654453108991125600737133408009322454476297719572514788532210676221804147746591599518970405065520411069561768783322737327057883091251264290272565053737363714122161262948847349836417080360032158635302292495399261608276171886964640228440697592146728669323618109047217451654799475312150068587136714409735647818261646150799095220203913183786647153267512112368468433288110480848102807619292208316513932554144267548136327736741962848455322600873454386885441463541437311489935028253009152501614441132860472374383128387335569085774719720232540976033314867443201845816256445678226080496774903812161204173065417883856038690731761683304630395800700446653819740787766343081759030352178237331101060178560438265543305365154902098415087784316086379001352703647689934134089577372710121006183092125192655414055170228825993428398920543525940075310163575309447456485439484049446420493468655243144412702777350785842435012827334413237925493128531446080843510653096309318486933379241613709123629426942530040615007683297147665625116003236391690300691647207782784818052756244513485126055738866937269545069400086750416583310330256451913389964468761409753854228139087148381472922959937514701730361139993065595970862079795407145173945964513063747246045411005201933142971085297060229461549981605068475042306633132229121638637456908466534914268721241979123373777101471734564059391500953850042974311825529417007842146062991028147112795499390991764634631087227740240183814013730847317823344347928679550588094369160646003497041263641783594838338522661542133660915798911885655696602583727510180762434209589038476714073269237356846553721928226359122404886310163178792696556994598734508096016053251956303521045769023544750683928159009675298346044519212213920107548731572376608527117633934674924261507832579424336850599705451293313695305258689644660968426937041778276805517051034218795820482554416414615412869685645294841573057054740427887426906441389582982528828649734641696119708301584646189515528368584855531578753547050831605742268502399227327423562449198201615380594205693652664182619944690417168936179312598803852596330055256459190422254949574574334597696339462690850728225916917301867109091975491070446487230881358274835798250226407016079343893762221019864477695453999562883409450168279397343734738694740581737996773053136321730180230602145556245004219573334822118182536277501691497634047987005633205324374005590689869685146043032267955617046609658266862478299119719498014908129290696412802812173598083661633948643412288146445427460382997332397992021733814262552205507264611318378191313736752783511121233825089140631812400686099914396564617139855989683697796189915360385418965408579612891166212795862363599422128932054699371231489487219158374849504331574922229373110973832071386348550602939613275265867904270912650302827776238311084693315198315862910779245057251763547276825988090974062815514354279311822179200280385017958184969509098540172190522027381793769026953656102896885325745799974302988844279901548117783086921216810654365345516830868226718062319535458737432631922051373639993661691961126704501934369463718854123686119877534129284220520864176311957250722105663805494734814921450036805430886882442947519069674999746030028999849549438646482563847187393647736904795419915000684092506656921521139282541069830827165343055431298924140167744092964201947061891344257848678804022423477751491070587971120091714813480501444403871583753171333878522966891179461009495529262222036790003781864400244987369954202284429362562772699723631971918597323166015523537122900506361861818390952057378540413896922805068327859417556803030949302938994388051416101236433705194398491887782896907574063508878547108411990765017202648300403771431953202022288177331662326692397624920977891571080169245743020839573111280859467314642951959021586048962115614834927138983846165651535248106574115252582554829177559753113565785920520198730726590356639194760239654060476921358597374723325130197179388831835517241851470385485806862297941603559117050313783362871344929163474980851514873174578809184879139788139795199598802227177016063139544236406811990680835110171384622755051344475789325341183208811760804885049189974866219956743384175811447137428822131197953510459023747610378790783637707823742998830182573934351900874395442592779925658824175496477355416082904269796876514854475826274461728280618672037442604942567245956720444556773620339511785983704302776927825878588294320497436740513873810129474895094933221839613370855567680111851641027464510994813323151491787213095276660100572760370533107580644984809931435372037992196960125146921672155212806547326863856136827063572018360461498307586839530431437873366632591905243584174799682037296556678712306029881239424973855513168465405400622052282117282905203270128917880308101074403621280958107729059586260294302791812699818004847509136311993398550047062622356990276375293641890381253878453147010104591548741399436584389247558707933827990922105519147586763789737636612576273946129806250760733136137930257266297576889004665174545830632035768205486513750181837568318028857687728960637496448373413365857383280946516725950217074890832407915202015937994534022376265388319310420480416869414888779844259816093633174216898282592261161889828533999200488611566433279642948779176733202525095859711981240717788214424030546886000126392412946781223064761902776805240155571089665600767724698481444147022699427545089537736980157863925304595152491762687936904517745871162587121301103319089866078648474772966445455376996295454117363795961622209290065269394496320027735906971827328336710712625644450011286851489798171156858148468933425413489916023785629040786332491175855700754391918422878322424988194230727446452296749002496863027652360597849295790032332154457455741759886851653744666278677452429556988244196063233180339757270478748183914627338404798260931482969965576713076807642650552414021899468840587866995391354546979811452127905489585929258402533712873529974573538831143673337443670470584246443132190455712574212508552182073165574143955729658588231416076235855966150225208368172104360952977262696410439961046999448241438377631512907346761230433238299938729020877227033844650561632050117236219425507040026532058165494702886860540902862118854807368013282437346230465566928461779556581369229321555012680930641734356116875713735607846988726043905140184109895935168740447519437602119517341399312547190059769813421210245229846564329685454009781997657596680779055647516140667039710183628773738706958388127759483269926707923715015232886068813063805406915835602499525852022504462164745394513220171108288958031835373881003325128923482323867660997719174610821761306767828551234778674879340585669434172373803602635649183108318017035627835188454060105323454939139203604780823576271409389771587085819452936288346878055625940145448186197468052935737797942538259960208207010927392967782377508492893354140451148691659436041567658657668611839263500424332343814201369015225481333445151415782493308686329049475174822658068979405524578064911703658424979010686894344302558737811283858569658858102154838246369648978999333430337748141038144288070652430741275655551477224959764110675730912916578259215869038209368880518549620043776176406020016148843025689287373726767826349534451696652210725037579919167862069770066105167652268192106320251436600788039796949315709954499506210169825002502289202417708842022744475941067654077412999758665791793810408611666467435027959581014527150848093115079230033560364970154134102334559210766807980151071522630700157497267512064326369766662452925557904248077511411485175985447955719150135742046627316876547563332837619101775397527341544624261436186097082787295330991324710456978699847720497885049262318242250809917148241338917582363340707597186625852929719748654536789577307057878708834959039859998650677416363217883392007618422595734000842780619390630699432390779804722218564421294137037947491462194001346756958043180053357387916598844806454336534491255804798054333862610223804683942334368662943324374330536206621042306682867792827150429817375850229975971925357997545432013145942307728065398774062235296805148786953112268574103110841654984486746743860115940834293097330525373110859541149020937221716278604172626497877353704137169122687426249327709395136724524442618140467631233700243888885635176732301308123247779859155144790257621238465413081740100854780794982807010430076164294913472981246980934309969001272082715005322274009922965932241565273174564424266824116586534544183400839566982437135123885131554543353977512777418628504755395839108893374959774722980507451438085615491291419517747132263293157410596923333328088449887522205868452968275703148013575910535986824140855293142326656723265276531054079721748063795287719096034934190612441447095041487129517978851704043539683025059092553122397067390585878961275618237256116925995639449774216166307469080739044641413969479457240060883348615127336659163172916306203897839482920649858623984232956277483823487637192596231097484716090561351485293634513409624302109650415145987001499214538747948798674540440331500950392896993931756932133672743673434855433156852767020563962721395562216057934614833396618970939575588494169283502259326119039121675674238727225623361660368195784702579737157585573191426278172326630056946784952917287425464265924558665933744836358709418712738198913337780911725565306338694435890906176668106768358483573400524845215856600705723366449890592098760873602138257954398677748783009556752245280270802085442708200966174639783234048123741278584915262472311548992098644728240709998131550025905004134775564129451261771383796030591176302934560803572726982432581204008896390728378432754189331782971120509287676921973593901418518806397594651658050551404980368411896926733439972765393093952058079645742622901501054022891011493891684077231191197009384461116370202511285478262898927216710820223267770038689831368778648917954865523034750924371131486040637564972316394155352385141775099425107864424533993307228323867412244919750918595143608919324995745267745158143876158891299221188495787090557388620029255449582135330247552857540036185575252269065913868316282496857963229783305979111815799210053431799184203850806921869294180402867666057646146673994922579721480516833727471901861696867385237392781710219404209563933366874754853212276852046823901690835034380726516752782551044650415068348499167338864072559892550491522965746525508502212501145441598519260029275027870556019437482333366678409892840977700036015878488273649659638835203992984807063298547726742921126829360746969738610543194901287645828037985778517972779020182889682157488500225895224317718631907433627029560378961200444550592791676273068356236387363920094303952316827684139981084749927109773404440298380198947028330989752316868413852816651482738046875425971742111567049779244180694033206179295127788829837923911359569587626096196567910883957430716573502114248538410999597805534014700983626932825133916687093394497822305362374911955423458558915855493800690990367889858384451549025558974492044935647182507061522449527507540008331329845177525232084080482847932664126377683074743215561113515264191224890827369432409288427716892135285906773535213261318734289835794401609313326634006729425852206054066394437520589451388201264420102237382520239252471526996483277779557556285565074520406077800826103281756085734743719850823049594752985120236342776592347477372338051159489442130357604106562233418359395971405331526096256130722127289387910150064164000041191253474641203559000057132022225595806504940423031268534298178791871270466334752905601271532143141089584086310318101414727432429104590046038301090221767601154392850343843718865519449701087928062450437167366960699594707126168803133478318681862482704081926372848863976885028043453825122050640181292032800298830665177654640940605272266447797558092540925196470820835761255478618312647934735194380653538141132166564989079728220520264868067472092077591082820081541563184215456651341554437525413639134769023818625189758657991657347517591774755101786740886512046609663199917778083770608477583955690586362900829125421063297404069167141177017757917198643680144974379591493068956422914583651905202118691108325656094750464990343742346223253598653766371069728256946342003062554645434100145259755301281745763361821397488893525405525545862702600618566439827767933478021096024791113809819667552081848653342588848785718070821421619315575450377456192175430609446566759120506339096656141871078538324507638998816330807739380145738989975275563695590295279455810962990119466133585224013259715358349921338324713857001666795042349944625865211280588088424709528239246189764178611278383335641267317256839932146181747525418253742460760699933464729220250961683823971917054551565060972291185413845119952837275701917201200360009325482951986438040163136291234022059390479722748689316621327640825786344821600027435497884058436830345157536704800483145847685153191466351314292193437605453846560095386704676525936045130635355672859594111953059912088209401467971286089245984401147121470121767495710312134528747603972976639437685954808060287685524071109979504085493600632198427332083097002279587286569237252485866899070396841018553157737986044534195764445580344503104109033757438044798772167818234894609006522963406350691750271814760743522589210678992071420381518694542129174481915202767638774123338965095476462635901978637074376864934529026578264848455292285768617579409314608642326135241068244812492035193203895558773717252189894359929596505760742053117295317908712385523905061730908256916726983734841229039297269424115501054322181817649614717044697002206325994259533265590978927387424301720615845999750567643611328546493226887670527092279620680356060122565928137721729498723038171963380869448359552159971548038561583682705494783898527655336283546364609283650013235789515701468193958742632872990932757026485007244536297926590364180894595073782655412382276840408930864572953388465850986709625579350605591390175269219302510448176901513077826184062020170407759889690676568699727902791583589299195488271540471976560597344393753353131797570519018600810294139940265311930930389768946058281173018329315875518690512032314458027890535837464025874216156761544970478158874121949879950604413168487202308834973274201091957354635445211797912581522137543436967736290229033450452541651077461519547745982562227501444607826841205691944215760229181945407086872798768435088107880878850853464859812424116078307183306004349206481287217236970236220515839376961124670401231958761341642814279542331361803739495781857275348968062362240468485079201283877423623829115529569366622443622595392493412286584340869196250033912901085688503425613597691413333523706100199348027248400514213096541898729440579405111209391040298598003998114751201172765343769360526115852628326412515288271394485099561533966818076863344433011427480116941715147890733123834308563897688928125052606149908622663406558060457722576475593544167572830985085038102830914268830165828135737692513741237549859624903258484680502526872575856353124903846366543442743172329336137954584057690879297641749144855630774602266947777020050186764083099209028506379762189046825344606833534010109155727910296133554130100151048472341776653255591590103316649925693320853277117098221782880022974743223291763271643808446151136138376430894823234887455552792733569920495767616634160161436071913354725719414677302414005808011798621133559264300898818576992616903403997337885892320095652318776634176280818190317863384368824397957856597395465133954033116821593650828163281731124695338130000008828101030029159827618644242255746643882371002069579884063990189652957919183524464767749398795413329586896463519789136298808324818417945396091903461910646992248794221323850824417336047760931890352923677320744209322263224111260976752500133809004457706680128046708366283312440605330299384205325636703482469748412402715859653562790631221810558652159546022737009533064072260362188842430574394690304494056224761415354996235499378704576340744600960993278757180225618635464894063660659692128043438611446269622096808162106868973469417894668152491316791655145363889457768320352394475458703098567468417780727132463914282530948449183224016235765012406244610717005769884243335629426409028125977864542421459971775656645679785474398363502914939262991869831712306769712249824849303011008914310275816030399990398770629952085861773346040944352759630479787533262741925681742448216331534005752648532184617546851119232536040815500832299183412705934605058176036115150562757159808471062393230752175288236862584536895998368845261738970826208536447708284224857441184472809728162020826269520702229486071629587845959516457918451001455444812436659605977432790260280159527999328709820029446070913226009258445676219880586899144780793990151085718595020385170427490536299616372552738955488211634997676183447834503062742755191287901429708551943259556957760641901949619769093777804262193646209619393785984541554884253468611738179729127032697068199994339583037084287940817349205100560249418626162823415746439325770833253686705564232485495967971273056648501490722887142806981757303833923951378476601192367876681928039967249439109098832639966612390928298613990869072017404458791313273993595020816981643281738540714102465397718654081081520192332526729822655851650648286829254082890325712752988894515046883445699959665790339680994707347559131133409882932185220101200298120746924401921150253543859672049292954168820743795398812895923945969787095615133906216917201816028951872611995233786674296739238978097278810659884396952531773489127136097880877228128914028899612678808259596638962469472247609512521134467363136419961746057031797811862559139707698365849405338352794308781028524793799216361584662494248498548402577001151216576531664419581666302085693894074447194807619081501095484010394351108608812856454896407376525001790383498420986218940801292867837379566007213836994268965769567103067299026047347798707527234652370532471686876970563040846252056478896249243477611344744841203364636674993248594521299901278258526799239234696591641109338274329386158623847254462894438791939328195625569054048248618765047823444776816197048601849661908067163577574218146585212798937351186408156392823112076882698809818553411274404186388460011275006819371884752648867504239529538473374224233435424641141375398268411675450676192817568681806883240602290646078501082219554923324879069346326709440235817585825272118693692756053017317110368399619037090720474755944047942543993587505767050966174299788651603425589090683787818095958142957356799637254285729062084676392893053091638397845852636018926043804502169305454679403453742387513683962378829402304874405943727434572963096153830397762336518365771908902118218835142389966880970768174957178850620034517396992281228158042705440772853558928145892870983241065422920382533479536890557563854183708587335175544326268310159700686557290839708047522227587931688943783073117987217791543936371091134136894386862673743185421887641493584113374198621341351940917665467128327386842181647422876883229248554760745212345239038338385165249372389639347841773438315207670189694041030443861283980525328997998540939009781180965588641555790516903957873160837186388238114856138617093508082130503651380065422798637978950022042357666149965375202891381665059154340989905819338529964661270569070039161749261799332694064646135476612601278267990652421971988237896153564446387346344678031515942991889285760455753063273539058348751325799887617555689686399512236406734210261263111972497409285527797206802159678016078880971692555915241143109965964073504037544273435884730294237589720343803230326472525164290178825500463514164738528069588709925932996321656837872298602317255370473051509981571572799696832813829594674027551902834514615617189126137012005473663196951620716768970389176056150198041484946465426383284969387673403604354668799178363957330375853917460733316035405687387014958728344691240427966446443735280410771827865227936569352902583427344291975135893321061861842847543908572711303806256815225898553065764578861386635671116542385021393172312938148667877896506504747623318872777788256698452737643342402720347324137779871555650286792470335916230381113184954722739158104176798879233287963378795552618275919607305870042451744599103976959868859373079878485638690210035123911272892699384979564997160974775138880686957595422849628618261337714660087351659681948312160457489499001345585995178752702997880317016763148338645672015334171423072178318220152961267271014402193477355098961662305645003197774643647671538249030886660462081799966413066635602938163155671421133963561012743000415187481099372415429067571609412291313900233516055442621378697465276779599922287480469931801763979521913087497880884750397213924063329298309427529794033141683960112242397281370176695430941386935474695918878353543676521951196394682394233992143605444600637520504909567513534672425319801124909911432966513516258895311687106298979564394534157709161633873986610526047692018766541494500182255512583061476435042548418697001883481811488189954086579373598456263240005152847590278029260316022880923579271068440502562820336404822072791411025015369868104767069194437019076487240741229818319011819036154866065951847352448219755422820826202230883653615600712536630923878113418253532999829102308977923895790001411177902728393471062283873788409697706063451868220524706102361328742836085323696948592035096793010684721361610964684746940794838227966533314008189060578459587442963921148556271144285746220141035411884279680044364985053886262290414745423461939523819386536060920863628531060926238626179693373417199222282030838055944147782251355566356140144902589644577894266264011465515587089542799293518483003949118519170394764540659668340114624499505960608961305953140637384392048869885903728751341132537021240125429382812659310641056092901757874545337252869829712247024912751336699318181769616021412155630500780481762108737111437662391531385381793868848246583491049832029195446268786648549303073349071446449893166042770476743857835093024453786837190295731583721002621929219684393618850236406040601807139550625410076255526196381003222857050786567804139479861835084740470900498084311123828609810494445185142613798773702657520807946466618693323169023173548853098379897502317938670124135645099166374587489459353004731609870723208067902375253158147994964673961982810904777094620254273783976097362516469700604570335528070188086487815201549048299258980868596301847118557101220556950442629800823864565699999721949802275725759351073537210632176286323116251895455772800574945694757944769031098260885910334565782065269125568789782485813975858948877734786471625110279797416259378980905014689091099883723183787415464004125328675501843378363696441005548245511640391108260433318758206465200846648881874661725324468158500663157367318879588816351463989424105747080438080400001190664416179817427219679019655752358436697250414515665339352603383941528309866173542330136667034958709494625953434284247899331873147334208462995359196120733023851641862629869971260650908581463110439714339115028659204816328756291189199954969653047465876215919171747253868351136268798596862390969377391113998669111069073782120631905343819474963144237179630094183606118903693058929373377115188528120026010637519432409705275126934320168567680140979556142549553482553104697490179790318388632516260055136353441088001747151442367494549194082435138198465582705337865219693844480456098752965406641291517920342726742033018951615022621643394473050294952676686176444500245824553338249761871933586372562149621056755910911452719973724106561913009689131827158408954287509758739502365017321016382879678074616419794852678899847318177883431572115960527670625785474670591355579291175521329220272308914825564582584443087566935669045998252492672015314907748564933241263124907552124472956759078420757867075544193308147697959904673992179377995362833088724745835087481670378029395833952207165355538897935112527644274056647828415754621096374973890920618382232154611908491164315572453769661787382639703438706176267325794105488346745678911324398381404578536961447402770755708791157107686480787678330693062730196097738436460745245621191853473088644747375456023702802683049568783548467750564421960780653265072971756712361943200336809614306995404664103365223730672817321999431854157127319899665378220681153432447274866051178747491040532730982179917102404374525753172651099701957063816911808379488678997935517802496684746034788299207188124475776425407065712742636682594802614707195471730540721490532936024258908486585305056455672045148846021170461546662034485530811893432489399950533103610026953088325947980958536163570463456501810508838018786045851781681157418198909824491217734509411108700195156105123010829435877107627657383102035110820910896428766109362348698512714505195004839314260208483106001677872518219188670047754107937840683787616927870629801946198996155125023412038943815092393025353149596682670389874776912064948697368250063108098918522564118419666369431241570898655875804474948766770420451079817630714031767471921940699356376674945344267426906196714975410311917269773199783924815979192783019303478873959264289566733490360114949583508877257121229619823377503513921564579619317231686505029561774416015935167777241265432248966749317270125467916058771094524336540871905944004767240144605670938517808146904906942306635778259949421887469820025014693784896890905409028025114180124608745132380830497849863139067828880794237605040168411555632197180959063433380128403043314838915599807448691431774360078135250007169023233707305619582159137293338712168961040894359564665090243047889555347889137543132468532982551959775213391222043139920198417263868175421503982438207551513300076603759435154780398818319037366369832019150041300953723075271447071450037527227277730762469492973797085858960605537021215127769878445182356480009652554256065866533997685462407488530007115095139570455181075739891495928820502030605080022673407797242477854379222077248962849440164993410012286998860548030934853662680973179580182693182842807427804983947482768694177381155728680363359733400315305193318877418834649610185957993847716480596277261562368329522237160437600632425035777685391973365855882433519062763187581371602676620005807666467385152314577877203074749346601366349417768424849706153100529898610730216175517264144280603226997243314614225154187107119441743584388245726729715345701406462410556853854912240021229391424818788583788443311804863044926180442753245714656709946720726292900577889959430026498808949844498456184333470128623961747747729150873594493464480243139001219588151947367125217118659160672072446040599644561578915082486479906301829291311407214763347981351327792184324455704752394260626647619207095804007349545513626878528127769911123767757480715220337478682683548206159254434431810510023791050907446400257205014700101859456028171004785882876870648378776944852685154294798549260288121045340105165825654241006823046015422264162649222114143164127984334536452486018987245813133914522168451836521028203680063092011242082174599641271635538347676503937616036067286277323640207952781477983019687217016312923016351459664654551716742192590040264867041554693285609326894230301721801728239443820394738901670789188399252884107441232920580556532716573502993899177649302132281822425695248055673293305975399581609838091067229211329891733153498975945576065836853186309367350543303468338955295897595572095410632143147553639719260080572218738957109565647699258900326880450287024221300133472019024440121299575698637595112879875227550091752054753888461607177806488452348178677030086996125381472897471854303602910988603424646799949345817082849730988067993803010831292004048803959021033126000097845843189862136694464916815938049951559940476653084698436599873206344132740749983646554823049285787381483531990157269132100479389082264132565559476563070553914429246195311056239115109168906748278968612920204067541190018093704567167992956375739297827430577369304748359358039544608882123897376115903469026863733069778806550490017661458033973910807511257548260079141084317036796994112037266672527191072462345267056708960034659823000143905127602514266719075213721057672690147361973724300341541254589900325978683457436260786443524266439658913357940965766794464834405203653116091147905892981302825184809081929304752004168361295335653175937511685070428504831004581328652045808320090391816680366436906224566453984684056587814842413097231112537148841253446453115047891893199062244145022018024617988438768759485841095709374603650500155864213965542473814652667983149842889872878975528247207628527111916707188528742027757983369546231770618588463639508974891700399879244838637083128539173294912592531160636387905024966850482658670482613162095902024511066759792408867214707441630814637911702328018071196933550419906565521134261598648539107714342914588810947756348855253589113572604125559195131838785931529421397903084019718145088923510730346996047148110643570527666723367359166170853213107690381616938284648329669353417088271993594317962732594735145702571201589690825273110681998627211790052062126123126825956485165650362386069396895287224361381346197297756509589419280895368729733061533090063922280059187788047681133609606885405107266048019496548852454049271013413592693218348736300484714455414115815967543628085155929964719285978592960617739363728816862058857163978521368540721798496468078238252253893736707510154813537687318754236417079313737290542074743848707542099005966262304696328508219160161380777482954755310865824872028317308151258969216008328263355354383425698601108491360168722420752003943840027247720714430393052647962963865405456391414589598175026429224105101500572945453130649398087854596917705950745567239118643229352835815282517647080889728493308808484001105615780310335285748419847266316602130321519368729854133226401710150269022630957578198770707906001057739683334558609164231779181098516592637791130242203431394210310280803003037328595698873509492399226811808015176699475143977159910301421418042616782582958184585100482609305626454232957445802832389406595949143136462759604850920761890011328294416654201357309002740757487757585728438166915726450811462876307416888731311349992495695059174666382979918540965662744408674279600875654044945384709628734294830029945162454172654506284574481114964489676345360073900433071124845030696048147238028713519236145660684434298429297333191084318755642284058980572836023393218405911845639285528516763884387641071279117713292355634812037508996476960868426009259385727881862691512884180756001993754342766608712220170265324890255199997068862343167342062060355302667381410978677361802335117016993674273400396198599431086330878342845310057550644186733257066075853229422945637622880204614604250942476143591946400942555389172274845619505732288301764293088986677443650489003792683426495769602369438431247768854839292926389579313512217524183466958511225440269157688506428927335724885597139048236086493180962439506530949062484117521627407920015813226429573733500450925997302748655126777133399723775828866034218237742884769884285149671082053848099075006224251378367546252652625530827845013036156072351229484803557967113169803464328106648691416615151161886403825938438614846347463134102495401828136489278273247724053317231143593087629993140657789635162779452067772263823559855556313946250130545692400343901154821384138668865006814812007754666617385630911801835720101757466906810210408140595712069707518437059669825996659706213983169456820914019889665209444716799340388427104619914316211389473961448992552603034132978576417072327508533653400826719621679638012884519962492757506055072933295174936346365443374414818791106860590837918198002013774527722086565916382557262053328955912326810062352697778239391948797014960469883740730584931796825362133868897165117377465845971439547862969665331561590779481486156810038162381717014776277005526612839611212018811845298682804041722270949721513518785980043886021327491568375498774102048982018715293832359198103534502913739323743257553732392895545453105827891150051186945148982507702793207543878683230020939333623361460990014140200341940340130811984747120990134622343449958969776117084162345005938944369677439363780064889342473793788483229123853906966377741154315859775379796221999451201146593442969131725590228478380410580889742033720965015663617245802338544374933721466785455101551219430154516134829515076422580981863384450681099614368650203980246736435228346149889158068126701535811829124676755598693316274655200134940221446526290330015577548561060997725538284125499110401359231515679108311666441584805302955191721649875830302897923297541117334830422225757964493428939912408391464691395781660530256022088603378263650879611384096344123681223171564332894440909037421967389287687018203684806342057164349466043933039076028524198774745542714455695488202530563866170867289368459619247420043630337504980783127468522519425264154067856141016990699510110865491656445984216025385493057381237934647997615497763653810846380988685760838134954674215693435145929508342650966598091306115800827880462246007080021215161847495490835565512283711024708098396110762527912028924541852067477713851650338854001267270744090288607964148705646433946264351429681739790807657436983111109453761268784073895764028067141702227834484235784891684245957491211348480492357576826431722148105603969920602658776693774148365319675501061664478241883871189893433924170937297931413976419960358658423701631357371599629846032655839471921531232039795010151474203154590654632392640598828639143402647286594941102927432126566208597814957512044779231876554802915499825377926075341695188598361243505469681536435080030552362428276280774094737636541022783935991136198689266589230262544733339483611046981752233295301768772801285099071328201235774342024727386237174234674616240318050189715709051453720562010336686909667204218939700515578572995777236117200399726438328640211186145544912479197750652221431088885582750997338217533930691877056655417347296537667044421439405725377435237604008946023901159536603248162408828257606587698715247832680735510418462970023049145608060377768094316825823889861413723380228520160254444296637312490626791873553444915593531419912456613157148632605892341741200879073779793773666693173912302068748490647530908632450335838324313266209443354366316772136183114052085821998564575024751242304571290835765059099032791347736634996355999815952372275478176414839980224640361668893265100192914480684718805730061887607739719984263474476489485656808702511860685558875143844214815768590920640546159940082887128735242658253913980434765695124395346428292375887486304515245199994778829705329928468581048867964898197736859115230015792581468908563862889231347366525656641930940942539145100605491212620323821810966252901707067546982445710574337404995387295495035498145366136635713642180289356947989813212149905447200749435193243196092215142961848635708758329379685822567707136043480757462640625192587010208274535702332820791353041990335424676405623288915644778553444836761731663041318413836691680197610131917635644637402825110655889150544430401148116954096257866180126876819482477358207239758158160945731569101575109158537338421082998625086777113745059532650708951075858873616743484534765427351748217935583846907167513177798095010574246568406577514053905100683797859775207929263568677249298222065449941822360601494855604842233695521011993751536314464538768767663791779866468526588530885284872654910281770850662178814748771546242283715056451939227797145899301023117864239092504529193339211711539579430044255378417339610668656695718901177558003231142700951537524435890378544997068649229089913796863592025525868047468092260318062328579919191825886422239419686548201406293636088770668483364341224952613770028289991721921215425003802639151173173356741257899667180119010138475008044507004499349635400431548873414323886665193311853425855532191330652509884876065908208153960281689817451096481472750656834399840336448801919038985025764724540000835080170404901298265400157492639133843301663927747101393704382421340891980490863245585036334038183151449467263322674063846699622709696309134747997269689361139320769215145834442295160997070555774630845536934150615571164827181506538408257751319395669972023747631903486543525747007710423011617548539406943767975604106208904601159593175905733890096986850872262970794334572240737162207134536114648105279136131474535437877867893340385302915051819136161291947782738062044625065948472914849545270034578998963118741887019501431538243567831335051560032418541772233207921604547994337233587886446188997138068162846467872318167160000967580260389821938831846768436393760543744497035454983950380865119382216308970211973276386314232069515784053475413541342056979647427141029898638403311815793492099489467146133144385875970007265644270669576743221005260182849335217113899110647814428941059875033714590811102697255822111190776028315353201167333746492416386798243352700511024638975801035457082620149738585095565515768869942068276469249335895699181216345751005897867665886031192823610759943097867101813259723681229643940995654112968304202146232736429054123316176563676278250933883436430366336808456054194903665210123721035590521973714546509454407929474415346164695190002016576177898485305853991491495569306275889237412317678425793445000341558297332999700067964616147212154290794234187380947631684592073955417703803951592554401317837864920607807904362466336143093377894981097659191741759180017087045501168176302601972271684236513860774570594756005599803399160586051958497983506463370377585509259297490591998225056782565067463026868411431988408920550607069357059675204097766197190256582144575333461070969325147797701189823803761804012032859700560115830928191282566576677463265376229815466573045414945347885862833625129730836346906842754982009176719393049460516146518414361407168036277381161594003142261537545002458274835140564679211398568797051592663997016178530202235323901955425423324617514258222652569295145458297649272224539574473394558797960411769585468388624967874510179796712047586350240828295486284248484064145442974784828479707065312516243140539829843181610222311418660931779173977406509995596201565517829136074105626658381932748478641098750824455472390296504450181535511938440247588108575431726926384236445612538949877243961964540797979938641772982798032123565950574027975790375200362320500236640213312782342281229286274906733336843681669451718543864884307013022136942002227475230843499245183702534126410481372089609977325814806674342850782792097505599017982240262064724270258268965190056188200899823985594238258300771796532346951406234392130528485671064132583112384389127869168243890812544875916949717722787305117391740210478860540125219206144904290983549779896793603263411602545117669343870141206533730372495861102001798386097536075847019281650518841350190488189544852622232128565267707055238689134526589369148670398735098213115180449224527109947003658852737107725903087995717376991401239214940101996414219725943471200924825722541781142662383920739446943170605355450183810121084648186451531993970888206102848717518412531615341595947376423808222871725475531893451468538991121743020783308645383735589517212023049923515511034185824524437190415145468827942734270483500392627305555915585102471685098552709604841256744798913065261668310094700212466508863560105742539855121089030712515606709606780971929107260933465251372986613589078282592513145552063795281681314691370452792588904392517134692608688122260210716728563326052520639695700867280803739975621695061564368395216578939070084553816267238182188270733766442573707257812206892786165791125274180386269478182744180786817202080823421957141213092149670931459533038117293246248632251984312539414701156629523228940564393970924298381205858387901487293052998995601138543447771010739400396612336136595796536098216835240453831614796189887870542441329110056418002439380971652994339560120009007112314085925555067495594916710585683421999733347271385851599148717576660146066482627069913888974512301276027404335446905697666771554592721865220162677922849177491272734470137428691775393433671375674855490071892752132751547167720390340529720775386542522372799582066847971388624210331608047487075044911771215710068520174222010433404871996853697678840195411999442752071304715207681408642921557521675323711796868386666937258270888055141544942820330118245593621017566026760373772515696110668741814986263365762760686829329508829802981902753400692413039865772909994670503848648855916064921755073683987098682314063833428535093441333584874792296253705243606229277636562826493419242199982298009971804078263666531246047826680394948939933597466801337853044226585776083853442219465559339543674420928344646058274527985554630188224937862499961562142285049654814034984133157655992483168780111671139005797267244756588565737061998897348169079011529332034014709224513967840244389184778084454372291888533361926354902385382996305265522853359572460525821424201023496479536471088799111586890026301754977084405764129375395245601869955382235644738759405959075179730037674442736255379796141345698259723144352733315498625704027875322935513553700555921089206563473087540712933405108326490651397562511424155449597636561204358842513459899333015031611850773181938719160219595796847839081383726490363047492972219265794309348872943188720612108558321514123983226597069189748303226767152740174819510810929158488673747356662760680104084374140098466243499830843518338157457529999338784217938118447563537877615097571977613687646832969530849557634863957717343187513161982378248818671432426076641174535973387335808965255356841654568318621231877169285385464193525561440175650025989712923981055172779523908755321517970804112691335180279457115554671336597624407953068365356040371409036332623666670181602215836014968370099108399961758387087183793909767567390026807777153542799485972859267280380649940472826137408743844406015380396149737803165916535842224356043868442374927342156748203682413702447879809431185591684387721907531218826177868517914299920930668119472328285092197219732849660255348337653259827189411607566291827781290357615165529936407266398020009421469205404642265388929404197390079087698006853461168557716774715267577660804591263913970236549903313334809359245211809901473602619771390883865084561083525992196094859724123569583203161402337976059086794468131818643596583224205508153109095627934495684998401577044338501131010383731483809753586435308380671449261976672165675063084832514224984513649373960337818416425124061518728747426070621089294612406709918656285699716929851187458452087566347098157176786094719787191521484861978550290843957577952482754626725717613255460228445175279977685913032615098553760990282792880708306539458728004099176942764992896044414012913286345179088874710857682234645387275212830818148076590003248318893039643446562888137122190542162981183687875292583572254541647769416425585493107639237755518228853889710976864462555354989880549308172189809589628736978555168666162090460507148202445994661526770472738450645726727956010511126832339760362198651840983164986818157239357527092803149211309709722892898301732293564213894847693529947487121428377287193944225688739109500796400009517023622664958392528963280697679921686616410233586832165618344232237531941001102232677374326577507706289281603922412774881511690913752179756354771070996522764303126358844610792552496588596006817921368591508908922614108396489802395184633186307299581094768232394579522929360989705836109596796621130325495413382657947967049512407089415300304326531452290766013602654382633157072853389860729509762752575700674753107913106797281788741336454053319432730399535691752702511315211935023102754130164743202305059725664499354455865271431513834868875952512119882541236489220235201438676103482288265734286071939509984786165913378030915650395550803275785794839110755036962534253816476865534458889783440893799424221018192968108503089176707171001424249558138332249176776416407609525859834870062009941551382040172027580643490015189746854699977019318385735098937837417070699521240383269131885265812476077910207137905055567514502102497744847414668268236040125623641214546927796706171538699379542488373905296335420282999270006432425541833572596286855927825369769815851443811776911884790326683774999404553338759265727349927024499360931961005326186040216139511778990222511852270719036554410230814889238112629017813658463171977793784403261578150499415927674327254191577255534072988667721495773152670583234970317445171245248857326367337805191189707993224836655974614762789190716415351227830173758477017220500285740385958508808432705198506841633015974537926002214736950300504487165289379765824117943004863076901970029179966183460309673981482370769855496434704052337032295995012247307215685807915094347574721723240296588859330874152584609184172719635728785278825536560751137418705823096096104192389922826808426404857949581811515627294654981656461786892722904796979933601422564214824726072699723034527955887688342267490923832578733040977790457176049137904954834398538348865570570358373205790826925083473777644253571063558888758719860316017093259766584692166076199646209561540720787848616806549618124114974463121837388906125308527697868367539541610516459119867593340120081571843069609637544175288805281777666680609114910834412923200533409950210846496204638533424588487311266388775641335218024633922606484107322808883314956471885700651800495206759944133804369350720214047758256654325976129606279830261811124730649946525143558067292328199089891757278686036575544955298986827489530112335399132918746380688837658879396941883725770692567834658426491799126318902235811427659094987715567898036197384909953108888553626275321918670406893952940108852591461057057796042871228903537026665900265781419265789314528922524747308286041875084699481947422871225025659241637541741462490223683141299974119766008504317651861997516483388792668499395833540021018800477758641626903808810336936949073862911775747910864623407155203489861667125838382696390269827119010650997399312397874042717205500474897889795120871027808588671909827417869258954634983148464109020086902663376175768002831512699041526888969232307227544181634597998390926046253103926285251557124929311485341589052773582502059929419893121718558687458988410840948655736942940965085647125945442588095386563769178085375155564749162294467686363363531523856656551425136416639478438946967188699033497358808820651167908606899939777809981445961096528833060927600286958618348837695321737524255384969993693358065147334904557901649288058252121889138721003600681963260081705068508688742695135144928982682331089454799068789649032803117134443743257810693084791343614641398644280538891904501440252171139896062848985312419020192135491156344156419898408307275868585893353729149289979444317052482399203920015648458612099928944978374488940460803493721834634534402367859348063657641692222776527599733540357572206109915621852585166284663229142542227531150095037735325865559697342102920486271679588842670983471591738954328357527943142798610742369699906508008390913193694251182156472600356903514942807934273723646447446425089185241470456640579081158662491924658056097050877467597727814894468584702472150835336577438235213312357287100188823110184487686723686877361107125963836534930988317019740072521456942020608455263456278734503252164453547019211628157749011040607409200545049499092352706087360005960347607826464934998867337949452935576666454856049618927140941058272346638608447954834379318519540717825947527416769860403153158092371658746813396941025489810516168068827995339774967977295666867020630772926606051445189124638088017840069664684106579330867059624371573446746992789965220327807598445624050555481597973055347598020685661540602119228732109482902409383904927990883105954599909496143292489217196585445800427667958930211631769598850041741575098657443918567913647265653508637701719673337426061244984849601758978215057796522467755641529953739977808957053243330207079852777713377388710296575781338183136350803792225694732949466214811676603525001620602889389556074658143663863266669666553135204239005602074485595623826437512901502051644735115241328052880798244326279092503739991910316880038612666506870165249523749389831421680402678475612197621288114281716717004166378894090538303671431984712119475217632325785581274574511650572019284694514105976152086748571138131240819425047071442586608799379496046166606240050646883076934936968096487288902709964836331923770676278224704095501755158834096422435885941592011612785014827017444067712328582395407586885427115067049658678027758512917803455120697663364267206447064388193486165946617703300849738089583001286674232445227873781110495505782247123581107551277928683695464716000944273899451068077584841963361304545332440506383703360364074767114618280171980188131223509802307275188007155644028175274009474976437205313706948731453523206067172139462579219507929665902058289639055313267235335897524576451990725967729393285246679585272021789124622713428997023779514175446065662639168963937754111544437958001593053058967384818257365704424558145995489402068802959808458820942932718883185854738410887774729163985945538066865859813856118596608048425894967133736246491479005947484322739908669755500077961323245700072137607320983404340639079512108021330764594352660519171453984326001971213422814260529235746450951267185187042577967558923013847643654642233821299154692356282801408838774282640900657975362526349535697746841441417546008196754588630564067036032932459740173038788046431290726550247001518426192266695426659384063357092031092760600881344671248311558953469804323870919016209704157939797988401241231922050768075773104137187148460214463911348496772532488214870546476775746919568276946031393148164546006963992725039878450012885753754374787916384456959731911913303248024768241575605395653718809955213585301964479979829880931055907782210349920578054517555718142293696005824508053466663429570612838037325151869102609699195422535535283723184663031922060140157051491117540995468752276955622114154551403526789236802687486088666628390020877676337840013410631608240113026299804363139126809681502305279004584028997794992828099305011041237171028745628415825235085375717918873491956425887611759693617979033108855218278229912332006906166595379512954691819870505170318054428960496202655805361597235641172576181690403954979191190556511266164704324486729144520601152999955668406794098584690679148050014110795141163175703578696681130267081087199699483961389527079345611166666873392747092381406712723343081594827315490513124591676020166392331369296684407964860853965715277575032400414117173427905232451873191644567865431569305554930603062462674302196707735497432591325879702954382368948179696081602906783608763161442905143473447755755768408752813136086966519462579581380974536159971119073299281786027862287279147976743699219841125558006946536310034805750615165049379978596474101405120946613412430424397588513634476444310649893177338528026141239250255289160961707046766278030445232954305668060995240803979608269483056011971341644376560711052578834632800093192688174740786917295251011144820822104623066724098254953270266071289665883267124913276720464057322025246493917010003207691334800634299747883054917738472262596616303059302084368604520217513229496673812671720532442671053375555363906742877317044770356509943875699916782904007723819261853139559779425287577443126832014268139403912317668116056321376866682257184916945674230089328424907333834311566479927876431190183043281821066360921651714391260900216101993680675013196356685036932786644813744691093148513654819062399500562391765173180448558139861517049223307299100017103886265681546447385687619500087065108705477985050153699736744645163697810255467475265110265825542085592655183372335542246254028913060965671265654236504105197504739918095811788895849364263938798482039138486603981445570668182010605328480974088031172003919907373872252709256662053769335924111617580949254449311021575625619922989537524060666451636398305827780586685803349702005077605251062975162991500278731285333065619203219577614596971068221478469474487651008281852286972903517409976969830967439446049490151071423308585548725259517041872730281775918379783656867162098811045753697839797799101335610911397496104970116478093882222558688950041023804343840840207524773851162067084045120628419881430511053435927072985332069907365803613645624168597082124027920570963754071769030027653959567716366476821909131869133053933122092415411611900295240363990095932531764977877447400470960393628778266835248765565506225149221373029223334443363013777475804790597905086066394103955337448672216518229095798327661604869578014663771062975158950914392678154585331644709450428904588404903277072642657845344926881955922704046731521541303692055194278924733902349261768259977529618449359966133303821061261737771338050221723865422042908397943166246554992885172495731224501372759169665541764404498116918294433192006127183047216714193185196639593963154358197738590197090456738557351928309243403514307454295092599649067211755056108059089038640011383734825527436888287849650229897044336438383239575892594882548183792632233136059971748355267876077922589034073711779165469528094555788741085545091381486438054607059029026348517232605654154118689468606484270246423951788943375038508674073750401695901716442328840983550527216438891095102979820432374637808077578371592292391457538218062948986497568251280675928604153378333092429137193592485341894241421212262442119749030322618700289656949610655209260973637157343907849039377967416842952964035609466154751908360283603783218607006523161868744540711525413912849360471911170342395950707672897586650073747513329901311218647200644760370075724517409379357568743457093717132732525913202702955942278332592510827848651756426913823683320209251308022438974602518817474398938544258336214836300145727184858422075715140502200694666123758593321711433271511152092413744783276430580438660126283202041203277296271613229221706050833854213331238186115568123654979976914988248897312761933188779131544521673588867658160038842999890241801375352969470681125907029672536442478573396086458638197862135177392592711736179945848642087490873071931708686708619286005113528208954195841718479278128507756397276729183324913914725694463779896126254951349070166777788895920259395133365902288771600425926361710739493471651161388554103041679802308253986848143036539744806803657312881769824372522472801540397205710995205767514923690786878164876074041760571679439341302446916317810517230636254168272729150990334505275433494207906815252158330413461073161445105746289091830073482989788476503272253154674062748197450858017992849215243109178625833049189965308281707231151157317148197855551906299048764990700874294659053200944517884700401105247408086951241490794598054147231377661905770555542819174724091298215412834550390269885505449927092623034167752915624435213989700371746865785258425209774020049147935595262792536229848725377245810892272091832198892399240732545423346858199482472824817969471323133737501211720589145623132632487897598945001531387086509385024649419293640636899594086407110876749569778190936340777818039680872601950933586843024872598738717197355584330317493846866245104043529071685508677747753252574362278644276533712695873325469970352840403426018974195796854874837500302802298175918840747032812363377645035901269927885498161485312600393768906863409524725557605834408647060028054023650322007233542185904701370315024175531837668371300241341487564114692701634480962029417622665857290234940946036376057862806894908366531180553955958330630649539684486393527969574368721866979664785440130496727606543136286287675023598746244414032283599847401687385490931173177220468335582209023207469757322575352105149152876194607673080553355321401266881423247289227428797949053108027465434998088956117573397302518487412787092297451486896194133844100871426170091004751910487811449159587870040794375238742294676315644559439401615026651444663563581617581861352191798582652697208957652126587173974632575423838440358569433859050222413161088919431272165206199438163813623601104233911758608570533851768090786849049120471553684832444198522177025113319771595525790652987393379936047865417765766965919179655587010511262598609438406288393747161893401940465524158118714374365709818847600971235696128316912968723590567654656428180677690128992690660129816442659462144488116104969995272057148111624386115856670114792366409390996729374569574466785040782665090707887144720232640032561171706926835273100465556899480461127039964330493439814864076237772688227889570533729872749456058066014146439703213137305059957592974907923873418071957222742103368611372678614262370157059037656434583176826149447502345041987701158667020347756077487605416745012044037935017576613612636113827237740507442030544103418213822926600394398710539181761566021176705433629087396319965319345218887282849715197364422782652394849961281185177542212034232569080989345502531997323725917093614644307734280615164926518524938882094304213953249978520802102509191226083275745778395559145292118361969098204620046310518595686811808122712759985140937152506128183740358675891962430926240500045554916545062636892592273849416862282316140643755455246244074089089009024032570102708689217544964505072983524415655389603244349740683629792811935105469732152066645005332498479762137009561521654440503396727425272189030508246328558793433195286665823274331699466696558173214853034041974239708872182507697689012295668748409411672199696842210590337462960874559978861294804241181138905611115734516190736586946413170841696276662552119545771551310226060116458426050357094356477429969341290551377187645694471892369585940825552581644272708192592098047308896665906213511877736636576071653781813657600480432823962344975022039547373457717202300594471107155546203084578313813124850077739443035944937807354422012107936949295574203252721172285429369345383908314674380915410887623972563984894529388567393954676555148378920076455682180280616123694791715420820790864161093521208566208881392814563618489580441010235411279948086072824105896635318769703545471431476097101800041406030418264599268589675531508086678612393194619479999738203161604843562619915142707955588840911005979383000677602791034427159535786302192366331806780009152813656909441970396339931982806078745260413992100753194922122976076620628044134666472138640404796058777696024347744080844615252350224464060184009498058641999043772418272194982403023390899387052663644879763435650413883070553347120918057988325000195901949074775807394080849437141078637776794106400371074574504444050005571591193813579460745509686280316884550579475519245677569197874991028914859745673509025008853285682507707767006049313605784055780942944726477317869356209718091276474749421505874327453601879853781767402617656772679246164330497330461280122000982348007267388350652998938495480601622352688334712528336110053937921372228798269952281120043081362114690691403521186321686744573099228776528340383769590247535539903991741094963429588646807505725275663355236807284885659918103218132500537343198109721620585359788658313814990049284456543704486387290008839836227679805525848275565997691836567693808437296138119880243605724148664461996730473291710652959467084917995807871374349730560502303018412249244654963964901569041326800789985625409616454891164210147455820645967221502120632137278441058284647925250724144852319687934610115786711380086932074460181352012866685861396135507338860894533039651761360234539494037146959406737272720905607101055933541814049404694258762641576743221835630476053593694244875279824329193417596712148935442281072022048100226886577492137177647700615276384925998847507301313673488969481276570467669734316370998221076214518369062096834153820133633768453047406000071792907703770884427695543502138660935573525084396382808880679803426655966529065215637688237126000780007806246486885103719506112637594182471468054720019510611646880802959536362047946656991588398609487306303661431269288604009018880360219285797935767527710774289510594702367316672106992327122753975004242340097056214509515972812036360609567470894903074146721821909836125584909063684748389831952675731094369640789195740204129628467779927636709559860254649591918816151800001571999307678275590830561015271287749705541466373799332971276324299733878451150730093915199561765242086888184719439907795165100450488097519467895507381328786753565809687447506029078367078044024562097847422133009095619122747278084303192596534072489565850716654824377503766182712886650340124283506618792010367663915641851996494143487177765756473777921613747844063412622224848905308723619096531337874624324040859843258072969810756966018461571347705451121415590764770554637193212756747383958799317754705833329407137434348385737265064636339193065421738860745317894265303250472928355125336697273760659990034610990289196022452563978563760256708489357273363589071947567766995205963846952560839850996168239889972567877280500281388804643547280875693996488693814543488468737047523692234406078238338246685550298556170216465215197769842419586837129865286164578086292637295470379815236165061579773501025071795561921242009111976475146600596639014400974517725405873138350070697832414392132484230010926727797022319890523381323076133600323028447457777541922587598743579099741380907755213571196006514492204620439529684834538243362234278924812279819177182664806859916596185383952830952474990134834291642710894119924308223481871043242430172126541944832355398520705192999226172136652630322497988708894337270823541199685203725443466549851564434061189168476511437191791615864426635341614697386208835051994531067856818125724857642408611959302525546209073058609115185255334913655789732176357151158869259251828479644228141011694849019862791956054294064385618440043245040880790551512692942866960878666544949678070357795450719502022999927964995642666890653329790233502721626816561908832377222676375955442040822447639413213617913133332184442283588581297673541792880472354614515831318480802120479282127286716342008795515517992627129803165564622101234047795211653042353788078798832537712504178208956498759085502450120355508293387985476637634746574172416124659534726952833859234060378148856089309219518868478409799650099777535939283460759914817755710763368495336224412840152257060265951276864886097394618967558564056955976094330571911011360186904792340437036567370327243176510275732178585977335491015587081514638301274470867051718658061256298202466879260236894043463834422895932280186550888402158836554036208680488767136646626914034072016541963117355668045916416043302114737603828866517269089182436620232681007465842410957658629686907756523057107325210368117752445853186590365171249751223719899115267637803020810689524952428827178662554668619981403025332548599328082994944915426267566249645759642911610817031709365782149539126748549874341866495991407079975724802964642766724399138286227834811752260906958523707134249786746646699016913463125916148562356152145806088111566526008254030792088363837954321907386534383875127248442023352145208681135296761174668648455003125105799154566005549988948730366373925232390244055201310637621235655736299296585551641791071145240213989730428230862335808639828172229914387190206291008527060612605611702389459968963992616589715745577783260070186800058897736261308321320869235254776855567570501589206662415258755554113897207169432299942433012099338283639341962110910398683566937655846873763084086748708453286129881976434665726929830605693106617442704961068468157870688528512079360530554395780549933103959442508827516676447176547792447854548958389144032693839802997713254279024913131867839738803644362752939652159826442896945618172754940407778313587252007012968685742396082464547839626342721226477578590702874695140391367277504570311665315538644785914694620829479711956008121955274769534470152909792209218765808329385561951750209876456299797881398651223632765884513186052521122457954657391207181594384091212145798301177958603696326353666854741988560416313510567635400387347993640595459190977445231296975381536727459147044847840573650486161336273553553389167194691347351617832366985984043859037529133876181876741059847353541717048680549114025171739586353828647086186960932909812467576785365540583101296941116267124785780984870311106068303709551168142926587865494382231889782765869523903688711358270531459490880517302591423797255632097465727062838822952620062863246746380384823828942521828369100318501027341050970255839145957860863159212327845810805526207327061044057413164051607331160723960936989512319046024579211951170020241330141916504199750646380458889767722582262068833235444733028297985814949609929343808267695149341945290728667112408574813803148319175096370597786803178058017673189916487859884922697923845491133910674570550459670888582110330796066516151253560199286789684497457187462201357499559347175766303711428046348390401749134937431871128277173744473175079584804637831035845218639173755244333132814491899900634532558360578847641984753111660102339820858714725442243075318737926938962400616855553115893154292000927712034372785160174375501912342261331294693148186172257878270333332473919082695922956812502514021172181640626426210231479504684751460374334313225312276332754340106413411246069140884472963146911619463938112328650839755458181730824267957616314759450798987774971500949793712947976160022048541913282064924274530867021469840559283168401523992528837740835882705157544319765193577463048493365176230655403586494016504515904952461143259587692010973860573015457064555340281723575059088463976771530170480659314037589273863775311116678657955817887657279456915795675957325611058341178649553300716796408555333911160444564902427281151534924776529168672642453379181660666955621172891871469255554305524275234530396281911306264280310264572131658800124833559585723100511233716265145774456445941404446360167279988799653046796402959220094149637202243790106466280117519956895598261864326614226959016199538532532900757414872755381028315722649601622130771405010309696538540347493274597385343649175581057498582939621081412490284869397337983243536243849741074765096070934679824904970363040549918958132643938208140239740318674368268087128057174648767119107653491468064224724301729376285856004168938303494427178051698677962301898972449205564013945212050656610581459030744705577088611282639601464849019013249310374386006992162377418947042711934513682166876633621995649555797841736067730050603101246739591598449636278120064054307562816022240259865333249382104631352527296047032402754717764621931639544226572896126908483596556269355789153979914513863023024809593226339975538707596972726350340470733521353931364633239424483094565808312671429633178372850357353032335713071311844046819005443418100871693334709455844394746593214945264393197290116420598489666801933068026382870851042482853262596838290068988514109391550267752688777002372006794409359727685422923032566250881638261057232705000225065315360739526445884372339825059853594309056710621167843378697586943059017988947527068356315170673937169436195287027426210586101854521120223939040038819026381540890881294776899488403841281026434452465132817959572176497200985385796916144701427653355665430334150931233238978599677093282047380361719009290204802049071266332200246361747959990451282414990161190767452090064853078212672957928972821280792893135005711245272333797509649497736421911473259459412270521217876473189129646438852056359108983421854253932012925488009222470483230480449274360953664431915668014640767492263494964720332496696644280647387574950074085994194059871927239370393573222601248063318549163725311250605306182915692357209280565335027685508978007806610672357925520661581010481207514039367891952445560874133819451756117204977584011573999495788703778687988389897133441500758996555580710251851273222297385597361917775206782547622315808226674377289068992810119614779760690640882135144299048492419597170198375846718172661254617832123101104890655130580136145137140829047175093322572495666401490091699933748213313110993129879458121464955056796547562512291618988709955655609291238513182997056281782782694251340672837609184551458704191661725138975880853854665250622324609527897515932546029195014449154499657280270505098593723289846935177604554138457953632374217294277559469475790911871028952829962406871503485223740755129590805207168374750411985626042523024542518011557452725112018416641059797433831391678122868169376164834145208248288783379485013506230148577751277735753645854070369585439213436073819375437209600047591105168654333007048476949646187729754492893313811284287161163934792037726033342146903624781089273093644600586538360593823745527657838941348077417854644700883148905654790929397170344078393226301051759951893993823000861274133723803502037496347185096547524833513349232234122421617639684944782496085787099605619762365452802954720240762097730394396711991148013767459490773593139325027213762856681004194432112816396832310022032412030736323797425412391134897294927453609137800672370165369170582987915805649125956076699212993818529543962687957570160602726186107374892986839293211235231657605525891357923554476387430912044589074624568526020684964075911044783952338280644414264069968182688383591413129669801844313376548610612666065863148128150064747575028136790132102955939635155792873273320944480013084396714989021666538231529267186810401213562909245023140248700707330051482681323585279986372020815928679006651665191542121903986949027104130220444490333051069902312410859867820926541066693176544721875890820739772842197999292254179861545954266012895753577224459803416637652049035211135150324527336058587687341020904082473326169656916867566036840010185565877944475969274853910793377591492419489681237256014054691965576970744888207686016081158163309938456975482093910149851134065448859277146490625638606277232469612590935160241495427720155029705820761132357439276528110092185114909813316888715921167710596109410533069522499928869109095764540999307820656392235886850223618730034144495563953227201238482998643969297855285089042109948710388313911361660712164705554950549944971313133352726973430328700567990580825975687062735980640094955615044605168567514473150980350982858627054540796444464773264660763997988154464797422833743564784750262361636544670918791469563501016172767268909695485354375919292544126188551207132213025783046502150301749880838344919578804872422486777525437659808539353649463933362828612451988119228743059945920574646057816458638770332681821099447268193609300156117153043899976442265173619483594589963856038862891036542874149208080099326790980590878757394296269998132834977200819646763283511268335247417948621505713816151526774968804130164816322657060786001357567242516570641121306487082920499634280233114513661850631083148779026425501987626619662509752272202201783416809495579185459851183865170057123010714036726946819961301701721257319054780857745387183130559603863210337260680033718194062488534597574254702845338066763284143110273211178401276912179720679961724693459810609537893363134087031979049527986368498367335742094135243924712969640592056619358688461251883078987059287302909728330309195574166771947214344483230076307642300805178841996774648515000031483100482569704218018386629517255282166785143455479169797115590305577839307826459894237475620722817181809185516353654402908736026804045184197878753287207661655905038673444969557747212155109929673061147705028888090516968582938247223140964479815808372277354782861058995763402732174331060595552809359784897786270178507657741825616813850478177764272717083743334051942254360560134603859714558870462780326478731555681377731021355539443153479492492920472650124803859166356285954512791123140055492483596907226831355617388495099662820058953012696720933322192093148696346417112892085985502067526052089953548917750659234959964205474592619925419045110138762179196011650936342546326169338448098321826550369235137309940690272672777281499518530308983926558664036479642626079144894450102568033729027969447062042824463188081418460830185903288963483768532184411943659619757811831576482506178331808858302055332532340941098520384139554189530027301804834471427765542154255693506999176304445331686535579722332647844143209887949098527948517179916691744287454380990226087930033445319709105693705834448194094352714054978601048137242418689928776420858638426153628600548771299780058780646267914787249621751257436546834766139578018942149097625231358735965734419896679439289236662721593431155831197908686715277422286962547187484080261309330262916844397341580639015605199620590058100731519221285762472204943434198689598880503666800064193812316766063570826496605329124090279657187110661488176941499874964514693474145877460880059130478905358199379882397373797160925438340068216494387014886395320987926410040233839027022490320260840084702597384769145290349049266415001424259118930646589104316009729474974938832660587619102717964882867253111752108642172637483980850323257368737122162653829517598565483087147965230206093090652599512465298624170493581926762441343874936348298982306820533643875996461436495673382182708483350234719585496099765721669642200357230181918414321769077455484429116839774206644149277336733790032822840746022631057530006467033785296524040567317782353657039106639855797923649522151395167650158619246510617414379557110512612110745542746208073319735417185344263486636445304869881876600963454276672979244920009566894116553834146840591252422782757602922245771011615968343343224232122260237451016894074847368334452532758154512708507749001242498634831051019156345882123611485862791395609052315611033415782073162921407848336678551180058660123544873744338270066412488159229404500012532859681977456191236399476716590771586144960013146994018911159590703135092483958603844753499037165218544928726750219230907020987640728394896570985807974261777226472261468586979562420305854654707316666047605036057465142594662553128152420386830590610500167141057219118090834648108078032723999737931790349175950707216975927968750430714151635742886696113511327523853947836462476638738582927876233896155526876614757721450301719228999769724365815611891599688413892088316581886547591626108478268309216703666245684233883011916491432377310792890088903236412750585224792806602822777857527417226247046603708816969627127830138741943309555933497528003608255034173969689818235511678357351187521926353992689057429194501125689089918116540197327661964187216127744734755943248907196052151235496727134917855602182370683698906966925486523069444279210164642252715757673321463310340167212518834752476713274571155510182624461187727343914982644379372427314320876234621398370786604198583172809921806281964671253323172221210186030319052611333985700783910498731214878219926852380104445148589715553762877487389145200097843264286686693901282952724564367433932201167654976045146888318402406088416555132291726853129794575341741702527793302454400525756518641127014385953552281981334314137414951675898185711022410528439243285476084071493099430085858524223199281160028315303064294758524546174468914421693203617080661254108665742246142883979751266785816305467693190242917523177942765122277203528299091611079917720736178080465367500648261921284075100465972977944342926171143425789661101088205718719659929422973190567371208485698986228841987661716541905956205419719597389654490730335426878476925218352586517319632348204459353490503088932583414927976287995987996870189516635716903572499541557627935914021194561714002438473036258712464091583523494176046699485860526724694861436961913927297997607795648559855166941362310327911438596645018772367331357481899261758851769002550879279911845463633774039732644868036727653987974837862848589188161748154615993076870463195765030126905083794937403471022398472975642188476649014246632822581962602862774475783929177573723918916039213288665480827874073937384749699654904037452636871220226311496892574076798795762810992371559310317712306591003134221480529479135622860548365318881923726227683521411190413647645277126058584332412433166532342430929984154011388410383759590701511682454547490415852716232186172130609992624200705683606530929425177022206500973921635990247020206291142638114317774707428925395746192218364776135173203975856021429769064240643704398817735293650950282831122895733035775012814259354489793650992392716148004825792402147509576029361636837382118044927056514213869249512591948212406711456232669357564598022577765540805085694111259742783743213220190581964763304637749842941082563978493739520267299626122218089817532562281999029794376454231741588947103375433266221835024437536719865000575965653319252382891735583302591673946714108491665883445808337445010441347983053848359761469641645107068369041846983521936141017421204475998482785904208017844297032276381431031123394230673642279926688432787961488722103182600214251682647706920507993836584669561275048686405545591154682200026338053800272510530540667253145519526953424108670824637747979105622526405788648494721065858767381994503088646084410823205356269815334504119471936632366278237533975099797008495717872734329078872573213437384374535090770048242267390885198071817609758906723066837233619986955970549056829392914694555633265776883739132133275208780766386504891228737571532900892685021877720033116901090834659648382254399428439072095557682179491226481098030237771451934888283509385468191531145914259840526758972405564410349639122851130488851782854758602641098660433015338881868574693050995307833766717290466454975188156878744875618655389425528594539968912649041292651926604182556803667844218111538633472277689357649392811270509546279428816135093293178199233043185438347976527649481374012752387176304210297951731798939492135082737676791240420496766733179844720177664223225149731554273976113860748023281951629446192094279104425626161176756762226445465437070080787798991910858596239515071740996840246945214621621694495298053005643347993800960990220709799314875546616222661680045385052776985931929389899218677441403752418244613933959277836799894222126222491853389303201713522202328479080698417621084064252845483245078413045087048140132424881345797708210815866669779680816602802619461588370079590127116817044199658834623061503718125922194395293507225906914282556873100707963477175570797960774548576099421308650709632523013716061571150509691342723238591158302006337000246731456983758142829567848532398321141902531694623993259122319126585322863584952169764094221699303886993648624587252447299307801679472622461337471544380048114739102556548209533836691416828112482676312487584622899807642922640167243540708962851361612241319027159686627479860755089733452554384803401066515668060079588117264290476272975211908876924373796081910307483951515705403947098514752264793903007542309503590912858255638339700590119866505457179092514824891090323313568730546622765360815839451350527964100218231729369288793249060041992570450359979708722931889032342551851474174353578985948701284158080523537783884599433271589791526403622867573326054526082097144784841849479725614315119772545358640036647472717085799662072810059037924271872691268311839683283566028832770569325308622007070946412597186484309744812775462533121111348636169257759075915993751598969367503562123544912994789437837763142360131571302208955715385321118748696613110422485078021199936403605320884241594743660959705118879267062271540386970383967042718658622729756029300279644392475711937156032298621153653728035658409851798284698754055541684321585313077408225151454012980709144728709813332725664029320271654771564774438166775550501844714772524601221676277255056205273218611509997004257551045577868997037125896416932903176904206188209421275203963178245789454849647887675150101112885979547588804401824344701626339878912300370742577439400149604643551508783470348369642241044706980826347758491416666766930052694287874466158367867808768230672066244887151318350656404288562119311145750048262506611390115580072173018679967150598098506399931353892614244185869867870305135941968283160389613008617577039015089189509890099603616448755563274920405705372882625635919583053639866209371095930972394188282679240010527696179840419646892967115928655705800853328253763296694607113611452825916629662298998634506017290280560101369136862036140782440166290747338496017551836072740644591280451076480130858678493436361134286934735308275947346176594294172524563383604711359257321208687730861064150394053215509987210804759594279466683172844232176035032256693115374524329045347058342475846860641544326538013194311100063307625981244374004748729040090542287503407807443532567208450666919654926407637281706961112610553404872637943455483233250719752935542478384173004980195070284365165911725468881475414927652012304054947709000509807655588854121300155068455834279765636991661953035850961469517833148062209391642351643581024080602351164591276223195548645048907992367969589649258942950640088721096548690234687349974318305641035312514519099491747319215876248943709592924116537594518527875918692278931764569626208877729038656796424320356852588118474132272832775392794664281490710771181585509232378574150547168729774419520499617069149898542618382174847953513210261400166553801375222849707703587557370248092913721920883105662986123824359296276415835553439011893061719570390117008329922720412291019254120642278964285224197176352644576711093594541935005239831089692562897090837006500236635000508728505274043223022562525642130060738136773304824547368244054557270882962607068726614980654652028609218132966229567736644055587286810579444141518695530674317950331944303135488638727346606410993655374919593251953332398555199295092935272365725714827042600596713960305277523556742546093647939526439232554032267679674495897176368461768873457512882947514182237939212179519952549264910560182516988210495368093047179091014543425063440347219318647819357024660593991266036894543883069540206768953869329187431602413275800979669949752581207982733966148941829163359048577846397520142552111530569223625823395744391775020486872669253929192224723029546647416878636612027872314205934520839797684774237761819126604559689776370097012256977344191867740632457265571635660412600900833803109305696369176537511471108769208325125857772300862534059309220842509344025809221032273307865599198389338956922084677465599804011035146367313680211668728596877852816219604032089078682960249438735777387764219183492765504175633698360601744591041926774929511536373714610720528630336638886650703795651300021814511875794963087083576565200889127965912800718313096829588928603131904067710767991359496929054369741579923390497056993537713800439002296356605933119726869983295472610941635627806901713684697418852048330012418527470926994555250944221562052494988599452597697423419313637431123590247708681290365545906833565290121571268403914511564777779865892615314548154135420404749280473108247861699055945358445355418953435180276990043598625362229306865161021661969890644137826528929450274751287647242386023364657794069382944104244851834741716412877718156679716214421610678717398400634476959807348788404298480276445163654815501762992663121235038429896060713951720676436475184324131305560712369466365774406451883193655056623754684003095330108883905475169463459013769566698540852455435522623838595888720481491103806454955271749807830967859573729149098912574497496515970724427883106496857442811064376297424573301551933042452578840911010673420310157248946350361031636666584440466378569458111120251220539528517907101104583350508734840943169472318274508937426651074665776913666278727341959345388466373995073961259815044413520773037055489338200576752258090512738515726997087208102582997524268789632949548602063428080886215227646724246152495485980475939139864855696480828897050664240175470284884317095913797755733883347052895838931399330435130171697781841165139049686763559628765018683927217796097097618725730902790212852390704937382618377095469493488543871255203848398481575348994718959191393754894501320329133166259535959759151529712870444165467013598195353721920266460641911420912768546593161059341660545085536211363245493326390259434260716211619109606740917392526608355493247881216342523914813637411603483919110713344596387367887027859038217328972018814437557963551599508310671808334165431626587091682832912137664304327743599599256066107050599323378376004853974139151082804371066825041181211977370036650994325577746671750312125875234872881272481228791814995734810942344184650150584856981482937422107242515493742904851660195515682450500916034049290082218047240579246042876633235064955901110612693959611813533952225142827282797138224072965305115481552782239010475863747962673509438499793321454809539635232929654118507267875266622397195195923091949294158260462882585465011758661777723840164462604468758982853959939030428990822474865786672229807051364835899876073884299501992389828173849716987277921547304239925970154346516196964100913165110145507934345689924277112284315352909370358908220348807187827540484588657616797248396880168564919672013353294308652031372673836204617435811121580018918584404158363382414814177869826040120339327814550043079502230722571038266671401733723456091694608118239238810873775448719453262550672006650927543044239872193579083724533051864667578615512768872511652165422797364751478686698306148250558932797611993892662079311941785046502239466841749430671028238238513244112653044431231623040895498009463059772429072775070219697840580374913487710869378864968906434368263979218271766007973192793087425090764908185773781472608074841632047467052690183177906127994374570985748545116369526433107401158750965428006401191564141122901470230969814537518875296175435947338099841093631316201928182536464304477710158665095891608305868575740547021881115829995948807446804943506664490856084173082652914001255913083755159340952657849620325464940324037394573475840170140761754199379288945714963257909470346378800017246918632437026049456617584423895720438773568738714910352453153092200965877892958016720877301983729895446887402294640291477161637913217113415216140658144844449524266548589443910860602032487231360660095950900290282450112309888725358789791292290613124019080390274974280206754971179863844184648870578141863666937137049005261145948429419450596513944894691853445574608866886537725756053807093085516604496455318763045185404657110291864980471044635826434305427174587220850378792150298867534614032490921164452473178244102414914522479855710746365464513576415046638986965080822584724244760272852056785928084639115060325096585213580554851933010301525302880637265169719750787442591147807802579436516662919507101238465737273711326757726024642892387835710590680087298815037100868448326206928159300902243757367273073451490394355499236450157095201822532835518945346301292393374524313417854562357394268425693103570260408922232518073390956116505670761695100520871191253549234936227407437304077892148950461505452367445214845773863072335934981882944461190667712281426496930281865299482519573404602487756037477050215960749272066291635339408373566605439601486841825247688469965580090107161722900770850396489421880584338347149718270723644350907436035242820884954140770017097053750611530900939973478391615953370224326251144560149467346551935311753692659911492295252541604361942296515351671124378191210699134365325624121991682274150311424821487930492222081297851802898322782802676959314192519034627146123650336367665245413623367929747229112495241267960927791236558828784100569337266505145259484418821238945586769647614922031122819176017647630383298536598024252385402037465495407210581477984391147155647278598259624635340398569926270515548063582550747129289608117989209841699288389212677145876614898162385486327410229194653638891422905806939238681665262939727077231114641798060172692064954402097376027945055126719677650847586134667253099312146217881671935196421259424555788009904482216685243166800235391273608515767623622631333577169842437918245969933014305526220873168358426539998572455616498417738875413758068520219189147254956729644500031459274947319062898831367997039449752698398808820280573372929635370380828593822782114327797276317636063218067762180137425713803645637422256041314296136228676879665940339996899070882636909241470662759788667857829919602417289568476379065057867630268281563478517513424057117336307460828724666047334709578320553551136889017531412827252984285483940555221142697654799187166612467169866264776838409198231555977221600852947694558014046025829854205341320759210826128921126418693543802416053104868285527943100882356727345369133080063847569090882250446587255813950709079469798096404709182509300428160099722612649200412495378249737493313857817323678378784503292558951375930954878690284845041565054423078856456633680809220409807594414123686682293670793656034163029796553928063970712216430181993965207294743420190714915229242874703684381138002915065207076928781679075555632329801809314064518186592554330295671245303330450165621625796942723828622771650141137466138981548488864544237608576738467563866487788260375614956032241768864802396252965671741218269568185668280603078633617622015597732682947239525522632685640431577907076741589192382381139281788947875093849769964846336944323187779270293901838595500766087108480488340996976272193766321795096667698728696506671816418618573642162098318712837484290017574377781816429659810197159049157450420253313692432489457809592941725587940837172935383005292328236372620433540101878516088688599074238725278921040969875568909690185166329190147219372906548812720061764663782389652764541933187386302172763205102318177389378703610787311938257469177159732872836150764398808506050526114973367988230551317996379417843025696795284831939108208599748772478822989640974606529906609203257298366989319947532752065131714143650819091195805845466591577591680693799890290719504912254353046433731814160778063851691406537336809784851921546584249419974873356405797214753885255388135680073849510047739472715708779903714412126234025843263487846368752706551754307173963531887662664154730169348724134604727801155848759051577930837144183225315671397148664128390047295600297746765535171946965741372469517259082753252919523870514928393947325978795017474907990935544206682361577130938688898803355619992057368615980390269307627177385220954042238072705117354942360813486723966457141365338625151412643534329888914871596884581314658842589767707250810307474643568940119474641235013176197296028427821496199861682454125822181860578252708936144810554793990798636704177887901215895413184525364531736087057878922215612707220868146535544101732577744254220383111390895804841973836996170848076427606724339914644600670570613594195196907779292526910331529163489790853992293893459130712875405218200004398001569894940699427810562426829301555822694210441418498670755619644492461416921166625692961144902798377943841370836218515865743664351067872567629305376288276010313495756796127207668857771585582941927708231101559430253136553378569084277854437055972875789821640074585350403068959365934051030410025867459386040356374850580329480864161627096892433467593911824745348305929622698561305364521084457286636595315589947626266989130455999448996590428202045121105789966883002843517032540408704601720020814631817299837918890929139800374966365744538816034017489213709161117039799752311178053095129965657979059120972079353899825792130677349381768443407024497316412970068620281347795066148734365121653971134363670290273088925304403268185219489224848623812700653790578159967852359507295091814385845908735713510378786966071401962234635672282480395668940733864114837653455909282083394936540640390260754541331892629584083360609868288878239789525714228936621343947178399402717878900239126034848677255823679309459792544004440990492469088070320146557934547917880286241308368927942468694087724041104691095598267863418866671728077107781488436893931476067675921900726041225101112513760959142483967982874025713540704906692613767682920596753039575782683454502706603377318530994940222321716734716129082496952194184784607447960084075531073903839465676853085775675343654829370245131250980206190361632866848342013790769517567203575159220907352628281894277994766809508412399428934257587555735532144709920259015453921149243394407873906405325572402413218222165139881756606148011110720961238615588993693222320137526378088395133276871520688080309210962383045181718051693001203354901872941490144580257768323808672670029048077238784253658188469973154914946868143849261800753242976637013013886153447804509665002231753348507362540611870156195712460041236406079886098964305736486742197616745043626584574993617315884229742810542601769377015812551745454409166516140718916925203045774033986927831763878493420435504743029462093073715368489297779116414072477653555060847611589497439374508274268575417646419899619570999627786551446050505767288791540975454722687571715309613221025767024197382469582117286867044397704054002081730905295314238147843219283480238592780609545339688638871735086143967850757032028846122641245583971195371566853108449024157699668910415453297922559862049017852089922237260466910677714359487277184429352739330225900793796537304553678458083189836135001271913836755159353079651757979439780743366796598741759638213895638821002647403299138950278859604632571114919307072355576290134621144233530762260064389390958366817736090815186039933772294911206622896929072463197006245816506013207310319146039190763541938610624067639453730821994990698735921008542904423890909532182291185551302953427334550929604101730297366693810906583323603906064188022043072688729993354095972743453622646944236701417504351525346435801454830219755668142258113871465875647627661861903739123485845995781046750486940144139011825330666138869004765175718101552447341676882939788193483650610074161356064785747017754813107541003126707682052764076601912272969398964632604368319988894159090659306956271602233048802262679346881182902469184776920656389246033908486309281656079631539715333875023358968977878658117409178904273500778377404923137183629696600758325409961338271281610008550005520328950295940815768202610020400788598362813518635193711775157744410721162082259223923929225255856572664543415944334116656049780934719806126161716467858738304588347366294847499948984833283903498994139072260447100449960365086266149244319960952202723375511341382228030185156518287827969954587777070240961520655821671570735064616506339626288480896160339459457099815882218041589390952526950777970228815035316510788526386272224319834493787684271977689398127070887156567787857259156064980807423259231555219989596361975258740735601827239676173993600999330739859000040717180849947216629690659674114623319450852217160715267353696210785126005557125266022656700410468609427206001066087643719081009285549376240243249139378953977334458572359703394900528860620904149269653703698432986175395088291816069847976267113729602783085383433146248581348385341648208807196223008166549730889389974462990270852364829753589334990897203138314076256036864482912249270489509912150694108284596472779333973491122433801619897995075214997314482083312905210282923111240003442036025943819241298319135925413848929653975254301451585618049912646314039683804027133196223223622640823145516353538639411238667166948970178647221647461324178876070284584278263633583069122637004341884013792529412762114525644761835944574127602891245021730083569892041384765517827063550407185786348941373586158528442358481965728834888732783399641025780957570043135750538183728041996693545379613189087462712827099672245845817535470947502739194729919005142443690237136664460613694426935679113601065830085559932065644685138414643755307736759031707864160136996960909915465474677768509836513666161985967487334858532555099923563134467517319391346734561269699422228138180761769200712566310115060937423734315585352768530783461622765785585630511618211506138389417030576309642544738915235046745713531614154767996042238521956484149995790370803572372325384872341274983745637024681026218933766654727242904451034483040232073199597930398861742138016137023266815779970031054222855409593758973985447700058945915814293178248838678660664438178775378473245867250138194860153845715254401082179579158146665861528906327780191949035529073256568812742104086468003903288567867516143325706140242385388634088873469638485082048617662753783551609090304366786139863904882408431736570289285358550720734886104486962954231392472309769919695088733395711827359220283072943256272189802059905089526627796892218461144952091759720338426656929109572931009662926521327051662739169162985149045184072253177220538773667840263898484601447715362689522765997740988166892440152729303767381414369704734609389200483979146783296839928985596505620747075354014550611605882865723580706437693788636621296163690968370921665505195036750406714942184983236988635830102056612294786792309758311247945178544530330831256804061825937878362204773783928689048054838277858355660663321266765033799625652543216694703340712423540049381235064007459409870961175147991164956501841419871121526238989354601563916269524065959480487527125352064142179282927548292271792489599848339013226468810718604103530170874900377632894000229135756947289611081009732075914280047944352337744528156658048982252648976805105956721803549902831484278307367856599709041450459052164856933962520772026807724676538061553964612326612159836472361402256323550164178941725265887909952155529756838729464597842463861583742717505529697931990959199306283846268928521086704060047404077664788973369306710591277159024043873739207192154378622017371666769051463764831287839630157703259538444044473240678809455967090266431579353373379925572798685540228267183308685445968849865709693914569909954909488385075215726494766754229815512337897933023694040142171095132486711853506647991048107052085740382066744943518401964570836154389339612452010973887468199640262383229236356722227384783174130784729906876192995308338311909376675109554418880571892721859252008458092150887656931716799226505979739903669882717900222719669975450324476227246458815036761477967551109385975503552216691705361953648125123429562095190116143842294068624437082390521059507378038966645811085814221797816758702180827628220670146770179285246965879970162299123628735775178325411405052189300144893309462917476589970284410042525016363837294672971097524755984250835927199267415953604943359179602170035749776395359316530883466791700527502958542067311055807468789547209852600724434185011782899754657705155336249424752649184882135156911037491039036020104431077585713068108851509194215831510943133716091871549731696581654037792308312992398184137118738790843602522026014067309006443025013329739998834240520393205818207125215743306595426355989970381077608768308534119324278206740846317583607573726761300553530316805758280459235534055907886035401094828352083140251182472960678853321500489367806954866742233608690382621381213665257737627540318703583841758343999695800425613344859055656132646739254263546432379318464815173110433541991898542721963124359135520886058852559077144113619385852830835429119268697842070841508082016606327228273965703594268532926438977528669352318621774016142925550245747493026216270898200575861731723395781590538263977764857252017250950262467988286445472810700618798444995632043756440165962845771245856350486715620972286953548457463728397058696253224060878110894278235292284289660402351609119397100625907956339259891328005796197762856743366550329265958479480531111467879924993440862419189996270343745697750919296117625009202791755208981961205996771756727830901650295711103087426608048712259822831788937328351037989815641810065591377568783846973855281860330538033612592126636946613728005345973008372165650130493235755300633458290351074283432232637088512382818099884710701518701805854261308126297961856293492083395955686839112764544666856326218298270351481155073887531595643325939255872463011019330337999543002019072927584522550656351713299620526008929169288243948526681927276855392838050254102742898648815928302817087909716297548318006094342754784377765093572552006200459648156513963395509333590149627518015877650476310289156721598110111031007363410026785146250350167477495483445112082158195562877982463069596934927433807862186738796098166488579552746736646441426090669613531731951855292267053127850537745507642148440695066956205394355627016998807650160619642125881593220640416128206950639192834805714436785919591036242992772060552852419176902173173286022829079715425680066465708849714133802482709320562240270116712737825197819246798260266897379189006765124131601484413855385282339316382745404726439072066795865589210821755985608345750596383378416891055256441171439828297629813748372663430734336621113202437275445255598797252806575818090644643738199514636261605973657848002062166283604849723794580327352901049333820788769552696145814701656310890179647464425187766197378148528596669143743888238681850035362716125301284277528042482037274333959346873546449569886801345092527916260020343997700297842710883313738131337122079110446291024116900297407329033700070297664426699984558766792943523495323297138824720299585757384514881349746064063854277335207226129049994279429579539998214131178372392737861142311210490819510497594129516187144621427887865514283553678558748709512532759732866714428030043019289557859558275639546533696835977771044258103513459865015502016207470420080526615096935216780884171281476985570125444242399180076492305523555025285666231328371236905427392690242444005351604948071761048765688705294552219925065570764128551306186743133127062613131264088226282443987918132956033530417712017983536344079567637495002473863313077895173850876443653707767756410946487325826025120391640715343900584428663235943281588643791974829128454130407383217748581958602885171722073149599158743609303257602019356175017668877413357090688332997241998491972901073803468328469560486349895201922768103337170733882643835375040315572265298398879930361383927688776771217985476527570874451619956988187276228822749338258673215502678031066402248367621952920860283242145674707207208798406623806184229548901380400153708474527469854708106783579083310427184385684950166374085634854482035716503202146361006547792498362686276332451218472287327403456345736505903795013027340157280228177746730359583975157813263202001079136834042064254782827185864318945557989423333664922496567109993000180923558124056063030007369274045763366959151999426080598128582194647285923766144537155360957944976515683699087493736422415109166424567438173091641113571893958813122221350151479685947333411840651946761872728022792904167141542644568131456672536103475497008994832012060717855318862617712082757877110155347290028190942704704651538961069952491422315628228740225659487053161553814602561580835788787522638046101552563278653638065600244790766811424172658238621650760631589208303531700336459450913170088288613481397001163985746832783761497655420160582436933831235475254472204450155588625962777123267536806107682720727854691272041716326005977595447307418393604858842711995160029322733360595278000771005046388997770650776386453139469860699118356368525927082909559068319733410618033126029599715104122062241693481346452413015315358898822117689548425019592441257926141641956835703994638609886733858091727808079706191981684339683878082375762565359337745899219267179507312779434007399942541285267823257345300285697070322916312634933815732054612699328344856805621138103610724251458495473122165300239092230008812863347674862246145120990363080805194259942448859079813155817705707158924137937464743861970228602267741919240854590728281205641708828409396299734594801584152151317563703445310110952185877479043676006825238333262373290251812351969031752571140119275484790701414713595334403699016183820634506799182745867588413980619684421807300869201822358929729180693704392210187307488266485752331657514420352749738419994763749906155207406542880247830311696660624774511172882276790970454085339041252176996074198787732932947065928007575684907047836961132771558496619605837478735192363648303124601903727677901365632117990417906501186683527485723254796548274360454547427374965526673262333921797853752580017358216375066997018310258078746391194128674884389363082823474424461988583699444567835958626978176884401085211091426114270721891201997175683262024391629556900198440968628588624659033639070706720828850543265164253963243103773501870271877571709439364358147712850806205818085910436129731452444453528731411880162634469802173761736604226862118771974015404636778526146453948282401469285375113887501570450667410392807163298473747188724290846465099853901465548297096401849920683376415948591998916179887479412598098987714720183943748874684095918492518009332079726633423189874105471092442891911130704934512284514655702162858752780431817058211926279196239367331149750778670810699732864933819201982636616767587937588618080446694144023016478126075172861433952619517477828417129292830084471170755026899931214200965002146390408000743719476427087612160747336036399888092774816052814399571757613894875467373591400763101149994406655667958255196720499709021547547433246834596184095034737580195870193838994497450297206936755929573834257079234012479470035516576464325616141467518192246265946180139856485173030485748127454076722873341726686386278580704184311757914345444330429012718242741410930357418670900403118366114597403745442470261989357657914281690763867776198919237919514440738570638638413822389479800914941738191645140066358773021608552409273618727427728080985392309331081237304385799835070494349945689460712858321525857618756286062289417236786575514625831052059363435482709746034610764612701760774180151170026183600203312455601382595922415899785865071343262363461343823117471280888461331999787370998465056034986234311708188192227787037865523985706308436603676665795803482969609324434844707447599740874028392965272251964234461875937672207656400535699225051848695736984440106970927508551740463194397130867800987181845878464449941571181356116720115829152684096663829348953563785217732808597677332866073374903165085849404617740224701501549551346664412500213673599928968619635276234097245309026908888834576648557167102306993937699594096129076137981654312466590586910643504053515931773077693279233288486439912005113290487599727147857020385250342765535809415006859333373436730013165481731738926880786993359300482320240236619676959972309612705149625399156724537929127009662670750042619872965301051286423382429846882708898425422295036993419817265259163837416467370284632354262738646507093536806250693930132107732550471883733689812755048255369060146198443867035734600425205190279693368792921103419105123489131313412967001210822958115496407851856746346976884615134639085047497590357999164890525247327095284697870752476486670854401660174542878242813137323885287296375114977621086927193205854519787667857730871328721598730120745714533662644601039736067001395261386378279569246045684956331294406781584972630984806260691168027401593601406629700605376296685393092718850384495871380342642337548564092747336516869489672872041300527470924621485781650523005220793651048703105598256191086347728652078278657440056369480739900357190692526620433083791119278196702667282828930905748340956579431723150408202169413826183578282870293428327481895906165881541098482017551577952476541637147074342920800256184483307177128454519256033399889948554772990030977384856383896298940965796973448267173134165095977303846167025810086205658662849825911173143027217217866237516038651131082289416977024700887308891079175310666832122011046399180638361348810275625568369061483112459360663117496605899598598786784857246662896282983808876824371526253823516215712806843445509315236290550999527712801972579480778438106474328490696359622806843138653787529093656394966923444106338144540238671139744364467888155895039302929574183314321561277576084025733076672698879321390995613395060324079545660665106199524492314296611371891846225516424803895417651387979997449102767530068601613227839885403327836484724540683339620797089475343655060098980316389332615218594374888622117106667336625155694260854586397434250237735498268802519649812529032432598689890444646113419897101701260985784355341978468102889965571542772232819320559696770339250082863285567660498776172895453489048768923326296344096143708903220583862603487758457726413837736053984094708982614859064767819469134771407626380105813955249234843759487801656005639328280628642201002039086089102106093281286051464836051383135425977027501550111439238853409961552278730841674991387662529196596279628907727038396013153102949904911689143484142928239333068387635579441310603596098658434262509599930494357821060541799559653126476989444900755823766700960445816462086108680797604322569569004125186972534036432597916461304869483978232398140263892060102278581591593865777365876363128137514209385133395450805460474863712530992371641622719732936289993240362343532254750231097286488013218831568930878039104410474456700460604979731190588305895340775307058860866416462940625636858522199977816769030304477895299915957308786015360649389549572528097964880634523013051000650651287929412493493134271988680314563344289717876693767022546942742202549682700758594105696866107013917657131648965447970108224552773558441231838884666405420532162087788714517479402111623438985035973185563885326889475241988700661238675122332203913895044210308082133967761974298662436299127498742258119938685474291080390234657246480828350101422516610156047880403621642313125299439043247915776931047748143666706646685367173726497682698303386927125991624972583229147441190831565277414204198362636990550160319401102933156746638257879290974551884717361467105311336811152914107702889076668388711335732377131603060964508501165168137030025290950151185330007517939832540439464392421666039548623357872355631131364561521761587853561272549498059061922844246229933002611088950665558302358106343231714718915019032340154202919548268824047768560700106649739182225648752163316986061234923960544749279338925569482273486044834626550274280787339332298272980410714124246530796255471533779925386402378117409862321615653740864604145512127918354772323578204011511422774576702824887648272887370336026943864145739431957640542406055568385402417628199644465286815264496869773260539490337858238633831543896742153305430657731256765490819249003078933322226073025136252072231003827000539918353817179988119394705983121490940715136123919123147284563830245394239021957541808525852923582856694166470222407448428656975280487164681567855398608170991888797968301585238690778371809410440448554089426369113892809709828824275663314834821137035541637689080476639799629343056455733455896288811667224644433276077592133132019048796942942723994381233505742193708072024771071262754183877896703503263745835742509771796151961625352838257581248693974289442405123245211820779317768608194695697054588597225528335739133631091105687724074687238935734461620936785414952553993947956706170196466983304834425967254940505383496237027892938908504486842020713450563465735656934959436862607612297002191089692015192820519318002618988887743846814484694718742891631845286629791226691400953416321663855656555845851750251199529752588234726031453213723676170084275501300942202739455890801235269163451417143437680459197720469676836398688578888958701125028532631518244975253365444935995471276374989440463213383944204672023994690145765465892723704203506306423516407053548639680439338068125657526214327828411654354088163471662919300726686847024673286181004210905329295862247586176799938869676338660189200470430849194720837708732132414818332980135965669045719606597305879465868504193938677886644667679963030284302825284409923813076503013585288527760893624952269399329929236002963820560834849992323703737146226883368892492373311055719497682648373061785476998871962545236340658424865711325699962681176870178056405737938886034273363798688924410075701527331637832210972178184038573033502079069678757353595682295663546895286926914400866777488908615870157169056117150088645047354770059673715419125880518759878168528521645715537721500282618832064570335139096470142625652654024870837898240560861731330903093384516136600592012737158584838823677275117399119789439190113269144833677466186751761394342837170507832958141267576820901580693492268703834361050745568229500208530645912661567494950479615806588319353084558519452270057480143243264739457434445769566712567165430505840545240478412296353772883602936676374120847893801271664823549523560008985785459657149707291758221286077759266912212584446348862438165601869711762865941931756009357160976615251843414044855190292283196787703900892475610699816265921591660151134298907267409210425682811807054159950706484372706743557619248423946859757293398446047609559944127940326000941474916699209415960666601216326952229210509546962877449269732032686329250225800043160700532999731696872033204170297818449856613696458970703412760834113508267495365891595144788164611823385756395633492514402624805963895745082258894042945132100235694434594430192203697478001256850437103970538938051096337406818478741525770740540582900612016803301120270749434406158278637920295073758141220786018754448094819532001074154239703934651068644443542033409784056681446797607269593724288108488624034907007123203239574431069329934604931936728944280966261194308931812401933403899847905585222828428972154914637563040682075003956433795885957613060001988789826631944479394871913953938355919326047850663772563624117337472015608566231346854102725137129000781561612890674978600179705745400298718755818439387813651594835145276021659233641709474507380822377175652846623911932759910640897615976802208551083673964393827709109670672982996199429227704686939176614401189381007587227797422471486729727126144674404805512764336158256326376896833697079122122137380583589466910581273745064603532038160135092844341537282877972746157605090493676212088055897499286839563467864908696450111207498915445969438945292765317408461983172403047523939775810629690213888821716485963542295544626383953618850748096336207508508914544399724735795611465097971432717186442974326244490720962679861454652241776797930090241454372082069956022380044704235429011158085119558816851272414065039477617594566387770235766686668387951992208075618841639064135460258595310840389933934589074651250797414641266280389942935903708839355825985875954424931098799532467010115342870645764514829416147264596404435008143446975479132236749060470775207256933406252765820808448114510550329495814320266819120523077651692867062018480584631222523784924200140082327269212558751665347480873333507487764443082420406284216892810244658528086073633821976982714879811440340897502877313865138617942173493096325983169886464087187485093858475346506636689426813503835441444698065534436965250327045742158899844702980553053557615370366910644215397296121519523821905773142432439066740388427132412648173010632509674973631086612108669467413005107710280314024755510404001594825492430480046664451907685821974369975997227876868744487198348225907809928885826855945723288336936104279287901525495710406421190798146739920979193420585771009423982392732078982717957906792943346126798113597303956638872073435344509538035454322203229484955603919693426526090045821504102987347070560778921402158105060498608362565448930750596233152134720164000601208725541921768435182040124199584251493193865405191859189937558408647839063324262640226082494636110026357864937046606579421789127263163736962382120647612724061973995491978613402648805105903802682859473408103398420103752986672340668896191301767295742493424497785004059678754906307822088439176024166172979762915821664724089285943028469931822157946338631219683043138282022382503066034129865807828351216444625495223581306491140605296551774585691937783651249085252198861361608060608651432842792466398970606885116167989813232043541239211407140790324471248626013135900646463512636812601938064434101234235280537202567702370096722515481690740457731565511971944304579759845402446099730465586195886860995070729476228416098679191637912336075932788260506336700201501305948275812451842859735486938315461537658560608205746951741664813156238743809546879680258638755250974229187318194320316149667405345960129769206550885168446650205084550747968830072165973497610078637941093128086375655225448662294059667776091091690567472598315494936808119295893732693905528675144260143144946693094110277626962943474469760676484658330145029950216560490677706679538130861309058911664358445584998271387433491093925622738116812421914517418897386671211099265269303401448273730700316973420858012098883816835920187577694605569685944332178051734032527030619825974054283104224112657711992477858185897492383078912328076977058835265491031116833753105186216837160812744816313215117029247163339684398394187881498735303445728676702812420513657861434483058465307510727133808618168642920075045087003208431734482982124341485832038395923361805669747198797070365756210310258822164764232868212186259527798124848206716282382135477395837715693180663584196129125097991470317721350662335745917304693704552665989250513660486177493429294479358824107444209872917862972967022898871943246257414484603355595242363477353674296671757318373768951211168420561263245600530935462001215751855349094981694101206949371626135076113549293777396413679057542177393983509770102629182746210638190598258719747930586461628862521027220301253893379261385816274949423861276378456047460797553538947251446964215234963484523385712763419994393975273336371860481279746750875586177302912512739911802957729363799315547080955864814089011945255081786928252567156117026420038193888998852911735503614450344118683881151443126189833076531973227865696769500468549373481681547369756180451530313869557644599293764266281617509216329285017117338444167993132850537381989749484966631373215203215737025595870458877481233895823175801136114846532346149974723623470488150770607543754720769365665497381647409857257520886891707175131458182938490833365554111278900176233207390571297360522949347858638484396699535955121026462773878291855256708967255450627355532664549168491241678823343379842810005540146527606074425301625403453527325913580243848782862994859626985970800907290258188681939991031283746965185919209921676407353820611084802604277212964980881729142667716241916249229285415557157895856339401362486875098044174531529920670923496236015987235286021176680989737719727613602028086956185730771212899583814429323958174541648849446456966196957609279625470004720726039057804685180161947518945297646181756278019444433579409783501174907547449769238541081228815761016673758174331909543768511311375213244127301489980622808377272182315251797099083178411080241913579944738353908704316603548166523158228962869006241679897891614320940465636145121859190009366102127672371208727317150835261677306280932260238374799570791550069829333625895915272027089174419051960551415849108063001681082478388257020147898691379323689703832456916116630980041713417539290819295584627542036200864553985042343510611195324739607728194891168353948976143859636235813906370909764291319124338925399178127554654153694171675390541069703388879987800348708203403355171206887108002768726511882446942009192833628716293477033448080032885698172260431088752433646343468327706986647278117320989402295502998260054418292432072663144292489185951608912469187251819705911736941072151607342606234821250085923304950495537492219313272407789120578950687382540668422951409183091298306718885054536387524431124133041349953340578618661467727810364231449167212770472297742391548529064733538938778862600112402797517476973409331988101141626739592859300995607676524944169088198345357472810776168359600372119572900624573880030507041750503798347299337365555531222390911022442673221986279236884955742017859258615455963166313869659103571959226135216219045387273428229882207688856841461983237208881459254660782531993639635303973957271676916333451085963484470905421583654561368555314774752977313840894381605887422144873285167994698754795697047603955936857876614979376046637703587894950771578168131805508548347345163628095048471537620545723549650523100641810577017751091087271797120991918146244043990372483259581173602492079364808700393183506432815740758835342900879160849999877037497784259229019373293348194323043541699867244561929784304407420200794471002283147438877813369438628931176180020984385727475113448677874999925659082509536490247722588789560332895457474627783692683554994785834004086870538244345737649465914371445042162596334681730699674577233102106168141605857090265127474061772015901087646385249273000569119838420253449697351721315150021658297520556335442401621471900880460498207524103298341286496208781216613140209594680838435627100142004945130794529328281469720478400518392873638609319867101412845262435657201024574642653633690112592828198841205177840986915964552584990535030495127883902208916483863750642380734221197364424153886986324246671319568552469678211957470866072455209532605112785808179357603787155830055004598096737777691727709077329203173161596234168425256160891525838266696552775579002540624636375202251657286731411231286529905100497573424430811818499024850703198082706760661252187191216780470342103092841524596877244081226440255557883819038241609603226277356486549869516743320418195385653448449464344320739774323400499053180671620302294365075380624204081292369986756315694068847600430607948040587234288959750710920856236048596891903864557864693785783812644064228449833864007772136679245543539607119684178651952720902331095758450710353580595947433759784959748737793908197315466307373430403145396228764781516919473780822935567822842169878205281301606211918539836313406555484149471302494973997338673646795866253300786388085213636686972283314590150352430563356882983370186770715881596101881552641100132826631278932628668089268999302636782986805480797255064668422493183347434423268010138646007506250013480993371604032213970218113005268315108076928658859238047068561742204131992974580299097764704771146866379968066078639261058617307335652032248057682974486068148595701193098924783981642721175479328042599555691806534808523640153998304546345820999459936384932298381004929919875256988058235349066776843316969025507635493136697762968812674049053067908422682628177584658615528051865867741611152258371653480150209673307467481492542183570510598992007744256738548811989304809096923112346140668896822927916729323452547461324545345916516833640880504713021578989663367552644931152170827318159589665366935056401093025366902661463509034193114274319682444607430910607069002891629709323657297723571834909701638242769779533565539388509676294838408433375919575362386868278195105513123183988894672942101186317001549752277344895050785842617735417776496159935859479756491220882744607492485498717042496575924885692397817635820472426712016382442231191261294761962579389958549977771996492738714075362837480805163776618295626438210542652367453124990133736838132014233275691712790517488316805706456793563547522770530324893415678007252027827137239947409209708147212937514096800590967908639265906121656319605631806006981456200387607830442396165083404814138434160450682336436348812458586871166283734699847131512953990286418426519040410879413523687498709901013551430025129635978326028377579090311573502808394724534743140892906204879481333043784637228257503507401284005920989759106256334369767941262453595615872193107035619424506788383024576611199151207690003124518624080899087587667059964034374698911171353311993808514180554309120287535932791723447865987548369460713979538479038578873077094337971110377203423079317194810755250309068546423304201781045547889880621987879064294141485517577521068280744064861058522835166711902754037406108259446615400063071043487731679442676413734453120090578805874170587384755223127709525382556179741797821706477971940900152790390057597077591702914836663869934010693207237844819520144899125078250311942631419571902134534029828685594484526641716137805263466964239610772709608974217179543578686591627003840794775287381215085031953919921876298772080804560924074863711365030600290275318026327034858479030279429390687401796090983735761349855107691284999475564765292434565250414189457460144276085090047251738875347460781176908395902942017535729450728488024568500660996086812268483498788144594504800175150825926063787802391538306996783743694568039313264849226243488151301609993840028101515284742037399196952614457107708713523050290536100182425893254253776745038588961300442921128809093741311718615650925951317988146969886841956802041714026492388279021588240869687275266341111775193601830625604211205588413664917625448130694067281159788194309530020849986681402817609758836204631928634406173973511564964823019897220079486110262819765480489955482234019838484053500454806890557874155797120536374655935439691675416022081662186808377106662786654855250345267502056054334241405367461888092791440422465706363963162475944251272249559768647935321442156411836125704260829211258233970631854600988042498976693519065451901808247579829382066607257472944319076384174941592495351493704304364235677698077073242992525919205820002680923075144389074543340392018349068780334800077063213529280550031813448657150642419736648205232264062795750133884466376378170351350991570077004370555413287951477415535413826667174201375408486917623053176283877623605516840030235052887017512727054075284160263839372381249226956069772955457036023522134466283373265567421430489198036448640414687725633116518967919204181176238606574330753700775309779176227836160074512906049724871195294379114460261570499255703565878439578124875067493433638881793929991565001963657225718013870710659164687514534327732465027913037324526643122217723488277949683608467984196081231882700530823116033819676477884061219146347526703724159124750489144802469942299588012120275189633780676757257524222272224050208585815922259062028525750464186331461952395438577149012578912676811546401699638607512415464794501891888817094333408220150155121568122413451725970435325342616982689471281143725598088659847603791664575997327794590891178530018862125319557508934995132371663519326834655309791286732372568501036039152982472435928822533376809967732477063057056440567555129545852052904496268664204398853500776938648103397660094231043810603590067758876396162282084164374498082739459630409104224315291292171257010759488670679773546753476425679987776984639394470300285403507331206784818637401867850438594332944715987021750926608796549567545261134826998626777404575683505367805001966193462520047036853119912240749507274670386458462334732021458746279514163979292550156485602255901555055022671455928039995649186428079327824421512717907733190680176655072342084425473747440955678469653000273898915080152507324203289072367359386236514663457310608092781823281631686401908882702804537702409548736780383777064760169652695232462939554522100755580563047839558801054054500761505926788152837869072529380066840412601569515052985061521801704839967692345726877205646877643407308636218198372300856828400300360621133230364956293513918117253041687864901311570236223810252759515854213331603463314619442671956716545135274809821474571115794377679047543245388739510958528076940762531166867794860848242828458446804586753057518503206985226460515666749126040952306782049594660577782623586943437624656399812358247345573293234172777069111791418826748978956126951991141002177052212858016845833287114342430009613894876340619491831776375801486832535070379085957962884804853633254062406134344769913947951560034783674707792013302465866519584786325901590760857900096661094282569316489775919691934359385032867300529031657350630744263308151978892877712319048523706776751275638568450488971770136247171477714798292750876404669322521099361479358837714391537910786339449590257809470489565073794581156479815372207278510533792068028668049990193779395402587952800405549574533431496713424874244315777145115022161516856265855669016766303328221107788350877959820722065531711437248747750915298084592150074369354435061120862745805740733999173609298080897895294214556830844146896229628536363945762109563382360093242486162307967148865855992365579301948934480239933007432516902423083328403692004185774766493641594032229391494796527753785042926549415729281904759951678718670704011765485438714623227062084958048176434352851397983634575455055342575530344813837389074854838003260320737224241571009601632762474361283247793783713333864072917168987560287057602862425361641490074111650538295599907696857439804147065085371162941796964402705651109560157593730588808839353947374919019336940512062884224848733303521734831502983937148652208437912528855450439054189123130760475348221574077670960276420404820853310445765760017276368211199362672072683725093550731551615806563658904291239969204429565075746282624288867146446051324528249469728203804774951826726113379076624525814667615666718212910765371062774290255765476418235809853380111021859067518134921763103111653136819824735261045501451336838219843715814264732083434241773439261566673499873483253179985402542419871796369075404117386691094298909193592289162445078930284464128855352379530175644386797323047680567949416623871299917403717013369267490607904713332594857176886396598205857995261344246651337030256646015593872530113737321593093304535068756113532467757772310996830231536583270866044892739855075329923459716953914170791182718207599327893561237923941760166959341009897009705475170125229863646520761506666292122091508927918944413857195022374106889098402215606540047354737974008376162213844369691992858868717003677046168820160597352047739301740013707212279255173724632730844565563170509250550134220846496065532713777410778362662872098388080468978339675929919729073133987525821166380045665979751472780316282221210404963193669643056396924280525244001213058902839639399438947273793665200954267385403779081727556025145605334328900064601769137126242089405344880177372859874318428295579955176178744344660853005210598409121779635058715174924244908556810778405454023699477102236538672626395524785855317304400754597532686344179278434298288347411457021390380626501206621607170784268176757518682956114009532181961092746301628451939264328159913274457990978081062385583986737243923781304443205522277608992292979703959224173651073030703372266813423698422193366278474433051879706975903700602046258821661027794070354264993461227013821196900464726491188688387414249595441416912309213099653039125642597537766802743364912066210272354816626630006185976728605563952267215202235818567701607556990107657144412808269546853048709346939012193648149465172837792881949883335957647695642516306755399716941452372017477321191462637623734982552569590053005321706821890314345242074262824087973461086766223149549042165274015512758280407577983803325236556943953992419236960526882122021104444173348388685595938055556747358883860293932994784896289134072077027530638207812443965083343420844378134261904110906378243254437437240021437971216418939509251837551644486429651073600909802571117743389060788421479232546827733177680508359176475897546761840361344521689660643462436844605186111879688392143377711510291076180696351411013241936040813627758134461025430926259508598620103229631217142179008846368647766504538639890351678579350053700346774659358106599059325286226752744142145940676218496864211740996388543957042440346359236392145853507299746347972183407645231963267746832856080057607055783307731159567597885871708419613289727417735304806846080286443727483218076079253990455467275087631063965826627473511125408908521155324247032808223075831681149600536211406296314963137220764971961727038127858430989481755394607324099477647513807045193212652792152102434627662136541676110212908314773934884436289822617329196280245443182424729931936649398877886098396007749148940080701948290676453962073197293784214762432939266823533817785049967229921033264420035705653199341264694467813958934546726290430922195322059592363996067577037084477938444017981851546342297169475646711978625385760255464121755535955009038854722106792541063805766863443594601748802426184463629412794472832229761295934095311132051365617604426685385684982414071104979958999333915027782766734192316009069832758286259062065980720568975717479927620430952506441032919134733825636116761945737187618858914729881286634192204254715527115551923018658922804380096705346634433423548122620298343637649154936565895120612530413877329670681296723136124787054449097073406130946766109682056672155908053868726729861012624141314971984282122707181530664615854040270552978247438086140526766033813971933897603772344175726812222345199802071440100587923732823845459702822561106913952983960946547187205896924344244737460327390564862939421217951613501839144282924692868785576787067303500344622813255705999289851788579615428001925741672624905384961684276555750440626502732220454344118020425735014176390165068666921352535152143909180075279252200681217473589814171435773263605839896999306274210878261649751538948561102921018051794812519340922423331359499777781633436831125788487511140144676823265781826260156675834892633576226135063399180045362589591398681425482434641481093359928132976449277729077782973587094355992519610109919319657277221133681148576989995356174358438597744893080507279754327376789419510351066906910373873237410394658324162916930313564961665256055161344770493115857862606342429296689877834220483303204621951776864246123627123885618650697411687513716917788214767648153615765933999476039939920167501914241838205374403776827609791371503686734957246932669780570516300388690467987065584353288994259778380501592439846265163194356351849565130228083345495660682280266125506259770811235881312517764532852216764694316419048006927642555414861244704531015832040307282616767606549501961402321331304837696151280780060101406906751611851578842463976693716912882367061697726020040837375875599966362152587449444769034245886304108717877421286124364208723161402069852238488509060131888708755788739443116133178571747414953327612329689128539182904231730127376298974711464817840560724912636543161280940565716714482380994888935249467514924934572783992212827349606830487293666595492783693285951108255733229619812696256201344534473938252726814489869613819190069219338286434845167289213647150475047053759757806516118308568032270032466844340477714919509082756552242517181410653822838250904796338672215837285612909074049739498968863363291919591101510557360930911761404778825804344128540872007480877744312280385594378392639328986578187230356516038190558208868043148187959239759436196609601672753068461365889484390505584517634198663337990075441429471689755758017966635004199206307472715886880887439434233790164040524576610402211460015449842414649571797000298649262840161871067988024191035270929841813163995179596917870180414532618904913920422029518712947217894284162913260888384767520373186450614214988968295959120745635195000134197126670161866426182719489794456502339906977635348974519321056934333530496838402468528048245985130081330876632825992574100743844072282467803994616633924373226479635049312144280056563770351568190608953471448153737802624989830439972815608445848078437329585726366667162443044512022543714229788158378979335306636406600058093941043208142352075773999295398605454479502478429702562907901039676824541875699944441389428611699974714023142938488800014344640623113593221987021271882738159902955545903142171873833078532399538831868216156754237751645312625456260112125224801732329099784413425465436749055519491459384064520544135930791293367776839326100507831152348021223458983315763182602018767056609352210056812909224934160324073772430825676692279864115433957074606956954955886389810280158116825506014419142317064119433382795947908742944404517169949043751021246863808011916082604160705482989120534513227204847515741045481931406899275431102022150490376102005608822283489284409275040380450902526330852654960025778066488390558649723631093471558070645687626114336816098699548444387551395135378562989504460155831179962699778978560090739247324412935617939584759417057659179487005791743768843141148642107892919872700911287239913123339590144493609338157512520168537847902946064392899810845245615199064303158768577840153333247101650651194641227333193877733885838082922560923016633925332560062091875605262484847140616438187445993923067893287113045280148085563648404802114507177355325365239845351059938014765209475575187234510745751486005353506836017956322114450790317551391100301942746211061988974207870956342757896305414553723633531036434430974992398968558619320474935124768746255269944056950849635444454343001959073174396334287977465931735989369242616278674802980958224203640242168032816873036491784265640563255397251078794660546986598447546389636708276995748852527796725898109225351096594101897414436450594441057783902605864189362310346628115078574520597412775109951792164546925360894366974128010214661685215914974760210555397291793403979737881202518328300658287864462975826160325757736913493673512507547707078762430866440897921536516006062909492683619811023163755326589214714621033983310052465228291994774440201548091142471977498175793842755613832318958832677107163948836400179491526026970168228498546571610151138819644985613048053599437110752364873562131172081643666596434211623942570920799619276349736305298841154811446610793745824102565851145554392889220093923184722145302049488932459380504655310427091003854808626743969038198375245051409212324720752534932563350609787884311144461148840465078598995006957357498410100723008855163869688089659814415114184872306215541448030370717612512553115145567577715933838243380342553971890792705947742392245285019366770594783010561965503833012543420927221841411254428928439021894289298952781637281727126907556678480281762704100860065567959271178963875202264721633275477922398878298296728492333702113383644802283597864441211160809028833068158610382612381310170041734225416925873183310152303749565247546257420181521425546658450470627739196961360781700441269881305036888028332589046716157700279741579185829180001089403309198977885366415791112886097613064443222310985467068859992774161515606790970281873739540240927347252118941475954262995405368029031027190633258732224926496987886455614820713697507737093538862323268432682427193531321564941778804299115368968574531854714766398172633908454423310961018480618489034561801257631993632091752055177014139906881703663937167659331147545125870355348285005572842734109721912790988669920924902778685381329112018646712859826918102303046674569262433842197504253620947079724190288911224195479678111469530512783230107345233261096606831867141586138523850281918218931146936627608083805073611235515518901633753897995954011667891183217415155676364489772505616836193557072550166388555131796948195336376598055426257468327160162242753515534743620258750781957624662290321374656405792349379967289572070515288436977728962108991615031921529803226927347195421027669929780177229459732289516833988491993228526407709445308438406032321705731658242421015339731877266564334195072849592000343556646663667074621832858186053549805033231253359905985224761293059083300756836079379806471523482602418707868359585085050628603011510648441604782785373154014550762304475872502383472443690182578367375278166875796650760038888014166339537586551438337289844100707359297277023378327861732158532690188548734320784862759227509979999443754377914349261571472925554156646429785266269612606340612123335906745829940926268224973362909364809938580444854482099532256276190812241081527763711937669749449137213631412536412898890402246715904531589606438514648337959849773843253783348574937383892362212464746892015724251937040196170088636585872591200349614574702571080694497208619970822170108106807125409622313528708358974918788471303113138224018624714242690365991006290708257404314696212364032965408934321136109872740851625456803477923100713561917088167185921266568243837467019025642855921860202239375962936191216110255483390904934246364738254088678074601575755329058671226868374075899226986054011832641370433780209434952447963032501787498398178853099414582904254410144003435877062204183115577117008929137677325260651654323854078598199569213476634703993303556628383899375444321931475347356435179435102383192154289633756087356106413761664841632029560942371469718168717555846593826423438594484264365558028025308526329224046274145396397430415596114857495407945882370752391871169277448094375038465197984542289644481817908362251319447846630775759642064267585289983697070019803719112953997157159772437982430391873395914188616262721572074135334884740646930554407285804945686907142177243759747023620323588914640170116629709712012778038227145326540687844328338423450359663924927973912149208498081694853628104291225476408166866890021558274182638858315783560266886450418820588899440613493497427311639271647131238943453104366536742814242339600936602945129604801953761698596391113265122090081463407874209564550418626209842872775648305778594056068514336949190257923291690313879272079908063692130777026859876274924833233798572424293801966483649586832207845457340272507364462023487804100099627996201022534378488370534230851081617820315342218307590380420180461874589011168303749594404992578122961824606059241931527457473874148734351137278165015213361528326458010421735731834737880356046423802917358255929781966321584015728720483359293294248135772173990765265247205021254718959184971736456498028855304648084072021451958748370827866241886266477220465933097814317060496850267059993349023413339492995926175792065651131296596331272854808068253697057403159462218887677186473895069011314399691226438982271278633504725168915451886925793676197728587670851249699200427504661060538803564710368142952412766350576058267976015397881815878398209706546508944362085781335499583171199121159419572078382761274924595642389129837295038153522338401533384277404074766922809992670640717734114776708919487132214392258248300665167296634208033987441352348890291057778858252087774401231521793523443090689585734890663558998795857123761866392730857589338169802704057356082254832298546508703402838330811284649279487023403106208799961785029583651000340071011925185353504477673135980989916626733978877917881405355338520491429713986090894541832045910886592728150804071458297500954555995833457539293672817324716284103258019191319287911120634756567991135170290022596192761234922848804815681327290846945023174942368664526577228320371691891205666087832035761217583956722249619899274705039069259045739936102179779894665234739756951834836780485662974504954247616055832964228370950812662360272594027512565275270486218399979125173357537978960758613801305603324409251107917873973173601574954146277108588290680075600087718667177969491142428685632481594503655003890584080282140987634613696149628202897337500214299105448262151795242185742967912306607415377755983851738765636275975271052923406651544493477751789011349330689262288351147811667753608798912249767062818067818872824257538446511459606570712328006086173720744053320480758723175897816838827073035874854898507444023743933964046037291303037097192519916810699297340378905793496848669314932207274777519029638101890954123525719583454065118663664554175949614533260038443879620416277666950707370659901294103504720738147122817115288335847184631141198146570938801984343491573518727671356770163969802767807704999686623826053332610532881272158372941092603150300253355025867856899949906836227978393107669052871993612417199841841316101284513889304845036900491323769301831112414341168094777412092958665861175377139854264827279879680249897819532226320263196452164367891238938621043171226868171011321994872459317959080399754094942336851292928761705129588258491193221431376458768447257570770258481631929562904927616629108189075922476434438990468912828169794550583950777039457390497330834154758525061412156003664380587610873184263624793278758406731607137662451881195032253238692849881611352523078704659891760268884404625198987723679122408271092308966668360115498698555089866126240536207159180292906288491392792149494919862762535333977105398217016828305768700406713935518409184411086020546314520000022244255697392337458754493144894340791691430211166246821785883940876544993650183331869535806870803138576646953046784660375313144533947007071056499013812047099466079624513872350096102580743085296084071069011970458438387845255988684678542897627695831958580508210040301503494172921752207867360034030467548938958035371373795099297036444419870731518005365737193678203587672252192801249221465360582492182871972301855079591480514370268011669380445681718612531169041943499360362972687145052314691504091267898357489805071935848073836425337515537263658974228810752089660779571537184741504196847923926860780556553824750174093080186336697822520887409565542598624810102741731133501772804167400971216496125086030942813281272539931715776317887831647707885153081246613046481580691416832868660058843582073478545974551381782301126078587589027567081097506468608772923106327421805533595721604493973312567378351004353565860007764158755064339335874585244395714229625354801465706581460383486262740979579217806859178271081908112159064878360300136819331196196657617897468546994102692070894794013347435438077583077063001912080776382821721813237538029260902327773069887917880086018067606722463939237965725132818492106615764545889980770453228750416457772195110795803210135767671960477213505821319670477256964099662668342770046773689405280607348235192486103712755003610402050367453607848866495315872199261155720084965873995944354929867278492111765198446585573488407535418976126977391413798157140238165070575697619523309260848163460832042993871234123141808888422062768179444381086256124664058230673287785030985668935874365813281529809346183764161600863256683975601172937058524103217191839827954161039962469077403089515338291139367457021842809172313304341047869304465414777971564676019600370773974528561938766787569421870248372103828423325555919589253729846903696877669159667338485466946071855624510582096255540804019365279439466935122939735707486359754657497313017135131879869260937678279629223457975834225799373746167686371331306967984150684650228127852975946503397290563787916147906853694460273325989170906967074861486966266949054652325393287220041508888557662673922124811239615342962310058369541085668855970456247927346892329959595820424570419747360319118619458387048241230584334354481066288822317908159838092636073770148131188698649856812207704927501587166821685725787440629039498878002596552436179275339619281144529393254222091376179666486623910265352162659345506634307068886568664233275322885554359023489449273268254715188821792623162156992374247363881946367038762401730417499410081701781591495355171487389602064524649340916642836630321975400393032703116604401093794110130140692062978081424213365517320445056447971589077425984876596332346738169849004469589199459322549491248467762851301517726006913293887411629043126286183235049982838035495942380226793730447334486432541764465039451430678965873498431546680984337097942408624023228247337155839191519871158754801826619825909010475519802827120381986777334418396832722225462720479170828067042127140895878318834817423802703230959664658416544598025806593095724201435564275341812447702118249610282905316955407080843910176681451054394959538774718889186887149719755711179873722034503896412097820676529898757984651854495765926416534989804038521984602512495559762602738432172427522747345052093993020505077552640310931505523482315757484446458205960754889422546118107478746308874966164679980333173849774550453949100118694894089719006516625581992478935741349481500859199261748540110544168870675515626565677144516300798508369175648706526639506674202100875643331901285945332870102240768059263023361235007393632810287569294943653027083370500449871249416436380415574037143271627908128425430442230737422219809847591140463199090248894049448333357978402818229993815356737452249154382128528482629396640706001135226723174605802929035641012411358390878504743361474667130032637955272880315752238222049295812412546901844881622264460919334670602595310878802830285446282539988302446931161423970005363460118518603574159315211412093729719854243597453818041596237991806540617634026883504341318325245386622244338294254459246653696154537019476922965156097897586408963054239255644017482105357789222351275635611135369544195259433487778685400394629998139007395662086400546279211955831372849944477688595762299946202650394557959958133629821187728912047753158616221027405330062329101148987718786561492908782337749287277844707544577868943299480908018564980057803095242932867381013266966813817659626617879547319524892704010646427551117752228214114967873482177163078993106910705948110466841204698773532203839571172934453374853429285250997104347982937492547523223904583209585131708104016050738018425027332135449564300904722061094027514704452826220689916023609085961414517298109081272352240716256170404585936577169327030087368630214902157688344394272675859214759643956654868938870323326005587893939063164064944021910549409882130499461321322998494134170300004435656533071724400744904649946685508107893265043027526146056945530766934887910849213689383828079406012751063206174159572142627238212963936463030853738288988269715660873514824874584108880328729308978569064612386848216150464506461059483319209352783821531737840478431449090445084365640206977824757304652306485674834086516352670917676901213633269637140344120263906155282963801016598385846016759665539034000927355381271602470499711096358430403644387257163698906564437492515679764323988348318343917089402352330818294133907346901797001446956987715659985405747244189220648714275689236854496575870401699414663033539212805110834017576309963729165389291038061283748659867860510893751226026753638683944462632393269152532301426171354895450210273138979208012675184933964552623686378276724317936591530761700499816877621278127498212818885659598350450792875133757252830371654914456819658053074906526872435454999634181581371346898609295786406738024694387789551994517833462569154827013196311606111011810567086662269780578614837739823629677860717033145888728608348627866998443849421036869096818288419927778802257996692566420123843977215479352773575700030344767811141337700015695966029279427738462858018959079315550622324309823540158546633770091191142217040106455596502202375057517477736416371798483094316632896186255592444208662107390859651138768738335209798277870635793595962970359976640605988914237121943128388778087979216834008777263334286628329054391851323053187502921638176229461794564305834558848316722220481519894072205312911983354514117068314630589370105712990496740843446747186287893344955452744895391960752653869192251054517358252247681851542267716657017156848416573046143521412502573275549379212853190245279931245581911197734984023630085915389204514189550101474181531667062138527317090281930516031766058089780332480270956215143218182580974445549797893913250848287166606084466582496960235249922249535800532141370335385586382176352524128973668882594815261886516779782029628833257812841448581663230603000370391626674811793227966279337202419794891597993165002271315123677410302303317168662507773332641079018621036400661130359300686816798158473536682604198214147290212742511425634159203375043415132153686907533471983924309022718709230980176158239830852893734267289336515630532602946955722084296348785550163650235851916150401879023915471822898967030876264094638544881974977725869987679821670609009343654395462337586312991151269180966297823584763804559936183718234002040434186250983977879939315109946224721771211582949728908960523617319648108875907693410035983037558066059307452896229547835331529876265194008075965699097477373395962046781425636125756723655292403182389784264326994934972223134484197318403148219268598687271014146442520541948605938614351905380583009943068902689751927301159195882555592382443650302747435795021246411445067437098250838034484183030254328672120080852131973827900224465994892387150169416516984606709443211443862193180995404387612986308616869573010033856843301306409362481612127596634049295935160734978401546310877680284381988489149150223345885694199047740759074465519345793995698876558430960952491155106892968224631957384017040170373540420048153402796856929614772711816743688023612273626024651615834167028805983539672675901945352480687758387009519107080277890554864173666328945148593755749248667841548673392208700743411298419139132790942728669320966238449524212237514783696349354027252946188058532318152099933715897147123300477538881084070965182370783587951316039968689057403649194308715725854001206566815834374659735642019656260079088474694626131156579941312980995423685123546492002609113733462137118966272017619183276899734807834410449816879631135366117714345730614048374983855379392824849254682461489879382574935313506119491790695390961336881504373678344467191789773034456397531233818251108756727408197391124220487035090723043416250601161200076737001655405900997469045887732260230959182356331490977384403689620345426297394323262884116875839619027520360882692211942479514461435293600817701836964287677303584641910023741456714212911426705681912469105449572998957222494026464857848369785498730576226612081198952424025782645078833650877933895805489624534958259998037283896280255271496212853037560822638965995373406934964650655420935674555304974444912134233565140142991599142297649807078522147039551866742455747933102233637258092360245246616942654487749122508741240893521044577003362166810193560163173346969198013422841174591663685187003461359279722796749196741927546879074425477242409055364522260879007445265185170509154875387252727744258527747318495395133486138518230126260368512690785446911168319635274725826157666707471890746020031491044345694024345253770968454338997592426714806069259688710442952005959089636756096003150527716119172056342625385985070259311984087592596354542214919263668003966836352631269220245680099237375604648518996126392443931256621882055484611725041938417246479535814490335408001423926167005216487456082898114907600444285298400681344650269171820815977502881357296385878423868992183188952176298768607034355142337002959484382340223817835287493430639510903433245016049208641111447275144611618919710116219811619919206867485721762467727774904883693229207595598148047359279525523929112591694680205673679370317396097195927606209728492623615418358573573719547527545216721864844468440954940008036221705405947533574140482507698564117894464447542280308354989302226109751956410806084649363371174532864571416611749382739804795851295710013766243958807463676472763344196440738151668570077916470941450693303696033269114615862194135494707119269464034033335976960608319330160557642660741382680731087339420046190932061757386840555755256050785770583377740430123152610463138126980348271497148580984641637740573953687183668325267567679376520921575060631276943590866122102950534250314217304686583211123369711592043761111549225000674396205025420101557175393490340735701247825200002683492730477216661145960823082582183043024883544522695341608443469372783346622465326263711684379217752426571836534998343192668601442556744092896090971933212734244093163734166378873890610637500070162787119951728340700252665366635894800045558053360834107410479976004539457530241298082983341002128644717447574892741205320238980758698890241417952245284257617359741208101475981780062659930660612823332653638666584275668081132667732713339979952939371722681058796100999456252837993203397793624166937541554694992872309943173814889520667237802856171479578323204778899413770173284227269807708721483392397803569387243863800041871063696331912307147010755656530858865386292980519018471312201911099123686302858930373397865980788926090186289870546048200471511512605963415934885082610252618510972789422385744034194934162348987503418909027637223584210674023096289584011064654877783977089528344822439935882059008199649208378289697956688577509256677995022123621627158483981888832647950129625141245198979901195415754784274833017924020051484397902497671920886737379828654609559126380091053051797119295530355345472900148440779447698651734490206267674836123799770274198017408744060579054746355915066277120636495541953499933177779190639307542530913545109881844061294957163912089489774070803722583864184647957033828064574097287737022828465166489506165017481317663470411408916828381269975583974213922359087557838271146276777993975304312269900407026414441343024115449615275897239526207929873004507426564336164169556232612630385955948739556574130340853952809950845727227169815080880815415877115859541472217426396873807802903093456829218163222010937016585657392352549892437001101579148190545031410496480796045170406858554353163524981536647192153360669055574883376682475597786965238875890200793829479734673655949785049120692511451185006658782041215936622088240344307391439350033004308924153985501237727621389100794375582169097571190664850380745708933106923150825737326287255325811157301046329887692299401383288473804340198482475758040230346373899876131857367913631966094295907020488384071448031479844691213536751678287706987012700618134489358351339424626633256865451540220157644969043871651201200574406742723943021512188051603362259358102103679034519677786747398207782209144145114836153164795253387348244450444779937238817483814315483680588413391618370934751560393635498155851641601428650043392049825338279259555025131527223849793468394408311738684345486349292459755151431588000196962353132225037528451237493614758971255005266634554461360705983099380436170033795875079356994695135647593645851548909174325195377280500342750193048171413047361433660685599597542489250114120099296982661909171285968853072576557198597306745089648776274746461161038319742942343456188745198411075188448516633262618385349437235496948399312565604229590410797726658206194288166885939375591911749152874284057250527714694073951375986320975173337023084357642576131975223851492469301391196179348363179497572294361497685181285638312293645487850540347645932825067166095565459325371050481686957925298568252295135811955741233184402634705233971571664781798206101819759502476933443794675576081029667838195139898222808432628795530546574252925739653356898755375407126442948768488524720436218977968759269270349413254766357823063924322601234586649032390574155254676989763929248819188111558719090890179085267909373982935578080622941095665369382005178215598674758243512224545669961219841223480426919721411152239042040680919485207264730565101438775538968019101329861101048741047071791966706311037737565000673286572229168954405581035650265676616512764443319031626662184974169487575935305730991750978054757955384881179565354268382980477839821366918078480379803120790187557589517798309526651958167760070537982240548556250203093863375946609055279952571441273504887735731879683452048498771354482034418414310578502351193756197515048698614381356733771246488180486667805410523289409607650568235717731305754998878270525521464292156088284981451267646180674139359693856726352385991616733524059687664660525181697183915097387129355438541410579083032759326293580009473235131229864204864329828563511023181020470623239244376705259779786117542647883486011936144124233017985478912349353887265830909591889305253186894060169326743605826713031010070700298914649842353783954953391594690379697298203840188644493942526483223677072125279062553786205569026355262485608157588104532887936392093755709672259719327060850823777619294146955077220609130195189249110874793891868616926598582074454575907346028876228067235142707263034486710283114460854198828451922759615654634482040159374644335172169111607944441408267877034360143732521800364755252299006659696490561131563015978394174085123359346192269756225003621175553903624676088590619101472458606127133962933517563945277453374103922954848324586018950131717923903984464904462679385781179518722402984446173179489013693978104456409409201791778244830794779668159156617827129770291780260926468690297940022091202467312671750096866523031094808163695786874468395295861707910179460386000420550973407546723729354013793587247405820464744652633905108891171296538935747372577162768644306110975915099153411578021841326759549420062403108333438187931432253108280498018968071406659389728788407646064081034957567470186279050380091326196497437887023142069546600533045721947113512261771605416148677722616540813699026510467873046320588702421025863887324832570909990027087135900798351513164802499831786329010266581914060784669403538731972627789064228777288270494903108641657453840425343739548522220175675492374585136230522989403884239513890037750746663704893024145247183648198790759019263525067764350773410704988750266454809628652017874663011076212299245705339485383875618784422827387350662342816826556595540910081653750198924930943461120321782425856240679208453440022631537244725561956231590652197978987855772823135474148259364514873266300741411333460232015249772013728480947335303554974596411142479047820910169140889068238281846462292943764988147947045735064997468931031668448242396384788157693209904279442489558379368129198807108318805612843585225581155755458483554832136452677515773755338935385598067385838374051978543851071688757681836773043915714108486918387401693792795175967423621489368451608942768286861091343908829429768280929574588468617457048944630307819007902293282248883622672076032465284265999202086452476644514232138796363998425733445970269288450943341045281629633994318160725904454501687408688285586157892019598207693239595308735828001131393326527901252957722357492028383859718926488461632813411049870226124692551129876529419149965911156201106518530774505957460687817062344295904868075990077927153026513780096661647064548865715599805010992911565274385942510492966113309749619197050672009994058098686833544311815001248717121164138320970731437262134706748523015032843476727411128021282100240378728086900101331588305383383668803258379906365861854814109493202999060110701125518294951474252371887757466416299887082834794899259850011199230166042932492267777832120358362716417216267513744418334241412794642897966536592054625282440168998482185577012212961295653419572012838836636983276781789659406472703957926574932326740224236915501501923511118701065966976952571713401980229795404311005278674235231014811257211323419530098279906350522681309247360279015614277968102847461890321725235603149926086514123261459645419793746534326650672190024524079391156695968219548338060580113977331846041773117751287837928611015664942354441619686466475659540017305868807077075174672892054274296017950161130649326165900527199568057325086540699588138863676887931658217924359771592472552984584086995704477457036850747083875017234278111858508961215123363237434178008561944093328915942217089837499311865455478910336978384633003759196039953611838387966650563355333579293381651592017094400589438974551285403348037066104033265382330523206931790602875077523491405977103203585983472741586742476901725646033483992524031708875106010614912523165911133736673897248469590126225375025032227703461510038343272548974443291226133542416877182614977478903073337126921628683243104511915796125237763181702922582036322832853922185438356995240666048406860420455044752431835435573398602024874458840882223823387714597749624749823524042576614721468494076518098862481787223439834646279269459531539515009614762890722550621511250809998279881863439402709259812760135117686606550465813873796080701754396039768875852566917604126194668961768403289350151890800508990855708942200577409139059369744748808106514828110491803339337893282629909627710098810768588327045091570218999267170069173016861140759556538665778174093924318091819560688766315211521454496849512688062267543121393000018700533243468052591659646147494862387347395098748689856616613306815736196038731139958996152030568983341004450029409747427734046066187584399696490615279141651126773784144241402866651403208148778844712724140932744703383676369124602373373049086791373696427306539803722029338653016093979034637788815335440630217868618052167472592784004747999725990460233738164295734083597323191810419748473732884894420745533440301092853681198769796232016200429291307226744137575699034787851183879779153093738253301948048930032084567173914462388783418330425910349933018448879976985792367242271552867909049475336492934721444958447253897731437606418455898108693500364526501509183952322329957247411581163417885136421160413807236037151093929391410969058740409211550457135625631558398855693636340377871558336020041792080726914874137429717440431905881220517410413697717791404349715799349214199143262120141569012805104364690890449805164755421635106259205217672725528643657404382471263259201485521081477054819908437954364738952810302350629937503517568155580467102527098007222234537465348144952995725765680901615395687644934621804409725417381145853128276414624937240009870334027321939894552531149374179748799060755660395100971163900182545535396453127174282758297380491515090555130920310127566583580798175944452183684760797731912848425096439188914305377170536825478689484087845067445625492132845672299621521616281907566745044025455453384734244998149249023073677191660180830711862789659398975532097544918331525451502964203601032522438258973930544449079560297885524045091671513648293103589113600762736775303272983055745665892639888139730375029086922934064485416195688331451549726412008133371999835192603813356918475627821835952566576272919386710873864854808099308487908502207260333648417035692155949397757396007258658139741800121587954823557412554235470755647303868302046288659607962445922075212920292437184283357530822772454640204818262989223349169914845842864396139861737259404876124506880206367939611495694184735557652329100593112434989150721319242424865999674772866168538598600762320728959624526938320282923352791796562824751861390520751500712707692171148943048901423510918767593214969065930318701308161886215764686628078471097692937962108181642111967158386095424853084925074396344501695995589582397022611608112107563217551263586105777357888622701555132101814614889394465823589028149735499439157436933843727655073752689032444967121918285923292776567119945690468164908846031328170695325316077245130386489314967753510192074876195232469197993336111728826727315362014396848932429019020364687645191088724255691964446999977123348290244547918738834452042731236676487852319945264847809493852170212896778525528246735618722988589573947251250287921024111187814415829604474864843351229964014443855796669147403017576301714094919032138468957240943966628325506560956472646271246670993219955482514094619519299169852277310536078323758252490568184493344472101280550986951234555712273597390100707810311372970775026958806531858846098960126702837669490467516924819735456716389826418535779862219388462979816104676764324351887107755259636103255371242448990994662732826776379554477267714885423477557895044743692831217063209331748759754256866285904670655010619435003414408524901507843517446784881874434803192585075196092661498282984037275246940090731284449669564701174030309085910625658977409358473753517890735061217558636387110827535690309900431436013777975780824769590287563642391959292971972350062490347999196816051775692738208044079533444939650224689261303825294805971096729217636057066313554630108139052069885824314037354191077960690980220352660676444885267146786862877610444159259026401871330928352464956359030467890723503967551198507200476938379977162108715972457293493135392828118146097340679446339437195092509524615884692348417227348087905966196257209116037494427457965779673346651855231486885487991846818583935192165375923369714950325149398432496726517982145895647205838881745231537634329330170705217969007872270756260127949647476114447406254979220557186449267978561351049513642494524134110162900694576253323511539890413834651208021848807982397402349585743180894134169241113751915891128741008395319056502542708400326322898516415481974313399463053031974103309332215502729978438240576608574280301694577573228716607236988952304796163180384935890654435291677357930491295839613812690376017891488806226929908564986505952969764576714175684248731003099922654955039122311301707854227476768113501119170428743102331637139812214173713100193892270579622474546252456565690306191498384926514205486626307526237370610520964883579184596913863048495157988268286369459708348307423572989928715729789979801501773162536951580529975973443888189515351239734523637174697132192451555061845857679141953258067371461555766328585129188529925426746209367591042744756058702924964069069820599309967378727396427583271619719904069501994047326590977658040753490334912207612554857006790553027082144195651525468718364390627253693864366328136002594550592412046814621801058762749052434599238826058366364658336967593846608212673550139304725479970067576374554795841123222163897624927837043887616694427391446924394275644949920119976971872483845444185765438436024017227499575138598124852672968201951298688703372317457360560724766739534601103845822602998487088970631764490919427899286112280178346851026900491320230459483929429766679224770127709028919985661929221652968415284773237843549518493030280934039893040641319074856291217562751342654524663601528995037800110068744043817493790827018478241641229884071607781742934823580199909990274658883666026853685306867101316718850328958602126043974082126619951474450377539144119003550730666615264128802205708563949356388621472814113681449890545232718750596469587304906477337996998408100330173076220315029364993360595635150558548891984301974845963968275380935166069963793819972700326638874325456406563912265695793505313273697594155273163454356992800810718341717527043156631783991988180671288565311103185731239458326213158011962808068647462908286990259513255987193106109070430838239552038583314708845313141269705613612860923562216411825754228248748088358993762596195291836243567220324129765966026627840367287535058372944370403773244639748615603199409483352205509522460354265515898353026839528462868532004651228577028952026402169197064690554867214177623615053384241864721995743381953614805776549935311999008942521123653338545501512375421275787860824190836837207150405412791336757379814801720305708572828673327814525881755713545398156161488574486535336997262302467533987364979457686283223782917301328485925176934340009540280996228714687895806684577929015379005972398497355916196849982629164993768881478018541620073267888243297525337585011379454269937046272470434194027023829483570116671093699985973081612121539579170842346440585565225748421585410270585602779764896001222445406281339541417271599963956888802936598547946527052271843298535513441078799309795463264633259666387386777960716096680926555548465762741057503628124001232098659359092049856905652430345381368406900272320355829036214269939708012441389243550454096285848839446014484925655094254178357488834548682250587382402017099070025654207848624541519433178227074251174516665879440566959390227707824731245128822133301930877284677572591099648410204602371173414160577805646250424584794128307261654137947277934131730585894594895286654376174947529857409137091340466430767285135834028902395462151876820213504330852629529254849650918432907927094969743980558235147191774134617657294143534583113737292035708809103393535270007047709157128247270256563937488193648773681187901924624712902857126330439483354047180037259130795279063196150831104757405458630080677943801261813883329241533558786716758173852700449233805006175668696347954783227665745490493405583898775262487201531368692189302330714244998950248848898076193367631129896011441846762188978609091863151551717395574279313714583777757450919632597761047898884960099713603252411700249599107711669821629511271538280839566672005234263750957696579665745425370875560609146959736377326127004025516390101554687824453064449855441155854999441707530386759781954355743163327514185251068744238672190209220909690377494362679506694653477978167718725621963397901015444407742837546913237809052796429020580745511167975892200699110421122344411509696827395966173196312063736888608385574969533529707014355067255325973022100625120272327964455985287633178921291793448693202268038493327919055447550182306018728052220220588280948377447652728697304296515701421207997863583107676070072438052273139641616766655448238070849519250768601151364599310789074329609347934732151349763892909021138120959434920502380955562729156693350471047361275948225044743133071249384398060032881610424057294331203320304819733979418844363987412922250637433354356146764872711911409914891846421987322399746049095937734044133913654469269275441807762664880949699843727892533083093324918589199702319092837442793564922771136957328744195249201117167220097691266520991122459914405025519585821027152856412712111620181168692163935665370397680857558406368748701252908104678104212522898525737103354985685563713421059042355181467640415484148709970943991131522732336367145641941306271728495690426630898297222123319319914620210231948716747635060991684442716825260514961976112708950049624771369834122782926138719802281335370202044192467898620995333844900833810208337587715982041617774427411743750709215823156153924790837799858849493346411333360349034236982865664244930530246636079609079060250606316168966212161167859390401037725734432278772345774059607902456108369095557500499575926183642479143933824752074608284646979550447386578772885190078461792743698051768113972661994927442715588182163084045736387658295628486095234846399998076953896622947113161732679878074405563492184385729220790563642783187331985692639690850012900765569305914755898800366958672978577426083381143266113524596478041674105543662027272678808373191492387113876637708583474810764767162412784356495711446002219145284592624017195231968727522920461265496049149534144382559007626531230212076921707491689888189313277651051690603440150981368702086807990926437070650332225559991972101211345507698455576665563293529908437516664164425381597310509105156983282059493923137995889526803763133697489597228469231506062302223004402880547554137042476863633804032528031483015931027125037927949309387938656203903673648577699186079737196656582145014764189378338654267931532705409950831478253698307870987652428868227160864248309683681446410630898201377264748759714622020626985031671600617818630756467874057149791122144975648793786283192723088800559890646567344523302878292821970673380311421318208246055844094931882421443693208514011601174900257406548878086616532434694663476313681205544064078424188062140932837017241983660091005768585084352337573436842510420780803888417350733634926004086205756271439702104565599177406298024735059629018271493303670984453048134235032882525525407729777890520556787796238447511026698503282449669780296530835675199072376281320288131814708738992401614476804657836796093086788241088740524121854852835131606519488955478964924859318724121642345865926350828889486793653477212623736299104538627012489762202079066288747445214626373534995949775529773128788513046472666165156163470485783306637603954181963740487246516284207704958363425113001578500356092713990107646395402367018227556439699384393922639610311266232346016515288364952676000209832743581926410082440447200372363328586391429876808647979193851031098154539925800729102935249020526128721162495989115948934668337903143848716293397151003327664507330624275645325969047479732451578586499795799557092605628220448815725692361654231888053624232879498203823552345994544011673856960502178853081574750447343874160089692696864131392022696471428142136733602253340919679930414043322087040186590163410395096066898687545181294782665163291682947454386832489885473060115007790076411755244526776889511726557816510348783217331162703837980320343058416178050334845475219019266080330706858227464419072150678334381653364393353525428700862577780730254287360008825711027638263121939907807115748552364772575126685614411141937714053401646105310055293654286513419150031517010408810401279661713488039207422638151577139942634699600554083391767119008438658823012582615893404510286181178488255956821515325745411077006609287693159134797650274342764718906607507307110962737536874589856681488412251201772610549571031360133925734563325957536317591361212399357159138934433605812496397181927291492372557118911235747201840907512221041523475464978460962487685373950814184986975866968658858150488348518008555369975358969579859965861652500012225994433939272916503328055121359196112629191393644742092169686955056969865941443192432071328357645477538677479312333390415698179668826542783154844946888151969805837487538253287886200491457321752975827141071551433286046520883433886948312998985949361015079169426261283400471267160594029526203300869652217884773384455690008996615188568379608920600763360741670652792449239140887293668658136683741647618047556762930049489766399305015853838126001741202431741623208396763060663976509741526051991691772748042030631961530220374104074702612876739718361135683906023792059682402437407535354965659725555380515384233647342090875991235454450762298115912831889306384666611536002362392869019600988691537846276324706045273362532401275707740859922293357364821419756636253899629145290846298052981503598033357970342449911984091479374558811729690563407181010713470633476861839327502157589122920410943750607293869191466342431470841184662875409661889701701689540535202959451075845047001219381962594213609773520783796755149651240733525543854107851413252073548448814615678992212931229335264070350761964277331860905218383796302712459435168410308290521672167207582972306096969893633972605734613432881893207744907300038992939523897524370927874438191052644185670122674951350533821613085686976315226747847224920334205734130837882278127611943078642279359334279413017041804225189686248965825300783590399223858973767442326442748264277224000638446876649462967193558172592481276228128739031468803359484209996267956347464519631943974245068886872005193856704256132116920069208526403133751257032249770410673942801515279648607545448833229695341507102669819114130995735138979742165189853324468750469257025352230917916077400910701909425600159066226847774956621746884876167739869081065005379213796097752721396623533330053367595850379500486362764371428282609149770765081035791209486026739501638561472905440750064677863324022750082982797579256025895035793257701803713038707252632006692039158082208983563473500395323997113114118728910551010435384073804204327901275983221634513476998629817861000692885504209945959947978948850203558408626520549881691501265224045470863518596526641057436407833030623227948856286831400158613320130530804118913727624605812961157011860493842728530887920708998906301328117422900301647081130394400241244891361198958712791922053789189789168039377585706860885435253170974506452723365710850335038328600541706430893328263955988585932350204300756978473404752482755989584680745552191463046326658939422676333661979404563759791585470207542414931373956668431753827282971811716005986525552265854154533576661913925012202344373353616393702959362444386544037941339318718259906740237493507919399883889826275471039038755321862763175016697953204568388580807268563099081799245161297712462681344448635793842943338458952302887396163392054652642857076257209770348045278590984794001510498982808506104117777998611787151164878176123134042805933124858101237835358004145194880815930079108027980623841527148544620344815199338797829864171873398829493251800019525684435699494604764205709489206778982478985490849096578399891789299443414702504024871645456318125551567592648958325417544683715507888842934365748306397519430720786887986174338407873621227260542436715245451316747042481962781208016991007572640570660323378271444513325731104971812621118169055138334916248138685913442639742114361219605951910640814334354565077973856707651176473635750019196791367374788431810526327465366066419781765382086229410763737816877145356255289017660069041368046465542291991370337429395263977370085543966520210383796263302237927172860241170011546448791689327157927284826887067175523521685007720317036033352572145178264851889373042512293143644381363501315836858463584853264761241367725996053167640634818984381431083618976682492800925325373214844892636989658461201569852678438696866787744830801668955679174099585552459174350456396150129757009992792097590668010293199180811997053534820887542345140025549573321581739425411728017713767336179397746969219132786584109907360744361055081441261355629527834433563555205129932983631813674518357713753203885664824770242840931501468883094686981871497459524286216069185199541046896982396747529448904888709999099553040577540556601897874213108751756496563768781720287159389070341507493223281599466040412608318783956972133765876475904598024707952152855591256677136676446978076524460357115835538417506472727211373320165396366545835039283067785468745779011734484446232122909413022898759196533130151291469984417552141279863715758977966163810341859068225171470940000635085891651018649866405977099199211692855080823926367020260988600480294331841591175544544442434113269019147551808394386630051781629738482150285442593341809024225870624175828352170922953259458122871431538491685850901803011889822745462053952344863539044978458639016107594472962092050487336548025133811183266251959456751611858660578983888710030884134502482971415919472388935230103853317714681723982519840926464518583703722900319641102298965029268526518776445770268723364694059892390891613396437422594438286026547756763101092445993033334050103787105782981898578173499110449266969718132856273953848288729967578890250236070550234599892611734655134394900966027357880596202595606885751941396456692439213877236047501289743558038875715297586608609166447229924151003323960515432723779224964766903887569584057562782738199656766879854132143877175067127506586223826888444874307201232490256076165125741875157848240448678393962585355097490125332158054172739974418502648321297094411654979630679167354598334186211686016487478708409621591202654564201331607762793266187762946099612055764719842634318277736944355360823402776647895243682273256183745420908121164008921724103334897240644573578083485570819755003408893079486424765336047973713486741763294622244327025287323732126439061998035270599702404014717446001241489598818575458183976780300693485948016102699458634869705010109513725797228934986913289235074783859737477887196187378151273688577202514545314995783781670523621988705510553285240767586284062306164059542346583712904810252121494607610095467975786493683256094924378267251026203030683591302486174303083538182923587974161562713497152438131381450772052961228364961928024538045638703587131065913587814531805060840321873645322124806669882417686267232314444879532164031259891615896532178906473428978617704708365341389207879569235214887335264061664209723000203273266330386296890589435312199076464703027823532476595936971843622594295474633273401612008221262773181568321843185289759008405136919562652361707968767267025845582093761996390319094941240044358213421464341060827526373824030253743054351962772287221135124552415219949675927937950220225030352662363444931365201507658559162729406037054197782729025995525388114270118587308577643757121304555818360166811027021479228445085331824173649530128849687461052802565553320928705249231859683486384837331729348398711087563729538973248678318035236843245823030696069811895632152172135510844513386184273472180809695287872197002196032033340706349303823415631239939719043852008020625516602120667962520918397702013019722741787623138039419522932223443473526624036774883062522149943498515374844564095254645857157737176483140904659712649024413202450653060203332682807161670800202335473192517403608447252733088154647919426960740876399992119923884162755372645552924647422753030437579926302530482885698820697219032393014343481151832842725030175640393195518454627227219057411336852055758941680212224354373373156669164736818814476688191805262747244564557975219208861206061085467672295183725761509398546543571512145106373933636409951892135578308571237550853957339881962761355862205153443241781503995190290460658368316151531854819118355322342124021416309545176669884342961340833909986088680282212849941766748259034471849369153766546028510406335808471225254321192338232399430602184261318778451203902222924680591346362846846540161601955814720849597187097105220412986978641141107392641850899979932396222410875298409548660326363919399070715007209738695390847061910342722211723386643280915459123433017796085128455834626858605281047817595651944118517839221289109273123802254746592460455808027340143119796705112153760127585775263012968560853843005009299528376158096225456748639585675639477674635890382922791675832217231352666532851413308441821454033146049753197925480638683224405502578248402043893518276080592855091144193983504674308316321622371028776104148752845617108414599927765480805146165816283928218628851367226800994378879612059496455185720460704308681741910663098605972410455041410667491798761515637562980571277648088303738564490297124068603527968282936258720083316709014383115920759439132549803665973457246940211465496654368541273997266372720426746692740091888183035353599285016949502963498392172618178064844232448376658311271931264266280628310038980526970569656328113407168151159805712327725825392568280023124424818701105357315360237130412930725452741641038638709081725130138317304184253461186806412009520563679020039192082367329901761260263432639532488541953940544932834465807117666594004523057250761940541389195404303129802585182575115330592910690058908057667271856223182764479509214042472377395717720081159822194363081687665778946854793349533020564784817531777675253261033897537163910620184912651764105881589590756538082611750782925684389371165112115348982686135195830865170276017893040800475934403615146002606265456504159686745017174002229535351714117696207799716320947161904218650576401975120301794950410426477942263378734215375277167111033465242665044899491133662832702310472046307287753864985030004801396573485708271596116386214528861548474930692047425407124022607060906218439576558245296643193877706002381332596699549161369730577438161650288689742326411905890708416289049392370427938742355244671346900939180406293139848656187228560143634670211000467654677164539897689280584393226743092269400235816529112508619757915064772469715095665148430475583155570961245410196391291569736339570312793677417560520710841821412764974906294330370475266193669055272225122285218003923667240478077204677552782496132615872156023335790052239097748226032289821471595166903135287699829907748232102788953682501260444378917322145345077302891737939887666260386643306005073626294759991663664633152935860453411621671490974717665423384760760954754511927161235745273203581085271725781703762405913584716409848574087334802713892731541966852373745014180098879092680538537128421865331922475695478965447571448851956918483820624387268187069689178457260422373650412058807798890415796544572258462212400276552602139048403912524953555081343033984838248921773660869045133932190589721864898446011946569068622286078802068422174131945390025930188035410622307092294725356886405263520811554039743112648485639568306123783225168651080388519823053440068600827778183324593539169308406908272519928701431161173782616276552879112266131749563024088207469973007795823509112446008963255194513629722887712146550168199673196791403610563936555826122893498408668797042607719116754717738758982212841446653318381438414431113595516049983110266479413095246168633801923890520735335391490338524706264096977911992390133491422051982506570385988982396150009670264732079624702732038373282155422185011935569302968888279709738850091269014178282668272230892384048351221694456342718692104348623453969581630785597043692100018389557654231323043333374865109081201222503462588234226592740704946159647345537308060038800363177081805972826338426815814681304421900766563847602273257928654007614803530213257189786891627469069897191733787791213953857433601860201270264435192405143571007388300985178778898907728930483260068806778237453134195386515296988206537399245161448955358217901614114847932118249999292368234115019641084006407426014176893024721580113714221349102972863291749526792708571239926968186850921607891060525706832424992576836887519699110363178110919770935728982588829275659745514512808577251667616738321848836773944087893672767206187087002020416768163617928218710893277112623222810224689618621295587862574054562746048625657684969914085333498427647908647857753745301677061068744594610313083426035293512665939398268415202453823351489060902727175921057737421109353515637735183401390806357461674495266270866798869930507685211512114822128437223175740673124889827104496097901688191189126311144000004790138187251006023555303608915435875459654255833892473093033503675172205359302174284483503191662464403883353577311464690783406027290719573774426833428285167944598461033492992646093294187953995039310919696239381971916815767571865433983774629006750834899025911104020222927409473500721147198190528002609994789544139695082720125870850901201461070762319717323889249822671461397395098411079840692850920740811465817742202321034769411460007608966129062349696968263600576923118509292541858794158571175821222695865918920231826891238984007509542401043740991456974627048164157912345555848481101165085133754393683157553036780363875531555301411645437399192954981137354708824174074117024381877764374166007329139638937055966291153368461609220367835288002218550526927649255989059511152687408449010753263268390553531913595113936489310207096556399089810459725031561340895220757859147239703684515376614970644298939273708050180177279412194434732351638870415509692297984151485924862206894440311183571106494281036411269962746774090415476845348745559010831669522380628442277823196317910162862099841781064337682333854270493704908255704739275167048560415056644840110351158218472368984693151452514201740499034689150747063619255516586424804831908965301726148267329680788504703845552717006274413316479804441689740114510355084378498337958157218126490432459339276238304218999626560417981889073506838876788604832983215989576086182665226425959271547406524072234218336905973482612428275902994026496904178414532509673730072979857863019107432860619007252313744098543322106342635674501885563123115585824137757114339939791589766544206682952132982830659455224952187649192023037633152229497496404559715337535243295940333299140536738837749336802207576324767337695320820109481525099215188905391719866960306295253506940661803318351919709639118229345919712321599476540850455038111101729472382125050502251189581254044892616141115425772265506040474815156293227608360506188105312196630356926078672924108031363597912939601264279320322427460290696566961646785529145948363206339911220723229401649330336205561030455149362675839796689521173678266848502011795047708832200859307166670457413790098694169299631318276860525991988602982206021564633698949134817732309422059657155242306020766844634878109464184256710757601022387153128938780914037970473653312625275987915105962325864904461136754338930256943348180270085808567836415598475214203142308578955752148956065163151333838286247019573053445013654595575716685454614888623496936214835277871160535952495353635305575318541150202774988847054414519486712701259880716215933286600460475721759179031674028379478671302529501184169896810803702130034819577083701398533538567519776728973125907901040230134338315507453022535344324859796746063345406555303326950094406332037057129043811239771772999095019770510696838811332508503356660078615757418615884734576930914503053858810032748772486482585922220519327693208251989947328631819638342246517192679325459596603009755500054108927221694448407778767896449954949971891845455510266123289436763487015535831882096371967627845464952286089986012635657135051263854973787506464289104962381618525034853995490119628132015748179443880530620758274840696194842772886385677387538103853154112274342257092504761224250038597877660099344024121176563089864911161097886442697621937191435797704910688354363586554721148891819274779656146670429560730462000737189802609781245055274530913313488554101159365258934167579941571060805767248196568579676645554550292380232288535203067465700324934318351977919156639932147336025106733464316251213856890098651458468097258864764374801845449266107226028231374978031184251543825768765330001181031638980462530683798717506530054141449752603623771703378942382236867482122391154787432123293475670169300011921343611672721487415787644064627854619298170848307097425886131114314070926864018259436797920236575444892616375629923045117501004261953115820129181005467646608047809447481321160427105616022478350933361618445779945805324098616094490764904369212367477991896399609576254178743486637999904705435681683464916511900071542380564824257028116738002797827855771045092333149497693533129725348388118201143163588457857342849206890170375241261921088681820526604992019296787805876174850499307389512620476092681208614703600564615706609990178717453661877850324946842495492385135346580898938504848548630738259325253279894230066315669501165044617814290414478285438686554155488016054129984078899783049699273683321852799966492659817165399065814053270680730295077157987040174683372578241821578738243917251054041833182553771563415440099036471446147768820231776239673467543469150651169645522930436742153428707375189109961855001421209507875315880802630270080678676021465667996494657206275560644792721025595901745911761327321258479247104707901394586690143458479185755231183710336247813253515057570184422906344826530354671922821446870849399584725493904006693737490945363455506162750208051604695822362257471747766225717518959261785988974599457240645368326455274806469433914742612098113163680648497285849523078180454562618997844504710715991149271619820840858936729086806163667710187303020444793490456568431467011628243556283491443807236545351498618109551454522404773154425287651780487374881682272533233766436160579239764680876659142165928650788542223628830948018909099604065794609464112768798952798881748056473854198645966923615464394856816399574817395887934637654474785267442043455562168923438297243265040824886929871208831655734140530979625805729324271194285016201735797112047537758362597773137736011375767873714231070517602008679945207135535729562859093774764756047287245771380872667622323477666912548413234880662657984730769084217587545618029134433093319081083134595345316708156841139713017780120476375000430672965863381606000202965745702636154451875765815955906226456704003303301187395988615521304176688693565789332675494608880589010499651584999323168128725924378252505777819308891177798560961011613326274512462655288792887606998757936114516256628665549333882032335724658963362473914516581853627163208848512144722735182504332704330497843883057868698150419247679154652074651431671155384947844111785036861738178477658153708270360923669698818373785154837785596302394872134997485448935571523635556300400631715983510291164659780725376099253860887479548781509669710520828665331000856583396314914041363368777939545461415972762317344286019220959051359767287331923753253946158970960950164741551152343619289396864797862661579754298462856783303511953202216736930742321480410961847335657829535603757559807286628320892601973739688963594732847045244924100461039929767088588196520946684290596829107363741508547467455145886083531574290343193947650146966308743217808641219976072657461750283912577514550284128878832229583677570436004158448976215872639380716422570149143704770879483241662822094461186167101836284879617233715515385679527711366100704990138013636126514976000159796667142586973074141716897982331101198026582836507535465459263048827966719234538220754371619811683490315669439140667198150751306433069067289184169855341382396475726682510004568278361624543179739447723832902049164890883694112225470953369067970942449693555387420058119511453406741991635900920457972213211092753757055470416453739110980415355911752188202590508540147251256065915226041424925005231945586157523065007571270604821375984837242959012730485918643944434423351949976539054525369130236480514899907447469995860504728030625957430909795656785662172341031395116756510869789424692294928975436939194326381585743443751908983888281122565061583707273357694954189230400557608094392339439437002755227694355104943830863029148808744492816239529663676866065523786319544976917575534021923501080235875501760673409506792503091435206336367462020327495095737710489527889793889564900309399620345400871386095326984560977594728818517428851686877058637173599572034829987081060691546662356144207996255137403193425855556345928034353020080443333958189003042314099410081203529769163082581993558910704040036369905576141214026169201827245124327582945093953085842034810947351484114702314910460379413854406635183139423944042538945540577814703621857292122354383584855703357391178181643177492377991569539081496048585644801241763088536730071445867795481444566393704544445355845389162162332211946610035090008110330283983320078601987242273011469291944304324018992695567995944435304766095154507557024175492511631139992817465559542009529283201892090926057352507365246918171327741400971472924177146004293414171881952889817785085859046389172963714365894034497394139924219086281802078377763089139845313081890024389926670759119685107303687400440773272914297679043314003645432081172579167363611043679132812596124470640579362183171092436537064180907749394689896941911616801048669441634709703500254154970046788979111326342837386525208864701106565337547440144286287001392029597588195592418725570812140131158963765057963892049055287028073968076082554976211335041566151390511865048742167552119399812169847837342728526074025992896755648516368403247304989585146288745844089006794223103290279699742252406713423436532080005979339873575582238497497349911914497373777308639760216242476015805860633280220900879087484078081841347687236461359744910613327073264939346702311088186906738666949636398970663708936430454622134189154084172901995060310143986937202367174261836157794949154398910355880951444785451161176290770535851153007402596586778150998377703363683999836638963901269818118845019508510335832132797928804939573802060036271761540096641341322801916359530403118806775408305213243865344697871306009934578280908272867950714887933160598505112332783803946392362552111468671573534346144497729787475389774744488490372951735400710708535340615443814219026525904163310330814419341142592195630156704437934797202413005187299811487498177979658412392399452131334823429194133460015804674694131044333650760398970278070259842147408823630778913527353449539735506864233882254511138662830392188251516130733229866269090988693279308569404550024085606209802717621776083011143542470621804742291495375453371421133616809884408376511056761376464232870225575528149624773113550256733989617554447952880730138058131307824057457985653654853035731093770655055888996629140239939802166636070099767930359126422087773816322597840765374937975207513112915684563850527240698490947735003666555751410924998272254980930944314417016083084308777244366495207306892985254413327391656547576295335939381061777390544406430638335923048607521177891139396585438245594266460336873283765068304754771384571678765356302126975084400798079475768256012454055698220357190022869564821848890345318880412848232148634419956343774096213384336935181209838286587833745427800935564503511355624739562989830455548419035453799017208474600888267762557886505765629041917457940555177661591452600934733796990922566531846190724446979444547375341288189749116569907128615562037397247094076959633583622361406856722193846153826124373704731367506329499627207938348251431533461692225797621681700164779199369521883873533581212466940498874026962179414582288410586401551486699186291845389326361283758038369055255390073154941099866823251076910126131493845602748171525011182676712811245962375277497937076752937866278936807449572079860384390084787661336809372743768666840203144319756049795286925070985626416760024160016941227811548652926623723167654744364742727317877460375150664126333072238634858026798374325393987469814311637934987251326945728230893626049083590929025272246008536737570532354140295646936406952399318194119458755115442721683511265904190192202382917461645715588389467346812403706791894045315000946061667664029599593177419203772139923488662481309571537337139747551665832664620421645583241828876025736385473663200857782478008458622735394020902178363025703416069145500838378085770288744628426986201294083619091519275658467154258322633902604120695658131775211845101108484629036435465464915532724103641893732637159433602090402553334573118450381844034607747108442250486051411616799758966268784614404474973032748547364411328505915014943509826373451405866906757149381851902723484204006620004602985607527716638293483824047656179285501769084930530756197112833629330963731112421837561549898445050715011301727413786533342287625621549667582770696038330884463278056482114535764207678452006299580260682204708502176487677025490809584045187503548461526269991077931713162743044302329723935027310538002532896822047001424321248375545909861187719417845759977428139336874875501481600934831112398136926303461676262451387125089537788123101808516626333269004143273560527722469893966270795158276386157735557287535828746658112576183836836635417102190976678550284878217616065570825304084623953754321230937911209336648470269514242016403269385470953806528924891191983273113746438322079776804536312990557854238245908678779117199097260597116506415621366505324915430929289351964022786599765942317101356838674330058716178050473481229848844930163275421047077446204088101797850615871304965484461239786628578790047450260707117117401915372821725728271305220546057858426556550415308489727332264216482722034675125847365343151891412193643382923051279060438433491168684160432643975011626270343672114343234586893788236640642961137687869253043325271910410628193182892116290441394447008865289810081963335584179821583967378733268086996778148491690711725921984984938502918100732591391071764376222136975445432869876420098878323891299028905505137244044650527658354383153601928447122064287646678214166936346723903461899847490168356864081903834638415131939968308800053534278895597563297039331867893349700700590502125890325935288268806696875267018716559540360431967830024166285814195651463499275649220088828311008567161677270533950470200027360271739120052824690491181472121596437318594538682147277371532765694018932643045902790213129027259552098270657254275044403462775883249451897224600767590929367209157632370551143671125154894893154069840968581410803113333634790097004476886935144703157655194328027462263932191898592376792098435258624931761623127931463576543444542574084766461481303429987603335641766375196042714557254632349203583547533344986095536447272391423055375478871162939621212537429782638544561305564852821204134440353221609883023820320022359919811273594085657905089310691247303001980396707546358983581969052874962088321581786694122663152471763913767293332324090959603754908899895572686195010342899992983703402264158482803665061197630484362840679326453235096194193283305055839389834456527475176135516955050514992488239916106815827984327374290093074708676712326922023734782937658428334832155775973288546016758721160337411408494531698364341888961438635492024256846836911698554541899583306777194163115801018435889413530651510612529341395549562080569294475275327796763495793383622495284432927129470445245094696586655541685001058123377242949670230444905951114988496998561192515649104214689818094922973339968854642894581275901062550463736117653856731741033239231640595286874400380290519942463390695355426248346413787038109162434109516923408592234971017559753518402165532721265256892221623356652882718713105054037293591122768125617955620131297516720371947919269352533576043542740324922632972141361240013519652867227656401875695496639204929401662449577057147723443262518344971398269885298601422804437684247637229618279574933632101594053679861329983520714408142731958837094470188698551832704835816238662155236805356212952124288786813839258538963952514012340939219683890892324405641049677562718640437198852807152455670651307626102744196018386383858321678071583952649988801070473712114691458596647794774231251200726255182429037465109783842937624349674654336749556295463920949262936631713316545104021322020576710731002393714299067876626974071765178164340186324607114178419518442678115741672446012082834714030246060011570239153232682283082929435631452775236102279861879668650087448146154838699406018305377457983997123911703196105424238263891822853300120250518051733310495287978934612395655399921338468877920691865495688152409818876162606451386967654243543735758615204702588895705042125417867748976761338637053905207562211526408578771419988809439906062931910614221797050365274852416385329449817005519062802478490316163431322670421382127189083051137720363013365213610166201878991596604104789700540125352154320630065414933628243727819018245050912107543202560607709987570922845544640773333806096785541224200610130894425350140838458489648973277788963214694277519056142685358290500668311264026456575765050704843623832519228624779405973078465733005403172699281157613306999660293168974621748203847701562854967505334024628012829684824378565499928318844462350052466868935772118243930080940177869960043846325312328371741674142112827796434960865307651493693721807544674996152955231459091417198793369525807069938649214790301625752616757484967406172912832654410819931943050589674819552840124197535795276883792595652883149346651906040270047397458781046211685619481426529458958641418947503673771313900235572969664720464226787104613718178420359912551745369027491412931262726807826724730403579581548391235065476278676900630761225167331907367354296679918692562243223050165726064059735213928369330481691321138890708273928887003365387196578354654641605972416504743028869323575125841297020032304494214796239436879043797419649768811696933387005180258042788754985808273417482765555901730545193879035381336887056844692189026904681044204617098120502609718742340114456176264796652252734649484800852508810082671164436696389340502717829747276819878114622865939673548858026935931863150851042705857809019898158518101334225482374316095071071726197886046069804589556494677770042360715674304981341464437049584720825024267238743924547380436970913761275696382898220605590477781687766194819342335879649230300897930497355751120324213259269547095273281366075522293432814475206720532235795924914531716802864406441562667839114295211588400093074054888154635217712164742993832432902087924887675350704591707150871762294919965025988549367299167669715381172625651313455331085836651104347980937255307945550353209213935110665263554255370926086559070603899063633781920627076912116137645675719052750177282968623764637779163318236909325592382288866761835444854975021048573284028183647977060982263511390247678018137630884710115982804721396135973345522429166104200373256075534023887199161408974203964201850470502101736323722338174777839272230528969212587764899459506554846069042722332097210638999086097274140789955058044200740033050136137558608054966079091438679535984978073197407961094537106027738118830851286813809981302906453177626518635670433264148032770372074920612163313921021958441949067664595684224345599600732613160649166008388596580944674878300421364950350071522746236245026308780445671815962844377841550252008711696487363665307434734788644866364859220631942747764389835578450527515238426765651730241493792391705306376539464039913711903805063430582331608444346664856429384343626221323331333875175819888200554954428369606459146624649310613058334441436419598164193442446842451953348205716240076628483087268971049070805729116413356251377838387440620526416260354926252463492689958728442121682455343663418843153426574031951594738718727974576370721710180526897349756840421435345310986097813239404404651463297067090175069750531311152715899174453111848067747284572179066611067399704332496863069915479526438100943414453554614784445108806820717988818714391545487755522756482244392608566468422397839617857242344038485656283854857334909242099966685246662700599454321409045640280445147381583646189262009891343297473262020465656713455709546652982162282810089949309328585124154728730322685809455108028724233758278010303087270648763057537513878486380343125813287129824933487759302964372330691220856928587059481608832562329498417588355792912501371896749364593257593526928161942211627009764584862298623761922288685967725680439850478125053758002134953334545818848158413349635093737071399686195178662016294865407586079604978308587644272101827780524178071968833407158885599364991107532754966074056408834878620390160315099997528350568222293746205659017156637830266514005487955457759085483007150969586538055846823521572310881889130386039120318417003965786290263023623191419155963770327037136826754337893593727732970797883709708957883427765380483215947076583249215751968116894659653137910549535242696551975522050315634844133045865365048636069054524569524697432870818035427888796230425101895043596776826519331152050624581770118297173632204560391735938027485878430322650492016949809067882720465468352643730529999778844706367311179239083198399178849180878395089531612268173906453921444355445299755855209403231589027577206691092804178488451327217919785849307764449993573842568698963949755520333042704875378118902844356800541906333857988278302261236411048695206180841168596529892079752543707549515614284991166598313439850541990598644803969938990022590654676645889044940743476345217571134479015588569943591797076962757115997045069582652232712064561539561246489208081915730875728338107577758476623138924934090848929668454971523994448982494772728047569649412245824868942497753914196742202946186451789618176868701930489011131267332752968449178538099289145882671070585346690881155499236182651672619092072512380491799406620813275421173460815476055751248603704891605309159103934628259576583627590355011239746495510668908050755115520535100780013239024773196726492558924161509642123203673990954471769516715459940086790841194391679917550806189420991038487012875405086791017784253231120630057505083609237943636374898065762147097927933432466414011215210532800167930754258453934182946914546567746246635843518122301685566226933081189417413685543158697598500015108647242227440855496194267443571214241517497832613646660476263742789701853677918392848224330985660604974533547053132729893041274452292989480300005521347186654957692326660613375273724973486502845415044746595715886672731947238529548859218509564662237238285327902179726510958006038989323449354222865177131534568836210683997274308921590081692336778949933136086666624737936155429902587570098992773301239552149346112498964278556158921879728682187900273772835041998126781557204739914421272143133049739729871354132728351541731993887029060301927250217896879585333939225702974011178571804202459079434575949444406235219999464745646494446160296635327906066630345080298225768314925690806409663264398747381769258807308064799285253971441595663679228829846730474399606182253168883659175536023341364135351597482743785990860140742710508108175161842075570303049586939333211581744890187801856435200428363375843000555531439998126196764532007875198735852368414181282724854592769401678715073144988494021823896643369752190158588805489213946464445832571925633946229747147667640047625790014280061455012259323142271647410637201317464311190001901777824863697335382173887095023837553930939758442805700584430249486773692047888027521468143101588435788323532305575427098250823664253336128240873225425470882283579196213582617107469584832739065384018639911585502597972997380123732422734409942803157554504117546432765491586357092893906169259365185337192976364834134696630795753086915954343633355841635392484847006360738660787449942178342755219203215185359389070565862746863431730992835506174190450959593580670346751792269839505219118638716725085815419133813070833842638782164494028470998915005676026959169109820560079921539986738977736252638665785856068153207549342697087251483195031869576840281671570348269713637651701470218375272495771688530043003035309708270555926902339224124145895493440661883339543336988164700215814823054914415647646346524384462492001887743031397417644840336106037593481555144866103523652069981626113255355293437283323663025161306534683741518948942278863512708878198545766413176524058110347995571568390366377545228154221600378667402576337609589297175103551709086179721403302172718777628187176853596365139498258462807345447384578244067916872244638372171247274367475585086946538387547300674025240331296367128596680389188631630875969483636617576906310509524859015891275887126277291086090032512350637838478417412172643059237891259249921616414202186360817940247734368422280314020178187315365517806185337462807570564184685417863858176620746333320889249843549066220249100417400221562631403572905676531220895733964904693089500840449277104583136106169667799463444194128009932097230646150187564520528327785820738936096098419069819985686586532399741738831680944956831038170996316958501433557576322272912913696593829423312136711371296531773564469122480030543516056172515179750035459872091178189179839048899029195201464166167929037079785711608186144979475456963771985646894562717916961515647462679124605293849062328218749861806055528766145604624351533923163591499125173952148665860629418137330473604693322764066682937413577138096827027714814093900942219812649034726815384381692230227098145385459067207319255734745141651758957843235725439519888944882729593730764916068652098273725568804068846236799023859861553579024716946438743614144158151006587354998046020070313282296964287339748773275359395767991930805065491803048241782868510147848780200334454521251171209598936991414591796999860191700230010871148174292981811584664429132695419164870160679423511786408549044449107249887363577795518138489498265945474483624867537628594316375641223880576536701999199129197265308977986940180953131873068677293518342814622370112550620235690043497412666645376580745947118604437931836758978676151870385041885889453407835739307069789720002429913115848620333129609626573985685537241782110670129315644537648708729478948949190405562438057781003102452231335347963272588850522112542747397202422938192700839255069792163986165372384773238821837833270879914999152289612137170443839567172275371373730847050089264749283579715354120858738166055526747297187662589687334073560573843149748245282049930377767856534352525590277716649031672521595261984699701765731403201858975426765885089378772044709185644237287641082022829168005153507597975605967407567348412870907818838861453417779095662339457235084494693942716164567041952954529873801849440646201776704677305331174254892750752699818591973598149213152972773700787875863105471652176566627525284285907498804533346902360833221228502728661335169109603426231449069892825669466878253704292338900805095007470904598858286509192509753839502745887306171081473828914697669712555948085233570622951368630568131584858964319174572009836517073907080434730110919089802701036941033217074344069612551537578885692069382656584638256010722672822103491731363647616191595835061001137602015553613861723014813000709656132212565774258490612415877121087477601707115156225029802237922569146472609127154670115328347746999896273609960512597264638723096200109912892749650438921134869444446854524388012558373531089055128964930276104461302568367116833962084197595946011195650058250050961318808743043500603550052821080897737421387164006452485339127277898728161087166945254182561589526801433139547199202731667098187296049547943908733188447606875860232860483729790297410378455267722121263383830320125554193678469239311408026356482245225539366039918152063562523413276451931215962165341398234284266286829524770456507471988186189916145839048873870147543828005620900083433208497378968648362141774765761343917296250921342370724823321496364696881127629694799224426873681355958759075958786572809275564648274128006307772955098097177293289496179267347701101452523056434912480880174465461401766412708588954574518693622940396787760187253349153775156771907038028339814894854711498972526240362496311890489570231111230705834951989901305334396083326374028847284831160154549332687153373904020988327045862214355117199406942240966097608794297060362583995762047629540170084136917640808675436442180403270280258719572332370552974896248089373410236287729326161208893595882149819734799694962804704024954748275810486875468397641114176652941479482574503175355186162979030560988430206142443964862600292056101171113756349759368493432518166561751124899743730253891894657630220999927798988906770574693754699427288665511036572159817039553727371183415196786179572643103580251130885827982152498398582743613645375268405716225762598824368675488575803890012519242626631315947682113618520134545938584031169411539253404795904332258255761639812866722402240721053398765897831152981235979471411240708256835884438028423896104515694797410852763747030495971805424596572896861282327999215577899020031675822315208611312233145042672752952103485343649553492471468157638536182388772853501641333686636447020646863699446210091513512106979155603637438706575743084356161985282067042503116536620827492642055677294448805788918506028852090480258144990952937162295722032887925478081087545646595169270306399633495971740054751159720640263570089329148443454126391656146982768309657978121020781747812989163838765705228595873886531588025634398563580061177798481665804047830601350639089072208186874525927662430465187412201723141660998390111845213927300414598424329876189703052060175775933720529552268831404219879047345725430330643722025035888826927439364111145844026460472219764255804985446183617404454268718374198660913239910616486292988560905355927880789299398683552229456919844500880024241894183447963581937009373206464490520093617508733298275318506720970375842729999899738509606773931766115198251345303988048021446026407271790734958043004694331321956110250672361615645364663232992399665825527547584389882791270133728899290905206908897530363429613310623505158615757295695032345993065487571225493719667253890057667932125671988880601929995333797902378758224041730173417177264781639479937218446321417868871005828967841668748850940346911668130368858734619899448716475718078988888733945851350058244479414162540469017243257710137372552921446521877098486363384973059497797883606466557927654269959789974196620298865041450418155151755983521600317895540871892895333507601337178810339858623992459274376003808824926729291803002632577300529365186904282189703529704205717188038607062645314052864545217261704502299979383402337807912970067546557608582905474377632522101258053852346422539601996893854708486942169246939014084727829249675872682694840652403057135772610164531933943555603067435386811494435290275042707938901752973137139161152050750384223651159238469158362790316520774543912799409197731869033740312795907498671661614040931585733647503206823467542001706783477929455040415449635032314440530955606518043421891355357381683043070706271793149034047419548772876131971805738881643256034546039302020788202647390131967373067202823281918654229062312355860121505505515103545693348299292887623545322571966452595429310743795893000854001761362827328842434868578228717605792986858682365943207602359200715316174395198781710421997340174525135220277163704404710256176888610959102252180666407270932662411742949876121999619417299157852451347430383054848555417913186486017545344909891065756393496611065376601137341880291318328798578181926438584657672483395063299165500534226817420293179575400794033269405941133371439380530424029140171200763627277947844624631395073738726906779921012487448534954507947752811071134797471719267113466485422317244530321500679026526367240884374044905308055126433138889340925707828567891183368266609656495020230232046539494769075714358251499053022346582682795821754963925761951255690352160173442955857740534599359884654769385058520874273640150117971899010026557170642966727732379762765207981026158048199413906791467791960389218310941578888713761569204222930661047694648131062742040912891245867548467485889152581469710141017652915092675981333115173019656320910364885765345842416807152032966456217309463307456958101268147678522135499103087611281769165369461863231732132239682441396645600739697509180626040061247437274643793694138940129643252601231868650418982678958685334894965953305696807290643794846399953963987699321177329691908450869085046705590577031392130622637013568145730025758879450558665093958377330263441419357680848306603571807235972513879475094102728158402776169646795989448301244076073833721737209165240719386225496478669826185070920220182443477112710440689144238282836920340874857008118621622258134712331099745730213714718998072216254819410523022824897462491292755179210109690631749135769931518923740310114685675441254438810022234928319197465845401197087452914757844350824127081763850374189325148334177236417909088438237719173899355907250523742740999671456548492127145498275110412210997704240336477189464093961931020456308815844498282138607433889950479305232050857817406460734659134918440172480571055873102892392848346735102728458699315872880598236105048222401471854062983320351705173938160744076667650733132822913623979001141900203818373889809459849197760447057840900285563805387220527090843061187388412036410413881933006896507493515845187994998850938659080325859771955023805718342294769767268902979445422450506980837233872958475945317025522477958234690736405401142592604828018288146811276012735805157417823834120784987930044409303672649950600009986730724651747094068735787906365099618469221258700524062513986792532030837708932113345091687928380292777365896122779237004952157527808692420667473934331999119091155261218204558088562288366880538424441651317786912264804997916274209913124293622834938803841426219753763963904691749207252985636099886531979067738376314464008117615279100870827133611589010983859698923402210886349715661365310999165941778516172951950730869598184845868331497110855458976006416675923770976931906429563282232835239953412342500203076839541034439232581702002222402791534405147338255014838527382632583254308291106653109421997715952369893605688027957912903915870133797036338375907106355290103780761747637479993078931257329489270690114860485947252054164083136736224205814769609691525928531006293751832592617189281304760514757272558725201633722090065620308348320561957485952616007580132309818093748729536029080713320876590857154185120534488652967337325328517952313274140206048102930479469699795059593499662959866160972897089024734482344584243505359339004289431150790519636241924111038719725220552947937308452315086994286555638596499160558441777767305897546900778182624123934513423993208302643495176552447297803047714425971169134024426671674934953302431886802680835487871518886521558328637453772626074539592251338081907835765765893695857632624211621512094455814855662037585557625545707245481654468647114466105814257019596337024509087061532015344339195492649048804803359210314809951659341118145038663614800933962018773402945572099798133533814491994041190632930223652400500036521966857416089145815206424675115655779095180921875962995638882948692674437161428959647960845095103544691012793770206435451224497157774145578844502543652939989677650276846916660235590142529268975775677709245635457303005819504673617725238462934146297634418046551506767801635228022566049602527732540984351136201528987906290558613610966097912861456136072539217027194625043258912548011820046077986365458172591958291039531094407916613269305126503244964407601506225830146166553454676305586255241600520593078434981507441264081731786704992744636903135140176411981564174059289337379941888858676266084761410009600372699869245048138313533579139047873577448310605931770944858120302336994409188862149338542093564180357048178967411002377990969991233632668985482975509480739594378333991467663502423430679006932398823427965712840188031540026785726203200408854901977767432631664792137065158177153698758403965078652882065842320095276174167458451467126640197713344476680007072841574144458923899621735773483265282776523075861328039133512862195763658803359868995741903525411967569285966584900322355015731814160076579532708495435292276796230968634630735180176310899346399116633710439038081689771544050572858715866787822558904929626710675887913360806035618164962809774991466844421900675111082011272047047313813791032069749208421834164066148840842241351231023190177345416782344623733718055559797332838795055044655387462167138101715577209609332079616402752011748225921365096505897734549814707412945157200163271481467020040317832163100034490957566394162707399121084451234686508206518598674937936774477911309483482322773357628439902516887625011026537700918765398012705549576584806492272076333701060887679027215296219824309795519418619898682924097192496209339945707393255191720990326748257378073296743188843232690879647540729118091424081022875515067409680341829342709973355765132674382179970147017144638921744878511196305026557260222145300700591358237853153128376726551402811777334985063249678281601072938065846625658547616269977821560414418308705298275813285212558779009477405764986945575816069150728782460685038776337096375029609998177916923586193636033545787822533559353332936887567001316331935984048965999792089762185658393325658380031402398113966630948644168223097679578373446790357612156791410826547904766072610159795944937492714213439995401479329874219856992239668080768467891843650920714377805532502871071885013811174113136874355165778067211741738811009318131045003972338015724891980955125904762802934998196050365141182587995468157485553078220663176965743204682360377408736850863373746440673747674317379742998256829250712817505659375912680120398070521709725849791167865182708429870136795914746801078214429641149862457564481932808045232925295749789452076635534417923871790175663181942654069912815970395154815139769345443473808821267988957268944056334216297784748908185390066082366048471071663065598608401932865513956399567523360294296286360734427989056564533084621393769860907895801623168661592636198229633289917740421887978259980536301506533955778445952716856456170444145301336775282715398444905322235292808832846683838719429259040895548851392835475946205931753497648045182329374990265459577529577211204421176244395288155756998484870221969879962376937517585083719263537039003319315376556939635963011597260590704211868577553799182947475684441822487012501550562747132593261334870263743638999224879759133463431083359584368844841723950350338021550846947056738211731114870378433444033184418308263497914707808139448532059179312243475303877782844324332334827872980780585464457975709694607852490814692525484929543529762763460025601805608072874642320635668725994179263217234025427963892271541815806927074362970560917850870364131812689661273355496546799953838325082287579499243473351742806043948940733266862280460247505174788551560384639653450277610024054910634033858960447149597706475495373366613962185303489884527861425936733275597295473597393859009848274058906932033842198287417122248260020136191740694672798839964762416721660509155787570141258459012158895839540893526238973911604162643859021906357879186650276024125966795955875912733147036238996124683609648986819001234602101195769769078729418603085326237231768857067189204175974390836179370804588442123195009465819642842168860509598919094772221691192164251189693122638600412773342330699018152079671083574553105147380805551489002253848594594480756245027926742761706952425156842671356274883151899737220041820055506162924237173415948454641622237393909576892171791564317711030868169803458872799275421492184096783248126948199102679243468744806495892554996725305912555919725584391078532743233253813741282529428037154695670989669272244156338207412089385021739973487212999630901376429343216980846260215160307802428870898557025703162297829843501397142465620053198914623553239535017816619364016832502244567095295419771198805041710995033862178308115155010370831462406562178403780555894116810272753417764845876827847596790865399811804549803251175189006892226632717649056880858173035034797238123315892193986917925427864034046537581006332602394065478819838468609058368853788905474291927910888562334643420046252384805659947326813563769042474215836155674072231675924146023545717420726548692390967491117992283872568353025270809934213229412598220289044995988498859451135888804363667020729008431603987095014058971197517644544897741371748768920449200144492358013699235957082710275118645441973846424378198112201449834967824083367190353975452641945162828758339732353326682854872283940765950042661136345435916335417868042538854937996755451324944387871766418741558643773620525662744050637327736370400206862963602288811956881445460359499556037492784720223134420986404552656512061806883300617612711828513485044462937333580052516865391916662184413029978632686240479993630051748915569901731744195977647598025033516931683972839900911919327825142004740091506927599937960132318497360060469519339926649993344328671372066768722061413638890016578264357884171561430068844444531445361050246454247858345848898428536053622002738641302603112060782461315330385968115895438371048889429216367841084253367962768499252700813654131175373338829823103949723478646207226812825441879723958902446123742088214308449206420384506832472580156969004097201456038117401125631776271873872693781291293184325561408636848447707233450426833225341841268574881519486639220925044827676124971716311733664205515625143791989459051485570883359116630734498484006833030922022582449489561204902056434293252709547754926489802791445422257783254512633550012026228138545108191249306562472949660549711681625720179138952056856830706591154090393443391081703505750646573582660850993498210813755232932765807585279906148341385917593414454690143255499988201411164190168416890534061923552265339979895616652025542658281649035000144202872220274186929748834626960773298542422735060577132603651940295460196011087326814306238409731223325877148216430114939754730384926931314934289034599961783433227539611552166352710181927369161102012054945768158962370477937151667378940808245069723458343287795298589816180772447672948910474516159875496259110296949684394507866521673940531272186683285755058382080296616964548774274282083618119428145664225223493124297677095562533640374453048449530361788701629341173291315504636247613604989550144732049783950794131776728941460404417194650642049210006134125426677549401268587481528445912713247557201323712249684110629881961448696729084067286117070825340532294925431708725057637712982024644090617962796045057160073961515962350224770862941902324238248433817331474099482378049050007941518276514013542143108040091017613091217405972709304592181412104004672489193374570652656749271625501224903281422493788236979578360402380040566595924306674899311448161628430723334880399368841897441635095940241985409266362831998393801276957701738736421172422242554440137051420393713593352501209005007842695521964868016018950267660505582180609609276362056890348749944637579437279888660553068027355458170809679787955899638238013468373204520228506294850331813157878728409431551695040145841467423937022471486442370929618405372977936724123149380249602740838494026398759126298735626186736521512746930676555911263164168510477776901846705829225448218142314188114040111521265214731768298815109297561776942217165768744937373629131706903171129920865593081152872105944380232291526836077346716293392171878196023905810938311086484054355566666380770403170238795187589620059756425613834360827753534076684601088312667036059020191909213759133633152668821182290385739672113763199885063139914431748268255197227229321375655612524533876094526256467546416809480831799634124343118846886107307198926197509420736196455583118972846420865152036769732303121931159075562414622461523090346047274976324889603770904312134425799929315089851697306925410568040888394915113842467007517486638560585871841212439262763456961799198941444594265558507164375945016831714634764666429211684938844697222085235371204547548051049221115685038351840076075799228667049533168530644952599166060936906311823322731724014088694512629368376985477517255017331887272853480725773829424313507650961508404171916547492145912479918138385548316998295131837928903555063550620722426043678604493660054207264230695596422473943159355362983970193645588737637740322428188891727457918336858657058247937861362175260224588348495542905976305881766973494135253819269991960442991412503992479740815697202289696260968752725415378876995805510502123139007610903734283200142674979759153317977258166424522082136249262307434975102508005911075971015019757989658031346789589100206991784804364803676205991109141929301384585953616211245819030784524481372631670419976415667940827014485488520319202002469566308570447184604105026831420376309675263324455798147403903103033554488988798381927332202541950180689129493038845983701049852594614691959375011401688284193690221677700170982842821999613246285975013151464458959504791724257589856892925205086029756186162803786914133325352315701839982608102237617526203096926948566926288875259506105686251328060705515668895206094345865911234402517442753074756158597810826040858230330525145546039937755633312047688578480664520263012387292137572358017814048738021326510954355937670075550079181727145449416205176146760150884953725681519471625615495818047796825859307898555004988027685576918422289329455376720728010942479430050137055627494850224568194673012794898882980390676437820498812566301288638494098804722740205939326768119009135745844193259811719893401352067171244653233255529442769916729024996269146457812822618908925698039968188493729373799623470587590157431169381618874362387323686073047366604771977910044079871921058513871577236983680311097389701037378936063617750141428979501121930914082132379017351599786075324820070389232147568832221431904784905775942881219085775556817215301854183993199858057464169341599747012296335535135524469092887002060725610522135965579064079237202346503108064608798401693843798139960245443750189099329809289488565528342304076206718387790580924870605896242695785530558964176876503181863387302576953237729409772169132255433015204767898319044861761957730542373203399387133275526088987388651500160218807500251600339091011541315112863858532128334134311712057944027752385735373783734740656667056352839733744017432461738732894503095553895905953409118316589238562096334789020559646885875557100089583278120698778810972606830954802755661956293980098288572646382767098928371911162540109340797129448611431533171365087351176754969271430233858525344348614299910443467613695944207155466605750958807558135559210223131161969682044875808317908303630540158066430164518312787939077499009086078634266526328110764549960615477763244634569426640749466593928691085914860517947620903439617943661715085417858168872629368093646405866486871182425160791468663696818182466675523855177236045551861070696244507369263340663060196521466188769311802563882758388141484521702213308743148658229468201818728929510923118481179567496584973148797285275918281200993516063636297911495655794502820123159364994578710527185422298441307752423614173293355096473574116008035578455811965072247734954407398545579982542218376846661379320041456383752458525234661885823643969375091099702113091102360489879455566567613839038184553959052636845987045335693812229838494667009411786898391254813912759517507366119006185784567265930590889108723851961748345829182190971118670399064358729747443450841315810171845723694570927487259556955418040204085688650080441002542536809045580323701452077819454383333267967592803057505952833833830427831931385125984681250189088641005286313113760980497801880377105742026832056145070503086060663517703075892484459241120129276467473007772978375580316842872824886857949648597369162406286999529639229084831578141785368412242522780710045450312401145593832503102958481665104836172440559624118287607175823657866601319031270735732933639402351946589448005978792772743505125330823520555676175990086706918133237785697626050027513074688118516762275995063761902330816701266935431175488439814959192493997782319679576387355654407659672743783422738000882588040233140981082344762509978847844492546289571306013359382673175155902452164057267513112332679411571162463354377434203051864547453973905013512677910973526364594264779360637402042486025669756650427464472986845712664663460637164527286235873827328782139065561466232087885775488944941773458565233185846627421938611531561818622802938821306130763890758076524090180281351868383742553724584588391974945917762202210159231881434471244555318568291226461746236125626981295874617737072106103972298922967759485348868474951508415409364432001105030662582101993817974180273191926626161552368443583769721334884163788120525851180317124242014725277535952311718971764665867072874122472286591041702818529893919384336490717115766803799969549722890713200873287838385601860873738894899155612657716560148642970909864950789316362163910541970034519452544774490202405596647601650547273028827409884081796268424735838284572849112632006987823898521012573893595424826001688118381066490362115968789377246799033775801197343469383527886155168915503757023303981073902759462143941256428754833772607744890632684129106616409801903745602038601168932561586594663350214916801478292563299310763546248832617416153823368386742926393806303836239252838760095010495931251045003067583981716243057374796400352447004210340694461370588961940592932849267139890040848566512962063793904616915285989807330080564261556106145348665780158277181779143668930981872287772703455681547717053413546093667846137899706846131965453074427624417101813088877814685569009481031349502465522762640336411592449445179113568852930770228050649102941327652669827008578058298461256823564779011965910871099190046801764566463105887119082585194791872118458113483413880125676684956580695181785576982022794012660657193701475642967856041738909054256944488836566639378171649861516710421585939916065473737619912602811478946487746397947982533539512340032046229117376350362261764180452943133041534673203943383284934837839138733076293436235322664029934213400302713074427190913756777519621407597101609762588107671753286240547761286881320116602779792769865945883089702175185437242452652752810872706881018981298301406722538494867498488063231833912542508110785485533331417893977716392906986367248813763698467528338287120373744111703504279930795506324935264602005128042230670155078404982689843944719516005658485127802605208618353082815719619991897560835401460101943442829432375915835632292158417574095162686307038163375590042583140037322702066686318819347534056776312609119333486060622376660545577197298035310836765010358181178383508184697461946987789449439434579509857779808456047149073466695480272017556750411041057029121849199838314271956465664228948895069054240264315766531495290764141115839646506639573544986064475078210945809568723656262748738085884263734129253658133469766909839464784012685227030225166068102007444589011286328577087562982202416927042946074381201323219670628116292609126002834029142854088781330622469335038584761638082918309000519284939510909064373672928060868849082196840591927908713801450823419123538180262633786535291583061808433426383117687609098639795970086849683439660281120704342611716041926880531145041798844947622318213383096788623002852513237836054078792742069406517854633987897630055750968673841295905327982428985162403833074239386082822155331578918601689427662296680797683386938112684543587207605211423734585909021673613436328769744988744055683314457350669375635965541222148865032603968106471376053401901685697183860342551484563253139963130528948519231569949359200322161153889949042136963389823924487884163199457091149083580945348137331558595539800825132299747323158739103214528929869080395524535335945709738767935930704475266568955908046202575668386819886142870517400977948611738176398223473161063527987585187702518086316786442184803275762665095668047696497025859778612150542165340700224787351643516927954731444303549387703263545817928012055334392368365199208863986892672337328902371975510266651851417816788513533666234851716338812159850170078614613629578839814498531635066558461411925593764049362107908054985760350585727663446552384082368384105888768519756890053342348317910374013774176593131497656651569751680544374231877477645457956061803162654591692011410461155040567475039216814281266933786372276845484451676212120652712478589481939659317595084057292975789968422534332240578740932706640496218880087281988429324128563157331262941467259066989763349910876108793510858975757784271329630416763094120367620214981407875439597640240400877915129626180516714843745056160505027255665853754484291653414288350788233036329017414602130192849707553693418253863497661267694174600068947330824672967430282878648153122126459465017904201318349912221644090134605079939431339037271557077985034355084311745402951893307688656727235721130064642136387725338870151088356942856936019738747695884983925556942796433303660787197860375886103307148496456186083249488087117439604102539937838735301944064993515123605865586561821923201671582415748178777913997494241700286299375510254310775667054386800507572024850920470411680691046745044938030086565453675681951697065130243347154474125342227582911871929784102397133025245530774036131636417832731126787761373382451889800645780633589003742523434028919923969184947755481560129040379552961826529326691234281698983930077911670659379616233712373060089791120076061926827265733888913322205138506203675111717450414457491702966318613216725730596313940828010555764616448958669169530003180945450252358879494901436539684922839350469375349360581666774852910447043798979625009489370342450988171933390342027379119421756368057872934758376917105282124229167174289392154110999338832356023241802341079467532484659534300601247646115962298993753471743929457391435642909598959708203732285306744579916451030654557548189392289148966384423461270936827133106897202096845245753352775360885421677370868415884916362498113187939529745415919357145584357200024404331846909682377419821869634823882663955603633885501435669175813454832109921098243360059729696732010835414263731730155381370775104449154519261995184663101199475436275326583162233998384211801462081201839078193125585017383779944773620431019924564325961430605941970506462089328374664928743250785262890323742679796228756944313239654635676419272267892048864429881384328637103569113639705130023653231404171273188681262349574500961588359993702042734758167224540235139808241532664207279556511339330897573077287503552144388619319646170262621153355233510107895159236353228648071751781779432384625047128083428748042360982744833238403729636665892247715896216966618039476091123979258520988433366416930109150169268348783953716178898955506964780638310417541779892883513527313318071425946870674615207463990140193243914824693694479161386418640342536886928152786909850819547095795595790494579643837799989109276476900410409404920001765575044906445881869956801815777455836244437313911661411648173338275413916827989150276942782405599287734136444066622738166459300043339279257050455395066918394089484842774908797315297624046610508810271829703692715408915626884905230775130811459004452036864307845449067585706386066116485108721909464680500666551968324464522579854175337666182692558566433892904586976091531234333361861887085046051402395918893095741985464815354053379091949637548185068364258407557764689932793416732626029998930557093354673567014880244776991992472184064812665189711853026817514194331208831173638688629144023700050822259844301307441384352642085949802421186318270877327543432837373436344300611957360901434724731126050199793381701440511960069679947598505057788701161122463144705123274267345235632645235491161626389970552489847347864451024608355756327565155172278133235059152377283623576362499047994103935932702351617453649682389671987876104070990551024724311035669390957916386656233376128278258586354021561679797285079346559895107645405747020710482903162358961791328208099948032013299676416224474311780096840309289968156236618335680767386201549150397571499039685933575807862326134348244989174242728721804300317576001652811848641402022717375896778596837464314181863090120092832752193055217733119442512997011162275074437907679862797537089338749793390758242972714469571514205069377493861931300056112954134790836701202198117763564312617714585293193455223782493704807785272081224305798032201405473990081981356474630249636650981342135486159364737881623544630909946332729310088545356404896213291533482972605021942187578821701780890830838183326687197412626191041831997489823099346456207505544882997123589746390414955637092938591852348273884085018173547443227409071162455719431087275015286318956463296471361034501851397271815783275589485629624132401989956894241061156013238525872151215208993101032570856190579285855229955535615986423725440655916451083990947406417932926383700546819422576383553201279946378251742662517195618352355061868735522764094224644426066662571666744417822336383172246156908278809820528275416483977808888070428578490286744148864740044533227984700137117581221411649705434353975607703400384430656615434553954934787711082359814950561303294780121819796940937255767351575008096289188809758800888310961391172301870967127113623197182307641069640817803780861955462222081545822883811384804398802910803304925706320470664911821992908474166984944277938395578655623514765402258903156980209383402078877077225365974476673646639341382093301188389590408842495904849070721477577120862790436375656447936705953730313402206730005409394804200530468203994399434962737888404169921805304218227210938231211346831403548356051758030379989739894330939966729129247317024253241668355200078279081218442089549233581819850733965168266711508795295729669563041185865436403091359086059925622228772641967581178894045310743247952867417101386603764863895604993000104006050585000858718318486016711364130624891418978955753777758297952528525193720430519103102830214549636387807439225787698892365612239259496409284186929014180220118169653799826442984807787264031143758588511817177609892331744924398656282168962452311399819545751059046864090048496911868332533000816972673305255571002745130438107667093395736166523247770368974768497473558183357034672117706672155201612509140828527716920178525409226806095892000377504295072207553530480614536436595537620870761698317332405893826032359505286122946782620023127735948919954595165524516830459762329939906862841239034334887926607394141614508786029209108612901504604456146873211153310130564757597696640430785510275766397957910902983969532971771697107478554373141504476509707395885002985224466552172874532935972575166924125059940421795289787639969681849602264735309802634432575261176761155320469267881247222240803420347171089225891915455209911192617101103802534765834840283536547126783291463993096705144121851310952623502870491174406823022337934120523125852346053726320794391500325155729379812500823024970634241674201715026922654074047866297180480069707593462225009637482463978211007671570899110402907033425506557477666676670103295413321936203225577701946094787559561419020728855591490986235542967510285257339992911367704021620521014772660902692963440251313666482286944913231849572723265659990213372134694563814071477152892140925119636506094118745711571500480631897276642707063391166336416402743993045131634761737893054268423510141677413143054456070786255395537241719403568238728382605865978561382457595797787479064157034508653161320697960146332373290037075342673775248014703849271268194116854826577104444478788553319076026465077336367894952317708017290683724237597737827441720446026817050998145071939813666273974542535453797890979374917720131467445078547865691833209436605757339973465342130483139342435288049911377778954074165454884828632854560093029199722547061709511061968465805608962311431092191237795232389718557182863867199618739703451798426478705008669735914709845081795298147022533083706187390237209420287700822099779028955640805032052866932170598547456636017798825626999154160756721956888664301616395424374356720404515828423783024482825948513378708093500426315497281034638050984531232994063562162536553769350860100972508180458420105629009090572054474900719312809147697889334119257442114889506141387754009802863488368705257261561863620718924169776704402430682980996721946063788875496307628312887286297787843586479094931051568225343532857531945951478948320702164588391067907259340751635215438223021755089301639289971923555766875949285244968327146845687268012455341641875865364666479142443505791052934282798761123593817712089775670439495063905347140796146846641004192134599595107125834321731924819207639090577466746005849710593401618718072360016630516343413555570913158111872096786061980797991277133943525969123991587290328151166332171608471037688521404144083344981769400564324759043189590909275185050418309287488005337374923515034150596244675707603534212841171258208774430171894325310215466205814934512771457128663036345698836979242433316170354959467702607372700501003263711393445555834777621147826692703866643928677990611641266045215725466026238294210467309805954984808844463743999085120041421610211358222075742183927210539731235574716937610587596193544482081407570882846189876573517867988836065691022293840935159953411095426220664182159017300264938149722132533273421948638529309796163992381971501103481781050983706434574233451478251421781950611078351543568738306413499900076660336862409058656427426133507905915787902457552705874279467712561599899170011814926023804776889218709043235073007060746500574666572252168227249462263712999973971896594730462485017594689482728518585406043603581631722092417335390034019421532961101563789876273757558088366127414169890500021225299426762828597167509489783290248403755601463972510806045194793165731500239343955892891060254598030584390836242530539084689569708463475280640209388051638935243574105715630367307568696581458384885904192253266977258549126002338159985383665367297238520848447579855050133643432235681233996792930660712106967722934482603910448142071343636803989223018020692048433268975263515063588539470782514163743907059899381567961864934383365287389944140722740098132852528461480192055275102888931352745851668737745054163886763489355595591116470458172565038278310464791580243161023710743566831927779508732268191913073197678980295000107934852869818289009547569673844516506065008580497132867178867002964762379684640174677988656054903028510188689510685471357434498317236951724540272662084021052550909982010672183782912766392613444186740930766057244889222392383099029466553782393265315937468693657876109013536047845392679928967345753153256177252223180518469681571464490900361902163334569351426578911972098839208316848705173906828691238380325379374662004444006191188238309007420307893833437494416107671487718945180385542160626878524158815651381292322036699043363349150360201719915331283944640606749894098475201800189728003093209114158154899824518430176111008732793501518323783226419365677901170987614887759530814739061499154064365164745738687130012615117150508104527551236458845721052806555882348500598341581343185907374224847710086845708743578239278472594579537448365154517872452255610838805778258626859565547223855244970393657567012290671554519464921495114312569797279689062579529853315002814107841341339808469281903584089917985432436524070171088735122398824536423533633328482422395643842379371672087586654463101029339456368192364735145321666066375135522644250882977266928426458482943621804720271379647509125062756245996538065113043325342437816564349536613915996097167862778417709022902922837377718078046707319102299910524760743365678597667889553632043717460188683466032060426184739304381297287759034838337694032252351941378933229719148494465153719203685121828957551391254408821762912077485882876332918709758278871164928686841028970731327778689901260096073747654686507850834790103904999041615426342333335979301932884848283378424490745678046872636678822763818395999739748446221133371828324453728953636852824965307726968444147567598390054503329255533478359657679120201253765101057072002427269916776032255159103814921543479461504997679265729685833711936984480877873956298381780302499643467452349826567408960251813571194324072495075750256495718028058734045961871044284566144412097268144430875311182039612448543145353385367226941670291007328847812832101877833465598529605005228089400818706239498312257500548450912226936070298562228294513098897163751292167532525384044231722112619761727810813143351497870727721595613978338057288393492372377001103440155726317436290712880897101648928958459923496291070879074626631461951383497914880314000751301237455091571471921800770406566163922179732163200650137502848373801617624814668967405096940725439107782833921032518291236546726942601536683465633706979741730667315486440523281625034367488459363895826168778759688655525690858615661126204349563341095632306699546799008981681286439662454692924727461710709585011782551712869781653574737935452388333618625825302675758174952142217009924258793633296315220631065805778031350497466241172993201584460888949332503227590838858572494758740591006568659011531771819543139046215582125105510373683431655079050544331149824762113580410696251214416542360018319289652196208335060156971112567130605495749410974056546047974164889219464340042449600433973226648213884423636273793285398367932123327076714163794613345756709279452896329634843845958076768957193904338355963058322516501124672586971121696107714269497664930246995848449744108516500095130619687877381531481336541697312212340706530387576647659413645974558306388906823743064465456097896932943477458250495365081938684672074792334551735602137663683351576892138653331312482946279019551198941699305679163915971963275028538335130401649805072009993746374618435817480798767552345671675255837501735830172415165943488611825624829808094064491674664404457900461933511330153178974306301851522724391231539061026916424376306285243664497660031222385606712057631686729486153347206180235842940573035466636459512940011855547711990901331240361100703719271916454815965815803406552522706595742814621978290151005517436020225084424286832714054793458601630868455832983141424235791487809515798638778283188911681097383042420941015971177482912484509969375506241239911727369271674945884935644071388115751261857052996594104327102510087149535572071193983036393963051274883078547315863965754859475665849829898910251208976024416657057603475698875821709033008005088910314417156252747516566793482117966223693404566562477783241884483131606532854678186018872267864157111164651061922596688579862932885171352673799156228879030047771016885902844890708528140713798636939096555589133252577739216197938453465382504565883977826047651108541673658800736767114043424821880716754771874059344652006257726118200972776281500787541594419392591188765965436680767896567352512604884472511600297473115956577974403313426662955297533161693179751231519566942858866080920468950802862848783299737192275049631183066833830975331710232970979194978122522442193906959384150548092190140718910817205268910599999746848992375973957701654775882262508421883339222932528965242834753747915958457652640099921468389660374097179467235296109230360535370404961392498241855307166892032350298149022178456293640400333217965839193032872091381873580285303764930373794588297694453943525022230996882425324055814871347647349298479024156182636353079240065626775916424374317973205056429049370633474952109088425335465549355287011178882506708000093089698026065554495674747652976289629963058071536662340709727412265345294599058524991444259758054562736055532051948534696153888998793981095780373832302891332114875326754134028651179454190508579212718971398952385760813738983205017402519521865228269737031466085817281765789527626506071139122884511068414410118137403768414355659306223743486749961230980276366549203623368060987187778208324130721254071922667829790957170628648552284824762863947934380353084807532624082764825194443853505840630231141077137746054531358695915176592242299488903415545972549358826465367541634055312786823504950225066570109319924582214414651314422430120545846136129450519087563169297863453177283283559069464053848020603365941517770956061679220885095461428932034379024021141365991555350873292861684351157708298132876931431462269903573170484776581647283128548257210560060734525218470942040527781629922131056448572659693664301554242521693585367080995061286766964821075539071486369796353890097133833046505018905381632739134513386414266036188882484308431233655769625509521501209838626985422346387759514381654965152740267317447883074840720368222428016578194802704171376590891398919675156524637891348548013664950199388482169092992734957099767792299173971114565237030117285567200305303690716922074673386152480108514184369933646235923342633173615208375500418133557973117910073552008397932254436324459120428799653601151019810396450253644697354409351910830729992504062760180329583424654526815415156707598666735371393476646736329886726192269519684688624830084718957694436247554809142627828796444435228267347084957797073297958356916689587268104656584855741069945997756136060843351292229524110611011818089946480399934934965739541301730026398586971668767907013758582945580620698153335135570918995164297971299098913260204779747240704426634052275493532450752707067174463779306427150317163130007275396921325875480181165350063015074911250079497519186434057322319976147169205582245718827816071276773020184438134184507328702725000335585433923568241789064199218526040075293854197249014204270028020855238908940236421284662957456965600386446913246978735784284234146416662944802866027819904118049816272356033423678776001322412437994117353350349528337915663645584127823624090216194280111447125926948638391307795413074923970230248467169855340208580814686749385590960107149087347174621825258635232837688695837828828633469239242810789489420514841033393785990538749024081071847447361725531029079470224369711203125624914219290516669575286119936736351492554103741966255358573325705598456339872828357826351030062036424649137096719876804097240637974375295890682689557801394329107782021054257508333705299614555235829783460804352250470222389418599341071096259218480523794837034049650745522277568501356047479160899206692700339396913591040574569969418369620855170359746453775937495285947533972532083037273483930812715313558657989752734068356128466739228280470994689356862621523865452965487518276565415478096124617890660032683743742406151285657562271383603123477476549614921174871979113433884676524344820510987308694923794213055824539790074460498582672016444577397924007173370125182085432611420322594317565263799351424578303998560136318947339372987660107170652100555165884645385051864711242962728134682377817611129605850281252408596320788886364232738877518246352357950608220170759507369934849779596252402566477694051728581705943197954512940627126554078336862162986684071226318688142859998521049626146099713433089299981927458196170044836772727761209575200698111976849004588775462261919607402354144404230921842148569001439044071414894180958204420206229342456562986072664008773517284840948944650385594507905637915148309803620087064710374107910957387049261394610043484312674524950263861780046870418360028817985531679028796092717662028058187093659956278380701773879811100469000293980281625424186433421206600054517586249227557859844453786756915555305491514122425964193175550886370558944012541465268621035871133034392745902651478286578107455470004327372805974873378788366917949519981810020895958665860518682285493830870616907434984540729891817751088272228728363597079120722518230515069502506174114608063013454329238518757209410326792003765882751304713858221696545792423538271584664034416961790953629845252446164408435934336013572003352338709875817544758070326922418677467439480446734593422968089925842766602697756888684540221118177234838804453783484132493847403610248361594868951185904953934843906402427550816906564349357818756266500840735984322455767546350406018380157499425217110654324030759823477642603577660511317809959369105647905132999002177663379486362522245441761611614816507306642673196689012691283368480318144018649661897483328649926417296820266568181920655756140067707308753925388715434481817379445087288352016892346081734305608606582683997985699731769519582427514202642583341024765763884122093113293758627330585353033105770033726281685194652871299752806705821858500733240211230792733987168750187115813835889774506668782302450337918688401743107532706407634521688389207486286359747687223222105878659207525833916140857916874882483503826672117493030881215185400977402160379459094783241931517896789484859177293945761575473741138709917561368959324434745042890266763470892885813095503835962057166476607860444158292330848287707311531113947458708142848717383823387958736596562609329086315046433123177050459868526784362038906879261586442422319291733141388172496949516282288818508184956173616499170994782098077043386350312698227781804299936300172997130873132810669181012764909454638730951473410227180026914530791133238316391172866333565283889479677317186160552627788643793181497767188103319756974367268688914473218499651665684570346280223869557598105744196630273384016972508683649226381411361691284134534303302686849533619751255051030821503673683255918837571848164953057667196302564652405552541726866108601051695278150690603064089713663664492948814085828308183952814850687103585236890163495051440059939026832986315199450552894699971619342781313583888637875434369836386126628429073311974234099783752508852179145442177339321981683471237301897716936403422653126470766820318326377220629355225555993040166644426762477270029219801555811422421585470997666218641603616539413803346215539736874562143224851238319572523574576983518076489572518303090986827090159793250937033294670510759329362281252385596198970760418124474951496900832033784247169833515555173565835587062846634330217587135818100478098660150269162150614209218431951560634335944713473729721726728003838383968509587991677224105599881833809559262085051170587989916545070160979005855567281481682232012906758608929992693641759047306651875095958363294995004151718053306642507242896793226221550703696007016538182819101564355734324416876766454917778988501033897694968525560556098545640838039060305555025515611338116657533101034698897586949674367654118313207155951596527361658143444113577447893796946307067639512512064961966721170851769552659878129596462197536151310347525511520300070044220713607838550477872637694592548921822617307281911242195759022321740029216046326067992134828351747267921859645609197233349781127779215850020864500862712319625390711539307427866055957921587820249469526751521320866947668030501918222093713447475686838754932222786767604337451965919663496476645231017559882210475100464961952177008115963592397664278893633948335333620389291945945485791650637330044173779597670215479610728822951968524351015253992580044535841542557980171279359477187413560165938952198466182792798658317443003851068521262578214836126726379777959411144158401950266628549347508949504357877020774031597137061592010323334131512332870775075067262471791795383272947460517538220212563973605517204390881954343342875130556521186208384276748759416741354370045784379527318212419530029948690751997304961618563025595547028474984011961346511047873207943867002081710238963704695519699686529570418033534414445159366588747339386541493536661496106754934016215114497365734446174673718681944128830619162101516579356324989026232340445691524684606190381154205868126013894053969291236675863252896045560140659385704445076843013047443337922111204729479066853182373975231175883600473190339111870551332087348291102335839336388599185585590511049078312584078741391707486764170352524199228891075055605161180749700483036156792078830631472660223114077626206771362967717836551629022511832983310851874873361796751305843251274188230131620011817990417550735639653987345024967052601149955166305261016424222309619412545705224237684590523028791834978993838367654811522215993376837131497658230400575533961923689027142681486659860408416489992935887551887379549573669485990531355236510314427497510283223505972711261967375608518153298726219437147181471945740647729485455868497707828954705103602539174315265488190815333213022842187851655501238002885125983173371221416450683064603428201169260095621075377451760271795751778491411359822920897401202108327822049104961992259367641025690586562874450338517507650642012726920897403347460555334972723909174674956348087150850845604818492817884985602140234565006636753917812825331489863258856587640495612616190357801407661238822024730744256080091784077531396227236117268610469417849795414402467639372388903794300561910248217926025250805345675381014373530605158338561305572763772098061070460822246275771266859289104996078170866728847564871014020696971773392014966793510536901083535837239582459348972323636943090717561987448276402352084690032213604209927042898487296330413024221976491826634018250917518022247271112594555011695355780020664765106263738731986116928173764326335573074138012890719430506372481965451649722516860001540697387694239776384348500259206404231262070287679501448503747805978757696631106843126938390573536002053788700548872384748096895268576267977101643835583477473933639123446936923357737692846779536634249666509787761127382124480202005664180534271605508057127408082395522781656049509502282874302259350368562461930435118456511607424727182063081072649656317516146190735914289669623675570599830976555157725105791595302431524737226024988505995673213937490150838663791807776774822239312159764206338580681591719038089350301702633098880756325949177895650780171075338211209579288831019778944425383735009841177747912121441332219403811390076308460214381280538412157343302334062138232658997582054625581500306661854550932554487029457414845417989219803529099177527770581833037419582984079074831513365036162959054627994905533050762806217446201029008898697022784128360875181564052394025307744784664993491947482689022098247270345327845331793750056834145802481903696601044540723691581252165911115941665016983707658442672833729609831206087545019612017590398480803686124571118906692025916161738506726452251887790892363878536952568622292333106288502442856499625956402154077629776213287742442610018823996440355283595372321642456093083439582587936142487843000918893363613269212005132649212217531318327803296789815767637340097187632189910671354503541070599860812234556097727853751141029679193855466758004647994075273452328413564992643617821280295116478068866974127079667163296608665278745286447522614184593138656670166778183852249940905633557883328981087042570236910800461405836151697764573797754148447967267022381830521045744176822964336536991904472064660943913644189756050269686906468262616356302550577384479715440503097589698888694221895276100841315129906549416197250046700867795104989824468703090425280627665143728664729039867299498712715069825652500175660427483561367926639771230708104956098738546094387157622931801975945389257797869184721020079358288901285638088869866006260474477707379955282044012199252358760615179733584052241594552761397961714385760005855774591881321004202089973752677760487795123979273026026300762812239434443883063826485475442598277309550975257095551521403430360086952628839907768330992580780880652504998084049603824351567133322548869094395833033962325458015132036320781655278924143756916367563259239420007849489562059806118282012025999991681777060189758521844491603484513833236954011524827146299216863082638830468054849763190186314531860473681643027899011902200071254747765019854190459994397444828420921970863849712065017166197646583268655169647920917166596433862470676448920341167576062602613857553871242345081064429259886353565088313445751008154275207014823008980295186622390155729336054222966944141827224782945244872851418111981662367739273064473947971865071164902756398103782864820779492228353009035778559805772146416517475604417814407522345079234983071510792134192114198902111723715390445484932097267811336757559184824572171940279438602509885306547903925277756181746084278368934069789937451430967756369325714898248453749388971860483319842208430498372127114497747548056301167677667020336480239874955185341967568849792757809064683255048352010712256661917598383607870375208108808939801662543915529689842112566097640092018619753218261469452275922795140671850736921072657484615018562661350488806906220970827151938411247131231231579525546903523565471328088176869892531060861521068453300420961968443917446758465646384911471890567783511887188037783335336131601943544619705194985890866807328192534274267180183307982767618810473086290486769326340337787304688105927985986566638564768383405371886521314091714332949912424826621602138247893594904582185082941773529740999627421017375607503899589954307759054902932280296796667799987132627801064671532462087541112868365337565566270589059520745869654143768904369593811059066299934702871972336194151144416712597581933379118378214030243124520511906298405348624016839398694730441726836861356372942123848139451242565731407130686935244388242252625948497120275486120509704345993697797124894484832602931665874271379343027774716632468234961147539348046072969588763473344041089254385322534022802881906408575864231473271594542270816159650922352808207409958825235703363571783508080122680696890934309564407330960331639293969238810905722476593935387761707684305384309023206856294603694459030856712844835372982269073556162280772918739045367600901204483474819811375929439448316541728724276995877095539055230909429215778008009851613921832890598631554800040489190855515018366131525685754102434037891827892949003688163005658215547472914122797502901887751288264063586506205539463052001394964279655720213234671087350040473258662667307385102639874694147043347729529721533244697272861314036742822799392345971320704203798567982834535491001279384801997855999768604812967952126277311434021729114638572077794887673325304241176903019305346600523017558565605191737217880059008212875260256359253527894216722064514013892910220134332842324992183948515191978772274789412331516180830714495427772181571743990238783043462698475201419584841116908086843359933948796904126001432363399658022475347577264252863281474059956558945635258237741264320338382682897856647953830307827029394879323104615880966298452596552807264926383921134482309651232837161289309685262657692161974893506759338130217882347391306878046472847007670124972188741938955825330289379069022411306664290339623921248379531694852425702258398098106556777359147027688135004765918940284819768026314343111084569337832023998981106512112115636919936894119134038806378273195481689646734049879654358083266207274314787830329074291150163574106151693836207572224476576015327627918756473282575783209660194690450772782014687576139996771194480226716320590736106264871650430279026791444580325767432806089326651797217155534951029716025011286925929596789493265345651403290397758411511797084217786292962714786221653118624374717435723690024855093410033576842277150521151712878810289261680210040723413415403862266701745133918711501595721719807456628832199416208918284136736607216051518636021323432548802673286878898448429878537824478732952343168502949681110856734625930716525026647185001395094482871661906382292114047920737187927118922454037237622074677897591475832126450076057108840263490996279339745524910472903525579423536615536853109123102588318793529736858135225334478190234236127817411660703709014350869463028045136863112896624585606740340269999388826914621110408633262667722028251144695633759706438018161984554249671282291236758752146758157924492948257367454477920805834703059097362689395164604986479541267597498186574088153106241557374568416585829243678187296343437712183289608483159550436574143608580346732406321968084383640606722724675201477635109731773790697232653287879523576110867754052408012424075296404193645913588101921968179357603371598371411658630878992578640600658834249811612319679886564687984394458795286871790446994909765758607722298273259662416016656365431965321741950471552606908843222551744325860740963648766964314225395986698380713967862212365154433093729289038253019842354230172212835304252883204194317614144792271256679353747280266181029853634518954129200769506812276976004791197330779909287666685790170203417051322923208444067802326535026122967985688137377729448451547509873108418839621762028902338163103781857736358802508070031428265944448431932657462666077199178578568323291956613617998128384532111435480706627398962308719677083459311868572921237645225180918062524618376059157535281856350221893157671003503709161912743276994779545853624842607959202587882730529061783891730921443889676909998031258719758432001635068645527806404097855044658817036743497754114655914204769920473966997705242675491647411400868874795403238089052392951366252645379109088434137187415810484659346012308577103299881205067543482723103466983431540480839137292173169568386251714504069241144911237001544292032652786457804659593396830645482159368649894808845066123728708323996152507061240869444728490455341222632512250634315077181601578835181159418402859019733846587878135332702834518573932257344300577329297338686407426470805521938908758845343283539640593055570342198373199149850793171705291026877861176905791390735655564012764110237083639867848672384207754180096316627435397797148677045654278483230539518765200991921384231884316826968705773848246561530854592743547258784994653846394963215975297642678691344922971872223791064001989032841677305227454132070030194846144998877497758038802480036059549794005400069683610193359384446110882843674741993288803707910936216353404653587932643207244935685662629798819542917901891432625026782669216000391631581283906296867200941730529906499071430317829212486445622545689628938251375902866078758338765749866203150238955061544564515009760199411262433533571301894062207073925034664117191023533093674311709551099530646573314548076767698011658005329481949988248708773134948704979352056106920864102037213974124396839610722583531068833436542881949759470299394210332534724859040080826033118845546824824058996250802477161943511090215705582176077172482717675563520577527725587101877685603691581925625883125135023970817128507766774473483961968333319913303205008387873700535273477431351548301303104484818325532796765848502415442348532529637161252491609920015030107384396316138064488754403721957877156175352828391340218530875520065757688948017752477045523916221329622266041600337577229904850238445638330740908975145669842338305956859967329060010665907787495456702170266623776243481340585617730033215773569174484554593824312658629303103568752619593709243535584806182311568034066461796133750427604041900468409924449115101169135245008430999671526638788020056585606518019105641598264338454657336686949263829362471399374565542672255747463555938942911593030486763472228160368908460789170730516305465839452782279394941660679539356452734480208695932083082709724397107393764518631036236876579622106092770943690793706013969868697353367620106295827104571607707893698235597961874582191091296651235525203040367032818858381021714923139854870566638110581872047039609027818371278997533409838680804473965775290182948630550730494100784706804259017837340163988169118221880078798880908843203382175297176189628402834413040432677098177540421884879993672306953042994537028635618797415139031503355828966500049349910684636944864853945013153556453638288353215383561281751520483909050326958833799090268699684674737430356552746137960287394067994127289369380031419147043989615773636730316186604649196478772949248918833384637862900388386156783379694999713595209679816774203700045917352970376727713360838742672492936632736654083432617474335521358987427840842086404043032181345273895124496125496772279357731197684037475146157604246565246760813280416698381691533115433078295857271899065206993637678904280620518042045507315570304750987960886421263654661856970251797657573633606343339626811490018164237081062413027478784338158057687987005140531981115769775675998188634738417626843600613131346931366287071713503937850065945407294857444015898187172739326796664386674703861009248793265892863375413067524407483944710091281225408164845639152851311086184633008702634638377070092565889650766153730256697299167898490287006345181057985983470230950394260730988171423672000482581581423380234238384814362900966402350798554634068445774729317510727942706236997337047702885252307663190108685686805774108151151582849014385906244772624788937184139405467403234030976488689527190376229487197130418766589842629989615190371427094996224876614025546131569945823554256068837800914856413754364244766801797137786995184865799597641736326100380238927593232121196743307098225505416374618347056923042261637650944793005523085927465874759301780319321265269592120892255261164667941225104665667123525620577243496388646023531823010944663807637117066664705606161283212725701728741757456626917995005599965821470623157212246993675441350821518141543630087005801331126509781075052363234806973060125548114404112504452596564673523318166778280157735918675735317558386528012615973972951790682090397975539236558091479646558193215958238907290850320557800383714676373736337319512058973230857701171069379769393232207456189992980325982663266087902294590093781735823315298374741051746895936035842557027289629513410884568253201168948497013706180666830876769493792845491219641671503926475604127193520003562998675621644713421088048975000754123511633876067771423622178093815568624939159920639172828729520337430628286095623567166183837015026655623408541489281368334422574381594164512136688364459438330176329045212391586358152365459109030160854461557483571165862625344704602464422661082849898361231859017095764416153629586631092804126927540512552680061467000496188658548849558732711016865194692786730660248983494735008160863104721779404835701614679857994773281938408018646043844915165265395796926802615261735306977805064711047085217728829510047647095622356117286500469908801561583248083577291096881772245785685705728173191368050198702416140030881695825821282458107686138682467223830959549997564872060888588015395874048942585916278553393437561666716669147033086620475699431625730632712624583493748069892573213409387924751748925175053158734465842758591292576055263381918032922007076499226296306631550649624236528261939695265080045523505808425650476174551946170618751200695467492714365220455595057414770476006096702165980053063334044700836165746555249966247519721484499627811750012914900645504817812400465931832037079619190926440584663355247320180592925578376328603152718486055877987324583698225453441537407754266148091106123423363742013941585943348669319099667168752580962883395267717454178911664110582326711636689829568018477419026145014292697354694329828994504277953891910792949946597156003159452972910181122657503070249274729572521947489988241200280039138312722425621490014700095304932383940364641303959072585940658548798271645666047063045073144133546049063160117928627065649577422456806029592802442697773980075514492519796125581965752330646841545438134314620716928299463546406339541911831285846329846228187491248038525156977068845024583969803885983167574507529445588014220900181806245937152275409020829063588839997502403358621491070469428040685339531904215632497983600801837064585503104561465286141138649598600944750308166522982216419281369387132570063616421090779296196704900209042173383101862001211011836740616075611861151449805429185471084773703659215815629541850311117790138737037444342537282547022980726434480970593468575977789542516947087941997681804464186433558674792391721255854718930741318798228523128019266798630559247560279152068613859656067936419896009154996943852833241689460970143847346743807372123829634477857048573484887833729302703257637673921799557515790018284510828189219725708021218588986603205350242097321403736302307369789824119297121773798551274656700348501113225506011926173513446831285261916055416648080387903282679310401159252995656564481293342769297501503172161245516009545655703042979720558518948488399728809973201442097867119914287196762731336459757852557348859003916723259250110604175877316883681025513322682867578518939362389856553128452285911747066429495834320030595437800935617158282737108976263736350438514264906064632117864200596780217976836884388875136260804782786084148729954433129210419277734423254528006007312197166363342912389724583234210976381406716914722858820761727186314150230915274695745218441538622078366053345162456236381069277609480116556159072728366193707119418023571936704688662560841250853359790725478019694151537404132402413686165495068199735688203633291130131033148773249470969335368570056932206106777541932127472957168653115756933483296844793136005593672669128940250731709132358095377184886564740603129980342709448190141080962604506972674683712323767617932332460382457991641456817569465579978021560867513782724616587745975259514729527214578257235324924588432546154546435346346201655423321189619671929314078337161244010967633617185195024393292944260247508090765053469828619430665943741944614872870441006902607726146316244529953933011211478058775249981386996473700478236002164998304141870945248590692368720507269134265438986139870096125423492729605950874546951259119307331797081872565410038242556174000927654189636507872013967829963584493045626478161218606153082060439036277981983118296266564332799984214457171625180685276525389574703483216702248493638709382316733283970326148379886932902278442420822057443928087751893355432882639106876740611255393389617719664166374772052182438907899000351430563904534927801421784490741956063939222607793760573618721563884106627259002362460833944634897689790523870383635512357671180969761268390611531950507524129102674357355950056156435389478374243041353753144529678614509424603408329398871298012988432388403117771908349782515487520940320212772445108111427332224244962889072089396678360106163557457967042563139374809176370167936379462491968395987022058329700382057090129978300112285966120958960135980032468567268227017829626882226878279321675789421332887831487747666844229468436210208694382859259497690272790609853034445999870419244598292536245273519646337962656138867558052242286805607651489271673718045825527222680988970844335206924634770316996363288442895762204775600684560897868105123329306705018095043110622208064422198177337363348031325183116057996417783224767279624299053412382840016266538931367438919968117139448604840666742044625100994556086210753974483167865216314119357651822604717714536414901991998735720644156265596564002905228530274312324222495775388207030255775703657305252938615542594269174666257944232687258823498835814500024209367995459692483696869229990939780047893730425901966071734069142747631172961889574181980074994750741575520968377136430159777134691514221211729082029407515521554846472045809671674975424182304964235619750452021312027454051862669984842888671476498296081693032296764772084221491418762178603964823420660645646790025653908476950294748274916650150215027107458772762300831132293157704096217649152382488878240656697806164625301852207699304122263485581397912923875920852363232098709447653874013352716498865263398049425329799630597103943957193296243755468496710281560414852387945645360555090012069784578229024686634863442916495024822739757581584709275922854126951059728627590456380039118738786793543907695610755812502331331527653628691019636788258490338183837030194214439709347514295416844773412587057882409147139872985840416715506928819723028472850427225138019906144976779479987891645705601282401435054805359858860693960803549458247334682310130037258965768589538528527377272204177893249220429183339332820279089771670981300679201391474067160846876854332496523497415433418657498126022435263952133083799706331139604906648267646319077785382447279192711246518709820008153150325771916202113791179383573050417306508305274874689288725724474219107741057768588584784565089303540414808548438614993048318294492654929129338172947666586691341782430163398515453535463138530829356874116345092215490436757826185373716764292833725724197365235521631760819155871628638720838140628892694296655290451621902394514239185526861735651259898293942509781443761290899107376336898612827913859700691193188301031993174045190939765834402730470853134851157192723087683389508738951899834240436060192134773654145598138927762800547856634284683228588495127799997132600985607018291698759181920940542399884888211537162925083661831302127511177308950824978799092209606377126760137239248308280774328012324153340595380638152028850134742261868514856929697679136529526686906015347834529862524009576006755319400763588321347672447251536659180525402520981775363324155918561948194721013998597778638961940290280768460609067827940100297815007473496365425942451530644705003671392934037350054702317717914706481098767301618836569898662066879287651712267757294182320869618642623813700550281673901553169939672156117189048679241864554345959536735732146462938717263924558098362741550578658246311965120638862279793061679790388719229967211709809029898111882743887965183374119002327301829384859740239369748190170363911680871249706148573505626352624745965063606036576587713243386673156231556895633853816717786184455704903797840971412386992339962533576045951825384321930445560437696641545414668189580365705859239434729550948911992973286280816812239245318298001340715939960296864524310577369990683323843605165673474231507683944138692697343768512656229067518214866974258408380324341289531332065996586116392905412479849601204315593640583271326728471101396478889185941711323978503538238704105923860624335502654751781123438937708164143624025318981826729670844750339288326091904697956263724712920312698185322155519686853950976004530703844914254142576499008188712175961617875663354062170284484440079314375129512468638192053747540893774687654682446475208847544377882810757921508596532541793088860863213268019458605266396373196355163546769733142119579090712089464019035630639605551013846807006415039315859278455922784828686642565955296037964675477605366433185960952778808368179405259317292102993643856300719901491243133623819526309403945367647268666914278891174220298165954815847834092105318121422693480137194301498519779843417284606933887567680092212479241839019649303128642058402164829019933614808995308324016544160981164130955293055519326925012450222638489617567816123415334056100302029918863744023412539363271852030014042568612476242892133666897368592380758797352330242092195968847765947721838509899484654038656833019581374686345852066000466731392509095227363338298355340195700300986547884697706472663211966630184105866648633238019091193166400042819842866025801185894400354663824883050745368195471842778704280378995016824923330935480203173694033153609995127627914317159293831044336529022308205726837413064960018980308913499866470704413807788455453267993870456188972620994355901681672806436289896808615394071973058645020442102643133981836071252219443961910954004668067469988150885836714845559904621214330116965454704753798361667128660942107871116345658626136630922476332527475603940240587949269086514862183074924622224487755510847339093442014364477062116657632062353522720447370185965517326715238782760349811881539549248819532008110480468320895719386670197569045308234715642876151607237612370431164216200375460012261296444692167341386807154868585806316370600578594709657537323627728871550849950041817338778453612395468639494501490752324696490244492147421622919865837554322008149634073911215575198501753643433666105685918129175017672449278347266138114140499926869366476006570306226106086130150034297581647903203722226430790267363513576030432391365794176147680753786470177216274991298641570612884098028369700621214536013516010174637473816409807922343445453454373010464625815404654637365468749763943819282028485868815648283468685333659977501916935632499608826713552624053359572315608219029597828567496957258687891245917537996234818361118537728740279379540192056595096253208023263587119126355995602622086414111036692823237776669720884028904492434997526095333470967690511607831446623487155028815980401221887190627481795045676687322841482187450928465040996725065293343760972062600048727552750582222276749959176476440112896297544305572502094767671235859830316013893123610581364159048576760596684609678886545329619368759612257984134779399935800177572383217029744072896958023926390863699445729817274119563327810188919631766377960145994017155790642249819885752851392321727430848803851761637549575345259075425886332152693258052884120420760181344835088312953364096565909948704374199876132645690946223794191074681500520546994756768542189622530568877297773036102285266138426013377135696820734164240319581310993890331060757182444284281404593946563785055663020896905382783772270699654048939489648836241047297000593113399071137275880610485294143960589787243682609888421167696968445867932692153371204670557025462530859940036817286809908939908678502917262044430088901895246223976726673342262963112654079502525568549107892015214467787307583639575741888627003972529238093154505912035968598360407339654372232309466070765162925823101599394820073305871054328707151946243582411378451209021155848075894725319225562917405427247855197959186645558986261008391269298059806647706221207015917109938018498627845741629229594016703207180259931915579607279862939025555453103217473299767691159710437801044549920989707439396867566447563943150177193059418494201265259218704522528426490417897420562605566196387276887952246190824974435004542059724952670856661641293120102680584167682219734824733460138796473123943391093907971100752721072746294553958849374084691202775338681607738267645902638508586598085730309202990990611226560366881587067622779565871929361070340793455033687845283792113481182145456749562014288055398386592288656120558972408419463529124564913585721039260399691250717305654537987378458571514629368687188036100044179773959748454630508901427079362138140508838876625007079620232746712567801918570197423130747182308901561989636803535969259689542590922251423183286232198625376040740153627398981393966688742234252213663986463448101441813126553628329794175723497091934101463139340743313055925134288428583322697014713576740076208320410866155657927347565100381888915671972225483897560666980465547390150666521184825535498523308771641100943459929713683745919623792834803675142747102003739045421937665491858440937892622742988297838481795639396806447349723606537959466267679833292722409661868497682391764374856772444721325124999529889788524395604063859159785552743743489216726138559290489117774507326180205544224106586223916623851836457940012669771040007580259654950402353419173009380958727262709890743326865155801737664868098383732954259036020284599205081827075742830344142369204223176959019679453205709483763866225298111666399124518189386565142427545099984394264127978777294615693262906319287763327610491206568734421026282343419321509865787347947751302790776039783502774875414655687573719955825695496775073362069681624099859274243002507951723838351059291373328935923917160651373254775953124904161126402296252466055403680965832029628531190862493497861081841283934732568136267076350248061481458049633819034210105513512838021247186359997550406597006293829755704091954089236584481797304706406115968967111224173289252473588538922596215309898775560523048273272811078861739668801571092845562596010926165885846158259705257857309373171648619648363705523637065016380671541720690629110394119951443727491379926665344720204750001125452702784019072093934977000098266901766189905017586587747731743681471796784773493072219869110612468691730165835165035590705549779823201787352092480663631692713942440599689133971649261548482361100836547792013678612138483748379818354523171627528847045878248038771431005068969511245179247485644722369060107209838768164185632387202345735984052830395637401374052778435119701025326980377404029453676594313542134237095865240206789941621891625681684462586943149913524844302815892979230248862654936637646688221486305621897114562198152583688769783446144238731614237722085019627813807363264640329860447697138553881029230560283560496163539291550932250721487028360139688968846384813798197064913592169152654608370951448752423042651023960627912495435825334331616289658277371555640109309997883646743377842034768728144613627688579224634610687753626482062383754915172096639937680669652448777710580162972481783796666254003635875022288455336247015344401896517313183050963710660768835589074682370027882707788166587410782868239975366437431105855521212806408842887032063729169926892870153812898065280044557307057790227356539762223204807536849102479354429208225700462582275194781830886428154399717260415175395090496452394918696658657845566198788065328389334825811068818691444667816723336043480041594963233956139190796565235974992852057825300409056369403643899951575089215306173222200117481211575031144331982768957939881819494232362190263455709860669565618862291060782974317369657419022488894692474834829922984892637732281162293738251845227800636861401542988440950176708743285016177234563129452143599332203095724502806238067141623783707211529440810778826947713434870943142227380389155462254691456121887711031457724760014293999825415687067328406524686373342504117793030021099844434822621505032626072082874339186329527236582117590914080767920105378857356200103706269734499447709989066653017757212668078790884281906357323180081973927680564255837376213234759139492219399928091394041147113276826966656070309832219323089750722022256247033097378434029275767746123310492831172759148725710744032354582546493380513572416013094694553618658722699800464737828144985441977582575800047890972548168448083848639519231750259769770087962817082569026088629790087871653636463203270225591769736876957025101752691262120726413861003463831627516491783016882632291669586464492009451050480900106875670314044925655325614921621338899564258214910835566045218864148771895507624104435484380543786236471138346462065407546111327466279312784433452136381487259741876385676964623493612586773045933011219476012113360267384772386870608250955906325739671257493985344070394251859758953536636077557414257233274250821444530730104918230301099196497004286392726876675018746820510096119079479947859388182266608638166683325689918207729486140786777760257663067354242015890151734537681707912444239582549391033651911586314273298794853908539170347611953731713766778418480694306337868753810532243597401803593136504330963573226559599094750594671840584721860178596974973873267734627774849511092136995263041691646734228974246154161771778315216631692383229734048041058982354482013330609110237225263987573826040286441228359854488948951035010997630510551686181316613084026212640117056354659910647916328314313219717370650797077429914567578538947848497427634891545930397674676527644300751712347019149787840319425341786875590670061962059336408026454438138848058308327509393516648158306655154515557242055209368200096496488419436200878270907031993511672801114330303173497450195312505929871707777332429768045111978320090148909958759531803732784414021413232584841030188860557273907066655735271271693848690468041214219214216606399033175651335040870110713109236646344370975606464365075571266945544191032372507786547668040963167850634659055614531384726716975781840437131795056431932763544044732598412142488107661646690134889305190362908169269746174921796928392357337084695675632850571542754143116008026232560184408947327600508058946002811836214973517144323107428429752168146678535946893423823563579551250655850661674616524482694031403416808785580279476887189439371441419524590149777181286714270116429648694015289163771738593606249458797481227622975245413623195453410030582481304638873443463375164821706847201820546760464649575166351026169137008508984464099296119347686863236329385828724838785079558449451463000575377742004908250080805359132087096404766460368953258009102079792640858663011095889470400694736411964621445613223631605753753665005567578163661514699754677879853205988987436210559009430864218330043877949774314568030583065443376662397183508724687239232129931110616483674610734907257538384538549567613764152339145486665788277621968279416497453091703112324550359230306486518013877807921479231849391320750480092804972682433085600712935322085867655489369833056790395057987572630319486851427890043698379053076246698892514102799037642929392154539024077387511462183038328097178584767172925078625911206513386189109368818830987000925877751383926075271037791813164609125193905448752075405122081322985393095596170814957435590856545642522461854400207615760597340807219798036150797969510547367113098401434233408248442935461158653705950451737637973425361371878974767190423192548900363876069143313391926572468556867231816284612457324919718682347297236480541687699359278308042170980240426731634388577519949953137499554356126483353889086304607244520710380992931329338334623808895861922216455237993577746673172430372571213237401629849759077534303205850750115923379552066975814471301670945323678892506840776273073991192577554979159554358371378399430888917159528994190891281279231973924941367587947511003072654967025674551243663760893830163649484405396437491640423828855400436972721277056388777214933499725927806242549837071253946887795580603258264558873349202652993629124087661301252667985780613666142042033923809604790545292491287670460555327165210068042450791543864254416634711849105247338855209964082936810358116451122953245822999662526941172239503381183076514996525474313747740108898858533215053748194152433175376818352708247432677126665897220111057187818229515628168939404029497742348324710450777920305882240284686719539451867124628805353548170513048861145968684760653193370736021450757288241102134077942529186251083038087775035291999403746213982168649662577681361962956492152589651313962734888771557059075496562466549514133571591637022199753309064511802101955197415532351541616234324865418777468619655053508864635198833344746877706604639941677229579429287135532905929805324834365405106954986562540074488135881305194218702609258364652334555235253820868630431255816108737425603037701100679787182100785002723547234379746615528194028934194107960168878073361620768236468624738791631044904657861206097321539550318260456839216981028504928493198324918736241531687540052208003195291930110504183909174018336342789032393952902013238594786832828498397202443569126689750180275450905537984484976038464711107111059102674234271285380312150652321133859443434186226306551824273579910388436371753462614418076771022076405068837683291512147295453243033577154609471061349784416716137469508947313132112568656734578821082957824166066333483344321102600553025329860499947235939217974249643755566007595465924871447201225975352912969187858018322232614164563385482156656841188921449432917735568797965058522630274056783202968618202445508576543681706833421478001619026214764361573399238069762408935549633900856732553810904494760157863235437091957206472456588492278825859684641426758440262109044829507176603128493595098030447190132060608055069551982112216851848263371035286047055486885236512746194980018442210863690551453604206013504009898100761596974667002342950373858756908576236119725574083725857115703430805268890134861538208458355439896097108916723086989945991251261116231359057182460630668573497392554630198642350137635265316975268764643877828026274187912402600842739771778190428530248691657901013339010115234448322571503553677640486303309340434932431505389483543104319420897895798605929581565839252296907813598248627643275039997545092021352536227381677155800329850837325026447105312571192736020605116017855781034793419016553516633570731113542546326659834611449932261853024482268603658070205822976188937873798444821647473881320666377720123175563721333190307762345369970338526624112867099992458018448128194277748464828480198243151452082666643438596998082128485111814020006333005339719138579188181891620509496980653788580037544447928091919750516054644451109525295617421860408437325925705948662455105375745545718226379114222449368693247155915100119820500133198427505174946188244102479579992829418985579086597523571185908218572387626425919816109215128155996928142888423537354462301925996320864265779452845702095626019866009912582034899854977055806251068091343377546339279715959269997957873768036717888993131163677090357921301827956106745303712077855421236201392692028634510021341314621785575315253007882824244636440650789011375400312476920479650352843065325200406612015360761911047238534412524229965443998488254896493625349473005382690111762030322566736162327731393973669738233655813785413075270305821473026740153985960902258925727031791497737568815824321968807629965471804707560348796327607675431986452628544295009680265848079166625479486954581879144710339983033823996230985577530006625107103014444514646299132367410796251565927589733569051211786104925402120193592861910405931749905932979016047886440720867041886278299155750976992059285174707592390382463790859092781956982583998606231587760935333689951297710761909549525562281311194245048409211604607056774788356022680201414320785978785026794652040844021436706309279613657613682300550789141536096204751235116344900030304790009061709603961939995183100239527447859025085871045400017215785191888817970944647527531870350672136635006289409482551240960795432881168898024043461873053727107719138917980325592657743987239548974069290721761108069741077021393471695701520446670284769475093003936098808180895802125751604412297005532138657076709512543455545001670258649203884428905393106788187887902341937854328346525248655746914631054188507748575959346880686666759395094382950716857272769795089816468928387729923009494766461041057634653074858223457108414119245740635937600919418395689831783518804738654351115617677125914917619591811772751847700660880685725321400509213543266237903521358567264939529536970777904865149308300019856973458379179484285213309838219748853535111713487445349196686404221517526930215989840382970739808503907746683746315696385918264737943839100092349410261047514728763789942499337832906607371938145535682469878683743660028188600862292422370889614185094691366456316258928594318495014664210042942197050138532241016539268661514201696423419825719810615749661257164849638655609271965515634970051523720194626195871983015160625624097933112554465156395088924158771385477364424741176037334626031540967028075946395467185346974033987734424092247085989103409273208642145718033783856865689075273963596348945318158308055624227853819149674556803587396635711381435651851744763062998066361049610280958702765894223869619371998871797485664423066631876164468068417919325070947720198439275218606759619841742627056092610448355932735759752822435512200694588030181201462100390550093550577993850798476590599160467720532763348959561104368875325072243533419137603675731512139417041827797338883585076331578564103116375617765289854890066426596730684899274607802507153410789558494148779779020982295821120783812286448667150022484782650870958519163946188231702595579308636531180203641038808528975722881787613369508225704133246008004652266630707120818455297621911010177851519560989064644541386064772499418936633221728073775374022377363326846454075190891706484038037891065292813411813733335523252252571809492844542864171110459856537691027890949194023705957422655097558486137650353478564841515957465901241526113425991191527188877424952956946476581929413787705988076551640185875416454410900738232290604410815859195780552037389897908205870476289334059029377828727923537697532821906928138412464409403354030748393894891206297128081695977466681480364353176643597874228146926058110954425464330769119457369682853617047269522182429730768897651448428580679246227400816325877525863296815318908149351118242901336520651701938270907034109990890789220587925072083940821767824948872304505659722597203878464703016056785382610578244135234698586563991129659741462502619569713849363929851163033592188619825376506201655988004387702026253713730386318944755222027774175366998831625690487665722801755267718286435398624510680095915418361534660666856455089856306618562226491663228276587770791558367447843445788367797036748585448611914316188133863424736372758811886501909496965327284042249773712315731932456658387321243999438589131735126911070149891536069527387638357504838709393723884360292024764727000050928278680020715428179420470133762804292890085310049852077872161447756679260784034444007089749234716897109190294220742778217991985573602746631158893477158360002571994408581428391564395113138647841193029184788944465347705156622310529465054807504432202743322782516727104923585561761228826690854289673844510250638431436311669886814229402416200161998466388668220814670196856013784498910571372387705179723708260589218315812942833980136994085955552098547029681042614303945778463951700991325533669450657716070347470267317763770808476290852778443471628995703818340263251102194733202746111275876067626518021897689328495393213097316701087380864537347700207289353311041453091508793205343983621605460136326433748646132507505179579509221974775416298226834064773715006644171447542844131209269237289832422788433843230307331257966333516871027201170219540891653009635881046903195092025765539312767930649400687919656652396473633435266047792255569375065003479944923387482442726725322755542052419693136574383821725031127395576466982190234449130830089326197609471904215354006059204620348598841026044601100174995818269315810070283880371655753818625852675115186915503210867586079945564845553874219268224008254896062421657919850425050556351201634799343121438832485168386203826655571736824442572018208412153524775502103452814494446453326105374363792744679596248169209649978003262436729405839000489775024905259907550687017416661471278599927685819173119664609919125647874113986835745379025867954939142610807503718710007164115083605311011608795111535679423094026957299764634370583320538123719593102213265727516037353872580282632691879869748848232000704742005984670097186387704263716445634509441623697276308073062200254134992698914747116691525812962025766198178490088313263646571976067491759421416666246747529469790566882443361504121470513233151014321199132043148686067155196293988380327047275277538466036649172832766329201122084694482530067276764980387710195956768543763548785163499130165107558834948182459247259504860011493008555529113469303694442348401135007781594059492788831152638435895261202000158588539431570734579111227516329910127066837848261572358881887256991913982140006628856746554472970596457521064932661930154057641111306879779254842052896173502674409327062949146249525800711980759390955524468652249201841939197125876148171988775402003110292173354927222715009277384712856431021368950641819752778262704961909445719905022594596221521776402925710170129332662007149771994199712547655317035605161948878342434559048452182832051651616932807398195154526515550964783103948215272262470542382965415400046168481013244287334053122912344932608892359907445510545279732755660400365323560372313786401421287524344157276496471810191088536183962131173907433661423467894969310456965494840471599731488768282246565930358776941364121393285479872214859964921634689492193975368992242688838321988801549646153468553194608184773245728215849848302264656458031429845123552343039533981527198189098285592429161870435625180988669994421124778842252903916384550942553507511340562854396440958955308462138472401558398110826367810406798189338005130553764913396008154792352236942964053816165011240605097365430865656229848749538454801566043749746788743485965870550289324771167771111644266788771836929681163568602040048145279587202492785678551995672533695034224909022626655805127990122029030640354130581149857658206782851884919699709957965483058297191490953085511103841869991785577372610694505978677611120934306716979241944257523655873763666322318628997864725361485751576735703428930456250963221532181687031397711249437949725632785095047177877442315849869268008350083370972408499136622261006014156849026194613052688445351880348088758485167616919348347388979346319361883307910599462138343296363440277697292359531136998422938554840981558794054706513410827897675268581360141488316745648734757273322953194545369543346652395985449795552019217407122558899189421096518617551107223647483322382576784108449414510919080451234803639521663319282656302116734706611317268451323268353375059219289211016182266709752261178872915022782718248050706847123360350152421053014356639067623244442406145395977661136776032512620513468707816454556265679168432714306158760486619913230541919041668210719412637804826677514615218167112593086593810128020052210717729363559547662237121144977190060108464272796232991617623358776150925063158621955939421203152574476760644452718354563408761876295656871242788135374572047739446337477312827419644255798823011301628392126036642148953580912583280865984371718232504846512731281392643771706075187299882023927245713918668927877010158002390186593337968607217423162672110236259345333437594398102959087516771909972369976556674365618355349276020710537848801648539825736400897301566046417126207820558757150122929260501077676065845928732286558357840677598296044026334789888223728663780588134369766423361756842408106783678671640862931201098654959324099169496747804170625466020898513046843524424597367249114030462030814313129778236938917497356387469817758629881735820243044969909705098326637278954646434548689569834874021595459435297022952789474546024747271938888592325078176941554642926821909782075038055631395505699798881430310272149734102806058167360026973944714532759901309637885683398939018168351966385426525991898564825773439946916695887997636614627862235597484915683011746634533154122307055947077198876830787795795592564064988792988417036002851540451420224872860165297116374720914114338416772120125305684329129853863390023189415605183525410105160209062046868180856100933145052374684855669045541598306697220348034616662853654906489576331496827436129034931427986416834080470384906420907101524583711410968893350853497693417652449505434445512582944910857830946166034089081525933971529515570078389136425506493292514716892365499608039086169292268918483270230524630379821760103081417291163869381207755277039114344319063063665406342352094429497781730518350908976560665084584318938040070139469649839126127095252640742898800440905144326247694957434838562900522131548574861211493400296273158848084092782896561322839669691537952072651791747669904910530211976701092959377094795534343315296789805362621403938125521454730296540534004813230556122799535888700463465512856696978732462358245943936845808959050612213183059634884249081782692724943309317877612015842740007258307200626700672039422193958404044065162159874431776143236350161085303051130970549753503739955940012062377286739884945982871934777956808452814637767744811482826077250318356642949810119970374336092240104902029635914943179010858285370856252812178179781862442299419763580232046365963823775943139889177256249886567037495808511051600302394345658712943074990698499199554060601343847800130975943441641786084658846676336822713674725296530669176425659327308264985753749842182650471811948883311208085648174029516610673710179560313031745028916344010305996972895780373451075882325181102411758766562871415953523330872761999897878248199536222550663142287517205883066908042621210048450859244110011106828682434074400050372189114951057928842678041463157636424720225844096543501678722250027290875782236762991742231898778063199728779402025586925619490150604625133514565682062059174989819067630921950326221228873221269227282911624061232768540875720592520386548702303140374631889373645146026637049313539303265372159205139702345527069196563784896861787763998041583673246899662121768117559460288201722378727709202595788530345124683860249062336816898565227621228795125304778653737807627162480660425599285411437127851693032241976942187646526316007926982288493063664834718165253210099250409755536816834161972733187834926806929557416789567341818632150010664507121270742999584837526811715941659361743097605682874671047161723838895721775591681846374082021829697082872812485937433576196848512663579621639698047142555900793065374725593492131590501325418246321971438725695373793093807076855192123690013434676442693842087912296656131563485802861620019044489885025758273004589869797951123979372160289517029137600285990138302171877530449246259025628543019759433005901289673595662135491918939572365963935468647005942530606346391127817808770187218114751300315918049836944068035056623011570581840346428903828862635696543062379032763126937926118776994923452217432902992514376339356576060594002321772408455683645762784975253214458334506341120168783187010622094849940797024108584591059362830217940139405950226255910780825584178179582758507200309008555003308827552828757759879414674833580035737667280172288384978369819155183012129761162455224872350835117640089492405564365494496479803357516832200336479706944982209933201274241723010198753337492538406691924719457470612088121680558170076711783781056499932032277952968572404150935405422855031635947796321240284909291541633849126023003862408164762619288274468390632235609823244042784111874104123565418469209948639176520384368037127999789967640947903936477946192041233863722810640536308202245790696434202440360883275788495547446007762671702385959202851520489244372939637805108270027152238982546394035029338763534435540764248446214498476312698721850076489895724320441061109821218664482903260426681697136376577619024598109824416116701715257396671415082342882403317510124269371880915334307750963973873494170894783614560746307139175331024533622781980247521455281740716761683966443321412588295946214557979221090018546545340713335873892762724487276563023820415220895297322727130446322188040761407723359127060706533533962600842194872104080091335631806178495440439039305754583357795210181749248813106704157438482771552171662806820879746672597141076666995027284343165820388767093011693683459174711588888286002929952184081625913558534277955802241861764475091995995544820263867121546388560129946109151873470887379252852763532151617558758929780958487731900985435341393583902466937217285376102172279315843805867127851956708168910699154349810186334945847716586698008373181409238564438613408777391884554799752744144747030452721611029736756922765892657769378657323383809421669961804739951546990564233843279629595061952122983835325636193776051152562895482491147429097309138708048828888335162408233743573068356246935558596410446348823319906124218261337111522910061693405241324649242951852548619990796836508919516241220581050984954256306736286805242905848214530551748174041287002345097670480853381830404559114173858583907632551331262622765454816446551108534212275720114889611140618489666033981462810022570058967032982813692926724309089977953688379304365364223552291063679670134533413928315961207658920622077484965156770986249606612881745122899601606147942543933766140497155706336548327283381742455265185968085257539614242889222315783862577462528217233321703384260605738777294388801176496425856372948408294868441071044223684783116179786687338255280298632245035513415771204059740377477324889550633905474517606454855445556569520434235591648696686242424108954096941274691310120613876450747924289405311690818155571828301537122477644838090741060099019093562243295797137829890588170854156166412287004807146812599054071511137507168128643109576247626423321282585895280092400693095414142036665955272521292645969457800694740606130434436712000115928481965223250403260636558289961847509683403782862890030846824607659195126712579764914552872688533181564060673110317898330981468924124042370399409794036862440015374135030677241239362513579724522754718014396957039421862904522796592728182583563719593977078512254155788215347071583444331515786925199475247072731272251426977328123375271201961686301482950426898083140782225850620065247302096083064498644428846940403361544981546652775481310659797697340851520339874422124359039932797108878591415886302648784307929547543635945824026893445533026506785463865147506845504187867028889359512460454585293492699882728937905712882806692735206408682849772606938034342381137181453537663950477906321413373637683590475813380056246419884584330025556943291479849584802739097516869747580549191915464382233969229467962830057047356235736775214409005012096816562762944780781744337069887768186753298007704760274489834800110075651718675372738112717037291340333680726512035551006256994840193566328762475389021563663269494205801541539446482762058274098857132049388543386573438327774691045425544941726733736402445514805172857939394114034844061103045009315433090179002384153373817847782653332851175424029673568569766715025841055905327983796488331311434107131358239895804357189283336144433827084766649676197845711362491760790348661544868407730463749202945593801834683281931584268406698950987384919524469648205802849558885975603763216282592102242811313333816676666138621233041486577448269613909967994612643294229139823913212526569097842491799653864747863416574317339901847105819741253903459313161102765504876282582840545993618139657536601609647696048799588497191867038754723344391595617605359802632773469583302255552983144271869901927892255965554806862392656005122209667277867903145057596728411912474333431375241554641328151782500167919788453188145928885746647055037207688152269899573475469231838280137637369595415995732420967255521097531927931093424556636483993434355908974358271152789413451038322013795042854856449904342094277525935656487630754110154369734841860548361047473822286791573436573883369495169657141861266461982112726292703289446103412261888528254661577704291728166119339814516371873399632759962071025699377565149914530269692696762004625633677481831894922747251079783586661547339149742138644745414884660061237045403058539775430652861012177963184967485433413816531242652462369331924544598789260798095155638283806875240564995347368595508939152849484333859315092730540147203798254234126995991336583412528781643835279547131141837211258921132256759831271498976502714198990670032544992555592764900980156904429309765627441739763195594714780881603981581886739239550548267146406715086251817470299630315633353988924460515376169947357501304157971955320762143678267316939023721597049921931844508315018233727594345249247749711577363379999788724846994916950358314660470908178474032431902786206457485674490009688293113024400977759195899135892472563552695427969582266529028496495764915450953759557645464821067548537763756849660008557757972815816037539241050038646683127177511035038389743383685441418039586419712801794424483094067314558797220997833791756496605782017281432506872311768303588981348131025839811120129862494959707361395343177266515323971362326502663613807709544684707217893142543218400278044872911657841273328794600913317408327268573953866947204931028447601072407872175954821452213169561921898781221036318307405044931135428919613136030912363198203311570549039688031105243549930330829310349603856053737647463777913835930098450313118492833037379691430209263730705489602175566986894851720184685328541263222818942836539986047871190930677496157726583274938390736312345924685957713355535899590796996403828120202635893046174666482305783774317518617181258802170271403388993997413257236804071506674845496563789000459880509081980726589948739810955733672981961594350351931467738036373530893665244188846450120081848099041155796038749300642640180308874833769903684581665279831868502080177668391232394183680827250577472247981236043102220975534514866574844839193138240631970530662141964064662841354150879476534154387999894443321933368857144503737725834982422717280245701268971489271656723024091941579828911869199817068512261849386822066352174353884764007846882555548551368258129190040610015372893861898877797076269368758142907720575598234580675371121167984614982022062002245865101401003386719192865482175363906874449876512372083169788531859779556144042215406550655402406570568572115272716166595381969441215217770901526864123445077944782444828593463756838795281683151645497189845372635090703027823015842045162865292993676741541490945707593020455219000744206899381221509655295472032946289333221593256909970970472905524413848061739099442878715257936657243367201740029548428369883493615544423150544025585312791059413185351761200145391785235042179207984260074901879987351571131463035804173243703115159878243332083868164848640710692642608473254435531911714463364430697910403833612473444865121033734644498366463881019307010373271377353186765872783744169078633619750363656393359919454811374320667190797529566290540967098363955312418569491220934687055521633536364124094227296310699614599782100639113400835098880984564357764007940333533361790555130985758537274612259099612173231315116541482152195361180233549486522119967625826345708295771471987824226810868459084296552880474758639725354256010776230566268411967796198047501954082371275650719499026197005176027750331788589926696754639440059157682940836181302863976370468228958174044238815593419698532015202220530119961369320805894071270422687753073966943381705625621396695521139845941707197757186197463606037178961974789105512542564695840395100709805194325246907453021782107711226535865498283954628890230933908161801653056642674274180049666799478625797685314800823780829283302093115956070901068212361748059623156781696529588708039993350726645029744448611206467841053450064699472077878444770489138620917808378198769577861487481135891034663230133346344729940861834188697365536107228335669839388459318557428750245824895598126223069518894244127600254458638416512182264362073729637474034600590097315655412959130912448971552508930050571309124017329072494372557677635146998204278696978559674114720188383074286133884072842565726330436598987736912458342941663296682072360049152065965058457568572652739593209215598994391429689034920111377164922185622686438920198420510993401674158369463217890689165663668075249427660690376387810209918079432286391681286858865908858350573696685335822991118001194263745389163366063387605718176089737144386458361627956120123953750872861175120369041740564459113284872805248627400149213760768132734323287355746935063373123429772158870299593314884661149699742006332869178881426204919756831080214774272478763697345668399240040203677294158701395320493196795948689117341244389435608981165374102454206655999378293573865398698010264531429779044291563594459476671975923433362454960089983077564279013287749339646739377263065411599332010795036095996068820916683145496383608847079305931182225537331720272819908613668193943854179696864276739172229915010600994171100309769782418645438162378528829241363151866116228053524099414917958834902800534197159087150279388909920631297099923980765511797148203756266353563968805071118782193693028969264256527058170143000019189788008575449396555893716788965315598880190247398268254238049950875811183350041787395880676225002828111101460243204557974782572435203476661952743799987733925950101115148058193870567023949816700078123926903379060056703244293351762809109516614821585027882575824357935907370800950923174899876592018549629909238644606985885812368266387752203090556481930471314016482073439444227871215108673458971276766995814681758535950250702683138177921682011916412614776518121634831625336034925645003525779676861069129360293913280860304555173444439753011763932738353294461158003149161247312426754796808500625976636585750555775752853411891898223860577281023514086512998439824344659349009894106886917596784049636284155856809378110375607849482386392709488683973928227884973750747102322679036048865219043824628486855320101622969758918112808985303680897114010937923826854333463328973214307107944660044232622514517171997041414726255927049944026745939309581250017015759323340281809540855449966378059679260816146023568216249009888777761104433515199264184115334734094820507336194099685147612310270966917266742520996330546520593304777730247309262438761632465884043505400309728965053057394936353394773342603746684408537055450276045026867283022006267427238508976206251547447479146331923692454085686054217355866503775412197315849806543914823184400966736079910827490419435387841082167477463823372183747015961369747175974885530303847529882101008861215393986173802225922104195330065068485200235178659993258567185923396182414627280292277955926301807602584227207334500231910468121922890275371006528122772294810039741206015976989176936085782890005543797750671602065304290711284633882087429064809377532361077107689149277286709987459607912576837551811131537485107404402249584334294139330621891773975066876516559595109120441965311677439178273648958675595824162215253686406195493524006850859872530553437076008983410775430033634626833514835230659130279425386658086595479691842442230363553995583637304700747236524502914103378122561823607223322063628594339053960951862700354561969321504827653464693605674368823452143471859950159444284409873107690508888442824193326630845276423670456998311065725447191310219533166799044567224653883166008958429049396040592884530116123883731875543317074288684952767523501349911242959773852929696820921908935541362340947179623840093666929107908293766566392242132352753020545188556011427660985254920504071202411982384644073617028770904100595591716191322380627557804059231278374975570325213074679896379210519255914587317041810925748765053790115663791286008526148762103066987584001405090656118377472189095909457618692828102610933453490894927055529485907461071160518283371402315306651055035612263192709849325260425082123261924989670062164482399311519883785274564185317100910440040457569265202934099535553403924301216128388722537594874092685241353456017864293093777338052813237751224456587497555071540232115790835308568005584677965155021770733135179786589830547740167566750545102151684563739689505510523689876844162071205097549940938419585298872685832956957107700308643414921030362498625764116218375624551502095758792067620750600314394350500454546019613358368233104204551049151656320345844420619128813501526403083981560404972237338005298511526497577658968877204263090598559899155818663400117367691442929646592345651249532493539834296479200935524116179371766232774054796879957879658821712672484235570980532517605975439489088681603204049831550986143875772007772964644176259477555712993764633537505351483876441434411042547955331555153538434804410407706797909682094739019060187634554542923482405724016834258816088463820024095639471663368883599343965574966316606061071637365259420783626298421137982288383564365177067693000942705056935358520679598833680802956967100713477831605454475840615819906059239838305334370133698950408368141267983480483774718782087846392244864039120618992846088443266923631745861328380762479256094908165321392531793305476475987695704561085717297828725734555681835028297317738094664806033917083396494561744878793934041185733202071843386561758453678039916274904261153411224465536214046278249891152452449467779523474585171989947035721279193384166292346596725069978068538588571625536190453371968240606250925339614220511901916289189792597347124393289280072758693451550751198848100830994433013416445842949258483879010401433988840698316753278910090891502426900312771334271327663632946111343821934340405614712742121269494086149742013148361466020217840885344526974788526094115442477741385412063772251296839029006263174591136298646468421921310291527830160421158294818570057667763886163959978171637794381274814119705125679827715372075050209067645591529083055073966423052450149846626021626986548297506564541987806311105867603972653599385739316308538053817998251608923371813662085327159659772829191366682594588153445124110765603136941729093719947443411196444755555761973817132111605375847511481063677122585400433253622489692816997469764499086158841044663519038555806773583401124522122195686189086366695590850632919390227308414430383389816170724330617728428502485600752563757234085846123584923610180890270978535717706406339705998499824359358777394017357630770134288521356373653712475623604632996530015345729541654575913458580380715475467819054248014845582198763124081962288623895706905860292388994788468468076109836349666100892688612586533073973738695280252268991368982420302712735567876284777673782043456543163934669962531100765554049638890490511805450941749545990604545791656787017477411241334143205992790372890879560519558283644903213746736974484450950615866004378565902958363854731135438243636190856434610849432618966541580849572770188215710925947242370005380056704782461187931762315623761223390548943783128656776093090809167718441407882604360642748399639522944498442045089204088872681357311449207226265363585921214147851239300802888124391962567111350888730035409126455045352147094936920860144583756534619405794879511549449590259567447250256913403139872877670472581604351820309828890666836997048654604551922784079402588992114234985245728741726447796306217326122482563640582954825998261267200830725562403283719407288836468661791454399421077967624749935777945990988098044470313697510340105282474578848256120234246996363747791507867398008648714214184664989913590583948392424278981592997104077108492472742310606294404461298569149735274465765592900015976079253674014616462022244615961572937557632646228511207298220222005997476911115114154446778838052805597160446129879403388082332643405832799885988126585164560460903798531148722532733070823526987589645761522157592574810296740594024751977828961022946706608420664757615148425806983473096404495121943448519583768188783995541344899273142214924766872141872620613193614436101680273655201509905465199669910514436485655702513905706593340930865170266638503791832297155137604625682842546016870722943898327888734267063493685795653369905428797590652712264524422364479412373951356705532034373794976805372837931422098573988560721552882261094768787058766152097997525509643643146969779028651084338120600444822345692614592175856546405185049028201327242363622247989805833402475528627063542464683414585104173211016770957652768936298250537467700166212801154688945489811784376004650092667672685843204306659271147702760289431363621425851505740709285756745582737408800854142040832539059861858909348638466131665894805393471268488822299300441043556265584954810115141199547524587265131107939334818487015287968076275859485161634203962718783695512757064399359985420486765171142446939133182636424945016166928837639547832242376685874856727953655097019665941203880996264383599304795470365462559087452577529299047943166298539436729941446767320726081665187426981924836582422840217665771222587111902778271064329394390029272786356052783142726108848088574592131880085271820852542033731719436612344395300256225408046612467776414605575442364019409167851241788523772068941114841289979202709340598590621757043033429398525813138025503999195608907680435041066902624655621543438788963149110375443959174428876362043889701841021719597210403749242069819483575455666181304321893810028247337439047286714829663508721129983428840303144887742319517636345998185202384752472480142554519892038023161956159422949010676738920107734579405554885402552954223663679378637342219796292453282533935635506738271187977540003599591854216522050241299717757980093491829596118891741116734975001552915161778897238775960178123037107266524064958652455485959374246639072986966259120627048764332951488441947465848652908379226762787523206385552901028991988182053556907873671130278865114534470199029069997733927783279453096187632178490425680752151510619770737196676460258738797522353534400093183102943701690719405961683020711412002295147879186438240516316832419963222362248461499118096400019540359226923701124182210517968629750549866316963482106823089287388869109031883863622320450642681814979180534062809696714507189712197898352730457855133045548491306175477258937506763186003744943380892338084475833307930744854784599869548875259266700532334877972732709541203413563366504238477998593159453180874445898889665604310137175550331608128264381524416570487463560709483478299906254287811098716333309579186219582967723423704773586559752601587857672898866803405119903938175493090323932841203213515172166383979667013932050565677143851770211198374244824602864899605719214130169059031408711148910423587056148027201639116832407537778850631710160028980800248140156829417701999025727111495810607451086854155172298633238392359466439912457747626142240592875360544437236688008369336058307668459487572829536781382164360251504487347863044170470512229333385978142302660182455587740118353609045255806786317502650883442782944014521457502179929217253836859571769844210924363678655408543668755484124716735371447545350108216681413220342130076055343373915804367446246500358545918435662098031294032388462330569651168579809192105280683146496654823281173577968192719917043819884801178970359250930576884118601642906908856125617211780467290288136997010890773922993346803717198022316813397445189804240206861559287873819036045175731259178135599326873956530513772691109758606304415244281945664098479318235811550566997535762849504342657735071229077021393024679581856808311532315292321696006820098693039984326320928001299563566048085617274530829834099961771405026657286023603125388530300099781598359682720056667555784047104691134317083901559828241681792402837916783555550903899935072471463516629257369784598842414241824743254074537454493070895921914027731752905328317126222851184734940188113750605014404982671320463613496528964788487901525552145448271027645081119444148680932536731527824166848122508475868760518559963374763213499670769809664561246729008051419197277002672338262895085489966674313274989179144934844659004756558218966477304053591637156705110481329271415456294187364947814025594937732644761173267219227867415457800666793543031236664882981890113913490457642330083975108817926773609746840475396790585449859842510041962246538227471275983695429504774054514147087039498423465060743640177071110392627542120412243732606237279668689464731209574093199792136489984169965739958168761546923798187271019548945968283418684025243445965066414686463101624814595831416862930988732245245769451649645871293944223411651401839560270593753860994587601864617355275837970658779545716712690234181733416762311288575373798065326612329406005343718646410850286359641929339439487792378693512515848896564559925666049867434655032272564769263455852459763921431975359364603534891307917711858226945837753441111275480276737321820860583196098460829325098639750551930349960146434795468168768725329701363215712463323017330341954682214784633160437103220292512404294926574054070369158982264945780709620119186608501063071523685512843219822216854935751717222298922172808188077940930623440396647027546084536322350262559559977426587127212756262388654744974964851026104610835098704625503454626594144910130464144392206247188937382310420752959297917284482102959084891274223154983381697015106521461947639736782480190098717564625776141577729260183431949357839100426159654440959796191643191852264807058393736438050535455369697590453191114615442414463917310961720737802102670878100261656468952217472764658051738291947890026243328022776351337739590475451283366829718160273433364050155892385777049310641358561557687621067201759601272414160691737892384941981875975220664718364903628828159463980481270281706923891271581758171784393741270930787797421461504938683235500529783178784587837020291946396978419025798368925873662025526722912694286682156182257791780707960968210824305379171484581114578249033553648034403686352485871099114564571282451410160341382706268774272397668638744507783608578215794366266981684362646507534869801316535700167653635849105739988014946334031419944790527763199285056902854583229071957591995832799814244570001170489936215630775247361577412410575415223275240055931616151255989443189859449581136152878770363344413624030161805210461599596200895203484980567641425955260532208403958673000796775675954849658581675512858376995810567384073675554099953266974125602941107077572941698632802004937679724696801926277512894542594876838063443637425789162099314207323614569335293575845610460158652462848483393538373683110725178955770993348745483183151230519390501424630579840946044016483576852266473721440883391212229624965052840483447565811820537155598303047536735818914185553638056287044118557680592300760780741730615086430239186420201714170170620692032989808955918519961324242221983847403275842214630249326084649923033422633085500620505576050386991145819974915110188737600547066185266741258565887672796434367161116249421492307549826717570110849744783141405786775830675262808082780145047862290469956703987774319095424018094896420220506232999468333645935957148022896634249469264774544723739128020527795888454154565182173718382129763546643470143410589210810645307653366980005400443412089260262963810115629373721187126293841478963375637339559043891407082622396634735395456851581200339076092147014505127079463653635457105335251183611525174781256897994141955068491403123299115861887827744234647931045340715091639712203257931833332922878455102815070491060687289522977475508705683606610231436415469702749484242065906240508364563590578343392157685387558849473195055968621044877174375539102144272354628462086469925331250403348680125295926404112798751421775591036024972920075915565171624390575736172803222536317402608362369900124320583636924069377284968546652855375410755645491358282424149350523042298085340808044552854916581146531403872047883401684292707516728270949186128447533555538008465714316935190082974093011287166463397437626558170069123243843133941942947538089413235468004604007646012658020489153952628278436122780116514463625621892113231142760378929789535770827448899701448696010220379140744541051036715154235710140696803799212404751776759509979728397699032178628303878743161110619416889614320269328405020827187661404364497074344049637833573762443583211111225099190641984476283611143401912011812920593779375168922934895628395630849221956126458475748367753207885652196356964205454918645364794447218247095880290980299598417349170584981624299474467903786960187279479453434980630556080425810024702448870067073493591550792292722275168052666226728269946891410064753298936239267933621429037993748718681854168079112226699648078634360252260861536985105440715744752494561717792680734812690239937102197125521005771631800009068875535256886964770144258552168610426150450691728335222583199269149021711869608462045590536869275999422238918227702090877190816276495973332808415406153878970135311531138903545400556972146970541399911877350037818111809649785034267301333747525832428304474295887608929008890879682172833299304030450266807136101220430534380345508682473887910812131162985721883034549599741148154315406779363565148412148338547468194914421687178683268735307544320586570609948604988245022143299180717097955739946561992932976460427541047998882961910435314999426057349220481929038778035931602496664107998896816486296337866117094087046866599502931813460780153071897573040709977184535074705979601904859334455239079494653769463049544309464456720664787868001462988146931318673854264040551814245542319324288180083593116312835716743556655750513592990858075807498736078759135461331807912909236565503123310875903438885590480442726407598780527417428664042247643498552926556726601471009223672217816578012582796734159806073158849769794685795303179792752787580142922170330175212341035563234508452331210462340518125769124882340752273738054396832679887701182613549411865995349120066819414185867956280571084457542853910093442367962608348222257739197520373178579317771928561763092519094403393704260791331162552114435388345381645086711743430126313658871174857490146018607392665281928089565980990149723416108335402641802902104356495585535828385545683176681433857225770548244912591014737681735701159065487171733397949130381990606869869881594521190470294729981072746408611027221867994897583287749031081119332183166849014220718008483894956445301871040523682784461257003278587553609081063005012905385647226783921788523940618751961317384093891730041239100428622660193021298121636174003203140045850678327629035280127613894093528559974745631383543449658434725564668701344278245662281964049690783718295172310917065759218885145705234168013988594383343194181171751505503054362396958367515610398415352410821201674002999566673770827342248833811992642261602296700152421440246420737412146225432840235680605884653684412124587938193126586964948970679178618277203946550657556461323306645098429598477485542146811277050586204815611011698706401712388261285652306083584973314932751201517446035613830274668031490154998854641004840924560644111054493196527259658372850220682853041073482996486474866285162508697885178006480766022273357298364745344294749002429256603019387105501316578087779183502807846846827180813797013910215990289847837953922592576403036166877075965245969910419968609919972150359439898474862725170739808656447008339997190961396892435159807510354437413705544109361758152733210965958485463065709288129388012777597540694524648232864712984884943463717889753633500812617033501324194534648338410444881713663062589042797657625268007264123171219366765827482175185243963056506394295431651268232960602061586119758903243275421944486984747087600212179272896316489077379653759731366242132254920288244124403386650026149613039245739102857675509132919112490188342049153563081599109922653980455303737735419270176806318629431876458281137644967005573413567943564119798967065843388987390799608907689151939618974876117045775319393445432655949017218371379619895932124115881662989126977836418355425201524121942338369167037836284712711007658156590454846388820022450190738788269659824985348103573920729347525065782529263800801310624167748649880607916421379045721286726000432838912378314300032374875346857158068693712437224750180529243865090173579585109581922874691427314950818953381357671220095571187250313723666654721523592923984553833844910805151146366929174454647585262490656171762288844113281159844174984467623214609097181345332008385145327852001768155641587060393927717336315007146444252234742624211186026860937561025993221965980328298927399501698274226155634826468400180031055431006104250058128069257578731414115387307804247760168116839534273981249813146624797993299431624280396389669525125109719861331291505436608543128743217614857325064369791324991004262282536666539635163761237642432807257554183721120625741735269468789134393706708236896637651446292493638204036273671445041826540439396573895869459070694743678347482272678719139963448987844732414619166934167045694150088302274636553910769796700669159214159255679404737409942091611594221100595997943011414341062382772536398524662423467502249956534938120051119783131019583562673024390537333818210310559648615977224784232937604107127954498738521937838678490790489880571206407005397793119675253480606912489804706862055503975662018118330174198018183637435350436386049368923252726186797142191327672210164579516522949530169003127984515723958175133129944836479452676929093826289326426573203599580514869406936547148282492227146502533434815404481281048906884743049412101522817696855978322165355566511044548070800075909788618592580502062363784964175043872432815567223735114654686981433186442715688531924319410423861121434983214930105659816827426907435086289083636436721599913272838053102419372101505891071300153106563959148057424366251681069587170238818928616826494071995300146375793001572474102742499504774596074817540639569551435266910834848091467688352372558413550152277111934492726533019149066990669400593205067460915804361937226413148282956076849276237811092433675241019244815952514247133496356740388825596482864530569795987128742612181011851430827574679370550338326707335934229215223512805088082013847146796593910369975033569326036405030479728923164894513008951543805598978912117370896375416950131216441906137433447819841233224502639414694634599926785613389007551976431020738577271216390723298256693831267558912730373973298881374408300740586489593526535319741213089949057411553231934407385078533565481222714192993983666896525291677444097237137336641217895696098315892249995166481461468322899812629985022816385136604362335991272438075332774182290692207459570030199365389344753714506815529763718479276706478126363986365267304753608860219331775864719439923700272739364742775061510936250889238556508422184689593740033663881981190128355794056811896908680530247297703434159721080866825679751208441929903970671244083174253755644304903927214014109257335290396665545031968572210187286893175596995951873122132970431360632475249549255402438132789728766086072008197673431247952366265806249107048307967121925677229982642975307204297010763529898690183532570870092594688989012292365740169824107963498729768028278528084792775828671588652356663899974653980668743533028173298792592625122436340805469578571690268812776703883678139893622129069829299090331544724046857487825760083639043858464488177758716404375234085160532160646487474466445732256786852312365220117405779584609835881222331539589664392540425760926339663818739370265880023304735027771359149789136069430766308452363861787609071168388272506583970102509809427726802397797649407277748997332442319140733598827773029321264022494587501503870154954379959970868427947650919758222571387765391092431482433940536687280213283149982706004824968285957107762203363808338337921437131467048022757893360618208138618374879395014153259778484180512675066605328743817485132662219235782417720778109301335459383666738313128693661728690939813281650349395239696703369147666386489262218822800875480426725703011994137115059666791704172756524985586328782554647317386164737041384232340350764087048088184514069863806904618685238277792535800473481075931501044762910653088773413808907102034940544369038507644030496469141119111085997170244494991794788703536329393359270323224332988833554828225726165544214380180749456063713088204584258247279370312717833473453792372375481507520780824017742589419943290789744184281501797482395591600745467853539389028994003493638880573238130534294302392134080289280013969543260604775159521521638224764643365262057463729510550566469659294297893668515083536167382958759744048980012728580109755632235441595951240020844276252354765288144274447221635970267349117666793635206477905652330645941639253434917333733699892981541378783992192615727653438685499718490103254987067112590212393700797104694688478450985080287674374445091761570202039226271819193304301315355365737238581037383249908043134756450802274079354748596839074211941525267348216124653516204289916453052691686184724592043503024757804470961841879963976643695247723071706857967906304349042462135230643565439934115851298553188604776178820615953277277794820235294108351094713501418106796261047343069397982572165079895662034624800994361539557299118432985554432173021980180068926639688694323248155046507783282814410654773206949427289795762672602332361702551562054832535203280366421693702125170592759786685232173308781447311601288385735738930662444246562483873977673029637361506933913660702383728807251342101231208249546878648279008412125821403631155084211688628880403401417545855917220389133742038873979023562509638408647672153809098030039174631340454410169182107731818127464936239096010730369158816653732991376412573627788265854185670787388328513517861567636526250923976108165247622359130197781173806936714951602278445199105443100440691693810774998555362252119005081554233687879096414570766833490577715215736047230633057136610376139436056487788916462324163684673753461089448161323152708970030531189056502707156032431000750800696120085894498473743045763430574004037533468664698467626143466662986496188470009945970254648636440148862820864792159351803699220358170932527938533535918830782231965186004745037342510329353064872184630535693228997588688229046004625833668690573949687016162578171289719129949108445771833701183447244239266574451938584163457052886691332954246703903550557955397032110676319768479066821368822883763596822043494619857989854792288466146017583521574634157873181236229229173505774264931192701731444156879519707637121660821341521402002882763486085712048911644376923440026847564391242634089537311379079499586373506519516998488249030294881543833224250515926082082203073676834166249075635081451554694891792946776883929779767445229188295761171982972570737076806346268192715202957412022025360481652900749218093913556056911590630361902206270411777583212189269975221980712200024729278002124271480433428406064604109430108401092476379511248467212832781618503725963571754441951059499094798211808980091761827771489574867631503481177407373989115480803335672185317861551917474228012679185298670085289645116031266821978785543097734366904331993769812098994898339086101157274607441964011619530658426603414597994237021461475103913313182269535551518027836052593079395311106067304885602302396815803141841535871125229145634366593139427810762275934134751763938195640629288712104914311490688175306296505220271480703486486267846571357568290643159087613608250539853371941037206175128196345987388381985474625936220280251623881512035494485637279352022092636102236279704280836174423494888395935499876922732331342297793474130046878829871322600734864031420790796326925915777001988984870450690781813572587140473771041438490780374239866683129924046107631230437707810161641916404429437359071149506004916673146618030381251805740502846246118710947607891672869613176207017202854480026721057059084013914274265584659858737510207082158989917185572892639756489253173709662331013113457730493463313623291370857599022435520779928131220453894011934143686804567820595531986353741358200669900664703945950605577858277652099139149402066663933346052263265181376240955168115963549314658138234287249124362517445912557692217970826055902570553614190715418213765297928332943059195179306736200295397903347030319032384363523087262650632014184949778760667546831170285000621726188390117425450610713397551569897471221091014037410756080764344768927622340531993031513164078622707215635628975638087255631509499316149417836198192373052402411280144570463687408161888629414297615936142141689377648336417090863306414588931865254666190111500260718949967653414289938820414380324962264748081832847216466177468026791135397754340613875200341030401589871907482160726353852670894730084209949113553418945228067506082758949040056815523086549905009323378010265954368483542825825498823370361997522585772743147210669188972901118350919205437545327145119577708789979789498675967628318741412390648094395066584858218332056074384919219205111494397278909091525854242074141404904922158307566514558946593783383935970733012145296921690873404387172428691627320817589783196332947953893673763202129912359512350689196334719021450940580579722656894493450553851449921822308121388315096869589775434596176485172821968754873894824929664247426054425294699979259721093753668969748703553015960689283594308973649790022584393198263684452377010855290005099526186092838700466830468047816665960434947372942241945207490671923226564589792415611908488450704477217502045789856785193271291736206658143498625145904385411615951430228921970198552996429348375294380910214989069976818376274739128336027232352499881920463206316503386462427964439627188418425168686354504891228381797470972868251831557463186851528842586878174893038540785735343945193634248194541325415899908620456019596544677948892619057441329516362907566722816713770494274960368424094376938131928000804656394410071007183113589368659422070717635760199951975862737317662918592527430208440476530780937017372552504002741032317451070580529274507487343688703775717189033425476834064867335482983419092846559428990038089382140652155807877080970710753735626414518582321837861597204995026032256425166424751676671082128323636520775780613700797535458659404983758826657899062321762974078187605781731446024974479878589205996165812847764459228206947381313585781650689199829797597531063681996835931141370106630302682832856333833292381777795351961652014680666223286365200806136918333776379636042470705019170947156844120884782879264050085617441339155834232311387822676434120866286426189568662588565098426530229453163019889295383576032889761819991118187288391914032426222650965837537874123640780126551614945108633052294260604015935765878457179808519602570849230937286524070032868576777097489459375406253733789327164014673706503513963974663410773266734746172272446410488219782194850885508621138819725146290842632024912331268554044058549243765089516330586298026070732062689663652060331445355586745052297697953745261304802965297835918162329402741594108691528142417541938381869202926996194274093588544149418560206927816731340692641717874902637450699461043614466082728295260543098112920212633907681572186536848817196175198406303854964313611663054323886913647148989722333133329449746899164063491186400558898900748626702169340486928935424730310934338012985532768487025139167120971283249405626808313534023244237429528531052172542267681839369719673239526417242307915606157957038967361064980070187141043655361308128170808064405207185160904995437694062792647442746909726426216091843936798345652921451642101078151131312040317813297872911830869117719401415082803470672595985385881036982377958828500968492251127671607382537325507029434652154762905157283029525693999386345636608952364281983091924354692615628870464647129061061984497185843759967335443438073922234052092985078608160539905384631498050709539027906421722857094719258859294174309476305058825543954442282919321607711554510459205574652188389178291220130012704762394989965769212145164691181080537143547813043267316846199183573334174211028675285659441086960758634133938622324863877469984702609133788064709106502285760625945521209638813768462348628328484037464914700166083059304993695951221913400676048077768665866789780105078717223324842683653880189060653705714065366922477941940365815172936314009901160678552644671411057188867574781753903724982532491046619542844534173148252168973917266129837490498488126818186763367711530297005950321636991298126972512557522168430260305533217436361590365830150321892131927799145775737384282753673191300450034123169283624617101329739851449806569734862391235899300326032077835569880434510416282544888651449626387079602149829014568032271896634427730456897468812114734158502874327466694525219716252409815605692571273042184540749540503417551543817640702493386759658895747336932203212955820713061155528673944894223781261596030868794638236002910841758040270486339139016710186908489037983243979991909398027146100640940748761644194769783403688942378160373880239794963601580400927347084834489280257106621448726058569705102585343740595674232275999718714507276025056757675857411097399734484426178473262206959850925689929970234682039081662035892247260329831031112527092338008026190426964793914084571497834351879781478175937364951355592789466093469008433669609975607444863093175640835891263759485545039030915555950338212034967537740544060434915275728605716202657895551640686191355257829226028131406066824896406253741617280325143691584150970881967977365809437429923553175081569530694196975892473464988045814988825531572622493456430224893154922480863473500891806176373640358372526416315979503431746561122701287946182194126341454241700797204830741590031301648227156177758973270896005250174303957460793255438902223716667611359317784701804413534671340136215960417242632551366951772086246062642572153924664141404020451665798799963273400596816945277779656989748610484000572330231676263632222313291615029666589700279917767092903210382020097362618312954988201954356243600029488500194867248083446731652426444585842760501032395791202014201002096518070811249580331007595433099130245759840140849534180603956393609868575545434015148631455409236915900212336482390953591381355408952065138598633206842472016687124962609697707729035040101276910364463205468325137170145463148527773811736592928462404559895148412009769570439559222405157629749180398988982029986671943537716549508063473468965131476429335010644179233285748801037683484055464015218362346650672560460091021523713127862741180436991346332679326364747502752860374508279758613716767446139522935492674219233764257139888746390238418217709143661189756360958255602763908312332589804002794512340186066835932754216692977161399512174816088930945443765363824071934635054689971961121418742521457228412350207745573555097313344228341341066967113208180092859773425650013645548303706420591247930617250871345832261955717525111266701197529899047536849264483308717310207751846753365149205181218006201335882320922392976504580213583187587179422945159914828381147989040261835318426951727533989596546551751839910342905861548478071343490229099443547810994619814197853114802683431366397067134258297579087831932062199234586975753956891744058770668616356811858333664261239817135658222824880071193939147678299185715715060567176942687811499825666701634927611461683280834429683962539397284092747387313939330444486928837892960452612762646550039495446509579698519757094780935182524814110492841080975713283549022227878382076875824462736850178684001698276773746528055797631638321587352152814168802430833639438490540475149036241436116692468624840792857995095854735928790947971447709302500985438513494365654740902770963883321848675630447035859333731790687132254060090318403892299804647812614448038277730812629193083185843448724979023387063327558497502110315389247725402102231610106264226939637499172016469619832476659201711722596117399868775955605664499879099247638989735112779793980492614521230474901456867555204094430224561747865419301380924494528387851163015013386893769861348366766637518151353624739742891598992474625438877072567106095951145890254191264133062485439988462039514333787889675444848865681693675130855161943840706672632857729865099494298897602351870219657682054922742957917220165333032909772781354459951906678369379625788713126263203841548540419218966804385963822648519882690991291727414276859360805522436379859480818703279685533796767079035791670340101269452255619316517941810871423271185327635614478713507356935155782081732778004691158331042445904632818819062112844867693387775643333919563052806595668650253451081521277467734713824329305418606666572234109695512178246288949703857993633834165132903583822125034605381304334650559771570455597432643689020598570756276217054929331020092927186073555037997215517244655633359715820021095095975504232129116118900611272843353624666312329748154106337473067608823609021293227157768742359348635548977026831031485554296959947778003509604327548738209744677949600880688522369921553661755122189369891448910736751276791004947089039630019036108525823451624991236047261230210738873557079678982980995473715435443245177736119513316313950134172570444851678411633546233887826701749004215629504955209145580897285723446447673349468010994310271025655599939605692414119130008694752571378568022542830439635323135166947877133114300149805353621084811032768474083741084829108451737498501237799816795604228143958200363582102222124216651515992605279959954292675279922107111061657831594064691171397862292765834834372010673619953336194626706494090287762601723138233017609388204177232657956227964687484294877936588762255289127724914958553553675702850000628988029857675965057053410519357121024336664705020568364351898105682330139984719685804518323757560225199921399338634717947255940510584579626708386783376270608929314207992907503658966389454302603240488531077135270960194869351741219541101244215466297192697659868628779428818213408419682617195047686181136154493751762845562970758696978535259505387490924899893194891719493856294480120584912348702665557669241701373275912990931512694079441133233854811435301312852782200975800931153364399690538675490541992862315821631375167101856941706668055828268627269873706768758515292897854916459540314706843072123347848500156525818497763614019095602155748731107725638042446425167383409886452535021690981594343647489017520108291473069423464158225583328135561773452327281541869371681721544338268049559257013010633141620506239243438337135379339434599360646589110464951418062748434903279529815640783254637458714215289607386227318391509576320951132357681755005324654984721084601636297139689736682231585999217605482274856614297410843733087767609537005635240453963177491771966012854048952666782289225943582441363601634206161495806655051102168575068067040832183523888027357876290903202621769493637593702624792681873550108482977028651444881445241800456895484722480755738662882017634123413165014102643694223001148180764273518883213159617496143304536636349731457336641976758400437103198436846265491111084111685960787967431015732287845041730376660684926523280557094294172240111862464089841578507679228072101140623896033173806070652742482491463538980898911817831710089174990502802601716436885319791157649309312106016628948797801544372997901111968725076896835977230534768506933815029031717442000898416918137904971680406078581454269183775514370847586069838290023493834071696848759119905907346876983926009301136402307742978098100239913667769028192295488525601663804202827698609859149359492882807339990147108700695771844762481813230579627497578473104722353461364095439761900247711889340002911422926386418728908909822373520169594019333846643559808720532149200996656626699329308774597659267994768385665409649894565980453104303145373251687801623765098721026966002484042523681445296701934544248773980973751652091758041984169814005654234954293005293411532497847890751654315189340066211432502471000521087248096514858901440178988735963238980821473141105699342192492061538080575504692121560080271989221160771514470068703214532036123659916890990030761486655823651490377987977071534972708218699463445193931948075531588201265496617622725147250556630785559354807725158781071765214496501545988272622167149956572714548504796031562972282999805486033051426352174942446184992763161809762118036840694237682281629081176499394930924635095896633207562603330135837491944071389447424073209603414314470245653177839494238634406865058677209326722044505425786889902081902762105987352056395925862457962329555245478493613616126614478168969773832199406500595798946262338397592461675433597787817851869367381098545262717666711716582292559856758105539932604757482677286269680977564240610485844706096334304947912076744047397470047511868196390692651190693642409608023682797141963093167169922857412474577906136588344709614490996099750872983621381922107524497286755440208237487404297747053799391521893215946565972309621356981259854583035543610613608921928781685141922156794210285291108419079038239850949245064180920760602252336610519843460736453748649995116833395717156941199697238158148086765185549981000249650795730834855360997359676549135055507081819792669535179927278409385826486949154513042853167770196432747186710612442871404063850634863915338402019930440119380940481027103875104781275164282308180481943276054557675580044392762203406939267939722301060802170103276234842529760880897483569378761674025892907953695725102994136135402859198217733016646444552820140023335561666428884694529085753188280299840210743514821515875001818158878360775478263523168718374967816460330622916506564568398647384404884414101201183523817986249341559823634781288133439640713976259771050244820119155680608947549454290253593278818741399422935766742838638195414112517131166155164830877891885116550043843389460658391531290388535752485155764625327093753381308551648530882728428548440397690880462234235198759238821928210395610676812295920001850401141554689335854477987545057930018841213562706774553473655212705686852862841746978577899130164182596309313458071727559050439527900634282892402491110561518632139534882096871228619022596073758280843241024973842422391868565292422608826240545222969442149981024469119808014290186354333194998736939800408247343228689529989105749327813025234876790180385068446741173024649554151339750082786931964806952784706527184978718031469165106885040559218826359584758976825883172970661803481393319326335735054611528875980980477559412858382721423203924848047886450603592811915258312396468361626241857853091310465547875483758552031516640480661669141778703962534725434227919931914651385676864011262590329957146647059627914030884583958631575802761981785655348848608467187920445814441017169241506691257450648163461601471392183780321595308456803119353369638354554571931586273972411096413505275244997280894900534263917039083107178899524911266555702692218113140885720038724791308879881553824927812140017832247031546284948878907800017622278904885222383769630521893853588105485909262058427843002568190815560476576652339103300753552158793143839100534597416883128709131439366289060218621842476247217183122576639519203733660858489140868947059682267828263572139148941534509469817489579444410351938749368884006109486971375035840071007416316750349067253090041165084108296854108818149103098999707383425498388445892818215707713544079554757223280578932826188141272740262407391233746696990053501154024288273075368668520470480689348985917800142270284151517819820777365875449698679578178025235315316716029681573568155858287416197711467142163241599538872636241785195795441333200339592032132962920291248408923147105760564315462878335829886449246842938468253583532346337434105164810954987700612748496138078236147381057333374787939134638742171357648511899887992985878233590172902804346310458297652512932203380716105720915276809730589906465306317027615536214381830048448601423256234108102360039628227295266558673016962463219250196683666658608486216869647548506361457155203745696459285563893313360660321379120305241199989882414344195507742058966668831189828345826102543629684557426403932071809746003373167623183172590072664044502746808541250040563432217629853490495218518547885562976010723254262858187866016205405523880468332198886990542577201680753835622490408723050102380561018076291392354910768895471648515644284679108311384478105700116590848941547573470073930682237876504694144711094516511059899784955666652531588401749071698243444323334561370059728194504096295973141898894408081670795974820015281404584209569870117949500627409552057924282652525026957737225258295321604089491356590018208648839859390520957429771121001753837265628153602103735367807878733042410937599923922249986198432104452248331825393722845873942725350707452791662802963182357201249075702167426786390090912027624371705105302653454751413543063510371291905012178541333972644643260663320375329392205470555785269583670595500817492414342469859244232318153939557887100035730652511242807351381555206139868215891701701786210301236917089177959181826647658309868861492879234935730699355291935858827120623756915708615252484612797023674712765662482884929217840900872237945396513156473551141687964820607800965461520154786530759101826610809839843989417038284395758932396977310809422642833552306784326247558820580311254069279771236239398928848504391239074506728248387061169686104985864789654681262704456469599622622956285670207326379427406345133738366322020535267816611025114778005620301698271836509922270083615604845387455490786311369425930597034391792828352666174455849659159302238257142419449667417563293503081920539102348385176475117799531934823971885825479208300522349216862685400964713327142487388057998307006814227964953156614845942421241990018706591471881673287342496778704644093654002844857462624398490065724203086621577548843786347616121565980872714888791580472384815957524709625946306969319657094862054824194164855992807403956400855762913245920402155532679164347777623546046814402301360046266794753108314883214326268437094787521061785127553152654062581626087209927265512791927541006185703920222249936796769864771021838089137244842813074639379962817785127766086074968006733457799886164931652710295217783935445007713180927419229377265045240944837432546459036581254687629277445642403246264417539750182889242906375877717077182037004515056658155425129405154136848954978800217350208841634938537783700132026310410293085826392653495807412421473925638111025531958072850316068369105023538607152054335226830580292493570099150897834208644787183928818118194629852884802542020462116525111567729012578215144362058958505739448733251927573185597250170555707859100472302806320330314541741886059276626162395846892158172216543533406796315048708043680613849341138746951785352735236172923534526436987606704439519951382869147176677335209443162240232887671584684656804312555130301278060454325135404391668474948623918310320129158847534286856494076038604546821540028324666292692003896728760894633839346733765021176411565734078558105440735003434467088705288492585320656612428256378210584570386754573081326130045872506253625304881210679054091351090861187617467815883312045159208195099625115298331264406488764355277835953828793408905923377908634274489739504823941868136439107789885717960639728156450433507943093296630564903437681041439224919593482526845870152659055248907267854900499232323548818227525740817202676271326820133172232005504927065727141093909162312205117832664078860738927953479707857162303067875503303807089738254438209257111125754749375295407296025825207717404804769582959462226097155554113784612405582897215770452673598375621073949099270306728331364241316718245490680754967890407633459933056929108093429505241023467900458653749359728758260798838029366478373982321941239717069567874388656166710093787918099203364296514203172844454338543323426169249774838573928712167329511127756259980104673945916820149992895956912613948638035946599128853072629523991434184182582129989460765981416184689629604272220301566964590317722435222894748554839191478483949977148241979487203249182406605119738731879558685861422802270266945531777554242967123226290477740350940929734039697194517492541287784322436165066408100290593797809345169272981806029667413511842078469300917505884125071792083197949184938932711535361967391452437806935026053905632426086278274884135581963030490489927500919110488425099226058220372494204746307665304672335367535455353805051451737772926592751780480253443149238152905807322474482335635262312054684542392567071315670813596938085142091755397682704792313695304859944137817491788367802794698338140347023218245926960747340381992031805079751257051687786314601485812031913969642032364064950639664652255019446762215616094961818113091209024232751569554267756556105046175040529615708447548797315353274263128857038108310203305143184335732403898223862626623016475587584157447344059070557430001024800439241122543769421782638151199640616468907980200982743035546388108974337948566671258891603839073293042728538985327239102290265072251561231240933264944725484016356692988097313767629267760842667329530461060244129742149046852116058269801775104374453624512967501728715984019380001975149516331335701359575868863490986394790844271707958969296069987411057504858178623168878707446856616345463976822031754956832448808890581894418911136405324760825762066146736174047334971253162728104918705109892988039392645037649460216057323581538715164627819723172614034367990053544496070200741621108091459000737480820678823915454970379329910500243915951119402971926438704964438745769120186597468422605757447301610626148660938337450718571204630111745896540893835099936921279292273911272505580133830224642318246114874684326177731301760738380080797741751702925292779181002044800320649636131891492089512680672018116804953976641977248201926071007995878963053025744537150258764516262567924017037188587520130434711673599151063567745643508626385817276203044999485412024574667513844087286884140834900281193722719833414013467888220522715187963348991374953164374875547890364971163071768240109799442341383608308294133102644324799167418974317449623390376599349413651885160977374818944221946630832814063048327427006714915359078497385406542042196826616221131257165322205726618351692329632346756402851918724461158123536708792878470242146735039148208744458422641466133863859928952997448311379685107844110577349559524513846849146546720578140988688032757718678367379745527663882419002450216213447930218314748775793599142958797012965299678606519118966708011031016523428619740766250666944674376586090518351912160908251711997800046154542804237159132187656108382063273252781742506770966914179522312929755665911938372223778525759889876604077408415214790462718316575528670907968058331391555037684599955185952883748307642617003145310548057871268754329337335058156761311351180664992760329430416442554905929649507527046971040644695617881128077461010883256966901784964933586899277219864859351372473834834689418044098414549118081089992444806403308988180348315663108835148980540293298531106760791312877125616513093966122688745200069410003894782305605778663846925517360157084283680855247591474801741771254569468658054727467459020977666157687615520892341701148138405278746154672122378584967326482588458702066052509913248439097923016290256351157004195112272023710176705510188492930758333601203568354072192946912615409358027482445811848205595483578348414886083707336929678717062621071266857750319484087571359013156404023699272455270130893894052236086040759463967671865633991172329435671191825281921567048427371056354676927379511982956558009825397031477520183861601014071150577438696606682128027895558940039829165674690376319932048763935575148571233552044902556287800476046872433863752643974508100263337163769178497532417568374381953206851794534661859821243639558830133221800139893992113797542681240887191630046008837594925743195570548087558633662880280257243775293382538679460776662732751014405329603867226422360621252245696180134167501841051538852712921380495141231719611034198386015192985089492863638221283339459262941825218241779215367008041914020988165833679627718725382250338916840119574587706385723805929381168260424716202972927346077357698063390734043480559134468199260224931043124455748077967394331565273173196289380015523642690916823885037273675234298467906792389540059230063910811046395440361088394096668920948451396101353899575928876476754674760868768494441989934723148546799835886592164553867625369258780202096400600871280255537499799142645818587584770268775377224179287515685870386867032681917194948272986629383080466823793427897187878633773404052309459155338025995041477904317602571819197661562567793222025697879271733099327480683288370290470743545356696942142035006440539508888908650858856754417961064769743896560198305206855912656210930737406947008616283778717893044182734723181001571208652890431987816975485932751995380837662688010877715706626615680086085914143941108722943465633450101250566777703609085472815453263505185226828932078404137690878812021651990310939416863438757422024845530026464379450761252165303341740071019754466863461575516500203367175600868042649394221283019019493116415245194579629787709029676273255420624319947234244607588558582303473304196349034221240421960879165562046772130613227404274692849393533677581473905974180879403726778585912248800503104389660084664804647529806518467847925745713307807838841878399316372496531383262815055921875383380201919581198744434971295021144809205119643965733505976030225963388532272250247053052938898434827380160771915221529523126039875847384647915389250846126127146261020932447006887732408820586798387858374561481438835386832717847597064227027473947978391744186021325280394948092681566819246530541129758389710844127303666914044244614088918038000068029595912646965288553672041026274659781487317926742923872465561669483648843183090987483555738491686532715558603365316794536070416031546394541692080120583640961534017558881569776588781095418707780952437173036115422352321833789044017645712379443705968516712907839113925562212448567304269259845475254756383729648670307515411363994110516092652640394189049091777004464864118073276027803071461049857656145991585747592145465569685052549787830401199705770118609678613007197754597411204640599729605436241097995584102010617753342157638166198551880256878460948036074889106171385356484667025324672397524340993939318605740744265206970008075854124011291285407206864528265289741902941172009770621281793631891101003846088840533840426032153467450098921104876627705090068283186408913608094155595548650441674966237231442738238262600074900927499940564685806031117222073611779844038562836383157185578552885061671297472853663791595520717787638243462922990927595913839869761697832513668278488149230061163639116425727467665512178524827101257368830278420809777427202129209413904464939844051856417048748463035008834217415842173029172686344772153006819050448362163866476476047733841440599900888771151737522510133082937896749977237513115534260241587958498333559062456535475382126630295416899990800330477363697179586692824928898450152088881613340908061107338683273982496426747151942815938217624154163393603566325083886843172044719650496635256202277507673302966980899153251609511561963697429086189280780455075174333436666793419863089953729085255716207352900757617616070175323773156462244539256479048594306934184006695429846140232437226675469508433535409552002635970452546649396592860721357360182384288549935178350653262790329432293886826914600906020057478047184100807110569897304136128129500402458141395730632477764124482033385715526933489516350819628516881952666867315747763422714866987778560023249045670704737065629968837409302726074091232577207540666831032217067667958668346119595492284081718789334950984427562479332647676953056662964661919988062637074116924807898201548205464553733450261891076973641196623783465281474871554887391183630519154595743898801485568535352980425072781631652910939068149911784024814330770428956957414233526109178601512082443081664916519221724345607218018119121796226370567583101870065393603603749086638340800572091874876286390323634295644331500161269609630629635412289380129769541514268011675088306126969643246146423584200310339893292168376904131486956682914771830471639526480607148288993013024999230514273979275613220830834360114313347715277298898730598558310697784485187677781399250713212270300233656630020584495503094399980184341562250191242638421577429365037664056687416175641930128643090121564807853820871375017456341636113911645016870531151645989274924610494867571914024163787704301188330294195242156724674150378417020810630540442657666530307590108078816487900409813481947401401208646312039201189842233400318982384251822253026932258179091789364322081426633631058239533688834522449081906022253525002018323267792428360007354888193111371296010691978833800664053000883010315107819200437462284997926451163542557808107265002649774425047223326260101612227465172381297176543788517215799629962061723251560248528016420016288835875325553851393681350774208371099896063486599457677711653985639910463516895480493001040758747435688293037927220822552933123160225595551423131175002144189727624496340128146526132557495383033962003179845456982698978697476543936573824503199195276681267146631076302391837115069966254521497646067396290456145879231583450283839353070170074733954413781516100759739160876789337715536361460738175471352381884617305465553903149883361875229733421699646395438851444468309835965359512241384089211797209684945367649544999507671712083383550403645138948951982358906970741393578500925214615382266525851367613033032925002025637782702269322547108583661156692829566960234369600745274756276706523347394165615433977972993428560512459700864746899951806998070805855941141321032473739394196619546977384633177116237404454217010007410920622346133892089006264861735767928021489437895919741772150315186150608710679699220789747560165649867011316616610202721622973396389030315069219389535954660920690889607052414993146866358440541206144531690302206043412310933884837157234381456850731778544799950204980283402302709107730173223578178680103417217650466796662810852040639649748775054385397543003021376115959626121689511608173518624171402126730642063258028048120922947548992263488859569880354361326885371152583158967461304160414730097171198026272645694713151985126228069159531034430699365074136199728398044974450065503164709319875622122488070771352762823072984268589040673251753747146436442444486438372351581551888667404254650165747590107254619231726384843282684678625745396802992045759309013472249554733844559028789600032200590813994769548467917157239785235306316043891000574839812222202101458104479598958376989500419251628300184851248481844727546299795929173976951974496521595319171920331901167215211401842449471235959986091115273974292265938239896263827085523344483027345328549944648083788584993794843231164536282573242886245713413535151242320831579065773311308832623582936712322667831820181241693490072543132219277641820509247864678903866008512821828169755740530598051520512982487386947437161768324539895815440597503081137295435251403843698237228427041861964108261671260333218153870893229506191908790134317137148105792150230578727884977450049976482430302828974665707530947767574452192605513156981593334533635016290610378752256899421297634330544114800299526245552633024975407639595352688611768373957932692939134241611678340844431849792885705711500744929593864002067900366677417617868306731111830677506217909162459951472242856281422046515267386460273262825481401967660160060432136382394292484050966893275292776990280477728914572683229993236028228711490838041387036624442361332062076882702089011703414491948849549814287402428238597354590673280448962313740109851315723466299951706385171067507486055118906058859029132918571747223373237569534222990856043851643569422047463252829242403189632245079640775421977093740203733689661662016606666728521202383738012770039238017331161354182470623043673495301261521305522934256277429328821397882253101189980418242769951477385478421705382557519351783159999154323405435928501330030886074739867658219417773953117280791340780877411467196887215793982225689536908414579652023247934586863468999007087070666656624507177822221416323244684527693210186952434420631238367297166435809827638447756541790258164765736788415585139911792896414072640588452225944686626960005501376062817833456236149163101631874453655013311375884304556468372876488654586555421012584306317601168398865378618108055478449288868709298153721230991584735465353857836451692741058124413488916210980380345875518409026835728995630284007607513382950502353775995274362440002523506689761953825065073418787879898549402002217606446924686451887323420266816788421517584971572774176454982199449938448040498740005335510374102244319551167888283283792780556055406852284316094709572767424009921321166320191554844618945805958115723491458820177807379908670701779433352866466717016128872573682243908727597149607513215485940437096828944702767930396670676969725498732460423876718463088304822043693682040745304484336964738826329269497429816442280480803154871541729687163225212113603908215556760497409820962592012891014979691527130764785716908122130416920976265576386241667292245408380363330680880414502570720084912672342872152596845107222474706709739236828319118665464773222519453212451942081515378773355386930583199720450258091303637880429411693194418093354202511913279155066596412196315966937912056395026994226911148531876723453546554889599429106228757878314437768326743639122629562259315548308282048732625408187188564929818168402763149914892169585069666775100369578317989586575862115377343426474408525031875425592852053146703170703612932173334973742254742374614749967486930440994716169226138794408205445905296958029331640587376437119822598759907024488184353095242042376484085503637733550357057894141832582007230098139555750836961833172614521086299462433785661086382797104086440251294870209814606396592326011845255828054223498037522996945196681149603484817297626281780576107686964358538084959842289577966753416461030440746793851068419840104969527487452255275188798048789070865636386675887514664756181460699945905929507395373842330211123268602445065698070695928422278131654254917687816680772783687293865215103747772978725584907789738008327623345602884282801524890131593186122907566331020503598189647027061538693359963195499304279714745057131219256668857417825054595050265614144352555599258196691618815848538090097432877128774529654913276676916888679219070203930925020871047547772507187999368756987380509046709475007791671565576527309769921687962506966194187955872667630993919107369056284383825554924684379213927476152247864064698457433032525015393847355635625804513322518206421744612941252856388423233866918788130108965327371990688106173424072637138995097052997446944273608091810420467693673114588592814237765598708870749054661949848977794731327916941173424463856620948893429118715078480502901312843988686521028040347920861226180833718562598280901237474818446804358750295600939200362402657733263289350297359111086570787245613439695449691499467853252755921524361859080060335343123330425549613834238112214814414469883791461603867999206236366419707485538142938011836417396856181947904033278132047020488362068262752814141463640407574170810771689348100597456451316835655355311319322896067083749005681394626552018403312289170142733386849183853748557485285978422238269035911451422985110119258415690304697802768540591560061776379149808531560323836522358038751945200384717468776509511565099058411057090805577336861098001280441574098667044025537145572825223136658135729072772617818660496168393107651145370443900142536016277245599497332080373282108902135742389116146928474400620782021277287499447991814754846924534532386821497520012510761875166156419919706943024067549066098401427454690982712945799238222106149890968328395377544267036168296065845864043807251282453831588856328744984725802159060953973314543236187828512475197018099260858511556070647241991821194711238730065920461128341745888408126489544132584560038490513482795780427205608905217354580590235127409217295543044738854989437895977110507405854416576682810131349088822232685431831167675617583853423122490911445218722062774949455073808160615312164915071241018036755306778772798955667221424348215819900300155135709346249198574255807092260370240916049853869891794922687934621295895330333937448422815865335268275853839928930766747487524924007700825971419921059037607643340074778146843872566760169533195028176064222922970114706950934204520323620791833733859184330071640081382870219991703479145469797667980356638247055967586144309576038669562390603162804976689333618749756419975537608723290434156374839880621850713737825595460717252299919733397080704959618500712499924941256089673980758402963059488894398488310613973652063750103776401040328832324304028429802265115019540291929826724736776895747187339917819692749972892655099166443021487100646990791951042900495028957450960705277656429437890875747911171424565121734735892483086738686725883021430815329174157312901644640106216799033498760058640318207105912566912848201149529949842639018982319917693975559900322662122613326792122998412695016513521168399844110269413055988566827077764357093728506441907545864756346953963003738248183823560126672432448498659406686609463407511113441253578743137080673721511620506044789886907407467012708716544548436395370594311712071434049684332214805986859480131068202644854283764634177254159106204474992618074125548339876754390863592622453389436067342331474883453177224050593308809141402820620827510827976159810162985414928475844788628139769733487416495706514061615587672662322229235845291294381586955243926152867796641747087724317069676322966460588579715233297158137675973819626607025272762077252031660505627365451596203408911335541768215441836610609677152344254234866070799453856308292764136814828576747524652060808667777942857678602237009910855667885021619088661190001416422988265180685251178036491650698435009119555004069065978690674159493171487572883694636405727999625985664669619632689560631439587048950562203278067434966993370279561308991510967365984882338704005202894082180616762342950115524720629087411870347486481294596771006435770213914606984435709262331362608508066106521755915902490578262206811454795756796813894176088639552318641033384561215698120072728995540719074611068262843061903722122426394756165516593450582178923062031606034900252141393400491641194540245752034277822441783537556097551672009484021646558748800015883007677899898322854290007525182545407732087206954536331594672462115683762827053161426943622989616452600122908700657732878376666702689497374636682677748094240417104308498644857939915450377060817196484044701766178287858568645506782384761073178097835185590164945093262404422253474637990726826414268043298838943047389024092709684433748636203991757554969332527874567869559564860352060335439904601624278891493008198536334228570234345810847992056312236096555106418667407066364783929900620264407804709909237342618550651258884035220230463440307263587123408623683782818956520488815654642807258782143022996562999537877295506121110980840489783727841040545075585245177454235419684739900169340640899804641167401417700299825821458911546674474065202616342549181326674844666583534617037986373989302528629528231106417742920399089950904136498991585320920229742303024021682885249489440420551579912610777915959138205410925615033378461587922232839106174890839315616438656085105952016074568729914216557767743468404123371709380912666557992810362760996294809513986145028626104225075815286835168824056814202534199281966974408157025005965862501324369560458268134126496379179947181940746121296142830790470420298890751168385854871410214029575166076392682623374231778345322099521453955200982791247994478189317922340205459270588818420304218514409297015237922978531855811111002418896723580857746079348717565204823223068996613806446242241204262248967325104895643896532474651686419988896590243472433255574673395359471927786599721809645857625018604653850356009304765139713390427474285596346887381590510812155080927818902264651314274411936963771106497415662761463045119118459147014757275797301997954092007976988219069750592589554544880437771561809638734203240727650129738755936092127436006417187128372956486358778800486594735809519154442702514937449586567517665388802795345190453215940311949836009023742848909484115771477858661312318647608450968877590285305032839167759401985242549802252218419712145940509697101501058166967991255730992015062851500739435954963228473757838939236203685644595263982682982818033396969679576926469117373810092224698276895855400181512302546302221072547032512975658843417579649442196391453043645766661508535988534252930916648876041711696839686671697412094112941451477956922606796163375710699288754888133777026639444949022847246874673711025529853969562818745286008056731391398548164499066733845852685434967941514422590796637367326452014211424572644806953874993229588638537496038012999361302314682144002347842667007321782704102237914874264863834620696092401331948004237594090950874791332938626090892988684931385364193256840584844663882601752763188534783407843589064676119226032010641691898158543399968834460997369911547986467838852786712583988513165992724630952842188656675569692997161889368577516028817381497982843628844791671636566094746231526695484223137481708669007657995105519838599272001665239681127952401935097287401353858147808906401797048011741914365801377740193799714496952638508861354473161869846413142586879619515020694835121619393556131567020089677404056169362339698633085884685634744152266914768199552987531229459233653595372457788665135738151815778430604011059227976004912604675340620519691486200366461801734690554066141580115465231541783649611372391603094485252403424353045465535542716706970970240834807941915520337733224658841113172052720994704478588380462757885152891584501739560875291491181896972155999714089675303261412737768911881137846134134864938103715960426710445496369527115901840759925202552777028353798160165591911812528306896428234643454992832315749772794762874123305585695571781485121643775587742063882376095123970496358477655478184093878010025370114328655068454611549491435560139204825416760992758203677857813030180239328977492260133553948601710525238469961309620422046113498678037510092204402076718834376032056060629095120526829308601986266317727273747800218936562490494031254541239564817365056329261338383424119282841887292659154039305101545695836879928959588983460112282168957465692682827539807460335723248052398421750778604409902390485492593817597280026699896237665954692758886130095085684013443804909623401810160307490798367197578094306599946382452336903789954252154360918325085591379191350861939000750048273523771199096630677927279480905270190449627752203344615696528697637570354635962441835889482015774836609784577712910886564402279718739252579956291809944331496745619857655454047778694037076716611609308194080592539871970770006999071239533956623689784335162943277488704722305435982931588879480039794706315239380561658629049554619991522766447979825929087852823991576975193713206974426141472113844340208299593324071277244376829051590234452702717857506884608679735096476347183564821466656090094516458079510807809172057258391981797427093035885922852080851054335165430014942662882254353768966793142299419835932958499869599204812451942926172184538101274753247936534152812107399687023134475560826840359761833673040618700384597973012527502796420222609106269079378316541996857813078203263825980076458203919686910294185566448924656273006147621425373724479719201978494620655192599505026179680231593103952202818637775315700281204583783025302818079395423205468651667107654225002174550384870167086988905619846493129085513652353075133031812236115262895358264727876481491468278728822913682812852447557216664932057684510482975949846606004684241437469539657944026425275313619300040664046470034324761677341002421049663980437688771149964501076292851776479984963685512116548761805833726743009601336062726784011214471479508869414040965159566348353109282417075430183063160439051040218204341592805038555961118991010906877776509039463068485580239262926272883611789002944543954190410602103150783692712539440816362547654173622083778269346999033578387538544400064137335551323824093578328002626318164385514391446519973933691941777805302997050880053352536034807946382209691183638956245009593143244058761716799286997364688573101090627882917828400367648868346791362587488420556042486865885108080263253058157557899066897478492497433848133474487243211199555911828088531682041484855146933237608470949376748537063646607464842464365703927799403960381841221591612044426023079920352833343141185275667229910304717150117058590693948889169134635266072662251653956360802601718328213986532300786762048329313075441204513701542545898593557508287263877226637820032957023025169827963616544045620188951287158614204285045993825023736909618008378417853214370989023071048141508210701701032570242848455632377113421438530784995874522470851486974910693785010018127200798128676112526141522117933468355774643294778291337734908142369918001828320269548905233930055571177419934856415101266599416080967451945950161997297078201937489153304191096438620040374093899915602112360620775275900261898605223518868511486831571404380416295657833717846723216990643219941308945377767123657461997216709744515007340705157256970177407081512045294811295399747305480494839462942656857739558141225059053295692213434845544749504902718710508432784906013737879271378849239879934256031980313725457643348025708332745268035678594198860616873357083372020227275778270749748093141730660263363210573752426415533360787026464661888336782779288452049880602611985615905475794848225197424950574340930528192141158340179132358717075489638085853353976492229933048931253257501231849621396431330917620373085316299701280421563534250412009597092555696065872261435136673293804992420064150831501321486943545107962166770285651103960642118995199625763054366398998901397912451892937933659541139307218563375241867683493785854113470415943253167987565930620733525731376012682308600355148187856701104750248751188169752519904633333865194353358560265793897031525794565727210557865135933330963725817964581531948263341725693771668711847631429102980743560521212497822314161362617516463750426829676182345222148116017765214828198233702532190267662714901836762962352325630098472553175395017283399651982373871526964126903221610913661120740757316987530411408965034624925745130466353858470865499818891914624505796571213283209448967051170897236355499762516252819632846438622991210539171909169313003255488179698355104516991678158379103280721339758910654784816825721155436315345426614259126435802276486887412148449699704154408968023615492181200801997198977604339974785704796353437646546099572820762563557174080784445156202530244364036369401486095611046140680585656853687944693634550251353917384582996186825205041815045594609520228361627271504252208122599968368892518996251201975565856309440785138133047726760846975133335009553424558604696024459924602938668986066051834616812406206427101919258949576353913842697436596789831785627672485710463849900432514123429964790564086243373389917092488604586106833570307398300001828000001846338281155219963973651661351794863099087607479424201466442365494198176002783378560297994868452033954431901694276004052258516802264860742288135122213143763068956055025633700407571524020423231720163787283374723712055841087482872462972418769193207804153988459574832655981311677156791719475177856874379479310496361018423518473840436912422190543726011594751122835537989584984730207409160070044163979565265376279429581121787489561255167481340993928145513514877228279534988784605702492086485784295101050365369737052217817311124004058641383090702069169505871573961959463242007702498842021152905739393268900331851770902220836373099045264549867559850450722089040267146612080505364837225404349664019329622347855171621967587780367656735588584745816521720099587247135200500771371887501621506477832077720157076454337567857390853295664258748622575435464117955852484252557342116692720122357893314295512028081734321932173525328992722824491319116618687760763271547759341955881379181958236059409366956383245193520671787522856293707232828427151437163187090927494159436003031309004787379844773114898660185480479303939271752985883384589698716989943180811895428256023881439936037864512550460489313353371078979362464673737046196622374348399010650511243343359537614886360730480981294459329045765217127237480567007349028557690748827549713126683582384429106703357220041533000674826519913182646211411609776454819606559729057228198829916699120683571464060697440322233113219499519230993418238024235380244794742580522840432565992456086485576562440555472386570130259713528222843503534083017757142790569317385115395759984895999447107556046275500457045033198280586810924345838542538571549341997218915910638897213404469966587815595300520257155380071101558289620972618901305676093166501219459532256127749931634560869927924586189380449318504983786152378220710783722825623211029915668379488066020672374660792656917553026714796555610560941682869760069732326285921436667114255506312923437956753502951987177174539264853197337049583542138802135129830455994059069175271398516875769203187978282493668556592214481246067998048122297600813630048986864801163983774543607913400484874360837213144822751268473852435726374641656444385015657543979251157027373124524169669334592403565714550453727990119486469133057879868447065628609592386964791563401475420064650705533268256654105025075435745719074283313999400342490345769779868748058527175139989193766044241899174817772929961723840972963047159967110577134204889703211307105807812083862258324765680296506837220491930210164136109155749073877672850956729848078067813219123332464574355764447060884964983064436264384647049903580203414982518140435565704516983144257802177214259948655570665955920092592069541861462408460354837765846895300437535719811400366063740440216117843756885089474824549329483309895848515838688291596521715245778297466300077698895101666319144675030793874578095558825205382833075657010886941273703811356234003064565356697686625738323098256479089386527605035842129275778309858540959266994651637218895926225229458257321543614041195410631094970662660279741587470199246458274893010285153721037383746851064482838182029517552718535448434532043916198516199659342834806084510365191575352989095927954270047500082622979399369422867112412978323600995125660954179701192009900218580536056325279729434088988750044205391521221656933730287767151482477495083981370168005191631865850045966459635675177329242134412035158757335738883090649247155918398017654308141611525767103545598334606437546329357389122217919832181637872861677247714265232149986702747729506048605895667395204990984778150578381294683623693040209402671120456761856407736997652132636480435486177748762999914747952521232223050124197463267645875790757946326328784983430253952949944791328672487612014691189843871620321060862068551017569991129334526597576814450561167526913551233184994297076655604325518263905121815424352030993770935723221332936092589185875994927365641446886257206880622631997340654634436185558820842946298064385422843706912555160800219132766479760017243721111578930666353079881865428865131013480362286942322151776893173205030387932994367818979183989275645027203651366375635225363961357076015833494006150757880755397169001514383794094613602514102797621911565914584811444022939686630186556843337145641841971716115649037148243448704271405992179917563098009710517253504957537109846440127873097957700902467499222529621812444107133865655271472713104205295963753278298403593831422579371996675675754934010528892085859253878052775161160012494818493474575127517163672971391385866366398061452618625511466699870693155138081393092775797215769689659448518041294628205378747767784611145561340873394816305951862118741361190277780566869921830665943409085658192021445348244941491328993944519674882565968726786784332682772753231880266939836959213683923730357141124643814614660124764864826589523237009239493390501133707909558598629557283807546043699467179660564312184295760062526478085281725352211781533119093409348862072801195617845467450171004498803718481040371126033178997418517771691440337125169147290593820883455062430115644500572906383505118987646511117475671506226643409582434763057367459375659186257401450603427793099134822452727991199536864118817686145928386578957347207391057134963244838171008245495300472135330252659689105914885809531381662518841793255832250794397951705154019389759149296763897438622365587524422325591326982404942735403725808686558953836049294412294685949799999411392996901258843783161189040841971276042037421747269523732331905925342390986967408334989007512457476910166189916541536864824298400677706665374206665499180333863790238224247348419636110656451546494290912434885542430650443198618794980463109295971082922789701174898634317425389507308509894348992026837696789019760915979917718900765421973633097351382898508929770689420803450259633391781675650023230495075403361256423609743787411814376651181415839381479934351548077889866804957703414183440596973634285036255633219687885353729546068632975280844827449212263941350039693120470093062917369233436669199052040369207433051426061392213099683668572050928002972339933762445817736510638254063198157298162552067699976503582268937502415617335932214317093294578637865144135024164838573535275243789321822672221600593844109006069136642299872331469217997893494862840091396104456627362457354852626966899566161216116335432247047508233185218281165971414600684224749245819040021643177674322449355551243409227646234412475588998715198826787338000305705695542169247821243137092863724904605063394324057199342404826428860404353567382718872287396534315736118080843531008981851312563093100263361044392253075308090749114809352344092575457239879736115976701637425838523828933465529770918366523136672209862572500790602902676596957962309947046831314801461717693107990199318277323885135570585850968390325582837189600056563424456166073011912018498703454125472146944821283262424747477197788758372400647539018284812006869222703469597701189379969537952637380656197968383543244381462289433806351903901099380150676061981509985728667021035713190943133881173969110017576318753759835220163507444977255509601103664719843736906253553274536589474436829702167538905955302065306036489915690580625736148351730533255642293969345863396750458538508496439148134351686033743638120341683680636431757910573057764213657530146255747615712135232611815606696651303081859775382209754345563712605310826310714940035023928552078484528269255223702370186225916880454883625158453490328134185537787640592694115682656627050999563008112555150189251099510383003883340440500603236153517450043872431840696588915938438070964012440200408102728862358924175380174583511461519700991900432816300161564633994549595903711668845990317850309681191680794188512029153106890441618515767680642735903631699550130122382233766582420053353405340001960377694681056836061677986119397483761946117199391709144469708037747167195147278475257266275868086257654002859604014232309377272690622114967444597915432807501872191242156280296360664240343085893976325447035684189941905347702280882695680684555383005656151005372580330922690774410788053563056649727907650635964967174689331650193072321891638416813911385465167881934558125270493234922534516887448110091563427451165764254229270163580322276548569625218233300867854879427057483527907677698805635653226846590739038559266595198948759142567825858824142115399628110511129725087572127249635227631896687510533909865754214497575830942528025258630999710801885093126484914581227432588232729445684332693963334318879980321671605864136159666302609882341159564774719282330683668105336013993774465461724397725616967929149945186303822882248073172378436990249783822437639166299100173428086028841362988665840543347244945512611110862947325169603390205131763691466077468752928841929111312682740183679693034096778015590431669274222424627697457494696190846867871179999250685236516286299246105804793589770100886895806844389309702331922122194482221173362982850645244491606439109749797823584271425018581824245681417157535680757362332042182527419405613434460083713571120218431218262111233094388942742283496983417522698028961948816618948861001576157949408047963769767074679758142578869835937646642651772839164901922257661302191973312360457922206392999428550382306637499120011002789711674221774052145465490297833009623784121978372345667645095399701812242197534636578916970085672927348627923887597983829760086129580900075842447258078553069705279115832230437392157138835403066935490679864702584114460485587443782858786187208659234060874006044078621829098082207120682157708121316117196240712176159824635268632572523784331538816117981593925460930554686152356058707468946441872987985597331074774497944303446844652229806133587683380193674797477005262989191597301360162472968932884028395317781567185158744199008949521359730847554046682659321937025939085325002870531330418574740251080268981858359234444203280040300563280772905308492520072487354359354508873207723818806051961888013396109725234443250931362060726132245558954098248132980705293995543413148299823471978489296587258125299772702759998773645912720593157733780907175331967853862047186420603838782159121422481172702173441589280750363406690551683599681588679267679614365176065449126524119030250086580745883767841736724941822226234869865756288367313936711758390392041461807512369686107583953421435139774321529064094957116806142487901023808479229167251614063015313106460412259648852063451165482583892194374630200000728446263521552520626837784758953568554225121582465725222941672694900376401831792496533846796551172281255428066234041257979715488353472288612601405939910016866199255527711675354697271359804614713047075012256473052093531723545191946756772814402877664278547521689351498436108118492860483414122677751938779698550513723155199241536051769621300832040321664316244431953697633478646305118812462406110986856698623114240664419633468214790423482356871048550543421981321519471220558590946196065351747147551236998502015046405974552563919130633870016676848692952315748031443165898722688876116234204332119287050529810009069119331627814002019084314143898432598005745840871347490361392563641178229746266131241106005212465570606470228041497565476294274125291861545412116226456199390657228396629851598660668789671722667593182186565114464332497567044949352605359809998925795963635678864293021999951812747601827408970176263105144156427095243676340068926106420891291506789302468848541628365540103915658633855754557061575280956007530997362581938662029048971688379719755280043159508653351626376107336663409994929635360369070377448938817942580601223102608361489136757596103365588769272665537939918368417341171320769995379530171541211288291990412528774671386423263181119238758883558952087575661367559568851345142013213649906811951236249196569729504768776260863452231208972679471135418445601231220196751012350375449242596274308153387150984238284735646751701618538447436201819685380622753737971729293924746430117577787394763484640427622107584132032860970331762110281056992765554453114784654093561370705670265534216760197564802780007304235999508490359500630921984670448106900101240285423011317099480502024404238998558311795179108498980241858887038673254593911659165065929473905904065718007621317109251207940399252617844759530206711451697333105748927911896345312068863429047300202897918491818184864215644963289432876560178887520439091602914010509704577031847232914995137853229934690593727279226580250775457491419584077697297276308617666989105793337627346545060640818177094453376894836182449707115798862659336272842081697712211162314048148501641710335430244052027494405845424791158621489889709194023168639179264430559141637790100554582910649539897702671767650845466870916756142993666428608604213589188554835430320729355160826463539368575128864435586874276364058490054222397838270747603546825030888079655321135330171535358498570365630924966330755515143159470151062416020955822304314326385635800155929706895408423238508181329104554431698141923615014574991149197339069585693513777992018124992319988749133421547623856342541240512747046503212460843690853559888785271014202625315395877779613085622281971336351607815875536492356095125642249028826848078157131146544902660791302617132544887649829973214249806134379935979694334293137099611762329304978315705036144998272360818952461675928811066068040981814493102268723341943232514919534800307882582229041774998458475054014353389952659704208884059523336826877693797888578104252950401092464807895257998796664520529632159028570035893456833845828840104139577127804838190870455818001712665868099200154764186025897257292720481931483568908058821239368925069464158839589829632912822808018811917522501951552515381766528050468853420400454663253395350748005512499475606700763932323073374667650278566822618488978245566251371164520821713007937157182938840102483592911325830714200291250170511770662106906787806763117733601984814765659037042810440090546262112801165954783687514064052427311242376767070940768839846498689418756318606322494158863038442302496048593213132616694903695778797645139707378858834537841006045213651971663480606529485287474788241874492346487813685622539437323509648592353223596282862541298685143241759116298796519132619589270228374075038816970662045469253973579447390926016989770549032221322630489702209455135630702617707873097009980489569761625105451181273768486112275581975740708451936839920861720375667157011988885761694422389363885924509453437173823789772828222885964867707725242557589973990429582387418494762231286384141917418429350843767565569298741231245410031972668138610355667033944079725939529217448705008012622490120286690449935793556148772669439559158410055126991126856526453424091209067926261580702933937207180810515861538827397671523718935041951935829341569658954290181237449469005301721808669042233564098427862052965188927196083567705459203202374364670721690592305366963283216136271179598185806793151844773995509984698073137171307321543772629091089812267584307045988140172367398773204870412186975660909105371581722904420524604427895551546697598200892175020768016705264381412031616880647258856790254795300069748427849156390184006810706172425919753310651748347182895533922411270100920514563584013207840130994792629108725620897893946897052883513104847642598293424430514635343143382191919440725601979299963512200990578927770362620221879886826225809190265945605972778772789287577952968428592786434005992588280568377642202625522311230804311446660091092148673140706112802404362948512868515257765686004578927065154906531808285008558765767414484440543044975234123931391064980216749360029926266589125783367126769957558148169507299519346421262686502182579765566413432014226600783395736166522365131262304329654934619668835485261417912955041052475462897061300629868675416916247448277494674939655442719851748393537065454119469035525184772536830598492803531071681259820229948367784397639771016441009370503959749074766745051770380186888903363742042946644459101898254172536880631779032630397361345155612816789742693577803463733543422458411306257148346422554073397758520865272467639187237010042774027494386033932597148629327948296732295512876683825598056798041461106213246030930530212613454707285155929708927269285397986210189505974468473148923294666182702553047908549251426424035667398877643575738979256136870799613451989030906337256242263113031108059080517604662837010843030838262133030694432113531728757384094922209526910542901179384148337287093487117279030213918555646463835077303772444622660370319966245123734074917624975117490431343299677279049845375458763153791996837933552657429663471404759814650377565412356829635755116721608173653351799476546204008451386595925499320581454716324554460527615751268798081854717872711045188811328610272650955315680795728855357693052216205801613721500544605685217600505161790565659194721240255127713107774877997676971486376515213389037967483524166437392496588152392630255970833050968412316501055545737896416002389225515874467247583122031028580902579866702739004051847722787857930619847793009669399432186463415619015751439511858878061633157813499192852390687575316844197494112190952484157675883388578471821006148161787586849733685150734830134481447724516410557124635702212509745341094880008895205960341488099676232163422684904169655398934549076777498520273666441993366309242291286567055689936674638738984843059409580439647464664314342209729421807284162389475980121926713077771514161591223281516901729283056102733236857789719205917978733384219126378814683225390307835615851699836195064410618194182043210612946423891658887725009671674359396134273616901921146116990147511271463952875338582564744748360353812101404338845918848008386647608865755030345851207431902963977275374050542597479589735791447764326607781565243261288611311673131163319024196943216445169478667868029797443346634746282584039351369579353100404451735701443056539198381702005701390684094132153097808089620925883167599506173256061901172216206808382619215080402084815318662871035896386608821735147639199403008716831607813110033596496547528205929296234318660797260274142582486028164011570455243318840614227386672357936289473332544065010588740553716813741085686220103566213848891197471783295815400359234610649289844324283353559092505022050681699514640999795179653871245810221770698865722330956851043949659961212798138777896093780124950662530788492655927962461034552343592472742311862712413682791876543457749839605113054088783765370956428754923193023060554852652801211453276535630034455408676672757081711254576780685893953159693234301952391326801427172437623099721821139114536248788759931272844413534659609351254435816216021091565250333593050820290531087184651279422796061849788429172282007601987966255688186148588564446308274241178811471731674073350062584927041220971769261006592839679624088669181233039471726795274147517866723332184167968695695741685546992387941931079911511839603558895758347319666730394037441993016732666954111013165931643743894635692133195727076317426112872216765424484833934620648328801352786224382899881383694041428349552794613991346205395834316432063042052241677163442588719983652702874511656346443902065845564293706072033320091685488558114889254742939057183656874093241026823224886379920000178886823273329600208114997439981102499231832141182242482024113560829588018062613363180928063802556151040711520843840933970771053799639136144137065509235887966648325618230639674934759209114077874792855772936643026169407675929952816156579213234304355857210200055016979627727736020491669568064461173529670540752496357853618307154421234015452670669896899526486847540769390701256380264379131196473500676907610081831359267521409962757333006792093768702687046128629772890895923296890468459084737706682806104880645463838887297306215585353915321881719028291296337377142053481683790473069176951449613480012243859732413975710145434475080178825985789883953921105664984130822359531413463877035296725173227127330687440112443246305697789394353395150337713763448125210347893032804087707237196408925204724713808817100125333896626323616940377898593167104862079760751184772420467574870261290439322146990870842204835616269449770513467021603997502938540067773532047636357831089360915068094635094279137184355349840262230760160700362520211697846078265669509598848163902174358178007162492879217211529717930132815762169318793735900308573493720349802507525752782675271409790337502754031722181562835122418857417442267979752518785363427646209816686090918578069804786400562625175248197975969347865044645819998424694246073646504835524322290711053281621161837566240377076692769793003719340780478742260819195879082699856779343892656666003851216825907867311811634548269209941756194223147466006125748631131511327577250312028807325200094894650977520678937959842061406606388035670184249557726618251082839064135925200579679926584296038200850802397598900609117670953301115917817129435738008332608873782103204667069461038570729975574709503525132599478563751175559993798334836542133672806065182002195133267672108462100356555445208057588773454911582865871856841645704421584071839652268981317792533394832420028641412581542352478596636244929283147403409445999664085455727798801961829538530675187595204722977493336874786902842007061531664919445170415636266104222325888600647726245016701920958093873532427917952038387444337981870449121367112999266369559868185776040252911334430697112545872693984690564100027999632365012974656784041710338777573525726581152926829410971253655839746641468172039536554021794549814780859057319571797766312366011615279079478798365779455002124232389888565654803026267434908874144376311137011221824709984635669255046602194190502821029577922758025377714837360291229868388491496608211665194809681026355055458274499994798571040778887849249631783674189004085322203721348693756343033896184555605376755077581442439334027107245004269743208921741510403486680309484904900616488119950363979650245144109114860700788582027901326248448244800264637356427701442486403246628526737757814076694881999096532857683613006085962322171828139624104927516632871194253956067783641540513267172428026680254713290966145621759959167178157477924654404190062394147097290990025549129901735053550510158481945366881180098037328036885843208078243660110746909275714082445493784865608866769227666814942552380655345627784877079667263761829216264162532883123353383086491186940144817358295002634272417467783370744993182991483372536529749303231662373436395125919544261837197953851033471442690520200162186167756809758761180266427203545566422127320513483791758468000995292209118605886635832817777610632109347955885703106697040102233815138658468652541203495364412082272822490789612930005581232028433545968797973865751156322213807446367098405317907542126213557548153073942039300796071094815099444776011651052124171314175541342848490220462658070733855891895464130861061990827319310072310620278999996542921954063403914221166894033079579362154885577407032332463595288115562083568112060572881633071602904683231656267866343456857617246065143680077844144821624403664763064717079595282441660511525104598076673870873227113810703331372514898588100053649793514938460235118423494208896642034367677858459898521577099101063713976018401154426406548482015292464377782927066762921723708724854466788990580001041524899026740534621075850682508075305845188230129437484482414911462996497492599476935844896313981730438258510180812318192712374591833985910850802932690120366310242197133302167946910395165070005371364045034202148718498838052833952617333000327835320954869841855448771824351124498278813766586044208769102214292304579225438489640770752953901930098117049325569536333212801448684631527546705547228374343171987281642450949811205353515348606952417524759426308781574003495664885019256777886419663663305424527995946963099784307640076884028091699871028099052452668342412442082726907563034659894521181757876891260979637581194874124663708629179988802793916372189651478516849639101841784956429699471368492563976948561567408680997773433364992791780134946646643362695221480965475848165357560100790978524840014567931937738131104805933875515568431376838090602124015648935452793388986182273053749368768399055451562208892587399109388212573447738164422965068854285540225717197820041190085466863397629209200568035636501082537376698291374069671703141809424956214922020462699558180455392595393485963958924505721286427619033301515797693446932492442571152644461007995995133038647098094871718660989525734591924454532127648077366528547886145378002182086717152534766056683881175923085848721919246610817928839233582975473320950121395502966419768476703532111306274343605808992442002091686413296170085105598222497740254923372628945991385285312803767520646892964156639121080577710785488968648713585662066512815476368153551249743504583587121854702272582345636637692591485418111795728902450188181386977271822910920506475880563019761326669246374595730828174778413397648901232648139449096191557845201371658862586497309752218424495294955578552598894920494499142084201993475926343289740572672260072145952053609055729023649116748891580374494430813898623131878071377302167732884135369725584550843247018483475325641442034122991931577487457633129975257902157382421978415976669071427219801451367626508957306869471944773875384202080554426192368542163684130065459206296278466615994749357257124376115355495952277541376557292253050281156214579529712120818935345930367903954001717000370432301426148654934603877113943303476497094320962702700897787763666612741058307577342599559435705753376588797249958580568939703941185565382145300697001406026368999778786140333985196700850784434896764520598455267679992172555821460890236004265100796529384386652930656521400685222308286077931965680366480999483402780726507807085493351603644128968116435342034305499525896409715843305427700831426998103919567357053225148453191149113654646527469768782999296020005770562021614328261402918170119984667357727622730432542180104217955565989857429788028736696572691542769133497420924803665493607033846356323355032846634255851901738937497859938968435967846694610728822372141194812974374340209867841395987591529131197578770166435304723813949983493253780371730621709371758292318395189986470762863861095269720592694793731565415343487382679111231860767636171582710978518177677180663441720283225169907423838569025806420630415134136425540636267765295042620671244453605494354204995708121905189758194706641442033351023872066918748428565794439958564119014124211835562432302549881254291707508963845249649163574314975143134821466275674890357802358435354225199558671120430288131784362577833442790132511985933513995914620457316720215350046033461437027276880709683801878268549745522725034371271638434425618531186040209561614898597252761821593348304363371486418666437075564087253146211468277283176578457472596723357989451368918928014487675084040948390418922459102544937730177185254001730178560648230375475283455111434140180276763759652527261864736571462384157478361250999660698330029046510270841855895853715388751566896466904778748129845641750621789473264724586314168785449275698455180175895663367678493945784371912177800632738835159840649312723720205015161454245295895279074216961289909225268306094655796277813836135017711371916517046295997111021592952051173797515386367748652181755782260315098738774023755783485845494432611320998478426029322219587229643229089999175312419962882183356108311171643856959186168080321471748379436382162842427123086724877457762636681516507377304935192197167131267083595547044312591240454856071322597475673177668106043047235641441735028192962910933361020503621742123808371064955880678471813487258175691732961784490550155479691884166388905819258315434756815344208592329548885264350966933856893071599001588868418759665267711165980463693323856865528567252634517710308152905504210062893576458198001385965191906029658542230854629692605134037417783239750666678889760727104759215170170397463020364951361154094219766061692261871218217989731418759370939687325168292822299519168529765674698948261956807232631395531838124170477150464911873503655781761958044690773235797012492880569116416982489160758676526323311368679967564915634921471977594103657458188631384668142013067600021748348604854037296894337134167352643337479356039056807064533896074996327678519140320650791544966034905970049687709918532464471228461135479576130615002288247999644458200323415817827084676064592426762725295956850783065264310195758116699880882089383564338737043322546215429309783570698578759392385750815149135635785524218865650469905617953411184143058242655997542438955997834615563012574960809021469636970786557519536222615739925763967029707146872791877455543382913230000851932394230078038899750077753617109779703711629546084403889581049560312993827860486887008020482783834394053419494904553293799133561979763867845956417482640272577339406288384921644128834418956480064967360559579933448112803221614155413074960910043727141146471391980077794010449830160876886567256967392026073276541846006058672197250985510469347044852810841160227599425245659479635197934804353465389803936777916803554959467222642274981391089530318230483196896501479491545163164793889959358053627904615669512365528197905054474432554624796219789237562711147411958764259207873087704743813347203657124106631767008353382060161361705367541357402000717316378216532460924282850444539316069448977439552266212777397172747654636928240753549769443023028140595875575197178310925115602962597375771609007362791469230523476353372088092899004391365803049904542441750660930594596594016299078519612666823538527522159805805881477614230699059627448636837738410765699185106559019409171855615090487921834568404087921656336438859381213027468187165921659810919082817112352238578637844661693661775859602519970438213940124491194083663265893310883135484189230501835049331210599241985083989090036835610087442836028680700647514743421105469320765446005317053706245091522139401869992804213372869242201098071723834354030635320706203491472193886651723484259966424811003703852064529465488310092032349701316090429028868746411416101098763456665157676902226292360518612314137499956327987418819344181418433439001026412462097171864655298986465816637811887429079796408567678990109091897976428452103410687322681503815644212111193213583771431175448759254442643360146294076196107918228399777815886773414918611126943575373830284350912781709342695816238507157586254625786337424078130932305698463493987109678604517023950593732073762452032287923990740407851400412599778621692490394727827003566369970154091355664877957618405287755733560254003510547595213594188430083080121163546902555909462401503853374764642277011801922090616790952293423835795401011435603636677288298472425847674282996346123859861467451536353970906478364755288616359391687714153324346132302066769195098710054295371997866515960078603080683944752581949587665544404896729739121613469773790224282878791347277726441195933252367261856738466053805912542241901764218481128038829672514097575680746494687233467774104469180559866427749146132136505613148061623599552559628173405170308686713670145322036374545018454456750629050463778073386290883569254601508817526969171547391414195407115282588900071102768199467114663723342091417003226176576660907185490001677793364675508189236783642267282216517675765573144457705880285003916808289120502052878407959642368964930576156309405305522251073674330835886836995722271677241692715325877836550253031672671318101519169008768529198258593344086437652737912704655807074006031242695018878105331513834811055057015746332350265470065347792996353377406700102508920427433328051342839975227291215264280377533547854943818598542407668509100016134768371936327568573189968735271177895865898663022005995165811919907898090853493710106062188373898231144910049599465882951442648365727587925434902191182210895240981248131568126867053876638850594337028346239369102253576543694234722472146772511961510824187544134686045537886726277338034619433374723941807275965387181852135523993614644188707464504707242338072294087963913198384035674718909949561324136427953899563506839679370747767483144201530203826018727426885969181862956066527388324095706088212313814339514019338365600000019705868495390321994681887768457260347544236340146046099468523273910706434479301696324799527523176913919080571383495440886391143283283404054425059292660283402185884495287519806082122700633898151869513407177030266210237320475761858443512595088669538398660866739319333336044401228589519956990022868317184175415066896742624734492209782391439027591685139178030652574198234677277097929542270266895470479178036323387285621223199656798868933375370469906825113312772703613334340106602351932949052791533776374184171499663792245394372957528130909338175156211055227759842865748255106066828031019876746078074725143385556654177985359541660852716891705893360446253653998307330342109143082501772582559468820039895599994631306663957993718348978958943182636912232288143411403420307145983304967924981540347073168635154229605157118157002776727543023317857731080044251435337970636297619925816919344448490818246572942673714730071819493705375487706315546304907005777099659839216753539590751586513166995986554382321915304017751279827820970206738016387796224494796897884272919644346488701984881722668967813273943706785319832201515676148563046124901388773022130392413664725068886814910346682125129147605436240568181616182982476572065667391361035327241571274565952018331140961795587257579098916609498994252483881408167845154333937678860453273652745417956515876939484418461597446527027819980302797622636783846875985709341785789153176296505694823439483794053560815669470074537313186695051136722185909562314047865649282970875028031482817648657376994435045223021190394452423532521586213534862212248088364705121214083528476911608944674301010267782340846107609597830857010025064762048513298703147826280718671773605187429330455505007590700318004287372470102831458623691534205947927703215339535471328395241410673494149246101251453676354141643945241174107256608670071915519510293791026501554975116379915619006562983199965521829379535344207205416643416316663068525477598083074300893615139350914220823733099912793686355381409082791791245391848746358145991089995160269094214988671035871889446401274314118502067681427789586797529503263325466232169382505172065849647922710101901480044399474774013611066227200719386691489355812829700002737172357268352254321873080386869330870059480688388508308142323730236701638538587783625015968864366063441850180445270481142938481581561165605667721019749844467331014554683567104070772960717616741825077396716595196437592042257338330731533422881075572476645890444980602050195586899737568060461138734055280254278176606767438383240020227319854072477770372843301176001487592775359111098366051115102318106771486914301158922380651502720260737682800908048904696543708417071306108347403503029480783405360289789320376238518368150836930260976784958694088368655179087129819691300985501190567113983855884639109898935397802442654262027573053568305815750119851890610821162385169375754511039659008175173061275112659262263475656483498595892519734246750162997449158853040441831440945165576406241386645214846043498971934379976614066897086365791961930721052616275857096311458611731530031287666623875529175762382033577953739410450178013760558507016596334164134692863633478599907725215300831869803854163462753534798422991842223178083909899333884517521931925010486890833027400539750271986879043833024077307833078444220365191610421941986316869962845995926945606370823295959454770974104629463509499346811495735689320386152835987804587111029690498061260453237656373083416963257283527625725409144170835549223613350713570936060986434207029567426817901945748134878201708051177031328773717485365311109815232802641136476144709656452597752332094125665825465599496996843086504004381858639522287050654324994343970677995315131610861019234596889822032352013927079685512443673046562018928589009315268831137859175328481007199717825487794332268107566473589137373863747237217960639959044817649783565590886987037980812184954329866460620429175270798249559585593572033479891169732678228575955361923446715902096082566729156819414886873638206574460487307020617971761663814830217376050861357439128586155754488880244863581798713469435520847294382569626101140833947054025499746841805104240838110236966742301278151192531492692386997653188405286380078535495464775358146880163619771639033362389687421748271343517580607870799056900564085961044795402086867477523076857834311421335719468900415580978486756126476896188761102292177424086333748541570687027093419054172483252989524687215107710181619059449991375835349848288619419204646268814545471493271927012544887478889093563462877747408827326008271077621190883714438574181354448416067183453156803500432728541423049989936592902993599810200231604693472352445282135340897437995496134840063584061383946164268234871728399941680885503593583843908502117045929163607325485998108909148554167762466653525776486372058904587298791050242604195010638871509697074074667726019229101082189139283221082064910601009135277626984802170716455069279476060810272908382960136913282222304620774260345887663135230048070894038165391413448688691134638739537954225471011818223004633664672853852086476245186887517532112823156425610476650299277540701430459622275660661349934475040392948103395842586776340577728975010117964362595765789673129967143996681562316821087602367730963340620796956309947093497703207950367521728932826694316635396349087334032359885680684741214137614282090260024899106832419165546065116145993666228666338814599958363682697512731075959833962499354259602295036212538156506920104241816569700771001244613494369081012344219463352227646951416702784577663589457425305081547113180284432695423650873755022794678277151983315922459500086624333509937893522618933596002792552653966805555517582960635227363220690953924087763504009773732693893008783740623279751779157724480378158250862753690726307700523709427063743976978781579885385717417358394794532006894825254547916168360823456671757440996590580673540402737513476252773206673935670710059343585127710076585893768756384265875378034800825740683472145996843675515120808030779363182040698460750294020976606266086512979691817730562471039668929883627608783709973470943165588463646657616762355859525434140590926935132444302993043938081094453673293762381948003117640407156550339293554843318484524534550835848598695504926249825808006818044539182981558798869836381636852882682349105240608024740560903268953092659158575276533514112023074781760385021783937027875199020360255508600384211043858450132358953002812540841692320342288743907487045177555734759932974231983327308512010762845591412016653592050238149030540714288003910807529595282534550462048804096152327251657879388021464103330020639364448255348223240779164622685728388924510978938053942433565845648085926822487418728746660569917188265535498193251142577393139591465424254917898119910164950789832774253685757627475912953091660206545009951591747113241372449551020919245143059644860384715930851172409596257708508948137109088691786181242682300990516216635841174198538173513179764614326976003405463857862377305390856668390884702748629083913328320768915362678839897500527105559903011240567173384118374703375356692706757212454570032427581503920771005726599253043886622686256535669353396658554021287347286370839010122053803174571320230192657345987441570521011516518845977245820846715929236389933546615744973706030741603119082708117841335173735597104325679463910720430528160653706894504941997607494066849968633274110280336557649015958286869757266206197666952619925343821391385763628654064508788069701122862166110335193360793142587988431180479560784840521508077903546147037610123242852041222793664562596445859507587500164047758023054969089353837108095974804463753350077079270093222568197861441500273519968225597105627228859160804048439460303620820120942278429478775336771595941378520889401341507453174407889904107874625901962098922822271349889633289796506079272365565250673747622826957141830525062728250589213844130474283258405685261242072717932981973957024213741739335029643166616127649759735094768982214696266596925456599882107440407135042729076699405492432728579123027778323975119948444183909558940289321925820610324138415710140248461324297825546958609689462300243511667276432876320143959047133405222417222064447130532656440898759615660110661907710804337105147812840952038563364636602047652903987219600581147186078080309128621854276701413676464937190675170696565557433254366572726453345816726584101727539554835927012911052885692877219066641315553792539526388364201984070485337352207627254276024503134344880468358030735588382176624429763709853377586652485861555063926101533308823695160231520648699117868209233357840382849487595776082926343304100587759240148393334741883614742122551559591775621320167593737476982487545716655744333592924645170073824932601052018669002665135435031127000593951482232845141879621430035687750890553468729839511716052042175065921128601744217779820242159640080960009652244485635547397691368095807668683879312519447885266518933219735380254317235765750869151446227008883583023538004772781693642028105714947573863825869844094755077243916529466956272031630931433724381114771644630979095034468056149760059539327481198484751472061979073836890086267216186299796901624905183074206262745319896733163827122405349958430321439506227846871773047201580794467524474210276026764967886672291388221774642537541522687165274366179194083514927024528350588760641679066025488778466279936010881838517343137776291740874267700530682339478946173768001245540236091056031925106476071276284564510474127210474847987979439886227354274023035284677508535300078447869402509367440463670899134269367103989131634209222652429811859540380455561433282369810510104536639561609417210886441545061495792234498720582427124998100741092781898798313818849418791652601800916324807055216564557340735616180742774416787267325646466850325039623502203901053185887035586779921267309246135522900681888394541882492272710780202563398252832818742183056608508423255364688613584806426165409388501862748550818186921756261120326249545405666982173613530445415323389365300455015140087030589263775759685201366195338003961775191070146851193514127501231335499809992919335003794280648904037741555975960600188791723549955288473101109253622461243338143647599008019843238842661826070431354474620748500676371899849555019668187546759085701722173708984262060107636320202521873679573475103174278456774669316067553932064166988793768407289626365154364655921181512706253433511045348037075051135281588621114333982142470492595855412539397816622282702777904650126001156124536217647614380998215051524772236291645962134678173093787182763452719154087748648926057397633505281681430320031683104819877884272806739307593513382823359824141810330527392493606429419705284287656706676925577434564200529168242495447903632190720980829903798674620529417854574182265007385766362605310180062394789060200540137778577577043731918064604392280488104039654888758135165498178063499999409148979731601355442296848786906328868080511199848031749350480952452724307569741312087671155998648532052065309555031249571733388627067140957578107545877185719595266638800799344465776249215238864379304041973838433787087855981477320950551921896649391641662672557243467048594955694266539290004022491157840105103151823654352418311936482768177433793543219975901196978637885010175080613047164220872532891385127747137415849375463525164174993300086544451080286160862064597985867062009302568389930392701851441095679702066974742280774417159525941849968875455199782690083404871429178820843670046062328909580821847905075840358664622565705173481353212402159243913502950989901701273095548389139582020601426040946513198514177676009708851688152355660707390818589247564280317835908750870969577058103154488901218463343329685793576015357505910500713829927736857118240199511709344950081697178065888894744757136720369173936844679237409828734844996871183253770693336836843908369354753898152197128792581192708799705793934754132227170734530837600144437281847082008649722352867452816367548041059575646087998154591541119723416879358578757934809122677441920303158435193255918468575025993368615822944471556100097538613640732587979373920509585971869441030185145847122627100599523472858713059023630890988264842403303004534246935528902381808533787006847382687645899643720259870953416330725879460008596366846578459833792492478830971857002631623328179506163090860404424501866517411948304453401265660228698144783725002463533825710533266179562671560342663738666354350274785045095989366896590921489217932482095505193913377028113457761956592634305007387086592560589962788199435042643992972285440586712697073417989664409875342740517242685372628042925632554577376912947036510452263309917967987860505660415598385483705983409283812631638486870037395129048163567973431984063730501673977257514900557788131192002086327922714971969962300424310838076737336644081304172151362336763342648363265180241360314991502775841354594615210726562491767952160212361091430928637407776489780965400028652202810594833236717880815443406528560866907612829172858951431526216455194557933270386434939578845680049772906212869080663886908373628873845584430799352792055428249650499323308781596220606231428873448352627785606404796111910726561590846712959490868995095901859307510478236505170450752606432500019938821172532523401492808568584389064770772261629051275839146974469287463543319195945908602739748361140443844611488175245189606476089165639421928203561353894345570230193455962719795081607045732523206523080950476339061899176533429876160945274583537378839806574232035577370290705500175480296426715311178678159891273770978806693167050253064776113690111948591943148817707258621919447351129587361627715502089804298431756950164482853386939443018542025804690442604616936105354483392385081031767010416540011295595842808363792687874232445392735499615297592465518209854183742595839057024940741024998441760409606209985412757620449510536013096562343310906745185782747175241673877271147409886500008198278187922541176398658233929776500024798458496328751493252955427945058864358681181570314094658466978618130101685721436586472823212377477515844236501793005060190021493084709462399416466417481954567095203759123620527065844877563182802425354687348080168713107395796583139617384671611037523538421680897544246677331716954010168205969822150664865546712740685254790705382233436869019568358439613283928591260321137763725350160645941896533520428106049215441558503152935218282107537154806135304834477829396876997175949577637649330152884058273636615335194143134308046038294016452927953678216523305133872415783072494612617776232290005987800279177951513756974653049234038786397354963846018587629116139124311926043632060128961052194100037151891415397553564016047615428403532791669778779027389289510215363703537183545435018241282646760574837117795243870839093437611016217773879232543498400548278095678680892988189862725651089188211855613844495964314531171261161867617739368877546357264206747112473272709323814213104284628411053369716602489401894944757028197738647186355472939941241545805363714828222000614877820856217167713040954427785271557704185649388214988730744001343439086656311876774004159695080451054436301836872945131996215949082127056519741789190756579044092654921798929351236378698984706346207595195554379656489337832502938074548422862526028378784821889573407815616877346179549672979950674618744859967610496329241567339010389017145273686518619067946384252341843177345748012482366378734499614108422797945611236369703157336559243260079245819715349238950452802842013200868128736612381761314109580896362777030381099294595408313131973395145012757777092892363901056341648846001851502311843600719044019639101741489110499681323203980795374591095755290699584809955241911435190979951010611313237098029724370255412420987499562027170818000502571089016509613297993925131427233205827656381125801745508847218074824144899162373181540755806828237704799907080731429877077129530780098824063480763279956483862437436708182073599050354813396679725049643285288472069105579186557507555191547527350880056299163903352550402655694282463756677638413218237233867547691647293159182182489341676301410769364931753264001444467228557173195561361322043246202202316270407534608616480445143366136227235045107039087723945854983985580909829073237588316480393679325076148103934071713929502270753766983605493289268449167224558482053253763982070145257614133953514837268619990454890064695683666962896180532859314039387037444120485212638978549671527525200315564528495472962963254221172164491936306615052273996984962947560418913370677673367141687017760386850089645408357204335485280619992919365727173212057905697519685202621024994671682924634728761832210358112865101766592554125106326600942179954072209304818529865051084998192891122754979244226211622804448619396055364504316432765070669345488176832215064332944530662063568973699887122239339384810385985937919106961652348417306407801480883822343147165522477407215362903857361003664931352421495044226901597106786363257286354757017627396627291075047778531763855126303183845911801288125576939359259108963575004435666318495051292480721323645964844596570008943847963306444196260360190613634491966713385948732857993792129788492265396112104597526818078180922996639439233058085360844956355838975559580716268097756839527854191284701519711462102754230225648895735006507682708652423805800447018003303600821225876080056041640580649935100988909827917031069114592481073946444243743725241677997760442006369936642307194067299174778063493070624384825747645764486604307894073653159694510135801187126160905341880923503728458970592141841356170124574588148908916795381772851346430475737654308437861691538141594843941290740447235558664212330785921477859511027858108455233284802955848660334073047351688845231184884485888673580443515247782794926988727563131778420248121405823467775511087364266951627522794246504573512096641525828208800911270157775833908474627679939682568351527623207867673463670604246348615579595108632095143601962994994356503287557639688137994816138823655687214138751031612006487407104745458807969378938068758119754634548070121591932334144394962220549033497235350921791458107605499959320189623235474618329817261202845798750563272346376662376881171350204766751675840636646051643087200067226817638794834712621630872978575644760316591275989669863178202154355031109660236650198054384842575478031682777483407576606190470703379771073956709362537200688188356226393523100722112472007698431679693054372648606413342414082041654048685386575939068082901118924445700449781607616285400579862500467055807506515461984627652620739803732391192887899283611328054700679915308753594872642617945722870293499716325167002171663421608166848784061969158631994383382269753837288139765905990281864423477868836234582285386053703850013357063559449583946402636751741471845406918333770242107579263708631615443432462377156280940141647209616141951843937400780425280588326655866214841718293743602573027869464735635414419396947362813220114972372279058022715509008484563622887169958682383013791776820881745264760974783441117564596784624383128387392277118673046896364773341795622065543499368275576296819726463865282715243823809674530560748418584564568013560865734625475569817616062824291186951002824841558083722017897862484425991444200468232589094601498227921706817352134734642299010052327666489108513817534193216450131084248133897043228319858182290910235764520721377352180309398992070636263200200675508498955335304308126893511108490323594823590786980117228132993861346503221807580463462075310795051751321281694680436383681368770345999790020223309396849106048566575068360465750947505932508038383928058478001101783102946075556242337416234043572413878615953668207005964279184664320208673080188564600765496793069623301315541753157879289823862956697342415761115122937819742858527192947726304645662705919371484513028359752878672297978039286081762750279703226857243749335295979432180924907958816341255121850570898889569307639698459036306528556585104484322805033482081670228180809540306681663120621457127700673520016940843589258626857499192066960618948076421310529934549105878178013922628738172522819895475533418435814604414457624193329078906132187419832573092035830306760965333475901258782377494391583231542923440474477105194080113211934907139380648069217575102154921774155754203435345843764419666732075714301094147795029435168982493185749400019235972130643164457587595403379500173579691781516463278132902543126828761987595681752998216160870537061549629365313016864502563527417719602241886520694117459954234880523716705798805927959715434971371058288675145730159469681189771822939597584671255400123786645290270079297146282336694084823274724534319129622397493093762018014198306303198785425545721063866416774843736268587705405031897907288980798137268267157749427098891220237774970438107752167083452604900001923760923960231962854345599000424356033431630628653715819282732799578542878095354545179828990982126512894332589287593001166438762944214104534984928129336544852269252056952218958861326982442716524126036363417400971026649674364897184828070038797405994142087541573382618722044307548414763206033476512293561727174058337839263422433356602360906661801641421655679336880976790701259684917344478419367197755091451869668109677338408791141779108976450498404634614075794259767288436272786689999477371455575266660688863768909259485271839496437899425846751188793731991862973730822486763579229741969492909805016934070995047658887939760596671508211607465969548804007921213686435464062096434158687617340572122855501218248166759445266712912506549205239183767501442461562779880745610780303376593059234750058604977621315814441232243411208568241648785848538924029380519359224360391172288615634735093830206481680473706081993554702769632301589097161116380326168934381547653319276073193809118280220802591906092070884174204440188976671686023593465353319014981742414157040278774605656522355555920655578068337733708362581382053062287494670333719713342345319971261863273002369307157705320436568436735433059660556534303949789947608772900384294618531132903876152415212485706644226308762727017939875763506129702642496534973620127681320809463060123715743374793493054741725967114466089824074053754944688647170982086078792787459190476753283004420598770388811016300217187425248120162250336893347912728048928111508504720213642171464006159301564259567317767233093650360191267868804781576219350403957796641771858582381652165086214030571764094157221534894422601898145794829443583023750153700332212317181910805263997708285571487922148814564950384080779226892332250172888427644737583796616951767274115114182975359557771455064651693906625033892989466941417278043778821151266605767220248995825942913289954197436519493366619812672415678009976282685018904226936972201495619128697800118656553097420131682570760169462749584568110522723477261766151612586203899670447654298509012543312237345148540214471304091203065630986000065626507710159505102776260378367150784962672251424326817353741199527145122647393815077417832777520369302988823990750573936742359703293730999243113388103560546969097447334668491327335337608925052067333847744793856982014353012557498680792666055685254335534806447052817195950617193268896905758010556737630495427046125787736407920121198501244428063276775681936396849874020778529798164689374705317645533999972800094180687875445573843072214908398083774426173398990079837146509178386165762651289770217962414915472104703780662690538396065616559214298814737573688227539184836178182871056898344614788184454948784742967418787213158814942525927098791658145925146311977891681655731613632916147212644606937322913243216410872223751181993055655879756362710748913851774838822443309143146230270466468927683466795036777602462315048212922153681533511901433097482268369684548526421194299493587168459763933587011595341498884014436026870635301395439850432573418013484781763628030518984787829253393797576413340962279234649019132491059980841950178209394621833930204511707721943217458761372654903497763224618683778023010397817382925049256586522283696379699143384283945823818373866668803022319024209294188313024242572093110724876540762699839398160960866447177556535157225184180895316810335062611503806413370699204137602216500464554693539985661083608927485753984183109856387697076878399252958743820034192967791864430943304114674021567147470356272437074470550120258555089566362190348196964409017062858674463018491842614621745327221003907772757324409126987736955117966380789256746390599554846616780134970583119019134232965018063399668846415323369081364208984395371518242422281381050393863010249387037026674485839318108890618428825456416499281003793800580074603905548055881052713212812288764305729469747606101633110036589885295515393857890294202347305661535794620200439974191065055571964441967461657582667555324553464380504311861117766025129721636426394726652297303154263280662260217496154739044203716478415184766751224464042125569187098002791741510667892935033537995865762682006719001062860701432923738589137972936012796879945184043563703723167595184127304486299095778068740644328658833778848706639160179611555490870856154756192768135445942985985695432915871814894663466681585800306620238634254001784240658362019019026189595004107142660112649382392363768721609695811952357535356982564491365139648132179132533933453246806165417446513525371682152041828193875729226153500424014232584605960850557099336940778130948533796519420773872722214880781127514681412401918964176106290638067908520460006112331707265213500995144792531715288353573196080988397196125425621682868979960097567057743490223945611973809296382957446906259664627650292039584483744114556393414814283560196451796222418601194781390903645161132000202751898033134451019399937669647592822966546726495797111022775964749338133035606426495683848291484588101718433334888360608930110068985930902464017033748349452737425537171113554081440765452440848030181445026253726421964121513828867817670580806271899096597431421701502065638344758929665748590941597283566265590902699850443217950434370583620288222328894507695332329401267877209659834980661120571149227813200402825412292704764718044503682446062215597331140543530688296964377118875620559662401257558853329850002205013960634494659449812774887199188478740846097849377295064010605422605072110902094549840560301872733316590430901094347981928667297531488479389785787117998650587107420698993229358388986743019138181448573994893141390799763296208446436638714564762900362169013764126452653264202342017195921601524927926188961978696260204655906264491716738455715752630343500420677637244295502299425681300480512285604571805535358783314933366518428230959221509224408742105127880563766434124813281242329479247184650839394099376603942566613069547103532875171440576581291142163025910689120649787706717154208262022428106265433666475111340412175907827874948256989130791727280897840184485803188782878326055048545220190451700724280654285579265012972895595400151602889158899149520126709976257623155403019719807668212465079723170941794673843418011330147781711910033519533048961268417602674680495325264118542965536164888217169604623950293661254885355313091835213002345088164576937350679742048719794398703422288885259175654271156554168681414313958634640094870189647594192293857913449040221619294289963919432066776299308782092921322218892332427367571856627932423751955106237410601301675182986765125783153692131176742515749199439231452368506078368055421066604330040275563976429935840759407012652009375303468396334300087156226489445469597163664370683693472602157384887613252671379647546501889811175919047046088101283283166382547160502508545736315964041765891401895921001551847223624594551004233949115915409431339519451483882851292022995939791866556499339401098523587160174203583178896925584363993385539573497006006685030568227271969563479420375351732740005259999706561246147361778169316062694494628080455337918424424060379629914789484850054701977821407693731178773548848423671584969997219455850170096014456048661298874602099178474822107295833473798451439815762805177170991915020816021789454450302811565234751504696606189530259717202735744811945150996751554136183299981958815308357160292437640210762127701646735479251625730086597117487514158539574514813084863692505977537784584943665930743040116958727638259326379379620904728281868832189159517714195436202985735674758184731416398106172847395241276507138697477573599355291038382577867505002067432549188688943583195150679749362329856055208109603519509498131165183664604779280009004494652166888978354982317782864669468031218042292506204774105581131860887442240754154547841218236072849066137477973567924830534682437434825789356952692711034703787844174313962330706238976464928172512703858973666766139448518938466094837180450321630468334408771817448281824248199238743323460788894850709111773515061960596920046003685889371824647091998359598165927087631981265200561689402877451447866628288856598537892596716641762549101617990838459539348308939652657866883932327195444940702759973619790672635497963082332868497475013349889461364230629220996080693458005553654061246945861166194531981194898942816855026404642466281864506030576348270932860768560589940864623121058237329123042409742312730928191532229480813601264122661403601108883386990829705333179597288579755819313371542092221765185941754328408463869843191191619006791005143322436801863359335859612447309207802637472689033133587248951933732107537496963096108804895410394012723061493167539728301702945841185538689696087099133513764007222554746749950819176615358139609435389705339881525951986452897181237740053348096358697777382159970229406242388789351481037281374204604919909953389336233868626138708207123014583238798845203981366461204781184115971457467305069984011330224589931843369848745792580006221810007838864489495595016032361159881298145860085560171599705914092782225747144054796153480284673457081955014530158588041870244811729691529444448449563878286670955744751972780931925145978001672257190727683306558504228149072510156190801378492436130153259902298363823121421232688282108950402936225854278408376179223338064474790860001277238816809435865100907720295245266603662386914190940835047859495309883452118215215049829294261491661061061855154993853220987500090092056522962764441678940810300693777794799872891866480241087680535269030358157075676122079428570598831626411903903809418282033439423125227793134074253273835786571924073553061068766815267984847308834738470559255411031585146517811079619437612139101090345770557657800541155253838693514573640761803312826728631889335222842505771342411866914824671930745681886310347130736606067721165931162595740898343836484911418477417429466668878350688690421023633967242210115989253554602760143212969691326965687970321223109184786221658343138556307423456887785035376598464283311108276124680721524574039183594861362064577386200380185407984139109796921391596460956463302928281904470254246604556029005587568892238133469749396540107995023375867359525228627750829133960283525594414314789513064902552387645209121586184835147096930204942136955589238355074553815673058642296760024906047201897471989570928336741292934824571435444186797553241531499208119203227295190176594481511310152644098090098136640640794707565825662861702782650410798874015814963452329255611406905951863501170619227714140812897651613743026285743295850727386478367404667151343812344453562419195939644746381617270140268298101459816539223175273305564339086998497870046938080800015203727026249628577017562278499071315897671768288387281128480534213971160383293757041611572416704595909509072936186852226969863941931018265876351460325781220515018956180756358319155076338264717608008276622105058958507537635243544578469113619045586731550603748988202284326375593118001506471688041260788246451246790734509857542194040303286779891535743627070045856476787693581541702286824024033215018399735126958015482161175529090721845317571972968683378540030024635716413834755328152097128920493137985229374043418322255770647947149211411925733299455168788239634299138180477536604823209211200539513485342581274705820648628810359853161274524472132902536108739046248220774405970047193478858555249601663375361925888741977332093804403376398049321044342657346351104781401888492145614201946803149399614686631537110837640469602193929692915301198901649515971417126376017387512046372804390022573768253656417031863128324844652905006671562573579936813268724601216974533690727854037757990956600509935280005607014860164113306197909514591525706074794741798884587640194690469321405062100441374741688970358852822713726372593391568068126137595762142316188656739762825599493740280252256492675498196878771577379913455588806651298467127163291555542822794482993664069746404307783347267045219112282555570032343301855803913854963374303075374997116684569712765647131020921133638812285101273573320885249126469854291355029580916332482681717321141607305013581552732870571862711136583663389064394792452257166586894006080425642842836692980702777876769248978529188355603200974431631249558708412735763973909714510702809573081037660768978816071327390346732333880236954486279739260507753789687631283737317418904994618621028739273332232267396673307405448741296965509476451873258534772613261515439671108645018470211529500050290161526653345960068974427464978719455935234549238474000941671829487390681908587385348482833184509254781281888870037615836036185270088506804164694417475031168167954513136107722089268930681317896810478957960554086704640546810797951603256053071807819944179443797770748066750700364452509594696674799108430100186481345554327992942142423974674094557496780414446513918863299527348374233865787965967104185030670396662230914420346123650867921825961518998544209857134396927633586581407512752919328252288045456203916391232080557839216567465267441838242534375934599283628311303885088021932602238499548776222441118143806101705385793884212520783195273069152338152175099000668832963147304844842766309539461155113127213438353796659751026262893658569644482064444809796771519634289680667704477840395554322638951772859913473459200387314788334075444421248409920712754147086171720281834033069783516419447538301806856233348209866186267983841475862014498417277254636121000541975728819680764750954322062567928849905695189678348947912819450987681600420868149679918583222855933816832239548910527351429334394296353139384407370094753650493329992292126106032537682690235977781369162786819485938830861360746298355955386319682966246544484524827710229380072427023129168072533542877199154448517790650070368349108678870800752549812024611908695246148627520197498746942379556393454638480820384584678148635156991127757800665702542656294485195489956687189929632611277811435315096693726718051004316915059831723724113469499434970280988761092495952576068897530632467426562143196606666234908988234828975830713942405217390848228510809640659180800456329117062872595650363607169869174812710987449059809974051862858797967282390155802658663670025136867826452340680143281798705734063587339277781995057846425851919327016077499041069315851519822116507132129027806815989583975234870638000284166252060747306606862658146425222724210764035002421843246188318766358753759812851069368915086474567537806551369091214800766062166115443635213926732203362129444172915871774079757872437184951274956507941129068390142818224536435675460436957811596130540904819873390770991623287487591132244889544856097768941279128734422545872757931738872194402493467206315253052553985985234376673381187476251030397263043646764645198171490991517727989151698318008012056793665987007301400707796460005838692854176132603859070547692720600072981151589040769321690251635737300047444633392483682044326771430700838271611426919435328775584081621106079091514109893914130640798681870753850976735117906508538840612432884672207445273814466393869290027085533822691681092202962202073869545965833196969901492654293371458882892228821889127423849347335792502631903456315407137255590947275131668931877572627834239115706195081887593328802620057432435740875416373661302683578558220179942087846796931344970084070211812155972076483449870453586808749721778568632472526520445281889070436044362236542391094673395642141242367252941615512360542186532140484628851385899539648287148082042951016459248768306102378602155521051860316276821723647415754339227401594424811199634350261733893530331483310772060033239328086796064671242521971489106403225488215461277856540888668418641515769199312396902237541001605016265414914460862512755101302303552902205236191806160345904198733793181726911544679022224202693815394953789864893423735420298676168156198333564204295714645675803439752133912863317223572135959978653131584528230184235520568960584633504120521837940545992801258718700105449298765931024840263093468572624880609754067439621747327839818358362015916193671493447406272875924392839678792636681604542116840701854707712845390212527705510320934015756422617544979941363184897489647249862750185015980999630964919996359203195327645023848535966252009201540852906965279780087296712234871647211471155388036558500936664815473674553482084435789234306550358561377531597331480148985115153936869572325063771880398613354485305716817674327742029686410093864589897694946225586499526168429351831647747186315874514072453336750519607369323489462108225766944942679669733811678408703228921754324590481453184002575259041510475767143402053292445480727819653424657411325752883925858155317444437432342868217971620393522848598262305970899774029643536792269545601347254407493825806784026451601044605470770912234108902884978775396833700948712596307600888872726081584069932814137270855220908801140598588952354349269545071679277997611127194927235076390979722325109705223260965693993094029071161077810259332933149667682049816665363986471787845467154665456479749014020328371815513713367588930027602565353006629637186532063769424279806904800232595110640673450674909558363066541652700798343053155333328074883741212370177220561919686023133065214786726192111526772242856053249638293573942835322726352013590567356117738856985378392132661666875564102829103209004033053993111966159271899658622675372435938839119356101973323653555448057435879194491491699794899300409431218309053790899098427795897519269769127557465123712623309076295917790359162567463577293689125386836803376906450686292355195838468560129089044082214787805924275801012376669034591539333174194957775288203854877438444929135066514358789034315528222063121927641066309649441361604820467619125126042555697458033615204709310189546605035680480241452829859789745227967647566075759257987095232857233434554259687478233068739865725682072074428713929809724379236908060835866244326938951111776095938284340113559829838300100591818435636710358733880341751699105810961812526811073352642104698935402219750196714015314140096608234795244977387499397700426009773950186191321922182882965347351592121353396602057896824631729279791860958606755166292009231106251538310164243113841339661898385407857991106831220647384195896066070974860375277360990455577038822150330953870849528693061391150285095319775257198818466893675145470632684321754847672662982655749160956898240748623245544283163415477793103959349036782968474069026217757440372934927971847074288784132641621637987409198750774398518625998520708478722373457592550500808407907542279554965130057120001907736095037473067182994775417679903738777409434605522286569334477371879130537873956224224223075485106677705714980251738607156428562106592059167306955688114210923266529505509373161059842248464958086845407909926821474443042112563541837210891681337795086340004925763546800568866151966747213863432501465359257938333828665431566031586012289117910019291009750534767098013621930009687334325142224388480179465713938384757660347940832880705093012005049795877272802824263265242328530328392910534306022812193349742311454719299025422981916457156890149335966348584197608079849432133789286056194178219427969636578042208273049304410072040729618598542255630504764756815261944647992996398554826203469161279091099144007271234997731571339416745702814568473659990982612638647414665862609513154131254936205276682925814182457371381172549448992468002549483886420973710656821096875571300443567269058117147260113614443159790313535756144144054815563567309486976950379729493440646192254078542710207927755197765818855059420799090654354065631728994908194518156854476082075281865462305977455514100379627423593377184430763535860259347499145017272382768983799750668833907424690741350578511119924191666194894222090201160693654908264500985775510965563536228335034464094038142712964229636563968652081074914822447233880594827464938756897073305400255513629983127750084444001044578612325708848972919912106496405201189706196117785183304364184562544775210056632964181404954921054005909488943604543712897049269708032075382510608749559805246958505653302159360070095610450530973423390535019639591472716009061533676352125407809509972096099039196883335771733236445138682543497571388224515695899589131133818983141227674287146655768565792607322623721952387321680456771891842634185021294685557349602022281701097607384278582720885067269869887653420930142044644096355540152787028643075344464827311963923642612478663604460465171038094237284467667732526436182485976223091281776536272149583055691214058511838355202603400137687337791611765756068576237532875377784553037719498990312982474236997867422160854902351012204714768625346634372888502170526355993637244045828785017239593232511780340266350361078468652875998916414360715684188228225124105542120573553811394933303166966197565223258739260904728455712316789783585003603115105412072323961106389519119747654550154408914622727227976831581596424128810343682813092268157343331244692722886058895403120942769298866918861901806495543567938350243267835666110381931629276751966528358635277352980488140593840315010766314178421619389636930602026456959720629321750295688394220084961992326128039971770492387920547333327940338871446228628583193296109388513196778737600719537118285964045146712870273615294869468806905036002329492896400122036745926202065972939448730758613959836620900260707153318162962722890305686259792562319261508413859410495256504681985532544606307748256445554901249626376834304593365753097520360470853729408462339523731211620270087057234589756475106077299940647442765049871836531261209505988679095624881136671453341815989923403676632096848304633943771621917625872642820650997804061557628167899728464126953510517640662360885100230191071950670093546525895247056071584614878557893434138357921616712383579082721989339200566728199307027975692574144802344685575655706724069683567538361145046465471517053336197720874590953399773471641673213566969143220089863985552947484464701799693466835582674403169345028261867327694930450934412444622850665431021667220845557781199660221093479206272879106714055372485527805955745131649545492750615262331776442358410937757877991666714698177450993169288023059684197376807597106257026595613591525303986447676992577060258817946801896000299877136045732532443510908641859239824161577586366700262965240677097770790565715063992477600399767220019436994388882889270427748270127714975305852185296221267980960793920458318701759725982655003618535431630969825048534070471573081819377350850025732073087510739442576857898306231385454369927379178457827948264116553579398628534095501861696648405479701723965494296608142933585988628427823093697777762085416199205606423405919347630191665738945730361285885200288119328011669199303239884871630822508123958942144221138271680634410428292652357435492264760907018329705705646773278802703708026418332658785464005111866302650902117197866127725838794424794465296969716293863281304497015879423836512993514111184003994954895095949019544855670409268201283475550029119367369834927138080374447166389846457618740336167978303444141123513092145104589682337255061374490890040109921459901287404362920302569917412202770849829923741840369341897493613543605304450748291991958917280767361745849148296777413745327888734910330084907547909348197171960981780569750069148212910558103385152566458841077129806098397500736549832720625873179151805035708925152326010751834150195016743247053041002259204482621022359814687432212594015791005801482122281692293969397397514703085891431936784426645933158660648313395803028037928612918296584202019883813884001565392969252432529835340764384458067981524839516900359000237334689861861257657761530873817979922771850080693323818138142489770278968671262937210310498327429425223339531024578794937153120343266725481847232846479604294746846929690627109024720327610319409202597431626445955324698887560527073614210189450930012368013705419288281858158594242614363649222410536047464619827220041012226333620237164401531846944566029572758846859023679658782738772742505962723780280217935713321057441156169747117556862450257853279982462961631928946601579777068163953154385763874325884380663691078728971699246013740991100185653448617490150852878317532967280192785746552700899496471518560989243725610125306644829765525585005585660641958566332125125648874466406065247668660723075349493350236719236402604848076095034519749719677652551102148218783469659771086232325855340567819572289319780757113776353840684588565899164143816160853732315358632584389177487966438937495067357599405813162864685744675976895675137329932715019368114054856274138826352053322815365989546584046153974901321746817462694440049675806177173854117577184971370807704391459306156341727216372899079553240474688047287324728819018830660957368463775316970038050834326787184480329720695183677432707590518245710837604110189971517893260134497703469204658552610794222650170762057524020804620624948762628232208189177192850667341873007984093321086912265060568505271706271555623192635252442588018019338276928495499576153305328120614043619429801229132062749352320271733398788102364261034107747667581786086547457619798548883093959333709162015242073083572691768362171748980639703167633661893089709861531444725131509117458878135307791907391116870856302799092527285737171784830925549561289838011480311391472949990370675214574627714392755827001977472436602883937725566508214230091746981485922312730938079305071428790557694916077247598162791946147112511912945950799701124948741189280678503724490899386012133637184477441631419638027247216942263905917097740579363526145475889972629669413936123650182441354431396809415454373688457631327895812072811024414967454307570216013808340065951901494889874402643540743790818943738930759418038752829179628144715683217883192230137924183465292133543466878578498404234411736169797902509615117452796529545527623205946696112498946971846175920814584078205817557074258443407138315301644937428225556326767599939155938027641368650325578682387048512932304768054799022285684635340931253454064831282651425768602560265753959482807677965530595921097120829305439944893654677362260132512804351991591738345231064953179401191123391611277762590236667396451634668960708553658532755698565377611636536390154996615070235727589960040199194899080320466109394630537536276468942157729384443518334261571682294659643323902067849615255382038104990400289333379677623989208172349095220830835668825935151828488811076182662190564593551052156569266986036504873898732842500626150124422281935865952954208937971001497207844690007804702576797529365881845142986179861130123465058893582286135529438572344862800610360394684190128561188715540056891820924022989827816034532769645492635169318757490428461029153648145259219613834878682153468244345887428774277061674465207631574629959680253849976495820762282592132054952159912145221796584433636058256728109617203108076827297597027163209880075027009497714280291403881009214773178246459088163654341424832266104694032742182418556316696815455971781195302879476753983809489161030342001406682060578583465081466105177732609167733437904658425309102416082065601533850221809777012878981396112429235797139878148987485707889522900439959254758937223094387142253499566220316934931765617624847799774273809850958998058557834996720117140540473809208610232242710043539761270136483001983629465127944997713241495936510465404373721018929041423531865377607259378977182010506815165346872698764582764398804607600680698006197396545463149213359985944700177813038643490544537120099126940564324629483105217694040732977553177866970500756237972077934054881503431403181084799564572332920262038589562057659627520395747278530259884335643675659344781830100908277641541056011209770566629415192630812251825343086394194612604796438231439489250466134314769376915223496384393599530155645220551119673418742530639132357393659869420916402939328493666599603103844770637156860111238619532541409340976877117999677579215447564244098197891369810684164839312307506208425382014368572084086318902820308773830735512082231709445750836545904293303301845797522245739372848134306528346864763028694951632400307987300481078433752034277465550762657450672769720288087746654877713319713391764070163496500701043847442374955051898133155836297009344797342163350530509251963878208728199335183182909517971379787478438583125693224387087149040065242603706032918708075868682395806955623883220572904650426017002553234815699451111341848850557937930355571846129004328614122621277009096484443996115714900031077611245145540783831357517809520629838040580158723403690712732163833541415361809106699140428756518183727758959360425830814591617628847478521246841316653376822252983118631900170562673306085623503152689901459995073613662088298571269365610288717576941424707883222531245171977515818713535293910503720848857768500132753953757033934921313429022881835691158277168994447645094419065268687222265724897088432015140002407776561507144532648036062007411358637871745147225572306298496924898482285671179005359213779474988670210703574545711250620747099437683918367951025959904847722472585872769874721897153433096875006110680825611509915345260899641800643274064473893228349962086783877469069880596984359024058745121745052900424185076473005797219369571076875516261186847572026148593822291509497197978218887332699471908127739159743098615269130147217180203003081278166458425014177949386164300193344777879663994048948522027809097422934513225243918790084808344794786035408996458192802043939628935229462895944681629033457061424457998374238890357855534402909838704630049759283919857878861815802819056967846900408159996411028520787854064781468818802846628460280805315627319343363618141734342020396115500961883585572472994947269701545616141619693286227071861655850334734347948017731769570848771996496693369021904659961577641105894762533440826108542400651053508988133631189732148285762330906603739092213548909601868532575979397546042411615062592241786210026220375641402741001807577188303908935618601208603652405733234105246425527951704622874922126260478640946062422206575061435217611261228897134346155765685415254315304522825028093709216457911798440344387041035359804383051215825359047273217851499452363602989381115393078363829065923524728446779585096857593883576576625378846060504087525493164510948372000530740019465607241658501344291357335781138229382414288671630572750104214933622994274732784145100047431844817679726815707830175416170173930821316550956959272389402623878192863890909269968526822210727473090866680023342949223680244536486553639409248107968898758902993232482317613990475438380351821934845070743944756989346974658157080679069498688216167095294303790096309466748639594419214842903746625679092347389409921654431068543328858903596881429837008497123427975776154161422596581933398413571263201702544383877812979974789614085038348604050950541833294659786103657224243885493696257886812675213245466178455559892139664971608647172959380408455217267236643599801822384075814132962949779224137028567911413645624031876451901534516048540559431491165921948422571701430968728645346705333494498489628856807634573006410744248655185537093805197654840833110068769781768797523715690679624171227551254295961699736761278358636210995329679724204351521407908537129439836249886773082385592922778523635287255243959969119422821338137152142765934988892624750359513372390992921065252024555626239495687906704527266615208421730278077762323594133433233765132600327670971722930757520429762646055147773515593645706118363747404208590468634907668956605772020049473467069888630937721099487949582163527763110054331753799192156881383568407378877014583699652604223210514530079505518175544246741191564065903344440309081592028446897908633036937115106443474689861732852259817395533427376618289087778994493356952197199504327577196823508678213472549728912208169841199963459344589241649651850304963656398574065850494776254373794751356962170716617393355484048759573724264241710075665640213314003203488591076618845873340706731402813672129952960350197002394264386499391908374340527317534156189301109666731397037116919323628009896196816157233423818543975468657195475975245162619941751841338224669880403132199424643746493840349055929324278316803076192979294844767190898237734578291319623620642496882575836459927404842273953639857893510635322080005586800694815234614599341221454715125071005268794358068054310243210023280810510525352529397139146197344728450197893639387116409168966405725639824185621396404030032573987761255632756821032134643050700429286818559641458852570060094734226351493289269589129087622327950323052464176714876055899289375830392191667652494535870365094517219604954093599311027458612416627823295506526582771952107943726186312499886557621047744769294517177527156092059113524291727246754532398624080512377788669491796621661743832547655387716665794289455549668877910544714549655898590976647292842038770168163479383016276518258275661100135848904454491378825101807717612948202105645773635563056340411679136276536965686541060050521776271557472963386699842502889770264083710398636033935274903508136238125555520071658870646980846164392775565109651258121358382796907912098174916788447107067335742043795674975141430548299968605167617455653682924969477755772820811464796405198826045375118148692373448154875685155817441410160507735263567863158713571849873790167770589217012298389794673166195520000602136092413585628281818861274955685579016397018492638356114058805893058576621731072502654807210493857456311346097966685893335876590756608076216542053412473034977575413785591509863740389296084756045433719595414256516712501515373698716149018165019322155882962201263781732912276858807419124577209545977697619272660252031440351024116605957749986965625841104733358788909988450999830186218764497296879989208895420214283411135585331926093902329064597612261963361677267076455125331419322489995747684601074680007997009109401666630690524088127853603436150815681698700943632387867759429411893990475783748309883251607111260231543663312622028205710005105413258846838820431223270837595902254452920413849451030849737503086491439534730684730568341943104485688499745258303970307775174670410881659486060826398275036752523571499900905366739980066408531718684501847636005533805259310966122092984324390291002687703722122138057637660612292065367782249755802252424670155933769729654452079381431328718397681393591207343901071517613104282360436810212434009257737192178747695345339136484844467210469131405206940286063853333597614665996825794775928273813357445762327019236224869534245509445557163605733298502702608181391177065614289192219598523508494412849104575539718216852992261324504255575971310044708462423718196026471681155937921241724489611567097807322235296814576061634468430957438275234870503741137632532932227515398919486310056918041758146289896932738567811567260332854448779172530292408022721790381053583644378022386497913754047131747454319302953916907799111108173391050476200937212415618514990224073911312063453916573448225152945076723093843828107757508188207039751944942287584430126494034825310640163573707031368404886141061833931885602634132516365816520097470371141188494436766212616064543822976303933576768369581730769958478288640356530919137301747108902435742786403657549400906507656833616783967379055539524185338830650232875941923278452330844391709053216014240368070329579241770067048371161477831530011618001639231642786231969785356196891714715941338826592873406467754366531673893292281209289639957262564616880002459578414480176969715960466377261792012378162795066929893810181045904241274918652560033503072890507298552963650338739630871221139920207898487062046729915629263920584179638361580144479483958852029586963356575480353853178716760235899076626938391563143007328038670204272559521326340654901429865745294522931478022494850540731048225831972725288964221915451067281350999620524582557997998396823785805221423923420539065289202339937902941075682502599596546252657613212520927414071563819817106983521325446773692980337866097208229908778314386074680140256843401257736559615619246865906344499910978691035610080529048419610648650829910235109925246265590833175830374865388692648610888025398118297486161957034944744058217939005173188725635580267708842282821584973782175094494343627283471766416731420272590116219196866580031962101596847099885019355752198382653015742396361637188818846772277264319806260536197990274074171944073952338524750035629244251282099680311478624259327342994779190277947319821178141686605873252818953040986536874698120890376309026587742834542069873039396791732405190531481943142777440073640136898105130475073609397231084015931358247515356998707020881734785026876964835287344605204848429139709012236314689812028456449565730714520464735331525528887223859502867924926512897980285638244551388243776526842273354247005033871834544138340267736329170375868470984955205347946253333596809352781393508006346148164793913367590157747334774920599686775982225750288624145331771929846443609198949277896432571682445361620242311926296876417806842834854905295639484002400784347829651260326734444349345901159140366179173306130220156075012835103409891473513993380353626668401222474659326769677643184407486705323279430875234985632482874264998106048920323246843561467302759310355712532243725811433153927055486753434472091249782576514524090262773131157807323605005921684326949469214536055100835678188224360058323582347790014842719680555054860628670981581262713522295886058188292854950582732278574298880553181622573325272672885169939269954832636120781654025720556264287131731668228970837029237407683267012568910809832402245079250589304720766492515841020725693171398916035423925263733634862009338428314090531858572702696742726886757419711193486741228861401717255593340542653139709886973690015520408242387966338214411926827917500539252416803295643079447096462693944277742354770178228412171811111607618785995281372323754051254483274346217646003399177791707581347014850513899972819089066049863353374496653407243300301219776991093611532803448570489695238527011480070512388968054799613605487917717226576155314536305379191828131756110454073256542507193204052101236531504280269130129998072214629470314431218410282568969011405834965696404790338771199181639670858457522817279764301582890510866267899469738910904850694313815486679492113053297656642550274470137606696829527775903101401637099903549807316416090214546852221238266699608315527746410773117331597883665440847467095877192469172658440261626843631880376299868888429852467483774693386349096996367324457598793476588636418994156096747622573198646493442039816269776156329713345859755078860084260431091371479277329333800696326529828517234361305914999299493680155898123554399137388243058596470595162851375242820504985186579184703705915176953204178332963968363751615115259923694331323325817148556379400821857561768875139540181513099142106970835971918384972113306423808052235138654131130330141197002595101920557933073645160593541190223168882748712193699784615672929828544000733945862924815311396764800371221557346834831554005376034871851823446438737302495317656394972576777166627884849766219380163359877307050932396393370195872970044309798143581938879987050836738979562203489518346234886891088734048687252520616834855084242738565711966066863560587561451285989143451159838607797549705925066395314766214077665888918319529908788343265849878279693409619044842962453973945365208666632495345960954687892435053362180524476924538047039906262521229500352636836545808935688197010095365082650416916348233620767719907186088827397781124737148172325019151455026971335284637076708483278356961889217561083000864079745719575188232840875532078078502330588382141509250694067048533591543292683096425586442310496912214664579371680561505371239658978043412516991755170925158838979532314585825637111098787915224372773560927408447714013520383785955824178608914119144044800746005174249144834021921147264920653233540572606204312589280005999471420552441143460921336204217926139063972280314737683009383782796149096696219848336993570086135213766301969598422286662091627129053723429705191054565967333741393343370212146068956170660032863536670137942589809024778772796019910432312825255033728616854583866368477658899833680089252892214866777454351764461625369669736294430088598081779840189850416456917734399460285586526120012898105582331980366534262960830270818219525277145608851686897368448148120290004600230015060632947155961390831544281658401480501708242810430485429638965506493394292571194897475905357792665481202795156961615260618372886803595202179338551682849188138151607722101722800015370449734468783983600446313895374922892876039715694253598942868075749470315978076017570439499099151634398700671515328039686219539330630992526919600317181911067547902642524244996238348116994913651465621829629298675152059051407303746773107605797685938511802438215477134045986315159566923715780902596028272912809629927740647948660389652567297504867293768458881147835301027820862933194718234400243245602828223618785890440615048456936378903778018437747695340529550971630895267433032003268149981157938572998616250300520420468377788306804533101067004428339908699310418293497008932140450214465768622971958274084700606025539434853766617866913746849781535089428569865576561544119953972568832716572967435591950739797679864741547150203351025442596218188349251805882680070152982956831710601634402403032294270354226975499974713751486641138135430281095186692859124053689468224874462018723030940174267390160374260338188733702647315348682914554510026893877115309018433158542865116319200273450756481707161002522591419928249292996333662892316871580744987778673914625174036977106009392607230886814975586303484350975701565503291000774667667273750839725930354102478969979865657851756520252943833943983186295190069450831194007757728899539382340660822768936240446864237012773794270985933831984949644192619948369228489094476195481757800345654006190619339445000000401609463645550811605479102080864036158114382569095214583757360071934814150793329382848587033152675930836346098143418295039586894961147534673557861314999469738217040664268269097602313380926849333311219839409759407699660573371523736584663816824104674719624097081181455687708499600237666538061539854695946341026137792026580938428183186255934985292877700710102833474095103797086300606079059800389349431303918665299043092531554599774814988876482597864955140722141521593123343869233354406509297399983125270914786700252067114666252508075213102501981266714748447058164346460675964528427596223757896951502017812347136220930236484489134032003892687367198838506936649524806721991631531593922582223617115735713636995828371884171185545046765643111750563813362815324976970699643921664905384188872209531261179782501922354557199889247648622898179201285372725684832357251439006322777078729938911441313208401087021585095418576898665367414987213143028990450039127946370124653436117765774864247243982543626989758097100971097332035595396988636875345370679831996357534790300682827210468930775909730938681572327958486014104224854976968969460571422662720682205177838457502709519136447163026064006746844728501829026339740026131258706121358325141594608406830396943897773040234950048924103209132569078368122533076390654879636369776586982955016807310359801453109615123790234942154708222610597134983516086967959117907865355876216175533197833097380389509909837832548757944617190538911037612496928081629502386932855750931661414160255796781459454146535633868980343353059734843756149441262994899343691633667494607289150275371908568792542715245070135226472652546036528193391573959098984709231816749675055281513947724408416437735132777019924889641612194039297480000668863933484677632466962708189862475329468964116296579909041638502136360866249968229762985180892942551931545610183422652004720626448783468223192974707076355225264543021864599532430803745417943038575370544656528967941768906411802401000299451194657470527203371087573215052691806134724898811993011986183952118304088366957319190040643895896937436686817943653921026954787737991230076765152995436173446624167185242956954593794625937151415142371685398842067298837560338569026171231460702845475494343751572902639020619925148784789984712789486108050995857122918174547074468414665218684500168658509132757455211796236436807047273182594560015245817920902488023444056940754367206814716401701621861403650299810526584933460774755012594357964261286251639429969437755217651701966892571338663245433802730540215687082150815598624633359089400882192646033699968370306959362340399090642408914012383300970154649984586162638534901928011201398060455950536055869705374722012135344145003244114397893883558516219631482729512689309313419715654296488006210853889987063299343791600008312549832283597553106513056693405269291380884208964700882514010270510595078095839871308937164973177753745154917537441026833426598620796871753440859249850054137654442062199989869781516929598334776231455271744820938133577028494835206169270990768315538466155385355204301797873549818495646023112970470201265874548727947168227497354145361154643825653315318741328517356217643121303447053505049456109032550263890890537795606831554117676979380385248499172177106282511147365878682246827192573393640606014078976820492406241994645826761300988061221758655589342530063031780131507513260325836951697632470176656715295740654647076017040053502224477523814716202045153860130877404812530719415841700567191039633691880439258762275935763380675548828046571258919160626955820268697792961789741772725572317607284115931622764034886317634753875985978541345036644249143422675861277747741073157733468053622637167917478436239548820531398060180774036773827087950768213944600511124930726689645108324109002121473543436353103050634276714555049423769719059315505286627952035219017183300562019905647400411015593658132708897113320773188217473235366936055894011202336577244078731415180808418172996764432224402724565431518733791378550771781764968998463026995339143529979912677079098876545316038673066379059118052212650858491555862516165949427103472499775384856677234082075851516622211177755658835509148923421716843566684619355852274125928306724543184314067779082003594939945766905663563962494446231770240738442384433495987818694300119699342056409941996185855363069309783264722435750618452417726492458538660974678189436264554760277497629386726351847612379185194431894335659295932215894044493188644689079486557219924302537795430874260804225734106937322850807681260125857500973408179278361095952471116982854893148876100277609771834662896488178752235213765625813662511613852473756173943502257230102831034803937392878719437915364512768111175217977123310356407932057117126619260743201802059522829034374353229526667455246604776378269989469118521802346380296935165918060982814971601979293180719186449979753782501805675350329978324960105758903161637717878185952721300659513400105060026494155113493884103307053690041854301744987600397358713351000232672319562022518291971747167844767103309841179017289893859216103052997329779707559280442295985240494226571465449938390863272901549849720879576664494421111451036946873296034682432782022471057396955127563296569173603761905560065977833008959650694344781704333882764353629178278719358581374149683339265886165284242502106698230733392029851611219040974878481174136418047639603218358882917468073316488945164306576028558033883171893680824790109879670031093310107214263125316830517518471457230947278875797356628537859954916195266031872200198138662203759342349257717414777724828386073580681302690610385163674555938544520692450135643373298561263312137102193065775568631158852064480032229581575534327524398714804881188798065582572177715727227854675063498601694013654225651168841994712220073594976682739033899672936305134698028166211243797795081605139255073718702694568686045743077660642982119426563102994060808759404470843380155448203259575040161630210072694011010041301457501077316435367692849171627637724359074967998414921508941421170345086085168121281527967641424323965041752601461872538718183280649232442952270045173993473810124638195851097811453507398688081817086440258220355517416338954454778278574199795892414227004260844945750440730848025337987546571247883337048871201609045265877568668991439849375653274708257288768042463237259164175381600154447603869613952955093778241738608197250083402609918152763788396054118549092388172527628370888724999006022410595955204207950570838778798713024402945871558709955575126581524223674253732813935677669690155967229060019193213573540847116819951147533109518376387060250453996537310285057940160640409737723572150341412458396243940586185655993972613057367189730836521774364361030580780296744890593518029467397170478053892254940241790905070401471862943171566567396308853229889856351952126748243690613262581139767136202846351611439883070727119731836097717215766050619112528323662907571921463744106979548437791062975604070772462504904996045562960411926233153818199965745270351685944796014920219401141137539300235353224217754256411715813149709308708862208595200916092512123275010695187064385231792478778243820413838475346492545690713563826124694777916720554324493623223721580624246957778419934497601769329322377133251020060116272768148629588350245923029296503742830253252213048220540878296343367565730247845254924210595906174835381025791264541589164992329189943064702227669951524081846197341030220089633174452573968287754503351962879119811976875526385749210598387020606440164366985011812819411852100064449704456012602985805880196773727677885867761172462084965212186973237025273299053367945887734993421651532404592168316881741429532685608144566152029551916007806137922043113461924061333663400147972883847486812596463967999167317027196756922252466182602121766408048697061353264509298536709778767532072614146893124526004261799172672364821387307365390084157496139267533728037656127241705678742446313275806896219986196784528989583745554836935734943908667237224193881419400734850754638271940430395983351463510224614974912829719178106727202393391080582912947182255191397274654345421495556660348915747684421730346548298093478038193622748107685880896624969786887509237512436648552336684657846091917912054413869385603658438145936200103252815361966954862894913134932485371651353092198616690029592507224340188402123255061567309696184008848421451775648480730902598207484124543814486529675305627406596685510508832904642715591341032881910850168352445601880709093466593959229919926042747736504676009945631730519659335964095409159225906918124984926980483926035998680177547725172589484837775458736741285726030242213564594378213164523254611833706031487279428241121800701553014397630553450972825115491671199184202646109141696162837177716263435065046590236364721272658112267784098506569716978052843522639763648752134721323077938984814427907291704547744122032753768126654081826256454439038236746548260975062040752512345848726025193740009148149196377379349358960552053575732595609275251680888766143813196025084668585221136150186321995056077813884446953507715688764143878137937231804650064912809444660042721694742304973282985493319663969150941974939130674517212715758579627415431164116228018762894652815289247356697001004738892435815997904547762493661406024961644965027299917797565399802777272660826666666716326563900944168608324446427179045858611438286306581761282758323898654674776554329087630079321003003078236996928763339335638688621247440826136496165318917158027444184602719615499897383500037946088406119745481917446895602561523308537995692553560658966929022598661343102330912857654721862713303473873045557722796523772918382031509900790285310760910523255883017420568045689871362581609345623295736931381273979089815610446699527354652124300388733822930270127109725208774892805428571330969155757892150797761305034150982497617759809614863019984749027042083349171017355242156654013729754497606857505642408311268210247042855628767672109800811906567366470353931710919362500344981007627778765109906348125375371887286070627087062513219619603073903689473911836195367701865235924371732185669479525574454071214368829392804832068323738101869051274001314434483887447382326267500679202460654163669965705362655477235951161208648210955614295590114995568010504988015981813954871027582489383774803743301732705354218560645966266365399335825718356553191036732281392875687961325542967353610183304924905903434887117246501285065776528410028774761510563772309704683585333238017271633142397822999800884152129570348611457154893425792755386470087258487151935747780737951449134281158250784401765601440540922524151771741717577796891180219812868508957264062176556422815980698494436003179069718527197859805783518212391829630042168211692887881736256158207592489772000247620757217952474962029649398222901794411938977707259595496801584797107012709810585721924813666178875446302199578248789928899075390791260676287252846930417933953997891122605165473201672022685621680936698026248122217029643678628787907320510606355348156790520919947066135814068569617531652576074211848451461522946460573357347025450411580640112713944992187185858699170216176662118293588332388639916446575697710884753181458027870622800609370990450253689353122594895591038055395745885412994282043092930677049197294749730761235467846736230315457147487307934697771772026341736531282558917822319001678720994721184020327548227952832410135037079557656847613279587193480537237560080222207028763540196467060442316077124207278742137879672365085322277193935600348205240781803058646083153228335912321991635972226199095702847545726233351114855980114956436873684377662256376621169154009525640054756026911365643147982075478484910232570616032947113419720142625251027611855639270700957818695417822478638970224458846392004345483946940431695202450721121871679031716299141846712063311134012338067239869777212689022003637377915441397536264480496774774401222543918267110440946576280582303918437257128467179624496308988013722483374489477696324363808667350322674338971042492215985298744175523158103724721669327827038560549863804610411377142167112772566280129515235709051277051830741902256929353662063132930893885515649373013435137895402191900030176385422201615288027527918009147758399578919477426537176051370867137622339592540266925672478439901446929673649025301265964718426489439197608431502658945256564348590028984341844186395732166746696012085883076618720972033096879945928537196972151708940866221636995958207497808324971859570828564090937594369933551541060328062590802904798291386983595137814246485211768616860219366128681725761536734665952013622271762282431113574316972254912563820083638777996378808503084161140716852128761940631872060235389974594291463491410418899535260018998975923442860723265907950389858909123019790403348148517231417595075953128432939711600263437847616796869815929618294918647457249336605837820473996873470516687193275358881818063338269046661935258394455613154345391846142861640700856450567125730434920098343392504279663656625065809431008764564736702468605039484174758405775267037367426875229274300070884693308331911658110092502832536997213565682068564494459301665800491106909443008954840715515128171488747517366279105334232266701456416774065478833731474359458744209261578396286534086372452916282044546912686394019688726896963645555882079668519633026471541362923542356493302129590748720407042602206660708157479465015693867052751035255870554391011179649934271554008599654455189865443222702869975503421250104415775792155810169251473465843325630506303523010469420806481701755155573481982855893410827672788115928112617748546309772254862435844237791210973843771980201636998245745872827323501324801179612279292776632299474118398756003447152351926450227822922826855008819119620407511541844845676022377227956903382235420419710141008884135385137409775138329919016408364337838211154974970265168598977697028971396255296004042605562173744926480121219642508286839989945720625278553481369202126631678473823702281393219464121285507669187961158092220354478420801011830316337431506600982461751114750783889858035220442534020493813875350962291390052929963261330115725304079743439367572691817910137269171981125941392622038140540097538018221213297927235491040382222252710151685806501905360211642594629393109497558598290539439621000554181891454589735058902922304999226533150809901201406199165038943620477420220956043816574922952003071886606407441288737071326212168590611937291608936797813843466060993965528322141113352600341703773395534716909342828392011648863340179646936875473329056083260100767591180791600503557507411947451479363246313329404212253265438515239031544594959765406115011831486341659391702644991636695065081227000205819354507259281673992880826373953283650647739123690749600540266077771760385821893171815085446740580415434983552367002852110372129709279181526734831128307787652982856031838389197215884476267116210270874850681458872976170175926800335538228147638416726432961402074136195232127838072131417226735183188550237604403841051745013291949964410309757597505313097842850676027035805624992516619951086851600253751012344931490376977214544857110130785617478201667315044017561375967593377472873441963750733805249102847393841734804822839526447365585055252060561553559100675205091925632994483795449498309469987691118116083134339730656427739541684468771921137867595876198351811439078445390844940283786140054937699201354308734719855355051316938375565371914751049211501949271769192690905076039000431292855200022952605264957404526684713147375578837968626171976963866024709216382715023803263063060950028731670355906268218739920750549337433186274809047216747636469677687695890981166759657299612865621260978068768847352745498337034918237819682944905763975830442890044859036155209015586868346571036121195598815706518569218537385823011753994721749336946153739629659813344757955885471138156370003234520328841374029299937311411331279779039492820485958337383648441866771673671532017154973940470490004314616792006443829559372988138110546675084797168817535553252577816065130751383061293700935156170786575073928174900220002664460375244525348712083774852374897585245224759631471110575020436940681594399832936893174788789934411176272591193221908706373205715180247737693976220813974702299541803031413065818326440382362269715482441853385586229769537023164778760078692545985823175966622397545776212277797202618076343939367919952168880733718061421567319979579855155891609237367887756041408687439173062952753564260544803523346924796879568976257822644121333451422091182129712713122620584888843885319587543738136797323072458126735282627250253985161928814349597587034897969680292042448505667353803386341027217490449172766036569724122429857453642459887905374753812665911960666162875349083056218151282160349298409776557047199892377746371589404429261192912457284091704718072328781313207909039028336521560056352572593225397057397199638849767269716024102044713664830184182715696370255239766030276210453525303873770472272652304098176347933003336102766801617235673622099465869625309900118222564532655245194555918329000463428782073341417117944615657562894380640156294946477154921706063042804686498970202299693191963732495275315727547602558050021675542333036442249001748769912996235038124477258715102583835816496293235738528309643036393049232705893208267706324271833137255178697964168452982726928134413335386062001476118603445576184826753955316960068775848512325604732114771268145857589628500631657172714027448993920891026140767789508386342686236551773499993936543382332725253247694469664829310384112290364140032498275773401909907216500107699182394577086899206031658734485326281012207418417084569669746265673827403060313710636831159482786727360740928761348931785721587897224990120526020907756094189167101789839535098209615346482434962014834935805759948277591892368546046131459819030512456347738691561248267709358598429647393315984476782586445719070888803946507116181291125733914489658942507700733020522748804346705804959145900763913053927022877697821422817663971281681808603793592276686537157284604641444849340091298487581562118253584644140246975619805445729135992157707669125604655597373477866608840228058790526390247229045458828932897161465771217988172083669477362100603135916496989487457619226030760279451620713114586705754535018298529827235036936914098145032970362628139001377340859827418857188914257083589890128683384068328275131914928534336932469122349182388238985647044181860050889214629522790288215364746864229485605699638391135487590689006498397010339870509237966729777748219222319246438471322022862849109622166772724138596502361102144691860379741098594924444194083434254231479592918073114274777973801753345631809772772490222391347778478479853859195495994649907138682922778328862184276417740639948869995976652507308423061214456240720819501322413253418785748051702503308003060483160020821323345222211709878326086897302653318134388838236020934966455779927812835702290561423020934506783271627606850455537423530650971162317716867437616903800654936764869654697783998025688740464110384596518337294651061086103587501803687774204356461164782903898155121261548752270657843551682107597259963108669968985098498651928185955971654327602710943903581255377222516200008706844266154445642032404693648556402805160804560802292554701096336609406947887125827363231391055257286614863253674275699623643025220752277591917412252798117351612360618501337823135035889426577583479194274244046961930441597204144696639811917956704798915085239819305137230124881674584519068022928017219540678995438790678576180843750912078367639167209928333794128086362888134710427011399129279455064731953860779716505923981658700485594624056965791232647262669241337900022322806766970922032596172878671689149086310891716543336117227159765570504934864224682588176389151402810933498053027203898262198412176672353663532245881610765434641232218771560363599849156128823453785621525939058230707739998557592716840251788378656411468965095324567890290640269613816975375961530623227928572226424021202430120639743482365512062165361780815711464936548789254380377659834695946449450459526669543851060112544258974111306894080040476857939279902721046162190436749765368292477555116535175702539692877709612325168124768692770510948289523544743418727612199359363798837562267614007750301991960518562486978847794927036907388063061116970571611889600422463751481372698653589770636132035909632057026956615999203029703446559056891443271091235108930728036769701326439967865763951346539812181397421477943317037352204785402588122831543172612687750013477108012003800772651075903222651029247025768537723197667848720699533132005595580523961207416228827086705986883391076101088051131687326871041575918729925619361626805348117640274987155320259673722783731291577899382917095586699034515537094153627509874799809927319542907738882024361563011432486139129310620778511733464966109818940551628396536493881914734631380077388410988971502413301370972716784051649665703902255327765066204203214546971483434113616011050078981199593876864838106370380717422482937397749913566421897931657248549886519368964421894007069301378458448090838874552103848407136755642541382999957146597918628810199235553953193004395641504924955350102778746771121458133546743546567889061361154812377877861444713481509940527864147165074835224816063254756610275927663945984062242655696369824108358855123907367776823926181512945955091917615563695788340838468074844459290389150478097410347547163952269872199352013875482032123426963127550184885349032677434542108907293146030598129856899455517627053456685580800341168325735029102686440377304632600869056152632569354480930724228948467535827409181215709567322396944181119619066249708267183766172160442022126103173513823159435090522832771620277289315362113088534811046934557093185639616567761462497642627008272530110078736009974047699286520458217066875657367347252019211163640549351185086915074250469733946771667330476140659395501683089859861808424957694361180862022013659936656518381576709367042091399905049402057087228588859794400905581171713641820717452827452909928647766662467247861344452264504582059877039252386261568652201496794563688144599305616058162807181034892579450412613745422727658516046589815671627273856840134292372547418100702515538711968685549508762048899428101137488449077041419166541970254368631118301549351114986273595234546885545641339885426109812661723668075064504015558779670487542242168816312325973420102236072317501377460702985330884649006080108456732220521774811993038465632548417317096635029852516782239596575443306313578322856737461736760304583145768213233728627434873898606039681742854368390063070343442384965630113048977120917866940768501357556951344000282412612660972684511354404228220981402158053370896219635818650514871220002139767027530071358185875116741293953278318617172535508551047340149199987984575469480087726350413416417700452692563006490068755148025812964798473260521736330020191718675055857785942019547083931885348221760251288677738820154378584998299786628994807116393708569573049716457097925362617988693570062443529015530150863196043416548963168247401426802393513456468818467173853265932312186244789997768963382290345500344621609443482231733314715649339058096697444854228356219720167069808877723632203589771129737191105886833939865119336214504854794086473694378943943890672198798578487735505346268438470283913564798736446993607132437662168782221831429091348031741714223122617809178773927042609378826693358160844756574352439485177706328040065168069042575191434183128021601755057249556798552705469379890830384405447800134329637345046213956781801145846169561561424881285653552536347667279635952841880939957603694425698108061625945733197275544096252821045956069224685704563862734137110888954894182411629304366780512025222603256573038988950431770175543594279676828424546883904689262520812273962105555618893461696946386046142089022422889958835941398270780883390064310282611107938904209672974585115136100928036033389319449746094592299511908857751559533250900593256441714813438845707076956374554798090654131400346977153715477898150854951280161092908300509774963334878347540093910853212711446598721583557187533097389857478087213912287318390070103779626148255903595292874660601738408705628922809817949944917918012178074317553145841199843436300742303367104366881469911473102358480932084784567488076207587951913620012378097918164816979054930545998298268509207639699706235314001714296429887150645847173209650837885828335271312432406809257730317742542547292439293841419077643384406102790155527582761890966083231076430920920980834483472773149304458078708572202129796364397239351556222495904597896967606422266897942103950109118186905217125274934389845931597572626550854301929470256164477765651263505632580042022604187975645489179209950554596778391173285377017580498119045152682570724701097398634263640382542623131059079353878595536874658830269209264212657865041218862046346399849395171476258459836597823690639455148087501400114342915864433110598849709522012991425168444079877057986715300513104693265904782202195366771041855953487363135438369638719787411749647243374013711668581164856540401923944029855581713660351562897407984214390942660974603427041776916271753385094598154152326496711772882559953506292073558623030458327968274398751574758650895240977236587337467251170384436881633683945505712820909970521105546766440420542271860355288970286391241570563013711872352090821032103147437979076054923925738002267048351881829478837010004952211380385352961721417732027991151668616171667225504256010568019369621424839590658152608742520283386615440400319591437672281129649687030450144430473725604019818518228063303834088644885589256031343163025349771685657384573101598285049340622684527113869041592856006285631147409748487714130752689599549545746098398446839608005626788325639353106555897207428105812156396550644201224512676691140863934599287587120524692785640327183720859525860493930373896349086729130084729214204086371794650079997617026495425151567227513826189745273172895954421310679984658856019438557540691083810168529693857047333566300313870610714869695307387436553215912589053816725756412841609737133156361312087055556231927648597760318325310570127490208467773501107888400061568082943193328822558753432942492576947379169805907179442118323671123108197113514810587730529844100396925513794844945133271032627944505687952871898733944565980059858012222804613765751614507144007407807583799046759923223203522862028438801394362282411298755622318273701745521863365507732803281481860480126694652170396151080973905207121930376305991836375742142220276374279036465829812765495787577599496483923728784783297663788546116510016509306243882798518968583981548895081604968621117089871475411657198316638627276061840693253416462472271847920539557827029723342544106753056999506673368419570086456366808393689236366425672521521996763331164681728657892325541886345535395885396726134981151069424280019427167257154808431622031709773957849964845770651263608203846715546937351040758209957928012495288152974758595738789393019281773184167949289844906795009544367711785698150488017078961963068806172143645936181015580590200515942341866189283416106581242231557998635425617519721199099226672434452666710941648472595805654014258909239642080192202033113329994233851591715275410524000625784774987892351159836980815326554930861013185791723791509897395700125127922956943982575508025037152913658472522352494476523606679909425296136225822012673304610450965246448788975266069937905166146970968165807378698228791889324923731346006629644274778324211929984130846035777975566952472762029360576006510791500398729555582058884996804337700793276272359028063684537259186917000075586752210298088671209412033618917961965260516273826022208969033416651766436425055590210102753337698057868416837562037869792622602383755653634179116970680937401683567065276394475655995250587016116629190426028984284789404986803779918148029113373880869518324517119312480995512329352435038992901822168903133897922669222205880661688604180885442348953903581072205063162466188920967881793500019443580060552258986120387495919798416540955075687641953700241312200762785608211503428776106793654392670199548292308082574127681372334687326569696459391782726833990909074578968112023205943604890398829607468391988092287110786821719012864299443529838287109329011220472616916894499248673489888056491422757869183955954782202782033654182382420915260144220323343436041871393172471599739384539445311968172480595364924333812083765191657876307477126757164734240133411804116083055929606258106252272891040020023182101753526755442710950744772632920897126131340224821423287795909019414329598146186985613482276452424918005337253737584031757029998650128400923084013124724885869780804091817828887767227949321507504395211550582141781832371318170137408842356603490489976638896661501553344582180322178083058207221987213863405378691887679161990801038612302094771139411617963030726165488362599943961660823308621383683646644742599054935980059436787588966581516021948444308812571958664252416466627887185631611166881790341561701898396425629841999255517058381278728693438074782824657415065633931857078928952337329824201208651130210368403828969835732188727557532181594596363081918140990673784444667099681078693093651228249671147403325209156391526763570381857867931688685807402644239741695602570242357928935722183618955281660372450763229898418611470635878978763884924641342497372960227470255099118988809702902505464419894507373336409473134867587375589640881195101560003678751543543900499292373124307695823162099406688763581214871416698654980616761223726674278031680713965862489792849171850983113209022000302175859851514142502828776814617308893144238239600299181861192059817770565790825383955181881993084535062709793829397625787465571496127059707440646720648136070217440541551552316497361642387694025347560347020616699374015392884877818037871669959954562953283622156387234127749349997307407493727120531118136364847874821452008070190603789979088203017098922404530040676667585323190571227606181375334861986078456646300563275813999764199387493236547481957017018177562413402266022716022861163792925294008014709623491997652866738665072652824969103441367741502946088127793769988837496482143008248492354668134511400962269060913538142459208548880212507325610982212583752344962146894537345554632012602726057979036319123643248487442133484071324579815447109971678344541216515396028237099499887928450331413511343854912395396382372413207542089986411157813748915552888220865091461106287666875172232245679133195975667522461102412290638242692343193648501879282850040730910197943420228720137236887395168436841030152686845621286830381005508784524340513725090377880233834867907803978150054958190605789125446022172819620168134644777550353049617132417895497986524622407414401146771029479437116615020527373002309022558353369556336232584994097458803228510585813470710580129118336350221753428633296169354988630933540702517052933432906509120058677624250590246480089730636413999047277290386926700912524773364648252594455314079283301255911904742592297280609847505322032135150315145729789759649564853148624074815369046366500435455064293015260112823054810458901593767989873524594263726997168420905473780922079693630237040028244786905282046718623851977844027184237765422511138319692181074748028725211967950685995246781289570666686046209986275238783857296220175648169944998476817366770375682342019333716749132537201188328931477517061719318648393495468035302209022383622053696853153297396431531359194429542225376140726376108011177691403318404315992050325129626585455265148754787314437662496899341997699385485682133370861426545874746356339898525152720982960273975630008480963029967017927978850652666940954430197931215300894941706085064840098729110928957146950936539960861603105031828612112610778301279934856820875641306083830479356443088306664933055211991375373511912480380361660162474245198516313641785441323695006423144671580618301356346508943702415104780694964925261275604841023829905838840948125703649265313672176158351744041307124126010088492986309503723088110689939248060952124278075174283636972660536713653700550662211874246925172044758443188634492493821966399119108029454687091591243291431471362076796829542883503169161343613652358597666738909371950748370677409718684096210570798143153677641574879354654777145315192288704382758491809801899543574539947654781685051942621830759645877488000988831540328386164339495661949067998668689424011600928084292607642134836735939126569848735211323783875193575369281461545919204914692420748011571237473210248273284549636138161975853615329938566233276011761733985969623780124933694981069088264482352244899450637295170494956424826009064009896837668432580159197954070921044080514679780391836399022405000286749330140592962120035285478325160432989211711332519170597148850057000055028059707382831304935901308719041776099241028480359052907067019241691188023092277975538552941585961887447067599702450934620547371506563105559409434856427230555956020534482425888702156440309665743991476440954770414493221251662256780857470208280108973929367174672089494247679294362346002593698275766231014747784152126073582375043682848794575124751537873930491237264673455194348445033551634910788299551719884732944688533424600972410967065493585155157045374700284457094400482261790464074416601442198591003005154862312805722242443000108872994579644536612813056808403429403889583576833795470719843122058241292707205190116504303889569701652076112611566337076885730727817853633466581765444936356652115799182578030414743633184956149888362839402224157591666104907160143398865063546444156662036891381553178639052835307388264344743364041941005169300774254935924526413452390012637664046527909457248089301102423101997253009097034372412829118908992607968026806810897756893677945072877520616333375254859659178400657746813331062621118975811273318280504241784115742651181154936606742318216450301715434108239208336377480841586704063147393613654900337783833243364294798294944026584352409607772976162334423586149293710692760798389552573789990859082524396504164620904015642412123156573799717286813382746065355852745079125791156920898162724713037435368728858143535196863648070270583981304061285936768618014333996913754141435337510344966871177017548641383158229984349288147809228651804173047033979819324608708464715873894223764084027221658925772154082297248187789572276675496160417922343161674259576110108518848730812763044169067922405545244604824118620867221455674998857717149871505695335987169536539612792876283868894934064177224253303515482902313779530449698412169801725169497509197452309651887356085825535994750433903922134589073431070221889645577630457462679786799500814608959082488781061666487351163373636864220286738483651328458951601399340871472793026589784715072625550939069772540657153387282442952701605254095976293398108265083461530512175665152016251316314954551980731360645357337144278759126661535230677562996527871140973261098766676722758187195973805212802160470866371888078531127472079037593401251554594506793439458344885477716253422596326129575971897144578607044631554543856057988250370575276191292369926142107489518370694499287793670160927766740599126898686668752297681477764949565955134164240544794446902036982640817658996802113556619702953365650533920530055345156520064288790904501852374374624645111815072178173936404178609186426665103508738992480675588089212581672742873894229195282198703871067248145603946656724173139910098799563042678888824950664445204600737531162436385559511897984369877039861369243546293349484597021309420199994981372764312816418998646561285275469315899410714168231021623107380250515181906492646275185212723847819753863248107186160436978265793235817407028106863546979404980720018938009841825857976981511075632033114928665024713894586554592247362118910723381464078820876595154274323902552634997631057354841755990700745668588455202577023517123006143082228233700664976203613369519782699974530672665338001091095138364815609300021273374263194374160959745933034017109937185769578436098119978827186992472985585452477284249253662979157030914802548574247583217278124344381904321496909604027448218933078131858793844918049280169687846149151565278774496813695594143858503692165190360594179668977807703110652029374566084167357255217818213287926310847485144002869702180480047960030422917488774047231823190627711329242879254453814008501816775723009774556689537425184867702901046799272024313993890730833024005266530697731382056087097315342865512199093773305287241531077325416743746847206412726249630275070990275703441188031141660787732632240840291765001161131665330319293768302895011297074590706262217461894925099605213702204618556580955775290116754901551630258867513626817806057447087424268616791216791896697019020875759053036035441412521137295695379275560884330562597201372761804520893162955200881220306083460381347416949953480977980321385883043122180560103042753371636645663469526961189755990554970126030440685094185046323436562286131852787949970043526664608272081101822821614987628363740458619382012704325709556983429693810337558294268130603163473088655037495050325804470396199658319187418178856376832158540124492137732877407752155069335275978717729407949327764518111382724945041559875805096867047849897083112606956363925759257739758138922100321750205664001324872869133750801408126300669052539018743397766098801150862987787977714825077423705622669044566201679399684469980633532488077951135983468861143861202991724554712116526844739285757302015252077286682302272063287214641512721445961352318131433569060687183364726127508746488307967905604258371294937819031794651814090172456367906251844463572475275795753954453006526057161993892468955703412641265703644078077648249079254441976517203232769117419995266799418708464719957836945819464601027629379185268628773461609535977989954644217748567164838697099527013976391802282166365593415054537917707402250620808433071289030231492276750300455300219116736518509958115025309166739134447830345829678073668998781954260279155049484000532292869530674830762546145471599060618652385316137572503590810257634105600914906964603534930249944335421292717453356189263907825381858342961858085871181941354526737306911367813220152187456201689620629215951233401692184025356103187657165216902929860484159315790068120903201833413878690711131937021144659847610511485979020443529737283103425917411091723701908298873970517253388041577398552945547787874952280551852499026841905512933384468311074232076378615685774694391161863754032337288931409284165519975742608954319078761794856367086575764219618285196436911349592603912891041477075103265729153100883616408569615473503659212078523955991098407816923910316399793046323615786346650279482301824854010488916312363887316860957720016183178174226932548384119311231068996097218669504028238494113360185428738534526987917902353499114552412112766862571639978114838240202563864606431995754671214668711197807770399676804560867761809155006869373027433622433076299592011635516285777163043418876880501593501496472790129422448422194948705033200581194136368527006261555293656985840752948055553849770434990109909164489749293721641284596687404118749277785522546546329813184011797504171806337147426143801920951714856177410103899811887218153089203405012748667238168234086027034617786367498070702892304975196068216947255130477401763630647712890562761543549133774738592654017481659260433268924929631291285043344680092789236918234745322206934649718222574497272459628249118412853319209423377155895188690598308746583870798183602004232841434124421018969125968849090365448704765462942485750744965704887161439640911071852361166807574461571302176844705427433383416505522546955857452059739906788523114241064574247502791608430936486156073653229735937092142759598817291110659398840302001166327341170024739789416848196211544077627807987364487065746274069930519367617026838896686955556217100050450939502606260145268747161976203634013935928025704411642973559807841604676486070595867680253856127793560171240750716719196058868968749047629102666346209875821195899070316059745861053660201385201515107722063336922767865646270107227391097356678536620816487281728713291597534269542160214210972447661933447092697205732604651723061347325756138563119122095320615383306388502651055817615296610202035968044327362544941397322840155058463534114304259132690891413188357664140614742179899321263543247298957029452431780825959910245840855487874151021608601736428402125173107171785965446581106254043143116813628848304208772958578181567812652528631073993095527305924177815782354808108014113126363634745653279005710318705126223652609644159744419554918942631970080666682522667969254264931706619542075438749472821680144676424491168361295519179313428513515314836169911574738028323700741173583088178056377557697539772268174153866568216525045828282963379485069139732038560089667461189127051028230617796088103182961775793466142439958380555701713006237760001246461812248119114913463145172090056604645911748143291777691869275556748631589694584908630006278588017798495614128540203000662953468192795748527793373650555172160578215805795334470221040103690512202666117430854250520639629482667393105279823814200438947048311515831326807987852009891072778234996750755403971432662610184255736762747727566115757186574081142804972663601020940580154704285464883642197731151277278752046852496754916968762093030677237849832353728497428167501085123711994483480859899196473287752715348551940442238243816280178019109660408442893977355751360558149194454541019811299908584848324282641063708214958612571801078918061801566089989374509835128476576339558533705974586052549375963769953669824873577785984101588824007658575401304531520860397880228662737760507506923568566422768860354780848808040666080658082949869941943554039971653212781916212280810770820388032665880112140896820412885026691830732886255826407297316062548504109766561486074073731756052971389451506664401084890556202712925242352877185902642711550065620612816389382595590324728182494606894457736830583615452742417594143967167436549785603447757855436576386035376690616047024849953596241354065068383306649857497898726372778616349175588208640004428555052920235941234154964819826172165350323769788539187539411157135668016375244476065379177317588848600341588355961258923046466688017705399868531521951205063016372867586636980017406067371143144903881119605757878450128976336427419332419986451645781093985631071838997226303451181729888623948806239066892331986642021483171481313495632359136386035429311682612798533518875495150070541946823242987380459888917827649252671164659685661497082593652776482467281446687805835045462662328080204390446874864494723403885536971795666502701515980882629478912737636182917852298284682345422016840918106708163472851920868896780951252234562661022717904828759895780531912171064338441647587179734706412713750478719820354911658784997249605313774616425611003910103664945670237842594712545485269299502954238656123285945203937631295029286191831260862477647725559144442462988005181415281502497869871751880572887504414376750852909714368095031193190943712643807774717766446554403241505623489572477862373813555245693043168959244001027698946281010161083767879965287602613271767059048299396461272377976316595730631956815047128559515428586901857013808048803793020510375929738400100432627311055589975505141005605934605675687837259026559882167894896390366355730804825798757641176856115506712593180809000733894746310525814975893963797539969847486407388643358411074787836366465942246672413586312585163236333903857985594699005300575111592318977461389960295410355751863254688567359015633760090551973298589671168451258122786998939910719823071680930590613641785016020138852759396399117432520987498057241263428426900910932066256702953760300582491139628876428128172218844709401145937259041495849038938344521705617354417802227869451862380350163645254026183455109477424570821577552145358990853305728501234106814073489865897372084438368222615760481556128142874551360433628109433368565693218678175499298678181453630719997640329267954122973317504174335230586761764290921512536121316702901992608990669922445639713047566653379342054780079789070881533628946868433448201203481730420777581542662362688019953602122258481431342490407761818690102992641373935748519093075275694393940712919223402809842796135793060400295807671587214961164129888300410078560620924152968063771368988500826940997301408862727033557996478971953740840546682195772675499447996610118543930221343619273973071007049239381785615926833496187112631560552984429668892727555389784707412660542730654593638395355778745695888837206351919170251129673161532702969298696410972775871118659298417176315959691515898687809988003198056043129562986987512791504867112184680219731583860779717324912425053702898113743982784061057910323603566193418020384470264564668089000682426604294486122832113888146722450171534058831895616470229539022299411175086949813727442873374487192979344083721774875517022695980153819162751924214047540068914993988699039159137669442529340591098711568543759760713316743635853513356976990093419541372719660905302793506489774916484173401758427456369558967441732931754477346173510045199048894315863972304496078347181704514342575055476565433367919746319173685145151137074036003596165840584085858614406064471084579560389231057394732257403507946353293944142855414133729039510045508103777990285475569813402120739937228002429847819370162984091296982984852959139039198498419597569066505152262212422670120305584390888329567740796712588787262506514141285335479427948492171553953488937797575115075772917265351697795783658877034929095904272291574468057505457697881272638175281957218887725539077135147322959686286581601331284070560265859235218581940926594932510959544619143258391704328428380203862708161247851151458732533642800484719105016368329267892385058381933940493182299357725704264248456849616033958427539183848487362633650416226506908912709466012630410522349452900828637859628764945522320968442216329252592298475354897236729390240890627632843026938452486411706986408247409693824741921947270376043019782951254172771283733348291335085541684572390182990499224059580671176348885042028321519538999601431072838218787415897609168009361531881740482226364949991449101951277073013709451618242388045721474907465666436929748564553415553655669574819004630937036920897024835904787222339816373134887889554488291579562876007544415699906715156244314512749438216554942743233266542072861359363263686631517749501873102927568763221194086164321708419425680105411280308351145131600554870389814032052405835466079192573836271268511100587362509667487427726985940612163851794771095536803142224625196644769815950323548312277621406028294993306990796304518840500105036985118828958137090543946816880942899576140102275881553407948354304202701170259915204246747613220368942743008263916323877297330299674934932658003881798405715632409188133758974007550631097748905186202127314868144242649983805581354851454306283913326542906737874963259025545201853793431232072691374046824446029298388658215356930160061777723580155551083733842806090176216178691348357018401490357976075817098364792369601372997524140705740424621170516152646872422553563182327941692007862611921301978225215842379162206590758570828397000201626899839205988157449515552554073640130541558588133126493664362000891760058423529271729444581185591471586468059017248297604840439824082149678644602106083751131730001445444626709856081623044039495529577912506087233606314347026501994299930013052559418193472236068067793224720069580104877016392796999659272767354785423854588222018539949406428077610977814468857733933453752251658214688243729482574277311776900260605027503705794096653388891589259079188425342278342902096834288145469658011910491955872515634231647288449112502177646219101382177828715432991574488906446636431211566138798095352815167844903440823880470184550810593223632914138281601182943447063496105614196049581617794245292110830362585395872221364636387237648039888326742239896389073718227720841965800361156164016173180639257382230424712395127113052594255298412585687504657365793719897676577646905830197450788710574778220792343058860802687690363093624701417727260274433455171923724383677828151205427411632765794865432915670502836717982970675346201281852270540007616651688786407546999468759255339078219795875634863157286579183800513518194347825335910028434417458898130481343265689789319566664009653376109621098028272712440368699527294033195154768699802758301257284840810646327560258337017262382905329870450332008510360851417841173133822735106197059190478443322962391877658374374827433610664433483850007296477037818881394175166405300138064584260314152123068885649486663250697530369832916917411547418750550083778247833777430686817180666491241726324997728706451804463210353803361858832950878155075768044372276907625484708428185302482613850799646986980550735825147736259693234070418705266367201606161974357021690259839703112996606677466409036893853997612697426148410961168039924073697328816555402715872856605236998512181755532855740424431715329492691015754659126223888627221597175715411124406666756493890338043043179052787688629338387163961288936629725854292754637856639470617694466859742714194606963487526762126999839677147117257689209102540856786525793209884786938849064009523948901618367437139781742392427074382881516847126752519175838855516544123175909192417242045571529456137125443636998504728815029669534369794791896411323033951658477695128665498880464014752902265344724506433682727780248887140213612116893214807236012405055250334964372621407059705726157309152770216542062522030030643140314452829658632856764222599900887578678636548972535030349476734472822667789118990860942900792957648604332095028729968674693058956897999591703459880293690965159259311493418682101704677572965974421997946142494057241193731883472606624315128682373119015274842569260182828274928174992211281420546254856318517345120922940911660883436917587068478598353552161369495447404148030055898354704346256114451649126029029554301111223426313942108657119963973529669330617380361944129593324904603860849792869848356221551902878016524117585223029941601003413554155685994676870016512475015260057092463661811945947715468916008168104083093504708429708085860226932667641608098735179091511722283424156734878154895418050671010463799192577237902271804845800307364725520475953211373274786167981246400320904416161198437522861554932865422229414179330476503836748405844357072293997291664512671398822543364444146216891071105398530059677890122753360362185973914240939879172512772730769128937001796483360123640475222750079210609158666427982480521767624172868935428326672257779769208549739296831918519935346747136285235090409168981722780906112025746575674349391351336653861823405769220528322462577423659607335362224867654954065819104326214989344293183234205409415895302317700822104093680753627619487772891680892296228886679125259204579688578240600595996558798923472038378591866706404606152290320539604047789288930715081530614730009571672897721374979452205246114173817782153909282748308359846190137317490482140719299187647003732208015372973259542784130490559633325592882364567097137770349998828066069117301311034374504793178603095941352377751962576874209268980706312284124262858839631784492383490763121956112458186999178595156055944318327656878716378838642646921677366848557480531361512608837845966152845657352365640492093106122587713834606875033424323322182739982080338979885236961437979924563318191859169316605834214285808370899889026495107603095747510497621268718450574736982333780010766363240568985603499445624784571734679483874368908959393928145769305693919448286035586493177191542627990576009323137588857853418229727848149690085112307858503928772779373898301318592559929098817476916920366812889176363985496308893929867624700298741578447097823080859963250115832375334237536654075992539639974261897110479753633731884536380816714203488586892242757684770573630423838259349134083945901769876038599746704406240928092520137640272533518371524456916997081133046314097397715800777698510708920965451597011350406088050457012395171156000262198299740616088567539555120034319139270261663222215510395082023927653257230208671797046421798267381187527662546984280690157777859001891907690525682775551978993697498193108593253396424888726204399362621137837581782793182902237975008822265778595450919245965812934319489531038759259048353737825327650613780534544512231746591626260165737584983393231483708678178447078026911805385339019967161760886745018240813338630187688852305180278549850013222683982218470825778239559084629199559908839492177894314122449077593315107737166871442091806164958019622181621894067828645818641108836776221582882002613031842900210368962374674037520061133123418862067481097640125100491453515716560756875594259327152497747383949339332991760403622368641490959510255631307178242929303145741008533468543582136468714393235803848847679918949537218731532012553253883222269490666193989329193300072141371790009718453497305708728346844573974556150552524307756096293815893466046889423139394806815862573004526600464768873875331129862874891520118927252525894574637584630955769016620345267607948306907518736000462947730329095613245972437133474852852195030255826522783925463870534253289345047797262119719516395651118536218491511171722409981247991492172179795555662696927695891886558330390054421038889224139283437128727684023422297742601044435063383243608209200452315741020462577430905642228803707462172687277159058926024730779018922630886723869395123764963817415149825231602658232093181525474132530991702667285741060980214563590874640541863203051342558175712380693110878994774044594982160247507424231309610550932711212710486965441697133395181027030258183457442204080629097984389959261322622460298888872148872193222076736598883676648978868756559074115597910499158870025679690631603086543293255710377261838089066992831899706472425156877882646048064655274401137297749935930383924797736232133331297870699360116730428575126831096773784706391705529144951354321333405978231934427061725584655815412876717202931080866330565885540656227359640394491552006131110066429513313733900228385381891969765861478301513684179029733690668899363289390107627164802900659203502641537586228735284114734302855228039971599013551729684782248497823663054156851210786229214465137681163235669457193727799715463138987192856718922739530306191084249595750259065821497996941563090227854870519029827124689308209749605637245725316620990458411140780308735968663854830372982939322754611019345503312058899391217171901938819012992741484460955266413874210188172253580302381375084103000615670190351399696552529404190229868526950460528911619742044761993448051906918275966266640535872146211161781524374390338095247079670624970877891386967647235971160147600650996176249762892401954060868807639687042705727928543104218994183878650035747578867194232399047337716277876647079321363124209387723416041599120051404250015044345217449133006909015827553613776168602536751950121254856393772490189442577008195177960302735741519264136003342632286463752505079124358090401975963887415867987254374079310316781105357501254120380862022455560511623251288460233058049035418793317217345703637299244720685699357167513316270265736316167101104542981629478006429397815187919812568237316481695597729207160982931510674507075661118181259933826621127325426194365100120645433565341085806820946335185450723422654437864508574092156373485911412035397181354521993759250666675829762160206053754061685915225192930267914879700656508626655823484994708289763293193943307596532490719549435260881459311595695588230211296915154082879840040050784860378668372913333016108193172451680186927490346147248926746746017513210962250453307035577685830222322162045844777485235646241228835241224274990832919971628628398392254239140758618253392397068980441572977668939901407905822838387649382211690822200353775784318830558590791487150386861460307733363334921913544211397586643305431897823090182031043881061932996805879457590398188778931515298075088988467780118752408850163457768902652512936405177170758539544012499387843771355981013273807379809682291546651602116695070944559011130801930793799373742075299662354261361929532819972930004689141689679053105574608539632038660474447630859550263669808833860730988652998508143625593379813890658886952275974223728533670674893593795085335324686743054345216777159847337710045200959859018009856773651024021701667514621662480886228335322691611180916417291293906717302251413395305692952118915577882225045366230728357189440381974847992722386034576904960448861028824317139531933453082187539251409181438958430563780210824478096331547068769279647095425343024921280822105660306744233246305795057806944123049067962893310743885224316320902541400417358893740695550078984222046789439574073887190560855346577928240047245063857288598174675601809845504248862878460869806285005245575270180565094919297650393799740302093601850665263851488519692463525662666199007645204573596961024028903770350254144752891743245677045341184957030935633375976931844266878268719820577480731197089692659369463766653879190056574079473421104490182828464136707348679039836629342872168461922267678807087627168109692719320629324982287278205534503880602414054579548432696364163918578350010262639157439900488581704354300595571426000082331600164300673456432229366954385912703709984114967390235622798290879882827128635431460742288329251379693173273115801929725738984805602821292029307563145421674782435545426255875278103031100501554160857674416554272904529928983365250871677567172972040387769423122822236970309088939364539453191883378825333694855167705580004952657512942412368330382140218408629884525341426204042734705663154360130370341520075025760541536416260774638415999133312187276218534963261968482527497314196099304688008141179953955800573426868784628094920423348607988668541039423876524181425682900334010044692932985593630508126231318287106072070065848426465265970850281272822112799936098110268077059547407549950013715104341960903152506884990339880730522818534059260057073311923503349237116271797406015811177338800418518645826174067847057385868058075574504963332079599321834589712124043432702932866759904076598464969555570306349763645148088543656800965481685578776048410144551330309004356704727103509243279436527956375850060238671831358956218164710765872780069827101052036730584524879487380478154222845458192792396455574910101644662773995786822616475628358587872593583278831398062021989699990792884602374671184036791760864560947626817688663567945834473034583541240919282067949474249263193082558891573120878011363175253145590008204682538706285207192059206922987633797539675581338741317104604525290053688268144073193625499266611920713322060053884666817923838296630124077623249207656341553608422705495362560613238043098575956865802069600800311710560331228141356998951130207981384909003260447138210349930891629991843959542272653409671659435516137988711898222480192826522324146253273168096553615546554055148956438104406836583819547116488540461455355752834836851402197953289599163358186927792922509713318199611100633068630181341226541488431523436365846973835749744235972523643761255912958416304282925080374678775971131042092518011268987895831885633676358579625859844696197587845552019749361142223880208263910258867070664312233209345918138782322769749405119276728573599006885272867554131925769563626187650978252052555020673622852942318106432661389732936847538912670774106466383587890187830613438794101394264982888538180789971961143975413700920887433187858720776750340010234671285230057624778351498915441937636873760012533520465222638157237768358716863937839865866534377992768768856763748546656332057222657594210609714613430655373992982266226502638931979042730986207203920966341571409054273314771892537883761629359454662457790611792955467578792143232025964018818921302875056388394503652729989379317621181807145456162360390036906583233619851284455513706506475838732045106886995923793049986845335765083673799085986532478297343414157368005917858400949383675511059881592489917018409097802607711912952038117967870763495866435680026380877058915991152327001202219041540187020254052585111342242386145539204441560099282973715208666035322528868939693249407000826601789044062388388643786627818364101510870535925535309075462203487189479302992041305849786802740505483480585528570969167538797146356392976082833014902698597215473429965348425044539726015388304064456620831968066094328594164689439646122932732507108595556811936509990661218928669238995616642573911938466806577076119409943226935484185811727400462695223029801201526025631862081536940157275108511267658597435625558665158430735132094310385566494939946862067626487533894547037432925847347523961080846211722525629944918859428710658396906403733290737626556062670080391707698204176501958952125360572044207223229742189026482085245706785888646551834755746282968653930669590378547264510796117878662750758876482249288017955152533082205951612547084924295139757577824869951198584487230520323424340164416686915459365729613735989458982401643447633866056963140579799379857382592078100611392473447913149032032553075715598473036378503348167093951631622208418064643827598240550082829015144904065967541438706654355025123193962300713812197982108871989020520672299961419679203975058112141794522209086291246730958609462084107462326446644013712890336070151478152525359415841989193020493537797476202775751840104285003962616120926021521570431635864883135975235350685973596249179659137056516262382836410404526143294567150014939227942079350784005052032514956549922449048205284679540428776672117256269023231984572111971878314767198633920545672433616120404672395925992736439216014510306329433828248523047476784695305902615682446419401329152177120040581691764990079126458642053963233251379526112030189267696437894734325769736540179884795942005102817965159950156087052436363047154847080228176639322117033672904690449907075256354902727535294446960043377977209144511086140721848137411704451571223233419080320102812047406623200148964163352244802445967772021332836155989810808425413454128166000111786880299688266033959853522589828765865489932467689082425439369420063086635347265913069672822042978434735572200824642153662597209583260264302721282007261192978064440077180940350283204442032943363572871175880692511645357023858594055157055799116085146289893145717675327955916063637541260294910304564027286416509387873865291392271795000964571010456895418996848058659196270347272522706532225231712195788400020739264003890585437432544990343907431310252955402775932351353675691193201185373856432515979844647481709917446322921005366584079607667138067884262833747116397985415880816187159236268086771281457420584573473408548211778649135006674631936070390803048815819378589516867900102381313233483088830611468375525894363638671963175676766514305764659305222394652766450736105012735614837641847031982830832536406376173724486240420437346990738467047946035673346095456311608377252591769667228853839914061391079890320506328473184779081201589629168461658273755627483156591528794573878971449422174023156668478960100787258633401018162787799039426249592675370696138629630888972472843415931591540062075831068365012123194063626148588185858336284562269260626842023595647426663684439609819324173729577461357316436177432567194306294096140484457805051069480971533566090274457169918396421810573497815436439114158568117670844968708210009208825071625843373127496802145800484412198134545573497898242264984727215098700673260141810264699798722710201269868294566869543765345078364049447404828566294504014816765875920462478141903886749372855427280437306054362071433551871530281997328372767179049831931602362676076955683160084171623456008898680200554109596377479621349445897229166950351236446130272810209664504561192412764932179573358850800752850225471544853102417254961084193887256791054222570395134312331890044948759599457400720100381544821064132920099425982786428238601481020965330231771264014055093294711512634556966796168270260553697114708024508530736288152897224310576135500606229161960604069594899602433754677688053565315897861758694111094478373151174904576921790280301806247826308363786732485952566007738723083469520029365882593615714379811332738722589357448209830458749842698526609924428049680522903411813706558531230566455589924366441411490239942962802821732540643652985346725772878311936946272260841940400124097586556422645952446603791083153358824816667867108769138868356531644233195200257477853003771497553344753955928864272471883370732817437541967176974995800696931173509989861859880928468344851934846919352223711799996355918055852809838924527962770438342198372171725415141714377991746340844222385081004543968827246448473122317876419566191005215714082192564190472487888328842072429962481483775088045429621961559350033112462642429626724215771667985906354687381270293948713104810210307337216590446708510416570017909280781153705725483466531230923042592715294649324967239888583193309982703956602069092079597665225404384771964678929861142584225914597043489313371221409423989628562186987387077027527988085828133947615615795487131259849823028764570790132683644712648962812607442106954903822611423162157600789767335180462354220707335818076783486502088015364895143403159923621765064798961542155085175507566193465761894050091525082651397753955696350547290314453460380100499942297544216775995619140152348638303667027189497122404711297504004006145954701883318611557570608755762980066854590464209181448524946621963779199250352733415966872416910403787760112936193063910288727785703685211707170574631974745452888008397918758263989841921229637683903208050452245644317421708550965941305442133870494656383007987656807136682203685161605575974019114768548780342368378032189269966853683447528759614900260650198993273432880925474798797669833919149118199043613450499518866357645364379833545846089338141218263158506195860402526807778742607363944648188530787424002363157688637716757271983430351571527128255034994167875159434484524765309801743309399620231685466875736434157216466311063799136037898668681951993751396076846343453443231711331172093723471012715184115552244855939674719410735230304502322735503123061202789175370032096355678239318563468549596101872706236030529422723057540873868662902583228834590969537848148616190554617852440945208762829845354063756970497702656816292363415025860471017144778338395500990893335053584130775743568545617335268409749291989112596234526847432297479228279291126495553489787969552100990112659277375394131287886680158262625785914353439658368556723702782305338881618276794812250180566639099430519362057970959242139647422964268323885315346570526533755306412168683688057151262246303573850101556925394163665171624690405915923658188262650561840526958229745713298420660767660166587394130299382501692441222444542063731917089662753012663416453322609886396966385541296023364596088598212729744186898788424002717703682559781976785230392017871481225202778786718531318212435570551304459611122967271765337085559353289143289149498923107658907241600203628045014400781882849496474043414420399174192173209378242675852548904487700802663912558763864849334748943044204688123511241928855620233153597072124622709147187785648164741932753213464017714225924297456303766103930531108973040779591687844760707830498006469340829409219263937362610155136894142624589850592779350845380344293922688361284967336715028562443410918004746815334421129639658891466144565008889654401689877707946226242474314180710410368363922605404993802146037342374571014222283645856907692216419238366826618926861187463295274244594476690869364293900624424177789799830247075500634942767269089667371270916426910959408254774076281172181271896491911989592477956891057075657691268623544906363046583922267520448445226895537653882801096772534452788575683408204101202417454839609673441741497670695331940768341823793838374061048993834456032647630235168095449505814485792250148673818215783089900658400739954518700458010418640357114608494136333709904995312922286871064991887052513503274224367064069165576907774813092616852199290275059931230585696127234849615135120515904277363799304652384688267805234047517901169033887846065215165003187213383134088299525414395890423620214665674793299903462969413495100196743855031488475263047368918502349720418937478970328375399392286333249748869343742978349643247623572060902721498465871911086422131053491531283316313558208758830803330515389137343749123039441975533322532572135679878245320577791159548205863716317117944592399147783493328133823917955445863757427594815078451322630292051887372633262208499370484335361912981874940680347437680417667117143817818269338946660000940551244676208930321087855107782066590893294924436046282027746893637964394433355763147193888252415631522145366785340798709996801104826023417233026715114101509902513666237746695385929590671214765620446337366181618671531337707926342849954077497829438136175768074077396379128851082787941298906216881814919371045002888788667921676893203600486702114062998631647693164254958504623455096678116261305073054960821766176611697504620510467266171074434668662019240516586963888053397225811163120029331745408911976563405576446436535891727253871126764629969747925590222316899435290795631611873606696414781760288331337920504134810307480948983240981192054495569971142584195290807569010053345887549597663069385104301145357897511990443042549735726854941464019970163096138354221790987677773397719589790502019055306281567277084526272409029204315806039002357403708988617726064863934560998512339791115479854755305126329385363065301873542183594384459028206451615477189339966552858592111398462270728508645739486134841094035209038826566243626579869894805786258172058564673674469683925049469056971606570665463584047073810169167702996995173509993385203599976240236048836088809571607515591331138815658041227887188036923826307416181868429023617873174793900334608787828328607176849843819963421281555709716225941359342192800931018073631081239751703118373859724181723711086194927547379772416071055620944153129098313341645395978766981786795636047671143494999041930356668272379637447254186651123909432983506332893466115290916722135629776805663380809132842154103419246442289342073561914825203743989106145633185181796460907082873097246851165302331400202726858231240154373940746965253520224782180702914752983625407064722040537467990316606477439746865045392447252147988172233892795669417853892473370557874819365162389360497240483412539010256363108036087905179810416264428410720657095866160758653028196093068577007782213148947215412597093521758729814686756404194075533818459543210468706230224930486534794916997939588258563335141793768749080422290378215111508082954427741262057726631374845305598017167102706885777365458369691836621965191098707060847296813607516267373845140284492060138735140160255972463856662080209562771829728016387066782888812970761596426089382742138043038953643086563669885692010336234006070674689164708533632395829222981539079793959765598246528066213942621445042025071737022334806577419121147440985740217799259114174104050771214024174339372267923345007612407049506868849894188157548808510311238330330765713484156135190993728512134984568518921757048445806932115558030427327769719851989053122007014036559763553308507575422261427167715200765196012146635997733503824563969920327006641055508602761283001080754666582460601408093587979177814402820686293971148139430015215635026174300733306439244752687849474966294520486562755217300474644318828925402458175753904005133394207721721383631067070329497758782703095670761676533401843897825282369550950126552134730720795151216565497263063540536744774169536317311130227011664290318977896483002294258788005562139356194714371389883048882016162307277299861794506048556677310490361438535444125582405773267075836277679296550205581567940782530629984115396536317548428518299486773290953452480309431478410101150957328830651917633751056467033533502190412805557819737708034577857685064954900724991541948517996893135997434311857441846871056188984450192100314192911553455161621519769622783493713061370155683246348520698253420334627548881206588401136293605850619647828461011608014940666675114411799767594655657555614579482201486414916862615460778950193845266771880602428453442758708297316277738220619105412819756083274126259209648455448705766049086738889949920263876045161851235140134479739638589821051259258484048877174820194393169246505634832008385882525469329029463352301697466655727214082889286802892113736231370544745920577304767189130733592316661893028036730185821734586129735027700007348247412923342989991129523059664964172951219093777763558039323086892606471393764927829939785167387947763345758943587562497453958585897805854646598587783755885700129909995790111704944118882359840901800966290447251830152582308879681323818456515598028449100639326390761500823028714350158016825935400311302867947089124690029440427793877400690434998711312140858364645228011092561715358247901636354421391737426194639909854139675997866293178320862890081709583424687092811159586710773488028646277182423039419076556699420073150134056584365067847271347060062183108972412775995839141161243276829354548092836024962206313411237969678914957809855667153225384039450441368053882705498427408594622328883055849559639856628514727137779917936661368985146359887399680559660350542303099338289174928783587869296038810214788393111507957267014550943012814112706990517199468701783184882942612630486511075024317293473063864272601404212505635102348897059011103781781743307220586028727401377781313668327355811231314775169244864728561290616697866032656301537701618685420891872681165360352034546610766483054538830407304569749196171934563194727937459096966385885589444238299825839908581934054041637063091472735084985467333886295629093662721138272173733483748860908938158704466272446222906079105232354979299739148999975632949108168623974564245777086578009816587931630257936291796190509467451933933388723438676612370948733369780832384479551487609574947116218550338076642509223611428909656983063712735123815803103295338569196171822521677669563253339773837693658524606165375867272571595921559449663561969282544908045966601927093263628192520440071413610897425954384165492361928882094516621450789844813397534920087130176520353836602366206719301204977330071958579907897541874451650786055074108223281664698347620419265648274918287921594138301136818951078756530194462820604662772598309090029767294723221954991232864513037205062488652929574265292181912969972639037303461658477038261062175161670497951478977007958341957801202841472673742301145502549662021427779224426516014394193623895954412808826514792927648920350222914750287825054824701300070529625723090684696000873672278965857040420820652200942112605266590029162482607848865664823845608113320786283216168260838517772280926166019587415677668344181253717209808407237595533231221006114105314451966674694195152922876476512221638660400548373385305751733804974042376542613006094452985179408334399949188747459710785005684917247319633984118454500743077526907682946319434162722220952363980531898199010552013694573771086326085049717824819347286354641126394856855888774419955799130452929851393205439785608719888073224397912725002366550312044551215715664961786257288664559247594800817886832961238459366898581922252761487210210955549582796842847086015533104052141368128095718975712440673433944885924406645864918480791695271446268906271389426744503942848687142464510280059247381864638560808479485176753272083917371800297568670086070729973988460736278456289770439165679190661454617013807023865557275857587552801735102983297629928655536617674531788590467603888453363086852857025423616332610135583037860818131804309641965422980075892633267630297445440541635107032265135589585852146428138148205578874367370728897451922630245383768048351077095975763600090338494322628889496803090037745335610753604947008637993403078764648115971260048996539715690868877749547627103552910352138277632136892957441994087235632369359504404755992096474077980978557460981236412376000552519787519357526114932924639531050841357931424297236418571827212940716814997197854001042496480441042400611489357946832295423248449606897678733559694101016185189367618803247452390751277152441343538962267241386332565888398786488647854140188942657259934743919627904105860393030433252258013321976586714226470162485365160680443656383402705629249597812608261581759741610118147902832295207035941685727054789298352836066993794377270619974544692694966973117176479087165871020602321816961376476497341415646079732681203945005006917784132652534488584653236753578945412943913663425000935425350079393446414604057534821290308435769192401778548329084015406552448911031433024802533053258613715429298998476396884405466068555415311348615496141991718192948450225812100939062895533005407015877310570871804387236639170930069337338717613060860682849574624776056210869902502733457664558785051438388891005804183485465969847499024398941261622147012435225081190231138621161874246898746482414265480864981814257974241202515329446905553877739016102263214675437989264148832614412463378701896982386740543249270961567066705866076967957157779080157869013071566446330431137314109911701733147899875834801241264014224092273218895344886497682338820485590182616451571548768717203714621308370284668248897707684740251813052015145903873418057657257424905467179271952292449447077617180888830903584050248725000700904663674472839835150383835758136213640444167222076994697820739703306536905924981442803784343558621305481023468457698626321210510888267167021860100759518844227620471767718706764292628436640914947602588588800341452791559885446630596075408346492027583720495273450616773297330629234944771846563844973679273306413502546901790476425298251219794392863514155688170847708887710421469648748087098768907746160394744497441488455693789360595873129927050917035312899232506376149962994974027330926020233865219425313759510012928576561814106780569314372930312772030180015425307727892264597107246160429740684860694837720672552347094235081970232235342605307272540681405203120136092819469489502469862429299266636123353637459827054896360019723935691214790558620087787226490202809514701429222977815390948953602223758489581415590261576230790920900186169136420373278258795666485957416376578597295277954659409094265325811345715331328772323218008990363854437225355862369233085794805744269639323128967652560800619939229178324445040133208502964113716493437483710157549148508971081091798122513317932206462888288340506311427666886258311170132827742497024468748836546141659687390994290479250665532437901003578583355226633280487382048173059132313047515172151896893310042238822709669726151985275998333975033756477100967415196738913164497059769434902697049014276329569194894459504108242562789123613449812558197901349185904888308477366762298843907964803149294578479179636165871441793719539468704975714030519491013127014750186458097909776057730641003595007202447133854107547007166948290257079623736674198646725533532913577091081174041885362302842174386452480010140458985249494176827814085013679736352387337072452374687484577294173362665650033902515435150930666466723023247653329356634109842890263623650343634224334854354039766572399387845773196153268868080342561616840758825049856848594778424618818560923083038433726429118025679945043136654884718851252138690517375372225938643216022052744345542973713597533435032216231161879981286268849556405284083732172276575109315694471074595652992163993141476019871685899964719104232149707106326341668300051441946275298224759697270819215179485650426369832584347929074601639883832173471118870654540528818844564267425734997216380887189137475078541108200518781023761520044335938314264691574905661820088541679771714125239095618964915564954939947715282215552301968656337195250041298444865301133512501689890381702755557599358198617964143665681100661840791237998710413985830463835830806855400790858444276719149875741258449401457480093131782662905633599867479568237737470494106787830580412967839509915781793422890379903987421578340751391881559350207116300451801191243839072370883842386701818104374764953972672103191361302165415791676395774519660270531673441022471481171900655499513942397881539110422946158647219128750457697680762422089196782678687671448390112473339868599400737531428512785119311001269484262383419160642774130509675672459654621710667681412171669114522240546640860230398361811477622955020718530864256850846798123210656609080994204903612692208893636206948317972716110444890216825763518770281162007704660167874057310783334401039916083361147154558689699773760230666641346457311288520531547153785627827190411863951551215791866525430891441081189271415402483182731458079422738699186776287934181533864871290513498299400593413251629826301447271737646220896731069338243794697038977528804097218995166367610256423795603065298294310513556533938439431207107251326273314334193210215368940559085679572440192830245523523146840939538800779867208281396386363544704833532250639935686987237927012905798819784820314403622632129210094841503496821595976590169159893321827398479280089253247261676371072300034433503663730902324927138771389779343038060461396530400327232511916713583090430001443206464680414812200987743461047637675321963863803751304130296264093002138441262822191511589832524155100130840241875568205246883281853967228321755426929236504141073839076253097485806505799204392512017658314836473852581295255627899081116825454160939748663802315741380811307129437172272165318812964114186697279198975688836002847183373964122351653819540539640638309594360565922127032332033436263132995968769815614163947806775993791024229955743698041964825328827193913986994089884314303544492811832151745217731696268251245009069007322964571352443129956226208383916804095409096178263447650765919107763956490946041526242393639840929536425592203620569245960989641125538612726255040394179171154477004243591310415208345798189527680415446567521152355004341872968960123365338597540250967192431154256774939178679943492515689468906537537105917296254498524080474626563002043494857327782763003848921990569967319541907419072902179359837911965935845972130344355148086612046343760546964519826833946971364533755080341885199966106976921342305064201211130854373057196628763001084684423499583048674096397363010728248826665407899340433096760846960429632906577396177343766932828307509561143708538157612016199653667348044843810315024792666438207441529010705555663451688109989722726356076700887199303442646771018747745606305656511386580799585142294392557004610885655955999852600430085488677978071260662853948640895161257504066196318336541768670293197149453263207143853960947740683494615294063264398984213275600657969798046699241721033351244003216031381789756522376577007906574429361240099353927286189407433906276258749952411224005261595691493316882634119216830516962886115622322458465332105146520955169285093432271688265267437719307204805010650038682921936027601712982799843894243642809542062376485063804571926098138637510951934196983739285758598780894392329965452925574753667884468599568420076605971388214462448843732188192370832010487621795841085999788920138548648477554689673657864665961740442549004813662934575978809895814287814590241164304580313008612966943544902961276365943961738170624990537379642332704970365680977462546754583905071252475706801428061506531123408279604067911254975196646647129502879530959036662071789565178997765317967681859081228007474322561987415758338468566417148165231733315166064709561294464158279513333362252666725794737458855593378597574676934550518513315625367564041691296313055549716253157597675893172963788701714535536676653187077374462405367427800262453698649952647287177111366281746000680069935999559404807591346018379054230685210564008220613455499571442754855855574294806230363207527520967624941590028844930050606245932293887794745113333781412811195231548928846545228155875687547462192430808792502799005079908441217385455095249262291726787292999981258472162361378979277788934383461261741814330263487555756217275947860799997717630525476461659944916931420260160182966537919234753090918310305531614189288947140093076651432343752045011219035729265502176281679003810703399442163224458966215531436583080158835511283592870470304993409272907810553112440431091353469410430391849033940233032485631419198382456083202883047931856625431915750589800607173747729542871706643248581721554330185182347138819572203681474765669467103448958636505273217250659846241139687816686340312009026824971829787587053342932706661976528104948116578898547735932648777679641073809684014054626180332522586682130038223395651856981094534603783817096914151051696583418062930107141001334428674116518296280909814865789501914427148523712533485800018097212726702440848820323936831196156286812507050192044476892976932574466333850825094023650232945044668699894233922502297080078723490761051195246310524341227931708267472108235861920127336612511863429278120401216184236118287453703003925331026319408282922724428968882909166421719242997200984074989288852581719511541531753343737869552465760850767003646099458355210371588386741557252778764243891447500162755413716868598823220164304591663799555676488214495898971950475521777614948494119552394953928377698789403786493489046631626499815382728902681024909953513086642934705256422970624362998877183723045220486676766178279435483584798278293535842787843623874866230351218978682376072731528553242809167165112057285079680104937443258289521159811635749894829509749580467067051331804480696103591150053958508756927087564957551172613325029227446355517416239904848087932073269174780457361310433220053063588485556088553951485761970925716705054158884446215952099024324395728361568899062951190675757884226527750085641439254277065157125522640559854714875890953323418068846527543879174469498865395974471651755533635971273070715198352094631220155623506623205163784482600719541841619887567993631949073864510632325472505838244398499398339414670476085402207930136358689832610795907436015508141326961663191118235070463031473067974289153714049572529361284874693591914030312129115505316144917881447094619814680431816442600309313770036874118843744555636222755319142844074682187702006784899598584096662978300154985394031446516187038324216459822817861496536750692782888858736419691796318475219239240066276442848171371479064974198583303972663084792618294950554765983171773717059943435691756765434181842306805442189464605540696352669675624877373078053413089028715771199707834274742616396966868519799519305273061561248762104002585610368663748070500282638553556139440427635601453103213065770247631864883461079211957961869065357024396072155911074978962973333272266218494878872829902985698579030280033873806273830195864383080911997477684365567493816924713195937628865319341566438909212013974252138359117278460270128390521524743738056226107144449884064786197955832867008009974686998928335562909651422394017457355462770687836930910054711279577066762246413326482813324933851942415160144279806051085779282760935965083451391040636387364269415969674065115514295027167135712310098095475174644184565898212413322133690307475832286626725624374861473472468497064985180220921924592856135849039089056300891023626127435451438805861354867292071490147781595055346391540532185348035564536744478024739767904421333814469539180204708803879614070845988382089609526945033724757270001018720616459609454274200903182466858539683384594801162472081913857517609488200142898725512542355708612536096429043093218122932799340626186197861854156066497683087080876826986034882222161217432918018332753563560213942909055339362495859310065328803292591395685284156320332416267716589646305717408122923962487383997454257053165961530459257134825851784959281275856695201002588479155741620911003630996251881215783164730640356974088909673579270075621383803895861540140442447204793055454335811671775608108871546589570968993832200921893453781892058774613386414176861281331514367428792845644540639325100962363189184223386663950507216047317749257571009967990020606575701813643399325819183359412665436418269350101512639258062981047341047415272806817437207924843091044818031252539838591573520430679037454737450634330102926954560455170964989333300204348673324314348463623100018905029424224846191684610835697602824418473183449978958588100255900802659117999274157339992388211664826894410282374553762986539678253852835756658222396460394882611312454119788365895366615471412034987949085509979217805919322674121983983865100915863394365652279793848777515812709983375571583593119551184093026584824036912619040242598305488788012891981211698788629384973317786857149962371764516134224084491398764473277027257169352865716536692603320258060129824665776382634304169014251717585158918692059911145080739890401888045868021079518855890606965848604348351689372119833043742058999529435467764299125948899548482118153339108701580628155570799254298592125848685168336727363796281212994652597508868554409855612002555192738709114496930971980697182715914999170676994308847942574689599719919699253009411500807293813109693015997158082059892209406687212399190292403202669831605158610886889352287942055721691927908080288639079240832707701347994302787276803025526054002714756341045831744590383156058025028130284201498639940511353629410798171716098031268141500263428389477470224927506150035671480781458929239169170886480084964751570357791314871071774058741854736909197234057172743610255551083865628503343812241755689934977446450922029827850034789656947121165100402294457432191909768554772648978836481626140726167811010199433060202557174123118832558864020366108860083938934897129925061024997066148832048720685705736828148726321068855852849373020168101699574985937798970296476473902573107461832793388545378139936895670860742184231082423174054584446161526774771411396921408624385832591612764942608675892384865324093948030640899416554530436085095522487012505775887173523020132172819649355669180667147477454750363820775235601368418487057327308636307572012408136120225452772118394039537874945509516207030649364658824901960166980498739602136115472742015611422584202949447429665624875253574869620581966456586296094628274502178297138701725622922767345923371582690720631138692524684405663342159281824182445315187026392017654384627333380922210304349915777191088285259951144705144795559294746618849208799059666476370649148504397917390917778398273998513357918469226889957104017933175436296344804262890114208453672831269796667188416885312798264930744076083081926322402375765517192104005954799453051801719247181068467889408360839480189396849729233022349867394952538159613076444590536417649915429759284925651056561473175446554543490011770249197382554644579070104513697008718554375351364162388386169178756748835894694776465326553254636833775438304290129936866849373639493385496732544472606183131354657577596068125099332492500289270282222200813067549834047958880351381956419704304386380805611067479059739453858151346200118547844939373628103610603538783676902326931212667356996010728789690598936205283926578234438097455966218323305549628340943749677658325603194803763521710098352296118142747829397681533615300671468595280911073578726983867389001985100256379479023118896852759208409492851272207671954980870098025916618611635487315994596233345439934574350705864984154651196601658279272300826696880817261021379904096341662344581108240037684558108540000608647811311035705789143111048473823516250010351670496535444849038547359457094645034449696498282928373050453195987001259782997309396264424954309870794000442125060081373212227668925482326737903464885409991843708170152196690297768181505361482275153922612160700950192222632433401691875450467343729648988618627147600213866357038062394961375666151870569102370927144403080719300480470688562224665275002374959999190645996638603828155122058142633014653877897956050150669882614666584419221224605014482799904928887464443437752378406277016323127997461521695954775093898816431083901735683864698090743123905101105500035753480263085797838000896389604617645214854494102664034507489140305937122682117056104612764734144245586642753662792251460661022109565659446760232425776900400313041667576146868775371886970069675043051151287442857309379927256124293929701182981048386659686618495069551021539456360891803656930773889515716825635814146041075182934799865907013512951311497418383538791860029776273598194932302920402780951658215535453539408475241924754888484696727862871522661724685300515438014562348283313118753719989939895326067825712394317016633960004818674990958106482181259443933856360812096419403792934462593928771829369010235752398894162532939590047516607083718279781367205123533578155766497110809801513312751662133097448812693555125210342802760083691693315994040873931795783692202370779226722914253828648601732161849875304705950016862521834692591092693217108492508051673242675400747314081084684744944655664181037761513776629775283513501995361752618477913232927300369802085732068557548019222865632568159235279926340927540367485120791613312709009612689257804394113117995688236099803039872532904428233470941999859907582509655858445512507778509277088882716590751770355261459739859456999056340632903044769992012363441768816292516718522121486756439153244400462876223578603164097983331365531019926654445577010852450317193262731673408426493921054263476193163785194879385518233219709523749339707770244589952157988557199556613351392343268875326018974025527577671581907715755183058332265655688248621918823860474134981764885747302832768340896347604582319116711620196298810778444604287296496160862696744253615958601795610933820619022538997641623554299111585822707674509746241362493129976056429510018466792016943156950264640038329413845908419421978570744801577793482130452817881094916033470836339872542218670348938688523200150805806574353260256794014749259814651680577286352532295306520363352948809830976254325039702290048008191446390277985124700213599672445916251187725458184558626974216275249413679632358257691025108672420510190922213520060513518595765818468093385889845686470067179588746793874767034248484819388884443923094459384306972545238660578498739021194407271909282500897140900852702234727554358933317936087221005456415697400719955754604132861349963465532521687384421744136742049083159444578686133597620110397863477089693733936351225511923808966462945735643979166531836311599722940758607915428492970125519640014106895572572075872052371235773794447868269153978689595351009209894372356233460256447337631377575665149296581074557255713991209942570595381511725695514007379085266485186064740585278181537451139219638579769346112970404269791944504144451857285511821180168102728336884754464939247838394780322707131253822762828206003434307853099357654501274410933992969019429240352624110154836624387200670356370947375373486180250015057430567580859604013954509412493495406534184184194212329762216996776639366786617619481812024192691844633050861929201226550831411450644892587640134187297599657751146101139948398868607421204107971117770693983463099520029735748618382397108179899578779361092105643114755373223426405832960009232003563950151194646752783011242447902889807050241198194809046591236220578764734888749412749717104629992879204282988730770200359982784846604074657622912185603677946820211931885729622101174143043617340198536062624425494705497840882770393933792144686117169696879448690027393466520815947130369016676272847050933767806713237409222542124279057989558926194314161363358737579557934987037703906311321779057400255703069301034162692939948120280111325657092578849462755811695580411725871701930048547275391054184280840358017066899581321992708145328914343120300545072760951865537589455049036436420572336666848626168170751756975283689952208774814555407300965694764996051431977843729424561619301456893759771308990456008399344511541305474443043639490383975933096450176742811823013154904194731049360400490040206795030272987655498050532285433731945875626312582406478941700015714799111490813297670298160146871736354527741553569443709435290041225306197200461087757368495628586117168918934754856805625612915206513417165439879346017012930590223773126778635810489966905054313315586152939431051745893483385655028434862236264108828215174139366430507920965295810921816417962223251305998333549379830740308727602746245785715695904022755183288500511671005250659026454805643741428080103655856193901642821600448258248807849137387480208755647308781251195530950131324327291889296120217940130450835004587214529120069329263134977544387736863321448962415421629736412954631454061196080684381230811612924224264638791497433709421594469926551546530750280758093098988833545563874192805137456231612757725654320260903360762629505563260291131229301625910440285656787854904203935546395306378552724769806449536097012816424253632596046703981594382238862771634830430560594894531782724315879327424733860074562038742435251600462681350914298776447923712339439033404163085650881467823130522574030636200197872002608374180881223774512600134134656725468458064126100239564870956363678675785013762695020289633084265554623872109788564156135152057140779608765193244469583673259808922244555373296388367549796753029155785398966196685168286849560268821663901748366765885564686599202106729532816094211222229885969427454635126044885344774617353628412661646347501317086606481190462042752252369846902567575980779453631501978089687598715847860906956504366695032852669422616520593299330341389790617653996206048875369338620013071109024047670291339015936460885706694082528815151612908678365421111203893622586979175726198090996483833162525328534743931133177695002877997975178513676241731120827697851271738586916152352009726728978336830471543836758248454590939979489405938602443425695940981060932566312201987942572504925045021302658391804797353088522508437338899524170936040791443757432248428639441079696262715724917403313600545937509602673588315856876031910279010420915375695941410667838184976939953998407584930325070697422569141958599488631954948435222614900873666566605631364654938416360898361056198716995824231703416756235383887776283250441433384915426447092997869098724065456948217472459927441859708544528615194894312958265265429035814456763399675799869576405259048345167249085761524927685779174203910048402511533899214104948689101952949240762846533789626280876644742072699597585063683237681473760789558045299607587746284618170163359160357726184671387642727627238485701033422976758374652068650632018517333799537150350440199425038332347119324322432251725561846546528709919586552197012517928255115693806010706375135781872716174850617732313780912154147212742009264157572980627946393594810952469208524690257578099778336061209274454796559078117970801406659489545668266883240246056940376919318194944613181339485430780998986819001739131857215232511685573799323981957059883387170838038610615479878586184573803519395581633735152179485747450392966583112158969500433492426901178914192341350274525254366655503635221301600061490698670724026892855409355098388872478786535156638079996839595018614973165000214972368677524267853650111059545601111141933228593819532604524058440970097436127912555113574296310280919620678667024337708060323245037700387177548665378400643032531475963852857148236753963128004566444071833288758073818766261082020507907874092112308528184192365254532829986621070108742836118652609430552960772154843807645249563972320720936444469798107758918571413860581110539850078433821797900988946626359192754688297388609173229343134903249623477342615413063316528109875785469110028336908443507624915600656932862074784003410547487560814585637799595597205567968741595760812810474488757956678382124568552519487963008675658341304431044020179331202981387956276300708140067755683250017852276775716796009022158783166919564033608985289997855912462380264360000634815218464197532153736996189794657058541484528026351915864096198652513897376275549125310428780531927452296586495587584179348028352146780140830403597686254540764588837343064012935438757838435471078664216082062713746857567966750279701552207969546762295340359038683752845302312128172182557281768133663225691910985359841819072820444361749980676572115399614816109328312696947866359330834562310173696621853780606290761416109435890905415421975702122326721206592897351092054252844461123100808180355403633251182221302309641695443921374004016573875818896776844549395377562279605228742953931795647871107514735733621582957051293860631949268090867868741179552513399068745193281031832045101867343359212260810894668528528996053971403415516351297461353256257257408137462889807970540178455297532774086986574070384552344924038731487330466944770883825970014605815184974969945406275815189514180810944988508691087535960534903335444970993550960101893404181135829691255224437283333490856030905621959422741439668436199498854796208967450079934785404842373130905404567957435788363252941386179106777435924215862527501557221846759601780076544391446203932261719703472908369078910352837667871095503159939569101674943849089979182710452944169719768637216681495174256493371334629119984020036469323833358566315328847316593018964322230692016630973336144499717802320965044251959814527253241056819773965382226701346190317587370104736379465348510752395201233576917135056178673391554472576235484496132923125265614633892528397070082872930071657586503131941113980892640690193493956651162492648030993884447729850829388309387636376640810582177307683426903468381584249973586547378687599537455244383175546782910925149524571990608944169854362603455284777330844031914529491690914536622854696474400554875224237442238963054674314647861870358928543847120514003478203624852645407932757826520714958073321423238402966475285314036606625266182615330226456079981368857436118951332842459716738033120276660749476075629115567487332747529642494036656817434737885698447170226074683627638573782363366328229694416317034801666177453404033331893071718166088040697103398946579667438631315063488316413624864502135810841319637183227544493615152826451277210352761925462930759429032438098250156653637795514749394185116148642644160153628097720050285927330471415382754956848825220361271510261853053278479842811543941677734446629781561336138308639816609656911364284339965107284973902411111695786661125422273600796561413153002791777095770083767362978874392021127871210293806273664034916757563748388974973535203690003520370134409753623936651208969276666321407323571087860772238524775911532587201435342755117450266242932862900131245771887844072310599689023980414511238144347420974693115792774744403756250195180417797571956821128540846002723194044129976870097037060339364696482296669578785933445319476171046985032590033421925582045489361315973966957717414185732428939237265731189672183111938098034145955257165401838845150120888054850664213355181339824551798863778116711511661479511862089526194073377681747513618650211499708444409030040234515297838219798928048889639250307060756629905190977142759147498294751439792289717205447379790036473859008276385998093843081814358060970213693655564429805936378767473921023069716686058459682543097186919092007391483293775113127430162834293938405362974514465212207835882118583161884143616820043153472948786665140689669856047016164054536423265622966282864638092857090687587579971386656727095849379384651560647752004016850076073300678351398234091540747061825776435650316818609546515745093744073837548793803949085105963330987182737301692120482299629781640097650753469854156373485279415383552861476023260246104708089297641850715226230525155734681694865044287685361927852648669519027465765749558425164302527282643753477997317529535300503639661320999759418642986605119784425884169440514822041858449639824506432178368478308941803864637633392269618649795520572548993583487166426532223030058568097867630767297003426907529444158637749433796098860580211559962154103349539234465570796548710872246020040318126554103668227964889140211862344196652421690757961468878239230593391058483542531559678953006205438225557565959603123283029577109590050229319360303856921774437257005268872003094115580774868976236148926444341005505897874623859227593098304155724686014552556816213056955237145193766161147709116762969353772461188557404012759277719189537106840746926098081021322119644791876429686353439812684521450511007652952082248775601089810079299154185924210688195206021965640919378657014456073802560238724258764394874439272385647376035903053607943548938783122180808976900182114646216516571699512760452406329924217965811323881780578478450329729377189183173019099956117125417968349008575946144224039555520612922789568034269968247975031456618495744956868070410747479351615692803782401509679378514056661912370593091453272986049238347271095554027589950793443269854342746155880462525149500283374615157437422409164230175908784081584537666215192373956470220605731747376497152030500046863242141827430694447137322061523422558004113134646190886226685316395728538919617014686715515012579412307756128586599746218582124645193486920547932404143502198073461902546116765746660439164827064523059484555004777876353364178525375976603374700671710168997839156548659433161382619927526980447848117979589084046812700958586358785772179869247916637550336991840971508206359267430882999472192280037791702002824697543338635350448601230042221435446759223134026076051852256551852739748128794365250176236378784424175703923646508273344496419630723604811378934122877400148786398975019316261250395009204305287003519387139068081890424031625603285373089716083843577919320268768736786308671815376740171291189919965991605341689970026302309041493218376710343299037962417156979930348081027767111578821587138788811959609280087610974756012730891380459890942887100371344730536178762402536757170312370149136252549679190330394776972463003201743260340333988258407878049083725156753451076164939429117771510244091804616087570212889515270926650078505318761207402907838116120796704882561365575378655695802701820008461341615545693170326408767974089299812730075565925959827319091792761347679123267795375091467063448497311773224334852886122580615285880571964120161199175143012488273914687717145084466241157655152933149588474238856272240724318208111386479694102225424198261374183967238629402524379188659936770009636887210455453225725222328866607538731371022953795732843790998102155479231288495212777387270810897915176611388641101642189452896858442257953188734625125313190341263662315595653376895889062319164328902751056399139516866759895371770704321312085139804855457767499244057066368744999670790266932408113915404000178101952503853715501709040642461738360662305867890376805683477533357859544416227658427134346932821335698083567384600288996842007781532503891877347873421064733159006916252426361021860312107409575913751598754991440446412351470306594279982587652682092906497663966761003570132346358501129955659749988197316930053729515801702680990781430859458401200393322798857596251499669807638490111421813170909634183349261595574904282006296924912082449903121466523666998333289285029706551007570618391412966007499806255340874211965860992944702747313287416642929271810666804839381832320997137420030365711696260928275649759212059457704115025004998306675424028021585798608545740105022768447501211501686925151288910253944095019261887000696997428708447621255884499098014376328707705340479931498560664105236450247097137710617241625226043371423645892915996023664899630120790845436239638000665092232048458485882236365395278249927385819527133412834191936996600115789381067605897420173406685775748320367362994278343669727071772520351726934281672695478190977018898966326367149715137891871299681304480550687410383790795044900672173869233063000101989851293573237721204340468446256570131912402341748872607177193080049025605610346527282193709282803815837266848281473980295611400885397413170890220274011880093554215413136324805716643690856271504105440147397482826193118051440803352965863282266172824873975148805782244343273830309165500708570414532816992284375110896202620625947229371589056671704473693098295066031720177130161557586460920159526038488960320827459364038481326094690493019819876377334189501517951250423964008332712357159890625163457981248732236185374849535645647778333879750508806302355316408651131336647937886989971961028767562053488060494312378175724526702444952530018826833018173922848979170747235470375547058896944886044634523028227277085343790545281430402323567397336753811972314797961700467687007602190666750555137260630756802157480421976148580723301384386676719102325131813986737181852687162875523052751864991605637802096204383835713449497102992658447026062055492837952059128877106857179639788031521146075181254886505190535473559120769648475111703488642537967985359024720399446174438030659652474452282369025204646286009070434139382233772695398950066155993762415660842132130869873441253766745280494965473803593899734120654563919191952634017161308543768234109008604147974595751370825470857305549655872315188136744162631410269295760295108206252546646409345394450963046785023397353075783882439513701592436716905107248023960972522832136922269140943737888904077841808422333483549860365882667998096281298895412780166177174812827246683251192591307930347749606345716729763126041107904594218166857554601679138294779303242468309130788241973020478034726851978953015893080521545430711149416266348327064716511162330297722275088913628581669321600334625891183831841361597255802144037673066132402767068759527542998863322288429377293982713989862322243525768942250826481719221746405895899079235890785927474013781697141993210578459230634366956854539880759319124204784940174625514176205931344417992850708452364474341866295411198019450289394525332934059535073049204044537083212452325855990483701813790368726779247901308828300125466357113423596899842285347590660847486096609990431111712141724706270059530427651516623624547472498454413402564041785558039476538970824134528518346080206243445551532918924425310645684628733206088704030251325805159680552563661746139683083785654517974501187781542348924258020143911334644387015877700901460643430556844669172917282981144009183666734979768472215982915556414263944031574191591342729424837724616888797804311714179845984772107663305181652421406366220896525468922886479177159941954558050736189827190351011792610386545129754674983072426320233093918429165117489038902078713505594102997982003120846865418362015760046096748418120980761879238364366807215973484913779039616676662149307473400001838534247632782450175714225544681777751992928867254591549316014976944263656105318914474586551051521218056227610779710301529651626264245428449907979610268314165933198417039228915166010686690580995684130874704662742034199062300589549388481356490241633207805908208280278292818457347353270101404279362161155399797520028985376281774143724467455892221369236839910118088591029932239876176385315536430984624997330857900846578426373890742889675580979339992457799372236407784904668035401196753965016292143330066853967359118014339567328253168880195106444717289311271477967592509871276671037911753950550736731014584273313739623819392865889040790509937920781714723268933017437350925139112086239746987917885582994903429406600269886100642628996695052967696766727325441385261804216676928367308938657020513917074608837848098713609387621320061637201768164714244351812632557681607011714340749389128368548682760999051351622804070806785646620640827107705820392216690621620696312805911669533141621941762158422737410647952912417024709443580265776854155094106754783564200319891952239985133452226192642868851792488781303131546128107330523609081022639077213563739348947086735876737234063626971698583471410366686642516834596431565929705031294463374839566550241765824693938232928206146372100764775964487018577372962890643859296095526558248973670606804808346633500215300621895714847654386955867048542952245706486676150511421646299650117184424259233163234901338978934361192786781012111810911112409199746193283108007910611096278761268015225003958680483415237591239142504030487833899816268572868096259789135141510270574465067004505249856674302527776575150200248504537907026522556956590697109205383091052231071431695396259577048033974467888229786501743306557026232741324142676367526298057498701370950717764844754515989456789149690146944853488903268549687245642010008862247748520138678914554144412878098005221867195620539978706971761392363585205065554719465317278435319459647888128404024481526687424171126822242276256118360302925129669005673861026049990597520213380369844991037627742311625187339732408165583131125919195445979715327209246576129767855918726511326267029584507588282626628570802518389287010142745206524065842110727797525710203617765102814223169123298151448248659616722160879417237044414428483480318693308300342732267896643951356305356219437397462171688898267575141313212789572858735627739013444632501906627845046877944132899649086443825776822928148899310509270702611749625713012992171492788153304367393412453173901143185996293511651538368211265830501563729695911411150863932785556439188316191294947854141288581628737016338180307716869488048169542533497928679410633671791221743907796266528593849959158987265599554958603316561158471057457731780973419373769388597428180372307821536385794983664364809755450175182129120526530793273571072616840496537961726648228787140061410503467174618315689632815316119185081357752794398088900627361941412418344352580936274278459555703002776059806241961880228566345358377353027298160225587429295400862539901412361843699428566705242011673699402032043914537534053884230626876297098630927515041993204120465085426917132341129026948658830486175422084681488325525244704287757387994331895652242869418751129346831201337297052523960538284417436227167562213856329451795390145787937056201309766926763130725457645637382667611821236842332308580405668184604083662845614061088457258376876343720907884243943823987560865373103557428494380778082429055630532923592810777310661869550096158000316588152338845278325547896364556038424541207737388045644998290550595565306226144174299648442267112442735064395174361412695229334217798377001502421006322060349139543331554995018016380790716520504177151572394668614039326726961417004542541797150543097372147675089010562358105974719061958386180853856888735265053221238554417879523876973295916411062263297546642844010772335579078265541785433750301116694868969415880156306350606468135524558616884006636510467680013420814109313255924417967216398576022768212860641872167918177796950447352461819297362522801999064418847297074920838415561340101527356361333943892198460286734107991900983095579615256080147203672859368392082411942506362316824048364833331313816918496230341473710212095773157041056913547052169536232496475796875337974328509583415563785933477933631422426114027201824957441026944809395203603430877583467461646592418421230877744246782307024980026320648302099431816925542862380102138158141961768389411111729856529691866704235127243571414731672033239967503311347934705385598227231931479596767842582481939637973203347886606626462988246338485568619591297621808268016011178097135333693156980446869446488631730525237272453068530455396688480995228402921309534110182604096335213113256135976148474389299721064231117544438120295781330479544995200039081100881964538948030095892199510207690021220780264424455342014852984620208235676496726961317841369782623199539841217984195718933641515127800477607882745285292566846982399526166899727777601642060322300752210795740186837083797691020327327517127297678117620242293736404693354685767076799481691603095872088398362665123753863575077882134371586240812614290154575054349986227160737705733223295653042531144578208703062413524393522096488151475472051371737932014206888608313596265109449435350603597989285025112379433588570576361580248666759416206313987551670144899688398554389865617873956329288199543491292496831651314549237822018164533242872066138379439135892658045810344391089270217923370978837546376620251379890539693387121981883435170465212327744685638139235727123011493334467220642336924209194485517413797643489243960689324508829453575017357391066924133201619178353493836591615388694846924762360802842957980526997958543422168500708184378188720686053576131253043590210370865614572637416517808453725356666275798315512624368054568126841483600578558911734330642382480849456222843536627862708213448833555315445897752523169627080751506528797752985315939066902579619606472732016906579911974459514551240492828070609589615936457733187032280154783129703020685165490865154013929383452936681074783062269312934244952108403071416134412928354259800617046271803068753499059396739362200407055033833866057224552127557568409343603072967852609668617553867991015341102486263099728072286830350299017381759966727613194212439403298560860788446625029992781932009742528430515659103576900016047905339351801152785707709462135266838749555976275805568661428009814356847327252397196446044142855823831455215469421149057088726802092819199754269770262160502652867911888666208812386987243442419764407569259048258741738139197070476080627560093402413804407090654918966380601348576798563914552865193335639107094957255396295479172787014222232160010510497579088294876905903622660311964450429129849637837396120259735125804419941682117196166269844353704216000366863994319835488621081892990933086754549028060096537131695650817338323226853702951186820514023659038723485454551421237065939884199788590344088815649324497716900499869025951668229284634467357178937606957552754014320553947854444059016362288927833007684022378947542350488510994620720624601490455255178499598142674954042377921920434886393277323965097405219776799828696943687431989250936863288364244900077210166033493417684990122213724145001097869540387991532295189917743120127358222735217774807863577883770262035277022552242057995971866298862161499666900544435095653618918717147407810292003002676181517798238203042635417057243333846260844373577885342712064142579382416894132635988350670153849752610927074418031581731624426037274448938969499863409770979450722774117573126847102478352799787944007615339601651169753992947771950244165729924057974363567646642813400544878359019208415402647312305225276534249941849543079845703507184784702426277567968625773323802990945671808433783788358734558138813275356788872437614020477973622368624071851247988261646736684528363728210803820166296790810194258820962336159069056630619856369840865672001293932526591109842194363182694880579846738742658926453524416052821834926391792812539361775701305069666516537605012970039800254781872876455092444278175009656777143525427534489096212764763484016344632656289956691540002925196861992020522109053928347982327889777999725063711381702493029391809184759522865880284728447589803866096876620334337247099541535173779194706159685179696753832513345604594257466532875360673778445739849528840667573035264429807617335998312892931306025017860165528791471350565457733408017149102957193008114420900740341868733360685250166940984866714103502003301037485966183773633361945578244177198551668725957775759778515635199506468450487984865223178249253468871991913649940014531946874559225804484202253180020154307544453320843828755087405755083067303630103247476745571918112763318824989893938173461926417217858665839040850069910805863666665624413116247549497520161756999752070875239900923258363085735255865651458022704142850668383497047393987596881684130633688476452528594121754168706834248453766356742501693417218147563358993209107891390987533197573683794498423616142517109550162316004590978666482672896987426862827118329941065285703794326013795951515325546379695676497452912796331072769931515892991726688403309761929254396913318528388144481212843225431159781820072278248633483481084624807250258036622495900464670525619646884128084534108124455775780171068034704025545644669059914488280143427289527739806494685168371614712107143356236732464171886318434102503026893720891859179386512690960505174816091606183482579304356678483608635703461376796804394155875740367826230736052702684497657099765636545754393701023660335756246305869924939550971639957017621563940460720498783534483479000065851630386222993311928857651331093493953125477424400277612302172386488880702972159624795855919532888606709153351923304191462656847395178010788493611283287963888487855001418722301191600518457036595099465130673540382743386094261256607207503078609276284712531391667196391847386484768361073753546386429809593220104594806850680923508781828693698425372909309525942689175358904277102867541025805105136679442040423383588238416213322346444990547108754613078709415387423701909799762579465382458511703327627005714088007207278879789329689745924385355797918079952837780436521091816665865670037342375964206013887688393936700562670373507108141099012993284376313498832434658402982989964360725936636622820349037718392522208296077804691984398572121480496720628471693579948958392070437284735950549386952548236427819304330083592118504196161009365002118340869289121596045487473104974489269351996854615318862140578600529623837240253607041367667349469302383153833114123006086666088538646311335615384152720696705648667202238413193331944288046848686588094433865290246565071543351728765733739328215350283837955093250886126453889168593880880997392992558172136337700575328847134830842530654931491916157826297881853282133015658580135410255884462091727623663167009749217137904961955203101192147223882320084186280527077006266734052998431225302837361184478128525531746168934251161273132251205020596605442493835729919429200221851024238277415099411348011114900547270818280167211958206694404380857653921229192771711562335675231421858514434302462112319544162274728649623216242006170598517386899199619352532158862242982116909456420812742784537417786018147097399808996700794014122926641606959429813573122740279021551153375628102869646594779759755174787525566095157075162952797706540914969534371894166814574394450068085631216237650421725987784062133274426758336920254951376611532358277138854969495138878876684673514703564416614855478562535270064780316982844015315711766781496247614368905741831184664171698253040390745102074466904753758448731405079738599604582757322122206505594812288572019707826781010197043867731981751977054151240308165415701519513758590311866365314320327204500358191081509383840336129933827009271428775913038676096030885827592361052983677246408454360266014074962238346093137701469164470034832733487849323179358699547978606575234900830763937709915110112562439145091534347255012835935780785162735426601353100929894374504086586215466803327670138027947591681467137815796924467062028245811774554493871247031457664730168806582717726162893843696012459225793050070172460478428260043698884443908832557130264703026556845881408564225662015919483381567783402879121685368423826155263935627938226502528316498605198584529252250228466224444764455198280999493771200635851897966849785800433350214972048118629399081562028593925159920725483101342188627147898296894704792344373521181160139918173775252407401782275742738854197152024173774573474059563386490349620300054907915629662939331250867009635909172666712037659571844432810226396707209544409871759891278456231273467350939002023665639450099530331100951516231847801804155101078800793249626328966053167733160639466551635939054214890649613623352387003937694951326912890289404891453996104659859426675664182995480608136495828366252508898104745771750475467401032428151019736394214805014905855747438863540911489973358275129674606188398842731707239653839194312474516656087897934792101298268815077810437236186753647172504024041576072477840096942322882931481188972566399006799026432241418042674315928628796080514193691557988876904500812600259456793194538992840486646201523317443215812543746644378091518009871494415116064006147383848459218563095660760304847926671893352080800569773946403399060655871288389529863841926039349075870831437834986848746744413213679947965882718265658221325406344087482381750731661724864798302097751056453719509430226329410033765883117319526818522028628026910378875251416044467389703564649107115998804458196328537455651222676066865318481849381863142845405010577832528353389860113174689623875279552452264029024092595517601038853909510009785665354757024083131837432787855835537495684481497429482620368808519081693769008261116915855788078266277907634007817261254645711275199949677672388351470183425301029800605141348438449537366657825338439115978278524203181818957473986382953311569089454427060109279839815212306575066445924691779529120132011310295751130238936303472072738057001680345096525151503147799947751489918573854955172900648315208825463954818600638123010729855137938727081200584147124200970604334449636034074680522232083132986615590826875629576382333088578465452771091888204462695529153676238072131057901913396583772321936769192555625409354262703957626673826945848968105573327914976500712604126874487724011606443808269353621843457051263936564554455694965947195405064787771101938726678475318026813968779357543807145488339125863742175095293091169276342363792900484219582853182403265637426781113997991127767117166311825631588813921094098059828997816779514318154516401632074614528172554134842710708568107055704100867174420653648428355734272118925308826345771185288939919233058028984023343300043168220538721390844681770469728331540868153141295228070636877964997591326373326221082909903880527270174668187842129977208673599246728531898782395571034214862028770795706578512093261716743105463176823919845640081173147904429386186224743263608853056505791620874110923997339409325407962892063939011496778605547769792657312172387503167324075646548867783677183980443233017575551434897625173750012950758206993769908961327504025556205821649136332231428203140844650537568575475403360894183117983515400730316724759442524142722133679321515750716815222224194949864266136497115390772253260793614468403032282750993022478379370029590672667627539048497827430218721778339123760764904292877001586886982170407352818816219183443563077508963173892939453357001849791121890933642222347827220865516575120779690546767295962011477586418150746477162129742556279763423101896921725631068018739832050102898247702118612425993672212719750845534898542484663535044542676134929901331160177623752968651413746806350772493926803279389360492075541356456669141535482198231824408233733090294022707872836902365018010926376366451382963786440408855747739226588770665688403146882947816586103024007470094279439509045533564352944485371919030938068960780607875473959294309945751191383440747383172978628295858101867974599350258382979643798709675799987930855428330068935058394843836828693852176047995211739729192711842719400123466498908648376954273499933271929325300012962452375457046802712935637766729012290937077864877011316833272797859017567605780703660006105179115028979553691708728690833674015834799324133116357115648645028770098287810762024684607448922697609017444688558872315922970910671571977732395908775781902126389158071020292800031675001049363132274169751993142086853985340032749763091348074802395677312918145008891580602340770821333365013121138651066656259955468492451790446744804214907401697414072713985384883298741233891115464176798025984711474682339607320380687076047813499355082181849086810759175605441853360695328333593719830933628593977450237423332420178115456888416917707517698736784596782373833567316448124672746577416642669615055622794563727422472590435052662533115344895852624727407475600323966435997367768513916881566509777434891958118266599524226313461453186810060190378037957986818881371163986243518880378954422762636720328379449429257714540934987534923186786353171722923983397063924088197258172688979421162860720426570582162416041881422142499490036920640369314768522842681521047791308176980343947452776900375945747557505208942062640795652984622776774343650776379843396345151999482604678038071932295853601111031058097123367372588677175759985875828181970896402712862658804212875653304487309971072999218433493254397147228607996659857142333684037719906129400556663609409123561074676501484470516249642102113420719284114512534472137370120234653563099170341756476703129172271777695421178472726914994533687673239057239869241256061085286408640943420504831759578969980069678366356402228836318092446536166308037645246054121895552401826277141716443214287644262605445049864490643052399453909071984295930324686529517374396980228755753945410584084329280300766163732832384404331688288159271970593400808920413114686023475552341723098522912698543703113124258703801478275692159429320343023142442227549898874764626633747586424849586223827119522336566584099663074108079405006449499231984543800573672342655040409709590897907985646702844361310200373025489205681025897572017991759712001304887325828235952481128849424291940640616549228733216127205015529386285573032266808536606845218530586500559168093691898788158738187689576310582089349124689788171696063398075509623433722326509487885664857531693942361961965887913972029249668564855687150834303427778077378209048137265945935188883031750434483937562799125901613850535557565903234674114887285595688273675237498879847819076530410386157875065459146261818225423819512940509183879577625812240079402104115641088176273844058440771343362770771394049186617589441791105184504673973480780380321780500346697553392531125712776207693663307447379808644439708263235671144174977519056683209768902793074085937905888974866190184368288377698128552380269516981238756561981540836198666329316553769638606251637135872484247638701297709415497739521754488123672192346040659295766900824255948283952724967811434757061729600319653005038026929420281547193991201506633043154374045218335406029478145697338382856877861929881900972136453742704616662761037157758904705664515191563635790918162792844419284703505407866401144767071211220303605618008587891790655638115157620248405553639264808580090637718443457100021553424795733231457009259428454370391915505058682706086236828680665369154495072914773053981893183153796921720815807608319161733538091038750913915772170194707633137781682684861651551535626272295799583502682890129273678215643267541690793953441871259972731237216135660595100762381327946974662777141405530777659734153292154154256568910264289811933585787724072703671531000033645835277839953394448921535306728838488470302446321968595320755039925030753921156067548044183416361583129858238088942246119111651390418428721445544936902719173242289458690337825235993304966534793939781165700889779070376410921184305596482128402345791498518550711566520341392195259148325762040595252658279827884501770982004654735671385466464474777289762538868406798671827808245283340898985979267356631599870809797348658838695851191936977875848467151289420171137337436187800678345189121518051128020010286245283094466431125931804166151093163091707778763207288045828643298798446005375399514508474633631540513418964148680926199232160863462640556314697654116317218024976024937483187998070236557214401153328357612380127851919231419066210035239530727890796916101404519292631331138555208743025618916089306634371948664650772870159910847977770832978383985475796964459271565373241395950151582173138258289070871471197767264257715201179437810859147335017467536146241417113569247005452030015684278942359981611133479363008007828526165954825362302026426757359266329411360839781674373770507093405420595766678823912339217051290997730115420087096839544289168635021900048075779205350557480437087763962072458246362100206372324576976002184512317907663185696208069101075221104474347657790689822338709345267635823492418221743981333288958724311413641100131772266163800118036830277867000481577211505298718879491292026616284240052258457296690717478701879256634696530561396228256419385467773928700822944752958332756539324877938129230946863703809881597729320711310164494310158170493390916554253996635099769317583332725795061074060965433174630741210758937173171698174012800686552376894858954677569166378378713234193053944468830848729580614622735018327267938687658641905230340656087178686839308586236093315087234708915488853516595067073369038014463168221393040911727675254689795060530884195667678475760001593780668032975966844213033147562171322415397258918439039076591063256010191538697776086959478081079573780634624422618246500581489988045793782602128163642113586788847793648928011775417575311195351412249289531067491888389299994469143781094978460949378776897599959825178211734588049833028642584955650190208243474901084526960922213583507828447567839507173634982346187355331285025333128038292607932705932893734680550170820939092002211427892575779734921220156506137828398910036251331997167759935908094522707545705126734592434642400299832229961524678890110758972063225400535919359806953085957689113247350261650416442638995418211233960450841690423367831880615212513741900330754326507121212618234003848980610124545612314669987764361848206198943228804843111478217902593019343423239531987142605759923620190160377851909791579069131741553796182518208160354317483280909726458314152588104560298273561192661024494854444758168519943803124665978462003483732801447704665735738426748892548507864521840816908094675194411234766803756939961470338663428719191293032699282447928193607241552908497144191366450059891140610748959157751542252774069254214067010852016624264297306879685456732651851651593812563721899009753575356766698427373112458018405493418377875559786664694117599333976679886821885506743847781215384157933315752136004640101787391016893917396972084802137499935178487571155869140908690111076712671563650105338530603522998926829014727561007312495222992170401332367573917669058200299801455263633084257915046314521863594746486745244915300442863131100431784899445336152533991207999969340517284340877415912517607157975518645883721970128390955422026302571757059053946008352174900857786119136264323244772200776031866769477529348885235249722761616819944347738029171000713610414863302371140859862893465642601399184133469929391070333966829138960134266654863863263642327238293609926748959488909076213652885760102136260972570091763252227972259133363162332517731684044208469179510671867846661991381256368063869456368121110230161079832585625369701107936517808119781969832415996903244612725894017903442963370665020001855768169763017304329407706221064455987898127639461057224277301354304407317396034120335459928391015143805047486521355177838431328201094222404460737365212565635176359787612346499556253065291315181661813047914014006269142677454551704961160988773873755295956885735992757219723220638592775622497114330940810324563246332531541772423311895146665493968189033544554065575894480286616625949155254087657468554926252031387969629671072096095639887985934105385674339500251986724131134284608153436055934667033122131605553930968677158504671390790300236256543214697316868401854034655005449089497457368349625919649957671077421876033154616269139817049126172572139069896285446764577573486295923521121474472306280889683904770689176874727979388186456172336348916453508219438441315215217054597369387699557265512436549224935578669367654485784010300414383454280343837685486044870975958238068430565803967662216436439663241562072890013824688194360866273155181477871814167603669144635006900092558995095722273814776117316250489373334595438311085355410676443861086114466031579135098925098528728523349623104021649349830038599853906237101465629657824793681349986591379526786833257924921496394865486309910088939523873932405599454307386707905148489771804529503670995918115454821763439872822474826051573973747089719603368384606397359607878775405808515355381168051411057920587927937238975939399786804301529550343408140185732588609323770408680380207621713069436978161944850166602793469174252488209628881291759953468554800120546195523700664710139358602249589164597914391949173949545045604595875407479898408836855368955482139575047739310020664205237534457929131307613520009344592019972455277426355401964570785118377410479187835740860817093216338936799521140003275298190084513765384380030918043938041735404859543857088430950068502159542172513092615846081443314572303276810421423224480622413072023469188311695720771791959178728372651089633085821736051900842238185375568996741406736258324452908381543745324492966767096569115925302541793095846207270625190478503389560913308637231542889304284661005988541142256252590142169057350119106728090296574355217556476818212727036577954871733041069139763547907976997231223572347972755601355192158763210173003024540553301724048814037064927371091667970986378396588018594760233902405722697267903933063508434538376081540139072727354039629092566308724228336022070950921114637389771641509128569569917546331803037716589389419629108727405196355199484884667435529023672993360282828975036485623508358810608079756463987924331632760991923773017289041449038138109208580546743958976165255176315110048984182409733674078248286792230581347617141061569562581389662004383376766716491241823043530137973461726351201136431684770337508944934834798759357130618016437497983097701233573701504889333050210967560248916326651821795992183342871125553704224642026598640660234680778716402098820613240236491348219184062191114505460323089978607919381459892537951308757991752872893481163069776553329898751968021592569303859222158379304707652828032707034513016471192302000429108812319803522423875580823851189751086819323190196123267716336144272831762884906315150153556629337706480887489632685969511323940325419770138159998872576810702854175446375930797909201400554114859951065197488091025450734533528358915471988800378264739864886435807069874981225660961322953583712854825782168685987812410707930638585323902959180332584677720728377906593271476406399387212143879617157312264304499741071349066685921053689846205352406372105696718744774568866409795394123571948204630895087753512709172997001420499757992832515456664224407907049519204038788359301581905613215899336274185349733108229356556244997519148219851323944156792050667963193358339995825505620586509504929020412586628050286952490776931205156154277681726137639555640568590058370308669910780903906089524441591011914389367266717222852663190100153951180035442638208649885842556291066733621777899351166129868213030193253059924767972086834890110546885594532272935174396614443692141201513616820306368851488862410550505564580107469090137607617730373267065524210810268903568681473722677352392096770997355271716372240565565061107109540885552664186735702354006545328248573785876047023630936182801481777873204679194391899466286789471651793307677494755048838717569988666458206549483210162499739245759534683004853337117114912191899924096267720973467051003857171008778658674606988621819249064505607251241833954579617176398966464025562339578626970202545597745951539743776249626758226987552725949004202765698704809835704978077219962930616180721536062593733045113943502477674790475387892519366513931361617785846418364229238804243501567164263838996062175416384413149406780545851081852167946999954485644203221824375811125869754766650382619920018554533129671588081316366161737663835167656703370420793756863648871297244402170143624136731113260275617359527248896248556856060746251512763006715130395323004804814962046048306820988903835641053544043317432508752049523424081643953598644431465199021677859515419568708152030909265117431775780052899617742919506601589948133172417837560074668154722241142915738065202481113786645238135473149628272732354248765343267345352501590013464147931418757042486970251545964043476567726546655751161809562386905892807736149768486465876209836860544293280025262302433647683417808039907090211357483096912569261356624874405840742715800328701446576699111618592716314594542854052569550961319564618398783885988063233757868507624821869587679564713652387595724949307354982170170762639445767688496801838672004031831932003480380585359131826097905883361292792891916934646324483994727652811710217564198005285198340178123976479398123145752433003796531607345884807096739245285651257861491540225176362043789388966101028710607217427146644192617295162416370440752122700766699577298223715046482116346311821341139043598917467763858366132627912417634288865907051490684829079066647323385616919930603010502108426308992130635344294426077033523228093478437128587164962074817671486971328461004992139144086058942767453116301033343485597812253558534732327386189005820671261669302168524599735768608837130697506548183256439973304649220959447585251697897691250222225230646956410380905778689612053926209225081459902218931782619007736137942633508531627169200260510987797737620139858702740278346274105833880612081810000085338047484172259398123553212077942887737657223837061834294793246445049153400698168344212496038892720782651719139680484878388662735293666306524616898934979343697738953306056101706124542783925247820803442369017101407081449399307037546305372512609301651366018571892352690109273568770318584556745633241057319511581360397924173368211413277196538236709450297667385792934312439074049391808985160764759001980362730994602440037786074153975115555220549367575625668189479887233424601121174534967250985333095238418889542551551306075779319747698427882595845901495030503386545249105995578904671681021102882492900630041913901455453843927956784825087100954108050487839666525133998632727833967826940995879870194918683604858536834295011070517342544255931632357017796919235069519727781018640711556790637694843434136139316586580553885671871242574462190942087885472911058139575635976976808058487403431864062457282964962180427273032712525520682998006789447556679616918300463586308792405851159169996882303776380538138571491866527399198078398538373620747453022176602884663272605879152328776947409617591928859070602674516010882151320117913999774071066264592488218972132187599397681102229829887070398298510751447698765462149588010278432267185869439430994555122400667276912462133815691006020971234027048398812989606756796841364062657875466428549414428063640077424783757898569813311467016482767964075796989939891155914326107217651122171341132339272586994702788020357365817128001905678435436942024429560649209452246707361111238916546951371568131573501239035833981531751261100391966977767500746787515075806778248658478229341544477900780145431291472831473011782814303415064379171179633315572597932417503321714421949214167936005115955660168870652242266789615467460364653620248867752622996448235337304692986383230199962275436865792994265219732613883318050888885669861549563483118560634991186811051872637386241275486679560630246849901368748836451166612582542569886368940337048766191246431822445793020265797224446673194842712841219138712303228231898800631654679955862064583814359293753794386387129418757092831088723135002470815533737338084143144391125387512978448499140476861574112920556610676464565710595057283030378779152780309813749732477724702186139713472189877582215518783845136053001529264140599728114120532294809164140949672635145077461489394135413490647168875086051739087970598553121862584665688894483178816933065098834472790979890103093216163742946399641908857900531178567151426789658467228711835623942959937548734739105625147441152993399203348016536639422200360029807511089301908683500564224069041185160994771777163596611018564600920428386191253554936866031297461653589845308784204051168695979764093230685633297799714408827616715120782328329185713495186857020743744050838359609311605879984711632228181159515906144322168616943065129485051708038226056040304279497473159419262590276583716793247570104051931346255360809910372834740525005120796226404549298787922085009505299174792854367791283112870628900338203128620336765644452667483412241535280071053970221950881642472311717690574169017361013711931795719730822689603238119887471700607561096537060535715366953002668109430830012305650728123720113278641154304347865196266097212781976593998592728288872498905793194792705013195814431739018360234998197151207683508107927796430683603198990561283250131101091461616688790169900900992483478010717357083734387617132501234461092224190850552617916584292184258764549616382955989621478350298396413049296299618538005811530162892562798300479010396437712355885498343741709404890309607502378230689884395459344691198075286135678329510405685822543515308708866773348321048040595654410813443042260379310420806857264626498221076753415546543649121700148661611290737130446958072334996487966234736013642741581408385201911202011865987506955380391663791654714715643091763280761199172237594601992185003715741596640158549929120577437626956536050611574129873186310476126316028848338524368151117177971909167335281637129485323995191540274579937498529404555208210564250462699936197185375509243736904644920346502607493889091831063666396103562206608302158872272559240013940108173213591241682203789209655432822756904608205045801905780641804132699671417688037738076816402550916064070457319108370192458223915405573359088238098715653425802006418949254987339804960634351971179560300252084381920868308189484232437958890999624573747094804135252959028296464193992947535637628292733816175268746747735961515665405421266290285434912274883304155414498348816682068800109374423865378441436278282208396841597095182303985258473716713805018129037075368184030218662975529185208590971263268757050852000574663299650699732271156547389625663821638121317917397985317425057988810187533585555164234877000039481618774933140503397058548268743104372599831816631704194482830980609358244377274674601858477781285290435932314936212190499017575531094130927179080360783335660369527055718418381961868881572765203151802646061783191752933519657146410070347968164628221305488771423678491534545766688936454531294383099211746298824010535524353091397315028558392657474323002574263114015167201437205042876277911897354876229108843171155180116954322065555360926128156444062956544831474335477078349591113520257141911523988793926886929175632579118602901138269294517673696240546456059608040001193308149231911805734529739699799414362590832678193599336067377711221970610376414758344286445707653760709645525783515337733221613382103271485591932659543551615708875253861746304280623627844948533094095984570114399182481562027260292455760023563087001974664227502892470858980378203533150713538794869003431399956257238691256648271413581730291294550915867067191080955363531398530223588992253138456951523398969309109756520342086087688236654260371222673844102261654606807771433791338909468511157738657590937860491911171476458456682631234254342941120413942143837121424659838350536709140773808660752614064418575694578337922015694040345802024171560207080230882594248725040379508446864572751246313293788394928315084055507504207313859754043273707330130576103966312713657470367018349996288860236510557021472255307834429539388443723366350681948526722330540634722344446068103821237893373287163170705635629208890874853324562476424507955118293025297505659853671373933670433188841591779804990028718557870074258733552955744978958344716535484070183945771488214696122784848118320080976751894430480460492780125320048029764222720743606952400816755947711521183346353523686149365571170549281140327544312123902808961920639589281181411191854779107335095314654601538142042975867474746111879805685234595450020954409909857617595310697980469757352943524614720776186689892158466011635088968568182403671803824422631428575639488992448561663639306979673034001043320649682724926853338047992441109637266731789047510018944779049437189549596219899930817743687488756777789354864171078428500881870267593707071716867469724552035902822330543306958465910187350460009681886378729799637399549537159122374298151237878270757078671665356064148273102508234481229652184491701447203172923556780044925246820996178358837589591105856318234780651677356332865566641969291319933797758707313444748471562081428709114547853004242699729040909100685162775892445555993644504381236683851644992670671002230384171889924355245295297164980728118977804306795480986204819550264203431568066296879473842176507248849239563023412457124031977976635452013630165553941225862573542587370780355497857474987177417290832883287524446019826485857226476478628339584431438590861748541206295505337995592651774666507404629693089289217262428585918506182476122797341156251165519547751557093766273783365337336527210731663851621767241449541409309086148050425144324481734245902474563244721357176046306236591467709389038892337825764651555028955568517730565207515577845582838421037194649798493258934531571680351134907664722383235518225846202886473604748151626513857783619814473849242588282948782041442118500042016755413496772917167289584898213025258218249455887489619797975196762750858084178418381719426934536643762804532027546801793725633831131625668862858546951245165230798546115000166274283117021525546287240076215885206415838630790370834141197900601898218385866536126190379382683705470165983463054436632226806213874683961958846739400223858117703609956868776696667733343337598682219676850478100162678875693645157047972278914748579102781250560195535021428195570254140834567161557311691613822890779734345332138886795757835927063275528930775626933221357737221853876559554667727433591248510885640730660444008759687791104215614869013904685736764758248451606799776103165923352460944792338435795600995031547957714191521970554788528698335331547905304827671648512615587078749104327038804054537408854256681998650623238349917579660796780755330873076715999158782260488402233468987459577353563961617766204522449909369180881008791375696528600597201992444487569014429343850830540630415512148289665513595751170425409437992429787672546964919067609188478934815954319757215076824403738564341196490882953293113077417353665370162001703809711165533190420928344884260517436375916538982088636424117784919447588863278047124375485775536769372937226631010415323107354920131268244132381924289991641378931529300303273560047642706421093775729576062467941550352288323155617099844570307172105812433788316829497457817614669276474633333653067776347380161754335381873601189854549766249601625827927607325654238960275782824744889345297458704843370208808187988815703524170548359279060941567569881770357546181608916155327262964760958888329636005752282147505630865722462113240761991625095055666345213356132667671589640638424448859211647408955802490636584054403974264576443957232639623479717873135367588780006516733727029463165382685784303714995182729585402231032236248002712296078564920286573369996909261445408147646878773261855240577892582879879262608470975722086308969039596857083143703113450652710241754454225977802019470677779891562368301176781720983166468628902800847741351327009402143889555216940634240526332505457122371398324322442985769298649407561569103463204953456584967183063647762872416564618564839819170828854623791015219970546214618072746276315312465414971121029650060244774842806421230964363404548104130559139893453616485661187382412439232506769740180893898771402152129183296356229266579726650666231497667584111981853350504149618443776450061168787387003647571606632962416272577301561577449314906819303453011805229230903754160389881149871346362714596516348965569868782100087682468211521394973604658005376113098510626911007035938015810042698839564968120935571981116630976533457253405447740106286829549087159357580014348632267352474258280215973693915650336927769457192605356384652981571093137015670036781737407683442077704624067018178226170791954581267620896258515813579471013383905692585521231095417700079329594926522903441209103698840323960658927528500383178342416887477431972285521465809130482589968532188797052149420489620731568418603844895885977449052952152260164656420616429885365164608221662261487836657131600026442894717630478528865706217700537368033473837913099478461982988213004772144675656222278329551591426474011822635930975870290970128590842941357511379297153006927876718111803514269810258759695055349447472336203769435890530722805569674032593445740651414428596424021759223926709990895283624042656004286675977435569972805345049719204844335141491447519667826072391109742668061783822780402814363091454919581551851570384375522748687052647717405169327106749580141434258364935226192068120660411616344373773556621433063372292344787488495062335935978271534947875219080355846297164633654250586133021890535947896311183598203769324864159348140282012322894199308834114178192484068766819186902681281056777287700759480438283480703682596548725599407811970643919331986891095500150700080363796300497896158809758426693303046208684061876394744614429862612491150584683965446522128717008617165051610007870737292327969768547271434273526865819293090449088787344029956736844373097266124221056003674156919694067344091800259691454736595658232527679115932398213602244715043986994722407472397907344152120267499681913647012838879064247936608239978789034178812846081822481640236577576955445422086002610524582722578134898311639056815427851492674246151690434215786727733905125381834886143948011094870552567431295218606085165813990637787470419156136126690430127960861483842655539380988041863253145419307632689521769944454397673403386958009378001988715844591072488245066211391374969478667539634948335534349325214485142213698908767126324260303596452355371277139121161360541199991191087193046231864842760580662812729687861204323992627505580427208496811936137572369420306506022001391050120487002138848739662052881669987165056949240048147776734217266983697721857810486756067466729951921066376489475567481214219353491885076534771914582611360954053532468340885123549242846559165201857839261456407739103671217862708026465988774659178986737721834376410349080762323632327088595966537477927503895886225946880847993272891400602807535097461269220293656981408739060049888324471568894342945250829645613276529133359859165789705134017265584686916364373349169925250869621800265446139625815897759275519748325724470481168244409886768733238074281661078737814585233915091693232023342987375117426556227200729182049990165929947492545193822430736104674646405149062548667493619326502862078998905334644896602691199748695285999559952784431677322937697859795951266621618638031083029747326440652807471222694661633286333109732083531562937722714093334264897447362301661354985947210845649908765462804084522925790357404730399604319670724929905614512694195805647909901290149047164574302391566855850933213716317206883064333797258274976630793703824991162748897286638208723597443545935685351746776527539236690161920523280965095770866343639487252673798695876711808271103720577443200281479330622985799890618375612837572096601937315493119728176401429509272575960618420520376467620165379027595632445808239271287763014152875064951209115735306633611881065175674233255619448649785679322296351500717748220478358530972915281062085094302442925985772995510734736567102621954484854113907181522657402033371297934721283513700698907755128346298058007897952145852074453303085009459191944322596434563486540370028736636244131851579212554431823240163293487210055744688276300856370084068031130033232156834553431013126686720575944642804947664414065293297367889838395916502878834223726117718101134161830366542341375987411416922550026432023124676550243409892440471290780904349738069122605062766055500264231580630420113274524800402303985035476986018187757989442051952715256174673923330013476726799510008384344354878656405498079781130742455261761059644996516579173867840210116513848875394772593411586636771769232865141408669000429330922122289604277177642015819214090928276819335002030528771914859343719023849942326095756195951493143751950204596539388361818473657445807833918670452339515436519433956297218484663790536699434148605085400403842016284111602111592657456737422183136434406523899288604652072437062709960075496079602893167765204732511929367242129047799522074506795493400075290230906139756322482715396739035955261783543365288871050290886319362368027146289576350990476591104878249571231266729475576848657136863676736973457857198464301814882949963259030836037367047762318242888711064833420004158296843666631764357941831643719164966759672823000771505920262232804701210162101660957041854111451804418875079623038414809708478747119387734317195797454793558928910805680786598538761083946366345134771196355579095865042548956009526824710107165122826979656326105888451708180529201581449410755559269166037410462122933664991441008969930968484670877033940713226240714810813155568028679201383868232014911465694260388739420918591188379520030205102461736749114629594938611305298943719016501035707726650027373766050575932660258805125637678190946451523340244451605309302253390247247198232184194372396156811101854570532966037970994434565467269358072557189852081325210760820706795458019852586876451085338552422317171810460266925270441618335488607943332606878771325384694730394379664804431577126290960299181638679699052124353720696362382402397833152994891150150397009515661501119128499755455941141213013646756583556356021094891024364673119765542624867436044700478664377979536105292664781006374290241697799129185864602575393902340084731261335805674220146911919682348101499405972883088448535956455451846215762231747927404612358904272507928904836563737739325271794137848547235255229962113496238533224789601400923041272169404775100767652122359078230134050954714303599850554096820284748787321954331483136735372677329355801232288076649308057194050966359749588370286123523846601706643359364809818132747629312724267109347539780866192675207490913516310266908521973863080531658228146260810886924677758932360652256549675078151577014353851221576142141409347949933189798800622608248014055076802979439792846596949458335299135946384515991124631489480660980001516591967067265592961333617447170870178664353793023394138272499701331413669201615825585836012568373325463402115001419037380286019079189043761372686619634403669602955076339904905321236748392417517210072506073738471069485903973103068893875133793664940367198315665494386171650249456302971797453078806120412374526158376305401933779109940658946013280336248102887649593715823371787002108879122489422829687043798060722999851730261115314276996156251197740222664245427081525541597642213876608939317157228383003823358873252082437216045268389810592425270209003355586498773778395122497624123238419307300735647952496342697878557934678077922168478368120916262200815399925320099975050541132631324321150033569490901095945595919667065816216540454612932327090443659728154247030844972838118893675737658800965696533628825704490136108094317855281598639158028477986738842193919694083189507459817687592329683202625650356186350648565024939917395722539792645246930499990756342617289985601882070398385807607870741094677688640757711579893382984855365936145648517762145718834878091824652267939154005817855194401664438510904455506192962872829808585237265712059060769493733124339474832186577723253589231914487476293289574561204804844473632396824225215153657523847040151416130408450477228482536825083543464056995309548213520134673456862265266620714513988739124378825710626183202702633506784764206414312624415979454820072358741666854365166164301199078898249806675037792997840077336194576959892938166625268073577930498748268214969471671481809544115034665456377168850275636277999368741246452033614995801691547703887149094771542180812534419466416990877161937712280228056229971143363505584296188586580584598755853269538458075645109017622651992353024231904183999641211078510043603616063940858570393749719260908110844892152696892279838795642522128520670380394671227466443893840765451356757557628277582328008625651567495935216586911899817354723839840664716140234872587543939289355880045369840824021454980365586696973871183327687304581669171676739555121335733960231100314575323210843997142844640813289795480694052750219728877766035034990841184581909605435339193925433646850549470559037392324069807209525256127878119364731059446327659987974341724152067933783652443142125615286669276882859194379969183627311086714846957721209031328659315269316915185035567852353793084728128778441846501854332844507530432099972501917837558507600710466279964591414556756606752942331342110240270537281220708218228557079186938295959108291486058255329427749406870916927319050931064088756411002311075833558615100113277214010580155973014358746672819853741626607141237709590717507982090782316223146818269299019984936039084300569520186969457104419224635779588712069268451183949811717639871887822820249657129536215856739511769376085837881798927246332806496631879743202822700191724406455379498364538699694545185339079815799110720295175384207058978634985853907753713163283254096775585038266584621769344087818522037878161994746687362013507598137389374316327626080729730126946929758255584396763973098195579555319694520284499196537631377697391912684896459559277965014636650583757839186831884486867802327387589087028580618904000745721356521137292776396727016261619609775850550890826257506734959438057177171777493018603837060664826488580245218863485482667211096248789495451823581082099743302143448766090993688731298878104770425798381403165550477279619896195139719211384906636199836677892053843972955904860489947670581664242672738178590649327327769746423806847250127836334410205057327125521055813876112280050161866101315581400880855243241173110173978498532983442942679313232057889133691829176548638955661406275548934726907295565763074237071217159828501995840665681618252867470488350985772852398554165303243678012672629342973545208563343572420930729337745100526558900634840897610531869727277622598737272329058276113242153263089198113302271062192108856507397726872772888808281980980916076999520013514299855681896868713053247829214467027376064363484812190680126414735504414710970293321674176419859474757133067629895837015496470851421686325913068812121499393412708352145373522676336040908146326283962479500058055951115104197399321381853508632902601233614007756085515548933986008695316018337152170620022582563665210506407605656995837588941957163379737391131771792806363116773253867467752580857204104417853250410413377279222691641448056675437829045960964921460107198737025456694759372253444081877693193216653755785984777396074907855348124462422364235226581772265569809865577338498978214344682400888189630098313564671068516936046447977570461384063858838746053107857461430960888644701033108788262871271581692170283233677038845948822980664573648001612550917311879415809372195284009476438288395337404359402233591634874510041900720511643726495013282282826443993490314570182544529903772112174172925770215657208678754585303912387835569167273129997787539574585481405072818579769478724873637855970777416159101909421710547725579716473346628327593935876625832810111255557769018790394136039333159115292655783061787730386819167494184600156883992367574829859475719705939936792521462309737782773074865506820213757580809590954704928402906556996903084820056908392338526490493717562414162364706678728847021503240487478851031482958423398334715945880763884452306986870185691534178173245961284809817048895965393790317203136570780191131210308496499454774148345235142677569041201821037641549172152081542434709337556677415306812512184221366421513404374940920306055906441877195843826217391476018829632139272380698367548457521453800007888144480508444405481540324545365112947345622987570620572532575762009119449049292873030886147407443095703392190367177473693504453392804179093760073794525742030736203975885718532714538524047197731842946178003537058474734812985687981943988521286236411727980412313830282230546137620374589437329088938693268383685368277979162050896996230438135630299940515439723248972383783108759689827492389562806932012937277684782955827706199099623364071807332053479939054980452499259381623628771476939650615055644401358150966939859312358483078499594456523403138636645881840003976299965700548396484873067484111996986505469571504294145399653918588371264993638118240956910843535349127812209389160410316129461930309787190913476549047905333296997666714574470498892793666586980991397352336993215016062431369228864785018316549168925207003468408735714671787857586961882733393102132534403345577943075985462042320003510659236551431880895773417928042800433753530610094734584334299618438871052466918612770398682570996709152654258518659098002591547844493032422447733049055864567699440377156191706095548622322426603762063711980645205215067469872504411178803259578051829414869587029202251751830338372196459131856397247907556819197011077412707509903356389873258173346290470567109058353055062603372842448187360116603442522952583153577237631815671784070978965908031907259184071198111397663384204566054313019504615743327831455685520163706989026320558877211584211382462656698563478292300196690191010470380328265781068929017832574855043216907106823573021576014138949686896845788262718502952099646951341677464636856398511520821597041147219651019483935255964309659937238630081370053324181393947063723964005432611637540269290324220662423331342175062498776371645977957631978592957163208674636843578463055855893981484520262585080546899643118894545229461955640939075775937764556496424430369181006739015121344052062532699291142585454628431009304897415619751372491500692343624233496824715749454104378802541039786058320126708304926914928540189024526657301176583175264994195644128841621099157212490131673233166769067050123715264659967947466833593382514584768619329711007389979789417771369605317157945034976020198733838928573537815755638593424148642077531171400589554002065657006052227726348817991934918858135252712922544246895188384817036791174899107012771707390516749925291450397882298184625491754664378162132663611723434887388554102364426777506178528742519306622139327103351097328040676818415849905069074391153536090295578543008886745864746519068282105075179342927184591361786378056705549438413083649624577204701834982095333383188830199195943186323954156129056090928047478288299974103286765049264759410600307711049536921526563055224506318709866433314084046791264535439790582487791532607800264493662603617986559064468543160465092532413959042723002738636369470706302009097476906209837749786009160117373869110826570942796862512194060317098635036290349325246651809294708328962702730105400220479978077370748502453010981073676553547228617292316410995047522766854716324480159796349906779167547516230595951180931262974268975342847313068873261777319222280770956736936280515636954828532898532473645976951559311536155652900033904997721949933492959565792767229010115822679792692184359664791543788692837293534368472350132408245119182741563175016278733790573610463353605902453171060408494085650640337775120934510763082892095526710044547310102398560882106982785439684259600757269395807987600040516016689252640628585453126631506982689677471751635351575285505982620939814534781148201263913075446340235025801376868461324276077216931987359468718518628583592308201907155189806071031521281170167877076963219445396278740421352118099710722459747999249961111919506707587765363450764005502003221390683402628272960254050767934225904650392898113785235794562429739188169592703425896318010027090771824084243462783398998186373567388361618931304489694628340989364258433854018839089897592095488239980453654216084072916698430219353064399525296102407545739185200220590399384270831349993693300766249190070575029476714292930550627920771531629416562059392599779053069097000168004322966293971203250754050435694997032195721652720293229999330768354274775814679854734024739697518401148957205858098829504981574233516384534995458891616022417338055283918295654813333017482618382793844544775627825328752196740326950504863730160964387925872710000039556646443327702940218642130741209627829456003836215798622971803694846746443059846253529532265949557272824814123784280144056455320771032789624614082324324461007509578847555430042035103139744539294018705036623705106815895169601437905821821953786371259545793759852489145775615448880982639533409329669718596137261751576311513158317035747147932352785875806458742335865043631106786132985531238950793837233113416187076385902807332581955991243804323730397553302456331594985279449945143101045340251997314149758121900776410408256568713938380053120357829135376211160055222188572641785393136031667663785012314354122057349936024840053835969434533257835310671423271389137437626116693929589658000713589602503226427364672456161614434401682731999459607842232067129926537868080752175103478357295191304525199289659182064015804837159097127241378968153557187168614846519628460938722823863128634661649730291537627705773960139246476785331325018659629176260863716430765273041685780285494991485370032266355581991862329499474351767119764176772828196205355288465813505772246739179860399559555283198906673659366497967973925055084269157780877957153809728879021775660924566477695355346474689215219895033767995165446250877356475509354468900760539479571730326708678977123013894118299408494460790483521042938818714403295867210260470034121955399494653455283204928951542766026908042586986161030238468252807493859234830194121793925003458011749643004089036201499611400435081821190687506981403301928010575693901559538050636586961895306396513455540794536183807729980751526086679378822338532854684502405550353417158658089853558466114858467897750453250358009751478227004758211997189539613032863357716417993219476618131886202408489061976660491992906620165436112101459453261842678293528130231240493989793332540249267069990335290297029258376895729288414046602897975466485777384446036584116663998755542656916515628694407412064858214266486966351903098043711146379369105785632718998836154357726378624896955035778620198655982335978271359441408679398492488787712513765461982511379278231057698329059345971295979700012662195460367158996608702476153679589051466925898912687518319244616192335410971977010454822615584928225766203693714812429910405968448626808308339834359934636389713584301069931515698659690200838188003728445566882190427328460432890791609679619745388688213768251623463131207396692412984172228070221894299270986909132197096179535811213716525291652993507797935798912177584119742595339708766410753398002320974913402596659207220897359876675252503895956933401698229404383159733828039348640130043144940823659821814232946459077015801231888412486121939164180379173900487151861246330415053825043789571244591866805361268740735506453531355542283360939468586613226863269563879949555478176691788368501118857949140030166567580566256842403047752490798767892031874025504097517089420103872110663215036266025558585047800825320810232255852145152435124648505298985233306269777883671258693279534406998716482737258434972047083998636400608118046005864024018420622712136408976619930868067393391130094238324169591450598903424030480766992937631456320134477262394397017552535460730769735790297607866348551961784507025634555864074625769745019458094084637059000156719688945075230775551750045876616927599971121206895784652614439132463212448758088095977483054443947598472174989006970971830791577237364145999544901155179341058919162193206823404930136110549310407317766710241100096180642545277243112493264057849999702760232758179442123238307436545051298475072519398618216313962902671540011530228742439406987227017393896296782435882746945935912497540101604768973701192828762743268862189055774937060917814364348578247156962784497936186947007070069821941052240135359302737636720272356616484012871582246359323135120163983331951956023099180680228495768528010371012330815900057476872686850845289264005216309722110702705789848653146749530065673056468612440957061805618381649339643682529476347488126894116443720934264853759434031185444032352487337855481178504054264025141058424857918428434970300318633752546925713551712727156527492664909620426767063932122272734513105798790267324711480641531975145497334740880473592322610017886430989862274541630451852512867393226436508952699194686707559626148561702734299991658505807981700761561963919748823650274490366426062320774527381165069737289664876680344078497150283959086961340975180968782281067097681170092188234537322756632370613566522773735223462263555101591411244863375500562832938860143228281964310565146922676814554843727458966474769391293345395771221656932378388161288406912490695231945734258530496039701996102329424142713129690897193550929341302331116040676467650941417096095235678755010250273503442960037042475326884439203993865749353681664815204810592057792805593013096860527985128732371390800766289900241163506480516075509189134185488034988600127211208428815021417664766254575097097927117022973884828255977078220384512204651798723986193447656924532357074715149418357033064600658741051293372813409143635405331249992305744887938559392389260617703570751682022874180759752576912203472971643228060307141666299170421132738507151352646863622299734545686621071619425426285943103411986686787579091534893538348731462194008621619766874062778551840471795886226801006719133255763835618361885138643719172615638063747030660351380416987888369451615052936345510810551357585515635328741061190208063522532971312467343341530402510800897663716335606668446822060950829390215015706018890200194114071922338564403457565385832381463353291858117508569500593102754763331030005292279691901449245440853817938662481342479993791098354223798780291340315943598620859961093276435014017661080523477165443297578390802534351663843883296046669410899942859124573196512056900331655485265358284920390867189039230094388681330293722340744009203166495988022601265086198518018276809572696581354474528547797225072742610272111148354888438300689645715386711007012237460369991963794373502991916234219833801680673242598585442550350736371018197898853226930906322736655762932779901176700885290763226479238568723421078328568475056462039778402769243527116008061792338562450415634703630673734419889228332063301003065124895433309379583773177838888536648943575247275492875120036244309203882116593072196338641929930315349610054086027294597327753501121177875305046423866229389114340547568959428615862596317149362220390263307858938948083017431627985493399653382408537517325279518881776794347270838977324338681395511214960811003217570989796612153747122656955261791395251152353708482030258443219356015505043771246471535300036226560704744081381202472463222764691717637505561578299892356864825418740675618964912974516677744458784865393479259260523878922117962182715899128477515003645701332251511294382999277498346229492196836070593837060990077985717380378389807760356895503332900967930467196999893116653408459532977292506759347059034103262127649318487769755944885033998929725854183717849822020522962776154886478448899992869498203058044372681339674037027807838368473419647337107590789059459087408936255445016105559236390005300681146859127953225915584642910225579626956226134118585407384867727043069707519393902328860182946682434575174484653183785621073975122585640087127418846911730287698043428880323232335539768833468331624449112985225203684076776893614091489905489238323912467001182940219645447269321289613402984883652911609670608064187911580974300557325431993840181181505779958693952321997629390444634717701616550541063721668565508175097708402552030950820501020081509937155706114122250133955928340646873070894475914356164268267027201599937181425279107278005294360806904548832938590271215540619667747023402654637658980097137098393347736011236640297733848274903571216918770996987531532030361498937099482272033716175076677921305800860493364284656953239333754173326108974198516392263172566810947597509820857599801206131908968285555058015651388363215904811173533740093400743800183929596044538634098388831433438171340750742640778112021270706241593246455836685468450342182590580919396485380698869608069233050637254793227120719731332465998891304460466944267071863747760155383693425456705638367918850525806715378290370488691368343892517185329379178221302506477201643257420065369703863914745620711835540618650365882951984259201034145670867713484709240936029755218236634068305044743375073150710821126489063473889140258291532559381398154301297814993676509457851348974921181737269666185291729955550088501933569414650658550784524993320104109921284257761387100392250267039008553497294995813227265413864872168552009890572685362283455796518500548995896490458157182018507614790851366772521488910802368472576578339895159202380640170887389936859052640655887573062826362198975025273230268401826881147762097274781068427474037881474728103922877133372713556660844785538248484431748723841386286818201292410653366223386467717340515458963150875340193982918871139744650927457880975940258495617689882719151687882872184808051100227496665433186889356322772063867383736620798223830324362220358886554488600002193396536749924594648207896910468798496828712579243033856714185468941465985895538960636526744371389683129004433044757245211701953426445260416779154125044573428665588104597030216637742989909783974083532940064965051230956790318796465126107608784937772428354296825293052443749316735428803492454629882769271530304864422114656935456263669988548120686797001492260223441385605219650947829734109508346305318095373291371911340087568387517208838420628682659091730666584195372038172447865906394016516139572168153526008388274110653094742811132738157790859966458194291262327857500120192731407864975868740004855898750311239755876994477541200648904077793301374378691669183185872081390695732778071475359356098007417164001569383616087947911216244443053250664946231948718072539123933223840261682226489517696430738714416606924526478390347721317540980393427361443086705763438065081352294820241132905803551492248939055889625971929488689829690215114844445429031899443229399087367837102887743398455886244903774337171979937480806081748271073952779667930726727544127976254367605664578415921807492452323318824703675817363844613854831987379573991618370914662619015891735733858462841594136091932686319354628442616491573018313158175657201377199641861227578984771646244523481263342446367597192086636417342705543171397049813288400527021808960423944185155755526534234065109389938217165410072726087621874002863688949827001418418814166927565582880054745246681333248592681023635447222432984990553480311436015173774405014405966964312773558132558218850842087670852401614610207971840693767568536973737095970770482162423501067649140171224654489914844090410784530464410307626164153851973865995387778218986378938397332642919233490406882999554085381085270210097559215620698961894616936893625963224966031283703332921710297950979022906125448918422046546917849971781963735758575009832747669995383494078383854925659056357541293181521901855808277891994913564488785843228883312374169240275678440357601363261094552386323672655301172774572331301214584511605415663657477591602910224851302039189847756090422686172214227058035954055341177090510652754352719849024710042469947539267463124593374523469681466195060603301020120686778854979942703186262563504376467695696581478629592520520366359971791286581072377849488744138842413301618729214711613857353629526302764796402095381792235882758513419434148710177026933469982822381542601866980959923578605546315510928736027855404840067434190566187650316165508807500947065124439079653307812827327261756687516860081124263722074633201399227733214002351701784304997323931449842872348994914078208867943947987346990511684177312468166656963239985511358470798000535823227995005527373632762290628687174581014029170902872573523958748125719626838221288370640645319149333702824308835086406361113525009644652654886776033182135654144351506519408059063384548488114657956762945611267218280547191872623576250721076667070414411195241520955227671601686913326629650161769902499204743963683484689663503280964527390469475982165400241296287641525827842496174937068343372667778118395708613459229244623727885449017437621129132059901344228485881544768860297199206345565391108126724420505394288490250017368583887025186278128521844956566828009561151310269133401849821033148786827381728850579723357202304851849018953306904084885514703276927460135978049042582737509702059372117829878013413127765195864646134865138915873914542093799515475051985698609165223058839115782819194094732893697194031881315679892676856452011283849251171402517873391033568686984266035333899532473700379601290785933388282118313762821432792903517949646997384894516102556795089452280548517878685055918617601351388434411369656237362804351728813475463713986238713236252972336481456395936728253637079239808617144228713015395020512986612150565550859582965395821498923692946903301552341708582661607961553045224411019085547082517046337696946374629354253087883435609316409434915871496698127445957964118245458921483627757565691287108640621334421736692320446552965275458925485773298146078339626372553405604684945496497317837672593441339470761932263111890256862030915852348504766698295113856269896214054794093429081096250787957453993130944945299424253001043872865842341227396507397772080525853121241832495726474756696933619116176412181427406826548806051358297370601797835712302844182451984159555362479979412809760236296297594979769131210450409478620809957579625161969910515904717176623472602862662835590345364671400512206210886947022200857788246194055806386887446743304867487249356122366938664353761255378274163381217978467662782405590162361688023650662246139608902051254507577892368662311776237263012684123820507334027846813414326001954140557410256887048740025501253262049145331400015434485628957856803465403318222136681097730695597905517880713497499589963903377009120692344943137386887297651509508085090519754020190444787590670467372073379389519539224363653025583825670862238857226249782187213480022081137796634488817175450340239023414002816955269524795098896998262588006324963092307399671192541028772471124887000006587752071390826195463832324842716911071223294202229921648127826977713572009591980990331696654542390785762972289877116261331272395239649579567932388304948770927629292748315972681123966089123319086248061844792689682453015510369158916760132097416657589024260024139996344960983908354464656328065402103170989129671056300086988595816727246607658707004709222067650658126050723508869219529115031100796373636839300964998277855879444297854931263651871394104183067402254917971446227942764832266246518010296611052257785090723930488909022792365137884242525959907140556684058280896054900227815033774619447682175879777574676724578352333849653298594896498402413197794879718855941369429383408810552672934166711384999697995899167129526662031269122217553868128377541440599140678229263566738056755943216530739423018817736152893910491612091874805309497318360001884832223366336789717027132630153153091666307999007119806130138425708593001182680304200667911215323428363011566464438394472349571104213224291196905746785120522112799708941196989965632645830878535409312864659402619721772769567023218146031156410129804599913161166610805983894679674769648844080834540680680851265858223118540869670131325681241606831358963024362515767874972617362294292751946591644704351545103129848378916089369378514431781626835885527803091209693615126531619403231058290851341298535930012617513930622576144079638471268856453881109134729455085586476491092495851130346401108874137496992881566538952923844783541582725943925707737890757809888462839178755674542950544899441305432975349028977943523139783352066461969048321210886502906593499837562262070109985465933987151092636906612898736426118583620137116774543620147902386380238624766997594557327891071302441301327732009908396800620378676012696483203157938601232766659483790391940778052902881583498705277594568918593264716852900964527938928051545181705917688901881221745274151253103309260423422731650719444721170314879508050721337809185758127948020134014149136463129715321101937153024460884923654902190493231328569329060066715247836936118804101368159065845170817429963321058735574992278938981254767082499904224106168351441001333516842863657498185161926009053234474199145175302239041621776081895526429242008112926464479938867322798476209818628577824109789776997335985148614186732344083028571305959809532707197691502180745370763572734562557624855281114160680462133202581992376015946677772428330040043041627818436119840772643305762482570841919380364904102057072874152810967495575407899927277873080162407796474197313100703385561961726005613757331313380668088645968161698775641654547218447423537833517427753375907482909472469009557002582258054051678519659544756128532110231531159636970840588025224844064533718931324908884919658977974722440620499142232046520144383290096417947355863142013046912587988198615202503797321889770329894842519601728270435867791367322208665247222698571181239584688823090652687696033650810990849214243615277716659221583167300707033795328945420135544481120919031332291982671545630702869155128004203600733592251318508086142464570812335356547910786670754999679777426984865726932147689517993982462800448649251034830098733623714885347009882875429598939361753958406641575688030995428893567449098064662938058447886338982417397703218314945817523809912392640795579704397331735047365811460278579976531341832138600337980833980647922042163032367498182962751743551101062204399630903162169048218634803416219930994333267331268330422511673863355795406340568010589856349232675440013432887129151252407055215859570172412311859150030358723412805269080475635364780144887442621555844757816908123552600796142688874949264323801408960829551753702357675435628143452037526168769240065319219943345983323620881032637469725172667476086137402038123010290205530387524671769409286123380007173009384735977878774533056540163404463194131757510515825172757364065860524843956935073672408989119596377483604631969034530022386314029603223772909914665775996363223653483263710183373991900422247614007577066620378172713527268480542453580446667540936672886950873333212483971373114511943663178757120012612577549897800730632808738137082128958359622927735440908494145379541118818149247503766804454528154132028050814008345655512982501873727101171751850064219575644234181277135479685901959500188399696996484344159881641355547910412492092796445468647677101690265017646253671325505502056320730115582773260280858888346673184002416233188962535474799855869536008259361676784458791374452223199176430968352654860870923249039049439016048601835672503009267829092822021198827424291924330169915131196243059304840489671112394105505927338972664429218648358688693396440849114727515139151769252063298109461896998914906893050496067316344282109779739763820231642785775642662073530232015238824818280688164405854325081590008377810013597563178087945431535496995248786313648481746037518784086176651386929653205195020149951248407302289543009578587821620252746958036649651363887355195718555115146517944827345667646479880315603230970814923121565745835131673460890279572585836847237805072055047048716324825551071879353794487863581129251399673448520419847372454638479239142258083382873364467610135926443528345960440715883313218375525033538187283982289342283144295641223004104434400785570570562757988657983894703955617812919694689284147106310862363431428823350663314735032462043541779293358106685436992257403415272526133415233739527500990374753467743353439165350470470036206977462640266941431717787042501228564265960294166683299698543320363547877579224476958218272740710631245519196408334273244213765963335961269785967283896087109017172927529169539491155246787369702158426748136881458584272663877465636440314145949708029080590672534192485546731871075068143965127409406797171019591176595791691555685110650424752448144899696897962759790526022278740691025804678192421872644262684271128539626692778147904839864496479496072295602368987965420265983899429825739327331297579568268504566592736230117030256723647679256419929797425978095831060628769922954507146167770314846372806734361848058246339382548536703133285859958039824463491745666846998086165314512221174659707575374738784596650488712303490615386681447259409977960482680758842257068882374201782215911168063298694866670764208021916769743717340462170295694304601977190990230403024841170469887487339450573910750877833797449346046666427487658369940783704832345978292635918148242638945500708831104767724928918003196068181226200010018703742589890254384753544606745025195712007823014365203069713713778394885812617192040812898752395329368131790122486244616030198544960734238380366308700859193866762802411847505836968262546996881041653759520108850884626360169951012003148869340217567135932932125598149902675106154115992524387485802290807822898277160754843331558614146780567056952820950071273840289297133051677449788323118219629677527830075012638518261040187812792302567838007368990291077220835574175990227767637179544456683186054473815252962682682481446060681839178026381951159029201080356128780705636166377044784799515718844117323301123077990393396348000088723170548232447065254250563569025529935641189020186636976178763421197000471545346864099903348421682438228087310967233142882057454653700079878718795339720599139691359312866184534109619143314607251032787393653434972285270289491699729512662315342327546350314199710819190716941952747970681755425618642537305347612178779015134692258850809289660302699078421355055650262000857519701127496576951445029356086576987734506256606000850216571038075224930310926178682505237312086822938807766300959884435631908701486805849598838204905844446058879612267916497134660948540524658398080534304980697409488217773363624682586155897210474123424069104006133150507076266426430237180033152873858545311526048293180222383364272098866531842327220493359520963830199243998365984297036219106690338995122589162988677371712584255200756097088658852856319202885504493867638508182835792188986861531503439113994994641079902236597185282563198266758140918192703673625927361671243327619865510322465060103413633654864955627740986475511039916765352967368675126869627513232138180912778355863151529612033848104988222740669366129857125679534388342810428279506282927921019805975604935817404202757772142115251122347462089307452415506167220677901480662091860534457352471174849577621781946727120103790770922151891158141346086514343612441900295057899961319581053961297925119865475963170764926839080076324880398155005519437673669756068175828587213363590802532048718703273431201822347928233040131573856777691312609459790621381094703666238692042557558101873776815286152565062337440100549643362333080245365376551492683612179466236769653993679005469701043850554337354858062573206869705406208553703889479522598899287457569568182707497612132218892765430754192459018063966479046123924253270992143162089497236160680771960720846317281059812848286683167952272914658362527344219685933467052376346843972379197369954272391742620073536863715751687114998541911835336227022036490106334142523054052347352544746322689177959867281508623463416739765911344949586299292721314473458605418339653279043570592859513123829986616692824635539491865205705111872785393369630754715823748655106015980693774156554212301731336937918123739637458383624712632742754720757457062416292871453549250043118744310012296656478534358183653496117713996494644860418479545269121272878452968096092578550048210144700154288026954765578849558807796935353905112195660933480703189377185824154338748236446445982791577497388892441102264577329933536165324091386418010590790663189598183884854020761973115850622829817427652449844684701053854156825699648640843794361329250435606548585437982949167503624801157568139295970862805094596814916493743397883752731200881583035396092327096663364709341919601184025520901534206458083010348081797724067645582772574827785344680073054134548553462421072193281833614807296209886337705183861035317642127179499636668251561795217906510507536734964217029601201952332018724744379638894840220543691487817933108361122788809294821675183839274680561701473958233994343142882460832014768504546368364916365641631234928850629359708265700654914415204518092865345497864295076716650941501827623330056382801172891248702482578339822234170087509220422913627400467577309844799595381227510858547414052381145808140109063150957602580910591411653832728409347068790217526669736706222907754318742570633791492526624104100626461221408897980087328210411869268170722357009364857127594836341747945382196029625657693366206877050886394463036182162774385684839379795206448271857125652769263537497818561825978451662675902048545818542287031225328043870481005030869009291920044117785796320007373033960513084555528214510087102289883060124341981946274630738698170114093291452579323785351524880767468064067620757778296800709085884086697907418111184717253578006560653417224121365284648559082294877355331756547056163188372644046722062753008966765963296921018009774203212380785734884893887682872771683007064600401833234382040888096829119402390656043435643068295406969788229196889587383867965211258753527409976927220176906513889137136325690037102030708029431033346281444375397137687977416162283729464514927396925426381953570683771508051658729489678554807175991604649973280467249845116546606546639405471881049018594706681780404424412764375831990855220924727019465673248333625287516520241624029312344173085323258156998042097617623947109865755215799762804734089776017402812666898836996309235602022483077520913229084386377592485481757340367085709394920614820943834922809264749842083450413223940138513756514761967104192504128050918925245728730184944300773078310749972108777437020590978222055858587227236443721178034941168598899022345577869673890803057645070698475181536699208022043444823077641853906276482269703666537126688845501254884670415820996349828269499142053879523180120409829466739898981888323483322115337961470428252417345519949629352361467908097296392825518642409751100120574394864093838872626606672047674302886852024533369108022972333795367032485154006288158668211842112815166631276359913709324083084958885698916824582772431456962172671048514891584157908402703058941657704543941921612854314661050130925084371795733489298325279798323377676684581220591961290163165581508930845279943283993681658930812562943104858498536275847778311033549013855801557627312450516637919548270078630376843668268153355682505848538515644276219588640408600084220332920021970831869055890739127861631411766763955943144467717224370578989380007850536867624298521545547680029067790531282103670630975893579808981750412760059912017157404617204036732488917293181092409244163785199203270544053614548423789653859034908381850098222796716634780871537709976123342070220910471597911577498623029516990402075959419931844387654395465378919659338913940210462733020247956368922294854336505572844474196026451257805314820099138123008911533485526542072395445455739182711428393842146571547183632119803523000787181130702888900885366425179436621250928760985088549264957683206673059534468228976975947093237906273922322822926706069502626386550391612616545998736481437336480137750133189074398690585277306857038992683235101784645633306209996521488796740189791477794337114341080534376963701024058071180621529314849731241309423148891209461503941741858332069162735690682772067051227800779692515028813189091346186334077307069763648657042354488433324805346043120923128701097571801315767956347670270765076024195791967108143486794048921245731690520172488507076882895756783775977454565724277094433926756269860005380374438544606600478948170432895283904325692684305851174861332944464313593851478941626574523680430434714248638645073208808132687528778781919515294615149052804293038963495139248598846632540089765462803407042632109833084760067380531008896639463314021226903280322602494187234440081605275174470040368926573585103621651988364210529897836362186250142096635702568536335932231195609395190688345446259447048500296826067181577344043802489236323501793176522278674261682552658841703563845806871086947093387580910237697883622986014308700503854611732223731933079043736069839566384559065553654886361882323305633963705610028981407477043324864023403227991703733053546079664180844070524463314236677637475133965868391171580943249180975615770914972979021745751061747943123276494912078972666598981038671404667694972391126683168532721831948220738977603845457855546304122025404544783223588483663686287116027166367952353670298820407856160989371874269739487173353258052300013220629174761214637760086196069157004942000518352071905911794623550602658102349375183090577573752833913244091113187503840398485420021399728590283398712916244504037291351770290435716894592080693854121471753065103293547442485420176618506761049841364700492012377473407896858143810939696860305306436657878262667096210325333764281314073582231603208036425217143734676260559212478901349419116933293194102373519972495823038936642779889154254182336566515977680661274296439891004422688751412980332192830840864574609545830220522855199059878337324229277378176200430844535957574726298079874352253488947776858784324403402769297669814260980444599054148570270900068399970295127978549713363440021938430367198762158733011158764380478953365094203040004428114532231043368999219223212678285074251204076877528743314865307383016776977525081598267024493772154340104514668104993115590377374487021067044879600126660129872639440885066817542027120081364677703898962431946244136504595804573914038447174345488295820266720458486352834455533398818309389725479959859887918384462048640415031406679559339585952881542355589264601686173310115494120568290943580704048849195489071959522022665154067173033470529263428565671103525877894725183815824180807355800770677533961560910070051436106640489571111417042418711751770211715251121578011646430484724487502231052391227794113091572331114269659761425911211933195346939096962743413740105733514827354572235125974569594357560790587925513855535727035225550279059096001624837245366469514911871369270519763803286669825519899323749227795607431779945857412373320588754122505293132930877667737380588957346550485040677210465758231018736232313114977783134847749424078646385737256287676922750413083483634786597007098274539584497083365450433622760258782833738895391554894679393698547974531725869646937898325072785217706749701803469979262060973494204995178557841367185596934679486069429861763740187427164842014804691842440836362861801445700947957188908992974440085589808530245381009529831768048704523303449194921336873087718467037201374910665282549651351620567817808005186581368326437141323133314763345604878277783229536859565031739253824972777088034266171890938148069048704833268145201836049285322211816053309766324720942552554656489041782069355948474421298508563210316005032488283262647477433821807746365172433506294122539661282243009509069532834950006858681741506790838957057216128676927774441630293760318287098491335759094606389838617233278277655944328954455926414199286257215617585797564164185587105136897754844347142400052647549809705532901825960784574419801222480151549486140827752084895655854659994618729352719116749417081681777695755245395978852437552751380262728213192256164854756686815352256805809640973821467582449782606726612219620312554642701291591458990402230210771444085635480729493257881649852953461876681352377801821190985360021833849849213675013046561346292391863578819824787208347308255158805094045357811763839424850918986642506258954481074204280148899856234844428347090618001022011853243488146393655532775094818521415925395760402086759855018249174815262506743220759473219251823578608468325958141176519159433725076517508527529604011626716146943853722371619911656170719045111427238006090248467542053215073613669570658335172571376092893986898384245239413175974196348328881623712272038659384636647125747030893272684028878542064570254180340699345613623505649470620977749766615057071709856062917061174705244122439869241174430911251932978390847074111103784460032488248239300620830396984057564212247339186978052872019553919821779188908064008517534595880001448689468026800492252400728290593553667437391887326712948025252284167315727642277653520949525630455757637493858767834250720513493707352974075360970766559324971889679163117173313200344987494646025745857039598916470215795846351254980438204805429363036131535515789043062330744405660458501582492089982946137539128588495118411352336357033389692036987457008907353265274651559092258434905318086706498677807387904439494420874071769479680874714657381985244597043894694273515519186179058488952402138665147023200794943287834146603060570971786945052439407410863592816911984267019246125046781875343917113904523677996582699274737378478289414094489536212569857186546199301691137710013859498597173950295408817078599498455287081875636105585765215707282301674870898405161785150158746100234464542543145809644127024789439790794968042925086532079639795478719851529109908928797023565506021442398007732572516297334916937385155113482823921466322620312653429328483897298578994214654346482543753165374923842270481342924461568241969902605528040389046821872316847459175733679414926263971128198941446107195005206934736713208667321147161823213346635383862677886119087695658250934264863974971040365393274261011296676725004702918697031674531709964411220257270029236026668863652957274496139040760087615201279956582966234653806214036597523620702735205796710530981311895297188923378838708584913224702778936902115544752104291156923390827199310990195280608744146182174093204661466099122287269804371893545405138290010465429072510329184933391024346654198567476208667910577533235682947581508932544291681353880634218519335288875759502490034253025532307253618620935590577692006753900073184767401839144629376869214620324994540123705859614689970851047987898575590872289704257614317398922678301521438421690575739631190614589318116096062694188402110532478024406673010527425070888009721515871671385487949796808604120951532942926373888118353272538369639107033642001386562333530364830864803856099407883869695686302492578706817196400876422899833276855240911494979875850042423195243276565293074982160182581950592287037468839860708529419305357942385411949667339028146118095973570774833262429375128522649279861326345320909898841335862406528021657283779555646572325253656152421442253598652982453546558308563240385753858960856005995148667794086707887002403536256532245001829970769826959333865436809875104004647585551859694205031526711128238292978201790603375736693354186502165375135563951418104267754003726819173948421251630604908323067514516015228112967730353063447632231516701215382962699247527836037783739006635853680047644077143157107503049177529915877988431746196927281398494493719697857535281802168430284398071888306488202160642342107363676582357896872000924069103077403859468367553601506881645971799010236929905971021210396420069931892395359904871458769582421634258997687411836153500016022158177297814112576992375772455118265160324557380502665717305799026609169093454872741316853682739993783203375035679422101076202938295323918802031211142323094151538282221644344163413269515406788690970221617992146560742843175838069449647868184640582345130361413440556199210516039560441376363016614681681082552650570788223434350218694165569884001460134646808881951093912024023182683199173072001299076424179308596838877082331954992427007741099788341921274660902854774206390346365974101184437000896443862663291785365539149977205160090068158142090622682411301533475461354178827062331173231921671925995658272148394160379284433454402745868329490587528491175707069895987636093545912563016008176188959498307838489514682515962505008287046834339555225118948136746548090854832022707082088365122346189366393252701085697459293497385102986528814155164223938236670430087734511508722384162442922507334518235546445009207435276553099397228026552782053608864571131244456568521096558341968034167343648330551034575005345689595579048368188542377969572276367080144370771348134731157718355151308260160823846317351063150628674077446175389357535318820954352174898812702691428911189438434322216269224444672057134724676966054036126421698493050637630022233035491659411323874032628253214296212013057956794730898629265939979821330619908064115176077405545273753887100365639078613198259595422951973669985661385883074523164002511188810490941844307967988456409727567229438405357991501385413616400957167590085371424766612774095528652607961226616463735878864782891109140370095007830506572694326017298986329360837347128125815887312449157867424634822677966263431932333704860885048102093659342269072481579155509855366092867642542054623255625606194144598392056247255214424016612426188338133466451724643291703249397481346319185797150025386371462240489941451781120686332390418714174900587822436586936085146911307233394747767303800841220873551693249657098034065760003972111064933074495805638291694456843974932493069183614721145776647179511986825024567133985922691091438470895165899759982949314430138476079842919506936696160295821214816873501606998374268474426007737583848931570595386611928634001551135830428452052834495482323418441378408414162864654432513359574805370612761475967007121680120596981298722574582375759726512761926162983608961301583925786722768579304367946061123330320843604793634767164991950227933389895925385474676881912458845243766451417193994453197776969282811551072750907008821879430431728985923725196728425350074212731151047091721396303016673265382031003947985255767869184067023896261948721166229581633955167855886660268967742982392250334357222035951533461637998101123398620543138189973434347995013142772984577322265460858832527154014286075507718328860503086802355676426941479634538831102545837058464646097164107689168631906874342110904362385172327982495356089976510094646712037091307421405208977505204081106271946437799678755241029970266802247351894511508083727212112354988125467339294400588830438956639318559893488653965305317734558067094789798280266316735591837998064360298479412414619300543578036381249237753849568696948342310503275940378090704185878234811659665753547897841113722891143516189911309962225903307936324808872636442418800106233994849318666199841427216090216848487267744184289293827433467313378176277278702852928080224126300332324796860694580046244029645838330796462240674414683050653990749594196483359671862565739329419691268036633957782925478119141348219850340767546640525510388990918971113059160200886583114118356617522780327781928242316140863009225478590832281025089379927948718671083279442005239482906294266918271909495393399823392171038720901666290091994090291359259368803515437514273097598788884352021496429534971386084778086884920855943664510986744179501681831753461690403848468690667003542511911467942532125928130694785638388221121201526920442532928824439309126239352056003771676172353154070516581477822433152002553329698964456101792451724381220908369925976103267137932343686046823856458369116289556375853602025032367715631082706515795361628097677114072378142193854297365853319885975209413142129890949677655580560645606850967879268514000340222507445111257512372723246574954562504929508699880361241005002902646877053279226031163763904609213233938098490058144298545732202540417324154577095232052627036276515493561212205783587163307459873672938928691654850490103467726916639095826992482747717814178914606405120023341098752139087134187196384038877975536186339117340204911687105700802992468893454339892469943340916923570260752115390940249182113169041444837197909891173317645707796173770600717096515948761874820088663883103604380456434778057098396893618754577078558417853354059940197233127641532242059568982617940342834379518271952279468029076524169898177667476097331589375764376611842798584393238048806636218420361184723569342274936977970656631803353208400909549702045207332588384590324652414693432380257579832863698396123224658288331309023935622714794227218894715508558168536292426793769770040935249321905287754225744994410163209949125070423695706505375725203898703018265716871610771498327243519132330457910143695869154656459688447284503419038220978687355211382056235791809298727702824409952675399091453029664010158731834479750694783800731731623974142903361078604835424373932723171026087964935368196986359941916176525879236805635909359248802802167466893610941330409691278309511962215881865064366347020048506555741582988206192219982801894893653871202585882807210363920573388018621240378656042225192148003283634082720488052766013853384948987618510332720976357938159527226050106067567207075799059363853768554244065104429511890372026899363115697201060637594392470783858301104995450437296701257930551427298478919160165347572308051269609199823381413749725956966108360829794733277671773931407939306460908048045741188985708446789474101858473554777784753202431736452831590404955197729615807496909891507209156867919878797544067195727756036385477636417427962275101129427642430273024168787697534843001260567973523705597140124482949464047196531433105867991864049630851469668220277285856716924080981607460867243262708450649020351099580620068847648121509287370549342480594100414830119563255409021520542176963445731324548821462847408962111823987129592936938749578355246151602082011899482572685329845249460534482857125705346018259622840840194788414451408080235970659027755358968493972488382871525951293050695980214707311282105259530325572590569905024575569619154185973664962670687057618988982522490705192551101680652043299962990463242598408413166744364080476561178756717606327140722349885662774069986816328233110191413644032025487046828159489310512508666634536461155995133628632090761754484826201428921427890883321521029429059365475223537076516599627628985039521862170343892345105023867918804820766869916638265991695044617894550904555590796588174157996066674678542803106028123569695106434955149671832921416277590245607791633677164507437832362800794641495758082846481388435634519434229711914751464925480571255885551673642009695692844975712907646946110892185913743967738497718357362600802601342424459597637660864590823635353257350183841859605629170265729481733259199431588069272947691561809976126636042358713587617325915608079104948823902888937150976186808557170828059775466987004349676906085989966966132979133783164643087583368978685578496588326090837713545879980649049313863549260283672513705824832190785588200842895700515329721589823259461614514749304834696301144055813010099787705587922829991493703259311216253755873045167527101022178601255091834458648362630756832759992211664647571976366287730888238108236354292415415903087815042897839086546742802111939416473754974823033915209498596720390960652655720675162036678952508293280907130246785599913801061165050717069451008542377217033748465832893381511830425862183369770271571003392506096802239958718850171399230468892326656089082841078384036842253681361108519055117104919503153135173544941886862053359353223322072895524735220875147507055459487119552787087722094619670764631428498024915234855171017609386141477769532706954271084602595934019195609012518492572427661542278280058170156880263586684782787444892730689582027634266240612366871848462810383957554975692145385994405939786852583668461818093542152876566144618161571732435808979840366598136996946983003083614898009915736994449764075038345006717720898640505796089789084485861169109218077085905584180209423075434977634876813251265720880783655994252552037047079727775928157142563171749967302856554396475496560843463494842144970583226051229239184882304071366467638667301300454741650401737850113920505776523707095770567765226133523737817826027920563255422911032197475177430147841121373693889205458068649773040797201312426593967193422324094638284519221070334842963846743376264274605793835518426121870604233418503630538738870417494112800556587741192000524630153292022428819175718186773646554618508032582317111760204499863155836462840443848055765178594547351378240830449685178025438642607615411763752605523083797423059545485252728790279045284145905216522174382449338085861910031976787529385638464291257895204359233533856441608712245608864827743051204083522277089620682069561002756651647725619491958286960970837678063120017873329011647112916504248046903624736118426686734572653552063110028352445849742746629090064699145806785365328691408936015629228329369230582180592079503538352410523250407511560212348542176995524094364152456973673793459809779596331089835584894363825588413729061634006470206880739274200442960715814120005189273641065633766484657561282084480396014241793165256762069496868135462112060804788353491020436743176548658285718896419221914641804660811668525551973045590545924392409950020410893551525367481239174543803241778961325490365969203067378769846123294165415032829107531764236326350036265251788631472107154116583418882519038954502628149774963135133166466240158718557498671558633955732197543600263963390541011256385195355983035543391225957476673613385192449684533083464010251070359187224376229976142040468018281279213889446333084276003246094926197793010020958389211975174877631092560366886488666496020884666408584908066163051346468615545248365177317125916278010668268061933311339592956692471017073825809733538154438576229513553807129508445499002238022157618171964549670874645695958796998472254951544624455657346522612444237149444801888867684756006548812559124568970378088717159208346774574843861980537685305609703779139059627386410578837292377070456376047324698264705863045117351069383347195660430730345808911885504098905861117764656274466563709844249761580492913599038745035377699223021395086203102981406473799287514156613515392134350329345812196926910847713842942756712565603435346107717747485114014437630832982506347794130140511967615399741649570474499261017443742555163640957287399708502692313588735549051475739352313240725601100561877377746695238714033313033283909881690367423155222876658331253653291843449207788667922992171796061068855651805012053311906502423197099550319150559146559372763319713124220874107954556173113913317408997493378415575970020916734928730151623419299504058308191151755303106644333142840068110680293349955657788951829851128441853694832030687080645265478873402006978550153758247109877416434590093592028902910620921629528813585619939291356319782416845709491666364472546542379101202127275462212911677156408120119363815598147950525387139761791468628516794317964188522929618448275424095040541738720024067451478547133180953227858637347654998009489138993591979782042797338043163054903854910755462407542626217195739257406207275740638619909521727203394336447779919533345970706888687545244528251390462699149188716051230472519473017410465605132496755128354733389606129084480896427008054034587549908433134851842013948807035364456955568384064830595263107018338822968408435266373542114387640140949620626206630593819353913729751142400395754888699249066673831668372896205980114165456685025931495766962767473561754769703481814007402660952583874587891028785607758832820158220574474828584933123435237317394052555743615514423647588526180991584222648170154140978459146316160994991996347939239990543829879277268423519694003633397450204125620511112806031319476462933615137270929644791274513462277820669837956181193629454341679929348839466501090072454246996927586225382367482858090318125342893723678079560944330180619000245649815535777890191366679523725250286720586847312740851774172933459092644506749438369345528499639112489782041192146405727492514291500328201655610540972557243182298054273463207379783640139909142667766296935442249072481507321616794166137355603194670350707902796701456659707066273437933573696715330016658504575206385912969418768539877671363903738125480559705008359644893677130682598568852663822414775514310243362917193727522199666355982304102724244578476851142361700313250194532875307390996355563184353754126453261402830557607739691179400929808588470399207740736725607356682242083840364101564865687654699351193936051337625243280354820620499785478748295141867128086228705624233709978094704126737678362727247249345436127455219461179212812642393837251834690929667798944382109665213463917381765573000705778992457330933239050219250825425517195543814748301811477484687075628538779467098197772158172746963172475257072883882775216452323163359697986013736185289381163871688497721718009501403869864077797222496445155559573856891248654771538988359659579081063321995146970824141051804798939371869995062206283340955065510442682301806948516755646480116576675404976659319166126243311261992138787514447531875788468940470116946170909502151212970795119278345064549816499233188541101525384555598239194738232662974602416156659550413462344019421879347583085826593762343841265403715248092357666357123176477705502748624663117949706357800791896417573313208903246145834321766087230602416000051609743532122301705618559168486611643160845477380729258747504925745845317609447742167055284346312696360906208128084298844438996552714217074835941452140164293994012480978389588766009485323390982103994768201392934334919254371674999337771601695541050069407625981315048950352210189134442932622606933368857901531268840573672656671683633940941670554982135950014782669955001512333287501110105055289818737604993037202686096171666670596247648574269727232401597526242320076659133060746485954116697613155218870598604101956666387817771601297256655512558427569890544526858116080636367637156734665411923353597213778006414800488562520186244382109684922237369815409330803756014011713955443326303155756478671111473109254452780723304541549261237952228987079696468306035824952041814579783693303114490491667425757911702175968226294106008716761083643962746171031426473357818334201943732128606605972519686375836648281722054521571767086698091711988519111132335306220437226411012285017534010066774273942400281107693549403729898707743644209762528260280998359898923643711519609812806464475125896125581907485829033199020923806848662084263323034674119597405067645908288497996369282008006897747309004799116115407899598196675769546599267650035064675283550620113407375228010035426478464982675161130893363581558585605731132561686146033353096090394405756307341082538253743204424478044830991883480318128290089203638180341927561071188081761186846707935211031604691558054842149216114620066215561975421701290767635651814122092519398293781101288066896774747311023261432677610547012688915834239701036861291580173680267706559894011668114409579606372766905048294530428527353877357163566307515240998439083217612603196243958900358595517911851066586935771753449534788403756865984753487910322088369220533963954268451502260798519533245908275822375849135275553000867486475613064968479313015340178179111383565543666951796793524271520566531724501042719701581919231782158647474853427670205987804655424686196060344084734554432926551999217491761069132268036427324077080504610890144431331285047356741002938779707274964211438783650026915529664571377860850453441057560122777531813088894656560327293583109161649686769574490878690736485899078502969237607109665735000623760954724754906170689101985307421108330870673662156833786341001085322486834034124661450159535421649699510244877205881272266635535758457287824991245994094669182254305715450930987300387387070689856425191811631488581295530967603601031171379434164918505417823514787993632874014071161388918808056602164741846456164889429740147660660819526046703046143502539324059653531685944624470174054083508974267756436216921208726007659938891434864773078871571619354270776950961149084910939711498805639911177770525506948372617417685769820964154817057684605459853503832016830561861180706374137855301133153398075028151948369068404466425809214609145856637308505454578240442328497089552323305545839606987007114864254294029323386632458588045477208554500267915081486732860331512383943117513561883510910449569502965766920407703476900467778995464136950995134504009700818823220178311891054034227142662959167309745608990321966647861765221886486905835950969925267700875060837456914088369395095576076377755271627235355940302246508666453255606818764205050778837469951520823032010322460892323715271034680205578748082273550026004831577407924001342020629316659551294202160785908042170630198427556091858732634504989168436817103167542060945249693530646493580201248175067997256979352758900767532028502203452578645453521431657764573412025719241439467813096624539590409512335088367960870316505778476697485359249713223103884051321960465629869509947309535604604968197429651125746777176189404482873329236671425383498655597444067787975620174322042972473946175667579619069696806126557694605739186982322678258763912932668703993399144563278786601697045934926950295113734897913134842489184421510991561682772897847972470298725316812775450418770975426911192968377695038582350408374981944390865429189313846797579084148686650909810492127856459895267843863235013549059542670855849977881290068915146609073708021705192535163044360078392480108438194367752057817809916185955998403051160854384234800276628334640017555069291933565125414045207997134878880842863109391433838676050983904021199938530895862322197421044574732767312262750772175853194784018556367520527557848962964775526701122401474921696885931511522687127108026246630538551558502782839666377389359015593359628662180595139864388635966466149277340017065288491800237710907137291207182986772206983462863431820689831721016235023796675713881009549283652118760048064296634518423923404195179120244086420967222704290383612930807098498299843542831935625186876025297211811990652622966944107569701449217981709093464781201738663534518963404060882187011563243201043464781996439698253650183391583057846959487937784819420127359135023742376189594624995186911565268141273424831170396534719028781393323512537243790365336714035090585993743212465443071041350803374340714378398841397495887071418083346557517004961979507470430362292702186747729830757401200740070558334277332790661655806281053883406137286448344353731106766775142660019141123803968730351420715490089151630635934070010979499977180589110191040213902135102889171779998502585805214870393113642731411433612154962287517024448916881971578401553114103618936661796310982533180568778006953612192049760645667818238507687315612013165564899150264094050420939831971025707537086947118626905456079368288067984989737972837430615275627072046424914092205138611942447171436590462155836162010059140420844931400909995327063051786103898581411773161054682579282306130526579629918841648232654659007300583486931247859671111523033902540260222436274200013143887633876916587680268612920381076458552794356621193885821261824264054470846320385083306147533732634684729001443627813636338677983711526724072550054366814532495112177657551803681866612594673000131976499881171172908451117772169167831411801193868916449561046026170055997896999702217968390986312531376290028647920297584233261479258672913361109555323207910385782263777284014176018347656284292868896993728079480396024581456662820768390366093288145739667542818694671396201013775076939384185622402015750505341617603721327257786494196111021533897079667618174197274373254130328905829669588517754570834100850940719655277172101282859524764733886726084964400714126885759373003859870222952031057297482673115233442618416709642288740002084126752427641282487816196058010168781612740256758229502527839165601133959271843147865310779040111236673886810061943132452262436248519349824330969148550920332572393119647240565303042677012242513819571020672099563433459307315400316115272170124954989572838257336370451543193846464779175899248197504163230563621656713126314515293072224204643538029419865957882120466960119799191093156010981992300589709615996950451740723844915880483210407085914661169869571772911259307511242460560211322907082592081272415341919182712880813257116032797862957825558363185808431816996110956034783389642722407875075002757156583938241635480803901072749734520493839871432570298175380814380743767929292983046218119862983122363309960276769849264183459849151892555130264595325805919017860334502729362757424871846019686727064803266291166743731634267657810663816326931785309950629424258852207167264447383092243140549642952380808848285747683746476012260505887427388266966619683827576727990970964633496609743240154542998134456738273899475490179734400075486635260695696725055651522394586303206545610260406331164180042893938353340937499421464083990055593567016972493007279411652758080062333110044684602193108927993228663858666498033886729205372511883019321952215286629969524091096292010774138410771861262747048415685651722455898844593747330297958185717200500146411077690673972858993340261395489754299803983516244047136942201999317483005408665370884329122367624283109066272189189615065789297426166475261068850963905792556549592225314334243410459723756415878247890645551266165907481175954376632217215408114859350627528495915818176337562494401698688031860703067825162086006538616256052001131498366355106754068935067222645111553173053285570926882568509430420919159231992143275848141398322605364650305895969238579097449623649215613905239456219566143758635971072220936729513236471978699258161857487536295180906409933122049011450903906573774136110691339765035107106832375431969127296840348408071725318202616793492190922707486813099383773170530334931816970283034284851261529111913624995137736216146345361179427945266792693048517266663341702825939987711501645959897167467115206463734620435566400025459074489798268207725562075845677395720554169233292852161462058052320590387509498054790739932341280031377270595973549458860266803071567832579813858588424108251080673787458791886715899356244002879500016771824890042023069218355495216008544324785871372316454971384500172710687830503125996525670629427475551009287368678672389077175987274670318074770405317591676535796203248335097983154039542094679088234579244880901563859964401329519064673974717914873704277243704814384427352087804806979446845511910223934952999704986045130547811330436918847773534384557409424531175742499001926995584214636180346319679970305371340349237395842501880955391890943274529379818939922640810296520454303372030573777527893850400989032121108045439985892903341696925992590634300373944570476175481357396675406150427382840491938017715638091860808203228533625746261689141775755132405071503814612775765698222772867373249892204161019765798393359692244521182216140862985681142958245253338075757704416506100326156571276778385861096968106425333746181478832297824842905789445765874529981628588953214723162121709414841952897421829119248629058294035251030621889012214826498986392808515209139343157251332233210581950343975194183365080179005698284033361564645931592828525792277089296777407736819700667183204403098944693206676813700730001379206686957126940584843369526420319469111298381210530047800860814557812733599533499381345816218946308934452418847354701703391688301354677861572161867992420981855857565472093751451265945262217052203150364922271805431275329070704418959842581584272110969309429049015366928717956226752611883468445370455185597288983464955161411420516510748218680800477370854706862462168278535489037112086879908828456930719755745061704078338203091079973796338210781335017194215223707134119411879122881014946514918309613168796602677170364338081724556054174866350067717302817001065086845207196971858449786569810434402506361530418228904005117720520186132592929656703451794009221564925552341627547346254084643125412464835898172932834683124767413647232096778026454251008180301157911646991371123410239475782721977083383864524817227566540488119609034600617065369004896515072177161946987735798221879956712721903957123960840404685828480263534200806243445165183312447852024000469847392234522053780014079529592230334341598487230178844542069148068442452229646890676053919817073476848465610347216224824082728686681895313030373514595270232786950431259612628308445349367859682548066124200224423115337451030601684567202710059929313065535698586930580314075441956533446798162152670650013402835349985751921086712436883499444852424894882348139011579797901605253602062338760467419183925623331827240250785680142538789793231812620356284237190989160342250654275325605746768449223013102798836263509525052931395157187468295244157340837641861534259170261223170429648064507787244954854662277868402565388878760223347351670422793127435913902662651887422582244251405007909546425904912984399784468640692480538338499183355806052580784288928043021362481786350664991202400992063722019725905289625007491097086820377548602123363002700744244773528998030848620266871158236159873082522934666646006520169536303615080214462778882490714942693151680223692232517647150732546590563528366103539356614109896036264987126449546788717296470273484027329631765100508990135711623870413880307126845221864373831295289715139414245191143293100210348326861131688936032078349384106035552925400929681271706030904915627563150255965322862427898344232259839396107585643427963426403440365958338010811257599468397420255652027393412735164921762870497791450172004887736099109819981607713194523008687999096398826923776403188570570141252429472317603192500713601068110142022420739235853148748910512132667914649575232324102894311620134026148054782582191292688598983289603320415252572343412410130038856650305123776384823402317042391613675286084859133900156882287776723969584376418021392287209918810769410950772811494779490869339245206843240866569589778944460012180972074860663484312728048509663009176866012148234791503849650961847536033614110905422644506932228350822025769056349301953997841637066353215420043104853948094775677193038457561999417709899892852711619751171805137837320441130795803615174569013081604449346944203482019700166283523876907026153477544719337266091770826667250468918874996040903828242060462328410688978508478589734445655425740480135224735665721315062123403019442914930927266392525716706254709209616617171416796143497720413588822097462946354476914351135762277759957207952678767875164566134515348687461707766204747221124774486136734295370960042434805476117506599440660219479026850840433260645159135716067362177903425733445317353189267235144227238212568182926000327682151321994383198361796799097415610615603187131961562265305742158009321451165107560088205472809150975372951801918699329542198815242519221792351147909346100435258663198297418821242306554045618361985249432341219523198506089248264215426491269857516665449944639480477539016412430933112061697524158709279677109671488440763118845159380811331691287401321889457204070830643840545487536096195896711621681330962567103352473342765064404374022265571593330591832425902544181431312730523658559877048118544920867226689841993079443480373606819807020745559590190808866785177061949135860383554745812841381982438304866890036245669336376504118604931588762639191929786474783291627444141931618888573166536778893753434477869625249365789812695095801326322663602914231096614282955363500921462296868885270806622711872471679009670583462422788375064624757486947416636738431705520939323488722709015135564549518918135594299209480272998460465625397053239473092674861641452302530349992500695990662256765248776813207063170093928888936645757156939420811248063518747249699117754520830861875443035199889818714810116991479171724080565322460166216437079772200630202315810559645201349131570992571698699835430240177768815927609035527634704328440466642912122436799618567503678811661153297518437390082561073870951500110640115991690658108169993599544781943502078580413170841356983091788156925504007852732864022594734305787717563256245390737724585860945353516156906898487714222110105660327291371944803214435824990649878455824044747220832268459484649284108669079932835242327909321015716710555904964753360366066784851297157703964897382642016434912222513073455392712168607916335495799645139346596722839484671594236377458777628995813994087294732222749177601947097400710702406217372295048126399271653465043170305917181077332277125204868904660862688210102008820082063341384394056572102945583165550210179140703116217303121403835051424450690746786084609803569169210677228779177113422916478517153525207744115858398021915997491081894666459096427973640216214177124699058122551077887476848384964672718135465865269934676689833328538837797420270354715383306717707028205278796806930675163529830378022386816267390577721542655247777703137226787115951695213962199835673183405195383436876734157060474881875444154188119631660107537080549538088801938792824227250886588978026914774374524121689703208290978392301628030724707153925331082637209353601086284018387189382008300943186981590550744868434458126978785785513974240064139740879425364551907525990250973211639042327786093141130571094075539437355479229510460101661411805255055449313563671617309900973753379440638616711346959384582342184503080278431603798535550814484270046581360036564771989809313084726621096074021781092030938749856112045587147532895106710743369921233994056777074482415667267687285615412335987846798168611175542504272351211549851623772982359785135213140658289603162908755228213161931171754448992885246311926237510249090458065831350769057247137228774856448721178236707493415400344212055203377985244001126719188102672337691437012410718051629111427002302318299493901171778983769196085449523549176011807286174003549938152520621803285441307280536723482224993052770183925399531093090774169486690256888210096703000635583467805996080702841267155889152442589751193465410659616210897911197429078166562973945967962630496113416357924763332601504011907264630227385267859449909959467026305056415607498346540356172356724633293601430935925287748594301409730176206901465562678392428215744014191916775021773795501101373359559867955870154634533240131516516933162319190517097882479490286015254940504616189615017143504536153818193692239379669670988510629022802674008855984866731961599187605313992545822086288473102004632486660179116207974326259020883091409953794130506481343655140582789619553448233948204094816756730778552350678758068593216912680170020067270192290161728030926277384833785661632652705866387214019222386203907108288768048275628481048139792996303620137134100518178385948500566922387060280830833902735809481821453127045008664677642567328477106740071721036861091400570778675749554666624102203168421356010386698829375651040088059382115699370599181939239849843908537259990047013733323592844144943699893839548469189713933894503820423844196062466674268698059999761199239272282266241856741078399116803329097706038697212062543761760861398948963859706204638112061158187266498596654061925627719782815225061143050837747466382767389799542755511528972786820070614689126121979745603576039939692773640379887839554435001334292731707676497521748377972436154132599946701209788391524228825909066602683528591906434344193335487499827206597913001080434648513536511583157397539095890522100884935137989385480727002685677877222932900626544744752274180173280809507730810571538588310313503570376798699481059180537098144509240300124199110525297680813591832340681473892868835849718523165186733021584599708779349109799722649473730317206918250761946808755616898846510550405935792145404299320993021691673927744770313196783701540544691026063334346628585005764115531132120505634450948483415739098798929796455121241332580651219418537273789535663783890750630352679303918253994795413180390026476262034581180982410149441585829489010869008406206111594709817079815606001291160027405710319129940673838169098229708006654967975199226925722344620608071296339190548376904675630022587085196091215869934175152349147956383217238092440602952145628903551643767047808192423954602610516925886966578208191335632316488332245534649314961032255006934350502287164535567517294778803202539237254959246554255623889676354766525910595383376605877322043878381582182339120318483644799118731993866533113477715984273996774100411284961538337026069549539529388723287400797305105954383543900111040858816978471330108866021895239590600276994448082212009304609257493848671600013580712778048813334401689477005604451906556635388261241120961285036602534951904858154291856655977418450105652709184571430524517292451343971962711811053057461780526383345599658760916328032664393903489093881000133468536346299288415792888868244935374727463958262805280590918025931210458520324969901328265497070747864445998315031768003862056740653893238438722604423601512088983454359680488877698351888829726789350860038585873702638551112298233839896223481268488315295061647264557716862481053844249398724574071923896525776070579818091851528890626026612150364350485983970934457062935883880358984719514429354028632918483987668044899007217017048907878824313346137166033292523659522908485208034782393971816056219758783118890593896137847429232104842865211487907798231689235308421473336198497330125843149761230937871010657895592307954857023157618408379773006716836484916634655726960386867243320603555899156518787350209242999872725878460440234458050105571760530740992164510818499339667133833297680261327113652478141241752961303511575553988161364801142986954600179729884788173098597910463884567877730671350628916086923348975188382867707525293203794530029284922371385358449154006283914958025740926650042758310988640763751990480640066223834336499011309898767347596200414513254277472723251342311917335663094764785623210297140342718539444222007011017040625646388321496659945700534119261997422115259041703471840890001098014570530593985070613496735762044045857063268984207215613116862814694925303284156447934585082928361089077287101271012225879942396625602147565836060687081753448516823171493095281933933713249655289908823256656661709547045057706455758589941465357430988260385136946169498685104428088068592412314429251381325481813353595063631901722682923850187269408049231237943983459222681073790303021678463387812832194996256720243605685303810510477202803600589433802066610258431174007765839266955415203379808198158660507613416570369953468928349819786813040158421685521760966714856728529520678448268909427563840122848348844903009603938072398705979852944963395856553730670864912477468235704300958659843357026661286969335460949214950714501765665309660615954328313889966533404323446094265208140438111089579468096228988391087530551455693889911816983581612860707897956416673673289366451644881147693156249272196344381854549711696370485476224610332444089074207723785980377610790448405740911592642767928055634179600423773016385575502574617324087129788503380064823802583455201784742783583655510148309316307922662258257987210716170950715045212472630867552445629578860665547312657980411710332133157084743960821740976173037806598188400486515885755193838630786271306989153133524650538395194149458776823736126796685526814667763671480309596876523741448222203440640758850567450060254808036600231607095416591245382093241555168534539294394376438729392978079464127412792556613539712154391810967332203724212174590317207053785018044632772584167616296482369545869094803806244090667040124636045350535582905459108580260809223548730962313259725865565880083878748502672695258668677185789454774788055839883229183128311851881969943680936217296600971184263513366363048013831867831566078076454682004113434351436542687122359020918708170169930414221776457418156738549371722796023134764265990569332666043883799849748840660917439010704593458753000281835887397909768357000569459240243839602204289208305205418622434108754509378345370174835594068433015475801759938292395979816058051698156834006847206332320922084025242166005470648826515759068043775577494805384788285054683070701988393348179048240672009706531468017613853428026151082661259645726673089102145387512210237103051253859416797731022689896118514092173830635427181255064757906773192957139308490431375410172067269336025978647571086271987869901874515184609689540752093687481614558928898729682086902783670417571423106533409391304796592933656273429071782005822457095251070243798433829227339165098562961662299627322412421622162009106081362742857779325554525024907289804905316854216007026947658159632606964648237897511303632853576352122407518661252452691589957628836293816486614211498941366031977712777397360228082434479773758274757610873263655015377837375654311017493018540511783736841093868756215179430433074073628155606572677901526175840383357189308140316575500025318979665563974021054023616763115683643143765436154237167549688794664632214067549756956773624539977181227703510016176555169342319848650407309742083808798839811514414154753796479132906858922849937468339296632353435876507056768349977601224319422324664262211954643474795041347444612815611854093052658821821197074041062235094986904995286205966955860762178933750342979929125650672928496734147358146341959426579502813781873739941977092738861374265406017155101854831872591144219738921550606812099069973043031975029048518906833113638546289421743439183494238453774842121653448233914563664121156460790643782297516522159656419329286361556717109558271674017346491908743522384394123226557984213138288403891970530338965664709502810409131715585299649538288162514371268826933805235180236606504568674829577556383196829905355064556145200977265069991164243688117339502265296447561970336431140683358618151608399008590082910603101008487583357127226225848601308714889572008674218331850118929440082610467884642660281919248515089684639551504111930165212693784551201015988862514575844034724581370392555794949397223897698481726242465526448571337362822297028766831104176662341744207617176212773615578605041842869833702813041396990906130113456761900515209652577492027191999662874902442657061055664592342654104689583850799054343681131431988501943434906274930427507765053163698045536927880883096721555215862255588689696846062421133751746819053647648780666797961385673634332530921657205427092690084852150469298176984555517567641824979131371419850907934933438134516129719901211175357241362073249044659253407373871089546434113200825088251172890670912665650474683576818700992132241058719836387401260070935545130124323949274716179282297270203467041566920461423810038621777853929431676022675116446868880746674003501493497581532963153935446755119642882657854487731047258174812530529697036482384548809261982310981701466893176554292339633386084736168504507615400419921418429457082186705029693859823281778422963696497730740776603826556070001603411556264934775887687762921955873967594842122356821602404371223451154291514798902855223029701105971498717529261188839628557412194556002380654312074264636433064506180300382452981270457480262812602585008580338676397699155763352718192218369727906269823315775143638300413482905892112488716333056985003807031011887742758024350996708045309839183332859393699953428312983919720745286942457397537429137008651390289536338738389529636941831294644918657554397712326918036154304196117066486418081183699942030409600172681737016484218728255698725032391816451127597104955237386481945321381080228327512190700078812293050071022565543510125655863998027534673136752472339933743786312554480493008202122347867361428457541848198083421009654302838602892205237301413865893776852740528759219496828952491094055031267695789135756032910515445578159871110976692148298549680357773909556322193767533607985791106376957475948785962736846506489373991300920116875391031859067723455040604832937128545641807978420570743083382388796508575381765794980830387631910157422050193536441549229953039641659033411590244473480167942815102243025656430005853663276510218740596666021255084607246162517506100536956962805755477058677813795219320521501834511031045962070656949433099189826546819790800469363810105574104391872702536407826140664169142242771113676887072875311638521157909841497555735682791718457894137254213024600371289868992128747680242080715629762863332233212169325392570999434753964723292619873756146007490053212390445865047332184931479009631296224750039904985535255458543761984952978978247450807462675654087185027192599185306724021071519826156401751145051961519107869081046670732244805987380396072853628024815866106386864406532609865060086474325979246436347332951093801021171972294730695320436148913888827803277740602782326309380586117740797712882580677983166151583500608285135828802031418765401986223779930732312243554442909812150555338853265694319057375794852809846494049126435173168015703118431345901637765391263761296545469892662432974296554720744501642197620224350412966486729076693174239452187068348096316721552748255126406535800803900695134776164547074361993306050704824912063866073024957802129211483369841184131668951383663100609973202148643029081391170585400867209946640692677176661291697458667613300644309732860925315780221088007668447932196366807022201245287916041001580546526243157462729080564102265750997682214454311488532005539005355832981485169671394354187038586755703564435547041661267913944754367193601410922419428782406999638865839414135857772190660941546590581854485561127103805651321720727068210343396407925304449057974061298239229910371259391192909895675586858264878875126930322069217975625859039638109483978343610174671575160068071683676967621907845232840266849596213768023687775431873496203729376152036140014890491657604886072585613932389915352302604925487759797256897227939794839598957291074609421922290187632408749315119146151442249979387551792640359617489170038385587944424762309241458604420197448664899813346270845886835952609945310181979153084805856992012796409982998945444783303850053009306798736506256781106861631874968303206844308012352533683641866980394056441051340277296088957338904539557498437312616830090131813132267596032667249321299661100221430740435620633478013645432606015555183100156931446927303079968594973832650342057849225582629686066058705176356410798767147392745431193789763040691195206310304748706268142196111980960082713978468748013383884028493951428381013801653004525864758220653138191792898826853194094419111243840207389393866547409283889126968662957697990365104625205041029187896293683970827024801913500428695940275095575562208450627986814013993697045842945831756510620167325910202586089137127967311984964140566428365866769455119318953876086682654562881775184080479665861337700644378794113944243963058623644797368865652605848097540991902650197108085617953315875180394457643718956992119856634205619491672558947935914865189180213291876197328387734325746987362956269625487730961180904355752106609863931660586773446407821723420475176889519045479850019496161383075845908040389098602584890543873048670006282154029353697694626601333543366268864006078566089145339185293539451660335970271645150097097304022974965547327612712481649558519960383778075490697119726924372182722426829114024390351895659832048914704499369946702721060034861529278728438767134965214982164994907213699770901572058295926009370864651842037947311083643033898281925316160792071101401859800393059496605405860640801522064209384860497552962543104164716272469989163369529850846656317918993687338143510585061365041335989844881012746031295065954594554401507461694187911280454546062487415977559006528812727382502914473911191254680053657449996960883221699934784775425500600836379025077343591897594622663582472129513999343089031212243913206918275164156068434313332415315684388638472846773554625571411825711390523246874232006955357662948237205106822526414811475363060782331729059596001586449498658793451137481858450838301327183317688963921452625023557775870633580652471778783639460997733229003688432084347145099344544854553766333714225713599671604640313009971872211414496484616112247608913515488826635569673997961039139583200786630192949337940945352701844049919341483034326349485836970026253161526800411704100705082718183413049678969050589644287881672732579312443687356222384608014663823206717288351362726925299516675731084168036064793690260830737750623099347619987338886572836398166378137380667635178875665514904430808146009754858162647032237897221401457168260572731097695874654583325511746883378133911416075638359198628389277752141392579963521995355656927622105965782873540544950973421836215089953986376502788783442837351948778398718537386649324763642138509172682707385544983846022584526074128307665750991087700148222144801923521872323074536572767172698487364327983584643916913511767556985515270780367674309824067838011896329170046429816359879682557282127491952584455801682287741685418258704891462319385595749514198003631173817227002135368670301988723637016542620476797031610866758717611630914005178942743408996532518369409236268714782159908057723686060925287802132146614301697373099557912227482936622159326469478789925870687284845866481829413225891108880228972930112837798187521813515905016474613641976957250785133469650465730939292285006930242343461328810213864787062982316687052205958875948851550721670016477889479572845998335890209770000250266924044808953997852428643968571881158637443693312520631163418714608869683818844629782009746312312841634433984038608406682659757932780884238118237172423588011426208244151851243106406271163049675747465469927880482261740179173193790907022730458902007128868188919993307832886019268809359576296727647259667884399688121350613586684438368204981333723844844337841899996364268033058411782099807518557773553353164574220292557518099448650949323000513879214887852867801296686390881904789387215539218840583198031974455599509782189939060132669938731918057875198053742598344181672421614262888953216678810459843613503793622367077117993219630263289508220280437994313256406656500520704618341488503722035445408200918769395580386812103901243695981353003122929396466052650381473384156720031808752943214004230215655267690351554788863254889727538981496132250411341374310696523901988592283568595830473294912512839455616807019279448512879252561369242243109822229034671383556147346063906497934095425055126080342367250402965615712787849053667587003010309421472724118701808746676839489109366353212997165328609692582441295907897696326193874629088836113306880915032935187886619501332405280010270438725924440657207478069765404486138017926189612432481088339684989576292950386493037722276586083038058090697589403767744586990778495154328954315719485567117851008336829328975449081389318484675192658084607195866252035097773056706940519839446061418113474778837384875442101610660083886069232175313948128005034126627109088890040349849634863283997506804005078079447471253051213006415674953726730655352675240397948988401666405129204410193237744753421803316384039038022790886755031415915027367545693177686259323904019569722272345477110004141858119335806603812337213918135327169523471968221269924771626298182989106976561266992799899813322793298663095592218716191533537746918542343334165783057334442330559581275363608170056352211970584789031995141537786151563647270335906044608420493669309354859803058479646330678206136032006088427320453270432447774662823445194199405395838802640282463835353789974287791503252841374658626886238635723096719203425280551691239585593422654278618641386147371334284815353614896501021454246573361626309411074788472672610517586569060797534346206016206579854884052225790814387190750955735279000763161778460507950393101384100229265344689992455569137685662358499972319442260431761257884805189404470712217282864293583522381576373412672284794020244593552886398623043194241057705581643911149347009427766081415197556636288393391657504749033537016757530280365526164411151102330468703773145365044662158546993395852334495377780049173078363969877598052667225846153198841711898221119962634679367542998977662927418540522809473945779904455100949733631200633321195465779279395979592902590632244996594698719571480206605106868315770039057650124975401437592427139594066994304109829912561146967331629292202750485506491875842138930884701380015883450533520045486018004039275463303899608124130606578108517382051871096591094852885696073558362493848499750522280624037478205614509142822366370252623541627881975117558861034126508850181649772731960524928555026033466767769310497852776503383413609904501319368641797011081607522321588907677383075359384305494095636823041281189029318951582418075989059623187231751820510054955642196166834938297734208836059714492985987729785957263465710340199750512062294145302379401388821158601990828350845489572046339990273045363373757718337500787700493091568066512694024174780322266539628239015341247669883891640860254637057650869043527225869977599777947527155805696597986867305781339677221780288827163842254592393216011984595754304740942987374244909078715237448657761657700518114263059540429371451783400723101773839878612381526181475213274485046004853966993606446584753542576276764870544778719834161849316095864516741228113432285268248103999775472922990481745229104340677730690604187481516441289369474503417489328185997034303336959618100259518886574733451763962597508969081605239430767027119989135812733800258265596523468033652723002575891249835940866027743943008833038998498646925883045502924887090576995997602462439767796899639546147809340255957343645757685549089996570120569442838895183945958344193123455843119957652814127753013493836866752800606688770823297643330578404520078915732330833178020884880713751943934105239117681436545202690225358680012546758583628696613361434696405863074706641703935925035229189548670361207634982536317279254133069913156585025252686511764726893821926811285496215746749305873133763975784579708417357320012843723413324996058175929319668794842178156460002251119632997952953042458452345978600509600164856392460854886796695352055810367539464490552401423000789979210015179471720283331654917000811039985791384402962639564963818929490886662452717357555846343225113900416565111000007120810740905453352010933933067404824386780365519527862374563980959536857430028719402790314025040943569815337600067713759169468624258297744143302203065646125332509986332551463603454185851439965749512516788682654555450680496286495699030677102552622175138713543766863176038062038150489992556979346397233110070863588978548719543871637029838550967282323744118775062930030257460726237447962205238727002838991623770303689175595790075414885328169761464523885101878276354295124882298060463787102907750561523887822962231426860094777293407633914487828804866703676710758641218003074007550082632655553949587890148409374186431662548827297101620207974966226813595794796876645841012351094756229219718584826609389297088384282742998640779980257408955002108259426606954899632965006319213538954662094738814919796125226931754263080321675794933352153270934388293414103767042437921943222226440651105085926089074254028186997836767395243698407861080934960320647428455157867630405461817382323945250106081093620253786564864629495487528063274504027246688840945519321887403458493481154130740611732187290941802774728519410069554503840175930253618668652105094351622908268003628507473206731388867840400100372109852063830526948912754850748493362701234825441404665113022301318578713269488535116536800038606247096270153973318265150132110489724470843289861086799019263665824915381690908857495948523877110792096545075699383508653302029755969505795027255630689924332217194021043454848924826404418638019988180897427646804011537911894638189233394297547300318295211199175969273370274426785771766207133631867992582058826481958740999903377820885284969693130643334184102552768272648034128846907241255277448028975078980794819499835643316271632749246533935088709485989332659385525109661588831804966555851593244219747244506136838908312671347157059758326718792161675006884478745524843818218141644461214573807942096404503889085906190321318227686682905803877006778917266114211826830351813864290516520080617523914918086670297849276293058857133874622258600236756460698923931307072595363729434795582832473324677275146164066105545474609128304942757137506050795180815048056907559254003848315001125540283045166541088991103593105664558216257779730507036891295128646137550722088269347743459855988974644305663588330061889459186036276457732592897845447104115444454549777343439430878657215395048627972338087075267184263888813018362848254964333246348912476107942688620526888412230229442668211364903017783109391840931578661046397205259660259982444883435764311795571172149470213811032235534437174967698003172215564194182600334898921445066800630659347640157068046216325394620831311866941097062673120820681471263909755704494288671529301332395589514151896600570889517163158859897259540118232090839217721833895739727599394479025486309324609431671046600219052364303184942222979786875095170885760519199694657235921699049273327798370683949144228362344845906016804031970560969205352996344088371716960060532205797196169644780146429844262391206799717070464378646602232446669329293236230085204813240732385178360565549086189292929936025388994694132925794916470389882549563438037977842702598890655084353259671482441473159743861575598777772633870232731132469910759912669228528309774348969370401505389797231961342550257857464938446033948216560375508613147495140501843815083409652603842716645268399691905215493521160830864790204664342275270882992229509382731529108193122890957220379834810277199893569114332210803924118927303370127722322204092596791177206662513601307444381424426368869773216673741858349077608370673523789943083199145142176457356486972667116092443049479333960479072640077215280318956190288287782338704480865312826654823977676475723775372284270577301547616591220694486992848618827608358904690481364543419055990342225925972721647424501576499784577206392421033475006614671112164182645165671420487463015324464932926501233881947044391255338944232861453069708419391631260167571323388285996424619713698155281550474656171199181360089568813197454348352086614334691929543582691181718397235101543091419761993419687502451639446518773798729539446730046104302621064633895973072272760268206921140070351874207311811401806034869167945670631967314718029492592834285388217724549051096959146462605870189597481514427309083653185897774719188985610101148238146121576180089699502734775043346829320432780213565140569578276786120507515751497435669290494355125401428670062523758069851248177705331867867558881269920084568016565450492813108903445832176909462853918256624388125530156465496056399223755846400803441435654025168001969391329172913636623881770931087248257333640222441694444215758818800774110735829365919698891370623165740516255234023767349830371768714861035762658385934060275993005025149626277648309375610706970158900578107452031981223269379781999963168709071252033756201488452630543793007993606359612831917854613626291533327169615025260506727317909968627212698920551362654905294284692469102123833876798870874123698379527065272664283244872108987326371687368978861869113979525836698149769105234994056697012572569053241828601015609710466584874168542525469521922691999129334417422369348179299453351966895821761661861054971967693117595080823521128133985297731977630649366150988629081709005560853335103265475747769400348136685275054195052883249636104640048326963320922411705116142466933514668969234706891924617947155548086227413711382171510583337105367135523426552587975091153265094133593489982300729113124201483353689750185026341178785045058379481307549328717706447292768241291196157903350823273498224280699294857789161505915418958197668197792171564514866088682855165002456873623476500280550118050652077653314743263835322283358062214018199119113245435281054893451772252654827053387467080234754497733350439542037049591189601750851925975510939246044152688942407839465143093470760149675111401883764027519634392494827232652695408096685722204655481677444358841286524777489349077061936266183052179422098242333198962977413149367095866966487038306829482704861746394286623276174980291752773306541476437643631149177855017201080535688769492225120821385445426422298590816455851289374201689164372498875242221040777886622581991242621623201361439891413445649692663944841838286792152023926102782187849614919850526484122759021408810781716818208453440667303789515069289434595141054539047883255749224761507779348821815016207482982307175797674301525002756644585012954602268240581160128085872800374386190763841488193567178378233699221602482851859893016407508885341697104361633657065794873951427697560803887914582885599948456777604770567339651767294333958967300504221573408352317898496253895802219757698147393037862835067932920066348380194366074963931772551596150315265240257087755073694433238489711451069434570506053618992588978782511210508521062054417245631190310709497447055613131710224530565879348820191284703773224491212839859087903955275204058367912726779288282393473372866736251485740274289083795951746307715768136557294606480852880467591101697639096984330016860725859323778577343244061359647701691062381201005417138252102629235716467855484857444733478785810839521128766441092171541944223917592573863065525049823554223471121947773491642693245808298760163258587874210542124379742289388227958648144228506390791591681064475429535523230340130271069525495606701587754264689482448510375836564128572243606905190139550304959525515071703812821496212571598642376394154259365598797236018768411999352537038739025108301784258792692105878879302371068843079014502271678222138207448369084834149879979594535927112279555470442515934918116543287009836845926132671955506731779801350771335204904288976959484916233487220100205134124412022320756503400712670859305464033930903676410596715187331826110035640234948310364793964878270266081218107550603186645857814675709474453479974710958348374585496191121501048289329916511345569054875475432891525141559946647459202800795834767837576862175959806435048969380654933039790844565644349096819066138688518231934822800357350113940827678584543167018496447575489598272670011380892385150729949728151875243733255257351039747593022668069344937946654016306552293078936454519961472026916089719668302417851842380785669721591321717932636845033781820709790940608518148632775045918485515404607761433188298760887894231414185327438324880499291763487225262060641686699852922624630807761355880906210011145496501604427067196509773120426689290583109461430114209645492182617925402465290980444639877557584128955964743021073679470120050351816537814311323209314188189777595630803963537981119825682846490260386920800536581420938441073669898760500678477044228564519736880973603028220449421594756604659014118440937311276365429973695859841008673795987983136308583230677582162379311667491781732302734179364521120819042921592952115472641021143342976548069350578156912757791279028984224788636379660297670858997194530875921680148282691412436037584983346582569187616194084166716311043418740850378531653954472437400290773891099971534441385741070773505665831240589800670856682178456112669032632635940265675436112211221632175824419486668142147434813348664104886123470231398061879026501229752757164674882269302394059382723326198580826383272164608836638714238159918927729436934981593402427909291344926562207722025399088337191205861731114455568754467834588868644586139254389103951205500300845405499128777521988278269498494827746952967541641526378677075574323990935863387036781111683064177959601270289239627325742421910691578238670807219340958693777041718069001210780554735915641787094516597165775768017278305092044281811017455433536675315553813932097503402391699347889973521278290234231917343463578619246793987384251670116021566798283657516972544881536209420978705104725189638710785656977107522039224867162092230791587338525880101825519135345715668480754206997384491525181941990109049294554193181016564348376299098175426718326794236325163830754041651078337047426453789249238568161127939176439243240674674624285494871807731967763113750466366343369109169339207671589879725421813028511704941345386160788317510106916873247190128615104243019770339523977666918269156032076494693802677317029205740210375768909127301082383044111602338797880301961497595096670318765137305429617351704193321071247929003796157997248636535492000267231129039032051670125549349162057750368047034516320113013919629120275690858978097930576048857107144097681336167006933325844222433644993508875312602986889627250208625336388536011765698787326619927742915328166480063869508502564952741388430305205124690688915190772600937259384487744526297052595239109732607012266208959074429505267609022848451806650613571257947739750329014532433121207490752677305777956739026160137565189833405363584640970457671240600308811710643679942567829936536994686854958914739540989474721991725340225247791420119666669985775188275510104910710955571990698629844453923407319736611331660083863062568851362478550092037688101072310863613998483941745015598089781143392318602877017070638056435768918474251323480435391428695503890044572749008784881133947591917384374064402549550020785893763805691781323564699421368588482122482725920608135119206681250756425081369480936185388580372304967796437629338878151694312507295884277425953037933539520904610982938572307680305316265130576533100325733175471905260299869428085465767784443913404571897881191798263024479666266985147797941112816906921041021971176295194194242321382815427591533367302292501827852085949592440831441472380957638318035526579769995541907003702468494268103519454815878885067878598468853463001875721825901890871271101440078193550864712470597798660521156735908894421868966554988170073734025034491051977274232914908790070714621257642329500335380925165353660897014908408307580817000346444071953792300414517320386245222086893138652353690422370025644048879416326716727960597387803096028136843409114494377546629932078092312352689264191185539085832202232924152212225547400462789024021621149765496268252643773238086755577055289823039020424579753061628939311589894410412619294710279883336815140892071987176762268696071072596032484773882065660539540702423854410514836151060457973393095196189248779449288115740305678178053199263867969197148614988864719801367777467158621171169906070771779492055450613081262848324938725922521004647845399709321529852036985017272254565567569523540902089199849856362995472765989843427866635952282812807111179083007857722647277649097448168060725514469915436340211428171580445693559235718052740178000953526516864046786544304238868523373129623496411787234848215832133560275789822912774752603876298612365215685497202757245186334359220291522242159539689069263847865473188004096286993709732165643789012123816122195131089198110418609601889952700729777928954486142089677883881422811234393094646393395378559208336768011115257213839436932126071400650533523154808534884521953003196878486130559556297190406919834495343550677820830482067948428445615237826941346096524034615075411042384010964301024041690757230877497466107741131217661797166013538730686426162455441701951638207252499914266131795947350546535540436138418988547631010648709553091571407265691554333902343275532534341721586616679576046541657846248754359182677322201560907248126981864598781401662443133375983244838681185761578477531849385554408075583713219879734162852145589419703155063755539433527919536669112833425725749389888776739607578081746292658781091525824056081969898316963273994417608686453943380602141938948540047425744511990598394733711701666702762627014520676621981014261772325097516915220009229167759893033807071130210931936936394296071868365126474336499762335452233078482793227691186111070289618589049435519525189106880142324135876842281246984986341146729620026190433500266981313548821442546835972049385742207144825633841108171721332356045073432996857396155782718410789708988085436832489613100490473756035147546566008120449815925991688524397762879945510891367601669570767155618067493207492172613749418253478253118372797094486517875412125799951831870709503008632495597193756573713341519782451712032540564356361141270710117454768104427855020474068332667650645604628218458718492451966086386178522947888883847105426566799027300854908646292379466501917515544790560767091853597222337135790615145786540584807188560919201116836255655181312639255531752705244259190115765223290496054461876297713686823086902707527185443558497781448351601581735057613091306232825430282780508480988006855352658349171167094007427445916675613652222031492519419993597406889211361376186665583532754010868506022720026777804765787885623741535129524386819348185050164171305154700040978687836613563224127830219947566792316940064017354643916416676696020117227786206399886332773017670826490186224489102847815169070343393331424819545002116900819271602573133651062620369947357892128385103213671726073026835608773438514728044777217041590428938251315634976722110548230627497908924680325945968653403399619834961583243135093393891466080486215892851385980813251830888631349732860961205596447691872373217541694580972960323517481010252385675560510628401352928087334444286968787412632918883933754718760517157314475591558443239618903537921481477732686913166745351024266376331970592929279303280906060194848227892239278909431394095716618234147941355071440912586001799957936866805118657227229219180423480098278026947886568246225628172310830556000857167151520136510544418907501242826143060405727284228314809488559359380285858041306075743039256851051930200719698833610135422433217359521313877040957942047293004484094795019780585089780380279673410730333332451150684231219709557276285639425139509435339587121683831511730054182263708154300816032687056022385521793539537337852823521252335514785179759191785907025509231608448409315509709611622059624668855880602269077203638728056170207227703589020481180587505711470732595588196815835720832513958556387668061549879320476127046743574212007079393849490842855929679298368941457174761138214815746340950105058218368979472706226320336367042641649238397113300510081077892600402298861259300786647344395705337544239558391549458643935967168359478520634157806368416842858688678844737563275828365336622266332407460981957160090928929051451012589283866756785805628519020960505081791761446928615102147577574572351034678365977835829378208078813931368671428574195021296519279334276675346575798705657802409645122517619332387167036982557169782791523894373935963334600485024809903613951275185359279738314653078768522842291712355403188294326517290895118739863048872113513822712362667112144581551800046873522028065793155062892474970280904332767923646011378275755665224818813270882161393017675303479787737728552246413572531275014764275179306570271326823523153250665266319070021741512261869035786295173314882236609919950781391792440928890647562346832461161359338993926049584162740726832599301287035550192772591308863111277838925366691224151220123517899586682938001267796877343636976665635041874546096743573105653246600736180368620832789728100973085393474128153920426704089642087723748098290558293980462980968232741125387521290349915328822424853505145326015694359553263319894113145500220622420533664263144843496174422776574241434739948315435584897066550371144708506913996143875561739766618006801707113490840316081757750237003290060858782763112224145673360531468966340806605923058898612819852409226003242192443471503870324523543688531165019070031053201712598941514726267471342372541346080418383629166113942603062366152727750645720649353801743461104357355735646041241046868768513648415718267098734115911603824898590029819687894149862616561604409031801683785176604161495101737974388193198031717114035831898964754174993553230171159008683378324643217265961557209730214788196791039491948372658793413499223496526253097244200577587724870353824835182387311013614777979418154983043659785917831156152000934236004361584816677642680914854446194343361672536862861315454140369086107664130230433341346649350138598889955310994774684060969752729214138478730439591172280266616412071372017407570542138913010129400450557290176954825533730221454934406206897226201368855272921901718552037584746712611100154652511936350835483082939774388755475381419860559177876622069584227242509555369211971547743164858371352560496091022456676562931375725960413249737642240962630347915119151961483494727039766113570940565738950031148479835311119756856189855116400641261460315876133559493319852633879963113846944120504014084179984496556983156526045715384365992125632527948967916518621862889222641233239843771962690836232810789093164669449359525584727581973332379423559307201991796355252475610517444465009008649043068196337225518910573683554456994539284156018661935147586582452899365743717043600216160458879847387880037555579135590826221717821839066577958804268032533285866747640535149415990162460192563798460303779319425097265174052980530610496380224505897775443599805442716040596255404827448604747821020142416656706695749543507714025313103907537068071175944974294632800658724178061607566223295506665175800072487563465365547523673516198509896647713828534246497098083189067299644272415993426271125715250329494232868798858774670311631787943256021441547341540371551965398264820051212557570130412007939803587041422774270794078591131520844865335217460186993300587575345218269638986927431826677048736207907264671895727709663236502083674271665472697339492497717484282767385848491941942644796981928092748692802925521390814157527009328912245574675319741548335016154350361923198031455895249049320233263426759286437425723882905132799283619365804705847775567234652231405602620915970140924277958871730890971492479802070707649435708729074441490493064247227172397329211191915391406910348385788253320194284910149233007507649523859196668438679301733200019473564301993586399504802783966860474045352961688962817635608269873455946248992011626305473524636440936789600087898699309956719599866735183558106973401319039043856348260908945433045402139990676437435699426965566516729088645187654489185919119361010129736464910729629446466067291124200662190553196098249609680465386711895805234102516003461292133840657194544130922246624778608817965330056236369399823442802907959366256625735301283175093185818558085411792949627560523780561794501223303721072709648237222251141224205184321003551008975693158067046604318945958918720497622286274608825787583072759729238186816022901009134310579191019951877327640636226475965379424592933072685290639525608761468251525782057675580276440106121040620022252664386221407909770225899428674646761308629014426563260078876383496180053510252905828384101679864922870020979055702784843045758280816574449234604628190989130137842863102261540833662820871315454065315048328866827207946281332327597064794166479347429525806020460607967989441901971075007338288206800673682188247963107521181679193127652902471723012543879496609655266617844868972430289368850696733922454539497854807781143307903811521281827981202713095584488125972444518494002475396737345510585280376802972920896571702036425749884316613934350461088025996863848942281617707733375746543385216070142612191349769903810366407032213135669893547282553234600522029456418764585202108118167825310023537911788129718201057792906450746814526819239002860460266924149485272269545182783443313823738084229661920157151298052025999170978238704203252629608132437132128207200880557235842824460300563894823446092203450104490758489695153612242989892334228619637842317722227372660273672368596391555399873495224069910779747586169845439299527905173811081700925317003020402245784413029981889347146410435367172731240694711654787322363900242401987869524699867219409500194530674517544903813089149053014854759516824234255827831668856313691639798092812369119990122598202149037212278749125491713041284342772020589751745849827989577783359792117570799276331783654434681605193629079149424956011677855316725887904221095168777057118399377139894346980415274122750097216079652464528199589106047120914088891692964532474784241392472618140502246967978838017475590866963964106459957549237387089649404643130842595073792857652872820114615826816250942011878633770101609911711001898097497726601117981914646226373326991913894788598847848749886222095253229587618334420791763431905709886935678608724783302118193282417511431765524404587759349925569144808728972062794953649480268736463099387037363116103580866909151812763596723056739372542143762995592576520890261367570933816853054056048504800147636820541225196213938534438364650230886735302399608011216564738433436565536130176089504443581269323784195588135181614186734555493796060114891860696302224761160526323130247917734709357309774068882841096981182072264239070810086454054691885717453930056934280731617634351875668164004664678743976931565605781740661339052339241590900568828990268678056199452615674829230866388797640853135461973781569532381417068004080289795337485671927943493061389697751641435168550972604685566147581701649714044401714252220565669046551527337463400252239198042715135315154057260650803048146360788279779742327706673217513133272116151413832096660455114598466964622145136604496173843101806021432360835376120561542210144494732909473396004500676878392879882292578316607804332582665344824915143145777737553074195850466162786632064212289169039167518091073942285858294993563824735859377653821042804207250961764540428823113758168374936441127120269824725557066276730380230482598700497674673259714320334773876726408852263542282374351910938805388943767832024638289726631854949847962450850085436205947010982824620478886131537321860006761403421521768916711861362015198039956721470715977905328166305729457869247280400957030907534245956485809915085561965302593526191776144458642881600466385944366990455061173311419528845518830579597875200624444319723467472871937382342064546278618138645288656844797706883895026427058000139267694955238758555892377497218417320446431200438780163687861064868395268002667888390971108928429957214035067244923621477156316923814039316338880124186495936191703215431992178997164058247901834313222488918651442089318709313547636229275663405961516949861810662700578343714693408006872309205054801871351464666516001684074428097560783491922558038669032352009623558480049606995517151523952970456544872998902676842962834938267162769116092877010598625859151885090372995244741591984396661111842461197383233940813965811541997793364748725678322226336799278631256613222265173489071030318418434224306808523581157493870056518783429372724160547971855147353631205177028687467483317051897482426400993570728883968529090558245337750931246890966443565686971398551875771072130822375728481736305702894511062402817206238088084652710404827526437031138519422771407266447215973107953928919474024772805938398602023342170670168788072085388987404852228835599952169476731606957030324142025744976242884632995275752314013928370897953133987110377306640096288814243237979621275722332547521651107934571563396178414342515052808482046229458436880980873240284387659833912926943809458859018055863837074346840885389780863245813941593397907162009054522087550772196226405457101089035987525837727938561694975351841570113347757906062093715430121141410221629046520087816428545885905752647863728344617536494974753355176453042080054234618497697007743426078130844532341639057941714931783960461993684717322009051980248049200563573719351518094485851095051938818661675168151800549766116220783671273494490125537336282648684923418565690087069684001522954605219564124445332522356368314461342733824385459866849467155065601959943126927073315406976523132890181931641972113771908829753128601531319652483846590543101351302753114229270267376238617180413312330798584337478389189038438850169541999635051092549403528442364708980231698227508369485236004571856012545681113146863675929588755083394560681224154299043878661549583420688601057797429539636421473487315608509094408837352892514473964261245215107792194411329127058332305630288653195201349277850040069726063456738371617050293676334588355521292745639011805671043969495704406971804352150181358855273615002881257379689502684693654545980471229813554248724790274962983782698454918526513131613628415085589365638669208971759678582915536126773060767705164871324071302096203338111569882682436175544423785675826548376699925297560458545424053430132414804545441626319868162553976052004901200361318894010858058455999056571016384993240545955181015324244216690797079060755698102339380082772666111342027771463322139802175818304819140525957654048141786047519012673486800992929368516995327482441303474687639053641641254290543941748679163330029090864964602840349706307408318806343871523677095776764972726937570650772568267459327594663935674744998449391490550451924162820491000238184951041924257511625032862720130117328665947455990769475233341415362908764394212061451092339556508661745656028339417201426277428411647097910219932818952511026042816621235760153548376105411230348504932693160515291902840472645740973967413236689724764979720853321626566903746312934441581673234228841516984826569838699654430680036579602401830513203488611599178611661129459122316467898699076797972832361449387599264730465247551972470976707423324544802037387222056641893820100083444384829984017038071012457001874249779883381374374169222777230477956660020717665036029089654132228510143170855403232152746753533936443362809424096404614056503304145914613095718152445990697861821035919463532344660783279027017797252727965756724448781018205717668411683150170896618088017004127695274529784782682681523234222412155961342886673308008394009115576680905409944853781160216622077185925801060955011707020864857714518325315790402731407664796072230512590130592428554212466038278390012121520326067384589297700190773076636217288118172841496497860392298922580730225350606046671732751518918190486537181711249281868949026540080919359441254761096128160135487382598952211539508274951469607986602413584347767147676435400281035022035490411478102355982730940887498206013390676180345861475859664937901114412413931964976499763150893085759185020728633714785584032652432117845036641641949482985702257239211826019022248201736788323811261434312053558151667885650845873297478253992945230395781127384501180119913629759874268659437337619839722850551808663053225313748741656423366494821122424688313141782538936923172377540117102880895801308299376283615746461354159158462567462534276692740144776127923176262933351336715443347153556106103102386613631661976460721832947198750946054072040836344655948194626314875525349027618391609711786445066860392253128375728431887178609354412060623847445918469631583526797141576082420549650110857124731153702226394048622424190508557538742561908327313430109177172816938765106111139347002576413156480162903220724590084268964258575338629700547495829347950979454372557716927237049869135360405126443523546527798477582899432236000810170624698169930082431467800093394920138507946679178008392632981274063682856064187304824409125145850462490746817796300605380142418507483071759532823957857859332739824584222135911751448740382898120378983906998469480114522758685154483569782857852270880926835447436494312677398408354375004017245993581892148491040566095825753585720111776399536739320746790961629854133211616079405612811703969322288949254943145384447204955716027564687151514712168792113515964768544150585928346080301400584604048587080642650971787262661274349869915751840432859215867328767834904426823281731777183028298595239821244164957759802026913153818722775836247313051322954018711008657072223115083617549695389971799843232184602202337875351151490217806301269112663832364040901816703471480115510894374524235055943209953826287171106604387571810786594456401594893524810662362864070126508561168185622788015541703932133600367249069981708667313509536093114962893196435806510728017703308328452309021474202189167499446139928038597818687916397476145104659008609676732083400433394175968310488992647990593121190104290821675843480133095167685519656103455946262626490829848282875920797404622113118027727825086090370244497629237107598533800689725175240906746767627425262813145844242152429330850975874421723824909243133950416433935668781537346006968631368537339860012980287845689890615675794237362239177220011625663398565538326492246179838062680936942680077735212761955738414218082664514374874658549462472777557983228229335205578485601814482976742773038805921006517848841046646263595465067249099843859740781220530844241987647429514989977664486683438882713628338791808386060583410217216954545649112821618552745797723634322372962504862434154283146209180480422108080270447927873313915322576615919585204650759160544547093783606220999811375514502409232013774092728219164820961096587616000232486069439035768430033365988550582139170188136684485062531422882963191481001274022882295932166956450086594410820946956918563720821123800023325641841511927955986769296749812623785720160576335072456465155576876727034096911996672021146783088738041435706151700761617076446915086134123692726774010239391265674954913077334360760030588565607986946408301993460052125180801771573734921996783466036821625945058116374472266461218222866691646754474864450328368921032010021702914077679076750039772389557223438832083888659686847677785784046248526656444174268418091734235731777853432449425493452429682488433184752215028690332796428757187995421446384885397578958200073166783136815058231942633337887341125842727821910915901728397744808122524595440610096555932552101329584135029384680677089209171735969036985627663656102766566829316003033073418595702904922036618123232696500702719410648240756847881167298827306496154046173133104784803022270460449141798687126403581148921504044154829146452442978334941437755340828730655716129765227331879055593912438656950400598268966964726405335921300864892846118123536581037464182976164508217449037345379366090434767796421498027593424106804486319501161701135220101848770554953136945005723816131102726963486763185399022387843120071320059923933483501302301449296378735414640369846630314138119061952328635755832503844406088778717638101625663294205034847265210601715102845912748136134602705577129000391892604467520578104358120062069613499997279650007362597528932601247825699087561267761486608956211727861782559664802815343427795656413718300338690064969987215254361180689672791890620036487227454744071162992210098339587344173731297204125320018242822611855262436760171142833774919163270696491598297310522837052307012295814440510000371111944672131634499003445871717189056623771229600755983118089125791118643198447845821833557163064023759034281936852493985073396984487852992918519052895756276904290070756964934543187113843380499419439235608422282482494630436220791201048633759080302752342976591709022763239409925032594392983411612610506010126086902888915719347195818698204675779585467337849643966511844111749672631144152850988279749410202919694223867294419555326559506024749340019467035429890853830094084481111088140282118082862079576332980877195721981459857460064862671617213957425496223944067127245516180131826837268238634989753726881871670305115657179008394808974346207983183162516563230502745578327500747116291098506340838484849710206364008062593423629944577732220490139470740672322692932139285500707324988963033923444493393686114815789357450656333676483849475913122112914418925025161745331122985188780465961247043757757575533596030400342027202403969184816914611463738493141314564660703667761645352079407461208948513767395041238048703644582210793966542816738055003700483079668319204386230889360791735230468970934449377042250996049086405452924638632208201647651327670676613133527455626000385173978337797404902532432748091250415417712251334685459329207798897188070859610907214692565198376922799156961563126524139293838423377083165959441459075570356724957491207235912875240525700850972705692140104766635440747825138921171556373161769968105087708518459086554550368459446089230867296230079342846835209998415296554359203992911892860926110112561181137438352376388884654948954703103616292151476643104253364463095251111220112749317454059311277692880591699777133491543831622514290158166755479074798459659540868994624884551501380778978786998938253721444790746565213220501180763341676971962857925299015464357193007953375651766105161020242169050211121308870366159910501712604448795799039874919315404707122431323925392362562160469763441356949977518073283330386895880502887178612768774458585715941442975959934423286074229153952937276442489816628414982818277038931126444284650238898557922406985846412054874671554512608728957811005374465888050664204266416132799072653591758192994323889890851662820243998062683786083389809086150641040097972712585501732859393303806908692736903907694394572659271531310413314491179549421197146388782266405027435592956965216958403870009076252020976920894596259476742794235559383426587527454526634047973392206552499441153456656941285371779682329222248330460605582890582036483985439668024003018489206734037589087308681201049562018564537520895736245945446244132691728638367542739743105568203986801321365235133565956357351840315240036815851409122106184174033541826973955027723747255387373982842334089918473373847245315066586093789215587537430038088161342669924884649499943251371897621477078266607912328257148860088868783777797041819578335364800111307566372544824306569819906540316909722441712141073178044537620279594594716545774348697401175199674355334621498919736456103247575852200492110408564234307709024581462388881274436120133580130658283319262786185709599478063106721483867879002861039139651835420480681704348746741594019068666195745492099268846789122504153004669672697714341148689735739065592947183852447070873902012744717772436613067823237875051882139246539870725905886734454340083320402155163430244503999584289904455448133803739593081092074353700395262583278920376123093779153144529945336446308805016837288369449441505104872957640223257932829004289186230541935201546705477758415163729498962924386964439000941996789774461708824681536423681617156561292390606346295482176814989629255522053709640144822166192679052352099976864993741607872933932600427981561079159896818180305285978499058876866447354918796991287987325634711618833946717014866793559043865055711360431637067495194621859021216330355594078221284635032635973081631279406406571584007088989492743031270807779177772729286564011614841573825706375689373818085366210072228083801751348264856477790603376183299164134491031694609238796328520987151541402522853643483327176717313657128078632194452703943842151451074274450297560794362408149370743639426311566817430797858149537715256961851106805898856076215529255097730955486551579463515930474399995313764620703752705019708284948244155120946975060899354140152037635048031211156828986887071260115535493838436078022065958812502541267744861043668672983199913229390077037973663223943640622957904721438498995861619099889527685220773081379460368619883804706258658343896340690085181880594365355722223812977808050787320308454421570559222481892429916366291746412588855280196773118097909275024921190329095455009878444011167729278295522213782976092513105829621838382306870590513173411351352155511497257629120588577965458454069658971542882954703850986599871707589199737220841188832984139571433218717647001557433929196678408537636097183667584835127312750149403590624759512444973051756514937132794968185038818252623469605657835782212058142878112651641041123729679820780690897549976746497336166606081387202907817234442069548396998051824804754932583483084799830896463878949240923548807822812470630968560408155138538346808562053165106794586988885135425021941789746704325928714348149340298872670584700694348208274401500452916338050228741075829989588222081094177415202544143184994100417851472565069778129758389407450567910817445690597906475664519622813801429669909823551933849911997157370973039020397103261113535755959929707804032302937305619471625151882946913870435982490055355600953011009160225428499974788667195547540775195833534988887643365771308069834956843630865575447226857017405652328030193236155813172986284560522780174389938274454512546039813376447406326854416267229900694333110770707365103015648834129462711796872385087845752140305483742016592250656205169178465093284546823600723069893514651944839193039147413420204390187849642451740497804214473541698017863056857616962643388186667928231766474098715934721037702668102280014750903732777306612784561699067536673142067904103494004718876614756717778082975897010725270457349053901467491815622455078039443290039857352862703767458151232445491754966357303257195750307248748271108036799658869596530190952151301031210366718626198467238345746802504125985750773757651341523294382602152989521309091627345325317201433931955480427962078192148688449307324135540394206867258699382718025515415115180110420789492823520811269428975695946194500114008809229320623129182753669798170946403286136076564433258959262347050698767667173595862400696428844604580708177862807914960794945524819489200366115323857102899019905395011063629141529878975082398932040095813056099631239466406295870725712984884592813669425744519502539908001088811067500514026556826006514537688942204217483874745718769972072699351450407549979338390031501906637320881651919252220568089818999317500701399135930457281979445315258532576994181105364852747136968132738579966986420647503564379214410390349316825235332576098652047576440946632253460947463000032134813847458041108444309540165926430823255889325361772393183381165611539660787829987342743920903715640880843497032938751233924927565939277452677779363206096767599150899880955008443613807411317660547723308319179947661247805115779555554027558693684962210496810510343532015772311094032562035843530371307732165397234900866426319918662770854615904465615923225420373975682089940616091433578721443868803841368745460694765870796431463839505353783715169856552260696856044991165195260735179596505482974387647056297170399368816416152830786619987103186326877049772805529936852401205662362036306696280490933884465625469876161943850033826652829810994004500567158105451077885819422535945581016978817468162378100139510677523462554431030095890734644455698925190722932860160677518372825712413280898833972568977359402515185815079509612123748355231352048557678365286455449752766099595210124392572817786302681180582071491070798676839918294797199004180256758121515089464503758173353436663006069006073061026156856467122726562426637939371999697267184954165958164771411886136402398317705328969883029912754657076662316088575354829217641200093889067842104657936454937094583479596429990600575681790112740933616717609316504132714493321313146435155709881746497798220500117457014062407421837297250571778053739563962359964437857916213843926525425180781960850624539391208683722659804889515603000986339555557056690043065196344015298770402339037637138126830593426205108160773108832816093440112878987091307886336010482335445320040309378210462648099574701810339289987785653646894313766071284229960867791973640149843132932395870055726010148148086793583198251180653489961252181386157847438099667012584455273694119352956911532708851676053493135540760303288689072708080444019993454444177141980434056014883824760832218364522934514454957465294166840561184223335274041246908754856430822367824233594009488989019225410921734073660759821405816437115140882079640410979282862095123678226330892533654314969798824946088155205327129722778608659374066682481756858454193364175267818900788444988347868359966999060208589364472620187253512109558525075989062204774717076604660186803470088747031935466772228645151445452347357927881437435035722824786550293198260318431534229120795762048753051008258680441364884061078369162419360859712329324271031798257893195363360992741042441184947028563813053126171203346697137016098952761012778993860423993236603556076833298276701295854621026071240230827167022961734456040628156903029213823662120536301100478578750744566174724662007831764463862104465665138130938846488161790149354044919449656309133099861437414659649186394119603146805216561993902606545367156304702374771812499854613334228317027946558297416750977185825628386852188825753250512650213540911872059819690499808383049462784004125014834749282938112528410597359026333455113936005640466826810212832644047615706959023135570884709264059551613228921606251406477900984196925260861407718200832069419550126119428543042167024675581715201917783916582753808286207462572676632089012531423328684972828541282378992787966702309198025391424773326685985162728043827100757951387699560604618747808728610479853420109654458200166467073034303431467464572236924327913259893628859502060805247513513931414470742031318702705897937845933860202759321162251753787803028532510279389243596409715391852884434632750326329380659783546348621651492765911625399462521268760845246621669680334655176439080207302843877360837703686314299489895728940189504470377767608194000504622581225139258171467420981970902197396492785589027751789432946711188456403819282213707496228837111551951483075279108863061466959577761424092183139762802179953071627102573055977700390822563589859593201245543731803908375594671517029982987539661150078609429060193681709664912502220662473925596268179728563431985323590960657961234114139728137898048460019065710644902151859477390644792101641938719057814865490664456017529432890263245999854053465063401045924430802596174670654248132974620232734655060623107312312175942687892472971823443722430733901220254841964135522204861542790418262372108187726033065597258021660644993575543437754029359632902101477552571004153852044011528465493764063083420484571396703487203935757727261485856067971711721526096395062586293398448967332561308808391262014784919076405985858667647896163643873158198844588676526145311276181928592665501328507788304221391306096431623857677532888199286879453625423344660911652346009540646721124009751110071066020875091384844943510244388287480092435429196833740311292283740719451822433583088907342017562254424745221534677436715145663813999504251658762006408253741560750256146142503716822735221216783365492458767711624146318933740766220724851660202768186051561975904691106101748514882725232978329326274612403321117105370813931066679056623862672073335627790123396411260229442257174671534908990550022325502742569777574128589460409367792288533632365832507844385014022666383112434372862753108321124822434858036964965131760585114797581812772126440749300116204183520618482614085894015987337722849899889254659669017909826628681785948155850317092548493187589801384859069797675377103147383830248562732050041570930230589988811145979373596021124201269884130881338252829600613701245767058917433228198130592402138763679252153844048197030812131616378050036670898268938824109569434676547376715091036377963733831821885409989930746167812097759904509377810263459811315448361746406175340163596264682917598978764245878577600529611738780352849810818985898062111374801223255864364015924565776990790003051241966403184252894831555348165710048583271312772925045454852677340847549361484922356091646507461794475881358844524196396632099067510644867988651414913072065634319299755170921734106315749160534393160769804270876325970003463946436457446878854111420150532201266731442766809903301602371744609862437374374311928068300426125737969573451455294821064003911861308106475022744066875795873131527941618277524817111715369410070118970931966186598475486467400753085009899899828833876476810238658283772389531481718091227085088781706708793557359837199698973707771212859052867535425658372526626227698314674862122595646243285390998740121766427821874579260029968260733515639967952529660913862661020419439255934644494330567519189168391321272690043350954802824769768249175581795991094523156267936022867875348488360165593492089896235898972363053323568068701133727310831646902141656327863698533265423931653130522950844923301502812523958342718039420307157123414490648055846183136175959281809095507737299005647253872000878482839978589996256414800526418713595874861296757493071367756012720355535280358381028401221623197214699777752271641050774025882060419508127296741448837506419089983509141683921377985580008934000439425785004567445526685067339837413043461859257520086505542724394175463390085244692952848692959635142478484555756509291444180075662493123387394979712714884730859408307390832952588953249292959737653177950944824521184397112543292561231839640417740646192919793199321313546272933373974257741489478377963355849669291304949936600851670077397353552074203320297039362326592045645302354381264233024670058333156237988858095399434948192792879392920948480513566123872681439541985066923756949070445857223710516371418121860447923163403362575761891419022365904100618395130292146398614660907633186830871452673524746281486308803189072675480125850525941133540337208690488280910171765984662320050310077918707445092057478660026826161877231871901135594304320553966456910595652825329448916822269166292893652897764227990172150589502068174748839925024349690855335380536933485056477800737103027543014612497669044585300495618167818428328807170015628622349642032317695972031123045208091751096415545644165150062524761979988005843186179179638504406426783837990271531360930304012159543459408996335726777798272254760775760715609020934837377621047093534072761875510717229260421576985252328673798290065481389962793418888512470052421333030124930402800094986540913319391078959101537197056563182083579520565037595212934176852647340505079252370102827912761776199461497279404276429330976543101397114989600140702377430706896543457904027859703699632909934980633863420223323986728153690946727779974543759726433666845695220616032510673742931009364641066790908094581819152856835498654679060953634657789172353335295678373949894783211003965170488478917420026666359824226058142440209252195064691499079314496295531357016532034526378621718991495435709315532983217526259121209926496939419465135553318078798079778030109804480528548632088776747850818147535475463469122689422631450236300478015148433792190529437668525261000400184035739381705852505716432312564536066023110020089250928811444251452499017462227195486239785398811898509456581379099250996230005099564125685671196500630403794168617086613180015080733220472820645852350623863754290914565855149312475398443808356418456448618267690018749240647707459432591051310457114168751304356687536963500368468151183525098874247632750217611198680795934211867487030977059137013535474437260966042184161166985669038358926059232966568210860972447020757172577013257830766834493602682645477606866174713109629064295069480711252649149704374182324243260309574887171633121530589584621584967269154840165857793573469067619074979365446154074544941384120747906732688273046095913120843978951099213967921846133426559525190313289870329978251107422351778067258440458854388656653643105311421369692696393051209052317881367935024170293454834287215581371579504333413428152737068787340051035904103240774776364480406116817763075037982473471982867833631589534585966186104499782436593220242662765453415585824238908621852189483345229316337041429616554261671443555556316599197380073266899389572766280390272106388976851247369663585654785647273933101532314359388987607078030993164913014451182768123636979303918971127514731354451603416095823242435678243132023402474458945172643664413431104811910510812449107624512732094937734892953310271559830222412825554118755214488983074754396798429172794270106888829892776666333544878214197521503063552735908936712749892723177239130962711659053464727736133701645451290465302714674786189821186140639913521830492984541120587780770216153049460013167451468417226407748037197903169319408914328581852212645515709875419482640962528190339443184199047743039688756452424084271002629648923553796431006045297784842662945423937852292157690533894063372976083525269699820684437863984899511448897987431079988140305499679173793545415547121238666613215864238213044457681935512335804898684188057378285779303254589514352025528627826080587677461290566749122059514447133381435926266244810241017676630586628122154001172565535694754849744251356859939462007177066206769789504817076145315611403428397045500068843987408363637613275060799199951656228942890260615632636614394638115464844695127614361609530714535078529743873441705573352173314905081656589359344994492842076268712782658191527978770318314286998640366714534697475128488565972659102692140383725515907871397905969412904677238974124872090132658471775214450657583317353451488164452820029128780522855943927757176615792506248019131767250338780299677780873369978075582239838918613710465680425258362460677923123420394349875225374234290364669012026050344336962420145643868908245344535893204826649656754181894381009342680143918121156793831695627920237977238813770484569277425436551150885961380971524299124364315090729241659199147057078626480616150978263703599611690819004850030379201128598310245015769194025689478079329349560349017841855769445874609604153443987979700006706344851989910617499731966475039377050280609195120418466806470474891075246399890510901946484457729214522015227802485477276986923514000776453455946919205225679728790873566351218630444089447712141808340314630189929687172548559482628405877534400413462434557944759293679703099249634870968382656292017780912059847563701164632568220273462549976247321753638818375243468164410326009973074021138572427193713359738097457231045617521379921187401297867459423065468297749343761941342171018659234185347744008478149015046218301069550967902440800090492934567265691792301716329011926530313908329758594290988526326947349706930069342907201305198056084083026784687697586168656913858444135606757009643632237888949167989874533177909816122443763748786832362048459914031437797913099495264151780573347703650090363572370538550633671253701225801615568553322033157042857705701490431081359506735435258075772364813155439547181142082114622710440996322861661041158787100336029564063178054820123724126740494459507975824707235522773845157450064116267599239075855336415167689133945614740682000917250194857026026737487157497206103870292492043669394095286465177115474382206998815429679882968595242029357155942318245327283907415049974844970056789668475393563019069574231170697291365110261472159309293474504669671084523683716059738890012021765007614159164966734270031065940095482769411214915519663588911637318229572085979862814642312105616610801995364153103084309684484489780310011009265370236117023782643448254523345914735493642549402045155981323886310972870191580175909363604848094554364163906600886336794207283105686671278988704507028108856503552474426330610035604715700595421216453801525064825609282349621591482274673854113571175018129373000148790479957276401769525563522660343723096787981920648478855226979966688232514678551574402538588340596264612048351868271825544751708737912440220411399755813720357935609094310440065080841729210188431523532014983805430972172289905042735885783226220819756458013629128568772424226977154066449848494342378607989908235217611992268435573266036389615579801058098220518256746327621414082377209464684878263176675802095074597484686463005133124422794294357518271395927839139190361897489942335536653822927596720550503324600835761807199905612032886072423096361500040477117982067361815909314508894484973076691797130628086007759432147472695278368053135072986472518824830270519427332214609602116477782921244428944244050723536238054511479890241680555794680622122949983059309507668081313546730740416022017946773204137998383397376150197937261966445923430442713519339534491907761401599294325112414258991608925683143239256788287491453568157217946038276485215641389063259255776981453868974011826846611691060841236743900085162118459573823870783564671578018207180698352565641375712921623308831986713517174231660022582155458414442258487291193059871722172615074862280925405244856466816744657740759879267956941759808946263387845472011913638676662220437963092511493447192155324161514369515743533687397211825412805713718407011052545445871487858362704051352688632788490237441483446391211893610797538763043258285812139220621854904597449916789578305488446419446031620215894261839085167423498755677780388219248345661735539699508918301478016048167334766885880522974440000190849865097494374578232781426421581422987959573802017371816175165139287826781012297495557536886672143721213122211907294555647770595933847400319898953594484700904938367562017961828223814111677973051064011312668898824953717931734336128986801231868532891342767511051663415011557971766995199181116172725327811384499221145398856783068218434526162084318541975493044548504337383033851120812674582874446500700219457499227003548506529279188129876112820245909946508206098752544671399365315923477031193664935634178150210189893661988420378605870323329613161847200598306331689193594292053827567052141318156419625391547274876270557593900318221159161741915387734100371336010030186286858296954868745273071646768647184948297388211973333550587096408915015944137328035920383728659884514981678843410604050127168204333795570248689741612152145595465059262438916408081047048599755498990913637980416442103657239587324036305643128356595450097450160557479712446118923970668873491121597147819373723598175867451308957415974806443330673451858133569174770999635495572729687463001626341609032613583780179149656364507983665563185319579174334905188221052883303211616143374351603225041454777588864507345622079519135634056981121402706257194867982857864767149430433165430833591732950115374809937805629634152894641004388503250025272474767210838311169654818281161471630300106908889061850163869601336149231778051312367170530213169056685334032869818483038165754456264019644729165544187947386631438492496532727854061879435848513414577429975273557183088968950653232609545110722053418026781610704290446476506147244851057567222183493303698036033966104848112895445236520421725589470741128202217089893738724917925800157577960618395878444931872578000291111764658827609378322106261302084025502498156825813785729221672460927532591172769789946931088068990872043407833633653632911362825116693744759191730472311085531571285691252727483523603124812228722997500332943600730055837641537472691293103759864377679988196905235684559569079044978490479629590413949124412824082580428486679031788896321268830919009027253218832400732866825693163840412877571453264478815771832629474509614302947820827977106890729411884036558459254229980140024392890885094346907993814985751592323516715528571321283219963591995141211314052670484584882127664930275760441481750039793868729499925135981436077519148951706495063941346113183845128683329666315898697744314714287358881299650742898467867397965106250404152846093219511637741377239331269151892806966961533356575593466356160163007275666301416155294932933473629445550384273096247448997084995763385114850911500316686166904679264651337458109820351103857216855505710970581179690605674838553920303098258408876906134205342211993866258204130564798441318092224805364128587598330135417085899635289837341486345593785173354362873733331970221504545859820500296938456225318385096732219334286632832542734433313230781109178751310248253116086130333992721750195560553795049272919863916523841590962737207144520551856367951066250373903509687870969234276564578469541986334360537777802763792411056859568546777702655478637883027707936006699771201585133745666582644076936275329450038705276016337808474145990379878894777922996606873942174613353138650567785798739437803279749672283752470351539369798503475317376659428759279783974767177601991974217172176078147484562743566187481332628323221538309127138322890730569707918264004720019134384899612820976711032171644437770871338320100994625195178240136219810057287530647457902256848143276649804490869760880485504802162015266998329200353725741196791501115520350221760307165565995767627522286305030572238413907759570959095824249792557134245352826319772773481856916530530030217964019664204542598515719125167036861508582402842394437478576783317502712686697543161692895017815238917493731089443059121204268031773237576493611145970517653635132757889354297939563481588527098431059929658894287586692569817087060338423358205332554297958635235496787328811300730473436297361644004078413207003138549305709142432826388055260018278009710199012163941486574564422023054161421283210491695876452098863801345155776086689336223650927095119045804463453513292787157394256716738276870042367190711585288574360696467018503192512055781525442945156979010554029931621496867257358969622933609223940518065632037538555567972608873437110965259271125706468856384526022257441378785561107019438480996844155703443150037305463152425948289222086424655950379050746059127451980635741829334935558763377078538979537945283805565821719333717511044079406256795552791304424271478232715248503221730458964765852330510391972127953418967693021996915477020707784438446811122606493710113721051969801406257487535100484431391538349819736938406710267408331857257945783457413133227926907656421920080216706019943739924862437381284449932578594262714571004948979581762220994012064709385963787457833902007580152037933406299918113843182082242783972883396345807225577495719027235482795701057487184161575227111651114192176816228046145514986885512266493887746583949655017557216204867225013461452432763201982890144601282099454705461876093624086754087238794644955971518822507053361459997387006818342134642983431377923591928886140965503369956341091928887615802992662802181502672022868109230832708466693772460318331808136161563396086470756967038607495665662197588259291479804411809134082848762529848210861561241675066124286375878591099480244148170661570368053969130552427850073446413747021214117213662457419320823937142292879951494075152064565341610649811875873605946998687088246231954302717133766266791526020434678358617151171363127425082672134239904610498104125744945459024088346187597860723424550525910751572029555451597805274961787377314480832689732234011798384370440095258880347981757648610019176598754478083579089817331296616581362561321480850293538377477841246790793385975676899051706385003255225641129409391652006374450707430652916188857633587839373064444192732726602893067987323953063031903711717351590539090149997684980394388179633848536987192992876030511164659493222966677321051772022020981766776804867714415781915267651264768946553449251699939296110804733368655311097729735956815621025982532205022791757595491929257108305126401250416770972990605642896262818177844111472335430575913840954016271119941529048761826638502996518411169429473733139920255185708343153963158437995183611961808825977522340908595323778288808842434876799114184979660520963829676583822432581763862811720489731197569139477995621208691484241727178583995315877483812168644611535870875638543237352608814091263695509703980011749936823924930578048382185376094182795635868989747306488070309882815133828755670940947637528533532669211208479945766646154370925521290359326737980723616793067517862544477172944159190280744160050518813115373477757032911675692246847007122449515153071503880145693341071676930882583131187537341595524426103881146672887336696671375690243091370541386999104180539167833332430689187571882992496316550111397916387692234837610905079410359776176407608734237436892721155502444773099267788835912096984633231871108044314151436336738329405407004396294444080401473967437696482326771077871427877793212863413759159850519080426524539663607577662060606842696652513305583124718509909578420738389592259875359839601976009856754274077593312125548952542981816853710931078205786721920004866355258882475459891129602247123570314740426966374974217585723055374210309171064365085042323094903625826255667211585212409291377500231351927811432830116150813802133448859875541115383296115185322991311250497539922200184763152229741271913794761564761730010219899470333797472854730000363193975664471272876908400450563765999758087422367168246023102989311754268584405755635122659688645107457658514781346281492188738306481567879909179825611457926485075791692964407623037005565803230870852619588529967822189719286969542866880893620352565392488167950736511311438888624724940353684782470486549543916689850127756348943837806696633685745349951871485104108561455447481762061510767765455521631593918768564483418806183154506877979957344064167794281853695902352973026195261527467876017947602339930673412015010302532407386062777223700019119008359114736325718942231878125565966080410251549942170624716551230179085601537955932475501922411866766102663649271023074040350432544535593145732690826058318992880438712015859943835362545051627014322295218132251310566389498347429715901311741096713127716475696098716754992417691732410577412332840037306158613054283944229992437228799037390680388180786596299818036573667348481849725362569311352566838338110951042018136608040245756422454232355405545597336735230651193748971942620760373455309951391038378507422652509447804364460486532842411376553759711441240738102781753381724977425352534392805364904219626539836734938761781477194698135240224890671139902691788616330588689795026355628557389928450364343382316325341390262145757366772357812549062207868858651089188203277104374415134971064829185191829866704095000760886283993481420805264242785021897475262352965114249334095872974515549012840785718106985473541398633423540960979878952986100536324039513436304559954793466464726408549612856499966042201581628264826500350449041373679714229729742956935989924805093379055177715394375062811036510100303864316010451715651262487475440511061756687174704718987691205532727940242936526871227546308088000535958316032480337599248314066761692973064450705537751211225965917007099491503700831495410658340469301690411822480952524581164494851091352562163467199811574625073358164106959821058029627039479792078223180648971621192982979878159176504713545839079491415819334284582554001532845136620588183248520767789671067114018606660351276444553657922103309919512914862104481791082443209189323054097542064884976572995652612808763421415508646870760787868208538834826287879456370672107759892761419508945156496655814016068625600499244697816815151694152906753068292427394545026479190135950157211813541393830571203355303260699957810976316911265572651609596115540366225779839484151417124526296135519096047867847131852901231411208656158503760266152142463245936716732682300373461467866040746538063099206855246247122863907279732460474152645517493318197395862519602049902784690003464482612257876208082708127568679691519315088679098528772912730174468905582387706746643742102595194443519319742657173221433710996605943918744906121491456776324003264044024794464273269991121129021011143262777256067373485518677744534249674770780640647160267253255355831703371436203276033706624905680612147045094870352573267591876011268377787626413320168095833413280911465738162614985458546602149070704628097311835914179823517226523668674361935322240933709747456489892204580767476287509632232934499067236792020248993922223811096595345267676086083625312489196474707712196503407082049369990283540513093005808949681748869496107843291665130935028128599027369421630825643259642849914900456832460679052458543468659644877809234563904018309981770988190309139332606351818976565122876158836767314057008569192249135566974414786521975608090232575284474092909158866787284914433406990002125537391900658850098259128076693670178308677214227803025522078488702885014450973410847245746305562616765558563946801234000430112661695071647854150542794397076261271622843453742302136765133136029719477220221195103982386915813044686400630227051235884592792650057594682205057150248068304253434186115931310342214048089564305015907844062174232061737156535901416228076091963279674586217740067803434441559753168048665804773598287139339808827510181466689796718663620306716905532809812997020806709172193497536626806758801997114577463312296996201956784626841478887952797948725054894581337937372161663734548925598966532598651661598523086185834205753087869945153037269527939797171099484802524489405044680321031976756561316480764890728339766911650335566713759703648994348145162893196161210672240491444663324852744086889207089849574046398594408218582940700634782917109812179977856665223669561551158058497410824066964012265496387829990391918928682698719585698697992167112268905339296284693709056708606891354244700448820569828740361336867510761266840746544854111513668885089894936247859990541526557410755484032206266677481774772400314853149460374857807222406792738151293878519976818611615271679943733180706810091695976986372157711780667496661019462212210656778908078497669385101419930743203059677193931311345727097915378467399482099479874749754260933166081355207791310294313426927340587404714925057238535732932847130535915817510648952812025877159563268146331224436803910316326990032981557222694410791532040858742261571287075661988822773451095169569003757193714028672095125527614238051921285876851450320243796048869946170436123803326045963254069526676512284879999675449085632425076191748313372644981720109499698326864750871594023640866261406807724220434550245233362514966456923019546263475997404813375473068114734118297907341167337372141891671051855049981344107948711086028954754753581740805727330201386008695410243185736597617777546882421595975149140425177921517024166199278686928286261231058025333136420030743004080556507771013223820375008850553440101604891504643774721519090699310061456687638495204514005776484236545005784882294799291150370256368787514313813817404488669234044482178587539639734022575191336729582071597026635671736809046355601282755424864444073474496221926349830484875527142881151829400298129994197895919114170522052442481339035174139905256147890771952627936500738769579501774530937013489241567974416151736497217675459551048742387839970382328234832745419245397434952578155461796421609814127390245980756668040215339963406093140478917366705000633292287222297498850319913084684080044257364342060457551307895357641243173670910029093307298583238315083249052346562177942924102296955502792857968994413379844729766181611745597129164758591061853264148756085379360281877001152927953090827991636238588308558941949413669308848335688626570055465495565812256070322939894003420561636152006015597824925336240189479194280476876737315936297038375614036520689362215294587988911800253907066869667999883116211674926607180078862886466197281128387474885316344356535182245132337728180847432974124464514031637485605308512193134171833798883819766612323651435515896756618407061714738007422788640934038917065311862646327465829185143292989644613318413223417828802093455192613378595619249540956795359218464168393588805503581499924280401388561667534681807768691368670560873254099804454134514742921664246765745037425631482925523159002498040286460468593087984313372305242419701579128021112469629966931112511959121511017698763739135601848673970776456989071603856864986379750075380158377467466132974132995164827223451814190413098608728799250856308011954937815086803054379390177607876647810476118635412554120470829846595167857742606352101107884498558483654911640583991189271657217972160886050775466567805546697044388016628260758253450818298882459823410144510936986084681605276040865471094675392720918847699268551945739362203113816965129001789496558277567483570941950725721317488234866843710992901812537113278702911637372822563599995638123386674311215700699112409159875179717861080734156886168662365300466700803291811470835288978058350351757286988434304429462944676471968088952275083235875420548256461695895163670145926651532128837879475367781976343903468389213311644333141726918044089347644348708643666023407046827054111987972802523266619121203254293411527733686640737867483211313739232045617625490825617203462898842368814070321449492912051945595161163721464590984096559659626066780780864415681713846718925088749493580339290880881568876726599987508901857596797037147571585598945227941880379262380815189859123409925050940815085113255166934083430943405267794652198860015222010875867676038512266948037040076765948365654476800840989334295411341936963583749497955796497812131003176437543012014705164197842325823077528678963081654016756831552097634300222539719588177395175456341202624178428476993501842813019510633662759098560845315710285529464424466967458844107801899187815854995569550313082418773989691948334437707651059427162669034369943470146939158524291582655352072348107708552061589980753651608654494580679623080147948857399281342464291288132588108666516060096454849660569043901422748910935775159866468475350210671421841317373062041991970559996747204313291682508398481664813488825343424560581173994476175585170266813788918033808911676419084036871970116819749047165338815412494985254232292603944267499861227153751788926023589368905936655989560583292072378751477349757777824944751716727238193273617804845848305868044887247070498352431434428746497021539622743709389156165915817719532641099261400004458707908117055742421963490209115613100696642491859874959701585214436318733994573115622876819648367432995199741994004596302617437912890953428014997434398361100350191796194285449746704295413812364436792606755186554014352723338358689962988127853740316585523601351059369573144432092144477120107240683376216973471276032886752355428645509820215498512221221131637114109682908677578806429574220741045134093271359763280387862614079950585616598823864422749724857405125998157909200357680954160285780796534443087057805346780143439387537591621086936387045432720046888258136561211214955300192267826050997256613511286860497621185763711010070323118280745280874052547634447521839024105886022737803884373189919681335981444104753173143039978868149249553991051904279705622442647933144710240782731957480606265103074241879708429820894145967532073179645099900601436337696262988659372391737870599128414555418684092392017214582492517919411365272347420326147225981794691650058650411455783916132131759647210659399307384726677234703674645951934484178425245572766183400971685743001663269763289104810087762064855565817637325619656351893345838811634420684577062733926793930587602322492684771137802186203343352431350251957056661407659376375462057884388248714163675117927104102370045251561970980068606034500895832070162466671796907892918061636111245488205105221933558017289673297605529880114230290002163520475615033760014177479217593917709227018343609235996613825589058317933033740831749241884736167339465061952930667276556001229653002790333803177987084098733343863501510950485463898959841214393541755813230190511209853885154168695709052936752833717179983081763349970590880571650054643354131845010413295307406794402108246761500318269019415046216452297749213545687497209309568651673791365335292101255975531119598709037280912345028230139844795709842675869036567565950699328015622366069310632503209164569427311280279231781132727312192298687264751505915492779289276963544748802848448563818564265922880336154191022509718104411354614071865763764922566611269622040481239963518930157231568184393552832263639473900500539916695945369933284379926529642754433979816209979843676715301751460554125587698760540262439583566628485978719669682302446717162307580546377949400313864604867802871274409933957352288405508326107659855514836828319400238092117728456994673349694324281135001559591197915276660400562767613280040206385233561308207756460466992031321612175039876793323956997727959960012054946818014581172842635894411009605616864434624445898666449519006062579535242564815723219107530360743330419635329905778282504699077852604132305441689628950729009302756205395057035790350651085220241654490392791966318604514177250778322603277180833697806768135644674231356423418073073577438985483162945019256001444644621468849356000471490452566012741343713157873800718934788753953645497985973995169994993894155455880050306372907976069908376912970254525067832754567076668208775574851456911507472603067207776976543222293127581339116757751557156384580692290823487625249563062397174268086642086669273997096311752870507963213518365490496960625376483955043397166218130154121231702048021125773727275788293807921035222181775779768505775874677501835393786175957060912667397497892436509894765960484088564438949667282531186651536659195537839406820642851065485795806914463632509992941194593208771807508029878202925067389807560249237169744794118059019907132939135816089098490324219254183102068434270912989256769809534504726423503948121873149400301105304300558687038820317935516613333163883289743339438045151518489361018197182820441993153631434210873898981231419070084817368915048072160442565127930515990484802966701638499699049740151349144792129733780773095830774181357312393364385736467360534745569851722961603458559306102858360467904248867363740060437327986168773817513309960988671906098154388164289773097942568949691260618439847380571886473020553476513472821053170238375511922352577239029084744948308861409902603242570112518845405357473897857697117664298313924162795022854477131514892000865733365906677896002312930735646105235741376090363680808403158425938558015719137525543940732473115543016003867413117492594002771621441854991178807269600691113236051131345589599964512059273145663155697550611678963997561309902347527720673894392058505030062399696577840180901816746700874625037213822827581809782223515410274919888851619361179197246362890826574634577488448010993951734830325146726134286398078935457830964961020822267903875754348315512904437434507043875882211225850435187823191742985924077899101873077230329393668816269897057099687019116701952935056100671468553096964807679635267657975423811796117591653178209190896612673808853458296197809482547262094163468915251441150454058386724048269015710473950174708637879866125580727936610555213514712497490489570485284019920262380149681087254378837709333320857961584983494730293563788472152069808984178026420358431389665478300120969985383751627347397811806133788518436360209871127991413383231983247952605841138372120396702148461373088663177975172296207066111665702292129238191967143942076179715335310788695223045789322589380509494646642180736527584690504311644231431761129341812256017747517625826487388645507729492664572433777064364674164204767104966341108883627343187414768701741665832596722410135089223355720878454129727082707993172855891129750255044263437312310488202845001052484071059086959591002926207765022085190287957272314610004549305004174676913404561865428650921651697155515835867733730608955276366196660350015439227454078729191683781043552651245184476970163029873587497845264532299361676932123103044779183045509747114193889162150530259942978543369695910724630177279813036027683830042921403162491304748682869956690805050042348043910863961309147724977773349935211429947006958174933998708184956667128909438586578497784286246308551111230102305210718073537964182825142092865729258997986954570829370082600708412027651717424394430302309635368910111804288487365032214926302726453010506822762916460656446223046322552464350328169167899792829973352112193796299740538367357757295671067631919814017087074147695626734473109293043874426401713180853348684307794894461639065360024864687326106740281310150827794232305040361160248828996072400283065421518722785856008828954262395845730427781562390379076080750794315525559640682458459227404745920173581476351961545947947351046984850241440039423267901069895307442728074147835484133630888110793454687245016810900866103407084543419328822643857424454832226840168257033786843083410713976492572897233110159234074426211946054339327413921057407075595841333179419930249031452841387392148225151087956617955094532690574461571455325125123556468745808017511842861333262282646048346134328383892410992652096818927194177103323544836516679511285435630312586968805914901650835217395971160083660393755231793012114652654730944647343427735078397947394609029419497479078834927513122241814500008582080889414954742486812786132522332683226011016581365108199708044335815369819531669734747553204743640098727983168888057494955907928743423823029955280881924132945817367756494997286352353605477065059509448482972703644403547736747594190434139323978112504028462394474563030796062883222563615871379081253388631416092589668271490890298403986345402395911754886447637218535311720532132408940766805204667156726511138109530354064215340902795062572198741111221057398368801296962621471557347487522918859239462776737452047880273741621028248656106166033369934807927333748447831019257124327190927667048072843288834418773782181679879711572536254903820134367023417823671500575130596061575404120854632886970971189280367099361571317974347873739875380555164875169879584199844669758707146052229230771096016741069864631387219734067967730989368950526968458072108169538202490013384644987225043507495853353281425738893260244882190469502562353509982869488962759885999396769132678381913593745457738950496298017700229161787749677427787867318115267015774622301456361917938678111061282485871237075505211359515106004006851202677232610296782245573250456754040905727760818491539878019146191953861226618688066242553296523593532700858678111045627480776087718766988883760279044914996033436248785237287681379340285043856795190221112538525290120842941380595145469584808486865247253934596059463382548390317421101563936919938270664052758571977799973912141984509955211375013415233051303013988863436535894783508684971720484200271312630409256638027493887014377379529554876322114466089393842609449230894759801033392258812172598207831899418306579845119919709808967153520190475141628713932902590460043249211430993559592113509472602988005084219304738661558405069442196274767153076909851189737166096962204538476513071817327816816312703482633187275121733892930998625343305498428665267818478845642275341810907055181670885965065750587342845319777045204740324750227370432584498499464072966541616793974424070987477109216173062308465260388359864615136049339078859038617863202452167089777321981985248978352771633391940449010663065194130903972870167707983319804757575402897591636396266017783853641710015506233414767643668883276225496546371002021668228333325543869860263834928031913559375170632461589467799369497070243070925517988428562022193533510755573382636184015958846106331136774736067834352987396619546258934483170581836593070149488530800739431558377757642079616111367106306496081134569958066524521001827029886954007142706056408889668335015280575500168211669773510150215319977748105109601051825706616727899574657800783029415282022767072762079765071164180621433292146054636706205148491911425675159088859657628954641048365731887331264259659455242692031547027002424569610017953986950962979881930747870246867939389272401602619189390383972925310285275078414768323370451584244187581444804785703347522840127179595671606425669934703426970353988962603512331580874169396208244450469797426484421331942722765625879518515051995864846209229220346722272967336369624371433448041154833580281601055990471164559265220456714369669131801283061941308885778259448398647983842084826003770992781905202371241565573428706025609286251100263429154041406669160073669401401784510677403553743571535366177503131973010128148824186314448704395061300847852090563453036045975889923174387123621785101285547107125098432494943240498807638634317317526371972604660776958054320226529682006263536482621693631319710351698657243432704939986018285557029212560657519074990751559317081893687316049031624336854750571077610516944446875770132025641643576181707722547866600304246960776500616756674228098001784655979138162884769170511327476826881921984982055184819682015797811628168565192240411971072192203600348119999266171030211282455186732587936837377905900966622771616517689322455785654001666798471124229454343301857420605770869319094232404544575102391054192074933853548169580890145671408572174040713446598166668203700749191847747171883526190266704582862691121004893701324493308609665594781834110767309178464720246472039593835049877052653170520593294364165863598937364170773573487539213838907637316650245237596356959014100754315202535477743366655121037249015370925047946344715161414706820712498475714141381718390455773272139007222256804679770697906647853081826907028540548698354664571655874228044113514692872139827224185853589564017920241144861644447833592805161170572863264646254988277728448314614812087513327697038449565113202857692480535750278711543940855256931306507957436264110857813465600059868547631521085472180240797449739093927323196113728794507259051228389322322923949380063908702592125694769365439954379003519250964663010669833592183450115248577065870730619460672405367628046941509339433014755416558662219049880946145498901220368113125435703379040439802537492691058426279331958396007112591232340230077136707519042352785437696931101605258340474553807865985246828092230413999213638292318611086078470628574661322344582317621090102807882894357213882603773606425204124203478619584972369193016149381922524630396697754727987548557861015827744600967923406674909409702293336333650624128036660831323755963936998663911358507774297018227997125461671904848516726381188262702928460395755363300826605182299310022819378622779171948647413460630880244061269596941667679012972372282713858938758301184090011732449049048051183008881932358914588724210359987486716198358590876495855803440205611654651143699232650669172939090506719879672426274826270407046980472081132275484198975008855000985140129409596853378336329233577663239051732681142477170073256186166231018976130082645459424370070030743434214634602613896970509874057261255474888782826970831155722658713525383528705056154272432990931541303710879547592498338196012379888621543216598162663867812196788070714887205283950080175708349621522517341081350125520376220876138055668168946872751648799134914241367806829594373998414505236708491763333139529650970187265373987076045921973726030469141545676811247768229913896201305236548922577040779070063362573546592109309943237607315457803980695680442774813964764412268258240492006175324687437698485555048845172406891944185020529368821563616767756366976975551125455925226786538194340611510249862784487222113697137251609025481558357497934692541538838313977644454824486453145944017864559657233685073884871862763432019007464738854264361871588279676385528641642846177429351455158146064591560530055090920119052910298653802133410483517038773761153350730063931018030398963755151586690735851072720568098973617220012422636827280018787192146621299531520534168773138853255868637269895519684935052284993349792815428929830342511642671763204298985934359635178259717133474834933412059605945610743345494387602631722252560852435406579153541146411654930012129001738288311072976337629576741732143095268320153890342198128134014988733527953457850307497471978600644065507050597016926876151489749621455079086853573794488377081492386425467778893758049934058583120818483431233301697829325696787155605526840923459773939181021487502520463279953844361735216054837594702161604931880613260994776853986371775168260380362519239816480816391490947278781445635066883167006380043542683885051783514492910934622744614660130969399755588680203528011146509264305902838642842066640241078223649620850370223043565982644343110206684538962215575309365414414896532909080540934427125774945372225866499356791661569616956448610905399823423711897412062085865920714727183638976426557139117516594645039108383524100683484617469793879284833492149713961531829863166242969980375875616487809783835662372071749775866933651470098433798059360393839510532211306658657862048423451639908416573512888281474845232580282001461742256732716320873146213945407565110375474633474780113063565079740210927785147155760560808111353151632589712733463487094450328964461281070733546991248764895829927930340586333712376588514388032322664064141089128666608482628453013567154606068396895500345610264431375051451920604503358448436516141451203976745810151132236243022842057138707687055774991260765502557150922599178622342248072738086251771396105091507472849676522502924289829128040032623043940719223850749181886247247237529595805225557486655801797753257308682722560286045798333857341706529355010550053152553654812939848559283283706667258437490130131904358231804959010134303859751256686630593131153413134382021157187504363603636443039319483370570739014987467783710377320436546063872369287200445826097624653244664831674150886556221670837275665388587363511108423325738092859791424600127297869047384181917886912453653601106568738304272939412162773103257173147022497146410214016024557949963410952339895208539036817626572530882437477670831711027335857817473437394447616633341722254718260064380446576745072326760416169945856261282965112391828465877529443371437176331720386858918708529890676938069922147007280634693149821905796596332893350374785700654517992697971649190015737157905883105353265168285514348233296841825175250479940572419071664360975249848775437935339832453410163787838786890923565447798590271561571322359864320718259524519651386576396360619905223661897891941765518023719431149166061723954253561624184342200203391494403424610642595815614547452677091799935764410425942793444956366768216715830754239890357243350346808056643571717076398494047787080023565726290616632318265454486258450541990169138906674522627262939176364908663259217671495775902905828225635897973476674238671121873935410181233880949968045524995021758161149548542164925799441515115679969564090249745431345197393949410570497006431344067907377480547018438914626065414893661167703764647529757099959732924566207404836638990479599764252107169897775448625461790431301749257022106211416282257116171989234907289642519512538397724846581094508634493189084879710859407587700604062117396935774329453557610251775244318399685011455384587153389053131068365476638675914185111608746858373966881375110469710326145285151502752280172171701822706960652190054720460321356329440624362745284802708888672017026515617963554121592633337649533171802398239726076510169782757372050420951473361205176515668711159832948414404027061933313532757839344756887546714456235724736287471727109149327748095687740046582142253526830827823813353429562220829409570946145936767310196754987383257088337997348781265352981640961695856950192620690140634513363700265623389895836114585998864740231355049405855563042486583399784544564917040865918213069209814309815775379689449485109834558858472142209264489233713267740726635298674829915116998788627031037043272017658216885354028799789099204443918740679132289137941023287793063905430071668218505412999164499216652841900697270448052042813679571661891004858176907751060584268614958138760081067940958739045696971027056605348554422623909927708217225716383700160342058769737006784674611137022775451498233273076885632131681097214845695380628024653812708213052114532675921848561373998458149842643063860838812918983057942009569482547613709181067759729599210506944095374027862683002621055009760072839179548880804048903381059236430887035985087974902084022008288711050740010620990368631045300259718718801372419894478834435160523103958227679277384863615847966840250285634594958539967941238448873208952748910451534441314636233752395905312820929016877251170545860397273568988964236576463161698155284647647820016803706540244592936779785832180199278565058639435258170638082693786270127721741319940352768228353967084797994701852033834719580993521920088456200487050519478446131688973277408362860564176216333011402630655051654448078328882415809650368966557220622220514569372466143082984386547875849106050253933102625006333749667497909771049126195725395317512463379863059193931664106642879427727171705196804960410782528798378226427238283309516406363370228814143915544194920072301515989721734374092907004230588136681841647796245184467473789076725735621216887755020610463839713712618890018794264282125486051425613321680418981437078824360828295688181561826220929723407063477320097522966614487902964463757628525496639585252713005242432951611986253567743617440887437482629513169038244885054577125448531833553095190022978066556620959535801744960092393999942165257993999309725866760557561705958376489109094683333264741619677788027181918069166899950858779186941999632279373959093357958596266861892692299562715143427826651012965229031821415112368741809145752363629906682443383056556006022500704236146681308507744299889653518089232113615043573327976821563845616044466434926285327979063709334538663446167266700386091551987388182692282479142794834661727896730919637603304570294103130173750090852220809948260478123398631587431506242498715765218363033782087987475278982739615796404137849151864431365197932691781063548170429141287037706791560491310268546866075671035572908615870661874555703461176561650291842222956722456853362091415134618707729080656715522202376287721139519109443278612733035041810933354085229021314332500745307481088962715114704035020402099523536786125713819771497100657817364583544460716333751460525174967471446394181410585798835886551580437563287363061868859202307483781617784194376630608687390535763969870987640160614870205886951913964330153688669772455793153648541292514441913883362389732770647036019930194657998320866165075944876622492270202555730883317079114688177907506131943112715511649612356426144942161745023028030626190478863988008918289968538323370274811745865538785992011076137757454759964689688604118529142017227697514917083124328243663630174299861239009398089223800070763326606742152791168232505866132145624863238619301128838479963838265728532977019685783757939165499478939760441388989656491548193036163436371930018924628293708265407985115355994221687514912579976037483805274462891921416747475711138644792875710522492422090482560352306736224532844143664075524388901686535906920209867377947895930415832494849504306000593046903432133459964716437330660847467576868379606226558253426582630865645723920209609578294410633612244649399756444801746738509128225382347150315656026170653194935219836588608748530405114594808765657495445119130124674852264907767582622231549678045856796850592860866849049994262437762978861761243057445635013162351484820769033787375042793212505901772674885409132920462555151413976044196205971228338798498577914173763378943866323582348587768190040469128585161236605620893648611203153002029941164010947871994956266882636211172139687225423204115031877833289909947122473319533944919079839020848529977690476594549315288677721241116961589173078311873307476272920783974822783809667399597242895058003787892030856635648354282007649005665039927547398611630396833417817991579237537226082319815313564502581703084033270737653043841128681995655725269608872078362713715486794959830758422848476592588122894857822516849317790749624588937470802317869522215797484671803775894969592648299467641480719045156942705259802680638957889134243835490476339332360529831267902453731378507907189819878566588563656537429692983187376998533090185239009055166472850737719791170299841017335756856172536948739371178649537465792544462663194504509170952893384436478791788385294396364286559859554371707239242213413064986959053195435500633303992143730646736715676308480022338311475507003058829267842522158433194124581330038101456628098353185810076637103860661756094100587144492244214846785532861693689410506508714067136722014203522912092994159257113178666738001920963748767693234243168582205840017782363377307405366997467661971750019973234734800981169060827082701734753950103357121585772965264100107342193117397188222750629497663424706432967902398820398883159271830736339566024338305110733772365926466479992102739250240067529908289234342394237479015868247508703264698458866029783747351420698675754551284974503070721556188535359147985360809838757829583304775472330427112134912688546032061513007892491717236480601224659793322611915390347373944652030928493873132670213509591972884358466037072191719497745100031470867004100240821341020971477373878160958937738409164554622014188841105393036555971559712063367845070344054720319681097319638651957125088166234073369779704971306553566799034751723383923031898277056242592245957238443140425933602905530173838296829691141455814344977296116647247795282473872461286474882046820083187243230658194954457316896198955533642388309529021687087083397894135209011815524287252572349879257364741172403516378959202607650511177173184206320325219227476631188248909877193261871655443969891702842806900048763571215094887398829307928930344464921641922110219434781095803746009464407513329354689932979078669852738405524963377975173051703666851677695863916449262490921485377648764870831091423274692140398571397576927128371226597342046869520873134031511323097677314667322430469828589241083387825754178035890567318403178733827413267691839793925088132406835322193805593717691990450754903597534898311334292605040560126738646654637775094512883570765432827244348599607019471180677818621037096335678597110814657083356488738449449842833293204231133369456766228373634484378245677625405128150522932574101655471110233429068255377986542003215799654318215333514234853044158722866226890890271959460238559747756540841604837246250087828005257850091848669338178925245483431845120090218243038804979546605757013759487940327139578131454991243892078408850060984929254270674167976237387405930188234217901020654649818351148312980304542099322201497521253873080173768486540104784574854959474688176207542973160829573065305574411263228409089920714870880498685970338071172945787130218032926450637446027926473609834890174850967245021391922326681542243798106013531058279263078559484104885087238046518630975604894424825938113921846274623726342739762929071052502939744202577305788283808755416561957715434481796215306725672024448440674962440994333157652163349633904819187016551412477626727773047661363898143881374633139786311709747246909148170705503104225489203227945435257342497960117853556587192980795101680527275306879149708225333825215562016523921187168405264130679135997935936716958688690060777214265477684995129797560855715125829293609869078184672870182478924331160246456117367906175337076933115628913325917251550770200880656015784854512937307143708059595859669144396584377396742199556461689898443895599798122585370220939299412324983867797420864332333566381289628436976686701663256810866940809449169401961063657561290276636688810112358778098769178068355262411970737152906674523712917060109384756956807439952491934647080967399665943362261753439325414440498834377365895232434385141980468444072170266988893691213663383791594785803897496106063704674415137889042621198834525648101733208363532034610144610015528671860527312494209611249058976905121032860382338741156859481187455107251666578705758216376701509105702687168214766530907625311322199578821767561931046678775099131966640748855881910936707851383620394000718250849086384850558530866103007045263808143937398847507605422425747006589378616091644289994887336387967019677589059851761000391241167544475321471382864052517581770167314925584498334846654874332613213397102745038880737575178646645442786966347465402645846883325168413864220206598073277845920855285139522060311641347470087076132012199984895962291298696798358797803005263761308011402796391089805426552729671051030834675747795476497117396894094961424448246166146371259820742715157631875451112453297064077364407729063109034989194780731842266192474505252521992538676147337455003985839835155970300718469873636956836570019330978111387176141805823561285799703095825319767196185945642439494814103290143663687435595403372747905503030903097957094621617930301653805973680293918742848479213008372900638029814226270419795522527046965476493049619695988979402241670190062348403322579622871812514276594125497407305061825199549772845498483631102006653888525942459390602370987424676136079903623349282588862274590592326312999587472040591546274654860865708606522034783610332176369037250876332794991255732139542830206732404094161442651230989018856082980997745392386533548403384499812389901549464692573571148866368712904015692976917487508718884064533010003839983202169546504927152168808276919698479491112258962119118755526667535138356125074554953810607642288272306088697339572395943751963394289563770849732572099202229568737438230519370968143050587925686168379075404527731032657546467736992442486497843531933873791429126296468586968566672569135868628698102009935148329622100437175617525573265296482814731087055185075524126396458935591996869275289392896979163476220985983875541966509454339634017351032356010746742200419327017992585379058339478046053443928372229023716264360789905645017063655753695659200851949995521529887996928706638198673640784412357575530775595392388483512263296961565459744091042810098032210950305517880163133920259705242995554020484017223530241098415223540697513181228090881495386584049087413127305161863295569958298150781212504508205473241479443885232081116230684483464105799483909216388571638368605372070734073970566384139573002469067708079387767525628558966920429521420461868541791811194860943321121263758579409721349257868139483281566779103092217041520525820450758788810652183868980419633007303409222605510901436506651664197897867621636267382262284118515678683955731536852349600676512514928859441039641628290727245016608815052637805123442913359509345156156712238533369821648335628560016859031283488652995090251822323410503736121673528547611816139475094479087230636652096688616066535222481222706417462746884798649465896151762709750374524517980547022978738194099782575340318175281032484830682875638742971152209466591680652700580403685856312663996043867928626618890707408923986654776185492005232613191671300555804210426348562031142509765278685982141663697064212653509500652936776923757707804215149052166773803373998668811813297711074373622333169543457432521396756191904960613043742173401643079617688998825073617927595221982192971606854963807013855379140964077296771149525262642267252091753415467630381776502487250236006097470438934323619698824166360055798723889480849695281788416310492718371403994440888917663585876242714397449871059832363157804768831067757835578635148208049120271911171891862454749185786672849160052679081226322667108845775214176905749913369974354443693378619015224276028309609556358571715059291886889165710891647370493711712058862767824149752149350338960116918755173805591182076999788523558818633602351624019187879244433471126082933836791489722885359570679787718283705919516670761877312035562990657175985911996629640506884399687635792089914756728449686909110375876074973685990284586208525526602665956512328981553510666104333417368878808152582601005394604270760176197243530820592856967232113383892067167431860313371945645555192016021547901682895709250046434007005904403073770365083842580763252362646722815811785440229375912381849481048656682409062781146403388092462965679782816330682615383698960929923301707852486043925632555252852984221260124752159720050269525651116270969602209699807846554792536001989460140790927567569302882359844844254985075838359628730821743616623102956681778496156561239868734449256681480675892100251484009288803003788619687268952430244648892786392855808889028011092344359665972038238934554442875768599476614880463179746241787996617137567813684847303019396107475831029334007195400410016837451413046746159273890542462387953712731222312712464489440275400631553075463891326654039758647364392503839149906234108976572499354270461825286512046438387429865160807417007324186613956109861843975917387951152674405928141967601611041466990012246415413414240194962986160264095666733542036429754224547328095605585986922270816590147520433871149049613782554206028485959357261470214373420054847703752377274734284647098214878763928483288447166205730595419529026225666816727827793188436927795943150631242502889936363634630488058517939466008758743156686327801033438486256023347111247105732092070937873736310672130920076472830494316467374637216757364892767849607858906020249958983855805360372677793462304035968275888741091047011891951874072924683545076682401858540227360783425054719631481081273795938933697334791563445761850813228219913727796791174438860547708428086351449632192283861675681312977400565707252376425295263742334187295361294127913448997736941039812998615553209529941121882461664173980454677279966037671744805798021321193448802710520980200391728343942734646068616669243618027908975532976959219893368166829047759244953681488746818542181447157833115907764723497116919549974307694017095125928069367817544294888524447228871007331819942049766025378849687709024046573268263292999440458549230152158837097089015309938166660357679853242708394897739575966074620661361607260916942937494707816942657293250626130415388369969990710205569984235305382830129980142314647559969727297455443097602756195124480556671126735846344314954101312293953551499756091597518540341244198169363766629146903029988544223771438486815646116850410468137102231568564880343193880578916079428390285645680115670340754839763373353950861755409535757678161551356488171395094882684679687939883136006833903748780266822680378527453305634129712379023367267222033460658521856392917506404073762302892642544812421176925649867200117819859823898449260623900803075596638088612147907340122387487388433794345221275829617914149285721442127214568296800140460221768638572228958360385364173759918263530727916060077773787903148205463523417026890430271304216118110625671324349464188878152834111315954417288730435790044706982645025764645783113790721460961067362432673696058925651771085037568538760920459848804557242988002860593669953293746354236611765579916482059019492170816891076603274491420540587217282064609499409170744316089908214828967169412676708386770602462292766854030749997950008412413291633194665751713271117940315036659305490195055757095153012362290553941967024098214451971163772430252947905458712883437541027799790664958167457401338926533920592670135405699765379575494715764993157495444422729843546299152354310174209872350930614998090999238002462858825791281451573576285194842856078578578052559928126357099737275734292832593351413977481289295210877868743047557898936121818370274496749641059515835816036312256224298916917273252873976146622925397101553126237820205240569992800441927217997507845977677377927361640986856410749537393176946711241064539377835126680767429377652953211173548191964579299305620878377867769634653733168942169001516122469132594101601799463377184620453333342456551940665168318118450072689911325764417612953799350278805390134344533042337755155913225135593213789917622136753420230148746861407715959167297523991082525690023460122016494428651165500632888367752698929996484372315684096326046947622851695794587782423534379647112130479192165989069036675270027153273651288011925654930277309476400633598896413831653626508105780866627715206402014218334126512633701639308527716981631169209654681498154684201633214829904863187513194024475936646949798513112678114981382848875649118733403951634817290632572328274627631216778328429700335057874784984500376493539387179809592151558872793490925299598567665990376154531021049941086405539922420854253770978525555007833738858042977849645111232497137141228407694323318359042309656006256718060934162067994330851234143905281671978334646997454294205754853662621641353865821056134174495121932896744177953572489570088031908441913247415314198877328535479473048141937226976432644475496819769650844271004265341786756338416590300680342555427988935582224352975469885672334560154659472063107022201421042531313797948715150496113891285326296541480401816227304610805827168543739464935995060458403042123095156324800573167999378626006917355241631631572732847987167994936848635258711755879543730680795336282915907371683451161123252789716997202491791738392397904675345420349886434131375475473986560283397735665772605441869480477107918703536071199744666540335003609174282166981668437237543217751119793060462009223975438616305267555977611227756256082130100274109290171731505498038919935327866475698599605014602904436843347933099378144050364046813575942541940425295495526737006702219949723072969271922213691033996344723538283991617018905333901174417373291412394129406125379023174559509812011528051583502362783419216706055369846328380884371361192480398130322977919602891193917687259448939822234706631667829781096290770440949820816731355674912111367074298354057787681002290875295117329209329850240752702246462112130299930078212396661576636749656494941245069845357709546003218506319626059356152308130798799876422357174617956618700115638868536886049209672300721004029924041103953546029544062588588061756266135505286581265545702399027653805955580981013655256973406315124012852527660775838009103444316220490176627587492853552483547111601478296911856876905338492140059061020142472527216549373370939668129082551349880946491906477390338382009538575528392782468266960642140893548373476114524834475113032214822653974008814023537300989570733502503694086397766871741975075479696971796961020044262537848007769054863996587459682429144320230493820300187073471311073266453729108917016296707422752196889609763355709672104973780034784017053177057331428564234717404939001841202438453016731890331876353581194367013001352118749556142803689413272377887671488308761365154968656607374685049025642120048299596442526501215279079917167358316146143871982151427229183640205551316491965095266757716926747743760529977480605688467383899022243369363458535740206712012445067925121019626707372820077970742908289585128607340967335673669991572191963262357496304304773054277538512768309809041781942867139640827142486625129342692616311686644147796511513427539488078668946629194815535854543440340870521559546184969803386695153732745852950053903996916506221156954508964666064717557873757813652545703972638939622257360153113269208498859402575496995782929769463725706918996992720117243002726882438084795348731687744269292526692959945798646370896466663806088464735895409928118586766607150896381117116015095208303980636727340670359640179316742793395585780388652462664508808984577185923272895606804296051862710161055490227820846198044446176084117837251751292449215907086037834916200883752005551942802026578508814564061352365928336632630489925382064850082288850610660431141404148320515128663626548704810948919061980409347081827106908644897728943698624155241498343726703636494199855801117656690369223381960754921536234450083984106640416611198047917929800232098742256268761729270692852755093735346140548002738231506381889474154293261378493439596391416870502820427134024205345933984149914304764768846036799362573733717047663047380270088262852451153687741732114922207142504063302300320929932439250568481816710009417868756981382443516298378427845830904669730210791781201644735437864337012632180355716523143281963666294140426680593234528297155218683944837594277682871954583633051466036118329095726787954621002166715639293111562317778240156906785447471243472731895366776695405757842151758575929603665117224443648543917495050409790789220759104177197343144701849578297451529706871331384595186353018067760696409087496365286018706564797727100663046372056609371126309086863225473412500844154371615004556900771634415374021763634066747569252852552456849840194319843145974004019177688668103850139413597092850383326208506791902671076975358591519889341496066716053150081352111319587267498223716911520621227360734558228109135612997556677250184248463286287441504222850401897320467290560806207446682853085065925792600070005264351269799501362014129095398911818224787121902698945830058257953411314667968064839666345068738330865309846221928743874506204429848198827986350902486792033442460781030434377175593346958654792811854533434875564615536760942405463700872120036005837920613457492843814917590511561404948330492611383788409984504851541803116659849165837066829153275501413754337447086768863536657415829516579695507857089942585639572811749572494584953398156765725848126782210769690682278204132365175964630792438473947554181615397277455519673067387576297181837537953616307254279729514522585652100000973268477307539388940458163832640139683011273907310948313876846848665551928536965237931438995946953322917311412028245117593525864085099465989855568948380604443391876397289448850330066475556279208032483922439960299260247727315274557362214801584065603330989024244930241918199305249988247246921397562444698119859187272578234593367277676543224488521586673576446528734710951252895957157075256406407009685748514784065643695609437274589627312333198817885441775682730828359463304238412779741924175621863646062320592570789717363611256788914102921529023313759657193188463312318859114526570393863490513449965883185723073601946776463259256689258843512873894530713557030465845983226539928646480104142183299037728238918499538812462393967282690635976055324881095577408494123354545013201063836856865805335498326786775774886978362474072904186623678521806488027978950586891951401285940584030125162745301939070973077182113591223366871775356750027122992210605202102877018720453196960996121974740094239322695638686265667577143886148345751605923431764849910608188533515046908954587768159194802492804354142658291322175377171065711545861535999978139418678723688359356112371518844019935684876724113210600463311070793776480285765533599577615282848333079726550411896370415831475663573028427361097924439857295317190052787558966707780939353661454290704700219749705624262868721092355351111437450549698708298717890067497974939483923047736545926296073411456812055719029995668116879525061061029479447163694417978325810087286242157538772991625751660421021152414433827185532438552382606794456425808944209095871864040853700792600669078650065897941589777370097815275544664495038797604499271505695947436758723793333671457763111942870499322007482994601411148445044061759915695000974457523670123724355631925789575777924294031490369408970199539944412475722551135746377237998465459419426390100418829649120602937835828385761958402543398759914765302994586588260376583631250191657424888005453709233245678120722599508025185589704039857712661682947969728116840101180343663882839452879747863826935967779372166297410408806681394599191821714254064079706677652205255262079160980320653453700053497548690968716663083288365111912337928064636529258536378683305086424392571539506812456735189180116850516406472789103680920784279240328473142911979219152768022899982144647226991319839184993964218411898418854970054030738636964402036279055775134084797742982848336507183188492306344759841334813339441949893118708000069177373722798302473389316018845782407181255443078047184958254098129958833316413133214679279581585570719384948159303266935681449137739614930769841348499364628853034982050651972287114688555218027032173496631224868739553876278400975480758884288041878038969916541498792137161740364856457200212813730779301499339139421627779072931138929751833256231670976633681828780944036974918206147198626758139342461308824680238899494166614912655837709325853889698699355469922768857443919142554926864628470331015636853406500114278731996225654049306748236701635464627406900952248651395572845193375480393966808816771945756191138057190118800337476354262970546025519556656002548511437196571980764227828603690258028264648713552666337346666988845112523074830973211008180513784275835424491967165254698597242734552895471710279201922159821765765245074001551115335986603956707673640263692535902734201314480492110004338547946567407035326798518569247464147699697625568943683837861139041310784029248280225491548734161642393676491802308475345441412299250936835908010517701307197549341897153525664020294619202514376923054594965134384061907717022968155233920422355751684239156826917230083150004170783355043038387788278614549425391284894562032171292763185516829631437619937070494614396214859532750873405280036885507770180216145138926627447724206908825389033655859961146872643952315606654564688219045741990192259730083396301234432296300604613119480428654831714357903390829831705811291290158542326426997296222896089398184401128975343040098770964953175595996647194818735359730143276652214912564304357465206523857977967024849796568997716660067634364130015098531353172617868193419731744139651282836592315754133671872729468583593867489755372618528583248882770124559749324850015543735393604870436693466227884417968232415487636365438864747174600318054470431201298079835302495743770561375035167963274790188256225137128372074808867407682527808517837219933921834032945653147749782009701667864587197245740971483563264994471294218235012801824972834387668912047715417460488462121831944503738994649752712569321395413391616180528184619630886325283514648795065313052815192597407248502744502004021608052001164171404255631094640886937168421186081366452070474031373228464388377546598841367988937829726650715358944516979051781102073291904444240415560441735228219315063406393785772997611930128532063338172366630802593977521333329801105343579214014105071856691022021013999652626052478808810363199350764853879514237377726204939140502998759194527086727602174334601554330291475974659229593605779700459521219978140494984579244123550149379426129664818121089259588872482102752527141844163411936671626377914623143356908215899023878742198559406355892690578190705731992693013570607084611610299176268366892089603355486728175479545399099748308802402803979342440484777714255646177028534157001355552346188667282064826207431628415931885117246059977660888095560085603462306622965732056385322311523500554749320944652917770812149029519149308096336904707294739529381290377633182806498944668117715372783674129285766280505289159262612133905063536543455827433406949692857955321628513381284768590328215668951707651626188713925751339884909681713925260478252777845920458830140673287857072435599083802732736427229175545246944205000262978794144756099147737168963578986599800768689860244298986570006660804574752014562310952988092810653771270501906592050298053103088755089241036513319236843572066882511976511268314377340323632633311617907859827563425370440971937931944387444002472102063971948192192806863967485998374627943242355874412375098888169146322650008668527538627430448962736270981116167760717434095408517569822935375646676450033715024327681848575709118584443826335099226383521961358965700088054465974517974973370556767070920015956402105735235674059748837910707883129294339809904549030261936782405750574479753023681424734410922062111213678421041388791975071002527920465797787581745517159677875189213045807883325631807637494695680327874140023084066308427550409731467052750677722643551636029118505116261580319548516108409651465584550036379968723844519489887036750374350560590127195450097299570433753763828748456825708772395861796043388209503731699740225924886170365769541780205526851735671917812019486626034109944062820285260838871926605185939022039044651906518343726308086348451745386145429794981719332037855260386115063853390518871575400433486524373567869050326173620255898862643659830961386900596975568766088736290407501764716449299111831370567872981915120934196718062730524209158016674493604862416958839111324701427031203884871994728827152193025042578573694715856068726606371338823710578943729294573106097486473579063867572188202263029932398277835435578927542265404668429273672657697611190453286249879409246645697671929679678958747473479349772566429897717630889971299059051238117439111432781767940128369500886875206383870765071474555343192040185964840806399439198599909979109904570631280696286667147785268023839726462918494454460031758862109957615757844812786031450638465637856302723274869140059196572437140459015068212101113470441843440183493095887649989909479842329099584604703758276919899093061854643633690745682791899816624018314232437054382941827234466859913670598640729895517556340110032741736936039604965428438721050564371937248991271356807335894063447279782696936514915236849959818357106781533162888466541456290096444534688951611126762853738982154516311981072492095123193058331361024794269123073572653243371095969313721016723034164823454801092729707608303038888811495057069179078883303517856049334519693653268369400457520895660278735962664793067585198874394606866997016849080838050368752008201154292277885190288527959585090907796635112128232373947779307679792408320078567379224913300805860203883542288244950370824353199220799454757933842372747940312305759501224704746108450174699048966891542541107560142146016659287984794475128794005644807911150440101626168419914822634806298055868848387176934888914120618906136666753206568025275603132027476492627369851767280392569789587874577408012026231933723800692882284001221212341098306972038809080788825762624888253422342398367795374960142025976372671225028541788202404963246357671746951503417373324559588570152381205272793648577384489004962638642267000593120137521515641140308459383344075911660530413305884519074236485963892996257961995795358733852734165478614542312760144254807689477919005319768510968280282943172030766913433129073401819763744365187544743310564548837678728200270377940319882387147260813211403547387132226843201011835582462503204759853901483744553870871683335052648554311370784015727101847164043918414672177387787597355000324759019607934810448271303245340517960005292684238010486050995335350743036615357545873063075497372042183128734085167775332586020612721852308058801486980267450004025823532137128655158436883114222585444491482529189054622991744276934660581954635196227112210529400758795230554738596218437426000921884369706764558664555359014534889968156869262574820501374104062669541272703797914980896876865043171650654318900915891877199288739448011741533197143502040663774611143653020432707421159626549996838030259301532127438461548597704353974292414568148369123604478589654702757681610592461275270522091586086937814634705233082899755860817268644656263090571124289789271904872391383168894249210315289597687170195081097093811837347636566505021899373708051787929472046668810124110351350241239628450670988870204472065332849739333252644796141613413806270804139784598151983110989577479342979673841747713946613650887384240891721304188962590349956038726490229453113671628702703755711734604769057382551342703477556298048955846620911181691709782057908930596046194118338482571785309701204699195126536130531668524099945078038672341096648138162712092016910946325022064830209045303714135388265558972364236935489561186036130407146668910893422861555770215176867948338890242839047059672803699317256882923663211333036389749298224622397025176356296718131299234234953705953262674084397881371428649217316581736035870863473142823037447780299770219726981731327223199164928590738584755683757390585616608036022384889045490194277854304761762663545946836257011332367604919333827493611837311011139524938032602926837927818674235747593071549102946000860078908382529600973118940307136127608978655482081130441425846042507860397546253014734050130901156635169780964865912736648184819388023981946846280784655630366726912834269624291583086033683794480744944665873215337552788578443889369738781031058731932261143829140131538364442838926672366176687479046947369451990981107554142807465162775562299472266628909007176526578939220266657948660418526405882662886297016163579420488022804422848427730363360987941142971194211224760585657668786340886732028029730173095870257630711333228044135013127526975903103859094669131670001047741245672785519084952589858862397684122502737183207660989825257444181047996495359643379747729030909623396769871916407499845030272723817959758769326605992896025716598319848123408387487337229153404068907817802445061479953849320928126181687402803829455596404537366686577714351455872295711589917749176613125141943766692360648257611171988099437876986195593072887066571876478087602941251340585546638796556542309891868980452556818692645806302183893870233010790786356321809258163937376634359243393896052600054416267152415601072231060977826092299925227621253637847058467793495971925394317168069746477597025036780650134031224014630089024607346315331764065510983894924471690247155834073938655982779651790374314137799151920020955921232108967922667452659004699728973992884906380012977207580494470626165828015010825276137914769115574687912635571411675227319129410049945285246521281701540332007912244383166479666050938755345536462809450930246247269931603233657867680774300962261592123322352688227050222138072051227588947767829389847484960064019794877568063147351171064689820188655238830070101799602903415690764159096295885156813129787357659646308084829341713959393278621433195025764867936584748901624722790997307416889503916676728025474756810163983473420705841313909381106807836368851037752703982321770509107531747148268585053786797860289595802558389323857733494486675039447159281603680600029389303437445633833053361414114022449440035391587095468000210822364041140011340423356029996156997937268998246709281962018880919250135534668377528870726169218190029395766811777906644440972090143843839806660294305979623550471488191444945892727620445239579620242515837718100076579454493800003752037048883883074219568195906686599804778258476057836532908059073980024953728252825274075694199264644455471201743548114939570877682115524588325258572597319812050637286668770720746894920445229432740229952471761759760154455236053438391969601884732138392124265866002580751658823010933814383566387026620066648445285900259817412652693830086851966885362127928239816594884271803173777343894209470150636042281075324960485758994503081526965915833976751936578403197975806582030205462230111892526945938490321467532065113509274566850062090917646102087500345274687363836314156185410053603129133794966972036711983091405633960364764362011158544943066323605261910236153692359642702891412307673753934446067009236620250754402742046876395692751519277996852575998074077549430794101748795746234505981880779157986841341762818568409215987183948613638928598476690883318202764655650997300774716762592648318728383714287888593139171980647569526597070501568419680251513365809419399123937873776411756712856630158083179683883707226832002947420820202372589340954332700799337682277605252615591969544146342961135924453505747716940230503302326942936689476635262313427791705805074946228194959916598475655234584134345126772771022330721261464385332430003567785443540004468344208403762124742264014037147478127434015663793915436135611265093812672891803319513131868474982205698220094643889122177869037553227404595566757426362719569490618743499646612678828395994501570500045772193073769014448494434571710809711505458867649354421192168002286763660800473156929632791194971922169567733188965050281440552990330920702170910184105864825480408871679642054566581689579716660555883435809803552466030987107832372677020648083123208465098783708465964230250585877588130457096317808465996008692096421921041748839033984855046192774567109955610459882948814385377807774016707728698848301979830289675684306441648381979444445278146111336757906372543779878090507590115184155029132272161909601314171459719355226697268738884998255454324033854698235473941320286933947029577522224212569339014539895877788787960588155283890198556617185633487459184112652913494073371910445044480150530416850000320186972431005480255956997621760900054771559517616856950543659662561702604550964195091595663013501316570199512972086180670873152958987116938135778929833324819526621294708497919710835939108662649978815366485163417001130086111796074738060568001665722914454772256514212446148059465435260878749061522594599077104513175024430448751589461800953426873645296376516800309330687800011473486084334257061094305349923016588948018360291121834782189557511315574671673549303101161892602980309633985080213316336197384152632964895697450745332646978994941473930893778318170482514797843722877270611291284316732299088618052554948217229991132088388807375343013633387165750893125293626747887121846476994080663251125895647672593427724505529121370684736535036840072177233661258843629251671347599264782889434419407698258308527995225405172571445508089708604966830644835149468592022759532961344181319874726078137101076792788388258673002958320758606542897621794597996653153198041905271459048455214196417570823832183770813488109605303810459023809916261117309553751394984759155621935151181508321858566791152766035640794513604168940820115283198181175835582150383131023729965081026833835354764785958572386699657014196101577812758011068231826069916274268447006219611549297870384693748633147067984336407122325227009825637448385920120444820732580531275384266394579930040084221747200208385387709918646668238698379815291437309164327769811749251923112880776378729886209150731735529769081439215314713367355209161193954326744803734164136407738093292660515677875769065985046451341176806604679724005300051005805192873095734132279857219970038344516366600673675031804663479654602470140045617274759976646291190976746696307992477933826999855362452802475204968515826420866587800897689014243140750023309670336246014822120907601410559800987893146910045543076646662050244083531895081364584662876585021818506994999283626453704401954022048834799471051803925714382318491686629161156095917571897776959339141848209894547148822486029958810958506142747166683762991278873725263340877836202698339457060495360483476587968240230857039414394819300110810542440418736721300749268047060705371673630070077129446129290620395842087582316553928498897410648048773432592262616287847052719249560201567182700721723522923847518633089258630098182766424939135746570045034247370042855892767364828580489668126459342828095206848633050973329892141845542659151581490402916795297071865743554596986599085553009779754617549644330718135041439912629345414734755867287282519730666638411864047185990744104209914103889230892654485961287404918948963531650714631462982357871177102800293216176031453014477869011405721775904401543431852539654595473580379832395664093334630594648616775983896989824341345096151461287468636083989908644488761105935278858533323631942128568139951744630425407493856115314053961459373516099772229256983340666860808590914301478862743348717112081251677663680628334173227338110576075197562310579209652646024260215209640339939686309865318028452391186308013116823890922158179250707265592315035118407016493737794701844021680972738373981369966010067585156408181818998100053918524495873315910018591509669662532065516129184240907878678406662836331291413429480968336027859975191113162931733958274050171380424601205117552671615205138169481618479300957332675751414642582129776812472807182158258080694703870337036444483236063544328839250896774979120009650983746087441456016241156473634997429450357335808514778437455619076560074576710904941454344199604702618571596702423985474097155570621881947112177559035439621469852703738288406285908066692543810179959707290616310488262957068058546193993635636366233748355219422327855093238069334891975471288732544048450019999527149067108803296770278572293086075455635495862759614066471460279218641772086232037980829781093052654986583350372546611092257915035756667982030637163036025969937126614772780373883583914689811870833434284559565178619971888990680527957610796121710309138566399079064701946638275606466156020233004706837987261045653156675339861527329210309076795105744978243933459435048871893873984230871070894002333896996292241499192585308570076245702714938814603255957575227275003650457283327271697072389034274318883763071114152787363296753391598601791001393803374795625071252543365035785914063666763763491658075656116835938010458266555767033665457121396960143033026686630150177007412331886041650452282499731283747283514049846437441890611437831386272507115428859558095776912060457308332628007170649915226677071357018597440179283277676086397967165977687601848511326594181083146668935362812833695367417742585161468019503277279782285272241729388646699384921068878373551743074246351603701472884438899774426341746215805746097548909543514209817644982089576517683963186732099911669609070877228552601359544923589326601393405557833822104670607799962785017471088996769848600426120887834962078907358806352748834148823483934890427258411657634008906799461895869205469516282672027315379061807381235494798158017776196058871143393408718622921569295330984107849831181174394628312144444608406718762427674531826417872924679707027453143207949976866908992002595570114157189053947442190490822974972943980140864113322177652633020086519643272679287445414375282810422388244542650912414834787882997733478149314440786153206389823822109755940841200078281855057432240063780863953799334945543180404864917465887490352641932295131672798859600072382306569584159149842903746113909486208732332260179155578170952507792678063455023236124711588330990609243408638948590155067334478585156369477087664780424482480616825439562808424767253065036382681490895094809878903637719069588073163399895709985308160042737242023511884155494603122514544128298096377389969148399508256528788307943240329558764295575197418433264954517568459019342553378525688601700715898418303519732873693362694643129256061939262151194018562127761855249576406014712006165633807883434758672431005637529950547177761320350544008282082729748500430482263567866480065999993051495519903281790552371935655959269405798341536115322328950221690363810241742246014810625378704420084519216822831172544503236039774528945133115635762938191264870739461048614992710432664058093730596360942441071702891635380131257092395865410589322152645047204066123609847119804629575972867969717798977072087446217150468334190359749704825691048475822178650162111200564229988713976858527518111750918361320158718822031184824733608592149813435691554269519480624594989428593604370028822608059305885146827559673915208683505279180284659988502238118294235162840096481624640895080535051127313884988950980150984858238437868003465687178635743526422297939397651547897269179712030094913355066738217643521135781756771298065951621674250174575458212100648912399090855810388693893925918757379740091643942612442755604954916066506635321754358159725419705219827648492531449688835897402948800958513527263698572120460758869305343617245247370424158707969540606102672635520140174564961759832577837075821188233797499717556701294445374935613353131761775105536648296819249146400092129972340329163826346504230579973290370322592697937763125973961908724641260216664223611860931274586280539433244453633892118852356341287565630534694174501816900815824866583457370816778294439718410740633613904791573032216357189808809403506076269073517505702773220125618407355617498892606129628391714329752717080658641690300741822111117433514167838310328626414113487892334141893563698977751476993599547400502499802960107520938844648480603757662694587910306577162003954994335643537502423929304394685279753378042035398993167274482201168914643551808744794693170977316358232279551667090895645350604883049069784871810880900901829462533251648301622729413469671780907699835325638405808120077192027937170318028826577109504310614380373843419659891223176959232990931188555745669999722232948235630148626345939919279126593490600693845350236547752194014818250762128755410717919309914365175788096680934278726063757253118473964431345857574543312070286465995760457933095479299266695867323911476080219690552609064972215573706034037668436019422050518421001183831204608903819158285256237123416097716130379965216903621473080171252076719719216304815827607176305777705859061789888230989995722554899814225185577849096005288870475369982032414937819564080244303386095395263040972487775972116848447641226806676683971529080945873762501638173102640663024637659451425405952351326535006499369942567848322244571532318947768906670680106577873540020516626204761293099920061547271101847969151176403764350244996142253074417341711627850604012385243514114642752984020285535705770618391002507358854224607743407839524827926219538801376458450772109692424412425745607242381047642050749948624762247864288981250944730535577742050021549941660976878339987234239020583731141852544071712127515887765245601419498902948859108642001430815203248161468426972305298815876984161742192371238791033920540337329697580253107852048460938705427974883243351796560824777895043603402219099728473877480236790668571596647168835850492896578100009704177578927718877855724161186705475382128611724716379860466871691614774712109769971528370897049702913469706937482486077844829753648320806662037029275014657029154467177021557692389916010939639517612252990350311479996844925174388982188690505084951065818506734077374678865997684375903656538159838557363621704618393509939071065167877907101675456135734510018628795350514022611743399479842327512669543721369946912332256275048622786747287074036009238263755655819401469417419125250001534131856469220607787632242874908196692828910096541859680530561589032762301365696640360657424560344207429081893685773871376307840428310100784511800564785328255190150339126756563184237953122210728324165527665830193982988866752715858128683303590178981754601398568625258845993590518261583503544335743655639738608496069448994433371444805964897136809195418375239180093736549074724032570926617625401925943962312430933493191165048470022978826826898910335755996143939497373807805549001770914076252005715521773422916684453191075251615118856980875079712943783913008249641157658812285527950215277203532688749736483782394605291901891552766311007037549989775599995346597605984865989904959029920776454806437482107327321832294828768711063202069274950309672949381683261365847824650799021151431022733988738214163770846308478617145946335089567039678363946446063321168571448769836030419970032312394966263053247148206556471906022751793687254545589334932219786738877707350036641825183926638140348710982016137675659107977840254763658416913561234385775268275254768899333737565784464409146644642723647734031923180931380496930496052776017603119346159230084249660771854908107898984851749649496227136567902021473937776646063730714255446330170340573590409926368981948801449266878572391966105351209717034471735116318439729244842027583052599168874981103381530777778432807159192310333918913857363520312037336769922028717167428196067330781807113630721285696569589729637376923557420440223625801899672231591267852943382553690558117868303700821929374264842729056257844607747254244745003288244850377988332071041861763099325864890389011991171035391170093326695843403345208822593411017756732555995839971128349774678732021830059545580826245041308932415065809704768973180545000602394476568281973718672276442782843740063378964587511409080833921208309886261780446976130967267981121641639859320935374941926532904670030927788134859466908854266903890409653904016589410881877802738532640240310939874239194588686459183212978641340420948193347821873243786297524091959910916247703232697241695242949842325770786487169621816724929345685877740972071964627933221631638256828466588124101525328837734632458761818125177708705144859241435849477994348720787788136991271423777503097654306952640258670589753519128318851850732882075146819463553527405879219044074119744737353787295800508721261976994949265699505161607178344941740534705773619512143916373264611356585643671236166660978683623443070720154337961894597754328784342209460481031576019715581913285023464109543638960315451902210237659949334179509438284447699633392099556851245263670845820806384213249588761426838479303294544234925097462551550136985212481961911873262292622475454237743629502480861151551586459518359199363403751017940002169307527140739477405558540425982135894078293990762384324001666394886950740179161456453344958974769535391646268559542401670662258441892977894165278782897820523466255375135014216716025060906233201121767861019745248300338396607617911249252920490832551321554846036082972279475700497315485856572783452090718162786573902393551959305296852546190584873284926733988588734334373203532901183382681914442544817335572314653728894978938787495763504043227268093641203700090739882925143444616397681877503311275485873374635948675452485215386255336256450871940059100186409445454895937470685907290784378541698609988329469155511267577772041281189605526306003973738164491080892507987183299889667732707462069585805424416010320563456204856854876513079736869740855731619788344551804233457867393874462241824490928643311867483326906569171997877882971102162940557914090064593392064955554674229518023001779449206585888114891472610176622370440464334033915935100435503502354722556238042266351491921069052122831906978956585981785727579519602298006329526428348266938279041932436512083162694531098805804081909265537983305925499284139868570176695781341115147891232931024613886401189380673225312693610096035830418820917705050572972661867763996008765699424308050886827206002829592508531294749683942083169240069932949327008353105322626076091710011701355645885047997774553169799355454293163452383708034002537244907456241330611862771679320718569491972330380348055437687270212880035304211157673986782143618078222768349126004750383216456129640234717296604723376089967942175347734802456278844764212277136039607622481431326091373562916026042162371996619145869205600739457234497760889448475763586784976906600355122417961653632501014882614666417930467549646621148378338305738536905196573295556481283093985240888373984687628037963996502376431164926429412104618083190110356483471747562523646833907757718232813688925720601287079568102209675259942669021184694886407533202016289690066894612859873012271029900247593725053993018142491790012593472610446312513902811572926111330074000774807038584118845872508395218208552060015679747089854070423380028245540970475124963545853543846393224640149066579837085188801530214854335808160599739130126176145104716189309116301804016781390339258261502084962749948367303967566670709819119608764078697409573709053773602813466755001337973822271162292554508897997538854642854906714961754562848833082251379550163086434665350205201365187456393892899161531519905398873917640945960671621085540299168151244800105481116953089815710299850138965054233064684021133714253031759685970234355702809333692418944882531345841443322572798617558619336930694515758180214892482851660013958133075171223300210454249017009962981060425254557248453528785008043195301374688481516026527305170241594800655154222038821742067035389685871147754931075650560749545984262338801210233374821906874824456663081731505382246809019199147074690105131213132904240289552121306457663191159279389353996152386652506421000703313775221786026565767900806481059279920366695274117052792334233124710264369601403010622938464937555859067114177819776031794277779631255325911907634575538582148904668537237706023471037481098167417674018566439965271875085152959127212031186567043487955199641714687668558915909389633707773541370609600295882575095101288713667251377178946180861377643933730603852805525821347797221966384234220019905727217530191533092578850992012957610860141917386937217693476396517796834327224724823151939245240460222773203281095096528218964742920981464875970413347966130085069957493507903509068243703253552319215568300648915854685990906469404361600455480593240472970196785230568271680967392348269638689951696760849648941576629908625338601644001459279256123951190962070612825585528374004669744618155788915825116252560176483574251451197697995429867589260245564410642188689578202751403632173719458279684932048778295209452175429623814524864948070543126106643799083168399045895457827150067084487867046350435539067378064508594831781496717745781475309412003745701849021435749310050284325114271424846324825587913288446476990733196415458331175175894497498592283978454464031654264027135758366551675780311457530182045267662647649174260049234422747619876588735434262475558147903734016926126465475883353179534017531104043035983848841852882743176177903266119770551922967006502043768442270294581573684462613615984821809406859671190628706141511043581822820896122421205257866481581490950788260004759573582806902654820278615582595268589012886214740721093502846051135172125950021645293916904918237060235956522486618728292223034640073240915198632407139193878919517932231635472431510397460114515755957833494489968899720455258568899785059766112518883783909810691742542738758151655705274012711252734992229097352957882110633882279952023491870508792439993358837874293661942130288315067621063199591468042255769553909734867020806841623052710536489811272955244665827560324915478842176065837272178672105018110827349579015423022014499955423757553396488345132660521113386468469773101795437138293529018966291763040599727245115119706777029983301628647927329691609903651852723248516031510960964047925331091034815845365577851241449969685432006583586071389927585687100141578011406585550392067065350087794646135573449632181896681332651393333011143931528105646619744879614714672754644122007726802351790328820841768182275307734491433990172072945850105350177176618810664088037282810375967254334294111912481680321302069577374569602604384251323946484389677222255987108075023797979061698364450869223834903080703007356603180131347958851849778693495197242210261250149591146382860985705675185706169226729263623150305683898730435611895214867489439369299585024901984367802740058220060015968586279664451326159490606564606491659728356733785544102184472972916794356549683056280539872883374139252120536488254246932317666144828362312212676223928308144923414818493840053572104839311198673964970558966336847476025237965158617374504236979978045800430016943797721392413139252161920330384212035954050941725850233748083695498502068993338735705670182409692422705785580330926610272444943636836092194163409577808245968118825479695069764544881967012435483417720354982697359978961781721126829432088060871704856362916957340213476438064547201787531212291705270293513746254235421795084578631318529753069950038883420351948233585552038414954803363187290694444768416812556413573594701978549274390777893778821767391001679283410065059336617013709151501038551455471544063121727901340122941725080118939622986047995414470749665952974541340195012742889625917630748002647690295797618403026549433405347002517213605559259825624794495470842249085247228859486873442593871802746480238698543236967450411812620222056665853315102168848358156477235158316107377290803530290379629378900401055065136655543771553356862472007492326144166510681229233203574064330887529176159836742974882437284416715025007208299614416893523634303325397698657314023085934819770756595150883711127821238004564121004688879474744577302335733632403379576208839374912967687384509261575448765235221614004557693755873213073429032748347916053654531704868073014333541920544229719522048023894866493764610532867051201965570417489960183026807436373975333586312385515164657324005267227388151692494492728941273146108989640631630089885294909972477798137604708288238583357008680166103960147427741349161387642889161762111239911740864187719087537622599712988527420264014380543804685931905851378646493473794727073467625563878510312008302252189973839819391811077404554286068272282944197398830623696820037084396806538292848875917580263206796091744587518421284116084628230155194621721768246980455365677691936417665738271454579878950294786063235109741286441217108967920544576625064048139714034016056484277745227270433668899691391551617895682916247413224777656662285234428467140570721998754218188144613725261212843969990943542006101815655095440487703403564524480527441279494736439377602943102239604255040974714248580612695388753381962335828928402099998300321006404678369587388791041095241051185043064523608703633919793558972949661406479924769278252953461064781461007657239509138897124429066703165818115394749865242142568031929939433480717092889547377545333817792565237193685232837059422527297414351384503289856930501906618336270383426066569151883882522642744596271284643914254575889655231533352911494173378402237582337631021284406985789545967399108664271108011181417215873879084610512518436752728232000237313543184145189985329697244955795297182924142875229885240352117099809266699579656520871037145829803159624313983015997801127123563332723602541109309350035362904583908197376878227161559083598131836227926261050549533188882733495308075150350781358772205466760689100976299946670960371905987509563901085626505816051193331548837562036467060007885305716387349577022455773368055643371106374910426603091714233161538304680582747823907644756341082492650647380859304123144567066823534553475924631313685085662307168561583233122346843107435882382314342537253515101834640678105822354476078571156887641315731455545754538626521831508476486131348762123431687202851673866674989131419123432043877707952166342060828997975248044618504588033356468702679729564489101329940070459376372906308492312519812158880300694610239964289311228880364307515550359577466320294165057549296800952808065925504208106739270612078999063675707481536381883004760099680140133334928692737294209787603050511150500549780319881860254082014695285875379425287465840502230572761799006039573927959732774561433275146270572503206401838905030115717503141787084214748448634370460474410375599075012972745614028990856469548801946492899644785159586848592149570492965036425662940394469905870439946609257494965037211900102038124548778737014681858915062909583941770717301737085864167796521948012683073792652514162410217338291024171752623952322247427572643238650004036920934406384987318544295942856647522426781368252427967624400243013136413353711199047964656787447795234196850433743395099455045556048302966424121920927797718371228722443528840961723487214114660821521787713898781429550606002206841166072806541836052379304668147656501093796206447496775631340086068683945644132095874169940447016618974621068749907127576538950268648689601409883394363557325584108372556977922691273596022494765073822560036082453558299430422968432721102939708216130117492315861021777604298903216266279242017687482398528536024158128970878333837401065670876882095483837554073464190631204519852850908713453667354227423403042347220887649430147557341549538985961689519725526269049401281539457946771140619825993303861361050039802175286392648967256207165036335868356973329737962703909327594714176218201293786992962330461598585211560831824559765926637261689302838215099035061742699013141918230066137897669366757467520884004510112676890914999382685088647408197320295809592045035628959522365940562988742092555564269606289764912061254728827165353172373883038454619971289761604833917490130089926027486654534645936480956878079174380878989086351618939850071948525526518061381010000295512300224340186597535458707202566921331802176371889815244297801637730412874883170349749389272986560720330968925305646217925243105483847472999999990914971178458241610158938469725217095179581619644054794133412639645476888676358360483516031462999034111823569153452404971414031172116428728006561821723828180844350336584912662279352953297200943304274933838781288846589961013591677221610821918729787594037404804302066637113129183287464950009227464905273139357914074311509636441853143875210858653981844902455538589171399652514635855161680421023331172009512189882228993619751618685172234266676012801822950032043199027716882982868002550437520148337561472602992541836257659219216355264373125650323340825436447113197866235961417837787218662739401922901986529526066227747119109825755807061046369093841314933897075901805242845709987996675249148084725388622010875110250843516233639800208928582513718449301646506598315791169954718568332281814237222816449944310803784656397861190130930104213091166209827793245024266248332662976257997091135808959606413058211849795189668013965098460494825353598569107938373729711650380350515943078899275657184213778766577645612281036078203519170264956345348386610403522296480165962135454502369950913310099935386789788599510412939826271012992186336038334319835521705348694728734653952857041717387753520666168824350265718614835973280682828424730182191106479633862031644391807732821432390216810242812966722869478197784368483275455021499331439153013733373079527539029070747413374339472839901066340341633617811260998373444826294662414951154480290722635422174404718811362401245843077163198544574017680388862753215609415312084899200302585511237297500881823870645435188420163636445159256830918443376059279749419952239705335230358021441681736550071314675299912072194057822648709935912870372319947220910852526314988802366081041475138959574643097634200515713269195942465007441029687414422854957628793720318330753839556670945736730371977119904397635471181218989776841147556826888949563388192567220817731772550226032884189082091610584750568008223322303380039650042521742777654866852097106168602913775394371512949457531631298992573962051878600469847633835103426482692640953409380096558526789379992006755599822824717911583684656060997869482532889195899038971300581280729056196806415939420654529740318544706600387168368591186790142724254523737756021229476421296886093290342890072233590252670190403126749957878368102045408789769525671385801281989218304072276985548996434384112521062624890231803663997525207217271026086306041198714156616140215309239197041452935016516941074637307322267805706960512585580806138831917836235008768588201545259461990409768107466966569215010296585052838920686009948024389457531866351306272530226894040318975721157833995596320013264742772903845903732317693056421840043713914632243908836298017602568638627366212193364602478512445831455969599255138061408772715504413219390743723492665547160764222408310742013489527096174131458378352494969007149387998464904118530362106846718235830019191904392885882644707859357579061575465655113151338519128238913830340641590851088597150915901877560307701628465034862041164787602846171195799561540376636652302477151860345499879523832752698443498052903807953939513565968474842503720717980344106014688877388185671785106346837219503502895820585622995262419297289000025242576490779374764050086821506190289061445539416736999891250549069605025586745285443873653432754246780323564929035859449069401693392982146105680911143082757195382718254701788122885823825523202973257318159410988596347886261586718606520239370665354389749040445694678023054076137267018604963159263238926270379182501772077797387045112394541247261004885531297982268784850303756286925965435985679439000174687739081417541505564307686569400469917870148216394661670988155824560306827064924048281938808950225177155855887691052824985762916730725150435814118114271098723624046379503563077671357425684304484797324808639665964158823863673218693930373762505145115365309806186830490606812213615575675772972969995616254089009894536172865035426177361371596860916909236254986183371109905789633436199600321557102212221693890805278170673588993176725907737639492250981880619852774315425288080431878785905531226283103639942899720346000670810941744385840439942574337101426783145866764691974644516154218690029175510750659567256768620810708510858991556687358229651568855801984931637735990912523948246442067174364431891126468805725447987710695844898211111383871586199211915602058330965853073369961569727925752236683656787346591290130944520867470436806598500224294049679904522046970690431407370797503307268646796558306338440482694194686857658463546329116331073439157077734227722144429671755443697605481780706786901628564969725435398208259642034904768729577046227899520016889154803688191101024464188561112985106866671133383251278484424059358061186351696261491004489775658549950412008504749158496339112572186865876177258766851818580693899948564278218787523828536691768571074627591537218098483825101970254678972793383113429931434735585732929775035624699140944430791622359593609252400439774235981750905958357933564811564900298157322453008369921620331536030818944346975369852252758263670513530594735940080086335488729138034746972524202386193907172049464372998213959118280870558121034535806559557604345007995863919901270450468573130555296298873233949069922150681834233803401923844632310993987355025715043655747451296212634292297987715182725183131034751580648203889510258767305733382033035098882796348421035873630195198081680981837020034007342821062125124878529735450215959785323851935551772166545591295509771166737305523470542083000785360014310490456019697345563059310828737227555621994538043732628239945702763309195233231363994830812662794326019394281261196041456468162887645462208810819554019981147992970609637296314945861244142392288960948638560988352594157202555573813451948698853752298002813115651686840556367105975774868486534049593790364705337547998484745904835583493309471378792770401552926682730033500024166923784992808854697761987868567260744309290983925111921155269374821359276215026431639057834226356592074231486605102308449421659949584566832501608955928467737707381230442108883725481427622403400008500006304042256980870090071069085062601771967508233186451248053140578548267606653791513843694535590719389034989410090070477051159436824136051394358026504535432444141471288143759800265998055537144884713189070641564105253928540282034282160851837649469846826122350508560459202904431439427995929190348578454629981820989522469662279025543864982688517127059194005904421930370542817156182295472764981728518497901327168995609654613976347606382639598246810273947911682598574334174544204419339715292466272745884635636221076751625449577873208174017290323912314765588155263696791563447264126315608608802058213790352191675031651383128715636586663093222231335499767997251689479978816010736975512293824939713926933786710066907938090361349661566528676047007879054988122605626793759498810017725983359462649674096514232596371320693426473249845651780968947493492784403717692244978236797497958440447812226863961639225306519962410928874535485776126833901097380642704818260230623830133566090318574683826235336747778321486932932922278493264788293086318435521264935292249878607591980717539154864970350906216964494457703155707868482018898258861208185481086163204967358883908197272878722940819426832761019075104724791754856705965466229451544681420849829905032453804990475819412132975297384577941806947843090462297931460116327504358115027871437959878398273101817667403435812573257750546090285987433472092740424431802482802057097338576206692313940188760519580099037246696654409760590012204029225427921632920998333307762680138604827407403254456960454945817006524767584413888116078577686141341895183792820863133448592393140736124739883631928873652878091521103409930739886087032272307686682680435441125910781524716801669532349752967436202595958624309365865707920351185710152397015713154403874793941960702389936412930992186812052482576864585940757640956848031002646214134264023270654801751364544553771103408893091212605642279058371842013035932419318733044283266228357675483299347435168495748897322621081632031256289966593213567696194848832138073689984004598093267080615669626830051109433760688120836943536794162028530143754060960225906639239627895895825873871695691263585072214190047414513060362638702457804160283870113319114130241919812803638519007412920749335898805748533742173167203854732039624477877472663106197284798445942717935910293558671389700749081309183679844723190306685529544480829534823803324004457259971596513520632319215891351849255064489757925325098734072322136652415185997794919911960577698126912154317209264342951307007813369880331321279872613455010978772744197821587806035324258961079384653774351609677015249105650318720705474992330499240562627226358968235691067147619440914707533610927507523833911382534596378094431280715820833185861366308253294241412647946149474203590025286046538592912113423783535023528726345866252773059345972695567848171035006736400969170207683513309917229226377112594461102612980261760154113552683369722628136038739823030521055497123867960599689851386996428110934982863994762082860547982019572057482688803743959293017210136963654305181824297638414272869941313430071999850775502252723373961017720152365517961067018440926874167669645662908367507373188560518450937974431490825749679141875655240240681858774298890112974715371741974182892244506538407423020810212237262682996680830396866832119692592534438292670439802343219791408021231069090351199623933950206011792415460224100083313298708339897151889531149336906924601496315275478864036285100901981514723788366119840754594662684225578728256009855101175012382566160815500247335976106805632122494851196463454614529987410650192892230098671893231328021441394217476023567294692561170530292280502550783574483478909098338887647223290431491077522633436226935837589247870426784254888714010331781775486418274093697051637303822567473327390366197809524454707092249333618283709339076197533736857622784517796150989257283729600730876642341114430812122004649142397725806524182074156201515478222508480018752419102183652195908613776123186582073066087974876278968903437449170544470958070999892247600835493869198774510945334275799508024747644187139538594333306885668768431540833669424809555453850637996944851296902603350917459920762551626100766435726762467314725405102322821786381305405531589533283178517132063863099998915517309173892285143304722117871126959110556297328803815301770314601072484769588699654580198815720634388472849572908019669603812087383361865519899908793785208414225295113006493401244509847555808242941352466408365537564462041328759156546290998755455588886668081759698540994661168825623009742623417246882133530758900253773741741739976404035786007329195828624146454641076410278686211213873587345034237300022995633236871536782570329978390831787495031227883202663919050246231784140666051986380724150842484656219741154870691727104618876233279551947747948832490438115630423853749231501654678108773664075228476667171342373585263884860216459918879409069177074087062485453949083456111887544152232799686362742349147954066669545287739022869595145802009255734908607413590795867161401072449789286492554996691417128805197321624089336978526408003395330716887171466110821181653542048569042796212530628723463798398302982438239583905654409854129399780905763002827732660015352534138771033809929483358464417279204035553979612974620618518053211870379181355459407276928175203083390826415412228177447852564332598560165782837196360906680126180672425487880843831016083145095269303713466257079874902964149918153336658808835648491658954423339934213351721812685087243178771950513056514226983181622834464228506467018670385915404429228454213775151652610175028505064843381735781037804345958395316684869346193778597079328979435384783399300116209661980694598616642046115061981982777002885794883896051686413947412135109744617148968293187450474290563181226489105336067876455585824340279247541417241142022013941319114019857570722529741809832490116236569072696871572527038109405439735108664411165288895313171078553493788667031488978101517909680980656846502189664680293964012523830904970963667970635235596734749418427372299425886953678894063656114652762690988162870068838320352765323688319719216089422852473937956979245162484286326805235110912242295523498096954211078822838232197096351420825684510296435160454259969046866567127769665501583754938825655522446316962010606189005751445786111162980768502960975049303424312123879001338107147530709061844735412614403666537283946272674869286132939876993045218058463470584588660580467213953814063491050961382438548977497603033611468213541980108763950646646431466477042835533147798289929794819893346267525469954725004108078164457761954275366144600185535564871939228264496489456041095516162222019473958481433972548605190045846283945565249359266947478045274406366610171240429533847440949406806450159615794420444599852574438192071200196084337497256163120204675288045154900539896893866380704352312500336104869634522381941672519434283468111543946647887698561778305544957980262036662592934829972821883587210855584193393852638222297383946983349652321838176553578273140744948257969027266251388802391914133898899199967380043691040186239176999305648537587442724719877452783800701237916824942842368706101774799874724716543489871742007058025337280462180305390669492830782124782695510474518655013396133419365517131201618544997537567639904909415330454683118285961753705469323858482160193062731958956900958954574856192327347187325467559263206280526051234756059892798179328503096420226648971022056635870540371764485895991238651640857554038544103622313474101925959657184304296805771907843150729136635306016543734775424967365969465894474735593035732096721979945537050531601772952917740654484706435463536634174649829966680759068121397578168486926761371912483105685100484649672113515554610342039580487932398421737990123015119417331184018357863584200130692196379010885444047145836902182002161202389993007512322842804240837550843131995182810159543463905269093325799384299133926933789073433020448603070869629494850089886337491835755169605349563374529957567703955767766917243384162101623521398533474418454815434548936226804192213063028818586709403249900992397740779911339247027464966558483212715964114423095051499701220724104638806520408993877753807304397339730647744435488866211193979385549439362440736238592240561050934510431386099372885510157587223728543663529152548675970644687167933951307018576141238185414122553945699432231844246106381034925659874538733533006875312316505158479574115245801674735488677264227740874208644462816414642029045703663363984030935551604980164312929331721449389152486511528251117680901420993842881754492838941475628142093441282233480608822013020858044040522379943841446475408445339482148491853879661003999562607577015616662322689736229789524753919372858663160302306814276268569067679355004934913276463992823151713952491462877336479392041309594615419413815599220698172395263368885041071356324888286026923766972709369488915662171697677343815905426790712269803439386484935233721162501619086581859087048742209575169829044151901032377290451276574630418704790828436468786495560656220149136184887854336645011339200039331986036257556729648789629979460569828820924695693365137011982989119216182699002859411939691414994091452926858613091311209442143403649964452581049555412779045247280724394718725981989081536580033140598553921725085925709326885349437665403065671423354349964697356100376573964641045509856648154796956297386861133214683522024869436325959335848273726644076802414385623980689050878338544244653652396359756391734240477723648218603969517261571935730380388551956808209474204038870282174882843507004880941702635179138490041986525943665796246875577905633727295944968333995133650819529258692335923627090445321422333380549532993863348358147895421933561273881794463524723237404916510378685110537200502604980446450801232411763936532148252756240641690729831112650976391198799100743223407019935192722247879384669120169141806934694218934946159137751386059835647974356725867881455122983960940733050793627900070692103707908857388923776339539252756418825732173927760320504779081720525418474201738572462142808952585680026338964163341126534406069031445101432658617886255553868041655908767561623958596795925968482159162536464551786715730274906082538067268504420100959586826703367660035421548948434424220196160172167172946238448939619923261075368128782851073815933206651155224277825124035849529867119418823559042205151181107935682243863966252333564212345690058243513407210498022290984472110288752087275451906306418337393822213739581182774182317970820111719800836950169159367614894643253899708812244418198227110090505408399955217416263371442495371307022252593071978027151016808998254335502124418099340022934672077201836697835770276334296963949930388657931377898841786276909928304088657506584287499261590203252415533681869816338480096579100031558114866736947409892747877156394807304567127647954513159617652464546885029576853956890863865136208289209147861036208513810538948208978843135880996589691079576305272628497574143475876910657055165839823878169951479779062791339347706158371093541063450744421202603202744368116367375080470831895356534259855560960608328013099336473448781652336622947390788683469190927026952774018347778819513885128969981232654089087180062893251866184244387696916740093546894262157261045612969695183701472235791007304054466531875439099950862500429387816944385159818011551126712664760254606037826892879456262770806869526931128250365031080022944842525166262404257437120817233355092629263149123084450258913403021198360617250622418915391153763396462989489455248875640704211051592714458702974426824716795029010942198236234776455657802490983183092102700718966726486734449167849969550739320629540497802373500538178948457893600166410749829838945808749095553194840135330814032278265932984503076059258757445673634563972682243846226667473155377732193557084627216761577856027391232654554650160408048931327776317946595148053929367071400781714014502541080314147229611853886775075058353840161534768279736712263892245014280822615213919318750490372582489953815389633124640835078396020557164249686277982480276381197322309932409401715526002247180171533206360251109835301713610353442912473091099601904073959076601977139175307934488421852585190420326840918962948989918470351175260832645677934510627591799763347159917045416949094514556613347722302600687517692743386989794558847099201563263324187832425816514431635334549264793692222403380192594396564164856315508607510062222305690897176096093265393167590376670223095952106853747831078183335889345293841610050172501302020700708473949448650443605594779047421930117887827604670573057401314100235521804838877624588774328759162973302814443421382405542487022392983676749539338208463395420398033445146547327622989127815419215132650199767455637269045175918821051923698655662642585950455863492840350417621868961316617291378847971178263182115012694564795774795225700307418640080449094139244286849233727855546433329155045387807140231841671008182291601176728187317123500425458655913960008988766570853814147103623650206665096967707806346862675965363727657749445073308191608231425760785528345237758025014306161408179795069093002696552469618471394781942765749927805739617782442538184575116837920592177080688601261178506543577329780924524248879868272098029937050657286764877862398036708128237604514653699388719713174070575038067859266708097840157419433924605721724936149293178526388160218042153497871986731170918919877655395955973945655880900826675391688277434839406752661455785438644288739891064562732712012093921601021455085369380877828828377459598515519727610976779892533967538468200712760129462090428280413292923202193910237556329557458354801605630140492426205427300936097815915657275890186513537677350094485475106725140618681300794384481812765543852730700507322642345377572608946539285447832931503507292852753638780337189788800100149431478058222020391656123015186970126680201600583956086587858738428999868534380701926672881785208805552404216476495230123920789599334749129746746955207534757848076875037900724481051839468378924949799023712344915820543647838173615841907904770816916715574278507100511467149175855308498488860187561615778623019598072992801122917476194161635480904714349751075278486914507279987538643575159644883815959938792820332641618608417271467040539889794877493779824221933337304001197929012494625452931066297504262869859797359895253800111363028380788241613175230004496899717164274186300626663337190530407935576256962456836657290313356415968837329038031228309243033650659054291038608047165365323790088166743231880787151469327836629601797634047508360692410820647083203476555786933963345484767442689723906308790897323584483315877283021624531746633879264492905444881342598252287536491510305758860406414400783728296305371321063008775561626185451586304213827774961018757882417692567438864097427454083192392808721821528394801871809534075281350635332406424233715702046114487069128177413976845956026912908714546260385987577817873161809985245217324297483203720348786101719305133181338916319346032279108315121180058797378129415012961073756826223188860083188673474777790567442573393531172486267077406122544525560292236791389676004058124613281874851136613980604979493454279164475944867840312356681746131840501000573550779302053544947961959846615792557964065069931102064738508384023151788041001547274240897993574909761397384193173071720604437229233266531686929636620373991351833545970437677988451045278469549046949375495722011594764928599595799359877555474431776724776993545670420508764651448911609873222203185981740730859499865953720869653009489850494454613782277923664810080384563768884620984556246127042732385702346440314015150311857154696426110593445076111599018773206811356354898942803082643161255770802612511421772153661573741130676254103621251904565633287832779964281182133977546231970568756096191029131771428662743904971379894906808402952376770664522051160041744121388959271976720668588099498908246655980081176093128842112216211322620117537300812076022473527216874216383514651717700165960788116308659612367836253252212218092230492377078249859661581884657129845129360294537244111639061537649009718838200953939835621225539119851915354314675384012416805589971227348271434841547127361874064359358487587279518677314444402815442971583781959914584885612464951137858266948683166430283474417615451602620212183723125852165952537164688840101532449811112475218981145564725986565863733071038133029677264614191556581849776408798976695776926134351013349856447568104457266876372990755532447260546364595634458729683051800553820216450867121485879255344206483967348842885317993659500857710083544002511179216538663971373622304249479237619241524632118548360495293925281114977254289791265350417623925854254458823493448816273184398172838865123056667275844692807761412752153932853803472708125781749627659223843963422622982815791952452685029307209683589630076770755131072937928862748058912790498945667067291557121587131853142752584791115750543628368204254073082562075403323664331688949998050336967325556178715928463143809973722694178186358763218339697659789321689539479542454480557396020862254542701716543723374284189065708910986772460173880853848511331537261977139663156674642561033765651767842668585028137543391011796630706771816923963146985123348205894170240855822560424325919356172742468081457693458926366404269929844355563928439998108125906244559009034843991075117174495746469742116935161425271213728279628657635045250532660992517386267935173465571930081458032040092917188219958895856532195725278088945282429858184614804386174336788831108874717082887696023491319058261867495640978321919772874032142160426987559085737049797328374813339148854353963793985657021721549628475287393566157781078636136918009012004092692078733377306296140455874666149135682920267414499413939109561025054272105058651017963948024138998125420987595501857446040232592512097302493477449110622706208644761028810225216076020621501579605293955278736734669671519325282038722874542183042365705646438515626980672398557311576303264736494673223708024966842234684202450953587475276571717417472651369036112625797697864551486676854115261504729755938079933370653091001365953983583552119029433283723217090492142384670163046222487443810798641161530159092714377235172015933617016745153681704880542045425917346466012667696229221947697710761304784630280975356672911972741663521402086204703470260338822471077036166651767219772639472614406363665727583631154871481910038277777991702372057410241902032662569248313993386071402589909897704930803151541939221268884962584470926385444897667556919223498316492757721425455402455085158324601226922396676176794087448100063883113064302309367472754645304089820352239572492733136323993533872387652487836320783285807346424255699551128126109668201508451473227963944998142688603660307929171817844755907742621506639237322955663520612785691320842843638218777889579785195008162438864392141229199362929578354578866087558057397750610366935397064422086682770065741289688168308486400738490675776906309006061286646355208565763387546202478479497999885227518697732873159100382450791412963981272124525989906391233653209309335407382543477125494795663777782334343597003039025344804199377444034734676319509803903290453494839000164836331670114972442523181763370403321492094484510414471036937577784698046787144218440531202783390230285742753516356554283148342057741838556090722677769158729167246662707750942617931839647814574863114690289737696844544212114374287055198785749473884216884280875668827012492917174168035990008897189891687968238869813992928172818305485991937229216379373320932460412247369831749301939279310745855846337813013688865008749034699940756715804526313256968518479711230112408243920457798605461237354632492634480568773976174573537215274214737675704367372059261334408523453483210259783131052629438743273501489601042182137875119825559692164351713048704056278740850639221354142672499314984322408667297899643533161244081982591454006661123376566243299660966131668079568283254619640574396708960283561379328881286007746763210502888560737332017344046673689005172758431208626309831681741050527731849874426659950790485038848242121507211625733630459584318435635338374486656686732514079883597248972244060867831958463805271471426007511374481843619506037345131308074572384564796064350212518506093946201509947718645766575759426864130511695897650748853143629569279127194192896650339292371050681395715958301563169207052685205429778305689433266109026497216350451899717653932393849053113299360361770500517883960436311827557556189099204573994557411156075217765159233413542322928388973485249483830490149644630031522264543670264423384750888234268436021193912373465359489434117724027228488311912287609494902697705848541021399767823230741473401835170281668560124771621172766980915271919578229357325672437886775520845836835597202612871016652286191392620216741626958852135327101006700426324646374517367647619742108724424606317752282449023762669402484874207886497000273925498494719460040850552574947192209925629679979064669096732636907686293673812777973005725239883775775633287498912607782540287496148927803785169362184859666728250333641737509772317784929146825010656489709056066808640026089090501250750128926141675109162765310526990668019124063100871751173456709804038827032107459579737735604322862342654729027046006210299437320556404139602294661730205660597594563439852360805233299483834616143732819553196486265201611325079659346192034163235263427939892903100630600190499557699327990265745511153290378949333906058019972846180474406226374108788536131561649835276436358345589161248476504909698890309412155245525474146662443677361227125814121379781648511260135147957646184809465302571478218619261737848073318374812317498107553729792191460113994780963895407224545630113060877353349683509484936671764607928076984239540403533743829972875155605130768139780075579682951360987688631155586177815485796603524841125616138762773344044698439785225784595872387318332378406209953141827473548416626416740228428824778930886140194373528645417858461249574592676802134138928049789247792441410543178988489085199290244618932207384996826620396318394383070049749226802707472852338921642876456097546112510041679965389283614135361002753584886021410110552745844522290418208174764480367814427872560575041801167305607414856183446343757246668703354177413031444356412676286141049617913301685253226964934971358183922456432626866643370494609595405620497270362224779885757567129149014576928698201572392881145970267951892620247302973917385488609391455390678139865166588461132780799556017560814690044765263197735927391375210213027540908090530894806922532560180192746979139307086002957406188478931532428147010321186214029048897647873454434890514898804541412840638289848738588472186061705212292994930865076530440346633707031831442924809440795560227069266328372306312325854218016319942012221949006114363342843877506176396128568120767882458985394224738755532175140116222138093651037027965982324101415945214207357322731403705082627547060119019433911223632382811551398252738712737870185457334118889315689803654753515110352206498611927795545474186191258088319243245052357922045196420011302826731186609851111944222584688762580278947231607331071887296508728823206814072180637813759650045093880874764811636300129940123984053584503552515819347369076784409521427354994195028449975874996065222845829425419831683011865637753694252098957054621319512214785854331237275004003631399092819738815102706646511255655115098153068873595268721239612555600466951416353240979029909937473823028907027058169594459990900801998590546221340589155670769946627779241289989005483013116358610404218241015080187686593554540016827140070146697747289792271014588067984254262007040967510750154248594153024097342139925523104011914002053946677393522081310304273800181788828120018442952898922489705594150623565248551683172904323721677285184476174521371755713420138136073036770048407735827660495934163337685298398362485954602152524048311722190049369899704215738114774821459984140328240907748301081781263294039123038795481482548697003670468237304981188305894753623974025697141166841545612376382468799405270452889695909761525943232078159614381911952117617662678031886570020135562571228359863293307596730855186383811373084826327033317237520469578543297437843157326619474661195949728710703006033499013159529993382283844286902337178185721460480269244838587251197370368903088584746844302366512373350422533139985037212632778051607119646809994356964384336248093452237913868432186949323532979836225803504808674850047525036543386860785293223214358799388781658121965477009869512194586309292909303251569386549103947742753384908203927473379363658253786910847790144018758181229696801862805486151000739571996715870120360092023570595768426661981175507006353955036392935010524919666788512183119208576729300973574905574902625182695917630442400153432867972583536989052865861997922348216965479828013907572607285463897310130979689949923291339260010339264637722979596712409096300274057119744498268011461127733269489743010776655375706122153734395424937720540760271614562517627168105855587777917283201647174856486650626682399820708825643309062747108212206788446672881310237666065510826405148750508624065886058946173824972014549912277175628220272194848299746777682840779894222968758322421437455486638361963173369200626185532069031645337522697098702640830837100601856732074670110923554813723279053711636993211852801870641692402201723183405839226994415910723030162653252311857766340831530616000133224341441618021806478764872592832828344871549033683957876999419238377476689781260150937571793619457048773771556138621108500796950593644727799058707262004787046658038712764446460685364091944734313607942252571304820346166665512683096235463631797908511972640294885743818050320185877403963789030807384854556892203869194250309831030802066138765081527275278707262420973761469483803650318236142085538721958327950691537269498416767723554118599489560691275459450379282980616748965791610217977071286861306077158715334265914567537446307578925156889307541886168296699467537557005746620759224999671614633691794297792463304387136528596809013440663781340528621245454008565384494205335055128181675314079624155602782084606628168472992437189539039260485173244469458403435688381154372387762050202693807572542650235070819488150286069129388204389015855241308095402750676378848455222658131841231908364110961250601880887084962679200914649117295314541255749928784768575219305526269681855196836646609035951668393917964508372350848650522004549432079287463476882036189139605639353345332412747073556878911617242622743528062261707671084131890631042536822155514022778021981906567791560071640696154193205127112844738520204848406701273952613862997084229673805259355402078811033945411303777560429164645190690521829707387562176367744343954298759640189240011448499979680927776702712011023538816425999437867841832497734677319531530859747467340949754566351588156449021200331440328349956468077059299128983129999812808038826842558107196027690614925752806781238875052573769271123207836984966198061114524478605162162973677140497269593611097920952481460405556214071018229280462902727955362082959161337871819741327746215292817605082181846031996558349153367627727843618495021056497556486215028734056827853409337086529783482552348414252848908540385513840367113528067681282799206007394319626611644151035091832803853426649685089103898533557657898832611087309476999892614543646309649999459661651965247496709002392293719798355843017395191970788685763553237551307370489453110542932322936050558798102243136297663638821339572405389380254478607251059967044161194042812285547639407247141360896008702237247934020641803429332013050815553941104471448251276492830064032153303257711143329217989759492949653191812960079934097222915331205521696075436697117316487243176766709823155590928342447074352776588431392999677447184205515419032254715689236395652765441169861519200635302793226149859153323126868517824691655416296745012195431581640344762321950033713627714383791307980509603518533896878351003537324376147272091892781878508255377667330274055418444221142594581421458281107318122737743970213717190119438897255514916555878173729945316358705767415109018824408309082701683639543396350211855186072759441200110240764604153666240387721627817707655119092622488212502791586953903297081056348168317914661023142837894984590030583864119356584894788583463345018096572226155328250959289741887134977990117658481342084088276602540049776337673671988271895042355408755231233428503356550578408653074628190611461764767825945764992153591082298079098395984115830806420938523845653562921015080055445811542832274881248353783711239791618708670715872123539230632717031394618723935960121385768405391456370033106970646654907644481920923263466911929575092818053645054984424821078806167520019778008634185909200480204544052897777638193285418552174074017575055065998981278049612913385632576315529356900231409041926693919106927553466293477484339266294942736646535835292867307147742215346546199097765625406704285898701431696435156280834448620055634670999354847945163101572099665874646957704772606591204856560835484518154861500343622352484740839285544128792023260261289859839054146492310945486028780730290957701445322825750850492834204807405607090788842861318601547939608956053076879235900035189068017801244996436648431557561493892850120979733072318776298880415239461307154380693839641408967773587063872435844090619886861551731469671354228698280180134479513015771936522117151781843755140944884167927283431356632918743447490099883585730607156967181287726907698671875245814582678662438394534081403816356554535654310254839296313235690127829536773141581339813911830830707642151653456522539178163575435925976210387996007321004831552673123192368467182819682176299342444227763510540335423045361081894066141134469750202308802117922368797925621643387852610540995944859651423949109330449691432823579214254383971216367788672591393510825427319204991260972597266606037896036003539857199906235010097792000129097276146643195455302591386978854563141748678015881182442308136736542781233606966766147419311484971824214417814439625911037126031968463487786831397698780452270573878086785048397943387890312638170476115381101823905538604394328974446461523304311019072246916812020642464351653893104540423874338684204234745550660061358609754450188058309327349969299309843735416897594107623144800312819762490712763861620651798897341943287587541253974483943103228628711700777888833612588041312828952830612448586178724678154233364473299015081110734977383789122371780188320167966068861029015766675069756702047516032567805111639929410111328409383423330099368072965934869302358876294447517955053374568839604004880266413096876837063366864771139877252119892230158361678676233568943504561072748178359188439800184974885043336397675776210224401628133813760953696715622246003039838625170439255239396248738278078354389633022207259286815109917254041127547134675130042554620172978272688427914399129041914266973320143818559592196055154744618552952426295188014677028746977162977542009691369323016806635484126955196235986621623064205394111758768997740482003738073468749236931973481036781583424481879448164583647907361780915109646544333172899130476238982527861805089050268287356737433484529237486904294965540412516056075491217960506395321107079288606582190105146440532917841562890348415126675842610777861481006589169273986900604310169857461778475245103910257759504001051845006171143735139681404465762747901858381858220050803135194609536965178649350891845900698042368356111822332825627285283664951253564874618625972515709663960792811419267732070300595369388289750799606605367791926362615371466198664688285108257257145925197109669920797142101944323251244232949738980490393381122544351959813313464374602891862634618947547900685087999835130844277064218913914145189245013758233260023818133370533507856290377427187524645753834300567071045730221479518908621527701697753983037831512588627662347554782870216727789438378188835997769793871172696463880701657002685246767112487354982063026467591113118707771675125102402880874770480302605524276276896060993594241863574350298015914610781825330936483750535905428753254070451171442424848718555954779209774960693188351129435205076597839190585557900505076143345946361564767882619636552221044466987307062118693651165432473674150469207373485047356604765278945721446567359203911179985958302570515494422134742820901413765422755267847670121763111149008273052911015222436542212060201046115043897013722829327481062746238206605587092548046432215939716436631404412289858325572894924566631496669642170582031734326572175917703685976057109063635605945600751698231944236566802622837180766548482046644582457976857206744506046424650202919334489099444066774939012036566312608018811380929911902246190375920457795027468913985959726918460164253582511428471099425717939776933509658327832528892673910123886904277806415961982185109131051624683104444158388874181645037621840142682347176833857247091206478100845762979723168376087144260282835174673639144880678092643868494569335867939800631015058462827524815269107174764871856614960570878021130335885702746667069680395279191635413863212125628722601172470420910576586708528948214518192965539173433107967113186076499109442912659135870383197109652234898450104616937478210272136696047016734098219209878329244879803708486588150687260159333350856945037357123220606766244729368826228652767514345506145790625840464006864141164337604350162528436222713096682353115296076485279874194304294135437689497294493474572579915778405959016610903933251704330624535931010917044020431132700300749677182135665885808934253757937669428356154883905691434743122580301740403930858925359794382494464268106333123734672154748285725661701769935124629085146103128645627078066467683028287680572820252949095528496355042907150578274678321983973254445141145459556071830394419670730311655304279597442345824590689522338464415436403497692266207724126242786653077118513757519812589028651185842865833145093789487156269778417715731720754242728002664383805468026918909235909949404834227919271243941803820939060842598701821519466246863581657491024302726550258963246843961603603213974421127724540731300669394609855131366425036327442007354304619200458054785347929343203651625776308159447821567097157526772878459004028561464642517939188391388973879156619790695834178086140807340465749747956758090295605140940984942963037372657657390945994206989081562431807940800596762639084621236404823636041718353546416112526304850622767615119328561162251813296501844673765372415085870930265997677587752024929188932754255754572352018367144315743768153687874694156265298693426999080817318593934541206037800587989432618586523968761037123592909651645540724973595996882161507761383758493166821840244366662508193517840883435143382867916061791110999774343836422067224871133334464361242874393129784588572421284288119219409019416754736770017373122747341576458945024625594915404938802612471763834602667461361607571597365377186838744815202357473627277026740688669300917940414707610654270956828245919629970490908388294800379674657352086281577309331880770068178374853890069132334207512897468477423675799923312713368011047753765760745308101723997173060378628653366572396776022424512543248950950077791762263992991358572223695119710244721180921779141659437164448732997416035909465499871262246154264992894270304185534531700831731613405501049207496790406338145195271520942607453595754331825695580914666836894556475929747846919056894856041191674489174253251541986858312563224275467802065500631575442755244645764390293502834552798217564828559897304508353574232971215219268430845461252070304732912881593800093783130035568058515645457270775291853060861536992445506217085786380901456571331713303053729577575507085517041242071870826783758430627501776602837922703880138756762523440836802779513157626341794095478729576585181756930360343934667721389848063068843984007050277611555925649877135678014109228585831226829751987983138531918442681044714554597490239930054400944868552504451655317839152654699369735331412048830761054864348303330612121893076504111528804918854401868107171911209953535886425299204676407446688655959261317465642731648382187002302222855394044493347562139755715621187313359613268928457633073653837333167681470130526975586868114920277495163627012564168639996384211813975494958155298971864109462672990307480983514068508596940009091156965529993723709049488423161934094907974219680538639682466722529694867738215857071260253765998100346634522948456553713973484077584826324635784456192646698620388521385869754157461383082654324780440963387435691470840557088647925602146173898115672705075963653516480037834762428828642706770630346065228415943705855846081851230013822535627706318531277489002503699465193079906781462259158817808000494405407693924310970298118997361522523540710367222862539018468234578343080565317033391935865459645503329662524350870615059171580441140593055407279257603205239209689059401968064214387756870388194054308526126774912964881126709662154191839682574689275912591119934044035246115232168792462673563694416147577624370079132133603765088779093129572093874885275426668374067093524071317191253220107728498657343937471648916399533667966879281841087535896683753042364854849540831868894989196334277197736368804225692534675070344532003338050495327491927992032180690550765376100652609327965801970986999260289791580458979921128641365193699740068453883255929184520282085997697365029961463771881359109947796525025001735481895865271224982998605554943193529709993856016714215970727789292532597037463209868872296436514992796571624417170169005821465734643404776978304860352007078879550458181930297307332773003936094918787830060109780974745885587267726364794048385974241318039939962817263610858675690607443294927448692420713295026208423871334680710729846057653998609200801661981820738043705012251737111419821736774756546033704089053409569880393166273272744429248121112556521511538146604674189978066271250747860722094325305622751224932654681542383093343089144585687177102157655384910632685485574969198373158326234633023454413646044986726454922302582265574347821823554198626616663939865512360324165928383861412999959489839188832529601343497439386846761187291156621257926278844638274173406176390403559896134054636598701570813703926430934737161782475162746504474105106315121547208436495769718806086336563311044345682530692094504530063747464891326683534001241999801201309019687312404371002624066815297166329239467972424564788284311482872224953907943576881149485545984129796590892554524035466245018054762207345017617286587010836655488053648089623208658278870237713296931582263783257636103953601789998844273308296657446306799891754408238394646129755300450492409091765168863034845611875726315902178452779666891630691761157264894423852730162279063146463582396924006280254317734623388734849368142588302608191401476847358545081508514376792308312688347759964973216660173705907831793946609347220898310848496500684747333003559047979274993267415593323808215346003872394182237821589979340187677953287966725327805986615459745427480647501110600534188176567305361388680655160709984954703728408825376010387094392616527704043744628937675937285170817615850481518162237163909289905973911672099299153029534676615289370249277708008202688741928119352895885966863784732245535057583521125716817237786693364084750346973129214543493655901489218859787470781924908861934067165031254329189626677059486291788195713395767990224535537606759145725410641557817168468578982480601272972805733849373139361611602969449149155516229831968942119035859735727074590746508918909765754898097346712513536775403140158987613091595995414805647382562754671937559007052577566651183829978931877558788768060743013507893662599194757360527538764640796511745110574774537036794941849577283678914094191006665065734275045137812915406533269071765669993540723116298550269564226592360597637831393536537381093487435750106372373251886968231469757474402358108786980121402810012262833785967896208955243039425459081226360712982391323751775491837945165843476882738077897413733513370276499217720987615432546972477663103174199838956642836187818371288854604709891036834794493218386121504132703912297997834535986423657662354346337346524152398165200960011660309223347464806439847761602296605500813186471622119984136440000303783254161778938631267043283504811291278399135746932486803391026016379777100202166668137096622100452741310000888259571237643285169380249469340637009347256395164515354818679220697678990777126734787135171758679395910400614443637277155743629482192798701141730894390885046010486792695511589674564963926416778893833293632053201211939855360114853265059761106017457128556111447576732509141834336173271495889781746387930812493876030492274299108938042584475756118207069919335531505473211655394659331666360232775458716865736484391542469545234844592892318339603436957560640848098075219669309318577543108623733966963840855248905216612984113202607136867769658571691319281187975519045949396357941557589569440591570571974268241447211959719771978223429716746668158353265926827726122730204452424277307319673713555903186622204749028710188457683167174392954325518497847818004822561991087171462294603935205576067149899790236081987825368926117898266453710234773653835699760925709516511908800424833648195105338060955177096423357155368328890589862973796094533811210994974925105926404000171010363649234717413821410472934489644614725854927211798318890460499279485364549671018049568102826947832361069157031530327768704077009718109338688205116538109905790110894469283223309180487615287505889169940270875242969481618641720825193043632965194095286410490315995994546868050539553755226825065056546137059553933863396738442062404316614063857090187742134474519127002572109746363007518604308767239422239428251430841291957697715638499058230124850109920707593591065340594252294140761232518676225503452670584887601694812510742141748606353524616206276097313096708827226313274079099819658353648935742670467670498828969885618229700273372200201219258648917959591245200781564867139524777237812655272011572172868021643149810983610544276439253952099101611442433774771888518431231848270602834978966641676074569633068319581833729799388713256910132531441417579813498964856037767051297112817930336979635511341820753976950723105765819757896568279569369618464888033967296626526363334095155267481459804539596449698029982997445278126262012190465830976340220738633110025976909129737419397059850706055950056742964387123517584711129157136631247904065218670850213099750939917038602888157513888833663157569551159456843987071097243441921025699198658257889632263653002243319659056196250286917800013744054310664794346791598737453300498196192076977826240121394325643136530883718714967972084186424921458831495211039666102205039549365965441850817238089011387553795678508414311070528208468997809856726232941749400978790066535920286981868798184979371663259540038366484782567689786619844902062120717675487749324804558478687587520036619547132957844681134013238042498580595963201522379366140590427936226237675210702344144331203693119080136923108326234138598641208049991279553468787372378768536287856289670395520520609643792424892835466948104824183529244603583437819898482158769462956442641862957436121161894373635106037273570652122937809567958092170472431466819691775794893131770756374489812747132363144252575600363788081659231271930053608645341536195504988213412397379701282919249496553181174053115878610976917557273712100500320968091708773860483997749329658122389621134221936316891538650715664722539290465081589589224836604144331148142251014257737654793850046747398781115986651798729709365575869213725425945392684345637793965084753594301598687561629891039550516646915861021040882057763043971130330563495121590753596402851216841936409357422239548339346849870238888464996775189287696831000049862502914617517747180793982200541719882087727289103334325099449929093849019947192349190573993101928508921348642421901168043106299755344767798970066369380874206926778232448946353505504266411294225771185412205776673574381283798091137151660683899859059826824490136186065062956993244937470528287966896736712977228144929995880465263244010323949752505006222988424118689326531263593193630787859460038147113224251001940237108116396801171223472910254767732779914388825114231033621539307450993536801442789191395952468570904040632806033885434779123819343728475740638671820514255952419916994662337945619643688703592315805188654445482219873157781259990517168879294119990538483324625120875196684304368277585685575645740863152939921082873285285783598841519698458067539379797959803193136425600495693069893257002109904881189526504677220301978335416771741911717938190177064111222100606211896561419944042719634784959886446472097263527127238425035377868379508368148140495225802226150023512768118678676511154706728633347898053596677087583255842793127471572028657503274962834973207893789253531944097788895775795886033275827734489167323191383351735945864305024778492409038162040567413987569618040844993274989663105118289408511353815755756431409412584162920800341501543517024738461635482440118216301808761742835498754104169969032888525332740650006431755115750018782040128475816943939429934467614727255109835477237791220997924732153595800329770007736672494060598822652032154449262718200839416172675979544087557590138692828512427821008747749026082349593619862710105586974553217084027158735190622865310648101093210898368106328388510645734938253973137215953544704552881832276913588354619570437843562243268512751081639835151083029278581334937064729028844962383679933105721891040881305975883860534760691151771777357131338136927436453704849556465956049166045248884384790634609253096623246437322593704610750610752250219720812633473405469860177927600396771015241844302368361702970159742933624517163087798213016022665004873834246350202139739596906916839783812270976774677758459926985270552315839238110568620874718998138853408337836851476768626505554558676391345960321149993357788551907219851002615578292324371762457506258170315997741693422515605045562901491533562961846498290263271870667800736826573593300864711208402581629318069940877080865864620352451398484417247299168985803841294406724784865184130542180156994120211276437674165332839414133875550013936889581764248387734963872328352133686653054159779658817272766307823110876939797373905548001635909230091934386068254788100433529133777001217498600884094666023908877019962701756020942208372495849431405168386741741100954223513361609840458379371793361829815884357265743836872805791836548182894900307495139706514903252584943408427967270335470491036405299688433844944298169123633640504027956833921498905648411566508528797167918483686600289145410353124661276299429244031699278888125842092221880078494766518318290559826118183959977204666526961128517691978731208111277611991023336603534167743270960888545316508877155134203764940730525365939901913973172760087121670049076549332857156999266600433772861085841419548034224341223506382001882920809151052417094196992226625248918540158110598723195392339378633816797193214808994437594187134118240452732728943999020982770164149318943075721011180668266682604980845453699801879286591137228933583838558329915703892323713023783460625324986515837906461687474557582061666046907709826844660947368005805129442571805380557691490667180109636437300615765742132821295780149744492714683276023965349813765163555977243516954512714112497975883612656489473359785201819613972800905609175852947873606065183901060312307434280639522083615345139653076760741981539198380506092542778337968149854923839932297086083904347864088057083426564955454819457571397893324203519430957509707281068060463730888695728793046410914013197928320628150293048948019771839084186093418906957076259948988480329668554412379867458269743886889037465917318647243377665061049136153457584483177776613654044525016289823554269022117023785866014646469991699996083595419699371951601138862020653551997002253968226049777972815324761273926348206730167745422752469438906524165065432665299604131791283590727401677177979069350668846508757252676380785205732146548092471232738877796130808825446114432816446604324303597752571867367720198737067660459507264125069470979789191639274413786501886626888232963506194004395664551489315968525396826962884718712610226343764547097037160682027620612442159731067668606467272347236010371808802977667839307113134590012757890352357271028714696914785130459952513740827337124415866966013714126219071056704953374281568902296119801966777001681916918540938703505704554972990232687564188151882452305457630275556634680218193613768161062203521454749313073553799912450289481480926687369402466925486884703476557758376906357311943632742456433961937049440427589518102748683811065774687868520134355672892125723699624443494038700649316852305682352089079197587944470779335621798997003156588697116790958879488894659642400494373984235353428804817944419446481369114144456765528970394922727540231230773199638508710282837601944214961259406615547324401378456582882940323803611658458417741201778378277667408795198597888148210087126744008910918109508406126395883128532006119301658112664654560928881326254037852831258762835299388783904237738067375218393618444053330712218591386938468569066103923261645663818753220164809456324288220452734939764921076020374201897053355001781486998588713378171805857324917683974064136870966942064792319571541012909799844510627211186302168635958205496348807861769484110367531501001419924301436702455306831623698401669493039198181443565088199534840818320904702456850203452419636989759833244871192268034360882173921675530929509519467467235696256713792413919494117241242687496207117530506226653245737157659400701337775845806863623566741662032289262309201458958776906981522905086894456027437528426541788026301938236823265903334257532635937648758587531083555511736286694738264557069409313649972568699267178045477237395385631357824846075443133762866455865777146088357178037271571338225221271002252530760049555856640724754660175566153986207448075402820251223822172913996289071625575861622133921826971780053443659873829969066604620215552023447622811618632775557405665483494317358821481659806258133823320648256168682060310685281266684541361593531631417887960353030344250301047195028485684687743268046109343497468382720159868103377713744499087934854937623101890880356735710892665461968880604243809041524600919231491371774046153596275636759157328571887381964898778293094666472511537865275469993082522882454385496802668880145676611084108623799052038649193035600912647945267286256503894227481166711113437588009117091949591272015045751600562054784855321736714663594243427723930623757196933571163389625137522461304665448930111229131007118542619991000607605049286527390214840206788987598030086347549870660085246423214769526422845886951622250858431678038221540814437002296157303102249094905079783696565328118803174265704399709812766787232966046330017367405165799303776239915632408166927087237923891828809329235457049115668434315983854712425149821201701814855932524360375715749579258698585544723144912333837494241598764607217563047270603130271271224110929101291309792977328733845671078673240177094144622491883376904364791980240575678266945326550438299785492887516688650544705940775325956735963549400365644915878797946773507084902824995373506343718815398429201806727422462595936479639791804952683490479717406601101500127141023521490571838920046596274831541777156695600342505304718202676877624343361705805280951359372393438838153896280807639785854056951460811806924595263965599005391106982794017124544350823218965575708459499108917358452251933138164456135171439904958812619310505446876312444286945258404571547747437690074834922092478384115545777113249050999142632839712468195581915785166916432012877575354829219019347205391548406994080886461039194835933537965900246284547892635425839125645211629680104675868646421400113752438097228690234814514583759820581246363258598073951917297999965965359979704518231128496718635405140223765969597103221812495393102210085376254384687219217188407983554166700057246192915391231870479737130554486957557998541981853571988916830176652881345828928371571939654157551744491416549934937119825871534618572089564598977251435552321950950375705014153636743729375018016664338044262332178068770092825392968444768414795539843717239077222828583572303234931766101921558830769317068377845893741586512375055239286041128356647364841673097257406704549788443138932381802835771342417592327628308074114372727254067834375619002312574626674678133289416286047724776808043700582982609372665603209530951999408605532900290308417079678860988474303133568850850698038173214328552000213844529436584744395355286806781402584243666721567028440933933069041188708125329259221228476688429690441511126089198570543538322563019000954979483894460801852007885384610371909762375655856785137454389015041945800933553688635485383461195130199805902673953954390903712132745979803827160726972004638434772329329364439930443822203268692641745940043294966346169705777616998749030052168366023181020801332578593379215415866312579028332119189534365792829907224541148356042479250171228076291562513572485250920483547685527661130441655694121727859081731285796023942154546549235517212979304918774492277078008013998371403354994323890449578897258503772174457734619743753852858693653850886066152648845258292933900775216218860608972415807106983003237277012209830014970581871019664221620218154768759023271111547091598325043868110727204046490440942634492548253657698940040405552041410100184485824144783409204214718898706351836934162611930429385610569113821485540227112632531511990595018638156169386029254894565092852532049449566512709903511058589454229721762135195572928241885618747961655636503033891785819865005699495668273520075620152433550118660950578370071989423031502771939941381327888234903576151494468748175954410252764241270651257965633199933618577884342945303645693096534631292478461882205004342914104209831274407365762116788676985029737070969945182748458394535338627711202118885225996413770503041170236307584074116758865166322415054814965548529837960644090878941098758984041366708456051621770922969728776587095153298389123933981811667379226077397199551263639867551869780634501450211285934860986148660619190269509730120373927593221132637007743626954864433567759364201397443060618987106907240638836352384710809096903002548185324465008956937996309294550935576144175103119904060564061370130658236498612416884124220216174184174696225631102745292346616160936639701648687839662567332024587177180953848283923175530873016566117646476310958545601802392499667509495643813594796049349458065003185733808411653339677828006755479883023133690930748589853964332282743677508913318410256755694562671756332170860452829798592823694909295141615118656752572911669230448324633934978414020176047755000543179595743441561377031418645341756735075790314617866091760169236849748304439381275605858778675446838765102561402698769714790250115599458028386403176469123715590586789348608507788853387075240281342864490775049441493248462871891348085977260402105374177414128326592631152921288682434316904002980337551944759004861890026650981883818813861562159198790389671638115600517417064876069690566693045097252365176966587848434282963213035567683999458432091398335962711090754206701091354870485822543209029225975719230349570481262366751524271173458775892897368708050630683139357433536941205721049358552169320944311627834826088490687553534534085997960304418677800296636068347368185040556450314425516703787911828509665174104569973243253153266854772963436129564939023631232848886081195922208666804044525711004903022412130695150395239909106192556949984077503499151901205490362734592650703631047928255195397217471825972452389439219383347185461855120351441500336760502936488335718952684111455445226044590970398382947597710080527551372654772236774601759804088466185324849453069253649579521108273219195629042573851135433061940272955279496914447342395578185540770496991084702628174371601277644081467709095618834625915107116466829740538888874652027864382420225137155217002322414684067855373928527682299879329504979866840065460004582942916466298401195105756959773752802699467559439270898862816508568683172468526692037299669153664562323454446237222794269104917331800932585050026394084073618378123872584410221527660273678925838650525423276121741885236377013542721675799309975641157584179195591782841791750197733801662590960328441815909537421960029347746756997177990280839157625653494515373962274233967984048074258241529415045241260375794416322013534677290735084607962230371162529477363149643615417483689172113160836514776584921703700381977968490756163032498751388048300787277667507885616895987020658327007195159175201254976152404494010169915734826997274096040075318169371128171437188852690766447126096562970872338375872556774878910324488860911686997363598776121867869893922845126237872421500576223603440750515163746769220809213527669461674293379847527431921962582577955634915548788545532365317727668978269197243898769032327466428879921550703471491191479641128815129316003931310779321763447304706477413228414959543882078714593085121420321415001398901730283629836913732998607384690528782988992222715806898072094641023876600685996572875180174533219468792749555649179894012167270927041070498538056879066190437237264808922375452186616771231265543573792242420904204956799484781655365310393816393592737995967026589937397420837226097457594934643630561980218639372166695715239897925868622491937842368618009589545114359703553196450199563481757408473701385554124349652893719727948961095538078149367603121359183597097854102977193133398253364124845984161398693843010045031109394573967221832340728676348775260842335413703983688530180752321964702361967563958386163469922427289267563212476518148670314257553913735702324318517999689076511127067783201368202205683847071110669187895718298422147865147868062821283503803730804297182367214044297838905668282058590593553208544316387777978623909023535047750912511406449124766471268187410093937827688178677982851924317310787984068315485001699312955677645328048631677646537569954006009461405400763232700425228871931355771668954832732945526045180252442908107524919640302804658959502928867940830159813864882262684145783901398125285941906198719088316920290345322208874714092334670115872440899875801944390133548638169441022600415413120512124928517027466935236569963266278678495728037554144517375847174168672396853718131716828604991842750652859383387753385431088788926006787758594663668942342814410137367537627139006187183711330599449543697256588939590615262545402493110772649225043503139415639715538763377610975614603304295312845347921741810594014123788951620775342716485685584792270905468371230654289663800722233319608234479393365410990285304429701178845469711802911234505555379195073444883480608243846670779237904456327069205344960087698017066611477797882405489965254041002574725015989428733756537617394063628928171760283350063007804427031330511147932970526979683788615144116453906300413106519997601693573255175147822594022075854906914446677254592300528116419574491540912329264785893782368983958043660640843056598177344845184642093007096927914585415826416642934274117403006878391021757596791681886157106155199192464120040522337370142453894031728044907141318846385170506516842255522447779040191544128102248607664217558342965266415788615783287039021771410119640991944924490241276758917661118430686155222313921972789491746254997049776612431556564907540068705232013301432510529582994706706579101048932444146662503428025818466661196266584689308837999467226484748520390691104451580431734781185370795754618512350165799008256582361883537906456392855076179710477792650277733439592489951616545745582593223262129009751075891889952755749813080098764211454872351148229319856968543208082842933859553983299602639565983014554624176696590835921365713436834524720412250970331321462407651607760871952377339214059752293462945957693358379233448859477966351313186246763265915424354917468598126708866877893155227463113327456137870204074248841421871983343487555810538500076894336096061824391354185584352524861363733810356058992088556393239833999350321469253587733341089486692627978559443424405177049731867281285186726758009894269501647583215400781522612368654254996616727752162398663393648625611777784455734171543885437556949885574269486185271791219206467317811234770656412707075595068889517606340725805065956693240927708772221552459909783535567074672528024393957533638713669051746382187268188120326178249430860729373804009964210978803573465301325603248717422752975714761306911856819163950937151579446357443000534151667423878343399040620547978954776775579932764540594117797043512225498891574476428941907345752793633654281192038856969290252397886634909332068135524210667379090000167144585048694136301506059185412402835851413652625511451733706026108066354956499495409051230495484867379456650432697521242931155205318779689102163986158034411173776293856966541260347681888667534597415982398426277186028388567770603497257186776176816780920445485156463951433422655732812754299699942465508013944730109938938797917368379239899224201875190415997610001208670620825218064617651544392672094721443117127112378230741125927892613788229807378387665851251367004341815826494196782813394417324137579892089674814337933091686030831790493915835410514715906080727142166151111165606858523008620861387201304175585569387269473482454531366566308326887784142238584140530713444480285643165746005504204185883623926322692725513830180125949224821052773614952717179456997237288842321355507958350310663288264669104638583642983153905323960492995014584932230051594262579489284770706954680297936327412707255126739491833857986514209177439478978028561068154267870429287469273554896779461178860775438196095322754343880437076582999689572388520219497998538680784571499879324858036234553976645335286993433888216399131529352099360395778799256755487436427649913316418136244572401702770193960980021366281552772029534818936784908894043417849354635384352996863120366143430478115251724843312341453738448051658584629954584787199360631036433960581378681843777581029811467756604347377897678782415453881382919280855718861781826891444713143307801509658995212845823573405096825902162602445281901748483399154343602271715628857351634894233463813897276312470413882559260831777722395581642505355139800739941329921724238996059934778044210086652273255664811509989487103491387728853114218906082414044145296738160181291957093910464620011722240709485466360786985209230514282281850808041400854428075164225294129194103970819594464875027922612620602509246840140984843996583146940785614445673569175292636229623672045213794602699848899003109942768902953174246795202769565951658510386286260426581141903410874115277131322959238886583193010036705885105698602428068362505344842123495308680887582086151338084967125058785165183693920566832901826558928373409934324388165686479541653199546194986463220667482842164523825274304363143235980540088023008661422834461256409200674550831618409461861799063024495547635806326705798092740436719632602819561725618768667674573407906573374983283158851133349061979072917273293674479384049344036063312321568770035740201215299755548055958132379850045665041197138872275422654611780757060542329877223509145252444168526532125357722953791197376089747756776984337501287975334904058441851452410388095826426478648809853475884306570237009413428653015302034895964313442795270132104494859606727741154398738362032668103883075083002466764081049231814969329343674497252169282864771558121595848971680581115930091910784469416932656113549517930093238673140716394912536338541482377699408110937669638046141269774113974354993374654793104204733792400043908101960038302624317771005698748569489134330353377008421324689614778279884376591615193805258233243693097294942818915624982893598783648021782578679664794556445924132219420765152439011080782208289417618849588756775626965161425484869921971213459639507595923781708722975932925171435532652122132310023601170618101711822804649361233308916440350718211369568718129867240163162292067583650523021453396039522915753449110583340925350285139642123110063701578165560499573854558787431845085242327114396659189176090124234247842305890487145553927496134881552675824400658963032768881367004910455250287512064803682220566533042111119918227749728000096606866705637621243462187194036489989904735483936711270797941512659713000650067393718753316870373927757750623309917839713756435552626947637450085187007583497845148427166212717656602352845878506387041022456235325305049165500540341177833645448494239144652466228443334016196053081969705460209093136206324205069312516004426705056149689818069230114685737904495219597208646313438845202714524671353682994262593581541459082298911264248932941540792837062252445015525303121013785836530428211616317966086970049832065883628748290872042876675761225439619583125793037993637708198417230357450152047978666347183607259630149216557777742510595826607460243215296512604210400046736834690701898888079819156425571831605129846764491545898441875636779155629582229838094834417520885514646105947108549394742183392421261855638013959866324883025621203485091460325565352260070623348879189796585210293987913858829994333940523384323262737317315101123470009994431322785072792323436990337535677629164603000919914234475234401928730242355301571408960124711328598977327711309993133352823950735601438907371414638917519598244313998355005501271418200289296550204590484403856791137579933861967591886429752682977645032442637304697716473314320914525547094188695525445377685095576869657759658993356688512644583679765712577442091549459831331287793134428268471282432598330620428908520945045917431290547482711151593283743993617450188709058828662252809758597619173424346419375974731832006116518718700340409848905285547562150606832845785853626419372555433882353334576996226635261797836005025627445274326809015258042660969964885094201942695129293579537866025596909817758212473517068830219577576749066360524687323059086360914066742974029536364644243116794556353464351650519583576108840699575509439200463768961383980494100361086625108320121425720034429626272326287029126615004440803217979813176522066854150244980336070417190919591774743740191788257491063325885983632674894293819959285281835358804041164162157202420598969222561318741981129603625091304189125282238009793590511519773888005885550787999485160826129157012175238551892295575293652030858127583096214875127083612859560285750068663872603383793173412451225652814708442818900504159745429992299785123807855437122917455517826216818612397877512385255185651711572264483563321674964919614046726249686583496274779252996730637699233480505819760244055182715581727435357795457413478027898401464931648446681944138711885626249617548308996783596715800090816792124909748022487834704772401636728859566666559137168498127474168670077740577376753400808640553104011959597271819134383528753671972670730490643677687674845124508673251041719214629995925016820690507748783262631058732766309478223691518787696851694335794952811479488577122052471241068973136141208254589551408086680603654481648299937519077587182265793199422308699606242003212232702276131132876001279935675536903179751584360716856464794679231790285705277494747237394543821033963636573388146753665812227470061466460601452157838663518607137342606067595952110960535743064992064194235053366574036229339430149613953287923015262523773453295224586112032527436727808289760980878407405969348051253145289765349960011083707437040348117295527827402698975063343217313493771123975918315924790224941883904070707794572665896782846187865484792830603623026631710444563170914275186049224575260078877883403512387246823798973705640449541867700156690315790004849737993445702278446327608524697670308491296351003838137432951213959236316030428322338691860591700733495540705623831547509763421754620156730564598534063670180858235529122500920455321899068754626048418742145395098286057182933421558677717354765475797017339788094704295564861651520126370226106454041526583051993885394046075301555743920741655061834532545396732877054287691161034945849334288586249740189954475286756474519732157477522538550653108870511266007625404452770589304939877880847409859513256723760022068495729253174787068770706644778685881639580753504593458629559854509372093872941098147893290176074033490347139056449858412081242608777010422542318847256421984719021035150072648106191231699849433689941702960042156370371292349815437909506442501256212833317457796067366003370478547300513739723409574515609847333127860329438148906160088015023259486163530494906037550957602664585531539577363989298176170055240073055248513787820997249940304318131320378664661134266951405258626714161387890567214431792461554028663244931979240976383448600278850467316762585646649038353106836074289775715659142870756366170787971331676820591168706355246864663120422227719339826549183603334411750034269467353409534426979573896090347405666661583214450518159316306516140375199574566966833988933510084275313531135684579680575292492041161816598668163948868283360455889455223590454523366466634928722866185002189927540174080333523100485453586776675867139945019810505956624381522943593157865667023627071834618810924828513889536142873540455414461807151550052755046145543973896509777900747292081703999400762644513293556591371808728631352659391226075188252520050420632106473226619322548535299831507760961074916815566735232628457681519206959009384568160825986502903360841539644643177972924862198192064845760639757270992137152841225387230812970661860037718489250723684725776190267895002314005682655469150366936970445168202071326492068712169549058751307006042420887764281501601017008012036032880737828309388107427329895010451485876446672685577575550744790740050754347769907786150339387708094063400185233031608017821000084581628647871338871248079669123253542471925174920689063345504243551414428957183725428120124420014446241842618521103325561275723653318397176234486459676778640336346341848240658435881210257946666375188185860808822273497431555451023242671858852907833817967077708305258136233307850568258763716150176860571137670427674688532033706915095554460892710277279595519263800865502803611277523297130076926126287638943139039020289207640505752577572867195889187295245080093731469964370922772869976338030319684117642811470680527073515064380475381531576058539744817065230297106933341251248596080392896492683818883677417573335194372891105478517233603621909751756493183576631547169980242725505523965739741276742743659759016234322690561021871395700721826244343584713377794449384960187352570981439867464241084487519684951068106471281585405590952330857761259184636345498088771434949316933052916094960665639628713212538521673858019488223686480696707185058204645939654989797198094409067044726332855034196781950431321876744597237524341096550906341905057791050218967725972770603540668323704329057699243701895035047246691231454757688997762867667360922776745418245071873882834221628459219488175405847184312838800025014822706805041646497036651709323622901989569005985692876765006934298645027468014094642430667817909244407082971780250583730863671881538730207479173234162995676342481741445161746013749266783476884909892770673264079789129292288670239444640954975473465132924427012590416615178592202200707271840408687842922806488527098698674847809067758115174960994705656769336210055779346534583813576883457400808945285387047632917007400800545205611485468959129378591659037931721979804151601425170497948422406099720571894524205994244311444372007224009930686568825983482565658725692958888904183689430395658525622843357032932721895963557433715735877954874505706111530068426893170689150205174804363749328332197540905809406617755309680453561921955431143750388399159891154911113768697316717467142200980585956390314431029726821289073442260095441551883282678849137996127100265234038622008839217394510029366803402630618761883143976673084340133544055928883026337243020266511441103826199596142654817130263420641777953204498759067509409352818501797905622857134237448253011717154417501314148532305489451918782784571580595014007525919990139703994376404852691732764824361317743914503881784695110067729615839122568290233639461238931191262461413300558177099918324135838023543889063413023789322887292306839483028274248382863436788730779754477026872764995354700013411338503227340381927775651454305141308331140066977856332333613170060648052095023945786178069035594536621492043922120065761781767853951382905815931596861715624703738010113386328073910177079062478424185326527581244134643403504574333732508510756402993604885040616255868231053355613846256533992327878556068937759604265908523483173830113371677539691422618558768465939979917949058376684398320257518278890595787599725104073845337565031991363240006513810356560447345864209867942121674540542395508291451597858828148112239544808468204389343490120233311323072495624246728619965270053375212265589793103528501755445288909137552014216879330041941312277638495312365999027980408818821325885756479024290560533547809715829812303284083000431618298089116049608954926519349255335009857588698528870670724086709848004300669069951674669765987430611016568476389693519210165025542377885790022000758052249908212601041640320325803401460291714826064983850262236218126953427929288037937822682064592550030408989533602548358875467597962346593388916636188952852095963490696550037333917222339406985386733532989998665516291293684044350248015019084205257691714941029088248731702720397254210191664914999197868211158703924034058774663215254913844493809729220929918626654867475596048354130585402625784633262282195012196442151796527802329069758495495393032156102303024740011363967232464081809385672217525618365588936229968257683961179414739575329582451114529626312927722338373013349196794664500707558011281768054078450869267788833494168997389790867990903172970414036775504319515372085032868649296595031949269998973066400072603957545675033048974060023717277713104341750378842995796239269852898966038737196456847065221314195125467144206318075498624341509396399794192140372454500913509699585368161281075417091872985083025303753141818035705982327727258081274932523341598720831878471414367920363019340538707127441121327709698949477821404376074933262348973582077474305610983374867429066314458818360689579697245748551753653785378177012094655160130807018601763044368236074202415851813864697661086357730260663236557563306568874645412991077285536293188912588982941104290616393259706947640193640141755846973416991265356028329419236995247655075063174479774527637293956095485511527047236178065539420990320292788160749645073512563235164428374826394617090300016896929800948762286446554733067606701404748858986663811937662093044390644642946491426895137971457070236514249430073383360388340147476065208513721769933382604561365953124615506734623818989312486160978065435532374517698255699466936263483089143976923165131292071147155429559995086495172879384180414669935599443663029087329882688694906128210343101096876370125238119783070410412180197268940991748640939073473768628853423741889170137244208411215872115320367513130520175647240008640509984081762246114834464391824014437855871984323969899700299541311070776597572924945610079887570406220256800991097810375571883057899177388053358641753444197745427579300415012852870968436465454438074693752888822875068421365790757641502837265959240909583397740536979703100175211560871554928654193226686061943083845244299673086095196394111840930503916827847150046894077735040014656221564261107005806970582266177599818182016934545181104683816196257457142125262105017516104368247629499938803365639444998045070343573025285520547157430863717948133275079537842063949354420229959703773072647960813358142320760674353846572565557455585569010208033740640347263047971437057921475473648140312538652651436775373899721960634600519733199298337415739615079618361229344075599439812927444126466924070288825824735091053112471446845596143157554751113728108097646756901527274084006985403781395893161117266923870923091252683189735998471100400839676923532386659956935170609052334110474652050009494250302949309769675037090754956153572270503659590475502050135648966123678508075062839499551421250043428658743353640689310081739165491778226267951824250319790178394910055596289224592678703620062276027356127442209332472573255927098050916844421383328376693066966826319063436002666343237804710981545934112522864012662693904564736512009201797137408291352117515364690511285429526896625254857513018170814040615154341064447600526122607048507942486899385430234641787729133813688626535843508352606021642257043865293254377507906568654180427611031221462638057206545260856753109303021836019897276119284297762349907990420744907510964730491111445443177855160378390056350681046626788785670683052094299828280791300471394397265343010161761886812165336051126475672459423943865440404292410562815333912474795671201100565980717842770645313313576321705313386123512734251510180410288539980348621376858648360060989792864738787624142748624103071933940231422744757039915351767633439006435418386423238567563701172842647742572532722277132786982834267636548683741291553096313140076728971714805635204633928216541364747669971919200460674335539998685796504683848091770844910662154377034653183975017764011554567429984520826099572664231121222570820324119392966487230753196751307870276498612701059770408689116660563433596405509086517788614011618680783802954786783105075193319332381024436357573040459755728164016874830434631740738781104649000587865330275862267685086987064160953050431134241513165715227662156122643813960024248529519071735801333937341659780162301292080858307425826346283043483019232264990361038097824488891247021199557438723082932273576525016244876981515746709247621793088748447856358887886386576744616676271220546858692144938511232141295098501709336769371216226703135258631202578081597697688847773388295426137389685805100474253855391588861075728247926550552435071476095880040717371211968280229056622570468959575434257514665272963504832957609967200921796021216820207425142433955441804050592754179455329513724024837859641101645166777489689714269125125232739834012487654611041469636261614197984840428704073714185000430660173342848866195988551213280510521787377278629199989310655508061950637592410439577411980536323349041100023025020246261580564035132427603934801934093264837843865720821521162157481495450361250543353269707276152020005998646022004409213893345109378487984091398919025530791609019781301238572117387437231150952812555356980639566724996312826458001035145472971206584933463296979314780313132279192100655018957075163741173853298651833116264426167621764319304794930724019255395663426945941414541624116303659308284769459887030633092153161956220182357615761429812549992810489140494725841522853946983440320473628556186334210989592517334450277287698812064440193868199829039122942052837603168119898361290647649702925577204990705000436537415433878154795494407711564332301196793125564013726855988423850585411273097452053538911985464585704782149777084891248282187001867526163847628647840431010401650386528997393695029107671789073794075828236740007765561571396611797349319132264657570942593062377736428115071040807607004441503592183989252650408077384616749615894470621793862748831971849105037945392795333564873416624674078045488140955830277216550042318607099120289201473991517262453044953092992683422972545890398996437476455778557202131346378896907927132495144438988448876431912194960033392894009345334460572328384509197660598181751420027346274634444289689457153410692476144422595466372032786352510923925013850031212360466088093797704511982324385636409233375377939630872199742133366754968454706662248999497170420363027946211365807175709420326160956946071761749590994716605302718315463850405348066189235774398672480696434859289141158141736256800930631914276934588050130564626584049974974207211864099612551288883983782135155642523436442865219435945252881288660142589198423292242272690843184507288977187325150151709776691361852167862096009231690293746863337912074630042691911401197507436872711036687114069400623619134067180267471206545555581777575580733920911003663764087751411526247285126075438554021022842944550877507903993233350647202487304594381964074691807643503433178560047134418609359103825000316483810641326254425885183998657196579479501982828437368146158056082228687949302506935698824655535114292334412959549998084783461132522241747165582498512636382409168378836817078480661583860634452401424962512854949348851096541266473522684946132831420146951579424976770769320029046507820855940231351140401586795592267203107655072704171228175200066459001975888596814957652212013269102096720304361861135662677783882155122869231680320901829747150082739412060309457942530001377151028417858417361648257369087014099158065970676552642539859785421724652128668838268122132741326821976654923740792947151936475226558568174221340390238399636155186456409632200158658425193735378044081036352820907975730395623787565722705873557221353110468833276165863683761852495724465334114988089093788591223487848344622841479138245954985813681506509452432147123721718166021264565547414981634444727759744282230940224031863347636525707846740253372888786933253112118254211731265426366460079086641155619154276280819090967550002571242019085822501640598334918230051372130864462175916427386269795373278281442279014438584494865462131574365187527667303887263527758597111786289343512388911568395304971979986887294006369565257841349771758509064375653486128866591992643325486488226531305022848621640448976891699077269966257207159724810329657193213998197360893475047338757087504414992988340512711026302514703354142505379904812766249850441088462786371929899425552691442048801610928946947091234453551608001380951830910392072947384915059000232606983723520717494202903848423912736576240076879363971175623908951854502791570972004481028387071540949985420201236034660263022744389498814229343122084165442057200733481596639950988125704852553022480150976398854178036564508683103328723372952512188233635517971857033289387918509493940783626374811192370589328346927878833357581232274783824559998917262778460295664170876571349501189763651054679644451505137549076361003827361635000882757580998803753779702836299027278197152600936840152958262748368379872104090357395700042662782161585637457788094507631923080722180920180959344959604948500291040535536252749801733106107916329958793104960383272810579992350226911326262675825900917282243655023055743026067999928095787727136006929510561363238918410624568522071256766683749594913088794005476006001565341156219331851893923819703791424942141815901407544683228701991477914235433742150216667649434736230172065130056295100966022672342181965417438360028336683815374480123735648041641084058866002802780835612521376306284389765764453433415461686033759930133525899857454533037108804038402060602630815192183203188359381263358047946920101670882257208114760883765545972117360532101888957519883528426053538715580037927829345173066656309891166391626299575479439954245439513677813645755647779333791795076965547678728826314893877797401780840414626971176744650410354685894789054867571315308030287886451712175375538282762192583081058569974138468693433190410317848528698516233652769015181908018501840755274068935611723216360015293255244634829790292138392192514187341913177204723735467874694009903818607659161858526046686312854583157996720952895041946976273424862998775232269541429410210560817225212333929555561768278146200799333606474409868202687632725008185536725363533735396642802608003372391651357617055721471919254846252121489005037613662513090114699007188957908978178455414644492750127805711901730063431024814589309046175542022991287943129141375491792002975295520279708633037133482092868076416651680001094554090264606798539508037312859726382332190253491518877182166930617642953986009858002135206325736893022042723278151220721437464213894510946407833403949529554143525286228825869254140774223253771683628238990231618991053636275847265524832128587385965374066282675342499233177897807813165528113444714022671585624223288268078096564066356899333608855694232348520435715532442422330216041189926573546882125344652465655492013589817319174675437229739391426976567390141981528170413945379935520241843222405001422205666956391679691614456368808732190801854228785060470062911090938173569110881837453290294323120226113848936009261289139320358296363110873392250661765069095154162573344199143304097723434764101848819280621500432717535927433743546164962982279944735813160248312300478680716916632601600765434355770942560411525427145442956010289606338001217951624488202899649673279848058318319783388644711115417543717133666237801206299238572256437040011560000897369990976705094000991751412194031463605200219067074658168596599704131564340312592068984354546196502773115295187491918612281835611157656439135381007911694161647207919515894202011247342057290650881046154499339044033538058827475694640506375756545224618387379070650882850944339769716347484236354674850957832659119095799497258358918055717555493060247292679207559250072681917690467879907288671653885458060512470832604228043211914902977630890995737839122105550112740323502630340032158285616453166576184412953159077378648680011925783191298007016875933724120838456580591219947165900193979442868569603404147998287784386316150312048427927846496624010433428943104651009008809051670511083385385899467697810133250088595751579532776148473111748287141801413688682417182412133929505311863028552927940111722736974612964732481933572746389624633560605207406567557486985401271549972486037363073130205521431917267266186595906467994055256443087717041505151358943713116593212566255625514929659854571866329851278026239250302484277215621138125312436361969220964088935764305173844759836830859069055005761108142086124139367890354047651368344305846194405210118115315087534087778127188090110427682275071229065070226738072956969800625875335420918235042273283733884431202099666111297131202245984349555564488645653362611866140610616417310036524307246040762785851811347733877878678638091009158051965309573169754075045312204506892438495094551428986070068219558069231421032086865322543741858518947658077514370437980126231589095694894847334000222112992726959130585000132127729589993022877239558964673116120783564493764976047086787426127143574660788446009023703096132372289444554827380114361570272198804936126104937109671925117688902041767418282708981761672955697246550886283621798898534076196199545858059019431759673589115949931429462548700449707130585658619342940042520865457776339250894575712884810862700404621853803627199619825984225072671349689439657854697920623169554956698435817874738191107844794636778092868824774499577203409955857056438920490787408843729237654872777422882778979590574163321658792353774670148084265015974276948847848855876476860121139249861391575182218524272851421634479258874425757331840679166090041562239076746992410538399368532214485973920921225597724511465945240521770312004935795436855484224697202272727597834800950801057074053579824725499773271989020680209750620877860453388929596637029021936208010511996800151054938914852365774915451188037999318979522674556752348012583875848807803953030324149167636810499052391359705762436101296720196185534499409571599720792379042432995584311323540582138006460385562041460459434227387891806791183640893539703617932612484618980955742267918766818386167651706455130310498833107707176495268472628541635644035487056079054891152985815224605163617225804395884005736680380885094272846865286142428436748435249909846750519854732197002354373695734375952795126592368738728139166210371416700284427075917222503238380346937675554946437507583190334698047457996036714896901747312996935370814239210320814661286363437602947118678890309172298480003046114081043273177672737055808757096323025689236231957783124357130681291918458034809926088290395982132037350572182800944125775837402768229683485505835111526098323783350597820041790655727004123389698860304409359979615191339054987469674638691920143478583441517021461089787901562453288495303896209508199990605433847410864022353031319585722483640984309040479510520816904500790807042773272803272184360130513411998809643390116080342852235821479405081034889743405939917250571009463118745912907370019562682755501520470899762599050910670145352634426828820945773359970244154447446778363041968457327422201130039758926202708316300476641358554294397087567594721627031483650044739697178980646313151758704284919390480503082085255713964056210777440976134175793906412261445888573010204146566702744285964337730180046942730929727280145271261070624063465722176937556844517016350090708109344213493370129631752058724277700493021216327067355947708301712370240935707063762947678412328466606719746482649789110230534509809707424428560530891489673580292920427626478220709534865544925474836637128570807236667616382115274960951539610903556757310242502612980408392161938587183055972533846700648271466461914859138506821825033449859194753108215483562879267265763316335379059852764167925869434477874328099045034683657388107431072336815754509767764983464519823204891100061611612853925008155120018334055093057410801791227520479567969802975790466920279490054438595714118591208806290823009826113703417186151365209688417543327130451589728798631973364847475879269299437142135953867323662667652933473778114754964941503096730601243238441366149809696984539995007476764158163705150975155415946436110005496111905047817197678984479005646732755381143940956340761219007089127351587825235077227223180793091833327314983584463746688417387519190147183792370014934427706085305916933391661793180087615306486075686069713504622973408914761818829755685851300644508655435846429819108820550711832271187221696830245455826417664962170151535766490280983730979483143827841441536683402318965398411470684296572242049168640121880171609533639381679124015644318941750874446153516709391364634039916949985323925187180777537196964012005448233650279683764581209449872542139790758252069402088684329804884172977140940346105856065375420262644386947114829489796533398241009360718318013054539925578321686220360681673120742673514181889141485845798036890379659731863239424951225160050718981907756041455490627801915588020204485438153788765969648482770545348725515735518661681385662271854902464607218895259273934200580208601327865886627804129664016705694489878767603888615297922502844645963068217791664998462410910012370999740244671950299485480069344990558064587954397230929840883174514834509481529852111574156799545230592801202830579921735841765578466673581412039936119563268569608291707257734959811411459443123577747039858808935283344501882604979707943823963349953869239140867558798001533301305347889538957164101337577453448722415715290574365654471515834591826816743177332714695787321540941361905215000038636981990248635086422502264497530511389226311319805270738986274927569423459428523208401856691108841886030598509174074176081592487535299849704921364113815441907533087141327924500311332194973797477225086158351394359071188802398215065209094598381918587079503941387928318515409054748230707734820829994229535521701352600631100969291751314848956513579351757187382712472438124914146076275755275218478937650455637765309701434861878565791894484308749853561193811263650354517053885173515243006816332737473754662958031472731195659995332422245462182125490750713666470843814094076578321212964463132564322025284097694429462046666230751634078673093074725557225190084031689211982333262382316425998404345636526839003479565149753917423735332420000576682457543035982774638546404050978560822559752137824545830680666051839406282288767398162793719412095529371229014975990563489348911476294706749422269932328791797567211167586368483052496906422521306725703380382975018617989933346744319459455037497889326008909141923258527051868814819386578162746859207675182653318450492071783420375766786380102420284361437430888882823649418220931172158863342656051695039295242234949964739013290865647288249429630692474422812064397725869590675127182168651594974431769119243704882774951762556994787873899440467410962359323299203398379292691490020726186798975380911894043734739274921997201758196524352354827959126085024330528422911028346795085358054148255121565605305378372601260799876700047299115446134101615982566581052230829881383232375510065374524713796247787545978967437276389770538156445364091880733805667299460977504766885999751920784542352454532790380142977783646464803365631960230947511497839769949805796483689257983494893491361588158660988411080081872373914878037387535627000926151208204353071085539363225527756452745427817158204469035479999895271963690550825089414298990885796538360459785574507006142264651758379055285059203631881392496386962335255870709604029596223925257659437692954401316654946166383635914079576748819213183039322520348631958256064988929305540776099351064156339538490073019478142753610448586470299121293474649743017927329414898730801492356043094137268148261650216930143600002242485473422224788700177811606011192022185086449121239185402656631941669116476265267313139092936192939220989026009573827721822422893953110406155717945502791581476419955524335220274763147592541525413245132685423851937957197875873612474807623784443056537585988098181975171490937073088971271448798993565401079975569601118665031161706306677411415015785590770230091034524693465321627090767238913528395966178928383008307332185006623294197202096932804570046801259738062382323369093196251522133452651626605174753088189409378526727258150618292966628881448761942387181300072778985590047652650801156602959094731276537706418721154258652470979240850298673671952968140630630837395273163515062465631069387129943518925258958558966133493195918678419189981862736632999792540147934092024833004244759483883162267213254714554668568245656718503918020309600445482835142870532670307996348159449159867236609827643702044357540821567556603098875781168756761171967106949125422023783916445625977895261654006276705692622227607076823838013309638313985975919068870338031817244944590261133149105922363442216395209531843467630055979701741414190608292233845655908954462416582766588440470038570720200740456326707028553008404096721050930627662339679675902269822756579377822936876457963517471195313770290863191732437904924104756246969773381150436036066183302632225248089486334857976580706220162169196880321669181434596440340254477552397244582873868606360065249496908536303185983415311622332915545792526678324732012984906851466377182461685505650280457322351940500427460099979792682844870422693650466260760182460080175133272025196876153644257763523269240742972619537514863030161764902077469091744394557020828713574443128064753670862840376156555276142649897599498408601685110801053870387939333817626139453245838133140802468112531001851979585725920421968376855261040194151937606174918599924235622042057416482314950713871396002949258953729475504937983110790239890651730203362474400162387709259879070607748435083357342955081414850549845657998235579776157761197605796810172171187894902108981378877617895172451854219890901790776547464122197425227989939393460960840554017893313373313724599263408688412195293499600307467874906293848344068766863296531096539394281156157856570088330062331320990757950989833735131718901103163967370400064937737900608439767282649783360865242853318042231786181596468694420326511562522050559998541815960115122211524466167493263352688956239641549914245777117561513545705018495801829829686255789555076667710335141756892590864196542779614824989906423135901688204019522487578397648411890360406677121072014233299441688500959667788866383873451114395016964314554895253383675445147648430617070308482158833303542772557095552349721720993695566082505100170749362301869324889445602070115141008835949670261047839962610289249994905846016226423222457482120458104674375804608795253444629505949266582585738731580285405648590016329005013797857521195444221201274031888673246225779422486915010314971690692448977114993494701600892897096639281086214216612500663352149270652974238388357691202964653769503772722454056132062368685332749841165170127656083775665869544508812692992406460165666679917943313891468062539499431477561140882174262072208210797339948671292907562553140258601316590961865665052467268337779106703304441411400609704699298754398760610601369891841322402065014596281623037361345893221275808472712653791886918516939129086638097760305185821857308240680488756375632661595108001694504154502580489720461112289557895109776399015684088282969060374319431466386233842403793492825973016529196715838779374147788986433134034874804081290739705718835768609702383425774261491880715430799800449030885226932876122764219749167590916588248254925273131600095603795731795276717043358953015837320253843750918661268287601579427984682809519611657581328320753924295350308531824210248397561248222616720855179445628339324589976313306713358575574586796614893281973284556164440155053370049998930717624306913803195359063383632171837444236751128348518814019882213745180070659690652675138129413019723791529989903361855444785383214745264594995303272593536923961782914157137065197775397790760484416932892431273593013747625050075855834241557956065660143328842773466331264144487377385642923790097131215354349218697446058141943949034315893619627744302833920758343114253510183039129986701173020899093680138228883534595611417937749365422313758887846778987907520994551116797824578577647328779699660235772423479736439098035809050033204235670365136226959156556183964669696452129910904087994724845158543652473365955353859711394124956244101525391389422057654454728217250537059372182880178986308771114371008035576402981719206017292258920142329764873533405646806412301474504886127275131165871912376412491683641734925145892670977005147004187744977042410120798822842446642407454692723484284194026056718377776208497205138745018155550806558152723552400320179928696832733326396706284971718164996081961956641402374353928829544542585550348611426944494257765123087204645650563054999004879130190224180873594595757918313999661104579709701657135464710413428493938297248029637455352440304914465508845539147566027916607494029921256114359468679330764427890778972622803317853215342259899365212241478539435468820078344718305842212338057696730583201393980689641736393197457805009537004971978951424181530660845833483872611834714936445502600128132906496228743386177242152718450696669226165700172437223625283405962184362151946282467064002531852708401146363315232373800346229281318906684454718742131877806073868826268388111510879878693111371111591792433696215756962253686405705148125172589989131492188914018431251683596389158770922286540828650266460292626496932451880444059846882730001219935655244984710160669277208457410340186215631849602882738815359399152293262137856778077988614958341253425004991584342843431604460591129098072820679147090887878711928218921770809293534634816141172034622051687922014303458019925525630295001090687452747349512877538695481134755655854594635424604303520725783075615393220868775854257340783145747306000821619121103850772369583166248342374884446137080251437491333139634955859509162530486419034284366932071107702636326357335322684730527757845678701339473110706894771362045939716430655622255421855115576291657125397869280397138749932385018620673667191050239886757831271655634545946776679554122438861423183549997253567515793354316418681053851952470389788141036440362999266884275351112156755446750352038674747248893778727301919195699168907348007592859817508122349785223205404727324854550315424716182994493630102098254655252519492339726879183081859470842893924131509846138672540583430971082350387054629776413133911207509676477939784538194504794954262858477659285471446011266259417134212283947669353194130494240124891282904264951342695761837119329522858613682432460620065024503952388612612493239973368671564635044471389603549444206479795438193260827824187160496875703910609484609929729628212227719981683977819600842805143065731992799897203572044684334430739488807759272812412090928624563087000451869480307050804605945369331474496350670976971681316634405205717817925281499768053875102447327047746075472573575815011589769133907510962016148114867669217322056654909578913390942461499758767355663453641631087736599376404682336141651817344650175566057049765274336481952505816924003886747759095466421303103320529742495016245801134938824583765857122644580034147963842801643066342452071781608657557213347467739704970706905769369975635527972761841679035915566888941652759181103431089826465018261317809823504583532024547313036058606415024613797572443804212488562782193173195728199185166466237535811999413687275100482392173618761853233783692826116455348897565758650820407352861434542552421807125425103754339518510151994756321692404730813013360930254091740743858412487015434445998262825089724077562031065784670385663167049551638743089384063337551567581883319689463802668121238433158114110523649689096608676977932686160792988034006403733957022438928957513873136424877336169243999381258736586207227622041732286785813530413794329455542584240553684232472801294582003519513063556018665743150186238428494461879123486812544362728415550026102676745974796166940306181095104903184057460559471187911464258196325989073788037830182463239877572175460836114634002815932433494575996787423224794307833879723125678089020429799362253362297055986242535007521274263948977715846390370222029976137627206593063452884008885772603654560186968525614887837388565726381350935864389084640383837709766374994397321978231326910584571102935325833687284677486609118161748315253025297886642509951332749693642214569864036074220211316321655488058261472122308683224530465800582855213759492871675477241453190141662098043794728054790082983737288884884892903816392961164994909153191237552776309455762602538935407388335995947335660318869827421985060844189827057868288036319190179901097235098005621962763749349941739739321858375283868341113987098045273316336062005336529544359988592345829509104813188785272436576234529951437067919033442383802517199055851466200434341541542095728267655817297310525369963393404227459013168425696958409303090773163050769755125754424365057186413584894135751231210356314613274839294109669777856351192901090031278365420211679843953946856423980227305229130929690566573856452772508853894466621939546579045702278238487493519694047906278600965362346252616360503428640185615816972746939403744380597737919603614642808396603962129509637443642173986428891830218990216016375579374490824039438181743577754011336697453745840132485733377606881445824915965529721692504212807150961503688139876055479448361229150231850206529733259321759351321207519401958895475054806433714128687952981612557445863831516857155528449798465545523625699024675454909920988951463746150634015492858927447711630529401458545004409919901567385041638223373322471751853391587599206799238335343326322142584127249606898448923652929348203889440132807432185939836956711545108624801239145941510479220708061690545891426279183751854140307773724873749249313769463609759150676705609366348558770385511464245406287773316157172294870050505446482125759250517743366124669911865485633592069658791278807909900853067901197509578458940982698407963641104074548147266813863102594683711414409962333374490378394986442058249124156954848395495257275086194360750687889491153470116749226477474578313361905798873814586937272878245997341172080686475551639785321954734036449066449613793242393186305454867635873191041863620815207660095989366175286336028225927510819054344537750014341194390713759898540677619430432431167732511590003695680513611427843969678171503223494128968440633217323427852457562252165553397716770769243460213581567594429717387904772763447966748047028779059611769077091829384755990634562907406946600154300548634429547197151647326161297010627434429285848680642034066468030335469884403050285827766994966001749481644332804725870734968855028065142513302499763125421738281068035460966445629735230035947430734285039207372014828848598979704981208748531491388340079217208714452043964745669153956078630045422022103805863966231186771157991776230261893026293367904424864525252162014474361327014111523521907596329199692041184301732469745754308001499095248161039150093376419487430376457609770966751414877089938648520420134548154427532233312661474886964243358230052292366107289265673091602189702139707355358547787226959454614204151950645831242060366057872840209925621417935501674813793240847840344261300584773882169766988171524208910726396930622765261750679176626644818155122784440679871688263474322590789437633360962045857626471273742157974752574208134924117951311693198292855702359250369659424316900576951103671039579309734276249769193281412857653486900994661024827759635947484173018458979449338836726729467155671841264840766236528221866609300090975669376842133719308703309097398493830240765376718953318893221673620729208900721376852921166160426615785195464218625312698276719244455500948433252673615030806475449052719406528873825470775398977397643368692429442538978845839271949554072254211290976893726282182424654769818376372371611411203542813766620777804889459511868470471512363071577522151709885441874452204688459661387387786100982512975798084600065905437515235284873057883353962113830581622468210920479357012665253737060352676041372024724926670881231303716402840867578382443645541104328069915141629234039740419056501746210663135382064080515750406029284738285401971019092648279669771583817529875073375132930599254321699064625476562839728975691731922626982967593809196690466182127033905207177606026596978098121421907278023034391722860500453228356390147702334959905867731827837284602065575001407893581420016661575284978185171627267393598804507819940393301446715473140952600015100626918896376941994446388659822255247172466441133130751028200277622598720396686842552979187030209291149282322494533359666404606636687593732078171388672841626057962317582432219635429653182182096022125508876216887256035834927588672792050441520529106050499514446239336664378125439258238479463488454538296940708141731652861464239376124925006183730002220480637597839136172462291043565131256057517330205280954122564223965407569214368474235343143807273502318093829395554733133382564331017885588236296858289993931619449619088493292027705583847591194667933797910389699865833831290218988648830585385672849226363808833809652804019720674788865832125817151000076366175940934284662056558125812446809860959773453084841481173623190690582364774973341224074402973202162786675361077456489380785072741973447287429127197473975547316561684246745198946363957779828031302282153471326366260535719088365830272817560141184991739552373698730445303032261866373006902175876791847254626853206244003079030161942124196508390741060795424021122031598908617951744105202949617832517352137032303834334349845308117751352969022399436511698125334500915559638870219745110457205603764207678531933763819823303304182410074856377999140780933010800209790453566526306679344664849453872587061757958376723599604383602211472695336691506645593822215434331252459201743706380753516370279072655948161385533702915610177576070515898251683606028525152477418311821089751052389266752143963763949795734404030164447367345674870909494340287002289751536341867756059019097244144643160708024741960780599867269519813953521809513796040900559816875907806908767813938076337691592714560238598251325252913259890246162169134319375006249433280111971204052888720657328770150124470824496557879207574278930020419716483679855676745175141970846323911445450225940799941935297364995150386533977795140751093366590427973262510428661756529912733228828969077434457409955724958981651776708763284647459113041896209960897533964734760358573814827079725970166407506786639647757210341132527294077849378067092767248321799182697058310883605001694102502912472287668635926299350886502900953237919627312079756338261903930105616108672696449286096034855894431706455308806523545891606064764677253998778403570441367702976786683859339313350832772041946231902057120702138552265504862587715737588464941616649290940546590827723006680853135614870627364016395023224448856981150806891059612378987339709481823254812582733079803217233392362969270785574710522332174274417669170487884436066531321000459394093509953232335808757526300843652577365802773553582894544512858235046311275998248165316573499757189639569719594090442464169967671592577009217708969833806843695837946631008218014229372057687725048145046653414849979854811622861228461425790581403296287365856426218374956763880924941504267686684712780371037122816924368364496400033383093447784692181349160525790461145662695530007296939960373456567673010775288241494028601834439941642387063313761990224280418329157128819633768959155043446894023647277902977915965219847356382610350025441386375622885215617376032588700882690631639520022594949510940364466416150854801238671712061451323248428290931246178700548217522044231288314045299219351656695673724587308475105482345657416322689994695556186854003426804451284694270843631442543397105886299636650546032603711544090665632251567117277047945152261226400617978899822346713148638100202637611011546499000295844449947912538295274806162849454700015694680824813771174305174280656056087315480539132244875402128824133609706130387831071908359892706626148338792957548505248751224338290069262465113658818639717950834600826314778741790616511788376889270556389485701314701443471129430165686537016613601592641740997231691103304210684819745040400883911113017704008022517488314187532360920085160140242802604248356140816081798393514802482849330081850533791326494744241825236086822035899701694836009687345039227420966056594852748823908525184384686897767983512786455613815239448583486833015050664791375482347894754444881715733259585308448344554585529622584395142221496730196267399849124393296343240084225939677601534817375469914034644418844926174901086589087529983059038600668408543023620294391367076611881359379797170837588096132114080684851095881645567359163423643506507394436477511696719104831877729081356037650445597829820101330953202851908380679599065393974303562942776354177603974589094331459808414480014079246485981569293073030348842648175721318034665943453122676822259854128350031421732164127296590482702068953408417806083692120742214416294908593478334587568823934012277394829183671942070765624973611230935376526931998708638773207504557422583818783817335976757436199491316668139061602925381609621400008437787335017279699964544341706694578180413516439121893401349711943842636894756295921083118161388253000413950636133822651135308696423202782823884463441200936234005504630203815829498162128112394323304378047467685613067773816874714591952648203896565745039174796411872639670118498039980329391357338632003602097245532303567638474932067190875236813602471577418438374950527592904269402963625737992919309980604154401710634258304953514844840344357554794290581558847695725153105583512912268532430923368421941693452171531524854475408610733492632289132448166526285639462428567865833551442018619665479417041371306077481521707872031766666254396154314707696599375933627301930739484954207438366398297130464160229512682096559155808706008684437286315432933496325221345316657535678108957360781551106278655746377768142866821074596575278537041633823064226824731679583579594415213310028443364764986455620408214622167733005099563985766704007972051318493366205207407973538866836016877705144089799857798176390064940881434551946645422278848680910504657968963337720605104971020656737635027642983288243554350982462212174185035345488805807246841910416295667112197351942335172985943054390664266003290441426834904899774013876895425487996702378380695011608581433947153640963261558099166694233997903861548448451677897844448552015006368215811149255261895078400892234547462150715818351015841959774096358053428464848159827901716139800198955357590615207518799428653746752698527879027595992632442338027681395074651500469114845810296267861919261746573843776306014320731316981805268015582420411607977195938948212260486682218951300229191511698835446317264971882223008282044668390952350552115013508272459097137251814838019219237935181002578588242842323022720825623635407347874534298137497386871664179193989572540066120955075061353607622631159078977440214621221979892246106312893259645542992377115338181599664611895028097403233423573981858472581600591046501424614193769034448210769093921515097111130453145983230831818283413750079557150680557154913915098172649266358744004537356088586453603045066408696317601430482983820773912640363805447952669960401992365169711321179786533935200003916858739041640731945156487282819750103670946055397113382036229608510456922889667010694125813427177925055646105066215230076138917059650315573198048293602889235523678047427391005429792980366976057060080911501627251883708012346700301562797106867358540238227997973579033181944257236354366613939363618291518213450938946140383300827732492995299281131730310440324979719638825113693057574437156114917949644886262581596652157966272515823383859627910271131172394696869193606440839958688779782790508917736883539578979806931678386244592884911694003762174375926292978752452770691794142028566817406087992477761449486670856066471455054149016461409805769693479613841912798387247271663960561928711022101466874917380235093028130519085825702256591502961625546382830410414622766579115549841028530643648557901233505836450010199831001999474468727972230537403837032177252147787855402634630175645180230685149979361956332286657659140262207873844337366120225318367373768402735360124269099626088696861479778794829798382224199926803832420013843183295101747747000133011354748567820094118964978401488727278518532565840195364497752113168041747806568415727689819552293652026111826869262562134287338684614910737304685894955793006486608021594543352170457257865489375591369672369951112366353306189008131823921276855126968105493359406560175352329489443152556564804492830916101009375115166331908789111500127148372652166571617207384878439457806147117023658276832523271250757456107728782206112380754894987611013841902653193751317738554148695782489046489999184612721061588423559796415781035769915804062244661926245565429843870114793190184725958941495328609428360289864852032562624305317308070409617740493402115262785613801559625028773503305885100946307252688767151399236019308797365815702669227693091586790846132308525748852543637566285620084611683292610943387108949064206768661977485353475592482171612396663256276947048061301249419221099766671335684248938843607423511821286244116204209382420477760093728906846906354562597679565514130606736610816263634083551474640810907588918485993231118128807448972627886640898654796100108020221661115647458180805682797929556770157861432853849202049702208282612464535022043988143215203236173781029642781461149028540119218982262813471711875370658625351164666566816409495980069171620830863766338485798983911631315103210637057643098704307834326617686311044630194192895733558498869264435913344193127107225139990614234642630467125510118836886162483127219366780469338771276745338904239961530349164614130038667797008945612848425895592583897315868257769044511334249923412533417172120596524093214808189595216955236095006810792924003116772817737910753633134374958393910237947650332712341534369184081161676021831276628676178677392726710997736539564497471770582047909694035001128692248316189695198302984834281521424915959685749595771588404645119400749196037123459620022280865666097718012212759842111418000950467997548199624329896586743148755310005577905342337137927682998990476702542075509692536406291927376914734980449966676986844523905099532128515769216409234881046129639879717685000715624984135951602157583665414441845850647111298542831939484621441934116798480594611338873327978849142787317253207543475280248612296817173183631521405765321802449978300847200629083976423852428151149447964350208908805524137250939007707925281298684248177087266564803623925916699890140876671390068330155244109002247657095239389334760439854367089118697750158172287556196091295121130918938956473981404311646124578564188625919314863120201769831098556687659719796185406916453115792889028322315970511273505941398445258849250207288041456609579853870285407360271082620778813255401717409894739838999312011755151740918645895101599673905684816532126834229885484085432386964316349925826983577127151240477453037587433516553260012281105410271096161798250278932508197832182181842647110572448043171674999545448123315751395414134408950026810808402608730687740313029409594775120581397720560097385792587889142928603210030347874037594633459260410082670241742919937989210339712927899004807888077973353802044876312342520225708515873821084859820214043443814131304370275400692240606771241847590436930271198514871893798208318152311683886530145244564579760887284434465377732386391982976337465625652175649545944642452723194519477576134721684582047719412076004920058301324059951033942400513411632514363291654492923989454443169986818303339646050231363493405995076939681817437117275853991638747041682272420451382680617771229186761445482299183199021653432484551106439783601463161541026948867691544158549740164310887825012879461690353423377229995163744210301234645892421106796193958847855414651832745437954739141593734700683208228410544356770312132613418474441799763281824037874927132252597940334180792703493601860613061567871436260587049611339200459383828397794821787137802442366364277431050315033001324867135926550463159478494119473593950907337888845300799288219403719088012673050961200437909287600747647226082437152811195304996565010740967937808775218118928703301038980176432368345122911735104140405878348150992482898008130139742993513337627574310009202832576901855724552169142977037862637100643827430681699835766174149794042954067473552311098233156659877872895554126304507719791315775363397128127264174524588867244552282716454504501487757495274913433365654029985303115391304895177437694701823799177007375874944238188190980568625636361823481611279596367718160975300285771807768506837529739416009684695588971300870614727741032333316462446364386597667136769817690377724229992221136157173834775454731220477978196852634363548515898686225922387502295221650984069844222467280971983908080756656915646390374056503562122087462252389466377456166271087289013230492989623334868640495555901920208060656910110390985119134232407475960880063224394738948106370378695132744674805240388532906775931174538376973136962528329786743242586024186540830832888657939977484703954479811417292432986272624431524565851609243494319214480167092490622640265190948627634863159098374509628257891369790197996481473576507929166646710991185759600581628903755826497699808373097439968338844423882240508842747085935384954493681711895149493395002770508612867963895854926550485753146973511500430530174806296331905441614295487731750737643033197159702633128373731569631136138811107009169502925093083377435115083605920889089095421108262937967550838204439102943025176823821926490240586850613139162979718084114311859425465828397062842716152831419997177692108477918158974278285998942487373639976493276631270756228304650328918687203269661246503702534487048150617687198357238395006603980062143605590767472005772250416040545305557328793654323242402558672043787271317286477503237023877273058451599996059174904067807838135773071257994934649615637444289368476641121837965493624170226954027413024819049055499140655695435779779132975293501606443466177545932542815259811275796966171279705183361936352142638691991109783227389661068794350331811132859630164239486349725883396131036003081355050611634889537097389483734605281401880514030161214638782735953252636204045598636844171277790079093011121187839294058639519001883669372590870551670348577220592838313326130944120214390671243227344571115677522178840716275324939919165258655349517715641891643332881173220747618388264602823708218399503625388767364055642665278021102077995597158677896109867798453312047480757268530526099489863026575275661257972505935226421450122040454847961579052920234404793215111832494458504062518246479623123563804824698995716074885503835534656920004035529689652247357259879310480867158083560891613860980544590810661447704058024437898471839688665621235138578806364894835492038274544979852622372758338210075927675798626332164376516098061555131048372175437226256690433781982796962054873650848211238417986067670660952588639729104891655437377043674025533470467219633898365026181786150774579077675017030014089580276314507731753286221633138762991815219136045168195363459261978458414001511414294034902115052071266498966003163270662748790468850201598867974488885837121419509278523216793625410860434895862456859515316884508991375320257952356455574070270165319497131263728095229025532461721149470042106638246570908123011046938774390228787728273999169945334055202476059008939378692297941720239904028221856865935265305699798480778949912045446160778831770318753742850703121465616369132499827098571254645368948612638761191603590982311080974363066097068095851080927643875902095473150616599149768579471283726207821605369069711818120114747001451364475227173983705965847408088793456073939919812895000226493007736175213876164282847215293586474370626236667498810917306531948156283928596131568409606419750281746818488458778071137695940746103307415809910881983323075895814963697961361804167479484795733490292140610467778361821102605359059294001074028172218881911953460601078886042203171950806318451000725040169171459916903896045028657180965009258959918513793173955279911259106359425799504021383073626950234545825381820426326583289775917791352609688139327606162553322933223711789341116785620748827869813163109252625150047762540813478573110499542217184405860236205895257504902217333624492628323531438850936129192397176958251277423067903556100860416989799147558248550849482682799104997913149017473434668567043202980553395973630082480099735620177299672471035520013559302881896548820272231543762058467741407362143863724526536165563571300360750475548882016346977033536782264486559109559067882013680190286701703627313500618390935119572278263504921525711221866750623162564043201091988785476272195986121340916321094082802591949102361384112561334155649895385491363468811681510031075622191527901958154601543833671265719409100477828680494066640518669346249002097269481530436358486431030424832848185045421959937913051768660862711054829793247516992208305472268611045095838176804463602514606887922274821078089945022624764455152592668116992335962885178258846460888093652679600762066010306857540269695137204302593403347972229936104578523746957285323444420018805450672416930356235612370607913529100577846057919704654134019344471320056217185753346041524581415301245409134348767096527954546276809390824143819322841014514062407129490800682455415530365408257454761900483995953908693535489887970330683938536929938738061750649902333510056705092715420518553277332180891530705960457600650066314545043425043632516733425796499597587925687255616989526423458758308444590989526434542098797384202513406397304350585748776637448680324321882935699776842594557380630557557775249753001791825270403346697022748102367639931758475324026206922095439620310989567266997111622587241512453876353407030917479438309935882571946344905545749549593740659393392603474786994692908097798508781340970992865249224152296758364339830042775525357257634397854788004794826850828812682857333819501027607003860663803786315058711349516576439332562609159223092709567754393314651256927013308300961435875403776600060940398393006496449074566418144438934362642972258404806222940687283540352106721632684475221402958650636010769215440371228456314366281272813116164491402123998358150591892528142120399726024346067398066427665928517847022220848934072272424887237325035308143744177056443040200121718672343920221418556554591917125569290069538630732324262936292196884650433248513272309395337279324757526869400088639199826686268191114248747703889631039992276122266927090303912169435857823825340290356737687307783209833834572492989075997378332066967405134399297454503580512934706554809867758276063815055474601093036530455671438541707347977333144767226507931990607586573916008063514505149615672125148607996572060157209510603759335444587309720767621812598560124815632212943354339063434974115353910099197141983219314431865757233097507950585253517044282824556957952496844707440045616163532807342651526297845502979720693866716112377923009907945024632078340177174021007298793958133391882314392997513852063157651523317508491602854408497781614624435650841826263939173342558907109448459826864622582844734839934432993610522561026520563303314033802110668281683922093112329034832527311524921363888927636860701276462228360687630535752960419871971710211880215840272045690982638951035875265009803580795491443418943581080565398045620373902818111591369097812205604238817482022575028249563912714787381466498930594135633655213013522303363925076996151466924998248850596078640313785599318805683030382667409063381571913675513072957303322523956897003520629849052056077924773376447608001515048744428347277196554620173053518120778306292584775738861767897514905043791237312680111633976095570942161381678783526687152199855747230386706656787051970909874904688314080616269596124028456788469506813615305892699568238741067426299629579903231982561234576769601953452787044574664699534352274076317621969249833025084958880649539842325386354024636515824059475813659303706312677764472046150937102661841511766981213439672747526645177357911254908032070338063982991084878938294899551723665976266717057659425993524742717610931395001215421678797810694202355776981338005218286118517247727109464253419263563693972426257460767771678122290752531868263681761766593726566678592311319021051514072561963464024858687877358421494362732910736829086608389075542151429130959793514645151555778364530877601928729711574826946621050556179660687140727651773435845455474060425482473868119241982613201958994883710798041368504405677983499671558775739750304438121976218394163728853793139213178823420098880708943971623065308159960074565794365352873710673093996487499010308285079173626931708249185693918583385034406433985781816467525625588736400285053234021190042740243086770058459934358149786539834834440449214631611990072611537353168149006261675518511355414158130502875407493497793663517537704743401666786471036466561485731732806882519538886667113848380257404681234904758466816470813402736625046666750056320787232996673062961393826826127286178178348252583535203944441574861914755187625669466999769057141393162350936636305159907581990118146811743368889698172528462971583312091527645084735344756557325132110953721671385158947688331165833895998588277865482042936076666526733097591439148321599092930940122645102493620509176373743440833547531310492688730984182563504767316147329464643030827840833948785641521046926491998497986083726362316058779921598267415779934525130729270801578282094882050157789011313800158183762844594517765275916371765710234226708530329006890579654324892731784730004771809358962927999715540234294585932021821437011610881803043356023937839411073769100336048770672597634795953906705675638828476561276817163861680988181093361669325161843641984709094909227994238749137841161187492608452500758592334353028866972891925436421540332563241111893457282474219698457497930320648860992553868644332195513465554024313843494392233681379007948812360014300427653649096304734703197125722437693800998174019162834438670797138324489276846226847301188293162562138713326778156753269110720782163375504353820194379728292745714152373564550820292519774434611704342588488210191070579889810048845476431048489787525341410907012569469034543187395867376354639145590953676735337536763484279413835170676698788699304708234137006691379433071251241253123509524917634817015792049313828577998419850015597351438364547898015186680704023669240112244075478613542793276425326037491224700443490673516509962352006132210142132902119670665110064356029400160093188240991916804497010455894449083444409433330634427494290831694571735047455423231839135754886323983518795369745724976224792893906071112702977948660743959736446509046372990346439106909795736848910609396931368401304485616040576331127242441033918004023646094039852697575502163196610772365185207103428057952087380303090434885017315714671229363592928844409428080500968801020057303432884325060959972897691155618119343043827604633005220798247173226649792818641808006861759849636076630324722846528441359260887911039942365982242734072976405671956705087167228035364578906168837466689554889958850525557264325312647458880505781211594934972708359517099893226559323141605771976221964618451732957719390616556853596119542591394461605470069916743724610574022170761683058819886618356791403129138348281553588219973496995657778672859744526513518496147311829725489851795533384188387697657746749714526738256994731696630929102458357688153910782770758966474457091897856117139372875967731122721203807610013586880620328483620601919545474041822850625535378196633964208337070040673162368963700914543571696513749231578740686736176455801454250079264090862375624805878598297132419860416625397134870551167765869813957144984443361835096999513600369972329334887499226178387829020343442428004454582246293412622975164968271444396898030954884507395351464300730183582613976162992061258833981528521477599715963724574044385316460443031259893369094430895966385978534371214591283129746185113752777104321416973444500828386954394411500911324834606308198549945337148539793415050031442503105444907409084287817968748984043032984542533029230967881535311214546606504398165937973455237530488395756952090358382335472676081823139869755379309691190591907603008877872594064246610503884088263051239224156737140666819465775696098738227881553922608606823439619385516668740848252454368566973395761777406020772440830924914332302350272298283641166571851837296498692146267778335900844426438546180044744986693251222339532744229650281972589523841647684920771212667348660106372946053721842311753935703216673319157835761624434662470651891582889676872003067485067514815933832434723162790597883547792811011228206957602760403297141497657444729390979487775158509564154956175254818225318689898739094509132971166290049419806172803528705597330217648127567316144434888743545485790929050641664190087844846943688046227532905575187082563972338555673118281673718296614389841856335132962254808469216463678623288434382898008186698404453863262862142548780490145940437497609566186477887987899321764255866095889501594913788553035845598205395375843376343622288722640456939269443519484453483182917190312783074226380283080831643034492250140775433661442278969249813781426422632601820895242586206994500917305232182713482692985518544505942850191897419744321052400105182982747510840992403301747799524252989263390430465067908873439502390392599383882939765729623094066933994448834899901120913749851161967650014824032675652724511444593871567203527578635696656699483650150109636494327263200112138894371102796698125416410073717750765386836742614363909368200265408607812452800772490879207978668808222852494468437964285264548017232643119940572058157599047608898091507422711266077697325977340919383648935807495803451356127500003349253773243344426164236905449052370510437451037143723462415418090165741936099645408726109914531632054660651082007482076337255777566746349742522240516956936259760611927772938325393929314877676560686594214024667571626674945461114792261833186134162218306960102102370765131107574049413312119234939890765506061055947963482525392657290852515387822906053279540312557955512520507811241516796908045343976119642318886949751425159760064947646557450857423116585507748278075257441423144996459603703380485032889015376485916301409331004977023313439157313772093410418005272755293370828552642782550373397910388769563308441773207576124396466866463274482095269724798012428362386167924133383997120769400579396256789523165754644602527021687601484805933144535677973134034444495244224657556839709214529696662159664902201710125135050571505554202749300183577106604376176456840262778027890264270048856951573976607940487262379810633311579733541689881271068377615786881988034622710518380900997147730551182542556121080587043938991254898328106066444054651457652647785835123321160718685188991418547970366670431103791804458607923289466062020538437211147692972853235997080815541951237680053108126561461375375216682171795671805003891479384063652668434869160231752721792456152167835471206710562687934035479313456845175730408877856796116034942543450491482773895278088707341809262328354376443126146729835521161727126613906558855685072386572918188645515893332271866256378458350665280640399412674583988370965388288015737634439833477776948932596728922842095091265645426045893470541158868443696871154639218901273599833601269646875953321398551302345189974763883147484406378792104709405397932547779370449460712168107344837611196372369383366244856121274297438486452502406228385891069119058737572953629931063484421291534050698978639875172460801840388854730143658778029833044869215985992705770493181110542909950812263799730080525941090960866383175111030631364521479208710201243141874865639725799200441681184945232824075465273931566502323955957145900997972250154864018883543381763816510211342132857272612415372518223695180953344006344962093150932075560302312871464675381438679460990959367519904179318591963465337648223101670307675480259374960159098177123956443369837117905380582671149194804118396202694234842763924206145773624480139074777926816175449988164251212230036078804355903016140669987518837266266875744876293029044757457275705076393837581354717288701236415448894115765970831490350974482739439139429641226903294041287265243533310599819684114213928885120155884559615970470595874109017721875673762344374733970954833436883074312688183244787778591222249146721090129165499218586089736344914352061623107546840126471621340858376377480111945728815480748750421618438836781169524794789079058005394183068327922481300457846652656015980732886653075132575265760657149033345940072687570830699979310968108142075246226031598777373462486928318208805355507346192882759655880653341170218550487670538389675788451391690122744213155145638457234311427108882355227839911863273058342925219275216255155305866384324834562682635368856151928280544270554750164219340976512683140442933179245943414671215705352430144938194095414606838373640464164844491823089504505038520254880111146744297705656613002549296489868686107391888768404816677244689458615130877627422802372802186701984333688351757294831469687028988737325037414778984992677903323288913626720501541792345622723877071984855212207683576028680476108633158133606479101993911062328570614372312987444514892608990207026617527484601720722974645285469659536259541449361808266793075922365960364080222259101402722510198811235249129011446963737602395742595796414408100479019624318562980725024243229694830715813257520189672151238857405562481404648935934332710294029357077600180697326029282366244688834021808275304718611706994419300562238663962710531454636378673147619731101811297377984622183669696870836544558603572786528377327369248097264852168544034474058907672951300536387196209918610023404443920165330352127683113701807259531349660737716389512633812113957130883385300748769041206205714394114168837869542190630891341404278374786112818662163282861337822091659759501638320283384015383352285904359745426499017385113770352695384564362951528545050190066522901563936622246365381350467780983295205762174848999719459798687166474648994957757113235921412976955141008903057183081372614436248456535389980107089031804135701683063502632819470947812489296826289537672450280428200063133791972744179890746362591281510088936946339434962338119953847342350981607301786257419080395107544838953710824643647933307597822871097791709887692476304414684409170331669434260306902392468151713977085362233832459184948340223645839859131583663477037555332351089262607416780705109828462423569496013048244971273065226744819368260596514208005772047720076175144579703995870993873629406713411626564876070018187143105217786475903460045685545857030909320241693363220448884335238784687810490103382206597641088107908118169963169399425176381513959047357225152452357122855498010307043543936842236438728776029916578531214727265927122997371915762838004049683550398761960807246426126747520691600845914796754647674663846983768898957204181357872628632284102225157044105379001970182763222107816108271741137088053909520589322080176484575140282185758284004017966245114956789877365688068046918935795443256543316049240233213179936880171230529042458885364393649319828365298065687712618445945538228400535406954882529093849108428432411133998367754626759553024462366403293270166726897919145538891520025210861123322656020326945978284504531522251157151232394197859146471580305634512630832188264675017661277857988612124985627103359462068755465824313149422005178861036012100449173156824437721718480058901146606609883003339331602972392993125403272049788500219308226384159923039731098381464363099746215740105223673180034782305478481365012513934184280687371501313594035721874750469240840258123352965349208553402219495631501241484633640042672220782669348276169345876273608296153878278312777742300689973633967561021967034353471000378798801139547928000022598217742416070921669984710644924144040947149408489079886138121904900157519339350126568202662729894951525228324470641259337276900915768798578461811470223658600154188878910368900965255393509083934424852327903065174308411561449922805062029444312971932023382247030311863475758986956707673396456658760225979148388813001516334201405946508991281574057966797481681823085101223648870037966626865454971056947721317335928932829204636282182674938320677282405541664134605619549846964608442137465540173518179383942952355068347729520462269430623662758731488851241707049738670428585241388582659644563193435106689928590357693035025718644340530871978365481299990505215293431584357657245550723855785187149829334470683871840177709103255311148002989352065361767909889073440768212786570677102392114432220342195273334008896356266360990336138365337043050172349511719860568113769767209236037776239096688299859589772417072570416594714897075535338192329347326875435103054988746945523698979158988250333660738215773270281278670685527697866073585456569301156762237126546845990825614664800762275834493230401102161700412481051499755162685025912590478909612425838472875857065434000368864767184892365612499253333816498977366993529027432681279019443824100015721705725760722652010309994121693631725850995698000788455100876882091500973639760254089176407058823244927102017652741851965111227686890013341063697137676520826524192724394744698598055243282856110699640390593952972464712334037858471035755853109282264604941357592287453154112362548310246898842922311688165261140541686887668407016612360999683774877125553453555155237299370086005967145472181412585514490030527999196266236094872596773059313748976229948343309516437001127755516811946885114670518634445996975534189266740860876220588513446702105200629093018890305775185946426046753368890578489844712179521905747429931993670275721681803056731532572007175749883581514421576179666138052314055685238577349258188050797404316933708915175149170393557480222514020269255170638792598214532151737458312897459454133501675827407577046222322082174456123235299467308086169105869209728957606174647711430747720315753989011801073828448316276987159335204635660983240070108903456510010810057136853213721043682652982739481126303174615868015406121866727738413361840714028100964487713957266726098468805045040064198761016172439849898894002078188003512432382233283277130027521742842328669457848179365422618138712786668607934894068045333564209894368158246153897488411050269695531298059473999748505170712959138828865369969450475008592586427889004320259981331529922860410375041652382313651785620350348873526546772784418879311686039405927988302661476784846405209262615060795919287930965471989576268813823262558620955121681370836105012299038019484886526842072385981596520813249586264211785175045139572164686223823962917371740993244466640967547541346487412896918702044145626799214449986777658800404866149077103588049170571201333557912935145485721265993407138326672323031370859372626423353952976394399595220950178712406603604331149101696323738345199744594551207025057129211171478672254891680205783442465565155070921973083569100378575552706680669507682744657299476687440806937786708453627356295151824343853533227685170212184168788928900087409807476730788804916465573395208356676355789990245797150000888929379051499101852528110461492125093233716389972766905448728998564343943683495135549831244385972039689198880479977860594791040202763025558611783004532398056823033059375450271418718303970042532272977877534637388669132936490984695630371454459867067532106332060528870305656388131741616277049394690585395524930949702412679521502229586258889110173171473791060853851513151366790719377784194987432957321704858318687660446371443922530388303573262012583394976981494067566962750129011328896943887739827593301991954792242381642313687885757960696454876768537147885195517865092306309371511483734097354340935121863042182966242827909854272505257954574356663341885496580662603785778860800600332342542397891012374247040211052076505442462042230493871663821241888093043639115198303151757056434413300491614561568735882618046336308152249415682986768026170573870157991314339193634997644636975551572504892405428017305104742191345516327487986070813582274064059165686283332499150358036890845935275124807911027960719546130875231397494547797889630304457367434122920071581705472601815878421028898116945357839351677015200796260529388500459932569869805569216429166904281598711461519664959265724422118077429579007967114898868272102890888087050251433731227522883754041607031530297188283128926803405590924456606689033481321929350094499524047834623580936290136663620658524443880155201223507410237017395546509659232947686407043770777369427361928742181908001989409197525107989999495100031299829674397029454730211679883023184158460445082569414478850605309005804676519686086248840140632568337931420856953915522061048023392428813319870394089563982555580985685546579512421317995588297389604659858862252695904716641882454955223225823405333621973886805055983369824109569468871941903975116758452035014381649376761566476665095358177427682488986628230005083715730148178076205000210411102305708734243646163708568663867406592548731915693214103929789448244026540903367418276264807570715662035090570884985845160096557864015390928169436883096278256582295601769270276980805715275165213074325869023522275725907938615730721628521622449229427672779429117034863000781931943826939089635570336044625631954300363865615607557324374050084191731261553120437247670244067530657096875707244284372356242645279555810471648767205918952519728079363794332369959736900243566368617267412693252579866012837045104889557318322074899371179485704233864816511675640162742779837765576720788782315052773604477805667591510301533345869233629253577319247743231484206593705240877827787291657824761865803461712160155065539193009416334834364178063491633933235039465274255275702435902878347266198834862442319893830688825183785911162411971386927752049619119330965816812082652012818367381491370985592905815362776356334019760061757205318556969094082059658190480795145640993283446220245232491679982877915240471926018124671058545114356871752519017564295360549774809539373069086515094691867828137718158849135567850213827323577137637269712774217910016045985648633053652390390091436717367342231022932041339117550448483845463264541361089096590472044919083026016086957688843256744193055738329113310375831545446783798020552135036943627517320342955789880275777104420722302880618339922104619794802502176371195433762757329756628673411508003645282250197678163254662594755515850642883326362625423124053193266787227010574812501776110665375750800309477318780705563727279266191628818078232169686782791269735245933857956868002351658309153408616675847478249351350987769503411010190445919027489739648998477855070298688464747232985541343012258393390471315315277948716539074264465442073703101388660391696491971420872173157825879530045830527960399359360411006382885581906817106706970853921166913786320300678110925492802014639299405532323815304032764961254892076960486710268555090632659983479561794814755330008264589872871655878867418606345701300812413990396888190895616517340350954362480388142865251051900195749051175961390383787752917180557056348952451372549471439487029643711578591097122308151844971709202481989876506182279750364019222163668858709403691374701250670125275345806583757703434303420137840602514889897623970661508383158716364788630702967085388271316536827432438372538627906956805463282772407915404942900330320047635732234241409580718681149173131332565832061078112634033370069925462420158678823594268280981820113382915888668535936067864958422915478889426769316927264073135489364314170660868865722110616824890789185977556587650314640847504130668385474642176198446331331672333133931863943965249948595931896645335424740174000307327138531082894550993821992385354110640498231736279261949721611318662119466845357508766576537089373324394917137859538801989067748243520455679584577154689523651530789097440509225134360287671723286796115346612868201709644794386601255069726694348766176113813498542283832621129342641609007946449998500594954750858079143662803979523587871582828329528712375205453282550588700543184481194519027101457405928812498803905192237982991306866509037478636082963342644541774315023996352329250692708185250501400547372779769420294405213491477802872308318936392351196979911389006328015098716144800055040922446236360802604206068342851599690772504174621275455979982247191767490095766228314511503949101937616087609479490130639627200426175957340143918550920446175007189562419863208467228519577567009435568572097735020932258802915893570570446727668839466419931199602873786238179486217001706568622567334290548424964041703706154293820574184600082793908104037865192280187335302036348230478059376537948073356189419354517931556141178883903255584881583494667525583479805074111526662319910302808814239114799679508419163138223349881833900517245875626914845336749351218228862717546832447349717783220332740822436413191204999088389288338582777244631886927484845195611139623798664706346902090730571524517444353431799615459577194629366369812363573480672430231938953631526780661463488548259552487966076890896701351656282813981088819171558192386738964346663738886705817904037263854791078798950202482342746570303450799683610364598271640968128946904286662076487870608815734607430096150955723019111261030543679982557333818286692351958012042246731110424373634362689706880781450492191640965136270312704494773826304395930464116930368932522940184110244789920469024153647407575928155537199838121113162795485643222053129950795228701845751220093908229541356401208311442408419976854777723785051976725272477966874456290375804775170101681762121484872628144293105200417546680272983552068174066163431891582493202056994708360730520697247944452432106454598809520331095065275356319901008832441219730707736531925191743920372038685374242905199224895561273000326807922646786804301473350469481140665946282954054518058153477481895099370014670437561810937353457524382606413768240984833695820437156723404261685082762815436814729860399464550721866435062617284237831318600065378257399959041970033294205384270926480485536467932253418546574987768982655160098549881663701754425090779765642922437382548173418269400706092160795113520652837532680037732518646350178764900498344874996920158741413968577416845341383638861746334143545263973113281495085584275184850606988793612963674118247924689075090479720162121818621215802589818173671407019733399325971017762237838784246881070584969196945894717302946827593905080174581716922224850026295234803932387627393002930582165050976713079454930602081424029860776840849940547204524816276859902739484543857253318778437298224633790800196511161210362083719072744646446870419894202880511136941657946790607326103680474476971019288552760283283386333480331503329442606565491469250307466213610553775615032175430639492419310928321940568837221898988831590076758821352738357675712592211123972143126397527541554148503149505745365500630330060225055090881826105375672271502957051729091074508817596938921214371228752729634392918752370629330486004226241519805278936175339648315033668809840126868729755988749064104307965857622014488883902027337640642972254514970610289953094618102567124904873545764491728439713652549858987298788747828790149100828368450053833971859029574620532234895556702288379591111284926205525994850989506454754965776482710351323838992108702494476505837077053404171549627267667063707677573061668702062648369576461349671364555493724964675100461126114538928401521494831723194705814717169151215703419464197306857401827630453426069922279009918664235672712373261209723182650072227263440735183613824518751596852229746239242705315821837637046603839463362314192015345285473196011350287986965972625552113449231188065615587089534464929791738082485991248707307984158479998984553615988362727055278102677765079655312196802677636854630935045923159533343269585142119174574169452793118003895177597625807459109984494757730127793983636277725642459393281424588795673069426048009478350655227408054532819899226206054823160507682465942601153920899361574720070390923199315601298192472444912672371945121188239034618162840032946937993658723219787596108841268444851945910592222503353882703034476411490916524572060648923328060475676267260427882972844966782659578436682558047437242489271454461565247025095439954960787307588545440692255137083540173990979371237238844143223585821668983356234494611769031592861110369020420115430509134252337848566391933840156804735055824575999138601873297692151093448257361414438842030070851354060188873803597510277388688579100549722732116072748685142717900818543130429018937034144841760544695012462126114517581170380910114332278431619901128597920760089038082830238956475116717180551242950342870431250868160986288233799803330189359937788610408572526369235680450895245067891481821222143749894622842289386129492225836052213350331344753358332719026822100634909001534765096066620716990900494568112071785368197554036221083501092192085125024068123586467299123477821259384234153435736683740600702867288453285527074605505411352416392975290498698889850426318012435899747677957509533274452727036692829878489182188191185030097955802321306045628762456125192885449707964954923115827001453420526661813259479110929179698283469252348537424073802615132606748092679192700782137151071113541821246876470581206018208862373780207220589139060981441168107183777491932993720819354605173993745666311569017372934401008330095378836761547145021149721418849860930100528057368963497817306239352755722711395466119701689841921631673073167577606751136779190531296248622938326488043686587340333032641216786674101467905523887479953508108415781882594016078880461788954124904666752865651358999022294649108310305450414569525360714775999821111522068420185385869794800893755361186517656446974982731913766930000596844194791196569728145017670835652445320789647962811043178497792331372888274219619213171896877340498618829560457382715566651697534396400925276723734201678848171924706846898182412856900445391774936889059911618344527001623705926701483326096942058130283111135612899023365795325868470297801489045246274604636392563480154103562376242433477675243862574412627504499621222011452125775140010773342496219048480403508662877369181253680395287773364024749415540705825141810033184686697531985999266774553461059701964645283630261125750694428073790424913527112744555545331619979658685525645532005784693698481081896651650979251595740386029514258252341860228325677971841145381145766290853435695657828760603188975598948183666164137027954464084740646247164708588126828926505890586246676236543778340161711907981296793611559346126811357755918768636679319740560987594339768362332820342414536579437550924180526891298720586207459970929360401996993442647303732359628767008251685499539483983030880887417755149453631936536410006701170233846884590272686847030332408737793674808662717144149004588193300267630335897353744092757923442559109836267857522879984348700266090905556711644670256034963003264246954264038278193651668954732994232201594735140753219622455420701445468298657173315344797667907907652574048432634916220835882369286891033661965650207406965132139150942736736992506166851232003740037468798941255231130364462887568591027398728317825858076181922531446082082626108673990011073598825977309847769523357030124986320329231220987679940472769453005138935586923400691948156311874545995552611713585096524931626901490367805713780492543101772930052487800532589014239930242401282638455007250120683427845115535382440331362143289732762834472339102478326459077427582334371820803333165697542280758778761575621296089646064050317691079490502431584459669294629736649853559884901081185432687605654574429187200891769305120562782404458352654739516964359782392951320375486797866663198973543829511142803877116224138748799701906397389130531820958992370979444231715299629492759028165610407107550379454618396219501150937080315280853952023943306625180209383137164182936961185151591000572523518718899967125832232085062491528588605177569386033719279638244499354211848026898901157074820902341758758600754130031814385240152915778793539090485452107332212591221241249736631417085966248924877371986278421163212343999406582405601709038522483547338761770274587764906224796841888491812395251007543871667936570826433018927941083859878812571563075580514707125129246391533693203664921374920859490135255162989028144697927672790582970524333676922286802160756722034649112126818445389144934153141847636103959089789303181756146925652745463428736922182386938158038355346417830587518674497920386221545324280607058676089158518779668848529961128997430399188848404107659587397788633290742519271906713908217484257866055778510895359901803206900060945214864944813517752744554734082400861978041435360391371780614936949004095091963221824526961731867917405249772338725144663628119114617062843314104646286600215711498602047246724244339785713672790786197836637219696970830614415922282855044316945109431214476113458870249468117799186630417107779289920908061610616114026496670366769166889343443674766555200210190251371531773729405886659040409848904491549998533422429896898182886680869487785720352924941061601907489034898109858245732537924252446828664316038252144206049436719508422124045004804047493410820022261965895083056749852875132387336287194192915250497939038246147275681461933387910642275385601313818873113020988187414481213413052383419398710830969395439771737832430105096978086029671165845616792231764331548350030718056268296839078339477336748732428083437057547817650207108038908379417809209587522415016541560437626246429516507019324873852020054189436199194683398395817062698796981310737618048985808778232186334090018252385114867692359384421956274096421680077818430749062489578847960624881920941262182137633530324953933954196053696688458404057845101431148383149330683261920633810844948442825788872699411482718359576307286207285177354161327852570353551406944735427768381696394161297767123049789592360885707130714640386164635917524410317951591200456452615369465850569587511578146731878194268822676819987962359382538498561674432781967895479651384942908992572232791357057308043983420349814829083592399990265683238362899890268705169945834256037641791255726105098923493760174804485799312722581028495137953883193877920032197930060245315900437786972767363462207764951427605651646593152705879646708704501682735107482734622501447094321852565738366617908825155736536780338544110596482664969830830711896738928175547407617357909045196180048831214477609871954578152392178101175055648011234365462177608667239277589267842861407248977742635210058236027657559562425064926666201182044154243210232117888700621141704655758324410726164491724501441695530925826499438645104724206530158797003638543677949902952373305306068074355107428452317604212801158044427762915763950311639572121954343039181391792448739854215096736018843460406880538822459388539657619000367354060241095582907095820114780735785974774857222432900923195720777825009163339115715229339799956026069955604719259740269346621971138148338776689091284778587882949128829811746984092950156019089551181906560591420662390268754648865362611018623134436507709508556530207613569829312225556729349508953653359436095715529573437563229589890951884263647783275095187101870855156905105574037480213162243231251427972898681956876945714301430270028986259213550553988635869702866465202616378688742363378443326689617853715824646086094234964340143722676143356948342769176811077733665200231636826615388655382571619997927830929748784695136823297852799064341952433741072012391778567877054799372837650367371077225797736282713994030766458809854231668640264167530365689028135962801858959220094405543562333054312115696099084880413027041234455163259770574247125418072944345177370984703653661732975894667169519273999255610424111096660763101224184370151498923729722372344252976958769637866942548592023771411669349442107166513255146972427306570753142787826605248717153767438953894819346368295165648427054857889236825704963805821901200974223063185514432683623627007690047863234741504358382621298103426055991351965730123706308448591567021916495268243083622556787575266607018379242774452160444500728156808864346743725942436601539652075725798794058405115925304761238873824690113448076666631136642086893014332173379434653686031903570030364256782662768381725685219849490317662393788992447587993728157505369321876633848467536414757883288239426061656617023587815226907768732691964887283343489261173907737747115340017679729879841023943681270928088876955325002505019997950288064677361817757632828915253401358435222642140228948118549279734357415330379399485584076642903840927716340742025423675140737428721599519889022514630923839302372587534527895890459992202735760480664153863991505632463077144818354048668502765873860809337024936167470353096444384053755442816676743722225353342154104282992979764882576257542861988906350156326196538377545939969168356885161750668291537176411649654709980726527651655690665093944728015327098657688621467153452318650765035463735757929548404527619509068902797362826407443721142749621797208757765038410105561060154134012894473752229351258948238973000232479190651750592015534628892572478890503874176080547752235644697698183574652976890356830744671450758914859116871766877002638192921131157534919411291569583441041741976620663140506674382039983013707509511463702160643998441007877596602423171473344670848163264123958221131254410038783656303130697735752830526286041568396859525521314145920948392780692457663079153133656718086945282035824926070027836913218356438630485217374461708452440877197019665786762359709746573339293372943597140193157240205103255024509809361685170516872246276573525597923312028487491511812260659667059604981283223458947461917720590935925167068521506060860558424106410616465523114041912622773706906038384888077711583499645430039806481667530758222012533904505788701591533356707933410438881262086251420194200895594163637401238293943862835101493974364077825649746324334107925479678187462952541409316681343243537516934445659221906516817849951063316172610186498223550599093668606311071522493647849274091568025486329376279321984572618884603350700812103945066083179068289843200946458426125140195399274146199553789432977198270105861363483250271537189941831155064878308568253396887862683989485666312169601837916431370383946113217249623494517819108708486275317619899571247646474604869363293399487413300391768373913900011315800332468140815509523500010470730762377162961122570872357883135001411124547756121379118715992073907881176084271665347948078483378344554674983402178737329560260276525492802039865852391273074777032881766099629054221948303087643669783801489478193775848776762578534649517976053614852675436348206351843708652176459333842749689821978202061713171935157061941791032117266743535443177594203107557988241433986466735619287720321353604530773735312681092598766063754600518686043794022070763068986316556878011363606870842698645469015938613601829942461209694257111140374059930478050104700714201548791984038181538832530907390157973904161428162229233158454176761468392848333724360117517138184311900883939555304813623895314470754220105035401856022354792466771807324073117453419662516526871221085387273904040360937000316880570849016036324971093901519827181813559017813198112492890770191478448451203348831201524096290226324738151888037130368840613031968442120368857241337648841301200203806514542596885439845904734405199376665284807526841593445311811495060390475897691207346001528167830978252758976872617910181369033050854786141920499781531745695802461437043797131120588790017416583166946970092120030146168175821223670651332928449277153232563683335003193682524269457988173935151975026879941003857961343034402328829652750260857339006828830612612298626801314389479732389425766921718908550717074778700544084581135190993488198765887317685322848370447343363293387536213305515093163108417959263048653435968712324186316312660227502925424126399653965311726335678079545928886011439989357533526857704517148703257954267697677973473682063908212317321388852270114963778528855637634214889552034788183953485830420876847640480456448122635924078917243488191442408293803169065475315301456501509255928092843803937884621404290287305682438636828072035999320150917135785581776405072433268815310000123549140892837526018711314780163799809113499048213328856425777865806163023181593465936466316651343994980170801361565469546826942691088242460576992106935715063753786184189887659305866698494444183677182385398405140849108183633525892108130486921773018176634858717620429224722936198981886241217447216360551937506420929652194888924607712429663120173372620779450768300048716606146014361883068600913014151511517541444912111439813499826965110148335442836474359380794114814841726031173763346358575810936044410498666206552601633484055473602343925247771627880614559635969906719933574568424468839942769006899544922000810175304954531528756284603774721043577958856319363152399511283820522940508593773281072743923447695888252440202737357836953439724008780004300047682716671199507932648559866491922261813859470173801254394718330223464351233851522807132619145859038059752488111330302321774573162164516302906463124024496936906949293686453121422258467434093140034350259166057098667528397485468496806490648357145818869416733023087618925203293602217143672326985789680691409230986629978883020736273797151002080110114072755895873544619939051804543966068999566089791612866026521338686133657736324386997391185654842461666600768860174716181316557293664765161960428803478385205115878154555894474969214433349439781964051837780440987760338124956441046338337175271669038422507299284042339168623277143288763670337978071425496215092945144539443721942642753187222510650508969053660460084284857269911770293181535730784185975141940487261637675112845470026019381016289519926834971378801906759467454077525268495413035536332457552692838953806574769952511861931537774465938240963522065200534421081846949778652526110261290380478307060489665298500286247364744446350786951068987810490010108390842443124839458325363574112130465030217009895713258862521784170804347806195689355907416057251939539792737788475567784677120601661954785547651453482537613768202720764096178762572751998827473125251962960176465157171596671595420100610931966948136823171493193035508559905055770362854257952500924674625952722078158774262910385347168442363624791406924950526911005886077436161565798028262707764805324239989724146926071586918523518982531085337465618564509381910431651084340049749767336425657477735990987916034335632901233315092507300109200518543309435550133534190551126886966278301940392439108603616679212115087936325551156071006965628417649512396943062279144857023401828357803441592455160568041819776565824821526435183227817882973755426282017388165968237947288214227960379291476091288942136227711580634279941599342931268479542546693617646530118035788699308460452668928093674992499398918580678783681225198499497558674910262916577934213788120896665345005197382565811524005750498734609716112563076906607311029867776458838248893418162389108872033662565143929792771828044216304377316514072041985651965679390130100472554904203918120239753298092179497736734247644540070363290834082660477921981561616508937095384761196331377278714573470291438312780052988019315843070433236346519001464865016648357094811491537045133637582293522665778124106284673393549402419556535440140907767349543994748072219848539275171392105807166804359321126714771461646234546361768764462411986120117813615729002422502911781002417450627302904866350593431944414249172869636871584159473923798438959963288625628309600751762159003074454115198313444404816166583526829939927605187986026786921687085977327442662962668814695956999762780933723258705527279630893510987904441935346438497736832317258365966112483763792400266039048699256124515340827576500075386612635594296369271023763910951270256973909810020326406015903480868336185503920570891846574607160538412743463429224184336770560821208639689606308957266022561186926905847324227495852124731851349986972080876537800214348256148378880493987382497730004670840756681207831932150216764332873231112607637377220630976882883704996365195000833728966893022959236767345086422842878414984065142659941741422664926304714476338726541381642282233678113034618436528053820554659386373839035314467481663409340329004283224616801455486838028364312295379422275877328620589770697338407053420745688151864504475794961412857423778077476238024739608127962708490329228316507644293967291733741700376975689192328322557826550532079762518120970861686153366932382171708668166167296952168431831286809487904024232609886847325326482377946724788405309075849178970561398355989640345065348220058930358190819777431654128585532982856729143147802534242349918003838741052173056497126453655082886887474061670230087219867742095253065672137175510849294494780345998721969043221299763343534534753293086735995340077524070979576781863922037198645158119914942246542905984292878130182468944738871173689968923967509063205343606141422066779884921218746186388064269330198197837135998808182250878281068530536090816749165775698513874219246311074073877320040188876148266210556153898577568273491284352751851900493749160439514377976763267807910278044730729670662645560076384412876841525528090527450934517188327177985316783121687208176174952519028919606833400691011953310861206814215023664210562076407305965422283540617226226633388974486659062108139228523786356341046702129394094958329116112862385677709486217792132226932591898732817401837371873722532584643397668417098507753433517125907895708345701039285655121516459143596646427651935215065397568973239310527809444299932166906897717159351429458282904819663753513697648171355330467513549718309533796332665847309831126077026069254603814237152404902785512451884132339484998931622756929706055344798653230779883186311056288823867534801199447942065721074265225172455468467958388091416088895378328487324847701952234868715812354472507669268402504290242812056227665850333888158207928324666262465411243615618493747010853624670641422062402939902950580699141602180903689791437173397370853086416077219572957109244484685368688426077067570121766167975541147291892893233329602899502805836445283162268767588821819166275372766245958185692829448708502480515241123915070666483305143877139229306870694146084588917062333203246224693712223240556578263244553328564101265056134879386576542230498523255681594766981575400680272775603194757058689389167288437189476215869048105829020312497985488886537381437386213810138296608316249629788914404735589515989865039426093342523071346037899162131312103113070335008490264941351135385775112454565005342038858574390442681478283875233656514103101587538463316251417844349459704438736108170306718892903654862582205289936122912216858769701511524451609420536015913587960508541340592011908394064404307168449910260130156603798045177737606248009769493557495877299321545630344578018308235335202660805778548568852768048123322741500565036138665284404987318284828567651915022738632427218631194116966338142487045358418274443518871317728292515587729715600525296306608122267770622038780064024424724117905167101790580015006960391927596267630054173280130316267559260772751540820722589097130152193058721238953845213419505260423899645480170131537715811837568116416276229717622438892687725278640614241975331197190107292887383944429741802207660601590519235469488490630782125627327211593792258889260293423493198970211055101270472125341402139150043572881307905143104434583551639374240105945327969661355879561587993175195302710916279886528926332483993204166490823637589025684153018121511446422498061291222805907196800694771761040398387733848579809961422334560401742169343209434438465105716846620350224499793591786757139671861741978802052855584124671207322693409920676013787958648344887929185357754615730106644100990736902987825426245099390357546510998922388838760867082686107245039515289936521305757378863151918974579995334709219742174270698596007140554627988088953324381248746133542777316629108407559952982487530435949314381496748696576032987029629274498388150383416875329606715007986882470822461592595653329099611457833077092104537071812052491741410075573136141789791759479268110000995058951539415838189177055790544667056144170108524756642485667734340024222651444687553582565512950850807745211120819010011015494937921440411906553278660201362210640391018552573373367986642250314241197141818817533230672869687084246571339191768515970707677379486651722849175486608258428600491875967902951748248277370256779224419550624271138815912909717987098223042485653429496918754920543104905721319138608161578123429598801967349069063528170151345493179804044106956452812421993231109917522319815834301165977108080684980742016686683368231352702490840010292022386160937871093668250104467744429793591718216782693746543364356316985633261700760997394743000604698290895820271296311461000422139608850676308589548344387086948013852912169929416199214677052278550123390229561304894161686991193993623237970254604662007680309599608563370522594584410423539451089261472649771730339252467274647887954140030916232624695848065369906888972788773029500277779886697691699208441495189532371165916620499986596156197414229667814283423011180493748775601973586011844357415467465797945665227002374178704332605338991717983963685735825416711347050629298404245168221053900807476057519972940867562709639089583212133107325959226065435806688504923257504028570572720271844668825101816815612373783392528135668400957347124731145937780437088920404559313756124999401769126238865553459077935879858698599285758551537732277484979974906684515655188291473475369802006213311567096324909754225493274926234543491209878749064935259262881382788167939877813850462832610516477547620589126731203378532353476303558440272570774259698079904088321114792691171505023094589221555269215052250937289956309907489226800713237209666577385464537490931996340699433798768569850724616845893271450894706975185151008102052816218289330806695381746254224093982727121006275822868813320493429666053989373558917846314152022186145455337325861386814622498194632711214953731341000311301661669624215915808694957525692452474910625986307815719613040701259444045793378612528231420239131485420744158961537056683468804938945030621499090562399842131895999837307164759011852187840213838382848894408522477624267075218561263785538582432185043980287612265739115235283177508329655636926730592430586427714253186554306918831972375310903856804964069767263926842724804927728040770363819087791164631586376297645026453004507020659069389309258412820740113032327898904335168814377609941028655327774234996404412491162292744663186200858824765764933024252451299780822733627932313293554581433297364083370334216173092690318441962180994642957811224948561869918231409644068150355918782598943843745694756712308148422378527207389758235350392153075514698011154871556042870205379029780849396068415727646393170025190836380103521265124873542067426230825228302780057859231058636151494909311643506772419635017716930323380482991802247352061468217992429593433382237142268815575806538966942169132189833054827672659765553708649806202821648953829725498224353465794482033975728043701614885869719155430304662115745182255768151377851586691457224634987414990173853056414223786943057388560496439921146261642110696957466178529053700344040701102657072727924797910820539956224870942985020319080888789713058285822077999343017429970275635148973372990328325472753385164108977909527757035723951589083746663027614134246468411093946928986283365082611425183224176845846167635943445763630509048225047946126884580236802345277526087047282404422822225063623718891694695545161247539811803322149891836924345002962959670579711102830969168218915158838941547122165750308562470940712342160461355882119439509624957081385503209919387564208313155808253047575901002190252766906775764100870389981469139023252562874272658651140166051855089848970820643677099466264026552337586310031129908227324341970741013874521498017236873413951202874718649021246134973940617129082175236130348212194412935077771260419653026106205990475832151953444881861740386408501415121369315296826799497338879938453180402504960135943679757458812407289615024581100089936162779164168707646451409656095108289851281247925478269984510895668401593764495036494848359876707324262846331648413483432417452448479837868114080078837347492055418583102413180233921233544520292290498070638650264748278968274654590473889469891094521165518245409481103958753055696671927117402850933954506671161700757358605383797450119238755657696445832248743431193845187413802390648513551826636808235647993301324945610392731431265704992075807881778128432955882171467610918461724758202040893647529411397501065250066255304263019537519965193373587371166206065986367279562048647715913490650673949411289368743452194747360973243747060166078613707006191258885248808705377540846074867088882369117356715120772050062484129346062902606751711785581583464603132530576903390173729985957787037559292202066573274095706187924890395784796700379701098500586497088243583747288161814935537097393849381962135513198432612918079587286854239456233416199819943458220747321317362282295237084047601975268337970669937374256601082364600260830120249641736678954055535245270843167628684758783605567956575542814761409603967235210636467713862066745868038229823024415640400194983744378772729941051560911289963807852742879458749006496273071636815291888839895904437866233717273055524734219552814092915966750579671295621690851196895558437426887560368061710380690279258314002636344920866738921263077991534107585712058511195441500739911137200370978468799978012077814888652594252877224879834622436743303490429097454522148954610207004263029850247858684173719857795413959231368515354946508333008627946018616334802511039577887802907735906248108843847359419169681861101263647934016108265819707888524157914852400634605480025221652074150314062713675602955923254897696370774420639524561330681886820238483753551672327657358236637035122134012111660180484894085284974279237578791458401310126912639793247321734723095059032126373839799968923464260831166884057091534776398111055306327777240706645885931552739262178989982824151380133426615183754073786801970107285749939184390182952372600919856433366104820389126506120612376297804556123547063422769265686172546622411489106750937371257063197752281196329457189115639431886500501545245643753114520331432876806369523691049632486049580273015840375331786727314403403837208048192286283829683083516048896110603202890863454007199763537782479378394632813363053089168615333568798886463948935048292193514841816580523261960598920715250015515010309840553210567890913918277103681455119287181668061371474931017972487442644116008779433361826087049974634358684357096845921670488561916068586235629430778384621954037034223791554218708240468832822158444660970479847184042217818310683606139692716579286715847143830161377887301752638647192357369657398257236289754548133410984222777826100594942128257070187547124110695815562075648352777857345226300672019618165885430307634796629559174633593042547179066378112628358424786840496172429378856139928293152308604929448551217337855901532266021661279089347829305158164219687782590500182492582534285436650217627351112659278838038056774616882036902439878503148238311794773394891121963158477835567968563731873041323682742194526958739537974354912883468698415556617186382973171555758262365115765859761979180038741258595102032026039822958595784301158676720471815473094191186231066658285913778546801164982692031513094461782977714123503197873600353310786205474344077386427322479290971484037822112381252993073072428268159345172212165460130047023126456699380797211015399200249730375046541841235071304321749885128438758978212862166129715462218804306174589010006874380293914539822620184433305681302503188362135660561257050947696195836047269696035455589787700126459707506498184992043022623207933105594274182154577190201450360016727720420336949788548041503628526709662873211820322064980023094449317574408086252533441610619247146876752138436248518736185382782478205635564846391271672356819067737485650607000797544176727941757161547264373872353426078431314761086029369700539755603517947406311532777355646441514581106230488062972748777627814548584841517426934499195582644539068913302973810934467428726441837367529398639937290526679595436829010254431766368447446191483625596001145915241528956189003719264608994853849571078040825018727107244651833989155244236785281981198265646623103457205699059934240586439708770972429662246818428789340765112978872553295484586980967768287691181046460628422994983963662692616526741186258917777486858543230237522272519400039544405486372232598777452102045308487887902824559538246220369420427470218789008021153937270689361956076557697923079058846461971945268428278394522529286230275938982387929778982998370258813853648631852001981834638493097817959820006559512266697687984783319756511369923279821222902265871484014674443260097876283716683642917638522456907961851117552218880571242291701669217423322825342412813187730433750007992404919185212790266272549813380349688378173711477020383646342608962819576318427179877523776637127606566083927915156457865326986829538242596440043512792717321724744105046541857245659459439883056063171925073843142922476227302125402390976681229559864968922277921145334485722920551543432397496120016883844636818646918943027809677861755197777281425787506796989457322518229214319710062666114430091185543054672764320591406298322924920107412260023599269813831298423707411201474708308105557972449142234817496085870661664602526723910707484699695565752351525256212691193568535128849727737055641473253882061792734883945280471662142128734389243703209469049532377069923293062751800112027513798274017058688094908341094854709726081416104594969797386194023938267980333408015496280696789606981385721339998539136423165329866814718380501112452678322273819776368618733352112380945791283034769599311920457446651141020414864175032078538584411833250865459253418013319292240139822821116207094607700570786792225304116142370625731251958115173739510182354852168418239696684519708514634105538890836096987960070860910421990355230530912826619170959357650056832815507023978764499390576919501672362377048474353561567502569429792786828192112057495338818447831893339853466144621349234699355653296377262895256344059541748626728352937178205474623901918256330433367363288938136365393586753861979214996634377414598444938836008238366397986452095205520099412016923879274870342118839457555332640623911502851648919448487313820907136322464354598581720690887755010847661736921589302317990016587828045700703432819278419943162904865978450028472542864388077216159670977054441035724183758175540122183405142733028862321672284965722465799027713841132947760710102584490045224052126942941862563896762487861893725390159198211932624680515378714916888579570214394034854900774415474254977126353264199755327002737966521329145109154531168675222293694321723882931615473909101506367378911050560310076730853156460511547054769560216898889766026136624479497556454430399017944884745962368743796510639838266300263811513776687767079309867696157520572770191602944102851760231407273117232138149896743161730287224570629413536095865802446560374444851297634008904258323145177848023774561966458369918324096950456389933073646474488926241833944936608169646241668201719352972855315649688947193325536882365564108663823442298768443797421767891774134459339338194913185923341081751730600724407179002028918868501114372854453910566864021474373601144025010137027682415276026746693192948191330189232493651693661881259241010945914011747559261471473814306404733807185906919594101495460764271437834890412129376057088053533268297466256096901754778038240051895781672200365039509140243933037294368787077400947365043732864590000048058000890952564963391855171491805062418271924631990483797533726407588962875849878077504527267556581458810412163050274488358462894910791127080365403917471084094024323724464731459222164291772180573792220602463079715025976225328628574497221930815201834638935598809014304647088547007324713658417499640585659670724469468614239700110726460218780473959278281096971386011187038592763945228896900947109656805535537126275439048522848379812715498159992537474826774208936296748510027255252545857635644038207582830946820256275363854847172921092984188096788297296983987077612176276977848666423708002822373833397078802799048683379223620573083317124561359739722186591751630096452303460597189682154175059058975357241764156428414629028295167068063083356702032031713123891643891998862040670074787848666810213904041579318610134274021427810021825113668832720419598976871229537458137384199043909624574672156653713142228333325294407406650281118426280645863389146055391294425057561123446956835832745359155988572326313510070039230356411178391574965935973727894367893917295271705073081519607021179135468506810243390647774411443430068145815132934127119688414652739832774508421875754911469508777660036963534493853417380025840022364864584467694699071725067788599016172437319216605326907509862888481212901627067150953743079428751009080321486008315806599707111747314031411799931847756255007875762370963137533395705158252100942423352168127315154183771826553662114174253233586694149735097071220610098671163061903447211864398738455291757250410524550299044888405970252287507105689913987079796900051818648614016228060127701552338115627832589889577044693625500306483664784584403055629683943420248939170925630018728056243241140813730368038128343309876549078711635598501985680407962550347880733535661923611117316965060801592800902906844619129789759346491376440966179865912979469952200306942575842030383048433233164320781327006739294289624960857911779284791105450587687638687151505776346375125243401743046558019289507187720288718822532006691069327354951069855253279781615439672295728646952076437706859987931758728834567635313186233126254792637611167468367999427656824067232568549228642945632503807994838281136756927894585193486532837248520089199945858794119712235614901135188189478919087681143182940010742017565233394888731407792680843891119500363656228450170655724158815098552333758438819003604277632259842460433495404885422187971295718066627161152801925055978459298870968127671624724202537313559983702766725373834831311561376011032796684727239119810565891020319088263141427041761568824679098792283844965484005099425450980091174635931774207798370337959456858418581827763058149490594334575180240597085237111418036077236907089194969608316245482230334627615063668622705476523582981690670616550784690525310250434347503182593742467947031557567592897348687682998709429483017460062545786420525817148174276862299690066713315853471371033376388456609792853909385932733744915018554995181503144993775625810454110451746708963606157938445647015154853479036460763140498340980479432102914203675844104099417751607888254643284585844358010154015344472265100442678125699854992065509285966437019564489754939767513130229066395919733063808716860556283872771967470930529340305532340396762376355179664468342599131447250044402381652812207089373264899769613439950292072008058110915674826570199031554638877697961546098525389540702354231511654213799194945317571041348187037800302133096078378393955366127606754668654585828551405078673877360698706241607711852933250952537467519827679968436870076233631764633861109454884355467699355428016237217552719689287160530384294187660365025924055029571380134121133237415467188872035108565722401576141308918055307321878311349291250682958473484994201237113441509513988269275537703329818105910723288639438356082659143510839927993707666347477791725577619805722646243932480828859081501119278287320738690251082521624498236920701890411891552980254272688909935085152359611792492116074752485819163724996124378855949618332979345055315009228394880421713206264235633512006759589840253086289539345363193978969585660641536150862924652235845687103361325302797424191731396273926133264486836376807286759979105073818012368107881074504634954041020852120418211517283431960220232287122980140840128488439195347539547536063469285647499645407595805966620359890344080413434135778233722621506782339844625799264669603854931778361811131113671218797346417799008236730316859112594544797565347297591762257076437420410406700570461826453908794788973212885237474820499044247586253495678717064656510048497691169932478920585834278790712972817723748247863825883767090878708244591397672294951354503686313522410356229109737919936200451350156480976431133619996504380948434867568337555741920172536287546311952415674541546058369615504398832188850058600822393713249344862656098498097552171728063188274309866443467468606661378415141697376342435105504866524563565133026365960984757848734177808503874564588911231089782995390755658515854117597211176004135912332409271655020043522135214770355903717225160923595083203950340180890406971321612083921010852379837719267553602360345462311817985687106501248729250767807407593436046689752948455536192195602468174808849819876155050200842499109546539147853878016876185325319587522824693291566863074532369128179390759075029354286787783163999254554471188842779058996629354155350339176753156583167565512048951072732282338126061614691736320374920201307568439038272415232348666293338794241088619482352997869479030083306417377965722508077070018802558424119712984902978915984705381152190257887840631297478417225106420470816712697084805012991201579026518591548787906102658640397289445705021865813448819319700673087202372328197436742202629031625826006571311186618761594521453114971119855704066521323400549320854678402904570033394822414416232088210952817717635776451275352849318470279123307772318262176001231011213340394144550662218478180263722831177700445439418902424903073904401434770926360090058292730552872008124272695671462613698671528186297003854519985109951166617485135922540989404255173186759006900258063208590967789949765475525350188947276677391953623368179783098117272046687140967334916298356971194165355044109306421738144397104727257033005286549853675967859495579344701294505456767394800593938969489576891868554661347839890589442364773665458796682497342692139610878846311979692305836347494220822856872662172068575807441860367583094823424270118201085082817171701460798722299074227648746499747214931103025652759267179174138927842697243730148862816168240951753986339731013305974156636174940188594357336126426913287495803548174808127265109476074110552837265261195913583359546628532927272853311163945196029449373028520869521545860571647162125333806843574138093063098797079486391153205564577262780320284281157287169208992127586345083810709308293463071290224885600078618519621697512055886987052069008642602809200650773029611342081204377792736595061838902309920698975298560456719849690136881438999325326718323121875614114984799792006155242488052815274266339338741030618673252109501021609458056959666057500904373689776010915288007093407226588643646765563758599595668872842923698309974286954938616233373107338908426745432253349035594220777325724147754101387920959874272899599394058544551728053216659128172764247257667938172452033506669369372843885819223917086678846977281368441059826125676245595136450821619409008751089720630563736749106537484137976015173030037305783859442200944087354193607188951474867439643822770618489960516376107001915536918830711663521092815722637017577274800371749773189974863173231155866573051530119530053222491581202957738189762591189540465911703685521656794046786484855506111840831216010369483145755317121799029735895574717859243301530339982352522691861451372247762477096387678690235498198616712341659143069925783067496098959135656321027618271910922888394926870908489976910848958052610115262228176647654675734813658246693049707890535692409945013513406027615237236784809555409986349786892802836786666034111824479237141002197029109777635696001625408541698802129577340830524140808220718075942726813941628545647180436683865165310697137709571532706796448281907963551972755523673562670496292413993398520185323203612739727215378722330994198317452845452149697850258927387994357274938174186460799355974347520293321348903618639649170510563159482987234877120965533872639787361105319505455105118207882179766767822901155704676467343656002261581155796121512519028862599497626219668196914888149793378305040467996658642941565648597628603208245481386052982304325575794069456816752102825220089244871333566184454116915647163985386723194243053101123587161791965310951838988194674077995277739964406896326040478197883950186727844698532008355393690528075888369300708597328749454860836392839921035547301078170479611611942430393850748345965979468308662996524454280518475373017689188224106461380481050087495269626525394660579735974352331960095902370242646991832105629050576699149084640879357465086565384474086847906691252636276102451621897967069571951497670178549370876930131910122319324568380687818072179202698170669680379085084838619767253940065099799938459666140734914363853447232078588791720002040369938605507674512657685245598315655343246708408750277610936880988645300307205735357427346965578737352280502658791715449913861363376533742593151413360233079073350694546732875994576064116034214476822211958966515574223540202155375743210592176879161305303146595609381513035282894331395503734701130433466178244482509473550433261071382169998171510819528620237155029659414915407940587217109331617142555515970732673181817799712898098367306665917538943977178567687072740395707602518077996294545635277204089545315982794013418884212860480288573873502354070374077807683276420037571115650347916195558752409798870601968816248575758947917325199788964041153705807352001922361279399785491551205633659848541561145358516234607377961325753610065666285243408945793416571902860770363166215840660515942768394226024592968097143969831359747146292069376749782971377608331297295213819607356285828638074018715858446520274829761305969077297141147182360214666624634681869269803280766865250304542270173988428579243216020200868017137300113662616270092963302700132112076261263415528636988067074748921716480165553030551465055499730121147673682312027463966572419590415049950524380396944457926856129911159770736860368579724935797016789158422403877319070130312131903913247368775921110187108843775348529708660417015762043965660367515906383451720807916516536463254864374569860603209869909288681098882409603953179702235732356857613821573159655635491391068596760609678214368939234842560603783227497866822963323020767072129244668833634735070317727464531444675694660793082712496080228138623803623905642693679227871052574958148112548366845489406586825610248793464359379309530511561367434428080688709099451921663699476881096739039345449611337889156454148352624695936201639540124752483662286302628674912319491145621702574222871823178994896569491046804650687221707917349190604645426766289888270539234092417246456030108906451465169617852113927346086536772913291951022072668214012430283735019028840981273085825382998660302574930604403210096776129047315865776253768399415605590212061350322735090240416096409484915402501238386055987704764883818064633927953360865296180448043122654857377498738158070755476845350471889194053431483798536149167334738503380364024526623579050225399824253160310996956470738668361467383057429700905046302704843998894761614545602936508820788714407741153750395459324980655937067643814620193000442766895249009526903300080221268620346662162310588517324519034286015543021199777566753139033105013477367945064786132889246302765512672828382863500057897629291750231163819123018653685923312787047323346255934792896949193768547162853097075910491417492227055912362778218782984624973491830164117571059224944614045743756097688160811435975868176312987279760462493378385066288489208183334521420411146831508777809988128901901579150477702261945494530163581782515075886745071367969191258496425931225938080865779746541777572399614172731610032546474666865884304966085105868628881179146038263488815644041853927576162709760055898957350848232937380099997544713038978671997333280789772556075195135885137099929429917677420348461350174461681460894192243672295876940881612738105767188719026542480352248174434569083800736057047729799648901397591214060313455067181163698980908002759985722040251941054963305157861235693769321154083390953414131083050839948783244488335629209930901188581622184906876761721733986892282852019909736809692459679192568777241502165198663401594884895237777942003910057233068325710399834510303756649932175122041223359858569947063207498743559493915752281715404170586394881304556164575876307028941893400066111290218139142558589268279642158611654688354612154989476074852890004253890407763300822158981584088915848733812878961791083572605891416800328651488649219412918866805653098640406236715737615068467886922771017020024258226598664793927450274043808226332726398799042796126598308518924427833696662871534466986578141790376028997552024926975320873137186625937824045880037800602369674139640107380699796632319602840871388928945550920786631399732950279462854853252150541278870967166694527106044265988088397221553758710677419545600864532174669081971248808088515557799513936081720646157177971497694813064595208699378080567197012065111219276837616158116730562851106069145895821948664970587260943236849120974356944584914351224149825061801795767758332146655498797686501616373707824269912453910485680444972265951101183417790117894047525498965156601298841566414761015513680085771768119857037759314082586137762636212962817982809669367569751651681372821979713029709340085041185187697644327498315286030109314111663555781922326597231201525166172237752849790595005320088395903419430182693119570370436174581900701775858266487530390450190447037901783457363465076707745514701431982741338263922795794560356848364568438004822306559442795677782184361160919169221625040275287254130837636721249915692266330129278005429731975271003534901601864422150317272332730998400467284195420565567411388136849910673194860287412659933185430857869649956393499082767705465691937344180763427417144640161403412470694771937811796383027617757530801045194368819006399425192389669188321794284629627156614799692432998634673662179382595704451139355571961097569212890024989514815430347616100847378279893416271008380863965105125262509343205853961429212767764844617735394330331520171650008365389028524151945030653265625191286121807690259189481746910690392882120490011322077734066494309327774934692326030783213555760607623007686625711160424057331021499878311465744289381652651929647925410943061989933758940529278910622188824422578929334329661578596722782859821379071190814150920008387363048676180939463323309726394818564777766665479178532879359319946157983965609806790317836144814821834046105258230949683553766184102617446008976093920003671132828470423531299892233310947995373979232715629055266761346408951888654447644217336910738063977120632062146091685451236761650380179546236719407133723040519366420755314230206131736512088480714296454951181113521752392461344684238117109337452829189064186998546717134161205496300203319889467119804242193697756003967256269603867354510630000673206947408298818377520109857060530740155009362738671191525535225767018719628971938874901501983251461330094377026180993493375873078878622515153487398749254141403493998391395974420659492868172674594142912155241802103323630063247299691025955187442185215716562064990230992342007004735042431611951817382308043898156707166335814267680197699455134297137564357250435156898237119481272187860630280806733032976360050107065163126607297558091712997839661461728881712395350151535058836784827970759132699312921757510244965809736566375717030363231707615185074498368618054740427948630772214912889601664980874965336034877347458764604811503421459601429916812157761065230446939017208869735015475706258785857766172415929260432293451721112800094495239333611595893271344804911247596651800415432002123692687347673915136717070332913414018819461408295324595064153109174504599150344650861375744478487448452741997108380302832141049613256191049282500055157837711540092334766732153098794226978754924493965171627281991670898844791445313920789743113015053200804833542256660968014582844647863808229685291635073160320370985029604147600743118007044583721662550562032054184187047454781493255086750756504736651041415728728866619563253726793465276129910703550968360858526404415747653162622633895505439770610172270145432920216218276978643261470544188583113525944793879799889644221105004599492812573489602482069473158466711664528693365921348339705976126272511224908859474141384287822872454420076007217803607089342107422153039073115898403992234035114922256288557022215918166919182614226072248938406265678686585325355297916147449784687106555117302733600906652770133208856189620906267381881340795596670541509948365497563411871699330533166244668396429986239150322351050206936122886145645237160052673863207760026302481696566026030476944901581790687113034903139074519236567380285019606926735532823096191933078300345220040603815365657442868220507582000445497572938146484091501437933250752079408177779303960052331163954480217385822798276563068938628548814419909771779293977209357764784908910694737820641228984267825814729209160340748731494203844430673427043822136808000032741544489560335857485141359589410990200422442627847052534299107858932384837943448990036350673779022415713964335013316163395828200089057022346640082688667079743507346345435029610981165174466629245943202928707122918235789815894586527848054047603622474043958499050992060827053474646672328114961408952303168746002839663501119151000578719020509714305953174023440025939237363767643887503044687073531281722944346452297483714370051573858240143001965304185583605987725321802535402675763980530955840884545757407958699403058304498240920628762356837523255648523018070747877845141585117847493339054826147244484186274926463135181246357537757454158413004947535177688453321063046515879202110908138785120748749629057833403626940136993655781661710528073031662237085326556654589269662736077537024788152870086747481186804385306290935103975004079147341470220059001441843145320738164526810707910035362439573435838692239850139487821745941459465139663942981053853430149534430627917259192651397842878526506036877588447011400546953170547735173634213761383540772122694706400560023743970442631863060319072565420935452114390701556257980319195462892698353032766880513182856098867038580204665495828995099901653748618478667067428958223843267225259543033838883010392770074261249314905818311346985687249604037689882152172470032368913996029947658668172598848549080414082935869676621248115242221288385632152946158447467332196903808025753087879454479548720705147477445937923666331639744595951912055102371033941658761564114975798476177111079286061630398087635079706631161586076518124226045992309907173763279652607990166197244342555796733308281252828887137822454576325447986071543930895544483616961621529318299122292164989735660939847743980064333482339064822487157106221249563078844497412710958924865538203770327560376211793290973794199218093109243253595468101705067775549454861774899440942471508346359460316790375725778612351122466769472472461608672293022071011146910209148075925822462060137356395751696919464297372793549636305658017956361509625219078303265719765674251084311830225248061258956647887920906862165349273482413622756510023164561936593329848686202178493419588488389551357627839142894386262311257450447039088912513914915117632131953367760822040426367815484439538616984884233576651375217528412756357215717058477266911854020736781108180095875998075662688173005431312311374284082164214079584580481724655012958492487690180961049113479487524475821745220312834123258606657706388499094171215272499317183405048460850560861081336085143631420985463951033847300409908089435362477771412442095989015633601045783718412706951237480101049110142811489505158449742156393890982207330996508267501981552674637562292580080728545453892193504232745543686561290068591809213609304820918961747512019355312276625797475480725660000408247217392886285447365333636008741776602648797551040193667723164642752049022685030597815931295150238699907319671134348836237827773216004360684379458492900244848721803457280800114952341133184858407223565154217924399327871190505150287118340240611000858678945311315081248748385559425124094557787659391603550891776158263390240756279794029746795004759385927340563262323655572415910795265311102025135505306331732989764020639259476596196475201946545029150372351189359953718239939301932012091791133089157540964931144160167557987934771212052656671245354782778571943553224317121222522507090642396203201631030404527342173644832707605497482010311025939980056368059187357786871077900871112764220146371025654356793397174977901270326461402267166408669985790608023639060266972579942440064896442657889495315485407735952721393848825707366189392101867255271911286542023712153003151593505799980466598733443702648589719736705400429637534416853598653321065993288934494809354617621141442323089015486774936936664281326357028091611271295771002748759706010796397286703000115635830249507914156431655814565046141909832802101862985423458658171823541138999258391928938998582511014282990265977171621358207465599354233759683727458965357394918962076021047517926634587884423431044760147662695124528006252790587635056423996480503616053325474046426927422057552085915428552288516002422159082428974062734129789309553583541761788175335425555695579675196466924221310082551965746165292522319988401738810922860166200436432613447093659302368395170416061144497897843598808008045341383537575675262924175300537499743787330870752546786823620943890798525112852409468029134908981299081025500058272664690567356789226845954844368902710373911650893175779470857394649205841814899934117350081497997791687674246747306403180761968144998608908570259770963684193439175859408729390376581000566159859951181343611238316500607178191346266034910770742850022781516542249179343118203690371125587600742338327322358880210879620428650493706220360949912636970839943169712811738606255118759976978648069758181453934391064258137075944878343700557090127183286435444798988196635817240314914495659829088606476159665975173463849193605814059171905139708070740001425765829169629462737311943936245298278986704135800595590654839814533515434011230496378834886470895836547854727138312567856605500168400949544497321284414945262671350012827945471507971840955214022947678135013374032683409575381003504807802080512998601337941826463141192338234990267380698923693519619121379165504727607725272213208635680739282324445946966915595665494705839685260531860057783284021030418036841946469278536791071976562034460613085352560717963124305071516142632694202217668930757874689244786050446912339575907903040502744060084426276825977930761029349468740422597651891655664414480714104770796063290288811506845062243824400969048196739747962539319945673378069565443998895901363043633797939665817972424485239308639836494373880762747818755341462847968912833113291651409271682334436291291536727762733473490809129032300672313708827086736536704447346908934814141038690678178047724961984249051078292712793484987035063092015423665973446324733936939206206406233770857801481478118973549092018578489813559081016366117096484475777864968655034839232009430563485330186974654656605336737412656515371492694834116048547576322868928259048112904495779000842873009326716719012259762001071500446194669793984046899196783352302012617408349356396663514988844759869460825675315433712962587771089980866826725299844535839338270957631735660931471353002744840337321344264488832834741971910766339849738292043545020217571624671461541022512660394272116400441472221411166066744979512824847854316030120939977395624362800059456515977265424890569571285261576578611370384014474794131127133992250437377784459617141408238043407444173122501901958350366255778656661250736687091883696038914192375664452475023307322879686085714734878578221160839566302605493820548368944569637837951893270692762373977623261482707315196828564455520558715428305998660082914956190233244834712914819097115725122533113833287424472741078615045117740947138618018289624162498386420255736673689506199560057480039509343683265983045348534738301875514447106191600637123843866745442296015614453364597785725702325939763081294354251332426707297516487848580057206444969578369428363316146614533579736797473226389010841177764758537652560712787012811097792352815414864026930496341585102463646299304375831540777699847346613581575623219545896397440788246187403879206852907039574761953005455405885178016004395682297802243324189072808061512872479419803900925070371783304783151566840869531572089583760060160548047181638780953345796699916330477434237206796431213636602703391785892144643429682692321893446809227599335738474761108049003539736393102881619840427570999949656886387301451514961875119470698769015676976117022233225651843924359974518091230235259876529980398393253876850826480522357849871981914929507908219957600927242996826556037765208104650740983374397227803703076048756396910916953001073986609666063952203300549430033171601014082705293227905971032262167567155847518561387025387911608590136961751719621550592117621143265615487133707374272987230106419350056590773421850962741033964544490695806482633254562261538204111171549744497544521228205208370480902567848069730816290728376319226225084674912500485329247711451094331130087362799910265175627429093517612354687925133299575112645198820285997894190745697624069276859555654445748212741103885037557060320404970836221016497662855569840549086360078404681467885867801288990986139397866687177400028956271423788304766309302414374447837529822942313652758565757588684033662893129423733018467410809098952467710513753942999804209560722403321095469770351904750445654790498423612611030577509034615353340692614058410734854702195497060634777789605716703346960908557041120778777293775731753340946076625915390155189425112558052568493946407044174532919966744411828389785716728779323061976974585662825439959322413172729488825833337372344045870524074955677094087073566160509375871428803848055043487554853941716775063764692374822253849620181554719182582912413021283742138537196670692362684596416759199455380292662096019715718599814929950253259028903164878729549090092595736100534187693093871926861439931826314894510535934319337462690314586837818700154217048219965139403656978497939323462471598003136874911396072255340970909652591321150537603125993120280052036314665836627027565089867330403664992961254637393833336639971429378852726174102026722401531614296980544124415772598118475551321572493159366139628915069641170929350362592235100320602280882954029801429526006936764360803727485820987871567276629143525244734854738601655455362406067230099615266646922137643790658985179618031864412663412589285917505646983160706844191032796169006701761426346404695912771488701289503503435164917530836591453760217101146012990107561899557816214347021742497303750265483361199534941454886598256731752020689673414787879305233649120276924728072609920432029239365045121694593334915066886004355035356224194639135733732199548883429986990883524618876944640828901660133820997446326615403536647230130323556830799129311391952684618165210817026827322123689171726458206169213604654505399626612013569670411589414979303364537324558466803532167271921278203894644883641771398880781466436087359463993131679362953290629289363509088235172624015491687436635532033949420100099586591987635529458278590601623000240594234693214889141514210762802957136702032484713478490465259526753344074950751089303543717353603486029455060098970400079866803384858302987880406458449053347207778636084623395699867588752889014340613509973218147043606414312515491915894249538379768386325843386030116273405752038290379621695590681300229460568757111067054618816918232369455052263979476541065827733387239897449299065502981132719820207169333060571373536053334515676568528288845870690855231721506023602773145331540690850059956397842896356878679210079329701198677548686741173520534147327246900035973893967153984860067548219277748934744916508434482380799907557720592979295403318237413881258713258249918961200401110763047820677806280523737417131222102153813380083426216663069886602668901125739369022353334177669047522296512428906703366478199891425129927408310368519096866044014078676755189207115670826222775752744637365902923793013100914795788878103424620497079991808712943092283628815857511768040574400920237217825996451504506726537223276172843778086873932553817044641136391491732604630968635290228829031263553208517375869370337399445314239280840794742755165426274745672820483301230842926955359955028274133476500001943311191286913051454349507368845140576661574549153804892303642382915617846897985132693356018247576929391925271128746013125959911679114833658924910669349825332736922609936767523912809073136369173385682788042199210116276979833675592239882000394312822828577444494109721273400123801347283271833610026820938672325059116266977389580990907838086022547108837124145183547066292767788003912375121989181306657362873003254322947255765672301341660467829999955575317405474855852078763283371651344552840245248499291605424587248321075361817032022669754727671289669026255336179408691159065230752384284313601950738852217108462439431634051081848587557232080064487439466168868170084432488269487460208245359910320101045188404514107621186990896271049821973288739197967355896561997760739436430735659730156869638898303571467178374887759454902110180068291875431426316662129827688633083630528033986958703394377812112648734420460200731678103653590527431443966203003172511419666586954153897968883294729221989616191930281031061494682059950080207831465530774804766314563904145498776179173026894856166570084386579297114231612532588541528103670025278875989780932755742500070292829351791330630934224495880182931476281259905400469523993211485365996178377099023087577023118540999668209424083204847235275956955227263001676310834865253182608267166136715294154424613857061470309259849000464713378019706184890070704386098456141639819337227493568550659356198206683522221801544471171111611486562334149081454933743852074569036729980752482659389423173694048849006175417731028195306595060357685218665168400594539843659235269350034613477226380829008829114231975160801220856313583009881022459243702299709386894907053448028653832868539422077610576945633066117988209006842552128374837702133584330519912836659307298880615889864816837571395239392032975330194654835134338224653295967415246788951111485441652680159689262027763398271587632034061617747156466863660067441115939666553839856254105922046154249552956769255667820105092095335682627214271842026738644528438327436125943946881562053480947915504273730182154160987482370035187627245473881400023199764625075005174782822264186149493802976825731433342227748423302763699748965243510869294925801170960877210091042312106788104020445153852626763059308013079460031796672712680114559448284017824367836653225891530245144290677344775118920402197151360709641345569568687383720350678648469396870799015618451069650994669133697438979556411556447054274188887329362256817455467696839579687834499168456518611309095429571963195824491116101364339920440009220299838963675155033301915875115922120363986400628395885444440112948325113322664343468559595190440774032141014370692026313188278671699017673573263491208590707521897601866729392830153266808096550750812178936044156606949877761838142098306693867488368675046625480341286014393875560599196841519661186564397629515734443613782069638242125262161169635243031949373874869893979655907938242643607845384433574922370299266150211875156499059212421038808748833810266733889954214860355958145434826441741116564490252422326324478008400532143672736263445647752882833627484077752759331626545263774073468839348661598407430469151493528833219387049499956494455087053306547080317898741347262245533550290283929797726566185944373726155093371492910400945313079726040352903247094516461157874502819549539410446784756091890657644078906212391316702263424390136872539080080506416112704169955406320381362631188463736221588574654437073878007703503265937954889686253094489682111475158619787473491356170311639473856785369040644846564609195309532146618816294361780732184211728023515465624695225481862650897734054509436339420084060245996216759513895489344280126339512924193902661837990386987087252787193074984980913569994681497352374395916498930822728353524655395143801953901250815896157026035625598059883270375331243197885180868775754513754984551253460446940248434215436922473536859691709283466757572753755122924297257693809867784200011913193927470977070507833829792804339066569004580052465945443596496738425778672458890284243420893030305519295111318561086986939701805487671041895631626295740515083858863959919826455782779522031602293019843509796346395379989949603561014537781821775105092875793084955802473306129693811779169907937032343678233218813722128144615266674725205002613836652940442165158002493789790070504394756823445987642131415093331246801914820742857961039885619674824626559239336425432490577827493212055561856576398604001320626061644820988298019375655023618239961588627734398346771521849417999298005215023364899869347745917260405605599953216676540046183372745034937361410014254424997752544457643180325357216904941293091793023451609283137642937760440493275590525415132960918306250172547343541024840769691475248411437959194557099492784104749739026743503645426231245269998155728952507536891131138332614980774583022538029497254849551124801478281923613000850466716241624592722168978773317847037808026976681343588334673279759248607847482616843574768564575212811371043753038033646960089528169142280191384469284055680061873908807507245358839826493109521274491978422010709709909909730917069827026487254900695886666022492240287854519940379992622524361199424093576015183487193383619650358129601371656812895636557517547073663554482907985313466084312403830280658878941190896758491813640450681676409974791972462646867015703764106749526741538667912977199549213636096800564059128471111581839457466106421357004022919467308221474041900831316317453822983770650735053830452503318976992516499442219438517139562063053433540817236347398638248461609915535763911173798228252014496141465492572298605052693415527317668205135283048673720276374835676961051805198452129372283659860965808155626290756099205488779463491929484459503754385731864079260651614067349136535290799471494347837243933921956170031040327986365463650686692263857584047600826058812188772118128495684999508672457666544897120526344584538141756024253956463015803447909862604827813984085705192572739364781432347083064893942250124449339189479777217847118346754444981696753036142774974313265098588996503203830952861991490894558640550378462498390149842260228133554070463441564334313569581708929068600087575549914260710973381504822764990184189806972658144158805084838548614670509987483573041008173811391440328378397420460734196092261537099781814506271390301488500816051259661059214489208773505190102660367808981432164437322644534610673229038928852798251282310788743156999351333909976178434409275951108557318758280123198277175118929588490080378934288946494511972341732189798736049043522255837505719203816561584926885399629148924799460097132400767427505881376925744848663464426128991381523077313956877441266188831133274712691315521330634932347432647767997315103657874483749892683148003329921214311203687566230329237426076052214038566077663600017560610387882167286606336012958370578155164512230697882779317392157071288293296206831368573309286184827837974625939734729406773492040251155703622676569324813821983387920901959211535171690770445397631440631883967404209351157048499747360803121694818523768325071713934553927255973115453787152896757301071883298729566632295434284276387770994435129337591296895998683620193000923090125703199328107933006199111915826693785026664816906882749030975771493916659949147309649689203891025310472333185310949238277577771008565120731055235486571252925629108955207966900883849033852651724542169355253159780834140298726842305665416280385985550149434318869734804019424832839247896129716484381952760070653764667686634610558956132705414868474807216940890993885910223070201008668241423477188870839679429994002641399904073905570679570948378508238370678306816752011704237478526297358846372415604430342315355988168620496538120716808120230393433744463027246609608067250940238396506113299420189536374062433227541441851882670619433531392996538677052308013214680125483886371973198638580418827214452183737702308347609670775318886892526717195267985182481180992311366096997797964701669280391983435623856751598118349277661295107306037897011768014216531243763904470626369555929467127181718006219637743625609412633783919945923339878421929215681762774349023682030619234778750731999206073918231604594682723658110034531198243131333806888929763267257149107657892305793298394602182885910758767519551602113266630725332545555506885382244383122782284717875158221937729931528813900594154306025254900438072771798973297177525993385264189420885628451630114674907027217462881939920254864977420449870731588140720278174048233636119211126378830930216205090341305868730577368991090436888454736731636408798777199841564524446775723886460087741179312234195243907199908605423905893766533304993167704035418247056512561401601639422095449878702558873382619462882748111334824854178370628060930863846966267036993158105668445680793097295157414804571705409500963167947925124848893536312239430825427894462563267831645292445498688942600763661099858922643982155936176484078673418509850599275625478427523340195681740038911205122810321598254177854877571753348165464312190766469405812131398039027232093355163753156217177836147221386014094150843345942870066517363625967807088369121822419197476332627899710529366418062280195385190577537359531768508957280912489297352670197739456335966062301748266408442503630453746299228628809264697758521033328919162791053939860957448661443066959053909081060323200233128752022967798395235766951182491223039339087937538718640362970525437311774779467037476813540163175121506732165052769830547681705038704242257771360994767124718892578485785831596286586549422232749902843873865271185687471344474940683997853827674264800057521662398397121668372241555825652075177218351150016198396218477226579809031530953908272886003765206388583303531394634593158266344459741095589191090734654238517711747474598577290407144658608915898061627924261131321552318568810941791259672507940222803468498777100430414461926850980718233302661781976545662383954611505478244882661814921215187776483831641101758325567479576607224999716803559397648097421232430255870977176210667033748575881282333949543364361724218200024171743014907676545402409574292161618979069236568599969818181049376465835429866957815255999123123891780763795178024787163470963758030651872297836531229870136929914901540145145564703522339512930774252526105907757186293607322274071856154572684541236347516840821121451513762520551689798678577315365794631978412668173906345116380164075670881770789048221266276422049794831905922684474112743790395087397116244957856311860929851845744017930337629749084025109765795994444792417065463591460982633958835330955380436230917176144174534480250723154512822034321650524733029139093549074065022688711532031638760874704737946028186477574805113331978317857072506502516809851152285879243642061766808301243721038433958016136968281316564050161325177169978328440951859375147585894445788594543569318973963659595515846887283224816439349570317588928098015414117936983034242820882947311202383926711988065407848354131467872861393095897893268291139723270953996470053172789185848732780411399688353854002961492313328592082884347248702583707182206445590608344617273328393781879246557743091206244546801447984835848282638100064597036740545929862046210477971324026560263823442488118459229539338219725085810916744876148268651214334894498221743879501788495974656530992815792345396440877064902490492898789577314999374759114279137324149510224038330208556876943453660171614903186729308532201762903849200097862023741122152322974174883183967088160240848197168521651488196014799611845248063661435936278823676878750374412753325152071533298026631858558002549420928632449883941479322840335477410692313467283596571078379584557125556081989820468992880009916516983762448238297939692933220437590665089788284240093982914817920379508552642970076199109011996271124031427805444305455015933989270158275395798012547647782542160285828493116992878186503532290587334435906999012435195650196568595719035562128762115157286426078468163991367004471069495432639323116742330695157365202886959552215080114474332904633172661209023237427366504559969677772746559746986163161632558559287678409825862598841281208516888243381534528625532078110356092355026644717671635333531641129600406695129921017728897280128708292214017469352680065016097252651313626278310166743700162576642079010739841351178961021010598094384533351546824185788966418368584037424707078623687559770316372572920592985827654408998950450743856748079184592111758004292074578770702295806730585194660621279816775895303818943812108861474023333449588699672115017946824919184251574108173124577385668793725082834156845850670218285840382897503580028622629973179018081097437740608449462572154852115623596946204243289200936315038146095695564074972752712554581717246326791152285459628391965526317683492500052346274483410326281750521916383984818169433824080090757947842693370674051919939584948435791634200483332039119792934363772713834278605520396810280583705676956034944346517937502674042822769340873232768094994794701585989546298850267815084470179613688693947173037111798927117225721908414522311411522379790074108469629397202258973051588693603771335703504787120283338096753843202627205406593411971933613570580592588044370613816849624911965363382833256520799763552353851252111439878319865062461290055806412389304892557013713603718557929454800678193747776237912118510533699432461899079716824136849712937250523401879203966672586312122271952888296686261798330657797092625413870430019476341373553647618211279931189588730613251005053850032001734608835599247455176753318450016635291883040898619148378885923050643038536694874186523601064371214383178645346191086799827397346026137187671107057928194318814562018559679233597683824758828569207162067996561916669224666523146780468850962640931829853467188976002501679597378761430073708171827108026417811817088480318886090885196505764286407580468868508197794675870808847761583134265938927966059340571080793460357694471565557787638016418894721160223544243734629506435582963672534804155261323150274214923807275956895152020076259916603304930535284736213601875677504850928804705955075779794868106434024274716619156778212565538367412935083356192110723549996335238482302575865980698666626444340201463624155768507390513385882206577082674486447291004894967808269066433575256521827916183050862841945454462695994534939083192225456634675475183608003234297285361527558614662046468458390231821613969213209047750672920092826962436415480531906029647813482250852663082951588666252792976741911004485278673046862436356964365155579440934242841955345901313645568277181983168043785659807082766746503303630636548713927332785675295889835959042125948636304375321681063733034614778656511084976647587472759987592876093170421906435351721691074056287371201117695865779228939167554673386724733262002457014649111561682420608230554658612428811646161335921580186267434899131925295555255738255587608120281344042780121691879968034261699084135084594212550085993504139987211353223051907225158678116163214397024653048837320319247183522586666590033070175870576502196246767029800359938729527119340396326501160512147955232612684163609794073785004138473623003837562913958608617433360320963380738180483341940709756571321945664304931598156933337757312673198505391357249257242343645178916377405667053442948803168685537053895829875388346753329149663727343835092171094876901216590013741023082274227503883609678815954637222262992555717997848251371205474528937777843849293739564759995023227407730499166182153688812614645946022615223290628246941063280337760367805848559085806520037122311950269450014563647850221889103268263997796122243675936496055946659756732135198382973308171738513955791391281076756143653029951664275234218038397690904498823293278444809842745864524993282464574354491415511718644262572704238181859138976814174615435718907531707595546656245961327957697847652439473485768087237319438751732537207513802936727173952181138783484112104687859060354068946076160291217377716066950749159694297917712434237036068940363854802144565728264799352807288924710435715405220472319354919625487415229159532730793208180864582763576346158076587244557830554004550577358866318603585921157072797774357907634920525327524830357797678763382329613368476659072417290904535609870223753542802185658419687230249520200070961531984375265876737713932243943640164457823933955906134390551540802368449453851554202554285560711849647212899576584219616550844319752232480249562395888148201273577844471996881408764837395779911755303876400301909103740535399138879625164202086465848172603613431453326210705341843130987852484780377328605966104321057338352911676179844291741427589078896689983261770816479677528790030830051877918189730941989110684636494032353959524404688731584916294446007754778087070764610510131912275281516304077942172596303549174728297989808105960921871865639251369696526104878851594188245896637785755627683327953839276999520009932279921306339856325448037526938151497083311239537925686489821072744271641371498440573938638381269854543022986520561886711731024032714247590089158179535266805419955442905408967130513761625709386798864149543871781768333107055871436399082227077240313596036997886330431003184431250352584974996537048131378906655744486782079334860282950350714889999688345427139308712327183264248420891213143081165026426981666356699546150360040712507513992545140249745022890206970568249686034966794896438105149692753392106424607504025556575583439746682257078408429290604025543895816600614037792856665783708236755080306763672415720626383634821196262880505404086208327189631756805781153211812047499021530328363195206671488831068158305136509935136030972706722714148440220795859053006102644282912812867343508821655810752201749710919291147765675957080385823285094486210380915221414820980314028308837675139871698140237632280430165160893976498219168489685966008904449797105756086454232196022486955903260506731296220661746476520086438868090609242850348699097099967214632401358526472079373240862930696924320005827921914423506884283165655085211053565955241255961945364417161886994287834842272862101843022894860766547072025012746626332596622985061744565237953591735706472283145208859352327181854685539614798783749132868520648237827081761625372490060981606043021897125161856057611136149656521640319284522375725234479943634108445228131967486082687510833551980638023198417873967259673906838604693413588591992175384046102101879367396764582085064374608248375093882775290086703582502764037868481889855072450185869803926402674083856430884752844873150833191228103116268685085662085843477016882604492578441855273810254835136654149271069652850053090037562272863866935455026262611416409262468397383868110275808699400854118108680715715118784142721571391698968795972350499831945923509625629399296897353695839638195837537311341633296703224696786337943204316093856528138844349016905490484952639185981050372289797565264640696789367647600413688724193092447603797036461665235032257188670823926654011987556133671633831344624809113376552122497220130918628498885011173475897064215820547606810368121744380662331647440999729799187387647673200863351736188502067859726195112293177335322536050158619761085499833029640400679801230028021389611848485904106823895304261404019794222631960358649729406860888282671396177852741290049364873360066382003723470568848076188152864434990700426567412186703973731323014605145735305856974226681970996485525416392778947678285743115667196440958456020569801930211547274626796109149161370860924888352903926909324945241768112671655446903044363768984018904642763528425043289694229226678337974516045669392838327004964913570161264791583961680989253211819183121544645166299636275354995317185799570085062936928367430770185470620701942164264841726188947503109958280974104399390673850039824475350666397172939904988502072241772281055947002261646338030799758861834775318018503832795591116923216348485384051601515541402677404739556338773428286577734411608347983250404479749170066557360102380635059823315749759974641240456706019532526727329182850419049405834998004689804196273690142408468053749845052839969360864568198576080057273855720550337877295832639039189511905535641128600717425935117774972567958669997910663056918584844885135937130453995571145132482246137797453217268009166457016033466842875765620911758786073120661303943584317896502392006880515879087175258198287501963984329987287615170472853067494825741857958677958337588113416052960954653657211139466167769563373500129444258539205637188071394559855464246660228393346872480262814966556249856191472850955990612665187196839598003780139654483931505133111217341331277471296785313595764133226609168897182714077813942743844762762952440931519084504969275775855569302096634429353234766320738983294419561090207563660088079229375771048216633575065259366160921099555967436360875552242108367584036278062652943541128576472436463449963387211568016102913686764600964829156164900605874257531780198946072838153044419655686431549809495012910850815463899756019374733209137673140080670746960667327544035618672019125623175683905470218626406453770574910505459516436942638717605921930875049834372241761234545452414001095486156914516480557474664564655179658231621824402298030768497219003699118010784580886233484938349427896013899579207823383516978477291695115217731244798699244920151564661689208578939423630136372047411989114219023493810570912942859206370708658582417626285704716101705091051826472209168652521500680182704266833720709709455968177810055308892725792773801531220744469284960230220633508075383483480837446774391977864519330318535835506866304637369088106384512128571927557412749739425594458053501890888020953621183389662219459762264908069204056990986699982128810256194962929766199291271428615416039491323834839107427111862560327896411095938213989331445498210189649898111092296820011105948232980818829490643804884628656635125999229888993361607973417955512968957620790843816401449437888950369802308704445987226784439667000562975754746688658444399744037991365566217842680786753727641503379318156465182269371133812463357776697421666835195980949605590784946957666985800852566425459210206466349741474191857849650571920625550024909786404919594744125290659209943649651675341050049341530862609822190919485868623088419450950566555087053656342975567408098724095203946725088589131969283310523259954860149132052174611617596997349237709672196294226999113830297942091130387738031889405888362154006819654907680230958356829858879886947074714139934557940333817057055675539497582362949152551894206146563278697277803599073742624090243990852516819030984076562447754737600467903721491427568567751937738974478592735336195562353572574241711937503290849474037279680096753087249423996794962416681898688885411267552297890986245444199810628597894634773133988478280572454845603554399125969164650275681169592281782614345948490653325452304722212123611865781940775523360999093223206705305067595631320137076074666967072317006687803258822968580973762208001947836112855108683056139107373112019669962063939970017384561055336796196586399004207365357265757720194753543359162425190631670429998263154565625185384525295011278060890248294773467674855217613808180404499217523550016504455033281741750810716037735717084722887473266864069205308402507688541796638596279885099486500686257721732056355977102300520597505055159580587545229581330538445619819771110553521150948037134087726676218418251146570511389089650563273250544535543518065086040350763450665300828230018056189903483103614990417101216153308395190162106340115817313056928716755186237295354867415182104164014694545209181060155484950452462129900025060232917459583331257910934327227723070104956647207151889255292406602836957800766612893237046554276941074366286350226701282135249728282666936744749389489040381504174156555165570914298275900752589150970813587379367365544462906892248327138306877556855679258160770901106464921635390984771320356944399117231611726042695105539653300679016640703936317251328494703980149064090519216780989480370642075132310749526870535919588799332183735778372128827257288074484815926804954605997274983442559576924218486198050938021094270548078098415076801339434149177057273486434822182538682127711454160356802834151791927125956019162573247869180691796514935580702935904224765892478851374912586993472889981339689852669214031847546800929395052268877480800646363949043984838504871626043535111530088312590738997630038705512839624627464499492388369319456390512250329971185871640183576800788811538329392735867407934931382414306420085137151086445862988335729395841706406801444750434262816922656652065964223599753537425217227361167714420667370666078872691269287618350406757738490831290600962300659258059060240013720950200370903439088319505385239084557658698000905345697368577676279298323184694304628818002794911552111075727753676348738295651401865067691000264103756979949871938479609778561588184590504964045911401551815258260878606632631513593694402869336387659472183727571533914501895948527665681055820988846566388321167829661135249037266478821312278594179217550612207615836786805859621218924984834471926344138754345247679583790787964806174252370543011541879665861753883610171400514672988499018256762366180806362581605441641848494245343682668575968311804104218055286173582733355293200623539822480448994827507299015467644422328796500442910676502191066362598465274500064115689969183424168953631873408135383185076815783230038947873675976581134831218485161584392835225526729467385632440560802103434723941132550557306256689640344357219980765539482192401112803193317991025653039271758702192244420197565641441799402032139877924198263793896486371333127894354760012915002395619218802636201524133297571471308022085981864829843788447221154297355645377083972478120990665141015941323552247373708705145621356067006365919335904713691758494920450769739601267678926298126437824096356336924600743129551731886265621173815937071773693055684686485217598809711173508584265055400032126384370539803911664972050198865623519507037706782834004619459234074091468490743931129516437935910386585443831799166517393228756393392647341670254514021060706217165903810655675193784726138415896397694388769430998573798634966243324908824089116114875502935830095726109116461077773760432131676138758234756767594973397596367433989749261022670682730411004533002431971004237145236409315850090959842405928225297371907451089320395642141951886173324902979938589491761245039600394326858810189139627852258749085275195141755834372373149841136731855290969646563784093963120213187408460047048048718390014149858673707665213576013257759476839022384710868063100715856982153172730078501639542280235915819820453477378775408411630182980574908103156666352840528961102657407337395703586773953134613509220640284023692730149361391785322795138846987707122125185508210355812578604646961795579478736794144308483451501493084975298298165811600066438335179062847060970857341161619169667726636583315654311103080108986612380343879366634169094169266374349528699686439393279804798664518905312280975560417055431674894341273597044796192847373365381672604540143055911019500815065644599674750371196560012492577707377187005898535108535969808435884272189874874697014207014741119093762893732582968456020790955316347205169412280273709116703904092258863974709205216512157990872012409492931736060066214105135032095614268167214977075912931009394461322294592388213644341434842779420856782937402305070008846735546063439749291508569546781595773496781636408490922377930601257584666289948869131124094971264034336411823536266171583978289554650729589134037456402079245474226487489354721481324391523293659982017333820796542806437665673904887871922294262989710110648590337304312004703996802409738458604663524460490212561250284215046590712798687773335458073339884012152595173164506900699399949370240530773397340660042548285853122772998551652657499733149370307875023678966815445255553462622271658888327983499722233383555022338856241554944572699387620445896334079772956327676147407948049946315384937559311981377431233030116122366051580377511268489580735442036989788796520758312862929340840938147102031502924012497467317153249616141867812437401229939557450876642781276942462320785031651608722340697832233802411096771914431579154150952147646877916019609415594851036070987811058407972389589876817195487609856332384279494874857266050340434785985009625139708958541712706719442078152309196706067265207254835022117145278919701587934365901226263889330008948717271620218130072873663058378310535019588049613298132078214740949804505918066709353879805970840159979981730627487192721824931147183635438878025926697818046856419606503416368083869596404193848290604982097029278193323261074629849578430043305496069651609953145965577846579444661279131964774736468318625763104488719986243531168932406829915357218375491168974640326481028874964148400129446674811758966879050121900934365681551230937860143019579365039459903120419615574766667769381921702663223588839527519805790984182551708413444444423207871967079576562083572421709222704210175982150374978222464040181179760004980939197602955902685665553772413453859831276855115423067249999404900640025159238621838424085551444060079622541729310822836920788546609335755685524541885288994427679100631977878128294217637657893474381037709281859146058354691466950739841459419129295352766291678726094808138576150221916296279050039051203024692057295439130260831062165330472549209515682915649969667870163969662089607707634760723070440719671265415998031346169384187428147239762052231035421904671881687993382194212898319494892900218750508379095452047893182729042702161295427132873693278203600182503556567616649342793253003213135153369304618120044490692601829944411292269735670307811538938300092518289227834182961494506338430592372593693540548489218367359083668759834259752484373566319438168468667242708735432472173812224627305008608351743183170057535860976636506665299999554686546446522925667569867431291204254693050615324382415095116968156233681267807776050331162025597873473638452054775428044288028854681071357868373666904871191269034965462704397509226213226676007688625445531649078493908647090768237853776886191154802064260256905806775559872716189323003661861537623027998978956072411671258742517166401882003234040893978644857038956623090403683557264426265297976225066808226728951102477484101942939886514888764164263955304576279326156989103284518253720634453448485400464601902849791380652264178851156029981731147120793791677391350929000665258322893653194488958911479917484147197691699120853488306034143643390804428552114320719883525447266924986632044584285433576777418343005898904754973009299764535570646083669696587272088042643865027077356223436077769460174829083168274491564928758208213984686117767559048862474712385954570954159737267181888201478472505264598376194559382010205607205730917541003147742695098203102715208686559089417148849061308547242564232216278385220716203898955915561029364668299397307530502477915312185587143079116305289653797758800136313431761043450317763740874977484321935756240372829335311958920183382661162785747929655134239737964028620077988556765738228895210851663641965617063999364966246268454522609313916317869439963640265108136878558258834958155857863571409838604652256141897245229166063147834918982642979577042054910825411858098979241792044512342638471584222798413032221401182939250156694380013031061230267557651866926326542957067611245489494826144031645926747278620436360901543664596907658213405303637871999733576195340692334378367995648173209970032321319743434974143667057572369077831986384763466241527691043417102442954601643686857432010709120994700931612290324449441741015726150202029835666302972557917850578940078801271149310609164448403646351254827991809430371947564686370973295912475418882768379460447516379983780669897119715418363485928492693213183380651995731173997047379359775906712277900140190081132371476275802970047048373925567702805595243490872774195035996682418688304717597551021395131106914851457529216244657028410772722964526345481514074304712645500021015014459765007433397901975045477526099978082082240521337924978126219821475689865121662649392956592527073752859726898484529125736594632679273492155720892197782003075951172918364013192578494524433209420106632185457454270814773462118438005082954198762154603759223239516924087156275717160027997913459199807019220101756337237873168167442197191103742374594693945900437902494698317693142583384720435771477595093035862623600957211192376865053982776554205467036941069870587876955233050339584038264566310248774410537568155110229099015395588815009499918357413183437988433733912652926237904464144773942672352659463156469509855208717669416981721458792858312922965514785936699964549964087830754714805569441080450375055934028445892125283705868329316663488965177508992893130257267670790577248963996527191097053110243674022249123718367865312556091223486273206666651137614014522289304106508835139905641247378218348094982504735119280090987346475381357734707013687051926679406836454137466337812546248328888645714308863172745756256088688415465016338970298886567153334425575396325381839738299166749167118212841609877584215792291514966787307648301248124730235773511137592544029322838600592921055260938370043285127169616429330608600504468203221201234379498647712015159831698459967078182804198098697336105246811120107346217109103447712184197779189378518000725841308103166668807404678669403966331269370309493105123265327162217242902844012852505444228938429117506734757588000102126204343154982057080108202797665062162057051668784607807687572876532852579319761887885533267460958722065415121039918964443041034166563120292685350797907256077075430987450146872191087436649219999333564436551794987596630681860060284068319281103935204448175873650143925218849568649393364168553773019503047866792848240624801332842842124059831051332061348580594880949522190009662035318384968198061413773962323433744207065001230017388111780638843954919545668352563624481774006506309162649104176862865171624601206774185507798157004426541321338822474110153530293341458405904426398826898279381996178790594178004251100952159708337129947232793685955423689969168804105316094382157538522289911942274473461515922218987281756369081486848744080838401334229733856595953500872722222664501207389237094206375846969848988711851451070431868339104477423586272364120639274749572328529279640873491973465295710689282054244014660922609967662713369345613139784291356917657251960049544853387408100146156203328898814462270069456772074263634151185034487585656110710788483772816988740718737497228957485491925771324787877570082577886975579911519697635326798413864258429438029752128725863586224341157472184178966180737740183760178077286587617897255237475831518289984505511383273153693133024709121829715803833549012915547517197082562813410482003935910578728594487550821262721745073432368929022508666069515905667520256822957287869427549442191807693001130562089718177948390054772353083455558437895059554330684563782466563230218988644693380672403048456648329341967893460606648192203880991352068064353610461881842490974352149877623644290890226362577127360857622914890444368430107804180494994819992557523140814374180544355723376593145388534923726807451065135736733115427596370954628271370414625290390044028743190876477603050781569640385444798349810990474170182715792090204274624774140817660878228214562452795531492512356337326345224133683515696777388548652679823337014949725938127745895899645103081491761249653179181526145843564399932591994042831789025478207160182394053884704397532222377884891831655364847475562199262928096766947416183937590943314595089432872743426898645367797659343480610839051203463330060275493422018417267789158304038412895833329210650903653885290434081253679513288976601333272461037665175761796441036227691011182175951569501964181791802028078159445608088345781620280926907910203863053274988506500835005320112977969608491313880282120484668420798116421073283477945291285461332851680228175269096927449805484323092151956895280991625546687410810224428193688099347922067649740906043069381674997348583620020429079040100699812236092496200261501115207562632320197769940854463383000117043220153899627223273504967898119436284115040413359056176214267902689017635068726216692403976284745078124831435773193750933655414641736843902093334923172615767215273279540291681250238845842511227845062823703813362469054207020209228114007603204380988431538598925988494694382096604802561980902859463853635958495778741391380778928203362458070670024467651309739746295213701836604037013850135648710290427161018214471127550302847285817796865619421584768569692017991213361562607370870446875169710462021798238243362102840033586744557714827636353159384537651378888812346707766572329892508265989478201318867457032814725604420308963477992235247741035637734501271628448913402750341950749681723953421051039460153998507706937978044719409895178074504623614495954060172710118894445964824474171542225026219912173317598606496632157064164976770570459985487229436070648764310838124143047503932699349395358710813185984052286507967393483665071834468689149485871553358469220105275860340097545634636760601509545705921281502793922787876421298648207682917314900984310225317078245156868438580562845577987225622837706768847259280947630083564572472004441782337209394911125771764030127454537433996285956184668427347231444330148379086671101968921436604038342413526054827273869894789064807205528898675413386207109861639627991361884709031250654359849307873848441867190485454360022971154751185409400446752082922902060495372753535027506253308907194968360094566762157454762567660515395717957145654692907125712442804266855150105022678689165833472600734256182319447576723315316731959930418187360153688593630406605295886798630428124976098311451288691362659070618643680546697718766413827136800266080907120996486613733968734841863099867219907456203156919996024318098405190899494280850238944355533753375669569358468998637098295476801779752911363781171286338750020376381636937042524764473735298164189987907096836251896501042666390671009113579934668569065543760780293662240771938989701058228665382212610874512503611367327344151597856696683595820199913222848619842553260477702855753790567699182493083943005997606977708827014621991382442441423627910594362477809104180296727383544555685201498175787150999043980903350864426444422498676900946922450469118405466036817808902446224530021974257228431841031809729908833623308768792667336303094303031473136293829555231183126906574528367432974904363516748017131523779401934987260208710970338037312081847384109154817144799304637907998086224072364162735906015463704910568529609759969349625552126044558222267305953892709114781827522620191156035521149298864166470043494943121135805767134705101528928707292909279190710531291090209718254653183140133589492931564638152052851432799042962816041943505321496725383563449753722287540334679544639734148049175444468885226538690441467748774315122740043898902967996762689817292768723991525312870652971558565993572080498544179801799771705066314906226760854575245143253063040001475087278777513275460625344577562000240491778885408648497153701349064263336002817940655452052676313524518917496317711149261575359147494130036368773798239922292447978233115235738842290112907593716663272707484322017585474774225776718876815508389552693932473933286978615535161401277233565223170092342610831462355819929779951475336324263930581359611078942407866649042787066830371034344312916549077772414287138326802801451050162691384341078657708541632362306378450022635826106627422159227733286983418565815484830893017635000213948348749057625093048396124061944084806156575376838275876293635329104259928659497729166033277755367712110508734728338956697644531935704102927375284642112846952200652427988056043482241968165423474791974410921358336503334658835626740823860878371046724634449972926060949829106175647627229218794521739797393690661693157656283445865231664477384834353966255045201580628000212229644058604097284055927844261228275868753508053438271962583729516347335151326049461409656936699237627549709135139272207181300678983614569761428240807327813848101482210990562608362279281299680117896541842235193397388898571136826669042821348957692769941387307624191840025098835848302232308051994555370428298926255929139832712428759266188820922647637698604155747772864692170284317115881089445009957438358806179373408591274534206814043636108602702424421203694654211994828315682839012379645361862222119826496312811295988049330455743606035415984086930410627030288253668854697938751771234072167580926974009297587122761773291582394453446584186651388054215463430299337367089726597317751958108017371372947865383935080374941598899883440611895497886298304331183321586750936312533878925084207971183577656209736910632220152724070141029658705068085648839392584308937175197487897738244984233577658528563530257182183705278943327922585079425567676841962211787237340189152432637317029074979313578910207084885739721803631955169159502214494280917594000563802258247370024422008362217209650135756674674812841608760738043824671623682873565365647230504037525464773603785577063582600584690876060241271046190911369704086662368793079651226838977811445256944812608859060780665799385928075462344301702443832693561306233406153015897679779533282468288642308667998489485214654131536311197819545752192200857942443052651516993885208974373696776947449270400685082901590431921154214211597368432085843508609643952549534475565681627781295918184831497854689149520359528450046856391097042098560012250373442084611321017409307626057449131039545573332870364492970003055916378356416849795790038677741192869699456580813883998368464465172483403105307810869718856584770277094482835955742659457602787125240117098486753267574544359069713482411233475616543274766243368149863003060331370473125475692831866401001271493792981495304234459985673391390304727169881146702771101004249462205522011269400661479431761626349186362183071509707615886695286259789569773540476108055550497455378947688967763571652913711471389365826550712773618987166380946965971590921318197975354969127665254037084772605013323737218622851221748559323959980557554180374449209225013818082922294191367741852872279405560016815375969113995992831143714581161210322539914180420888282674893764076140887383372502365533374607595464089891632113000430555592588772087753769159349398631343616364743116827331363852760870703728559341418635738433485391811036026214442862330087538804079967026680941545632712768979418379355996683685935287707432024015508587321791913553177617879566944983837887900139571770961342491151854424927986869248558984500657954270597046316354098866519685182356598950349320929012484126967380609899599595252939030798095251777271089769245134511956290196101442684134382613134153869277980024363244286374696723717363137933772922999076546950765451952172435052237575387237890614634280949476744224443847461764010367354529747299058488987651175995316389629847981184109693297059978984712571942369494013841070800271152293867458132108115214224694667906477502025430412003770339154708438566480679405426853548700353397238891078394677039540419316053282784260643512338365230561783494035522271737138965272569322628978282213133721252450870615884858419966059239354837928338234511044652043277824652084307548811891516148815105925840180810453881116697970665609656766385925061044659258196374654634522069418155079215634417749406928353901309599521777133662621961094413740959737189410297088986654182992678992913897900263388441839606619183910598960859258614930757491437548690578600902561975044444529113841740833404934162122199870453899148799055832473670206441650375372779783991934820669677668782169767816530572064284398301805084905486401382161130363100041030944488245958783680129092970996628978620104210219673925019350856372051055321300240025901909502094594966269159441129022255345646534808632690243071212041310384010273393252780236556778680934597263119366111425318056486206122771829651942436646194320314921236412949864916404930761278911964368197077126808782276874818188169400108233828887102413398008166907675427477108485228203512066578008744749702922934705844992260335788351414639509851866117400508395837103377594827180572540152846449988009290460877496424408491041489969283895560594073659933242738051671795273524904927263682397789144044764447139595725655795334271974096177321180841480159408424017776297024316910762427437761121269149296566233530306548433754716248761236170943876998567740242057486044723249475598603933212898332609218342123153569484517335439840139398834676459161778881839326307610839772148983852511038223572034155974179374082572713443692066395071367064765907826503267547915091674095059770821771806964431405217066463189836426147786269736688232051782488503377591901478029294162037864840793854247986117855207755892915824308151891438045072836867926772902879920291507429717670911001987660333164457092811668052577330846378942832453066890197741112105558862450535113910613896515446043060505457443958593211840865338097624177240000318072817808746677788702950960726322652605551300073881864012213622867287228899517889515384521235019733484570254751011715236803452616916370446510318766196348809267123827791908048228868640746847355033879759496416616958083016401204534047372033109386573072101237573977920878403343291416843011874035902685502291757062161306692475656779066416688234826507565183089351675285906626728157105451028580850832134677170370150138472926483690529164593560425402467784885850904157157645020641922623726292127891776319546094650769155653609663026407609592717450309625821782133903269521594543746314767360153824109453905250937949994154630355723135194234471718609518706918227526631075756588147313740438788573973874519756005023672856870731966547809441826458609699211438575755076981062936900601708944191698184292734082481687483343760482075800231549927240850499472241017486722689323378027812786471680837240308993862213971545402883731321935490272860551966560458221599645415554452351416821092477594294015864743582654827017010156771294046693722984054753278102851218374259432309434820651356898010769637769346608325475324058529845676154865788535394176689538078044809944135963209639608757679608403115088971936117916272901929469520477106560533134419789528960271610377452660136575881311899274143032817546053937903190505907174284675146908073466085257741214487637054698356874519442930071964472349290608080487527585379100478690430022416745695747099964243632676573592676674116029259063535690409636109644115012404504283102463449241858011923127685325613090951372918757402495695875268802694027880629279120211769564957287233602426660774694820749493556592081154324728937961310143418858426452644729279300871816436762611504015562360175613870011582901227205080702752829349200297668420423674041172606115291959493005205401133115445375188083439563341084481361212992322805125798829440613248528676765382367893723755819628550399293618583610814692425051841343845240012351135634380996863954568164387163655121104649370037950737225903096691673374657294364909658714213602303840799061424421551659350094633849527660744401042040267358235956795988453195531022059910919511099747926089689396764583643717817465218122741510750004989286660341809416441058726507831696296971370052371145041144361548864606832974410507007194651705661466739584182755180095605814639230160240293168575784961585115560270771518829031921675731417548892689952012110622157421727608962153962644725582690686786631561044266467464935506167726948664043050582969724321308663343182395825001627862654649016088015357037519075342018973375186591839342868235878519774600296780489530966019993817007557670565378290303954380150226217061417949678021963619078553789247986305127421279468316973316986339555095910465841065667612350847508767247165527038138474206128388317280672333659962843252077411217445755293025171605100723239994703710680322870334035266398790694604682825857192878297761870240530984496028930917535559562619721637032567421702408141248060377121217318651595764119651859999626519123351687676452380649559171572619947072922510402446935579634750622866710950631682117352088323838115993014542262373858956051723560734892301312344531293778409870619127670650370540745369979425431061777563434535079764081571751172821856027685642559813688894464701276720705543096242561053919519069807563116295024986446756319875547835877158356086342227079978594589965610482085867728859875818552445655415733429526242990601656167577929991481366887063590151796435024098149062792185543606576675366065632213371431257732280177058445508142747285085354684391499166351678755130622648619459628987645393458154484155648915545054211625976479889927300300955461586280943498200468738045134899475811131294060285501403334410785337908525626617882248295753535128047850900516350464992219434640089745231090110564928151163114740568033136504940354473506538564749263708576804678444987590368070264153284311779531918714642325431929307591549162557252709558258778085988468664704280889381021000149927567543017197029553898906492974533588035817783151434301604542520237801490378827395386624437778744626366442211859607479228708015855300551108855333024774235614356266390035785045280910939642616588463401301985840292524354302133975333726911381176374454838789308441194156969948067699395276249070619105623044324987654909602584300618741156328636646201114846842485407128310462449014841768925868033057463228044249350085190293826561510858881263936840467732640525748686698900338591215984131486025171405139932228055714866403006957347746172762313020782233593561208945664826335966046825206125499350078610075381017029315228259009983051084566145005539534921697594420195564392618576884786832315913401949235003180436850470799641413736921422862011700194462121190943788366618680452313924216219619154069254103809557682942539329342437202219849917170431242981580639438928876890982446401825458742970948539244604569383504431196061199328445565741689698556062379289273398362222993986127878106607751194846507150763820014171823614144298639714308822550150422163496711747722216541258130978246398954594665504191372161517321342758653404070191485003663684990019021478477624833178414068506100568023858839033400086547336564535267599234727729857160468837255495194006901876088088207465384019114822750656773679826798385811091393982296155914660306390162940127151124335755763818815999983917613197023658999258819929331160366899655168113742714974959095500791229679970387734005203190527020144675985319816384024111931055408433502462062783649396885531962432313459909834273106949351955718169385081936771448397476670212874353302077579329364251427512832270557364554790663212737279366555031451679243896728738170288855114950040604529006746963802711087317479415286456111157149175012325563465849132455441769224338024923652442931352669154036533482820953696063351328869048886970622236430400362322938826902382814089493689917643995996132459317796939071682489473034534278085711487878112920669240315325205443915575854722358400756562007909755611904247799261922245435070465227931801088770264566031651003820114995970474198754230424879475499389665169648490888763666541321850891184699613781289772109466966712978457481629079949648639028043843772209380920892681718386051943699571258364974735018944916204985038132691154685355115833730050639114702149913188214689049723393682116066669287399272522444406295097405910112746600849236845242909306602010605151312230785770454636590540128966533138316556692332677380806194665676956525632663155691983766019682923250651730381944516377683529134127751540323852603633444612379490747473036862175734264639139884204833913547946346961241762936768299070078715555196036854262621612779260238166395710478721366736148851124314922004426741010845665142943629063338076881236728162366956915317727195602824598557829538835199238899852597869144338140635282097366255865438516260537847792180497642090722236418117709375925836264529308640594235567903843263337615157170292664984317483089830755192918657971732088650211704633392490149355243318956133807127091700723332939110499815162139485507039744703172941921853709670258337020138384660433838437753961844475673209498372301910329419564896275684178994207819919922014089018770935239875064800315743447283165502562275223716688846132100122171219819379101843811868248781644800769329773838236332683724494594955121445666964790073440186233880842487376616161444616426598695660396841783568209549442971490097764160382771402061776622282813297192275896344414853341568698250116526967813111504064783864321878692753001446622377755119374534841390978128148017712134154113037277830412108433376174585567081062815025533124378784792590682375819282129795624610248840711982768674487954876398529190526464220525583692507787695142117421009005754263084345195484684209891858535805004476499879683481033370620044311731187489250174341735529678407007022322442558281945024015183367045443450190413762926762245280869831953202033141554119944715232664627249301849303925579829046568577301672510655456541411901042050698427699595067978282735122417961102030281489336953728591617726240295470234042627793500664707856947782053102680267766394099155664778327711759537595151013851779483564466877045667650302242727442582971077627827196688202860537102430723186930360168132874587703290516779118704866861049930245268825485462150355908480122506330661636391790487634883782325678721758032937034822207466925067830651630318169801679833185290018815292456683049908197374484154589646580299311907499530532576390368988358229408233321661353214834172909893262159929376228064636094284325827734210278614381095774812995522786887583518449595667364756271453246297097015704621128145481865542856576271008068363885882276808001067840760103887767302277039673440985070776669506899833298268135504327122984327175567869181053893055057959587933385696474480957070967820863044645501929888653999390674764028735224022849236447092119223284216338170477875793941814564114736044674532883021776764666865888425440499941050172125977665753805430926341824147006917674626009606147985097601307872205617732598466888587639645728610187563630304081101944412563745720087857259894492244565456874202070034607352584313925589632612104139691000096538360438971211720610228040559975069643769688323835091632535553229865886296059913759792022150296324448905282645032404179241072580456926156913550718118846538504632373945994966399348622186810170488466633639359876529703102480149026053314528744990367733520918443603190187495345630354644003306905582774843774245204084477739694960664337085702104022530751639751684622484117181898290075545365765356956955513684585933572579915834495794544119706705803976919517087439973768772015769770545942210022951969839772840979642784724879689598664907711622195576481475583196303116362315020031059510491312917264586741472587788070290477970734325459912417759948180666165232344809320809716355660209164714559291633311670528104278449692202266424610187565404802272771459632209103429931136429030646119565810432668856968191872056520625327589998839744184037812454460899048344001466729107211866797787099545022477753547233996453815906272308823334087976880018374917172758939317677801829890136642496815652080253830496413738368091299627554358925704474137515515491980228808809019203593491292536019800903476139007601119890089083711971525153980933280999154977693146524884349668737056217843098024847084768690225020608079236493695592897811504640724059690910020504431249733597083790081138029126073774932265666371254270397151852658748030607857489856297778801053124258690016678548398304026610576075850509945245414442874954685880211709870038607459330494002455214788926622974859510019458269817882103389870059476472524132744143437406349797005433901093943304674256528696462632191275453245974532418987412688784799065107802673095113743979313408826638696316241672991074788600709180750490551085104160379753399462380591235047973402670117854794979121510312622025223992117391740796635849612121412065665398062894650047834097027207018316933612643694811012198238472275960769583592636517270412744209225726783172317233564745992693289190809251846426863045632515284903106031914877194569416740617577101771248954471719650656555951960201131395042785609358699406345733231386399565027565780739008596908254582268075476158010790772756539031812661227987999413542038782724986098822499427600718687493893866292066578178016739682872853317059871318545907485134829753707435913329570150410060645013518085010038011416875968915663716411209003523687133951950954201111078421108890421995737700523381672609731348826228434539338651181045526853751340372223051870626567910357221135771188091996506998624785575270055397665626611607476120483094239616737101181817882243865888242495275079214741526582410087367690410642038384448037338232150298807473046989831561900561104204383614792716098097220586878783951361586855684932410315704203620254369719167368576204489829367398325451972034736274984180983709026268505183956805453111770686955644415427749442337284303550414359371657357447776500457582748077910229680439059960629058427300810466968718681012232527214013057521472575861586860476774161790242210730231138978307797751243778744753015099120553041378094132349203206535309951509957740076234505996936214546748430426113831302254177978002621731979004790971697529379197951246234191420250966513725077655548810220281743605176706101989478792955794897745445179006289392419047439880534059667418528140808377865965835455680298375685554470457269433379401665409297120885455040143427688980418121340863688182101780563770883345087402412592447433731480039375367242917024481812285234286130025709227819827033510429704614856134978035360516297981813836009872803049200203211164331340484978291748501260418357406535550923353581811919443918228201844772571806977068399708802691933347565724730903750979860039939667056663667122308860813070348778300131927103382420326674551041958814114907139502615013364861187695122706267011014832644912265761310576181023753607995509322661995648346539016258931025834620594813972276221242618400366288684619891832863547559414254322672227018356538758815577740674013657342245373954412495745974528402542596966345350604035308078538673147424674084347029069820150447962427306847695257095198481210890919576882989382287624729614545448810260194047591977312090924073931137414567392880902766878158487970780963908415425997073860658463060268966796434488498021852675895863369203666260970406614043390459751703918146781934840642945683619412601192773473073697549104349724831036864926940106227149834764762598469334319580729807036425387516925646511447075317375286409641626155362096778236796153659923138994357944459489344277927228012336443453471137112174330517808949932818276450584533257240706193171990195917310669781698541918097808868343147166491099112868689505010527464086977226112136157192653644706137322575528250294505277007994793954745625500273437761381354977785931849807514196523621377994722951001428357406617319668813668584963264076908829248021771433807102126664562370768763666022636376428591923400019661479055047879317622257989488491204970618008523526241356407981336633339424550234479777365008134704977134701305234655547044833684142525348629009860424796168590423945547097347759752330592680775004033918157125481053926386727013404955836331334424001778846494251839870119208096518124417972889219886765036817440282281142728990521822005333370260381168151859149121930397014205388813526028223409820424299539172470033599703150550791877327573793292743942768281466935598555940552312964588008579631103801907233810590187378253376884003371992718845799982831157774307442589425239043601792622414166492591993881833729659304070236926724544196612302078427661964247578335581893200475077044978797817152008844374413657839609596058974134777706861274252844046355345137231750480219540068542796729370803245889523735558523912739813073532935309841368642380126085211812329983455535592133641606224243241101395244724283424360364300870982130754379995866875046365985976097522868091718468506127512490287985098419121653547685556957579130572144177162884904120603181748644321537255778446614470397880701711736281446393673343902707517185472317183305790246185272464233568162866195699898547471784196764991489060016873151935220280505975692517828674849414873422536219655289842998698599750377532135434125903979571618180383365250213540642167642045800724926635385464385950604422664906117207265692247820576876462596863728774492613069749986857439732225268677234985680554912748839341362286110158111356720603461477852009822865401080271854473638155555610227455505726848426554712856552535459396572359770686694089320382625548648429012253593413775243846319247042902475912890448245069408384270430043600023414573821049233167217767641977562746757885555601881649994291874184466134369502254970279169743719007578208732381090695437236458409431375462967272256766057636335903768688995780497835433954949143630450133985734077644112499560960990014705695051892817374439282661865711550665894766116604681738418939603982835906076168262930806829228951126728668593009023346153844199027968801157304193183112579591160784253118719955453337377645398340103639175488535129555897387106425981360156405888039103150105064380625237405671976153817274232037147455177914381482017873498444609747585751099089620219009600147976954044154557673898787654698263228624966340011399781198296554465724062508026722117417643316741045913983031145332766275456359563800489756246869028698838922332287965615327916157500799810875321787203817370805302257802597093134012442959223401357280843392516298785746360864963788819028450600888569353542940218648828008890373991652054906528832470265296309737467402233471531473453284938314720921570299886900510249607967659773858356045906545150877857790234433429468066818063699595385741174542284224915688175931010073567937415920452470871083731460299236566029971788434197127254953535028185893980353160810251194372193400572392503336056288599105360951352112009656839166867960142393766090099077277025544882421265590560150945339341210659537546037989836032238958001162711735216624328693866804878243963598913432099834719303664502675185882437009450659128607911847113005699783000236847376877236942654259401258462395576211848312360494293825020079113270741861450671678413131260754303718951610476584715501993497118057425943568175545509873702507003994202540201730439846558785623408627501062722754958456769012409882072247466365868985145185762410574008391009404486004027272834231795649639572424937333543234108125922229939934869237013351408338775439586078547187629709994757922877908672924384973151978717431077802372645084862121988798663270369378907578121959499011576164695820646261426827207519769885737101130586493805609994879222561069085660653851644104818230525198725116463024525241121962929093147556553620415232556026973123705291356236944743094423990569931181764360823688545135832926362544377383236161437597381603610898170607341050402974321664409086044869307756105906311065106273543076087302014245887831551039952977493178271944784267605761399222193975824682968592215745272049789758935467715545808300033482348092785346990439176258466436384325729353552156557243341256996458733195728104319871715591088715463543108048004231107913026699928760988627975467691848380153088710289838593000460470563675600806405847486842553024998700716304485216934171878710645251092162015475438924356367922006870468212988802769795998945574878884342517536943975644935228801176526615653008081426064594805066249301993942198795119037045476647619094301998196803150783834564243907399925595046142213623081812591397525027730335924517101444604422524729344171096018119245913328379597012900016286016165771413307964635578190576343407407558685908765075081167375833199580143677367400457830546942258039279355848667893412759858335928531880899423196719025449122257415675206514529301091790210528704438519466129170567071267185989872297503266015447029681911707079144109673628785042838748543864485729039774776589416664763542836380239179395654114776281671659775791400737548551254382474076770088631870887482370941881300239745902424948242102302536488817577680600754436488327144469328066998801987638157610533279637951040374485900158155084569809692274493146061850347197470078301584715134154255409506276817968473428797451789411160906930089883954338380436041734142587191869570121306046872958677530716568754309460807575086926826722473764680066663309372661338985413807294184723398280025611279411693832862114329452829225639474861925529759087540468523843488076219304698576295506050796966471906592536349366365705304323570010003569189356718662377519111027154712109873738868269583454139989017951079217356655815208977731533536831625207819876886259980916690506656266237582723049673372298141604210533152692006564723431969184310097104490412201306546888064498743383928707733673479014698801307404003303048559214261003070896925176193220030111886620955781472030315763882298115439009194523844719721790367345402412237087493998818683395950568190473521067162479493745647386320240455470858109600736529200817108796061493001459422068920191254619969087543577917015191390827280908374822089745594641986879221889428365442538832260210169718719970796827680875201526675105868158203322458795226801048902674957554899218483137473931813091247130792644738287080361885035423347020355014804892415425599365675871455476971379923115993018998663239536292158159246151407462238701752041174376565365596350556015765836692123734455598567685818893671903998930915635984212432063067600907407496756569967999709222262473437340875886369410258560299293101032951013468007585718776222340779500189860682717489612088336553909630332348563981186521541480909998110677690535069577676969375089951548339138282130111782109949615040762966441369974739099574949464492848605006774170581305109303654142140544147366712085283025379244066789401605990855968578945694412206305623144369600327705317252442429784661506285996331928206649665623232443387616991227334797436560646018849557439065640621417935529224565691059879527865327354394364206867828893764045636857318877106735048902750389783519745995825796595068578590385015435969936229553303183231279180762820045267915195233774392110265575875714411138251401388500343653227647821977214330027717698898259487722100355185593520020847002812478846032838886995589234771686673498352726917400802983542125704369383097617601944207570761350085427514826796634167407278892772615507892155291444913923608526782514072033713671271325811145379881681598086682858197064502496725300394230515182431955120724250138169401197648026159894858029624023407939445680071907354371373468996015251590506928935969255862858064797066092663170312491746121650555035866814893428651638586748123477100749583151031966199480427857200529613925881027188183963190790548304216833977495789975770244648427478092741188438011740223776673687382653906637897511880059795440876172950496903900571641181944832842736407047657727968770920085834190224022295275445959626770046751781898614123340448107508883023388433027770308657890243953353446996803146375209358298828606189911064634122594419266024729443608619574096963306194764529802792980641903996720086819051834482918161971411613263380013271198999916838355505976006179120647073536211235363816010356242146989193641022159691665157760533382547118801705670844937496268878525228908913892462632275725186774858000504080154192369323266944067291869999513069201448729079665935296860120304865421304806239769017336113974210648778095464872563116149442573481558635391033183398730081331860614826464545200610203674283941119427484791796724824673938295708639655755350777837744102079694167996771446544352109783622002880497537317020605393560696750649467154435484642360617623082263617994064865334806787393034529643047611553975486538212355459186578377204369244807961909462251234379676324320929085802199037997902515914023394208830279624152467512304649549662167698323511220504484420010854184780926132406038110402444537180043749172415527304966378577763928287520276338309906358898532993373688693009023612950997775751104234295533406072180596017784757050740806708446672338880139581611909104850410174821887554827519393760648294766455854696731649178706412387647634718898659723843164154776867210006646825111764029641305552961522081189949750673194519596858058800408486987102055992254825487416705712806456797631863969197812516766096890838888582314250440148562513994048978869608823021884264803902799730798150570958130823286623303907631569118301724517424979297940277626471075480766398904277788720218862822253136396787200613529648062323079583800596309357724949205454283671792217060028923995151429396633459943478013430853000136854134169888332555689937887060002418495764300829931434070933244306626961536718258948204534370865267440264984940988619217059355888845214061204517032834510098852684880114259191602790903927639507933238718723975012500791475789024849764123079447744829858530891353171670356520033753977402498932455284193908741342608649978930167980036406982144994106314900251852595339586462695076586110402938374602075289469109056066968045032823706630532518209100270018522409092441347999625784395512537789166441495183805787017661461602531628109279251670528944582363608676480323548641231108403562372490777830332133816778430045939883253675471841022095815651210986344929694572720632647494125617392154181133135168902280924593667094847995072696540796610557622965334118149755597681668560487822458532511132892434191825711732342154204909443739959605939036576112158140123640586475002211979754233836296328186574463151358670816005688327351339924720493197783608127801095783287414145860782523592743796528861808721615421836899246861906735865944098106953187373534178341524668001624269419464149118437276976805287095854063530163808600113292328118318439085170976623895398505386446981833047661659989433634223125941519600179688968052890851122373866625373286245527623402427528248007564455282174452912336431218928863452766520280169216157578491251264617592328968557729959691420927136899562998212314542083057681366339554509784550648180793204047543388912766354257516411726188160209572631119049558028716222380297409079115144092661330545329476444157522480345200225938817899769973527321534680415853698481016993701642399775864861546356776390894616635554476952830370101687901578553527391780246901639385157155323767275032814666093538815505235434943073809815496901985547954136013305224706507604934212914917228512755469193273928145812850221202891895169724558816107999484148551020578807467574545256747154865427715663757845190091454273339248862440922563831963819078814102980467935443918928732948198404123180102005086386915677458812918414140678840095690125211664498718052567959843446105239871850220266326935661504015393750792301146586964242641888237182779429354976522782402091041279520174392246236137655849716413152438965235143449346184926754940619081955890130776152920213288315781988897877349218219493512286406462156398288045715178008554790534528907452026655530636143384161720091317147331351970684287260331762008165223410411444234211638218049166690303067566977304031595627262954792623375901517420155697550534670666945639385647691861302777794113234624445533680286449274993922572113617649541872564166884808358609141735522921909836397726194053626718343069911103836030316125756142928300046955173559011382157869431823798595142581564521219401352340985838011358534894373455068960995328090794631484443012521279765652397609400951242613393770478497318299022788427984680789176539728410470232329486300259185414833656838022191643519761186243295754392201204030512351083185941195702970385298762395888214086342111053982758700764376503634815773445607188475739184790261100739310078394270402203810005068251566364126493579770004655632988955060886710080882055733781352455771863699168673331070245642760896082655282620344680395961840710308548888349859763469080739327749477190676404950325060015719702013035504265111251631018668076413165278096932887670939782978286791045579598527194399088617868369331128746173116165758078283443618830783398579077152546300531862734274074437402683498045533661432305878196847177358535211190807941844478050128997584366999729924569147689812785835051939875009154971470156699049990136287894919151919640562934378461105627981820550680952270676302857108094090875273886328551017395902843553375607078114535336484940514977118116879853375631205395559042834684211153166350460883915940955935450890712467077727406318470158573951556816943248802594497999577228047702610335028773742772684774229841492066094637294767719853262778148064833467022804242560891727139125195067290851492496497672094730658260761251330745438987460363916204434637524488475292038658572825597279687213816559679661630473524665285273459858859912409247521151635075860071963545528737006729220275290336175159244160896981982201544776267586488055034604029111907687081796383991363271549513638915701399362575942922679564788609372244927289046668777862641723439130864453625499574578447606986249610380879763091133545644445886601382336621157028582711757492123201648414505014312379589278561764335815573814945980433039391315366341957150182238786930533486855168167880429552529245366369803935164855681038429096271321684554005702208258266546061265722988710218388935701114582838558209581592155804918261259776686974075758962039767222306617940973731969287293086419532932710073538384772083587156162821082268611345613503648507144771938673785242284132544920286926579716307188384695804010634740742241395198458001781929823687424957858511271373277308463981434222311011561477547010021370465716764799798849185287370333384962550269288807535381602986818228862672921738895657685219509224166860050860920269738907713605591178299241381724446942305134532682755978291646716147045234026082739077853066209646926734162503876629968828778075383269139899738681222760934383582299102444905547007131679891593317372593925811405366067539768819465483174495303587179078182194183781413908191260086091845076725903089469704765796468028900218888413408159000150826846174322329344579331438723591197508428803410958960520267472370450962336127076007314073236416806170948255848771548444647105328093506131645634639637269240703594224426163819674378550417330441889668447171836563462307612772774862044172086838151759545559764533228165884969065219662272812195138283217405055974438112010009960888016759055080232325817698885985366505962971744853996447456505890544795116642277930792293310845291898983329495470351209911750472528771685467029965630799221380634526982592480228115411130522208559572144659549987537097542213753316123063055937037404571536340698237721001787923487016097355485042349928411884760632901439765970292592921416382989373194693403699372931527897617726298693631320047718326399090064640043411873739175616497901805377986113015826696571868237128561792830956896403454149578552663763795477447882048957371286303035450841623629829347133456673538689802833058788359672435014883653003846479582045924316449636665280793437516301981614913201626151875817342352484789508600492861208206429576571996957456420887830187265004334428426453096927502005179535769749431237199050054553362825438466310331723805531042860711739030869735132553661522225387299393101499758486123971458308729611721814723193864729198979056062447408399668852407460053303316529011188206861401920666476986792779724064369665666703506843869717127588596617610895407307887456510238732383947325417984809326109710908423560292676222667101370730348401074471101273738995035573291041117109492999665135220322939835234249425953290191791560039381881082831801006346903781214386293163246594102717072140908128116978193632557948002247425647504079078320070409446532048311774301556741955798049273126349969068192829196465912046908772294532140806656365183695900262274395185989245111406972416248855357357670577869229453783656574899152606872772759764433537889387982483705317042573497654472429914631083180307956413797142673047406538242879108762862338485777794772529948522469563282588925870661753133903249326869357694305052470754166951797452809731680938717886346550763258228655398745351302782308832446762484873819022424516519981146150951744988024850019573655279124584689206791380066949307148619632593564054085977095329743899848224266662913747656743889022012310111495849093255122279474187671929327307659449372339680462581983355708863330837383298329595300320305484933026253474845117088563722134242100641205366044109006718291813443013754622091487824760272087086871313271317039064395198870179107636063120209118634464013404869380102683750842017391420646375709107571608331612922989313287408834676691544727783440313804473855979041825174855799549416933212142594320614527947907440655001589173818238919027138202878821614497710192591204022686008222557945101071417136182613809039718224401344077651618628462849303903963840328470540610631667519784908857847504848139550801762502817810639728298972589678945044433935418975102964368919920375922742767791887961602141925579646444089052596313795800808533305956007744372149475229251107917651692355105524754515125113885957307254076118347934566901915437151313157358648472712651122785526142417506610635562767385517894648258339938280715748430374306266171362812437014419199889047212234678215373123802417146517782327099331889252018886138685996617681484361094311520723283786617107487039849069599654619808295385488928483944189369780535694225497890648973145040462047191951766160565350874273690323108107598928200019750004836903690025993899799679065448345445287822541779343606176011978669112674797064533898621571940521604554434475164289181025418431446653714483612108678366365575888307113126953865670947626033284691680701787691857505083303385830656871240479108085228575310503771797494628107703724102394469030890830752433531168156636621906805326216613663574523255405679857905643285151990884806003016003649141988594977881457444349775667413536821511238595677187547489594750450173694427757236634478719335546804916918225581554789603399289961410535071871287565611385372999585641573523133970722905450239802602119109813841817635931124788556491744061161107013429612746496226302167437602029881897244073569668098273472170724400112392726755767742036256481041446978654660969442915507965196036598155521121884337832302767053395348968928812623844645768617191880005535420483907469237433223500352802507577113822992686557093484981382494124784298065685493475291850766868917004427829167112665498551061542393683156824858034393183805771618054628524860317847984062345479899122462798438340556082682338243994760629809154641422490630876860556178370028727236773614812538771747941367197025590668786145855653330156777432277364521860145054988427949829653921930806589809373045614322280561903515651562824936392256396810331741882228039303189542611258895102839645237989541714191580431488232602215930862630814995666576613537194857067572955877631703446798513554618832420238068599334847749350540112373442206545215421314895817786328143054100848774731525915447794569909351004493105862591686300761309720737533192089544712122726337964804214669608151952345076426050711463412117068497661548278274044784419772396124158486010250927031840634298498777615217274685671460828521470688089221146827949227470802977511303504344260392794950598793107464118563838895933339470555223942980817837388538293999782441530051963316901313589398519304863775609936576154876453183702011476625338186467974410764675564881861512688304046744572204248661631430358200751999565034529656505794238526608325682982982639332762711699600364877172659387260061808472025094886866343957184329277183028292380675355951666718937848861259653490453004580826084107231943385154490939389996867392946029661619301334777060386988113232948138091306735343455072435642904894474784740797042172502820443576654440563167368962539921711162076678956219188650837436639185087179261569447724255825264374616913339311951809206185098749512698979955950582021936017035317151928777778068350176342461860414223967899989854500919357205691169727922361637667542460848925146211788072403387448760548948093904901865571493462950830264927703379261585164938955034346004373212812333341080866789356727431928024725209723566306439108950507458955464984095675542168449217597308122746140592651392257710202939590421781513329677900050912776169210784034142033621888822334623587878680152475307718614761512554395425958969804680819840432771610212515872305981100295896392716778810477308249520486927539401013000390045255221103517323433268432472246975818725817527014020811675143393820353805226420345766035779637647161849349945508323449238412865673494186062793213260877085019777987136364720958828601899243685128356547941105940098151372817686625034723056697174497221503233629203378437054423558780057128631253977239987644011757840935003146152859298118228033711988935330196067422808429249065676660534299012417977721437590803225714170441674189629699701121609987221409804181956238847769315389705495909374404886465979795420230212802714309217736535038118314806994679368133918246961371541382758300119525441995613942691751323120805933196408886199341444036528300163220360740381020510537077624540564717178246307987446932814818651884638359106435797986227597790878311808774747462499486760941729015160573008444688199151989760657050174207208101371774262743042299562578223529099052225709897117181225535992862463344043118312097794625827761440427023913447151637719333650493621982523262518795094488843235916371816035850411291649197764253562454077680836978592256608344871755705907863652754652265725417428094406012520677910492125731803653200628538452767944749672577362000539214503274756294613487740515608217040213923112483715273794034378147567477526752328471172891606489354644863797554087862782125588309287100088368014391631804956202246242020420686630166065998093476808746746344107455641607651356640741862017669204478706646897836503989588262935278213445858610409295531096478027507268852975110537414648858833783060765466081657800384677513265096502844269317793074417073242147970362001596477644080827307313928338695316020532390251500913911968692070370440088786725608329552595375516599387286279777140821602859666562081148485982454842281551057717711619104580370946734940112755681908994999559374144914730335109884055204414169455651980979485933092542742727647409816681977241561474426039261538845709920477693184615732268491540384706649539553895151720469014183875158551424525777730809655744734715286580266676096486189054629339016882453941507987269091242032444833809004536791061113164127776925401641052025130191476004019920703530051334345225504591589108092536866838161420179457649874136376866938540032111383768207569671100518574226892826444061925426583750941230989968411638128947731506370104344135530901322807005807897291894210583832726530582867005523703255876339239031739066968365302613831336675642827197113441239786047404594922282925676698584069389576256908671903476944318676580262914941171363146509725169590242644160306449420786048737356491250122571195611483720775961182682185099351480362564631964969507638789602970805971816985612973586991457826839376129211840187101582540170808246770846806166281199904203108592868519263744996665576701564551680377980831506916921432768147890635534272722778521298933755847792397471881607981943374840059435943068428334216721527796209481960798716950792186176030355350840111230859322826672695298593247404387572067143231860260968267602523958774979012183409304398481593856082364341389337600900886389176845105139393704586346221933386593093928914334680246533030908004127365647313040024999005793022868043360837309780318808411588545577750050404447934293126166345753919722303412209738791570257919037337409569905286593973221682410162440534539336291040897669300690747101455450332167482811131153178285489681897244809405145769924448565164913188161110543334490427423063047114345105684095278802599246647308551229950892808630454864320237261302075583542548720157583635103580713636625032224747379396369297948040182317094492067234330026150238047053139927798620874656900889529393351348059768288832775372494495106437988052903761543773616788974774058053657182645177954719337285585487794869993128270663018679316524519433289786087310229880870492638611337814902308330334643739427948216008413398468454679978219921858264237502792031005942006848956518913714793742754039607500069615819382815791570544489232909487886775401500764741640420611114317227734230501119167601457348698934453040831192533004790133780495096070126676304212841014543042491382326329393211463711511408156462968277949725516731068069572532571453411057618098270480929849509709970623915881272346159723650596912647989296483482642015942441665138183076748909284185169200321059758989665096550177760666740093914959388182072776591771290009330819727623090973175367502682619514229954614202465376851631105000479314948442673383013789437400820225202005520851479301925793756046906479184629090863529461631198980772010248994266511924258077543736723730978546172974146756012527287586807583540173091447528588852255781724154798412391469254606284709648193763136424857568718784249552591772078793139189036537066381980252108721908618283351491202769648267250352654180974986439813606674811799631257571049361018987684023201145813191294233166515946376828106876346530804339832848871014772914985150319501316321404301144913974443507610130834312300873138052017792752578484897631050149485209394939001499862479670275942431394901548409704657576438795176329064936725043106665414545147495258937360937269233103273371695865583219509024391146509959005176691281284020144051376577389405040701081015596298062882315348981615843552262526589243121328588049607312871860602018242252888218430907619139256055186505374121980101054732366416154358960184346756845818194744330805165798074227149925781168821925089673713022249305577526631453464438118362835216535660078904068108847258462774724623230674692016748603173632863850240974938175188676230150079137287580721222829315823374090959811816482291232234111449994466753566776968957632717004475296473164992295868576650704110910801591186754132250085196556451255245003680062847165137329706945959036071334060479483097914102367647398269935290123332592276463450191240768647780188629659077634095716343483296577467464388671935421495335911940900861642485121647968986876863404939459933892136203673043315078247987608061152195865192403099631842633736092111499988978032974109356081714919731338144268744875000107521734396829086357991552519715277276684772168058493253827862124026641107916313604928118605615925917106270981237545025264607197923004186472596103295241143696865580246885278889523821131306991143797761336235132116159357497657685911636873426804502452526184543601867445689335996223792355768257124843167850846696671059534176769157200770362909327157467172128504714063033820946060751612023339222884382100978883269647054118450041179551027907249284266944465900098545191517657230549854747078095650653030312580332048976217315147899602544085517202462404460937129434829950890646818252494615286058302931610399527986644723324430535521447464675987983767858553274576988901539351573790105751068315306556807378378088777218198124746011109280246072050647902533361315419468662954678485747767974717870326315699655013656822148040581490354305545702612335008338187749091111494052383401929064538899165667121883487540970687751200254986210676035587776794175343618336285207630908966730707265880142410805060707032793570907385687869568784480457769616736015938536413630664205257236250260787556097455774757289011868913189874223507292592038083368886532520168475395062116101496038634519629265963787474664403762665352926287404223154530906876325742768406778997096142970238439667134298698585833112598678489048170263264542767880051531555476863017059034658172886211246412923385794068196798350766023738784390761774446788868263931942478067603544305705642563053869246361799231929914393888746702874923089740340864987543612915318676141630303673740211134991033606717700598550962045014139640820568252132147380037128274413587937448904742264588070862004564539817912001268065477339698527846403536639418054356268167216419601127881092567509643466310198386723706469136579751761007718654672258331155380332902933748297449278334479758666502425716043758567718342748530168889866051751809096533413866586318624108894700609230919346729271227018825521615123913150064947621598236018911728294383216035388891265370686428575976405950156951109348593709355102838342534676317493115193402256329258152339100395020930617750474685052668495117262860363491312742723147053366495739593882457906319057640382228381705937699910619288120523343822545473519711035047919849587142727809235513248542865671684670789152704964365411142675628008420684942868256928269400913015233009886679244125839262667875744255662831827787068338871783193417538247686666753268577503987792736065765087842550523530828511133689988813522439854912363016027569506342055946774237063109783824722297175623483060616634697449783030455820182340480553604424793376657915085225101562226881743362301554969255219773950730560120568967497088244672231085813916771663787452480657587148537691456641586040808599053986829700070411763436290236659656667059758943114603099219723225663631155499947750522932332465809534589671024822272346687199559745307514761762468078460613530415949068576282740588912996272455275539071919818531158559905345359346788272248438619700155105763423265454488527741793660100423753517050133067406820775756782575823914336008031007538102208213300483644268406486428118518604579322150927130022030457033569393188767563466878174833160303130743790090000412164985446189469896687941043130322633740250961637858234717845288226995642814385208128906853040338437960766632372284151524097044108141699912194451636363881874021326009321356486990380321163204671597859378761217569613992435784684972340103088708692698016102960530435346283768978236637148096852091251063341653087793933833659670744205756538162213377371790278914381201389037201640045422854754488734069088815915979745576920177415901368880699640005393605933630107769869867660342911423807207016714801825700193613145224626723515355670971113441439408018970287735802696404802939745978923961781653656681561390173031460573018906531897258686176393416158082135403181398815747976249097096746888032188949448986686894705480060451139175183024657928824377054443033925531896884352383172866937729033715856752159740083460052256181016031281145733650356551672272110475843791149067325195028509358999142437243518328952890341851425991778600214002714184067601555868374917954275984430982734470522579844463286498041200884928202589331446998342681012049857204609152629049069775961539584317231934453270159016631911341291256210205278249984830359108935558557931465251457255928615097360867608906374589904904586560235244283449216172908227830057125607752899127297033578647617672063297750305566110705507202526239027243649052796370412582542794632015105472221944000057826164644766007197360902449703976834222082773273508169421235206175593218916265338966994300279224902423128117352732731799095039115927996283328540822670534906392409315912999969840348633041994675244133951660694987643060174545584780188583485760827684003441298501772967079894101833282497007265275685995215837075233300175556566866921031631546109694290118163884131407500738103033425807084942479517297095265289469414201218516575568981234318151587104013441452237428230765462311261493292359254573491754796383434327578979651946952333120079768022873130848666123526671508173041850605793317589996956601256869491486826541394378184336901172460561816356408445444172960839107243367378458430901858631038950683300645663811731759359820147971925613439800464929466070377131153786375290710834545293556261626155090438597436712347965720298930471657647243504985434656081402275699884084828293287892556472996243426115977767675679051299379083819586144015024026475799686385534553986047763724020591809376047020194935396496066994018677547582007827032613366550222882592648672058166678101046573782522666870730236184163634207566393058217071106385094386339495663269538191984906581256726254549931395667927745577078160745027549048315579544195416090078461097466036861581267384519041153844179250720910741363335730118512133437866970298125786832454756968163123011584346263632623933800127935755322050938996731321188178612802727242301002191694626301056805133346477474733387813054854180356171994386490117313795317952054126149741441125516124942635926405116862108649711553855391384282238536862149863204652682943838065786431775795956581296667124583695083303917378097789574119398428026846452989762746612118652691393467566728675624666721590838058016278233264415802995565165632881532963740288032704672637587551856333116397924267350129000568133815000975191481932482750244356306231001896829304778387953047701934547885590160125628013638836968773592883331039072247382331481431687171877876654939772999104284987348950487788957747240302572183135929509133981323591646851616809844165655724533397424090830935661692249158188932177773238395919617498596904475539255190088177504488317394154491627095197661339338226612897146266167960614118416613008837771250692724297336863605517549368650018878049067076908182470453583149925652249987514574957871839170836921326297025278174920105258802509641209370775813679955078897539279325531246285391743131325014040262511587548236105127907442196639289658966180508502634021527756175382843344594483262653984996253362021744140684884668917444952258115060856964847079834054179249450599615968480150793769719323741069899557971358473352334695455339906488699776194430830887885666020401891213694535722454280765349189580349172734870387500436957503216571038352984322459463098771223746074160808100971577974939472256753372140570243889519258348551402052936582704796336090918077877706154014377872891075047777663698758377044657380629500855845438851515883301084094272947604303442416310051907006691188422030284088204541508179554824368405343008083604637940955376454724319347540145110484827972802300316915537724095576917556720664963767617842997545141121114595699022929623065464742581109673115064082787629337991392497555744161890313594248052622565876882815573296410587144067031007270578147982120951993360030405114886197405682729248244449147933063343642633904344776829892978317353091669348866313666508067235140297355534935154487333315562185876236217733208493393294562372353537002628778819989230630298611388849038901317453165614666872114887272324597455554605310678447107566008611262364275037441039379964665768341280855139037357109349321929028444309223513609463759196924345423586476668334728919922221311673659404869702714922096181974176293522564971767284977207571903487783893519246591721005080766640625564237406235837590575702433813199477272159604856925602396043755133103287877547195177677524026164120694669176841511167311148736233657715780980926873539315882821244264844015591438223279457131769770548821797340326351042713833405611020866698256940657286067666050085205121933442659647555451927176760521681282959230773956213578523394216515526010537900236754080595505153848583213966328165669110003907627150391620353147125994294471398472376613664011882424228197385750072259969918422264350279718178033808301712617526566032234902208488297115673906378671785792624266779204640270603567928593058045932909685381075014610249476524581627146076698177576815228398621279418944571310534233101022222320606501654949024405205206129457894281075700862065615706800507565178585019738056985134453065031779245874379875185468417061270683386847657781580872024695279828813417450719180566227460080283347907716030823484579946183595845044811643155205873310505522565402190813229955319990715284603309704353619319453573001795768284543517727370124992284314034816125919571931722989152113942885063369652553000850997278660926429598336396936625920300139537524017381914676858863019376184138275017498041106817339773661747895845043897758812483172880726452023241439388865231746551373849771766712172964000057422107361816087259903349102792979979308270023628523758529597867570075899324630501994780057141322491801995683457778952537110712277846210501878031373316685441246608137289223217741859811402376611086501494589978648737792725184111015633629642815318780545326541410362499540353661964699414620487143937650912436640386054976502163633700174956508330257353366182557848148668347637141256778429987682563269861547537106603173312775396755734753850120784440216924914474042297207837057427100428592038685872619043643778276583462349689464462987765753910332505459381570356335422943063994714754772848851476906860249961489731747127125714910368071110721048340586989869782180660366913651528494811303172796484740621748516318874913833829537482710093115167484562907632997574860028733645457176239819278335435298678079536729878090320593882559744968075182006044150174405749292952121225269541773362330245416901265019421671331691807706119503639921822534726960023989284467950185115202795813702819913002353329303446674077185262028344907077199623284429240022491943056862563799841014602594993103727907981951654943855435744872261757182614387220288879410212597943896917628038662719510306928628578850576790378025986600919398587151948210331807562620578748513168627052240685150108353928987727265975242654869186160626299940493101297753336678894506645221000200077118305363563943684010383305660938292222730253374854917326102004836676135145703070979679738359822278939065428715842612967721126410193900779970445870801995752874864979446072284458477702823258846139684616674296753772651862840171349719814827879223815082271576908893687804169715594195915981907790900955443970388315922331964479527716336142061706758118966204357202760075408320815510338339934051446478630606961899108203192582333992034705421496897720564974011221229884663934826316991260429654888999364980614133909000901090438784658087115494490198771624221006254266583445702158262131684864657849381821717311717490048877852927025038291066697475757919692876417191603484815940836535958837282332244722939801329931956451037955550564764585285416999090825096182217293681080818010519434177026292840725765950577603189454235861895626534886430267584275131532826591657143268122122462420643431339726136566805727191566755845696302478838435574648547326090110360366898770217188077551207501009768809042990532722103791746167325778236096167822065807665541403635803310783688017828172806330003718924598527694458992814458810426546620771769874501709607221885442384722861086201209216835644562059175972420042484043040068630176879323707932901897803616315658509933624136246399291283357884523184510086786515187055312478443303231493751926916534173684155137196957625441826934832056418758516585659575170386130983980264423920582390280857811883398652200293682652664738672164341696324306206650460133844960861349253974134539675046097967433866342352498872745996183299108273138263742648407769791195735356665167031485489933207921928225532522685964355337253612671426060231554699311709090524043761629905753643588016843134361382898538154652947525219361846314754688254487008955515220400877005891775506932042233148976800576830571060867497864611454745076686152251039657184882538383568342570944281082458343636970137198372295130891918738446328880046670551079281194581802452517870698004095404272446159250338718052340736630562635846840011484257842477379718806657482744156087977770711133390228521944474749758460268945786340697861541186138865963273635995826578420484835935862810825799461220373770914977043183333559373775255439564984308079242557655441779285181912692406839895678538935793836155093315970633377051098246803628845827083736782250528617993888357581899418042569601551630252614351048488900008777441982289532002406758561651775124905206618836328231029781914951730595772446242343471129361095964883856517801738095205860456837184107447047505320910755121601232642190005674267275260012008665813813922632196579330310288496991807730532869022096022374434888733300223240802117656305586873906733181892526717800972652398747171283201635713008197918827692347727931653153545935794161603855982317986033968691883893185705552400942442284613616182303350589405617169038519238321795803732162761277168204649025419404673306282374983573341848899412545780013967753509395841642813935104866027865402100904592837663696115352266836518894976722667293097247556899249163562819669240960627874776272952346397328664868695276822520896566578046448329119786836020464326476241317706824025233231682641896629252379907797086328378799127040326097334286353974208465610598917284916283071116419946965455995123549582275732005747484499889796558164833616323642429715296581072328569067755844789511027248248323040290903993507245562865914186559874300835903070247537910938535425797211149722443263316412081557293546246241198750398109528422951855368616347887121044163983205172437607528943635130761057316514458867328968781651888714101748818929841615757774650529298638825081304877307653392106397721380097690753349989815795374117713329529388394174267972696804245281875734385102715729414091093068627030488331984188428266865641725060717116572032633707193241753855222834042379452182437975494764095653275939948165066588950656390888723331499250890251984720299123047812522645934284366405018785994825752007614054508836013231355983053709258068239378771587310709677508716900404605088615513022738639684440226189515795277354666602655473696065185330973474959798132716339658708377656703456077152730280110660029489426159301911675557171483797727759347420300108680230622014221800008708738788406691332187035016909125814007162445637451222214489435855147303311226449838762399110544829900354701265708300830368316771121895026821766789700719484634906206899731643050259888746468127101247158220887488453412250747226881732778699787721936034001567962544222560581311467306946856029437351827120830796413189145275992058256765983262059107137131318749137703208917246867287905154735759796419301368849850960875101130722075046176098878192624933828558546634607190560115009842520917952849877513527768855654486560797140983706892159989446129622978491501755450631916949151192892564132760753125288248036080654113994295936744527859942633021997755386762237520530055090437898537726410953066679465236234161900805722561304068014518208251486064924741426239544169490002767791447418222602681821260934108717121471239074856920454034357808515585155267004834068823364613616827031552062474680902168873952842000091686459491822421653892030733700900019592959669396037072915436582288808834426770009086610234624568296730797254366327620323302006014154726113568880300964452775184617189590182735190457894748186478204277959369928510084538103177643097267507727656016952163632286492677185979914846488233271150064581562969563979642589088263309255512720301248656089904817344383020862200994925911834715234851679190800848474572040014646828721861127742596814195853069719010246347204910521951487640590303559377275689022973407008524725399221798970396675137502859749420473064055659647129711045970651555226569363735803092169221776572857004139423152994173660354768115124740882178469915601945829224867705754035602590488988057472966508744145567591557353749680582912218079613230585372417291691565650578582494418342433941269444944837406169331171128252335326736201471691215836971431383764806513429624704253538189622387268783429921773573462374386384265487457830191059289326007583858784651758005635891728867432909004007658593200679557559630783040976079260546050090742550003404493942597357981564965573922963107541590060392079383014401179880012913436362227349415166391299136264995247987161442313102826415580735297870588799593181795983251720692846901816622496327199503729749396965796609378969117534938851341973570792182602971550038929924645846093155974323490303357156539669470446859397369868354517377625665541140914635076890123517497098916105826383017918999019185576438543602783009308469360304471648723391672123816479709042633570574249861371488856871553041358686527777146560935180257316642809609677710823707296856635055936018358699043845491777410587383382668079543373979088985642084578588018840317546072707332541159993725695487385111629953281056207151246432165509724177305172204560403388720780096981834523226047801074135265349676453034456963048972600968473428311872919753507522550276108038121666651903673409597388439786966318863338744987052750643533364850888767863738592048551022193939906051023984691647515799079949705010752269382842773559339353252450519154960042239437388527617822216302442038787662514030507460326087807590427248005779505340271626651806336663980826085665135046987563508393063714919081893379924295447395322322831554772489549942093869014309524920616418009903118987232703563643280620891599479457755633918349439786900232832247507239551323096852879961701341631227344160160778113557460695615466253204232858939139939098489767580506397429865067450845374552044878376093124844620563169186134206172496692234260503057471226317594888823431322717405509646781096939826128415996106952771606699727956418727811388548782076104041179786144908709513554591341994365152045791319500617835541712864068193751147232326978955645560747791430775200686939349016306536948911946320852198694530869368703856820039033069017738270058619166351335827485650876036624173387359455563760162445496756258476870092095081694332046579443437232266855584458108480013518797695753576602187159617031862139017268709209545605878675744277798534109692867846946125325082246676172094732525559163524961283797360316844255719684759678961625472573227928970388548501914025091646212319065523943235404417912337611651084619196565514646654422689469983982034556704169690525227510918195116550488698343935771485537571378333151014510804903210837486015755751544456072216978573145433680365043489218924656004246741910908402564621765451496520911632630454620400397574288956488401742353784201321115436964497886077023006521793680880078277046002415203283475323444400120022438696287441657370977073786739905297147770007519295707214656537586101845771721239622223269151815372136053438309531574331358730791247992106647303115894980023481334582441014375240856773437530413202543245451499219388728372188830676173762300675581673848282043460955153031439161513806474730109861573600144817974001265188339217569753994713811770609234914414066634811954797188349290617316194993228473014381227658448390753879435299906070847188096532153584203167107291032685447418075276643428199126577711980087054558930797935391800774088502640702319565800580475659411290272549188931517041200147401699795794077747867949286582493058299395711113580272628204657073807058687121651665571297040180795486446952157356629855981954417783393577144019690498933304287425310796656714939465933689844029115960365701262749481316424417994132889269885056480271304099188676624147027584218151624656908676116266416835873071667107888242764229390690345502696058025768347891022760652399287563020023118747372882334109086762963433746865670553734279807293279522189925859749333315236877510937406676502100366651732132820614676635605362622950885621867580193288384970438904952199334968216240989139441994699013087225188322158057652698084477039554921141470513925711229698425102189090847657162411593396606069628678601671706150285929253831920714246218852466173781985304010992680563508717252794624457369845744072529718424279001032026443341801549243426369495541648135970919401462033208869481429672567097597779135399211643339877608016498442121049285470633675398008072830000506002157399266627082632845618709329071178040105159060206735959073528317432696042786418360650360901911242880054507280225349875418217640009646699637796017621715070356461889618462790558440694331812161776334563606664863974575700448336424813464165319670592336212024387180036708062877254106987710192971462707932405919010220589023466661473492707180165920374490446401852650013485349313580002737052675111810531100897970284274926005333769552326269836605845913998829983685701277755561238946462395751064700763606616618079005979796566630964988657726458677151003351924950738953540692098008809991286189396580327565741495721249795751653174895610615250881454894835425234621375271888029432917419567558777158557893096240341595319423058319786933532329563124612388168836868481383453546597873684675391140949499224575761004975054895733839053397828552074157443908534053464744659804639884685143478456857684807464025732672203383082029229835731128687195433933979411760316637748622168316858234935927625419942474308176779283918855435810750579165445960249885899781235864506189494495933682866052226004342433843436424823129987184692235715498761260586506388111957127779629539235212998141551286446774302565731489613222019490268236239956144448791529614162927570840171079361857851706685092208269431092226036184188142991340366141221800952425041089743973250352406684958186597127419310948458624753428343817194027476655617007797751931590740338576975471168763765250376784350453201140215392717217685150573206662101832373021563341263658611967953599463008583384731562902179971165651810686300442619948603003804552435808141838460684732479281237796921095433251720694019326885639727737033589917792255504425889019531484740983750559116010591716550654293817302857851321398506280871325027562948492306778914983049162735925619775628201619824596098412981126935098705051746492112275807587375295543708370246695065931658543423527196626936220309319563559839350653207026903845036106258700880234275221521653654808363782059034172871576891138359643320047394278277197737992619701856706229885493261516449608665128835623934921067715431770440400368819251687317932265750308977075369304565057425726864861235733657564877266646145221369289716778951990535576705418834350206268564092157329374370747438960458232964762255831540746625662574507911296414345037226787700325540503637626482353532010682465165242813441788542824889273749963154423037873133472111131820527125431615659630603892357658498008744738787918717486281606160611815441352480126002860524415652731151071733649266599988715590214358394249963905834279783776679408648778268038916611516755530550469486529945138543998971708639015188234290738330742196094427245705367255746499190830566847573693150577885611899697907337915352351784795017100615944756851115121933038802123327890547702714573191145322871959282308577155546215049843044982860352302172383029819711227734883098290929107159726588061511496822991580863297257439837288959273171743562135456894527506024643357294207981631180076177414675022363140113098322047390455087361665845535878291149482317261010358429454303371188668045904261993402377830943460016251274582795040985364734230529353521210965753796214257668647506865087340755580946947837204188079068732845358168924647754789309398828272596846253681001559045848576522463567622790973677941820478022404483434450335873006356316708527524759934517388560105384218025917835006069149213849522858341343005768753734807613364619829177655755005573384925680906392858063410636550118206660588047741666946704002469361034891799046431850479306413314981504335803490760118954531576480065205134933697052395700941200367457007043650862182784520620758723981230582504274798446405926380161473404786796794444684583939819420306352376189252361382079805348194316037691378858301158700334939117080930058264698310555475126215925747360102227244857239003501661681640497249206308618660010576165808783031176917551120406671048334635718792066407876140430227385588823819295433800278194050710314003583394073879427976410530146797147213158124430908586249658875248016891331345469643156412397669566769726217056064916970080770274830249503672090800420580979011461818721047827153686378667564790971882787181736687043432513019415112596603833858758855183408196720946505586855290877181851980838487474941417052343168651513741413674984179491884633453816158804181757439282163806471623197789198770891636592071040112795317425313575848379202265153000690458916198950387047319641837420515783900649072955719815259989664082260003737383771545593925644962181779103364470352221024833418833042281068202760321905039518477647327895970183863925768950133210069596546854424114367609241078353464195351995066839558807515434589990530462714522679301486926091627544955812888201428610546826698818863569560895514369313403867892871768266872631155920984613879031833882879599952606886098182638314395879099563652207959056493526315123669239636938740765461906483430645993324318246811417013321430335529414127861279242989462087049059288485954431117233492673782616178331198164773531449443737250499965440285200701413137845505988376968615501934524401906954906667993025863977054022665696111009832258338029313762609556850330079439026408688991372543172380426492655215002841250589424027653763677251477734170784984368781067273297766546555984006604214474704248061543736580898551147169455576107231117288279843579506007660420324301721366456183099920651686309302399634270952148289107248152673647938636948490132332219406080972385178355550834636203194498374408764347371642726958946785659939142359375452174004399784535989823079196664453375632044804211035422180132138814209628993323566256539901608139249115338908294108990383285854141762194495614222823152663725097286665011672356313884922111080060822067644323953437050827836299366775340191140152419348501191583456683681417684861811067840541261768844631984089371692379207494374532599489604652826474327352172287886773545841129013586586815672818066707738030703427424545826255001624242045503591884607170067400840949633175622308748399172917128412829286146076235803126481373124512355401024264370428967633105797943108767103413708188242459883825301595660922084901395398950820908025499271494136456816331204825260020853693888808701672467385217913511139022751416286982853485869513762646465063600049237488769799367244563161491741204200959397178940506877840782878423286721300446194153476958585405306616942232197451496104262478658795017961767184731280003647553482452230547186918938494460698808750802455680248969036530710483301129006104743330727255333630120968151245497955136524008948964218462454829184255227269603512238572201080846559426802749751738329736175428979636735820966025250086863381912948402137389246376411759752981029852092597662929237047727271099522709626470395928435520220642299575932448716583956534373023219332452611787884047105034829887074763845937517850050856471187586192613195557812857884551140114018265637531147097378783521106650446962389069360395002164922078391573223746821971099950778996001528447211392302894675410553806893954154476395218978403019320951195712139734708388812471748125282534247328370646398598834042333167359823298291612490157574150801294928140563820546096587019419352836640736162820464390503366838340132813473364001116122036009829755086020654094660118810750997930722505883759062117903011066197531976454510456653357584761068226926192796235775837274965538219150301126682721439979860933129257968994913340629369718721857172490291676795634440566458070253173672449388281053801675785293115715193492202186425018651442692390773648484624676726636040174650335768633713014052032379201975724764997435993948701841845789969442488690545296805837491934754727759006261110389150373664016866590498024643313002197337775488425603383817500250620832825791095855063047138641360761568552490203536469362838093932882350721107713311852522017140960195935770888835387914250978560207803694427057126545607151695826948550767404035778441056692329795348524150053300024433203073882814547917309189383419834693033089881707988284963979083575472237038583255736310269724724072546520901570896647838065392928136516960317200160998723983937822046483853901110765335285147172156409681079002685333219639503576300691584355269136626806016760134593646958024308038900754726243586124166045216878378553187056751967477170287367887121690888370767306152384706593651238950172021182522766883842114729868907455800767374897049549032567475846179334394748635482805578149046823023433907225119968172680736522496945935177434411705869312054498558807543455585207739061415825822550905758476095256888518129177739981728024886222798759293705932683703671365444941711832629763550043163562020482833658153777464386276915047041396305164164507955044074366189998843387805244796994802794829517023201785588892131272322639643461007757884813963786163442221966474696376362395486095691119687448984198279224549669034707857272031559246678888331546930802458021009417528531911210567741862988987131671390556414340589607861356897038332552064319630997926188963166154253310264333781480948176992621389118915715730024212194046445522457799979782954124805007226414184476174799366200393728571255037046061181131392764370225423174682832102327276120741989570386239984475466165722611530678381342576260081741406511699957525916715196918249519442953794346484785789651736648323952001267739082458140821448656111779435259283486541783246409410123798613716397560494562170857388859469657115936728392891496174544873393984274192336103261953109861174818494979277053083192785213515838872942259925907043577924570877062164504832412624645353981092438911783593350002423877796685765691086955190613766275751272017073659261924057262393408054117100247780898241923106285174846975050268919376874141051203515527391177745246703135600496069137873578715984636471365239173401732265973418085483394179361226126139709814838443366405517655756780647830866579417252812035186537501914128513626628853653827940338726252730905909565948485541570291663482535672760966403967092053236015292405256168088028432617953865472502560375354307744260550224180377867161590992855338060671241872823813316695238712839213980375630192473887138608802347124685584399223445537338177237761712159571173482978243953457140554314317623117640231836740427282704193692069796656785301135139483433310820965250414132178206464826480312770357435672667231921671536201820777659232870830377857849852216881737069639545955967558599388720753818866950097843091660443791838851128305375400287794575770308596252445476519370505122499551211946361814418522514794349779166388343272747437926072003427258972414674959083118599322707773826686414059438379818004984403855740354155376680719888858266075155196104301004401362448859375961803875593697662139334291363131124116088781875455355482142700512190097296280103468554389071263637263015586393890760198132072619146223803014572628486519088685549500767457378682839239001768441633774885755768507453006679480837036669696396833018580011825530765089205961197682319636465444245994367902552058443649019854194048270967422385443376972436102927175805131904836383097788364644457661154111137373255138987365374900232306516081552765732947820303903412222519058805597690963433808972830304935453602470170264299933502210764915708053964259342407885709903470501444564621846951365972852860427657128706071728571060609587151925612016657321983198778589358557750770974268649827549737762860409267493652577415311137806518969701277681994999676103437136551089745902135590533741603793622758463977281677455538961612284847976857448959148491891466700521203092344970747094391060861672641726935108078005781339891427649122513121648556076851922812887894906779478268486069156442188042940567558845645714536357301906067055092426036041751300206281848925142749561393472561564801716086769199533521467653040744198167575826010401684104121157002044197115415303418744128750616236427190883639108053394400754318148038486206697717749428393750913280180122455931284224046224262868645129932517716440565652377213414966949586215369473589941006439986306796173183031868058967813269044161022563435597470938965880252772180504335299410925166558186985739672595176343509441446068176712942461145078291204182448043359369078192198699886320871210527047594353981253152931834595812366792304984782594491086978477040035394102823265871080056498275469256431676814025914929029841287394684681476984476360698926294567422111285052867540386972960528927215446000505388641150544424782957371825659990929149811074361511111033258720842307188980161973188433407270671118334298894170488679806158762686534883729394664366248583897163904690161017103963809737497812234094759651435979459611564828248239275454602315265196693058404847909904794866496738985440698040785312353105653849148973430876115575581310322071749704524187649146795812021555066255581888609144396514957749449429257190076046670150232115137302917572486504170047753832992647873828868080118425895783784606037812411116288883236076384155989058847053626964039752324688318812434532237105002494434284647628777674893202066357289978054410081165396369637792318217670336996270818967061938874234388332262770480507404489278076501541641489536217141901151932169462402555253175218914188257974900233421878896083981478487104356820766419478378028612745610434661580066737393570291960367921221987236970413206588011079045143604045156564660531669083407738130410616057475496912705185241072340887969378538231184126609767452044538480051716094863687170735523469618014343556741746397038014983340627832794866208643192392443607068302298347914410243191978273335126647499593471563729495794891805835024081448212620534850396604849782482541980165051426882945960000586155478128281499065329081363540419858833369937021117288758565957701493170512054526160520765170822571987113982501187303745555316110929305375322579635199552246375455146609549092676410758036599190057258926189307895671138215849232986609449252479876360196794100493670499685474145735137507130158854059287872330267517844118625401158205702432270920901361350541818998395905892519533374108591343152489350577788644390924627076942080230490799722826622336107179288666097142015171683331313112059111784529887321419949720698477960131724018324543391161458107653252823182762890496690057892901756892637951456261463320529937695691253939521651146845891434619538185924812831490728501659753304842099474336186725093472037410160744643830739740227386170720153639913356123224235256890091436080423732008226767650777614745708064159554651601737128754076540419544866060263444246914582503238428100153589908056832348257242238699777808425998355118390600371270791800983525445814533774345726905399850882699740050753517806337259361435376871527907960935003083157543709834973887884389650611542857303336072429585187485406503763419009685369539780934595400899846833275718366468228572125741550106483187425240022183294035795075808842998845377909960141762919122161148124552010109329479500714655249049032728202461960976887239432848034505939644198985228270082811893508799592103486448834970252770054981798582776952346731983960271538692145175047009843100753814824924094874904716152455570146132775664734979584016550830371023037980425511475303887464230918226440108187449137508057767167035026375974997280608980096316802557301296574950160821743404107576505480634723518340242418671203780695267294851337401779691872656526400558188034107313987417617323225992631316156374583726679201976052636243484546932633021212335896822876478143107133937769355579743004286182958877116244344673710199711426361548107507297845252202427819557168975613789370544337485479562273574069986436233748708679025175221674844154896987359132963404161972104541625189642374597580990433022576740891870611662764554440664986254010004940623805208631911890784390714623435587155147771698880575557769870665837835397919299454754305527794187472673804578843074599782980350186723560081444309362311502950039431346187191768373723784399697758832319431362623884437803983943242967164447571411362741169695529615396504916948885910451568169100175272006061409528753538794247814765291199067335737246209615367129767063656989146668362694521617426725023584846312549696324046619313459473749815120520723486673807107174429665344064711057825788677019387829947096972254300759767120040118390725897270174591236892848937459544968850745287782635531702712899697323874141151546377167203971592292162780682231434141794538976143651905082388794335319387554296728124652171752612358950340714762959989139205538637357152415585669617318668000880250927357102525749770318772412106905112990924202653063603732645903450480150286499983207837718886557993881151400910048867738947102225910613305735711880711758674819167578035273731614570249417043914220330622538950671811256223189421628523083488122353348626851265578490028134144306707924984433275238916415796589420316422465719585101150180608894298592781993865281065251485535018399328709581337323695267789681206301411383224448949550373846476238665638383380856147928780621780248874378357330409964724984071931369048449340943464997495505474472669697900824280832316755569085374576834751378815195644569101010853046151120307261313965864342107343793570736910874522957551089093655416791836883603186941025963336815911248719323642095602161811185074172261571945712190488835939266596128610347586961155560265151342356465348301282085833338549720658640792515274790362666471204852654302891130737652093117113273781054996641984420528171359461477049914530067884834491189362934869519040392316950438272826853769875016888265833263769592931984194932097227132590490551483021396026322348057896618635021320187367846409387851445602294846741740548326746314882075206062005587677015618965522158060926268563345900560795705912016336154268851665327785518419640494884318855139514098785188214851067862464872232487549353886692393497576019849698203233938714288040589958167644852029694277236297555904771760143863751661496027441818748577105478083665069764404238927102079763677307626556751526366707608717694973611116192739457399507895301178116652107784316347705866505436108526529710695077417774871305691774205212426557795744868346109800950729295899712907198721355250803711243734887448368848799802453979628259866106671856510298813732173939708017678166954034195999340612460674597051921144800503468651537174896395406088522238624432510395763610702230041669437098761497597058014627087122878082919228943582455725920934894141063839320833361003342126698164910908053233541259233853676631119951671301890230858026318701544047741540047227514631197721346863555584741358658650373917336149105260251617155855254295133400230528903116194056863984922389997844740770010332662126335633787552414245399252684770164941344103854912182643910906303876603035157643541263780782579380267257120422529785725531754240094324290444377929911640973962777488930091557780725800972219874658335958139166261975844753573949127043400711208071533283561146116765116419860291177342448710567771669542424013288964082381949976306061450141768921258290948713545494592451085607757297001854276067412698082188344459329765592833356698354161225592769356684137264817134802822054546667603346406307501632675871289624019356677865629772114462755648821691575649257791416900870687935012252777919770958138651646642498181810388260432476825317583160056267644232282134140589143341330971861405947934918335956677809423048235092341344475575788861715063159794652667074106786360696951828346076994320573020195207708150601424546145357994194681059932488012998212659387022120991396676132624583543205410270402831103467619169279607412864101239735835233776320093583445503843736220882614308868943938704595088419760190309375207979806444308196871740989640592947456679430990249696277143786928813510914204974908605064332468743648160109510114817630990220060546770066769998523197752473183235545834521014772550059226435761708402883272539891533066261112838931394887728866561116170869905152939037144066925485725429445161134636980077054955769329773316146785825521897664232920140910663082376938810412200067503994817463373952997210449716210967322207690934841458195409473178635206755788544429827024261694370332721723423820804849591852107936791973893593352217374719451060217427562847531205359386764694652067188599868403688908822630337315780525109418196386291447850585287377519490295217337405003333801879534388506002288290113850688430889840129900714260934873984967321165651518497792628914755461884647406729386826433635612327185222219289232165343400923711864149705853887941244864538554345813137722097291545209738287539934993409709727287503581927270199168064200041617024435122830719762760111755563595840238847399468241069160664574658664992592037793638223583069344319901089574584789232077774161998200400769607878973194296498703554178572411272341513465963842946678901974274267556001969427930809020531699063192907418235915028810437698755145266133362991557985052955715615871342732797663922684869848939781511285342799629979427537703949683831362461812893165892427188760403962088030349097255176365313528849678770486590031364135445010668475005701178967856371521540168330313595815660107797850222910431469774152066447865540391223858974637994364636827429790696952929356712904666181298292545922542596485785648861898246412067067832030383192682460405559767737072034264387448706429977734797029024074866851310701116670779295508539415011820076016577661547162915636318693060299560044891948206468045980309514506827533173196062323730732059738639345732510463932643720649864768999183592744821545299803490193424755335444265164944460492781541464527485433524501039881796751959652476428108680954214293647248752134014386311022119052666862137698094693012069370315581534141282105407837108861762881658930764701345825603144414073700882295696868741389273260071939230058272572078988573812525619821511637103652770370517215790931167920184296467056400673865954338523266713554679116621835940245519959009266687700226500982568376155314991032748064454714909397997606905156485368180758633316338227577331961325567467531145578695805449424495055639579982063350333602316712202968928298364198384824958910285960979611476764373594281627602537909270350471885468405027590377730762546255268180177564395839457715086917885866259359270258841370298778633827131253501798655833460973332916641481143516671863967221849554613015475595828287429825823835795324311267582860525514996186439575581176977928094726510460030224470153296834546967404556086593862498748482505541540746631267361805984146016285867638430139043986831103151640645029738641599880228018848422236613788854239110768056012732152235841193365737881096749036260029704405673834106470774573342598155110073176366268041961839193778341899716320952145583547025916564358094720154999488596729405102659896021446394307608739497273667256191393947584049997351016396314015631133307435402627713473811873950636753481923775597482566021237936842133392320273856522224602750519483784987403356574066694430635790949767578708030409327250868506872416593536566365929997550013994278684566980341616439042822227623530504496610639703214038353000891843978118240669620089019568446135723981775284970264873588182200208229949401930324246599639860034817166082310406608317328904822887716682774257321963250040201349585510777352996372729734516588385438287721701523317922004607568067897944381130335976775020380900249737520964468272599858756466420970903012893748843571738987368991586696364085879262136171605464300968204017012932636603337012773885921336078709590227040224064342056615891703000125282296342627936413918174747917302222586361601916773396367972465548890926734190080245523703977617604533619645808298432777672760546339101748182333846309526821911551128546783053062305218947024999069475141703433519476777901113275011118577652276998976566195482027734878402467863792850574829043086317903349018312771294404722615277657829693012769572339021301114938735765675359964021426288539925677519392031978600349213630335863970977907432066559776596576043873604132300292247776405663233409893064809483906966718665330275156876306399814944491947074531245145780377031464086089950562640419383414012908199747540189066698313845976191069769224469613660849043932728969002087844968760828345882294846508018547255546425481448404409605059959178384718430116409266055077555875306726494679793985319936494906146122312312311350464050811671701580682830924809848913563004038103872187366588509077439052402979012985090725640481518808108787721317649299692776724551800203335465284474703192959435308163374300680078410511554640147289310182076205824634783701473282510070092765665598029080372695542482596759905791985585906167703484935740774641809329445528058401525840286847603422630293123911912336669116676837546636243541541716330811112603904601616576733245213689055057026518928817938301101278261359778073396961014857076938993401100794170418417399485877047873970118531866732313977285938352054911139684295755727413116661238606980746515192926404875052415983736816920017100709218130827590193170572331375222824760952354407945192460421233240449273611001094761870271016395801057767054837872554704346553744570842590142665282014126439408869013850304735067448376133202277808326036684921497678536025561630396665953920576015518501438643550746925356572954976971591911639117056113750041435257848799005836690315054718323030242151917628870537594862236245770748080638103983073738142211619303523694382978076240448564811154032780039592512086213810915871246296753103649663469368424846182766293417272326554554751678936107530192914646721328266106479529494752591482088323305214603123462871154533584046912841508326428308088346532095916037648507586475858981776755493586196156996224969576802099848781216945351066012611438007365723912372486270259471724177106981029715997779893595519666732721138509475750228526667883078084920157754476368549417055952113646798809826979467327335965341138008424852898251650297279959818797324458611655057676664823949673755960216962018607368584310333270928978445679626052204918589601781990549981706502878683297815351249868857996848076672612348241726225094640849697876105578383544253554227800418148601357485024051096989240236268699209874464003174288095616669088770932329805719073595518245410667068838169581608542517791661652928620336719377265860179452015656226410461967379970042812948198327435683725261573286025497824896026760977008069594922074541826550903919947065835687130277648270309519446328571784762227023678644934868506768797086940633077017500189155305737841125942463116781931900688749326187006628033388211298031836435841633323524081894347790081510100457773993409737517272792786951847446096902374879250475661962002561615758275066146982414090273144266108133795040422619273968868035359275051484690612705985687187243191816098880787420558027174338147813486693572554745161234493653385294469597749353310104999678534252350132006003776050236898008587881425578631480669016733226128106217144751489728243162534742763891217947969526043871915355809409517246920423362836097354166695124811736083701824870354856475459527131439528199684568594658208918544796571705632710185530262257979719678637228621244325461916175554535505422156650593533245793687468306920041513104851068356394774519545781728252578979704701653438512186827050579388397405188028880869687601935915720718249142365468895004722251176504546502903314462430911184693114289584991991606000673614045284193290694055117301118154411811044280494968888101304984978014195076276412458673221997822924969576765348295572190990086323581721427790444946838711645812071508502764935806850658610440411350171088526103797246420057216807288582013673319736100610467302370219998664900583043321346699642530985256816872870221319044766993118716920094407284258477634789307931848928322820261094186474386766414448372189838408025164575847450794287966983606026994513497503407148317144088408220133447004243539939176287381973550361628034172887030406477437729339308865593278478385625479996524643230520803606504449084099298776511768762790421626860315357909836207581559130736658833140678195491561387214176699856207424935806491174039400373761293137135152637922087320908925847422768029210961071407605919496174274179702301178746150463591933668833751831052843952885801919941114742908469050327626275685139175759024232685873989587096958418254056212289722394628963786557931144892946374811615066019822947438568361589650633244427417355187343484566876952353664101322363822954437604967921241696594296376832090331962448226582838338299368859683044020503095740173358729670556027351430940946265417993467757520712884498183542399827725948666751339144172688545638281188757394265545886876678127555462046940853929155516766390542137160963320404092447627242929847569488069004560769083831583060655373198886148462785197582384076365951307597608856123178915653620063935192733269436635069992293564099838717970448843786822066788018769549682088244802060696907312875934418858805459529414160618946430638060996128835722449010782843147137197608119798573365020104195071683532711634521368176605251987816607796565372832904255147998466599957231612795984022066207165372040985755304823506737039200624179650565301160332778106929139932920233803858444408114785128497229381149462839439553743525537517539324974796065267310932416301126875255230719468464856404793591572982833467022150203896465539264764244124395179125293337918117167928512176595931592775313871294065858412716352674244527770033775638424731597805543785543920448365352854270407740501032334257981277518960392028234192500778553226763687350218961851530110915499902466618957741814627653769160276837011479611464407011862090080349866600221797573556955155134603637279179118443081137781933607818890505659164656910549143089604915555979814938756064219442449817432238501521388432297076425994847610894033394140558335695774022164088899257605063023679541105921755945231936136570734800194918778156096884216259027749329728092421646950727933051794773433423982581039537715786251379201008414362814469477811367168089721969257354305754676061801899593832371389924592265835164625153551783727465589937603505070687922842928325680662317535671486530649196408804493962632860633730706237000433076136082001340279561428997261500381586628962674001704732989550133510549400655122387838049055665680205579041910020517432420204298729379692295499978457937419078256942196947081961632813366682590698681365418936103451806419719437692492655604777949392149040045243753251730262221134437523817986849630495079255684585237266376223298468887664632171538083397412673588919858844196246185987081854603467188072244877711818944288229393321986314965469054180573661771591723733515959854278123988436704652558867986309745530761177137683063290663405144460749114218561721282863032712470649293388282997284406686830055374379700821315839439227172937101141654571401721684026379432477497274015712141599294079983715335998460306048520419210051187510893779354073148177402617820111279677037424945320285413271197408460852510557389246993463575937613409230610412614916446282143968567091946726854809620344155685087582439008528845820362449895212863728116632110932991628964075517473724701424284410060480325917586428766224378384295106913128323553498245749935565187365302495467678750398765727554173245956892352167236486675493148028606119925547633727146389603575982279522895322066946208174150278313202172162468766299974454701455632223523796132107084460279265109216802777978550510590836806486842493305733806491999652578962071023241582556754048671036862579475145936236825775812076967948196406696999569636523264380783522647989300561913861283491975906937349121675573055130099058369437667185432933868669649118435669605708466867412339619010795501278587605339038940242295053061103030389678724623103255578011357341349868347584449437003594477280093184232086943764635172725262818004111306728875943600732914560459557190113761349152434704683956197075791544499994364447005180175089015621644571471484146080304859913994398187066349907947080821272562841117536196700041447720458655469392783710381311415756610152979227408529903087734220294131250474031288332888333207347675510707304512967983100323340786962113898176841109532509778604579152005536244322063904149972682401184548254580758232084895568966246778351316275823576496101797166253123223393633494773060644410992071824627859496464079450561791198860350254093103287046419109329361417016366079453614840766087642051476773340150058929051165585051443697593212771610685721620171807226111920080416063603474866226741132859318669597894264401510732009244755352123601413109731582962741522582133622486410658130514396405792311215576052202791608116985104106676145004675967078534070120114668979217358049937736668956136253220560981535383431936042079041189397441855892289881265642388312790581281939692586187336222063017839468201884479902884684322375705445726101144059490390475883391548161421746860079044730134036353168165596275090402313830634584631037256920751842120957509877405773005009658821314280752542704312203694890910496618180657465681689868349809825281770792126378125433832441193301913040719629916139942033001159547918938715489942301753598471451380278617820381280023799971497937007080049351077346966713408535573875405686037653404819601261702079174206358353759309380761492160111375424150867115414999424194560073077443978831704649835778965024479250105373811884573868709960808006964325545252057081307585982200213155700250783097939251217625911558947438527756305357802271576176632094162024499630646015953448527615255025394775262610181420757842040275534777093935243260565751013249136266294652914456249635886899819946850301356174000451089497656273260100919830205150266503000736234073619381066831345131372798494069039233217883939678723595029014914619279551851383477207296472452090140243420117784811040229182354275567585653152010817010580341297554502998572169375485390411593386385772858833806138587488898608074900916509134982593443259190158033567125441274817203160083634287412510695696251599788283207140802984718008509457832818603199507196905305488916848445806523413332314812190641962406654079131365663139023442402055022345367236146752417415888790770023329754616957051418952505659068080760478562224438775903086728913581477468332679159439405182622244053697306397560285248924110509356950296049683805199184137663224199980347790519888140794641815759868529564159340667825182664716072725124033032422512313971334193481365715256688512905564853639408253837313597709308050408051235174723411646849703239182723297776676572765196986579425000057516873929663963555755703105567220200261822946008425987757996898972798691504510846999959665051791820250270725670128951673121350297285656790839147821655725010837669982109667885409705149369003130357257622608923887260762751188601664506242574962130100418266067408968340467932318758383223853783963513650620179710250439404955941276269173341659397230389328915274213839908086246439778200242473218965699706404302667546882587024814060909541520260544074122613679019096095284530624791342182929739923670770568164960035444974183877555295037039810327312819761818372283043243918578153703456236473966823899937086404953575736591477195795153182393236796296705037215491097688949469180293732517924178363947420547238401081846793866395693279480446022182784263211770756002848003462334528178263924957180544999381115679622664262560946470580775457202430042463056130473651318721543350958736477891778042139207878135685075858769325316148231976577724106294360318494784441556155034616035977321294797973249621924082924794617667607032725288752720331294859091046017655656111745385116733936048846572408992832866011777751681963720429439433571888271221590555759150461645612071608427910686110677222078727277936701047085655444360536803947474464659718022127422856139580586126608990438269261510456304436993683204062137725478598043482986934291598040275564749585487103459153257387780951639717163499550592885465063241074104142828989805009306767049810701264384973924906076290004866694298933158893806686035925084600778351788906672696473752499975570313582823464386349274124906511066386053838433226644164663594479967809086970290784755625855977005450757413060625258575980478830427304455852710902066806794518796555074483264682275189159988839012616195374308174169260515329784073956693730239994380650680377020773894285587421571610407849027677825708561281584590382676834245101897655397179833341277480619916170893067541370865803928955052280095988193948711817412621799912895614752572807379341964461413219742493656230764513925125419526400259567832830656790258171293439057781414834870035339878586934719379070209487955136030572647338436800534223815540344706470469156404490384392572868736566524133304886166119271097420841764375382523491033067175926231224930991728029532514952313750877616941290282392968579588533158854369389835932682056755134312071820694147015431320102917215595637399242606387108702507299106963748891865936816287101992552817712465512278775462941187362698841953090833045254099172123638438807510445949917022675954160488445546979532174728345824000578786640144872848419166379599365290992092005938092369157829831321125532311375822901601034652360230859335969021776741437784097266674454529449342146837926906271184720890393963549407428358685703993079218454737818175649508435825109380081474680673625020391586187284088537600248826656803183706633250177150724635438093145920220199014962315578194925234761367098027341866772783432637723128820421133377577946380430340550188225898529030312984282014029834537303760249933337590760927653465274918137291082726601965119600665534553863054550131652304017376689479113175211857467818920696490116713804999298527097300935023664504726774195636205428227986311613550657252485792475040541768729479993903036398775100888824633837838180251556736001773207390435902827118325934444599282135189790175539894615242828487356169548439584492635785243950936912093548123596791026571698303243698069190217327011859327856120215238947624406433577775418657131238553821986308963253415450663897587666284226108366299994911295011285591037245971618249478854141130264600090460003285438880784185154100870848745364078732831881235495861334622857272421058424715558724375991845497907172658759993200331529384365462620044607663398043863135292652826385109591405792152246987874051472714536382024487844957665672948171013383844111224553066724348414671256726279570783270762608857644593810257778987273219938980159618268071215020868513483729713569074250497226815781749912774470305382354527877720866813556355549659574833331281123029461566831893693217217385784512784550716887426058897186208133341456969955902145344116284818729919580497739473403559422812714522178017633598794566950690730101806337076481515298116888712943359054368677853311378821298527311398534465044083585722377958130327539572624876004254818954109449959390834775832609599844206276902688876850109425344875202011435676167235559393120183839613379339764590885016724602242927100697965864115195404318142798483967083465086860420684641026211329324083664862546932243522643494332877592321203407939342694656011086055417194414122775850009033290529947315070763094919434289577857021565687257280376663865734448984432420340842990488699308952940183065723562975253160107030814970979238424386678584366261712817059981234380846207870909190332638470595305458603092268666975133491189817439255986322255912471910107582690810894779772449350362795310865576075328813885523501275593859932218505284681685333187717621730367960145693971184200516767131202062940544602405217051532209895946630962126880000814703933527866509831926659461772510250894378011278720547412189895258338463507885002065893284824286686746214067014402994066974713668122498648034284486551101160112555570202801849489745506344823544453091892592693743923905839572435497883751860649346751174662185902054611885210009744613425210771215760008910033829384791253891806372473863073546370029332112471485722656677647861062161684577736223686389385933250787291010643730864939521774202730506483510085972395883328593230611720679315244081332379415434978419348956654221790682249650320638468634510844773910882636332538781534428050191616346144882244018720061841265530154760266678794372366505369403677111187047016037310130418343839110623854565393304703463627385172117986953847971489683583627197473774006381810753764870463552467851044044002737814483575146222405337882068403685150745224746480635884679338731883446914726415972465641430756262323698889094028371790942633272449990625138362951677756828234919743916494339359962214471423674379230150827103744742562987886831253926811601675404833914391778427391770202863560791392079612508397058442316556279446644485961448321081491237401600621351867968452124081824020395468215317942918061901967775479596351584155080302561108516818769105192928511325289712043306275899679378207320257972597454919470195057590018001158561326209594954576644305558728779949555471453886782916208140100583128905231250635397307745200175752172934584211393514268395837893291650029835857568881451481082660093817269103100276406567800398778035216888330163474435889258086232941026275186209696780609396410920549302219111269197095241535494713999330347042951405478743104988285360996180760954412694984060033786029110040633546915342548111368709911352696677306675808438507820094979257340926750118765411789217019164385099865683950859512803747313091253005549295783936651529786649208844483177938448378976027924139248229317450004086742761979834103315615663213826229753504551901409053439791905821183727650975082319331183810245017864772381794893036654014898801776033858530573391165565053531697432861304564094054666867351608714466661058055613491079564676333168855771051093177043179256139042225662639861969695931499367912502296094614109410664277138837288942640777399015986586599185198236644172389499449562037450954437986202414393102659564629051402029947463059972604384809961444618337293967022316685979600594981567762386089681958040830098287626693076229613754703160711875954105519479922738955052753625915843817334588087501140307961638861924356020409054626528720049544663037071295149375760067838332765940616257647876049725437726395772740454149164928695289956102110491086161410700158620166329860153893041358682183934672642540428622457595492163163140974973524041686316599747411013816370393615799506631374064923428019295274812267752778919246006014480824729871743045916994701919221882174225337489347627510965044897784002676560922780405438149782344589995023809352674601949045182403441284369811296486414707177588120315248312997954244203154831231318429795719906272151229221292146213561170726160167033784512459790939577146050940654710787201582507472211748183986550781293812089486796438758170853392969218629313800841220920363042162013376399655601286220093841287383351474429078700484064060982038604103762132406331949333164913543374510179099958842054908536591882761787995457755301774298722279404702754645447086020383601610528402875581334612932036714488570081814129233772235963485778420092353721859269001497673003455434447963249544181957301581346064627699450173791825667419899793589903316807397052104383509586944172765400254238115113393561871479440030544422360308332120718722366214221518350188443894742915083872352013138479669321097763067004234093562669031157783910799294583496765340368815958956099572771036577841655074136691433956343979545894243818322460777873392515565660605917040183487681112748908533627717470510215856803764912210344446719498650711919522305802541808366706783950033732553105012576266069894323752487187065980507746392413256925385612870588720452021217463976882579908385261908086514372879655234315357909764218033135674182019919133818205034296563114230338351423384668985742068738007124252084073549832393755229163595486862311895416662819883496296900549283964816140078032383187653719677654405946732765163562419211914364950365278721774127819492229384983178930625241694160129031806457200949906681586942549025583261542158531103859710026096826327103465610036116182818845279417338053919178909930831018621418171539219309684779667139013376502832528138250127450926888897352291317898595733916615807250136553981943300882090847665182808406988841151924690071754216418489887638832231888870418060569062795005180613683953123400713841254109878007551510799766929647203052695319014467309906776038256036891963084100124539221537305439640857393727811616676746814321855762702215728544188709408813553629811200598596336138073683353549845155694674415156154759620782741726448148100701836732226803546717171403951974986198426944264153260876693797976872987584562068803231085605479715782108441245975552957685265154269058639453725444925221189910452640784147899607327982513064185485241524446065068855421102938593365483525436445174194442119958686508094909472627319156126655949017005244980537051400166558142368867382947401617292225761428961506994626480781262262601723860808891027097260144040948556137390693671028915307433763927432698436331199533923441931059136955394944750865960694529057745947855308813450400056634682351088359778011981741383656975907321809152223646448855528733462463122196907802358636622198025924336911551913312676275088487002443512099498203168752179641523137315734127274517788042520725144973610947255388783802471495946499846203139908009003212778912727505594197034708452678503543716195918214621559032460192600376724792660461838961541225376958739069221653486983765127426555633844621866991884654743294588132869319626360202453139838967168932429438341947243445965421605102342868038261111283233597876139619242124449941768726033651914745637965186443127368568030651138127491966698459081043093725342825580137144762166228453918955637176837119137667578432443180801769312442653089414160407984032721633430840058207671757333899597266619796633982586613510615373758582236337885218498010472804662022663161314092079917831449663039765508662240886799895779329574863368392716721551901427561133703799968365572907505965080612655059899214197550600867294626054065479988921416826099664853578552717597303411539289346323169026868531953868989437989805151556214331880339891396286938581271208310145343060499665794907294208605404349227315301577998018321765471638770854380408013184378141717314714717722818727523139061713484275614992719277025481546158017256965849599310152256902044750664389736428871117496603714385183910174712737156036471274132908454469243243518693918751061011808002415150054768679996952387741195616775219530360137770826755438077897352400123897880151750254310167094545950472514240020825211631737031891637732675539313912765143783848348627706200684991112353998851536998697492295891554768795282638562829751770226692658763914149905213904148723357805288067210754530916983656523511890341563944363509392257262090498573041561571670385252990996810974202337897183058153007318684326858158053010071700219581607862587396916531235429912998653879818840307069425694021840573181933334653390206111018373262609886894753655856078972959034502474171465720747927694409738638261399306054061554052218587868733551917240267724346324484514060524220686349183897152800201809090025560495860261397851857739268234651396931360186311208748380902956230289496592040013213592943351012743614353532595264113961947335650599878068796837853685157889732705176276933182365238498313685326130712829615556070720519797366796888867999460130533252384452674773464174577347601669356507059118794923372654886613844831181289428687405695555093205090292108649048638875375867317477473268187914518380823411775481796146695718010688944481850459482606503470418796050591313316154238368595597992788188373502496475812803388634034640975300994448779358952133311571616457847239176708128315527041737681218190877616767029232227952147935657913886895495636887832042618451816153919305552198215063257786364550443464599253045526716730686292277030797485721937731307050344919414712900960653065971276069904780354567855835691983010899759442946120963791139986752696312651805450207507124363721072969303027269144605613716071516683296942461361245155992419776542104935217312228551839075357996107416840739719795563447977436350367640896272738253406148097055993540218956295194240937040040282464869189630083052594218074888356661210605855537391644095966480084249938684708863304137011380191505780342315274169629594486886857474868258637464696584881206167295993958617382602088648593218624668003858336493889275298725745161293084878349684794287544263185242926369891821219480323074969485991143265850509814090205881576800527105481243118938258385147625743819155758569585595164007551113985931644749619991698285295281462277357882773417830191475831731306187904539241871301130863942338363895461374006205193958906290330372064453865846597359520294580532523801512308604116401474994301043057703288227769709685352580646730315137466132003372546325353140790410307691932491529862586482338326790853713945669933031975151584267794717204027775529658044987018384102431954252892160655402869351893199277954007311845770654291229591369333518815873198554339036223497917463415826027449828316852999797774488013622231848768121203997985912906876902801800429090940880380131405486139349489388493393786961790850273980556227863420175415405421259729972793635453169799639270073885601837083970312799691001505431948826937883515261924069351640773121563942222834183283014161984484003809832372696941763673131053160224677027568475467436770575319092048585152408086017031027655236942388588835640642065006374781933165578525057484429711519553208491048603529738078659911113836095542094734721275191911028910553116623617217760889674183552753907371668952286540638713073244655083082557160224078727057319064944964172339419592160869913879951285946396554075709410766830847384002696264550276875428392285217811215256159553803390234591147315255366701710446412968512790600566666429023410462141613570840957034175555508786999886935850465331651280750396486298777854570480533739084089731002382896722050726988598267835376535120617094060723987971009285471665031074201121680214145817160609400121732325777889019728417471067838071436778193565512205987581759693738133280629675801827681910382850507280417401427879507962095069537378228449567321410236748132671719459926364681154416968293739327068608938901077408172549701295169516207739436502913996809534970754515260298042143936274938616416823359396031656394923556206429094289102137808629350255543809446798602717127475693340480668722987830705396638446421294045907430387304251795125186820724720312738399599550557201995352406858162352909025032736617303039193612074294999975413447444265633702517568000495037863303349839960004301713711362573176867657890171656122334889099095546679728301420674761631662997553303300255438640154866489448187864462617332898460031956829314412203426806531225565042431080055943416633948298488069608582960308469920856975727379735409393349752677526038140815470206836001952277208904582692349857677961921573244278108254937970999477424563118530618675572537614325821682650047385153015080414865458997921393541414011299230663768075273224398031607785216894233398887197957783407513346516472754693432193826732767623881067122790276566472847237656740379864735912382552621877493736262218761020843056147935319429098742805775399892594101820473963180583121200088111740951730114198620595324573926158329436107724101527442641097375167280789786758893674275915857568223205378265967826387934845945342837580729521849588299117900777239168028334151056402513313073000993174026978740449632626659213881533439311233949294240248100953390905990760434476638954797354704686663169240286654963961553262913038732381219233225828634182122842435071443696608936487242995678943945653089000111324249754275988980476422825181357462292905182184805276700942309320672749299512817034077834631048824505228643537531017381762236016506601578148441876853569043654667620834094223876038555745893844808982956180571151093924291531462192334961235936790167634063650945831977456714267592197906634703904425346625048583469813117652722941124640989586781605646493251656974596693920897053430777650195965520617562483068909012123203106561468193468131720832709048305189932474669676612056792663524376079876211596315369991806723074717476245235255985703164967403720206659849797247687849358719688604772203860093512174972160467730569074550418161681641962186221774394621392507449081959753330989650840570597436513364485611811553403619732534653249454152602695667661191416602919248583688038498629059017007199684356883694177019836060594256190373891868475387484721727100742149987559481093811629508329727345046490966091085193666039976144890977914342574077883338368550539036991250982205275078280896550035694798227311224669124494689961862209225804625703048827913796428570838731609798190272139517229921504010672435131242270731060407390600844118069673726398394110468794032535053880475474301028148928165203105829910950623260815024383353662662482486970198387406841283074226401602476833614686189294965546374289025489832255865844142296921055898069321739881088117810630793175308045914815607098135164071721048292340325521579657303859678089688081983541575459969413653419639268938056919550569058294768028998773912464646446072647947236532727774948055583171359082777246826612288099473006872007216734221929222558493777947003390780844702526328634714481362733734290230959445963346698561786203043188716985277288968390711327758614662195738522221433324144330786289493081692333460881666195468430433211210452087731073179038008866849622609066813371211358940055903190536912750011837202064327016453897965030797390467637839327499590662848083216314738338546072382573349953255511257038365075092884937921346391557714048931467856392336151976927173589205705666277813714880979491003556434362500213589016574466477508149107414944848733803296164362606666683877413391084336631409071763703310137385032717785312278668499437463562878720869592176319381727338354495642796303420415748615886581180236212037955360917504916983493950215152917372268698766125405489008029503173419269937269161115382444137950278804606726945376859473774465877000159004659740861388436039296263051819202476110200589232158163937309691146176950632646985201133328499061462726276568989758768564647374087625594436538618357026465497556164154204360142173617762833447791891468949334648766400140456773108233119334610361847746211941920501620484823089176138859720225076110607330097962421116660853770068314582889335856572174435382110463234508904959461770977149271749832614205163916220709700915580456337795653701608612745728192744811749965079624962401411520817287280066396264200134224722579342905851994073851027050849589745523235694080216641833621831111606836287151718372366350930345486552418181432714875866063684085205714297322639318551510863116954734642941386101583711137839853252323339055961403471743147436203770645913915404059736448391920421253704739286489804787676965030167599519474270396383646592765883537148959141440794871236053129169630850976974928440645831797721463530141182982640699455049790627004272041092628817393818610026210269702351069606232775332369844053895566465903782930637735476304637588987322203095113507874967177029605520936148578697568896413115099902938994926035002560892758664233569655102076394914839588534126832461863017479751332921541819437468275696041501956788061288830515348653275042545086042145490287480800406597015644317105551770356094477485642993248210949254611056747581613324684308674228718268977030087970232021176186070514723304469512776934082293220421844323665765156113674836089142501671762537366432996283260890199796425679128308451667509087321726497861429597462781923061713352648513269505675417586356968376918058220841855561987132659531113819523894523291734102887274453761023875192624535362507810472146936934240694808872486394812859867186241173327383752825422352028755370802086703654588259836158694644987298039294503165422438793731299792637449661941965800222613211832574218377841714206187993414908663344663841643201081977338880378483247478035618350316702394185485039528141723727895568561381194332803601891744900607321835069256195521872748224358838638305227858650575148106861190028078309395276551605597800964342306142061095669840222193039720624142096453368279383508396936013282995721052478936515815598997150220547718663323023262076638151278867240715442705085008113829801334475997918194311566442313609316185698425145451914788457142277500368674980706793985239113772520001906483927252645141182108347154194391892068152685924352543897254570664793629102121847620930331584251109456789622702258556450589066676782475029310258064935767125427501422985441505360733275260324190326685141665387105961424901384599198567462624291309025996529319087481244559112569721620212071655447610866727086067184834484603438154592524923532055968072065370203911236270821513002516284898545155968373944661314387301609241583982070582295039819378934476485111930270233862988382865326362175403773446782096922896676133138256675697540037926620257151602078713728592104458833382195761517808141560161751520719345645448457618817923504781281903119275338346450592454842777295931390053745254115767595369083170951260412428760233287376444596094278989510343296543452168513526500159716977823706796042302383929399018706341836990853932384707899480424831838751221343327134939873346186422779500939719664295460387511619968708802172561020058279983228813579667083792085577704009897785043504197374341908511075719518497766811360794584423223640366022768479683817849533776922629399747201110152727233759213782629728321504626083275352157393626735865948660003409791648997312036402438435716558631552180464178672316333656257899663320141373832676965619817027195395133086654683783084736828045601400798694446572524867737289248804737605568403620831091867715397936084402994913298391315907186426545233039314321212731702130920921521571489377673574458021053769851946937487914391979962080628262013883277078955823178371745167442365276887254059594728745502016568159094348865572863522276228260994994241032015274306331171567628937224548461862553388371557891131759576023665042516581392184077750416843022816879667802564840157673870926301391194909199384263232334253212861530036572658648963055742217014439298092843601862505801654701554236017817965595374491630385354185033674962215592225025309756227515518165942549831303272233203038901282673200781543024916060160778463124974713183029592980889302072834252124807175546492428890060845528542335794984853453809583920581648969467050992511963725892519986273214045256201512171208934732199029372972240025597666628546174334857460267549176049754727259728706671237738491445501149150282213473506204125574015721149811439923344029491576661706334486550236936863029558154152064376995560203909391650366864280838455749159445250715065462193634350476895741136349398060118795507690689497942957744683118021729267119829677941615189574898645626303654840434854503216387397113660190038634564706471652226460944845753351789714179713848313448125556808632915226057818164050019706332355908753897386786755951561521493949588766019960191770958167942384445109035083761592644811394981582524576837788746395936591714651698356988804220455385217479305534442611688330549160191785171991443169590027351060657134774445488364463634688627257119894172184600959161307741136634134310631387951485613558560005907536666931754070012339457513302616758711465318306195023229788887962739489815639613548432006666293577890881767662430406580127791150832518230740641541152312877325692686965984486916252728810300092210492696708381287271840922739828173131144844662826775581001845523545178551476595679008126536128200451760155768242701673330871861160661396729900607898174974075217244527069606569143839289954777659459837185700998053414787959324612916047339989858938550913394230415797173123014000696170312778720101013842657579872609693877355174935626965170688681424131851449621967429248871542527443125369661081776805801286092610061022790313613812736333569690124902675788289460192912478242419558652137751277403795999268145752461605505258936572160164313650654585563562138716073803504352041709997434304627377715784744738698830491021871272266565104667833482054690999682925314394860217183916853634507099286458770110444639316972890634524124059792944824884222230136835720172628689180131912963769976211396647428368964311317620340124919650350121990362530592565785262883307438636072664720217210928635518161815200957433285834927463257203443610263667209547590751299366723950495758013216833083710923530978598287065101497496196355645863897928655149253470853579352727762524234601669694739024786984776235900316286565772765404003654637503239376843048585097224120654521485475516417117162264699198258179455498536149587167780824439598605757262327659347157909475015502291411344862112879766802413805604785163012798832566202762432181565016834363268831510971369813134923942671587076590873586878918223202126003869829557568142188773344634305833928971530818709362716306325767331245800966024756824099109178489716621901400543205792024662689303208334040909978903803205201352804652031757280477037171145550436368376789007872507508941152168737555422276628036775063023839235426031112794810157406757040687167132774615289770028359062058639191890400353456527312789556087006862756093433599861032585488673899079222483129183853974943383351353338025940850330439977194817145251860067562538321067225861865400448968747198183163600899320785569318886764796101035066489383773564443023304527497040064962921995024649661064190744891735097284946523492698780662447246065971581395743669031216003037730418960450741717410347940155060935350790444183309388325327443502340064658722391460851416625153695869372372133249974045730695366801251822544529346409102744446429994777686821898084812122203248637456445397005866541459827246691746441658642963029381238056856802236130476545356040254627429502885955778771104838164086218628280428430455910608945583542917493936841491232975455051544812142532568135554455896779359850880105738349678213505007191485048475168197577028958650664486484189758015086325242566587276048820432804851376864222988208241778577930299191822738991915994612063702959006674034567861062320230226286088466532281201303717693639631014924782030374989805038592121356511690922977416414597741007031124775599509846157278517368248746797837457026685784965137933470957257617815066037613594706999672532448910066208842230462526801741035499641668684791532456618368052275602582893892551898581184559217278105398183207998784000593474759395064104876508081557971561209292796212230918496767452815787006827290966010215925342181066113392191241506101158669543812442860963338140881795458418902964701464813477970457848982240582723225382111394611031855016910675525914954276340101875902509543291409994364126189476460702074488156860774289157885170734561198779128203435145760743341467079051585424683568966577233112850364955357279107875871813456765058939719214818701162705081912316075578239444456110516611604864410579070540647590880430884620873605393200547638648059734599963465854821636217922597811669408089564262483147139189114446547201535151224118322293741430374185564468743855405853833376780402738654160673388601888117585968945788145418596544109723212123272251777972774543705286867057224873789151759680144363611309216180563576426944111780852698410850864397502326099104918952545079351977709007315967388982950904154351314539807496672935207556112315481365164314781465984224953626018966024646237167718806442575677072054112020988541999648275203505861200286510428507908904514141207943920266234224468820927726161343126451417192112007007926757182189473456246280357106005363713365724635455607437199670972591197733962239454921192385855914989035384461532092075154663658404759766539979915169181420161784937561144569940227155631235891350380563170234067205279962842901782627804235734240207762687441457294752948838873451044969363709405266530100120402262387216393823529132626025044974085449932932094806352213790892691740933620243061314014394774084080634944981500888450673306211886930766844717926221279165831455364652275371289914327043965291232353078811287731856058177980598867522956161812800352322647316580438418851738229781936896666847074652994628102342225739188287396426167597262071049233742234291986742790186507533375891252908620946470690357388311970264996773055322815409343881087846117686896302647393057391026071437393249700316021999704083430257847294624208273600617129903597336372142035790467011655478568409422705496470789606994185208185170689422390946009556733278920128393985904319476580886635347059033448035281438809139938968718516172974296953223428494060462645967735016255096610865294422905348194686464273455136967151046926155137422738466581391277303244134713444013384987882125919494006146018897791958215725178773776665244721942835110603259443141491888203017198866244358332838708879216959934163980823453924843061341339037343398880026467546082452248321161880085080372488723301851193285842991047228615197919140401665504926785039529569439541109259109566101928554804867957531707783632833189612078395042592059553072037798445228360427141069214820926407335955568301317083763717899641113418783393755310939272012445586266090700094842177374490264654428194203344338003821031235815429371134369884102068756532546000787726866066774418548691113328286979403738871222032209733971107917535564196914169010358068872320931130940201294833282647366770170567646380704796409478348611073437498008969134400107128362681670162178678436879609032575705343741636120839729605783947347118637745119323567038826122770856950176761603045570965394616803709743394423492503817095005589403564813147203903523156705683576774384031571752214376909657958313067773130398623488527310356932399929963594111523836659195744866239167943119285279580629676453551712630370315947431021827406171354226766408942063170114599778543145893565033600363741483353971912197968216413369599335157963230812559438969769251952015612277118451370889238652810194109375702607933619620007886990016605464709332291097316729746209205654394607638358019273777872001585500708652626179885267591911466813996673579087762806126188785880885734143451006841675467998259561767839404429512139541636857756081403379628320883886692734500728990840528046502039592240374502397572423756278594709638117835395121324671855559095648767961003925782178896368700801840106768808769856546591872328410196464445351116714613117288700062715942401469058402411820151329850582706310093959436697671093348410670380348630555041000348133684094214969610966152365530952012250973741861014836603699461832054074738776720482772227448659459461183767990501808643797302541401099152773509683025801574363422923601305032850726474722066148255421204957517037936608288970424245306123918528512996368156890380315208067237955782700044454675222486043429199911014044565217993663089717894713379427699515919679319028088776577222810165040534980317496879763726574485483104292076176943890136877123482592803209607008701130915032489151143414234490741146085384395563002138653647967798362743013029082815271925616375074078701881864556348343678391070067485641430776498691084381240310839833855662989386772715764317536741554155551859219578347659869386745153549439293539858226100497619839634895440145732978146654008194412857010051810774497663232643493763456526195769392582945046102284625572919534384006555545522267088854423139559781200874464345942241746101520006931859217805139511675057168474215922222253427701847400237052985278030249031654341588438778117702023262485828048761726811046897486433159246195975746708584063848372284517227865161174776683911583392580945667854087562733132757407165483346178934835706115986983391465500034250836195439482947213653468471624735157423864891678668100056072829707808612768884441757274095806171902429122009566554403297131694138841341383810672732454905507220058312470556747674083332876575331184950450622458243065003950234484260973256272335578841644148025074791959479223526803979014875127166102802095277747420300653536252622245636043457914448375849444286020495461623916193882572915117553050529469447927756562524647998320604552424447428867589688688350812424203084393433567301203109222760888888752277356855428584449174558424945838952778091926845333390731835802823695318538346992808190729384390991887074116284261589721987556271741507783804068634489202426278040628682156549893761445067126668416553751681539998593392147357076738307792095713417608348450859431972959577638747906349021769498821192991212171384203281896820459547714394861613946872624417967611767705910854237310691600542140380831165907646305745105189687832993465301789366806614868948776648240836076791308602020100021884526063900242928707240605038555934718057931499645090564613593564840962683284629710106764859543701893195457279525581577099220286969133003153794605540523139222016034833822986468819558864088909494319978734115449237377338343824892167771562252216651325201540901511761554634654375561141117550297165137590484158192557693049766024445972390967795242025456625387187254752042996707200324623589122581769691877639173757530835659341912642087811391237128516112967673405940646922988070445090553965751606309395342924263817995184343499926971504551035701370356151966913919588700606369622660210221177789183618986784333799092280407193067958160996664493601674380040439107344457759942918014264925744988309342123273826474807830651384998175904087580869860550966356617452085590211029926591684700928285394129144844496457550619200785325463381029687785468735214286570203071628824625726168093982625691617954229366887889982708162988101205414030381161985594263691783478006420421709081487598537550671782685236493975389715360809162746450792895731353081862182091923049527699537420783635813140486223715097535049081809234804953607113823155517746979122447948698047489341318303931366795495801356729119663919478387345643167949875207444792839145384579361824604496536286819781894007074753739563037261979447273630796743802081526337817899831332641877919645366450813739670720551418374396678276117345466545551044569723799282496833120316469396484710704642747400445125553538946259754354219198590917812769748883087494084411834219206831937903393113258017336061935699513497975092873142002192275747974234320277044103982149325525308440793907491062394964186849433007894193914364566025521936946124379101975179876035298527464375384092773719622081871354926786030662936558660528498033252597004527611288682525368701338521687577531979557156851379976375212708951579455832835215090784791123765036043514653419724393904443981370990666980248906430034599800418807748226209247094284328546751803962416194479228711397078538172262327299568054942673387962724091046074762534154825948451856508112196135935118889605410356489642844332309176967307772993216992404401979458882103884833562539947721500648253306461693503700902582691061589052998422252732468679681707884663666058158488417877031414159239054046071212632419727314720123206704613839847559848746861026398797281053609815166417752112545715367840735047721701290112324066144839074771458391353091723119800740481258335357452198197946100708975235303428868550520948683333859028607763437723968262519157995365422970872838139493532422713844517856222418190354019089617598599209809065061486201616432666169552117600062764118327921038752769580076540832117118281881187009552800212313685618011101845825282065762406074309991125324931189632260299206526878775720702423187185271010159071227902319208013085688219964114730607262947207551168999352906241058632416817274935552396097553117372313630405374474717366208207750261027535599884385776419676746714648702622745945119136739470734140396625184552581347866193845375747842684815834701202009041596617509678935690269449119246821399917213834146307619476736466301133589126859100954958510501973779265313140533478880102075981970397937030371423561671670452536536071917537569458330061888344597469977473978446296931243539830092627207594686900411943681916730770619075437443568675764308768918755331688070748027012083661607182137669375677296747443378082007128661627442560420366918276766119618812676140624630421297680211165875976299571078191800261196960275601665505644141633442888380303290445207693173766438648395062085408986109162788315278528561708700306109455532645157387351239768153059817106992677371517680536117509914079481340481714035928122417828667937809978303037725966388563082546281024696196667238378326336067827202368550368863523652464332232877780136738926189903241775056630739403764909568831984624545853068306531387923310933417614245308957082663092332787382989121149297664773972081189238260020394606499020957545877925077875586005797392980998954267126548342128614948693749975825384316448800134087571006653132814096741657850550030330491583435164441659261917802622195937601727577974899874112779853021091504723581711580706814501734358735160006264893296854799494476691440422031023180637056873121834480111569379449064882304003552453665878961403524416657301149516665318290711197688916597660141560036336718167142225856833370929578006503022855966616779845863733224559375422032238598373695692801300268505856379883630246159635515972998358848394370254591369048734189340699906771561622708004315187954865064035590556799726547969543752081982414515732911091348921971775252392883330820893639859547599462435682043093302363379703145869946376953091424380385932502449476102385795402579249281569492194399451043847021166328411336369064769748679582139592506461896835149166012472016105766315494267596601600039785784902827528431036216122942219796993306323540582545912725924833023385405580460042076799784199598427844519876499317926257511853956754111748329092221008707497762722759968672651951495542796289553851869035565586474473390659645500445616734593241391021633209800068017979888770392995396373728869295980491919679326312976862434910548347606183099643013806049628512688575784311420920681335376156582801907937757672391068994083772643447125185240343047315518240456653801153990888766596165340834181219957873329696439413005543011069750185751802940182253654517128785789796361296930948531940628176396545146161872999814752589557040662240155032038818532644477843997997810340436218157363404689673044548817028495934293045360535286086197236986763419534301164167145886846561470228060484620497885975921399530878511186263613611009058124509973186251090544552226083602904399042181918683418663068870988966766100715578958623608355398296362414403274517723165220510147093137778077980639098391816941846419347112015875855804816545488265560660106159249519400067857985014979673331636322494438859284298087976907794674064489799038265503125040902039007950574614778759071820445681564210103639793297960250090273629992779658811097059657695131173373231882769567061464877640852686054480257217514490711540787778264240837753969691411988423221160605149495245656508152951175703627884274984161239980781431380470696106585219430159358703976108292424286629365474500917486644567066553297651001893417972566940358708476163817961838540145294202843553993661403751589972575869717622022711018875529699887766355110752471577041674294805149153505896451793730593428251591395219467407665582617285997119207000470752941065165704746297999780632732791583188973327974173727349510040012746777729232617143795584224684726905046888533359886015240288745271104607632705997677524440866377240308143845807185027742005151703260762968574915669942490243602338676772269108071697018420545267385957233677428038554507964573108302285241617357965333827402624049214491722609006882244157309123546675920921195334342969889105545298312786640030060732408358084367063270029422145997266810346171555424471706030415812932903970893089640750290493433359914586251494359339790941776224591559305607978888371563602085234921373134613117826078236368891403284771100736162477668861955663469104480513307961538752009296855151437285091761432310497386076595129043354357919745360181117959090278222377686791083628321280844677652411205293555387510376909458885450832938285110094400287964355402307005694767728417201679318353298113725520621170484430320193663369396276772110081951690172131369506894989603582229510042511277866196561178049893205202176510741810918246339079388045786197532338918381415922159336221316128293707325043558994867535352939185869343906350338648205066821856853180918884398155132760437177137112648663011413059823631479046975953489111216259944336629929242642981955391451809310187946202256345323668121296442743778728472880164111498587504482090193291507063365990871549473368192924886785701002294718668588708195018155917529324629046305443540753074994597662252161532717767419757478690081361468119455672094924746555161118319302802252303573883254377301173047726402243250766408388137658392816398363411397639370060164896816868309140533337676226890134524261483980452554128090684114995997846601093512340750579638898329183670074847168713557692905791599015380256390542317783021168991848865530572658293111993711662447106724672203916860776174629125974134012141835102684158192356803442181492183595259592796890624214027857796243606409908314541473756001073144885834177217286688454282584309133831575024795858686844875046344479562416033069019823457104930352878033232045293228649951264916757161932434617794119523587077960170252271244207358093272603028400275512343333052530014631679813575947885021107219514233743743260219662878097166881672381521037612232171631376942873717246965522192345540479547537058378594791451479668016337477598046103445707929853372365118667479504730124247465784754323103853575275656623322382662795897009043791951473934338056563791330074821568332686481005956510836068187873545675360059977727458793016606426191295850186765646704959405168447335188368725401439741353396472960566010290972166705354964329426025831638300856320839323978785253780016276272735709986983527493998287014689720163430532468092811484010267778337971191256732821495012429219997619640833402492402377831335404419036715556942123840053014961028354200145252437121522898630381374155437725289871862721337176055375755900985803666396941776779927416540122778147519402735355729162722977401436853650352288402125500970241992656707564812973030107289702963789843632253437769684780466881520864466045539654343248004043730727553545436428154922294389423529296065313177884059980518895859961268381067656578915675378481338764359042456163097143346810476279925368560778220238858620345051780972711428573832060069015798015533001876632423458399395665311848169356411668643785673802746392497390732589537221399589424610422194019493840086514619284661727062815092632931846103797367007956363068566378306733171931286835437777723701931799101234417624534179899441746903144298068307204846170736569882913112711952706577354606877113641811371863066325099214939057679697041125480053681257357012436380983239913763506779846017451815933991043834379743088212938837660108840350606250572336585498041729323397152563141842708646272051273761411536481251878450085357342263007567782823326598401471711860449452580260497363524726995034606340111112449882793356164630728551551532315135238852108416984653898572582340684626606646449445007530599247713016386696787961051188861631841039575964645074874053403718409591264012749191579584752960932904643527837404616295327938573337518246215906706302109692900769322253526625832981022538270196087732645580336550876568837325869167301217593482658102939206887546687200174939114024347447415389419598516634087355903381514903206310811904188842780731163142439922275744251077491479622919632977558219228417113808324685836477885098768719479647541363848430641338716868101701334541579587735452105130302946810867664639510798629330238504110908422606454540537858309561883966085939337501784569487920057316610197524726528223720939073141001193752540610093766203622411263740609535425452943220012657496389607068937195104536241521673551123763273037830963194524595988763864138987779771141581520829730041131754902938651855406040216185256607047514248877314837038669174519877493124887923917035915779596598717335077125397663670205138979596440538483601751872194187361301442640697269883183779317839836449418028130017195571559716550852824237674872431807330539090551347641397992646259213810227353459332297335852114248166666187739129879675213964079454400497520224583193714683244637817904770315463169003705066549263770665874643108943528923149395294097453727544994452840506022374240355503464069369842059855370007716725404825173247652273965073510643983503709519425154885536955586367906758425327432758472906712489943539936908053153358619721183835444840037704293194207718442187958589515614448883798327387840108818272143479667362022607789934742304465701705240748859510079136758777624940656960873628458077037959599697279842934235757171471975992165825801927990527437549452137102792236312662378982673728791862377364283479880944553341916089342667954761029767160853260184006010780882014225005765974887578831424843288749348070426835052821892509905786260152854054442424966238400139706683595737700094019908015039544955690646540268526228541996464306856006085113770666253805766267836944541710819231141503969839645100977762789692204050607114224534921897535875696132999342076570733106467209418095213931898168490918196725261607985839402364446633035853305001209289627182369551051793028605719754802995317180906210516065991793605898865291974238567255879516028422511257665243784222885312752065006151476213072306421217712630617233441738131243406767064411586694524041567220234208314074195803151183042990885022330253585176624285827038691297231776518144521801270719034662100144392695605802488813398464220917518340861913091905776964870884170448551237130785180841426890691119796825198147526578298432268854986775557862424112531657033507638176822431599897082876349875899523242210134374367256145728776726566178685966024701940029493777188050702705855101803725818530772976189114896706515009927928145338699310389350586798281269333378383868465221598572588888263639060014206663930882218204777834417921320945046140768038135092617537376743922222106809035105713899902846690810231813859745665053245587034543247599923327167550855024403990077252793653441396844491733751720894840664910312367138106924908173503530938196980495071431867243516559393108219899004445656066121855362400131912408869232074426081363034888056740989831481211277761032976693072012054645526584348087377037602288551955381806367207753964038945625494754990403575473807163039683202373476278772823227322572997956113875955905258303842602249395846451250363204359602620998803323759500661587608045766585399497787616054631222711198695811586344542722850881988518283976504443991718142378674264432602653922697192816966654705239629340935241109762629343164888586661692167016655834959401396461560252707083835375360103378991062711304088971720649836696832627766388852674281521355160744613723854205459371279024164703591903308905769189478210378183904908782797185644688174488560346749470900530990188403273287975667818589241166571918413257610825018253289301312895649273585294675195455917084140296859266045680118494803618030780672657226940196748487398727590379884516418502788680831063897698035700034140216589090604240770162480465760370526978454517702562564470089614140479557182685917654996164807576186650847926700688900464903203044447453827308742631085990061766839023917413117095835840566709283047941184104766149172789244498790479787893485674917506507973269813933102671616614889021138509852387019720933932799354688421006873670027251806213602539061032414340998311233759975018871980108864914659871351393038316845789916516273676433644560753751200717152954474433052865929058187675733387416539004191113694001613327687821104745357245794701470291969730844417685767693172475551888655335227542336051974916039651644956498600509895502651793439545530851649296968400691685437049686897039149674248293506649802346637646459338206380484457641229762603626683392158853550273829258347800269983418296819552705962421594955813446244145872719913818934877021024704345371001245912468933687249847623388993595297117271714513246643375762218642400567437968823773869788233235268307813228662973048201049828657751925253348806851570197948597101119308319137485870041102466570170498624922369441525112552137388199485156686538666095290240655510757954925338511899908540028506979951916718021609320332670864418920439358984164118178090962869123265354682671483732866456600583342184022556679932847954022082640203192960478200242571776798878647827691526019968027255490365515469809510832616486808000447708758637260601967605702581522455997444272251000672846223847310421708340857560165732740602807243354148084300268273228441729323644043055760640684236370759614106504135104973683582220699131167721594730131541588767281415974457665688963649867110619850420691049969004657685820122602335569777058728785879486119516410444720236574345855502842333776430293517761592626026557291077620903657565725456242751301603400905675165123951853431933690525547185733967411140717503752281278513331380659130244451882810091516067673855946452457310493007272176785256942040257926384050856513896453652354421720583602644908603238418103871349693153101590469263469073753995388200131288920149861457993527906320827936781328358708126530288580543543939807165700190655531453507538591440606940904532910179367388077931876530414617286946261891868203318425111020452835373157508698150908079769202196421089191391870099630748186198921179704155392976752528269527653269891402240769272174617262860332244008492523437380526242088343666286128728012776911738020419351769313800947744588402578923086202058931919189924960340722602582413435151492986006736166153068054608146389058959587338596850575166473287063915955037411307599490132099908688792458511090590173797212447751535547975122858826156868560335478338183333818652598682654679994822007630913475328148435474376900735662918487633984741299954627969046625953305686226931045366100748588533373670748549205319494415308970461183526717159579695016437603972372377319220090857821055030412087180059811395910445413494502436099322976752528771067898728307784770545529709081035109279066435920987353846264963908674552246698110326564665177794238122305693777656165880555685654178602987025332464024184176506465283366579326996101829745709013074369778901146611962876544840327917634179138340414817315584427414605370717780015137623837670787270598200933987590943438662396092823902029654959451845818862215873656011041303313703792994095317452002368843791938716921316204502096405711175615322537218525529433384525991903384015210389002490767381068481503346691152755042271412513900938510981287224905375676576492397707116335899051366946551938461665751787285599012134842646844603182053378635382979867049831061120249492512286153358112677298466746399471692865978257542219113271873507078165864604241038052175499713286444754129228631618535995779222835013098323233411556930093839773790592223672105615119912318091361138818574496449783827737637287411512007349826932921374286144595520078191501925678186824384366927542606418404039625820205645578909155384091214485687342300182047406097299341626023718474002955523129818200579009899469667168438295294834808621308929849310953621281435908838783476588633184865189329104376611604135332623013955794492610918600254967764205269536804917472397283667291615829209659936106444144985888797004144713456693345185772511779905447977263125815272880343275023425336601836731197377801308735305393895088681082395930327953670714017643411997136488678081871523743531563397062266810683364451997706025107336885178894271338760815249575364192242896157982179076578448248978290193760196439827705568781308631280127874389109975174666136707330681496349848438703531171817888561988450448615581812568851341234263739490065366361382298433409282673942366051559091507374679299697576149462020730823822227607078362643245890158776868251832709144777333441407002778717124757127560924110741074233636019275920199143531021936053766466477310121464756005079931703640611627938716338864236122058469904623891486957807091951513567486814146710944386236329549840961387939079911351342491562524192443333280688059458154526377033550255145213894181916050952617789460982746701464198167039471421661404429271081468592123379911853692808423056415483398824623141803278266134056571501897440251647994449565543072754962296039607604777296455919993379862848447137515674857353527016837227746219510422549736573081016640047715751349899088347857698176901053124380759755845879155219747179108809941086062896726971777418707895864520798750978594290590037388218692319719188093094230632286525348221450932656561189212788714847953181088811017276317626296182454372174832099656714337537063117189488274236999683632023562976132061076537265295395150434335166433829133435423159408280127218510043145274206690677472777492646236313069425138156785252336736230249108079508634127058800885872760111376463335735161319424657490964886162832713984140040530114750217026434699553595355883764491666532287225628374098562060808027313006345705543175198305216811246707201457434434307279120715168446375485904616122488674760526580710240328046378047810449321852399845612719450751077109092186732016720149308196161561558182831131535615350074235899012082118074391254102290427705015017907116472171337175970495463935229518663823557902144116611158637403790548685549390822056402226796492333134696103751637922656822013230224719654993950214406045801179289592071989589532238537914178196604397966010832795497358345053302587704595789352847950246706715450347040512029187956289879793713981264522249097894434522373840644920246377155453153196260957142791255188937002575647064837318221522908256679517939816757482787232099543795237222018154430940267450876020694416432060347044846607423496259214479611270896585855679422222796554821025103199335861644043320274782754152630676306641688032364601472009377228153222900373373454897754426636474825230821433832686584673906718424426949663073015061541023996872380534813890066704988847270635264005782531768897686646672226756373569733055699724530892919280029438146462900965924053061757589662148240250581530030629177804581300764937718876102699488803134264928135967035605240105006325907293880611916761500736938098391778428115242337068101327294406687825082941823272359796685012424201206046847414826174024323760412832274932064537065517307079294526067061950692366352552837927689308288206700641024586131395737283558533787075604218329996696815882174481908062396838501248358232915295675873819180230362789003427251475786469584328920117663304933630369323673276339607211970554350171085054214510459659863368567992419810283731670223053971937463254739327646438758927811884626439068102461297987110478866705686598578702759276470300938444858371350947823413627640445070391963386009896905938224500421951562313883691551680422548185400889882708493568795526539202237870172011089605081016245482042224576488701816491440693633474098380367747486963906447403864267831103038211876477220479212618912814526069808923657277928118603701336622914765282048241517844035190892959611187260787707633879492038456395271681114325532332322185822973686565485308350561159002405511673065013294426049539364585841483170514936634553459911541225961143967546435209039972327844511357141434870157979636279155095895950112428826054713805872077733463143145603833387381319590535289761996488640438517591454946074717390685114637482183282501791786599754364413402773176914380873883705698590037109687363888264875850038967526859735209966935935807196563679273515352382562191231466045332680896581878420359923188661763334458445874084031613802615435677057208514506144417973599311195507430327932094711559744768733644088239097120602907146901439657784294548207401991056286497099262425230134453131327603190271785093591336340603335191844446079996178517348512789273688824887544702720145207002283093611184384276812566207692635762315714779686823766606847902844759788118285775568256696608401437575427336912462654237124014895920122844787201254658491182464688595021383414031436907796349536639064229765393696697558124495420229523251870215192868787727215192860313395711866688569969607837154897677719815920217820039306221940790058202760842380418367541162766876235340830986000044343877086083763725772563362854533582813682349301658315846398446797547876137196023771880458807963416381870401242741235667694246449892948534940466775239520719021764548495693746097145635984949458253986979131930526904212567837429557105111884432737616592522894899235022266994063267128626088721276587445136120677054604998700616527771073563440863809762824154286755207938667031736134404248126633358709603499479708078242852370417219176061886517357355526454413956750525417290803565467021098521957895899065506338749404329726665967420898460810989269448469412984995361173587478357674037294021197545151089541539997773274681148179878611841592845838208104009447639211814191776793548022413336370473460727155784673212626914386267234456945513909786652505513770736875972114271284182529440876706059115554627719918319036417687724103404259396785468044041323776850076736050986436242495067006818973946140708677678946864831268182373899852550051778957248938002436011898231494401772421493572822455118618555169647461600220687785992667900962011796119189020625390206714397553314793487898152105867327662508178634066426631187078740593454945052542107079748124428389332800774452315907233565719571635282744076842849730647205938947925762084930433236239942027681312669595283168940290967389380614428296376945364745365976119838355668863749782521799167009949718657843729608932095871200258152323488979520537704759118481004823266232843314718768154344230773906492636483543912112804740010725216368603106018116189951175145405510591247469398080356512422597551115845599404488233047629632270374451121318006697852631413041442105757036372113634929721092503756665290489855998294047042516398834257739517835148050501683025611295529691037882073890173986915730974311881459468497544943120284329895843643569277226608484786616440365754796970032909919975884162289229679130543638523593173897569177304953418364160083096676185761516039062462660279394527513081925710874285123438887907003936383543336797953577256504587302505550626385892311546067573322945858747467527140682401281946132117854175726443089787643953438360826734805795969251861501325077446416866819601366959484425115564615830757296145853642128407850927192439581909471043976657135395682328065874511820635348095478580417861229527574459590244679952038107097057719856698282796899794677205522733951221630546290859836953178013586382645110083117219457107454639686679785049694832015393386539337338083400208239414586049520672945823159438476838162069532342272020581890031943841882352335830725676665058927241407387503808928450106740544052953541297555171439203877993574796757875868015649940497919309398879399190825781826984548544743103687576935519334733586541493594047558931368357940722671383834154426072332631981823182250048431671830166600277725968755936258070070857870738630654666186359729509663540684867945008267809240063840941177259358400010488819595385647216189702651751931011495058891942283875216702116482920239174338157186008463141883720244960739836520525233740792785124430654230037320597801833449634711176083664704448177022475602327744746096309791626770549716930744954866062446915201007872295118299389523399018614618365412901957784644898905297103700656716185089759395276670317601228358927388997902022829399340701637885152365340541047979068195042648345688013844486082851678748913634089202377869317224606766511896003345025968019500457144526506406742457245772422316848328665153078113493777761615127319517736538364954970658447083417778498893730896629494339172078128352424936634484343605203199751663165867004254120945131693750204978732584448776901382228044623871544911583473360585156066437976222117351644805048174625468219345849977948794106455629262119162499722116678943727872980659756948446819051629741695829119704595552323256281605415761768449780624441020228231359970582262476660642151280863287379325310419192042380568798460575762127478093851905320788922973536217593533925796633708616557851464873566416249307717429498268313880336047185364037799678642067055785221074612273226960489389588723838792574613891877249129788882130136722138668640755548367604046084058585361870685726291601535097736513960675747935825053437107391279591238944946962378022777584417965200053332858926011297258824322596600145727005302307470524329788355854320465825575440428922730203205847752386663178551454542549409794451666610115092269370691003721013396694393350547951388058518021300112545855354606035603222474265518403564526704505157404643982024846891131984555129657682334891642524342615568427649085786187269805261522243825398216698074872660469276105259311039337366786734397238125520467118603411044138456929436713294018751762846172556300178348450229392928502895339406784888837891127357295066476202723223962453381855114354985663451048474325702703432572400899314409225847731999319774179189060165295572572924390784673288653770744609925344391515780201859423572931006101158812975897712339845711460662196549535609634622048931413225871385058658788793949221005259407817839621020868649587385839138829952034165001145259482804385652400944793134185263819589683956097880074301221705377415056277792801012195347987587382161482133932246830555506651807371865139586574516563084073902257779580310915333142979516805922834705559890456620538757706293673864964383429294714346339892525610589683215612133207240836972049637343008172849813469425423313099863795257744301884568616619123300686752434707961792995437746241780691944756878542565405871835959722337321159153668400543346360376875785363559918714451465899162013053939989329701981175674471649927786281705914910899672130828975524242606647155126692733424907434336724231197533555583465054451176769324919647616748489547369464635002306031713305522561081711307224061606336585842603833054952707530774448693862017411373911447337659353342280217422595272830998537659007004979106531387313122210697778038825490848267059216082762057317719544419209878951831427601018212979569817527866638024492883085459649773897141570899593617436300075955924530779893943055473377605268670970654679854853290754080718748159101811955746016267672144955179982069058635192447173821441142537671846629034611021886974648555247259135237768292465648843296880145387868321116155247236996990597720932824514836401410127255471883635740850101402511012571358735028534950675936445910498476307419416187779445609748094062116115917108275851025124149839436906454498220521983028862961714175108456094288956608572258850397375537343111379950535095583433713558587780773709672560026857277779862468087263661621748900633811685002756057619292153401689957972053281787887040976653161325990497966619049919135509279743116527249030758939280294018655558560589198155527811750524285968294307422015819453554595844558750679628193435717380336799351544637834157568995202721119661193972503834202395252344040280384252796369813298336434806663068449172206712195584582055359679085880939069002152806943638395348492634205525515247290129212382711512111070230689486111455023414696762021197781661353726675896141022526069756638081520417024820281915884206284308780939713053418797944650620494644938110068295401194924318093877741898253187678340191596886501947572234450055692723210783497192355234758389738699923001810393543173190059777001771976398782136191239469540477252940924120541547919173561003891561698252328891725109051027253488106915181284317185464008060864582321133543562487054152089771705744791142092882415218670694250026729634349964780127066719625607009384924150114923749496765223133124030505266163935558925076432062721147036334594964287530548301242314519375119860082948451999798807302479805532419861264368720354904283521206007425821000882265814222211418138771766544947013917165317959337962101769864739015419760217430749516275769202735973101609893447655586224745703482499944678232285409513938216630292890951425527645856110101406933923568764466890511902634503469962513493246133889631806063084710100550859916887812790236567205855339069517098863745486056914313095915595244907841551462049810182365993082731417635662573535739324225302765453774525134308930714980698939434015798118646711466586381870903725057566375086388914290098285145920821220705715172926386129491271222774839101509633106303151713242927184403361834991983504427831118133250737020337012095007728027851534376464679835867909914093939144370937600249178270180754517040814954381190092799206182480554237227905333536348956736330169528660556249602077856466964148802368073525116788334218445717773735630944608977716094919709503139153573891686277103204338112375670810261047286014933144172185376350442033665731377909195141740286546464036436622014101123571000659390977393707482645891387389932038397138992205967902198255652545245313312038020149012481825217449588640407611708883785125616996439176874730316503648155824225706113097286465170298609698918623282629560694382853116347714412955371414110896884686602738337355688646413254843373306542024595432636251324944162417554961878684740675318263649675084789533322067084414833726989246361661353718347388248752571472386210114350750771189828234659343365818927456610178737450708740125076934408338545853157975592012719790284267429319484226908274751068311691781831857369525601035668365590463368509704709932036849693771002226384173200427150862902818392463628240391566143511536603945098238024125946679032991594002160697937369394681173670508060300253447344720359560074018139492661484259959842609351722915817626864644562453650473989485692908111854455084826779281725276124243857098447167555364769692619131373479131098791931357206255569680884204945719406199694274108979588731267043484979168786523765651565628332252870542451593498831182717669682952376564528851750544623415734361113003903239355668401514862353218779700683432516613448786425575139629091303640894342724224545258351778226353855974282702109969832833759319661583849130151066794617126427195052081046215108340165730869582580756855381043520689298363386179425259023248693374660798564956068404628926404888782147449926654402020922411291446907295484664682995953252317223900278619830001597624080427449740879546137958851074893682403853047337505338467251319881201556979745033812769727501251370610609994817356656109544820939145210189168119193625028436590847865175373033505604531431996381111804498774760233503123411746824874268760287056840595533281999849289599083428735697924815896305414578650050634578508676639816842680847980696682854284027117626270280143999229898455576308886463177826747830712167391678448830419953324941783119378612850932245989750049414176204432325829817489154189049523510861051713758746639596587141168173479983469652867705905901251626763972187599799128253564614883221893327039120760690768471657564349129879262666888235759417603116077421565771610504718794080504283393149163058289168303236756162951958249184557843278137251689801968126952659339611774267458861694786138939546377071630698723530575342479919733370128465641329230005627773563352400085742348082578438023531574215658093316828112204548444656385290784767266861933036749018696419377498961817648325927058156919069614005275936077767797790694715991281170199583721265382305430800813520386371829351622049399985813428741806002365173213418458210249457125956299712871192150882505817461889096919102174646953517645931988579128926129086074050370323077389702756738674178858515275737030936280867417820150831155753754550482842444588976826919077687063039167869300411776258160254547950816197701212648877747770690831553144110147144545125767219076303113708312692932523682186501697416682908495666401576813609672515997610479504266943139289841342378112512003143374044180884643290612573540688648622260424148964887477818083045366137731238553963653807459170917465965322368905547139151662269713353906485706639437413900239192670556571228818265007258034487835735663702997759634984822891628825755531604872569118004400657782298445619342981431750755994362644892319840432696458990842391801486171419623591680815208353458482116231258614034630901029507664962023540472131956465814324577568367039019791525354165703792995042612124549757012441713394315511197100108459487440468277378573020284186382542455883373746045467459924007379743745187720703800708050025089755865867273852684264082995146855248562766637855823944930104064649975836072165317974523853890403636147479212729414216125296386070309580954185204230627506534829689776110742883430737253834116021917735866727001084803286107742803322615433644407272156026638346533415774281457108454990526785913066136174532323312262373671730853735940626204782304825051775092513148206142638480745910145856438138284251608013000717579974546181587742355219426703610123561920968098703801568369391017186689366033006023110934391936326182013538438258209080810666263171753007964922046817193604760669756197821851314976416725025105158020189818104761897255423081311713898901441314033909154460802093411718681373202769772849448161895973530420063170967089034595362967926552604706409739152040021480888666023141420615045252045629408199291117303493949591190444235544095452575333951778050192710308948374687079036583843526533566174687677174090127025244146165487407912157797483709738936980563248502928126973752256503645430402268498879543773597666214405438843033778239213793849611994808628873508503742897832385995641875397426016287837440381887229201441124330051298522045837801847700939744867941882696927100905647246216792290924704481228347761858041544780476871964141463622295014831630461981637619062609047202330811980753961849289318733120415255379622021922091094859700318071337050933782340792843847380883370189638913087836608550145426639147413632590304863849346021979326587642330417573582771835765304203156764736837930758755411220320015724886200745107800040631431371715851233256284830280602562760951044720826538354555108107642479385154502566545186455364052925190562474619639682838990609565067107008836191042070267391338486199122686441874186071185750340261091636554488787487432632824518445919416573590472038704118728116131597482312656243204213215067280918820869931310161733590253515344948118043627292200634376435958335514952992647450286416153159538618107352196402948746129973744126390110347244380999675017764466552573236667025988154512318098720228646718992775061885016420074059794224017460919717862269687469929618358204944290249026870506739300537481671445155927948382576540693671503106331955850643432190159630293930703775225071251211887277037616023280750915344245236938112814643747693095044211494547428292665957101726100408233219608771957130024601310584106712783974403647553335753444816345400993008634412764890115725609941183442457588996154140460197138510779558082953200864010623505238122894355584199421664752564200658796578350478037517539606738077705285737881223707910537371722559542361256522082934066968258683577184524791308995093572292089484091109029652426803379681303744516903107449691813390503007864061843147320670362837902482328795991146810880946272033459709237400859113776579339428597164524692065288865100444204291619543316457999434277615929423858035969282823528699599133761806282607309554722740877382496711169009153458237310103562398940675678936526229169368599466248598880156725617904967234044758281703157490396868525785102584871549168553871721973670382991124916527199553151515377849538353583208870689465270991325504924790311573237005117931348721843488433406512638764412628433415708356825574197052958897933324876298691786257611849673471945659056986834477594978832205155017144571584781030163190106826213274289883430836984570109047357951341785053321506160264083631959175971705281339775032397602002794555770474697572557809848736808617964534938730103992656245951822093920778327314122305634776801721746714235034653116394102868256518982251329338728798687870629003280926510053207048559627132301422592965833960355168087217415931631080295862546867656061936831868138515877405073993368649645802953976984046744411927797354625446752573721384090222261939678325700556943898273225388878044659361173579292007765193956670298583223146494424974981779807356672370745736036529480216885519203532610069273992061673198069771853367815683847714277830095259648615031318512675816127751915014837783397393761059735681786377862361967253850758070924702742080547501667376999919601771213463244202576779085859970748751141012231480747437178532089835069304703173567631942730346219538415059073594351611015906830148027229332488756181509171520222977161092900845218635626137812550992724544347468002999422052168085245393022320387102060400657375549515681313564406239441389259711652670638500606015741141386124733659513266357997960822741194428194321685069384515991670073734328499657497102717006572325261733659900898232303478623440818283816548331882303304058308763185430611675494508678581348113242577972744795667518509303855831090969145363065426394958158579813811969939748065767526884975104761358509194874256895979936060822448581842974997782786822072762852494885486800108081250254489463733943374556908590798444025938082851474512278470928340968423322819738776209150100740633853961433789912035025772976258465267699524584394716969932691568661324097674321967981614635771447607491154537434404444536665907698147799192679948713498407196795725298546378625840799568211840018893672173165154987470781702315034107137901834179748937919289576297976605218678734847646983790641106000193613633459203735698484497378762782442145677181256933675710565108633161199443486798383987168631703704299969269182095115697116270778801891171447234875310314862646216010305196918805175250436840737329945275516552284413062205688371530929963457929406201544002421357017179560737663403536243862234371201746372143254009727881530955840563095071864475235273531708326529689396863433178110142307904501222198171767745631728288153211332824170279223913453875180546970541686054085964330883732152094464870676883973076609016362905254423788371047047557865867144589461767607286224624442414140402773663779347598432554803111246395909658129425315038836104770513388390810145438842997264843401231204393262990070005573958518173429819130475865841232173868006236118989973868109426090199997088773288631148736470212706589171439249740018308396288379781351300240841522511365226623913619523557694601373853161676873722006087655286000122904531346729670875650033687902315412437394308702414767741354131298377303844844096557381515661703810783414943537814743492154238539891997183395592942449950740861075058478990298436660792115204967781936454258399852710881555753282665324982965190371362617039257390165073629071768572454306881321543723547807300696801470777565288170273893839659400902040451674488295508814044984638973137858548242763002321434067515595124531643031500051622010934595362916944313731532156971749761338033822282028168796152839124608392673714478219385879443507186039672089812920823906298277373992193215528341876398710605647914669224174641040694774385151182236462250708431639983572890516449971191329897219119383520316480408642274288055829433221647805333249772815298997197240231652948216189246806597555585217878434343408677070130936589010379913814455186960862944676534550465245896087201079633058700604397442389665518377006178684118057514731864613728246084087626368156062106640630928660523917130253196557060804478661038416477894575555575298270622721738473701874282289179121920862989510523792379405296340233391686127409118201242893204396780695609682287723938591746915514479904981363296403419687656416311776927425505816161979996882346071788846724874396169398593948262495666839673435348336970317734885223398135842653549925677753510995748864509785151809880459157959002412831222408072392051081526868092468128011692741221834007859295525098464578979954630761472078720649294357173242748479695585438399022718032483389159429946532623386456215695529045061787480276738477487165910268662378833645316831888559534294096730287015468015585685079441006966174829117614178802318527295895280289699945056906270902779970337543928730935111960620615059318185755854775688392691395577899571033795494070574786420548536779788451693528163258087803132494808047247885985637431482119751551032073877095548667252220900290523117880842926114660150034009239666875369126750298521240108345329545119344547779865982115000038751913022477283371914253077777147472186568600995513951641274782746551182125156832560055135871548037605043254512178763453729919115903735535779978775062589712175663690373944765270789167730387890814462969432478427220685520492384019623751609565177189810317784676961593359256737764714352849930579988227149646585608631877710996084197487957662856082523762896188634089005035004964880521257679303203838244627498963919109073860003106534722558682284278554799497072619201558168354033194612368390194313857426142741649470891087459674831174008034396867301339705685137259711270840237202177164739836043147139839079050066392318053627868876380566296669023702071049517688974888677144964547500086869556899321664206500469215764809932901119621692612792097589749585505789107846001214209866787171004071066115333574864667580169861585549340094227794110881614714577860951310309502282282248881718265003175849900593262697014862082779664377883070701054724478130547318825314762324971988573265821987322447351911047174696189131422441902788865687823632188116800978863592790008156617380859280029975242697196551513427673847796073153112459560574885756291490295622322981535796342863012211332152258299488324813762985237329506617704126248533839551556681105874909166583814095797694551030276638812575478213281954661092743795178130811257668927435542860577861916656789183003755774738720602880602777330288888560544972233304938905897433212495840390569988173904390790847925508583060270057418565643356918436568649255766127356922725872896335783787575220619371019333318454410469590622629430920922762496224131433181030464530058946902201019860415321052182484986791950770720750647666518744977779948957055373919190459533167967631425460277977120418049296503960242646485411913147803027630079986543812446627299610003024757627756547281152343010105787628801727897842895965679033180638592563912771651742874040563147925795306941966889531136416934337860746393589226965396125683793089291688374042682354786282882373922751621725090531299286243981331067375339882105462612835932450775890361002991527231392912824119371654713159833142934742023499694373274544208142298960687347624998405281200725122125422930751283382495791075365588695275382543129277971654007711089296574076449641950950553539954260737561740747205923033250619777237602737998057593421604432039918038585089304527146765803058341187498010345274738579717484699823271281820000153141788676847566839209387826303789178037217213425025460027390241801125764303296719933264453367007176170425263293006872544185095792225848658199161507408605523527692782656035935075472959290342355282017065215005349458670856140098661694852443254266001976799704061634408626745056586338063767572310096925203001927374700425747717883567129316044961415718810397331861779678729394995552807476417936208411246012309464129000921534119644494446474482863330339247227718194257421811427261323942984217485587893936296544873626533548586409761419849111686806071937012386267747669686188909216092512339383109656372686923042794257424869481661268503698444485724597694844459881298923116699341584832269443821693907174561466344578884044199871593511391256719533896243137904095617230256993594945758262690565913216115657836243198022971825929678245561734965277211195465923010443727853499504355367311143606971495167896160070681174268389475463152634321658756093448573677704968403534204745452556861374208620598211510055668349589545442993412747065913875279425967622522248286872671311368051260205912425235017701278581267643324934635265495335640715867196403730144747492468439843951688979383291088442902231805937222153072141954999949589967377932795344075986416514868240002186046759032765838041609184666745160190432438661976804907681546152337593125124010829918231909491828054600124157237889292504002852659929058314623285043508502222999864675413367504600046515030513057823839529115046042943577153773779401202608915045592173054729009109623449383463780329447566205979781086852539822053224698568734029419365902752806073357907020110440259502927299731384172836015930816182056416617323717337070618817856851983739491463799281232512720951746594844268517743859500441552296351933096278558644126080989550305670672528582744702664550027309120008163683904430413286430683745963036448256811805754440739175800283198383130491984271265195062718556950030474155888720085798016302770708149608323591537671704185602903724700652303750527153050069141432798602119679392797299206427056253913736893937093808770964530015643066666495073114349667230560410165314483499643121790639001789012712186126910018749333167301484209384429289217388311540597067143936903637494962773922478708324954112099473276544377907071710589552503578303999953399833228892494644905877974045323274126571036761571908185079999944632040594070784802276601993063996049289221160104372931202660163572227695198677673392629140442548670948725535141232037328198802250880828127960186354261469496927839747408873695246829421496387489171397615265398050774751338337681127037669792633575979005721486896413364778326058086169693172624255306716163582652961506666532377105017203745338708168567422279713825746664245729044936141150685013136308818681286156006324451777473578732526213035355962057562732482619461542996276717051721965116059554637188616683501725088435074180362995473883176225900150649613970457040078855965015999138660211424018297334801804722913188414924145740377694953873836050585315806863024243163634357215087532375567505481189650340954933097422035731286836136761953540689196322002605673014697934572362725166797254574515198576168591522869579677469944098266355424238408819802538696455162147830348294157327681861663405102713493649040328807215488995048794059206242060689551282601697935614471542654849636675458179823953341015730557667733065068960311554546024493140208099294996713326098288520631091359993742968932143887410595528748479986662527680955937114620823817490141580631720218664550028957872087300986932814398860873865747927966487063470761740782601897394949772089548981733560624517204559829764776325152002800840408029618186951991354998090486759059884328962327712852243705357883530319072816435136101145338855997759276462350134968665502755388854284670518432180598930020797430770605254724243761220755855020816761449170473837707621500628763869837210917914656050834525142797160589004572444088446176602072190934416001059013018123580745345836152597947447972777070116721215240741939347618416193505181503499398592512812028361138488541083039148416303008228883379562878173935007621681374378885638434187711610040323829124174648850690876696638440649683548196016013300478148155322436613559653941019535659915006757975769169530008521889393962300902035937856692668049552518693685221240995643607184582386581679697289826653626521381936994351101774299738005333835132234500070873130412324052714718914163879714733911220892580870760650351994301033941819980016434677146321191887266914510635362682204269934893082116098778513011001603329132197946068547769983792485652364733731864716443340031116552160432708223274474857920901798796268095769496713551781575358292601507970391851192112285250519381972682602586825964212254568355168563735222499331324007958431893865621368372205231537686639822145094515414587321730835844212826348150169182490016620594695635729979975398015450522972089658172491016953770692652811866265837154127564472756030717020940981229263482558832557764253345066469533160836615146255501998771032055449067485281384019801938251471665020178855543690737066143600249276298983752837980553668445371972407654722694895833622677372337556414601697697419465706897748390106440425419339364219569843513013174120325758423206857406609485807558033002322672461594829978592862900050661069056377401484170416879259904336752410512201300622065712918215700330234824120342627616046874081402648354214378008875776264919359745250102345829767149248793437347355147368895117907916538529557731855579561871701198251247261416083695870383680482905310898014411461084370716060574427717641258450937559655076851536568037509556803262958655196786924029608615563328709532988957488706660108196649700969946836642701306816428654496305458348819534609546322279751081425348857226892587041575844983785592919270435529874747511566960318317562976707475522385003025747179227187645188933054591885217251167034211729506488385089010525410870852683368928198318061346607717250202273540449323288660766971150798215348442073082206172317124847583351556793819580926874861751121340609337670881674542653407515739144696142968401835190302652989938434532392310975681808913600706215847128380127938052509008153012451439889827792236956888489198480720889215578237848493090371497907274075543057231123858017209717000233180110879815274862294334362914989409447921179738243027129996414308692345549245074676295052999936321355540035033307501104617061531256609432191173197150202315398977097128204214850926911682767407889392043654974376354067722751395964717139125450159039385487051787456322697583977445754109968896784828586696483433262786970530058257961532859276705367853004371677057421108456675250761031708302287353797159497745825080832954415301133777259294652657279273968646637287903175015679634057913299533129964636959803830180332340073099807682241011221136975336156002960502804358217181718148032639917479943923630319556019539762179109329315224890401996724807508810929128827138106985756657665920479707870862653862695498618164470631749945428569463810853329920365715262534257640809642469122033058048811183723293592208753923560063919129747005101323846107061276400591638626437237800365099144229134510115895880386579654011615851485413626092756299751123254308408352346090430523579040609145088467221543411414066026644232396794016354830362166872806254764349607492144483574537636243598137950832005050364981063027571889098017907790230631563710586756259776628444265075680941074308270696609244139061030432320621727920095168511542751993549518064706776994511396524786529038638598860268222839113237685316880322023709725183929705161958089790968592865537831198484117528962660331497883017224858949380825175779515276842331720732303464325167388614881634073793162490531933027392419217200737441896488203717462131589272299947798249661776457118521489804288115261870739484157523285217813756522618073024363829918513324379116145835772408607034569658661530159328045377059433159427432048889857745056832412717194660396391614351822804391117386188001051557379382293282467334931391473104690680546143164873224148157114695771632707719421869069859632916140898058999662757264928422085987420537206268978579646500691140115978772302229066085374363355890622907739904154961244488306655057844745460511253746847684424602264041884231872654267444534157507490664669088336943337660855719746569659958484615345578662835651162011552052857278507797919879880607928329675250920127961968739845077214122534358700430363709568735530347973382206038026023969173306050248560533140597533479576198363331063485200775925587158084893130765148690233742431727119114767182676932489391590155954838533428125532281395401734569449639659339518399225542027361419103006496315816581722477040872514541552812972957273518967255316988082578379773729091822481289877870281444236565483598433060009422203566941039100731239609797768630663496798406812687520729247824349900625473309733108070771734180144195507350643878531012046966433636078198257594934531442384630506421385685549369094106957520955738300843509907044811681862847758138879354410409143979560175233606657436481615370323127293290646783065609210456866060667713174397997552494710126075011632986442572078061180082949455429488239076433525492688377209767374343109328532237980871792470400679653954020210417571997178173037719315630119639737995981161948285049696288322044488609737962239937885696644294184913981097108477948688606561682404630025290178788792492168540211924366038497170294596941095935116901837744056504267054846019195377156342719739983062801730054803082090442087447418123730059750382512390594798178360808390618509502570316909803321180252688261116740210671811214050839111607297659889075657166797863580805675810612966487953372855170368140903693758969800166410734046759670429010815175141410264705517482350824817694431856338744806427453018279588137340384301127876615847355315983685664303697197733790456664385237874383318992649757854254014232323036470664121162850841459820284963216898293764918179891481212656270309044985796450554775810026615953667363272463952135686834446133771371823643492386109356140963626313903371039356649721048367464477541828132604084551959588100410338879879190378647977072378706774983934480390581226846674426433592116607961517589504700653680207552526159910438774947992445324134843211260310435554828980262091792783793535260183218023718533923940867255326123492823464498284004830329752153445837428211530303593872563332836939094898676814510587246514422041575140565688202016521840761014690476276795674731140898347150622385340919725722471717609068177853857040826520274672650215558794252730455243483673464751815038217594038033273875588788293789040245484227105284035737643853763997093915077816547285052141197591055679837589602734473851664072812067538327943227020795102188962021224251802613590337423245552395374780200914471682629388123104963336774316367914435577562650862996439811033640150795529839409475919809777887863064960634222727683422956542377284875737907551226717195919496258609973057483011857390349331474099959448064527649786268457341945651384949319852847544479599258896283402096710305180786804917399069639867914391390966840068940117546875730319577627787427851171695933280470185945469648148943650552620356797288094539016401881631182748733139393304922364101116459820436141281768731281408971496228183140794727886497671227240858277352378474944854881773971251613231485251765405040799038808083700427306888027288105785315936264059294318105998993264109986282759608057260620676092929969100676489361211969010699379196080692722815857320631400240447827796524748808619255876723982573742166404612874551265167593992480742841471024762775347543792332843949768867463878511939833017036685765658674009399164910944061597362536193883435692834762084609427344541034034177699549854410936135426527944568362214625874034952873671208025642422743499390937846812990213932726941410333534713489625332803088155592799159420612769990454899472627324036258957987903662621165300426953158261519340879769485911514533506023813191775444621457692256101351127811810410878921886901524521987134024288264015281300897667565006283986858744994178497541274818917705774374601560664637484024970294635986208453640797246983594260534507980555593694094576711419405813007533816919982007940227749555945818595080736072046183422734000763437000180796731810554679790188109351057240321499576876831975957528295106528216059664203716235683496928999188298001297724138094668796701361898327457824336107421695793058972100145451101250742680760866224707611720672647465073746670974314013321453522863954203122887569151480215044504721420727967528935603008558796274656685176314092859283359157359020515280668435549284690374008487558436009726585347686661813137559756437344683094920758982883014349046095033244182612351098694193078933601087103431947306897456956462911295284029386905540589022016337587540742630618553019327877362958936720591097829646722480933163730938485346491241409537281171073211349786647235467628790506319809941864315542326951673526260708164353130006916783203901119657148452562758181302261144993685951384286990731986029794151688894676396172464706489639681425274896374071164366112597039962627473330386891337965551716797193631309526057721818815080411758075641164402222875677321812587727670335609517068762476277476839692267807777240632762308133991522448610989709151402884185817696610903095117929380197703908661537561891713823974599749658529064117702124588542998153043436084366059279629528931474893148091197236346805517882357742182414286444617404500091152693170331088431138446580858630285207397359416786143149844278420728083136362405635180732249895115799494169197696251684368898698792581486662873403877272946168834068389027002412960231542886528991129544218178475474207945628249826989767887872134025894451132951022566703144383531682548415886218345190217779412845430316294414084137151625980480356333668524268636348827561194045093525750127028311905341104911083816067263246449710607961986348857465961913113637816644553642267788245029018063203568966799155183424236920902332837890200388211909685093904861741368321464829937766269180605093967491689580903524763425453990467592325926914584445406799197680717049359228133947324099270142884364086773633804019859594911533607643511037184077808660081048395994560376828574788860683016333516036463378979389974935591053954281325155501564726601527942311971612924938826767184738445154048018623792357635982867432771454371158365659941919104377328230984299343524470921472293938800770996649901749955006296830685291937488585468546549586780441466224720073474780614819580709836346403806848980858792631766474111865610310066325536773895282265721205363998616831901174983625487577541690823000004012181525718124547813223386692068395840525067741653521560464593034483977882286756914969226376948607889635902539137675865190742610727897686945238725787403882652830070917150683822718541992509567910250866954785766815728367748528269950399670485309253743058340315686553870585077400094932136219092708246812719104167408273731170121548330986867827996343453656258069891936514115464432779537998349213289476410375763305449409395883294128532145769895902601500957095572060959426788381721977808285109618403346009535666495108234769072314998076107733798117657985927181919136520759246723601233829251204260315990636368621170953633869158846798289534951730669285575315667712085928078058931677950107183016257842607742296591837386842369865643511241703498639560997264429457325041395345282325424271093988393579235304188877751809495543229360593195890256103684919974060799475831263935566616012069809758731330577619585220056934735188969976380042293956220067998725287706721678005939424251385340641214532512751006926903789487403467077271769781132492791260206179858444023172665585957308697845245208440662141882564752198148357576390023629460001967090417856467222672011380562696230659163477506248137075553095809535162893022126594287234675017672255683808917936275278258189469908531090223696985215105724342745766061404492952511434313191063667382469664530463836218755267475355681383474257489248569053483560893119385330562727528841965113792476134515868305780374025445968072538831165398394561167975712246656336829900145552215474427085975361442769952908178381264481682370472644434114803719740014343866559971346647713429802612222273313872555087367821197114217393441346999739386622522985704873082471003538131740356350205806659494208449149794317787526572731943837854703879260261738548309709316112215591093235531406218156015805062046782919521418134182308075976645607520634177555041757726928801195206071935527207987530744885167016967833328620204820461723575664414151208881023290035837537120338580533874148134439915252470853871034057487566472192961746490557309803507523247493844005640870241515393065071712362922260675323948567742895329481633750103922251437717748319570534814788149282699284882590843719642590991025312659615227377574448154275950458746489188256035553649710628404284702282063957533897796746487702186089847352198498756865528297171280682556091944279420543620771842033437936582682685478872270855857752884571904637969681037096446638150874517494525664863258828537998855168097281147882355880022162432751588722983419585245340822845350921266821558635081269103452743087763660167317565222739335479104584793148541674975984746311378117785302177737863078927132134803255282683535341079031473379248769140674378657717029248197703115819228707776822734298587374476287648616169821510018415474446470835439638562316531947515100323411895206902963304140034112511625660002463568568325878043736974770030025114959075917600239873933280888734902817488889181580499233004298981324767361697288799021779750780842571523772866819598776859773053500006131744243981424409309607936349584771211115727556789930616034030884135908927192512397315525863658734975706673394806700954850277696928046795637123175215389658090723731804350706643159803784736678085536210160650632542836400556799816874479784469391836431210612014360627601441645973508548402822374766265932270971397700030292216551215103157145886046068530183060090776126110709254104608107628329319714248508685611184590234787877288448493085364828483018195270579420257347679701718769595599675469966300627178481722205835956605156591535869480503600203815389889975595260521888765146603686595154058461293523755176334517478798977588349223912650754551018974433164007297199063000238711263396153842998439422774939612807403773985080117297662755794315115584762539010428228517953767221027610377188472125764580363715137415041638865263764394655953501443283146235971375728850556073462852558928874527085956909105075415725095278776487894092336972285776099085017283497749928413898112085914181630672878793755877221391511005175177803476618820663424199952797398058509924149492350567803976811927350429614416779310345385372438566402807269328120050261376360226351070426921809096009044414843143718952934531858191708980135841626221246182233753195913052149446140764456414708308576576791555267341521827564959205395822890715963054566284980237263802204175456069366288461040257609379226957506375480161625442872567771802929277836014073056892646728855407756563128553765469804577519915378768580275092378181694182656564886494410592920653084672229824263182240818916952259297764544405006420333632593836555905551053658667136929723276320337348363753890118430193700260590663734692857051772516741119443134324459039679761358572525597303511075758780103269362026573302296023722164046263647002134633397545603266865434472142236336120231219784215255167282048381679084860584135356384038766011546017678725203894345562180548320385388043744936482202759268530284193761294991110321561200947796424047916771544728437885037950926907199534684036379482682922261321997175198954512103482291129277773515129664567188470812787019766585619851422044705638136366496715754215308913969236482916790831435646383840250812740965505962304532481428279838209283022716699091372679309088898123390640663328920968093339036240555666981324528289193300463673143663994781109084021106011012133932084821756474919080716961896430451346379447770165777681267383133693050798989018757581584452251612470182392689697393225269705942650216756764828701839532192327210301591441486480472229999960053622740033140671357264092878589742728697159663650370653911541162574091870229842229107956483972785553401275498954913041234289117166054339885604241101274112980871060933267853079326129113322655545382940642226204664402588391413805395298643290465977932305672298868665855065001423700740906637811961574879644993434839981794891029108463091815634942551426542853461875437759321921494742401825406473544031078347631667944767131705743695937533368224497208545734759953058538878817199481038531798243602890869751657465005719332297345605899321646793391561443581988544675303663987641488590899884966358292389236529803015039770551674490142664344507651412584764917357839038329114471768907074862201635297012181504668750005098187037018285854126163726567531590219908423361925372725160834395485613869926970557777055486664294483715938141369358020108943611223433337949888651026115148960830781609514493364624043147401940847537679673253731644906250869370489162280824510375006857031393019899357817325094798760688909429354794846545992477634419322000113326052829466027410732603703023497648502674398256427532775810307445157142158182652837337869941752708121159552934379290687113859832152910932946906935909137154033841709542876432506409255022881145638457743556704362925503272446538039181288218967058608530519302187723701826213802395914876461221891268540913987403122083500987507029169504873771163722514672291897861596798189426319572601321415043861826631155179863920234510551283263690937989529759321584090974280646650546357997945206878654358057196511132974033850778011359568234778116546936663795862960621535119772022950626115241542819390280643043975397420490005590436334155983718945509802256864673178130897999728119104385133694803171979486381508365651090026425838979061691112863606955017620384371752907739459072811986541315149555232799669275268485848161352226581521857305573638462441090700023402006264410060442778368086098154519148128715773522943569807195701727536185258990786400990901901371534437645901166974332853655195871943286780705004345485620450174946284189319068158167984205150334615561618977363762489926339300332435811876664083867432616749165164744883452649185384065248548180642560078139088556038967826133445671466858145517311766593302478344047088975074652916314528306364754650080142178865564039285963343565099962259850224546789750886815192370236385920269209040514497315241889575780488371583092626929163565722309203475062403188285024266748806728694891204251792172063895859288808467015180477326883322613955753378174423496939271858291999907775663912558149324777479703099793190146970344280551063743865107258572684738173387860998558170758953141972825596978796573943306484552087798865015762684857297178240875957030846689794738440817685428341598407027297468385142618200212024634313227915389281470241480621766500213924297017788608839761058392642267826301327452824629640475186065209413159499015143310216045039496208836680750127267905926518957924114968202800226797167567015701229224928273226627572951054434532987942600984227766703094708687537284000725537855943567931168109258395563023454458187427644202711138037872844778242633600832611409049783042902951420283373084595206994337997285798372804218485986948593870681465094242548701319640498961075449371984476103228801855012481852721681702339128749419688329848316923363795515149709995374575891463875236750814691014988376615055781834753607330764458020756965220553897082759365520644670184681656193876611462421918584024181811761376444649636644946456763927936609088820486462582398411069162283216432721445400929080009518926339620792554646070329247861886260629828930011829892135536449188324180953131094827531745351757247259010167127531644505921583212592342743414262550462355194863251608574751418408333076584395495375684982221951513504150527758108328805813687581874628506782757420787596834276314999493407413263377293298805506535783812060888044118809275743236895755624862020459497824631093803342498227919894993982685702489858063668908199544560435560577098417545105233752128863819378888415798234696313128051954818707263190474560671256224930922720651611603816382536799531131948919237971880894337603903874575783118091649780843501141595402585336983696360658469238255158086231829046410829420112959142071320624192216819943883640825489222121306629789103223734789795543962086691277515392350301322555531453212162642212558895462551074885382866252486335533538128350416012902998193092565048129639807752648108533170487665555962998695548911723917980139240923938103637863175652678471095785962137731016005312403778233847405693129880209246555720468851495984588423707759858726932119245331927178499549246688730061414255984614715997868629053315336638398512692179984502402088325788397851280853710787796715259638357738994796989656751899128156541954664266404483441554966060789734551926449489750153880105370594023746155317182593285423400957267311064568104292805093431958727929566314260125033614479546878772227873331099801929234441987815162045136185278167618244245338818618728167377242301739302488510026106753942319590865733182567040046849341946348910948837200418744074978777430271816127973546052428690500845256930174355762028117241010874938791839183714020863626646277236228114025206149758552259517131682860311228882274338493719704149855636342683023905608127179180718068319053666594085656075186881641958794872785848295469395570360460099944047754881128860335381058290794033367943497181239159240411717363421065887725755985005327755818788579071237857632294777370822608890663109999541976726961296927434804752622433422615226565826946665441202402923288112560678600880941902244159147971423934227175190380867379409558000223932638550710061242902485563633138690624158382199122836601935538551981649830670311369099356314592686581614984514872184571631093057861061415213359070656975325034327895041961433459414846482287532276267197163985514006181877839449716590176979657082274281220733174940969320645707098090990142415171235263615075270344804383178072720670488933267342484246168127543444107287337964719938690498281510890016916135762934335535887069921877394445052418855337413894843905957875828632692899217603843113572515324613613776456761085791285621990025341165643007103926968747864442954244717653806584072446078597775188111512253990264680195761976603427327508907855393953721703575635998692217845405027695347805633369911274403070332341023028767457580443223153834499527759886878914925348751773243811899856325351030689551025865497436668286361536383592994179214718983155619019377274871970776071298172431622432135474995399839048199125732393036654393303212557783039693336806297051055450346210726876608127552690163088279759158762208967967659092940532448685231134566327287950708171351953023285177627075152563480882258957237916424073074376096454225664969892252130295261434790781184427717608001460857110007105850996438851305424727870835333316086928615077946704786068860980670167112209833233325978977780854429531987586697876724284281219710617467955535831487579254264494898315607570365031792298171541289380585089980341483993452626038266207940255934813414223368819707747077116779213810643054632511808808709175859251197873796798136220675302410930218771814829035025893273693655503294679275304635806347019309756852787638890901783105968124546871175172338099054451045948765775571857360159188204048713083658220637007987065595201640101477231222114455126957782513350368479670770511670050341835435223171770962643085555606559261289298029760945797942626562282881764319247790047324203698470807722450315837546218950295873975897713117151534565899575491125248013665146113251288986777274648719958507837240070882659336367632326359424962207311764492980356447709884274465880982659960733250794627484628162388096171057382940247834816090169837200311443119317401137225749125150511076271722554826852752704366785384708668245052022374228969752020434823875871767673793805609710433504184319107781601053249875540806738549231905120445453713409998281213280241756619535152044611197208536732692384009774096523256252519318106420029424076280852111305680016191433266817295227403127492634364818749927478812988884477721498262516110105639817905182255831846244800561881762233335838866123547902049682127389945682113039303006739023330102924274957594072466607795796943037354104012377458375837212848115205838791187507166441105015778176527323147694681080610038949757337072008102973729406213324474405229687936527935212056167207949689869492421153349726795773262428028375860694156255704393084471636928764506597537180887728128544783579727474174386963266704703728294502334558748310157865928869126390092314011782250991269244138794005163903594954269800720813720221433472627713420302676950983248738794353717266659089202223569091561435385325313896564848436705501058039745795278587194143213367846928732444926375577397190333183172585038874929596931615006846296689830484957103014100694443022426033355088631782322984290720511291535228041078828841372978796385056636372530310903521345013287173466203855455714434861890447160834919004105580257195770754839839659545735545478251561273770414908820460266240433839740612545938385898145700830901911300266037544935957869847193556695954233867837441706621704664408435786743498548731847842703429538335792992686085708007205202042806588638867943146374610701126474083740919926871082096986316122604347605833282309577784650851975066424190587076891689914833909814716700325372721630223757790187011333484275583325605302524018985007597423782974657951354910571308163815678655535094537701435774906770829472935721132021039803142744417886222843396596884674214878214639780850154212646009341267246852652988433476892451694063540813242858231640951939644401969097586195847984231414778047242268432132038371367741131685303430864538278131488625588090728601302373574646126341828359780664544102389081375182243210112995700983317153291318873277438346047942797267037004023550524368417348869031636952608934234195844765268905527554545788182817934695754623669151631575029038510486542051175269994656994351469114608553129682420695029176521077438234733372551596927606229781391591141729307134797826272790825935340977976165718349836860161090012233895562705512052959399801462381768723073400935931987659780571374703234858519619603387688320693578312178460893111895916300506060012136907200650311372735797998788963402038891695394008675540193422785360250949527485098645840650015349040417564417208966157481714913885332037266558110060719969276891082387021234992935534925113334067057581198012063041650074322366632194242878212795830990359757813718100891432023322539077985657808372289686252531182757978533782041110478415824646956776003900952676733245006094541778478073919996690802761845398963830065423435561998464791474116588000904647882262310315005153188214371643592222081086156380132128525080543708904728082438264900750466593633859868353090183921133228191837856558409476148419935163454638093012053733042918254180967310594808889143105549663590712270496112401402891009339672114662865257374482617114371095948330151913101505180886383800997669550014266124233621883592914045004699319417688550558359773872222584467826014289396782800486067708063005021110531014353090396872146599784422061288896669447576838383268631797865945954064019054879126039133212113673075359158638656010624462952018987142299632513552636124719599973959073315718953762176494999740499978056794277445108616703533266257067767411466600997699465493277542512966359699759547844881464906893214112165091554169471135383026647317742144394328281777896094235013451132050007541133204461795474624152411121652500128316777278384841202464762442783579554425970566089729484140627534470965502678078067736935836322484122082082418334783712968904672987180204610127653917429373387320187342632116045795312053434433696355698110948206044325371214909024502778676385428895301682412551618994818296997282224208720182661372825374938928545952584106982721515267132484243927920467701118336337602572777612257680506148181510420521290357404731529751235611798573125725382616684833951945820224351361948873754465966083594172398841946711089355212314454938601300074434152370231750546163941956548755540070652559664986298048001975726192983043108514220485400864491586289652275355213352894408568471508533324282265165760237560807019456862555565961077075297010929040741902694775006283837687341868724478180835768432963651409924921336325752574463895153896700305754206892928303811608572126920169445833132432623029516113690726324413950795801141289215876017775554596071260947972821193592246573529229791940715399311714022488524770729138031721940395986005925665667037619038928481428908216516657415116345186791632219356663397970280060178864267274234864505190477560482469006643523565301456959850504948190257880630252874090727132766215444505099734506535098865015370542507551570060160675646732095553530636482436898497159448838085645737502064357179815387904942979301746027426623105349213694680776450187411432848910961549108646920992287870383439329589164625477561540762789144863824694405519672268978913677466515933594778600452984220646057507254897637308146262699415870072169757797524647149295187710262416977966140281595953044972674554186644633617747030714684425926916426699074412722432273197358291105788441928503021413183767533202859429148480619727401108321054118714982557810510188913631563861428497268439475761355385280719179411458776480654832357782391382017265670424203834017911264861011338177467387710075947509511911043654288582074300456725564311423976731302018550268461160146594732971042394264332031426495177133506346851517186101739341111442872590317552488324209798628317507336508577985627112373462770509250459727484908264562601162482259787185394602760920484146221862764742485158507639285970531210451515968198976690588427901494263978292169326027313373417939386824948579626787633143406315948413284176363814383987505045126278241227624849921068523952573289475962144220909648930724805450906522133840297252640537893465896648306895738586518095138547322051895816989625073046885487425292102301092610315901030862591528663782381945694081756684209746862558025000405214510227326335953148735261733467460997483588740106207908130353337308282400273733368342805100719472343543035222109267708374155790621105397656700936323222418358294568823953008271150981762066743374644979014737303645751679569513919690251765795230504173590347680865546223130272922660829892666721073974661437593748758237007797345131148457002728976980005911855638246535241082546059448513799333543206895967393074381161458915768783101231100702329595502616629567136090953801981122483034639146401102124360874524817854998935737979497976564756647638657884146004085297576007972444821492433588836407862954964093065613003199453039580622341672604295393942027422718964709339464667372725068262048732164946021377591967854398280642492325048120098878890181915484579139400267375270063966475452640769528971941194885819220728148034054201369609985878556084419124729691903634514143283235648192554717578795881167011703422279225654697050182611000562914871150862805771868359376565759230139817719588589115059359945210266925694398571050145289849223227693593195247812291228633671747029675539386111970935029493394717383026177468359612821667873333360511549374270784751826349492579858848012077281682276310302981852509382078389642920549966116208277398393787758409588597461135432782921526625705168629351879710480502931339938546904460279021897245465718820344874432974529084852446204077586103438545420095191934743908252006566490980135870060334023925213318939598590683222780351582422226037230390482269959145984418383014001692643893852996996368486459172208286773124046163334250610160104674170622120614978388644622239608376074152683217670860049720083249230107923909535488256613409237794435254201623006234913038872588422258451604334239943946956961089817527790641700111585452316384609941619612833971165593495356404889197439058582220042105833552559041498267779283404524025504512265309804551193252671406164966660722417176069169467207755731381026601677669765103843279372896949239938061038995406872252224778047496647936107372372157483211333968604961073916291713853405173426504174104211313752050870229629508506660971878292160297116116349453308126919912120839246994003382989898215019112266352021495821261201608968512523820268508682746780922579545493780239411630682103337554108433133251503697893904563990564289841662488813259882313162225160978903087578727155634237597041090286961961193908619588743333314110407391214807270412478660545563599198499770437854975578580552259113500852223133466560190403771021974159280181534318630084052734054939645112326443068134720651998806365254936265042963374021447955607417894372009294320824571207128029785236840194537063013380089093570736178480675660065973457386865310607042301207690941887008725064291438855373741375473449113385687416853669626669161927791593804748262480116520985465802657290996840476543901061607362865771708521214886352828463578624000040948345305094371938026320327654965614632194109122924377225103691710976771128465145228883877111977956128552514130860554210683396891817638272784721684404741152339521200420915673291237094134343990309939177962627511633351761878870744423266805083261964589082423082387710950015321564912142056861311618460878232302677080225752364078448548235424064795044749276762375611250555280704982967934973126123473863872374756939759900867915890297824236862818528682301230835417755134868958719154309266859704967544893772281343076265202528876988342153696595285240554031314352401234694571575476849336718751799954195895009809146496616331067449736361982176660094599257455577452388979274845561856969967443654443523415747915957965751070192391867305114872357265737523691267755324178679664509070211286033176002373225730138692829948256251890005134555728985845568071990767667735656291651117045602636813144477640895153088180450071635568946915978970601074113924469749524802573289778638440461214398245932814492554066785901442285010753898255497177162522025798223231585732565565593822927113011729841149431573715295825916094632573697573720203942287346232379128868661373414462778264937760602993764509997925663767229017827438145539233888073343742334331232813878303545004385196085314629619209684891862740839806473309843380763510349832783755958451496909915473685168815588717287605048303605911478896698692777716444789775642368192810579150738532981342254735623588997193915844046910549075842895667236979195493748251942961864576665416369716237280079301913928223365743769156226316606152779797709782626133450350891953469719123983623044464679145925803210424192033908323159185144796282929716407001025492845517978302804661226946505964027196374837576260318947250426738067610603251678387787892470183047738147063136921813288148365998715096161382158741337423828537966866227393731440577511468560966037269648327102028853791079936588356351564666571736782022385228494185531536412105382335723081778432129309407426745367212857097876213749826293932472608870096604261443040991673426788245622596178157729904337057686496717859375763006876425862115216633851318953980149448216551164871071398289936098695332387841922023296363004445618251272490402599103645905702965186490123925249520825243977297278441509830438249266128494217410304385718991099487510585607679746877796087066472554250246686683787024984615050123609574572323164264916460871204109310782956984271921630110166952880386135704423748040366214549988367230671855748138075839980762297307477292798672308390807983444112486649488278808374456485131078221045820217686140446285902068928795474117507640960766469637573598902502074665844228978995737046210360631146123283921987167642974588665901253226746470952825317444958316259062623177769679154375813907576744671077931625226483122655801429288966116750079882074585285576582591926246096815975424979786609786023277122435966743968244349056053074938650407546744948354946293569352893323130361978190183368108640673170966123006437496646037893475822399118624127594016959603083351566781681275194607192751393158512376334861101998542831291665354190068684022882576953428476918867700619639396337826010166466306984636714677111833315616318549053039244060776394539648664317298904235698086211118372082603472701550619708535671527439242622956837680586837186319826885736010807698400913790335287036775714128222221963469382866703006589791719868135077661752038872464947983825647517338152894572258034432499685506715164029689201500257794473054109217998340835575212467435506024794107039624015034534646782720330058806432719468731339212963726360549623064278096466478710729898126225164962426211123925876214701521614831184611511283064252272351055605114318052701095930106302257965729939167551073212293765977244000023755058147199984145323767671408730046818366955867421265697465663559392358055800762663164539542741165495789033236044171809817768652078158498088761364780395356116270819195807368873858185500560238598529768305119309229771585428319605174033199221437025618507820951916756593431765178090559803333228171792823989118008572344387101634830595234733070229764731858979663635394425984391371860943548841484142815953565744230456587220009536948939437749470020958539802158151957511158324171876254394189266563470020819834802963660936384813434550597394664162025278785365844791739479186157882818041877956204419175380218354020363380880921259315109167020607659524672508601373748385223949813566959232820147715716618005341879695903213983204935010411866847921472721194306807297706522283308601073497119384564896697726151687031897328965298854393326289024225484270980375615551472736560425994814227035540739535818238605494045642505920280531691352907520358453146632353916655962508836031523213403150570742317437794856262750270903265660721963321740001569679804229329908177823040843601511220621255098596077964355367909194539598150017362559243285018281169160104633049163009858758435518919490376280678956485139115584043334614532191947163979257028605840365757026714386136810057803985235274775678393644849515084235561842167131971743148177494239814504079379934058158655234760879285357679392728174744548178533779541002250205512873878902216612383557679526699239408048107397245973905567878147868037508454820036717717736476498942376305575563082859932954364008650460657604899299307678984590890986118881798010926858247299663671642905884811889484260289176872226463909405552139901557327063133439529708794168523982547095692986560469773845690609950801232079431021475198420071774027743622503136852104557077493814973760741744746975877867152617627499673413736432942015804845594121536248090528562565693616925168516558122272624375502539960935813435436647797045466677671703336574298735984463864709510349524549781061001198165729522533107292471491285354416233925767223552453297279786687078515536749584107090623499186773279834977207678013162655236706280575297788537681241526472842364296378402900540704012209599282414430546563714782534735926948463432204042756587287159666842918305745898722319426483581429332802928250969298663994422800665437716021026065121475616747892342968422621148026026246318040341962660316616930004979646342191874129488973930212519305923197118747851230574272261633124056604351666907832933090131294036054746330480314516551837139929369342330912131662903142599207932514944894904187492918446660376277072268958635515602729893349224553654684199400365213022288709425536976820322293007823846939337672202756854865881415126319653458815344858403499976559648267725811671902815706303033004041699977604853231971401589910313914058204887726241270090140304790376641107898818156578888337677718758034714436410917137782006418456966595558953981365136478261721321704099562132227094114615424080491132134418800558294122199742863564509395929481450030650524585599147742558655779246633423834478432248107870231387132333774728799218068105851025474775555891503420160334121691588033980600248447896513462115170556917463077297007072410922262235957100102650954251753014931135040310488553305712884552627731285611174180453151416248557900655203190645568919341632938350430355394032202981206449320621950389094234072840989327814170141715889629423450330858751312600481185783746426681870637863348243680125930986608733167177706950640364684182490328957428934764999960308774827690462284748769474460118567766469321538891015104940446592139582957548895177331259555757754315442930916555757253888361425617277766923731182374962534492925731699152366799089403795866406063871405525796098513474643955154359408474040202523349694049239092470009447842366584684455288348749195074723848233175799737339626362075348397899061727406467700087133372661439577384138158454604023575828631940894442888730348112825298511344425107266437518807408220295313113194777767275768186739637930549650722438737375344221996731768396099465117769358357902304820564121986374912276652419193422505847799908714625387632116961350956570808178449436378442895676125214337865305694144607823462207892309194588116378320306772030000703559750121079070051824312943933066126485023369414337239504070017128902553711378280464363870152266936450645281098409401380251615700867450936211779863945808577926130250387603543853104630744924301038269277189800881372814452521712476937098648773380849535906020941494729646983588386247301758145934557672126418965017080774097293362223861941359411119733085880553237940632881197889633962923815486316763557424727546425320609005069107382319288520663687719544480088439490360878832315961847373983453751903383336299245307856600209552643394867039524871406674717741065439880289712549224844524819814028390123769520576051748651651462214086437501862218155712084462018004722783355656582678025816814013086856290375469413156864864752117108069846606454950007932973312078114707760786044574416763434415566229032386365631243912505631798756593907266262233827689855394583787657623050686934056777372274057037274072005538961323875318950073141499366263202157728470100684482627106373452981190645956883878395661270959128993654168076663484875133576903931854546615758107279439085642205406308205312582413420590237510807173454999607778796732201932539849845240067605920348623296505376329858024099269367732059901154704894538671248609472342967583013918308195014683078816378938727942580802349650064243273871295450537904927393354502786859749479089129505785797501257384774317860596050998345763883583361605387324014918378577422240781108210744312344879282254000924461602224715647548811288449276244368651916946273071443908897456789458738547327039192672175044566552507611759332463078308199415468922749648230172110643915748257490209679858297288792874422081281002494636331347896421470486999569115497390098624379505827309057988537396878105057046073532936321723653171876593056148289110775625266930431412992378284874215383907476871326445759037681546697343344699973434838128161895239397355329071159329542480451684707283876039858866871199634058578060366874314500303912983429178592297963040051280958832314205392237672145647686834128605002489420049535926391058473909504937233937363688758309582141571842147319495871608908567773967024819378425693195542356527772408735927740081841659855457694817988863795766959340258292428193762998828710913004199430437936381948925943619251044939623778408947997894051333340517179496228402692615469470086625819238464105785950303826983663628508123375779237352013919529016566974203801743237751115700372294478317060408769178799456993434307456458845859189302997589248605046876452273300507062403358259468373193003277359153375628093878312068207068288453302691581617767902633494746148518902469277954900071895069254252831372340196897759794481546071312049027903897840548859309740397366305284278785284674071705469745011033451510207913325234361743252985904707044079880620737821012106757931766636251550413779668947997699988533265112133486993355949166547271481998186041499063841603646866771527340146890698142869827992625708310582921152777322659181913748862850142642841075592289712203445431714518463731143681449380807433040149765157051101672359967188329985111374921574131735228300486470018085644437606963088422321003913019097300275860874410934514677200801249010359386304792919725548102420622915294819088342878704496448534255533388863786283488061468181122789700449844586694349811217659686282848375017160070305810801759761752364052357930032070032853790865823424316782682869291077280437738323151555478127528718084709785277194758636848884160395999315345458149494081702773445687580980088476345841411179970062586540143436438952854173562888296522713304376749112467156547717644275571665258372805146111896341619996329204038908356221213725660782636267945894264065099523704341297600426213527631442473839888302603782832693394701697090326892804182100968166095281873477839369791440382982405271597076456546667259430118750621829459299327062899641069146687212875085714193557398677017767339573101126791646535248802613056242292699435102879906881241938260197230628495076191960078070667416159852836431105760560515177453090257554743084757486445945733933062995624198152954754356818417010851603240411456074359640536588902790554881309883958080252389973503551683503321467683803076147733649048099506965568996362032474450915686330150076312016036024774359870867517989960184960188923189570989327131974008395304126191831646412672512234084067540350647984144163220364329052413261927872627105563512614222639884570439515558297395059798887759330649787103210829009063929469570039000261736449324482984778116638416745879025229980177012048089593273438291118344112240683406783220065395414026453693133685917164115166212491346024027449832679629024531633019744373920057862160554607498285081682970829678251642720724234734879679286156942626367995113487195444279191643402588123999129758061749618052040493463071525490613617584184173568172720514942595248415091567874438490703438636589410820912991036671451322995953505033728172805686186780965313983098664832761971859191748188542837045866059055795809855949087943603343828525900135721446470905310743926185281804614623700721166121905819888277057179677077649530735665070120964961943170226982305114712270035075446771551742902472858468519879943516406914573190273763420215903008271610466199920013834350729591707540123662042111346754941305544450192902128885018128142793941233349892626375921642981646389201804785079415214018900479132368226007922089704182531822716582145498985534989762934464900004865821574126348952591060061232185936918545606812634970287621914886183848340071613468461542765415676514602281834628971772589564110081105810647861238450303752756775179435961751013113013932601170333772117253599101690428974432007605791732030381180789528022151009758418658154622662008598136863396753874244541717816257982755436353384988575310223472077166164901053823904777629251331997336514328212022996646303959225255337588630147760725610934448484616004298825279605569513958075247299709964039525038512413982040581672375415347655164571431744537159170962891001955616029426900794019387547415831571528805810672882649595710565223512862094681782216528851104466417532321713235633164978312876776149925661708281451089511421231491417823621019836128461093768113667901546073932223604304120062230127202638289794242689004775272446686847106026162656336710189740269663697272240461821855805173246663249608088204518417680067485853787241800298171706926609477896386898134780486908241656856459863206363919686387352205829686507298649792026496719909783398465194371858258137607981376177729787411970887637851636774897007542283907452121236304653742927286160336671671139351581308810339483557033754992604471648294551132151508362857673214542758612701760422235963687707101886252616909657574403613748910618255673948686748503670433162492581651729912695196369597351233474722465885504270045772205238394191380747669393642148425057064510694030637799584788727560501713876271584552266578716569704347990249683990340878163022776603171011279607619509278967852914850260056498281852854883504518026908632188140669290928478916057840246767220546919025251992718250832264763731110845386879993587179064701465304393385631463150791182653444182469205665831818157353351577105292326977567383088492143171998513540738786625772132150767733206009195334618685228277129800325417009399623508496854743734589897497551281937128930694122482486282814003573244569918981189717096134166104554139677774997024145356374315550555687984765588112476720930715710573467645657800991458479655339690130171541801914396166141836785970775239235752211685630637552399422444263877076226703502927795450119226300741552205584938500883674542698028800300244879672593786929242955345223046988245165852559717180363492526711669974925317431608983027081935440378756938591277138546286817145456206264193000462868961147988655967749065672972139185940334169813658685681830777671114831768507539493485569391674831243205822076919695472561220587868627503641492468497366549337100708174036254797748679205110554922819765440713246879051242402737070805375356545791890264587243211261791446823533313589970056417671039089333600738446216057087262616210791432695806650067324920985837635890314837773655749225746184018453441566976230664047389030565768099944996124742831803576172783123930026661142778216994105622369337333352155903883448989984201338595772969243142349236476734211884971974940305599204480404014035141568995235297774175420627283350759974835469090263819986882659192781871105862984061213527291003131186428540803981715596703697209582587268635761146071235732450341752277973341307462587918399476088492432072442777545065876372504307552984019064627850023427528335290292314449934571277694556606145875292894586020142775470217396582163305283558353788521871672187126192857740174343037716230652047245498673148231939564025146888446154779055370741826113320328467599678901561387681008487619209657613019298860883484551633197094482585308364724420039919324813744046786897132028357404864493991624222012544167746876110862847120157404734636911056849267275775550643231244569385129026655968971611903753869326045836379987617014007682934694524432812965088837833681958844194217826231621279773538067344737440180635459409051240725861922822493976725998836626846788477799872812903928906841727316958395266322241458830321834145326760875396503988599472156262515442590335058020308164651281884911123969452268208698588633345177851805654534364567261513758797110060350553648304507353104859878862684446452326310315915359914298156670911485971202447842206181086322812664776553556177040174836008566573427481646152419782434990017689991972072715817127255090712579667069062130049409607042110643455564987753978500669112841180010857398756684763105479304705619598282782375016291803144882181055120176470603423472094843970017865656526149053777476818374819194684546757581831862354489884911672510243817005713390169650611924117478891064240310922372103053677789612106895410274714173398654040968477225953922138617548708656396230217130551857410385770314489908483901819778975189729007799223214589055298050727448018400433045064210524704857820230618030600970235230828425251249245602691213243474456600514701662430815097298475853797663933926962578329622833758819752055128203947767919330591999108270620044418355897827009589562461669118908214249076787331967327993284036383760299553219433768170170903612104428197034887001763296478655688636221096120253914268869072671235058480020381287120006872787316679311873310777480858714143420873715923948822680874034688605465865598642651309970150791381056356108480952784422366338195853546611771205561605697504371091314571349237128493201728690774257832994382775517468405170012355921352267229974492309236588024758095118639175576877625758674272381966522779747373697825457402620860879741318588021563033966096308552874756519101042017225843090932236450759755701814124143519313152560885273925258278248393847531899960616895504095796404457285350068582100868357533408503598805655440584271651501316592090874015887202769449415826741306081765962941821962565782850142048231552300878400266027991319407343066268430695850134710172844809271384955544609570060366235460721315930118791817869911049382920712044656171655170635215679804708607298535099073774023643863532663745647277897401342082357437716265943676565893462850495327413802131678686429800114660865132743603034519415863853317370177794545614800059718369369962808423982792575217608518197011117388037514398916242223023906756492170078280658286489166156482144680569762170971244427194704581690965401347541300367151160810408564748647870637585018727193124814175837673179730113451264549679429581389738371461815577745444164237660139243622386176686313960294893290643331479568383010409693742610127241943545805442021287072337642608254954939082629013051175424362253138991629303850765885149386512168820945827166453474349062442369799128461394191187827242421791652449227103349741881220224448810906040950432432105944820134490479553658299895247501809246977264722864773358667152611468828377114106784780983726253646261519910149534586672233713673304167696478151046054315211838229736143090248193116272104576941035313138103974705370660018486689318105747137774308405909098615391934596974360347391317517194261583104952247936522057496239004491755503881859234051733077444937899528043458669764446136353519860436648484760692055566287600814207113533133647992353339599860351580618759237345351701365993313478235380443649801749925192401162199483437081758653600843837271866181710629662054258291360586425714814940401175128585598931130021978737700521384686645294300076942138331908024961601261645982077935217951492488353444785827391953185092395514607888256237260372119493464468393845215623690774674403716507655872877756058154117536474920111945614672735833773931613529000681396214324510171042251776003982682040045417376527867671988283053784166472949869854974260593762858078243592351771760564933105150771936217659486784739646826999790747359329698211791476635762837265468708358374744993604052332232056281991796022540736392895826453583264760268246493839834310474968345716115056654580894167455017424954151951296790032375455964148479822986775943423289921154432946234633162702432057031925276940555197450837369044775104501790627326941944166841563718377408204304565245060657750991262549566040093174344680070201727850537197391984897978082135648855537023964050967348854406471587559536704740808051903147307120983190312887683965045725932904778539690791387049071283976731606975437640744054634971918321450044069443634960354728058590517352941322396366846544813539617859091878362964539163654726128414115961469646015665499877232655489398991130862023678951888149794543979088684016278668692582634979789924644633993492346700622470931550933658930832947388540548830064166337075195560476824337549857588066206981854111740205522831687783795107169263389081577452608084049838148122071304430913310033529905159312685658695372622790734565762426340480446776188705653502712594874028484139231840981386809068904807491271569889165128301299917831588400502690675194179728752934790190497854745106550101643458401335180203588068425149689801681806920344191822248635987937629278889916822152982987733040895584231863342735240884745532890201339539935001723871158557469808596467154751562765357514801549207919165445992073438437028471725867249600993924039514951792199499350652958710863715842226945982130444945336047886113142499012065359440001424656950779603466003686143395241166285988719907238179948337067341114748499997512082015125982437309319656867719789080899390247617835832721977441864838574261263852710531660448334212420656027618587429723391791640147014838479494855007724281863164916139360358256868920934679319797921458303352003124707711628834716298832597033453015408867536485106549640491700993563159010448426867601567922155683033672745840574591789123209960964052936717037701594102527845388117787882314706762287610645936850697746797740421896312155260169879224770656183282187199989817307579474097486990981601648387072008600011163627439839507118265564636112993596438900091097067117502286215098112138127848269617251680196465722510233512866827371672997454182346139610231890332484219835315537005101164783195906809604465567656832228356544502765597171719833138971919922814036912312112226564813085254898516325845751019714242212486812669938515778134043856382634667692378248221241250669864656968428361498986361422851407862385152397897859795844492031845096221211819896076697493392511119575627178309217864097224216730442623771670317663233590030932552173472674726408510365221167128745683814629733765968902144084717962788400886054307050699002520576275999741922257829764289412156519475326003160664991771751927807689082809577490297515796929849494460288089029940001900620046690900446578385829639525693244520702818945361612116564576065816303986724151355553786403269419079986990262420915708022367279562514723950776004156314533443248247933609004670966181569094879435112254667657890341993678612535136462208980244884260808898361183673337705520177631977824689514933571937712164622662431356978976199608755928544865265917119973503034587021532864885112693275475069298461340020697460771858390739023119895974900571635161399563350206046587857868861888078030180602851444159848822233521819342852138034123538390559140906459249904859862395907126324147098800933360920966348754520452086929926200347053317870959863907865698091970226177513090536470850587854336200506746920260037433682071219127159177372133226393458695424654439519894989952620136309167795460584392467044569194402321878377721464520366489589942631616798514162329463015730872045221985015975155755122296740288194510181085976413475605336579694949048296343982542174125998894569501399592929081495592176766027626733614957735146998289966118543694169928987730479273713935137588879086512838194312364477130432705831252519710470948144358040764845251036344774337077762688354205637831971690940447758330737004421973814950749009576601907120813131944656444141212069299041571643967731886050260880107468967352059647408992920706006532491994200410970379031515317579067686149292759950450549944060210830843333733370962369685999522568319493624736887585373237734491568095924809712327128759397640281297330339741468340073926210379753774081187305678974853594785491901467238685157190798288205114456587003913172492976760074666343206928775376475753744193084387459687178791135923196519103900934055453608101790692607756193842711342584668089557062182768620035546330102206081087100747988860785837855610483155808406211656632446276983837150309018549019192136817818138716538760013315260074697197335595048714240893521609408193190666538088463923290077235954317549372773539331956290557895222966544964538932045326455611657707951728079098834052967647877144552433984117038825792156340583287546191020410322668047014075018285260443747576650156814589720099558726208935958827126477136269258376075967066305718440633362038765859529954709933190654483161971620160697469667036078136820659079468198385620525684626652353751953935097006100114215613226716995549340593146057951342864528972362915408171605196147794328001971115382531904538153411758635203148414907536696434060980032038189079484236284293850915352906378169405091587673379948967397771225029884841039231858184964182593905924913742369525859539553351508507630534546099982081606877098433402969730632837139011845093556761043040709201006249577787029866116625502691342617272116803263915447469249223584825329669196741049101272482283243728219358205816822418298321097850051741312886780940420881768572787140920992702512788954513581084971429648268127317595498063261464413134359866147707454832128622721741446873216747940974174317555421303648719491062464895755645493142001961114131845979068515353187102938666492002810082935943801761108618099662519980301728608774535666073041716050786629919746132134547149214792461931056050882597300109554510080052053211647389577960345254869708160571049449231969775002422739609944125476408953523161309988618192134696939721019524490227083256916445592598138143363991017466829413124304395379768715596687584458227017563338098860367821096901562542081796529431891597196961811754987940360749689038516045907198149924614124034996325553368759370442526142551270470857592203602155439765252145889516629092616336909773056672266770347327010408876403312423251972488571039586257085544076422310046460268703401087971281034390204096194291675743633660495508678533107175259405763926180993601571675813996645394961788706833692713019561860297982869004624560787088207302121718254600509788727691271705253020716845606286434940045845673125557985880333465051884862690511729738938126925717214040537997554777456473199688453508322407835421403697664732983961769876955686528970318181319149617573742008466836712751973647629333645931595915845572127656306966051223412966343593038291137829687497676218481883945206887121859394732292298349571624306341150296307706310067323113975820713767978728536624047301080639908973316246200262401286515726990309028954810175054074871912803497611467929921516014710862908735268404319204043988756195829056063015612770126228647114590316695242007791401412517462983788133662023694910336943215044261664576631780247188548910040697388270143793533601656432136692448358203517345089937626488734243251806941081214826805452743315697286570560859069656171896797566785724884272557341155800595488933847166558236462079135864025188615606425086320137217777317232280980212756022117282963613119182701035392845270937856393798042899771082426979917162460406269982964138524802545560016313101974017825043966928547655833642243928872521837268503904547740301060402478635539950072823676544874088800797164955852019040675059466141623357372740564961695130935210811603957691017012329754024821087576157796198875188016623541822623082236124354369726838885203394414513238832691196616069167095218940844203466651459299017461184494228053802835043318672226362987613829876586081928356018407515542091475944899246347064333526281225339138694094737181178080926283003707556781080312817424458882534253218928227413005435076104960910218252343339634527741693278468164993886405079838440211185205911326995351809840261313701606444571386756497043224380638301098971135093748975992300618427849324534882595323854297210255400791814863454785422123821197995771992348998756403624750067678556541902737225721983665532293091252686622757517342271512657068490091742714896764385249460473872107351075045016775673232470876386837568101195257931585915460178093056218809516683945294596645575253183114013848756684891357522108795688103270299220824105437713494828780544359134407795982172792678785234014181885876121742668992229044755472180325648990026968918738167758547853318331425264227974981528080261426450921551949171177878793120811018922084115378735857743063044910777441412673299787476364312150936623955508525719767053054633440043886361638912281473093592383149784043195220727959226204535061494662456400303931768995622121277246092238788840028166447061887929962860393139211625989458986928947710390071203277461911349564935137797245153234626789667798856059404359598746528183704579095249725147597787127251071591155298092305986027699168579580676446879909182776617110534670370679868797033085136885297860464180166214345423232186620625658388269109849637704340123503122374333486775915142932464502629576019878830979083692762400545326488392008644374359825045561628294338116822320707091082518665677528322880757041351850822368112365546395793667767441246654021410515261467010686797979302699544550505508231932843714975361033388653242635668297923245983471869899158579451860804726723015890248676739500800612660313146809056004455019987878695613666862390451953698423809369001363728445973439006696988153815646159351906220422451686547638104654885877215214174247110330367884901777589846680107503729845741936252498139270345395279450119645785018791554770000468033141502733425224973354292824857017947155174236587757857499628988407172235223769047780753278969902734271423347950528753727426545269404685973249549753793374790073820593614263781416115236910156902836796811719987021298948533465062069038251423351811912049012087791309439080461299198502278216379425490796800223671714699047116653613867335542903132242936584698441347716997125373520340810500138507768738223909002888470397983930961913010301174259678944367053503595337615461681734203158564741990385970446269136692690040277485095272384001138736880943022937428861385872886732421226328542023521186995810359577885916409398806164112628597251283336766204735328603396576751943797925747161044538936477356955739091842306640092412066415035300902798232814755988217495543572320439000538525828641578681146129616682246707172349037741122958640868126128767205916251161535105502023299992895666994721375994085141360673781911760503910495940252404526585935128287980228113802609453847913738289590249123260398132437008377498809705023830314906127798592369273872470134886890492837098798401127626637267786473895924023964078163925059376760419175983815428073457161877580556740512596333636328213242285880958536183625686751286059060641448390209457985084471030020444985361294147764797196193718438963246652406361759282019177763755634883633727475249601340484826208133294294692480072541893771480027193882395107296901733016016444370491235625487594252724275764508326450264775474417380896810584413414305675891767856384538560259382420848138526932371473589142486260145654670150472595556897390238006084506201846982742013065767180663903438023568739600477891463178434076004624913175877458123376903995672599880849600375547871437482360695475899501015075098230879618844749383757591320682983712069889210395181206635394599250611751750200900802595213105836642501806014365530117304784735021771318422424270868875370963456509582525664253597877580790242392582293133384056703094853869776499890662795591753030596077939146072121424884519030201905941746795369479021267426226775726717590823934692081802208970760383914969351497186844108204897965894628365073819745798789896253935452496233717637455856805504842065846555042505863689137576265890541981869977124147260502898402650647372266692968618207895315705558866411129417302311015031793164483261064825443469468084031426140611202352446682126796869705788814041890930109236357591120760020341400919593133040559299917247859943938039044752613775486080226099715674813128213317764156232362130548330908481673752162164682120051841210669139823122694013985234381927939641245651494773644367476858024728581331343926164410571704480578334170519919972903320439992265034464440837096838089086787890404571146900678270487334707486487122465172749989114656929078912937076468432854630838630081468585317276046429143496486717287222928962343705493134635486516188084544265331981835590197835937919116617347994453028075975466778922991831876571927579769573578416621300566172947276871977858149612408073970152280443278515386791787911822868251305279165391805430832784847221469859842181151136436876719909584118567986576220961197922837486577357784681463553454619454238844664648319604902996688434076900414909680582052431934062929288003814546169306707019183882211717883940845586661665708156562023076021565453485114122579593248472184809778399014150986373801539929151034991214546041245303205691132655938341615982181406186564974156849581696334106780406990913254679215609291888151225993068102280425544042016844025957200345635221031262118578894490094163969445941420745534763676481557521239426445343293785876695013107414308562558728289237176194028891277062012607928652450692451022487052877018192201113459764454043239294868787616328616462291066579505198019405396981782224266559562053717211654819814698802836303013479616782604597483684566803842256511445463539867510114829763888703704203978584994101693084249935923695105540449684193144054489686047799234731178810497186689267144500872268613523893089479364827198577048415060383160479365494539666003972905428120986073504740289964815142935405223084621104746569746865288636752821128497453515306628045304145835880180935521663536655159127068832258676197524298303289812778843883391932728705597175110341888583206183322259990779804610269203464788544061315867227573000929818127579027380400553847595337314152195816667113591651985804930546054074249665175626889480047203677918890534174012600231629862832693164622427180183209474742063864540863580733620309802613818953903103289552536756166251828147983109593221417189655075932655809558764559137462525768058596390392962921617802955015452513236520356559124969465679874805625101887049727296487024196197576042222598209511547529291898049059169127778101523791938601459806713753738185605803605242621494060143215080073260344019918454238786289387390688430375016219159093003990394254616665186627298850255624308058821646543566972109833919121198778243471154966599468497199506525860450340459740514997506302890534989143551901248168758450406088056169589310941337491032296132326829281209016124213930402813353837381474677668525761573968513653116831600962874209928192180269051747945493361100815553681347871511610122300132312416449441784754714642619753841089025358622019175551533597338844678522396251519020478492019701124354004477619314397189001629446725105603091843948142104838000865050547138766866013806937830832007798060724506459859427709023709517248095639586167790878466875275468251859614717850230457947364925925910622902541358108193525278349509174708601689465696482834811726114739342039566956105379301881837130135858568121138786280419242160346069388637035717896248776734228076150915069163679811264614574828517337827032643787412199754011836981893036890120676242770910903508847698379933247483979649765335135538423801507772321497598127240399899847068014813034796453782719468267565779856546779025490752498167229955885726538440837004465681112967897408676222197979296872540538923773036279375019116349852366256570818624831180691759110955518557518465776987888397999864622210243685428318780969776160512439319974430203552624046149612372749704636166199123951038254290989167851511911541632678686626049947390600873240508160741515424686718349853167104493448861760743808363281780550779102799111918190196974087076956073200388012585646216185132289377816736510589488243415807427958320524504888518292550372435120183436312276571582339282789273262949633702740636108466692182593474500815997550954822585203922942922611253002372849373776119624807421051849917875292495416057754048264173533159505437296025813996380502022794257642005509457043809599859736749404411146639646263564702063482313722344111720990244564802874377266335566709774833045155946239073995449898867327394003239586259962549954463814380025384303849279151569499517962761227944362500854982932638340378331140484334438414202722664177010828854156702697804769129372143041209656068106400194719598985352569592662274108306075311388430625565946114354598233053144602797930447673175789240419002777539166625762019952918971824993275123602885018804341133507876675730455452279804141826975926752933193338372826706225399975734687281369105167438327092995691560472313043841657624420076506310028395142541279894891608427955123242450244297318904622228108585706088830993468410390429438358061189193859577815603992459136958702821781648580657451898412975151437631898291344868625545622321554286195875317193869855482174037607021574078416390704604651175015972786586313254428626240243330721097740121818759606151957135542540494042571553811358774370476969028805906425003516368863434855468446058462606238204278488795987958287561941361300668479104538640458702307015697726568415205140521282213817949083601671536332076929113231391824343487517310930168600668981633593555442357720621960308328122808099319986780207631332591687560006901344689365824536414483842832038083471478098142046792350373147105619723933026114224799800511859047140705646009057444032383733513932093981294416937752617331158511701695251615483194537629997505568534119366486144176699582985736348907592267121271087731529631242934041505024900816124441826336684873769832687713819526852144441052027503682705141318931567963423904774206310984574557892273729965889916022072336472092172273032920533074707528132037612222945811685897586644434925738509715206688945563088962429238076971746748742294784232949284142103947654713385467998040195759318553276527356417584932421936260671929962917091742627961688750551451818972342342468233513638418683146353698101734658741264905287663737620459901835056771607439901018046541429109218520685261883827738528064503542394240301640098495241991553903558791560295522313474941824713935797851332114974953773436183081078106253183031697762810510734335228033221502584789599862768013278882595557961874522604075162730284370796858001116967231472745011027500052413888808100955630832135529712469200826067126160810588056892374401921798008257838582121836605686638718349604969932867504777590073355534460621613869419246706123720311121388437857971401735702019407307260562847346237938792870008531449555628318731854507333578823952278287721543898523454580629731410940643731406120306573761126899871091582567471021594788442783633433992597802111594266631609715067903088554237945066736300481643681582823637342182613411504425118772176147746500474698257162752411448163523305933903319439837411487644359778676999258554665007446860587556098011752343140196764665697788550286697328799360402365299188092705219977937770357388268589832681646274622385549097151881223281672051864040791501322230299214476867481144514335332804010782426591258853398350511292825608653005467185785557765866839462065989686773361220171659326648684624360594879359090059565844523458718014887111874555541662209963534525927905176125121545206749750838262137878191529487944445884053625062650338962290705225052534141760647419358228236517262056564504048495038455182362511890069872742308770939606672355392511871229956546655631159570665352099941351271555020164154953394045643727631971146267240812316809000254899194100431634951890032957815029030723150708850304306757233542146934797082918581081868829167988952321970221670545109315036388732496876683799425817318878631527336871651336511179548569753599256806989873597243896979180291457786300412139731091950740049671343495420222036454479525038655571257900231303148403772288263179842432035168901056017575472886768028411213118707741613292797428738097382486352001042759334191753498831252660626301511224487064904693355050912450392937796940224025068168708036208348548479164726283096476345835049870815009578059325477124748695047216519375922103179020693530481573086971478711908645764561518073553746350488824021489530511480680045726800852606309236525661267445416624237768420827782512906072208963035616749467937698724923678251340149796247648460262863878739813715841449195043104123695039243591471621502334549524338554915916604200984799896637832742980479595286264845867002989347244870646214447668838305311973748741627642488325139275277453580529705839533442954315198024848641461553226682290674520722716206901642686700061698237212940071261621868800591690367531972276461998517048971365244465379687251260244560847527073846848074084117010594924120809983706508826118193413986988219308068600632497622383415362457695261880936300011789474603995061385729186977309780287312461245181029747971346352947755514863404648132518572531574428738605865142648456732425346895883377777151386927321658597265503024724724477128902619153719268065439066896329956741004632006908738899633083630951828652138927476965917426603729718448303553150695155700335321313104520174762371205590971130736835476977673908243858804947092279237884187385417705147547403865662520010984716828053752600196634838424999308080511651865317661248492792448713889509804863922364654170971017656833487825191515100613690780569002005687683636724320668838221385912370390019768725688057638037851629542135686612879761893696802067000506343648658094656569227479383994378344166823958852014718479956691790693077771167160321147216765697602851193319819826333292470295392946496928047281667395482517668429699649587358676368986413006796136382358526765259689041750627944145989971048421975017113138854260042327662293166453871001853759492730242680105511539184648890217078820550843027363813156774696620209604129066406313379266088993207338604478768215606988712966919506398515040731983759995041718717833537226162197321219608985380065138259408919413815341973517772187868862784731636340774327624868770053017075758974963483267046115215343892767456020677431687662471203939252607801567471816250414174452961435262746587710189587094231635754135190793752615935043561003317811880000382547364601284325287493401218294808570596491089640601903420968405339388862665656360539360022320300859338736098702331271972189839505935009755599874299622338200932011022971993726673941773707841795389261591142681628311649616143173801734660510784337728462480964597821581747612841025032348277793181341321338099210651522857110437848707498716603047888630576011728999427490301360358422870769121369893084338713138472147178104395063260740217564046454279515084670435555860481928188915316410799394057029665829846385133381170886044528614526494888778995471183390153653362589391693614125881625952549541537323008890959628432955864563586676356997609330707796329502091072706315916689270985835540220946107351421822674483140837945989110080212753949381993353760828621636921833846750357064886281785451384285860793006201993435863784208954782877093778212372079834267137579796921579523806320910789132489476145379592575811876719666996440464381081508723759192264305537909267976324684452635332299466688049694414589390400587597233367102171811417705287798700498779390677203413430537815083926086672739135632828963090109911976734483974332676400103828296246423027077544504839366477710733984894401371723478863815186854360720833258123080304087362899947260503325153623343159691911229242253646162938156207282798792080668158008697392071790062072156373648456460763423179179383332122403677501645630008387940704623789092124493998212203758871706882913139518091152203294414973453793854104326244763237252502413302899623741786277583684757885900213845900468448976319702828890826522281542621806956902026665151845975731190363385135687201296508607729476355223583876533287673348031397467384866615319985848878921532919354012939057821978031976027135330433538043314095172379499959737032731282383932899267255378194493116177400409961445433970193294231484150596902667005118284358694507381246406745336557575855876087183911853203166038435075593972245448793672149173540786106495048961288366303728627226979878102454576583602228157984592640811550630199111310092078563536259637510925109045630878444356088263999307133401905055680406836258674025526551647573687521732307598122382376915485461690664579069213547918206544207680259711945529347914880013403696812567794487895047023710276225614194606932628138405014864965329397876013904157281259161128137414949022568317571402606086719222377789111886623796240466049182578385744008544990132165107784327708692684103979232183953220071050736549842796415675152017717810934088542266752110559084130272966817755705759384358127766352121715800034671291760773496621182519186432376444263919667845194179809929730531125665560624780904360318510772427660289375941038035935012538510344464137757840257653151462198641177644694797655908577607757813413448286644637471360697201816500984274031628084309215533770029454962005881790464452345623008135007549805363016146642749875755718553314110129498169641954240972968891225934998971734628108861801225251274267887558984578847978790689936170135609771813357648552946821471610019571095966872267262132151600480174623472421092643949780235421614150293331578755790439633218461712701016576994567644185573518590803354857160809554828038308437460603859054364814283118981721270946802317979696759184003335122436067539431615854110468236331361457276413724562142462370922959167299448023070365385504866165624011994853584652666248994301000809320975341850278834695115014951864593101366831236730777941707317402425820021316893794177354334447981460004759297786496556394368362505385693883745225113400959308835179473488023510971713170888980886999255356361582206443658780877907297028348063239666405363673430268947365193696230836536880051475725061446450655217169032121881962170687443242102525434075724497069531278397652804261318456652847945071021737811630821629578972416700573058894136557621735410012606090049499443361429140449841867947649320286131447520930647238053459467370888971897809236074765559801378002007637520554461445801934428511261995102748991927920742771037831455478291082838321038300656899340075434654267027998735963486624689520852701221214889077653772967092791856467573964952295094204937239763152395878359890633167774166434193515299919389828650102691241573131625381260266905737592292432894496217284840065623214836052133466667226123449466564932489868394878075854871232339704224155638985304151214506114037672195106480804236262756137375899486719414650777603668101337051923037119424519702297781051668195242131089962450918706967053220107633710603850330388673204072275259937264363745181185669738923849726492964379632393691220627950621442587877089483534308147115740221107805198069867005094391020498161068421788438401235168595295197440801887055617757099101088792649632868984713385473356069446350897811684927617070460433619534890140632571722713456628054494816037933991202554703746356627003765649623916145531613770793076504203473486901267684151740671451725292499569116645268030956542861203362853236369404486909041187634812929494991050017376244995066594942658790875717067650492067008013692345567058215387822386009853167890357728651950033192862284907024275789134289421796228512331437994067981617071107218233210573980626638888154348609929495327156725468505279886531103931971161166669979600795145197647201213854558959076580982292448404582437572635902007475598645229935084033871230928845847596864512746186637502875940233127514358264126706106705458305811793686505993054352703307058840747913029091825171342353824744037990542826184275088489868821389429429387592810332148710489835742074755367280177618430093718381515500194964303200026411070237203988930149715169241984378348502061494567951427403324119231203006194952983707025930233976353573263545744874812508204089695495004057531368533101091426572289448208258771329437103090401004537865764057744614574192435084027833825658813227150268363356637799894827232958802967771499842809173907480635584359960670835309997571328035034181972016561185002935455108017704091210466859754874698343221587608317541120738552994073300221913641221483494806499492214937782723687899607929979154356577282237746515944673907073937246909485008876618125714348315620093005517120649324099934521476976405065600992508614200111802238104034319858635185211089523279971047124927534407679900979617393451368464467697585157188324897389863493821781652819291710278427084120070794694333386246832532057930752035698393838097558296231105271002287388672082531985305996607292651117484884639431059021632936582502832949267343614455520687168305491763438425517474504234440883071929315698264183024016803554075723145701673381630344725891979241756314806797734813531355659757349924445020084660854746310339882012643737003608993671869392943696618005028369576622506612084404502734038742174631142457748836988538325804963324654856421492452540715062814938456143451673626219727483284596116005763837695916974681824124149038694442207474701528117262761331990892017840938397496781341419552072829201096140757155548610891617392935248292040269981000462659517787295102431325958143812994029130143447301336005073925067752998407155603517436897147277230829126724070324067368678967415087467731581982821789814203882168991596952287839668551031779707510646159960637745805201807568886898621545125633043346368644484399138685871848108413657166011544574126787355991659504220789063538709763358953464247975284858939306196050766072843442591183751703484029685035464030382787432425177432949139605047445516567938029378593940381562206500402328038071180710825202439047628069407069954413513589828974839653246399972082800223703861491229633859991138452442370733364093597274046024951780827202817993069969995491103375930161272518766243847985567470336740127081230796954507241036300375632301140176224372341675330528233555386605831150372193421462323238721687610895931442856715990057552456391758173444937775328460059923157155619340394551295278042707149084932805689928414363953558024634908179295457522967083124052402199231402826347789213377398153854525026591776403951371661248630668729147901123435922765300995976507459813248753714922630669615948620324359763050479625294265999743460028977309437709314670043285192719316675879141350145617340307430941245100222379419269035846113844495648346964097114717461441601102134675993389309691484468237473850780100407323580845236166076886537838161828421487417770793485109779664293125167871843090378688426639988013706208955809800887836256642146500822440822907469701148899202808073482392155702423002088278685959296772823148628932307648165418895252988833044803915796031299090576719452109616184910146121118366882540956767779361272859492478116028187560435043358821276849632387852766222185637773769917993855443881321848530218553871884427144842396484220700823432092107679494861015063831483705381213292678393770606035545711914524679849047664451187243964904011644488382673270054110709182578926463602840754329366011925715451663214873228053574443266854644654154531711871176988968210030418524166648673497024801255038838304908194809147622005114382503326230235615073485068694108583882626774372407028818498674246591167549084295747014519782903903929585459151027499019513086665822087032603529889637756245780796347580840408117864625002181065965470177022039827300478678581011847164479357343862349801145310892446204891604008479164489642810060144736134138224585604176839389456045882823926502217921539229992093466259577772831304140718075256779245940182085783403427063098235083948097863199747666836937570652955032913371127301882650036633391773699760911859412115562366899132672328577920997327124913055050661989147631023102623622436656829705029295294953696976741582450870259582868677878225406081013314059883405494584622499230084571339998741927649620390323946189964077104848004477871031945040398045680663103940867916205176423529690639892113857604500861115245135052199036923832270082838728147385835751897619607299325333160897127451546674241206526078934298154434721008289236404695501466343558051595968264861835225398844092812381158062579422966105266691082772585478648202229557686886887439708254570062110267753421729070826899203075385671410541248545421560531363978212536620520936137242177071011182694253055814430425994694255044845267350978024518073916282535331351260071782667998314501750905302093232428619441060545931714539407012524451471551365449451635064556695086471776186969597318547046574958208498831754618203277781825611102779542381512796015088979461557302921249759174686258723088446008864371282385313129428532658937727396515735945798698778018914138239061027906836091710072196713495729015929756560539074263298282392853827084182613263194138660201302246372618356123266485417990886145823771120298672664645243694838193056621399814532239619254808161302684781895328292852167057944968126443168843626312671690425823520390656713726145508765073750684950020438198498733089277509725905026333946930110739022012851937056140215947523815752385056150599538093760672668639911789025540832434703809105152756264318930322844078811133861221859019543922335806549357472673342494314904727954759511693292030280469668357472405485948836454581587681512576031146380970468799820152084656283413987316908371093849426403574428320725041274469468224124551643199767112966259510663344287223173954427502217490472736186472588080961123692427186532698495931963573791822713613810583191991970303234925028628111096199504194340617460603838884635050696672641995141469060005652318498119941972240171433740857919904419076443107462885870909185222641575247971023155987806804270924398474532717050399211383358218470215850866417867769360031573656702344999739332929374959182313273421857384787833791221760338973134567927662503324838244868231362431491549811042004402240238607180630480631858716146888174302543752654946374325842611108444817260201968709673607080383718699119111147413460628454419612682809769727472361145883630673510201898804415330176664175031750527666830477652309602710374296760109135475033462363845675379016078396811812920965457803489227656633871490947922146618227337026697384593340722388829093656558530919315779265461855719628358943513867271140527516792678642767608660405615271249968433723010942944397425424298205798255572847305918485255726909466256015104704076465412219105623917873204180389411030610307498374081155302964260576182138231465081790894266894560527489122797001406956492427058129453483469373612930472430016890585681630791738890386288797814005971851473037805776450221189701750423931265308713397526373252147685741757011681747199659144241841792494800290762980478622081447616076526316211900091086767332005786363261884564145622870951802146855989964636322447626343512432406263007956117061621617840273997941457146305603972106681268257908444412888938982748139045658104646566461625643122150822951821864080043233741095690548710959495008388497317575432421997026555063573244237990261869662290493872243329942273316769510002130469185032878599889258221988829129124268232043737325152485415804677441054217288364080027968210261120399635698181556563720524418426617756009680234514495179550002422607311478683346300882256373280797752451165175051654688820995025568299685687402321069247675504007284201570742363160491268481309701530294188648220824706461757502455783269341654169011294906069742522010042033503637083220796716934408618166027342450212253603201782934958382545334896074404826744689426542035337040699030275943798103058060288954567555028213405556743496859530325681605194743921354470111608845081707706113471788566925157578090215223554638389140214175000864056144642661966382153190896606564944867935648571885277738478235952653819045445526019402127280798302738969592828192387215077264148627457655302912071909139064373112779887370101427354032130982300856186131051683588132309846475029885529302491264260260019773907415894681774912328060656405182216350878683864188202904977344532568556194906319867260935725540309425874695360216160718432766722259344882379544723095755426666874904662518755219144182665659180025661664603746865735870189852735874245110470192174362771673197650808446693915973013744150500542784348719077488143396564500409728678409862958731058102145434796206396473894988135413860626963659489094620287018504156447084248339174151809933488776078996613030758139404030757203640088265518534109194219243714943456477878790801220476777255392579267033228463301704185972499146485775267922323174869492711990758098797168619367590796487533198377481070088960464264581007749023557938662930024852420305092684841450358284411030215552125112895285378326112124036482274945329505287982348460766894553629065049711092484960310342645405648078016458387383966119778092015416460241922403425802315902241060698101838371564573070591402246271962525621414391732325864251266490608485672178183015295363208748351787510370979337679277225499671139540862501695074163253301993738106579060072164157360030487992738596827350336691013585321346591672779100369515877756912240115968266183585664731989880477281592772421861027519322207958236568328826335355758193115027098676254545629750961874610688330086409718579434958238804523367025411649185783686569356115010954847421815506831721996439994498250080519371322951558535236982980307313847242057034492055930707300401248545788539539174550720984516255895713575398212484605453587480629759014425434006200702199732518577442134768632376393975433404400129952259553405106949467882308035846274525163272981587009587387175287016109425152362046194501142857807274141104145866401197581781354890789375702403804962791183245133263885022538066249889396240879319383376911363214866419155773487548092123646246027328761815006581794483794999497008837274540841043340105610256142172016208653010126043209216640894225270778740697864553165852476778190627547796056847180610791697267557886274386757821632102070245993187360373958822233319904830163288450421377389096581786304027930093338941734527357918601739891581932179756416474709159163196302715159494521077497323734817713683645800439083036491165013048815965074467340075963302538491540746401986245856822290574392508967477265908509471192847610262150279445145332524537100896483745586593208059172094808372017649672427575398061252645610222310524071782405687848393957508634098798961137615844544632016753145371271850379947659279606928649379264703762875082581933657661631969494560280960055888535842598160780393496165094520302707009701661061550073795009092709486309712519617688943640075682580649323500300575976488850514234459128340318980960848795342345108379887639908328387617727076614817238575133079362426490529782522240502417219383416184008365689299006829041601474661102856305203331525064338997470578410177608790378560889749153939748897880130152316219155580715805612626599380882036875828397052597600899525730153146271918655772607576194028115903677976428671383611546112132451892036861579342313073530076487765565190557135561851147519767001584990082739012867117976221670307906569081809394293897915551726499257366806541614190890143999202076778825188922352802197336869361996244568873851361522017451987892896653980125573980164889314772997803466539347807952580150931657652942294392419530398718677366182371532963296058709690537841489723510859549549585764341477980007075624377669885670621577345347093116665113304410219974244526685651957635816462805161055803310484904793842187106833857154174507144267946146707999189810666584620292988463061413111804811746535763236020183177118002518979644336968767122199946106361257708148368161468250063645754354080592522421067024869757837823693295995019785013402281209160450020779908778562696659906940534287812975167692498085259532501790489052198452885321503767010890348822356395728753532510900059678672283477674929399950951923041105323050855393147940530655397281273975702630846490267030337267061795479966183122083295678565355290284179704987377305903789744985281061075635745766679785143958093967584560577011813110118075256643767744595976813313676485779549906424850119460867407733948026376410056159083928088684446716496919238189764465854815157595704179931819112997447988576700913543960165477383886197665052316488589299979047338028165534319550896764824347147378189825326412342179199345439391477171589400747801669136702846568956513604371012749391102525079730428143838857569614522272814755752983744380225880959070598525464313443815456948838513220283051406238616612824398322956135828543079164835755408882351784371014648766264707810761693411018752062236319542192947652192134086251449906399394808163693162552314647258877453272366714441886780511495459824352190331353482534966274442457384914325935667686005365624839433650068450961963138630317140757909311345506074757015594297815594355907693427106423679426741368250678050667008930838836017975580585825758536290627392741305720603052787134564878979951070559383417457818763807034583212937877404932359852043200103958212082007079183708937624322483247720960536508564066347571196286728804524186860490838374374771124688432531532069754314025864273306934755430418730432943811379283825992870948793129011041453072237635881540106285278825863061002716911173050156840055113942142451895459471278648667477234989064986149384448430944514452350766634149029190053146275880615853994811595150543495797505022999946903654423611794634193361888692702574471958961611035690012307803307931964878244170344371943522501177086617235418738530804690539154653384411116046386009829606597610730726903441534663840915076803680310651200322695104526177926077982561587575269782346163685808650568850908171413672773540107286218422464556335026942587248102271395630792071882959613686249915388929206514907652682824031088113243379840138462833363114349786975139979689865340348108409356640740441921577978630812547776661881230274312104964200219385841475992019064077415735218829588460164777068916845636939456592779105050887551005115991652487307757767884252514264207659676944336657875033838901334530977700057279232665912517006047992103075698186402642224795750394602008446728341925805495189353126158508857966604812022864190784449457116572434131655917188176301955087366191440584612949101487036081660176258247493009758993269581765504273284921170524889332442354043402368448912791908900475552856754690702683047966785129873201091952120441485699451924264182317300144927671811460341306128388620755091765602068073782226340003907498886816847423487616316380499532827979804289745736194766260741700036477008602191641889599289393606808460571325933813227944992948881362050640169877909262742763693078671482238237737306843264387715271457592749814707809055636980609152359670385657035217239141068844508202201654779407568624884379792611814799740320070687721413262869671181884989238992247905103233635855720615206465815700438985497457020201373559588859950688795593365181289927521566624215890011705368012456056486667768968254117779890924701509151333280615580521810893223615477108855630852336913692795191509085728376798279782773029504747752860279417590917659208007837210695992911983644676393087915131801243755787135098895683273155478524889023002080211584673376622587538581952921336243020041802829822938673436303897683118817258175134541395577134047377326080006096346859372134670782939153405884664275376811052510723777244118904629309971913691731620076828574212714144661890963456490509775531842448763718144611765428636979711034458119625867415306417550811732226889479599796884778182645208986857392388929994886889483033763069097212909529052433711072366079140129503666385686111160660022421514328641492818566281226265659848567603164479916323194597907670034753730076979645001099631921078344300958310544510960036220194703375524827229229971621137111445571284488744682109538645893609357631223570127846409838775590036857851725287859291318053725008938748437284818233255315913648344615359810544656937653368882027195869090372942636075143506649963926573780591416773638778277753404564063469618168574286350791589735069550504393041360970828359166426380748950157221219497039897023152925322433681048493744908854653018977039732944293501444386105746862187105833565105746048015217031100381342538992269432432214714240324590401033059574221482830358647677447417308575202786108520074464975901110747518518256220052936090484548146270402960659778134783544887209591278225378156273589933885845387646088941363083843296460979706591642929121365413386815615062707764183300326858630000178857649506631609772672674584449625770627155839602940965460100218481515005150902200251602541157123164722192437785125486895023555004980633646555584559372612620348380558545861255728953653920186533315101307100033184744843343676315192761955167616047165659998616715463416615490662571603497360212325987728814695777407682127925870021106881574181235597962635604084305995804879950711208669658584418220572106144288832625215975731684444237276524485952282844527007050894289981591945111213018643314424597916321990454993066817819690450220451910859814809589400348142470121847940923351809798491628964066943254357542224453961784925229046471004437275674023916647078518268619102238988525365186128665689206528537571396566849540979125635631027564410857354955564586079476907838005813341919191740383383104061634226703831569583346769526536381046222966555074933912444125806015003598189003061758378994332507265463769710177666544430534847351670986256432131489560890329775788591995068949009608518094176004181395564715095278529659705446171335112208368848459203504853997427159341684460858893801417286979279763055998161296273756183755071815369163434865495379605753946399979406834895119937448576876178311779195096101365294462575783331731935223397447880152353713075409712498534147141601590491987456058734544673361433395607714278068032443932082677607174730786096586822744359562202203282098481208351521134483392210784459527347468707229732477024933611719397230728771310087628175299828227242737249006789044647528555703515848791853113011361279783745834192228129900858244532542437268887136650819863684613750890300763299570331205941410321554880357263232404134811977420762451292915190902070050721611070095674037149661300041846595825143410741869862453616230494990090634655866356663253010618167254948019875382620884153512701788817811417689452729928409084051701256322898490722202516652832631985908722742263183712556226604453161940810437189328197846670573160070373145165103250820791478034776141173407998567002811024212854691479610504991474532632934801763624876184134204216543288275572026137423999510981338452637090419183779626857126076009514167264956013659243073216947273029016824628219609944850394638727116087589943764245952451673619891249520379560768057069177595525799034776039441969813550109779329562836487704402868133406883978161413956092466245140782017607717152649612149126323191496495438651227734785667945811178951311884190541862897127366265908343102093254406461232626905504662807637333308381298289372527754567633090579402715610858216707647577911737329138058863738602801271248507024261141666522935464514463562412546783398881430286592634321124413323808652629763919000950685226746295414204472438970837437759004099507084472205354169432532235151966540444740346130713285859585354802632333273227531365517382018792571633330779628547975289048207407054090406480364377686257340540378634254142826271560902895118875884774779392153433069659891378965713158129091467468497954264990352300526082345561954522345522374025893748417204459568293327015144634901329572008263997428711272774636401526085380227120971416926394666338719384426637040827870718156630884767725416630905256274792461717187198582718624631325453940909592282981180140820080816747338979513450145299180781507499115774239069415616375091109841852451083097247406428442055468007209649125681824105862617366943715121151410660093831674864734980430160965094678598327508432070817089995040877364198973853864334526325017196136073384010636029290585059928684548664544751384707775022223057909036129335127754903447448014773300452378063530108822947229667146928902821127831385945282393811335490843394606127089395934759928623247005829202908431202003928917473527246130792203614520121273544888772258244948388938933312143865103082212376675222439449831959171364164560842384820706943318279101799154926690534696556902499685285005176534139009143508019735941894236485900703488585645307080210794187388386849660828581579354773558928151647690951187155991614072756343248428543608207015680072185992326687489986684114813632084215030994186666996865923202449947448840530635914738826309955686589011837762059092410369564465595602689868210779745565115085442975502616097997155611179630717128083727062223206745534176656097774738832094744733594221475567774541357861868883603498662085297987372901184864297045430475471738277275719507484246109717930815339600839079300023969028291150904649657547175330774298069576527664601541942614594059757474868635346680411678955313951000805320125736541566745242885845839161757346934011560419324438394828733624437839719926038741333943356563778362509014429220386919127427913200260625455443366913143017680652660625207299616849459382146709859444086472388584751077026004348081380056182804354914381808091341944150771962937323919635354756924428583570441480893009028135821074035486215423688141249328665975914001473766397203609768681878482626721472464123376815210628003906540969943470430727680663725678382899292478880737280119417386467265558079723730906449581976636826810810480489297721895245099326800169320393023393514472340477193454570355835191983425782160954001778735636861455544670966811663620770419810519252003047180440276756020956231787603112438845109472636732310192581778446905841517379114949556027739227898319820223096541897605347526839827748144019288170426961912404698447371298480694431159390542175605603428056234410076468988306045457601973557964996373270950618011576393697579445243546140103796897919239536692942023674819420207945976182669433504567873635852865447098326596085687540993984769015761620375263647816246549324255083366869527190543672377605748636616739247337119722832573618619179706999390533415351865085709914874463177559228911056388788768069138301360387096072662154124662525875831508655113784320823651110662453602228441977615154673642258146414273729642444112902339697502765475312695181564298446074551335752061304097988502639581450937342629017037484872544242826100529780992070969104922759253771249821197824783855431854634582808011386160791131003762645338782992052737338148819393402560487477940987256996107803862558184769095428182280974116936240352920502662043677029094226659729174404243303733582813943048395305335614707544929706304332924437561483124526166292781480343861149468698959699046621381309707294593253232915697855159934280598762020699706156076531258446328517448474340364915226939069470696229455337863725937460882685032622433997057646838711145972160272149787111164752014289293611352258622287374292915931153686438869818055199247143864336941121106181242629584412449012098460600649284597429844353023790244783397050834573696370209861941648931766829269033484244696073024591731175344874391227564357808719995849068202767070969150325798658355079062861207869188211330236665643163398471198620134832344382814903678742239871657025105861515468512585068099348370245567094519234364984647345446274407341089000869597078261602183011728284979019734530232816874022774128005592828684257791798625628889737769332129262051526519983611388514730857607446185696487349132228785341827064727555707008100641791292990209235248182636078458838911258204499941601444368276049976720860890555227228260629847249659401905057442270753263698814554036316949425957544915499949114951171615916388222265956370011966483404242729659405430957551180538757784710378729117749983559485744182793142381957752668640868148355839851953304418860133697209648892744807358848831840432278915580202436197551840010932821182152555457946712577636809650251211798522043014897963559486836623671244127204154982061038854530612654046773000887896777487785414867455423168705865947773249601193985358879202461663163880427117360105476729269734118862186543729346512712657271935000681666024659526878724891899686416129584900348648861266423219510199936625219076164530289052862498348577232650049539315511561751609914301759393698554308512911477516144449516594917860872507730842856389107660806662707697168614582320977388716225355272767897160932146299486489668253721188319221049429702334310854867623268993163160712143005693077746987707621440150556530721359841375956231949787807266919519159186019470950861269254928834283506329059065858302128748583142469816183829895079168434940969234141325628952252211537441920555176770924772830035398137502900751066039091387743724955801507333750959087350487321131010058075037518811680771470694005584435293246862859771638405652301938749786793587721965789846047486459074361674631899647142692177041582482722865101169588535217639151116955054666332007682676270193035055736032732822372621298753588664540373981066056951113683984827433730858405812945542959247660843038165107640966224948524733306156909274317385975911130203395098918627685819588294161441470936389729458152328469829765550299574405703570282755770329425075444916837111689623349739848871464784945538837829711235480387972651709266735934450436459120646575056736480060720907189489020721778555495357429569200301763685135012091066647872607447352167831599344392444637194074975982318704114335102324452459892797149902490656435907987040763865415514398420253390509164687244565413457143578433811963043649720912498860826649445538144221239359214806497372659569495371578220980302167185061855825763628111873370567274868382670289911227420865403305915479865883081797676008475558795904373044701125559054366030600783620623751739943649283624189160608117480514404710718697887917393156631308991773837215652642811380111552547312091992709118907617746496737853114908552330379168301380838105746309117994538188054623199950020246368733639368014776676367975201258780930537421124381781766084865079752185524686561009111966339236254903021577708177779392296913493102029551964744775988208343914742946416105454392721245997506696751744029818273010990609147623160504214120947402607294659610364930287333667565734517619609180487505714234406020653081759314646720904497335167284351158056025359518254967439614742575319575473653115390769970862411291907552205739104575061286499615168672110158121677878435322146459591369347733351735086582936745595587743115088552121572148990143199309394513250134307247444523925546253317544243684168856515637152535012896619256042269935282917661632456493981723972248291628465943582885016271151317710607677936248386379672380120986766541042481553527230103178242339651837173500299286945269127258786772354366783136185317312524316514143214828613436994777779854355419812637354551330765671781413195187296152524219682111833196019697820572556114564338537501629799658672411156168996042777873169489238715684983872257029312145089727539769832528399107293653678329852562671692363749645429336967485606151682072117132990670664984495870475677353144108388491079719004749699697192691084137912946870202995543943923700114354050812752832962636000642907344130007934247469664937796685084224648318162712516029191380524180710733950455735673535473225697346664285219320293261852371603798263249043247702315956652763276514550866253418626357060480018880358932454238317930755330674897888041304809189187442419780925820383926244028173948957032526845573037146358648121369993974435827125671324225057182728069391384366751326366278560349503879670914557044419684413073428346546488906771132361676673481228026545632069424369008470638713434062641763451749664237654147689049484898433336358171305977574916470228031167360762168068912147217443509705642592572941878036608389835671197194598298788840041979808469001151564142313286125155076264110219179611196674176002785382367531397702405544196685323674346265209187043378841983353064127871932132476753966709020567452115492894107877269863081709523572889615557543698940385395374603256403685880613917342381147162484678470236224535081527687209590420911759124681919727260725488020675827002693304746629745205748598449257748531105960385872996463985925480183818735385872389029229991273076736449025494227496719259985904489340289422514132517123577060159914204393833319966421931931594730938298398014038693402097258011741053470485542050559566290583899196258965644046046857403949389283187152269856045193603509320997651508087433206759150634206914498273413806634809198539838614210951738333130718691918924148682215506834924461524543719313384359995458684183648718683439743857349441298756247382311148247240158754178156992955489783240290323072444321396673071406099364910582171623319143972826051279260543885358748802172545378795826479211756435714728012670506594578324554039364497951222680918974805391231729206201181870554654347800980001526660725081673647076968026186817305279584868217642029461958378354935255469535034575954725603166340370256631261501015316334189831564148825451265722903643510398454203986365755698182846555671387816541044910148190994786926853699174888643178166572170579079704124292635766140972058382131903479825686942220009958799503434415807249108207509394714775216371351420090498246305949214689528381549255887813980131415903673566473509168718995810968242652502419663246792616478151797532942052226207003731638240141253039202525418875755556302665238495986212923120620413431746540900317301997106365901484177136743856891337468633499442660811634780807844619637044633957664126763757662700375617175445383001403485434276675280798443235009966375192151394323732489479715664321370005182607495648905041935595118795698571866607523016196449423512251147020669550927228646753616536214902451011319956081862230707326936857706013862516923723876148094690802972618179543083916792539035789727464917510253968545863077993884872755240510625920498743196991633038595079926023020822991569193218430528475805208924215980904537001945727678438947667070061106581560532996690821154377281805788159508782105167341823448824796543633320993731335401133683802198708905803817108071053978563513471841640120724547501061142662048779062355668436150527042799602527086761341626503472560047635054982790998278301704164374684022857470426749402967677770131838088591451657520276059668170970353059984227270852234185106158784118244256893493876546472205124884595389749913214808118911718555446373104095681681100359600823191793633055201062877664466147286462846104567870700781425929264715301082836955221596439479638394242502031456964128813028379171193062553689895962072313767190944223834907979320606105587375351786346545847584373683477909598517300418331645272193274333175490287961784148560187312674780605123582150919724182416237182428698745129961466510138743111513434897981040280328218832164072968527327250412637460273548598103506276990422001669237390898541960378116697629009769494891725014659357121872503294322130946801696317090491267167197634424238602403313868375800948062573037404633189703631580605432384106325696891240656248346141041819833469157465355712198256054126925470945947415340133004885707805795897331764931888900052418452884060702892672796608503923719760518761156186191489848528028105799620302417186548846950548258940290009311486334767419494005349347372233920351266867395873602004771936631185383665728113670363858707933656069653525046801079993508935900424125283601402216437268254423705660809875689276428876694435822318646658838701459287323868313268728587301871791028261281168559059352177534715509234728515724361522821359475667737822253747168525584668101846369297408910514759882345834440113824999078480868449679750895587622389954400490087330384096126946560826179028706065478377561736703708702584513156515632437732931587520100646360152600796776800736026736536304918145746940798469605664871938279520413387780159587790287263175229104923884622997751557327332751446409662694535821091409268848311678996464105911518361122394478088228261354550862025944965406357941353062994323020456627032045877713030153566947018805290225648408064429616246902246048548244783955647023382036264495453957708206335598006712203183865088477924724499743647392958604471600778203853214108647307762871590968812661127849870485436380065482215759841353646141638333338476207416006735215860295913856398239239648068205571721625871947878909228119985329671020850501102498561511361374068272346621074026749097765471419226555560872892603993793377811348096310406185771516065207661958228141867955055883291585319922357917214008890549435959058621352924359707157487947849699280070106728020714500221943650115821154639510269248735731676776941455873342763059846478538899570353414875094198044502145496625649909976430375089219981733595034820213457808123914771180947486930353409200236465133564554459478112605048992573943349171958725786634677828973901708054194977118495466720868641465512015012542377566361528792876200210969245083052768644881161772835189505949662857680152945667313488589155045218698687786051167900394812955984857458295278121653886250653899486252600306028536200692566672411277356573096191547298358407204793697411228847937295405848102517969252243746551632248181032778584249725064101751566195897531108244604441002515663250282283938884259380925027109806595751917972586456658400284732655291420395605579843218034682968243527804085865288668358877458072175331107216863158382388859565604634940854702840071712419959736307185517837015459479687891368574523890434004117851646584387069850732634673674743118198123330875411117848511184214541051285618557165747652706436824560000966468347712782844735717232949406539096213881444792172029786799397730156997841130525273599520424976497931735497346267294932615171438618885496618827056105176728145479997466526318830477455675886766667191811887987536816794471957761740042606352307419724548931140534222855090793914977463467475273443600824317549709069269892250214920669592226866372433962615363600279590102038491086849360275737424387372652785688080352639295420647333654413811753505407611472050366085657567971697589926245336949695702993303606270273186408556163396779748456166696322941378855358002818890663752716957085640212439022088381859842127120024683135232838041166134700824973222409043022975242508939810580759143638106349635700910163222404997254457276984982442901337837539862615519164277536451271083673210362912936850815174487095090148831461354455085076383444395260887464788618716718379985555221821356657693518793131294637894802444567338906246489778180395136177328362952094167187266855207582298632801719555188809199558678283103296267627715323988225372344149584467740350682856286622661407249853788371075396671635624344532241888431811940863354572770499605224514330378497292275742879970973259601907903519046152381377589089724122398170726032112277927183864324246419622274491860734380052698680426530215950772307168537200318848221187379162236771220430293935407312746222327485560576828677742954312543197012611671226420150801533029816482677493915286242520164713711177140855335489951113833322517962072022842562740817247425042074785210543535262367655979967456485838744391144690177974616074253265115710451118500041761225813204753224997967516357684413958416443446436100061744893648974846202895579075848612931017565012299994191555959318210174026107886568749867180806604024740045483738393349724282693666946983415156251373346406442424950873636067079857748720797657162286296826523973392022237204049679964718594270535096004249936377638666609685681660423646578727481957653939569601619611597415953419995434931024754727000549911955551829166182466600412666709963150744161524601762135311677290789934668434676239190184278501842183997244255544462550029481437226119519268798915441638891914692281151569263335787831786852160312436727371564476520057309032072052030495164553873847273176682649819712760219672243502046744513551093245405071198831734841825725842808324684752081136508952561351095405470250659626557507958054170663870114394706373817731564650357690914681421403459121093827996362209814424039249995725346027177959559245373349188467272687242067901194253300892160995264378429643662811515423590436449460778671299997116729279539020478695767890694838311245184810736207890440898003084404762349266018994129431450713492480239385199076006738309608016484922508178025477328237075468223580318693932429089373527673923497277582927106792955558259201330158061404426644232157879780464351074986193146972693250522452368404924583477214742778072324186422899444628010172008828533557166747100979440381764416844346870093166479598779092093688926609807699850857351489265414818668737265123698375808315585746628505955749849970452241340382361914185096249609045931315273785751520178633305949620151774851632179565913970539560077831345306230575677556942903159449501957787117015236104787013489853282690475685696203087567469617734185619136155932808154095319131485001850842020691795254342494461393615367592601915001316733093658152757358554706206173206678926725022864674891415389862429323589550336502754876862155803867577636894618587880813845059462483152556236291818651971220910333331439422637108072150235958715201232888272945079081173612235112104820654318003721378101011412147527765702876087393995080980101674752753884225383870180665877297123403822108204501137345940544908620554434762905594629986918931780932345147276099839101006874171343249208474754895988739170874201658721934525295370190169982563160377086734917349406610604065601475547521445789008119878005790243026123545186383507510930119668454104333544060445301882134524551651190228312498348132958232532931138585045143561065844447313498303320622958837271095954775534601346813230483352423416828475329080136864158615923817223287928220455535786419017005871250578040643935530635578728537943612954102941092921739284367864691905263738563325299672935167040568189605543787882982209376204533642114300548171785129458289687818461381103845892229917733352176200254744494162115608969831063714460315051010417646578663975547331027500971026395937072261339328491604419404308215564067466516942186141410565979681841117787429217133452733509419562352060291107141569830255587579517166366384260009190543600235928154732490765239557554408801490766262226491125972427782153439045144094539015946751395445299130706457831927519202987584625663327923200911067254230688618356873573478648488753265874123440813967261551623394258400796274880195810056814138083754956907990514710712896643723882485414544809728407027645528727128112511981632151317071437413628393610879870666361969074018310446775664503849927782168990121415536503886692388935838754654895348582676922060520522390827825012705249130856140471144821322990825076028145032162044527169451748097325851214349387291615283380742062753332896828657860323951381260461604537411440878860102430024644554540434536680552178406430815256424306135275047612282132629633213178498113671104137875879291245254039151650187444982412429018911197812111581759127911002440548019595536501280640675447392625760930285487221828870752136565044275217034489357677219846578155815574287589338470007756701543265492074522951512848817771676154062568786601365311406013330855022049195688317776405183923278019681893484895001418246218201452457029962643039940660646564981011318323446196685474816962165456559425608007960772823570346684711592432941653242448917462487197171398506840174455307365364265333820148665512838222596835107787311294367511310074072514733738331106970251149602523881443636654678341777159156383548924392551601809532085774087654350661743573578003715742288976849585663503256547247651898159161769121970296494193712546160511374571016902079506423760201543267658114898879055359751612255126496104402910238878239041177406712082638749201129458679362237607372188872492622520629552578177994888048539423532494527180111328103951214787872133329528111164259984452368587958623754239712163766883930679310044064545915435676206183777354545678951935726739554030380453418933922925861312193335167802535652546663994570729966430634421628928839838050953564876012223184349733363991633692110100468635378032297760746539122628235199535364038400783183068222005920104497719237217054086654926171158554523402293888903602951690859105342208887990438913316422574974063660586926600565159790937957081705890002705197648330432680886938606123692154065860230479749076074420698157300616891790545154767409364881500350692009370440376783121471717390219288557857943899250014462568058969233443949782326183737812124771150340292266055050770769003962960638697195633877663739865517621734224400249447897663438655609771218993835718356943502491841838722499433085117229695252282379367748063476198023439714639269690150778986357706970448010842391268163172885761583450284536724139194669773592789224924027758511297578641196167418665739009399198103775782169765925325517241979687024911497523751887339906812291801973069170676605607655387745068494803905617609870372351764176978413589191138228221574604735840038414074710700666722275213881121014142484747222104681716552838693960532025508155854640151230478002613904986907411904455391139948397093871013589720084668776526342677982131330099579127160172781790174060961354318616102087329099207147619957221814750965001806999757969203148688930389557018368020916761402517394843570075782977468667037917407588317781116811191601942582240288455347098407561454573077752518371045956465967246525668300311576306850213597432612031261903769887518258649399426928474135683087664125568456957740461803008030581073044108679429302369646760313278437678421371533756069047359408545593365093970119303081323658066261122900725824038431650364661913888556352020538843516367645445825356694620522409741138270823768222188446361192744580555558592322020819425439927271425119298580668465838905612878439038208023097319477290758734457248677332645609386960529938056607161123829607954815645057609913104701716137205462167116600029992222078392259250539397147239814778068505886001201518592210627999674564470618129951592521926098392386843829391784929259404806580915726419880645196492730764187637949068663679861750550390467494054494759223028385735893808318325314567036470705649609747838624550030440779933508676547772054753260955401829168897840550346971654333555891791878707854035551808540952457702301334783244213134789909220274508810281542836238227620931535149166192768416346326579788159193698188969349916876406669495306882737336386908454106054089215834306784168803557862906441802450070129704167387182662362340187486527544207545260256686026134197728369808547068434910474183747667159567444410662971480616552033836881429294464008331520665935407999424794829352321717005615386285916955741690401189843842646775980940579916622836874017086680256704759282245318402484300363369058072078634119212683236445665787454460798760875262421116653674579693956187142060287978410219960127120637490452624019625032991749094018486266182836797971989954998841149902686336112435381566670458360844367562888203724437142485952820193060713278454309250914670520790183883984287125789149277908324885120352804198514844686315374600698967562516322545796972371326291201772822233823442992345883111853809018144089472335552548174750511171278303815680373637663010059475203144627861764634160731640638991542928128324205164791577522452721950287290527654503196242776730926249791015151391641825637719330472366176324563081980634922893771082311357433003825812328538445905450212772416590379599278437674481855639288744001087869559441417192793630491395588858714192061114866745726328980810363083650225900923928781791507474651268112595509494804106693124302566910797312998461194372025286398442937229894387944616827048815541353803876348483336853608284742119081773777173828503609597453012765792260510777968224694374183709901973064120791495784992448138875513535604725900177369214633430754900348070280411593034345516173692668394840778980555398199995934116485342566245719844491630027085774732388246156210473483865591253388896351615737665102394449372382342938999072168654304673597694726350779581038100517266402383903586245136432481562448116094521046209735595916658869652152601233899068681326896188353298337407244008635262287237378437131516666053430371879156568588544295880098676698693847966805626847470072114979093562336980136821556783338495593277406865287422645658427446739536490620822253103864249261136386411730803038298561499600891342262972923566608800970095252978421125615948650357900955829987206086073639772002877615870984229494703286848099172815982277239658270247969541432901644559564607063276467243689371428315181106913386615287854370214742231888742335984565942134074051567924583215967989634209486335185391268936513866196455952189819205837924319080544773294548693543656212133944827287568670246985742836354961213998772991623480981811993857679142016871942994363614715848604004579325497512687095531628479149054853348578502498852995700777947609208990943550653723782832071793438961706592530531244970813073901683698663223056826102771237867607404875095597535434328563485576567032433192743102446838046323042047654380632682844581949350963554590133222530483637604782933796929852912598068601974826773309781222986714171786145426036625402013245266405902285014305923793607901192503582164731926092393525313404588065495903944485333465142941855498133373541515239902941605965799282045443106362645255435731591830071254753952727562395045404651021148548552619142746368641130189627459389476244810339927142096423877719918337577866767162604289420993272763224435664354632644099277822500845858013656278158137358120244275462490544580588957126702136712462756652890514350705098358173508367913870424020783612493208280068622177404437219655282543600591845569427602364374025811931902540866876076886563734153384927495593956287200847712910758067774125347661862402458852411616118773944289725962551654863366723088004803587375996590525860854274542198592347172625585962957820321379798984314885251728855619868351182260138777794849030441646157409379254262562411077211284154004452189567077712089658690274382647465660679068136859206547160953404067326793409458472066747824055177159720604422659496737124975951774758916093933001515937990119005427645869690127207164761437778140022272349280612065937055486968822432181369755208015385773974421466896520471714687916730421598544435948715722176945925685934812126648206713329577982244619989461310860119610637013450186602240475863385377609807025654440167222559347544892908521484177854726542296576239236321021268908138231359937531918875216728257566871773768745429498224741866931042899464563199533356196371651849927978717817941905251293875594568010925557091088204249396625322381038726583335772686482903080356575976822120616194849014971216303063240869828781998170818210159642017042461658874514704539612496627193133678455261522689178703832591250733284952576353939404872036404249860916975061718544964414061837345248793776628178073425770859033306290361653188493202208098216350595214494486771152442860594731608946866655306430645951121972311699929606152864461302069227058546664445749279397000465995308291258967071306594574985476373963618039920692317698294193132831694412186152757663500907041052539935294955148525993125718305811040120239798109045136151869366579940633769494978878318056199625728584874104115243703116167163615028403956390234122636356247885722713733689766308316551585178342922495057707087421844315276676570013683366743177100858902581060109306224581871512324703729806926092753564636016181646890941199812738115585373567969794807198276525521309429001612248516872792714310586241275735335022366198109049950357674264733314458760488285238620048781853587312617809756439375102950880685720974098578194106308290873873152535254452177705380918230805038902037824781380582912553225943433445842057822007646526744785935047498127304652364693494997170921775897751697321763850923137795665824456705708010712446379549887615306561946680244581904703682141802907537880825300290711863996243211211825388218039415875538843166248682642304900207005648148876124252710838517275916773934763416889212270374889590058211758722925407552208358114486662518814566245497041742981762662770868134198451837302695853132252320998881572530342248205051177654303073034438371228210835424129017943016627032385900125328203608909273129988326243802245505273464624824187530179826216863874074318643695496071430994365680038830090817728160316904753660208433991935731761078024563454828223479741632770384797730305081203475101553599002940950117611859774149070609948083813262251933950879385862718232245217915972940388326615793467478374698295313675128359923611682444681704891185076025089973545045679427952922263843230279846172943662210055827910354020234138228808088591918958357796153457889503418020565049739662233817552379209065853026618007935303125135165894598449300602600493873381849623403535651680367049988225357591549810648359861872422767008776158829229606995752506641400181115095813718102212801112787500469799656637468636449112521374457543078167021325056003512420200199518234680740206548571830262269095414184618379278080590971080518936813718465271551547101971626848945752186777790478869552700305712773585008727003483893265606596117807565661082929001048240157880726856541367476270332458708775681554148258375718066490185672737191278794281350061864843469262018545017064592169870913135644403122088165116185250896215314095047610065354203831969574823269897262101726695234955201583033192671365291451738665321739735186038773741173029037583209222221606698217495720313319032288424683011281781215344211307058550909870716500165096378707119891573237746325669108992471351373822929212484857857521999373175131254244743238941720713544122725415958932455840509439589211123649990883408221167902540550684561905823074311195114258565978726710273556476079589577007055386223124058878612408626024456762921940206151572432103900562489345851809606989770651666811643270794255539759600994750099241146819958934247248914349131750515008381314179388276350579389538263404448802492472211414053350059725091040835665067419423136207085282298552688351382651750352104261306014749840242666613655500253907998551649425784802331094619069434018069080355356198215444595659714853221089830043205309641571339439082676227500170860409585183786755810523836995090455789905359215561102107450317888035200644065223516918227919872608458142394655403110413200697606963312656266555276034939774134808730452612332235943277086757324461826759334337400360473989767113033668968994770205522894368118664760740176961502392612980415486844269631331006433635702068715975164906066693972863602795646982678262035696176179187052933690900385156121021188881513839717507709756651962472088997101504071414483774260325985813443698151002456203931103757628851276609872300128587636224973104415831904265145708325538385428542018195774184551021556716075728691705786300023780295079697129046985288723940178974012992511996610282125078959984654970726929510397189050213088124668487062359721458623046992842776255371475297317985396350097360853262440225410853945440044588604855808769107529456892727386011086368314149006419260277326467352263737055121188014718978641268361396057237286812919456297495314421406459582513004451305386655339750345229140949792522788499518251382558514972548139065010732078990961226747434764566617088205346952959273229987931923027340674988078325613895547415469368719451726339471581709892545141488846511559458535309960776786616010032019418632467085629180600095434187558355143852611045912979881411797856365604118081460351119455831885728131598222144668819400595216044802962731225901676589575777241163223247941705667659296797934417041493613126179731105768807569023941367121368663923564680771710669528321859375502812411791076282036043513356849082640551498368830890565062623819285386533413266403632395532656008959262622446836119063392409214122997263381171065042594761956504231623058018076969013192742031739863219328853084709761553223995691849501593271034043935475025325669168041855622279884610392217178504044335756212174169116013810545380169868350903905971337685831701056184559752007999296190694199066103670117287812646117439397735873902736397644732323419838331629697812326698460364111009718733501807826237996643561797999376162947636601518168074231248071126480139629212205506351157059647181859654826471226400351212623130741086849099229146949720772802263600654099550315305526607464243173228012330503586811002557114113465181032955799985053388266036322186284016700817038451019661345536645217685333019779602180000046524638963593140297752504817529788391793729768827838648188824663951067916171087376751521159017038911027642109438105394162667347729696005190633517216492843296685075528072115317264830426222520551406660221874754901350980034782364455035826938492404943047654752333576500699627510495667835331261817569370183269387928518515400414185914549491284517561575315499045279846195065504203875613676873101387393350850872582861202182348805372656034914993045794836791674337076911833477773739505022426181165085522876212665271257205944510008224803626834788192490554918633823706335402183905319494292581384063789220109302507828244831457598179511913512200526805291466860392080958088243114937398749061105507173595994922588779733909352049900901754095240165079938097230579670893221239615577324193310374268276901736116927780641902278409894120171067932899404366254760637434621036216924383836713571274765791645973436103885494873451170529017233205096844310111058865717361364727103519724734871709031390643697288304805422946880453804760960446635869781925553551037846355624157855185275705314371401891962051920789303836191885205100027193706259176328162661925843801668708369283013450578562323498595202997073762161713963249377021265019022509957805319475707541401072290792043174413969064323847657498540609859588703128395752020787871801223732112691467656751648318429926571096021620622182562165227901885184306083222755288607734327351694185366037490770504542076535503233990413131987870545194774872884980091479027736705002804423048848606637740554026847011468810806824331544415465568409602419609525273133580356550404223380349625317826056550856092613909059221694557470038740030365169456559916686372514855895964397080814437964368528576184834350054985703553776874088950723091432727085027901419659693787008944112168289674237349784491719472577849518672451756053573229613888519784482001884428279858893983485444488726839538455707934189995627123747750220890190934152998177263564015477669575414598583964312791045539118779528073578774924975937952815599572075609351895209694008322370179952875592380921014707670003267175280446161313678884427649304872351213113508526266390471197638093284752020174673959077229177887574624537360723468729513788726920835380828820954050792627296842679716759260676106277582828460833516487021156634754462266223264851684334862418865472805377331763502817807130291446848970552763562044160226423778828737050595268843845074244651279478227730528119446994769610281491736559047999502399898348923761515937928760313236963732367055922884040953644353173894722742805097568294665943620980535952271121377515754698422930731499221591757300681212376620804216995140503589705012552974149896487204227823480139906856782321397997993058039166322160183824191340141032012614164007514028017814724648634550884002948896754567453229590315917406660582423112076406846420834842926160258697599984151474072430853041727731279696932981628352922369907378004652715699595253820357784629962689941869457561364123546470114982630960958705536884233009257337599371738879638793820481709593499465157343598350739078924881158433595503924148554338647826177012530185782069987529836870039216787850187546271652537309479232365048603025102707543821138933601931350624534162624143103796814772400287807543303556289609306580061756218798915825373425712872329371598680819819862037513037208463408364820667735120706909899970375257524601018162469870388435661096629213031558126182781116391604952189932253416943255870905477941198786521645126838891068835292481014121216399725263681374966680216317623482322967383510842169493274675233236453569492228946326575929196306994114115035520329030003646303228717642730961293046488674763498950745186312338113516049598288406691311589482520118579604596413107450348380143189335639187631056089294729726591260654114065608227039835942449708571232603697659889355047594055212650099509009641784683076853430209060677196408459235392161782660331076007588896412158889807115626995031932328775457089242077621652982559486669965723584646202639784760617272662998010586121163846642136524395433173928464923347782583178842072297941682008369628314018627420928883990997379162738824445382805558764029087670245993856975563877380405965571095681638624554789979232298444546797790180046729346829351095817358772154238715827304327144682289594050161632250299274249307464891830774183463779198604830695057570386725310047108255835432561409855861075163317229685224855823478233461076621795344438053270724961334493120600889599025134768576757374248010206930486168358202829614277232045075836603264721441218677644614423237891743737975612622690347881168588002031886992853935371464110865111763418191826973805891799467810876002224604338059957782154044501080421074166682611991660294102811441491100576554537979225588440227540311041308414477968473307413073379630563304205975746652044271115447464657520480346174018006733162000940321589873693116454380060669241760786208944223271430853338118249577002003641811753985586979509697471068267063972873519155049776389980935413804425180928928431809005214588927842812370020867450383156343048977070494389222564373928464336969786777298882884772963911101830635341844184731408674821247473036295819600328282858496906025997058223393026126312472251847289942474824771905915207451985446083649606549105936417417590686962072325287555576747407456250985471514637261534837789573330550728312530391555634866230673290247003256648737915969506387439107301914295031092246324987476676453621302760123701285432672284532406323472354765733964273580303867159751743324361048061194449816296458721531104968956775953581845088608409505559211781706532758511383165942421822268259480376497228129016286489777736167721372254226818198428687702410064493406373869130765173635412068502822455789404567872081468805845494449489590858575178634413287783473696227612816443468937694440519274678445002287661600512933353174969700843728323900738681728921077727799794608699959189847003733559004627193707785616685690144885535472353806260279501752129049257439751541412558881392006466986431958383505843864321951867140507381276637759648450352765340475012655055155231692815042607801875902573684464148347149310943157561093079729719661485440522956702632347817650178819559829304262974005332978470129971339877180145094146645931512337358424301334470550211075385075350897371012353878856505103353683777144802385077671330127710850673846491939765820177301045085987161310636959670552286919725030976726842839550276063044084259087795504447711886851085657137892996426078992571578260700888962445818496855540977484918913470553330688921300507928023561387045383099860700466155288159196550809557126732576863246647110101494321361992170814030823134046955862084740610408688307119374042260956269495828155009655529364833791037660600045522347000044217819058118529479527058704956952193621109118105197742826141614160915957573839279438791914743751626082333869804180489082854638268614405626557581870418471362477304936513837145162876457108829672220078566581246067124005636312880031873444916152499112550889009126192569809822486323927649792418845946630459354431602444642340540994429462336712743772497808712949725752268556310813018508704047042274334039287685197040716814524519022310537867740874783955362105288830100340951974795546664459970097702320357170283437904007094632347426611450785611630272220210868940803788112169059361847614992429540462281819916945440576531330149856189673235163765607861731949675580820946058565244415514739716074762806715631311924450650511659701533784252029792821626886573536789739008133665637962603607062792612720110438395343230773584964428825893012726761114049371241086295400803516871867456892354146972530545769834920602254052912915328299282509964231192035901391677528168394687355773424438963506002022775313710091892975399315582792207077723148297111426101448030059921584274031385799593029836553487246490193941309576743706693626272622611111746581149600411119443014281847176069609916861484422813519995418663190721667519189044366404754542774958099393383319818004661826282400658407771082661948600655923582161673864956300073281098049646099392265774217512253343249755132684540333214887928082520085317229844491850760891721204025350836841048088555195973452208129662455682814085216335697781972101583621280392707969025179649837036567447879446163273458825316528419735516664096717043897757424998077758471233077914803123361548342033866475356132684313426600581537390195298423871492524741715702309532185768683169469466071327924367409573897604228565814540076958749779063682681164878285191358140847596291740140689577498936400375416402132615883720050207718748331308711517195599463787351595520007029500195810580126892150469017602459698286672171347608336096143111102882138523064508280453617859993208779047830521143748779106606193164989702404660288552915895732661575670234983125876176478329059178053170652975097273437927789009298846745506037611174729834829558542327013921770527295940772638341429779918039371308155468995895265671337639434593415047644304905148524927427419466029363830868180612080679832917987706224389160376794646153615358913662268270457745642744866177015664773328693209649707629084850333100006051988853776655713801700218381663002788318151156170804825492787373425987871114592525107804773423031689917498715374812253547851936110847443792754526938890976042018073324158124638868455451041292606679918455170340061920855275405931847127300370154968288148947489360359234539684405616626376990858934710458011164337280885593872998398482328228819392565424163835879955236004705803497599442498593352200746575237921818920471698994881884218144741667919734118924379550682663699756237513952235051453532198965649240769554445505621066199354320721165427868486972187190862766464797492198261200023237679922281204370989141052285223854719120893911500704038244906841640712195760723464248746835891730783369431015419194571467438979944931029368038543361510803777009980122859042603391970125522829785234966771082413532593941097646148979437168864516366553973425100725921109978872193673777241632933382786779518845959805681995648662628553263065065719909602393939243735717748951839471632333866845809887204667588017979966710400541017196145693996186880448770361665723343729272766931726139499184395026783211431894260186524398651623325908748693250379328085552343763592566887532652180441036958026641191107706826465529413336104542899338740827292398148915293524739566994231432078347493817272893044012703289129317000281454869124420404714372694645086466565648944187936232490972762550426746713643770370901049889887789004892850287927319157178300758329830504607913496141192083408684364943728187656213907352895498125216658859381336388391668313199865894896337975129928449132854384556386400841876397630479027503445909219052008689358909208765177311368828269354504879100146075999040150802707105221599501188162596919140312420110490802589364865084683200211159829943795540039610223478399134776856844381537460980092104523757081502808934524973258445389446826329984852549738614840280666239996722733550354058254004072375444504912538187287667872293552685992501894440925626985250779080286684603627600972822285687126593830140059019004514950852483441061393745085236161142206547339550890588994459860023038394889964415993557406697706922304522469478191348205317447413304072465119015504501517545243980825517095813412448598878809358236211336062320299336844466533904692277159265330399981514456046992879657391266985166967069766978506883734054535333948464615676221950396089935001423403640080450455112952561967379326640609497322132850358866665270800313564410383313478797233524729385305958013167709391606105508176415951724352141843287087071088073968497662927466670627264825962190742339825409654200287013173908129144568331963570870213457432894590279412723997879254771870793543827811304788669012113278096340192035061032768128282846667771833061997304135165746266595232311185089596128038002093959329334980042334828465590448920184945438976405188311481519046310242989209937202045314670399706979361345601733120183490749671145513995638984439980084739871726129972230558366487156902266497860235625725015762260481011246255857022782663923465001665488954069555123538281503398151542137376625631253889793953038145317153449690817821344519449567937729373248144030939715736070986275970996290311813354872211553384476217495192096131731872233065521931169924008767879761795383824299960259366480850889244912674223521367651098484137195269011534362894043769132911916683931405650074267471050110120298990592468745438962920422970947155509879703930964148641783717135810483990684632424507762010246235536113749260890118454855083362403029692940332600369495701257483666982199868269858623662554470416885219450554239610220802241071302007692430609802549763630713829257670579136604235222158674061211583017778401765456998190990170832353553901056293456643379774899799393038720989682645790890299375678565882346350135705623722130736160536991071935650384307786909104801734097809126724989841807322057420960603572933411179145943668305798580574046699827167252496417876127718625053385813307631903331790687137983588149155846878809656130279675593870015038556183143683077514017719349793977700280691372963998777719916883622460249220731755953773758072988262113385837164964982522274568286190928050538117367499231884047138731292610100175948596820890214002949530580737442481901689242995526087738028212441979872806565567371053974941411725550460327537907822799656370907128783559085797859035402174973087211514225712329394772718136296591774428025155859486858124237262135753342505871583047627413022210174290078207303787167896086635319134992507945163388086596357987344403753440267519381059933952527053883316352578336926919494516849019778384570768677197950047840715063452097156821539832888513954256161729225781594369558537559630654002784107000307594376065848380273636534626040183170555733258086621337970943426561141865691607062270617350792877673247146045391007690642477489202886878271546314308098277483422847155032536525034274219919071751949557265459252453129630529825439902086473625320467810485300320925114593694885123862094518429645798198838168304627563793834533959076808420337947355996659199188872606980249171256068229149754532300051960423673637415594588129509900978443431688074003118763492240518695065746475307538381123676313685456597288727489368087446069648732645585362701310042765202347848230309717730361143139034790218160510297325425552385150754363749103647020885108314173007030629325004440125996864384264637541262061624002099825045507873145053147040605652412311166345701652997526228052796055633044951776695828081299785428022749126692959744007661342341905282068497544622209478128934884193757346945076053531537142343589716658107745083812380657938941863608521675760138320939986955103846662121929988570454445984392886741674956812121509155802115970613052305257631686431984490908011835256799388945314733953920950065442588801245317388459057683480354981801642032288376877475603342732535650659659462490233671400999027209110461972404656558764895528664185283861566333239569399473889108714562925428445857008578279139123994741657762351866400462298745665549127401591805096767154150334132770919618870746604919973855565651550096101618866791653908939213816715160042219861625617343018937695217713157748051668318403689951304892897280651422490987128555504641511767007043223263691070877643256893738373801669181982193498167921649674710272184472372828305591334561581132228678926930435034669747837486760587482839800253370280918038168728606335746303413742433063305955227290771088503599347031946042952862661580191446206842661862565525293966339426800298322878704124786699440471871931860580409979656793639646927932220322636225028493825141031830027075508014348507704729097316689100633645873380909531442485118663886565218047064536818391324504184559743590885514579296573055456903947613707068832319481143846973129045261224995513149623663487065704778932671020800908596047252175892216007310213984500176376515213888013635220883227868504608779192603166533369162690845000366131915609188552312327357797990507667745342430188436768097546103746713843841285251336140720773481892884116566853616944991624027783035098985412153793449097753026030252423708987381118717022430097342863942811048816316612838588929377412218916832441061113174671828316832485225279054327817596904477991132034121225673472231931554478312916689301031736463224862621337141056816380875198271015072501690102430170049878621578647704534242518054976767005174350177548929048116497881595636583714908451427162374412897899287076998310838192200569035347826947320088442086269428440395968087762609221959902769030206985793476643451370217642943929708941230251046791507448446367041646804714303424754921604604535720923829455185042181079817584167252959258804775957087393168166498329790164700876644435486643555471081851190032707921342999583729618529672791825679493398882087195966219995243340739171960054687956640626533313825504807732908534938646480567571613105897924930900376919825909000827592448618697765994720218073354564686726588296500222411772774337093121062972775871506291678805890198171040571060293693487653545812077753250065153489244898262784975136149305452251194917667382270248635397798609792748495290724843494500884171514391139781272212327035127884689467294185951817210826474840388677419429336555832104493883368401860387965763646381649090670935589128623293285412572936748081906128207631442337299403140402632521541142593842047176466925534315414357747260711564441540328378784234886555743895183861991106786241866492299611252510573909258326753839592958242178553074739575557738031942608758996058422458325074759050352543122857482259577887953343300493681989953852104814193637497061560118988230254067045062375626739240412386157580593309293098517374237710304839973447086075675068171271560911575742531096821679669332097305296805047562446676761123394361906420794799415850117397922060841139039517257173993311885975895599842372225264295362775144822183566197694775297735661046784939797439707727408413791275068743917722600793092958549529250598758209066418230746921856193109153335907795790769030815472706239427308890146495695852092465259426381477787873514252006389939039025833743365059191520863405934037063915093520077163743442654178566136033073479017917155031953643100427109464878279987579383637491727155770475360974746161448341483063391070422548566820263328129603721055772810319339410536361578866156736390939121880748151911101112527320934215959740101490949873292285110572241375573230737179917491048096444465989346136828667301697722683967764582411935751128001684783784177299366472817744461347019881352171823010087387927501108084414917272096094722308675438030173401641751733302654924879433805876236047051480080761106664964131612124788761162344477191615525645950165996473737471823655784154453093640977136801140899763365018912807038780196452048405958426191490986294222401409338292947654355669664280301448694727895562652494037953817597017369745995994416062175970373247953594072372027616097023550276979864294975590800051415384564934165449557245890789986242099798584684338180568740026836111162143951461235258525089692659747870659404670944137006496775944643140070821460907282636449874181846881894374652408337727012860037619807607500875246749873317651158969091395770071865611045805083498184654913972538942385670868607260924988473250707716443055658955105679538325064176387504953137662207961553644951333616853089647237901940169557289359821144173822097296803826790079436368125435800204267923698303240486871478499378118376834521366533118078287213489318459292632105328147103401843122995193897742945804601444429929908626966135336712425045085644446204282528839108836452190096026899144993128932408913533555919753839743467101066943055000248519424707777855765477565158088350208452472658414452625527964854965830942790182840946217316802675954802321836676180178709835820762500600953163621572392367115477808194232225799000330223830115049405524555584678165849793509197181337267597538320805440391907979991794514905943036785619212393582910764204966548506643596534963175710421759368453722108854505130340808427740176354443915706079414936493601177803499919374525386656620018078296660503373865666659359589417777955066293589325011031650939661746525918113005555033236379520581488909027257486338879273883866320950417815359334671982837185754742434888470504837228974834641749434171160456469899654821614274310712019493042113339633840762557699735422270485885472783260436102695037053178745242943712374413203410894463655404347116315638945907649482068593020804744323672439479562046387306280463561302997173827125468849596735586441048435366911167234653360515750259860037191887560107552023606079185260552972300494410368726634960814945603240939770969964132990434460585279096271506313850867515085361513720441671327992549412985666102517733083892349096632001701828573506827118810271059390726012393212916854728581157571113678705318764448974872946687908712973716843105493098296051069636912770322045814425731552659577158596899300736697092765083252656309288677570759728268881135345310964873308283681792135933101503439923951447963999392056073424640251051643288699799003437820975437123462568155085771374234946625083056728609793553599359525785301813345964375747206065939707091017024742313235356939635973838903767727646892816397172836939540890725172658843587595019500117600957032306176827109475233398247349740044073390373193853901376092606767790180965477705522938689333707517518678953603980899766996086190027274407649795528925217945975125472559150130428223718174439746331275060778211929866126312514083494245725977074875529506208645559607322001233252032650949310226242656870177742854280028382690060991216749151755176860211858052548796897281119766699289798948134839108026353889953552796609221972314159928785427978077854844731419980806328519132073150501427475214321326289447393233421269014874591431313997167858246481456244355869338466903749639689942220648845547833702931554831633989037021977664033367717649535888797966433518761305872148332103022716684865580147674653759156791236422789187894595579677235101040480402686665435645863915731729277958674421421025638840118444283286366570906250407969830741121769159564406167256523146229611075086637452563302834635199345864728338611249440337149858482320889118637757142747105164892768517150692142615473494452235579347418342443681039723343115364145493904951844655210152875074520765184313743698095195303092657648615062142975990160887728795791750548446156344557497424055659972281428254352790016697693319014039042681444048307063806885905370977102247842094400837577244999915724897138251787623691875565845972144684677943616492676241144486076919915589907238014198052352408512600794475528914892537534830804880534117716605745977802048040909545611785526241006842944460083324866183087539045759304138786750487031624743080796283316693659829630742940170673192787415014615896510604530447030486974034544316610814737616039821931679627413251381940152516873004720108106315556851993304754634735950231552824554822684574278817405474838265259687032051165738659580310909658126801362359831205788415801849328223227758410494135174808997688343452753457510980581512616296747882518321487210880564858385642982426679878656510975375087673039373340322959511712952563430028741161748002078381265789769331911343743077799478277338138933100469134736760076492390285892709112011932198108708774725315019762971274244359167817256574824445358483468516501366425092996588420538509678412816686202820427325960288224554930944242064914783089380243241347223022872294995868138002056749368690208088660647862614274100043477276977155987045709339887268957222887987697410684453793650097688988707750522824657855536151954889085292277946212286785973112791942968374492708329498647644524928608746000419975012662500153991652055077350785017534223246648228673705878916309272735368730055258613235824339279308653971942791921090338189679252832692897193301633343552748623412206956126685721310408227441764401265666746087227548200347438564640150088546283976538082608695271416866043084767939397718571040929301453764408211197187612529479362976950772657381664377270769367056777045144565285046978402189174595089861071362871114814863660206507730910218230758963830398043529332156905733540582160936039713393481793289436390301158824120033971972394220555927061633938330185700641351380134829923821492142228478797094891986006133866560349950524226575407505597615183024792687024185218805508712901218808934165485849458289919223739523151469515395150492630993289968034428812817281176595374333411155738142656916984768422157299230915558223074288350226658057722110504557256042499836360801302114728071336050140020778301591331222606083637801994515566069576053725395583661488443489656809259563564675865461544095935463028528593424788166248261561908571896520335784208611700142058070818715687434243506618716876171971354675532389707401629900580771628639786335559320840939798604807426938600121439091900202200671379765030989580293037922778070678665026739724670739035318485586433960319857971422940841340221536071082920308004921511139394901153821935695739388735088756647013646935572226266542246556738148743459752002226434057571457314562994864956305992432759641127832407419247593310345365522606328152794013621002771526546270859975175598670745482148238089344615812584654052204785550059417867485276512783120704176788398288870049679219253685220550439468021706782630084127068136711577883184770634838930465706578488474687099962459958685806278131169723812538811953147515239781825732250315846309403906230554886677884732212467523837010060733687320810750890723190624407866175739684374777838735309935306195500065475040454654314861340652562853956496447042270132009363304032732964244916064682748222543087740998469717044312801658813449933875497977667212033704151313557543129671648186985408796298249011762442164171293681030054359020291086962911640172249429868853297470314308228423110927886246090099035184650462884645499620679255504845315553644173641158372016450324568552937836024529189836238259429637446971806281191121275245995394249460462546189153614132048484029316237292004618854102493419327950174267247203037753709066294696792290731473927681517088723293817544832904438536905603120171901766087762093348061936545763575672426168502621904624137414642891870300162004203107955319911704596633824377515918685153278647351511427201412331118817395753927012610086898664857652785967047553379912650051562627188131457434522946886777918185144693849628286781213699759954968881097625994771574732354487617244203568533853078629891253891374924356703389230212160663882781141268529460509003571920849268139659507410251428079281743818405685366389662817737743287462986497457308095502012021234359171252325489926545494952150575081870504079606446816404632213475466894742967874296320786701782311620759767345704773950664845674934440477952431287754608772420006607207980582565629590937823530459949929104718402728053715542013629657974627532587680297839838682355422641445178904980631546544436422449722060661604976997952003184158601390925737433809270981293575086022732444321628591578073721721423010963874844747387608435075110876222814284322338870261385262935571879867318789819676356909557448096603508306655200184200379243496463064430204461789279745559592977401280517310625142120521805285540624414057047461183332544303763848849231832518184637827956992993678350861555859179042291350308089368478858149029107909154063513918190136257479490471515307218613814402666031560521220920462663327720461249256681480382379249031823762358963711780650482140804880093485159346254716635273738480703657401005306767182300507382714285000249446281974260871983127500915347873676493928844236396960240948880323846322524832092447069512845595157442837794389047387289406316876987005266032428944328638960860930252688380292130785597424166960836552012457407008340418518633512857186490357455993955221718324427155872241974556365138980384349440103079635218916507807227168652239528360647288043218544751523676706794808269601084647910350410713928836609882140876821086666727202608520711836719077078095762835632566961877360290248673099732263380602311995124383169855383149916053135541900961356300741927975577050993875467232622852711816839921458252800517415666625610410208688391885406781165873157663254601753871616664440920789508159319675589551672799731146519596904931783870396018515291983136282194723127480413339967829352957359230723867056943058241890419332179383725455157737390536484550741105389119495330787504235242083139175464461482126303170958429962767238941911684890226862388242099764371197137488628674245037147134259508624327510116090240556584472508699238976385002611604977766021928696257990725983570461552192526920928809046200366203868137236276480572414252905125821266199108428329547338601040723479049827246377566866099355998222592789125022516074574006743803440497079520632751888000798492966604078849966287349033357451392541940106702517303703388194147811565888535087799136551873687028646823552823280908938780901746137868297947316494463456219409494658629639997964166895420885078018726655484168306888213423243503656383354152825315570961486897043549613598499924021462142552619042589416481263278076557647744390671341000052234351559643601447516161527381417631142565643768576789736372899474688710542501669359311265258140923763428662911643470519724891365659994796228943303546836930117548958765773829730895490953799993705004528479218710376870938633672326183230637935490119651473099912277825659358219770554852328076553230238998976491022071553744154024560909133990251357451774871298483758977966998009875629595461448565887090751184744963869781654014680995366597524627309608328099347067481496060835223928863364704088602469773508150166798082650175148736328490744449575045346207817179702661495608534405076290957220341176816107470860305981304276210867591113422141143057057154723479852932153418317783042007560403562387888424878450132951715075511742553206988611897305185467351887069626170198984868793719657774713062683598319888149491334251260791638779329547051902503987198401542010462674004700189831995715633018923829060305440130091257201255446307614444007564656806152647251872679718195561331775219556722005351205116242615774932956086181111116283589144702567858368846771180043321751789361702368055415146989600033425817080718754453728618658971817944207580662073832588107513742829834038752125911543622904947296323379847599684963776596951245456710257189798205860313804975699056747999246487814898062460383270594916044525931855926293656522324583871705090633893915330766547817221073893347641247173903619917593910018502563779277009897945373970081479723723580545660421444979561316787540418054516268623672782636525750177919007655327242347965773370312980233498421773548958717269704373746628480096864498378114772199440052880611968149600296043777140878238050578885633438264305144403923314559450235623088189763958010724439952169328261181020975613512514241047436054183134197604200366578764578617689396839029183193969141973044013117079009848212682054267904800934900641331957923564653701672850600557340788644050133242591964467707180575165364827930166137229476565303787760551091731527481982993891293456507289096762829522482124257462564797379273404396508863951840281653195441875625016430459801083437365142802057920003243465673715213762672870975555189206283034513183171494141923210870827471981347845532329153745460449557039113811803065563703737833978733956398959671761357015812210461115169605808323162877142894360750275564944576646817985770472448965813682715761566980552773148327664037286183142990809211608210692545967694687417292587817463547149392883968824938951619869499748274298578738409048225564522307915313981030973940607310109226597341768040936448431896920003527693734220585678859681316817193877003551775352987967468478670989943526276723466852751165363630625456455203892735837468634089613475855943373613125860293137347568856024306760757600974101234409592759387371754795991150786186484612985578056002930184072827795206849141719028963973842769418411197820604039227903380293356470547595496384287580875146213655583206295245398573468861679701787538148783161950371916041677048838971428103518897778008035952055528298782065481767372042205541470344257859898787032692821330222782263290665184899473657051102798713905147125552376208351230046728087956916213225393817249714867558287720471779237203384832626939442083435698741459282853536034338797057907716993377322396352417876867333665140643401141310528804931417212355723598613043372740927320618356843401118629783965347032806642815782838184699159357435187291086234628071816755768809786899210460965542909728690082671265228894896423130138388190675390609283097773041239789549916216749431871014686298128332056904683194157369419033056817443306811778873987215740098308926964541634631770311513727709717186851249467375707383878820934991850462759392948505450096666283437324644597540209753307683946472797044363076090683864471264250283876747671812051810374677920055932512337068150013759618744390685146058244736462826882163050235689198355518483372482735312634342623600153565427350294681618204333191499169478779422100534907053342812732541327931866521628134291011611338982141187983085614403143264326136516154921206519272711380076397851831314210126089765485461560941079294863790581040865235550994364212797562529071087779048831599499945117373336122159804704622335379794298151223265935131911665270708441991445409181310416631327905084256853453704233720839326609774663581676764082200039816758035826975625316359765327089805757982540817656350299373471599242580820143513116364833177991972215157291435067999391699385848892258221081396065304469259875015718610521843858746605641612605033546746723382649263034469087564542723851224145424073198421685469607324891241798226360467625651484279288079618344512948180479376361817233905289524113517854865731044405376312646482581844901707504425246134135707077778278644508853613018828203753884333533218432047556001373018036586946575874645449609302051686448819701726533355724167231926201221611443660721406545469393014426089679659720380882536192072094641896861397012947544867970384107484490027303180964516871016097891255769330993257856004090607238494695354429897749519022252252959131687830400988455084175229625465336629367230969911956591641649217992158810155851134600316631071350384058530843358604145768151351991351563767454662390997123870100948454528699411332002045740682306227695517786460877172263125741041436505870810736642088362812512783060449003082359087039106595948776453645171228697065969470617239062310328094970168298508515454860555209000243914741719013135915040445297125143479716367178410720729008016076903213446303298297782968183476574797712151109822228398418583490458471384039478955548410400734696922713485455615222680458491267373747075325009107226325182248713990857691418729757635328172456645297690304205126957376595896771825216740655078049151684740230269156458347370574314027408087038456996908638831035282242303762704745296411411285727307956372704560598301977617798131211427650245273003859426705806845484503877704579220505507838216034100549809986255834539573526746182443215398382519335969131072600315635446901817261485346476889541368119291631706757389922813271157302309100630633740257969871376750687022323427681893598443361997059509693346155014953220827164085008350720831731591436727986560301418073265379466108419948915010448961056368662840194450936477342342160908938451516059903946378008318256388433085784973987283068198971898705067730601150655470523733245957536033511698186366663306246248464934424857334474111080573994358761241636665699169148834655613963094291780287375389538643297757932646578967920352079654532362828598759299210812095641720712154260342905983172864813658143381416538486147712594405783516051107988504429365517429205597457089677398176076226075928289645424798090578408821922128545406452989601018225528506666761714002604058494223895158110783416964643928674465782374233304825264324877073613505058814427339324459255388030891566282717769171962763843013807656848374214212042924922573219924036515928818539290640870935211228599056109371708051617258188390040777647354399650564840579192181288494050433181207507142832993103319302577468572447086023665359992162432477714193152422304444435353512562100972649161537652576426240212638758450154109899745121631846386781223050947048687655213730773154206767283237821206917527979979228517572066270679021256236003611441575090333915085653704747427974285394917320407463548805420069059999255678621005650698188157276804507032956763178593396423029715464404576312739800624317570712393721866055380888147953150511176542022634000714058827513643045507822477949168044926690448439593154164945477462708956051468072622734527681095411780723962278264600234991949092684388297561029414573158477733635263856806622075511414233393498188656733263898920986468124204375911286729784702887607595333579447153436219955757013207211622859302618663999654929504483969083941766393503978550124221611673584657328205129199068000985906957174780229706538848244399236315812966950698886231189237520369213499188249509739592515258035413533912636455898614305083928630846446307540470207869672212205986828957239467217339818412114971239215997646030281538031117762915247771531250687832416270089163765718410597976551784789333963742980911133253592407013468745058123053690043272758282552687368946023918651616029572206929636316898574190898210863688801411411648292609204273098638108794736998853532489098010091613377982853142927028661981262929695776750405919537092867775413621458893976740324638735673752760541730510240163504729104825167039553137228754355835824238165792270779910765734888019305963816267374861168904368059514838785599439036326539012210611558458083533143441797268331009221966612806855728845199862628557428636909350907681970447623706657123858923875184220861661370549111212144945739179337613840803034675841720786787639263101576589488385282483714037158260413650651403131424062151531322680568207830366314006566462760824737277875294488160764683075277101002875198770450464097943625752848230222996894350249039139038464609161014005514070559820515172090367837348163149159246010452923291187839017516721596785782341968895042059854359293943617642791051735192756091756684060414910979046492478688278712041612786491370698818908514560380412782816110821601937453625505915977240719676672119432578839138867748729562976988568800513652834853994746950683006242572911662273858793976324106671724001648072375208778485398448179387144085726508982389283846219481544585086512452803643624046035125575774415472479836338577469518883867298722639480164770513491239763897064574125168742811168239385809453973093441128585307736466653056484335153832068891351517847362843685040787873798696432261483411227284753595351430860370001594899602562769939528088094800235081159941846451498934161363414560837621772885310639435491829042590987669285831553410191503670557411020708038698141146155377543279535526510266970885597900925796215431750493726414869230605096386801096046215987492060682518929930606712208378568651769183220466018244142226053455251917577822521423361693344850545763940774933356392113196708742688554505177007133690912614884664566258600944207266992465852513568416489767508652185243624832684477611489386068706942747377670541416981177561510873549539914376252006367406848989861045366865079384245629252259295092436167499021884991275290771636944635034791585301387665331242758212880494216416410842067472069473616163089797665188685160482141990057250108690310451594888698674092586138022488559245199778054727056387957234231433239119835318540700580939986786249850621934599773704285244066922965975478596123097552567672345959264788562755640368113334513975872588634744827583418691863372262820192277429158923727648179518743883731567010586578662055162447991695019027481791023701737769786181379908093672796290823040194745558177503351674561878743605225888630061987052013033799676229793516997717084635756160414118770540487762579075237356481321228749466969254105789087810383658597450003623109876933623168920716240104680563635752289463147238715114316080624624067005680378652275350704470473801291810606949326841087716981719686466595837407172101682838999679589631881568455310261321659471997454852666869930002209249381488725372800754694158844153223923862034753696689106595889813391064864577778620772090388680528504325819188917734702387541514915678488655964996319094384847703434710124379436541763906452444763602678293533808068279527660706074552165092340385855210055012703454325130874119765555735494104988363742230493594950088431187799105551201326282831265522654429190389731651958482817661497419600554295883964789737088341264741036483361543770412661162359148837139367208999980941224957030987754384219333884556621053873151128223417649942666638169430567215624499128795474204073960813532333988050863275628831309481851556758854925357813412079902921992253574156167486490808157430157648876734891222292219759274501973699668282245021276610104392425065113361693265161515647680383213437975805111488674687405553094140963375733690607615587130024860879828066597794098241268013398093890337837392495485016372384226755002648866474034303833405366958371896176363107277238410907117626752145767286211461338635156828449198422326429014415131062499750967250162559804566803544273474500186004118796842070281325893000995636722497350123723201105661926543978894949276202558658715429006513590709409841687957660199462648913936833827055053666566185251823768999585522902898566039029776185709927340001219218709654835354808930423089252074280298730209183095670282882261422010438522573288967606114167847033534999341241764354894360959069933731607908600281539285989296501883833225301564499459411284695801980209443364723141328270259842629743693824616349779484159852196155890165294206510204308136375535651948415185433971721085584486616763381886898143674375476508298466581606248677790936153825396167154578510615494382226338347155132989412584783987792762356714494255313704089637485929519651956034357536391672568059072183433885996963203342802407746377976510537545504167138463189994086207679918207179211671388168758676594320361720230469425436972851742165792182690952860235762947747408685450680959111892308138592974760411054704961699700225873450716351701099982582617739893320710408207329243711365180892382333585447389238899310087285484497450505422485843643251914886999248470382849537259432653196971566868577184557931261520768108998497635770269694392741263678720455881363227042335146844202667937505529889293171860291931589225615488915683561664453265144674665402762602829614495626553477991630436047542905883022120830507512970369359236521367684499202625562477264843400739836530653552356974891469395382597127089105121587244693942900470805419853458441263654157016150399220602612758765932856351617391652171429755689349504958415146703145889514993976889789086834338478441548110410469270344807760884873804963694472978604428986747809743669988054783757439558125266329038438489635136488992834964872563441059025802271261882955359235442024302422383164745659788735183892383337366959477010384431589283247155309967506375354864017906589445185061245382934371843221618803983389264569870320496025060491346380692555160910645108604790511837040830171838050011411017988054635701527476613506836492374546198593603192997715410535497869486145821523396401886379663805712264049764387333162491301048309813163545967049144234027173974527023350855615041813544122928568182636816394482114990839948513271493381753405142776746549594116436773091014545635729815147434666428400605454022389526780455209407941756904906700701623404495411760703595835752937222283710694352565294297311416120139141994674546533963514931699855737032517580003262161343432100525348818662567358558880825374134475672793633387429352265960975391254602329361148504843013457123366828935632811283011219323589709514882190846045571268003005646117919871482349255267251807672354808368031430149667850966047875427889433581253788574683962376669390559919348390795155518881300526357266487539756605333574871712820982919190434470296720628486154438524215059812174239755636236408846638594730813100711977283640980691140770483778961215546458471293673797896539244893097078324209665879326906598214531053021255592409987216551410659283113779333183287517732078447566022157980906974185645308733206497419967913823859669266442512026706286459727801063338907282491369500474692079569454573744129256200528182866136128876190122282286940609251962942442917875435231035649443600227411449768581170524823038191536744457605226845139590818881693881446943185257520306514432173805320834525021420529338653041395254608167649323028026407704889007334994210693966577202435114473439298754772252357879503255687371333102627699788597888311330752490780800338234991983740101885548528528695357222821145301614914710580698083059125847864030961791830219214710326050362990030060513664234579895735232872878711019840934428863980435883551446578016409287281015372274309756850776695386959669829523430875039523358247258567205753547448321993658639530893357448511140856052228405569650768996953321487192213123889648642282265420089771342871020321413910692268716400295079113817024162768493064475037110604008319222650939622757446566795156797631252960174634488533774752784426023909505154209414208586481661018028023896725566917342192237257628251562227946509204346858204969002181264790616399367486340220707671313150214672967930086874460952871334866310167668104648658781891983553535598914432366280484628491770085225402765143868496433508191640630527639985921395669969581438324901466169618145189718950196221447059767871878952661447942493834670061620335213420042453273231208812082755329497781777362575472792817778260595622709854103916503812664968167282718878904496832599428459625357336988489219233858911583161149761181466406706027335857552294311055125151840142595260479703144726481910913551138921181606063156068932175123149571525143799097231390064707560781272907259085889355355091230845833352471103392320019191401255769610641104413714692546824914686493568247067019755970995078209422845623812925279028320282086008445081899260096094173068452279690881052986409981667796484701518583761616262611865778654425525726321932148020030318057743244787918356738475295409011470831271085954116993646495942885638449456195243915003598555932196285945287376741825741587309450340782914268525784855631618813868098273769902500182808253167636426246729769357436206238582011756613304932052585187850752249145526329799683032967943350086340446880202039824277095533490681032739506526616939355686040734862039432357628715035870744912662230631163383023886742844852147897682024256588117901938633812088417281801027210730309014315189163394601973440992091524866610820749124465952176282483684973612413517325104788126679856417374487556689848147443205399453404367969415331351859335361958139510777658952797724426361699586998183454050970936954830040927703965515855598230533669913436733688458845461297457852226020903541201151263051122045179371602946354041243223478839961317554496967621591897860081158855861904092091083347366306768848265528830065679747344183916630440839215316621574124471858855956603697835967951507957643635898561763530329615025489378427279505334705092217663234397957887658010270553847287950626361376243274351053134657536626089425100925257773673907820647975815877091665009145305326716224648348906006329059596222302579121211197659144300151086355713896243205951613500346367743668983534015428904898838044084229748789630702453941748829045855128408921487491231316514734448578643423349253419355006272611340149052915412064701359093932965243642214495835854244710878458750775330485877337371258637177995209062769726096570079710786422000995719899631099912471244443917170933590054138963961210981708969624738786720621788248512640373863147101748414435323926574034067067505743401528294110372314389594688240288671278649658313864886517445690062205810746447543278199728178050009477378298232605252008369422080162571559988141864039532006648991182236500443889084794198259071154116130578706229714184793489315864300828735216233816498515660373129862198701856115480250428338072414015834638227462878459053448799951488072452113357982860354218504005558317542860951291452843844427962585237472958346605307923025621157621340575922124362127016871203896921257905869668594014270822750337793907815271042111575290578994769308023713227041919831614338795173653248975833933280461384657673633492033234393908887547379792648946901701709114531223027418717155317553672099280430126162401013617850676744638499482781542019970041934637837163257701885272248167615903590930786213401848853400161938274077687564860930651711005177078759631430936586409035798093976490192023599967516510290033467196110266792603960054848686768867112354350289418464622925432103325282210778390448981415199408033968457635161173319752079365496214755314006389220285760982982540086105650305271788352592191798768676248988782352492361941561030377217402902154805009848432947670318711267745559728606523828051620182480849174018582859721567068993824284749475942339050147673875914735581827543898954586157985434466724303387839977436779587030961193849158900163171855251232165540190908094435697679775428679944812545842878612448589314975649630859004543827085034311691968260900292321512679961538515977698928720238087478514735365206289093300001349546643228145397019396597388258165151505881038575508394306021918567831564546980293946849032704709124762993507849078872133674796995121168242570459273656008468382084444122729595559806512547630335184656379741273589936012355336986983400492717612357604324694325704234269992054089057298244709856558769364021178483702104918319604665958971714256765762276466518323696511704020103192785483083585793741167273085949969128228385883599112069506702486895957995794253068027554273484816956774521285520591358557547770969849270306167635667883725841927540967871491412063404984588579787003330072707468131202160443430897852955102189852148056133173619104244087718734667749647737235701941363226078847406544330831662636008557300867763960656182476270347476294059027175994421308291572320962102997884408496059028654594892068217333189323588281926123964488421963357763680801922535351397747669926578038337898330065340888291896890589586252952159805317703289556069169532755866009636555107430690922564016336652974485997994912198075372654060704884334206918956968153971046791262820041544896639936012654693448627333397307728203715702746336339149309196656058256682318936411190828855816226112375573849749376764742200518639270439724016924840106143785858103908369118474381191700233843471196179369148818516437456901322997891248064406413107878134474422150684628817150412630518540772134335852459158719797188074569565333142082668331499785166543114965395432723310911360986679995198777027305221666646116798218925365501858911454012595985460611163406919400069672278358195679116958797331255414824241488617395244026728452382272733704216220319664667505510986455414992331065635201256536836896923026172924044450048834744775359866226891024848486157268277507117220678529903148865697931365543379573146026018066958270646726630551208509317549823023570557754511956252179595666974242726502905305384913888093206431420756423278487647366194028153033389610615885794763772947690236686898811929789131328533460062971653734808991250801589641747030563715349094277631872538846950776327398199461187521333595887642718851567834069279176891709891246054334414797651281809628150305654100814379861314289308255422407048922388616759287123677150134718395138406111027802900530558979992603651762062724625453977194717377506931373957155461499931679296504128705080629549139516734786268091413769426306618348169785816456419489980333729147375195444097184879249009482897107735811293183089591273618668014467269764755615038670920860606816437629650270205993217079729151301536872123653155545872009336363409585502351436633135701431913126048687047453011433008544756494171383619553477839244322915818716459714987039851250258847961567222054263480738994887026417334772959394199199791996426933358945513004349369441839746291931093405485614382012025511398817673401635993925876397834467656893064184896058435351182788124184716571264734703008575030450058817669176832886177531712096360366285390554957090531373755237979142831160878802589211374350230097628335386110929178364117465271562309964446978304178759983824259066853371666534374403267479342925636488037185095853935665993441618438180674005676722550981022019515929097566903323105321228163492187137461314028723264104787012294335150563866082207456934930273568406094388994735000718345837706424806511902117544297594606877445757917478391003101778554857266704424634952422469519744966007284429198083885880634886578922987861645939648692704514922163650762045311165984604776210318517843720195072424422171661509677569573989193997802437843469784390089495580630307563914587493596382833214407520832876877651461096737791390872380655222050576718478116583164387274475931463308957931141155673040441049410313998757157470566099988994402487148979774991618317058387128871452063014021340926913632112529621199349163883831751683756947347963380257061813715611022806873316945394589541542152705957988386676829648236278924578454607006324199469697227484305981552474943429166837906188231382270827787638526930722116452873476831676836839338527495993079831704267992178966386200695971794905698716830814070756866457651664035070970834769487899271980973469855970243499705317638949617904867941397124886585691280710372533413536206564312033087800490822128238137128689417603944617943471846124467697016326652496610162557919339024557861783348325308527092281474909056080893862700497824217628682708004167788403820620999788054027520839023182995013914473239012996937262023926680736127494872103808324550069481940304129653508483677030305719851603079239611962472622142910596198012347708127136080303799933552556265681820143181534221569317214473523935609255613951118631522643751811607534802978335454290073772429675558015077749178335355492145147752922678862625579557080715481558627411282495980813417725223841590177529645065014815056790202846789275108162057143998727845369232868119789846300522104630939458035152252674475177832618972123063054451637207169011841742508326126282415777738149996123120440951170661193454243816086223645143645610717485020617980073867884294170571670692199194112070770353370384087048569049388856687350364748695412236951651172456001798943144325107300367294466228086745083673962538139889649087310010357015371295171616680674370208626193768087938125089700739580737409933494590793901530699242047438828170978263317036415829006199555604532213953560202322751574737139188556310477670064334828701109152636865778349531440909330241308346594483502739132628360307848950678823083941495510815075320983165325605632422287556867908061790674489926859636381696933113341326790002326740373302149180424513274446169267649641396255542638397377143665963027545216806123658192299768992114522621076471335792369230347253836794580526153419655615198652523625419202936001649413816644724698666027624810041090008136707543253110241720536988452816612613129599381956331021894631378266194290417326868005809673307656638650746554576685996808930558044946102591384182477938126342953152725760222281462606142202771076111003285135752268284203754474606810263229065333891338193988412093365419084502092490921176453987928474251908179475609411705301336395767775001365474176607320787297153932329746714839048500305488953590191421838864440672675694561273545116067246005507455205457909410719051342533618077713178473126586132169504790167606067414298822290300553661755800093518041273773954906400348682880427813432893445536980769619626010254288550320926682723184978657342825961392587128996207422323183863416636922936477219801826394782898392079824495513303723054723645736315522225217319509662999037493488701062439082530066058144455646822427556355552376178485432065833040623051626938499487471876540495646447542596712052617445728928271245251707793704010373571712388640986610822507667298521654344335990848872491444143654853797801356936273297640864679709351110775175324958407257412722887300761309509309157719457625458502828832351427347168704013124265901752273822697555300336000918377249467913316883047203234939110307884017931369602577801885829991892680761992237331495357009183672895621499425738158497356859877809198413764003895628699191623848203173103814966780040434818676368731782860193392524126524564096131201064145350803262179171183324088281941367927399882494137772975386092643753154206667611745786782341814526053414827299084091425078762796682860395641021338077074913952205448715953448924517406814611823174611957613427703329819888989547595413827113387158312262993818376208270809543319326659601517509898225696084395017996698874383290536202724888929435397957019272616705627246447264833035651468053897384700770344020405551255202601125354619786628890429289523923686648336104802497679858546163858900788422537385067800184275110938900656826214968165705632741575716730913352633067285676258956196129845211368720333383258096409705639981236876298482612246188936282088061212115916191804310235518096720262853551477965279565454755324324391555601354396337686397891377949203534618358213797903477838072965961558966099738399560341629449331015083098077648857427216783316486958024830630812529000764075053870567890498679346837723746618998159531794320356937344994309373637892828039549134635451229030440759427257668956006533601323020251753772702055430903449069391467404727215182515000303385680195520895978926311811682905185134472112690130262015806949744330852125423245259032669399021632418731423411444809469366745346418580868412456784321025909907411475861464865266917887666394024241491144828360309859804532136080804182257792556970100391437017939619687661292475713696192759562745627202152347315014303470973734063164674440847016618047626939570909738163702895164851937006739947116044325824708757291320817233093570034170212839967026861555304044591236130078366698658609519228459149088798566485982636331429688807143306408268025949577057435479533137511121352738995006765861805975656842470408781166416509438557309179706627807101615852151509714428765151493277036348743378340842552388934431563863134128145212107757395927405378064003129016186533063272775014971241837381407520070077147195152545493424572633802106116112910842444695848090861370288329183598441676891896757280830823892945957242992657617315411326333236710515223520952132707532132956244436256753295643054194705023896199871275885681190188880361040719857768462264381978881887402979791187413586196207683303525971662690257062143117365157125658423221897077614602061329513767250715782171973930228098496163310932288178667603477418975348081677801357490970806880159221971952137797689783072633165168914381679005208043971765238439379760902367999586123482733059127202291151729945088537784998612461557027983799275183100476126673983853612141011948104373374721780008916033019724538708840119733204784067773429870979645326157352022237598294735494715099378923902730072634384130739078113215172944917562414557818855946955392870906805531487245576817374681900156618537625732407940915246223381794129157509555262255361884581129908485360314360198573789403119180643883202313057696511173123219191911484229451739774548379286626361080984708247985952643354339561910910937425055103479153006043751065234491444007555441712939983986605245775826909484736962332486684512308965131282719674416371144846508634228790775617758671601612556264670620811352752613190519639879408782260077381826625599006874495860512697549566514883723453026954400921562824414871723537138837757921328906684896519680376712880706222075473764515405618484926794692988371925994027722109325741689446906865487741729550764322640313131975726659687954869778309355869626318077430223585496193354955635118631610547815266668271554610646932863150780519014035236146605253261165557630384147724190941868563263596599388495517046055081313111959504928805470631724085526183904824495611282463070852508550815755737286692334174198132882976163545048723224802846936391559044774397175793516376709540175381371475785155741533055989873463985988082941529655030727907292300337109104212225628793876535506402315478621468977942769953194062282379017516381314199954114145447726087302432683220786001139409610109752904173033908750801077156244192347739585263120284555513570066125831492571183151879767234992983384790083442076973218766850828112111388100985380100174714855097506194060782208129034947360801715976240351198842612226261589474327026931455604145103896432780912107660405349198291917776518117153109075436919145855263653104940292492461859630889603598830212218966895111997662680272289299848702110812958208050172064033586664848207788201315830059548845036854208385214396122074192811568376280942434611820796785027274582136767496686130241129355264670653340156553783662888484245238307445394632548385486074926815434426142624517365534201712078168128669302960336637784130421742856866121006591555359786143438622266372419011690674104738622641849957890265546934546207203445434191404328442330029598350518668289943918485986372551172526639398121118271578321492158403604951153692139946162855055623237609176215568681741999295730108106586781954904568175145598852071979957035650096531351473155577064486685957233905414931628167426914874548212930490083822615501492922568254219432929528986817441268754186918262086057354241100022727110077856792319804958658982073517378590979715430462824352569088961205672357986913799808315261031210097146199405377839616456023223350780932209178688117480062628567887947684071815031286159833916692799637402015136362235132270059738996898126381818367928729956869830292591711686044025579629021440242534552097162285764310088580317002928071312210980357244124378756089473970475239392259168409105003590887397027703396233058391560553322619456208028991653180004988590263785033307884116808517604939807455891891352425345825099553601501364120608953974196215037267371046367894332676145788868996934334147361916543064082396474541073410233092595080737262784807887898407182758824060833555039739835254323991021633201069136499395679370470268549737122921905612641087239109772661233595241907818755645826687797325142710353121434058579114506622701406552148712755101255998554191378810477443095691982180569951560548397593207106263735788850477837880246153908569073394514966765759815122882627644633657833303171035297096071903460042578192221942386171830061864043383101105077893427993834043877488589495834004128420054605031378006831742817566032990110677486904818882789456062294946737100624117286807022058848149594765980502496144333611353006517143743092023479199244071453008600682809958690094705795604335263845577697074448469387216708820986499568009708516085814848413417278964321729270128041781832542065602933179715777761250125276823645038716875818188152339075310473099118716685657264066314613230739585572629435300863024457974907717157585823439335951453915697758683001829436619874257432981004054716597332715310797088129567328789950564012371992562394669023401316725615076518955271783643082312111929050496577652324514222722207123187959478450067523022634226575579296835368694482857703079887327063118866306345012297375233271602873349210523067557322713048604744578188567282171750197709614499241534835817396707617865901414407734742006327521789608360636601630560665669995935802051516934549120755823211072807051855803387518944909477866418213720260441672433808888654406520892769752788055082746192863984848057913619770372827304393140079795586373416103644880968101725653250006924360415549036972468445531525335748401236257011965560538105523323445821697464567093665476362525426638698871175104144655212431309846502069811933064235917969823671224372077252514487382194762603396119431053336744410020851796164864013204205136063907941014543638087885562408328534210113625522687230534198554322713674633821512521298775187850286315303505797819174146160299526925327661981391295126945661464692585628204901771628946352172886808707351315169634389017481347450560340583705781072210244166949054714967642427396090966685123373822546838715666537885259433049051277623671674161025677736984298025237400288249793452329549289931811126693522459895293197069005361758091890297033970030416582480713696321049819132572511424322187509475184009632810189709550326638933930579900705169370042627873262523345083220955664179818494910833569401219917139717247524388215886029147007591850622859742761649666803247755107057797408507997036308308901728948098120225497238778235077497076477439502207957447862083593362256650341142364308679285436777088718034600740937197828425126586819403727043904901534300790298313839643009071636124667450426641886889384755023623040657164299994225113019478664649833753602535442263488110058325650528108085290296743078894682301911769050327444508656002182682650837540351121683715839926295645908435486542457739125590746353892335078336029256258640947584080696839450614986335304605972707541853674860964134855334920403085180758437643238616939746576452774697411644167342361371199957109395239473584661603907800533724339868281740111527836913476220409068905861446908047603037191829433748022013492158138773962975171694380189925267968368084644293228084601339754367217333840460639756073044969208796610090915416129850706731933345595398227135428532415105245988733227044456737688932430977737813205391966246865652205016829887464045962367921329164166687149362173473817927673217754408671223684156274270263551152167877802657927443333710657583270377098408158755895956718679856004285023702535022635523806477315706891142991389130402940830702915348378576267558666832439678217219388976010509933902593846556693423524275811392578271051243175189147814317162288452769311765430014563716885416353370720083472748024912028664099842217826953904947815255309558243244560990779487639203685540470365811311153484408037215447065251982752343249807591252900383752420791666778842198738670962312868529245235765172364787592826742673281782190126244346342410717476444608878810553132732871571502471524215923838841808532146855287896544583823145556599544077978163715963446995803357958129601977978130190940877647227794576378567135074210344435690757407329654688612569956215012355653162612095022888939455738323198966453623594114566745278451982022329020168131541880768695092668188087898033097547195881960572555803155092068683867469057820860614792346134990200236581955923252470565821702730108843848795952992078719614508298249160433510066855521166969241505146152097605270826827845656290529328206165911298963734247059812475639605631310303503792349818268439395024636395304078739339605493133998784287967865791522523457661596241187982479170419798152086842774723136943496496200727419508593434762374441388400869320592366627180340598383263825089076107810293366501874789435876557028615037292015004515273185260864637292125504907899959854192361134113199588058438212373227976769700946622584521773516370757478646122337709992668560013580793707131830758134325194154416939490083614403959067840062322752786940065680828437340880863419523112749613765214940416839794616825394779279327239930734972764200920351542286052510240672346221031313742879791715204366320744641794000402788111402387055239377564944656100856687874386423139429297379153511112223978879354799873607063129439896707699878992295126236020174070585121178452308230667755415657237928053459406848910769654998887830959980448068797946232919467639971537266372622107112626190988812579663423141827315750805008584372146714440989262373134981439730982931394291060832643606768434916840206440527080521169209777327660041448063283220475474002387174058440444419955231903363297777630228946284789332578694212411856199658452228167446312815115965381653893759751371616970386037054340692929644442494075748988348740912962656116370514280743679969719854762393683261281847556339645405587576437943627280173548404720410387231094048115908891841849451331624253742883535573662134721232998285931885462078021189968183535871360698936328259215047451988200770635944130559504363295700952040235456597769972481131415632723399383499188172438328338673112620439569737750857726374671241845322472171345624809069600266491803303121990462089024202169769719797949880561577839417962344626342046165008239961786721102183329150061883532100363275071604261934243281070430642409006941826570573198230549966477171831384773289608046154703590923091889295423328595271586310294278401449016132221502326463635323106228367700927787688365257013077012861939535261330453490732817616419058586222871042090137172000619413107578320889858915714611329453051425816399491882666152864075125936401585683788300446816904430644382359746383256216185111306221740390882153813986536595706720243834215032630991922313854139642181626662032379173426747799792604727061927521701246891478322671639128917476455681324741979842032343083042921212457938187372346702729285451844862139421535393073630698589578938198851304373216414319881580050800143039676560117980767561733214376781806605934488947635173721039378323300714936075229748735734951687475379503979072923706234401359251642296049325664311477898742519448138413124287327620243546148943254084824790395593185453413969993326695356503388001389402368233872595059589690035807648648564990382958808924763517026064931284069610856467698720747289198178447204954801504374001380374441170677905302193802650056412097849877059840977409907311626151418824076714832440923007992556506380233519399642283255785394161202886002855464934760735126977884447130029628141733378301537649453261519785705913331734868679593521369719873169658701331759254827455383620486648275352340278371736697895148453704077854291554122591464457999421403649125291686017841845981045353917402988140375581559642768789225370182948685023756334563058368707522059988703492212166356223370866233520238090070085863319887129224723206974948155938380702636440092841273478003308298430742284440388693084678120039166810763610944882439717344548193520712805251009904888479006648674303856734263335557826343383274581345844019154189453742762015949295056512799302429931376985241838930686159196281531567737438983313832112663542701331937507676349024993678456484630585179319278047194206828113055199497157852617959896878359652318645962105013955300706756360130294587076987318078463124489308755823774488495981621766860267191445052102638067513247422983235679279331449024997840803998035648123310218882050865912518946650520346979636352980754514407798904330374680179166973984266666732789903136461489799724546989596229862534221368634497891635849584736837113980297836091992227834644535848020912320507190760915504507703173073832946606057537798532754814451505876850923951240215601433594392828746650834524768741029473374901575357599002468638468252889791531445155723757390955922198246933582259378309732116287257284578505471666411784020652450702195923778534550585566642346465375711146396077735060332143917221665160341561541687146229690503170959299343743672636135152648922163431072289368319131759341049570348267329796951483817614304391058037766094963075710410020489212192804394851281057704654986566252585438097782158017984580676218479715802561607760754801148431094861714308248203091826223814592053646108116421972790198338928385193799972407073360909122780388088211599342976346249118210626232531835594266974511355072145011032186732979794799669454221987105976240763465168055525613046322931395492869692206083431562925849456008271750338415965676549195068965631374398929638670527142663580575177408622895923727421876199071181836242487686848341042464702749968775914176777969076544651370790524876139353679562557671848617186521363848604374705027727947725955961087833008860057134349968022454020527962862279714397981548821762157220914728525049650617065300001902217252026007140260005871755702113282027759352124947796169184798974576217155061875381674671716120117443262766502721885400402627100390493915172502925660485796977487906140963421277648120717331880432432714085893230597591996701200938832206974802207934800667109350552687217918707327782555665642663244089051713428185219184731772151047733654603638351436858982661337372346589368934741140415814100957069227833788683338787511059716151819349061327546546398586538089425767336065723396243269540955603436536169010195543388328535442084250464633706589507134893523586766305024088189560810348951922269929599454019706656478839324400741671921138592604472740553483151389788125835497493849668839183970783187394817041864453699654148836165059248297232040296617449077537832797775463785091849667775920244469430877477984261688552088850407602482666273349450751359377978319664578623894494292712012026055255899243756067506558276654105560529356107153537662380613067556830978218994831966171400040742849907202994388348040071086551685588193044852726414636532613925008703008884150009322811259060417181279851370272638906257196623552080560728660488124494074280308964664318675318773955030775679672314920081392607691702416171387159974966103052504845423630018781717906709735645755234313368738677601601451475856465257892604493219954776638415872842861686726054044274619025977844486991953974261222362687590714377348377271393453651958639513815495888303720018618221209776039168510670895131257525715551279546206248576339397065988519524554503482637303667583830391739876710392129778788690122071095454396918044015743235005535304334216278404177206085796351750117963324768596902720603929576621519077525499757160388814068099909297832592052561635189770035649757401868497648459501177067762857714831566868101269178230421329300601641527117192970638500632753347768208277238447972524441152359864906573449937836276628187402229011938992405445728868091080824441883810874079555608214684692949289296821563115994821136093781742573741026188968098488683354401796372527105948560169919333810611680081013813651479722315055831778668800014870762165338807887618675617865087778718535462641430887192723648123453981932645719814372562340881990725470437441438604923328592061638693984563000060644262666838925736417391967071799292904276608852285030465811104022511521041340703948925517624778838070922409354025577269408208999771265144614141110436065716163926390844731974130718834069215384061840609369902484807378856913605799283407590449274468195838350805871659468163228462729185926200576626296004110837116890746391153548931759806286275077336450031185770053110304550331267944004569399845901415130449363171108339106186805127809501983404229972209209575833504271899913987137945529926973963093022315634288932483598760555707938055935359637654820170364715589471835877627370361481111451248518339100286690262135427944351107323784727955070100107708914288614754394779705439568107972393807859473523753284880309927402998443965351671953890566908764197080737118617882266813374534514596691993851944748260133626100106739906276971484896406671238535350533708542531504741694495105290089293562633776724091537973942846527487237021530286759821996036908519468887741172421020990716083750097721945247290346387036379904776494421503291653036258463274308399524361592752058841753543758205452470286721376566927015422034985109087752462081945476915163184044053615881536969075763651525508996131885750824365320717931541821373675834785203309298605621144748586854213182061666192055630252297249681001155146982946545710247158024371335785478734590821347321485054832234376509967163135783199592842786537166649360788636601271736531767844198011178902879238394346796883427876788132542326721399326506602382163462411530254701488062291757787142637923329325578661419330652240336946612676704756370312118348058476842726494209650456883956664191601721532699310250589575693868968305812581636638487417327643157824556449928693515830860507166410339921062035959416911207044522999131741914737016174319886910463513507611095930683324093479318054842084977991641085642682831281989357284106303089642755465715656728928142525381031706874647883870302328635446401876710118374101002774124808782695412283184032849087340611077407255742183993125878080454341242959104748201551170489497364255725325089401378346054689124283662157910651122435783345228533826111461717571784855269153328328977452533483682129362401341324559142477633759272975344329738182610024039907852357688783818492343014303852476327700594423910223526137695614261065009663768709311059458913121750454263425204571854438615000127944918454533531833627665501362419707101927865027828858183776484227023404226385604256051813141737724993236669094372374369738279529903019377818848332391470993183881127779153635643274529847547470469676090702402729767752474316865043460697216176985759815679129248493518320334587593098896843384678782705304643430893139761995453235846176025451350357385139127487984326677324607805576751493708710909823994881520192936926104400098088818824020813860199668994712431199858171922901434026975224520366254338652036547780988859819232708525075843713956370977339981907014192262130943282620217411708982107655138044859400072969315679445097948010353841227815721983305674479749638347460923297268303078031988503288700740736663290689515450532906896170384768666640926088101813423934277131669466022155266479726182809738978668804307134645065053811811702749937595301642861853483371561300200599142659990055709521893128187721348626406135259939584648192954474301484987247129647762909981208431267701465362218361613142996493125619879351830231970236240158802419764852929615956409199875149555500273665216926914559893789333382968008873708949290348979427353510809156488921602603606398009035303088130832378063343206004101795878590355268405815832726910208661091827043418195606047211983130773540292883327207851602560770676816568361851501038711213243594469211269674534310966890723095282100191197008476608302704813016565952860574228285326119219261854712080666620078570290721435421963678831444518612816572099077015681373503413589538883378813642084253891243941096945476170960787524626466212692731178307501141367811151372491235608917703048276563922923912104566637867694784082762931561065110585710982094137881431245692079140771310152572612017254921232000302521201370256451167810988496318465539810926500220780223649837268864805321174496668658940396515830469614997412577112730965747686076205085420882883815739336785224950454082252655649123888834081091169939487346000169045734493871378882549463552923456636902799780339358094248715176955183885797908133587439016475850772177120780025752646066260985814126133928493538500667323365227755054235401414249166120140624215209074693573491303470691006659002741493166700130784637585092123876743228660142982144605246156954490386348913128598036193111635063383738127827720064177601416556948019627962482648108682441768831409109193409590115052881060047996469420608632029780693158935812887283091351561941490731826765828455577958866101021133296222415028388406989409318117985144913374385004255840287330948688156720316006168545402747643849689289869528673927309788651727763286411742310318581143807681000339621244840599677127999208597987394418422650289781116773530403946039191186821297292878171954774775390038987728038647452045686597095663645353521071981782811929659268766940007729465583674118951938918326524031826265295554477854516765813068554823013892543662464945973254053322907205475019236773075413253771597186462606803630872249249179945264154215391771522571290516261351892610874083008220725768592276805418733906318339126344675047736747748140633188949346797771862471528396264476569550038535647065817644403595150832245688195052911207248908057675647180303631546385606348421868394020885365535513111683373659859113229822640547189045460851461149183682156916784027391973192506582919165353045353933538934044722684305102807460214493230736214836875829701452447713923484394337581431840405039215741907562994995929293744051307091717032085098511192332497295218757145008145003573835349698562226820715597670944225959923214326348707777069340659454898043295398980665786906799588397792321206736055626112409556338836511246114036766011399014461391702992680291757605376937089364992719656025763327425037729136485405457613505114834550048210188263102093882860509960119449965438848365835168476945130844660176397594316695647061461682170593488285079803391562344296108718404679248022655566418190843700408504625225474542150642318885193584060580433068371685550031435903135834441395733928966910908022149283631835955933471444589664468406736089597476135504053084322947175743745311577038918588146977962309471369222353703345653573580014712669082211661978353146212041498673880624351859909083743008548024887270631906944121959213483455890433177885508022836529437711215885466436375573659127449761884247965343275975657602096383705135224506961171020739955548297284926953691195743090422359108144164911958014138272931256344984591824839935054051803045032692480482345997598659553535703183352495505057649092885557784558688955112416575137635275699093571712889078686737036478236153793824234662331651150516406280277426246493557704789500985565111814983814647207071291571785148138503291378027128206144708027666812176892393912685268354771325599923922252303463426698495655678422889885785695687528479648142016792963929088915974094357880398334725571176417638020131668900894129083943354086232390807163271916282785630427407987326086466886912279077239798915708065781118479229224390288216326132987655083230531535268354530842961946001300967003591560435258574941057254822876338484041745607671528272173878084717119620280062061429535960297323135945681778909601529430220888480145090588620573236949829420606972786215800306721313861069279597874331457559983584750486580341897518429788832014919937186747872853485077528539564021628657564792491010779934847277969961968099596571253012352556323557964456974308225958274547493988675902898325645841495117278690365825131793059500175587769924187795632698093074975032376582884995888579269742943025424623809723750687471868933598198521702075335838045997394755510549375524626250410625243247994211574987487289551699714800763762983299159643832530253978682104657109570631273771513960675191868268054525800688091696986290760578006156724831233525733210567468372945517460241672019206390093033478748466088058053647453408291515711422933526565643404264902555485502023884941480300798071958664040953295716900312049915984238532297454444291856059039549707318716558905554130129367769659009677366321293632149016257977210012781071406278809057612665937521882170665950412493203160288996649333483735846381865721116944330965820885928894799512694954085142074472864240659032923089255379888074250401395353262902094945679238209800220524287972020738663799239110871292408141258794851583977653315565576385537570239979094047243253459339289282581487896794545993984258678917032233831503327128513806669897686702036296274982406592316349613156463944303933167952001020322610244985980626846214169665881760309907705299715370944562309988802377501448086719689840603909954432656787601210551052953479006282747634173548563740477421620079617725522211016833312300365377083379578621302547973258949743317800658231679147084096117534530897423226572536048451541443712912465197659341075810849827262751413276826584564741568126459087599914349962353972085677618435521396173440271629815613566803692716424978627215102145366066763418154479531066942072036635723437323640291163235810545211935779533754358050915944368917771585183400865124247014352675998742636900868867337470360004724634750793062262099957987890374342086331846209293420244442748748743515929052380869523800064086048971889344586747659265906113066512467350475618747772644307609529144915222305343563856824482162970639521592398137625475660826580535558251648121610370059385250584340757992051796886780241877196413558302890839639603841346625904843587747651259290270190067921878223803654958686472511542675757022838551813499390018353679728610405177431634775706525032722673714005184408898812760769967605312901385643757681388792726678874801865626207278774354734385290005920908772214055584465257557735985296936104622502315879475182460914419439236167300110743649373812792888856201244293690130264806029090602007108646493077134252355283663510717888282045182632431817046884101492615732771322291245623413710340312590704477704266801414504878048979081980729442699267287407015606122947371318560047962757927830119862785500476348832297304768085219422450802016821910693748964058254960804275687352841427406348336144422469873080223305385743590474014102030365696345178776679297849490869581342084482111856421012506206521697637053147116401888286349673143477135956800746296732025778958550553710771926419001238459060719941564021724724493888884918830687068114618198730311689870272636890914271586575070527741102296286785170789809324494395026453882729727974250080401286992228549821572964060989185819749196250871860538158165976939975735375595728778664229714464070332284594941000809166537176449838039179869157280742975578410970799006704550158796204037105670468911221354787854691270157613405012718706152920654194107368206701675157612799256951084216330983716661352558851172001576157989891510372798189764852081249593666770874044670154831068516474739057537853121623362311258768177497631211522475396431446164053347715454665027343212889373160934663103451983720684877947292968192163542329763720675817296446133216294289223183373446387777059346712049957220838590442190058954017984464915533102359903828643181898835554950318683900653835595421469143724176429018766124528804573399255770448795024149010932851564108151521592533849395269065671712725673720842275726734341914079673323149778856338764454953953860142931033109534577278442735817880134956585911447757674549778804910374114103535189535770270966214927579354410603357552116263585948054357692052337384045975973960279252095587775041374081731300876149922320004836956298183455948472045504900657985273381065385021266176952950778502892238417491596472232422091001938749197122244817478338868698394637804780151387708410930635113842076562194223200086289713099549662907012863732032872840773464507542586750862852567531245029673160304430348194147201858314115406079859072286249080911961310119164421609420662459788343586411289477777003923492549564879933865309501766550331047410534343789705777403657928325551408936935857460775840225406154148429009822914237581310114331597297215729940322952629220534138821600343537056269405056883527208281378558462512058890730755093443570887516394046472986595726504534262663027647587135575903484178296325004689314963851514327547561156773529896372068449418905405398899816331933644961447289558855425886129448456419905387991115486973506168974805417203362085210237467223134524913631668171369056767227716236514937503881312039657336077453472265212503943490262093276940854875400815028384199711581237900198062768004873733759721185396270688785587275391891757062364120067689923168343058379698941027914236735020778221597231016765617339939013345024497915308795729780371261388682871671677797479482873346324613924498926641703181416568983217549809094162457723321691136595099542408881899937094799923502358886279135962118924395516540407261229083976985972090677053589331834323768804605367200149234119536421599764760604170841209138580409885184337596066010811970799590951063556196879520846101969343193120990845951014582420956214545304662466359236390978329429083609421691269875611092276101132593540786277390555514985297174284413322764792266994288106838504547906127449692363438825535710483329562378764430683792021456130657534618031021088518038979253129101327963598261282859291153075494350851147839666695337117585562664294799665514338421146967227420449726229797654618607282325494947771984745298468474072966679952398384994085820014351806022786120532450706206988404997072461752579662840897856292739445980124725702901764096247946496971235504904831964321181279266716850862023391731527357943292039827573974779537067358981112060070457554194610183381777261026409668165454305670710046314715762677322938875341726278233651900457439988158860974819801084788247364027890751364727579697156351354190675885697720667645759206062695100857990780427393095109434480070631764849942816260152091563515030042957847908105921483474958239426342976116295995815086329567402513513435474794686622051507435336458858983236013602937908259671423376831688272411614309509122290186484435537341136862230960066033977614854428440784331594813304139110620759156116648748981831942835656010923153508055142639093225323343962105112518085837398404497042600637035569401359607341948319088432166897740591045932401236362020225808103642926217672102266067909479187854691814468537003093306620845155050751288533827568972374644957028924400171408098151328172979495837699414622707481697503231221308352847559373756314063342094092574793881051611626743282918391352032915951980794588085291418617413646172505099293333267973141986419700690286186661188991291160495590729285093064856633695743562111967655408216339046170695942104822093220661599950673256171996559496091956968208239301890964784904923358285438476703072774607006692312031655397026271768620635511754711896601138326361999672995747373782276776474713748946644738161752344914990465553457420051032769078260419481769074602730690005913240752268268915332798906162484963277894497112834692496310361574846557500438143070165241581391209454607579331987648412075984654288070297966259860321610769140717678092534659998706842265140181095833309808283517160264529268956263503590416780256331682874821986781902618125917364989100986851246323744728351352214141967731981684235936427823352852369177567285402837735489207668823645525154715424496430479185018148552766901012069029460947921365560816809589032884473237216856311377887209758532665485699075176446680623649776164145391450044421340118967090076078518046946315124474390594466438290752792407834290093835822205655394194453502399669991235978954601115955684758053816606016305795405009804629705344629506524308598085129835985634103446409247363298646915989518041205312278508560963136167386624638326605734103298876493344898790325515818757882854226614882016551320630089075136591962917035734077879136170490307633346125013684681466950585498347188569398095921374457041478177573191272404457921060507181762703124895458541274519740264476269922041009933477525123759832479176151688227166879279354398810342945308461423151802172400444603360862229041574140773090035195565709461909120773976591975386634431560171372743594553998007611201121489145006972074181417423325573101570444121547295090968774975719336260051974501485512642170547769000987434379542760936945193442396646000645100885883579261091830811837377400273086304908840786821961229270101148147511618953014528173150332896289985809468763945072888897138450992920167134714580674850423437516643455108132958499960542350568783008670762489973729124090266012505669781742200001198791174660517600256730111780896381090179514462675199113072494262942439729635759090854933228187731914177554304638177888595793192412111758657618427461244676000207741654461184442965125708812537491392262643181713080744902123474972333573439085637214369238713540173932445797237562175012114124108440883340383646175690201114944460843029382454222801793563596476481554672620893986516910423328177229822972138749076629183323505190535776437523200213647454130425329973482725706402429559132270791323124693140459162258006639871309743021592969174109167541982609080506916556798998844816230591325403062880817931408942264872931076021638943666115467171029960082870410790628964105352643061611415217131493310155135932800639790874210019248957334712858665877294603830334672032541163652487737430813461411536312633353087265963228715902069006106201738598529457060418795764434666360676783788693274142302210158139942764092050180194314756936497696624710816607039680482508977879451450102609514076368873670583674020338796486782781448039199823082974077608826426634250733843933418157563019010116512533160426183001127775946994308758110328704201391734930993603077093799757694916445808704841286941928437932288978712681805448768704712996325139735486530553296139592750686469707522555523849491922651957987153902676651908310413245638250532990706776017869470834308882855999899690975016905522013971660961218231897493315050934127543396528525385399931329547237342604662703354184907002725932433871832114792471692139566596741004965248494200329117848418988366735901383574700782771602499825132958166144145562507426047649639204063520806137640828133738984701077106945083005947476995181528339850625380889722252214496361099472297353011340186036073804334339742036814853995491547651012158287793094155599459257630554710657624367218190343466624835535812176443540092191239211509100499962804537877841053069589829283504068483717298150122399327038217773863780453407610932201018041597738288046243317675132204826847088069804724901123416159564640094121068177560825674555909484976040609366429300128048713469634479972406917862606339248570059625238436410306791194785505708512239601113770276155718964811509597871820051848962986399579664853790917119160690152192732379844346021395141483540121032952060560130409407728749692656296378500854917292723080466562040273117162365772468700353555071956706994255178437556212949675901498267434021448370667397537830073010561812761774633501969437891703247725430942554443752268095322269697480267434974229205119208375757163220394723253821736224189769910452458231284214625411730306806517190262190801064714621714667377000848913835552476111517452857130217380344047435180536369927405798013547470047245973894424499686915436341585895637593858510120947146454496471207960410338381419436350487626694045919856547188939178528156059140302063879558383517208953796349639526184854568716565379588476016703170644279211449848666307982099010743551479002816781154790129067471980866654480585266908880407535577777729397693398931280379145995471277199470315403415358168530445851376071777865872809369319682810921459065689271775783761801994134421026059772166431393949288785100232478657707932318933547110675814408347194032783804813301863001966173222857898023779886231537900766117915056289583931432719781504675666363551486607192391058974695929694527697471417624031117547774202931276183209596385900424745253054331523241589498458428339518203610364156749591529043980741515004778776457312291957433045785785183368686731946616483553167591375132146416659561633485922978971515582033610300889724300235878065488525301613259777738324142731625836820808621575718546157183442941795665279587293119549865539653831060360511436300561627311295358698793011132751594999424978486741986899291740330712531979642231833471578885196127401193765031476171882945405359217796135544950066181222778599808027450083226380607518101962886824607901106125562970047449527441521054380387012655233136077107909390990514126571345814592344064717096988091652780111916362190601005100849908868869651619957217256746596859509385247310180831274213273376212271138570137169523610774279206311046531192262586466330092270396615441864898367453411519112385785788187428536144309234784333934907474068004972764287426826470712058156976409854780612819056826473509544475628202404709201838236620925974792012146071010915529325000933872272588788026161522571291467236230055512018307779781642564998642883000108613179679928782603813412803674702315746179336509566852021768244854838729402021173057545124294323660103834792108195083056629524324867355086024836131178146756979807369978116410612616366642787885060438805319305983913637234176911846042461180625011110080180542754288042676371064329863034074498622956779609630824729508592766665711574373759070601352609306938243532899992902099509498906818044717480776006405128563696833895917858682696770336280713326225596811488946792452156388933202077695964882070160219053604860369761514330008899687635217759992702256017866131854677988381563768942009149449087404762453702456124176471211047414910080995606183423160937880648303860495831086146519005835921483014457534804079016403645641765052095523171105274412377814772474364761577993567364041339634542525730728964872914787474737077525663884354537836007025327400368870895798738918312751486884979499721428979106905631452911099836248670587754642204395629812455695324415119036921870142400621238161263469163016622355267584831999502878622735336134863646849803484378010802539863188876407446797675890166612125322902621638441071923488540192338303816098345848856450870834162951254121545137501168070417597767803970648630898517858378777917548310942282080925226860185892168509812450515847937363994050642835979612262820533233555273131511427048036592235277049428883773218537260822961410786173792175606135179565161817759065385061956190465363547267783926308751418003053793141368539452635383459074971634773363511246371580260076919036325985505883204146475260092752805978696734314719059653799375552307718851736765194075275921940706237622577258737682460516345214809624804890067365919005918367686295188924962577029096506943619268328954191665988386026610191521921782777384732930311623885846293780479748766477592180349865183367974765178518888718642597638778419531271924812157614592897174059199582307293426894116795841816299226299735227527205048893221414879360696696209610338124768298062613716631835302809539935791897490237590884152889123612228987991156860253393568541064757128162449322056154871641596492583910771759430818931538654668643261146788480759096081491987898160928800449178560508328759027922242525250638290629053177393384475377977407615894215450432018923643674711932270648809749626446000441112733643069162157942404598736931789142572932675421035000890947058899873153326108935049338684042517421725469481691269049727505150719790668096035331020033551707869182503927766443956173986320169984431000449476084793515276226867714798654642520993766997048938764325218739531776042714641481501439304454052348018645324946366914990860423910411799113276605689999589063870829360180423576549960211344644505855397055145159110205555144998268400008183361753431117740000385054099165496031239795071437435366621254165796598062124031069153096789569126970953284928280540605282088050066152956741096640146720889478450685712292641450543861249023710429750876468371879808319027866859072033684074495840934991790365420561644456681927484836061581236203540995754957864422247511941798397972455541712217760826568751311961336103206360849139015958826215701193866326149786600306307920520208359622638209025816985268863502487169164481479369966935315173508377200702727705613753585612656258597531063119842850292859132642680559825196777434161154904077977455533761962453949849775426861732329844578283326599296062470335123514561052754912881241009848981625149514863571371404126354013067223453787205326222048537916927244421045971354942135619248466957718496459278422773526100513152964371264371847630165862788580597847891893651284386808661946959063555872177467129995779944874276411200310572176691672368928769644901343209371820843508098533147168741282843389128901299058298050309475671157625421286845530498450503591183991442803870306639780620205460719996888040220184000974055778651261589295895470985548456514564228320895933623788114858713170719924731996820236798906768985794679481317328081902229158296168109666625059296307942739670742556567635875013595043987555356350448933164623575013208259528574146386030172724751575499500977242149751985771589416622751950007484673237538874635867689625168300735328766447850160747764959863975227439170630664725403166946666650584861950115946528658657839346869383282324085679653232053966857821984058148603119099535296389175489217683513879736988987238324003521078185246445017108907030256315801793526675957292661889221238407922576860474857887932692315605214191097285074155101237587863736330453719923822006118418161173029613411857776195484489974088334487392137796652835893824819301924746065268951873945729716768019137988850111862087570683511378481810180060059468044179933267079048566998595103026857719371015921277105043075859477027362634563796346690427616192646858575930107187137428455046310210286055266113919057130197500333918545109818355169484683762446060029601741238693399039532984183528621498361723259514158232541162036632776834586639352345430371441450318085687974957895867578982180833465627474797572652470977451390464169712855810873788963258230259644247284687596661182910423049785292934642685433059094693513999196500857899893475697325843932909269135614395571750113711532864485191067787619955076058002052732744817595613233746566776670004467756168570249100907025680574706223086236770285649317798722495177420951993020457052413105800154198799069779658312919409807136789191856928592691836734688084298415841032585124481938687099537921177685820357136871638243312777301127887351689488606238838908330900666245153733708908442689420991988638425446917065105297086823258212609403967234928628933961237345592242390050079339869601812396920652096395609649312727505296900560352362751519592857474278082031282177897631758503025904756960669991273733515977523289885937552829213776282927207258959552260372091186277117874940090092263169497199669289070396318781165545874095656767550478112861371003021397942357913125785163210748840053967434203489630723725802918281909995109558103683382540051988487193504222206311510960651434173853850606704143238109377450056963400381067208100075636564824532783412499091450825416570991491909548173335481078030211909066904079039936673438235517658397912590479805958235817942536798847520176053212981037960364241557051704554727691426617874976469329679149091411935670772711549973666546141933300420643223915933791544674546893330002399113938170856769466996414173300140670446458259422626804761149841580565048746667812224115427577255408753425208104503785478709181666804434714555104278304292138153006315941899459844981797445282864823760159618883433673735693923794094676482263982856882130968732869101411461073785727578639875356656097328323909435404509766740075684735363061506964675312200595698098854354335486605080950729009308628709299720964876429418490406066291754685973049948513423695826522969748331376328818014598179501373420402837624735682675180614845979850093369118005996888398547782363280625649884202317736018028282270822838659097767571929534204312437677291140664921951680712749552727696199160006541737411924789842609126734527573570127527251748582277575246656218434193670472094469515380758889738890431406205396492595133890906081210706541782394510985155926700753860633873108654008673072013195948591694566505059240813643456514173209056404264676775014684765886156551502804875227816295088507646588679828141399825032727270123265747662923863707623617526538244274173609439791466822288486143003927325512710996664927382703904483052158244215521203060518749209458565611247761799390334322786502760501529438868634118795675288547311654574209734280682381641280370416641084146292400433205987300430715611325313418082315461662169869669986360060283717776436000887314111798997207452497096317376439356265552698127009604529954859510442214908145515332042432443077637374341975990665978769397817007793696483449633716384770608555004206460493794067039806988368778744117793610767864165062971761229995177373932782456206193325620800798155624145036024169798364156459669342070762576529842133679872380689894757671153660299733798090214831098886773240370990499067209094696826257045286128967716202673407366406813867646363925584869340601532163279299150263140105234687993051515042216547532289735063247672175064009480638113309966367066163005625143488863704831292912591425815399630144513780317753853603991367016019855907927007957318041342225810923374668166318856229264475878360931938661937400928695400234707144430175519963433098237301381614983366181103240867665135318159135135523448086177055102775510365251480553501810169331443832010320160184700586975682071573153857364095775668894217144078801761484952586561873949890373610208119698766055259177164494060513581418173838218692746687870037527199583136878029827936476151572858417260808621671706479548577476317277146451307935811806330643812199052794345988580343510034117329312444596047963600784956416938526366288668443681558956257131895749818806293016038957883537493750645617370448327720660929146406192347885712578640892017849061015151480056721631963335324300223524416079544075924634725297391535428522413601295516707498267470875284529120113848753731836632174172724141552170949897043425415356899600886088183363531362089654071559127087079330006572106517122958619650140375908210183194412769411436112685870614176407556740295802902813708860318387328309899341664018428673203354958023636368218565396032249060863931407169850248170690863754626170959188371524423033932167224444037326021831270649348287097492424194009713368141134260217635349096129210116401883588034996327001443133230428977032185720076012096650829118765579284149189758909832388641248161091205667937573003674856300899470215168526370331231086129721545841473638822966321891515325646778307574114291621103166519782972041708977722523650409094449334167993110086164195690770270501400622813065321838381521850038223443957029530276568130059798620087853451416285733489739937989277813983086674996191216801489927348618332730277168695654244914731210602622099771128668227017498362942929187756637926622759559905152264717314672506763159441865869795565463922840128150634290288979734861444757100549161149755399745604491186093962361824357165370521695874966966264891322442850557167282329282605999068407918015279919994693953279817939972776828095288825167610647995631902979327263840708982937374507242107688854754548692146907881519027708003011831612944842570096086100713787961461662728650234673890687054602541097002130021698846763418675377242263583630644456671480604985759857199623243899387719787829003868632169002857650880249719709357995976106021787190154790250370645220239037913862982553303245096107087889039715397647068259355957389393563109561145146724728043764588092628678158614806875363767220187087644848267174779441242118564357199564825264506798408438304950518670154075283866304145985150757657946276956581456976692370534057775953252822846158914881342956379525565948426899764964266257071473088582616159216414490005959657754988256530480924831616895113862458695545728655543433821610163599604720635759031610454989533081125569600619841529239985707508903920208471897878015763803014802279178966397206363744221587568001754374620968806441350777183970866729466889878448443027155191978378811451810340708726235665461527535947064352019835679047240576752511447815030112137277379005584912893188133139677075924997569623369863598946009945826301923007512829043412738975276689937790653106734910339689098769431842963582987941970709735147400173708649878119635013566588257739519799335282445849298753774189617597278744009371833382194808824161137709811940434191804210746800119524518903208175857972376113690767688948915852622159439984943548548665909223225138355675975298956301710811110667603139987149676947668906210710164930351213256308600391460025927585669521653241298199439985729251675807276083594520217723744357740017659447188651988303402181613395348463980459901268103827639230118221558112290083840184031830140257374780054422370634652777381858345673863882228293215012263852593994506953084013421504877094386012697794986909006224134075163606611234525223559928151866737003769662998738836670206647080692995050426730108787311873516800875911995341876677079284734001882209736428072320620630198973463711594817216776872076745292690183514682493311480263030892989785613502703642052260264760241806126234471246606062911938009307491307935727676544972601237920861183936524473417388749958774143597916056363762451164858415586930003185258484600328838992194560988949436133414075967114082985837248465671952494982491907652385559194209321984782324414486234468813666579031047198623705933566419964274168004210445341199354581920819915653657324931518485647000034394715902977626597168513022322136411030435098955431963532057001570159143878878650498347095003034810459064089021127139898845447924958532017685648986408310776429498448979240191504185229686805981367146740047906080283605080295092187725911842954455248525868374208690691253597809483378987350548279018968572089003562215718028016698946289913789952889289913884802624252726883942479117393993842939348825716626237053654566055901246598669695263933314500834138645792901935626092647334200981271494853990983442716718150535143804036693710736931830094454788062250254291635479619512650937823200779557952365800473911610480786244171257078495794459424981739620221834203315818406440778964118196789204483494728437126562486170605914606172477070209206584634055762440703493821784853736051758205222279366913080595456219263563466855790848813887914455813055681318627893759226620880353824582666793633168816132108997452240527838469263480888151322280470929967568533670554100042262203548053011079025351714645578089805820788921069230245188345650372725092810418373393177459118838285950409206046714650625744716979493829149405269410396994432918689748355530523059985767092312244511261517118532381655287077995354461714989969749700483977486647037299696225739296037593363624658672920627184936250289311459003094503344334222000666956544095810879399628190126982163732833123475429585536838050956427306023578932311960813703186963186909538087091244233549844371330507149032316326293454136313998275911439141850486226512150666019624415002052475275125673404942007403594412624363351899861139714645753692506999989164935220732944403926793374201679175746056329170388345798967517076861260517453002099164528841940594096829112236027702532921921853318160811697077578726474047199336050340991281945073745706837877357974453298319681275301188187887152403690819356254923396579369535206545765972577607948544641255131449421323778374190090026771760845572836402091798803595378888607297801699577239371059131295727750879658018606983302264884672236844494756610738085311200132045017916527986048709281500995182604436207489753094750271380401800851662898326634551696761842707861959711758505688265127847817766742015887289750949984470748471980657753968112671873967238667202698491330892332865784278515815674436417162323196613860237702829165364229691805540814222290141721760109877144323522153453366868114670122666851889391235829858294961036580831056442948974688561417489635509312590795000174453401581074162605845404052740032069157429366616931134932290649918041384259752752676692342690888817829663199758793020291498076812867535297608563979106518821328961824981535444089421109438590530339550249408271055922317247142748309750849816698969297721108014476108895829188448015665900166143642484434693931085429765469127026566988465381137919311438177142085072759140019247541609344347908733135549104218163689932302317947047379329835262880262790138038875160493447815717527329525829126883766285659982191631870734302597628827351185187232234031201821427966066081741063941350323310856442402485489593649469369332411707812481566540379062594926310995316801652976378418005255558395888910797278901182609388285433771941356802313966917447552277174534852148015429560505424225391526115617198018886202723018312715872200710948623927761474766895569794981677392554638717591298908950945215441657655222568723031132279438579397872771904470479032206251467664280008101050860772362015333458516950890241215757927006426279834810413341328613588617267261572882849494099516853272778224086385995906636328836249439387116425115716281322577823488818737499841672898349875835435304221318391721006247470738150265034168281902679357519289320161995605750278295280722845223073789046726680217225896181642229955106332574527316861315981711718333155663919833623323138232765968243745752579565585217305827302835994349394595694736469241538229665002638326396623758122779266639130490039942012511930398620014717940315806988925077021434614272506330375294881879751643774304181871481189172375664648953914496159007335604741713878834955220438792366172015311712685069075797068583374992412335855803072821296590192090851567765319511074710623214109565395232924396048171776333582602578097804084299547174623131154610084446539586942923893698829890804702628394419904136905112924879884598831285303201016595023311853673301793811173730203916909447327776055348263739510165228592201750777263703275885145636102784219465365932912459241776167556859519573772785365628332148724655386004151461841588743564998317430490016216113888850427879905502887759083638495115732654209773365508310844930777417833293106315248695698048839317413983545696777060683904593254515303366143547935991981641082376056153350766799845684538988882438435813949110656443412052755171907697992431072926692197722140736501177942814856541743738290287441375069123222468425605745986067390542164002971516913745657299094788588549650173342950902356836377939331286903894871557701528200546319292643788369574523978887076285696652148330226114633884468865954492053683159705412896817123744761131232837545106607292423040668100074784980635801858223884688578822489190314874635645395379138477099018377375874800778767390148291139364402159480525742998988893441206258284278641871001096408037567100615220453663882318265801361783397849633717664933435930434786823227999425888578000058961969398879729281266908944489885006550298243326422325256667466496683639152785643176801770166239990193156245798692307090833380392480804251555015534004344356276910960151505444126978555410997434525581469551193624396283470395619882882953218864661308575690435671378909229562076607020792526081955957185796165547547274924896184758520933975962010533365544650103367255349280416511538996571145633649876038045597947260791449476306137148692244989817830954069698752294576650025586153298033202126487415056339833108663528093016281421702734870362130585920096089458465494898236930436404107814120683268793305221464597262926555863392630551256917867217871337857059636195668402374777913280092232178040248491805701376956496635645562465894680459306647316048423335669154641602198824358035682347136396681986593167299217244246346557697800245034717693680914244986431438883960212053724946193243510063857869781797696584782522649182472510617414636818652599668218369816590635007947616156521514566475203865757916549727468883704245838212490971177911152883671923290802607214984240750593641419334764971013478179001363489789215184915047407033961524336559738188710660396636486785887803299620596797856829475566881950623115429491231635983260450716421426795178434107573159993102003530864727371325330061417762617295190090279430333652543032632124175589085897641835708397395792700820770582104202120745459839677405391178985553635783639952331245379011253448818323792458520550675266423360395250827350343704974577977669652353885534059345522430283017104949335045850979256885763713314565550039627038288682996695775038720165178012931906867726264657020029410681475908388822797142055798030873525114703514727299443827435369656987405318354052111756067866486325227507716760917023200521861420634053807286805892984257940331954949322633826698778357200859688146867332889912980438088818823604388839408909411341524965738102427628136797137842673592712470777298025238083422854597303190608865074396708962307953782867975205208794173638588169133818536215181150756070666639428159344089054429727810677771449235181137381870064546142584865753734891069290499403451584944714825303928258340297957458727299147086434741588105018265304764336264791561388404313514829359226501741442316269586514620329499879688225579309119660767258954028283486795327918583721294959782981458742242476889127344106812345831680222143560335950275458854021531836930434872093350114206365093150315064671600482269581290022457698302386537836325856064383143271838166165460938541280143969988732026384000399545056558876026745363318964559382688936320350587595852961398531915203206855486716309312589477364098324985045541760359867004317371282298377467727752464552284132798121623216627120123277977080226498733545104284090951643184588266109525663327284218591190275973206793990053862447434992175429891395027980425245533276270785164356369339068996198222646956204010711717647608715862865983573222811733085048177042927308838582914790246902652809238321033872334848170877476684301558960684541740512366391195941498887970125203256301524360249487497383186117070847147246300481025280689127650239707570019886429112934083115398746261061070477382711839544181731184009663636897530056608453634132859355876105644686549487242967518077202507105327649063486174904356979244170106849669575951814738055383808502517610922394546038684536485760973951613972456586505561635314083298263468768929647381973512043154702430354550252657523164702408360827250917966524022729933603797176221331470265933156572750560844912604644440777274731167953914763805244201510220579946733821307334812452399935439451831983670536792526863293128808112310714359289583914716136229443515462712557547016350786710252025320024741189121172595046750106580587362415811487513921018044348546049616280467179641251850803591328792306849383919213956366371545352819464957255525026713368487197956338806211800728042727845444896605250511091678724430453062265496155944814767988279920386054621806481174497175368326474729860060537979394023105459796415244803822999539814354838756200242932113635555404411395137444312160646226408949241939766454196063532261391002773290865110789271900355360218002803469911820070745408719168482435645416153438673469505683812945570349833838001811165375208626783407877516363868699751036212393192883713737786341433120276300407689236066701052556098523792788011083704399371804655754575073347810942488494315788864920946823096681260755526074486871547951522045711475361825693010418946590851656123451701427806988329025252320527755511840970660255756293980645109983456049173533498421104167538329938586206686872728904857951991651350747455958823618452491631772983237304371041001938412330551609343815004510709461285225289771739279181259708795567524968642502298259314288358623710205538099164247645459448792431708359566839801011808681148076100623081397142198282616290961017145233882241785925316713148571016295061858177649530995462381223456725400814702446932433178146460715262315518324649936213095817250024000906288819165295376989096968069055984105192574189204221201206278752162853348730166906389013918001072515841916094171961564832295421453541765873175057103781765973037055834134412262951352607217632484757225093378270839703660886901284131013872366864387600119500865671134548301973084745055481017769364862573653323111334472810362632893649838367376503877716455309790452301476334867425033033719023089620241339160052333265293884011665611662941151493400377841266580675610061007992035007030765575240076988292807832561062955756585301301994562732769393422903526966173204600627072899663476867259442094785417211805773425013189681422226754149131816846819675119160043888273696009851745632448657742915323053481596705933815615577385253619807806191018536508762560365158622153115277385905680860799423418309578665910621805626953948080181513167944009427474242473648843931518502293002693753697372198474356822795067182532505546057455970268043407930671535645345588332392717641916973346782176765517372533205782075184307485949523313924029023414685455911501281608429587634646240550475659634048068037431013920235614189954129212833626576216045432584733588182284356348470966007252404323192198365660976509001289648999582198920495505382166365411686731059681290763515531335626244955690828502582120267457174480594550724263535107959536136308162280236760912106739621307670713589987968222539142909703847132142304126594273072265158184073658494887847082767029360994043918580750816045876644732451036671749706867374183632485778324257661187179862648877002891195548207585925880615792531844146130892377329704413854545790890292795461503125358946851486561184089620755164807898927375148994443399514723987728523428869413830691094875024014322548453787136157415224546966224786393721369206345714463087546368318883325768314558965903611811187512260459982630687240821463492626611321039028917882424123573679575961382521933943636591868528920923560477902320556171699790649259069674127479639775996636141242740908930486044060344047160218884986343808880779615920072591595294974349379295825783498222371348848732644429176188654490866995699215287571126065866955960465877700174670820658036711390385752102964903072205063889493383476328181502334818876495781065349159925634805374124606145869621137276159228574304404485786948696537773792844779810173917038444228809278776869300852050569474285212018218962915031667734607637133295912496593735263916286140978569951001411324049097618462853167768443218574813227728249688366685410555766676146149017335253795971341637755551166619240318922136450671090640009910834721175820976147388617569191057509259296307373954062612948633115064928693177121199305281072552966591266940697497521258028477979048909120725151910106502921910192447660404858974286897074503496444336902991684830189010081616342185503385601587635737862419485253888843297522870309555065895471272014287870035414071944457778837266049176403648255728818955652686741920325273128854959614624534898849275875331378761642861825807264692790606879672564628236081510331677114363447504997917113494244693493333900222815157391452164436028572466064037136661093083756734200963631492581152283133315863448332279579383259870740475026358287096025605229155313343491966164728378654072217524700643533376441842299044263085950929451501495269045399001270757045897266214369050730091695873360953156158983330907985752615552726423158002227182655084149654811094481980368620034232709794681509898370545873227315176072422784314641532690216892600869464895380995004985148669996031492712689456433812575287415620018963251568340855863384660860691224953572899079719149196774136045104154702534208021499566913882686335821145298153015049176524067569022757811239804065992825578638708764807690886035469039728913842978356366549812095002290278484095625991434010892965681637772822998057172865406278233520784468414647083562212043984498302575108709144747982374216118471695907396789883205826364718610558493100819121226840781488440520622054929903995814050735897169296700141741505626906158324589777805959920795865361042898557556926572544261134570845694936732842424746120984588752292722098328166467011030330837126688124440803208155243274105546235984963522471924128857955894017334544507910497838532191889576807951307612080461841463016630413158720019605714470894616039289093339744315774268979616831687964916290543353989361376241493673249436978385638504655722816754837246587677754015134103244119444151868481049249030505208763575374267761385131376468541245143850486546934208209770417516432205187392888229095241085913803566631872534178112753018232624678934282473836102556482219641051628975457536005813205816092792325445554548562679571475069103734816451138759934410499019774616553466129104381662926467379520565066037016488814188699772275847165454519698360328709823042451546392578947776250765270336063554336244299254014918758329759952514576510354126764642422394890465724697830679816072887111693474722548367978365898129161614813482230731684034033984456484212371917850733633829000349328845448111567976432040305958313103521039769974468262494277459959054741178794443387081509199089551671317689780961224242919946788127670295592617442861229968397798165153937066833865037747921003326806684346990416839723343479035846540883392116527572295451024714808283207741059367582325030476825131525242555714886936911848136278764560645146542936857587772276784034643369788109656018792161394150181990440631577700235880721893516872540093619637317954914597952553863233555066459092212012800120938327949485728232287391176789661827489216346696115619424624573110693460977675836897325013653601090677912656501904548065225172652303164200365270125718691625271382975001098470059331401508577711939149497731478942456226233971692994578284649001315789613598552161617785294400332521202092381721446034507537473718641875925373148367388147255056502197103763103978540991766817119743478829950185085948808770367264672327088406851362271292116884014173073200353076276633941413349965907397463547292543700823761733687322989935148800590747490102295760516975374529902388827332107622760937358656859173710202517718704308898266240322731557459405887286650579960536518833724004852430450866425810758478449760559844313469942809603907751762690014010171388827306813840533516824559820899148460655809273075393703656669824233463063244534095958550441367522170109803889126853841908488048066819191879808271365493593095221866286668587468527749470384943751652228697498344114449383697461480638656505818057981060972042434518646014880264818692310877280280031713530029302244523887907837362113760521820786462102283335259927566783360913742950814487860177375255112022115488789928052998980911611780616921990085329080307186620477713298161604819124055104149845900987585985477297440431481089776987257502508384612172838866430167899514124631365386173354182709627701022277266389342828828203135873790686190671717325356277410297707725027657827927826361691324407596383723403288590115469405619848639259058542478682338672222692950742026586290854690357165429841024227571705923694033258792368936170470104461071079659428544304298318764334022793365168210383938746957678817486125728991427382448661072917342758741836088527192062120326920272997728915255592176907781108413957281152694872239387256381373255800443998432202462578136231236886492025526672298032410425495796174280198872092821044562275409476601732465738778739193143934236361239525532111820602380804960576331506285744329281071456878855032790680103941860890651935458135122460585587169092573432714618988517406802360474154119745903595681249754754852358669508338987218069341580955636692332558413673442381354427084321057754797121224345649084378790812516954772077294311814976081813247599155448589411701857781168134308814211114664593069434538148070454963604096980382971611982620784377929553091731679572167087724972922476904364200940967435269604609797590409854724490737750099528584359344627176567426137106735609772633787871009504947583108283684642171133331037631445853279109423457781151334199701939155820589549689272364780343008595118329586846987922003989327805459695369563588770481686832314480208361395933866114215244482891685383087639126587216952446660177836239423260009586407433111962155593115852080657988835354884121668783037123389231013973320431627149973916294545572422526992009304579045175728451676337723896420261579663032886265269994590986310144632511175381304398178691102874512407507644721225049589636724125518371307300001864274716093841210724050641085438405022033639880596002228170021960507664285511935606148056615925221440764263073056304639317322148162705906688044851876914125000817137369920943777206299565091157117350709383061812343603718435658960128139874338808040039489049602611300344722657302108322005340008935507224439262041508768739347143613220993074487772582235356914059910434819612951880869100759783196416739828623575117887702759212870601663999868947277450458877020797312085395775336698003182328069470341132280348608810425388605832298028528246097226682970461319066044652888814098163182759917852809637098167535172019644443652306024374125212622624608359375302211087634470460300979127990400067480275742950586753123830850532125040718941149151134057881420417388086270249608153699440793395358908627563539612595865024070409595443335591762748408832854579687647632976808208909313310351243296438988496388291397371148680242517736362147248585205371241209593917221704748691388137172254241593263514454607834230487791228586543936490363854153268554424900235061999033265515110176356080357606924227431876792834421497296196012662454966610460314672256305675555123076463793900186539110473494174037441333807650475754197056593317787876943819325114581960534304602874558824616942668149737359953487071352742596681423327496002980023499501668171776218892153021249552108843675223331789773690026528081623579081612360466035040236929576690861278557593745719776646637007739496911593915466469888161940884305412955558763660117735840584699255613042161205392137398829729431546661178091647999071740460214789912457831616868018222977795843260072505393881065832516240301707155701048362850241443768783423625770536445426244512852307982472143581146961952855893042425717671656605839036343761145689698025003266811114924203473067215261377532528865152757115080450503661457291473487654608823346014654383373033108118103370339965259882317023413367539979499070985701799199329852507505261726494766285613393401846946491106385188859331582755907372345954344658959587812838052410914603403568248315902270233456509421953601836930273982314170810608539569936918025659734889670896091613475778289887463611846689721747896240478500566386902734318981545855389640059658622140912834638018174108250602978732155294008560594089673160963191324677272661035008698718387467181043343010311771684064436491323729020152820990443357308036046080358315576360104773057966911402716649750551354697782573865050431623837369649606590635875555060513479899008646205772655591564118544821779483432977806040269567177363306585176493605960804738722440791293004935059700443949078209219063646777116607672734512736568351828388966897294636965619535413759936431185460567846622915251678303976620625228685096160621458616146884009556968807579661378281251662744889372547222214731813537306186607022965235626604235620301161250720674633513493823487283370524091517525355597534523955815212994181108975030519510277970842801134857534023009074552922788601315386297256643848433200198232180318819962489774533919313211655023083622587938933325222656150959472556728421579263058158343123272492351865655398024919491359012485483946457938918299871482137721692033368261424076587948044994070432591579147783768777355998946795182768389084709047921403315035593722378834869265508969334064564260958304782341277057812163796588192053180113232233294143288643523429212252765376590009016606715097882391349791042017279808500116131786431063912706324312932284518406208049280523774569600523381960879028935821924454674427160679235704522245068225300999208897592353212867842992782795054422279865769925006115484678446328963930509792829386039266637829154373567155314267822011492246113806646048887480991170760500402362306039005497525582481736615406747396094991583489864873439819751816330717125256443509487772337376193570583359087433861693128603888939910210713860460954547020594247683721726764503751796368566140702931963266284957001419568654664579711252657868498639527814771680080377014274629988068400128250334196441784977925625082190093604146639087147163928050749760889810286598486226583936229871115874914996152325358773854557320756517577315991300408336769894399168112466068366443057751922440783045215887660908241096315517295666098538817433296355639636507259051990909052033212731371028449786647072298597656321774139587061412157953760366590739759171833579721437065292989552969085751924118476942019807317140884220012491122838464753647774651791817032552216584579208040060607008402948673640717422072328293102961234971509403995084548233597664901609414294793276678814762916510511824000658075624908379995741799630822866080069474615262196175734713752854167912431520228669096053017118539421894154844407415167327243715338685652985536290029299971313822340164695710862070122304688091193519398298453357274202211791761508299987929543100888263830212006417758553428566829856517006427246491912260717488296096158648997690110930790000302770441406563170445870766200722383807584616739056600646994595312368911768657906484083400617678099123909920043041104113271819929579426762448325019492895822385128721426040512545393099358842352959000624224648251916069552732934797258861432622272521219864575265941372699736567230935071521796241174227602595458966683128454878798650618611715341978453732273020744912885410900266222547478086135716003475936030861304321015241901305521381071442509748853059052326521212484573127417230283412500944459483028251650561683498776164081421873592316708366352674734900310981232676682724254051165885241782220884240350555939512433923568510374691821896852822379775028277323653278696909958400965636986952854959714749175339667719726882679371738741400718513681800997751920212406089463241530176592744763267632503525370630002553720060737156867838522194791748502061209673962836734056735922703336012944696431703283189225579452274249819050419242935640321399954088737264055666641560402943117492932580313029415166996370564992118750363201691100178543504355251572282579961965293424769024395954164195551191667184255730502215168287772430815400608537587625566071478668278025823100473838406172839880488744247303552760925093504237081276992091172988497363269084040003511490567760271844688348279163663519660682346606581136043001677405663012881901385113233315005577075523687858572509860943674326018872252775914625429490886048531984532885540590915938506929504445614210408246495954081272492316527551831310707728767840737086112711457369436556080273200330075723490903782540362474226776812023026201306213643210675142639391012664996614734397277505607008436458469169471317264764959532209925055391152806363052179564969604805643039925885958237200995209547047802137181132396807226382238534675198887081171787444599604497336311311997703229172790421020802382295292164241525482188857763600526008500801524170364291339596637621611694603208984901620476714729977046930365792511915103823814944437084945224325318639992509662923638942482947858595948576092776673512665801714636294050334272257538185470811238139888650542099134891973030945137318624169221607317952894509758001510398051613987959746130038441739002498213333493869254297059769788772113833983250104579511791869946982547642521004912689530486030194862499604427973903147926560927124336774475980589749057922389324601973152312734705518851866598433129346089276885093042876768252236952210460017512881752407181253760763086893365802828203335455417509265765620832906002759381560030697755095755448350883440428679692000848600863686406379932088112377968105541907262759328745244033504850412265220884434402563105524927377598497874572780957310880649591903243518028731568320859022175156785770268107547337295918221263603514018465689509974095923654745861718439306431730589003323303837324834919182131163521331950755771786415125271797214806699309807892602318407596226620337741798586878074972039189490749755821756135586670539738384264438837649349435463484040517867531674301424330871990615109425333477183537137086034359192671077344085406215703027766230724725949772509426503151669423976856202402465361825402598674809747808821084279056278697657343718837083059948953246102583381881590950786474362908829357470321931649653897064886027147701668473906472385027961012692881265139230636863675859174802137230143514238078511455830750740374969944830759023276068006285889377414198010046349387033436108704135140063676176062852596081245876103115203849118766770751080199667593611631356040777051052534171656271849426733082612605531789856217891363957802562291736175633969977875332461912669106609727107595345900285731563577446088534305018180200198223263243298832226813994698017801917590603500705212743590535811673985315048273218052117017986588681907219561703777532178337674198405982066409193895549930404045988685637260966725654477901369921647703887394484526177239366862294184439609281874958571736203083850507088270265256386621944324120482471393638751798914392352773427092336254801227555397505160892689605669166325621491745898907179469979330463393722988813668725234938498994296965543821016939301637489332807193623018481802596097825433430455266224948822714750175491878220931430401653845134829409879829913819054034585371854931091057475181902416871514499436582709995626211232643389038048830090170181559776950713020977874087540264494918616899002800064270697515174605774346110522670486047207631649943743502493556110581288451513986609501473086132003620190147599047895058609478377213832609873915703183704867525940608790913111266890207026403321546418546179087264382895101225944653856940729521476213064338596038415685159905810379459941612060804742088442100581364348453984280339372665269331871500486156445984058998956086000942104121499178633001198563327831714249829979932988581796292001552658707267211697763949581244021392130475481666841854730903679872750959584344443820449756654479671873172900732579908069324988145133160305153998074343945701773695673872497751181312217134293062098028893793572020364338090549326595107757409774463741998855483959387512347006958130476896198470910492027429414155062505152452751523592838020625399900361088754761028003570993262360792109322003246005423434227215931180524520522156784507008836198162959923548467281402508188910495978729915346525576557913614962071123277445064541626341399736044554592586492667434786109936436504942867664921452493397404457329792521062186220501456668594811392574288175244381051740045892253614312802157207836772931551472105513633437486279237439224047850930235744162454773604627185932745314883377427438884303369026849258157239990524742134790302160836548075620512321699423686604380109843042207769040358089033434767049941874904652327775676332387378777431063248476997162697712772652735027611465592388920312359135669080863524379017007064398865390245316940814639762221478405808503823723562627099660311063177212566803208319225955133431891032263776637194059177894425786754574477421034907798835988029673670781098446740281216721139107479343262473537379122674101661857235800492108137396386883268746336191492619654215806093027541790869038410702714412682856803192846776861049361272986714610869965446565455106205653707858597054008107639085576681355278123428132769989924404133595475710053761007864120990294954565230230324036708575956727764916768683943023918961490794071299114535657756882643953917329110859804210822468999481524423388701304558399179094261926544448850988633917313867584511243037556491341731886486659139259906949669189757775003542685296475463729821816467755208297364323183200491207131173639042364582049821008151341086683464400019168226747925947774211259657474711775044003713802819406619639388034416125478293431486768462583507157846893914801294554499670768994378729929544207450012325976139795013990372475196306015760225820146784266716755241424778326668686049363815015641674705386708719809261382076799405510086032115432119017290630150859381634081524435258880676159911271762616065336961943132839770815975380532617230680855731541777674494796934182317726834411098404190258933639275244055502354116668649621986195169829436813344050481013096377469421113647919875262084331858199015830721643627770896878010573860360885761217263257470009428506224572607476555797760713935124851587393215329955696661175753530098900382568301802804488525572007184791499626893734224164083264146600936561079765563034594377766481033762785160437479200434160082420110088059563396007445281932563769980526165965222564019042175366673318394790156761549099607950979818693510924899995776369371107696190296286438927802027277170966837409679593255189411666801944260156758369455424633953412210776068326454040348373306176786572970299815516907896920188625252466321049423300005244987870183207483319081487680822162836456831782887796033532888929897589303489395014922346924138617557668029109094795826504430364878190977409071164950112187543105967299305109713940033063957220454625023414351661478463653162701108227875817646716379283892486011337942530349288258886699290158666000905067525176994199951692548901576060202242485957519173841397467512960801707933817387125799660487391089722218558489674000978436587604813020953896932218315298301065069528217174099375438588626816955460493475725911890780872238467202067436972077408383873618457849834907250213450776287110822786846729698621162833617582004271587125127349759959307746152033957041037433564868796028792153695194342215846273504379724450217680784681562662168244999144543326752701826793722009428993714716415492880293030507271537616708995301624340574256907781048006695387557186607781968284963710453107198035615842192893239796303994112082068156112730217120331520641606623958726639571937574550285603528780575996475234703427737621903866400653577803596733211312024674006512624342393020659326974692068359369637274899735968559148748773489713435520540558928088370905854156973652673987024123767872139682127167383511651491058987467231253558593655293874590925827457895674232971350988717692631031139276965699896535397252212463595283020139356802038335038701101985933115951345312217300717908855772621147255680088100529548796990582467028191913389255837903494611424294296312686530509768501802334873659237455672372623913270433795158942793542792591495348483088066962426912537912943115679907635542702749510737960034672728366926965248601569452095372534071996289181387201201796414844458510516113987047657182016214395272007492938517753419864731889246677022100980328897361771492535258614570266304759897714175092277883752720712255190147236404261400751950921046388217722525312136680527943259616156086296878529050478091845743403549147198353050152508359677862804962405949760192048595530622544556083225887142470523142789920860983074586460988882906272996355770570058519240907298518100013939448276105673219229403386155849860400278253975564425309487881630662947648288740112757403564777451015283841506723675350257803897218806774137550327905685541823381806369397973794595858995268131603513161686671233319644309923827528174250482691962898048335365025218686504862294142207564403710055047494335456933315430157339988574370321000574938929221788723735117041372053724612862713619909675435625395974069989020066795696305249148129665905206579323996710154644469628317718597731457313373051001206730189993976907643030387780668171054977320851245859387910888445721244223454157779279513765732845942384588737400671611840268517035217072403368683226639439116325533855171596730949239559627314569297817782266484372543688217162971242631378362452106185110161786106963381139498083246347456794687271563876589959938265224684917297255169315899085568290338856880169411475938529011072887495948878568230397813146077566214349209149177863335894513234917449672021085389387585294240242599761070415732869201065971449229535822908062155807879044292140261792820692680581064434453320103010715556190940121283385202782808219044071644175835113683166804974141007112194739581620101106688645721270156526277527443624546875440884328230839835349576728220274328804474745301548215812944450680519185297762816709934052536010379635945785957094455026303806051198985190202406855350365814457992206558127309558112238748817969624918762585867981802019266413493289971448107570273287340229844769898362955214285366682643296505259633797037190698960498335154830546844321041450483009000314738481326695713763098235206245974575900909882799583715520790885522482090167062126943843066809770861501958168433974328357721415441365564969768376427982669277178322397400593151067231501293292736088380730041931606061304583049941575053290553138059918327850982810538052014611692086105404080714470301942270622712365177570731303425917411934866851136686437555786549494057140196712638138172255242672766170983534331354669462826200402528771432253539572951901933153876091040710156648992034885207607033005540153698189512927555120493250848274579357082317989420877714605540268721285690065838627754191367559503736451100131685286575485694774356263856984439004516723657909940448577218413838585416347351244063734253332958073431670679497543385801498082017223588907574044122499815441935901948037446972506955093393907523585288647856089094440712416951105917048539898399172895099971607210655063481785227898295725090355658659375063097275316910288080520492095546630803970058739899304197338559486199316097422422337695145805858575272026143191632238924945656172537636039836211366588564748861659512440536712659105622796630028940147554343158871719776853770071366458469993526388408420561617135306859333327307874911299870567914050026705989246188603778125559389968518411782527634163241970730246007113013711793152519557007150569901265429615623172802258125705642363012922614260790370573493639022325993222223852669340091379477840742346175164091888823194122757605474478315387844101192028944883764833946014532434412314863719834447149412896756038374939782920106690942344669786825084222210826960910776897017419512568064086066587246323986632651577320172663373283827395983178459201433619723956230972123181858012647371786623931645602611339491029161407064554106859791183311443833200387982403260691756373700898367755387673164357343155039744006064172786907992528703993590770847989246231876810867901507523692995766252178423483802161905366225305195746885167375898228773201467339610643968524559811491046085483989110540953804221287808775887919313064766962679760078327107580747181949405652276370054344434552030339654203944236071858232160945192003059701690300191558497604159658062274706915462307182483883179898004904756008820929322416586981512210285759201792291462528776025907968989070759058746211313373265267026537693515818062710106417139731611827351935814314815303481110440173562954764805842269244785760557756493340272622742801418205070460448169565061858543654013697425695979896182698199598845948407628671627125299369783687995573561899446650080964837003298763192586877990247409369137275474294369588692350849715657830605162011111882268454916169224228132562241138855794492138892196435889140558202281738050883777542146290361142779409318988708561301239811976370844444881284265565153121078067442906958408071059892626339578445985207174707058057079622690549647405474360331397657785932633862876256052349975544726863432824785530808286947886036346592208496722486038472323179390131390942229761380495311449336690692568683390620358673275576652454993117058953812432819977235793738558483087928442981857605791232291853451204387140007383313331362709423016931187762655807618968837301636711300593393610919660749819522052181784664521746353089835897107859060164206147032643080433644731730424383559861948182638964977591964460274469781421033610746667517258311667014265027225996046648552579017264563962368749789783360466550560147550592309552477733478203426537983439472216090261211905424854912138438753798408327450420430647190441500205435854016896293528657324922725326233329187646285093778692375091217729368590180642829670265776849711614297513862961150470600095250709175251855330982744733595129984125600603449603320906444097076345795208332378884366045620297357425278251801129591529560702685032002962973612741973592708289405549021582386488471020958949760415970879579718709194385891279640025991808986422091493798838893803446034282794607248367005435451415573128633465337653595793279983562861840292114487798249891637719985496607069111823436386769069452090666011490813217305342960506227650270876173046546875089849359470258347498495354471323109595635077893052293907630004575964197914570891170294190973274180282576753204474390323428204853430941421505906305884871195476975566044981333205808122955272907807521369617747738391754697253327986495783979558563013581618886548017732522171898026188342186842450551718911077560249527029466244012844975091936400108848235780595105309086740965074480624856189391908311834524784773516983863299465361096511257296691965636078959747376526696225856153240191438340330801071268513385486620125016530878668836845571463092841734613426294366641678764505512698839497710442243197028437472597381744381048986346316918149540528729217624850963557959995453219337647997089681283029452845595764407095316691618936353314471188947960378691921193895471993258803903925720878939521974833559530720915299115120382281781567127960476289150337890980593691760939490147595591919585497027820136829639733853556238550556014715242250827716806848503768671818815436555812435692925875844759901246806555667565327221055157223036229268924040191067283324417953096526067861542017203313817065572534423720138952796205869198977842656118347035589026424738401703307021796375489857448744876850814028689104025621545883523725308290210488515747985086070852053495729874956821334060721676095064790401510403146638152994078321205362518593940670110868498146262078886688894175799780549049979834687509097919117272541653175961806031515866292614614667753412518001142443612557491419811932830028578639794011481337422349924670476062100476985728749735118442726130601136632447156787540306744524618694537253365516487890477290299228671673574314994290069380103340241038392012611513961741217369795236780024605699775860062125631535517514222485767347239955806042921230918490822744887975665908035169989451207540402230902981328775605313786551358451827035588070470306580321159923444186147246185694228832937254892174952573157926104810113665327915696309092992454399143418647995606260463774445228375473480478740108735862685030202130872634923144179829585429451737887648566544370858657571622620986966020151469796733682605529654221371902812792396088541691847184342406660309001718872455799041255526215246648132765392402791506265762016407155213916847520996164754907448580338764531010830790133133765642600636522572444572588817668724489611426026875783746202873308488901482141174852792805961629638995400340591558841278033364425406644105385440565922710834791644688771571418314285748874245667971575232509604152432143175256740473401516056506721395432305650239107677941855369377130005221233582263060780276790129491521426140075060976241919311720753728350598596944677836416909163734822022524896542328699489008214661212456294878992032025412959105534637623656172440727188957625358727006451645834884530208964463175544864892906045691865353310204431106662697687344653211655184633153685805395254495757195358541377696492887550812261072065144167660836199924269593878072335361206561493499914360852131650141139639948053738482870526706590978969750255620645237519047506607048810385753222177236134341816876618638221690187465221789584629639903766983765459801686459016338768038302122506888669980264796498311339685837068362086374558221028303805493214200788639392897160560379052073695472990044491345030667564011429749822262324176048119587487938029371870065799912146315229176202580436666196841234397746569861051496019224280061268261053366743076865522810587344879158240480150158781873574226234916047502912354129538710253931311716347213141878934620873246354102427181172994423852076481256797783870382245811685660608206564440096827625728090938345056157143825028218535615890150884545257775930712838057450923535851511847509067055051335699512043736708387549024080709702244813676436804470367898250633918300572571922198582249398588925217319205308908948075040731627654459195294794627905750672401560947224812922165884929823764420226744725122179123599050349544578861943538093152037348387798466472476005328546592259494963112008813951013750353200955393188726531618610301733676332367939990393129598912388215268668963387676061988038173055087977394998109465685469972210092491518113729826158961368119098699753782979306575127933143624235586623243351713820322230669168092272992864787140939496526215355583338044792886523006852671086748475613369618301502663587765639343703125474896835143090190694806054464666220047418905037202826544363551007043342679214381370951738233569989750079579809183315463530120148888927419149315586525892371023419202187428840339028248817997279449974669794087805421109311310450254859444483255245719459297723835870662795721450245943048010145142330219006280099010743592490654534084453264155296201910618100569711330352811883074199367675589397442015917634319958260412704571781546186087601462827988393222634479752951501053805522908609655359051839710445173072110119270004664555495775574855546473511267440055771406553283972193507429387868920067090994519316123236671873829817876204089371606104424476268699841734837692086079014356531553638653672292305090310580473667313665918706145096002251664570757982720346074017826280673721113048322169535451078117081722775454688876141390709290821329526966284874903490314848041732690369163051372598248972083285784082611571922029805605190603061064497061942369569655073156807504309301805431136129969262683281760607703289605374896421049552596548040242075845737336463645065692576518880491132093437159104926067552928639726400451654281727011405241264212703962155015326676364368832214789179874321488987532207380341352975782289263181492233792762683149640441169762002227542596082449512070782410387313327700816285022573178217201626901671831604320861864139608541936673554370907450010126279853846073258069988533512087278467874683942303972769370278164662395743040571882022491377063502188661022487052001467645355634478506739035423303222997702745096300018044772944666775910087386573934065950109144966622467426113115708893621328373126462594986970714093343655346860198500958850777880699916194700666166401240479995476643690279262306334725567398100641597293264486377153695219721577862938285606062630841729758250187612539786433517153635630428512024535813699545259412515941536007043042617935074991890873832430500773236208918314680892837584706354536083430534321134611721799100255785618054227843366714396513006113536587817247870105533995969102011823256552373871303142911450130375278713829904168551703543135577355011237203990838412979108045683936625567614525550571130118634109993289214645052886656658895801370870447660912703449088723620208303587837373674498110384646276210386166058564741774389964226793265292750817535333374438329276894741416596272584602831496797039897360991763147222850006351439506432940502125497244608768597423274635354223329794185397267709750027247091116597028478481376999877869886124958612434666255531144066606626823937253481359229210851916834410542937438797251511354939345629648138218867659687176281206523038347357654850641389042274056475233473957008003317844673204150112459250752229494968625263565710295553582535120000284288680961854260176999371645586160627161456589317756751009323247062436625030368914214693651945613982398630936225625023677220428032726551283782968338911045362070378636893548044174699104290566364973875474102485658088829676851974115363648399465319573657557980350731542708464290640386575275041069949202405860527322359794655110135112385560775740376767830974808991766033653288741653624893608130879982659610331458798318287115962233752160232956034406734305702680146842186864493589793884048181425439947627333577270837571173554891925200263737788139330750179247230008531248222575057122351379128607069839697128859562551523807853809223908298578116756697354933724851494888371241681495441780917779578734075226900711368667397899915249830614552232271575986180002635683578706305449292710114636290660400065039263635098973456852724484972477049617377684038506495909808636573266767804880991023084604495165328269851000297807207247056766310680727122964679629628019003587927150171836789183826194570029645579762197182608336115244412381939016165398887589071991935500228518002796624561054511253646669697291591749330741084046438887691805520094679569699857305236029888387016217361206859873475429700164838259283427202700374390950324911706216836890461847828289044545759876575999529290641274016925263499501780527103244889140642928077206413726231283635292301723862891815305917222136356212356562642843923683429662439323257158029222560278325344650838120769236978628153811524601040781549333664294075544544678256457492760146874802332373797502284182117624264515515468458691611348988352764312682220546404162327902881443512387894599910805374499518471801552918120285017937846839247280067015481633689723311130462883754605452864020069576449897267236147748864405267459067802298933007857264901320478998064859450522076011462741234892582975714236844515608970638930258318701454053270730125446938189368387814389735330519695569325061712230811514941896688015078026626462636774286859977717352410620117530009363192753197193590745335547428839128812749840126286666099281735108705576205151818168303895403157973556276398456596080390098127379204795998381593578908989472045432141429560649301939231628080577676500890658629595932693985658757823845157240825774814658162579601377689008935501748894066909958610438659017306819479637998229989182822204769159911443406892539094140649980642066896998882834669137298381068713790690838343036023003349393382297864967476531964910010029107529353262521797566656920239562988199042112119112975089064327757981275741038600196872965552394152451662206216399501659277204464107786062141737781169387299949831680971218850070545320754841427099155235318961133692022429934045611031625175339511634912429061026410221038703135232832120093079402348020285812033750289665011646956935572671900067758117671446329239292433902700905543828944826892570991469658668505473100415910705376831184366073637816150178283220513543575695526088446330169422840462467652549727432497608976539824917902938202902834496995915265940479567127217451632942905810091944417773949744728958777174991752936829922544337359623229180301957885692122221936010478460846722299780066436816221186368255571906532766251623323857333841332672901176913728118569238281821533614785381052024685801908442886803116199201928881913459232937825883115119500257584410186163610090358461488864023288434127421910467383915570727664216835025358824052883607561087646317683483340949362128556945362238476591385964697934183759907682685086564849973859852459718338261404771134865890247205510320512932715150383656365648231332212095541849791255035470039301707469803885836582689668408970020771377454384187535778728164544202948248959216610683509738110325136572183571248772065469385301860076988574893440583855381634325678787459760318041935383073445442118853599019664663332952491583285515043757295486303063732753823996093872631935709481030562971267792720271599611739062990904969856370976556132689297859081153565549967193211742908228169285874522469691783388848328236636782994461515064027009579124743232106871234876236163590292866996312883200210464826368292642597506334960793963089246504843394139343860165288020823885700868978046000489537828199255950742246488554480185650908562203948293026910015320527172130207135767788306500324231251770075218921665425778179341966598881912952233841632344137352256808580906195612354968565758127899931271172557286216468679851080009596394163725646588310418753159352124956164267562431413204819748842625779836982069575407561944108986896168898769466984337358772946660880476219535181410269776401104891196518189138533703860872974886509856476504736009461710481772423830999169331028258567902418720028708173935104450449681959049817224493948389679610876031107236447782020026728817516730326839787908760765434831139567186759010724732855197002811819034955277134861730801171298171626517714033647780193936471276672907889920405120502452167133772083313598066796144745935703499389200867353128662490521352334749703585949179063599370884081893365746276882469416940001604350488736380159486641031563815438327574174945846439973706246678390278363173106457557976920938802921327306174964748189351255311125994254387286705779765417199334876923932435266039289328742932704184997054775983185362790512214744636118711567095081861775418021065714824071998554082389408570581495948083522037428426380362616814379509688644588884437623199343008698979730420950813985970838744169449948953936668157685379718878442864165369990068573822884573733350886587351460171367103819149328014172540518468253348324379532718276195943908540156374070689250008488591270774155773132017300890785118332189576834543985471456647595382499007173282488700394646812475132054810289940923552886193906038444308154343593035606336041532418540759252074860940156497989033664564234344772309863946720574040084396775695695509784956991858448655941625851407868186825584395582388039885710405223683354191477520604811706018326840921492685142015459395154999814005811498776069154685116850052638029680298093410409235754149469911004829688512236888802539289516289215615677891055895129148335731639555082118007666172543676287714947495132013431063845788964422258704016657910204566889751852321675101573944651903741922253617656973475077006996043537917450094612885157974474606307256040006176307702436228111776582053740287088177282623893973739601984920251536593670901836582943010877765049290664514740700806911900435774429610909694899988619286886419304146519277946510356389790478636784916520602387051605857619844380945649579649342930868220691245131535796643804665063679812518984260580959752300533595694009044050361638679918270947093824775975536139668826655688002339394345449161138264181076655139680035610842522762494784808934624004026420275384966502179604082633840290410514630685731365096708734357558579594290799875516901881986459782207050807138135522441166969914331623120900372472882121941686495852861685040799517006683967158618340562986153901524807423099614935300875829872046435070311613113627008993203401554165313930238888962229114402558862486235018322714646801639297443577276934858086290415220191500533986239090247990044236026787128697125433233498633010238395196541531230078859666365179646797401916362142591582253013475565774204367760522841649747131178998049334021788672480493010553139028859820052744947791747610350461317348394419898617968910994736433560304434157564651771991331294727244732949170609940984146267599945137331127421434447536278529119632370225764058766585047504862507641794148629674846424399506524338162068674648377107692168360104273889927467587415279271866017583037052161232381357649587951895404124058503749781567186511181489558930850100041336258555638726880271506193576591775116761192369865550774937047861179886353371990866455160624059126437199789334208685404407905649803718353182053584035425242806220873042847930665018054675774406070919947758450783185911319524385788523287401056711071185488659742271348007156112877223404584507544918478710577421314955051146540791934986425621607004131402324043218325544508289395381297376822007057229709669317805444977845720469720598137197805266393329416970417148611512911675144215806988515889326218266765143279233319476601689946604475744885874654610143039045442271984337965903873097073859109229555252438565982673819271279000847245001990664461422887846675970747867710682888996885215349468596079403823279183656839378530496183249035533971077129808997393809353071729515715334718644650698910577319437324506557905578419929140017574177157927579922935215354191716250236264124593443153254552897855920107073085876672960330909478290695828231560784059141671893216206228592021084851825589069872887155746814146314736439028382464097258185980769275203739743777364201771917300328505083843968495764155323798837862868179310487789413302530758414077112401853798195194764317970511854464329017048959046092568668951444425051442957063448070322248278017036215531503872613397369151625805125143886696168990409888797120075057718524070401316832156518866469949660475002854775569259823799095587749827616963876341454937566992514813432478556653072455858033103556645206339859427128453995750244618853283416099019931115370108231057118644615056867083584804590101244465484410756152194863944535624910432401908501572139053658051603466702599830459246555971832884467064308607104271110843358261372042152082654611867037209527752551720210995126472392850980335989884742871066933531322407878520983879321628343409537340459576967709515483074050468215217180070264461560044147211137475270137237141841573968690654134552731405495049964782284855732114845605069508869136590267099382015297828587916083205488613740250030579987277141039340087245695371470424073370133316448005498309371998990895382201834031694805907017631890157563884732077213620888642980629856848538828244879371653339423173194346642989862185510428392861163511152463717877654588840854493291347648929866153553295876348462575672021557534456694798460830012158657784103211973832027204161808705138415921413969126612313759497738358388156104405276525113147915507856783346125673834917463355847589859009792457034677017861317131267287706973966603796442068629283009640083647990376400759436296127821084786153131420559054890141983423619533702152204827499645522850734936225033224140978709353566533824827210747563764393532578751986811887512678276164980772653087643867188490436626129028357019730871989699598543939542613495277690461358634549961588278560862652816704001581890706605052686413352907192225950809704138289465184221981026642373531297130000959233046658468286657921668914677678162034852239954353356576534296186434326145658526390106291402959322906861619506344648893877504941476554883852103802988750015878489010928189413960350033393899139640268062329101306054706656965631731720799763481978549391131869279636787124479417398706048672566619573090598074579842269033309270784015729798675711828991903714958246341199654655754890608831806948255160561112314337508044964857652984273467901097138694070474349234022425296990094106332471061178634719292861768277739145351928448347787074964432454706305766077219543976539595050053241510384907462922035841308464845970371211462609572961536542529087561746702951343553705692234951453831517164111560082525397950666565676994029757391638135162630006958758641126361518825828373271746000776211947723465493721576370641004977207913218246767986111785959495226956052844548410710512913279093060196148428762660953187904862929752556440982982741477180756997867915393380787960856411263834605862450956223386521454606510028876808200959605003752623946151848885209356772305272414675308718891573076707764821597498768843145869449895912739320873461031869965990788750928926627352893746797758052455559419648908094869133215927338492844527978702244614165294435443824602525457666877739638999572666849065293747316250134426664072928453232470796764843857168352229117542451134975147984695082200681132339858792093540587897657005161474820072843883266616385440298423001131952318932719441108078812584746130829032035857629322266988621645767700058045690138858657972795615735830024308589553036099521682970881842456048924610880618165733639119123344913499122708733778228695196493366054618463289226086428371136169296407352345022794430723484985740839942299652226303921571913956454938120804047714970745860936904427774640931346373872902321720505235118690031176994140174043642984515478285645384035824418707188170977471842431713773525804670357297616824358794732442478390642516226274616123098217365062881322572234692897692794547415260864859152088566301506493428679997014679664474025513563338937871381094022592897789672959213643402221313174202159998631566519459203182683513930065384266600469053485635448236749918823401079951517519725536907417112933651477066592661529964034610781835524154948625522711226440901289378688486970009274336743344307878810124406633384154391320170339405113693417418340699043713876118122636564425795402401525124852503862086875975778790676115437376100709964890124368294659982299332820124154366268341539097951662427742970829126790141447589761684994332969549281324793768435287975827806224173648543558535550934073424941365257961625559138676209765772863854378784561052360123345108887857557439194503759532854163209205248798568877099862094390154040569351298039079465989707068974541777020695915452383030124529916888654650428649879302017511350389521074915094565043674977219769724383450850047480831835415854521591508190736462298762831982115270937264621347824439951395615241431903902755591868595533759994052676877025617053191234327354446576078348280927734116381507859933790332401981343205599138945926864222247906303143927290475748749613516304125568336016988414646440580009073548894714852648349091607610638872943262694026061047413564752799935998633052234360864941717335883294661126859473649102420738015728735803264563530581045179222983649214319521981023252868532834463348736638155562680763622487589765144630813445329328839007152476461476741763952357644432260046145764679939910571371762973890162970178524984474147220666079202657680468139368217163196960079843220086141555246739622761011359566844830285788706388164331172962747261870546245651522121096137126689346246016254081729324064647709963555043473823754341141725198343431990501381301118521110063892749873884852157863510857888285832309012132195608965843771863723668705669833685521273201980769974125419207804020744811835607426282933407059037257453411096814598867094713916534577822173824427884147198925525547290302909032131287882386484013010197747378412903885735558144949065107789974549602184699312726135672226775049249226434885552697501500695044787719076030800757186182175839951129864949186906358212841327744520497119178969492788113239388747612644170038962146421775722538680400231622067622436467224281823767994618075402336332904493386066904697599900267373768541877299769177038549693539890628266725991982504512463353943422998747284227673853111575120133668449308868520860451533496791762471489295143235316298861880988207874965184891412415095875426034249900691640047056909129530561604239924159970287708603372478973845576059573478135513866899213155542009241864427936605139995341478914603109981292304374718283859242755799868354837453275754702590890992911380150038777545356380587518018539140385713861977624092994196469852935717461871795350265708868939226237866648019128338881360442709259822417894475679123720691935418811254590696019866501141313709133427630777699012776545935569290338226009735491052613352138315396293507932303515036454137979173379500850386759602036641427116095271423304906706251070754292253408011775178394898821604571549000910983020812669001767462370619059113351291662246114052040025332262380765121673283934170612235018444063701252416497064166197029225736735503953351236185110564674799043191866492053942707444540664269953584570673026378672545308258553979692054969528325178399247761463299610683002135052832668508063178032876259474135433240101653599430451497896383187314115473796318010257413282948345419342887450365234204569387183758476360069557554598289754615679594028598205689751526614743029189192887926951859487642310732396552251948624797128660781687929722962244827901926384308415508857534429103448883507616697286985046164068723323125477585810672373394941562558656804493722378242348240030847328283307439796190377727913244684020166818925796259798198874729916285727604088243393562777274298649064349056895550395206625469652600370674292205588081812258932033999259546070221284725081275573346772222698341782727678104253394096235863928063661801166665008537193870265537521186450321116586977071797151799434622035946304359469584454986237463905445221672369556816930130433431086641744376154679543573011534287675356203254345434707291915462163451881478806469732916819983270986736735536617352717285461807946472734088897255533325647279414901941465059238167150230959838342399935824524910068996925263113738874128236279391592875620048896671585083000678846486521223954627580167214397916492506665089740466137610278851774256890690439910202870033276531504142310324135160260547280141997447569255826944478127843887677410059650923423450768511030532241006789776695339350643649731177879668986059823401086211231970278174472065662419707372468214010960667175375004179416970290326081163772286741406028905628900753792720085102536601512599082073771688598308676554742507826572475359740680508590885439737056211241894278884765368768803880881177661675700422928829985159923371893713281069102662825663785431755956293702351172262303176655817770654597041695908493787101810225921014241952297065070334804533050259059066779853301491789170166654870000071317920515593683312090043964505208260053345073293575593497292713989952902925917736549674750106029926483097044150697275819377850131196664459229599461837370656012095757116181464665663647173841405143176192142626783544000576658146308484069590755971669051395461988528726878618360640822926795536000138738929827617498555458816225814693977073138224248242858208228806528642640228663101183740583282477208112624240120441520585652749133227658506387615728363519805602749458801922851197563184486583799550868015012829735541306998016741399427652991968349701242534861529827373922241327491527185507322869107114858344761002998002289313873663828586379066644974558928091327729226273251014987125799695591231630957804390808009094721947803343336083320706243122151738679548044067312254384587932722895046548579652545141050934707041972171995493562198080657751142582779557500789783241896170998651804970610122019851650437135104254276574430337553127007869953614511619739779659380921311354110788415402466685459701758470172275020431020098813836411962281770157011941383847987295018983844849879312209099074260413599841708945110982327741324703280838491067739133753236831545062114464356535707441295236347838035481259670695207220490796656625671751322684414593695076765982811231050972815959104248141095150992586349103577226999563566891654055330750784306930079499610104424843823593317169502882673912919531667536726176678991937159916410917563729206150508343529061340517780066591119694984233880961435238839018687372347563595157414681779467021423903536787997800067130491080236027678466719251704472977613310210345625775904874706240218646719254646508615248614642419428972588839250817182570297236682198728137250996115030981493538403928407831989283271054137197129049947956759564556813130566239276237645518620570363907289814216407733655460405487801430170707636575011786340896487564821983542569251871268815855259692235393574219082046540974073083705630149245400317768654939405498734399065451351178585360034963023572688939185137816803054198314501594566582519674904328438889782729474968342401356565052218035618942184655349498717854929323635344952311890302273068691209321074880307175207323581433088909647712171478912127379971172548972484765227450543807711271709558834514800281557291197744649129975891090346493881182288559610747305266887294626362266871345797750972628446531827392872946664216080427316933551569313562779450594462303705396814007777421930926435815178040542088789920635190835324464644079409628658705682268666732238638437281536018843610958368700164860238709963042654807157935540652368536833420492560024778447174018103766089486626166960399363151581344543620668086700501007752087225067033786515106446086386388505189045841520610723502083764033689692855421514881382457275405755506649446019661029676514580967156976961326729112147834541278998522640533733411699725494108596164512701490253898819340643513796285872412904812750135330581460306903840029759509288442032436118514495006677623614825136573675269500135629679492388350929917176044736899085725187578871968831015656919725552912574500935331054915167993600615402080380099289130773844245000195815223731700296032775536082867043123801603657109312185100228956484446845336265935541711786867889823054926793209823475806977740547344283389715579519067399667607960105911228492338403765507241913880521779334393739468139818821789589970936966682937744747340884925790570189228148457046048632604834100862495137646449273175913150426675482924999988899894001926707328362998227694822506337953544246083904179691860888805454923111107382481140330714490800562297050204466761491568426110843795965618468170550389746166615130994362637590743991194379249518017376285103078231795171861038976362140053834079488420258424384307912603214902626762400886199419902705476070663543321809411776696299395473277234742945231586217805845997865340505143904245634820220637463387250053889343253902501440282757703424807673669575919026019610618871646232678329639686761748622936462830427501070945460999523718593241283006073912676829297556776878237462031543929090567705011134136611691473740629844726700547863351065993822650571161385090971606411483869973149707059444327899487770420545720565915220947669929117546588147754816666964792599721258012726479917310366452898752963100456030921589716997549610885683681543449241930515771514051809634214012082129127741875935581975961744636185445953480270061659573506393175120977978648094702505125382378268237854726016780149693757318792730208454160921973485501597511459487263546072048684612284861613643654934748653480590765608497793900543844973759959989133075933517265991592294519319128197022139779798107015204024766840813031715158249248541542218767334275275380182489448057330982787631780983609898486140401052835635480420879059796211993969865631498841661075033656891917461168540507346028123864061611169030647837005123981382914746214277382971034970779520574424449594752467987958015282730238953418966428103988745791710254503026086539746102862440796679808978746256851218044560166918320606374313014535155816115720042564911396666190551174427839216292690132363630642373768747089787856263727252104780411563488807712429867775876950723596471969464221379748940810866914263791075445626650918802951790267526022204115549414554774560257291123266829295263210907740019246168685058593012084654891152910182414778016772906133264340890719786374065311174275354473620602398634945639642299808489680859511044765654705701216244620737306378676601359068682495163208254763789741890874466870122990606608012365904632117891620771129539986021150219182629345321017428447658164862235252276877147415503156792832535367387272229503097822385924039511969371065399933816529287927667612972289397285655863276081452717575278655922408039783184291658339812367219910347677536202059341392776565094261908660077080635894910185228421399462026269232148133545009870747389271580488256389580301726885815012946362004261203898696854025631440566015695592083494158221595063701420833454187406350073736095635826158650586298705602479115122108618095848716698506857395692016593762530337947917325393672930997378565494933514166616340628847505645971097396323346232433421327608289872037311008046893222976201504553509297243900112453455378449036527993788728706702692548722596757583989530223921525946189296767650228670615935381136739154281383767842649523022378541835590643864697803811431828154990894071130523328869911998020052639339782498569925292855481107633717625111485583426770425537837622668053568977617089640341756759079608979939009433460127110801833264930782696234877936258385773676075110394907678316390951020438224338639305681725057221321274583976894950455586097832408817061639423819085475726364104460014317631414698370463378213351408830717893106577919200621953179980147978207286321802363044474032773103418949189732233015025015747326706176050229259072002073586674998225226246203072986161434383249542791055173445794026783727143561310577991876172625328208150745246368427856620221511601840004127667061376651698918022385425527260541477034590985825474898674155740816437099383773675383482438952415385726100541455091333047536640208097419267319570386340395511163283008252034114719418358652022826969821301511115306710277248862275326208110577640853853153875006365723508786217244177365943711420202498973616418185543230878744132982603004375032051587560261803226126588838816893448500212574247756189289730074252169284249483959120681202433969116272862945143686206134141501151837191699533189532245072301270545630341272998297932179729017066198909120280021339998978277546214216829279270857969199453178128849887494792104519869649572543633096451312088202487372030396237472771413056695962391133465253600743764008970575137611113367741550569549170996139510896255001932115386953701502688985077061215359184928156521683051856685650736595427145113948959691731644795830813802574200513982222125941738778584797832336919491881458095848456928898190796082969655987612629627905131038481785621687999904135517036032837622437457814766211236682844521680175476368686285137714725758733471884423067750871518038629548540396262493540238003288946743016381188078740789426657918736699128623048569488995388626160095845265646878588050854475509437281002997551517797250482091597511940803550117953154689722468855980227889522931600079693281025918941590893089061381868873233391585566362590023889019288737302012069499763155491300018331524895730477590902794099008058774640187166993616401157971973334668237377417308377973667798785732665489398000467983582722022360905446912361268870705681883704944167577605526388865431229975498985296671673142532863961696079765243565661967149768983396335818105231869256204794938492963457395643940692377237278652716520486430714401070254177257674294629680397748413710182413310561106272646257044374262115876179310980998286032404559386680297776111724775645404456627557510045505429122380677640079251825568255684286889585950628869346387462684404535354769880335261076884962337478718317487467509847324738727441541506680029727362885541708373232326920380275818372627353388200393896610009914548670764845965411618101177331264651211821146630440716694300588823940627890433633120975622410456980718925366712190566543181323490824615622426100632713762898353875019072714434066083888972093439522000259813186835380318494576239553488482203973428228145610294391810133901366954456574462453073883387034280997763443797940181090356042327123401240854466585590012142357301504598174125581481257874282935435888988426829059007944695591212686607718325630956019440600620100445175345202995670538954341711343380401158612389184999627466765316691375284609641538001350956986313404043917654396872566832407072365303415342904440765556845215263457275920736438165709164243561169003080278482518835065400932113059260402475339595544973471517013984203012411858236165918919817781143305620198812545411913766158530496833681565067628563142790386896752292251742534285037869795983850791299454327969385496021678729184973491734139570979701988869321185503099159563595307436477272269079949230058632707488723233108038552882006167198477577174001057842940032317464676241559538982918620620933473562702662703264116288798525347983721038820638217102739196551404213416133516611274721181381173520667141047274057789912724683338852372709467881006357811134199516283842134702121389613605579196006666199396009759032080932018580411271465473895367961574140282269187452956489703816886970653944783057187585782705471316851286384855566776610323126196080017103623334872250175483821594926077752484527980140520348493539511130869463553028570620539778429113656466014290088233126789262628886586908762537336103580838951022513154490560783415021947240373325125094731392521472768300786336891246689637636901307084526233377021385557703287699065502804416447859424597619855068465491089351244241705118794656837190171898696676807253604550433606836630432717627481124356480321945628667541034945383178648592693068922407328298370497583839216370649209703893264558392797867182473402826502961728769528968827477834309244128711040720662266230105059223739294316386729249771704519065627585357763788362902088951485162846339652746752389455767899623490581190524254948712171466943396173206617410971237290143342278631554210444575317203087481000614007246043412509955129427813005295625816134813171106319757138333656738076341297227034122273188078159853941828159230138830374808418471525296722808647950814450523301096995449929856979038219790413623851952369917576051742179019582200526544519030392176725479125485177218587058991946774455734932472573253706407935335284608172704155257421477114410069982140461769627978963017525851335235621820586755005569918846858899012320506028220717161967470209941759944927990899831088792680765270618868553621650580131118305635167020829111911773656070758968762925050511399018054872476757375892829788246079810415768964351226107738279090824540415455414395091545878339296944611303962398234361716122422184466327261610448779024848404012847743755319901001313038284619760820799177973141339383049963276744695868821545197426350225680866413956467556303937722310461123048628736242182294194903115874594374194966205155711268939202757573475344799676838684429393198606922166983264981697103399709072636508135639766994930752055295284446513274087772231001890699486573240326380122558810408966998921488591668269881710625929020808969739435877077801181232289141489862131771956643399787108213207862166707710486594366582102520238900341508690027083535771375686921237197078130468266739227227022134580712477017654145588996147066850134227654120745248594065711351099754407856928589331659001933234448918192590616961032814272268941097956403988656160134083431788094960794180107210419427924675629667692448028999473205277713329700745539999093695453473623840262607340284193023544614562287579685734169434311449373132330511649823701625582780701611190952129836776266225995221159063485179206994996328214912186386575649201442969376537033458043567969667101526870703636802036603696661258622482503897590201071653499894621243926082546490083250581080808804173943106183442939860422943977632642737358426327141529955345921848543914509097820381443452026394610902252559439958262432112309133345115980914183195267317192841242010054504378180607626820881465459983602858516286137176600230970441592689412399828014307278430202110754959554781991876567006899792812002484108255478491648653432439504462096880424508627411294318267305920514510094964391930175672731211389669959733829192593538645831352419385147967478581598109548278369310603355200953767115836649508655432546826246144454809479270132900533200107795506433576110715562232755516838198616256825299152288375748243187318161651276415099956838730024056071263904801455920818563627525653889811682443189941860008519023080992433349113585478331362242978362631051818716170072081991774697059017786186447167309254399172926821416312488012030451223987858448439059372169640916074662348021225466505842298383888878739960352547157242903619117228354593893767985118964569802429044543358436920078366015999872883963291622593427652078849383254029879922178858655307594772107832365457520950976188191701415014176313901531810384841335010625410135864242813358598354928869746045455615048143617443215567117328091377394020094521345715513720978885578509298383334148283607496976023049823468647290461261438379347064145051516166812877833978668995407605592157210107207267450877032786976187301669325960668148196750069352671194131691494518305492534922739583809964606211632097519017936050205002499356317644710653169613732016037393020009547429615741669966577614513435676780962520578100940647090026486771447112268070100447153436789823320300638742595855355836099795299088399795601826227703844661828228531807584298679651241466288108641430911418289259703411881397642202949338030661640196141994406345513434967360269368015059598522582394379065372085018249710694930013396958633816651506649803612998899982953441335730154721748873177690710282647378248369503788701206109314019092298886658145332719605011459168536833718016776732725204674446947996464193101940648632735598735764259112850832888141794563716796331574892661979178531356041713564255845913192476384902058727956174607288120676074590856142272212910613561498921855239569360208756446936061592827586337531060645216557486312323422207540673773106156584410738621089368821791787117093434788657345324470331583726750990442883551928795652750533354786676125135098538320630619516091271182407518681058467831030453333908856092663827919721361261890609952708589435734246138331255293205591794920129826855740067710309740800102353509435810561911338986663183178389728714719152567965038463206256418099509778231710276571555435619899544585540919722651809200454421553763827554671356154975066600390849825641622576270603805570901501614546632808571259868427712927659330635665292704916193861970313566942409524938719359332840544788042032849575773262519056134137550529291016259196331211388873990907519403767519075498547288312173410046045785852787471426233377905670973686900277809595327418702933528123031009995941613231074321248545099789725576121436080173749773082133457578365581463504667806620802542852853944314901728830958932569381179495295334969006977527856846428378579932799753080599438057923878849601459942387544141286539005854986768312891408493978189432884739453642279143535411803538687490215201239415271422158625320990137775023642746874949422715810237156388489346241097099338366802218698843473117330885436753895481964683037627951470070162369876813056400237977038819844148562888784649911162728919578276182199643198888299654310989738272202372880888798927045696887240373207504825853467556341938601428370382769407225345319283070558213019196994311114600934206037813827741456327900000312673628265590263121123600005489451314930387340274034236397384315533841493788586179118822734427351275941896483932480221659413635728626716755834819776033362194263953860606428612631548189350642887546773321628250488411600391698357616712058528870558036202365761536536218056491854953658036219834248572729592994760385797915983606530112323271228654417497668401747230678920779809740670279705940301153964285190087004396007139336831086133478516866330147264945053575123512942381802574173385334892741649549019113717923183536114195319847523793737496572798843776758071560910778854583418162987769487258489026525110034915008166218875240735441993331516260422620557744998137190032993618343597308682360461170415186829772586755974668243464568053142289939470633798257401924241769088194964176464842794733654362173307449373336914283904961367870462446915381137745773498951964568846932764150998662919913422202158336692750005942466541878145041661733963013649879309900825195139922086904851707673442227162440941555137409369890117465569226453161105971214152980707229527049297069850902217404347460571080127375558552040926927539028679170613783875700753511634948051176982024779009585682947448648802613687612531387129145914666089964487340819650435743626540044089976358435526144912316099859468681451365593512141488937359746953374617704855260731819696962747681745615457733289382478350142069782616430981944874820470184267925290579622322023942092789297890735736111294897765282266261300833495936195066621149986034751380859001133722435996362900273050966649901913513905572901962898824834041818739774644479821494663147887072269359634081170269511301682226339537372400092281178349103211052246950959493671823488543199751865412611190435834296798983717665283928237884619713191096120690188178768425964489529808496539318408816706766228063303227001797756979705654649172549989760649013929108025626707253333531037041648860586645582117836536769526199315960594083924331772218676042950703549971326135257416880662757569718702996419547824379369415573513391058005121184193860286211928117742759740282894700050758534904385130965650200216616623469398101983731614971926446692913466328519978718314880101778818648170551468041134731096879466516685046380301101728030224614442103096680052297839536933474274169173395805300737727271853954204304002539874398016758240881819277954561697592376347965312184083056739049563845966961527287352477556568738811574470962148947582090147219046661271463956538997178403817062118547876110783403829754698771659160055179288031994306582639302893285300645114348372468801400065782375928624976222705688953001023286093468370816422999339497459898574725832004806241777927505479562133242162784783244779676570832041263852965980075433423070789065446505556763569436869269597691432886957591354138512087160730425614490335670021161688015534186737922034474750056094055198317979170117762932926402243064044415244737906169357711624756967769143059177179588088442184732656137538001132777649492421034703591137699115837288540106206109774979583057678394625002920119925596428411927698413603064418637017522672744569949495566421145680455414674648547359454728979183376349921232507419913801677266978627013122350934423642349114402113874450815137514751657116980922659352784652492393661083328037457228907602333756508744018684421509042533003935001366902319330879756463190101273890722352123939596798956945288872083677767488530749438862024973056762578307319976731254190906957634004734974448301201084426646151414213197969201611946796023936275966723358753830486439358817332058078499436367110684746300841093385426138447690126153546878048875397731000822230312854373094750782645162703833921934689600477534062026579288026973776372752544679307973671371177039704941159585662695849947277992231089903583821053694582855078577546310292363207301863832141101059904986424219985631128886996163097923158594050854969605358459163873910544861853163813375904572401945362219248704880238912131688496106762309561047718919190697455795388735399201724409112110367101941124322614016469186379859384038446260698310742004953671795801850936124089959036890892647798631408912149849332719246797636463361055387588683316063886769178089829734453200264154845932553620703135184208413086801098702846038209699953789461590881475101943145637512861540858936901489297563895566606780608104887097082564970523256474376070101400653864142024133051498872007875273837662586148959553268462193345431598969547740166209514333883733404245881223670289825771170465440588578343885580259442942873466941247887064101816367630048587745011950560400269841869780497176082935552072665284113166403806013378329800266242422745425729014187023700344143746558360677400905097286259438364672403081256687001559093908708897595295940468537617638626726059654575116093802012258267672114328584925432963297581524038321300586572556082981094877847408568735932573928463854849436247648401055194073937241642376074434625782768403440220695481293259776739517908016329714134013002267336263658303352242601700615773487340215856030756888151045404642354474224370791341801859751055650120193083255926975767070128119822766228434693156562885265490691958887601028603191554824172233337690507532389147258751269183408453202275627491437897576515360782013840792929007867828207629115306925683629806304813935790971095240055244198646856051726406274585478093976722685442905607316023727400511057021417613356900430705805974035885379294210172994775617102230104345098035964646846751015536777554304492766521832224634284837669588650018311266449142366456466175039286009364913580078134110976339494490034572140660429582730488957601468943578191871223186609949504746875713113612778759168528189624228681198466872637005934367638397247370827746436607834323455619867330184921432431196048829784465509511262451663746763127534928287568833275698805029594705354783452033268690820388676308150019011124480431510403919615315430228375102735549039528460296918420624365384589219860145866694974691134888726588800034660825512134527956406479705325795949065548345207594788327251809177274996717086001400453672177003658422150301721180009733840235377481548732761317711479005946121343757409545207246623205301413656537971090524292340319919789586179948860929442301796088309428641131997011843251194807975409266058854995793235520343947948193588860459493667586439907740822682951012369769719578638557855511744243579113758823145922528067251502725339673176726883747407206843249650161347251490812460766185344828415010367404374125667418504859786124936088781936338356893798450426505906181077444441773651464886097891761798454433399434022745502361680538023673769890950741061665163642404324591399395616310980693393229420853771723703665230827697555166879497421409353435232718176504579173686316324927385348098107427118527713922672412313343869230332751689546748582069057271538153721847842573831158310118678460087675675426525553964198427125275694477495291428538875930763942058839719834696714629694687278614636595119983887900296031237229197123250541789680755369911981525258421664397428079191236778553159117662224888204329852223653172208041153576024834252045380756668615401817354512539238426615443581081441764629409701460345014964247955263941420522508207796543090523488000213999985126175018917438247870306375584144991296159116571439671927668174740313223928659279226643022184947604636767036194344968158388260937322083297134327224367224875163973359590886188070525495373654246144569004007566843716829673729605897540420026471670899226249716521757255800153038502690551556560578540887889766614853819051514924595398087242471238770816297118926755655829624798751699882497096539593475558423615860150997526918589339691291009622295554845752758361689863663740093144670773038718147624310526070216625978889630481731128973044458717886171825088805912135347465740969455789708289355647763728550573610288417467829284565239769503306766785250832931450137169425294643135059465809039932570461215331145498405341221727295289798049579894131127733130461327855548997397515753311485092646646108158387283669396783704052125663051324764514838337192542337851900080943766458204428175418883931704850167272309649768599079627700612744947778068920283188069878573326179973147732503895605518882116807846824387696937371344873359476531330933481962060943076182081729064004995529052245057278888944761052651157235003540330358713742703719466011785457859128770987766958305256790027258714076694670087216972237853344874620736139344342663712486723791977904173867947667244936430655353740356222538632798349035193123935968867175425413324001369161462498539827097253202530158047467406196168134580212730800937641069505882505623859392111620785926703466166671922217287190583335975036771346892084849745244563839112407302355499674498998985748331197801602903190639405485463925195577723004139959688527457643337556991637752462236711518518815037961166818182304326001509936737517713705493906923231608062337382824062958974001519182535847561628078553253167375935088399055849096436560529821872943117374400797829276066156424265358509063624459271827484330130269532522520732735024020746505474961298372532800403727727033038042626387469871729508812474358853052794055018448419126594951938214088114756189579871570276817632658105898435201315343856775580270983258046410529470926347460672401049226410523671916509590081684155638539327787610045904679465201435992954355264881764300799278899297903503352910430613447834684066441060526821481369483504359165711469026069151810292239056823033394836230516693801919841847446288618392557512411022373746934256080195539944053674325198765288006067433981749494300316243592875733823456877161162405111106085936068927671337655629728112871089876588268738510662080438524892440581214034972186387738333203515433332913275214711919469036197499209117281570672088133678522305076410325032153875549174900258917872617082066897438575519503746094599647711045719165468199537097484082434568856109098999955399065609244318428268047432971649655705224448097975131097110460517153576327110609454932956710863923668906775581446644824646123664443882214236050140555282926897105431248515162984542766759233603623023700544181436387478241646618440972396208799950261596308541291486826640586744171254666073900597301164572767716957547769709277199317624026213204616323650265630101329376545757101852718098721674203147063037909435644467185333934710304954845336538088806268894857924653557901702830716647960843740216185706312480419055421718089642654981246751785905223870321813531654202377897799969082996166765412957557929009437493636799378522067797990663542179054560327674482554073259035104807176836573787396924760022292064914455351443366696593653743857981098290334909405579546091674226682982545987416520607351022588677149960711837629042769478125014651227330657958836320527979015150360977151770016065389934573528739492887313707704610971459842827744543228272738366256502973726806531902252757851589997303571885735103549867596491581029958120277316195048617206616850389757124233965408636869964583291122451094610812607547094071764505993621611181390944932993166783928901447880894615396391187899566390051256093261191628814594451743439513647937278660435285686632627100268039523962748787456990280364749944189292688635257508962993109067225006664402925957088985527111687550698837250079030481774265405658236761249427014220589057925484481914345111135890282640636963190673786371483513076984492570640395052950963407825653936318730995272886135619587160039839540073628642730938792076009203506632265003480049027136955939453053611752170463506019235472235745001730467304032442369096660944878218972107107191943276023590508035776288216788007583044067773126719761049050927641090022541205462695285171902673279953724087343475594746141377904352421451927746921354824693827626865446183238367168594118458199342635651977324963278415317339605401662113481880087457765579632501866490225966806466075062019214121830792956944619946994083567280349830070507142944966602073786716956834739370175687676407256171579075828956712478167000303404983172498302751287717422839272672757366955224085876540979914533686566001997253502031363133321362380718451378091503876535225453341430995244234456808204344512735999594867448394931283324974903877628106213241878049871564390658786585842908986720444376329658030777849945939777890954133967289394073018028709172071288658206581908996629023557030271951512658144373863253632580103314946644880472756486975458100103091732024055798739975980295841295950935400846890931267071398548964468141268379783260811991515234778658050971103871661100589241727098634848716031692269567219305474923296235975884287341869126153394890998209045267934933077154825765768576965675601656016860938304728031212410562079975708779913492727561196767587434227544444351919741130901286515171830922809357149929537603415012368450618103477565118970027667415892640586689105082137755037017550768237231749937642518579031410539221870369807185689426478185442724994251896327375581565466787034967909595231404399455342830085237201177564705185985821949585288942165752063739362517321739685066033215647468920571992238689395273130192870138889248239242038325474316689880496225824724612487257215211175779789866055112276429417490761375715868410679364201041952644451520230427417698786971646300331095577307011089837010037191566373125259603761649594941700456816317963882049799205827269973355109151187378688591269084537227001145115014284494633194514573282776219781703644301867111788618188470602435650751215418473210939945011424911763187084484589456374595150733594368999728133087104947114817897825777940075497522159339132792632357930539336177172838765055538591170690387087954735020162280401197468345983528998278674654358500621906151886906782201221008865699790104938868995585188496601340828423476492816315536076714956611447340646669810891416016953596183597124739246319837328143899660575417111208185461988607103124663428332243809204879070976362448896320723442236495876854097132025969078548407852074398107531962122762889761810027572315414186261297922253314225323774487907752710168750577970871185704896484898330356986712849701216615089872687454481548041502243697082029988910979796753783637080437371780259220519850231943303944603444033535074731469740408680691651941316482253066478254859308001775904364108976245435378126411173525459848841096488229876120502677365070555135676769074554997828143927212746355266769121304217509071630745845486569405149445161152343270153009890722840415439238646996456739283574134507274356367953208297321391670022931331708793781276642165359156703454926431398583724064883499467697575841388064384397028565695484748308739707812762878524793467465063231181244744761167482526811547170013391057094841874119259838469845309911559946404260295985453176922308966224008984042930865236044611225743112584358471968491256191147501188216122465916431153198329024820453543455333636535362506687970524267105484757103186637118646710472928989501876955987251993870266101296743443348961102133806223657972929216990259878060198497190507372720090230033818402325949237352804460487327848783098281189472983092801093006401232661769479696308942929887473303489067273298933270802731276314871198384426397933469082730732514520445227942036355575749686199272864456623504797010511600643550866900532993415808368112272899794282364026564567337274340684530009288334900944063788102788603708924974632996312774534816288498661215485008592031445743334392875723299711963967386593207912051207772681493375104903998812274201003816553371733956342314492355955748453517045271568844243362262382034276252600613253014937604933347378248138851253218949334793773968467605748555213991518293281866464985768785580086400435082086809707435026846715696061326161177709303793478473718344441946949241998865944664221955606730480595616252040376363060837037944843238297730398583856267612453185700881603903606900545375734934588006077418989340157286184809683555066986784712682702521940071068906489805878071134044015496587805144203586368558834133620554292930818989592514664843650309131931849038377738094369837845888150413883706070912468137707268173648004755003296414134383816921043700881689193733540597950055867443052500341668610210894519893478191000543028946876756394968365653853706258039141831457221922340181204505715505536612583603503522265028089598596879737596814595405001962650773765621490933181151538524385653432820905825688246808244922110661609960838787841304996649138105474517227996854203550107497459578193740335854647361449898251815578260286261323085391980979419985742042442505318037981223788655637566916030673265886231118356245277499945510746055566106275189907484738738299229521256158692458620142507458096141467822095364503014297470383531408338815808053076720249462002961523280400969293929932039950634339643986473437858797818719976937125817185254643663277641794491330222052005478849452301176095839040242397816183523598841000160593051799304791278094541891620301047717070569715615660598995570418293830653832903733470747088267492766800596027560488818779346462886911836979554192048842071526656412245192201262133752791716425448329413192608981020827104323625681414017533753601505506611919994428251722117966645853605381647355026210375305395024455993618834672954813683159512081987020576271334742950678499268619526380273857545381099524485701363653768031719054486598306709058167624712855748028363986705992106895521803415544390042778609556387815858359231307227497050117131876959715153800860673456371303053512040997868595589288034301306702695518959974363838776067262025472429787445782132688758203352194846867445354572777394053148068275590161007386731188209031804315011907659812763135721485441952245093570585515153296110573455237262536814841377691244742300371103022610825831151830107411985632449329900588103067674549811181792484357544295331086816075626840586937973621955609807612633724724562226889018238819735647488774832508264013530031492292139822210689536487499639762515741078102608241607043999914174418505237160482116198828101628493034218897475393990164461688498516603248100702159842069027484637968076077788586332589959997872325986614211440470003558337464237323495628747427978541912979168921969114417743035956628332146701936056567662569728261158914185542094582045311853947737284011091257380503270009044538219863465003254344435299566205586866500634022581709258887906263477218269594117229402238637108058664078677579952633480171429669576904988582429512882475136384037478920041990604754096166579832661491463876605327568163158029863970272101374306969568292986220385717980893747191757955148282499402900709558342620622947270734220327096947688810270881918152021662884653914248235754848911366337397252866530448513301166238324747983408083407403081653058049534346719893234301117105957924381115637931356360314745843740982886707551320045676679982263981521495076780132139547427626407022982461463533742118172091397905135716815844729584242054632028230374070255426808726555671560484149711652144750130894220353972514289659826910147343789092872571949059667617909466554999583102750881200108945987657989740046844355812010347681170783631689540052925949700512417105843889069627610975343438782084377359169493809539089156223599360297588382722084734522465235375013794934547914800074090339016125181888613053690104637858456358926262013564427910752541763971004512816467171873468950605303630339202822304944229935664329067566074749856782955594638680806039261450957870640547057353805892021111682891384820056238574860128379845037557178227617384829735474483512318984771045507969521066096920573546867902278912263311322250688618372885270752353507064907902207536088023177329335493713712825308326344647430419082247560594167204653358669430205131214893250808574703778437612509165658360323700885644263337447012591113709235943813618400419777154090352784362432386653703582396487873378416331978857586939008051603791019036763942146340537769165536795158540067999470574247573609437954906034609997843399259249717291866350678662877970522982428762218239034290182968050889856851497468007050204052371680909485043225670627885874675739818733642726758287776149999701965801397288330992951212347377521855891232567195757198892701519403448145297615731695616164388564373330167815928874656442232436152747825418685920565304565222081574019924283711527943732243761405419281511571064776708110089085039037972705107522484545563819009486440515798788751936890735039929130690283303020667304935392010770768535515104305338006963904229341679121384792465892375557798103724934084295629082995044981189987189126475915138365640035721757111325958818136365783828406272056669803998168920510346553209999946080953468658128087875473115697740696975933221022783296225395489344151989715439597782479204443284398154132449508389867676632216356238162668243457680748539625792488053899791341505779294375846690054839439100560303058979015224772801569167237680014099478058896040020825866955668299194661155134394776251906868924734539473625957996856766566089785317595888525673641531190643900575191599144731153127987607799216150112931426131342741901516342059267381533950388310586316130388973864519593494231093370441555008419726227714478585576171133011095617665362787948904476872638183287192303838231264008696480364562156727474300806121728090592667771097179830035766993407570569868002566121578839755402340819602017084329675208103673494798439741129857126476191653882771280890127920224278847435584147098078975106665657238686733357677703289299221836877551697274429148242034249713596759917040697117128535877925122840795361471504442864038246305545730008349183878834396706767287433377882256499087934373741034172126504920104441061677756498973272810440466492212803793393599754529342096490059169193248489087304882155021599302456761703420111837928472212105943077925933523215112441679082270401836620894624910453591681140678938579099278271836931324232923972816447619655384631458774005105339038926175756470598467259942992789535133846679355273862099232033844790624696836390387644890518411959804007624082479605038348904176088112493662211737011796159576475778674099700026074925617651248611341997720430893761563846020352919083028277150587951167164308199388659043005325403893674951901162638497653206319128409323402081581540236751832967128294699203469748985881183208660944092359903295684254007644885840915125531145601872077057541407914775748899628330764320752860930501362963028460423233212006573193362305411990905108372174773630917512810057689167349222700208493227827053473249361100511965717212354816626165207910562070305298717978157461870269262605318586927271429930195015012893349230681974185038497462395460987423313017488231455787515248029848754442736305270077990290206452240156298276163623011080140823264071246086218446055584898492285535532146652348609945478404217430936341941464521445502284401796566459977529222787133260154427305736560639948558026693161564948178532245759942944896316505777995693659574877309839966289072881750948575228021067840206017594213203221278349091641676865172070497781576706298110981379521522738511987432367018725444289769066653161185001540249458082214424260242056943683511834089862323608565001372480192331294136142303997659627605755617223326280086489893017191265474647355108628952142823432398265409655055363611169582162171868862403338522347324846438680054509998364224435537005264412345085393477415447772702431407725397537364912345781567547948303129625858744568134273421204604060136981847982963670044595794857335336644313247583083168063515520925278899572077791320366404225290929966863401827586701502317509129481145881019373077682728790933708618631236754281899432540113229640053150248624937600615581412951623644269119261389836525379573118428124055953951934059845123184100156070192255896823372006914355840403066203796714275836438581364723557903360187595117536794329571007219741291729457504787251362950765656018923121372671988246089044350002664212142450014390228952795198304485756828298717738399170456535995137271939154721873185439495380328192519988641815408837463184789155778571533122616123598759742947365006483580401497349964170946375310781502603909760887798322470053155148878739701262224270758642634547952342381313074872139089517461688032797580428702961202813171838312273637398713291781560405451449575331420263043499453843305853320204616444807435960511906653994486181035541021799451322793902010544004399544936691292257066787124820308399166156674268728757171813587642912839237975545119082075939056781257167880854204251592071911031118344036133311612299813474517161522964065291656521237398085124328005540731031060896122594302052738020218345306933130594990894419412840231656102229718377027635702027569459342467190486747248727422696793074045769677152418757993140075873883921220344792902742836530135248728073072173554752416847617599179931066562776324869662357821456803240627573387350924002852601834473233761858400022671963669137719490939122301036430726947766417637935816388206281726512353916830408337256442811250832331832021118371225288036193084776793071517843004530742151628168766810899483014214944333010381025350296201785565275953598129970092968470197121946705452152376423787827401704838990209239713691491541070515189925507417467245142978802787580230685836808094089459682027258168431914326046038413913048479763249983865837531076191925945326193895233749795013397486378177501765767200548138487399700846474839920129450811024397387081401742408838913671321805099611265010861089414909622031776990895791090270483427754615222242213998953936241921439239491576072494971207626754973701022186983713345154116479021714812713369000897300919876849733542403489776973652776182638729390405808289042788855967174537919085300350852966016674122040954763973620456301095208707104587819715988964709137646645465115836626268635594785580271070408623568275223047401584537543480385307559955553838596804390070772872379294593062343915322373854530918624761234061390447560670997503283587156561812969987856002454543223648439892890484629466976058749831453274272419127308764247529416756979067030359754368670395023146401511631306984005671827384519399226158193669000188830671896710669003931120813283236705638001330019263681951196622547991099834540778710116856410789676677455583370472937010688811571931251698140723818077395406096683825039873542627987910566531323346766910259598012466145048696506951237320308875026543484628849035778637763041944895845525506851983230980690691163926932432615902839539741937298156829527090529053842362126316622867452800111815348341303085654903734725682265509966966010805023705744365320040273191258479995382780049243480170446063381056139757664895071943635197987148642556686179001175038343106883809008565088604727622217902309805955736509440732971050593627405148740946162761284911224963917447361655446700159424532042919582711045844800864900626176143934680644036282360871936492541145496366921212503939982339791046679476991175858262997303882520227637092344846888715457562415977487974635599333469614082581109130461607723354069819391932827262798371651794735100099075312497700565132324118838195742664147659398440104049549270608009245286756586013307631745213819563420800630562019743721408405130204529854608581905919637432349946271128270190713139008084372091031245422423190866958994887121426135178177340531632381847812921891841563372333661809452801357562404886150862062976292785889167815216312449301087451235988947201757486619289702141748586625900549096686505855668399037939107133949122555887874189623890891427892733407685620088400259891428776157899914574368767929974674656810153453173324688827155137058382026123371981994439175894099000584840255560328708368804217693263836782887461359378922665262314969378550155277567965193702601194677263452899914444857445342945315346109329379385953419676538757751187172467160003824674494317299232961179644767031855293444221124543999572456430177575886115312553582122522117911442389646469869068486460523365843997125214711890737511993869649883275511599872005724352912843460683031984751727660118227621545081126746156829758432799883157147594772961473576233060234380186678891785904606757230062627706293111613848387275061319071721973252388938778198335945847271113582232541602879103851385182314509598161600262579351140785120711270410240025790619007291179755234325776508880924241789808815373926161789177206315818770110751713859144874548581974398106106893344006096418110540964938931783775989640055831574486331271280016152520376210839433013918898889855665952586563895387185541678663583399695211967715391119438205011719483952993227072792599167529117319993247053498456241283605083386578849623349052859288155609048585357039078655845043963339617132660534549959979953398876746910964708259422924204514168341991273658472004283347887883890526304556078508569462386468066371856998959697028888731795899090400122647118273335818865434706059776246479219295528518997301157575888141920368664014950083035442759441294917532373803943115680515009599506110214154518556786069131364616243390867570613441070759107398866708617976935217412498356634481776951887918515939600648826129730733344448072759986265277579559624867975431696917250462348039755891438702631386115403660080221915473689954252992682874334468063879833076850690507895676607366558015278589908713759726324105910037242335046376766274471362099080096820574801937969050415261647180324619420112203286987428551872321460506047054274541980820686036015686988426945429611411184311770803181805267184943597429620003710291395266520400493871900588291574080267257886414339434918284236979101594283247492120674466724513516343769142833692853582527076106081092565068639267066903685330391708588648960550964155611791631992398485646312142724855010054726002990880228312500773419985167056524992494650139215625033593486471435770539626299406465449760259122932533624860697102531787280427429466323808474495942249812658594966788279079614527736333266782336184703655833085961214964149741801106781529683782967926593611920883351334203952454016024647399044018427601534981628013070814294192678548754243302918784367030161897475324296072468697055953040857981684313183568783464094333033677428951842648036859685138806415984908566833556932893251234934557469505747681773774551096688684846856454988773272300379594970274087882325637808117408290827650696560512952912067224240659461623433478749117539175451133817928856618299964834530370986110030577877535845816045916108391036418060412294915405678789802811527798834031620918331202805549281649586142134416294515157439646729599749770660340279299995268699720666131916754806010964228837657870968641130768883449855162418765459972796998692330679022865317085087230448747292487267280467514609022577708171093929728065888147816030445441458511942553727978492461479676973336267923604491052015952220175341718699701232281054181819454296238837721126269870683399638855011689754612321592418619737347381954555861854334707045683903342179042138061440838525940913534055424462261923317687019318202205108524109288082071491298839636288561888295105251508359006527004490247983985627912392134298444341543222106219036113940188825717025636032835846498156482703209918838476921726066261812797565759707465357143128621650251883391005439205871350776545812307653339698676746426276591342199595245571743595660280221576159368267133824412186463325311706410384713147344909425313432143089056364238299634344220027459011545721120505828725008189617863312348271766301971201936765047319735166160200961931747769285443810795151475701499067060435628072094880903714548364552640871751431895010019535853349565191483395835545462532443738135832212734064276507540188210343607646834847838850182479198436466181121334755550543340060480350394496499144192304484056993291555331173782764280700415105837285128928916125784896705755796080851431354377128375388528111266600900628588163325936878856713137084229898046229276379082776269635569581197231321338495027484691694026456942926403591590281592364973910832416909003086249926443363683541734174858146253518815258706307859275738130915707442194358547600710976020462450417320485889316374575089588418779268440578337992571458692276515126676662369125302626425984466345705700114601732144788099373316822025404514930234166488947792184912609175626091390938023210235686338906874210839133536341516294763985526166399768762720630855039241058119776268235501517000683772925322435634150958669089989795476708951939065680265525966037269259275417420507918075865650819201747609328709982017657488042547990933872976846655808137900507425625125851675765844919004427142345896505842291807807296814388729410755624557328990087798653773502653885152074501081674583136794151425267349658395860054864983192369720084557179566457026710799598236277732718477971329111736671911653840642674611134332644951695459889173058913547227899296796277484479045931457146719053130527512770549888962235931420657498014204094878315211880563633466228538207792443221112768123975559445223501801564454017171004066560272557816854162310268700250294258210158091758164829598597541105221778470766637368181828440513992106583257028031730574855002725579637712968135143095022095570903031539947641369778287815419327811132099874321820289795808994366585043594765235365793972937331638266246615425858188925475303594669531878113969731453171169794629837349217829488661421697893906390985375383038992048211832385512495178730254415696192685439187698152474568793113341623841418658514165211815176164208912341147932950739802882506290550508524590533665786546532744672685216318094023075093333356273516185664454008366042249244429737991214492646236468780052032392799825273310433914048181953644139333247163824054697259046376721000200083644308000031304155751829401975445726876788842078224271018640933730681006605910816472370755963194618017335679340075390437577324303296758891857368357718695293039176793446337482950112392030108090470821456521896280466579689615602292045277030169672153989615224687427233071478704099828604190409981091186946611206922495282062750438103436372552244256410031514227255635785453387178233295387756210658905435995449447426287551238006535504482333634342168753320313129166181913007327749073615637744137611476369673155292305746662053440862612176892084101064918306160990076675638280758474311031739117613991694334112750909908132218491991369845978173732841564321044881035460815646501714026575001860388119270910566975679775991112194774491007026205962477500798135427334913510662691542484323658886198091197911168103476232739233326741168714995274860299761720443575128541061000369919903901000448580282355473263408637192413405779997177882087951434350364462484234980722453070244299721206229920079517460796283050921918117842762195654773246335341247903940566780149104806677973688333615092550355844359330982178746103665698948572441131430675702836493932138103338638313658360370231158780058645007073614832523582574876223638349618442956608570266387875536242385769897370214042834081242328287472964373318280355436526407056289529372347868419567478549205980960436272998313175839878921816967943427679889938039494293491250953526039599771969383501818196367975946228052886932473617566133832434511007374363608737648203723901051470581215603648563507889778764891913405516349523963460163866098760411036193366259053693874182770699410938481035502782727244999502811598297283821007395294664988436887543700483600784272076895709626168967367811533862031296161648214851373021201271172259674035377421369941290143165151309606021065333519540891543082144893139943256140733717841363294346276472655678579819835041838724753036799568086403214982277762456778226491964706378202589175960403103946942682685351886049175981281829111893820918981656913805755974040859121819090954282546281791369672778137665271026413252594413815868213846734714039556846223196851431177411988505945923166207564166754815111206638841231340668167127706954175290227708617888186379962440480987895940785345937800904609560890042126331958564005774396920704509480943292263610807225557723243491693590179453568028245591237042774238911157076322814939876664682004929978984883032780596321060085495371581125904043578495927188281549945401522263420375536182522655301205815864077615299199331130953945691356124260636342150758332991086878734098363412080891217078620202925587772066457817448101152582475116710762260002090873204830379978219157351733847645546686474303716024070838620071738879514181636422388677797158411906267911585727573007533500744060504710043703988198168086186083321227916091903031152387124668701071903918105632647945991844234639438735049100357676335980992424736411072904744411575680243600646660407315225225185275059216585201600252066038485118861529499171786521853368502180870915407101102134857706582658606865819471577446677805202576094331148672033492909665582432701682964360443255642856267194947356101718499097668361413769781154676814890805496804701777213621882910989468687411386724930534720393003819679643432233511388844987381705859757713776463967587657682923843781629620104775289450927258296619287290092886717993367497749629319438988366145854574374959813640871917620509106568424167155760403378379878382662971319847770402113916598227998037681564319600710837850727188717988168731084924978578607673779106691840371024265934379568533298600330049202194266935442042824272611045700131555341096809332085927593469611904016646382809040482943542150569702954673945635809687692847202435201561171323704034227924070379734672081066805972182141784449534379728468862688655201934140560994050029804479644580585435810307610537226364037455819743474152553595417475497191185851263534090795909308413853636187048604619906021175758510534451653665822916093555247713655588439183170811303893027608363945065500384813535504114559322617267630834437502756024016979608122078670737038399443715216387131895165433532860662405642210721827916580264745556960919729749943185090294526771568092554909477680383153404825789124005974333579984104099687537425883440575068032856365071401706670306112217011895313078648272145139999127864483526165359483323562303090667572264000603407040172835104542333326622229990092498081892293740505805078313376199180325809551318875370655565445201558639677629675676922424956108185291732042341878650236447719340819172185753112614529773343943965063029704330602193361099314133896155754983390125147471422172733346015404516717524454588894537225049223301755752161398938075173922823996035260840090599016271619258738144193589822618927544825550579285009874286000315205068796132161634054417375203517586337318706516536799965997742553616020401891790743557856858037350802621595692331347002911107098358117568864661474169446390925826840837748723834741449582768310383206574862021727934407737542725454628698364977415329997248587190610334125934124494790858124525046170323690877006606184130739455088153507903216630818681536966223136138141292392914133253754812119485765241030262385312698234529644183633425743007082450239330366271145254181985583641668333853132522944374265732287229782001028137669427357930516025375494035482582479581870442394971235230266149422772270189900364730185173698946962739754221022044156141699950119493213411653506134796154049577865101730443922940733735213146665858112035671198988395406003480467974737858961739562641063301643089134299711468642914623145287254416919461151593286096129418256581064375093017661962410827580745867826388292440390595355651298284640563246738612918968489615422970293365230135322459723390653465927456300297684133698714313316252007050598730584626465814060854571075679595728932617624301423336848789244941145144902773221095556378170308226563201375443550833303014329342101886712080327554875115340024667859301546171832660558146161111753135627374558472551926424255022147776445642751591455096083980794098241350723327667820832242708860568745518519959525011978384155820728974403326025084501994354338718184156886873075505071052505107470219659764404745397299113844028867034913491238892011504042250497836618625815470691978679876161767071035626725217460543279421096023454263701094179479970519454013520430645355150326084404074393792050336347442555640629644676620899373550606657847227150746742772899146224645514266079338362031269377011303181200971678581776946955700845061820068451414189214687569593666481671201548654198284700739714811635085059111063164042740696389806771363828088958690661211122492957237507753995651485093798135912508579625640164641647241749202649660299284441151164736028452403614292476394542286571254193289029144834605440734287995390669881293330529197974217632263369774097433330751909034122988994430930513459064191886563781682348772855537955170553969247713591406438242667562627608205230052648837699813152787212834268074161912868358029096062595717334240373171029937019046945573373575071013450741833241941106755208992436568844900412565568290544020796741627310794420497567380503193018733340137165931492382095952525893388224880826394123607556043719949351100194477564464262147037709245625012073466007687402117420924366880249048421370141297207767141542741086085159770611921501811648669509385066160253930887411334065021535561979034918741213406975107842459826346468240647484910906165749217386032336835208245439849666056672984622894844765380143979896250874370216688307937631522999967622156802783302318992849594637138221335292453133031959896296948969233584437116847355972356960346020708846932976833617505581574942187640121185994644213429966509982551443245346769460955170856871490586808151396507433047306492621999915388263531245060865571973318500228329394052643930786919395146884198701980916037431994494570197306557083395377953246297707740764741810064205191344552548254842176277278845099194290995348109546971541587837198114743473179931501358832114530102797669380772274363699842825995014001814326680070030468080343568588679281645459594832884240664976062520721672621935872435174934735498819954594611050026852457594304449498986527577570292653993907205760424845592185729758592395109362880230338142154814493436643477668264455188131028105730425341717103012043856058304596325517446464107572747806171213537560404784140260893901568015501669755817814566132942972944124519990073527030897715550905118591175904873445351091561817893555294262759366908267244269347456294241374933245585746709537888171850106540348955875765320891167898164464587088476394495180989639533002210886561140362057966477456641402256651427900206571982075719039560674619646017426652974895684776654358090736624543137384395564437633647586598467381823031540091014705430551610680392730314040088906605855177759410396611960954603905045417368306814344922147568354445084035328606372695334185864510759689205539855020041459963964968157182108681738557205240787009425224012065337631559245128913534679354987170380358569874558983283352287849336312345640558888650293663240151352014821789305356119074286560316029364801410194451691924089632636484697490084919646830476066718535444842349888760745005406878226529156161989758429768687305218203036328605108221507263560950099555253103053214746998558663700660071402921635834837561503705191504790096253188863290365995078139685136641157271014123481401380240304782592170342729289578194760290460116236196905914925105354006575198815233406431953885321292019755180698685119443326458763504139547378385007155646798474221584045732201272787879632870250523774096166385685903173001909723673123350954705124619285705296090103959606195410381225357744978152446667974611335178973709761184193629205601033125631082274089929759263048269886722880219144440922621402935930555885103247711228943942467138875437822717024923661270026418825179301811070101979989832758876064142944400163976240260997080947542495739437048526001312592710661629462295918019328676002995170127566853203478897237071922563651895680493350877049777871387874429660385893801543024122416454311877141910625825236532664463403803706867248885061918971946577002948232206863241604675467179024339397325830426374718373479129453922286536596747303522641458030272212708702404490205537300535612971593837478746150789028899939645073171387646377371288686354772922324711964070651752644629795359850778308288714528623234585844939226417466680904152532964980432418792828067698250832840376159754271093317870909887893431380041125330270514610992203437042625679657973600534786896323015152899284231718180129668515380779346445249978287879193757361060488300618645084189885631001210079330380808749569038394754886956418353800936717111678306593640558192042078778863400261724422774902497203686857725061065119581835656563586834944850846149253571390281549072686360049846118053699693325476225165972729155056906383151803305544243509806769718125992800048635028818271886773682710328144238567954421014090034560429221982062652676800960982523012141385191735504027317446341338390863710004013929349369839171140067667138071505433712634907320582450874306930891479664119435483716286663684995724306450609021327895511115068442449562126165689316715614343655646898600004756971200391046236819899737897260001180686344080240731316791830809498224248734277457641760416134738462249492666467829126176246375155714171237769106966311695842993254053303729625703189395158647689358086673563380647609946943676655064229697941679508864962196153939283527611388698475799817546854844476217208336841845948597612669470323633802580695265336167171102786847705157240028996247831735062882320651103250256850925214509880529053968416690245705575338361679510622201438049680871576039921737901215364511511231756615392153530639887976351490215222378757013820074783148862660366521568260953297113065285750531362749871209979232766289974327095608769571371380262556418977337864106954985505678188466349000971534933689963621330299208827688284088655546309592459157843314319766032179829744706953369405510500125777448268182631186912412858369727443485990016025248393498270526445482541520579476926264505760462992557863779249254570026142218193579679390570694114310014250734854244232285876845567512630744616299234403378993991992100932925424026077031731880999615940224001208081978318864200569902773908996157033688101001799992080721042346720746190489090200252891491024740869448427514798438928785957471916920780803399823922942670066259935098388762994636513358709862833091073204248196020866302175788939057618017800102994224572933481666383210208624895010250870231402505617841333554162305008647066944008926059699267196674349528241147299928474417058188863473040972937621074494665073412801033027704424802926100179541293627634058858554555131268356189354353942344507462217083256753917961939185397631752190842635128502365220073110482602874508964303003575086176286502412359037113909259924299763327478861722386215034571212845892661088921945236858991222650650677759965314090796414359059170155913327620078913241033188081920024968249552255065585167030517858424158226800235520366113331409083177245122643510511666802343583192288060160026170273403466730188924762802150687846781923149212100086502259878492110262827025928758371609637551185495585112144638495222073745872823821589564421443885426828294196326987366362855935432612789727908611869426555673696864865360729191764044208073974252840732705214925584850212497830400882622080956112220859320272689946185609035863207734103676519392000099208904803775034787039877551358252297087896150175774771857963425911845147803523789818090917427805671055206167848594460250417032551516624831400039836327447605721849108437595523625118501535565838316273073001354165638266769623396447700767997121820362799096262429648100040874790135630631264131478440569622009495867687571288273111125939211262315104747760121810363571135905073422532912013593113138115474818641121552318979775344371997887894908318425286112320214462708564773669847442356966836707917192041765069688020081867536779299318475577947441730274313664342226881407403130011665473973612078845784302835136510232288586849376349737282745165609670467448391820484423196253007142757266561910967046361627059217885571375249127627915273893619804145250714488551613919745372204920065689799622270476194898976707039015060999004863796429853442453282819344783582541096388265447208807137757938873232488822296066575354280147674932667143039871508473041800227031888373511873724184842322728498163331840538616703987840641805213941991583486839364933202855725985451153663959028898028032788893337626421257171942350860669836101704174373102647809014911809412186041652351483201623522126606064771837046929844464981086141720251459164632721426531811147563095580819093834366607264568985164483540912629807957926454877478920959548893802041984524191111379957829445403340042914731625027148535977591770579672228194498553914075230479173329893176809762481869193519292961638487995358185789423949489028114011801763081985477432552890714801974326899014927538515312443161659219789499811490695702765996830890557587764116553812162722539774939101211416344760193324680039897776859403512102838523931569353049606895846603609234015924695886797207915024262051612685131871116735428477308503889942216124022246647415250219480754978223091206154864064285706392512594045508958964167823779372808069632570164278271641845380473549026935816252036454851111296119925883692779047649483121608146727911488331723328975191964881459735929798084864884106346851449197038911365491890033272866112840351406433361005575024454020107427241616885130559089207962168771899620317978649289499695842327058983947485992586764025296592190857391405961659925067220471818892277689001911717117962735966199561032848476202426148071658505815716204482175001006504540422814584732190213258984862440828637125770962805976353226691673990956485258681698651064603008858782833515239840386068448924955560829611352239954252402348426852939935868511515847278118099330726372104186736557547532978875497326699617620772832217124673224916364896447613947217322870488879572806546189801232138282999866251866427494817304800935512908938789932807017845312725727532289593721797272361540850800264309058512135044874878338705466828273184775935492285493992941851486140532354247261170377608174370694376928440452084362773320056528045195110281225394664557779599100010644591635346709968645087913902367735203835583310670406853569269080644444847191145048672980643612508883121846287278218692042659797210436301508729967453246022132589268579992838838300841924903690173654061339438509813600695884938968552067368645874344619869577003583772949658336662113875558670213450547339693874454020080413657224329094538821909262455451420196115324201019724699819355147908249918127050706318999418493384069961427185055359445705398449840810003392527270858551861945849619795618948122678747910253067813506184941334145504980227379503446690681377077181096759029204835254815945973947652791134483606966556670487900932909311755622087537172935067618573259872351387418660079530133211530626002191811568181817876709357496136816301961204044921652699693431161285678167778903682802588366893318461569482691204856074068748011091769671715671605460969800907901859136858468111461927616442559869926101275199763220958050702064806450093580561959762889095370851009265955304425434523795155053510190976719085702649457854464618901384552767490919524395806823236880662224377224490284509745910238723943958367050832304344921106968046367433471459694222415495191733546203421606339426391521050495811477546587312233010373407961920214691675357564381091744759432474498527889464579148445837854542854697218243389825527398010520615320873765977873606536609115990881176364383455196043709095170048989872829791594507843788452885847951196012423555236361112606838666833723855432537480928897572234392745592352434540321486169122341642237720374139224753030114651551986675950943570726138008957606024268636077360645449136417426544837811252235717913731929600473730836802708484722109503370428934921023459249286788919475518096348906981876143589790541141287564947749022249028638029993539005209119584389949855069454992337845150577221844975939912460627095875943933095337635957884712692833972949357615877035185845901661811250266313615303358652446200763253253791219173351470431955412160834034711196085426901380248559394112914225891163564566127013491030011349347158517081328546933112096535551607959302335255508399357071512960229231349317682376359678467806932596528603508504107624904397967583145738346650395130995073622454817346384052823863019392320913406888193191014885593353915900194245541527070727626205477698391150457407509947181182199311807854953143909788230411591065407619536977317125054647804173268795086585282830218741330802061760478654598616214504393193203576790113443076719943061289177309164236380364284339842062775397929812831736755174630314694005502785328965364828623486735857809917393744882587699209082264781250676043828341747003776036116276169882926216547371017981117041035542309012788584155901306530721619397799161403721033515791163383029808066331376422544483842108866737767323999493341424187599939874377183973703258915456071030954736264163793629386056527335712818804563874364872391857031959819144462669230339308419257958575962221386059632769592451803811839427217677344920405600496635682708075998419836294522835124038028367413480378497311608013604556574595964233110628519510375266455688471185896968000106772940484817524747964924902880595356170107889525203313817468833881148518190224812455269084813619954310803894650007117903748625282563935688712897770541640219070910518610876025918115399468805369453963082331654933689382091052742916004310741706874549328523385100541763174528721681595540196119089098238221942492280715175296995482166568761992688392550314105034264425692576517366162953532360294119551900091273157422687498186397378693855965966486732305880303824609300974897383720209270206123737497252827650961493995968157884364650661113856338177320648791927842910736666502669686008770829907186463512999601201571224436455994479629649220297246874639849907053800752641076841087613109486033695966453928404916618860307346968208976179256189334670425548278360012486996167800362398123167198432372871963222870591987113543084686981058321878897517307863916457477066844254237751117315279443310061253152007134664923444302261381430005302379225498860698426530502095781323990286927391900460555839483508992219150966825732600010704743214030874123838854946971161190421142988832129184941125000413966385550201448590970194521227086872031583081852182995229503728223738394740019745087807603495347441434317934767027225838725544908078192268971491365101067670488236187381903130353090613783085007004004893991478971280648803268858463981301459698964785342643383783915082596100382890019280410040462540612387980542601732471110033825569748816154809539635234599064061293893732507987926508946186081440455822932159151986697329618401185944340887417773599244503924602917697088137851454445029654949476964758037774238311021105352488743238695744211413862271034547173993820663600172782043534556057015234293199326801440526056330115259527473532187686237362407062216590741014182139894303771711698429910005184672481188674908194552139781623167057916067531687360232317709141083848246788507822005328447376709987169865980768052731679553350326022211776502583283758129030071643018378174518686363291370238007212177352996610183250554123556095327054775470970379412030323516525199228847671594254769401633184926103347488131078942077312449907861974218513431228975369723192852642840993442138341139786503062523626550628966772281349415162161670775750333047859827046882501697095744626672816220709172194880294330969018043313179797789755360938687402727953679228520120304068407431260248942636568861885730652723327305568102283417633789812540230501908186302827685027541372400513824599589478338748059255539926143094499815302551447097872432661826684626710803359324702623112287689983011269378942020376907297661483875715030685458294046465759438495706829596954396272034166352199070259095538980935563888373786579840995314940209123963892114134795650694766320320124190110008559171670536166294811113304462660309036375575329317009911055895259527244641881766972977317640310543421897195576910151564760230477971315124756410842889268952309342433699086593235400419006143841222728797511721680773846238561688778513730921841785632888516519490249060960329145547369588038506168442694648811072438019964094683455782523870865979489434827307230287723019550010223644491438512093556983784630023308273192868268741279897679761494407362772662413013499190037324647844604731488096340455971626628296339679933289149817849980071317555009174298486521884431681829848054931707029628042200603407465429193344075273015218473180846063070244874084834532330723774202005388790239079770150137825100719311094690147885789505857044236267934930988810076571206059475426063159577003074217636046673339663076684039681919123509736310433758648804112383997638976369503529333596463480353209679951062513601915680022833234464609156737347035433198835432532799350451499436869009751904944308990077383684958549433249868289090660017939868315238101496957041759602828360768985531645185841972580153332373563189755971336446776001186239083603730012269656706533978311504484433390524469537355601272401634135339678328562578464172120891023844558020769277431894383741544599808242791667086566218643001197158830104499920476558345585112629979545552826848122278443629606143232210936359987662907744109810517703284985150412537931007014993770861842765270994860682346148236122644737358032760196099752349584833797851058020383745601669450225933431534226126997117668116288841683180674039435264443157143254201125335437033617274246699990523387569001999285737792265104522796477057922603725288336748364425372455565089508274357344256098042578357456592393691486341250395369037080887473222363115972401662278636200060313403189798432521058055572602960122034132671837469814151526230743260439116477754210565807678445884490235188396481499704649822334855518161154926559761730487351131698272227770563293541966402972309552238416271945313280749223210421840083738479494624959147235668592710238519706494670007871035620273291663627810238503071849705040679425892878521122219623386728349409730669917364053241674757489348021653521093404837852238054737973067738870634568062310929606017303963246054924600216632742617950117736651226613875959982031236318546512765464442032175009779160968262644227717329338026270720950537207156423185318649940397090372267355586275925302912023515130515644776401478693742709762212968233681250314786011369387205540178488140520542566398258510041727857778745703210599062207353498946274633783028231366422990184329327564885114464147849086381266826267728546598442598437691778697437924799431261008095653300002493349448113863910301721149566838769654902442601518335284233440215533788519674437658748719131010045774816911565912260367763314660925062900764538913147661450831073308610788690109907464437320364208659580925058188308250142360469171211518687341600546361894525565329667288492257147257339912903178613509359367469731588478680558327911441502883787116035021146250559602068413166588719439971007146965040812659682506728270135701320271291836738176395965992384255688826658798676314678114857651052625837198834257755368413944513074293250923559953218676994853619035920928785351698854380621682766002655797981072402760584917954112997909995130039834285812534711057949352887869635189374780483008180773256528829153082425332804931513695639448961308918280396287372784878737867612275266217451907884163811251605207403655922029829731490586617020451329896258602649602906976753699874590959628508639770969837497169237034556455620565449376390943918960282205088014706292573268846741853939628228827035985494800945782177220355956413931093675641852023909816494847658074629340407287450410116965562323039370189482268835311417229743247510580404009606678413309134122437892842871389660780376626509753990415679658333651410332091928178486111585499082689084371455235975186065279016333256710869258025248349938847753310125519995080965393058010455907380791565928685772145624531503263042247387655916723867442151568487047044824871540570601440867806648769123117541847237996683362214618655361670680443310979872323528189474279312951356897763248533270850752397381422283476886770094937440232492853515774144911252577467093978480724256915225573917662783211273252710481687130506447425688886960571719440041801171792487465317567426450769281937279941660910175268076779991620074805893300254079222134605955643654170690572619915945128039009375101582062246059358380813810926619031599699732589625178476584056064000939570084173641922817416456653303708555553226329071042115940742093131800733842025243081098773122385924763657079750923353896057704059765496451360657668435584844815259649769743718167753827599063537243194500422047093328171710655957148911718485905071021267184472172120541422927412705906022971290875917167534141739655498595293802781630800172538451693608107798679575801491883394334224620121189609939466330640225817004643763293647939451092293256440666514708342973230025247188167297095418549174413143938690556120478421542941774644307715767918400894205142433696812412169698371296301652166448740998631622167610407910300283487339488367862166815715527394202203612744806954193778062559938385640832608234416546584578201163754371074084444111865271995616638504853630777585883630480537563185899482189879764773063340699092464947170587919006009728400424339404915644883939717168155412885915358521548094273409557464352325198050469030978631703730945119356175694200904622920380194293654278353165833240404291339839760725898937667369695175786377436228838725913929386412866765767399093029000944549370475038978283607350419288152391841594164633072336010628000642659661744090650666617787342627872614263586084085431351170400102311098645144746006550057696641128113623917757631189327821585269805149693756546178831650175176610874730491825684444215531867956172311860536088104170507340026881211804224917483363099875619369569348853953808535573728913434384376479061348647220013716548321647438314331107677366706972520557555917468992007812265679139547129296241045840418797372247156055972908650722830881748346569138346488556707317989117469914920664687040730356554922462902618996006200974907253928812617139194726162882082866729364427678575142168616700234652057274204776850547332453105183885901299435953490284350986264844931117468263305073367276941919709228280748125682524775890276878958885823801438141496025293088057888010309792506188982323730601259130838331095777611790785906341559045619687183487827824041779766549605471388213631454803419465597752964014466376951506901587327118386997628082091782839710224609318578425450570337303273346903571521975632987465486680882058591705120790389824610747858834316592615741713399498695919792693194289691808851696839290908307599831791234436886507239634729239820281593250380645441631945416510317985541222927093873096889528335013828133089057045279128977277718559254964144098177590845136818854619865266409155527503698742412850802768426743307876947683423537257741482206792640418801035700127352197472301526406774246157971484803572183978188365682603464762930880931201076725735824117111417605953278209872113913070982732424288966493420327553615216006565472867390433994158065395333167782003813320682239989073147666206030413008797994047921305816954852517941057925423499832555216105493126293936687889348826887537712263514349431969717938611804588442662655383009521797563579186476177282292165669217411558034949145020038032210969349575270328627283957081728025304841368793806361655026773962455832586369180154189107347778894075017906406889788572674522446415741817337379152213472298013431400859259320227315182498539757338089724208075339248316042570645417759652238649939378716109464692937163076272485123652351481024594100305129905807019952169630367239239973066203475237819002264524277291651005573946344452656326659463141473968745039922513054393537628009880334386299916988133980664778651621226306091743432634096706640630144682406440913948522434124978718251215581487952996006039507544359918772359589973907707450998334862804451100392665223864308206709133449419930021316281031941345893199378187877928901410601242131331330858044494906710780277433791447545454859879935989812683568225372048959004676246833822499098848414697367884774998962086581612806407625082669498909903687732004261208841222249446611701246792449291561313975601049964346223101010305288485451371349451147908480701623229431806956610361877384439448619324350577561987436721190187511134448634653739992638815855543963498872270671080756367200748958897714581721355412382472832985439676096708057767506018436841782217353837855504200959408778874668346900054573304592221120142921460012305338205379507891122827668959337369488742167964785327748226768241913469292026360184626420045723177122060167469431602135175818024577002418293224546095703606078804020792182721671734107058641463519715807841503333830354555708441813384592645456436501639454205328546782587013026273379746542809212911601412725799272825377003913130128177487830944565466278545586088809587247016829929433630556766704640861465258055278189371040508118116509432456779901070285683686126693188914350263513520173323839664629377426529658643720277899559276720316047129203474051722623706101905800131388342635750084078105149970795131701849727388617797883815982182972884526187539215673850109785275648075283598740322975537649912778145786650166570480843794695669945079333135415424257894882273772046404032565932148256231078564791069443451262201017242015257718703598349772213207222170936935777913386702842148477989123484787046501485875506034469511309345455443370978486522368549412373651510573066466755018838425438720830665224989910816587823550214577505000893274589792073764470433939179334012215621149917085634251626218159727416606876503668186205467231926883395993736071672104935795510814323809439766335537330163044213310364760669484172500912708764138145293878307762893372816491772837746396805172395678755618828106985570043460576031908042112043725613648895016248958404287841203521444502495637730280475758316780233710401554903274219107039295121952389227419899148911797189371854915874441080586104569543215176402593734480112733247855565320897376814835885359858642257196057725784912742909994789189540061936876301933408187517249495338378314431600937423193260008907380408180546015039375389052717178365321667784598847402512070288303650180052868149046434067670676674357149083568190758451960506916855315327133468742120842098231260184132622776758087338884752869481035532872397972542915803832308543162764213337284856795937813062330671792746150699579558931457561519922491082251011668859667806952658776688731238932114471966740700028091372687868583065074406037048345392771047256358212047396361159887845207603582572686283781801474844592443990819229930172928810783392480399459012521542051863303117031958018846169639129088632979107632047808891351420344444667789638302857130869335145864100945073877777958749054891431030328280953214809833894229348387453171268747699327446175168297929562028485637292532311540405887728370268787670804113483595347569767348931943856700026620693716431120499124723789131111051120185866338621398275556886627445001240352992173872315827521629600944419805088383928997504487758365840040600736704711077101075209823118315743480099179848472513308893354887096059696292603937397750380025425522205321338444151045413137001410117733702187993417298166439372238901355480305323733712060492082007098535559034357028936681627607671321267217629318259061525123278220471195283391426437294698436009189903955292094069099386685784613015760461967193234260804621236211722425885964803301603188781927113139134668364502981476941427278987607169826199408804766117951639580516997484252542245874815640164107464861845446703915017520687001821544989855356734532002971899565873280092761875980891028388842714231119784020251224999883607786263381243424561389836444569261282065768892850916048703495110849135942416318962968343852533843355706725900165547018964155987110466395814466807155945963205501209372076685876621962527083668578612174169405075617229607158451143947758166405637274571690928270657683634920199529880869955480885818580932497919790946924424545287520626385163628962496337251743831424370904965592673548163195313584761657104591704328046710690395638603038426306381100767130634728415042968563943220764132549173031127718518796615445523234722041449574382336344558951593465001805240215772868729021542947134938249573832145848956085738676354724486839320828924998422067612512392583217196706536840179541430462479538890357557153836468101767150321723510670985776817985738722388047491674871300449573817204286920478269394799924909934857959060755693400838442399215562977823046151628290727326365764950310716924089116545254838400342063799688643064902296229305764888979038820450233206937589695164423949959530356276651541930472588822113784940837211764513237973074628074775583833078342486584427620913321071032015840793802270562933041995733939829160639036727771566577399519542826777625595826207626268725252294414236159695339594677130450225414076483742298071701774132081236430895991235454025349178279795368349662937188437486489542449722027595438970161481093645125813557655989267332868056135339647102963535960168141569875094916031673395715802821730750644047053481048885528344913743882235786914986552026078091598212394633520244476860026622608474073772380082617832415078067106005845691086752103932366437858562017465318795200375326749273437550715838046572658136886705270083570538083730342863170751575025206533987982704617703034399716102359370470918718916889187036019752829504843926276735407891599336833544490220999166808428388055594894688496228162848979906189405856968465158530922154256852031036764830816406618410398632745877175510587788640847955895497191988280751211750693267122531771235537561563750921042076773666307296698876512691269231859841641230250693125427633059437178244365260821762781624988349851594020177605015499414125923202064005740979052230787757336079656399235794077819926038951830062933409869249111987880228641140706510114193220677268791786452114574395969971507705796151036844023119736814148251401108156765128691725439960353698956856325345140413307347576611700130210401108943610930529756428993972292721636550670522506496431511289005923928285304521381283373706950439033086943529755027470598271683914076748530688155872751384104500886741096137387203509333574834254909526237924667375054065093727766624603461309009001640928475169949501103368879046630423432649818098067803899526940207813979677420891092165887114474915767111240319615912454725367132707916031223868127167095454721948711509693279278479311020890656370424753227803072866612499317607011525117341369932342207508792488529629917764098865142870660092337758972304081445143648213997389740934935410857611824967780904749049319314371195265370335360143731843614876747056093318090529312379685268184629792021164128119520727503379531224792584031397481286305297375295182809267280046769862848633020289150888420863167091472971022822909188162524997859907765745725741601602647349263468583030974338343914774906543836857904503763056590877131662150916051436906974328200978941871303198128608322826613478664811595526479088690493903265467113042019803180372191990868871986498720025632081742042842187363603451185761458920976956268866151408150943030982377146176593668572939240712214868560903215597286390668098671675342176108597003361529602447497880137381323295943720556689894310798328162576854706099622931255016614155378330728971417469048811746628329786558617381272258113413023393340268114603818702579796696077016811577932945100971191937366106246151410552946433774076052068450241199979804333623856926067852549650670563031502139243996289325923458637138404688605489940010335098581520565918913313360103445509537901728156649166639284284440143318196480702923419644728061452365148041348735143783921951193013452358300693769848162208687817550645745433138033261122769330871009128133862159263171258860266660282924393906353904463445867024767788229399559629719155764359694713036737371676402825857523857284002109852845103071712905165622164131825373314125810339963823589089063815870065300750664354253665598169832524474548237870656142273498944802673262943139534115917039145603312534380139341810228464229122946411544062504841015483766698406884298143240415311344483508100524085094064560714646480741316591102840046894460015147072313383348818206552074826361984746068964413966997286288881305752838205216136861473387809360410471809681791710552804382157161027369478270429507486179073053131119014252898971634814463312101641048176705307157842575556620484446118854268164309507970712062669145619750160434303228221303479907725643099417779808353494978504187397526056689527144049943460215110974524174903462912813267172496506400227671601005671236945246826228133126875824071507027539589594499054296325644960869387950937199625488625996461206766194947267682619246657417805410441473359614582054700448892691225918046970149543644333111201819203162132157194449354866319651651627162569589111515117990835207839042131076984442178084450843985594736625268489303816045874572381889582631665691159382324692289290879429319426113470814794450852248117788877540615356750471681828855628364661370685572466888284867428481291107961595953405282653432895676314636337404672741429345391126887155892006578342525057280930548542375573040116981285649790737093577853399820246165087299229360318727107730785647800245906389727542106290609072446066770431382970726414934176338435690685515386240525275430178152185186478510470862426687680389112486429842745213962844172814257035445862195726024434780017934117844013270139017669707036028736880842978141585082448243607159704092230594077906677401335183916082180971180138362188990084954233435601443300458696007889464934849172094111191783524924457694450793433876338859255088842554140922376907427527592207361259255341774648512208064929724929171260543501107727485193100877306547647496999620368175219789388607175154023640127049531543698122893365868624255102064734771913240777035937180735469922481484690214143952409869866641450233793779185815959573528061669183240131257933274010741053146686100095285365398047155425642566975294891181155759169875401164080663331780735248420610557048015504039763202152305668672491206915366624380152962622734211571049731046527266160388443122839437501390300838585077547222248647430465671900657004808945514809118123914367083536436034292904861447731586692528205946490995602974420234932149848392760615171978666110928059269878106782585956383980258818076183717158675902732582740718770410430612000424295110832922722356993465135416431628157467894116478976274787888541720877782660993485239914691151119759121955441337345765184031911646698301152778000484435634252902701421058900364493529631417579073126149416068452198533818473997458035492394714578195542829029138674338951625793956081182494941148848973423233470136657066099172605017929844181708877763992669038078579968818164465689353083319495077863347279735672978160569202865420077580608260512591161524086535533029347598285605601378122399010432218859670716948091989809075198928572632607953330966014511192661031189410288305939662585079371741410370986783343828460463305341846807974633713634809659637802207871061140542721625137119904122872616946006574766268020889928567498973674098758514437404249894785551641677045580921422624382874368369164594774644203747946758420540704752293435727035836928593843667949536199142957478118625342637531961426411361580186285358144864110280227434380147168635256844515238702697940251987465007977660573690469239928195760587253433339514381169561201176394260651596356146709824302375565732673605232661610481946598032073979720744720896869865541426156213938644084256029627398455584750815216153855893212627862461717877775339210940492911292079750813417178111586979771654172140747678506214106635873413683745409355035368641541546216474616443168324935163088967640558346387390195141859977206710924418115988470830790951968282929947228017370283822336376789198682930359662026173249352239550251873574225056086776310563147113487570500560359762992823889835697721114275736045155389072885955814792908418535089787097701224189874212437147897764563563493819109180898903383379045171169919092438969990929097719315854907325802769072700836061168860523422553053332712723749218947495388265750034171894679839528036284697209889304308192140577533355202942999075839393291453659586435070066055865058511505842840987132795400416806620918408838080198386312629823037573057124340142454553828713732626819970970314397878095833956171526598741545258744485103147253578885443696309003658087356756110258924953347737144145201400113635040024941333981658221418325311135259461098481818043906171284895363938587290380427991562290403567155625517703659882416034554080655728471527698162809669134081241119320835243927240746622085916825138190285656650282869928653887616372500217908545206468112974086143800289342757626282321987183293724201682350620341414580022989950265220634236100393955182446398971587146045426947334330941886190356373679706726738216678210000995945902608313833126943769174986715407980605614165610625233555417755137094865365697266312613983802725331555726690309967404113997182414318784548010659269619622144982035365907253235909923850712034959400492477353654984605402604639835335182826383659885629001985008627680511695785671938846967330236701542787542387406161778596996611258608014842876072902073820956367104333821445671654847973404223443828072807213963850417519587872017220239928151347259030485845691915754980206928263936002954861939025520626216816588186550081824926480927344821841506944633074075068980295454068054182609410265566617139975409526363313726500670924879907434029050841561873669730976661619861362273560065693513854667444820501993012379720836871853948536171253755285478746594291124861638697055663115984425004670020047792245519662477010001057288250930367030117247766959304710362090200178164857391996842312193978043941354071246888132038313990711748096960376415452373621470616949102137644401676936018171179628378159427553789708517928326711311093558451752062015237638340014020818552020590704254232882330225992999347629931408344812656931961226624294457635315079496366840517581694516011256885559956806653932521853981976673603456778726718469726154021220956917630513496852884413583781641008431535834309572741850579617252784800454089156023331856091472954185506626360513362069291734649595258902472073766539734451467745734335844860065701296352364319897542462465860945277462604487659025728925076993458687696442437549741375512186801833018358430106344068728328522861527456271924536563413898235714548104569886843151027010805975293707982655013743319770122669047404581796648316426639250861225098121972902190920568843887433464208636204608717936918447512052751155034310843863267273698823300491874120120856714185751730335376144084252775336788507462796231141397934477849972001560896586751704408803676946061015463200812125393495375945542945094391782863652112926284889373056709091859036960597923301718478088123417458590073204871527627548712869112001119937249539664892489262454961028325022342224215512531945907177475547238391189588661506217017396784891202403226380646316206997710037945050717862884117577802869622933308226131896702301834502616775514753663933872878283117099320245283721848302188379869117761753568135186873714558063091795201723023506635933247754694622655689243485076661656278156431910975341428123771876524465643514425759333643790194614599455502604361299628780044151665997592663735844333094080840942257515919789741163294661629590981615193121320981714362366187051972928324151243024479818786819022450662669387454709949922780857544188869202187091071138221491379413313000673544230866228651474112755309789657224773800054945747759674692388994314800277749849726532465596672315329467815907348608981778235571465965735528834514448887552570615464308561476179783932368654287644148992898613036262579825439361927737159187529438007896646354727651283230184677930099284526224012902007427693100641868385396307326054454555723337527436084161002349352393094058908154733702862762340132355286049418312495535918114982754655444514032526846967100258021408122089091856245076394958168038871590624018959559043514355550511281287064506048957778568819921379010138949379946476607639186297008659404893395084607698073324423964694921432146216063963613195050600880544080215787543845167301060060173182931729601900033426402093971474074684637106970973977847841424381825255477659513308296918335728302034231955516347549137630416214581337583803076665495391663325899637413077660065319371779506202091225905829213104809040052018174456809766566459388157846480796932772608098564074300972376528794669600314312451332348696631002587551494960297160382151410528177552060026899971510952491429193397141551683587799167060648666927613083112542954381377734398702086571490450206296951845309504304596882231687376336880239550692016116416543462341867448786257186183049970213060589150120095488129351704672490491187304473367720064898636565836841507033170612000215773432794963064677552617667736522557437639842514449179046516094190307274573153761511494712418177732845475049470519846953330455123195751003359482996218921903107629932624359541027384850427046782893099948294926390386973935491451953257960855274536950141907337604200827764895644281120516395466995182812859573956753282282300583798999927080776720452395813145591492739049794513568829446724819615304289397604266768121787678941950876179831360022434371845239951051442659763215624889846546762265130229476879956787901926070753907221571826549667538420324325985060394597848915927712317034474638446108887956803599140838267858145433363053731395528414309799255242047983757750282050871309145447761747383178284495808663390674232715836538600075773273154120575259350378197391234172048823781452936599463718507424741626193619377919974786253828540527343129113465138189265318397586062541249351523560516935158674514693769767787024337916097230491994726672373054990476637157220347983091290935040405782855795054893180485975422966179955532049301216894898905942917786771131588492257621872002178266649156638809009226607336561850844451966937065758150760509083225229404977798189307555065346317181089269715058134578384769423842687956784981186262479342457413786041563890197510987387194052428517445599575944903870432205486625462420399641434567658020345458293916701519624256047518698523830483417461176420177596748730842470553944487606472280010721279036725328429758455478493099707882830954263570546023702732483377490146768189050147289191679965881995238327479772729509529625662409477095773408109546288840951897098614890522118245098193281500327961815648925145368438053301697234598557831667172880471615992138167555286508521948900193058844008712545000647641472580087465038102328232397393447185501768805027629888217424963885914021277354251290051024453364364513849234776061583677288017040967180105980487071534957182376719931393839447008493578988510651116424534210473398604716606537157772753058346669709447543386959999275387631400245161702762185506840340203844791823468333636432615667701741082049531785978049641261921449722266729705131923446792886338091336109350158534678814608344598384810433079896069671451479500615723867526172709341634203277351512780318206516717427633240707832420930330705280059444901997713996795740105202443902304564520832243063781606134556671926253888453910628029430814244367830278605382887892321371104202864286634109740500327887092857546063394339143532669973318904718941654897015519523494802728922172953282041487911314839041702232783487866173380815539403974487321118211804203528359163218001963015771023862752769962406753738505317786439324986049167269517127854281184733270733367381106736373000976627055215727423946825748555781095453347637860370296066298020511619856438783223849155414181319733332583898005501927490680057467424728591176368161164662971392183702654203270300630835417466341105433803886339009286005695065640008132689439549608437709706360799596755681229944211394854120926291719650508565343088484574196343759160566689732385632458550787504641222840608637253088009260660998887824028691193038345657153845335810152860416003929609001720858712177788696963497837876162610436062975282147783790017079606257459283271845837350023544909795336969600482617257440342787118623009909698977351389291614572715109224864635023192394110840125606133805087900667776311112195288306235588685822565533463503593195445812741918784917235666787621256920495892459244856291654733251981745407990586404999201476759515940853076137421963425574223310999518411906628724925867310850235852206132598697744645621780580974332296449330888989857153005798631920409440209966765753847869510310929468027083912904539761389505534728285104497301659614180907182250661363580403516873859589477217752806675512315046228893362454379139825440821338308275342551491381065708867166246615428925630342888670847661317853490993768872679287592547911681925281442295051299137955548657296663684404919349094103464019758528620358778950827757492791036992011685745967629052717338038400244259333546832589182264464630139057848743555714011256513366502030109058048052149539140129884040242509951580739311408032180504030356948734827710623609681139241814802779126060449165182267743294689640373222731266646518546669478997603988183146789493270051811258405617347808192999834781667395098656147603812784558428369729429941566791706769742568990533783728717831039798560602893503171981373932383485119545096678405273051374505943655925759890747615232287625753828441539420943486715293468971563354848567803776860142393809408382422390499669830711890815070995692703610177189694118979922718223349705388947814692474526054637147966081110532509265153116086724797578157813653877838288720538589767613749848679422103617196451529363558765989437911349590308614029284558438929467634697660249498968424093646133412549739827250044986359770554082984775518432565252858071180710369055247085488332119202281692042663977274610913329131515551272375811403227520725016121859007296883011408228074049630364981059503246777537508372613349725708116379602726180209914799472903178943948950525556129058145562368912555272176210891795486828072792444884010583884808609947237932108011073032678903195044667219737356553765882433000711283994034193111647285986379761071294223811071883579815424775327105604532600180894402968680785851225861445386788419745927875057646696246712181546700823829784282505997000978337118878804064243600543967257812120082921360248874496801578776199170192638952637522582461040054027078983294779493104512754267418670916199316180668646846386027629147126845800491728148948451225071047015587350566449476160233208620958667417216078652602819568954417094388321121796054379911695548924127186501129104438733571957540878658750565079489971006258112490829575137315256502087161739607905607089455771851525723609108914772422791141540682204328024454471602758647921491843937276833869989070894866878902383258232747925878928032087667751057980529648793671955663071004011720372370480125469054427490265706616208783659627567894276221850333534267784828412866614208475506163361851220002308056911758928775436881724327802735021874227306898998638146293372275489215985907237601550157572881993257289005050851749072996534952060192047353622811483861565805304579208322337952565100684159035559796469025102312015376458922945862070879654135585090294125320941356721313716632670352427539511435155185639788274121639539699295787243359020926927940131006886024321373346832607056263507157973305517730550084255493780445621521913103604961986687626518065362399663880931681317849527950848794286444129411395232402654358493941567964529347452827338823769270493465432308117539515134836488108044064071265846587098465626253636337213590497047757085727780056586970606072212676022119363618491024882154309208911466849851731732593642230160124728634950615664001854972150732192633708835646594617465117057430376904621129118379322284631064744412265276361154726518143071652986824302834918067661591786818996390515324523862310802566737794345119482579210070593275154117735000991982938504852410699057903200291234018735174202083755536927770864422162782528874139950481442911760522857564737763345831071185271591731664938867802342732508383514171473631446528274623341394950470925910413497371097710234760754769162734204331316784801516392262444587415555195239803879433066489709255810637717814389615510885030262654214097367248157395105531252741230016617783841206428681089213217307997477843221633505582024044085856557473821937743761381634944041359215714730595058386758553546981349251580857151522169506473032612908984800571995863121250424970511262747053899887066801188370072783031444370990801111857656466975102468793248660302276380739706298123177543200272272130895855426577762170087785280552382577123630819240702770979583130834257681387911349175500412590564908121377401864106921826192698053495436685768526710895499137398350896674898685884638343983431993847023197754708233870856414282982044830534680640580556023567584374779820138934056322676838707318992430701673904161398249345356087489451295722337436880970198138136316507351150061080972249426952813455174836204830374553376157922893554109540185873356740631916531496498511138616532913205855751396142011674387885804420673628201102609154733300028680088799822831964426869254736679846127215294955667498743309366433471347555320419429317944332494827837435416758946225425571055617673980167327369953062322591295097599226075190568689351722172720932667256781989753405267956994633457405175592197347186878896246838984044260015713799886771240948543567219596796461854083836809227758859433599740615241414062645377359016362313166902978971312084126187037691449533296233413667798788477771292320516890246710794911519744011386391191361227387929296617434062216344632465377918960761108631980907869060050928886166927765244363523669592005630873905778369759078728723464626701105880169651021012650471566571376427263866131612260492681165290496551690639349396394727147009008718010326508634206784445425668657803501083529781924289058288421435444994143178229064149186861614778664319121093103765233679777791670459103149706609401770920203812847744388138517807766012700979396947766534794138342458656440041485714628531845912021731909599263574949685507877736015568619148897911988928774661715968583892664124802802005866635291849351561629795572369339257813883830864455935919817525298904692475968481385606616099203990894962575355002373217686625541835847124105615050399792794461352520189976653915191974320744588163846199104097140279861744249570231521399746612012582464874921639100690402788568278511082171080824262387437233300604771042653758790165771888356972076289012698407542974624411954115023861104048080062130894806440276281385466346111241272790746473692502139779583875125232538298766282399959568223108606031693242031859698590812782432805503773420575688589589968883326744085577072850313352218126955348120982675581031365496976037133081615822657045812910208260364864120048435054093794992271604163537138199288837510729846612702409711327699910819956461986508354452911974082223505368987586251631613853060629109879735774156877321860437789692677799032723172074020227126350214524657247217719637327442184188715214575051126669749773568148696864825071931750617428193202654483943155419749542122516696877530880832850108216986810607367308583364575560799588231140659502496929642842116663755888254999529539559374961451024503156048652653015106401580502894974710485954170217802394077833678606280463203463082677188524380044185253885727592324623216903136306059498636004382296837169948437079827424544582463291346540011646070953096715864242474148844009003066880861581707179345490661373654280592815724909967443019206643625251118141345689880822545231665005916198862566396750679526806808781477423897294164892540768350369729860184442809061755628792087516455349018258605274046194266895801019684531479849973596923741854326991309377578682810296161806851865390498697897090902301163558213155914223804645473873995732492932389744864909395281493561932938126334460156682305990333265160417678612812070995184763844446277381636880027970967561174623751585352163177190382452765142728817852997265276596123512884834013475381228588130743102876786649263729758829164827330951615836551428195953085931799196373850485774778774340164129790854620713638012319201494791942676970138201790680549996163551667198785542222352206603357240553522360525179169725695924642341914428279871843359828979118694158727323504000188638723074644758865683592794485935406661008321155766719324370520570304916030654872930466922649122249748986977598114790836777313081787616882403169451417600081546365939540820486305072683733249261533634163383572298124151924564510817240729316936086614113607068447343786649547354420905727643959077702105637501352608018101493508713116464261189514131029427444025683040665347114321610833672808951028117817820570718672990495258875424820307992715701438179766402035355383032820286152527683106440218080262606604368070090182152038305782309636624527906252926222864024700834678164737315789565023792596163168175342197263527019289841462085642030880233406945419873901902431088152722571308258168726767243979857098618887608184520719852702062290261994004319667233909661194068877146682053153087230895093991712645926483749037336472145705225891100123911174254825709895855774220203676276510574754431941818614788015850332543409424061518256337935371494375242054084873886498702010246979461802944510442573937696080930579386218914111799314624305710224937139091287839942144650624025649383720742336052768224800834799152333255130264275062902198764033788620858470976248134639239246221578079637668657996039437547816566618371992004328146981297683832976757155881376405539074167796053704372253268501194006937509344705187872974972519906947492492760711329904064226727113824002656638568139041595874304663346823889830679863576961178464226335830601262559621944599002961403204917750586653744859901695016376944650134087198581094599482571897567996988307174669435385224843554068468529894104866961115320602282015815557207731743808860778822888601373201986017838990671670596995381064769461789637448821458234167155110425637639269484987281750244528285123443793479282545613700291986472010553218266570043971274320084828731307718932616470529219316617721865830862260892029222534652920257080927521254851156879075426349487102463823485338045634885601062876028639672351274006846639845013247701749402375854031442139723504320107401398480152025587762513047695918734227550628562313440752465012581975445429870320327921910748796399095919774549328465831284311732164147587061816190598079151812174631563372948070437334429996903658887736571781814729009690960907342950523751606784640033803565098535608765858845548070572001454006481608313228563200284755678747927344031929797991091620456416617032763535971478949436317112036706281410672501119915665371039798893918252717872017981614143184065032877622454128808319123382636705067510695100788933530243330081175144985001699231988899816580669298245620865566675112230300463004325644659366575157713190743278166698644485366571968584892706844956097181829042844188634321897462953826810954985835605467720268681501562502672879728868606469853933916675512535625329085338467099292214170532462407357792519313803933905188220572101859742694637534106835942377184043479707950369472950768287338652556626038760522087421149398225594931361548448111403210134048355674194974838924039727949792252381776501510207920027049148544366288858895861267713782056197049869814068684377948742196825317409942632400955601448261539501912965592040707613002535438647044695232578974348964373390882251608172826052234427241636510139615001228509822150015285405598992683488321622686665040644537798826233318928648538857450749136894509471951559885504092304144679385717948094025648194923542240759025637694203008767131545087221433915146855938860882615138138156465322969697796422099308079254062445668074353083898907812408582411899584582963815582612267863764926328072247565215037380313469368429646976269259519509657954924514497218810667221545726365614075730089983854610151670437374998228010208768177602276026484749722141165623194620711344228645567047170685704551528151390670912100816760264472228405923856848841003907862876484073750897282208593799335316825544529337823522182980875755380524805691541701902142495495915559998187296878197724319459865616270061155556222673755099175538314440169621432709364556533388070460658459274041837347727264676552091215786091416625536041727465035425539378560931401237616030519864473187511180144690369376726830985197066240756440376635564919200345553735129458047916441280386170896035240668626055378859811080540963817731136279260078923652831406775050264925622211473674850662479987837680377176932681356967104887646054601825771056045039800071038283489589372601791884934378228594523533667997207867063145538056521383021023344667137971233238494744267025436264811250889292207465069109786142976548539637563758247118732316636059926839566186135375563722631342577741329753487599916550929713737162991767490630810873006659800679440838640446732287486249603000091440984935063845879264871372468185680410255691916768182979982004641284458522889549819438954137826189018387483614809287344820707445788048503139838502031666573932271567885197651414603831241333759399171066655215652115874256331472008903927357567162305940161530354991448138681116758556140251133131326241206889388745946325488686005549717323071905156307612845490674763189557474683929699057735906266522203437162815079417104943189486659108543403071924581288297546753341282536086015113468761776426440387801708588696032902246336336518526837380387192238873482758458518580389445392990124468350403211167926771400364953060251089320180537421460984598559158146848556390013996326508887550939793714235316120199010741844997438924040227120801115360252212460165904022445161493562169809028669994440315165989973065633107135334038611771856701152686440985049167635069481042267124003991951218120444395906860458616334743411847457310449830902203500689694451500532566880326102021371713277737909113785675289588825595796038982591811000928121698630770715518320801403734570106665859587014093348057519981180424754102315133150076177688397900939692759701848190931263118798892139112491042667481889155848924809630756530844285129758333893071816076627105136929352938333860265516063610768356321054562187941455960683117806516934979649862273111431207731069279928265882763643571698133707354479779255150319507816014502965908300808959785006281031825304336220143452877199253736215601926478881309116136589246959754553962309518214008672656323393892361592917824040897935421651799194580867237313206757003103797783420722976292180810528698737251034084264451258471613612008642496270069452599752050078786894083306540802795442551323593769223757283929032530323979173722083448725316526964043069917514508035553566641455250052872942238166096202689589103902387655255126805971833636339849924295993155845862953295269612629744802340380101836884260689266055150047457939670541759120915930103505789892388170785865704697475740091794331933482916095099869104928185583572732494699382532067419129148924975339917319326445473752600630837288909727250573458910069409868734203714064718981138429077788316366701003929879265167110295126198330307185237397793908607985004694341576748000386528726051372569291117767138356039365514541928611634722345783464282929305194422859174141719492875773818142971179261345083767738755415567069408105499436219031212804583899343053134089116342732557176927682753684729349562600517454633927199705955314125949729001890981610967137542768355289037853398165001256841328440352917870296239200562456111650562252557785073971741611305519533888972526463134610055195493407337695995951805964408090649573438531411590890429637144479803405109375654979723204343455970914493089097428526612994647298172025945690955292786752159077210225270650890159767261561249984215027428316738798259429453565379739416197350073098644860975568360955329146951754639764996030276257375865600475281102020856531290292365515395293663418627159402867765554469298081035019145930679999878590297218403454941996903690258652415971205033115932483017824372321466230249429926818206153278078426161510868262458329611558588660047625781389078437877082580432251605267489399450899729327521587677069081693310785030277420688515127222743238481271886196867773265964436793911453274790664975775509155044810310283468601521253672694249584674548956868413542232382765532305969214724235582362085471444644228709996384095214415593342261756929573389930801960143863672552352517382310692994356646569883586277182653909588754606463102039329169524972170054001727019338147002384209201762834606913854012015596855162489159113668740952920210845761389692833715791226574244908614007150498468241080227549361800435934950463802512311534060425954632621590164095080255716685427425502897161382554077497711103000089129421456570450132108033261783059884804075074594780178121505960969945292602184691304869474002697270257061841842404557204335697869434050665615018224832034902162691670091014946956794074055657934200742480725718583534436373702825423566015660081689020452838393158357321359591400128911616923355973345298285394447110282155790037325407894036927083346184047535957008178793517759120384734145077529201973063784213446821319058152555311219590415551767812978376524692822024851596045470955986953225991683999230919051735577374565902966797867448163674750351138580636801016802039729757173985640499704979093200881886696147072463490271604854258351900115561838316862209945411156533037755131751793995359713352519311716194183802731539750321291639566627104519943750345207225913917538105046016347038410483660126838474204681664939035295835117958462272926925667273793822173876875077498153789889379418987665892417508253272345642947039912527316918152323821652146384150614744936755143218734870136130115596292544380337032073460837919906691420847143274436269008707357191320661225866842430461808384819427086799810357261125001169689449681129394768274776806837111481909410760036303768339451330410853415295277226998401720897824599086380514849563867479941629633318889294719591706681317143964556316660897801342430048208376809051153733866403773825067916542858792938313354825969275705899816349606640951757337490130466758394072544063454559783278573939172715356480626926074073372171786781324854352946632036088478529559107955913190766743533935453648447854030471168429833511606679151179698451053856088213027505290129733718362549992891980231481226744579733743101578099037072907727546987119223056314563363543852884565586500069361545374911788895055910962157324227240911353692018214473292621262642692438743128148746908519455268066470201516858316726383636123742896999924759298852858148135328413656527457836338558993461147944067012318057315574725710205423282607373815716455651273674661063055307616753375549115629716085086432859158081228576290166995904547398090657997734655533652078218143590031410297119906718983440830310484821516053629399365509921456102991567608766257557278802646881340989376294887072266034922735280836114567951024861872040075698691568002784407083999563753603370945471574926017426087159626990410118115579115666180167329740211033158989884760387293673682127419714977045351423508859458315301987582055184078754088518811065779368653616425808229079700244638299235486322661409848303116526383441143507866108109291331992028269288004408215980759231139245863556619173150858986294218601140724040855224298958027624173560979364313726162486152702384258933221699425333819326770951215968534792519259817098543449845265930369218422755587334825247819151454179660376792674566146518254762946653312853120975053449266417309652547716355098051401306307188285080164809876210858738718331603200392830101517084487297577483475908346177972572136991694694852313155851286573971100368787094631410940566900387307642668517322388668691939376945955147894513458104542903487859653356555934098608336360556910468913832290602658860317384802034067635237154973422464258689738554110304536275727585408689142305289535001744624221234606708041337335315500410884016765714086553226081572859392471824745965278445087641595922829686218403573325417401475603503911931958907643991626357930317858030328359446980845123349859840572175736964824560743716688872628116659469916774101521994018676046468781215598375824979367825980093220523369087772351299938466438013318602216524182212279600611995948817161465162077724403473198132227220957230332918443703611901838349756804744368429221584491081758586368224493319364711230366825682839989925160166582568701345094205183214695496350687038638949902992097313539177112544153465815156646504835659084811922592025756065073497235918840891466691462428956113527849741839127057907810478284003539884501207727544395623223011962051353767742008049137391167804335556390129119767002369411157996845689749882129164583814568213386156231105830975577744645454484238604617837378529439540008983534992163234310568765267374272432343888817862295307101697954898196007804906943785141553006726612346288870665112265896017670698258090285038464011710225097285936455216399560937840456473538395353371821630032479132098434540415527287048588229413252948546646404625141558724064970065064883189945960440502757577723993821227390003735791120437293546328758526460960573780909973459275704605085750803242601203204972413471975534359483637278702080171606250093017552420639651581482831770756953359119285010708330634354552073304169830855511039350833533902268620967910433957529866059149120899691217095647018098687085884857225479763069534612688199598363498124761322413823465227211880925970208618495503708075715703816312538305061327263659032185417759904705388416834439547388985893125977789194889514312710892072144453700377388871529031913256363176789449086652168498420122082177615654383190011594214316907974748031475015482339076293050772336862555110123542742720616500733812988938131210760577236430861478432539759608992869203561659177663511274623783398698694657442336193523310808167290341367971144696852846128019263092425155065845397642377341128789516375245993571376985529931076024096827083441144440944110849347758677102897324908426661240746139714370095643852932047263151222626732250057223023643138213925129438969754769521995745573890145041737594783789300256980663793660931873434832607475661883143486845835729797333565164767069423530902789913793439483754992350947228256072971741855750138200395737507506902973019804543092994180176385658093382623361077857158901875634694150176874485621603094453284973556610832306652470711740953472427242650757995291600224033869478180394418968153809778271398523722094196469144452455308404771565248919803222732335791378657267449447782872981612370204239820306452397941154587914564460681264241059043455839858932127518370712947257147882367270357607436078879303606201937532223406283707857893624797181274050965724032026411984519843315792478009409221238267816731157601318892821938922978651193319692834650822638896078723420799966975783429184048312289414969180127307708320739843042960640623841934354548014106685518900236550522496887344021632227130912621476898383671806848233596411536459010759319953081868952844757386572492726795504128358736017875008253049551781774868515871212436141850870765200612034439933591422391603344233119089546117617764055188160607086831668525992761978568747850379772014680955938534050890770717867649319003947047563670565307050479546816879045655657629726910597098351835918791681781945097589932715587925617214957237360359640154902880884661154638804310164595626339193027762173911216639684437388129957646228557922071236551365746484023067867435740155068101647900028026971953680961460857939457457359923986441058634917838766813075180370507270800744927531925072850894670183011157003908354856952138964869379190020953110915102624589640092841853302145924603976729384757287107956235033361342731090482328912139632901919711760158308315776896016722612045966553651840871631776190204550710879341699150566868028485362456308552340904840671370536840503008803941064777250641957152708841320882387505378742616960308098338450604802472743436360126396784630829247832511043828272243406261779423746080786395784683626850423041222006300360061831358424399945061335682217627767484857314305159551901986279429306781021747903497682171446017352990360848309606668318232953544525800925087390362741996757395197068728712806187822683322341657119255935681699291795749618611885866971879759156479961733702663524515175711222437414387926485313040542946596065576180202382501897192277761121036089983575555711091303427746772216477546789945839508634248884898444090160752485810055254592391549292759257296444834630061969153878976342778534273872447274481270747806821248753418944397329156703093085856036863663485691414508521993674640443001108872743158133565048797961464336298662717944810630354209885502492900612240379325045557450344410798682304675958101249634613649718140011315665433837677886017324764254547716435556190381695037747863036985165884821911853687317911744176965981810793429726756677015940001452488603309021721134805703281946571736869776160659927929687220717440924972241286890202119762051632016929179456352298761096391244902788753787193598831918742503777429144590463761395430090258212108182201972548768421331492617708668777055491933801364639775184955247298442397864348804941700263693964813564903646584715740170590872012665502244434801267517130051034937644107678120675147165578186537421596673090056565286055752833541922984148936110375463193452662056133658697894433135149932829313586181022484317487262282670236777023765481548286502787272730450624133179598066755367388872321016974377830484314322351636356650792665121498490169113197956571183333790026230451798861970786866671098736978613998111140808773120102405080404652756769248166392057598864261441260115752534444468990721743267300164735980268031366770474242206910255060422192286714628178975305943703703932852051238701274353455618335616608522068198999684302204183150302499710668208356319139815143719030455830375293593552895616643613731543282706063373299734731973967960767440323005543183653487870475388418193497466678632869454215117434061909900395576098157756009019790899215027308603161701479581594095720714850583136549577238270499889172552298702634777208819737816338404410187099871155294388897771672114883771735705407683868815535083816907001492845924082930872255674335513989672127012689409051107896867705392355742264336529910799266402997313460733778929340205411163945605759902856523626736752706906584341912363039107390403250337934777337648781386388459634505206466220265097485181711049585207898183004708660946686666842844958646307896144302940016511166614560702513951220407305000953196728291622968103887843152476065836468262157781690804535467986752055081701688799560969216929185794783271273632522896852851707338535913822377515733238925585715867465644269590582856723162477300087203493727823663240294224490686719462639794648785169117242796478798762659820410251927733187997276420036686818544068054205445566769623043698110324352526222191322581236910010687183939425334876289171702427114711277509825936431698972545107370973096102766575750889403116154534088157500322956370444864669725582821779583411124813234148547587831187545423109529136749412720210799799190455884571599019600822004789406794404660342825749779246718251158904660684754530449371019547356625994522993321832233443378080592814410418540269039144577186458105683134070035196738862754191261568286501161107056967843305243228322401339613028993288374743015412245876194353912289267607406635989022611407164982230579087271400007695490069677209876040245452212646827173771381928417268592740004956560298345810600160653441694377329346522549116348386833647405390785287457189654526477723355764802519740687575938131471788581899958703248074123397159388141129056562689936484733648329327203235813957880873084585020118987635660314040961658908479798051610648047594442472539589546750984517205832330221007251715011068977799905031201078674953388421883596871324096916891936614171287865515097900316509745774081095548059958260043415823181994715783471452190981934090062830626243987784752138218650586881693508682203042356510626666535566215153888636197865397016727860520972676376433071771836202530618930043224073952055163679960883996659686896644518893617738645198680612503465422195929642614756453068691133062591333969244591960032827680680755667643820110670915885444945899657481822060443087716654393936532785737540688364581669748063952315551224469855683067666700803467334648195700736116758650276056955241710575311620910139563740597794889722862370950064425438194825880547322046711410401576067474854620133415931890435572793637961977770132581116400986817601632162145367511026243162236569515810869528651314868884254572786223091842300589852436762285709975551382588729645414397278009766932900971342104972225053400190115613641036094940088300038587005220404772315222844167014539787846885441964203103364466709167255620289857865007085136126093076432364950732756356077340616197767872483503157461821636172941698257031883901441275348258990911274019132936563308206886226697609802487660561105331277228718082318034097357434437806955931784653654280814555659064865334746107474798915381252447589444670318517595618540183316506016271449551001444185525232458556743535394697701277409907816297174793612157066657366074126844466028612859531509319999481847022605314838709930910763546580048328729770541252197476246635119010689986962684003790109059946828075175079642088414163203847543344488956817834425720385214734186889432650096646252513808058701828973821954625230129472940199106083703813215201320814695289210130887857070302945106473527852851446412285038681438309380611974508209311294635043089509843699066546983114277276881414499440925702911708907283083372141914068764620796627720257880286368549119428217013966588192839220199501542541609818574629380076880683308100311350202660962111560982623747199961063138891933785991037769956913800212419217188517531108013741278571065472951067941698150279474154058228590946564490804666712896300695513464241345528518505098088974099473840108423789962738788094742926021505775174865834162228121903378937903740510309386703948765119239477983108581172216340394250993734343846596670196605802637677592619822351800048044157631273427440578642146165486549175495791307836044023946738549288807137183180272220778265691154151872645134189850812329323089840606279215898992452270274577345336546573190511503377121033737326732068532708481515294909437653892388628699279432522305294261059786741489298184651643749634484628346512068476471289430103253673590412810558555528748712093842177761796800103868681923750780614630572365392474783998222288960247487799797153334718725228480038380105905174573915882104604603758468302967954663627719101206176908934448122032866997647377771003466255885516018984525031828243658436670875551699863394827109370660744631348758578343238983503102820312683771005921244774642646018951094703334147255448203062768592361004792663009061160567481187472716377658300095018993332828883688230847193827329343681875526875163990873630087860324440606367646909078661363377200610151579639174968921705214572697981450462638122735692872346800997708476113762990647440434398638205435301439460333380045355511243811835931971896514550674167447586904612348156486445767352855592278565847686191962859907215687018036992625130574730582752737503437850747354198437827239056530776634675451510187466853828289014149381807245050864260074154837236578658310211284331419881427005976219528273758995533988737697652913433214753694476443944211966930065905074638926365071849685056770755433592035601849835186555625722524178530185864308698641636985967809306792783726990133894233730748702630361385618683340890305101130964069631162996805691753604401733753436384417022510219271459592935370127117584698732865379458840263341605025309845208197893355630003862811777138384828921960653534383681569894689003469832887121783209867742747840192505131998165096795302268055281112230825051569056769931771790483645218690948840556675598279446253136259851872225366930244036655016252385980476057943219889363031426045099253962530383503246258555151264465818387556774877733308001952470482377810607262571285977427737820248831737715497381900391134527309060920972841691600836302189564514910256034227561699666319696366840473456099197183975129741138683736596084883653791211267955873081102936879781186715574780730215919915911150739831008305742604445030768669185955952944843322651820708100893359146940124674735313098956535165565720345945421771131233110190955609139122698277224084859998675989064642742404699278401694997019598996610268595275659999276464017936899692616580417543189358432336430454848551333199710578040063211111255939813994091171262998867824419430578172066750453990236520162720863860345897007154364771501894731581425372253332613641108722668046340792519404822272842908399309364576237609203682616520166893236614820812150383874023880405849730538604060723350323769704302480946030499197672515449208860173555791337197196950849827921029491528567716370175935932462991752087784660848371686656498380247400207456184758091428596342034757516384536475114060528566384651112967265689994207720750854939093776772397593555438802898788121046487881569561263136538958605072442250262975805718130514744595924085146450591273952988492454162278185664616778871821260850721535403079440005609700471854307946949709660670715426187345692909574010419767539153674172835334489764632128862022905833476158232037625198374189677051111098781633750730508618494526024030298160323363434124316190299787862119603111618381817819403499360662421344524259383110566449841610357129272511755618294688860452787994430130044288647792170186474652100194262410467670388522821955938554478290390322659205022239544202310496175630779005925610523622662608408532095792702151235683823719709668208099172214942607826502418207233047948990181421810598529114197998927961542697183878841261074655803605010907618877561470713869748754838083784434144622100482158402942298649726275779149241354043081093652083515953857340847981785751372071025940144640865680620406030913810056343801445128809643029814574831804865101755501459056025904068102371525919794884984850720691923252379132514493954740462489439056540170842879143066772272891869651885840594460155334198450974448961557051041535523744059762842406324210410305083638167692803531828925228267372906522860465419558246055920300592887727071447847170032696427109973802413996173015757581002740024785078093720865117323587245895219559165903143499890739461421494973099150072373509015868652310722611948694997399799679558817551462453498367129152337703725809750014645932624018620818220753790051763383609438993566370698011331112565258048297446543715453841254919921826479685131450284225163147307086544054439049013607805567472470138921968205300408629013533422328847242095080239519933751302091575451242086387318679582787339466766371732891844815197965955699341196555921707801914910143282089655979524632174411374506179165552265233183959374120602772473704794767017406798816255739176209477287022812695987132940235573180271560927792169435815093729923430512533736055007040659483400032372439867973957187828378014926681570737367139316965857455105670070133048398191088518978877304390619213867141360019127354492022391624352547931718351045290135480771186189466095242115709516958061505099481514182454390608323515781338464863222666611933378228643245594891181947466738238462289786362727945410764273980669593003991034890770852619575536328737963646878175251444169607783142051625171033591055567461285175108687917255065873489635564541453802638238377278885871054856983503235512415729655444469062686692470619617408789827458788284437391241726594016542443150635593886635865690139565037795369426738634956153181363946073105480920680869836113573972406348787801714186670227172063710284511908691674410064018731644710924556708367278252981762646869849032877782555775033247018128984354323731297792816998107008016793585521144141214988952584643859812383328891712244947155295773174705897484355313060555865320361874960790431649691643957437632307351731497487648096303096234786686321690461997304045173694938748969626094811879540614024131762858334068866977247622703271446313591919963271975148342768806450179405197252386985265250321662771416688142559065349503856676774162541776750318386175936366898451716535863375014790731064340709839426115022418279435660880777781486711326571374253034912140445932297167620768958128702745807361788916713489534486834706780298671159692981272952317922529447999528917576683973931536640962573634111581454046424485682692619116874387858736066606647152769053467366410237193599628997811772405539750156664403316969657484189718855419656237838476058287847038041699244293573483616574160895500681566510034193947351746869992602748429049306060725014765752436093046351033916513312500740075131753067469092696209263029435977503617468643406006253036517384594089361973527427733437453534031061302708444444639027383243266106608981701397651043706437060887626031675945194213167711174155624244446945154533199525961415422738547357918199088833358433499284462681851913607213400859745895618036700773002001350427035428731175590211970032042616379632578030497203802303659503576704006081820080546146871301598084820025578324522867319466388922112984548649216400772605505890136401526261155532024794104988760038962738871304362361687983946589070232100295574337607165154635216623577233942525757384245225915166558691375142440051581684157901049801503007337032900994727534387423458429865778479998914342855516234568816081239511057553539582461859755250874443595909760310558110879423884784494277800774127587745551144062259697681262763432548232521413735611467813410665973711226868030035589834252997053651386262178483629226304048616515938338704316315210345222263657976415696385321117723085111385630711203239555025168515931751650385482933840640589298451540285999518686519256058997580185944310346364477451192688921473062375688673808541610960565161933672216373911693346829247627154706580050891138878638475430335269043612915363430645523385307340430983884354603647601232632746125832816621461182160453627011745051267768022236656157596637458346537115645436894802437318115175898581986274056138556425158340003964470753806829437138019938342450905023952894754608176504083924852795344061824756248977023573672718993896264257235923914204768818813261671953475274188107968975404404129160441058625557810484403076746359599565050112766192502690081983043209281899344683612844291843789317336402300901765057441866755946394391363969872266076457501981861501616040595515022807692835385057424979234313950905588819001213832558811809532918388814683194957987873475334192278987622950760012549574060054846415659301660335679407835199681988039017548483462574867912578517722576713918540567539931083674749210766574628535394571760287531765386847322887987289220022107017034381032006311570045535691763351806450145068372360259648259609852686859387594907113024972290852547323325885942013264814575793910665763891907102101940386396417307718594713707284364445057507543478303536193935078793247415266874594460671793296036104602747891230107920817108367191431699908421889478903551069979560353383567120236717371997015335825625196244127681613757487492471027519968951685215746591950403780630563778556672202036601815453597325411414194771590840220990555292076758409752808510345888348416446321234890916462856171841746168864016053697335278372033481726102110974385764395135406216154461801456993028427813422476763043320449563744114282395274032414168013751969266135291592104188377972318355200371964746878378724469661752296832947095236884277544732440281489947041233326186490745803921044752729208595632340145115888813843076813628975888805452870678178549715136486771965123950001400293885995714174393860053977208852227625675951410425255147502665313167961944651381649520767698201539434244667080657401955350259010140420876295283021869266777101675558499128844763274828992122106176225779253081907290875799868412016147070242479979218946152312149001682760469756849339654082171583558885767003281647426835343340478483499908038343696527358539212664979020666882408010021599718688647696025882832062196956656442699135867617532702632187875788729407623646068187694797788738610992229296012473723249803263309259100021855648377913113784952262387523793709194231189144304642311807913756017969546561571787734589189754494940429741140778816130157859376309613080956879756247428112566860089061566996201075556227392379536433457592460954466715955944640736665273150887874342400361754574279906597308416389830814959159887593058815157943338502006452144302317857849415593501771178473770381669114794833160494157704526087727229060992901876524374252695638861501238320836672786272679549211426422025768857804395333426063690281502757435294875144788418120995777184925156995357691360076074610696570241339677335998366581935247775144690139793091278701187438034299018157048966473553964351147684150958341753016472584219776188274523308934418385419821222850485171332820420789480398706557897533239155825572186673733165365618502334871000454948138657428474763050050119125183474144220767332927483377971167714651615124731183130296088910469363353410383310244384006451896087252974500686236146465692857923308906805595238200187320001744623277321170188221120900660682322107651923598348786880245113629218550671660271382775010417959223885212445387432883836115595819403001910322015997544082944925837309043954313724078181025226451392357041232778750313264106920517568715615841711369840634698760657927569629573684247403696716558861772477528236616194719419157057937845402916669909846984862123840023366021145309360739168486965729024976528706692844408336976492412479826703096853151121948532960011016471729829611060047246645228063316921064494535160577722159240347826988753741819260580793146101266759818659713272089006823001341342724732262001994384261499291611287236882139833964719100893226716207785131352258646555448034965541303252367974403351420427474549744157386377357996180227240202845288217998323206412968191539969105104862854456357208747369858753433877806867118226291665972463897027873884894052558227961316498792051480891023112100284082319906379090299581362291256478745176622331556699923500990544911477397738502206592903461246115098635047862220135535361236180206202846609407224623046358235167681853196742727231431505107722537183102022132030660430105511856804147540577703185667965127008508413976959657241920490875262695638031279446656180269048688812675878831884400504640954961030974483836741575107505570887476273387480144278067945571991626507681775895788894183173582941077898648901813874687705552109940539835747929987437735785675820343603701415266775019771027371015581351559904677119888729395136423751746096049269038086813473543835806267118765223987414428814078768639934553860006530839482497257353461310518015852105647032181022805161091528151902673610748177040760037577227673062807734182986280970518625171182817398260540763016531948173969419427119519681278034680647485838635304683539982739217156571053997187737672320014327942394173544408855440735913677706597868469610843552846041587246939868520432951587371012564644154797042065040494676129379863911997421943821908682417603275224594329968568832959892730946009638172272313059051127851738302759853095990989732721245025371624867395557315050876264500353043789224012349815303955002778797322605094969578171644767170356360920014022663712977855655181942248797680062524733860230300974387705711553764288523044052337775303957473674029936292236325773758053504625404028501974702276401190681900571096882563881952536672127169187034554898612400436810912763682204504093835270381491682657040703277055850038051949462170012815834664084089485864637863446755348227053309062339778662855942138284319169396742552024322041570687173490337105072590759411215052915789880928453362823580577833609557783299727613138061950602633730885538543224945520989785923886610696415721550206799449399562576252497090928530054651686783044105359586317775020974227702083445189849175787219344470702595989271059631906036794776942957723632458761294715334204108073255376121253218467598596851952360781555697791017392730479668857073948827293665350154281090997127596600258253087104070638032203091868756836146913935226127861124959608269546349291156034060538094522816829070033268499708055621949926229881632207754695222397743982923583356024446609435290472608095404657086666557590830338748158649469647998823544048429658204133176842793218160462649892206781029555245898258836943934899583587621974149864893992398514031815236902871942711892612652802979395614953335259080287035696111317274410907682284403211124022565981714795577092194231538507908202593887575387464066280519572041427172427903075371547090467788163605211266249105253311523405752983688975614886031325216106881894337931641669439746736291008589985695737460098709573503837714001161464511555995980721532629873772580114976619050279492616689512756074233755528536253769145992571143833538941546408772891580973223525603725904555844994696213578827347420814507380185009912602708920447569321585244836085538756996413917434309608156532208012714424912017493395069589725638772052350104035243376710013200823823716461221163942069338612832702038341056837517019628556517476889791587850255224461793220391640365709160120481803037994416578563565869868208258197953511966512388357477917581640912957885337480110157102560443799880742454544584994831231411932308806251829670145578320920748553119982360146851525378897224819179501979473704578755518038753251493492356496289331190967272022209403842048855962217195323086881553761725905340567445963316181458155943155551879757632898415644514677239683910815516589671717198783395421569171876096484329381725158101410823072901123585157698306366447296489304354923749672303631630579497223838842130604174783427814413480651047897972798285022453425797248872393851533777027195189323068910672188607498666345086847295693373821708689387462526479699254526229472362748045370649312223327228298643670243383340644460817497583013647769747749552782015877829451509267957529448231583671515783938991673456411871219970401065743817583187264269985954163247105070411986553392137059775656268114462146421016151622979835048017173050023355401830621324984823701692481331851971471985685996770112076123462375532453219946153788870107582052070459591243918760175339065952486463862346526728936693049338750900648551021635761219942400986826602540341758694240457294304832587080189075680250264401623946046220017301530396319983684775784289962432598058749252181645608953359559377915182069918185852485034110377129999450995106154804299445703936276001203103012349107930271025345225241289279581984797590239342663363383537369069983462912644890972836835151942462272034969053167668551358882967392622924422628256437561284673877348487768833889120528624944820901737365516312377259781105220837830694175349278930888942683888187308623750595775512931700467264721797541214325589626135483132128590460145221731104452335011041214783376646971270877324299881193521745265926682224096609758308538640432884846999101565222693425485008471542123155183598884528579445072489212104522894411239049467081236087897903188139654616834289524700266962627681382572000539860470694058660272036914529631407370183930090953764089319359109369388351161890422039408030458008559732419920609436247813074624920946207665960979168815090988217216668359566535884222213305505423201750929415741988562572540083194298221091695893437918137238959964332112625092579167199578954042210644005912095543926009769927621387641719497469766824712120326655851674584384255610990243589600483083221619757164320207566991603302904227540155189178402909298813208235625687949239131482363302657798225135044404202175255934737913958793773575168792321689529439913437603796345216622690940882991934604355182351773990274768169570124675022037201758017987988961271735893119620655792408629261302794912645555484925259676695172663517909391852516525169473040440040151717723568310192736098822221850514024270683746721905253986467177734330163015888713506102906282617081173488722340566505274895063343634168519852274518181119953834073470714071621717466216013053114673475512488930063844419645197550572511350053826696250611743370143934682292414791492462315932719724519519134215964586889984715443724060336383097475913646045532614637586543697717559337505704900498444135807473274715835455246349594574494475646856093122155567686111123934832925144055977441057264324799509391955168645340295178135377507527916605799434163128705349864080179225215753093856992800408635680836626353815932067792488006047107137662150142700406698813986439030315747199277207803172623919983211713536987057464910495420321148759220544179994506231069728358201865557503906456749206199680312276467245779881999550153406434639832724747502625559671444926101952485660620345319755565094856807577790396639675026777370112755851767160440468197187583610484534098441257669757191732187988009085166723954286944428167986754826945447644088716338274484971359165926108288373666836270735119979748209893194420891608134526391471990166356779138193771170173695702277330408360798627982951885308804892579245645411400599291734290590475033766505235214085944697868372331089294704030913650894071881866064036463561461916641555286926867933203796016229016590511484974181854667121769612325621698981463925028884039752218724499961322155354921339144839673324906527748166406807074681975633312340709841910435838551150336708051179909001874701675335531425379949492320593128000779750293668776773528312895571326681310922710715882863450571764886041197118720614210281824912841376994078184048262246059186198490786403866910513627683068692092994386089044604013351502873455695788674081866955734881088567664314125724689055696915111051533111133026468837985209909982952967439961885989203033770296685034509302307308965043230046187566327498147986271855751436243445773279428990295303220558931373369123463654673294563991219948727136005729047990704170385248066918700223296082287300160239030939712497367589656127367127019097658351948901363995468739055425185208784533989292556484658090939701815227576928769996695446868519188703173820719007946732411596583789109002250872746132466893794977577539186043790030328183374959615145096282708369391733050261155372759646225861414252176448040988086947584840581240936093531409831608845990837029291652533383734311173406222780367479133693445433451958532994892436341407433082565447435519155477908148225191683491626619827725589923140735194891598761829608433903784297467276302111121775687305799166205733608926078415897232031206259254379577101748767568125479909577171137183343893623387970384191250700210311379809826063401421033011129799040745575115456780159415492166358583073518184490908430375179268325981562285792795563375878557301288338167612118919041061199353994612340198338415999875620565587177297412008077601019143882722551485072976914799570427277099744630863004235331918670483449729379609370288819457215328183596502498866023071777705500855550380756056305527709112128542110437029519264834031350169654188768020969127966864670203826492782517576373195254013140882890818349088713040683570083040767464044053738168462984975711061950927257483894423373382169252071868374236531615362130143146882017846069838626573501566834952062912924283154661848557478348870383839529667303137769635561669916320939903765964540501012923828223639005418724460615266097001811872624816579709318008122450712510809118883536376489730723644630610755168862651541360301126261396459682274944160470096196829826684441847282289661394364825088922374497787487266920981097308215984397016417764579077926241045740865013446302697401332258420150607891586100654114205297491585184600385713519920122914273360993860611528147674727917527379122950988509940423230878671260691466197371651354828375184181043772175549898955456140510682091393945910023647035180311028680117325879730963811040140014306713022389392348533532375554036569413499090572537586087542546592843851477769860670411061121278986887033200400317631018118503583623639956106360364419420126167257829031558761746649552670083319169756636105603843953316981491098736586399125172844849990949648913938126455604967697986797134034594260808355762097705051334319187541331382989500622696572286264466054917580916714377471014562136725269143081670175529787267573390527930812903155085875927454880991152361331822634892257710272683466818036726137428767311138949452673091089554804209269617386839584796900583505754465264538942908150614808507902754069488111727803237898401097446370043348790633702161324564935738714730981382699512756041885460074262334431181425953484478738698126803803900659803110737737176284077110951266481942032317261145161020103039073520031776969089592943097305022020437409133605963707602358368076096643081576412663574528481672803867775259644628813989742013951444954374083503676415289380009868736134929598297924138846897341454193708631257532944381869319494739639320118989766139436310732907548632749099964943661453874984827622950352591710248289964562634660313149719321350092031036389493767966558322105179272680656204521659150581608553050535562632965261562167291777479002202212722483242947508457060807950957186666880238672449823498046974197395703024286441377594023302408385877196433437027422574829592548759121373517825863066332957524669880998602716269056342903627382624888222546407801395374368351601226495842746179179200026557425551596253224946356990867125847922461775110718110595983882683792815096601042881369450345154300399690613184764226108448552441798962551378432218966723911543361635367044573729990903362858085557211985112655998209176182311468301719486376041866632347844754102587840699870637073450719407090581747129411648676351777919307408895473093021784224183575556669072941150843286217464601571502654522492639020878826313893736115350443028989157416434227974095964535942003217649742103473468600354537526670976532344649668312821302851893823264962891644981980498205222582990643829597150940193981247596828426112770773861838543193072212504821467521236945208252899338957559079040965672671737323077194153831699567396732046294886391884572841847412086456386838947465667191329856419806086906607128357466212157875998591527737569443746095942195023353525370007748568257890889436709735326305947691980216324521533437480405574310250053576753068042705646292673657310239114997506215525334139868120238325884210641594019721636405045269793486708193166336934504886446243602721479920204071847940878513357004380538801557105000826563277875403232134751129769104489503254624566823896275041958839809729963997156735981768803647742619003408287601394525189231600413354282944133426107712361188694117100067320850561428884372928268051291186154522032956716358709106124115469124772468719144635340330367127778805552869875716252571413380110191873814269674138165191850633063339634577176652240833293593558775665299440742114366112354226765443216832646760761260523701696835123386359216971021158296857863925675700236823184893544579781411419976690754487670683564632326116514827504052794951095056113540437451335279317757472948630373973198069762183077730759593390195958724557927346780377225349377913205045139769490879556412070289045313471535836286508972589924812788091245272181707632669546947946983038842129183035457314881763448876761134306602962451689538469134445357941068255552646433187368007223949817899843393692569294799323948127966093731518233805376160493746256943895958687399921644866153540736375792046691548858180736118466827049688280712737447766210029663653429563392329654551436883762950946000488238474879355544378073752472248657561869535988208055740685178529550695716216755495351960877063801190640891462590829946213153080761180318139222488868045112222075583014253014059473798943050261884147788255250282818902186495034774110414859447316831177825418083949875118806905356652335739931148786466706477473513366411256667813061497098801442965392760888913360342568068969260757794570345145538865170729630511057175826824838204195705108036872919294816487991807041042116864222905363007405667960874954188931583929497903437457879032080025135301096433638211045614961954544913088769779114939784385389122246087662891942689651669982605265918574655598280590853344965165693017150518222211683056664889539238087570098492948096301850922094803579524051523803557790983218682006050907990956385569469122766102358548904126271835502817434027245238826060099957950991450804772149593557230145783221309808621659568035613036637904158415082971871812541060963612066476593563325388123080217673437423182097492797663503974874416257114719845095510274704121740777048546840866273591277136349020835412520029091130883627353144721794305511463278108002191706109869769432954998699191029662417094728099426066479075513818855502136409372918858355272737942169340480883771055860618826357894012977649438622144012869247709408027954409003116853520714010090287646271151345915416929646436256954213318810806962141152706974642466634174555945153185884047757151125070377053583310991736993817675606270820704542844404029222234084037643797686445124903917497188541273131378659245902526021585294181043787310566579439435724992235794441058499890356388021259265837689207009794056796338627505796543781073639490228137034415664471891361837117800396381966955836326479576943234404529452158306213414745189712778109553368203840956559247267543821330193341202217040336655220170581420683477935779730317770996446324145054270849671226928194114669383327513333054182901955200996010809360894121659128678631608635749393349257002411055768553349194616527649159522437180215163109735579690529988385524102042054663943475465607294319908736043578950531153722952526410320806505796163088052014355461288939941363382103263475300128491082072911225557294152729202868817679773045340397522881174721273337999020888298162202677801411146328899442578293303793220194550840472678172954164505375876014438154956200054695189235684724941207226502522049319413305753136899773108873001205388206318331996652577844537866825274004164126232012020411351424330850954001699563094150793498410101819079259454459741550969581585917201190976125189340304944275545983874857826106440602104730574157811389116583737863812912504849024751567435977067368794147901934951445557502453990420557767081783019506415276603600498936714294805007107922475832704634290874728368085869218565758328313455573841995768708570126012117648808667165506520183247415484153301665172556572976293600754689078976344302332616996032267908585476838480173139087516592226291554657189588874620611186895720438581946607758163045926139365242231139239872191985826852310020003634276111915767131268982057561643111580491009016343657509371795235360547907884602792627583874463417297773055866335040903116222295273505739121375445212903410032973816482686751145367884042492604528058775425561943885958538414811942280671051780164661118556543764167011933439063167382289532922459684544586303458708140026305798946376851473637451036735171648782663110530951482261608795960943338796426486923905211833280844424944065428570793122304950403307694089834392810935909716204687186683789254988946609310282096318990729216399898659098311292205071099357223463790856675471793422123280262801728110249059317236100675362527861675455371453501198280068456926091012420132048352826634203897707501941421964120183014849059742615945901377848805476621640343483483214824914714802178864677134636479711734082459428967869221738873726606884156520752196796353637391143726315089133614808062298064834144337890986523517233973077507801161989041660249343173598062509922829428177219945223932076861738679849632210522466680763960564973284113711229442545456513684453671175401912422164430703102419081953898917373697709335936269274990144818394993202693321720906891248541713118868218617950543592033126485806792675121316291316662941056929560808730517094180798383055607865602226821188928770803526781176413597220260155349660392262588702451416079247234151931244910701679772480408303183186773794775969793430338292293442901540031367753621881084356624932836180626397371115284714539298322575295384836085324519345584271813540699622854837697461963419663268624864140655249396032532218099004774007359594399384822526403807264127431132109444827119212809553376995857290606209749039803707947466285698042477773552316187303608624099534575666890885392351602781833385843879005925117507694784143131757892627127387879281327019863692059708131260517301810214797509989161151094037067811455079892841566087404153076342165777967408666716580341322066988000055801999371166036503593011750772768127796110090201214130630181739441090413338781466492158376734175528292985145737224377834798213525443504301020152847047638468250033684171697789108745589573974523237220561531949812452595353757867043543712090460353765675583906653460463652703511361804428644719038488800834388008357537204485811051529903622465406092577523389844525017598056152445289018900395696360905703601891974750613942209521269533249410956753096022452663824148774688229382919634980475095132039130586852725396900902200214136473666710257329907267111610177848686786792962770719666685442217767659727762424502441181061946512841449592018088476347042162880162879126504195080076223298045209428600448769993544498687276065103378117828646017033939999624448403554212055155844549034364147121692463091778999261064790014674423196809133893411467280856813594798568551150946053423548364505427459474947223989743930157844165814664682127067060367657024472840712796061467655680017486318348472357816140224911518472961875028449554296506609389352620290199080938013428695154184509774828167015682605049674375793042781647958326942686627700047538608317101940656971441463250540142715207535340414618642304382585153924391692577462117680292997487147740293436936388841156407142162902393630151538487432509840453346889317018653977968312296818432790154932017511561104064106481471628986615355479275885290177662584964070737757988594220268893391025759028684978021960489969144589302401481727164977059559756565410484061539175202490489614952052884440080813982749196652141847804417865793222754038867942505251455013911441599347411398311035904061377533577565795919646246063934013397479893808350934900811668031482284376551898654176862756529623539067249964147080214378708351789376001535064881780922912989506288531604405281588661736775159944487830865781770127536755984666896486818166869414656961937929391549535791232127355883133919916479012265528441415326695321937811898443153984100273004143426310903821278814038774096743330966390189691677411979033207556492814764895085306946877194557216013031985855928195196188291971479733076745978554514457236575832360860819936335954520737662021107661900013282602263480552229628950679898174194003736178853596665276389870273845333100739415879913472753732134220937626651974447846855892312461726015298056600597784494475029649778966986991831956325221089483862604144541982072085908492393125225925062368396947453123063776648385821916925419083308172886154802385235219341368220515615476961965908846163882760897550415796156394527864796713558083804164453544801156181766227844421989467718104070065828736331319698200584230047026330379151418146642979431655854953318264898809432977349657520369836059197516911918824951687695934023525090383889320665043992642964136283837742752846147448229367840510810592380198451090481262623736770633493612019171552565583857829163294561430640462238556221941206927121558430260790014958645971741820608556934558333002031139559344971727687305065728801363572001652454144827972422703925599704034169851276959421936932185093164704168562901097643968990475628244337461603554826146193654089804230682757015493997936561575556889772159852780259588556372094985876553665844313281543800746931149408726411327902728025512595809044964164679489523157718727361667293825337346761597401057200643997011197293620074845009537871582226691404165393230404461602434866145949243610505053105954557531547615695662261072156563450666243526167430858664005065550559683641302933078460557896391817136401727859899178698315804553470391288702831843590460887810094262944970830096106917055058400564256710376905902713032584654887596287533396855353841166539560315646136783073268608611239949090869856286289398876236847043576603628100315414583010384954038233700301097400185341637252277176409226110670924786924436388372381315138674414692095769565871692622936756068433313420037691257585702086742126151843028133411686039916493316797349874654781419128865863991058045294322474393666596794152455121796881838157001060506054053051631167827190740994087497817568121088060565232939651135403978086659023787964644404806986000016383184227511564051898010415887167437195645404413353562951403140739079550331778667708983007530219359939383688744269021197174513736982952499430736502754655766361124280221950322064178321262322439789685506809348114068876591050064988005316272053343761781627635600252773468120506250984102021140880872350467136286704820119879857028771853447980161116124814828716261256918503092438443364100332560546731538744044953524078147647988742045037130219603227536351436228142342807898481632978295735142895826506866044674581913549915725369505676615411599808000894970306011212917920409942242476509870237527367926163611569346324058280268005905141437647778677785061011398387158421048610503033424947733545617702334504374489169884534472280949580511011933208490237939016318226080662392011793351808988614583572503004336263271057867959675764305926299013506623218248471022464975020223625840228229902254575317720809751265208346289057842459012095917298697865082400258895688236506981817017795215342367511615691552989738058606011188152511511438240639915405732360994731389034612006436933031250584076714126829472062385112736223807769543562402479376984139219433788191229807394032488376302897922197984522751702562769984070215088623427125937706287312551176664127565936971297056416766935842476697622736803162664164521394692726223277020996009008850336694418976886905144938255002517099322962906600705186492880975649364972289076041354434121476370669360295136916698831566086370247415824932426373020341425136768166863161413693552300863841009204558784063686001743030239042074479286243917041482958255370958579794663574364594147416752222977560135012467019852792834564702752895496223601477039234927583040959020877255029164649792675141123929524703709189728006290274759227721719998494274943170281235300172314969076153025939622341389929557533272526875210692806953543334175365053947630233901403578305269655410799194373372559160424125093140498512432537679116946298403992471740502836313273732093388275363654951147333245618996098096996220809455836929411255984306568916611310392541444745191167249928062022130647237819234967166171133756790176847194390414577879010391341415816595168709858085306988570473728826389967429960105653956694292874317726022897919137901706475898544088888561153698802646579858830798261894129603266743283854647111584938079753887362342504726281055467887837119956865930148619207382626618192268771314956621386688850836814980397173939816787036210864354331810701783757471834481543943116806042823821742134923459861613518720807300563736202111690793245924302232783130518320013045020511439918987798351439141848050472185719093350147835166174378467995471760108430460328502374762671899026452518469818671799211775115875585848603520382772371099796872493694994877083944187686281859454193563660413695330590685227086611315577176016397829610501876656262902625889042985496051864390161850587064696490255432762450677086993295996119289176822715434902776814860633713546857648104094654667608865809615127199533669996349925177999896244560379938285401807749020735529298202053135344423753079442663800898636013923279083943569694575941340955468082526242452555514403629292053420388772036999151656019607214825960648782170007423465308547380220114365461901214763228727203482394406218369784783258949164082088311396644386618546685989809580823019237499893364334518428314885251659092751563995180829593706646919342702719834548451937171546205990162009799890488383501530962884471214295820411975490598715242532411245337203207457771196148421294796188219211330547445379101368308903207149668805494201157236644613487291935358183577931706481527051430931233207062454261628273204657113404391726202482945016546503100094961685652836441104321181188835627592386720145282980973781180030663185499359592464244656588456713862958858605893964966412898806441384617438883703726087448737810412737330031197658770061396570187615493027591985765322563881592192923207173885177045841872844048158256622812861088509153020410754340908037302268605685157427320766411728314088997905233970423441547841604678450520127656746924722386174390829686242832020970433861705292092906084392608954834912216564404309792120366299248605836709262045983214496408733873470011729231848356003566114675730646777765317098947470108120809868814744882047758830313972595845870590620443376082708504466350437730860921279516471517468484631369381069537998891745345561583516953588273239176204814895938117391407625882924257483952486497273901098427304987439690041399737837854399909925271280246531693468915199418535722607269469381844977687350011351257448538279023609689578654185450292437233981431690700154690724424120484329593741370375155831342129977332185405452723867513714026023627894880768200080052261422650375839737485675160266920031531210267918180944842360325271104635023475406309690101050011087649566813540231889033064322627715114675646724936932215300628715688331019615315209963082344960075442556960412395931978290496402240136409811236400935653240914057248094938785121881645439304193657429666251911345298014551878156068072676541084143813432173524624571509518684496698757743750998322049491923438604350495650956020823939309414209094029354735491488175881915489496478708405324470236101580165753037745202657514930301597722035930986534521813422865451261953405307801872310745900764353880888456144310193621523078874343216649950704207598869171829985451582014442108061027826574719770543322978148582657432703977918062636300313070104811647035850753583037296855295512583013318757478541527892957058449490674408772833104394841152825160215154974840416480365561665721861668237475599813714115812276762115778918189862660716221718267035302009081187928179117551076976056784297623305037731521666197933854183229525356004193565760894877286015507989319946224681162743805056438720665122040771528683189166004965033838271096499501916877066989792969714034140785903758813776137511948549160606614019712877532819360357180750175955112234535204372792850770454191198089745130701865588969969792692842389780626348629516201106666157782220065024506208517438420605302993362235395798525074442675784835446469229103055406178829616099613101199862311662659903839070479811793710439622649499441489688325729744343891223894249757687178084728051831564251254971802359852178027349543063305033250841453759515038028584149712763503974130658509520476819634846798198194648535450100828465415091436102392482750431983482621410971053450745971126906157130401747728587329932076873761123834030484782933862117507038837004530479112217441130976307018005321700246602632947744495836996701099116022564701026756431996553460620967777699227132032087083496241231417769647966382469703894269898777521630410999748986042285278280707505158719392800228046239177184540556229726899486993295696316589598686656354540349456364105007166394401025902897542685859191864862442711787226247171034327165650428679851479850697887887663843926489511092216128561834602158025429649630814677280543119468138488411220357078955857297887216286670832277217822794284051075223753418790345729798217394620829322976712999715919309112257250946859008966160228824169520263843794008420275356510484248816767937406824483627013982383584183481736492562249758896666977786980604647986348592232707967145660245486631371171911658120904878029084346754787744807561065208056297993797471865377866960089704995476828944459278766215781385964073044651453064746182185395914670361789393639137030640358695549558611986556494477670122320437162836588757991685055662658647687273854512639701816567857941011928518234694990123329077813243112828552578204978203151075025597461879059584667582988598352153609931650017306636634496911551269272781815013566492062485026980321523505154879589250457129323944185026874219353630148574589672287965259553778676595250645817745759405321283823984487849845672234976950447030321943645221098476696723348461213426668070679181403448538437229570484001982948193215103343605048155742713025997983949349855082951461165594712798440640249411797366022092389113680725986334771329431692381169472922351582130398968837550083355254548104519756784135498549614651524366650317270866700574535076708615814280149495550441061749650115284648638339927280384684126478375267692094951735843642154231787074744870424294789043115471849211635998353715803896164561408491463813199691058953500116194994702065250291942775825027733866701715776219862170537919787640158035315500571147411404190533985355395421311912460944955406276549904137394194848768763064940248757768795073035093654766453568595449778236655405741695503538659655210587057290044417094486464071871340511645834912765363882216984787297767086563310964116133586119459624893824106226519825834783771117103374735415594274625049635254854765088220600794465444058333072387922240893204686330451092172638622056373189551192841750385429713623908501130490443953226627796477075554892322052808032404449464958735920465611111596104205014223096267456747238521051050456306475578139558725418880481622626355982251622223081948359913025334391045582450400405329826448174463608087974923906180651741155127144160792430493018541364346778728130723076931340707405573865011625747538562597942781223207166126011118219534207636802078242369440877521286727916362748321368078332662594527009121257428192867453241671648873261970224823663944631636931515962934062946909847048926019040265093850285499467331629508402166407414881281302771895194373302397586879066744117362124705294016902756325609853146596397914037600542435328547584464832202387133886751200091968225659426947913668232310980990690196031368374555290696316023880487172811796947313191802517555376361873069485427380818587005128384614908029829661489190421480638620516015651424617389176030316669118168075301417976520411354339244527943288720753605991053180790012277399432104879625963847486118586158865915623537714430803226645188127821500767887155953496075043816257531376329388042245121667379312471708722813061756508975056201328425391997289131894217555404927744977532274678885976747101675319972969499358040250957822014027560582597767132453593878590138725092723746775144369885834826740154493151454647932758215471050353102220049411094941423426323167838232607221581242841535147474328424029195197274878737675510565202147237830603419093406485134474498808124449591503618638325044050251989442028689120051936092583018712651007854783617733231326093574117099751064476448965189819915576119132731968621873368000222760645261660138760732491220632954734927189425841925440963040801251302427115135884682066492058449788297873816249589695876556600619638106408147981443131062631180656262880418013701595452794828650034795793392955717086272181459438479878270453448373233572166819940382204612440102087412909523065387295898663601174613522551146618672656439473917343078273741235737295905961028075985656677218920539251398889198124184978849372767434819197537388159015158490333036750696281344391639976906561452284136957154283520582295207252922282795798578147575534732701501468738841499448302529474011464519660891732028577241513913646374533384380913445817992043364775001491384900126496006949488388118346608732002975679294816543431887864365819707647757156523428500930861189131142759984018622803411319126503462948335127817774956407360555330121092323393603691541817705793678857538057332194522549107625334948714247302032853841650423067933316727806903815944209823227085352304352677154645332587318044352331106554842803051445437228855345662056404755184098799470437113855844655386765538722190229487521472479537724690829727049274240453785592542594201698466691821184996969709171577124730889750425950773241003046370849186909784767668576596540012500852758703840242620193064644410624663270997032848857458783577461758256779167361666904623778950010506022465619034627128134198765920963245674321261794366424759551276159231281071111012988658703935217869843653409151320613353083985501561093477888176214314594974488580569775659664543068608280672871065181933203208202616474844041695974185097536535329274316722088046632894555645858430574504896089943811262638760694844511474340471567048105178709872612658707645091026927085801446133901579689084354058119911459987597465916688499692653108193276616525857799299320428743994166958450292279017879137428800851167618602817995822773448640728478028231949940908387492120827907270894478343167072358595851871054274264716856127110117249274915451616079591478777087680512855516526300225662952904942532000867999827372806194162902109011313350761197279370254563375740990750478291306276120298261816172058380421834953564910359876490028457804790396382967379683832595111367690603943165404842958503869570946999333847210103936794682086707819440991101798622044179824215152164006403041247051264186342000584587312261147725937715514472672235133519644780674939509294200095595268192856309689469615586014870623154384994516658702949525536172194543425270678010958871962940295456678703311568240506535345811401254181252752539397942484494156901745759361156659526975131365204863575689055582181744936789901420876633544719555171466480241198901505069699800127709292470569033468968885111787347140092070963787229327969127805252725782632728038368446808768859366418005773154646363031510810365816484882440786991855267514880209336520782750709458770057044019179820612944324276835583222150639074936306266084042630912985231724138406629509986067792607498985869852654085034921046225675358635318914826966830571738326688817038737138637358328337888058667716525129299938247332745796785823472406854236783723670853364997204907322898542128081287570279661585359613546398252684374659116243826551917460161033521700090525927831801188398217426420852547733701186785936168505315045240986037133909238348751525111379567092446394692694999740670490311064074810947523563806035047983550101168995474360435081561111815136205818031144585307669799567465652291830127187301713029110953311223051741415465435885899958102535828316312991749763030833228123550877301297060181119384880318241612846715910002826717417847357099800861230390075954225382489461116400938480142118231265146990902529625557670436305123428165494010507339686900757367569030357762304869776679842494927848536010230105118334895338160764283884738791707839980512581334207233288381421671549122814297916994043890384540794396848612523305247349718111000561726692237036024467440775090278012592487607298468824365396038939079656522959059643636650078048124768036992074010150419842195093640459092727382787844000240553441803411834324681025775385958316815970677987424204384747778303300467135189840848660475651059848363179693428645214632249949863294552148976323197834448061253499794641229146957802045520793666078538957610681587859984941727223950394226493111831797111962831468577078812487034701891421710102585108733901404480988358259588073853452520408933102800883669249428974431465548975987379826705337163953207258688748677325138001781089641561036568638487039949329591131319425856497906571650397355427185633577343518241409689707074697028399271310479026911570857916837418229425256438845930429441614441857300134872917513187659283385809668999202634099415598193677703507378566356905923511605763763189003948256873604374574151689175513154487737722125575747916694603262290608472507758201725273338748796300936483458072980621281846874160852745368027158112866375279862544786335324004629252816989129137418562817661204768980893785627908796954137715150422184060529781577317637366746002057154302658604367729543934422475929774668656908890976105239229705961882677570258660168824800329242777117529213581369965903196890074571470218732360045076873402747915522247499912990054758266497010747118828800522003918392624111874776761732335439605945266860415261978471174812347893012113527694580306794801754287524225435815603228547780887876270354472999142035986987598130943566567241100700871467691845800228328368888582430617664947340847249933454327791150988855969823150626902672248624454435642274258084056757705109460361477967650213565180753067918648674203879861276000518076782236549846004896934465889476578923309344506596968432734540272946764744369694061085148503117449540646648463848646104168671479494573584660341495476690873037467488255503449728017839155314558146664784319273877673774162176979065958295960497336458672085157886259618013620068027187078979724608812628249548088006635579449864743089470868259582602887778004821910667146788227044795612252280201495010406831309711824708281619543607696696257349633087608194288180071102960507598259282254034145387970345274893003603195202289243325796699673818221538692755203349326167755578146525692987400525945362412182065724150927746312312110906923004349479700609558888301389686515881535037067537281820478479898378483811170616284659376481583463720897574009650725546372118418985565215416233422793807363859138825294055558070695889605014569425851025614887406106149033668942306217254099769225220763387367738063451748458706726144859622713175231005972451554750298006361393409148393013536001254938194775625024153203995093624823170282397912209168791842708885541687961441951500220759947514112606687459074827546736197610361449189214757197191590069180137085505838719516598602581492410828214715079775705743572830056866038620591536583291049907314345965428560608575138375423717857098475063292673613253884304238601648596839087747122157621413091675975200866718246235471585162014238787790522580183280810853948980573828586357704366485515519967937946075631548961522641769925032203803599926883267242804594049258157014985472044016700256679297283943940510390251490787209959728716158637637930582541448548252467797461691302607247302468475221540290767484798002625603378372154973056653343932104620326513361640015444568170056626641328976137726776354073757614642725924765671434342582932841292516275289689091376314973039503949565904421012900292916230834781181589165495194095817454228963046063876355896342753229610592918797285240760214147322438213719965710374647713811428920257466024809685316667976191661685160062447676298746924796070827464771305585516884200835238285232688852823021750079822753691532262475186488134886180303007269959133113524078919356311004818031203884962501797252567495582916140541092405812932800337838669106539217272303341794708447217408687024700451482967815155705752599486923812235165310027716171933959504120006818972547882230306859140294991964977303031385680819422653177316422458808879892632162792210991668915707027001534955577693175569673125018364206366991033974696993197634197997577379111458749034980076919803864726513268690840130047116540952435434670077804594742887989379240157001175260286634449422827030438561448811790508691710274793963501029320080395314761983987458465671725436603361924772056750814944135777915997164197877236626335661311282125340135234651420580274841244751059062081869404843055126078091078351694065080899445023119388187544925948528255463319476624667640432047622610018347370254200197282236642084604646202283457037766383196805091354998507819262582426079795068917486365830147791539744831435800310149496508415241757779918555094055601473447231027067218687698143477191467368776076667689820861033290529648453054885510338132112362320731414577476370755944156683344763598142711385438691192397235929402653534180359191360914294760585907591632353358595373442391777825458849280568448545904429261744972559063049774338252029653795144041089506772048144921955630020662838003340157176636417071552515983392597164659332834853937748713399824278722134239495359660879910993560067728054505478186402212277426858818352835638423995585260322561076422762627541982049989689185863844457931660689094639906793065045730595639392923389164019775690366746644825774231342093158628967997430902523780579145809528150282829707463987793402849261034998128485860540492341140256502766541869201927900143879476158653794132569934231222696908560873190209776117592246023978419916024269963279695483846578829129399543605017605344866892856038396807192929539630512466181510873315463806725412293804759675226970402157901852287178275182311755029992186713014394302561360783796444019973342512355311029797979262222699572675484636982630896293258910180193655956752396972828582599744548601899159492479151011012650263832822350349654658985523903689358654705141073167596423507328682802037880447502282234079477001382274172935837690855584681711412557811739396844962772375205726614490696832903250343887032512239805427884336661613102553184932317504943934526607379412262346207425547322127182926849120571439879257868376592986228435722351496483899008758482108830305174414234849850477907226640518563269663612194419139449916406320452396258147322267082810894271473401498883373765011280965512584817063816045301395603532412693958335389985597101004457465722262736253229201434762014944593856520204218125464046795909963515712357026285139441298386537430035092557583707396327737604865426819304314614634972006121522156585342818167397121410310886932165054137821034223369087799314100037233226854302109836392860642353921168659517046992852686424794846849431727732360075751808997502292629536453556462263411518822524481396830534821733906733580667184959077732433583921468480753356168201817171961722444101569733583570410706440193425230881169059352244646750426801697635917099884826050698824596371596896419116852506591470511150087286399530129413878200557414128531201950354219814613391724431307143385175154235102042645845018543623025891968852771959842301264018342255359878329388756616708969481097048270187037397372176482734867240372855390507711593031720286520244697477235517465653417058309574299386845375422494842396662603203755076825969341978877079889125842561375466837246796874185698192445994633259859285542584372238642495853335371069650070467087769159289262883077451411828157496183970883091100779155883852667160950280107414056584497462954228874872707293236434562078059198801521476945962815377665892269996413044997700172870919513238550870986141215037255070240895468092022117181880664673350322743500872571906552968313050437998389153560308542820971881301587329920557734450371021934289955161671744316491643098960123791172240618581654936630735310644781758614423430853021617845194642875309354515189143707801477656673484812308080358225877454946692729173098155448941253476031909062358028772399672168700489246110533889270159510035263879911389397351342737954032978904955126754222633813397557510909881396821675044914259121828582215791060893669627557058856102700627563571911520773566805587418283167267404696340134597495142335773534302442624058240654266873324766967156851946860912578587631503147600288507215283386888355022934302745481601535102424393271581452506544120428690423719562838240747638247200695403219934127433243041037812298471264722885377845986978813152782978967493605846686693286384199228316998406156912584547379682459634751238690495734160817178329013602411095712784573051467812292770775136100557220180765055590590035159903546031160312146913209568705056900793439024085934173688855259073033015206575584800502622864129546600237683025679223574355532624171865151752001218641322001131338292090155329465958276284741866112533512560834904478663940761899382774267840877047947906617025137417075208462828189497434925213548456064909958229114713319189433995282620385225355260665446372080861174502642875325176176568250115291162455900217588568928128215316417111214049882946794137640058264026909615859019327158923903986302150422589293746074071144186114596205844497144395903621798894477972798042446380533119841598134120353753184128739481544981558225166853032578962379316216327123030087150161105314096557530666584307271676637928097752701124263079645272820560933495761884168114170010923140189483151324235090252004114534305573802752433707953292430735633718305364516267690958587306369765727597061268706535078941173989365955896329891707009832924435801048949000612177338585402163329775988753493339118567614211992436206523478111431370419542343808122840095452693115161821880055332295819667304396311914217978550804643318681990256016229449039234087741557543813273364048549763317409590232482156952203725539752879563711273217213663259514324022444935877283980022725727699384433116186784992286378996904078673722971903543691997030566215376052750007786931630204862389775394787632418617276524135078836882463986011697027363590729885614015822663614100298294328791193800180324452738363315268173343129552481395668861381171030986725308674290891017916413964803718817597849453179400376411313800586230499447499545389356527789453635301502319998603651895024336402345535076646860576092427939723692696843582846061449091049754222225107148663866980721603686106972397975259558728057669688736749372954432888713731955737857263047957050003580643002707245223375148036952693706027555478083565387018258826619344765292434850999875034859525861014398371348452096893919897465605134085173715832140718905906574327171950074651203052225113563411422141532162255404903957974188243713013469807227504932655867546793569973471078310984506902268867623818423093192066553312321416198282077291379900800541880486496086488014231353834528060621086853727905765250875221959942813370601729404665122562441747284683547350702083721931793667519334786836836534684946810296007036027866621847103351099026800663673696725164064472496748117961883782012267274212399697935327962018911639521781133945552085020427364541979177284360923044961739162547935726842292696892196472359654577844598988961746060918863197555285044498648751055828476246113451826527190820788873522301484087720557538678885253154076665723531631184685264364266849275875318260218277912243161977363221490578394271679724831114805956080446264015497840279153130180224376731709722999280903604104451611822483963791379826858343996664726553129692793692096476444882057295522320912127920122277757586174422718893218911437453952772373372840338718398498102090551836492281790101350974930448069161417092977036169676529897837082582891175314817164739082323337669616244095932868433065483302412500319031219484747002552066994266719554664794933637294917530052910459963756831034078994243511849257891137648612368782115268924682157367773260028253596457565286374500991503201730580109110809067065682999434950837534072493726370623000754016413412026295821153715659563871866323074702442560307113031852003965770736632818292615897309029109152008673354842482134620948810013190376027317246589034712882327465356088795004873675787554350462160747202355373054173736444096680568123910766960437200026979660865355724764096150074904312516815429399039119603159562773470554511465710022299359067006035463827462993227504340858517280792662327833953188674825962958176389384376076667021110306930775215270601127037768972100637711671070269864804174545003682208035638543093928504950416542501959639432780211486062933045927999192621163673137016651640415774477682726677493232703033500017275293942142166132808054260586535305137328702491331445815767855852350293533533227737652406112140043304365089510473152825509402382232011863278181674639363510939819282372891032852111825266131849561759219019562033936153405683985009895158904776460087810645303594339593360661278522061366121061255238066635089762124522725913099924047580498277077335780779587569249529917811696717224694028195970701160806843157486231649857269384123310290081365487272643058998925976526171474988696369334182608503384958977307930402084303038639672925474817412890673817140505176766359155895587223811842923234035943570777603730324049431239022479961695415588669475526875551206940409350933039391484111922079634728090239108530749337496146008552576847693773582082524845750436830283949742115954856271368940293485007198501507412966909074150528038385525795206785602013109261818221045677757817026387197446823806867876353778814479169605557459130572480269340576481376282636757622190654240117889459129757882720731954227403361554514113667462922928568890190849494279576600199541662701104646768298795756527539817896158491718778532973349373978980391127549664170573580631863132726988667116591379532092661836829516456623174452040259333923911698858955447938195898738376104437821084975112766060877649691103981565111917791824299519347293952834456914096320715132645437217394460986582371918702784614528511755607653111013336490388877588385756516023226965149705837194176865702297782065991392879172807942408444061701271779101250444973576066765057984027363186186991361424769644441536789267138690982341838605799581695775938007131747150159898195952093358691812637973327151845022015265519937065797421372834137836055328943327268505811802929939509044821310177590566554120399111982366632219683594653562780784954922503309990322701617072369731782843415564252422770091075315013215806727988879527436619246328907632240589921462720885824491865341350096356379350789058629811098907469300725592958270311438906679587135406965058131340511054892468623721821088399023754694833120213348194636575717251246264563045949018650494682977507052368215130738142994042547906661077682822350939617531813303951757596197317466947031783602671297141474924248606467806963074789544542969280255307240062725552266010289016746950469777223878237956912219021380511911601302945482520771880577543948246410083926799243910615926712841344392442770638001083637498990872043643127921365758335585713145309636746529961103080489741582956242184752027744991525936822318356603243254627151355071735096365310279310178566690346331384933265653588621595364542883530276791107962058333871877866354914835364226823551196599746647589116122716702296411211066827731813152115722344984708094955606054545866553893684148126965412349111807973426265636068030504575124485566109034804496981164953920502992290584631520176096589373944721158982289476230587520384649883451346857635996964949584991637414734847664247913265816954695738128074656278202743975619281493442916940480100330215989432771567864443199298867795579163910788712053173929938415252268761018536853190070727334498260963496647614341703562009265926023256728434226452518860181733636485865603873290599351932556716941634324724540071996105295733190339064255712218338139855831805025488829134747132194998578951506497915927620281908305677346393418733358000236568019552297008328371565664428890554980757730027977352572716593755857188047155087557893331927690506218050982792005480183509759928515018002732462376934044085608202174374411871148425547330793999657594494640699025700474962491454582658708586544163691060382492813095379291239727786381154450727839375086376268324772591350309197526679826154252900710650226028674362378447236129381791030435280148706105341068944766752414059117973272618172590904992722396424438919947151433745565375949040743106088655871193934675438421360372471460288408284980669091397876481024981674717315157358276554367479566651421650262119054596160944303519806528744282332556608951517904259446916478779435367547634226896820508494642865930664508477005629404413814530903336574864416308402826208854477912264022427691286471330048535219514802809523015738057408224117961789951132224134809016312744181271839333829129385598242242004823583531390136660735754862857211397302269521781607101706765686222798297980106196066485626150540756515927591403212300923704987468793911678061734317199265846272068031318631391484067373659208207850928979268109061828163771696817902842342067686710311011081035442335544348798116136594728522862334172397223438955644084680438604276020377284992830543438390718926172762064424304640960803739578957261840366948644066792679469780616527783566340030830525739472666900395131391328155844590128706119813688589907569214012926581794007112845783140722127933933321708170663126241327609868209433799062061824819000387972190079035212042006103870661582037883427749788062032139483939121917336620746175295401000098835602384466685781132337334513492613406670649828244704442352947155860359516185462697217569365441732774250546617690819491268919088324989865751471478997552884490190067927634256247714593380701945733562423526567919787452473430169075275019174338874071038006480146689698780005833146251673065670760313994731020465030802809956405295008954180716598265149426882857391965820914765910113477413744264723086054136022718481488283141598057542562723564916273454021998543601208523393518146774656774685073009224427915937266757904679712724441697097608884597977508212756980701741372300198929651860785008263593160744348655777970494669611114211985119969522886803247542375738331623386798255481227453753180453145042339464337379992649559153319744402357680712879462272213643672877354854755360450791320946847430080196113027971741005297532442372947479278364519232367754127345241039828504489917672588405204582675212343843879863159998115906721377937235877545135468277397050790650254341153570730786549157279041896029220079814992566364247696468002175964877319325966710883184685648960389245889356566821562264445017588767424930018691955062677957431047557701634069022177850284096751984841665930690938629750386215185662564580564901656064647568267258281089936142409569123516698886874980577618193328422457665701904335567629886276346134737471416422136760327061354902430654957754895913747162357936653033677723989815525456394564591608717308725120495143943332290193922646030894675918679143243822503278596481180346498462692489337016340218060283504080192919330436780106913925190016252041100131831093378756399117669924223275881306667300632030475664269748888943137940131397586825581083972251065769488333070932214439241825599697426352598227746891799916558327628694466216859230632747743733241887871701567005076315647202479344420483345702650191998851793337067531029730171383031351159195664536275683469297282448536775330760687596698427052032912784700062173490732473530411742893061527379459996629016079619470407661602775015413128692750820901415314780178880917428780303900689579054063125363397921521027477998552561103418102065229198945566118874163704738656672514977214943868335736789314924706371764936227599858467827883735606102423011480364421558542551930787832176876752539357644970658295850669331257076008686901922764136352485112656229205048107515933359840642481592184500291303018131842308731008803300100270502888405796940764197298417588794954413962208393458886384285785860154363950903712683226815762190901447312497839901120394565998563960384584493473640431984025947066409514774046841409463241944845167076845411132341449706366490309691001702155646323143341048191449862800803387415158019059812543149331776243549027429300672256515300765603103108080222147344802155443032722286643644726299661862948050838285732596890505263712193392015213121474165761542557626080636614774450160188307080201179415324197308567715926635163921017600298186551101948748633848111585086991110253297197503157201734104629263260962128685161884543935854948262694416855618365370842686440459827609704170113927140041468354995614206497287950214535981576150128058388822936253366740790836214921731166810464072126732238491934885349317367444917851549297613867351976348191638077457940884985815684340612177539033064902412523209409710816865769979428439772987277618528929278834017281973146835811744370956992657802415976701937979490337175157269243750227517198111650708265428088044975436866860391237023822804170654516640430367187736418472527408250008036074673439039133353727099770610869801222344974554086645661641069388488334093809561676257828496043035011873473377088580765212516334080199380280480876245461021494862422109680135039889234587694756776937390950504277994857845341929556823458341042263378726717704915850639378927586276015500507469183594451221906677817896872962555998566512621527637863684783048780966500310101289627660089994356355047045021207207418451990482945606187453303663375134807865635254540910502484708156185858913530862906482383651824799520616853345840046087164159018489849418162829137989760170817136032950164461330585166988986107644210410202539685651309640645753951097691237376222440845737140585694037999417521238592120517069250481050387219493555869295813270372919714155410482478611012980379179903132800824708821940489603323865330447392579536818134772859079802831647735434951397140619724530710109300988269874263361794322170512470900279577895880564184618515089258279415812834682096593922650712389886799786682016992997146686591207057620938463861391063502157616153507863387167776615697862459999624264735869198413581509296520802296937495125475885716905344007335280658323623245337881115435578559643509003818750997733036386416319606721772531182040010245200860369765128406503353640725776086106121731734796883863524594663530204323866659645135365933763022861157657334026566713532321929360440985167171168411456866732053362944851702814137206743667856851524346342532802731871253137819447415100279051425079810859160661469524663058341690154451743363829709921530010663260021166143727820363530882797465803263553180801040350958710137984586782400678907310673284783483646892372314151371452385462085655658343540409207573821806336489695234471856963356836734113764028894867716938708546560183924053968776645543159457178302812128644337067889997852110448554381936378346017695898880669953266601850567441022352153438351022927930859467209063429763987651836231394896996465341448835807722710633496375429747452023670132547639814105799569888195742684505244807639265046901071345981975362916896539865263717179052396152811383438650976988277367776446795276050052618222665277630245217907986631683909916817131624583630007280277529547473670676187481261952673157811788751714867218783524077328475345602498511198026607003650171042221358210817858835127019501708726154571651253238210807597729475681701263460053180584453730967015395885111146014981270332356067106638668618469094855614268352736844423021195980036560252278684302892730335801870000748966100675281612358567506938095154878991345571949524135397754241687246782402791427670601156703054168390390342845275378063679194714123622547902647513152468042963954074848095591346058790512359499999288861064462736992711145939323665313533697972418199925123310118454630647163271770604168599125996398068639652159056511262031831764955077694121495043366033915006371387375237680386599912626732065011782697931802813556458330480637300392761685026305192231569925825147324491903109630823318307607413943844410145417834676824603053939165262070988876880429216805621181391504207323146116248497056061242417803299093874552690360241474555272643461510222748358123106014509492625221796624510417915461302562184268827936531422883896355448880982568360074326211741471226549638801715202730847646753003836592788060242661802306710842177955674827235259125487727718578867935399214251405074209518689686564398394611599120575728011145578105349503954292152728757471537994070739994326753985136799430392299013395208334481663521500998717485607863978408584431062638138022462520076428939327559260179356309444944704891144498409181661144490712887071367997727593489937672250067442695525113418462783483588275194337080552936517244749136906518650310873588385515824488073936291505500655305863047629715025965499867241494159862569792401473286595512702357135477833789999608447822288522712994739916230813806016274215416362086045430497260939664791900174521255989386257942625102526026153951735755571678281083731314604317789323580737961271107641103638372332849643969341076130105680112637595740597579162387690992687350254242780870113582927716514733722335563472010386628722208496516869041401096544969102755065677421328098761370721506202260742011103853541868577166332877371315731120929333610232449849300839838836620108251418908550286757390016379151991390318159270540369767819041523207622353794623193021112557798608107851469148570913841833443081727317307325749459965670380916080179900395193539991967676894351700595424133062424692097042357643003259938786310191557630070427718533509154773879334489164208279571982570837636535835841473812229926425152697853258565822715297832021265915599043812350208992443850124465302580964612038089362655566676940181236330888872202856686885245264527590952254571934549037374205347519038386450377508220782872156027356548722020982772047294592489841535313969203949519008070967165214943263245275019810242381891539192889894287602434455296810334964170497682423680999778496597476701177211606345515535727016907285939213291705161403846975131373014354605957682224507370316496115503016530083974347186027509942246268434039200824724426055357217199834358354353803067079219082058174959102728580280616391883251237385232953976227988508189061065191245290337329560555562430571492519348916054444864143855714635144952932997329223994357056321424735707669189063464921282578886145353625383912351224109544014646186982835398569466768063528557348859869188137728558120432696965283470898880174864737489852633642092748232715465543882171905529833868671866699480798162719702252980828136524347640364678519605664292936829178039796416516480530666803796541662372346673578010534407657521977293952442981101061177811271055352627702782747790045107320636078877087974316412303651300614055794287801649930445920677422874811647740930469649445384681237128478773720506274841122387431644039563754782407109704749437665542600255424413055288063308144429501032443391264897454055443686852508598871910986095999826387386506982004344294083379908693514128563109105386007795673809744500109033023142506478073402497936800789518823978479021084890310433271975317233880560859208009170712738508450411467969691046664403435650611279802873973065957020857295513381665372334218083691042259775631535258444973178158335727491835412942420839329807017763541184420451748131917988868328026043125528840688391194144919297579566634982508651887730449447117916271428457370666443233311712785788409055003502592498373657266717311714349054427684641604538024268632903193208974652696124786782427925230502692404292257242140050846955352327081729010052696389137382964553190927043696265610822925280490712114101259375204741486071870635513066015066961904264050154814156503460076197232431409677853436990014099155150181044490355219985351017849878182528754212128335613816343417224464270180794999996973998341887295016625205780852998577304687038589692296391476461266951589192739097508487119456230542237568731802724382777742664610214649584328069658153939752183481296717586544647165564385362899953701135761268347213955329360290563657935061115860175978558028987785036184273077851797481202373534554569641886776240558417961965662163504895257993822952199807684693010700980710248459113061461913226459887989554749726965981568266090029259948269821475679418985529635630592055629600327791939870303876592120001301008269020338391595221695764685329666369415350373022298526498791578651072973062253479101253374305625882775275217490056560679327233354273836210664164528879505696928527502384869457295286097753284202543959399339749148309592863300034657062513278230052805926314902916035984318886341410902095876221184533700553978186300689918562101422624668524669150789608224129366922885180532269469950571548600131016470055805553086835671996284506675775286497670665315121881878767113481257454481775138240662621064651961369136235256411241624994621080729269613389024335206666797681989524096332826312455761514358619802227574048141065054999110344119145362840869935400582776046130520214568285566270148046033229338001334591967485509443287889977288240163281821901596485259284493869974381242627157245885924171355724236966057933985905720381959764784827233218293848604228293922879790532051764380595414113572089081741371347745672621632387329475547676190963918438005725604167982382808498207900605328005408281958543517348184834209127199391560188908524154479453788197946762379316322111881272086633531992024811685369448943436084363310981822734209145472098517731657492310625607198886884321029695929754406139724922101430229516834569235451152261489868848693683626568979805759381626505844379949498012675465238755016092716301780473459051655637783296380920226840570454224262395961092596738700878055371950716899653638565094213846392827361146409898013939833005014572171298496386167674156577847623492891338936183396421064792991682790426569681357028407836004453685827780656061589273519255165980556118127633734347630927426875102778180294618502994765037981421001252690816581073320435547548078451228988803231334831857861446140145117751427558357855328790851940931419371646914560245362838382518282285024579906517170909828108691529797263800058867415707871161284854007697573070133388238941822183997354815990128434369660133635887535033092474638988028690061117895145456430791932352606597439658442944556582844393014857556418075718578598562520399493303867182222494695269686156531185112280459828231469114327373754455908164466650995800641117493661012223880582628083367709391875339526054181821386367730535968275755215028393526060399382618077129046821695711577941920293787497408054741735755101983867757634230646109269757163577216373184205048358304661100578264934316863747550655279373169193588780788738388426708494701186148042584979610322633485749442320773029789352873174979328506469027295734754585308189365231577967759859335406714403964650740034262063606996675493264130440155993148198512566267791207147904972009707981891518112542836077943105446655943713838571301984896695085228905194081915169709444001696082800359468590026339719153087233245717150892975123980046245365910204392896196578225931576052123787126382427540711188181398335413218905140360633947640840993779955108999315015607857601704457427685212446826656279247538344780174620564024177197322526187176303072204740182838236588174062741068808558639298666616336997377988847936532467090057181790242022679387873119146069639096400703082249852908682479363225238804227367288768951440586241367518026064812640213043841338401486620296788375239732474894308273225686951152895436415897260963568665907370532269865312959686914801013145182622324104918760508790888536726291933792087449807460851175461500058815546994496326181004977352910352132285634319259527631795758480671877227999429864321452454133373575818178188596726062134829207564987816930327661020773506608907822032055303034902171975936433433526193179590739979055565113534778924629005359075123256840420693063686163340680696901771373337040356015731975034165472659160412818390502128718591567219589000904733497185955345715731658069391384735369037059122581300570259310623132891998141904692499818857774702485090977494951939206721225137845843733677171232727197216407079013722861825364793873647750879925266733336491677368774659281703007450175720363973540653520377600205326916294305363187024503763408180819291026635682933331251342721432869477835054332416580453843763199929234375124148650192955156437031316064728498397106360369088123656291787233536030639922724996729144805723516488463530777236487895116854523413943228185688533244549005173687955280617112793412579799065904410363614269500626319214056962492465955949992709711715354276774587778409344028055655524301487494346052617340044772672113956404232641755200012387196460935721458085481305345149401974972317456234678637884814642458026325855563298567987017580242548277714841718005722225431854397301771083099650051199620762933369219397287843356673761072538782237043536421183511957081769195897695064302780206222849758119065099002422871342201483177528185024142802833113522517570016124581787647110850932718475287309132325150036615868950566314539583138507059558583270998626946701007920664842233483172102141731194624956486940039349252543104320314381227406163159770021557860392100293182020740062533569933385151083769636092907910905118726853114156154417060630330115572104658693541914189048472440759126996407449810274298446155331697476086130495099156267511169718829735278919745352181533302659878945040302605813743167648940231533808510190186704282417951821433091150773161178906175363701331463456851148016153962385160534206416386360877879149648660520382040104217699769478321450250670103203399108053700242817285920553531941911489512709049389357235501014664091307072106953113951157486096961602290398515620294328936608998474232660128567145807615624170735269010290894974825212046225811889801900761724234092990255102455754879965150655589894639188814921210979711875591816410924736401368955775253684921335203243954983737683897739878610427288603509975149167869408725201284491370121272496662592103183489244722405783336857324569548929091193118245021625012405197386253507984318445772107920475869819303574978442806663269901025113598211209162712982664072409385330541845390466371578578290122215989567017748461885051870675163036681321059975776262622436857938613320624957353658892049547856669672268745288008769110165048974203802770108853630249645209213407259313313203526765610282997897052142091750742810865536409985037351965940141303507500843588212569323158486320190822399855995432540659476393588409374355182132235518859448633279903684496978709396801701982569272542493968401549052880629140179466769315761370389180709075624247347096416980114282907098619798188238547210823389076852389864401324613861524672783598645740363864085689184194250843568986580525605484889395594015485710141137121612054722412812350689734546147083306520753463415398756159604258904411448379824871131139093042809070446117583581078980169876856450895896839684291181881987154534744990712020125318059061272741975811382373956930256698489679771388922446977167369876955237390892762240025130499104080743598444506626105884545938563734270504824780808627129303201482317245893846036128756872228846897500177951759422078589438434851601686839661262316213450102811218289630860209559984098599062417304750247109091547820114800323907983065409025317302504068650431814056127030094978749613775472716525741198244572637708128061117789486287747503716606267498127702944806288751390791732324419576061653762019427344107008273474836655315573883882901200252509033986890346018671768550096136662272541645653229541145603454670754925542426631351010307606143421009297878609386541803960047021462809099117204593523845832637951342537719782844199121258756294201845805207529929777451767363639323903306879687749851169460900081641188162176675788653929068246942504638344905361722143777299763735080461961919495911633431059049198994445896218080744525895509830163569773544485030977039316090068758550727889453176537231672913802119660521510773895618551040534691241003586101925789313871581321625836690695968418135301202533383368077902784512577370987404717335090144881918138554501204765140244603020882442675190547990375585776056440308374104572989036848689189060229924393029483559139381951078483100519295022571285391226724806940265320198038221774290261725263582836210542653866674970315825236721954744229885660993106948795508212480497528258764258779590385694168643685451074824829580917609258015151311489743296882485786109842909552569763939674903591298403291452086156163966625986709391939370367165568241345002091069919464017670384834424495971085971071265769225567084983792228596413798111562622118263063965575221718800062937571026573156356907499591118251668681694911104418084847587819569115721166221208463256506198629504802539222343747383026263095360262156659163241469538172848287125954539427324839277141233880228729771685989975440425789248301221355429447351795930200157166495807035325018607832673762933554323223066448246458165902126077723855622296934742134399996800543473369603404413374263617968053039877219302293407846845380244616475458112074259218685725112418213539648257746338787140420313673310236684026223716046348963047633064470554618640820639707419169815023170055814394035479428227349570507225511732191483941657639122154486871765364254816921579786165882409426649335863781936059139919576343208980917754969458123337411126882703752936656099735623121219098420498525049090123222425655247243211656449516331402898913397914999906761460271119404718501170556172789827404239936369860848324491864364335682778702083211397355908670166775475152503917780171443449968675501718537691252479583109901385829494669046333166741283427301262822448561355748194024307406369611417052755148240458294293765643408747416563121879297812374471127014717579234830713054159910285188171021372050242764303837172971641745851530946757157726691452303599038923981324766066268743596445162883604323008906021991868131403826923575174211544572845780841193155783418946389833177738054309328808332055189322734017153165617100636071356882283428731056395254998019763934188705096227082893555784000207107359211672326633998085977203074396746843715543308570228030751972639428038196338945690726606877268180864114913243663034509407861564203902893256544840216475246420907702727984169012630178222604036153339337589066102519748171773869235184093453559207225370937838826106571875655181803191606823034109915812010864749685748950921272341656772077768070303217225162040437245672031025867638146569373468047664631880961766956401467530093002207007490989640156993256527118266040929865666365601184592416970505106637191550025111298573211137083144784974634615097090794712704626721694744089944039245013756724767584115615818687243803729278191496229596694971581894708714506297602124686210072096107075058983262913540488781308831941894162834205345674318149621904620824004839918007480388981024315035966469099047185447467042187644208772751006481665391266032157278937269186859753597164914310111821733758542432867081500407570420539682304152161869113305808214974016745911916040614798644032498612013297217632353637217699266540535785629935229680226249262760704025075461184225015225393354917121985287632308477185463163127667841780862277325013121678196797881979628523513684885398490326057970708954984439302484000682685912087082022041552713798511003226627470559427399422107923206307946660630810256405046595693783467580372510444041068789646058161683711960576378294130149132724851796842745314329918878840784611974545870575803798452569597642743049153696257524284631775620920030311468991813795561844071840312650518542326086644812127983994680673294063287053780655181784682975035296585465851911467774686997206345990694304215460018247384111950423119044381578143507072575613608803481616427923493448642560304496760808977143428309010296572696813627301138326769512644033682287069171704254092549690171576344972315303619905638281528275162752446407298143094636706134770558255166362712901041929315849800555978591556047389760744598466647849910597342305256314446767897325119719968222854494431017572357348083121061735216635692182938946512301379919022306083664465018885536418216610165921457583139447359998670246391230960693151545640283076048573752155421234144415890908136512535732374224486686845364790899408224870026549128148369625586378499251800147450478639199094368280428373276775643235076784213531667662873787438073994622486102885681872005287443383133145799051339220976446964262116540091963162732770519529844651850330117277672806258732494965952180434016197491541492960711525538582111666980861792020422768582849492124019865101841181864680876428140858760525320164286336913874121417435195813741452074697166750610794510918788239081079342563098766457318068565711381816763360410100214926836979015849940345027178487636130443308776307687068793490666037871287781808196981315011525298544177730763078228580382864838037814549184759045341995157975343166959922240927831000036149547537037975194559065828449862799120058566967146969875188837971576888132777709188943688533866392389908278202184010418885259176145666078014747007405376559451276763832443013288716019084601056829250606280082465430836588188139378285175858664369372531217748595257004345740863820444999458381062734319724874762640111204691510247664113881804590806319499638445493113696515913744619966653030092780067250268045046003694302894925816976296915700921450239270006541566209507805078676500862699679969294345786806500381490186035538985535193693818850062723642025698219436968013680133749875140602580531416631715038384138029606468243560632992185191593969913329467024784814475880475295338097152953757802098332677131854460663162251960783184751328796278778709323580178287566889795101355780509228468648411203430306168428505389401178384740952172318622253922086946929081922074819939906453520403005815917940798097543943169018414475008232324548545425989551696214971686774614511619358539319955973517934746664113217052825321953598943254307029815766927348621773798776038848907826640335732682863612138287359546926121918599822036163104453797630838954647258893854078594297264167578657817510516328281812488156431949390833877997225301004631144410959921801656162509214696758102929663444119126124993958652046480819038807719767518970300799411863008017850630549137904729652865515583808730078921837587627741702431615043651298233192323948629864893237705863713739757259423563096802947105032727047426017337398039417477591886325584423938183838026675658331353328773669431689741338381922579399990839280605825165132148256500990438677327787899424473120501142572142115972171271902213385668359910347845626361983075837235351457716230992436609656314884236752922436469829621612714691565744507629466549425800617773830088416262929521860556887652806983471171787223056030739447542370962057080605837159334763061269176643281873104144404707849720084990892137970796108110210004323457478043145541543486614654455780340259222066349481807973710432338276834682291103607643557089829466129889973473565275597342352470092118631918905984956463415315794090062883091176947584017474745610936830512212549148333319475593509188928914745370311472241709467304816784348965142044489138609665270444579817209464244918687488433621186184455739548562268774605701228114222635106075418108475283045504787901474557275926228154037355520049547542156417506703568737883186063720429394420591845153053720369693263326929063772648929455039463269247805220259609193776186355326119564673780430169166330047627162835036096704784264143442658085688818187819915772249319324593352380687654778546245258502262303769767421747719613799921752474259716177841818172723252770338551780711388578191023508764134523003196478801520171783441382514058038131506272192491680912255641992227278358770694156919320298853791951579240701899141760349698017885359297415895597208817413886609380289331076825771119122076200423046755545454649191269129273638770740807336723498345491051760578901650548220015141415966097894223422021351377868460586171752761727171783476072945089156614689095682297252191912567980251144568722857964843129738234447647871848005202076629044728227343116906217852539555666520134243247322570568540784221383550804457571791982673997890678051261768721369250138375354632826258679318135689590952419611827732834299270014529268157001804921093935077277483544858894500507722998322046419328460565672837609155604766279101337238709884943811050394752464433548091707010841501637319668644641199145593453854761861227004399497328764183449306545108210865467604335032870248986936041894729170632784766965800638528173410568295974084769793483512390297332170404146324789613536693783232138063532376846797530039743209007209369037138273316552798908484696584894498996409626434924006417756876111469640916778711978991763402556023637017376553196722962061843609570771919534964561127095340904560652728626315127799471033243979844087638598361714700732894499892646821022325161247320628893395693072986792703702374938483748058310502257366261883487253355817302259696336544561638414227014041800025956013681302191728555763741998494674908143436284080127486965555252794621380886818945337623195488060130604534055635971697788973304598292703401637344490538942395653494341554331928339706887497069095566651100707811981381141464702814979303945502715824449423526652399053873137039072601539344968253963770039993152618974952778892235646195046790583824862272027514672097378953917758512076789156953743109103226348535879494349852543449383251782248913825452839980089565686309221251110527235378689256702083782622734661683101764927952403167665896528049186027131081116494135316898740491394922650441130960444581356070459983855992630280860734014875026048176452755152253414373457755825441708456989716989580109795018899158234237962650918464209694445983308249645114614218830130021990430717681941444692112236252755493903748797524027339237828688587476270759551722204414660005323461577301862233256259720645357500271006795735952483429118552847012306637779714287455024382706070096350305569564775347086926923043471838475927396087698008376616159184400837810419670426058331521321586999968234688877313665181552844792675474232253399434836308602720775100778621631593051939475953019775363699669950011023661486746153103800568079017636488109746995031465650082583609194318071045518589448464120975283726638074452586460121188261427483395955075322940844722443502753067869900998959379904759455035696350801909670148707848518198346221650970670637603937820688009661357800308799695246816227724000721303401384959008496865040895178604502491710809109216960249237132592371905120786699529170883223150544037966784914883590791542567691211503258278162963867756588771767880332742995808107266514440391766216983659540906573081877205563961270525170823118883485753489650774618593476008603810580420815169340299692454989125902581223127721327927507389538407503347252304860304974910106298511072768840405630475498146394541322661977678732737505733177580910391916052616269568545862105480697079464779310589394895513288024060393778698356517739906728859579637963553966025458561896835009055371845221211193438337192639312554117240463561841225792799110644700166717457611203078151746071679833006091797228547120835747201710016625363957770480874905669597186495335558921818838200248629936839663242439932148903481008394494964257403322801061509592159105487836815424664575134224880428669327353305731516841491089584379569663461411761632610960577770902287602295680942077512556793275296919675006228556502616633006574049062092681505870326842176758489107111493317263922529813068385196796582767659898344213302667908598452970021248028550754330360583225068243571763840398371456668556505192478256101352672651020708199688917702179309714279663755277082899971508587929131762054936425967924998042930836143517828871228618392651227636166509689635502622106362055958886837084618763871821989145258500553853973709971103860658758707565298864735654557979334406504042223765183801889515979353157104710039385918613612756553058893617939132182402257214240766662265050964721582857712743422113564335928099758708580301432692064821433074562892916800277405606336734508508920225041780703439889954111178686607093041658470987157470233979758874180774502214874791711591475238552244419786028977758089183579855908679147586263897916060033866280321262113156261546611183432354587924337290986647146151500852741976109332602824401400967996616827987593664185842641063901518177511422416371147304336602101990809889158053132310746570456182664439201956217811566424855213016814385104318460524577878096569012390700970203999443772499819184920016806267820867354201304967414543077591168703801644412160331121478313297274355665284381159679743339471606162423096486837649626796740151778245575842576643198265898079176347756217579622709691333085629414812727691741835828821463962570967048469018329238519857674118248540657235835743384059735904977683654922549879610955662007940603311204798474287559833693069441329878684533650619761708659060559149541835849367256485146066910697413889147962908503525267499542635762215229589338299165132815463380654456918754878827190661829720305812210652659311354618520050906763764162181855556589676243280380201064764060125137100503217012986496550274273451490758946781492041026009451341784598417109290731664029334583229985630438703379859197213143355769596162391806097680256000624623073171172882705663927403852937201185845232499051615734965335357905669823525819133010121901061606723306117917799253615129079872546381796618003475175888387061971438863440953046531026445729398377232845806841898951755931320072965967816672101329668770710073148921640233173241261782363296742648123338091384051198923851454264313519618488386117753671289758235589549780456653790048323542757175759154081407958967262495323687937146940715635037688445433398232854330017911133151705386267667513361092656047599102841583122202295852230397031992108278855574731856089308991141888647390338751564896119949412378904504943373855537426410744682007526289727650107757531977806751835435456421079293257052370266030383946490160816542075538874702257436809208423212275493940353649509666432143788246660893484860131625199169464766403662649072220390874473448647257088552087288197803492304552845421963285619338680021240410108003345925645759666182300136667631316603071653807887179319137448611068785683411638061703146538681235495561358708115887230055660087720192090892347330450043453152829259767957240372412086661978019686028456643181156116520887662408287338195713653416312142653338746639408448851913388576879821734831986739144669071074261749494803210822366393445428571882910631468054047637055377304478957361305084003656228759721694513868241939134682905002448840591428063815349902461852135298952514726967455966563753340466018706945164366175814386533993456430422338692444262077632073278764319579742700021598602920183041215936522379274580420078735061148412207174122269782242680649170977092926817531894233995493711319123757474331644379156954780966983584610752354181935917273394504395132983745926238478745601110028345965272687144363213166560036316132741516914838584379105861018951030781904106930868467307470247811365941752013032722787477183096722361297173992859690196243129931607293002161433613889164813904966460393625958407015825708698860401563426014689013039406328807835645528143982935427172744451318982623182765069589442569069797657867631885764598523876820567603148625989202646690796816401101506627930661908022124971883067071595827286153352217393930895913790849790273829426140147649550914379739683605087848791044653263427751204780484503508106843480951520257313782866995381153975912090169497685453974804977729089591803538356558739248115255645841089828964881327904257315338649758096049604084169528681321934409198347947489298161083182323725324672234949207839434729181769784492685929126021032172236902205445936102118086292978069526297726703739516538300750643810818650996781680899622455770261386796758724241992894319338674096438919770882800567317149766585769128559039755817610706161471513067893126210989470231864666368069696617618979722190888661006033385171879883269048535081786574384795647586069357822117504008764916514366742219669704941324978680066488177372150478914582171037482801170719523837376545727257825293194627923952944806201398568742264559782141190058192687248489563629050790570354590190560037953636178101262490983900440420682154652127783143705585885789155393166738220215790211601712883601968209679766718229245255050370874467423521200863652491391504667808272255753552658333791584009245625403293687211943837884010474981758817977067373814141431315500170161561163818917212874867133197432298793098861892988355916565440404213267927634875379317385981248004873838390956644171579119045097934958195699774645599710487538865829823282319743323270530691676681658459140331688824517879105114944389708166016282682759792920956854535859578470741602060475017027345886394817940964722658037737698626113675512605414562622934783141050033887255510020953963282914744939984527149604908374567020282308288003065100412160579431545167379622491737650353736973227714990192390376844807752198074870407034148179656394271723555709459961768513249087298455068741366421665275758789953430863859564898696238035159243716539116967307471469290775430522651703945865456768096188242302974856148944910336353803855570818232601339002897867109557543711876556752577173894708732853013230065608264615373569312828706513905967120965411887043786440433735713606909112641501807655049673699861692122944561175564408597836539166671344342602500358300672482996137360296136966356750035512320839079043606396766077771699388718228514401299657988138940030216623402649127610323827550690068155851000951645065882988275157234116242331344909679245590533736704398582920455734736227938166256614124527606833339414023139391141398728678168138146043742763459327597835906657997578059505921842075996211259283435276684811688002750513401396914666332706228467960927784879903581787254548394398474500950571934367532015552205570653025791085267888258882506760721469116182523963146657217020755953872053034153405075583486143801223463805410097584540720933732418857624404792628317535788188930302792996510498043281519465052774988148017429020999318259695242009971203795808519422531672627963582333309307943557365748680332200077845488151441544766823582251178964241885663223497533579957239371217520420840790624735139639645909556830400415817409194730087434966554305069767606007374527834263780329470319193891845247851818446470367682730835370887946639580633406449204783657262657784691688526668534370213304734068923980824143834978877553789632047516171620051007835286715474837280838276400248824931574280739627719663439977287073537655573429089375726149760529540497909774408485788299005336572002469098070919540118670351364965885204662327393092133238676379941458637374675613847703735112253284530674383511261375333061821234365115870256722509559309631828904448597349445539261966625519994252253563151549894962830343599965025043992683726442647212962221541319833645942952001269304996365590630213751314957355360790708094106955781702417669981802598159165708486703622023160394363449361292156991620473952630681627032668376647216300008217922659681063644129379811101102486003754901616990542151121414029862874988428755595261375951016508390394257749282532459563651683669351200419451494060006134168359302430453703448763259333851289791306280294119617430440567626555224595592135733137443418860936176905459781804177712476565562236580554184175430497213073896280124707629066250479978376594494276314999040350630528430775351963375766600519418660967779124261891032301437601236099903331508906451928295737380624770197378175974231358953659091509519758624851020696971281654510891754111572524454658417438437728890276591374148280990954192729370407925096424362018966974639354192458829933918359539014258198770395244871665158415679401167211102842444107008490719947543592184963450025538564023547134838335432904839835619536844433845215941101135755825164093218998171661057622330242403934267717562477306174724563542420484956657450784307914090424501424654555435847307713026222070597670217921918158664722630775291559153680386060252155435892890106431812637103818822115565782023134966531392709962884246469805720915262249095986444887668763966955575160789355576651074624715147422976282963711022236544734331343054817725880917496767959720813408032595491565842780089241452525016619822817966686995101428996328255327634568635258777357121830752856027543554687694653379426378429872596560362947529046977700714458995949196913466018619962763914338871564035029260216368532635727822263459951664004294946651600858343919375706632818423884444972007947196403478079268710200311811230410592184566602733225744637913104228526557499349606551374522974772843669603725976935263473430545941177140100821476386510823323775032635681814549009193099421018137619642963466370158240765788732336719471713479740995488755988777061733123125891870910954784643588277907220977073713139598075666768412787587728741588807731255393662952330989071744726009173910977910750584237244781897768502602516024094693513315622507408759257228767163277730158743649882561181985782472388575021036563932787933899195921195027850980953764078102440745568604911515479139237410631537231535537164037578218997021330124320094887888233617912964455351452972115385369967244596050602594037864787978665060721807989067423108154268313769732469712165353779283479145257016196869096195100360291961675011424025538189531149260728972065256328476005882785683821896634277390081426402003591154287364152200348334245709437206615850172925490137558570003623218125674825833221908586725448635191567100423489430745159865009607545094076132286718300447785921513853428500977014116534768376690576107662323253231249606226012767984791451216800388653954069267408328556436854657034739866062832163321826478157577887581844004943695708920738426452019391734046351122544535023792597314627629158276990263160176562179457428412248576621669774391268006883897705437727660642131576289235637882526456048403058519250031969903929348666707639139375052055676534702587709571103882959720977918522850483225407172621037087353955617666137569193008567385968529357013767273358572109271448842453315023176295293728876052772018862751823868115282416647560353903440196925712086177690106895449007052168493166221344939457068715501732524977122039118252951206118846765377074633146500653762185979655809182842923885153309610315365484390630474553934403313821331401475179444730682516284524598424652738671232007802798584060949678936865814236943697290254718137693376251395247492924302442115635088757153199660589580280643307823532078704066537055349826404718218648328923748120043665815665634703528079531142612557282692553173313573411512623967285655701331076554917613725071661330633990434955494089192885767164792395088173017887649264095372459070014721272592784687001336346975524916836245357421363700115551536534726352781278462153424569685479267185919416431354751149594953133979685114221455251655607034308336867179952286771824282059899995002604775826191277244592636451219152151071647876072475120996223081163991936615777599720190138319862069715872602765864774425818709162448695485136646139305402115990703602280132626691843036123838147278717920036433533485252882394406232248303095962478898122828317532913676472815237715820013754617157833901696046190590904066606811600281165664071216841737289608080532468991182952836848123123978410282771769854564206562004623665498627196656246302118103087535506503268385760768582082865790817812367847684002866356234310558740097540949095697502440272542877371211153531615293722396566436586932049361751778703557406274604766798799826540221105319540912615756801204946720037501470307318866876742263903314854948658346304408011977017593218501309502062309866073197838585444005737365030328561349892690831931265326948299247784999666333103183848800953028573473601718247343954318682203007607895305283027913944820983763698777119464622709094490104591536720732333487714671776496597678291576373485652984491890246184182701168867570465393417671049932170478464412409294808479910108614820216583364291447681130500946804680806007404216466362675366736413057943051192305917940577817596459762184185796583032011890020866583636489796891859324309120310750187077215451319929598819613549377100486834472408542020830803013112501124119195749578397805952320411366000327275267506365010193412642729021330797389243924215455476261807967334123381244913764754443557376541443463417018407495882329731902430408123326077823793123900529411342880164381044578382206445730434481479179209291145430758136265148587579638538520148712251312453080716415942385732317907182963263896516131534578993000442686758579390747931288668149986766049170819852764912213319332340377029680490098529983712998813557656885273260999969207834900559675772552558533371315115987000338667977455102618198846185256766944682835449753290185076941309268422330765021411836313371126817334528987120594565849112023571820110218745288365948063653706000494494021442065610555477916513243070699708873814952032758333730328694340286338133199269381876578686662678968427141795349342625878503399388137687559153004251277596013512306332797437436555374542320013508304465335440534422779793706618153683353307730929523909662963709450752152397207676327960336770793547891993295046991568022000617711359841078179403205477966707971006622433193261422996114949609784661582100890525610410663392588370075885270127973145086172801586048202454776032272737666005653850727892917317274372294573607399451661917435187525243837627770620500480898853029000662328156349601831433662134393973440069298838161754131982770496427119282482963123072082849841890146958250388774721479853620886586808860405379547646297353326830534163076501500233770085148277848213941427881734117658618811196815548198056007422767807754475776285455105455253326157435799302744205555240621915722463638672381220179011833767104812913650211951757810961103925656912340696763746892457153263390859916544153685614812387664547690886633939245765130191189793208243433298941655994440960661875731347466512485186058796963338378682464597455561804168888756901797880785932817389799822653264862862649723713141531139751788819184222248315921591403213302032807216962525270761330447047799595064136159789100740752597306027722745984256967930890083360873593679445518165171910355223595361246531416587724718662331164541654926666227513661255434095152537073362366617727496800014508080932177564051234449138805895635357247464498700674672427861966441064503890804421270257881744535042802147024528084008347763425781237125334015103223016559843379210806050024087122553521761212780403335156922119644095223466950792528712141942667187158340860422828736526237503841053323389421073116463109786661027307031749710911234881583815210144421966670213385886214260494180681233053377321137268624037241831927622069064846060087654412502758205633789893489802974366245350654070682832479392832879966203296787605667942219874521417579150141657347390037992711213682687249408208374635435547321585366420973662110232642489564297126514872779585051425224869972916357944140631947359456463331792175136064845923018571621558947127982794386981620010561957958335783580584925508580709761856633784560561543665850097860611742059338291076560007877479926636242510145688955072069705647576967660274605584946742379207829814855877298410898377867653194069014402279444709847935648542756161140909142806370789912105202548722863636107014718035046272561127471988715821316299978145479996678180919513687892794389796842831665230628261155672521652430000190680368729274651810939912879363991038805756306026275246887449287360362128482014675650443765478824038886213465468238356879363046306334326273437015463984562550575591932139998936063816902192339318268418173763540557628269293369860512865110243464751096703952569704360821506626849376569265188001998024013115917503661605953896478839400422435007387704278810742255784456469391976705645019526993500861069176129504021601352758101924605744833939702402844850087425869922116772263943240675014207875371619412839612828599519631824575286366818004528710204806099905279729890132982501320146458729893605997487815694304850287984767835488062780558015926242235156629438242164104320232045253180598987553725267638503731975008239764171208259202540422174753193722062774928935515172441498543544787033904161481828219397784737168434809834517956650190117853952691273794904855744602993267238162365783888155052369908977959678986639577682765739057651852583850372449483484209464632535839097746206570287347170711954175789104168557633570635339343398472662294127260752353450518067138574652838457084434844124927686439901533174717931177480345187751256189510422424179158769496373467349583622628630564998385666080387022609330930929308612270767612903098166156739088740622210301464656165551334333708140301875488010332944368036405295486114263681841038500477773220476732247812507751710972923586031326833066787164190095078617099614178815077529656290663988993529156515812276488620964994556807155102455953621040797064855742950928633963772173937892893295049365217660033114582628046079388256754256929240546465729087682429462617508324901143478561093922786490533854214462850232979882726587627585003761070758202685774708468943890889466478828311233475422734824743777681869820489310848342796442378472632057884509202534876974272646367616686704854303130628241251507950160939133120742164050806479121920502398292514442912455270525515954309271918091646906212618446372073485749563759814013898418340559352246261896175124555078347923243388528408097748397032821827780340975147142156473840789701913965609544692368973990411646566548577585781885718517003009633799895230498465900484078684027048741761746843747862702695761471231896671620044898209796385589805026005585109519572326059146647503742503034635548763139439752498608146952668468870444054248021787658624308668063847261399016596071839497782379591977165520526102675942401606520796324364223474938600032108781178880640254152417971807073269269118140225274873025117555933919310690036949361244282220125481601418337229716629384059169823287972060462145758692365674140478743152922613346559909380735401076430217389881737379331277852998734698247393070580415864358894666468479938553284315107296119857372326102593929929815463186712841921260847580432053242002469912640929828205774506907030708777429899632588365682548328112900230080228581690935622452051796411560071649845581971285077126523915095058599259306214410945235203859645228303842355823548402460063507243419016643527296367137924123682195081096925795115550334250550198149310042568730965075768094133529852288165702328616414492802340832567699697770801594668838870096478346434535396268209092503947850638831925974752820832540295452318786308478975598177667540402413112346495688987522942442886984308643408053501793534908772047979413459715584856203514119306846522313213115430201354146076404838771730641461500960401019801022764747802119388288858638662712786474430472889796569285770910452692994263608889781510922938820795785666054637070980303494608718102331195013936519044544858078376527031452079596740128063344048986869373505797897216495297257884557720200803972228063799282757431322560703615001164281148526332624627005291559673394914680057090540543515410764179851893300323158467904967874099693471764094547123386239000219296412729850367070937914191579438738943834185873405178546631884898221131498805340965840103166772858531476511137747163040312678661688516649345433394604609247432365428349608840340539258117184490929464706763257372811434754577370244838776756630181293248423246341638321331484865987685192873417925147564728243278168318177993228327121537313710672048236638327906466127114430686115447661692865551011141184229208510471645801694039263899651927379816683190517464049295870933045225911807142132144566203292487616106233068763113353398066292554002151260786903480841679938454913078390301224240601770804279139998483583994671517075182339960883026658514541677341555563880227168381383827896621461953300893208179364829579863191051562064760710852622822842959727121505942683236268045689739290427858254604851474939832914391259504760843178398858614728229554381670930334272395509082405305907631541961702252154947205349702405568211884098009125530953985656509095876518805397028029735169190703555497975245641551439921881210342378660440542843284879293440993232667343734171098631769265347370861469838041716548205000038881742521659475112851651198304213261938778940558778483799265239192183870722404835142264963534831593690960147225251526822921679964351145420927408181351025219597429033033513137892144411323862708239199301108782460448694852501888866408018750410059339041522273203688671628746115253595569230180614086491190700228530585944178461023279131820719670075725922154803216327998656811960444870269090652598784654070582857840356883054679231278041469938424172124542140106929296546766371361367513603055212650326464855252921494388300187255893914488242584034949272261791015410432088922959826802436869409582336177497909398265139995691809227142852274351995578341074313689552389333221273172070016279327642930280018378227148339559754408001616628527884151909971704667852457177011243695874615608288779710652868599840294513831083303296658121771242007596107253215830186035156612332383135313293218376380987146887708496122108363178663561345834650836236903779677088360069729824260106437827084888920033309357240636303817304537290507134161750436097545051804213295792480974548243192717469415326931834391207556732223280459749530800745433419387996837475942976842436464988494862735228442920610979788343039510653518004184134758471732577810151811134686774072682239080456287941606742984475569054584539925112094849428150610935014517976871688986099045967584136267888052130691669696296153647898602292667917876375291899050148467096981452463270062355136376860215829082722202907736115192722052728577593955614769244758840905654471859991060053140211373479194546949455568552731626872478052466532549747655404666190457496514838759366603305454840970047116447985943679135333580783363630132712160021784978100937948110583499730629302072554538374656151867303119931034565894166630750076810412396077805166607623722979142151372387148541361290322825134346646934109433114180624339200897045012924845714182495594886130183937150349936068418313385881672072507042775241751740216383789598351530534564179656187971708473662093834953057979744896539359109615780450729525622761769752847744789200043093707902324104258916727871007606680563301693112373405848960808807827282214303270080198824189843767061657130889031435767384027394439614512443547737769976514160834151695739735548953834777108169493845528574055505445659568414221077680726566478717881648232312834683934662296896431558409684819815713862297325963508763371908675580999457293903960598852283133661254529337058925016579966066600359427127758074999159758591746821000049762014229311362450088911493247405712378647990348779839760144610717524262240441487576359198664188880087298891521336304963824870831931405974474219446630529413171432471251568029544637224917123714832198887012997164601411125785831999095440506734796257454607032486022202321974627813350802902921088749669434049451407616678068951394595430170575858336298724496500013241136780523464798843413167695622333116951564554538044310874711211348800632062306664364827769805309057301081562791000156381254672081025638782419572178516984866387312687899813685329664497917119639754767963327688638917654288900386808473058021376685580028780049383239459138859429377217522285961086932122360781243817254973208246805205001316975402326074314623703232890775442837725429238382825262057064645862432957630971567300392767134960586765644697947815407262243185301751282932997412365698447968975060810737368283405886262202859663358479538095315414077230101529664403414727458687997571666578877541402622310787842622142427242166943719919156140824717314887997974250056928781634617345930547694439439745610809076415175786856366891880104345937341836329612288168524371297187580322068929042807852718382951247415455013000024440842733362258840466112479455330389350946423232340309806103177118382190067092552484215001421727882502221621233141691103015032348310410321230409369514672151347557743646419394325631563942832367313801496217611670928742329512782440555848541775176941628398937791333915815101655444397548360195759671195659318136942912808813786829896910859019377598255165114661932459865848785612018593554341621806785936941383686375013663502178617006167916762152238433055963449554529140808977625936535557573619681159935453648708051712270081895110550235446370608269720265331634576554412174587574645777283906337888091489329204290510673994144919148498351718724453852725843790059604090905351480888932053057020902334960418973490911142865676077171739981137786842502133222616172217863504105074261851746750417771047970189604197459693254122734286025586277814991328782010134872809529240612934021191311750025951155939503573594264345042665551636663667281066153088466301018062107366474532928576341410872125205963089357177113932806876535507700568068243943595557525393529460688011135341998768367472964361544482516827203066063628577294329847381764227933588127953774448406827364412216234068619017969571911622525264809776033366928097450861599736747691236829312401220879342170614120175099663973619186304746131243655290247560094884361489028992184280174823870490200445778859928107408547796949778706780310553001693011980864595816956903792910723648555820676751073898934647523765391981668349614818734062628865094998487763591678993666610412557173071795713218476623307543183634606423949882349678513887369456247586716908248244255258943376618806925237484384544294885138001633052299878477852816648739819973622375623125699540121809306202316470644969218741832929734319007839193323433781135954030493852500719730113886480518806271221561030748497238617751899871212442228121057177574955117405801136348389350940355613694629926030187778721548676354859651461665898727238517785521243086571945306943370711290120481308838125825975348392047680987496965035096907196751188798851468427620425483161313698921666699274073978327948458005538041713767656987144926352851082881817419057226175309299384712011296118449038575990634730368744485417126007343602776436490093379186437982980141174745309702938322445823217086589421288256271192387524033924356056904370568725190812037849929299949929051190856706608596314198165653982341396495910928072778184911682614991579079224813917472020959922450606397869840817321081445906348693197743746587634686276672338577006024121491413774738946644011498567117213892208813599326066596017214291255436697350921573844703181756078685936104216917488273818931283992325295909753222779379125324162176347455897589990813909298051247679802131723978764128969466832575963352642546903715928825940134590947758904848124385424298897088804586773782026723638325818266793990927869080004101780908089929509470495368193743567214931966964622746686583531178178986864582759136813114484926627581569505113905504568165590105395275053882130615197114240503872988900771344659916139928600815814512471078868148052295579112746911290800615049401074240408451046497405644142529903972498248893915469900966903856211428973361748509711443814284538443850574049087727921060337975572492757670693017298054268522921668472951421521305362354219467077189118762337109889272306132431573749009542107819175028788271252875782619682962556114489415714530635310161966082400353996491368379151573174463722752867038038704946323706083878399220077693396902537289858497157344781364772894431219452843503150870225651454041723675118861451015113732106269538541039115260539034260180448359411298709192829507124534780237710890026882998143034978728019318432791498878390884741227526924520048627407846310303132028067948637609520560815405498104150220192696647299340362258379902573524364075493638167568335680430181473816286837348866006109655930964755091027487154468784362171661772303477540213168526916302110599670285258054703771895268345693684138352046787524115479507356788127071573052083648513601607528671687159738174174157393350690984992660150250846604061127618170758757417610323843182033582902084648933725729607737047595993848939276343258472225725525977788604454135857628048693349295121436917453295201776208449103596759134827304413055810825319041623746478728372179312475161223746766645755867297097834807296425442836919093302518756045661886182064243839370364949825924606732988868378883937052436369244770825456163362409912189205700786533057541439143596966297309635945529952523103012620806593370361661008866638368357361320545375427998905109708419361152304070672429916667869912591635140023886246873428817315008830517837892484711757275854829849756186802522889266867382364147904737811615123887526384612866953489407251166061177936781843600391598846655192222601074098847787776336386132026717292323580178098726486194775013811103750705899066018713228567265039210289922491437524463291867611275507495612635815964524843945640683704810813945685475688690710980253216949045576849900513526587069827268825211366734688265489588431215310183025664925289988802625986033652645473685052402159729768807317014014580476144728402640737675728871578333395411956925292006406352690632750433440715544305646278724682570088502452262950963177837415781429363444956247365768540861582606781661841632966829180508220447219562856510736265766027249744911282350362038716153035951283260512508580887284273570730787767742491274082858564821678563693261565571318234175765065261031215334832948010207062703763398274043046214874157583476659413098187963761409023879007026629127542340573399592217051675410686179903293030410956654016491955532062524027712974150776575104068856139398390640188844044510737826031526962097664347989207487038020454432626034603078171067944375838006130468882648643852825525628084428814988044162113155968530210698935549208983291125360509350480724702382381869132905601146417707438012025421495046315421801007108071664924297626337010816009336522574016260924912931494535425755740166587770534180674821159125614365446851951814154501390650584643254416703677417460524744740267952454758325066317908246401533714314080449515148823402572528791092856966492679879083351272569618943688397014808344170442533695396448340504153384851819688615146641994546528002806649536800038034754140200925086467143592641143633857979089072494406325484835471742618119527015647716901860979389881429059852892231274336240071236705439313811112482982677612875956997964233887813913245004631117053622702111967621362217728364300847220189274747641778085530638566491947041091058119684884668873895690499124433220262973953684715580093357009486350820097598096086308824840816166472037039842116233201826530994333983743830656183715997931416548746751049759624058327284011176016102066966627934010365308184369209530442017463716457222765652024704990093911441043152291878930307065551870676741484480630198720409805298783919765948498806736387508795133507262535170164437249108906416654617745909179072559508631495658677787095140035676437992752735501949703035024876379925437339544887178675921633987365897546467339807096218963911612439999021536633304101409601079017894979965803733747562762070616617524176108029836875643285077132613757210848213185585777764206313587164083948615481583576898932530958518451923527410780640782509649297269727705644092824412303704929799299981931870365993101997504560497512305766672524359247924379603544549282355076033011050351898879305540366020110228108820920821469314093340762541415862074962636969536364943326486492767809506889823789961955789748303064732200278713518057290599262486041938668811808496515467689497618377530119801004267119131292731757955863189451720260625537475473361222478883366235939490185988082949478058786657347978776102607362461226507151971022467134702636149196682391577265685108006064558155742989884889305356460214604936706112382343587089270496663058895924227535899147320481332822159500671806692173355725348888832490755756004951178665201304203763025323477765179010033273413944360800661522328410708777252382058940595300524976939855356789180828210452734526570692333895814439060836668275562986021485594538710658240609559438162355658121157937997623487693669166398768728832331981267430910085964256434847632151383467511914696870838099679551563901322518564757161469936301911412338139231935030660461356447526262336070180213697031269402580175964074129068071821522227836088246484912157988344245483629556654948737445340228420014972608256318462785567121501839800763005083642162548632367589516335344830029633337847533212705977278104222925239731555629429509200304901989957909083774257664735344765896305665741989875337139180731997770850065153755222565630158937527306975431217410845665683144142084744455570508134708939984533447587335937295098649180027392652753083134761355743556617453840714404669250526548446883330540356876029432546658496273354438916008215925358758696217747024618569769991361748504940253028854169201891405810233739530800930641448133960908703789192398498992576164057509313369600302289749426587753009216378748864303372341372808647156559241444045141720020888118498587288938675683526205770216212797507333653094692467563068902665915672049646996885135443754701443493462033332303906306804092697703959527845370179530218204795684166604663486752841569453589650981751306903453657747572411504858639940084705435578170937036064684086868168752882867190432689497511006693777751315395211424489544323094658273140069717752130090480617684213276865463996293162907453455343027457264002086323488428844318539829637900089899602713388727632519410686244388379907302388026961143099428423442853981766164113382959393903391483045421356501826890940964565003418127633397784451245580549817774190008255062879245160221458322881222170471069798625652406981782776337396937047322718943458276286829937187576653806440287171683040284652103582590839566356994157523542792474876655658851955380129837953825591710415659187606035484500646753828549319039363042870734834290586243183012587759767238031164586445031762743160361909682814306024263249963276282127844487754992663904941799494782780615907223051828569294494055841242253503699515664365681679046024987352537343791632049698009276078104090302654802797168842109588781110727243149541631778811740948481780585297448472931239606104282696055329648899466290783469209401003919894487537467751770040512385512638781179079310379067359852158072682621269245138411324615825487863031302537310408624267770417247646989595454913871743429219577183935307446966601035872500073458967430221024026994825487762690253725557456827428166885168790861018965396411262549358581457538950884809160626856093943397883878517040457280266076022569777320274727183715955840724067837118377690382448520688643389406928072195100633417118164465990382875946245676092359977496781992367749203978100223618758223227324590823338470788504481762426919300029826176015030440279167210964468653456002677438254048852541496560803117425521869015758194765048759860678810907396123612854455200182083916580399554173395907283289036226211131623443763519018194347298837016798663143208849942168088040858387116374835025273652093716256340389757599798377115195347340493010852386450974064827760430827328030905662029584958206472018262045294443454951330466705661634284573724346635759882771076568360381638516556219631783725976564753627617119960792121798251961873555441207686390279778117077731961228016967648559686536206593158095099472077784762236509318730198433450636533079812129507203755106893035265687422516750287540341233115147955852418460508444321655097006436299954210059749213528399915930851138169310654537728299961538566595885530342638506266529985607825262725817985536634342892807020475967653002033077420868723707522212969083510708531040020483811223194458732140765075357635896439678087010713229715966092871527644249233942303966184714464138357686277145856449262689154402709656439361523235486973219619760021804291915514128469842491710166979017806588649547325724840284302546878701084425211377880108695444977944138102820402983814341149737037657220229918985807476881143344003159451646875013820306420163539549561076070470390925356273934505229767890539229951029643847025380222329218476473507416175125418377393034719653507325442174612225785181506618433988489129590570622614629131034627517178300321530028706158241536584018379601524073010513505236420684620909207141723143812636905006813142902081347575520930229077454991469932643206141726654429062110824593060998938367125949311455532091527208940485221461751096674307765542749976462282645856167297050764592021221425666260115231351375880173594193049137130633763757518295706343200389737237394575041893183852316249126806685162925999539505184241322200966031941049585786607806450577732199026233791602156606026479780492666509188297687327143229634862513400149744686544457007160604768942208284357343104053646395715493901875782462965951612537766132504113597838103144165458451986084535654909822384346713632319727569082998030059132022843664994952017729271635450727118126750629778849542557473809871979116802524976565869806540237699653759052100181063403086282453034523783091012286360245247490831834902878567422444130050777317603269205043365501856311600803023595035645313974209232462164713092399222800093503243141220927261623244844137870401525965524542059082073266742650669982891619616876511266412633465964220173553745315052150774602633110115048274195939406319347138305270271303272109540404917480962584274838074862996548586188032543027141846156399651829982574254420678637019780586538621328654805733289810537441397430439070369851329949028988560551794595543213059511269709764632472973144823820402826734580333948003191788121788352527597908085292188564711600426991994096860590638508117702242625938157157268150099190445615875475159008584594372490425418501156662069626059034938966732620951162497307073208141810760168060230487820727880031548556785570871411767341413187082504382889479153211686854670479043096906951047927716433233465407592632057796646654454245022537685412667119681270280118179854145559460378054137293566632655378449938129348008026332460546009240214979275296993648390539707123881957807783170552500120995874055982245225891334972434315468435673885343246509647458259393220954337490422240641129692897766286088340498734706910811454057300275397307182956884686173793106419469503034844250700013804619041311440265358880447438531979777834059901764073398424053073270265955156731274522151642111149759463515472538190987683120273388087922349547514940774091965599558763457637334772995176294863369490857078998255300738803183674379636815977345200911133999725890303305229890783554460788638402047794394643353753872204232527974588847822894408139976435469088151386698693981126145835713189550613359208917817028106666360115113155142986387346827110999556029455532393790973299786685179355284267101690805467749747174134270687492416004845778989564780834027517547375741517306653903156454863272417698338069923938164698017561872116221969228448679843091147802931101514607062394772055130232064106108722320905948557700442593109756883685330360037285539971794618755280988054069357274790447757487155109474501134025339967755380366873092326263564052567842996149625845123567842641211807341967522615950879969460914778097411649333867717146795035821823561584211683114629653406648343934645286013858392602494224604974670952276776779010694977224831162570666924002215410324928803660577932820250912592276215550383491081736180549388010785513080992699796879783452529337493815784870774974409443357727730079812550748808502648278202424563098619665538409042413442150708206706977786748805267390677832732169489735230010553977591862093027277251808899108367436541766914848667614229238483483534272998415976914537872189373772859756072534535369965197851856719631915606680788359761798752697032385098912018185547618214555203683536902878528560193641908028209309311785280131986475764781001488488611036347411701113955878862724460559537555010148768371582989239350029067849403392806914670782163834695936315450298831680833912437624598968035957767134304375706450231363303808359818246224647096036908874128250343447062163552945774695926582390664696225996426645406482667946285868068576857423561100743250611071583376475848327204609829808743145233538479652219634910073252876315650537618659419303024693196302833016619645381746609152017396760671039720750614885164575085611461427403013764132919754690991243025764097242149268080321532972691316781969697655476564116653669644537903287700076707740281500556506847619112257494762014794851782726914303247330191593588857936209565326589058720836175704578266110102572948705797114979709685818396206972396436227933962397016453230851975160421113567905181492763034680949489984061792141281642379329663648461791806365432957735143318651274064950165746162440355127490562566940889220950710344368625661146298589890614850904903835397184974917727706322361750561838236900655033284506040971769894523108140705451626488016158115571243970337023680821285216508892493673382226585049088841894704932746019371199417183471763228385039465636486805040197095419048471213392778690509200507784581544106064457241021176743516955098828807253401894366978442572578296474492334680234696141116170373760052062434677745036647447436945908558457388898642715800455495078554791485315700151463083240521380320791175338776245565505461188633944370329528168886524380216740475700560876638109725889239088357284185082469445259720459881469555311641630824046638774479430474187146491678757572247086273529222007188397920015380292035238476004516303321531776922437173674425842688150941625696944449001127162887209258479480088253990547470138358649232598714706816888327895240160793478221616165152494550240452298957195200244795292936895083140838396235477648696271388684575408837410166676843961619127611953291886924647347106608070257428032926104857222236760185399199611529969819744145555810245882462296645484194339424676412527109355337198970494346521188133809033673768381020198139738357194213330907059202596438899610267507089250581089742852844009006014879423346106024898048612478757681758608947201734562000036681248739875574551341915320864168483792746332324304856572267637624601664946232720497458858282633898827848388646766487895742191127042866761462745766268079398352959932406148534331310581660662771722978080105712253169646824678290859126393815843730085809855095726184161802571347653267361719661897292113868184824053921923861297489200738755528481136923918405461385135986133689270503394851594778759187587322250862385801255093955174307859988267196740370307731758174144404900764551263576668864497055693245789434994837956183416375445504404633786436481884329372129054610689328428948767444334069961149494774534004391549014394823955903229635312318703223816895092385439349926190492430535469455743606081249732727154440007870797813783271975507163978269516536014826799909629617821349486838243284848368682677610252137504751181458300346674706238627933188255928907132537130519379033775360393658802027012647586719915298152248156091384624867389752776545350110857510254275440198414572952113988637515181635155195140946379181905531258619089902420628532590794631439435518389887432458479571456668546923862735275522466187573268904369201543610842063967848813900742485283618765079628431555877380513928245773364644184941637824916730070625961940282509099013557916524274365807361197673983954223350029646327347812217385451240113636976946891257033527511969779192124584173642149662546353804034865508461935162355172094996308425994991077424179704303113452861884887655339020647570169511991458626450757710496611869775037797464412291757308610152785771726162578368836743067310505506067100366474312882181908974621369717339315209639949934928867526105320129064368409803037378626042215141056347629844832751202090587092930693036126137618135446281079598014361610527562641486569435798040736751867821836146974677213525064523804956259383742760486549319373140736521060039343085284477120354255310358173736647973366515967671093907345002165155669904844991147114474781901569736594019683262935291114346514826887919905287651995678181534663417138847166527974733428104471037062181369600283480513241959410909005225688264991013990735374052087759569414013069698109139352985056656240640140383062776596293207685453448601346389223783491563100769036424528262815507301634786776324890815449389957722455198957528848767521697532024660295861453915567111581212309345494389318454554531074461254274760140293278544812043377027312598498139696662860003408093769182327321497473648034618987943808910463150297596456117666517429611036096879739709181311999027764731773334771049659707511764355019921577166956565005447877919148652434458708660390046801276653592170640930841160807165902064720764637008436195690962394239897324482032907808673774290170120313261868203138726777752488592981500858542858785699368621155734199143381256629517377945482221397818184011653294545325257733450549920473117213523123578330149316121308820877493391591021608937375060398177522109986125998186308572008606985711548175195832485528638405345345179601232204158987717203861166859563149671244082963979868690252743458332707684750553994168796024501272077812685845408968923308842331823777534972795291169059712552095791490848810206479898651406510653410373857690101970719923383081280770273095422990661607451390889558389962864921974000314497026564848729136407314723698766220687914402280951974756658367592922112846576996928965487195441175114112264905729936206085120583809613453723439080830626720466844042601373472887759299776189886983411277383978941754915486962912405827521476601956423944455069284999784921642446193499933878196115634227801263391999206536273676092590628826994564603298478643888167434392005665658782509913806207913530982488098894752375027238785405462707343685225959212188560751914471492333126855542040335275128516927519516293258156545059088065109974447513706521466536443316626430503254064994531155834498754986158602870106887262330284784770096975156415628672223838175828448726982814841583637693040936950818992758083594508720759331963828810587244920896399797848246867550254303027904779755963386145328621316047438667116397910334163320139260702504091618174192510745956561215747685534035528001879573650821790407480447835035442732103636732680920417333833158382258026654398769867314997085349221209420890711946749454601350558203686214261766719755366849049304477467558949572707739651561893099587751212335045433307367079612597945349571383304991684587357638119579523158303426796665661415110855683781997168063839035677226565093996089314586914980914028007970184861469090444910423846974498162609007874383459780484018028854903862354184620281565826602787878504926847987765290020740663294184134918667215522972710332495205716661244890774405687300206585758194593766316917045326924212033196092455001472937479638640098478593426241414645647585302698695315404873165011474462743479158772313375367451895572496622386152142099984658617028780213730524417011441773844031948072793255464306896634218121879676812094138840403474209579535028374953492142574797233724475313797067364388304266608239836531026812405238712143411205073026327092340891517573768952378954463671429003991186489042705785798934239634232207923275778791057573158357774421956566862180377306135747299701658201631700044520293827131238892882327398904239063042224732909845398544255504324180006234538599833616174215790667862890575149258143045978057229385703969613559410783842411223002488760316039994717984232495403867837365169783687317956347807779826367582314571565176547808800953836294994871626767602459258249992337812660086497372055753675706111768279289665504134639500504324355116044740700699629954446209118715640377078666347285403748544903821719808035311716802050592363117757832693688966131296698191423304860015504839756055700171880462281685575305108880234050701597229109203355162670856844433638761953858489600953086593131214733237581019530984448206702425122892054926836778305573628742252039315387924425800374254802973996850766735141087228575256743164596737692079195822900900465719769410963791685606558756517133911299698264282714140588159036323514041920652653458183934409774854440045471262309257331602999636011502655873985674808453028433541650407053911700686367985894435045709106346826661627091715229676353766245517723005013285417114886949625178343564875691459488510709125121644796517601114872707738563302678708113016861907144886318346941582677851115469733016447890926309308833116333223290397410234501260753314027486405066589961940412867070461304830709178496197589211852363941619106118578917329162991243363066543692157374219623521459522314166003810901543050136764837773716787778771148971990301128791473662217925577055691214541464648501285134074687306671965122968178017537616779659673308440833406080284267654957580083516719560877137902231455248198985463196425531052902835769638652115703449640396804277019735375180822291182099985667862127777066776794112221618926337324060596761016285304588718601496822453082288339081663059006106574377737908344611368584921590242015005839665268790995657033074072160338853200620466474659765820594594709874293454429632305831360234729652396885011847370325964366971548953851485056201480625858176664686586373318458033863618118669067874257670434659510184781714326240084638608722498821587217275478206181194344039705500452145360859385967789589264803418644562699097490528176255893749394282165317631846994605149622978794998394817128063396011102182228728101435841126313144707239610127669103934030381184373927303203488696352363628686058791912556119577164997228889066541632346540863997922796265721370411448825755661008177739920085780277920773082636280148237103649806407111399091284296551120714683937435057384945415354606723481823240593783357808601979786483126376740449291824867698287632900236236779715160200737066100937917586830743946044447632518248291901059094457353587319141357515672876945218078785825367712864348663072816372493670684051344896675997185121652740554496713817260228421355269591167805919231099396058524060901877999053960438691763036791694466110861764817519472366069247688462308796457622336711982044760954709699063672009561470169197903349486971009318476755414758787619644443471224883809276278846819705031836938179940819516311324034149745709172501667334618269221139879573818610243845163736096891691035591932600186398388494922165178985251511951220719093235409847982970531203710068480913679618294994930334009272179116957026725178037661986484085269980815201263532638473338382466322346655203784644218515344693204878698364066737533924779588989343010342940778130055158455914879880992540703196031200898245671974777302124426948837277773173008027214997809546629856666316714692063902692686564988922895881763882115720924503991546327870517925959710218813752429730716170389318895632993734463627833616377757338005156551622598101911460217939161907105763924293860396945910089368568461179192814487658327165960305338828433921462671191872195998588750900346225775514048958004463832159475947283660995669472109000922981539854720642717653225528088082643225111987349928191934568512323086479371216072455214686863869900606715004310231637286378759697103548960727753140303905351970757142508144106438552917260311342874719768795429639684545850448972011274941148195504288151521926130757241804219674888846400526795166928264074665981147505731628133195487405269764759732312021142476600010631133227712645837323449573712439622668215382412935950020446387855558677521976801471510081224554087214298125735835189254527307679020573305106622281485223315219394752611988834511506428955273581550241824366539247211503533308764108554326014103170091538455217428561510290398579057923584063746058025227550622887814979072046013201543906143623966317676161925915425997749211990355776629945469115748773847315394936699568842436983073736621542687725067522008186578286904119880187817661580036153503067125898613742122517904570335753287944443583126185735960161415158743534490546332387429326904519940714226141912929582959693775036879490090650491364118983194944561723046730062628268619216240237721745945754731344713264136429472168257166883604376859021389611639318283551806180626060707712160173470046318623705467371445521080382955829093092190159887450391046546738900499069636237395237969409432811475953472579215786250580576765748909250255700252006656456021266353941941343805683984724976836314906623576986996612282479438703304135426998459954175530976674379005831642497941501563174823787468648411609374971672425216078600958186665793286476583545332149837477552792791741758415322564404988411266656471092936801647031633174037015903806689837471989895528802784770516893605344653630116346943343561354179544010444281246739134393728554514747132571422446315753436446355370857716951201497520523834216177840605408571960277905426136376647033597765349683740736451847435283557446275412823522238434824271030008254543651139885648026475980645353652502466865089829772372846132449843673303322494963426640432703310935511469054576819244592299868067337526818173061934565872738604367871416220271587653224703448544452170192007807032530264659738169000518756463512442445054406303217304253264318446036290456005915028967558794313152272270992362747489229743085626516910532349839971197847826752571295548454359109247533192574637383684597657851415341870038775092512819223696372527040195319320827646365572867622085604044119253863491099673927047541007990983738600260486176666486401746046414229195491118597598993182616816525536519839427654171914877669380242087246958631152257147538525389021239840472772739122031301482332169708656393725055067072076280198340515558200401013425482685768432689201978210219609172647458931058134015918119877776979040467899953991499528219539068384300656754165932645834483414466266577561269285898176866131092345558866029167569598967703524051726254430043968646433388916427849660584790919327852895936479529467332267166519029056870841634919233139127428934066419473786403273139786881737009657085373190085666426945217054985924075958159818987072488840850722292200810950752078420069928749998638772332501567983649387809818818539059674449889921435534863119985717146919209720902917331265643459101978566640463139232990994844094738546062844772465101360142993539432862763570610005792018338708321760421539315203926003716955494332024059507637847255847465519715155308626919523715264475238814344911148743518668465087893124638055196420209860438737356037813320555190113428798402872331199990373156508418143047787985448982011351775180967863747261456406270622753907198747210385486612461320198495018922098730425746731228894376876689098645642696134478281387666545900264317230703355109090870742948769599385327278067649606244135165574710329134191168653085855738428486984263530334351748065271418910779189881819018986077512684529693835591236877660818278367767545227609207681141004420900728236602639744884094112374265144747039403869477424261521404708117505340136179163220241584175368614052665053123285777062358960995626398602642413348886728173473879584972677807825697571703892477590076257568825231106553703607320675010396272985711257964075421829539379063742579764864074305028104215239456184023620882185228205757121947753263965866346739183810595456894057862279584599679936739866500844453775047401982668413286457724245061103105528972773646791850290200964451735710814014567714983281048074864986907540667297249219003885304238500998408688351466936534082568423328829993416663325234141069393828149686887653048766553807051551407788903263480692257545704653391559597823549900545078734648564307593316312952894190304222989825521289424383190327741477218816346487244239444138576343484178445408294773092975959247885376579839721023657591423367682611839819222757070591869902996591239990118766615884018020849260218573322076344167434498430109051399923043928969239080209215983393014599554877685391187776301429493646440874928795571354067829132522840040673288752816082454672275357075498722314846842024442919065703131420462340717434658749030551852112992516403913973780587439864406509861974987138181102767326561451017812537277121342837857582896778769867891066252848787418139413156802618490220889963325213174597765324159350413505751380440751883285585698528832095320564285741867608796312972382176791589126712251722227033886206990350613008171617022850576461555659031435512952590670824420719526194641418394649482638371920120185491737260149748814862214268720194807983824135577219062829290354394033522586388108837718610581088752012002023874389543017356891799773131376101644052769503997282083634749680030679013263932197240346871399387217713815566707069416026591916319912995991596726097968487052542442094800819374897549639079005535571148428283462401022245981927762594100924575122101786979518606745526525696765907917715880211933307980061509629479037335349622529031678923980365124486348669241731980673467672830465450964577381706830545894430579048942624455732884091658579472284077431913784081508257769556401988611356841821147823522063553675189007469689787660901352102984816484025885254478721414189381739556796211314516967720624333046836398583624066280079358175619826013402845076174522657914978122006105335495111001424380162410496430210063550971332707731359127569842845246374629885259668157857011258645935515531397751666592070776337200851503623097373265958410738546238655769209917633710325734288046167494802040060390970673334078014816607711639867212907082659373736520134160031159124341057748788677363187230596174608043497104402201237219985701448010613740433678368798286740613308807245898892887022961152873368341056681607719916174369027479429514441840785817307174718616861250607497007689666188712673303889746964864819596797698501214677372259016245900000514684355608819774192297964036018750497101220280591329297815616911408046821345006132698919577135323633565827501218167538450318467044860610988298192235925152936251472149386901029619238558254076305979543596961794857099098515760896486652182843507521038080766115646159705692740609449729125545801982356848920495223035723296397346703328230799298955214890782315930521941439834757561634301281950466683087872429435860279999751871068009607215398440154845959005369172786128207647988137763517607425608524439365274802493391910836969359263429411152004436480337616835337092996904121777177123165030336173149171579223928145562779115072403258621303571294529433180555458531818534915331474129939143466242052066825044962152040417120585267023305851678616796225052958961110488160384038372410220072746357081210828576645537912321300240041569521732517533977196525620272876096154570844989760618491511638548712255257494224791837498870033499823282221800693624058932461270215692176311221175039339385482832804428631645726888950680884641119872246523644515809221476173696092630884711635013813240472309475253115308784332796792752517843851187790607115971507442938037855100137656459701341106474798450468067710410035162598283959430244321127160510964728649682013491214729330866969091138653088351666922212403550120630267038241790858046443243254853972725925278592471777219125654780424530244914345250664484712582254590619976675022865476670734271924781449433232402103986104451207540455366539794871542092304746598022545763405225687295065344875258848916227805087883660285876783102272683778107989880999832559617153110179735489065655007813309248559843537877932096751497724067255679535216088597392647542494733045631087098463643695256122670768454722320870968821707012090284496841553983232521815426617012580153469295479172346724885668962494508979220521239295223135307253300635130701161040218463581320294883972526017685520135468567951841236413380847631480803857592713406315865810833251148611290141428783284243350416777367437228397064348711095905804542393801272987683183876304427540370807009849729262477956060597178501808036031410996655338902432695211466583931997917105685866993779779458607407303058855845420414631674320120407549209149580434503647330822960402637851060756370579865088448618263588980847518361665750230311129196132056056462359396249401503387020402544122046599198915852674258600598073632558271499757701983972244912257363445980029207177029232217229739696808465977640697168039373091769498926263847582229426264616380644444640139013449407756867285866340720643763853215571825576743820789041458571853462594795962378904625422566197979319981178746832812771076416795477010662595891421731729766902500227991320698859607479554477726765800475636971170121726165060528920577337170023495028760313017567629441543935727849266695050430044917094284312478688522017895358592013553422691244224123317220796944635171712074069529095418765746230042318743538737935511763462956245094031948621977495534761502177289499493323117418910611416471121795781296457356493833382163711354113710713814929850000476881439948333193483504584362816352638263074378446943846377217916344783217380794915515105528849762575495476110386235754307440148884486840174076455515791983338496269569030634379229222368516372750990010596081933025472369311466768076083431896692178289787167833670657462172412923213995564045137822860446683557098516273442954760617085434153388408385165417236808118927006543409244385055930025403596101394994334785523701671278083992867272790544720119348777201642356736525623771876800141477160514660417907525176327318099787868166027805649300556820649288662150487901858719616675285230629775594064983942105864418681950400076489385568455314654147024903908830069995658583274817711138268105780819759790411530018583239326560790485786916065024425245630807333308159208695615898004213562720871849586535244227123502757888001955672607483913923992499320817650319521720060381053293052545094949982459627762112778990585374848577829342168744935095672783949912987955308468049600011508689063438679174594350080737592368465539916318229278551320597174086602373189563015390036225978222809310964788988574652044843514051927133353940267456831346392305731117936245174335261717318884869127306933713924583321147431810358019972800726825988766575728495729633970377048752703959988502142929621745130134854784318326352309969267306472317273083503803722697627265427806687301388646598490820505681022364335704140073998806588326197038342247867781395231995629711911702571609875466094804168907218598773313214104320877702758281761161438347407828460490592359088631623239894646338008890420740856038150048418605278366436976412145842379512369995211889373290244432534515792538026820496157997940432501033758034018978042094730928942603675086305025228674826844009022516860216798141683000910595041619497597094004466410446077498295779701453852725624017527910239038822061645977704307831797021954727949325580016824652704793113147431537847034463704346761233099448185000239156443786285506643267255209436829087496422544536747486405722344601395207107809268229189115388599631579998674634432732149614060050781108883620240818703234320393762708161660363232719712818134821727577892917317293792102626311605531438475925624821216847163268197586548519686735826268445192199208754498400937182548708077081808506242184577894262083038491831803034821924794621863769402038626022464643339747312735888960464772755692152010831935673548991840197695236331131742950449436875845805577443660553827215266168715234580125715254374367525672879241925880262903054931659646939045635149168770033040211235525864650968843377363696604484804890378904041848174517725352261050296874969215002380231547323303680502680234753895598847092997681425884408710798186701783493107418642925886766460899477323658645843328472769269735125824032510857829296938387166862663543105934901600878926706394582655658366550379325047823406370171034990446927736555035238764897226709809711651297598170147954575184388271703316206814701092952984477766314873527069239057649599791759142542319283052844103375241330445410047453115210430485866970639258910989005933294009237212812215281222231926156692042884502559275221913589519819232431799049011074522343339208449843739834855852941182367012566590860087330207986231021783188527816161138500603971433105828447296327883713846503352903271506662859325873648198003599858103394632544798980152809008056151915795467442900228691934057117020739704475388049263899532282299968791814547335680187038832713162753979651420250725511244228083608515820203282722225153679177487329111512741538391323327947538956004998229059675073334848436631582999181421722507384548936838771558655304793180100911005388978503622884158326590533273966994237309066917502194973787068163683063184999381670021559691373285686276705863852746770201318626087006364163990449143924188693163929139990267611335392720504866989483351903627071590129093727382972480494169722043889407238509747412128578141625778342058388402988931427734196746209143908137071580213891306113205139922157460482860122240921170807802445905169585413439517778734862429748605388994437716563932547111812809202889569951768244363166078516730347748555951320884049711680974909883423860846739669201735680317972922840650300097916489301587822798077125019728026890184906144931993863339428741778260656727503251758072845662517031365970311290888816378085626949549097784348554855220290016119687779279768425960768568166262717188707062767854757105904358795759709752885618715784691975442041057515186993723991737104656993081254228050226629269543165931390015229492732223250900134651042159181003814275793216153174380397870268682230804269150482966176933081408464185032014889308861875339716400140277820375520609551532021866757818162646846403107210955981121844197140975501246674645096284766594486935595868165581879194860163759282448139451653012121051725407509900683133989082020006618097509474195881422324661459011104083367140954370982281442475082901580314668507087346657607072820885790886184687250859265920653156638285638626166860444077787238459541888518320750738378398439040407222976696448580767144770614004574958788587238803848583471725651754237374571401722357476397007021589737488414018929711945062465505684919196152641217099180409424462843539679937679868922524008875336840110004860030068721512735918923880938629004257285289535598770671824656411800560057676416369222860659625182226935773241807492954309596389947608112007410974384571748046853131311075347251800998048691055286778135819498760070943381456211666190161437862069858871685528440527407209042269871142745784209430180144792035598231792884547026777574473289044430806568470735853119191671455028354910463956107517771305118579393481494882368904982902195517491807055300475037808056928018520774920598277410903704642467372610622633222135899099651452136140280088777244013293509237420228135611400773083655035764845008058386623344440425517661176384380342989408145933750690185654142979068231602862765307918207691961429252573290666985662924240977661164128361120789261646323602581630674126544645894493964186695340426562334671182086947264474230898307938249397561259137858852495724309211514060942628787124059102939623454645946402250117951375611958591897891640269688143702606059220797794636869654232248109999148435058642040649524025668829640435612498137023417726925708350995289817213527073355790597390200189105189751467280557890945520690169366690013142572186460327403815232553117872789698760171568235886968228094402770731620416969760910985315415753848955330400975435245003879801346093733287537455650393652123132849133240846762070352025731780799329334500775054937140252627165362558855864921204151033357404925118230706763759231279972261359201687927670633155124104094453537898750378421735969610997729216018966442874937937327370037293971468496951898629087024005628505334056528649655308395892303802458226105979764580662690633154473727257016351675280223816418283967678337801618964073647035869922129452302723953055757266604886778973837271327054364418872711800489050662328585105039260769413284534927213612680564862468294826674208533877894676733309152182775482279950976472665125270143402334587475276219143969272980619469684781298954473415382534645981413886348110634981200889633402528708317008022429474478256575843188440346721457106840472104672464541880213115583837030454036440700804534083365214308119591039542132770243637701618737478525333209501565250084403788403690025373149923241772175620426564012344833409841610544651641081583361470604630606666607950564618973088788132020209719444494912379054081177996503628761063415325208988485382570733101456429335881128963597422367607422965435907340179459276849362348124384082878293831144515566883396402895732639414546974897765779667326644475333200822595451604505872987491366101965122143519613954290560701487921427762407893742946920218354666915483075215338900200008442420485847238017023449404932418392780432052571261750165051990274553201027859561348619733808744587930191173316686507476422578923281887795921712208847948528997919711164878419876175339231157277912608690593406814677261282837598058332069244488503014819725433403442043287144077227735791935867061605760659397495655852524303060686298327251286671723960770890134617762983429147870596643025643124874313141422809163943720111938082701892535079431871093826007158252500206021887640181669148952001867595764348206426149633340038351214280316407977900619779528974848675298408100237272679791133557552666095862970304763806599409646155780382719559402567363963203322723874805269278585700306258388958540045541945194272291330843364880103033540968033096655839523317930922987633904639666398208712549260385613137866077176614298252284417980679039432738601864167911135464147098583241705613506473251869784484022416585403705366730352270732789228556200533021894557938935026772211604988696839710612990830151849912339364521001338378013125113278379421728852042454183828550983754437842506081263312264801833075601942613107408238623280802712155749834090186437110104901772083725348422713376219687309385596499046881445150062907959962377636809263390324511507477801114783349173570066093835578541404866857487488965187126563886914330571632825294634062592857821187313554763485859911109985580738673596955678722740009213681228562762838348359655120543233449566536811882357386945346417072489652988455104260261778987027362537785351527635189647691956173228057763895347848281970110464506272178750996603108793252050201682181298128715674530078984825197469210007582055572750857311892580811590674951685933301067359836145452803283060687688422209153816069198285358378902349376593923809423352900951370278722398805934926863312231871236455798831207907968586603493193433496812946738776242743498861102174241537131391450844876238844706755825085439040355554241412951350191559791315582372280749456448676300637629335136250659014662533098990728729623639346080719801454720813918396938833766570335104880609259343792771641445078168282793571609012123849334557252120454080231941179639608295312675836511967474074211663604150901117398243233291566356950622752163698316590257665576422918790979768528472528944767534060488826573221262061439667102537616403428517562973614253956041984893075050391714201321343969531752601362645023587639040699604456462302391907206788549028575257351245973415975877754447485488136366018007223760408433899084002699588595965398761332581840687964743845964864840410689083805822194404147216360280246036160149343121852767284643623208503948800186528528345796015550414635431224122616467485394419086441482697682928612669162550478883634043990894405023241491346767376785814615142963259488766681410510240073217227149350993903523977394562410903547166666320020296704123312515776476837187767186195689924973541842633425697396748780085909512322370989828322459537315739926848167773932136670586031312723512104607865652854924874738462777773829907368742520575976769456768583902464478963659422644132187454173978697098613645185169917800089579151017779593155958590606395184492593630707416038295544401339883304079855807189064713588225420129898516614274027266820890208553327882181018648388526899402181829180447987389719906638897857188983536581747446482308750173212855246398189672504381145738611704865152534530743030703298849365418981617328495691806929126778951523732609297924053911836558569457116161282861855022633338888193626920563663587659980287813028005242161940782121665778613501242695555578463266811057123072976630296400602054268185115387201513942492584431697814244723715102435599113439618403079786252085885093141979272654222392122157088729514360743840953474263919919874795401600704045213085991676419599304288525656443318005607159258974087584099601243998346473161802545853293383637025635950489497911220281786285320617984886038704506238550418373255395128490008477362992059814047904451258011152595100925443478082447093788240820994855586820703080628469516995831269557675145072626032901624894530504064221138147361724596855573034016132754056034384531341200970984736245871258974319292833673503491363274760703610178499910329152990169704691356031327925001352857034977057460302770503147195016316584920311313121850920939941102630175856742455098898706766875902902911043312392538740562424592126448791185442239872873398746355601800038472819929522603755799877819735552997531899840253828142953215720603483127238918241872545620590334207110336710681852603969632751019873157162579568364859389636732324790556878244740332910056108562481193324022088778989500572913507931770729683044329037130942047821981649624331402732050837296493349177767292860784644819188798713630459403976825524873255944967357388443049814899726565710518952527145361350530810963324504941734527974331389783847492402939454383724195203839844650894340778185827761571371997386867496988530911991224278942199858670601982782627983221744434939815697795751860780161408955298972363071358558299265545422992514888604709508981662140296397805507444741892824337174806406749223289755556331188626607884070761712945946499298074442266628263532239180290862615451751075890349968495582788931222110145239977076834014432457206909331054714192491406557541050204962472597706974661359707838391075861427686181267042432410700933501409346173111887119538727720625238853595061246899497941948158169250962290189041398239673425746688307868304017296562629942225028669314232393722976501244871188901367971934968295032935956258543287585898514106715890271109069224478615166771853352029664536073654676398786873299137069541062182540526530776918449908681688275833869876241750146453374323238296942729157430389410229280742899153221650410950716076789870364000952979157150744017680289804676695356501532829719502639517371671015557437235719685307087882222081375224398553607914231025774358276348293731419484746786414891779541714833886931567181427585940373991850552132249110857937604732265764574478100495487488862781266728837868065737527732655164278288446968091891777868958418527458569789096623462317035600467721269541474280985778463892614338643280101927062822466818935879959844432446400035955643428690353702872931755360024119568098756717673129583828003952988884730029289959105729974362923901036919106694771900256082290701343687599355301767609855979259318759524534235258514463507623219653016150032845481312410210585465045181296096732854408476682775550281632889207563040064241169514893219461815855333121276136233950709861884045118730615235626344707123004337894736339961468656239867366767157990795220910438828000429830572016253888731261452211033449500990319841796663653993208971918375093362205056654255977097772724446357779510637147728852019245815350235810727698815756109424751439288688294983926265313951753820801639092085186252646901230702283937634298383618007705830074753254193417682523627866901428120266284557257934756104977795397833116998915144515373518624978260698996992211391998002300097448961245014054445408921125468893937546113600309413963948054601000674437247650399139586320740382361926633138922776885354800814376788507411431986114010197658709651907717277985628719371332674807264565080367653796620669892249713169152251572329856592902287004244056952033984966052582899096659303638573775592530432361193464824189550415137671727399292085157934750393681969162059020831828300962892704165771931814209215674203829803387703374774907073268271161835490826420266616621823158197061951325911207886020282487176750305512738941741842107326837521783911833668286188172673347055148602551588822081754083849971526084661024466090315588565068566040624940296522055235331808375293803615081586092768575071639917796929149632722455262995785867855929361047294414098019338719124190234543864595330694498416325825377585608527319020275212273514360592883784915844749325518768165266250115123494739436151902742818979368438112406773913700742353775327807432158511588887653764322332766011455958075375678411568682867747491296853122505001807302827693862310675164261573805857228429771264644312742029741014848126057324046661137902071359684032363778914740291854552701857647016874277474956986462849328773772921905476971706995213280957057826229706265344469031861238448222623807869854377615829174225466899955726587398146311509072584392477049859488875386904279189404707052590467854454419068432764248255050237110520638329310737901579410917130546320356448164235542156014911382058611477427189186088594445438525743004528721116161193133643105699454024592003766357262302437300389575438895727867268693637407776748721385378763626901253281898133587255565793915911533627596052762907798944593489208884071906936228988153732934270178361177578282816765752569558630113857240408948410498976334357342302800195486146584551663009285184627991042192036866400238416778765442797303306800864559369304105446023420767830835372938632428185851752611972318929932380520234730828845304802472321680654467938673661050688915315082384115411430412828035431954806595096723217157322684756768087616752421091233663477375444681121586200552776722778737044700235040195246539590845951531275244514437952313972849279470826451678630533822481216720095244862056085773987113644577116032395632552056072977769618882378538961427305181862444878947659541831459213940833379157599822259339386911376610622819500357903443072932796450619788387288488304087863346962678627825257049289177734112557577167420551470814937395972317666708864990876832365347931908165104878623268408630881374596314729829654450127663627196662630228643981214943326397416692700452489503360284186356744008647631038527852858172484809014984111552770951516113867470560650569063218305893699498073650182945854386235497111520559583901875443206307161445446785547828084413811641890455222693666408667632152373845299056633435668543893872302232811354150121989405175311916890979708828898415328308523368509408933988591429239972386168257159668331066594108301792040783811926721265218468272734153119557740303257184463847821776538170993721256658863269001379266888048471445501217141640032804271296359499694709844797106667152178654943461817608294757051198268769613724594150197552246936074839351569431206481458039927991933374030450146787504455065670862733977118848689115129553237739840186799916278615569848967492459958016677199230419012862663776022822955916699524731380977666375136719952169284801804505264058925746983551605720436170479222619901147824357732453706025169531937360578511388006835393724787062348023489778433694137631515032193349525303576621290748023928083250254374263502605932131834822564034192354126667535197104877410943872411762555307348889089837598919619270416548491664468473354959737366407310175891754094955968271126397841245128537815444216591475829236753005050267959441640208608124434384134189265869547258275917096478401732430042907660119747753017537662077066048755063050862031287552865457472662001404910110871488019856016192018273574009538386386259286487806757271075943820128337443193332189405929724419540104812744179108528267947103692438369779872966410588450041925186693286642338814885574603778119594292444534039159711344143696514030888559726803364691996702235437414832779493526442144854463259136970471003479417996668722656697099320555875021436283003542690620173053073441108136420325420939637795733945607313297997138486222045061426091008905388072050614155708999990650459577553846656443220085187277930551645651652188221607318124207250659388316630166041220821112485397160036945270641012282122666021041592581854916820241568625609993740951534000315140161332493148649655938953721122120994602178361692182853105387563587334142153750224744467078575084782287829872879321779904463045174950707660427017898583795328970346999214527358629668158776266492241523785879924927790917433908171748960261074314085293903885032099703699124490361983292037762684100121520262039279511914943273396191733148005820842207936829982628344636724972506525261789330420187139260383026270269026585986922216146512043460014699342786558427550086271457417859886218437279643352071733057267573662022176086466525409261490788114601780109901931451521866257326855889005908204056903160409567041572144383366406897180689167138954585413565390418657898107940895413508784307532751941910184223343660261507829448996885187295834893907982568192290347227271296715607618534865286855437718923388180032304751040817707918661396919728517284438492884953044990080338675991567620630516402783725948164406540254679992568469406070902700313562660495635130463401914621091402332372719486585318704947202888885172742243706074152788634854535267217757530216719098009897296331582417114885588802720592211997629316947456909404342179627361512855551534611602260152396220688969385364067105113211680074917495491953364510055017065866036667564332648179604953135637351512182078566785872905905796677724335271319196258425315083124635456734669917314839286384676226671475621987322342766564565071844976580474027047177620011558439394127258042753068114270818664282649840730505696892961792539145669271403639623901394971968001128066944432264474900161637426819915202293778790503433535539202602927467834094161936022400899909837778576515913901442970044425357124861784978688129922518899388925101317551288794208448004385174304142960613964998641444538903910374284221905711494567090304353264584577098014002100177377609611288580901170591247985875712015311388843450051347114463686535631343848540873853107649706490271858380412306324463898191601482530353172129754237751335855503998264759689616201068970820156972379063086989101861083546794071460271242277245666270269959415433366574245368258697064620722300553543177855161804757564813201800720574971942790085359667035352802210717199072523546262256760940510058390408056128900596819209609986886766766585256437417070718310889751653191756338345593289783900285394534656915906675176797967628752204224214470981405104144110171846518620388438368443495662806854984852802202870684413551688635587353671200391922953006876240878215692489827078294839652845064441402002578711736515302825644464936622980434695729837059643155251462650820702732217546268082267072033413838211073739650404864908115970407945126541167541035177674155765854570081686961497616182808712021735700071549386124743643175609188696544129459108148524000879875168877106264613192616754402564868047346655561456879995670314965135163129339694242492845395377820840417035213730739142176117714312708269058077202192246552583687189354582033058897851870055890988386333942480397684276456402077922262488236938032326406455586209413300686164446988262134743868086682559525292879663052131618979513416097088485623606700549589425657969006187076442593057565298777679767467485342268624099641824008256884542847093797129458745796847804065353220170757041389340467370288992214306748388291609077908825961922617402777931708785409423886191949838194100929145306792103177910071442498944856522602211881673631694463138747304073285154116179357456592772651204901315613564830997016269052201632226529711782932441034487957834977347830499867305698811789015776052228482900951800216681336899183769342473900091869175146483794556492990923634654413999795171263911485511706790441179749711984083514308409484211621930405261066158270163048780051032128679248703481968104558910258602147044830401374823541393800897545129187295903874397392944712343885186209100170692512292757197036920936060910193919677009537988029404145314530549994512011043885125556310272635797558236462826999633922103730180375279319815740500351802319732738229023637968629292138165196306912772596921929612382537558861382725531278846932147174369602546134540031616116599153579696124797317537493992352094750767984548855288294969501434041875318897266851716107020132039714002539630016567045613530886074827187657579902453295624704570961516830305358567804615730988122968893271079647632649777815435450530550219949744211183147562857313378701156542636263065330483402860094154872247950556918247412399551477476812260369583963512506174189501698690794378969335463632867307105055925592936051169882249480817085316521874593324797092703519632912402509909468896117726038367154503801551103684719345909222664654970157382496787980501411255903164963590958760720544662360802837559724054736515234533211839148804734396167871633170702276264112663568745326705721962213828844356495110293163236185061737059196664165973874173573298153374013450817843915251742681715877338110039993354421515797980695191294755471410346073425844898182750253863863040008484606199788622141166539030780025839211227295973560056750451913245283272080208934413199895489721791413586426430773856480233036582726895360200981403335510459894572374948049078902427464348281380396449423270109429534836761611310242762485185550366917424520314997578845688059079710890856090578930575698900478244827506107175568816471784989602803910550267009331272408208082689798483266412462106480588340880082425263447497729100366943936709692549937797853790202752824202027090664478946685253519828746714867715420367332332437042411437512530378147131572897964560958991321263700763193499973267136151219514973744214373255808608541173266753149811669448397737889587848290659555015296819387289709343219326752317128828495060738375294548414307535646330522726366186138349324752346398888182768223113528929023328877951515947743733100896146635017012220673407045014909893348050869520357740966071414480441631430634353255045681764895642331688555868653459084537444879407564021348756681961897494653919919119424058506147971163098539494034168183042753128805824959873977547033825729177495275533670862594761532659384924226794539776459836220588479976048730186248560158772831989056793370136664815882519737331427395987862027580818382066469884046313388757530389357780595524896585937549480359328548627157226696144396767589949573773805186499567852096234074784264685000372499929579405710825635214744510468447017074304513333969444619156745193706925412061722245980010989443526109932190146204935834578845011630031602237193719402054435823686572890504901099263154189421335794961912303564476050144986421578843820914873433037137674240327780496012031681295529821301224886185921151176383039057217888793845091428159157268313252794897570311476966276895196879729240580698528002613071898387176319735299481129045581448731989758876150043796424376379341928136953770551614581240741666164247256902958302761943230330979479326605088410540585540437926220262083480548184976817755067719962728795785279447454027712099533164163446994137486945755681227574028760680945092369926887485758624637266596120803565814805354725038870677830205318786639192818425809930615705253230656005987502753823855661311682527278016539445425600088662324272546584698065457974521163143584702249522867411432134163821612425983987604720762321114659998615275757348505043455264672437122296602525888183636017686353303562340906623043328202552982131764289245088678194401982504621983433608767253444104104106797508836284667589504248297565829592198483132838895914255400853088601873871419341238702807175253289499680657063752046345186880130443200275276236754492084283036607254896137888886912103083120059707546889127606250735855494074441633501286289085531536091883021437983490032788752887406457401354594714608208086503104142552253243982273163765428505777976049585993315525693019654445776979098866218050227400167069260576789535010508864042239637122063087731121387147225410660957605741266010215871234009401972318331706459054729897117437452994572507514527623826557801666166820684690001151885897497374609542520059752661776982068607344377607921492942039985256431521635982007121746310337364498354000048890827709901823917174837361471157710795618910881997761292142535172783980020021028851430187273753578430745650582765962022176802974302484738902667825045312186937715555869475199669792557675184738260690792110886000450365419230570874324323714231495546011368003421723156482196687464261525288747792373312620822609891838483574940631693178327383282862484497454481507897326917687685046370787703772753219577235473716358739695999890771600055880076627221018775328107042980045798493188173406579027909971832281661185394701217256062943874497401142702785968197245414226753427989402263701691006911862647663897270633264041318104657890726344655648374061781005581618833000060330345348134368765177032398345163048429668319610353124768769507397479280798455828505874505907015688575177274317251018326605991225405717605442605526847417152550498752536319918943631316623542306452011164251672797126241256709295459340698272387556581207645127907413752029756237674061978717742373627180283051024972292865095057265625648529356388945672611120156364710226527359506344753902006670010624355624899982649912684398112715237748051460958389124552101283035260785358241844175793087723869205605234415728833049345034203875393845250459987631328640612680796841954638055961821428557245573434022578457880070941412578838536868587969633703568007282968659144760103345404602738552381830727061453336407981341416409798225698991416316470916172835725733477904284758560583314861631436477842915774822492676627971564097823490007070106597815581323915623354628879926781947803068248014353990740293348906083917444031665673712534823195346704642855591431031350651324535712349209069955431412379458593010845635107547983587443793552547036382055713427455728634789964629304695763402531392618737572891807427588813651936704341915856236204986506440346048616780347181929792636672611998209138365737336227805354441007862566401668975651320389755299872604468331855216776798746474829736268729023865984557079783213576704466092969932634974680737133693183379011060839496758607410346410016879341205616448277533768738691256195161239296903889133065427025720748737781840596391457206192498462085145583415900357022263333841794735815026257551805196447945262601979190216421873390911978677034504678176914627470820919522052174662921447396315629404354154179266627451036488825670762256766061444805611121781815861587480255968941758528915393020407386553108989172896942183692459095006210688231689210761316539447710200961466779715471368971710054707316239264934332181443750256597828821776833927659945726523317114140967581759408308917648406913129440034677940617268295071730165867089662729030675979287019523730542273912315992817690836150017800283349991771072169067938172784406503389267760702723157902492302174749023864856516269106652847863781338364132549908070946445254400442737323256950539230680715355218690996946584620848486835019490150106734384050992687478653486731455283661726487344056616675579538384897509468899263167418651392131520661605040216319775512265418071776818498389184911416369318757771346100199646691203889652331016998470081295708009476820030083870232747596308965490855289283411662169451360298939603657776794169363420300128084048105159876990708135561591855397873019776784937674353974522007203409803422842781982765979135016714351022028283577121576621010741394270897616796410696472602100499578574877509479459787338624252009740164960962225989048618502092286705534627943373117607280815487607838478651939078856988358531130039955227776094026537882084345274223645857042617688254180582157106884415763089631505273754733246894098128934285264625060234197561064461965054324639717592429998429349064813726696264160289688577548131402310765628535362093860806217608517914330683948195501446002350926345809672955865789876322634234028226091208635124484929501585194984581740026106200893840741951379791157953028420854066673044767124858248036095003618501517583683996372475657477142070538897289030102575871947669716649116348085239394414428623648081081908497706011214713495955934165491455787609852839456882243841324084024045124306239142821265453772798156880666382950298315511873008551991954106440554954788657540504287635852801763379661998826096910153695990322868639152083806309926912996948897739598505704527311488531181856709449639796931738797371563423688899068797474425328497124811852605158155595831143386909729193024321263868620119593734297380587274634728376694455428018291663901144348746459747510382433017658662585404247696955454903966150806988218853969835864996012303653953794229216295130788717304710640382303903048460896409801856368326067872556465007470455139300037229774477758117136611128615274955527764648873033948482910624605149729587717115998951772876748758037168857826746685213686418590710061974786065045710771934204313632836180377908210347727701856699811089731809786690003796362543692069718689627087924041240366603409558322965834457163065882079519461326736651779044612351332315160318145898342951766613199738513255136035966784804080666706467917795183736315454871094055176114362239830419832441404525247721905445288873507248455339317662730941643506051587504731068325765897547637697723184135333277931904055634613285050799101998604624593500449702788949994337906099723739067068847478193784914699535734983881677258338144440808327656222795536931583765241453461897270226110074117918384339556682413054031067364879489105010212617462862199850921851096508095213653042758341403535772068063787442295935142249933401899082246565005956141407346083756127382424797019733750988187547158049577136016406404795235082012674511292413344121026548673137453036248268784546887258997521634383088933237798343728454813392382482220513035828868701368915043987457543375675597049907762673828369134499842016294047407652661634092680120138805720220260308340723489144007574781119158530091241986269000487474986393502456223525710093132751475003885496104518246112628207422748527888171833393154039925287707976893415102604295531475536604658567383131965258448346349745916538910004841081119456193405415466029523063463556204292912141883968602814241061292915412240237526033994140794333665818203774363467659689920831605145065866785160871380046654301337202486475615961305621162203827916156521280849780909114146007713090186677692853905103928410545475872414289483113969043460147107075454042744402700987771347941756441471206080231696782700403337297355595975791864350490736764405941496026558227687888765033267590356572586545783038819557800173226041142747641591787079539563359830924693755684400973897373117685480381212360665528717055373868825631899211418111650365423610998592286219979269132654639441019101198424318195410343912002804960687806912867488336721467921292133470714564846553766100148988120513591975424572262692769032789053603784316926942482282611894541970500802602269151048131732693699791989843352484765839809688119702830629584617445459856812427243075919568653133256709382418610836550986978321261866995165402620487557359604676833342750836476736619374082773282807412121065827478157891306458475231855825269713675301196486589480334468343002571998620349606867703761479604146723836314780237518581763945217791098168993585044057854604584738453666766811941782830474605044594938424722366142407442001964068475091274280123202024349464731214667653232150922296784932346737972631250054227067084866802292314276490093308174444666968372691097403064574192988634129341734879101942734393577836585653483086487421232768282332930824990236125518081225608225103344244975184251226444411109071833545998070378051985926407027090723707833513352302464846984237621159229446456322185673884519756824033233627845371253887678987060011806390656437050239611613528000616249902945923093230039381158513675281975891108971307411322753961183243126418393215430003194522971469566952112758229541725647860926783629013443021990564753159971285799773050453924757248088175290460532816247200597670063010289496899749420554170892880803005710829335036949089400195001236105434138381708419236165777873493710989454211317341128490265758424450961759459109293080625795598786949794874613008097967781771524942489322247881739415428441575084803049833982757946978991741978935957801636702491364709043869438182922806679507162048763280558134253556507239395399404831485986303891464838700695290741918819886028785075152867416006601405994910983428231665739364994493844659846299413344008966426427368604386759746321969936088870395308018233966078491364022631213173076910966186160798729255240965699122174453730779098172705336171449336719748261556424348695578217983735989092021819660775548846396483833722304950445349547641104357127690023968804136993075081308334128147485807947867712138035604451547081357209743650833093690469828303418703487109195119124499852250879516399042473186181115637213216004071124599257373880229577026581670564822181962938248172282385611027446046325563327106841240782170868887213465562177945805505753905951079613065729653334916906456824092462130156188384775603685820235730693743200619861124283992380306984105798910567727210524841592287645420203780190423051359579508958779836250756065540887165497359581153047246723021439637818421670796569890455268023679032125898949409417442784076749488612070524895006394999008125427866056255392252365917791119215387292809340952627268902557705628354991265358666232470622046522104851857152026210705203879265532364842101645177505307613961319101203778617350894554424948349247581033426902752102491174165291632083776195264298837854834954324401791152168746874512796409116065802455180052080999378686408524641678985003381489662264259816916575312918376970416267603764060272143938391481748056825322022712051638192223978669480791281788136505858585450911384906119282042407014595768260642560754421028933737445631441545017250980706112663480888718374953094079787399593930093009862217117815442435793221397211910524047488567557807668421885186515436537062434924971016892288887456482845270419527399891108277748124742284485291052569282136782988551044482406527431190326278751972829110616374783407420897959554001893242229434688238920539932817834489758200164137981268979612784566102601874962881690347686883322543832261067204899865123457392858680866590609801099967909080518980794185894016172517730091843662667869300070110774997018163295010004741558156461192557612603036402999251799367150035513848073135687273663202064012812843091711045316152537308975544461004230315771382271757820063415862263519523563347872725935314434377530887578992993282081340978038818439034516762579611857866150825832233217367262878975662584327193945875899925965644957506918241115170860826111093278243253076384645153961177683557242864857363756324296989952429406522967086391554032140651983996431605607146938068873967841604126079897010591680724929395334817166104062332713745681567826325827938013721212347139801397238517986982089820497980946324865363556909709143177108088322312541814321250956144992976642814189215236562069088629994931600947681660011307194880381785601444201189858110159015345101717807703054334579430058324254606682937642159310764364555242171330471873184573273849986461669528491986262439382013381277780731588815919340294935538187905783708522723586256312628662345670576795257282708563147128711364462620077828752939733245429767266355537881103566013863069585036535082703981837427000316181628028752335867098156648879491133831022719466285381997807850847868850076433930880718848355308709371972458461626148336264540920707628909954259195819414408680729671710514782432554537744766156870118993914688726744890651294772042258444850636403800945020331590904139990769500929678959244943765792858654665123916391048751958588757813143260303355350005102998592720231790359170125572341518283199752080862488294774347742424774364610702207151096037483289542585101513638970595542429155426565276344356321013851920763697833793506342899423239837917066251362935637786070136297654526173894873900524866930177135859793386072841450670539608339609245796406182922567458110904548171303591782830760495003026893561996342265103141350993439892650031326468878533812671368864827176649599093337050459276325391612461790676908679646308196610847375041039955507938247350105569823317538062794968550774215075152713089022240015393500221326511582463699671541491759147005073785080851031800603146110469307098314039397746633567370936294684414086957479601650822701553573359337360710970414864000463185231999914443348344465582529557325697398127205187422862757513532965360167600180424229906161557134476595934988297396610198556758278601170048674574472482614273712606415647179025983915981127035131624824205675380165617642971983675546718227951313861810800714638789874870717924540757873868230761124082473606447220550599865126706851261195367736028878827038743814158449658009844846370877467202105627585080873829236801526373218272860663003674930195381992641767033885920885160201225822318607610753352652472868123578682415908361759918755905940446241606361519543333040661868755749556273947862596294851292424132350708775938039946629353245869832469360777622693441830084807308408419367472904557128937663002671635482777529842698284589577094073753461254620531828738920107028633074019993922300735727995850347978767518463409286609240275066453603153525929137798396736209278433244144501838615228982383054127769372589868790939023942914401239828889486486245759399129442347605609754614236871019919902188881932760925756894649825222510656108670502630697174349004677707108851790997825541505217663521181289769186298524772935114650020151157753062382604077359759491554704968897049723584653069240583122477259629042864324117655203191909540998230379204885690864227840881057843419431496719528147456535925383371751961851877213985354580556391216351939680579094417330561458510685783395448831951414629306383400601887241347558599469887271979634051506705438441218255686364916861855848850905430976238860495413626653062108688058509182262370710383270975471663543628482580367246147641347274560463275573458818273263975493914135004920627086192557742311047151855959431359827593578348509583670510264207606603539104097729224768617047068272376365081225536091662695616572265287357219447288915087120460488052698563758534339703013301801582514819543751649209387079809931488420684044399686882802320567993346220848164491084668794871552960297621095566299574139622728493839634034663924449164558662755444200169560802515944349717196367164368601847501966045889762227470250800759982052194053586442741166522832733986190827285154773873303116987370135384539544247867664794763483327576022770005939594802195692983108762279737961944708637824173896383075842728913589790967570553428741582455955801405983830322202196518544984938219331902006788738414971500339798537852030274562735943061423141572285403599217903040297768096971893750281098413758739491472350029083391468190252064751305155150755129275666714144290771793409266721356395274467940524572097654787357012333766534613324101785063874926525627881603669482468891615986385667163461958241077896815836174459991875989137140951786990955399055849805336585236993532155912858081363714517511119482682945817455554447087318235521615917990842440530324251135561333799845220911274196202561550683599080599142244230160956943942544539195447267738129947812881292679989153853222207253700423960692140024573132059602048400840655215883078581500773219222226899113700336531757210387352595606938988909918577849243178585475854932806851414151391282291570461228916154273263193091135554103786291543189928177467346219069022163036220000629330753814326597718356740212258015669761514290582518255142027842676514576498383043311263288008976074230790089443279531727035082552945205065659201987312780508489307799480987203685587496626749248073042467106239894444344883632498550058969518891598171480978158974246192463002244856478950755482375024872526960863051065490682603670924271809862601115209292105680925335848850185484863833539542841069603252725323376479046447512151965094901662545670298266318397728816219417205411130683667419268147597009211992214440261262595427727122268097935521418846817672182183391094935344465085916663843177609419204445061848939572252396229818264347513383649381873482278982497098670321725660974771939768966583948864197699686540299396546283169008590428222504098721234660012345635861893320102774649607023384279582413603296800958666868410318620450642357639839097187894004736574111174806191761826722612025827477191745431170380015269636549967140722006837552642480202686179545697863481034460525667307498570403362747821823193939193239915554291282671416703669342405562043823737624346683608733168421339554427240666205610082729199204163451431382601567100143397317336861184138422279234448984371964964218604018292069702245516208965807950974656487753552922232599613211121971554430692139965377464979558788840865701239691247416378609820795086234946943183365121357859391480744175890118617317910321023413763802316298667156343057045971885458081147708972116583753711759810364375900024039673765266564954155308198570062003917779357901764316476477566711302318719397118133658104560158986441560880381386362664705635978633041901317969245995127828867653120955603721048578778712479558631937460793591430833994537929453842052939898762495524744731460813526753493758625173631854782051811986532314514332541944388662106942895024553756292284862242414754668953385135506061270551084577075269910623894718524849797742067278094755730257911167673740215998392968720606196628727050685150249415138766921504585134824809369208506946557695301012097047837227597312246396688869783774231770322090248822407851362673310941838013749950263545192080473223931362174900638002061392630240688701695906208296821955274534830425895541043448405810652244941468287694426143491114127052778988825834975158296953315387949422577917338941392265038876823712608955198741469286124319439852136935038047137863967430419844909904055400210561320407168765950543497293075805385399605490904402356229908533488242996674160186020364159010422547809690095285888015367599062121354604389324087163893799459336832957592704985203902842283277263954981715211469186695378422643762067056386187103970860731575713962466292663321028571215873325478429662698358678984728217624143410806522472381888099082426804662825184085474117791119283494555846708345051148529765963973802187430877756875657589436841189291210898841686615597340636647981150621330584864999615434638389758114966083655555162946990601886486010398073778406190743591866637682126434471874165125112793045232517308068260341296432418412130695190553103371852054637763846192868688325831103290008250489455950270515583519535529595999392804851411205397972378874626468049075377925380760659217250828727120229855296976452359682342865895667886483830185112923489237073152938153297136436276924342717835446785917275434009666130580338540784574717733102424930312580416740494220988203286898572519521423344291304526118687431366691077688072530630178748156843780748942963786758631870617677005152003741068651229170881105610901385715387461804657642637003526850322374856024371031063810657740534329131508818607967870948822782931181225543968644134749771212030407552178521113171439223775461884332901477917199268936262688849981605423322950321262680649801778467376456891770023938948725562251309701626381029522513275560941640804516804884170581856024084063372553891999891734962797541395752343502291186562705937147405537287737834551081721787176537067110850214626585912004289585670007374053508635481727317971058901281681035220729298656731027000734143103350179097158473390896392868564277449784055435957838478467854135970167493079095615587878328259518574447321614002165593971586042577070484408148415746318491044890710422899946481943386217263229969509990253261715020175687206550225519152846872930529172441913736423478635698483906121409921616560097108070481570949926070469928475037574549585752235379715759018719861439192552933748897308393230802593566269311611108180083509705417826556109233855041429837860063841600486795014637621341782754725511033680615174433817410901573296640245592472886230520515116905667187564277875767279832859759672521146919811829237245579946769656536602990010378160967092254197411617963018529680098540193673902247833693648220259915134885151535716442003690655295337451418532075826202309706432564374462641946012888527508538339221799666949593426829504079537675329520528693266436048198729800671215232926501444152170332574823735062374744702530324044294578350560061756224055865531955207500126777616423305757119900108325673570615072663373099072084868823989356802075633558893683832642225547950308271970292243181542632618168825647102447512365983020279399062079062113068211419282718044419707902263776190161667342765946722163497059424184315212243360146699463996995811107327584999506737874526742564935239305098532853509267409121909490268096545525375028308749364449676845033468653610055138592149266231178443397988516522463615151404015065685770944545566920466338116628199664475044471783759220871333382367732830128280336096352972152459220853740678406855264051839642122858667147391403719922152392906065747532927373368783313390293717683936962650313931054024188796746733231584976300072147047964248219484627101059579268382261752251600258724446550951404052638105656631772479441976595387198565433686310617439857983994109792541833799871875094419973740744049485703512682736421034753420101259214099813706261889042825068464970379196738457853421915562962476794178222987039788078192538721862954134688713785704200685788461639286731005078155235979280581037927909496672760621891850617473470808538424402965690917772829480236020709006048868196903179977298039069129065488960394803419147988489744898777285918044435438587304085659426380954574663012344535469770447867174804182795159772384681586442060184680022082622916873112340550925340950996611003830989484668890025736864062681634889416271317689859851007303864457656089151056459328857220217536447238213183085998477592155235257103206459774570042285676840085553087393983984881261452455790085727723288699066421756345024437482484416210567525972687295462638942227493935398703847472227028963354978758948984046845161357255318025691944446588651750298892913822626314873685309633463425452009891611967851860293914780820037612789182760823843259150092861257456377603837236712205228329592759889359012136921999948336322662924787220040191809357076716548378642885248071027092224981922707485743555934122449267270789294920480713135987489643383457620029912671022568172954014307279881931306823348188661071850981313423568506775793293458128744525590937239726837567261926999685031668827074306502283476231865368415755111707258662887165621782300110146581768075686631946783284707362998666600800499320415088673061543670918131262148076029684348870028459570231376764724656682623829383270096289755067776526545030776270118601558333755429328073569654243357742629380143073919558953279373251495669682514449041925000342307712526871939912930149187607180429297601076222425636919609749252422284853970221398218845435572953291727719902745486604816852183773084025158802909936340390842366045394981415654941142213092173318809311647873409379905769486177807289040946752572805027221880124511039499079540233691700258524558614881249176669651632995816502494556686002899605726034232023522950789160440982135827780248774949624853596596474491849001307445205096035860732782481506896133054641892022431790313672562462294216358141504330420245950174119664535632537010794707620633978933380046998830477737976600298285279917807207920611282093075700484300157641617977219811426589425803581144981101823595393432097604089350030225167074760573363058248531882640026056659868003115463412119196032689322822518438875667938478120441953729758199745061785350178952545347624773950510845899438456564097669063156016285365034358566985906909211976742811913712454095548192481652050451568906274155414688097024502068101173997814574011947965490124968681087804836113242652129679983754561780342929862920940256496676533928153181583252780086854189510784650893647852714736207298802847624679460933619688030185520537409401407040558189275274991350107803253332464558090020426551599758194842952397517121724359401908671187920976038410285534826897308273076123351507321199149152758270842653536379499438481295310250791321595675613850683603140561021961455726966404892505719630458806450612245287440574124908844383161025588088554630948247593356364162477723411298913803864192246727795162365774217424813885968722410200912823067516206294791090380798577392322540801200743036871073210178058542299738592603456676075730922823804920198168142005162248186118135328615946211738093479545670370961426285558258843374704152306907558055466282727736922387363697346570967884972132493823691010173339146191553787455604528508669295506302199125304555463079233713250196914842603498695835077058188245923999318526303770776983230296097448569047305604381789702813538442909273667754187899458618356181139329363358435991344876405806529556560539905663772849129046096033680595515109359108344242365684189126393763812887887037647466445411896018763561089929784469708228690370318764277046511379552338430162468537068632487392603240340757032932015803396367934285079651581888595587917681887992207926242310308287529093139170983394850396408887642828010375591414418006991252990226638070730141350846093559446365931145067598760842657437402645750822593320343135245189175966349158972413742571865800858457991344828778856135408629034891602821707895619292529566592837322527979334553165855455077254833780416201634564897261449441526433180089551856649868798957099358826103527135309066633600599283868516705141507209808903184463481186758162712491009428062570892877090336389307740827196661790860824638472422371742568032764222774957648931351062386503520036411373879125353638949522705672237804414628664094623706139339501416878214378181015264284798265395743310554221411044245501537347591307035366661170131792424603193380346364147472267004110134955526352914073518899969493478763163034677578075200164940500833719564947906094786062283033938695420067172087802053760812990654223547043996903771717784728068727813379769650846112236086741301140521542534348403732645080522316833861538737483513956671669539269947132627790656634951852305614342140207918059096255645456978577155389031065031386919492728820481344250845317448571078499881307116601966838740755905619890937170721480625532688882201016206638585661993613051489904272279032802214175321860201353727411961081220874790240745505336453405946330145397136149936036675874273304133293313356508130066315747138885584224612032564692868868042888767685543130380015420275996110174819160416510213523839597266322397928718706023346911481071552396104677360833264674730491516264973971970304487590487123872872524973532807457505232189649083013545484542129856804219551252184624629771252237666738689917729905617045502824051588359794323957133384608605587210055954434731398756170315677509782883633486081868349133486524629176972331982748292040134915952932339894797370419303036349802536601566275674221746300009797819294684298567709258327772353729649197120302889913355761380469524444429950404372993615609632288266691649384538281676405935265675714086555163835043532093028291993466612612541950115594195583764815789230603458407869347395179754472917381722620681977480152103612679678027498863580440672685175888782361398182728163300097917281982501091399131488000800228032427948394102502184395113647106919088938461492339775719676422418294997982588673111402510412973375157008422131872776159030870419496346696385421370517396938924892660403756329308309970531951672431643454178136595539459038146797635395960345699980582263085210905379027051217643154886021980527211796580315891215318869723362950999795082507806308493466492131299090194546758029748038690853539706773741912330544592591670619254408093190379227716257922464503084745940909019290848921067922112776681263338010680784735586618282564442310873754339243164868560589094681347315968056108693897577712423182487099777631716335496689735371013203783522166951274491068920917327465179347750145982064274382231061368944910736666715434768353711025420907656703715133591238234017069665274106477102937767045821760528547422285683550298456962474475196572678592078869434364110153990514994745090219909784806408540226650293744848591354370318331792190110328389051695104138936167193316981775695506104230714371809489847408251843731709408782374368350063931481435387951693362255384399446772884211759296572204272313259084932802135124724787605288741236439052748549550988274995103902553943637601486905218747379662382781446997288615305637490887158312248461862352861416866557872389785910650869647942383759402539841908731585382336554596156445734442588452692152020821340544950956712991903874040601029666823507998270904955871148846210567493360469697135428517888820547156081322731874878378777441905034016255918608941191810186167083551086901941696458049069140042075474139762891054958565593544240325238109807698071957204440992247193150699286102467681271124458718383590176083246422304076200826168131196152530202757593668757226536721365293159960464195461759860443151116006933796737634942364797654988316920775349565492172172408765874232157339825368716236606584689034960801977016308214244348057220976409960445046772100575523942273279298829378395030349446211941385299723717042115132118125439246741548422274427607425332164345043598126722143604685875311149575672598079565850897312486736871760504987967303765428854991682694671535677801363532505276472136692162286067350608718385293729548945679931229584054630581809781201278837109822059189748124306795919820878766865679036552936705042957710810009945271048746976584402909614038286005998996244561421904874125146549812348485741544276912441232844436119735788294987852934128137077955749376695256346104601282083335259406781591201593046158999561834661752488855396729375920869190513459226478749737421003860674989682299323689476695812341347051160891194844940424487637650651522746407760347499479184815380491571135207795842794029704014193933179721989683236833046231162987321397689055803870952869385818410481061936948341234525227512696286418517362260418072953270131549696150395161224658244095584473864240993792730077592005826723322807084580761920220121354154988367443950195801789324586108989400096329584076223213592094489322123253889061587882607482242244957353893482614897531352823093283708213036331477099637586100671280268651699057617799691302132558171026347521373597400590281607890303813027782541509361350877446973974959990518495547381068279703462352577495870731561093505049792257397341731230451462726921084491495064052181818504199562413614042338612987706386738069055741789828503550359849312791306137031796312146082972119617565766780854812286209400527318516745530648956857323938731857489333160072395279669691881137982670421144329214271151364930055863305730864227480934940839773507124806332527136068347640906538429768761097963084886836507788656684192360705714955058018641911571600909124450376503672069369994470079226457259175151353801355175792739295101923611526016023745135558590888500742620790061286248039833883023362425266599225781754957713107754690526991453651644372404152112396734750498426576166819459201745309296087336899216198626432272156462272768723683611876193622178548433974703627539190361849880026648135687330997367224530104062604249152327608320997945102967098041093145927199211007911728671934909672407745374730537708974972494025643103381793139976306572633592838195741811755509099262280285493909643756485424260431204847038960822433735826690614228062426196463828168603157472117776425163623021882110350923961719600852101262454712854394634698502109610375098445700634115645749867513422294189375227595529689447334548416267599978944533486375285537263169331438130537518373693905039936574509243847440785945964387118299666390099220737184646755974856973507060088217079191809240926967335993472861443968094824943835064568495928900083787748949240206443684192370433848309562191243150801271479674830901593528172819670838015116072780263085270171009859789650350474389806357690273793316605326912911005543345784545890879532774730248709258928612987411685009917676670894722721320206295873469459550560680565925144283275257469207486914346575778139584887304218954363584940076337083358668463697965007327752810923287483601383449291161929577604776618205649794357952905433695848325545768231256943347230077295868275633434309306007336175517112233220009058186368124374125886427917619651008846029691797713773864965021976298203872273440001547064095911078504681634651253855111935481024470029126265539470973027937081243763124672147295344833675689679573842935838345399319946673457613220444152956252976071513444541971839213550953400762302124908304079553094536913006872389538488437066447816122166195121535458534742341924526839912200640810487646681759809771707838133505309380693886196765327149899122258166079824571892320691304036430428051171546648934822999368760490956716539567616650542817898427915430047843204448306781467473802568722799694577284116444304495427372400507972288740495311986345558014851107838580688506909819783481895143893508142537690643877379706892086273710087252176141934498341245011698702158824925331531936220161688529381741149655402590821879422085852526519078582474489097546504796362367223724336503332567975908690195190931881169186946063398181794898161826031230967937255489284280305050367306609057237336986546570843667888499966287226926926129952251474007370436612414990562683867209719960858978218053796200783145861844297917168008527159348220194601162621238908673259589490996428741035710497178222215375549207646733419471043503204199925945855945099157797838725725933952624722331780928041023024681706271883178152411166184114821897261035706500193511267389975955365039323242754256735310557319701557364988989359359550404306488112879185877751624536637387361837749330403633651007250377732286298941450302349975396138779496730402059169202962174405519940896604906985527450306508174355147964333433905284447889611905889936588158844978857814767769517250199421262790318266734999996012669299476311753328097790382924634391610109715994252898352656862927903391004332665133649716961370088131563155261294067467482764948843665056183187497698433061953080886423056355527000995222974777085675319576448921880352211043821459851374602830351535361186176264742112366420522563690157921440592333580184906068833464421036784789295924441138903073326737327732677703476387220706451774065581157598882345364702137909783846645887028662007303431703309865780471779210149800684090558033698445995596815366390180773693151884526378946503541429612092326191974553433760131890600530323506429785795470556950677778414790597990634165254204730266445224927737713587411775131813440836308636083519487951902287081479599863680808021143995575466247062466015501677650110433699868668108695763368952837943272739017576422585381708622775583320357760517663121913982147131757126944060543053346382591868681709218941280479683366004190452527379628292099034983073518158892044206310429586883947016068091366742967723679729227922769327106562856665863778923918279588794937522364541963616296261218969203488598176497717499248197065033234623186756529966947348010276242865614637481022491729870437091991260473513254201801278983318564589491229650354966172382147737759078862617316849426257890994895771684769237400013036884084282562075661043236034951114430008809922422174646782581199550356814716441705730720778698365109508152802940523510193594636473665767017783218661379060388927480260168935194171825483599610487552158149725592158073925066458980530072247167713742401885754522703331452874547746625616967454294370947345731163223779546826615760474518475139272831727333113895868819168708203349197271865603597801864695510021777066754600287660920934290299113890944422788616277318293130229678410347144987728976299328632528758539219462659350229455656638253921144125654812620802045888284174218954887840338847333922644137499148569255011588316249644003264697935732711054767462049199625877279631661056247210952628301490732909159999097382147663110574671587480288719093074662235201425286947869091368349704386794635788878125961209814302866295000891798613751967443151061257562491325280630350231271761709542205085947665515733664502050214147248834715275871575264478321337199224921187073657788046999035903862134650503258099143061324343099883376198814650764603580931942283823896632045071991998000165602068047028925700862862705857285276157839053327661212138138523758657365036194372781966926420159114404532480839209904306490394086353140936839680014471392335271153165961338973079892813521694718340781744363488534121469129622770913848897627839952217852839384222991615565263613970536146676621524859340922013322311817843074808269996872140096116628735419016053912227002947896155122850455859170659948634688747171104804813275949796793094516073389250821676272282777485713276581049247139877684592143043564191584140999542343323878325012469654828101414376144348788774513809948331113165669919408966979802792180990351927857676173762870485603629277533356601948997411275970753886629859479534502428341418163736122832212375589184985328701328127815545103488343794961255672243420341921259051801706243177254661199113993370119862513655176600000849503363757701073833383566728991310322935524528905224351448105634738146364377904613353999108120325515527288320139350601734414679600628902542683971924600692863101175146229255422962235714659056456108189245478473219239952354029187823768226131678090651575492892428450684967117166658538104293114596152286994321419540020636333060336226733229251530049314581566520327138880574524667382426988972954451863933591652294366541574095984946381850727643980482469737081875377993557169532277958731689212758857743749552219034717294903439419914468166855701293627417559609782994360966770185941406730450461089986658721867894129386727826034188481312429943766264705114314715911864834517776777865386470353337233661128447928666922639719079248976127931235987317563316107587928878846123945706434650994304283344842957258147943079289559368383877328782991396210457654561046165365455776691795949097435333311064662524561746972205078376892536541570288369317257067640712464561167842929041433349100745963616261109064934329604619058959536622821146959008386497114917199957178452892996807538866580115259684534786692712621767354103900592739169139168084739714063214335061021300529740154264054566448781300890548447453159106804027062998736106079611835990876782938634197515225324848975380410007719899736860208853504717882286429897106586694038225373505572576853497361622634953265132633911154912981241584651653054998239161086806603231936693124299659057870878174840414567101640638344503163116434384915780493300788616542618274862948339211309776023291916181009555917976433448221440684879003569370668090209276149734777736856414143944573437971070123743539573765391773580027919802956501353887021357753177930877342550286733575869216486756443988579039965087279097837254167593615867110354277394544474983471758635325512831652792190215934647516423484303857418893877071760810979723422832840772306454170834385606600145088417440271308337299574173030781872810389175235985708215143710307545875558597987968440281906830142046040789734814093933211485041674298538313739133740265251221224857596273031343109554548658858165325171585997773722389791584961576104034040253126067654712303403398733747218064951413195603739178494055838571088705204309304313219641961146736861971037932467355753968815661613691789916025154011941722848448191322162749426836704615959073086278713688929249545876094089583731094477414413915767030997135263611115055366735879480156367119714132396983510414552147056891518919422315975441995091050262995737180856007495718940587795624972614695523573299375011944322380855287715806156023981397045087555557029519907798714306673852525351868820667805025207534508623346468713126165138825178437226097171099823920707549720702985898553809931941990111689298183570734345457314560434534224601748531892633911845416213754256260467350509634936737008029481070278986144951457286012767160413430514864577242210021609799157287116297974685482706040194229602856717663208489174659704215649148140810011709352805977921052747728512133859473260214539682145269379694844731736137513003311038446921513438890791421358153597426631729485175976262472885913805115793670458064489101828898710880469367976303253561783262358693730438922556769948326969762104719978390208027764787781101898610638320867417316175022459374373889729964646413309677931673198265749807632736246418176225392900245876444945155213876384622588233139388058861912353626715600780858451289129116896068417397615686705862730401103990369839201265608648254954436776823333294801112851918770133589119305053883215384026953152872310496203893544702804754743094575691642634245904453007267368209274235206215133157293625969939637959896883841698587533661477570140617599674347970603906461938243383248877516951044788065207043765684247652760457534864277528835708424609205543100129270693433533311729027135309255045797288181849681267760307206245080710811244973949098808854525458982305445865988055812822973402492707928852942391029577517645943860557219993379295668649783485299070204481531088311754896154450859515388677980403036909200179550541740258522254610539392364156280064861347626531959896748951747338462912166031158294117573938680600239841136858062944722118998509294316966381799512209695605425400455044998785206839321453976126904912229870183387901805067223889017035339709313048419470260368255132816641602359690443847653147432446139527592698855289520825576116342125195634493178369931287401468294745317505697188103396874685918529624771203902574556462329029499757290178289719345731479874258755429488927458785701905641757100433394493198895962263484492619935909816410568544770815159978112475778896516036068517503114220889833032766422158103272310310027956647990482477076116256143487243325863098203027012224464135596814335137578392544522519528198684003139094491859440428772417536334154470391155969213270936808163760023140580363121884748155707912743546610086226535212362334257516156290102879935670786302614537246146322498026597873530156848029153264944188903219956825020685371708604233409197653541773164693145808292681054487771409305328686738821453269097109729471420714739651940653127385781029762026958642775062775700470301809005073969935356376309158082884687812417492041207508747891956554596363510356609629482218724103742394923545429923166740029825505223827942291643050686145305289747466417209302920882915377697049583428400470440342903615307573980234599625199649244001025717891222232937344451109474108764450235091600198959460718372343598555873762547841033434049825512909047316512014492790263478735443320412486107689893282579183700531432283337350425515899245839365300222422720459867599154219762806991726971866405429701370448969922027134636206847285602844697148031126165275064133975997074992207544960915563141096357252925113829319718748711711201217463973849793113304981268314905184083544539564446893661955835634004655522990586244083930162610407105387306827042011295463513852026395435479454306289178580278662066498855136886605400517606621996605774323179981855943742840587016329573113302948130912717741477157590569049362106141446906412035975407859471010744191713709333700904443508811998891712185096848560357109104320397641351997685032873674718493565808168444915624847146401071938105687242628719275484615271946125753900300487988552825553803380845671268435152634474391305718407831830667474175063895900297883149932669334346037012371583331567630237834472068893376959355168331237719017548806655798763543048411000574262230388752253581732497000904468672049203559055296794072303303099618366810033300251084974669190328383896406273819806843012594941863955299410781279986981956375394758315916150669266204936948765490700563238830645149256865032356439440061350960909324511661533080251617806508510425440259647620995425980905420624860913834709476179404239881450061925894315211974064142906515580860099106306119016395511743514314417880067919884861209455279540189151904869248815735444981201312661995262895942091949815851386363975382742096056199435478123907843312901903527077395171978193925574256818554710725879330303398860024342687021145733906275286230695018822611455196113405037778691746112616146695800177747404558796116205724437638116232381762348999469009403315076365627507898495294607312796590467133046125370736275360319481105930589303390546407232471716666128552824436018033091315554025788325639815425826557691713260004691551717194877662557216617120152833719960493440598913834005979702909700489868459987939593569641432139686135683590652260265077613589840219023908171282251876082201016615061774989183331332706400176356061730459088688361342058464791389405408823168604835872345489807447675534109514081065598726623478682252660481163356994208506230388936277004852647445354412898561884364829446084992235730903725359443174501918156592548351440113383914676929557912419358035836699545977118776599686402204618465724302704133809577572490298703790568669558684208154606362566349588022139328191237983581759406503993906811027195111970314755897355949029833371247648633798199437914640184983486846384177036886436709145922416770293382053036314195540781080621659880713964805675962905185811116626649871971286471912434080059312812152514318921736704437853919280547063798878833454974744422928310559329309975432396876017421463238954491354621324605866324210124650805003899260235253939823232538991286730379111295066982268841634091810282581120072307074584426316704666855103031278055317810445456223644497114931249815303399749822490436176956863257960987335517744135412831126398675147942748896059184088027401712165427689143845452334735973338666139846793348846310425156700690555734383454712917257955210806241195851075483737408355694663683065561155249104275862787886800609026495172863574107694613669660279392348420786144681324123477961414801048767360929334079663603053710176769688340217324459529850294776853025043966569551675669228762263463896395999858788745211952458674202930356729730824520626374128041257467864408716882077959728689464415888931708235422692253227286287999793456398312603299769388274815632547296690497432880317681013821304476741568986035169940785266200975208804336428865529316133163468400728568372591234322317526072861005649011109412401610059125136198240809616766609162371341098878894376252794655204592556058998013671614033358215223702329537887941251631503061649520921011418120575442301682317464164621251002940631071165047647216623284116786547447793536843602073802879815572807703877729217840163564684627743940806586475278743453323521567205372678573392295059000966581533332569681656543299130409220899571513443442309539653116498848305702228192701764917419156992867549612254008357083847498404074740387421744779469136420530531911326857083566693769505859642714395041650215421528076158733271991956056805800891105385072936878797264519344518202209392502896473922234634624518012494013703189186891331555776120135926834863701243542122335239558687664871780755665507755463342046797975587422122389740568087679789261849301141027660188338533394047434328433749635001440959668074431503049726993991084137819725239396635072381923782917507511348382967771053857759633765531024389809273093436731324734628618898920893977977594419074833774260232565785233045531015513382865663308157059472219552137731757809022789596503956747909093885241024600541959920249031827189815747121176268381813568664017134762990790061401311848536786566555776438919242739208204113939324045429647846109738632818901073598994042434568476550942590497176419266994764501998519051011402740073034148107436814005653375505413037148582885517613790568142414116136125269402220332192031351829341793900366381256397444446221695582765908007708935243993082947407064706392830880204479328953026438234500859737726201817405559059144030560651537563223720905434612918854071577597762585181597913103113131127935031113692125901382688723948505701397143652584997626822599798104562905535402554598849956590725602976038393021679413457002888617825425604730720375141537071135991807947918286839833132942435156156489877709064906492092434003498746770769795675679400876143457597531854900120670618327369501687853704370679612044021499699384786709216993534344539177892393145433575343731528742028180958704047797196603092782181489860123894909428079041314645905606937227701157485300648434559607536269302267942141217538367027873543763506499530194103405035133717575294256389000696376974380649858343941564691640070699137827820874488835277633115826275516805625597772490333487343687980004512542782328205285904932705366547660393154052726577031871498871743322602106938170024530563510543393947444078061939085000208815520548068715679256935119838174968243231839564006410574167852821172475067622877777029040322887022766966129353397036203448722644209938982351439537470354545606064248126995004779099655551539919149106323634596108976840764123485057394540532292341389751369171399360505237789516731079406822025907815397882549334497975802842316735892953857237389745250704200430045792676867517382455754440389506281770355175805463405510103600143506682736890140090812696114814849508085610838653930464133532124456714026266875745355120940085112310507134660753043168272972700232723178296480410219436656011626852827374633039893709911242364943374593889610718869595408203502571001739803696214871115508271718953969747342055540064559014132127210047423711803741273618478219480105164341077565038285362945673094875632321604343463822205547794480062902366978799674030858099066995436250660314974662012320541321477702108108575077655133707651430797727204914348349454405490276760282401091592965029490735001932456589271857217000542161274918226083383987701756126592630793815109912418155425124221146573717378242206700598568991085323304111217492926535519636031003676724344582215518840352763176146493377385625859029147796898504979976755467726409996953162530570899431078773026830030613723274237495755552913738453680775155924843630758351069388668533293464743343132006552424265046740364387655297349022835444480127548874389590084022461711822984733072099227717376975785078623419975832052597004223888133953785107207836313294540504401300260581821862732386601289926014136378914541002693280201340467023338712304225229630393077828330761667227367801847909091241367088197573269750195868003066166288215966226869500037204013193722759278855295013460018296078678416652448338834010546588624081199776587913955859924418694023585432491305717756449818575801337844147711726741665441837101328886211862345826322792520183785260118054753289344551749037680179752782769911000518381698857208818107399499578238673403051073770148887366608001901754038131916403334125871269169928286859223677670933192330379201156626108176174113934859549118652317269497055928522182481310442523449765091795055417755355186531894309587848459081632811907944321310916063113800828157572463966415526972675002106337039892429192159382541947080615151862168698471602496810867364556448340708005254610529307049345485058236705684916025303749853473859099372419706214498674651695089237305530227785143123234757461698902109185669895568698440647216082578648584037148763629377676827307291576344015337952116643524092365584712023067500247711339964983442057472989227651705590251154531957654473308530342727046846454078068908721927248979176519145748539144128177016943623885791389501052138621811512542703410259972015318306341098669806793259908372106374880944810695357064494087712235494841249714222593616008519242961991928989807997225161636546925238379434811060229092937738019473719254154950967026686786006198012097572350724229598034275165970936138235382341535766832211735765805708548066224141071764796278159632008260925838218356493394370583870270095821339330400985524122439661095317254982309112550542507136082146107334814572714770915314744770355116094368513609862189900380128277171892571842688046860973977340757717067277939859228681643047622203981681023492224575813167240752423643773425141527805982667471043687651695672983907947157361071155231479688846235779377890328860080361954056791000350545824613367597692622134003827968120393213036398969095367199047034143985497010115950968145562055829349600205587064538064552930390183454940327329268067308969562551185262228189232933278072662726107155115493939497010672086725563132602918386806187874412184392881817780531015599813593732631715450735617514708276669650919557092719402794801264951694565286586159977174211727738311668486416740413713120777740983575115534868899983848967173198894779791241199805132007070306777095796939949915987436676684938031945388043752605418442357773529087728317596843523149899503781660688823198690790193919235398836759567365895460635096159113630130781703422473738997923975491297499555783786109063304804248360873725018910572496536080771440506183922233239267485786306360966618974897343449710022502392251786187071101423523899475424771174410530916681815034824928553451611336914119793940999580440302851664364443510656004529108499169544321637225065296538964513669315353361677070370473463536971071927224620603781615794165201151241371835289199075544759237430634996010168815755560984252394196828996631296486151310095218424006839681856863991127233386980786555218905424392052273005809185843495267030490693406109469180755159501950441999764635168126524171524313834008030345146270364015782514365887836812261112449582080797870484513055617025405289913835074810457699232920179879108596987474372888354902006169170963934844177006981721413116560433831562417240105589371785694502146442151578430691113162386325803053795440234906823589224325085221237096708869806337733784927126908773865327414563428669158846642183718131532667539951610615319634148402192145747301922546704112871115467802208160742597798196767063474515545349037568464182129485437279759095348178587423718687773229506358159179495860731418193707845580312348622657897426928383513681841828404846412575254301980456041566034362847255420592803404024097597707995843170860570102908130886343946903681375627743744699313404938165031777956155758825813936033206311211996554036370232958819130271126130940872064996685800830092050425902932452284247226512048933252663435150542470827351720890408337112110562225033625022002487983103684679920696829583560277627049436311283561306689607771227564149334958982737885032627171932273920805726032306487864487933554989612278147681375533364156307459186662185609628911312702450021192688491226899050448861415041214078265579343045387731115159495358603516591831455784551383704708376186278954289085535380532212299568725016124114575309512480751868921409361144227781195755048213621507528455121361892721823857275517402596803428146748522637138621760369658294945525981846699447383831035430275728851596699290711915604941479704454088657403064059522279230559865620945746192669552990714051333421858979580327437010126653566287135222055487838122510558861139860212542046429193652914906119982669343185616066047099458992559073424891242299833376781076766219337976376677463750881718496612663178676404537798121416971511266384138030173690441472984866602759229064134115683485861919319002510226495400013464894956941156911633390637238905814068817821085449234439231102037784946940211312973196628031888586785485199277413456134983310055308396698926018228213340275382345563521535562897289265442061486726815752032213535166223256846664758765627342024597499216833154186745902197149802246189549962804798567363375035151343231968205768181171027640086977211704533689171193254239098487166515319688970710645512152701507978773353574127443287484982945353859103636703560124101345475337186809708626763703962105580233424630439389120048927483798070052437456577209133341124976778707699251864872501958322003773570852474833242477589376324048325576131578190236443686191758282152549548460327244407036204288796370580305616312963456765795449620126586902980971679814987162655862470105563443446205084768816379482207410557014107031018603599887629838463477170328403873551791469058030680813265088592728930026488174349085917830561187206090913795304556709607950165767565706528836907953857159526672892601855822538810756852528866203338031660751976998581944827635732032934056589209747845331858408476438284211931275940728578603625658093388089659233648956441151361540104284271207177018597362536886721217248537315604777973290556000985174031233953087197510123700902473191621208456184401009668876959670150745659110212222076152206511008868385379067890460239348067687008766335478204930361111661940518197324046231289940957555793425600246583355454356760408387755650639834807607430090512616204549342499227952252682742804344520033547465120279558028694950319151159339057766554545285588006149896019928640541515982569642792728215760322976780236392512801149817553940897273498694710972321415732678787344308592178793396949412468258235938615334283793978948590607923661462844930940965928149996743775416899840841464630988026823927819021285024130021048543540642932261675325400108269663460908692481133881507916891576720393719883899872801872990746559253529193297070207725246326819589323553029831299376317756661847910220513971624349260622533840413407844320201231216062431446560834041401358880572634036918475946304881402875579051018705466369854587190198145307445130067328461844992674734729997896633929424414498410698585706174977646809475649284909662925784504088764813536671456821427784992545416966535985549596272002039455903705084209682596292561154713829805463770471486082430830759236576872981766256305050470725378742952160023924501760185994346052168829547335488030037858351623929078601364601253275733517109508987243145011335396229863229322212399437706740087025647295303472567357218398334094126510231707678823790388826707576226080548497816424172828549682746092961695607978487268782358693404054661574896779704676109236062953948242217073540848053879799092645463651746566937646306191188240698445164534126599519642337356185493086688711028263117976091363187733481783958552314946904402932785698836332230402026137480947130981305622122556256570576523973665481413263775824451295885658219106303395586413488126092457609265590807693709071438674687738142459608813131257137561535630991438428037703799040031738561479688901695572659833329597585300166066819526154675878800028410707709342505732875707129476643338638278615440334753277534671567997902207581550830622143496000160519881742104263129092461538280995072589461246599650928797677589151455149442004042199253271234115859526691188684596045945877141180055365038955710397324687208600596252827084896490451798233445847997437661512543663809093579448787991615277334427364841313620407438395267059449543716904425756064611735997510538832225954824976039177933604200223461110792453179896601263963302861414503876939429334001981551643409777151355944793576248754303727540192173670475377843773762517986970550512394752721032921363075052938148667835456664222637361236580534887014951446319542097222529828790304898212334082628795573271612604678818775137768508704525197600053100315569343148293387067910299521983568328549983285094422188711581011796488793271245045618812944127094428339942729939779928517286954155919064859136928124038016814083486037113317142467853703188978986350945133663772198185313203219046140947824369769946634336398628411111812788100481134538082383616416298416395556662406433843560116447770232574752429632268603180381622879045702855543077648005847529140602398973022908749249577710242540617855665292406966507553440233250722222167138253664104875068862662086511486127494484320916286932799881791136288821290774386059264258974450328248791732668844243838234592394690293768704604891450431079217250222135560325794578326425224249589151324654203332627351235882952494887337587245891638776827664006526415764706632719438025340237160872300939839293522554896363940961487033013761745985187284533524580410629330820388218211009796768021851890437218204482554645480614272553381708940632607997859053471213333422384571512772821977050052788287797015762860293102606328504443402421387137226861295239090168449186992150344587128000025754233046607086283155889783765810214656943191618044287322329444559388462025569992951187920814602869950749847543607131945175434026111765799331070616963110958424757310012796897615754533535176341989869548304663667326869477765160721119308831514846274756075953906405517706484777931603067637479254141269929101804771491120094414487114003351248681485216847351324361210921282731754816281371323528959565046735406639681304324285758226820472492063194511171159624332197870833012000753435726687382155120364178470422562474407706928796081670018261468443313653957018884888959958353334849225839154904537583256078853192209424739599951329266358616377721318872089423152910244598783302673424480101338192699926598635253924198984048900836710192258870932116996467184059604011682780595398586542646602127056795530720354401091114770000065065839700100958292387312579314117817577560600993076032143343702223800813005285216501404098995586351633392809051745492261631531183988255823053037734519670237677319903277837960864875851664418103094153735034547849687760479814855524036936921165924433246425225426115708095384456546356974791609610929780845760738419458815382088297603529319361741468046213339897622806619199540000568155808908184677040296835489309983618297032647443619565505249557881855783465338794276257948313148495176192431864380581383111010233014890565032888920989450739625502174404376424993384894921559522584694867540717205332120453299732370539941829423437635442573845399598672549221524837023937512938298878766892424733939139326755992801236019661633268920023975001627460669294603527234287587681412363651792786684188177279378613756338041799573512129907725053470396094137943885412160387685913027286017684404784823090639408631352418739633697969187560232374102070011536671334421702406556913499095958085868675601918164406763554751634178159467923713731284823387716327223362699676360278250031499353174350682407124385861237813906998530669702958421840513886158304271207043829599662204358321430864910930556562879115345424592730264028419552069064033048313203329734692211086841858425651952099799837902785976430648800475488290992533285876427185441604861113768508602676184486948968981666417791062134681775960127009987694762964287101121313835592157595010546280057869777634891534510234521948970738196715660583276956057592567106787841938286499542878098944659597336832741447901043110475847717924745239706589527454892990758090738283434920281798180200275583739242119357118394326680805276738651821350717121805263947765401340683133220159913401699459478101102496414943422998308410163087834545800189898453302282621623294124817168367251941583006532536244568042125769087078887740345157556449969032724253404219834200788083974438928653518702063993950737159499349432708815089865598058264939266910157314907547905265790229825633976283344488009801289554883895672025131987415059899930758702470477313692422708991628069686412974221546201505971701277246332945688506190979560228345343936949937613531630589723667886886091640299420831031923877278635145992582659692992705645140995347193355709790159799464586070273624524048459704677203390582887868005220405719775589807729591500115318518861525379265519102354006615853722313664442996252952348816020529162066453135984174914932202971765134793612663120221519285065707793236035297300540081390679366730128450552036634247698764483207216748558955187822632647429362988426159286221477660961381612857893742673424154302337547243773647452633426952905418959543115096912856119391706528914562968631162807346776637143334982822899581754410400777716046106670695821759713905938966649804717895219798067892806630592155232026305736056739549402121234185209148712898354788139024015866474811377501064466393599066264254295923915521754437936792419454786010123042263956903790772621578123493934760044062055847514192845857380338474628475328879113167353878174388072907730813299078697017394947541284721588840330246350218616754949298048297092719293349995828477843968234404982066906317926455287506917023324323726950281664045505768048410736797873692235923486595717730578982022999605781855612912346744744528135567640095370299246716299607110202799569220159866568099833776168909757479456564129468310490507009212568908661382897840921352177346906645307199646693687842709609523321382472247049340006793532218841408977175044880102232639892153373893453526256143203786677209484920124441577270662274161661001178529927238632003534909295569785932334367959709282723355226228573494255815728104389189755261640771837027938833955269344024137312749733576875496968965736562539859464264694619123811584376603269359186479595406736357614906656071816765392559569364809047757102785408823184417455334203556965198886677355616078830339811542965264386404160493880740272682042681496174146339389394339571044264413698808318507940438937972391740452880706712519236872992721691522296382052034851892511489756890637494415926012986179481474859854112955910443243819152442424070795647655133902059922248463777808290968994011008105744112531063868793488816166164664286877257859045456986548777293612078087522295304665949910960318109209506918699786911319496999117497674844577667298521415389936086870739545781950190934743137626232532711507490406426556318173105063936191510880176600817957669388983660968186269871443934073107484581132853857570411187567166324800801578935040289898906239003729618229429442624812530054791185969021749729069356612511168426607872790838142687877759032411987873762960543360519368752532331155868451492964431223819382485844501542633118771038088135259167910713588725711797318378183803088777173222219803862398938977991825424074488894865878581603294404082266871454069913357820647930711815626156663782843314340306834983030639513721307070721152588834172884567076032147939057640289235710697442568314548337989640983036150454893995030261957826661546288205036267939647456464553744306631686909054814099552853225584579159702681885548947909996265575339617930823277994502910572298040682677200550615201612637297843114539427360275166697719745089248641242126424273199246503862670267041864757431542851006383015080691283243426851971997154130377104581744033417280894284171807068015000964202747179255690660295626403968414951532967460065365896246404606963595119827603863720127457332969238737977604552221790532189030058613124640241847507119965011704917838555229199765598475709105473727824202188869462175990111413909823250325927646953400973595337909971757947204551531208586463316254963502388671854987101750027180069237229030490730366761725207711686398548786549902025804485729353631769584591077715909215625103995939842659823550574532641468580432647960217047609122674472727221266615278199061219292611600035813968773772237231469879229883237409959961767844298489536600147262090552626268955903536428569571462652473646165035312919989673625940448234407042590497164297242508436274770162131563842209858987277877017486710860643088563869856686015028876839932333697491472381919245431886634680569305009378201360553950272283546227773651740207577970781583126319693089266201059061502494626172977509096845292392547381148651965605055439022150815575531475515570549541087302257170741567287047735724166841413334652803910586853692298277803648860634276791138742243343677698626901396975033779544979186229376016462433278377910382059139219222109039016574074314221206729019879180220669357760654300754770099802906922090488771656120011240678406196248542243210212600957597131139849798548764178482749508919927022724124878964919644054229094722797486226189262759200085024285808969714609424799747719315118360863265152543225560465242712212885236718152919081994414365033765748989055592192392487502242873776220191979629168695979293777665602172793093245493108004362725260433677046216031946727253721810170390914353192483115985668269120163353053553785182082220150797037363711766099812787468741253610372424284773910235148678017118651166084861552059320900619874514781417566993968997209169858695654094794819844919292536402868374579766199493050314539901792159932807161448130485711413522305983738114156286852064786498615008608545308927372673718271282342476050762369701095000639012920365048706769701324918953892021303906411098110528490927018298129670549573384135759003377200617824721970900899123891109010023564684042132321953899878831949690077209283155660207152136793242041651250383243157635647438437126798897916881831053161473281924035245163762067923802230293415129465977692772489866181713354679931234942677481547911091062119793323852165425753184081116497899081549889389677548441774475760518309815868635066543303787356544697914188251847779077797257076154696019239308937287137074256338064435201988494195660531967974740893494218481024753743910787792414261843212544597568538506356104913304003562075785686926653912739388272738721011389264356086157690036443623735790294639161703042776010487906631319153103612498228631238933095864319708509724982925703861841357542081600843435772500895753761973627149175125150484156630007125661407435645116323882903069017527674124450656797135488799052326231949380922602039909434071010363059445636873869062188189419155853366458023870454199529246018401420401649544333021412561161911054641519524500090673785753284191839898282605628643981095373855554053091198802892023913686739086198174343877486534267545501883919060417609767799675852394369279691159020012218912800113025256686273109106600771150425358922873609364892169310783058982427383816566875839785443049815413416145753831244615738341103184178438903913830669848053584372276391624746647260051421957217136095346202410572119096641670699740247147767615897464114978205033941631071429689231829750223226612879420425967607450049274970292657915501035174425461543494045039038828751844759337503952317279442418374852853794316176286839323186300606091814269965604105063038587215254594316287394761126054737700037094284971705595929404475093399415988006449988522886386011955070974003383041460516210219814715110064306668352189075514601126896582881356949437390021841745686936338923897478528730999082571487542578548593000223986297500771251772830648212791112175854908454481258265757802762640762222314514730149186511394317599184816421439901202581815077023177034405024743160476750679990843357233653059756572670354477833893916300530678552098725081989411205348050173540858032665361683206858898679778691682670791133640542070211661435137026259710385496285453349716177931174830094618761238760035286449283283421822541609060229333699636043323879450558779940916552561985983153038586316444538220845323930537705175365433940157634145777551314234691149120112776419969874988077008873979942624683088054443887046081994197146669126563958896598757918318275041683415923166547148895293551467238543529758497775190344758728689102061685128818051936614651539972364710045402710410553387236436147762452237707235824529659931296279249201747620321648146815919380991372019742558179294663602177132058882098706705383928741844260757076072581268574757304431543691020655519821026091854608841591413536734029640236300895929546126095256269340406397990966179142829939108211949448249349040084143244136405688583018057938680632720222863646317423602899080457153686004287976335088850312630636104387236476209647273828572303503517143055668241571227892489089508383608224514856720109856692889561871796778886702583502465404225109187492264346567073992810332188178786807011566412816472711891809352532153333516350632066886180477782490723601310090632681963264376081496253502188069749400741439380847037883129683971376618266496992418985254094412693195918650412632413987222817275633590542061661944905882619223459555856750466179637435884734426494924890468690051029315498413898250015571122030583811730892306912638867403517121174361718781374998406143920475172945134169808133231828276635166173422252174624599260887644891778632230123927206511123117244619179543309837386017265894417022472460365480754186389968884528054852038356899948068869766962610407504829582965688799660177051748292092081160435574431355777209712255997516604651289499601025561838835654357756032129383369167888724456205829861389513158687584681675312568673060164524505442890875356107725527150948995582857215344945167017275103524318159670152833556799013832539852923601163391410078935855643751261670436149678787217763533479499109990375736813171786519666118709510411105566969492456981126823858383725335368067349062988870641827546378329214554499721879833313005993655808943254151302078363717981835439551078088730867223732056604522454564938379324870113967581596381236841542396601352598187035660532561672218520327214450427880969979915075645757642168564108220042075595470347986418225931960292691581811109837802558070568818637781518048526918876033522333752881948329114496438322821665426634705331482272227415252880579148120240395415100938280652363887290652534871322570349749664267565883902129801276830216649140004481056945501370311960286392948905184448041091878897311821658339841851284530130621821142503185964387896440414133033301838401554521564049070923245753514855252642627159048715988296085538726460106681194898747529326299779152204648553637898224696720211792535160427318876907822101165401660460128149176546381907663725038477135910000518116803597681921668772144290061790527664612719385548561735418515931152346810119912017826931728617016367868287168767245447761045267934145933178826145844998949284049951768326674179290533621094716749716520168592647730112807195462729426723489192505636752925686574156870870261037265201497564186845809253647355404105212112541889291877647045447247502696451697477546435179210337278973458344438517710744398813303202430095519116440878893178959993124327446931701695172495258662668331311827159494826336748177184722548345402428868774006240077704463593264785279415436614708886825472372823023932353104665944800811743015693928810794451386971121060181449336651148993954037921150924968670398472354434942195501285990412707389477789896673507228209681173652987456120330643925564979950432670244398004551065325628415618461552232511068724909219032496467499519884511882309263435408994134015368502263917837655620913207657975520130914949387185702029435640524986492330050785957456965955834140846079454851389569960369899077398530748006023009528618886381769425498874038523567200760483657400508989231701221585272347955777479558158456053277261305976984255764538906221279238944250926529360851781936404081804863285628464858863602213881961665334117577721200226585954551847031965801319427448778633728800351384867836020699339748950893745630676034325661666511254351023593200992676412644526623684847339461769651404694901595685329643075691539216195540344687833084541900498920222652132162074360588168588460539726403905159692686618636016128606747819431589620417945823773518946783447328530431928824330784048098629701092369785759522447262632442317257689237787006437468314955916795308240691977579076150371417982570399826861426302590816244332075498526578980411775920291035007634606544545101257486308202327296588799245022715275211883562997320912801569919587371438810665097813864671272600537093645930177073088032927837989907577657158087942650492546183446020557711421258060698272645822172495625400006805522552116751826387108793031092887595197206879086275835169288709096325270831028018986849628784528768456434175705915211809186927597838801340161580112034009787564998335955436087057086227927720285706440228988333957551035379006577747705309327299429657417810598560054990669350548640612315324675967523907037288901991152316555956839344672756799364260987861744226433752510732081612169104283099897104435335991959165274696757375124822562560689859170679158309682405301798995408220188482698631137208090878297118567844232283709947516869632455758736185370271602446825411792389863978576749906694829526773548606509639056314708330142874612586501591800802653853427179347682758630910232844411424886988743246524914500050564142166246408604205347096833582039296808452913791514734888005150742857722111799089708894863751181811595432004499700865928374981487578689442550808202050072311987526461696409472134086548857054728084213659712727282090535441310235308733611754775362334178729992836769308135747970358325752939283723032234375133831559090472700231645150035977977710176959449485224094716140840271492041663859812866284655582673832603115102890719385967897536898474580642823716480235053154481192101477911993565620882748391209599025341096963061769356674060760329098135107159319673963464339081924968632599363031871163504517515011764061884019265905911960594706638989060632447116968099249554112495575921926784051190271368715521671862894558155079486105579877019491963436638717108245075850396064640076356010302070731513444270664826360467013122692923173934041856610945445491612550478498423953586568201871374073056753255911336441846477590573648587531950238107466169349357849568968062946354753091114989185897053846659737655833774723952138322627967867261513843040548280669544002370941805135063354693961585572779149122949647196797247273874280611269006025134069010023847305017409652961757320089870261857129845976781640974130955457307679632370013468490066238597016262852573951937478531495030826100066715752794645176348016121492626384378397966168264168402145673481518956794477455616952395448457266517290467054184748584016251296197867102927655523586600890961418981161904775551618340141694210523382899974292724058284899748910697398152382933100267715217865003306741433825710135756550439924114686042293936370832651369431349270171215859836650245539684508825168104658577561891928062652855467113461178477556720603973997271770728519598855445079277704191571278019366306326095234410387226790820596409406562525849032029105682002421562387029825198698685678932048004771827582364348640791702831832453210783032974563131143354589586130825739353755072939489431758685117903505870790323979455950688212956831284371122972234480328015228694423474977505177051572702735676218651612751340033613448182385034920748130437483673052398609568031576132418238473651143753699773104414245192261077880276900783008115236880698757972386174619401196755887326345771174667992961304644332472275369732224819035366294171862566176583458015746162691911411093410365370572852323295379023183250140607372448679873445490446548168144610962931469654084067250076093349491543757059172916307879582446967416550125270011570121960677508731332456250579094800721465778784467887998294901923540911708567403216210529304740628408169871111000938026886693577677151261386361229247437951393644401943905790465629697008196042341944563352122571181542096016636287785560026185779888182193529377983918027315127221398030311154323884470092729515750153476033041590179520269811449517718898610890572578925559546744860627181922079842485198082971530841993540588614838527572934868914985264012330987176355225222185283345244481643081139663584543306241488971194776571511596809319600313278948033914727048000248667793695885558656871301542158630128612284374076010064800026275664684968813338016761397014259548767374175937673067935490002294085054985806700086310499729447202349604461142373119262945172742373383710317892700255229666784123552113065301038040444500386790355748180634365169563098112973922056976866788833958244280369538387932048588131378630745553683260951615946966403162553550341476854011585729096227845010931778086434332211221317426234880349245421095585019510007273264857836689263063967255431866369019215292048845042998483915822934682644645703072200222912005354917155483532184105767849673919500381546387353959033025562766123840243301967727323338776701629642983659355744946790334291348999499532587872348632226273129612040526148879371519197824105708384336825380028603185378795696741680691614939014239334486237691828961020439821653243928461212234394050710487508062716467509128507637022622100355844830028701243819680714535960368621407783644760088799257117031856904283303175032907791782110736141646972388005878883565055215549877982881415120783678931385735120693658824796810897528322045360629930330732158048764433781091555681035913572612259312063140430298886160605219295926284839148342765251586144205022885168977912071304850548500427631998458876584490313273104975965068430089191890253044553702738294009559472219942969935105502090971914258974900307563494516210218582185338526459872123154907801745167842151698264203082580943621381851882667342187389630305020686254029326162796256518276959623498408348903708782916786769789503472403325143311449657908059767675678143946466729044311772007481653208043504771367735189446860218014134381640488880058037339678851835764774986595626046067949592106201357285326238437604377177663593418149518504680703896482397695252699608540680811630250775718166939132441803688556960300560923349315521928240190973963291972015348018511102622265512417682618405067305519524062517881054463772586046105627967468269783752110518227561272385661712144052805861148715696568685194690508405083342269310428609401464344556524675724744581703829730057505236091631198079449124143719042025756938176720641159174290578035174978043491180087014824238746594070075752375382279960053728282887467295225358732366018413430650173265526309412986507704379622323337136523184277415265894957761527504571493872823046928881371570486401803223678759038131246669339950228826161866965516272804218995942893737062482548024313640401540170546861839527962153284308678961294001665025821432846384019712912238559882810867133954941994451444537402556416066590687622027333347400854913127417106960014410956580397223595608618406086158266513210765898232277309870691344123047672025124415920852897166661862703968087741833724414612155814537878590947307525705111579296424528075960789432659679229034763635370862554064364490070406377442785851353716832812943292847778440639819256038931337491257729349517057594112440207482507334957159214207803276739329257961146843009417298768606125042605545312349915115273796793523648503402202581786072515042585524155370229118782844945690802926417810509072547902710812201411915778456213988319779894751252992621095516152301533826507307173379896791052768490986550216195112054426079738658272568513690275808754491365121144325819830589542394430451744739811788536729143012254846653564765560468493098940840604754337162666910252687066796951755750203192527977195146581161947093539309860108394247894094440579735661385936744586271924780699538152161809186139464758469517749744186941553720654582409747779635661087154417111684364983612888658009869214549764368754259315641352426326213759179257345284340117924878637374419911432523795990605339159449437306734204686912912888112574752675887114915802146416581735599296047418148472285701298667161755553992153587050883283939279120196483960355295301820140933283034050011090097297819966743156924356475082376870048257796421368559020708306636440222753545221708490445959290065735030586828895435474985167974418266826050295464139263997944931992319196170112665787281728190095567231423547808180837534101066554044722682996523738404899959097950614569709308801266130875909742426622269750955839859488416191378524443850181758133294741400087790059377824430168954339735779104205269444549649353104893142641695711243593539131238793022645427481772289515421664224715937596208631678077636628048073885726913072202724369784934754744587306258609278367681078698400629877219276959624596163300246772423631245238639426459335215044940531275819422239169376277959052001282529989890655434379396446652046499982807322351273767631875283491287945746723319808313379201103761305982817028940409695604310324096571836431403653165201889840158516270272043726179267668445342676836451968714702605316232435643521775664250809614404014138971600631436061068277591392135586732733414651779449029055038658910564965026847034015583699997862709445557398860805369425115950317219674751386104736007263695376060184665730637279066303476073967137632297994112561259074198443426239080383367708472948112263580712418672942522024097704595763278872318644801701583512407649294169631396728185763765023280551963214810326190291412376092444102807855828907504596941636330295725155866869632372810610331377690679839523810679183210745355734535717360367188857306629292492506057218001212231915420044455617199375277995331682341270125423371679512641318958139435152570983090703453240757412627503713056434352918790355586235426383534055208573086208655401193895888938390323974870535272967598044361612956434115987831555201210288682775911649947397725148711553601402961321057290355446588103630923630049887881830612331702809372319168421359761010706712660533365598503648826357165528833360452317991262293039335014569506020490777993130859248244675303874807889785019523287150296667821993800735622547741283790534615255958745017315699626360990469183946665933192986689063816281136865546285769689025466498780444540636159893052635204721363711869278028213995258346585359880632467606594146926500105258079425496255651002024364577476268025527239882526451466109955009500010103936232731878516949449451478331820380552014503489141494751232099709551373837848971613161865362286718343384536822308306494600483356006066819989450937217104449670140738165237306547075380514789557106720539327477228868077523248698841301684441820841132431241751185435417641648849769139490548565697100317183598011621760974401111362843386488635181185653033939749259465806568276441734648204382994245313635318140547751863556204999545490558338707152163452724601056700542249670704667036099163111154710877001843318392468165340027067119013582446811002940969757846263916167443437786647868033616646415203488692566676863406640018158614897030445185493872962680184712976075763967169157498678348487069042328459258437144771439689221830944337707486204054417754653970767055365794286587492534906344939952809857518528015104679782539849166754609818431821271159391799983951062137840874865378562016909475011420771025826218269120758131115412441414645863557726021516282771869073704653316571397039622241844734624995356833130306360523512407863920469739521742284304160967580254992481747695370599715368816430771528832029057713397648728794339711819896273005246493329278844993489617015249027296847208135249098301244591627719119838183519245996754507920967483377648768771590631863853333724409408470840353156552246922822003497516782439185971388146428370592749586229914682271010081717437934031722073465608864039463473609320594825061933830907270700229395153966081366506296837908484317908242760539537788713277766025984709028331512105841093619518219182475269991475132548284116946281683579653770667390004925830249786368053964433448683810767945913483033133884545679745558937199089536064560553603616235864616391828536521628341694282403112077881406002898360451653525797858548343015644065451439517572496666662846709491495216857150679479501356310759189832050861513538761022028049661466775610415054921188022403964635991837847546701873249182571525122510778362295070926249460783031046770593207009011607051987895421185646131915519891544757851748228179041845129694760962703828160713536413453217474055712287863003535242715019538631539935063829688571090236036108097980201374578336775072375482388647682095961423233679041087221433714522629127315209346510995701932803580823846623949251247582390388587060768100253633542980406564270824304333910206150964156304793170480872059978796107893654363506763831943691659083568494411518099708732695493543081536316552109331566090971825153499113885614123183236225021631034868951274611099480785811335357868049969218802696590880027349818920618356700087037747139266704449362518377901046255416159610261735245457742509662272940345859384522478595132964544987772240370549969251865833030438793446277482892119273505856873749657087566087287722330720162298750629724309554358397095034116474177100518210339357084582450838140758311233307310850354543082957497082465473176233920936772949314107065675366496183265950172384781593603515426471603398149155520840961014135816204010745553465533174773810878110453834986924086371350385946520310637472144069533687897664522035606559328427078354122455455565113130028835175833956934392384607917153796832146563816093822426884734262985495380578509757923166231163760871599855912573485875079154197782397031806453712831617094951189010464944116491823530912815812329293304554125711194557251593387916549273835640701440589860344080463094320863269555711972089833920502562599071448593382479863391556372391868612515941412051398129351509359204842277670564285826933242665160291093858515811309903725490691080848489734727811718651564085040402805390588203369299509456057478774774095252863016592563375610189248349219151499073169002391056063808619406776050254725046913898762109626154425904120557633571737441882334604682062583760532947018513070586858567684670068335917148143098028375490455339564736310199453610019440718952925914983993639757556930639712479355717601462657215911250077057684264392896158254826443604027799325981403119202704691567328273402361631154358096820882009800300194560513298646248537376892869395820023365671594556291480365646241545037292703281492898508372902464681099527993209238527076114654906349559252189280226626142006172278511140237976558856446288135869385072261283358302161637092076131603193072285101785925564836568188436671751259376353673357958953620478109976960318189673261271618378014297026006403732966689205267180635184537275992667800586529247474256669326958000695209251205598798016616144392694803945686021746418971866164621091632428290091598438533069257694145286427721188109347797531166793072897148569315502491215416021896653214056391057086114121790687050095276168919536002524598021029999707266057919613912415570431411003676189556233474321989398879117793673663744739334010056207686976014662753793337406318617892617023842351445835872816421863693846310314489606782696370376129537696538222137523498373887856431474659664080268210848257304011568363844505790076299358841182911982035623526344986667023697665740707226552594281548400627253142600904586997299065332616485468268566493533408324263301638266324879257891549418936064578652299092607284781511293497568247630149350127300664976321004469588321628775894338722980429751403500351207378565161989283451927517003420370376372882748538884669942915149067850839194263887157978527554596269550365059135460319531759733945122011230471897307105972094087622738093086839017794517550253186651432745641358973146966434355948988875157304988291273163244088167369301929467435268063389976132261324460704352141856640173606724969628773621984408649076357369597497956145740302576837784444395083380385427734073284972067032994494505836996759125421563626706135762912470519486667533053860217251404678476940123325528922585604748129810014951974609864533237738322450096933464509969057269654110884465413280309352589020976731106838290125140318318324177563540531337841424198214820838464828717229199174920020811512118988307659773573399683274264231746249401619612873114704263772850909887343314004404893227846179920305818696353153620624181940380655141100776317267365816327525273939762772212387578880767027924637741991434992561155524755251201415399706211980064837801270131867833640510169203623390006397834264285105351217100603042942123717467480240369858054248606260568274322867805950120120816764939747691377282808556366106974383496580537327646346577828971633872480169203156224764566751562641432597978730964495569924291128251087933525376500908660251382689012594613387050802889225762148627087717514374630099758455189792172000160844886335026306680732583363069197198189748823921646183946920103677967786420522501676701388787690371776891740696587660849834601492203039750393443899092259407192458064985442659209101074269709498382699022305272546321235687060394651277722282171549197621745872893957360778476724958675407291516949529592128008165629800345677905977069114037201519417551950018685448459301345131409268928036955159422039722267081797257574393058763202385770170355397335809730475603573722539237092939879212107667933275800110612411055572068746810627110140568392414833867280818653827632546764575986779142101246562288679085673067888774994879740649213160054150578389666064251400653265954354234343934476611628836478012079964625672769156693757412519650042175014217248586785846973120097694408106810644059737705928056964256767029850861543631700946915208063855272362343114285816201593858540822885566136931537813614732033028844892115198901918626233936001207449561512320914192666111477674096701358414452137484086936510499940042602304059862996346933490838414276167369877990657933900674382639514135943136953631819346572651518503312554656019287749645418001075066787155171284348870762240020941578292306877759571106153955218234672810014119375950536817961943373569333576811652627879293681672664737607916140856688158904131143096616629783403158185645342098281045009700494497963080078026041540337994892292924222817364566835334651279273233304735742133742477131600111403040308338076273494261188148821829612213967466028895281220130519222449706631061780872389025074167190575640944909304979805505622224447171958069558561637119636144399301439901933276819072365774790590970331136092440696222028889478672136286161025418066772736786696745731211774329740785369262115878122801015952222603808246312016910626374716762357313446016777328949893875836919981814224505674910038410238655199651081659312891145129731046725947902118988895342476084348539393152252581697331221132252634212317172420360511441695345677707523503670160234485554471143306775085978211521235925315840496951536313225664320477379969832539611761461517643895673958532472429152106542815386592788832671471327113875723800470002856833757896473250061909751574144320977939135798636776685358914692833723309328606834536356785902204538068396056113467973413171685134192291788468236613947749052218187661630880623738292821901007718195783051575441760051261586493025832690472765419219176554574070229832193112700900239250677692142799189698279051062914494863811636787492004974731309671236137746587675018262877219406935625927032173450223771416361804433023633545085656837246107080786292115807553049636262553846354631424470257469057858931569650786345527446761921815917106545925690901205375722473583527805197151739496100401305187894006250720845308013197948563949233242156854923620909173251562623565701547981842369597795513342281170252299007058968952816906559310226696024157490852204510153281185624593561203752191864218901587802248248848493775580643629133385557401925916097495662622648994896200911973514934370219949165129457487996186125194589570364390328519447100702813755953249613953892543217146379684680070357910668511170820118773677295531792712396430956973750312441158183412224226911282034384322485652461368538265013273434839449113244264709210976861200245120195011876527401317846418884156181129569217956326877764132994184141937047183880008446445170234089239972047316516797675684711415143822320459328136940772364794206305907573333086730675998046263148137436972563359684779465025424411809535815920513945391324979809814962228870603548964080590135724591446934559489227323654341667946054450011841009788867976381280765815239928714852092815215678027571264560578077425595644011884496581054206276355493873684754418255983454346266947290459582767658494420528078705683878179881753494423715299037455045134349996080195903025427552960984693899988881462683365063891110018975714094053396274182797842579524553440082162926658045706855857351128047289406733244953387291669604369149493412068603910317476878068045071088126357190647260855744060784507907857074875637976190163143564348860126521334889438980497314704964924452190320016776291457618909364719632370014034907529007903918393578466071245487006408931952157989693799899387767065791135505838111032190452777062825195722041940691994322528942379262852561243695438991644917237232742871896775968442782872888942480444151921258074399586274180394195952989284119341481219085865994692973722732291567753790571477952266229150070682543802302458262552649411894878825418714350122674784797326959875158767912118116470669796736072614485839950853660355939709854963998838892896416982158899874053510106863581615408075087073325245006147572398176085024175231617232786739614843374381626537766491607245232545362748323303652953065155973988252887167274684160840847894207953214324034733267371175993338294100359570046693146158171334658201318401476174342969944018375165430053679566844825880699434374169315302290787500322841975766947987717096861294059258883639873381779621235229598804755819294652860553628472794414133875491088439503697635605170990025168742981719218855350555942420445112611660697172281682992473608195155530294989293615289687742303245854910731704658255076754808519829547390382283492838567062019357224138930874060400820850419951704316407940497527903906678679546675392312307030161496603363104835232577396285614898673995426408364748850334333783869325492668588077627319133453657597265191755148832132625978085530461112589068566382246556152469604470683098639312644002199343443999524411981297766233749544476693668477225193022716302689676041133701735947968030529026679226963456241734766105206562741803152688636510932166197203938820955975207068875611137885540612063790946159969080536221343214799865671951655097419428043410383830958184280678403071178108714559461742119055306925617392761861126513390288580492115875878431238885608534237407461957301334055513370694489118565566832013454915573060117913061303889583582464787663653011899934396223973100992701981702529531507374784892904030967856535098093011421075075856346856086479879626505725749499542246748631767622385625627692384268889667700833400989732466408593725786582203827732513733713018229525741274622349981480178661132040124928396707687034208025975356083682438521068775678559558572996126523555435999029424443238632227136629441295915312975938068978527801838331594476676463991944759991686687428812556570910345463288622525653582601070218092153475814182917718917498414895201671618411597858007548672274927550549044965015771794520717395613231641862794233680725414516465575392125079221790963653224905418968921031026849454461610011689448568767346872536505186270103374865796223147252876102571019495361844017668568899274817251160706056457130437694726025187716915653378200848200936076559233834135617532315555669807629141883529823615933301770642377019939156687128455030148687742213483610073414335963076645644560149054908372074705248200219261226363140487692927136489492980609334081464758516660145334622245093109787057951191010465996622940146671221567385841278612157628041527899381968113726748139061611424157871627775226320438244467933778419561627897959181667811859083315713453572145805551644340010618150943448737384658977838430409307375752659543038913613390388967252327711562342056522176682137324738050910711829561014668332808338466936420703010909497237935274000856213872497749833653206494125431601970604559221667520350449546875961231963580986147828495596245096234413915469040679912837252662044053411097856112018539695653887671365762934853418231844502081378512214786720524582041078627807414404432630384534378985020805243862313503165111784324022939705474971510358250592784302419146245523601845211052595227676920532134702264626541094427064630584429440166872842550867248656404259511609399003623377830698092865072823562936636527780943772668665366834070408489457627105605725472686278335990611396449751646755598522663338111114042420352583058002984772839355566368358494398563146013555480603576362531631416043463202425799214118558940923498432589822842277095081213486550494441821337150543990739320683877690742356192075950830721879658018542912142289501728455746514594172285183585537271138176697527756530393026159526173669874626404686537885971400095327859711838527405152638017744122053165138986572884053605404166374737419609458337152394384384743636174380432336391585321045117626359555107488502878437247535376578324841214562160989772297088025465761915900264183958158148975534865218884366307672891458950736160584882544962241931066878214769822632863834496512022934784406018996336612600756409096680531087626412800242437238411631761217779940972748231339804630395703719052992536096920109016682062049299036462233570421948815623259885418610661936406677760831558408628750761066895730887636962731136490502000656168079498646335009801500021440948745871122230272686744893698150485393715145195574727005284222552767075831749088043637242722874937871170727699625542202250380580851467648510230617584094172515134337674893942792679328717503389655659794440754565706547917168528833744975470203718595946025551720376146082979203679031142213387383872707637515841923835977809147479141101922450751990925572615360888419172291462616542856715548232082658923201356026344286341965489384966590657944042933228244976269887972506558339823469698571361118118891654964377713575693942043568093082591898355246482063653373803099002374619896845921734157377515696703790698808406056442071684507245078203246173349229034452894432058237227174442975752414818814798615326196009964594242443882866749791540230303520598747995964174684216815623223371571632760615614055176820899531465269746528107095164794838407448327313078398397506160725113772064690595542534070446338757185854470244765911283495846292330953339332164867373296343455444157720005835147448747956509522677736389416447831514584196620970402222857332882300191637546446690305836243881380575427368909800917295342147855944370533049317490852519252103388572462813640167067904634072578219370907587808188220698769251228406936387554222198300325647271000998546256449675429959413195864226297702259063919803089582324705175479405131140259621793150023994596336616165496040607351262267929403446663445898175253736993531069648710394180256597445401117931644201754112214252759269430386457205818182936474098487151826696390718526263840103835034342814460869914621758749117396735546875405863132728261942115782694432742128961087115352517666024918642421651636738522312940489750681584037217003404383475098527810009614242213016183643213321678114750399043362258625684091434129534272228682522425976071944471539450004121928719570526338577113037566978093838156339124690046768151607795804794653024500967095546854303196833797287064301031985436371119702906702710016846620352351944721795729500852425376719462006150816285096961934357571102455203493343023501589450756452584815034841701971263148466349973809363060683321086731481276179266793832723084794636298515271304462571294225299530671043004871730071276280309788861902983046824080347935148333747986069615856866702563618387736931249164084465923803625044690613526248450878145433875259620094578183308535081398720404672170683915950591916133793395139098898336399374266142018277324956022501987316448753252836483480218985295752431415485511995609903905282411576230165610741700824158418720684791630161157291369938009886282514335340458704125711622179987959968156917696558626638113994497612655821467905554432973016633279584766638562601221146477534393118576741455717541233574747905819708646274856260928497483101773520436748151095698121350071692119013417284985340571933937046445221029661116407830254973622540513632247545943785760984286458681545844875519836581794725537585421648716389095589907545220406550381624012344148564766134860775428194668774290904217602592314208672294394960518833593120318092960993269782394924616043642887016010129537303349463488594261957271120174474561237198012166828194193593496006087208113249136234141502457323658199944294402077108845869879879031607921015309935775883557187762730899069303730369011057757289468704773702395266945820691623477914734468254679642810997700482850150797701559778655977445442494861360428646329839101856535785776609777622869836494268376886325201163341935394138862461259576211236725451863763941103736425192886844158623449923702253473136294512022923697293320497404122127135743405366159308794785681977568826597486409612317214849800277325137228888619076094202054469404861400349050314219406032075596693679546029948751051988849287627570156321396933095993549091594841548764719452554579192702855910682901806331309492117921034975548534575327571439115807153258300067738108147576697153348332178381248157669641769966583964964254030045939792769012766556142084861675917626662562118187138014642671222050208734271042709688631880915617284653175298060454951017292800426896475335793042686077884378999225008071535107977031967461881950871413573178949530286333430502786716642165547080837846111258056242330643446479229385919282663694090008764328386306983278995783168002388244822649718141274601733823361746336573702933042249947128326542925536818211063205742028769970794944276138380368663890545039255954871652563722094993248391927504953184610183439599155329392867203476920609925937866520163499677701623552601870107633762355581067358277383275431725890659926340752652679217785139232318081836973453858659035505752661860090623423501559214235130413101645880237565778869684685641980614194375190261893145760087235111898493859187554575230474086281340368837201671670321418172151099191790479518528892555007320567300363867604736257528717669039276860917229833076088476728437928868242023846184218026040591175060358838987081339924480033367657566047873043873725056308573242286100545584507708505796526552459885726897628124100039789715921128198486033147159139687129986028605059348083171178439616470772482584926276980905553403537827985906366310374235937153796930269812344423615621809312941284328001285815090164177210703314996964573947355115778348178811982739965264736238319075986492207407808885304157728762279592723558089121877013887221916634165878716127184245039578870181774670223387711570485201512102399135812040339470533351017448110792369457131916917654674217359377619131145806654839109983212985103840936886625541197540783357907206131449846012319586617311954738389118602394867622263919234802258133483194866321080314894624909566237114734813060051072866590369962323432281435974163448262414155562425512374804347582225939222133398098179158642667153535696781673869511989162757087069987872836234501302693233232273865771671324483528744061056920731311849245044815056015737495832667015740138631946991512285900146998278781351436381810591767587817899950808604065789811145661949929543697622580278541421349716867393566808999406067406824303840166416407290318544610729002827480635432658861769227002502387426898175838618972302035168914648251123004972463870317560486251260223372611660124267155532246167116352283622053796005820273234866569411852886244627191918401618114876359184404226070245493100327809612128557784327339212930296873184094661331332878710381738745601485312514923416603350388409153091226143254241412715806929270421311068396400585255702197421429197563653996329409719373583934445532092091069850531363911086077602840647596437866350354320952572481237859370091825930955847106738080356051883009054141301874145917782486411957955501411526780930910973023428315822701070364899203131596273198945932468280055408932709415931965654524256647094270211000371967446530939511862703519161429516594579433463996535398058508349275923727469894022496201519996936180525696038348049758795796570828669951618431430780056033224459174059125912466369471287582505978969666804070300465886183566157136293027497909117895979397733044333896124153477833170876196498173448918032061319903708234588485278316378812350153741309984064595285180042823003124723778225502929297685390707873997012148647792432222694638033511571740018332723119726873956683524379985631917105751140825474539975488177922001628181743871784916930805944998903979771925781483767454964515824904156612343131349816841725046111039853190164375476080601311185001768534528657857954327640433436371060507163680599972929990275187489460108229909442620982044928301183791724050923531647951330848626535712549201070452199850766300417426051444950732543014256010688881551111826295134103545836402914197421837863057100970652826813897316035109434814177378561524103090751552469599299948927089846605401373979204971592574144365358548503133540108540038499038636419954948907765667695736329605025156826766005362034323018535238536110734293356924649351251795329994770615727224638694115492737676095144707023220278268051092553121501409736461510004716103837433295800516193259232147850981598798826474199294769022267055278239054212396579874870806566700214969012898835363448978913443246285371962570151440487387022744342454314377567539233993636836848527306214026470640448847008173311850597845053967100608217606390253833687536896603352507190359648527887831669479545953787802260318330332860981811627659242792339226531318762563332860583039792667102589642553913437901217984180871256180892722867264069548379219285951534672132518466386428874396632276062608428843161938659860949524140266581333754992860000484869041037278404869169375674854344211731902530688293820727864000967008353399040260883917595789622030778280439733163147447029292147809499710719012474275832482178596739867671560603442714339180916079510770469287076303290267518371094699895922653410074995832654221293950282756300851427510130900618551532355157077541272120887289683782967138316231404427764591002921577584787439523227657906429194267224871267219050973617666160060599120060011073747907592448498067910468956258934192323774055862023632803396620471159181935067044601168598107579701118539932492030513639077105498276759083360066038676317212770797866444054435763213914126534311597012130655832716590876589542066434468662971793636416255481900397268380418604428221345455293806833150438276511004084002393790212658679128510227935461494248232233931363323014407559367747056885031230016668390166805773272411079504772445734124315474391160402463879357787832123490826963886339520943693489381340531939995951308491325147964836500961679959649201791764325192869949381286893486061465449913471254024560248816308999749153494148172263596573503555730511201883669376148352660224619424799063938635924718358112998021871909846729362956642284700654125829797839533976106567298208864396225454313650281236738570289644849854748923839907702777012649816548363290517774479526126480866595703499130682507339117257619224425139428145833961804413745204310881409818774427172996054849427421345852947240456007086713394784332596143118252840977731854678855235820521857938591529269150597831814662861914704534056528697076653659018244176345739346760213410199007830363980700075893750947096753099095093985205767299539647362446261930229849396657438280321238359842493385109026373661276688404129492358597362714114028529091356229794995408566865145894183975813530323884143674624980109365781427815874416384838707556485008243285950237030350675520671162376069036609826095744013271219163106764858302263785787641795785765109252232203950923602660547087631313528966558859819366614671528159930046383883870642112127955038327111424260494669098770344890829639025388916336841482405578326791208342612333290015374319890222956315400468049828237749820260909813417510378749458631826740175702118800246822399259842227152789297652935092977008846817799903792950412490785821821559733183095825542148942783066687555362665974008730994628388119114900136681406003643989753529048504564205307844724178862887974774067323134085486782689219570630320317556447182825545188125099227491260746582291716476783341194066834062262322877559257526235704481686555080580692124689919356838191151139890117906422130023047851811669275819004097416533677991447731201949410033444408273287098502390550362257451419683148643335882946493979003478448579784991355943874617554025008565817299578448806529231297363923222195940204573137631667660785588376668848879252700943267279708822388391290481056742183620942211906386110913493278299484128353795277749064317019508600272406103332408201973926653950270719107359308933955744352674462394527669848242853086383409148152027157137333703627377124785042455492149197236495115233581723330761955386907039379469464495923616358659264004503721194757479114830965803595865136193542448873344712850534972352634135632721279042619575785683662766507786062793811854664452369718582611310797260425660542187966278291871039060868865441613601069771970146036644676261881136898740447113898281698335198706987388056394868371355023590789697049919710760731391990326845231587702291142333853407551892530777543022452010657932204202421041829382466122356842824594039245280587414346676481039606134559744553199181459899634100678676572839954255906626488578885038698870628592818808486064425252038271514737204395304548594760981284405145022098871468407343471610193546323052336984370372009791707664235719868624009526113551326977662949106395865704744475743494589951859542811169326565626560758741243666794522598119414734303122527154218026229233622266849253933891603470058769759974522498020632413096946807676925430807680122484479182648420119711919784374511927812946884348766232309262476119076099770904187855096332439062354724908947694521738427044361492103116008849231936612565806120587629215309528224054233642684071046384289428990213040769838864603338123566812461569105998148917382115065267604497193292757206256311969264652058134115609476794302801507415065903041344956534484537227116282771558527798206411370534079524505180626351407242825204637896447438481321178398310256161624831865326543029176560770647792175441332793150054829996440350180692638310315512793705267328973482137196230097408124982805494940158138852516291819365240595255081076168676310962044171723806497563254252580577886873794631979573973494383243925392805976261253152914756746473523418311179963093667203594070421220145032660286794806242756602398285218400117913435591999104955012243673248335750804326504438921288562568310295476790355450313545822455658437854530832041212281417505085039599225389006457468213448240522773722575452743942862714554860205437437131276557536956015358023234580910977304240287550768140245827020827169627201714009320367449469577567122309545512338102827884077001141063786534281114526915742043592380433555527367722220584255557261372312783821384932094079861998842534379511196582826203280888004335587207711687823921454514303942674630117965167193087432632701232483905135934620386783153759903158392065590176803517983932383908837202763775652814570706330578690438787392686870173338909385940373107340329088343558844983703576316032946262482888440711863664108404339456004830059888879680139998736150391074819225828237494194936786734399443407084119370592367498076786215258854108077292320152651044433963204993163411999823045482412012833365044129259852402440714293304167824833623547517052008196711271007679132707798415738131523213720647931346971031372291115743943902244513233115203669724856777803923016032549760898092462899713303475025785972696076858367204043195116234915678536597055951053135686335878169409196140917503091831248350915284249649835256526564407728294900621797589031878153506383273818538686751766047901405309927021125116835581271982653082710144497931984109430390344475955031961047131325244842047465016894500365842457712321940245007813811608281192695369534761608071237462768258729337805739091759057525978112004884395886930879684764052663646403772168621521754964957211459339531316912462142869260813382851765422811902899897995573410288771818259012212277498474778983534501935169959474390228553965304390856850061934592164629940197849024407546004963171615876445932451423787183189324158499969995285517203934900695931984473256764428203748151345501188492388478869248118347938489705187450596279768846732433687756594622573284658794031038835741882064166402057654591518975780767939520799214834792809475391109290090756430471798151687837217431738649661656750976948000384227925510010752496369815784799400625549150872996981127004714711303591404294523977184319956717628375733414345182071363212106855916535892355113150915682623324940885044951200148564288365702535696489207007899558472773100730728042970817291008950060317066098082258802137014571311011959729780190173544550072949251904642388019374009339083167900655059360180543003358479001108388217249561416578547662888196486816048735802713333637430327937785354292392677070390209724224593492919321833174252814751613518130242400580493168736435998984614358435613614659279457399906478672272204490175544842569387841898410234080707234543154410350955968067854923590548888660593427702705938215530658602221124285668886885028938077806496733706828286158107439028828127275836198644573320738540094885147060763938276213106457223693275660185440935220058811456486290600414529958359811400796999700433570313075369443006054761816127097241998700448467912801701899812811672531469724606421245718238940504377895951513083321967884526286084189172067807034778459011191830824950058835537971864009862859987549021076780580403807668382091443660254765286076006116416461276712517873260961932279880492448762822469994349209094462253923574637851847856252098281312772807419777280675083154902592567452473900620751702534049215413317856064820657868656430203431139135360136762757544630767441841493092620540736685027266853918807360170184620410092863412972639465958449113211009221253904795585288940160861314415304364112359255776864467959089674955221950047150432743724338062458715177255284167380511760392378575095278450106403982460878177646288612468584113758045675304089067509642631062636163484181782188401432703342777771743767822660049464090010690707976144185225257598670166575262003431960983880044870259113465686433116938849045563780096022843119505820675748146440853045532617246911318061071866841865758835490884001559826377240320509356654486330811790475176032013734333350609788899744102493247027767015259925912094331770204673174704945253268478858716091930652119374593801497603132956232689138748217468644529128550708990970391004111302670360475094313970388998314388369795803549423949460263335196965899946204693729609582168826098779377857924421945179773727904886439068129192262043996331336183225775685897486877116989966056019388038849803610681035260645642640599276941652912588434933839843301832163069862226485050133992734780909785976486824717170687264684724800415919540093576389404856318836898837264383430354493894960841039062831936827023240692893102992454174323292016949284897185301476867748325059881358902820436695536482604535876873739586240297350392064086610922197813224264774321050010787973239583369754659258135761569325175093519449338001351346080130477323303732269195490765370813757453575461779703955825563692717555076961106189036002691005539191805531761258395041165764991227279393186984262755437756513658997232351975640166915638394548935294956622644945370902886035575186462559174460749335767749170326518725152766116026063105250538244802603344366201840622189633166909354801637534008945139354646187612717579633410047423994969375482047994619872697564802908565222671278096536564922675303018519679875219412987205431959637222522358722383979618028928777143882933834475459586957377398558640138194769715043054567700276054193570472354242139543131396200445024992293840662893940565679511512191650296354623656034867671478768188221257913179224535824312994600202732055518050751140107713847745287834709247288646165991657064505763030324053609902997765588905524741234391483977573758746751188737498381931217453550463143113005759006632255458529573361995212952915333838129402709173220996924320161387483001310358879692770203131442794515991174325430348515440795393326891784004987462156620268875581559603139017422844962245155260566032593739721632809998353098787066860691299869091245455284550037063501940035095169169087226408497448879256748334724226156440776256518646207911437091851888822853505981840688353266970023470028378386282313957129108815080823962957967742405601060683375936033473829937890083134049631082616538429976035090130682315000420128062165210641578220813126753711184542723424077884881718490128578683551518031288648082162466869177022612229347902110975492768218172941397170663888662690356416745177505450309708444287795003543661030529112899816508686427572690044796908890812819991376625400587516772863342057753641757962117644595739478966652435764326493254972382962340215761232859269081474637419958176493606072880390798000382630747447579151821434097940794990219209842610858854652940515790472805496823769191799825653968885514476837732490064275438683466418438752571635498531760408735718520216510753015073114307706482897417213407651807931439605892377886128397561402678407684488837629531916341111325527642654085141732178118049601181848614795479840780376104942843929350650518702303608261244909742390779528668372767929667789022506970657259756043042832261507839102806817369141845445867842184370575928630733814358051532319826806549947705713898017334250721281631068098226971764544583279189341055375818541826100179196358817779760655247516187469530966646601084731194263650430951885041562070999565097019248286833654604139302925398028781776866844576224330064371543009346877770503321349575035645370931960615355195425008079117354809230886786489025339154840071762025512454603421561186592633206538620123860164882925341346990569028318429190374974341949070657801615354824508236285666818301895063992561987865326548249908266036642374499076685690473061995934033901801893743103136947332133085519829253831544614122257183913825985850506734671456585648478647075189956807533263502859668931319834141268811827861042757272685867247080469564754720973658916376921991817157650079549799909485499715978915307428885503833040168300671869210836085824670853475025833171395757480215702449266349386904769945122863598105353402564905028054633029410088111672185089212860656166935886995566858125819879367014636246428516615685940695304069134496718595117225194193184245716765154114941251308247923842492490364788312491283836481452054535648315391301383698147862549468785391234973905219381466994818512393154151382117997692634447796236738011868435725957246967577879687522861108954599640518616393946217544833893394072600255250055226004831572594686067045335714718421354347542880924080072991781723796400196948144814569697356362421213474375239052016120768896065764690137642898388281850618419700254646151579878567444427071323462848263623258768251883773388948141091578007778822141896064341958205317592059983436619305881597828618137859843648155774243615115091958733646761744088923602656184499789076408989531302395039799973340628535820076525626320139919281320284246485424012866488496796170026697082403203264385672429196208854593614159761688755098856400872328467062553679143667942808687188502084460120205520430168731068575464890268008472001110358086985801143358018188533263066594570647022589994828902925026926238942415399430370168853129800570470052026468928691896007980133023917432497118219927646395157475913460246777725385193675010481394239198527667302966959240355960180916790703775475205295883859854029955264825575715554655742084338802714558329487042948430561240156871688676873564054514645625776829690489687304992898799050407717829887388630082982453783175809824959925269377541219832547762552990065380678263093843542473272834525206996651541398870924487114558575280575380481638467340914667577809804796413044074346531940284582807760572060142461175261641649548670577997409257175379806914914835477370265478903000019510902601544966337439912694231154766708342622310316371919273705600938950855112362063181800804192352494592608291733644254806267168069997797886273098964452545751898260983097852932089063758257086231496637207604279223166027151049045538562408982676860681801199760444876990182400163878315861337827952679184312908102413912457272544036856367327336393883718218830792642029166086163271950978983813722240404322964180478569012130464845657968289714090463536845137319218624976710391346283475813915675509135066895071557008581960496154219441663530879828160260949174723518929195279210198747990109160660914500735276154641248136694427711997292079212027868822403357958921131462185034722201827854538385034929281767481994755897544165207824951454768521918107675811586561314537543417629242308635549650310410164319761272377963810429966023326370662431743109733550840985547133662907021286373799366173283598265793349220839339340542491901600161488701422116197293960778402618605438682322689819551725868464836088836341543514696197160514974545866444765060943332331652841642274732085114658709103917616662912209551360492970302626637479316965002478823994972793238236848426262331537660428752694037386714345475844166323365940697424830879185286451000395826651398737638685575715864690592417966514024124380323466845004035842249244824600586358704645709304583421197922374211537450438934323065626126041559069468028796989761752093591320409463105763926845600152016236292343976172541068126730951552917438148697775492516543073129588541048628929727126692078244584807139011326498650853419272347750363930772206291595666984745549831975509046387116402719650579145480286475417188266146096417676050830681582169831117660032513089767707899281318571356890424974639856122845398390811039692211883379196694906489481501161073187964128234645109004282368360022105200246753711555573206024405585549149539859474339066284033617552594428236485377875221437875598077025408740585219385515035179587696081279130375120024711787916595387290901100416827605017121752880124249100209281830615567985301960699891202806192622502822516660457734349629818390773109387004066376527275065309464735558531739485931315306472354165616464905370744347731364075202876236139158864056817685883205358105586416130545923067631676442420207619622968296844208154245647353280856433163428959981099417204326910493879505706783412251348761117453823055882618172987197885416110668630287571013418686306720663685249213525639406198793360394551670315593296665212586972890122340507158319578677920086919969446783540675301468644675413484652332217348050215588636698138632453864992145314063713959300220771115535606165574550133486857592517526320942662009530302917239069040737109194001593849787814040083923666120992105057963880488059731414400225423486989458895297655652718143400951801429525030020773445071814994678385402701503769578615248220256037213290432948169606152607773041088617879296846535120124706494635370047559958572043816886785526635509874676697707555227601756641486615651258080086320421366012170047034020407870557763596679473334648821790572063407723625177927930632639798998815357383937174483558243401888172562174879050821839305803518920370469565275495640327967271269426347768708288670226331537796276696681528241687601185409655236136000005857153630696390698260133499433053691994461909592978003223455003311120953103888102914658962802233487332864529918614977604371988984657620562655942753203155742698989300514437395437519087779312138232025114205889920741838155505227844729803663463212847112670087929887247120287870749244353805936211799172492869728112238770630281052942044669497228446175087189479038231932584718784221340050336571523669656361740088567571808262145650224649001155879208450824000556230520829615349155866374930937163013378996004273745717988145045578695330375328135383582445246625327350752375353336317326825174886533712359070283607131417489393893273036842446347839517118032991480173910797637412433488704874540446515915875628234536016191465190891752815239848990633371225950815311900451275640353135568447204441077874216612399107062340961860752365713201789749446645185564841840466112457012546374000933131807296312412941039641496516423497142293151800917921991469756783781243471939421671762879354395582718776791488673306076606937678412978363971231667388262783926361608778271910283980708569666777969089408068827607664271358369426480429291701734696726703247921107185964711614358356160166442691962470719686871082911822716755470122495031297360760739900072345590673665208811646517142326152998840630459304859696653423459949109675619083960566114301701307653847817970778333900438195221716403920869327255151247620470092434167943184499740814161151325821368822773182224404756227497932018956728236770893521744284762669924286289697693353287304504374922885413106884005845974864619716803862161798698621373321408709949549421164844971359789434553841469334092499416869941274274942539424464289978950122051066915473770862287550378186986010190101558482115237365037594960115636095360002776957963252932715990917461366849668668193425784568761283212676700889039609525419753796831990704238780352498387510238482551038334898148519766463581719796202438161411106956837360078188259077455205306913613862597494994715371324926851369018717063035858631625718919422691307791702500756974346426338271978505314645925588766750621262513257724716507858144482390892770665225515365409664182069340883989562066032324738277584696621901296437075163976555286410722441514689355897645363308511785732045551654896371934893633829774594544247392575685780433499163778088892352889471885718811800628830429264035860698756095127470536973295601899702264001616768055685717623761939355393258897403942270672371213213835518590902719512683494989359740087663291628803593716033636401258613515228716540768041703773557446288252000654706082040946360850974923644545477167835357778059882776523875255368503003373898345485818799139776028713011215585934088175517049947794769290307510625290665428637896227910763524209942528822007307134486794753238008617577844831964268924670220013740539810022125066978984940783710115873774543489920755688821009334424675512761003520220340632987937821550015368133139766274893524012546086482424574991892972939826839292338751207769317149521521310694645608895161539397575389286003747208462603648243517079430000432476415808455685179388144159573415164577242362658349689035056395999792115624626232206210440036047095982073785302799237380538764199294204387848796892406958952721476317557720125348780675455633882955848118681092867357765863340890398328108963173064062033586253733289164345604291337471116532583122622664990986573697889110747582045977443626913085102529548705035659723797912132949350297342743911120071219391943013219681779915988300926602631814224412041619177636627704586994108503180635801163922075510825110169967650417732619242552003634069601859526067730729729475807145929480064124537754695855006465163654434680071309522196577240548427346357895483422557695069718497344067447190300077182281978585093853726937614579593125293085123637663629974638173270093007242781411331622138504503438961587012891024418466148094936846768477041254682584321305955399448314521098569542704984369047488141510934037003688507612618994470507464042868457740479565878963385967251113513801787310382417042985065797489393783720765419443328373259816202752416097487776328789521911434776508164386776386288131691896607349349992265113659920666429167628296165185802255176766299479330522723378939492886887317224544768165271985874235431405444918197839147383302816028723094230259131230125572820462912977433991172871721714404692902660220730116425333717564601126035509555843669079678270365482678859131048619459658349130136394544889536218320345732733919907319941379171437057908156196401870838494075536906569212109626080859247877263692630994280541264337941826577800493291244617545621446249324868129459839330347130953500042642901139144184577767222971903599431411162500874766857470498346332276132521140651265407594996415760884910674649652710679470511620817115097352673775624418520229948227238537400988945383628434039516195338992415731248131700165816027679576184086098671680907819605964694225574627473807056611930174713055002482773095798819048631142566091813280057956290699638224334768913177537107507705857243032553210469549990645698685738414596887450764501326545551144784413429667217837765288123227721297856968969750806449505470564001358659873416019876077413968507780495069334096896278308594334745970748434993688959862682624408827813915257114006903021034047221526739050356098259063508259331529195165869123430731256885638747803542688831109489475896723189149233900685231274966474065996490064169599462548668171626586857519469673048422057490549676437285676950372136039917664710475812933799632161727586970734565580801141231004841610392528700017492384613321174280994240407622886251747733451183374897999201521341761090994020979122187109659963659352625555037115313399467490888267639398757959630644032314188493303149626132985124940494763771551124462163627654040994578966218930780393688480895737960455140585865710108741218607389908576534462435244209981916998268094093973785721711986462636611435870601678230309603450377473994450736628826904216672125069554836289179582033842436144518998254722371068930771611408429792708275207222744336588122203001385447281546709592691777874323329997327437530732265339315160184034742649520794838633173502737659079110896746753854400670847290004990321778257749157826407795450218710284179459929173747957793003179268277218039175193098551720633596538465314734343107692601330059242488036286540323767698755404498532028377538227562835599101754654161506311890770277037790965600064677009793259077140905512907616081588388047677092656806457745604795403102938670993845545557606582611690077201877585524037640486380248982075092572565768176064797456133269399747246034999179838884329988386159615035389270736174073324110635910957292463028964899196728871880398447893538716647725032613978235738166867361123191514458077104839807127460567307269460459903731777905820111573394305863389216633444885063579882365410185728035605546807994742466768282889976197387935309182126063484279880339704136795554478515242283917159457659644721995362493601438910796510629331037789618731827281794296293961889564478529911638998526189317078453023831015587234599990673999557331853286774672334470803159252424909680632672106039329479874047426225797089119548018963990440953779808055322341973815568517375844002593943241034151172246205602742688318800122923523790709112603239067977444344515455784537427749782668556128599766262840501793735955128248671023739922172458240251466571263255149677713874183057391850215665936225011965057400905435253627420095607218168444591472524603504904019177678565904771815457785051572214845101665706398364599599360604626814172080445010052004272577836939981563114271999678594973585925805809439524723810631614618286368634405351688268378113338576424053453891898097603302832056060618560072871046853338680931150735466521491512775386646184405804563188831644561211180374766972209870933550436335331565631522741647388986848300634062383489667187930315026222725577819009602987450856710112420017438162876279452102533118341479877040827221126731619342205308729003968442446241426458455560007580911508008293687600177692692149990602213278630870133035518318798136414519085966429919648413691914748826101228506519706616284484947480735864075673903212732107649357066469506298004470753668933380413274375039071861884057272473612478511080992149165717533655088824221373236535169317933949844293474213569778201226028676884779166005347121515407401967017398870934215369137917657113347414677569901742745325120054363234507813754132314184256560861877002183382327728277237556394572031932742795187700653398714086877624406085278768987191873237726255588343414744180456670511883048069138436943239575416602051670556160308468694322622153194076201952491028850404511704800376945336181208211433553160757428026925621620649313303998781215763851284502121370123094871470357231370317687143680900249916874343095693613422481054543593285831091907703054096344011352156953064780387868435503052156269454519726809851441203836693683140517163009783661388060202709095965505080430502677287555214246576476190207632176705517141866664127746013155643021997920288750920138216618858093424552322655757784140343072331751330835184619349475785113157911293384122165884652930005270488353099689309180406591479582395325027485740593448973885852541519957913488956668306613294809693688200662744060782421266138816589603472745997156972849103571908500302244459824345840883653480463005078385316626790691549904293947196412394776646779232875156116997888145808927047611152538422908440417026224734340944783428986584530676521326132413462786796395028411153762212817533929218382675861695406540303503571585129802066757669098637047795759262778086945714623229881049509819537938882033083013064320767663406251208745570553916757142952366497890230825503847304556482937256780648937842808881939799673918485944364488203408673043676122752256311766464070162952957073408652768255154509149310974048888653951486241522140593893895140299455894900749996714776460855505393008069682983214168322618646206859731334770575238778178701875268664067875684699242296548783727274705462681716543918138746996077972538848801334401596668780484544995371596320100797537361178860692841145438477489340417677041108901398527659295727442439965584973505289338714627052565930683224328457305015995642042308443848720487428061803034856545564651347683460618356725242971917675285016035049719743650317818294968466358543489906137366036155294906288852818254518468342450621870773138484790813154718228479058345921057473254395510443731311849982580405568143375640184636280904034212383005110729047837585606088681560794227661436123337709233549700936928286635371529520492000263823187073049851926273602874156360587275851920692937337351808282355624942067309097871539327079443655122934370790649715296231224559649490944743267841687503524784025118790193470136885395469567259551266627451783641845622575026480465947229200116713240026035671925586491201157573205316621614382563832006486988429321358755980102036670886864763866687677312768340988316023299934582684822463226811655342493281540971603377895379712428391298169888660762130948833819652744366520104470189289864087965708929340156168900381653982756295612414869728585465536423882320482205086073989564214960042421188014970418589975505298341843300606190720664211439843809285636064781968265271275227810849184137667510410675795859880816811055647953951211580684425627864537251169481357031037941583420949433202708280640416758120963155083108914824921034444755040970077435365617848800486125009641794750718494063830968305242192067008678971506092495212766695822055004451763604714351878756709989917659453569431160844558766062751371228586173316375767007575696646565483443171289968268313225661107808853426165813001700878995016950017010873894213084227735541234080938586673008013405459151541701143204248577749996523654990408211507043239446477685236449155362468679792498096188816340566431222076607001930178193138599418771891789847338594209405666638127962445095772025016420210165678161578412972509022639512547170676904858273613887752447578875800290494810219892275821795113220639492721171397142494274883540089954666529767722199811269686773856562258940301187752968122605556662938961291433609057104212905625649221147583492385023142865352802997616253878240480179503113356538944980727921377551243080058406031346321419941182833855325957517120470492175874362427365911974272919103307435777388220613529047091961491825016820082936692987940541252112347348584859370301279758895701520921559832163017434648116881401216316318982921266878752517225497944635512514565527418240453574621725195767126971072951401364120239721708278338049975699632035067050703077375528726295830314996688643507544736486310353701371689670061114713368871415020521948924497314537458533216019287339605721050178276645955452218393979375717779545264226268925816142237634693572159833573792610673310043832889334004191263691159163472449164078129375827308955364436836985268911574388554008114864053367127984090094438615169310825016778773313028476261379050981320653830719844787880651959401413604096389777383456004007153396817622505457128985240410080809338077305967992580189937094899411025347126504953607113271904963558165018751472082361674644085030629843927646981098635017553506635715598020102898687661090559539765299329695767308853084221029083620728201305143132624794469066813439540329498392218380983663291271902450281693668974653404259416608405793326217796432791837108120857439100637649509422862974906976116264472996632706074417696900539938659522326909596562908791416000735107626071942735010051354787850489267834525885931885251534789866952213623783672575526530780330124902212195293987029070082162105556983642241965877031859155965596319647042394581167736508550992763083331475421845591135066312637812109925928067812413742013554103156044886487533095922992320981847871671171736853248129578297871824155840529254686117556836101330169471312000107024134686777228952966944780220256400270726753523560500236011525930358792060457761189414024170915807270598038929747006727963771625670544336958569395554140429692964586309988720669641072415506979416003990480707745264480369055889647374481675194430054372265931717112417829533342040838918370112275806819173027350100769411261120367175614878829123161486450434646197237187873992777743684232423132889902957082815964020486372665604045958075912586628651325946409221298854552186783221640817725351659660264569214603427008054194255947785305805395369502551732414967945640847670621741748102551453063040255520808026686365584596163461866002055441085021508724733278888420618992824450824579194678153324710873394389135170075984473873770774939041671381683637587473068457250190994893302541817933370400296684217853032424814420539069536164127476446092446026360838633064209246021240762580238152027196464450771308850762617672269023641942458164925999789938816631622698938946823971204301740828207053531801307539477442091340767114579159802689862268295773485956459046536531622748498700310627290093331737061627529481135719313401683516142467047705353721743551115116598384916461524347501965294888875693633214767761482079581809904176954119788063110014843980269502875832253157864473776239020823429729959291579063790824506863627541114239979257160152760122036769422442842361627613321829546737783765320765913080856661177663454644072873463784394951030393008137943627177151423907801676745120565811735369936944125872886341842557240380294672162258442730486072182934336679899681219121666241154615266367016597337476694688661477823144794604326904025925711410499616037365766798620191547297649486619694317774977925826253067857796258865632262923951765829722396385318716817393925537829589062791542265537834838074770751926400647089245722936409910990052081080569232485593034099595264204238855525205944333507337320032430148941730385705925544144596770305359719965668140088248097363508028362552875046514187351831228790916615895110209296517158511081248166709606916073849179973430008404224571502709363834610191774874590714344328561144410626194725837708134564809555729730798475533703949133526030427079071505189592856013608364738899098476525754928017494480132283263003771624457320807216142579412891919001490805320238062043466999398485901828290632092409963743803049623759107794970809242211347356134377868329696726524121700755319055582458558675932166928777427916076283781215866392968288679921184244126261998348239595498409016945689973802304566925480563820067957178749402382894049470709684295545954002629565070326224576845131807721168315594559010056219878860062385150987769249115327885896765611890700175877964666504057134483940705118014219155699597691151437029941426669255035223315635071933823005172313443350265122862110942652188270728348137337302702588586437094052994421548362771946923075678428821961649571733238950419146662228278619169851170379373565643508156673183224984263605032828945739604729759207423866033352621078119888322166590743385638853669784311390501247791760237473230301856737554873335351102566605889358867851861829875149012018105174694847595924703196597815511225133172274597079178589660158034517957866739848661923023065451595015206708164213736594983780731294933114268636411637035131168116777789821884791530354927588033772084877678697003865424790622324928531319510485004208634364311349944811372584531460678180096388196635194695824218261270137943093457424285169927855519467355953950231521519740298195602510708924284820570177578881604471042264567860006670366732999178897155616541601592309577901392923823561423762759957143090488250954096375480885357398085079823969736468034949709258926259049077311504722922140846238787837492882687615559228282843791343018009260878204950498482793307404182411729627029991596073231107074708071126909589395696200412442853488903773152072310507428455009402097941145752188871409658902898058546085025824107438208011847718019473061652588189317622109825349032647811695602035765029019032638457202213104132174921110561394153277745679346418117486796460664069308148776990563549378127563096724527944267416690410274436161179744415887665603844991832138427693640324533996484292363391612694334312293685260867786906378862984836485450814905149630208213947062159303745589378012733635201297904036739158463705112457059840339919906139358595702128165329651932694245964709976275384481528746792442542487064774376121439420307091773998552197535474298614914072969854144850552960253344575224386063315486375501920498338430932005828234509877264553071305796160687370806219660779291781613034301322021047063664437616376718252054861950402897582177669834082202882099480451315412543514913577398272603949013456381194864228918428905148248193626863248746399748650171967287333902019826857145188170099368997876328510765353234214903949573105767870355210102470922902737784768853559745573779973946062241137958038589305966782661594646919854176022395822258761964327710964178201381206312227176387969354892337460552340785390182965005989335203415658060566965280685707132410526426187035255943759012998428865877866124426867618116461854453098577575120255684110073914388370031133243004952299178213748003335015093131480966632062465131429474719357553889467353475512920097525132735138005400853903123331697890952528202155007840202606032032570709902559235228473190190660997735200947356082966617307106565216269384560053882962413115478073942504652157271473901503670698464363531172478217356742948558315219343726321540757284814904708042922327916928885756633280872233296847627388955895215072054755556790048312266961670732879993776185058664432789294882577027866514526946690441531372704704582257529788302768042976943297378325310179004409223601699446600869198307356744257424594397559882893637678833910446581414631877837736824260056816532589672857921106747352034517441299110931177235813074759402110486999155384175984876857516068661290440169369388924626561745119170767340647419730996411691696615053884243187141841929082751025923840520968373552931747397215451526331925953235957299635448076259359944090102127612309970287378044537416566475612502528174092055536683375248537038594392149724295617472256199197104182619171771387775974798153257637020629249580510609874348037025844278749716482371286354002164953282146672702241217598319060441047719604928108987881093320817700942076371753335706215825087382401916795592652380687367564739731710104157285910231898911130030069111465481793196490906476580857291446024484349583134288166019816198278384459681361154437862384407454765979424688069736894081680438696199138268251437876044928191170530406590620506747743959824556006919593261871706438031945754453325479225556084658444269236112602637770805931331816296269119021478487882633055236630863637556245030439788546838015933075323123459504333748989816354664043318522175703520167834186713029202062415681049716649089965134173960064464158576664462784674096387332671823590879398133332381112318482168068627397116951381372016136672120676285090173342106967977550963617709076605870890701441642504528407500934114973914070213687866754169324598583579768529194838953605170578419956446518586267461065350368241128192499643032283647600679731476016940099620644473018970516932535181214073290910968936928279863481388550968005089804586688896409475882162069965211143168882855616253054453061631094968851386324617167026913114155315760699739939520093436906936190256225260478901545860106979515819838258824390672103669282254893027582332764307151469286840586634085010202058499181987501932127454630799532985259168457933230790961832510614701416139719565317350161454104876738910563915250455843443404657051701202145365507069575244533795027173133531153454748744284246642272800827214307562952006820867294807400537787676804080385120632548333176215335323971268340579099536295876492737273455114732135988779642419014309238732649795897879756812500807341667119980198826344655693191833241377129636205408311426131434971047510284378423003867540237625203747051236845033122742227272775765970923282989482474320356979199037497329876415791926422154565967849488431860243008566935661513199358440470763374584746349970011378786015049124786625108683749619207947482282562375970135238013535014785367071962056419924486080357013502732862549162249075192366301574335271293975938199252862026038537407423359347945168544735357943133560823215523793937921140827673363271170146303049152259820104168486543500107885443916863685632217689882625888187615785491129789814035465574798115090368637019997226759851681359437300506883777557783047577765144754831066878599195380154369424210174610118312037026849273558848532922819743089290840694704565431374085029497929929826906962242350965847333249494940295829162766149067926170370605873491844722540152587885672150183777101559581913356995739438563972687809745907627905567748443076685359600568433034300298501840749275609792415385220650610859782523139805612034521789222147900093243247345559794754700738054678339811843621397229343329315486366399859618873344270539309729297916476567082057557202551674468242858364469693333988153526045429656151086420990616337454643316989918887759902340455748595621295565855199458201799415281236622631493093783608598960665029733972121228703112533614999679956808035230259175094685160353962920839344356882927194440946516497521103455520188421877547783231982220675096693783669467909942521918022751369696047271099552013737874933079698038574068503173528925223888304180368306739630515062446201201644162024258568057989923300876687297497615707555633240710421214648899019738839935911607369712128485413842184753775281607483155216261714242444993574770805251660049401217174482365988151151492366493258138191313937026722609485067341424448308089531634259613898890532797974336414023118877248563255610915456128156184199543396402762842075261001745452807992302677655390150870630231000475009270732055524218981484646276462632534627413872118698107760259340067911965863535232708630847287406735860892621318772013094771234403237835827358051266553260423712711084431250489762066347884607235887822742769084581459339157141007873269793215466647899314438955947524553835778698791626019541588635797547548144195015256872106664766756037776323753275355846514150778326084132503594656014582477896550008302747831971244060260302681338189567314848652258468933685263246850227730333341329924822070049043560443699988479346054837985890371260384976129176978730854254037043288482436436013249101662990865612017422162427234834933540790175020104020837790125091612935372512657690798056236306277631476390295205055106790461506684626560437058725763351080886185663852917048579495857526775788373172573026276341096654292632165739154148888929315820988251622470892016858927964382366556262548134992532535198340670011656991140971022248783281463869714522715422955477947225419212867603607874387842366476663629250543600589182532842554072786060586838742896101590863283590073803919340593041936070990577473730663578305091491610462858719058027470993579795134491801858329377774980119314815174711996965009437953889920876401722521906671742868058184322189253451715783206146107024571951599687117815488048316414022000657573269162523996689699325558764790138574399208428903355744779912440016687181053273257737018597806367505102129897114788502088342191138159791212845969158167470891559275864807183684795247500516537521520658578478565682947301482759896041518760711524898837603285062244528440488595395755169434088327223527990855463732926988861581705131807221546031636378502512254985095877321680190415456675968122754070808777742345103637181804494533016188665042851232041350503996939428865555961393470106808554393312427464727620082338992345695361110538788332872871723646240345589640472440755013588769162409541836157405164485381789640149598138306439404117207274919672414485001875005242911931640782620268102282642778378947442781281541409058150722556469702492277933196892106422524878279997296783539253950296355471295048609614773711156727268579817891501733647249296501114550529712561424137636024685792684112791531882526770730270663640066840803794887001046440948622472195242053074431882264829936764055471971735532152776361481720099387648833381988271603363325494882865202980074952356894876165249291284712906587647228721772843422392934767130530473563402917497163833233977645299600858628598292039113277436291470370923215399354557866141234466224383486841066795655714419221710625765609885520851141478974060479917220208860961728624531063965105286831030850250012879111273412593092205194456971401596668432964947400749720556357529200957820648606400224869070512537385797701880340427693385211336002224555494897954630519086021818216469708699283492393163633417848422862201143635309798768065290342271623383516615666275599396428738700956713858687167459255886249568497809445131161876499674571347192445682977887667035597008388369390031302165126374864873730222406361664112158032329967338666381245124533934123760316576410609561885292119350824482703477180976811928376014267054278917043005483065815342816503299714636602422196427587123556848107996190079053248452924488399096992360630167352036427723232794198297393160921606362360101845911038100404616192401091101579751960066953342244506020412259884442498614499606063781887097825448494620266749823730576296937557939190408855654861624844961254562936631259699412997121588990973559858131322528924725998861082913495120764006193386656008306013383488558515262779712518084464036213338226250712750141991097687843650742700603008821141720362846942655562888705645027822324598666722544800450390514155672128549115307775393737335916840460443752055413994405406129113090752713314197730466633097030060223195779774122477850262415637147868834095249099527111249414133420511078853040366816436003309611358673043614964460150275584357780419344827995658148890487460888673078261396818464634475149326592299910659847693615812133768974214361585200353685546858444830276941081837184736176604670707287790488918397299044405362569918962177604789425036302558437375287634862653359332562954179769523366557955829747822014280069229438517018521177794762336978744040873590887727640472582952978676184013274347056710334217752281001606577496399429399460296436873204212788318947770419142295200044729165663712862703868755612548611510418054567021333439324159419709202728255111372107780587241206799694009850066386691551127053896012386287029119220234375303869823568081546405124596852808864154601245464548806840547323166756804382138905170909833796408253638192029538140974324998550717356021965899745959577614466674748901596199551981968211068193850953040068664051285808354202408140480854460663311253873291066267585907261905163569281269707374743196733085252002145141166407890401281194466645567691707288805977175805028026068807519225388466281968822357752680744349285907986673631998804903339982641090686737027329716587593459444318196204743066642883438319936442031437914328846446106197939136831903660863455809356989322195204844971182743707031977020416701774189420946586387308411335572618080387561088004204695507038496478260050091349306979443205183536508541833596335787031349373071004090209794687876458353965161302524665204187280075640087202678158831714956927206819809674025307814540327895398495666435297497682348464180951586426688401631877970180411658988915720553057532889480979406316372226238556915577290427584203306495010666135631229662315224479530448628907327795648283053771818429582775992088340566680938525071868095555707087185718477615722280456946480020754351899220621720256377422998169311824908741553128043037829944223207541055933710890753058472246974601404727041530966895514261151678284882708079284349398676268656743516394857422316322470269931113005857207594482517993442517404213333159886047257714703792742612367029283530109095191438545768162430521298252753236792764854258307420157831941260018957434554946270083049012407216805534001831431956781082390978125618751443179260219129990651279201827169769986722446836407251711116981051205649817610059851445694080467742168538897233216255471479340538018712642401778968880284470995524910893607798528353678817386449021719996343308903382747187516599671809713213113135552919084161965922006923464323223472432119895214687357068853396600564385882988026238279338052172007198444085692782396493237429925428217569437336606696391464766169636507843980327247583058038757627274557866899764053671897088476262176353183786733765214497704851505428145528958614083311787584956023314214980093095020425100454278904716457041321136620149487936053260473659397685847204220934181736547482802436538428104673063627808307968634220256494560584194654470460312560250214907912534232065256629770638606672641161436155825399234287791179376169578077746359940447201470527598988983443412462412476580399425396082862856525200518547157428748171938705163669679048444080134763267217337696922376790549086476113819314923058145380825276929329119865084722699915115756393889089493630163574435317644067567318927418561487307423166074619250270339888272634160143351785082816262286286088736707995453390097197497625006866759515494665805915406404668061153908818936746831019913428798541745647570334751813421333031429660515209220704231873631470981348333100634600083059000851836452866876572370085843310184824953885912274217679866330831628830913693240109201461383789772184960070565998029199730188465591246621785654917013918889198691671591880683600335560764709275014371347614285490062467521672127610345857468135849067582585602489960206097003210448291256311549122726851473559784575188565815214756788921054360412227150514487230843713221498068086459003785348090798171385421826883872053826549867845219642046457403885414704141794660354999178068341710620745521287275961761634525390706604973839219921600394773770021037317287489580501889678106846683193179039969220923170976396626195163658995411815748747475143656178858587471756380790699622341088317554438144967375896517749058261403176979875081901381271134913273300792197462382392592615871759356059737166914169534181559731715179612101171560889002617498237258458411455879842594681452111538926719124231878233631299777340333420380542314347267915244060873749785074540143329337327874729162023769186067926874069828769408256393808994813712651449026338717946607223166197593912398518409404774999477881390151472335208773836964345379179299628811552665938258353131820388907546741488035372186769851456854460139722315095582554375746922521921929348637135469717015034589192825302861207646469824785537596560090680590492750829578920552133084925534499940640035297012299912295324285833649259396304980355692054294487133439259521041082555112054004020885704742961924983314675712874679798378179589191664484446015755285014351624510905382128389092766630712570964047012709253815253699266130721982641532326159763530562874027200398409949556167420483423196224857810271053986839940883571378304608357092589188695588489735511640911546140079805087561631883100798255278274047804958429545938084581110718163742948168584921959636394251480693977171428526173097700844086176097375132968044430870422159427735824852325043328132715529356672955756941284526222447701203358991760405412856222344229068292307975901372078513211175987309333324143114947766879922789635367381332942303299115764210004932560476833799517284165530526507890269519456783948256656173746591862436407866418486758154551035392155494224505005452656704730323913869332139075370602729165347329883927698338248117968422055201220300114104603719028105485249700164496945868434216516198283286724977320536248107064795209017705829132373521444099306191057587842316401690313688308928662009433360532119418867279865314371063093874891663280118549478902185370642048527147293213265240847384798803016219183315691428572712713837070288382886825893552828888447189566986910138045178879758228257517771610692746111700090015073090430268986419714789578926501370172545869989096600211230585218262872383629997430099297066258304939604009268460584884390260086211840675460907674199588330908321239997621418808771065746179493576337567363889714135160931451043871798559797470366337410399363876311625501741179238677768641096345447981490827884314308857766110405309890914276468180185782467626152644411382207575643976950435393929833647397914649758316142615528544513496277342333225251074405638635149335406241374001302030373265993395201611073147687920108859840153566564813749483891384137281555534902066449711731061818512842670387691492625956878783042821017934527518680936130536847350101642056375612117460921401357482335767890833853931979072422374692478652886380926020405018458495494667982803396118612351076930423354511866704743759060073455114791163317466511540423477606551831340607569302804466456606545025667317701369851767467101273570762090338102245515944051762120608059723694480749838615341631611920472205317905224051538304980764421153613584877577804257417875611425793734389745119893516330859761393967740278675225044634350324292149995500114829752090562651511544177682023538859504018095271975651215307485535894971365201444650483243079961894545244261229549908946370497814302369006416220911686188289334338707279332618520423554916997263443651695949057238141524008589754491173307833300474341143849027231248451809551146382135443731467423643276030960686022473767373968448401659793311483880659446424721064436907347110375738968667933792122934954284779082710045524526344675716348747008211732750797403288953021525024013012602498233366058271588567531637961067430078381739159237187517926392014595580464706506930323311505202266170941103859878865046214558624944023954178489299779568275201731562699440278441696229038610682922445114969177860886502250560701134274276175250650552356241997461365095898276159525207310378279634690982496797169467319268355688087349598080219995018438712281613851231643627516505637210456274096889892089786312387855945716533101528634462228520883974468519260142662159423448237509372521330380615742143778810451507637605967990951358569960760990735140244268818446397646627340009993524189440351321091464723464626549499073595739861216494832746787600345903079350382778017016904608878866734674488080407861387830511376733107580769076932739662799497003499764961475239683635044655764254712327670434329590385618501612874284624585685766802392988004826265324114118431637988709791650454166680316615478196636233804167199748544849966103956863783228835192366841372099423820611995801827034082888691612726440284637762333971476558326496328898926830031800324534148030909148733558771412217190340218382036110858459256924131878365780477175472189682008179511247770155249268238876751969385009048700687177285427212272496463269274904355664877814519480400886512341277967697148407686814000947805838549432516471580393885047696282120419904639392699465665080106662215831342374930470608375253365558707608852576410205717230824149069355888108614681235172813308258398388831029414851016218003438331594829479137175344112017790706899677027237259625983268584181529292587339619026520286164877804443140876709026212990966960288219895788780154706138681928880617213218693320824389619146916976059024867245728291343729218181689998826996348694274657014796499535716708088982483811982241178989810739135854786254173644454334651091250358960464132526795330991655779828033069342373931229652799175002271345051558973428816962022500294622095304378852675166033845916058236360508167335551923686827457736439423277723757991611552265246707985078057435790115993315870609288529682228391361667590850831226000228271338839598892602026904895110997249591870147988831420026063757570024504531874302336136823438616522970660055553659229483457303973864942493998254887934925983391633880992071114247262787272105328577925858656276279689700033547041061606885020218293290634322060401371482557374507376739334628190966547010523021931135137665293691332638754769502699027608357802903326205697049856940401963435748654491752707645178878775721624754253658450377773345655935227560663128524608118024026682736279178357777409081151660815219004949994269673788788966996624026414003604627697505848027052616411208110552699524168230244328939863724183455149417970950700789324514216388571001741564586496138511109024446454493041189129549252514612631250413474795593888003157689968773708604768660303427729452193198891706297022444285606180908681643743894216565291073893422274856077704977499605677876042847582999370805724840509476992219476251319347415718530886000239778633376755136001620172893931481456379981260313654178019035970709620856418312388775728936361479269190853541819878457192315746424822705797602947821745769818322527330879918271305880627668775273899927791675156769647511792616902173783167209053642531730903354349900485996249184334336735919902716563448772076916026431318317351317638332842435914588640949164721150274857239054863843417997260027277987947587079795413773785059788175938942214852285594587019720676751970445509504327413006652745062942176123819080450929511469438680979244644942514188479677738788392390886683761881080935892197634911251890459095007712114015833812992036903887004564723254217454343780451558073750812580184545403012997284870792411190860237451463808935565685919238202294650580995518809133519123719107150769320015111339817942017036810374371267001367714941815810926656317773239262069611315380590947068491559548084581161196364038461651350199399399868194914800874547711316293781203061281583010301101549627837056517507212074860804531262993643011440480525301960596959462809399223400725598508335876939524523382136981310397770635379373766424240265306344312305812077618127988837444520025581782092251141071321625916957296639419422979999346164586258414980569034957604691652045417324488701174610814033563693748559572641822149814310963110120970434836592323838965984771002109021980137182116550505728269060147887453541133803678773463119501268139804020780835144620794981554327781190552076372658165800835265568454509021864189165347977510125163725276521917958444582414202726229690571803598316666119099720629194444950885690377020913049440814213898419250618137434912850356182651883852764614995777614914317278045241641433643743413272805565364594545693056510793907498540928433824252013316996813790469094214725822646735411727771610821613746139010918183880025087798832871282016331330722510825815413078312625405745161519451726075043271453785131496540848282181321024167808331702907019962242315297394700438909916576717778200867273239862519122814239309714359246189247013954598381206571958066318748461534221883500226232167160904625517382881988828794029496381997748835759381438305256544415607432538157998086629102488345012744962630465317577728881607157094480622158471543651711881324775039993599284805566585762021043685578465267548740279378290021855145394734160698579066391886499511702004863170904936720898391971340809604135320622889712284703480660184631208145180809064482978561313249087240539722311465631139544838196010544864665622677028446223532273263130970994748947705921775612179245488296882844742515536389010151093114323966729972219502290213299375115027952636924315288777167249068710988881364366204772577113115484856607141195248527077974905102320605012736360971334168354434363541191945181420445449529116770683847736001847653356413723257000540118453745798294523768724045791329353917970214085549641555764847470844479924520608782387801835828346488146037459714003445082259750894239046184781524223073954497994278344111150140823025282461750488952458160764749363783641881283900701947440686767193548756089925878627802544493582833922117619697087568117591612700651822326814743317854260548565860245243318289520196041025412091462078051541829536666496087126470404273989885356124102213755092470790660733672573989860621329183995921952139402775375877730175414451312771589371790562990766614611825041423425562170819044439372163112183033920781576775297476096601909786651669870399961639885730686538165422069355773177678716411452718619825199238346783765941323331017542355814596649949981016336490983249333979102478291656041777610333472241131679233729455439754906748903670225216051192551078704429671252466012642661220609070342588408379276271383302071428120403239048871889542663473785099761230593527100439559140315737891015363159103472062780628875533043326670638004358659021642059955002574824995733306091109610602387823123021870230391901129011674693440596882054534680489074753034370365091474563678533136071244287780410088107918887264699907709194349905050347014396704654275593182087815242858163536981417102463375760874522126199411253825232120212970213235968873690627597058118564067784516188527023095163268381059654806736129535894456021009372499156288605417029052220597049690341535474611429311618107812098773302389572160350572659120496668292092177147172018721575981498250590188791339233047361607803163729744638635002608035005774142553673274807874961646091210368227365172231842091018286172543597306505174311233601800391904038837479868929944726635121438645381971693132086584708643375585871766486479602802469851999082536787690406932119797136843545133872807093296267667495301681805824439597667963599682392068367472342331986904683528689719675597204591455094302678840426681411778715176455846828464189769022892990347468770795434559630828776144408546658672075952449771081451747682434371240367988531804712175299729809722844238606966311704383490537499880250574364182793473872036949158731294996207127774992128837359928249500872806611693814064107508812139071241821358807328981720429803112517707960699644771019661664233016579692103416192897774574667493830460056660258471157606133791057229817656299781553537294546766227455133560486835305484911308225135636323435751787190102599250482585608395450303668163614224083416636344125472672648637097179214371564027836549148967521387382460502768178648822334270762953418956933835336856037024879608398402201939205283378360748251332983745829941313704069059953733300519559760775798000420580901979737438191684746969805636779101006081836432075482295348460462980314658841378522140179056742301945642390000342043533538497356510399768906443011646083648003732083883262776873419459242176999620281368194201215962402030775456330502949999556922151790368257418290821813742331956352576271902256328573980337225497520679770490287729564015651189703000354533397995455196681515849854847809739363216487825256958151129341448883560781333816489888446383841032440776061668849884724345413873047101018432116185423319716450818910221515432681410755174121085052426954647114641664805269967591750594427193605816679509671193249540316236078990961729959490409162668157644154191288798986375140749602165403253561391962193102596721395172808852205473683082561843583005293452790801265503624603012900285525243247071677898799795356613124185706286018790362558271071030905405923530577798894727128386900190747312742088614821625715570246806795318873387736945331908490124368298717176995479638046132351975149046115238642365108801220622228544955272524071609340557872635660540422465574393357940148919479041047332079424036390177581876913060792864971572359392263291637173886497731184764153810254486272998868471254311018931327460104358705310574288998144275465109559786436046474077567791727171109184979338091159740717838872241892538412882195907064047620785634383625007163861410122453783219055135853859462123710338384048678772317510463065638627302716594258381104699318316192373456335463558139491070850465979897912184950061321893395768432813737397451154681348567924272802793540946123512591201317919868367303835048346936254916468140196783326232631990041768840259455660881930247725206095660003600845760772127700704892537714918819791307242724892216325414535502848401567578059761937406761321874958960989479287143027805763389467481745788386583873151482075698218931551684128926133523938762882147622489916582858536805972932178144630129443536017455667034387129369989105935253929795829797315667111778475224287752761193630623595666689389944365680564628929978124956677371301254374149259983962644286506567467849448581333178022193664817739324727281675254065275396336195235930174192625295409486702716959383176193433517768368648489778685348534779362856129273966369842387494323507720852336858254981009713948941902926199028579489275866895071818644302269223606433249434361032992392371309757176787469701196357128832091343938513769394474574989434796855298035147371104760422689607179925999435440911933638650683852038124590834801465653813686889328245643673088440902447372107957752276074805932590620513704597312335347460892382895080289625254460763617942858741739223868901324329941799747857855682459273098138594217787417994883320333194039144812094199349067611381467072317319714981713118971563712138177142880934677692095489753754619416158320090745364776060692361879359019356090188718159925721197685868141212387697549274610328986143633304965081214824365842149263985360007643338955977341077180442582935618700119188379994259912855835104460715072435573168876066045310607420451396823967377735256000180443010112438195365403443111018334940968267563744870979696253667972716099541940769879847200889003047805536456655530727762142353419467425193548468165931133623873763791139349962237953315713393154727612295794362936657558279496593396221523910841052390727508437493909814062250268061940965367370186081784820319690747899841694535297767669062175080545801686684794460370435369745359927251980341621228440881257577042523612905678152117215947024716071615845836762064310631810198604923013936235012174642711422785509418862948262494805042307554415275507549068587375395450272743251312964954713576621219282579470631678802213585277560206601510730008996796915941247798987321160953484766928200262695315707274611144165335603797546255455367587526526477218241074047402437922978569257332508125430298633064377755564825763560381129201632403946108499709347649563732761831925237047942026184477923939887489332447639033576816588610090382219675177742248776549281510221164211519480661516003488144712560553932399705536485036543111692973875194089537161280524045484863548702668011341397028761476791902143770450035823938308303351972131533859325933466710048688009070036564234951462808549900478603464176813077507804824684241644276359205207105112859606037540260224155890251552112812918640429405388278969585647610429864332822932693469450184151693715700532795715899422764946114474985493879489352390960338867121622447915651379600753597828562589333003146760394665129535829909260325830294476888973410354517251767744010437630609835298814397787416669061677680908387161954557320118391067688840432298428449063544678342331893962746903646465293845422930772894566315410919106086190658602962231993916485925825177750027384497842350888408333128727326929846614372436296330812679434910756460341633103226685533837744120371865836086461651612168099767281978453494173790990235184289483708056131947269396860546287517411779755846796811171514289582470981135603894937299755934984359448837552875369433483356661637170101766082750046226365641515561889281193935119366980050080144555587976153632296301369617024886841507248595971597472869470510070869802722301434824044392470935458228999120770158417952863430018109084558151681371099910741877005374482599627902195167504971110379985937657130607491817360136332033828713918310943723739091624062671795079711673653571006642874150694158650891112652176161078417113488382391775325743827993520531257536657995006989111452862235407194189196315777651588734122847588593974316758536851735103526383342987971545670501093189570288311226382017963248121640473233113909224465551376473453455773937695548725942770182633753679593895258853943855098844296373051049122365952299847663250499368748698171517913224661810537618997543901915719478247706532452469223400461878247249632019341037518118959559247826738798210607168241521245721524027462473435416732815366247709538484851053372188853644875496589730210818431209213402644754842944332932374619903347974003821753462965368882604446095794643678159180703910025312401773484921239816517811093834134176743115149919698927480246475716538920244825560618984465350234894199588503361875125993558475457109953343248449210942807263243676707624817120181971824222375616758212142235857343602595073203341624922429219497413544238996270451943362103541345610708680903698838596909913145234594643748829063937665179407846693347780531831126684880615901951821804076501881320076970318134214787847005387842450911580229724733931587935527837208157829066938384172434155027972290677414390623609387766703353205371903705269649670823682136289433955151452401507604347718388177649950823940735278037540945801451411094135934361296500225161864831626712158373083720946422502258521797277431120083150836564852197849293543280950502241025462610615858786404959076070044473470427108863360563403768106664680101162447703073839794138772487768005624199506611143460814091945713603511907356944802740523172147277854411541523985908280332665249320668039046712366892828814914763913759758801982027307426614261898045990866005958552819606462902187319049755849794036023504552955142333691738763008582702087626576272612551822930573919945869720251238304922439866215748915061343841416304734593542132277690084544720759160176439552876747312910082982726607297966899419347721568666245549968741874221700693267807484554860058063258956872381566620859409776223811861133114839861633430040697677356048414159932615010770455215793804562980328475917414032956628424063161008986205104678998608335760613068486691636702694524742965331105498361727412986740269005710645158647775326515400085117437070215383307400499888289380184486136661005417250152517602032931384388984258182508304344701124846909567616435466637329119395978675289599271809630796093151866185589548310750190898391799191567552804042247629238413244040400152234941722995051940309171763108483604597410790037090362794200139773668090945205019327963294371273274984698308156999526361186012278662861377701283546100581089817653454186715394793745070596708924808545259820674566873495247741402048131129522457456947451042725261210441605897617042170877099948878164938607071941367156770697193048642894066605810298954245745288782303453994687021520155249247586473420779079144074136689890021719016048923950229758607552466606497115070320228569516253401563055916059270110660297494282883923370529143271826875377467561415860908765491545192691102101828106731151194415957820138531893317427928565245687165790876084624686594859753014846281384734708928302532793437661219326305085605901638786103995498667954955226389384161899929911294840919467703545244384125075315545335201654761580792749000196835798455926395369652176971977790986603538525208412045189999030835138743243426985422707991106490239945035525710383782695580794939871169332036155408737007151485560871260955639156930444190363433417732628362802281503139896744503057684726560683361343185686546936523017135088767080062470535375922146794249737541271159408315340878917262297285513889319016043489175007665241305591339088857171976410239460224009748974264050325193184384070571404322950392547777378630664604142138677699852945044148959062741358358956854370775372618330740161364839829817656041258281802719356253886905255509860348044903182480632665227470862766276212280633353738826788976811315643516311127461417519902680428543645633998852821721607816699130205279644246199041435110041416409907580400173216808578797790403081861307464694043129488471026832391491052946034807607031332604437105652635248199540245477417179080548948324879193306133932910156086777224921376641249173455762289309264850336850210673036808049609039725857713215019715298988232973897450114903181654669451883116118778198284571487058119162884766850506131733459908279005811496609847793752257242560911911268189287940852252498453921648101299646022577200920326125247971473595464032034750346881618017209651003521444945913415590006817475130217208690837485105188203080471621295764149078551449741543145281012192232492540318712669097943676044198886905595758577188685235954281500860386900400110694973371425249161066082712876653887237474142707193889537947577821290073341217814446507837525045629399079177439934814842476810641110316328940604348202266574968822144257588021016110191736546316663771919942518047817458409377655531506284342150539263092878661696353494518181702047005403735019506961152576913546403567406923643660023016374047420618742729172458822918416929261857357682582092755875552326424257010111834712689388682297862009673173502531290671960892429769886485516042611838995614169585952916370206511239283747723539739766460719182108783033284934115821123926459469770310273447643979177896487146632633892237308167875176356495570029069959339366383970360881586032167018098702818629087651109681154075744713707684585132901740090560877483256532559862642527351219589138309848471008406972029507502197344477179796353365968427450916139483618428248597821835118348018900973779713898744263272493823577980365373061479509603399176126613782823161667462743709635023951556476963184523977686307641845312577017738681396809586110331314732328774568056369738768847798817481440520487738519311360471635086906541818416560477516097834860739918088871098562440709762947673704047175920896442602009453332845111812524050711818959296409966995623068157473157937270325430811814001006150032520137762452603968564627609574420202160297018219338811700149458194771480048193242560255021926487662492531553274740881913021490384578246579606487795356522024513955605367438250894903657425481752144691370327560276883022070095392190331901096569650865921458912223609123618809433260752367456100079103003221530839689393956830833770622229389957774482026250271161878966000469052743866578248491015611436275494175689642908284617958224665573495225891329722062569366838892432168083660767718579842826799529840203546957663656392604435141650665883331743750328570929094002299719749014783530246608928642210132904614281708420195032351681761182137466574555263493319651227465571378764671741157243118968511506179365353431811533384699029773695572455379865807210362967522633655212791227750596629656390904620996888806746756563193504495164598685444201119673897823795123538903913247266326823408633510645948874652315782520089629767503742249459907741592737967610235928491533799908060736396283351726470299018311038964820099448127191685948500319948835766866494389995531472549383892932879150318700581682710253490967551301453353264121544494756810785949901436741791445031753047847228823282356039039558579113808818547810573979853253609153256710299897514668353504868201108456525253659415164777418326416659657726040193443798773203835845956879679302016798466983763548269421240933755233989272193000008493050855942362819877336331972648695247835516755390767410944547459065410863035195825464498903026355302431628993907443345779211831430499796112696121133055667252296968389817965831657891861777060876034715452849698821794492398230870207095659975045178733490511867614303603657511566790094540366534096616611168825457722622395471447920653658719578739706748301201815698374709108755684930367447406790916706879814244566054110006755647523261864113642920650782732936649968316446816058267155715465630077882813177126002212159000416206927716938007619241988975948233837196673558084778007074942932724164831732927228468370175960988344390719428374447433085984492211751695312879602268955092102031495644816089555182688291958911103937585337927675564411226519481473403673751814649479064591570127308838715299849528666287291301086430423779094319440128675420039490352235654961785003861254628852514420184381469774235566839978753082177343948772968211866490568940324193757816510835519558264861029784944724802763837085249547252907199478286783209199371977925076176692702268962732559563663981501199196158050586292416285080351725178042305911181103414084221804838753438174353544798506998390157176212398477597542218598943929715653601082419612355365685613727129184516713716352609004798462868630205259637264129076678868460920078354405513993621190305119352486462559382560839056648442731939481810122893047273966945857434974323630781023621293563083249413896982858914496163970273430312917826378913212566162331741771146187786070798603124028837117441986624184562563354573863529410743267764788154665831177470020703674290984624065581446931510235799716092745216053924362810616466372956041388992626098257093902354931772435191836971073989829051154104920875988723882714829642502697145685655661326250708259713577320316261944414844977003575981942162092838364044307742401411943236868671436947685211032541831172645688510850126051979748774994806624769917623311291582833394499689175026269030815505179308907848826184428091828471951527091330987295770046947083039744704779211559003210314679530053011224882473760586361367280580100993066007687262234831150190803823887711938000347091718057033448685067785249662722561038872479149171161910771675324796124532561006568286905113448558768398171184380031672003642609664255319264042992715666031684478449386773970656910961047836004096071189340388577041779405467777703713834350711330413707688897947194762920437279127926227572094743309209886888511238647419527112987130871896295678636915725485730001934665691840909979218374027686160067846594584831744879106086853600319920002749435118823462713984567240164817955627061868872348666698739130193128219960506231414458002145075858362514812862266159617809082645718756268204916300365226450506044642529574116645047355292665857444368795716735025054561037743746183196213020645816677955976247826709183263927854424502248654065729658567128142680375158366100737186292106357511268048892849140363956437236940819938754973270147022869753491116180979940666579531058684636403861155928761679490214384169900117566332081035567285679885537807335079589407761996013823795835960235759780915429577326611744204328544725713288424675359967596375723572853181138377252885258281816436380638373727887667243436074073631815914663470727919828309957895206656596172337786889442353755902122312959627094228176878192089775780103081820594705924559946502364414702200681523020770688912108331037863571123527704248500718683916604446980011699407330869897797125690134870646295956306026067976061688951841810018569320643538750305165047275624693761584908187780282715655324983547435157418963439950470649961175316323255504049803753350129728796027899825022179378719205519219466952626053221142204471810929720533116670941253027488961941156875392923998534738104218641514577869663633507223325180239515492975784058417029458363560499006465041330344658268525778871445885261261599698295696634290683677267384745278680190926624668205776892796866441390292641807029962789767448168338103434716177751586794144867717942418936147950270458052856333652989178521603429392686783199921635488292055095734133635573983357256694328250603177097083884166184431051524342929332885988731212709247824211060344390998777163188998060006188092448408881747254139747854006640034685217003115936751812096560952308361745355666578983043508920523609524463820021565430061475075464923312632733493025708455823866864937367553381724123779539911373983818164441422573203603527655554146592933312269070397830236253521144848120509428738623419624787958298400427920520875757474268491356069835893391282613141247283598596475922247382233739724412811418310822423638982324359289052828580635878508729349238798221751598332441105376050533624561070173619451464623459314464386703499417609943693524899312491335570339948514149252975413518448083213418855603828074608090718457335176072889022596705919189476349570666778445345310457142412672230223752245142041445720893154682099412334954412800137775195848586210909185879861572112617037200712906405158972635968988210913412210248173572093319443680970912814420682095516012133408097595080166851661906997324568762685170509029262915058924856662920068855160357368309592307182446355296000431829316569609621690185827439734990607176065731750501069554431940705953557387061677764218163060475337858642453163485994089147921528688562424659448786810352929948492656681432497631377968202770516647133518842932207707602511266552369929735667316494505824968214740890348338224675878279470764321414956021431172375869105704427361933997348227119588489670255505868292485976218545726589929296694052571617722401756953528863290780449533929319018306747853073265505890128878184436449135971142413792363181032579478742266073892316389495065501793458128916637768334081560527744592761918203864080252591588846366804884498957705169899104577369690550989032429565852774332902001992165711725219994573786774358371346962584661216086906225787304155130619361199558527198396329341523893272635192867467559077117242329727140108641082666753276029966680058682395710358138416923783625065751386458313619618471909705999617292317663249599808550676966596168682107997606406924569780250781970503050962896949345581606438633171453807042468280075926515251283707944057893454454581441158297437324969681388444622592749327559380382515021671027982023974197106382325278051202349247390469920262572001459395144716624778656898569097245556250615028588210814071114385473091497867610551641109918019236307435688462347641315705758065727055873420148885246846100877515186066076728806783136627941428257635347242673554681083304647170546973129521785157776239210933602771161324454387480513805821282925201516290658688495326772537918432855068095991819609506606474664323603616149188866442825699469929050877728540940023862160986131852666593228659487343659336513925855942937535199872115435678912651810669321725657562923582340631226668108342416927038504430236408474056781603344462468550920657791323275282188910769579836843135990885530636097855053173704994332179988343797297296541010535112038284376409294705668012446752329349617488227314737081428997730303008839338408120196814722489458393125734293159804946976927473613495868365511890098819534081906032533331850602385236854043969953100283243489105367129488050399815027320823433599532260812805269153752019659514129281108518780905987233499142316703571932308342781885896158173887746666947037537229495427653391967672799562771687842019758625687561358327576723248333354561899978119200391679694216076334859178321631553173323007481044106566407941738664294808755104944672803761157597534875062063544385236329533422380177425111013158371933177684762358054858482049751530292173160186851562955762807165339939691821123852520830580896055117306792512352609592573617017660701962549827160094985434026254011418877570713131516639210824706847684226184907387274481583727531898917423255217479224996541847437974566943701223076817875782562585083216291239693722042300429215736560877527341366289766303908266070814956494630550073117070619722753975636246337988138016784229391972765304958736624041427668495102050231274348950868472766683540149728851597360071438228820281600743718110014493951574072996891415737779421746191472155206508713811363522110600573261017360738000818289955520401243625682555860002653797087208587555974809877179652232726570659450075175252653989248635464805223665433156561992398323223036262740222971010271814140107283516328630280746367803255784798672436777727154751645455910603553224558636423473749474253645000710851383967411437518581983813985903333874568388223483399626364385698453781553456576923967531261061367902008385577373924249445819930205292138024553916923882777135724416893499454307427903752993998575177507167209483369182796739111672208077365330824190783285665552803370018155975098663668627649422512729310131343540142469122646885760804730288017785767839207967917089748541582043884792890667386817678029426595151390197997656686331069748304454285566919486500891228061804391247486622712366815855297503777574403520062169019453780454761083362133672322639279440532615762049969992163901729069855918637252278367201866266260316500907226626552391579735512818943479194952405937160764221030097108788494034741338863149968565151835576062405343491029099434887069160106734128101375706941211415615286648315972928803584274504336358355070592859657977397990437376951894944232444926085697595512638504895843695424011083584591224697678062255124131192635691319235428212516570633162969956941668801434188713419368214833908873196236292355724758622165030253912702781160525432419778111612572868782836320187865000112973639626864926655786838492567021760263904141813644957316337482577951471109317626555050058820602032880204007632948127345289586430087252755562173587922552146137668872179353475751842617424415004447587788094722189822577719974711337283012890213191122416375498419560618269350383099286598426117962010510896473765981095316320388258015605560004425109239575733794584408388714104079844560543174634487751430289236367764932808751213265667890178682765315730680402056556828799740044149717214095406118657945637898686492823612993698250870384490155182689398492250580223875434193435800747711423872025294483440313960523832996613413082629763270004358491332118433481162119858004806217205733287388648124558704929168833056313337746837589711543560849005830775264249500359338005357993885721268076626403912233233162402815727587948944454638093452110893951210772098759235360743151637558647299491400681109151592648877970736734574226134327488970892440677362864012390331682028574759464356313674240381432873936362935092400909531558173627163083676464969034372203716439663820414346424037351550366861489359828675156259430367057926012532387339474266307682932503373628090920942579175319695423155341501573026644686769381224829087628170546444945252601731357866988963308616482341520916364079953175968613327094260244296126543593250654196531039707013462906218007205988644243055610160543732834575403765872733782565652283323954838789400620239405206961608082105438049103112440698859633373441452248145315402769616267316622055274164414260217831620242528602504660870648814081728201282949245898083452686912208818110143288519023752344910257771579845539595107048747821468304219022882752882079484674699804862379325253333127129303891106977968600648225112658943122491238904578208994714514293476379029680993792111340962085467714589108669616226360410391911755123365833977002564286567810774655349088695039840896692544065967135307191366615796484753546080657280833876032492338327061210340789130641789135154509529116474766638113078818693053996081844495992885421981163756118150270651612740676644605438157044205515948597789854518725425986460288994169249960747078485473275159930740276024786983948669358247432153858489639675601087958411436056197942333287070800242040554542841721748349511783890194043786346327714759658385001920431411605922194026749115640873254925156273038490940258478786921269596839128276406552302322579908632985113933467374153124718836060736065618653160565285091212491179317648541762552872713239698975688933720863562145779624942031315877980782725405793347045159341621555799498009303854292357805920844590063916726073284007180710070487514443961253269725248251400376668957612101301977501122586520541422886560643268170817530901099619111504634212915738117465762221112170810546341318326727773665183229619955342607220370243700912172263697406977072022780366898328515616961666568487832011201608333114065109729056019726972594039708533817182394112677181620749281703293953565432301633756094516429568601502334751576921171974926837967153402454087893917182047522966240051597333306996480099923348901774790975659576228312451537460683896497133937019482445966255897202836291618289444927339535684164478954011755608136980880845599525002467011988590367290349719455710854441471088903564696267458166867573237609221232204208070225283608079524554579558659880958440242786829493280607846426032725050472930405083160805212622472233447930134770294159656313131011836882536197190477763197180352958690729519046163834032546972121596315391344875149460232690732377829556378242606967025169453267696181647657974932010761519519804340440717580311743866833144443433562849089098101252019566824605171009734465794845227584361556438555712296863453251490723933392113517225824920651222685435515710018943865769922368594949774905916222603930380359390036120123025360186609000932610703756461632941684687766338247994957419608259345146776659114576439812590420810250435607644397882813924035283758306529240856488056464215577097076394430830032403066338539366020734588981414433670023498992933204421276778137706768395709794965657543393962905871655760680067813526177933235686693428789706126647235802009876989645778431401158318850093656207977163572491814275158883241549383766441749649192213727811784936762450786364783725322167388848481673898237405234740207060166860255771313037327331888090347619996701811956810328193325551409949856463465124166441213029508706974920992311451823602282914018373521446697277568969164233647113632960625281970994096349195600445061135947936367361665317726915120993924314458873845908517251067508167030514951005119734733143826119657361621912464198018231852599980808596320853425016746790961664562336087170286875192319598134295781571163883136705222711969234748627982285125726377269156118228792808184694826735569926896385807712536840299359221525954687083067875437803053886996647304441327871306519731464055751575113060561280572727326887406123996520170984161003380412643518311922186367502167417303546601304470352202351786205191182899456909171683360372659649777270728948022635225125821779770235634954192267253274240101630279046647752821796843303891227218249543045391555388362788827579634093770638070082265309040220181444870042896602457254378961098111202997341390324174630748014005469612726857746713496429375245544793533099834320276980952883857417119748497524689272293682523883832459410007080765389958357957434513114616747085514473977326091600930454915115551495160335918062514487045712279957905528386636368855864516428011072068333587375037418556293901376965895129875102139302132027590742062458183391251274433516614153415317682967433568783107968516396332645072702381339297903200011507256701631679690371482404632109934797121351811421386789384218081248016603241185728220857812007278370321510406510768657341816160974471626271449851426279540654895603119235516494423464538758178213359476219038755659108528928208066950444440720482594647894880548727322344953190700998646618604322097012258703687998871206458196481057786411485856461176684558187616279557915619910198322284633950205270734175361832547903749092865388767042870514516430736023148454805469441916370093637544258540930917520837488541010104103369109602064945018453604142338468281551644720687190493330566929419319076982937073087787382260591244550884654183869596175430086816483729285009658443002069490161611926714162700305483134673395159075593334720614060203285386701058282033955663802253389163176238730166484371884865094885497501837414257563496966825803098854906838611534035084389408034293946659204994355493287675933432323322593549440053493586650355266104145911823445312233428690352216670473349164911330702902306017435462675457024375199909137510343608507601864860295904111138601530685546435957678737480771217363881302528201358308159360197784915626305845676301493001285572088960292596115563857505144915696196473923039854840439602746700391971024431196237726432070933452225508146184201675791491280574955718880908944052498850526467617139901818187125944698397511640043546957489175792076736152139536767189586657731809040212692322999656990270382030753009748647394626954296904928262018578252523903043431793911637713170691848980676202864916375027798601004716153472305193573849483628773651628090193137976581393751997357055958456720157129435240745501461055719950176700990447336752433474838811553330959443554266139190633006706213438083175257927599343172699820118145031045770237218215135672698138467431946007004326037912816199626635442773438336722407457637712228048295762503180436921143137836231704334280681623416628753883118509878068447737687631791342330420014188112135592877082568000349535584273992325666888975544459007426695057774006816346769316175625702916611890727032279509799282441359836253942505029956044247536329313719667939714661697964595659523065527945966434142383846817818968065803401615629795376936863767218685427326555290756583759204862149982115480979901613831664782509284320288164956197388255364533520926290625476240783457731165825775166001741055113447115184078549718809908782423027769559025026840387918151878269571200337695448631884245337919856086362549185325844270153749050014073377009238099969152742773446841103524583452143280197686105145044375867409523094746135945436421776653450931630718306647152950338732090594888605106366643870878389321120484114972949143068497913068368277301850854502959924217608956306246123270834327612795981751896666546010867769507089602318355248277527651439599417147948291106919132382625894887787668526959001950992812045448933195996299583682142435416484829433309648886858016082437935180490322114161599133314605699303313253613697605992441734619057220375740792265700151759077434511423990353895491203107740391870220887960638159859433560589972327575268601269201792344125312241408717240377083747808640644284087480602683389341295554204002013062629018303386407334779035996322276471682931658693622710028113627280290868513523628940848043048097351835690672149897474230313663493201165256466479322738188948918890201711092201174053415105339613971795496383589305813137640764677625349892547935460052880427099873915493029785989447795599652570856074144564687686135790829654526409052453734628101131542946333474470677815637408004094976994410217780527471582443459834209327902259921874680895913534709924697517135600088146142083187448913813847299519109452858665523614354717758724167880414848153255814714305088030924576160676341423052903589650836643088267761585122837588314788104293719723293606327434538358388680343204028665777326895526151300716363551275051104722463534514843469791255436817919478408580577151602287538797208542197646015021188816432942577260326507617991246167775361049661291301185642992791863198135362226918363799463041538418017645513460780966290885497948275443093945488189960914291853906579171150487837017266181229509686167119512916899398064882626889146876311764342919039791117209580228315561263603093117462681664711127586205618414825855626701674848016711405435956633080823443315526406770834742390608109876733724476160491111417667196844679920409411740728582653128600250147330546674350521274320475184956780141981458873933707261912999510507439804450899724727889755015570032796265115372041435093166019401554613218654052662885316218836863799052809205550378027834228903966366366441254337530173762856256838007808731549877679853978821134177314690227336432389910275702565011378673045985152852848377137047722583958999070917359992714176860664243042467075397599760107665759370067521255233024634494581112403418028767846088639839830379625839330233162621961087650142021662705638260753293989194981307938985697135040871899930717157057658764758583382088980480139029097698701146516993030683098484821395722239835436952435359991522298469457990982382796060275904172429214989773068962057989555835078935859493716858396320315943661430243928296592595857039342590482891988037680786542011304061875201955039217810797802012615202452457148131137356917844454369667420431569806209343227678686193422489254122154012795957660773944247351084274629931881127435091667605343902318257465564724131374094708150166436830207008841816008071898170067674448252061746307434849411584930113548496486950151769403758937704203023301279111628365128583442821899091438771552364063769024884702501653873951638266844449977530914960331461919458815543043786158330253433332280648492612609875411843523437307653173647972228421249134099214868361319057050971607827012957528210957920453083073888264584537096206203747112509228727415301088186818492127489177944631287613580393328091543014195193756656031017728227707715521898889495817894467764777938486566968278873075843506067773930243983245013319326844890536269397551650569782355896716957134141976986659095268037584894579379867698856260597084878742106255740002767049110382736259891387058862421282914183746650926883779448763000043355138690306423733723030054921226551570334432940755280420744668244551151224648176638037712626770560427048829259381884264544777720628761976242027710659445043047651801821516147443603160499184743770012692928658427439875619899063923002503723012441708046012521141777077555109500349276890553264932774157799373449300851087011353804006138396179109805720627687649796054272492150372880947204776905890405945035914304111586876083042629721092499788848349922893608585499922609210937675816646055322964971033959348572157780162501937021041452833341645442077791689530886823692132399820023135246686598905875002975260163859856938381491786248909523800774350430358724213906277854771085149417857644434819499913847668929039729326158785244504422724104937389572159248441704647722298740335888419258988106176212417448588051700061721125129969385871315917935407951823965664788977266930816942624240459017562455169240682257336533523809427884208177543357289217909346740805031007812227731431370302237197981978484441982828203151707864149375272320116892209549700454382019366710749694072128306096198846207438494399498740266843931019468031109191338089397254782145315137049680643917819862446825096581023720350923584969689275619450596012922889606650311585774237530063041651168099337923184360106206280369734800915353797351644882279584425241784496847194367445633232648297618552001243565644407439935791511730935487075158382174914483310798754773122243725743145596315380402637843146077030240916784555975978795649352313333458398609875344807713633614815212817173977096408943437135146479158080799342780596413788225845082994843605443239651047727277110449965827580512250398556217942083936916386594236032614251611951345400138350054218124281959195683224922782760134083679039470993485600636454563021010647828304896513126483230299858954866096971993761988828807459978388071429497594115521987454210343887334334940560339594474651857494971981506777884007273828350258736443720065970435600716228033932652770996320886185619718054036260777940847984744011221905305715657236469858262246601978828989197565120998333610683086229014137190484182575153911752729250594092029644146477766952209586321113486522161283683543613189301138820602056018682537136892597851392322717492939198545249503620638977718519574546400859342864161833316489068155481964993502966252063364519036687192793259873715991609938384178713828081175442067832409068761258271435536360201106599151099874002022815571680736036436094552544232336456046911786131232132926602803740340330441451750194214899005956923698230170430076627688752670385785767168239062952050090986619713438715894064058223929545509899287926065778244186270215218714370435015950541395693762314738863779103088611825884071685935041786240666987468043688813102250279341514330573566565314567447551312414076127422544887839796667017942288211471249691342417723857528677242691038579452047417712541174004081383129962593522374818878718574450335976362755407262468940870296134810999683465378444716071284212190623115270438152051664514608268136764414839434092193707444014614550093028859037027964389500567050509206003051085609569593222344326052435268168794402987172693905141717857048255376330683876652155799332180431595384055234516739503244004684531104284360632292500837522281158111827083974066065343356878962847064865300090246059765922145894386027745571053513920013814168269834540901275046685650260110493869322093818887890636454545755959301018865212346421000819327717274311024514512076171788344116889401351258346531549298641541115157260915881673608062523318828596271829896562676782572883301507196432362984431476629446996777406236897775628344656386837276895203584422756208145112228498916750836149155503606480616044800089021635217512201892468729423241268366171822705047938513170970235421961672853183504190875795623940019909674838695918351016091596731481031626767706107041216570836019537883054353775286513660271461845322179105397221254678484214689662793876382717791139689905100481113403236468260600967874904573239019226729016727653275961361822433983966475477287158588496330615757628293355741567829089112156432681655886823293538763229418868285699802085621830223161750292019059469068714991456098709471613282054155714857323474033855560943372200652990948185515464047804588682461587626439293764697334959935859600327105196025484634662798916125527928040136949202819636541096987759965087710354394168994884281298348142598070757681482106136461465249531754531484020684160591443216054505661119783175826116852485333824855792799995153055627515622084153950486436271659711533657614553444295004475352124512031898540755478852187560893365039916457042770409476325705848433268988559841830745207527179769619459737453977662224365671407455245602195782221691611284054172122730282840661876346988233738153421889362587632046253857694234097932435804295058438761328774880458539905391740902074465824931401996043392557946577615427092515685854605019943572533578875314976330818219537003381384112998279499820920926860702131665939391425766651825781443384470832535292531413726372435902800376464706877932888430227850596895348057029146062578680033167774498235943987513250688367867741496802588826297318197937281155059765118110965238448824140638656023530188879527725396787657220783055610958820666041352076832791393208415434158681762696022756720888117962009201607717311662681391490903042786312084891461219666567059571497558046577105822210414006380175412502454768032650125330535440995025954805135895461465458522720726494973252863139096415480467811325533885883124397885701974424301763974409918918611052077094486536198340857357502423755781017444895738514294901955529280385569102772729373079395399873574826712245351004668496622953417108314273910355381681188927177363368817607089598808732274359193958726385818008602487471551676219507523137196911636112936950224788103417468987534690369709411248922277484775499416330147945334987439716780932004591709415010638833527262424712609153933905612278279199956333756743912980842305821086402860443986148544254825858455186589812697937596056419799701656789173527634524861031816853116260440826994402709907228635624740959994263307390304428140121506525026069702395876497751052900601948413141996878999871058789389076884095668952108096177911133455255356953305698171169464871389653090856881972276068217633148627047789458261666545355206734389319647896295992554978358813163310578686727825693777748620788854170525319728585673870382713907550190012902014277472204584356819827373983557096376961969133227075267108285259344574978173782061344041274733472289045259494289756687224082363239965900213250338069434443860174588456649952526673145549292645969901146784107891325741816778757133336665590203497998927374189134253918228078727607735274616688017185720680571619709124357643017158830590142527023401588326223811203739500438605068487129413972885533359337225253285972758294793306921945727279306422218023244170955417979554806948289079258956884129981301401389423986155957074881759661019725945311900819397363650786740206096903081112923514226966664674685616317566637066259115051346064852673433737391536069685957315204834699083319190559389973447837065131783164282022679833144285876619266202569323365376103939504325892453617337569093345663714951486260573949370483765032464388580912937726118617886613103850034047920798063140603037431640302573757636570909173188705303615014192229800367273977025120118050729815003047345058679099387839528974642654435997335541747025264744165082146549343516272220677916515735158710051166772451906344029980196481653121185238717750379052561829044009925400009097276572286540093647576233882819055989473831787207365454430161112227079812656458200262132466719556355342870995048892929555643367667624286414863338059362294498389782102596774377565068120843817490885524575201638600102217016704528876658887374813101296320047871016255485813990961001303739194554446239112493474346447890742257773315381997199833080213045411950609817885646158851636955119673229476969262059657504643251391787981517641030780191988821028627729376603832295132735780607561322579097310336889957358067874048445119416820264416389356933003765380265191478468902785239214643558364032218737420986614297456874954302715201679305552551765276567448361304251271506743031636187932952239828290669685445449293239157894875245836321542856815065325118274822554814688553985719501209614822801692045040523886619476372743935865633970557383181681093195922337618613529492986983971715652609465240670721994205631662058484584399019905519763597245915809197601423947026589667412331992616436812666990209852913568409013940836619646786145145607254506871988013877195853949192278866546224177708185293587921857137482964088058976014411274003254945306416384585132470063292994480971114574260245509179615070106987406493134550857700924992426024135744784174709600629846995688092087215680311218706502024586515951254410445641496114162107650613464261219261992754730789553745457667369007502485736930735498792189399852366408141045264435436409969936116800845739760341878137741992202712043604378727969767744006488509965362363408427958308864748516715167361184883167330396815368994499326735927335173960121111917829753816375733751235454276526671626969987999183359671726023168666022768446557165358162908666411847834044058027487097131778280061441369287315098559211792608215993296868930525065127363454450125767967037760746846691148892534458688644324047269311166797613588610590202717924184124027417844387441527462578530063493540735404240884619895336638337070738068424923488863133304715097075120418317927611548294190552765432918951307730045654002894039241688299043229475949102247107841165006474932116474208424799785868835812244368876657130687411145477072752183846592246184613125054501230287576835353467865875711548645277660429194466930892859907033053620869632605611324803651676003330537290447688827799678323006864132357697193496843051898813652290139226295507420431939726519067403246758883343123584926211232076300805035944664046542940100649613894347572370695652526032037877172797794697314355332540497322145096953521709255181571839936792896492017655201945806587121851173374830011358118964614639908798424268666009780487567891139254804664616099856574948009918663480985106549180884542172032068891047738002299471637322578044548899966994144653941563229672741902176583404410519359458514336639826871653228952763565047278765386738632654764815679024719553673804638935363118260085117464879761291296787104305306947465777023487053289272568968437832147618222179259566548259228291800957656460382911907714031003542812457463562382622766040577909268026940775714385511185414068580991296910110438186791796163236998000931967123458273341094282932850845285687752479672785371380365051392915974887208531668040004282394810542972159414461117705297620038619635190463496907401912842271548029154805899687388952902831765277165856026667326285212297964587361025401057453210653680145339534427824815836651824338574505829712139364409927923950473157372908373977511352153905517710276911714796963587027550005823714906519072235444387136846498282256508552868228566960982294785260328389055924936659819270052957747591844035257465987845833187375885983244414901507417363558702980048225758584093988617971491043832702533746016033973152559672928235480896931831614438238399189287565749266619062840786202598372938407840561275217631821847331146029289378582342047193256332508546689014962088489286561417735737415756675694049436761886359675371878976003604850751888552994397651325517878160999274913598272418127676815078125761356074586898539469580739128695293501701609201103856793650058526912145911459054289877943883534442185279521553273403892747253063604807357812175662993042875453194895077538175399010464028166266808671619382500856843111301311134016074842199141600390733720330339363385411091173126191113361402376779593108050882235858740165463932348711219889342010217688821815963976996575231863309463545114346741000474871836971026584657642636242445299863981080466351233306680167355876377845807325574581793748987005757000822986107808544438260251419936735235289131132738803292544187717221568962129784416724000996871066225576001965158596807532997961107961046835847049965820347112127258017401568302804607884671921135755667837462558913187720323031048618410870618047376874066976891548517414364524367741359163844102843594015294302265978763743321704773315643214632008037387628989066100199900497787072739171368781654457733797580738754121142507927726589076166357454058637762042469864319291369385506311150088396531112351624637434862452200041078635332825794239009503986219236569008868940345012202816275160826706188657196644094607114030585120903563714505077222649552729950906726118027018486229996979533734962144688832319244949559608816690221312324672668450338681638655538751156328471009433347869210827941040884829152489728216379122565832847020871841848166546501486863372994270379802081420044280254628074281352770888514869749748777153316738779650117292946918722121836296910626458622399737135114404934922827220882276921807079890202984709715131292439430396824645545220361685958051836311057592322240805037460017356397424666414478330595636904812466180376358811285661826063399201647179284869806947865424260404034022980874523072646599087246584690264865958619109704466362562677625737506837665095858254927932440792019994383509889079745422284257994022072370847788820286387919379393521787110589570856206355528417091672810786317375972362196937769422016821029690408960285497258281650538856386279334094195021663476492868600154086922708694519067240106987272997613018705574913364878336752758499948132083997464975161235938463216894143745295008120023952864159557667816732104196387717396810451066779591035721367487461839615503017706635523715688960283159332259595833787712955757193275027452465533796411268613093891022984660509532552763185533429623010215446818899750473746547332071452011805615988432821873676502031619426225342396682726665775833200655956089292507222362157421883496933899759301503859912927336083353055616654453102726996942160153094268455971338938252004946204962433543702790521385044172727543740996418570361987890180248238934388845330553250216940277181239731616054232258825248650756450511184672568134560731234307615779937494485263642861514940082119197088970589326345803326904641088947821934520071027263408292592467946572582165472287513703028537694104960923165351376003271657294448636347192322343691818867472392930535720382269403795530608199849275512121013054990860842870578401125815354235751121598980852696333500480747580594456285843554205093647143832752137305035491733715870411827766110062956441277703649707272326288369548683436137414637264206812911292062290450747394752477347964423293530827511873129637173847522461857566516885001337799816749953001247701421702523613581724437051256745733476930167337765420686063159087026509909972209814837174521481396033469440637109444162815547597500508535179215927120305110031301015880152757521092821824898164328729813370619120539640376749302757043898539461268183851086024312928301123673541443218600138521864695673147946975718351638567478459654973817694546687776467237126238637000323256079919771934518600408586381133706824503753780093623279749118208482181740419181602320873613322065436569783784322951550625245079442422472137555121198994468235770184221991985753556721418965896345477353062885178912008005568039461675529332998986801645309269749674497502624166685918673180886639469026045668148547188405134810190616980854182196621138877343011887494162448142389956733012090648370588190666222500467869678806415446126057641873539865426270319906654674192116846852493423081466069702284194977179396365256987952346303704999731753930196272679751797254808858852181528369605139726149160707594801090589120552507171187064638206972855882304205610279529557886152452132180359943618275187220251124315885691005831580315522340393847081666536600924150048689921469506114109282425917879427418627077461870359830551928626491253968901250710156656989227422082102272152491605697252538099785713285023854255954106654065262956330194232085528439766198327372574371777957278443026867830823173530073159097217854122576980273370475322031754850156241291003708815274169496169520306919698437847359717914862840889698065707830940173334671775363921131679861607053361101166607821201019904205852799577769022828152235378933313364999560537619404274630338965971156103259737475604179053732900682428281525839326662020482912662127926643358720067532171872037884617084018495262161424342879240752763090807430331266150723325575813423949424388688974770876090335376386600711523523194132428729580806129676859052851957198386150758553089499239626233678171554254303016093315056276572677327050321281837838350899281761072967754523606079920036242463638074712221592005158495320159471024761987520965411693324111331393731353279803415206607062001971158484840060446081002569780484023771240427062905061505676624849582117660567895476343846795344928916744463438820971962763904778362017746321518567680586367776990401933420975354258761105111269996206609458812219384355727437515752476896232203885700229904123563253895657981600501381789517943018040570583432609230867976147885367461845162029876980989401795394083036320228061201873206574045243443386493528028136180527048737709503594357554091635788320058938558891530197964088260427686389013127577295139495438861711235723896696876724085966508645972657017068666272805552969626276628511598509134940282999283582541775281155207920957715626383229169052429023129861451239696910430967829369083365963498777392575491846227598385016765729907710689589018028777116226888199144207454185863802996203211988447450575103713912074026467151345300368614900715718779321008955969358948998827445270447236857249670871478323834799328358168269960762200411194831424792537675558166643807712160367035994005897484183760876175310551441768101616383352960203857765631784666495388190718601578300020500769376172087331622475786046174170924922922686514921627969944826762713917750008084738995156171917441474421969369728317039709891796461086076470315289924485676711819700347091173708401164995555404013150058512398971893593155894372881420661035072715860603813357457776304161607137133953323799416082207416514942368332295700975486606235077708532036986857354438174881789967767789516086293189065061110481715376075756236055151567513216315141049951248596167279527611834494770588333797608850601144230448327794818528809836234668517069261039763382610660010780076665125304255517235212353557330574471834352226159012914283948484400178058447190330841968586211578042349869094935776024494359438813227390554638109077325065284204034988284017966856958255971550339355467112209089390381015918708307412872709830985211021097682163652623679980697627388993843820568577803100489277920691435685169705181359058071986532655249522614379252712059591182426480707829245597773219034994824164802074758465302645228623725373678882798050223255902912172021552700350816195353100532436484055351995173598856655194283528968083332079014892097168662924685618118936637056029306570505786506029694200273851431077733217732688766979799576294191508190660726707512954825168998008651773409880286704562092896907261377585892319414890939567574461959978299754625162024628568803265697371531492767294509465291204943410094242591602584730366785066844435900115540411934119190915768662412674438063599617076032942717337842139474714888752988463732401803896092479771933106256957081629781176637351889850626642488702710027683113563129195368984986544106836261716751950386255829657049124744274638254564474177114110550293870213719032538356230530295874230924933426635561125801923620792031057213140335952530854713002115813081178048525183932066115980265917689510180422053052435645474544921976296317381701774497145181064927294394090119373342413134423285725919879073945340383384834323519547694842793338163974594561834205575155324770106970331203933776705546927933226049067600134969190455235151604994841017372470803990050092066444318400764737047392512037753980839664445730780265118520249044890593362853257921506710794704321527289076672175576261467074134641049084821876927890191104390439368087140933478828032910095866690661775296832952416008643833998410991779078890841613858693812259629324772049436917385738896002824516747814871319535748895527147878071553258890548593718703698585447024741968673913508498583289812823473661651232127481708095314609550224079867053096535715881323382978505517006015932970786913184510706075524996887097550618134778866415778403543688890115138108225929748884485990595959037625409964941454064134328104864016539117720763320833817712574493524810068410780429748694236576681824133738211461882799427141893495577441892620501868149218886238568273744305572566198319657833623318396294114846466266241944641427391477010476384003314337038202768168368151281741673535784480036822279758428552929112048888217641064370552550482290571600633221770429240190976130400275829144200995689786007802504296688910419945679525222440228640245672693215440105730608972647267461430790327633790351814346805805297073766898885102952625257648034556443416101724874831513343242382581889493201456550699809263428592279736052943784743264385458528752970164175630495831287316528735649595231645977153066171754946845960546021607583314318136987066698363909875194039216497182499534146647606274187858674132331497671581165720720025819641984571271888618023454268096235580967262265668092986744489816656043565305742751853743279616083040223799780515746537514672967646127000423890002644941065761054051044312355252076619893526241716048123457726209036134558052273079262475402468310821863914262877838739596721599045779767486074423527768824773675388139708149700027487979060370447929576683773394520750190672350243264930597595002247135037713361724824483466958759437735610243238944613411192987812284346897782266726240082474236397220773339362008642020824794163379673609095629656809962107536979322683357123077811945742167826425289967053804897139791706518321857962920899780422203692522343540194399739433545783532733402553095822196176486676772825084138239847600890353293627424829121242038046536664804923312408504908422400560406398806610405692438997338955011171103817596236857749006337008067184459596561853564346718338518364323069665904830783085327972550220189331546546755730874355741263385367101647814710571416152581601284496680158219072647763945746636603730027143009635825943094717395342134681993266094793634824655145958523242237695861667216882151707489760311281785497294864187439893483004367094910184204298185086326076724362479403851610176714647893673852464580229197288310839327479078759862551572426739231636580370753965590509312315838894615907615688260530033987886200854044823224688744282174432287007474533377750027682107615597568730156310176563278505624631435557745866889738106993086278769254053985618295932950052443940869294167789904801847947396723058673824606937770214720093802338137939247134400972076525176818595462911984544806151733804147080143909020545338538129616240522786594555037950777109826991197183625312055785903992978751167150158050927497786211501929821476620586571924242674647538959856932869067372222665829800079293972475674201565633097849793127923329592817635046663994290742579020786230670253075151373271731312041266469985774832861979796860644855873941985809270900649803160490042950556613665064781136290838926866412641281097871802404770301400433777225338830436884685785498466307515932571816723555817912468693242546535966268101463559699553926462663174529207583423807942237564045687675897326396743607286657817832811490447945981494969550007253567260146180844551965329817833857545728077469100797015442090483466953851447696895433461909142382318507186544191122506973360839235616044453438074092067840885698507591130834230734105123723712886128589831392870338468778585327573474180127845737949349003884808125847513302078150077003929639768196665971958474227842708593396057154163182906287370590790091988073296855127839283962693126067894817610413379862080095628988951653922638562699711265211632595335483734145267638167182191610948460559293207996554615326247333183732343199141084906487795649953441443594523600410778930176436146338260220942797022162171392110084191826668229035242144345407980727063553999298605545973355308701044021144342982204168576884294793429558461559008887725911670466810014429478945681737488559233545812689434589181245627719783765738050859941855356914414637732203337781444135682282959006327042382844368942889841766525074209196012992890481293197756925188167151554375934329347289361902691653012078990773671972138702152094192305838090479830579921693121555593893484261559135407302008345602928511993979906386270200190753253621455001612467232004920120355852406565486209132901937918791696945083670868931619351732968173733289066941855558795807661819402972370581023471200622888383314964688276542708384884676451367149668193287643046588643562000722282645346944089978338100471461883685353067767807211765475458595159924584909009515252330648481199969576242500884759692267902175199643441931537127256195170721854726950787603739071942492735750348359061884978048297001266949247889773562631932176555478528996329888816631816328278360518391688306523623988574037243314260760963075756627152326610114020285827965356108307542700424005438749884420191232146100047061024663358511214449401613382913312001727343785384819271504297748995450696051448814582164011120956346035172371235080967310283655934892674074410901966675901971229525140453352234176772006029794358643664959828913140021099073793984271388435779824564523538195154586665617742068059164289652284956390282986125467311311979306964268026374045260162647150600915141357138583283726163028099092390036539369198261933067951096451725779300385485535742187589200758630180635411134704960228433293940927021657945141805374439426703179030304352371012396290354005571244803873343617546152046019842195137542053971601292236150388080084023185182382872400472307969220030233115254313462507646636874673661240007994526204711862436322853447393286693305189278892943931175107302421936649841328219345222105572011644372182698181596851086483175906165670432003618029003263762424822507617333672846225499875819337689787313039707717931000752697470512447802816900528486024172926662577482088303393223569534408512410960730574451474015269895349676323359799342024606625269349200302184118303150221456622277965864678757396414577523609300197424134220783641286374409173003914105870192143352891480061099363769640555349574037530856632387956227240180134037628317911530979968237900407777620779438372114688423311857338850241997710992277945973738032227451498127838196215639605853267008104981758919391891818547863544810789041553430342572997408354024360870280434883032175760534213719888496997201893240450899603374852517528122841652856471104475417010510870644013291086492925262467691743662449760594984152302455822563503350244041634580449192448486221111743133844588491563091039566039145567725892494832675948475261490867593344048254069263358012865009003868051057440374348547834484696922475343290499989781563632627453385701597196835018507729632401384656371936734202329009379221078574607992764704010139192781341856942200837901170287686060911250086823703975059489721845563687110393099709018090843302563529065091084353250916694348329979315131557192763669807212591998088509014180172855444319175284936486370576459431434060595583775828983915910831893802615846403300657852130897095257985425944283493070202130777291098740046302569107337305531137456982752958680336818812283359147578756674561671067881007443323534709870583207075887400575234631425833542206749538697889866807636682848707744349712815781472865149776941927777327471435023651534221406968802242097948584180427994925249469253036792153400214608893646862641853643911929291304664746894126040465413205342690471454934506828649088467909725274398428131160798923280087296939652327354132580946729887459015500681936317540488120005243732122291414386115896417452324757693297093817646688068962150643869128736466392978573013237824555703235269118321501280706033120275631371363653701655941091502675293807516813404136424826843215000649761497739508339168984826488536467262737429760197672358768844429347339055934718614331680262216907805941260481365894207814444620272896707683694887521210986264772019589028234355265476501365513799518289897120369601882847531390282704575812793628366608294781665614613680759225647990637576752662287886429533804851711003426670907552940748827145891923019337536134173567984075964825647315654118313602303111539631373316893960202348535145784840811751382729420270183658496957308646438224935477980755591327533994441907726868919008724810863301777810539880680762306906583107078685721809147364029542379205680640355475055492749549853856261682634164847794633729969504877455998571934578259356235315115776656430900029281768384271904368999293819865721434821493916033782460293240405265121275849851062384592827004870999115729263882669933446564391377054282456703118964250137004690180298678426554425349509002447511000954918156454976439426792460476295925071363035367485622238106810135275785575519456542608377967897900525621638544037874297230389564663735155140510244170547937273885389594725581901880102501831752608697012340947773566872111725876927676297891877252401547279423365434405703076153332346766008515815659296608877021101291925304206069579980606974203375968430856536840757130043808041736347073799409750011490479942545970897302667690364623945272370132183155498617537881798571743276789594767876984756049882248436111096304476095689777160665978954901514886977200635633429185731230665656404874213341906958912242424081114083267879970730265853407520748304355099375399376360274268094810635299809742694594010118649901448743471091443747723186503553300373731250937980690623372398576675586191282444872965505286784038072664215892138418840797736924725185075400927331499758970541678971049285246943817819120493894897326631540388853654839115543971924539523356324511183847703552952334518742398206303311142606136271894462880060401285971697002515354944912622896660496900503817086427157246445586460034627132819579787361095087870114180715696078443801007837493870320124964905004597442354907122405813332559669909072790544393246097787724138767829774896601230389916662759647640500982184688652927560658978415261147243274695476407740091720357248887897057964032467710308480649007892611400362789503612728000061734920056114504026900592752857085285005852783334650627225369642137694427793025542457943500649452540927050863823656490294427513512406226254888020364529650028270622250107335886589587802960020177226313644420197414484149657496359674794477419660125967773006574240605989989030395161551773698958420659184017288629589039398112055296792977222902641200931173911020405575303933661972401758098331411637967349246900102390418843156317153259624360147640019987118217340743369483889077398702070759683192779770357572484050135734025582526507971218921869658764735773185372796959808606741165384185263532251975718639870227459256154740597692153238075103525458207823766008108584530575528675053960847729048908143588226608154786199806306128670172060685594998012858381580744247971612305347129830858117581060985812294913412552647994691627660131864524292382834141883627555523036437848430655250662891392280006966319140358888006422457565888510876157315182518933293526797935383351547903884806006279316278076436858756578609872319077187469222188011767723250495593040691983311000362316166825399826550896771445288853140841641798776249896873569824296378637637277809302292320721110163330668763260396026301508837730256097964077411105751619808367038470750678922080033767689207583086468963484623750824082691645262032870983268767723703026886062582827252097875984015379947289372335809622202885138575421721372850677191296754928545303875108813766575053640312067765626014867807423481951860709247082816012991211288370066715473987960324115486607138960885148526816977248574886461352647805880334947676072981035379885413314219981057251917863005829227344396194092724863062424281911217305493675905390188269439757159507479819723414229652378932977753211613958022681630418333252289861534161483445600508695418859467842525466249673516570704603629306433669588656195072520389238120240636106158389665554507757437248250002665479301993275295490757266999440825484236814459974615113275861412891049001893903586633691286458498250069900455371644440924563602568527260101978152511949626828185844087811794075544257992510638171966603593556989902444067629412608092251183297094654710223453037889710883359057106554405846593302308504798600354080978043089685354785380122533396367161208691805701232317526005177278054887332259449897963403176843047403604622391485952704336962355341323855986720257970266208601097379831696715157783751949686104247052379375976496237200560707749869542530745870358824402162415003211767769609183094399385159832409385646327496754390918829755803939954703521475659894007533687543485164175443528807745709541844587927658468998500400816568310630495673239402556650065856104603416165784365595887255079950961950818555197452567778493920247814464346427890613605491362763752787756329659352842762190239152046817351242010108206455643053420418932782326722985147808016001937495941203779000776164291841553319420497140748952331657668874689534184792745647772165818237484510377494685536416804486479093125758525094824859291412497819125702488629978372250836516621811583798892524675047799000912167525941696099192322952244213698481198826239905609984334695600298002575850004750023290166601521672910417456368715766988422380514320446875117282478001789433324521113911300371946558006232092053237836126513185721420013104499219357159251623019187401964611911916533850872771451737161973058389006584902880395164453094523149786988490704204053016495544539667151549859133208553749340111558237013251294425205163629423562220730174893776085688071016406795744432342955052018275326305731009198424550320766953976756945362055599744979253024067174688408527015831762145287884370107573742226827604818767082589206219812101207880869421352591168174354184741403914845674290418396247282267416322838981411223823148285074051680324693498922415835113829733271482112810937021215316922754827625170542132541618958553305392202425808675036428046441041587818500315559583086430598763432397634864938135527057523944389598793065562430330244075410856272724272443045196479708358300736660349666430527780652712383123594270411159724225605181589751362129027177677151742415621704949954188114676721442531056825542460196691580458279406898445969404842468359498699818971534383826172228206742073292864375710288160491671448956679554090688492894917834932737771863376859929181620819265247281620037336900601961343812371484839515800918692829112218886496331735759565094330208629370198764986923001249860015794554127879192100872359041020736843775153835494485153731486346949234128465087294254209462616016810094886594144651582835700551447060717101440160762940941844996881943541283655968282052665016935025592728945488520614723675693357772501575015269080190413608817273607725138762738405243199321581873642372682197016874098995566444891073392220770865365429640071283366244976386806143208969940868566834713427108053523243434410308675139598732468184183098041540177184070139013333080724578362651354010094498151280115275915547584663058203906431661894430444660115329895350727227445330641037349036292732803006176828742415935881624337461351992357880344403727965036860729572274481111328087904959848304519062859182612468238802843295741764485798040141339711774622365973080880037817945386945577081861164410870576613131659861350790760027442249939655302941898705546738773599887113467816812863181104104118144904104816539857849724767657655335623055620131750192408071041660613615358346933378184403503110025236991366891192390418098685484488965796161878219127833658868558768873711884000548614847393418974717222149802077215089880370614448766364536686898535796793712859835777404423755414556600070238694790197178189712641932370277199539559864713689035584178789732789170188164172221369242748014964280890752747224741923306208718150876764961770561581750893772846766878440784446867702242021889852584631956515611624341122656388005593748714265245842465994461337461845980149428535508441184895352998393097927970767960994677385249496342170030869799443436975870560604241044462211597382872782261798339109076406455875755902436595906150855395631798502283764717127745041827627531163975991212861540610253006203378672945633269956997833524197032012233490846745218019939750417719213465996499455224301082102988098821640770660383411850641358395222894959969848176195351437675081008976427790914622519305474654131919127439104387210577448288603313191551457822284396065561892441210356398797454279115810724762153299949921858852972565359177365738402293231562071310471389555301176033821288131772320800868702607267747019890876753320112278458593779710987786937626883694789730971229532414062362997774029490983271606483561156969094118985216996611594153247491314927078022011891292774163636361760882952809470551827266358830526001362337781870906117939996541908513518130586202170341308745027814782665367242487855418068376015836514661778744154469646990467155290864538757507274062635915917343847930360342909310126445099114463586754251667301533096432197797268552796657053219868782330075573698226285341729382625672906965373970334490946608532588507563253085846826687457628016256466213665505297391886656269020456047597593399613692068602810850789562720763075405321355897419142323426431384590208350836384404727219151523192100323031307950679002414055863380581344928455218134485786129985402347402350815077846270188395767886177283606806139238886208346307325925075313189062531512711807070515374399860489177463482198957130353813569497571438422848711970265500753823144649434129807425635024674204740291726991076851916600520231032786151433343638131494649486495958837158211032935554034740726651357569432124887123124997477315608324782550749319600076765556308097575346247394504559799864588630094480559590473719131461500718596445476026574361189368762865513976368166209455583404982137012715239227866150369268248599506627844414440603789321933327759191813817781041940618227206341147836271675244786604766744763998727981406413746312892131739476226068211390821277544217516958052643430297749526181045579049390569241224100567493172314275985182983913755262906044704605770214789763672412328187545796129136308187342484865807362440930181819958960285984087249064368167569351340004453209911631481165712926065226810216504566515997601435049552987750308856082585671801940248942727152042624422374066840423933110107484461918358124571461548197454140741221482110740603424220807388038521943705153826108348034634100307910375436333461607570383577400998486398228936009953661069625042792727061560210964728353337160613912852580512444447857218162712060031973844251849858939767963305527008841886263551610567660731444922511296843404198089987610294549929365173499730858935888499540131709637505478844770771337764627280387099536404803919911353850795186986357502970535215973855529731140333066948062533331930365134416906300550545680014973533493272356087692991934208675924421168630578111924073285718190367878502029523491751516621424615473596998088048013049741305038024170632001225374529293077697118978043371061978439399939939633361032195339862580723901008480155598042836550792097532048178826540012612671851772703947037899909562191172555036155489964827713593738988919384686329812688514649585218775242510574942504455476820194442215437496077017596192413032345199166521890236685323992807070102629859241429658709080568554571949259454247142786105192703109233355549061589872343897379943830093513641799660342946695985348529098309963694680021097515527153243623107081302126005451517924109817605813720250754458929918486424359494666032755368248293499251263315006422528820049947705424788260021094592205189367236653903486233315049693999820880316240480244688086527237614754672775154244798373876314199026694312043190619306437713245088244780021419445987964977726387764424450104026256123697499795878604312886276584366344593975726049910613093849534867607398382516833915280688208048649065639558863266960205391201589710400081750122316204637393852017979477348886070797051058870903474223847997505767134292951155649195038843371156395842333601747206945806596254898529860335348785600772043565304014657621223526493767145915012617078633447169186321468240783887603016302550920646110894265828794913946589730868726016582932229703910419557429943728750660186322127247364362279415771392457720716563384690259396263631029454371758205359478227287235236226414807260579776882211693141230408227456121225407861307435573971792821644864381912433707767345998064824362997017706519206725963904179096703704808790327464541035687022514157794145600921988721664483366100268029623475929380240941244226728484885556868138772071610314214529847863239936919981682616140976742359989603429247960956058613279711830758207211835143089350712779107292444695649399179110771436549120696021348001640968695727407736431839188476036244404079732515991756064360292372966145732664811715481033297082837786068529186465212881924236958222104361449230586406273338240981756610394358124781960020020281162999681359837380077665813178039555590699305317880816918681317328307078783088522723304985979224736326213331058475111090774542694149292087637576851999289922945478753711043993912066482165781592659234965305538124642161686228743502451521059974375037506748411102988121295408464794566492791632268539449821026328480835599227783120745501028298827630266120614349374372216602336635764590670925483843343393385462476472315896302638929446365405410749666537420331383742971305839438812560217616491785926030616236954712114977056407571542171076998539015370373106096677186824083894176486239528382667190356395960511449974296539748114758571847368253754569474131812474911692471890002322141569706980268475203229046530150626694758118270131297753015904969141378004631046718230285468870493851848009473579935726364796134402445639809797581723875053269280624895504694513587878779573956698275008951347062280560733998726214200542503769884588674633953224798497478276894188410247833390113873892576879108280642844043276696577114962247808555405727625406886083972534760383155842395557796224351081155552717234858743197581390135157056904488899848758546964323511811257713016081199650521133672435128920396715036252783752837143501409349580502237297845360071171020963230102949448017727222524896652143739285863032328089247286976148812524312790605158073852442927423495674554023219690604572640536037687385010199134332668866399183660168909362867214770301979703496444884356497169396914947979901001659790038048328478425918767076916601544376519678496140276363853349140009041848394641312448587526488023197205925378501540631236865832531166491968900299612473950087398874811105921449764048643823646469466206764917713734816051153601333651734219201109428437793785742752603963136363872493245548949021860688565954871926308786903028587646812769674049002101450446235569949394709723997304879341000049031637507709069116697896655332937423134377379827863384256823414391334168623462353163054739565405978066830849231405367763686336833737791155651822695762139334354821859378897631791910241137099948269616833364366227661567603210291501812342117982998607036287399661380488988078519885499396422368385702090004387475355905307150947631251313419864179792049200586542053749254347354400810829451915049271820573334671441212244532427308577483998423377516250064403361213584539155655122711399126380825845723447051677156801297395540420309909732173671857479223019086962047886565170595470499846686967891028789275893902476256087462026137996961412285874994730847772102470441576079615390852601643895445763853191147488343832969371032781136714943401075761990512538419317655269030537300796417229522463304628928634342144264214833492512338117115483672546270432385060041941508813360755939570573630144792059315116703916456298394567203320453548478157975836982347541538085634778227066171710859784870592334345846253976664418240347153132437853176441308701660575224937466559457350242575804382790582536929686646543385675152676925109334519469199933724499950966120925709830170596675237882424501133342276941221794599640253615963099963117884501398421066576847424085894037642953926200221853400340182526508881282496710070322711434888520931254118385974853116837963260538861936549484952840531282578061904107076505504217702294153980046917523060163484186348726878014612863470889862237978931107123768113799836681316321373882225334366626568297250429061253611805180513659749240217158463069700024211502820656197985022339992593006600253964146275699296031631119394475372640289770664460392626810135890535438603657118986580934946108252876576176666263753408646255956024555341870670989576820259348380594882157181071395663448066450860657453290081922254997633967215975473140753972374577770608015827873842163771436389484505249665040119534648014949271932237268438785882927351983103995186413625866401502843493475353563954420672690786860528584154502591626912619832857665675471903736132665696449674775718790042213829811868242781228776588567395422210223746761937234609789448764638531358630134130314261999694685304573312105751620870663632768745856469217351689738430947585052799888824392785943142768654235802780777674565342837005251039590803614539874687784100967002352105574565096038811005909229724563900822559244128599181406324522617697829760992699287192198274391263547692029079059424549433453646341597560638829009262328053290889118922991538981398197809688683009437057672135592256585969210612883605757253590928714990094579589878837635225791241209257527696594171261436271729166507086405257591189560205487677272377486789335042620254729621505985217078560124864962030740539748707410375523751293612488170781465455070638694718388550568958227527248040896324625324484983867402630323167878192351979430146803973319295641485868974662777194857305940739225302742768420133630590696236664794791815633777211161722603330978365480009911036236652922749069812448916604786021184342947130308214093506303836992525814356932548526358727696725858733503364127184251741983797558130873625968293787506883705692610571706825924794352260818562481677876142137608241553866392237766509894552023447822254476345252936773482759237781840779455109113648564342915514989714244184443558500086698604482306117841067912111100147037347503281491069087369091473171629859143904756135151965904986916449973116648758816206550445574465809405609964067073538880489442448525420274021901547284295499031067003424122846582292327101430412583304659956863979888210346337265544533556478073775578373076106422316526773349570827375070580856796172901218764079836746303338134806714593089908742768576905056154679140529031956211363522455571964181664372821832910479773201956461657956210124999534501311656237389229758753967629252162461727546447550162000078661775607573992691940183026800438168988232019152622684164158410952461879031607197348646536252458906113649568754088811429649593802407209590199744525406715516925244102996570637914719552768472185073318799320072115494184977331421732880386857871749412675252839161866981602916512836675723628251770283818089824222129799219447416416222445275806580811245737685579128961496909008461538568751917631528050527047038313224493924237126935654938831719228386414166946021027187355583434193710695812582736581750342996638493052226915103017989739729720824269605939431858564402271648156206559655527921597706614756279270067879071757583360637121692145940626643969891197939873112103564848356173831508009838569474795910662006246370542300625588884397227965334102884411918791514704855859132584038725205321136381775902435256527153675026187480461081078598243107993811610104820242328005575534991781820515522644681694265489167974505288596239140770919462526877906402731197493577344361319398637826989972590679720410236267823107290355243183771526235441984744360624713442932366966128060814400823956407028518492004060643296129901136684548454159077002454598730479264049723990296138099807837487073140850501472300467538604550761857936873209364379253881556887616427744760547811205304231580377030243682272390347001742196831138028616189259438233641858833849717174291950112410030629460159357339742071524682200336894131277878154007907654836222407745453845095343403327377323176192966542138028135996218550558059493937349888277597057651941142742128230337455050168492766726392047298035150824679138917455812206590438887776254596884988917876777833534029383919201707630504335512149581270550806654438617012303058220041974938401755346514476032673993621579248872613730106674182473328308624899558359093761338866933658272870503608402271334920831274128445099016974870656997711833919725321490670323800695860265141650066645491236792471151507655190124599694836291231460570342618737974369615682483221391859676427646194925738831402161670687387094612344865164802255889721195898162855263267922081100191777312963268309412652859564215750738227052049004083700923719768725406855418391312377680430047331442344630123643846992630481099882994628538185059615322429847328838069587004342488058313270722091784447896613266076968348916369476595606809726506938823495551885313484342276692496380328119777218667784306660484075337472733726291213553455099730010615524339713758597907036391176750904046615942438940429309777915384543939356207165513647987343247457142759735762658110005066644900826899687175199542922314697784122164582232442301311950140286302006030294498113641174471705437340574218944335876495761441376383058003596170556160516471514611230487411148029328223370727526756563263589302486299582744032302310356907249582397915254602369006171076472227342982243130712929998372334263494894999992956978020124787032587160161808451009676513680039869127519310800165431173007333548262174172335234456440587529437461440396988811692389461497617468625750019294839058373779531971630571820782446832507468288206418034096897354059587678559468876339537948026497858851853195011611071138724217841847687028868131186770144024255166693489688763976175377256839545453829014104132997665534571925630787880644480431923246374078394172867429472267126731453934524448414562365372003215071124143457430813731263092232414936336179651727210898819777133653977272596978968056248547779940755291928528573364635567036221450627302242142759325986718662243863726870707439472290127453550634351373390982092486540777258663525493557475311499287981119960543594079609981654027706008332695480586640907144946852893267405018156298638541614147246589967254715778703534516137466678617074911676610477250360640972049300315481095145059671202921837829725195665760859676687798923715253877977641360099504910797541752380973887076822064119357790810539845046657659337440722012847765825678730005665070335816059486540512474934679959956928996421355019451744582239560553926098900961486157673239784415514876340925409570874554963180660181977772589940783617672689737534301544272899929152617487076425637275024803808199255383478794238257887175769907282900687768840272382002181801256282509908622334811105085913999953864095655996473792366291236148094575137906635224482512376669689632890045537554382651489527716904304977770954490677756144698361974303097827835869553543503991783542696029573052722625734650000348774489199948075628665109950240106966820237399066596646321458899565109036741299823937451067218326955699001782090472787596307479228005944467464346239490000749622000640199561930737207628236087523940393860320448240727786031652224074048150770203854140597880152098994634385236748590216672128330462199683534340922959421731672832071075074441182853406816170727337961851281739551692870007177605232604917757232663338587048235323987193028836770004088651372743224678693316312983618347852154672144687130405414791027588844922679745081364361681508590911282483175563676679777274301614537262470591581374088364281906190778841663676755629073633154493865256744157560217642124793709541672567795200076432452112600364768961845087633595412143500815026954171778804116146188016503951941605062149595615596822490372355627401300373622981393833880240136623240496454431094986864835711694801032729881268142124696962011340665275036861160610950665090233204083301388849288506321361584059909738560436589367794774666695675836897623128270784241410072776123404377934945742549471149000586697412301452582690282399913754081938338335473503762220761105044385314093440057812409903970683241503714039486902158401712070093033242151722254354700320820522910235925449976077396163071539527574575033899133429827778807040992561849162142288639773492861992658574480125509308753904295600143285727263968328518098748624638697585872581938549263855376053207600411798675691257701224138098001224147041131767244357522294267578276145667158690736655298465937471963038400068452798921205932131947662812023463771929686417142069668413097879721538265548849850938728929905828959122029445295389376856522301539326627455256764761386375599886920429153285872536678775293837123840771920967855315502057114610303639409373658191088799422912080255976731487533181685004866335223838165642133179672338303781209633868516750912812505830404216266920087528611438455407448482147506975284556052673444724712627991682857573368366497514384801297749261057477046205696694595797202486323087866002016578189155516364724228014898724894976089069861412276932539704991057330866701981390800482191585875825342230826217004674330296958238277838436876582364195341917819374111191636445523882357578582757647546330756165978167779611825577189361339717986607638424389876037702475849507101449405338117968258468251298967737183829672108467473091969747659195991280498870452944417530567243060746632307983110679223808049677975002482891345218346751721920252341158038003171875647909071045898854676785731974195338730235618232045017921721185550585961760513740330007193838706088298331461531754569855699823405837653789057370173818878204301000233912119870680764878729305578487907063080864153903303470613225881760485452114763613103425455101622026971793432025767373269748193106671482441658175042840392835032045613384403656174128906895674760180047135469959172466526503312056530647956999951554226028183244855880680086520899647737651191980265036020767416030473478892199777435232693688225031326110637118344484486675855799361069204755558436522640617724707836777193143424721658412208626497301053832007547257635212903785741222586612030807714625928697046431852407746408708860644359809442462977958758756949925870733007864021139791643867445052414777275182963016007368207170983865059708330925626663404673600995527740885986054339253728023844827016069526819721265811711974038664487453977637020349683406652952345189562392990975713747691874724098658990071283202450619510023825957717622884077628834197519270996475587448714795883754186757295798328438413484018743163210094681146247111401810109355255109719731305997283762401885498546684153137759786889921966676007822475825943679245061988437273802415735486616252526203314037664064406531787922329772175368155085479745783864471466856379195193280501637351657383861885963941084678081390527045237632660999496655326693837537209923693964249025455264837174576240552782372654833958718895087705512159775350884148307721860651414689018012477724769155555910667058309607876383718397540140472386590561676427690016103170886066345332149589887910868533983872833409196295283471626851518589908880476576236079169845364597599533114193346166623303823714089112062589698438868164135087502576450550001587840107163026185604523050141794181732634551339199265921942231512845661807170074743380939666540572264299332850916074455976672548440153928508342821455141845023925600919751916671981486106214185218919859289140539246867051854522881480135061086941015552377214387906445933821660238837348972320381349557599421741217651184832561988364650173294181489535823851664463826219273423896896725648189598845411392043327093284228835842624295376462689603878050174988903342391663626745160905983099782326582783277328819468981962285176162148724468790135373070657453934334162378856572423403981519844637019604569704066128436070978891308433314762325179447173932003399852218785125667578247961532884473884851907526190801151137398103016681023650717884684696570550731274853650211235660619129606414093110501749428474066076648045628883170020494810455111928221105206743320877729531261172387750502487058599674598271882358126530757006394900065354596298978900866787303575709548000288228180887998088336371338111720410805655894591817768382839468939597759283114887592135797531800195585446596522107592555305943953744581810452782364689285915424862865875667592091121268016105504539495550332593310616931486568282844628540626091250913083459217129987976606733025912240073333934992712097401650691178502063446848499087634464947561373559201876352246694177269904106561971055536894828305943233549813830905518831457280082334787716757683825980932887331621597172691415169092125621650580638757653795791891415268786993403957315997240773411531548093109924937937634762659496521860403369144874339007419173223792623105405806327995276562589606361370237460765346270163367005728519083275080295630083365179558948968680165277934700610554979164851411469874391559614332433635616155110061572529902640414407804509879709044320997955479774360718123053175683513693103254727187883877628199201588815391467789248100338605794721288663490559856031693813390604297707275835217249255527768464485968762292628373660499852495694738850404655115978047986259542923787608635350882201047904602359915755634151353365812570266455207990483270305696418150186845718940120280146123868566250915133140062862695548390581009602090904754217683667822005083223869596533592711334020544075405466940159797170767912415733634181238635041551888384541520697628873296951888140962425172660203828496117798782326454725338709770401484471407424694428115841817966825572675477763432234282305274791086466611180375056017403537165826361889363961645924011455187046018089281133752691337591492719261392304278821793762418000834719657452681997174698689507982958530393247940394788399177585159868768311167780502142277047226743673160265347821596033783767201485454482956199481834725091388050710196896316509746505710993224328298049171569706701359868640358020847717374529948131274047247282800794901787012934278077633645037742272113435271031811810517173917407927047191946348536650104558751294393590234535320880160175546519057399744311206716175814710667600915760498708814666036092419106136129277271380837159074837904985117630686340638065529931728569084271280609256648881873459518506524785689241071982758144900149199691615146141021917185322918658923583001077616114012487237585639831516490823761913097832489422805441750840279870988611288820752177555685574658216283989695267008174432183555314154988370670253600296331678532937080005354852654567819002590381668528501334211230546790926538151107280827006764565006337265037821052910497717344858318293029303450061111494198092198710086726810343915605110778037486091807887919892770526259861065853495973415955476512175372633599506439677549034294485801216669770171976546846464457601469742127662365011265587500018754772596452604788848200508029429355814137667924661128096813486894787699571832722478792706296002448905731133195357209539456467655845293338303301165028943386489301815168521850557505733473673279882937948945373969015098587139517168650646687903412013476622741472087167976966599199456745100558844570945614264701194097709760738782927793525269853542049100134938833555570077760234487888035056513136774078824462315654598394462522025467639234485073906837248742531032132925130948515734624848537999455862512144178025469904296923921274886565889739228742936418062775216793602101364324789224413481397536698313867684755198212286729277547230024201783167895055776496625282586477996875962197011983080237956365216093880381176252382966812437412369147243419695003396670017831998195418994551068020010908133268147867381699062101717269656767379097264961934838153497453365465729916843582987936140040658224600386271338080020571687870660296578948343111741226714654077365620423182417358126541928496671995186450289233379733251728999360749427169257143178985128368379042194327283021371074498099448458693294317249405315383510940040357999780498873148190571344269619066546482960497626027554130496261851128739857530376029320977718678611148465545525857492603694672344334858439991269886420876653201767715819424302075526802342405468401863163365216163826655744733525725719681187412528668846599385620924334569473522740803523529676808799962207969104811294125627636193638083251331629804037194590410043327035703415453995827150933732344454709155282971080028787913262588203287725883222770356777911859347113814324689180643134258038417358344886126499015979460972952194043572789001172288324161658739566170932682985067426080428611421644661441292525509910710014251769882911770557906511436603318711355514633735666901895490761126412681853839890862251919302956975336266344472583669489950012222410854562934442600959408547561387900530581702761900998069899812076156928035488845489511561321829205762694576195957509733219061312230766051880432663252881188132591946425515573965866072353596955913309290159467480283829453234034195264111861445308526573931860937553591218268831914723787002338998245805082803646487367481847999903666697944582823814607132828232012931247341979569217758947199381262203483124415867434259861439240260545905060152362073286304109893054259833063323064522902894306252786502915899409975585725741742932659836421136203542660297148920238689777803110119445315079422210101899589314246624982767067664865815731805750876574982684545102127989063294433319711381232241365206646609970506793727940320723331324523878112645974089411276208525064782874917451151536161523523261363237954316192923132365205819537662484050604180070621826897409481310322690678763844986802496829878956653380775282657275881161985943216456130503055433838470319030547163565136381345764981185277009890176860550010708520760267631418240745074648844105147349904182223912571351457062319787954888408975936849976528412346504480280143101312942301284993680758843096179555688373729760565607973513678348638398580902640796263434814249718182244707933975500409434786314918843700488750823087022074480635067291655553585345620236366428101933165447450892234260506984099053607549694019868265097150332923661455126774748189270490820501701695142134134546479477711826559872987583140631386921022559179477291299329984891849331042479231801197339357329762398328013007154932318912932739233608904713664659467370298591092985456070020340185104986915217505963947874300703300203677406241181389996816337040598141593653112303268831096426605165708051996212589129691764231208766669415024817438831240239001139041223161144818399966912122007388528629270940233180974217900716062106828495891966830052459688564921592585182575674228173614443281764773673592421845674505572938981614740338842170415119992802923327704256663230038890507448170817957986226149171043404769753126294248400819733384845316379092526744766983161118375794378012920468421791213512833291678022058624204873470353109769007070834541907136411930259781891623255519060627730756111110325508049503648549977225022029188030579554734780924116089497074375368890066096714544584880271559156185516601940120578216573019975058375268577311946994784487060812684249844432976402552690498983146089832178842235048741615556353553637200036337206763261706745056177799608782089421051013353943274504274188127394597093841604750744964537385279273776322444680332644935884886276872501632743227837236008664771081273890409151077859435568011322723961771173859159334999685612331946190853066209549800587186189338066740556446204095120065801165317921338613339167786297714721688947401381844256240374215428683976437106298679219061850156478116441355936624124120914813772327591216720038610847012217618618235891060277243163658646536319085775514528514706817092312121705185499183059002167689453530148324685267598257115884278108349746241982852157345328480582620738496304431253901442879812230876996019231639245993303839212723312740067444058180453839769413861922834545802548124083450617863513905807407676293920381146832212264070029427809342643198119046076287586132375385261526788303327937440154486200964220843666423597349123310839213633822389095504354031216962741421548431440052455611647409096287856595038850239795076532362534277379618289239211127897879512938521653616058020175610644053514726924757193732724128474897533615143386938343909251924291391263987106194974666925097322204551614594765695522914993372574363273021787150138399669773537255979701206125078581027454517830529814873071949165931394210976235196421928506350423268281587220462046324541511645849734395547822967750447508433837451239857967197624639676883754121734452347328297533550221651234193797172583162715441614477908820178118064973852493297957509505075880838997930945029448996977199587083926070569830180037424797478947695151095018421635714753724682122918488598498995844565114188970016911974466373394379140906916994491449218446098111513216239734976054229445708849065910018553191261084227438763237207400484178211278876880531045666890387667978635911268748565288542632287833848523615732129751143601670136031987441876547675876183024316327644931212353909216928595707170557999304824844861598417985569845607452068661555595510583143772462828151112933852599859859970668751521246864617971015822114775434589598569439254851213976674507662455921027154588953641818507335006796071484202017346822610005080932230805666268467819775255002461810535979250090980710998127546280513357740943081560837031599049856879350372326584283648681489797797749633937407643133256421724818105472000556298941397549788133237875761466247652642521294614105435287404565352631544864560465735900665407388329876181565270408014639086801821926304439476822665345144074102419282812472652500718075283351041401169222003158039914213911670130108191179668938536448241866207157945843065412076134451559311731908240236734918829002989575760142851167244459146042676268545553919927365355135894247509890007977656377960021007688484732950919060645628656205840782238816678974386966349231961486249895691841063674007011957909066619719413018349974746672077926913390237449599457403427789181132943403758228794240106479076792502897552374091548788070402235798534205557730654757005413015732050981804257176606045713146741579136352454180138407596700784462649395576584940758441832222906648025994012589634285989055000062980085804879717696289995840482291792333110006158636646910527934575662449421638297650074888487861399825618005706548162379273921421776545840811980128738221737257897135191471513966728425504586088387450278084536120165425914424655338973084608389678703402553982573458189361754081224553056463832986141269435920876328345427201366064344858416335317497694417100708376453796188849333224148274623337408642985982935731032476740871690539638154979519811009735862385035203127391750662175571373576709133177135189746435412117714439365834707051293916940551198585108800240003993699621720010268593638799439701875624511164980764873227711985570648627003446879250987979561437670130428623861741225549092426937592442576411746347330866545241641163801491734492665204252073025742907592579395484742692061179853058019032248222790166792877074699996704142375822636659768232436486826102237938256513659771749921682925177629761006182054398590705573338876379624247794588294112768583336859509567076426151197502973386500631313597897477134238514602357801966525028190382384972952281005132880748805543910615325481176020185900559839179716064004288065903583500530216601799766736980152311554241920595280211945848352285836873622899427456927319729125438928842465054290427571689536857251272823733808904006172217362638053168609596603586438506939988440548326088494071465323639794295689615466686557225601757127478863316071295090470838147936752656338385690003890258874667845839436635937192818605322546723927760437174833203254260453858964183242661564478966827058507161824334820193676174533741494576918933503333394347284405131082440613280530906007205854125068928422881052589774383083957005088122794644487462310659598745774607644856260948825965639235465362836652859340019097762767304299512491466164653106100898593811854516716870580109174728749950384630721561520985882807160767745859989622879936791012900466165585424493926728774817943867662619517023962147191615115372451502228336799781862887245507852858510190995469115998366505833912253184279923657138760578930751533616717085350806426392070413991700212373369946037406404588412436745751974179438078512629282957308848413068885326267595295521169939751051901315119924834532386986379395047908595363460635526927696520213112214377479457785531787536876112546691521604856344210898030252533212190118182438254368160256491961347246042673948492982123100546884407201664162984141324378781533426227629856193547275577349026183580511134457038702308823462617481100808242263033097989741702809691008246232683677373948330714535032290868990228654109950126674581101327521766035545453044648822952543708360806204060204354799851750939375741195871811479258466191471964221461369706723206291950001545566341753247787133913774314558170694333139101216334380077024455999224583804476990770749565144199431360619861212653819233877592096199225856525245490665002263635974379675300993901788803372044698167896948197174981789703499570560581945769249513389201952948267417930270081233129453323398324978072131149325610413263649789719995304292370794189092424787055235480857348547784233549450515677544912279073430502614421367099566235270319211499232321001422728876746632725940295498675271029353617891896055780753663564612221559889633117321628036131965943058583130942168887643651108578652866548699737513305542548951048322299267236551127630670291279958113846456406627607295210715069379357109271988012328649703590955371930190247928314903939141353944206508547984166665560364589141085501213776928978265342419451494054610552297112323850905244713049660533371097701228531194011768888293730946756774335160755831833314582122408569878090539170085166596300321331039294387522299247486918245119037992929806514977603805179475886168490556134529199896770894151396118551003764000517242688764251081519843654694252507962137265292664008541938864367209786853552278736135622826895122976277291314605411128241299190836158822663017182586147667220441910790681282899099049858883439005611825451214124367849380978872989275115921341669372846213866365551600494169259642384911606045880438887395030446453603883098696559491285690365608611663995696731049237779130324904431073937061146901187588700013811447482037418341666489462941198354068651090968011091828843173641055794155191386341008887850977165399005965176086223627860466607243551310788295078233814727552091278455630587287210758739822178360194853424243571910055252400857046683132688605848267587542728154291996758491738518771880179335409479252308657291789852698253512820319148052402012543078013831203046143336394484491462029965905730205649138888046191100353102587215452728482943433163677370321374971608140561397434059131418559987644901799787294624662704453202844556404660548949952564948821976783196976915641986856091631974452586167030734810689776549532782030803268254693069871156096350434432091703428154316182505246638752095166632641262119225966405476918926197215466591425321531206083175037838419782973605120665652765740953472856228312896669534398867587016952354549875991155391251910411515842863945469751170613333795315035457454367486527777104496124487941177664098390517972266006423910358641688347479507450084117567366296418374998306198246864920570608019824434197372007367988129795057841125594880325475346672436382886607165237671788003598019652328973856399270391940380946992546181088116545144990453605881635832136505697191006635166793340850011436269192770489886886553154298665899055916550660892525077536653693280160481273600285122459535894720023741500660535770422815432537900922197309417081159438444720196167523060650471251205082419091771567287972093208864841426092960912420248159395424198464052819433733125102347353401368403023969699462248011459119250788626968000980178525565222137790461664545660573430256491576304711725949005909612283766866262520965650636388245248374106951607520789793557467764423178780921296116947079459831097336092428029145200130597445729291791081700965937838507865421881621926530937114365513848122414036442588086955482342114507358593924486283157174979574094862711886928349132768344374179152433956207473717077012035720024133070157767119344543467795043895970749357282972561323473648065809973388747365145085487338050372483425882133426630616023065040834185010888578850658225341226789541456105103511472569952873466285543238787736659654469997084523641378671238661732115491630126902376645768832677738188504012048567643986191232877485126764799366399393018134370238738956181955467507572107665222019001132112576283782682203195365488173102416903374058156402266942531552438164456211914381446106849832273547394022298230050112183057318461335076015072725036067582286470369771646102281209549919888521417384776871053864165792021843256219391172445654653897463863672829848986244743267984232915113999996520092020094680867997444269878086699953900321594185979947938558450140148312511127440511097094302131157701493576811867616882164053952087883954048058977588098178178935591452836307836766536884817130609646333240927216228265012260486224888782141941065910186681240403460960324556867768995439644903782548090736622030081513634748956762046184328971808366046785327545879794112894988042954196796408523685302722655775473243390059701715147290214709726882751953103807729992841573649376850241901521530645234593859967151423594503658100691928426512216640577728697173471009447573776317394596663131825746255940876885533613002871217428778999024382491027204179586830699728441786207077405381629475121017003671945243191008227874125645531651709963114059741072555991470399115642512811984996920852626706121850383010425088821435738078915828504795584313391468467626594411051111964960632345947780460474445858959676090093674740851066089018702564639491100559105384764805485737882414338723651525451616187471809977477675392347250362630225944521727260128366511275930871111884041973414071731278076096260080822381457094651741665360910763897024293425469858765540093758079039183413277526554266548649707695171403511380374808153729042689555790321088579995733055914325716107709733031917092160275889697358606681870954838309664044699744066190323433989326969815479558943322469915893004041877451725372898754116312799001839282056086516893940457967195596689784016391999047233464920375837122110668601516537574027058325371280469926224345929954512243506711586960172931656282389382761242026893682395175753696097751565602655652298164382620056709089727276128956894688642062595535428750767227386806381109949311197347439855932336827398342969316096693015320525771046301120836904961018192369113897580503577294624297604254662237496431457745240918423059500258365366975548956430019953270888801499793785158591695625166897717867625359211981118514269455462380559306137249905230830449203455910588882813302270926291073174732468671531933009084402772232954394157631203394467207057064785648533854886011218957765370591490194216089078027852246891241925724470603259484253604680907164486394902468903507925136255261839270825428328660717081943101978226373141408106905662071570250224932079710102489169871667209659535660696012322139142716145963279684958092385645186420854623798707751910609163369973955709244425421678730216501674941941845817732667628501321223968360299239169759122704501036095929979095575314057986408727423645186119667318004110670049980064189215476826838808840994076051473870107451054301953649517535454786377778798220113221364362486788283863159497296137176313992024271385718472900873364172337846813129086120097733366202037416121916587203049023924676511374598071603448845544376754338028517318121560303686409650834054522389569490377257854645008912891586462736402326134897074861148078444111671589016792560629204971616111349672759714741875154107084574030565878024263240322610290244014061632701174785774914094537933063303296836168137890810969875768392644683553139235834586281494120116067091227650946378249517235206275952891750876350990767624123098899799868760181373831100281326284234707522025230393970231166315352472027908482520178234702108300518871618088811705985064589512300360974770488161578911768525674718649603874262040864134672594507956582487715564664196191094697663907167686081153894653885385569586662646097062559357818806153399528671884399002426124493142393504916112064433507173015674196701189647773339448908970407406352401215212491597233428275299405129593207119600122914064515185727349887157116538724955596464379348569417519895834278563676673014945350864875229306961908508085966308157668545060084295201420461515593799134727835333399539117040806532349492588790296455799966724556965341059763313490096682323315044197107851291189460405218148105153457430350549013540446805782201790311758075397374366073559524287101218760405030126605978364594711335391340010491218779171546414722403633080543341467679573716437116199896203101551182698592207480308880762640900099705730050462463784024291605299394895808576367778418341744701546069442860143444803331132050920995487333083530645477226149307270742254831729186954392619047991098919117888534568285828982306360396487461324591211153766628814780002898797368559800109041669282142440313318705612567356326939648177602984227805848636481368172800139761089651086705057696310638603100095747066247955870984944171202546605428331321586439704330806982278873038521351656195879309486550612985727269858142841214215345927808573513786638088305672390308656051411206377978233787706598877334821274402984978107289058242193033445648208005467473938536205633575218619313141402986165191463164742346584842154935670660709404320027401389913830268058828262014971223570760972182016979958946181075711339891066179054725596902420261537169260304125146377542603105383233653174615589680216359452296578937171424828256901621992830448921736174460253475791347131838559827960862072617667067556859587386030913279109918413482841005105442633680139588240001950627879396059756320278744416696750571612753560544462925567406408910559551737136747648865043028568213876000427473870644766066711477212048778092457507452648158676894584709628370767061576020535578052971269938979586219909734589919300921498446879157683483412698675041144677311875715528767384482531259068949493930203742689518054720470195295581384172715910918132449360184982030134592788959226858582230557365896083455380555094230629625382911870860747188428386836628054463553352590201591034000544090395199668824567860417274158185802258856836699640389204065868163555420386075060624127013706126149955766965126167253350717441422271864485218628031633135464905993667700826220037923210529741382493991071662483910863717642221953146443546117068142482557995547516170552479544306277874753371409821680698889473443638925228293948949609612556729923177371144575833782862744406237852369860733764560987151985071743509277415137484493446655764642582083156341000871938399367013270036257802973601820672493868889599731073816969353246371050677107078493237818730908655195909031516420352099277899912694281181842931431885700315763110471929093023907189706214117655946376950909183232702348167517418455079476965336276737886856928837898188032066650694729847334024339760278074160069598887356744431287101987742870423289084235284204781651735380405586799307565251253668333843036202643777294135356556373221200626034735059878608513035687208574105455548916577659717759677288537437278300308594032076825263237007901081462649033750949717189947141728119221551375949760837165889154331082988750582422082769572395432445745714669759104338236923920559830191713546373133742009351763016966306087947574022771913649130499673223359841787725551541999387852627643992980477548403776320577970641742748615356083359364532346943887995920723669981480484725341022250539112665129349962571803867782322383713201961607096962730489123629935649773533114673465245857027044468927845125583606783093601815475498710933826361544261075845969571190917422242407430663551055488044443638530768970168546209009626014315377680897125684581368711544834532413680537015492992330736248953681726738302021552900636638628466121756200867401685430185913213294029166740677520005706575925784193939801423487416113197638191361867810696607004297519647630507914268605009144235878457570109180248179426584154949428022255926609466016342809739893999760005417414046434572386357899447431807670440510962070242726363123385072796549593857295498425093638908828417047181885436905673735627006885912511355448963286587713419075556672978694993555647419747613165672464843968151120361202110997060766481270438662831928380237363141296293713853577910396745678293252529287134598956389187070372891139825405437890209581164870925883823609492738907185753413364432292093477247372886712640274034677776237932118911001976065244163767220657874990141514990154688041828847205366619684644742411218384553744032522876385077357666440401603540998943347858504535827062006900475086927465931695093853769447671112606613350821893958485155347596759050303882985819820926048796706168653968918797805930837044758762561455072120714790517200535363900668385462519176146117650757468942741056602070908891064965252199358807315948061573774142030918367830182083037249522799967514974273012406844051284463354236535886438957551283791887882792956974900042556290964569445045243815751583796283587590166903029298468138212415364734799888824022371925411144465156051471791385309392811468570499912760451129425649400456590846104716610867069289758388121876177975315124152952396578050387211528168722216047433265134938692084061108143264225910184013154904307352703373149311900297693276944443373160153125901610257704401698077246797889058277862116870266587005276856175390504813795974694939340688826692147323490537980497040191125268903191443811501386752690987608121406484905764189722066882483667059768791613744451562181512892087729717682451530345372394186341348493295932924127341605172187142534564896265052041794409432800438214061092985309783175919600565316420315671641731439176460345924906066546424309442373103853359145664688173629418493735574800190676618593975098011990477993349604074459428788717656849599892710698121540809783788536017626043660734018756926217323743295271345633489723223793486286024602280519121820712780219627958246108796638002608066722566720679449025774928264207081461444409823397161763322990669516244906294099917875665603778062312822711860820911541191916596392922846146590746294361519196172741009680054520556776057465089734788370049369507554018327508165178960715541198201422163382489842570573627798700288407741513584518988234360131108359488965914745627439939982493309592599456533613802298725097119625224003006175430968280947691526895223600758447043071307214929672025087270185765550478643207117954757791616477957913145417989117036557265236235921138606741297689623550056631624737467284892388333402095806746523669504595866768132967207530965002714638687502040482195487978280864018300605410993342991095662400305385817644980807279911770967434509466894494776882928413163664378258751379585979118331791161946408942561968586578291044411333761683365168811430272322680672112482241331439044831498936119861351422597453280632370907359510017138583746409701957325349643111303511492381986140811504433383200899524466917961412837226855152729209495296792982146513322577189309504528983693657556696118685943725401391465572127628004541456388779908490182762119569351823718564022173043386661974364000764772201523948455427921336535954834901969579120897741435205803964644808869601124981133998997307555902405580163307492875999191014755767491714341556413825930347186289883659117245597176536778102509763859304265321204219846712373224073963737438803321505685223756819176987339602378805208605604338049920097212733772785272222094168696611737537921553688537396590474769982123413620402665040043719735314975787038515932242603484718539421464492717337646404981078090026528313061849258471451956207922962132927670816639924953327291526509428695886577919710625258651841375254685748921467321741303602745117076095285308235012339851963186265330827904861270652425216322216019687877616593456340554732231617428114707845232052431625701334348261369135139027747087018201381804671295780125866066927342773058771257391914793296632103912166135385616285974861345635390031925068593680381041085919088732669966483410380618864006786066228606086780766578395083046551235055013945590548453261960306277811392506085655681943639577241077384870569354336303347284177746523734731124140111339150299400416382837409186357488341878748503597696206945485784558597843173314497421384391333849919170904164348013810831871831373350568917841546056004925991825036756080677072075910657890900448470846241688463827382425906152822552120371824284147803294789873730267931001340009283676890208525350498337864232297973074401517567294798183453207793770693088539593358570028545538456306567236793628693729440389257456403219289255438261739111928383032941499390030402593053727369754276691554653314379498542936599086716215587050056485379135232021052068656363879975409432020855983286751404121671526748096010626016837201707413890572924342255010297192438123970163750567598133968720715031614914104455244416213537221405653672511042981782289329610543142053812218817775814098486499841215384394590623709478749465815664393802411727599699627231399335841833266706605481809862576314820575183617034271209552251442526686116986879770114237055573191450961152860416646294743504933041235219504652355839933739986924978607606362359614615632264642813577669515806167103158108907557905264559640296952457036253724223148188910996903092953538265481714196429153311851253168652844120755262880813691754476092523417193845972229522987220251978270349113472614367456436122906270785355140740114380846406078800254654294446115521279996052368994594574862593667044463883706999743071329399748533528992073231443366288887873095931405445598346236558028095861511019421126367230677263070623789827281787972856775724362831111937327148371195654211039864750333876221948398246858336215535489163192526960548043871615882145978420548133331602620299727421851326398369457408928556877269105316275593982668357063900973721416473090035106458210208806463651242350142420868440803971773679602017712811594056626669379854222039613057349360789535481468045668948106579387162143360672312297591757561515820934379370723175930855746117998858642816482667560847692841413939541261414680209479892532629648440155764781325765179496495776417458649270678295533142515704087398584527088829819419440846566975275871697162818183415728170370624878265464718695092116143500477823779271559241727105356073515419016719490926893430767856316404094944287998472142416751693269116050295661281470150041369611999590757133867782254364754865911282987294066854531075532188227710563140658024080861380401596355776371238034452337296676677656382018988790227859985750223125781232745090801225550744964309626725130264364188101787053932541429495419419674839995693565751340188865387156353327927899104338943895750912836137251413714507141547223407604416002973517135555965068429305628074764785817239847504817695142639090598823613519293251000261285596068531842588603384179445294394202443638178392725031448840119767413242624413088214412552660008442674019078430724373633764698993424914613155650457824891427308859434757360933642691154563741954214125107969608860827245227272862792650978748119262893112911644589586952789606766137094173123431788688493431005680347276984533643719475653796656667755392077273865286755403066063493797937817427453497982790909551073141145170649743549383163036575397796321000091877869615682316368499491579649584631225072362363131255022142497390284027912989358893172584998354504862997511658816191082206700003312031324174994826046987180955513279227736661637247200539225137221850961874135449922955656753026039431393780654554357487292695962721634497303144482676539449798282928750838056624350668269117102581766462978137947658885897222530555945965639001168107363191629015506472256095168418586891655493867784277637881294544140522955282734086289516386892073604491573305851771617059455257811818265640162537379742785755263801408500887390130883164620116882663217893936358735757145717817158759388940180009175992859152736011035969298345396568752628531204311495226030632101673394846127984230861004916813522816770063639757987637959739330714919555710387176816186986965150437685833830446289170002705271788945688233139589375348619828134188088548557516180600817405042425364969319461060647931899510390107713754007577578296072300420451124981531426256433393266210446951011451489631745941828830381446777860622813525725031871920747978379884748226608624975951773420961257802260157957469849451958226985090524889824452932549739935464066132222798675269068025894399829161873609864581914248432682448514130306230954685082442268208328700840689867379593959152665216258338060329005709068157953927286848071195258854155978807614035581164879936318088796838138025006734561322189155264861497067426591679466912050372998301690005823893433844092340249465286490072599445890390707946588194799900064533696079311002970953878091594817953464911065505262953405893515837397868671014561104205310056286973221588904395433977227046385337744790393479036354577618928395652661942656756555591203168867478398164421334382698673089782745412664420408398931430201386479159320000048014143536207798970079281343643957864231979897375862751163336510237618929335621786644378381722425924572115315325088132358146856488516997114656782527470136736617352642792840203918356600667395872119425795731859821625510029997007844356621183845626157129759698005072703084623945117795542177878891990458432745893719413053396726364824571405239707419214415716013783699635538939961115121591890315530757169930310609362568572215325383290302643478932075918110684356272030031808061103051582333781179616156034867097139900854848254059582383317011456112560256917495314582809250932275293399227229509844522743268229161302428274735612998839009907195984429733628131280715641333556765861738589513888948742896137816894822840857879330840812924611269234093629591629269394022034148132439569898070884483910565628828897447024384943508989780611481159095735192033603662655402171242858400693447770343507168451122611843496612732290398309318543909957960881486583850748728569650343411863294948621867554960358994196464430513698082450326136161826659701573619303580078355950978723806959510736176019591191879981230892727460435316947993297570103903249320317056161363217612670105595561339695197218807362753615552924637165015060271625371320481044537139584943614581884229723667258314788078301576104718239845869472248328235127397806232393732205459671617358204453225671010064915083500358600700930804721515650152158878382485433205638051655611539203027377197795233469765210270072787916019624214612063419353066240276895228504266760994132475852196385004709455835533460784002503977664367427180757690009363404791416642682568605881841958621113194005962138580622718585001591254454595409534115739870327093762295525393174602403534281061145390653351038970787304292644903252298002862178462011504170553017520344334000707740793645195098593551759756931594406415588889701333578782017553882575449365752001182253307692243806039977711902329306310261608867460176828236224613644768097215317473057976626249974740344217556547491772862584451253832560436419068973177102094875696200417252316976289635517511562226169480270806959166217152363907793508219884779918623936202148692832255808268841799146631138599404762791650650203877386665284325765259919099979549209014604032054781931959965331942164899885297119701666578544877473302723268606365911571313245002873417706840644814740678680099426573909511165887415838482754670799317133128978800963765626764801070895196670724276822724881624514258165599197155729783367118029116908557884718261810652355711550525802191000362909004173431070915766626437108011648969942022641024051112172173547753997685701419977398413882738687613265837349008503922296395897542892288380251677404058717998857855445432677343521038785996278674291074154199139067829655662474145895768316934506371833664331221197777752491662012027626659159395603080081281383419747843158398470816828188034999787695271986281366972888512761445796576851673735255028453248293167464209938226820819286876300456160335872154667812331827547194425370429404467815196859191166194857505805897223677523450859972288300312908783318228162620828463564201191197388795834438035406441124136577900542656863534238853113887365670018057240573345402217070426487222296819893201899462592757606386573260505282872728326145826521471313858819239360029554484305132836182261068938000174538191769441086271987168198143720602278907748512668307424751460705893895800362519464269145952144670900863674680793299434467646702205127735651644171444423405273203182945349590622416850132452708334109727989683735112300565185659484300860554108431588590027452291845077966071736437558742065773862327058279759988733350620867650906364462278621904592171569325244157706866323454462871629826701849011855544086157689950882148927600761609123733126795054607786728001924868389104693524952680196100014482235089092999199411566792497940664005332368245714047725191105152419213602774005691596047208570363489301327542933390251434750841498393813939958306504102628678962795190842948913522191002133141270089498332555385539589493555501470029346065153260089698375995608117851905740087540474995517476587132571236642787941500799779858839377171923863666010485270448865046853477807444029920311205656871615923950504627110879016757791707598379712327992720072688249147600452172660185994321447327343657937607608154749994063733371439916092124577123811161549525267545053889936667278385362894508383676022803422978912927194351061394625410131644026257416394632942694855007476673174173781733364005467411105675824442534280817817233346059550733925307248430339773658512109003902359967266574411947981299023020242197590923158319038652667788272244057676788886472111018595586166894054625817694076796656017014340135898833291916988867493399255388595462840271964209961854378031121261934516619214110811545261036046428477770692877587306426300386951345468562715927086658558359807316922715006636321411894990661584310602711349160437230727168002486169510393319185465743448146793740901724055256842263013139121747849353748529395416547769301164906868571131035599041648716591401805419114453832595906504050654361830170710888920200051708249613316575126512346199305993497713155270380158602892254739802033832254032275891362563147077919416494482189354223163258917289968894756209130551231520811606815984904979066609449433410417493027110536393035171137279704141928970179228181318803602174847407705210936710027415293599647523880450325792486227280057319584194451736307798744177910383290769495998690488590016252935784024872500228312598389681604387450456152351096278394905573382467968662614931515194486788764107082895094500328219472584042783555473357870987073677320645406597555932202820351094834498430378409592830657356812957572869612056777567470707571361796899964679522718472095256221683210856380964717649322583773503766686266098939426464983061788858748485565422610344591639350071821575362128147424195441018300694177040593142141380870501213093956134596536178055533676670586698739023605106644305470689365656027742762338934879036550544242082986038897102915215907566234008228354519727071812980708640930135618961890934776012329551726451659800419323650822536368593613151836688631902904067661700968206714459097602001167095873534484408864813635636477524533147253635722464129159834800470258576830386936023088486763159939390033066585604697727652233020720235429930710263347034479318093798981167341486745904958675949787162308716059957616741365693802635220039962272109986556825001089820173826734603144875192518427722198435817357789667384419045056131467435780014290622713055754704808610686070584556073293179468860395866565993858777041054668041893284299995901543966635847004641330483900414732278050992060617019925435908751366055273490673821177961845967148469647564145170072477244304558146554050795146925494674690032249821468797898158751816406147908463746590966715674653438002207869314245411442052301101020749297607138687087732972732998266768171418591868303532635672166209847286569964360405187547719229174756997989236974009911227111691069250338824837719643186698399503946798116530103114380768055701302778000502710002842693283880463396179969691462991989882121515859562791175228700755116116245419285461517301140269497109696996722773920300503099146479459170814881997679697691802600458459210296274283360443938575554465533397313196571970587706639712879496070906474629136652591372406796703191976585212177227707321488985550781679039605176755981995154002259601300165248828876142589813856944684122183311307294049130764817670909931469985424227031691252320340716544673973029762389120363349972647864595075886325050521280728456820679082884192383649603269312402697112687955236087375427733179260223448639669834593180251690662893435103624058432184497688535156156761965279088974643199853963321701529081397094238209782013648864531044912821941994076307635703368448608180815168967381335108215084083351919079492150784715090837573203428555751037919150557274236584862006164164137258556815697738761748719546462979092657456893674790730571387719757960598653614707404967973999029017055987712065541008726954001263645842501924148286897179795651670916764597592919201855653303806536759937447144499104968601083315319416041563483346366872929099320227899344384708784579324998894903557502824129963769641445364447258213526005633979522102743348864851705349739006510635974017378290789464771438663512868960122784123004063547810090845068455753337966671987039287712910963141384347282131792486851526177671514498025034068712448060793689963866957590387093166200870770957482323077789977420469890322877433728350093510696661141184769106842968511415063192680238188240626105492533339969865918126169966448491098737657418511623464913853020272616655587336728710667720572506679290262416437576399473955805683235635055311379024221760050267944784826425987967119960152634287766500764865372197028000684561310921470521333676100136787120131657546210304109440526380598171698308603070974001181089089680915920306767307716868405366442085887636425891608330741514821881494299052278090574400017578382151141064035316785469276210064019463240775780404461977392591654472066122589661580398508214036977512398249556911998026303611475196190024778074134413216870146098299312214468514547170638586209665556406088864139536110509502829161886629564579068310751670056334656958875793547353781449257863081810146581414500037181128591969441795347793879169754755896784658865257723417219128126903594676730043155163737983613632072901204031517922404438211011649784361755433060808312889681907893741600725341614720564949320761344444755738026344598133466452022392726409264447200921187921289702896469076377143876611889871231236087891517963037149275158493496006351051264587482707584607304636108396799315347652254589629882706116450867239002240329162777064927559280620370317643549798376583597453255895345131421861534480575303510911090319021350353124356661817624195367926504752482283875290297149916699963167406517170379494688174523248893176486272910894044847830573360841654593810087292879334768391606958074762700152019433273556451551893852528403884557602781874020669598846055526584359670909334468045237893256355359355048198331604880750331520594564172067245891881856914163145391422176601728662246683007138960132476519081259426129938591457214230115012211877907305918903850719437744290790705210023284526293584809420044643225591540436370193169532560533224222469466724023455305297235442349223724310877749418366055631632167850995581876631481382192181278181162867739218196805240831351426245085114068315141474424582746033523962688922860922489834217717560410915324260472442844824383801483916250930900587380790513639460863639895572933041454376121393627139176297925942397475645303402154783423990310470653537387591277868497763893623568268501576932337978145786647002009526321156185009731110411943749643457889478036768814436760346234563179440495074281752710430487237790261151853212779010170460298422747772279227143270733963144657734317893627509599494826316404698616509599072845568136218929550869357476153499362973592148410334154347313426649875566164595212863465145506765138704598420172785183029336954427049742634201019546895975171320271752009597982076247233683621504902983410126272056988847635097940172366095993408674928909058943950800154498365211379556026263448215463632779076451643864121692260255902695946294891747137830090786999223008898128246793599924564468720546092016427652101059613187094846986626721957138109700816025821766773819761113104967701101418525368978057105735032630593659083819186133766869860620875954270258396739466482836158086086409224072818281104331825581494475483045324650492218900986037100647089585000536737844931013800797157310234183079898380310098304812159696589519030954313723389113302942658725833771326555032884632820073374769208252061806229807092234867542507946823790779188242612095273355500836154165677596783746163398309644750312401100537665305918741430001543193534506860271107981218624891403600950059408133164967453427488057919097337185018879290423251258659448345583370404132933779158675825068079395493108495690421458190708002147196253629259770136585437954847671859213511920657232325088090642342236778632776209160048037745852345507411399069633265127887286861800136778276935920348518348964626730369726023079204924319664419141229195939030092741348896310868587502749960277475018782007298916420030792782678299401937698990091314211072748516766563298067751679914851329786444559175700323643058073557425935867010979330237628419900186671756634250821666380823392428351394994360886708658156430650791289038417815459012381755360914802309619265192903897739003943582679057332588595319210516840071826497914896721254733288760776581452021376650802520034226722929722495877377117424366455515110218869314768722835009923277516984710181543177882523259749246110710878231382829626040963274581299552228042867272034916044859732587637295760162305025889894868704136202744708927906656230704196373300594540572899561796177962809637195289982666464639096234626083825860946369809438504111893823369394046671740893573713099206933385269201802780470493198345384450145286512993099585875988983397887043581995189155271200420284177708324424234296586456350269917858282162417365255357343454479354957939338998697533284442028068647595800408063407862418006970450996226292959805016107087924209790757364131988320928916988892951776502468070946412119196837471736334982877600814558510640306391718735465529155479474780802316432859390657351695343530545551361586961062250555081837356333963521168409713330308700081923374729383163318535847310293395237820727700105393080085341867790266843846619590507781993688777572922979189280389676241798991128952539346071227008726183321076777974940408261396182863530550525144562186568314804680165592199909819741895239442774916697922651484916567881065715592657354308341030650136363324693057194884620414617173869182459905093360198880749822021540211870973876244719701157893695085708059689024171368536587556188559986219982533070193703606602467799136816951048279570155683082342280485497742807562204081320923032111417623792682176513182489794862879329787586237293701917488115073446798056925707690834500279028710213418517111473944175026701756115896013161407805255651291045531473823083866405779481871087480349230065775914212991811606689604053741934769646823856926447281130426650816969384493202879844127784715350405215092181710163951188162877322299731671807030432545423379941735134267523805164006438036680566657210166121267475794670679623409773927442113401357456087585096898178868886660502130870463778846281475165858826939858330523511381153013747122643665069827277619171231951089093265815564223758803165138322554353528251775870436212617319702482371190166991116947140322046862042272210100888694679561179537855894411393877917874149238691527352454596928936531099479958732964598125048764339828997920850665158452151828285697894067413314607246362690592857489761336051828471767622092679750475844880371311261309606426976575763363980451870095563782067049624225726888345555229469217306113435170719500153765111644379140276435560390799973861568852527348780166162826572325695900892363314457226390982376163108919949455498448188276824385253117956619608951085086836888010870028487959864191127981735473389163588121662393291026306487738501074171351166835383452241505724546076142861987388709688136988804627176774054250469886319055086829355621420198052333347047065800167696619100906991222443154976836102716931403387677953843717486076995308233012394496255135173384018821681983587005515075585614392938006347693001692276810037587637540994058281343529214301638706894579643629444598253773185473697113050263560189370031719792873556963115885582817045863106424077062591725005322412146999388913024329664589576005835304374224666216404487031718807538604973720149604624624485494565004294505085769614443812580901407710621317981354766538431983573104855091103727372593064523037539357179518215098949666029257696547643400228397468777201794164509210830373865934731730138239900210038898597423927762535437671882699962611041472535193872684098463037805192387623143096515675037783864939703563881897659286171229528395225865540861157771741330723847889279123757572702147335014881075219736684546452009971058260690374250622937277666109881312971232801381909456540710173254471361566752114035086382207841256967009816248931688471519664714572290914363014689262441851379559817666337524023683968725025892056283613264945511116254543095839844497341972492800067276679175249568743113983535022243026785527994904338246825223588637911560925416503733314153854883240761154561212318698030830976034070732335147251942551658550947895190426195497746192834777194228975461138620447642015835886261265414451270124430546827946968965580730474461248241328992711246512984959831203646775628483488947273420412199255557606010377100941936068703393265820344071805146656402923022199120988387616945509335255430582032142699989122252128899876909135853898825781273974855274661308128549084488747304946673758347982400837783588738692673456434975471026992356224737552709428562075211200636714564106721245700520175633527211414880206974978843828815837731335160078461252545602472613004883512396542817518762234855723354948765062347936465003377756852649216978742562932002493223634185846387399332625834413253339726169514084811819151453479684840369868472930011598253890040446812407695281707325561397500843513437010418345200315108747620701196606974549201069527809280104346985997401652701594582628804231398017843110275653109011140111854232809131891960474942034464114301144418590431698992416761104864208665881681285690407634237797381040049469655666631594545389570810302183736682063958406475973366784403525691972637455370863911210598372717083774445553130489856256438699209388858655432879049011134555451925469436348562409925420294414932346382603401407910450021643374683086527373035715478712886097715537551397429019175532620102258689971404454697104418288920106537051538450079749525667995503798297760356088230259865900993945300482422194418282334151793659723273175515847830814066167436868731363348239732445061816739767807826474545727296501987256915700141238054892921227056888901015331854997058132908460791706499666094852362558139198094892116068164593577702282256863422992452343911884113047895493837942983806478929056762717010985845376453000061857661635260358796265321872188127088355011379933825308564078104647731443434305324217641325647726196874386058888894829165323855552614267757406367395100323652711292289670106808780908012592766240957898529638895423907346467967096802586001483566973251628855007703128370585891662673071088304560582908996166817118341088190791468333839512023208335796927567593497285707328928300706945121841636690097848391826632352603455455140104675702349741705331211462619618797793660842807002333085350777181776348386109298280712492989128552663207196113738210214773729910881728396591653555372266289044480521708178032638817001113687386773997631386991592379677228966911980468936964065394070219010936556158838178049255782355104345286030767933563587864493659114537239329352280735558018698966458483693697675867714897101190456630614747556598728177782944205457994103022228180808652676687380923750552007256193372194097405391113284481486564080934896084610565632477471996458163834805407436058443404365059957995585262315367064243821009068254141177822040209496564624849092273470921352924250280516160413633244169256664637873504331340387894949718957769607542432339838838317851133022764306488704662978761679122890333256774083200220962838939193554800233874540793626862849086527564370159814518974883380064250162497611068138313092248248019716494944787873868620911777751070944137681612008494393731235440632580024921613986382647806976525783198359766837599396483813778776403384950016330875713342987044628000943547981060597919553872876447807314067334628089360059969687207512930429006668119098118859332914500842920048302202515469228819595503710910493658003415081373580860617223465653467359491170169499811019965951167703152278270696729452664907308421544288534885325159678676116705580480437053765486665552074767463705993679730196300666219814813544895370041792558607058906042254181184978311347077826524829528108382921565528700900149317426403412826407675556607725289701619368919345562270796429867087887679090966790087938387514613958134219974078673589485036434554186963091080060707660033619854075132179087921974430108481120607993411036690703918140307073378889222831293354169985349050972268255660985170700334423701289985557039950977191295744462735740015859615112813921381675259211741398544547004001077567067538360376599776009936946516626074742000754916218450414994350708341867573997313460374326447567876761854102398815912722997036778870375744613482511320943919501208807588140828842399627905445199835411145695198638316186587515504326174003526014107631508197707743542991673623396717176656900104243020851065917310889465115511632304285755037372643669425474400758539917457732135359262555957404785701078562305157322292300359637978442846553030398361043376602194323035017118979114745651988443279359106189173208699641605045885298631549904262653191862537290953230374196419745836763143632682264693501273057238406561333693253788814546680200176666281699074433592692387162874187697742968143463054626089272886358493801092364069389613526030106953008659843251510851855314888683400506041580898970269000572496274418888727707818165471921339496832878456051400738013808661875168709637036464327979472080516662170687494272427667518344900643133989104683570407142359908032207398681693426742014491627521014862856454154933153965479351918431731708201720136669290820008953574312290713755736369248182384571422331814819207442598441212205719643203902395049821064544338229229380686367464000745806644018777410729474248915615851578181106385687680859186927329575208217739563799058858163410443542708825784815321445608336617436663520019764901123019381980166251370226330268881318819349665505138041315674507163787555647941342309929264125171726461794502370971259733710371866676034186349997821400434638967738558539773382141849584276103514461109075969416293542109394037724557372524019586791991165748791307719157335172834792638412667718093311565496139622487091810498038625235418260143220000156378366454980951123543196763261916240234321701250966002406143753114576002293511391664003008232188063742543517098348659341799330210185247011256157942774649816835767226047389856850958847663439945843739727376611480638004742405030847050661775545520195849004789739422294674255657536423260635061126918769188266049431599284278158435658819365214058471655352151858117330126391155248598988718801474273648223275266248856877233204263967105892735643339772008111264990980920354508407776295081621200918386928664071377054159815593378521786889815094287194387206925710624526336342183506133719086320148063310825428189826863277316556546274548493777042831246765044196286258292024035209589630047881523890788833089512812315205243216909473857556640600382875370378229785844255825894840084976507152488466808051898395074818475082726864592473492718676582429921276903030480046760177534996145497586812240176875468109253974711118204132398223609846156952165508907896404862572271020944231043446349771160619366630447600861211276178387094318099041576720968164845001953840164295447603608371778525259001874717136808413991092818127453344515261244835918974204721655571594660638185209064374137453949040244088724050404403080644233551120181501724573948756143780351451518009452077053791223093399515768461584086719240701504334434711457761091049184777912106058002600324468715722773431470538283752526838605100680891043183141542191341281998987498490145974596862094127695554762805914041625209633475441223082152976721742715227125100415670552676480392993118342304899340431046834368422004027670392622061644468449382008677882458337117973773389441512544777460303139303364132192414901664042447206303166090882165042643073708248119287808725008496248211733959971375044510013901123305725113723466150473025770019089823169546746234256814974999882869455480807224955541284971077717715117417883698514861976540664891064544358747805859244469513625729931065637229486368962676598011040406477427814874957411992636080238491580666028691732689280011571864036270052104051432816056434815305782349265488028711930134451604253652913005527190788869015590971451729031115910524867791860847863471794009635595049550344497943249597259017929303144618446272851994475505892070280283482522741616791873921790724887679356009718131815301761950214034225161047877366832202214905196349784035713377691044727311258706871672367002034724089132927891927472974060640595295438355502772212101672708113387345767086537482199847652663540257503385501465820723584326975529600593787701094977923517445168969771034938197990893096697894025406692530362746670418121489407120694822771282057310515477009301283203164159483881574247232017998088071984655452438160015938347917074063287188372387574078812856431924475210628855150201155751757576811702050055234552991175473906827220893851842845516232944847045004477423037273772860753589294346283814077987872645540669764500894859454843070732844725891830129245328333685823057733273184986887774509318314853712830200981521218998879964815542090295034070890992326407769049449970821774934100522376252211053175769806602598948509183202432520849083899216628851913102106369964913548503041343897882242356105630348959353179614023164075860880240373387641094996476182018845914841558280920895142413836792580077311527470215960515802830786452267513244741529756796449587441500400229314610795830058469627947522434507589500898445875293360565710715270176387258128469996673744967826685011870314633100782244159858264303938873171619610920777475986645462888264873300135348092840901868007862422895707705787569627587998193749288003150033200566202810795518459930825473534582386091231483209943488380810766698017433605490431215956331444201933510659283636075030339609527677863579351777560579162649023026975568178172564356993468869320492803878603180216516038942103182016475739189281009724114784157788254353597512005470535710494627006609617406503837180008721709198891084850510628303250355009076230056441976185092926084726099317617308133748893125259616973766678779099543952091599786263007505132620909738076398888393119382109588833782383054713280827177928053614330675528932945533970559778046576138058244427386962996900378171517743108700455068404734796822002203839879062893737946484540406738524105806287701530995198165382375183628962836545131096128633889871652583358759221365844799220434486302118730683427350625648843537262957182036552644039448062361333789360256895260639123405025821715283962432770404763795470864871777583715938504366002133180314325442398337338927654948790131578778135466881118896283328908870240395346733131837747377276452943108755595324777453738613702345218117651062590089823358139547172674170831414668551500137625589356407717011120282413312123994956945192202219463570280212016731054218302825207229326071550679127522527754623006763129636822816257026173462033165888422573071116156424549039356141390260366134301347491915270986607426400618166189128198349451917374835950730282503972255816999907476887945696179335103619052379120990147491402434503183803631322749522823155058308755028890609972686094828621142189887839818980878870102923620144532966995315780138597465612945991137737445197068278299927255370180179220924287973618181283012091615777226276365831391783847702370239082917445050137273056561445654557138746030930867347953327003135606064206203830691642972300899902243380510435430456067859479721635306520426078703532927642212844734519971880274789061069667767113073983017298876218989330590769382652327460300066868672640869494472501147130667727416186782245005565156084681295568836894431958711486968005278156574986994904637390931813788879034227759311205796158296909951248774861640417235425006705250008039518955324438925078570930424531829715999882569337995611077005382130185763650192850543336460630670090096928183784976951759141142717299672960622058407841412596351977109107046412904126501977220094058374517201768282659011229093155935480066528572778311257999026079768408229646158934257458883315070905507794977446455358312950756223367149163709845075582127859902864466211592389834885337401344733302788434778586529960203280227421312819213138303424410214646219284139930625828544182408716224425135482950391369556800470444033460762197732833540174053871603568937191441783855030468218834120441639079888068457721558992558426563342628560822049059764217094604652757750542960380269910612603220156207498582708543038074615219270062512379873273663991324404950927871293912652200786508334601210234769071001372546050256195095261379683995616919860394245823928156432623206735121769203171612982004084528640139801578505712848753491273853876463823518848137612834457080928974403490992356790657817497051818813729291446645055622348068886352319362492513889100418931380530330216270948355439669989529345696387236694401448048430573705893743685456338245486478688527508489044448049849177755030840722927511647405932201582117259577721071045275614062828495378828108603861916898624471173274659538013328774590989972648177970767222230335678880965695661025304334903645896717572335561024057228429159004417555229032266109391171965907497345796898452079691363268510391959189623114912072484105347105447600285395721072114643358995867154183508248759815354889681696410665294992265824252493701229278349015286372640170829865746228546775726436337432672687988240476648884618379217314394365498906535244547977671926131881266204179254953766590526783322784687551273509230404658497699455014597732118694559630444523495768553702365151942354952461549008791593531706046138197994598081128978794359467449765364548537551531685435365190043960460887812915297112981620147229082064376890523988161942385027115553703051095420901593148913696604123749589929769856614671924447297970487383176689527021152692728997775917378320720652155387371227286415878212268350440480902633271101864416574089048597543188438982634257625703311977218417792068912184069477435961817392193314320447130075184910999860525900787440338183526967776818589165655406503935956248678643802784589360478534062104541469791201659818533905574206432447503376916414042229601563686053983139970423259636427793702354659893266046567284095025061624326778071300830838778210136011580108720801417511733047550351306935623042487002180957549399133412088597683666576799433960904491591875067937568267365771445863861048389320122313512158243666997610307187944493193874486470521964437440069501472615023595011051610119296605560538991540938788857287965382695934113017950789838975302376072596317528418074011617615231951214180581337372055498034861433680095538971917556233926943495889731433541809347170581599632055095431372687398779375645597872811039143735397477999140321069626380272401301108324508433466201895819677099467205837042173803396934175318611527787065134004995206491999770647522482854154482162177521575546596099303660840665721882468225924871933784304728544608267219543754891086154402794603955089233502465592439743511184937694070516225008748742452147813864426074812864241393032142675482359768462954454780132036419911673646697982356428401831549289224014705328858687220690628347332978357932302333415619453659026558071868908810309204619328659839291634695610242844310324519591712308915594640949379173681763774246854879341804606575265695320611629680242395940975919253967995610071731035909693171990994879834537690314790115791428929960761753158105787398465160300322881626552267879317363289233266865423964634953087292960854032634689365341255972125048890859029751446421838536634240228390523890639405763613499685727298419194811762970628624558638096377923559326561496073937271345009253508769163207356924800257163356269420027991123170201835645364048078235259484762868147788511286397955424195602834473274410503021949750049156741382425626514527693208973444957086492563949252437848027152509006436682878529864288967449914058179587786145932947404495795135134975702162330039851736015844020060932313676514806829179751044393590882000504950935297733671188844460343835360748352247126409541388772763764599993862869626377391266579706883133935783004192707676308451022078945288524392890357771416887255646640733838881991387609052853915118922447362708469326043992880074645710929007368304897253068390946347111221522172136602747393787808945110461469718648343885504623956779544735045291543089901503068136026468722216635315600488019110192809221922156568972160230431106874965754885960598764224264115228236582673588206641144194448752498847766710732619398783101981859110289269673476203550410401463992265612023898389260415500276686841571296833710390910352982167617416506915068330253074944457939729118915929598247133517578614789903451975507301847210900048064019856395086287231394925717760424595595681478587146974563927350775526124693094058287311820885840658174998336898091582160391216601099762796282638282095755980181302820075045454352749686337723378955831772164889921951478948867158739421082029934350752358951448156260703517686952188565936154924388764623227219962673560916615345528457382924762808180782078119140268824763427520948404567817291584544059080832879292353306942863925874076078349242351824341115116944191374663431858288570225689867195696599174574710005046541185316943971189667246872416899953292373042091399148104910301942601215994242999760210191673572237859974840765185438677111357964329639134287706302276668154220422305870804723664258624356663441818125500234800182316592483076820158160574526297839259366544827184081588673138545325139330877303025268360561097841744591760152429595638464372924423149087721175941369364779245493368374532171855289487847073045669610857180559694357037680050509778973349668580977244823517617665114414614917366017775600525096254559515936789735866487620929412790597835106063252280417762052974519569648675641832093813186416753769201512550726859398821274378604938412645885071459955741294028431611697251393395254882046032285823034708462321463834988819384090762399333240929374259506182340163832995299452712463681346358856560817585953993406661754169640882103657238981165878787070339220379689376176650902519919685871611667396369242270966013096331984474359564232421016393813232917823513372766219847629326225182852196761169301103211019088964553381605493494165833647196067466297090261247903850101990381692524297393181926079437209184900641533112365456547427409814573502846043361282219057248266314316097784295876349756525404728264351702407132037400803749503831454559042340589244400922674966677757101843575682648843113212830477699307793312911133482911956346282366960467669192536791754453454705767787870805392042731219869481876884606118696408851932035585196184368063484620174689870861969559886676181867133749175853975125828616605996513062956114411136033319231549549868332997649540213965926185340726835019393570086357315613783736624949272483276559172663102072337834888384983686302300763155209760783638711755126203623635133055686060891698983837720128129198848486576662950882817038854330195673945036078750291045865852029926115043821494706729157095004005465873650215144807393127601371029352316319032963291450116969114160272403455009337406667382798365356649244836606781055345233038163107522768093174296485490266175264753568037900063415188132576917629758293810585801383308107536621523691062114501402721024054967835201330053700547216263287118088214424535459721029707036871871504546883943796918952665020397145565276718588947089126479593169582388070957370424238169640021140212341544675511612220820265387967108013403373463895073258423771056492121452844958342020444015116301945091454345869352586254916005351635497318563453945648846008591196489222281134353357155554214244253144149594038729463428521082527102721558739240192957899016219838058359482417520076525562696215365595723416074179088225841144228028857735337377440386894611753819181641474333700989495161462771900409145889974392294454052077349273243560671095537712888240438782466552727287305159398670684451108423862420807414418612563439856149389300874741530029887146717275744669732879852437144241845890570268429798400651597407338467253003543576606494096687141471299546989490835961542937941412008688330742053534280081855550179853484892695640015552177624934779627359330913003765967298336532669625776176249268223512326259605263223419667806558731319242587303723643991076581513149326793670913632737833861926513610695395449438657760477715774565139229275284198630958059443785711399735864663948438029653752469453042577276131615666601739131265569890078530250287122054554380326682130952577301855278719004438843405906673364973432390008725349453636007054237307022341783710781454703088565965343023656997936431821612085656025210866112756103619627183768968514967439815594052667832776011340562426271481207932163112077465796467705519437618598864030152555945155080224709460169413802556188281066718783306539113204225534053419512962296374131452552890872668660539023788398488827631018642652360762842127246994459608916555507345158542798359021880662349679721144453734548794487062246864181389359220553486432744801997163778423947429531368186570187607026750248229255950334877528741002644877621517639145547267850072788850940670687472061889134071260767969431454746963656331879853818885283142728151003452115840366648755244276584635887028232429052749952705015859858146092651556678443374552950497910731873170279196421440740807288960086321167971296076059083114949281649441212985710062721775538131551085763429726897919663246701383316974932572354875607919249978190404563245397585336301298293024404807474196657102389614901645650308771731301946303161922446062046232050969240756180493534317737255150593580900986282565180161125607580196535351064273584208814319369522126152719262362725645018658244221617926538337406336417985981013913697151333225836308308212895936970821316657971526075971540554881779899189688957498725523755202896334743575634848413409795865135571114941051216163845832606664108452114459225451485939380147603521358826868471936785294340718723461013302165533810531702825080807174043403885192454983245386476427084468009809631188506788649639114834491975093583959109094592874986554232540183308449263179935966216458774226715417634051617839907532519324702754143245364915356981994880607789762105847284403010158162627391771812514809354671504717042006315469018673827158699701994006883588772130523381175662741189607202733697948643929187474901619212342391737125815706756268983983847753699406334558850025069754409963496765328627200388645439367679125365790655087524744633284112824881071395738908686968149407126313372460858037501086370420245423455125711884930572387160284913543237130817080714675893223334376666907096795990966741115926177895695420200537189381433497294877467890209222381374587804956963640048934997333316724764357492547315139361677350016947878020940553624060532335627688371188098966839265069636349954067639627624441711725381682768594887528907232958326778462672929099773986791083460084259998482074184874821001177858117153231669163223892337971972362626845398365511747362780491832257597025663988398771774769951922879944062949762326550984561572315275219413439077817217034598950667466570848472500477273619252091261016647023338550006008500976424633190528686336079634625543473506760296771133393259219602115008987159614262956982550115875706629764545406384125222141313101043013432240870409524755676588986830986936943996510746377519730743129803437739082887151596836394983579061785610426124277185129821348620657711196857411096050297125146433675688764910814483909576842991895601228049584642056736380912286881866100317444748158620350804514324429294639809050170501712029425454551258655449611228184146258828360227309752509720911727410948397759974623515031648572679103318601512697467927201210522269152734567051694794590364533582036817552562872456519939898892816253068028636268344803114506711302915904526375323322557887189127940495618423560861908311849249555908771499317428752565743889788382586527477401718916328761423934369134067481054625907365159877658864575359145774922378127857657343915759739472809043683652606189670833336181805757523049521930123455714230053413808660914515057871303065787854888074340644780765907032441417299363643688719880564567848999476516731754161646030529924593596534821485036357619461455193226786164510313520305687852305025666882616530587431179955434219996998031954463187306020938002989641555397702152556951325632773080366811547185948048475789265204413761139089930795482109231527995315506881881672596255868910334859251221392388908920455033133451255671543845140165450596673492912180306924675938074435434289097526032000350616688466364160229592185469989625947464911160798046100308556727474983958709059378818815224933678984911696182775916032241202822755858536788857642538996466100351563654037292408664284738271832855606605454240612661769017175376122026404241862348123934203739658575390762202264255990560985963679723565784920958144429139175701730470014689594256289956189781414942357211485727729005480357529609402488507907884545906464766433824580276148830414998176783774887378044239764170251224427598900403966917606888002348491611920371427133401813466582854620932086758635473411374042843776689413050311144142249624474115987329839458261596117278880016251166747496918339384400323231495361351336356594635367925062841925994556520552520321184260812574095339145590794128959305853009933278510469580120996438556876800232134482945408942941584784666133871956822995645275265417874786840661742294167648967383357597166516437966286437584409175157077513043582085723146162357799407915166531219899071776902344746807420234783145094051353918429460870520321276775966480110062265823805283434063479141498075242095177228332580445561782638418434259602303073830410868728601364832309105550713478226777221142430332841371783265267029424467656620941074015669415496767064984306862498938142915870478508807747716852662299771177920489432153029906506225431915993975152776721061073407569111001736207398429429189123314156703840782327693138211867199530342980776393364887521297396751238298737936266959676779978306244670121939725523347066563083493161233524391733412436435241644705844704988027425851165389029100702574800637503710882984860756938369314606478303490938902021373817924192582276999768416613457662348977432262463201551338078980979718914224001914273646115795850757790459775005643989373521856584965235910537725401564264865245166385338143759197627518587138822105280614515448774422581934815381326747084362973806354612925502971143310745724531272447191183956295729857498327205670823746077102453469003861188410191836270214852286298993169454761520436950935920267196628910544256894879365374168017267965125739682826457805063603156443884001306437835608630382116486968042468204843771518856416626160394550629974659631712208075958133569344995318912601528852111585654482064922655673546864673473836421020789174171783251953668758193231947068118895043500532388136331669288556157968156125641626766934679668065061193590945919434642522208408443252905502348715606094133941155566548919926047517333800752603411919160138484249855885287888200141653818145772058301696086706819055576963116870017846399255895396457449421792163194582262144498691823131732192848330277458263718589391360350009456995527376113701644326331681495799619073986933508958218021174610725089263540934263265422883287295860162633340871453678337067672171546124996389692041851127792547260109307565806470414341413633134211720944080022119501142983619858695712244595615506937563939364230441051330545027526437079680453500265719995253190343236050497532946498690850744456738493992357988419987035147544012448135287780537564357769389171242891403397620334738479938323399664791211983376858803449016469615165446624974419354822973126732098085477892589480578945372995125147494661779763087962556682676448864211444092000114744732173397068095836358270767875173770547912856615701389484136688164337729908731792371904235667267863693489893968754974479266009746982708007899325299209546778539583677415088255376993798376829925516307782917484482584159858127162640149215227639874864849723094021879564792585758121678353929183350676868144902536091241363198039431840962680879722056532129746954107655528908883143677097926384914712882442241282276048690275948752728728796457942318082714829968285206879359137168107435086281121239283813075613765249049898521859051187398717714050720050192830695845274429296676222032179022552726840696265433602640436159147800380147672631831894515422637590638051142203753829133894189199187289373035843139285552488801106907886118253536965161614175428623029277446009499393538655968150589228981637978605463066970028675152904180372397429687733129168918677065032211117485786555749122984485628593836504513390863485818247017339307544296010183174674764793425222518043992769699943534405576940190421021046648410106034585863491192015256140773902922802299976014893159051633768466791656835449976556450581286431732460880670140339796629271985281222990727023445493815064039448567588499313035993738011345016423864255971622300481668304857877483635418563957091619008467419397128320043334961422493974257559845801997419419229990228120158178042622365648215715370793772471340333817566479546499816470255562443894132098764145149750928773171409886650095780107875196521293214733361781577484665602002645413734389853710690519061251257702778207562910437851130644094959236462050351985837066629869251157406581180179880942953196736075991879753614734693256652760503129681374625200627200752623813219597837246438784266477807781909461551228191496408856039998116833240470227302800475241533561472566866127351832515719557182978752783495015232085888683535829247091103801709591175906573994101058470088354667024569640943561505111537305971534033636961980630200612671671437739632074956612852595897556588759243193990043743633355612065383967574218183501941954777215358937586157948817582437286353269358294243970940424051199215010931152938731879349919481770379385641661970221567407058126622047611600310383471963005836942140733227220071909819458318609213496234917155827159586108444691245197781562314309762261895093773512283044261904769832939166550402789178080080283055735328050869881602685335237002258873807064893672045139142836102339056502299394468866069656254365080570960598715339447146327267909532513648699325768180473607633072790124951496246637939235221891638327089281577789490444858393462542841459636657420914718396788030369939738534304379029692809027930950846177505911826699014480319527358403991887901901834756011080025279044199275721506448370687358907243561687422024461578144076405850796414212168261639840774849209377358784679960169018873188639658135195064720990492048323352400376295492723323791034341204527149760408356670322201658035020784149587990944204761078481676904962501388819611174516566370022361189584848889749048543478473613498518342697273756864829561490093692990623550796914304080426409204581792424534271723402317704665085651402260248678410678861726453557305476635970403581676298074165393337119570920325182799830984766417875546573029345373798371449135429940112269012435703737488473597412649812408801633567812533663549069667631078284504764218036804532903975358751773287788179919104199819911802629392336184884954566319242645078282465156011932027018541447970609637347948160696382148171554981819115107064989490445662262714051414441026298232168860042654538324157702658104769680812503528242852565722457174954842347486382880624815898164315439790245976351883247626054776092617742550125117724684744274981535570022539647508013940381843506090849997539079078032684073842743225215757139378549688083489450437154297669635483278926500514129417581615799553027161114245633376506351635612321306603250406567439021996135149272201148591073175429303174808720177216985418780924985862082194329690051052751460984228976226851577771099080080350532483328560145843551710766725918663796195409401050847827943408811837729032518071112098611271831248279798782271541764353170117862239637357673445817094105277823912902899723545631930241069569349057433861208784890337872702716802562150197156732528508236105181201925033539839052125065072782970933272630150973794659235189297392759328275617414067035533625653820116538161713934981220332784997162980704429387537349189096502483906977221733926911098634680417645234726186113524158680142403778060379187153929723654989610897456256484853462395217735421544461623193889760039829312869310372273500943778025380094713512727835663676000402851232679316748253532406572043827447804386284191279618602581413245701754172693274460177048776602627446341024925866184388180203534364386431890339122626693645579764768406943699053421322205299205899033437173177856519932982817278075556353518698197568517591310052178402417699375098865330396947742669783616444059808035363507603445578479964178744959112793363579641622187439101752500885056458188045495988684612184306341057553151902896654834564960968406663821291215629984368932353461518685381988297630262884983391136420437809777264361905552745068337899793597401774110741019113707494046904437022718157994845223522498806595251544146869154930906598872547855407737868503097609720418632264482718807261424681055970094827074603354890701480209056137824004541358105508412524522511095153512350628038284974668858059081264491432831665006406818133144583132693315822057546149551796901611589717396035363609795372959882495979762684893440915305045689642319571149226581238064974861097089950663284502860939971459086513914558526822746622668643433563320875865045169797296873587789585992492619282715812303468192844897725537284031063244178566512432095277195168939259914470769486116355801526759656926365518778067851147808365003285649624883101144857266589497294780055908757698737296134258723148387184562585741816313340895580629237896517065878727029343900907620859479690974028782410804836978757121687676359662008585548433994002257265328669053299608649666639153772246914668959788426828199685921680585480299159236417663446660828284881060928103580471093119515837598113458476906485928508995438877472895103135922116761968798806832510739759745763616751679098830324500968321153379909884350282359375660056381201628707448866629043108058943579306472172090448226875267257382596226374102558585986654273034084157575848270284986552188381966108340322377713724429504636542174336968054972451165363020133973766431207400830611183953486113100676529102689051514229649072665912787939382794509549737641482965998265601358379063378967480917493172694902006732892195328358112999966967507710232330198498629295502909951734998440097231248202518548162145268243468851341326422688550473469595084785139039479055210799942316550161069979781126251208527866172969204076272023698291901559398310869572952705197106960589601389108773835844265996132477102309885755890377899054066846106134870924896244615280049489360821233891500622413211110413384190757184414197051700196183400365961813652808043298859342449184417830891386862873166121889429812605125601288821589439525970290313192178693368673144643402259824538160002819747989875910770126289848311968487661832649090967548156640794627615644065834864049522508749921740170987622146098398282996618175839604810165853097578781643353242919451497999871365987385759143578058170341136445776981260941473603747503019678135125238730149521986931810313118748909785743166766285643196876897079313898918284859905844911379310405864130185442525281359379526727845165122696873532115638340780639982497515420406583910937058324997428739425017851655880060094904495749776204702489432328090068151963567719221788523310220880621826314148330490695164891714298740680240987130475695583841502152499593093814571212060317980509780235631577587512160926392634681690130155897722464859595508050987133246162708995259529352921095707357802104323322675109039867053286585593769846914560937548389126527524222026223718069907582836964686595736297609112002334334791691331977653733172882884504527665954534612358672413017614179656563400076362713605089822293416056003794924260196741144289833224821855630469536639118593466075448835654938164483897747622721286207431409203203200995383868893808822045017134413721794210374716190722806842386465772737160397531434151793038946051672134880125859809812024466265112912924456809222440507379054637143285942251347395823773832121236252083119797895210956431656444459717922521645023104872072172314764909612559049180875284304900315556769849559096305613191733008571754802521365545952102756646490449792663542953978436211731115356198431612455746218425951489226016761426497106364442743277286734913167515524581367934430670855720442078698454986117840420585067900582629270769328635604686232591793263159731114578931021375762023754826060622042857151552110947057811904553467906302092330960743320458811346995496378826426498147876750597211644060638754075610588957460093000138596632004856432239250682199047077987239772524848811992100923114364812597684650196210664739161916734283629612078010321706635631470352579990253585291324710603127329484956439633804245083105869185581661127649999411091155382998231855352661837560168517747851765147361321740032412994198481642504223161678212540320551205509432906824911068833981528813632904721764794902532706444498650828387305708879262425314617440002119963948301262528970854037060420853911399778687084400276810480283941681057030075363844399134434345542757689121048435402137682439253468200929324375942136765292924611713094090652593877269815017147254835379640428987814391326518047569952769076491033965481967561321713959398598312375171264891935841403233183360347022880086122058525248347029494999011030777873307119135137976717644444362846172119776732853467199176501742736560637438447932558148230906248488356818086933573162067963131115034685228139553854924694930711059794381758456174503395048325995185288474143927828726512452112859711003007045746963276555643112954358543964840939673130678129677904343255054324345054826079413795542652783680232198412793139372143975613887787742522833964272564252615567415846631573781663726824819079350204151264284142917860918124279472894326467093254700242815965580629453771045796143537449074193419085248393820800152788243026864899738167868402347718465064925241994532051456163129008394038283608426500803658507834981091596834012774571215775078738919989105135492377425116519631378409640958292907737240435510219272911936934290473987456513298173349803190927764883813100100160104179800492804146237810138739801809139565461355591658100549942716577726708408798083154955358313531724444766302812746700421562691830621245796133218066996784853649405355492681213861010513220516098179866391653767124142939173842444573865102011740717990334114074045578105660830026127241977009109138086282637301785819505308688272568010171293275761083820477240901150927661272261986883284727755645112493422309945459331682559391867332222412180751462174755166306515482708676022824347116277457033895810017131765764532944197894243680189585717492730466380686124495319928911175660315447879948897208908757579834914173443433207347583806760807056020181439058328505051544628953533463853582302617955063519201217679972291255386370525008642005434175314854119900854077694300917717469407000674211884735211441966376929281439544538225169824483887151173124805842908551518498546736789408346258669553568232279526876206716008552999222999872193494000747650731486798271118768293779095489259372509216147806060658280355474508348341196519017915231510381439349930473803793532159962955035106786585766751472520684758184650519465264079073640322893423294987862278306950076050065238008150119107240355347863605304092879060179172259128967119554680170529522703265041753883301414699495868219524675900690930972060226932141012191180326920488467713411858068606140912541296585618245522745551079443210727313690130201604814298076490221674988265799892461155983280049977533961618303480588473846596646170432180594192597440305333660607771845765429686221610292645141820139101771851948626923326917188494956891049299518728135452227280419334774036161395347144284900800196531077162123505484651166469178653553906351298652836771729325612333494174124833564898950245083738419731675647831010842845667235610589458802689399339219625370210268189974802197259458917173666407646564713500848085482292961520773678034477629097580338659741585462741569978267774629197839985853906490142777111402876471623269896045119669139192638642249045312732441614893944706097986561919318002454593922735322156522750733480498739169710809762192659909343892797494018574417122865446169646778855841606935026130042649070441502333100499032412697242615842783896439748729320280504501644247618031446626344208611151970784629788509338863158461285568961079954040828521715476575407223348464783396806435983145169487759878640421961398477649919725113188269808878977224238626774071402408006699376752009842834689975893625744193994157089206396883631733451563091717149961185032262865484265076556731109836371431279982909045059419356636569031554315325054167896138828733833630326307023705056533880463474523607754444371383140092952838666537593238265271801411293840275235505421200630567924644032137551237322589434902253316589288343973342306076985509176159318769769827425075369376883481746109102507389081962128044179519282601883754548135897595682653173311157613844487599929141719407566244600544116610729593177423850802232151186488942550992451280215917144571645436125190657770960771540120572467273279186161096127459878693028735959204267697905981565452477112691942732239358909228429048809580338176562971470276829096893322120801283937488722976077772018930883268937112684673509518644923869519811512412904603892516153223747297573377680328218310774361855548864758967312249142833044001185970126779181522848825555191983750670643225097918638602490786795756359587063523716456362538117675879043596779316125925052712354482275535176648254845980704179156725354726821982737953348576978831836155533115032715088486727718403108969560005202651827689091010717672405911909385168951276119269180648426052525431754876144389949026504648618933322684916378328004690281278864150177854167216383002225923424580432933523840876034225395260471918363242331040903550122001205618739515800517900231633339821569671473391114797470518587060936957893658063018984853114986197435142197367235213818861296416749530522968027844049078770681427340204865067835561466786438111006103733852355551894012189973341379910355286691467815533364502613984002296328226025198031948306977549895599112592365469595365511943208459733617774225250686648596304590434443749480413041624250659214046826543217199440887995177964550372394124279782596786179017755638239546404987995390985530553787440454925060114391321874276463418891877947123540823926586946252377690669322569565715907900246429417113954246199073920510933316437036746593578728956251912094813484235454350699643648297168791147095215103976235538641742805466794388771178824443826686903177622684911346619467349064641538370226166775237339531565809441178769634317650241544713318568281563919075245339884911965908726775692800531415631384987518953870000185400042786980159274769316804554636093935050214532791095787998660085866167538529698450856256137067721569552944446129416906879340546169287090488319514267940521055941677197781977841162755659595848268450884378134639194223267505983913285334921106295166051810402087895459381405132218745683885069747872449188651721094828096937223569893281878759491815137580886622650191789687839703254574704760710638133080072091803380205140944362998344983786944969219463065067799825927498216046627009467446635921513955853870005450498361276060802206724381772558795386439125512131816828766308604267518202309285997364408383310842945775426434679117836448942374298637602406496465395512707772112254534906513209775294212342696754419737839186929654214050272156204809676827584166248541253552774345596515887427952489482959823091499216746533231703720771559247398839389909210646262495054772350274523513646189283225207018826833568115524744124239902046984888647231620227973247094800901122340894265131423302915646432934114771992787737865250975785963010389894717098974700987523060630033900312756843260850075139632152481952666590196138154283779332920713300657541190275171504000098482804627079394231038227723279069379343067611143574266000485522000340681507642204238383816974137351409631824750752698498252791042038739222792061573468505836686909040370083875026249916465959108962732107213516047734860383164377784702577843770853953325373837140739529020078702002176172868382301359706222490900784259662769561412614362728356727457716010273797168514144356363739188747214878875242787503334083321522579042113355058414590126073993338233767721764722179394195758563148799253146708018555787596821539279308177593275548305476728753501430911242655292683491036976274128225012191766638173883573461725151837347227673979777562565191058733157844184015537973572416022620186420500602009974760768317070786490890243131388725410430707420999804025946349030944901232733605170473451521091368481443607030275954393841963691031126727920063430718974601660271154251580902126948169330532422069827784894569961297835995897823043462332759976404366077989656176415832268021008762230998459332364297824166821230429249182025782670768534236319442623713021220993762365518402883509928456513035017953190096653258245266628965387357863614326909261059993872764799217412485040707847382220201521467047986502933065845841175881560523416044639506488028413953390891808716329685792890777944834697218580527747313664317649725195378878907267454987468471566734953912879787130883941442481771224240860086844355341098267193329685438789309926048866061795511150803526095714619616235915285690849355713545296726509786132480477047903303189568972007674617604243426903865661204448965602898246816782564623840902378074005935938062183742911108414415921359837931024726794080034427988480162490674203689185843202757586626324782979403856781378183319441135816595342112491827729402907229507905936629038569518176320544253438423375487380375916224315984140839575156077932360481023889892177605105803476331641933683703217547329441599158999719209129927355803284788742400093292950535775850428426023968983019840468502768613830915393470534714887108336862369159807949668195680279969091040938336217770481370677466622510112983921210723593227925518386043781508558907715061513938035250895994974735000391576570790636566014085795298396614973256558158240518104932318745848938180834018000044516518644589438093755251366416215405679710493227283372170035952937787000029340464204429209658679261462639766289304332649823717287693887185734780986750609334638785495756492279599961040225154064127030312792861485548513541675376974623008516728173684845762261852966721854740431227113850852029852044708909977753208527681270333622686466157933392924245032342615828422093292824183772526132506134656127459642464220655167865721181255991132436971835172692538447776441264404204664256263675979004782146270184906149419745890270360748227507801741059714749665574832814013327923981606824161195900395226331821516801987698799414207397371326166676095022567096098061372393060968511477414704510048993040579082890371010440034879767913781563791149557635597826896244538101708690021585868498611968829864223959590568052157723946158179036694503665081501418590200530463447014097047715389959514249875033341785758954293174187486242351910899846584021211833744522184016273571787732522427384368986259677402195588103414544461042667803743232808768513944548255787354285322687686905583125931623656469988961921046946080962176542133118750691998273400173128577101506011255956338181810502869810621598844407293561587046864993965701143115529053157311226236728413558507463461187137973628488493138047020589016743310594411070173247241605281702949663823432593260805938302101302333355813951298395632614496359183631399252296833257888461285933329591162121958405231224855892038335842666568855612575864832396413059784138101131738530247246906087428864774618230825212901837211950640677620177857764617959088077577140422897183022161731368994003197388137564867418290478720893669445172594139768647583308302706043000632399034634742728254594488758343802659356871152165997893335252363255200297833029624888697325901920909097688372832518884770165985328695324314450605379309844483873736970141657449723512728903876872250191949695286981738122321133036078817641158211165630184639104023902981140013873989017199214096465101751308949806364759315463474587329631619012403200637697512693859695061847331825362963421070049199676793435291518418815035030695658953222755949738031849995147444764989141457717873859526627433682856914815501768931141190188545169365131420638866568454918181548431632846668240520082194648169613275956226614381330014363199401496359222486287832082686168477238645995020717116102445119646523073131350240395793215325214326104321698482975390184150997659118094346821783594986998525787038027918921475304593589824767653726357831463762044557810583832619250859460096766634502427058308497136833279008066218674025942180426899405624663514752652097704639788342111491570708928255323206292184003089530942749885366310326954731767317271756266438368172932956561003127832254592489547754811125802073572100319378179889665580497784747084791477170666286154943233933255978873719057257435128513371870409914071342179054340921006825328448356814452538388713740655832348359159038713328677970679106083375902151239537355943155708203718485068966493654032682499114402416477267001478800952352040784448654977252461638031561461324555001789993895107664938983461697069137416138891953078360414025448888896895317452625544088116748739045071615215043977460089488614186725256901133724651646669796036409398835035462736883621190928811004096287441661186865932452297624954291783358333420358988611390718174067686006804097528948795273981067047802500494741376733939856875073703856954118335668244101355513078771125455516137896991386655416250617328209769996014028761967746052865887275721496045484055358731536249151350454887322477724552994947861010597073201220807426452067136515428508687904079820909846628619276053846954935398163094492851371819955776609292372743801033597625854091988577753117020011400096762565181309811381415959020574091830065312803299638450026975044519793576029764596982799569617514884801244778093124045946083211132593898723626305945652027805435797700017960767663126369048954770230082607911656840425068309899897660148702277542582296913673198169485895883363971663137673960757330427185985920961946339604064983846803139962836958530838554379830629410229553492589017068394611735254649055931566942219627191938187995945836053215280926937034417456008949679684281397106010081756213729522350651655880297054267009205630811249350185514924296232448836480989815649962290721327782935391832610721302741164941523459904872256966347467194388990837455729244064315445279121564182489850459275337139544501568958702644622505429133522383431755376969439919329031586164445818649852170951129296678676727746379161892162010696639002827434382333548993253593302765711318506321213409750555060555199552789895032411405616355528500716904485583796461693404580820429241606424645931585839839323775594204362679708323179845559133013098104647724842610883515313152442478474480505999146765351730794465597271017513112603630811484263262989632367506994072348510841241617302769738621278412837180453142451623361852329560904788299347737347711381317340991318137551383382174102885949462180699467819351540370633374132383808923150795588103128305625050721598287243371844656481884457420801529775330184597309378556041712207820227441751443867493155857747278764794843365938026209027300459632186327399233164145795995673084352811113503254658602457996817021512499682921415983714657564576842508238240997605187359447351895754973490423109627836802770437586849284669902244353167359129187421803975329385685139038761507146789147815783051507575579678176020770015914057103497689659031206858538871932643057216722814295018959359948407113080751984681632014290070124839049905052341446578409830559745192659898164746681038647648324320481032645937613831359939763500779397137942923573922531867693963250602605215185095829764413503052480158912689931528375120444455169504283473133550699002630418694401677830216772315167841867313596550447058434834842236254021362493924647802399430580791628877232772092302909369149706657442897133447403321319297542847264024400865787067408352740469329200379042084920590850155010879255890913519190798775388285224965912394348270267753309003037705075597913323725223565213856269651695462273390169753517165384046377104205920064743696534016111009262499416143958317141383202409472928796590949016762810575879636331269129977990697439739689918511317845752210261614077139986356527047782503028428887557675324215338540690722875268330366736205733932595725789382278076367576976416128846355466352235519075390213133235741166792330347376696267277530407872720039714395185184232276163168558652737412570153642606168329923700259011290188939438947416156096394876299097775178086176274194833819697382774099939479150612533220513046781915372464671799832535184301921809963789458994580587486998166151415639823103725183939306407307811808133488685509142472579479081972550897547612969345426927380921194033454167539209576098553704141370959482645584220238261518899081360362201067188775272203828483865094798686010986477346108481936114812922554522867985388924940850655986263194640884903034804282866539334398392676506163134971767495906321000583353829276921820021731048730820462690916062271314336385238843548597233885929990457209507886293107634037610258101773547143998765033289242292377453399137399400330197494456609199192713030739515496805019006910902547244267118321626443652330830560929274476226402095077344778552776979463316959471796572648474975361478501492224704758394287702236076467649134516404628475651419611324147944920513305519452319731976906071873499068724717633689298968550527197499288434408353318071315540232159252760965689491006424163818035380415184899346081884993858864263686075428467465859263228704045233722708351502206961379031993014782567134942022607571865394124092880052049830133534608824731540916840591626669897120428543044256576632026224468634805923745247911135703414435175078193349484145686171733700629756950182021948524504783848952856178354740507643395543350168265709628017086990862924466090699441995455480594356294650476675519368103812620405706176084561377354438288329432030057751621423487036521656167127591984575352082061062606592309216947047316222696396617209223346045333592730434124864763475577529906549631025481133818251955354923420510734661703282896324486195996741284766032246190215172823165930634859488173836017482587958645545296973316916136357394703873185555968053097606189393571166986215110870712299714589020597530580557265419270678470677044944656987451980247948154957120622568883660648450069387772612758381690353143687516088913609726625131209977070666168017113140387048023175925972487504048843661169855342997715651843942086692276690885726380854002653804290435028312612054630751982335253486533144234842467916030891309354905842487630299429562284523306626349183462946849157403815892060828771810921190906492413352788219747237059727048103556942503507784237915385909648011268692732395741996865476925885866367775885772252814606756709566338755886861883767737411393500617475538030971508831572689576984388299192646518209332625082818362240431407836439418525880017044030448368005717479332366399216172402115624398887186266460260656690746426998542249555587150386567450692716266213014961245595759701440395660906645575554300623742391198183024681470482539389073653853546351049967874861610021789537100081562052029164358121061189708186944134689520117943971536679168270901861960601385425158023637163203845045552883114587348311400555464835334633632934685197529344310460774267176189829130728482301500545427635097174290509779980418456925337306728508831086436647321189846100758761031221761060318940224077942294152962731442157871721370750325456388329767550625774455513203326287984166337211446159036858808994111422975481421274154165113750296877544258188273707762387857079822161720082355494255777309812370024635626618148336001218842962430477366026066669512766329451571510343314928699932198180140652509554394182966874594422387794335024578914951198037136829737505177225333315542852374013118583113706794557982523250391486173959419253133623957675552919526001149563851305008768774118987607927882098095473267304558646394197305216891688484183964002058605282644427007800327338356553089623820210488345282036298049222385679816112280286217664926020015381649186839531786921097171034211108338694049718743865209336589356968080267349116115397774070011151380103850023074033039827776654963945438695616846592696921975146486659049460358897977839125774637502546573330132813099339132654710078891584076633894680763884540636530965406010562205913314968450642431118603352897273073104760417780995534038485525818799862029915090673837852955745095597008520247714954176156964284572859872520788119088008783952452924487922144940451967891562440227565954578904408747105210648363771010916692378156216873520792696538952903765904845905241337591556054901743146167534887650789825434723025853200479339209806309222896576728469017904817876436641201309645831979387123970110407229377224798132611676496334113920796730759113966095032351156255744314066894785971395860326107028649124822879546812546376300245472432875580984470779278484295186317747909247091437908828376484805387350149628276999612842570361874822432468233408332988554177887462994936142120025333928998187846142336938152447138549783970458427132272429597852870696730683202949619084151316631848523376467130604504280219194438462450078396458828277277828916786752708740112937384776922782982828220802386665423002558552343033783320094189077527454170736762673339457562171056212981221140699228747214119960504191937033221479480074136408733962613217007510485695117068412264739364675121922133358699268938863966559914418601732936283983774465409705394654836289560857671272681710212864605203344096411497193622488186337488982451061533899321075229621592080892957244697466100106725799956753678632977302997179838929162913768785863483063803840330170028933527539955648573517322138667665665197043862635028776453606346280572915749272797565224457965121691584795200752651561623904855430891563517192590927828861647387831478762783466101872528275922447551557497204858253022996342037261710594284741450615521937130775384787641807375566892194396495423684524952358292642751725870714307725489914120129062072674305936706722396541735795472394530793047901141630335957584029973702922155028711555799812808465419349948993806139892396599415551575425200340784987982910143070380887929595788478004556553292279029031358496284496414821782229799323140233453876001359591682570392439982305452238809884060115596751476806729768785421250131705587390564797067649796380673636919910380103633797357974492521616909880704138420100773771301865841268583773163157401416875915312540584204148013973887160541424588798675335962088546800536844173992007974870635917879088338412108361310831556549477370720986009091446177240829775253431978562471218528687830688923927586818577521310834853452887785351067421472319584485478760366530670897748872589915355502484654513581392010077567070607205376796666434743348034116552256877928134374120136159459085348079140228845632416576127336989210320188643646929480090134110729453005301248238800668046707732190617596122020185558731380872976707138641779701699287749560669728731291541034534197368828147727799880782143550382928262388970893704443599088273330732432696711723765456245494117417703571596846085902343692171336064053481851712226436096206590654913352009239579490273574003705860712394853996656942266088695014483212617065644646435126477209020004412840305272973188812607367853337829992515085594095815819938250283764518382405656678012825542168671757092482795883499361349419574562512371121085136977864284005143425191844856034185466039029256769382143305765598692425489446648769591688833775840631400407753009526071777664516223235142886914603788346577329318653260749800766501470115354818326010899872306067087512783213346554091788448792849121909263561848273471400137359647846442922924361717026696508376003162074799550030533735625980574018109707463605863841972624588425765352422291864450120137454632521682628659127375675741478935175808916454059938846769220362260118298668551014878080960006294908115452962050024206947608163787077303884608056301301285486986323129029462420916893799398052675561907917735945358187596868212361800025488755843694749663827085632527586133846372350224007740276003039803321113091126824539920397776687007516370544379848740972461817686224628266869744957028565600018484327480579730799125239025907547645872271110759268604818029971101067878960658667002392560086510232457365107968693030692336771357752625892153820751420480786942033970518740706378381614361539987819017103987721813663407273835313731784453256191700983903050116649028369249513069219497829687757165780517512109060651559405879658093518758508864059314273462567601323910074650877836457949368627892505038485459037623331769233972689582898945149491275057523133881550782025551832051592615066589149911900626872277431374710135680310003493757744296397837768086389362119973774988121153739997101707848853276126804449472786485010064930815495334265069732694434676488509814259436519672425358326086377444090526808513232844447078271136192680773502823977306719733436350455213131913227990848592971298927831575714030811909701883687094490801767308306222755673061890536291983369062958910864829266436563023327736786934321882130404350869527205162381390296144408181450445273266148214734212725393292183358015255178247243881285055075593921561194235206346606916083478490594165290979891554669528660534473217422490043329242392294883482479942504333623242182699838464084893515279559203229984945463371667681552548704344033455608227644863790668535966018366282117866967426366244257444981796404863174957784333071548869424543406709188778394081670675746763234725997597075868622113069497979431855960844614658138246432636692834211115594454978958690417851886425873654072145282104409817189005391189727726420936802026014919102168213944786819653075132358246254606183824870919792248591431857669587480386762505730619992917444429129443977531362962796744527543405052780383265872155027301567672506570707602136213903132307449706692944287191305347248131502993303954615959674399516204619422204176130483042906045952551578499276032185380751646827105609591814267292127195553452740428372382647973489578731116814340381083359327482102498195087196399446626489641334990704079793256573391614246517416374476728691955478035124992279515278851121906395907450868640247718026556397748180062095254032592191586528798228512116881841404508204300595429749045954818927942464837895596094808980107758969816531979696249693534017008113370120156479076943751271148382552717460111466830809410137684465840555946955194617809200860345592793100292210976968950843234027491304124849538072257081352469872762306362056787950258316672708544810632623640230880972172120071328230568778409830241721148011599384723893480112371865519327753346698483763949388940001454071682201894958245055704726925072152095795703466257285706786960759651810120011811655893923697067893330228665945911750168749320344919872663147674315104329199479637478421674108676135092434268309831812732194263077590521655950293103688542206599615234619490449256986877025432784785147474673556583176586001835673778509400049860071649897492135721680476528576896898778498321849284050890355529228670581668265154045280734348085397767165477794763097120641363086682860384756244370015793355270822354286709057524410787080943320698799100038567857102342614229047553625855995709539944613779941205973140915970274920027775594425247376339627261447424196574116132036556189607664744516291139005745092025027571054341521642224835587534107182880718493586659054867260419696315364366553745323175228455455333237083408735225381175738672797627022700005958001668713265516505463951577576282293863435078361158001611337822923022889487728083673866587475583255775909253284644946012087375106010397573440888255262163964428857627099557775269553620425619973077245660004935953486784210676334388226840864313692811196594143243658026445755535137694085185417811581405323259880359951197927919824546302422151614787678251619097896608364383276558721249949315148493630858773678804761297265529764752805483835332075380379999707548975733209111909391786088911551358230690495796461853611544014947798550986225374983317360774705323769820664726962424988245290842312571894685658820074617363218021911480637351883008325398183278840595181338592181840164346837600863383652647885570447073521689994050050667245467720709404619153509551114289680303025941989195370770341170312583538254298875599799939923146519634191914788207199613278963940958472397534343584926441350619043564977989701297180870249874750756440548494282435374147149223886841395678566623297810150777855256835579307114289075801559753388269618681345293216530749622121853751726145697846440551012966959120854689671109878846127511395435975938850442159744141971546937458423904376874391362276376015090630027257860215108897431842272342796435283274609956392956960658296595239417494343955169774038019839986934293518088936802416491793131758194129066434516699956676243533563605240122148165967987775397604552367696987462970912580281181032207124328358268149027453246624634303513837668563846587805578972937633411416498426677780931396637313682332500930954223469205609555416989264645930260185758990881748652329911204135278443062652602485286568722491544526711151024819631437235407635331252718447791457182063024442975795125944150168086991235403121023309389397720049300757786624867980492481589543136312016934423853297113959650873365974352588645269555297250150021967868964306412458908079377282961445390258488613319532325422916437202420103014982311330265864019263279270343657628965170374315497636763698869151763001300897847250827373971633000916110476025795689963729216509106709928783875597205681394378998777727554595337825286160018927631761398414783712190993871105593842366279987197614577327314495291345926146387805196209269804674302171277864699298379716203742480942260088486131350919600812310083484820322762150837124774313443021601602357062921052960641617121840967417836025619813567626900748469802729116927502977030243751518405472403053669688706565219081187460419276180378540154564254398594039345143701300352723162058357076267071416000742901924391467552383083616860922716049907736182257744029793766157005130478303148521371710095343695046296953363004340211538868067745646920029039909201379867983488875664464536966280697797867026015066121752657146974274598366878211268257218579584344782575160743934416786207914331427597337962643915109786099593172194728646072232690647616268720444421542216716146227244582724965501282745713462964977897228404465890204800936479594070046995210096975191074114348758247730136579107702245404443565160777226761398801690144259936917307765425958540900558762516149600937133659526230132259143195871532253576871767181136270678401914167400575127358448878604215689221404389488885222820264504713521456051905037044245651369530247549210687436262166236652461043344389572895187756216773228987464379993616171379776312914457487988265966379911847059669493478552228974775967039187032362237547630150789160304748907019812455281293119503459016591303862518241175095245137430382065854082837605919196264444482252264279222950871650628472300262679276308067987071438419894603243713464394363567137485845331412455889211803222286674181517232285876651851295979877347812884663441680492878818805255240092367881487417872682427918234348252480638657478508740629473626902530992949902937487908804138524358582780094034199209346097003581649750191001544061173390154810360505499575922747802642832310107899266272979019627291318968051342490379025224363461432553595636601270731076693793415992449280482660601567648565589255980214184707001492590492024532847348398251373299915982144590474937196888468940832385342537175994354282123709414588293302791397986556615190004587199062805531843473965646887743642246008499997005889065453372300137174999343698723473508428745436768573131016780852610527831460735747426156850849483117992436927692031086501148343065216012296796244072270430510489111501503050953410272748388052550121840238901134996331931852771686891225359085793754671337422104588906520656769747963918920664233252489055242664944926459403071086817930078702933984918828269350792872221880933433760886758781379267715570294178576916315784622151754873495535603342891726872298987069012809381778213148984733941618727273755030023543657865815479715387544311439040357060746838823193357252522359091526691876727762468596362278350602214757286133121907459598824460415557669396441162389335446655875251198665034321273464602744820229949639398691873079853824357484646835849576951830804812327706019841940532461977340630959299765289927064284504001814853405470386025877568007262802751555679679988050108744136140891857516717919346401175128696859794609398936373662475088163960148059021974793425759850891734956169832322567982678227555520642998181205505468493279912081182753258915378118599670781929236746815814107636629346811398785832642753092408211689238161620800126634732398009140932621938383521154858339807019540110036123600413548929691547893584632554874242987840677179913605885881725910102723500250038623765149208308607385551000788370559953680138661604594952663110304927132463726902801434792405184075232561181379917716279966690347074880052645096584789494760028003779831293129638534779685292336873812350171843582803180652816097346384695725407243545741985466966003026926403455505817554010343930913959458348600982973409529816980379254415970252107174071530314996746529363726058281814448400638364038997749828651417576257363221818824269699068316990038310852341523487865627487624328168592256763847562507027992973233107700040465220130257023234721774149216267514335531536714887097324297695875649938811633976265189429439809143484063763028244273893254103193917634193594979156865782106423847840343188102116731402640685144846705498087195656776396912724104433093519027399333471834323409044881980013756772670924076673113246753788763557319508936972553693018243208702170251271475478617985667008389940373006517258250066903923610683412499202596139326374831942531157989663759426602645261562159296187343562490113715634845359698419713311912077305844691925435613019462476688451870413348390221685540822152308546239166660774391002864335470356440422256678197879193275674486361111107535894625518972048869184008737902228264979280167263901901788894438051359836341165126709744122051150625357566214823974684958059509134845927266660065737761789419062794050961379602786894175823688536090855693688162509588491194455017582954657034019013744257356505177863688941497726705771693524405513687338074991713882857602587976757074149135567834953033298133023031169323335834434100310103220218280165572185354122378619722685811060632707040310641457571488682687317384729113949539525339725022229149466562935848839392469691387179569225549710969523425443164221226439259960390305205581394140409365709324864604429867884383811431004240202903247444934829020854213731767940958894189786538343385901947483346650041789339441648086101138442010822831099787655767511056096521157090301671285239140167148928837736756271776027395156781599630600458081172791477233147052590660698222081814082790061621751972919280334448320068996002560530877521641965265496886333189355169067208855940078645338452711691905459175641729351742247903975798936072384739645492969670405948388857783813418426312702706183407273487444588208057489231464644859763215743198579372997330825254974628478659813210330894171189668923351949528622739585008933329778060660777012368108830392501966841703486116893918026704308044815787915328721476728008162900744739224043469099027248791534261050033617209178165759956796052340049853048248824391917880081631737591143496335387841492444601888662062616839613161700359955036665025831077759117895115590323354751462472766170361183910689462097941891684964666221182613875557000578204575680352980009959968214721805437110990502541623718305789114380601018505187857711018719940802909910410345663184226131754806895561535571909340924521656331930157026456649975152723432588131442311919996080584144558428354418141336380606948513790071397384670753165092724598970530865754712049771472169578751620293808626767134080596566222629855667603478565730321656256618268481300523722625959024383293525693238284316848657529795898457877945020038737594834927527684446086093443830984934285901463341504531509439709995073030633928793506286657902690688832603513675903865696126355032573605018050707098558913521464401265292027276942763178793985349029594533724898656992026644598346017322299679680626895255880638207528868517888548745918619778116892674856634943266631147711853867598248090017793043385264596237044463360713298238670257087814828218856514453232013284043947057230306925846210221018782076852950975824001810144459552446416288842113885451508498706947887177466093621215015362621032619241352472986494495314309916092701411304823621425532318384873091149319654755067596274074823390553916514701636627517822746809680724427367772261303368751633823303039289801428193328883063946927559541995298384497136028560664595047887324895442116558279254685941700028103825961056964657130722885335954381144132559753511314791528492415764539220628661045368450848592180281157797680707417138234900075060919213215864457837745215985704572355684432576708623538766578253660495106620853987142202136925376131625235268949190728654560896870735448707503514052226992395283825925231089297179535097426599974229288009612652760518377146790226186774089307689166175368502994638842116257379686933016448207992040134713436198024445992949663153382042018621234721722043242637730398110922055107032504604658889722608976909325123838342068534114392160799022241227542179669712252704683858319683205280224565004887618638076872118627180764799812862846588593087893225148192919932602276421174457006607000940221681251194425604198438222426164238790561341498258094245185616560492364657239868815000473888497902166500878446260332939902820998237867188201696919842500187257082862920651630822366629668963621758728781798672532456434889900686327178405797078407685531471449702256387661624666976185035587630336227650251911871973525226800103597441907737179692553834167734560906803306186553453125604379727859743649480847146916995576063456934964863227073829334068385418499045003188213969679176199131577230481401580038128800534896250650815566189905673614454765662824305269304150859491328106336273678948150131463674714856806415739077435102721522882220119025047325069657619574270203679632752116232518903947033295401443542371481634014834986923920204654845337582528507017445488103862069092798947093943276153614161791952628296854753805722346432289416669069934481188500090078244676441009483685375393126274021755141024837021748877565404997162314168781448671636785177749759019059221687475278721342271412868406528988927717563601816351472331579369566185666099215431095584775559476688351355743429959995815277938289834764024046238697657376609125058022110205116122938293862137135032072051172158655030958838784372320012989544645175891550602901972167121957976291278030796436265428127424908809279694129182067588861882450345320116998044532482501993651971645765765580909360343880395031558108466614613996860745499353776057348397992307286267971234527601556600491672625875556766408904375442030753791954065502740440751175462369095694239930102365382799842544567847819852336697589610295583844403694328384957975995679316235658549047135261086237869041110297877790577468625165467405938813148843793771134281905526206915700673628445407310055799944445209045652520804206301660293925940593655867703643756960265111643311466878518559629213481765902635165525104732999326617018786201022191995336809353972992644982924180788444297300445412047182545290869200974845196364783105109948612141459069366859657630276199422503483383150813185049482030047462918622004378268616847087050194969684121906415528712577577589752504293487980520704346707555384683731243942490383166543312235105981281729256722225903551117616205261279351984536902372501504364997326113866636016778704428211635289926437955925786851835947521027996624747201421715562163686694184184754526773488316635729802648008782690696245321895217767795132723123850974743797576723971749952651117265089319777848456426068879140091370681513945111450710807998755916531189742080510532761778785333554406557800116125737614117963728615625320563882576331736561838021213217094191057242847006450743479048730088691040896034232187563571263103494617761276159264156432631818956988094968450010100125134765920426928025187546250872336262070609710987519813023149527729412870003507101467228894054975369682858470715021754106022751407554732034813107428501989539132799721273582922225209405994896490315179848799852139796179313729193475039993027815289443837031398206978105402621342146053924821988716143239723673368191070020386338350848967303806701240708977033904396857512071056881823548868798313694345177649966160817315906845354176086866538091060586669387695139106267400497574315259275848609112479422275968860618465768052257836768909867239154761627287618092726849444973321928252046692646198561763347386468502657304575462471506598404013093920346669289695277265666649048203516274969000802241947237994584906025202087446475609599912857592069679806770895518916842098043741446980181392198687389312302010490392390130817255414675100714613960832718708609083233945328405677044846068878460796748651749473090741764521729598851123638136158739671887573105870008233781856766703556027577335863443803662118726590381844995095388992376628300643872399740861080930353888537773817709580217342276317258290539246039803792288145236415526933392059529993238455003374727643353399417255973408652126667905696925612056409184562565698541885799615904727901543128132985880633436545679374810632387948576406119455338825408943832289449938589553402303755778570856675801367378941026889155632643118152784878997578915736401190714028158220916795552804442882867813873149809697270885694379982606004248315802832648447176286545920045354524493541792780544504415263895794269857144612948426471180550217992090532606644583084165911851903723043698646905722122045516606051325036947781049151966972582348207239780038670358515745474478553578891547582782106304513032212124919946664540859120389340316203564573325985261344611330874537412535092187472027153143125924080366533522046906409927088726235100450511392359591683147948023972929919211190272191783342683636260082917842897828429326033771239860262902697108549634857060553423570746966157377364037537741213355279147990011904082897630284691203739376312843552845345411369908355134048078495820504899833772867091729167722148976077909610458689920680732159106789280086569164010545000061285825337539800164562783955121989326634737161844881843238561205300473225752694225164843344893173883621792013917093133207520354529402376359334071365094468373519697779712270329537104410246558536173370637275207962505709756193234796603408821625423455504057095410167699928305865446171257777989035109490105285204821843518908488506506658382432130752991652411181139140692684071956508776558567718876547685264619629838098408795073562919693845348229727624121731027923467796788355057710984691823762474860015001361220068589392789268375932696295990293009240318621549282407679076942929707144692037082097140215122851243015973949088958695322726329986390214006687813899931730868484099096980587541367456871084156697721468147712507920953397042145549724756067496514788710143551694290837352078411135401979655780541980257070020695441964908821138992912487165139196770740153451863779403117231868597794614193224929538466627929163972468546486441126132282834830839535782361355269332196551910851830018908723402139928908034816813720427404524461151129852158231818324315044780654927861549370009454516391714675557963238873255346523617719947825707715620477314465332760246484845339872846802700858863799569281368859796047882623533218727405961066006012639910483777230725470571965153517277578882442629635757240317046790735388508496132130667741804593306050165558196837234637827458522115159720750032183697619552146494837050041316303921538688280373191136418520763592470489845944889703635225514292776533835580392458058917815312627647798645211392340267603384439206684526706809158969003344171788141299825354230502757119316899391668516831806566575017277810984704528028658890505347465233022655767884097705244933692699594824728346021890938838016544224995182864849356808615236563949449023768254084337927698243861198198795096088724083530219286907158659661746114522937474257418183645259321229769305332791532527988906257541360135959907425137360066572955838086180515221130287685399654732660674487121843036754309826928786615523326358101328029021612774604455603112318370643546655923144814265107059018902628677828751782416309076959160770827675190154696440601522852013466560733890924516316410505806798165202207746965246531153599599657284329968864063060482089100470153659164928104061981647809427440449741306172508997786051114925112058832463687937817950839681207779793081749599965302303607296001946081947840150802332638619385081171193156868172421297394458281288377129125026041709563350121907646461599794740767716294189777493267757415915619844567503065265553816017939702476223139805602042953001291588197010241861384533557980011186154487562417042810922149709982353966874056618775739798130744686426944270107496968531228866801824699397990871865925803985233233412472053101808890478756553584316474552692356087081764541225875567440823162349340294986826528316721825031190877118749381587843273208656880430244984733157715307161455623575774728630875208153314882340176075538434327281406970203601187362120911888721790279961649398358188839963487134552509618890180373132551961289469475534067852821073602789533403786916683370965693302265620905318702499665047507546768493222715448559098625753109629434961129995894741299989534212483005549473747642937203313760959894698837544964181601417136413976928050127431079597639801902831179686042868341545206865039305553511764640193266726785111700990726040282902053866700635389814726677293756061097679934149244828008588783215270328305107197336184264791671798812702643956900107742484891324143702678095179726094017123853606768301132936720690322390329397545674849250623818336535437855619790753090442456504690170933724570173280309584308199419155864795710328062174945581177484193679877134708359058053866481302140477734208692971580076503047148440084307899232976018419964078738053380902389309911069662863327539740458250773678374077879970741109839811734126569798549295970067020727246827007549871793763611705205608052945033669572538691517670831216737187697125539630423515101191996820696265529483371282461842645466410015259211370785712800528836387987587349690244597473048173152761987045979029308895028788410271022780225164764995082694126579406708802514031360293693495563366714965097774614923680622557737682134758398935714457644130327885515556070603562659105659560803735330856777907936825535093530393474685314786661498375301552578431072524380823401640279740064696810114595030504561470928107218375029146048160153516465210461445534172014845618351224922367200512311223377034552121531244680093234733810035444103613653744317262209848367600881402140434209218194859112544799368096150028152885306306208139843693580211198206010523086948483899134682582679017389578589132317587974617828427369353193758716488309304482882395156950807641919470170648577191974924069672352539627598491356278571110435429294210832794223518884596408124883454761164287360381247148586035318197212059148921505811335817064750502932180769824514747491583013671393797599518583996316767793423476977436689935946205716497230192486778992535233254055499429906809663976996055689212399976532828832167740881327914446045589143621759839386647354508491552617309198559776088545839262498014555282902244783032184494120778470980530741935173202095694534265705243135327978231793794452227954684623883872017310117869344448214658360734262492524022770137776083816272714904760487638097656601332984036677741438383494819591023920546396032245609724984277658710519928530961534377241800950959299513641187523798836542212058110460346794493017965905198079289969423449494648013990720031239357220089596571730585121531998598209092081446729155868556310356890450625664859906423435885421257138964903630734527528498298481807456232614331670572191773443840230816430830915549212641472594565009486137493996749827955327320339617332383784822007822489096528344340787695658547455334985674266086761930752177353804890125762245952658446915635883014946699921161689884655175915181771529835544448844095869307467996423814713106349346500319000005470434574298041056940018653237375859919963499387848272439171121211313217793605524459363736885610623677878634109172345200079515107523374800932358515434586309702339227732086776383625873343503731227396152845595962432701903184273979454430660077268609479339268300769797321148438041566021340808236005488447464675563958390270206863310234466062066608759524636542508563553250702705878695536221144193583414960195787058715819816912002762050231733982602134274317379490807211342905251451954240828166200693916130235595223838768616877149314937730816376936572264265573178582420193320182609748044546822327330670038106909406530982002925191811975457004867040836145828712658766058443326128625458118417355186059933775038572830997092398498296579021338840979399887227778987638162993877820024221324539940612528848004609138122594176380257124258492319683873832648050319341786324629527747463423892195948250083795199966035529866184303839038172217855309333110002573175370247016621677286390168635240655958488184869182425103578155099805925631228742862409372456037872964070433778687266423887634952086570595157430018843682932861184265991659243433632897696173899307928165496998453105751423812659002500968637904878762741571341371917881066412608747709666621638880764230483637492915754356064526301039248214275107415925307249712795836971261355156693333248682394956909122223378692928062405360192049184127316527494367941201400965226702890209619729955438106371276173509268579401381147815798664843351081856040844649047551799039167096497357102880898965873043991755867482254878814213495888407633315480469649141040969825571071887891145384356678280921505566300810947518833026506612259138369994907678879277580591510114049488967991354766555132184688421012187074967485479936322934437614132043253445356135488106056036978596130652585253248999515309774755610927017821637450722063189844170007519588097725874798391252554246954923032054478928657856912939827360234812910085394664924861079365479639513922767785637360344434625335846005255974672684650417878812774920795700178636868789748871796723614523216462154573398972205632715445561942262117693557039841617029055247125840566496083663903858807620750974547983752423879948155328650471626104959390014538075595083419630848227958344847660929551306537634614148967350253979368927785620950873735531313515319339888105307325393289582413087916618869908365035237285350920127019794681301371130524015524080931548748589711942213714627860148437672715244220575064000682401076054465807056183669725507701264663997447359665326976412684840533403286308985534253142827127524136462796238611219296947535942025317986448344525656371929380564668926051084262065589220877535951204564466373216350745689283404947055895395371248745843575826695970988174864787866010929403117233657079393701535445673896966771462762063197941188373225259702353312094667672951787401645790809730601387286729726788303935032729412932067678248845764066252674517285604356785034218969793770346900965570068379487444462642266536321406146971553214603210203535852366936305597853102595459266581753869448287639423311594075406185205230216540805958137057089796615875020611946175867125437342099946045974123279304810849969761874333491674439335515543301360511728003526065207482818968712861076881107139280057023457128921425613030513600865830999012405524760078472963371809498157783512989269318464406374134671680217306755771261523303702631136397188247450776696478927001085307422960383345649515405463787735751683040404511655355797982939326333859899862658669691067972136361642170415308714905652371356237075531346796125027886242515612681676635619855106942165098567229126946851884342333066678668562951664531038590961843345441400336786058293237294028353853685479335940152808249105325611669287413292781625104523872061173152222525516887123004097204762940697878686907709119075629930687457156896393763638783210822118990033733133311756014333576524637906295713887293769646388180852541614013252987829526436849740577988936603312328805736869859042130012220829838562923603970208176675531839827281544516680736712585073105108307104094715841345518241775468978188728101717505153350984272799358173199693279674260120035767294431646310252988904010890815213900309229876049407445707952975638738112665452286960601939160159893948820144116406489551802771554447104348996575217407064175742334234364369537745970375134193899754319368741365070204026360805505682279548971453241440394473416496675493184849828543379567924397147502045772879501082493820912530099490223324962012276983936094708513019387524237435242618538655641010886094249367651135793174650393359292698059122542179919740612162109597507453936732268181345039372497904248597445385409298984006957387825177101272077197246013708450037384725805283726903641751383007825518629152675455897136688821921668851725007611613474565313667104265821230557100884844664090791258645936339408805984919673330571535029820256838717732576597904544677319232629855403894357584408636230673056324810422172010596788135090319504775176478077742997904481829830657576723790996150336974768038072911923229766591934935415665928967897945124885941551768712822332635739915614833510578925183947592322808283849401657179467266524483345427848653266609819769326069478080989708830402531916858878183466202666612972531197058176580666200834752058918220772927487023399139798770616426723506957186520596794214394997531012781891964132154652092933578865199271146821336372686195966640050778309607596992235167787282596855591282114870938172226356021125871246564881465137971132225825484771197769889441156846430434604881411148120667302597832861292531400637004189733124629352514776681340334038366469509860805926777976823101711434792703092765874836697000684998832346756786121675982395741939400404685537822223170399846315131041921829963758057378495930357013816199596098319954758741369720124934070474876100297594264255939899152786814704839103355160286396116672165098049179907038690978196534328770036113617539579671771868616023281949724787774019061282287849133861112458355582555446912721819382052727845820600055629334028874056002686665873093745346941835462046986247830895905697511143459702955345036023230465759788573542744534381336201400595911949737528708234267989415120117788389894361810631373196694318085837806149225148293841253477427077284149737560755167292459743999396554063124726670038913449357790004428619184247390873099007644995496970180675937945256927581538256899641848518556695918100872337605434567949970646016374140054557269774061117903128097920361859373501166495207262298674493335443315435402309610572778136740870729624936536944321911538939130072781282948127828879541940651202749874040325472496657598209738146258411723232231965001603112599742606304307802038923185197050694669852836750634839478846752993165622096339067753935520697198769800119378964135050913203263941082179000444699982102978136039030863161679357198970527487166203730610738942790854615588469321855807995238178511521755671655762930457122259494726304180655045337258812924686208046979295862053470978638210528616180775939437509692353353443177993702708178715474912489536635973011230197035301305439090233584237856560344136783556985105472165738812319654624655501271187444811218031785145777919179669797270264436918855207388323024269541676268642995117687394189267053408803107610367774188065163831693966533956649429067199881310893709400079595977164767384550163051063810458137569551220596771387735656354969529829903596300810855909159332683518234301725456024996795785870349344582734240963628630314806605987234885710792664960233707915308541695402305534363961500715831417470517109087340952873573936891523613282575715067646995979685529757111823331136374184390086463200633618435554218874168409875719373870996881955241824309084689874935015169832392132727536066631248447875411505537668397271766912028524369624159333652178494009741111769927664096746721998707888235051313819355308318802862552613129345093761486947654129281437419012011751094531285420678333382042018530629839062415000012225939488700858285291874200054843780726563390481028872593158910761619561681888131983730078204466125516746976054304665726517870756835975550762155375272115343555723184732761300595666535302105416292356290988305642846026783368513088650612765059312030925944395924361215294260460243149108670152170867915208064446850627181956596756966151050947091125516178263555559097534369551353130109794951831258241940069908183919374772768189866961875912274602758265905598246617964086398652501287306442127991867780987389226975176036298846015377563198042805526925423015921834455660990801329834233274188139712955621200762516004438647112925348920370188130228107589862474920815687420927819057232159321978657618244784196356836427544239279080572288498540356286193929556370628145718118964565156811671661891561697310923905519470430989670265227607876777958479742266910216420960527975416929003319039156552550666543355983157583035778368516593698950661465080334411676694392772318605411393610379306586807664595568645459128670247840840715982147706788846390421963845444600774072214858567698728928470308305310618810329507612684150856727172462124183860250861931247923613352951455696433793029691415524262791694177477105909600694894288214792010906452671848567601095056841857896619098052328031052743704092692379315566343621572760890157847467156126462113846290650824394725785526291904889865114232477914808199939916924267482300591273746718144440069821347640984357265703152901665583279021151691975691555524349016372197676569297990934719771954736373273070990583105756318866165904578334912972938965835868319450497099743967114359094871888818175878654173619320569362098358577883111817686622982832130602402327790157362728465339514862721895130970828571647876696526126152329659969613151975304978925330148727769940651624765362802306068173125881008075581556737430521501080291873055811008814299680219375334063312403871691515607620699614903802612983611986858180341420180053527576578406891647721510376282473067955344835188030912225413919255702636671838637316260779210113867547183034837655025063990390797896335306387150586567001297930173254557341674000202521085646504380542623139011803267490761719061168792580513098601684097966307454649573832011850903509469176770494945546391569010276891455371306151139950701950693800333926086728867122055397860682981490230060638907216064274598349610715700748373292295598374201175859956584301284036326443691179144022311260401988094460018324137298689266372722764247559737576192276403698245229845330075971140390240407036058078249970259467829738801137897900048593957877129369626700432354260524789998791759236274080860082075895574521424711301555855065550407974080380466481685676340398896315590707790688813922016438794933755317677084657184980583540088356183212642752347457626847968869030864102491812850138099052727787774718086760238057717946205712270998274147826510255748253361628805151730557410505388047660308016712967654163866539227143324194974640085020182847836674339054501747249472014079664186371364179016995210042414083362444105811667928742207437004749963029012543380234637272643075830686860154259266786113180418742620892878328553238729318356528496199795352973563505529599537391133559123869284461454415491285451866650066584979048966973265592547598337160216626703980149139881184233957254475918306954563368838943031783633822053356906696723498401256044365716174493134108440374149251926555116368855390678090126504691254609448510606058017192489234423826666914270366708499805000066565343914259027587695819290162281310489612534894349765583755984305920432512727470488461691636125399512582963248939236165109814999529268663318686017881850189908720694445601391534369254772901376650508989942039493937020322433142268351652485952959794908798941298522605939150939887011453675631259241048577433960394103098524047228826670637671961112758981300062083854763192738839755927364741637613108678646242349303356159847171860844065138740131346770369973280216575719342953350555982743069921383149826497895878882240714644422908527217616295044605794526010689126095860987972754271777251921321421856600833700735156668523568891201654844053629628361321485356063099258083914871630577343965889661523078763289660321071848164097412480764015182399189912673620663640312881924909611223580909317365114044032176245857508201666974273334443956764374759285599764606471986274381165626372983768874983761354321131263101062189366350737361629777647346280579756471702778009570451046102888064680871188454954582900840578073886087599810184784528213715046042589081507154318679904266444915863353434540512543000741300958735239494770068340754213254312595021246133119435148589588885107791035155573332284922597543890678549138584647478103424187644898751606062891849771061588091058569474908612299619737412987124734478317214961884401631314835754865650437772867744399796777734984353247712455025739602749304848553884722691803916734474673709711742157131795104393840898947425624226027501305614290946309718496407734380623525188638811433253013355524374318069648411863028655770898146915387048389872678589786644030922623445560934004963147173060877276227240246973662683210621134318460523455823884715004437507280609978478247090342955801085447541497093150077478948607955505690711134832072794313640453002235880157256918055317457914464265023046587129762973633166567843351196590194860263708554898098163792133588087057169642465678581546562552068245789751637720050876317314831073850993733690627506448362624620510600305770856208112985257529077093248972681049064774596942083464980163470407388357042966169494258713880618418658021850744788089024634854278303777696995979500052327259750254530198080204685774321484701930095717784045729391338271846570367126661517742909745961509271723384819197900304322305420517925075232950403865057778919122560766779485516996754182137071090404285816344442632266979718037619670749471434276494108335519665408482213983162281301502254109181249884954800257224710761609312375417075882014306464074440831916862480188392978404854924600419756554333261460123114042831601888626130968607939040788696580778494729601469009574170373682790907568523648228877457987801164794851770684134751726369306647346782687693388220177049054635760469086465408761076884076753146017019309055646758701499878337681255956838854981422572830772018154167027015020531336176314964960815827362025105383351440006320533379851232417046626968051236346028070565831275960876262489905621608172268484406163748411739702599205196439046069835877225654312550359838566121941850977001987862865112386347573247337320691758826275484448567958909692729014408553261256353249512180521346277123137839567306403896307558389826868905061232309078285711715717673208582755383448406093168586726351015457600951767831317542727934208765612827284670750954298133073954690220356262363446258719093394265920027197335024698617265464395732774304238892830843629492547778956678619156144911162548608446148910135300855741827710616921005499221669298943939731490576712282760970055146596160336122357984318043195431006194312596342262224358776152583493010684952507452584333110786594514525670744850833808381647971776271699186081925842212919329888663717169710845926865399898248586227833270916431923592499274394211065883792899247214851504818805117139861705898004077048877809320293680828626757946814384385898808836001911651162698798067736728907729732344222922363842611514018278701435839796670358995739189778799862648781051716848388960085986814393538696089695193220049733293751494645648992938564611295765191914379488165763330521125939073913661229352760418367296913704237066340939348909124665919602575813394263417153993313379785699731726764779658852169867380416956370831675322229438336790976561716442017165133417697764758964106626840053938169597171272110520339233486044132285904705345074398834819146630080147614716791509545033031377502133468983403810247205315469822368262975498211423114565564770863481569611383715460126886180892624272052816869671168221148217578964577365284413405935543039706038682629932129629748064808304596465884894151924929696467384203810151587612228616412208575339814535378287576866239110097307523020285285982757092437478797518982543221272557720350787101510811245370937807952089729505739319353580343007429599041356614020377093842355220870176063500186250377768550458194533087323672246981644840445787511708409980072381020837840667855714323404175647866001379472260336016927411718101166740777915830376365262865712739702814364164086272072670704613612374801505335039814054999768518700005536668118861190577081983619597028353652318301122834902997558749326311629725408795536796279665408714620643252585870843632530840718198877402021050273350534302688825605555214239202748182948809650634194012740029587924026096206942095086866207126101686731031925158447335748270890900133913870800632941151433428269168271644059250570385417402070549781762924132221817956304417005744565645262495406466914680877067148083723792134201391244510938250869119561511637253677800232128783455064185539982617065457934533898900120281738313699720220218757395768846257498320731653296021737951627660729252031314026235363393296994795397122125246181221775114192657109308279721151668336556254541296781606331984737033597696002572427740259187790610150904286036125737218685601713658761300510612783048446699682631940871204706868437351534078947409768551823897658955880870504643280266703337470060650357025209395128481856733927437754820595773447550528548865561819506154374297621383450017367810209100876806059169583057269641296255240719058675076159015851005849909590263310276703120460309478826924195878856710767256786801637059122119928468057229318218274654562616992051464595864927424775731308737710129345342483681802414862580508226986789219065069342676053338624903195167555759371675515320418656824379465075550936407852981954268183417670824406696826631676174321863602100044270963190746862612490415637744570423597333790165740534448867731423380525287239871136244435201145389752557311494626302106009975489090831475025159798404564985022175475032456682354397840527356687763719055029391052300357581616025775412401837160316396919989384935605804452966762212300236484724471528695660577386568810713580044058521336260561710565836125674930088809021060966786986328748520690183236829392252608917879408481895758388678235930802017235262520567341352640368433770424391720809633146048689691595872562033880789660012050701601789389965698516198660287648331476900881859808015139452955950616861967699996697430753211631394013591880177658704681537481070324263816843313593671311524606476809891852630176599587547289825646358776660664379065491551301397108032345484600781460971369303820212267837435741009934283440204207440195521501522250867881535682135918416682483361396056323817369383851321018453167568268975895925547205711788884155722966047702189118613345993578491387111478879896933226105130478354230864042378749256171296506852871514550010210847301046568612373123877899095530881254976470356132890369770093562386141490583065016185152050029868511593607270618644854228671726692046749728917245262438134821170294942144839162440505237542292800880102592477208430574848275401544498652894393067032916886599609452339467401119437942777038057587464531491791711826284008113839004012401950956108943281122685871208775485507657288828453812074179940681764075262435022120491251935733959149188137580796482034398901467490625038295384986533482821378392645862332279243985571109344712330874121465952772482083914835247039283328725364404126736380811833969314940322066858438738634143560727680843509752594235962298889259097911825302186754375240189493074639409574230936671033924921032776475135098409958903839592056867544001548496370399533868601230349334158704209855170242248551223556484853697990226414927201792758617012060697810601691915895368920388897425383273340047861459208541699829806292016650491238988240831673131503770630539445043633685556342628705098553671618224564839093581144668075125550580809600055797011196662862683612885435819511044423562067319817262000161837133296504812729432737462510796060822284732763049239227639471300145500616930807408316766932472919101188972192317523788151889478759903728737755369612606931684462287189929514577037660530213932160909979496370434693429775527878881701685658752552497403812781219464190018286774985073331661222695799515870220005407013603865047053977031009881735407493909658862054535871273336416115813810540415340335211597750021396995980819705746705306452151260475946967678048011856666914565597467269948961000911252126679954060391585005062420061763675709960620133677789870364093976517336433542894103025321134231610405049259077574630486568810840305338181093889578603559710969458465185369276325970929576776478172652987910296898320477496027713995190507647231773495164768534987569135094250304505423537851869388370087931514079425488566943751893387706839803995026690861860682392902540391063205722817541267300429921010329013556160782635814088826645690986159632227944873689456151925369967177857993230460339081271612018890966829061173230287202228531196010851375648400324717132785538896727361581076262296526906222192028286925634842794792834073487724888487735842051711629408394694183227703601418222991781805907133813459761941261363094258972497933172450135132417235954478391890253355171752322846280100696262680862566502994225345175902494976792035281870413330289677261894379898706633857502120776180726721016534917973401539268331371172126004976818466703794490450790247790902929723490938934743678562049982920350825094271803464752055811459130855214263359049202353057768660728835234292219927188084350389308583859764612132207460994759558903799476919624331405808549937137523578356997168211591306389515825485084694115825501658640177763608214385644973714085461885973174597271694742156924935402095064298547316053777991563317879678949895601574489308625929864761439674069166357653165471899711614912590086546015739175298824451129450168438929171353987046278831297896047603251145696125796575656091658720908855730345098795590160062189127883084955466495253878559724207615670657508368585115731679004273986299689327359005953782833603977895583765603206467571980337553802924323500226170397525313164600698555972451865207945202631136683618781489774585968933142199758139094595901899081109132407596450222239123775496155151604468943534999159608486536674371585348376172205487359253330082889200481939453936103604081443424322863025926432458320091963396308472658010563475355929030190925814938092574122903400592157407901788193309616486539214962219109437751846469853679565646151970817001016494988453305538017117547125978764449625507541432980299865504375908494510612831580858959324754969089886299721440340995922234265950915432767768146660139484667955139593922214224539456984466523785120928016685574158152648409782948037763370229316039757239569382780080884837934464732451151562936566829794759283115598017695878636792864717012054841738051606693775947697003141331440314439252483528160293647650656101421614698994178468993713651877740560979735309781544513866294113315287687618867191191979094466904720176418227930115750201973293779773338116919056611742428228542307486806913464169520946994692050954090269029459256680470809405718632535597697093197583858622260872921147748878407461574617068124148892732852966102927553002207255050395875039395076285677506982830901398439271429835965515896987606329883955180258305847741092288086121675358683300873976000784317603336943031609525317100398600982841094503944751705034582819746283008753092116134088429422406316610644684966910219430897551083318960879322381290508904614298117023272184553430094469353335730988178301903596568570034325738228919108317103029160751629636039729149250298914715279179301170462822804017642092188195225866507944280004422602649023632721131785451932171344977566280215988032051960858489238293534956019587126632160295381942774397424440256282783314708158973627936824773662582355998545447749694025700736267334291353312726999357970471887417980678349738901751950904361376296982761512899974751921571441606093063989364558277079168049865474140462906033981016432791336939260780718180269413279002942113895515161537196339703126596472124041429459250945120359102480321501152448127489084029352540211945793489462564082675767093153492001522066621349762818208975526612519627830739346578559077076503503624969535183249291189810949959873096924050251389259814685668200883376114633752991847519929303785653625699025202197384476109925296374564868178178407617271085739580548837667246876002726716643623840535693514809672096855554987710047177764180084294163608592559730852007523960569498009396990689519454610045095290799470885346131847411651670787018866097995676112755392205645939125686314534111418810715609463197172498761953562406786261256365346679931285010415136342411395091167349334262241051828610957315332273756103169279512283014842960904968778793970163717619976833053852833016255247557319238643292918499266842168933778598405435737774970999633292895419366670886641657723504114402994230862600103917945526525801280046907503585162348036400527203710378869122410123342147906509035128338187598192173033197431832335851049215772707001959830896014478784639047864293179443853325686893455722698048671924992284737734999787255915558047707891437286021438558188079860393313931423349895426791395714990285458377394578594751979422815086108295179200204501477421721169851129680976972297397161331636298312205307983080458589456054424747947844065794495802866795372988410002091777552156394856700525827455628666553345102758557374686774906981412694603530875725797024960860386444953325080506619049528709509421190966249527445855638390345192066689149501182426231385084572171796172652956020057592002013907875224898621611003307375502337822412215562730309226731324195792845352398474124873801242919270324666837230159323257218698733758804321055090014496889571961427312203364776681942080171060048323351343654708538061147728969643187139287546876717741073490970398429267648045830458516162973074803996655037125281285558029476653010056487763216860548056423967823834721462276118606178341970579697266358041977287249023450021547225966053348698040204907765726745450051744502240335494866684453056895023671365978793513473068697714814528042198880258727307184395964822604495366533019251060488001060828311692458794220701126174377485235861429978882746882586563123669126769156778258083729185529886104776855996092259605244561586050678074982688356022393068167273086455945754991746574484058288563809605509322360751539627296444923235649620045410420118087344131132954351823141529709491928764775778599334321213714101237891233868261731313492663953113123246676335996080674090161002418623035797758150149979750770806813721947650897150997592846739024032304845936601480810842513408074956397101452190801395325220459820340724716624642747970780225833162507185551427684405386756747447296823743043980180122946281119081434447312658849525636552315531895347854629516240062428645382239914819204175424446332111350401149258801835552563610999194326354866343154766424380640168370054449609080593910018226144146636960403025180767825025520363502449148807201110009249869414669501834398840462958701321939096561900776706353099665943484793934693800822169312575975294328272648277994187596808685814122382555810128907978853189323492271731943534971895563980477280420406526087387746451643071773186221508054467735301420195756098481812857174822307239958127069902238091524819196075622576490952141869515721926920597021737075773655709278623195649751900759795140537669111700300471345805891296717202292077497346140513821777955112097213088148078554044034547516885404937677289649165027179783347162378276789323956625450316976880541933263584945910999795920985779599044018484827663552625592389010373896091830682543656214150905987805125295411075975205982913465871905987613229639936715084137087854522058917746309309673497991965665971864577837156268789294349719427062478327052910366255289109442535943968208678806837827899814783559169616136109452998626261786912065754777110932975008393656160649954448367401158463072123404330893105151945926943035509485661472479284342323739530066848404312539712114193607998196617246860551372494739609945389808954724546477187840174021466878672337028782278634261908622766022263482082703037545069639674262506841297995274455057662093242775707960061369988609525425722823846302210828596327474969368920049277556761029513720719755596262917858318712400334381976800817656358147927652344699187178346237422939396622775153882205899252676105601738725288914226246382597536253129521061194572901039893779767688672889174777960445175254624845273763111466950869507202778897785155193265875179479946266632769329831383880587786522102009651741483740644418720653496087932089799250223109060464264902604218473857142852251500377897092152239118025727002750757435730417400073788739153305779719112626241697690766772399008261977691830017210362045385202926011362752857893679805405378163908401912995899516383318038529744575632076523916009003939916646852619469516457030799256392252847895847848359172685905944061322659744668200231432367818138276042246220763599243687547162650713603288109002821636895359616628703307035498026610144547351900412465775370595617595997527782250368450064600996014956201252244713756101150106124545651359492805032298244352313540999604312256109717530557407191341857608997922420388923277514109128144630651645988352444784802037244394423070527825015328439023671058236169055697175263811965386793312094133446912626581671121367039930910080906061080014395133530296022222428930577369454684577702664607964085110098373904881758042863153710179020787539153753409426993255512207962896281008123023023284790423844469865921714583699850643829867077494911179598941627238824301727837198801101418569516968324840539738011109454000758468919287696710344438570151841364613812489797184217005847804022372896102277854872270589092283085140071384135220163962438480120906571902421236311662824354430606541543983836529669561421735541736486795282594751650767232373627142690185498723184605251497069269069483746609407082472150520963551034191564317184260197442465868170829712123229710434003800647124640525218147967862602983088293644427744006577974737117752324399987711715788419095695561456358023929206688764855885087768799715836693698442597175739473611416955789612723636024868434871450093688997360106486977559787275678580753237446090217953519801228150864050869686326568026935971709446578597832735835713708241465896597531000044837825895740270411632454652101518815518433209798153642178919080529365093014742064923507810065315725051811797626987444483762647162383117034849649751643338515771593243363008024818591222344563519666975250246411737634932724138979223477961399580824420029824583842015861656542658525624513317844797294002888112737699448953215128802210149085367740303053647138033884791245292023390338775350452825133376645326524381765510347954166544747207828236243627108885619568461930045796338910525571964505676680958231819802680899788888852955047451418594637008982484778484988934281560961424878383763452151932775877954158367582618675300286888059287886485051949408628766385364604066044618270999046672235488882360750888828002549762060269629139037917408899127030220383384410531573407000278058912284515792670199825728134588986307281482829061999781682168423130893001245153125277924974564197721767464028224908039267669685727458423774837029328135435075248788171041251115842582554689467094860886221985105441173100093457734994604578762621849726372205859706481987417346553146200805794670263533725654332292820979252752236828071547056140469823896981675216313849391734185369116294126122815928006048818158516943549738094709062012111606986098480155899974183749505361212516248675697403653684514014607749815966691902600167742804536047633234270021334525535883431231652119572668243496568957814162753288949814458387928481042855211567404129966501714545468990264074738382323227711524772179473288431133560589424973074231163923980964319815108943607926230728341019158703590723392355161227602381245541411538212120154469124716265285131445448839536686816749802567627977692867157315660249805326390310416813173747155614807496454102551797436252471726212167312397365162322044247493595724244930669045973220235364665147828387049714455539972659121051056904184592134210947880412953220348562949418794443903160747501081203891756531197083310342090806596363156451295369631106433105222687988310724596657460639056688290626707404102110247281474003990759597796220611581822208932642447601768007598399754793423545985040634855414450665436638221938527566437759105394271600238656032426138219543578547200304057317832213278020157705737326306636810631820571727504692012302317294008370526227538458577980414515673342817968427485174076517602232943789067087571166506261708958470217972740874743823326844605090282072345298691345937518561109966787918343491224086446293016832224304509885052536836427112712948548621691028315464768420048590744846643997767606086782228095415377418779048425899015032306345873969536674821036527457548432593019184395753811715901836793927808945798630881113044590317583598620268907114581696792436186393470511770343386533307367893416006836463574050005961120752838279674391245983950505851990888170390496488905762805367513449058218348112975023523978094227667867112676493671369953898703890143245898775334425235112152453146545096307429456587433464146740854502634075719402579678050318282616257081849019302866413697389918798847577851490190382536119957690886929439709068694032975511787436670138985438181145775993217869120166728628906504327626482529964439718937618489101649452103594975922056139804428137229185390922822404540206153026513237399551901801668115087674426999987936830935231043669484819430446362486089352472369951873227653624583320172691495278609040821147194977589185241285762555808029789960365817389551951354726240193614159070176041566153285197059075112219300712893292110938619206195650204185820143036370775589893131319431038330489859074476123420692337234611541242299462627855684911591966675371306639811452551530070141200268954259004509111488115344652518955342870002458801680691048555356079197139055987212769851900649472028011219662024784856530976756265981467448643383974069715114031785983252782393376939573941073454729205729651118807898970398597782690871598573856198146850115200924670617018017906877374236634355722974890113275769832067315269728834449472517864894962247316560184672564273408425214733226801447887885032302752985223848668193854100357994935002020247498248206519509354445996842821760073708595254470436998764069937035785208840711059627275089702917882187344843256328719214936478602306943706519176617444798263924896160545808300497002399703136989526514138723181575370458007504916051292606148851114227124467778926541708116325598228374806491220539685771528437855237793194865666767781240274569972998851235921381937587298242884254138277474765423851248327096710984826468113340800689562049916416759287220770305287935491194900079852561450260161358180008357295413317769444388660191780433146660469335932471946182007030316622785344521869468931603142481236055036867602088912404059648952439800743667950500270897434033444580186721869264514771860700542070634118798890233271605116850742424440697097724254009906631313791756103472274471128056303327871584236069525711431719322910436814384974160768689799824198835913086415311084970270120325642044498715569502933838395705212360175459053757150477265699160983864270846437574807941944001806948219380145678568012772709452151229852334297765056342225365976221436225265133015681270761874066799849067510535470165647152736394733473191269189277070783874728579197614040591211591791174812162145996412199038428731660160102567372110952455207890962034851264530317910454496755451515939108182977675531034405174821881861790517731696036169207065257114122757403301673343406388066690890265081593728193352861534090442505107365852330361004021204448657755736086747197673179436941732076460700850784194068391857537135699446199784062415465892653461064426588660465958149754722551008844510613008443563541861899313814302891675964129090625782016333682535065411350975395080981575512776772981315727015796033873565450076709725700588710672801253389114852868377094606439316526297748552585504689901850370991377078080963511255792451736716504897324031207182270734803484188860281287626586480981226246053290691689161538849850472603940062349838582344816364018724999274384985074201485479669134634484933929637430669369682043528137361309802118831079217238479162798087772803020960904248258673035600940737969083263696337377021520381984790588622435577024038446646152323756568552469070747724727573150234480025366783909467544594369623640867518757629779718439532915797678195339660584228423090266745658235461583193703690825692031342997030595160955825504030282925802112252925147405483883986173544568453456443356798450059755614212058373684845330535353866661304655507578789765730843343549485944489695669882314703162804747284941022747680859631993639586835726827278007319098022018954312326319035481791313819468541974203807375545393564214449807438928830821907215156507282081852678480619052835649634601315292851783845796832542405910204713266792938923947442384900533731013474097481085557919820056010822318173565973418529174861727757284594151777603666725611524319598406856868092501936271572492386987982305498245325259992284002916967406049612441573228269410407420280875824973837168439796930730105104150059477520348551204599970917275933581383963220805101244015208629818007722983122497853540461994703513504831798104626792057741015289250578332652296014759817319148128912190837113833266279258833843179545478626592195953433208371733519614849675112041611938157126467837130762550472083803601452305112598269667064240954161274883410641315224662804487960910213572459583621965631639951619819112131006529693922030531555562645930746725999500071391606690725835656927300881111169642176485643941644098527913697278414186483190894457577546519433298077856758932382930459823519693594398568846890703851943968036144160136106073873907807824485776530678744596295823721121489544780362987726401656307060338467014334297177840922755615171328807117575751300129550377935333000615772278875290897309942783729467766374538815120117792069071940283946240724622610701443783742652748865413765773935477614361026050961321072371130692885703230409651018219865421991574905878054695625168922157497778120938961246948771432414213133430607172072740653727110104529989483241991132541859519921149837649020055631349185544343664886392020199798717225237595278878084489410923205650009932847379666696740805350393911491829485263109793696558299148247988181170550100435712430917041914338164535480723058566640828647116412284534743651361246685454508462644659351355484450369214587072253609713647854754067373318750719608690107461011115759807564307110809987173219182932225801616962347642364152163217077227426143365830153515330685840471107613723786513763125722590972803557154845660147104641803092013186156447358098562227157025960929633324059140267377668824293495238056359934905966791192156009080171423788052415785982474453004666592869392929735726506252579501032782744559489716960484017487043798388108372550633328957465197446813123052550915285586950006348549720571620462623546088786103345206831228353661940132947985816370860846970587554875968083311819934170917557823642889165768047168295577424240067011205739102890211240354594488935052452092799048102061215052156240875944054882979861232026712439546901931602072603471672231327373825003991270274736624135370866114377009755249986015684071378824274668518205451907705318358404959395765263958276469563259978815281900943415515020704504540042346628945541159607477372144159214847188121450387160524360904680742570623602094087940607334770794343194284617176914892582927870276785266190485778170233862580775908341834383806938053053233348842642921520990338790660923092958503325962084153260506933520627832432458329440035831255293915438456416655590687083885093859620522824135123920906222033340453955610572183118141613789167128744886846853252875432596280561317738770883430514413108986034657155801877049212367690793368960698560114811471969722357789798372661933969996373625047037870922054144218738685410844090855385285756254340344358217220744173471914648383254227480115564712015431032327019820738187029077867243806323250608323512724877972682219371302963364796280667391014837717351076441863512124122588383805821065235965027927419877554104886466043368800217719444399704813784051612771863140567536405115087635871538223099707839945076893604719522362689080495816901033208324743528420865812975736859552758543409510243139142416999518215564597795016929163873194417178997966782367076778400925647345413450900030041165776352119377800799632951668620949084008047908107180466576304632648342244163116527915242097752687461229776218604033529440605801024779986238570547899288658390090821885505372499912177816768454674877844580552211256783910922805401645656071894042596779798987752000725578348839883676175114898148261905157231384500153285211109018435263702966890126729578894841353234776386072315628231077348281517780809862393532286125594680625074533968213026369462840597016947877502263730482526733733102571516991270129966889078419838990382210025348936995632637702006122754600394324836044538732304136624502874546850389982058724606861611070346425829015005159919363043771262513603054989573177028064902047302590970133943907772481507669316501762881746205937895171784058756963578732023263844316160263219539563792351267445470200818130882104648373451943287423422037735332947319840732204555205468565087062062964995662559054235427607543832941111532670215298449771477840105872101002694482751906910632606187160531564460858995874940820773421865506450671168697953816388286434147837052321148115733237246026313025310647586279161414923836709648588702248156856100752682206649249522824624132538824035925928986726659680039207927704031075450311425907694891862829869466058610656429195594469380276141500132502069685965781472261603301372831699158776285975511945024067180290624122517150409708112943283338075940920833935623830863821991335072235784568100177315290902225421706904205803846515605919311753691840664180603500868540213362498441415133406699842983976236331407724841751617575130237571596365433995187203704285923316822898629842750784680624145402104138055861045488335671952866325929967570017279022012415103530233513708403908059120206428354398375752891596169250933114124000118795051190552341720675185881975520289386274578885382788462370495223934536160916687632906310269270145345424548545536745719465782362623586236798132922455329026389190905144783180231434967940709599341990902572230049496248565264838485148243809548981928857051534275750458002907597823856024901707994721694552716293846849990262946514592841041125529406861445469867840868544572709897527599006484292677845345263307620479051147689152507278002305513489835542819261675029048272541055631643996223486218640102430804076681627214375337523914506244102077375353674139730841594261896028855687112850824007803146034517528585561889596862669635443289932664016690207402803427130821474418104613520906072482362490043619144947585551820854118379843152407912860601008908523317046818034467744662772712207770408678372903190419579212815034566431351843496648372828912892929474086908818224872802360320663739805567034222961585891554889951748552546371180684558299515581109952036164048365349354386793705877585812634535713940450102740999141879928518990059028757882303620262788537057049100693642012942970160475594095264038182616113766423110210393376478078758148823335141292964932515672030257722255088261632599832951548335573128525094676033543636557606022735754636440413811029706484961291697424838053723556665930769542667712048899303967986309068183041599857202989311991133493480143502619865935650258737625967104005443665882553109397615400604876273207079497281004712464024536663147579199192660949601234353833267741668312842099084720115087779019676761800530818759966278484515778696608594523510374395566051468512531623433466273895606851850191465479308187298500742881083331769423178748290950541404685343830960695644038578421229762242360323348818319878344107592139847716338110860399076915448537293811015154008428768450721989924642198237940995964333809896845712097332717000018930493010896464435819160237819439129414010461384735449471231968037126322309623084374016307335410841403051444528706240442222311232059893103943480373079204424328721700431228382575814708552706902818810726954143021881129635971247353575599183636474437396925683162862731801025875871916087481633260019912923457346176932347080550901344514296952324714459137382976405452565546816571751868071706613776744247121018832555236889131582435056077702532782159167720922957605747947908695077306032782538894491427522949988955800423732913137561907680472798459251138353268190889027247385576183988514439663269705808118514311909696611795138582035344589339586583860956019786058518371475335986190790256997264922392719633974858296710880112884559195237176503489511420941159376586953853249838405887578946287051117632059473168639386477018127973101400484468483934886252017704044892546093416407074516553879382143197517087911347811111544744555824831466645903909276992055317244786397957451213811656734935460673535526876089138896200177247447309435521054739377250128853045401561703135592819818687558058803248544959700293054762754750620881963736351442828374517012376305449248273106489832818980291860784213193635024474886731571883729289030428455958713544724762850313407665330798328881523620741115917553548068378525135866168220355120728966508457951517717961159401386619712959138033519766166144001492489620824791105879502264415531360864305087356823116920518082452254081029780650357655138745356845537398641711604301664196016795139916187027454479283180011558750417190033924142935846421981423934375744278941118693817330743196487857935636859475446330670191655088784775990114917076186726463436462905829443996086541018035156993269537296861954066534402181649805186063685700425762681021411681694543265884201498536768305432940334272341645793191908896566267941205424586259813073776156477519108944017000861796124239658935773948485151311961516481255275584283744449152953874796840419229078302100316032621822058398827514728339600215973894379897073153825201799207495084098257180102991300331941387583173060974253213998477677402578734273885772066788678680571525018943670486215638678362511099384436181861210883990810407099617581587607789457690759260235967121701465249757974473310375559977229603950623209000551585035096580594956981022464546028523842077517252040797403744171691491587063537461291924996627080219768765171568090399195142717955369731465409108288211025922344284322835753049155468500609998325514622559447898585655497887959901447275928581413816013580218772536703045235154081111523949538376077554352183051094227533423642352073635116463861661152450768590027829111206562707173160925693688748152752042264844491808108421170571392039124305912957310396446335972971551275406788461054900912678307264471296593574617509118447100302923844737663789817070858264042643607070506531107425180051993615143564132827617730219085698743103326790335243981179005102618411802313749243183683263503104525114800529375104428420113756277658464391426778511875015880398981692030469606371185998440533825181497848518471996934311042635132991649932066978684819448031217284676205258704753277917062206879618712527452417942305399799781204413737491508059900977727081983415224045172285964073629078903832309945260424880975084173490465584617562638731212420477363778715820157274202576856291604385314806274265301529684867021068753244245746876612896389919615064876812980652593001425535480011013421225329235694934263191262409705348855258908646627656359471405567478924409652872686463311222816343313264859276514801489411507457003689825686320165006786161080411402893270359901554461520409504104624423847287389430035704861234059589488343677857309470553430790836636119042187117555201197032962955273591943648736742931752982337716091802477937771524423453691692867116421229976611887751310967530468197609290504708348166215126715649161800252316182832309749755011369673731489588219053895111671565471375963032365358060618947841356155295166096576368442660449472036494498883436945052462815298054143386039358873720180298296875459152457007425164983960864990109281640982406632286553101532030595090488135078448225376644897702573956293963606553433988658570208724362484959578417280411020936063982027790144621337818826327785164071365075622304265088435437023931976125440847770987250533089998175187111386751139325345177236515415123999311935150707840194776088079218346537315577833303008085366394398301597580223785969225311189826989220866129373939282913584939505287239626409999361043111707868925013668511083584087124791943024336398154866311380129723982397414801460700383516169790310340313629626784175473851234108060990319755368652721370014121125409395167543806590896359816163658134818023603616009678641929502715366991541963237981156697043724064735920348516120131110726362563751053158466731289843488772152565129280634890663046478547990380188311039610696172677399793329966435549639415361804469167839448526729036923043064860194117852725471287297788593350438248362704370609169712568756114415759670559438240885938579367559826322364649659232985413693243024996222857271204726023232742800720634514401044356983811646145592739317683995248254624735141365390948233905408248999098673520807422097583369775199690702300627816930417350515575097057602600762802180735123027979656608873127809396098419586168927310821347536518220032797781352281465413638844919612855297662818352830893233819275922679554112943867632279368921573089065545180663889631599584339606061025924316518178499868004915398095931444838396843109983859796919246374083975991509521389596625634785975394444967183420927815413938209170406798107088846908065789875748611688744059424351125502377276769253731862865854536838720411540836059046925520214533443795453643484781262668479089310867569566158313750281685495728832721967855936679774254404676327315167140288001477639389912579877191692115453378235443318890800384243996535631012269111215245777167420360212735061342849918611001592677774398362658796585328751758994127635683133396048310714408066425778917109261388231196463703382095241647960543088703632294770674530104668479827723743305617850306701679335940983756047022192345834580497874311104378210905382650914613744305860998892371437756913070516285403895896449621680268901966130955232591933512683003473404193724925831523651010552975129636447810649640307817105421852258821302106312917365396274388200315704522909496855526004502263369439663134523504987719181165484432093526688007812667393601464585118684880528404001469628030635044149755035036958545059140169395381330801257852527275925212055029658506228022549156423369649668696341743146260127351279319186727250213427078258737069636517794821249886155064727510926337067393217047707610304154404253254490387134359437478995939925942384221611396053632246708371363209793036623853028829101776598870888803472369893888133918616836093880634330078190202287877913167127048377228668701032328392439995324410502777651205549410590303030781385442141855640070838740503338758041688975623497697673950232990746109307414012337242252025700639108343637973780690970950526529962926196005427599112967563748716589964358286300493581823904680729919077727407992780308464436325605952183946700329240683205648816504743703029548604385784235189313892567184819343307961406908671934305012913280121649225616258505006228179433435909244570924034247487472197749494509841860167614415517834201558084967814621398150637040374368827115210707735757093310664690475397762482283056931456400714737636560203822285892630979197257733796888758090833898478000010799930170106857550323517194847217815631369179233902384780025661381071324928719782365451562857020019833138190159580509678872039636537038761517600662845097643652768275495170713495256929156675130890677906117664476913699115164227352154867285959108258906449124052032827375589058862747292600788484702553578809436966593463536110160285277680295100036079386317080841990517427383182180824435149778207853526251222056524659689750963707280615560492781464055196800686366169376447561991043166987343660450702250090060390063869752117563015999410174198108092993623363084465644619089163132509625870104349781779900343356891099966064516382534198933952282343403261350493446524238558947694567842881734223735045006284983323624091173195332659054572298491863361224671132767272040151154534749854321047209070123917741638240332369799710565069049703046052190813732458107678970913128793348081898702223773682297801160272609599933882265737836800827378014743201955699536159480950420023316868020992852522104964554396269002375559717281521409507298676734296468201128554573022527174655815823392926799861679300040692879906990378557296892197311826313242827481752515167362598576453997100770388769731046370523037551302110711828489596328880115248871500659748272810722865520799404580055448833800926046403452335273285623572782139049047970579847602961606935869109745714857754767709106910702997692753647348846603993982471250868372366270568454437137851898555214933676595633933368267284684213912865776344286963450510191164008669182933792561053456915158886901774665667174267151718712189145092119688103042479862917071898685186603993533646395780125819525079265819046580569468524911174344502879702618547561065413802606857686044091795017770313488047246753845162778753203430644299031335535417773461665911528038150603806041618025637101412378432145354066532116593797603904953741266278842321583742496403207882185072564023202694283304706535572571466073834673267238680872802916921644987211000830366843026515179643530292914331893479783742501589952779554373603142967909437506330138097205729180602534819679392464818568714963172835996186031453746690073086536894807380597767599989246700668451399961083801142367461154597226825333581573311431665625342949829936201439056298939541381558312126107151936722583628147063221997500380352152467874203478826493243790516380112948606736168178190582463733294803034746596878804355183721153225189105423095832475434578706939111509380887846963640039455315643493107012222341511036122662193443095752589071730328673568786443908987301986459348108718519444988648755288430583717734745644736910728302408477363798488016551103896677273940576392508791109057073771208114946268425672447164689598957816262467742406980846842755555704636355264515397771340284054250195418310256017754810916360282533105721277863956602774245625165190770125958088485567465460605724956318947493748130784037563069438883914769449480549110877807982105617639159759114527433371665049420857089660785468180536417866548811522042399039594709584937340783004982136057970260744958913354248414216593294684684350586878012105153082743284877037378045278793483240470981232593073692394790389883327271604120160685052561821669907758943305038333908904340519848475769619878990204013254576466958923518631588283015749771297506754337838112416247491539796704847336722906835844307741906157614464886433048939056681517017084289080588983650662787052130219258042137110175421041811076353309622856629880708898519452349212069364415082644276122904812216961869593850596231450527219002596458697438894463339816777971534094149638089852574715821775925994349245130391231397345098281038923235634528393281023832034245149140156160286763882724522056120816241683606135358447753615079076731166285668304349272375414569292852273821592679867426663148548051355843841283530903125586258807385974364120372609328113293606937562477590368229792362632728023759376752050190492793421353943359772606684508516093904824922490149733512250140253108992632194215897139430624965990029477868597439401750346779262997635644357844324911059781010188599342215358703332242690079292804611937601415082542150678108694065281153738669333030523184231167307178921291003906671524507542317370652154413071423121855999219236344568546900360750949518231876058830422149722234841704972915055802838393318110429202658631099663090367949000401774198224185086543337573953734678443319636926986644383754687251473979867468993658312411071568569017748599278907912686747391718769625820771619631592268285374679224706043849407618648337950661638897087136887939185873007700507585469523338219767102058699247128137757439938535748241903330300185244301453535521329347457991100979909494145356655790137242185098121023785430170321962284939790836216616940740461705952467112017656617350183520012251139512356899389355130649880023434706317477480501589603420608330441669351642754866236936967375684758903103659747182235734389092618945990630234257087452904124388442650293118193929800713914770426974822367613986705327295608864769497985690348666732556115572892070798598227329465678866704424909054650254293741983064999474235691728912057944247750767975560151446501477949148054444597228554781531028095607645629274607456243846128855354638530664374165534242245739323391770785418773067965312369477267621702072241422943230738783798191881245446332207036524837981344231538098587807703660056127018112268578324251702951989537830386519526252173027766331516029985677255930331892799659039966430484449420534742759384201198101962493368086730351578232713449327033068779282711076930399335683757376566060875526605676838401332088777244179417709269271351915378374822094062103967363355968077602169832302667769907154781473393252651478882809840370816853774662023631375733894185814865087494457362816073928326638782498171766001358647408479837704166394666936734706785636460568961421922579389565780642421616064891731509077561534718041702445942882050988341584291809890654038240768637994319004005602134123825937545697014435670826304857236637854119690507532957934981935247872662379193598436818035037184979658158391480300401761247807929465861660223962398481397468173185127712460874284136786771502168949877314339655103202335596891000987208107017314483064040027066580497923159358718054870990921121647120760006741877582860952591675444490339506896350392396999995952141925603634892971375369729114464429144489878865717934037325341703600507942862035625441586251259524599222286288271891156876976588266345106550018930057094939110652985878603556331704643496305442612325543288873818201349447151179969661183186782683320321927640811459321970589540397231241757709563171167214310915762632207750337632196802462472743234598570033200513771629552265130179314685141506823124941182431368949321955713180202892981634877688020219441119680318965631789141380729575507698970558619661069800360265923256020930809822399392940277444688190549511940912030124319366947368559640741004092306339298527796252180927500864308297128421002128276064539753108595377517380898886989715947941858081465513465244319987933774823170131225163646851464657093670637403543368173405651095779316520342125726851762583155549129895012288002341717257307889594119429568095946919711129129390129385799832242266982719499773751016717702966964634587004932902465923492933497165174423930593395994284058963645004975103642748371764956669651742216343283700737714311953852580873113285182772272839577301737119723709668379036330674600242795308797427182428145755335512096536587310690811372226588969030693296634754817739860569178063711101789957040545877541689689963462567001716490915087664881945801543596298801742253879611087013510279949840859984913404529311793465735924717250179086324060313475877995013555495967169549110423107228921857073588914122608334851666584914453041726393774503593265606661560402490658873697006834758930831881601512208979632527048062428742937698932114643274241355994706884108975583521246211012830093542731099236371566397481166752341662568812519930768576060123531083312019972051724842644878474491983062523624834155059607525258735413436094422106366292967177075269121507343307573592977702684194233810889573431641481787175758358100394299361360360623647874820390241385172765264612715798277879710669110692105635784909155663359417487728705579073203282491120318229134463905220621624117728936295743057492875624781996621730213992915634012943180990593975244058487922323070853655161239180801598262975020598900229259585640141306618999489521654932280319756714506531609499669845037097662235013121459185650608877862890922145599349805874637906767329552020732730889755268732730478040834454878545337110723596703770680370187657546646907205564611438237213081675153065002800018098821741069853891447353122550325030214059646660744987992214518566227075373077340753852537953830120800398651231015471408535596669101908606474109811371703645288401879191745319080318977637854558651097170776331476241625918360338912669108439810976521126753438138895033364191025358780880268703621013570558350715821919353548042575777216493542297985641114040889073478358227654497256365835885671216072616610368580237066023740778464190451873429402122505938377540903295953207072262416069368810823998263489063808656019687462193527254483183471329739785109737099564644492252665199788946550738639638551667703070724685812752014270935957438754626698681065916798839589458084078885550989413962883709627756689398369625076817902740602608069906185094328695880900462941574327559776515139455826548625779818318606512404096525582085412850555898637788755716923082203171481486478214380409712332900660884103914137118210304008384913625176344491717814095198795170614181881342209086253606531465988410350810364492942498318727656792856138132480484308386320646580529096705361889173019320696497247201026303533684992688295953053068745531223229000803136486879155838495574317143598774795328554494634863167468006053033903594891140040535942223404716489813694575215846426980592788365011833443027075794163759791696434370877836429734729586125431795853865050362324588528605087418290527159738914498578225060241378400969022930740089204691423894418867805715101941751285347473818037432777222968713726957577271569875321091555445711915518857721093276204702851986408194770730689877666078072244760544247349862249854180245995144662483465403916572890579088208594410276897650957750302067520556044566134751625876391024183637444786390576821752321241050842256214603391982710515912850725273771002317797600215393137610105574466571860075834158422259090074023786935610523183697405241076875872448502420581140848453453098854414947639067000942599535616364615249792941124785498802746625863040742412229119562892054597462659355238860770957131852147314576736213539406008084948887530952788725755376873386439399896634512563760823748675377634961235661716551427401788755143540962006347743635789824080237270302138965625587403124677489782207818466104954555355491704548147368145534045944869346330841220556663559200535750703608109317456945528845808903047679365706425237506296331963193160008294415349715331275621804808163680774225297213804520796534593713418366673423290035363733305708715053622841953828065482925592910174993543327098000396398774867718607046554523929270923006187853731571068410552620439144625588224702472298935312033425562068068262002802334058540927982095391940690487700169737942400148915262542718391221097097441234769589243949916865129303595386933689105450776394137176633586124316743695864703763294860241991755467720646158027520021685501553913634592365001607262680119469997095035048522956792735204411619452105013783947831180802980081904774571125531510983146151310412735967399048018843600378594011709125274984770590431872603991262066031003112338362845204530004290502591386872455782903023061537482757688094415073571764341792391286693399054520931369314489582047657033114283888129942116037698043106174513772409409813812316408175391505072870123792220886280823296548719298934898684223152552565319123289188000250077652741051108010400492252058736593928904441840660023212434617595884041631706815267444331142333162693338654740196704302368997469727184355565004066337921493281089053574328176921484305393844553637503485439050574602598038835560234932299106362602933678619520638171053968038209475558765093447387788646070335686141553253125328585968356492308713871451119040454251810633505736148134433683036014118593522871815232922286216203456372773826694328977422740126530939381792653673807655962638978399330915343265332756013523022871621261127235922691807257051563043791684346808466886645026231096254437779811502603234049520811763337086260460139700064188359064272164438296966040350761266441806240914054028970199551805250944749743244280083279095693113787337647581433756161061797065417525129782570236047490214471703531121727650122689746126990355839725275496616329228470749453623630785486407976533140947953313662808395473083450337584492170157172121570748988415652540224774823176301944994474247171396489796057853317757760800910944189184152879206963590871684124789639473496313382028643822721454160492567932054114149191018856659224702671387354501139425744323346751672258615837472279492411732175928725208871222638764500916875189329494355254399918731419073132403692561581937261320033235858454532295231853678131386154393014128761609296501731892361646838770925572786500464433931083628826302583995638624337795309391919319739038820658366910228195954580394254210253788818037570284151269037347257323113630224507244190650401700924977152338970840820764757931321900151021662445378391482182187867753040088844260690987781284097252819569622867119437697891658768341748760087553699171054199896217948883325008287747754061339939280395363491072194807988233851045985717230302534972301663246781307991465323947260864856428702331345524712357836923532124365109552460996237975400806521994635237008299868680608459015517467437093680338775816314459088394517508985828935002155884001851115180761989904526759247390190186543109569885890190035702287460984804521513803802800870688715860735408052404377542078586852459134649163896865122055601799223004224244536915411371727884439640594748303528929214973766233826682665428254138248675967944152915566535005231997908854309203655608953026270207306636927868205970791071957648146023161035377504156581291631266243191768806242168572144895943101273955917449042165895872796575769232047136371625649161223050794279147977711800273928831392455908448272525838326085758431777391437255145320186765008799315734911918543514481735784472924100714769577868691750232464912305627086352642309653711446505764485228768505943056053156084396735479560782769473828212688129465096900668336401123676443080987877308594450859190381628868137827743403196891212840623279092331443026159326537626573223322763696682727549649976382871007671517683740807252168683384014195662067829355434880566172514522111306640769664485674599765089174287791733378231620477103427736809985451965496636724089160484121057583274769410614923741583918033242928491940615101063155276397269229457433930399022977595931762730021929425003317274297187413228691497726674653003418521133104587168785817731353388952878850766757507758442401842396334288146410920910696108060414842103027662799649446609265377908458504895503096129929007224951093828298036180145408079500676381855181468539592950660298032324453850714394263220033165921877293398168021959066897778784611370713246426374506437701919002581314489813276456207210085433106949465348631818261417065141966139835702491633224030719514753687812556366550839758279049531003393419334544202743077992487607572750255192977192783720428547262510494348149910419821473582926322462211218529520015575547669663639551711866252657994151144615896884699399619186398603619584344712392139938509680614519017642898054001767229274952765535965936956729882169558179965258783238699969325468600613396479698110889686358279057604873577045035683832126965865008829930715430975793256767919350974354878603138633436157882183436627878715377596473560353821614204331267501978992102714320767730805736319414927876705943006825667764855466212505498690802915736231197256506290298510229227955011207354687199618792562674752454069444335323901057028654433982558105114719458912095971121470679622746062236032490810569330460180029569949808404388200879708071529603493650143560653184480406372616930836645249288738545185158354960634956677372599563925703917339335822098518551238202023840931477974728628730713133031962028513871688206282773261210690529866920233251233627768214640156942200232909217809589824770769120141313937654594660867184760290196985224094503220144454494097941683288788779376047919372817070370244409766414906442257922147063166289930928098059564308824857744290741688153814522199541713762598685867578153679533305473748921061771630583031408641764759171476586799672125698971354119008373032240983361020483227116645139924295172685534256920248480087202277702128604552363607679116921175998323068425030534608632777469431477143169013444374717764145753330988622098610876934168978282525782656755905506515330962532263014834621254154465435113838457181575243761805678766309558250216656469374100229121872561149870547848865968607582133624910311673846113849387699116468269557291061933832205131401442368263281234934785709155915519364142747412413585108719371746422494576580648753437149042618057600422948723381426891524272522519777604932187017284457732581183474669214011601270363027720142675722156973955709292211776839709671777549286715766938740709952755398543128608339997415396064249591610074238305386289183734477891804876045317681806613578114443186423705279749592787016576421373892471595463643470796563239061860307412363438002391590738640358781082313764724099419699951599830889670961407141454146633387893854549535229728251496104196765615689547440521003585077078794385776386190474712233921302992843236249922507296896159430132164565743820798904670706273589421429278846102974607240757973084507870254691177538177930800613843737023732936438820341132937886656924511401117516038484455293071233646254251132935415077220782201610852845383771073762977198785089950346273421845669540519331869727193438259220733366993805058549416227184486169296106585375405965554917129686485341003356001175502123320659864171212052570610673136611886033445769440921193867511875522160867886086224988725683288054743278717540163903290084769133930932688233278726929232003775533619496785589612929065751032336100203601585398828836889939225952403014630626807170121496538826698322182613057834217448230712955938006037531100875331950779307534773383531937336244853885340574517492251984095720988235387280580531279504109928533888996308731096536445940491952311089158134936335301228708787265768074542478341911149916147526813908894804144152975530740892233367843632435297664053451566038312314831488948703239840395267405839195713397052974717184853938181939286739601823981561533328127076781399148324494694488099442892652201011760238205866991208787385322577297713633147417466765728288500333550167561601267611773111311433302393773319277234093842509322939543874526702910867788938575184878622238800348255990772565520270598376983106875417504051574150165304462473344793266865551245227277248494371486019182845323094267724009061807951418003365655663012878809092266885004942879898505602722791838031264020271999406376225302697832068722702951650475348532160726321299988186743289131122197766808709031947811122853082666220901738602876501327557284664829400863299228814019622089654685458476850618219006870375659364001425378483489657346998439020870380703287706799313178157931047630371253054825908987695939019220516784952692692347918939700078943437925219989546880034182789793120146470529817822714501385962789624772164948245685978486588513219395687194852593246974386025118094421307208315231835036061120068746651403838676745701143058032877707783770200085729894222618701533343282214325393556348480959848272602421877662115535381915141756548811930187275958121222017385857388186460348438045882573753378638054112686913445150959772169414428657577552288115444340392325781959987101711969398040090989640068114578195165328113631364716313283978749639741126019806397312700858461834633036340851932442406162386944993873834386947949492972065481204559595571533828792983201939785095119791804372460033602270703915149874412241359468016797227324600714227101507299361360549000073099524579302961694353730502880435335449823311402342101516144867033012750041746793269045737469259210509445576709062476156096434738284527495845482881387417686582023272433957356209581390498286517647237646826686741649185680290264939504861058196868554203041637389321616572398376504117967034305324483205093454431816678079490988219186409729437959799241265072923329032925346342897349569720325226774181868745888924655006739472314632530179726594822655629320934521160946803099251599895186353241901050149543583779198938391709256727248942484299898175907412593258088840965155057799614059836276896977600395018785980199453058083897969727377140481302470943446323171976795933895644748626638715952093836208875896271198185939147718443750339886598750680625704854504688200409139386153486356287387832135999814524671611219154582863242596630892408706692045785764621037301070046467264445262244241816759843698305658247850173543547759286877618125515999494333742658937589777291055570578871620790663729291311522873656665232673160873821702755557730023924790772954585174066670556712990931255926744603853800131320596365593158972295965973807083972791658941759569344915304363074910890207784302998968241324483082922994348209008372242760242406045072611017811847627679340748449253538624150715409662124517502720331693135718780461258569713565113104065519901598393770259009791427875465180090160377333327049705018163669542057015755516036459611120648986646009963959497320658255135591862831862459135795255551221106879967732996542835100697289466839321713480918174272312660785523543610263553222533992122352338818062681401999468636608349563534526817776816625915134793245400930413421520956498612099104218489494646669336076290998534029605450535160338853071955724953852484754278855620967262719837521618000970149747640846235739690406876753789981952673437592683178817148725404482959557598624421012495162385418775704719324739462820284621749297317629650478299058376264575200285937147423878842668376158247772100327278449085543482304846483600147877977765149110082628083451941232942901605423600869489309167794311709094977368413223945591295388427095477851509941687371308343501449223425278398040931132525490182816744550804321863535997018313086282313112087627663790014884487074022732665171418805242375868796868834857829413496013645755792686501705868011938963785033139354982065578511968785488882131381975686646126433802422197003758787797177148217681703054663170872217573782173902660449442041375139318647921627459868689337438969629572005301680284974090705800507938192371833252731769622578533995456139320059980172966794291985653999939602254078935622078961228150268373992772112960047017704610476420493931971782668515637947742275447958018112565441518180057966718444960687012806806276756784400957440365907736443231609399832829092325944229976850186770781723569187299146625023833590272797926007817515971790719869480896086663620122810575759225068689693757738183835014394235214247671389024429114201824380297440011334378189680762246168949938056571052415580602787041802977259533131842644822579439666239263745305869562107976394291621950360301062884728244205681896924234761855273761852065636141919312762508370938084870519165205927251926834074805534675558740097637963283818709020487633115560021886955032963158188090654503888379957045760737970548428607424783864665103761494918626002510025513879119560054053097955273895960908234836527268007078424783096807610723955811403799234477269962147238490632996884180260979696094350814135393510935871806451595903864626858859996965123007164392457215548423277246082021804202629982350489784696843838912732192766453236356854120037062257222645201747220930866908280325653181689050965678053355068288608058478540157690416929674554637294788694553297025475991789859014628005608885471093129656300403419382750938538314081310937265715285763723809369102601093123983706126333935916679369715910137100083713532619063687538415025103154330483146113907979987104473902152318698532208612051499710152553507768868543444933309414352871532110499478634498638354445177187784281563955531055162320662128793414759561200867806003291504371908015563720997553482797272102603357511307854225848710051824597773522233580523147130998723692796044823168310949454610128878410060741014755294020644944087188671779122146087128983296877001587369703236983866144875579271787768748884329942966523721614777432867235202029034743879028277784434446934585628098679036251931528638228151491832095748683258650717617987097723561909814400293969835502213504204745544223762154334056115354367488510219641297875504094327305796447448375929108979963727176462769478811046225062855694373512815172111754769955210567238677693377309387260814704398035410586296931390591067170811624604241838967561164666101464226727803470738092622813283420671672774910840003255250354041285032559288023480249187297756496507020549344888668325815608675551574607019241407359870602536598739561379277292267694638920965402649705532016497573533169449218900049544832691061292243647613149571487876086458693760530275415232027559271429386962962342635014886897094619198500457338404507735251167052162803629985227508672806476603299368019075883830612577113543985064042209415769396070491799310268759465917128456673624923844100838474398627921995254878523064037172764581342660005132041312863176831118501178314241853326051256256242825334932258185072094472378723365208182516038643508360194587501680639273841163279053236775238506972749750557518813380821998991323790559113706360868466239044462667563807823537154623042425869400352634069311186890113619607719786582583174415255200255962083108303172700126353891578706067655607262469950599243969703038246632544818539763752558731976870747571996661784464720491298552414522628602564580394924094030713455453922546848911387772339511862515555020547997788837315048102023018750544406701577436692335611461176219587068034700267245568144017655265655641801949539007057930307549569778439013276585241439374399698380389286646001743566711614948896530943096511597960334730719921858724436513113598205048666850328480874151617967350025854018337016196026927508425521397324805072072835383636993349253335345251656058635062637167092597572952511401218735046615954283746184782658935834385851625497881369588704037567901167577670679867824869367885329064576963964319744049258009432771992509887205190242420052547405817425526158364479291807335086617549952314256962199361651640477267657766923292859048506187235452654301046139848060149265310062561663419278349034276035463445112771984511993496687058876304822566605853306454268665710524669534006476389138561589544259815247363313618334686290027156314039975489226112812797742033385200807041945033243360352923784805173268012366089921720717049081663279632197033482783829657442132114480830279275191833663909171230881879675111173003982972666425874236822555613802809654160660080464686847445906338224975597044008874888164279012453802134281514714318312060881599363547923568148723473769429108909332744479305965452462312541705006004333945353268882869169855409972260942676763709540628733353450989534782930061846255193255716515579909158713350884809990318474284664602066596653897384865200112509502912765476963377008017152773020098253592722771300615833090246887538962778970357042863338914711949481385480155189874410876117356513442221851427602130211705758917529407177168401384772013957894937358163834161649257768375954717271476897208546747876437018257853000862692697874591477904438195664987009278947168264338849309153797626168116039150713574260863808473847386171120332525452018425499859697739746901755113737063640358045752219324410448213445550181100302428367175402379924545813356431746522385358587040711324831038178330564921092043580162643502013269911489389401108921267104523869095330092507054218464105374945071920097537999199164437978473573888937549311802396501446735129794469194453709449209671327992174197781664032269780932811807047547857390111589704223795295232454532793813131441688914887505667076171302357670268463894216671432995316356629727950876208814685640502719611416190310363713401877254157993006052829555180886008777770503779477204028218019714139160428232366168116122501053460042965336032438841917354596304912536298743235577419694435222853747353255884419480288872519135574341994256345294915127251941623989025912172654448224509740040481376996989761702257753666924664573135527745714320476134186547804447547980799884455854969283344629539171364285342654897919598387024714220359651370594841359954481518542303173175249801417147705148408954335817513350694971226725789151835748228005008700068154001008575645465085941806211271686629641791899920252903632495709105390527362455519977442280273203829434289121932806111183345470651917691897967890738736264870097492382443682368180405334460807224534150191911444598173836101570370402895145261615936679529935716603913488102341544922853816764151110907158247616069400847168469568522811024751717454647209905416356337672421907480237768772985724734120632108953159417680026336398371460504123643620626961685185576703417890935617124920748479975267406986004877521551657890159927127627537801662180401849036811227611982921949648320703276868800573648393935388979533575040021967345802927349511822511220510394828196027805550896786584852505466689833859452785868541250049730689937033234105142692384394929536648234739809860055232172035350588112104041660682488088671444017173551364826737172146364988123066069249628550473125054832377081743742338048668726732916624009081103301384562880809104730279832861649977656435586642292021741244052689597615467846524799020932298292872443438785392141850501363683699446903126268317977132913076787409594818305039541591879048374621226151996330835564502070817387937565856305213040806668510580170709011272258869005133505622059639713885552720959755716327431642522309947655654129494375612414121939835527521991085846508943120373255895692916893940359932654589931080251266882302072707874876739991226419946552661149756955907479043863619259774819649931304442720412639329153318880806375918357102323960511756025948072048187346577206247116543414359309738672814515113100435559690158246553607415534655241985168228719117414536444149832986432338000259000469900214128984164939372997662666078565073334702447426866353203000747101221861780813507196793631050947258558039424699422563716777500185418049057824633094628103600303017093943425028283455828073060661184882778687261527639119948806325540445794081984865167709495386559018335433070773585452691506582312894522164366312852784443402773548235799143315714021913353814149419627760525964642862810706060095887446109811915690239666599549684763212057407743327219561584877890922758040163652169014843054763637383401660270005191991843653283142757469148729602378571517445735162207969124215468694805645387040658400507032085111421188575968929458040844829333941496903077969949448769626593987421193126672258353463970281870158524142496894578459464539933586884215687337819594641060343269334752710986635435919558429819829426372410583038072994654892822444438818456190575547465925901434761529984222993025105745443837405690855344513532714575781670857305843968827278752728394701513569063465874482215104984559093288066368717787306884615437052910880471389214399446832048388608306858197298749587131500481738835223102336833917616436722794208760905077968980816863098386038329627653388471289311045127626222183409441804767069961162347579095008792769527197909614319644618672336816646614196559375929902549853471167657151182413226720006769325691813945240301129148164890501488194026501354155207461495734035450808441200934042596497222872887829183872368337333046373534877270776255420698458828055609013822079733533208075809708135446397519440175896503536686430653154728476847145133378125195977865436805197701148552242545780805056797025361760277499366006848919175658151835208597479742082429477674633996846264873692158725469301164869364684852333371558472044546346927318123283375581432622864237885040339883751578346362633638845563523831009742534577866944160045504216765877424264734676966193206277980533438105863780940595173193931225802814385238605302438914355456302115495838643437918052215243025683761868844113352734539057638258955131443900335446995731590652409945151768748876062494629208257929026339599957448140081340957247382640991816396639855435443898103791933386591668126260091648460199564116554067835781483688817014392521364924012163562745648316113948505193915382498313329117079929604920896486007924535995769763791715047600454872926891959965202112839956623358289443278470889307452151383540218104535489356118090908234535555317845320699474740809112834973183446014604443074760488631239392017949159674243886283789467927933691326648299760748848558730387609118191552701535333779044013921014617922595700799969756980753655385381820870121836360759272946022053544543790111470840785790653847928287705652468076998311990548369439803757256246862821355409420206695494550240953417649979859107347186276585890863133427389720698690193423382395619938361701330749247771839422285281587419666922767608482852716215953280510625566229525155592337541665017925886649078339480025745274375692746859317121764765346598101799944200947092101313536005078594304647895557859442208816381518935624250451191537256849759045978286470929808628311045583664444325944361622092996830874501295906737419429585898312889900504101295008409042188310833855827975312834169658049849489440525119488490992353038634954555935361852421640752519526589548828025272825326361976487997936571692410007808494589786905787493219042597146177707445834344401778530296517132251296311757444747562357236238340288100984125011898301040966706731177658754601996371495224966966338134658839775651663083326702139622070567046875943923028311824398568492167089340597661833291674758036807024064393186829383910195221251130401601076419082676230944720839955055152293345592263646744818011417544776365573128048831471183878541215858802274862374249897127401621279626014074643933560364394330906250904594920979851784369242821363516856907858485752482085729510970034730613427462305249947014487054153479652832336786199027726244544128008710016697558017896704240934253324802158848649886786159275605483554068126995476674923768924317651449646949099758130607310983527016799560318355183398363763533445097769716128443427971156213983057115315314557023257471463270164308772871214475035388119682493614093823695041665462361666354587969806656715894634028427793211318624218099987298208854679422005016617839642582351696420039453752559982695507234045638733805402226519236120336624809975262732995864725817905588659280526983518822218508117057036154926092543964262189377378497649547454239858542051608670369424965036163295881407689255462840696548767692412840085543375529839753422740923403753061364371099931588947795042906603427249502971909387874101399055782160482662641715091526291760696408672609446082590801729032771905410188925848005442589298861080587050423405722068361768623062175147668414448381977557603336607916676694729354291708508601402546080799585798704401172264450468314690800007945025509621538700000967395553256990508028327588807313001348060026987551297795251962739935850797540319287164892480055770032820996393674015929887325725077977406120848639723734066500487818619683097274939309805943188368616002693589193383778402938958283497820157093440068157561582406783789134726290418776900351366339673947700899984685384417096904042142351625607060391618713021206594902474033981220669064417398423173156793071079784205997715418683600622779315031161620509689828145639845562077481049739534757330266935984803178344101093675125095849152552619881731667744434288637286439723956226133639990026981641090770924076083095518703047016370615819240502717218394148532524781065894198537551559253226859516195869431458851093975370380369918478460725767613752098164222735037930496970756007411843112624194170097580460127285649028808375127690314145651516756342702369021822318314009841821447324631947874386575396350340283302630639607368608785277123950971544272773296588353544718753596841123461228688670750293764593877866293744673069943418373313047671575664637134276561042261280202990822679100314241020032898890319731045319451891741998024900546214863745690151339218845727460907561715491259201836406041657226790565035183968344531708899764441974074787229218595685456344417190202317084237798216718833494069138843167029309836419593964520334345807979595327814681157786423182548496446919268418416449342789016379635160626348267555238061116738801591978705818700597883150107066460225748305639538409123809322149828344335499952301006019955019247478006841758468737459246333344758142531940952779396029631049740738832899137382578577382038048684769568091488333160927272161486851565922803439030712866168538361153362974293193657198198455838081564007063940056827616624336161991360267629766946536636956422862322522958951182181924688555315918238242852508588955948863367616383779916897073877108659331589084130168963602111423598579319474061844186480298743729200983672924296472993563915798823725936268292360097705069844489317655548428363785966238557940594838762222813423158433251427008656439130595911100750443126861874765407380035251458694289213406464156736144753843934240700025517532458259245635629743372143200586693600750842699368273188147482757783134568962825260689713610688307906021535490680459761673715204253850109335391089554722158034706396858521265675197627903701438304567033964546411951852517728221448080550137750290604515269895000507526609542230989372204747798686544332431479896495166772831667441862138979854562141341415820367969194640363083811647259044211066775008695417441731740833170050008035122393214459428308797542032257621945267626637376109100244024099651587230991748420364188000284587483550735641497762232968235875259452162916486013229770580108410358810924404301861100680454069837966203701741294056434471601554852255150689693954206027588069514797850044692052761748061947253868982401672349621798360242398127087554011500497724854844418826545613015297829280419885601428064050823224583539488537037948145136820444214774539959688598339233349474309886787203711690161187297602174387101802573583846496488110447655760516996023321808348926031103339678953183406970483477802593146469699060418849478715637709387528067438592159003665253261690630638960568599570654112375349980808896352517049873414167006246484585187514439859321114046311937272735662889883700167886690981470873544730037120062701304713674205740873663472286422750569932968360928895620410125964752332779884615807753594806013361496210875463072313172041234026150015989479226013862831538486302141041441430059123009370382152661616846411969400767079936428518636610099047357033181544835264236758642255910579016809243412229714441376310614300278805653262021941648604107930039810393118702724546594972810711670007158840536967925734446906159388353518036094814458112504099565099413096928946949853463728204220208391360790710478019497629377576187753172650067750271156205820341847182379176275316721536951379825345722906437844071466467802750425677166783494921059983485498896423579335854542373890317000171059499877228204397613988811577774215228501208117814716789978977443528656478303281273474833865649983039697135472995825917489480875728872342536385672759716559022418506121884196733928567654249947500252299089978009913770889397413379075479613072935965074941088368297400432586021715556974213126683325560261932444761007777265846916470199331104345042018300353752691182370320109658433405558187539215161279558608238377166373720610283836617875522411710966997181761808604049958964447131304177878397324183253602308950597231877038835759334576072850142487988003168076465127246867925009884070007961989887236522994160175812930057840687052379364098588895920284055730201643998066290954290463047844281151223717779425713864859259362221322526852270975158266172784888453394084139730559359122476975498372834721842577730456479625775932296906793866071546217563967653943771888865523166146238899549031397395254295113884820638669281385013470337252241574513515830088972080575763747806143509791009359826916896866361769317550704146424736779870088236482351373116074336682020781749539808552042553368343580906562500662496819429735164137799325650362119161054772636459200312337903613345072013155773110583617595195461787949434180566646162578344460847823157570930889194384505292908941076394707706342512674844498480732822486003008098244396074118475720944507215741844318590484017986385641852797848497065623782821964787368136458579366088795139891826696283926246132888084717869856573751180432774298683288485099891653605477037852763479975382665641188900092886399866725344134282611157452934030488924457973071249103236643837258515366815535736149193278143916626762779047657395036172185064673026441834630047618783233426555762319780626964725617172444439487821528572111913398467483357663605995187405915140683078570254295970800528087135486985930126925758990803699212595365251611793730288825145601350506994197440889084210764022914499533539764336313390941781578076831857173490940439327013402780240035851726981684712705878830595874553166510750018304705025938854918848853968636649799512297369775186113886481851962777366257828990741412219997070330620082470568910851661077176362187294641153357410768886999570056154348288748059120132040610323464084081259014693713496971203131329992635447093641660030821457273563582549406469711349382726210644070570211262862545683832540186958662066973359168491178336973385245866477272018957854456439666279772162294028763133813803976286589576758633070548318367673222051818510541870497328339699902290710454099128619550904032908204351132671948767071785289327651440124601088126743016189272650066539143769141668084726904215737236181385069572713713302499266924726669379432691583820111370070827526180575098849699681220674640102195391893223953852804545206629730806774327561131733942502030938295784412649878725843314113167716564813490532771550484106423102974144291168846855946773290311642107039084134634697939314994619041293618096491794890041849802709022871444269393140730794561348594958455566163414786830214224891062995713750846793128946649652827781714576247234514671476268826411249263280705996490076042270183208870274173810561560779530264143322631101784989918474240502623911842039158887541290791444365126501554064725905878457759082746992656152605640270259701290247625604216513783939935506432139682830084418558828681981657364074883882057209618406182677733144844655027435747555835819377633985325407053362755276549596369364077630519018605774882469548041785241602436384864181897868302806383073768829729535941652606321630973188948663058889972577757145137263185613460157427307407080458414137074156644937210576731190436138482375709631244178043338733668118645295900156240248166160555230957314283990204168799261041247656002025351999657153814611071114244819413869329387665521407107173061957484497654164100025083934237901902904843466472245416825828967150093888322423384712035176670436871929244196116525744706392062731642076312993086901819571030203380114746253490969026949317041090845760064209431490327968780382829085717307998770885417779419389130335294727269071342784345297352967316995611349743078746664002972901952535923480073169931121221537420344123894153910406225887716141695940505037442503811462267434516377087520159190749388693849586297249994829363251362841944527822542496495021655630490416895419924465841789752118158760754139342075136736676733625293920182296758346733072970514324250746497936543436435283432203083670834993670279205553612052157339916165266511464194397703504509352096115237634895310058046675233299810704293059577846510543135400039114181014969417012870611012426213514323688806178065070271543752110896691922802220481551516362983240063601714935030306054497669351869935628410736760463742021331117524476433267320218788215159188906505060557829119245847376485920018259846577701793828911383793913729622307788725304238777486047408114214750382038927270259737414064685361226696324552017964272524016071146996053116028650045293447781793362784469604713308407676729051330667417170510046036954642020854194133795031465293424093378004168032820499596325788276097218599374083446489186088851709942937603860286829222030175208733124305901815458165676018176540061055508115356318937352054352894426996173346123788152473960429456037442680615716175186405461428409682625631857332709055228802261541197757960985463097202772025626921089924687326465994743558531787345285759131943084785565259403706043109495933100013426704114588836981041953521595334908165563678309325418313460151640901316364639545114898773926494667301679628328705756970851879461767664208517785874716042118175703352069586034614900107698375608135214026155302699226190060725657158686963412070092772650544126712521097739181443601518710386909192402548073774651594051108940174200657471746616726803481916150934016274215257620809882379080808675692017781056682898602086620475937662350785956007682196471050745296394498511257170194655621435275403412158298308638505554885371728931484660366733594122204588873316328491675486346608326799234188192951864931888209941809609771926440464250776177838928359112782013497971197663748336804951953380150652270017092764151586483649273169617748494892192965270135973756149910251971332333845144139101331827991678140379088275452957633395863742979315286508663306204458120751491948951556082034087019551922107114161337068246721450847068615453768635371926957945401395168281062944725564145070139018563564391081294114242203924343728947736359232085246448958713739597912817305127226961971869600612997036247802830004674055570858936312179631285096627537939643192867165993427825698777357300524568055984900974413602837783883725746441460084410502752803149977494216682454060019903012388335734646287722812762407596378040515605074603018560047291446565625992783616360729236356681327192974382401574209925219504702191463069281474354028314133217340011755452346284596600089209261342435105921383594257810568998174640757740151810739613611919538064092387349282709895163846166383488247438072237289218134322961890842126280109952253353809651100894583047614706762170296451292782468663004128712283443559131041652981589746354291272923203764364924709294748576485247010104941465507513136144408792320335515020521711843213353760957904299498095500458856781177379202188829588482547254165498788691705045396621586359573182326491763706375315527579368190963869909506087795792530305364407253181498326723760435131173411283715296436587538005168208817147330087986717684923780445342539293354923111982737446312758065077723110609580930852934561146676807074829522106623710856492841402284939735881678945436378525318074876774512394399844664425984046074527299813769173477573553185407711271117119461887020085787040989894623527771770700033002763413472978203927013638662974157269555595438435780681662028341155349746348156256494317755238783727759297096637958821176511364721813313796413418069616525223016183727817204011709107048793253244353663031704358706579202344469856825285021364631721490185373855280299915057643935157367049140432830642025068901404986729563280998152786702408172292628683928565633808974820729163303593607615349811000972247163496472372754103536869612184398214350066689833424953702136771247533399085311097907345407297233489907756235209047769839926521822140043243297535744434343942062342144115963496326897884028656348133097734582635946031615338961945696292749035526038737999789269279328600376504589127766040934130685633938495416017437058300408902005861342104855028842928093597241941276823521078903991659187708844087428961552234716690523717525587270352990014524056358061816759916433870887487280390030398936381898794987157419635800387004191674059254744466954770982013661635563325239824941839049279644219444217175392675999079453801103668033067526588209171333704534953388250870557675076487826175811949661282056884199925541767836223490900470487445724372638369941400607318122607819355087323861117903517782447642037800618921795528646810456120156872911353907951119698303381611252924140584812281619652474221247646268297171314446605913679917057344390179189753033965339920262640029960032708805312937604371793475524814024243521586734742738292956610992896197343699097604425522598046461284672617465885141539095821139832484835420229335653899209196725830077534219833551750737515019059509709648873702602311187142940745483359801979667006994886638056156368773365745752560086046825952029436427227088955877663661235880517936621496001440591687744439633112796511540317810203908656612992764980155502976767062275185134881416521851783675929497742581957484954888136577013180578543480163132456575946568453282180258068935819674840910545786117778788619826452184085988905807367880299157308797404990354925355946018328853838134897128324547330064561776119973445052854427412696669504482718089386543898076795553356537790359418910228418365706071156334834991139612100237513836607690925896929095496858826562500188501528102656786696105041417849198497721582677307249963778196974008306140411980782160335303500481247325563304719615493975263319471109124752443643311054049137273844245362749962323504084010200263351773511304327330815701347706702883678088815644736811539544155619781967282047195936662338675358344389295882252041892304556424101178541525060948347501772944530220555607456170746024186329174418772109905149930734379580492108643607930458415474253521713959522473510652132168794870921547393152280459217060501913970775633926337408254969097631560095420264787940185980405725654681172050447127173205003914925619837272643653817707443182080922301586888005730278993111748707032779112891856930209663241806876537354224081576398412562141405768822716439641889505691591490728075057013075002022869157493742368612125639326017800589820641466480240044862921559413163739149333106534844252149243759542675386588966760543790165696486369791152786795834514869353639556602588996101362851337044373957049810770796620132536690013020715773821272166240040965034257898584423649316725774157032453504828472062293925026223080868703175618495533770756693232091860968455309907677409901345825021042971891761804003633783603169442496157859302077098071040259946610642774895500538552709589860555552620024202362630410167868892612512713078392035039114068639319192781381132614188456837295185235219686167786459014821815168543472952869517676494787623912174249866558426980635125369164188582148632127232907956547901773603229587588106644620315353811331744768638388585574285297846317756003598929730884217718012732620823885491282231422677778854204678600025174220680648487345601736052581942595523680481657889000879437101516377525005216728186374271678440555689077083706445324953143968665103587802236992226698818496416885871734657283733700349550021555317118080690625433394516107396274194318268878222788149720999057126334196907929272016919285807406690016336201075956581535915336182974536206732241396634131128513683829486239853861353422013717721387370274092075010340479538851729805289784199632870511755817775934125819047243812506683756313102644103147826311816359974806191401626124358606559266454070975441483934808435593212950794156625219870740064585913711299197169320489938431150350325891620725639727307944486123374549812573936838420326448145956924244964683200471986504642907659695675156888875536225982093791202976200561139690492664255018760294723990474548690849621355172118391927062550934131468355896518545111133414996069170468048477990978990828643731239760531271585240082264577230918943811886757771639743974308962922675260251081537345420275512855264993242841253421103770497795648938887374165557649926614743026556482207073028703286889088761074658828557784939011580242961034159295554889742911762792062255097032408257055842917864659513209580154629059912093965008331288186037468234394000674806302592995391564016958650706343178036776105313859846644963961858706737424740053341995349062321095868184741757347524555760200663856401624755835186312570889578560497312087639113369071174620045607528774621644400095436261420245272172537531350895436841215225856211014838053513920733134067251423845981509336097797829508948258843360131700299010643662706683162076222205951041411505701319982540114362308886596671905228993824226851011844905435660795459036840579469209240709702263159256182692910350881437281028619464063602268325941352830188332808355820024309412849374997879364326995708955304316728442214277572907713420997559028289651824233962971033902548297708352875398533031371954420428819896660054844093029926352732141014703969688974524385335138116987147334678734966190804004888645324733592117836539122339868660024548061123065298970085902338781373537274833172608844812113243248393629339022525704726050937422044489819993201871431866128622059805960516468567057710153681959596229818108059628412454241904598465444795119899716691384947255467066482240079190972656096477425752400923821000577219953779938888917557670953276159733075155560073856796792423728115034144906164057439928912358269201804902862294249744782110930522216925266451420668327686396990956224292922538863258040264513835012614751595452383404906746980513520246023270888370681419079918059712769792823401851667829324866846439089301318890004510929291836928922393828524252685024955636322083882765250932561167811972814438331050453623051120320614403105013899242819538701211730898536360194949297505221242255313255021401092993757493405788727773778054029342079818651010643392887392630558609927787744943896698484721523746940298726942260877501036531014939705799126023674296078251999978755379379972135512348727327950747513641387477951405386771963506157822035631924760507247598738385399666419497697876830686251854777542034041818025091168419982419375043398377618855813119914585555216176366590829596604287321150975362827804374820045987387113207017484782108833644178045512625203810385753767927652145010649570367726150284004807210166515438770603260112026401008481204253625995178196863216940820527064981919505982806560591635441692275562560901945937240514602099007932267595370662039192633299583656806883002679529519677505062676231767673125943081708015324031472532314447581131589931466895155178975957822304509987962095593260814400839349587214164564246215620064623577258714008298129716535142634935997368987721732113356173783466139617500803201304964045938738087717178632102329224667537806419757763430492940996374808801953021110528864698027920662438527901557323700486582791070579207541388617681478328759249048993689707547053527719527472939212221573043745603937050717437009079684764863974802964080433921840582547068672052282583021930166200793366167590053982125264513165800219282941680478832788762618603654880503746226913478514820613796382193824737411986696133418669018210100215784313254400931260048286984194537754632945083411450733459258285353319834472458530275923825932658418475905667497725667069461875731034107779622060290312727792959774390335980773175269939364683016036996933386454576800144973466557489551173001124812421573371591665919250344905895801523794180313498497954362273167089090441713068059456773913296291185414103996726654199350014265549570064162346341233740215936934440013754369212752970746919135778954791259269405357401029146471181096558998931543100575679230352445242839425028496686960469170914031255008273880209088962523838355907914648090595920282780946372699571342654058654488761288181308308951968376168604879581950521738669325352484654581585574299446818355048083459289220445971137452863916865930956170826542520356714395013657047957620493542212090947272688697649305281962005435463641938135950393155482570099549032486802463829143578815321441502010574176440080109891610369462160670004733742720347827547356527479212941052401062195299231765411023256875042082828820378355890567812302410674889184416105175485607708202676990109377740570034980625091245537873332120606626165995103613500865518171678250941731704008156905324816701895063477365818230429813018149398391877685047541663043589181632150055526976892177880245096777130391695703523635764192582874325698052420745502968056484569915845059979691155411879366678748469746925389512263668499999068708439826073759999079977647885430425313800294679129245877309597393796081350834550587080640688618489538200819826273978842495129798002597171904283347829382951193966222446742968830970256301180622266219042966745825429415214985588335449960767347950824237349954527924561923960999516849172596645414284548260473952915451228124844893162805558414153771617747733056702259980797388739350156851116077922658300496595769473351927833531838916707356643620658237582170589477650604852371616801950423161707411691855774752477364343818447501443305328419760324271109814688804853901573876731691947190269536164447265296210078777872992795459124000752424195438944145160779765400068079199692457020040120007615955200423650360206631943108788672499555811930247620722246688386157978813211238127402149004893444094873777006929901828297140213163813618766760465259191941234998759436489472967231581903533292860150049073940133194379573790866201646253995844814484545520183666746287348465913620171854050070866734763794991623909736200664766047112663860944630843785280404250490092376232627264700200554328029141677304751655208018854797441497419295830099830677780220826046105299277538442635937596267747176687792545363725238666808711065619258727058316826314582332734650622986985966106286655702432623119602846988189796541263110140548753754894813560818775855532157433175146799822736870141800545972832734867839650075409286864618535355327698362417184037691656741294109920968379360371541073541069815971253345549752881403542813420303025799727134418728834547691972455687636717367809914187622980762189247847262498674467725564670069571131089208220491266303407047597593848165364943802825735460825313991855628499233791176836708646302673201705188424019242671061906383438635673574344635971238046664036519220282889847384763279364119771868779154501023268152934371613904232022208880031716175463915667413961088606821764140643330521652706334762945574762182020198746441617057107045177738473352529768760592057158971975745425106496967882317391764314659471830051645547992896624703489052208529949095273327598181438508541564006278184719761617975503785231447192853683835866606904217288519175506131267083567966509311214090533189147366583115939738308303560240616494864550738046082446317417305880625894025758054407955582113711636455081474012015127302092070543014382657050194224979083460982264076399737218705581035279208112543700331821571246302115439776126868921621388858537414041394906609340696918432162809569179131976716212629929079229601810599252597349121723577469151056863318178651711911558376413033592958415377448928305815619802592504312430028576987678263912729951781225984686015753384103356676364506383128491436856428759415595196982315369057395908974462655649122603936593565925154073189591219709086207685127841847893526815383246221352857120932940402286413211716351872376515651291043340248345652557126384621116442674241341616319854238517804997290490478394269209995014804042815830328413145052553015791324118698432994406365269258841136751728046603584472475876552791419335630631512252624383310192244035773721663901908212793277438345013710278750007996930593398897636798023407712225859418174417109296463193109890584962314038889662479603868370923148829551667276319536271555728615557387192804599626210001882685353767136339204980637244373613052075902927361814643325916672578362039595853218396979875320905364483970198581753362347011173896037150164851541095522609628313248779020415792322306056964398607906298484620589902438622170015547791364355783168539132347237518675019821453219016027143227344099942741532050672255270261299003667905097106341017174362463685561095450064857133081972774647462669633959547168438674239504521843313652845435089380685368313927735133678243839600063705664800750577932096592436077833838821530288467973230523027526755533620177128289942761389949066174632077089171386836086806402769145581504510395702438960753389226462907226723900607945340045939733646812230297687321618905445006034995404184757213873396002930804520607292084669609298056834671987143404333007688956670708159448901820936797774328098497535877838864426408739248970307225439073499747402769855273329202374454205644690619281661560222686177177164784242877017759432431781149024071058826798259525146611097549086018865519803995704994504916349050078867118181427549369435528032103165373726194918859746579277797369622326730365136691236247389349580727648671487576781047253063096496732714580404209681287971510682892731805026872921304100716103736909129683312913715833146529225983194733233329553849778396298091988095884500837852811002390924226064646919822972238342856169679822655687335661501195226582719855746109936771726567310630808150684774754723259002896456043543835027196046863954926214322632830483087205109831273945477905974667139028528099482302352191922473820031823858120104528857674475502209647723763247088612869534643378594135668752940875849226474402713666238463720275136755651583630650169717842114217879165314423373802229222064210597098400000766440573797712218630392205071479605931239729810685606373136115521015615758487328585507836428765976003144709863899332471439077358709665343543673726710466236349880230554234986358054100547322920555431602188370350651148178432634019333727301348880335846816168221623167659755429211358467772729930217513957806853201960037384663608064444398865936000357272889744386212488182025858435693805917008961700584889416464712340590116078341845075901820824944697333977720980349955719946655814274306003818930126897181215852566852502474164871442722660322542798691764315483405251395663172723129480046849063252851392013316332149049922375225976383417594753719581213231948681619079668190409764607846483982234127455750827605253804629439357457700060094487417228856073410289786966646049844485192665522702378530686846237241346020903042395788058154672601093888273280474582305188079538914332120646399781106487743243308573879489428435847874501812838995238660471698061458423071247261163826235581879791128678149332400823137359104537137899164413450938349660028897119492250402659667017785301422070689561381240916347793068374605989366317367251598490006498230354410002116880543947291828043659160248005819719385684081834473618581981211090902473587879103868455490287274648118070693017816149521840874936323473394550971502745830536873860649923592876886490505321635931397507849980102975328843546746905409219055525351400417356306721304821082029547609753310871640724292736501105467537826010705018930053224158592464673346505386225458912138565593300847587701522689365925512832752668124617400687801513711464352600213580739861066158953785328095884060045403129660598382966000943226862730000023803046250411386854579076037228874971227001593539708375841821196168239111239660564269047427574226680146310003457038809243693841434020668095109214116187418106444118504705464488318267782291172602511629701422589902525023780036916330374450235699947601857996114820665396830519968906354949767030451420978522073191999604522392848477181715724952009420882299496433302943481477666817631089981428533046321515497151708325467367055782826540581885899091538908411025131860041267436837557162615455804557247652391860105504704222169461748947437278259789334877519570771551122519104699488532225314195654675996035792033725224177281804947456988917507824106085101343685410345043365757359547246378352862566864863533881841821356382320912464351610208072180753020614235880933536392688952999463224399192805000041970911155577348436780874366432620115421386895836960566083104057051233844266899531040430330160520654037635867732838371175861313561754405842247784598953692438682807842977377206738968010257091773551028300740094784245697787555353131685609707875642006367274503241890709109609319557797810986626894145629133217542498734900778197734095615198521344060493728788059366605511627374061287409918187924755371749273095807792823245969868661943798972528780247437414175383461055835767111364861054324929890007533958256307313367032302537580796304530934820479525439498059188347308386857670427040454972837021535333505551664054250020698579139634151493445806310125917332968415609507401856043555187374289841380215261957259830549232888959541789529596540734525202394366752905746139014352454869558840777291780610762721122625382336772624119079886595503297734702385521866133699171684703869050721336722954481600310444969782099880880132154169865452290975414298292305724284581957174111929382905049249006246674314344278890908415376049113348911897077035823334739479005924765250051054436228594396120528072038873093141887384665600700471651956119493094137680151675393865823823047490121289342007024690069854256367887901960751880363180408900292730229896802876686157027488431674754674294714837751483520223774487505748057761883314765140408944568549175886881264124354730188177492382816943846278902933560474287124002111911147063626736018404987121228809522785813389067195635378108405746033485855172786885583349373377829429137397905161521595252671796734880756160535888350331114691889292270786178396890437237364345475952283469234236892961339575416978123725700324220448015103549803653859185888928556875256216021613715290020374479893311620530781225676281439539126645876548252749354580408445333762685145079370474980667191790331589366907887447814363052742870031944851543941118248348902396633040199101323682324198574722071539808609642148593839504051898943145265351460325344473650790473362950392707344862451387911436957593268978086524732675519099770386617460937337102742096423209399565405677990613227145825043326916068308275375206648321231178469514915816443368626710917607192940683739271789061196870066731656484202468100372889856475381116959797086604253006525156109973327594733301000998294267488461690355378421921326358349646300733957674625871825458501711650808071051590674289892225838570832509364417765658944825564451832421305754548556434767564003872375855704144913251674995682709648002087183521712098483789023092390062127378465426423998257958313831750447423401960754998788231537841632829801721468149060773903460701120925679127473466821584542889641918122906057584828260605474944888729322184324529100892472798136176687358033847602849600673431848407147554722988243611815044187132928826260895329779134592897468650930961292233706492059099335862029246438890405065512706887455998763200160841702897168892940447631991693252233505031184296752481681833898372659617012951137093541013210889615518810306942972381420302649851187829216267910201936330219988053065875741043033346574709539623745894223098832058248628687938476271265878767866109606635854093838098677052997109551706694042089244031356178842645032106057178509454553223035241213247504834296481203954829502895239288160649961353258873876768082090679777051504315894073416867574686187750847660324426906292742436747468238073616791977553528739843161607435689282670813119450748948084052394952797839570659775913417448625599891641368486027376746346977105645939474825583014037521756233443030897535011598747784555636156678458098397883081328617546160271900603069469342477421782014867031900547721497558922112163425844622599453731926560578999566948314757673430139493143615608802349554637330856538954798723242968308180797904749968652952353315886666421633922266400105983227479933035560707871347393895666809801361234256175539308457477825221324826851273579928552197365285857478457036985423611881818180541550198131310716032582337388905681559973923782561326357026495272426804290979382990619764506589004357705877336809732443567565848486823788505323381839747927607292198473718906462924122809820841089539033924072877866695529156660916950397542334538504889036655410740830509166061009649340838462590390786966067867695647307768503306101302142256905381823508002106142791103656154071292904112013178243715860417811910309598765205871873220119970158687681575590309516805536443765558114011278188789172239258307540930915712346914956470709883144427803600826376389697713023978327278404467693230876026412174757630566565613524001500971668936438503581755769025273904777178959022783463234013308119882090398512465095429063175731459834216693417744220053258047028939102504389338875288490266149906191257843911200136033559320045883255563343243674555886714326073737810370539806797076208791848805127048081452791501704304770460302100708039426367067929798604327393777818052762871715464809928523835227367978808018185293563551588429086778832354576190170117316786543556088750618113574180224698554451712093598654958158597272046550066560501743205672642650363825780645972102696567688330038581801521735590105756058060084429537677342638567934532423508245530336977998916698860306128431938573210773630040769550974585642975947814092895341200610761968225472163326424378191129784094416825336577214299119973964504339134254727032182620252337845630843063517426501160959430882586852180568104221934110572227289500870350874992663555150049746664832026979461639431554988664100472267756776950648641315072101086024035486348549878596793556964018061877952948660676371260578494886037936517153636129537535949725664561537446135012738531643518720297978257317247074891994827971205598074632713656313032788702422002876675349767126435213148353482108267638944464197343245444466594312049201911617869853496277912903147507164815652759329646161333135699669480157566562034988635102269279842230884757480460110121059715872238136314812057763915730909191386147092665876226736456199916120287820360431393630206065169214443280802241363191425777605962307701242041226530777141909503098302844302841291102351958896704637418595051790086129583890300726372538782084293683947886701880058377963890334451099871503762905073479458054807356428537890514708423356525541176428242743548239905423930001392859876092239245205689447580382055263751353283655598456484664917277744105490756168769433946681371335358345798853715599947975217234984609899772132550010168968732695825039634520111549442375243189443972162240147478288930174145302539697645653226247475052025302715472817960223672825632260997735964012837863971121785784996720450571552491511991367783975883727097410033200517653719289721786765099398375867948396457105925492831373756563562988332285008263740226489814503628931301669289129927469806963495913637742867464617440075908856577693286927678973983547678015359283642024907623197283293569510554258503406480008260037490438193507123212514434236244441419530153633655042055365159401830558025427814055452427841200636818256077702054613402824353591302175434038800419217153527066118363223705313429163874308420529181608633463445188642701482478242779166813610247129644190370165075605588433297059681419173212373123555575663193343561027764468197953358551698577598830932727102911169220749963387236146947034631548178499884573658939243526713282137793884160208125007268980149262702808578615567430991040911445560972069279714637476512930595683139268838965650435371562049664654443221110337949318931449791765249101057352393679047496580793752255316883921703998479786007089870908258615000507764167338191799467559584333422169269135736426330209688744156577926600159508583256950244742799298437951171605656076052023782470884880661161152744197250073548086065958780800786909088465039562464279078138258960797999358662473680100099803427552476393013775160743783362053586332672597965377248396217846002825093209407673366272473231372926813124812415733880538926530168861606153630910118591008287413336640333643345836901765992510821426341069587803400635799328083431692956651538394847696828210686555378351889903885216779848801649618455022499916373092638776293426370344039287336571588653572277742177756341627243132539091541637876405713163890599269129034266367274847660316526624233851219979605228022112422881592501466472284414035878125636790791392043101531890085432722263039561464629108295823038330462591920655565785363180043774132617348451327417006427988361039872713039015736448556437848953172873917359182376279687220711508678437128758670769493780383327703371784261554395206825399450070037389186453913888654943454914445449854881692515752825575149567797688652346609982406571369195685880551951431365483687305001072557089050324940718450406696668616696557613501458086688925160461691057799693462344400070488449754575025573958490153554991179459867147136375933824730741186812281012668678267008789575998517440135238451058127378910934168613635678963151009499728497789407693228497506627171354076666365050704265900010281258372499114309925642152549400360477097124890833842437182806282701591631841524183944452610441948199007160539832797540637251413894637819247484482592286265325221017438517206632292414573083792079376489980927977339116793311416181823502693699960079545194400831059657177406910416574247200312054370787433546979353317937831981936331002349561377978331211671368949006340531912106925124251621822767672174887742567744430238286789739057519231808326636099963867941958590566224178719020651827098255904662099673231868982396758387248250364746170998737252418459728479669607186122949030906118304205121271315912366570733337725169316241593194058940343035263634820071114456632688809018902169515016521214183732798716919110414364349582070646097040948436631721434730954390136263113326476186976665884783471720382625432200943669076941858167635186525132597257708165771527377629859482308035036839746417430261130864966364383379079973563091282575354949026732544052096868957144705833449166752089711935979182596632007454152296439169487512824528537069667822851512854813788923781441151987483988383327510452519654494143060995376972471274350311778519134774518802104750604190473171601292828076036145569590783329847290132535350535262448318057790157126686784723601402759412234811640226024260785166140070405107187953265940951858754925288320364338368777893475473125934438073184354934463490023659352748666562423912685527272800934373820894305611073654749677670263776217058902718994662307423683284083521274037382662080840997783589824184167459285782008733180735973719704161017240962960630016970154961594364367735710134865649256706596282353593952271805814741543199355958230069267582165469160654289502018715393456610859580700600926371614072246949123280846800541071833627963066437191712742244539809530705855241584874453863079069059715259314647509159094303406622624728264827369715967430705052389920487939922737180141314424343579662278169079360671302727170055997610121486395039606884802308132133363293407785966234230671667752330367230108850451292668143062898867132109445148691609918286715528839314250841713741119795145265687943725161280310865206772628768375430873365973967504811335653056479611155522290462420559195276498941689371025973056781010406712649037446320096101646440281541367898459541075640496414878583919647470810517754310700725206359959132939232500519790274259252139339461915503583139490755405219468270632553260798225910679643928688349606984220705790340447583760557084045559886750760274834922308673553146009125406219331419593988745219538653270563005891438907318566112390429410936039402243529680856114568017156950695978339967680869008600769110413113373170786582704646703397953098834642452482353085407288150720906542791001182583723297371325690204074394875126015282783961466381038415130960617851528324353756718462264395542076584195335125697341122255737757807480173012310702040930460974509794751315931655033674919603806379565151241748957741674639186501631396487446019536965208078067684976851596976303010757725141024069231792893085124270864084852809071856483786133172580262713835842901805860192757394328216583324973782762754475064667488049199456425312445067963332004584891140693707559462872841031672966801085942261339083674206584040338648259434711799777607099611374951422098980303858051580241194413181410936407580457463622429160257214295973764272180014760459478794709365860165475271277677624505968243189639619486984971344760677006394385616089155350873305651771255462965461590612456782941384388095346852129922307451003912015357674614320681447676066748114569737163390318410639648839218990844587106495019545947283647759945133741963237857018474496296732475762747739252885447934016855227375139160208906847279440350295861952173028725923177986940800948766304084266240329369443707714117699302896242472984341006325749771701741157975520000967192903831669453663852382788181756120674832688797588942008514812330391039663805310705836600783760717971331945541858495359562685636969091152120205933621270172873321998521454380230522204109167524347898793717277581732416892278479833971198314200559079491438654057801644883663531777830057383392594758886114233273083451497511619099977349521357907589363687077841928514875100388532475450887836965811456185205866039042320237650346464876481282503935580804223722291834362142687765813022539264109101347986807775322615680090849260794156966979928608821169643698090823814239716496613990665949761996949919426413714488674226935816587910984916031081894599874516472373668147328454084090720183017003536206691890476334991725107292766457211366195724509703894957708928006733142484551202211490360683602595503091307562031487230580739208787868630559762099463880835412331567297478831296883229822228521126345674506251074572976293084452064293374851238773861705094107064485382893338642093603853114882888658824628715871189152969518925990391268167005865162539661568338617846507585398298314212778505852680865772197529155109366494149883429987242028734968993645859308370453072485512475043126253802061254567857142570037123050890970405478589072225607630388898854060144658308628577699293177768643368376986624779904216845635868535491468585262355379529852353213418947840652737075638012092090581416862461112703668486208396226504378193104778476311501818759338349879800243939359960673949393947207345301583002372106475696801582823387156185047930147484674498020192160960870420240577144468523783982642515647946792981139158752853374020783893478610235791753656701603137346219343472794105215863000334357461020399996035523617590425780326517998875885716340641163548393758450793846856671522575704157769368939859343532333290977132998632895831080966532331717632762979592437398051466278661752459445815533662179402296886315151390173000975134839132360261547097731006310682701131771960389973291084767737003871907394391143488754850339558841933130399481610053405927808003954992251328870087178374157177526695881801122713520400006671788341500390267105877868573039089786768596791507342236250395852938239789895084835759454122249232480236915688750556336665586301014134825604191533637840068885009546442842794834308994848737697044961126613396679190466624900503925940228701195868806045835690234235886421379749524925433585592252201810079317320604629260954499003605175393236831952714003006912299905611621747057628352520772148863378894030218471582234219456260404566725520154564441343656110136457962054267573722229531258918565307261708370887733047192127321092227702895130780264159628244656173015425614999961464323466441525960552997128413262848444583709946805397734120592322558347791090476484481341459979761856992422370613099702836211430867797568961345117521876724295478263553123658386317589170415702393560166331133824892837098446328215056953008834221142041502603865589525686926297247220987011688747782944408545489396005419561971509334659743342310922885674740856713344006419412009005367781251256858927017544061388352252245687315113602148327772471275146607058950032046636544018154764465451599647879033625006075976578422690234837857686685267818740723106912099937021799271105815309537589421896949849871322183920786420447786080736997207593696724624401427734734217095384346812382582421011883849844310402246162393184630744988820581748168374559147267923304798032080975906283441291495909753953037181550435341498151773018589101148008632287484110181656771719710170580012684812088610067138545063793713802416616433200697617793280726365766494389324854706093619485823796804735691971324743998142086268276811272136973469885782391975789245365726006119902936238741713169345293702321560490259127728442200271892342657863325719673843508839704657965812280132765490711678657827933108976612668125653699697323824755899639866811812900403313592900323820624062678544457694109654194870136665797502040849968017159476339417333582456414758626081447351023259169352491048338784404702677188869687013177357999423952766125440403069094975960737051238205667315389558544523209354935603966037190364940048373345739646748279016929306560896895475803731722156838901088200162897445216036354670685345688632756838912263425407915731156058716669224145869273906891201539829757425553514509159420636611258270602520881779311033289330244633788533664161432411856687158436436001668036494928372589084619962871872792266070316727726578265547127848098766155701822018795478258047987061034797589161577238202188515367140877128199786918463459935813458704170584662745713656082257636595527590823961275539181227838571942229468573380706106828923054762932731552332549286007796700938373125260505800699174347061388130362710622618677926719568663907549562626144923373678933147373091517004103092459419056748345385758558662220524874906162527111125698978020301165207971911728026211137819582013278663468898512293186835615129198610839773032380831237809273348727219146776366065615765876287399523147213962942284252669795257167312657021309396997501166976607217961492122434758245087927350280237938243392866965766492790597366245607210652772051715709417769290752974333965902858453435987936365529121335935536729624445177761054005025526819121555425351687095663699955447538956707527621845762286713152249135052156587187807671934278251467409955834658975357409527177530696630076295045280634264971072153178819378151974762158510022993265418742716372243720842958265119792986013731595833733944011124991006808694874865671736055335412654645484289552711735036919198423579005907722265004742709141053229488012114693169245782175085504010942821843280781784957278880304346671794956725272705075025664601997928019264816860107849750256334818897130057966172259271102287580193253617482057681890172224599305342126316094637916830118743828939759825207897017708773924902818912417200381852926674616915068765341515454268850191031094031549595773404796742831052230784146947425204093094073572735014947335429214546470097025385325562381310487267566782139022770027185313058006748463226744946128822440752997203702955403757743599312924341441960323871659356944471056817108698865147427341788353812483486910178586034875989332900745140870703667450425419172524987914614379238773996851403903497985251039805610582947491557095288018334707022749211584659626445202247928942778869284686023068969671443498171236389327522891111535855301805908693387438337559240531736735193257536623069805057355965677235286394290348005772270882538191423561670460360578414905891772453443497630731350412151207251998857217024823624482586140915852304677073514185484163691189042678265110519565988076362087733074475163220658743268342725788618643685452099110435281422467440623367920422978687435495794256900610852766892592760816939841014788288143116145255776413440627218969668434421006038607368440897110865481923638884029700964738308541995395060964754562453085332313628224998097358811967869189729612433876966302406620540101782578128317032567384005984827372452120660641088641911753942317226543392621520113983165873586803152110674928176399774874443160153689803383020151929482765977945185364850357511529599901378824582599711191170929240292566235434625227582777354047917851700228739622550988512333924603118527792261559063465639422524154948843274897391955844157663528198129981214455948590272280329887338402932963788499948017973142984648744506197950149278162587939413568912595237303896004598369553762803928394435568612364687292711588181424333627550507217715198486917013697631335087523266896217893981018752515724864027559041533776135446560698261750646552735963543194382163594186049427558270606245006189138062798475561035473688865880636592350526879685967565962320698842696348420304116610637744822856269983373755884537863891583591320296008881362866306861171488891661228072137375363834510408268166647068067305583052258538939050293726747419313726886291759627331200970359171018874293744165710433657297989402904377884665494291985822559665893942326635063580495856132080629184789860454212126171917488557975303854962917613888717725393247446514967356902540672734205162615290366608779385734267130210152178182380058568476843361319181409459011340612798841817572391448551920448228535862425042207166273918360538665636043160346813903870847743589720043825230235406015074220423860987232769567434500612714829927852625913046760317981449864148648901400433099853647963297403017324805902617583666059260163765650820025534992663654318229044307670568262383268827577809969479720105529767863233430054241532369835340887168211700299551213971396851587828677910297715698221701466372181978039915656531741428224865860641828917647493328178478131705029360980352421303791683113666296670029481553676808861964761719279013262976316328053868765957218969506956223748839257596092916507109777030771144467136021084302856041106364476243788190994637235079032496500145705020306335824297120583550739229290010824406420315597108495331803440337807134811834187048577077333136139555047364980978562957740801843816815446372264566259146101826192743575525692686897592617769461511323997232897076378490526543443778814830427333142929536637496115280403919774409171052313658284410806050333313187956240612833177772652620749569079280882720709449148043092284522601140175969086718552073093924115665220702426784041854864405509218910126965298436268790782592335166746321104241368932475871739415574768019163857501359528998615532029624495328287493846914878239450747968812271665875586804876858806650519841686528152491758872513502986723098682451207181955370026940189720174644181737081624158314858497496478520284947473123986639996022759436522382698655976316599864738470662405687070404104107204401775395508161795853563275761220778855626927514771703119834885663105679028462335032677808698765250552582139385561856240824558662831769819725622602216764086155223493513459503508221824048698049422921579376371317690685588362189153822339235575115361098747206589591259076548418595847611342031144511709416281470350456512244999678382831869411783058945660707935862994526301728660547465993910065851031303819226937040570378166570355101375808170099739329727077291238154612174962499401387601234566264921279943555456055443201389999055842492022588347825544446308855832865272320265015801237776390817782002808637213150585390572736048862904779957455161134913040924943542348232735287263062559585271387088034843190275189780387027676794670475073357331997385211535802113099909747609305844851518538226415057835077649752703599069925955752058664947847627624469663704420417777902518466200562288963009662035975241251865389402939827980577600468158611606578454987949461759147917250216433263477496827571585359369793785586412642272460151811012599515294372366004909184172560060470406739133234223256641054598346655589325325240354792816929578205439952174840321521673527860440100924919840646413281581387254262736992729775702715919828373248075050174246615238620344281278142433772053905052743416547155134704689480203673551743261310532350297036462383787747532065561054118131079104938734670462983115596584031298967832765536563073635074055978300178782108613636602238581552024290891746731578137146922063525428196885919345695254882061881840191437473355292636951572308243539268310397045519287705164849862826076954571304673443150877211072886338405364828758281646107455445432780305104216813741470253433809223292565609748795142029599571881152692115041254694365478922046458646681068287080263117178125472246853375937489995572712472872015718066157174010419334852699829191303178348905638737882888154536243305876425839101004734479418908005584369921856926124623724068908761106011629230099210408139640436198877475826818541237771311253127793071694743779547472699696721012998096814184167158226454548516018737573669354850282603655333015712620954219012255330106477044002789514144749434750858514832949570518149846038869285567593713535176353706917428300437973575392007891697568193290932506883406988597751928740621388317150788186990147847676432041845949354596283496580106916555113205455156569259247513277441580558345104980009460280891930399059534193937696016811281212012480151974514001916265776657444050134398398174899221719542731872653428110147910572558237975466215678439686240014165487753599200004989168995690995811962056204642171329654302063972472517952715859367895659889411023150944959394623108917956844994125337534058162213445762360109428696215163081581004927518408055829945224796167886437543314981387683724696771704024907444456593041456634623647742417033916846889636956882878660495115414201678384381842279287236627833889856957765179277784015408788356892091149708681747114008941044034598433659889029503451361501814168346051302912467980957733212765101159575387277034272679166964923521611390417887321129470595786749583455194728366203278721370197914770940616661645344930933413074434463902943938369847557030495324132190085879817801674651242123473006073363242595396241683185270551901770316657507809052657301743644769066300877275935282861468449108259148506020177342838870400550819253008908262666292806686296654068130993308131126566903813152557039057653324252980074476087279739284036477643323416330350070322947667269394988967133955741939368391012193064337921690851294829241560535809886174358765251349265810501939189247608989153033171327174906833801130680082281444881368108437953117221651260814736315077391499991689638058233078384289522850809893657023427883493616055856582165549023832859016769009383523149841279469165532595917137410092494858559431984847759839634183043211039609146388228134721064499274747897619762425605728479555528137524161960005682716516327304466281334638379364061365789941212357517948370180918221287142190881351787738448345358435983276915771124878608921523550198524529205580702688870452150894114201184443905700359288592187039619649916048741833635202820474837261028269442603839494190601789348430670287983707846349935967670750435264273681129950648638239816428294639555434396551834469728760416683690820520296526394506185987943782974299809265247816612297211308333274953617898814587625877627859083653337983958227529716442389813423094178848372569002387093464304674880351381811413530516678507584305788742955549561866087246922009997150640675064755647326107147724428077130290137654790135738866125873773775200342121218127147719720000776729603435773224205082551500080443273786964456273095147931089143390534080800235775776610263865641785690249850535266641031164076094431236536885990226263445578666868364357161479567789120798103092784547277502154003095398395195004517074749776122489026528280463912286000460282353183119265315831373172971349610500964554095389540291876572138684448116211336114990650942287527265734653710784412992527602120728775294875108318260764981351513781800908361245081892515861195727334985776268795399247754252186418395672071835854621138399518790368478759336749213074967708972566170020765734869340680419346211823846045041059506094512300045978725735256899333793344560959602151000261438696703908361173117042265876125772777952773659898883522257079217006614423395416134790483043958305421515731838794719450397072559644273010686734687526651630993389384825294358648563415116888764057862470339194490424261439044635113806430794205849679755868781276010767346347741753038148880269997282418794058973010350292588713827325362211798930761965614077428930341076195594381233489563610551218700199421706574001176292029423493843292665317328867145029949341173433354403486727825104851376145825970650780355284232410699904956592769957591279934460160428961590517812540522756801991513860384982861071845386076996881297684629991808164590063643248585528910821946827689529335246401981586453415159653581680138849345365580512035304774346609562867936540368494435351223255346126647047797829106978666310360187669405610421716339585332741777002527388168512411804674960734857780508821194415877614809790319549585132867717537858226984837536439010022254541508043438175074741281725178875946536358460674994721371420518354540153123501714106833416823916385053492253286761321586039089997866021092244634377816198952587472630474610985104059774715955159637335457348627997490353558477090269033479768563233974349765785266113523949389818492850351860944123309085931710213383166371558968968087373621744719435583262783653196715363907091791446009282153061336922145021185039269434553871219992324926229926218690616876397383105589704471525973109926499993416255765936572865640489468180068342916740790850843634647314674919322549349671579268710937299131249240533043605000755582127388694740691099994598911410456187647257065313223661700127393596608083585836264468709536891028496439834490826501888275410757180545396180222968360613045970636672669928002403162947934561728481194571630872629212705374124167937810332962359365757064877825191577269199566070223271914848839602347997783306615696880749996129258704236079082826110951007996413460296017792187379917601726022588371831583407134056091840787626402665748607086461116236757467939756493266619407973468481891633177637181817547769796064398132992941112379676281704346106555393567304714548781159239620627387517901889181636451306458543524924907320215479279876346990017430018975257794576722516148045244601603240533285608369395411506400443078836651261400702477523244564218477856198655335470590530727945556414064309874389130012523957460618290291229175451711965745454607811033274258788107631833910393778656123086034513007968712326893252311580736861056042985606051946497228066831765585448122581057398383177781415315417461952973554930703225325356738271385089624302265874772774139473594845429448688272398866952124133509052470940376853403218031803129432120299717762024531866710601798952094010290605100328888052660958137764461766853193805827080720500319411934439373050774380293196085107575600975845540596052254285028594909297117418309593835136192316398541767694744625679382937896802754924282929405304873972718123250741476260580364522453730273593001055236912405194365138991981492022321025431199366033979238585588285560657802670977513217942656692822643281267921464627450993982816959470288027652367592496245176923796196489598287534731200296856830164618149337358222317637908174875962193397679494191577059719634980649666634266823416301588114271223014528387208093616624960510624343643387748931527940434544252052797471891073090450225553001701939461509166696408867015237316323034046276643331389414702171179560957272785380653480055116034879509798117273598117282499037075388280082524978860060679434428911299079633665980936632824162746764216998681392251250637740146215780728017748076775284147128722645430965768268465360647421798317765901775337961650762857575262956608603231793876660331815878097496787144682335367401490216867952603384115346821640955042023086453605337311027178599765263842351816862353273849909108577848347971135637754381396547670785017367927200146171732205190056537741239030661906138437243417949394121777912225924839162834432432071578499967190765008355034750833731770293140456769923542574208324358954969611935189230579088955921975781633196938768914547012609385197723110387514589216476586078507000430117132779853841825475206703399074515556790740235093583264470414467790835165305536111544168284748348813758231834842990015642087559174110200001931509519328763579843503881564243110430821370472753942039096776979126531171781863077645967017517504011496505239036312494026940891890169913478056558413284313039565354969183096541280061184796943735193477611052423434038852920126348398105872176672515984473445752193864225884399698816531423613632118748417096324178048930565928302559301119323257363680905150158699562034712801912877188481121844945317790594251497708715246561463978846634037472108685459410039489286829328361810253713375470980938263951587234337332613266988149220848063628492040732877786754200199335247851696156055601596661127037723597961495312089156955221578205100942088306763778913723094673797478205293944634013634093094562902168155869452862141441761588678773361345965814930221287006472094713821568657846503185264938641809431084496272697271932023630555856169378749499328182648563089313348705854124888033500897624260278824440791458101243989778650157693417273993178990775157822094910804534734835641153055392595948258886128766893389815471311110369875918331751288926101594678834439955202549722979152056535663216083950567216818120234880452944742771273179072585653091421929882615829094382257333680557111288763642843767353182252246608020727455367517852778563278665165609554513197473003660031981723306196602021991407686977094921297139605091700584005108472189465715488838396310446003521233523510651795383980507897760529473573926648644649310969711334594134221016182743803722328817397035332454433232643944983134511881117313554817484667837216455076339172518081657705958923409785601869867266246308045561055882077137870827230590713017758785622939494823853521841546823040649440517481379084252721882495657669840259880322168662466041631233314290993302223225885679496345703044273174810792012782525180154371447226023152545424583734102836233929692158162352625690521518526031832046855893174926690701280338946359045564035434794168036979545589251559447370414448726757850833070090182465770309388770952653559061361860494467370068629540073065246665921338681216173820547808311182700856825264373957285553415645069870063959938127389791531154256944059556632755346116602379969698713143230300085020990182192218382680863815821617253116873792135983342388457884062341908171931976597431441380618879640093576473261105159126237773957805278792769964868718616375516535178000641827398079185463850707904260639920650732872597522348974054989102151256744886023926259107490456661873926863477545853767779849894683614961634853254749891259947576803410352312910267711422896331712532350676236050657950250864021497076980706285364133012867436428707313212756026578186102649005560722471673004435336712942348065617356300721524129947022656075759599132420923558026870129214816992535323914870548485739944591989332194610026433727422230394466150567618415031383135648385761406494516177467476963224704375931951202038245406863017987660869589159733145695917754942801875084386524119069566456236062296120048830888950652320784058996868215863366795973781079382142421857365056454671217446403679895154604565387470709269738980589526567398680776982935622190330450419007673829130972221610000891583213511219918071890506854923933110283623232611032813103163344549334531988932272985302086842958110882758739979149496345914187914110406253684596520749051936914153380667275413333624407232634664567856272148607565322246973484791691889457071515162870209421608220048354680876623861285956184143149173711874316014354164525414887671076905092082911451324790610036849907044812621603666119786891235495318024435040854029238121644599096823618282507645007863005895407077485282871445799740049195158357236766708930093489900501096762934311702805967531870119337294948700382311242048596255706629517860544724914247386068361094728465737335784752984221087935384622747577600228410302700208655753864518748514578199655160032967928856938508989811861801146309295810216279118443813128498743935214462083619003777898421271072767939238105793550090797747083991727462097432942764376350479997655106022362672520078352795447124349460594373024254999854830192140835492198898318927383315257594720148475749551117553781315985409168768384524489089311566933858211384751706986514283323040044278743599541032058990111091231261057082813253635098360549125654927617107223393672707128676551621549161311644591641938935964347413110764258928592603605244122328627786898239421791152924577851863623646817033414033094674614168504786645404095162581060326358806738812475914746541629653968672958038127886740026619391576027284798865856439803849109842626226177753739641191485911514860576387036159806464507993667472016102172970215493332206131664479203219218096292789949841457183089510801054547523440603725467855810119076811141203294208970169179217381981912407683870672450212251284818337300513994901184978636042795316908121871973604662731277382882482462494455881816886592069340794213829100262396705640154139951667322628073189471243555472688824393408458551205739279298495305626980555083555268774969183963327309678878416644012733875870428142789054374688647646592885775163723617737124821610063159174315391149335909650464341117922251704308800678800283229820843015251082502481679398085826186443415789799132595568802730188023868632856238288506626507005712676280022184001655703092940367723689635804248922723481515980995501756533563006505644497725426787423217551897070656462035970765762268013038267662152905756845024724545055064917243805076278289714042091547389411680555481591841600717557803549491039572413291386133735861982096749374846977343189003771297014004496916317768031864051471667977682389844255560338023706149557222166843706578073281854428381342043763707775519247198439401358900412263317731438674832473694879193512376661324805559521380351660002433391061629859595253015184266228684775092183961290195626751525120238686050919226819739424308348376027863491197511387439900918341245054112292093251707074372783585954188861767215499482984109161974047934075916664371022052080018445133013771084270368039732822334821379031974115006682697074633866234771834327941284183418361758405594066464602842740550538417004369421539405905181482612863982800860467653832600534500670768363843735305733788050252735931087333728508959526718712867890944279458965262530908942047951288515506666710127322927724090201392644757416475948321630212618922081111709953281369996782782813943515267262809382117487671126867884254170287403808128567915458168359724687074863549676836568907795989823925244609570166548110283099864734746551526594852355442774963104660256552989571945652130781989959749343363937240035727401360137786700462673321925176805444507303706454280299172613566661478627654860773316886312993688434700166922524881587366487551788042917686615008051523319948794430062334615301218496773013834764320716165395885122373275274558045096137095418656936215928023090347799205169395744967328407633795276540424346976426121326529740246233294865704632006113565996535049067803500513842293358333067683864183635391232070511735660482500276440176131388934938587343871674450158922252523273307819053632352944805079900130105764510811803263857863906439180192608216599018406539386466870024101840388876360297064484364762633821830327641337373898560910224807280246952184068933695123853012537012318412935333831735868546602183216181142446995657108810844535675457657970466396065967000041185919421133647988318258331808259042974560625883145003115950671731780758360753210292672538197141863924011640614419536030877101403846764651204658425437068903158393321931599736801341580309156273355722534427896093429550951347333040425191888616690526624432363009394896871141782434368364688712192796443639932378961488412358056132303048814678291613962227104864657001457489709292862941635362553233839145673857072426289154850936924914757496437967071231360252783525669759605619993334503093938904428776495840946829128654134882066093906251773914867201357854263300531935383757179135880075453768297888098786700886901650091059840849254420989302325030469438888003662806997998160756000820039642378945087730020703981015467002409735676276154356800510135670872822085831951465878059278696705932522659954969127146876121450735049660197320543271974628599167815447305186387664273431046500434237992533252232831813318280276919098308463333569548107778175772127678207095381657881007086383863816143283504888059943870201167817982171110324757081074455262979384618162638913506789470422881382133355739066079413094783020548576752383005240508040303276909155007843024838541441510670313471266631259874897422198440242249044668434037227721048840382431084020696332653231213629124072620103534380629689274172793769761639438360697584299579836951924954521509655466000275079118620782585116211459893171631114504481690019675557695882623016521545883630509312493585021800355925661384159594146443432953707035825122536615093250978140915534211111429063128113051194842497611757111832451650469193355668424499134784494860854047881586048162486140393137822870844842123723322765159841382094522985492187804056277144284083506924871165973230910595046454264458672949596133995028353088657066777331895612792313327902578990137934504206237356199747271726495656180718867290511063557908906361136200332936412054384944732060007603551491112898345673019999055497209572596880781488342466756396271791353606242639550018614035797939094084010391273403624988724739901254773941856782992128498165500483545495529682733851849569359707567424678613705704873722599401726072014313107620698198281443187331069626505590004213317587154267818017981437779369476552419166543488131788982330454633627796498729581275514845991733525796990787572418417065793502068499670268750563788302424779510992056659942920178279309655839340397217471915203159172328195200982536204079462512692334647985620867812811802736956856328640089817678751773319350342024115024232141586943155248497285671093024993973675362267006861665605199561768395788264757455475121182727749303406659181145041406184659062265152373699994043811674704082037635512864687678280479519794723688150959803572694747573575663859142161373239143352450181976664260057034022642284480402699613876273859905168152935239912539945527610009062327424030206887520685981928055233701801720160829677028219368026904666346718417944339870610436953763927807780757127191970066561681051734431216492845009744060368714965302497071427171434701982974615503125637557612510287244172305507787923271755889717485492342658036130624978768186747908677262700957085132878631752671769212040371111818892956046317783618475615110394721332040514645424205969387342234685450988145815668234064576581751968936986641994162192456411047938030168462302588027013792078878097250043484538450301327212688966135339263448336202053569404461820806392956134171304589734955957908577500368136404289328296829791020171328053631395823143189537729043527274859253006259083112064585633167392481681509637919791409424330282548170224244028592775456687413594386172118438551671663241923844040132216192176888566946133670437049893208288893902112259721994744565420365592939619224400635120342210679910733072991134709933734397340115356048651422432576695557047972754187702548256091980229447372598474704563807246159656284686308194911763788684219509336606740209041751770036595781876235732007017172406539708432092447300194442576938642808657915705649275771926289619418211686905180332786024796135383817142048215572850782694175792023564870009338303393609292598085514747891517326827850121644086420629126591564255119548495843977315005493184388987841528556843890707558034740426972475146986794583569061034663557983275973573799857137087176422712219086058270103841183444966004481182637275518587613611587611453893776498740626642232358440062804950837359175974753541104408148661345060387795080500883611115049349939829837313659046716056161537766002693944665110995021879624916984670945726211816493314930127785860792248734396877268053930257233714407198290171583950207538254577556313453366667846727525816027949408180599349155051987836994041462687352897139431297089956256085888281192149588100613784971823533694009534422097028815708960691268610663558035824573003693206401323424537620649197861360957258779966637453387741667832085813773738021250278087666460926960618659047693782103037181177707181607979926123696953336517240520557280878208299351971197774316584875505767340697504477937789009088621384112997462569316100324431445896186546472213512582947053347689719448786575384542979773892003786307232281610398583458217510907464344233415033826312462633818697256626292967192770603331084514251186718980867403808968312505767532541802351284858569897759641301015441806952187022454986531970179036453591827404522648542519749376793585374024668629016926307831477011210445640108138472673523982514673248118210568442024017033247020551915573476212982851748964963611847176441149151256961141007552870166656512113115357008533957352580918061712840935797164219647574776879674961394032423954419504641637933840421554881349267060756311293427650769137017034055009214742383971375872108472830397455509023830631790212230195654256364296729554806570759893559874916778997908022842839406277122036747357729125168676016110090667758508676178665984862121428983505887624591747785081411132231572887365224580164318033092142294441071799412101417593683976057652895929891560043337550906134031084873264345112836710862369818252043735471586247543232931845438725303057804824407469353830570272964001805033804581329369795924729541163217261059849084292430519799730500217534588985549881365797800805301888248701290067053015034711379205468525645273349356264749162127567018545534493905638705775770006158835479967521123988927817006624666443474933539635121955602490313533252527689912624167132187499872410176079636702724540563422690016645362571266591504568522233852176730569147674960011721939553144281607882326738971570558957562114740462494335642851713952390140590797275106220755316349896138991347122943705428401605438879545129357228479202384139849710985425379014791201787725208615617838206668855933108578707229663964601365553918528778048493099345938169475646561144908181533224712742398453156522557895315783069636088513050567774925900812529047810053560765393139039247894075115955456850819640946811407426565384338450887111814859050942893765958605435998403836129210930556792964854887625080128737037227562018380598682211339165536793075069287523396336467390026079272452031738601673484361993190522408381067781356673080673132706223844804699449135253619874305081231954768792962136323876184109160335106526067566096293274568374049631612943591944996180188657276793817404430495209190709722553898496354684790312940835204942372878092708427426138098879714960628883021284633722343886614634720269875631820193114770224700168459370643470243111188933819067845783301567138035286942124595018662221567097377583145184590687117530962409467075168607664726852231155205187384206990253575641760592327886866109867951148491975403299092418929647581350483064584503691360764216760934204034165658152456129880288125508947573970064685579802113262596525858672698191783481435665695093868878935929345582145849017145911314862783450461062604994514575064544649136977577400254845250124593434898057990360650470594695385637023731464241462820663732949456914862436635312737954322736273073545776480948023032257606747974587223997910037001517095908047057872983792604676609221536973706085457831168386823845553108771233227320289665927235123099575892757255294553201062950203496883736427728792714289822433510333768496965132547233287328402285043987775537089119211769234209450876371868228241422038792916652365151649671870027728722375148869826509112166465217259008231983014572529912553869321281756509341027686749472788582555868635964723243602292746966080113588737242159058257952811641574283925781333422479549021606904268640874970544316803623070022403021298675036395132230856040777977907487658314863683977990921947623748525264330946618912888313826737553136750747740182271782981045294775563067899355991281831196698436285514290175339463943626896764000787379113597315674574924514444340514777503252161465861654058440698206359062146031935371874018861385725840000008237408935958517578203792836439494465234506358511015879327171622579877303049968970290616196718215196038389875101673687505198169897140596846755169303613024966108992975520868427108168102728157630675182989098596847639050247093942385868287779936670090313966513989916066732435828574361441886681755233657092820153726951563183879069057824043679587607716602168423247682586043066688873948441254264524307116663709137825123662044962696122799496405044727910795815444056283161709104664451400930316118822325048791702987383760525724793027773804602857979676833727557833316787340150014005321256751035720039254696365858176999479005762253589215375360819214851815905772329148653223750207023274251752888927288942715321908112701874843484806140269064922378200104654253922892893538764981387134642715424421334023492307522304903952257599827203149987500586102965556250395868747896147461416460852594125374470450248258338072238511417661726397950695320100007777287575599359085560460610393183865276545033198567540257093812097319889230374692154933299586267720995923884094032734614562055690178472423706562644565190824410425439561405718139933603660848890339298706231715649482581612128285128132596014485402784914901021666158493346772691071566015608048078790227488195765195660452041748075656453271538483263424433255692306047641313013682342325254277546495617501958934059862493305034007294951312915726113552986839674116851911256694170640427215944444197353521942118495655150654892957052692791921428315063527222833735598124712390068342695199981088812682750035316461282053022605568643467396612450420525674162610005144990479340317379577948209901939085378956406498093767533459693202389703921695866679472193050677844247634469591636881842857858319261950913333494673366694095063218558728099824182787834998140920205284546748182088822213707650791778588769654014853124179025242926680980822183665767346453536999170737947764942155421014493166920402798097852590560359799568531176571502861152756639447841983411506815413549997912486546722648437158409307048340810120062146616829620572481482816399203120831184405606502778374385679777815117127009459220444709082333981629634030781392278370259751508027252983187267856398395222102996464097384450411638106576622090702734622383472213462942293581816997718335824414699433070152618724021065321324999177203825920286959496160836403503812708572076311865013967083552476468577773317200701555610919326914283891082340902326950618508794971621762079934298852705398396557272059718055649084043645811908815079823627119109179480459295206458248032147303244682691828740666842113446014329152937433006142244750204762593453960528505083839335615837786657431567492402976854326598993686047604540791705700706118321429194056220353306978772207114433116282185100893812019773179249726489851666129527077720484740514843059849820230383590166693125667966210487775393203657168533782657747948845826749420692810616379732593633285911526045484564452357197947625884514462818269194043494729507798767137889352745348437345633635080565651521642557112019653492120814965755988608566773706258493176175682527134167230498105389613266934755824003926103562769569534766505284814591006370248311247880540975517403198726601131353417727785799645182750044138954899421674537027007021642924207707655965219303008390645339167234943464964330538309606742159483089876844274715391662021242754560479343864070918180776253438838107623074458112783512467052810268446632422615286660555261506923700830637880374501824705248573090764662166732197397146585373521090549392757894195082904791164793916558327676742784058012942142766003220734986995137672698205734939406320260809868014117697306289845285167456337612133095825500394539278331196896164881668995559127011890482254156686549818505200553205013518131663100533894567684594028987793673112411829081106457213664018574479370173159743146258695540165470433914082407760108448167217292584482055159201674938480538754478210452124498172245930139525816665088309664052184998113851904296202351066734248196207995708817554279625557811677330484216977164681838240530596620490411357074845529857653794318333318047674111211520554545863239660319991935506398823825463313216847189961568447840995769058534850525188406386113545887425904694446930301708205691263476276203895162474238781629311639033893928849277199240758487373831419485320869553039728547265976078862422487460309787442123431998885125179581980647211053822791944411498983595637205080667810471336520274676022434064255290310909884969313208996248268012625335745191234175985615154177091788486812633007734477404138087042560244436516129000832783607922576600202226329957932477951121024944894120169899229411551293786714003009670366899605011407409781107199867627363135958961874055367489923586830486924127549462538278962010693798080426938378834454955897834766125281772318380471708532840856580623856821543320224475609798524964514331455397542586987747712000448195205701674246373585243442590791770488609023581999414561101153169141968746204507564380530796289151467538902030246072466616205712435684798223196014814624790860486269812170373641643233208394842717967706046437610536285373892001381632973619971482748070492063208081188491476232191649532072658420134046615820518524393352222153352706099508265957503544200706681914379476270167492782822706982543789607093593970866728024898501855935145399651318442091912944509701848367979106148914924205150702453263689870388070304002037967466680625910274954153866309935322301722125172551240328032685328503553416064479054891380082045021581674225074304869485588051961553306285700385302334959672797324779758541057883135516782121667176761935135583336836647117392934575416333006907502802312192539275038402086344283491127098057011672624812318722976009951016123093973288352747346899621986127849868742215054395180603197004972496381730949819440964767893572921985531568078395320698627282566324617397738909898679145799721199311528462961771321661455139348853357334581202119290761554160572938449453571104693732638430254581131409478553481564377542717275696794058812328561649764562062546722618845088330828094607075169389783338175220521419715270963268482117744255652766323783987471523539311947368273734563616830795653200607136150488693028697032437486113946556517255928087261560079681700389560164960786830824243773660040358131104795382962932860115697662321822056220142438892146669123817273789460295065199045042609824211592473786355945391380927988903574169889831908714284968537522887575407355324167293510795102574436533492223601180881783708283124147065987372313959344080103423973362082486352989301546238245624538172391598366073157584448470447773498608720575359849190804027078104629164375221679857511345928312131067653597144166954877020024434291787096168475474190745254194394405967298926876450225040479520995602630762593466433797744364874833223051445742618643648868828748145129014113183305769888789821139295502631729656866791456134963532050083278469197534819163038419744227419471237419954210188565891209743679980707363044686228348650626217639196347587702131601756742807305848542184370002813292296185638657379363618931635508040535807597087922653514214804469384473890128632395139738497786132490764530906776903021138062305677679196153591020379386708641793273342157896654429210968671745817896672009966471578445848965297589941000749581530908313020309362694086307526321527119264925658104696464776098638262816918440429644767271112257608458518574685767234317990702549122611390289804582801284808250520239600087450372024840458158239478162822412879633194048689042864554706281456085331357203851607745249606505063924632931292273323366310078119514735374002320711329166445669384491163460064519775419850652801266525883113022454508803368494636874574154896513045311472625880869723425875082215789365836483157671767324073816176306810506942611501836568379986517201898167682851749365472712701144098096174965330391437342266192039487391850510041265138786868183555041850891074672596718482905973111744063894896999459548385436208176418035573968514688331871849110751316076469923225353057299065207748297526693682615467784976911137813805351837736539604264199338082993561849685915252937545813796602150366874979799786277153757936671432074738195815585884049231695260032885138534057822812690937993304033629954166634860710093672484531077809914205672659622276685272954443519772287461802434268016807307711168570588654468705607040542256836432378548267491273853484128390647739885771828802949883647149014360515400909393353174947845039151996889399415780812542759776892646924837529865944261204177677832394445099414087715099642173784204800276849082004093102334938787564022559198269317971213743565102888426147095934193364993288225882824384375581996079369970373377389114987618339205401522830517037776198381599656007452629226489506222407403303319158448116317525565609048791611595846126302917214067118281986106969355890462260039524490947397430543744353158118553742450418281328888913929496134958835435763107688614824440540125336963041803438440927294710587666679108556258654909025574045324760154396755572827463450203388619295191615154362812222926669557429275248507855385648307390400491233413002782524850631856031703912879782469539594837067911842539986953634045200882017369159446541942476156267673810888147066323421416287573891488568228977714804333025870286094463640492125069301360760402393346761436200837227141683487458115803289488598240062601889707240772281409465931116347842412907775887694469477435679040719347239514370300560894852624670040040293596389118256660347882286016472340157590582000305319283453906742215412023487877149638185660757898852402812637247653164644929365543865078121724299262484350561671995096781700229265314313749813402715156134870491557329810169309013307139389950250415900257279946753282214248867675485850914272668791105728866058294569990211220997893799762544380110393111608451992299347100352653712714856082554119759754312236413672344146450248282021078863472386745414957723826995718216831699858991422390994886905285982394841477009623008824065613440985167742912706694053250988719367351371447477197539540753334429658066257582589668265462935659389128614897904474263264248102652020127860231245599862547407190459701160033158419935127500896524187872805271475410470447830586782968200212128385699662451153977543633205724504428849346853975289461700247925784876563560258826935031952926901847214176123180884979599200161247609510682360115407680102741951671529183967393280586755641372119021189310559043725570513650072213509737415517653993609384088469709444159086665054258825735420153620372525094989759957021766856343104576494574150032814621774298237211737180922385098755810183048287725193797460774159612135562639569052999465700739833211296200652262475790829059301019961767747471956612639831773239350042263307729629102076701844642226817376900558185243752058926002742121340391670972780569333169963709551729182562756687243771978093458949242220838386801374621129746659583508191509761449546413059890303163911657064697188512891266574060146482864151733436747544974810719331953672367729998137093506383717670119333872155695715509707326190062579924750803300511669595346516975822431152123814145561301315095758475754876433945734969412251141185478556070389220419849800013582771275751413945459468491584337426896966771867644487883144532757951173681346199048988297276860944042783930071167739295203312564420637189619149040316604061822407060032396141397186764239172503913651177492700514254465563736414630471808756109063934180100245275176508408851263282622841955840696065622087732188829296060630593055042931645674812726973739737475173067270916614566505508826604860970369458308661102837784644381962084469249472564391755822173526953582700923219394179678949702269645698930970591215277984800677662516049378345314970349177770867457316422796223551738430646213682006090509153322966706563054512228026282395641109498998594079023563824129983542033278049270130640031297016756429176467384514950780632432667222713735375109783203998857361369799674893268307957812287865959956827221877370905304236449688585347329318649589465286375951681855136538422281897134543261806724879552284869584652256969170542955284766605149200924650407868574312431400020761145713416082119595481209514916589175055244296365798704057534160565477567299471092888506208085270167617888738501908106326409176545877774700197621868135072956666572596988771987812133139761646254793681387828150439616937234059083278164614046912139581443955869362324304843454272129845752884796620000654747228452744015371537950795751834109921655625238849151622218691540110245560890217754414034158508209715795168089307427564025828852854462025783149915507243240642564729630768945514192116480084025599528319564776730231194359486234036521360396529959712152085423771718303074459893306711462975127539629299807085807675032773271157129082863306554406816891907142641352289167783346754040045200401147389148839138643208796491824330362391511370574082629628584481489155280643712419764176291748439065167133383975023956075454960801826431128916788394931343961412138553817951291845288978653201027867997702715050840512904596929907577949022736404882726468614086616652825520295043951738445796562657066083349481234576570546846344624877999760383079708095855579102252128037910806001423187093664205716223579617812569463606724481471592677493679231254563256157920295455972095102797647130974037475256412868034860665827848426690449131009734103133371273988248765795133848866572916954422785186158189689128271553100177783601387654082264268958393488417262215950363826281435438781632265654782048883333438991707458947778292039152155703639101476730392663194292723542277485853286627804020402855100335812094861300620817812636131086319352146766787531803998841460988780414161957803922198032178345735417232280157624519355802165003448907118967608412135312409405752295356330243272833772321040707932035597194912793229523317199257279325459081758856485903067528303332703496080675684520164263978056761503420539440972891774702450229005071453944628171055985229655797266888067707378821444141780778226516455328540464324058365680798296337730193035242419139454029742943217324279981278963040104893057976434558281545750069599834704838434029739995197700811364043000356838517256223331165693626533294953834830612649553640204064188083820018198847127815912291446107800091230290404217410624568666652973791173098745360078644233636992085135575372603000851799043104448412328253564420032617707392239395938359599945165715381906427350852984091164832737173118809725896438111674490960440985069714846716870116969869463017810385580087268007016091253949305036470027656284705440502981350719867862508051524495331846673711990064724124555133966969598637250179555767575525300078448125488436386678002255132133596573912761158123246565241513388004131932796624677596459212906078199257707959236851898661055804533447332967708628658515717964855633662296149411123802884123305535464722265582530746752872605577240749747390186092547514830970316845922776336392593093648177285303537532987211071063320906512025988992464226124546977258615902785171078218156146637383672662713323463490532520720713863778172401554761245993131964387972269171584502771704176010814886546892787996625717865627943719878779228232251713592413491310850869270126369693426143154546917816953089722303127256619126465865769588453719957938375482687823122787223058787393523083979082398376776131945478434035153760222577811415270107511732363045497299706922233672321624023578494303637810229916877013910892939655724325318661300111827891293942362554471067731627673468597533710962037862716483434479000338894592958645199176748941388545316888439277606284165875517999709917476627007939227859905744514172940543528160490894171102772315126003331843570545167665905664057931046899141686509208072866487287587516267300274917176244539376938321353362054770257646180338009243359893188333547171650358660239488025831105952768326059007815212361073075292865543586462525112052836639593700619111758042202124837236525091046530853719319927827013701494574644346668257072865008059307302894614562306349685173714765610585217300188008564132920949564904136320187228354961423194229622526070516636375117082123118487131857991115847069537886655545923953524152761831685507232332670304503126826319671868704061576612382987689083771339398908666375525085691949242480395800981526493877152672165637517204298861083202469803009203325260621018968497338667588812405877714172822496300548381988921095782933738603430737712097051086135251668780740868576972997503862070663045354441814553424297070232577552739207602313530262243480880402825786174504602872642345778401736865649750078119722215812658475042446215150735392784811803686199036470876630265055392871846995812388729581545696054261238577018164235477409830283180546537275221347008238589231702054946044238598418911428097652636622093045782814983723934910078912030964678757108801641588045941722450481039704887893993682435156610542099730610363846700176945428828468335338526674171137519927374218630255791775874967092268801524173273145326009987592897275729509212648155531384640899629604352162577030910435995858999369399859805770879776415332748342710492538384974142855513139287427457131184249271500186146628070632076597718061434001619785097580557504215437978271237058229264218045506714444345731346695252426663599060996566296993851896739189265915723784902218545612394651040817789159203904223250931874184408902252581213138282253164140566724040046478388952812828644008499753729763813892161493541487596083367524056903141301289201781467788832644824449542057479860450704086469399315774114072794521384976794797499065195751892845186320226272375283109340581009566685917623492331591884526710984809552741505930521228279472265033467517418095949665105816329134524071859365088402756900691902572931518869379114906696826539954569846103828976997095628067863400130832515509409077551328107182603989123410077759790204116775659742506755727505748406167250211689811954325171532511579611561781980422910825054630983192742399662385530892525780402181691736691693335702720383154036511459635560781558562722289599563024845070789095324789543883124796975933399387673756640208308030608380379067378915834204586907993723410108520857946735930733553130250038879481037444796851750302225773404308883494848614986873175345271268523590774864342972890000469746939445764941600350739722387752922173892676589786334295315565916168009895723471609718312459892116206960821974528878084511902598611090882317593558921641049085658331291103804218901499737305927512724891819394210823457635373128210983868191555789496306399604673695893777485210504645103139155326615080423480723177184301389285325915639697660510742913445589395344544714661738912064698754589264357710929022419784697192770926519883500527023212792882454234327051577676345706736459319587463501195730655577639843999991980285384020185088355535523627199401652297095900373397280962665545852423104543020897614278750102974557757916839393001298540908151230444898710385199415375312726576649951866020823871266352586242502165902878417666870580164959992872427238395166042308388057028445098635870449908567039341589305542037030079991446668177613603058129267322854198870339139035934767517717588018529839515123494554627253696847557708686757262395662988495532758732197657663628689464626971161363210965393831104154198528810064168603252837272238979805043107954565666599710499215443680532406575821208292495262650743962644834307628052062332418981516611883627234334275486039944420462312105183999555397079588835478257744731666497426290959769978596545775971031580037553166126838404553433568592762356515980813112382065543678142014704372787701880756306103946795243921004454625334558728154590772030172906660736637343795143286016880984832682769731003650601510685270949977104772141914342157212057916437133316143770385135694233703008674403553649885542041610814611770742745985324750414914053368132956825992741765150922785601083829463859387323422119945891917483952398841913645383978834155745488245315233420288281539655613580425510863933539781051870066308799908742814451756556799431959903593354842642292243276651293210291358814195329984911708479406434659999868801390376066566571057643671419786750983008693325607683365505928850822845401909432085481306106356266613568465792303492626124944324564118768635596755736644760960279088684341018495281715448087478664367843050995982412307204726482987508820107397227700959559807381640435378157415595972408379619164707680219351830859450936401615797448366404557952969238695405515396427536294296954823574164308351635431337516604020570840009426352598139960535642072155275540383904107802673399616665300976714303442374808011768802348647831464787012488477264282969185949280125513358185593200587136075662857349359981008579449993582050197699097120036932622014491432483358775453745440731955825970203699678599825716447287625875376507150290749807728413908115960232940752412834283263355232147575073892006514756162627867314225975406415359001678567327314652174255852874323947190177505135884038732147276171301024704529009635830522872409428537923489584507963492265711134019430500791594247793707159222418729563284058132464549226571754106897085592641019722230225351286494841087589092831930091570726858613051425714399295321027075201659436105052844828263649148048380795905544078965130706577333266139323319743263523765256152240800232804358607099253992413703000901879337139655625876253302089180749984968095022179808219198842204214926183548985643117028533506154029832787387775574947017711004350043675301491842253307880178540270824577301582157180396234593968218329402160614148233767945566074461946231423723736475653517742375408565467752684429934029006579551712623974958951486176564419330854433250698888066142278825421946389088416555815235283170895916643583544492498710520731526734830272601353835410330798720672289196704567736190408520289112101476538015066631924474090395216696201216989101355552789352498330619108851514344832386025737471203483904703291513378898548950510266573106190350042896948651228763853008044971757627089106651524856298519170439589180434699392118578653847043271607749309061569204972770571566371119584103157750370091937904961829291173691751068482409879879517903012955307343060274562386179502192032088038783464259905927640525933232651529353537124491364387350036758796306951671852009031360162245781954494118008426142693232384708948932227365177623564526899090585509542307276434111626078884878403335332766673953208770570025822794563724846009634358763364038874174565183677325869455056291175958021029624593738129960562068097569144295799209694615585925480968202692848789141838344685469773557678479012633246811577897432354886026049921311912835198681242453528579741235478195556820453535159318831301594948682018208159024229933445562293211428944667998071076499254024199709774172595234680727330569054116911381080901372939959985266714919742641419799964625709327223034021150071083487118181691506780437933123623148110609077316934167094124639661167042237097646780705485354985520169068588386849761122346471245103461792924400864136459420489429057110478008585615332633995932715491076182786632065892274041057921511206147989779433670494507624882020652281993479945048406871506431498877235131473296922631869306292573300833786483733212164612026743549673196409362034184877575655739816690712913242331980842390175727674528388610836474816172211994392495043899909353356323484418050136035604852320585912047465869953453711955342983227729620856934231461238794455780664856567765804375456443820317008745132620673342811826416845956075357660159857270387446013301815654517163549060108186439614835383662617018639748947456726720144374054022684018902539865586149808692217007601136313022955727616234404450877751093481016310338779673420142051283619354705662231418090384722206470549089459302616637324740183727950476034965178463476283906169673207235944002168134901037994412663970341945734234948062634084931827309233200376718271533678555902100432236439041774877286553815238021644624829108230138889214925348749438478134513321343589149272905080448854756731608206612878806089528900027896210960731088558546405135788594896056720702776533631894301708260693379324018980692399486436142483529730501828734816257997496265370997565315993982942248523684831960336367570974012325702877839808694511289624860977295078025683939452532604586743045232422540174522006642230758874630887268192117738865236470239915172079373776255529116996152761292243879088658085890273684681777934652197823212700903139836679595625018389333182000124965587228172848625506443422980459227405547997217309475591051846198826422398412937913356117570694337480519903007768195382364975632241441379071800910372618026206716058711838785029091908602121261528290779634866721288759907804234499770448560463093035518792597560884327905499497531451303739024482982029064387127014128807061413913539284009138217558498775833119469080753180763208821340346525837723164567229776342005549405145894368498082409455642584423491206294820711412828434805213430397680244919896723569325893716559603997707495525799039560205282627777200089864831913993995363085995734014416493261278059805871066403837750272492744033225311886380193615270196561884949836334497475483003186664865703511863934643930979885856530342869809706421959061721361791495081637690163026621388127945771733821793511804995114164348340644292503006899936257354717918540561706177475669711780922407424646211151973025964437386082454234256572603930173008597128766277215624246702635409873267464322225036366270195027146562862194016182028196257080126843271134178875045304012474086755297750222909109109252922757647856063436897728759023132320457912391778271426551084026113897708074558859390280944006841070674713385176068846493987843512146688903670791564526068534692680184253121149026662438931885931640565432360326632495581249364542887094933567840939901019580375176384263004303711228749009282443530351280378086040714485121283510380427500387819713484099335864155811054461984389128775975088571762879798896184015457361115231877804771606880993779925419707677617706787958374180046115905083865098901920747679586331822557818071764166677126485825849449038317782303554597288616536528038560633847316696416943618344143642219558430133574495742322411923942809485614501931016391608639337254544021979263722568448050550972476451370660611585905655383149482581973623787511581889362055455118440758451283364659700753745709051883904177050821324645055250568461606810774496007153944732210533542480702245798002247375422361992054952584860640473746091889726819176822769221429099061835219441810806921669291841975949516934494139905252431848601983090396296979759459860434200641553014248785275743965088126222828290980950317530772857004940032035475704353270143040575160490347594130663049515699412566738542131147287256332092786953826600793811161809537964012720775575707500878965677732548852227603695326496960264207238102212166074953678236266657684871666478158236694071267381223703661784783438921652376552238451496300366966946934450222145284818789588447102406566031274927335853473463371594252903541732150911880114085678726969025245209068869927418990255193614166836727885825865988353072022111511722037324850681431733185437709736893310825583989119936479636234810781520442003492450854790684519160378851962247365675535186360669589027571639509459409089751868763350155714608999500596529642657415040948284705831813288596269167930257640947261084396740534548185300422096305586779268219687748420470935509229714550140310414093397808016465594246418400551800963275567650254593797594069793971952788550400454425241325405858241488787770527653321586719202923817106611967170740886733014815238400131693407441946529792685013895537581716821419167834590963416507740937426867422455457881356883845042772911253185160933383228116589794686835887684536980048430306240090685603955175704347055235367805616714551855376889473870670099982969883742758046402005677019528447517309236059911240490678144397008521446867874222949659906445003166324968784437177910745974637743582468501973793383585523166548778347306402585403906542598015499348674242876062204917106468296161049472475405014843343247441555067581672534932134842054017661926951871721656318609054025427658644628262752666997295785341539558596729983143388563543479554999617578709327239396956415489815303747100411953202948977196861574507768280474878546270333738149476542173995776664477023868971595213869817858851541915820123724880131161868276545607354064058546507318336465681179754063954583858794789100520597605865633972720361464549884274952184816603476882187703548230221836445659088840285657237740747425614742048012035600743752501457641229943077357321307570248644817137864624978530659694782533225155991260935284363978764080743398424903868183959436230967021407503373133438405513122221644194464682526708414652162759338101132211066504332698966484294161454376005471521742599619684167251260539573028103171538552586670843403273528076154220535677138752989615908706224662077443240578703781841904058487344317716158673983484803910170513024348975687601236676007013156966559080521633380683341054271743917256398714663603711981659162466296564177495314696227410231155267205904062812375945838389892486418654691196946835997707275340820975136069012566029804465313850849314932064882623523210720400640610752369685442833409199895363491482393781298974875445787284530684842424368706155321972490789414473902198589055766045657802266914579461897981535685319802140184748720663484892224884896981558973591726295432964353362820132457104578589198311467810901524393331249606697293332759084761519899284925998596878076835556647939979973343176960398041529701673525950299353808135577489472545696044206535393234174421384704189966473586508548831514055410311398446077563415505989832323470654125037002785207945387148109470824277485039257214512602103353970410825702656415949524558276923871222227382648458052542336046478234977956501743674892865976012368638854331161192991193783311653669490267494026227202495127774535032561264652379021508127274404515622549660660101793626005427345497966969955450981719049476166421601199657842138823183741851996639569852219921976875374158772303191495602122359402672701380993314638632128988894531065754298937562355621747652853218674276689624078609738768631881038321811382158302760218463403441722447409326568759009998934624300328566059330900868618831492598634615338077537530810789785666823728653292766570776403228952973944266138959662867037773008998082311958053451690540157463843317646500820099529465953240108191393962416469635467004219791283835084983706897983361941761055660828271207672425640801816026920702959213006281153379557520273706085611299885102421734114843609597330195709749581489454266103283322339885660349790570527791280292735064343228447709149038153750115374923398344618442459321092274081147471453436165272364961677951954958395556452788013499680502096705251585510915832481103952807359958478818364637898371752609606146321664854466413932172301378122514137131822495982551071109498834402089438197670392366127034850067405494600477424432920551533447968268143408675583000301018646075104753755353273769032840502706076924530149860429035245867148111039973557032247369545791187329104032331331240464982399414109068747716316268235658738558227921206073757597912751345366500364223256298777257230227682649857992278343552844100397535373235627816321658261070071229674426990948474391922820914289687028132884070485893609554169987004757913164954249552872286127321546248830087128823642865734574875845864640779260986687081097716776995155369330699649660670210151583925982831875568167738395234915567112133170224073897616742500080652562630634176143869338044689305968187485702315420285543465535368497565845300029409303471817320409989202173399997735753173617258548763214553901973649764589796189902970091081764999744771792154581571249455678871559790413272642764690959838517317877834860441058138483508155866031398839601040650724749532234064545729105043719375159484137574199484059389958532290236934451271045666612421223677554248960965389504045385382430495948910564523325875919128157548177409055550102806673893521690631991811582264643953151260691062018624721314807611438906726772097768744789782420459245005858909893133723256270332150253213333096612281661687712020224937217775588678570897390817418445759938654174930643029119803028219837430183242566797983324418759791266789503283266314389019946649574635710366958256756132547802088905718067625166390307274769049279746650282737759684163183629356899427767424095583912275312205401525862790569204654033197615231377027869000196216888280345813663566429701365080865440568994481506440193161749599624301243022315287113065400814795828615608862950349000345110240843893846532987678624419118948137381940626973514397735085914305842994016145369853274131601682568139287975888304488158143130073952677499204247375484466694340555753784094247902111552911988372174397035770473756029808311259221843153599195961889914142555178394466153500880601840273575774954014254244890472949956519740098407100028293725557622630239021275334483878849348284975488225336157397489348154927634437257403070375958216323834014469004623462824762816501529450585545694301239380581660380595084995457330515123641658895388952625972299270695157451745013588243389093028117578737455422805578097025201144863121604724108697766843403422222050258274163230661477652561079620335385561538925151339160698260178794944692496618689872358710095762403198532359962141002655596880177083245061338414529715613007179708205886212822591144236114237891033890289106860718713270916933152951487523203934971163083421707810172037743607981034510645944160588617522182978551366033045796754773776294936224910822584977051581411892019248627497917590880889079037684992531210925695392790050808783179827668195558083356276401200680565417445708041372831924621737191779159102373164428808941434314677522307945994818519993441862333600829993120056329181006559392340394581952322485067520522048708906568140467807948836296168472665923587127860871952526565312758300720422610815385300352251775127987716591277200443293205687360723645183421907059168262465549934487400290339376995439319361516529701694122289715548341199843930425227886253665166047848065136667618560715586815786545146364213164771624038202408266105773725251845784899666861818494610424292176941897252002204879026757894131389378872349343807087836095416689217857495154715363922912121024283894285471867984672953157674904182104488563890407929666518897274529072788810685310995042819175686008941953792640438858194134078638807543296493522797567476021214480807126774500859587488192881079952625229737318790331122149673460411569619338792994809125387469745889543147992395113365760993754122158045205346516158154629319894285081740573014470193998904664532841667131982091969334150999291144983725261120591366122644425777090960885439002865352820021802789578483880705308035821327914655165928940510120388280822825242628050955703436662764555386098457541468987916631529568116752241982776301828146108568378508462933180160072090921727110563224321242941239678294231566205392504728820111131300604648170945040237671611521043861286018280703697212315207669128786622983855432350696390007012549588721359063764327218120766675313506974590359859049519839188175242972681648815660357736070258756852988528518732708287151888390251175801616762769725886312851497653160432019841215588657000285640542667406548652319754915708801896147508302237962248500343383256215133926973331898635911611263659438147429279523175019480189439922400370733911383559129998638666751354977750087058201706796580035284450730186475645201112619535122985434957695265192248012418164125805959666929974527557820462057515982534230352806328983795204083670597793695052687362861500183520529278087655066105873500331791496939989323326752961564291086548034902551603964021477266737986502818268348659405178569789305435770781863650968231712118582363005083823778442498045734009963944782503238023710422644426522054318154266862002201034683121674255831961537750418350266975112135398257953702530445969247715435231376880413276113077465055275355494744037168737938427664549591347392600737635757213671883277463336170164783756010992391635490625727218087100083237213826156015901647704265030546197952938885058309202629244139240572663577286938828373106751836948555708121237734998167131052199446467822781216083216565144008099725628689505169160368244764268248150953181785589141947750548353367427732769434345802622479057959614795971434044541283975638259809353615875739777750306251873697726453190842929694831303189953207462802595055054740902352011624922220909944817034880264041268613282822872324327991187319882931163784491064906668167367083508422853142392032256779112021833319470876479755385940029941213840320637979335799609882583283041794596219747210910932214390159273433448188633669360044649461812458962704055269933498329218354919149605038954420424623065410086006676151289569510618001824927146254433717663302638742556990486947412163875719631913602224951812328532552404163548586312562460792653383882288061090005522921861651276647737734561851655384873632954649373517238693945917308093185921090120093432505081675372033873055070259964975076349009344472159403014569587658233190364993868689557804529960500932710680587804434196148217675570249709677817028883942759482377037269820297048358796122902994397693265618204057899806805538307099415897553907521179790134222597717106371312833971274463777603892821672066877504392418971575737298515802359414776973450741521777809058295505610654027664411810998131874061282206249048140657817388399013411784580125518938821445725452074174633381343330001323758864810529357334027701876685176093631533082446080159619693986711507130906101455937718685345774006095817881050162226406081723353696915109376083519195654691389960627096377589158876321014559298981690102769017441345059677846578076173244025060831178011879713034821130563193655853453097864087169365662999078011160919825035440892967089933840385096491604546244388414659467231022668730764682405107701812095245428269334904422748144596878645253952749642131214735714069681662861400571795599723921697685612839293276297362373177090165090106026183778444447081110006540918876901747795448069912522194917332477580416693359053469191738728028449551123652421078951207671766240769732886341141367805337686259731964543722440667347601106105425409654413299602612856440015821996569853355035816347439782541827502127813348490171748125499086953601392496229187124006993149587421690945748482972007950967762172931311824379035726426918850027754854804747964849254478593938916570887621962445625208324913965604140364949724881504059922609541826781845909173520071333453060052726825076887676867530974435201130549778963064132757761496749621904750811615426595637427244420196657027797103306907930809183533885323553530903856704983300240677501846906355415782712515351870011218923012825822684357231813171506582992044657402197968786141328321594351762161974365440497476943411253333154539713507642603745481310695361884596269950554129112075915006761341646873006824082611070016158341897619581522479339597707207120895217585975917411074480689595410612368789014714522455979645785702787975679911157469425807311291340104317829324700153919795696487945344991917354428724121252543694658205988765157562745413373598752212680288431761208457868622196148871780788609323147570552748327960530700368568933290383574672965367757589650304140407556247139600074260690768134063506142323865161979880629324945213330265519484465528371963133205831114774525742134137250263246837162641229860524117754039124141501383369025456626339125443917556829962635914583625253651210572641449414480194994942036532234468644588424975934682240192512592040878299723834749897167499583990476665106659123216847957582855921813359827655170853838313399357817024491185221755819015956840601140555656591847337360746642302695781294883594308437853212376897629557140556110872526793108386645832391540669494260718257882302119034758403406365947967106152922238067479749587789368646865907798827598168824141964512568050173603412578924324780688598582515152499854679596701287891954804511428139925328453986851403467636558419767850344744515672772440316938866019497380648596006364014229617453483976898868503490340073707194612694347256422701064280463601853454156435667545249244967006936842788454246245901828849458125513278096827405878620843930439539730087128541418560059596402136915309254971581648167398459130180232859330649583781091084740719590200855381035577095070513984050939850645292326443988503913217221121574854361623783989262742340577910144289241295215766538410327109149628858788658741358508108321016552139885599197660136398357253051304644539307050590142032721191699547703863456230687660357825829748721334787085965640014353099448376854995218706250835282734597283350312321603074122047043098502057577508243252311956646446374055674597519177203919060407031229684805261059370803576265213738468060736823497404218691738680189920863596149943656003241510861264006161304102446737323285625760086871849332081243020872510645402813775526766801076535809323284670821324010950766194848248416176690416137444783693326260166852406798527677903818599916095807930027927183065443066848675406353275479087514822122382277044484143531195950129338260895610124870613659795437755696370004073761955618456070716554699635139925964319612430956205432113076772978992276691310163737811358483599379904432068141382741456921446465322653283896671846649461073180119953812242421963865873004369743809545585267054776132269568660945644962188948269985634183211306467864672289666116151492684730919373528612301822230347402213368070116719335620781886443231829100750446902287955860299372098224023384175704797666191802826261804302950640659285963148551262927922418978490567512983857513554690312449798279386839515719015410284999473777827411621854082901848938670287343739776089394206368185781918757099636969307530399508098557559069442031279665846570426706436989501785036854600286972110949813588782448359529873343983029633347651508140853588869089258075478436687768035691890848299301675069115992550273639211393941994525104204751881358885564476196712345674850920917435584312139178057232229176841333233473640030173192862197012939859150229193109822278133928607413542083577099506811538615588841600118763646244541898833727948387743219330018797233376639888888148791361997767338923438434611779988669316549490858007064078767468014685770429001278709494195962962699897010530493310731788084273951194640950844740739421423260602303495650202014502457193585889096366845176901240964934985822502211538185820847645712814286951650400288776461381998230182759082275086822388156171322767665009124474565488673432115806260560884291220017082197779673907165495249589604090644337169256666594115550866615311660094653171748774113284837556639459212116322741900679181946062794037440504495247276545934131965136288523054777548795124090223074667694057951255673892949343895987191561655151586404856132677117556853091249474374716620417376536037534709427622962346151149090945012980038213930971236539091151150242044097715009654918026432912366036460279039143791700298419215768900332603462166780018113270241298951404601845169859166894776501165898773236741955967505947219316346672432769023808671797046495338237608858017677223649446237340881762395738402619513937398269728027899803815639422695595605431317993117209026183903592072782543297435710797550824353320892224653678129529708081215323169217342669020919247453012617852359220898058008012102390862557056992735802449899883844534256478582677158911815136917765658654765817847053333982295567925045034351185269813227487816073300957012132592314597587989399647426240116882534822271395456865747121442893555078290911949646903604737995358235534698470050236375510962753258255614759873522407838827671702562840580803053752395963350267106641629262712006857765020323263259397238765812719753580817829323944631366323655604314094948835740717896837272478105140090878413537988285426253437587129940038889070447695286611652402358668417626560041921302057223459826119933116272874247396270924732364940237427848624437397436822146281448358399596311644021395879940957027080704937440228347686843497694858665736687837762513228086753352833705812245407585603581749749337212197149159445169223095636304507279587825890484152273120615604046715032902328660398481321689639016913756269309847391928147129059900621632315235819062793672137607227688687883167094126438624651740395127274048319860497688237242036693528171907203783332067242795617523552238507681665433992033265310539711215924128410793994701754605444247386762147635022108223707764021522882144609369374949620340182671487526987935984053684060336019492785329629738237766693236169142030507934850998835366189699391853563190424840338930531786369478093871318960582322104329822020240266648375631607172956801529054054464334501436408384516272587564487811656337042098624769685947975081677225012667514138537612020166797224196139063031012927028778339133531031624251848392400206121874708562848333544544897715957238697901772104240762067766427733062308331143803695291324672099373869486224378696729054444261514102154903324799925761885855527504828607441839050425651144951684816730939552691113222620685530581295497091927021496013951528956252713724236277259505213940050430159535105545347248071772477620705145505164650689989648542445806104926805876454990785044990959787128962335125996647799730327256806231583937630655626736940200772900594193441373005966322984786789558763754593099928135175812776864365117828608077780523710507047032096294151002620823871067192907670654464611839185280269268216222216865363728177142282021842928652192881093262278860712486527833323509767141592206445402605930213672892495754525972387656938219835812180145466120632553061704701708409601288350029322209354333017742893393213879792273766497351447257163946469893226661091458119215774788418452089752100254762216576081799019208201134960786640282155355258376391283441704810728992301703255467228057798235144207618121806330192725160391249760039450534160720508930705385142969364365153645765234786008572672826617064916728687830452827631698523494413564690262030127898848194874307492463317107918972547252923924757122620005101612394408111169748172546984963999500070243594405385032802506533094751438175447593690376244706272189952657323451843192747988592122860539964184132225204637223480052942953550690474617960869697123945380358302870995924633908416822834350562412214493825902027400112465844355193405148909436981894630613608426096990110878309425903505481468833617962289716639459707947204474079425213476915546565249237663446617676054870445355742548560717527781774306546292370428750741801542174998677748121931631689746675751426194350351560099423824535189269232994926485494706028255944449370424941423580092078258649904125594074305259677785225962616931409062174412358102764229929092492882724398017579565293745202888191698230382098213157266862661368797989485817224678283427871525529356137897066108044288757900030943180403775548606554027433848960219871568420561431804818985976750949553769093076655897125738488730943988993726491526839553892871331583666639289709144922982605433147922113508172506152829294938375613785709515653171706453655528069550864838956185561747881663484877811884335365151441340521643992016078423979430260342335052108275834763667507075237444639430823041558947546718082749693575155896202273096509069033808851149210817368333013002576885221820113975373978499253632075695956984044958913298715164954834810328896674806821903974230995917555451964320562480987600840542040616545769759819969652989688592531976289327169506633913310017440269639004347261495043098898664808085307757301358566911988117037346343080177199471524907077127306823731652949484859452742523766599379031978486937792801083190738106131244110559452544554267122652327131917169534604057685632798574470956343625888412879644714879181603147087976273356174478277798194649824185457561748948818958108645454386317585693308951185528809450295685864364960931959085108789228492701986734765172809769753198680242680359845217717313761233133991816616752362596754257608952340046525309466697734518568632109034250938946999569635559441699042323798511490694039463385713978087873100896053234279347335694181119914347893337704069281507875855947979539548552187501828370500845244228264384825904898662463674398368916102431339583263863888047784837337315563418703176840409744473532529143305694105072160265723582332543167980282920292757402116875833594848745170359838151677715930737543220078889346265908091693513264924502667721753687527675463422325693067401708726227862087110898412438628689776360321251729347318453997581014416595916668135148754520905925178945477644935467447731539698618202209264389748334868987375267927161788360275747626509790959282448792339047186976399704235373277605473202830381894647605307629270029941857488966233608039452827369865214074484441885862970328560889001270003073288685794434994654953344248698924963087236986552491004511989130771411559812398547838282995419674672710183653602999297927485128005624685520434492783090638728006528917464111129459104524574558315513564084598969338628705802372989680589895434037836683008275231417013042141904684946516754910699368688719721897080126308368418143999677928891547139254853205174172851955989983414264333693307222352748192578504168404101500513492295843283787467010190022265307810364917137541615387455409052539857806261393598306423039974720561818243646743236277278697514265473561276515616352509505232105242396235241301631007795560281875540922074655349458617759040087440327055878314050930596476670663308118531861933025192082839388071594331306913039636134101950501691904708999103602257010436454710104476877881631905337592787550517854774801759484587146846573187101546634585682211807654848385674233597187606214893652910729678721589474197095320506618077485159046935856290948208184755545650694914650867361704087438789505811588531998254143652829511771614766719733930930354113138703485742334566273834760470380141501354522137588073073690069367478367856821387568181109164515881421146551909166512324650128511805943677466998626245807077620665582935741350681389770726048828221282050629993876933000008745774642144194189860097363654978720879228325938469865059793255245424234320642662517440711446436876375141174368420985726624024999241580547276185491988403797722738163364872703374916718978103756705124471706565750265983012198304528808259475541820867390365681698788164697598467964713134034884086496004309321315868219879933907438036177497711094895255568893121775946558274240418108127292332843437535553079985702087435630942557019438692889989438723598390627807793567938738706106043463261335396799916054276492798057717458108640319135316533266664351876618802435353410349100798398082418956085555307891176261892618995976559944800590538441120066274500117101907635071683792484216049064943243430890246512285799517491828230417645591447866626111431306032680734233137010129484047694028470215094103272250604256379490722057626667682732239337079757337635163938874886598290679105378630252904435866979936791870164684840532064840022217945719499235040714234520251829737860775477621425545974919895130410109197392694332116593062357287267694822201200397373915425142062474458254330756446627401003872388274260572544966742663546023062908082385030345537431711763833175040431463946866888914276027875126489074627099570120742341651677200755901176976219296699438918771647744553282128946852181698730453831466471628089298319261172673957859375363838880682235738530742536754107145679039371431075924469261013812915568386805349752724341180598194914153242641720932873526920812314625461382437501218042644089695197051250227583026489639043396639690577127957208219906889582810940424906115523182315199731946164358630346770096980803519820237358405145331555604449852006930638164091766366522782972832048674340842758269758551661197542273455947340659870979408713946099092861185227172834351325036052715233934299290578823906822178042132285890528223592215570266390851348905114154764738789543104849569462244227928027103480232363934082481704012453098040832595972341503489041431254364465167876707171470233473346600528104203847447489166120005665472972121551461163051794792380250657543802087705129698553178655488289801977982361231747026407362694757139818297957133904637056564401413971646827947621877523615297965054400182622188853753904744546050337037341205842091164120102323407133310475906395206960520625493116262738453096894484176460983749306299388737411955680730780016002721700393912318658448014197164035860919345311606894326482806281979092889481228370905983222834597041563144951331956236023330179515286104864135013434862165573746989186165891013259191249630176139995675907562099896958306918693825212457815225310488872529690942479407200968379145047684176051923476465730756975694674814821900906261701796426725446884561264354372058022526235566638673736859771970663345920210352382315213301302365398027924502093362255110413210556971249375923702788542612749313647360927969437892792077046726372648107112351381921357846924927915251534806612089529730863970654642765556100488991035615040671491319308373350670362547492823684940222318762022393993079735908345162275667716208410173440506102746512209516590561940381910256373665870399107976032869618027772636188408882882529200176399278505415258629461341207198409850138477129794772519054956932820008432734541897734659175398028749018429374143983399193711142960776936530553141711365281728667692746644074159886556737585723137950770676812874618305345424224923388631241727508086865895631372037062376817769175684462706743269105325804185327066809557308674504418778984485494830508431895573340816796158381860593186501160034538127837766418299192131342422933104882775718342387086875447929486258218972894099346810822701053530189960576929449074452203276823506131416071243996660174502010748160809654247240261607006249343853949039996879325041612755946349019137074029133280286937145889191030554536911082733286215705628643305748611040980426120099070105914349909243441964456294442052481339924938741705113694321548075678264255537903034680899234697816517274474684489797499577217168447102383702390378141120585620154451968080567013139228183043117332384074761314266391591692182553808059011774751819092276432259310489276472415692445097535382022111515584417239980258662189102698820509523690569063851704941485376459121253226199042314725958397824990732575502486185812039033233461534780471274417592830999311269658158408360981526460610028283834570977779981690686299674076745738631770254981738802390292940277462591512948054633999864994164289498530759880016793496781530972855632981001308594664289048437941504505461352669323139666551727952417905304678262001309063815699041449601127279211761428338234150487877590636297163626325803539231138985188314707506868797102328017856294202727556495398294448162851732400215307645555004608118901247884820201436926211833699614982157625319592111750200267989748918683193693377934535053597183735932439950231329897081143499252557174550536079554906317473673387691276219886216607868553255569408637318854311143502915198334647636469713225138414165932892957705237669013766631175225322277810455121270153241810479551139265789949941290375185529935062131707210172929127994253660227068144041119237393076705523146988680620511984591581476816100394117595782985672780098354449414825975835001845558787039075018668660028545236654284500157484799670965360214990730258953452495479284469885278989689172114107194622666858614027802848197384791323213072720548220791694839917276570547001124988413956369151727943705277558387250684464851467483320557570443859707200777353215438836078593358794795390065269788451566308882947222692260158146442381175256431926108224784059344148271910692373373328057100982410469480746161158881351841858513925786158412347152857147546434649839041613601328808543631129371441035696296919304837555442087866310470782775937254065924880888567466256964057409824990087341409191812034732932328639362348272518539656619349173389760169083479894845681374427134288930678492112053793848832034163434465762626716691897102038703037498882013826770229013984307319525758054282069014319154479374400853483751087144813223051073317571037240782895917547139917463246621527141913609263979238240645695713918301913374707994772251994205545874346238606256417496036326436149583771149862547421287351723106427472687204645784161407539638984897740872504447533967980712783708476660708912029320166521052359814439982079190241023504664397676643572026925929513456896214606238908562343909274333635723165951469991939946483469001323883398462667431285884381274432933823606608343922001595028134854023411388214247681125393877923091385821790250489240784414606972043628874094112209341740465107384728996396288874991175092259178261174466497010930616930550735468731132358802993358732857138301018852270888205831672886053327940578059033337170130772625901955997268137335311150320141682080140436746812994262617816400690777290125079722044142403892182674281400814123002026243825017413357032155319181672745617409202212755518656784391314556234814981895633610793989136113651150901875867702272766016436278499065475504755759250109888275215155245372792740509995461260183407435804121882974170051035749806548783638766271520248343551398838000887324131836052486730387443900013454918592521335316733277116655935802493690116021178454101538439215859203077987611737031794438422177308886056615049952529210992389626583951342077713504387862312062261664080899459963514459611733714106900923147633574801007129928342304717417995257709600551491250603616464603402977580215402672710739596024572650666070121928050789649619064276245670529888813839257718174338521320149410389978757423523223095515792324010236277630214766266446448557503300185886397741164356286713273606946384507230234563926914806209875970041811265370091788540992177819871893706315732774114165341916958839217669304420959906306123748992740937853712882608266005683361519796062108047462088523135449445643352425440673133536444641064250001079566443349109430524164313254703628830737612539470691703907897720212942697373263502194057316761547237412545038794461961806545088527474617603867390675993107579158943320213845208122565249777238739333868455516218226991497383964510385595307511993168018454898115312979473315051451363748448353561850221799375121442425576416600470620005452128165535871247738083885490443044677370110561288846543140488131627065670029167408327649596746168652463889155499851489419468934758197602144296501648458240713312795548300925187629191575892659592945904418590701552228272055004805356888980277221178530886044335308885096237488656456143928617761601669197365972646556586350629358672163463907228765150941344097060486179292833912052885815420131175534277017243568012736855696119132607603340636874365960296802935438144797567522621953681853127185062132482989330659264218830993992727931579187436262228025335803966545081469856208028280587040864878417656884934534824029428929895264944258651008809766159659212943004327450855699825206408154213714202332324631501728724053443790498470368053431576409032935515549710296972111264638178050153230489202610813609682521069476266707546810486276126167354003723688064258114704277967615948920140683525081850297167226181001564025096186124195549315127409022728050950290894720594626406647879434581359470167773146100804322746342452957990437667334504071482903747608718141042487967059518377909685696419102079855707639114790553690204736140199277597545628217563838219174924363532358864762641860833907612256453992613035188870575424868804085592334558054897496720786134997281579239039382807498213548039744001886575401383818807134092117558290877361940810163903750685889181627554059902617294245415012226085738047371777435614862683668023376178132604413341077545400286084442559018001138355157475594799328440889397238952522307616690660940416135258444320945091050986554534504580640200830816269619743811924853311769915778636671077079842332422336621600228231495741803207434807949411637676979874997869483481032270185158990086535976669909789850660569070584671570730584738376416528710000405278135478723128514502972280619283110928623505647613701752780723434670330844909574241528227911342988117918438695459626804027098075560993547496227289059899899707939904567218803917079637538249898767323020750692271943323075781699503318299999475457992797197670915108099512636014376436030683361444488556717758195267392637123513904141845605040094897836813340309106258050747755395304073601596218557575562529885004957817376655241617451028747624388277589891395419687901636608463621996294742019882675263700878140983074853019704237900803652146424408591588083033240444954757964339731569250955424856523981744882248700528669678675167005120564322283632066314172557783109120217523368448948327197175754692639975914849537761836242777307566745267313378142066455780768021106901956638351099909614753155966204021361915148468712720689632676236100616731381099540323006778114292088499909771914075351509579683096764473987749516392388188499493709106489502566251575388974472003824780715162910954942093320049856787522558144941510893281066376964840774967813484491181546236151546413209322019949082365529512143966916930815915926864240059261482092544218051263827443939284094003275432225119685494256936142891561862154242338705689918880456331355519049804031766851111946693426400463394614288174625471520142630251695400829081738952491266359020857598282902829673965269377379900149274550548985534883165882633549225286707323840044435134495679433266805055238920040372161734309783071459415416906809793869590355465291676659699843042057763430455182504337125627366421851802592712435453502593799047979992401455258504046147161799189701254876389991010775237892656411221786075935973371299501020228843839027559784483367775582050250101904114654135130216791186118206563234266620331842297955864639144883891283730119609629761661762873541266495544293203754221066415421668236132005786529096487270597725916302389455355809091185789954581220330034784652946311045555130909453761226321075550332315608946737277438459833102420018244766775251213379742919272986105539362994344065172463342638938454453798871296166808382012863823427792026557114050239717389616203153417100638820256995901434869454358982811911013834514527501665657108037513885831263036391418771100511047951375375149271733886161783196912572155839110400102138892273530535663733555731216382127217178650591514288447647007828693946342125560611850155362417724018368956864758325312018310969169468991922117926962844999646000118969148876086682003553147537195224094094767344934847295802475864788653217760506560146534147844119013233676293569910307486996379706494942547393801631559950018976320128846593310498388092661178192591677209631857549632124537408814716841546122340161142560134733908199061876853155384359638896265432100833680923265713395036859074709359533301602311936265136402820830682095519687490862558524466872080994043460128257452747843149467695443144953341064600235001769104924165089620082659927009736827319098867414170625120877060460860176960239051947915882998652773967039728225554973257008516652850379102569102141475579670422146796005824537380717220724786584537291919432382080890711589077955726776208138003728293325330841888843478043231837367527004534770688010646430125460498461112778024084957666223889103276157833413417761382967010769384550483459909194294991858587115847008969592455860504186544502237440658869704814579343057224806936256820808051593165734194683906273940975093655415419342961736216984829200606247136172073777858167335129489527575359658285864472761285362591206821626419587497191220231587156986036060062107551145796697045209523023704305783761512135680169442016109579344104332588562881698307451303213048896305430327270718896669111560501675391906911450885289741450380215060471509182816137802345332578062304827984568532736233204983230133801762456967104752947255409880468028654981464902236697650110032646142223988659267426556099673810631340141627820186853529048881982008040059969233363481552946496381966638719731687326622501575743446889122553094754385892746857444633259923727281093865353590805638211800381746579066701829238848858923683552749262999038207065900272845137926824202248366184984501771215457800499846438037984578720777483647703481856782389390735288637829083917109814639178968673938067389188215953507044147622740530792447152644503910090237517200256103620685457226123309866933286702597346226703957908941739565438704109705739931570653909838019935634930764534139715425407667153060745519849208141764847530207714615067416240151175096084672998388536958879085144695622225407737467364076503155289662499844031292213416538093055446303751571182505546179798750342153361756221254309814752365098761356699143990286955290594899917296338024010046333004883450470310919464410547878560604343456946834918697316672254573383950161542980488016000127426413488376573384121555185574527354248405666683149757188486614451491990533369692602800635429089461667550125868791115977350836777017040431792971427188215149691489747851625317123098729017484027448178211747304411601612475671058609582916877900141365745321793751436186497867743011111188916498997061127156303587538161133404790622729468632823875112905029971524582101393604907705480651934747696107424746203033495163392435186596767096115728076976762341798802263049335935321488500851128171343458906578380071837629766738410633108894739982791790505190604783933052179671170992252313359200248818918793277163367839839353469320086838796991822998126853236217480524011128729830633911260746038477247808249994814972065684325780132685809368852210829606025862182065382134668787561308351720135564620114064827727933795422957200717322658467945507184847615490995137557817296676496133179045435744356882867474560534527917862907969327152866166184745795829038715287664427594716808268320510182297472145377156537175061413079686745893269558228527155024820350257451650614455432704966379779661284833312757377950773955601016531468845134178701536309872584244151468311573206426344377414089307594412097079873757751045780447424535216378961671215526135238027878598525318311926966688202909161215761959761081760506057789478297414428944840394125764392063008476136783051750305527760297445268848917943500473318752530374021360722780524597071290018730141151370125594062808542308879322319485134344507499585198486345258585601468066700062095102856201214844491667904551840621637104505044002575363504099292493426581800756266030934873316741088778899376908008889884919637603983216747980568204923649552792437451821124931124020337941535967644944318738354759265381282846819274813283688298744901216100998508647486582820109662719546509700823285296247226653669545401293557127390376805741143546615860335136864773068173460480763894939997610990609359328173479459342967579247979981360802070092411765672006955755720613783177349940213374270844488039554328828678995011828787862366419115160112664662682410294255368811344993018336600993788612035605317006430050547345540468065466320741941759970851945297416848140721222547824184603084380427683933515018229932164621563067197371897523350984140161619171435363972892034044746853936243347364306368871614100678361213888720910265611669424134774482681900448851319498431534232249859384982453012367711598084281862586810190515056172235368306752303020262738962161028074437420736140162726341804606205336221422641167116669617936914213342726826675472252912467313446454972699950746706905004037740916880739196411309966193804421379298204171087997947543738017868126295492569802666453565126378096174697071150231897603585312856554511236732301992446310161448101802125050278261581370041516469845611757381322869116985720699946942600664771281809296842504548964334421982679955189240965198786165907035161336532576619464274593178080682920271469048063435434428445312236203560337157743326106254815184132935235255748326039249489008503963556777882885573727221734389485383812662634947838701569589557369782090738956692323832179812520403091933776035504998996595920529459817192188386442392791431250026917010464645575129813087271011997501266003673598312722926039919514327912374660514568853167551242125994654126370774819125499873685110936229303919554194043672543300885818131188060641393310933005098646570004711446056324992696190957010434823439148845975332595640161373996847340213810091028185491555655733541601573433096368447274439001863193411709745644942960198545279189862564477118084537002007028156013690319933903322313055357741776066293914810384675363247271193594800402603487319398710821331648217669957990770064671950051147058652266659952741124999726093802278610087368264836630365091023171526299155915126870139836530887484719572008522427995166778275177986686324350336845741356626270541844690353684393028660488308711323153865631281366023496088436391378481636291719207914974524030515469346172846779218969685001830895110054605195266915312186643025064817945637707616167862812616112223785889569630320903028265748013452334590435607528859871583815122474043069245208191980511349614609532054411535425462697479237760900064608760657618118783952002004624452389116320937437896442006852565271340328015965199610409475506686006856479108571747287931852354649866465387753743100626475206341851912284149733011497165558511843854763792520994819258805769381881084361519930701732509440491077488455762056412489979927325465449594895554246804122778924553789963961435210906081606923208876952064758878792026153127334164882854680217788166115220436511385341713259404604319397157112653016559702697029322212997147170133826587061192378913249093739137949889640638512253550373648858693792617647509806326253852770311300806021691046392217492790871316504486792661310521578415467980039616626698755142837998863785564046166385857025575626577900558912464757362607217195649185975336794862078174020823718797854459434180959246149477507584417034333334267528507102030977455165873941398883963442293972671706640575364359497288629263404776422196769388973589972754213806655605199920160826010489972588714246363404964540228127364867027335955296674824810216768882727491582484033427463494441131494295082339149528063462508269498796369870715794351860378120793781621898978011163864476845046893880912406732455389188648946234840443711499716118510134810259869831567776310551703117676786699066315036329301622474088145647818683944224938389725555668793195583293881744131037272874604732928318120628287560683910097730215376899350066787780576147044351580209336851012883240185984130674064699943345687397770249264432766197692711099832981200903027990279824171539746456780347415260598511403521662951492154250311556656685606873435661549539331942122866539982492795919615727604615801477208060561061058102996785585030952135950149508968206262585747954724831782820420257034363073448872550761625288508958448959110512910688743478477299035251262804788268877217364447518054310509091607920056115524605582490839725963433836239752327052975585347475268060405665344500279662449490044143283205036271236225835784538453307938229016573588172749982751735220040827446984315083962484280989137112337759978217212165288021630730376007588404758992752515016054218280842112019435473796552153924813131587195047864242494545418208921491528264135095121931677848296656327885831384788734932086747196237902882214540665466339519450336640733438290200388887067244835236443704873191363402394951930346945909495467395721812983747369473485917706834039589803225761994906223713803524254837613628415951024307120158007016078995435436149285950244540686804040862496235137997124687745310307131064460347765942736085089461878626373365519654372017283706481781450501690827123981329267835519477979086438023684890233555132324302479421080593514208848631613164481739786999348914388041899747666076118594795708659579124609656747113838924788764744320546979000727567150924105778191543795541334073035322742958515459012778958745040448211089551659057224910357054574488834446023688635159989191264678795039220580219071792189890401262432931594807163925437259256072541597762739085684349100483608638581488771203634552500220971710236510119392825630462438209277950775119900370503298828527411900233763836683917349032812623718574927646253464618125989118713408140130768132660290678128901600881561893918756434686409889353602248980146814398264401337333132733413005245625491861157820337842705120800065233287443273766121563545611754597847182332964661548072018402187423159119072439522700339438578263778551137504772201776529078108902019846671821131254718975114586828200129413109743061052033596998323512654361593162023391094179284250509403277638531627820680446975803141818761495392389729007022820901435335686870728044584529695860167675875723767232194717005001957787957139087620414447557942156394067561305842167253429764123303817804597830960753675441397682283580028975421380480546330174001242445030601600358385891648301227573903442025067299231504977322294712985285956439014313584803278069142394586303313788355827761466423357644233978950578777335198839262910517546202824611200735594821948477565931803128468703411305986291957649707396289023719347994375038491735085969664632505006848035398809090343424368845754267918956887041057936846047202403278193460071166025540459978096423157893492326447989323193148627825416126096350972334232426968494821709225946097997735452881667222394906844836114605250392779026267485169742795957069977848615598767614550073206885813672598772219277061049225203648276329446542694277549937352013567659511322627110435420023517135283622594646373714590075340735495822492096019345628575999748659155154606915915925053904599493004992894217294694066217252384203428999201570533083393012765089945994055133975505110208863002931555543973670492390067299282921922962070703729543355112155261606131871408689223874239723688486731402661332209045694402686111815598824050135006420688156290735114136540857525905294021249175732219439228915420169015490424000420622926340336326845606950433377748208846327702662026786925288147180346999259218857125520888256810571240407658824357972673180455189301202834678533812101574796893660872050278622704069043090825681621791286584061207611732419579269067329160420648481569953724492809442359859063287795623736751923871497371819599452314877063859026048580284807853779572379993161190418217861786994852679528826830808757891684827790582352786622683524053449960199266209556708307671861295895229581072397303866028878676822748088036357149578781057143259072417433095404082630237932822693635005424583177540233607972716694767730100663040040040268277379258372445709238348620857541963152780058297216657286647474485684685114160938238291345428662472797748010231367162875374944456168102005002062432850068246312065716905364595995964993732162399467966735612690436635676560006118989362779281192507909494332517689174738795429956252163541895583525791545817832342380673999274848348926787716919865478960787897509184408936722878641115921971529136340113717639413002787620283401730697006105365504420646266507723298360026400890420563274219362074225458551669544784109540163173363354006262918452844198747397690646671044228904840312870768280669351571618060277557320393995486151352405529224872640636777779245960215338798726865365178015181218335240841911943583969562302232055382147196182309055105159535388453725237985713505893129009160195767637634531039157279529628382858138712013237113767319328025711592311863436160893737893309357593002554386085917596124148435296487684357756120755267940624553710330551347831830504830708977652417042072347372046611567318575485931995997529709752376770533288442100758124799760605956569891178769116865913797220920007178743163120361292658263606050005504189898506061364223807047375637599134618626280627883685925198611727674169858585564479721021054479635479358053531504691625575259220125402219892400977138494662002098151161216802020233582317642714043086908716019703714014188534465381555048257262434339251840552924349493088443741379952594730427938694202000163437555067840199537974585705115114175088359444188902800791611010505763730620865885592060351382411105027184138751370531804313983916936231888381961589465575550249033448903623891208578027133912916887134777698192076154176432727614368116818115721434838858326731677935789290672984741987782010676175657108996116725044064971900573305407876364219153777349359220541364108196218424623994980928445451488646612991160123131025864431829753243938315156907665608087586543972847953737235658844156255683050096849646406467544090688813583707761101804231388735651937029157546452268087649304250782129067226026867291624704922460201534233673231657883883162350960071743286869519871447696705895915138089108190850513524301761013031506737575392949542380920580953323609546223253849116008009040288605756332088600399884861176724039547414655588314995135627571573509000315556338272341914870394807253641719100887621770066394077113927049943500580944280772571277557045237051992246831183585780184015705613968695060311260497233162700468423098416436005835330568695694393159286624467972494869361364182907481139997546591049914219310237117584586397495154717573948681331575441784543543618696271446988781167920700370216347263399902166431509053946551611488955124219995507806293259668191617612268510246567965647708401498872135818463609737183707802418044164629362843114152663748454313627536632088764849155492966908480100973072289555781765976005044348047072641334848813808647142404786566324125338244164799995300091437422207860680428194738767946351925610225146858695084411426877602932487509545818824051022965045220795283853379396712582444464174423983432651254094620146554201313760890069045359835568573691825431140098974483413501415091839078342956184081388978825574489617611078115532907988438317320122669407273119845975326297655857413922296034831759583012098337087086126186876786533343305900188507014445106891423661895379823767071632351724298429329940587248730315460076631258656576616012266907744025397759150290142911683037226548148887257382486914228879432286345574164955231046770990151002439841652208584254410520752450039310020036732224983808892391585082850926912811529869433114202455975018031725548979029299590253151010472659576388825153729942512796649357184820798832344959636158910452015857096719584285242334224326944172059820650578992433884304444150940946037048437211551639724447457982105399820328653808050919754973306821060477262765351226698489589123471412950161880408337024248682871813480465919380917580886579223842638241537061386180073456071080747669178549115193769467069503248484550629056460312928321119883736312225024169411909868799995652691701973993143449483983084526860358846313917696616507680414059396023782014828947474356079511518674984821594551459163064978206272445397070753010804110346637350399679427896636733919841209152581292309442810961616067656051413095633206823719821819046022465204883540800289582737269928122663159890989355249088240244778804822807071378277929687458182637815543811782921524719111776081496777193362344503569477621148871782931762258411140875130303310854091677268189996475081981483612081578832256316549021274746733348245434584203472773310704897085329924956704009864158917283544708677264683182179437941937318610604722606593779637024724486861273943418549295172357247525538723972139437906724340200928969118173197860062431706469028455902156771032746703756587479179653046783253926710015412564881904449159130207782352663167891800103010994438152710987768623922295671515612443371005963087462072985268711949029300942778200782632353464439924344076993156984131781769637684694666252433427662667332804867362845447087228711639751335108533596109937848322931620020851529366155391219790682235968626414264637431394299306633795274548804144909045388766355960925568603968584614880133914574953128901537937466228176348340092760287755515018503189456160315845992703358142686395348766255173025103546378945169855318839665481871990749281754683773599901163326387937884487984243776117965127996204147453916431682877647111531458693665350475237242915375251327670319869297290865093308974738592214227866356513259157103020701696025885270875090427055796557726191590788306696311742439869912723120898339574464092801455005174762288511573108330845902059740651154663461358650151651858055169666811225864778858249653106077815502473813870848676057036632193206705190012973556761998661338387154729352456888453893150456433401543863983386475702918033532956921747681397934668834062543453837899216554133527253424772045226897177540735213178439149590543544701746025490334498378562300757418068663055422830692728823154697161983923868663687104507257561812792475158054766684556095401585284789943420330377398655481737743951607971878031982571063903390251878076503130018915825474553079712834364290681512507550362447705836712303867532381539143831561467299399535805342413434016616291100155397267706275225186776753284752141544211615870196216601552800396799658202326698262636608598029950801572581576224450726139328367224563444339509138384670215822716464032492520603015810330880934675504923706449981855595203559014992271802964734224370998668271738619450034528359841641364079137095276440250926311037403638565300083732053124320168979512992374828933532194567744481955166008662588629854952762942793305991961379573950937744032444372878442111233255409072229440815736272686668505459186335162338960724348405646172645775675670222602325859023080004715439898201329261688153146131233099801938943088371666695014347979874718340189508538998303143148121692806273632228212507412304772345598563135335635575293825787069614991992614275014997284905849136135098000298399013583582008319837276794884004644592896757145039334442408863922455179015517555945418349075701816322519513739696661125168064735076333842542320040027706150697679085473457867720661688169085277914811264479811376172488785229524916133957412770559156517952388103421877127691897089167852950737317981524349097394848585667936209318317327751411471241574811316909875726416172754975917963822939689035620434604143865266769804652860944952998506548764348609575082092174494322425020548776292102019269420942235936536802955676914143445255112668382208022922018039856159942539405556425386142028059688160067147267026857748307721198056019113113110739954313178326731482641748345120716879796803053930902222490676630864329539929041063445324483796672717578190978873892164335189737183410880711644814450263925752234042195612162387683543974502834321208502690115368177787478471867233932809132747520834987387747479336898641462562276266914380116068051984981348813242384847780568289507152182462881839472995796482400791318743756920997370459037589096541902785281240795018214335401228989407730047777244443498621324198813035362728190940918701383465360389668512061773189372964618369250918517892018128127630938916103876453305130570248795245326053478545769011837412849610562320447072140423200605431331078552057945739207238604961949251977826374190998272515951207984545978565878302683696844907915911626552361589392447424960393386086094789240398241559177017786865102029951013370399900054146704070137875449599612901989406511663738818945149218848866062884539842934853199471357739952833686395632204383609114306508290616118532965414442756634330102715038675183592285433049925508365573127855833491352028037208977553436301610565363042605857573439357406571447829584079848170483475356961075651260904537750686727801804929071563344072703530565887554849760125435500969308840262358008144031681280270339617341535228074904948453613878278082574156795879763061742310064610655599053782599634203359512096509927389951436998785761933057982601715212493995191801916212643003051641757464937317318087675555897108867637943797699815059485274702958657573558133956411561966079304634962391633711763216446985700761670287845722496017453163899769071043444696254260975731351879312767147766853455582515494379259450572518698743808643439982524035963431185993552267955106183746457911187708432127326612564084994859089485501209800861792099468561264473198226110200969791648765132717186855828622562036991089823458621379908252247473503598333024491087084284543774312470486744259380254052204918117091487199941913619039087600859781883081201141130105949535965031775603664132145460442584646790833994086583706779728879939055887953154543894941627543404308462926605452143696779384586883963049179481815217748930159654443867023907836661770874012348368150402661541472158841619895544192683290597043632071846368019733653731005357561122874284064710875088740133910603346362999316266179926204314093014764025272158301397305528886982989462968111976607571817019663805111091448018552846877689950785936784627570609800400032491104168771148233038395818995109253033388419986670057130813638060845457931257246686024121818299163897785748839580103562283348477110703097778030930240623725627281003674843956157599311526784274053943359410664520427760039288341978401565897415653379904131331450672861179624196512590000609236425168465941431306315565549983940887110786296291091515429284147542277934671209934876758971896508023859227852045527638063893102514003183369448749537962287365077180888204393226306727124918197575614468861875537756359027217425217576964071693574526914457669244786059688039135285738223556701607019349549136067289981501120339200921400323158434115250595674014810014816641258552534114593063805693400742591358205681875002427825824733086705231978370941259589705517566307041644772866870442101666992573754074954621176113098517542194174216896682565899816633150944463854390787603786225265165953153338466694424558771865446251116360420559932756388153301090592589144696002884136938046916579430739893626157019636696106149360393796434755078021987573771478660511361654636014402539022221495111565943659660442820267586186306164259983962668871583667729328733576106235214344330485042365728218596575917865880627588801869682713421645543129395378676631773683403047548607999631507407464587676691432550105645280150708817356184687513526587322644533726417419384404993418313298670828040103094033970691308789730491456734370833540092730072252477702390067311121245634707799277695359598989361503714296077432743560759185942151658600974123817895183581091519374354683630393980737879494738049660445645079400356526141621120546757561386716393437865281780424835001701859597737162466928984255258504901187242901004270239976095147939311931088299108234017411351607626253940784624511108042955438725716319541271803212003853891356171036288801163097692729364055950993822353618044041547729106350817824538921081550942540974990923165858414010316811375290410105340842226337171961876770353593692670085624202913801266540788785452730494939876590584927845801124037027595519238536485667914653381923169821328844207553455712669062848789094881165821401277452158091366394011308791104931824061284416660998589091939520406388433825671809004345111526450401876566589733530072559387238816047258242724668205034254939877152142221624640726494153585685074858388516788225651887805211834290986292001960449351048591889358417089090489222636505322774735748191559539466921619997446224348080621033102538266854790198395811708249890733168940484975823489065924437137638384121696197886247358739167458948660600147561830917275221249578192452796839599117769970490698629784694644644879071174912211535360542556317840188956654396918335659012770869472830077191463722932893617177726369309023555416503276476293539618356108562143165704762386953238309543428086853628867256248158121013134905155593221319283958888986778580313442789510364496280632749683735392071822370268006187212217305825063308128052227265020325880128588835098790688843918026703914844290823661342047279149938469244933336669526602923844968503966340066648295335089800466949394996506186612024825519201403481891140365765673405218401123875104278861605233175424726528742203151591598336482853891841007997653097496821167735793647037912823850008433830630302291144470399624671407011591945751856167033377782560354664776934756949106175266502802331733933815885417818986987757788077792167776681064401203649176859627675262424799339853349870606655107796086791375640897607335340073653068813584985247459989444970893745816096698624984327621679285214281309554034374312656197645451791527996007949355158300446339052215103597774621254713779695093056277373698929116067769588680065183346442253289901882653376784885526016073480451443291737151208555576937591314900711249931609686181749216177781142166754717655567022070514777661139660055024861532304779070142078183287695409078300095665043556950984422015231346891694352442765899359625974012042967993825126235774497844207985002926750828869554531119078443168183817343821488168121599093910227986686972760357383523032374612746164328962457472902842900936972332658109470670190380537783694427194003017655104221450678183749461133213784027767233387378740064487797227772795511869607087458179895210413078530319393762401122259034262962675671581667792973278937398231537094460239750257571307972110102356802988019064847621721562440650273655095070140155065810073928810396882170247247306025372084326181487633274667474826731416084021215328236224847260183723791502252636449429915354754596590685080129339635068630857396392344823701061529474211172713354806324961811643814060309487666189135904852568675396722651516272292950172662113607257304858564114499209615141593542903869230315138264930260065136335932269591421036210129475465812847295509952913129896196645116090072754885223066257299130623652881473494644877696736805476575910122812343947407251280212968253352847032097977589751124441426554682223824805424254012668454218930452628283813085827831613460531039273943043968375648356881227711249005961485569433218844182790515707648090752198055059074986471714906364692466101498239245170961282843776143118622895684062274958833508529681533344045665906245258689315420021632108885151428263286116077249434565504917896963427384200005229543274681124579190454145148004340828672549498569833551355828818460342493777157890717363076454417221948424445164003773659803167070823684672104790550994961455875472803916806984748809984354342420022401704315230185547173936165515619122615721534880969635471173761805548068648821256642661939576769616425749061015903393844709483294466995591357388176838913370439003219630388820632867675567465762116803171512722480412562955235308265090505126308355216649523320188341725109236969435141285107856541359008999754140764980735026647150113039746954690115893407760761645921404408986324364722974561976776592712757178583249555444093658437365845694091425543212305160796369609739169414352143793752997950070414068541156065360434772512259192351279439523810198579779012745467346807258005977424166644649506514967427841247012599672718145846989519400177578988399068321945008093313161287926951769135920851920912395982309090976290701889776237205853509788323961703612632039200886159000151914413858399319854069154056262134861156176522824199474901586973537973399987997535290250692361308749431806664523959773532506433075417633332147312469554805726421861448878971308640767850491358621806307701223677856352791634242626041770528256561066112056581891366155394174371294572897361849746910710804659967847443780870320098142872908010305027866758412867553097203852810778472940131003018636383243917306440224619061192107554991173190941950187238345475919089925873376721764855117102506837159246387432802775665965019943691260750715696431969712846574393544318151006257763358421677487978602890879569466669817652568840200147487580646475560946230189679448571073727804633760484172047415356220801306409083526161185200935632206451708335108264171487062094856443311387947786620299026403576699225262313460246794532959284264712913237338147651080748744504265577427014446603883867304469991969770897846427683903916639073988137764870733346983744077341031184373294210572031041059677194653942075564626979524412078182566465374246083880877127903498226916961220510635372835932024820817585828768565703521371728827890179771101794588763550686445292329123046787686906213357441421222430401833467664724055074080997600013669994285730157538191852571315423157054041733588078490329127844157389069973855875280617692303447385723292179655224652331266994683511993071904093657172236033252423849972338856834549250223272355696368029653000036171788635487671732965494242323544785623988262464735898823377677785063778931163603487785844259151820539247013373738933284573040037574246039307979934146992064184420545385276241459673937997517003733396323010897455612044249078791768829672846092526090355590245293429339573723257500425234870461270636536483318326664935135528300143256340626666967511386140599510485005816269714821219143112474061416597070638602006864304008744620925672998788019065383365371640887188518864000520110194205588215795037580352925508647202659696152369759857321206969506971976443322539467943226199406695713238732353382726405369767838917175763310881408528322985226239677493418718861640075359368566627504044274739414592523162419167916521939701606083038809012540052751366467375057043183913127522663882784031901722757680312612336595260199300856330925465862212279398556879389453534484467594329921750845798230919926219799082990114141812535027252146089703281234746743533552313341262106680356739954763880211026131575625961938415206980018586563995390375041478303466856352231582701170305291851258065271512530312038532693508380427715727859658403930121623735091677338829564855900760463140694009766154177551279247511161227579790390467403788735883965101106942440277529833667800545182086560724696279713184686136563409133695349054051975868371960359240490040571720313752094203269305173584434954176638411079297871890438132921476092339978804227411921436513473467231906056435997059111956995301922241335761650061576464353268668799351948626357275644199116970353260205585273825062229021311182561026807957195469204112537928499895601452932555758770069610124699420875375347334095684323908585265328335766405681931506849681095464906177269022960004694867835807318996347318215555630828171311642532992956068443849724551213165824308770856066329299569571870247210981589728193766082707112921234891437435577785593803336536718960811753747693237862284535055881125349415380129066667951553131926823867301385307033582109844213449692491543821089139851109619686076217207884978524846580445911921270671091746019323363477580656106879645370314973652979223750872661903427440399479528472244066672059664916523278048283647433636019910695090649259437974708365060921658991595070781093134889468118453415648085860806423791641840590520890752334669231438057406557108974053688493139040507318530016837296952130921589728414881902283272663931158952583644240979756755002812544719961260862901672314783030435914488631605989657621460038200927740766652524481235328575338383824590462740431823375982382386818817174329814047686806273993125936856440115519826520448494514162533963864742687665648863171314751871767817075524763243829689072284516579025984820642825658791328909114427879812313390752818832473138425175643642547360307661867869617845489219518009002654580521388296819691840442392456927396399874152151103270440236019118018198777744235894975764711679516477714311262132656902034489431049075074479257784161994306005678611552151551982174412072430072317361935170266808022293655890440790230045389210047401454424455298617531287649465649609661433338968015358428940645559152980466564619997914426775459548597641381679236662739244360473175544129319473610814669444599233235013588376098031380471458455642785331457938441022388770162516220052084392353177497690111654199702962270833643811863004187455753523557471238738099958130090457808418575058202206817810039177900103720833668953353301728502724689034560923809911226570230282273084355906298941489624180355734804861917592410903509587028566185084086734712089405446910892157939980815779114510586362768251581782811027541814752115655396810657346378432166240849134663239092869316113268584976641257549666623945226939854319186796203401197507164049143271853962165457288485175944906635294267155268470410630484097578641209090870639821994582412485466491990366053606062927239874803385518791487050562869902951267006805788709543040321141910368191345004705064014925962365141712586449468202833198546579465686418448949088011651866428054432221596251993356130846376277697283214985052330358602324704302388111654719648696025591480506610510944416681887350130976603432212886105262654770793461237909715341385535814779601472444665359960621691514547002951455197064794220428375665814455700503452200284475720442021803050094763900566887780065702595947354589762981190562367929630543204225170945458948023108271277278960336984652301577835081143453404138031916051193050807390178880632956013934228382187238349019526890493869524083896620343368467263846587983705519216783104306643166479886560843487902840266684983191983147235971345779739348582054860024200444702154539080615779519814578341963718050317511127372799205475732951859307506246302657058726833708685905144972499720620536061908145765839963524607076254452074566853238078115750373551845142930267407397361678532106246799725080363112010667770991155976344868357947716172773233686165192355319305753726736308703628510290312388479386873121231674255786476490879066815225762715551377368178651882490869334744482473681780918850593818520509148680185923011658294532903095896531654944596581911474115892194697168052673397341244669891553723358884669097860049366355720502879391592607908532117884091212563655190332645086852890673417731866190477408691197579192454867104521049990173137775445749354829133523930871265672759077815110062957125251126644391663982063169876236170073853995815901346229120553913002245757537958668484477652366467480317091698780675953951139429384759555996627759129104520630077488873856015237357037193316422209214834976854705334929685446720981614829483599966101269617029284623037667208951308194111283531979329096476308825660244362426978600301909427998349155541054369536841434595895860079462212114122777397769499667822754191124463260834265043411109694517802267981046948333375554629646299694165813726327676274680606063320681969616789930516012445205792430539512758428429043894687960446839670077137800888903344717074646409220387891459625801425800263569768066393481817699478944458993672379520227334681935452334258749429414301284358693945462595562156602032927738127856366939898697230794131703377248797604371900371428310448206553415225133840528423264060780839346121608971092575125454799677008165624981642775783465915820690078763413770297530807740457251893608377825521899931643736364541999568923253035139613095864840102877241566327714817284291117107293675092975164518465915170410337657292054273617611258170622081732395382020973468170669102427550542290374246416669680906892377618572576165484836147538271102269670118827126995374346517032459015739139437846909299661082568059631348543680507024874625573635061338668137575674982811346269293217990369733656550261647395095332699090543280438041445361246067744239728269877815921913951697849185725057445287908813367678565622771784959986460819711708783243655110146293731491828744430498471661074888312417540352764016141258544389642152697102986152422905994097828323856696585316916086470996043293498041389508925173409087122149400744336424714630229536019838831351483773303062757599916796515800365887941337096980150326019919599676589146570037117512731745566256542952453332716344232463043009057702475489894869313238684373316703398950150445058693771822343613503554403402644537113956879970817795731645701599018007070829479132227583535392507631136279176243967370893776777454033135099343842205458087677992286628621330944520528188370249855490080678104038789928406136913547174932446599142444206047319078821637194821458620373355323626373301129367188939683123779523706148757071120513304039889714262953026074575578703976876943970733102740265460114947358956789384094572076700948812336740040402439516296173746544893774910762241936112738242290779379007143661622789942059927370569784798147051603947243613168352487175235391973489852514079851600050140214763161754579852415879354752763175126719937816569562003531504185724405440086395846072987358846183735738644288282173943149828259205452407798728092435334981933342998290477511897829171788317063131213406871882405678842426222293435395455163022854499339799846211072760601785325175511520383451180316174914600179636199212115278782012836142384590668825508166938075631662553183694261221741807382554535264488630271254855024301822755593874415161980363157772978319946847750060748764530700514031383689472853923747455069558722236038694426187288932019437788863542780827791960013344473562030915973644200122750003371410919350256658339542846025517696165778753082218301891688824634338469100514070962764704046497873956605817143936420168019239163774284784955420314890545242340779692356791300074553080928504395491896396542977476873290976566210765448923893919935204735700843482410412408109390650780918835819156098735690606613645818492919587235664969643750454097432818063405689518141970410712423693528735238909868894547737652866116531169934101637539190246908456025063823355780350290641078598962004383713016397872319126806759931172114005086778044522335826415100924784763860394494019250147209802705116983943607409176231731543866112346280849554545542715471049963264838023666337195528916408161387086285049050633260702136880346794695576406708374018351147057185990970197145645642165769993934415810993546012190861186901974638346328081251326854189001181186587222444436587999988523064352140321606171441135312324474374094622836509329996367248547043564164111158696205223682669888320864532845171496514543935942431533115689926710843340880280044270261381508233734125158762204701921277343612758331336671306802356112376335260291253017926647083622899323371498168134973347044306350243498956246186170667086579826558958929473905356665853400250096686453832089379273920571781057423093361980476262974638106853336231672718523260426274882775292848486694090256717846666325483759087769793094721870226528873837573949088851828486822127217515277676005294325541305749365524161732136807424630642385147034096753834107858838396213919193343823474019207198665658774405118610624136841878845610552349602408716189950934852033898999708816772363406511709313165547070433237372307528833265450958919028571022697392750822835312186297305387683147557158288410458200802010629770366629916154450751723447859565074547807653045893402621514582827712813818892050631550042181943577409330354923624655732605813311394015803393982013879767203510189686039071302621592258042635021048241135313014862560404772606317709584840685873583479068945948248151786140629988770208317666634514007461255481252527840443563239346242024310090511701723431871449449490010047327458647594726233741347437498557388999985454074413627415368377356314584812549473861017596741003838399682418995922946849876744038786178772553524415507068061441787015096946121804268110035867221963514108020047890561374570128550613348211569753738763831785194618118011091154900041391528601127231955369338379056450099710540531067482074583433734020511078136221081160082510649015302147678471384675464767949794351924047649245129595544652671552719586254421013040094422942353919866407962531697800191302730777579771621491046740943539674495404928603358777008076297861760314600006793754947539898001225349694547724008315816792434010102070007834240023063586029666474914699440707969568920162033100886407469960719300932190002370528618466629618500896392605200636362565575372415028184196616824469478342161898320549006841941902135151206924464508748145703663564148316117311467160000446969612078206445341521140413055139659642472843553473812705757079978762869189906310991426972369950999743470806334254984833443841350390716233928265508072980817357192632499852038104096521579628410256984069365304556879584474760484204732023827165164461982021426175587205309812049263327923888637338267057440751840929105913499931679509718100515558180162874470385701756216492113670619659747890461466338744807988383117997413789261173519929276220007877250297590319425626679299863567659854804676853464425034593891299247724440841630406831623529777238349852466140030131966964695695286664326397055293615928755505653353463014232584958798232395320836468285843393751667135860629258540477038861935983185470289730298595440248489012501628570471223993817264111812467060108676182297972666040054024903968071779635416229932171434987751117668247779610339184497388826919283013417779955060106263932126954785334525469248107135000147380992240491954139855957906073794809974828424545150460473045096765223032906903334129414644875669053698049250025866472969960868118135908365237860665004443881423497832197883208708963800823834912641961852404689747129072000729697594506675316555267986529581433286948284637123844812374575708072234372381166365487149493550972057343001281669998994371098526737740037061039629764946378978618099897478940252638760185034558429630927143005986447041258404331590475882491020060823520954966905700735664835198871971554550833394267981255746527458123594528773342834227675844196299880297440549423174880710672994392151427764993738203891115220055141314240907437438292489627073474456951507289279125705642859469216435752284909326719425422196766916680053984477054892557035860634718041736402634352727440764299990146241950552021474011932535048410420186087415619403605810640975525561798937268442578416448971636558003822771396205404663812738239105125104228594347088909147160774387899032667963779751026304915171410666200284133921797679763095300329598884306175203372295098857398637721589859945783862344981447679536726697242948960478987515046152911587174595195005380516797825493124596727022359284321347119612930304752838804567757568352570135077596147969402600446745066405628045397395583800401508567702468136830602690796185502399776004305933891617654786103143216152652445397656871633747856003958690846700524698571629236508107734930613734291151556559926675313830054286350497151309693504252946466051032487630839400183452744011592331058553847486554047139619353654519941811428089338905688507955150429413271354570266983079142028863049058749999176669355894000797845276411350661921200355881663515736931396599117773878709002043531984624684493313265768677463117392679165032052601905323725653999128882247476047167895942664411092942081697681602603894504749529239886225809346031114300035411465237140678732870830237317547572410759896829351894021054508416198933419935959141473478244368728750456298963234218143864908903584171285642962581708223436696286265061510793892002567056083748889666044015654215942821290980539978435769039991576489996498586692701671540257184422196546298957757987458734610647715182498712383014492485536802458651411296092624113996098217440760812681180851011834371968448838473093231128084654187882870587783954228724320731436425959312302357611829887589497028188269401190305227110686056308083533574654201857047948919729590009571252420933898464962077904454946426056920115932564670437458041283614945704199836231271442653615452874719532814870365991839435963768630214771796188466806197133483054482439499613352441301665762102817153334039685097364938580846934896240862105464413018429330812400197586510488903367944504432054424275901981301706318315999247197707983982463898407372865934859467129055094159889834392736077444110180230724462905063171270114239576385723358653091170016563909010917111141769253872143618229073682604872331692832116596224079144625104647396673337973773156159043817786017845680082773890823426453487130420001856066948300648339464626011322826917173187414497054075674135128218104013802105039754721635237045368853443890395134356518766980097249256407446591733120258003646005111143356312167408848825354270766133201815939518293718911655800276649562607310768494903340416249839475591454956401623443668831440879954175984443313585449170729875389478594972046630523009271827299576101570265229538084283213196404080302173810260005628978279494033580860994205083528335585688799123219031121674244707536341106800220497502051256491867328960776701049799104000755739094024197477319967475999849002023973265846676930252576681109658889761207489437456645082881006560860979090500522236082583399181917971921495274724607669743698061170320816868717231701390142667125706381743142772440528214732788393543083465240029159642733467984255811521553027927957237557243549897274812162815776605081204544207156002472413328721080593571576146350014427768102261286795789536581631324688820830384714904516191029614086409622042757193043065412361924627734128066632016515147398640493293571930764062100573862260543102566086391152116546074268936556608945898260100963042186309621815395917738617228017824295494546192873594097728727280396676855173040833881545116807285981480591315542067025447029001025328127947691664795203650285296542146024654724080633077041630671631184107069195870380474587650895608349860852537403130472493928404536952139885831011412733393139666409695101284710506408491722624232697527034415144405551034736937854153251883620545609628808809948429631297478546894334027627809280018419281385131520330700664195017268799437016226438329075066032342940731258893394245813164683804770346717622077771232767042816708895523997850354667408922891976533168290725368208909404447157046711437902252807149364246990769751377042324278248731119034663709414861168683989258980487483907886471527153717372596979406442748244441264423187242972437443287762092680062240455996844204861917900421892278160316290282005240561871222649027301470070189745587417674290392890791715271754893474514178093802471321781066749791758141605986330717902070697263463089734000341978199240299629069678067343764595035897751967917393934873931093605554319996468649954750986252739033050201252391120077135919820757339486100844247606392339666420168113149337301741034905526463474531772086764347462070051763275398406677366121647041222124351377086255685487944870057623241384599943623034723800825858412859227942820031041472362369828822465149114908031689095751573992743740908405237396521058363358264457287504450224518169435666804136484968873073760988085386676964016607048637274322160249991641759650137916100720882196892676020849309180948584574148180944126936152958862507113189926521333154714317097637201196773777542375573976268852933450360565135151584519207908193434660310958801234235257578001025354748291701571166673890808295761219686991427977007579284777414417921922334863475386708044284723918877983110550729357761757442156878155938396383358581252575236222187471293121644665864564414547021289112167427087566577608002041688165446196226238146436009606886907328317668733345110587846880317982756142483936882753357267288199148752611318022519249458894757568648484966149396832968496440529822408162415080018832442520700384573634512639082268351469221812787144021414639624778225441456192521539363016429805889678715076206147577307162449714459565585431391800600475444945918614506164784696427202495320330131823370950118173720458005044121813772300646056305597856893719903726269598538994264172387237316440662935580291372564106002854565287480596977996864374326156678649796015124102699335050329590545226950453943685331592302737311555610055632345386700543468192138411073377257559874385297442723465171462010046952578267455054640792082135863870320933691333026071130569764575313144342804652492250187678337192506119540110917136582393421840453321938084340725220530424354697079791105306270250557017953658110733273531204859726106605808408386596528076339109574516208917035492762623581735484444448145220416241318507229459354805763481173163982127848516795065367692326255576735298485465185429048805995321124524324345908708721143870790697665287324223077360067425691429328474834658413327801008453928859014417905833830166268534813599425166626757405303395495444974077853656686113102483426973055785578134926748731851076005753212530791056102413926389618135407844387931870954761522197905076021093956180183145956742233053833225669430483946890328460752522994013241502172902296587966536257748091388276455525914323922060428210404768482319177873675301652652587883581029860606024945207385140414492317591628924848781800094868368716472564294886367866443821139921778892557627265984893914378608866148100917505931236316453125517546431942493085844183741021002602520340889803529935964266800724960874437709918107072272905936649767493405344611306100281448314260115644911987222448092827479189504149145092076239198375553635469938731935771414369099261676726655563208254058107719152518470030185784773750327997864035419857614502195027567173288544371214462977569052984381196417091708805399038835177707374350562708752072799171514700560720492235640039488139358913650687713018620638798591713839448087537635917679178670854208355941630827238354681546843618780440979481359118761872784621120875247014643744333516483085836718551615904386997143186729209617270118111118603223432301262980022386706088544503204124232365782535164367817864205577966068278168908875803090006176075875834239329899934791991669589681409420316900428265212669435990964635537136408072067468102248483898499193548229585834058595769585778649341054928610426078684519674004016282838234119672268012138396682082732952115968900993554922272805280094853361888620608073856572961480707156529803182917781030383899091326173622816670557209174081975645563231300989914029039363140492981478332276868367435995459793037902398158599295065644763630705482233225624927172352967002111608015278404131107830282660568616615143268025613714621610795669595372097494636782477892204894052412213886760235451554527019562716603295853054311960398134217437961018336411907383337260775828857503860976507835147010635021519529790261769393454631233590805555612151795654895908933247244725852513373023517623744269853151861447050501671965050966099608932399092279194137056823580838010297097807479210200045897221940879690535148050780831862914311102515256174198086466348364800896490735306388041200244308676019053962139660865808185580005685486119570299001867651141349044255979278029918684730329836309092935468858606996167138114108577901052395681024447569099398988049848762862585631075662163507434942728667556421325143162586631692070677549965529069090726693837632892571134368729988585328025469671195040758149959946281251938350375052927148530695641917454403593997495535395560230471001858530275627264654024675853520557210973811541419894971437149314980889207830654477271954827780453213680792263860899809382748744947459277890557101303827176757922496910325973473897676598431027095001052594084390419336015104507455093800975614752007932164004926353089736422841388769968668277259601335554512775962444853594053112510415372633729143295888967968283786904454118745064696089595098987910490214461286362067590422818774287137624786368625698241252136311214535316930660231532531302652747530447478240408695233210996366428091309212973376672587317216125985765913161541481474994240700342392030457277729405800390783008484669633105985687658023540140512575451921454086857081338264677255906249936452647871830536582227506523999625444079841578294208634944533269569272702435956683769286907406438296010732282716265807916902103357497994920119437530858985815184748579634643104403763154361664472624251902494985496217018788867801841950492777196052854524466883603760893147540563497199971236661380792103026733834868977915976960018522752815681378210120442502150015915827998605035821694038710571202163090911754803898418635881328372748440859231840490405506140278135953879090140806471509415825353039415150958663610400795149653340177812968604976484254962050055836047877697137042862694043423114668111244395386218629430182377375295362189075737631606481086895884911221531516189287736569867102961619212798289585747187800829796848885041906456298808865791633493944337909021084347207161046711825607904456623905015861824857191237509689416341127007694207105875659509911528372433606666236385833851634677502207537402402873795232028133614837205721533081409300222517360342782655945397181324283851094794523215473056805473021889700100939291791934142004446848752695410957770828914536995727992505112458865712689748038190327764510425536016777955969902067405025762330734582029423935243345201894998413541176515760505034960663912888660430784972331827644671411763944603012978344207153669657811355820513324628870054054534911212173351079587057714131299699487451206038337987716792040626977021615309884483184880536868620278464731438785027770170055054450161031436147935360835176094314231421542508512898929787500735563961036242527768757930056796853147264978395182091483638794710572416287638847629981606210171455399853772142597147547403149647054285308012687580687061022921124429894525928719436938077975584154979069446759418971591473959573109679133994146375434368392160945644426724255856423839237669692424938709315168060055323840161063737629436709367420330398377670760174559635208961086526282449660481648244552304822783424161381165478384056806640140522825226362279729874138702849716514969874126216035208797157071192816946272033860797503238148188677367644207446555155586399875632307028631058340852221461302104019833910621604173947511061870754957503993559293904242339697287170066068187512562189736088160482533794207692854649157499587689364978480130040450635022796619630388973968094691585550814655656300823134465114970713459988689079194811992398865473246240692112380783372670869912517221274288047428370196657396502984819743620450624152712124908198466334393323499096987160894166850253715126641867596468216307342215926358966498806910260620747897405677270956375616888340286653035084729827285788795377475677387258073351182588861060555163629012674036351439205513795604490463303278368897828775347733367870409306512700370741553196247150330728839616150687141970597354463211999833435707249091015643096844551872659945035936166456123494807545914637788940250574491621928932044082830038873106033370887687262639675319495055399883495448907122873247072832511246426024521260855704553832388293741377148859188112266838005930990996891299749906521940857670616649618818739547001096766160706704527930736131730738461618544054527496517815432884334381085020766634152545734858143352340662646370440107992311136380787773689933708325760599293187165709531553966934534626697421641270291910318625530860975533866964211062047349943878279774750856917693961444829413128337509748194380372909196494590662951910250427191415230073751687436368076290481281562096409685947151533019120790724215519793034918980706016425176459806714376106421122782472488628529910567189125472416636613528502862309246988246383716338989453207853615948613721674844279781873060477534913993650675995383521225628652950484033810856073960141637661607785729456346673539758835836573551984081821942986074813236575337843410534085979637083970372285796228924777073784073149483009727657815017771496106966660422906079070780000803423295753439102667303679676763547405940785671146071536290882001488522869510016833036125938964643246561088912182346800118055571703913739189177874165847707467877520413984898647633170987874220789182975184612625077256433587998337432760986252637268428008406350262123166485515513863513479588031876827241022444818116637206205832094340215120147361432949724150325701242532623511709700081243542141633199917710059718718477297718139916717890533278219091842051434447406415299885356570753168828566257834204926758880619821353296518131898104523142622455461126482136059375816503977943954637307598895926418040363353761601406118766875996831800576757119173716927969870936031163244088694542897417273879915456629097732659809076911866363050336666564291600233164990859019143102597237749429480745984833394441481301411205277992461475089606750355064748538081607233755257474960993755230199691939828442851753717433783285009859624266407239186628668715414452162538476686315843956021428185016385888102197858049017025875952839496661466506548247173684626656853487470388415480744039934483477659188425277015682389803838896318493484455693388987814915666817796659485927076939316084022622012856855585135143294993951789593370948875446624127891572194943116009506863068837959606991270904475276249750630103792511474051154779388744154477616547829120020222070825939609157064820103293363566422101480364022929388261916282261136696469140526248486149365168269582700449668815333885269608618467566435205513133380467120738572140358924424294779733107364930933587704366319053705813442445162526129029196998672226174204617520592859472757411048420329990362743246956261208872395919035223132144386946731693157670181642216372687252436302661942148244289602371979121299196113048791552459335165181974216163279320568464378371661830206853550728575971975278453822535418334357944082212705723453549718616021644346279567330183040320280466344182945891828403380668269246828406756293172525817270144563861514392291360974857340035030352717611629329176429754366207102490359212701907843253005574348078523627312648129084793551021972858145529031661286317476836908493048859201399255966027314242767501692766822167713867359399604317129703523288848504046383802707481248690550931412216595955615766543507492450379533051219688808319456236307608678138398396514292899091371418314609554473744302116829588242761056739561848811910884087453263938192363176556796060164868500543635856957490118839400939090510386574505216883479212269701746092790108226225905833888140858131041451472958339383793682289717990371525747475252154127947678074028693753874864690346063597109931411854284918246012493391958568364975322591967952080495575701031968805436947477037042411670487317016368335026125973290014900696821228505855799486318487957438548481041383754929689784833561211497208436003287900488609909895127857083176474623610152104679270745015369673057917381849770854753481106166064976593451300775428969112965010828911969937747282993660133609734838647585238836073087489587864290685765788938955021530687336171737742450746087474797229189639383609913407605176350732836024447302146864201018209467765656456712837383423800755920851922062684489965107000639386111717891106369773902649132474809057254950603949404628574735895648967175470944948996419355828939832519965214565446979864318328168424403635668579781483489216758021055626576159704926490886279402164461079622189709628971467776731772878675228416963145186847998823466797125003166748601008020688188560345487171442711930413200608130098454784891545656362815909977414066858772769183249026360554067960365109204488715051277625478230293718678476271957164300492610939314888626536452642724259794500113542418763148885520065983890118788135274341047392398952483146844774340222604145000077462633163825691187138328929906848076196921502865771216474918836964077194106849341052397130026290659109888180482651454037687412749775214003144980895715353587535339957086042608083891713388799007474131214000459258985293839654801655178889929018445800146547811299031790442295000116868254095428436219360966883447296788044502630559904576073952087035850395936820943471623956585069816041093624587618733393230294741412935580779448009302380156661912096609305334144978834907981202929328048687501166004129353582164796967406135996471239367759811334074768759786804938723788203969658994967298088399551034597633019809334682943917225017405125845459764338621355544074733756380390332561467828776800795131820306542973856712825690349039259783150571296531205595914786918866996508346112704315952730770919561683346600741646209730257235659071732073747041933445789133994857950736598757109024873481079885500232229148268508689803101667481981904695677104733311490085928772292687036249638521401935359814080731641890154578823508281255227073825209618192534273602451531875342933926328996980569743347297875735857270256092354527578995611207481978363635244112234643400984476953777825803081619371256940869346202973926299517031579912231973722698696034817404042203292478819511991551316414340285921438683987112739908601141002440354739178996283006335711961095806151198452062409208866277960720950284200167802016969958804877334716732003719780753276785418936282356477289241184248267118058035021495631421694846332523487935789393426312838649562427964105473154573825401714996256620183347138486333166050842934161034642249654474758757843783595346861537070873540475279629586525675892990910781691694107958648633862037292117138677796452691908025858317109916263368470666461014515300773661468301140902733462901163060971248713194435007798188282605426382660815111308085000902231290588768783303509428243488802897770628969036690629118662051850249444557951135621813495393538820856944423343516899634790929096728991223512388763537279234350902201418081263409964405510265866483683371751509931402642537368420550147375237671567085002145178993189366074466793781406189070383895000582827317773592299015007864202053285658390417768780576896609612466253086353406382788864856423970448370300529559056477194901593060936605884707635809040234570830514489947001804957995944715476199450069816511493758151835901543323691013587451948427071961848052638692506105294937999790700915932647461201731009465425795770719182460870786889715214560814511729743370594720513908534246051696340566857969178470003505925639971578281777249981582613402026018451492790664494156827617681016099773370599744944913485073629335650273064439762334955643257527783585891770076282935514268978865427109646187841145689699864371553519406995455716145423691673275241864192337245676832308686360819837711939282393816701789766634162642089631320863360799667798122509197260435727368791589461305172210314130064807392058777119604132007084955927627658331860559081068948779560107450119498953505326000901591776447079846039435215252081736851811114974327500223350647596752639272556355431023589710800450109193331713827264976784923857142387589752255445656205479386284095083292531255650582157144401317378526279171693685045292013774670665828125273144414894543286734685214200256108987050508950428688101444530458204716058905315185119003783246897906852700544831856210099519166273606786071050367455785743171735899142136573941329347393045631654099137110003191594164980033334468106266131950446026073721373433896086062091031353552349715598668197767764082694071993496742879859332702517948000269849087511802557162268780704073978081066184320370057885652627603850434011533947625201303060059125949394868947843048590894313099754672535561655685367964982503594588249716784912608624458112985881093064441275848006160292650888427112620550684515193001717864958926842172794450074437884860871061889697725519044760193401920280212472868593269306835944010785082504068940720611203000434777511260794551179513644560252573344023628578737507858443867838925025107152269108410917028167150642630574020651757192430448275786046052356126039787385256373577477614875714225927042336926226806640966343902185485073375648742941610460830737604192856341213834425731555270893385090325350720320408308612673526730983974555785085097892463584954730462090849647674081249022023881149834912312616389395947589463004995819639130485361164068115554002193557066802462182219472838083973794173474711941494995188272477683246305020010833889522731530086500871307270144367052892349558796768300891258385596000169270269424058738151892837401279867683726321110609993279665626284153010368977954782966907195418247652431738031459737786163258184491689721959455875257423003789214064974040705552270079700196117312404555242110063269067927420296660345419111291045669564190635673005689046026082275498625986649117467231563832494511050736704965346094500222616158492303676518449074909109141083567372771877447264321724806951729626463168136875189310096486029312362030972285157567070764607000738760691283138569105915850170635557643190375906388343368083906608914325661482456101564869956967703455488544491736840753070847215182631440919135760523246681497689209814870436652171285816172349958464085407559166572549230642161099713368507927810543477538068528783433783205556423243936461397030517396898591580855463577937335689557292489141335772348852008689685024405931533594275869407833876027388163163491438411846124577242506118714242992233589711976138395544105921051644039183228740686400998592790914772938695462212564940542009986571483336250124084151762477790894482709138654676656010116665736556700528832889015208753076472968208493875286829813191544054721620794871581597017519154355268681071015677987124543046846115480417995865551282881223057025025479987876879888124009703270856810369916348652244958015450325525878433733927949353981486807518969878631723369532102310614227378695029612817970853541200210790519705485497375677399676652957678111907621751381531766524320490153194883462717949369215360034344355708129361362257634231809009444848656970418458723816341535417845313436075988956096400475402580133444393086334062055211637373131510317601415139791190607064148822457362957488534832536331556804870857145381013153728261428575635697527562933602218846239131292663253601239717814990526843518694950047786970113742936974166723470724697531406720053857274925045586083428543056738925637516894064250294281912780204900967745741922405476748890152642077155983593408479121871285497814947165637528433919487483092053373807153730148692555654056096008005951789519470227521021274534429780008956144271331197168727861590833103991148662345200888102584174274952470753179971161562371878709072544566991450975505556253779404762715255719435249099226145206640579675616948667999334106997073757779299943176115351840551422151865114622322568682400296348213498123404151458410067129726914417012591959160364253184903541699450156291420220853501525805640406554547446541107527268693856475629420051292444702080951711838968054700025479874956178115401837932380883179071251075060798021281372886635259532230323082682489016039288728902079284987255841624517804154396370499048305062019475597301326401169046209184206852054960863540124341690869800989495247501377374050520780332095140914589492278524114198623073380138083801877299554092033193077640038567796681291880749785612927089852026881769884950745814546660242342585905154564993230410399081681904563049342500365063554101329808210833529341049237457657404118172506409277467265984310789877880442191009259331806537979136294765608076385990968775408128922581147476780425921154953437593234655374371880140418015051040585587947452851634840105208444211451543180347895818466458672222104173747710919822838036112188001335990190257256921089785281372299839897269527426472463004982914409166842320774760891722239664083776732626243300830747626342328305582312786765380683411776902777409239900749842824632413340287820865118637609419295912892643019434145646569351320720001975038510181286670963454995366066750952391627402821935713106101881518733041274778823311411173884465749035962779689096897787419822031966817448869329489674765118093493371829736172671822719536144933730635197835597314452745869207453531549173531620833461755089091384178493741572835061532958158006445907724749603019845687692509901367536000709921181578779820738316318060949064359908236978773985250178807791492670704199411170692964188599913934952431674471874715985853880696116678061481389015167201883222020544523216525482897449645696721088576306414914329957759737217757986598632959187932985261765328901338959254962837929943648317398590521959722452233927602186621867842464769921274256699935459028297136378869517737027597951344729946336164123238728026167536407230811693090479023808203671340258667457779903605160153880016161682450053548881016594306510022629324487014409490007522949290700433729967289091652907645556152906376058643407495179473013999535094275081556945384885766027379765732938301134646359979418225300898170744345782434472149761193440842813999018387185188693137675931126149750374086672511576565892534944999263939280953576550257193377261015937902664526193493731915129426065511183635738779753005754596046197806150837837427650786294227328459359814411280033892902840687052062307494845599944197039744992131114998407517475792638337113769284477161361071023234724081389606121603869416488200723001864633653973125640714852530613654306984942325177877308001844533994568709216948729408559252907772517442654055965766964071464931566266029345780673821650513677622833536031516351047926339600349583149663978903648829726028560697961519123563036917096374768498966682901999499054809533982636795399983305847152363909647440390040568980378820995103562180103027200200138545460338682892238700648063211115635704281885457579359333354709947813958942411167417656663870156076745333184518501998607570108712617435912559478738754630545161335283750658188866765608707805192808904512629521239514221790483858196628528660968881531781404601552491779367391747356978034788340973857964854702414666048115539678117651659689197476712425144827304810537020381614745412327558628704352768780417124931826365084623750239952019724333070367382890626685809525566374448220016856929863660064907699175094499390320210919743107053146206001643424739044901408074098210201192193543902669482013683676512535446536796213483832659524472309269681388989218379373800005257400275479342614832240724037942018028184014464861962435956290471347724565229003474814697832904607623236126433139548705465033042568677490609949475315575279290516335652091311507632189624086297356244141149038824508453545287022763879592292507060953409582119373078514179373093527459180929647192711338209905392450875870710937407177827681053819935256353134533082302878589346389465357359926705603091137865117104191280445203020441221740598903527618081325962110917868584341092385217712803831459862470156585059801452874775363345544946316482812823642894120816231777489972320103311553224283298018229195086804857143906001406155313916177572120445321345885551934976203565081312369840815897877762702219993621101305177500151875819902717159879626324023506197943491745581552384449040759160729480269218292397882507125488326976831620641843064256754497399319327612090999441362418949694538422375363735598355912068571504392582722167676472846892566264858137829522152153443397074671892928157665775033567576414281632743568595500769802963935454352657436291015832146932315357241465319631014655551234405498762300560842706535428457087754755595556273887278537698427402456774971128775886509153658567154190136255765094466045419419292991791384567974088220116654948168392487512391921110516103679566156239271531153233985945198227513842158546167091065660969693799054316121552422945680807028449728058358261209805625173387136295311959973081326795850679836994922051721342590814727823641191183864909666517865417881246581387728034283649517009021995187931580750032408911763197529232993929085944343980622802291727993748192469203894035362426412674395404928436061420654029043913492291851152884884105971279915985402664753463933268272730902313758850270863898269156567210677514760561916765178746717319158152693294220869685002763381532626913064579054377551432117734015528146013479459481811654607475120728871547009665702451426757098453832843423065122435740100011404628845691555440088357708673275903615030510096664549745050476806226203481145565687737141340608338884093614459357769859857628916246493199516661767738218429676556632118396197056288533988452580891797821527242080804412002719373439070833105275213415431992814001546061793986984147672856892407398998564910401074375459276712524299377712625992195811684223013995028779536808738028049420212978757970513006873405570389606958529704328573948077227220432261900123716412112680805545779645537938621495202073995871845355270589214817623713483310721902753513355225519553131794817649675988747983146744789032359939639141324651172272923326974388382157580227267800993329588617924560655528767688717803257960318411369722631714017868975350713464429710045446650436608807531567964954233463235309596049911808262839716271890708356087236765420209198083914305735075283443894403517892616208217766278396566918106029819064786892740428429172201389272182200967000980771222601973645075796086249618471436889633848360889542799152344750633428998818432016788406151359461459158071396971573767949941291414117280081495668530410466458137077473047333290438643256875998611560097104207430470255419269164815850727800426535354464222980381184516424035315342411898647877533534862487812552468689252336764791368118913986380109250481217339965725559899315275048685833238889473608933766643765145367430251720276980078413344909957844780442236152490556446622519507011574466173135235812974454253182552924694223061222540325415556998982386908605633698715607665657892031787837440837429418422556555467676799355643534782271854833245194911851188278850034635863670310494542819749449804954612825416916356590176346365699490831762332035901721931640592153250835305655069580271817095511278835224236537645903524780255830361845811899989579426250306670450070328068557362284216465691218155347638066221640750319875072142158406880236120988340837891546375514326767040852521936510630953788518667955984832689588822999062289259798534979324210446974366815260490179973208757667737741437933774716857192583241113491815768200661622233854745333851767952023921275000285030708596080866749950130987945748440891298504406977108334307130512022406911915917131229704644073711432400272399616500195439368499143476352808383152140503736637961725208838549203530734551695518646283054806572804084322207096045087975476039376653476295877061171139015580365641505861818202826794335346023239416174603718553110768609842242665602102975638292293020399924739093961042604230010716753994620967876214099286534056027616959971737406322226470613354706048662833515252185660076013352365269943973422694131052956644098585861982292741642614963146956507627359565385694046438106819682968243424344854336624494914937103040982393571148137017989849989955587913771977167760955387444738814846220009460037179292865453140660612931045328165341022767036559907447143457532605743892891719950816013771651034921452028269190891104525726370548078733526144991844008420822687535975937552989087154441446261446934648987239873330304003337065935289909487342057416702657358702492516768403544825685644769468455347089639888068267885107107910325739454947860299980043054560010529710798905796337802598990181581497882606282198996051798051106829577830018186786998214773159338920750256434062015575555496275383704853420881865773563864574389314511861664730799472720956717114648623744529951985261702880051428699929788402822861492922317357081267212243158451875888416288340681397961300712044510241647177246462794688745173108164493049170498819475008008736826350659376607728174621175768802635174019348353351419883444728753405797695591060862043827948437316458545929311828074055323654955397569479806462065912168118352933212028342124616336124092315818976851178280154122270472703997162641459049236502949099748731979307819410944165564543630608693771187247562360070200933155092899575607048717848622555954137859598981323817774143087824804009468589157297529645839635428343083497984466315929167984305382674734243787597052318686841199864194086068235769561073972551068660800271993865231846444125784094545213082019611829991134044382632007376226216482768383288624390409979586204617407316317252040896270579021601015343713394245331940974408916276743837999912455979380027986013472089175990132926701298395302592682069288897140997844050266449392248837668297771032023291500824871361747287035622876927080166721405063511520774143753962954933204149296519346257723335227351440759742962871354854721819793574287305309994601176071186352424884402789465636346926269832492098751512352888908060153232405195570418838794177395889272893899200779526051004010969111641802664376141579687988826786485277720772678057566989101723994737841425456002325530988024737610620838355485613212743995647251361542702344666613400655969760565138054281655239818985021861701103455426977962692104093407855479357987229636885876888686122417346310777574960309685242396448697993207059585966952873057486559316715089533248182285475990600481058383313203334456315358031095512037303664498765658741215437308197886007875272651656955550036012594151763102551641462102986651028731745257796316699046043799661451963721198236260736791787928101134607851628944736076754395553851263095058147376999070208854373067811428924568909130296418185622428754184745481401687989586733210155420222087445753050874706862474864228921918339033516562176275846140813149933302216707472563511489909640029782915858544281869345686765100355064407013466796172302721204141639807972572637651406160907919883814521936164642227376300748947836581743221115275962282308926724505652076537404470105975783910556837860236122768148050240906690426871474252253588330788299306096824774060384176976483367610555925872514360415874222468443233320832170097501306337600518256196032397290712085372222229157442643146501094965868150301805932958350120438571848955875024275211925106867774920459061582283408397419791717979633729536545972826980675381821953350205469143719132124568496803622652869446765420523974509583878640933521716840580843679153502903822039346653587815859488536603888364863304915452827622617811369483647329766670246662738990858105613315391746610837766850710549723564864773342136697932633095833093680056284036973317618501899929491318808016354541925680743647366667755012378691612067050009779530257405326464245954343811865521825728661738152629402253114159253099700456215393787019741820325630722143809127913746758959127618223551974245658855104621296250418167062903090251899316180148110949587505505737000691775553559226711942144027954744929469500331205990432120354337869726550584788042649859143049938812051929732647642024643835025392033834028340338849234495729386001411046119788050646592462084730535099456565678500516553096705828733928825171164575697460462488791955439928613962691135586989237963148953813429218037391141551196415818569942962500782906774391370749364034633507572511188375643994731028523041936562133437114830757828374536020280063883201733592540900333474924222059069682476587888670242929481784858391925943138450406670976652552727689413601078107700274858341573914303412705037413186334853592433789274141263352519830290164101411214454370118145391275069869061421531853396418143582037683178561611762488901824858980445782732962547637820595882159281069736508839461681231973390763988129076180563869855176217961813391222270036105358541288974914005178277318762733604275899301757470967203796886913423108641869792152242842134213405774051711403772496821310856026405535231825718553166582006798813187752402306518130687555877580341806701924893632531800324340750090015712071815185310079030791014750339055365106046759792287352912659175114128082217653695046404367490129302027930515978970997056963595533404306597279848276205338097610723376679773945418272796187325757873020946606098580997146853056823224480282573148293694853558170899913894325304776691161672027140797312742509789867391665002078970926378520346060304221519438488305272553793812455190755958891444558924276638908512069262006249823888222671677504791213389611975234386969002251599006469399843430829906824639237712200512914556760968673969014433385353714494583572772121257040110106879125357219295240650652108397943204036488398283904719573488664650575037304726426786793818268708663842286480638711776980327449867103941667621439223661919343972826831184028929885575654020790445336869538170004326955790537047550480983035653491720483588345115667509593562396276590869209427147202073750867941700260713403908511408207270298711249204101638853202452239513761795887414776198120723665635413675950519448271985550338224738240934006680115556376757040728744139722136804123135016621872648050143913464184594185896432350371219530139266208396421897628198532668170207533049934183214480996769422038402005155773989834732913229515601206185820221364473137510579025072233667234407976081922826906083746611157702384127984486635265264053784255814498431477645998288260226031453655994161033603436172219730909856848216436376701710717298865756366517818286384297405067039922258381897392675142390771665320996480530372580113339108026767660575921579099278138228500658881390193790502866968875525032583585586937479773664721348825535074202062429109152065962692590386938266513341354569048032277657016933670847752098809639709767659879378237339683100377468536091028456167205745852048945780757908828964521116596018196950154534825192490569801014787043981516117607580721658720847592833434289007986772102596482014035005334693747355077237722987782975710137150442735739128893702371391974573603279492146186391955554107247206367346767483636589649657086217332763887830961470735419808407137421572441084261979667978729498051886565231714475020135842344655236508371726778048411746471134370626608911207450972004557367128442761935768327334823536315440806542060139539240530717826437308994886037297841056518199802265006400082905553264141513825319150419937909125353063601127401003788452279826821043004202387290547369627694159083099934427304716399855141365903323892121547690810150230284872421299134278345259412457066038123809034741998870286676437357613516814510188844006964002037493101060821683505599883838867519734364168748367895140929563911343323272813573282027553875043941931276620891471235610425921072323984375127524353500055285163002833646862856464224970141664974275773503382226912994476186231032197925235140338974354656916229695825532240177534699360812475208306524537450138951297176441384506213129573307387386077577932079930439911098943098627867623153017714541047286254148736191418395587915988415863904889445173658869411682863988394373669650040755739064527507124552094232851976010881416933817290977258841349174000222095052485329980123634811530826101229108035032325997578595755924667237671824903187253855584249665954531845862113166603286815127373576413216935106173183901198144798246446824866622630840998691006714152636443657008117162556551773124872673857716507971804636924704075985490835930643118836621267637758580500063676575301886637352070823932742675626370158976978878410635055646145810035427082275706423677529156625028855559666830052963041639653754254639694584406568567559395592419035657487653251070143331210803335193274627808894168087059138960317667920809915469939760216111503581500860760212382574570656102911672350885550100039796675269010490331464185433742410048851428783274552558219735030511887158052118638797566584628028593695712443856826210209274902120638515563102016559021477601776042195294338690383194705605340959052373837887224270488259620070280700238805440233480404532422680929186112753110415671007563040966877289944619189725606362695951349675561536194472237550544339734468637142021547047607381601269892531872797986484383316342657278534100038174778151776051459117956182929682987145492880583739615557256519535062635369610707629015981289185992391878190201896436792092195037274355371652598122392253499113363410485903015967845244542846274207709515741277271891398159158049630781691182435773387775668692650690927601026375541190543757806557633241929010344700810631194515867729389907028654798237146835791319777359129631491959801952189769187544274802343706566597274432536781949620525550595729726096519326451739631378177930908150589936638971850273403080871518497255715846831793366354570800676452171912910196843574274671190927103960454705260877604100569567480940519211303595985069202834641345870530923036298907288624459586913150533309868069790107490183013094561816079877134279619625776175880888516634389964259433390200409962610166696647691279443449780520314620410156110268796121292354275206762629883046696277889410805135745934904598021014027426022102436643644477193397509807488686879359658258172071895063425548926499783259740298763090896727316587268132957823177414567371399317716191395713209709860975416673498313273746978290221625627854798614655710753787954601413709648733499850372416898382939606038443132142436210907145328289129691708609471524596979331150136805532733662005814227386932982516878309895973270465516892995611659184039942089889578787728192105688628824723348204310982616736854737744496147742866430144585704020000459123847495049952994577118756598641726910232191897822008785552388943324871727710995304247512790052425055520851118754136626213965938734982627824373844315361319702961132632492172817653890254905973271093620136736972773957305935390005849662578648994920795181272014898188376460634234358667151245820047281984172909391351173536462113501395464897820151143097770603494794552631129797997969397005376173599366838055956992621852090382840346689640730899686616490055054316489478728276123452043242977273294839120230124865722158775924224137529473670104657360126885016547384392922696859218699815178270658107182846428438495978472016353815911955453711706027017255078183226766389303669575979242297167195586277722155171017094096628179336245885592047410996322727338989590203080741292641054592931230825836198317074558950352308418786009378445050379748058689721041778671081691545938456162886377454141511137587378089917634188204439978712243029144232155002685721761678933284353354286654215743304320589637146952315008065389436756545532970150107413947247647872989330356177542061579934829299605656830842814960330999739408643465738454913015964229649469450006690238455264818992893333171970504758541454645411227622765038561705181582390751357671836204928471272871699727915777207400426492094370819399433014287258729252504438971140941024002139639606126916583415356059654072195094074191249800011403066612518497813499474871661098718461334482250433630490278406218038371052830002043603531366989320630472046203641068196047671838065423600749804262183429913148086472956808260671053946548781122140429726834961269146501954241657554269138374305990326199818474192205363703879638428902183133427516966989092137361615015410100266435818966220797077052540933353945087949593287483028529943564958220538661869781642577061449178446479416831937920298517540922688063831475760944157481178726121698050244036864963827053050133663241637441497628600489983659494695423031958285409247909625086807650540628278397500354208538929576959053984698986612772620809811231778753115267410294661939719591089795082822802841061432853194824628689454985179330278087150008757719251241996005547964143568968681130516644711846524249182530500588723838205197253209435095289766729829165773575240213242678897661291193431226865263385180852534485499543937769795575490262358712227297043130128597530637437204793409244382730647627577228007168817688363827406172775249532191253062423641523226141235989830787677068477080820360834492648876352448358066624139228365785666273430385818318893301958155664064116357158555033094776647602906229968424164602125712267792160854432834295903402354798990430542597670352108066607598046766334462997867780665712376799027203898469192438027762275037451661794808034573701409496347002288359151137849227489857381516836796742719240376883054884099411455238985874937488993064832631636643178049997106717737934756172721730688362011570348308892521336853112945515862349222855758773973390732527649033489210583526050285102339081992246506240640307171991103279073629509925151653251183726748888263504401046688663296950078789180737865870098307651904130234120297528705329872485682396038612223822719170785978579077499306611198587898619762038036006047055638790388395680605390051085083963028645079831777318767869178486875611535811303239105572255021744124259968300134765480440412674337189887437100766270349538762845329385913290695914652449402151779179298936138154143784174878924851729287103113810431741363590105858032769242410577453736398902440432177853683512924939793736959705313761409693488088746857586640934882127640585281540267884508509237967057334679013202101203366301760838608365675228621519042668278002674314956716751628586592085058328333221185041362417286219964956286513925868057736685942759727673966026060769471692301797633418088464445802788463555928178821987445654931800439536871475292216686303164654686196809740365069891785463854764911022419032350305155784949688304613489433536118099451694273842547016653820849016658447727665126809376163439204790779562794613091586643698292606412320299342775593691592375086668353351822324886155841083711195717646444687648819037136101111170603655850638901753586756563808664987480560449973849334985586744195131908671223120436285072187644923465382153387778290537861513975548659582555219299995202326413998743054552530981345268839203754494346972045077514642849265930851001010764271856735894408222524271804848270018962017895872832479830479157768922782467333115581228356741323100568369189803846285320864099591632326954480705167555600523969174458539060965235282328847610787154432332364681072975439835581069401518518562204097264382083132355686019612203509826394724212704775824815006583957377514672838678482233493120801766689755932061180336171958499354528549053671240580247052979892343798441975077379805524308001698051044714990379401976730819422872922616066268216770189147888059117342823044455118642102358296492220598507262690631008450566449826170223192381833634811843693804483980801897124446655586993314084997843275295789130500073455908808240395875170801265249816408285274515578222463219679896690999963910960216398565376360996173217338697180299447778447438406240768127548620173006063423172549972742313815716983559132596375950397770763030017039493978812267638038416760896104620846108253281166689144798404968250743745583533714563299537199002927072262535152825615960874371819785679704326009333908238362002166663685839736754342343701031037610544302468002640456600758061999008523074845293010277668432201812106847356442071079743653780695828213870108174315820351840742018411215088363591673821796561866291482230393739683785448021624725020969997317178592109066756480628979631981136596607563578236688032642191589749031122924006216828372247137586880247051364370145559569069175789330670412384316669677614008237080228955419745589709640064295213262022537551262825918281392437017579388571555427128312421725432779085305487814472399820607212961783505082648979275021705440496850189527792846106397410220391554124072566039567890844710617934189637720579727949204366821993783853704712685927006936890299117792589871817523478261126994080317034601537874622731617391841776866683482867676665758234434682027481678497360263314265318552003358643316113907223067752395250188406768734527127913196455020626006929023006517761850730776133279283169755714736375963356118301861550908590981863356465235092567723058516380855727311293096136880681170342833002376213159203616424861228582803269861761242938538207305553943397586449774441154866446636045952099718516783703381193913121236852615382794190116576116350448900287040440760244721297038980349248106855309292439953393415378929869615049029871985858994294056658578532618202065508848822007151627888195979432706410293922483172165382571850155108548495268484235059717364754141846357844144754646820713777747344133991853619740889489410121029636248918781096067626210289804231774686765261907575592231824920752668854064083160990865389481138644509834230444675665778577498225719578488571393779269523224557576868273602021163245082059610714587714479307555334424517622082012726935313527668165549795415445875495887483701506361417192088779328728149429787638099787671213429650775342611743202726601256698720447955120338055868242931256166203381907924661306299191466806073492802964605437026207960274504124174925094501417452521216064806550419834377351957590579808272183742683156988219817707008920610176276658471965092349848131993512624885004122374604087206619718749211696490612224858539943559209444215331476807852205044542164251410998428478294550806118450205958497179125783098760911268542528598775189435207581189161823562865684297428253085356649035487540027991658008620948897396677895007043950537378940489873841235511084693889379846149560804249847309551942111255296559586627367584780769594371921925368341473097414845763779156674839252242305551639003521101115840908584881887228913714464227584886850269488447750790932990900220694247705852864685604311420269187856337578179013299540883289683402397535084128330046212451024445244002147177167270067343261309160875438705894251704597248585722226655904474286339494166645446964013755619922715764678981712876131462654148098725807880262660153919708083502337411350607724606716271511518139066545058078570469713119722036314078926080949668544880054627275532211411256727758820457771782269726667138717221863186680791233609276541935910646307320001256577032080515330610582382922487830725897059442663602762148445457713518383701968519404277696889445419545526235197000035391681630120743774259884516694378799574160212650594688459420035606040310906531577264237303405630916587646420405962709911381688628948878632050720060167438809946097889650214592910676951319398047337206673509168907127983181664803718638559787189003888860400781489859805587300756661347253348917361750112727631063783588758946161383056586518135657735470002730526565353885999184322635432041887412333609454666346776287309135643066633360822206304603488747563968919750869054977314484037230429661177918116256225452773893763318457119358528917463677318910684699431517219871745581482936552619680425425100825239486774725778207763839424208675688227025473949534260994151837974209237280436255998984589582910782324435615576907773901878132870868988518678583848845154204749112725468179558445814320451819943840781521222859568103284144388443980143486319539158584029231053136513262418365122236296141788489770078909358035997546149505563444677073846549025929202468055531601084728697946256854643988690438224827964762877495515513048701237572020838581730730106928163470680099888836719947833234555159250626303081084867689868145803708450108683467665753126191018549153402041992530201170013118171526920780471763123921373706584892583265545282252263972598424392578181228462420861058460303426097881589760542222018387714453889405337744944091149335429466440726102798199609121487427554918144164707427163632075735961996354403806593609648918529014878933336958296915121141995686201398172096451372887867156395115025388346558932422573298058099520378199373453051753091356738890607689012151504391990889310415037239182196885635271791961524461178029645116573113467457104782483968752595277419496732765618811361081226674376643807628800497344432436980770320555313174118402841266130941608067541814148714609570162786752769536081908719872948193278303874524453735938998389611793286487541114878858823445642486854678641582548801461935571200790596694020694699793113843210842090092017231581690895851927095096489266491417322164016802920359741234022607282739880440835175612795204687265431348060357965595320165940780771338817383928959186240690713713598618367510734456758968342071610348195624927085061138864986531580138728542229617125522587289630055339946108166840821474272204070915822784770999121533903880368735230000167069654145932066164182389009123380167435279125407386307588890952420695234814865596881460101499809881114325765689060497260435841738502769010835306925446869228616846302905467232028059130135924608741462742356734901289445151339282716536369415749988004351653180046867023111654208210263403281463461523991685353704512157874461989586928303673652013388622906508935477439307249797740536283115308824333314951951533720725358388741382838711329287285325953990600928725934144041235863366547183370467466325844028582808302423615516940560801353494400770443433540207891991168506887259767336035126158101077920762920454395767935331634994219726174348653549171601585694315400376116735807445617551852162913964533393033645637078707870415459600316991509384367349243165962981714482009846192198824865600815719155828717391861480922562827089394526501192806888838251546463955131795326672055487206893547435368662669296169462930928572634885500024866854818380034563327354451793830492853013782788422451467934635314964198108065553865874850416517363530639721296356885867520412233731918867093538200897944474455801206997744793564297154580300172502472489013332089176360059916508495919972506033967611219216671464527009228084538639964628249096450588583213533267242389126240216655024643287275184439702255447496697385408862642204912549472817180884692659093384500740563378455629332779751926373395602164403402379893678055686470450299295882460346139256032606146327331213153569622149643408927609671093984652035500557590850768743444004701931732525905762694509730222444486368345104546506270938890003524524519621831967043500689660843755481741634785379715908016876267346457119494524806097180766839621779009021647145163760121336819786182449514921664167046326729992190935174502991933630164987235337202514736280542112027680402290193044182709321413914329977782172639205772237934764881440162266246212879801245384103873156485581042259099379680676936690370923819303883732996656725228255297921355885500824413012067147656352697459545904702350812114290297372367255340826092432598673489855748346203633639263834277959940239136661110058411101304871183553860545679250976981666946824479363266998675042297288975583886547956651542184413331775198931351609570753230274474278935570082775115675681140564668823548452257036893268629675552433415777679556264851710333393083189484286241216078878601350094579391022718701329185379096057906378570187216178111720409886575958951219619653131469379802668242420139369835175751582898661145353666693748966360945057643519261107910166224209705357536851757644274599893390498048786560327972605969320447938349868561530456562926573243827266164608346176862808316010488867264138978767922692656101906184459012413314559936585333464588606700023760503726790683711798913006311780026806306897529101744922198950070529485138503971988613475241292994080343924811705218805190320593419865110953964958495471769476681067440400370916584050468840808823131048483148858453984025325852737273599679148688653515815485506468966626860234370479039318310881354031323863817549359519598295200668958654584980613148092299210068790601249793856341621028635412414888987970786016140796742822672596576067507831737668556693611555699459558183366635617931071720703123904102533806618014481954894008223141126584685756890643571735229316918128637319475308423939513303024059234726936064970161012945963346864355512380168715969855131568436861811579146839494794593327419095833859206633983482381599525907073713062140647711667188204397712420473358217854717679135285142280401975027254896273358596130475655408187866689970695624331119189320927693967831169540717552493567704062511827886171029441060138055761557125299185356648612260328534130393103195610071436537876912364393400768431162514965390042593521101984958738226072344150308908517028880415119890961201453134934210412743643713360078599136705997552745266368604016391674473404175746166510225585245014467497979243980669573113623866199034013194319618438288111625281665961730333761362498669049418869435350394874003694083005399857237164675010556674345813493475243714325033835981829892857845705365114826810179286177146667951987929494255436441491397243817061202414458473071589756169251886095986648302700644707173572279309182076728926844810677622333916491012734685639703885594612085508395176227076262314197315141705856697951558366164016402446823276880826928773340371460438044492850279196680417287991992079299447838731064289811466576155850074211219513166201335817244215344500289261060423292289560736436915350761010067735929203402456556270325107137982488257248188929736935638360103931841534360252484190226026706786058567618379182974975879565483628702859578193379506183245835666572753713617993787631054751330511067639673432370828072007831601921552296527564808530373167228545018936584975434066852824259679685942576543548594465541207267854490427351997601671976670102362159076327234772313175157599786014526043891260202022024126425140730081765565685161282966496752221182417699430513653207441802302775335538925454357629052160216309890211669781881870840844375043108716261739503134898292066379360028753588312237017120612675312147328315068385239210022012793925554215352973930961850221292282975367092526102600095569901925621546953015538956147505713300692649075811771501473282196670521384017483200655354501716245041537764182018787089483338089567738350218109184674369280867756188550451209772189310024295938935558049616508333881245245848634768943845020160159393003269635762007978319224848883369250708705296490619744458097413662834752019462654002010985803565169605433157307741778278260804403518797004430704418840876962349828077358197425866163131077203528912035991562489381420388529209753485779603638220981015927677705975866482876404597542464467953708926950093720016640420272224928143809756615971175500181092982617514914860285538975143785344902012258967233719282478088665805349216882060147875414217281221237988956746191661008556120323924268578393145522594851075515032116940521562009339859446943872018281675754274180748198548910384926865138712181932988229544339827548783324921983007397097763752864952532868352588291687301579802733910376389904038034930579761211196239786347955609541002044664619087207857399409433654078350689155295797877162172660116064149938918072376355751552299570773812608092988761495095231190665889341965417915536328721243386718669519059790169918641734576808158990102790631016833408854975659092467358280661834280419973134029774710912221463461194554522932954921329494800212410177382019217000072441725227346143474736129003253009953547486007166666573151343483891539565672624633950111564985816577611268158436070883843948512741304838570917746451408998235720281605986992736597856801282242361045808673650999420586358912295368206966649106302424242396251116240629825976925007186622594028691421347697283975539639789742668764419401997608773657586341249190561808771294506620160557274097357057451968204753339653460233780721864431543118164470906096286093632498256710925936229121020851152564200539886189854723117404301887102809818820312206334613851192088339508045031946408331249547202061728530149880666112694410221729223968563032974471816626466717953809930670215429879509958946450922544142171981825963013634917018519036204409690913667210872694962922689213595064414066429006907040429229335273226629374422688838659085829153099728545812643547022643981998985681494015288064673083393242091424793593219637115289666971834964552637675218332470966404597188626471153519625331121683485526548438098541806450930322616418916323695791028328158719509010845499179185815094035702974018678008304632309788287388224136227012019016549508342578240879161740897028277132498575503977965145329500374940772356683905347432544346483056029396748813572265872476820464918021687007998680735070294330840921085291378810871247597576781558503390409993124801930852325025786175853498079255537403938492431031356408396970972476108020288255794187962575059801258734662854560899179871330860011273633795624361379707312459179355119868772780590193290172651294613488913428628405413789839176988191340408222579160373834832488687165007256291379708291274639324044355141611795325914230109135097536005697504991794839757069009821374375094132556691015981691144000579486173046198090665553984967989890168889145903052710797961710628042007569935804530420942737165875974553707506859858343425705091355805998067702564782111813554413701953603316219152789274373237805871280811382392147933388717468543317833796247995348560155103822277417300369077774528099360521760593890741918500048644231715842511533843079590938995894126045271861937187021906658565388740376870718117212539418384882185912146972447359073485011856188439648121610043823039613828618663726087124754194561176475952366502818436548801256650678638599139785751822743383691494548170621257462371428387671218171068821344935595055018270744569173122994653343362996138514621472391362766681069638169548537803242795489072087020853764991997519285567986154001423979065301575653382880285891301737781244945616592086278109709963458929557396012367033989224426660383955075925271479114598555329663229537980904863023029516755230713351838862203135470864380915134697033323252973630805131483158454648108980652117266437505429941109077797948383854445339285050741323625217073328278951540646866290182665158735689067007389917652842928520016607304234031867527282315463535176779941723987900296810414237370947386630178665233115270637027227197147994568379743545695080918894334551883440071077726915068520287666486574934874604257347909686868416324363448965853056956705027557882958436134339872330414770058679318830915698980274482332754812858814237305436990951106419024348818828408080573188895683525754468156211363997645759807327968886307230713790073550285093900039236285950111015105242965967391615477115982360702025635521564775423195975603910699392880697705680548691912865327668260751383643620575258807038466627645632769632009002765526208325575301181223134912698433875967507108749177739810445010870193533082402405216819851694621853195830088224833061677096235289055044180466929908849867008685157738209658433497245211434818949073382620513862572824625314126086234914296844169817017959369817408564768757941966218772115791937387945729133059446700481193394162317205986773690502086711065321407339015361911236707236179844810020725563967116874325094862815741634576929437033567483273083220225928986150918516554243098972187216520776077109728392017800293841159963830217110305721381504784367678138530587578281276003944193371322902058878675231754615602309343899687458809168082558371192075647065437335301476720275220178780393200842859415729036647817764066644308378922414915922791006620561223457065761069516154320023372342438925322514496473933383943685429562552345808801519833765774317624846752580893094209830401112961354727280883728133379775057889083324742162749045926460987861986080283811132165391495166710851171005500758165005482482367134793935610335644256709022429930531689597310041083701916697567661295949125459395945191858412236655731567034036377480377660289947174193589360946929824387540329084857662397184254386392574337678806320761731310910663685798704935804065571085302539016641332352893691427574858319621724703919431866346362492500164313891522398079763364566992683043746088554306896742056345316210130096695772269312006779679465466284804921910437220159879371827014521077947187327413184269488024908340945346743778720734153350151036623576738597953908120442855334420958446543204544457435827064074268397495549607298357636847944380030225785443028966236166849644030406918848699530596241957471936335846400082012443142293648879187522739212349545068492502963665825988037778568982554080966615693502970300218115858679665210808123927158410409521606850173902834794043567684651187272871526056478616353921167402227248670753648746070194092477986750652910102959181967884184516512849578806114692435352823459350594896469688273428645393044620010160066024790527459015853277170987173513108740476188137858143827168109289641495847161172434942849296829237620225143271776301271827618282910279907552074236110505045258425850990071917172706067228445491587588270397165194958029682251439187759746519660231805133321334903147851996738951228642793613428109253318084913621365405450019470160395297502491990640200523473318011851863453424601806911675089610428633491032174008737171049736154268647180901909978909721734027514466800741136877157844061021441745951004674503329697928508659805041441888047308358060525211213459990591739502386544159125584921887780936127152573281896498033706307238644326096595452414285498571951237109955819959644244414343157953364304533009979104232759392507984105260996912996428403368524591549725283662802846868828476633399853433736791890177528088898855958601652532262477915446523723288110646633637707065189808664575599473388075422437073388555590745105899655736992878336735623902467341259563068273399929615731832830658437768536279655819685315509288062195146992635443694725469172830616209506318461269163322929572461224160956957811466432426197766989942803742311892527872402494200169235262487477434294902262982000911278338345813706335589887265070745170952565292971263534577439099963826109162320541439570276108953177371719289249141796203936291504148510138026630779251971310325109492282491946398830209257491759909310720156164397956864723330235759005395489218964968486465019903687193594275934609929761552004975364485459593798831824162461266078228684305906586707694817774057434441800012731695732624493846653554330282554692706204612824484705286909498803936762156268077057024740037731450094876403591336565907303604327502904234111997183535023360862575057035343714647686477920437249226324367322167190338359339069374294735932500810778308920171948583413061267893154419646406459702521463883046177095262659253146943360855509503111221657299497822599570228364304808994911381802029407834879869066645923841100018472476985172892312558431723788338770183985047304371896248526258109372600628243503970033370359666235975028919756372468719971098875627619708523363561203702496062868282740247079399126446295895188897045134281764903582853571512730705142283534025071620675672540313311457200076875711958216488745909026567178003388060140821297528688351088673778294546257629701050676587831111969855623545866959187867146716854974540877868302375605914555601792082478849423290205055785823413870750411863058154795176744003913010762219573725747353541076293990741814821458618902034285222499760304847026546094644503631875232237149377803185629820003225713696369961101481693305546967034448748633029854062238774592862254884058232192211813920215067100043872290103167394628922474541432206053531410704567056327595775743196298658580918862734237410467394841704604791528842230841648097852595767095333420858308581235711477772617079675612465527764489910029483361837136215883260401373553619721270622798845662514444396903377634191850357749015494512118267645457725628479323038360192416040072285509209863562398542610073717005220922690574037845976262973885879268035302777972421723396660045616073004116084770677536483134795626034925841630455340487666803525582854354415930471511968839359362324354171161625056474256876375254605419396681337662272768795940736029936732087225577414391691491360986872313698798476058117904491386836042412086657357414113383317267850727761989473076820568966457713773034562356597345610695875199626121458671229642247023994654437743167591684548729929298406967104562438914834366686147260263665970892024235153506769831459269586150867641813224364040012445818436207202909798656603896232642578716846698717811100414818973067530191326447702994942613725984532397702503624399886529556746435343596681040467233179791120912594849023178099197714810669768585612348743982634402591668426160538273074566957652579913851524116978517492013378930119122063102392584666493852150766437199368536141469904231468530651587293747841758892343453862223244263864773450397889177416564248332584488655383967097635782443961835747076371075271164270108753952875042075492588921485356531624275374387981693028552405801991054472936210488371422367485339471802859239697975828530021591392268147761198622919315851977458321846270132502714998676195582136378395423607621706606771760734561721935180685269779011226340905439214823112452737688321187250034103186771739831497331311746619112126562177158692584108368411809987908660495272881675051422213939810716331241875904655089717780113508378904063753184290507120059775461032714837506358590512803570765036162246641137436697105543752602758404311561917506578413445858688670573740067319780424496353349160923484602303336663329763180429780494384543582062768522486852255157224797135871638510933177329497308678578095434752855108310453135054288762684717665078697762508201081041820429925456967999298759129723388125819667834156148695619349709447006283313367762844505684202390391792650002235330831744479366365274725155274650649178165518247839067936950632190702283646933185758249539996251075235499680555527128423500978257343256868374362265288345127718133273494655826193751224340167102812463728648053373023196170675460822638425709596199248132660341533963996488111408949666789256854494715007836660062338789465622574017861035045423203291536954414870900789779999278959260164863844468554485768107794401709247527834303599691620715784339639408732846067739598689567443054505923791816267814603843986017329759181179283622408477943082060472144848740412868145589070821428979183772175175791286959856260302620243967598599060866011942798786876145367735198827810885392779988179840508252269209874995143834029064062547557802375824834235455853024153724635713738525395560741067329600079428715512925491487954647680451032732443043265029378351957061186721932657510420996868308292326988414614736119164684543826792122738899793768309803236037156989175324773925048285893468223482187199372447154713822630714702024160583467166813914894018323747486443828830787045883131802285706249195798263679635742032163823999240358961322852177242493580524690130183939346321741478179391807469944011418384152520036693443293085368845300521957673422441235823981638652157012652734193870302564151699017452765384604290956649155413625291690386179821418381752824912554665255324715059303384573683818231467248104974704228128201970451244002522006904100628175848074324125553401472209148674446152986455221023229405629551664627905047798866524018753664078626175092993636963161084451687418442764490091226329112704967476434831654398099156255093715179603876111476933523863022278413812575734154545088850951013207891803287861954334123678493170499784554281203635090557422994343763654841756407888560134743907804834109514632289573849497702136438698182185838860016076561562232201303069978044503506367123596747270367208017855985683550084507384829294116382574637465929893067420239461323941981917186539718090616802245512484781420936319117523502011789775133623972107150117971887316467647781864755380572548622628186446267181523209130199599561692433287738960886399556863405332108628573248033747496323798626579492727857643405989828812772375708746381526935059725976533091263914851506384693529580507107080422294794848703023215619748025885541692410332860112133187393613124067090655721536006059643439381781214484165605469690494749165261579399227146688740276245603212090951991939427276528155680481481453667897172710101270578405434349326126049477154460263213612372919639833926358002188216407042671580402525069847647834350246328612285454450643007566176133451308301767263532385351873513752999296198269253694320810880035351221819947033871893821559114889321510608242942905667232589837159005098503691104358301821892574396701544606234524949591224764057200013457235200700511612840739461761458645444378056783700094340491432860510998398288174863776986490757108373469964786846013248011781141438111843392779652603107345750145551041588614049503394165653459453131159802891781073313899397523132409455229653964407543362718029162795992341173424541609676423375012231571325182371535800753613391893350897624089017304971127427865936957690569293907846269579495210350027796055299645052980900766386790573776219984085920239944702600671432026346986853840643456788223872176023801150235324838338543552028968864043689885405437137226000430716559722936264695142109922859291917911828839583001257202686508074750249278413411954033931784557953026987024751521649887364244154757359398644848799290296066807916280078345773324168734843313140435700210041174920289493491830841789639361026627181269487089864393997265869594887692547072331769222923968749078720206323448386344798660767460675157804176566416769852251681492426207527035047526167946314985010877880480372087250255399952212146678632541034790060290831775312212979168246151952656511816614773982920658046279919361039911028824572809794439426504676435121878900939350949982101003891893119226853893563620669211428904382665078274859600561601905131635216638273118997980595227967141903348297600769664492112489753605180431473886547610437256972518833384656542703867004025964904727119563334914422776548654122467895838062449564658557145835533556685084791252138188971747040524312122851386978814570131525415039178993652780801548037150635655992314717104480185641137048833417819471484293262356750032518275204366145221722868753084700455151762566943427760474913505992098920183503839029247169618941176516349306128574540534635199165720665929092598918789632009015923356566370992085793384498897797903057243114688521910877788996779765606034840545831690893364873861514569283220185617685717785951221563967650696567299137596019708837051048918147114099361523560954854432657913253055320529160779116718249978207865576993181771118763628873110974288407926735056118911713923350165892070168526573407242376771231631180192013842937076561509555923838295090161008395040369002096203978798100551518769207004919203714857367711742197702277064835715265206488202975601496053083404886733129778634635247695290485283220589948638993544180121531015138526311249162075618791193107493953199531802655034467458564322738908576582296084653524980017145195005406316950343898773708537255772476541474313561010772573398318024974061674709140629113292476903493583807768400438580123225164677105127081433065166439198753039522164360823909353122895428747919684686933777551027393151554766094298340632871505539216266017320847268173109437155896957186862409751318796365575323523419254439722546076991130563780295138502001032517002690771586184889848283565609975746614273917845481240872587669061858579678699089804554414252481772907796081646895692797866672599030102746133027253559673736076059609120498008168168104866974623711104844480241174695066364337192705917379057557225123645866355563885025411722065262908951500804483720485218110245324407356591566050343960228185096283201526249186981687937937109683090141937851663126548341363121404564923673356606682949284632700036894872414054890462047551716463312364624585186948066916705254649403931405729388487684373395876377104124986680910028747058458158261379173402278335264341184868230579728807962240862702208893897697041385086731586877144056865315246878245738171955457720723054878475225249100004748236639001511368379399675436008989312079827648916481581707325956250044320793846982050398322510999896974145695339006417924527951034752130059333657217636488103151975848082985871717497281307563796022604496439247125107194709394841512745723309597684018665863493339188896789843482196899634321041996057558527673210204007456617011662256944737188038215222843936666480297221179224406482395432075130744547242395241988982350691753990392092527262089626960445834653900650198849271375296981758992367397634468052039534383060881892385292883023575918273102470516888251088833445121564137363395274372106136337842870686513564592484516097264084335660347322587037842568421879283298874252535266954421832965894037936383481093024075003941625406187271556303115389782267143287213714578056561898031764314368366664657354170830670409613816532033982060075542967228019200034227280234569488635680983789095268912055699160846135428504320734489467643983954206612758665994555184466460668546857081611933158095379182351098797030997930061408995470842974006920881508083652803823628147977742320647308804841648624658400331344555243525576962561513991971762849302277517767660446177082933652856022231922026122752397757273324233247730746894436003719650671418698708138881194720761878041952297661761793677390078211496986343353707792642070569456705765912737252067987086835355287661888293969272352011576929014855295693449285967447624121862259665869746001732941873851571020336686874292430693843200252655373916554279615759118492305232294215298274663865296259465253798560556513731926937074253431350525576254730157423920089082499329182748155892900434405693535008778126244996152612605793999108348046258789251254875296205199778798815488731093183688500504056329976867111753000584406733109572701136878540308257997550362355463988297282465520668588957296880475134833928420385193596981205421995089976678319462855015257138123038404009664520975229890186253585400395282294212917978671351598608270424635554218918170699818856919806897029220298764986164057556282842241995663909576290742884205668558033631769031269728629194389839238646906780084990760595873503914673720623625849822394514466299562241707546535559253643836295607068403272879859013573155541252646289054980513958666232174993063896494280498788347348842929359994179755865735725947840362183114273417832584277059702179783838905409364580459842459392565678680701044179461453293176229812266436714976980844710484474322887568594531515637164230212317224695392221932921464319876580331274627166048463472893742210968145686118149953298734714634727539572877165088001007447790774434469126280249430976954797008893170939869074703079693381199820021673879924798381882019330843874023126718980502101280573201662043894333875508170471107016829820818478823790337681394242958920154783202168231427513977221054645084726888700295880543140196179795915725997583696866120226864277728715658236926833065472826866512263386032032371655694011478377620327134864816578325310635173142623951260064324549053220797561014007376615777924281279478944339901029334984084799914084657217454888536866482629339219311262531820915838128535469456026166361513160464627788492922042980255323752102542909915691969142621161390064071331070933113168992729675983468649564823828877770897990916254228890343280018931677248140000530148025339999947211058143519166118665325401505217155205065711975831321355191510367363150547548091800380565490721211161560106411359817155538773348911918435620791879037110271103055955952446245061211997250209486337245875415892967975084769834379971338670060549436639922907772884274262672802179419855743398036786393649739254448741205405656959779288881945264645667299866286707712931803568551520572336301661529940580450340539252482407125150493090355477840656440262652154054854604941467690646961434637016067542700642979499363431050457982494054604186586141560846957152127834216068613075116106501536739539004864291342882700325403391174378588601051978308064269907298146940788724667978470207510729427535625163636457276959275663958686554382032545943504601572447157078592089667412993059927400459526616442933231182121073617677319467688945379710473397895648780872627386895242709717323273277200644745534190624763369619821217002844230140218980995298658363848864330205314988254442033904215811285784488467758557047083824268561182367144428895396032704882958683219743812290027821728281137468007488197380113958266387094966439851462489656686401541377121671805922847878467440853934681169032437926619104039334137606790105373796017334432923065715073392439426902904409984604353650712318813902857902157887256470986460944955420286571402077146837852192290034230043766380230381217026411240488098290200389893025719219149617416000022958133349949976523587734488294818026389293705975834524601906573938031665355747426476500709769237613901206799422705836035733506990571859226749731852371271790278074715648468318476457071577598999864734037632333738953272359360403602509449419113747875194282876560587448922691608868709138942327791219418657085100415958142083868838143034645946491020893496167746597426535218429751978422356583297908849135934211901149162766181376493476892795546760477292166427758295036599418611695945925882095868525382510127408808122210470065343466632950368651151117897046136545349285616456368756241408128755287877657579274637263668889744671165234765701841418410007910061481963539552639156851224032647879062269140400943734944443235970943681219767964414082864786151558573240019077444438510721508653556136435843621853212508190237102708451967815288558743600334292433637937432692971866501156459928081076491647643507925374660497330599632740158001357505299335542602896956245071432297868351551988549836945018695785024393294877009303029227165085352568487698731703361034501358137355204916667333019581715164689847600657399796079524152791978268741576923824445493457845653798195353106797155194219162248485107142515559530341633262147010680888022791231744154263032138791031947374388234401655169676354839243255357842018655692335927112800579946821189804945718700416094836926011852970243353823757764885346054316056353659599371599451091095365514365244457402412370684141944364076245508615909038328534788202465695790215958849998256647343516030875477969105865154773944829535699534931701109883208869590467815476493227610843594964708637583900329813923043303611463436054278068034675663432307520496068324366926938510010413777708024581618966082861096248461255333221831367233467331061924977851207620910668311921684036892283306001120076724474291960841141900404318024984408095046308485287149338840273622409980293134741451325225349537234723593272321211455994778699097278894244595147549710893889810543693383437151909645874421514773468553402958900577562719027643098426517419101254259951328525728767566346431196670975496412072513142951287885281408774691151003877116398091865077883322018219937555557861829413338202840969682952084969626551678454127347904506338003918950041976619405392341331147373315985292848063079187124397843672815496157213571784218336631345323450383324143942713298391328709909210136453933276307189566089937456861782163620622988190185387392594275494954624519462850014710335217642624988260100547055178393344484777872475175944453499701334737177700317528307242921663588233633756806508702940624901254197398890524633847306524694510156137803506931723630133957149637932864806690118772114611035622413197080028344941727049753843849224747387522992766225189597380681657594883550688907531533391028919695264504893155223750013896050491552640309266066458240597263186606961850190368862312028437341578340101508526789442440643492392321710888431053146586450591378467672015424097888087867333880306915887292575141321121239070580120828661902597396668042101130239303512133624445498788700990809487581080972631505909196350712670005766499499579835523737803916525410935700303509839702569250915802725290469504490538033308905500557323582948404209966375007809869724250906427469744333913677463097941622290491594718344386269919889587885979990461506678934327950388160008363532805469103130167639636554767788043835345469639412070467714008428293453805898341281450191502328444536837784758734256223691188387638573868000645649237505034974400235711929701417100217191175797340604016959579644296415284371557922154754296674211389608100780320747125769857825219098689451189729058130862311071829821376664279392610707061175448504942973768300925970387581915120961192999808158256772177859223549013236021418564478736140162503768110170054331029196400965517944261405219466564648886369021130464032029590221592143979752041319651569600857061046451995431755479943626896556799395486916948287181506827077022916544538686629550561780912950072344117056208555461959993764248713204717954360569331103643864380342973683212134180302473401278034293826399922434725410805665111683617624312007369623961769228778916113050848308562277765237945777386007026515590096716167846138591148032364774433903113307116162382488657875019161967035152048959429893675176233051905372423533446091721890735160058569423811158272119688873794505448827487444901242660725073513735550085704661898637645123294137302658188959678700007928950922233347826966380383447477605078403888629188131566154007466493651992755607711049695740374537201590203532887602950607671164393902159568493036015401863112809830843745067114235171714223601520425913548201684635818782642427047696684317434890393657357938522092819723826013160310072814630544794182077866844571410596178513467551396311185124946300897960990529616353200547905333106750449324577346444887988086230351617222227641566332684405138562766289180804019223336406842050582967170021344454873650292749192338875092042664353553180601304524584700830298058745529763027724120657895570217846009966195537133899569404787099823911840328491728569991825180718669027959829924144133134352807462270759177509024936341736015636352510835097116688624504774990558986100835120701194594188243727916394022586790875543348048892254445917758363141186354182871619559797759343465886039293346870745551549627981657643559925863987936844583935656519890095060215498381301733858800501894916721799413390248319825903298123922501400255134121825627270113395020298705693049450104543485914829408922296989040793825226861804952986011292548166746118801466494507194201924647111481461260344622638385376343796111965513867664800961060754034173101727967581352400112658723024454458862333573719050078475606605798161030322565922979981630854734692312759651629063295484521694582608002327220653614786053204195872892871832121964535121479798253159447642830175659534124925027683020087600996918892061369341935771556641080911779042898467680041959024445046537098129394248698981716527422324489959617819342996849438398250104467069105301117437870303238908640213677797878257678935437849293882978086350167015821951421824285676415041461431432465596176615907149008265261978286143106517778617625286676801563528061708755816502233842403618871596859065036396580490180862715928865760244684304508703648768256552344127425815432967963829335737855839015844413547944394980589590794511625823808062813235997028861771423699784357639252048735133453730425831200915409131561509853701824135471114671228775838054340411279221919462139254385353021989838280718575010097089888540527404114468829914903919907932728108266562909879640634937991857661948550498188095008504817336333146711987867652836826013588210281163789210339939470839178885397268792308617459245263908329148525849169817069257585328879547544468830997617379796811935043528810655234231340474194887386708214559460991687671620257580801974083343838125846804866509057878414678220995002865296952554722999578979024901121743072488028674585666951008525914253899038062600706970587564555037711145259504695860482233681607162529631955879611495486659137347776888326798347893940380587916852985173068148186292341682152494848584934323094113045064475019071306508740371701749366846955366442622205655795495885645422246534501590554336730924703850948937065482984807119127323503439109799751344305618395075749583949396104220296758242879061389832798984615150537602228917769816354189955629519600386588401265773694006754090663018285542972281252216562951547639572404793350850260036271875998184323281150120756223883016907369579077108139091154191863511932980109284369883543047405255933468432850170327000022701134089204083764373987444574178563017785777191254241598517427645857797714714307159414657754454973501931098288902250253997016902524799875128409104439030854301183231655740921076207748182184418276842192645164356294589334452952488238289845313884930893077542563718621768662264384105235306540190011475056081934312429894258030044547741572093124323885048741505912917808197198214688769687208900678729577831148467682778738825892827015801914778849757482808733444472580832516650626069430414776912125439052257613764764590467307113059067830641297538975860146185224495791763217141444227766241327899737313954182446995287695416008219687956261563278245089630739564576432710124268599600301058664035798135579807326040505633531421880160600141337579598038798886287107500172973268910473118242044403519128199353016744580175877501346211826037881917602117620308497346272510170334079835583559169407852687451976667975207877172802970620487276101819343064371412414779771364482658817993912775084583735096261450136231634496000232693003284510520633872907407858089404864398491327702920748392072816552352632029846702723414798030670321919957256730094067368922722221014902464952055440613398015766274405765316179955209842390060258937086086558810729512871978883920829219999695095423158530161044251017908014321953023222987402552296051325583715975716798030818194213242500853929206479070392335489831579422066516306149928319714375905844810752930003546743782460079816649031712112058516331487582934827653208219365144613992843497806966070243582405431676110020927294053863451709441075065379702057356685435052160506558025001733521659059485892367122788855099884377598678388478285637075501844139776819498980195662746227832681644106464503946368249728745348638881640636414814391553552177015312891994684331656028174799640834232374260378284607815249039049109082739816487685952759060230195905865105660158100883326322385943976460058435324342311075531459010845672099265259531084700077869639936703932038055636364344101857450144156763599004467855891836115593452925897625313517542741118799497943567751094645293810654070295928577786056174657046392636822059343003011861469561729811677637682972095144907351072598517710225458459613865402174757160590932447329470159304147026205643446479850721455544732507342773348215530290506075536935485138970423328588870511151720508033408725989681232262766238263389063610562816336878128772569868845232508906651649398215965773673205498988670477432859507485059732376924536393404291884632175072020461622076685937311275092612416377401697284732281959731655062995526216076651905766419488168479512634518446686934580228258311609243928822192927449880504939915102805546840948832248855061574997330628071136113244403995060870842223603937223572534173958077332109735293315892715932413587494968419053977964306235116055428325194399796718290376544635885416532040011075285545003240273413852847534470843041835717827743649333737948706193212478762785369148525330650370164749752213592553537998904844078128007460966134594915728460641725822834266763983731402461133611101825086652296695612907115815134056418725101892154697789710247083546337195012089057606266514816057731213509537744185585388590243566721099321401575065994011724536832548470355026568454013860282160478034414667629324085572500041209411351550838560534570567918138516075342765903780033564564063233623811161005865069365584079155876779807852996112327956265407690678170653096650127606310878171795627375814595909757704858717088284677640364941124561954462946949859527432798811777004995845182801700798500532132048247676269253430012236234230941371631260560740201724883092209109422877146423182826786654513679701844538143554994131741832522869880578263880822265052797814853509146480585099309120702888654701495275944388174751128910972299382960655673548902660307253146402443376761133180179815447960826345457496586511022415138558787230506193329701026958190900733525953191904298250822260353932563156765823428312922055222336276817008406176544112354823055946901450250488578517282425827648017007197661934603823440533218356497360573348339671109879783780536050791063170377684317929801797489618611864259038445685818365207725302630623492898666538695063294039474766652202871512274737334613888304626491517057583887797868919833029067184460817189764640324634170645513718920948004607583592008794496429854394235931509474573292970751139467061449597078413508744096143999660637632677995674011676231883380889120405229590923099517024912507990265268811053858502583208363633745248056254943259704057603341398024613503678077498289050623578408614678436916060898915806451915811858442631073720574215330546402442189558130261069315157646445159823978220037387592633093159819768713912789447765702800895207671625422850108468978775502511059068924188700092715084897781422374363937803776675478650982424603632406649151846888197621404603874175058508599074788355663905146046768707448910749243349549599208797004021336536505717585248249402290458540380775724283079111974147766382569013875485852111126425225349557671064234657956264796783851879697112768510949597009565256837858782924412958573762258389209631682855978994071357200184120295968054604114574954264226984588489521638162782363602974874064635403901014010810841431365881915307481491981710006994865513147568098807470625605846096625746120202039167530759913297870985672026790355584763674593405558481183621240340581352900821446006262978665122754774133369011015770191345748546426463796464524648006971859200105413234521062163983063453706005666973955194759626984220377058958907961829689786645991635484967144818281536095410878368865127853545075489434283406561633911300516616576293112430363708877626992112656901820312740097156502831731248153406847367303760180251285270247565775719210648789646053520944052440066750505716559090414990003262997017870604720985855369678562771795717346351536050946268282649552681865615509297799267155706755163984235908609877503880077335237208247647824054430411324564015247387343634464492713409005196019194087448818198621495033444122966102910622656404217539552345788127665980206473481852259733994594179954685797587046653897511896070227729683903813075980132451075079246681500125437650017616641678941539227850795235014878863641065984152911162225081960327615140068106270727211662323207194774799033693127031871917117056847991736522900379196918500900520909736684946541105845814795803581847999989649556074263224307649200785252798973538536821900587485354289603660946008331530077425420733513730704480379440136519292965543981422309508011530772361966337819537192614953962650591740117505629978169368350596524544699769805023695627862450525888878420963684294611959285825953682478537477903991373487670553018240765593773691424862043997135311715778673533781451229658184200092269357770950289185211717814187581480416936337872390150985960216827478720020495385996567164401012169754045443810371209354124705245391689223643046596022190978735578627805717661544165814630040957374121453492529372012958541561343409342772623608678221560212671691256395128642171859826164035023575524841546980465260459250287173242287791034069287542571306844567050213801105970767547648198142536773047073899425923641209171970013971735383143589492455188514536659344671530503445441745857125355008743056232278642860791820823738428471715986674581589220850296456769357591602685990079173307372166612194315918039359945194195133380910496931202361938744294325255843846179095547176684046632686047708104643794953980418586566398219099242226495687887402191999455106000883119871471862024944048581864880369654886436328225855095453922675785099448347753491359751885821436482266188847529690285924866246124345945453161025528027090876776106526023716528403769292426232032479479546725088696406495329721192574599556361101016710630327434388265806015013750711647413607461429963800779937877202337699637327058599174940805212107985594981702685840308155851813862002806621001240571437761417930931255390091451672435477625681642801789955661104157711500833233410869997449070711428918183931700815476787557444559766272912195895729032522106721146325494560143556737049466297853679887895186773660302585506744379394286687242991939304517138329565003348081594962491394983300199482595711235707326124924935858548988279754296885173923338320433252751706357923804688836989295950532115882555550636888418609156187643462512830156633815649410937168881170010486162823057548940276635694862915169223862368878427054017077784030199705712094438997833257261056024765465521992391290509768469840962760499868846031604890424905984812955187115336192000695401744914054659738514902302574831439853442664936319137994324399881260911806795743531797069754174434816204450088621613993196480675161333286888399284351342284435972439041334291687767808274636813847325930405086548093667300591691646439247002723609649170271053953288675967895402288106973808286727681924288615910886791587584513383475578239727438446628195548015078085851880720366004572712673523569548813833494880155448450147311068686636565130873341724069345335763532094556001791713068914400683111056595315119763671602243252355081824881587528490544723344670633468641409782252020280714795438570076333863738601313219451713804811616078563483820879510167813062169430519446872887025471368081093081425216744435895746311348098867630644009621375152140398050462984355478656802863823599680539975273095043898414652984612483579724651703883954344837394514856085416398394158375364061492432745042045455003962618227013442513989683214826055854177733117032321522567459564608046182466258705467384632377708176353511269271179717268738788996289252795425510120449231944793621567755425228453477301222542069247813713799944458626472159083657086990773589428033338800646485386400606908524143589928318869907292126820956295187830463229514529459912815737192125516547039502867639017530479956506486794002502198284642618572425960987768940432569901401246832603079876297995517300727536991943540089841596255728353197077419402314145492278029064787303638473225816704487020553397753674465846953616711581387419949983323007249058960231010886797576784728100661040621917734687891158757478884067707442853094353594440190701644485923219710020090593385390493495260590579943163840452026200549930579577782481480340127423452251874050656399929974742935344331875823605352277761673139657494299601798635684382314586458365628598794091048150504524859793518518724163359249680302188353398598233033080905273560031099433488687323977394130124828463724688822717617215366979751035770055445467736661810021166275798527334659085949498491970421141283978323075300833971305169226488261278992935244538631598897211826472103608918880365576676263699150325359377355505399646724134006116320694597842566013608241255479440682951997710932834745456892024497859508009239663012542170478953972299282097719111924155588160179708873920958665693173787625375994862762268023050356596299587178380682131937946994964943387026941559306160141599729942604084848158024331266559706934340889341643754676155743868824450242134471420461259104796679136999468720972149236226541714474755777036029070635580836808905169788720905884495633776050387891717300616023311079165593390980261705614046435300552149152449748618445386100745761957831386093536186627908348264041779588889157818383291978052022857971212129645453165526097130973987934172301793021144613159800123496453326255467520617049037739670138437588380492642683891224332740251268702579170987926889396735384219844557384576310786555209645396576179720383117913015737303770272966137994046880305592965982443345431704008600868689063716200327568717953344081705645363698273388312179390696440127492294104012673430176311677051313033504727825609499587737134718588764501148077165636139029116133235604454740934306711860882747205893552427892643037610074706152746519271601696490443443788310663634432711942336770502089429856585619661878528086470501297215132879670085107005267441538674221227687114109084615757978588988758091195582710718221146325056546860032788614730027445515106751190385308847530494272272766808774450466284893916884932211096715757862370981182054572460362473878168882059957582398790961645652088593044165403769017050491501464092199439009465468233179238572088863543332080719623557294392108602609515141129216733002949563891204281016129989244642194155089900779413635165580492127396766314723878044556809309393058427334207391552880288484588640286862001636495921552478632500517815586874028681244431832785517172398554833047688905579255474587443736077606558163284196155217899333874408611744533748930456573717033826789899903625165287174196412383564463241893879005802415028566451938180124716956844787061342855644388920513072219129496449806582211804731798740783210515703143674274155570648232814800062018900576535633000014652100754991073065084179174376537313152871874197714648775115235703583779231889385456676285285701555298577615970312069125946764196830784151590095916427697451189062865207968887646198633759027337427245111492854839401261558276845126135173217832173991867854786517377762354115752279448755909112990953681063802165240528657024400064020983460156645147352639145095284199057381085151391535218469330355170711178260350520307959647740754399965502630559171255849730348276620019276605385696273605557621180062869278402506380909800941332178184843848938601339555809524027747069730343295480386876721249340537822627903617919180316835753373832382763594207473825414015372235582568077644910528308639718570281419885006761850153322966289083644946094223177317010827857355688243763519677755046940208945206587431165613623306026721653891009110642529528439662812473951210449905803947585607263812555562179567923180203311019109963408601081217624132276255105393400656683841828844240234122890670654668923685399603746595767103264833037820180995338832708838741164137626849590346634107546476864136357678347030887278029885930951253107257244538455943381217871786828899547411178556004114508199932168408376076268521566557004312190016571022371217748589787679744337389401128065257860077108104141778189778604565144074957817738006894135684310520270159864572610301493252593258120745505605342568180863367115806055862370523974763315893546472756344881838340649613173578475846646546998892096859378418934426902575389457849581212598325996313098647290557891361293410207465337307338809429042113566643147629305568234759247216217036565282299327523661685692767328902285652038851095218200415640224352279620354600367813596925054241561977298441071347172707158941907331112045594679192219151516849168156899497122319121981365655738596787085355908115911668842173412995545741051512510167364404340801944240443564044827646173858772274263964812761648544528325266720665618069154563098171824748090135981576438730159860041775205088892967325881124532046330740582450618117168389001190487690316213087397728129229000070215460714497924253679797734676137828639531239843693384528007650637712854675748963899748092688663419373400501471715442871785338407306007254853689544581621197554985757112633270927073933331712901926227101129139715415321903736030775185032606829135832959879094329399788640487036041496325147114321706789762662239635782706983520242027758737447863640247502893152869288802730664658540092194900029353090291845272349946906519928990778897253788830210240757488236780330954658023366343131309735809608069099441398021096984781752069559767189735855567885664332143808101147115361151736770002217758358350754146520614876590300396329969530398527476299304281513061173787619021369286383351243806356415727656285015922242991881395215104358142466865561997998205078881041470627548877903139514063377780458580816556653130362578354739912985836254424013743865792250098032651539153687287833239734534212750207770437962580681471082127097481047875961617502961848707713356032625110948535325263200868806157943651836715074354772862855634482129634006116808214376431102839894948805208587648665037502975383231963872904407603998101566894688571515668072298195230920174134018023235562822018796296421928538522788639470960188772372713285609005210264846140646920180699029040535628429419594670000309111968044034655069804550291396121018447211809597874073568691769381648445779743250647066019045069608044325061630769685019696038600271213738454533909784157377218056536423683163296308447525359654163706143367711863461452151867290176317734958946411840402269694232348368151122400964455599960714418611350261321385310695352578245608384105606146299801042251658684650643956955319047040359243102585440899022173673045722741627515302685402667517623778816472169756042683078657453824174290294335613866473338978963252621280813490062682752942030634520753321755918895666385671293752782541435378736082549549571430020397265125580042397495680220418432819432681584697446700471960580442099807184413424612384730289899233413090557026474553435553788995904820953900463789948744342324700883147307304395045771848372014521930646238338999907105190612334193955854714191714422564623484656251234283901740653456727413142536807832462415021331464210513673522143967064000553888915680757259120233635532678781468568590070083428452015561489858193235373895263464086676670095510868639957977185472199828099261364383556098600456633991317836446250600535056071896844717810731998846976388420779185667506944575075302331288770167478043152784030274105118811797195007554910489219664489636822055967404844783388575831454957559801821902509557418380304503168524795054032504339465812452293838289252681698688576772453172667747324814126000232668905166432157809168007238186427332894527524412733490247130927815332953690640931426193186346341002673186766299650753527897738924055521798946895867141100683257964240203163187540784620625515559254615934563862415679281515070858628101602257159782030397047001427844292142327499368186040447970522180820262910722052420549894711269826745294041487189822451880826893450619648068888247448221596717528598553584933718508285554698694704595187098816011491312793547682304090628913874719025256003317881017184599748734203938255646336097525237469219533231142095085049141120706356565482021758366428382316711942625302258391890596245560073200812351209128879929530829796822324655778459124244176016488599182815179972396111564519193002651541588701772046787703846255502283362323869985704868308885594161264308687165105243861008964359365637835551683261684143625690804412848590685998784150663532409870301790675341824221328001779324190545015623216525781064694720329186054046226606047249364682182042388840016515217364303716318416571714671708059132749291046448138593389797997890429748179259593322643985621726823479292759035650764269056536793809031652468461908127509113551490248837799338139955462099104085041498866554250998837263996209209212732085090449094429225079735578366525212736370813110114365906033188025411344376440563599700210060622943428791222415198671220080340774452398796418499367227287026166372788946264497387472424761048660894509464889060367349045827073656292527046553728517574217850738588437022395529603280755996349241380772731859869891181663160058346038598248378755735230485500524768751921059068996753407827973036019594647774773748706288193362430747409126902155244033821649620927145640583362059009403355175072231370521519680058529672587437390029454071877609645975663918496379247383601424553701990675934712420704569642085900501613128576059971363108388969098353219097050172764172787038203742452893298664879746363350436289051834032436413546919922094789784373277678374490145923714179919535917238745943222324928483860428625877998199647693292189166739133705672833171680103313940656938055450746846173027028582405522837562391985707149218646698478693657978762101051828181490713790048468926462777737823315124701768900962791781147105391288307125594554445924274944176029965045344459711140180805716426933954304983674289127564078390087280943361048329139032610950452737241728855876731589500102979657468843039187251447975607057104111271914094840842743498854344106077476363871202732170189417740937552975915027807530267449368993018170583510814832562842075159451268999154562918074058979445232770390529439424904453909516949922893259076825797004738897095924862779722382234968749058217966938483417167651512993608166031585378633025858126128423211317478255262395661540493177734469595938635845482240219859633366138272029801455719912727788745263531149226030310019206899943188598134222738170818358185460148924382132115868980118232823033772491937933031147941153076841833646563406903459427365766657222452236203769995220556217392560624330367739324669986517669033345692842081378128970557649198321569340031692890878772685842939927651370802910528306192517276048368989166118543757668507219585397472705317932946837113639802925839880528775717426679361403871827888618939343077649750363887656285542879086606639190831075063407653349776440608389148110084733497084315104834221498413894634157152972574235612968433698950658643906310400178411712810535891735286463931514880482637509423041526986754171213576576100125164928884938187493754679749702223494014161590918115298269382599091485417965863606068769030263443472365195679015965497563668183605492485440579480198934953717413891810948397682841324357617177480123047805055772680258352054320993254434388709076292405910950780705337813082712729792938345138555238469846036918100035725190123927556090979011937218119226547770584153026937521932593167216573094916597976309859875069259103529754076916251950773400534707998227177664876136009673433824213048723533467933049112626833657147935615130837642602763723866429894882679260777389942423326901668940263426546608383200966772742816003491488033259673687735402159314127367766182876316547448528255932364664918531014621484296367970088087283855981226595715407831882428880530036431641030227900999642430922373220210799301287446222659164723822255734941915863716511717818864802332381512417088830597889451068673955936416576795194283729180840492240109241803780511029107083663238078973669988088143944435099090594134922345731320412378064423890843685549220479449102380153020786181548953084416594908432884665834311541130981161096906899881881198487554973824676238962899845178080468953151516613496520214968377147827384873114617537156593528947585033648063410303405289737046262468201919496941400990537387963730798040807521936108169131747358565631727655638505722894325103048810850924305665592339752524976375066326414723608784498015886212783894027666243863268461892587874636260613119381935207442089024044198090441798610226737077035453103727162817231173311092340530669694312779858393232985118828993451620417933269481496371633341577891123745410010037826425380708278354331317355668594543613822299432748697083991322082849320043401334829599190634704943548474616592099520657467149169572951102554930239982690422178464691541287676030649911892468678432271181756738187154510674481506986211062560537998573277911501649749669146260735912438967497694150455599747855059577442308450790749847723543872923759934897472597636388406799302303509115308673089082768340222388470725214671761601545313971983229701513810575458716078689005725053656753384865725953579377992561647204845523605156248372791023337571236424067047371853591490083378266574665286582950945244273596991753866266454572153400407337866730187584478365231259377806562142933040906184508609713803487842732358852996263419083654704898610667391646016253984672186160366927452437181485463045157121214007231303438144393071935867781251012702771326309984412492308760262960350196359609728482541253261243581929139871334167806003139263514192835355956306012876655134400183846118390131739069043443393394585530209864111965052175876610511156592497495218054888555236461383666978674771570267321897291021097848040172233245140491842529110618701759706919944068134852783939434296316509387507024371188834096472918515750657453401694215994427641798756007705974582633218921128411103081451783664189273570551638482057575848604099868520164803985823420351658642381770142939205159510198265097604811894525796857958941041012711356237928003996297925354864861076841954991690225845117696002200970174460531165711062039134882334629818901196141320983094110534292573166584183340378565679170209252877405654630818379726377652302454926517028304728745817210791909413357203567201299992502595473815506164545693054673488106334261584020510267474234298445203386930524442376847206726255369274526010583037518164115536687576028712404772694847034692996091120722675355904713221343560898557801049416368570594166831546490996311689006913559467367724951825311901725484423845401392525325625807413988741061766047194837474025408783602192670398902142985967150685237798525788465372708173135282474150716823940056204162861378803341704006795750595059716376598951457522970271465241003435688163427561300492101871280152720384470367642572312868500903655504150500656024794447461491856451014236952337829738557319117774332439230667754196416640890170709302866507056037681477161908743405752568537054484331911880024306289530889790801218849971339263407431624711710497965162474799817672066324053322574306325574034825261626184157336519988106531318087365209342577688769632930812188581911419146331590811789199697851705523413561692845871562258123819898814626189952034806451176176219183986523398312211737153406655244078141135825552215759356411500169339804608018805244785827718401205130794935062126955019783906105737029463256859420609408188189935323216813657765233891879598855237536122853662272415711676319784054795277993073406802108932874022609814757459158748640995633667151591005810083569677179340398509746567418707485110808491013202289388460400537847251946504469016229277806361583377704833964608876496391661844171877319999577970820846171649213688936013459919262411024568969905075747401852500611297738888470694430319709997657762380043961882432620619659090202250745746692861054255704222553217721533213665672825339298053894184373372767642751150163271280806245496132151111255712136612094932537597613752310173596622905559945661892292188927580131620992033873917807104766517666810441669478888601309947332173285559640779126607608288954364987718370517281972770500714008166254981948351419122490238843019397443168393326847853874314812486480088689099513681696931416132910401819826762555176284374773673290002390194824536479251821354205833699734748926430733651296439317548809022897063992452197034862815555246036773812198655336711746679372444904602578289283523807678612925928229218940923364374796708392381924121169148098067604181098175286707839185472685007291655498500857140066405492773314652871819014048691603893434882339328960047562181372128902861633252499310365913824662135986017984393790198700823876241613472759969292766743062682893788873508318119579731634235532031841165223781128103541062352381046463365868473561442975798376771684628123927431573877885062053679382380830400783481206321682743121041341510461576535046859145015658829271704262621369756694958637504412892100865245821997005635955057216332754778791721922213644242139634499840851783957683056057022466443397543873190423484253607846980622430038242644830193780968501899624619828815988348083774108186686596532476199890567645124647698501705523451296551977194199419615744045172199712230993962242747163863088544604447806342425753425758670122457325331162342315397224444868443814758794242258218412680748097337732879497636768754343690364933437519231261864913955739686536425239277468198405948991341874781920716699149528243940503249502986300844409009997508721910037673810659559353075738679749758516022288715513014334355038770109661515049871076343587730211154596221463307260133141120036885612003369224131191698301138070664762672532374383455979894117530684770161353747347180861309447397751536490672959220388273873567198386793809645542379853835122621940764380368043191294829775074258650873782234405742202329390243681199424480568139423095219470297356181275174408297903469049361598955226232492824307342999811337616658214471138044372966294684411209171620959404449356393035254530130957685293928901188769509492234489804107245352098632271114505831530717893507796228618489440860043184399067704618566043612141931668532924585423209334836537584956625204678913900304662905681762723123705241745128017818787079613826074747062039167567539008135634706854018803041913869111244271311285439121953590735775925691058252487391041850191554821768258519923102132034072455966187214397108182764089731873153193151061084656763309366207716776114201542050062467168961329177292508231672833545738414426635266551754468129654176372541730083695682557960430237422679980991682086533160999923206204568472009003383790147039149092356422465664283580145923564987898669132024123487155323419240947125334793187282182886177870375371736326925006884721867319697343025706429441330130408288735001335680632403261487544027010953218348613389844633688304665149804665817614468350557643851242906839794763172474244212462285310318382843270265886249692074516109270162698552250559504188665002084907044064201577976626451357616398506491404307518327794420025667226398740574585861184749075912306545126712117409573827780124300057832565510291105525564881460167093851902586996057030925936918688984238202839226562732998283687135537400431781773022279263254795181779688525631598627363006137610248391949854414552285706781166602887642940555284381556263196221262767533962554311743756156486703377051756140191516794210856198710712610174368355593749111664835755647800055938951822214179773355750171383387892477199192810782701036906414567128629605189514202796947763999056291618833761075696830978756383370282228870594451491850234827750043237053965070016031740696951633510769676963925206032804079261113103649859796552101596144579183629340931806297946862698650319964604378981842858663630604684645165719791388431526973879454447361543922058900213140110616500176672518727616541127675084954595069944467253646734194950083442295143764415519720054358609275055584745544401974951963276530671843759284286909785407661106377638953245856687006694820091077577041244699559717970278905846061503129867898797833404152355007275096327654934263835837695076814811824972084525916137180352063241068985236686298621890682782111980672795510534521751896220199371406878497497746145574712245089301394985270808669904563245063712900272585372574498127428613021173271161540631042318431567368421819955653244608850749373009763080200883960173855654150126065986327794741852604910599281559879321044711230725768093855729492010385693815113462767802784785269078585179373878473633281967020709096280306383479999572627245355512797087608893160372341595815718662527305300919355715740995166285289900323711184372428853987328139932345419118121961446785972138491712467751998316978646963477611730678468474262833962309678288747667467865133590129092285837985483498421985469271060115037539907256098520652258085651347894682330952511165094695016114822532440184219356185302119050053517331193690048265266335688566864460328024099188461804947157127507748230570683847795553407303264804146793870257175112704789938036415561111668490131312713934466177992271756570633177076074151361760374473125671412413518748351304770111007930623066963865967691355184142664507369818202120570491344143103127318006622852946635777408757434827640888831920593672425231939016744286882113944300554080300571763549600247239215951820567358398717852982926533831042932114881173502336710552292547247568512342634715360293444955193647428746866238858730399509548781642788215537401420270075567319533729136665641072597872184049812717739280610559800764554912691804791791253514590253788968455362997727014817815989430407841234387039994288286941154011908166175277931970769375101267930922416662549259362323419624260647506585124755497100145000320244960687835135747678343641751086945413342044828483845419015112480250997677352123494592911829835830879729902170485207696787851258613024248765470540911956431081090842964851586643982711801907230421706005143124428944119391234587417735841473933692191771182225997112574445534849823460467988533934434959180100979697344730539074307519680464376809594018533895174045525443167468263797790260818486252746071219249133627231802811282372768344777837036674788435994329312713264432265875288112865717846064551547416309291919407695370276811357061199365191028288202641804732578977847781912996829039491012435821579887131472439214875932468708400099427663018187815543652897105095783658152467360738590607282477761418054823531625868242960968947216029448453169836615079826737858443239978058938714235938920245374744971428575673790514198180949336909597126498309380573498166890349616967841717850973187239272428736307456218934294365993075534261904065412036515815747319673913716466604298152413268351427391801316081426004331774659252876376985759582443122862428308069337701720626185941259333431860996233304480270965375221853064389718044454928747287187944012887458700376903462020086290752561581139483078920915783352602601483995824424392036913855345713461994024000160077131245675469210960386862753641748341058227146554825674003682886134413916908369466802378063631695524612305286305639907173288189904777579550093618330028628757846329053507097904823985273766665554422965345068986005754451876860904337529291960123316469738877669433558296770940365859944766705029576211663210278840994274955486358469116091505291640251556236158671650332792019793409674569663530403142945640526655482246442534352248792335437098968661448163142579972837753341267620017574359414676431999192557389791506604226669212988041540491931839933926597729394336847873396761788836196182285562343790959866494215599652879043715022792761871386045664300010155172199136263040727565509453221128420580306961465104321134409238968222050376490044521215982085654070986199229880358149442670419547537125422041613098243931692579933197373718350048656618751068611119332686816401108959446019246790309952528529703307059955774773995685835205729614960421612993405536921885143366113912600162478084296725049937732659538704166310155667547501288746290108118305828411192819606573128956114328131070446997638276172281546571778052350259105533968370148232552187982277062044196139527850418949716034855250282218179259264319035645252048670843970217600209686098008692051832832976301582471023867126932221393088217092575712594764448293556005539696081806745685162477687569910460905346599049621515516327848890876140710777250741881398357316546251309194650893030742344325285473259436077284674393616746164409916092743436768958940292826122911982836432749556383613608213072244613720439368443080526379776332587917203764646493798918216408023259995274480493511302192839258915268628270285349138035329156118073773420348812496781600872768004355689872136209128438203347319979220442554239507294946579285005872283242759390608408018273153121512140903882816264482386796392911002647610151257257613320537692895315079887372371235150870787110451071324195804274678000574029132573678000417821602425536552375279962890213051646736654331158221962427201345504276319570008424476852775069066090351365152395739498394958563006652124958101570497188634372911490937832598250580585344490874160147808828942192889718019482632361363200375729285918689085163689085444532368421324268531900024987438583970784904851383972023014028278408578325776894802018396927032383356600513592367625660616231940888629208744254856019829912418036816264797227351562345279917355721619515397812535127876159963156014464957913270473477176000659817459713372454855775286571475524127143940993037061576430245073268236899912440708019977485966449449312133680997592512577765361134339898485152960569069651261743363436195600697719785922560843606955659074201957147424293560161231854020950913706194761820502815834930661777271401347060231861097764148543862024609425568972611489162057401127050332447937637236348970437064196719512427000926625848485411722993132004273334780061004841300211287237659715488813753093111045156261734090728497205377892867224175913182739162108101751439092240430930383299455470047274340528011556990430438013967339986412047594197977130822520356434575017737711652777828618055098523231759563286042975216338409013135003070404109503282042181805595595819236562622434838488579186657555019438604047637092724870389903278606586027353078350467551196772430995270852874433683707295143428357756960935972093317143514481969940243530385328264930762639881520728136362370308193572987902072413539848360715016571766868153143524084200807322606455007398185580545005767958557031346834733507374505009964916199836629513794712789327075879185169945641487543655637015398021040695453974169753314936248471257158415755369826166949916574813864807015657830142358140170980106207019466014825144369197288718869917212480700666324754081194130755775514540727280977041676374113142191911628204655628790959659767189776484919758303335485260524492975470695192472208967652425544062858527761950944580062013803882105300101617261212397091465148176878115242940989484379816929109405965162527875330084027897735555789838465829365982716560334780488924652149480968266688517109169231493723091500908005192965085955920811099354727089654952015895940069188918402072081460568360843190835799025038906180502842706924794209325988782747961799960735225248398722700829062104281085927969390085658610706540699580341969864956008029801331162175302535377157984815512209420411102897479381567085700097944162995776463933155765500485637785331216621384381086608967247789072740294914416469927292421034204951484709456372462286213116295247888163345196353985266792461429804859227661151311784748177812240347819529059723489594480967356685256561174927321078373081550599488204083578875129363911567989347141145212940176271634393661810621574293504808043799592408898960192563038221547168536064113993917990659225790311344617630484975972896059810165218712955099192644309569028324850502994856456984961979990407555088776981722673540480097654294029525888471165574760805737725599456803613533421022250306338470597914347958338666326758239863611829328988493270205093590216015800188927401764234680967133736547164675056714376716049721750713942956165463407435154473662252595447840685750336879753874677672825456699992918317161497260206320975024751034509110158182615355631416104859321374538257724853529644291313163882527008700488582191932687370835073794660533379027512848572358439205143048982495405624333543135680818122766444567426943080444886592563530697870802645695717162213109406905328208256660717715766759405389555111630887010020066066751885949398929815041102939809156055079373227712331372988713281252855628603188798595200275907789536832801423228271505698655791011032381761421297121163240315573022128373134648804372567024484188804879929688892411162996276309526919573091033486978368350350251368920297466996718417440970439134335623764409297747913999181653820712912214131874623395477294437239076980712635115591519032807829401664899702885520741874408227429954066177897567111709761413363498106276472540789954269346100182557442688924138567714557067225692764425006099874407875841584303105084835183397363030900493137508405635297048031145884687158164961062073169376550848290116522424706566128420895108120320059226874152926888561451433703563996580945202873761332274538645611245082891433828319616046161086984032081579979321792518797845400144423915780174449072650462926122460410216515658111929031095997797131105794505405960244706794558833747917646528746392477573850752064986790851775754389078470183290271769660901674933188812278915202916252619926572127407378635878043240549169693308520450914758724784934105691738960232051345120475367187024458045092268897697806153417643892515659387965511856751653062855905050840345228431493987046479874598791511043311944252201201401211218350689410997568159924610326467806021082107948937332956131693724695469126314742130964930637742898778923431956028757364461133738787990047354486858183038762981255041052002664681109852413392779679334165367062100750350159616391680588113215850249883199953522795842528035859872216704873868172041902080608671498195535881366973680612237749728756950449879851219574657291197906728824231559618241366195763607315746632728068099604229235213300746507351603208142713389303616750524708690359016739693319728401620557667339851445031920554865365590141217709993913108998214399300535266208093218634605962994668905023020756251198696517681222198740721127415365447989023638119481847458820902634021310839545887468622115522991764656880159406141879543015261643316586468223144178810644861255613347345700964568628750629099675601812693380063427962144263046965723208134148402238744264909488598157736342823044881233599473999568587045249560985031908964160135497573595846119397198086693651754561802102934772445039140761328711885245874838982895837676264236583918025012797119943419009821597844404381240190861394747627265816882004226147133928592061749652401100683047786022264435557351629619691884046120232034267160056450394356604005710665588701955509427703233221403811662550884777229448763611224862682878842859649973097975561473601211216167598552754683361311817158136731072769575264327431130732988584096097802421425644160423881718687184871368183842917276201481862297121660514116059710117634902126047113993999130810146063626705265456693964943516308284641376226074704936820061370694774078876340875775884241203616143525793712383731914795531725917755416807464510714916773123505224534343259312165046195496703419410358234221989051767618919720002623165689380696944134026881372501708339452135884183444325345668345886763094590712570193351468137980175027313273723108085910111804112643886572887090824129073701694013614298566339818155595904268122746830710075096271658362287498826509204205168213813917070971971595100188666502323920515268251093852618138200256507302016541380218730613911889779006037429821923655103654516892745193432013170750476720305767825940970679834172665292862857393486535007836880799987035257586774136816011967961273365321305897181305738766588122737226769962803011689484392714680246680253932440215915716656217753120335232964015592982167277158798676933055584046048577469527042505501529339205560092108457010231691161598714786381127417429799387106975266522283019227942884390983140072017082084162042566890533130748132461538720929987555729282131827803075911804722962424202520709059421525722400322651595750216172464878854590566783138037341486438874344956227397978660984227568363736894173910130487100108243549553397805313275928563705518697896666549976208746423000466298050022978891298188067896071440531109936204181616468212621345960035027379806659478843172503269792282834142770202238423721052936593583685680289318073603029168461997509322579095550042010751396217123923332440161709232340794706615513096844946997307564088782309421710769881451787111333866028715837805736275030422851200207402018991758333949479477763199419619245592464393361488151623427092478804332046284126736301204778809767832228262008297107145605796339271817770192086181255771623943982755184821518862380580074489507313688072987632448476469046982829900337080526144376724011093706625302989222955363673060955921791261771488685165057279380803730634222208433787612444058555271360321523134211410848503264479104400268681797177628228312831481038578166756976897922330676726635296058057352739190161536675491838770381667607313941706268130611473802600734789807544303499093830728651602116620421394107335986681720533247388398323808718882335931508362576676533831408631805270547474933708759975836160878831805878618926964176796559383341716668900042038166629412758434622283864401757554431166420127382399293245380100003966239930557062565145926177731927777558000092405227120716850323999802665759763206969636861110505062027346370894063008299951491266757491396991947874685191972107115427568958669459351491501456256345529346318412164003076273496366865377839473094694684766985449905220232380438981550877920645680631724001786277345554933402281545309470555474977175500841117450883497841223586937051646682145844324876332450981665089372537122069690480491309459610925482381885935497340593260371716551962605802701208671242894389573111939101647086382313319884005830865377374756653205343281544316784732968761469924411280097301132994807398871976449955010463921929018235081262267711555915136569406515190530717743169039566951434607596684520903343738602013873461781722648600702156300029966142408063271662507901755613203290886157604465592445622137114673153215177082359730078370226829726826039609215618204399051869132406906988912171701597844898250969445023034194341980352862892925259626784358013707137952923129146507150091659741345069830098957841137359661452285979917355785330062437221247417222335569776553949948239649147274353069391257902314890616472334421785706276391080442545670143964913142065051630218160108324848909935104928159927338745463352284623816822427620367757951796427905834052417311134868716462803123705602088464442113675967226019686336836700161470968901577921734939282350859358393942609854192796503843951789364179356695961102730450426791084960998820269689979171836495413399717630034630037631041330090467188361864511152869508615153015283974603322910044127648249927356597186144456533611925230286167050807528403630130900723436705674082438714472723172814671167682085010019928161211505270740590983314537358209928333127336134527221037628717335876275171403731188239366017730910725185308659250494300080227807938176272794364538823812961116076163059596729590238167444045538123558109670480298732129438906008744962122833913488324271703882769059756147688220751047428006924243929132434452317050219365476971720395524496076689772972724212970472301540061281363918623110776191132057464079951531844147612257364877150189608662806615398094094942904250908488894693948042044852066402486747378439554286799012346563627775814885381563180158158268413182860237495990863878728119676842040415422106303999273632895985852865824492983896111403305948141987962999997406149766557244508993585517171113965606150014876899793521411674863531794354136242900131810150176410195556678659489430340886013753344127755625607190342663887936761164982759119164977177398531520790581367828085264922408676092265589497006399608099207064706077763803869999404521791777831518098779013403153939526777224864074189493548765993728197194672477587254504609629121472076930698857956005675643352523773796409022268915710986673940695531862330624760358012394594083876605310054371732931219239999474273929277954000216573632119366286615868300612422114775756417822037606204317020259704123498592926306590829353596905790388772886549865473709411300246621812261986502462225410614286152514061041595955109306027855081057218552853804243312942243292853560022918487011150055457880457175907341212402664576119979486612346776906032184735905317082099072863067609099323980065011442067938451070227976323168911256157595925605124508929701930292089982315235099560471762672226284926154752741988697243241671560510769095394826281602591176338962794468313754357170993092843427134539631845443156902430637403158204770940737956417327948979624972002679406186119819104199662814502100395731392735662280450683723431927546054731723518610922331122000064071445207701770519270070308906305622046548130667723160612456677970444828116733380588006040461943791479249155440431730785185855802946418068998886138825759954926482410090648553063129808576663805894559063007582580028690730484337875659148607855706796898837364990631795366302196276415001992549524165696422194895312468652617860873908216610260204061535718908197375546843000374791013517430409730849620120790256466877870533924294053378476730932604822412287295781814512054849056461073579511976976262083370024339695998253027011699436573931984243950132110699452042609634094173178477885892159063387629206382235542193701416579099098285878116870412756965031953729428206702109078495378590093690599650830159358812790246885377340748611427588380416724612730873237180257332021552798643564233015741976651062238441483751677153614427537771646721956870791464536379043240903560197312264043338841083775423229633311337824875222172681136503760260144595363654273674734519619980186778678380822644012257071992029148027944470173532142004791008407262458075891802197552311569687480368453205715610853279871506162433822674862304454018247316662963734782675835759053060478580166919717875200232601143883189848701048866146593364887677797258053905823113120022436036158372504391786323387050793124556954521217244853646116435463696667533722642609151262335553764603550477790566959967369625927833699669264770397233564662714618616487693097648726248630148051587367820432517477187895422569572155531830375158498650713597187055180300451007594958394617427756771762737777304977891064683224581157676898481138034282788038630923777247124857122725649779018264226694300524401839934310693429425388456120083953055454463007124440395779718071887679922106650282758526574089337360782743312259998206264294859099656925099510318696766719399800098675943694244680900737261756426088086819892018525023172287226480864640123009670056405793975621860031638396907898072721824049176488905629222121281592342605804987497488077199623795264307364400293092891355973534609946329341750529904276877058476088719236944949499290112896493623380599198551690543904302434225018366735182929247703815176896836357429748106481707611748643388528711258337176412064494598340305519940266595408962204009139366736340042552857760327877980263146921251790929303119458096547690145088971537731794037350985283913443629884596207610922163522547060368234931914275164354288639286776678497785586151057149055134688313648016541742086182938681896161805052832169268003823729664664528600161296275767348432896883409303848701831649038927242505382223579750751152201200679858411436507643031252719554933466562257177846221959749978661185470001483986053445861912481366536005133315956560194047730920924705129558249276917818412502024006014178867827001107090409104436789643317913426544206173255455646892846515939535673373659607963426567557075513297954204927570882506055333710943359341889763390158522533537531419891046780822797178079924154887259398607461645730950165772409734560151949360511166536470512782139019355528531973283971217659414310444391721913974157851564910873954532235264820212791808715274436144591420840040653236355525232647471606265851348649810513769842236923213550193781820594082405732535167646142688184783171972173533588230333801027750055170946032222585544018709935412338006500942869022536075926868957063673133782757577544056784367439069280902121379928611028487290231864836647966596293957274852561813192933787107088946045892597520921535567054027305640418255394325666651634764999258499692804709210943846151971898491149914648054283263778883519094864172513488858803521703956624542014377853687685627810977584179739507422712060268843749939732140984920714409891059295589773862502350393332972492546433989559628174194673390325399687907402947012095152065188301552383369016941035278618583827503057571201183360191564580427042327043229943731376609714544435797006857908424009870503497303659694887516024797464425687080572476439322586567712214661241748157114249445280909591781806399587905726376629272979573060532397452454474786091855797107973817189667593339974298274952984870235116201877941450455467713928864588999435852756395546320859181106124918462041262987849754008821772537379212965118871778978560480898741692652258766230504891199834830909576259976636270454380786680446500781665306285330418615651252734092529178579373757071411795802310221872407040069848789977813463922138959258958596370386486544569923603159989123672732648617311705952666189212809323468968607494978717363670802642738294792015251289269166557845491721350178746359673910353523160280824884239037214330302093129832918725741489468424986964670283613507992907646717287375406436903130946705213985844027515277218088548123148604826816395491225675753944537158264688432396306463380777818032630801091198418015213250305925403444148658792670877469215482602315284884832386389291670426909793387365890940273600118100796099720268933492189625175546130605349334003818340231475212472862750326024780117952038932413079077512012891714467717633254612675625371391093497909133970935331208793354842747822031571121048217773636865864103730053503288273184321024121089129749174023214596420415358285382856398974468631381302344839334407405066587377630331999473960130536354195371050550003934271353369834149378359554705942846673810207310123833869709697274642233122654102836493623925985200921759511497587010018559311125725125381284591681562657175502934621108019590748494520094042709966112097198249300106534674337769228632227487482026919389808263683011722688053330232470318540110575726034159951463745623306132240034826629063403230193354262031015966819057503095133947780543660198582188258112180781913977153577343500363701486760470292934956138494543245890153476944308884470006284891478439095556388501837280446947727149743313753485467761314570840641574535887109767282654258504772887839847692005550386112627717544230775672050051850371721993148691275105710218435257661492780265085021709851233346572253474100228879644506591430070887471664731247829392666213532873676925061419440297777932484109376798743372637214979906755006446526923685087823869224162456534163844419294948594147057043649084065709639289748400904196897900847803651645905528784314577409145788428566150500249326177942810904374034274881010254683609453671766288515655344370211415406287228990344260879725269199254426044196411623941052208667670808710054423069311498185890510658759920699156661476677801850166175966904765911888078280997830223125736548225640136385827122425538421644450362612075596037151358959788039669520856906107668867679267427222501887231761273153229486732732826628861013389723382591111497373620196401025367874888398770468328987107680527740065017255506641525737873702778323518985320738760501961886091489370015834008517935234924382523765240030787966835969817640470851784927468176365482441483687185449085361456880342924179948785191745717968011604319633080262887119193442806002539008595566435150368841629834107355319604021177564588861970548639653187076703634979746217951950516171217511483759809154711156932979246940231431007473463132344384482584475921999002027257997261853802383586162224464154840593450943984733972837333825992740050229126695466840822723150592095051480016109468879466037084839323322656603935581682370138890075049635788403858137601285383482103427718514078618596530209203042012705864063608777609553271026867922599511804318062815723567068943111723272765152300319350660550385736943227760330993574239097467388610531749869152509585485369323256695968187651804362768695982441807229641035255193699854174301345449293253330226092479506576785615149960968138713085384158558566146705660931022428346424974118314220574415194468111673439085692662033004051614177435868629475441041619647408537073192045007483344376994722290156319864839979611888657591098269940001352218430067385230471943596924496089372935057431043605488759594779861384760417048043314051278745851829187634904907158214193373255787865460959981852468425646595158567579507201048261590208766362963509989070437298154895104461822663815924310332169291600231464330251235304316584196400263562051551831746726568646420612871511918012628066357436403040143429555999112812856948669921202535730473936491596485944369665496969314821438714497233587321563406506928845673667308065002673629979059784979393904478436721994334253400522526308436864132575185122889379334445851823674036645282546822439985367057226010335294227709874734929796577616246382069179836629363396619118817009514984081209576525267630833759020951100313609482924253405159051529289562266876522950171184379161137527592733423998323891069081991667357281157911089709872376565772045654314795109851077510660826120403941751258786213109191339500161227849126294004844434000911910236290427321747388192818657650215659397712777299694684288411321656660024691662086230579958724463832578337454993179475139829718729836738892460580573231111672891673382464881383244579584027918770522346202039498115920707511163480808070860013782101409235676984417077334831913737686681705271913860234343655410860996811489535396933134278702111548718408415443322920384579535170763364045125492128855215237978916802861383038557658258826400860955451865963200971752910798710443875791568824293246875091816754505263937245472524764673558332427750013259060906095124301311048448836409110197920463859630456953743715387049261117990421021559677074865413829265682692860873119398304625537007539052280366612234820031174665051842897088080264398953433445705084000603358946974764513944375113437632195970448084798390549221922086855174131700752847595108051580675737077813170173423639370360987611157967896484400168092425618522977262105957011772173566717843303584619947171398179730362069337184934864692668276764134982236645829242214259384420806765601769681126659959836605618305230471598302455794348092775952263036311317891434927010912005055083871126129812592419816815730496950704135630054809227465509863853522824171122930592695273630488268730067244311918735702092132132060219735218870866453367276216046387211304478513098044229487679913421107150476612458725726536896814013820704342238204219110853448501626569780826840962720811332136722107736636463598231250766784693616859662939940445277376882284788149368921613515123445653724838139276467824902666649263015545580480960420389189840716135362479325110483776114355393981079185222272039884282930708176928710931253524454082853738890929152050738453596550599134040989403848410163919947300382552800697567973593876928085964355747509110091708838901993763834369351992468882218885242002814373536484966884129399338007609098631543832354697342825595197980570558373033862179542239366487714996852496730336935841255041875447500299831262584502431375761103835491955950299634634364061544913094344588082784642193166795774034057236954778322214657024029968359176917128524161933567609779252255490371319301442624374441435440235959520889011993473160247821914075496343987292929848082238812126400626833835930473320827232518823119096213921838823155587173261118308763538849850261075216203501498675651219443288507307387213226834806517205350590844807392362310126835538755967993087698468505773086955011923743463490599490600596097018676346900205319296153479138402497741641675814458552250922285166953940511877519269548746403320181938952908486446516306066877125015084835488459001526183445622498207118698756369674849321865236194535932609741062624321324069223577703407219426355116306810924822989293727070907501452029380541680806082397893015369582018310932377063765215692849465984994769930619314261177955417452957833030044830699724509098898945374091317115554825899116997108739724857687272799962071162254573159216174325064998573848579710069381787405146012454705757080758528217958139756963881652500857137367312144999711875172348206686451904447961513784037405312477298037163673667819504049392789248165050766650246043935296374271259551885776897651428211454180417936859659601315816813993340519093330478947572409987663556837580370104342851132446385167333221903831099985776737180370262440482527921275055139548881258465420179222665840485446059018044253281866087208477167051502918029242510649296241370626564490202265011791042986270400185506332920018464764314269880017487352741128495100256003198855236389983265628270249284629033580760330474185120439373294190437222712853098008390144254046631046764062112720629658994478286756593365876813112809788044141708803653252899511671600148656118685541936476997415403846635704217900577410696684068357664030937484095409418855484291420670677400732391272483044849536929191180923093311070820181752029344765244805415573221458845597791007015765464437063642407069223599192802996080281935750149500233118702778574545912684247741448889578497098946350148895173874395612205717931078937768796831389454375575236253552243508803031810564665003102434035263699277327511007041455877226947277791025244225141360605525218017430835913393072498420552505929673867627877174306952763469915832004856683857694701909190336727807671509501288021157070035732096198373942466457719722633729965308808990898648357354387614002992660797101969495082971837040901627162678086325953892486817251250893913451740061417938670297716955520221326545748468262991698396573574028055734001076272262383107716304644583255968739390263640344631201787166010918209077696472738057594259385583437214606338816340034366527774532712415411565688232738060913182535354873850594631346085368078923082006382476208889337954433440314962124371476637300902987574895753871042093120847719613431452149923270305502940843369228363416056107915227930907980423693084420059198949084257836707119244553593345735462623641489606252635938917808675667150582542686129165082007103597045099930505991488746779239242825312481191517266246182556096751457561847956229560012626866911885926656280147621300721014263844190642137326527376487304374277967835969758403690513392643629437660267240959731804276182244137485944402914147220568088868970434625581216749319069823440135700910750516213517901871714558338024946564256870179657064312546942446713937547065840049521415760409725705260868795188546229049312423769664621183174282555611290361252083305566404871207838599340312880509675881480260082900089951378995061225696870462556272112412289046117475340416745816043026225185800008220662468343971392117741842649747603131061723455842109351909251644066512669850570324534537924874167524941535547990556322503885168298698695976025720177723100440165352273918117415736716824001547974795278026198945029518669474116901006301310391638393225811577377834650093935644552349662348643102328094382323114844603805856053048963331054894939302767567327050972131021708942462857210109932619927224737611896075925283374837452254045004609118755212560403495030537768579978344075526752138207101739843997016958113514602921901092950258875194197837248516144149230404093686113587527432529187001521182378233846073941886022629629964645620291460155425315706536278708333760138341433250993931014911962327483359889623477156989161019714865173618666494759239495370439662482538286648779852675726151757826424387119528005957297133371489483746930602749155343894758033179066471738835596471403923569441211672137057169138481531829272029288329479439595893887359082047458379644826825959965031660860043963661923334940461090730128940507895098881341819485210751417761103679944893401718266988290497464727280842917127391869781456826578087404102768605864597341070728874151004472982541264521019405687155377517778031551712871541556718214847644091826148120494451276601281904216781196042894058132337180477048705798174571396552827507996971304591464786417966697679722461675327775230965308740182867769114496348371564910256176542359662865798748189393290748913468794581793024750762916543727040263221167658672141744766813016160389012580570586646806225048387361200233655785266208934787186477739696211489352654368731808260461935173591996367366661544781389755964998862328228766636368562281718509168561327533395586986820366536522326527702521321723922795016823267413284925022289993490064494813335761867144635968980927759047698610941135174543493828130630832757274041269418642495722146941330972353456022198874390805206052233884934170089238705311065823301606970849602326371204525943228499295172971174553274401465341350871958341714863793056440039240132586817640374889910478682706643810539416263707906589124367407486274263099977192475008476016888937953509909382850424942203037511110429230741454934178472663114984508289783223676293079609050245786531084316110196110070850596276051468189985872633337477515186113026246023951714636213499775168641521840549420233229662423100563980146656007109337722626355640171447386058684189553710720925337199731223616388851254155699817807189307612327863617797760557571985667677863374919248817837048136846959689047053560417435828548950774151839070933644621820334141275974043799418232450046163218572939730786177214449519563560942106949249533600818032747110811322234183959973883160404362422409255564366049395905868182625531402045694957817435162219243093321222103036323799429832377891646596523238678560740497114285665230972394524618800674672870540035780881102221344683968662450602746071173624995877672177467950318452599462117757100541956471119143505357653179625101125690531609910227701116197914288734372775085654816918321806910629555066027529173525298713160234447446403174045727798755658335019557714328792421442584740854631852363073719541933999311095899370559451653460104425919094071029839410870722045280950023354285754841661734042163338326226499851395793144614626102890081760718337205573220134955786939340226984896553714209245431094295031800018397065743776251080035610866623208075161538785797974610303116702299618515740490471326292101914223854414671744958930111879105350223338929320930166471428671206547385585011673167321146553037035899710519693362252457492380294014988359843911884199025736084407868240496084531397901299259188700694416541344735512065435402806021410144041698775465332009200173026969873638556768764749078570699622483504092818048733079243699706812831354237186452335741620961196422379998405002779814951074420491175423864538489223879025080754259484952653999611348727122012033191321251223070125531122130951750215131188758039799817529152201997918799778597834318311963432049092073358216405279196846499860752742537217274115362472968901923912087493444694049686443793777990166018862954659834158923559106237755072907811621609235227238872726891503366648646284194818620281126369419906083583097576397868816608360265459580401946652115047219861920040956027384418955764706593424401969379972967644925814063517916864253091456503491088867416502736471597882489843712848730555340698726431102482898467649916737364203537916552847750133074371181818557002450566952279698545151679659208724686895653714311088771839590099811113252950882590005571661773287704144155522943026450278991099114175447520557069885875030578051039155689550892930178183536359461737363340332069148786552497288930381612142354320525020438574699584966185581774455852406064235213179867817012695329948869994918186233088601051058555196729926789438591062529436659458057228786102098847577194868264038285894236173349470268655315285664594034044727482780124956225780055804710211229907843965303636084219093450291395513783727294890136670499476097955664095602274707431497418949757597840237651434439913442374649418785917814789204137941790542529259377465698189778439908171817138610635157832146088073190512452132362612126489933760333087743971790283204430764786745132234861673111316142287448495035405856159190686256972285831809943829711315566258908833619146003683427411276567602674435659860501153824051143704865630290013817318094469181454744947577095564497811806429586693535913099748006720399703938032351539400337013068904373523380849420632770619484950972057635278929340669924104227496494646129005511203310731352574148574289617293281156898577662196673715927371263859109212779273112747670353760958414839608999566634128662883061685580057023398307781646281995030395677490581447337939452776431886183427461362160296179647073132878288491873140490363118480013442250257279747861809780644882334156522418920023289314260182552915630443837685854365802290891356815580000228627365993471547847925347935672473570203814452897283038661588065183899449323107260682777184697303653006422730701636626141369350560403557722012428707886680374175745631027415006986514652579250294158502043877871281334839353059539263970108234748043510581300579607807186415761299181182598932354943854258123758567188778691090358247022506633791733986601404910837989725786337450521130459112753078458651608912739820559875060204075826680099380966703745416841919629756576340494365613106791538342964395301846417142434548437433141698187635446763757972182003965419938018892325634056350695036203283459136870415017254707905850127748677547163331215151420667492735050320142276026399557765389112670947705415075368099794184489127006461206490800704160937802191643827074752471344337256182381890520203477586085309697618532601798829147146917414555976837720804863476080707681185247455945811059848886162080308460634851507514392931581560671204907964730341308551120807185251804345489469998026541651386559562681267995142344873381989937485791990947562431262753613738217294044430984708660930832874080972143812795326988079879149553412439054916532574478230392336655627214634556299897242458106232658304223310506142442426165472155072338903537117803145118003528076205062840223629728238057450300304707345154613333302438716460474925864644370944620346795693604998867590713751871138721993308028931582900305758750622202907716671395289080696695734571013023331099116518645852363632681257355549083561244381998170109223524196090934024372091296844175952021738416171313421704707046628206150098153967069142024777639734333969675582874189005829167465277602000531897157602181950370146498645014666816874639842696799794741422396325991788080160843712191753597407251082490595996023739192011028767562844185508150997042337757273714999051818192765828829587962292414948192488122209933879191625522478201441874767089097122241095953387845673446538227696171476340888385587475252359667630250496123087819105095865596146989164585116889831355993083273841169188135073292058540118998008133979892588958800466069129322627501904470042352893666358888612891291966952127309023163119372615484592961230433392496437180617546176238737104809311902474060932247085484821653738627239432296256020140871782953007227086266732414564181202530084704292718636790345729894578268780937694350809241676815300754351227233850729304851442835906969495994589010764983149204652511111706605650431362324639618303656058522989346188391334505044427915408288508054401809177666777347698578955981704708430506973710429738511706188584874045527523543865228279243112320244112546169610478074601084679013015045365403908927073443800196733150693111057041060626222257715680180383795955299662860746589099453374284189518952805970593621403374306657436818650882698902363115384480144953792677505074604171020280332625300259472405657762119461478173347177902638423536960730602958080078460016163471923254101008726424954170799064703015142978367359289953325437498464589440125121600545987808565952265451392285744707309929670544398148360860491783943672610762762435219311960978238550420440130644183092420524246665365462774833582360775649329150420263806918139630625539933854255469021306801833129706893836934438859569277612993495965247367139719391352168312012777292967864406803102193160640028581072906510277943980078102615341437798706260982894496647398447428088271664734189876819788880383025804736408691809631655875889640668490506304261300237224257977795125406006421159821887498984324769478310263554714673905519310476536548917133857257285467851386666734757624074805634448135641202865294555157295014543224884719989234780182175790924212451800039077444385920598029384256267540761636388620071673924816540924526145267851781745770968933188908208444547701194194678712131958940282857309909355689768279901365113220942001987669350769773552615757514729080906841447358147331552209695427593163205632493595621964097281418617434419817783196680514197304779834479057871468474326136205893148976882106077838079854739932792462968430723900520748653126699481040216053683433279569373370201283828504599973833966836490442746610279922741524363415128680590757669760236680034590541763821136159940317787174137767238959173740967883533682064719854723603724969964217703696382109266875314907177710923580369411126864424900523522359868166387030563221352896900900378981730653512219912868793557667782891057433813758357202723696244953796565325444210730381940872558773981615370685861825919463384428472911484740771076110784206023881888986465987000976684076916213291128903431935885891416260180040717283171563649757127475343869269384170934203180045414915048928504693182188192106892062108413237885939778138895419023358415400406066771664757719446708385502943404406833350143103182753785712080914061183053431467744314165939348378567290195656773146189800392391451606810220055667764831823780082332861999768976242615571250456838532186467651591649550635201332912086833260378330515866158156263087736010320303878487241473560066099054609403048710225088670662448556016346874904211292802820757280334464451210371738807144889946721504925183562002920205567765280536678742090649956065659330057154732460150593676525937965463950447584852394714248999746667323040964080956552591666943471126879203501342242378161234726746124609873649785533303137969189905144013336253127220486433357743114863819923843503071722993304288964952476573192766426880858424196317268091046102267025281632818580982986134511466768835476997343619272939984158778872008372854152606334594196466843854602252748819449266986481262215782798781447097390937853876075739332270815052161594302294776055877569183391978695985526455366144727850865922257211558393763600527644642078278655969880678592674402992596381411538267355936084763451381020732679827973231440127341932879731164966032988147485629122454839525543724202824875799670477859288799742749291424545971553554252920546669438076568797289713911520268414137050977618428739651786118969656396633897002809405535301550835519948113242359887121092459552978497087032270870521031457467574997596823744056984285892708561383983490105698483455959742328121864993015023526526387949118088972678555517408711059317443318419871172098667709285241372839941189374384468956842742662794447341258203265524070438669752653340738452049827356833892562475692146265388429085270001803651344805190212170548034289397627885993298141314762377930138938483036108605312046795176739883111966428230041372992890668658811853228722538943307896783664205192436216814217597442095895545454958637722690783524878815328658147503635636751289208316498628238722122603014368450904264482168803367302986152920990183499631645826845065524272165290558870968420052126172393073926821154011254475145932099846259660934444629203775076005683719019126110130596805067076703250353239624410123457000852496762513680026899180156798060668186946634373865734229903871540544738352563070199305474851653710203147806972951215038890937386800037869883582610272145717496293792778010786302960136926294919964132948763997137146271186163684036932978603083998521307854598066426242815277755022502664715137819798887874210476018553687309608944701353673637577141225481933493590748332899107152990876866854729549516145813704970038666653787901365410983449094420298655174646136069572144198359477651604234351618140625436993257091455766853139591054045825139671883752932413762600639898973968635338922210461422125677912206328807740667432684865532860400971144726438839749063559214503606606477524096707142658925312925598715797044244294369422430199088339223868165622165599554718867609548811031491590031123393865831793780838434308320103253738841972055953784096081234875950049754290514417488602698458354790384846003403014176593106873401087287474484062442745217843136683906411694490153406357682126521903164188817909119296289552356419486202473503867839612049918817463172615183980847514684425743881688431413721944253108887954163145418734175283919031370303789248159593902423959221812544116709624946426376601145687129046049517835288221068510951350751844255859450686609453901151151605295642521183671994976293502231318133268522773957275247886425375697243997560511408457999620189584790721946349281851222894439801830521536486320180779546481065240269252157006643518407682557288625605089418970264576543604245005083286253722015596918275264866384227224126979055682452305198161487414107188158111977008637943084089585635479871040475640714696913522584836439608316503361756582753507827774397401585612899747759531404593225907466977997709742287177822603610436416427092693539462215494716305972367478124316671360370863774985352341698771949117083443001536398536445730714784344232284743049391196257674894712257734804697168554290205127331668888345433524234873810933329961778180613426176555363694145846611481250394188152163920838712642828736314576167127577163880404546932952630362581319359239572664528949896536632165832498990838398533669992811415629723814994879436811988818382970622305973177512353897567150960674019245891085991235958954242494608906276949316123322027526847735184772320928152575902292397218687230921899020373018078515247978227649294573840410451183867318076654119012040218650670405532362117094294627045619264478708954354365153108535837158338544162369202858500553065200338159234704391518443006512283977365172109330875192638603948250889078218265547144204061527759567012028571961883089368751940590225778031483290818946816495489854992788831784223176266509833011223689578484645107105920630675619401339663521323553011209493902715099775177234402099462338995084568118698754738147968482165674956807306507600877756302356570937576057818779007766982385483542620171619503051534282346672047468428846516751263978731299038297368840371501177266132991982119498725345732518908824847221112024408231555153010369440542451503816618759686084535837347624045867220022076446401482063077404409122029455065315929473018194085606656547084341129227202560934645305041122903246637359067321426442553603430499122436107556531501716010862489391825039967530690346225994169221073102831126869506655242629294314199357261993922906589067655108486969473106008043318909638340466928977724769476863227922017423130798646910341668185189934784411232990222661790765736424916875239463841691836253381305493450884950233723422611961814217804004278021548387167906055355394541393593763411926404686379474701319313227280202274212462649054811523663240707183770297159686648392808646948843408658493790734320903655032596345259943583950018703867573012645924897150203292262923372791725254436857184319284572427641206482910284814122134998782933073680608080892199676543932331443546571791914615891172440103773594153868182330474556867610623478411257376965295326230798643033479061743222589308092057869196070967699978600216494670435431699012154253838513800727685036113924586085579690744243427188852478541551199613018339059272950073752875359707577694164130036515553674767022754127000518118885072962301916996706419961335655211933275386792963845717923724845702904724566734552836561657660376640177803672935447888008990546669804436656205996328124275011743569520195160462623892862589917895851457015017462248298928033883332731481477439455924727206509670858820969277229656146843408450341244760726403987645880738899174343952875571489480176431951977003687727487924680369957359289494147400031705480906727849653718782461074500435934427061683131830175412703955673291548393939783357167826558357269728297577446927739743971064748628252358997738044350686423670778862874568148917273661700137877871643016911650007723965506106189115273958471760445225789694095077965852607200998627625494468705979449010210029575317316573539634546800506276051423308287025444796820346441368895372093216176692296074097692069146068897745564818496275658684574749115160269188064056993848333128402983417262214737579337404841297329651069944080388828778019340721170925891212746154449061108554670422655300368631033428917544187328522250454401488433736250214053483006929304645969747275603322573692561044132979928834497934326018834568811733676536692463803735576425987347004313523332506642375110934128548054146544855071036360774567647666765107667145196392781581740217143951602622773478603389965452708726461292163288667658490263123310125680955599390760938074098636887624344916668974369937210869844188686127466501660786947680958558670327428076014793520670678681763417039753030937567993791160244764934148389540470767068507812625452556363518825131762269972346769346454397905774472236643052436278223896690294581160178506420976792757864418623332544862203761307687409427965051730705984679201803297860872436673305663543958957515387363020931739173733779949863427896487474395335168299678451985942575686020817393662514035069940637027358158740081048018851188573759192673441626696805376197671552243270844797301912683960151296714864632348049584734871347908311428930482171818702601713187671470348165649798467579525494628772607456017313335674734061808038811584679497297480603429146621626422322879924991427078621520394583008652455928459413025751676359714679900039865201319685228826707968259594766226477555000140343829592104983735575622432762597258034134156938016328720040721208721056022480580844166492115723037521153386128763463683195841284049852345381721387569059186777086369009743486813371129365765234935903139896830113488622466712273096123348710603941360627754711576201445725175907444180769358665889923489877569028788802854209466728903176262577415291392773605386893225555269699144735764920415965926215600863163759265673374375640981135287074958112779052471878771423676825435000761095870339077216460197515776610679689440295226089190818216671036455822344405956062754194021488318931725772587510348207799136024414676446821109893910918658851710022915894597549018207553864109975566045828239708674631450821964015878912881487498516993258912622121433233991504046653821909099625905789907846145260933069823712340286343955047867562504980198684951127018040476408495255604226490684043776178662914894432498546449876466930247960506513840960050599504255922573994472061666137301865445590297347795102176715517881506789915434161402250141942084112647299742797534197686882899717724503107492963589309998914317183635464870913183617223874268626751309899529042815811510464507951891185598647884128810469856367999679738423680883263520147667843406367332079509988450529154452366025544686267473891184127491051758199192203742026488851895243503228188372149073673253532772436705751478604259294006618533771949276337203637628566666754885267495917357355604500814551560384029328384841579075845173030087977215447025989479615698645105570880839088266448018454241727059827069585543223274767787790202305965343900607334667039559942790457937657723543137575537487872684265844713048147706229316409104168849714965937100001496391963924106512702322237008263444000045587145286560987898544068466070675754422036128269113462993688874793912596873143186403560343522463761783652136527661969829030283440938959173492567992480312962157998780076546752188904769716844086685747782624261748899082567888730367365558208215142759030919551330719466245487723724011333694655358224973436261796118006876405038312525027675456928435560841886288336678816708514920079734835046509290386088049137921604775295114840078740399467698651635607021134527901127574248936028426292821721981283075907264616185105783222020182370444404537270907121439011605542700384688745109018521337991161117460577801928445123248782073603196317321276303387856214432586904153159767333644221612081132241560481396122725724175251087825531706021086657540142358209389264707131822168440491024037362428224236026087742848481270050052419450060695049411028631176550347201879605393918052927277555528442136826093770651123242206068884595805170465796756375052974717833332831024983198998543376032564933042320284824988965779635034153819097464440741860855593805661714516345504987294019910693849566262778315563310909877417638081000982758841943896773745657553282961052128247554189952393926821657240130018106222791608810039005396705641715316383320492972243974401520345396342149821018343507510445152277578371300491690579150592974535998427198222958076843103350564764577025158893704855624347525798925720689307237362427402981087650815480660148038997710810319123492442191707099882714714763099310642490772408818376126150774019674365119472939106829969188119464826130931095943443670614269607863846879074256799470743979998392565544184923139180788404786352924542756365470087120592009921160451620591261750302693217203810324880633899544625642464320349633618509384905504177689698897000698016462301526388545930866197403924349543189917063653377960711705350482485351288809231751888463197262557694051464643764529233544430394335474370388675903839507906559915630677883559396935231285573037520802029733078012830829509459169978646064307389338480813351792841022835656326820764289030024980073707238328051564498733257974362123162723124139952270503573799967616562647539822965930181212776939147669726190726428676811437644042165084102243643074766500256656811556312255671711333045309981479936894844275114456519531314382443188826861773862469224601728538708440197752866185162907356883974813790016263479826379333174386632027319935135650257508233637251546144786133764231051955453183135503492375305403996700758255324778104050994197943965209995266772929267927033125734104182486326567464590596145474170339445959213765947652544132297229241118839354271840371976206305267082247977965581040474770682101228349042699142091186856724263553967088849578395235939828562946233103074855341127064418074894074130264363558113053094154418685054633267945048545676580389894468962900846659500512080272228040581485998146476467293291572431839843731455504770487641778639029866442805866451612731169495817710741961495091211308646271246596412291515986364589538933305620830086990614142650789561393375341256405651119666901037494469502339918770641921374593073564549358900690637405323573399344811758420958395804140672710769760945733707779963575818471108887645946316419383612719259138265967508490223163683762203185124778008170008381401819549685708223593782739191975168474653140030720646820131364990507865590926177692205958537089916169633792829280140191154976526544656090347327977771697630502424958265508882973835506476199920003520830628318348959989578689631052376031115265868183994692326922649100758058973424257387874085901167864745041883287459194423732622436564073124764965774184404551724205231204334325164806296368492472780431220714902714684035670159641946634002722968559075813368812785852614378751733104078081858314855132658587071859151042157525389936263661421338853296284357311211269378860309098489884478123123114793395266463308901015178027955272030699486741518322227037490191496561318027090101159305860339535351821860799645649389522494811539956642586305486438931356106069141399027206474251899861575681525822107747011314612100882536524178052495841825456030179880817539737787653995482753485643896585056000400173477338169322834854117879558101724498469667818133274255239874508431874791516978217018392986922467774601592623447287009276878406897319607086535520510580972361973788632199883138793144633046584376421162825839445435666352617816181910856019236296524461401141918009927111412310575915980752045960092917429508969360828862929543564447502947577786781274855685909927694277694391943682157222384416347419023264339065366022814330892887743716005870861138743761452155437145621624690508536167572460282693766313742577981681768437856271099297420201715724365455560997449248270521825721079657191579462870826257358600675808176440663144059424436379564064860174491502446183873762761472028278856712603494673415156940459044602037362093254291096397356049301166460927549719268341036187271175728285525904858477713157666097142492101897610932378475917808839401588612444609903824452302756033595562088814168587066479965861265515329554619519741462615558583946659997162395576412642399335224238090913643064289004224978784208755814422833983684639074909444759423099816304771423573644177017991154570399045481793591861552107033063406723800941693879618275442999492879500901719707561259123993557725328401157164297076699992696688362280317287578049171772372786876070879604727907159952594994236915471777027558460833133405663313172500223106577887811985574782242257390748784036760089728316586017615049794897849592837084051791612540214756464561142442213041835610298636707559121910527330762394570215120144319462127070296299310025497108756032840557628342078683622950225654004426495175113886676813958666640829409259824754136381667446858549591190741450947429814751712122720702864482856182392745198314266595069897639466832163728037830207372110634101406547755386693323133652089522969133017323216214808643923522804861275209839883726484349063291490539387405367212046931186492744245317517907486842510906101054789749593437293668461764007793835744509530809391747737951945009652452279718262052534721098392327024619560537723844223985094171756514867738275007663061635194383412676564030723829708881728379423861691053519833975301957415731778930511418696727893302071820783114313939747496558753624092899689108373967362901812766850717850787392099624972928245416165974767812569352290508970087451239748797082981365591942506328035454534804882408247939417640797848876363517799531816844713043204570322591312839706137572391044766133630939721897943320819419400068632010163065162696251510378858593901630446784033526230519333017448614806012552722279764593998578477471360349470332425261638892378700375654958455216728061851756624867182280284845848553287610677153386101760391047168768471985632689551638436592534803077793135442711468928795274080986828157816373540518879982719753555109777588902185961922181955554629326573885105844969664553741060834766755406071070663348974337145031893218756396894498407451783752426108465005617063749529964256439932452847552753493727919778934856886105739831559024687068515697519249721485750374173632112335425371272724911292661029238109119654301817531128520269573296504567485600960951047705619827418684289690259470773595388613368833217356281179410292976421139053010182398829059168093666357811048121209597438313338832624735806636232056752588962766999980698883531275512114820035133932437756076117866287537228043443478447509070490339410434881720122685327051427512115269895623172979980611478271398587503983758619491204053791741703609064055530160459472266874993760195226607207533567087387827690347360884424537299196456149079672176787535825047406055977294543694583385113573977133430132708451507524116138224500925522791106132626873578963752328479675700953852628497352605070486369090719512467219488748457211902397605822073995264100938159171922835965028487491220998448793611355596557929716346045984460799470913832875922235628500689682989123594660654930509777809741068656134101563477279856503360405411669641991578469997119370893815073101525090156868622833443469260643507197206613546751701904554155859701157074766474276314899824866353119689775381897718332635928996334230659938888715165400887977442593310835146967946497716908492405408730870464463997034170724115661719454191148950882760590156821326737846656321270078302452421174969159057457950223278700264455467664559837622063163845412820225615607037222550802298406809755549089350625869244472881629478987781327626900108311244462747988079809203470349145159758051279646390477205466060763942196430190721663534771683907577941549361488485872618963570607310839242483473805770142413666755948240392349844873808824208867246024407976030373705737080758346776224567746539254890179917543368385466752625565393429069958422502992540575020155211330459544408610991491423468122856802896744551260782424960788617031475200330122385981006396788815378793565159127128638182387130528166694259884568596296289410934275070676309846539648760633660272283483931089986781308643479820892491815675005853618814536014593458381325603447676028017118709020716969360175102344379474911147236507286543172435402682031025762838119598469993957133673040383647112628612591822377989933858973260042960945054971519251969932723360701522393155051390886006738403339931193807951888829174836009211988827512854527549305742238582535784394650563937774517040514844737233986873422320965254137578705545514809567677868960408229176649942174873130056313563036661745195644769904333057031960524980717748575644191618387609353876059704617617888258881728786477358391585987661353028818825006144267211194922104503117914758316320081443255807837720928341220166482849575032691365754935316151666508252786039441006010938332212917799701546592288917671957456653824560225010333348524183069984455209309826573892155198387813836237993485686641406821100416309980321574858402817104088290598721421392676130996062762025226335532679033234422984751870744067454419127001292080508500983791409874445429338921121736219438518170113209705188405160020544875859921044554778949166516413790536704122271326206717371724687259541330389963383324951232912331871760805782807519999128601753167054027810092880107464768957405492633100871816621992376848036203971815567323790611922938001836457374549793568511275938901633042793519247508662205416798994258313443707922224068671247646442360906771239112694813078131978953224882741462284881971773702386488450203181393597536354473364623021077539140514763484832585071631849754523410500234361510425772031875041156351258515839607339115223567105445755595258272451891025927659722228053707123118942665249713033746483153239364604479972860546419608235467394786415385538602308901766699078543989342311574717629440978670859126460556264413695099142488172838080946065895337933602183227897540231768076639831097449939256616988492410745750991579237808544196370816706821199965632015314545968364831377159575798322950455949967089859998296242632365231193284482433004511514906659883015914008391941422433307396134426661753830435296568177471897102391764118779267904454275775942546033576578133216568681886643394578396131250344573345223083287728929171766125184129739927422095752213777510509030397204500257147042309014405010009259266138924688120343375203204213512098106878353819904525149825880794839847332295579221766473849414074117971413147779278906142951748586486069024768856986573478059781385176794521282877126263844754137214118845669442583771795808743129553833157761414672639508974296761697293170266674222266390645738458501301288698145003615514764958068381122852725190147190842584646811468105383184011256504242257849122186794689318043778671807611009865184562180952606903901101212101614497614698267027363679397818885245575066990886611347631511599166714197124815472675884642324559457623836362667483922320684183735897499729255900986406900477679010403944871595744555175147306095741675160508047748185668516747627190008175421236349856629661361864240026128795668091822538541723852545744029952478387149809404476863602834007608580875651210089867894678550458017971229575694573291528771681647139237030431349193738181665053755744966360051231077174384348840609444014168111745205376408836875687658055947071247059500136715004656014800928868943636026947882657598231884394814608550109830544905897302161950829715884571130868370245048984663171483812326208277145807913960835982264079812007688515571313258944948660653435344299232814222570787185123537569464169338055135354446190399275189471345047973732815411875769932204609219500712031706343126440719997842321662330540709578245658216185223810180709721477664237406764949780676721283834722511260815041693056879632037130361832629201388601007596757736134606800932260738751588643484661603286299950536483081060053547003712942216326923716204592172875101385377242626435087272052107708540252947899139939104379068528768869766078129059661341574904760808555702190105398982096992364524018715652178243886024538310243730803331297994509895893931941747017394678913789782608499520877624391086323210580286728575413807187599528488831846775503988771179470942232617319706765938347778620922618923775100255192308908023246956961130046814028444583286096632263683331756696776238146710396016361606775713879618738338736552671387068021836824368609242310398084601702794678754248251604304147542472933662955248094555093723262316098945257006986865067314226374958662775115441700608566929122464376814009461503749855358479772025908609812248016047393766066032903245915244212576340423036429872651945398087736323216725199226783248807967170216363154593609855296095081738058771269979099153068161195650336254630421142612756393828940229470269953918023216802702771352091281042560228686355013142321816774632764486598018241328503412500034932348405885960794917786268949215836414060198922396717891897885511302348819701881903549108124316456648025172831954530884917434675957536947487769032371288889807140068267619077092764604789862688446178195665960133699316673251371609791091391693492853110426223594457492974645776265775731341346565264177330046309347583015563692360248659027190423713901672798916275599475721958342587582335475639920517679941084191883205095903024966330785915750740911328386663553079079582109567221244085474615689842636609288856568744235542023417261686860997219557526584642215293199760431670639448174005040019203945596121498795698291599583868933203699014139678746138639516208982875531708243226003481157459919039689772060143564431803938360306759371355725958700305012421557749606630277482586215904487727669152894680526851168298119146278670008045172175472873552504748240736249051715348749634153425011429434093973841099512571867548799524160262550627755483087071909999205561690899052138545979377047795368530333161867432673457822269778903786348973892227752742825407161535356657927489682919271373689314102062627926215992321661687446453757542853604419444407233296813071883531739230000240182311951181013031450595785461495209851789641648839088358690104679485968014673037494201872804573744599153504483778390458675679163030424693388543685869345655882515424284549107755164011748618211734130427156244837840652169157785755420292698668092655903629396774924509331146499028309385839371569908002451103155199511994863033542403048534060646376409110254091757169473958644535865745179764512369565395258864362037314146786990759586681120298203244752134718070858903256040116448537921336035769809036277861969871640515816796522950822904142009712830381835357971067767682046881548779681931651310126535484973658032794242021000453820711652792781392406285059081314421144780712649127764073513671043052043794654114823939582727401079616129442666501908479772790508412013636846460913479767354325538781634032673388606356895307204491344407685148620023405102448944077028133041007799011561849426920425701125310395375739790895143135650342432158678368186831619311792408278958770406018587056875362056095921681455255485779576220518976288406033342906997916467985874685171992891145714021053019657633918747970044580410412632862868515015157640486844435838487634179088104526022794451210959609779798932944655202299813763506845595823234659434694026561428230717903237474404686223109612320541370564856119550847553040333010478360960394944806412095406999808420834962390224620384527429319255361213876565074917374257517616180947954344839788591547326960468836581559114586522922541459185192059320982888967658384516986322351997202694323891681497141484588570385351141479211666020604948113085802358790541230679778514653922730742939950290623080013411575412233593209854785247556727612444596247669732331401318955171658598735336485132119979238834118558668651693756165590250916177274203475275169258949635517460798596486180277309342623888314342963609148677262539702717732123551810082502467080633618470349824272734997211443831744740129141223900690537707284746991907501767546598483037909125706789190255253374765412323114389234366890022248021507541813486670541160043140765733836874475883881437877016583371973844961163646082441857399498903585503697651500073391350357817148755444331622192952724257552454456512113703993825410151197683722207575675312572196468332339025375788507575250155297862578055964866681204603364155189342139771833540360709667507564411717503846746224828875435249595397282447007610337119966856355930893640718035007032107916575198082320990763269528234276587462260395781425148356018320363203436957778791684298753611498631766103542020392727334210682703270799096245605771615838403915709689588601157976081339492435253179136564786640735268818813718147021250793988822761527194134934529662119699345971834573389541311050003393039409088322521706010225683670141175838972097160305137607186861882502090985023749224325785684881113962069485252353442833460882953215137908456759083586060074226649992644869570163806885667756135458877525097157274089335481198765987292087843914836361244449050725422999495554342078895393385565250558794192711792317607420741049297189508792960433739778057844709482895069291685346854734942772852190531346750630576535416252219255499482621443876840559012511222480534094266924799292415254896841189840457483967030784247735951187942745047963363547911678669978078492001163426491404638319187510134091988508605807323218498366442613777404574908402646541359878090438941979251194569495912381432938410911998838204299805393991884026387283852279844212280448001711047225941279027322643084599405268793943254350911071955605053479305502678813375935727244733729060782640459280094704807110329123636941207971051208878717840953466227647156772904278827875518897281518535200721800894415645950876401730558586620163174497169448528330615114603408686159741394641967888267438019015297820210848106897003229134029765917282634711055944213996269247264086177141002164505776150590862099101597137905935230651894782244591987988707884123373297806488137829837337218005363830003238042861943530041007277702886684710755606594905025304591462022792927667627948587741798980272805906719196832832617142488396764631119244506099043010516894199033515304394287753702010523624640393669845779774084659507947404931144671705060352465449480513009738896980843273278837554441169258104187111244966691255306562724841167903365567018660638548540925027732436661573560208747279708803962298392531361675306016309765186083568892886406036732858530237538689717005703146847183852224200984611216372493682227064531227475820250255896218495184707563945285744421245650841473573077782299038641355327721309097902689799504106199044493991031667557865253290849562591803560861944300558015846147507471287278775549512440087929085247863865527680527552558884449060140269280525280502313464853794080485464742235497826452398022792851348205260169434456689601844308028180913510019390250472105346196781850199410593215944292438283157444896308508815114763907845717303474276875658218996626995744780853239115937808072055458964345998334161786969658107235688254652613831614839621514153903879551918725012235371878209272941830288001670823069407997534049477563155755714081413682645426622867950299856056565589986628974000828579360515900991556674807884586200374449023949687279749968111516011423602079534802568018891856643465515710533724938619669688151918280119307873301924769552402069930000692725003806409440998062637827513776239051900842886942464661213609405103253191441431639870631048257689912700270946342635380981688867927359413516421980441306825292118221932288116945438572494928570804597252050320433040176290038061379315700652058838108895432305516591247775699362972719462272151353951715075222981406501937914147416866863393715517232668393086398253581051858676392102082803455283971442278193995817624145167359010068241883999946800724033045322231518561707468006932261384128658550332906740973257483808325043765313780183752304773919111362073919721371182240480587920253323368432597939102223455380956911822380450056924746114986381532971131427548758723087552777875918236500464487576139284814067482344701378583443196113025616315774810502417487241178752306158014387750141236100910596822460928817034100451455610306144382043787446824900293147105226680800068206287599261195390917087184623325951797198972414880523052615418124650452107543043786539500985331645294877413339646391751973766924486503874131662713128543231997596297951336660217413420605086169050986170130055913141480653340189451997832034299775734378668504382243634520288886488113359562110017381721191275741219533344673599396607495554847865956703280822394044676561056700841906016127380705593670419908156544837565929559732681117924980845043007810546963104183042480918794137965627313655924354167663611869512954204750334396414609659083800185449925778947335575057564562786988209341806613643185433118782297345823331844336827490895776942835414579537884722221398659341485636266796897759042537133776452340311291478814009985014318990531127098222676067807766677786607831481089950716501261093415025890819115483046075134548664196560870411441262735027767199114123781385970644878600446081636947267003396249044653737881213181732672319881794977812918141416069827426028404858602219083785284132415052842295211539616361033679290543601795183638992625259808156270689624088045919080596675930151815431779148578669330628899699640206627902147441975515370855350863878852742360212125977173474265968509333022956268956791229033374978639564627916374998580287298059830544520707927498023379274184492784400434891687064046560205949502642912165519779302637639554528767591880850617451729300892187365871558594356993439223389491750384174872619624597493415485738736722446492554450145435011557961198817154521641290478080743603470947141883142674567833830200488200430858812776481959293214144534167536707762752819223048754218013766616227426382106446960508040550538947881413305607127111245096923286018264239517283881972791607152748079281064163731284601458627414100049410062084525200746353384967392476884469290155364115849269981237353456890225931647983174540891443268230925664844356617744689515112746581997983046979680454148964004502937970093427639087705066829822451377929874223120616493282296581409650454788990915565103269445964617505304695424197153725145235828220778194968691741212417289103330532496568025047750775273339806611281744960099512486750853851260170463430344075027381054097393099258475802776294794732629189474475474974359065001114887579629417072729115788789328909799317881076077600306512722383054334941717871381681821425043410067277138752258354767072150206827218989105349350655597316785834319667793173474918258451095061386377228823879343793016556505743873545783695272999274518962716416490972981883784196663650014264109441733298598669701127152668018023693915004101127528334355768333701088619268807526331776458704376293373682172705232433856592078453675160681386313684551800206369806536834937533999220319755581306747837530044885630146594213432150061383610133710036991452800710963001054301567849182336480834376243215549014689187660827115821281616374737891651344748673306390430906473897421987248598828254264417483401241796946410068595952476155591555456549775699890218601326742065271288345596311532493032119516258420280046713102238009201995850954667700195970308030997047027699287048219963512942954530534349238323304616285363089677766163522886809683787893050327967446358627102502419006095917789018740875366807444717154642897337623537178146611483772671197496229063927745332511927937301103041430127037134471344058317768498067382354499062439798197890995280765461141272415590854642529647087824397499497465390118131614894401928941548902391596116089689165758621076438004218967258788755509093040151914072802126345376773469666785759465247536205007827364345380970160821860776947059388004082090118076164068907458224661099913270264589553990595236283387491707265975657527529104520826275714872848720338304442583079358556164985296912994416861765786760055019000422989490241232017904959223066535498929917207384249764587216453980065708779230076209359335092557135105599470107264718576013711777061055618090287344127705701837001915693638382825167549390285489380079483672029440365968509297231329097008195710260095467381309439865504686182107252120510665414562259924394775048849463515121654445750519542653977156052753493309665201820823796137223429215903557840344355303490358524029921714047539988234294222970965391620916774940638561471014406644455879945367352778785600814825264867381482658992415556687056960062688608306283924166693417532248179228749605994601326067026182554103692994723914220940073603799418344598754185047740724099214559811200375946883816906855008726520475016797624306753974657576886260128627840723782885520087166511715734440602032003980251131229517883636738288018284448545669816732302002151204315901724285565781313997759522283431042763083919299030764326046923095118200528509252849294684275933014363327801014921453270136190534107287890587946347460329543490932328632020673789760987603808711272609492641163002840398347931520981426844300043487403070445377876778419013357263741178378290765832289534967502862826876903550813356922555595710202615211616281325411489842748097539856038604025714248951133809474228370804406427662934968093964532537174053643610870117257125917068492513193998106122866273520809589320979214011612821623074151600947555756721590521836802877848042505966298993006596662377625452314385907270271246918274288113368681616364260760372065072297667658821013851532504598764134673570649432927568629967554218070095622085496471929331160294297095447012512988373870993427689156954561694549986653335560503534079857811449328354791717894079324509185347438667744539281332583745278218683061317676103395639847535985719755376665049609356929782719972579409392659147019689693441633714865102198011279916649642982673284384167023135531438060458817411616366103555107670073615822491099440018262815161270537268103549492379945176192043502245990163568246082340926246434354710229721115955474702636624763457565697322538127233252409441552727047433681679117952488887745751577407242846581406435287301707757756262941332101345592801268463014748232574385777919223545901202196497729962546594717120614537477136753994600548792690383882123372136658397892593170625624572668694659991453719718978304957937622633046576177907677467742384980492893151830530676070529353328850148321750852293926589583718632807705245127165143786781479454972838142945185237194530708474818280579332936960438942188770643811409617869454389741964832567528644389515505865415451733107942910623329198919390797464268440086202620613143705349465442886652504998561547302797065256037982884386825329012443521540357502535750914140128638964551843367600928279304404862908292388977181534894860071010794129808337619801824565047487352616795519800321846964161038290055657882282269761994026861404393659970550281805160293899291781905545489541714854942117596115492166815315657948933955237109909671876287072470998947749558242894592564454760745207288519952822420433002585462748877678704921510925350790228463912646301820164810918409351575723309726396588544908158890576251375284526574223622437495954567986873334994750772140690868242591941316192395879815212165472034617506637723893454986298628856871021276820939755822847188384739225507661082027959731752135657410424374816386861618796073449457398277262834986758306072806283759787545919506380816243156384177358026682177972435671292226785725042673078781687489580569600416208071051678618973141644465762119147689797406133328583451269379093074738624062775185187741082803714809805630923969841443179408651584609914129324615787032948124874202369777987815722303847187457919255100905920220651757258677815194775679115647551041506738925702377978591859646798143241099004231146268040957235313929002633161976614459317168253194862408969171441921418593760905593944216555479616920616556094608261557590083748279660247823199323393601560593248858249026249207786170498469186848210403537360070088698914300112505157781921525736334390563016595100795236756954021717472746866919240648569484443360039038347480831408381353562245052119277272881277990488621580755879576341935775805124126161082540714788754835982155032256643479829290975167081619941874279569770891835717467934640682274525319071088305452194077378379976128475469630285993934231938123798940008120193113336395451623809382434100679843456637307028185214138561672987188586668791986842294493642271032996129983054553828911910135821237073702711509882120719798236129737328813543642942210744175189043457899398430776343207140293140643434365174141345633510832944032292831801478493948150042758335029238968127639272667006891687174269934009408715314440468834748159737402357336730866983686550860860818437989718534743248586320328922055036213965562315121744923068111495398153088088711417265354781616538983916706791181974743122522897938988913791525124723357058959332301822526756441436835461283064816414212853921182983524877176427625587002112559200314497215413192513995539160606123803916530379092500407473608090307664416193872274560956139352965894308609540327376256727860485042784102486249256085210718923322461695260019714165694489879743172921060913932675249542302865986596858312772990856986605761496718739140767410794109600934623270498400550835252497626869566077269840273801959516533593622699979123040106555156529031699554444053535896053690900670706148593438117039759898215837337760600000233881689604594629733434710278080466049625758207022155030254982306457988808669014567038125133361364992908357723616318569262299513595033455392702106251600821652700695101283392968846346402862351284222068282793417377700508052541918137167459497947275070105314919043442418448404856201416314891083985893089604238584878363440367393142845250050695845874289630087143442051168777464170321766236935580224592520685421725277126267460410638581876905959524976456138948208422483815735971855308336069545251850648338040990782508150540326556080074143011921828387312986481651350177065551960383131036439551533106535612673191698523197853464885197752430291726859604471057651336105455306286504833178099800202912266394262229776545227862100094297860330209862485998967099576529924442439389967143317776786420751720192699625111510231832301515795291502733039400869352997619809702137219138703088959980682278458825985236095353751986871417020805143691673452858728829702166839443034045634946615921504480599001612345442009127535363040839068019218644192793760962477002763358231125340779432959803899944211435178038676137260114202944132040024141724447795161003879512539626185269174623219964745611796634286743469060501770084045029381208175825678292241299406647961010397766994485271237910774182280115922998591421598139601475065543132895561639010393589376346998480055050883480983006989097999200823088659742843965689385015567006574915588590876257709141226787309316057970107659814459631845261118208932428995214400965010121148243926122777146682736520174793473455355161434005727113344655547667601267977728955763324486267922529926524464043828219663955457458771449213500903736197585125993557555532521054658925577593533684324416668786188926526886666099472759366471162516182605548216149467443817750084649160381804949851924013611079237065011580094867397909003533768097043638946192472780964760594403800721224006189284293580490142834066444300609525480870830137224805925482953390732513648535967854157640546106453986446445283164791745123431707264450435621679923156932279615742492479235108235465822108976274552145896620824660887562061738712435175532304569637926150447670369846028207527972155019868821282719293819770962052150410828577128666391597367779963348482875706039788581042940133770734797637656435338931589653501222352865189116553813720913632411545406792686308539827532611815085315926961017207129791215394034511660666969855419519853184348512768872316584643295018155902852095367577259066841247302405369671556255347645795818446710930715470570646249265864405860768131078628348219954330542826832928354427319693901999518977074974076776299510683548605202004083212332236055866412805177631200314329312552900865043265816958496251882831457852650240782014854296904640809371062516694558662715135388357137050563446971166983280547724464566314192347039218108965175253240239183138111097821039608847705701093805970737446077225272111872423684909252694271602888736750219780956325801393204905279819800767104365545975521414211943526285584624437491486097138960095047636690480586111363664059182757630075360254857455162799610341738978591482617054889704161506796371519703762703400456566168552465122997752786085966873286464186146500626681229191245079567900398079909488348828120719837726702553047365522271448597368662981956004763499266767993925979466977231839010542815876497877635837343105352753569937014374966141166211689942922835339258172462913486739457639679049121846906536079669278187038051931186695231185431387565515755081570896871705568225497176954855057202667545386723799078737619524790730209758368303307510178372103406907878727047469312723971794795978560009870184186920750384988136531436567008949085361209997166591002779722527171664727478752538404532573068963033693853181294288351417295546207141937433999616621426015240857898488534956411316596725656592581744322415462162871074367553759483259218144778200367254216582012369983448884677339690876031179367452503311551521139191260138877363104374279641611318079120146687467277756817110955715761952057247875905679298330265288406124439363974763318279833492878354228837821251743979771703745438722087975543796927378576033641059743624312906246900562415425211793826679701675476266099469481409710295981952620551760523291916617169222871746823046767422029055830773199182282239886782942266631297974885436503884331147217498083606790162205121499425078148414503122855292574902560776050968901233132818507548496353000288410634890486607943101162163803607711699336241655897372585492873323930659172158855784645833706735744282710429006961808203826902674385245604372790954855232001683134372013452460092161224485685696207667492018846499413234948370690995552697816886014311591695637891331983245930093825643183198749920141882441089120804163823236929113640200016710573639334426346216082197135229968260787627423221036566024401648981221462288258529141316348811046112123011782725251676161484832452068590096049833270690673016641456809032744352384531362541084081641497872183733567005684305782534841837584855398678995310711670161002865501717082815542790460172872487434894277399384617131710253355104170453761358986007150890744093686873567129728149455588120702226434605972605856176802780672334541724714984711896300388840956213098428075503790288238449676215210958980179874542208206750219398963720780843595412436665479492573453289443508343341560483904435559200818985356707946769101442490603102889306427964198776288078143119427816289144224803998749793980258292055488220109477755631131073567335092210961375118607148250607193261366156263471829176246321697487548992870601280957988573018328101706755794429026910078736001043588567281574717201591344682221042677334928387366264290499922152897875440666528391680695307826776341963138469578578108329048477652095702847738819438796120828058854975010057337105043388606322159112200761418198429206430796475789418715886470274708614536456016306750164226576087878862095442827757927125105887732374699880264777550915445561491596949467615890531648772522232122442439445737292647719659291682850830650721853762939083977966820656721737694661551967538439989552206782950368418566789850347893265349308020024404553107977665517504896450306332964160980627555650718396531372054162840489698394441601520373791220165438051897293927418071007044611168950544003478554531714665342257343853998859428854911249937706230960738188821327739693241336572559020518552631942390032634905322889688620128660741213464964113088931951024229329132878748704128938755328694825217104508207516235762727594022439137624428609425146731423673342450288049855058422318832433688188261981379510669834267413154420558433276991239959203783545635439785862451858683007686957734530400651450564872583214894594527312825117873807009995973848995647166103521351911102796269148352294735274625761078464419173895664091410258406114969297630607500727542503508841828003872176459587518309724976926483911253782553846778135189073685271843362762389976647265390092091707249631484045204843158127677027754483966440715204117111393940300984619815570909319109161422807127104680661584261518573589663432200578061761714777278364331441090512607093683069031947753661275020071158469449811864928246141991779261734924129035095921817159990258115532860253447661888660439632245727495971393717198240942129451486129379203492707845173456249933346249858221038013704796811903318319084898350482722649859765334790688406236907224265971295356303190920094727925192143007716676976973558261948299163571392196089433682659464787227874998882917513972970625689178907760418479971945289634143780924456058361863529190746145071910096509819644907423791181644287058557132909755792763821876057193863811909911781415171865069404305976823268983678103322747352696906247314819738481342881126636766114155189931723896778601282324149114730062041043616188806135143060945824839778189951851426090603976835217207260438228375780048409135792750446015090941884981944419280204105091248321871987603164308827592281888305740275681473315342492952744589235699950921227695503796563558424066498951646220744701164698045793454191004531280957547095528941966891761435982126966468789760716936215035981692973360490470733885048405110245377275817833806873550185109185801746645159999090842279366126212308101028131438603818481738084715767960189983062138680339576923759522502280293160844513611442698597076563178327378672093826804141197547753077283028842107099342617703400504555645999599643613601392995452909604626037589716485239232729533164753962175653830919861266356624972399078085187853731399268259987290253723574097381126566370938514614936334967291793364135993922807012747162947553251820184697671223391089901700865480625543090931654434523621436139103639760781293341329913503064043422134922633939085707965395813574898302535668535031874955833188258933198647851431862869813935184769165838272108358887259006243975009413233330904364205237646462521528605461395524875762086592851246033550543485594550704871094087150629772932482938063747572713766554565561058284161437757839864006369491989612066275895049160947308423353827821654316296612507005689064647892916224225957500981081619210667497768482951786150741484616591693204677671580163765169973341094977875409374950595179124523170516282808509269669881590485338997952648837090109319192472483901795935761550250262853258328378293916323309045724464338401894180153126819018170565980283560876711275056466729185839513758684441467256479086211025641177840275043334065900734381787336884025283623018797681685930810657174273128144229093130253513276586291737608126522818904673283052854644692544208358524020073746468956498689218345706828513257351533216746982605992783438646253679056512453683760927421740228115146767763456936322351845670069715010290813831809821849571426889030089196454773730171496352772667760596102335770177321022371879451304281310092804252912324015451167667331569377196184159613196485436091919932588256761262875320982919653624602217727765071416465287668266909985822182666830239925105211786324241958629619161193966498297838588509353095161563406906854905640479140170706541382211655300268786077168845015012846658111230031054759425617862216178829300086994108094748881797964500527109535267657502653281888172970670231914888752866418559133018802201719010215644245638655327395399841413222006159818560807104214744181591389862319013853270133129388326600331888425181204070319876017898698351983287936314880358626617608300153609731200053164671193906015520772195414573105815979080455000362131537281721097423940098037891348877368225108461403109976997820756262714866775076938270879047140667206553958446582619033930219038726030689184388596903327955113108530065138094798823147705776635088985962983436514567193012436140015166921968840794558281192617895154735990866447610359954871799071131612246792368050924577711428778054631218117098617899151622952131367852431470654204280585571227891551818171538098613738383772008719580353780212301600924485099087107274788004340823919998974264328430493088420730130926644567335226941638651400541626718508396742797589792204361131934560102061677903019735527601435129561068869117418921830297550326827772863377452560778005488558630667706924876497143614787158547318676397128127978479643848295803643576204873584051283178394657216625492135479921286532235801216661315082133404064118131623306464702196707133069431063087580137032557401581485456648940007752704411819960110241255120821171394885449022404586779960464065023579283694379287235383465082968400009465249160045420488423562263597583196405296125522428771842271411239905687617121534195857702014153239831079938522005125650904828382455295321260396821565339053436387605528970700386961752936502464912191391767429084423213607406195732930871364413234561911905256100912955459074695720260063576926313240418658390013579247841841795731907173772141294794337282449944209433246566898038828920943225680821193585001408567472513588795463946905064296404553898414923526292234520318414701181570249371362069291696271149935907698287436021345431273079402331535424470758563462929520441873867956059281204418440356019954723013312607955380131861433771024985747583816094837971065021106660351526614374379947465401841202264278507140020855565127833683352931295222845959877278484667356887913472884165889435754312471375966433787459457581485118736450580172855761042714171717632897410869299909305690598771060361011101741316018089734658205296607406209719520420422750358705143862342074869536245594597865690836841418492217561240312722014543161797568209329097769140565388144818397047017224335617833942982017129987051399829920402117739413517138113688338898414109264819984879459397597237753061694597526053364894634416797433702436900536677034025815873937923522948154440062688926733937702701683746574771210772606176371232031394666094538950127995400379530310970088662900256469128866168243294447292971403983660451548000720889228802138973531611062935925172138574959293203510635382477563169692973879253061224007932373971743777001855852425347305783933601500043445666516116019010853653600945620154870458130622843630663966241370927005176785009884945054296360856102743062297393618659323572540632906581689265271255930412264366266802470463653067786777853946998750407483627992643185908149327601561255033647964448687179072766489877941662914834316955630978170636491311486100463256724016439631996242191240385446881534004644311069593312628180618776221426077519911945838477765340187989281307741779639995126676169462345265803077111890987695618190281510600586736711906644170933436642078856393927946915267973425529506978909119785101526196194583001423066630199962886630767230043719798442916923766047315246919718975884560999516950290104816986199943515965301766998815498883457887609502400387807897609486214316564553468552791010135693342036952475032902171446890512019924795314809838732326196149405968765693254091517224105718615439924830351350167740865165328349330692436779215195210525807991685867491662973685078999675751563029830865325847035071606667176752295606789010142465749569313638087357493710241663406242945577218944515898988062542140945498829451802218578947101645553261106519635409357651973662173181258928267233589082859875512344131483535195568273074189391209335242135139349399645413386108840380928323402904138192308459364540241425774611101925251588878005984664987745131430373064971460190750314962550871066624825502513763346042506765092751675262565759629998902145914452130006841354159699125111997307781335379830869890737819019287204531837163487581114058122953868956607370754595190438037878184458910115839966348848504775944234936244622059430752194160025100514471773149081743485982500507847609581244756106337510014376024978787949612049802058323253872700153433286505806566644184378778718621913375743475105865388485548257507193307989847600415590653442259151543713916462448560775078967936732262138257588276713412883691805033750479898056193060345319592902891603798302289814066861782099789728700352251866110564233402390561114751468990460623420542828817930246350799284694016411569971856800221168955416559158936972975865868849769666974193356254377604009645493126013039962852762271020186014020963466530558136015655645232650500485705733731004610720540818424520154158073076263641312912695446773337223667505492180286895391620207926114750015299773928781599419249076382155377892406347098616867018038038615140348260987346301883363887552583012090730401834449117829482493169382776473985351692769946071987058535308482486795049177516821547799721323499254544613059391363738776873676313352753713576576391342552478670840778262364804901233660172023037460764683344345668493236254195495319637488718214612011261183491465726954447606282062514011183433772552273400710108683499587659294701068803771203079135030887416972290622462747086775950782909443663553646022326856927194555077011287805712965450079204151805134249432683046064706003651650774052723949028429636299629034578841698461018264694149266914432941196876210535583955303507806278466763177357517676546521720658422692950560478659393386952574827787589122952465542157556922284541788575503103378675956916591497682843891478117387724789898770169819098844535152252965388802244670203889175989297981708585710931180015624824100390403933426010481896728039998532064349327452532249622449605729942355799916904912027015651867495101507531649672221110724226178198934086873222702831540870974764819880109237940147826313447263248278750234684043343314099316914530389178707345388424651931887123317384816176308403237423522214252200568645911691290793730562461597188854498736955206608834603681258766245608112048059491294052665793109440293000374168001106721302021243591732701942368053928601457586002344459649319596886370844912102766368772763696998496477276754844458984439697189412670072114574722815539015156506527069029291100477000480707783211809241206368421670954028172259358589778771737203713843945223565816716299985183668995722068000923821471711474914615368765666801790107535666704164216553684733044176384921001099609580427875132842756236637112114400431597743084153518898094948242716117360399237625166990070812315092336577589554288796403266408852710088973660592350302142330392683492964031005903470164197500376705594721374789353180736703096563049335013608446110133790923914690540597512143446366648211302281994558377179186540611663995694001907965553991157534793154644284743962210506273187292411534601187885479941423015571259245318778427102887692988329060872541673570399472938687082073976337862540015423999087124239039364557691517818081712077652583582962521349353708696795663691887223722327997738393653533018703033006665405256416302281769844272255093007079043285004324167571022857666535127141243027454905348285872404179588567579087392206657015043042260145667337936650266460201850136686150397466808832233329053747241917039105059094037783956550684571019418754642548208367390007704347417100076982667372475313178025509560155987759798170997154911137365292194211619098669277802143105878635243490531583465175656183992046073835516661384792482596800309330949727232256078921410365170074663772781202078908759617261754636254080702341219386013918460044860894193389951631441126280915826655605912469792714221974104763379762941408203991574757832432872578614086082528317089829235501927983756104220420090099508072533408995643876235007853872079308592529838102350075242903662532154891139728827310505241503092440706283242007759557934917705832049765588405272047734463292844118504023405240886956288765330233384690636847550274612394665303156105733287348196690927269346715785766314043724204531816524365041086957524110795944452840069560972428741811190900175168888595368205215644578974483106877269169061908205208841380445872001595070267844232270222129443930812856657322789346011675604307900731122214892757061768980260580627827958630143013372615536640587974158252953728919315762757998572162907192139436549690843387395626076714866879516401220184325845213700356851599892981058760690966373799906729733222982152814710525617987662332181223663139748639342499240994249836961671817680149891262843294390490454771829647980385322938802290444891057818577226022392550871081866560071529969114887442459594794933483806689253490859347918867294464963265501120417856834903986658424711063649946823149883363304180806693577502849209138781550389111139653735407195466076305148671136229613100763230226091441577045118644842891696824683188308788270744004615482702411045924896952982215576864455338159576123223685781712498248211434610207458890970612964413993117489951064656377782498784892798887657409927475354909707623590413155848168652487639098476111400843868351562997259261992547194678127882838888315268113093984057164041205475618136589906305551210642631711352289814751534300520639172467493665817392363510804676597132731320925691427321588839432074861823221805893268605849962208225462161114361289269351839662357122073303348073531672124714898822088960590180656300586016620873334124769769216764630437275479256522452865960049129514271731817997513291008287391536687284575002037148150406303810596918194931956490489824094485031697391003834006413205276066898440504762637677481051837368474536116882176138920968845747513665357449311217778241661795611662378356928094623738009572787779982082098350782943470930852329495375155644414570961550650533680883506853608307085592077520214976641447494248862426013691068670458131559462957930012790293300907163128700038023334118416418475078491263255977887200917536868965682545849734769945482863098141903205875670052222093511298385435779271771051931041429895561856749934572138358793600304245844030468251812627086049401162680427530459149380783950365990222928599176367951757448588929627776575041211514932969942096495039911714700814671030698409793852481006125253258810525673454133449741992465515947182885575124947352455635639150410382586626753262467624192761620489602741719643359979545819386232214203140620409570695330738574510223379865197725510724864730362061204973944239514378088787964471533027843720912555503183709731602785903271422075385004483553518592139224605902476156416424880947771204367508883616594939430942578255807644815529734389181971647354380540743941228106565555516212543322856458456440246529455567922224253723406301966108140212145240450131467427242753270266435902384530570776892952274844922277036594345016973682189161750399475001126371177433937869321781443969600652717506705870413041698832402331154671422605085052323030487531937962287554375568124442214285220031329396187487040693679144833482604896113923225979542584449446648411490916195985927700107355679689403120491063418582933878342977653420461823748735195725044699382378416319518062448877925828705755442576213369237209405385518397497288435552060916027459791972856716842574376941871314351205908316957910126474047183332785823774678677571048639095748912323080677951477492621043380713577707631648419418511083328022673312228608299051578368377600291672456479410643517795432064498178913405839997189743117195608132642933190267308974590865125818496201576852401603369213421758111927192131534292956616312931648975231237998019072642780858704682236599396565258096801972591205064489183067763644237346627613512413161564873311801063984935621393345024893111764560950677133235548187125501610899403186292822183105087397558001586733330652442265144861377138931346968714919085361919039297264252029742205128535434876362675373627285489827099778464507813245054767546942524621144290071803162664357408410236534225961571769676237621519830955670992438520526535669236237146241767713695654185307324358359319204538052388063937027943941577971614398995559879211764452844795553694678071041022169764362648827295527056342309665238217827659399668074010757021383796296927324200038286626839801104708211955861212306739694412340509455947859588851098699299194615563829283708983378905082411838083670107073221370927439777895902674304352345459308599746685636937113730817004225100788938479048791205408752573387002879587085393165657399950943012931141382329895474898617629831581012095261078483649551575378458978901761760382959823667525689535603056547548507189544839598685634601952312870622705431125234009494708370575301437850507428192666809924573685949037954430456903924428980320833780060814067964020870767208124858669850574739627297488523361978769084741067568360605053146034679956887603064317270500516313456106964169707923187745520971450533512048064626743594610955546822698478504033159797775970661510396919918750075395896172177578859155162374249421986438607238064525538542217870966483154386359753918870297288663237465664476985929029358578596462209880813642949569721375059852435821749780284759105757935165883577233023643057630720897270419524115320842343100604063119983940598982784797209415934550558629868307987413186397019748167846806615423998526333743552959736556125891527617085283836775629623028840545795916387612251450870052848978602803257956789587816122452069435646684623780078701973629697027454409149345474975188731499007082672352838392650729867301936802732149506941314207619061260845121961649851333974444800465577092867234668977032310709285896891719067813813971751344848775102816919181269451421814949716210802060319774717769266524522774634302087915038730290996913418683809101962849881829463160360801839689474174864036756081229903171315438071281684996234834141564357601090135996051644018648048351147756423067153474218260901591057994423223952421788603726070898997671265171514011889651781628035669626011243120639505356822945019798293519167355890486076742954078854374145218013756568649549463259039838006220642581875960797649256732729815798060200689154352209226983778549133513949341359488509875970126016914363393909102231242605857226218987325195335838990277666132901632533237237730182573472262598424366145160411660854760928189628521810492515922807310055432517057512364395480457420312533249548004156557867946583089916537633019432790292519039902496378843940425047891553064518273801049790070965596781460579565805240487286583881272905174006967168207277433935330556288085833512314293173872149843134474680443985913352275144282941015663083234147066106227191907810546271935034069326773435281105355139048030148142181864407270256446952488373854425224837020226252141563489883756661919592148946954420874253746928658234560478586991075401995011181213622595410505198443694099072681020587625481872295005774494030970062365006854308504333054536947834412711337040141730354597866306040003812246220977019859199954655361721977802368877512088343514031938046614843915395372615659571263420589566267452052791293073116810672443520768605577527122497031845955550628924782844786574828498047687727184706659014549443571280174668478173200155322568483023922385359829702235754393796548786130068346977414641110382611599565074966767966773202072550784639796413334878165315976824086724141277719773264949811030302762550526433495635589309637625272639747999113302944125517902459584961137758738998024435490939122064246596043767218920172659104178666622919570501990671281375307978999348579587333463722867435446888764349051568352665774933253621675846134816606597022514375919960338064164923667060576548009168411468856373997261972954839364346335467910471152538683686806528193461569961542662603061400930699343335698449243194658596481466665641522909081875981507177380614228744470722244476311096767044546233308219820937301870820431895296126169213905996372122593534817537953793448123727100936994928932551948692989758700006867058108178689855110799162004924286020613949287752597985899295120199547141686933134971316090617428494539750608422235802571305394146999063426876009834188675145450189408688159375622765582515338860649115012391786215325600610986256587830039026929177485187470038155013491806416247283867172700477352721557938194303547973115639495123486038797260368374502771886235297366274806781099892874809809750220926764286010932909194586199551973644705466666962589964689984571139930076653334692327102209357089334047765404680091130138630666717227085586970507058658577596826075402913208113830789272520949302934209780618895658838203553218282269826028693892053104245142825431408043540865536416877707027365591453970394827820649261082831284149743465083306896557728583928403146667459342657171062592049721198155484903983742268182982658357628263847450665593535235903071679887770665670729443343744809233263395911601026897950245204129340190813792592523967314096525078958683306969644459390398363384801897343074487399161189453838438551111787407307857282940827287832557941628354920847759228717321030636672327540478010905514217713174731010079407220695397513903977581294912823816141998995428473705152935038899754790815155862557541851401287446285639852417135944889437414242440272143577133884239394197928014599378755162954766077725104318510173108522586371550385028125355775071732267830580176235064803927872899941248571839515750192341461904468855812131712889011972231622697633306599258381965435036212984949617154817543385423638448464170605638321276583889048911171484862869875038706496120394647148573044084336698077540303936046987014312594661773268637645099249367150882966128556790725953968109899202580653812253274327264795152996799293967492299400477005761295622356076556944613814606603729590475477979930516109168562516424038220813382683290171539901292835537963150427871930590818893701231498725473155573258465953379631601232568309735298177094442270560268035146914078463594631857099667037979445694499027458754049202699666569998259578089537118888217516108470624079751707204338772354414162856310596726770567996696377081255366802203264230819620728212538499502283489488138759886882670603912620655970106403367280909062676811064218859635762039251522971678057920138918777974122863569565272209760736228481733983040297439046881396079714713386699075228102160649259737431778308608851135234923145465813354141850111482115971550495384986365371518089291642710850995566097909931214433903427941872287106710631030542225759337268729066801027716128567166711548920044600388313385916304612391935747812631200379494790749482859268035464612134942893886366744241144226599310465959962659816689148912685467589011490842379112467497423191297257160435356936723339014379158182070555043568826935356568963630017355252104278916949999606229789999583043377808540202858019921588350762202794907536627386343709247962065779906246215952637970927252436452108975610977077605800992145335653698950693903662355458143113125708418288760343337953835849749791009684632221037042462036209477622961717996582696973896506426752302433852211677444503476686617280167832434924281612136197585604429402731613933366233368360724093932598696967692724503807036975690783419675304091322854095614054668485396085973949841545567403675180382544905367529984598242484099978971623771783915870720430085692288828546227824002696336897970551286430149480604881256101307904144889939625520652213163466313091253865076103495397201977950307957378196928599105250387765445163217813857371432231765847846210392977090567094422549440149138696040216729888865379295229874340211976331040617175762328033169802474429854093396017077694812809498734562768824957914150113482916129261700680741247990768389045720985155975277545874526419918264596034326533214207313236216888680135359747107642692924761601073908355883637579372407216366850678718262057762153741318559316886197550043989596405689051364982157820355695449095299319579811871244175026660421111552586132845000540484966554618110907869398291720397393071963264689861533342499932984405548485932999414790548732318031646835510131026201209971413810427834982806290539836698965331655040882491105890250829025887740738284348261416264774003893602581361513877711646735803229215666143267152465707119461757111028240338662948909549944807036406021363526091404437157304345655195102489989449957836935936532436329288468197943381497134578693023742868474913889702148967390983744399965019406686418938247430791249750576261683414427177958074210406826987947407013557412062635851818901785348783721236905626258455112825504524596702374909143112286665218934994382729163217770412472814320245748463848872087325856278069952364725115092251629684183341794045996360352229543656045648593254897142847836731487083460124838944074033704319605312943375997769695987603463068716135341431745233505021322094682300403366642524781446797146029303087375648158875290160091147115357178463656287116778973475406201740778320448906336341207710268204866714497453941306512825207519441970775835448625407025875290581224777392889858292535900550631336870522087413867292068353778591482043692011131655810007943116940605845236370237208366585237801989147472900622726903588938594425272715585372020406047364283290322869811823257661938463048310999773217698280933907843227359901415024357824492489306020623777135570619484970203369554557584227572119375452448982527746275704285126593277359390122919021111284332010753170898436777562059028753808427421042153006437459625338640686727541787423119297329884207713746354141799354310965060759740025367602815382496639383428619365561968825888016003568851009952079985979297196424277622888408665900618855048528702556117099238488745208310785147961811459371390024361359766870565770729793434829292963573756855709922709210804687575784449940309997367905928075368006344576397302470892496510599618303350604431147319485118527299727186830825646457174050859743596840846841262473683721011637034260396074678808939116285461505397185009885631224839698861743760409932767000546025784248938797525427024871702417105591773259746647973825084128860747260122200277277167341521027845825401885302511312040790182525798281709910750551257953301654990667693509369159008761537468642142264815893389177407962069591353830702895705418930265399283217817359038272829819970466476437378479318711438427775766289303901275709526029546593948762116339735388550000592819187817543740049327468237976132722391114043698728434817828048103411027257868147002986694606760522150253389856926658845473008568595149026769882485781916688298857193726135190180746648542740685621917700385961055006366805998367703723739769673057575520029055416396987115960361226836172083073593821861521822262213408164529045801700929866026591825653941090148822312848654755239951938660944204062064301434202210039548934623835359765416434378980472084787652634309597726294567290299366603987608597525280696068838076289363130988677624595931357245468940306984568912215773929777859373626726530907545265554853225619794713579064305647056783445985804476243593401270227743339049751709596016250426093034502420302423805804846163292788023600239503340639098561958250064204646335902957647535568620249442790014449934716181091399172717916162589664205792626922954273298571883058963426723747582863540919828059344944398205221017080138167706970463148934441890045420655067838397408606557631431118837947392742639986329529230917026479968907234193112038530168433573625269193334408714355198389637957791247145480504666269169047075738014931742536619134236766658317961302260022971096024090415559168281441181640628178240386129067626862356318478780835749503037434896922043438981638839982206979522649970899257230537698810164302851621347993594885004551132260506136876583367126082553469873612354333406555139099935572309997519372144972414941407710988974552846301117566231804801881963431547310388923999681968260997580735138049858519547910208861651076350372080212562490808728676354185411320871774877071672154640126901249243237572327642532879405915887158473981001356802918074823299606881784559637640968940823058798870633586257672803633768878228302485790611199583092493441805555940279905358595739289264856323119032386798941771015959616036574066691430228786961703000416304140517438974740046992271254800447258418935310108786853641496605879729634186119487784537395816174854336461941769567318902599979036915067412614358673085939735103784223632992621904251907095885362170777368282906839048948078703051867568242977260796291366435815557259169193806334518177784737108477828711318052032606574823356515125207529821297275211493587052371963902014444818048048505049625573158439596999659557675096947236742145160350527190846978279644441223482654898123543412969265907320408309908489039156830269216437205625209333959478521273880106984283484766747833555973128766337695056096025420102909508938351013355849437136264928595109169176751818679567229263765666306036389120242196282479626669780153321474411297452447460708843654188883257595813177619548839443948450710753373668191356767053060811349653877357660095020763444017843486955394751134531376255926295287436252453529708007775739956584800521183219633298354638877020583991228870484292943311430840664096118353375669735287299109387472608858449677249503559522051876034264854574582689289131193959704952103840928322645377730688150823469914355496118187986222689634169304959873798369491389490065413023715108666974848829023950371023935608214861208266595337204831771497394333026113634638920884622028772447218221996975788818570765182485573991351175982509472567599234032008750978287876425004104406424590861425546238662232863084645956904189767750944297850385178489570725032358477303521211044709101819619197592822542831845940830336538148757174057284219724887925889506421552224961013217792018360183603658957476110244524333238482095996754038648203868238277590437318413794177618145418879354078681005455191982999434932860653287620088805835981840168226779565616336823556642984561232338608472775172885411358907353579023283388009745387720464520991260891787372980544726376254400018479448073411939158370320946136886256866812070484712850796695225949724423381427231557502056959534082063703909464734847574427178292390464554512145513798209241886931564389116896475919985923262580309290148053593566434532831637253325334562968001420656913395218415131675647625205530202451712777105200937820513966033305837739467191168054360381684309814210458802221465162935550885895383207994790451498137711673020511899080963628012275085579372412998743587664470318633936021987604323652534649880022226697057694249204639602889879557923945964914972852082843656064643454852318237035547098982762255692322005034349651604113367193983399359060037608289152500026293839169371091618362388696452524007557679955225772865888104721647785312938811258742703296066383815405131845607166116269256332392632732701440299445698595612553574881840397209116521112073599661031721488839678087691904074990016662161843532947834538791521519355717793684501812971322631228363562324216523237090207352055266983094531598730217263303064534208042286735978903037258582513115610893348082789156691759981855047306494362170913602298817328412453953046349923992696670147207651213443508154340296711463503846933502102948056921472435822957257740938590977773557214872237258190982040290581037336622842637183189542645136585356863308132119254756820540744307478001777143782469330990439560402284033018559783558643583712088546705033665362519260717756410381655145264582378264883863870098355272751298201931633101616934058974238158711168024771083961703703424241724610022148210692889046469525177675671531904055363405516109817009224940468840604720334558441145033250909005982725048470184870638174897830869013564906124348516367283969033592095433530599573641852385382575502197710612493083629386818387679192108890701748811886880487742403807589133559810916147726595366269453056241525858803689975889506320879278387737131176199737841902125655269197484109145199738807674337056220755161996201176925854018309687850769620694890544723348530060341589468640472396072056420208994668105284309387214030830172808993109288738294653157707629314655542078519818111487459934084776157582759104280305555867137001042710527340199663135112164348126823224699578698740884923828865058714851011116905906999772219026284815947804882940622071150823330975290722922287264692539870966309779233433896562661141241979397891555277939713929769229697960213860130666986129375801912997019684958657522049068408474940570253058077469460760839158101661080692171338500581705024454540920352721028693162110800101875955665555253300604049553164165753809907575059283949694967116604971776494513331096796143040424749206710630262612770734005361947135112656338534783370213946054588791754890604689282416258213933231278984587002953533059855424064355668954880952683683489439338081744155546693452585632061958089002393605162158135964111018514231619916237415680908669963987983325257682396232933962417934216310748437602724449516073240475244631777074942702959579696548744182221547876224363461803936265828489494020100248009314619205374413014764085206434951046495896550504574426950795011109967658356986895919815037958767678727848284841721548210446048462886728669648953666517879036851966889991170028906218801829913417032225452599725834814487812393205881721317365739206314284036423264019854712142207528020851282718830054490696757716665791355240706208358461640598733288962592295267829428221313147409258428485776555338170260197650006928755733463180245589510185790507235255060129889358768353073921948987752262479405747683414416885239579772185581547559212076584476461047636108806399347830877165032438924259318136521625634842534898710451246336343533236890319952034950420481670432018622288279920541433481362279585865187884004427019749979923549159293322291699472552061044040664861457435304176874724586078978519438591527075057393612736177300588936100497069312316591146448254978947189446865080579465343935804711269028429365965495738314779326600852162147222665415591060831770009797404500833591442845182663216214529645779499590102514638841163499618185009403278477448705028748455551551965671660728039567021662844365205625584435489593436586570261934473743657594655544161248152793423621732542902690825113230299764010444462566076858571867469400792937668251157955462608604220560198880307248195621317228818190391276014864333600172020398652065441329690436524097928051460596623624097300789386317337598729798880507674166100947472189635462415468471249642324627744727658402640243689683756055222079952413089677588837607584604302376753877942687145527450942354403750877454277903275468828705827150767113321977965417178843234748941683304042927317915185277629032020042000565224500704961755184021798100187944347841533007106341336699338672939986825203894979537025300904104871942602183973102537834219301023881842904813361135592585929497270722186473009858355063387356269019102116954480740001544402173490099585482483598831966485471434238672691447351386563630197453956280681979698651263743931895229618941471473432275817083678393097720703806382937496753650567172116457089868884030707210882334224742582104120304462928921135610824928876924910098661873268033806617377501152098221754993314509525987585180814672092949137331010052949448223237548716040957312511127370103328054395258515197739678379946768041289614859735999216227621190276689211881337686973941883232812465723580710498450898827510654914352680458116251895366987204902681422943519597768105018038391316014896917662787154746093334345372742044456289620807822442852865090009343000755038269530547404986702681760856252344979988220321005397906006129055114125676133133736353442594322079153221482364769639352790631932557409448597478030520615402545268153361641361315570537671757746861792470161243996200167981256297488701017270269949989830491423667423730479969847294069798016854733698396514393967180123980401414055818402648273522214519094016293289145773269110893093143331828501775682081676150510651103086118246910105980134579138270576175433656809549553684016072180401245509553892820542746734996653664729156966474310538854454931153635079848629261483304500916879451550315352584380499498677113153560837976495197718549517919073310031859744794554939882818163276173984416629301210178870795308800302153866737512555461773508180773083712012472931795909673777987801299691556796369870096418255743638959664429699665598520621715458848058092068750487023857625056354375703290330691261556766370096240151492341051955659334305874749856254069404996548915378226128409896372308856147438411489866102019164189906513409049237412048871715069962765291428756518505717047740573744531264173307749479871982285238453553403879396718944855933920848552814274835574843334644276218817891846553338676952532599944512029615043631577370942346630793464271511544574880635164375510053666367401240484973729209821463835545411222590795039556651881427013119842657879767867242208163260719051362040863965379830154121270856658411318666643494927377963881824815400020167511513383761881752972606647435151686346566409612937722755575268105369943522100875626049297016758994146840287279314531087194414948346109058776701367906028094403399837650754688203571909792051384340928558228769689698240442455743737156494940848496750350038667490709601388642172375777188846151628765318344244014287211061832629641607736231592141606173404893861186880486235905958305947868359142864063827482834056558812275730096767427337598184251608196731033338883941514953432982092864437559790485791930121164382242676609262912865354147027966839141591210144214042276324563530089892601700198594205957016661031790405915907991559965629364174088256018534625388467715934416252564839894337185681205858829675194892874104524141440303102876774359254664504273887414712068535364361650529364200285561922707522794666433395515100994508814267908812046935694996762745256573964012641333698758533328374011629959217727421489880425050186315249785005028450731566547621335701858319775025477177669593793028638028791116636504409945645635911641353411119046635381874018564654622072929864507752916996873588351010632028857436752180703478207730078445283123673608632273034349918839181721617180457548730029552098608482003907297003715304102617222926198592054166375475844086938759045118938014752268519043199655310223135167528217311600255636756744989513056011258843500478966203646910413355035596277234915723398710250756801320715649938272261939202052909748641350861557676631714229889219525757948991180526018583039078307071817356541646276340529542779915358860553958244220061040967995463424411301933284761639887133382866157814408792241176525239971261548075615847851693097278767815428887321370886551565354012944225874877948821433591298224425649384866673446734938519920261432169432860508355278659981049599597974024744206185694914500051124640592106168894267546656524292090459920491630897683068158443730531231116116337682954042359355588465652063711772783715589418083502366093593429713679316325965275406559244841986360737254733954528348672175486015478553815226393932973251826495066827941703952878714757493678135180645017432484697569576298391727333777865276353739521329240784607004446150594254542471975629402620691084903106064557282280022215069108117531714534734730327769873936580179939146695279148742163127590421919842910550192834151761396455494393636035943089720897251733806183756050326526641387998158407560763134201302166364111970310722085732056938571424719488270689221239155720525397039523356163022090402049030548424187299329933400271406087823355492657624718638271923348085164099910062844531313411256354707474763795854257930714399908936628049347171037404437292748345561854131907902313569485744650211218201766216078419141210149285437419391299331287664908074318506131067599144492151897739604990107500416575009462029029574668935781265140488360210230227814561015829185775926538569095625116852412077101328754003546896842749727083933370866984214453871769882723206347540768446513582119820247468405068761824645659641408409273982101696101986754513359477047734726601564959546720968566311794170673482325349800232002140963184637660630701356054083011281616802823357791919778821916641650123067006803219437206617797688889612637665799929945026494510450025985318398220939262825342512168604838463752902531918487643444043785208337535035569731283725308842412509596386251559017577113191607728957432927344285197403630842669577473393011980507846015629438968803134447175250691475738455398473092432612991310183651883101156525613483960127492333244257726188893345671168410188406163255974468224320041162725118358966208987796172330516322907938275122474454454327012761257828892327039008868347654769534672449247216743676827076797225223683573194868467203149622955678124794408228121953249409157680059127256675545768095921692706971312768203769780461117669610052987848312494772007034103386073928707243618723081394316209616953375287005117024385852980958870736434270265955147975383423760466157944169488790435814702059367658719422626372948667510333114074631649528934513124201222503128746406187658836102257068865191121477294967696583369939627649461790472382601447661924150481333039356384782419909652088210048655145714020087024100934385626833046785430260661053972462461854445474148515598152736952621147475613234828527944139034864382598101039193135548823090859951645924546323801503918071776950127694339777692995372985424137368023957715426711779965833442510047346087774120709426405207832373585908464285230306253086680127871805551776589842252512698993566959613983176875242114918703211988598487462738552103438174932879263846928746774604911821594583342280255358418072826080563038126452772276423921465505428128437890188920643078638377438433451156468245788861273755581145927706890382840269409643135548562451979882689172464726426179580257438799649301962451502624801181440501996429289702297487075346913164573307971457628352340178209909797974724977682267984272386345896924071560663674033860447184586435276489392315962966411132527680457823869930949276565894537635601026747398106445573655334408076857004759146984417420178267586696849821875062917845276675972548806968886332362598870464209918099729650728081530804434421292466204096617724285318046632337617150011552043848367042381150554735293616880227233035538449150766126345285176592187096675619405036973032416477303125149762670850509156879227613899569749145983191729233287336374286745480442142351305705031696639262521858403076264318183647766243415200598206138393837332044608471788751134823585266177930074771160852222347899339995097679540743681313513309775595630449405402939340438260190530034466973709750468782808753283393574339889931838971171645682216537161660051623991454403104836500796581247019037953146639585828196950208183925489379267290755728776874802864158956347122031179010962282524152709274879747552848179869519012776343425324488058067082699942375072174903527249874212596840913522613416125845176850931619597958483531638086366261274489480324468574623924689795169154159454054502865556426464648209928958297692795123021508456660730164515528974012592637652473403607710136604621538180773074557060329557670055346223063395768564602940281857971619865418472369770904480962064651467095649135231265771460040294820905437241780921485104957937179557623903727007265388392127245920707969479147683575243709023503999463037850537806418741136402365924931054840456450241790582029155369052933169218038520491807729787694671761072942481077712191166655387380319364819917181981774892759706736821355540736213142554032665424984295330591001841449500341224426345504676528908975251816070844393611274923973311652054254613025162740985758482001954519444476642088481789145680572407468657175130709935689730553076070214640969122882905634375010119330071088632714165553463674770749118397220381539223211226274434073998473736616682638576628914487503768820697540115694735960934333004519665900671815628494317920505817493782618491633851572495437065001238243145961533147954273012703911391316439887268804871365077390499533061272837512072901563571552837471093603371609027854033860326896733000151297434154090845648998909963953596890559410434569875981531956477010236141201692536062587821789725162036191264817719988363025535184521413434832064415763791112299304709180983915145010484063980206684478649665650242923603805591241887514847919861190767113657599628386855611279672764185205430616880844719378834647305745880754323962490703676151006990023817708482810680237495878819833500533827857435189627592219562652125556722138867358493844155346168155067257870117470678152696306983317157395654022256834615580071016587990480847676517506656207876080933638503104472206684184860821092462546960764246205417028596927587735061955697130782087884410642614986414725361739903054118445441472905298653295402305709630432663597772984872546331103243447453516978588403978817008326173313251487533442755715216866622218084819807617336340708293767910198968344512645419740098406199904748911048517187273700810425712576656881598551298968629255992981928423001297883394473024746426101055156824996014412604219939162236066984921958356794873854350596490039950303124213910414508126069154737984830442996729740544436765184315589608759699423517044189320964497395687597710606021266164286332398784162559566667881401727595385822440595824041814855943344548026212685673901577737680712967095377688589789121163083554858064961477730608723121514567683385840458452307234137748672471580184044938648664378988481852314546510559303448377704913795086191659346234263390193845050305369612971605477602419878901670757784188603497014720280249446466566223300018835385543704481820930930551098371184589216031857558071918871370144979579105666183955134713182463820424827435665894606728786943557774508536408939780749991749531096400098576874816029325073613519619299175291407196914897701240384463585534602001602067820774981954007478403445788202256691050647347556379977308570412856825068939819185967837280962235378745141314143394098418827194110571818187759027543743825378406211420330583997059588452326248045256755788705312110395367450664010881236218887026611089034388102257888974268366063478382046483226743737206028311612514063328446734217273905197967320020142270278495762587422839625491862435966343414013557346174503650924649816391008407215931780773917537930485577782165303850059088155209123388878875992535589337815110897454682880754020263186493085180827217616295414951033169238313159561922214698326014142294614584015944470115661781212826864043193632721903968449309895432378204680022322951293601699746071068063901579225455806659332680746228066038089538481753597406180147516968274519013889374106060875073216357855936689808576224718556736367537342977539940695698904240144478301439623506754169082407411864597433144526949276045754667275038187031347241432193074239076983200147760359069925237167656504600652609514272707064012882717425820226731252721240014355417781117222850435487310279747112522467689581032688402480588932752859956016198450689456834510238127975735744385551425974357580206960514488294297018832384529915074541781236839888613208825972797057043031127680710860400507635106867662144628239385721452108560730883201385252097547734839576314639679872840868315424303404782732709405688932357990047669583975660878313689313351306802091560800761817620733207297442503082739262408927900676609631311848983710632131532427507085610529823141794530595061077608892676070318564477444324424751645027434347996700584301878720199433766637136186979607439596586870406388859639170457168073495806921124657961756825598018225226632828817082794983586817754396319363246699155232647525778562106640312429607743978994627617818390777332361932429817314937667475161855739160305532890791845627386796327375068390743807256471741444481354512646031109849693362704100636220898317634710633626913277351274895009884967509642481624525818102290505607746922612372840012482980231749212607626385665774866872820667255785671140995484790390006379555876579518213743176034308645914665782063460233411642693585078517512425417498970662425857320420648462798648982928424145008555635760814268801979813706989949307479312966339875633886992483000319598706645345336680545011232779679566213270207465757861439292460448805305147975124376206244449328691828171181411117084274782198996505622600515431411612865794389296642277833426093573243450505318007200289183952690031277140336973356627214245887318252839796766047571267067408816317077499946481998971067050606465144113664084716909665606058921588789069401435855327004930922219746384197234923964667411997247035071553046761658951591869966144624820099855043579624930958348790520611810074468207892069038240887436563382537705100861434662161869523689484941546015450126984021086354557363884178189337379744624721714455924173991354604603368680206586409112917581075909300019735052826814190848608753041882877993378776120543650032734067160840033691103438367840035661341740265279984184715634079046000104634533652071351155521630129629226671440860029191307124756849686564241064516332344559251913887191605332494030690043833915042607867616790899926566458496416201919569158124740739312918589548161215571366242340395797213707665458305528272659477643631244131315039699796560687601883234377169676749219064699808657286622167628489119016877241549021870481214193983154296163443032579634138492338480093733661056754894458071347206183327107531913793448302613975931318103171118958827692630652691163670559685530702528799924337669694794943790683345982574719642958929768193058484982865922924914039187573603099642604040567975712607255116992801573951121044196392722814082473869859905675111597784895545671262799915568462604898116863747455788411614964750415095884973837064341044856987391683832497113518777564280365705294625535930144779199021681227515955962323685314456024108588173582764595012664264228170399693508751899740077662596855378991920025196399483708888919681570226187063677457286015712019105630834753083925461504836211460493346298631595594692163826245033033871293195688986056641398052966891976538560203619277350483453204583463933207498882580886271509453466101477440794777344828541350256431489516904693445317860347264819841805577788764586764320872930627945986461293240335199761234004204505473105193319306102476194578145594878821255951955970731376199372016391361198913399901656109787284564148482143264612142920941197179762943371853646819560013433904022952525737266840312710183902601635269627090817183662623812157429126695024505367462611452142520670173709158448980533946824145860303654217325169982299434007724972675159304228699810611658829559664719297113643978162731530442366369867401732973054986749051636595975043590417626494867521756681359247937436442288967292761965227752942764320752623728265940446216463631955291269139092346533318153510582268152782640347074844262514942068184328916849490749403426383768593152867009269265674045828513584894455538288546520777951480546026674025142187022667378015099332631955870542851223668919840890853508918420173513975735072652269273056181259236665556404961092467482136098201421742345673286722505961115886006922392793575523971448720171851747201739654171075634912700980448297506177023667791804358419272527443845822341787951709437030983025489761270189868736981166520147392285978325611263831308105301557810521254581266030730193788191937900906657987718473456104046342634622087691783894470818833345004327194874421031387262201509976873535939962956328518035839999447771619557698958872128926082916618719245141572347503572112587065209114095998069139384313542493019311546019989776115930971088540392747273537608832502002195386742271763757444342033782593374636628716484657639219034253605106900215828780411038981667853603867975498619591495287583111673126704662604833483400304148019457406447326060963187466240508036251994775775720386933827108757108004559198721376739969680302398262093388352506665394490658136718416019073929182757113853835497431106595435470037010086992649639504237056307943077991494388949564127788562590356205031618365202393740922485238387210038662450955602640464231345121097315247795664224149511064825974184486146826693048814598463183048876208160025987485805203609278962665057909508118765893667399289587088483004050917684481973232277593218893241426606967013974303420147151726960266530089537030325195536581022936756247295751801933591038444076180269906171943204653007906746295160785348499838704555463184442455373616789352690023833399609097502187825524795219537079951620607914240751269227436609697057167122774469283620326097199138257739514524091271850990883922962703804373236985406032264968604979526606059130714684526192476742760327850912509252570693734227235932428065553615413711345034676553147616165931460996122317746335197682385074469735144641856268440332957631650391325843423977327684412806051391723844528120934230096786989652405887467007471422348936862769594755501239778511715929967155648463968492659451636827771916210498940052404815660377472197812481461364646262772542044851814197163571017682110651126239456088800927290395538647595531066322972319213712755673021154676754816944069754316846726449594421101909776281536412502733190168894954110059141666847054783427040786695310893148433284781397060579090121536326661858313995535244167432300957205820930411488272670254240921172898540303639146070692726760654707467594746325738785939446740710422013376210844509374142334782993327716863724607699530659540406640133219398667257090166686263593579815255178798108273450604431559707513496305303264135886453066594121765131215065617023626315105351692306725269265517862615318990225619441924456752975495025433692546267718703597246193342612824588868089815610535922049462412083262740074126498150881281260850693720239140278667118297674243595295880172198118891903675170789825917471616129641416777041655983479680628128124188293187264689341600672053995759522350555734085576811583046584587366681612877862650388298781203123286906580588570608086827561716489237698712188739920127734367412835965044708669472177918963374980903713423248117717772304906148457927749132768133501027243252628944977857411973665721377520660426784828140800448801234191713415499611125715428657267966242858022835159820456842767230894278743063158799835475316500231634334871848769020912992637525779472412415962768500821169816029799031946989658523365275291674633135340022426234326911621114809772478441118593334323901870564176229095610083306813936106625804852095069962281841438890033795560203350611636748961823123250432238146245490544863519460554734820122602857023662435959801731211727937525515131071931310944383742750840000795574374603004151198371299852771500093504670031695220193683467356152490980138413333882852265205898247660558238277102403582576882329729855234245021628442647810841937388304486421492050422019202469349077061325334572609660790501642227134417671668289037097552253112915120875364649539803936082742995302572171590426670128642959728469361957582224659761596970490017924032044316858535355241684017246364309623783103773765802218459419855871032055582732719658943734519400574572142541446246733437211974463464373362526635851187107747826994976561280535919448904670877608545542341846027784726052227974560720637683212807158062059607000432281621565446025534568873814470001926368938043592581814933992336532311827998293728925873876199230462396735214432085498635281485326501232300986042383243139430596572461174331219574443164450060093912424981965061867458960379357046850335802289042218597455855136396702591496821214769435123078036328232759260306785469134533197877161374962518615248825765142315877674872877460727439605470837059398774712691987998269640071295517477785055504954517000146218273343226716728229457317243835251618520033970145287867355358784568617750459284284461533709613431877095913559125059983366748412957592489569397382677188322184012090420173179233937292336425999165827218026718162950189028254520456924817123713155565370237533517448432206200772288726956374112823938312176086921470124279703469286692043182699615897193005433042363045286114982373653998955084584025433106206777904056773340492075570894583994224919707862037671041080091963878939888208110978607982698579722365838605612391781649043941215158982167859197117222342710899380191941745786615332144313362885671950936158189344116966123557437738169658702379205779415690341055759914031546020359675136702631041938515246248305610280157080529742819633958666928424104010335205005808386645178487852434730143612655419203224065244053617048703174380770396711420002652027224566922745229566163871680047954682114194093478162413855158983920854922372125446001258085006774237377708062836903488108176033073432137184403119755578346136146334456429304197251908364633950328700712503672131000711482756331629610678485905195355873475341872700765327084772163347134103726961619776372905063990853713844009308268912538831561109854137173306231927459858279396144114497778069548174952454964438400313791878735532259259708886978958048736689669208952317805339184268002301895202189834955736311185096242527331550768703751196551116660598455184091170504270368372683633002136505125002709994850373101343708755183585206146494112550903552498501294735336073047715337900768761314352139930057841816861286566800046723908707983328641838823564759343622031099487549314132181995502867156250688200410705454636256532935700345029318142501757539925287826000235445443138193646587332322987293733069812034573723498027611561138964953314369745512988188652777363952942262551618170163411716852611377017054140395891773115497459614927957262584249233453805833013849722954779509342019083928611654669125771316074868818514425750913381223101585480956343330303398095652463750647733883958425083032984114882212385120715207736742426535504783896111808363250822910956979476600921103973410402521330517682021181761868735816404259417709937049860701693722872684061541592914376862576322928930233929900164726438653118951098185202975240192945015105730776972247493815683394107169960908339900004630746273135850899988717710058521202487521502192422700101335538722604930054432635792496351338853063495505230142002391426985584790917820924370727764705051649892215385366789385358035074654557227709162286324178219218142589327639299472156415628582165620772944006114108544769309191176344397776638696782727038502485923419487770113092385198597690315142994775490871608419542556763062188115990794378734371753014426246642969591355297756357868992641906188566859405900009384743206774310832168457590984022943060530358569102811355884997222043500312339740919962037327229847555207520416030382706622956298115210608026681285372912649236346961234148476971022790441971178862084135611916260924705571127814567451724814160386132001476912875885188848687417099153838358121145606964595839241675176937228201343563626656462258200281994204539403550340298517868146927975925450983944527597169204143734035133760150099529746216957779924329635810683855080812301600134791139339689491167630076491654156428833150716866459492059214826877739057904930248159244122390043609149977977477647229920508976343797351428917837327459912268163616584236792835375381201156445454359052616950000865904076630969303432465512575342593767504002286057719202847287981288285269458955971965382657944798961338922876619477033430456805197041099470335155343595332767112091730543477389102044509199259239277390207965611856963865381079361103464268149898265608628588059104947707427734774413569271461031343791525486798181781519668677575657038672060031157027554821018397244113741159780166105649091212733491586353445182339115517537782552009155386880495344708100758745050685070535436936348728409222888447375911518405899563152148905592951425706529903641990151490361924693190558354545105811223775933388581165914864801137222484174773674691788896735426696197030836465784070081551791962359736741798008755712305627490607333553819608270460982805191115527169121569808299398960668875783662980857802644712989107801673805920638037930895290709561249521647743742537388771737226847431675051160441985310270294046118145320927796641733621618200884255060925470249909504495018024144346276690277729347500892615213510138439458408840238619372837289327030390604846503730183559008706407178535561746782746679515467189195215831579116801836498357163909203744420399288199078973819210948578637272778210942833177341334882177961784487810694019686443432118150727883280881667573080833062031313005916242900366926031867149917301413135701675823472675736752061177155668463480503905376126009184425134323423062913649254972778363912886797321813415517431153027973678575658275998541669302958225524333976362542576643835172789930188720410169734970942791747093960049777512558634485203088287313109434364001578421491300284678289928673031448395763020705885723372979934132990146865850203881374364928049942440436710188099231563341065938366178870303355597610317152634665807043793457266627200325228731102470721373273214010508091573087853674339699542548599576196182225459108258432247439201974585747288017404397173355047226142701255261215726350576089131702543246991545443765115409503531490514513933822937588908184092025743545577814363469419285054167270973144851028331497897821709053207362582193510987088868336499046128978028932402949438205905196765834142966587127558859073268071721715841132021412871752333685879914146840644828318562590602988991986414648544320385837797819696291154387442714538608986261926813283055700764098532672734292715581111588646495805744196001297923160033731996297348204081960868459037041018757688416114730474619580110097994636939649736776631743330238789722482761650855838908170176397022162020665074230568067588168658904452432511368984580517574315060819523989678359421541396113565463405213109716950528386774558845307361106989976908366053916413406214472890893234478319302165347508547227221353704214665214918454863478640271074646520252497297905142247826288961428800777127149993235188000762158814013485563879500801507842530695959898305133163521866182813252961289653468754020011344069265671396857609892214098360349562125394439944726185651379177455394034478180847596579756321209648387166809659198316117077161033140114744740951288703664216329409845869197813916494874918687153674295625638725238320460236066020223948622855036005692472212388625866796898200153602565181330583489514373618376242729608295464900411904691315735836929570244482694085204511122363583952985022023585250519434734858900704866041357512060323511214393318326338370685364737176722202311292176631083036791741218387861615070360374235013037935115151374157539267533244571972137474777223931198292220992475460972693913735003355403099542413448511587179567027373175459270600695966405446681887715067122825428481245305451956877814537940244620926057809008055122685529102132193183344747667870127268201522234759224679700192318551241349267879585785110759023050181157451991522143467214189112230617719526076387593278122187396189781137025452762916793084087897270533683726316201174424743744964964179513834261695500301384218084613018677946599494743227223734699071118486324102756677732088890812009429929025071809956155021100520447864022140396802899112112003227851326669513137879788655985439851585942594806672692148655334264389592042883549365467598541294998422314452029144968066657300964654079554376762215876524211442181077807818899179844419008040130540165546471207991096349623370998181051890242004371723637170465524662972028769476102799167289295599215844447474609587460161776254648563785310979435548668280118952228772827642038706071591360989970844905579496038791404607793370884090416248038580806328270061974066675194153001315388603657549549252450153690177133802745649288326877194269826525676759939582580635073910514743399855441539054449586491898180413221396983328031697104769119782873729617167379156440831459986247145516842493032330663672689809197466718330917629654793230317355602959697752007596161204896714886647292174175942556331599824017162016161878751738175012699887792578348153577145476113930986838637663679228743531563358479064894630651134623550972199197223596087862380738806646850346146112892439464960025376638720841145335068015386788884621682341862133104853495379864490354703140354763676279453246868412077345953058352519097909374680015869759372928632089942530172082678843182364206883349100504785627195983900689179358969277113342107742737143558026827148527948588031766597840656622022614550060526469407553373547601127841095608596257762935523275773463631922502938261676882538111294577937917837376303639286780238856987605129495181692401622763910292279158772838791506787361784027291347057686713759943781553721471527489645046936392359066127420050739567839458279990964694437584584866277255421553073805355615375067632115090383467098544953131084676354698291087691377005404731887361680470123959231132053147703243040156694542507816539662362228923967006545388951555502565743136374617602098256556592722557369886595419896370468520054950380206448204771473880950328838918514088468459791915988430627969149236232602510791373139063868497902459203835817111987321345816337153723368609563053063070838599478292845650352502334384143139122389446856227617713160967856385615445822995418473142545276892012465747306425416318953209149244383474377537545979066424495890163511756719364767480087553580705685631819943777168516362096390679184691251567229237171580630538052339952075971345870512424931395931212270146182914128198884883299577736456912448003238609327048779054720024509185594819264282554282981509134209623629967079356934119398979635642833404175991151355291959832643994398039068642725207588224660160612086617497150428367601980883332248814695655175694880806458089152245265231535832854620101258850536421038966660839554465048257845464359935651194614884769245751081348620197339162145139335432236312469557180134515213644254987355405385109580520350931276448660688523328090165766702667911163190941242275473170630582965106739864206826370355836412846085262991272440619753797644512709440181270390967582321909269059688346128511783096419855422513841079416112408189602742259040271310074904772614874929899296349851973802144595311333834928089435315896886094283751980783960597286816925764628799165225692479755112686397561039962753092993330085128690981336855027519816110710369230711857235932591961976135444976706589314208392896818964669924185170535478211815487368425765445610743486255264191707082294683348747091087296346748766870989288112740597826049154760914788129709882166377908239555604631497316812716949824321097041898882238011335607144243573326323401700345842453720565825371376726952898897164301988595755914229633334824001055652879698182595685900464937239531002887089837515116987757056433417986705747475440898486410441880149182376655398345588535386774957194826596161822814291411973090487023126713451992696877825363530006332474256878752143795924438014019376579512346810252183454757083848635483950240909731291472325032202481457077395105688081671035784237107903560317724313863037378348379461636419930416850820217928029302290501290874989527127324829427428932932105509324402665543037000211903589090191922923078219961842878936979502444688257184816265281795943743662244245029085011890511189426900683551955319762178448826136065487928823980850872169086812924273478029304797229209071811562070537220301100351071214156213880391037934633418534509874933654540909300326065746963886867619779241441995350859794689661633304652084758505848352432367881679680541131856374643119809997230447443283598650432225701966154515084325608669515405341880425756048209875869325659447790065186431483828621880522590227013233429322013473897120922033264079239490105173190537154392336484606326098714270080648509259835605171873192785890543936351212513492411462442284397248505362538633903740521398733199295402062951751454761183100244308387770383444793450522240484768163400362705553814141607422408039166420766874466770574830020613167622132774713585662171928071345125435286465623721449320466938937379168428057194800161409244162103281016376522695811652799830904389728015996724817795903938669410782551817054557294378677712236228962458782964018286031289733211238598452832116257774417020856360251688170986761509397023184577763652583715479293966404153045192873388160472608263474597410654060313653728246345448368139074730855650755553808898602299556193260923814237532888999841863192167936312651964227736486832740489126778025690723011613965398188123438367257921011220849155389255906792058184892229340507460339440101636905691247049918021398677515702951229398899302719060615961313454969123416404481236489172113574525714363747547446343707229388656925681984903682271140731626281454229257000749026794459113346882132515409204331235490492903097987676498672887718744960605147699721403817829107221191968888185850535594719417802785353423191052965086783925935291525638196603548248634694506938441573222207675895605679675110005436242796158067473715680285789535630826531917148583729351252072244640709617766918484861750042539696863059432680270660710486632374521062744825618552257865904797481178114585986844028970700420720992543544512030278383751509437404339485785223639200574305235527030280478176100134989668566816774951919763186308302209342678105783560531188490288428127305956020674898933556480602171701368855882640699214169993626049119553163559228978538177684043144073007321507183838224756924264229362090156153378065857331101334713224152113897550164249410329848732485959590561720752242120415252698170726390752962206583796000898624303386589165631267531800455558588712591628210833803722184668628625864391250341748870852849870254217376534377324831592800958129538494413973345511015952521460757389005059318540716485270966137259360259001582489439596930275927726776025567737422318086348523195744660600560635448000729336716713690222736273685083567637382999890770202812564603548452879152727342772966263667191362108608611369656960240976777965499994092540694542024236510654842201598149074433240728552528991032371856001219118009858073836960769306497506581224767735562510808610686654635634298305713623669486698990586326830308084272269654360165514526582972601203220349550789831968113657834897293043693678025711286421644315866556384419305962747474934339521207645833260545440381067740534831785410220055831133294115819347903912182878224448702553070781288369677411481115858497056516652840273759429312083771311969574389607883666475474400526232347278057357622524726303631924912860420290439511159132436593661146785701257690382325460350552156419028100358760989871607155013014498893106089911795955342844953722965975170157047325691707535724335349785366992011188140231342348138190186479727265950030555956628917782456081711862520091663518056742072614319461392910871129483097676474296797188565962432704535497546452652216424334584178649303088061708628140230774269801227739928413711888606294483043227214830578773956402079173108845474581512510551483696287436611540410082626041405891311243476255187030559970586683610957976645647276886979209403621395943037023069695997781250902785162946144724261436865243138255687496171729079876279752392217993138941559381754698287110397162937607366061628396756939908178860638672760200364277024758323911542993342961507057930323513955653381934990935305571909074230045087776469086875115223222693763382493991673752953191826856429837985911859193535304202324058030470309490883608252033066712660912066480823425073166875501764346467627198593641734676381794330029201469364059061150268347228847609574380674245763934079200508193463165265833184480532593820915175987916811728902540751895841691777199042939800270593446374030457550572371225515793882211076919060475015075530317218110555711969462963635642490986637856914715337930444767511165545315062489391032373852040689240059412234974313328986218957690411835708744361770664777041963774410404419377182801894275004443386278416494992741779312261751837366984778155315873401987339719562371094688183879420881132685919866877658455358971111272616708740570342492948059011905508686311464646151817653048149521859686989120157789164982726620407855190161649437833067726214944231379343915935395159965614097447371807234456285361571069383818519987955920710267798088419619164052864532448561180236957838856234968248213802919151003369860226066761502348542082931958838252804399413452605715416673415713055484810210128174943412749931561624919471079425284518364363681274805067746914743270220210291730305726186618883807931465941960447390556767970720478912728033056752768023789192391745687744965286563108413564603406204084701610212752071260894361018012905282921553021585013659510742567115848948841743880808763576655676164843830565590926521182055166110468645885029974910885827449494736882974002647683851644824174680206834630167786603466054475015876647165708225795245575885063609969329397297615615349965952155707804030641499233106687760135269418870062386470137120256299579191239814945252140300087480787000220095335508887687361761433790136480600797170461890741629611198367281875178589629564327788447316395697337055978934267443101077924038535498672105740733817389295273108305206087095010771025117358123353281671300422405778718220800319741984219433730954438033264252044558871247460282564119128343888036772681484050054911259486751162923129480233799278853909367479455488241230922249311170968981514613040953833246758648598414597831718120519335031389874815688505124402573865376044666933910011918130067317228462676372447173962010232081992809426274664303464459242402931579882870159745725446337050688535618721225542612892575351646386660624299754532700566379710513840634626460052521883369105688371051361589473638408915865452282304327322374047893166915997683927237445435247240516691211288825504967615778790881294526683907380763317589226410828258891691197955039295967708215679944842913039723187623838422815303552049264626356200698025452106660616024567995535893492700894791404610417764159179850601640977746850384571429391538815571214484731661390075371614203631356157141831654464840655971622623317666377107974459096234608391869873934672684256836671737255098690249535706681288110303181181542919158553799475031585149097897465462113222168248746290936863914176723094680163768654423771182389227707865813228457837915011881517675602153348318022085020417385359598621461856074615518677180108423390821414731894747736980932994428804834844025277174612812097164839470680716044390811534553822579419645295094399792687801359478768044306800878525209278350010973154626857482102749724587147454635063166820587676494455958752749857414340065498171777889216416112406523825789033384247983037929442652293533584939264848249030011552406278678355020441896597429282758538769528194585320410065859583544261497332278970932836012461558041738135476259964649118934202461213050472350767735582389458285306199328502333879545735043808217664786762231246382426986314560535535426442744386232893133720969966525139290175445307699280493399887627771814334559385325554569475544485173112537570877172031465124613767935788600044415255881442198689875143341220342696733608479597522359670039335944147370236784129279584058642607768125387762109367630672041668095393546616182616448455022220119191827501800586839863269213373032648512717801443873034678649318121488526750471962038663436573521075607462940408736652501536383785833536727615530231671894885936166740428028108786374792818559631964483765487773230118395216592278037820468518167317805610875560764814319169969899225098168545963056247909461196707443565359064100331227851316939888092807054443910798217461268813245975049008109263537107306903396518456883964909680308087380283285878452462782979874464128892449502155179984697805924166600473863957860523621551337439423120325960137832802175807490470753479895779088861009850826273081239430439240303008903035155857551475711408042818787700647465387597064880582592387403484491140629911504725651730166896090286576706413088154008973751649570382235706665687147525420329122603788475140871631433587148822343004440043864809473722552840270146919450375106956307433378800558510195124227150775562287549729341244335316220285288316803252059404463956471833931777694599089238021762387384298311626282126540203333382038712575887649572957413695625936803313226866496493326898587424074530887760666255476767607001632411105069830223179303895424583442142830775667452253399438041433569677754474517675982290277511117102415609394763040772372832823171431249542243020637446739957794375661944112865570871055634166061340149860002955756745572442328878541698290694245199167689077224577632808928209443419898546122463754195583540789064088583611054050104480280545000253929846350079264171412445857779134980337917117057695487272223180859655536313193931387343948923723265915665483406046476957616454449856281470961846774664906816800827779958001463445815930488564668534539210554731544311205741653690721078903714869954792551855937167859623414656633946016692977197770527897220730217147572010463088233348655320017910716253633564181750325718003559009072141400711848194534194239694344796930245927075609645396691034424257866920224572603189127801567909733093306474119133156969241461446487719335752944695514763024954210038831287640312577376532068905991569175473444400200758001690138431088861261901605242142864014640024703146597192183158535153392483877604721151701567427107607462346594642569427547107178136664727715142984365000316274422826097246431768960698641523003548780720507933223901032750384725690437085520290935692995788210929629150549584159972443293527359721368417051769945449560395236887949638837244447046831085104613038908952679978755004759826140194004855425494108319506281154614186113014139403589964881230213022482582212517337147911179659157940780441042976986911274454888948611305344351912757417158898845205627550502554196895332814010345845307585886456576093096808994930256940656862026628264720165286232138647697632399996188377332847758571188666659416993418611840146385008579022379514361480903303203398100973359731438876992705192300152588084463449451059739420974348599582116128926950200910846397687368561046717353240315433748704878380914464479423400299719458989376476392007837242774180595536413224262807848670385521380915811377356994733021612233393958138397810626278004580806594342202218916256772548443554161586449011664116794672185013051982559251796240835546820784467813605287470454500042888196404126676562216301969004452108441064500496377687524419575859665741818082466198760195407272123607621203704560466228088592315171851518840197151089260020069776622533348365440610112492432766503680676696237822270326833367970191946379564953380913595516645352728112254916418321851598084721296323401377173270856557127058234524944922894179905444826289192958278993161028658689312343056259835620115519091331797077646163621315385806880506792791296742263500705800956465314644406105847029298014422367644796146513815602713803164439635507941115536997230090305068172372547477107275124775181495871976283023088498824475203003640502547714069936982612136296108704346300709974288672235237093587692719902096688747148490156980415476627055922891828476835873276434819064811163668208903770739325758609219683853885370613673719671093094109250555351525634770025699457526822905727852230229191708294689839970522251256732500133048259141421307760622863842815498375709605526722828037813543998627106931333460834490610312248790470578296764268441007751055821531482225741742204940402218799362676500867557486003673419859653346847657997909308426962846583383040556571048168253882604064198719236257069845610182261504814586215519548297714290453895123053375860248528781983634775825152062345352669582222907783219509565756175996187256824032999877810933766164704080493563318577325348971638386737276765544056806540922136004615668261713631811711122474796680145897422193940177563599707531890500150026500750460976915826992092840946354813916544858089454823956341800598197188874031503630148451719567386350144175423632406474550171684958454500514745248075337655563472573902618991696577917462651995017469709743386993598769250519388923543437908184271082205966643352289992373363321391385439375657773001369181752948358609629413846928864905531106086823177253012447400748526391533564766940243207962729461109545435538669499467794449997579458265987439768435512181088317017564676919955427048766582279667949242021780547397747867610356393706046352086027009255801578431884651320912924507704630331451936091732384406775342825798234328922068066387480011013883762722129991290197114845742104149999710282649882870872841799394079444507182054891681079644154637882967163188853283870991712559029857971739263023606658718339316707620398993234955339619599832907369960369709540010736447460630188496397901622179991793334331564460568132326770916374513488917814452884904049395983569629672692045868835400365371033128789702980697188070832703847728870183550151344735525924932770975778392542082248401321454162543849849581885376580717153959205516994508289342345328872502422372779512163096050025881990382530443649712408728991972869237859397155056391972329739327562539125762479690653385121728341646737798522924783223302992836455746370699049701175573452791635246420374509267889244419233554153787494549457836839260693463144994651464261713725972631434794469246023957636907545630912216477407055407040035414228992915808084456441956455473308109235432605858087934385872785873712642719401228167614841437202639431917258263032462872759292235450306975235966559695467750674331019417638829040662505381138202657718309989451021196181479678705116073456473048762329623717432277392619900685512240485011196653463959073358525022707888540814790141935827788736100674667727003288428974285791845520602562892480502938416343137438987743775946947075981382491293700359912313299962649177094003829964348058211012947500106889632421024077698966231509615662630515952677087723412088090739227908885938729155661711525312613612805595525539079921129653433688118680078784594077570026193769142459125853898083781770063339348701123786878600625510753782074211806363031715087097003262413023069114064799440742518411120540852120101086986628375426178768945008154590297593841060124916466527738770825396607360426126428960319654468504338842266935680119450198440873968954225832075172482471638652837029849350367744608332533630315513338262301570981239767549819173063252733015614027770134175790443867024938603743432240622714383654481905128723586556644632253441643488359592954259563944323671017230931444042844965306167036817700894838038672485134896394515670164446092925267332165180135776496039941958515662437373188077500442092656649067297080630478174244132376101143631433609510726366210938351798944876043712870127498426292158076395031325481192429916427406125775625594060180298602545257408434383060847413674472921454860009088037080841476937365322721727385692626489948250193955130157695159593809001211534981905643601948726401037407829853013541785847365056549634420089032149275719116408967781105788004354153726197037548373382993814176026802372514486415248634426020561720746939437608806760039833405174061887057838154949956281721343839750624082904923755324425190569171057367081177139405970432113989931240513715594651728392027164898764460472629298529617872991923732380236412853048859974677559444463343462450316548833957581710361479922750258047232500239139152543338531916672499145918646997929705915926333148252744555496878210910351574267839164266568920499736690727417971084185682347733997343847240087524366904392213868409047873343841066174818530808906839461914791355964151727995993197513029822449538145824307613120289586658863006000365017017123454827022021716472160025903916718635438051339051276093388956684813737939690407421061014557684961113018012827851128259513050517563445998343463729212161761603317525933404493527820000389386061982471227239695281929091473546569147653452831085459866323868205033754712493729480953536458351866656616624200355810994406167614098178472559409392254787751249754576536198790181347964259249060824979384190670355802510887585657936210407680270430685241246197049801707866237514984991371170935201973413488315133387960255124921865791310130133675223103919538520372970889419751360657640571599798978951521790361492321366726204567947931396015963541385830697020359555697327127339134978154067827301984803596660902472180328733922399747299409974338569891821249148932995284207175461919375859442429749391800601682230285172600095447158274451296833184305011373600551521357418655727922868000422896960130099184275393663818488427935356043516737097502380896198709430231763226439590085065328968363160433588537349438951951051146278328377950079267912788045378990013452398008300784258111090470621123917346862648709805340336517847623462439652653191054974397744478667412609427377290368220232037323246205488475860647468738449536261837414467659177439738181753247823507103480792444024556436493764938076527603079788534947452496832976330082865369815903954362200045915076637794931207025435222356737922481745006689781002896863415087521834197609353245018831656682847413781797645479731985278298596151799269124200344215223970124730939566355023545493320480379853474653397299612441380565805011276411932664408125906867323693792939260079941816201902311395999815524753781554416373950794386310327948715682626620391421416175265130682658292600247434916943030616615129657744299604161523228169593647938261727368442115558534223613911807624760440948222183701466829630184387083725364786996704071142430942053364514469978463415896887422914732657117315556404810736946204831424466788796254154118326438343861403056085702727838719280655920952756107927276692630685956352555313335543227741455367744628291952480802358936760625603189109995328984715995821696296808220556435956239312680847769664681586864463896427065209601579025300371049927331217335612433884942154398741773183567279225063736267965641311182492079648965263489350406869799441459578243178128661915947772165731902614548222758947310821661921917576663328071502739623846773533850708589121592388385769156069424208504823134188656028826211840771588915938750222481217184982959307853789810544721149813743200359068901993793961359712748285193936839994978005939372058332513212693601639757745518754126705829040357812596388926906217430007203229930153308548315693094275718303514478682058377046700873064779546557442009308024075158325830297651937473375878337310335551275346472353347525893481415366736768392037645735295443808861502320663202625266403869898723528460347890132649598411532230748980967400519210674830425672400889197865787930830197679307793952614582701893359363012408351458506881389158070962901606968768007146624501364512162388778219353029987690406646006320546362578669972865643899064482472840249472225060470029679956934244728139139946184684806878027906330243928430360466447280155312721237890279751338554631131424190410789375442185316952368147923976145412282737841909329104443167385657079438380874113614908045960951152375886015679572098496142876334088878094586734374838315523554340551497439192675795916427009660038235104367255408950657011211888787972460949116948466223617421473349645295485317393496124813605515117848498257295784971688828458858765454113267319842570514004523061844486900200991087226013291667211918340336474451946984947898469243151745907639560496254190995341035315305403947783812558122832835223215253029815214237000970774666042820386149375760656644507719980014925872066129255066156450178289100454855520642482764534031992425437831219595432719400451169417919426945374038985923259309885474807651650436491024833938049689434212284702837131654768084958201705096113498316703361619534450903441890558860628224403830994682816294331054390889333296726937763593968748499544658394642551811583273454997118993344492511274137252785728336043702382473968479614328760894155182988259836176413180564981276248396886627620720084326447467462883605933991484947146260100065083763832491196394741856506823607842760007555002945909745139571925607541962278547358505226432895805873269528077417726184431639563581942922262072229907673187212882172831498613826262093410331735148277216138507618431481238893991797372686206786783290082267892392709896470629652927016083904446480950177174163859787753621810887002218030068704796871879746967694403609303987638977861500661749092633873418416970887658422671821029183218015534492000646069224100545534682081968903449351818448678842252587363136815081911474071384432220336838543372656024122254398684177042027864662584531760908521011432898009306937545482977575456463024557067624807096443322716768797086126072569597664881164564075585801421369665367958093420987115404528588121104870154146519656849435491891881514288104735404790666185511858266308491591600024479065247727505336501938351751602102411305540754735516770605480372572453992965422554715813161258151088240322772025115036741450839963759392315197557394164021109234699490329837886674034717920035459981780407639757172254196768703683974707002731517399295557509144589720908783605249240887367746534412910349250434194296023870797641861769793812600972722497762533019841543054621688936940900731372775650236878437939620500192356166967301209153583719185245506519065956626726516740413417932719558819343206061783922254449173355833763357811553627695081497988544103784651936953907826426701305660800859327323346416108310215071966765977155857356957915356784699925795191328417376052253836336783746953983384404762471765392159401166992120767587087738309894843197728568030942535863532992996539806268631144947581587393571710962974492456929009898290270974611586521757230004269861573997610728239436882383471835072431659808265788777470423744727213335772968337444134913487147999749365544713244852923996197976091614462434762778871325414298904117124465905513891145494519098689903972421842148050097439087034519643858466969703886754242476379795780319566980472738611532603974457262851264325747167616501450178650755379894657274362872158134297757787207852392445353640380681089416676534208032541098276825559660815420503697950252218775167665831028394644818371332742488061679508787424200070762636891789515965825694318363993848030333806076212106528330002403578651772405914649578212336299791598407676101070789918741430743046350604841626621555344173323502897755498315963242582915598742604660704894153391551842532207961026955322289321500529849107199289093646626726095181772901627755186764215306131250500866996139844816974284038900193156728006438792591825206368756276387105936938709473300867158065158577993576998165803896891201752802236853112503041813510734989924085817935523935185894007318207119457369321530186819635431165608043824764931527803285358249430806679754196097076822669329877333755533544738695126330271459199803016615541262195440959809166085428878733925288025632929577918246485934580939601822013114970970000969921559995050593334332633125842029799528570892285637013905186284399800247201097344501920776504753059222012610915164461338042036399940406493735547743839193747524187812950714557155235493431031774494121846971289808469130311692185213347588412939094088952957170755508176012977129168167413158554938442325953737950602474321018451005521687854587895722747551586157219954012845138097255232945423955772892912686956741248477358009866901417757248763184797058953369942189583634500795944937875577103935313784284513554843990861318947102276914424787862292473002898854201195062129617596966239287105999412723332056342332782014176115896550278443842269580726501736339028707401692616229651351476733456509515403224063515028535472337170573489140833996378750580137436094496837540334096602018474208992481291308277839782264227654020786460236159348111751496601350341510392352025790383158056678584221917043690324639021938363068227581226954291179259495849450016743890230245544787356093266651014996402206158924758688546747053674451866431631897493987472982129553293308251503552410251626004334825749015266855382363250587753263435026624394418645625569560718643710022244206776745168205013561961503066407421628431882326093000359004630061076623838345056264732789940442543382274956374030588435246780376960671754143796397819644091139550158052091174593527073496154254785645902886187053527673726117535881610620343535355421162965060682481649018860595707789422043572426313183269451712366517505863691367855952251560942464274069236696144405373901434904485049442071987215662694593695215183540042113249732186224511397412171512044885549985251479710972493005251176577036559998772715907687212326373313130027336336417979967485612495056340166113992093474794727143341087514922270008272742994673928579924660646722706067192714524496751755004923594908895950603788835137922185634529473541665044306617784154923122820584927821936357244908932455432214958320035480104861213540070617608165875745244075055031168064161050614834642482251964312170047742532061256272338673348085231547509444266886617172021013713754614229549091471673191525767768416401949078377940265734334434363981115739943531427745353460976416527659980043242480691630042878436715882264059263730632057634171626017494480621499102067896819974073104617590854739551612225676701842640486684162495368762644437262172397127921996539170170453828563155537165935492507350993498665516886433135979879905466489087625840362137962692015345243028707519417407501463613729680798430483499488855803316499161510758141425501006960173399521422397275833554279136227283908194053650875897470859090184951104196074363471081266359236860702681381394121156402575399560381708616970650057890921594641793339217741736022431690505142542770176930558241829468764490376544872549382946336897178273727602428194512004705659120070481163201737294475420127247651708403419841231285741736591496188150029122102206213556637193979231805537859018746574882492340393450829419751227037344958021298958549663393004302537210920960363112490548841772923002427154675250193584494763542968741277557853244922420713871846048990113200143966208472349869331254127147585444943219273331958607433488577763767635412767530863369133216423955824506424547506758055058289276948626216851385518411165991429965705157574773067050573019284612813685137240373843453219154828010861638628498238599940609741024580913486308178931373628930183224612958553990896932266205528878505122594786690265441547730539538795662787609925011023024128464192016262294267841595083110981900689152534446040485159735132240240115952074328081392048694450898464379231862636638946722820661701095762322710879946083932508402794688037303756415010332290331827784569808023843055576368581766013808101879830981709831382921233106836377768248881965117126599633143946040001136528427319628392265552981071331819208387435148971288686078264468658134436683680807262899785235626026365147018013760549397213552184965985197912119447589376391800360690544799088454313965168260690828473758839329742785387925711942045898210724333372948495811783281886443985866798822744631663956397808517743097930110272587121505110122232712629089862108420907398617072872062449519527561714062781603569304439698378741743623264498126703692200616658878407423453762838127943541151200488920417439469688875442498393785117397188652459374480273100510450360087119801577169589193671002201998716177426719617500215367203619110227835199728580938701537888987400516949771620329881253484759825205752195147096293758916241867565101743501948740297123041706351444764922267642512232797933357124834025198973435086677176894232191655297139313413673145143719926240593668513367818498755984764256544540177301319262734128188251366036317025054318682796670736844931428683302107252484621036110110659317682974709338473227469938368433215667683872826983569229561819688265996613873697160149956971621339317682011343834727493951953678674685117187216761085635366506020712137049236508089935437174910484979764978163710445393438722399705421761223996293678504168130624271058133159679520823796503363256139779601792149774062561641630484344469690784560553682696838281327004939431467766687961737419962314022278001978622251835944603073769644653472269047068056384330159216429374246801187622821519226573563337215014299798912561649963795055415581763088567714682749474729472000978902843492996563554586645631560229594893868370215140097071693009587930305414785529329367829991571510455223050753255109281101269092198038850880129412480350798163466300258479656222074259978877047260780104702092445500607881848248661825729448583097188187299903853688330180596203437312896705129459216891826530462737655712443641362985741904224009383024050287286180568068932018231848921814916398145764950540190948230135802457808037831577846847214075676756386158861117085287929876185645143867524113659416402419074349343730779104537183741584655717707455522823707356207573219048324000305536899450682140605757833193523598679047646739638366454834385481688999375518888602775275929054672534935709225742765427251400389978806839005734409614488878083502899243326010549601890977716779463436067309573280211735814894800897493952021115975702108697665943919005796911953732095077710605109002847094852251837658567088918458321344919485301204147812996239106520100016197139629949896443497820184181164612734389302875154848457377844657270880476167472498847867665874487600802777040146300682926530596411703662052687722047514711908470310838062601215299011540570200650524914304726945055087218352982100016467113981101403295552922419497696205735243358825614051151053026687529137753036482460304906219771961359026655933208559444006108066401271980628194372362382814447168232333288642293611776215144144808911894129376230526153522710073719398213916487053104780556043442483632734536812174887729980655892160019776408094332978461990344555380319118941857143102281846229982911318260515975192845327154060540402518729206478734029771114468708068384779009641598241577406108477044450195037009064751570812460097453947081520030559870650996240302402557309826862872603730881377067125161011838588427583692348984373488160002623238268343438871179341772601582189574724665974096358988096327785207256539932350863301976889189882117131077181099591575505106109001067571226345412640932175802340459754347798001042372426174876652766535975188238963991992952482872771293933681482122031126865174401966864576392848823653407392947776808955878808282654772643073442546838841971341153557567261937679754966585613676593839163908128505888902940368433980566478449905019910754165432959006250996714735981242536311595787917473865348303364029911061000941597403229768989542564575691783264307006778458124063717205862296866658418733546028322051605267154654242499916562101045154713795050966446912638367496646939256903279847729015173291538143106949954335661087692590620990599542693271222128838945899185382976868424226476825229456561652664500482428006830309710567382426247733070022857561618688307889873333172619924955594932349818995876389165763728454147475137130151101110981867528027877680959825921661470776042325472834899138487649440860832022130611924276713464588153315926547652492901379766868234113343560544909692574194134020561743526480859672979354769739373087693663371350784508285122644028769849924329339276457330930847038576412450817326222406022687777450187320404910434055761522122763248054275602405313079428200418094603388467295802923588284887426623336745885859415762514822008723934421671654740014802078531217791220665613258458497039964988709774175647212929623156779148795217915586942912411941434625645237463794504993956224839798990719820377905962339255914789229032257888628163972279929521423743387835362611698602436290091641993410950766167446743117610618904119389253596153837297325605424669887756279638650373100020093128767173640681714380946745601819138762394591053476363952640333108953419327764426996690978373340437676662166509725069988177890426969911108658499839484539049514059524716501647758376248052522133104835829383595591331978138310516932205181002640680888121606376433677456622541712600504707815377657677863948714811771690155649734283922538127174392721062035922575740370773871394237439455855491837573334070592353394024929246187759315935298710380897141872979553822142312062677601093372226372361096579237670475825226511994840939575537322681254379836436597345752807395776730309760857291221946600272904717943101941034070395877716980020444438501942695786125645547348373536072185032063869744726164082679278911794160566154241159490064910425737257250394935060716231677159443275558506087713295231658313037927203627463208073238014089768628832283345878798643611637120948098843241607443098821837288001066040667223342732262660081248534447475237968393451284853536722551556674579202961782259927924500521212587636452949067729458253966411880780661600401508490021424867096704981220476652770676858275363029916829565714211140707969083071172348828564649609313975799403027233139857654538452298008834751273317476252924096775917217626969199912674608619419351685532405629654248982203748214117708390363378913631341661300534637331957123588337782111933367439422699923201277280318417040572864581786608399399145580365220022067755774313498722151975407271014083842495551720370560526062940699949850627976559979795571077731208861582582815634861925303710455253058088289839197237956197335190561185857561508496776149406772070930417254581425958663676641051854246977734176704217562073266504825442125969304890427339376326524338939283642666466832979732701541461786265311630852615612773204174794998991618054888999609648284137554707345370094279324421453659097093280059724866254320269274403448780234092192026255289962436792635205957018025384359043170241703627233072559215771763946925223600255980077446703185352910169625730000501063185026396490546338203690827537125252848564092310526437781050484578988794734337825282887637175886343336574302480731128942891237734685731428062340896701078171969555372039816879956128820930094357408338071816407197151513638962829607771163090193071458406771104712635426352795348175484056996621502096145752460215868374746007666860315988598972104683605714965086540829721679869856297684133032791700777083688539115966605726377714758587039333838815939917963397407776431547408515591652589405564515378764440003160432041642389318053472320199874947366574739248188845381922436695313898643653670709219608119056842371775038806619929724767996063724711495839601869687793481500779615664314509421687281822534644700686592875764831092817293008281110807620921864009797642295212662492487898208377968778049564079524283449540234236197958811584876154851305574989818077683458120340954407635623706670183927406791853848923410542413044663819598507549474731713526873474566363162725770000810695105925412422403075002004569616410528848342363661748623959157372849325217856402925701992048733182946335127588168693281954557115939751726112355137388806264124647332980519028185217362372161477703763904689732596664687238528480496276071724445539787120579247699687726069432348536740688509112902312924856084526008181898149106510450905705201009649601051075858777544100697264695519396888475424320063159527209428622378415790775297341070588666892636558673305004907010363012241638489746924014062664338426678890829160212068011002388608072024035695811981639523777943220885352064296112552414508585236460108039343663781065879549763802781376566363732097360263917304956053089025001317878659671500956849209033704996296315050616285178018392263545913831101983829476950543144919374188089428084633464004876987430524857903677901295787691087118003181198780524416320046196870629076329993188688247082719489258118805152955280771100404390602000394778293451236730265368120174434355025019768912201744745009972786015969079250320327752375060547615595532121352882041586845441518371933678742858500968100451846070314050440317175803243921763464425055978887715961389190923161216924096402413071776651400277346958417677941135057562587480278288704839014861372345265860677849086704416564826559210401124128187632328010087896034467667004082215923507305628409236919238083087236112915127408595983246650582291430475014900432824452807302940142499235739456235043738160395858201156174809553125575104234861404507149397273677217133869621390861737943301810897417080995278227832855457440794246542232718492892761674204024898309959681529161226064797811648973687093435939043091475038350103803303556010731687650050652454220377336784626498204897692420338579689054849908669754467513465072611207744963395863088397305829678104847870845411032630961816682691559620449313741815395328132267815494375026025476729391570807851296938989410014865184588579487895549606662416645582778406014639607230339353161127244793168544211119702393044347917867656976071335640090005191804356295704974212646999466297912243407297758107178401169619549289055697285755653373878611840652042205136962120730452253801530865939993208462958209952782407452281741903328361547252184326559804339852648726256681379533036636087889616844946400255810064192315183705182239369868837441249364614728146912774053338028394459283183149270406175480587104453005706814790572523032346237074048104617312714451996676051675734030187922933694453122701763422000951113829168272896286687269877875649487440823876326987233347917887639765292460006386455826880348323673291656513463573391444944506510096558621103931778397339370789482495006057295905404820843536269533168330109699893112372218692967341345512686157862439692615644844872070519020226119900619115775311739295442580309819125504530669008200657449560278656048602276969718002680895581799497786986552226602796594188280704000867303406698473700516646815111666730045198997222229737846662860485201434658581446622097536725702127490066728038414635225282585759692009562036735760968238561038929021231244759926377500187440499974349917009393260315406626292011446018832826433576081766605458931165277733528406098531572248000035831189555158687437550523040377604832462963575745715140720289907713117946229493057541363730115399764922187567908596584775697789976104625407827933758003581486376584290795760990565679906979574874314285068302683786016319220725830651704100695574349423652160614273006729037946708463580711081637636822756054723151784826823330980552516493913893558784496846762115646454286280956840911134560534437879998416239712485569929474846445964348971944554741721143708484125414301957903984477720783431953238703574355270192471625709475846104220942255364710432480222898924511063253394490822643323470428525444798719155278411968728210693288910159707064048611646328510241267121386992440262088536298700983180917535753624911373270036384131136336913537914050673939618926084801345390596716925632636799136366382561512467657252586697586899366420450369256725846632785310082168058857696851391779762007658448479836910722711773925210318084958261774481044111585823768918955657561885112566385123293722577245982798801651944830393701862282342041299697630576312868318739070257383567746845918274607078543481054144391345088608026185281108362568751848118143003687762721810161734636628319215661313232506429630507391230267156673016853813917009237342814170298029945986868483218985561547574473587284534137558914773348192817047242953423524067878815732202025768364294432983581815766425252977836603275257913332863145586208797414380196625390727762172818127360592306828878462067625567773245831473148379973219773316522761018171535893022875989571945771052115127244629699452851270157369910665197742464716294741648361212748953898142227216666818266347585494950000317778085294866382920159255176345528797580262155350606303198338742091791489726213831378958308762655448477148891833226653431604921258175603607321442979740484872640972266744959831563356945588427193474869034177032173573763222796666617563850414805091768732638088283150277381575755661585292836527712920661095264803408279674777931516629758829046720289187543115058632433764495356089609384976457436902732103700130859116104243113926048124535909303616881579334750887687332969220853705730984547923927063063165015122273743053817939850656662983309632562841369937934684411168399603431539215867616383539148691379358956091326912861629657692154579590736049198582863877671803273159297130556286866515868912540307506314777340327477772673148682803388098031963558833471424570877891885973498665725466324224960787447049225888869165192882753345297089240765197199256373368764640181022172839072931039425154113240215077315015498553953081030395289330911988934189455814125899540887934575736302501362455076701593211140324216146520343939212358097676443799796790594410088560642255339079538308439919382903557064211057011053049564064374198833808185112517964117307941897989538426251741322722708484160936889292841200636985452308626204301847205267299166861586347664979112152826455421246323870140903045314913030169116868180069715053479846908847858571452292767929189022172415093921686523333289716890344583612631030809111677287210451738987901616770314606002481828261876379878237200404090480963821140360589943024619756685701336882328488921582917214296974579917466732721899617314940895457843798124191827936606229021445312513522360651030008871866897312727693023243532228464504208767868342943507265097396956924505501531399824141164760757337513498325343281923601158219610852878025297390621322184584354980984753392135935688133327895939057723424759868266659894302074034780964924967173584807823437493995373273065581704759493981995125596938290949499154911073822219640167923835887078216851697258297816113163818788108726515871394913302921363454073263233039258970959085560323341513690870923455007969105784380025528210920034537489757082216713890853193447947888062141832383907683720412554202856133957410578200380457811754251424588687504782549079666816643933478668183909039905630641743674048759696592708070111336597870554872925571081456423841643991206491340730560630506857506016225062478869685950858050377383240503558945611733981896604802275331254031431217055485571190065346887158031995601617253201064860407960799110370835395074552899021768955920443934194791424623697696783776154174589719686984996225804984200098402617152136165890075332344412553484640667864804471850324317990436651103785748972218609771085532799110748340519498363887110319433902691975678860542416708823448202940545586325756314375570007030950087461504578566324087145779119008564241975141898278222733376780415875606244627479996089633966415208973360783899007529393756363684103694223040029343393993717782204242729088680913053657890389586242573128808480534316595420148643481552498861044894878074102913699601768584206113857659344682984890629344871548332819273618307248532335331117535462462837658873540151646037872975094798398133780035668397039107511592874545640746169859025176027579243653617312562464077733105470092772470794176101078051924440170915393126051579979785384618213423909467469204296926077776295479691696693146220112483224054815132310189995887518803330009654410971689752285654008381953539887141482982041935878572937066543579055789487846966875118042325866995531257682766242423901448994347343193308576317075976620679430947852884970666933233472318571120783487800741201621587184559225894294678447245120154116473135637351797785537730335854383771626709055816859266348276399528325789351701978402609370419834488463740952767049583022827699226312740914383663499490783571368438617835254990743927050185253842884121824940136480811523471102870408339289333885504843192129540366868618493434182794603339674746572570225072042797934593567719542865736293790832925119303580827924048098309195446870157574464703559418869656601822583663426582126716228118162452416040742282717586709076669641152426901848753733047255107770140428993574251847204972875996706325139910627175711338114714582462076593448201341399804083279989055323822491161536439657658085787354635506887088817074208372640700745180687998509965206421579616137778972018344193274111636288606279878525191171192968240512252730597234728048956478016734853268658455045242224007902491438217793956501401994035494997209741427945288928723006214077838229249848014571612669652624311815560111921833731140172969795210458255712137669972694648104369165629928837079412018186947428237864033868043951147001087440080084529775433910634079132910446296958653741154153099942636505362064661368681502088832151932561279116413622908279593464826794419024473822243851291620536472365315119306904147506052499376713826585499705153501994595300380941709938246156823990405329127186960892301834785723304300586653302361739587458214849730505524403432557935013809625349631277425159797818493794668306603598760428790148395471233369075707287057966520751143680670934658221668885625350744405787182700830763025177013846618363264448070637115681278265571353801243069717462224604258343892148905802669697789887417389092290322194784255539183327681723269579000799612152682955695027311079082406590654916381027828195066157256111679777718777841710827470972140436364551941942077713889713381218538950097011562803671072923038039828537334654088544101012027794797285124577037834052417959729885361976161141041064276652785461674384199770907382142997707539063098108054496424242030523068441835893054736258178753853762191062721247483171080386977183515991953258800015937947877838198732002536290846858365406009681391900465610057387071168617037731777315718496972921665343333720227571242764262636524490341691783881171306044995015862009021354893294476892528387637450241741233280187358995397706465569733637670986558133582758918236053137402873440786480168589108751679683824589385411636106264262089897483596902835111266487822064060497961459870731804328832366728853197710033479285492570243077978276141512969474736906550790771016923538116018201669843819067122450265029817844361751012041219034396963969530417974201788220480869527791302683197387977890949202824630709316494102689621503007936675151737738139410350918969499269060286195149451622141878373607696990497189472338662745683441686483543700950426339945364962056451980897459237167159894746045137934074173798534611365972928951415753030108033798972514681290872701081754467960918072715186022656390007605024429212255392697478907307724842863835380548132831714766704025519395194498533373890022391310845532655050837363368286579074518374840323874711566098203443772850994631785108244108421145386114621470738998902585664812570265555230214796432013425074575971785422550363879997229179879592808277946988860310478484796131726711295608071363300656646715755368865418046884993653542665908167130242948054487503490911731313508229424328506289807017799425704786159020739807674797564652812350289235553826861385259345304996687006502172386228938729522791428426016900537020200634825117738134851480382923342560357681666129710807630982183418021090150456124077901109569927524821226901186471431114860516573198206158387120857948463310664443391209461542947600394157258534708911412934983153722958092133521150758950971729822584287956356154598643325337280020505817770773210539709030182578406684106638061191375202512508695012576245769866515851488224859046179894286521113733463733773422076074564783513858499813359825747550215934935460480413118464440623967006376684448530426332359446923532232085816040837618944713364323841823951492350741435936360879785723517650613610254952812436294850709020115970888565500018024486173615290784530555031595245166718349500852416458038294385962008030246795409009868056429828120197059083881251788827381576983497294160176583853493439977524982813058953377937869787747909594899388780578794824657997514096916166690369304819062985084039482415849294943195133074446879005005977659183520601677424494922867859494300910791305415106743924299472095996361390832829353532469194100561587649665414608000153713671446723476691797035427958909396622443914994585621775028111560518227866130229917785986393305409058656439274411805643170581425365082156712812031116754639796823567684477838334242524960477486827593746022256391753821148608101736413336976290663532281290300625110738032268855796188999072771442841933617391371365347337405478865927341019849595898163338865236591826616146364787317757764555219457314541264983949008013657301859528506130542372853597243344071155709812403816064641379133764766700402408550032648097156218562857431762001938548310302002139071827989679239873320688811092704190197886121339979612761718585165995770146942378041048145828405811961261822263024535755939147679358138723861264050809171374269010706639301913062754212827128704251104486617041306501683954517068679422460885493516846926829278029779585406768652282533626023739396099757984822163616707343947220819534429450362158953147984733544610019111108369253594147641609588524293543374659944571855140913728841754178463380591047135418838521036097034701521496159334793829864776657115762929011783878044176978612811692421629638648058991279951211257300413142021161085887497143411876950858706650205119052737088059447483947355983539389389500391213457241379381461490458144819064861096347424358110245711258414924284312083928295798776776714979366464161488599452183422616298214842881796738679924963541657408907953881703345547229045227565140362124182610020557930132751324991219612127641782446157939646482108795206883959575947202107408455306624600506530239589167645589319381603906984744897314293720175870762661727206985838609482140811785659232868413639041045721041967567394033901232573379689324273300538191819928946524850252595367638471252755118410155978733385138229576679815364946566546025633380609228572357479176272887876751179894257121898021999197522211494649712130095238427321321911656023344990542201536106974235814383054179465498155807706529718726724858864744661809355291563790877416334563825402535701849747279418996003294369104151192156050447981710410676875548090117781841914777845595641507284273460129489539176006458530206508934225740208289705271059653885743177082194952997648990727393336738145975287576194916343678098481137397367169791903146776038515582090232348769865455002090655051171387203225317262634521667360545920554828614722036523723157256427957093167041806890761655618587841068607771679574412175359252830823075691879048479523984044415829962312983760994491506966191446983636208710784507571315943247537226141281620231026215825000297517759023643372543518289063289810698298698564628627996707133031045795503022946095064367243156587975702329563221251094158752919103239855293988373991298179348034573512946248228060607359004734174860972319563045477773217844343281360829354412847233432849583528569250400338991686176502098986590366521055078025268753618669031240612521415403420376480249835020725678924005465081528365556487568924043508679236230215066101189220370921600283491559381272146191763479270219195453657682886292700462740881294285719519013504269666615086361093944647848537906701399089177446561291847629689594895989072487743451739388685205176149883140783467140025442621996619528622862568206298651121502422477689005905622805934422941346115978900752738454566853905078862540754680904343038741677957522715868977525700299419498475521368600432073425634242818538576089820810621785170673140375209778918869612111073188310246308210202542555045542249429174028557948943181315255913923325740615804526069381246911057917936422015041994369462158473372988453532755249518351560224691771470609627606411178087743231942954846976472250557362907775375835300593567731635095920271938091428396351603354635625681090217293348292990605337858096821592911026154709334295491522472241892959606175311961342123676361096078046345059450092393682431788129178025886331542205876162324599511475821683938769993822655479296752616948630244732004600164083429697242097786094807808355149880443807181546422799943818816519966790995908573166817313452482152070646423307659237012085358715177008103549893854574219890536490871810996582736702990969877941856946701773746895113655777003394209390848923462862765495966075789421653516439526776950759598988259912512560921942225069837006109375333823721663131704607380480500353817635576792905220151177257878006786252867845635117476760860422910656582275987138158409410280865723917839228569131033778168310354018323025413653182256067414272459430992250081184875602909242783417681109485354198092512723821987153845392294879671222912957918612197106666771691282743554748936944322885693022303614721874354809175813109979085933040096568017639666343896303815860198088275673105495356959274804510824706864936082797342411231157769794035296083566359124352541050765987246467046193361525301001478437371422643871149194738071864321889000980843455465640102354589438419776267620126714943286585907421834775698605188447008483782341712011975987583705076287527032026116651271696729257151124513688423638145455612219788634436332246522830788773878791108211861483822237632884414585806960556696920915181954357534626430526716627620346661219049201612249008266541691945313678357087710242586843721162863274718449239178002718361321467207423914390082315830003655662656676110973047408115242745969273933402624634272558142109975957743378866047475642592464337973892650325228314186682290081616455315017379584528304106232572307889892487958496213308611637226247982282762136421812282658415740255306960990160711211335359681592624316387701255707510144083359337023159804443659547562907818925800974869738951154042976724541353903057489530585454302864886390658534898365550504288727941852326703620953385098356851866380513272425681940642119234077684747621826371179528371962725299431353931984269139225599966283615218667555179312124755728915325886145447341597688851369277876560495179412608077414209930231013518898800186639805107279085859724011730096806640477294182272668002394593648618017195007867167136826969049996476666245117918144561668746489248344413596807307384136390264869404537951238857382802488189973762899865801485739407537090954249970939725001127100657597237315107085579099140008600903697078590852516751074342445797326141751929053672129067106809046697702987667068218705957381731198465486590033472435056914526852392362043532397384704566170175253469060482860891896929642531925719379420269083494432425011310756046116585617838476332457974600822289201040693360350033592131933640835358963234825834163497129197003489825177794594351716618392808191790533195234622189645353421993098827261786761085595593001915921117063289946334463247172747958824672316538794130112614301810863633353610049921858114207391904724220915069949740208626579347634772670901861693038743684353133446144873584511838404194418849570753605449041104604404351711611125677302075455320333282242396327063486763862039966372784497753091442001731139966116661809929325597754013643168597209273305222811414332705182936803145779504726423884252474379595837917251304228659842869985798969456198242851598147202565096551900287734558367908990154935447755190221630077430870310159795353391874496037868944401812024656056972325453639944356961333045762967953925373245973002801536178906494972224428745231833787446822768985747490619822532896729148671821355070491151311993574387127140976417878759099245276877951220892979646407604190895569487428106850502458523120575537041552924426072125717667726274994050431742350365502511703638374664822415612303369127033494427756959069460189090049609345245041342285951412077143774668327163577783609447514015353526071699931816572476342153861002654196340750906244715639793433779608337501600497436091804739375315878711730553648407014879005344237485625813957361872883777857947706019028126812462637052392245383743635240704554247309545843021204495966620180274545977846558887779954416797486569783077676608893527301295825822942536057512790931982725239968218216968031374897619325366570366276084956704592354468010522981565465243216780476669910962105756012431684130745574620930456405516938117615862537007005134999343586909560140788821401913663500681537888587748838886790839806207840918646777985333989915366805706455072824551803697642948164748962405970237223249959991232038504078286500036617882506918974006584092640255384739128624826365051058800022668042069592983343087850698118178532285346143460428098535040932062346594063026618464915664306050666601793763941865436302958773358820322586785444246849839341082506397045801490232338891972261951190064284245520223110187601494687556818544634099591379150380362928438377384269360556976029354429988873535784654876134400670248746381531497589958849570318938189735787030475434090614063328008373713459405086669566119326200620342606338726831474737349623938201822032872759414250438231847474622261755657031644814507741905727523347766974322202621044907246880980886186135270402009795196848212912730810608480035945785081463177772712512069357746036445320309304100744075724072534472082461716242333147038170865114380653023336034900824631652619811486345135871453189451927346401396374246933149674385246330959874805679015373194811343418487364037015432713490481080109393329625382295207841476617795570356946301357635055276793096281857466347985685283090266654742378323820914301625249122851098299216441075314584154172648878451190855385335382426257443633485278350638288519937884526760581459718523603807688569997815019120040712574772782640943927134859186063845180784022880309245141303448679980938438131966122358087094240789598938292936939752285758971592101139319907439467765669594256220974000119855060086472683717550247222252391257949340728037590123648590876666157851458282036538616668464919936468238461115585894953147403430173391524793355599539956923234558421404425811073759148467359912395834310293782210524392896105141898442861106374028213063774969671900770251768493186487737401479941631195965091129508072003073152494048851167201157594059241186856234086574695641384502200544139786122262325610921453709396754786842171719415593361272322060483901105806029265533482159455451315587360184847643566604999885801804224899832308987190143475904820556614201376350006557469969205709320916726050046682348657437113255046291354816250777589493173598491529254014165648739694828369839026761272380997270341138658230795930434997201120685068721565165817825558399181571904253600020977588275673285888973983042803827625507824810285718872283521698124261939660539421043857449739594118409199603951713525439330314653070089801468881689715987027594850601999173558782371564636030878028846441001452792739844828202010841387634198603398532741506279561587757715960893645143451558998216999685436095045494767600753602920622007851260964032161754768164044504059435918364721387276805607111770507034371183020005843471053143042083065165458093922945558264075081323414177639081828681692117204797875222255123338475868427502973501923424922162880188251956599815419339537102818439758422907540964982624173164749733399671542766712562825872806831144772312527367735220201458156133571761807872557936297268846205517796471037989704319820856933756842987859853553980447819643871710928334010653427378307952514641533160520815264184346106838647039884375789581108441282330010422731787706600153246279705860622985626030547300789929387339253174247201243515786719331919772190002431803660037844596387122201985865703442009809546915431464195430133210407713635580069167359331546995273230431879254879290250638500694320340338370217051177821066312061933245386342969588910231684590286302051655006766948679271323885633041753000508426908670943733740423395194837665040626019679917554147686137581795876716023360136545601485078701443900955460299131629306360324326125228826991124180921642441759218531596825590702959379668175628277221292422618929265721558091140899947604071382396498371768995404455569053838891512549608050401424721589651251413011947478513539827543122624281206790954674166988586466105270082772659538946532494584126185409907809136181680806672693930769960627155010401187623311234107625361951177896748840605154217782914587743237263174189542416008707787006909528126477811837600240000871283459861274652832585362184326663378168875769280933632270355616744391440414192714491683721814547814454942817238756678379959397757362109652504447397953952440938851812421747538910618869101801807181483766667275792390480599207143545480700585922599666019907817354244989739625404979461880498918291859917991840952341813463768428454283164322894763530911352592544115186319123604610985824788188685759543290598577395241404084024291801893001816545595387779990959462048203123626246908153049971875864387462347528101763113607342581507964991305180351652312309241046380119855239657560516320535808407667922606467272900418178336060442438928409561719584078402281747625326021820232403123688620258777705437366271965538560820404324476910011813036801291243402258293097979817866191597819322937218382719378027536229916835587233288088944369590268383530208078409936607000544830408644297815938540835961676659187840867142398776254589560835154645187322440968733962690659461183239187142866990390445158770271676924847954262234691730147433448625470800557061234512940407446538734404618206982166233789933478344069852464671017122263107321273936277122496458763130290932776778310837123529895525740045849217189490833273753101944202753065677854157178465649409981103749022943459518107452435940260770884974783417029238208390666922064392572713991043108952177368711753737985393018643414908635238057601594552627357354596670057395520534173297335287327765208818374768688596599988569364984146977003430374836975984770646419563639488543976366849850777397287606775407447653082396973513347806125814100058573142356805651666677522347117565420468503522712395293178416394486996552960989156124519414111980714750328983113397232259470115819191135731248811442450103629308779030648978007638745451024278922211864833916802848966953704853923406784555084214706060438741490359842727768675457436156080828861850214356440835074018780330173179304620166695454975894823169979342970222401091931555100389501469299076931575182471268017205164330358942439191908004393047428453545404752911652729589451226188612952602188426559825481400965804212135778528464770922121604413197674472173457730237834505336694515621035897284622781330827090103783713370902134615598564886729301608534268006707200059376329269141492282798441882864874374907490946811615902519394726091657572720347314659936321202555890156437440346528466187890463708063623744908956201958476667520367511342129698777131834941944349335304571647121087350836884304707984415523917386156673074803276105650013096170736710653171245396999185440762150265965483597876110894918854207450603387807037382150009084919725488819036236124882297949616290899974757988879852794854477028035872059751200451828793572320722638384480243367500339552478296594418971251831465275088392230120302783164720422205198665684041693981154392503591711887840413438669567426266044967922317461099015883158511932277950082990352767158240209099872657338308934256535321520148430897982334433595372275980091776626101460900900279279105987447329196283519302522593874799746875389136233746189524819468747018203120496553443016336023967616909457622765581979388993589136498719203588740564318507348464146112363218337798319479515590516548595894573208748323613729415340603803051012135376821148245173752259170596721207495618534785639964317508211196791610412817532975779318363897645461565396380827476525155222530578691855862670687319198755078179238135431373859755324000226681452472019966941784267866770026554677839927979892554311239823771988890250325010957447414544375776036479360170708056411625659730390953984382900486322979310356227599750020840797977076890525777700942526080667556107780678837544645144606087384524989886102773930047219782343035385375290262119174722681014555874016621283962063165821283041020516776729214917051171172556528176398969419576547127729969126432685572711252118209000682059476388089271601280451605448789092219107422962533395606846757352510608507323041259494227948596556763314343199604067294289364514652651159906347465701011804935610794183964532497456550007090125578231982182993759616658737355064003218649680065674003435218993450549617042849866582473462226833566917158705519129921993535751115078392107979769043461308727653639675064929531882453963063732860620662726464327575487509240295706375309563155766135039149050173954332894728414623917082988886839546986789355773802971386763970391520443610694409889634636677438357048567378577695928208990593441864737208550903753170220837311443236753874069502668406174113189247657734722555981124013842878498569216280031020618781411869755232455730712304280269083750468957227500830758191984249989647760237083174207038619454084564086566202130141454113436944385876237226896534182505089012426771691947389324648131637777418585680635539431865079469477456994237876530313768116076387715300379335753210081950561114653097961640115844594987942597565430338567834610304870249368399978240397876345229409582353600181272788253752039777329744162676228735032537784813409572393471906171265331849883109180819337538528383219816184533576786145521097155268899000610086660143848792386888724581586839795916974476265781484968032754852909705379754456305373709506233817367420543578618843100606422252442227849327540088327630925475908090768438901827403087697669185195543367242372916358529911451993030264858876718385846038328571517505665709687693256909117761504602327482754722658197063608785277367606997215869961238191008245991596123186998998502535486739587050445147756354121933223214203431470785088234649594117228191658852547729822858474126309364539239030884164916291340162202705212140337249855253646224287631866605629472797309471378785637018149161255332463301664766848544066170894053723999531834830246351274379055997132235558400650339534898163091408446292321216067856946336636265361072277128926382006385438214889654834347047407371313154379992348448347530713516258453297053534861526580452851583648432557647883536592017568392257276389505229739503055274390341297347271328691247399542815715472018142673744538209886442562270938098895791174960257965897618232315534826362172439043347331852207423143291574010239172436742600434250551443012247832639702675843342932732800264665368724447456633563699781105383809931896038403797525511591355641566633236361695302731871354585206131538845944516340669772334649229158619752719804170974041272782106402823845346945788407521056511734070484586581311324386680228518865209937830445733386751340728128769904444167331634400714034299680752580192377899157331344225936781321595911288319170535407588157463026652610370143451615612881355662208536493671693582514205578289021776934677301550407613256329903060330510829755761823327117010912151956348826045549591764211860158307571414107167212836376268425602937995235299349812128470590392400017390437107082014969593671237910810739589114244964553711709182616103163281581325418817296809793523401647089106031656169885629290977273065188321007462380535942683633103686297099772725918640944520371775801099158749453616452811555864883526156863084297179181954016914004006055156319778200363536576949120678045805388197437472045874103732296262155846035244062245533491013126046030234031773970259660695824224325542075882569319311789653152150626060458018511334744787133138826033436256950017873367020548802235714707491764653340930939016188212931332976163991417635655755570255195393203562909774473440899782947733204936508117230868558099642254115539649960148067981838444762644876949177921220343399796628847802833815447195820030655732537416951852212053846289574520872768305797264868488224534020674602892879463048678546324828614734895461138803714981562751522889080196495197798346736207826062728448951051932893424948438374484477792401115581106362778526418133062796863917384619612150691190632073159884926864959542021387326763575042005960813602016699837622384898605935476105252360196976644503977633344667038055656261290167768706803508312046504147803371706499769788277178112934557803673178336455072149586663336988725810253907003473772078243780096525520047518196608902974760247850697650827714034884618008444701548532991626163155590495454189762836472997698374206205769198992290802543153796194289879568904977069156433779179817916204293811118512545825480900081023449310291345322769288568513147278181469680246879431480989430933735553941865429711783310101405110909633325744339917491353976001399599977526578117348409152331106296078566253569786080122672695007288597373831276413265919775235958501410893735256038461510708881336752763334897300424804508249425334727674531833358561355930834405639469605751221144881484869693198409442774974176257074584851415889653480308004585432920249272570323959171930997170530536577964746880998341767415877475402623712970392299403715419689929564992099236056976529904788469548972388547217281396799544600453010266614026602595469328683274975670082658275305223388618478278162893736023718903247332526130993945617756240462786091869634125596476640571571250265012987857532996908271836674197252664784706514081645128361464874770505484613280700934670491679856646603730944874265140137358349063439232810397596355844599061139979676654863660648661782028718121308923342975294023688297867812263690677771853013756278655547554697398046235901801643725571288158664306707384839418387763003427031948400001436432885878958702154561708771708749741569258375560861006508817865844080172768882072843173863948627762007784840453159596733326980315699917930362604356883906690811926076101413959382379669094348180412923885844635855667561688879910640929747815479665954495657587621952996220102401541642548493397482531636592872723325971207123318573182678045505257383633705858628478059806958630996375402177407535043618678357963176773962696925919995837790159103636535513391498332426456845905811365151842046457221299407144565972926367795050170541132771658329913357901252423176818140910722126141536714477360647866792554873029495205168511567806379536182095675213786119232750481067068388534580509473467411655281541314145571152741540935721257222971088754683305615017134610364333029423100267817821283828782267551153146941196931450594349868632513528798837454374777597511828651142155482419358481669194719448782918343685405886328285489011910063847764601320175226816484799359270448258646524782558187026966214134302175513839817597780659979627551970408507831299128193661379434390588345561348491086549816197110668383262299018081545714932544642356373688260846464326594657264118775469313467482836991449846719615016704757109268132193448021104537492264222999831738907180265928741156063152700538774801896662623703990702238492879570181255668687902124580623325946645183008158854857661927175478276513745927080637562554897015471806072621863269763163655740580274551864854275891917149066437176120759127331744410315237931952261606109563624935521648459443629477821036898408973837138717258978502014649797004175122102330959724420624114240330320537827708843541450357156096713634967979715260600962800107587206818007368462360997208640209016672320140851523261986521480828604432927843063175888450406362815204918594166215387157298551415182399685308178747187814954113473688257143111702067369792709591468734297224882167000040461504694590144288365394890612184463038337823536961144882917360904309568400235059623363702192765239986921361956397119847186775139677938878930694222338300318124402419079095239803460201374597711108910148133826255526359076351758290090660911300146581818871644291409471290371123213771229470429734734670758110853979997627755372827749373848863068563227837581473434908988904043690946145557070590201772383648462529474212205932405119737529974179560667862742035905832778386975186582970014701714575989599974873672911252723897835208616018294009507372922371565898873633983196987049206841677082126912782445291163744023709285505900863717080502981451785660610783180218362264310265504957644319283521993588033769835367026112706424288303281603437218622055474731229349403854114662381688543332487475119440062303159487182508507227225490047680284030269580173582740456911336692101300924247532462201919396436829389106678726605554662555712769456089371999328031465326153071323552145325201989450648711197575781760786614054364193568724798006931681397903376476751525200871506753268121765913860051497652775181564041921552947550007748419296216245553845327238692503316205912905368069517218263338078809162826669826143431868565731432354849927794201703786057568659422353691548555379639923674378992043598194384540695241594068988914182115069710854855042643127375736569851366720731157079082041663038106866194228338283189178996702725427711096327433689227598074475750228227548561761919955921076765334005599441135043591528446710498948366054592622942429683827078211672738093299664834671662721625481495728567634017842471709137650912627304721532384319592845590308608666562710300124030181899314915813205746520334022332481253947697173712194446948322121449871011530948824003200398688327574470748658114836041388407668992987927606254747579546142224499105672093372131069085871143556326069375292308529692371942412143256011634571625928297936107784898828990095619538140492049107099734166941366939531313849901059823533190024957348536617214444227772941586235987435685770870900677378588031181222744308937131738644240508023901102830729781518702755612281095693167137838395759004690722101842324573467758529079131290106653746085760022366873347417587905068328584309001969319673760112871923421359321884506526049915419226426349431088529478059276268679456763991016753480379113036916834383078871652955458580059649862872066408079712548650874408712851874121360430516684462671640472727334098566668232105675729928689665745373911174318999943728926246717895711202149538951865254482757196843703837177541062095077569492693567022919687979062742686016456198854421083524991527702108825839501890594697294854236317976743523045292243813482763083926805029309895025813041647910744934794963921414668272608920737730622563912076213092518507202129710317891711199261780404948563057458575659608281782434808896960541638538812416185413912090988196943895871956414159428820360514549058135340896092139586701862210225101991106614948239710037328986546835612016947300067424015045860254619536474955869360289284914832775287609494050696874110377967206648742954623317273318340905889533240473998903216336088812408994301204488793971405064786398339011623508536138512268950349231819475541163022588414813089310798397020382099881562769476618609019882224179892440694722572289970782746701055872320013604359583544929665131082890393520831764507197944990878448286506795318817062720650827672911141830411226227772048686562454740551747349510702715435995474803021697414632383155768961926492940244641399127936642334521008241221455390138716239881199603208325375695275530650595151407347748276548680750514938524327737277592927909072569803660764275992062066103950875032306812142621115621645078627790294793554398924451697622110588873832398236217603585558748768360095301653113905992901182906489708150820266257663593113510373644777299708516985651200218535463709248893650917580737807267724395856612981232114160789818817240196808647198390536905861906237865510083300340110327242448065626807773718931135831128240237315551259028106689290644333368925766556376867276724131580944818689200950788477417371931790175009424003104886855274660991877012940713050267596079103401568905774095439600070852473992714188702598987453787857834488661895106117010149515430372268587630868115070977228550897159750135055828652430770663908511471000813418185925333025396333969364134566160671778982957584663159928993882272370133252930443906284601849486355720470200184121781877602695765611331736425085929666780199276979764451589625802744237244533220093137378635019240540358716721395706947306479580806064664502356169079897045195096334849109025408575367858632178056167615987728674342102854962846271215832951545584741653440494763591326838818374357781316417622889255165395348462095997719238224541684780835116693616706267026260834281097662574558773547551007150961288603111315513962589012398255913106833779293070458154099146495083267730266961256842819001798572809641261736995021491255127485588712863189834632623744884338219427645892491967616200730254038798766867607423205885230306327692200562004133967668321161227577576783571494341114919007554567299643623948550136207178918328382516526542640063814268271554082725893361778015528695972734634774325917884180596517517273226195642481776948585171932451890676176117377791482401945610371495664186018731277829648371513610492761637746787530244875924595025435568013582871901807344496728158068050239973835046990280285096586022880391155758533681711412120274906593201116980995529703749900115973874288860585377334447101134468778280543386021297891891150223107334809227627633876491690453186041158075415131886438077047713145577275985660840988270204048742617498525455623554730359085044590437088973106762105912747774060933543873537656501461463290425040714181004110378534241916151421255254046471223459907179644042714920463654903164850260859240533456131458656916765414808531037752509546029663990079932114477916643973079871194168419898339362276138707603433932924712806523499107413701267657628399968981109825732864416611323082972010247083155801394512530120737440952836994281582855002842426384159272964988878305188664376390045428425964394962352156652035111237944304811860331773527606669800426183093588323349332609935910006007651674900510514470497063901893452383572432740203917689272093647587225848142479197077833847226168179480419164925533041415788562618845719307032280552660936716550119422620025346316174163010456438021520378353218733262775867475953741090599251379188524142845458843350890101186390421578784258742212647250612880593817908142143952900305372298224750282422137308626526488751007838074032846535102599281192425651162677221050188562896534087851099336687792231183389364992835049761956138820956188852614321903423737746617713459986706280961466454579540195627818686858376161964692708663589635892356884089037387295164823450228951682103752759085092761019581675242552045438284121674704067829571659287442264416883672503361596610607642105751194407427217866232719377521688834054752195352132628572917456043578030620349327104990851826941133864089466811634175938234182688092014167376468710776783213884394570179792857403688761191457439348010758732827401345137940870084271357966246483246062767506201785011111658113372658047614334114049483209988051874344921093994566071439597670469470948197861776343133013661929911300254881523194525734765059128000602861400664072841903033656532154046701742371831048576175863659019286416817227254002832209274735265589819969736190273607679167387577138171253252041941468609903405097991199347052498163641656316728562000065547109770898670139836357453061753606284094878455864897587923496155190850060605258595502764569854215272525687011937753371282496485137403776225543476182097825353266636205035736686672450009225369107016218844047129502192463191159696803865236916659490965829768079385583520881538332307259584320103757925832852041985085911834785174726493368485735853850745919105187544551584218460885527366180484505676617105572257479669660682464287179593203748478199865958053982303494769075858956303256126625365789202903416813988263256580577037366918856509635366341498590009771328877827206480498779411910521811916812860500471788704737192272875856326191591551782056401098891643085838908255164374734665459595071841527670829923933730127103251630319572451964131945452833785882657321378979494008463128106001407381687715914244141750512923414085105708878927316235824082540713177527333148868327842896139697630275347355253740499558085005277764775965569099448776001617041444148060394828763729117340228895928186510621758801368189312904196424675637657394747989045293593306463614602853644525314400369659705089073139063030540320554217761452601800033739238521900443979941797358277767496694955115105168960511260066976970102219801732785555332628954578159490574775660644081792098870535559736333708304952144653720603582235671373024410653854501824800686902872450723120536374020213664373308568737479061528872157279773187514036582407649065449905198822518602159468245777664032012071307256223082247963005760675429241305503183948570529683154898755590416705287367194805637210492185019151966618105833046354785893014229985283210755106899348070909132256722215287865511782968936382197665314811087760241439207224505696046457865609196934815138364019860774850659043966183675653174443637228440108993702783384131232281292915516457479457453757157210756377740757817524423762636998874705748656557609170381739237991006672304635166081764586451569030895327933065780327848840080241469136712727226943648933133069907092527575185497167018309017647796731611602558177648032174787657296931481341570460708180992969760579570105187880523627951831350956043428902571897859078891333657805981272500302091759333362707575535498640856407486194096718378375050274977602362854266028421310242535463032280813879627625489084926972885866319094791129237996126136602489415897398609047306823689790259807112930321846805801157909466588842076517250837639517001604433376872578576451630820011171177243357920849868179409142651465240078187263280404837486017425516356887753008630504623964945521121363313567094132169729543952974008154764121580030102218286288987615606393791763955922881943941885808509972801760210342396181307909417527556531203535062361865386093299028888557780057703836188068529688678746726948218070873893444695045228787999930008455481458105054003498706660471502119480110252186142317146227746475087833475148432460646978643613716163586942170391054635706550110514767302317039841570303748350466183995345542916567634823649006521066542558009645564713979220143190351481935623842658480936328395248997985525350865193735131596522393988906348723089707767471937338446225127087858490095248795430408552048959502859819932661916665178673633222547265549144797199617433210740274784125711171134935286635478215971169294659088285531284965595681778784221882958677137314352399521408621306051657350638379841713210233255326535614716528850540458280910114260218392276645481352440228607613712592194681172667559968671120681189795677798030907986663500945500404613112507805961982771594229398009265783931452784035933505807228435381833683447960874606256387249917372859734108808544569232262788049544163501106185305609554487434914576206653218662407739656926210841028128093366456808730150804479258398337663069601284832606387311904501441995436888288219401592534964425085377944797437519526339474813720333268810155396287152091612613132872290996031902472027314702731373062164406624577281685499848785255194204607093692238814573157467478333574242229814924673006450963832386309324996715446980076050982741753443718299894724171543718263673247667459618089095540018488522121126142330402705262671594207028897955531712539410357209420232923299751341178119521265378641581209445611787298994366811571030632152964284557248106815487652081870554599482892730935110381258122512708455440968873493849075597094529609350281334787671329923359842347417483975842259535083680163690799785065330860558565325745886951224182387099461290063403899895844318066287632285250862700021031161112102832904664439058546244107633365487589430604552584762314707170648293979910974074131789612129163770121769233581494116725952194298277350878421489615525030827701633044148264592893621118064048903730720201235295947297084350481686529336830405673642109882746360450802085001132621442018576835288084818764667026481782475827829748308354267886767113115916530897719770412678423454828189591171737782533149498203890456923859252451445888994324943099509011334326690023931860592712086542717504281574484434801097750373639562680813917952914912292902075044475503981145115612479321914207761166483141542151672097858216464432531176083968619433860236410063768528226821873936270040369059644246660801170133533412438932428025373977696595448508374892636183230529240305232237715477865583004507254412332801702524333222968813685449731000762324576323697553085603872393536423197209524647949871009652397561153738227440013651612172735933766841976599615082053721635806061645416542700096711594968934265301829923984923312801098720677306972492389078708525049206168878670854674988744607354866969497106149399795437509214695325186796946826607136081135323994632677159475510080190676371211013093344052486537951229649958365335802263050621324264018469363548001981886898602119258964908727016017101047057938425097235766159140190955355504230652946640324226066117396493221668450249286318477817758727045298150224442311850440817468701482374739143326089786785556152467029616023061548576499589013720081456894045130887303187596435317311748105124171971269359722788910348342066359030800562604099980364778288434841179545795532954677507266427728457624524495160055296169499198322004436319454166639669153446062498079701149489719082290805107934309905372857649797055230347011347242341503926032108987361709299431381875834833641478910887716049727943785718389980211932484164867516375234633285763706926713454460865730068327782575120185347171535753914442473414590774402930276927153655651892510633059450215296613269552805130472774884063215179412148965909301471304428075588618446563464402141418072425108554228071213078705369197923471562810522558008243390938635459122904911346623731696054302664161303539308295794094251399558872450127963936553659088956485429945890915310448510633712683120951809664515627778199956921457174881634506708456582777425110507145748212214445412989889354311937583224148824952046696713608729247054340485481156247328206772141477441109113581716243507858689178574766929078530785631601659339696606487078036982197627596695577181527102027082598147623188933211842487710541904411362842305711770801273767822702508748958809845089104491365419127684136938090767736501531644586485942018036184898212536529954592353314050595233134609225701942796948765870574005557613556971638107004478076083555547543897962917923718715529972570242671336692828628406489103822387045460244523830396608278537523007586311142716247792286870325906726473663521530825877676592175969542273089956232388041137885665743986396355343045257016988663842708690894921601916640644348969871329852336263378919247975549206830518545408230299402794089822246449111925218033613146847550016108980974621135234188858881313570105627989276641402161707989355039019804778915939602982635316524922663486091241469231438551312351120616433487418284829278476048526497627454531206129288793622688318501359082132645435706549661305362511963530113018664341651153763521627010563309002317798030196379742763411672098883202857491069043041731639114409309480774422407301469113816887939404690519226056202494576281659791726785677192962356183569603936750539443219641712371316757057540602832642791485681728038251204494875702865256643256497807423914054785782089167031169149929400492763166595248882433606555107629035914097042326330487671218762640258559728579878755859336559877214284438592940185546969168758525690740860125236895011647000774259820236951668181557027227966368020366348894398421492747438846000910609763381762398616041038992068808368880279905037972306500705016108995019297834962306003504177779944264968639543704054305304264104703870607185329165816091746616947626376958841212871556082171903617423655253028607564154434385677107344065342188783992001704671328245167130188446252820055915318581185793226689899463117577719136082491058893337624182797877560399389839730806820254401248139328671551513637675575752709227749874006475384847324397186068167146084060035274399582549187278564055830486332373028803693599015246599055544442625088407533193195203305324637254235830308778141082470212079769346346149137162636240361575055490285218965514572397341796083301739064467758403095594772539692139397989117632542220978701324351572222463328333252030002566939087983452570702191163112626291628804269994753216357693988071173676228118040059708992677777280803395897053567462207429304432336375369139326362704847249702634357382636436633186961405688857173466562312711768226823596599784014377818569873980917102961952758332342254972552221422233426881814880405924981819793134887886797208882045179894630672759481671923957758425582032622736991668518232939304134212577594674210894921234489593918740876440647698448285306194886043653139956869576160835578818398923987403173039107688691683584534070210327276877243686877391295860598693500045923949176604992957576998994017064767582977310957639411446048974433628857060426272263411163533801535187299049914341213848663356298886506123726805780260996699932305497183116356220581205066238148876744120086741673505665526176455911369455949994553532985833536052330249701529973190604562955561377634647276176558306313532304856554406483213141217352944789576481995813846514608228276946040708474857350871102475898017990255803657873622520439601941283388949129563627211593216330340828239341355712930029927524781287416669144720647504715749553226886094086069066008037884544898575390988344682509635223347458551002436162613556432766962928595804944521631789182730384325079375039763472508297890859804432851972567573026163066509108586823993772413494594256684419175427375277163843174060232603877145371783930589823222428081445533499585333376931177112440575585550151325643400559455576490502219334997938684331415531178968594452330122693414474298340667775861943146966184184011342862516273457738787891711442172425912098862231474688071638531979135104068931864617214795124008709777427508213970481552912900230021596590496807302723519692660461964629467990268398416765710390876304617835253723020204935268094200737307211199583258128390031176205201343894364903662528537339863772344045598780350312464122067468183196375792657791709043169441344040249058635496221600596891777673182433997063222422144344551280687560674301099099329691562349777183701676826342718854234844258281999343175942838992732473436016548282345022491741463770910715988258764858220051328931808056743054225312269203614485661130810510630867595039661084918967051209154336701962684001247678678550631510530375831106160059428584385267792216749573076207018561901439831125624703620834648187400866227390693431250168972896448141511183078403575210417268825989643130283633500162513700264694695533325373323785527038303517095571051343235998392803564623435884555112248458347851895904296896856865398460143327003662112861433487044566940489860363355021634105713874723473705611777671247491324098932427986816964367610774679369546273500143428421403693348068297578349295569465711426797255546086393704351519287843495429482402766040216265185747398562362234146637939062854829487965710410687991111369667097405131173777771886400643608207891721633912856628625487136542309836786647315313600590042622508535499171710462598543813865079569013647615791089835812082676725118606995510348525350668948159716579311128248325866117116494552310944801541069101952059834560668336554276127057437916496871851593785660342485939433251804996151116013103100383034427564483411034450538331240320508454364200831229566142672655762519773064487095327709008399030933541654231050705590690767259875879466089634686980822971515028431715917393916596652458752269927750970359036220295587977985621858385020205839472285806678016199958461368905196859702885496701656419396591138817312132071313063881546469773203501497180538552991533252349598776431071293731812651302960755972152741790452818462368394905911680123914056704729248105690757641333751684447285097646529770952321803386266468862999730431361013033840805912420434725230760207374576662917284552664031725752361309106222629867074759390287374559168486221970215515489200910342944827220441378838206398146384297378838674703948672201276632128820831944189194129957381416750154561269430013445686074888719438685314323282812251729773627099930386651479087464430820911222191097315897355493350554289089842721169086024025101363471003315737082745293905419138030277392397761527979164861823945214088870698191103587690215806278658423142558317754245753944824082169658268604476553098514369525587571182604424766324761802168436640245593900992631069672376403048673068447252583983192653451907862814794405101328139518063806078570794470715425884002342928032151085451354914996351834513079675349890886290733828330568247074094015736036252036053127908806573877998339172996325488021211094930769434963510153681512134832760114549526237486347599037783785060363954371319213250910351048993497774733786919823446609696287212901141867992013506348341141106446874124823856044304414274715339527710310490552639299086099362118727997596112326170159077152566857252866060997474517624715986200041161356286843776827598955346349910006658603985453942523741159423125422627561757214834552395503631741987262223459303479112926229148588707114855060685741857384018354945356076746674543550906731044704864199037967787922939986928001309405115007707590809627225378392140915832774391404007470130215214805874322390777535308465035162540064661408088799186430619208584270343065095262873201862689996727911852827955807980202429893915310204587320629629319955694922498650476563855451806244111194057073292553451895192622884523127843248184725682154506770007292731272770404624992138791233726044461742936960172420313041993065650130024629135833151428943817146875189037390921930180914167905435573723646463081990666178366453869985102732895858984537659390413728493335583877372523396806385009441393901985752130884762242347653612497129137425473418799659026623187140855977455186551124872874037051519969283000206106806932773827429223743706496197143498998565261757353930968397821685302936575868037786908512070506454799395334768195767857228540483448677215851848618000093175413470990259269751979073162873255391051127378671630053937476478800172035204589051465322069847509470991228385560335002733814389801683089524345352306165503871968707216821071095084682047648264395743690994563250948375991840832972621011623563765392569259890644904380214831749201513923317382637260571398355955443395682666685773758409772190578288155133161219595390967336570100468456595355824168506959077798803824876357218036075439366525965700896886815835909846367975399689953829593986940004158360354205891535560471011612664555065331931496116890529610496836451315075922533620724966981963019484405052984224095717002564123618414803261683565784864942920000988071596317357965453439406630743698908787820006788091364244948307348424778242026665829305603502773106969457920437558424108162835162836054665534544250308615939897754115242663963164049312265363235359243539538061861604884613546765829521967165715013150041543908685061064365093011396172769490666468421195109928446248970859853998648233235880279720445182383728478305428246471618027060762769007330083826635675387720623275606092250930758119618696660678922359325854171050265241762379661984105918200851694301327415857186203600006561189993153382989949866290047447508576089053768506279282506215115643315727236140988029718727813555857038510236105739311785229832140050163483150056722495158807757436874544249780842127877050942421144518757838618821199255536246006682172971913143068628618100455998172233031470451294087366643558601580035734490062035019023427503678262770178537254026691941305613515399792685112800896827851481552198938340925977328110633879476865603956813920751563562624066774514302854973265224158178992834258015769429497680489479198212521192079208305872706924408917363973414020770272824532801062671461516947942318209649598055632950180333654019687080135828180528272116943725597059897807764218589748471876175378813405015003524747350989475376852130778798974681670831587535384919513925687531638448886964064298487450756528699155483123048802218087521403347012144164219979971753365846004016593172417149556046940501243090041633686929257300616345782972531406074097673947346769847767914459780584294297506706072695697254044525024061373850888280177970146319262912699743279103100448381759218215474096422995289357012575053387200614490368342900364661839956039168929964428064497293570565873057642500339362652501702193058708916810629231135877432311081188873753130138145826508190272709456763264832989899601890597043205576519012875259303266999396487617161143380370024133689455284311983556983968184339466908588947750414059079515704251889856633487930737860512250846967407894227055948622951053070460401161648168194643509248777903062018057275684204428090438757112914918251197477132107620785102888487671940986570618334162173319506947757359247944989670045157805326441187886429171951216767931655843274778384990135892992802671915760289406480058675219522788881359036234814017990146499344996201182777851072655621295526660414322168650436222446248292222881511227513657278026625463961916632428328568035815822946320340163735994633424231369849164508178858182588144796341719567185980377982362289776807942277572140606563894305706778929968943465671674526579796335050013132156593348471753529628582429711579930413861824438994557898557164356852228233190289913172160569059308998579314649255567060236750483739064478228584587004490220394584604749477305935867766825811178247272351336217726867051121650361494771469854692082997131037972073944658691567272293235697016372522932199517428950084309085222276860778474180578331803964847777873367990037991169972082936547731775328753839819990661492072423593543648081472560065727898336845460290741876508586939941008840103093811700135242003142173508119567830901406919087947361094272630055972259344783970700709566226901488965821452238083067800376117115418663971716485826910019081900152582484734902599903306404908847432072906732219171316793186015347910554362977078090442135211555016943958765188318747742424956134204994746667585094649375600875444411626151052742505367209198211061519089225356712519569235014037302798579951019113985402815637900173197412179681117203286518236790719748708572092933351604395787967286417131784420556437553879710449434276103403111569900841001874083964549058249653187183876913483320434920534792928548126574035002043249856290506478363969013853905924848323055998373009696089099273374827027993611941638756286385115402252582006570318997235446743964445297023402216697565153948922889025249509731613818099467448012889662640669372576686541705483748650552723791667510028955019038836016553154987038160090569160751664167317246714758871414981645338374817091566023221494859187619980428332304526031676151501083060721452810648144240416943998708790789548815659043821772335971356172388430742099540191400647333365594136471027445034479977436429820175656000292079882327381812766855836075601458737992507042721700889974109228799047743231585868882564834470719090744700065894386725307207736959351040082092371011279616398323294796590010158433730892939067149196129497361736992548025416189458981784167537541326217789832271942249570227335993174963374890712960709565311768744191807488541862621475138706186447399985917442640379932886392976598635084322355568099571991633466003679086026308125473962266028269828348670419691015835011697772585424444252348638559334427268328389405504637919965057130822496609832815421849394170098440734972389018023807564991540236227610537538318562463897707287039749838670868141485359191216265088687421616139538259640254361855371288950225067304516636526709046320901807436648871754621469676074654399281586240129658684573137866878123694428274056081230233804666306653077839293876839920911609230518966577721508780313209029842712117255909278599195140140272708015868924291977948900647439725862256458532818714854393506238013825194724986714964921858896182140097079880995134163745413714520314131214085598544451245439889430606783446537139832966310796238731908837843935331915158358024495709641023087725870074054186244698468245205515769726588918239475755175981004769938141194189900490756534679817021766502845307892150814981612406367615956615536121811533914145892329911362496437797040789753194482436409259366353118844772917999416474159390773815780354626455164598374477101233201228181932767044120152775008496941964847399613840702562435905269482478859880347886164905366975964758891776207338470181797987775339101145936889973300425305152654896394201755261264143597353282217361252163498111341132236000515258145284699423368467124044967325219624581774834146026093212120971279883649829077605034299979219388911527779814824512697671044287437718497374108601305758649716155450078168660282659012010664816546055898341896473736163024162478973794077355660324484623598218671010234504347701098408917253630055182977301163166456839668281464764989698126980736577646152838851398301139723360035746968220317779583124604755630274303931246283854766107528461058015255913179957785812055916349986109374821302565780045110766832291865583225458025953091572819369940713310976571524062747075434563686576887942430454737182295087194783547928486858830003958451901474904784261911446242492195640954744703857999318717960779076049208106019112218226515248136568591110632110090432432715750094965268110427029809338501906693428782743678731595362693520863433066593531593921500129849757152365690029684576525796047890343899157569469866035931371526588801604155707807988671168988766989358974064253506366747695343671545203030645372606596111414981113878481008962290068987394064015210659101017714433153881868070416807617120184394583041575735027135521289808764361385178240056312787203996865268319976636856745953542613388193145869879974912191483695490269604956244957583563062490375733138191837248985036411856903503870076605535885969197162559882092244870749034549882513289808905803354577922869207130415169172502500986621768994653626826972191999552860194707547535341514815484757494302281279618990742699650236489047451026861658066349393711387555354231509727973385244350390106813800065864446449864635697709094705382551904659755324100070452157192949429913114037338677488951496838541126918238500957603406760338678455203949042622714020133370755189749383902965186954085642718261784659301632553643627195058559436238568300256828326446699196624573882190412335179612296618553463436191828063578712597241975656863642409368662816485229321482035377019261719383493076002574020668178535432376665026538758143533186431448895877774393824107964610124118971489992915128918952327498145816144279126011194689986919779558669388516618210975220189888779257928740783499916663677518116943491348518272207752029992299615473737645303284866854005349791961186911076521087881437279674190358974991298687703254323844558501552988022815028534076810585693907961030675934999660426322955083153049405710698665889825894968243652682887322491964911934419217417916500586029905198752275141530468168247364205253611587477572317210974930508115768482554992405150289143982115720238193969552397513667248499990727677040937012992396036254448406990424135311266579790778410748793853569646335943926178638294284630222842693122504260872834888445850301539287389775211194197300786235903631009067466348688745044716616221296699299353744791677813418539311365876425375797557406890991376590222594543064553994809520492617954199403112634821627026810045193289887592372325947578102869048240651955168411520003451147996636223385049769938013512878654768255517646054560667058107717045599937014825336607908361513921633062573455284379157601017127295990981216949688789868376579555951927706156238940721648212551219837447037584125585496441998933809380078825360193470044732918234742403661582910857456368362933712882859817101980967579828953718363264720901197684579076362476248495257326231223318994215257293158027958033003704132577993771174880165604289426744547317696520946752151550047522210009811475256157144386023879701299944930136005630803326532113998118312332586904271582441863047053890894654289369557376947519896002155621293201900110691481448853739219780114097128516192570894014634752883864246684364968728606440250763460303913050602965117526294290301734354872956695854652541617183677689681415871514428834686041686190763364808621339170715551485207038805725267013205457845646661192237369581322200456660612566404133180454425042445498589762623658817119651668306265256606296419491527104994504536708302561927442720124448436630241260849174417070241906563797929018662901878345746460350969345506792913266388467137306994451720489421199337929424361945742219037429166605299286100695616749573132246057178936745563423741881023490284488297322493391631244473462570599810194633868129971527163237590375884516692149290063521976777825392875152501152483228988623857292534489472526855030757688059673199976055103968865513528921464293286736006217427542405405063164143010169195328335172777710913286263159096419486082386295118797797781597073188964670260397665396851629595975458009021163425225367272574193268701789275985263168858105615005798021503408898324294582059839923084585371566883497158389767630205135777191028254372230577210931084130561103645343165581064814937127595987493715256052819780137728994448854177394773197812203769324365918730682394673032894834999735509702331022691757399650251289943912144159594740112346390190661884619868914033712219869939391737135245663744556426519576020339335919512821796914757376058229632187649033400895934249771813951375216307650596498242066311351405666774592600761427017352311366251669822385939876817846616889184299566698780166848669919669967020369881360702276260297819392077109734058446238187446110115246201432595896838994994927190610157327745474224958421150259753466121648735888291689930502816471477616292021791056651537102705316499184031494403084631132870044163657646264870293493256273631973648710410933204531551599012678234973556995143850845515200311179741385497266112582441761000157943210813143235709107945038630880769428902586840064919616844477495076562812151773324058150613223385344131591926094683489026322338809992110479314776615755031174861904404253626965872191734137955947863902954322073369363811199149599966048262378763161920442796062025701725596126625931334046049318279349976702150369821918773994731579401779988846793110400347703575521076105637745194345609789746280527539345807519271656144276993445868801322107790717564000186011587683105494803341408373481912048455673444786060648666511927142823584414285703306867256723918018000375461743718754730455288269996546683441045375078808136046180831555655216742657919106521834937567410207864582272226344991632583338029049778252123007492385404101965108032864150626071050292349534485199840967856970121507763044771338675494693090834250110079225740367657134819699828157454560655858116452685553772229511157832279171901308402592135398585186906980767345398321274429847493399683600989211634159880345093618581964413547924619654996357890657438242455567212671669589802700572315938629927557398717449550266776137963191775088977366198384946592363735497453027931864415577102434648585911249180795560571577592221189812450030013303933900134168851106814081176072672516395034646481900273077220900468312006405475688819582443843123128751909804458799315373271631024687984140289080780399543664723654603745082065965811061526593438667532082284368940802954117893268458085094537564005903482188150206104957664451719790333262573869390566641797473762253663547424824290028896995246467657723875489613168940866074641803800557313302040056813222841535177607518213800475896355201454886793695943576362767634021891863156055123744483704697964485167294695094862655675964062468466030997203138647425614749855599834183746505330078895874626479000615487967094104588035960749484046042684420236390272546236909901983344165673740824706539823734906156320604922834653974353378037019832004886286764680353578611376610159469390514118698796810456690327214061231531055439471910539248172155646275195006345493903892002635882206162514894460013487541543904062197889296667308706861979611531336701144183893323147206134220608685508145430008994484271711705603966253744259426584127301584702258915817927571513281940849586813219371511238923537935591707925694116679325976960922302729612016159529634224130058509311213512677846476284321918532526240676607252569955682778923135059616557574664835444291671933497703016242208269802548685004586253957558018699024135479552383146370355590625353530366711724995201560872507193102876094752905664972771048810243878778059527301984137273812032351877218794245754636024152258593814551405020792785369850533970217172187227334928543070600941491396459390181553687415051637561491883547923055132308591474523563729411592177185817915850396377351054458481714235506150039237598842956018681327385671330072016756559250781554717643111803394127953939707938698588738340448370924095727533654165449761613074276882543689493754998841076861580182906275296913154560090547500595691206710638530305911818250345113639205483845613536746472999808172522311789760076899212167249507823032163291509611196340279322747993211330148611622835801302271600347575000458456624666236987783186941047048640175029653000755226576579662301033226080106724171770014272185694084713951554464310339945518556227611188865586522543772170159443105802022378066279682671707272103270785499163630224252239359788406751900010255887549752566319310136689084282826858601028094540241914605310218731007244552741809374876984851828626193604815843091149563133381348570559504337671842673321481100406425136400536528323331250682191037207955766243613795883093942572672847389489712268476598768395684217120678313419052261786796404833455287650429627480040206660563708580118453646207936358694837854638035372704500499767340642183868299262275433605013442091002924652782075395001118966263325597609366599473536210832725578163302856911944414800450214826950726688875215889423444955413068854749825463907282691250441662603043661646172831833183443356241436638951290890627576848811402804419818747020734308611498024185421457393200689177071085380019396327720545342211533500093496445893756590144275659857481702857750985899228421239046697898120230123164197963402063034853215480622390544413188174162686728901415036335334581216983977173892454078870825392276992429637683497810028982208711720174946281398794198884673501817753241406461387748758956232974830004067066908113937725141092826059731194466368744928779127708342969658556386128413647384204876082899317262452205118335784548060990477851457950677851487755189901783147447078298835134160479599846155667233678985350045666143226577301354005596523821739469013913556011189766364929548949179405706378299298972173532706927593784189031108219926361959158961534444977285466401405135685731954414951582655301405196599664895331760570729847609746516827994316494271274779609016719630516977190588688123168388895334942479857259292923293774444009736204215786533985238123237860343248860251760858079554000198555828628152783482291862950951598927501551101957459790884985054803116985817816017239007424254305073273768571854784334460708122586484600424494803377198426770880859539731706337471641756193467700338387547494587755639070996826307732642607283086327312862452283707338446133075956320378024203188510546293953686144069806093801491585394616147861348266476299630707575677162660563019914296062177245661229020749859283261914521005406441351633842789227837111782002338030602139032852566681452114664653122299838815330010698281137499719055198206607521918877700411264695471037911443367106839377010345761256327087897462585573955389314061021632297403674489293825257563382220222829998285644129617754958479275237961986351697991990798628207440264962210829270144123484460178224786978207702940126867491844734231626347947238708538075075716383681378696441548819097942584610382646800729688241973351605142883003256825756368014416214282403296450744093703629926300572773545962362022085593383857392465385288245632262204769721731010698114832214794709221682227490159546144523076718117298724103189494467048912070586673317608979664413701534216526293901696313492506895866016695585419551196208191593040134119053651362652505025789542339231873388549973725207394158038220221391988903172658535565334929704002209169979480317828746749819136378741115311882960714110473064137538581261238927209761350323800538591348556590272235585796262467703147423346944860042710712778430360155349840967796478258447898894683252126542641342049005478989781317871870347077375789998213925996911780773186407748952309022769126957586309841836932034402070510398868528956439363319658242627291213088594855912264911245239729075103285828644282345971779173623510942795513241260671445590928817668016538892366876600298448674281871528849802980378055878264353460000513437547636274676348979367859876161349672990262645218325856164710389446007871068182925261094161067988581986280495265632195162497904018445072441950302085094545436224139234842994636357284325797576051948240761860338838468379131012968986817322447802476767893154501648268228697015677511877767545822801430094563871796270414491497996617678060887105357236144750714873576027194216890177880224750963055231142917422576169343165133727522128538467047225281904703732530586860922882710050886094380041456479345524930807845392466494787645720963418380675663953423837695222713372975801413037389654009104618514716515687720798912748926458816638499559920210892614848382367647852646884734432723792730036540464627344550109379771632963314051323601291537313048914873959298931637806490346951197277714851875946612874127162412303430276887292735467936299489901995303892555898685928481998026502852386777838743705930192016801650977064937720586744311098971109498198749515646001130191284595272887362859734116752720485200429971530209054520223520538629048465764346417466257905736589485762356121455181710363954626694331199591966174974861217544886053473549935824056627757474455325032887693975161730455180178942171957531734950942472554920620726136482092938800419837035585580906196192987122199061045196867662431668394061677766126941693982910876694246329850939234002202777830803235441182641330530419908334284536694423658643774679807438716530590030555210862766056292347788702784370270315815922093748770280716701763673052287044468805916503913499259630736642155574730938844084714478764432011893254321551443770386981072283601833347332802172342010290448045959333487019755388427118361303572525241995106122122926475065484554765549496352191883259447922845169537879983799433118949986330914680421089620066057275562393834787409576535311483502929086956594687280816514075462802901223616200951108108449169422502208742493159178680135246688373909802579702734052861813241963133187968174404561627709570304012407462152082189011255000667878635357901139589767737578301103946194995916728647874251629870426430079336007389460275879106480716414631320480634609330937230248952348704066796642386617224184677412412739257446426867466635413194725212799757522240429515569557866809331744509550953673773262767755163672054556657513864610352184299060057907929841941709390916057232234392825768230978377424080374541416187560039029926869780386200872520669453174317743237987083102144272514161844795349924245389186685139582032511481147831466309004959166222682761127274688735653222339670184466570821140867385350027869836435065134931546018872837807531365178572772987205953202931876441837758426026261360039510932054705640289723988437925066911994957419610484829401544637164981626479268430641289546557615146956704770154865347712880580794470881851141700647065709979834413381548133397103691330952211045590231555631649798625049624176141748160454267133436692256945727186111856147255168076181499425151921800437453071013376176873963642546261942326396524485226912368877794972963843407212140953158088297258269597129293634803970522611444959963613690834266793892676928907498527734152254707711645446513697355947196915067619052885722448833823465575946636656380035038224733937517428916216364833309555845888422242177220430951555379324049472643714785149702528303657045115533661715074614855529640086490381116428009146645432848809182038448487830167415660925520511247637060688528821557003507186167419193182590102133749431831385007266481759522821336592448624150459723670976999313843067355373635811930504359985354301195641547620319147453610225991783044848822048175301013486387206964366555475164299880953896369142416717306493249748717337370980650811915945942842074605961580887829794226929888759443048298317557189515460912778407915374890182189762482277692832679752533273220351587612225345773201822803194385107588398027094608540139217777181369639699550783624064122790087616670653055681445120375003525219604729426468554385693582977046645440436261498883818906309920092848019020011847310724094852363830258392166962626455713983298397737097044137021929475704186571132923900888510388961139001110542023203407634879286280217378197293390681361239330571216507507581252504838619973605198183621493750993689098267926200481857037536658231506795377132014690528750307159755452851034417616288466232870629645770381004150702678763116825433253436405812599057888308713070743497921081448737968524992300780526626229996320844361018949870307676557094101661292896590790172534101900463228575711705422591568430810460626985358483783829316544925444787555795177526688376140942521438363268144572108616390285611078256572045558504037211415048165287383066185625723699379099460078447650026831675638168260483579268333045893859909998526490205007659787926515775899584308813438071369878451128438549847166001369984996637194157174418586925817538347454111069995262164781930360046764046356980894684817850612929615767157551409308449608356007321420860208412686228498590602500987455037850946316590133720603084748713282185026059811091573930191957529234304494512374046429082634460813611137368321643744413131462210947003959462569796905224405480889306678597110271165306949944216290013285967783040144398179891785214457066754783232117799681628428927442610835683764226899398830549127683839725417304741212154075829460924040672510344461858851802229930612808787924532736322288968058863796103341779182437015465564883545905546166689666043625712141965530993295525273752274827337551045774807756892309572814771853241298805617053888537678199390872418500658814976575214138737699445583410718273628113062170901533545554689909284885379969560288355391634661165009944111379765180279943336929771163952015360636183774990894289471069594310951756476722411401164737047662045195873284250559534512564527581337423551981819315188252739084664050355242275734566018918798914301651057501099407170590749497535180482592715616919429894888167310312135942085417377150289149697629728736361064013738586600561763297155746844846303663372241454637594328078168305159498299986390396698726210163182112532786080618466937017091094026759518357354424674324257417880868268285533177325513385851410302084788432639339488682193228409842156254715417476914791505713440438549416042519546184538610694080564870880020402476747794996482112583511305941396496198201353546500639007411125279743695953551831211153074874528681650293616930519213325564718768878874976230197400769387936225924762395212129814744454127797329312388377254356929246560696043695047303381483650791878217275532182373983402837233771549654715561379470726293622353684799133757950116445556725911025920558104011164511877978124179821551965589363146748225433324952056600354142278512212357750849163855742576253239054775862118619695513643227739744866028549734751319960585015473722281613369282369682688134580204859273495350247609007879227731250159752348232767216154207487377657948359202605352277112811009935230728677444396473392266617504696910181775609997715259942328840695291922879358408135994407201394253465388526827889387873830908180710994053737327488108073410621927802560357357738048592224249188358276855884145004923691042587877955296315710123523083442411838897543161652555547001584436990375288068961938148126083838702728730049192197293900328491064377649370323491853443409846328535918817719263966412971399281524915307859198806893706447294832175308446742109581906986912257947233637940877243127202783982447770896805652703937683398233305191166799483900055701539521804688394932250043317996495508095644395296987309370154556674265988917185319900978287109492359618577094076416986370108233173008671503572576662351246342953558732137598819943862508150149707125582812146794928053246703120446798458130682072490546475073513094780204228765070274897211106590497793316695745980218866361957474393348987945629499942433059271443551388774825906276853348084985080270539273999293124431153361625635079584908023416068259574138197632486458011180540563739000857339417377064135379531037947428228559715823063171903443593589063042711538015467847063232012374734963502734175503132343509647635688773851549830175480670394917345233324744640644191582099129359840682712406533920344248996076231007920747651878821897456602055771499428038893542797859443229561063949826058225205759887205917017656351919685852667993229892060889448126818226930541616882062788804093382364481928017907479930091092208407972721458533370245777386517735563497571084553910155017534316047253494936644418258505086044474880726057447961022075702543733981788460377972091817113982670138150027507761542887275058442212035970395856590923923355275803960037899272289741520518161240287296317770510681559672622450817356257245036087811357014593070544903534790486333916157438139158223284300696308371167364931254782536352210391171028554791946329045970150552595715174064692302585286175544382940266249654883308471880291790248758318411301640977222978791366970761132243297848413608562970263229437466228206404700750873129255056577150546544832821328037103896550249384284844424285908062182530520475300889864499513059892696172303309190672181172901164890943112485589179247305835545234811388915216512606545360994524001962251730963812819147807524925963731573193451627470886429498431042552721631833986557453535767444794524071331864993878064960456551425611817225297363707143981148704881574725808925981654385519335270135001885444987775229723703123875967630624506128556724075639666193910221691803087788602127269349527449943485441726686071093270119436479306805038944354716364829267548350555768686018778196594324711596992485777400203251144950724731822111196867125929672224596638045560293732213628561093989508571542638595045445900314369609206963188714195577650229123307985468874907083659549277945321723489639120166294893916763274304045697289575259527427916730057641550917430989550097654750391239197882763502012197958560450240982047979373646303600732091959469404413238450112446226637958945100129079283501128957719681907664523969318629060470610954662191616129628343100628347121006120132837011772782481690336566536678990265899241011522037948373385031234110634622774411006930167329299169950138795513830089696545026206917826644254770550963777748785822179570253097669699799772757009271343670910673421722280279665825231386250090488169175364968970619660620297289947115485125576610036698462859142295520453144826883593732699985145671967505776500470168536532884667858922922143431680605570352071012005388026229884370367519154197539075237111897995810501557654097895173020505954973722712632104245257232304013696743621739524499164054523843316837194580674389265442240261629917530993755403037785009091085135052662798070745188046212276733245654057977581435681865438220695772651886690145714971046131850990919168232721961297462249089371542884046310652254003231683151368255158382543242903742806884250047000713630338156036819466509482677258750194700596211392998588997256553565057535752392065935743640670390169237532838434720641131457194502533846978211798165358905489622888709745995607344428320876812295784448233648585245005225781657124657482855017620239517138027344779451908628651020904767052329488301361432055112156830720089422276610340081852502390096163552884352752267432637905888923806605021154150260136966171957893533628541073727184319866480743936416736001346064852624820528125895489307529367328598801652184150239364194510442802720788471506911694178164584920837556528451002430422406335380307852801744189330516348689432774558432486821403318515064320837711840565385063448242669612256441601792534664725020396153667932690485195060991131404677544482058778685930336343640303068184144907921835494337409981952081590098200335111881987802038925112853300322134352047946914027724760344074008283021783010045215504793133533649440892778598413351873468446803913710956682367142941181772011088439345435261899412010911153918636206231358313008882941888714656420058061471156859241877098385310142856034360068263825031119166666988904344419697591473610892793508388309941609397708098759151681096535828060745183242051805332776415603303434433960152231244319343045663376628205017475988477023953246051087017523092057429133790562673027304217854558127414162173872232960099547805389768226907632094635127790861041008113909517988266324842133536918420766433330523236440640085574049291304677596062136132989293975704615013287942139410237514060536094965497777840348592865850955871079234250854653672957229670160595253676966025794581951530556892471236198078338338277900634795176265457144444700984150623602679199828719596162034049402835884886522625387315999165903393812422619145135493729404496964176989245779682854520368018642414238203118258572217849227579389695946114444321246028828279741173533189892385805933227908901610104913019045271865227950092533466343530444375080956835398480634725029099388061841610774734085261502645568418474001539112118881571141997039897671654113470809948415022447869790496792067691361099443403378651902630683474396920967457512410420741194954321713168812299069203356195973731980904405198924995646547929844822605161741737859456803697849816730016584568907686216975542802913640578632726449635394857093828002666636352651406992658943283875179089410567578641299204901959551629888673898323381913724908854605872481835721577865785251040201661555116745661955300218895231072762712592011942513659899945685332028677051459671683487977619047504450945771559426547764872889217203425789049381069379477926971572602386082750124178179049189005420534091607566738338870146019217367442622144823571623645025354275985961410371342043061346100513223470824581995602437563687237956040135082198809194774016534597026603677397000087526269539444360116912119395386278978923831271291638716209622165299819551992556237208747679752894724869296000461039509478506881048312325332671293648168435311520666110306200034758518810412964773166654861362628216660506609414765013768987164024466912915906084854155885835394990332573811047191844453445436607377825988709035977561282486389312165146220339062642852719645144906977503497925669147391097092303664686682570991038996502383697156245092471100264458309231805687280570075256304445838276260875077745157931501232657252109961703170138379190536029687661980168894245928828746263601677807443710737661300290028393422129905101823980884232514205230240657803237489425715209801228982794291859790469597097578895891820018142677418186701935200561235884889619803833207639721888923338802106550008817610207149138095970915780852498581211777547061068410078693269673236384743310198319454120416084084641866294241613830093495282320619873878281030599427766409667187742733009706437045383789284881691549253802219348248923721910458250507224783627358229029914541738920541154297177652763861753007485290043558197035699027796163136117447904823133726691123606798134235756670039660823529074836315462699582675504904260058297966573832817263187006440148249136842643242245897516203848786773180487589883906918255585998413932102733544671562683829539938423416595913202148448925108943326119099979926416424749962272662185468191591437317000095700003289483539482994234755946528141742827689850480701078407737573087774689723969677526230927102293739889029456929732276504463297068542785687718750585861948753565510818408449639299542392433554239828206268936637197982391429896438318465517773587654305958956189172128645413626574396744145375321344266364056662415474212136870204137735531643422848648030850734965884661170908294944113575701987438113895678794284803240530801570790068745462624863946145158113608597544782954340008542341568428075128062752396818705067947224043094774483040768244576539207617524942541241821351531517775056731252691904429021442045136575464607683586680363026095145599376011955945700507643130725887221676153950491101227898670364972993905061006745698188365225492656032589239995043117273886487524084055873554277059566170941324344657924358456247119535161168537899076149831735772981518388920335133107518983536499608550897801370986565332574812454495340305615583328487279914141995145399809206876195558095932798097004173671219107414548334892563028887346853726309451274698625773061598937369939869418253789281021467253787640635100619888444734036021151814935533800079725781519993142757944623533473166746571236050552833803515282724542661644539581684838546015103718823069827580552249285250694581145012862477108341400092933637450460853368181351681591142458018422159551880039655815954923318405381344293338765974238201780043371767076049942970136007596672750459265690766756519468914084027035451530620291979748945124389855055328130767979415858720942187424168240811328217632276057883378254125307725858856491651837007555783792386579021523169799213493578766783320412567602346596798896402503376617687891305867916594498863175926047077655094814407574259763718472334593556826468018749083038223446929541917764658310065758047731676796516194774230254900056551260433852650265480542662941284146211701822879838747303091740318620334989193343297467023363904502092550877019599239714215771053516632679103884618751168433341650254914875875918009795891526971140849698194888387621630256114958840171096097874498279593534291610762288494785973310789257297703092322643137792038642116528850072941849361868135407061886089754318777955253516554864338337518132040659591821731246483728673071482969206738960581402929188037523971225209354773459199754468259972858217111385948055846297819865901224557179874216202734037336130986785840767644547640139142883346931090952745128869491973400030360832935537236553604249567784807761160119596774942696838731018203316808589166208212157678641079430437208286801048135355421633554618886142636315145893570466037376323175733174466893898705977209675276868119727050840036140603339209605587767902168148930470922904159481124799605579320328005531792772429020707361243503450230744097772746833865354574972788221919239613054541531181555130794068610189770890110375172603434197369539643661273456844475746871007186936407457354013225951657596361219074295858255837240326829314230878985963705456241226817631615649293197482511592715118866855476376740988225869310056611197479772403365953940088341405422624301133206099421502601379737442785855945115272845985790830720201682419582757633563045636489932718061570303316395146102550825611130948127684375391631376025974615298910132613263496626682953509546170402147236189722672697697966996429823912134147474325876222772105389046847947834590192567668713616427235877105036725296434135354664715876627931098271499504876882593940474269192934524633026403250798338615113433444621071384509089193184946394928858754667513234833000868232224799670023379341295306657143078194013394657387221067491680847416071731499662630802311497021790124846627966256740301438119852869096394026598420054318474837104262462934704870819097756641132279522167775155154588390558922925443976383643923151253169016174905475993278038269831917129247491014558929734710307705078511615243638441526468399467338592440950762135933007753416071485889734467642792714329246694155236583731736792924283636131133531804130064916399440061222355062478548208197024769571393570581560181191135601244632357401325580349704373727764900627291279322752808582769901019487416209550748649093437853753647563148040964519152840702088761743214558024345860324909247575150701080738808668526953478181032777030824733189730245642061617414742790393819886559285388368094476639595629885019407466546299879521860772541718857394592457317168883691090619094582610838922716691857159738207356059213193077061502119216527034668423962184894778530403016160971047674239373998438818170732617058077927389260877409205791399806685024176569789538031434517852113020156583896895186485149436336858556380952636635425194643190962262784075190695103112986466955087471668243960083387452943264967892159501874155794721689423873675389462898922518418446600906797728523831848179561335077729731875941535321899912890387259355789933459835195559786438337462322403178764066314863070439123180203047099400594121707246971236503841784977688232523541031987778941759427803244298383057961906112880335017093565329542854466173517064594009487473183601431240485449035549825939911531493215310176278932663424842141896792519549562037485205190765760910770749099764949159957211023736724565354538463745218697262043278758207535670528194767420267953033545745888131181630180321982130131639801464361873570559858532327168935499500639241823601522198593707588223964778416471885925817189865710524611175672192596695723588953129760061179323296236528019023548016658907009421480562926221537745680266828815355452909783450730327665707850151909218398167049420017616320415601216786929714638074002409240501642320818323841973640607657988712630176171369518208687408497773306743216468192067545331829573863810805157748501286244140983238889852245183003677835425468348250887990300015955990026556693897519625899405609849733008256680638742307325504538274327860757375936403736941958810097664134532502818443915775100151278248660775291019225289460739083530958152092922267598163602779062305649685197919888490529609566606198316491353575788963930278003030513851427133754539588441413997079822646637465522224441269101915234588725751521200940330770752242687617108159350521917676987309176928809347086964414811556670534831677772396581105787916731292655239814536934857545073589178334268743643803900659459142913005853029625999141119765949843446704134628615796943586418210342507903334419389424394651449906266491740797262212114180392218170803332319313969203888976191441368833048368709321486077228716382582380290072726650218146216779764528802486106705412961190427687196147838090510755948606783802107533878259228449479433221484103789011393385562590663225342083096142661401608904116272181399170299134617126345862596915602556683473734689893660113351599987658894003633622603293370134746141384436670087404977519829360745399292615397355715571404502189377698142035715807062454647163974119670812458566792381926515612516312981083823734988477126955922025669139687640039825311346155926853357241846871961091430150612783698232500376411305230338813668205993437552081023478021604632527001290189452265495740971186356735455876268238160057735493060267877271015215740066172249500946508350584024984132534135461722958420247638850193746305796830455138904778720982566056773050767107283127251385728937690173391205547349554677163308765300800089420758070968415667561938829706209046053407695027250815326437805232881624385166803934186854103289304269643927914196672915223433276659171897642360400433209260825761367940092857041284800898535155150490499540248845606883537150805372416804492392797490789644709016587741509631183212730607613557021072664144877813322118208431322730899044718769196225413316073115118351873336405576189570051580247172628895912694247168892436375019977246300067169398432591488076373930016854322633648914379520500692589066869597999754433789993794925109697372854553780287018303592297438505282436765745622564427738764224990798407977754432231131928632245469322552191546410660856434588835303700629255014271811686713428278494216439612116029282343579825463010376169629597382248086604568347883593689239865532976254959661566060896412865653707751852741282328902201855908903752313042455413010751812915381693950474547780528954672787648264944405437918331143680124136885337470830820586891055590602320551960016747894364302089838091257911685487937680639487463342536053834166449624086671051446687059494503754033806425259719778304242290727334665520272331906240445229863808631805672510195148737548097933249095220524074375038112065266285407611553143571528763873890363352007108762547282102966397783884693124664465140514359856519093037430072848357137639553271127917480778762782221689568992559948752567866066005264217348661697829315187204069559092709733161441484041894851157447898536584277524105360468144008874330235123227967803949290879147290603195261922553349123324026737750528378733275964400363083376522438495546156775441993825104527564840178932751289932036896438199372863508512670921345641383890143126631536298346105199289049172716661602562980135865932180150607492797474798559425112537103442272491448048567613073113361508199030546442274222035555296932555328160021227485012179381988432220462816546501698309240058130734070102640758167147465687907837287880445918566188197806515241277418713060962252883454624799874605141419883768669905142672912344247967109915595043890758847833673040945136780373833518995692879777381955612849171365794651483532771841793364241973062710984124727559124924907885119352827087386355125502980136847784864085165470870966989855903543878549940649474519785220524327774876982257356436019378081606279214824333736090060513118976978633298722124148226612542652948534475688158019614703109811572656017641654765443137940669845851501849456192942097687235279537206787741521371870688576055400958056595110674983403764479098830656443032129131841444330131452811986074867881635434332801444835942548595323344005280475294481006603940382857969848578708388282303316732036688214714562998473517512222573842142596668636982545973093237277207562285113210583285135313085431176073400536141875120052071461522836964591490145660743946336169037853419366361765524730658965910712762217919174610575957531145730553370496470115076003397119694687664190403883482494340137320791344288229811928273996334107425747529405558259767018224401313985514547022195591985787768740212021765810937773753382819079249632140292075498006841463835230247585789528975791491605548762344607442692974884877960268632966664511467457020220357919015801875187136603272989163459124858968975506933744065669259744261933424287106582132466681643157486064862679303920414720905772520138183759480912819454166037354850789753480892517713538149254172385112053067055720323993333753749140980490463296268579177428305152763061876461770377886964240936902915669149088304861262229857917170834494010706617379001953813319839400801279167476771301330397903470619856436107867577246335451123318788387833069830133319316137547494160075812319795570387848538002011993617300344931382127940662231557174102042258550550570359580053296984091909537541286874974335272371635199517265556018278258965749417784615628914648248610300685742763346611041878591271979978679178727553912979100854974699760842004710920097056811455591365272548646292503159854277269794462907797847752830665403736926795864096342031261430062891488456067551056020529694055205901606662684977443501203395850536323835120374128091465423549969386592883607707959241249370929626889933288224590749722963013117034820860032092952006088409197441410780476343280999920575328595336097655821680574122348960165427935124933603421379837796220867606087907086565674423386111756515209092055188889829697671701776888137115329135075978444487307965149667586601727962764545322653055107642100308303725610491383870085034090007715391982561632265286323687623199417138214786435012036115735159084206320416999273658518998350886000837320383962769830495242103951927383142276969005415868830592194522801260294429078179661487625742475459277404192551888776671235513719163923197030374819292230888070011824694610173751037308575256786902276776121651313241232509779875767116919277685891968672372521843843505341557771509162657397157199562427471647105718294025846305511076593711998646635117877180257595236063410191684903215051093085932751618758458539761290261023707653866984727497178246411920605398267497870192471644752668143203311796326713958035343041079285138569282761027380811912844956255640585268751208583628443840675048119187239674266125504991992943191594518469799607148764272266853172264186355624155767399841715611991587363793077835356415055769185188569718012700889501607589708081925459967566653407343182210441217657504714457558878371877209043505118058105495656505724376977849282812102017171531061623997072460068834830239167587979967807712794870011249025698697285227855470360342616412168371893253899204001538496033157875586265566472975630668004519134580395719661538550466680213234074816548572937004521025579187588855972554359702879823471747699670444101440461596549323915773747960493233099185265808356838348309199561906770306275505946320005666580647905550886390204982222324640867739338842856456950568377256577997378871233417290183407459403714857012402090223955523069112199111612079896279923178320919555009679933103054769950532270469511190694714831230751907906879730481059663836793649447782740539560919341674715129424555151689213106485133151417201949690616654236238010051190924125148856649615954148346923108077782930043869829258581238386403291821736462680065203902531001613815264061115472483702442772630716787838368667440276052254516189289522327873065832559729803875050392509896935458412973801894918469303677676039515082638468126541595569257963760551113375546857737499931748511413659255552622443544965151323137909498912881222254084452365902964968028385970691805705750878432592915074867598483203784382827358697192847068999675194309850527841465267342488685075712180965782884196767147759220004166566070784385561630315842658292277644669004296966251075660969639846237798315630766777770856314826741916655734413726563324792095056145487662948095834287940968808105348548122207716112028365448782145578002413642943867425417973437469836113336121811818666403896116507296599383806400106627418923721112169520397944732781816242393789136429233025973936024774977741459904602607070024089817168040756174489702097480624134690603470503281832503479833394350559469350725910558252076072697200610351005753149771304121961596606372126877068381371651476212945541276186857488910330353039992980397112944060143469600876477098931011397831253660438899347834127025798346611041774213327251462687576049677752629674519938966729590696055275340181079073852645497488346297260018029641264118887934291683042646336530447724838524446265714300856498423299014822846690548935286598660271772614132104913381802663058574821655025906956583859429607754716133683636383934642480928405742859721311413938406225347958266214853690819361443179973926373941081434650477910152565317108085180883084405579375703414637820515880612626251501913470347876790060307877159420076358439231434207220895792792117781427658527603713479456855108394945705650385640470685445563773400899165056949579674688380473486100195618173647209185346970035871220749262894808328646105024259266612953927011241169496340503345463086183251367284107579129060178496032750728034973107487818845107806391852255991784621828704436866392447105031037511417588025168954375322101154761087685971147994917062586614253892605009624779172343147786897610866146277010088280450128123778183652589371779798371725411253937925926313499798475200329186997289256473819110443164933502971708554100254391244743563462355090428082867579392077768159115213097014436215149216113994364451468241321785516059878812803103458989079267955539556783704654392595985218675456417055932976489007276782113907147514818570353041937128575562238931235915549112206993287126842487703551625444882286667172491877286872557693115010735388515441379024209292284097486682180957594459084861058055144814833934025630917322377527410585816011764397952814427438218758529685003020980032890958368587752496886823280388734346836863981497985779768494892940220004047298042210197659040628335133741564985860764733280433535746253706543149013049886604790224342922922648574100169227568479347053883044251615391970426018904228524093469756985928714856105241703052517862915414258567931401006364008947239736347863138220981381029740810211822997723812034178815830793360231863203331515726330665619793106616533676308535573430165565031154320372743164090876411407713663765937917044986676449213985181858754179957749419847256921570804815771270598832752062960684991804278747190390939888157060000045928402157622961576159301357938128635941758943614596885000286918805426953005679143010164052480108565355174969027069090705209830057133845634106283432080264488157592344667495701282995798907202289546956286111951483017293481709837840124852430235762051302476264819556386798743581786988727238232753163209083118101285103738666173269962992271029529217333213815550240345524141917330126363052892216116400684239930169253948956044811486673621228522088074492792772826253455373633618814041696140667617998616327425857460320231745548785057338267380020907548940700257406524202823711153806586407156195009624154654655262726749445970789267764247804530924561838057680972222294635722246771290610018565284389886430389014806672037374710073821452270508222932829412012726737440380174907824545546377241619355052160530591646262614774347154437114029956425155103934900453510882386015102058773343313886450561883101234257539293574924921562469831411496739988092704509005371403029127897729827271245959266273269599601114817853781166634444821632982778399376819564805892919821893919173857479771700851244406550434056416888809888225974669459255782324253803540583382018980860826639801367983479871235010110849913371974806557534339006382537736212941897992687946472498469864817680331573033232540816472517706735799589470628641329354587170804416056619003202126256982596576399883200445994924249826441387529665763155017467173599884821993433441618541448597860510190914585840332799128750224003221464553115906604554316559652242410454687225957028176850193767492259139847962198890862603280395967400446049077200646022159035225977852675023807280086702615494492049867263554423726246164063727989546356720484288590921482351987409718423602342993004560848611330903881452259747261520056663485534734025499521888892593624588357880674582010460954790670169261134343093378756806938772371208641678797044718179521819258981972861816272866527908155788039675042129011325601539291559525805018935377575964567776842406623076266314881830606134324867061671711244037782262228872221696877663663274171563272949508902015965916602657407804705200909952460450217946879732822908810734908545161625183215792622351591371210426802356972503123114814268769896715286270752629185721046068950349070127007340458774988463506712737325037801635387575555911259956620618671292838449954178370649630063638749964366147909412587957736821309969695346155405717213362973224405042030489330916275696837846209191044936578203734476862913378465786747941590622415894833930938932667636205891633773429110669726922338058966956870528850309452144382306232197478295388726502228286957346662216547617019092695172060604087105897304627509801914301060452297138181685166381292781021940367013916573458541115591706369302995293707691380116416996950265960856982497808247141478996862860679769811271683413344826967219668174382135882490339985325804006061098685808785846487696953771963526945180073554541286617538103150292024460228949348481679844725470455477742574771264814719958118172125129666148298228142182185296727073786973406402876390637283764941766823768352345289851563191312275986480885121455384165115525659601792736092650307018549776737771907990503854545830574358529439768517717972575326265082305336612459927220630094226163492077608450567845399235739409087626482705147760920031007011527893185099625024926628607614797503717627935040641824125524965688519500513409728224173774055182059544306408992520904271926714566352843832003498575946873261156888307131392130826938544608207572274641835542769008576589720614996732133540832492176628998745940140948925127955003599825550339473818840454292617260297584342214421046452162601483986545551319800095125660330545191621146436302357890411744559362654524955954106014026554328134649531184550579752686457094738620451529755307218039293627655997707481021234987275809319970176322388114262408282671376189379143305443549596646432372580887960680521981428851282397477502181737856082540185261484009682263136384149682164740523241283293072572733851704218089097002968329190341742071561855288319763126919193253676056635711144111236770480663904166018452380888316955884094988140951288570482420512965148612940268052926752335019086956644449462611866853935569623855457319515072370719059259386695795413755073251649719878859738826015577700418190913835579196399831500551128783731492080347984153105307191844295627003766327010670258172577359066281001440659847901219736582559282702295831575120171291460166393608020603787246662364250167890208166701395456369422375130581541120949805155525665202101257819115950042109267240323905237693495573546251713821861267247570450727564477316277784255564832354329343559798566769088245345856683361590657973133768234452636628966419231389010738759743287439563120488542606933984734678982215648261815782319667650889929705678819944566097613203484767992464074091071077439256399557627937626529597272797575328406751490785392905954747573787816019011808008261469035862948334265852750721420997851564696019035269127294753783522164879788685521423640174331515944045353462915157002944001813427877937871139534663490456745786969475896310196594779187027396838045160733262829034032012981349959095477936467364707267412089442397434006487443439416417984927449954290055387970937437180577529928947923455763986543390342714282205452434091437047604694503380669693766456138076010507258583462526394796148133220553056628395714062235589338354653482789490005927597766153993742005030781783319317906798221578511591580990317334495889415415290564729312613390747749787065987994323547229279538717037330641771185118966328665783700395579514527567110709792745280815015706694089454937725536769735299686131637485777348698299287295777470370913617971453098899806144965783352334751389030791899179868185769039060744064701156734691111663097329214983502128062009543953911590480779379647478939263235035768432828288102536329065691718753649248395727141353277944078133619098918157351723403382943530028997224356467872436232158246858913081362886486186943049447133078984463786980343873373206151366471234929560310140661009533273062579231269053491967159725769837362118622090303338800072224447662174741358224926392232148910113147370557086700903720598450357199853161131357257183726761535615838379010149278857241289615006467436690561091591409470381212853651346699177439426663992309504987484702342566003849654014395705028657607652440110597549943158324173994674313671331112418143860660189358849946843194082606320113875907704647133773547926486642246754031358028204112390003674364388438404821759430921548768413633964783492034853533536082504047839359322707631567329299177804305282765493632817506297537393980348144182412762366959593241837903733861835216268138222363286208596824793160460988325545254608624124197946251986013070349355319132420802174033690261666178391869692637380542377110215881203760532290578757782336578412917120868377671451719844450418803140518711493935294596496693189251956594708177712527568675102916670862729622891825925166098452281610977497200797674776641634524945159606243441729158391513577070599890618561684035423627695224018408205839622625456403053087325220643862615101658286718074362857544647027647723720873029914680574321324274738586688261821810752208609903269898683350589261143729886052873477207598613356227191549027985734576377812075158035536068350560539820782528402128664258538375505657861336742000914374827917162233982504137217132912245389532475011264093226172835079079973193970981508464099536704652468958090961119665025181940575450411455803902903362005074292970323513524276818555401436986152901381032688282759390118946998317635052055283244037291701198879013668066545377777763816590060621999807576426302702920320175592164115798382483935067262946283025618766132906170837276954143679380926154175548314181055495493619732155577543643978984379588001980322976748716510033342494657827649613781779572353974428847499850771363933774359735745342858420120311361177940983824179388420469656484095978405481322966602470372418937917443050742945747509068831629481187253296191076597401525812488514947495188258067579746635733539250989624397674741989429040494346831669733619788017743389845340638963683156697443212484682998289993465588034221716367465400637562467385419800687433443396769586299095442801717190541753454526474558627745595744890670837565026267640999527912726793035199080274800122864589876087746533320377174841862103265099437118347762406377845371352297947507597599623328380569249689029819738122585498713514567882747639773597377526727684727258772687160444289079855174848351661703523327555021843104597391084287384511051955849569591695076044077461298482498184471388497936858565516288450573911432420082470967908917116313491090527897510659720128341679629439791559723538867682571873604830616426877918448871187841965127777284448350382514265840020154565096652883328853129967815507252802609885070735309173529334753385739961057602213319518607177268006677508850141828924175062216453960077327155541572655864305881199485966875976188908713375160684735306142570483071400978255419647536973135904779732037086660255961412794363326108052387825155490992077186724462226486579461978883423411217028776966380002365204874409089703041546573117115834762906265067613679792907804057270866352024750331968784076476742397277904490588232674391662897738055367208125592970460732224976715215003966418273518499997659326247318761028893639670575247743001619328331665734354602081735166822765733700493720627018958659130553618608635837775086045861427635498837583621090388537947424064287389406504214351767515924118011991810916151565074651460402068504638889171128180061691847072270057282314499602275780569028259221878255371946009880005872578081481599554530876260201449489987471887148021662812559700310141072823446352167027283386817628423576684560575453208715363638493058228111691869357739922902708422157802926431484821752255851138394292046454323384431681344906766639160760717407650532955905247755477664782277580312924515908576277616657906729862779938486422024056187565494640525406690085196128413555496015300804178765561394982618153470865981561824283492324154908701859720336314096636089729007195692048378080209233913857015267791091179015280558786783168863321512473150378026120113105900526916884292486491289211219563197308242505475245912064254258085453863875884053611657033925362559892000005560685319950132617844581653515201912427695734349952487838139658943183883844754028695379614386498408626211599427272203531871750234010569873842446360340223317379451129969425973575396390990823094117233773909586822270759595257073270891231735211195800008920170589189266874429584437159541628780007769782439344092743618644865069116833199087168133321102467503363207870518516931174461155228705317268295994722764930529965783694913582228303284928627191745628519870288384654697692950274412316115409357472336762161364880412646292743051038091339096701636894330029899045946137008350481968680673074819628098011785023676939331920054717730688525071092582177135215607194799087770315437736255645895298715743225681911210794382120788837372840234718875076912153134071315972575948886533211559097209773215645569407530750192682577497915249065961775062057212576715778060451588678848534365675679636445623760552976795226505899970998092145327772417009787783692445634516412532468876443579095542786280284576361164794851285766265031066372753057591975197307425422909127341288148553339501261349413339892956192728908743714637081588998675673489484167763019151565610238460007411302450867142019452218307896368857355060541679071818109593061389077778077990686059919119729080064124763620567843583612375071442133643257547916528665949413802029809094788881266415539742817562895554015311657580415024444748633474727675235147048480841842538545317381493026311980417556775363140632653493511890216329680118706138687436896373242191643032445843104926407739652494093109256860432789253053600046096573274294850318982116958471282385904290304804275092234409564174268701831790493506155954737038611567406671939160544426776291933736449308205562745436110184999132867800668834379169498763408044387124655807145944291619420586686562694224821257241838433480173756320006013044934038502368189184529169323909090801043469107116726239404133389677536123875281968878598269249247073540035113104177396704659852977763390034293929389533549723000152165339950891543981563551403699143582747791467652307290040437739894191783029617476010103266154075017707364960500774675738343028695311855553169337924710690180771249485279223194951368396561618002514848835088961422546183572080201255312857423558703548499451470049902830685196028849236942298445632539089151979728010011386775836621930113219856647236535849209688762616025876842344716372753035372795448336779717582712737196250092956214905331939851012216244712903246532906789036665460115863993212442038597208041548966288631455997325050813146739598212334973654531328424811756549570900066049876460068884102410724942372448902196869832946552303086889387888722482134936714201040597237385635525961223401004400357584314040093730228455635036573881809436939190941550347342812723069931105123595785967447705470565472431729964074347072418357217712148256244253353658015854426752450487686333915958700272994851472784961529646157170453053732351547560699965841833084973824334069888377506957777994586091541027776946934240746369694223609068575113970512315974089458432023770119849393231942981830148207910944226938990178546847584155256890091704812201508809762506223926069900912011928603287311272475584756166006132092213110170515025184694663336907666131020719517917854718887714688731287323995225447945519595691835084474208627286739103394596394613827654406801637872178418220540365233418576029802067833966797592444778039562124683036976667829900367838130271555587938310635356061891076274911567307066349812470872340666344550545862487878636694335873366003990226282032201954067919025055946186535130131433968069681088043698544943053614308200552562423115702566433384848381316581471766218755472979563253745564764704180784603563077650254852553673657398715011734088315147745123950422840002848623870539108079856877665753044760935990214318287585935269837806938974827466973253457250081250320873508478654572229283362047336614526403054900117368870586476601720631518371300946383134075657226409033881933992948720778717605717424667037114355307121295792289170561065832270070909594509306486311252971242490505758568464114378642228744418166467214439000574757203725798032229359353321179577122696082000097753150545974800646509620316876981519863193255354203504455389480291191680680044900994219393734839189066870334783728482204427922845331245132964451069081964436732017170222705835388279723034348766424313651913634835759368036536143247612834705242954567241361914589573935618278284455388854934371996765916783093621476827137671093427386570341701207199043175235973433583985772510847036209833354045122916254921144090795240000149342025359022101894794934829808146576111746634320035332358371831545178652758383985473324442904130206902532106196502077240867298988389167827704086781537904625809714793711244183234251999928203562202197378088907806572776803906682920379924185382170502709244763442383221580130231137911304717341530215544757719568988002049428042019649391240068929769444431314256002503539553995732425538934276087759085561804233598280679158477363179350959425241571319835237239137940866347437202257972329287131377898451339949220243580378249676941193236256008181170785934485952687252820871499598324925157710929847151316868426361590068919739901849020361545432665100460332827078999442698686729391101358366614178062059028218754673944751105600617309205376218365193652090239821613177177157802521103809005709768711615387106581145093434030627140543220022641558916951081075614049421565004226539558221938818047565262249004468379359707384579466364213071571470090414044094950151571644100799013027046817862219928401036377124521795875172569293779474122729397881805376772520860934307490569182771308759195807788222000985294120742495560273048526826629428105012404089740529302988024857286538158728467579872634883852478807894650056354485033854512070814368797141107750789688559298075598072440068808208127400601665141970295150832878211706927153830901518754918895464085202348929739752545428457119323471581884639402652570314166316723118694559518240007482891706819763854709049603930711126635833521541273051267943694941558193469884355290699307639484405399911714446103562799445680471835415414069204565979500250739201008388655525056648839927597684501600460513385557810344154284784594752865513038988411117028772616508874031946333862124865655261876817985692276478934459350108873570999154733393467034031179364424544809357987032767156457358895163599806992926625114345772942597596675745340378897710486970695295498144595031018906996231400607938304199649356429289676910747268955437266174718845983969401965239981099395495858313900239359407722234998167615526826063374101392233182422764664672811965200613328244987529366651488593757380542370728252805739896863362366650995570652923697555542156329045353032676408037369577812406552986074713277285584252921360825303845837210771283873499739299286161480567252140501740266432346272668717872863206109254556266044367142185926531349299023798749475852062991396935457608288596143072059495087961322351948417045094889154964187599733483648076295782700605210274235133750435507392414116280353696086942824845704712986352180712509905113548786019453803596025304087235849729889776106443889763413382482303051007440057492150582345776704111695221932867977536865078592747285250888266568611935457513247539789899974734777966322260650779231233383876398531738400589434673519669036845525052395971625009565970595408016741339957850769469414877019852923323602145296657599720575784123249194747222655678829299643555176329583563833167893420374742391973335253489801941591421729289483233611889155369390765396961498260096597404352333132137961498430083435848158438319924841538926324008185283597860803720907461213852966512985444417652780786911822681361725243443118952673068903913977948064541121807755858684134153316988111541917757123496461932785899517763801458958468839277442557259757375261121606152723444095637863098978943727425370488976362606525862700722928252105584392762150255739650328999395612865369324223741812288818900347627010276686875863164103502804764025167870906842709611552413135511003924895763946509405130689767962571713056913116928116314379905065328589282737158454741039175274673000908594029943748066553019972787579671463604805872665844988724139865236126898039527823280276765362110328571154909384695552038121310963526197125370506787414916417896481464441062401350945871528243351230586273365451203138547810412391135127091616256650182618218169228947911025524854326961574061945101176185597683071656399153275585384553053989096970710552016806794950969307650397731238761699327007912785291514465258226395952821660163124067943240553030186854271400325935559404035602722823301064573282597571586556937703046370266373774192987094648923187054854760336495451231507314853122326641624120319464257205374852444560489610318046856428434561082003268576282276556550052640457271086607845449671373221724514309109884622132977309609747747855235732372684554777528401123726136863592810867976396820838210750441087004525896688038201479849208748541455556497071264173809336305452502204804354301438574049147989005173514434916750510825762462366223643442531916694207671845666331201780958699886752925611821890490387775604982524158562104240082004446171831378578008544524086217655107508583751769126090855436970243417493610035884200065889908556234904309480273450555129699978405141391078331974240577686581109005808561249536637872751060611866140189516692827603270821432515905592170609612705842117662280826077594945896570319371065783501941183322712994868101965795672400897122880563488183870004523822032895562800867019918796512669767557776141144325664784880152640178441560200758229537979909304167862474381003220236293635640773431729858131130231335407167307604336291293544217363962777799075475184839209348239364066440167377195730185229829137169179564537405427330554257514250783582645377648969879474527517518048309526996107544588317963481149909429891839814121290776085229276528720653256606463463924269858065053983570894213967378097318212164064889519673405257304120358590048016739971507302226347163497114708476100378507027248225184788998819569032070300037424391541937877578567729070855198883545647055660134900650807182559117604060442596278726128501580160686447165676753575845193834609749094951005827273875088425185387128835505870591517161122356782401836078199968605505616527851114661349072069503683250182550796073982640507091805004113360168848148860360975444011231207404807931448882295561715318320870123533048688450367804477605651535130448774027436651913779952576789613861263079594230295652567736599138691416011845062130387673542565899500868531767786292548273333864471221454495739349843555362724480592796784470612735175484891083415029840939429963161484104557190621388054947460007878525156258284459842069672306797054883058634968919097747441560324032330235787562420294009907744988928099428265073691148394405789713982741397099694164529514455452918896458735210218049745401037464562491345083598054225337799799688565054903243497397719502087117505606735691490193280381125004035383031441853000517705798087771730445285068247488609342663701868573656960135497553652450405807635938341370729076822192322531965508201209730424888553185166257886089338977819224441253526328141040481147038799328426032445911710500260948263178628420934842731036100603780394739808055128273867043795941296035630195438282748813466002093743509373704994768047293099078539855047437388356123693733769840094019625092457825200409557192357967723378066318158754831527952044617009027107350455543996846771188207901309705838223324044641372756887709315608919042881294621724019751408583455097949713849016644242960861048310728570423489384434068724181479272819070240669691442568399832488071060818253692475617087741283054044473120703105869683230720853366762024185930315196612418628238451911885584444938877145143856306009150665223816045591061109786000008965710655471359100012071329360300456003249289850348880390374196056259163660046963241110780392530295538756353721360915046965112356918868479632351066686822402199600898805894739276428892783428208733023215261274071653100251154690550920032689045978494859003440547063969430255407025044508597228662928689644909395187860758325836705441282232687332530170637335138612968403181254733159415680809934549644996189729591110863318001156648851368530377256749573227887477705050579195410341927333955277575381516190201801934410082508177770377767632431408619325432677165397393592048855091188208135754984951831948637734099896342860285539920473652139569569376917646520023800817550355345269199634670999607889384775385053103065279127536466304068723083740320462926752495925769488933164123776042952215991972508141283097307871923584715549056617265981177374439296585683709869363766301330379638423923645753862743192505332653292319415381008935603864267999434254206612662165576551867182882836455131286449212512301190891978817045479630338707789641473097889213532926681261127959150201938555677776123061834189239974503363522256871177656288970490060926203029963492224527787590863103936092669621223477404084565644888132130682714596242395028588102516177364313259524077942006089976514471294374674407394247464995532399778422895351062268063763468181503624528367241895152543822501177687169083958683628352688528022632323658947445113206673804575299522207339234000306204686046075153482906021334131732935120973638123934813916528735825062218354821791409003477331404489263997901133466727391844722765527727664943083693692762393391261320661896433132044070819277767377469294970648927255381125560203752873970997961881934447619863428489271830183572255377223836810144025274854137181255039510509548872264777684746180854221251186347432926217158967199032676486982937351025165056196654283250334400355701663201567296480099266820932164577212100594721438631307933733440520473380151570936252893758178213096404837834834534922845572353265293776018139397565678958275257556914063940538336669022016377772468891370268333001081925819687259809321693013169799259500389826370036568669164313695280628387451592116095931406419846047674696036436993479729245999012846618625241406174435626950836909223317915982842455701410754512436276759022466106905185961032969992863975641916351585050394570072912962260816654322254856863856445165704766279597162497520527628042347536607813532452121218609419523436303452100498805858378985015653998161198853350597214101670529401892734577238632236163608510982930036060668896755133896324953536912367111374899961132598438350522591238115660882951524557451127252191442569109669835319599121664879032891194868759420812353102166579914502667036849436049005226974984546872827406910993488709363411001275987590017806731322298956725964267125578987947872421002882197308610294396007486470148441594698094506663152168492376052126603138232394900012142501268005292151181372316245185259321109403323396345718607604249764391488302509279431505418805033534600792334883326932133701846110089888169165731827897651781937486034661064277284492055614374363243920940698717204831723506953238668562779139421881246007964001877435700035102264087747408445416784741747480275503141336035599550882200780211782399252939315989942866329815728651769532158239667188038614022476667187817300278363636140162700302239634859670593279435561756425841340792662661517612008025215388074092261252137771541567093672601735432542241932028383814567659435312794540612793244671953713711746679963225718788761050207270989000225877701675937729068362249186447035500058230609579050285067088336762318113349292055501841379420712996861966655866591903983065702025104949098758392203553375350871859551366589000726374154890872779200953424732061738575062257804538755808510499816617774859909915496623698446221692380935798388534353784363775745148458786689300043955299374104150813099625691784891620396832990099745993369269219274968654474475464822423492311841540306616784552541253932954634299038311350542343268272931272048836883250463539216459401935280316457357429212024449819445555421484430745083867066357639781772810653301076865566605122746053258541582066949721744022295589905304067487344040439514287432543683368391447980472251650917299001747144835668639603817614077296807894486994980556161488361132740766209319511820890786380871616394335617006863697199911913957906468903642578647042068875857048698075533451944856701254937588272075326557466035456482027772678928832521069272967402613427460602929879083300408152770772795014102742437337013486530902638947980136123831084563288028237574480236039328987223453536758206075049169184741581303007251670708792461957429683588377407479909122843358101370483767236676074708247929473936120086168539396955574589944184029867116399863117819220546707740667519878427350980810125982475081030751904815715986906997992606465171959770150040516587668256861417053221593584160414581428650576530633147027903036002924370563401638450031889222128500673212913158375983589820251308203220563094046767746110297787800856538156340442150330578975210518119857227693837948605299499476742145558342119419033230043887083827766343945387566266263211832132389039805036656605642198245008687684963607902759888917094093049691996733773934689835378589928274214036385297423040383280270166887833321369319065183002596420022471610434410639334697133647146109342484330880039855066852374720760507874571952517088947026042782010570367292745640804347073073785185089910277548651542185951361951356623250901451653720614882840667484382115394895994801940056966831866139428931873705050929643517031466147570659911443894393980145223596650392417157417348593991381259751957426439153012094975350757379651231405090637098661444852644660208285723011979887708466894520566634028504128004656238523248348105695952132749990131449323267342956742884659653936841543249370520723612734100441350143719026809784697945302581339452660070871262736138355507586472472724792900590342792028065817700126643742603915741674060272952244884680546774935913398891821368285403762602364710959933191335451924095570330545303505108996579747606447678933196567053996125455235976995423165465156328449677671515982128655842893859906396651871493829977645469642842826130553321029730812732833337988806129762099195369780785201345736446738339591473494388450866777668476246671561949944619366744299908707929379464337209303904807152272791836439005920471431800088934090140014646295886160648650956598344086245519249257443159464983149553939490025069691113443406477651515082661225411272278249735927543790162713146904358522347627044277157804641479681614474486732059273590151192932535825309510431057063433638986006453846439929799029777580486082775620058721949475964961749732638386519942679575297508239431526835155939026191311713422319468549560370673449024969849929296895712503216329281577165070288618869113184727950894862564697658119575123501696780950585846824157145370463359608012620604666098644210614224586307568103632580415740092807143489073007459286340588236155000562241835536751561916013682614889967238527455684566525589855486472209708630075451717513052596252537464052084013529004610624806906778984997854182674486636728818562548499184516157731112830895959899949714565099774302912787936120632776255049993750895237266783436587661967957971441018063227972067835868995465310621684787720575271197199590130164975596266722253579771592799936216949588165110685086266150987064181113913047016801873637603696336755498190177172255109659096073040423915752464082028331695149518737528293095563631188147734208309628113852102584217281296099687234801414714213441859339450674463801919958714698436569999740656074684644350851048239187468698711720604159723257312370458322899996046000207814099167802015607291693184034175065269041573993802518949769752744684089291232636462881902030804211474743664627657551503689302296661555569071129075449417890996759459322814726272158243979737325449284963945538550536601914856858647424436460445821051346715490471908735558321385687660793886966318957451120204173239437179397773713466806255382353395243763527754745428873292610571050324664934468094492324215974404903389714305463213834290255521615768296063139058299891803440162182639415729187723180146490541734252204154443121094380759902592224739129023859100986548076445910198184427390238023606243785702829513963006012951534293611617016887158998251515744759442381879431686281827324730732682483907072611233087624743872048527789670181431631180141360334027556371069350022405582046249256810964707551791786623732425614490178285576391623388771422706313489178872233428103896617008700978129253258096817110867180455433599361192429841663270303613021836885756548284567207033021294632864023359201464659259693433022086486383629323983724902999121793223482359949891599469592800689573103601369616768207897120021669404981379878416185670330543225504560297346672694920862491474943101632656667133464853305913116702256658311863094591939281286095251773202162445490025813686778791789179748106374653276673235273328911931611602499134814187983794546396914846986071089285073503282725818544604659580464418470735645271824426861510844969015971860994499219803560224214922947630496209072133817824877473660639169194948552538655826185649228916183832594829086449927416506393883153033646693692817569212690621293119881600736151556456693196733649434275060059979183844417334618222283989573735243760188114651248134355457142613653102572059765307959097744947150790884474177617593169048489371865842601540442008381104035286489910748916340965333349783639439478408220532296894467754945305483391409468904170480426243018122304793960008464582508011452785520584385176691670242410987875064834563998717538211406511636715334277523100607788245000112386227937934669687488963120825119706421098565667766690401887850440368158855127557753924669318398159136510527926831014280924538167524850057855327533189541665348041917004479621552202721228692153532371949097961007046848264350967951120892655001964235566248366187003389661469744428220091669774585362500261538488101268280673112059426518918416837953946890666600710549944865819470969433877053338588605462809239334694288280303161168653497296585801172389958105800023937520001105877347719318328329212790824869834316518274152038194952418825506363281888688657829188282360824725496997140351120302445725204537923634063516603359584544627264011689979226799124084503400609965665292868541063853389878719549124847498055346254687662601889953842606581129563282847331765536278672221498171388012333504515883092955140644856987085376211037643892370426776103295804177202920150892475472315533512058052681853967129259143012481831499750524368281304129270748162834331118407461218152346554845151345176279150533114849756981975906598440974257227071719364106789034181597557995485044841175025028514387221022032624991102794436518726861425216980560319400060552572139386273469484067768985401607987443279819950347792204501282656501779727743875443622716344261974092103496810624083817018854256938486303950753837474748820337666097635871375084758779930771816613692234183574727314706646450537059909191383545855233861949607368753799229356294920744479709592829590205714102816695690190965509674664806385638931701250648689520641880215497554307330698109469982153380045750527079141632651948344055934528708408206766634201783830287908308094801147728002885360293385571313754425588292214606323854090939851587278121011068801183842799788802164332846394122593684275045352047554635442937498607591826450565930642760346783888584770548093600189611503123129163187083928311586520745830411608836446271974841767690508198291799391478483295712099234011871621153529777772764876144084932830617167121313936995264253296701884073517921827138809222122476184518774378164195059510658017041438827011764847951969126348409372303754498017692082127867812400332698604865828885134549369336060724847207278103007349461609423705064825497905830352001976257768922322408197094522594049305185174898755537369222058047963575938088733447957795445490114520051277782433913938827050431895771396568173900648515166905869656460442890025175578571288060826381443290739243094624998079058906787805810757166217596437144094592907450756667919182854523094336000568363296303707591134108321626798259261576260113362767386478967632815383173500375943968205598093503707301631787516511403560883242260257277761579614536967668925171854506783243454620943322525878757771432722847993309768398220875533936441563716582317861356766420689456913002128612381903593999827672463950824321006090544256790871660200967143705782804799959784885115423417636800784310463336034091736581135916182157099210657199639212932702417974585215916755415801602720448302706057039845508244527505093913185741172400145996616559687661536625261826195643386234121523799692869186939986028262149283598015995900805955136059907005849253387272575923325794138451462089112884894985159268371354665795783655052802217813769900747730966041265739815337597332087146020542973264236972735825016134586309908290699935762658484726007090568142600578166824645891138496281936526934769216886924846520536479227430207888018729848543265006263073216713952973372931507184937560936410947138979983259500159935321705411142514598569407213253948546050540107605841366271723049836898066550286568994608411677108537365695836848295012018874363144152552970683830008629973076639261658444686785250550952077958446886741861139299695908938650146175640810165558315666800650588458588301721256169650425110601787979840983366240405816709521615692821533075443334453506829401133180846993561248527834868160176107798702734084672650282175386620413402189797962036530130596142561890432944094980177289274798471272469280746799399413702822353392902876159784185869991420991181677086813091332191985682568737021053669186476379038177812013690525196282791957138168422304666269740345837873955727027589159956476858534184914044096011695734541407409844750884769540331617925988110575281573410785757102731226542969320221931959701900738789625121811858165440229108665356427564825848261063459376571554482643258234907823660408590503654570050282541677149788896408095858114080657750360485397126125136373218634789462662162886176016473193178336371295225577256383672862390632411255259176395813073130107970153686657265614879310179703694639529946273254407077275808757605761386860288279215470156810846624148660673794483426292278009469416838603751245757064132919191723177890547230997517233982658936712725925659419534165942995058766523206120292743098892298845712502652876537811704223884725682021109641329961047625481180327591932216363145266786846248776167683539049350250954767228223317271812534755437306097655824729396949569447946561937547408279927655010568208009840845346245988207069691328483513739458695643883035109442849323088386594900993343784794154299500966738134048350888844781375069063049714008032127314420852807629627325389532746611698251268963277157753400741956770061352535677493234264152113315700388643419958173174339124620056625217141693473404642769874190821156739012181435274811011139318706588266343600893076331657912129790812707062556455238232816572126138352625847079568411609838760438194298452503131627841552904476689020628195995930199244137322243214761122927492988991521473247540916119202468242466710905481681443045558729616895167200478787896751662987177690707036743903894307036104114527651069718882784073941235604124240902080300474064452834683603203739880585358633837231802057723183964229659415543668177425122465266372466549566133378400391112249190877735803039916318927655715399822581659581839351218530238369768347735388903050395535909471745248915059405118419869607323747228919739152429567554145614535703483588610102909099553231229812287230851286226400433997595537140611505727250545925079690327464454528963356992386117645521979894274606026654432649306100367497123013005770121773738177537924173460472119975255302487943875430753515541139294465504086829894683513985905862829452172679619138830552214942736621939050140690264929270209661176119482806061371075873468635181418884758680120600063124486107361577519859876156196741783838831922921576718702046789885022787909393877670905406787982227673546337075332740591319790616704802121534205071175241820334908134714656865200263139436740388235894090530376700226088515574427165174394418134971903364000366288592219670902467994460228633103054542436207222754730453075658042056982793021360051895917319907982946426660552755504983451613274767017618987166546082038016551551887371075925083340849523347523369089128741345071286661811277412774944147116484001113334400833911174834701786486324509946742155465552416113034533391334947206099503414236389423207828239861253507574797518036787680077160803349208901637196143438501209024419189508654538804381130429642947185527878251511396538994470925417060113266633792538168050526105796190739383512653437434265135181577704437226111059611516908315456787548932806627522076062367982689345578550126887076692057673144867312415671656183825638946328500601168342883552969051716071108510802050568762360692567052761935948277354198148182315407325224549989163047523544107260173322653701561128752203457054775358328783457331169386515254305538856105136682917905286461485750136876267869103946644746774545304453935081756369799970653697857944066908006438281688991799709519697022676061380947990285830728362386384880787002061262318786591638144283012240315367856456124383385291994271193009543569547269108788245212667193195238800514090165848060694653971615366614889798194363494985224798273359948717525372153189215673730077477671592358465966096491832498795581305240501760412673122549946329533116148990035720973381279242126556991245547550966579704099401966590825548664070401919001280885881221972131227247846864063434864296528417473770087896755621324606615641835260298751749354893865473885763070760504750130578149907135203138915920540651642706649840697397304567935282603798592190095611030565807714805369790073546248976009354428667764062365425843442299914324620801803846750588717741373444298894842177734033593918971282508577931724197105674553898067711692605329361226730403040487940235113300458628909903989016325293828269834263480682099452775269251641174286270564538546316647385769989355415629782608543295705806942045267615789294868378191636908470827426950385182971450526895543384420170571127051387457177086788681622782086450850894537983409470053492486866617885666708510865576499237860763658428659919644914763738963972338648786443610157631220088553090033531904583344306442140605327894823130939937316992717983943690830306123052460706684282840449877816679017298693162304866046413715427686444040473793304685809541168906132444209050628726132237324853134388359612440617810777702284221524572266290086375142973886993098188561395802196677815290035431945378817016463909050296951470971484839942989052650432298788116366440895194156977491256433721999266230685461067799778156128829827923829181741128311885146170687830583348544059472200990291009883294655889594280407580623721175511160424961997560018409725127131635953135729823757779828353539068842241073180694449866393012001924996167242523866134343949845030450792171537599133200190289952920920580259931150221353526351811224565043235236785541652269366493210628525792176895366547833161234597907309392867994563474669217092998499182137349460836544105748824398478623979806388646970011617566527020610791161011025325295428924681752651404672120207589024336384730737615374069674846626032545525766699213776124367396912191761965772918638456328119410150525245216637475333351327477591506552086270146170540034845261399864830637513882258205338611374910933995325014817442891229920755007736235407146761894384881881606025201899991364028545782131144780408880028007396133879443837074332295668214518578323764858288605682344737037684087874803587947125168910898248069404723824652637256710570644626120492224896104939335070447138249873033348403909269547782663025303240079665438244075996099230752389710872444126973196541327465124221708527404958316229207714071709548946220092581981251760647908457711787920349617604125407216033532289195070010788843322862733345214330568657223857233038367238100039137763501916892704104389429475276136061262766576694024973003627591179226248171703716733558625085563955045625346601338389634172517223437479128392350859022047473703899679589605315390740697090436097341914613715742085663884759880725513324583677763230127360666117611083579151393446236700925613523946063773237667572400509502495763837848417813223053779784253706782027717939298621519437040466828796674932827571149008953179035940303388078128361241933398401298739329179611691706147401344488446715479906576125795219788795508009491149929050045986540055633963060400116990265989225029092941046285489392347151906241968426861397214294826900263335820128214944438961921003488834407749447483210499544899302291417449884387267089382012304681162311483791249094609366885490706343395365768194334331735304646068780793686797632913279242531472299949971435400821150467120214991540041054246564283262698314384715611670972069913525242393552569433366669017932961359846124218891735894573717072336869002787958606188816901329099306756212809954916716833006195970643789507560474709398473330331709921920703816820472785821478960588610623766446201492017823702384835886880089058694394353602135747937775588221626635302700591630206716502049691390752506699718191290174609139415201653919214515805753293273512580935749729852265120840636542707427384085792492192226760004220475784542179870122057941261847651087961731902695558317893169158429203213121046225243409818546346388001255629446733467210551691468293810633215604123235575608667546854030796677712569126041246370210294972619443049240526690084396417269181046322797885074990711224297332231868459029654130705329155694659068528928639703407270019500321442676914721341510383792918521516626804882499053573990055016622505137153996404584806960553754018712005966732108337821271208680534772813848242356155454831318401745230330552178620948851934640162493040457661794344312666575904792580592891393943790010225625062938869957557604712170788288768329277486981208709459201750446308767994994350664571204028410071042874345133123005304427156197136163527828434745303827202313247838156245026694670133266145429902981956473821527403597885273872482888389845499387856391721495881273181063288259636200948120754795626386218538879821404198317945047327371151157642993518860561195160687631707593034805984093124781942750914284604946607285089700046035320733910780238115110376115030156722771370403289554646832831535197947066240753768233844681356717660009395360258704910415024774704386974978651698660897631462129302934224507155942824662283980729874474700339576489318192764452210351309684132198126463678833106413881833023112546629070442999311858641666166043858422241863798417832094395611060483696059687183858475508813166037772828320186528287609621362268301701046648636602935382037517487398934360800795706663156619817652721634569645371010925803793257356018022642701045268265423647726990906254398960972592947466656146040296217305245984130760777624799766061083577275809663415823662338793679963687387791912757885067381042939811116313197987410584923938777829218824015836600372359449582463230018605215843721580915933773524729932323348953555809844709036630719226524596931452911888235085537071777721169475330844274783827074587198557002002188616482819180325946367510831718291326366328560761687902734709208026714665671537182943363157023008097859641358030438003511746468497381023177094289541468004600202453020410285197282928080301508816159202549459408139834393141063339404105757080243218057365989774752556742063337293900975020815881981858773582608659502773752930232295958850922478815162850331741310180335571041279999821903036951554635118781888949114111178071764344533454044701871367264979475772991167884652300642451852710693750553647699387594395012774979521885103274056565283894872678848636799240685162758224130333945281666168787679528024830753000491187699788090823380622441184531758499205685371886040425228682461082191941419487218277446647706716810939568893681266623092463174890229705275818949273237841394101307544529107072206761066864068267632498503645355032766598722299062287072539850703920644817432043935794537844085223180972329695531306368522098841027335252568924027709112664707555429163842060765438142968431778133862317153199309880199750667767223589195089729819918441175140090702519514572483127187241450058683255990516925067259418279506474797886503677610828459202989893650104507475267313329545901553931251668167721886999593824635308005512403987460262959870699296984181423156532196049425722207766885887085519361283256108864625676182961790619575683267546398230680585697447897590703703787543527355777039988615807394118398695862293967429015556802308541057282527472139503621913673212011534755541235268890353653299557565684379427816582231760845547357360052144852787188215245167094194665049485823799345005609441616159868871936607307794025836387854798415747152198821619838380314569182037051237389096114182099376012470553114291330592041669302981898192556852006570029223632600204675428694758993930124043909799541955227638486377381155012520711977429630611522005315086534172190886227062023101549211062693695521549845161289583613325258516144752181834199852146814987987988117603768465601365088946542252032533368958794883302279229946186840749499639737276079905493072814010073414131464058341121792248062471512419384396665352382607178128748610225310058828912439029553153491051272594747139992680120190247288895332459284240693389604017160228002429490902774094411246882747744429986338041610292063361714078928047190753128561420173943788925451380741595729184548529841539675977231395634771326018827762805638211970634477609746201330214451904569386997396376498433308114584029214353435520995165390571974967327909488249769669968809830268036492146446470772193083442687938906543635618022743530558325212676777726071607445388784767568742322628858684768198221693733157664804745003517172792103492955534099927219040315538717923138524805822994127647053575675158435143328185574223111819615313775259947329011676149287969034677417783513173748392179565735899602339640842619335445701169912470517838637347212372861229111358680325940432467701622101344877408908811579335786232637506883913008462571580196893466034018869652068020630262902571223406827407043415721537715125462719847107366030281549573877145543610123049200465255741830839042714181522434884985158585853326655560186478353040252288592587485566217053740679814782420059832569578199126137674412593647890532771047744743171624427759320962073807455744473986799287075433090576418844655787343839335607197467077565678550053074096094909567321239046424751591232474447731240727193556745424522368168972790887607973448719377955025176209051836858440873297259536655723138452309873085988513108067015013141912899729925748372692750322545452219820368831093511965095752109568791907290076871558454842797785149810566572055096586647863541173492669751110044204307050466455069646120258795521331578390547323558333463086055093283637258400367756715122710672108038240381468558650846083936881650029964412692880610208433422063317906380798270760819380396406469101522988211103920996231480053438161846978533890730917424178836357432493324412022703198518948310576364212535745373139172175363315517828770387353555990600469163847472185894868958853723277905763795153454339204870028510094823011393175538885362917956429102638217279688766032446510136485918185399168608533225239641795616829212244398996252409403569159317609920988219819072456527468367769013590518814318368650811963772147654838072096053756699870100986685229496425775848898776991277501069202750481238207737517709873748943670679861009049447257234953419075941795238178927351931817788786876687949848229418635773740894371939753886283169190981377168310853703162002743532168343338916798098890582391364455484640763012718891583116686022242898327954653730445171609777592892246410748199364880634813842564280230243753598821939044969163408084924303206859909158091733955392583866974975546502980069190590471309942941693501961456428139829741351862159888191114994734519147870201863497930212821591204920078773970655948567656834058049778906178592799752986415712343042932215505220688241842269485289817057966327522416589642040392581092654078700816509135149139679718410289652710480774693020001312713501872552913302238064689412344223541798764010897944598255127658985679690562218318565783054052311115648036227970202536903953125569881967526197761757609677611433050664593241352729751494601368713472003353908865187178220526038732045120041617691253443001270121479396527070687865317291964013187631899268692788780454845870870278399314804684893701682529993856840195594862391548047744747721212638121207598351217354437746899345727691891458500949714772740281984491796454936677067526194858929729607776839290828406046679562371726147196825470838401159170726154281447914746012590712769792675207758471355830826857198265327533530838492302892774993277537476593696648967113295546713383442824618762156009876492676685164298445615041696664187356558221521552290904186850007684546313947091088365638113689376759260104645966726386851857881882421952759060239622683399099773713273005737819308104625724977794059335784952166903374493405285644598187002649577435675164241390519181843807712997750336934020158682842053932087595017976581701888079235340975837082222036424429169205300303714757575930234144477130756951013554142676428184815050009471267713561158767539832516049535754171089620793446604190022141926629777419929725094839928651708719394928646067822808116925802189743604133486848837442497506114229751282912929374758020474848537849052174686820825813131972784347327142905311540872589351269031524712377226247231728631561002163384442333081327727567771047756081677298426121349114559652134908630739586287408011832751527826358343332633755708019077527827482424972166387803289749437264950820430944205728772199159824119786822361647294092318219401365805457186714561904332505613182094843566807725626883993009304664207253601666736186134344113021189302977614741630667405783450266661441838509684491403104481434475634194297563866067770937975069739411665095459774736816929223438276550924558877765457202123824278768036180465877361253036145832555373517462016431095367130590145766153144326157357962866093039426159244791965158431982828072381782645846129888597320605939257780156443947335348993981525456678113544206252812842180936785356136854074952465324923987086697572875378682244374492261099101560497887356290160483527767011646879905759961647801619708167972392952226925890473935516738118884130878119529790782167251374629042554037108131920261513418203356734364897966259765920668495180844195030661726559611965394575058186125265990534716142241415309237515856443268366814145373765413738496245589347602316766221302012509836658153545617142709489584895529238008852329799016997814973257751865635066888266292422276823060947507001928944225024765397842029473412205135778362438726603623716034371397642105153259182091730186494361311870830044900651110288996787142263378851431272919967335161726415298836197710285538530202850669980869075542104952180472542784613046856830840810402834788946985725329526471066832284187589447688006122021887095079964737268367704485185580365238373863338425496111056124757809097910820462808567610384167929804877437828292011925569291367426682100018680926279409600636838540416187164772992782051152194337708763590971516187615050395745602892101832397642025544106898743754122920722270568871266389882660098377110832517275115860243652093818533303601618776957999595022224333310973354016309860424922008599013732177288867485352491760832507974059828428231014483892077416455330084782460715523415423892515286447415109571139463284310462174513374420511428230500690766788223574662986883884823538874576807454059328605873602083036099624244131544214335846234648101863992045546982197076334423147090728741426832043049861529935161368874238145547178357665780694082365273440858431814025775470438476690665062568139980161688416048575198001989072149500811755296361712396641631587905682963274722302160721246487348129028426759562952951075404500075094855826494354479702495553233643942835319362818937235925992294012448123466048155273879743130190053581838050935640453539778129957957819619003964723569258645189841140988071969893793072826485749245373728250391982682346989902282799464360596916283469620562568660343829801778968234661247750332071360856597559804443440263872136662380468527845260906754249822274979325062691738318093120241261522282560272234334770517298165938149748465224258994950636319429869004181600307760228098022333612275544613324917457635931685434928289527293054215969402222130225365766001649504697126868409386520004889185795573659010987132198264711462564001065107216635298112699057086200628368435007344077455079413539062432682372447546697265134331875940081157763589472363983640173793878406572885656984365875292076859094040939741870873365348938246970748431788982079855691016361026774421263292927432944296371003844599132915596162626934088907159932160785362845833381539911385040646583738361845090522664668010946869963155505674921028196632729904934872936032266751062699792845437290500401079164732373262467218327272642153405135213753885180822476502695522386957983401811827384166027286957920107596233578352275853113997957494659663151941766720837907778918190097141196128920717935777308519857956185503498535738424695749243807250785615088138836212251709187630235722115950342815364444700750246636490230974222236177282172819798447482179071380330693775901384869185290017452606444485152439708652187332613821101755065453786589003331635251921315079337098819097082092065441162656456494916377157255530640417629511764021635913637433362794742035854304320591281526909335788446407046838302694231294709946795379443644197827840005078312910647543628143340975888223555280399490327409062126203082991473252934615204052411505093378363612956625917396493110436219757803070123291849603543533476506438140154277884471672710827524195744380999496058983482375997273978371321818270768335531610988346019109938949527322811610312497140736232991226471149039957284721468273940768822571094095094820407426913645507819450686345715219561331644062886084606544480977454762934168384201983647695904290438048329473319445914718981906803290365306118869062501009255570279401087862473800915003729036912517987587753643815271049646519189762590576848443897966050302417577461433592177428904467965039854342369935327195117806437285799471027056824512414352972745843506195755289082999260170054892488203278677088245882968373532402827675282126745954486339108866817352821672376791152053127553810544727546604034980074454491850007591623433443043189860029401079850796760594076446131030179016156028801788697755840440747879550915339010723924926631832305138430574072354279851598526838613817796078545170649741843628892930464675383824115630736321167734604930377707798943455418776549090363544738818947598922785001944343157585363501277264086062506808137826447575317616682533211863240794561668502399421214353163006928521678201629521993356457635811392082789294283723973183099539856006435133869838570682177551823224423221437426983123955039519543157940331739873992959292326609148285609222629170193385943956345579087526665648554704079124665284526567057283296196966603502245337364947544309912444890362158050952905326829230269582227474086331510274849279729198894449762888570944531972811470313706077797616196378521268962378516099658965216231575858024445911676957924093814601349221711550730053674631718795093368052488007469253316584441574682790415537902060017921028649474367928789508094103110545632272975406622139560877643650207083155570331354242263234662755089950417117226983813626827726300381860799729659459162186347472468946513467942436639379925963544657826101259320595811409001031651491806695317095241845336666605147332352031194896928415519563314363077927396266455504311911767841349649304101094317319206250075306893765380588449568339431336606116278901303787009662827408111315501616437707864229945096561340240264887702864974217000539222624891737861392892478093566262547110749530103552109193277850136796640529727152068491416048880823409115227348115855024461048557047785515149257695308538123663691197579655891113959992244565158060643801132357067716528425678838023227546732745408992019189228091226813426524899814962244388684390073561775507936496243398498416683039186537595323970682323394048706278141976445869457340588165374187486767214376347939045919397929473525250021950491567224415896834938416094659298388233716808425033186327829588113168353255207656615073966115297297448178832688882346483180743080001017551191323225492060078196332236054864432370414208025215952550852541643936111464413777698673602108071119421823338464487294904048625172345258984927643963066666444069213792023011859217990162646635811778266032687178033350771519978384480377701288071535987676131579211872292924171313602989798968559345586696529931835920050741085649032132847189919546225059112096009228206069590884889735538978344282072197795641149632257726440357543973320424664873777052549442749894467581540094839986225724268321257071006809949901930437298663447047914516131339327700853529581133120703586641186216531292456894217130437783556210243778875203620735911766441920075019499150935449835693648808141629885546920592828853855629080035055421985356492779386650559690753907181729535484496077940254799633235192796701048277850669070237882733016678748692497105865626673910841583874496817926374133056733993901285174845255940759700923949687365149422211482616471406042033354490981345378395682172706011118328893907283978042496211656539242187289709396002109707408175270518648715953152069126828110351917400663032846167599171585408782176959884216954755158489930296514963975511340834718304808071817766027494077929709869556460713854827885744325875587519857879423605004046581301377524394569876985833363409457565216933098156621151315212803561844570803663464378189477288957504322906120074894888967088699134399505865987956661463732881583960041034903867538044338091997831686943568690636425125973845287581907032631323541232802429333219170229148439804061513482641967658858955918957501980851945834525676150195806492622132895366986155616717261515694536182726322156163579626771686091892726931743335313413556800430978268135702095367465010703826103202722940575579429926124811230084614796405323640480288113361754496173142151385554992016262457709555212456049121492225763261532584826023169431374631783201941042526407250769528590179518834886934717960619098175514832559143002711157503925784657438624422276723786649365376839648857993447753521630859801198038649932140583263817859529503180384574358961081292050679305967855476150505979073529209571301219164615494449319660127332135929204304130388771135901107973371761230905988857137983371878720830704051086565162134541549882846876166778104498935516664505734246483433677190047831737919953908133170136958163904661554070921744562430407783398460427082855632445080640670126409959759572047206158489478256346422878957096748399036374403180213371742717649907997308343563508945707197739114560772683411890969452345889206630287617866316478796879327502339709053743069595871682256873620786503939652743199606570978317675861399679544320612783444353977093765905511724462581798897498646077621510085115239587296661538283374587344452481915138628290953086795848215348986615284552434458734292745996451203686083934408488281539692484594740231835280578905381725447938032857422563152452081075735957388556002985226417473033783166414367655579822200199015803715838366594218111308071946529207605107418072505695376122471550793988520154565789628035356890873148802408760552561672137870523074290481500267273859984222322924613291058962663012115339831634932566741794739639274870129831611977626181423872081169859057534338740356988089225964830397494178071608674030748652100668388085559723765301071145534825390345526888758932457608335273452303423961502974445889976506679195955515750485847582541253452355838689116097315372395465639770371281669045520196037027337666302882995757174527212092983206803035558092345950429987386302435972764590334325728984290750053420872447772255822486509801599177072331067943562016305103961001656023235897960525809992833132150399981528923941361592268838938162012582499191880902239103346612193459063263974383576165426525670934263066911857306848539373612756611185162521319239335436156832461007803229379480268222813431644354233351671442578711249104418018355121702088744848706464062313778089147958987638759925301982406925887289658588047435384688542141950325140152934205035284751104473950680943400309936648496321030335782230571364906790277481958765795800263633718293069286035467585526338287106018430348620963790495885191490935336276620854743044565289093959066157613572011851693499330448159275970266896068771738194579856155825293182518586086648471854409323377224960913582674260385105419073211068688663110724002538879775443890452520758173750081220191190907156822232551506864094605671046350895256011342405605911016679818239715158314883683884512256762829685042798308807321481193484696210366954149950354101216652344810412237369147915815382309493772335210215253198346337598917767613612453480132450896400798707331480833428803217965115162747820231939773649887713389640157437595936631207899506604672330973982357629309641978334620877967101878951950070066260520953819512510206100709963103062831927895159137682784129390918938577513311832565939017472133231120254514403598041507571256918711350546903667474555343143280869895432064117734832085592100594654363587924305606387005235078853949216135121860016609150785273885279293386539206719044235605168247564797060229306125157413852001360565710723283358828737699495011007471809469987640455809613737036342324466511478297255577037899278226743768072601226015921196058861026540173443579112167313597965264568794334123836524495492808015001986702866825799310890056514341480272233156594738564012975244362628523841434393641268207716935755941121825222135963682833293344826951691453256607423692463263662688457276655039984053449879379366732454136245767268491367873510470206507144131725669793992641962258308740751555491967996477266035158804446337184288666152883211982473716724326975464983988840309714737287534830636589309431170492457704549750431562625919751602532823592076280698384496053624576656979593592165719286981605416810048630459513458289767822552762658162551951183858697277809716470592513347995256429643737645847868298732337804759404776581336029569314231580404619374762670944320956236072884101366814028663047438152170571392624085841943145641110189047731351224375425717564008342362368478306168334200403894745643222642246797927838713519495189088333819119847110387931078111340396918254990546072722627891088188542017478245652465767484782502870676197001311098118740953645352591339910871553260591975944648268750622887109783859457629187890926047373260825121365574542272028639822162968852861941303387845119989662080693222020371750543614808225666419602642693669220589261426701350668094839738122244882107109668630549481155105300884144585738168032793346007502976149395009244684810574305601040782450590745390124267375686795576732245232050034906642472009505434642252477249525854067820916547312354183890776479550953117932463137257609927983366604965694780326939429241986746641639191519051661676941270607491017200500643787061697525224587929977737890843078623157091405125381422718006510748618820720526209436930265221100558361997095699483756874647872969575761899421765838546848953597820319411858268134544111616306525249829713880555044314469564664076945350043532173581866047600687338503975685060679769791189285278603774255887761428715872801198019507755022492642035204447379746910896268684978841484431457270477300589948094041029668177872705325870883349136447554902253488304131494762993558440004200903923470423580288693736758615071432778576042858792993459819836116250030797283767229487323758070204390240407406711577973358100579522550625928695818504725220053458873330770788859477139090059094270033983621287515676842597223458294331089502477597976490269773759782863389951692810999496868645913082877791818752550508740494940219810100145430912271270012433863683305286117550390069095634996668315154643778936534460605079936402272192953283497287129839845201256518951168178044301433909271947638757489369508536502589086227256022560882370668860621242984744688925020679958898284541523577169751400737087218729233002466114510174096914162973114953033928509196173811874510908513655248152845873590788344070604065198689897476291178946138275719162366451910947196720652251210132909646730141676308409427396505511303675107210931182548445070744642926237823369231495050960330620990851460668576144101049180199648774663327908034369878375777935598179150624470140081051979638607991917546683663596207206139286403443869872172548359001872655429112364758500109772479559235583357562058834669232097497099430025718479445868802285321929834817724984066214381128484808653329902384333321364080917487059539327487090206119690366166100664389139535218954741122828041584406938770121933741953344084082880199183604977707988742152897021723136459027478981831111472076169840626200470993244375770419901909035493708989466164460578123951402298861633223866179406085931262344494804257183491047705645364366272263541477917721880151381157937671297358686531382929202719734422555436127975788007813185684475550654745784065820430257647898783330548241214434274745454529528930957097274381150566800429736696232237974066627102276054332564663836947461179769810267072331890443695722060727463692089444792216006986159100006313494834319033681939244994138113029481413583626685856181919443448454262904612886682004409039549874550852450136587179373512171410257895249907468792670565023271618799859229908733762892366897300993301223866296285956954422713553733464036712730724786722994038543504063252645255360168657190405860986684776168968162744546388914504689021487182132983577242724922543224034880035059414583840095052591883759827658650343895739591479425945932479965631816194598208478488529911768954924387824816795082370654427166238627148867139970802311108391964400409348660171886598976525784624452772317668985801483292647879741279391159664372599555050654940514231635493011781567254841750378964126083984294501162004472260809799124121738115380529610927056179206155934835495851643099676311553875899657905579393858944537953788174334015005769030027844320900704026941773299161494289068234987265809877875837481075913721936205653779041239452242928270703542125093367009046455102064944997488941012456578005058465916075293747249028677273026473602482372707378645677333838527310303092103094907335964023497331206647823356858187157007726205866102258158909642074995360194874961536807925465252912566957405951530319674558609157644364183052556097215659379798471415182466610104516032480795804054308646341226807873398947954580385682290042185410202762757051152716261327651641003582259461592469877015247894501740182837184532100057676669536604200752883192201296626433339119858087128184085546413345007551273090283306851937806451985311389079570556927392108667964235317949036845473873430714960666769258077575825972528749284154382841789624460760925033039968473928567637626843347671002309804884763878596575682162434436999808448289543884434120080073645176686682642628118117390466672902148906757794959183226835113309972062366211313500687409118065049593556833265255083293093631062955057823130112069177218275884494169544911981943493708127979334122482694347650471230908435954776725870904433652858152383285699033986751335833211365489149460868769586575930367933093803629424079422242657890450524115127165033549026338270592088341379253186213167277500894093233688046244853109679972256091445686051378081842840029019363518312618863927497879366847900987098235225087950597121776969794730818202423958624516782854484510331282165933641993589894685100955383206192544490503600936089173506293251347697129181890132366317172692920725020238070762313382340055503732035301225404840500660158703743752234584016280846126022294883621340131539456944617194653481105192114394181687646813193181614010349914473993523834910029812064723455991249772233012780994196990457235673777771678694293853042647642954050568750158224998575317467262264600836026090816632234185202552593063192569296916000560493395226635286865907301898711104052571268374774512661219436911260848843104656313979685494339869024930280340149896114875950950792069456537023020146065872316458729245863307164743613882717049897762498551721782207844127908802728841872686539873061187575728213905878504424968488555198922413710933954113810129411561251429371192574447931622097668259368678797134109574673208732089881740709073940298804210120806427546060087720770884298360088538034916675929021978181879461387794442363908054729515301570031916537276774633840823238122329532862664013693412854176059875837785936476163944883514925058039227909946872555189853547118591795816518082441629643324825025313970664786760396811654061068688359051952047529284563632341506790463103685599352811046885821216508160107356161267533923814787197822923233856709372411464977174029960971497563125330350675816063590983162038739022908282424651144591351586447692715233372364572036161952794484510590559873054551485506358701841618147107866964918534656681488229573250996470463995915520589535172063530952677851308828809600570227944846699480265973291332481883982040177105649590068684004058207674822026930259821011372348999380452856743595736926732125235882304726575972011900212070890585236426406434888457685399234154104525713399982190711271613457072425328962008024698310076578745382229192006838677733890950102075220745661675419776721036374023330573410780581659379428022811046238038999515631518974104669213296436617931315756002457780686464445657867914714777548786452042436987817550414343546244895853078012384928040196377334682197350860838793193672555962962157952973202641182239569536787784942182019425842598384105543460862659180843149170318537262720604763415372511822491136570748744614982039624056859077542777885146079184014617748809063102998056325129391024450514919223676605694010725476166512735011094219267560114210480243046429444601067311097436325160215048608556475912341612737470427735190081023774495817519802392909504244273932059539457150233093725431912297093953671441759135597893868050424918710484766716349696400449055122470495844427989309101776719847485983260487004858301513523095065054088057372395650604564941767338939946318307363173829426248685375271140685706809701724726500589543537044372285596567198181464926523588826339600031759429906109201554196260531238884462913697493352908468855979691064146667561970752113568002449045630478404055124517232699287574591080236055876146763177576353581553720149090225570551555738908686899538156406008205529467764202917037908771882921416531447206626392367515941523337936766318350100630221550129832555239967887647530894481079126940169918254123993643095015298874554946715149380828644079547462414401649947119387262954588541871962705732447770521982593492266292347531657302598716770831170362845754516302044109312156695894434335607095843915287648811411236256455792426850881815648007487614038383996195289542748401716373520916088903103090374765949004715383748396179990909267356404518317893201197857866243931031753936937504092179090793351607699653946461414836030983240590700564175679328420985977632650992713312385158172991767102876073275050957617635536511072092838766083458565705402045922147841322010430490505524807680538783061610939341522088851473983667487613077409476272805907929892519885352469922720246482484370745506730334846133578679533970820803605764555432491617784029218513075608889540749753451645678395694944277993110210980896112247550682049981259466569393479424211214983425819071757979216968057490116036680865611226717140881522904437953129592134493623300251973408049602344308992944337401228729929403562330448481110535429390342958412734853041459100075426523758319136137768891250582636790408465312519192215541923675514580313926961809124992224249681466436629793648260802340557433665893418807686312773470224211731925147379809419926212405788500003401706330780916461834990879325687024114039392187890560339103874030498812966130361442255488007738954889542942405556440214107726936783675803559735018326757580400461745248422273875039581931649610672139547188295171601006602217225696451302046934405063205484531749154634698390188690936884887345718932409511470244006013193326538430241774521611687751911095811510853479900767796620070344302935692147193394671631879584953264955670847361993744024345644864884303294733719955948581176341984009597475361715335413202754166512006135071077255278166592176035189134770814578388216929364424545103517586527042547624188158497715466772852959505750224012648182101833456250874664182301506084948412510778337189195021255390880206339458389089760525469059402577049244326828867091933329553668503083268876756801715480217761777803872232930781002642449932592926228477318740565563642749386760564228186647702972022395040316443745890118929410439463421574410417579145649727453427578573128334891750666428356388410243200165198736707745364547557450767117318386567679441256859593609902595573821098411845766048776859052301644852275337458346734694075803225968890280961930611814103299355354911854090882643643748876547281196531170787337277534825038805132567085912388721544851834929594840983393385606082759164555899762183034196065958949776308898045583045845313960049044223358907290685461226449667868281294628139949495549566996344317140635584689165540092104873974689808088851726512367210044813910747435225599819746042024966367665250038403163345520006522658131924689976329695428142148353354862619704087788500422468097725575102132213776291657113640289265376311186597158999670479841431501870876039472135403162654075658177978819618560527781013244706824090610837953157740821578722524068070528130678830051623238615040477506335013453725439166032828875825378461022106124043732053574854141834356232443781856566156029933725879060450679757837832083768537624555873673585230584995468621735190881742509851225196651347256295466547303184240871607659132041629673781140771779048763514538441876068856252084487372207089268023625211048138731271512209777167468067270213043862104779542783672022055961723639938281331287115506095201285734978105060624000708678571728602317978877387554807576044818831332027790215175182321714816421970943685091429867146119963419149437902349265006505672135856425577587735722324526707584998762754213798614408961658888546290216276921411650235090985830128145913451685602912539552931456954230635074659699975466580917766313673745877293298540951093819331419447458420088412546384011533598496719002740060170725983946299023819401961999459987758958065507173259139615026010944830660055565776646233210002249073688445876063146985393684519648670832942780097800949076776640028163196176722392519887042203915518354400408626402350041467943014155370911501696816917452289622711615301806693111127828545826770542244130488730620437791247096133174613917007797615202666306359968401281010556604212188893401977241869572450127910109622727983569855268448000432695100881774686721797581650198754718434790492321979815567607477696198373093748800194269334426528522828906373360768749725615913256092891614049871265425147660029553649122079093497441687861375032522242424733532070302717010997928956709731092939126888946884730277429941963259722953087953382498603662367819591231370519561351422995875348548725110211016985680234915548610863287211723720246142664379089441471564270360441470696253254935343724314879502866512982009946991312098028859477681558414455582099747738072733137695516776649382201811611698660286588785009910779775133040828938683514896525853822573958474426773380170792047709053866055918248102100218187112022793247833410371948344093749976461447769129072553169296096815884489301598333158564523438434098279146670376139952000664134986835257546696283301841035139995586351182516683871608784232062339184749282769026277910014957405837668028655301890837592773013035688698375740257823730438928355611702414272592975284398760164186020840281274973571434861341045197737344009153773522575014799626790761978101762323817686329068044790169278548225189277969308675784390715245319050558214054105411591981767865181698532639983485564558795004637243852033981682846974205116848903973069256986214542209912232972386353278528554663435143889531041724902437671005541534252819942808554590349521102667831937535758200181941010331107339011045865509549513151796958768494000949140727394302465707397301784657458601325059266329439675891414249472104288553303238876816939002791957733264174967265416975957198393287855329843026852603614357412040038876992576307947582702076445416323310387776126915438589247187374491032689332633984044467871907103441690985817135683630683000183517653922140134233004632539197196885409480263173149127252376900445065600689995016048950842595072819620392740608585405563269848244721844910571346214656010227671146331485043271980303826670081269854024264914915366706379282724167845925802612310544719123515774472537191418128406464408624631325484661894357521666996928611214086240146841221514808843677547909946833518931023370328279506094092238277433777596288598693055945222537908099357638251305794203976737213913135757887570810536313264888269891921561196445318228830858084807879050674931344721025313074500215587184792318333379026288068234974582568244118995780490563574000136136218140362336221059667091194369646793919728653766454260703170625781868329720150415513320751859178514516006714675811501923847026343652833504603472085133500823611130770080230824753712378614453773349618967872545852271845337087482677197249230435635442002224398793019062548428976268967215608306852103337240293145374116556294186969580945709747928824145328264320522008403963388218334634287143878801658552290783861104351509277585347706113236758262543336567841035525768634095908885496014962530314400230858173039477548414964843362409828225136561971602911417522065949806164776741216699736846240043966330019937945904231918273982487283264170528438722222279661274766962251295385140468318408497997096019445815611147785312083659626973107918746919870575825637662286399239103386354678916703251860768218013640019819199464109280107672782380863015716257500787178236115833358773481526159813865681966007297274781903799847472810806916776203740362404025897648878528186134590015377262987563914968791345078661088425091294738042434832324297079598257737812608082728690173552192101451681047281944052635745003422025269728190847672698101175177580771472869073369332882390477011420579730914716993316887432636567887528681121344815075000383794014003183190234352643124049311349190293673159206531454131538810378185144006075748290560747451403803211137370504411948629798282033473000940342478554723966513051005693099383460564928780763559108806454687905945449657188975301618688741270854540978655272711894795193686967298692221621641823277503315259031744772751074283163762036447728914297078683220365565479386837972407842651428800496723796185794242717151161249272609845589796080744406716307605148511512357885735880720868247861048045953324597251029858418381192238353673980928534341051321318054116061820862528025141992070605656393881219784729423732022069453020348514263262661889662484250776843544368861977852883957006065896983590448374610004738763044960520967036039489062918109953049162069070002637647696241096731137473567371990021819640974086518201525757273737979769616115122571734207548397862662959593247692599181179332723499174014638080177464510443087320184442529997969192645049405974047946087872344360444234398196605588166914035745946143142401077084761200919845183810131937865656481155386242849795479520774522885112250300538339066849873772805775532426820811305182838734820665294306167009847610492287312985368236876813520463922303367674906640814149409815736644731704145418407946534472025071037784273396461792054508242272278677796598380924845855527111796193226762994074787177800098436875548822217707677714385587366513565883134674019139481791121942360937241148016580881589463781703321157259161919569150384268558485530230972566349642873919024387260348555160148678637041279784952546474953078609747930101201149831052245642018386016184440889389541590571596520923317169722941351407186721562423321720300939171819136680451081226356398258530291095622576749871385568835031304682122177052571583162181836040072978448118672638571581924323000300490239205531571997577110442193375980058692932395142025025737370067370798340911295856007265300347606368309933429411476564398448585808968656690764450526106700139938530043414346289255045756311455661980745915570008594736550188312336202218990442239729686260738967324290949951769118365513824416950164589835467443480434752148588497633140388309580695042848101987353301576194117266637798304546099433020789652167478095219198469865009177578795878404094865041817226525872000531472004295180173430367944026407118716830303237113893116396658286382786730789359295511276896882150856205815241929862051120573815617333855383496503276562136304666780117890792527713457020151206258422869704524658494579688068882742159977816362970245179674854962615996435238187843041515730479984913941507122902568997689887211480350627581834404137891979322280333142453239293237671171274529980194686549430615902399976606362373879156200269533060952256772222174193381709527387979162237888455334823648915095224792807243301034068196317370518650783808099708070410516487055551159063833601279836527708346875753122512833847061022380360540856912753651079754788386526596063818924818271005512914344837980046458041778636839474199502203715048934866427627873503115867647990940084060454333689395610240339728358127614673626519809762638534094005553542582346703687710498767451928621014509619464012573916437143061672887424184591819982458624619284562463700004653166348756748702799791082649500161727872591099729290567939333862587075136982286399599711735768153823885237629127907457198260964437455801436354128866990714723068974664783660584527015569451396108875717967593694004440059773326859141735879313012366070514926142529180263603107210215032167819804840407220011621591189575220277819824743386074956525449431568080598283212766550435365118140340541452905341518524199236763439481472471281614046871315583186699167355912717846255100990346614156277020117920912576100854666468050972826448842656194871864992060739778133904614417653486113157614467486670606826407477880535836619422199216152772771096263572370791098436455142448046540305495758437771978357496809380621812491605712724205720298227258606037315762049863929144823752896879698113541388922054347126089685532966367662401854484238442573860288887376974814570142457148119041356808776043578723233583455859897492112230410341123749677154201574486723772601742874060136836371981964069277058228136699697517385937761664983713614648914646051526483323295307306665321551780221963841850294992931607903824585855153802246696937716104950792435786798532719141576870705329448944964093814590989623660626403195379073873921634542199278864394421145365522615420825911021203052580570857271086455843745336875796710694379464675297318200932000699034214997976123591928893396351316671403091610752489549352506381520890158601708220767676205563776498886787134200597059391575793162706678012390511347504533328172059396306139401069877857425745227916931228043181162029098999826586608638190705834730065651091612997157086982664523642248206590526579227987098214859150734159383380137264404269966312710359363278208223684623167297244282764524010918814596699045817882778913990961854870833689734895698926645085180704246653540848510867945481370192550543137390874022488737375647226234975390291578939453367867103425226084797057592260480288242337235057776862850989119468314967365644201006920110776053646901937491275287650492205601375278582264097228264215440637712692616685842891795724347142513201741055275849493925535954282193112822826597099843155880097935722933327284922788073981280837744506376526607753075913953215685922419182872101596505545267053148196067907158493242147614620548151928714932302977645171741532094609966356489540232344595055817227298294923464551073314002187314451337916813644028709547280927381213777531859159700850827250921651606689907849239436873982421052962390560745004221653434220594262254430414664752500558770947403825041817469384514012546900036436962119341279031994111408470093339615080670190543607227637393339521975814058914008949377778183830728614117291579078681874396777763396857162301960087100757729302119638517374607225167722295248100095600446770563306121272297993560254649595840920813229254561684151547876892221420818815016134006401741566726888029828242872009919960027835269238392770367728937589837220837923723016110227351299766090229189958902929778965198208950171546385598518136832698044466769696950383668981699935417909991425983438934259610983468717809710327148256127440663918126575374439183277276496043091853656296684949542234756073584771262856612431046400445493848039303039304207637900128207478321161355676425334524401750335845445243308182517394187844002864418260790082340827406752767878150536741871961200539911598453478776499801833692290674657943156798277739500460473820887095260219294189033247278348084669199026487849813955421138998852737283985991652584374886615692190636833566115140642483687197150781973588905257558689671286465368700996297252933953591152376581792782824803829460465844680872208128568520515103651077817936985249334274260979703549620021945221988655056620395767810526849771108993273232396269739363385357713687187111282215147002655422675696261938831448887433711324206465845605803078424574034162923771396761564160750307218579701009983430936299510195299043414785042123388707280433505515229380850533833024457267986472055399338496128108935547584685925237247820802412905801121412318343073304581856870300859221023394495467908609653028415694281301853716100861776056930847726297447543838729802100066569731097314461412647508402610534449863505269082267538099253288238670881998303682217926173858290834799883239636486827253358003379586987281566796126657180475215501987195320669093615581256412923089635905316859877436083100955199498223485294555236881919237870424329128832588635385273477757817870735354353450281926209708431669624401066919263912050508237718285823015740224693280939774222765737507093938516045202674546507031871247165629325296498284558953695972067421066498164957381873625058176645322932190198850934942870217431189012274233687538701709890945700206456649025497784000040432325071006096989560307392642788725238622864605069844340465886388260205671884314998308462827622039119894895721683950086857648493307365167569791811241681026108869244190580525222882967723061328145313148854160386145850740780444323522617621096478759325507288107632963706368904801071541648557130304527231734607530608634984726086695298403698150012275770909643599335333209894703830113921260914432815888567143854163717160957079982769180386325056584815759188420199571705035204974888167394477893294134005634713320262584531887671690703880976019297846510846846154003774898476190567961398692102176573973071527739233555706458302348967555305969824505224138378818795177639224734006136820985295199739990204260620234008866638393216048501007395456335745267701535126521684524166157175931141427878382359299750315214278979961971692200287984321213248578465728330962524757100640299417594875686420470989363436323599015033028901937518444610740753937962905539552704371227335106203316205163153373902656709011035734410782431348858703424114221614713060787812130796938575210749239970739361854066021228307087738392181306231108559645114364011651980656665210025008144205384524711392598841300913921995793475204234288900915315916469530122924311662072595334301646123427010908227615545923291883227687332039634016314877448021308591931541443220101217763958230747930065205489045927911410249396869339925052851261644005314723934532708547968028317337736627640844484129889960370973329475208714444913027719298809509269852997968446140376528215034512602907515457283555192217704485764220218090990905955680921443579988497433162979361319958437643910469983053088455147362385708479241303797528202813511998944328446215116175914460077369270416075946590988405137356891458231824438291660824868829471875093894510633499375005097040340415166856812291066626730182982742469265348370971209798441050918037814073727000208144974523786881964458288597822805405239735062605846068753621810573087170673532193829088656132829958498421748388391443592482563603189771096890531124117442271383977417554443377564632103061972831160808736512036099524799344478711791723295814436835148318351395545718246598657083428084238738280608138997230568166799690167174386756519944011006993732901804287497375244535595522616952343589149753438325984500526740196590216591176501437812912936846774621255298302746708976407350124951821086806239322520854099625057248340648052941151975105534082733633083816795661416409228031212608526161846883841645969095231072187902355390877784556330330333094444312260675685312689327794894185030805898770859855630467515563933354508764692199632498366029063204093833564665135188250988518584322311694470094585976062639382458565837512521676418035976318382322304193997272936359801411577985567735999732108178579733880248799882805240788648169374978922522175184719009776490560322360950066958284680102750693388532662682045536075911242907467138025611488943237851719743546353079138986381369867820087730714349373839824259075045443339337072242932178956661478284285581408661061382436343733896192510586377049513784708355539464013181328115859310705970026371272751672496699425393639341809486722575001845677115453125501090934158317216662306009580725946734812036158885910849474135900641136568575731371081545618715408399085455643629818732863179579377914548208971556656479043178871863860193877219849122117849128432301428720194136538147104486627308003974989116753496807324299934839762668239881734651635685554827728932176514536013624122762398837455207091735534071530732968698078295982591337069762693032142424649762038310082220960418072799315492009738244444721910897035882723321755431453929129711667573921426859707549598559392433210332881571252449552951671367737772657463533629949540600111730806894174177178775438139246261336784255838423063556197761592872340906487329819765109199354846364216426424019431247969921074712135291563783009215049130243536923352590658408366519642391194578853044858542569046658490005209765296379556502647950981210189818816534275863805179487787316200375625995180032348782186260591502898443427019342344744777152318477921491610979698279058342836153510297279473934649712474946078328653551251721002195342103906209738169197689012550127290726125821615309685088889186879909642902012159922989600585892300746139013356269883303942524909865779840073414948647891704441905397449747383430483981666895620493115862006588539484664119495153033404240876474050960141875422708018664952547917018592637900481651626747907665930517586449983574757588044608720603880320792776980838243636004880886446639711633618829790616180490286270268099826236928558346995218935727141322000909933803534931044466281775390117276192195541920518815787081005630731887512561158332375098316323785962475584747579340939247830710294714340639229667706073357386883315004276124064491904010327142685090008514327388604408798746322324421757089154936975168409668682815116374166280629802878748858315617425358172459754722294500295246621035934218199374184174104267548113775551417652886622785260179168096431351598250267879016868308356524073284558903278579444747778011336453993521904525358657603372422791640996765891706175990690764927952576535182317693380863678097370505075957269058319865336655526235064972798257784154957041823040448109429582082096370465817963094299078313064573209130912593813658748835972446002203659825577726752245073515089987721583594426793272616815807719617022849198237198271478307278254527015272079009053685730991680333520063789991355589938147333036172341221193920438882672566791293644350406328576677393280022117232942832911618975164004042513165643308894943136539398360928577316129963510739198306088444455800669128213052711482641502069337296045989525372977044163048788337832022994286902477456685936431008095665994554289557222294529757096451056706151534706859128950709075224756045276526082035463886869466061296750213655627399750589399821654390950520222503647536954176219295704431713480757966592424254240205824668991283770996303854456596025464901533291955777923168615239603101824593434037972723995723419445735793439457431735422859211471867874566927187457889047816950436121662154856412311185763723826619911145535061679730583884925142451232631753235113390822857401583976501093874057335669448541812290878699682669023478138619093925457662603464250895484164748365851213292767645400028020321962687321107384475935876055016902689021598758504454346167892336592378747634166060304952607810864166595525378109377464994517090445079111664600927439921371082006650258377725030546784602696941358334850883465395199184022405239701224664410880394695465978432701554423557319400886256746205872205556878274636860738890439959809558154920216860650309235695024225711646206383303738774763420944514299818091327739011549870751829665781325217260370947640161174926406115398089735115545292038770305384483974208295698196801508993063459647242834548180454402698543644476281846072187285784544355648532222959034554055117624727108393138568519632841612836770394775852057741502941066235133464553331517726911762966710753679320160333079488443689037045205997640670439632392424090152559330965795656717964546081466168770041968412208371986611068678539144851114573663202854950708516644220989774226586990244053695824696468204761618982481826831117051468122668075755479951035404459904749708175423784099781970951467849395466675424950687054023221704053777135330371731143882492397490422966199082636612910881303239691169882174282845222042466759101655775256309562863314047660002769618300274564438715951509532124803123766351979775540212387078205499149141171873062751090599249677276241117653550333576219788307918964302201727359933974814779255830035915955351473918329930085379288953101595459185790062364816784956552801832386154926334868578541200428128308734391632478768441924952259779779483243070384316330215670060753017346833127552786343607787435167707437277232156427242173449932661029747884156162295543538516275538997005832905934745120498759288985751158870220734420668807998202395105950614028031243021576161735827763485996541740103103081837596159043900874990394638860103667460233414105622976141791540391506999386720309417494228084345594263482614882025321514659584867800962720590833903424460926630673928131171074439302938139040264167441275044649511874189506165427721699768900782612523924428809033363898746055457182462593323761981720818516694215531597995186396853237182242292388911834313320649343231261458538425243998794415211869504287376493535879230209684257696719353405356202098471322664146937128898430247084937130470939621662093698088487281046851099377455263258569162621084007468575556302797055433361342307293148722408157489286139548169676716757785093415826297531206286846534758020451814832667038447709164647164658108945477686270571981466909495877223909019683984290073049253649686512622773086333262683367239423872541476061764520296489825552348529747716826692769973852017119660944592886327804165710291930138249508102371845664579141763144333082897345620631493954463047790966240081160592449277898929480162405754919472793780365777304452026727342565650706460586817360518005421811019417535882221201014894882995993613192147268613610222783943194508112546948502545146151786701127826695563717373850749987645964884509113787659100844491093844589116381716751713617015579329470131931682742336137632862481749488164296192392091278300868097687326074782060344183731328540051876579530457720557852115291083194771786943785340251161442703893482813342672422609497467955901002545095533987211179126991083676560549813056707557682760808649903529659631435527307058232255440935030377047599163433682003529931908214950805012279295262670078214871335001371855431343113739481182731131406595196255389687151008434179455314542308854007019799947078016950910524193693441165358872099486534675167052300493016946956469171156497010727932002647901080578585037136551451985334149935972466505925872384033145571869076471417476569286225124914636336103963955517611798590479586578374719874090649970453603147897748918098912873178990400737935586865459926670542775597248034881622910864800976560194145843296135162322167511246729882882755899075365839008330717742853736394289246419438909620734364692360350800830729697485968179463096134755123938046977502036309131750914953978628346236547616219803101724139575444924472250778084819633844918206288561435175407768997873331777730210957667636272310046322014784042284697457053908036199492306249231448796774282973004338389184047438514698937818177065716544201624542251620228793327116532624168965272729052582902540554264065630942475531287312007844959828136165584159153465044607241089226912144058400675633339759942285706081138106452804320666137146757521412333035455591488791870986085070670800739316901055887765537408762229031918290641939399736104280585279610812549797158314236119733408244363030370687429315926972572376085358855114169778794290815651845186369395784930374964064084756985177327742392557412151059885640737350231633969509257972079899256148815870875833325869706732303429911424568450106426392925524301031586478434738697267812057053344389899443700428980233697279778029939269510271771388883028377517779194938530368693067352176835358909085789316144176318866486611770591827126899710236803944142463263625086198891827853918231537036720990411280623190662175781724245155655634203811081831139164437674729203447549452515233540377804554785825364552280076556526545904041912974427553964005441167743343290385879683062752493552290017736706084259296680591825670358133538344773400248329370021076453466409056344136034276659343959480377038965057129015439755581796282789566585239718805042333567101056120655326220190406154216322000564992532706847505459833868325443212899217865634380904755663303658868479534542350266331360821777770013459558354877062641116853279070682106725133313085328009100020724456996563060079523609196112888839037426547233952882260754961981105651533518989511550174634662983317738349865425565506058469308532043989987118945510864592582200953686609297393895582375746662699824675287925604213611042796627508943383722456408739497881129351036715998862432643024808842363178688035915976740118194450811849644462178432311969748856834505063776400947579271903474865723287122934865094007395766151571290022421118690699241544046323499586588748618796586643767923622670367746189669730903678938111591746411911791713595142222338115040127904803889002597002612844815508732581964949968008712392460451117673479570749656702794651135164387959746463660210120924864830386060291532612536259928993737125202291415361731844680724404513917211391192727463211457325698078974694875766692694692962857337638951662784399442708814131806381178491006738011087470457346274278431605265067476264477641071144167050833837646149705440126301284942293153777570373307547442967549458376881942057637393851932605974413050588161383630410268116891003877967482238215230123751892023726203489934089389995902941448626866398722124938699697192830251931178914755108493093600969088002823537732596165450365004206378762366237578950218856588239119657819038348927065352963279595029741784081764541254613993306847412056939769803185340151415301582166895305909808447071044809827838479350778637210098248211251381520352463400618730536644732564607643009605890392613624212354607047057548641133526494090724532581228719295001937816492334590562818847904485073986798788911531560286663972205074994919893129184704342235575261032547641293331763655890879492456895609684587396919385530936151266158914065991764205270484395567971347357820503156873600042268549067491356223967300867180125583282639202354759993327190534641933523698535295996860022169876362470855631017757814817086534646923864846593977767076550897990054501440361591174557013442173287012819675750332083192769241077342026097558451162963839459582417491904432363792774612489466538968145840502825448313430840409515000420743636192489293390834551617176299967654076928693167413820667018488361666255963501206795401272279335761589923547532686097953072081666500247517556041011939583957858870705520085815733893387066665487142685733512229863110069760860131940757452084219558287442534769697937243054323108580925096592172126578276000860099525994350430181534472038044884790671604140580124771974895039234744986753375744213549663149188826964301681246122122377973696195918151610950105380318839052537836264538389374642834679194125039456364489342201905821049003423201963990103317808382647027575801220580977580544856657967248802564420939922739341135056768438350841041443871890208684297262394594828300694142813517798355286129655168629383140267791693594803202582367776119932613732702791079160900511096509717469016641728089958490611985838917908764629879448710415552484447690514677211025092574436190741880894697561114346985873967496716444761560204768341403671361138471715155839054789751801299222441862890377338943222907218964497779598551541648849492349952781622844136408626606460955657731352489885799276317891698150386925815096704933162676904890537941069321287607466769253878042444378107438369472433465595453775422806484755227781890702063848473006770959462950719942465157387747274638767649364242460036834604885038713671733327761325966367987541322008147404372337802228836870178040164311740070733825214430752191290744634905597418198360656174442199541338601044459646867078981659268875496838842143083853691091957109727560534338241402944561770407252394097830766917905854157208418208906150946368750334480893965548473449417108811851394975602602110134103880074577234784729076371936125925628813986192111185613620894931581807789321495765041531303061849718531443065860772819870718050796785260541777190699869748176450750896585703469183118743287611751961455982235068159646267114985299338771464384508161004984963961262307810576766208646770618465326880831536371029037518839613924682997354522069344276781998652932014021893760205468321998170133753064494228792472208887549172490706237609160039336797747599302386751004132101967011558910869187773433449622405665120091848486699582945613963134752534006206291123911496729725565614445276603280389440894411367004585605889985144840960591131402709334502213348897114990125718299343430929144529148806459019761680407000331777584209162407402581341488912636403806216406329759575447143122511440639656295181206996853245196419408660647143207526716907671400941421455620692780641011679182110498243030985016456420186640659894627681653190777319845989376850779385616521725475860342475673381761024763980196718101156830291546049067125532196466813345048261150516214463440849747351089444065354904118942327776709111165444823203497690915080911751442845376704761968722798043855185068927070982379967982522460556297767418483383334785616196553005944945743021272275783698403443812376081618855175261417427638807701248634737248903098784574866574863801203186507800741127705160796907374716863377345143237596441415274269507870018418562740914215881696267944034528785006820583791276881356362247106822085732175724707566412725071256943957086502373668525866863660887635116311061029639723558564363535508701152102326890759907691519758802246645114335367477924068814561421904307566405131639473315721821901541895306810895187523007077143935196673514533323954393643227344765996721295005001561720725215922315454055762353108360946684079781805328548504777605680868474716065873690612376173236394472375654259973973343753393473712244324148806106747133402550200971882202003142326977117355545622923638827167529666612379077849294775798012254226366820455233413249269197896402335936112947881822621150292083175441886874844030852760394739667340478322653050212078272301735048885696223513746877475105561364278586398881540796832536819819422473050262006281258747246488910811134851901142989742309070614839960168045053820723507425684306814115533246036877037931554252838228119444247335785882568978970561982374273687837508181686119700012804125998575531092517320927545876719511350864200880445397669603177542706117028994632057185747160481421341669854298204932160337098131211128150738176482497952082708577944944406353742144023413216680970165337894245925894625838911621418633643691241168165928974990542772738705026355761849125995640171870297076014232398574560338568523437881248623119609443371787425076912712336048151134482536086203008474951444022006353539802135118531906570929217982795302383558201974361414590923832274770151354942402468713221799327619897240602737056231708059668518043437163869160669295834289877892871655009850036930017947913588138247652571721985418578030208320587836771358579735778163490679621335089094768690120925557492369481359327221517728389879997125276455761341941019126943806757756531637266451358558482935268065379924055494105123855997496142739514624756671043172253327914376054596424070964626919720420236556637855996536738682521587201979043453632955182992080180104193247519427305078721958954307878156826695239080343778182006908094090237770323264038407133674024836043227043272375099583720746787289840679063108908148807119534018578314817686372211143646209957066889206564271770394730043521014176919081097101949876314756679353736750707231030033077990249591917297702294395996211354294111490295511018915509304927432165763614070284087706779390287371333689221193906892244845550992633993878644561393937210742580014056191208846162271499251209826469994827567809906072161014993116902497367538752492705857916248481765172823191492742878853289407347858431100975463030112216975757699602740511975190206753801353742431312957343227720821871351553342305835754283618847066694161109169976264215422466800206454841675764521265177464475679023605940501944741894850853165721846769953415414352168023987790275086231618730146314664624293780907459148532539015596073323114875059029114386872103778028055042516061539163227594389360081388194780133567754135558869951970090995186189442224838755010274008374828869744102223342589674740711563695273916916569813256530563008851365573713989941612800653253905413615588997178629491726995781195681013917591659600894238427422397809622708533710134665213234799088165940795126194762371292530597315535090453620541410300627127661712618305590891229368114772547305774100947662997366754009872786199485954309500016653820240857088819892106292889528352298250236002613476093904519542750610038397895572938220523185444831503445852432050056523082353045729613047936434601701079906311237762295701242712465725792997588698731654171214920133088948979629098679522251495546227116895421017317957066514364362914650096208435474489099370183123319178446195042849687942836852797777748639764817375944554672772698457515261776267779279627724188085583305420146588729774731383537219914531030356644632932753468486589594062421409212046245642216653599161611866204745838349948144810308190578809489006942646012575853058166281232807131167381041674040619001364236174068115813522783783714454167230149138689193082035874278877834222636723104830566849739466113277016027815139707039469877115501901558676599027283751891267340596462164105545017909760933740690887765679113717703883688596425936741595872810339708208571478232878491268204591265334605262892596057874633189950424610554456860677463236266072682542999977451825580807551064549047755412935281759420480761762290757016978914152119353512436293701752107169460156743047384914208777704468326857052475542096216589951712485736861163242597654408513539325597445365375309809319243289670403920854581340396063384958931883287359757740773579125985128594233828074542102014490610623591784536000423481417677676072417820530307822822368944376235658141376752575652687236384204696730516131296024660248669667112859534832585353081181758484456852308579908497901422297680653184586556218173744125278397778772189613639884543162007378056506231503188869348939036144287167263228137910138980962999177493028990971397910771175289989499217785590676224538363895042463013241290510016854631834094857402403201409489619752614407581238365400000008611100108057422770619341440390185449526871456367130716479415274656398365240384595512710961018567656240686455312875260755740648650693879090168769189551072791954537097804007859756898665180163459092363392959536468764422479739811914968750167979936359802994980751774165719521581645392270154585089523665353749911561269145495807670325318432329342982491915474474293563822029173644871492747034247982245472803844327216407767842631662136565729149131741758872416081061575522476184199554394641877169260692902969895428197875511283095536478151582890395011848343676989971509596568755311802464995286684951319150778331862509333150416740598496359803651704961004917857451763836633193579631984613573001393494451553177353472080211322762253217840241912383683128558536342183471287075626346538471955134650189875009862573763687950602486716834281357131605133451056726817099815627446663646944444745357896055704229954470110008634279809670731620173604453174075499492741324931237806271948017519715177941833992800517291498120958205618688227261664696650146214137041220923368034340417066393978220405127655134036535679337145613547644476708432650646600445140849375734931678020133366427967246019397863433552360550278030441660232749687134608689113082377619196091124587693581068276095047618489277283008125714231480377357683216836781747240369673993155902836637710446330917077531218187456986234566180044429016627201293003701813041376203049632715132051800893774567004853993019683021461020356026545195337468014894557912516988702952460254597786436590357105786676817972932537631653557414995860682007643611733405218893476450433815507060965665762648700492453864913878583613499295243526783670475245758108972639135169663604922440386032129775527722094193452668412940177296404873394201487860570693384594731684367215962750770365050785232941699994076944794713373134153035733443078105525665764221292078397562917414902229799671773028057187881232192926406652243726916398430673382521895934001507819207253433267885341800915689783510880272344932224620577988475312029077642643862815980437042353029919093661886801635705174357554744887545287927009466291604323282887277109967245176781527165587693591601562313325355147516001802790209868946033058620982480154664793903891477532727190809064315767273772207164351010317368932157445339110220987057065565054487828034880693043831324926698072796937260317174367573339372230510781049383606005773114687416694950483081631813896300675652961915604392421880990753750167969097063144481918268111508643657507702713011794362682765474429484549607241662699598471046220168913441839649464071209527499289066732952715697224966892719802510244479593219774664365553800396989787688458614593592426571527588233317687930022849202520804175820031255584486841079500804187555152725555285070113391818493266212944805624136376824525598680182971983909181794046144838759330879539094973234927187093469368255913730879860407780620716661585580307676144171997755480259501077071086272846900015905556130759576030326600262637472832876923378129854296158064586248879474294029334229550966143235550458775700188886232057048719041675132172525791738057156871333854076484554493676959171777248348957687125116899939373039310668069689086907147909608980943325285626937736560072440642426434660099049053102824076329238783455723214446850720172904430401430864207503886117558522086273691919131418868970012783264997442418537583164497057241417930122364220799330550979134328322246505379591101037602741326059234419070827969778438515647943799188157042957084900848938730602725432210808586426672037998786084368829980607634284604496976737724563947360782131673046000784280684946722125439888127483958614994627567419082153104041710972294482864001926621379143038020473483888868899838208024581295516543014776014428807753299324924263789930451146647616604463778918017907544042403542026202259069746552938846908523499387840847105679793654864164913027627220079134350321977538297079560463920241480257667571536419464192992531120462181207925327021670288498640853013141957722071247004760678859977920678668283406373174812397736756871020801055096958782345352773063244736232085139229432162702490314827217590125275560895874962528404450014582220769710584184510659830209872579850056501044513071822400736035671575817523495361593088007401184309071972197868976593632422352483398232624507145893856697764366870549417779532484686273688562024037950139634798943562911846385118866346476425417717165130160738092202832952167382710172153828422216598849294772157564164676910886991426119090215877708721628897698541262930245847803942305352979398496609570529644960400531427875651184606355342513891628097272478361967965329384702000720111359444831265228079190237239177360263837509293875908298357938020659056842272905059897295847454616913284402458659952746015828741090425849203343705961688817123455115003181816500440781471247933841591684283659913018381562980101338833355261027288959827469441096653035938036933726366132113777987199482741882393795183462595138423237569137863974567741462906977223922170388147971308806543177370310722608691668349725693229506611705124388651986978775509748684724186445283624520250482966965496657147159369020582275930717974235778627594636478497335426589597037859544489139431442491288585550636466518171592941805735202394502120178670438858639879503437304532359197303047402666698782652008325961791433305895046567447909625275124397699408121433413094536328301631412992986690399237483261568830077896144430056228995843021709022205600800106739156505556526722181931762393091032359209653426721049457789256846216231978885208018862736101343675639147442939107898237052748645805818643597287800452175072801088108524107813274283476933205564902133848181286584685090814557778375750176491570673535536471736058481450761717307533058832901542995691025620393412502115834230622912318192574894697385256312260855278627583853081214823400737311731848161686509491741741411121061423339644983033861166651063797045797664026055746986290217051810057243532865932241524184881467998788306615754413441530071913317436555419202164543658256368613718352463931475311172689457117916997513348338502737614955982876509333637725365978879564379145754498788782069035393236555507487818041950335259094240946279899191614016356996847924498546796039498958875324299932666043021033899864199312937949261291581067081060481342477866123453872028658048175359061548981640701244526149339353298702231179848740691919781711587413698435621956951767020468322000987884089270136331005941902761800688335115719048810045787199313132632356348726816060101668552955545508194578794206577813589043239576838807425311337043747319916404596605179543871600885338664830281748984251903355070298326394278262363740093021786582290116298508853268222654566199181331132167378932935463281480632418016483216145588825476040047777307858065757511007060245168269131294169078245137775295262950651960867844609753135933388146888550235453877273989682824609926409959716967878615758464278241524205442599080522531062633242361945935265439604847659511150468597765229782419574556376687287467869000502796325957556436210691895420230664386317302711161293757956073514099056602101431472448764718613269991894099652870819577008668511571383358175365445776894821766176176121655490404237323641691529387802014462399951717320808531086405874069398719782285077245860941356038081838053213036948468449015018311574599004408663280297576285497071793151838352209985257925028664256836941893343279607074779659922896332980026511398712935793455310690133257256240811705385798603558643089100975356208670998734097809618840857155926844053462481935006635096610760149806294055343017647364207006363754933122253441076744246045023601254557239881890797977222044529895555348126623587454896267909336652453626624579256062710845401449492477781598194323145571494875364082085175142504975721987773993708055659326722581474800696341886990552219388332845844437410258946412886432025495588166004453173987034162869938346692260092888622255126898297465588679854709836797312462311738594699725333894527853980682785970261323661127279299055836316814228427515920557470044670441470835174969013850622967322769690059936550741514865722349294661586804207389621814574884785822439846418236914504798692838276239476628527743029669684449188572215072926186187761262551759777315765266187192825898558587983554129566161903698167733889039955732271967629279264030009980554106604294023027509963363318991486923741727762958535141477226607121630950575945678033790069686966387953403230746837600917644291408462762536316791521758184570486761684768933359852315037816530369663604373763056060036441316278449246157741225175447327519658689187264641851545485437454532084662965575301243521791389398949412505457159757886039762736667718931188297885651477786421689440954266995280689280230952860836741856379232489205301045784576428060909889877864046135081169177562490915385805923834158537620491517839234051225008235594323311750097483040882305116247304872333386759694643116926258147666592705621320993613219621626449932603457674687069704981616431663019600872406807591253426741959399712170583317732031180071554396478068961108254312419036513895281122736894374439678761385795914382014885253485727036410262491356259722233398804210587423796267983237161511471010870004229613744781355792136500268928836742061273437727060882244370287695217054932486202453423768529627228253183837863098727785120423366262649705527253659864099824251128162990775024115252388689409396780768498988899936372904840168029576059859187564045494733915096517000065042742228369605492880766982433714724236978798758595922382172043347613107533889872472672130131866917997288293505362564136406656161529856639627772113218059712536415255762039398415015366678245106333539440285995309212475477693098193090909215666466312422875471642462060589331188292660777727930057669881142159099493548874298565524752809682735579623308513388040246553690907911952577568502636532797374079374423587697322615967237722161379585321645828096561312309589140448424303623531952499792579159063654811830945105841696634654092808455709171346976522535074952997278609050445416461466737916254901592391194860954485072539290308840641518292809098605892808687318432435311582194774399426510336941460680899262129407633607699857573026853266637276051256358431746075355745734590221895351790546902791750341085003818032740492951446924485638410716698011940717675369383972693747381634803449930823004295492340552466762707043412687910268779476848719929405659954359569915690670449491166404262904489827368162431413773553930769633462471298671247403947429861550438779392903952184707739445107676207415763662939339718029405098836174318064579325540890657327763915478491080688211803210691174906951637250556552559503658103683233535611019230152895589635973595910372778803482163550925570449265335055568580494560801069947504041156909828379819362864307806105940502942408920902662471855480910821141273583382014477521893164544358194378913844172423136976599951162255325416292061270189202612557411327210385894742410121529312092442517044780130151227279165209714382333889065667549116244269109134207727628607096089610976593178910506108780048591395294610039268179085345463652527051332178432237566995587045827820733969784672912582902385184124158838977791195818876192638708502329530365513475145432462586007677353797324599085325840798063399023223385806618764884228424889186756669361702363984557182490445783537578137390979316341542683036070352425281034992205364909824587580594951839132987638067795642091443556384563252744786104856723897146934333757881876106844988822731489081191461453689413108164229312159408801346896883878189610200828183197414345704910699976232632866079384117906434211092523260697412223168306306123456264756252701767251358553478461899378931400208026595367253895543238742680905248862335507252648866875947907084108789746509357570948307950985721558305691421376753740991224065338953110692318773291394834887190997191485116342609508716884275770864962803514513737654829584893530838797793770440275527004927743635988882382513452368021607765390758022201748543916193958596532808352353917368041730987667203757248914849895486276443406755423030863260999521963574333035776252380648222581830883366645188104829715876959157066110375652169688921151823826491889006323143642960967613697024964400759775685466180586975184785001463968144873495672617431428620887556071616038414161487059964432385104907185689730097912801766669772387637626695927908200408200072001934834308176943783177796331124941031273449349008238358862080792779705113866699360450792271650490308850405805219161866722748293956472852221121031588006472396013155409405656274524233494558221888955509689001864736966625123389574247039450524927386762642022258729027536855284503163975370916740498105491322602107462483950051364877688634752705563723197957865380315970701672187471684841503745856022170913015236130705450264021402978209146325141672728115162142367730892017294873707351717700548282046672564017986718049155196538750908749444329087331213046977060327226823880223888739740841107403468681311087968263158177168644408215859181171657842563796225887259353928423514056721098377456948515551860855774846369552198058688409683415856797377298117483063384917127135478336743804667505728710687896743646007772654734019805164263694259245744985713158368712189155598463860922369677196580771112191565568691585496946524696059091380293896810479854661236443488160326189181467047294567228984758102443365988479776322190412573651942930487034691385351213757924450257501738605572058347013044773951624424483044625656114342085405047126856629458914578303323383489872288643997077298505803473739637677811075999028188535533163446545759021053667045148071415429609222187801156363556893518509137556453421490520301455384208493036251399237633993458825986799018786759429344741518372448908504267631489036691649046063447825197431687653146603541945644268460079955464773787556092164541753411569914528717997548816966321769930003206016473454687667060795951086865608730330180988713622682865034939750896102018935227064898779241403416855483300915082362162308010530988681189210523079966680888984162731836723274773544109079913776842058035826127119797612707579468407119508445866576250367410957541386578860259481380702491320037194460059676957463234422770656529592028671126490654277757741370145685306191742470515696470003230027802481152418522951269808709219424160352813092807483245261833835413540536771127761293059875622974258830302236103121253048992478186257903213846627961867963097882961344836630892388537532927025281081485280334779642395134976234035766345254109236477831361586533250279892105811288123786378173901619516101130571184371575011106943332806488749974714697151379265727806866247305292616918724497282810328959001398927633650830728305211049901469744011198237898587212439386234950355373075530503234739739986777972668209825979516933607216949513718966865341484600825074143884974328175163016523289340913175711975811928042836017642322819331089564826665284145946866064146840872828366996366108651024223779423362088076289340990770005800804555294909762590733769506681640178594254231093962308256103871698032613383829254006314949606757847077076800874340550833546258846107323433979786795904124050600290364619131555085110345472890113247542075322256603871363072919806806831093100002080303439878623510838530365532712971722959113686535819159250773464919366059590844834649768655910003756835948407807659620856844039992392204050747305469050942103572095407376105635421520450361516569289465943666672505558596177149424404690711692269150845891290282946692187485986390593357073279256493143680705169202989038945413829532427378047513887148696548504968751029139901770466656222963527306949429966266745779110575805030541431292119330667306030819753151490529911070702227211661568315963593495365187823510950065833538437745150252496428225065637549314721396139989334789952585569907537530021137512820473677634410145632918951854242255774546398746674070688772366160420005230492139123047526269832390431724132441449189983218515989260740852095089544412749696918551651433952479245486739500913987491071404940207951427427105994806617565699380278170459716503990383342726377784440731346188347574293102796352074278972807730703248328838677495759318217360828580888509365566892636893121156276855254393909877862841734868942210443849075799892698204950018024808180833240076982936550487665813590492503759791715899866426233595456450817459396816072370717545685391054237519713244859880868901195699689934421658713830640721021280191990956761446424382059241227090802544127246877483245212333631660148058952660215450280643128644126023301660852508639469611496666916430658330525313185305622518261161385135440063083678369001782921242514645202286696235572664967671277773610759487232118077044830122860861253177969495092281051022948226650590937590951117422221091012203991443288928276238565728309404841542380110393923928168529077969540738742344523803349736265068577902460166724237834868534873558739419709315789630437708554048330217787108839436513066157702283063031231383739890135082471636194459210530376427832236845706025144494147046738894765194241761805306627430207043782198773627898496970852657156920727381944377079422339383309490202181261134883392784967301994663164926737281342864107026538097047079153087434991602411849958696943315585954206655778800054061208816537630730386117262872550873402151939641733172957044652357396103785553599844106132994868607037569080773765470791682964825701982906817651613855758158800584335609816563767818080483345933480676804045537229806657032280370034534262170955382190865759673409892482122634282601790677479519505883541829554638742103212839846870310501454664416071952920498672720902008869142338747267690425966723494987468402580365951499969862871897323740126033740942633018614307559241635850125686313437627978593808980919724035396448763498103253587558140275666774520295930702511407214637631257999787770184687627568524696259036897988056956448543260817068373436519920808244050792364372401019103708905992318569026032249560093134548500871515526575000306207783815095126241817465754939940595073486500654764560552911847777178484777162737959666017883179476457616125375031738700718338264057386092383941257175933567462397719588717414725348635064301934821864926707044915408653288190257085755741361852897011745741440619073465801373303377570664641739772097330197200201415886013654603969761520501408679009810448861619442691833593118644630701781770250981536459212300735410586641950510394472347901576637290445673055885159578010149592738820813885015971789780191643794318750554643317553939957588607462002997210930982029030341667959950105209438422564080725184799588538531906044530210981610054071373076024647513745485478309857002155989745205815946489473200011820811332001409081396061667384936863208985037921418291676772913597784729351056083581201745285564874079994227626046004538358109352013082188088916259668659462767238010261041924856116428736926146189272393055334551738466342491739861160468662616732622057821986772211539321665258596130660444646067795076791217636538179978750742900048726837072568378161435371930708278532345801704005094308917471727106083359673999728614517596540764907572732843796822819155535499924428490415518707724826089849361700589629604000662333925135842363392073880302837413035773746809356047237400745496248700465760814871740776102146080674292234648647756141154679683469768514544357765792617258608285515832622454261948311795550261065096784176051971348313822179675945450590295833424035281764842237076391125445050813672784493692842779973141340171320083487721183740063895790954474490958980034460852241956869045537776517961961735377944625659970179336839240568508179919625438554327280527183668610616558213997253473565466986707687480400620358317119111635632501837504559510646142139317470935859491817436579427443499924423075064192922804001320765867882827239163694560878748398533800152557126593040072954911841131324965246595367369807828588561569190348588004977671700241019861386358546417451012014383761670799863966091066178391062403706278516888246389697444121633036463529099595182896116571643577795039161748074096666617409578789266098408587823744007499635771957706715743093948810630414321705464931651759142774154989149609467339023070229306548484589786378474365022956706418278482872583600574829868311507257321933434247160145541643817888660089364555791379038974818299285654903660189157165326285682514737488420375918007276521242893529025645830662540464232696458433583994193509718522626406863915138436800769550365402514557974561067596334867099138656088406475137994543274329894901197420926710660312022995958969201335366787646799342242061008500952098358706032145423144040656184293304952376685002968878554179364626213130777204538241818239476363405398571874515934815798981770376635552588793838317792403618862842738854689261569917856843426805388842463325446162259376039492555799254400895802293993300571883249932073085457591345126613996193433804952086804633949723794364269411405151268826756112043327877871764141889156826399142408823491179418764099240636529418128688908999149794541132489304264653510887098758817725361359706324137372767095218605856547200665615887513222159553560000883024617656820706093563022204244009733377055166233480901839327853137433564866503041767879337081392111176977855249691784689328651010322800803037023855040612052307022711063273470069925520746034235183492629173385402341221513131742069806440613064011259370000647152269923426981808844189949565503583245441787284096947063716730998736894118579899137068128960229083068233707535367318871899970822786966315886691875594387483874633145740017011898945360959515514073073408729479980188519894634448587332726085043428197594888291378769627279189393936240013253983613336970442707759718288317595960948307598366481753396756918294525381680626800869289172343194025363941847575833613142428256968308088431912728966707037925757968166985974408124383364337273489810076336910101272190501319688671335219842414321528918076947094218201766944287918772548862745846892257211665689429221756023869197455710467992036423178953910967762866613026217198373625316748455188577801812943632073669323200133740069058283100298679045571684536603118038740079141809498646832151023646543456116514281701708166105854773121293850149544022529011266358511828906642051824041557478389703261125295164521549714828846884323177634144339214779025551871479347191147469056773312827603046143105438749563038092116774058453670127891766323952267392239452236778569564401797807950291276323184228721239141486525026365945696580047763653068482262012080770504730323837956766533180581274028844667512440025807028180054520605192442106140395488913687473196088167779720346178776651179155256413917793349651724921205490403052199822246060254229160769154452384445841079312171479314458588724561558724897548458827556026751146350395556373309706054339039518995257829377558794262595273634716140110481356628515924993149555064122117786348308719807827461113659531275370634867925104513197468873373142167091041977932312248825716127137821347660671058028782344798942325681153338767436812272761170115674984108961686725957153658620581998210478804734661368063456283265321447238219813520277471378705588058420183951809424853435121334033708879185063488422663395647483773270591036632867139336769657263075377235777692551517625535778483518985770424852769428719888199272851134122072246113236303069836391593479820537038732853038717225787857593595240628886708983268731053704882453191256548479388507778583401741669851733328272041129025332338545820282135876728580571215819465692236298586640750321268677112687271168997105866275854234768909332465910783419725899968257226867565064955777638778751933761529705959576949351057415686729754260800312903434179007152969984487375067620413201489089299756006306351107209374574499418412851880790082773145283240910957919468179696415275430308027534732793219191275402903320037877205648410761129448851969006097901733201324106689178785828394049848334457830540091239998611468650556511838087573722325600776084087710749929191650970340874435197187053533098181369203446557745489711669948931727791217516087722229077193808546923624938385694735873411434979677869120378667790494666904229547020138400297803802905972661639701956388555124516236289394990617040373330187512096960926586372766289395568431590439234383386135439127895778044059164601616192406903782774869857999361024437075237266451535622253685605000004681339486378634761539080111357822042830831283151709456374486013353390102309759360953415584667886484705941334526987493458303383792339437017204755085151378069394480730154257003854609737846815657876288875282923406267076100987667316207211494262578859791894409780474034715416097779471429044188802473616691071879965738112844777393225720279384313129241253109387029552923534883001915802171720691898494591000839253252645407780633953497621207903289453935185739506663199576676810350402817241810332434991006234393761914638892380628913219070734946756104066808136322548838569160860825274931623162714716090757380330895287230512844416316231289903530592638221171070073457601446982596431318477836045254191464433765851456451756330127569646472714254995258585774862922537883289970386745830659712808162372384410054412477648601785580071398551751705639621618087902800266099049749543439331227682176564671716176717970017402984103900310041918642394209533687937863835453487657645053468933184230504983825723276386040744257194799085755349950273736817152952226418444952911115274852327105192689174782813915987314962287806583569082033611850307318583050141241350882075982776109608588798024676000947911739136406690278326023059391495585665031279025930944800006170185794138089410796716905407543050852070585641538699460903625623071186527631977942396571763784790087630059686771474292018464624117734676229227668661286205546083814453685562871092720117539256211357647800473078814775747020167492750434928210397873422467483886981681349183445183034119822065801239726984490268090176396600038050676802838475109325466112632536533196166708085592433405960922062406294668704091978228946210303503697368149778676260859872501437072644100093812546638374130255373454849567463701251425815613653886073868991475223570100765836113631174685534087365673636518709277805812218817031151586303044714914424177575320724769030670786434181530108787954692536551657148009502654634374961076857130282680300622177866785553698116770451954763029721674296884753232188880021853043651624674085057332037315389190516274356542477136795610246578942350781360075726830838637450632134692174114801456997030104646621363922240422599710444223210932491997126720278940758305231558276334678207423140063956956312223822924237233422810895036107135229977814063009559500196133826777245931966342598746812131479500629571717742252598306722324775282637986978549026410484464471368175514497656557140861651417211106241668480625295828240700921351282865496420269432698444064316350886028568875499214255993055090724788689248875379936236671789986687784981521649538081221991502044132195479133067487549550143771412882117728508569965539363662396864825086644370093900077954866661398989449329528859169121158471444979526174209746585056417087490851489571054834723505260358078399239958657865003139784448426050926268456086755235322816513670930351153807716699413007321742435719896254788072009065740607274905594412600722893233174847443381273355952727359861771548510941925642429752068637113501907918385966778921516214969300319385837249498833396395230036109659907494370918814690900452129990622400019156432815422486307288309481084649973414501227104342249611596034661791976617876193098806772927675503575546574334446301437212257740551683140820279689804966761524706968797019946414914252330518545356180392657655839465785866401925493855167954894001250338801492190869421122060950737502737274264573762759754196802856753072074055313837856945984946564776757215636949084226624593151794556023988594107283179868880174556743718683438600860376807187927609146430394862988067018304920032999030157814735367449691717543861198809944250345864756487230173520785729005814629424368525530314791051341204819752953727812259021733205208960740741527922944081687228111032063521500781862852643067127770727253231819674600844822639394154473774454870944662585231257446471746242508023026576924930595607745222531421305734020289418762110271257236205147992678327431747272748745763413494587503562258341741571900106994109335644669255052052586771340904898143056341163181839749293611091777034929304002576158201534212019347082091927338000281879891261028245887965545170903077017410240497036414608763828517212461257462525499382515120063780750747954987393967391548708628632380099027568855211316538463811747579374885044192182631976865283350452919523939434187521374338219448751817399033645801401673932630500525738200953746587597676343308523574228794076245346831951865581143346590697978198742273483347352627080415514275157226207373190462273215433480443911918675104833200430288009915782666114850376292450642837329911097225333374192394476201857405712786255790843148031663542824125836823761265268651649004352929551218406855783266906566338314226598658466724564616338730216262003481253595964025236260183622863862827025963332707208690987862151966662603203947034711557616367152444269262817602739377224117107757138488271761439336822585186477922168038109621162880485895508264530202833606392612890609986584937323687751565645836575505111188057106634901481957892345810817353065001278959619306031823057903256665877259406997470328292735064789750826409019105473359076654673795105533474702026058265341696847299236383547042496578866543221286811720287297765836995524931313816583205608777799180719008173656975835329540699964169906146678364233977559786973877246468885673496458691608197922531779185949770169335549224467672780946500134625767046896764562306013095705174568253308336542794674246608131106529846788040335671456864202357222878221718407034917598111423088569843416639920747300143193813470903035548416965245866738948273354259541377064569106260850254430110874913121658305043032214570037582384967124444259672139913856430159363160121069178773632547349379612396910682831712954551304267141480949711177522185753435040354527567203279741278971428919436127683756838569391236020138672833280530842637475679723254834864841890239648914322565688053922614509709332094815423092784287732366746473738822247124023836783830730237267438790793672671216533375367861374895902866447220761653511456364843259803191752794538497760546961421376631114440868030404573001784874118167719428462827507717900345534914370788764428047983407079917789530991340803265558804279163146834787256226410052652213282512570859568916393972761003509488258499333830290697972939332286000008421075231589554386323188380464613396225571270277898498662455731223112421868176889325098755234654067787084286238567322535499375809365537316312647736474368704678121476779529292197091799336942597529151094559203364483878634047647398835793627803312203477590882178247390686613596147217507757010443551387557617132292429955105103761408086676046102633990244277652240672478327804459021928324807663447095794647459917116228685976890348682322975989853076501852061958764854506217327378499772802531578321517436377047510218336166067777662479899684057211594859676788624327990386366396289845971847609903737471971847703928233333917010628701257653827901028770539404444003770560435193652587855038894848730675022098940364200990529383753053586252800132785121794090876434103843544582022891658942095827837585668153534617967619713880602006732211294258691008683590167821035144306545294837692780087406003747131348276267520429311481402749819643303618344546637236059722923364346306870545074158753066400238156037860566455928550387529256362681708261684373311550020222598536877398605606597807069749869307491771091905739847817462081185088782569584097634493066487812625370470699601995278906489254915336288979381012913328338401106321876042082754287482942389657973376729928348002546860273128401570378839078844666197972071938586349227417657737588185616103297549865246974385675374664638727945778221129428400811947730209111555536072775373437060642560211122611271725006706948880069534910593907049153490459830641934926862613620383507006631255609220037871636528475753186910995112589603705156732746812396617658334867839963195823714819825115638173039144889620652916699115210416862262364429873613405367649562418278321212581672152528455025141027790150649704740089470044042617106752860993371778557823580418025892882974000690554699325004153048332036041236111808886945022108068895973718472121566315593949621643194290548801202657989492901999361181083736383325044826365640596814138394004141133563080385673682769847276970550117961179004003301625794465981877188153118987760795683717623754631945505963206249950426642348037195286080232217421319594256187747007511942126848435082745800558649868924664179989933128877009272610942200219397035228709974678186643730427756560135323931155061299207822696770465158036537307775279451699983657456520903878476341404391510944169042049229092522565080344895598020639677207323982630902314848943311673356722355925050693990093381062653852400732371246719840213411303115980105076347579180569697730692145533757820377516084027852535099797116285198574736973117553037531533788257665316726351811928234163420656071798355681791768639648890074119783164134997255854452546793893104647181016412375421332706392037710200521492808907170383046345174960262446162607887176941367107243072668259612153285213240129580069117830602685209074695575973666536849822452941790174929959969941241485399219060672198034484787795973040949486940373794236135272521453906337716589674537007372963905079150453465782940233449959405352638460447720158483724736947084079689017972097540107631459302641231646888003324817834051069871170930707989418646142765171440300253944997173065211621383800743798460101135480937837306322601367542996789595769754798578638403169996092707410642947773124515979433192348530546041902419693558368347366576646837727435564743250234490134641796849233713892582728556217013633386102838826939812887474339226936618190831178596454581201218903112531701902265982645342461973884446943549913084920808023618350901474857911809646374878793083832026878693340781175750789853966044120506867437833669581608548845277692287154634822567438520458540672203855841901401339622298120362682865246894243170498676932910780101486268895266752280832659202903958123408822985921530170161983005065968255159392940763615284610543626954518365348920697688709982528787364279343185915837555491599267544759811776671729142877894011985272137388628082303085064047368131227669455557488658845021356464626308615314081360584957824917916750942915758162493333865277242106232548190128841321351509281847587029029211380957897241685897811027149821916220030975461223370240229718027609475092524228039832048628128714025819510843416709898924537473823770142948074588953053005829464057500995110052327416123135442689853788730115069823394459594139435699510084377870195137538652852524513410004458997600961723865274754257625093451341959947925771015242361918035915827800118592457616141625731425979134025089001598879779497457686648976428183538089795236474627930993366295210118737446626206029255397899194593398525767512575413072161239525587122252717375339591792339163336216789989669873933875246432621343224857446135444630657499137778877548687976016841288981036299189702962507919770585827876740519055187707272956346282492876550175162229260169500246716345918865750985397941569222243160368241955964260677838759146402113727032918824025970552754708357536095078008917480578637837639985844624441192499460012238843714419885772538269897128245496231583981508833625122928597293447964449994922664025450371687530152815643386883868927990232355742722887092002896462909297489008376655680894102232685679335589060159961202793409064522819067174880554290528058608005005695324569607924055190295106380244635461761675071070404453151443033044773704857148633026474992627061255706198932557255126205102812285420159309654060253088195781707021315989389930335550611237305961266111375342215692603159673313237556027794224572927656584519737007417479192255784388634125496175255825311827185653417708171651464234101983959968191722266161657361179850745984478833471565952215736309441809732831561617650358262620992449828705530089799107811160988987871534472031770799675687030939689002072535634072236875713598831516572938664586594743885765846329112482291318624496400520603879150780047471386021405668932456536215352170488176907308090210053518814992447729877334627354414232525356598270175491502130385456867854645103621954922566000129526032829575672863178048162077323367542858470165175118478933857898657444862161757359656693857854371359696909453390146123519037793799377336391611575745927549821205456970682099972586841379297615890904099316246479481534880534012047563540144527477580962230411892597163156575467050361971979994765665236888276319218448277586206569852312834247941295554208414925997716243123072173208286580811280898625585708142538907985040031913029609093130141252927661170964393295946848650356796967053820931818560071007912583702747335874056695260337776314334127371848509110607673471499793890125530224582337122021577751943859672362982247415890968835443371628844341603656360428219901714674135243673727951716285062838624868621873987572100300479981751409445462166199160147042764085334706428695054848318500758359828142674116797285151039652305981735670019995175231347936670691920311883293166873359461820471711673422376609080611478022039740275170081635786331834485828863346635045562305654564263491568589906860563754099919639032885481078281957367969589326647210965232523962153691109103882492431200547987119740043338276459474333811902384640418912734388902513480809542747587851896007491624116985987638339965039679299199416746959289544500609018770752838350926897084103878859421920995091546442657285688272172278936018016870113028888194003368738739730080455900484487972276599000944889290875570783604565468771064254225292120634485157446214537871979031393215545860874610538749373962526354010577190023476975426800208290359514284175911571448265283298296135204764043819171726790893300261512876982024400827319298861545234913718684111765091177675998204778841159711855344055006320268864256037521002484392440269028718209322394621310129361429178611120167977452374297105890375496994029163221892885370226124739354134069970396119621338390264402186754796965219755811802106494276313122158386310526889798258354818177578666515019853215192196887603562562960678131685108687883379689014507664024426627493021957178377380377768535078233354166315318518290523887923705804086096046021260136858242177387850423863056364846340974250446575981882159414092371810049267729396243430548372005958193484521743805695500715828575045147183210839971412942559171956655021237860254956210032316444700143117044122502838532507828889427092064734871726589547017462451349971139739118575012158672268917757469125249872449057280816869929025305188417555926821000034956317974084261691459677238465254386474972889934294440008242334662689126259890931354662129197722908811577508853102543566750990125977081599782649724977698135866286472920089177492312012663627011317225324596221550118041800226409670323499077026267100078090039934420042091729838851118172486990048764736234962283361353847286130680589631521650674969794235435706309784734093640488062103489719655630951673121710678650013789877421545227256165955223486437033845943704134959979977308695294501149101297261854790369413324598704821669397638247262466742818885366871324846279658147807889760273078401882097367638405704289577184985917936961325445695474279840085633695714692237145535446237939875571833657923873030977967106894730944866174176315157294984757278445355507250426902813461990499901475113787296652154072234481754895907969641194951437288241448945729990750232980601317138721800488714983087010359779731095036281853932225629476231701020781976205679674648029534809752308692931252703111441147543396204642744021663782288246882569851671228633665249741888188942637327044088802631757267036769171446959154626766045255252020244958350528618841712820089232892064111683669876423367200672716891321011244245859338050302939453236319076274972934657131660525044992622643861378244069458372696352176498223626482876144966780246045260044015679799975642953672362728803455513378810585921592959740156441020305177379273579477886164811007414018530467366225329069802378658295934906743150682862322659453845974307422335871788057190646371749571234484489181576763878220069211792176421906431524320325790279695105271060123117901980373769704033256181190122043883071206090406602920928804959164086161530964476771820801421979200170791218612949761203256808800645754580093530074353126917776701028385756104925336124319511064513525147245798108034705919765309156469598225171671704090169490568976912570801399241458995888435636473338843055846718699769114220429577091318279390091279623018645780781374172815711621891779770341962015763288757375042141166571996897222015502066219713390795108052461710792950146606460492122676682335751281779801224052368122926866569350782038370080264879451997083463119151581407343722377827759253158486679676903077369560711891547768974006280263330309000594423791396833369758458245181410509638376313095530578235890342590528191013057165165518483064507352591573141042782372472735248150736143234012969117264963198505059429514932694136058306531727072681773858805785032038576959919964558407573277431740660405240043722464743861455351766975214804059901517201647850424559708913524572048436744848633580589736406709520539072988948032406420862116307642171890693799509057032247111430888574601547014941659259962237115067490233579353341580499240591642308057822995427238891988093149989121291291363875872466151971250874415680575550650147375740524688283223102048672271017506867452972730170648935402049767004253920428443378875215226807722173812738183863975777581286569184209893559456695773817046287540716184002251256107851229127132832440892257095031069342298063846165359587317186620585045723869405131353937387532695244821257708055906154607003530777035887971686340168244569750056893633777724534234676955360016439459524153102374739957148893935914247302339804752971233166172329536963857134036059328547026905799786779007139293290483614200804837068858640348362615916213861513206621004601390327307430492675329088030999816020563227604441575207582663770318993562777219861249778888808802387763849663053177353791322510440720037485361511404145528892704860118938515243162700953251331269936684751807480023757891271519484023461438564262542489023802877937059943058638410482181260478778233003417249292258626477459536579741391453455603933569268859091750182560059050728258888499624545451399203355768282892876974541596063364002547786746379222829437101948239346767910248440083408443525537959534256148206747867166405124938801282269207808366159720251008793575259724047965620743655546371022490948836599183116458271246508548206822027160422486896385683268283546504061966895587834420847217330878001543671687874569784003029300653040820536113858817718467458019277904958164091806996570218265023296045636430500732798677723109313047952999725837987899659084683476664453346601913606715244318612146193283190202734991348288366307400579335827296948683746301115904912579017288700291823992116144184896626331717378894376415618942348310309017582818506002444933543291595214139668369927555838873235415356025599223761065197622603828682032806154359159923733326985533601683630221092710504870076028480454175818598516993846875866579594167404373330405751977324466025375065980000670843371299940052747953555431044301625032941016132129701562051470472000569491840405350299817994103793343908650122811863235881616351512740125740109092119213004853188649730420978350965796194686085776126375076264757321188710864572915877933347994043712732634743299603403825722668891254291493718012623915337715783788518802809103336669262515830193315387207069074344428054184760722325383534893993954702752245621875372131050949239677545463102558099547302737974157135169961963297105943675608639834517138209191479689237961387949753535450387021452080159158808359310909524142672458967124081774649982261997565278351940166772015192927349332522807057247290430323007930514173785036317318317653923026255334547363636887188619197169661697423731358756418778092493269163782404686009732039140715823728434365574181839562786479506021411521757937503502756430860612001291191988839578373365399540252339718156583645615527986915113388600852878303940704904447238553430656684264559515931143504741063408512091370689631450611207907898077120585738856028127180577857011980663648715018481172750474754907866012285034738213249737220649483969982953080219573616129136125354350766376974565874107670801154758956825234056257101768829103036534430569978004218013974690806623328330712304147462472047054443366573355166249569122269129549959897646180998822154967253585362028407465310859821370153062789584507771834120094001979756763375607962553413496477991414839870719669187700300142510104611537192023154815294822265884295015116977682067147717310876585506891585068062093078289845191145793069411423680455618250047159054467739337125227510220880044825908879139041088535611604238413298711195220694386948016113307392619046164066258512193381327057438782326760396381638934574507362395270701543465764100160880268031201935592372054233524211272226360106040855118722526454658652714307417538035616835767896805854827467229706612271168858156591686228773505115505870662870434959704080807469421702129955856489713302541884384043884591203474642567371811585729207040461661058976228363027132757241223989456027821416345525176881697513036254931294829811610663328005613619532747120683491987970318229139250995856183625157652669064268129772549670603595766290176705894968570386867272187430027147074053543233929572509714611796067878096212720487040782100382879429368448804593733123871542594284071849862842809099679341973814837693384985286638252268278317154359809549758536950938409363661344344371221800106478450571164003099222541320576915053900904790257801381592149794213600234341219630931286216182766128113603380195512212834860488342026826161066830693776156273776274358053166619336597085500064039881064971486956000452515042444659321437977643840340671126192612305432221839895803846140652437048820739127173537415310636159286175845688601763033978918811269118812452633340764216995416569656270933473165097525319430323763582624408549431204128130176708140773879429995925830508028688157708353928829167994310646219057014459566951745831694638520864790021407634406943563409380484815849173998639718768865552224257612410931341228026015448858541610483617677593775809635976617461802261719816823146838888469649056063317179204509689279032323690752167314568477382041271673593267665210538075783161704043576323587695526896290882422550422955315812343726883706731119724425399316479162384823966559894802974791005713091328137141685862719183098290667191254035784276226157366827704398496713791924257956363801449411049656576922994073323676681451847508260870308618508611171129989011085249286993920266008576815390256989602053204036550014770450345932218807945334293929951180672738116025539138166391386832193144456708650691808315519109281514592417911616091710507671921843662111455865471536032927354371628534619856933122048869106280762879602726232183381921253727087931996923875972715504140845747336412990179550484300329932535922943396750841357635222719378371911460357226706495918794641929569578460469615694582758765034566409147226564026109337003174253857682070813438599196104889133514996642261267711427381404688405534470417658696659975379697086967826138828086050688157689310816455559286242872293062550418587673967858779545170843840152174085444326747952106840559737444481653348110174006226078436917333358538842666282846053296385249054550830672457741460832424611239311997641320395995629091250352025229371884908075936922037323827988652414616792245842728506719336705738497063321644157687523693878901011459633640276610986296442134575187800100547060277783834391596931514644427607814597491284202444466552802832765530818522573573068742659668583823028240098340279535558371301885382159809859486670135138467552724454872379491314700995885446815382737825151801295325514609376618242405969398759593767029007145648258846478813860561996961364397007463066103652033787406549104374577075093334691812061054966260882838593451486629332305671533016740332135007917770966977166115260277574462965258421610691016607779855743054557945509824959040391937963017254388333087865189515164360546614545728238056898413157899887780604313853363138814247370992799803398489141433245029148696527698773433405575513188573566354639031563109639564596914232051937333164165993438949195492049660001611705906676907840210637086919772956936619749391140879534307890911108432438652623861485475601075258380676626927032882781118615549042913535126183108287574128201396263678990818936124503783264352096685008597667358528158080898927299853151791914198273632023853920161930683085212646944710339858568142751152758661540512698650533919470618413145458368060992399604535399487280862614252834811383144480648528143111071655482298233973769628170815783263250029447921516791407743947481343414974565881587075552454345229816449503758289702801137027432894616187909660097902868528092094735604242336447885015591560204404128018651802035640474566477071337678645875752917813837855370553486899655160865189802615159049641911515263666674225442346803625253403919129498240138259359355359963252928586299039501270223747982424505365182656005781637436506705992316748780066235745382107793978367320619103925503929425698741409187624894599281707574708814989004254585210221929656579601067450459622260384449957792464035249772386126030016158011983453841909865350732895460340841997736037416621061913648590355781892738535949806501488444919826647405969718215030468372146966952161926660663397708755674267624567234566547476339113799092532696221645559149395838484704200639796511250704791217390715891464585097214215248895846018717725102689732486124833271841427226597522136999366763611248206675200791427161265110595569954320049541244545735017290916889803194962852873941777110752389494553523608643821358768707695307895370182320056474151803361729782053472432324692757966608670963585064867008249567655926718125879983401460055464128271575917054298037911423661401380942802057295578197592148765554770522357629655057962660767522308362554252147950378783295608821807295891511992054936605326757772610508578196011676559564417989926372346048368270609024321626183528850442272378935026789480706032189764836852551347451680959425785150520240312828229936225269152142248087773655592106684380529165605305412703420828105259713136154814882239694250823916481527258956401031226044014930138373258241840123482842141448713180021086964710430021353211167668766034468963197003456831842232247810327731634392991248619769205047643023128652608840815293733036112254716474067708148675193748235953037289907961017626860747486576002156988581142205591048329035247398781511103192345517800978417448565463811139877527421201921700540632674163175200918019133838459154164294905322024836487722661383759348550715553653893012044587033907417593993776700009034449606733855229119773948615941462984258656184186293118558107639746107692159796898422594232947350250039773693166355808679875919025591922474106986753538035456905336925423205967409146457402505894754171248724757399190270930320303102376607143961764709555705289382181094928173283322726965583860431841993439699957409781633509738922372006895910283637441165432215373893240221566799600804045665660482309390038298521945493078285211529586229180271782344420068459875489852555273265194065218255237061696867387240946784857765030161610335857761999439687988820551156511345136065787078004713179122639020588729350623047258701802890266687936046079879456114631535832109770813810389273790937385848653040609867416384616364899206556574030647805328684381477122647639558267253779309571127920178340385685046063072188681213984457932406187054845279649939325439951418555124938862814399697278245639596386282658684088943086753968911145567792351287735685389814196641020313855053172666964761389420380755994204868522901848275488766011644523108975408439615859491536994378509481786462862187211635981119240051655602804537523145938958410694402682096518473737120620616882261702217278487813256227816688794605813701635637454715504127873076235926632868136531709217316325117332200060795400498691530343205097282200426300558338808145232920363818289224461621174906414143904350691465345963864115429340546703648658641087398298853992441943562339951923091882718660907032933085178442259929685601094583628979902966962330800872751021851480392345949739786429522576784706865803926276794722568253355651112337404320200901766283050520110081363551748626370291327277729882282491131829361633035859761957037118395535178370243478353829421035905742820134262298352427310637593432436166190659167700543592519053511497023181000461408076857060864831830190873177614858394233002983740256933244731057592904316070373915426822502520608293541806233054996872069623657948666802633646564174519905512458094398546261640194705605248699307189283608909168243833626959540178510270262217999823902611792773630234145653230547048475190511513005933530358460661532792035177498919843457076736975513477807175200951307029689977704933587616980080402258109584513371309702674954523873080603387231284107774779809956305189446258818426403633285964291829715798924403729166314114791722035526983592554814041401969191285424032917593074068368475888021540409728850037906815730107564990950790942432018456546628101252987441940325171706032552733466434729564431461793393840680092898808623700532957500079670712885970209798991367861997764446951170392107196129002084706207080283034828445837177344829301306447503062298903835169243244436161094465903219668789898773105194778100752150152685191874974531004985995277278212303226928754401183304314844221670549794309362131416602523614437081380969902298158753119345147150208426700219351142923394245303609562826702213729360678940542626931356386536240050749584899547850825395770307691419148342419207198391518449307783164306693072742844134726827467439921363739057880250471649804830926445874595946251960105547806713899689618267432456201892306148451822840041909188468736996987899027414436291705707086217361177178469494316009573572304861442244463084101477251089628683827559953957458564102830998332002932004091915848551759661737789790738910338368389084040900331005753320505628535303872730652912065552260397428481501518145463273784205122562991640940165181864360142409227845318403687441585776573897746832173228749765705904603487041997447592943501396954567218396364938562942648247241243748954712231228381378062012084967855595065721740141423649908550325613494382030037706678311442748768361666630552511632967972262225269631351674918241505670914290243906004333019653837130139688785512579864417866677979575959520823256263403009368623751722974131334639906703447161534552517256192964059753833730003465659190542349220681012932040704486940895316079446431831817723067770089107849060790161846127843769393454875786714501518157752432615277196958598960598623311421799623163257569804481113048373727135969060383604005523650385993794142562029492465487701761980747950589184151764634392148893784337096980656722266223678304997907981757494353261223804526425866551547001407343069851935591789495834193248397344726122101868047604268100690771441916108383281892858914514586842341482418392513266253172591605568424234648410736641569082283919970629247921582911465978122465255941654238917175970499188089217264243679177737191732519205177974677983377140953024438890947540215532928576947969143173864476804516025965615398370905293977642019809216024807178671755454407601514911474391900216267936464176670709939183436881752819147015431410504852911991592710755743952971617084636006637857303842036287927773879744709436365467751086923279201740173204892344437606626340760577196565317789026248493383189471178013308350260256735008538562946026454650102730251182122446497348249631202220639254480706400014110866634061290744676169041222893305668097567833597738813897525255873208484550831210731345478794428998815297695928144515487718937635543159857683338048094299211033321572158725445689979988289691892772807715275362042168935062452937977589409625898231095297628019233587520196730404849665574465364764315394077309000281691343425733964401452161723028189254876757415341181044370486880119826800006150752280105902835285265184242537221521359761798612404042443329756686548113782539150585206831842754192776857228422536429279803389974246467198853956298762902747256010752760756759325390443970591953137930099947673160964028063500597415552417886066431577109727370711850843004434184474632274068220517439247340249984062030151334986113300470547128454518177223913077117730119551620686993481155401256820629793745318550733187842677737052212797484555803170650053792798678896438327508519122687781724470407824383456712452213385719613485575102700517056537963302720307046465810322424291288212816484798752568506096795303705274990668402775714516933381268420810893540926390708141539950788789149880415128608844503703633416401223989730167328544829044675240775027460712024271724822701506336165924087610664986864346556968647131598265092758019683761109951573931761371801486249541215129490770646465234863901249353997060653416793958810991121332454716696375884183788823320233563455488707283426636031921460485511609590356902436898177157230006967943923098065672324941593136981553054507308412477674823122381055354428633676640144422895728473431994265573955111877024223716917961751676583714040212276825792973702211500199373571843613024435445479796199440140242698209230868883945898801978362683624096157647890732747605549609078433345809254753068437117283942628701701794319872425551312065864984385947384845860802728626497178755193678469420645151096922822970035896698659993770413049687526700679799671526828599767673780179655319578366334538302385060091368108040407271791369415315703280630231335541953189237024536550599234256492142455638028733054576075709971126146104033797210160018605827684966506301485105972021902916764063601104203594874710151332005598699451458776730906842147958450846008346285619753385308146100957447356729969620162533765929045313104261888419471568443074178374803302069099043016571053660508426002509174951000503539388748580620488913955970899964311836022479159369684308288123554007235273047869502044418329510003247679905836500563293677195909144214143736355515097302619514684548235914460727347245176491723362001473787541762150268103850699708607134677989779454043921643580991219875737919658999683991790236019101651803798553457173565400721285971480559126322858118833315194144838567504336868094323904402131817572793559331656682973645406351600570900347175061585090949008983544958662111825316501671951081970125105086604290407658864345680684362850650289916343343479828638741806768592647401558969544256476447182475525092959458159937974511129906763942939425936663059911206632637666359620831887947002574250276156511887288836733439814355684943029347448255694261811159056259074768004923460765621047867750799005268647506521051477494877409249908625158741701072262642908161227201989372526604255898221724032694775178073718659056324444009301097797785374388961667978159889458099298515148036353483352956856932015601018636287818536355081089824419062711091650827586632870025515503930200908298742690712196673091685588611846157406813994264227335399775319641571182583148921402134896152044760998836729285372519147486146670807901632975507099232862630880971423824467388322249684343776099902364540113437801311206748912780579973790813955885526643061417352461121174346121734935374151475858510591299254128029122738959094621607969744932836513480317238739496987186203263604232308074257556031167766535282762391029787579042775551694996919847835767658114012906014662024076015999156085970289139775580841558672561876115207323370643058439401827766014316942139435186642630398820311985635700379513314111285020506870925515893228180981503970415873595979732778765069081157829907466374339663459223342021704565293930732233739205289842151746953897677032671689500497142936031119562001382737211282367102391777465182178673726734020005758071167306696780724423979866628272823800546413003406209880407497317258381801728322801275569143367926559971296480051468313997491250305534127615915378756160563171987881822692404151625765503582493459541778850993101695177544503752572725891366229375689478906530277717218798089529694345667193088196330505724452031164185865740366632287421922150492841702846330909700868433024294685264030552436238363083788034746078993788315984395845248973005012167200025203084336469585183418174320479545391374474976753604615125037789099792082641857280201292302206828559824337023754032969861869456195748339112362636231633193023600258014947116143650050871259208176719635762508962484615754836090659455969855179545191961718852931372589771603269805516274661957628529824853483366947659698456672286553167183353027644405623978984925871164589180822099779623092487611509347895481147370099247759740702995765703948495230184759411389901768896976613446150378488748188684351746112297004757643131088661117155313608223180469199027280987635753129319686964307837710327117859358570181071865691767540078413449127912072717175099148086891466575549342199839255711265061598886078405786604708623087812153183876557018040682834113966724488660458458288499933438801406898266615662336811198997352372827876611426030013299974651474671831576907891985722467402694260398937990182141329633864392632083904719546011402981145660709469306720087692875092810072030957285101184239414726683915384938428265028056075915972401060202023272463074016760916529806340392474776067645099454127180458907051995279788511217804364284176076239086731860635750330586068451919236190820838515373317516047229936429197974632506657831137145441207808700086773280618739743199324800209651098155636044621728407393309040588020507790641589140538575524207111297133352886420097319312116168365970028639438493132898681560931583077277948035593079070896109090234355539844927253027867696026687788127864335675164398050692186452791797203139384393501611593154204993104070688057925396083775038597650449433037184145003208710274371529432628161833778749364809934926983070141475279215348527611584068486670626705844708674481717430082961158515048764442325439507411487132135890514757440748111613064164144103853638701971547401122792322152021741666880091951439821823559064432696854997501929606441646659039781338926893120222989748801560956407002538068419501693696836387404986622897769000810689232062487359173535757091003092226641156816507545774774734561538944102425630022206261558910309592417711154672907815181351751803468014799743165988663807984907724303259491340920216319421606924541959795381355093857453557512646869734518446743765861595838114338923921029096578978676458023655548701455054789608340749322797706112004087927772497318876883507402679753805595324410472438378161122335050846722082787506127443760174106952279115061809373109793889175245953493057095401444428447920441069782632793209443724906955794390835844811179941700402088392811254119654810123936679216007015701598413607477048206856212976443257757052855924145877421768267296349885513482232871330155522300004166168483028532431917181045681854603704352964049846542883229230781661310477706503130084743718828642755600315353641914899451784041935256686742296174135473694503094479533146678421517229696914454529506453706165901145707593540404627934704642260557795998986475410064826983347522430548722715718950329287446962839673571786787996321827394892643475714040693187524517345814792543408434088922195891775290856745466904189073129303074246818678168868649865214188358013285295408333336627660186414368692338194573661728244010636604450754713035885341753538559931925294964462886218888859178413814437447300457101426595406054815756581196388410916076040628286098499635317000298198317202348284330324523999096761481202275949024528484115361420203573649870759264015304105110822201801402051098501739329885407483103774696058077497956175261628172480652202549340403984159599263438883111889126713265375367100695100234436761288396191392968509242480811566033536686648904496071219787595648034306701768806988090491737054334510843897121236584591526508957079597937375005981995044247642340627529784240842323639512974849980193024292841242694234150250951310023745868808429944664629965000361075060810933625334080622718020400539990794268411804620359834978561447027155310398355251008421173099754029360460224571049172592481570882380262353379390415001173802294094531000724389911854450858074509071314050545369244713614927850400487362725093235661181975258103770360957422689619584828261524338958976935801500136875762158733110802570192039948084090189144363129945434203515941213156579868155791962737062058783483558888979602831806870986463550545154715484681723149490048920224491359158072178413190463821517424886845476153827225735880828012007062724757428711040233797062070355954918216905617285879721496608509738863002582491631169709512139528178118693282671810281388696238209357907496447708208023213395748913016048639608702537019904374130640778514345663270091088613284532604418789069218164655903793465783179365895483897978154695844250757656203129104426528677117817785720372200777299079156135855639602666764951817180765267870026862504911065616077925135554681108395681286862167810678698204026038607192419428170521302264606449484520845092696041551936704119714161056806828424339250492769620711366749422033282191873604328836555113492059289663813305310677720994458929245698888286651025420162179075374510751467003209671868385541263330287226480222963084331005013953647522328149122695323542514965318977310315311231050963379293438558115759756150772686250953673110494844027693056576301551547437926960406147135651150852535727473575310987680322949764300113303810221274518978343724173040701906130754663835993829909158853620107324973614236436621725127029238047381596923804632996225839748609173644988501574117755145010684523310402102577708651254304104264324612076800312424305723546538665254050409368007059812273598804036111593725366275087018015199749311527630400170861079172465279697874555952095832798210937398825113486462882930256333083261155576670421826682196575332076700241383990151990259200474319986275980922244727182480723678526436105470595311526393503554004005864274755283163370578038262432607687085597313917915276912603254109877339779540548601582440233470498756443296224508268372327779207678530937680555458586747875277404963963582877862323695069705931351483371608382691272984856532416016031958536763130872830322816037923344815210780391739443631754596328851913377361928368762939089452949055600262128146396321205571163285865615563270677106903200998188251908036818087446827630189578698783808339472404561138874567085453510179609308134017272111227777628281163379537124341831423565901913874501031589605101493132055252857465574584139802433190862137503032521874749535089071037908172886367769217534546138401957112716264419712330680599918036637208173299621467625829056249705011160747181372406643114031171309244816029480923250937916064541892138725002788606596531560779941113302296397458487513874699679880592403260494167653842629729294546323951022057145102891952293277586721561747777105196970015979758833499249826278201269213667283229141980693586430917668556359453415945779652925668022623200939982883443365271368059560854208046530205558962899600092920614369311789136270996893080266241723116080892169916136322282637272631343664724588788017478653366715244302404482705769066471305074092257854508531588874718931410077648583206968845726952252364955452263408148658096723033081336713148009965281374988197413088149630901874411680888743158907082847105781077360000577807077888456235841019480536121674737093723585405128073829150543859233228881859252817344085879016013697753143151080966064896513529461960221012844252312316941375963420977150335364889620639402734807251958812346412433548948329456207390348674631881022281567234072693527836609426039754611461471595985589554309323904640558545857640733408952445938132835113141223187453099115633699346161629847173963497739501109848464292376449430955863305795744516266690831427323946757579651311929442990783696355229537949798523181716721886501601653966388759897880857992664561228109009207539509618029232623464943335920463187252474216811126176214242568583950163690049934442819608817022735730076125054012105794505196604882950675113867714149206409183279461061184882912858175887789065584005954469825682348484327655706850691009413901668957121009265638435112142776309648359562089747788438211409612637451969724602737856965953941308407316699268181076094080231774607635306634700647786164722057779774041303557921492654866408377770849328342510627642496735327982411936246851206537845846490595404113179105619724605751981536371135316476250611171458069341456544030518096194357969382596502452557985475753815459443722754262497201231246313354957528662312617981456564731506321492169855060586618414363134027984890008602250832361767756426616994919580823898204104972077508787582413687963422525224021939331853143033548226124225192610997586310013997248391207479175401048297893992116929080845918637343155604737218284028111402414083481371699469339218398513181168502316923092918672528957746438285573776269597800525146145010194134202698088870916488062395232046011329212488741742094503816534397231026967774985926449700443675227797659091160809428535897196224204271065134292698246406515423711572610549425563440243580327178424802870172070415886206816748832838482281731829494117691792717505581926541918389792494236118723443933814337321253218046566461930056926429872720361625055703721443206894356032392064328961318994253851998376659241970797372390472410867523752274093534700694328265279471217376417718371024081420239318682525818098545745297240236784556910820815724190578854165400030299465834760433405026813310052965412232567184858788950232689408852458552136258338449151503197737720667634713677174058195232185836741542189430537141122039682262557191773258281517113746813385574099204608388643846668649205640599080480151644900141379400647274876688361997914833789068054669612999463117004456547011013815829198286054082342746064990758531898235830379546672777496761052048481479751471673459445116371916335547382014073795998055258616625858886268341400285377121726183521500354883282379921046329624045658248328995385917655226993118330933960879440496125617726080669589674969716820747086235778456926486055748938986338494707633434013332268414017065361369509810794796374749390897177526862357813484450544162805205774356679254265272754773322803307171136213484878002821938906132191752592564562180941395375641316799703114276938081918640239055142160720616843753904038689741953380090735729246781955754816124244333031903448104703239373621000885732150704904855810134258898262576044241819448212483658095726760845060862816632053608373854859094887174394759875931883202750515842324878968632982348581478217638965706308021997385322569195173344035445982345411187732402001375407494421598688848716747308345376309434665162234708299952911665549413774965371250638693943618166388532659072139446674982830804583255559347178130468997723538027704178024655217331539349232461951478841031844558905496799062400180323585556540653223573899620444399492807425206045408320859807630986544858616300206596766464378314970305286194118244896159048358731104934962357895601431314192554129387469712218732742126383512678604430500024856062591024025606037967380285245580002934107071132292217884934778935841739656979761049785739558692182126474391372182042367038636273701158269859551553532717569976674184118553631217834006193598196977523062803586065721105119896189251902061709791518155826964146509520581758270757424919230775874475863141365548980927303569287215973167259661114023375654527388333681558937347135180909031502135408523662169753964962870827766494535116300685740955594701616923968531420531230160938763285308282836942106819543934952933685129957564004636161746325431376438384872278131490077681623848284829468095322361350699973425197309644027830476437512137993756162637198088285444673264257880690120729244953315452174968650157208014410400237238748815327803422660831155518837597448293458936734320869789572471914447775539456339648439852034568930061785659195831448958261029258096440096585255822696930188673444909168394621058956554726062726586624312800621890473005105285885962475575210990740420284467015481686231447634114024942179474921539585095991430676636822468261900435631206748121195568922432659092517723810808108392652731286556633173786285220768559327948135466668657258277679146427738151621327943390176201639981103053378780623490214775630697185779036797929175966041877787563748265010672011106770181201721434271769840715325573834843378054080204230806854717083997323954953996378808655352098560363481625011399289028422907217473636339940709206415516380635318725399170927845263905126886124669289044023748482237452886613239508444438077422946472886147460700931591709980602129898961743679615252641264360440941750345088958232442483568505870015320007080838599402193478572867699083614122452789964093515654153151777204793120859167602056390719670495092285910413569067942457416200409550219923720520095966435245955096281910419666263872731738974048502878323291112173994432865994256940593943838221080082881936246081488514723934102759955458999582190647882955033675698030802930665254837052060318636045401203659424352891159570387584625427276480613989659617304710447836002530011707114023426681697858896553674640423763935313505754099066912970735874564468396663833812656977923091403903143684253752985933568386512173271634284910091609309772067526009658569216902263791002591852014441099403504307986045229426072411555286894191682955431959832302904718412912166530308754785192876626720129484340727614659652825595419272077898316682629830619607115286172818263296723898402912241433079095734066077767465064655505171901254061036121232180478648112482622336889437074491687955759317527140085625801548705236095385515580742619913478598580277210762317798065238989936942487770057142031913593770339167929732501459809914305251530361044141353591807415038888482785687036775891560414547540273407718400933975891182494045135870301606658459032016034110553106513396843064427390394550900024025557510822378640720957642324631073062153542514960547272928850744819898556210755141696395490417251278819896438576865161708860263081877026507235370590173202415581898062866267461681767907515052457682649385809370134679441108591251048054286523765896958377199995298845848303132867032041433117747780383065924448360779697627751943322129154469077217021382823490472002166183416794146965324384464643063315921103663174955919523712772538317625275343364953432041227128090999527640495256773652117677119852087910910244489365019828962097707946433348377409126569989280084019463036821159596657458198419021121998255743106273379255867932780728576821549515681257960397226317130814544711484331236438545337208583200944580427863203804487294295503641697845135979456124377536157756173439145284291481314789813212806343307457960392906558096766337333849979947025663667530665319702202398302343547549669633634847702637574297616855951237750943453194815993782813122056530367888883528843827981275870217299268145661203206149647644339294950020202139146245645829658590233641306712999706201734976200917076812474293227699545327441987130405071475232838669075419723016274090839920937865253114690992882568025234098376719389780386633653704435971410580463148898088334394405828985634277368888649397297303553218141066628848786303611768838036682450125657087878464339143949650595095905181090520588325198256813378876135741554134089486649028484756032280934869376042301387655370600765574560298269072366337203637756840727954446025683283647452239790329810737514961766765902081273211158368471520173966300155965607351184023238836102631638574021518411295500188231761361938902936151307714126662722172606751557795618031313334741439682366131974109845911102573214114273758695638328212840322223483785075268517239522207691137229848262119171744407936869253135771402883364286547467936526224210767481159962686216867290126401422468522851475280294663242394853236007237909894260470348389816736451168658508625212987055790513779893496452402774254096451547684804485277806918059070783901604291359422031594806938017543960624708761340783285653245433284258009286475815038241830082624672135350884767251005123264029637070066448182618590310558127011323630042095146864294772654210526186118190259948764909534240390877721047244077042041419704226833308404294893539358380639431259492335495699346839294812213323992629566878855395577007084225050274737209072560049646718655194517980964333982103945156429757853667043921137198868622956796584772974091550120627594027180079880140976584122267157382809049721595002714750686710645187698993511394651757224250010805565417579377664501551804885458696213619531908257604373101746474841030556547944927430578755259925926336323662858952505946103212504472533964321583168122076242575639464734879858120270519371211670680259872050770167335983706658907783159569958331911609973893247175009353689331358866036355885799841861902328708426082673866414948839068087409550864338671256786765183475247516865820300737481363135527803391576614610245333861582186503258596038184954109215659027574805949031325746624289366984040927175838611312540194416107585997454872346838171186811746742495643821732027579879910881673784625554701092485481437465340453108949663045051679950589510201669377526259352104889639475337293027045347247594395829462598349873585651229979071133343183207473613611766705327144248758983565010547364879883790570598317053463204147637422793832566991568327667533847670832084496144404831376858091989019852372704867421939281199930898292365159771552711959184649182367406107521006017370221233567187447520178537559822205373737604257362141069695391973635216432510698980626762501757011960151350337168978444008064522628559046892326159373686144531562132112763041131150086219635098926103983037679331584594341817125221462634257517642766099682860490056939472593109303511248991266576436904435808725804255370585304104431878851030048774102328001345993274903850345185297584714674064933513816476200158766205703063845724902687421613946266636528036280542576727063583692501670643281926647855779730283614116227406873769938625517330463169905357392737441735253413250681073375755428991959508946116602076406694728145514579269923963475560029115736529857188846718117140230053289271739544143393414579786178910926503030180023440852323951783137561292464088182701280578832858782041844827634732115395088048783731503223457303526218870844787243141397912273005070760995316861611858600324146292027541408525668674349862585023818442580519081408645911919232896647031110425833467464539243613438288322189774244433914910237937148875357909521383821634595342741495108491693515755717663973990954651616262671520491100158894319409723166342459495715166959074813433067340679336702396815046790050614713722022661076293357280693759404567664874175680366047307154738718603776818547862258383317018603941173844327142861568562558797592910263104285743411548026671912364767633361194835514145641787058136598786557413348879401685917703643141237268697923287885466139786196845664336441405108207586694285362250592719676153902486352832742370103685331065058912709824705072848511534210705214531447537330732750422822537536413757085883896637942489379476739718542443361379158603613072687309984404076846501671708895142994348713160300960556082890033231164817068292082265937854873119361202218797626675340828153230930521595675794219833616217683252862547004333644465430907839401955376086634774135480301339054383681096733015099306640837277383114058427233824488770379626162945044908325677073806976633276272817838328955053705574877233656407954510142755192867736286411709817574535350929522434219845089078135373618144481839219665048405855897302716759590383627583711231586094850826223275703469639719313217792670120319814481981436642268230225665867966812005795677721993455079928758301697794235378091386040550010563195771338020507013383628341551038101382538258094640659086165312423652705969246202173711513627562460610810287307774364899227623774568507174493768725072957273926396472468777108554022361494302554914083334625065605641263593657225125594609724904559431212260938744626628852905490100598525996409700142092985361589734691338925088469145321681732652339922194064223948044265268616242473878441552048831498176794670231974716658055602040184456165212460113386433842608143930438980031924141623387804082016491122186985727877450512568867370231097130813027646363406737320871678169235549337664488462463987959858229474082750276630725948712168295153735140848888354826313568710380966606142561784146140382090554802165815941558880744825359831127803584000589184686144548701859939550811071363328863577147553722223318735676010622892186006350857717507937685668215764596278302348793105451548400323991208491420330075179388822341537620707628357674304514625360835440243250960727773320053376809069583283081656437616293788509414228805144417285801575895074766541267193382716272930211605497601714517774439633386706176445381317818278685183296024348985121252511251394565312966688586043581299939917244534066152694780823193427989024470610889262468137537536969396270148032008618053924445277944081888916583411085459012705673664502586783705177599487702944789280764563148287654523631440226215278785069280846978401404777835370071372981386439990698513836317556677333104581657432716213346381655985634832810162532319573785986917117955728136930783211667453256623982730897472501762789953781778844275188920282935110024710671141139040632829679417498103037045935838285757968883692659495295779455116733279570108867978286250820012900725930133205602052105233688895633195178986928741739641333805426118134398072487403165403312772869128642179846062385157807267686728009131458320168720330093666152197774713900748331819419747911834193024003991633044998943147224149557370685456580561034743730781339177260426311468258044548970455201291833119337567424085841747114087845868414297778475916977657299781942242718166198811991245996489679128622405584361364839276902158414932543000112186054818054736598820361592113619425115818609521610576455379135307861904021798209318034797514264150553811943285248388948583817791012527705149528240138771603735853125623772960033193905019555770260567608864446038483389011093560353362825047238568330685109413733792671502174879796488483449911484918978289024383855169501101921036199983688840850847191310959007475855261181076248291616985520530185651334111266389284763887252730907492745816627340738643444878368883322165557557144587896723692123197771791870274773997986238557671556576123493183020797381941291130617022389876432069074951349818821712981842177527700394500564599992839010848560838728245438532730925255552952752696403252909800273046479115199807196075734826346584190376474614705443261196922453875392885483227453524817961512379366484906919727333443068212980770729767268804074700207951435893729959841319621020222709229582865516133986945243635086675563191407098841069943176125047006158356487551694907933816341517797539703053754826773283449236364181498799651155546359548831939584991320096828990869245701166247726849243121348999066850317630157436387847139992020472583469469547682527199871761447190206600919448273060952591270336657657642390912998824689095615342837256513988482061280171431838038580290825697416542702105709223211795922954792435272197587257193947866467928532421167314894248585437520746131943860223022851414141407530772721804877563405242622279469796157732465657677450439875594755375755294021067034195731962095786402931277727131392593556666466627606923195651801408909673804850569714599841738656338448872363440741046091526594650871237289120414122063277909468980529829680444492439781014676481097332674320401371084081451583658792379156752413541175627997837321663562682348265331739274037266247529765342467988950451445444868981278119872877767534051646837939278310112964545501342142035426275785915088144534476491351957034273468593779716707471823265887519176173265762895347770134093632417328540142100574459655153307066947758219665631208999074983302442405763560238768201334380367059666608267447705471424990641824410682469884422192267714116582560233808986544641097691331038966432752220594476450501874624542660386606174334397566561933363296314097799269900254067053759004046659363255903307572587829210670292640795878936364134442096932395158534383618085853517872895797853278165664886001092391543481135917681473830481025647130756626401528801037953196975120423969359293624108229817661055113564255641124290224501983067351043206805741791480641021370836642830977423681017082463959349966406956324804027101498349760555092836322780136581486748556878040307216040302749016161296218998766693324890304620923909541830973598109671161695572669759554765806824072789978630240814297704953629841421321643386246119933481318592897992134382219177706970761316548443442471007055786713397539713864826728329611851203050607787030091717576612710499289680528575550004039546709109674080815142059252213556393631299053540715635613428891371909871784947677332681635819746600102966526403707691321233129501225534720886129892427071313545862771230783429409795111345766557631741897830113637806231247799366576191104788108344757066572853398435568973634923741779966744601866353215952842920102298021775690605715653869809454399114754657299908807547622862072696550634365019318432301682197660286139022064025739369933015514558622382419176193583740101695807124338645971325184095425292385066522419921014092399184831690093173266750602618774928556112450002539457553672110542880844472717822573990026887294929931155273713306212043031468412627621985795313535687624319577781783251381541644973858004677343956782916822362452693895401948777437673657315087745164366009292492442586392432289373961169029878574934488239790009034274500541930075231393775348410929470673548241113037016922268020638174120496137782285990144903588115698486718604124946699906886303879877424815607527316599538219071388042703738107665008502192555573526487006074279260912340036174087566644177926700820554041987816311042940437990103842408655984652401621150056674971113098182914940086404792863929677559062824521928617692279137442357316272558943786016689654891184885967391594458373521790750108751141111653120075553642019739809620852529038189882102303363470301199554493810847637270421849425492747555195162797574781907819983727707992753443382777404048233427038943397351565067518485368666547393295572534768415310097396061602537862581264041974735674502196707636880804252588991042087989816805392863533619785995259871718501631675263347691885062753246785122394434836809838807715743655178463299003649189300508894200975241515305048493369448607660115616750180854580301307286075296650743255819345252886946711258048775007170251619063735967600143419565109465531896714179885367183509551941977986418497976702592282879618689056206776237239279162674072726301329913312814634530648758582849142241200113906500170060197980100012435475791807905359879091060967243383620536850001973896662322000978085166658700552342612861358477655783483575633192146225221125593954403415545992070010022731730523327396820192130003277244102074414911259436378569768083674880183086775499385025681134921071112020506931613774913370094805518776638357172015440638552263568092636946602511763442195727639442683775492038200457016320011959922466808792987154525181642779164911735075969687375571216247806532133654072226294833945026087346305562571106395395258106811577150820446867553257656320891023716903982933460718704301551282871073711310270115812351042868247566535877508084650550017322945997585989591603627962734626973541230500828786298786476811440456230395948477190297489539410768239035126425517042160677279242123578223461700558565460051708018615552305495912367402090339383531972117703867293473435712137534152884780703696726106685187544376763400526100423790516805522532458691056078167633914917795092521662502224602759924637113357077201201746648280608961713805906031479698091330983580993712888336890878259611336424767293645408001047253277374562686596310351706808011813437115551017144208680407578615947928733626243358905606172952141169012399735243158450902602709641689567114895101518531486867662616943958774045285573966244686032051187846537025544936716726590132224207123244008258754680906187746057298687114338123170868502797857358341458780365072570571364886968342012837726502045438798568303354576135691526793020073215846503193475188077191105491957945803448364665645727945568569576643414473009268467206783494926611140175563836668971404666428612187162007686057544443779124179795329652980123010862382274745014884740396012259964749930057949882427316127394795661281239550898986173418240024471856514499540755227813448534590455037611198716407127046105227360000187234609329521643110471045897745462985393031311570326581148233947363929540083024522332045337490816847113400788592057783625050005091092462734145503452218869094306331671809226590511434610985576721920534326631238468924858425235481394489016511309691973963530725016577913315355517048262808028361245555966782111549651006729201033439149838981899498371365405723324977910477420125820766066413900534503113784918325273698078523878929891333797794998517292065844399555821160945875490021349949251784552488973745770531613935524953540325704384945602565016388937940789616809374666764434805309614209840913639687584959346454504927316393660170600076903387553485403971950678646991239930205200437361208340965961258244729652875904859757999173375834845466676917525042031915242156330662626113968789623898320057390025687402471339951311142618149096801508555245980785983593337352316151535537191074413632078301827295930349785509008239280327853267598456395683843384545859369819257145815122994323236668929375361341392548017770562577086629822175001516388161194834955439228377564810203570825975562949385366603976133917939530853840667966099434210070470078728102938452891999729652038763733707633518434269229428516528661390326207165246592061724634824723516098198218180049888420727764479431896277353505758483676115536337707422229521950463070949522177441772874832475719749432497370702233647134254054397621887520449327985386954979584648622654871243351664946142406649989105057726367015601039431558779712587559499843296302823539815147286054464931434970826649570580286820038222726432262200357351932383208868376312035256327958465840550796420636463590228468678250285253257025695935311139097811684408290027648228217187316774685257128756113452415579688662168846302161773064035877416087284515437940186232549767561740925102639291490084609686395130193524733469055247520253871149629062674290539442478898745642937424091238863497388638621774101850868218016806449477089877478680582206494468160938935994404647883478838027901657778326353143560407738307518295633576227679889924330261357877652404414955871254222607783764923599831431344598200779734899294972586610048834126308364332463895555149557890454939754964283150724231628366234427975972892929413048851278415806040473420986676780448350665620388915600878643548502136792506189217549780131068403665309372102071345903310340681432958441591159783636617947765161224486068722525296730854320537845144719444623930934234752435213003725362887391632017419952928101785568254109012956542247789261762165010907096216807841388696271847552988702735641229987753029786291896886083421011307416890424686014385457854690263818973735998086934321618341134266155904482797997455203162038165295500529443861033535081072717455474836713630480500227314502237350677662564345579541846729060113831330078612772342917810016261397622130447539749682562800788896573456498337319508298855033999374397418756396437100776908833435240880211471499769474167806021150831879671580769094436296829544766693087757340507679419633571515457547858816709237977693429323139480887928418531939428126489848741742137369655185180801071666787963977343133586670214471949468809365518116884265320143614056940498322432590539897205029933847598785183658283681854769580257051803273845103472919137492354628296092479723518877437137794554436315659470553955312145101809747864016840822269977157336806116881600867305836325220184619396253311464216688603195618487807239093692531709993610167286289306939499241789038509063330631846850668285292803604996832767415466596136819616884386208423052103472055752917821558176337854939818447831492798114501975055618218086772461169423260745452432233962319009372271261011342733048516423415459179480899393344495391600334454739807632195949815926200563481781948644981891686023773352198212176885538748040603117038218612356413684211027562172299728886661746062999758944368124596182959344667536672818579861633292637672511601052477681711046638488819583911826716079501668797111752660358052683872539596472807570088304620838989595640276672550815548253473171436558671696562133386703526212183481395761899733485281690078908855315023370447667165790522667568137680868422062127989009463410207458184277098183526364915026625328203594869329247190805714279398213587598105111884731406505726820322521161665601287950839985034544198069968297192980513262850087707337159930674141453061562740459247374159793599052856455001895923409589443447461227869254732274836931120550138305139787928432550275047389897996838334751798389365791108472136509260812976729894656739517004359893538282635394369875857405999617675145245365081992406506049789444560344732191728387078565133021827273373066758154271830680700474945353592528636309034782134504503968444877394556491380151095493719314586532928344099638670980716326018591896942390403962667984727750652812506659779854096039847507099391366659951809829030811276271283437709650196750172773689808791771165795266094485584952508802669345777176435551945357875388496450387941917859759907388087075049095265666752457097367484059008094775550617854182900556511028936846291775114313597749939213308393995681812545489063521667492827681553466693337740494409241766853722689973746108377815150695149986228850532481628350100618070005878715604220581803029894275019516000171138569966350825951062896280882197358495318686850149378101178862165282713553555146478887526242332017719418792759256577620606291040996038987458461311806924888841927952195672801176340217737568798813966997338745619533366485230026339779629087806307469463631832901395390786850864774672792623286697333206670167491438864244557340363473737324298323033878105461167601585272218184771192746798281175597284755366626177364636891985530655645843051452958015107543968391789076697811613774572736390742983059145491226991768589762929863553606603556851970127974126052870893301005946586571891685465866017946777125693544680937829986186622464530648958800923781030096359288316365293778985036979040164038147149821865778257670465153366631973513770104858562542290969772638762599186994145548793886074917689699694284025876486499534013862910125362052633089124419262863039430872416135072448036584277271174918502211111722276977320464701686151831987685724934119892511610811583242923907724608071766635468151128868777553740779395188933441457319213613846855402032634070978351342902552237669458894000069013406730009008758538220228049824470271321389995441452557952129332934038416939100933888444567704861041659792391914064501907122860052806260608370874615801019437248493779436726196869018794670004295903584438388918699596679897452543431747766620401584122276985039959281116094668315548219495401314026033140408802266547877009942100403754059660138895078501765208375590606408690405327264049669230354388830138511704665220969672161228562040315054043204233987026359926219047496681813353421786968012536606388964157099783456498206578618107209752986928588879171917814977053979514168364697542562953854361784524315013514327571071082917987002409231803034565388906536746702786124155347613194213702735784709760375472595775591781312015887670182000497734463472937259804400586118011816674437074919154501172299495927589522449671827362108797201052105398586309133374066442434729020606400176475164145409971676141779621361626074111926013551231315145810876100592684549874811359669276004251766688629832221250606050607200350627178379355307254612496113620181942656062469366894517873176517978741505185922894055155075280263636273765480223033692211549192263663711187726631577471708830979852101252428278355274040602873841556099614191405072441364800453286000835687109527523849127369349423056150925114317150549163464705939957407164632197685321207418048463783234656232950675042461898405686775984263597817974875898262878178262873825908971332496747912370493840011738583806186592972296595723239870683778089675881670021948540229449331458516981231652012836677816122819090317482793642808358246614736100419631406348930697460866335018580137294564152743535369651307536292832103279830754063577475191472698049804520082284412215399516754527013102020903304499841251043459908295080622135455855158899621427170057901015182089700271451187082693291684037130588154753202347831608367197190431186322645304513234102333086775478695543466786648837814682221281833326666695872680219913200676822418052042228914755255774672049795212228566894569399400446588030606701374938306674913672086719674184163400006437503093979146295530178064067795217445334654754073803794913064669981964082016648594185714693168839087208286994764488425954431701688708487102657449576252201651026517482772097238973334288809084228818198330479952888331257861541142936674837069287840252401693477959577849539691386607082253552816485913428116700052344513192714857614024621793402709918462735022140086152444570894497844226254927867423389366152857058200483051052567621684933996635679884380414381261159819847969839011528437621647245705891084105469636954702931885191604923291419240909718394311300755415802878711014367015615935398540460345085118728791045475195756461813021489545999728034771049824193034177412412920386372489514566356175850226750940985531012018448677700280979857931025457826370799024793916306757184568605627727981628247229419349062836901608152457598683694653263240919736218856456876085396591072572802411853742367141174395150849781230525351178724658554353294129498390198779699708188581502069473417469050626297905403633452521525147902183057582959038116691644154766744860650440304215741336882766445411280751225216318484381580931390698957975586416562650402249287031915393365267147992131014992735580307599215574171451797088090077219552151169072418621780671479947000714569139786278129040957177875009525381921345688625134542460208641084678817609902598619697716303763121218502638411884158933799914245592670060079305243160090790615784806703163790243720198221299498430765458418433270247433190634739500355726415845304618421024376799526819830027787185490679668101005098834727917285011273496689862166492199365475834998101068039977704986951560351811649740625499115985367180688627063130580984480006638442144176491303471336568352391518725731918689624284706631531913372133856932408975137866564194206999525855093473406632760648657993227359764227314303770633778045387650933944940579060923030586422651557479587859297865432124948388080887445690573635966395214395323163680162137397331401212718841327264068051695927270704052704628982916489689466147869905377306329743268486866902751868080754390926785591555593022432189899991087808444044795670766055812364530017172749821818468217367298220185649427200641782886695826498576539313713933655369991593438099281335805158120866792712910087332803579627884512988023003360388416270071884275577950055600281265519516637683625920994083203113220893870219542686068953647228555716959644136898440726726754267182812128045647298687951037954890659297457848703417725880911676110692021886796791421098273998493443766148873813241401728788694422402046314924818963715748852487694756906114967877498469432676077652599916585985206491107086688148850719596971297256402732894095799934726354777594009163324184627720425528898336043559563877837666235094073724613321502498181098133804455533089254707540015965192657013274534186641335558777932003515404567524489091150090779894376201877687271953510939052593695325650612739591009609128789404490516043734766654076316033211368356841535849653718856791168861241756865844705415701458987728854770636903663006746406468765201032390954054511219661954579884654877276039541482483152786406764459921024806908535208851343988082537644439123163852035390052934093104580127889575828378308208322928396018165349110437747349365405426509331700782386071963796077049494101758206135793276594706234752576341159373541923429805251317775920416680040839422135677648997702646365519747712164245287029203563662974353566881339896012570296181644340918622302889362310152535720693882735100377690306886456210684982017506988277806579220015640730594968607496271604057978676889121250191052546295054201178620210524215009873308958308446759365065457179538609993478936190721369434156250270731141792192045128397888396633551494575734163268296013585335406196755317862993163342992892325212762804036354406311374708707224239465273101382267607631072126238575147466625121507315913311794924296453473345316101225973509289926024582491374001948443509058371920493754077185906670087347155697584248092872101427648349830630955605501328547278464817287243659819719520860931294197721606977180959146675061262004313274852196359442804900676474982447447272154424464051575056299698379055386989644579232380640791354582032296205258890362948157177501006071978304879967948212443876513996761074913680252989819825343606464552198687600371143997289377514757194533356224504476596971348563543537815903204741003171598901339552833459516376862538105332441089278536915758652386086569862600810550967785936890112714708263786669490982858250358269374784154337666008043379983924822349442539160830889390867872841344712356068089370464567193402501325659215427840781259182986779120086759144257576635191677756187632342314216606163507174841630009509560096223250691811502694662348746096545048221438706164933901201497706926537208825356176049775221435683650937417331109982327612617192280271610524857901286643541707584555251776380791210767762710990943246699601360402630089009829803429635824595676753103112453207991041897279701445329709931734777594998691401569522150230894513470907003197315484445652039607091554443014978395090008640789266558836046841663547141737200471907891521238092511939417318230152166069844658398704082483226580422626614108056054394394561360098537945498876345886844926371879670761697579606991214228675977213384123149289469672974224019670416510739193530021647078079277733221018946209629245438492433665060521370795689157825221215644589119413864554543812221317145731411777565651584589836417716234922506681990555326333682502158695339312779336191244267002297709872442907056572144280827102073453495069324765022115152458617252136672372958876908424362965257073345333331945883550636524552208065473998731832650885222522607751642320534611490513452409623202939049514107921723046017111198556755064408797857458903532665578701428962464238827585350210326003950300018478167323898471364104413729487947178446056868474974521799453919533956013739964900813284729780584517790581292875337576586378419755410122020651651404607130626515524128885613661272817537533133375778774321492498372714305252031742269738613471996355692706245252645145367996174532682472960310700891864736992144899739384714193286772772155241669340765789901782554312304921055814314260392607055504314234730388112383027594116252340224307171144171960862652081486188251334634020192303146597816034175582835064935564556726262274293316613184144505976997255109912391994382618435606152337156926536685312283812781236724249844329754538083761206674921324348298980247471348455496707174427442275611809306280997572913438665887682621620856017942574161408510783217978388494029320807110695780197079255575514781749306287684115539773240590312834899908278972837704232629369557504392146919226016430702018422349900797179897327503127572696619574472092903309289060493734975845726663946945896906604045181948250728178230411901140715688761834926297706208457389936518342322580303644329791947381134168149012966616966713395532231983163286283661033997589290973435744014232115566216080439671889933223850710390318145055938680462437748689620773173159313988995292374096412845114426676276493144523303958387353822849495252878080334995039014044124937281571783124360993095158774142046325697117358373497989314060868456441144421748127405495742701193981305933681608443526703664749209885078525980635705822715520036150974493942741514947011986296711878688937310299778008101831175928869250332253880921896603812396105945340992135467196211751552199054300868195090212475137269049719220529648296366683131293857584108205570143249939418744564891158228824022305358679264550264923628438115865165762646221382596758261917813891702254099871867348257702499201306867006777377186189538877465145599573796395911700472982343505476799632042786305023994716401923983295589525556415670699598295003599888077517292912845814739770606649879112858648810805872254559404797595279508047064971832129366718389023044226691830135110628666064332220992115440728919614183186906011995401691478397503811746516355872268322974420480408319483284112416334848774222318066828220357039142244043169449636105753481926682247189435278807937417926046043879790789494526718991572054353466810229344294054545581507488049609708260323650828539609924003916285314385484521402294904582289537401222266272149952699536378991361251523378163270601090530445654610289510546054270943453109251287590889507824617586148843673917570035032726522492737342446243032581679767268319368807677616647152010168866879583967491202583673809896327280840972040777175799138573334514391247704015440716068416600003648319252073417247434922598553329745829426902810962224938823537322080368214401945321345578380539297797937349802496934279098461655006134011688385810714750081004237476415368821624868673192337641751417573312182514501194640970719351143965462579551243246592890967909638685392930638906064312044374542708479538204931884694596591428785552506652037854308545242236817597462699013209548603053642315247648728392497796880234119609198599702030900924320802891486296132335760453131349115819979742503426246894554296137857549388267758262192866015820858039704201158467027579673524893752289827942195121530491295825836916979476287541511570791314576695080596581878062004937259459555738049741818155180330601088028693568735568590120646495156867943823137892013065886182683486194109095242929736465724945569538974550100930555092385197932313385180569996861830679486255467969197884299236996808237439532585077643150036329250756197933251319387363669914197450648033512141837004593439074366955638139318386686022802097818944902491693538295689207976489594692607409981631566040901130449653434389244707441096920592374566629675964485352489213528514405547687348906860323742029531168281916395579214904732229925811035753604203237632942301457913625824952071521714554014558488406221871335803711859216303151679185606257993896516492769107043121588519831721980556041856628805700868787151085013730984968507196426689633627997013426150643317658036460417184501883202150455775597143948149977659056953307359463314460021036293034714891695457071882646861086415938428859727892484760115451157241436949849619254203569350729066921984454901274415817438589202984732036486721441217109663961100454480190550819210765661237331243915689750286612035297066037073311775904116206254001611823922523929115721667779876138555954082050688312253203274579463019308128374845050307449445088239064844369181491230651889829472788227838245238037925421841486065241292958779424073107616625800962488468756283829856003496635143819932461903837831933131744884416636924971232634976422811576893860500555999530194054269235944312393525766457972970086663995333664375921297492763443433693229590351057458058659998465055077948503681931197707585274733916554327592530546224139815469213548648607536580879854903417974564186954137650869472568743678329197743405861060754128721161400364096111640586620893682243787185150565593424402298795369445065028287827146087420921657148543403544957621692057305078148416739692378723115125154911777254397378508565167621437702751162522056580829512031303462334756129117500901605639357324181885397677526771434238108458442802280342566337236342556427260509525666345883250725512842523985598733041053622466215986119082494162577102572160205545122504617947809286576688020618168324634264782634367356335751732113853977601974109564778774440285122717416931564901309913440905657102111763857994491685446147661846751180775852372021673992509324714131019074738189036063417607960204272499122676934560766137934359461961946604747369655506952803951960162748646644243112866408708700537513246821555453028663981818428622976892087304548031785541880926273881134893672732457975217165485224723927009881135504816513102696938703839401243842128705174326275791199930915176668491226797067852625964167418524722722737558480407074763664893410481053312403376862435358700138229393650330150797463909954498418565135994270927749897913351258896683385054999574637269158366909918875379105712874001784938331094543211441405670559068021670698564301468879491394991627380701275273673722321604432642726851421900970605777152942028544700625160188044358681362819840122147768130653204486542615722701190670833315949496135324330889156327827363355787247059737273602364122789304360854955641143763433215110933150621809645199754988162321752084731228587524187350671445195131032335150863030411927182828569548058465541207773137508209760630200102059720578672981554769351811074078945721634256584404142270075992250654458854486189398606559247256939722784479720074474924601806204795275685120929142379804323904155076840713749419102428265099401791732464333737654945007693509974896979085315917696990464800360308525564089910588857324749984659261062315930108819088915255145363510084711578956834742205226329403652967308758465980803103973933420755628331113411714144900127321978731423188140664747343157193658696418521447062884655898098203295173703609279953598024871891230557577571769868688713473555709100236603680777821244170888678882699576697971320679330285012643985004926685551638862332229720553310095356035740206477491992302890228699407325148320783581085900536360063227138878249614156807475162126066411402602486039387375604905302918922994787855561316752699712707468290803021384166826767083342405300206848588698484160701639457378089854332154817177846080882349694873505708604003404168266466011408279742899244517825912289892135828806016583417446423181277975424010040109491172948663368422060626409909416452336512765901016250873910365170957260778057973151938117067287647737321026512848263932205186931547470324509503602196373090668907938315330722615113523843714691013802813699505849393670463129801535987119648687299802414800403486510441332780838056343116603615386574060324745367058354671236202895709504329446291650629125335248087218005550279310980480091052207311313426976800478862516410266988444114688728529392574859950188873146451057317216207812302418074681183739346285243526510321217709521190407199785284190876876534706939625402506971280525651270933734546971355440059815616374298813328022950558505762141500638716426231299806099990162770954836750549788189432058918689824213826315545415711619246355897757701411787443520332303893091524711091928062882571711857977497463033401320243070799375824056771640937660709547831437286188688356479113805386568040097332866707334379034375724286629199315402373154450496333404677721704513013412662385011438118513978419308918231237613436674396909854466016629117820020940910330743330429443921589571479577257179282851544571400232908272860944687516419964141687935789900830816137320263346485648616288086117157405097920456092619604347102839868655121386448594017350005414768326591293369092589764890957007792874696913610851301562235852692597939606034098931591129182388670579394947850339852927582615472757607562858489259090360430413270621572073654165273696346770980924318922860138538276715384465974100770507450758887842699759554587841625444268169610726507377636036668558305227880831078602722223750668167652144586092201801437843124213092923370792947848924400396293232332486666055426248957498049772126285770136332924620798485198885395181094685491457619279962631055737460304704383727556898271980544692309063030176622528203098698343926566542194460084867384917053746484398129151650187644109777619452676246496323742910371279606807210394369623414693225355319602274203404144452585647822788178476103004993473628492656135805242162156442346835985255929436706027735533794985959846318867686662065661779016256184124592489175881197984601446463298682151685586384870023765317875632143570453018421994687603838202001153762347586632228658353870053507330545375524525578327359708677805719251723385811636587578456004732089614421233470854037250359995446876460278985989429897447772598854448280687594723932569113805797975051705893983259398103788104475396257957874920875520409181910462692856011792840580084800539378613377184673721369076901238740426330959997972724928825045923586171056636384211584450180875491368505064470642887776211106099213693424129621148695032916727025872180421581277478348564225237255367673340261625863608173634533457239054238754951948655274102324550980577872157657554053948071433154107332455615831685154526050450965529409226425499611498131145858172815465989233208799353217832096140737605007612012133227087840978679616657344637277954803486781188271398199705616723916851340996025807525817319801119160008951506413777591518694803333261805949097398205278382242133101151879849517199809683077538179456537585006845037317609496583192768162273868964112087698439926811885309638208298916916796812426424201121813596495514723099521509663933583100439492422859099270641642794612859327611377553226437171634051570170351687001155741326189321713795636703538895133450552112291949836881193208520797737600210871408375405961398517232154158954518306593520828320636754166072032609352954225005846433198312324415811308978730245030077059840218883199502300460645261448278125271293120168721644691597079919011345022527421939099021907604369404798759090739446383247092014332196188214275284316428901949567052502514974845891482879613654421928084457629499453388695161756694749708386697751217630315093002959948993411214901847078229537437146996800044522532920132119752515319110540880749108909575694110631036573000931301824492902419473586928423456619331940916179915040636435193137795517515598230448479525992749577871769435417763421032118104375929997953469711814102203897448648413765388518192152765850678889499615120758866994692375950251745407854496632297258263128252395372102061267129847663346203172391264375941530136127324056781020177202305534325444228964772381729905401113281885437731857937970658687344552573820244254146296044273832426339199349558378791294336456487713942540140462318037119286462233188229757747525669120485036639242041755320218583079762343509876076377305442825549672209884317417657496604037848630102990527786420645163250767326581652058538214850268020543246609547119015873988448884003504343535811949063543349599929534016801523154594035877502655681552035356362483286039995553699223237043771827647331135655930483509333237059212631049404593466477095699803385923011749092121085881829903998254672101874372463021017263596044576169365518433609735116651294316719275296856549795196279077604041147355457116842892404566836942793239209810106403482447408270716790237466365209681842377833591928731129642128970416995340620936706028378694710360197250518085179867690053441081356032242999166594221837872050616588326266842646063440866325631729139819677437700257268901309181290083817732796535609942874058352705940385182427022340234140172843809751449989294878014545225089221708331957293161695032546195595405178894113093802155446608007587945298754376753089654319281746617537740520336645086361459402513201750444330894159336578419731493712780480493297153823452984414870105324316776161712663089039029576902872060853333728556625294974426076191665159626811622954060287255781823674861801779870525567326544634937938798662797358079253981199479220913895757941364449705077896763086073186505081084181969995175206332836295522247768871893247247249768398589139539940351828364998742358252741868180493135466715432845164001882814787804198303068506685640874772697784797917622459064648580846337497377545915117181230460774667193866984627638449476159104206405277483605249153318899070921944798726842173117140847895038105075371712937904892359879821098982062271355431607189944569409802709262560215124105148896614268470096946477054516066271280876901156782603142127887042865565219186292438237191511464688597564499908856035514882276370766453097089226807987416403269100030877334049452495034597670714525824389458184332642091218524181400029872008836837351519151790247718979347217529140210484104665268311029423487918321784699048347359057085473321205409936242978573059131493634165572689805722980150534416045041003920989221161609650651519527633858065951884397299730869670204049995481887732308831221243942677568847343713608403163272943675568921337071888691651116125872126493749327962133128546129983928508716012161813701915239809112718137455105549817244443667562944115076695137226526143145430853451674597959942348678919353890373754956166856033874238892813147522604477818997875580433329554295302400065556558416544502966045805833905318817608377713481731747404613600978164722402451510445761464342615190874867778563593871421266233460620992180720976884548894786000776558822180863419091861552420052624980419874239496099306301948736874766081622207813959893213013887475067396196098532672369967610838007490852705645706626605967213473800632475481971937542554069003762211413835579246494468943070605412404285509608473049345572691654758630206283600964936619535154425989648576992020423837667881517792604746023306994960879454899616493713204536200865671467879865028911398409956839818533267475015964328141479556520043238334207552895258261141792688713395093306688682766119240485345589268121097948928225437289054821999442654659385879416491771740351614121136532039613676905204047938420611190067680363171492119666729857525140040120021004833283857608001450553845412863884833790362212505830930576084890387247656180393780892975114972597223439911418578314265485213930727876780392408423791813542359462480051864461976249098567957537289623019626578695914529851357156606195408592228644266078061311027923533615784626627728488045224228972302739380498664937231423723165346381446606676046964084370547577564881752338743440672462979061628853669099727589520652533861544387138161301534522050535317797551540408476467310863751711293057475543375160091483375112102165088209038797273121449628961185976436117910764767257362870063581879509034711914669132629889267044487956291226654707610470545546818645017151923596516768877425910177825898126866583396537641638168336015788071635161485111594832266301840092293449770556510179071780645059607543612765526981554789344504800202054888819656150875685109527870005799866209897365641945771096729088664890484737382992001132664625056259351013727908390546421960117292167053796779675865354224324417009115593584958019756342870584481860041817101891031835927227528171790868060978164386437918896900927032747364998530321748025407288605250870030131537207044496340299701392707817573267117500486439693902731059313465844781284620739551966869240562799202688422763960941720148990142342076994632516872097662378571618890147787379180113602708557193101062415804890963586412796994666137731912939233762874446848757066639164474088701779090824777061538448127013753209727226957287164655657274442252042794864012172573433710458907586041079126932782501231183115552182396350506063121886129220354607052820833916308027000165264817306259428381380159324059377726402037843100072060683328385926704277132041993242040869020396094612482384193758911259193242497185552810715841133192616127790115356536693738135452878553739887107532800313513798387753258370833237628504649500191323611305580058961196932558197338900685593682029439497523793258007534632594773399312860053081554307474927324582224859556986288261355803659905369956694794702698300173459770181725021566635492550158652403149305756290738708997641635496415019573568481845730924359282621204549963880171970080704202104838324788677324998584078153596360601610028211036715858076124343647879788451945412542749365828379064549986573814442485523388648182203564673184673754909542910110758506422275067121917624069959005333974626211380940885261029935739091987993638475878873711421055237906158092127223027641171559647511960786217535986006642137818662978359023127117302391802880869385864487521289113654349313887041054497385990889608630522472376191209422427902962576842577331671773873123946227492209438823335883909822947031589965238697528121807233572771822170754340777787057612562964411117303752511142784062808668083172945854424899816614643498317452726710865648902021646326579019146218783263574307696646637878442283074687609180342618543782047876310811528712787401924690127285257605341894359922568483604099099756222552143436447237184667147020159237248987006455827508442950202924127583573206363552445616333912759150471311082991563725010849190041746184292300414655773307816106541568610538810268550245627120132829592717579326863555796154791923171171678769090960831949072534828135005256244125869232198515582509444074486742112506989907391190829745072496225170127657404569464628275019821905509289653360915882913818525179433175118798069101414973327171911792757464616489065233289959920270709502624973147154225783347897217732453037554273444139759084146860410263873224276513998819966949371925976774920773964261410538318420060479318737780340924668426975261712269276352677136280691026289922695409385180841290357053499300570413960076099568168494475241422364074560975867557566775950777766399373436511278586620408919425270433072880709071189814849770120126458427209387849281626540074833603946626406171833444074717205808015588889835442158774151245826496572004378496084616672891952469742033210063007576317514959402876083257518337420512824005561997841037637596403726641478871691669324486932856828715770272515847291522464095469182668973173605351820468104617816174180349468249226117096202564518330134303309381083253095302055112039365121814431458562222124961750848642052027864961971075359089594236711028944304935892722322510014533851371683509448752108085947887798152549955342677112144399078753841465049064190258752332276281224334660585574233092895817495377797332765506181044091003809269256191459063531150639519935580315749695598362587076197399828177934222237448191882981469479409004066702109527604384384646689714471096439982555615174275576396381443333723878270167137003597188905636230202537957801235785159209790792604273832445497945385499352867874181479589779041567991543970508145952678764617654734708154478468417121166126282325488801704175630088299082837071393122537141945357085327875369545164310771121194202423688421423625411900230684704939366460307763249687558477402183151293034526188725634646063589240865201171014402602670041689552250331794443521008331265476126710937812110324080400133849057868401801907491537336581341972611282006114786949367509491039477630637385858112084166008259790377984218572852221648249871201837362938075333565970121357362035664189737118419993517215372239686966138939552763961429524648398480156841635085155709023668759120745694904377473966477254835575976402168970231390731795342485186037510784410473615461324578779961844870467386961100412345629213830520520239489628750178159682390876673911016145258077994622231824731755995011199409932665269914546177775291020781829390941083173280026216694627100743217177723174682828515823500272326534683579064797445550234147745393902889016374366574758430455536401596156764862133690991603442660674683059457907289614587418362136355849246379508038372826070753576375253007883723975014740734050092465570168636920844308464198878744656278506810671088086557449252725448717883067345117113771178506908041830670054138194664604467577041023262670424389646906644079194106675982252335244491877692807571985000309970281826986450574446971557018549943110813775851100879780926966486990813426008228928083597573245767243744136924443100189927292309814751315879954594770058385328460002742539455344236796617053244197839012761139389194519332551338706710498919026522891592020400404261458399853259206866893161735624194441542215088111169066974339463712495871787123277321444374152288341208707730291559796421009053978098936957779195078857782315361475768084290460187534042921193999052341407297383411480078404160756515203030105054402962362804807845063147696990874217150045629373248568429444065307584660630370672976260927920986057349506417437016984074082590691650532866670581666797635630603476681135461491405887730425980418811026859681554757587776037081757059338284983818507502123732123292392642665404820097786786561688302696911491416935805053281192546899373558876246223782651805353946061045535065822870320742862593039894180708819606074053989260976475652248348534120280969170128887056022725509698712045846638649186252910595595378591673654377043656519553852506602684870753026668124069907037196296155801911394824193676523100978256629359268068210170940599110713275035396086705299333364536715148327734928104311497931486681863470717517685403002435535409792895410985483154614619603233460168078641943779676485676730775490813492706984964260704275117366542875729933934959787951530738253700403678130992224802507789298148980083463632708883581489226693765226567022389701079635959631751698975189573685897957265884357802917897864090458309881123763781050797016417703825223038368054891832234274779652720083651598952042657020545091650175633451986957666800661355288715762184569294904035350214091120364000039568957346351154504796503817842207392205236259668561913791261537268940981700703718419057142786620074845361464427749868602094523091247396635181454457713310586960018602854646769807105618528547221694779970609478230714361625626099973357114923071077706331713934409712382599726361988540849796935900629270246735775454730678612727305042662846444674410599377717597710027297851615789755992443582730320243226041061346031624647959724077090128205721611958319600741332010466839359419987271323860753738013944805739033426644692038848357140243230230941160079385616995670970466315201742990177026151815548958410146878815028933994884869378324739397010824776475121089530554284816992463966138791056322929216081673385590117040488990686057337314010776028903138926041400713182632795670736216830033650288558701907766497464595779482809365679593133798917281623438477461837302455988485106865231456989645018111579132384566672233256766940287232659272846175529929958061178469912346273473241307594588287453549112185184375844245592929235232570841495287691883560985161037290245295520422858796578600870965544045857455896388793061459064972077539784251675353929932337475614914879879309222466252859782283035236692760150038698155399728636440271018488471172986822561049482886794828419479843542648346451898295076514675840077284838373463202530802136420175457254760420504714463661190493421302225145185123538354108349185266441886414453965907635869264085990701375896926492341839001736439198400217516585151502978432608285620456385111197788401779812246485059286466037866128304573441865644758109068377864347185852630365790054105656463037251152879654461462648762060704537272983738016390265218252790851009500668364688660660537282173115673461942644339371055601698394365227337330881562300784945379807726919451873572874099903164211173395316474155440932831518465301947738924678478783447804927508364422884175826322833369423643492890315402509996088847585294867744434130156182875389503266570155391257449610121637033629751742063758480032525251454422967893855980523089226130786499897173400129595110097936343450945295081849065670648437260001916984508749438013473376086257624457232984700324274327484811800041927434609244656082566891238765105082588112692814103103687232456427736791228945331072777571580421377131227149394950962959977320860944159709018541237243560170456168544550622122496313606541006592238717674094644101688319857639894251038139599896844127959782548814667362739146740946722459040407292321705196602241214603463009297148249544391536106093786303546800797753418318593118186634172481390564782148720881291758947386825987954852994713591237489959311939966108221133429611985285601666172221931720234976244711164093932775725851221472360379184307757626184055608710986256471207289177707845268969571559060260381578140959056061358006475769532606211137547680676845712918332272416634670894402294480367333372425612034355838830026876394616253244369288041941675756139956295926724848523043301339421275038186007496246780413452071674952489980068026912361180650935180621422931420680917909567278538872895374419540639024620398496646375199886779639375965439303065877240931583406958699804978707385347116603544176331024795365375120133618912577316471517978260158141313379383821708050422612109074520365278687273869237170629863962612854035114042632625098188588567900044225374843115851214216522118306994847352904027514136726368967641887386191080063557480887869819140719828735742131895671405532447001820963620517573520247244938761937888567998302881191128941693420318601480489602020857907740901639310943016539446064961511858880918195463315504866885348416343148149114705012080522882882929107331158170657556080148424153708515042982765303568783492608648727310616907353776636529050627614238046796135047187685285743896860637557868379609493075176877804802704323283839168862686749236544775240091433156103825980378122298143644063640286169337899557614892244843413213221504307668561327200852195820417002583780461087941941728372675184837891185345416345809579040318845928595566247615835864768760993800764378647282876619558404234406574011997497873001390228648362873757898419603229915238507989935977039174386914099520435549657269945732939883420203180736794325716633072176506966297495797686497549179168291104544316885778701820077631724526429262029821932841851771621696503328114261142832488733556757637853163256058613715016831572858448762376271692822921718481173646406069336271540456636204110065572066468915972932313551858496598255624182878231092253275374960502015401239617956161378766924250925441517021218975880137809269377710397346876630255530003542504979285987107400134780606343617669794609142487601456574173905520980004859867628030755598979404625552567103402492198695188792920851053712159174170401338435489924627788959433279125010826973022421828126980847992546203644487754270185702047219878334716032744117165296807761757237110010652979647067817280000093100121807719322988015398243722646307571666180994405327408998472654030412205530483730973984812613211044672927155128728838655669670635402062967106582796903293119085396202174293274432592841846691455254706202632841636320876062974941088780173743417724057493641432201568371152310326514484879733993347775269828029686063044606872370258977553946207166943639975342922885982828451877192314036317934661787408254463258684908631703703160385609969156209831894134120906496294309771183316742019496783319717160703788574172710352222483084284655860423400346150736461838394671896942593001693170467198881376591085105519067770120469601429681226291143551471686316823061027954940345361000674905702215002089920551952473188168858041016717713666234248432857714984919886010496759789786266981314797322032298527184548242414612899391927921545585502463600988417530330685546642668720960238012740747924602342850100963492686630456664221069204218730052049844043721735328976224754181564569783984659387587139537102225641393313217636695287091314370983638561076324349653092498861595858268286775451903800678039073263530855907020069094182509831539811456903661354148985089544743242916914814064054090321860885165990590857728394123834319378482744403293153736053964085617182306357365860204743670071106397772650999905739550409973897068771888277110282396143478117016479854577994600843966530438545387638545919752349466365668732980675069973400529864400235405327108546208776099424831409049827517334500626722135969446121025167274730718636645542247878707777426329935283596939488541852207116708631601511059055186977720252218651487564873858997762276734214622673472768032722936829695202754203069916959866696396780408373229011066761871327706092162097020444543921158859555526899537271945460172227043750400388054089991131193973383970925942092214060554987062358650414067040117061005850586660448410566586761744747743264612887157282655926973389874034883222098969424015087263231351196402577216437426692470663878889187487938134659053393554511876114603521443044561560471670370378746729913998852749291994153827655970202035475879648815591543672693227763552147201476090181930482101895257219430136891775806009353594658449527885759774535131401212214046330732919826295695624987431302845512763767844346859632552675347189409473986896778185540949765327909344537961340914804401571210363634764710122118427795486037031391053358417535237779338080006564279858607154822303089903659887700683776572343220449954326837340537728185334766920493869279630092027989828599748074054307454474640599235060168518966533289098564724211577367323883184744440355163082416520228081447449517879852563690978388711403532735976727161786436508798044411223810798215292411685985381751475869006101065355473368519347979185052111408452045786992631703632455634653855665889411982522582061873748207254050207654051402526103455176039233150876506856016567017266004800502193902181800691690119597438929032203314163808635485439910616182923414007662002366226288763972100368454453387097627365887083681554218517786649805601237465580698454996943805432570558263585732466792067061849716854619812238993356161901894607335869463661889317882854164893331712795211336069890417879038706682363930616200673194498795231524375967276359137370475909054470355818575986355412955173378437764545255981288246294102853081528311164348388050687970756882141952424204287679662921134437377828108403308789139481282033121234205449540034015906126745718636595872050782867982618015975678982850324510682398671155053136104312050169878615598773305382330125631708094047095172927605454750629398374939809991248676380265705472640840724406815026054304126050857389135224817283784359328182320639441907006607617499861471314291585666401804917712390521962610517219904195004685112067757184351353934286108379914191761826615560025690113079545261439861278902037702179170060498303551600597211787223639045041086728145665549449681572127171944278192349336275199831057409451777866987778795755617127526359071930415101186243653462039955788115305955830888292818855451499487595708121757613775924635213691849968462242498310491440444762102200691003240952285436498952566945932116120956459470581773317680471107488571548751988633741802847402688259853156090850069170901130304268013960577110908398678222670229754996976362433372455752873404114034959250754427662193500751143794947708837713593944749717022587410374138968569110025305791088950441454868302956184346570892996975350569453044547299183574341835253029043126789326952762428520474495493472148225220740787046289802681364132101151064297290821320862636928884001700602839278829157489729693709609840951420658588531423543027954089644413549452079777864126859709357899210407056360342541612867052241731880086554368113187956129572997514156820732091504777516949618450250299809844413808921750703866068292352540015287458517477179427581321925692375886468960687649308481013097120551702070321959549381176712040570201289644879563269428775644977122219768951524612465327783194889406155774565222972982165988400970950251368058598209883427581519265006113322308777232254547574225886059007220730084805782658649265048882576573784165268984587640927106001213773914254750148729203622000105585612383719451551050514668928799292087536669835058804868983935149773012826462399295715107461483012838992231283569565202011175045834534547938108122330309971116072249176723682727166921474111029777933929283416386723078186801777535982553830620534780704097272421953140150893912236582413433184152002700830491109937362281768282503055166699996702247733997861319542092614485758788731253517673495482425084439442120045661696078099498326828432394013920912165663431188327583661758499400926716705505928431799222047475679955651416150927408593944557115777568249590069885177978822905513156114972549778151094057691530521979864736378154541481775967454247293697518505963227894346963091035933505347097183928841510482774973197591696038374176391693754591130530286859556759925369084132526115403463905511145340669557568955594455611340293092895068922243644052566797175582708084831118177477137188870757536008310270832685117786128485347150163094299856110605035770654532270692622562393281222101703545787811622009162735412658640232307325739349432450393901320954540822075222234903655338906904052520996355448902828632486128584704310478172491489521088563588603646020506668211807225022125713647954848790357814775607157972246922035775970026719154424285235363874145603845884607882960785257893643322841416010159910852441246863399440333899377449948576903239521956722344225786456297319449616669842293515956828929177684862413157204161979736329688521564091577013297657564529982043916937540098001053134021091609157234470438976457753694834893713004843856110376297838006809754120762319257732370944010658163844525795204348014434438829541620789223346954575215819922012295244362095350819080467746412117141642198426527455499263888112950598340920863707439190453503294430381284866138342949966986157394439833178839662153970344412858378001706231886329188148764992208708588034380893551523283047749014446308508446095052005998368236072166927017789576544143756134709278057121765339211594190653820542166566350182566752676645884506509120519721020507618855149543522568538784376735042593512486918461581312608916578767541713249215445613159322634776837467826642292639939998874296410623770616442799713220544150619416020653817888606111767164659793312506164465101658629527821898334922240953502885724698804036126535011948199134584487134203087514244904304942060791133676809701813112336996334166967695548731333091209609808582335004308326216430054426168888706586546321329910057097003910788510837434798493393382228817553530143520874699115276821429876472165980365669153039115216239395925935613913169356574949412611273389929433148145001150920720111168563807436437873083166428473293818282077757078103937553122952540913656160081173714075762059106180575186915901219531345614231317646858637506192949783616930915992991247601685032173734838196928956408393070092481858190395276540235623005256808354347219255383138448944863635638202821928995824193102524144533014187954656369300860131438360197512562957513180305190339096615486439787531948458359966511947259824814069544875423851195442904171035831464724181999514497522561158692507518031266601965643984321611540509835366711156877973357769812839612134834128395595229897396973792677606503228779394916906259470483868310696912086965408549172876811127803828126691131888472287799007591850382891563148829294514782018475263478545794659842910225513957639958509068337925292359390353062697483956276624820301088189212873838949857769183260750479685473814227578228617038429789756789814499813233088289377463683233919833147032651891779292084919568858832063383256803440646117597238285917185357144364257161888528130064863510490950254550846518848456556140356058392283580156586627275209266156534821171889921389999103133833465828276230595087599832152918133598818547178683194784916009651958396159536417483167757523683865856973351891341327244502224236798926622447458145418368901999863702967675503420831382958556954660266962332117938355143260158554296668680064203036720382578330956894018756818770980603944489662325541884191778961703907987432449529081650192369247927973881209457324796484069539982013987502186301643908231211943252935162431830071407127002144994670526201267013084714911927404036637681843966901316539266923857721734971132961210275173334455482689313148619922142648737603720433493545502876242792144817929051732369851114342017551900241328909144121657112578245183207649597880260261146938676498929037414576793689507653701851672145870801864093145208295138498166704770155735520346516237776322507135572799932628473234254230771009069676874685625661899017941800481706351289959767653298734678060296843303901377417500917566851883354040552082021308349813927600031315361943193878742989228692247400628921013720503465107695877101016144347754047833656438430295152190111483400067730636702583559973766696277438969710346724345408104042890329161905057934750129306159423490980185807997304959660612122058097982478143438233633822416606163579439591148925338408716369579467250223951567830605146594772873866824181568193426423055448462594898243949421648415811305560469499175922292567801327875508789092220279897340054626148247258894440576371644304690480590323511483699059975769036718623106501617030542480237629352619657795385025283367977351969143540061743037782419395359299808565669259526964765787766868522662319015587837500348007538792375023405086194151363111700311741156267778028473656203878272928311661714311120452886984184764658568970360275596908941832643747067399940675913767221701155204106629004097994245296722626506641546034755637937869322617731050161207713726563751311754194292593958224976896524948723226605781452561298765285606481176487753584026665039505454831650172817153415300344277089467804904604306646340781764877645569654798651146122560798751773953286968573765736042063121875390832396125504736349882831440198434443084888015530153445597280066942071388774326690224852299984767074365743177427485807630055673229038864203883785682819196319870914055961421556709589350012015220371053840639284799790762697058961819798297756726626959058586802242150381740595311192762571723592154958258532666284894827720258990832887954660686967926663088909797361450604750396059932816182451004438720423231362782278552840282056848406327599094501653982844876744662904725713832822459367439757743832358166562525092698773756820469122700214740378405526369341930264778478695777689171725253347083986918303217735088778868995552393764226703563101999038656954268169708576582169313261308439456752851147844380661759363046141499093103707568331249085044851487673404723401083166563188157627632872681939194652575818853080623221448473580591605616397584740654332911181719242036071216013542927674605736520969874249492766925453075964985747838457429648456438789718097712170465495178224167444984558175368416636348403990985971948198382478099039204222963324640720179780138315604993721777688128897508999299619108835565326307930362246191886903785537520191672917654908122154613884313837879901365955621580881308678213607136040753586686552737157045839274969227626058283902151554962637934950918678340521877092109341466114124563688220686907022390590379057244398212257191092753571808771100505885769514991684245674465205418886429747220201521268493044404202055456032568648567639189658961495159342984218327753882958625961478945257698198778872828117110762514809811027890065027609904406594699522419785728167398830821828488217215071410510211356391634392065704522248056109641097849302383851885186070249747155382940293571293431413036665851587882980633457159890004415517799745136384740376499793346982326740607120310046525767725547561584283557125154943057705332860378701628390288123621030101029230514043337747242191045628439775817422248195330662058608792897855975239818462626702427448304954401050929994990869802847177367826606766649899756803704877183255792585324831630694911210952094709194779388943797461984981012403739449155825294104741680993116591263500254668446132286764339033897598496372368396552348820456308655742122566035726094073582874703410924677826704665044529203069012768034492106139314092449994907968237426228452005249692892105646901899096225784708699366692626581886175886983821553790226349306859922583265737068753095632376358577956812950382249109632672526238987326369649463263204285704518784609460642721749442509414288162748483731058520960996634616588111805239666285303023634974345530769174806965363354563959220547793116765455223486266449877846144985764190539506762919190771495194556913082416033754733726154410148813106280753088030894628967811392656660759247103405543706542141002097173572336710130720885357225625613956044752315724067402939704730836179894922671489072404136035281672238710428312378840850177242443439834672031372052676669082098424158666729032247079409480986083339380677888163489339982313925242679675189081419363027594230368958668709397645087432352405905837808652744281643064131880862022432090847204348156025314924104071731732721271893641984135195600606021730212306333110161101179331753712969005113200239535283015750062876510014019961313160772017357507005025293463651626273627232838947594242087471297056819251107146296959733605786736059927459636346959251303032987488862463224940832373185142474015721273949432963499567011662636454111908288892047886179817326553638227578776260930068939076060454328744596074397001219656689008005997193463854034052763468806732699273830741044375844305625108828099144610082658219260739442344563777002186535848646092152724213844369529543056357379473116253132158166769278668805921090386534383661853229467768132269391188409199534469076226211584601120788387156160103663652685945334544954320129991981085042225974523373155345140145065588116640301589323969724360849643990730709550210148762663300679720741958186959328567752281163543615727653078530913403658693153871951423602134921469383331884163334948135629338960385751775840909612488749373479030042669712170606405259219511567511631086123643165242751409989794469411980048398330823230066896806817369537570880902957719446302987728260913887302235271356717922019595494743391186627440995313848972511205964868355157649960531600268873170746732136679567875740319948972024044843370653948537069885254403000854231237440907743278805741553108529198417408261931332749417271164804090266769303804146672234634818850160819840659482504781487986013612827878851284364869387450559707317959184347929039901802292206953414514175563603237651659276463427355665053315477367893708684609526268846693163550884115178599239185825835822524731341315883530022787750726822830490638212566641914883910639627915224164561917211714609261072802779050392483567519453088110434616117615506212077963484295524325637742407620908226162026598842973132558067531177975308515471790243841027325387957464652664047373285191443851431259616105358159941647493020230528118010705926730350646236347143247620773746810272963119993515876742080037395295434321543987568577258584190298931805753399503769309424733553494397324236214460104684030041486011239801348914969272619961609668206922160283027699116001046414134527259730055405528558507539994780040029432318159262179123543956389342049186292691969716057957194175903587594305715758937551876776379480049323892944584410277262345438804842272188820733490435275271753479039701493082081219298456891658607976849037478308257863518533949534493381560997771450860752395488974266642781729233904825901638658010050144470984056828275462430554425729472429067462520489428539533426934944998191336711528253847414521948905726621278264112160208661022994944222702849494320401563414285077218577993690637168835287907153684724535799972171370914957619081827598579649083860772059653086282715740172241948090998732224984366649794078399460699816575680098431582016114052179773930960185575703828779517787194669481378640916649359746542418809502349215676567336333476356399646964394186280432897784263118433463577275037402635905531797576611479349451873898736170204709081055998707569435196328056549005119871727088930158299162521514629705893540351270956702905683296548462776006412283105221483887224248579197805375261002459808151337533402955041265695928499249837154027368892006720808237584025351644735925115617301373639020154243335807440860856484759571686817863246127393504053438119424571717556805862723403760715991895509057374974047008141030051517146591900441375695528037014131427840406917866898931453919439847779847164757141528979276903844133863489111969787365928750335990480350190416530691546004046207609586962620565300962666546137182556344082545646397994345855764846275183837834150978936116379123950375572400387262860074329148885314379546102006390472823532228231837092927291485033644943562239781514217442352147275071634587473601203988435683016734830897691639242132251047986998331548260972267459684267346563015675733119683053339758151199223669216360916861716709802468522272909549168675346898778364161544548341705022838592038334210017752099032629984699079617079294465083712134662051449400597376110534897245148074749780434843652622729257419582484316731379422155670741956338262604059447642540417629885804198475213199111653273566512757055228195322423946840597230604163991694169783006792255236867211104883427485114591849044461251140264939171494768091503252661787479445876449641275214808556134710818455823150495712720483858191837730383712295229037662089081408310453704342434168275400781663381825527331685194921144283187477184615028992943858688036373747069975863493682970783875616786836467293050805694801206976766051789781547740187306933775817458188771390329469044901342643337856270860199911416328529358185846662247037544204153185778703518665015328244317745044345045696129411804113086478516613843918494147257592000034174459674325778725187513091159480975757902977288970565820919001324629715405061479733331648597731914660487453123978583691999919338151492943162250744046300750620729209644472105494550948859202739030533542647204008918739778866826140686073712226632335010724285292527805207910990821754291598503113424937669163294896133447164355300557945668348469614091299900239877144021595232194259110098029702194008427567325419657443478678478796764503130339007649967347568595680849021927418145709078246038317116795088813081519101837258438470103195438480168197316317339622241993721301039663741878865142940097206907118407612772014382815956383795890005162687610649799120570405102358909079382269175950770154082272253853173440754818305793378022596787841035859519824400213656839074669115117506412176248933294553152927147620041754740539591982058809609835906369248585838399656265766723126518472786975587265954910039308493832290041794707563931414489359297596506201094923447293345113894349445617196955963456852611592059619359121013454882054614231330509084748401348817640328433964968369346464908397822048171297675386326358279420764985259756313778136638328640618944237944156833424429299311104104623976107162251597455289595398736713145178805187535320390518786691552842318318624593844977144127860462201088040331902486268890103359637643614088153308040596894594826985267473854169165481280932412439253054334051374259930235085472438112072105198566859442763372693179417186832858907882767978653443882604450819850186657999265377486376157579107120897547131203059980536522948595208123799745383217336920913143495839576922430340753647470997738660036568313551348495207672044512574498401645436696676855673645982132581002642825321652805019651905880442453255063302894731017793183277200038081922919601737871609328966948098256764859186741212392232870941329113059139176809578075661629667747521604253812386905040336782078251887978058944209599798518361135961337653550671109974844348070018924107347533475532387249597873337895646566102532782273775226892402759625793748517010216288550376428158314420758513062149208366809113883327903525023366029547301737509261397649298916050595432991260569075154153923279434320804074118329915151744009457974559925978949523827566121893994460271250899464805102043848264832854315354543832123234369645833025047510520739981923827219468217341281346170535620918519616678128321823962410006715253453767144126611014386750792749184315948866976478440386112334736748135909599473022504369270152485152954686303718259369234378415307076674993771418082791569894553797897681022823714577754832874744249304437087449034949482037750787462487573241861808679219583721592607506232776918665313043158721210471407524429813370664971763598247608995482270317515803964675297519873241635107955367454279540395957632000430531966878588758418128216182002832171529562823480810477887235427671952384648292651463338853989100948206989297166540823121393926008037990713366860265157995173596191588493223408561602970182843572559627887711256869701506341631023713563977876987875599840134668918815681026807544813475121255043357839031865262728899427548997203044082549533585276417231113532931880261907087110649261435616076142832685535481304923621394017048514309262791424684584794168008072923246481840305830784302187457684870768006663635707180782962607950815283758948557758314420500594848470992141616162609954526212527884676702171852083518446853917128284474282233511945203959888420127393339105046201453310582741552363238005474687228470491175654758142021903779704363833040648093898440961578866517026414724168831728698898438232223578677367070523337488637913343331159012307741273421742054410115189532546333427514011225863195973897708919309787265377904217928731978232249306680453881303618508833749057850877730783494229020504370188228111592827801730989090081660779385643809025777460137081224049789428767616760625271382191074299273067900116185068436506119354685508932560767821282819051649591677225375490242515531951456664043694836121595101508784396148559976971090334698064117798543902587087059405746804843021746344776929988207185329087950156715412957177209519895371073181937718651414748637420346220992929810819363572654307781883734997953293470274436085684994461194551704003488450488700430052434963907210803206599313737933550329467889680528363753257686090789583112702526370162799272979953052020292846584111477571797446004221969150288466974263101914777920774998985436124421097502256346622015272333170327885115431561904018532416852319701584918831773406653794929264548319314844901669598302941812858685385011800768805406217825922677872276543160575604801363733673112162417474539312199810230270934736886331529205241101881914649661667324533359014327676292369344517577028630101509041404175987609097354754268239668986988172151608016708743939295393416512510378223223301140133265731836628176460713544148604847420432135854172501272713896086353250733703140442682954568846090235646728952998615025855964258722706705093838788114002893136600801156791570915384039348404284773800654341530163266498282237787564417176814538203593343948539057269556862035087947678018901701071715701394348377877058013606022121174707411524195391866811471900578044793284205479816711677737863009033531856615851002887175890293602203324836315414567320685223935461019396798044602810402146928395051662268274775464131072957791621351927495564908620736608555364315906826500465127243787227971576438587635079435637022453832094710083696535242462015360499469931882696238391228949667395017137305702995174371515264017736845965379406015583581886192100627485769641676084441007915172079146545686637745432259965083707299690810935296556587074463077347030194105119683838407065387417531469089342548035958875042086330624920029375625497028151444359688151149487620408393987643188994832022304167968710432063119813977638998012891158991451249867330060009360182854832252049723975516215574239016741012446242133389263308692381316430481823904538090375515279401139142586976818397493215605309382770404719779328486865349995622853567257001164637820380822858935100606808557485285782993770567899335850645098754832099291472564130397637796653719322020612505018139165588806797407373000660984292000531987461726623824532652032811374676524644956054978214446034160339766158427957567263885075323394223138702801654646882995265713931398983746879193838739393392106981359063003860896642928659973820852114865453423335600500115435364236338395556017213471356720086532937174235186992952094038776668438232878111117179327241202391945013875979810620100833116551927808106097842663639528352987045862625816656068499993184873043558036140045194987552121548008178392940976184897733467976505184683869802940481119789539859498493930930326482688816254841380294143436710927247933458272260594167414311731123813715983091610898170648124305805953796828253827682844525065463467305351969865602140753289208813719711063908615868683039132422922683083634641171763886344263241230321051811603589684255426906296132314717171960383534250269756555633026604757789561214033720486483861475280007775204088323700768936110474567088710774338418975148608509844854535158074404379015230628632606196142398195056542452629279638760276331222466526074717296365164661021461054541701475469490580414977598547505472168019844611806290972027487841947818577995184523930196314002194819174066588710625663541790334820312030396700392246091610733655163879547758244059737505939962367551903581900235184908556080922517191350293666415025118499307978964387717986136878804520613433703904452338913769942308647155958340963270002078569009255244284461442252338115997649869724111281302554669677127554887581679446613619352575359361374501338453988501317837122938235537028597991324040556276351215043421216095314095330505275829313278516711587754994494915505515281319610022815556561711795652079260709780611945070209137003777523366449593568545184820981570607385607975471826177851055445439315474198937991277195949233027531587018592535269007385387059208280726253087267211081047580348794401229291954411686710057117497576585601343121315395219560407225532257910881369111557942172801397068532815344896456031756526874194820343495785209972020102316506156314973498888221483193076505556206114984933271600152754402258063885531704158860933487365705433542660463658366661919497987469190362961848203348135850809818869340182277952870226910526561119451444163113159721363996480880753926842257232419164699931424562105537621758389334285108779790293811542754489228499707427872970575542649185204822052104938531832548106268579369854561915171214263131010767273536664981783487312540715493390272344251765283283961378179822602720767313099311842629072362587260992606610145530067017355022967629482087798784848016076052131554679517982606283452928106598747052837246514404577113858571839176021873640486785790028664355097412630785645618603607618931723924942612935956275207318915851130376439888015188481541491772401602328320889083642673242972864006224349996573129424997111888321891162558471327418072949233764461967101868908818084193310811180399699836626291889507752346836768633889309660694069388851974743001181675278246467551827638557210450118603751101328919841708178469168580321090142059262290936336933740267773756483429611814896517657396359462029454104953440430737603048914299749500679414772783506595665210573582361723510385624809906511416026142773575379845775282074800661671594195002009491049678119563446276756007610193140740016196286501154392035744859258453380824478581088606583828363538353574477410815031771016622732883375052993033107025557188210143398081775224517379437517607029166610204000630215369231128656829336096637432273230889963726321567640429530937261740137130908306512199741383565292533116428778560878529817063736134894093586761779135427202542307886281951517466329061844665978189309365839673339500766943192205781732634816506298679520025810344863171324375723322065341706491664972000412914262063487512602379540625742239391589303330684885943048039402152826100998578522782345011094098943368338275319240836343105436171416964357783075637378368220374013874920669518153658955289555799220313272386460751692321080074289221652101644594796619727263716016869591182375309426659785000786402093329092030677134079124057616722523750419050130178084475161849886868730291139445949688448582458221906363042853485551507595295033637392705177623403976121277853882368728785925461003311063203706984015953580094854968501687424807009181449010064165358204446153881133893766815823589495553282322610905671705860064084327298330819085084013916815556902309260079152757423125379702133496774562900544972311735414407719010110847447127879101651419746622666462629166374007085715972759643662516488106090405155339550911599445144449816145079829069531443243820618949941852131488212014631263331913588370529670209027598126592571430128119122725356494904506013770792834192166351276016674168419467868799369942210909702171336062181238161229487073471348681911225114422381843502677024090843218688695900373344734275191574563127046076349623977197754498404845834784808389753977624681059442346483129451149490738544451610268264175469209267805314663680344987904189581412436249128021095259862714058075519761876562690318889591413219880045741381154167241883363132091992664070484764149895449652200401507098198467493521744434050868743856975116701142321426242747849033485722838348986920383023023584704802651256990437099487970924159376604845181425219943850818128530856543476002791409305510093454158136096537184852224729562470263377780719989729311607764883626911874190427319878110096415164045823043457192735852511865848330113456574222685519424686072641714027970606383546436148217151083743223592467511020962473936016212516111393327423730313586469064846211111471466847623867698444635305600578764467662553931399175292809072697555851561187439378332452384385178639317531455249953400686577942639481345416597269360653317983070698933058588404213068950391276368511929534936089798835449247189312774100018750907295204669927236835742769883189754018605902160949877425917993593293573565200129266192837753066667758369376857931445339377179631082704665500257746904540813241382259247417775881574786091085973417125716487242970116823053123462293178132365334421261905340586376629414152318415032679524966096717201150431688133105483554655604577320366823707625611413581281446736109717003514223920119988868298383993036357491574832423235483333074060912564738613383703377245789586957946821727765764272815926752434505620279401097566651163862370925593190870176081977373252132346608991706760029944685658305517161033894865729112082804372735899703138043050196860187098678647788165208715855650578396997320617289247047079547760964785757606720280647810815707440215181883738699712627057121868124311268516886983758688804076844765698815582339500375525881075238795233392089847774206586052364651420711275194793197987533582398714370066340200528338886525537297222700842086174849251763013956396933795968429560723893186120572227943012417961640889611012609930552341427483263906191110289141506037413838879308583036760141630378622751088273590878540154647598846487941379865392183208678643973956159965656387648994369075466201273265366517837620283131391367893560767410771478751566042989317710466191360699139272817539276117980804245921082934057631293829391519082935879685926396663019375559648203176404215320345679484584727347113158280723238301747331661370207026066049518061393795138807373711775964720701605082296292092067642946828088579562337247410991101713459160156068355552387688655652958855231391201028878335952958094214456776107921513949712477119619703235107553171382202491072225284458544766711305559005521802191792019430124580980230837370839038364176777340199868231067395639215584875116274242979891592039810265405408547729192173260764387329889706119212122283057046938454492208626151234802462478902740081492638427003071681338843790426320759972091053001113301029390794813884763907805163436720575646453635021728527530535263735404591897584456169185622642730697977677058695810075217236848634116536773207868637606718723609459844703366658843708373189470380044940542372872661369843068710732124756044527574746994361443194298093220187534883552815579201444201272208228596462432814454563309465842392499134921654312463114174638805510009934359458212429935562144360328849096288298591450451358198602686390740417851574406495180890921344192153094727931254594056065169632574075155844975814006022304628141736738716669749702895257580436536776256621086362398689881134180297266400825407347406771068676261408091492395950045593013250320258487428223653413298062945453659892247149781667571819841918079169901131713186212032909644739450440920354981875438308742250277520005273211049483217751719212690340319288631754574293226757696777347533010945445186271941269924044827199044704327647279617936504720034258593600112023143342906668303200451402956837567791832099313293346155267219225749526859042114865945804776397569546660320595364950591253290583259485484247152489088683243555176217586116934095252732969916519261785375260716857199033699361444647727062213656330008722421086835281200870003750953006825022292393482926690697972204788763279321944767979282127961125851839071809590287546724684152825027128490633125352010053751134921355834347382214012179789025023731324343335048288430221219476772027820980653251457479285211068851598814255419533990069468853836226265555852886408050529624598873426514774646635521282846374368656247606903640008234765007564336917068932189834326668932789498914306961634642643810078384958758821682828264826231595806823289000551245062283003192124563909217218546296654872954858838109982611734201607493679853240261777110533719102893603994245339169643697420898132629578041418009797313590886337816897018429512602238269919830184177186299905690701019121352820029667849683597871032576359467085871372745256173803191073772366408525984775950105970181236054784196247901566880199572954508070552606428822639519594451095658352565084928173087651125195809844322529538440112098136893078343332635654987869876361046071439864063824306561776343196225386254463895190325650749704402219594770719449354139858168476815327451311670475637567009890852333612749994588030992747286066908000077987887266294855392836802600188780309313942277599502163680010357357659255112551180552395982521491236965385724413757437054754181349788654747602662858243458994925089045753691839610272781644519193314388807408703648925255014661661895809340147284838187405339782821680093356458488252949899947252731829860625745710634625418206674167334766893613057792841625275376781534938269642970046752335226346355228113322176747697745361299238717230722171960864466738410045922349268678779906748718890967333258038312636428743412005869546843062959124148072654695694465543661387653063730632412043880947776030920633016198160509174876311232466208586776688231675322173818362622241950878018461949116781580529333368659240438030390681451057581016242645590959094435433257482773409639869109437631245381747412811327436930921904684486635853740882394681437440234548666158022554443689550100780821144876266034279997984587775158076650717739347182785312827105308341773962195405708222935243749622331960054159503312199378566089788590231549901547253983745953926752892713013776015476690422912387737967726911458212057049730670939540529171726696566712447806365912699031516974846254680556882847154592109026235677008220829204003651359497636615924185097711092472226513507193977424307671744333652582597533384877399684924260433076709889119143378651847056696023547828394318238953219408514382492316686053707098772278540807338635906320854776299923378371381589254639265044117813044691815252147873909508216041229562454332470557914919237871216805188736426888418201989747169573414074146572273525852573209784370960258287718427192432986139168927650965149483578323880552108578209708816753382510506772197514392691655960468744260556736839359554067515254679919368794922535641839664036411413878473705193358913640176928266647123663959288955674485846792032133533567745788421962666694334444415759091865988648442176991663779808208629129195070335847303529265709399542209520824316529426099109276905438849832531152294629176572033719713091006508568507221555491547283955987907890444419816140290924111046450772702186593319992907294344478195926363096701591001984276149000858207806742962791952965298618852358762946956812357153218732480244365886922886481151587359879952483923826081727663670715421175898040137137352197411118792158565521259023917972128074561314819047704307915144177380795786488472549337408945975121831920530240689407798975011414319430517835984320979478987015541225164578318587768046402163299436930558218393063721492467025129021347277652768315432385736935094769660237896344392509864847523235469101650394049353112592327655910011438924901924308653324445452604769716868363430751557105188658420537961364829633150755700315268056264833051165482344428381183723282607983208171982322979338720154638213417844544257882906375493548897474776021954144283941083666424070800266629769366592771636707449498333327511399727112147945438643332369576341675788094050668496951240279880062916029826313211984118429489263989547474295595068885774369581990783803391921029568477207294077960006466079152850073136275019841516939955177975222850667042221830933514095773413122498416725004969806190954875645510823230713908120596243227460697826696033686982839376926602893562460468529297150677837066454213540276281481442573989606675685131730142613926075488195188592413627919072159350184069309862017114180648393083872712536496365625956571194043529944868166843434196331516456962487919894974295986353824991213729464408024852963029479502334365523065108654487412716654861698181609147843312146804802576312470029054366460301947161961190535520531558019784048677313732470743785341428304415193995641362647310482860325899732280569405521051112549208401829150811531599596945086914449155442398110476075560797767966424687176362532156624543794561882520089328386172748443975241864154287407842779057510169863076932902251369685827690987862247385884864499005252704707994531017397351484318838230705232102317834948063876163458573375402011331355208968895637501510790132951931879910591739699835532509214223652283211458159791102774172625259038414823083237408080205137502582049863485885050462098702873990298307382991789398854374510381392109017277242247240306399330743246539052535073351497252440596388381000945122863630107223429712574461062287344138862654602476018530961069701307799713116333403735299418414706977069307417417590870748145141290475142990921883008293300217406770076616530625137924691541634917750097756733098194935371090111129009442898024986301393982203510251757723196753198889225169173855614998766759981609024446036503755615128909587918054618736249049375516434475809642627136806920731204334417515141593777357911235622822894608294087343783124219301891379453068868112274673929074434108586680098652216858452513181900823119786954183329663074490039801903152790805337499758057253345274323088465906705044709866751113715869485423178269504570338948291666474120812881660123821242471056993066520310919868991922361972960566836752554136494617535781493407358475122351351899123229081797676156693113107317637048688000196577239341289784217127131351453732187475265278015633636247122300347004231017667119214114813935271336155908043972918092765660216704331636526158167440870367608704253971395610341589042085379367882732058699240576506235006940809417334649094486318528672751631160436102925056690021240066155178481580361279866245778348683559614824064783859094146705325584855437678696288514084198372752809246775193600257630889910102115193844547697964453052442727067557655016335310407493937157942442803591652444682017152971213166407246787409854913160919472205057268102608619026936945769390192674857575228183761729760443959599424104490449857309736440122019773355318817375549679312346921703608858873750052995048811886088731533754976760598484911266244775975988633506738136634387422700390853174610498013399296377718940687642915450875231542281235418295218074203826556989734585236128994166785226825575387582712145640599325012803779027907201499301164646698157889424834654576491816944618343694867917018036732413782612478564665668929505929883359134420980154321386778898386407180555128043644093740775973235130777181341833835887546812015039462165570079367765756515722645319102992293849934754000989308293001677859856628548627914647914398696142866207590948293416652096028781180640635246119804164012757427503090651371058257028735867061477616722165018116453629324013179757569381284869481328529828367228117827695731344827778915416621346823598701273463715068669133002499575905631336350276032601962570053625770453177527365685722129373880729624418657374122562247899558466115424597655042249046576522912656341017131352724986646366763535984303613322437153839319790845682421532282377386497002787369353513452384356340172778448488139331378393744558069063743543407145799813130911750473811696511750434181138007362851951419177541313174293718437890172820708429695810500634168319836843453961057082755150932062702446727425123963650194887500560018096816862215833669944464838641745929838632888499558942417934419242897240001494642257731689734839396731622747024144457268142862772646998767465662655753002954006327816835150598277610446009665080430446288366898478276192344768896431817447307915816544004213182337973693668713023366629743893608922675342921614710363088242877367191605692187127723052188011566437463593269844843580910375248806950000069580658500530824765988240391254014612569917412250578372571241238387054338448429956288978246928616731376236054658834609370614088405515698028611824965446231157012246725355394883995917465904778076645693812190578173447072218549885628703762744255082068686593830143097585093013411112817574767287808836382137570039654657310090316720843807463940181650170877292910669964722005512133545764631788655347104464146190617380892235470617972525157942990565348218186171729206438410731774962544896600487431088905510464405417161414540867704937416958077821866560855177534281030135189654123860403916233429725116697928359334152515376844211400659131038064664095619140934286270485715379080446349344152142771950214944887857502699472528743765928288262881928117459791896883060825790320540143629767591900102728320184629389763765451084501021120384055164808784168789554363421483706393205092051147110872789468467648983765724703774940267501696957417148294762528148946118796984869115631550326692473002877661117755732942675166151570872263960967278472636663044837264391617195999665269297566528515869551347829835556987928465069767197717901719612827957564309148972747758414995824931216243230972665275226071203642169590337994899693185908272550439171017425094237755374435553823212882384530015552080544512188100202374599428657529808020483262054045257212848042844106736317413916582111497825439622196423798863356919845839346663368933949688174218392994723367414137346368116796227629637518127891018436404743276995894608288733770884792508877630915018655202467499578484257994147683450152254407860417423884475470225389149172570135122978640599489543308098371415375171189175165214860951975866057278596012089941354017591219818982480250800703167794031530005541267890394953055313124302931446362717350644542876600665322272822908310128448837705911732084341679045905702885739962051092303250549623996721961207990325048964351057786099763875228282684744621334687767863488788614931835997995311007372254035832590344548361962824675655935699891121957851112967992680263331296939651624386870366644368428439411108284510314650176859989802641500204905108365589249092890795644320969659401066421920585390441157249383995368277845065723454359065724581307659839190656551493366263096870055860002580438033915886684247488130741250701783448871183468663421394488785118696640464919695951046392225212903602373161792577454586629389128084469643654575686690709292352517654995692800186787224153979682890115657754852811816535363790571796635882959525019391871143356627128819961512704808735182529987381616112045724098334501040901037089285902616129342338802392657506013685085719427593046722753198461123395001488386191400143189120493862459171277980117181897461249539275288370162832557061379034232487577486806778953788388607950868239802760333652186430885708245953906148888775514872389895040292397158616536942270836514210687778322146257009448480821770238685139622283744831513009965158887659330037447542805065789062489081236940326632117919393510272599155448679642604803657241759000750397145025703558302197661049312437813549960910434134321675943963622891854260347911955547523862525756706294232511631146606746354681383974771574958093706722275027106571849533361558564850407679513535973315883250726522787757132823576929038899550269719831217431472570218070669360717002784353629802640435549955994886245879048786350672276453210006566681893336740423198698117969154301651702689301072779524288387047119470727319903196031341574400894860024514960408083355155267308840334427007867921010017100830842263127219928621763260483438404344853361613830322724131870957993787966544697534042047205560399691619832649020176717274863946332995205504572266071311658505699921714877669686353073600815387234846327815715326449341824800146172664694458184885546675378611982023236969416867715896399629244432634243738399689853562302307880088959377459261217135540986754430510495210688563971236236253861099024169559892645717414971772755842948028055342716722683751177902143692581484026626939511323887504693999480493471556898735439653811160681505168521387290569034557456218438582574702648274803724462826107844239232609040178681285098819556667921514353100737403516423099513329106263755559069705050572517412187978739207254647060954058785459858428640175975084651834490261270776848669908171805834681751926569316924766699163974857437607578313472236524224307814475520420675182585475095975474187742044747825395822023480763915768271831330732885045117832113488940609475131874221023742613815546745954078919247354274483461525020714238170629260441294890045461632460335925981201277628643184822200022733051224963187677746833747303798275184440549733049442416464831367285245768850037270129331714968905605071476637795198792868465026090116919931478012105525435072361515534234606889896836148501983642320352898164805854835988853482497645978206893478461443592515664559944317398056030660933676280545040222831789436762160918280326701035909939695727252496936772743780683217510810362958948284585012577762783340255449945940327631213185051675209093631175386175816575240988462148092161664136647443523958778052389784618073007395705853124347008623912465556253178416503609167271765064239489543123818550241161790249472551625996530516846138620707565944266391138923852476824931067835349820469036332471336772053246286907143992417441221000659941157813712441386204229282484538156894030544916416698770130288031862099742333468907748693465066351128216294093759015270146883008456044382664378697995781508793808144984399067774196728904096816654508823826135677588811000040846743270745766889484349054241747627905073163901165189349181164393176058395683365904253154706369367525384409459803814377542076757631278774637028644691715552851208236728128449487162341394865089332612806925628535495632430001282065554839632288411882285083818968035955605553480846629090019111351335641482847420382171986554889738834224746109585021045762119075742850411993048564267563129081388113850194683660123608031486751643986904359545599323887422026336188765380140265746164042406472399898488966469280482239418948702265569717139704291579840882182006474519365842064728889941016474412988875490873919196592541163355171626500311907063350759484938276145370453054997166065068463898735535715528084301437476348999544323293925169988538384631242094449409074615772135357142024656906527505925869187192007452484486021197423405460942823543474576117979889284200580066148561822900510788256179672889847997860465997458095052282751803556155745630398393761492436474424107656043865428969358242299453659187084334560772252866283973741329679862902087623469805932932023865521563413567396277921515944825191045331734604898312034692318165408865966284566728298227952220825364851870536282047693732588391074326539810594452338723599624474671623629182189794553585222700349861250471095553992209838813031984194764312527720560138854238187023715209553683989989329586832159130138242971138419261079459093034512269772229655166009883716983978292751403789177085775631950325848412228850366401533378333709867870075538899054222730333045635738086180152108321353914952696514068337890632921913231531777588713723337446890685878580505567055599364239036726548190983046842999947228376199440971384305962889719990215651755870706376524144738931603889800128279674698564582690246874964403949501881679643470362260249572497339028246178278584535494047760453485928134025610780978550909281539339679127498087783809706907745670962587598447912786409624200923829081363465360841974419405504565062907364103918653265643979141297093430144175938259478957117057843170110285226631908355923329422478892496612423610970314968392904111377619029180191860668244777944975621972457079543655685600301530792606958951331529117461297023284041091844454943717031547701821295455585561062119042655864213538750887551700631080725762393412953340046187543407897605656147306722959492056698631038731168049144171469721631378180255430896930450293419661360758260812398250280736834365621975823518206834250504161306483652246582972403453244411962772836153741755070077176436148419205405582378198052591195104143485103979554752567494400893467267125583439905712654825376265450970545897388014544530784233048422183309175172712266669757038936984178724628381392869329461611861219255766836676398127371084830075038767645364429679025920508133728200734418889219854539830573782298071413168549038206135910294162325231241599080577716596074419566538441622489141672372353185492969666936679969846811328728905952230241647972742534638449427828198790062594893757283262463804238045312576146592823991888250306729018955476197292359399348278632165088428981121516246039565602002915327023025914335667245666579612039365893026899241741936974758186311853441427870699240617885965795356842335586605753266297855757398286261715159388294871286984178262705782535382550899699295332909040201222343858873755038792002879088032627188061742601211436064829889538027354652005263065176839609043492565106574952379175931744767372981211049970415035691640351939905929531105487242798601846362229359852220813106325189645392458626822101241423726715221467472528337622444337702222925170569453554046862046855351836802922305982427264666599860468917165173310827449713946110450354519041743060853400259261597780258795660294169713250409687146693281760654100493366011701624945731218710423619867591408412449846383226893840720600371670718885756340120276299436065158898068606095469646230792632600016513041822906173850171791575280611040065093504589884603551963641057970608756007141355489136885098794225541479741115820071316915215312584488283205036774917858584252226958922755405546227270140393796534105261379846954026879673223451308110230149421139364470762816596817086683807494808190172053178571682322168609931672778950254442536442563876289569064339842482323259356622489304429329684841862444257424768180907920408660209871897511389495193719244222775276607894755674887199963304852395727714559408674852649951969510358884671449265110552442252527421672785662136329341201678669441559031673135112395660390921691176672634815595637390071070039403754745647602397192503507565843382546320477900953720818588796182395104538595616885824613050358840227396607032130375366396567686068816966558955980883972841020439162157057946383940203247304246180554479121772291621287963212009895519724813543247510761995529742508805836179694779341224463550975728198154004825603732451434236836214828320457981876367242370590810955540629912379091292560668378610802068003699339078634066131455656062344415427736552012116998205918837694400306786161929065859417732478289845209104768172119998700893177992611389617595553008079268159782794562391635843792636977184294120022427031567836639577291515432974569524164568318128299324122605430583518014067960644403631031213664184099840072923832817498397310870354101325422845249915223375271559782953884993184259098726917909648208919080412408404467983598512697007029743716192494991050117434645284900584037809743870072843429074316890809194145025964564888385803931891263909496277652043593394028415760984623978324411682858967527470224838869070686141001864730454024275616469049637342046577755501411158808362402326299492313850099778989102796705130776533164657639033196187223691073400899016736679694406659824743817741799776935346527071652988914683073925215051365068584463172253981880124539041556477251178523837090455158707958621031797913900307473229035293348577042508029703655710274311828395498667390501332384907684159119362902832760296240919137327230779842079067839591393028073596349827008257582203263255193637190830940847323000963818925931490425103641139108251010788481863061650854651046189480521714820572647451778955577594052639883642773099645230221963359862042170973664857622353823563788718146554740625895768248282616414845691645242660172524921148376003037906799038886498525828840434155916323883924027057889591299056731746604223272921252492511483970681028013004281452641686459284308217280304970599999851206007664334948312075182312749322367121183657814927627652238189218801593995083965347275934688871250155637477483619045252844884191647878527291798711260739430968263924457705978242832513080742268189184477924282961612706567014369339509604175264923482289021128572589410176798863352392913088915690354884553036321670943337458399431378889929144493542303277406485754844570521651006836435477912103843804346794250819922059291010471569493260778211948558168006543864297171675583050363063011577968204350979499009196445689184336975603624640610447008001972195596912689166783484300307499417639831049240005267512342013958341004772007544425847776972703500833560207972640350966118314337498010681158706360118300851850182187767935904696062902022132646561902818070092971569145685009817858591626988207898893550019374637020590330687838587376266977426955017380898237921957730656985385766568314125672468494814906009024576637417549429581178965503774663172995600673582534506049060737356916791931001460015987335199529108428069174971261929489674422819458780716847119286211440920268023502267303302426088509088469642456399321878178044047264096375004418382172478882309211078278482695347458635573662981321572216768644049451075099574736013128977287569165978991347531569247018383942836340852686736646746339224050520070419806623411408949357355646579264401482949297624993012094015728556930865942364635896857623914853890227585378186507661377088631530071712585788034522983161989399370033890957446413203269399294466012779644003336338172721833687442092129349579590696760296804629564928668561778665164919638211158932437481736095941117816152842585431545873159676585040025363631365655560913654333914322286010755457651911926808022101003078708665822825778612771805661016906986782961602356299501840735827476720735513801720974221010697680082385869787503465202606980247914437150001202410468653968653312592093884440040828173040356564228478225646769379263961189999298088899567250122484052485000851624366295261799495246367763072934745877449589876480531325203439311047310969761157723488439641705603211671743322719198021332154157789009500895983047607333122622278742049618883257690588301928914307922228918976173110742946149022678184689351619758342815273558028770027033226722618138126606334943507883794025569962130343625946971548641138684882290053713166232992221465434190903333640490544989812244983596526090010977466763695339984218767725500300701280353485444245572857986645209730245103963687085575901847890876223598492857889183782433337586700479479698810440470651926209368478939357860371122438188534239238245592778110163676926170431182513508782117364848468847010280321487230328329031146571693086986558550105607262442286622372737464713789287969879276036444734479199240036244297627002626202549638637431425580139838818957101463418965372876871959469801282411220570637805585224371929831830578487803068399677208633554852349882381189712014010238000000648789535763562244532493621334253420573209237176650817204944160059462451837234043585283416973069515160260279223224331336853833074424185998836736126265582002915568069516883924041827150608516829013263966228349546732336591713847847560168202945058982016913721328819425314599153320241027302765417225873511432360445309257628988571205634215784310901897917183578703386502246305435512335295036750991600632484799379595014485703852552307522791979665157179384340260501301482558078916123025412513031270325809353991796566808462964544947076911876772245507075402960980324586577237559989415651021194009295389418886446606547086253509364495503513472956142704905221190117722655190845464898082871325833927067844600381885334913890894062357679197495943406873613190638759878431684087433180434935031026146682253041849897335016473976842853262428966698266410134883466560679918497806393655913948732707400483609445119735489647828931673857340855745752024150612105009794546229246700549607518804657138982890761035710630231353024640568415604924337088157116113975605829335879639159623308146877830026678400205024399665394911906130260522946418976245867960036156791601670936330841140983299878488007750947707645299153686494819237894996627905666746603094995312004556350295190572125990317223555615280746190357352348191722840704313169002056323253938116222550288507174366212146498846758948530928790789579653051343735298292016959282221704729723581520434394495784510394123560429937377907218808136459677048454808630506051322313655538049177077620373684833871647448348877833640485306364925997354391143263367685566061336022426647468681433513702473603624245555160309887177229265886426700807202846755328351013311413131847855442857783633158310784950148516050408446746718610512622849292484677874758058620887999634637295549008518141481855011282823893759101423115680478757089462969903402691688715490416033714771479131973503625838464167191083518192783155869286874768245866829166183246277430518416996570597227216905806580341994507814942848422108243927732142512145586070144587351811660928883026167158943407817128028957794667416534696664171302097585472270657781008899488571629896791633864787561326886256244964766898460325020961415827596843945897816537158682929649559610408249340528289718668152195873019421134047424974342474881950969553390218347578658113210239161770379611073266541557495169433473660515192538977469324111170725033813947811557207799753482961949399302007009565335275435467648962366490797332266201030161513580693055027830530097866667488780367122926683570562845938339103815782553963451266031283061063974179892002764655759683276999803506932819762562043187779883588552168948226502470712098864708797545407436146769636755608090115806148624335588054745085834351803573985169119706947758237919833025159384334694945333053808659903728846568421974279154153193863297356092585894495898484308196574410697862447340151135791318395954446572501294394011111208027648996840299181586297070249618831676523285586566429986124825114691999689080681006817555317331571429707908922992567746201133785435847007308520527240462073204293983294613085092618851236343284332289176651013633401017359544304218401648359113400431096573573843696650855115126368559720013896940940058596192363710578535838333999560702780941333767590092479970030761828777651523971832185057398363889497556782147104465163147120067224237473928013381674177186269078114708359022350349958078664859918414572345906517471774709141897535973120295915108033454441058620990967228562570655556149308792061275654612588691597489052034178697814249736664656706150475415368503630509426827280504304362833243407538983519900103224360024920332923289157500571757984031716838452378061138092911441691134540900129404238900783105108645801135660858770143917502123033116679627938013909533900398918265302353378454114429304006551731404011159238775556798693457969194266620215258417262759038869992867586835585300996313196611005643231659692104784101584009061787018091804341236616068758710636785740691466796890961926452653070426576438341551112452842876853241282819280663290012296957644501908363812126259911660944725288434253943464784031984350395652639214421536008741731058051820752323374480340673850065739221501680700351378022909785174987165706489294274310396787503870232373176798298519689787708931733356992418054257961095124001342035802620045918444027006835949202369590479065438647833101996503223014757199451381912165716579285589674696531818277317579579613797392562833697977591377061707409529162193122621924402352728367835698784097985644446526377746669018829861879099299215002657344983892014486510519866948751904115202254299149731342237583105860150193860817193378830028392598262669633644218581020035609184594310585247050460769769956096792932388561903700935013528151960050164499179389133382183391943709453509666305744369043147712066985108342154197551302734076477184260955574490052078038101093947645914578755778262221038707090085333502531214504508655499767897053854642113469410135847655048596363392382194913927894157334719257064429904720529532797190737097858014685290981140498609737909820226153114303651166346718110723642661781625871452756991868279215578341131503062574516269398695022202265929263600910370297225875449623083504393827462675908885801199596800453149378052824845102754343377189870740098812602020247711496874007494108847390256538437348215766785241474100811740487188191592521387169641063566867858546141576592322048843723115043216441443061501856551418051271141360720526815027959051418293118881752205803679047290690732903524533848319194055603568686997929055527930465920925471292180205397706776155539220119836462473458309479256565499997981316223179822546756484094990968198832117337200539345076683458695376319335771096785647490687486529729637826782135312799019644567942352835675217692729582067041793947942447475191231178394250485350484227974277327694259717793812087767223535207315397559092117884431108190726657086356964746915672016867275298436206650272300855674052551804609648751905400016183283432918036066294761066518974017397903799549262333282874626930521537498282471258242861239374432338437607203823207377880060031397041305996131720947031787414812322046119726067083136524758862673230514060291257383805759494394292526573522758647818705961570600699245120764528729614381699643023715628345104705840243401238117279787604515938934341176656134850153474049742893657968126823871400233922074456389195185712766839778052697224290497451001140451498104364059963574921862924350625402998061011141678279990018612191189133468243020373254131254520160568847036711004575274354812461878998182057291542756590281091558313852497060678622280379175129639100636750040742015642275246422179904767694525230077023478283262279143758991763925763056054937119305768743111569388170098607322808579440015680802451295969568667103345091826094704173076083256377167184829670909077396004830632330410984009379330113462710170574039485248450697629256430469511997150144986624336577214270059931602051725954138277596588187877586119668139709735254296762724485479681585969224738646005042430748804373822199301768406886233177984646916307845724636526675384148344163693425873323377077981407414700186344672297829858049002962805615589814264450088245882385079099694309413196131283028423081415816322993460105465279242854803160143303497192325252177391152971369885860516397887255909259688886203035182649011894638241920625974985402112976134822631423209667936798511117023252219556526355981908456122791869254379223551620387887529180680814701871708519379402964406795828580205501485378309178277151490166600179945915235986274810329918786453702890509371209083401334847810489513670561643453793620475455976775905700536811324278225548729095214626480324633888841554282567856228425466287347543304303843883127659940205761902513912061800582608906998490344390958285107466560837441504797558286469100574510458685972987240493543762094280274807955242710344488700557930309841590111168958458319716124356744900920552620332216365897408354899092325177730059701704425738897192151230547811603671460501867629656351334990344466000743090155413763583107395366217607265603265360009027185863856452442970943664673134431341201761717378124960112904010812127240259635164710018550815342367428966199009373137177855516771703845921408662066497160204219817812424640532432186881971275019316019538007609898439989697108348655780382810711738183873139082120937401253787109278307858638342594958285601726067459998311414770592699466582594190313017149268672836115444313941173315705439412143642560366097624319405212190226918476295973700884845475628459169779060487727795359038122129274758605383971615022629872365406091635198233473226983460928322325950883355618619759168136778229251233181514807387569919874916032986194458356228359144699159064147437157606554648557775167345258891187571295887976060033412548669540280633485631749565079098703953101696441446410795779822337384672871086572564143108499656666053911584227440665394050273723297280844517662817525379600597116842890812509182915128899277657040194855151506175773014344869936751450540932192675937336912137710111598888061434690896639399858744105735040805682525873273057333815542179268551512928802087492543553751663268104819678687018890790613751493098620820079181965869463619190602423906157605077525628567937654784906289369553033591480480294822585033538558061874856391480575641304798446035419533066942857976420363637891533429883277339433344379194216747957197678350101492816648860822497985574922815775677446538905733009911899053446151113780949870467500486536648411264453913667513188215913019641287688746812134720225408036813249796716333147251951053765792365194838537799547205282957086505414272771106860507926661280618781656044813655631159367176518389795255262865032801187405318772228419608230022380571660854371967904540825797405180490738154892326121999371909641366561103268243199516403042504167910924490954382476034752615870497632192212310010929613643170924565860104323438913707123795793467485870547009464707755279124418595259638480714601759441047295198788138966224842242705564975955851278984909177617093455749333750759702820830383596691689467331038940317861038501984543582120946170382534046532356270215383833351771660790452285560549998534156375777540600357793538551383813948156787441539645379325931681199715524557334797058856336892386607353355829556845877874355759595268573096873861469732135408800509035240347980946539242052933621675251410625903600918981280152988245382633753226490655137954129610394227325059154620430389912564233761883181209599307183644043841228972029148571407269150131627075154576671525788956512785876155638114086789265414705713004494870415669063330203044052599084621631334362722765662090660566568718709952505379512229836791847161441888548639396175878714904157974154394285322987339422565606535201749458290313816555451665137004778125125691008403819980310504961140747947199922602966852015417977534730219831054554207559035373286278550948123105256994812852869322503486088345356348441336805920272772516983075455750502928495923697993712907966914699238861184712911386688546440078028254045823632240202464046840793015106296072820981345335657841452690539255757288743333174486412298667014432718353154402198158647950215500706720441367359688558949440353884669192681703388238260890665319196651896696696073241414354453965345814012881188629976415484193101170897988608263074248043033085196978371773802225540087441535634890162766331523226014509918928236535663760001296523739043223310800646777381492700692244705242040312317056953945917331414902607277844357855118246022412305679742922842909031470760246580372408513159677273606814571319261625694857235797971061406220114613313930705361178355761826973307563822410551396833541103148766165751118573482338747187823531908984000653316523090646344651683518170035047378714627075995531713120392520703569194840777143576874022142525689990871500365481829018707954585511024973488968608429620089285587057743057428826270803263544978116005189965199117678809661851501509379579570402522093063855316489169275047653971809975574872589611992471159232823613268538704327716799966359442010373182218718461160172739291132332894043406432876652975718396382817053735112393297176233285635386279097171675104586410851589114327936146383252310981821391025554933104987281784636739644751949369577122951137813318030425412503784262061949875174112341317336976576829068875785791862741301843446966004324978301171615831792284615411757879812388098018552427035838970112023161538319580591993154309876330814321792967399046788796490202146021617671855532071226057507000086782093629133563903231080122675626218647626193804756512562650906640758696240736158017147152456383187742562180457680010425093902093229071889127840781729684171482975038356830606428843075637453554158574044871500575094201960710092400810217289148411563658345261660843152729136405765849067446063357215033215005560755492129467060228350381635354958384230905724254813615606078880334706857330172403965375633549817755939508550197646411749050722379526761422928405559276716134331032379074849996472464032349491033528118459578383561137108779922624046231536892183869056261695162866842487528765579954714308383626539321689126057810120495950997500477393183798115958953635980595651827802681091045856967570981365436034892374437618100962588216481786511188848740298639151557250349889880773465160362454202381381126592035006163453377373086212377656268735594809182983341540133979140226572420258822847214005006411107125792923791490467612435604960084441043416111096336123875160402047969673501118578007736635496727218931751883454762645943965443350444001000085183751939183008042121048730971466563203645391624955603706111865267020287480016461297891311969725052124248714198785660003736911656027919928302531347776140644267787519369736343135669944325430574961297555577625264790271002636133081734396624479376475003074691858323065854142110130234422007117565118296533424198992781375804201015485496518626654236665545644217660540865369998971206114122426180587537707457069758491028888576093421438555247043455315690068313911027179568519560144940214061247618423314431433693483736087081002313186011194128302570897975751612203542746127378299658656748517504901356707648690429576703908073687592044739032316806020255816063418644730099348618432582793201619506010850438075815056281212017422960731570799461743672933225201037031221249332076687082239393491662368440367554454860574481008531374209014578882776866487100919779785500109514964883043935862688566476640398692928757674164394115793552572453658634222500031869298910236449870039855503383705389867846525041894370757786080558240898672218953126694226797653992272483113613718034539103431269557924888408957994358282419971119673665459289873935768902466091916167290829759684552749340736724835572953848455374178869392662432042936783483848322711887760576274697918456263439604415696166066618335995726060483217632610316593477343888758559289725773340273169330979376854656118692150383821855131003203898470767306277382526576126065473331673990830404949476783729603142948973332757405577812469678812120981568621798664627173292459172851778487669468946102985294012776479577068797918814284066467047603239970897677959098655985052282367631789286545629518519509074738416547341413011965102664983842284368130156114499113660141007332624279970299108956170394290058874504969955103910232974106304492021582347357988761998378337943482335240480089126818412469977741805935324992778575054859916303724354199903082308669199578959370055776029024808174804025638107396903974489242454107563039651448694569377657734562060611136563303603835474238091832428439645276205035213958827363720266755505698860825198620407733432378940463422579297968317747191095947563026969906074423006815998403347114389460649945251915955854629531595169406272958140597472881836144040382320540736690054116191391995591656864244789186918850228352380181444295836394641241536789039688206156619171223236904993830061685553535161636681141834648201087670070645422961324966052830732417375040463249112879979922537712535103298105033296922794790374434151268516845090821131383935520408304444680098776947717154330265125971663109261819923645479392087412727993548863867055820581715843100910773423347213420969530619335625973076075271758662347144883901325045889747735605381468516419743203586995569885556330722779309802412537205892013197773976122058926573106699588176986702633053339040088075674928487229394827001912287173934047538640792380254039154533036018060019222792273702233620285951552485704214933300859941038959023313969863755573957025349792689999073218656742948050508519280587486423814598949232490560927419517501769340127232727638281592588730683930694515515568831544149573317427861722610360902964354014438736765601396032646719125936200864599085415417048214547551836896220618459623364036636386624159927500065383787199245223543259327431735718861730411383147015065989278276859105951854980079347038988142883428306248951193743854367321421148647504216152126034476342492931937341713804939976116589547232627372156820259330193968054748987773459956225954215246063454359042880228361196484258065428345896345364713736210119122275005044489231344932904633673454339100976708909014983371662865957771341239737328748597391474638508984655774292929032269752699641932553955675125863225539063889253384361360023811698789165429859528367240662775135867641595111907013603071735405692968100413052654137061443475489729720834674083335410492746130204776529711615782534028594157480906791093906397399077828308989562213010589219283633338978273855442702565364039810030827304154855243946478083655369458366306251180613649426721593180265803163371515845423519110073862116482484864494222045618662202957176650833446540620854336600987446956734011821665101399083141144506943990253094020939888867448046142778361242994105591738079087633776174032227433188952986177061521574460084085977440263838009069569407817523952450446908706259056868118889872817352965906082473810720998472933998850118088031213899877399226373939713414627751240074594067299939160988639358530427152224351676540006106724168056773005957458210417609379759740997357078400127754018803503086175550871703350355230045329308664500439268900268933746571333552594670599724479715017324769610160004513376236143491406786802542318215265900624454284506242374093612363559043605258252991459471814555680054409698686147839909437751534051986320021453361892019816804613072077975873279703637652676760776812077906502620890898348073514331421459151195004562934038257771837190858719973261667189094767596546728840617849746280766010022876809948142849384690724287804404656864382728124636681809044380108901018698196019996167733145559581388680936998219971971072666082957721970926397576523591579162550282291040388306695719154413986880843568715582614241076692121434915033827756731552976026479874973602415862832157557894352853870128639239462633474582611381577427321814874664241573695125008359102870247020986784700963147653876815745843844820576764207168995199968761387233153510222506559726249212240003404904968021565797384149924382310903991925752087340065362834733823146594261846781875783014597690773871442289290454443207021887666050368787246914985886863332257035645328889651787423018071465525472428347501580659256910370707955777539480385855609941062871412282047679901644514321338001428963220921117560416139670956510662480765254666746860104064978068830483157990803359709557589276131074032545960908321888721576859030273563052064208467366809540677369934350068139827741101787112991891882820994324604823326368535806991795103002881386589202831679060238134087134730022190835235807043968474399074660063740550297722852121005620970953825421949423374655634566058835817967629922607121793902186317762373004621247073532969416138413221080388002920538701570357911942795894364280662380685995349965266496040592523666198990332927878526953081389436529784565139035330977069790533460861573469575371845435125208342615354905387131752140112687899461243682174987817911022297823074932491686202319472094168543033180073547888384869319951429944680119921221052673153468815390431193611770533669598849973982396227922003260684677112857435333060560210527040439000378063912366913502400853026193220079914880185481932246672592255322440676539022645756061241922590999797913840380572143184641204764751257881654749144474855094196422145802923445515030206073761675753347117028901105910375788739603763144445628177519288720909716550140376828069929219376148794475913190090851974470714292770014480590842986395489878258065577664832890835219653437059469297527934956462821773332397546135780719471338745734495600956460356654412558985542373998700803571915172372501955474917925772397754629804653370888947148478749651816701932393280436024437579284930234714209507017076961942591788641762953457554998601223191178101152364149948459321118923682148454473246471843582333408793240346406680452680129023802230602718774899055151298847600005526013469488533375106363985120297713755634294850669900585109669835464349547820786606675150762008666211548812110849169107054962215856144572224049523584578126738992666887805955458475682089097946070063037631915769661082230639286280886319343163256463214136150336577645409990160382510538814533709675395403033249666665725934390266786425592634595941694238432723038047254773922451333232067641568269338866217076636358429527661983226631281438509899474166646562095918574120766464880921096072953802815178240612955261587990719762380363558122295194652668840215185250254242502922391503464401091967755959003143950473777365749915404966585555727431174814075952492801547520801180583193707369782594024812012562525088697787737169635276327447530074166493352218743744323445469947737352394869693983576985060108420109775787382498925900927572752165719591532786527296177027540271477899844739692849757781197496826391870278027685291438963379080811972099449381048239175825285211609272273224865188987409639322433700904308898587666444421070665533829581110800994856955981300392423317555140991464886945107694686842280230411812967717226513839363537699665799023558701675229770490356198930918589802795094139634046745651937834329439730411914818113308073871973519691669237978769799818513948386165882976797668823179892418308041775445151548402410020937440447763073468093941603903756511112594121435164252239307239792092410831458100331471977004800520455283094786086327053888269360536706047757486512451648560504663427657549378906648600791776109568563512398288136024346691368008307281039767862191980015333492058786079304942859336853639303676710283577292169222012245809341075471147135908546946295596537729476737486638097640796599340400445360107938420683349943035750547323316241564163594664370225239603421649075066140377071258309704183709420627797818715928757939697749908867774085067534853621651008353532374920378301849683978498011610376961232116280384282202466341624538817490973810519782053533623716880646954368759541296080914426343586620892271244085354429366461268488749000375823784513188802248652985031977777939172576407959573065437000580127635209129430818934744105767669257649373956193126619428611070614972196529956880900307427364363826413691743112195225504160903018720089343708372260006750526480485516464640369397394261248867650281051975234265646121718886434895256943269018765176675262133651150728050260868406316237389484126106707762336070149184743579352607297499044432453961161537926941219766076400451810637755330820309014742092366055477406310897151176600999152006231005124888939672027470783850926619541902067814566559453059280672240280137221326867086231836509853790465115225705007140837236736525124569323168571918596266450001959082704822695071038378873519477248031138740827116700492333153155283639400469341918462376382125187077776069103363255824471440532429966154075135667503890907529135497601964571560040881766555239653164943508050309841002406129108075320112674967992003315336907887558848478902938010706955239104505973157664591056799331731533107622464031979854383826839060306144300010490129719755763790407531679470855545839294309006941594840458342167910466146287339143193118266415481267996908539671118693812451996036342152422252672377241235761089666001843654584358221267823845474985878300909115933784751850793374385210334358825861022472831759982718673576501500095616769962479580004546279166504220154947277185620272758010054626589072709477796405607603675821767199992308520679676069509586267116098327292163176615725603270358013549563047861964143743240839951524483915825605821373162711088014110568521094464351880139819105814028357686729682330119789765758498828361951470591973757122158905551168280454508812191326517606170553965788843309052455903972195625161650960726407164230773130759943576892200354945850022696180075378260435347515295905547015664671252740656342625689313837140353930678748147638833461329213355070871671516767300587585587928405271163733499968044042316476280857494085358111243257042908940421648443105658501750063174619716153137045347981613212899672439650197301118355391636084206702534386251820807606644314041611058171804719922428647205275404692171861081231638054182205658107479787148052179142201750974450763230813577662228526565570241885071783143186493645526840247780692089172273736142023104997338176042194282570698220313920807369173077391822245599411792725424465184791538014230853290293960016227068338030146608593909655987803798185243408908200988408523812140450405360182382450181003074124266316636094853442896340753378446684291967792365740318509485556334517788478131047295987623251929884526468669033231121739733237901514869605221595722961777435635521974833800897822196271998142109689294039619927761589118779945384930808467761183356659422102523397873313875529140598786190807154299227885738125025364836521110942123106946433185214223716936191558227218148349001194536277185962176144217533984460328722299077817927486704587948023591055724804357654968575284170913587989808199631189276463048224273279608257210289921905142710981917089612234914310041309990313123426920327654385511632574937503298109490702682784124073523372537653774521170502238430261806302168354364442180178477648751219748961904441276730058185559832288710051331811573749024619094340490555491738864950006187195499471857686588433605766151264478722508366830684228669083978456347919386474938591420114693522020293148015541509126152528247752324456894641054198666728631213308622860946400362171441304935652754263269913352634636022572099913175689204717036763825076887129335269676863265978563197054042863427812512183603659801807073546361468386439510961497405370648366775850817084026822962205916647356855645524727584469177744879133264319164428473272627192721665391803537198073075046525154577257052636746171924978737826234078653683874547198475674681251877182191289955036498478211775605171561685056320389984869812994578217380566153811350080117430604739398414491022075464934745717990035799469780784050431518389646657754215366190304328620238712979404052895829334343484759950530382295622924331208935984671518964630374249223832433606018067226736537479423017323557043245827022451041376561673244823525360832759809481688947644772536322324438555583225606692585950643991774768658312127974959292291049004029925305496950761682042601338812521384448113546204004866303379093603096849630641982684483390394331046482494710401290398220204747614961124940646450315013741660440121768726680737036581680015323925511350626086052388547064756577054688813162008012140432832325305912645441429707942626641970484499351668872309748338471943680995529405743225849874169624696922002614628513726944599200864097552201544076038120600192486723940686900502923092476650483067877429667590596580874267243511602061110236653727951566569011456769874678120055301962327479798529872332667757565873271247448961140814008623433632298047089099687766064533533163000900094003556846339374582829211324201222947453897357029633826261664904890202500791655682772805164869988574325880637289093661616220151655423468823093772611245954828497287852862664017335998203637823393835939541378784477940322590148901549783353341397778926851625784196957754495036455201100704222870624828418545874337654812903102411456933698741993686603810429473088508194452981705853615467242900953485616932710947745357059044148490776659468675576402812824717498375843680671687071458756290529997222425986086532048087576227015912537066133118087353556000366015544025558781430547703654227669443331672125427706588468045776846303659978147095496203905842870658681134012862376675268042960792309160050136481917034778904882645259873988299727287445457152177315974200825092464011818992661896108780639471292286730870593298623748824410612290632918579094164583174198944059618819280520276893107898356311970271464368633416195301175049852035995810628909375202366967464522604241528784563153390704810135784628350002886732809086618864066538792940852929307609516601559339436630733312949397909873721437578471323720386682977870193198732645100757364905129270919258201733459497078643069376921917371459363338371232640753840061890919328073350162782658940497444350364928446658996430464200180003752299656454716236134350418509057498817543078148281898173620732036110189263125765280573632680378085098764306091034677882123378807719689374876230966635172827248922763425226170804353484836159835782779187073879391469523733599077050982896149509682859525923647193309517227654678727474679589452527529794404436140831282504930402564411348888282260480314375590784333766569433079753238059450990087318223345524382690424856677270259110137682427388024738834860338785850686195108167705203981554793567043331887298185486865633551725262089271931769658548199764631916063482422581718952060564637328738622033118995236207952535452649743772852309924124821850049416958322943704760783363161062299790522309938795439202572630938009407376636941327257786799069783082461543341725303116653208871014105549058023711375025190052252355504444733115940333782442109335030639765891045995249805232653513335988307189936371220950560698934441880355201842368319962538837988974028140051835074624122862825793063339898328144256419110773306092960316993200932072683964309056313136287735751761446788913812903786128339170660546671842335138369249568464399022658525943280381733307912222372464525242858207781517298726479631399894770543519972970789056152528330042943373038450499523280417614769203721800614583961054696890298838228453715098884784388182366454120053415057569095661453960879989955363817259695157957619374788007264394353892658311796775288510410515463906914487721511713579084883834407445505087090411903114089790330100436653951184515724698884992111659720713430023153991916742362769754879999502466320345085345622915167833702700869543887782320252972412585087954150274425710015046233518038039189858735326179260631351536876367674897066481939591209034609211186249290919750266015091285760759327316296246194513450415341515631605324926152510384812032472031626994559401175909915780550923497145369527237317869837066953337542926251685471525659860545094314411732341426886712768446984221534809723735718054539364228717643122314514890367632611316808541874776044880200013618148633723112087774488190093131603980052403968083696412788676103938684402460371404096095558568709298523156512319516572110725540132966317867969355267563126557633080471651120797167550672249651421710614548929146865222502686717605252228223008353110205829931399204815628223999225695288215244324561000906529407250423652926238014629287067621733920775835264779481223614987115547000628337343524363166922692462933202550268783970682577085444345232927751033755366446917636980024605052189652255487421064909346424976138804206059783519246077944169547778726421492530103721630565487840171740908059062662033224308413249433617968047552606820932713501005633537171626908147309347409399519095977139503906873608973757375173990431627998027985105132896794220761733209919297147146656102700478995690971706010083266646501292768475287253279241279898287284239499060985897654617037349873007259413418535269237977446196459681296517239619997117400683505391006371555922828029582558521155584077931976169311121388492864715885420991079541718176067267215667812412012158264615636819318102709774908774012818992554794090806413351066610467812414355222156661359260003274916057394236466145344982294814600236902156781066871214320118141576445683708070666484433707541184845440691514745355277809994066185519093684890431882969025502002103726615385596570526517300753658596538964103957018019935163260538770399682396025857132528316653399857538531495377982418267370707106896351148452568020093292829086408882581014815354990656159052402485798242339674155221004839583544436310633488763245138325613928778727865476613918109221442784433191310409518656986739756571957803589008405048738696429309177923250455456490796771515447530342752448635349608427959060047734347123289264470247682241478587243650707932750787435162159374638713422158221394026926334329159818750222610057051451833319286486784927028707715967229422069440439624435350301669985310432611186697620317874818870439087634220950486600082765488670663279285534254392923434668311983462602267527012777291613079497882319380250700776290107152455073459547419249248944321209158883359045102979720671919501181188441050184724653565201252544762518267903318581713815975278033008602396536693693821219155797819768861605003738341186464069967472193300018486202755396173397628145650217869891139607519312044027908409505790836165566808095316715913130484133286300459491602417252120936309158096958343003592067884284841442369475798824200350110121345551519129273333489018114384419137544938781195980440720715001547720360178432561115231630649901563275312002371882101243869519016199658978697186788180335267290399136232209469818703375321938543251684099070614898680339698686935363330976024220451969481474252306210152535852413353256864231703579806496228518817149242725174211803060836550377667605575988075505633057944510712622972735212939983104675283178150063192932076359286331591819279345018067740581550325146207804396255669927261920864725939351018915393917018961554663695443606933558447672157316654396936705420392436000949113708931739287556468589288175190763340628960592060845214304081264190526163060804842527094569292053402908874822052268563181686505130516873528824619790241226794057685511985066155979938031434407212686135210386392463693109838287548327171772497777268524116902382930137367590216622623422616423139006470454101280472167186413226918956088399836013692114829420881979310866284095831588901134432817972353183988528201485159255502838410536166789881201381062304703203779017386080268241591747522066848809680043013048335653003708161849147503608633914458544118270295271256416488149068151116228021838761875761730569055326822841644072789785080984170162643605620462367914319545385911306299603248802470642943400478705808029319082532171143983340351543354012359227878847033399105009473295547446523314249272821987503975657682975713861581122162630263811314072536415431965970131116230566094472382289610040170435277099129825254150984673204289501152941040690279031082686273636286435795813304437510678157851430420286099852943888055959841522627743281423540425357001395055095925039627110523158803535881619536933314735967007699499045483147629433721788705986446780278125578640385027210036572802299979819315096114579356559476494319399375111681480193046035230216723273542839502917579741271112208172559366133455898747916111314378315228820586651214079899071069202009242104977345970828852797951969388915948991266074157934359854046332367598971503364996522002503415211878153346211169318564772027216178168180146076345480452435536774833430940329170410234215941608253489654980674087503741938786345456849802153883075940093450218981039708403275284344915131474886119131771778725782701040165705494464182755940281835235268030676773565610722643359849541168643310429387522189971477768238904368285228540418744331231476776126261890736569903095263340218764155219202706809655015575413253899954397318356897207728565255795191623663643893940656573829742106995376463928723640311615914617722108650816893480756915300414025518335007010440751741802443846312427821946069301002725509362488638845165628754161954702278069246056427116140373451333671742159277043639044499169151810742412283191967272778198612877787227418111813284065958638355203710385843284906364055092253644067628528437114470309856607781144487580847714142349680728333437563085892779912026137387406519487951423491090306888311493857305060729656698707737560830597146178182330935438538722274097852667904327517951199488500779413887677421773219459245693648957608314805836532453029192054880422688271843820718252883184473184597504790345436493065464460311731951255623211332963328453958869102586832423691574471183819944929143456484380605187257966132358124287113773132671701991488423377515042492952724237412151238009345586168162833705004622999085998624274278389638116433075485905964259846176888373152219651013667245093998462895359987292809130288580526988550819316391476739027296028032228677914930036533039144441490892604510944739917186949420818826513142740490313112345066572778025540074769324200394900715961275426349244111209366065145753489144175955477566368674510440443191746000775872511181779783590598454468733565152956001402440265613946990839750603474668091700775456661612247664041772793606283834016557953552785416434156299075171243206516868685089366921229956979099848992729421605997208565759357108775092484985292011446177165539756545593424077658484817870788477744910907387092093353723262214035391891860347563402892549964223446133116141464591183674137857005648608732192587606788601805931469748110559591909300224783198003992259231565789524917805586947971302663284870836085999651578611183750807081181664725531732936060881405379963223888129188291893086373592179445897691984795820940066440391363223477680215478370850872779196809607101152776894321451459040464214834030100459872495807567745720156940028503229937024699182753335942783791871991289550353407924330173060323320111145678964210781124342666504376591590213822040164889393287155155519527739829771500319327943000786298521211563674982789847412435492377719058826687378637202224772665196599916543720744297331335496317868999056040207580587562386843899260387494069422703073135763839335756821584620893005282807511456332770157606140533685356193621887790106305530768673250811171996366929493134950552414268026927722874208061194833720329038856809509755955593255230992440610603075937652111323086762563345545769188916697893992923706598716417281023792628687416010792433759465984296036767648363170022269724388159255698908777423281341637662296851772210475568994947826373388227595238001064433528760394899557326328833130094736354661058027779782664261482730586488306419979263349269996134780568028417722402244563843150713503913582561915096141940622623025874687956384723662916996768276297903032479634678850628324513519101505485897412674621885353678298154829821717229419697032740051944336771894919339095765475497649726646358652378518310120778801957079085545679342891455095024027028032837885697483681843343086404205288491610650094158742593279144093368780908314879686965752842679736622508266841351568197706514923623725457551501742503195041973126321566156573365518064768209008796695988472172433875910866123991714192461581251643416788856441371702660651567051187807474818704685615369499062158737682659637731383722190852670591390568041371809506362908054579130045892717013457568538872546710161627270661965682267497209471876016543340396240142242995540168809680666655635768981833602544046268576996620584434799052261698355823668679922652357416528466924461140950730609859336567019984522936885970605628363520750033154284241633489802110270345955630060510513095726092531773715743569153075190512837516304098732523391919233921776127203372399786734128076562478175755370657855666260370679743466040886583816255699247343445407999907082727972644797008416429229600395828509973586309248582988746057977886120940522426853262225029470402100952769733734078824369342878942327314158603237430186285809880315170436154716944026043443086606718333400095293775769126273633424336408844567789553441307447666276550897094080747502822117282528131264122609766554825006515215737646489774369688459360840249735428156541462429985469763655943590995570657159503891623015284120080094985998937864182098445539415302846476760389871445140502725462087462927650158848945065863695977449740733059486021010526905867861901562869768210551132437729492056700111656578424890597592054167837370025276713955680774189509631724874662978561139875259657055355570223908175360123505032838322700232227366623242714772902285092716744010496173070088180722444795853956672237166434772982172914769855403550715550302535630955606679973125585400518095191367548152445831853805248334632305275384789793496628180289411268753446541303563502691832669247366402263501457576551142007897780138783489111403974306077960936104785738505471468516114617283394040061139619550585608270792231603487882896446070902733808231171522209863245809257124783804748639361234840882914605135496451302599411152852091351346216153034654076668284040663080519524425970510420608113847845519434075131169639900690152203258301577139013817577833531447898371807136152742714704192418672724266120319466707268490302703765893958841196835341642906338638563475397184216719622783228584355883313706997971000029604353776283701485350096228854454393661731166612257400693882409706277886131859022884761981348498272380061132229713339276313207884046285235681220870724061368351557252459267662121292289463324563250109171958563196636257449446165154540273414167181572983708451263726809972824708117419184355669967794284123282147506860063202578962994822411467856309787378128103560416300713041427923996797003151350321312666497514744371365981303541825201198009885878550460530079604923825487496412927172040296069719376940232255077508977730300616100303572150757248396089734311407218582667667875518201470595243536859589991440159704995458480225616384841679590412037212758905549585533187013000856304082832408898584250930010518058796109386024207173450636757154873924277704049947401833602008841120041056227140868926134092257026419283763103293984587463838896168541148791196129705059464882933851892169124102647724544506603888613157342341739308811516317422113927256134834140712767100689477874126025575945263634804650362995058232528822630135851863200935879402084651611082432983183885027073984586896151834319614434307636432851955345231393836934312996070269545505999248538047416303956168665200121100858506625568838338201725688064415546803641342901638775528478872027981285549731324994009989429167419523698612413452618407971408815045931148433502272385876363673020137887068189648833220851995458670551575574052607055644160193712371724322797967829587841213525948801215734000632267319141586202100582568980940516519647294004493547242089937980270764427042338171739934815286958670466137720810901744244984156247212371730064816055867199227684547747109564154962280189019207261072952102652437245411578179979136956512212757809137687252746961904487528372053587129958085470278567854654455320818365808782443939949590134582479277778933431868140139109241943584186396238779614298971512597080871569656101908652600079102680229063081666340187918253930707632720699268974424754187869877396221308224305477539684479956628311660785928056180075759336807363613198951445893276682939556992698752864621542348570414993057376435823489040286243005722001178075794659890096952512466446571733124403091431656892646318405221272723823348523661654963818631783148854237482207743174420394134659827175626931946730231484240185197734233659679340731690587982432638020565089025893213119658155770666076097059653535939925931061663419031597397235813245844184152064819779307569628533774485846019658547695605830209545290439723421002972216656023449922960521775340370977803236767389953919438256281154914798332766320801604228433517330776544280577651948829186651031199636403089027068022813086015170390020701443514852798881662182238593328858556564975310068548446621866287978343970120936599875747078671862527813704178077984268199985693702465826121059430837032075047765958228050660231551481401594228018639819137704909578323594193364873745187483389366643159731103156897511880917465844606873101899370404389637329126796580313506400625125989338058289267673274313825286936696613264868209310826550026014292248403745834273672006262005371531236953203870607652563970195312602199230138458048763810201726191968201242863197315974271776475735999259440629073029612175912514143769990314753125404680089611589574781778272557737999351277895644280633851555195387591324483943099678593653688389090562658800437199923457418436946648501869529609345940552746137666291024697805045365460223962691250013067854657223523937732781454674701475570729992608348985429951475075050457675087051066189554375445331911894632999678498061845549495431982432784146923340510034109125873374038030427528237906203696169771632256521626358025050758936828058390197673118320859070366337766376332024838966656675475787676513553170620281668036225437666661516607420675507381144384252875572947795693093842440699552444356626448413709344583939227203931960518855583356828073489655717459824539546988104410924768368403357940865779828641928415448773201531180287433649254897774181903677539353467837736901772103937126233558318828587343489448866733911242165492117783843907338360861165323299179723969603277589967002179376659905303501170826833888462473242850717820301491872617212732587446094942246362665005185681864122436754093637503222365449110627113459568428325245212966385667909716956581983507712824537715714767842071824581537105818880751160920175263440108370058857390517145279423684615940931593820069692668714891138649763611793972048617776114729977752175396700001164151658171447647350901615526657193725353814676045762951111750579274092678553639174814976788582731686642900051987910865472002535937505373490600677047877017397500286699011544884464458706940556699225575592642222888858087557062515436633875695994842407317735220428231481832494977196087790724240145169184847166200256391698615221358228225251600771087067012366675148498657438756196405517645080636330894528373462157247535496016641531772529063480005523409413539368934947302356177910035446181175438014463442392953767913356752453250238645470124877095152745259081064616368350538588774491615982872281219766758278163460916825656377332558432888405766576301562064746825963695098809195242399629137924089099905379478544608274803812079302151674734242092764640737328185899253247915370036491285542241139209925026292038607394265386008601121258689649692449746784417820685952076181597815088819003822213421689317136154804206238873157418055610785126561710897455187947725557721688946682428499189272608428023352744924566362186980965552773467667987865473567034588236599328919329787528619661573934613961348853521513122202542399782834503085872267813982676489364276064251181444563767915068631840350701359839195042373582844961820627666304989865859816733161797403967828500054209250858758122125240824300190223939469746629096018287260553393498906394777428109353913404777816094682685578061364654983939008486341238577171496028183901927136923246800296343730865350819998709490793930180706361693793924338273843730785555713757479621531527621140089040379781153221595765862282996877218353091864752646782316838298081525286408539856934090581809632214845633127770338221125957790347564425814435291708656174172247690022800436001223569633697820610815447890854402676479038926151142239037020000015134181321426188969474469916232412193367507087052077414463668913610492360879005930797537030711720671124008128326363834875426603873179486956678163581642972654650651742903504623721252775976785652345529311287055424165801631436784939473786395922076283863663170592881609057536643940980605851231003393078522676692759012786500973663860430432090014094126697107499206955461171378229461157080645270027837336631195026916657064816818201951137319989667822883680924929740090943450416147246501918504934820795885773399202560286963176841088344270577136803950898838898513847663252160040499327890966986605527307334972019265356185363167957774981670533431702358196422930844565993409333298005974917519737556949882574859166005547936074931451766827566002520074023302174104674987517153484793877156364626301539328023960401030673171774431519284841144738480515490901486658344014123007987030999390001431034705108470485255451124577336305563856336521024130491821285773794696379630306629072199699528224218126629946413148543468777966163629302363381554965833963676600938546261270743256320809580246580366196302583475275734218945783109072557865247535016769443616717171211424753481696704784363472684697731704739973323875271121086315359215899734406834913088213284583334989452434444997759658175844506712252375815873099869204978123193113486830552524410496546995996197960893084525624579493081193471120249719672782867361022852881626189283353391261336272029144766388421596189643825126914950747382100981215162002274018896718456444018055124726195177364990145515578058196485892019637592222830962272472601540676462639400332881130000049662209239094170958249345891612841732872903937944265291185715327000808005082744334264386961231801455766813683134069051370258492722249846218389272143813209231673474799698235140259984033082652093042760555218459151507684325088275035666334312464233658692971736068174455457252584101747870464680044449078522483507736496210141617140096130452335102254654241283638102747484783720192400932640246907509605917433835771356021684278057519203676351123932676625851306900993596003571819336312812739631042966853358652283227245538703004816881953218493357544880536488607583825699690318435815815136286285480722330501080716648244283710213098139499020316729614013810166362792837241583949685106987492985635366897950042951984895486809468509440816669719050021902168774599642306633808943487379663145993323515936935009533396964609521689383261440825763107018579950111158241501894759780455199260771871271809961290212094289576865280875931023984210383284451785064844929722251232678514114657891545941532295723853618399677544210377403952611820534181778488418005399278296125090709052948225735927110783259609374008262682888116420607156007080977599354954288894050820448900167356698283865521556796131709402647745148079329511211661282854276544387832539342902081258975740384915432196555959310806013529305059560223600538206408147496614286361067257157904580639651975875595748201818346021298617917770359597295410341248883920321375058813589136790282922442684404290739601934718445036433990791310236429936187043693973477046973277381739424422492567648756442431740333811476638186449646366235258851255772628714628326251745761762941760164248687742675006374053929461786576628524970443919611818708762795476413461951613444753710290444347704146628995052641209529619203441309189992569571199353612922420282871635702917231589486569282020924091697691274507133630014846607983115128197387836214043195556315584225042241950580727464134408564626001212567013222796755428660739418275036423437229430451783762054865232321906646861008763035925759775969619661430054181893569037464254306292545964558948968866516811594610004609331553583093469329054026723926893544361359510178865081599810325340060081813543709119739085381072983797338659259346205693310319790549094173322456253348524410357077114937376385833835903389944652867225356327527640422970959220781294185172119709326549768099539600668472495428430379614018338300096564948093200664381307647854504295531479318088104016727461375654536827932330730120794411443997006071840258869288661797446352730647234176001615031358038975718732842679507955607537531364271994142630354450302784838682257932841854962758954402730729273083402989197197543861388787017832449700501692821619114362202443629362404933202956355568045441676960041468415106539925664000371909590175837338517588174615027285841951124529552188122218981081419677245865616709142804264236838197412977874112897131065275013193657626749106857479030044579924939943539671986096610217018729145558027753237140979443906702571031498911618588193211825461732745955874636109651008641864883666229978237851360622812384659509408917863874702515102862446865710231715516617054494263267780179049197157110386622440461274877662875911431926640907857061663507605565090082670268597990713587631803044183375601833906320243432889655715762031786941539030949513998558731459099158951902837569066139155880622132849872092585621018824676664514096427341727974808210056573919870263023922606988656380318647764850357407280454685297291066215584077706605766371921469997294504362590258103388977080382950963267637154614101576206273026071834892479710559632089372094776841421680868528315554669384317143148259270368965164875491199349034588391583348549087198098645694909061659056809550661968894734308884582323880063298124278101800318587554988931888730348021731642151924839007974911574044501759657985267559609613250206623938494210297785103761953772025919914716391858693687677387950384034037239635645821509589824804524902194151703079161822960655539770147861241766529080458560790995250677063700307008346421378290808365439862246990866919840498883446902084241966438989139592891583101926817474585513377039504620015529587868493770467572430815242342892803524163541841217706175252783218119293760213828030392573564603388919980999105753897976846690396440636986877482271184029837280002975823844776734791019236263359179921261137637820574943426843309087701613401103798487021666145837189746050763792960930241562249945375828694444186573272023552106615788770407449684133823085087099530700187113677978661192249275398259837387552450524793912155882509633600027292598548096636999663118722355533624216917778912045781655449108538232238275443620682327894019704901904351764525194414897094441005800646255490941092565457960484199820598945083523462205900978490062266924254881749914918132155428900115209901437350140141746223189306585029206254836964639857553970299356408771586511798708395290059706540120475977267307267805977741850989043454019820319191998147650186495643538450293666504542195814138211627359482935673345692267918028416334362091902149771474309617629131362373520726696469184279358443779269809725579795239279021370201411595744617383164574379249374821050244507538198804500399711095333545001583039961383939139437278620446797416109329007844781219039096908060625576748344077505698123091638563135712131930392952625741510965485865336017565951494657009003687975602800214362520600559572047792154447464104306395130461147691939860615828065518524268703134081753283949135171144919617727387923832020036144805712892195579438746203357991209654583834186130422580363441780198843107088008158726447870105370149774380170810236985828619419052283169715615799313581874882195539205987575643719119352233116214140885506241768798438455677759186350648627281507551009956185561738448456633100871038662946912527244671892339429835770689143455817591986322306671583086303299792908813960651624144102331389092144979996464129612927709359296676187879567817655725291345766545201800095564785587473342960854808345742267219004006238776407400159997996695526789081146062203575698552155328127067071179600634837526391345877694740974130723716551982865346519870596053787077159552387944716755068848616317314038921839218274766324774111823383634034415669280214999515312788505631137488863238069380906430244631829467340338356767131399222380328485289511731403808924126995546976140047605562551927524979455605964044389732582873792882491448999806927345803733963806046814160029394105079954193727319161656314828819357100491722088134964786114661737166835529145425164263355852911719077632165181501640994707811955663896795974490848233157591500509806657611532764867812026495735919510577242259840572825485395626070794379326463899495854874357701449959669648392838740206698582929995306499055737608480795448034434808025855735183206674190290338679016630805596645211949767548485175048454017402238102313654554152796006087798417030746310452204881356879118072309101630614068890848299654877384002147618859909469540441305529406787890808036284805503113180127768758049831885952104362167842577035819273431667580693233234049463081610590475047452719088792733696163801519831293125827768268755853106013828576046992741819736004463884519150447161260633071788677708319686236504470873610136292819349978908093750074529669729418853094760206178181816632796627209550945643559385056109989476023989831398524114233662832567254074614932413910099840434487219311835422312763854859977694388733632911804620343717084679333987064895781060880452131548529718068028037956592929912521712856896512600295365174945170360928565282465712058251835833353075852725587195916220825077341336920124116183255507653514947034482315346415490713543844215593975281114022981560981932732089585151915414500800942944918602436110772101144577588829103468636526088820101704464826240928952407723838919940545061363502509855971912971437721128277920439459719100838803475876565328467818467718031190129091203247333861178046523411090820047355245569655007120741825177975003557348160722865587851302834969978138966196359947764077405338214812992843513949085536263705549832999743733806675621525927867152062812245728396150274458209014237929672122811077198580372154933344949064903042186190108498688161054781324328131675485141188811450509706763919256068044371915489817610942995351050699943737645488644812655067371207385054574857301710448987098346310607652178377147986388965538325026488423312632004457625887347373678012331778983634338399095843977214838371059374471955464318978850741444882663318486633086711447643439348325300207959908781063971113318234028873166904921512655979047886966513964259241815443000928043687622060116165985409261289688715929313277736950292434368206436340684448829946077312769340845761768701628044377776913188491926051012923525123488268838979977241109070084663591663652838527891814572491517264960317446377108699291499758467131751785433999494854406831885492020015600452555327263695132858734906747968740781647027365884660165064915645685986953833093497751808547511983738077945078500945457260396840162242446255691692013904144318790014046378605057322172378707253942991738596695707794733020761141780813214921255194456596100433032387429434943908793399678968946677128117725168900822655111320266856314299769926046106273106806040403884222470575427646811534896759207703191569983118431398474861840021386544149290755646237717135694784573616854305444915430133227556530373282419397743574287592791620456206175337546081481515325703202103764997687552269164741505362175520905575749360546069441755118201616223687679033749572271208113437159164554645907502417086585042640910361355117586937770033594289044646735290488567953794425775301915653431103002259140993709470454060464610646652430287215456714386352635078382609660003557339779856126285264089401439534814443527657009758958399381787233447802239302820860553154866665737485381833035769763470948423064449035509398227750799223795503657285254961782191793583011632148818751166059260266250615058748522073551078058316217899511053812073579651404698557050742871387923767263402631017432882920382108175408214844732380514355457608269549732982241516707859370389893230673281517522112208541456845783324474370708908812381692721925591489652986741468205780239412946114328675583486573460266461690182110403049346656985483779332827810179263451704271697100923841565998178607864237626602484504413686724117574333874518429231447480528251352785407834675241854777135854993880006598212046141897402538621197226470306262652559837806908646097160403112610659799553091384667093602720872791045114126283474010991623869687274522687800920926001544965924829205060586624532909857719775461562341441296669104827598633649620140678705903469256651847187028231465287016289093383032200836583656194279876418065501200963251739797734078895355405791859221015767119871690013813637639641583447865801472431334462659586801382641017544732419230942605439311893460809506009248942277036918221919736689125536361912504499742157828527599785417450233552339185618885578022299872289243023026937072111922280188464782747801683341631247076960003438063728497721438650100714728340424756790817168080358340488706035054659875176605800118039834012625416938550162754179218562032070884237139404724993533574472705360344487334275130243890674084749182197875517714511735945236563454170493926692933757527142828479981572267680706267809021247369530120354127884730338049613943389496207024645538287150380146604805430937289177643725574696554077762978017284898129820820653304812163917087228837147437274682275765686381448041188937329271228532253926360344276507321009508518133166744966272707245669343524599762676633743673071902118244927317276377022700503309613548082968204563005600990444814051405691653527912798917304899560465423007066793913118219502074311914978815621913175096054618462777934669467425465165401040250123154668839855203899020266863319755809956195120610066665222197625420043109453678244126759510966667778354062521684500782067248646287043008442621616151613565049856727877417337252921026677923370735633631051667021048755670598167055456101670940342617657155856111769266843010459051450327504822919186041153808991780077620457026639195638960349181417173326478013955279537562376557477376788553022793727235851471653596058359708937828243683660948551393257484337404988934069845321447733631442502414301765829796147030305456128075065878189580119957909013345409615520706460923787132566759122326601008354367951406142850131023317675851155677225559612078069945932609134757511219547189885684394795186830756212421693312996365801417176210576980288902976395708253698023467645233090964984233790222134321294251689374982534332947515357296192187628400931373394360894802933408556457858585179360841820106633718981337183683850858700945906862924040056796842002532659578550453763699559553945580297202810721721609271055397712291148405323776295827830288877579935741682770499029967430338809744932010121425801798263825223150083065626157468827135414585834826145099497927552237044927924163064837555792344233748078833591924550864007025413749771054915484293895855991969936075838184193614797115561058207907960477034367565688185774319654734871379519386483232275150326121065250271855879511295152537059804779149517969020762205652944095158151749629031838661418484094017497731531823819882928628427062911620490771948279315618076483514952915627574165423687929251081240210041995848529142790772529167522637646460926376832730845942853273957791555973744422838315072950146482186833378214265815258374152618690608810776444834499861893557229314853385891254473071597467635950943271750346849660152843396044817778797090564496846656645658312621189175199536363648784441601908142853595132969923470780136364079777212124062060857193516557534317843828678518093879427848520505806118794492095094210639816097226375610589546810575016563709856913993125271535172667671872352041669359861433254822902138894059614769535721088007860046397469932354744906064896267702742116793803299667584316593551671008690639163389701971216781906111484537482688406961388046662046701795599795552891181895487257320916246779832740900037370087881895958758921289232293145830891391763888515147467171873879269310280187393617191001857055451367398399938158547512294207048945280787821519083944772333044468092775022609981714790634482554684202476524986458307282856582618119934575951609377915387523649926063514247376931922819963790262593464387403506821054832150617564375070612605443218148681980020025715746317348388216012174109319509128922887942086819476183670644541320808915269294652794709927535890850758249948833226003065332207185372421865735570138704303930289397528501324637504518803020768324871130242112059743864499455879049482560706756495010234767730257769241526740601642310620892134602300602485768953792125490084619286808249653712709823294009328381325227582745986952507886676356275736698047057774509257464983868252594780078571701550597446283327841302423630936443041134985269720405878337122377551535509234936884979863526169853042649132969211313341882221071185407587755972144324716929329582273997593242752896286635908622803962312350119072099313605687724183813399918979373575015522261734529664302008210205361315129842193030238632506062754486011723966477914585992488246393220956329738082235503404854698900414309305794345514895309879044563192028703860389399076711151748046002932102079216569298607418291588291710052693029840686575357910403521968474355570559093334792899247604838115150271959951609760228801177328698707008388649282164851728906673124774804761694362223102342201328562167822266807509867243403146851189130083562703293245594189476457172836766355092355738500744307891997420768396068228234398704206281284490826754676454740947709567678760284221895478173002090423818030110538193620320881234132207252746728396613549993584992670187113112561176085348216563051322548554347284747736646991432984856191679471353438260464005328337820739336501020692612740931484045341307196383458018857170435931229058790706736879031176182394983535747803785458215361009817491422667164631854968170047946336046198796530067152539515532146521137359245336556050579800412883286721464724550630860938435597453939365730276962604864803433290221020703304074989245482916852276494803701786002417649657309100236125155272218019084453019631969238231580965495369002280292510212420326934407525033826770453435151532389200094238893728114321127055357161430874612920013681503966815311285887521402988611962072158688259248983818454718958421556165142674825841307524483312604494862029900776579956889630036778059880235250328958660736214188685693575503558770607724599329397320996776976578032084349611520486675201818707546036815804322479968434499163969964897874351534645048902761465924380923486462268606456770604263317579801310143925985354305318849090791301645361314318977666891344356357478633087315134097655054481287523393057270150227115655082549324610586956604975749542229247887220020986283247214495593086090512352341278710204882245039501755902748435498298941004561818185290323192026667397307257282590258044054595816406672284663283401309985428939257472278751893988761599329996084004998142606606339459043154749843970578164870952517478848692328473724248001161066763612740534205726261132525449203290962713921770939919104694909939939812807888701215170099535785593897805815438154402730382722746423837220377885232948606468209945416413975377562260467820333441374718839598232269707129654357071352584903517203521009266124631364557178182962607761065502644802645630662302146461074087136420350100132128777216105462751555629951733428144222064933558728871932910461866275507883437292149302720567056827264987207845765708014156794166018375988762362776208286278525224105022272965503478950308656589762111229137980782967845892052120117736435390316933280111673469905037605739328143230538398556132244375493033475963013428256303154014174626829088951325523805917568932414648577543156631007097216409427601455912856408971165628931416489861703676827315424319583505933238832299172050095958874108116681835002117322858890175926887834423249357531570306694527352780671268793269980704258036223312887000078283182036674860792701994395295521067044931635160087539512604838996696984919852957155833765587112673325895438323847319992852634704864711972146058992024176775670714317334297448765011493930969147281503718595127062206568765177541521651897686277883849509904116946357382316711494376532873745434175625226810037399963743580923104641661360128772454998471164125250238922992777447531307289860110942040050863895236853417405248179750560185476533215123488054109009076312684856432549330355226226817881972865530049461679916294841721559147859221721566173727453779452781882005185207829828386889160588327173545947126232031014422856488817142565424985655680256239684652637795965119156852750095302298277177333884964612071471194708520821817153694171641449875517053949520155409256432507873469440292683589064877584351381333597084195166640918737878017686841436466557847743014478613965748628995251546204115066473500304420413544565793951956507742480017414759139881608124595386117730190699275100924588852095926456839556440040465208156116420780841009678767221460613654328466683623401810947880026500062850345192260427849912757396163656891648491998548518607592702396800059632899352150642900268558730776934883612217602560831881699427018707281687624329538082408741610029503242581434294395353521072665687037351140919877149047019355170311292504875495561550077409543043910116488927949610372698682937714628344896414980861516739374522376564953558661897678798059923953687693374720319443213754776181278065682384270885415508746999230235341296678178381243891049448076637707854615465521403151473302242323359538648287602169150765480710751622516571454377219295669560393782319342801610565891338850743769358925092391494817974731051124824118420375246418930560739530494804850309116678291311093451643967639857199680413042406629361805738079168719254993198354703779286508457154559728383124102261922291498026291308985104857650864044092475972192177107722456636632262149323061343481413346191538333062036394383693260434308057165339960113999011162152064575123224382408572664336499102621713967873823971394931404947630511303124122145583903002263907860189813848101420934812675923141436211924955389357332731549761331562517610793817206242920018937718867306435507633020188753102252477580273463578433100141659108446769111330217134636400937298357796185634692925739107609894221056938843444344822716003109869699394696454712970941567608328756757669637946827213213074963294612638624444452603324064242917278591362810830517379337426888616140478356556120749974811344843680671561235374084696095470919063174935697540978203675797962305587718373409373593181851724376716593901582839041552689645551898465951806406300044330531817980897450305668154612526516054438109957254354509075698802462093978177140779065290986022019820297425502794746148437990112794303601632924575104453548675619315193682569765925668265136356151022102613868388791673560152855659131084601759549212603882710734900190013672970889442401603925394627185489964508925341393222493855220527578318507568623237460936252097046131907069825240906871619883875117963195473104908527944423153591953364143435670037386359271957283292379479000762447346767158940314699158979390171491154404386044732059530184560487670543595569427536581091034536889532901372182701132795040866087574488054605521635410240622587476830127416697410217045206851765814103303056806881213167525217062700564715250717193113519868828819076612613803301797359576213144180762069663832246456357550487638190082334816568023067597314395022437562140049603249943451131427930963024414948376260060662703530261453705321268845204354896955539962189613058618554933981715016825710620243776547553963257678438122595436017848472578309603966610404759681911300252858905239266284178283655693335723202610742547891558110774941645170784940986272539376581999070865105252679264480719170612454447661693593405756327723089928893379109766690187246052714822890092837242341217563483252825726459368298776661539373913566193854892201092570362809253482097360353058020323361224135280889563403732280352933542945719063153820657678572438024262718614006240035467578900812650189483985420519402621837993197428791718576637670378702084017096096004385032194193978470650084212812715407286420049006657913403284967168432373703812499342026624351467346242561785633974772381977222713879719960687303708386393208495959671631718028407498669571206444061480664075945163850187865946111230335289510033670511438679193930683068072676560030342807729819044582226573939739104836688930540992444877783461487975767770343878093078641006169862805905305076489145038003252476914160426694960202295558817276956523116330248065594788900492403261311851999546575670804864916224062992096127754629245477365185634376984416975565984399429899375235691443041589885796524768849876938150612451336016584574813809353122265226200049517499137707536930383606517108458419898329210376087038206777059070720350371599684552008913337944680242078837257384343575008634038221078509076349446030674895944734246563192842237929909004178632162598693349707277818774825297823140961225531121034169936470839831894071976963935109198991708892872756693873069973154600107552131827530891016722470219073943877604195230391902686543634037042775501674864897886248933271737457961116637787923619623468502480726921467246612255965781700436193398706692517342659321761248093720963885057720269479231091810621845388067403352392555418044235378296062591105014037129504815421888769779431832795046564195057036241713150062514014844294590567751857991724971699612175050283068754896862558615306132983154721327081841916313622963909460153558067092827106722679833045763527674269746175852440777853178595759763249033107745138563514876312232389960541142834931291750427064757744509781750923929966455350226809147618356168832424632169358499338665679080067507015671060049229009688368107490869658206596732371984918261847099378728527025918267751607596504298826303499663341715848939535682418287756042624903227041675676263629509999294534240533762418278248558635325483720055972814226844320489186881425285337296234671836049987176555142165990406689812570132099767393550862478215851693368187701904875524369833136764162296862878274666013263446413173368769617212125423480332529595957319594207226377149946021457687685773924909379272375757397567488177894937159421389018180380188426115899021331338970806831282942499942367121660683228264919282036727637034567233740436799078355324337557177348791486108556175358024027329670815280500090413006580142372574712996813613069109864281437042260041760289053387133847143204028119230611198298865380763655558891879221704839013818773795619413753081870748912639571890178186051297749636285749599689498596140940076709837924796689561950935915940923645671397982182394352139444593979244002601556923429653518475682052931158403025772725650865232327050547465346178169151550075615863126453267298254753635345306109115059295479126825474409103438199619894329553209653313418947420050904209648058138387943231274537291399300893650912162885784352865277357952766644606640383703118841685985493115876994713875695908576292735449631310502659517108455866470826386082727041633520737790768630032600141725418856936278334038557554458983611135821656628119364063568535158223030573214065591690977739299705940606059167462024796516927462152149848858489784234765075547927033662877303344668486730772019427134887299391690184205761412520914184546362169953057342340878657055877357814949712650293905812159861103584295890429544693733715247956210202668629698503469316744648099022238815752529067315750650548221457130825089600561817758816850644877708910133426856302004654072409551268569198842556225651072325814700007784373229028014830545675984812298317160495311788022744906631923926876749423342779233747231205537760710353667890644687228522404204917444871132469534072819483220729276090634559861373425225273503756772866672089581829676515814061904915727207572573902445335865768962070308679000624517648712875699777114574680229821595934372973915263886232971093765176804338410210551662907824503080804834863285006376148115071618433629664960370776679316268471930996855283123390227313932546150663984236829833202610887522352196909380975585413293591583245621675869638302593876238040229938810079438555648285404270382027012842205430147021768542851938770038605669582302022769781763338107268223104548998667154641478952616253005303029005344581187113407227701302951084689840605011589106425620613517422320726277018809750612389658514103149211597242125467124106179300091002472121003141637971067640965764652534923177794803533850340361671080404141993977480489718196843356508277565162989017350012310168724338895039129168802517054089178186193206727901206744929618388033185409805498809820763543429869283357969868383941129586136566630760062313708802044031877158696191860366592506307374135914747997746712397935805208489470930538495687561261069048644120062371201360442717168741713723458008037780178901491725879659369222723838646383686538946966243267924289316593734069369724807411114056318661170204566236257488173342240086675844011546226004762216025667907680754029182832421191304133212695159330664812785658678094033688821318344738749990450395324806560662915474452432289158648908290400827694418631876700787012767614183586272063938120301665655502284605016460716580212847017493255512169063224632881012611849500996630342021436568819989026871482478522537043160805363630579673305902833829938980945017867324767246166376523421025960793105688391073833508877821069414991242334268652401395902896559172306014423032618839095673372034408598750843586342954077166662078637327461315292673614971611829238430866397032518183360693183701810245991735662278786766302383310645297333094765211180123542780800767741301026557600770951857798417062668355400559257737627599163681509280271107005883542148029784207313140923751378852113975781696615303509286168760914431379136339468181230350221202771850981295463772610752683171843623693080581879040947918868133359545000858548673220238762455825240906094840077817326290614623700265806115811416494505618554352850189429526492580528200506667697867939134020197451014420092565795242884562219523890586109845435846416312342003981291911151875459177557605669093081639910525583197167594874010139147767014773787190461714738727581759168354252828090394981248180570548563869169704793290550049818568895058682920155949512151547970710052838090359979181824140700464639405121770111633336249028008258338872071465717131618039663149380494183379535182019497830698456178839484550637416023850546731988676209673587848498720914265989962595535886172324480295613431781162318400601011700433170433014364440173012064546851858317303791854853627951500058904587966114260741404227230783605816773140803325376829712184903082810186950334554087320782812089952434637267598692728170432668012456618329289696418912636681278962789090951624458554520124723358807727628643858742076641247146275251014400542781865548619623057800617071997684601136519377731266797234711545371420814660303562819124001172605737534046384959285062668951457976754071177435474034610862308848286908806714223608827614306577947025909561926620543549843848795101159940713977817663363788192604334911021371557756871492052807601061457390788979987363961163507793778342421348074440044360441747702222396711364410630596769051914256511194148558493709032315589618719889457105219476327759515428369179554745794509545109693207880116606845459636090316108710281014988988448364008191161942120092220921047661518422091019800277184774369567631588957390672839563066380587665203395107478986066823037615848561903861701349193045881344018696912655297649973419860317077451200907114770787933228218094757288997522258902775684404977960055294369790488204653169070669469263739374050204302012256456307214969128977828579931889267976734536271545331682479506675105991899530765934291366625818051935321828248273370354279536038888364664766262273283180730565587798986553374678140304991543852113793840354432104434468998054776676613344449072048611012653677605031360323104417409702636763038886727008318542764017339529147769331754135459987227684889751633002280869189664834636554103977554860120238979419998424697570581815096745441005038353108591856603323133384335575549382417800921227730316226212974016423800336902212665459819652529786662796527271002025099589955347188984209574980831695081746486573427443723273878863902551945868160143669031988740817100878271293638985207869275144687049063033701822410513353548522621552114562906186161129179863554208891742952560156998580584035793841564636203776539813588677660137249428255273806318955163865405748377365745708836521747173924004302217089513061238009776300200158714964239070863607490825277573161929691865349415493811139392832400957688145439000038481403680070870847345065599042528902087037765669868567242886980612127280014935777977849544863531466444243822343159356898317903474797526865311263875356510918479565756692504411585406872587513883870822481045123797550382743841691064795444606810065122007845036503038462192751287531613068773310385640066070623514965634516807461245186911394514737825451107981857745568732890612394931978287748849597601274999668089676928512998206466231419603699304650643458841336091050210977407021193103866388325009314760186702239939007925047812283586517483834728702132952374891737014425973168369040592205218010763965918670105843076383035544305599596728917372447008638012802324740218887332636505436724397860256814911260118793922416849095140169727256489871617966676510747834426836255994089328704678557432059770451978597673880526226843653695215720552327858643507385980015658163151552314792902172058963415048807138540135588436041085363727578350943654954986980187868662447588124857829630927558940113943144289793138648511406941459196347477579481060734695807876712172277116652212666731652457680104758333233507595894434034827988786696520238157097525533892537835915607264894218125690932470590993000341059174486277660520239684362159846395150908473831671790710038898993527519449575401050304665595220160433081708535530917586772745828845631921563591385170329911155725213035756101081692230037479925098326348046733274203134126888547085962627792650133008358834780608167806233791719271050896844886212671931849084150663339508713059721789630792949045903644266997785484970241181512256795861660268562127814895568265138640555426987696442218011041934376654064381869040126061300424730504094200981983132845193059382387573952266204864412430470918828326273209804309362437608986549137750186627901023874990421537127711469412669676610997860240277244246853721469123213400026084437627613668633330631767024784567468341478103549616455057109422784495484132039614961352049737016368019984210753624294489633501973430529457383191001771434958470227140528888093358846293881354578111313309844808276058630479860752904606163819593427878661043096169928510954579431892520251723547743672382023000355073660820929552457562297779806316601485688609600750009067122750685985906962835349582645558943787350732481464561343819734758876983389464332542773915356947315702158978678777326475964067002932962271909773820717999268886537473135905133222484895183803503540163759927374818211544873929895321266019705685227979120553390619093735138247545806494010228837796873856312079261617164013156647789281361334733473824541978483548812556486480354695714947294222072583889360325347537981468101579837968345005548687362302100817251416673546444707191571957876160424687546714789785737247029406776361108518546406087695180886953691155219669639082634766619797974669114728341041055464324147043256581565474920648688026631880961063371531018042193981822157077887761323315479189879709578941036417655515955803042051082423608219248500474050664366367055531019231214530548483090273914352319181082507198413821916582236650046148671847323329510501523278401207124009868876071952250872773605099791768503805052542881075016127905127598085596676629685087448493848574145099061685358084014872572082452633507499843739958737766495989750556394933912120612411791252299106651358347213736230860681025538789235045574319101942211868162568594330164558273405287758509953479403202492857781248552189921190146067395277412513481169659738610872174033191436099538931017054561007832518411455956650908498726529868488177284125308941083727478129221814060702733625254194483298159283468935619129360569782654258492219806893311611960280725591671466571495114869312294605874362393535350921007806256364541069230576602365761916594438151674466233690202193515689735838184821238665867665787249158236627140596313899816066679804642345190461354486321622170755498898361096831816528294737942303818343976944473411756136604775598564829593667668090355167894605904352775870655445376631722979664862018754297405450839831550614838032084064324046521755596420646169482002889023509337171786587010948175550901791289572179875743780149451992021222592932128646293578242607440377337158074121052005589137520269390352315608709244043798213783293250793515290989408347423285489612770520719709190132322592355842722022138318241730095870909172252665879036359121819602511171901863988880094538503899880808859082791467100926675293684754299869227181082231189352874483101643965349192882088049993408750679631294166265025773214368486043320241603536384935071432035984411674191669155917418288162718456570534391447074386348567102363458348253931275814545796894765323881494692385999802980227393615030780554025150432869575713670407572074241903802579859860733338078160533143435240541197461348277832586022709484458627261842419096978686722226974623281599126618800126284391552385088571042446306693883473671779324437486720325556532508176865911655206413315493688536447690528965286845908592987830170770196736874355429927065794226820134811714782775286572919715638212558153562776257731802696271970012570316752223531689087190753931627188004152415175924635668668372879856454952646617901663845053105839516777809281084199927744422758104401456683339068528344302382806840679565271292015174433867692192317741558044719184887996381963965117572798425284852383684054183225593634976870665908490021726117987723376533187732768143949581964921700673587381487173377274288335543663785827436866432585991402251273300005899853499760776081658385025905369022055067565711227420587896171511019602705973817801506287105183731000848481346744901395320387959454901543717435139294057730420326445063157944181133733024587822065963953685797570880996128609824301049262655837452177151549981384250963950417725526859406976363270000072246296768498489992559095471868771151719851307302824519899647562077715000389081508239593592033260407430593563609376601417934284179717004718691210386656240674329081816651136087144954451300402946812967533465476352991478181581106654549916144887971414905177283553753206118731723314335657494572129411190457189586550504936107183082198751158460112585424962431500567497363389341748248140912346873944143804487799611186963250307682742417034561790681283372869350575992202202287319748298860889306009843966500661357410796990980164253406898416381415249237416038590941434429914371925789321567148258767672453163688146621829778023695958543347945646891241866668356031530929020888843181359402302972167037219889083065733071685989959131213165014354978879120719956925349015604445800905395287710305552062658695842738604337365450579676533338811702849974030586146988090352504051720688536080102347889925173282127227876579081527301800117737568867675184200222712368291815976986725864324182733391016334864757534619596111867794902805031652366995801916840572791735548297122654431588146802179377996957649433170329896622849791148798338887347815414241598096044044302814659748520311541161847078148723304062159558311357434713724146478015874929166857256881217798971554985108040250860036539804927974288303324396129954565664615740749901399162135320747556862192912561761895451314749725792790324018039636346461595115314031788388990050736910159736677772406687307028793007919323635675114586214057880540256237456397679005332892030685338055031193369300909234674683465422293992234722594177917548825994475223244767117402402554861671125809466558645116002922626297160586907170557859396503977203236982392756921047192319902889826414478007645486742640514410622067027801485686978793838280389101448022707021229849905251139989704825407483507793869046040975443416057442611888292261570105191352045194747922918306445709230029075183733217241675659384140911113651571707672468932188053332751813459331742005894522703996829734234705041904942660833847084711750606138097650490468850300293930856052874776140645816245682318098109254299189926741308119541054168597509894675097803990246584361241129894608260309004793871063266811384925590619810330640697509051987593078137975630102168814936545080037609372243858769920506525217548333520768866886283486383366023994758897254048848048451022810341280416316165823964047111668231434118343081195928729446794602971947116641856787796002560788540323457087424566419451619238515195423797263761161396025725887708817295397209162434426036840395673818309241152781981855738641848387952637406886394980893429809071435081441277849094798005351843682518002814436129700904592472373656335672528890300805702623741694267878730665760991541746281588620137496298082671885953206062774489661507065191105777356889078109312231382967383467890002692566306754665752358843378546737490892960798680070466960423698984197892019678634038834832148964639757819557528099510528226423364327551165428618053570930583486761712053962694382976757075128177693378758789366916762908712348403395313299326188634218746161930424555545214222782784329713568118143330863503042229889163840563205900793218699635367469669762803829774713494262894719170717306142394270588913372977452802085801138326739217052520935935025983076297053023217151519460861679623648418372625092370585720586902354391581464787998142019568239523292336868896654232744692068201912482362199279639476193734799756120649674917495535173715736945101826586356388668258321818380403630056832703664902790483536574049843196079340165539655754624081826193607814646421639218925954782006306919470394289512425363300823003151468084823893227892163963987037797596775573459329583109155759975462880416405916761565128461716539458033585183937082531849200119585419986900683388579823892545833082410563984617710909283827108080976480136153736161943109329969386334060452979031226003972362542486402135138650744223883232264078713703428884213381495517284293672160994164336022076603262636400301034836714251485441058811680251445853947184172362944406660464219032982450903712279970341411324489749509354246662643903404365113320943886374243919118174748812617833216751354944188783956823570098897270839205933683084195837698466938076285681527579632293407066123099162517016739260385810254399083480351922552324948528494604203446016793287649168134902419984964507997499367804863081288142252396984382208774235698303570923580388426941245985345709136972354726974313391054119638515789843444420929475877693475768207865127406059393487186794845374843838084533478852787787728953550735856490951593093766341623780061912637932115542018512528620437578472902599220908485713031390699002830362750313355691178058050234762816879235952167053872835984441388218748549504609343296719365475914538804262971156499222689567859520690712678193447485909967741897898382966914218649575858154522267333903636568453278310998603149805644265563614542923892102176196885349235318006650495887615824800192600847883060198938490702841310838792841617660075957029284302887696354081446168299844208002465505965162373174566157723092928148592408959805819166294660182544427456511748963681676589845268624563236164473561165005613432764842894801158005769156578751005658969099913988176231859893575803896474526033540405964526707825048714057996626753361257116523016412661133286955957722397860601806937334693686528560440131175000096876403934230136531089442090340578156433035568605014256152666674047381583147174979786127536834008774822707418059346277379155987297387808748741147025490160365230571418067336834945834108706604563596661528985747929770204068300009114160142512673459998664124176580970950676613198913648511043846608303457256051818537649603862857983134205792554743535731550975054280251115401748319469181302784343467985641985390012990730501787007096384316891839339929843673611324720849625424248060467376154812790863024939268655477733891300467093115032189130170348194458478482660145348705630664773919584680883222492578575681868454523829947904214282671522198582779387121659265372021046701536047077945677892350660181731976590657966121958287997248106394029324561833594687688786470736131945968985821931686025008774706942521141619489783868001779408315619532014311605066704759420461762750798296274656990246002295770856567828539347079178695467448519225282367431158237825833021709553086163635686700087464440412464359482739746710485794579253750274016328768321373890891446240051558464415893267765218400497976563060965057116960615390158603832276428009514304882903851120094051798721901650169317935344245587938766149634171274920124797990907928216517553368087821775038817934230354953506812104595782567571779064928744734532428024795759548313695795290012837308819684563606586375642878460739553547327184029168051202159711144667655371504228519717391046612668361066725752269354230311826376349548640043825023646896105561540877661478902947553051008227198383936163577058409187991096610217557504887586883626682853524224158649372339623864699887309055380728048212065912651718003965802827959028447637536319139261574443675131156506531439714223837029013438460072942063673466565503752940983218252432864175187571723451049934415594065550315887471251521397940158533531921103529908353644065206487669092728430607482958925483650860577163020624739069972158445861845740185483851778739307906058739390412593468573962513249848716811048588552956489601344775894438482561076113171293101920561980806057778792255927119086397647061023158547079226034175324508084597951451673233885322855787075507171864867922917093699601760804102836209888613643582751662042390216275946413700811673267282501403262079518587695315021558549507429522133032540470786281323332959130168160384226160160135836516947485459093734009092476229470130102821504897519137221171895960311005809688294906574468028572365445625809694562127193889312914869716713278843641954127843345839438841794539960928908418218199344524982512798676216285582565676377770855331142329702471266868911025573630927604414497404208323963117590672240192628008625930370487141421345888368501069363900185546300074814786405293399296372270343162537251197340693332085890951017571113098361202529071965569094485486914791461241614668027943671096655457048307635507983592061652113859635193257026643798262635779050494045473273601411350784565503072556982217143937056964346984033862085103369475979364847501674478683736075740067195682580515379481609420416811733524078912301598797910248288256863512232112128331872704915743263197461340587131392079437600052168225110162833645712966412635737612491280948945007879306756871419612813852865160650651660669017901886882920478472120023079124933464648287668678287749716879941737900503067571578758414788600502929841038034405702342203960205960968364262939055145876335287145191129343185986018396778320931129716329654426838198538790564020828284367335796453518657565397861955557602854220110714718228775851820485216838713097290724282513249438898907987567521346755482955047236760889490045397731908552497154035296806757608887849824135216482040695372207940371662351284309059852936247354595216850850211317023484511767680472145152838726865240320019026407920471895243165708240569387512779080564531400730471583748924182751960410707791871234392620064402096409150824413979654855888993394894704740733643931531436388511813326192528591132727501247048020798954762632579162962759723595306836493548987071962178951228588176333590272268793479158077775863861402475268589254676328472492788009837778864158159328980342526150946983297672186271511296969203967101222138839859909997540454495335606451680104878798688938730078225533457308178638562034142294159470246244271402433097707821795045714222801464666114362308586809333156677422487062049683893373193192039357492200499100524753772541306749231619441524720512192774345967306700539417450873816269722106298988873085539237090179322029990357644203283045728957185904756250212396219125266303079247593874291114836787774969927491471303723894005719292226630996457013277289500265423634612296507383605465032795233020431010346608528715417981372902734380662310610602791713506604781904126214787339851367843383369644123277613334683028437420676407492624657112228125605943303165086860168123013065025693421226072838152834319682628298976668561754690013079529594500818380344774036498549175268823584192385036510069758128327671076067286655269811056220958229493633564570852890950130780574280759782950158585926361086932718270010683598401651926774642314050188986186277804834875600858245533494323117306056207566544297535916876557986323567703653655508940034950535743277120258933621457448998445575970708216777869911416298948476657581718584565061342046777315080382112683815980668093967436769715017520427600243019228761682702607631397499321684417635386218613666561385827349079702660759084454314993314096556622177239508791921689971150195845570329631959703471370127607541306798949415244774921189324694926326645281313456455817445527980688647137108865775904597221610983644962212545678739035569722463570356210821216661269233419724517581840743422714481443016691153596510724312295870974144082652188677265534586341594640554713890450060597222199184134650622414552800405381170040435884002580884600919916208965939446959036726213834187709984386633512545822917740249046214809665841008366734590985490470455209518970691739037114464805489441733885885492281978248288267832316621516369827966401582659203273238489362023511449372136062032435686018060542534857097440364308785075552176213819395974528293227784590939073567647594019957686793158980577526531785687144953263697169824713013707760404353959555968983863945137092518619061965891959281587723599700490356240299588535263924596590873485521389736277602275648109905989505145310136124723646965431306600974736381565107365336463082214205968154555954891535643632969857175036989514455351834640952249189611111776026701258953199241759402157252659944088459474700572309911786412515982748371082434202206716574228020957879835943484047321979226719006853365926375737076713966906025397624906564553770680808276829285518915453039785089120343644300390522294223913809179163756620956148814468019145716647229279494827737968660813825307928602458824339401011605426485715080744030183716642755784651557693115034093818104630464990065874404450361628789920805281430419287229170374898756497727447008952611235554270243325388321387166744352785599256368704148087666012599156523240216405921711534564422076231119623086999520025850038309893880180376065632240790439383290130800187238579381288063061626589876609894636650375415044366364285491290290728276645092806334915223845328887570713083861933252822433567067797694430252799421269014262695148748232096298900632779952756522567578777335615504829522895410292339161704109627355083938944467264985427565532513194582995783788839897019892389186240996681381652255772484369463878700058529686784549342432416420044609416140919353763701726939358207369953426749362020485155963309541968776426022490970998684773127893306476952612714698169367091276675134194044793452635791586201594911216574875493323335264655811829791939271931461060888387824153357010288073982895976393766906057249316803967702757879094297489602704082762378502398225641013845945273445289536356062449005998711475056223315966793223581123368929963150520622233397347336272928936712282261041703057270397357966008081831671698318993999349507390789596136241607264113251748344558590587279525341546359212486020827894286900067457619848148681225689793967952973374684049206603417432256535360664630664424991117194360434311995120317755074934724704731569765606307272654660794524157059843990132479475830046208117397464798452419446862563254448608645558936611151776624446861058904628463689761302094152232220362131750254359653557977917839233207538888987114094261733276707578290123568981831525094778323592097928080371733459051565904658377270131166428908025910781172476736039660960101184842711692133221438503961990396960803575651529608254603773934342505865348824428115877518279182565816500150763914679455693595223600970596643326294124875408374302798050066499484230844338355832034585207603345473171644851586564634145375636558992499824429769609676878529268153670938473965738440041565831195213304493078438888081188050653726663646538346197861441748745397044398288626546773381649723139653977696558118243907657042025522308157296579804935497968843118398058224039121052822747612365219166094189659629146619461400155754342108111931622369612107992301227203593085401333181987352597603022009747990726297087807228519829000026647379204070808432864235306063589269348544575267165928794920892604584969267190187530576892625991269629657733961269037801849448370498413468330790774109271536941808199178878658653139099441961280186284902162527095582286190754521472172411158046266493372558283535859611750133131571493384085593265303520360311021671157591236510241318077084049496727184646593395664697839063219980839750569316786991723046593653879529287819373925104367970024832376329452505784745354474166030009233554397446154778503172214402371271352471000370258358557356416403632354063776050415243868159095061624460827265883442555570951657216680212120139759037629405561690252965703952046437444488112696283060419811845994877941111185495057112782309557425724250868849153466033381470460074562342913670236282971966350716974684739254100162455109462827298268508308502079870151747856275905795140754734179189320265275657353554608122215656657942146738797800924133562915370935385147743926579511691063631325883966954952284954843923759689561722884210978687722950252543741938569507954341865648813077479971004448239584616994628315555548586271232240446470100675249338360933414128298461448860929854356505922351042890413632965123786529542096168870386326691268114077873476118231708795636775836943782495347696552899241309786486807259441128360388042660648153502977415417995945807712229617906320265526115748783126900585286648404905508674313800282050666558087987221032447382353008718635233651173734761566004745080721200191674652958104988967444392604859926169469477956660103990733470474934509736617721035073155123144248913965802695752923477089572143427690559852058717007883927194805152877051107544056555108781675486982345579901965590853565310601674554532431525511839180105559595356495394360282494981342949935237619886805921899865654436373612176454963465612785243458521513770420575820769179790657088852672546455119685868888574197991951287221925743815876341218815592841261450520380184060868992044892388968823411856735764067530009842541239959810545174862136053595023748800302290485311836130691360530619010118361697994922647506096501219767146454027430836517250036503848537456832575696754136618388100712100415292583091011433704432283652866675745466183971749738865481185700008878879361211139868183140056217948960315255019531310705546935054695805233202162177970612407450412865133307480942623178117652363944029683020735229094088629782083422300029371775466590507548019629495358169032394566625423018464775377865946055548804114023083525239511859870607367901199617049168697844690163723304517716755125265393439938008972974914822785627828864740343160617006186079903914553499692067783328898374043984553200176577975951581642799378878228237650414985439627082946274466253183554459286429029280144523594626958566518718870271764352573166730125548467177871318459030671519525350899108347565793131174360754168172669264137812146623621878414379482273876021753917995620149015674830969494923004379662055698415696393513204485930158989554010855385899451091957268387186334884345344160900209876812087227830221750865491923785422742271812342268966811237018790473243037296384083420476634142544677231493660282306544430101528488018843642548652374312640255299548694503037242228859226140803353079720760055962458130388013057107092643637609706045183240997445323555080727171286896052011414033630982979915919833177388178281081640719887125002884750797806297873376109239362358622678300561756126959534697084374210577302889170296775594224774900096895634028633134240359264509474608920970673845081801774310535801432439790787119004160177224796604130523597536422037286519851243372082785285289065238079810922744816197547649601056015120950567942018527153693044194242772247613193996997237145456226926525803192757149429080089528936588901907733886447636292052483608249289470420097376387253301865000583689543381058486053011773621877839882946990946568382504623924411353217467267491302475390966440512757262175888628947464169033565289595219075740782064478278411274745239575671987429273533670368705419574708554398143750940566034223347096954543795023497656688262955665674333438002915024478569755438875604661551567586048095735933348201698059607278847754757164294680742877041254082341196716314646231281991997693721286325177295834056570308541200965900819475396912692759479496504134635720649246158058434650641059575787766724810421214623922701743487472210553553940022734861377928119405841436475712687343324955054693050283405182028402306237904952257699628345258294613076541892410730230940528836872651025880945447236599792521415557812913117490557340220264820530081442847571413812080278490705350221194394998600343669783680916522661865487446665212304584363936418786121618785169005117525765736349913724687573210146420837052059462584612738985590949419773554984481308639963022743140473403451427545871294328838050570422177634926259634241584700326984661500724246526809438420780592850120264959059356445341569162166635355770883194426086025024535979733281274778221843913066152302511330659762782931704937493115754997401285685627661373036400833231456476519157997128590205158286867281877051467297523303509944519652458775727085937006469977010128135236266411478754811509650759358031676387809613917825336170012873728836870020007000979643569405323022233537086233726246191990086092099718463763498746612933341795380829094256352740069870426531447218830415595035728093533109603207407084404887056882868769387883633557568276662533469600841336258076495650339410358809441661493775605118667214904605876307668442429269335137124711786955908040464536951309975787269330711537105488132790683000184082512761583974182907932340047710196967603810075755287520452520313594390775140184259073927869950656804216079132518165563707212606484682164377437063357827921061077549429223939181854706864476281151980133291700734951130616713700702802376490009199637311612384506574931750252009539957096360759150414173141757593049024534613894951124273325230872114559441289266327807298185186706362013747040516477337263173580605450554526435809248989453910233243700671535347221800921601202645539419428151079101126078249514669990546697493488245619029065282173602616898498553497768150821884264598944213136094158147772849464689330702844227665922007179878087261239806709908951513692263533017490624771540156469822923378957958002011830046484153828296327169773018901002482831525965435755639781265494753456824117535536913164715154040830500507405509866865745736756846809589603423220875726898002338648588279293221318089135800609603720573276128403338247362063903181218537499718980893274014158463149884582459234425329662271002953642944224338832033533798006149961729646817746129377053844696261000310264444474766110201377674854354037332549180775156734887015737139545216525325071831062850622612111390444222897865077059001944495010434639490615411272202635398728739911429181385084794775452830478888545313433448675050526631917303633949986372380142324243565846713773001718656055457114372509648458667581363537004346939706434059848026173047154132349628933655084242842140643569038806944655267041542030586564673381687299355742070280818627612623426012593189113417982449388567743357509694423504006643424979399657429471714843398704702556788078749556301381277773779981394907956609020293574457693988509518745040397623472580586167975418840507138495684919009337426626122714826356125424992025590411576775582105414621206031921858837889556653756014809592756208327431398804457232150422845805407317953262824419405367973813016953850359457169333981050613106032036682242390824939816389684348251594065423474672889233686308148323504417010973651613138012931753224083573498550165570810411006453728964120794981837774609224072647467636083990785398323981569501664406376640269473681775923084703120352577921330815643841519379845405789955712045712978634772292060816281905644358758423569893712682887902136115060115604749626958537084996735114321203382283986031786345335877100667884026904101066399074455295157992737228817107477260280502758800140512318884613407294579728126316496103658123796706538039732897514570728040882937374348049686768451853834654420924157056647027274930913209972270936715999711042462218658723836678494163265287709272085850517061219027257366507619234054058154723409985523592390946179524276151354304739046709536685348563417609522043797047771153554347036803273638403826891341908240851331607995039597009764335558990763551100169710240070292452519175017671095012448509992384131736241947548044317047216297343103424525775069631754821539009121815888900833404999426005338863600849015281323016962474410466341005845463212213695378424020422284861911448267875476821096500574030033359248966311494152564933225377701038054035304019221115924160898609071923706772323375944491589022015244763361822635564805851121247228163681605313190108694370533944469462634391576437090764378956643779096188465776921407176249256654599532251304412086127734326563444670487622058436824050034214845375451933010295309622666501873029306263872775734536349944666030476174536484610178127635447410517835165463479449199763691705593554189547925166995510922432891105703547883449864541126754203505407967469669318498725995308411418823848360555572568824668792861421522356441916531667962305416617615065349068686119338551640730699781981182317211705486702413941683197642980943439946430242352399325735390762801610160610311322341948220520776169819931265568711976017011139083353255796155276862728811689332063171845063148971596712455021150932067181742880853182371010758431445463765174694856268948227785623515797338184590881016862465761632403009589543579698840723509640594125617354246146541351994970723985156699929692436037876498556825869312061383274714078213644384012975293116223368192256740353330461469724140681555508769470240971790631433976236522165431123795994406366083043034628603971397019594227164223639729279968205724223795303869645345152085417222509024088438235792506583427915475059923340157702507019733476553758175457528160221401447001597402494018866821959328064257191392105495262069346250117146399724074848476811004710410109215411847385892303248956363395911655147932115996005644894865544543728888682476834895345865754145461110963842235666697138567325553715472673449631863256994290374151843020789145644975275656599318164543485030825493376785199475670089041045854093048311591193485986923447821993849737009030273345550106690550849805279837001536033631692070449046782373181030652304497604282882828550850648780755239496776570054076283288472430823771122587544404277929167136448748861234265176663173333649530729474885884832396907220932134736818928803431247155721026557214921997337491271953821795367439963579719262336637647193611293316567437287084462024055225950158714836399779872897217108750685404240676839360203025235844687124243759935459965685945566044175379518461333304714318347580835156090418119271775264357793317312867129451248448903770876201747424704046600791472219437485374205709616792105877351338737561042715118203371071284638264156974534082413173647215818785504506964477922952835852518237212106371970732167024290790140780032585588973629250808298996333197817217956340231921081160108910619784979673734422835830879668679297502760151477944230932631457220799156729528260280412926726756707738731108652979682976846008827237430820355129646387026455768719193646121192828099726212712637238433036700276150788595842934972911431319345342706303464113383837800386430471799301860487011334127580063686972017114412669507816252096825267727157945579750429554069322219790727300926398987615508247981963043728562347576218588676607352476344285778262301100219593390096887617150648836200794818696450539618282531363114730085979183321865122633411745607922981555000673633790972574803616653552430864701364505167824176534100143130455572062850887769601690362311844681807517628966816018163374404836844436019482794425201065210951119704997641390267851421871797139525658123374786330350651154092706977200840452055923977986015084840769174514314459138842264291745238889246453179500237982304103669402662521014063939871342025394279914590035089396096451374793860110342811027812657688213161534188113373524807294273304468094615664257582867016859250548916465863791178486609436733476418313234934114521538209210976265445270366040339090359181123426490408483967141334576187515717955988792574347779425691871404109153787504259884132356284626339323982418298609243158938631143685045821803525075715788343865498885355771780923698940264374739555326714045133969290201217274254950972665150562814314998212789868152802449232072785160260429953962062848624324928767062660448342791753992892755697638981536376045348727761017877452979959150347052547773371031802273600182908625589248259410854296510254129693254939451849590104201079886089884095547750262021724792602153574123287075057419852969325739270472728682188103433254310620481995887295793143368782862020494577603530196360669896766842854652745355089465804894730521005944002053511090469189079647610864129676607881063422809010329509510802831341151147997766900148471308579845383261400392466962236612618700055986693907926674157315524698250459595584386305203596468921943520827972602375635819433796657744208117283687479053467622596738561952815575028151277734839335264678624827393794521778137042089770922915606893779057677408395451744276898437087750257584733947035817735462671352605428506969264574155588131907056281585644551610993401381746370931357624167240654958497651428618429987228796238604941512757091688468577977847850931280090179980309683088062618645089228849066204218900848951051438768324911576870291007417180826572651782024024428128436497869902438124305783272414222153793240242429226348081433384940808321432777916999158061559568856931982134625319178272532166808831530500176857902637074695683837449501170831858434174553938986680200405584022574771075168501363248707953940864500267387153442966606726519442635148823444112765535753517093322406829583221766168413941180830269519539016530349930127892220728342771358150984008641208951355169102726950515449000095451061998131904393851044303850128422564840321203748135887062906361637730491131365550791004648023497317678430101205270947206123201742894806188689676053614150522044880911606260342050792145489570082444423791735379315942689522054400518345515162189142205902456527130449500964340195541644376916906751867429478372287608012668361377376808506442670056720751384164378613971754637521352262690745798096984634208080732697071919969492717269255288966402557274553302286049661301434101398471287034014785922238100689008421780985173489578523360738808947120632833351398266618666997145798167360799199496070304690475543779386179759786162369692136508636113171128546305406647966469825212439817979131152067543257063762443939582332605014980432532081746389051423762152223967498108352227697717847892952312417057899196615449965385523804905816770470994561003830833820810142441170901188766541630603967904993340018751265789281239110247896526651365215904962844076288679787021528771581964837205824213329750114977727661925342536084012300253439872090908082550704458287218323004955242632722111015744367418338932204369191787356648455247726727454048644507836566744886943802989051568538487237975963665806321865513117436482416198394448621174961104425264315125807572783980182622045728505409245438750402711494028341333564700848507489205491475173177446055229359186550853220155539162940686643432420396481673838785286753644695791342878175394563202970423535433604247519023305107243970130503713315723623963573515823130869166706843827434989037722543298164013831872060018084158597427864012578992560650118683410815962693511368900457790335832174354567049178967381189438588194975490716479200741438899004099273809664938016303031351518113847707267693161485768033347700524994978932426074201278527349076764326239223010592998047589693322687166756415541166827267106014208981037334646688249649737739255573242457386317168799989366921253415011375700443693337589814477811974296137272853060961163375347482481746466345557921463491947550738464963009454808647818113202928157351847015491402165802429870703594278363598921558200754993951750067667860456786407593084064917874777468372115908063286170555103723963205973323281911963589725594613591143974816219671441361368434249305685716646659299526133831416896015768883386383382699532377965515482218769643446129064786185733557615733142397107224393744538510948275613423179936349388836087303363838603166786095536403846557980026924619140117645813902192318033304759194895534096436299786517886486562872541104541603039069814397558547482186802529527293203023536551748294391976922192430976876721237522232931193397591932313875434979656011387043124738515992780443461780713348213898654322529487724365414116738413500789119498024184000980743223030369382864786084860171035466673698312113448407244257371962046335462715303919224887725134008236799874893158205078941325876539476113426279202951994521933640499892279627905122193606153285825504273474039932888098823267902675775619185597286977351521761878438092859510908804762354358261539075533449152321768104578264752096345910311563301853280206598377206648638564027710300118584467110780275937040576612475967012752744236959688963905848269733061967438637519393765440853261683426382909185367341318972363677050583289587990856357572223851489295763732218679323106732648108328920872072878294035237038916932048455021753967236367768944041277616125127876511195725648587440408292452980671741740674704698862147496552145824884202638721421848176603904187601972169715308233982220819711834394793073021499978999415853004105561269316070250379791383999772177209089119985288603320482347327240425424094037319283486792121384500045225478891018889574845801995927276363192704342341105522572952475681168739517970596399595573375431161151121420339965312824329618227626682765871923880118976024811625726817930036938381134236410479301901779253501015561758784606543651062722624589795264642763957984697823268432738313962995028371990404032089702272638381553021635346894690423504141808074405973226842527331162907273247606887075282306539841809175318296934142572176031602779696288405613888866742905738170728249506293017949298550055986538656446840677663511645140787684239023112032315353294581367291047222637317245178347230754239306833990936782681846576518947158201034748925420183169941319787184782412077131557930068721728858224740799457835289178424674684591723641269842143329400337357791817758067037431644926045798161487098749464914107148317222982819232432002045535436515723948710731601757279389614516452212082265339730735275738693691101115991659515812421301940083304817168615876807321973060407009451264680913815784043068801800121410698885637037009065772439823494675625096523086342567201367578880325394240110929320797476481712173878885201717360664099850671515103123313265695215845212967490410400112946263664156807147034055146515248513531446317574573241183038131940870539768837846611209918900627309488635337424147451694269901365741344658092121349434125156272151486799002757350424575896210856734510451091799212573369344642036909200830395110798235071207797603057510974042649026117072154932210530949094769804356762440898792022354765649580104997279496480210759360365681283624630722229839778530766386004612837194071058318647083360060255945980012512155702629710132625921866674191442528358746627923512970780879044398621600092164030828809188591569236034456179965915535836142567556503038028345132075608221825864950493418785080653584755325382349919950296175519136373860323069346550351013170817822715227549303842765358703095424204292935347218040441370044694175806197435723928547811398983156661799402354447559502145524175459357928264716875843469164526404239766324388310177754666733081679761371326091826640080704514840526040083644270385007367266162743110876508478336860836943867035620537518858021954354074751166715160056068153885603335709099344623556000306713136906200090613312989536582738022976036532328560912394151553785122783667030027714483131841313600965730733909524368840586626295376831388687530714158571953731756762786210653626989219464178715545934058118823509094733227959237523056882324443569010052075882249784048003456999196371321862465296394760033796457058571864947246205591863928933472910448269014314217766417649624754415525868468965795743248218848949979527214991648778956157661592032301648007559080811376659138571685814775538241643654969681448338000447899906365336468346976143639464559507323957153322612688673124735829782210838618441073880407642603294707168375056659257181391963396051838875661826093156768697723593886299736181044261089579648453045613940638576492482802040116792563212641997915714079129662666897854159915618526653494366593078124957402962863503074202188626004828208235229195683163401249705439448032995432082805127980114585917668123552708919379327452370362632916184265331988749515994874362343064592955395697756709241477047422523723959668687735908250107353453185255004871203871630243926346947722129659705495068993785617857848239232956808638535371711193258728443004877352273153183030831407918710935604276062541575294609935379826229856969765718326246296510004027538793619824042781232588958884030794657219052964813405695903962536866191562942767691218469023512302311556274792582484398611628965282893054278571348251507374319463267633778520103713938058528116383297537228688486598614707403546650124438620606575245452096775153258600535226365811803211715548987244548171374644488869169492967190517760591421320168345990213889492863621504021628711796497081827154115464859171473025971978969928720271326094315235538212117511303302594225996561134730677628694871232946310472526505043882510109348488117831576527902820740449167143081844624054125821427947720568071040009243787102540883455163910119990026699095663194842919247900537272946793806752010862804872623251884417342398836045971546335345341969915330590334021766389500688407699426115753924957020213246812935477686586100986041592873404296688901408346695347885511791548132429856354258918666317797574926419188057451604810677255566707825990211126077800015181527031808839743609876855420435950306055862160008129268354814830785835233909792332380984689859877978570697592337430234256631280718943033412593103346870057082478053089858475068733341394801841796836835168343650965827677511295171546141902836762843743271162376116488858621827017267087992672082099314254724144922729739504402890133112018315999844360222402647559863865649781177155407263791672544321244818930227760955584123525667162409938621545862679008702759057514441965527169303587325344965309615877329798408418998338701558828253489987582067035487825392240908239561115469937385509087315834526867941196205254571344921169198109395542087307203491674335580022175982890558020345599270727005186962113040330412056959632958493820996066125411791848784587534210888940448688598936150067607549891727144091125602158965206607766196471982282284178415169116987011068244073900999420618127617557594509553547325752970785731974262810296230866998700714130488715332986064956679297848791098736161465471333205537841726508748859164914552047372930233767058112122828106239104364671392762099024036322249518309527035924439242143724918273739438005098682261450500298892701162543755008817383256745679223675139061606912629944322937625795193879297408117496293715466250843666015947594307337968754249377449939886042312879703741447892893705914256031966894102521610481300982521479872536598713078347402589534338560622354943798547633344132604843362483510773219742543206672855554387756268569608568750327554449323999252041223303779016106574303339738593773232404932334730596050049641150466672618904251492663288727743877034106301919251182626893406376232931985005020952975559034787632765988083496386175400280300082392388462383462882194747467726151187578216537800632329594703249229345800569940453128580594838755018651613482502650164851482216415286091907308609621030834404783971946685813873770709572404400857117395245632270234428343963145189765163549155681451410760746520133610806093206017519429707843651429213418811918880300759823687448468848973830177683324619005855432987393151885409338810635048338114308621030376377787861579087524918553451103880038844624619973325195256617770495767578574705546872723642726069522732520548022620392145589386408681779720095026646547383776133117450834016693895841191207990054614467572860762151881274789672570338251427507930383569711107840576039512733512194484758336861050317240692595997484381694354670898555165247872766100170401624636031607665862143370166697216065014737930705552676360690915772914869688525467660795265692017094965859617896066393653253774363611186625199543299035324184111536923248088479521893682029628899928717532486148105633484823343776443084482381172301120675947863427103309347102502196156250150740583392427689635802123894261675534750548724800151091931977446110943791902012923554428690200594642584424703827636983296531574825185725610155100389949870510265581694438561944321498832240017843788105329163075558969836335615101652626402580947408871611455048412760639550333797544531653876922910379552977089985882568543763969443032533185313126637724368979535107269363363524983194164477956891875318912038748595519931267350557423948904825196931535484812926513026816469083358600718426724258392086033196048213933472210890059704254936417920020247996880321726230296152675197565064405772056918106464076413494451749234881897949842856816334740236843529366299291776608639041741540049561991983901580860928148123011285409489810542029041954306999832014830303065985151989198306174958068836084033130143140164758047500226718291436413058606393842493538612185157254755090833627119037000528874439672702356961350628654242668828248915466486041031263672706190264596168248124006964766130171710349321441056134073941077062514661238318189423456886346487193014927097086282585033504865396322206899785381033036634631884082409106862230533504109515389282599008742749486798109179187283908453941788037284362633937446619545015014527414177162654778679947289121980624861586546100506641712027256110890276358105108772395890835096514803114880468341710247123703546892982466746502313371665939286567364420817636018761471134484531318996586292843430137687179827857646203525110702439083886137681513524848290921109420597445377501555614783294838077799848783881737618761631343559467739145250149145874333050146457136240104753467614039628013634259605534426676723555737466681864096256638960464686114857078300040744934836502661526394912136554049956159217534592750656345684042454356964456606538973598118506986758801161157420395584440161579942669865918017086597654106170350287328221802843972571260934628525304180041651794343543058451928644530639094002214639268300982255590995917975477362152997545274729304120204967666871900757822681332563568880499950159773734899236830919699265730453939577579156034769536326592392789856335827537203566903715546977664094981580542583024201649293233906755913652699867338523978857564092886656346712571396780441981993126964453517318108101343342165658676279643113398465937945198222830649659498208027270798084973159625531193004443648764766010718198899358802855196725327841897093546099986154541360912973959136078912330757156549702862428988488893913439027335171396636496347608559014521103588837851299619810163333357755775871645233503816171827845992615428818372251139632886421537891929767033771145430995992739956842851412851937840094651361154287749338160730957890686973223087880497969193876084451614651464005862919477187569374522234499271749447207197585938444144681098364319033758514370528149870744373232716676578154517058385457518351506481706117433626065317964113388328034329628769497956181757039099551670174529796105298095279686164409374158753486363105739074879029010927032030788374373253751589150077954067925018009646740620668481374008791020908921088690865976287349517900749063202312664018047088895640109990684168472839761040630471780083352482589360466473786471094557007121739706252390229778036306912250214353648762238635316224032226940000001199418632674762688080895179066457165133001473081050671659319203745463278956217627505701177728721323486981530768402857346924511059785051922258188375069620372465913561170850347669341942953308610770409463024975177839636626067439452339095424734554942858006829137087661275329259817161140447147228404716795825109310739823491475874838822985776691661788945830568279250000864451647995862548057408670240484390208520547276132433846820235127426020409663435124748849640610964163855770245157740699857372681213633682416735835191931923939240029708747318244479207456624320466033853664901630360229629525855022909920865062793630347645936913668490803109679743585114839336173834083037444327690001620908710669559830055601984674422460491662301557279464334864120673485006251937416398359976903345320592862900180114722541065779191906172183349264315313383035124386156301809053189658299328728526802189508924128366430672489272011502724250120677480822723019794267556260016899941116595760284941284791773192297833142872945601674044653474859603387855108735398524344877322482658729103861318208197477902135605674916454128702886052548378602714929361386454966321196772737803609293143776164214786380194345299069729710466890790483102533551254992446392571291568284353970177766847253113630091996530435470850459685880947977944922882005416261653068665460284426789727803159563470237157137823167563579259919385184715094434749046466932026604631306038172820783559510756327935496205428518700917606510621233468451153027435094320118181460878415062047753021822973705077954560971151470134060753736640219217892068034810666087146317839804933049281377752216552107136688646441281643342926546757797477074350766709417012190212115187771667193532622506959727500565623336823326683330647977369609435150494997670983863669755709033532770597173805867082077544111519798051757033700269904945213179783450436830207167732392737798103414722090712379367356599050186863743178899594278431313877131615953737557711405005419525001923491829833530258297405060679193203236248039078274050423593072823040950017771537581084994430322727376678965554927297749817971171222539622799273536327945215079995933657389457637524866839218216891025417238391252969668116503962675378422040254773610061281458686238899531727856678902968896775548298990139157920499652199892132316409288129848321750088139649317475893103871057549650313785675041451255062826946268119436135504000097405907685047974985576981055834321257575824562841181748492807641992661630515675718074732137802153641948961020819210825937782106756411952881867408617346590059008161475944761415056762913019386665429020352142645678802176825456709506311373284702608498617193122698648478898358316629990135877701847418551218300952038735852355582760969665082760666870747001563442039951707355175545780126046695218380404942276645072149066366488145928937140494471279029013645547622973915840067105775898954559855021631064741734383122463106916543027547723704517837651415265590513657351690902586656847766575871863571173225772413052650105388390412833786663657629887092691211595239892213568036376214770071125619991003568378068043102742740909380105525939671605875261308217379982704071771979697321275225970697474642889317310357543297693407974754215164136104099591521251932522190962595560418807211525737569192849797275939209057878884873752319322712995478902792277755210197100906404482621166559653377631635454635791096856420588846271043800977880205989598684041513253347682258229135319317197636591750275574514955922053149427346484083175537382395919322519536390460763898861435990957442034978033813840360631963333319966932806695643553850944330140002559156107028690781202811259373862865462088958555461657407665928055193909338951296393414013014176384500546618884368566521051337472109896572786896424543954540831454347962506796565618653920828227500297040104197403559408752990764669943911675491139011127679713802126596973226582173036238266924409246039683607851922385353882907774623618552568701134901650595639677602082208034763316242308147154553431330657441299737087847543206949388094800209266185536264417526120508591019798502173610630762487001912498496860000620457443289682694116700752291264249438618691620663836080851397140756575966547392506264342876041150450364564468076479454860813722417046796474781931792318183451046372982773520065653450427256509201941623333725953459201006584752487340244102773548773453013457327701497020046989337765227809566706389779868137803760208387643629733547558787346069362804904298728432392483257055980131034838556104548681863458613991927922615393489838183502824933798379667763539751547960864063553704639804906308586784557264875208055389229197383100621673212184037261741319487160144428585937075327302673292181359787048223724496496765215733155368662419703063457235225933468663460473653494039004058068570310018641036781853513534692273764394051321113993892011106163617253906524014901900383382061776331160181104942732228752375318493058131936808771664803840615948710837091613863075943443463406029904908311972402413299812926236710855127926762895212408858791879175947780922529808891047613274813149856414530069415430910953935379628311842753758544831531103252938916181084596872235098979141665110273606027654464325466906200403801030778015160645433605277148217353596325347527559843992295225403736907839719193005580971476945388654277893261703100558377324886484771810635488646401918686092452128118310604008003613587412852512196758945639615975342696783240846465334188193019356754610788239502253357446942620651644829877537725700865010920419010538162967975509201812885826354762217169367911626586336856740049764601254469050090482616970931958266289079871803440425864143971848406389641861552448004255028549902450774947897687013125409119536123362033460368547036202904777982857004842438067975896096566636939256066643478783181715045028135751691906190190512784820161803647583165310769567036871318419993291455583505911863778245433900678580579901998078706590206315321423572361719124805780676959669885055442836803086115751702655026845048400297291463809360664326586601600076009479838614923493871627267381686582804270145396176975665574594774369486532713195909274192255233570993552072823700534061079691396279266627044531675746496905232333733244740621909492147501190082691920550581975805832781213795395295782673456637440035930741927532807832433859207398996546329074080793478499610961066298917342340515551602835002157129324922234582766929729110312591796901635855838754976204156082105149741667863227858580866920860688124517860985647439466520518796479528444815989772731900727997522851035491066187686841562262570143568078363128120658090133320264197160892876265728755932162208527212002634531497252853021991191725522183366407276796628137696312079299239342777537686814882685266713160626460586453909408342444117653784883284763487060404387463287932038559134902750077682757881185560651309352720341511415952373589085429903697149399256957953955724433941631138672274004664139083837185224094965559567701667099812651898170888973619204066102600042107525687849915742533955003307973741734695376261983285602150898137102222271649840592936216698926048641053893559742271813204391163328175758358978512872130381589063452848657733467488156760163672570042203563978764911307263636690896255711324565796415955145420931184114326238297181584323870631466462981676680862950267976023731362276395231168665990259897765706082044357777781971055336351785542218785260451192561265293008437036309785607722205072897808925684114145666736269072411445031753696566792226007262148302071942530369023950203267797530635158405638987246297797713238465784592817259628431600959682712995253179426661426722943711167358882436954852047792197970652127118610538357333477521499118039470017620437665559836363491467061307093392471176189647495849160104582387683509020089651336167432241905167264411530603605466721259504994476769442868751448699495885225049067688566221966887669601251310700440542297501845988432990996055269027461521641015546976536920135803354066922579912613148216204881552668867396394549928086771140235880123642537874649403319429435566998172591615437344251672088615053664798600505945111675590203111530384601345811238943718676012894710595354959433864336012111254761153916226606684004250770688071672479204474853275091124767401184489571483226233786351467926791486032787686548576143539281524501010543969106717965664772645477039638281480718940814980460143710258093118879262072660653730755246327842875816809135685046193411252956804795701919275699499844962490570217523290493110633073641941607571207753307012529199025816153413400667408457539176941271599251617702025095997434968303452061639091285726192857838702819566489350605627500888234839453807149064980215835707832084202725563266970567363891023641092526429378903837660596465751917375018324942577914241193896960760115502204637776439618301588389003173597717953072016147215930000822792392673515050979085235876497437278673766165228160599450368828330580285158637946873916342751041452192466506271587394980091228429264273112201659757706168355953602801809463339865826456333409572451679760623386403920795477280594932381430491383043495481942028146365067131521111106473556198619516081323426391052338045138369566121720222088144203606290539653898060630644763318664033688466646190685182507026071272779709217163751987175974192296385736796423839764275259707839269158301511599697276566475711981328167131420217934036612230290898588608193278930147109151683386433002690767952520400997043923505858193984211167599082131640663303369187254891993501989698448801306680915566281269630913304063123992354777968492187666579766379867915400075441295055477686146983649588237238033868819549597407388380843940806345068694838337021439800136040780313335258533854271675392552104722432980454639879102596869758565313792655459675830150799400485714482557973839369468730307410039698298522123537214815064231307094612649666196112714809820856760812332851134791802437986511575784943022890174546166411564268036505082053641987068182817207027011645800739347345449719028436606191439515609773333910890168956366414806020152561934508861852775504462373376327414403055979413573352102861813794539936858144220994476244440042843339294600546107486873324703091571449330431676971922941314981575054389318924138192325035014859336784768020397497658099289807441954107554439581512562867485262857195340423181173079072126323961901823661213691093130224957041851476105500301236181737562400333082062107966390977293137676991092177234858337679196347380501725325891719920129896469613954236690756886477997887992394368633986597917082932580652746004459229071273442949102937720835775071227798480402696900524706417227324873414603442037995683516950948824503370517609960552696038129223139280413068937636461856929056275781891994692312191692399739941674698541029851811937827762114380374979686668264909409379274148734788980564794848123120068882223546347316853326296352013477552589107602800195260455349359666046497619163262266613135402319071966281331079135299741815074080673663713535040280667917812005794507856097722758966704631529797025461543854764659302580504568637392656156016447567884054835556516766750332151120363855522122005113067622607654695268469661164668595186620496366054562851316612507318597613365106299804812547196543459719830204596446992440249874845607358755167411485535240168364342060308540901708977974427001278706496456040872551686358506081379451089115448732524206836475645079635799319170546847430015295569049303442742475040512289849510903427115512008356480685149736767512968754020114875905279277332890816577939602227724209806872598326684497773375717649594010988955309648962669133367022181466262719829420759348036668335391061999809137240599854620243403259517964350827612230644250535907939538953207846366923205512342898269888388665960184032631215729825835247807812678996820049312836864112015987764903145061183370930563595011931625674982752722634668060905706723682617326040269722524172865696341551734072820663431015462067433226903167876059534475687031985138409190418793362802558461143871222391631498982109631632133881265419753025460999208372405356359942961994138215342583390256838393149689224098527034555903119943602348083162130327822595873128338399318009831175245934674838829588839700904283572572934936484076653559023222556597473342411624746311611784820928303292716774214089424125518963006370567324004586375048983874724980162400690499723630826149724706658093182071460366489132367631869535329822996000996807504837628559028406413828197292199918643974755348769402524615473892067721863396710795243175044013135065792580312329710595877313412895479934598711765555909712115593559921345526189149612337320961511716841765044144677409868215036980795023528750963820967011796529321719629406485170814809530161959991104489319862061740390077578209084022111246062105375668194478368628629693747029004500385531473319047761327498154369936537774456337872829732915385076445760374062070479653739241168167548796322049191601481591599333524487511484993361800942006801880379374746542790122169053961631395632650327173283436260916277714972657285169341045438460762771394913097815983655702267541237015766146524783128834502831371329673757539010617674847851565149279669089464377027503459775419820810115180264225557672003688521177503607515860441857852415422971319929542468609486197742609180284822875476918192675419294180688805081120387826451810633265698104319620835266304921354025851653025927530898053070136860058031769839173473232619062731065834248370621663447448871887280538639870955002256768142846010942696080906005451344738598002836271501101568733695632394779988319234023659977454009822771809282285814106016062993810632754794848076868036094834941501900989123206204346159613891337191368312653106213611222818106835290800372667631913140617430599353473486239984194728394611701201258079507440590035097123627054878967355123431197444804506611246402821558689750621800071749656993935169986691962399880645016261498432426128968805923369727636859560950583010733152866554196658242197636406545218755795685755223134988043095620734711031319741071826031267568616224905692702487227786501210584063813889086390852799598880667379583318561207352049425831865443481209003036433420495229781324809813094057297974805739744102286873097552013693927445175612613307380592962222160802281490533502967742959401747949436608674440100456599173970036234083876753826728884067148282484048651355976212555383992408579236544033205244881855824735678420147069531095833407430548283997068342395662286206600894449457931540763576546622968187988608306178680875824535740001259771181144102596426005844758118519371907834641087371588458528403210613002751249432042568582448304562024505190622964818560989465021230299800092741377470529321760356331959220059363820546828902390514784601324611322121579546904674881643747530068745818751079409677181744992215906645486949926699942455862723085065563753611219900889511220366240659479436264142045096337640091989402023457770125546726597895819028855235006730430477391209218282087330501637597378274765129748472506612658863946387435306295430657866955444211939388427304362836971590708429618112405405589040977533210824024287142551188869935507138639239262902444738183063952801819449180032434016298103742248721673618615534626293219681451563217212056671557884627068493573419709158555271354281211564894245674470175732108037232685009747431028355022285560045104043680835987152627648637326819712421879518898066010745741762013253214710105929957939419615914407853847626262411177060633459033348753871401562130240694746302647923237009476931863345539803274322504533834649787786482461646238363202781870254137261658403246436869607649349782382762322381499094990638946292798786360978543278553766899898629105586554278933130338762214431727965080375231476107467362398761991396237783630629104445298681947343410524356931192847995290596878399099567119022288199077999658502723201326677636921812406517759923245261371636310537988138471862210863199096207841899317845736605801016297957789068624461725821458895284919698881577197886366281292579271770182375665104560076474862368333992821634525876641943447475766086337805937576090315852272338833686720095712741940339496988803140863074759921460167753472377852822644327957092174371440156898635308431679353095488794466248660810128530895136366597086713196504556035612866035425056544729456374306066997769693144931932975785136675630896970072783805036850627284065069931332705476940581666737698410782578091369807005512496640562908677821082276790372470262830645570695821179094643760110551768315866862118548302718144910349802752530266533484748693664311648971968465204334959322242801439133929250199798412495390955394969688395395273188479250355252243954189137631063609317468265558513165459104459437426977921560352569212377166570164893668978549499809213010623371256237590586728744184774864788388808301968853709801723513427839551754150376646363614121622362112369765538038492501112218223452801191252663536316793942434385020894782107586643295835909929533962827075374114533167497526680157374061110791239230329546304605178662967924305680137971027059483759766155829615659156626405177897322203448829137326208138413587951893723404726669225469722635406911285815087718492027516402530433102992813141945586160057730661208412243510361040755980965674823659010666172557601111713092673151062579591363529494329530415847587575198817800645742516780782851526690475911394683730137852550007357587219671831618147217448936629677840940838737121921997918629475904346516253917664981973164032275856029606238100452982181467471955554301272914099682532343760180908658130754930626643053903670523504102244418537913645672198803064005889991741673416260870851825727493958690945028258475441272753366918744240571008626996810791821503213040894807921170599325894765446176558829526690547144174071263724275772498564426419935787568750429122141963412602705264517382388496834366016233995468937465764464454399530123823301349979921698181086208633546674090363175022469354925924163225615116755453910885104705094710730862438854858320768535146843690775928971038800928538773369086979532985178147685136697912343198415935407199580692055865294941311717588631445002702423850102408167272279170870055879401283740061367996545000067246044918041227041563504715601698568524569312352854862759491835494324332140366532216929794523871212530871111564950464499560794671442324982392387238482996314367579587458306619454436980031799308917716017675481809169219707878015775450400406382654388461262662375303507098266232609934161542812329413108882831404303680710390000314875423179757957136291852518166665273455258120957611295574599526437375774479696594335344946600551067183472678412612260813501450140025330421310292005589777580573834350232952259363681587942941616438693295317815128763392559352840819470054987393493261266591247950060940469038915429754288526809854044389095861306879454266698509668965182528756001712898225331985274597978599571207791086328990165291621401934577180779254277786455740390381740420514043804466170237412178149732574186392307167875276817663894163905987346893869483663539545985803614472831685861644491323800628158070691005046022663200309160884544245871701427477346557754452520299411588377212742805685932073402680007852963575262656704408046268422166363020050552390195366582646385948272985734746785472275386533475986649128108627097369918222211036494389636696473047776463609158948114028945922195360596933973891444190038836699054352500955202822180370847543573965299831725780688680628717111993597266580636113493058804217612388729574007610638200099391311439522397759580046539821437812044208563070028116209963484356142151099984665431440064242408877405835730237011842457639426706680233658122994896070734385954183520093907424050048831549205408053638789530024767221091253125350039363499700923175668805428119752411455583620398009167141426210083793338959513949641058579632188269957318215393721881579099195847295398306421898792507702418975005850974932541398243336733714853738777676558363566770158696383725315415252880416750347899112816428977960748351170852133925985157906515626165269493494133124490522777755530888403590856880726006830248995862995538409893443579134223006054240437655163875304063666591002607456967194277902459162687427636007831487162212884561683847835393909808363803968828451982965333821822813334624366484982519743209693597413175041590852980492404129160727116355812613125903121384934923589882593411658114797509752454621002610486615476218345106011928654501713029490783228945540618758101077255867180037366052083595535126136314246316393098083010253270154475899048915428501682925116651478386492718679835766610344540207149990449803571759268660142216361777895813220298266491497578327929788294487150921824898182219457491103891118194916116014886782231756301125609399918371476587763027235500282852560077459517426220424910118375131040233283874172650716576271096424223965590552408037533372887557373023593433374025916251326129604584868897753909542929777092204598317205104355307710129552813627554437040342902167017637234018594586726320726757631704553647872158951259464479882947308981491687690521251060928847489912120348405759128945806534824514161586200442259438010104491542853323208869579514678526767788080593187642883676836674224336859776380413044123517334741721990185255879346797036461936689055065634361249932602427807567278792434095864312257010056742567067410072743385558042842969177013606384289243323640716640254315811103726316741585220848688457981346695898178069922361199002150686741092661408297718409957231608954995024737904424098217062818297771072659129124672079509025755711530302578504034000373500082770057985697370373924264374982620696214208912894921919462505958805350144865842007103156136479808478024228304643512137822427428141771442368102439853492848595306897243341076790949326528457363805226341902122114265246167179554999866556828481988815623930289971963002792321108193217567987215187800046510533821395545454397669875252061955570835319108721359803729590994729006675682694463054022912234190864770294430370744749524362333039090555059888652577855394903542690492446662978372172729953907170380742851873413513477069262327179302008750465303085808158307756241507300278740380123413255937166008436815635907757344969134676905032184549200396984842823294812208229321986018148450999854409649375914346903327957961071809229877928407654069144520550730947710633760036538221296733751105134779630746936965043692585957210077655856869883723109278717786793024395084157974437716884343825153501562473718583560877627065540412303123138926299990161308367909076743452998177876876741015169612081005001195100192276443259262113669099881408737836977106724058301108628516193859704205912742296339922874240526601790767484402248017328176282878236494588686867122562400600626354960759417020147478837265655259705117402784311874930855268871012479126427419042644974698507121558619723265900454840513942461591956899895288481345246673782285887420210957118887077890638239285281280166558147851700843151221423019231691699815361778044495224478275123163345387640799141507138526545715412080740877315648308954804062500047066590222735519449900085427062279023426844444107696845662165868790800658443185486287227208819037588950472566167118939209330646068980356965085589942109822569384441248172034732026233366682310772527781019549329552404062631845063435321285684549282957293384136285755252139082639831030491147010622565623180104065877078017045574422614661488976739391634042122086742351962295092641067719247973897615225522847620505518172997935322236850270210633519807437940222851930365507488123371124470848973031558252636165770282594934607584078022177354719647478200222945911956288005501702304791954153444520937200578890869784847330578879093061256293964094425418213222534575918539523670089425561368466481293070536870623035077196782415726277157944250032000067884785562751680625314389323438214484089943739071119588009545730102698590311627116057060531950789661910653924549720658065312007639630379159126348796420006630572296071706498750371492523552896338907617307321897899731040540347185195036884730835440426263302850829985929361828166634483679492075176143840025690245300326451663134571132379695259678057705914841781473250825130143147829908751003591279149270569079382733233492373463346680557191880541044390571984657074407826701699091247618094912590045166950285874745028204331739105018118901548188440184444488678831512900168003622793678659703564838059089614360713216750873620962776595752147411594916273216211999767891373317066671673267586616234252300708499297695499676828813514675559984850945833710389125716698930316696465998380157759221787835013242310017097040780834261420267426680159740310262099027934554210453048408185972166647433135545832527343519043789515139110312122731081695077365951358889326948357111656646853810020557731225510872572131472593687935872148558853908016647760923298138263087177898680183332245190898346676061506126990559073310707933217295645323523561604459064412619393548904867306469937196087513698743142393123910887528091227150806132040710652744479648139532016354553532130907326585981276398971920477229157242290173620195057565950633544733531592745660555678677086747051534119212935351305552540592701226334901343083111667534343948587974741495797756218738556970072019302877321993237990140345152459274296390182953450646506399509440166734060448212609334932713423108236617998822265890053043934262766490714717702740441629912305910360134198243704279043659148314075643544174663382356086242666915788025794525740516572852036491206486548229297682868680395705275607777083133569426134955121874875727190646604237906717627607780053367582814272229349404453209748086225043009267157457781571739170288518593750050215249510840810172851374296554796905629868577777316082303320644612435739340557887639536662301921075629496704346285114701418115336879160187824691079279083101642067311436915686318015529314810773195915488072574396505767172585101770448506111929200124563106074525088685914833128925420755871377156120400967847237003661249284413756577577464594110403377508092068524144116219215716935181379060214483067918969426588169355360161501450716570262099646835086223628267979536902493373487316028592820199148382980453873615694789599342059658293747218755055166925637985101387903222417561717742396444139915515122265740930615384822837155172188099485468966258330415340188388063119952629733335815146007263190165379031039836220440370760077753264575632678475773626921070715641417333990352054342296022759897847683339594454797167075445355154463724044429070641050260043111499100562876386224786662769495992510180221675366581450239046868307421830574879911985646493736750756147469696336693262971941159988409310258191344557034864223529960865357287308297404594250744272870468907694387028751954527989779580044994537753744741365577492696923605299080729528223550429876729681150370981233160361686767056487848639418106548819980276833371388192592121737845461661957501129980346106297133260262589332861004773014334961888731536236966180368180842539755622267781511496469977683247908214387643243578903353613217464037711785752531737061036555802437536095879362456467017437373842335264028469239543551668145765455603596526368749314701979142762344073074850555871808737781801799004754174554608256422025615711576970088521351543594612289168090345409031675394905580317888530971978880057677305620857022854430376275064824909092485899047070128407250691102074413909790337427644375739443698982799439475406875695903662694219902963860362340929893351695132903102305299154117933308700009090195952902124648577636327927834322630339749172698041283744839764531660437661395109163352523891514506115155335908065696962212935195755090757933387383852727410504324079380796763906226630075418965738721943419018372721098555058033976921045174365223254871182051679904580972020457449357251927643861692558986703569706609373701915060585076404314156698651330723718452218162037249312386745317206912914531969936894173466422090897402449037072745246590693475261125989799363675231758964090278196822052328879563310766552565010120766762908333228496169998830647247764532549740644174000811366815146776717819640255161240739988937405063551460451877311636194146384711458701362095290857754568066816445441525845738651445363495976230804339931035054739098539441166106072066386912028025281294737405777234729614123475699401560257156430484046618570790820121142360222446035125061458307382772303707782763575722209190271199657501874749551737933196684044109580919956071725728529746135779811999820463097106496946312533178536100021638109274206141483192547460667927612339816919946864208305201353715622149822196613842245523213682827725369370109265090828186364608455797663389621119924060235519397815897209235664133295211310317615450429917657709471924026270409917744492330291016705569053743750712022568942934624509721613888647838472650050760249955369570620055056280480814611100291712680681599700154382981441278322177841355876051817174749692833668796389286584427764163776973810236658216091305054703505841115197027689981313737030019691224285123729914574248219269592439629217499685317396942307773660604262164869992224743411568874537703804077473485350944170724300959670322909872956385499134815103726114212309743090100709136238698779183671542628318685728526380825419250725688052202033985370688535211855852264443777732448859286031732020557572433255462484601653329277685304845087558904573782263489035633618925288494753250170417994109614742776181242648860660370762801648206700923281008374872065921927705228443383421788062843970022602138476976016122205793281202823197539459072624477766526135119460450983623342170114286241257643491468795478524801516298520498519331836988163536469322529326046291762871350197480708508009966313468815269281761590871696772593913019243114256147446855258211405936289080878024947331279143756715441118040333806656231848659036263263075883201886656763604798696016507112368613804858150287275397214558258888148665803267888811542241984411235475732877150094467746812840808710914151321515304929353836059904509008088426095439971609946878659579431129250790391122975220040276333283978268868935535743237603167346554321858151949979448279225158110477175493803706134661625494255021055544031377234584283320566061304619650222116387653305092228873005545847259099542892925348229847716304338888564262554798416321963508703894393997333478995963834110477595704964809354438698068821890830311631243802024853002843908715952504766863042871228947764706646494010410217682737983913377950900809668028498730146353387364794659218680410041219960204056857612182279319823868729939367777271143150142484575151038441111952674408658582487416898508735760274122677709755877936978299859799162912886689861828058973203756878754478639153248981446831051231272993037219788403677578809559241398834840282437263867466787285989402256340817593059708925423259186910153348077577606901699889361886725307049004298939529457164812045700608607797630012756502092872186449838429312167555879896937269847916776499264286320063279952890750814153926680618116944967709687641403588184876035635889131916819877504588545736323216629635671454814912120107386286985087434099921583390604150940801406642483706341792944214424487164152610697603645798552219634972834324444700353931380841083410074068757473367713959196884732117779928864236266828953518373074422252528565361255476060833257373343860681392483698328756083089031731142258136301218519418020468091314611753400269118459396389624181849079122716376775663344791449679341411567946935491045122431240311025350481340205329520515643909834420730632709583240834287481229859474018225287296797190361111289877897900992802984237343872425992983936334435172777291648887631022701402858189669823757797825130045062467798220904026434258013183586349132674552524625879507138449002209960963145761032724769242915269035531241046465665879830606986204293977055073460827959941730357453103192082633781070608018501774417241172689097254566801251821014865576447307544876821991105538625188803857854247875838486661662096320782179398688292230142719277488918174856307545403457281842690923753135193760834680236074215801935822595150676239099744550507724260599323490292342835751825481768944771153033977945495902598943700146355696017243905506863291856195388050614578877527466535884882309711968714603086509352115560606464269550561630867427503433496866097507346943878567212432159848941235907069156201574813773276478781181445570574549586558167122342363742019342023593496483358698406054359585372712308950940265757748136756699995585130119037131016229337964100893446631964754344717327465753383068247933047197615436455482769313293594342504270641163807947426320628205540966096323358314572865931983189864940205490510128287622390547883230024670724566789489418199143838949498608206808799562263653152882917883517101836587654385799410404233313124685269449358083334388250612537364557429793801273120114861745822432464356748433758220965350739481427712754846250544808150994790798410907975702793037074840512807587972281371115616390488948415696846509738936046131643998155038471914504258838313727386599553432570497461753171345432443658018057888526986353473373736317866423094776314160114272345797490190002665644276223414754561792006175378802870806465788611654365746985176935525773887358616210076273038161240435685115376804637340639442365681424674040677283585384255531834764916081331211154142601852591266101266541667702126197007017739161623473603966952561418522495814088542282880634437829063793365124419965566087567680997696833309459030664128949941803509154887408463742221797528938877709941891133702971338856563625372646252426912697492012862572533221785347118005352616086201207366855848079967080915288294486165406154722366127378190154607884473725009718870693376642159886244496969172358858007958612469447127064712609902950841206651176420797007272014159410137374831527643221920647010270321257668939558470995105931424499567225730040530969030399648996594427365134293287146079992464401699369161431570523366792715686694340634838445561570915031615013474656298694586078247829378836750818362208330608033230433407520040316469978445302847007771311844502166934372942917347064043504343915524211082610118843273135590922293034898222468486455656542775184581111710433689476681379118251972604756549092252814560671820775106282150432631400626201619517843210581802247041967001695776386743563258835546368330671022281494208291313835356099261984192622194169469989916529303930364234049080794990329926405029443850373167668175962483353930651867773301291471088681381273184468204835922383151763147965028440348507316289410002365923471287491041117638722336984878272156437108220661872069613092866242483242229386193463242217778885647628232747523448565971277425667895431906579400292419636339374917968535786468856411158123751533243598093426191966166772399627396633489404667820161339996674404369796167153561693036442749850911783890765656502919642008437017029012499721959380122117699746397089495763359953564862153210486039486340132590014972063708173238043701672456082785540344641282288753817810744607620129249496628364935263155092910131452648829889094536214728472724766698786038813573302808564523070481023168476566761109560171046112835531823650295619234694055407501256687614253938740365561982129914279277661224351344511511151447843537993780814964722414197111959803827651182629012833169274046709435082904389860824514762309488075675232160296051922712914644372321299704934314164112782604074024338309867166576197037280651678943145576766253806659558085995983009909674535506971067842443839232066853343371933165132191558364565136373405194491359544821379222322640624810138865503921917094139240021044664128216525471132923724076632042343163781570079405059807631072129173417864767760992722493178182116885305547511259792917844956193395552829712211957917776105950536879559044150263237699479950389851964783135484460388597709817685358338840772799072081185278675908364108864762052058980619533772129662096477328638812691031180113345392091193504249852704790558559740131944079714152087122770989290913482545796308049668816029415388546633246179588778885317365101476549562641198171712402756392265901342016557417121364271785980344067550789721839548606135299502384675065633650903104148872836457004864373959117122537314812214018105881917280161551149452177741836429076058785040523825273711869097863717340844142289042413609954927356698085885731668344000614944815340460132407481011289989308805744687261804644213182255155942934991050502281078806930596947802207727769860105749955611114689298864219438653525496662675730895001403478795094850882540817853754863262534345879877793493483187484455820751424036037190270699540840912977079062229746232762613266456516393528150197750345750532158593147992603498754856541979109584029480390998739303118531370388907131252357048373637282852771974175345160907055160106740519251769493835404449080728624223184111118299575706376393085381179582123985602017000520723666246628660477335265052281363390145366606826163757349839012992664882349927967647194525356559510146988421820588371162504718403586208061833599806418125352074329637898096590701969512727200990073072829280037358883732717696178486187519727445862439429402231534725088876198127225136966997031537839587699795953481041383084199131072981926140674498256568538810685683414932005943826183670041867423311093089633445162876457542220321124269968319019500142487679090660369406339005062284803744834078757269695579980966038791366527293287184600294805296520429897160424132738605741767755385896228992438762878687920474862387318910348743688356921697759876912196989308766332283259811386981023620703238539753597617831734527282818346409405363549150373295292885301852028986238834633087930957818749102531795938989826600328338873284326221090973647269815460970505280800189668443674891879427311754164171145459617147162973013350255292502899139750677480469461575462734518014410956360777339146351226744288409538685480765023378685506132327476479095260359557042790617816388710022587808432658146518285248078888192548304538186077406572475280406437771198722173826632835365650980817419266213286627686428861092656439610763911654310328310970197153033759691028892161753615383685839725578282460701091921343371280128559382658443143604386985881310720795972115506779459518876583387732378472827117296033829942644606932079759122280307030603263847296642646388426736849982218401503494696897002494411950468244907177324807039750025357999208865845465839322525086248049549168122525273757322886714188611918656070965905258701799313016332045247972544002816975776825928705268110541855140367077006886665264994165066569242156461183137633137670147441516673356480246973647213469650158179203650469799192072948215977580287112234601947561354720441539871057000456876330901839012906827092399298566558780322807049832011675244171981798991174317026481964077554985847078060140763603854663510164543807433067858427070427545443531180188245302661747259080955751631557049158677150123264487464051220984819119467077291552256405356530640796658667307848452141811541965786534088784893821206284482471244987039929498561937175146390143494417880856092461377201212818798320173194495547509153437071207944067251990522692288728515596373897251599383022194585067825990479515681290900749616566703936333069998473942186623543560025222639749445208801845261333577653220549048220443005136565581382195149374887923749065846581490567684860469333302369741048492532970076489676291136833037582186225737238015267151689493397246766313641003925278536488600478395877080917293790867857277134870066670036865242326708177706753996350796385970740630585330927788092493957030830054036848704423876584970619376586647566174132035025068709312991214600723917829301315606216089972288846122709076206633126380427080563123654099603374556740107731798910800827707147759520399004916073139064299514350221497230784015446571696587153625984078424567607058429666231040563960750317063618573066521875691243655424692709766999671708673578663995530754599126139674485546720719156430338882223331046968134927022948827554204736629079195102949652183627548256849139250847262564940927386076968234009623891981762010547951571372113121808283382414498686488872221599029699828930392305399661519637814306955838277461900205908094971514816450539205247723248251038168454649694249239028885291166112344734662224388217308651084885802511572649900359629350193904084779956835075301274777850678006983183058285885045154674326399246846147857731679946246902106615274572843609317510483618296198153025121709660668336241248603994171895507073448889221420741952572098170440888243252129614378594600299970298692395793116269753832595333213748591716634197350055805040380639817528607277459954950267660931609518336872769817953443292900028227229188027326589019505799220695077115381099437540468158450866001337805663828481987878250620558933008588091310685092596032823809722314960057831987153037431896935021315095127282572466075943362493255068191654762011551343441939008701118510566223780657134411704385548141979854326840814977166857494603305758585772908654584482351828430629743161722308247277657094830142971334303877014119377417788570786997621635890791847945223548594730514517338298672332937213981308909859983775948791421630409470511355207179474450921368990736046546284104593645618824510122664618562758038117708222932003835856458274925727594474910997457505286415647150034147467705529103775547493297492361482883214473915080689880394391479510505202795377705936426223035402089090605164239933747128504933145538595939095006697881965046237321783244464322534482237696497075149300057845555153705583227457212020529423499061368791128960449715152709465551016014802964929414649337739882268099034109431369186899746005825741679816783853692678354402788153342374341454035340525936394204753734021384798781656919933347810347585276173848424955401359169025769844803751200088239636581281384872125190292571092041140156100097636797609976984087126484392453867350866737143958342481250319066460930024080037700645380834511474937987690813558869847123754634541342249723727952651305504344265035416913525777063794098436460815148193017655643790828364480495385803225127519039983537515803743778304676029484670081757708081410485232712386454192075343174925607057660684672468805485615583301089645785310414771415304637888251273065019937019649960264956782776844192340718115526109446413184477777386880525127625429051446019911715429703862783972974659221499093605043579260825905313558374660195595445503424091392208479248506209682586936941211112315558897286308606046056974668568047819641438384549117497586347964999371589196749409767637579189048647462974325415070250074509492999415493274436353117105282688855122145578392201691795410804558934518454159962625806874192958888992854105504551972604627847409519594174473201104842237293605835016141982616722160284989536601372738792362111209705379977987144086317867817152838252759133896404238975027367940926454935484377589791089767038130582838413874145091843597776784242719619153550887495754814439905148511543220930614262480754139662483797672944965530644301349515575693285033410175610955621363230344497713431860130005460758654644663560385840368090230454054312855019724490337375006422677447291635871307751888054215796402806439867839118627179252420387659700295635128517136895815876333075257924999623934239514714790188259813718741637761793604357769316568129294892989404528362374789170282088060602636955869711469448190932018494485537368309851168943053354413557196238738240656082444403527295976207501933946046607301235786552800229028605095382589173523282982640734257068447276700394132756465428314726370962439111312255399404462639951420369238524035762539402379851061255747389564164544539853603804943631046854871926363894125440609985922831630596320936648213828087240652457148887967539673397166936045691951886249255003683754381631947133260112717108711224770521764473739445160543247715274968363392352485429798696071441728546159811030355103450140575942125534705900732571509190196984631724760595694760489212913855387316159476498530629066340619109676290790787669688399255362452267004591607109178596374144889737309433922000468653561715455856659025933782938125787783376364195187505876512882716502005944282517098644772383643769816480522011269660136077223703010830127574387511230116061290002584395087373959396844137293969775017825305190931085865128324996753581899985747593060636019096106910818338391743354203662345015520643974270678633111387930860325395016342290281046814642345350115316007675250730543030744204922051400338396232781309712192578093158674608371927849493424874008281567901492295556498117936561416530220608349970149640810133017031603856263488332592414193635341354420395674962191170914289151271292649388422324151939215931007938907591683802542005464035799202489750372158679251028261093604921195642598762647603988072415017179142653188848616793177632418430761760719869106081148915994583963028179760384034996497733517803875150394474648629568008498134609798324830843215902311057426632206027046733679693631566173538571313709394531147678977150222052216104989273305129410408519630531838452496328395811954785379413719707227956586152886295132563260202383610336066046040380521743007191324380698763272586939831814601495375244276382150565216710963559952552643874250875794300857847044192296938000661119897181249448080054020286294617226215527581486901920255738193787634814770161197223452496279780739072401823737309664480240516459566647544871485868211221429587966224875069865020326060695729086931217152766034125251565846905122075564793171602114643039524247643316313767718610148960479588139895719699330582458127227308607454008917518294078682262238370326493666720507717139476906983166553930594322699183912618649733487710605744147289382830090858855134432492748139421877230851413277352036564420645496477892902467516085205365002082335322871531191770097051006107680776135639238598657505788853519103903113222003283455744461371125178673582457840737391566072499336432831035297988699729614405179898569716966406203007397853038109953802164703966666468070777039417429993023617456719472082619212423221985916721242839514895152097365415715757623033631953651885625126218105767060344239578415348062793035836680088504268516087787298135272759621427648329225453690841044989483377421586581081179770860921320781754720780540858738530054277272947320137169202472823921085925998050352886644606017724919171238755378611680770089019639113089279669068865669848591731101895114952011138317010072481840685922531923225390267813556228491146405510900795738942932573243898814863148190608141118172608312121882534469349414748496148783073796060428505802306699245260549377882214518889495676490362727927371337235290772749960268819165948253381241602682234732645511123071072502287784584328742407569589637963314992120344475297172375313935278293210089448560099278080478516070249275880454992414575201703180452350301038971187154425105170810446452650873694322075684838817780917941499374157600780101552356642642097975136683240860289063846014525177095074597158907080867649128208979397952104950526384984589489205078211499261759122526236431298000498451104153542461102839800181709875225976731638770070393106684746139448588403636513687967793575500147402825711084666777138537972574151971727828045098246950344050853581312161340361431490238407546825392688975892337564299922648722024372627437485058998910743012548224799060460116362730430737757336282979896141300922456975976562180327311042280754767352482146907970455475230402828463368443611837541234178824101006799849827331363979746522513815609703269623439944712617796778660943144305612212612233857475364331604568416340255721074740663681014319978906812851013906806052639302213872068595910055302466791004730891464883457830489621119523904427778304997829856602608607715636042124977795754881282935295375847099744716772334061670110994282702777312774257031522615776942021820257681439759091880621310822655092001745149295792212699445616161591409707598617381394725527643496305475526220229329067087210790358515124119668589987505385046947111635198190094401033239973024198372334798306744492376859178716898532030514337444011138430733008503020289109471918770261582041228513626606091266177724972952708191857228186507462442579226728438218003205625558687831370019170388498961671545242972440331045781779567335518177455103865299423481725089493035777535209830639085741945237099418482875791899358762358045463146371413933512861927830677064791648736464110537880244873263882242679604431255907129669920890577433412709754991600446826935692424134722341587708730967152652222728013462660067007771291519615291421421615566806972899215154871426695037609518964580140584471052757534957542034600424316037581886893538872389231139827579370107782673389523630503855061256909358096117452954357142262991811309609314446745625515183633029178412340783281607236200893734732615531671505244936110709516339390904225680668457033413221712418301079257272066640847940114151379827869776734374704143832239385510101785458189495871767918336231410875178241023382606927133688188630629787982362843086746453553864408000432111480491013126906018303524647870519448160627727488127229126778833332504110628309414983436753403795769465574606291306058216465904669316170831110728140331344126025390782647920619251965181647058379889360545222845784134355491848919226050617717457146714995697916078178387587452216150723401700050971802099431417478206533173471967151845833876335907594742450984756537931760408150002574873249083349721009994529214244354469125836675772581972788587335946174644303611172264260131124637824046019090790836846570564814697855109443836575133648786081435794771704532375389234738861689794015000647460299407374015857048350966417142552789120292054467467905249844883516650522767348120080836322531350028397067911358826419075441890860083283668949190185998787851922053030389263391612839940178096899487712035350487541649076712438715348777144522711948343785559284222284850102083948003750630589092902905607058441376022807688342644258159768533181617607393351199816836084777484054466205735420720050186919704417329824252674676463570421271900310485321779172235153650128551472007202415013495000249484921935477429440272520454324062973254953388439357867151381070484578720355455755855381412394310887172499363927492004811617528343330821668970516712965923565800713955864623753767176395778196324983135693211873467038789052335806861104516226090952613592118896455909960519596708703292391407540316899757340264826218587299873814065578799821928203384327354208332235504220965412689683374849781030909962744738419802179672640012705248492198072083217690321651237342743386458574776904943397387423923998652020805662567984169222828153367114280034675893948491880657236603125654328478413121451724878221548353963436839812388035793390876299899523593738977446760235376333334639603203716706460452071284412993255637086835314333117895222971117868286989585265372457860241619591427471858775010454324275325171467837711561088843227560927198467648951936390408857033021446317674572103308232567881989953688751875270978014815790120040196868056486937634587365288946887380868932144301879688327776674205602187671374714843379131632263836468651548328663982866901207460480405668352658564140761274767389364157806416043447831886857397049350531793219367869901075259645287284650191551550737079749849249970697770512360336227366672679190476114233550771029179449385088780323473241414756892533663519680469612270307810575213485616885763738559788605893110923778252041657094668882727719337957034396968021303209486949731362056997982539424787837235984725208474257366176085799505712124800546915571580639232721472570769546431449103433638688259127516006242928945371659893763187894636893910389606761732188188285138718426679000086279836590359844657868716656774130120845567282299360375734335265445177163215056853922401301786379855630639049333164991001358683679247422930166811165142349766075412516437227741139504200204477653064316888837003839681413698064381669022723070552409682216603396557925510842341926183204672757035162880292045411407884877835408199898847425334117135478654962603514167391599312781205332946476716728403360482538060348889747844080175322648744057669813690521548599777907880832431608390098489363718209704207117119625401167114504734887602079674959206192305573507504714470490427822890447168033095235263296260817338586047031583361095361829960464003382786280667095683390726593468028810012092125905854938990155957416141568980779229478133854262773002138540242481333880762805608815843938014700878632738929327980598083804073391396898299506581377675086021746780934536112915215074887865179527426174386435105826883839750900119080444782542120433306471276713947062225302545221041853201593033992080852541457528576598033413324949328247906458846626512658581352008203912466752365400567224843828419493727584927777479271962920805663779512230698463632639074101494961606422058158110416533368034916252995697256616363421811970469369395762034072684014229468392397727937453461778227409017839710831509129621310466012532166620944706079564633374280338697374104501112484743803276161742363540852287364650674806556751619003162047087518766438371790609711645295638301781854848962781364220791255269415569118505263055085749020358006728732027701375356237249310782435389876017215877057026839051538407536909471372884860247784118584056024125076010916867846095015961525059112049051748524194962948596507340761756780622124176274901114780934691386787375271811947838740091617801864856082610392951686384825471746224051315439540041697794976293792883850046013137774379709539036093420268303253439231001231835236758716743400301582007630453612730757721928746354001917992149190403168030764349150469126196598032666039004831955966297054879794469534663182268049114331014858473341376616460038128043465461991775386585401958830178162992501467971686886788925200705202997628806184240943923655610042349146994616219358789228121539322721928505880631461420970685834102376589986251052872165798289983437229627018007927094052049768332571125006450763077213602025537555224323273402829943019066620765625050132722300188473961339854382174734496136396382092495453316367151247725057631110923834327644744763338824851092335419115412551721440952740732529674567035689694590898662939734632388202641835076293333772406184620816943370577700765236020027355654397262892099238967170032317889031191396105361031691514019367259383862218763368781800807412763044062553269761597360322406500851821045987445072782650873109413176820514574862185656653120685415711743433013142721965608728366503823759603202126995305963997712668034213969331859350666475483689286293240046655806077949817581782524949210941374121112478866665350076677301846452199864410737577551628113423018861340985599280638545110706026417127413160715340443598541580022191925154490917422961179955846729713185802455129332921479170110951307792437088652495555590045687263492316604325649858394841479830488356914917849544163037410391677794604693715037565618288406120258958171804218992848701051881042581730379373384603908462071819610131998007451618456721579233936075015862180677893693677825163639427862912986959649848883323719864978957851019310021806496213456136157872781543698583782181501005551063287579883678580739300703000304114283475928950379632903143045569942837959463967145604231766280639980956254172068327465228399416504693818057775573564983493451194988689986506994303215486082755109656522174039198845599599470498391580550905926869676009937588870136596354074305196314511694278717601807322033093023685044388572122753729483762213534701601744835631297819229739636726687017608998246193341320659697249610094349039888465710048459261143859916870057862214819583598223033887037249844605413431834888646615396948884067551809500829272478787840839938035994255988912554578629350161828096934635681726191804638950895871201646336946191527544349508733946472526542745134247270999839218203327508274483577302474819989564680195381142242760500119561333563288685479268901656433549669371257468721057443235498689046847668777476768047453576686082428125391624774210865686347309408259105334996455000278826709336637316415997569370679768143139634513410244839125683556337887201213969116214800065541886434102897545059359213895087679040856130264352750000123146867313326455428454295281318886423337133726494596764476674676381669128013982405023547053146282241716900732654135750037108859275068761576822171863855168986518735889004530415508043754481851438289030358561876067022170678190820163600002818432058973771400695454416307174733547205103385267235908323586475017512950899266923654510661001485931918978309728596261041693517415430584234405405126471626076702848674066744646385958984065561897267192090721102286864984098100940270400899709801838685983427893247316665012909262151331239969246732115880473342525631662197104204063461390557637460500895933654307231555412753746742108283888417860540491618332751996577051051518212025876263338018956761317051395108867923286235183235010286106638456253874986927930577900467105202022171813138872779220881625683607331502584880234026244282065080532081992616248176059599976782726703358842265633321441957853729689411524914494868796553694230754846221180855944410677185390349320002759969377948479313439508698067751584850294821003259949467043612802021355388108471121408188346485632187969325843714876437411156068944480282034314669139742525022484890189628025589470863351421558546596059698588321465624417026366363955906060917539550290352619244560941310982953273103496533245927118917029663626264393749029738234028406473148634226074780877529201281253988118719955605443643227861074157784285764964016555923755435148898589487438166616983303197298913499356909971721025318310721123725164101860353415007862658358112494750488730683406256234279388601894007860270207964443225439876857643544945719906073517463747993722985479664950139806891896759928598090575038745393337328792782723703726215066698564708703836753131189170287154928050639796903169478135206859102877415872031264964564126627056019395468492767252085743066221756945424139748465607576163620153536124931307695822510148860207523427627885526747236902873136117774699031255168444356271892243392691973862173143073893554724034630507440391394889501772572063064097940410507359141365434392194191551711490434459943353467990876917752765093028445696542034423531558135349185435255089880405478350586179204336267916412463790511243137563510210622615322935547805842963805504717103323106638148990739774159291088647068023451058021896574638980726703060709216017731250142804600580031832492294942109532988268125618449178166323214848115386917978596166121810951219712813705351216394589512293294654737608748127335844441533980295850896878481640480620594908983865002761161220069295931423775864533306369469468591620657330344865002930756217862567373726941904794045580165419239821121095425124562064437948951877176173652941815898944985126626310905848403428190133761425383077553510812859979754871763182290667481133794333800720969422900333287501407019458978568753152080769696930142735943628937272836076838293223065990920086083708615441716330333813336582185788199516423048608332953999409579505777616885901786329281184485223932408524600442180402822621631015465140586673373929207465608979439096620510814972208672606374594074559093675372227432270865598872430012239543247755628891963163791712276284495955107283921616285982220796145762309911655094479309054890504187230329201710814215683119596561309353227552095285807237998996920830692481845502065518192153220778298313757746275950079762065614479649594568719415486480210062673360258397434060505909704098561502581151198231781560671957110742795327399583526835133055550865139106356510646725090524972956493087463135954496473346916070495265034915607146642308292289497725255138023412417313329939572037387827605750614777068063204285070513238398728566508564876191064442636881655201593448730319705610887033214165614838741977829743521146346125555089349669800179079809124131275124938123629024043252194368559867923191350468120219161098386570689378591182205210974063280113116664328934916765840582485107021715647649063585509395092622669852066704743904773171474884137358789282128443866524730383695971268528027580137716041183532231129169576597773237118988139642379295628116509117260736152405049317949159762652066278943666122004766383622314910784903988961621610865894305835873815620239794612686612988219256784070156255244005420538218419271743811127191074715691842256207476524249292028291785504084910934787363974365049152133094208045648451282262149537164225758471146278227217211768425486758840265345689626215788750474289319294420391867118538018946672142478974086405165288157991756387508921776359965905249629558331683329296696591556291381081408206425848632616948520245026985515394251505921444365690776707221788524084115086656221895909279505153109652404647974842578761472665908643249812572940389394396152374862671573703522143129365040691556803388617822700864110463495255115131218539350911483943923081421622022938423516910945577174585074807816447067770500321146800125802771800380783345795627656071991215670135550360099326460761105487892457145833905018459372273731875228124633757088365422436468224900866699543892579908336286952406135476651327122151856538383994354651172413392796606760539534184516426039601110195631220114539914133607246315231311507976965644470906257374900018165418811469072702947833643511026058963692794788434871986483162636495051565188519929519265417089858743276420573355017659248424477503007588500665072621400650825455916139021132073490690861871096322866340737479254530563016408105421938396543507749417529902225998113824414520177911494550319654555450196748578355633074907369677521773656418802082987758933283376419978655271401649730195096381228886967093486140385690210701988181132392217084393415121094955326613413208917114389669288077430224397460914465250812037678663679426427070676812951669945154033271383110022320018110693454423869065363409497319805993357910412968048624058011661670095784637794344306441124393858670568757038728073189171677656326829963985529733934265545982168441321553227397400518148302301584314973192369407204549688801734468412899924489088630572789283660507191390821733539463328220815546864833855104395171640247075739651995686011126531842729134239210767571183896902727781414809470177179229277402466603980605608799410826383930213813783270532559504696254240279617169202418449003356663741580352747251595935907595185539782098073624727177428111379189347982090394218767764410433995633771899900269348700905066784760332605109659636912341496827662218034693768521249519529163756775644771994028165681999813772079954633608216263665384062026068258677522798696460364861821500697219475877833727694564691480217412632119172340590533885577648810466305786725610963578596378830198849493740669409137708117541245953461405170084734511044906587561938190398679264664971973160636784660517261515575195067084303068972084097898023646185565106221424873983599998149657554599313979832159901503987116426209070612225879472390218464737341638569613580354903688427460358149067031618872812865927337494880480535079248692769429127498880733230736950828840978071502386281072122001730108787348323951421161497707232928107379121744328313611958270467340584599131333556860378413708301823935871559827060428187173326329211852521299932675978260632524380865204351511814582488382120135586803702995949590745043402448120470796999678800015975276729965808047745915386910603753141678219030789422503148262389351073198928654316726545540201218695949804008644864440917964936954411329848845099836206032593099340592860931760435261842606498195999578852538341803126836428977681157441388436467155289520105434427829132414280761177874082775528349951954072742000645389231142286754752147499122562046388191247483446922531709987959492003912503714564641326248859199399118928663877232643730322984020075821228853304885519513621834639528775746855374115350088810638520364853118619141983263178542406368473679043657509974883261924640614982358668716184916318318446784355437276569250619935050131438531403622437954633295490442127550250076209045595901805873642394231935436774887157504415980800240050978698300346589868077130855793176563214847624072616843209852927412726890580794431363719075960915422861254887965222351446291033317790010735919361632688820630220339812172739779582744673552388070386842112549982717910096453581238424103947052366693203486518841373329312995081580214524299260244460879669171255479068334155400318784421302754520939987820518778957869802359053066776174457957911629519872913059702373022497875316564817156091418319586409626557753791250825635353008175465113428404029034899925903629194752422479134530524217024536205492000125710615587652735584728295533530305763363044885025474509996749592735908729958971801231039096000770792356168360886296496308059458817480314475304138762354797475189634322888073405828105024090683502841780494095751459940768621047006402306934713056875876953256724627610697246704885299487444156393913783411310478815584753654858159485958189834501649364118963592061927735924783453455475746073693222857363468658450122538522673046794793191421548643112499741131894243526350215640559877152419461458290255595635417897698319330351036580659183910720108372015986520219923761816135546060288644477312897434467000062509583417908267751300722420551440152616353510262205878606079321448910205722618483078420884881934786709325922529066238677570464980435037845215103855450415067105868986068276902719564076290076747087381318816267659437888512046462155127143402411534562254504663096843780932206203477655885826719910206586759558486344515907273822334906283759114277031409123960370003098723951287999312178437808689340596981381589052328820451933192956188432947058931860644536136694456865450759732193809052141910088975145801744573365532221092072613238347299396599165099719200419535836622232132825869719921341106313152108871303718842319107458110129456258625518026614734906312430606457592762514742835727899795199617901162657744506658772000208484097967705273846257547694590548862357543203632297443877477336806434103372561469493015741378497760826996092013035026364208723894896475272578751734121606272026189661658713479232118108881674505549489835329325151515886402660553636418099525004666702239750462784370653141272193103384198816427611632935121683239613332479959734053740321207291992598395236582943435948421324775598319402939023502797611380695311758860171678125628263726526468338760772900081051988704349910151618038513639145818039348583788492921385153296409890753595648203001536152594482481762872952878645594768507068986190024428463324884125387124337020711730115053257283776295603373094479674769785746466280922978319435096626097812948886298397968296966337687720934072296003452357891352243906319156277117651552974713587841234978745131352300046649296730784964536539796784226035042082165470522079669959691679631183715712681946549754403156743672102802430063424529958177020144183195156000572781230282195029152081859908211270159367307852592746086091933152800409390463589364529998278875820250597531992170098768117169883000814189626666435476356107574397186640081619307234290059058020777875079688629592476068868412175116930871538642371203305692422491057099113937687995788576482427824043203106494762900755163376063354634482703389467288573763361626447607383031325178642835873177779735604991080164097165654276311221311800738366317242539898361788513505971325870806991187691663394270482337806597263149313753246399428131520633161922963957846345481708623996548831427204060868815645459585584382830043686641789093952683609279836027287118493537175390269655693859491402299095521747690549127803013151351781308339688755783243262683171618127182535957992291293827879269369412182265203678519938772413974712580515456677547225779861333916231500493740760042380958989898485960549489028286302530502589057354266996989141193651739900353167185483225590560748737316153034676978874528377344268623675898362329705814446025321824172468334824391058541608285162742447761706294433472807007649228128358616485868392360998306956965624996318658748464531204454199048992123124143945802164334500636994625960102314981544426911790920701926869343264750588701150152271375119773024780977408235979777479230471551188039086279901873641343490946962225969521798353683206723873402632629564922058236784622074281248376651419503970131809214358530229963691512040083022902796261560452305718096926728131008715814038491142611840085499231220848807860724773457119751706130125597149275618998083316511615074460335904397408300338357632985081496855944362478594678469255386508348026469972762699720594779921903253253807424979183883082500527100838644276507375897024371698976260847481483434886041031182029038459646759551862180294649084773140584761739447667354790681719672796663900671166219305538697294634132734192383700405514641679015647503812691790472305865686971814360121179063059433190676388531736284830324681309005330964458857754181175522982837870430058867862007734061029612922944048696901509218418967745959777180426396564557594793227397229327657075262536764066928239082021388268516534583545018723666981344003799843685477452800398274434332556434116782111137598837407212071247299781387076107917163862898437659690283182360935577285460175141708647226473851395061927716804661974613344781664169654424434804279929032804377192769454577065696378401284282144929318723402283270393073454507227615582752450049261993970364413620353978451332034810974782637633401360108289075250032511823769180580157684001693717854580773188616662735210060729503416306675015475478599413696394572921111955676247316428819694482669952010488329552190581421681016804663159894035258442847311728671753451786645990192760137953470078913009728124683670571954865891119699177322407705662702234676846801287603756279823039214474752997300887963577310363832146143399574335252721456804830127212436325074770207654527781606428181517337259840704162812807228188092148764418177479419424435640296853933244123221570817132068768216376746188564419278456225784627780888148544993164788379117818094468642658561127432415165647713231677200108566014547795996058191240468488379489674438760122613969756434455431358092808732110992090663792488110192831834234460630732411291477827342648750982631061919949032773037000714747713287084172884152212667507679502522786068125970186431626558712076616448516706996031398123655550144015863928776566716622719477628236932660094660378031513622330609332035029258565689139984376940875856709509752630685525208676428162858197550786451803015761892066297909263992592498691936615782186069512996920597819282891912223490797592151569795282490276166445370242059717755680815419869581623501586718600596018543247757125797852669930948226494223449022880607187872720052572351340184697813571050744599546813734903251412716423864909897628850029165095469530170961274966084914674406967758649248843919702310278603502296439668346851409273391191688684682841215284272701708400460588790127566570748809150779742587372674907255094407121780245991388125487248905861377914968180227415627906774031829715917444237109731120835753985899818848171406424335913097409353278893987498941329788384208146540201744566937094496615352834673842550799284172103188167929633034134622590869060419553334527263029251962955862757927021151294780732980495374054745308714970244170720289269855495238591636665472144913543571465339418456463937361179889447026879703969053786921691619324881341157271606077748092585789814892855942289950902160662617700323200953922374478087061242335166465706947425655762644306186948837825551328467948208876491881669638277379340561343757091320130908825648615259788638425297983597656895365112818369685135558434383266887635162217424363901652328140515277467914296006119694285009526408993515324054660736295613578006398608472818747318009560563597238195163371484208466241258077730095447726404169693024462545984093368149217517008701435628826870403788834325885191519505935158984437565835166513898962118713834032296316400042221901242140759927980135976727511523002694647144229501643924874252524695075243696935565619319750585058862650739940608849381209961527540988055679002603136179756193209675580447461408113640555519827771647019361273391414445055448730113868091026758920696068213922375178237374696718876241702073397959570283210105558660119646682650151279241361894897356572145636350200902343917546055987828541702296930768995262713114202278475088587421024232424377860320875480023920112367424580830970700414399269125033956053174998707716365274998055667486896570162578140943611765772402528371847826765838621375330587892146407909065276216888377078877040519606938592440004832763361259735439221157669910263165200453240291585497877253027742055460483174982199371502651798618607115108944766362693177016409287714503185516184118267616405860134689870499028992516724917632742487454423258397951308405066628898396332730611194021648878427064295524353383105272588360340436547494710390930719008129441241896461999630337957021000677794763085556687905488709932145862578659689221005046017713837518725207061586240312254114106686280620200939325116707865311589576262845986218925866616743738079883037687683812274474875354352600944544338467123850946147055706368737538125355905116249760222740741297754964392516311055253919226113196789636401840264051404666588674309378591848779385626972943039272223907437546809187126804320971790342198507615582038879324007868648463078376514562693826804755592534230541080031126784475016648778657456048143850090497829109597167477321315647793443286012484801003296042602150046933154506168939979027940361088036514565438588982845654241580234631850116036420173196408143509375036790919129074056030178116579331381879877417155871865470969640689513436759417266642075916212938802122765105236235624513344048245273838715003593756754383678225975268008224402092851971508689660539801669821214972282621374505462068160891258665794878664381579519708458149419161254535496642062350669400280937166606641623414894215813091036857775930083762392795316544619365465021134791861006375305759756716015612381597869259685818312429179449488795523559203366720352665402297620244974363204147695166552372734205591198187773891253040632857639452985165325042959641031921411888573701817395496063024504518505532375199514075690416093440911455682749226968917784466302060857215022434245077070943568110910342569387877141070525721883706192089307262586095614099198055744164679353272044855471271546617611652057759860160505012174069329209187878391695593236772933437448310722545526940146152462205747642472636521420319198625835546621539960903011139455992235763052117797253872551507693941286215772372659162451731693531933643548638749085598924517096260627407029417211169766569867760163196863451025065407204949361835244201043672589345637372520037312084837455226086036625866085254468191396874284584670864739374574789148038366668528683696116016112873265612774118935295942215372605523706294729044673918535716358293192914172368989533498791354599512519678754221881628934501812394978965166318977772199655601926939770303883917673890521141609214324103974606154135611786199968508387530928599383876748538000850743637817547320233296826513558598587172586298229916215992083863160237845255262348648587345053354860906918677538519696734159023434674921458811988532005190945580740150802494404623525305549483829529926200103944890716438768476471779205325955951743121120984816761814621067964510554922846261611421721733174045091396037879500472714927569801563506977105393645569048317762286344367123392046713870971940240568104654571979367457103837367180266269507630745828914841969689441533735480446819725667513947663341920761251374974562828271538163213468301057304720746146134204530913124986123309447577193644715330450611387606448321288124293834670174600291163312471697767146929403154587855725071339537484464997719795332682073274759414916600932925240516074212732775044334929862790310697266345914580356533581825360614524627861781092826665998915970030794360094039269731108779309595419270977971429228046658925769192160372442093898717301100381048796031313102365334156439555369822665692063669335195724786246809356938023038887540095265550271764185347669860789022669214624951637098475598917840929173033733414443399385441064148997718250739458307286835647235481952274327124194449491165912366355157513333385422473682614173317373949071390004054632408610334550780461194355032444075607046718332791931652505129553982573278882532069741791559234362041696136818819046436285969855012768027125069722360106620199423891495436124960870373960384440647555805734349271875321582219504171644668037680984804981063658997800836956905419963790756191901716300702743416826567881508025634154540943173727186047531465789930028890389500961965659695636104421072444080553987229456886491976546281318808913748281845204964074970415136383154633843895317800734513373573800559715629033280026203554060268641793336354340239726438213304543197163578447060291309128982908938227699824535209198924006421174745898542340260804011017093927291886994738391520089627014391062658135899917772799764396359699144423368821858269540618009010600991872930645519149528780016402398366668554663799204716228291791929365442563047307543208582328514690299359285807932137426664830051923273872120473362560955691724207826344660926464857325074470665731015209078054934742489504307825031335313251737673850585099949293497848654544454792257073051223187008640554525013162155253896059593914862348967117050684847287477055864800628337979408665981894194491661069060970495394581016896750118418561787281164064497484458809811684876878940270462062293094762913250596694042235948873933325065829985702236180622649616361621100233673245043288304703817355055214523241153605029892480264713596779741495220907018829352829179647427092828633894684261501348978595934265526610025726369977924741238338913819881304786053667755496935369331373236781403788676997699652845735877632027292854720091212194260178791895024226596609806925090385584790810787389388199527223755499899700939269997618851868383176604554434989872014179070727656642030266612986368605405782315089440060371434850565440193239659274967670590095021117981672936409513680651706489352412432386346468695801352030769595411116858743703550140860214283421232154702510404179850951218221850455858632888690629516005893167204480032690075944537691332829779234864895226872227391444986672751428718585785288020189820353052836678357703967604015973692635850854798580625351960366458929329956132523586746905539342512703364122943243244117055066124693894972719650028975087127906582034910267553760225122785628441088560159674142650992429871976073538611564179496238144528758462343374564310343930252520217029905846115080083646892594718887414185313006685865783007508922239161433010851217864206366660761602230630832349469348338798801176036434142929187495467125079933400269921595767575711222179632249909922797064485251758726663761179220285799506372646416755013525589290850471605769382989761978884153689084133201188448300162919627374123190291023374567979133139041113111840692316048944186730601433566406782487256289844613574758257520512853837820135274174769538336276332746709399844011422885679622052132567669339380122742988991916096477163229219541710269090193390301157468527093610657637205447921584544496446575698704209053827026267375950151696261314908915250346644613340896812059795896265731859581570120930409532305465342548723689606813929945877549953651157015894327520872556087406988403446819944932226114659241028858953021354506686493569714473524189375808306588374320018251354613750324823777416322308243517080815765612766797800945157067409666255887420058953480980074215502206084726347301355983520343197922403648698862959740149385211098926825619256736776453383125516469389116726242754435240790017319392290748616104820171038553091363973711967519219188531285076355052395518469930053237148544916427209239886735224818916086559752827185043089895374542638716891843720597925674139187059130408331261699977030000587702751505118979879870196284913742358054012508594658654437762592380713687467080455235222008918934190004196112072606326765792784072047686626699310404635935898251064438061313508357875502517257098149704506329394511211411221543784834866925230334200197038594389429852010298621514893231733289923443981841895016948958485806820430752326215324502967614083526968778427782792789042994061607965305061454800100374015949050380960005175782392266978323717981732960178732505796778083167084885746293769321203787082413649063283522014999628836572831313195780627597166977267725172784302331151743356321381608165507135210508712754520548312319525151754455566474251454657144644430950715691675712898639214529368758570035430511770724366236217417194794147116995363298436863911967005825318525811149984454328499271940082746804248763868388250554598627262855541320745250776979911320961330921207622597140597620998521391220947663089974880942586424822808085883116434843141930304307919052569669397380712298842673072525040829982907337199580061331283028030113010123812110906576568003573678146966626374691085419456465730486539890797447044141549155194363166969868230184260352648791327707397579980577939737876651980181182480010775214489605650955462008366565877675994139067374761068347441865981362113007017893675646000722892363944335840563421557343905160719103351246105842165942669785677070438646638859370184511910771489198722036037259554870247151892256311850135658306217592945668202689304145558451589868854536103355938824620579677991343017499155993153471710455323492050235903978802081237845308239016674619891822322593168495842132935816256669349812624980401580074233952354939319082007763485843606803733638181776044437079723742959472800482073570918712683383630286018867216471283114905785901796314047619640067856663334446515781283077071776783438610595829430288900886509201029202430551307022267371978058567635860865737004775826786409397550080856057417974663276193833937616151933146489787123385655919800655796761118034867241826357896110500948057286521079211641283773157563604165316030114422567616990879339662521710157363190791854321709672770746052833667804199746690424956838239698770221190046022228225178273049734151129827841560051256285697958894379348286728564605113724957376043739317409459181235245373734233671324414549212699943511270719668751806947843426762435381492190689876412946760533726192292611832335330722103748378450199685012666220679977426810533890539498922227327593066400860343046584789156174196651534431109576701951768558532031452195186781366360951428644930984907873506407657085129243845681445653124459573598968980218975493320364790957845839133023036418652254941424074160324869578623000906955831912177930574426106212894677959014600291104460009813020848940926103644708639553647906416941470853676191730692083547708401519474702878449654288418205851428512759292458786212264951006202721120468929035409028200024853414417499165156462206556050122142485370591694594006546642058134228925164158835926776567987361478396633697223180376321621844947390384526597174357396415848560280609215722282709094569409860491468117014544237310025483740417872029185030994653649575465740011639555121700298161399424938086456888300329499293329263869384372786749467535949400111546871934604195148004441344724113438227295851125645584198021215253698343074945342444101254512330268507322842164973747097446103748149600110962219956689980539023476811645868136605181842523163340022664058607820007881046194577780640238506519480480801982833711740991153292325965775903052700230808171382857720734875512276998961337501196034854922768580724185393086014147015211894151170099846640141419877985641634889166955863500598697348862897429197479003964031647580431776269800727626230715686202671342243899045523767541829632135697668985405885459512316237156078315168484697594499575422254655196536244356730397759244753026844060730723310431318245494822625692248792617108089254640854304752642063828052285440822226553531891780843417076967178275707995332234447915348637820085053834017431887426486360878263760660208251051342384008781936996741616147386292967040769249598526864762697427150300682295866031609785815892804961077828291043972955016206052094655203722912012434674833914598819727522108225481134540030089539163729055418418115135922670437229275153367666686089734760310874554950582303195986066527034597900888224980896116104528968245585989397657823325614494945760157761407275577936925777729499384756542961324628147642215136537085539413993087445980009667098179049053002381901751356141448369691442807926691871358854648334996749953115646198780226935931221580485786253065973561561741071187856295549557548670411341177357038751282522051391063417262143696254827958604896535407872423088243189523627452570646257211833915109379031932468729319230729771803625888014354485872505134487608649174637685784923463047164223901784234040509890629342846198705848728138174689717865710245795732121985955696895037316530518193383428402261226089840975105230414229528610559223106785374698207231634551195332101252521372215869006712447404184084838081617786010890415876996216632327910389716613126237238308996636440176192339981652091060788222646012184296183762017375741783557472073694692460732761502187107752737528153028256112369339183094108829749565098229567384149451697093453692019015144002110230237155939142488917867129402188038714194747459315143693207410074986802891639383188644114035497876488102664508741221507385575592505419056346111425052639177483130376403688809020734290173353383499471338126387043562365241769140089693208805013282506843575999143225381738544231060196415477961543999310590050374506844298551612157226824466318940425563534962250663387214415678179427824938906148226379510180869747425509530303366277811005907999940298669904842549646664419507564599357294889985152689489442674515527972091334161315188814220007301767388143000389143815291713511542284372986723679941208293723832144460571067385629202265183857697171140966100684008091569631120561960812071214719619003286228816407984341013110249508779825014735880970187512299474740469894023580133337505786954058544470147384890813963207595785635931540380233089281628392571982912008688118485865264463798199890518132084349810547314807343608093402078966408488877127890150693628453919609427425834426527001558974141116011593296514702378035226581099538228865464947784466344812675450842281591934427087070484220365337147789572258760735404153000592968888450226601637422894013963790601173362175461224598559486439110715249473448265014565900225760887445841523757636401884086325874484561287627869830557069110577047053202645311021656859873743490422659232823221389728820456548786402304025256585662090037438601830783726839466489195034932010453622250897984509006783339113840602083302102423298535627600010272849298738525891741700462996798126173990743592355281791889784246377218184464384715623424595206899729502512381195043066691574120604042255539136991914719327775090648034571067024573437231912725743260821102366220368923819966138137594160667181245400316101876698781850953768822929125471827017436012655878737183701552863942839020877742315753045936415442758860876327643754632745308477280865260267111731105690983342610020500955283545025480118791785348782776983667654340268389005816307975359174134492877511664018463918357872704767994596168503439688022269178868423069455138870881221747825107331460115774376857425258897230871236325257536239134831469507572335889780068127462797495202705181405079890106661463624544656358157255142032135581124300323756381731530655055072008750118976776671118044994580475355013827404770329803737429134387161084525898223273880299164861518901138629428641265298647274244708245649408841903844964116168957445876787138984638150790384461334844010645173246343128989124143341794894133099445932597144972470022008181506648126022241534294032803500376601787433190538730520486111515573998882009064476909849280683959707542315934867473343027747455538178840507796950815451568809758523173466367316223098645366909885468936555372915300262619944105971033132245468710598957827183504221316196666227600849034195373261241498575598970665555033496217545917285384656321358524918004955324478040815405553741133611928462821749212631263361874361202155754206432361692792183862526761398858630673139705177763268756082841718080152400901926307565130240195364977893410780592986078276396307223932797752606907818064635051875750346859494605507849725308112687168931491490287047030371393114530471162673690129437890581597293111339083733771073202495330398969680106951824843011334759313799541071155301421782850261811593299626484156277894674886661034448177553889621416906101123001925698956032424101675695023401253036508797950841489091426908038220595425334001750927400241730742580414247908214201955215437008022721430131730614187740639555236750163664323041984055357819153352821329597830225143461418878394468213323178581253727687519614549768757618351943765592658897460787360988506619568950478080531012404029510835735590448513330624730675365089077033397283361345110111856588367685298485370422151188842074961348331685479013345064461745990498860083667291331248463003202787464066722875481914890865996936101684886848328591288265764281752582361761825148056677375021707682193711552057773600597615949789021158980000266163848568608696337056996223665715841911230982735602489120758183922269634724157269739503921505762390130009733152807057971381108723415819916590710835687086906739902267382883091670154748930742365503132357685828163933201336505296851439487197019971076305312629717349787320918798699126788970483861347164919090055354856052103824291105887703755545397357775532453043802421970982220096598606350079404008406023611416685013533510533979084701801479344038344531499529674927214705247195291640252345460197994968667955312694675442343750603824399679588767113021866123921931427631164466121399484500618068174823864078729687886535549546456897533597905589537537790770414814488590881222729376724239768749062504792527800299314796110504206750411705045686999987038469195029785063748593335151951496669290722790187054502988016528448270496657040444050489883095940008807736975174023861222841536022050108485074140007132742676902622730036216051558910416998475000714015036584579343265207618071034091858350684734161732022964801857838742368703758457588050607534021195721823704405760841985653704682724798532525728445165528909567788820433624887078247968247128786617122657261665792184215485232593598591669502335730242739102818564752442993703975067573252257487810518004640887872738847025241432385765270554122904371627015886355868129389000819285689156333769126711225606493457288775083504114886222420614883441303120673696197219131496920460687781430445673972282524126613290895851031143598396546589721013830598316832698698623405516971954166106215400443039602865188642596195089363010252072465088501861410305462889267671735187648690513568356094280552282614144814097087060746324408551475926051611529825133675212305654208527857964166347789171952706512574311523454341182237780336780410659877569374622511277296303286996797204927006753326439059397146622206038584790140721712605441402115130530646146979846251751302334915433662243814797918069163325382017246954514485766350320953105455696670908614191323047606340648723517061684488181966571300250337720136055410684674821511678281653102191568644994021846907421772594513652816174408786389992743562964274146861060028480972783520746625802820223689700046533584619210551081335480671510132014584572120261046354148010976805827355195607346924384828797402738377405268701156069544793257394331750970800943651391812347620805939854077024244703860393210960079260405908547667382081350136135893173059117833324325461225385678929907109762893629945048582745276129103389217761747415066196303519040244779098872479871219438956505196634725357774695142683995100583623450777095050583261556015764694811723743687876938180228916922041753605308450611293116858221890244233007814789465747152617882456007427324033909207623096494543549909421786155850742760953215929438913269703240682959503903174030768958446573916708160305035468871389961480429680135256101852593117490265822885201774586704776369098470824989259226711439899829268076286731592096892568447089718350527585092437454140480700887872915336167535328764927216628588606814342726178543194094122414439671664596094464345370054335596713631885674901484573141905137430586797187942998558036278574312798103688706148747596729963552347960899766188293002336286168518686078267189706473384850831741555778403902891147081896839517971128450334672790347052610931435338532446822189726137161699548403889011993426211249150179451967194449813818385839474106254256121171295825687443124248902732735886671154416249719254296325656035113419020969721669157212099389735133928257939131423201987126164695971571519537874563624220387777292371435891285356933803537644253800970317986991199236543902496145339730891791189325268652817685222165159367146960563977345720656214976465933021087877057095054850916675826705472146667528394697270852201750370526764173793771876400597729099755270384074342526437110860210898561847016906812514585432774119935234817564888907637640321171728260837109753634918614757891448075923784673537993605021275988690547128401493810894630542515039163137012421069269152376290183510127198177649938648186737792823938610059310792496235486016514575896917313647339607167857146389655699344208098786539498760563170602234809624689548239027273186845392390295644409356203147638117022105912518103119146966564904231221083543295655690631470663266382738767687620884661700698557700291507686858711983585842644100506390155256997066701008963231164805931048243580127740451506017560630879636534624725650173789023874340944213161108684412003379281199736411044832496007036015144999974011895467770882969683200033016467805479177936569111319111169390263363931655368353520546787370784008276724431552770967107921741850840243220186313420168641206497497337413344307384882937745583113232094863685596024100396443646676208575429055456800865589502183652896112119116577522493240367106919170311476106606986940607665470347408256851410199235127160365596276217034181651090566300474374884924082944015700238505831925679200735550217420812693690871800346441671399202428859000843559654691179596259145181856640428745207990459571711225661136621043955789937005630547906763507070597950131762896653753462058122205088070921666124482648398137079469427342117981797319986565395297702585123580168863835966460477249484626521620544400543492461980874162716845406569008317239423697299427467771942303026790246558857246180992516024276191484077623884466810760602089746827923423381917207857409135611402473418137111676392255831648261351154889482539070343053670024981267084123788566330898503646217559852892117264257200681604131262065143465911992196509393834375861704339936905284827368593795006075014415021150783760504196039578261098438371970090548305345758643286319415926377039891625411157647444455540222535895269886587820300870697743073579241308681549415264188390615442098074514179344867790885154960037444153518165618856189533049673331505646648253081726150440099283294605074165654339125236310696516298485586609365649424433631950303425999921192519841183533304922584518042372168904882867997291100247389736040970498899483590065619747655894019739816985938844511624450220663951527972435729124837270827369975794817567061046565804565606125315764099321601217556249628529818207472071578678669916850016582830785826549170997340300433345899081495631345533885631342259107402201971215578672777203460284453907925246424440851531128007908668599836280362302682979206538472899728463319040448832173155585842392244545495193981204835694702905618820513886406337742557147858446305156342392552886008022568654311752327151835201734747258947265093206954413797417880492571785145643890694699579198647254421734243345673515712774408169309325239383957803499525069833017525331353367788779489952384207334669004990700035993561132821952468764571777710334705509792990073913243277705499046544146494005543271205667655598164699097918201805966622753107980496757171796420930127228315392771705814758943623077765978858598662483899823372490534334766946724117184420475598607711274454490664212123058113204290649777193676837174037225352500361758346613795103448910207027407508022939292460432405565001144935114311280949910340688982816332597209725318556923862644078734753195816047784494066262445244841376611061155444465500184092490561410926430494112514549643023795016832421950511718056330471884698080468036160322064673734664057495392155881673239993042902301737570403607250447479702879639287815207765686980233286680634506525089550805534895362559270001430092446769745386822586552683956373780528518771292571324480314397775489689640112528486125825759171723295371539287681278241039810917538198350662216069697285038647060171866001084212832518564021617900276115662308062138776246993547886697107714709062835505783564088900614374842690782409864795702109371626857564730761947436436644827157058252580711595943005884890122226025302135268383942624068043562268191699730644170096299605907093268765318529926347833076836416985442364764951017633988767483698989584044360881828719189280309314434894383267548624028427824353038801383689117565227069307274303313957315097647963168070693280963267248315039576774706576499005428703008134841976279808542988030196068895425666148942003693839705416059395154746310475925906652919280251590443785397594246525843527906087675907498317291270802070924558539066471112592054739371119787863218800251513599419057735384013770728164263411163144590752051815622581649291201479722601780969795877003468441166343081236095337477325606232846524103003360471167634307680239498957597607142650972792735199938786827091258101149973088723843796358570613126384112063695668214417733072658274130382439736296513394078498484918625729123060962358505474840829928515912999536776662362351716524939943497163826962169203889889935763874179665708755906785916656127560125885674040219727309471107606406731427153418788885951154483124665393644183228075404136718078110911576459996796326893456651035220133554113577501459974086431486805929203622993134741900721848154696437176412965590536897109583895271439909690204187394701043154548291400862867917572718001724724543288403063800661172268228590099504618970177849999831968464634376502444779510521040884617170139414649277376425949738130703532805392977173042880299583929259099304550538701981222050285269222494650322834062664962246818318274140554849192951066998888872677235159251082872795972542221116067398483354612180991035087296392976134003187745129699894674700549936258596513869241449028321604147842257898191388966478130740170545978102151713926344924551040231162488722812952411985801763563148540452626132986249014325071756190277413181466761261570466398128088425831587983670956692163748089938465123929634129551605538868224599503993727518464700585369165017974943095403213721337725486763631579579542475058601401457346822843801585649181448173974783570581381986265806586146468015813796863297326217301328881890572749220629532575900239561635270834206249890727991103680662696663720270746103106004780040809324070605571017531512479132071708597190412657883384009633425596519907312664424838189606209653150778944383547973566775704322852332416060260270869284239021515120386591963289068156430941867953766505149251922126088431549113272892294277026447899439107998295164202468784920635199481184238071725517612243855038994124942440654914124855618755096155395298946126237206589348292628757091425023554238461511169676256816636545169772153978833907929716450155729520847748075925462995141833042035635837389028491843702811128650315021159160968711258461436214085497613996531404574239072249629209891795964106095396265886678900043866900490954224495832259875417770973125695556935075204036887964429470247628742835304136371546028658044411967392558311038693888870835279761384576386332627875858728690323134514498895200722370475985896755352184706322207989206777012769922757718496254282034395801962877645915025732415974181084020585450254265987677996561150543463394366350472751953348831236059478340209428648195980263113662257699890948253857840484862011767493178659226867492045419662382247195605034251535321840785511898095120592466355907092446469059093869080432276197387633036819040514951974813028140891078293436967174745644474130510612048945514237583874296317458848686437011777947580595131658762179751184094673063468086215940817616219860026867695778798272880625447299373198416732730519479925945330380989404998519805427743376885113868302378650198274777162225581023824452250246904328374257211099956167590902830494868927532412605743960343459521189132035719784022799054344398316288263119919598972325797510992543856550492626798653514868504356763531904025655474779860472168310501727202458605730529099770979908031324561962692015232465692752128208595914743764541768911639647884448135579225037381969771592118805771156066085149994230663807345658725760877237369737227897832212597722383172292101661509342706925349380582769885975672665206247650906303661670181450432357997361531154757827568521775791721460018293695809685692018718011524071365260787387344086469161771172409427157199050495534980460934488177557620720195555866793093327853727560804164047511868435063526903623986304770625164426247027599913797779611870501728781432744656606571627986792979851510826944330304934035081553225661365483186524174537269081960593968726911427777553767521181790082075218975638168499053917033531397462766898015483906749602482803846824287610590453853581830776282733268729330757216202496908031751171655333407263034876351871428969657560025531154341958352209037989454687401725757325684027970008877687772515051971358330965299029030373540278371221016639393684632566317542609622431492631902079743670592390380072852663904579548693392193162649840488983419437480917067126462916116054821714354609412128749295967889591819312664885295663761746167978986648654172818313506302964087851243982604905052406200677274505277843744902865722644554677494381537722246799601268753832721037151691109500238192469258717143374469513470060139360749913333386528990286636863806794405102057121165659664861225589408075699328156708568364884273633465884475689827884640333823990523630078208038279779115892588644165545002032566004474094988518565505249239616775140880880604383663457372265476411471473996318179519593851770932801188160554514700687455029821031998682500348053105099868884893143323316667492794280949681810251197800403758380403855257143969127855183050478735730959929757173438004274447962255688013681181546925891938892252596639814522626485938542823192319821554763886075474771216379357661305285457555062656294460103251247974525245918513240634391451291414770727900744314956111318411687977429653793730928627179523210277361240789911464707103351164682382012341900553148319824551654318120279104173217195454978925296092367790892687396155442615742611445912824906369143791648845406190795583547680283843136616134448254339541345714258237174537630510860852947326265577824765844325762331472431295206064956790765773813804029954837353867240374084457004463984370756787490170439985048450085805551732409050205680617620253026440094731688466302789856649899632005646790844215681364924251363312637535442156966911793383413256122811203176261927777311505457559370797375435825698876312219274688111344253507443185137450348390338198237661217095112678211734803449103198142647740087050067594742724598326060863869064013734941273642794224055321921136852727039544939439267992453061426051928126867248041273267200382018975640522215157488920336848398282817019900725044019452354556165190964808432151995801957636057055697079753591119368554414409175117601023156326456496336373809636318396144930888645185378954309105981566927609855367589852443941181535500797891943628733088161419145931517074405544766147796190668832392257455424743411483426505893220754717293806559963702141636397305038790435976784204691454904660369927526631963499410940179456979213616330782605082743673288576047835237554777834993885334221665922968459609269394092008659637824253811082090923734464580801624240129043561380473145777937542936922588176792782743809408042975405180694883013326922224164162135882615809401328610249357293408818958085537733185989341755780559270887704368258019767001920955421087945568042755255911641607645691012062126686823033016619257491162418777235174473628441742676894654166113985595881392175350225592140213610096896575989711665754792534193012859637953120928189561568252430872717523976831404722250690552189554065634670455213632855206848512862658232073458219888794040384134075444270306990668787325382338334355154109730034287218185471312084881462717179579677377213209864138163069836116926263083630808354468510631232141755360576227856754337623150333394368805811376903315368945713597554470970994616849363775522155057604800975710272107923409819450583028731206293394882312263778168110784347465260534521841431389329854066755829449453963461218468081570796251385448871409393406159501474538328797019449237821524593935588800515308492993230546019651885174370058531488540794006696431778873442459864546878590658489228159667282052759051235179678108239014364226129121545091267420512200944242608734491287404994532825399919584119735851236170084664155199446092640380887074975394030776300599749149006227902533579217549457304447204869026684148971835930466051500077226061409746125939583946686616364061066221532333742305841541640528427387878790303146748170569908238182591821566577474494582816587571453681215391208280276298204166976385561542538339258717648809281642889453591270981926030937842414171554421266209982546943445691292686123680158649580929653325283135857921169580773153969676295466343555826587373093236217984828120248686590486370179515721625082893686373711357975946768148908184426740915909967572044452313474534883418883291917923825300908794657551023206098369199982087697441333236344502424612129894584684312841244927678316772530757991502747896287755217023765561024916764088428411224584570278097341434681979123825810822444925479715447701616059002477772697487527049527207718345893177056413737456780530265797709126003262462593384907754922047155708988926968337392920385617700222991064996844964735044830855933559850519533795439241672198181014174451137964586171327068270320641459327749525160494374735008206766961086209538311005464500431175386770360531444127508060378375801300955077374938980583760415896504708557732780726164069569654718425862612782211514337570236023045259071766730635525176273867565475637915111730145264324326468285565862179766741216190633579820378569469713776840770775249620228236925454576260664062733581245927263054888680010372933520503574046189008306473897115621995022818718773579944145872173234710388911804534607365948225497396230784791927079562298532347666520464374268105383932328181511799736205764481891983941605817007355064619165530904801437683202010499439903706859487542605408637859767512398813316034117407518794492502576945522778854992140098448414829778922732181977914188603602922910187747404328374197265736816931664877397375805843358851797398267798578660625936566678977249511988597717567398000796088021752061289094248885386401204309257088580905817749103291228771566619979873253037701738031196867269948872568607661038302657476387696465477289708012552359039515265594289391592256554237332091926164088037574979549109328912232333573874968686107732428863852388615922828813128080863021264286996830248389129495901755942855173589020699639510486793024521908729013975930870035825121054002025168963233547560869732184698751317794193293187451804469559603771383931332602686880513618487497494919202508450708591310088921516233029708311379849180021717116341952638750175685550704231224774121477834732616338964818695098918938667179331006257814399753741248630837739212374425242501901166854802931292424497479175795196619144413634546185731825490577121998318077628838430069086191294947277434314580432665390852465806039406033865385954104191359672361632085143637031899683196224432217842751782996252995179534137310232864108670453961159354234097695638716437293958577675712171549880388490204268284907560151436057504546361091165541033696809346809040122217680941417336072288435595159588693951748853602681135821879183433797040014707747671507300393526854612192025362405533029146873205163477051788210264287488969208258300093027484812686885140760391936837919119155733194443770352550896341134384316148976126816196107788159556326556705120027772124917523130162754509386000118766412199498749647120791333782289406156373628170160652943707643411703808013029499732203857731616862666986946184140429451212677630283655878014537972367590466108707664879910913839807679419374559413291770661188033782784564204732238214850042527945026143438725497087195889416300293660656168146500018398132619000377660239206332184251761323324613612617277737876251834666992398196208088941485379218608288627920127370830448161950644520487483190258131824468705350405362660301147473426366969142647178823505314378768706777534455492286056136740100625347155312200684091512457076068493356905102563742768830253196098641162553607595117016839933870621449106404174347243101385053020953975853007937295743761835644549740740468064877392525035250135669372979738818072253518730563338946675508507047808023245743951655957633486993181113243234565250597448535538337215357083284677967512818179720151275687127221094622469325315768376211240353367670503345513073957636180880943903104565905070914648778306635210868624214000890360365773010292550655676808238417929931448100734115556691553464663292789093501098612107712787073505864566409952527288022336172394164892893487391319704964375672755167864788202914548137068861964954671037585729402994220681466246660135293227213460518008972952262475010268578598394700000967829183065812235565901814155798965343163129912510890860358246108448872357764030956593918860448735888228257347318934755506793118680390441945658854054607798847504070842130853518437935851881445225917582151367277703385028588812465316629218627878527807296164390795061599588555787291974099570820074336231449188729158836612544150026357740516689794676826142942897231251131653195992157813430423550651464471600273883190509428529430505368511004514796015824451271996425069448147146343477923613934150963178937910270062266335451521821503752454694163017697019377341007959491741547226318350477557649691760500058361752801984762887294956694717972191409848319465540543053296378475326602360892866276022170536692492770395078492841738656944377925843714997128739970645554957646306301207218685961926311380618121519172328543980874850857283832120048655477206545649671778915226556339570184808161996673451394242792258243697015531154304500269358473588282746760099721227740020826445314207593661446725024830287877684497532755976487353939153275001984552861816000626056013715100027005184474013228127650073312662241502929539124316165295925163091150678069797958955162664023791928229144656141795925895857929167117309427188670001387647348327547050358191058968695630133234251374987422053124376480391647639712679526058982592883615040090944449473641275413184713192360578132933561911447594686136778349229102376547619482142803026683389799898471809172806076461482585948636024055132476003637568811116986167822319979842327270034743273694402596315735749553383654759183414102565264224375421841713792557312297246865536648564424459559976683801030313271523337173073231952609686543198103407606369483875646439298496503162728998546668392444327755877270888871349858574331950845678364879498441741287240586436565149948486473148251437078916448108718270262940005405957252414838285916798885554220458109319358592722775212040070018109660059357554000471675795735545435800102024527183292133105454939615269498848344811761248584830366209170357205793289442319087083649234296028975334172617354600808918673861335992110702782404671142205242189052929681532658495090187489907101951300300030357472082900762144437082869043708588750661888247465619369462952562016258783578179575593247782357073248484453954313469495378812852030354273176261906601758572854968046628509804770044574709883957284976680162907124019368872420262018866415905255607144008402615044974497015345906174928388638958696051905038571076780647279159070655598005694877233593618810535921214773810717212502493454251404972399691078435644205340104331364076657789763020384925628702268758226620974213624216448580314584294514739950109669157874559521094034669747840010188104421278320642434669710705786714622205032029251048478996719635544623377764141014294748023804849729267293257703102806906984290900045385757615903517180974309165198028350073098482105560941035060132823507802739474548612869321749915377646908743713494938266800974243127619254175811927298598289369573573906981702222000103454694161182355762300452606215051913771759022787591567775516373945316546907159209979323358327479840129296260130268642954498041632436669431243485204016157874754797163665048268827536517953365093085376506134445927299264073339074017897989948996792881389140162829469996808851371936678912974370014037642414616023797873961433959787792799131102930086829973011995042743841744247764383637898422769753959028058021155692667056945183870340040259238729427601228297801212075631381979599847574513905039383494804610626025639257273818991451241757628303156855747039447698172644607898571683063013088173651909519687788518003502160481027224169282703740888062526194817756968835924425138268994723754116767150346520256089216478909311512479423588031874338287589497451171679537760187242245158883807640965047319967142152258150628876221119235859337433060952892949645621246368065542259779549998436832295706087114760905732886957988026390141863595615416070157661958510843520627277336326047070679503634748265998403924806797723150753391046469437518140729658081611309127514554858461256015435171559008329818784565287991552825752442182564501051539933136568224540537320834667826582612272234700058214089061372437986575137987285858518337955208277270742523088229059372701309521049605174094771507762970066938497259053707872552941517150504732704924021049550467297824967995257614574036522251976253590600279475113266140220471226489391347875278252649797813332201623095281321990683798811750356791622712651412352838744790249553127371654317542576137678350344494504516831488646955983674618785384403682881894017019112277684289446097357581198862860703932568551118534348998688138102037102297199154767474090881192303206258368180722909230728215998149716576812204989634769564961838690384272614871109764257189799775097143988077827091393508454907487883198278112049112851180446978318277948407599458881517753174400114214318195675227769584995500868945362523810551402475868903060367753533171696428561608583550857669311552972370104828175776238029054079785668149333581073925677993649793326506689658986096181389374489332986397019507848570123080273830038418769987200939858207267430861043961945773509740044011978574267638723965799769682474779986315428123733376461183010573424521347068441766563225225934984285951258222988892792653944970659807665819927900629298355839588419609957500826249510842987291139955236889367638352048091928233684877590688818351149765854382544939655489935420081997422061347853100726994942555660346939408697346248160027094702147444211604823338052981029818407778193445525906535898741912125424889491502450071477770023192120446493305757173048247395790656563080671513935253267568515648297761336850709254877606115146586443286683157653309571233226511402498029119010914656515609408744706933000689872489413828749120950931203554531846192244909041478815791316741998104872109574233552755445192752780897281588450335186408098018976852960251668373187748349251891164853722344749618107889687860033285330430059974045969812146714680152803194087379127921143714363222386422204919850946996157542866961173632124450056469688385894081829143092817188762002856951756851861543961595949034899436803924525827594926203743359486179522488191197462462844553641596328564980467063935230613041653414900512826250384983072045696854237951795733247968080661434421594734120923141183143942583636849713488739635943411980534119544715748415043920546740032096591407049157660141365051782060032835000422493733734661602522263558988948084492892046713737714419244274429384071837085069930568629574429074730600594733880812923858435742264227795770915215475270845014349530369620963453151643378674627718638481030018176196276047130124494928934210389330492716702012163797552789913275667257944528328724706110273103284187494256093083772505476274998924662623816785402960111665821946746587244738398099357286781507038954825667199429106759679243751988086343010284925058579152763202595939520495529196190699668804624130130307177616691082309065325498999066590748286855899979505768434185876568002631102270814740752700062699919018716611108905537794351128978395054265073015474296909372425779717891658730339694061811321151762369425013112415424422857820851452925037977797101794496581306038124561681485931242447748188982844381034057319771486994589374803296323020439699999359568119583366537184345706825902662781256883878020436961621369342851672308264361235558479524607257348144669266240716444092650228391344277605060204365871599173124517993456536850870010854325458537233844202015186355755469994637425325922013366323315089216032379046355417612277400465009624173081233520629152426979212696217109100187684538992158396389362661783781250815041994252122083752914910351032897469301892918561437066372191967958259823503682843421738665921429858162063800258919611764903769895122285220976691622508635244777743293148929016741782367547437953649148082021740824377881985208829819592333731123661824402039951695310049730357429154123906762736336674741397839974403709293444201024689761878317354167822796780464569250303945549533036842873927428628860285558200987219100692626169826365322772738485585309318696551379067983445200000928292631962768560852368073994801744668914310734922721558980723811245932599104178652807492438843088691858534100329911038463755644317892423738151919436768377240806249878187431281135558304642502180049775095057080298611081772426299451287640802615396485006117751142487776834975913392965702435433709392964056391278212395394918426925357512168951909941312453829181026742991444039546720194797564302372071702295967267115264877433952704463595466893152799231985949282540816597924894635522114819267834555972545152359415169053134951103359479177485289036819547943844866549827051333144954609829338948944353772731094361163895074817218528359191592374319085899999064014576867924690816683743248102823857641903677125486376137035550748189750146432323429423207014062219758335236442290305153677640458279360662782012692788174231173389824291235044751949611619869154925682576721202545259568056390062458776202819181858951650726327162859314360192486745207153919984910183019382089256514767105180541027616404994579393659685926558241507590553604549464178183479959765822257910271447768984370352720333716577135450049453112606110581580747367188821694849571756918301773778915174565314067062488438607992332746164225959055241449786880218156227298587185329334169434613936812739555738894389736032568410493342674421120759262579079856008949680623514989739793313836005476248061462217507650801772333075017217774491604968914848106636855523423222194419742631336665180311252355512403600436114885685481207388418371460647286570062726815665209049243209229353460692524788541726712243530446940073653486409083841660830931143880597494669398941758200044837287765815035948394591001145734311918409303380712024175331353628384198387668592194643638102077774382289599114340896642118517321820545592448956294744770101307212904558848285800153862479279563495739899510724795391250013782967258569226704330556130470463486264086273802716219113617537872579759947311833759199977230008383079457258229182315804824065959159545397278749557972352689409541264809318855136912105892326993643364122313177157741722611554798654977553773481004533157598604727412079724017752984795135519502509045399027573828414668684818518775620117342280735274490594019252895760909707218505133596522664265118952491133054993062379934741838853469635321125628844328396713221770348101148096286356415970682891373719616958171996500382968837661774056316634456042190794399386606517315630888781005092774558706365805255454858380960539756195448799342293132641499628109546576329954522632430642459568343191452210993663556562262008834073545980744999312224501257270938637904395257067688435444558490116817517950085317965619259598483947561226733642638965747813805390862792014798960341910446329773750604886490924401358145360670938161141147493991266730918514721958730607499835814884509970835543481609997099235433071649811277919351573723932605742081839035104036858394226816739278195656750858688608821289496450449518809073757334616028525642268749504192262515440417834523907934730150799064802578000248000629847965082353297825895788896864859834856942308761895330545987358027602741201969288938438707052209794573647695684018642243101319056580308108511794558504446841696019556164966436869567289618433093381352401324813576894193905031593180467991876069967650818753884509465023010252060305671397523938509213921381464022501469109703924954673140406820826843335211586945831858061379821754268738448730533359214666166590477616414890611034290392900173995358934596207099522078726191261093460456789011757954143500426058375283448163666639081382018993399912736812320608788493599670678422943168161704024215864643497988617769814825048689304224919804533882767222610995948927498563091232821997521395287670790936117035078162232784453722279824005885995367407713986667635158698467195034546572056070300020294118298770619581004392113820276530911656128241823999563270549627135799274093566020875972426611118785269524952544982880386884872958167705547967443803293706918453354468284604354722192061972436720513827443891860771663636004867568587257246565790961482185639303751002438929267049406055131815328434930004608423219896221262292272699063740224173300006414976544727955636854560955108792965196889821491696796610306602813904237488886284123357049930614023600814300035088389435140147750666362482051903969726312738734694823749854751152377953111914176072961384349158091983231967502567917145953308852034069316290349741339369040450581873321111758650381808895395676959003092433780095635623164442294668756244226401487130098693843128233154698427436460199992137142025424744536660846016007752493874672034776172977980387498858728529472908870097686832725600571305072064768298620541037275953899892605530593958524026365726641801514396225563155949823426760424849694785679579505992941452511417890751607305762761793646232725408026459327461545829918480293594355688784198960112725322460924622673273988093548591187539980450847756333355957886287456023357779759237256222173712271454650369439043763994793530722592991673319761542967790394269164821389792962819753115815910666601363100900347207040850254522932757869517217932743534040458240224368099535567253049245507637504727416176006691703872398815528137717210899592488949646480624836263786576574346452299977687055154732992698004183504269049554679446517026559691611666573408922342147035747979524356954943378761177617760894256432097002878613392746404215395032477561750237737380960819019782250873392212823284947362149452866629066766663569592893696877887953738240740310326165603674562658486199559680834271669904496986347819339232573855116057789360392971520954180302128686283015468200089628837013227725476279368304113904564811666239391492485691548035658013258242108992763491815716907458292614848114875051817991587498550305514300555260700380677172948484268546823096401822904159482738000663142679222759726234147023982020456632032848543211292994482344016637060993629487045604177341272815060392155632676772692908500863488651250356267086924589041441925451139421097161975117416378331820933877198195181642243024116483806181260724451929151306537846875454421923372730758858666438657444439150534558354952888283299746735480798114103244907372656207388705718924839549576197886989474916184432363014123729782792168278802966929889601532039519234396661725890393649898757455534645261203026098939500441540601213287807344630294637384814631001458120338099481569729914516655068777351620537422578924620576210154443608447318183932232080466966922347231993794357657426131662778999059910262914731420636830095241518042879023043245937982140197907022677454945336949700459063435448176027562454309381224704213457086162883042961497665342001672662687082767464992170484694749479884700773161262265634750161971995222344577148391978606953765187876583832469938398764730389693370858863108807205474056305745117711716190926843414575134716098584675253925527366318622146763967907952956344770834584926053620442063414331609740658078099802325806773589841926630755188078136502566215949697452810336856856221496003702706407629221297477442207330235346633093695034218474903202528313339352518326125499302633264457993863379028730271730929519774875449138572878188431567813225003813578970318997547306593093279596344910846069184493329314318952962827398150121057091830779567446018932989946886263790640357317686121968228516959251642692535963360843358822331863336037176371686931590027350908754454823719573092277444445438846477727627054414605749299714644601570097843630441699551058059353499912821669482931802029840148696239751873343665325898158883346330719145142307562199711042591540429225582058746333699228414297028452261718186463885866312860757492783415737714334446706921361303675406687898693310971640475298334079526639242199674714700954475726603942574782130952578872258119283159919571630879082773498904066212841760102529597027106230009989783399582788189550965255297486508923528258944072527105046068171227991182833374082724056502383877849258909915288469534868901051536415363439791515099832814205597944109536448984091306956204762259213459747253465270942384919106696098058009502822721719234943593065792985821428385403106266328967289248231865345839389578760979862906938690878155134361141150257185851368244473087743293964089758569659398946722986632578502681908711362337024896122432734581978814555862896595072575945456448730577737336944788389746250180001953880069462878156294199682597831861086926097176286332854166163118632048840459703730332901849614105946358010280036040760087174417907374178363032090593404688472105783773581429613930874085812471849843160103983523809092729269822728688087066634189288410526499192020498048613237029811835603530834833849268748779450425236410369825096433195803395186379641174138946243644301288006020658482077593288939981244340867387004213066691844859783834955847331471205887378163898697852707091067350866853801877572657061064951862477393504394846290407022675772774040926668194904438995435301155946635514564410506592359737384187936625022878658278102145822246651945942779529572726050477701525577591458153419124738063871110396593017947499390822085328743979549118797202546325809846877369439569769384975967955702861636753194605303832351224472840050953038354387992029184223703832210830888965851815856320942904271084581822348722920308139010740087862076204495500036561881076630331543376705359026314039158215272175019810865609208060472127218148704410484315421395048138178933707419943851889814232309780292144669158555692596221493651623920998261064063082828375625948156752016891914807144696900586640272816674128623207599601377152394858649066257310844691054432340896488011251421196791646181707260894160348657761567253211725253877597962880650291154506302208359782217105380312816939704426040599818268880015299422112080582641586264113396260009290116932233399059343955941836913704042084032666624018840871413127706891867256121904161878616331375447015373687799907432766402814707762989546521602455968864546149287791407655685754273586930989740783495211814967039440231572898230323535386401102710920173615143777392838462784606490842077042122820880976382996085303481128003300525543012761047483855671729143157744469228551093712664049714198597937773973110419052482183077462339195283015829572902740502129256954838734486110452290520363723103863608384726636819905259149778836572268127044948139919264299171408861167076824402056379312158020796279215789559424438729923100115040734122649961672323193140769227961369631321666413501098149242385657005241817762144252770104780713899879798570896737369835113790543198700550765548268178410609265285252672478398536009480250453452706829466964985953636098042028191939275391054533146619960379810306697563558824222351921885871121113484950041341016286321528480035829350475418716356730142090490823300144031463049000518637699269832193604867785093938539405182225678363512684364474911200356333181038251736994864562827722956534292042918733017753302446073495360428341315844874264584267101922943125612715929651397829946120431840254647569297388835309524340064449302267529459469181275709609850827387396057442207777271126073273087650067867658602085366102059089552752053769606099550280968669976006372784977823716482433618267405524492072863203486069952360738977295046038668482183783832893467351456673499507111072543213542152494961712525796097133097065299589002237125517820677174834982603051171452276373534907664441947844481672772287450493747256741555138293175830943209339401848087877363028415458973900113838301317368928058275503982927866624849065749760494063933139325512424287679345710898096006171739648512314679620823354698805952255543704468337588422044565643593201528551237289330399864427103169210979514474605492518334428680102685325258667717033964481397993076109443499813626314870827818108683320453127442256839259560511178996230339131729930391257257066163671519933516591808837033279052832500932069278106522056775448203121151196760261406349118374931491612379305462222893127397698361860229273627941759783267228588327696164904195835742853554416032401715942270239697116193503856779047598934893657468249035838725333026071231084570012669240214995041774022061716269134152230236600083424583343411069245708908873996110939185724180113338527195611395100316591825757087360457948266756000119221452954869442819471957959093155288411404296236995995567895441410721125485561064713452219455165109305827333144787224099573303321451372385741636073012546246221129745124231888455475934401236500714428708215993536876657192295832548525815000123710779336600302225679666177591606794205267777609523709902771352460159760910330504448541543082626724978771900056064957086031909858913917018763715908196453668235745944266070623643303778211537342090526834562809785066284419037227781757432442350422134168880204535308681354714609159800107914966723240535042701922884211133818509142517149157290002483238570203022298510206009481089171557277918701777463178885269726435228782596855065024769669604680063923638890398333458279919392158249404837541638613079494258663339739024211839992601243178264052732263884395398828415717865267991090423866167391317226263835707452540209179976348291689918536740449730885245369182862518221896181768874377205378987049524419008767221682416291953155855219168370113646125044734967841548651615595266361621605725031048072282675902275413665838267650862717605853743261168654843934515047416789217300112481507525099553939032245942009985741691822073299496483135131790471604967513143156349085858603027895791540904828384841643268584907358014542166661606146791720701959408122536207392415426707668152513200711980259968876901684406222606875850083913521050853402277634231519201650186692566208268165822127864992033786924764225599383720377666336456315479490177711995930205102197463380067890412267531597361531822977951552159312683800641665982412610870285022693831540531502322504898484308998680062947584193514501672650998894271706766787707023757927187495151787511835702478438289969124497818348179980142309048099860833146844201530968010380540208101165297914766631231409136485661760061427344646762939562592388525961378660222088880706309537203281963179638517690968787461817636735220544570023478043099294339805362827024589037216776476414264315967373731668275505192651209243456872703446713543841028014918679599369673631481423309400466124685440662987336048365502815896556862743009044742917821541426718852593026493819916991991249262266004498985685982905134753924355925482731530053622105268502926467423572946043484904254450226779236517510292650087017269855481350354496510741004901509707256230478505540103387510236367129555233123901254000037662096925645242735270648519476630879625446272577855315450016216855936194427174384689426141133158263578498952257392696647354983241269323975890344682420961830279928680346296637723971700647555985135063385196195718756858564982060724842559344254838290104823838218215799055900978212652676029820659254780075121569131381179127273385047048027577133490534419941414514517793438421955376013101304017887090827080507418043918702794777312143191242403458208766032425624390443574392490846614488407596146198262559127182479189134394711689728366492173226324827900307296811349882579362217619927381257098217553127345460128053113884937181195630007774221597551191178920337103882836269869734954133276809208230073272265478965586923518798616956033261811598156061242379893994779279889419750660804407792660344044956077207006364924717746371067060483442383013442878881775738406372977546293695577680926278368310584961767530500919769004381503553156682120823911874813650562617369984097614939704835256294064296158077112562561358648792254124489135756141637950910918539232906284615941512665222049114855155664328204746364905037157855461767904976604819433959941349274407424112391620879894511757347059291098428317978740651373343618458791500805840336865926745589139125544104973567536229975880872667258761329258797288320678251604171951344190796857789818105052285722364758038951163296547474691022324101074043341362397070267475511282985389672555144099182720617966323344607746925088480943319262482010250049887029855904688975092681731145740227048595014516246627150980633780882775309363765873472845271786732395654092373561476178428425185407794149705952862534076129251743790097427059261051488994195139770367015219871613038009951431792955712692184754097354204464148592983597187133262364604163919164285523926550555289677228151813083071767770189546318828342496315090853550812530517397131587464748715481279280927812563703801043882851046534602809013276120123670964282757495638407822026737464544160571082514424050227294905189120642727699695240207357356086025030194782420456440475864461742776656418746382147384253526860347978474204882746826776054675919016845231059633614509513468800350877167367215047820535860399753954583471023538494700953663140008561957059768691261295925246580156564184017649140617259280649055046453411881021655374926353450687658707913875610374052871648543373359741078001203272709922243400959530892889952938719632808039132541508767156466608642687693930038569386169063861373090749186109747630106739700161261236545455153719846918473681058402189565899118989345718675880978215097711724056209466597801751592019937981958896787666443854246661053609304227393469983260599631051235211195305933360123541481619913475484792158972788886728616130105966694550213206613020523529612267583337607418606703770878307265032107711619473531523567086177317759115782176244654054121878578347923115364054911818944601897995565127214625419551397485414585607682613225835925636347624280120934974081853178827872670000814239893445222180618245935931641782848803976214264155827650869594324116577548519186556197191235689348842094330821122516721095954819865112047208276426446416475424966402592513055229951897628664851000974202316944240785327932812246696659671176958278470559106189911731136502153075569472802460271582013918167507829808582793643956531860060968877254561503574961994043503529929692112746691934064992633529463142590577145852812908970062699626851067682829384494517638175090806823341046815136062038389460424932787331364071872937477447949598039415357988817355600045694884384444188426423335053664352248397055741369377122927817330960279992433403516855701174508265171471468278451432295071919245465464860486066018701225989919872512505308323184634412893097624778722375324142568538520254680928657269158968298364778523816029736912920204463762842646654386292780065517471283645422621963479171408030273109835260418890655177522841640955625075312342566524311168722695864242822779442876921627375270390482294343889676267796291121240679649600685609533854804917428592365227380548978748159197632338098060369579445974379737926224358702086683855718010387728694369980668401212998035728529481860728056695356836350139168090990777553269203050349286796949516103589342705083760332342487268337548321687416538678755821329985812499531431025808474818263616002663830301057513166017608425366871858550877476622771654908380615572978891322471210214628026345970914786859895717435073408616143161635701266270353043873956935202045479008772792580011360850547211062176906794968430861113070381910658345416327142467165560395205834852843578610606892575016367622861651515007186094721910327547082655091554003535630347853962490258881372163357924603201133477489628828819234708240078108357205472338548594282886981545728737531767269482112321799513632535282237327125023044413899676380437809741044160005972335832371296549114774903010274563955552792901660704562643346465131332004127742167042499413018661844844064253326232574082530868157050882755280896554493418902665168316310648597217884559483733360312103204267213166839177159094503252726908279456089437162374409841019388143394809359751461856298695194674274641550768354840478146705812120932390649972579160289914025520609389499424434087565914808624180361497614588578421185417102402413151091110302469996907376508069607336534030629207977906372357542594013823337527439778436655717455071903632079620906471043392753842690246664360383807358182397123447762965351854082606429122724883687076102206098316807695108609810443400114078411710000240681108596340812590914379391567155263266595131554290143414770240847778060663062253768514714663121382219581776679828585537816612769816192287695583444720461270499277840421026849480299653738534868947982299707381052461024008333495698976474598091880293969273983575327469701750626080691317219556409838361498681491740863664511439241812159464546247598940324896803846960230045388849146173756377529227333096283829724052422178177819853835890902246847332080154237116561192329164727263364107072963953882534642956504737107721731925644514672607010127746936468730972088522310776858612825236472612629021114026745673849623471721614084831197019222155758677182646490150725136600417177374429263013060227449565844808949894886705291763290851529237464638430689991630009289773786082866322563197847404093229426135140265141928403904263987682190479055070431449624119084204947440826087827176297366978576608530364755653627587302941442813074033650114827356831130927047015708540735275976255069716442374114901668430359100458709962326251854290467031872292305221514743160400334929785953443189026061749862369847631271153209544933929521358099682692315551269002208820263365514915942256198153364837251743754083362300431897689500228639017744463056756186313413066717341949293512775501713028130438823175512752211995095940607011251848259177088513955846417698542880947032541750892775782189831503782942198374993778846726427665033487678540971551306115171801735917837919499700076237598636831839410916138642873087247474979157683422064266543609288429030974036938886541299225705627247955666316964395294167376007454603565534639902972815460289516693679218877640185320397783260671966398523613295706554425099336825357940446598300730284293293673184490012125195129144600888261844017626566481037128391492351372908487969883482912530801858027107613436159382492091948143659636666429273348507887322951127046710343975925062741303463536155686303373906079142774713584260350007643752635985875001646941235428760665987516507498219122967013011340273623420138784012272589836726871168564921982040436292750137398434654821779452820924144224646122917551036625774138904793028476332592238420356897058331310970227063390592926881010308708446858927160676965388130764052941073896033837108216793200445828817285158270318824696049026892083025375744833740601056883340581777767305256740104392123598521424579686980118144223037115520577692772811472533167147498091258979843267662072023881686347182023292402022133825038805484577391163215950912036242084358777085956735664159713354790070421261356228248892448658540078390389372286040455747516061021112550747068667918877902800666013043927862519240625264121005358380124405746063279158499041139825253617295318811500105065536025554175122088452534648370966805018662580352946148189662037584400800544843245498697209379747291582063976084151273955453971241588700343455800349919883392500877122548454624886798746222354830012750581262028656744613931781729879723493479047982966831404365948153095040408856430564754606816611128545117531881495309529386891103503745766552923234175708875088419672256803623460549539295674089949784225183764561163427763917241802503027508680917417928607622089442054269439052941748499244357190252770295108738448597839003326087686275278335360372094254897879426738705407029759102269481293711813659762184774945649716647731421191652634782377839859285696814758251961433366434809821441932978214593560212795122943625988243393197513376873106733885071789314241580890343587168112280171635091469513483774253556926413831393698996053525824555308126117270070944679277490328084302180707830579511520879569415485479763876190886169595902652486744291863953857975235932534006548462812014023212982855378454883690877344905395653181119091596958984300347845951754751885740331569351431606902194931411662206964130660020777286825651253882663010776759083226740576912904155743431755031121239755733707659013524051466869373593552160094378608035677701812407707346835399186988089396776144443841865880440514733916847229351590209918575078515455867180367246986620595408740609243949880398438456707409851080342155724309626126882917570896490270372829275910522564164349437682579144624828928317440553350125933055086329348134268331638070681470211636537480658146305520529076650987672390782763502307002443866819214580975308994669227576485962073286109334821952279902340875447505596157041833892499497288410688314328415988640874502413417756218430457568425098427851100941425249634460816360106301466732180863293580416302098117461457380864285359973041125943055761574745752573065642187051045285638607340625147555869711757840346554004752329510375528649927574834639304205672060359698294447200956440219263038681033834875441286014620191894461199390359351213512199531513666263957922434477010160944686317645333029577869222250086359641662761933189091533767901772770536339162884667523370852716023854511946425069565100558971862873955147351921422744015883377911240368996822538201751381393904029497838048548884826980964084728459707421830960548996370280578158694620143841298965218020363828440048772057291837188355015994498986890783001743914646323369725012262484638910907370054180505230106280858212601806884424081183140688917604280142029670433577475534273153807087021771460253131225875239371521651390250116710861528999170840707936055712804041461338287334413623341068042166192045037842398885033927373568369552647051332835344691673483719242089285578747345111641789960273779494961688742705268134117964412151823873683038813968082104814891911391673240665596013584311370893144013302763555119103742085431885632224750239583995484905201195145103138616104100220860095193078649441877291404814704873823747715698931097209345772929435224561054164506373589420291563579849185110384552128464623318892277699752589097200242918517770397071565392456776978741082317287118485069330980029750720357784078327273159060726821391686345971251839571962055527132131991828408062379411614980357387694540070488440850758331362258398608268182505482974616520481624177251172428162177020896768144866563734328150548091128791991484096420949612411700724589670021311626748800996534744767200809636129307392390347514996037275620117810356185378411735523137246847194029451949670959307901862403931466124318648781541522733689173094119086658537707867063505230228895388418294267161431301321882935230733368213532227173430084282270835378042477119672953156820147407054333421155577480121798725782429675136183140793785075853471558780072680422980248405733363092889494323897067949146883907345209595464544114552542981092806505075047769841075657024475384786326052804686484152401085511751791388926812365992677915088120759017075001221694293986971556607305744377387966581999043427318026546925057714556391532467596403828226686138520643450804799320298631271806542021175620594990161201921555238537044860252730549354032455296405973304287544716977966712328084679155656472049775238107321324658105966562357542441068853765027767473096004512052650501160765097522141824721556934936974895749697116901554686707076235009570134392650061878761087096585595041884183396274138693716558025410623223281230149346773854833374770905118837544553292282731283797663227518583455855263277943297899470950959300114067784997350063886680830277891588051844956407780845383676881271736112746219035768907218008120791517117632928977434743514470914489341965393236451718006833575850945224449287250428652787612883587023434969147732617562224137398279374952865597307064580436531257087462624821517498074058592593280486793406724306045332531842850056792882341620737222185403821601912289860579204438412069803544495183242579373588041213111872602573896119836592503737346014935397490335096899173986501286350307053757564210040489663266861041709206102210347695444503145315840353559714957922057571545486714512620696391835015510275358170987765229603507310063901765926686738248268683678692636432955490786609736903869460445541797852537081466058861734629507819837879186766536164368647317819888587680886354677894615081368720339229783732042450416484627360274479637511564151071755962397255984329151981539511019393143988327603466529896646802123359255204815000498289423990972694890911395075974360400103701071261769709965663074849815667339870843248894048201044485042356249781354444857339788866149479048131592713351181274792256688902510163990611064470789871984051112503166848940310251922099663897330023176301825268719982850330960158962070286668503900709078770840462981787761968656250850184736494675979815245780400328594351470578194478016095732529870240071035967967814294715078520604162421677885271336897888534128430594920889174293220706827698325525997937587987013571967733215386524193326907378733646002004549096813363206394450555953461554882183722532935601701547836930379862286414936667543939688190857055835279265232340939320843607178619825752796926996518549529671774218458978701760254597880608068661893459539718094496059238618610262420147598984005632464113820546429841135901652152893334336307875585507250531380789969292700512898951201361636108440358219563319201212293166748852332051641386374684587476214867095773817792210608290962023923600365518526630631422525872872930088035587317488501030390010780253175645009646755803480221771967528750307176847291916845745614662236930704487077665613730540195635681784061052654618972244501801046714342470783134175008571791834296901813573744517877487430133130345531509601462719932368123896409388770124282292703932976228526060197356655140343624982569375253660592904059172216988241089221616372465672293743481452610843710493529410168520837507790328967448198871791018526636775152281321009707664242318906430472180021776913502560309801501421930264069355041566414258910714621391463929266554126143091968882993433437321085285948498987501250387992001465007446984544692511760358074457173741278725230352761191513723433829944051335122427762189042591679611520968852015833664043800174615098454498323751502956558597892676722585611169014522095176939533749987292768539405835012021748981584941072816131236568365815015850751491770172631190885817244736036711514647715388699075001468328291814882050369889956223616778522871226422729225684142243360699631761967122099174841172024363303164397299084681212532918884293250687735122285967375266403455957662157546221703949322346669168681076987952004823498714181778784021531112740522994205210165874866434102499533207790489423081151907044849831026573066240950597498644174665532324179924014481710304103692059530102931676734641461741383163087631733641888666297263573698971765579781421681873521762527088974907388403213345605339354218301005211695620909984252013236029192816219280517631828948794898882532931150824975521041034927882293378749819760175319659080477158716777192908195858261582049401464747850695863657292935285372679920958597463949446441703355732646636601710039544313869704113884307616484691667319379377171561871795946609460786764475416796774007054786142115788548913558105920731447781137987595242494833104673260317363913978017177400961870078010086758194622444611667551273229005147886024657213352038880132452300733042816121257841384277070313437097837850298291634112249853183010814527259604575958378284563952231345704493393143804035578986039623400558699859841711432566965190973202833222425974243358172450942759076363671382670465009954483062424518043702024643916467341974688620497346455314442046239255689554559898845477521362850438712900535466300500497785807998891269474546437316065898140603127171384148444772107461950185145740489711569237740382326167005412417676803596467486171793075012754046005322271452730575827716078084385140312217412913537469669255172728166587923432778684476119886226720502913877982025470682281403452401760531806500680057274649311251783680212052408887872636854037025649545982995227179954428609711887687930603262269193510748640954293508231507089394227785663722241954777329927950877797368347547980890155677215364088939015108096643952764374424540901536892040325073551939127119639780933349497688625802240616470584591805161785536793962539384335981548371206463267946610029073264956093530294603574016194906415299301067869992282389101173422081027590831480704892094273289058902970744347179652182630385341901660103814829974077828048663455449202554049016366944723508103263245831668540720579491162846767314209704340822031222451424015108552805636939419580785970449428453287396929132819033303181814041287192354268468107539529165311083616378112377637922023312208753878629627915889890137678519523059310447301235041112802200428486997905894942638781697371561075523064356472930900082919678988145561444788704746939403139710092010207483568445714218721225328038314525148508359612439184734611947525036188720553626302005838875645265591354146769334930418975983372389693967864507615045913765042849212161914129451912483991046493668554663063274788088072393758842124120637022111377880048089889266927758990061348036520490179507343366187084886936272325670581550845670939245909868483756283427871489416120089524569449871890187180597025015199828518425819096584574583673405553525640026221016881461094817177659641798751112771978851979940743199871641932322464727876028404554271000065560460750486247414540037924471499779592023476886843408815859430871838822627020803489103320584144208715495601544664009546180166803201415863493420381055227932917245326091677480420559927000377542658814263677198418001098497631899542362180235898307338277977363389395152602354902742247070026434727931789371740063800572918531620877441597411192013457609329683255203027750541027950258351539747312491728324484448775115534284879846876200036714156819399875950937584484067799143981296731413020082709192230109020854438561348566510681084239025525485916046673127247234280189615099063335795696577388587873737849515489395685383158080804112906161012823064173228906057415530273206854774728006794067659437525173430080191289499076293079110245539754914837353614282655480681251059681679465054909148058606273225379181469393051563181896619559635302114756549394810845089139949747701605245033562724835015711782743182372342790576480642509581073363057322799920651556530850830891508795287663668454365752646967711495764201048145559636546550498489809189960895617745835250211358247218505526760741347402215466617929023123698721842270914342376732076979050419344687187360479275606829231927414299644746201405014976529666272237613140413161858909836947144562128929698901931392032305020016239744163560326501261584766431542213532909247518787990595647039266931075950065860948192702427395718192429567984178599428162536582777639923794398169288397543332820798027911024393718391032914580079824185315059410273221160839767185334764386805185050000040695722955878918403762794885997376567475756297600929540048136940042562589545392287545501278470972085969648199705713468076319075303814995504852967053873663141919782890303521424028420112096293251004035687155741889568128455732384837914750096643585812008580015861746065960496572644677786904831959356927939317856850939769994181629169975113566732896762242481000578804900618986595605685621762615391593291593182451016286754715465992792953194432265502386764265797280333640959431960388342273037514264672048386130223986624196830095478152134250234409985689050179040117844840472854716388814857120101357025270985244432825210337541929055254279016053740071913313731157249386189045521621741700185270621381750048761865979903156534054436461210484679254834828573567272266251609961683575631507875406223225813861551323479412817048634208188342921757413482207781242801352482952739956428814331673049728437829116548883895786781378743770672868379771791756600438001999638734382878496651174130262891996380101531780894903599897192464345003644452334138453573424266436780108567098535109902289035277795825229287880179705928142149761593501306545546291748431957465920307682555269085333017890616738826891277052351533574011895282101922971986213280264543218826280169288178771819920619547624590253906564342612117299015486501810914428427535573906901519661568718777073226926321309589469118516801572592972812810425532211655064073857021672937302569329697099511728828237256817883798066698558574613498491516310866034877775999292307768907620078868757942120377995406287080967873052622893903175599332219421596631397835089588846049167221511022820278312435839286312039643149415838780946077590657367860052732614568213268733100274077137649462270257265920532594497519903183084984290289490553277505777352478961384373538174581417442711846580383240337877397526668584881170715861548319345187369223683636925642050306181881862191939512709690645741211864498472392479457635790976759325726964757408806300390035803850343619430630995466400339413786593113372625029792945479724874158055602318967722076295975349010519215034005024072173219632520438004741465647101810996181113776078913004714112675830016003788271889979433826435352125113855114748318321211598073225489982847419743561377355200086065555309407817616514606931889199581639898533600473457136791253733737740438193626303045413103562452057450951874057329145338311831261516688118303780722527984761020147884595426675450842527974024772210672006515234777111723665011761088823569907006876576293335030522009724503442299787158835706787712485797538708126374486092536026513813746443204665381241256330021486264246766712768540840721235022386212842120536014445398668107119905829295625426402947901366305370489146036423345153098580189870450204395120833827333134783550378145147415460277815338830141679565894029812257889480641943782749733782324784881165920950523788078111274049572105262628100853183358913438027358181671697438078469402018017304112970954932336343112226191421717121615588602618118824592729639029659589637271726314155174979486453307211849491638165810574947821579651982796155903566983294536710538603206607416264446227379275995237430641421285822492643437328063452868205161374694301930098331623779021365805499693831573331682005768734199720862640458338993846280065602203744151225268014751591721683266122216153931906951482907845021331694611583106503237171274383056914050719130668153870751453434183991389233297502037913941183588774091273121448099561786694185200722493944070602555204159477725533422581547190602779826762019218563037858529698426730212753265383077399448481244160879132156323149020984792770473789355509159049210612827842823673463649305763051743619575087323226840866361465174699436371279065348260352325722973279973555860792071927054711969712476895090724081293898149920762394096745203860308288083989738188960151951793549685478375516259811961292191112438129986083793193974336853177841246966394637335603747947473230908723809806800616308574751070298455489948341771332617329414381708495093088746468556810747996579712668002529104191558995633999863697625020492630570030423663706282515823147199585405648545663478049660615636478735142278488022811409148881399268562725464191638950559442862349309154196463102945039795681791534339200532034788985669172256781073184783447151679881496461989457992178295483991304133387358896680532983195751552282985089455216502320883894898589736749403320219238037672709913208720365600430201189311914159563540145098785951872939692272251822156527945515198505939603371712167444682827889537515058903240809389872163991913344101802995607285073049438237486669549080218764888667235829498418420177281972943003061519301931239038916979587698536150594858908879864504029453460437516754996804729367288566432443562708331237220905240912845882574168115643134245560242702547508995166014984326444045419607789978623542772620929710303860024901256319738680528251386133735751088638525873014149535943185190921731778399817482222751241437854634595359431395366828281414377586689403431609778446333105507982508963136339158031677465054058867469964167994120679893099135932535778629990982017220687612809842585028175519422332608962125618999984886071102751905461494830422947538862985511467342621917405812049271306328262772771190400796198511800709123669394525290980781940950625361957637662890466660293448238509176923082045222909023111082024788064493859989378888770519200682890211011735344860372979406930946324143226251110276045837429849380185094509252919841409126355243916994742176127765568232285329315774810325100425091199925571772832277797513350152689570623566068109717800318802386002445580473182237887968891021507784753216657565835097594151280494795028764558231360044803805324720157755214653500769548267797508888663415105550266606706328969585369339293408915205552727036166568330941781947799183120164839070341312464867080566167155669393625081977979077746054098624259516284256142963701727475784197198694323658980787605584105067813427876122484300580102695716168362192853429153959930910228150966679861379328878427390044744509809251579532256653411548394347296906970188602245647245107697022495067984997012159980507833186688893252686873406259653627518180331874105320114744293628327563204794327946495756521160755650170477984122837942819006841235646515456943582273835550456126078730991377374508150625922012283747099931847869205537517521498669379660929735275301442640671620466828396854303684622352593824012561879504139428368462556011616375430608952821488289864993330168550548289546163798428097267636266395662607015430179486263937763880743398840368728783812331825281642459756972236040685068443217992840767648391519620821458884131017950644480416341317575854372107969989390772368250578657412238242361465900606805968363061880873641136557948551160760384762648693816524630051754472536917737513436244339737592958973792836851212660779148572389267771783641720216591568879451211525511932415563118428744748650953597377357768396987166968523245867281826712790736944159809877481196927961625408697012390437232699496800146289747342032279758742609382605561223325144117331265192674996890165560062314446334631093794411054543625802276750372458366622831458258557158282209402674667310170379372636051252900792356614747122788211453723365140502565483652974561585792875160377664458715675589088365662290473865256007133924932426459484668787474692033527338180015363987768356116152733660192951853212513137389333263784167232588358590667076901192846211903199603987997071041305779421595678132902618050730429003047914924352704920244298683822687292199108667388122579926695074563356729604446297839249963103674246108559884030641453403496160734200890014783603896221224348254815341081072428525799589149951099531550703295757965035347212232183075153571794820188588344449604399937734184765780492014697057651590590798653107196295314997355792770167240826782722736502789892184269978821873208905693082118051781069947214824688812262767323703709166083487874146443845999418861672594847316495098779949752014741126980425676144175870440580243278069828999752034387115311327772804826016123787380448328639683494227453302287028366402941313429247807776516731690926907385486138002555551722265914413847723248794161814290766020849879106730002697659009586725951356970834939860768055419998820829165516025311569224848081851940560687011764914173561446724477596685625149039822657040088206215529072775595836110513843869780916872978533779183179125244797605986996281917983554349565555541598617843533429240387435181398427631248685479977102151253956337000152946656361408843774556948863106760954060180794120416112618158261008008825745741442055395456492275369856445123460022506553336022894577445402456647129005729761800443647820872178645368225186633291543210902446275075156449500468606224037066479545816976339179764826042824328956416600560777580423547816679384690663421387961196286469413201463182234547263428660978415128110405134491966661951814734292638822618894167191176997407185780173530427991031114054203351704768665796977790870642755862800256355378152052403282873705958232960945871713778561224620850937356834644448085639118870615645116363462289916669713482833503127130761808133412438739001560236640931560031838178871128812354920397591912209502174548206468832008300822285559870997313261754829188781359710919940282721379614711061071645485402665678444976020615076393571936898066782549918102937463612841242696560681382470836733931670946970650467351721656021369896964910106431176609888265215946794711194734528421519457023538681564190816653068670305840093534187009935155495741069312675058802181481463422119053042449502488138061039932915087909137221280349268398017534170610362204246449068371059281102062782479254885747564513719940604850269749106236981538871632151893044810627171329900522400639878192691517893502496620458644862323821893171944711290370726326847695807062456393586046109127485998069176721498054658712424111252871867884691226009021257966037444358395414557104844643287919126607290681436291011312569179463912292196904683356662087019481375119624469767367070942827788100993292132643493271501070722123929275805379859528131364352336910061551357927760798712409351232064687202622562893030382338222717197852318582732472635037066323516008730770153101466015738827943968274542628350882466589874939652079052471585372175975663440474092681366274252592124453167738926947845099501341205717486803156027924250534837844689919669592604677325351768693894095487803618671046718360754488492217570272801634841443748773167798690171165438785056504576762029817812562833276224443545605879786911757165257082703244901521028585316804752146086069354137096860703620742197234859010030489047143585505960611642891073115368433221774710970749057725704572739380456287003932743085715278302575531025159867291760851536068053602556932514204746617304358660363801095862169247363061373169281831896115029792863621584933242123842688418306156360898424929450597060084426066320852318597756406166613884940394538534910316397931305366539780281616240156688722545214225418369406483719898610235762003050086220454768794503925662520164148320071573923369169005994293115131938917729870025070107901075283945978757891233987488051223498887009911781200987424784480385194606679873655821345616278868035961774465716810646446688262245709376303902156486715740900864847941692695582089629778629617117380762629245248733626794685384718560119275261244998760169348000938358548075461738362258295709468945667146407914124407105695838282378076055045093558213934554407090365610388907556458661151646427729733174812601807596650775230226253916230908761147511843535396650716193409399845034537307055707613104226701081969953366242582314105971762923178855346239747788007397943604579052023305346048737665168571961040423607165286086719725313839264637093404999137728322754730335825585146758445698663538950187115128525794700249933113342275448101031329985877939190342219140318806767680754160075249858425412472692121620563829702726905709554339524192856744567405493414971203358191224830381164779008215030437801302681430567386050012768521961188059845450170623574059896015114019357603198008440409701438905504470009863737987190312368356221660264013629732774254342468822302025659335678183647834946112163387008197103745830491019197212797996484425467430826678836926542016301931831338440820911075521970228540864827505461210515187307664853588859812177360065788267897484636239619853207287060566981254708611012301221327720218633244248548719643595162474296883264586734737170953690459789836927285000091425512673726068797274726404977442821522617880953223410016778308361696244131092143919468727047947889788878453009409272400391147404558107665851831389842345433346550836783249528256514343418392835453322299969972616390375810892733698691909031698822744597224239888161983308566533091963045600380055167956740270708578350719853180013157639990680300393738936750747444932225980259075060022218034451509610989370038128018186442226278989091546436105984075724986450361757251016821301548734724397045015577066240684749302274910387762542785097545461491524546020042178400639691015535852789440357158054927212358512835646960379290161829313852178619051606825821064780175923020577648750348336169384727359482948413288244735735924718520560053098071338906432306284968648892066871845558863590255654505523155510849426053310823939208925614941863388910212031949052665408055431089270672988249446722570421861272564006466293857924468598748250220284932360665908296806935984676631982980564075991628840178215619055646330991651664233902101630419026161260559256825882258393870179727672174221749861353646725692217721320994976621491290555865985313251176390218005713067815872547945524692969089452802648725163332389411289636266968581032035923880233313321147199569550688370392151833082459216583502339804292936531638469370037107258932269057813019397208933228745978485312146726119438887618952271639741821399922599587660965745659358195590928454086233638221435275087619725225340895727758994008032553758810583840887871211812614466847619420170643535130275199328974968750219955195368045690374148551389928369863018181868740937362912665704130043825303234756432309637409251063317516115023980793572755479075310832940060068272121673738304874579255779696060614550960725757548400439284700328025654750476717661946205077623359285238716408148074169414086060380326354555295044098215364623833768447141416326073803195132152963883769424715289116574549015411655137112437645992096279267147351204865477961144807392360543690841314994378315781019107452288396724143451640258766054530559078702281012692687026213723606477702300573712742481510668052058288508858823014395986437219186224740476900785726212371127328661958117499749275872104289221431300167123684939129620846304538459426266009649531566089293008224413056386602218414282152655481987711939874672170020395377310191313272467449181832379163178178743167995386628257752853954994944071916310399054420806893835630985731065764090158549627979312307150773949889212549871212484995996165135741718877203677939027412658525292485401629874406324777461280526093843002523734361740391182811099388000148088916276672789389205253545154411143122912950712003804438784484415625981989253604707074266677538883030605152131120145979596706725104178053053066572729158246848312675058846222793676632007185388622382265793945240438169764249771622786790876429052155963814910441557460169663111175145612005093670533072904547857661874922707324790892884903361811976738057273891444475834175514515599530530571567682006408248971099344235904463735261395113389026399318182455963126849518607516747861215979802274773944230712817679945457918823606295060407568249138441230011762731643095566006401364381057841616249633850169788818030869942060684705327046514291048725928298344632013804935343106444749196221986060124442647509851404695186166679718077152449769151716087403662141478557787003469636744419195198542209970191174323058564823785438888167996131200236676461779286145148674774643057917497587237533791696338995398904683939258676856335391736692481299240098069810157078385073006627465458400424160110724096646749747924832432135646714875137122082272475564658221380526285124156005495101374951048337312776529587167698055040733203764993524241217466578351698959353636694625962028196292026232581112723757576001612519689446775221776595604318436519691154924126756854209230697840733735483140109178233386234862521378632459523684435863908135864289384544093323326624840023601900255689159952028769631234544018366245652827993487970776882900121633416214969667820389378054184431761215047792504144664226563103045064256319867221990615487254397871395344408174017070498128268211949676600647046074696058264775901074639608339764672210617634767266998521425755831340098457501244343463374161005635827355753588451538859077684837803828627756855960909363609964653668391985041850609329721877579619698555718592599669417872542424079935116596865470446818972507485773343315085050600694020897843690637402730317168810614404222094272928778897468400659763831409945554721928773341931211527027491264242858072661491013997612052766367937290573022358991144157104445565717535898135025938297655563106462513807412864643809012478556957735783448201368695142626113252350508020202908594316849435793945259437550348826025710894940740923868944375166926533101033657694001044280705867019296017996951959296237479805146984153057796737388093317985955481486827863694044242523959155540250086151599534686796918074522380271580399058789628115333986859255395792547480562901255804976551631603185737938250349891155610675495033612345361653402231403310886257275660691676255262185067231948892800988154028406430176016025304559942727957313392184103434150725328328652344432964229085914205097340597214875217309570561548281755989841707076690518224842963810962349497255148059842856724218705916952480936763460355026875037749961036327674575110046613650993165707774453409357262968136600370299385318420704985562206956194366227088602591153728917283878814309924814488214863650674696466758871464884517066189915143970463284089712159145726499734056321602469836088730228560617446202831261179958377712665316162216283105522584526480170959345560151009531064806014041634803821462005997557110986699207367542958108465609666755665268010329264309363311316168354860034886454581280772477849290149601278550982201231403119447677889499916917766240640324174573221324895660773875908340494376111348973195575856905069216855277927738098517554327424464208461512183631766809681150828878088252968792489268569529506234717568951188418709815517546941862636819677992542442687119214937406904163635415695743756918433917477533906706434929949553089756056303395533945522974687753598601111562444631124994534528663988750248733725487901393120979107974552628212033573150253001332144897788435022873486213814310491665120498358751601070646559522717586964601560302664648946364263204707257756677917746899831615902678013588331191956811662648627587514109995123527144265193837770488786730751896565472502051606411230587381125682704992187648834203383048101404035566799594225852873506700396926921179235513730205558248171885630647655070390368123054007635472281960757593343073448008929584118585474441339705445041376433513488273012281116441231484858758106646994801406846361129540073060895786940864316529287341905714445682665682453915887977403260130226700269295768002077607904201984230717411741811286842459210701145337256471420773291048916448663456850305974633949125650611932291309068885092926863915932291911584258730377582727510285456791079157178833187437898790392086523107301049291345258047875330179174268052522058002582508848322465470762735270551422033002574400366955085506519824618398650034347986360653119658998154225601986395269883576346555510330278769923542098740767003566974516108604533607297302911444282917826124789713049609059975463241108684075590440411173210951429511547869113750879842081393777365555030792393901829037932456410923509839139177508535441194569589312512593816527326158614846848697735902317600730963846615318730256375913580598763532951794350619441587370159715289391592880798389191809634299646696807583605534456520787858638222074306023897844138640842341680977443995146228064736087426869603007873079017372895389656444626285887572621907341686584107479009104798827224117785223896656073773368862373998404264364834063995428085471954699505110431906928317976303713499039402193007704303294044826826501434398675752975266833360294302232206474248002311146486295259054178087295544367161774638054154207685315451773925545742920160016352683356385481573616844961788311023023298218818702125598001635953106344466442404533658155974137627734504036376800421951905106772409745405632713065984771950246766181004304687558928991104961588207737507085321419493976346021339405123803265020696126673614397650103304496343542861533944737945361607215820326626104850403172604466571891808111300506098751600607665370021460767286989629519094896323300939344414795791943239576995941537865503402798411174662847911198133425133192993359474400256079149240283276558659760206985727443252945399864968017461018956624955284465089698509231261317690290063469803587766047928795956621921816088547800911623872988367149109931117343700388257178417278568674796369585935192932730118921878780684368502024955656946150140950751913654693903168060956895750590122387779491389219166858916165879500240209559094229437690616494875891868135660820783311771313438063644112035440581618841254914771601642161250008426769074470445473246170347823980487165759466967784785675031805619247163468001182826767553629607435857156749542117720900008760086981586726288838840870704505435144728371779975692994743613991621235809657571617108579448809454794236246462075417243965973001039262878790201578272818565656477091513035430081157278342991091509359816429701571112493303338073311109750029720994758729158251140192030930670386893962359558446654338892926757897968013966971552059514866035392159047119969516678596311211607281112036095656815256819070553830287372680620085477656248516035741547459995125466806331548818986718409180155408162980249522367489060522899385659823868250832222172593270953448210396279931602736206716731038694863490280531734334398437098602135625622823904085194105692557206142750922935738472139477365458221513429203401991507373634652856603185078003624579251391632663336896843788669824476412746348577772791961431094699980606902806401830148192410393024038282260589280992659483963374886073273261975960101459514203910370188348789094843150590278127173288761189633534851123952718267452336935982047021115128986419432143502990352976174318714551638141565824725432345941899213923363212701028257155147375069921549222027808105409251064111251283294120613261880885188148395796728489252548745953865253104375222809946224626135131453748095571505852676805014425128607006929748192723883225822532071491636750661422653120382527356134517812267881226515381709389977610133040594715100346519398007556509593118603337964162238758928370305014953721609346391901427041306483111227027329771229059094034014442874442046207229471406600370523615784880273097049361063305558659976602553145021184004805420103096603061049028398666883372025759699717290385804181590382713779304661924847351302500199537977407312812751875489969542229780687509504768672333692909229516238355354251748796049245904777274355914626478167481050529464996487341779548116320376824554045245505832058391885752097483194362285848356884755204735615712465370987646538417538155389587452377019135390977510177639111630418336758269248295727249273974338776142650945712865760639807472279928778733307146622898142267746472083595653813176481342924436732963335049641311772990340141473044493295276997564717002233194607849036491368006113046781003315672320868139706109296346699515297932023643741320248135396032705684830649681834032649413931072846238010015334736352509064265953276945789575417291297144331161562253226617636653072422790412336792568961300607388379016056419491740767035834562888341613758483710243992875085634966428016403069804930772456462542306258800694697607708635778911547794460770509814379844974496700473169502174398641044696137304617084558909094030486610674210529351098774197057131201044982156077242563398777750125107405428872911794501748092336773335988934900853309475347183791198068237701018164701914540973235195872523464300517477541521393496371719464716120942573027086616189704012140067533043243029855570368995945262490055072144702103885514085893318888982034289018568716191012214707552899827133734176919709967713568637950248780279988973182254408700810630328049619913769847267402303158790403625388327008052955808523359830370002731656915580866616105150517950279375234880167511627794267806020259699222681692539730608723461413651157766713277209767666732822526674574109391509401570854025353582214268600777182760021090142096809507518693844780574436349179276413726913576837327263702607890935973990539507935520634874080048801480859225118699042435774413260346588545006784435925754626179771673003975187944071124724775116844625216259108490687934204798892825558229565274520934235112038729365128644804087304265475213405850902502849011349600209137334963184833662353900451399037625353741149784792711630303414290364039154653154019556107443926292943148180647076055194903796941681787699555689403863890652686213364337256719656633239944102676601405973669746472186472786176404078691405496793886600432473316951760759174267852786436058920902065696090313968561195487653709892393946408123137213995032985668456786374059263928388787977521187188325507356309422756241614798430372074361574015102949478540474694651909563675424889915870383135065889934233800678213972904727538172585019976595268307521934220769821621210587679639981478512657871433466266403803099106964848373932504342229687102423993047501505052633114962289273998142662858631948878294678815799063339155886965856653786847796977804039231257436543905607149896627145966146174020748820135944092046397680346354844431112626332600614757090710802789358219027683026878572670946770997097826961790636831368680393466515291974901145355948854917515095200363037316295183680364744880832573096956373721558157731785827962369983928336530634758089808316422048678907841679670825928397472512504100136055048785135365451637886466167591344983778605486772279197780568061029168244483859686431420803545680281527021849877151940870048896304317707759079616308597629717216695985537178878197788819661899393348308880668942245739179064221605644794710919702567516554625841329922496433991739573937060982465490024149260453346031589306357323243312982020372594769874860153064300316211123778347994701406738777939115969001820212071554050836023234032132129792567733326435923409860954093908344737162060066628719634627445450801411326141020928962222279192112365525971844419336398442305703377155691617357496331131026013825060358473116913378189894788327864925888674560954650207296657123635931772063167685770246546624805556097026397990610170481017969906964177038431615486585628490051421696018269999282652566722658834276820713091282729616175413289268434064787539925879793025946568243331631413607500515865128953713676661348755221561959288846235545976628290584249802106248319268918224912283781169002352156010725299744240631259244445831377300723695904270142640603683412865000500965208087548457889786173204988821096096370143920369694776302403786282896558388781628622375721481249294987255582705757342619512738147525918582289312421382645529923122914142102100085740739599798023433027148555316442907143848493882069563994253320213296661042876805487182037439515422608930796846311287820967517879722816187047850054476027411112795367370298767224013483382532321028037144086573547869213749039357840239066656911502687011675759165241999493037833048846841692440698854767036420512289235826273860421226363271439734684632399980773346947195275478739837100630421258909457669434695672201541093943411939217726767198774234774041091415316264182602367392301860908313640852734337985463271424521848083131121964499399768307055356327226768429810952707319639650726498490417148819808817887657912905808389744426010933567454787555085902723050741541585059969232136706457593749481555926367801812045308537691905659652489417883078295725063841219012842050703969599869239561132105143258904915550162420658652800729297094083359974118973518955289806370673740445523019572999471244617506009746449584505313312217630404617982435353835397329248003539807370021797755326601100422835078750215697256041941635125124793668496084774605979161745493086332269808978573743666184094785301999740086967327979029801606987402679248934783157473419961050679835685206488507674539518107929669269078458336605273736905985333502637953626191276278042914401774658302667080392941099960120513196257678049878614908608679567703449331677534173805356086312412150893800743589908832530876152258527888196716891599291134329577914798847941448498653417445104866756611385217755884929813077128648567716602847833871368498768632020448936810623371947860361524607676247588895506682584024838840965513614369362468937721518403737955418171207092381094231952074551489668888128900497197333239114779692491878103242651741878436871006961250160030614077263316806185105501671428535360375687142188298862233919669761206824192628499063695078436471212617553714584987660539959224616602569874043744687757702715505199884923019001264129367182875556366284039281794663910687324375364836179636103435388023764613028058539780938914327573575462567378727077949305459335604385939795351623689028069165137022928928282243081132395586800212902315760948632196093667027878693920441649557494542186884384750231994232666135236558155428150792611047664021642682368385352153532370175916130753998770159252547834903908126567838032209498507195971318995728431278649099192374228432144725450959322817288244079776810979699267644599083013045043950052622409729396182247049240204090895359558135087828158779903869410333289014087036356298687648295822287622360329854919829706442071306790556106087339798952042449340106760771296622864181690190889477277840744503814438463093198766706306434075709542121819800694036320704916341820012404390613008922863231891973304480054425620661212097778680905380442653393294755856240148431965818975617134953308084790058863334880127464293658391565907167190391880228531409706946934570016439745304064460082429045670751070515272065850941069309768337943821961118025413051903984886706435976612651942490539013223715953756552111268243098471122215161599663180436885947187301983965910251300730690565106855135283891876311667450334684068756321095754177782047390081223404438322981338371116581176574356241959603037503602718748549381078945290808421017669849238476560018154370942219912907560931453179022789541556478441154084296458921114988691549102788598307354134498315128493703042014779666762987854975567142575375653566115870790543527626971757031075696296019893667864071845945965171210193893789589781956821686690909799940238027446015115543926324563309076768491137095666509038635000137862135804256780563852901338819996460692770781666824950559110691257165644443646380748102489411898225982195741836202953690890473559414291837986574217673772948247183194948088198800400367844969715801387477940812948349670220776510776153103323582253953613729149308229332114955122974290073925583035910665898907871721951375422681715121609512759206359718858232066338326339538916846374046471777258859196151214123023736174868958833550204475376825476709237912678042099690529909637312254012346200337203308637214139977759562624456351616888603054078470718706532563754650359256351928561179787867588237669102906623380426851874840422877883628740890019001653230586723888143155988307401981180020473085839744033770237032674832181373155552573247896940129559032186048426332253571083464315646862745460586315780511521645265232615954429381154382795891356280624779135527654486424759396567707661391824168172672068593785994840661303196019932581841536641283012786990726013842372020606282536937373420561908764503755255225952171942503356989199893189885291490947563985147544196265087587243191588992130612692751127743683532452601087893429093098818554845992930455545633676027028533421254248721620383741164539688796807579695149969352075907766865830101230948029704077856609858716155725378969662186657614369803459719975039251799573092465428728486257574973887211280668031598565928229416065958341355376017780301898552741550203757289979770048775169937544470112264338142185988305543798746960567572697004831211797456733447622090155254311216475843158165048414677200696687699373185228368162260138696296377229858595909249575112055334228439731434897095206426828429811455210398195253753163866856249392095012059026507187070018755005068739826657692646197453055379675207501417838375694021540497544936947991182914186239975012717404530486164683476728342772427596260341821678712475480777812067656140091095788076293746241222153297951465947662611868389330091679568776310898133922838570447746057354635141620276890685171619202490166085065047734730360501137443887147136626694960317488321963249919690685846953147955230044124805872016333910183312241870334866776339569343222236383887850998722891028881473260767608236269908744074111395370382534648737595879039949704675554517238241672734760105503450679959682974634477707391617089600974817000445708578044779472248369462091848810363978893685509124853265996085432297569186599164573309016806855984137310098155311554788112334178802046546302610208109633979516131074168672599550299502351517891306693918058344927812438459559673810433681519844118070986702974306572763820355110048536774932600809052745985450775687742631116002743008276173336888507862909802957574299887266937738617217383082297167036563722489661380143543198219434948188083994223649929402272271161358894240841840568760999297807100489997713606739156510317036434719489831102660623530715400170849130612305336543032409016866043033126830095545522290467102110036738895779596086474662906139021326430221549925907265107883643015243258907617387246005049376653262373278928087560419605490758362913686126580592109724478621745761224998476829791434609412512001478636648551904271311310643169285158745952979881428367437881486496689044919512384133537073556817765781606079194673437441353220983220503000099368652157810453622834521637525825174423425225802943244929753755493869515811598117059204230122015474475721914127454195475321916242093125341446154774967305726029026835620744996591738776242011773999525217528283312494119031788861424711623454588041824622778379953569107254396841799217982186719190684030433490485615868052064312151340142414675477994351196852990742481539631563865773191431575342381093764592331044608595370317959162492564582775334157470012599538670418898352243181755351890584046795696209144544759117606447688223050522728296580708043919676765732727550483050238293663490167225830448567477204188234589131551366168991286845384334577364048434802800881779643439847963486044401621290018382642845651330629230082766256602509457343276926136871777322991111215830411713264312186972132891962737156953506177405880207180808750813160914024322025705140162459944083483100492039799399763124747363794666390937747479618647938620425623791732655289985964413655474335155568187415197173663678868288867760944286873982426059539245787448429849579240785204014852739802633900484094800638566454293923902887209266728343014994346187115048105942247044965793016560962181036313973169894184376837968585305033384631215080942937555109675367613808152137980160502707055949706427691703707842371047575579868790741589498151754593806892197431407760746453864812783002647677389723212786508558846807089737164704333415093211459304066667656584515616015278638269421515068849715642670202977502654195566294330011579557436326528764994562704243502900500413128280742794921046274534595830577250507430672238401341432904480849676164449095125859603259401179569443880121323385496606236853515797468013486343889995946253593202317065566935049241293007746951308055640887314368528821430978937450741690816833855693198867532017997640176241841439290490660240406801998579775184724228965058883961214842323118579280896450178848243760520700295246776379294815111924438188515876919414481653757005891464498972710945244564513921887678025126480025095877845871020762403509087623099135146762481992903304291782178228105832172310637879516091937735268184198978067048894828653929274209986847081142502574988522002836881721003600734405775507892197766317235179149309300884305336480174777950173222575115892756691789355310669008266423596613202073217760276986025695685522576684801709516621360671879638677586256157229018369642096919776566120819680630157702148291304262239108646020302670606338426792616733881532247670037385082407579272755490048891776013780833541558484205144508112235235050733851847077438682231510741775568709295306662166541061512332821890550156575169411769582167461959779835879606788808989763961235195870800471088187519824933466585056852642466319627777301676410833316323324002256195375909267805350853449532002227774820018716094081352925059688797008212721013836811301300048694597980424291890844500300611401555295049837097942656426550474068105306175369614710304151579194855906007210881790931932473279108201893671174854704289724036397567426028183491398792095700946814048798314006480077596791722582616313952436150568860932472956230255799401089078116680731991430123797418261621279174213896510159822347677443523208489440056389517110813369339248466881735127660245779367768765432122882849606217395794047417584773701721120502486457837524021876561100514018724842945508945796476843272727638977562267291094684449056536349290057426415402208437524036893876543094141331612404984754682337974544721292253009330622552471302097484193623917261098474782126497028186100517078880311819828464465088076285095703640478107298442041568873315446270297469850348417717001004529414091170099416826278232047272398472942502062686966756178518831141425931151193690259329731759109295716651331557250011746951989756835130621151755337746063523381169325602217352317822950411148081798239507832351108852093651901067343151081064780118986700718091615535639399804581760330943183495855487340728348439093629782112939106047472962360091694649183465654809338541512631020277804609037663705065055225761940870411447347537614347183323573550019408593483170468088803152702151714437514783015349782326651183530119987281538638737144102451450848209544158568889898616464916203089161655427537143382273226886077322904990891377639243616294860163973368489636502728186529067431439922179026722774529773777572568353765516297449686582807700133614018957407982171725249887559507060225361241789524437115536761482502346723363440802880753873149191207054990060336646948243766634565486874298728424642329610108293346468371327857812899339191238642452753436268062337500529300379647381089402545717925190190157620798190493573670270709773653260080031996946765483248697932080730978797223543899847854611592151013589904748610944205540098835052749482853399944897882365034735922820755927471044000340280510456548774884774447871617569979949030016702505547382383191033701472049190279210614132704974190888122167578560391213178339275201093957640039403708122605987574710666579241402926361415550114567270985992553535299411010998100605135763235548932901378899277463782063943792817827566522183668075281805901932685048769966879452105764314734593146484867723590423168946599799915076180792447091704350654536855954774056890619616074489294181885047936844016980320078662479791406507696039543098734988365529368228239374833074871245057957384089813687744161587561211521462236292980054968058779606925754483294975176509097493706597909388266279285024783766786397393837760020720632515413608149421459037171042470019710862345083112714066988803838625824050879002701488270723208657239514092663610827741426712931685944297730045072434201938384086656049394293243836979048486209036413538757576523981123274551778199269667035465636081812401608535640439651771334691882769845173698279959993510253614650136026138757521580835244524472709462283474654135430358938495106108038348025898384456906296219576725522697746638610401602397786183735809170427624050714134914546005545188592818220466478575560285262504336794785828993830491078880219066025127549203228689853773996790984576979290162641473349143917343287076763369802176035434645363474931695269299391137854000726025287760206189236395341257052163203874565189619623356385781410358559664824705403361809144737048898154591685044326238068122433631394799084405372946263859158617512219067938911183199330807105744760728979628988223429234445851723740023692952747541589106836573018666924867528398992628888457905087542880561045187920002454796444692176593806223173838066846210672886384576162954195909190719068622904636261616161382592241012898449167815858192477722270889763069593265499686600772122090628776760119710007446639568801634695601271335923393009820196865657909295906431016537781430964659476154248449684627880466893003120922686658979757101834910875393166065985199035918400702699797839255570787976024423381789553631453296444297654301562689324936095120975760149552954810621425627324191791779363164149409472873539536546348023474802625899987051578336361588371370290609691900480106912100066381384431615741139950014069045100458581985955227207224596270470583408185246721151016028608018245344110730361585780383336280578158858274880933418960906988829020677461138769029643643572190722648297998153323337942158530896812719764524034779450315324582772595881169417256849085516754904191362936904898999355961271379512308599733442958432327290648896356203763690178949699665810225148544793323270583506566170020089072657233730298821372571787885816063997769780376526075705831097494631098394379101165180801675557274047923425012329053699305606343366520709809415419003916084280871855552104011647183937729220360372168900570392213879889602105889283893124054888260516928052500759611484713830667081059771756651122251433577992004685999655870179072797621623788167323399636213544607294008226760396789472845121510023886509500758909132281537840990016861008886071180712608439116239237503235536949369555760882570272045088815772138127682760625341978718355786476302379509086618340198797879776167077778543703465557079844202278160817145409236990078566847518925655654393201892548695316666857065737109091114851199626440096402464442546332241498704093394302714733334970468167933945051147238684081477201594309584171234997689556434571483199042577320794564582591073531957668049603862502311291441314446272365914771371490665715105612192643116683060878188552184290151981420423308532048219245763672581792269069828612435767272800208342097674833791076868196451487364412843632118250640590643216684772891924584376453271097622415423871383740609617674031316152920986736954977161783558970906188457284934076883053472800573540780674192351200198478492444669885695970104311500480747334935724401065777796502812518659496567782422080103685527010512099177435339828049121115567334994236279964933853475319902774762666188513333764222153310063182973127206938958092013995619590284350822481084932150559120156949705088554612416345798891369397899196229067127069666841011418340942762025885819631772006694211095755091731163307697800228710888784615344921406865766032733050890167123719387335464230108907134000680498466269042585868568677903871899228013101784921828801880242629094729612439395008190356940470532531751307120995312383624993255827997841444789310503252580675317886679356487920645847012023756309188731051127374983548536110663347481226350526973135189692526052795712831501908327284373453453648077514021783164718857357510867803699578273029946676801525031827512907342422683153716376932490141609645990345057335848946606197360507065209034457036570828390487090359970804555882134332636077752190475524428491929256532149395768219791398311690918577324213081041848841761785509053330715353896150056347098843863151076793249298309755019685125108234633150405556235489586447667820875168288431498401768382036243526999162964016891741492460508848832152843469743476995005772965511328670943975278005798833835891495655467099993714134332262377173873862232428646795515456066394666995807339836914354482170564195488358949373320417310506955298839767953191607933191149274304162206270630876120618653615888021974914798191529299802303553200698135383491128720804008628072951269446274015520577532948669675712395535241727211582008141219003259096387970797891705440679670677865832111006583811275765143128993015946186761791906533129126903503874759671435438977435416743191034040966950747079518633160191279998764984007675850641457377880178521019131604773812537520956704471860347211039277237284178428533605933786727652588565952778135221912279005611711195405561213429207860788692289077052485138345917421209118223567305488451711286134540476196819351910925252487883746662274632587693120461639909342591908297961591161322514842754676857543496407446109199754840615045540358820104486804220541539628059355961941463016427984176033976765337892468218857875229627877617760856059824261283096745784836218829335562041294623856341703653112217650406224356628500827084741587991117829160895291678814586994042776065448033905591822881614184149506893851639801633644310287689878560171835065466043150187737715649719276586061194367420887082103130365517748570215082169171472302645126488596018644775296755221138089964570966123355548829820064196666857606926840109820162202430507108527206148975871515031847880283706403715478428745284935717354772259552423925081773524652256110423351849451380341677436527609943842119709217629445656445960348520821663718035110455685777214828040794433690420016701294880204245007148648707633176924003101067055487502427319529804269825789558031705978152362209263977465728729656271681604204747399194151293274664789128625819323794914739702826842659044098640150776251648225534384457373084704063978482070823416573499934217448449722125406228271742576542384760205511909356484285353149850020899950407726614509519021677289529458579720796525195007726799404210028667136427295555044275230843867998127106986697069293486734363238171032544505265626401455038680849611917698569372638824066777788851034378051659502132306584863176206257149156841684199822595803827565520585396721666214001972169179937706320890331560118420902199715750504235850281559175227806984054768450144812623752871691578281399113897758476168555189970332830803961156196395154738868644872860349242404190523860150745737330296445309228016442027969456991599081246012574530978640320640319393387826511484507461752530048129321324501330925544407579120662442572600490009915084264867836762879651121226252120578528242129229523529198773730107829578711480307287416528484370494618859950569861406036597905514018652472976746822501706041064687831661256018292655067187895436106515383115032983650641593983303020432081710276393903715467622522300775444491942075769995254217105628378833660639026956745564559902538522194690338393862344105139427708648537601426600009824418057869686633521399846669164224703074538597429840401523989898812222738085179607056294328920368421848413894811885306686705862693094101754802166955577481177463993456378115572630349172199524429383899468640951963105205791898099609033976629652246379553365721697260923749813813231725482389189572575167777546586988889863925256004988048034291384806020026699888914351392905077756671507510397864996166855986019952993858575703664209300824291705300378637885549983128980677363431722354140367303475080738473402085229804308533889256300867996954601611097462149635643346710007624707221605485919266168230374415685335920775026008558805236777643285660019385650966370079541052760707054006880084669744581106788175154240105658750251735987952812217994863154812299494292327281951551489162136690080682614236393085565877598591967755692782584341326501082248662577409919445526228231049021954046030156121348705916657836092453769846168901870160578984323677979948665581130893866134098020891360669901841319961477924554118106086369787293736782089788318434859737895331942906545871855619912325201728772832765241434789980702911383640003747413472165408006283377415847350620535503960973203347824112968306678160996478710507642055503205870582704670238958189753885916456800678818426767384850664191432238173149140535260880151916278054144139380869836255850977544838284837967756703004302743011322098381595060308523055389130057993000673237170217608849014147365916712344648761188344126190428466708147447797562543072643057218507779322874422934577483421933463345791879652345916934099845867988476272492872874559362331017146893783523082287700920686514119285735133893759900539947393817818742807058808950286563432485106217945972703723406504890405021224653286215145284664336864359790847817514832679364823331926114728299046862032820212915552393845332648006518558977119608526008218547604028237528479058140204860104790356867873546133250460374290327617431194244492004504000101122765551516290721194153337725158377771017707778432562848059944534420661494960299244753601021671421824333632526610251260356172932699659314241029943953567070834779364771555486274803710361932930223882006975807084956816931637488786809631663500714477639633941061627480249832601809100539026074493019704589034032046560074428148593887863326065071795665249698186325102815626353804650199788851984388179668907675929720730747376133479313772884538916410154787435877501081747838984614344583554893894441321004815476426814699701686047782489737078060435386467743365058815026276438984579141215832943843337718500452384028288553538759929744333114205995951890251540622728488563087490852753812604686579432338489731971527404381063386164393394303213840750491990907345403583697700776245363579169096268355257259397470231546894379474549709683692603744433875876599935176169002478445280024303988426884948555494143586618667267020939291366413544321669804461605996340545390678486060476349132283842687419435292293055754607591738661431819080196874178274289172441267680680275009848988159288525442134930745250422716617674137240911654941518904950359945860815361830882416817127931051474135710525101206084202637124210348763072536479937465551858909330955540286647790832374533618616903498545564464364600751930882679712658768170707500171674712739676138069203094025240179100832739143505888999274353868008525802167946023765203044789320947636883460585025342118579094727731173110147769141962061870582406225967429754184621878917113936395578294109040109960519234590002626926232451359910098062704188149432861300207861278231124962592398722893079298077876477986794128645748440620818540250053439958180526609128248388618689810336160266915929918919389730558949404216855520839462523061321199426010628435955499991940858896557652696151896139451213621731831374421857117002296260006214291103347935826959491198780973275245868680367441262850489569221206261442287106525055203245539877409656476299827378251427396635180389331881048268629751534334960948106517357070605918631899376672053740667602674735987082219167394279423397670075614328617152073622857543663610893197473985908720622649261622075214570186532198551821283701118472980768619335949772170840146465045426322752889035106353576323401278057279796680883832290696859462926284679357727866018101105632042259761385812171861426159304155218725975693603345780681400999950517432080808175402751482840754165091172448557616916491656681795399617630926543233118238889464386880605918426570691939109664621282090089754999828980364496751390604225701993560152721607705278934421565028522940019583040431452934011439261986582242991750737334565559379719390198903826150654895577841226038252838211917711616633074839497840629127769280068035249132055763097892283511771041903955277782441424719269969998810754646086688379872485792954077037834333041875557421238078270565271302515603953788319040260298101714398848248034121285864406082870327456119038219809994610047201945936958745697301287370259305093706198148607694343453383698717315834100708165086461336506643595168926165790239904870394932480054750288315768674586395675787696810985035126585126139556264736034439861494685782586059114581722296365642651148662216274979558993111447250459430555258322268998888782630236405202443212407046327386131823154282699997823405016742641302765977043226250494574995865508368625227498623881493724903918300643210552551168932742618284770951610230797333569952886130251864343566329755335628230596562864374756214035805856495354025388766848375884855929089603199492761871500828662592524760036311014768824188270791944831608183549223856825451778020401554694903208098882384135667037624197055867066482206675025848294079779763631559139363055301311199977948895551421273649794356399381044192298679091003551007947023317063666677820923713320509005419150506511824998452936814999818963768490036448524356519217856899621560706071922825234867070020432586861140822221718858483742801620289300617990940558072095981705059517801690984371338475946107815925372481287111073097712122822435001161236877701184687484975135013064517034419884943283760180011830641511511756014594266718357541200587995922672617542924510088823854847827492559498595830746561399855245085344288863579340411265509570867210136837502244580416453016973184096318981163007016595946467907636225519355499910108886943399630151901679478675808271333648920505612622321133924752003252653139963161591612098833680875088946615239009109321027513226323794087788364718523908128400750113760859079304417162782478961160908151849184793325506351389579476768146561888541289363274827288363503868749776815244867809090395163199245560493228426210538029644145134307562668731983478275733096653589077788181884673678438718053089925546180049627199688069885441543505066479667694761726795754684121354318007025019941557101417297144106873459505968526924279349116403924573942828091739288238754938915803635815255606409735827527930769688446831176932883791199272636270041496496244731628758278692399453264049188889427278686395502372973071162735261607107602949355802028418508095178547806202245619147484141688573429397649497187693958303087653440873673717238725674681257217762893226173855235892672847697387646652689623254438915039504376226414782382977261531375241034761807880941127942367089098067341634007171481182516019052528289222977211388201926497393695481451293518087363865426689422318107035518468074347155098620225247069173418916609933513542401520240119264514443266988369571969885094514672351720099334112715020780036294529662990306318184938750267557784276647200633551877807006796931800134627266970471606675940351926099296502354821030352042969892654580079533370029825441016417014178039463652085161976310223486854922761963696457872326804776389849676768901105267809281385225051302872980057652046358048980590177085966059706353034508714621137176196066483392993817664830466551781572274568918580622401613423315454199641006838789849849062002339344033484907118530013560416019094583942059795986882892661063628830500726973635630521556352537675022819629629273567127970833160346649512356087881665712602962072330933657945181355320229138232768112994159981929157538854128815641866876140311392443328902479855332571228386566000193411471272850901457949674164780903392987321636363558655861030670337805020328754783154245629469140652440790461814110041449016938676624719459882839029160290644769386438427150085200951329519685220538610697996828645564024732147403115925959166335169572058583438302265008059390858867323967350260345624911264742687771435939320116860397326994959231539436612811956563942304496414884157685739743095030137685772686008206329583717097142730279855253509225580309193252441209827786665339405177633333144193776230855229849235151752889938820855234573165382728047387111134115462763164536742396481072007423449029187303188468839616756859454887140137027246463397947966657609754961663419946494324011840000730229083147078519389945442819373268910028530462686114345235872311954595038219967869847042057212799677346406625251921537596476654264069834316947916447653607225251001016409110193074641168866415585751152925283643944010005130697373456296277920888836450999525978276496142045417701920643566691204444213534813000655293884339381909492178548863595093539209006866672740902139795645798018531418475342428609282187824719634459098605465554702535953669405463630631046846372126068857588521852875806777273844434091304401690086312512442524177346763664816997843665841521149159590058504466512453608542611916139925379324277443692844793466517593073621218385046849579240373076299755531179022687182004539656601647377372141989229039800176359168080831332785922591552350460114120180600260919117567983581585257520471947662097725922854448755526732308894424433512062496653302284353567100556975038647150628654676873054139933120575868447487827273993502078665512033327358022736602004859583628366964330114211247297976433124820865900176210742635824962461438460828193568743629802489605220320521421253639661379182399306474115016882421790067624542120024032266029806908552498276752236985594960466243266270846738933882473495957995610633883536999971951531771073949296832584805328667039463871879038358641693441796625783541069717944986856272518128682784110629194503147766875604388877235286166994066966162133483176943355112113124027274328496369326566437673500383635920126367515828409496437677030312270550859723361017920148896877606659226486074830166152536300575498808121354939390468169230060822398572192100434138174013859585031974450970578131384615313024360058895663774550573395454083294356457812634541388775409602623285121808508324402385700508736206950202995050674905857730283316381850886376513525077704983606546339237239228809778417417398743686793213065875899521889615904093033346760119812153903267789403259470342268795110177446734254863100201295735077535796810704869936853102798976032754271527786573489392684610703486693338473692596772943543650854461522879257393081449203041362501704525511944457564221339045485469337914147676579576990244608326471298277289194870763418908130931419209788158628200861905363630550910875276854041191576698685217761245948576686866650989822053787939932601658742577713579126211285180982976248071455326426481140019952104965273620946799765581732127743436682864411101126811700613171652539614754292118210450156747042592371334248500666997352390223476216741378834530907517734759588449684069404311435807199805598069987191605903737048879693985918599325190848689251797656247647792455008418732256489806356389798167012679836063888945682183752993554711212877843884418873837242664849650023642455938476900864055828281872419129943800913464156415087094421177504537205178898286353521502798661296112343009448376556577637875990222582581241929201243528864081693723012806425529273931307976338101722183229581702442746097817526755979678917036451279753706777667941403284286902066195196519940970931739479678144981911764789323090712423074753994389254371820221639224808755016488020321963292085528453784416665909627700762590305410586494837430057124983806293127707231208911561657767269969648348170510408345512384576753992806516683957198522626371736656749963945740429523432417590882337531833639473362777619781388399234750872111282969831899559054430729899338991620079498714776316817367886983684884560450844093724920943461846695022905433637565474814724210625643905847296655245479546601466499376273983742732212010976667415132930253748624543045771004191118163438473271309876753333599815339954497775015869643021939775402045843725292982944286630715571755891835419977731009725169707088001418891937005211788979544142532524191741213530163451643697894358698892183318999405009392356359913151572978053526419858797754584328155292139202774459649878993231469292378318823194862720468314936115722600742154901843302158741436699449429150477639579374779952716571642345200671686936643951338932554958084420199262258111519577482119550080189296126333502457845902835751326046783087993615707750735059715382963292672725029530582337725207160095519959852366513158529309330588155005216102933491528705851515482645324172937266726629442712435769123050585572755204406416293800690322310959326864580669446018265757836856033659768913814895260637037004861400250392187626580609982176992699092375458109067635029063566077481439304009706880524616796019866899447119432024752483740553109005533470712081788329398827849490870014251644243596107669523376299466894084422267696755180327373996194677233925158417005573686747065932163639391638417797436759909234378400063565884651800682790862366629386783463346230904215708413760519112178721268289284347207890562343796820587620095693565017515674109498778390007451989680442159576675352410226477530077574760326606902056237435676200693585841277307164199558072184503732855159285373564276486347683946764217343754378190855430051347865539103929162886208350700093262262316875329496712050036524527084663888493048932027550693548290869701813193848277382444493175177948362521306002666059574666243375248616355598048246658141846974111113161009163297808512353464081553153987012080935169085073000348688843963755766796490647457573179865204518138440771125363016496010362854636977668827408011774391467003860136830853219936757921640911317172199860359836810178912442866824469311466367946246865018445167564043037627382266131936540484337578126908579790043035979576663386482396938549047008529261859211782666619985131132098754210207765451153655223777192818420324407856074107449781355941435535163876757968262846972480534888432440520489042577946404697555112079776598079984341472469672838345769600855741789635021346427794022259640092158069070208832261275062494301200127805500759725869985584420795793456691032937896468080859429717959322299906265724892629837501588336409937398025276903944006725237087806435305774372913063228921638550243936980228266824966482608678422352481395159491935490037547053141049294546400806163328360370725107605441048703933547287115126145307775753056431943471477348214131336831882605067568877018744733625500329311076696721641315435579855297370879504852999356171485161901608161982118371014280358966820324504013723252692673522169545844952681031597058195944798940954547651509781716880402160359535526715004765208809073461321606064425267358528418294027985146394060780159328127934902800597844332252511690797551936859443185525768204728478736877627345718400551408832753965354542099809703252999005957707748131742611934045816506274652176050475576120291094285835736898681226737577740061352051425649547283861726495199684287195090696744464532004176194122357950102553821276629114353294351633794960229435964435129053569339375138981868960930931230788602344227716807557510060189903343471590290416230086624905311227551355397259266626666625030126953085913482231491463689872602167653343936585810920767091888772276041449321767994990665652077847446544215761012312566865041669516480819489426445303540796756887927613175605792187150464318697803415879381097617789706527909870299030636033993213724912507069525136761162348554975427387489422059872682300417170988763604361831041681809342254135482039843633497347474198916112629007568667461409779943240225564685443839762913898583275579647405410031991504951128686889647650921941552365599272075862852298045781781882746028419969855200423963029606632005869261859496284499774277939521870983767605622109904006465464512121620884910402807101913103768777423122550529470603902171771311845306703578662068038781732685277654883444123356010663163644657177362994696139708348735739083644097636577088758254934022202938445847427529770426425509775988067737846876679964782893229480675527822547261856555488761697509160046370709412493599192026332433302493339437035793266586800037589251752233684396775918077021760969135088211696877483484029679238200517015884555434126774810558947483334141628421798484436696919243554056002785774961666244730636346277087723526271265533944319039303675595730774461724430994793410869537890158717211725773058729221528914683444485024566055911587804807501232562028395412361145868133833328643956868220502157429279346224483027329601411886493862962786338340848385152751422442165256416847163533781691475834205096442746718731600059806894770638225229068402948403083476283646403872624111179546694595260369470207243278382394457468157172439347971498478572458908416216538258380446319691308415965719212638442636153364030777042329558635773799733149211618962779725314245438191748555071088518410665610712800779525026030248350703987470470678379295085853660689165083225722800945957076916596135635461132116460535102717240770157122378776329729791481374337837085947319352681185218853168448474127233697223454490770743848467311865790413606131372648048750437467405741693316878983643091590139906724270786519609985316304149365269767275415217274164914659078081552050912817692961874663074028622641216400366298243603547256191326085898480322796076891411704504388189094672661230613897702255907437360717025557420581351149859512946316499068054172336504650076871469201425806216392891207884025026931186697054252488135249784114343341300095650113375236656059751632916498517955219724966790111397779772681173836165853484748012433126440643545862421836686590975628973624728347298244610781167640172855112151876123437231770908134780360583379458122863905075773871542746352521865465555747230122600318315607040955479981638159122231892911411545982738776652149880445964844572706951348624022832094661834636788672975585352813044189735137243970463223701954110842825220640042325084038442217496603440742055367203981326455018382390850415390772024386907371854097769683825704206456157135137408796230554590746439079583317167430207498829466494563626100038334100459363538439115786574691629298562619236590707103647900837704667821920862068542488628165559399822952764392548648172772635420193601949578030551798853528793324944237932662612598713288628152286150547957246441615296407115130219383269973894945692986456739046675974588840287292193995782586472129171781546321372481474030336181844007322730733491625621579617622189030406924231956542926692010021181287104233827164694509994501003886084345905753576901596914405901231380673158417376857765667439493557922365358100347740761159471486546339547505210514775834469792324312818238656835584415931327783567585815838012453588291634487456101013366301189531811110370577968017882589943769913206089042103178563575912139701033212619635106474807790522087411445756193337588300369444119919069199242171636650866505305793157963016247495369427401128548663479443868328508171095547511549672847361567205759846244564589080789575594564455185032308846765469194420385226166160651465825178212549352821629128207583497279629500660882626141713004959409924614876029887029349033045230054811511657018709030359416962425846649727327469258074617470753574749454304757270559018333641324299449212546268057973086758450469879549505739178081042200201335207509907374078878581384032057930277674184122604198050289474706671862138488779338513400736945628800188947790544356238355801557124485027801302190235656577276047182482369208277571834056963248405215757464546910185275308359897674512954469929460426793553024930347657071708406689914935119513406738333133530029599699714055231431006907749358401800012367576392745004455570341645361106468925944508147214327926347188947961843382753087481693948439124724439795171478284382627858491513313663976486334479660880251104326329012124485832570500814300949084737461288920246406735267227099574634756430307741156634051493221194069572788185836559034030453653465399925215681643914508436620931649407503278114360765347369133343865111046885388461742104994321673676752981833985832123730116708569717317457300059461471449561103639235343151185222919855711451876984164777701161267639681402106173554987695240888333185696749727941020335124289614476182809630356456420661943598000670510504421705635832924441220863294378068827332425767278794465598576008245175343096375968529404004556025585862539661816346843616140983574701354828888765242490093578738064608887175029996541938819953325085920341799618831171955320915536098593502834343278631106656575723843332551389673441836033981312105762554187480652342286690917791523865239679210160323002255549477683627190752133887047985825865814461542447900049478527844446558608664424065018348632534810128703350149673183804356585579018314950586174602853364855369839144298611838930436795958392603247463421185751712010812342678646059389840706871147513435353506730265050400746691980828321559200329439938883358406453119400431038849770857262846369792513830608818789368091968766175942493626176446103951775165813718084953135656517114311388204999397254745261379569947813277854445253547407458854488477921242204803926025354583606143921449371764605177014430116364190586461989222204933039150066223090101633355236626997936581457760265500449453616643132187981379667477870381719989472891281148341688984765140636085385636554492469432303859210980579092054560755137488709486404337908581391551855399418831735338388951086084407316824962736927534305367486616910544074903469293879813655060854229818748620530788130793063953275593012914630841492452477290875250856609579826491207248393150378129026117168884985920862242223351457148232971588768555845866154351810682238535907182642009941079039136494004463977274378707595615893586857918896006997542540741175878520348616166452462774994075183170590293824617275694926366480714099020615382221691304578741677923224114938478918489214774743575879257571401945030067891031578400254478261822142158788621536444716469956511112313262808319732776865895317147415360549300138105557492035929258806987868302336278976773078409402881199339897096675439380011583520358214919842936179337586617841131313653142890202403822710378063021180488105818858426551761252828525121232440598005365432414473660222394825928065002354405431346023360863005742138467172366831052035410720361267859776232253400587313438001239003511025237915570613840167131104120093419771555431940914316666632336157428656426778568908917491621931148104058132668956646119190547705095947250304703996895801220160604874982220348422530754303253654893792358599133998107318801216331188920688049602823993078921419486706240694038380645230089162572774743243357977561398246330071586442655275479087572335328272359709023360395355776898590447106554108487446293797180630755474188189446847881675320896561911838990977573115969407790850751810325376424660241638638219547898986402150050794867895833486356529515692871522338943363921987333729021895789035864108632559917938632547384131089735068505311417724764534078051950070036401956017500249851244771118120748185882346918703219773437647178719117438887201561480657797152075326976692389973189248144421493791882925544789551514706751190786942195512605908685799091913867313650503074424848704827163074100883729149239699466006447424836173868402427899530046598586949214347489653389561490180809258736098079247212596575426375114703101917717878978076664974473786613937487292282101200145473585028612912030131923566318852306715029523880462430927128980597105857965341338850531468015645467079663300723930041856774668908657752476049581945967295758587868059817260209913228489600623738561927907134690113901883355437963994260057045177474063788966101563811316449486809278572794668630514075428081662200970498319257112551592062202710647557854653639951777565817956183235037888942330378655828394148401156933813429200830862479203945716895888901721233868126180643791933657307162721902219219149976476287523503386612508433717222472656686129000878456158687718479842680770446522928299670293348241760951342826910052697914836033613703718471445395852821562779115361137325342679301420790191716566517794182727460014407963116483521525721031345032618838825319714662221067900728723811784431439939314617263882303223463922024325288859482678136175465343128936166038968520184985980919441516038791295986256031789575511041686411765521261215625531524556872206347806986836442522538798489425731058099238691749582301978639027954750158276231264454845434908224282618933906522606156048252856472886975769751628602511678298565612669926402912729752718173986240034533361845112776450576853392110763777031626448732763894073041522130377643785956065521935032287644244921297578176715545881013004047922223698538004282502678194309704190447055048040702848391708164977657013328222355198084121613019728299068030775197990048613710533792047757875132716883278242547984442332309436272260421642305271382087084809239173585710964111408768926954738039321419718722367759448857139397603197123479028529502982285728545130580153023613991678829593986817035670707793435282160841816543946948918647237996249908289408722943147492849545131872700771212037068885386686011938043412028213067250082045897200719930484977125403770388907122456652038565253920943176390752828665611094049815190086602121780368597038324620139381808773438940793734908833926079221726705910989692309492007899804584518059245901336356279442563970793402557920752035065655008095479443245913518314294264605776180596159218106004826204721359344311981028100539218215362853085874891958804861545904151870075452098645639042477600882278764409373589334669905535584418716171022506964296314867624372137985941360961056945078117902374145934948139587652011903144439645831547755385902445548607631846214141913798480202635005568365196283246295548261640858603474131891748218678060770941741611874530740751391796849593303872668417480419474412430410439695805033920942740216326404338366054596616336039509125489047200830740502130723730052933849028347363937590031805751784352609476739266790871220024313196359774053714040444067925635525728672579729444950487141797128663540082137199046902408689653311596150755139180365354696078022640233270231020690470162664432622200085303914473680993343655004559089907972347841410213728684894252239936591678461479913363216348435739679232535040007796691542322144439171463373204175378167726416302451593417058650896932338367095097643448704779844031590796278581910358962994456518021458329059747478099929139221129859218478582941762950400530335707264434808893264869960179322583425023631320249534210411732234629633096452844357231554416924360003610625236353045344637992701145292858496363050030564273054700484291946918066925428494194570479337943480418668575657983311790362969632233240277656428523924037292671421132522078355575880339663691515090347235866625286208606587386584487332934066807468934265947554154838310180960342848390741715067414487495850007634165563577297769755647467225042056854472120343022745446518289399149026453967779609000197766202168856550601837756253150915692500216462169732320867295777881692588227098236417724408749007449945523461853374594445534610031127543460610047863465612678278693132629637043157749210473473581610771542728979083621577761616349962796571842426506273893470478676133975892680245387146191438841478509265877215936936972733355824251229130098881890278640656615116432957504393568152605804054889644474651809857370575123938244424143044406673529735289544371557489270929207846787110567620476994706433498958159141724490824273004038480476979216019987250219330337289584105158283149116725542888619592058186670391554081497344772165196511659868972929920079836343237419786020543262906089651868899676652117146827013294364976157731952697626687400698366658346723839293850127343847212992856193217565625371106764800377919979089612922311992714891020866507125820419477612064903883755304595567712312081554713260347558099571801410163045394835849317361456818127379597209236660131867288871871212426485646220859361213712340098318003049489701099667638470062440110357132787799711093779350385791257187591694112984386713871166276309669772327051239120768830112009701816662754505494816835286583052950366592432590587812086247882122524031772299515060723863566734268890017134054358183925585884018688795417989110118165212734000000460363706916207953337924123697411207257746234287782099573581528453602235124745924554869076991937964735996175979879799867818636943403720960046710196129024278160838674705855707936691014216673972502151593834569751168406598970615377436553958829375428368656173572662884618099744560672193593365809467607279281814444566173035873165818153767790839663484676027631090041094796652165080767189873004432158612551537560579619544975663326906151594625184737748493509419584952838182207614338523815985654205363790581359463997468250695869923548157844047270700157701443745076327976672085173690615044509298554043225163516412283244827995294753513458802724015212989714245372116649971872947303059103827239974735134990896143863099619514407836096658579836766314032361228292083258919807236780810851299156607490769435826416858532545995235071320563241069342378615002169684652312480370097999033365570945333209007665706475218732487667354475331244678092252516164462859996766624710731907843033566527564947031295058604292515667093441723081296484539846230708510624998078589479212569538264678049483336568609430275812807030346941697328239783186519705879135592602581822658522071798178970646659621422820619279538400407491367240741759779139280642181703945893834535020814887079548728366919141226461313630850124225916712890819535387794132266799616716437407959616869349922268505237438660588383318047405261778459609480760185397064422155970650622705061103413919102819314152468194506196552354091556529235929362231989400334401601496598107841945293057612546329563719389727420085240612065731383871995343704244544895342142846746487029697316094059042035143385746205885217904720781099588547561854717108262202176070671486644251476837703365673971811858639266893931367030290506425576077871921967883248531978605241250034120528868096217033844227946963697207384238756062637013932045618480154190759128426549831495553399827397415708487390193355478056464701939968772951068169298909684725559065786862070521040045549226117452099390099175169624352917682673839713397917768324608401449152180146253739811525612634381491787110623427385751441854852468264044857540305227720671136454411110038328076482445139220919410506794781677968661277404113760419404845957362617567663662265063094201455623020313489061383986306884943160030692001825145906599056450748743507192509157855423843330480350268104537737333755806506010006094086624875515228342262825785764737858188406827306924685950757795752845985186483408052675297471063722398496095029734201446972803256044274167447409860195222061457483284494303779447984911465775940861556598279975375085331630826511868695234453667958659154110628666178053098193335105808761631843746171821142023172959937572235749651217526539930965769672735072113693330862213656796308302779394842223072203492968597223399511278378057503349736601501671194986670037323847812114860603298669140946180473761572584787563763723526027827800145090210195412835254804213041594942033595389200604281295172420383139487828736769281297631377407357264400444504710779363309677392477022957981469310961474228732767132432228375427494987607459314948635113858480977894266236873912190164020279155251163101761409333408771883003934162442486042661452269050632234888866425095529691827049971996296973940239326496094364155016850914853020799735862617278716827862150508140966255456628484470144447403407466359563465371181104883254290017016350542304299091585140810046187684095232382227383627164851163486271189657073128125901483060829935016123231296278474231661563191638863170887126032053288003737725367553576583563472769578754984064540123233341142459179346378730123817699310903926187120074047846269609202337082189713548451650565229552793925291056280195348780905604729507499909855447138636054472541232186357957146180252876350392437787787741167478097735123596550575145951822709932173149590563000337838957807956465065557545785733890211846459573942262154900021107587743209344606690283052289373531311095146170285349741097837994649856607979197441398382632124748455296512840397151166864559446123714555210097718299074828940886885997029827626484826842871680519965530559990489263913851149642053444880937134561616875318907646844270467788493717392992112739566072207317303197464535158659343309904720506101372435506763432954822270437916825886268218228803161201442033987335046037228971095016033559501347990341927908398873322213941512244693961291421927234105391966398651467630519066291264057675427498647962365711627506463774451138461720347017676115059428727248780772136389264352628705401994640194611340073187101724483260228234527857028693520961144233030905337803650061714629588731545236592947517913120163151242380592043625181516213627280847474668111680676830784689271724406218437103097372609885393026492703686907224648754093096639413471929407390758528449935885058241926202099055898602303571867268083753803199614796645117543525497639799177879384192040213763104297782655869587837382223908314818597932665555853354653598383684917342322482434544834616004944692324522289103257711916352750410765581922165449443059950987217717148018861659574356441556742569545681191598591493646805518343792551321847001748007021825354288904375745673864668355816156107230520928662882149874907326464991959025094588732083322123141387830934796857428810255413926216989781732393961843760730253551614731432136939662040264924817365201082560835435830246395946058320628864940304363311626362385151872225828760832623900037263804488995046146725416640037356989488072565610857270667492705049713342583944993094745464085008860678524944999160529372107552251525860548073263564271370941437329833918587954714756945442957258849750963997601084783976879318426301131024120912794958131773717390370711902120811361935388994347136486914638848232425240816973395902220032934067461846015129822539927007228956236409267976827637019396114099467661916077784219918462995398249211775171288485227880865703401129771624469190671542866479922061222158043533790476287548986760333154764238390988482439988341456045188024185891998916018870974591548273233806199234819371001834612948032296503200369543907772664827149966539323831449751067879042592640897475410653212638255510016688822134481052939477710648329939719062941329186149192016759955124125654629718464838235719551615843274870132984910781209854830404094044246468714222222126271712881174109616977686055425605799384204441009819894491488825547061126391201472902564489646330373188982408235459479380515478798682654807544992611846957980304442091296888110825447034064417670746186431754420200791847970256353675941066799557412346083008261067203991373842513849342159938671455720486799952469169112662108767969362118979241327064907168446497810520034793659507622134951391800148504701104118358295897355227901162463495971327246123438073735327083446810389297943351571529477684300434387863559990211416420847855427245068605507026739089089460805931216295037868206256083118730579981338991110186563525718260976382652493918165678326911038958394387123193795830785374427098906516825245263908215513675311279013337504795912712968107614726100852870930291991354535868221418459457707031542707136147659086553089876141271468607899219914256794340056166599084048393634098998387844545587448467858252645800260474937525231355472684318930125346055580510277907868619768993646518831201474122279050205062812874387752838949626659973397732985755553776645048287622686164051932191556644907074679499646517716492021909818397410273729234596848313833766525573710837871362588403075820181726035346265222332668463009293595147480957585415644260204692285302276129111265064442442760984835984052147439607546914785008526532111502101967720452996305729290467967154945583444369781660929095201715365476509466928337197710513013357043603217559443479217773385321166081746104052834577704945656214525484773613458875213443848055898697736537597438495774152189179547962205284347678911771024079144176573109559138259519662502863272982316116158311494476281870864872382914088022120391159198710975947070875582032689607394425891860465739566594004108985916419096610950317106630629330410660588074860850826389992108975735204262971798333452851579149684262009712445433052617317093290521228041337750549223909707170403384472561312469571051094668343361980550508589118452087164008242165329086987012393167506064567615092415397298897768197452221084446093810902997360952803627737934414854716130913494981396030021872961292352061762569398155172570474112257222364703952148651783881233924564646965484922337612432631039617486546928572632973060591350045042566566772307538858105663205408766548924126871450919949871288372743231516285428946839081230685051985278591993639593563717915998588464100879417129653307801498294249476728705546789376346529050695655955456295930534252933912657672632246933068799581203808143057913543899826567437177821613493412071995453075112061366498227996018764711149669297886775019900802544884650578643157878024271103823402478366878903598997251695888891824813388960140866071601801743622195278489505397330054613998336732134191904507830797971772846455803779899461066541153628419293980595387961899751852719038934237879236578888368873276766568957978496980874864765217237254449213658524964000449625127803215587583247854598227625058067107545528466577135609906716105216629121795761974367770703482568335378597091074099769548859958171656111846126324574291605956301583318427451092375986909249139874641370850610118441025085823915163599231289061795809921843525150956702683458403312814718798381402559214120732096583941726234852806158014308269537386884401429548893329580184112541982491405937321827572285495326704649112930305282654343500051401201147686919361946359518918935850533729119620342262534462253196747792204483356684458172890121314321159841507677727290040820177927784482082328826014829254294746427939811185740879823553641099673951292065875753362971594978608675228868494499494860927744114029167584810327356204412892582322068843433613339389039333257729070889542364375972920607779107313322423200245001121438231950810487867719929276853873694021387093379023767549072502670201881734100697977458241593637072217905947154373378564122062352949625887520389391237702758147842031366054165585389287251765851337205854688302013153208693550650916463746353838695716432779743101291834486036748222141217596989129875717677874809622048009209828001119238261858669394443726797410606073447037160600749607786337202972522158355056434810842416166551292816169834476753133345760205045047109059791199066617707362971859681379335121346585553187759420497517320879712647461679948249575198134413168450521195401427470472995138678764897848080500546059124984746620307070479398908722539858815007176867175012587780285711062116390498791137135490550369467241352586207816674930353672041311762885382727397447608916010953178805469891187637941608586125930840434985890926658453587978025587637455782464121188046095855088769685060056837586012034651364049349439272072434229704592297159724525702152126105048227836859390743582175021354719967153056764145526540625414886806199087066038091017976027705806235538902548496599890445080809247830754006890444833492083711926874486840151872772715210355061787548819362648284655687987440550107973125236758056439422994686969593916356179293459746891979357722075219017372621004060416695590478746983440237779540627188674669247624790914456306234448662854117664274828754695289731519965011095531091309781844834738566065611167651955593171866881236924069529828376662058217650156893002746266281335890724930756578117801003358356304257039087284982608100941154395518946569382312515188250015278894161712247640524277461493047414167074654375217835682785498341753112894596731519205672255489373563857470110352945864267653572501194521236689755312758261363223791865890510551009924960123273466021466519119923568805684275170101879350962576905126902163479157420018894408068211076127568135791468731040212082586641310359757982542205884022399649567650902084816265764133761041312663901052529447300733019416489307674927985822280384105016159584729677746880715520054339115524672172615521006088600893962841474970069138686010727044127681143929946725875047810654594215478739185639604179501821427928547196696806324444798018660413836551147901099530616471252574033833258546009111739886739263614454179114878532651721551436595037114487252437650000060454447561432527051208709559555111732157364405413280630350917096114256690221090823660172708361872072064775978915745874106782980726110216265420942484627413202334236919503635661547032812786755408288343819697959546632791585005788241521001653971781380376451438684516485334860079679520146800595773423467046777754155833486422448676777386103090968142495200829338824134018954515297854085923790917702874984644118545052912761626920613433515568391400228174310530663947050672645429790084975546557451391375490617376241716699855382432044489111028882409391174524100977545776050006310468850715762689761186115645255968322392739691120813672869418143268884997245698775415120172610169473934065676841348244823017807112314661029835337127430141503691295565292956564603322806606395055393238266384089008551105615436206171609628456485176932480373303988165736531551447280886709348232958007924817607990564760967542176048697052141790997120638224968081138529127385754903313246091772953688273744867211820238037711765970101025478572502405108057489310016512851097055303322282894076394325541032233347554129462568990437055126908270968757530691756572758867963897225318080472496137865489931540022955408625152869315586625871505341204371010157063002010935286150813087938921462364772088354322314590482220179281447110085071324107669745961236967887538675793463436165235053560037267116609233930935505703391797782242941958554474679067873082106708936172168718496237854097285880765770468058357056517048062054217495521845727893740982486143593601549712760945711100940794793718639923731529796886417407137328266900019010747927197240576157444580386252653171656556319885639584690604742698564953825905443331955452092782225705553607378141977498635740930818623522435777856760884605575927710121624040389162185129201563708813956770696944659151375197087938702387025443858812480836050332658873638034471836335427635714660786281100156596166273114685113500495207022356747074284262492761149322274104056154305608148089702877254646332546914032040016817360613019095085969870081461468312770509604196545823736078577851012564742409689383219465855595790868354858108087218178649685959589828663714929397341822193935910430012274431575982194159882490831378247616795356758263107771805438496671835392667853138962464152332228545752090454279336356705265633996043784305836013102970778568802313692394126268226516725531845147887919393571675225593650343454774022715866512789451371840782315686067771595750696781675033196349206109666228641346442610139149999782040798307043725299569713631497312361730779981453947978129743028198247792634871644167166396533269171696167182933517387892655594647606678612709831010219933262587922930176589154109140438992692703429662247577907075118110376840896465144936668108195101555995132219382572606145694455530024332814169451854106664536622847528244109961921334061237151752288199712845255726046110760724451043049493764071977764439452923071946249783344988785454387651023344282221515436040134203957995008629996321620216859546311893127197224909583018416733553387595197522991347872625271454981866034566207351467551588500466406920800235870984711135762816199870716985481761674744170586776913321040102857969053447913412103951252289447063883320657074758653985879557701417923798735309955490220415889486015139594845679500564063904436653734536607002159788505892761294408007970275579321314922269573732756382766599009816773708749898369515700085146503948240305921313810054798230766367589584464900410345069656184266252780267100079343217850472039476504331272046172243668074572760100662255091909720721655974025568749806525836985880088155817901525187866723713831226714175960520840508729533921675119929218861143452774485797052978236801473768319062172610675596846900724771073718506053322027941286331093325572835524630404161975409846985879033404534300808743733298324558027402743749342622038537067720183842908165219859476140701902404166289025112421771624801491335292457402208197788264024849945615662684189671281721579553808694515957364273349682543033126662385645159509285604360499176244430280507949384389630227121318025750852431000519315727079586048663563233003332337083506297637070571143089208837243704099017126683121608850957868965237353290031151849001562329230422943171418399879647778526781468753752021869956849675162952320273480605906822166221990275981254070849916418299095844150391314870802073332266166181095575478858927719525227751380395342639612884278429179488180186299218660240285941719495553050473143483768052110021607589975287461900351393389545361757064784002180955583723731668723999136761706926851986761681589405780330059383172352025431368010894276282163816632847736644370483367382120606884025707253821273132436886180993600568305842138082933055674864178805832228071603622734008625303717723914484875681389822262001721297591251881892480399577606636801896145662498091271169943207154971591012605708392673522975851640497053953334743923791595939271888286588776609468330807202934142918621850740651067932480581086101320754481321275669327963791250687051032027495527679178754543642256063318031101740574971944343448256944647878011299315913411812411120856745321608112364151571035411204278446529396458854923258979256483355138277740505175955311571565552794696646719289837969535179357647703177531808134981620451438134261384928409686390671305391348097859836680757600808202022983648195096298573073890533627015455676098561024864444308072418412876399506456359032978165359652298026604179635515049692846673102535231577038183333561290803672815084381124125738612298482621029970284069094125050926163197551942907688835477197144551279512879120038880026922770490560482539335374196237394490485781042788983521913877102322218597380994506441746640169772028705591143707295674620244138230137756182937608683450912283125426937105891603481761503421229528442929549162995553820559651824582124781720336786400417220846090507175225578117007437427794542687519690876302323636865925651861090356535409106430061807695611528026708501316199490405186950618068599593116749814533595981196804258942290283056214517013076711171392452141955188515653929525430477647654540270697930743955022488721487251670701399507469995673334857185415563549488930307705204163611050160373819660893496432811358054427074586741898616531041537985514004257807399708027630145116839087351040424351657161447967349437507311022487383420829818389384024901182832191318803585573802991312100003929059726095677063307474343569989183657159069635782240129231037336782701245613316691845947342872640848563945282327546704389071365853691118329237093755038453965128213873281737577032380486571849437176294350189059919205052783087431670042154876512780187614830811040888525058081996777351800823624107580779819109164307927541055530301105641348309139821577203160841331007541978151294652004026173372593175453166050171760117172600509068724092902244097064850769058179406158435317913440536385974128854457767999169109146176011005812847400033797124917256066948162580938587540665698691991554057203570980982159603701954507313654676420759210055730871216379145518763712129906134075955306550245201368059340132996473327407764562736505481792842794450201668554320671551679992770215547254030719723618813034936492221952167278210223868444412571810652618283073649745665519077019297077948967960224360638698402405234754280576095118078902268141568992559519171941563325977727693148673851524216345749951840908395569390271642002341718422555075707992883092967346741231947276350116886919774418192859963773664243470664677627254464740777174864968804422060773309058516982148397807714264044418565304807460812698558969134023569550587641525550609925485037324174577699028484080082475198957138526344345242986972453469128591179753102572306464532619234586427859405849784464391971726046110003982242214530457427027480397408937722947278486078803326864898185798934072463011202080303577724575336588247986678843228172299963600651041379899392371634354677320750103397740761504256550111370285511958884986103764636304968594582559701255679141551566850412820541766757420048535712112576509238108745487523562353113409167340188720688277563923944511172458566319770426330401979088692828678124310177081737456037062166313585369017021330379272153518320552158705437691208698204544624013986729928031381002803620708711607072066577078563239942919481762186252784945733185491260448392409562824215383410899403067521158549074485141484111754258386583972486320427835040700756244793178309782878633654170351361776863771066988177016729992590879000876159047315201031336815384465622663520603170585563887236476016859440831339479571995071618439983812404462312534087637485482606286996442042695559929504402804691463285636116155712176647772274381079265640732828199262898460371253814621600241730437603903393498303695345284648011811709992618573072350554289005592953712501712059799411343732116276997462680958577157046787808963662084744373184024963861360949472613758015345888492705862089477989995213450464259303056203884597848439696085221544009335240376212767114756966152488794052733461486381085212043818766487213574185895414048443000353330160495816560937505537012901967077405383070038159039357303854032471532023296353001323298197871177403803367001132489364344985015992089900606632350257220354869871754796977236590674899304958671703644304705386534455901022643982923966077937391053174066303355312848344791275723494584311497664990223517910098020175156583504772632123592593703092971501297822375779171734663666253755977306863601527763375734393908568112579022890314024267155021760372743818710788720532741974493601232704941219979268497339018834940028190404238210628924372899130048424628155446798147765269615725529015337948155748828251984400994133097045199515273121087777479737314214550970048231851346639248231575529470258124229570948172518083931795946616999402291613848590903100712661024543363630453201729594476594395143293763148624261024948395750008131833608114454896756836149783166345072332325114308583616551575206730368173060404134555496882032829571522980618725859819242164615189272280687859230703049772790171644520465674257738892461264720671104360481214832713352570704910435208378619555438925409599855736577160009214031064007440781151251001209183811541218087182069538437153660760144916112927243215640138482123773847657637803365178693220626975846545810065510409645092769501117486291406077819321946465584752257160654028555219514598081643127323630712190301121188276625454316949494708562032617808624571589817312800356359671331942220957511970546595153977214858636242701796401030716278308062908755267519585610394641797445096020381130838187781217039700425889799974234108484638119144176610360657493793351992943982105949646531588386393589575591743611691903167598926951120751343145861972229380477481642143861312595714848555005418114906950048118909257337756452810897722657566203536771701186099326516054675959366558701982680808717691552929846947808648972399129606928686215571704282961121885005045889902568211602327828391347716463880121095234665273193754170100440383587502800783108859181085107520492642721817699691397260579423238850052029197445234258165004919119939578263279355120148499210602470397507537074530960017957837578812145427796965706307713708582026447760538440243148548656419268259122712198834786005345443339769259073316587023715076895341667385360794461765039860423296518225695914437040924743882421327840360986400368272212541002880886547496259670444090988173355026260035572379985684573264145240871343384656994283682717276105120335093856478994217503818299082420385526336653673712825742572543242614520443968612232852645762944690502308314123062625853014053220723714180076964003964029436787560200442139535554803322554078346813108185734231315656136880447302853925140170032301785323531057160869797701994547524976870248910487240476140701784227105878738740116157143626133497598594939266728858226721806917117053527791859316947291433716439032831779253185616537586367611121269730907029335263215027263241592346898202006957196509520779943051301305758510483626495246481491286319971847349113870578833495367127659504758492056526646660731835485179480567289576702327760665236637895847134853135433523328324596569376294432936500855920290651444944926586937282126040020247560582246295486483148929101546502680436258347172655171613712201480002904759721310192152691848559893296333433798906093036278113425671248240754967132046158955699532311279999299656695511711491792663065314655736971644596839932800188165626419353964632001188903851668060512994276346796920640512185513998343846060002322547851580504138197655715988627468085876595777268106531510885889966141446040406416886860665291690808567167930112557040437095459497965417694351034156441469527367343076814933827096163810006037123762746983372975614626842058000613900023435728108799796784185333752721026239978007540449520318907765243974431336017541240562896526971168357433976023784702869147542817041130571265019094039329903466163501886570942760424427545127792339277537146278400092656988587284269464379262462536650404950639570761951267809769624265048544229655912037783805072603901193289010154144481681842292141052180635888520495445284849335690878107725260647606209574305896516291628319715617232714855711228769280288837023433339072204158645813893662703570250525679101121500801473076026228190582048823544059489816318885872985351801464080696313374737525905737810823298754001364128789023271189389228443533658594959226253064617495849535811329211438885498653216478429273080727692022046565551513772425610996857310860274754815035719664132676926985794617549958122875781476615549024325592731258907617403140866204626552866183730142998623478577740790945288462360141203340172031230086957068807294587130424289399991096738856707327808097105007829614268133279422239541471752333260858587741977577295461685183634623959273467442990844078865423785661063471774653799176004755252417348436647309631185152258713679794258830029143795564238650175962241193153844379916821680132115384834486487716066525237341894222719549155108999390810621990868955310510523449264765812864179150818049693195664338322762172987388235715840527195972602350921912554940455764166017562363495881722083100796635842434319699699026264699194496679922021105406803085047203938485113590818102809698626805127958871970993061589531504485639719691051131868029486342071461621830363352288835118963700655624212998712719868189246679219785617466966049608276449060441270157205564919691037658206428348819478487386195666163949440547184454370511624221417481591108655393489761571532071417421187785086098036764032535301473231994654082450830723180728886879919189448880259540706880172991243861892936309014788590538407650438393048032181185450388685853883997730950440652735859440018314037231964712288357252197182148225169897347502788109605241694393681602462568778127240597497649704031203315887370957549225997802984863351582648963376940192912667026528690611543102039128832044168834943481769631396692790173938949353551672324251921767505933677439161633990268094354048078839519469232668096836604904763184121364856175981397242781310363473780367769424057601150978917478482070499036860372277640096378401161812617464986800957652449196103586043299594767232264871383301149259890589535800598849690227164745567328733387139923298856867151605034670790302687305131303146869871845167823541845485901290741268392285960291130024917377943602450267795865633234306142010715106662912355667344500746495676278632074303436527312455817647422789920969302492158884599566947028845944807388512746963968535200271489708450974575655218253306473982871823685721345407497368662987137307756732609974133565357954368157462338222525427820882366457856367391601122803437429586952507126427789241611590555826182385164242680346471543506609554032109183179696651198946370240370501129520432034598193784399290251650235372198971863317468818911809540359002785051790986516997485645236372588327715330062617263480787870622450138987290784638642768146177647596387146554263821319899056624866126289640602858262240860598311086017717649329308830743899714210885333754484254788170393154085568719500866175224356606493134601812896143966128903459819921896379089660339338805343917257154569876637903652073871210258879131097823593659447064885041066173560460382303510128498863463309382572366901642046074649567202083947950125127799923476256873285404696827955992411814627581261870545687867746438979260943001805175370340877733424306999823232623582266582555433547829439523828533762886543106840764313561434333619428260213637018358145643697829515343260124759736595939347807487592254904884262106596393090685690827010360572961989986086697652920163720618340450627753468096662055938607886924680771747453979030730632979974310105891126246664762576113446597108090075265180402895871186861501855336678335653385052250443598810491176795389105422180302477025897609506681827783314225916003681461331437555647958932376440911705259181112878204183165198796647386175949799302807133722249376510767160799687698515580329779755356265791228459663351768447626168541750962926250073427750902168351460191742165678266990997379383150322957259237128086391318651334984590119015803969273928964166620919116726530741415668046503678955806701815613369861877564904606466228409177709415929218182801292882477539294098902647578155766697136147173104751333224808571874074784214067776204401783121179203419127619652691215255514329517274757145197598704812641642863657079219309405778780623509661837320882833887521660935275408640177618499388536012220977487867368002984175990616467469621877162822335957847404294061334107702805582008924402158328984654428974295021003690964316734726015032228317799793676693583070287252054168011530485118114912443888313258213382407993059606372379358927578233999578057592439089794313623761165098299395327516063600063548762811694988101729158971228739143155842925834123657091714776947296052624818934079347052971331233271026222228572806251726139899748634181516065228777659634832351369027874929098319958381494503796925260053734657898407939539559864319074660441320947101481800840155903505589676363080473414471353932504323779557825830072361727611556907335354124199538541845679798257902264943192294991907461295008185212110628610196517326307770042942308136748259441757989433068201814842026853594247474489373834975471226778931204370383545830822946597420594261202871713354103403094002290425374998381629054572278164816739646700251504215924533911606643692531835473112634791966126599962331259557539933243173230836961548043035687328410695622176704222925243401874531539779934490882649563567945040466751719343588997854622266127551288904180468258893522886164050850054750698438603840271642838585342982400913784423106626265662139991020622081315562878497704512613044878127709113116909253623123876767051213039607055417606488874411853669947379807670444172204573419787027235223543201441532354479334190737647449262108691304581176286667366707903697694416835006292668387999505262588740536476183696148111786393214812306226413904192669132633021788673314119534619099060036772211960461089141995107484751365325971766007883970125389044393576299753944960964133409457810240182425469325506519466257106616445568766535149561749500648079073504363616624435404728347746184410973170590442539147108739677639346468581641688646991500033712997581320366748839986848871990928728390719898633540457473657135631514608762425823537526246936320827781392725513644246734598651509133358022852658775737971912434507251663319455705243687661411594752250318848315802007241327184045732929693830483699600989376598664219887053618290907147983461893807060136071943620566933648168482700274862045095583689389920252557792651227474063784782197792088376785065015070063181169192650471104283220215846927464110541221501639740851026612403851075422268607188209432440379020402120603290432414923530201562917084415315022931039203927025101071846628968030566945818935148919196679906997025707016014596721839984110289458393564292684887426946300907682964961601764021657060982148237130649347867150448897936909880025546938459752559202317048790534402686902742541474896052593422954987326932358194808038971486860928726161888204539009696672790559282194098577002876701366475248588577708920009779432631575204981267135555870016524048740148637159416055256741193485576163735849024383868689343998057691517315345224249563483035118814328348970468223549446576877522528314281596085016191803759973942081164546920319672609148205424455132185545413203322011329945795490611017143885108025443844348759055963654323223373716296750378460153291384520351016347750976786759296980091050042117233000255950525240887081095779721970272022560487853358314870764891326393072181477035876544944477133383837055294113522101348595092598022173374632441149591802066429829735165727369609831097568431705357629434322551180329360224131158179242706584067390594433814188405685659854215688565496637092375494785516659966796676592540860055637573072886990909265624487450437353884095703871889756445767151953831400251750845665504993196071219404714416843742694339705346229101216027980705229106899588211879677317602610204829030043897940333015630332698227994384885053105785338337835833631871713274335662564917852261800040025159730360239217681197901147723059821589028728717222954817112296690735224032079904998961153584735361431656521550643045151228183596393820433407632938542392942372581085487593497094450437287692695923406118616070615577651298648415938884859825349144406971631499956686555058443225734178097115348774770434437253286007402944206140746843357307108199909099278998765352366294948657966470722442611782843049192820893532756110605404572479781550977956292971769277752075532723367990985072741529051534665211461451397385970996027294298247736151523628604873283671482214316951479523530076370808116094326467973700990991976273076487183073864811355964417278422859568454659050897276286936157155695922132485834869271390481803158025435921445753265674475761353177456744640375166843255255827280675779206283046633067311270702497159971471160382607236657473862001342548814067412245152723085069511547365571729125668991546006148730432623149403009976852183886777335380045861955172626039435832889960512841392995044351302975659137651735007719663830209915463226143041827961319501511961027038182805019982740374584185293611777389519307162688675810684495666475890310783568444884544815494959015151210479005928556500987681164222471729090276012533876906306437198457951572859546238783996860015462173002168778244241228799251206637182322256307714387949350392468547520645671540037994088576170228198084391790633213893869121670807672157476575143393567023020743512586445109717064476228370427070491056852632471204687008371540169553989231987941554981537584697116800595061877648340474375170520537651412964618164496257025268064239415920777465227679981876566846751359209261617232081541483018507632130735288245718306329463703582106985276004232786096320146805419185682836015141795925818706893233410365248924819170883560525193819813331281223482970569442348347219088023598375952848211284600662493518851408865983429283553089196823312821013452409684147790640296211144654557197647458281403690959368743050229743363683316574899424812188686493444178834142430068851628021919188696804594787015873081794689855223110064213872588124330016490241334539340668171562201184696988130783569550649319701635873662507126894496212166023844719959989490606561477552458926935073012922126319496685308583760683006900131065245262254769017988349096330389123194924636328124312329916527911579836594197792494086729072397813091738279618927315584463019729308945406207693992178442352939108464889778133869963453492702786353688611462785190348390849438430359510203020192485746505382236027400911837105746274917117269616248778059242697316149665473198619632021067861056483547521580706129547060625814012420608444984452969418642636234256940721704192523351132006577607685606001038595864782475395267123627500940349409597226195137010745409280232969984959949359091185741319925382958747408871547202524975723812592023982726745946214746241559697591816909595460748918011641039724308485627675717331271154348606272306646584428574089309423023059415825021960624448264356258406987532722291647979002118209221279771339418328262422090349177539034681557367041769107158236355924890194089793420295895358599183607872637583565278561257962481321695575091697883788927082378899435765386345928341779177124957397387844938592368458850574917526626506309136324978368144808275732890823220847708245923657160353654442115608746168698894906745608336818315443022471950808913103489128850131882797628534148891019575915073914350946244610268500025507723281065432232640738944938305988921004997955400034778676952468933321143424437570880379819884088573203278349647541642448624689719013014097682459591207664441851142291278622946122376746636204910711061850495721768010702689764185997139780295970249369456893529877151992358201418274441541546301784870890722229210153911117075247975656511835639303077158397294645350165671919165536163406532145309543209825300249864813493426749319638100979357774414175439995299820507708730407616273657328592537600015545394921595238258655225107837308785901100328929531453262164050605866375791893372276541803847438586521287564477297959647116329702793375841600256962348908381953604513397408863173098995985017814329143455707133199100380406318087207080317042882911675967543963307907943009281514606991561308555511327025005412712764807214899021419251317226703833268159189525558723804254191535205124480373453957535705053755803445336588291571513126149926430502412588463168843353833787300034245262596600873988278297039302670280389303159863915098586434485414951880221946823007632499424358226234516714257346322663854032138095524513682961551380011796986233012843014968402973081559406770079571668823796641776939734226922258402664598200103465212709035078230032245748573378460960456900873141807770468250559775721113404071484587656473931047983019732200800173051658566573679145520360626297337160491262370591874844651761314210543111139676758127335376886550259269156447519148450693628632773963006393126686577397481864106892278981921152905680781736337358657368280377509626201251522255261588136360913333606048246197468337171232952296212928026638235311317132554872934092592240076318322811596631964958870090455804826116040700485728451108355637163807582621264907025846809660470302741948114398053177988727633916179102681329089198416011702682864001894364187175849334194205092142695151799849893523411050265210916937429291530758582275906743369432731259737428718507520393843951934999675995853929576351996256762090294948319593109389091955720019534074029632335182979585990334416411537846355572641971780647850225134554804889230608943163363516279747461457181533615445033744311439046592570616843353331741391881167990167601388134298777806760690583725412258952092790698600513945401047667041547395079503496319418257245722593271101028150606688006728952646540549789585627202566933962089848703535401307215243042437690409492797619278182715745678479321075805286164782307286238865223583738055616924890083181379538113442949510684360756598268110222482139944769757060833200587132684339666186961584389212010461446881583149283485590250816266323610791980514466864201760918172921116674909430087975202081355823043554811590902826856521692721626998527205370064016529127206712142616128545717636275370353594955485099751335589472024543653030636367360853978871932437283485510316981614913626836626731437775453606798832399144176185578057374659295692224898954593658276329312510238799118230826781720067106487945013608622043010401724804895313006760798025325254010178784276030232339115955777909222930606111485639613344030739908717599647615323158914903108855349631034846360408939594531504273158230591578291378394719488022162717067812018884187358587798824884310646185070050562918226166688281248233855993261396693862050515835074568591378148921256228027433570394541640281320884445697217011266381931815428652893625572076206920947353582900246335914014705137177259771597119753527992796180089060689735635801663760027784565023504748551318463344265981048101285770318288977265429145840981485393472791703519956190149229727433083567541583021621121776557651399782258773794509172708423998569089110421231385634820558185968289327727212410610548467522329659650916412774220962195122437602090274427107324843428548952098497362963428955214731249067557615701172118323195401974805931182072845147552155221971724823437529474656508195392221179014589437299599027098471883150399283789778256566786462878316583793412487811333860176318083170205334197508719477610869654229709004640325219307169681863985314448008256911815556685816125025929983859693283093841110689495450795058441929157417565643391349116531217676178678192008355032078601905149721874942503608991828311991475474839513612345669053709615559023440318096774233624135268969139722106254527313011078304986358533739556752253243987819478074341401418259352594695519945211578563691440283219586354543952833840061712696300087121811981021548443408495217501028080913243505084848501029965711318117157061608015729217992554582024494572803967506301259947977841712533162378625580985241485099706814294527417305391548136154545562435039711218485825025336429881624061877018006208426026887474230721564493927605372245682502672213058451406328992426011253553884426470758960251986595955398103607993549078989852049066560258133811101500417723740692130969949684353263928153898982716467458612048736850758869696223896712753529532167219904593735881217972059323597867422789282225334437124976062837615237628314460506068300071858240891157516274816277338126658032447624493573523882535656203519613527248211751320166718633792841376958256920279685565039665314328523860124325191067718561361707532836386737177618505801977558185568209346141858734173636214956812942925190651004190995616408987972317491372840861591863159092453719810955036661340506666994307967726932392799653615732701108713466753476955866284510244115403658020972050265044150289748807573642065215987320422702785703903992234805173033356820598629229313759254172488493878944595436603349396198535464650549622725203256428447788513421351801820586883782484927871407910160946887846387580809478101759749451633189609187515333452864252880435098731014567704969681003014928755853746445080049239089982308117925796033073750795644308625364366616019917534470975817498575028144155350632013421847175060906422759044380695293125104489176490770633200585509495150749955273869949192924762432463454144674120706082385635873841649934589396932988959035416737834040078972436274895914283988117193039144095772426274609057869777641157735062232817597918940340180190834115259338491807184555058936689095353728874320646691821949491583546466251069284510739783476324521946996195298014226739564377907451142205278376399759243934846953558297576953811471698289102066243470555595068144524979548077587107148217983342934426047117711014910181566845159324227173661192660130088682048486499853872718291672540339081636098201107601422888673530372995057262632672228671686376522671082084835884151834695844452403180645450513112290243251215346710662300772575736690814761165953736273860499671266004737777865932990920019426362114730640801807885498051357483062804844361187043929574427684745762997700203599046897810762863714514831357469860716845949942426108720875703233372638070822773647239904907754971760049623393238493573511555174373667791430891833749299826398315944252347767908750345102340895937212844901638610035964437590360484597968034586170280503707631929125903572498232641369114722394968373168860769835464923383304823045578010765482218273823826393349272153376834575278934098941030314009748383407424307034681464486077031805126579792798587594059743539792368949898762523612176610903626746329411985041942357552527869887593927336567357828564880784705892299204903600573069355460030454063808796961726826472572452944277560749839056720606550341248735891357840396582291027523120765342288664238193839115413263414366908188757494659735711415174755365063459359563944115322955005501552734702969548642773615525294391714705085657895615010018995583422635271181762483123293112638670141430205023827715004741850398766888897522946843071366300982199483481832010791730428777149617352400358067391390496307434996062897644710187131418600588172899745771948565842111839950986219100994807370620240602162158310472992776201620057161278686594392938835302879590045106851215078931414210724242533636128542576786488754584233509399831946757914810774446694456459287033606365180382957092663869033114884196892063266241237900076766324723862770755005371291317399433472148370864413377017960641216058123979512478445399096600497720357873346961125464496571786610348183046050071333643488097078473849912320725610210114188320783850592755812912073793780547884863108028850550779712906583495038380731995150487473589082365896771725849579285796332306290493704269415229771546425244773832997089750882639442039255124697057460881332378499962960726432946415164210831290086966336778028132984372778565675818211428340703352368769952110414220837026642861168706855574275878279187299392358934920163277874208233834749898043445804497460225220311923731636938155061991721226053179062585093584605795214175620318495467316431504390645165729343797106925472195853264084131742173775901861332995207622888177128144939145015635914282777227439271342331385851280414801020795877164488861352347356528754833081425533135954738837172283339760103810158684594480732428586488212053448165076631675004427339508257090992616500600407002945302479895025723732280633685876798764577582472046848157091760042451498124962238293917517378556626915033774501767012232448695951554522330521539919627076819298823885037537807314656449380282834828385544289680244007878323033287911044958286306475004343537088826672382104583488066389253925921601557222976079297879794134595204703618126164704077689400322445073703078794608713005526788315986880466233005538091538924964413176562976773355037000161523817174593031902968873914944846714030861855875288703943590947548455643267686595633189924830852143021365706743356272251586231126902628172570823999916479274863097437711083776288512258815717812402620009446765264282400262480578906162916196676886503822757633601051863462158009630021932401673893918327025335538555543833946656424465890313298738204937886722309081446729663514302542590870424306614452912169359033080738793083733005425714818519787989532982843110147270281236462474225096279894103331956922496352051232304938891311363679497196205666674556860866906917375286539692077630447689446698748094088978380775302423864281758822096113118994206279138910345986052010068209837901327292621885626428545191922818400693146229382176388773223580849188737500280351084212897014914664756184229063924953212510407555999912168416360156485795512731573069843036199616934963145953404859931011197191201006395773648537925037425980294422004174373288100039536771102983937411301277406803558802246807667526926989575475769209110659048812957747274842778415732679111603011293709933850309444460773068647106750589077633890524960759766276176862560925257781860422670980984617313342403839653281936910963166624402328167706240156137650769966147398695877898211762611466540999160499139274802547978525905031833979265231831955089295634304234080514751042337440347796676118146461391449029533674509180421717654263110571478682134885729263645522183920151769358336051635386466448049809290164822176372775021404287085066900950114896750983304531333237353988832216930530546595885591738531129018085051680359563795365437650735270783018814626170278654165922753446957848969602081113983959343102013686483228650799126603530130383447836625555336509095274237455488884722106454520198705144642870599261125349852352930246015672784165041067017494828005691625590300022893012972633882854935641173067935924035357363205729150899741118392353465340190754201672368777626565310542666077184925080495967554884121632036983575101676024923825926227573566740281973837000074248853245317628684196738578750322186717060389852643473180517953061687866403941301177029280587898663238566651745284361776236577572449666865936605652279081964661938904177894651052259298017476786346298001965753297445502450175083229229365332394659852675447721783435642132637651321722617139670584545132366013742664075859511940488185828869027278024262664052574736295488695520449218758014251232175378177710484382630506097867212265216163294811820870986229556700729565204461470717772384904115811620074353047838524729655388333238535738513709257468026136215813609302993423768740300858176946111395653943101183795502790195308829339771165667690314760342399456115876110528415302563654547632985771898426654136048206840449339569414565203652286749028252142131876048479875165105455217412901276665189737828924798669402510194018834466863399176625271980246438858692518883010833418775493706125087116197101798625324536018915537625070262996098503024360917940179692023353567394346892917817699060331945258267240398374430941351781901037272070492058420587065235905364864323344040720543523806691747437836034928682232742203994610329996236972427810747147903887724766287902705012988427391624579872698964355569127073087483440417644270663835771149213808623656651536952797580042126126664351948203360341614566493520719565025501271164301500505368988394816648316356722209602078179409171814298452247225974381962069120455657635999801342154629348977249181896308803710656677775106987033166353100865591076976320423690387595128762433415767189139684259051241236806846759877828625243168914144682863940105598628494085774066020892127763161133349629090873347582392811790994055672155263492253927940919621160173126857938328985709202078199818394677716432250850651815560427404666400452271823151657390218557256839274316289246968475284756442392162156732359624668064098136259895149470128907369175436517946923363893258620346085150596092220953949530468105069567451514277359059237392637206888322252775202197830953356061103343548345666041118881550921833201626622628087941259342233299262725684861003411057661756227469878903626145692996257070305530304030793161066912318166946893055945910934057135810919555284496923920704921026362535808711916967139423145435721341611578695610205771935808073041313756738808540637153821747064611395684931455924768297976504623170851900297486494667142769924993397262188326978233631337920605061633598953424795433282148819917045942240558107274762234245980168219879722096016796170409059095667849634951819295675624857117468281391098566159467567953285164040987760452747678537712471783772084856604452826187160046319063149081947570537408734966802949656461020804464770973721993814448662885895280935136335990958851874347253324852519775215027638760238299081341164335399347487350449661238222732598519696324135424437855496740521441928324796010920828686063628426874890355680467061862375108839882287588187544508600599374913517784770505882395131399811907969082150491927154823447339242483617518719728859212455901242677955176689649014238238106858824893111698985520455442442118043340403156144766816768641899593345300031265482909606307907549373441589310229785288816381822401983613863263991614807607752478364499770058246789089811021082123965545368833041320319001412562198936479978224589264930462979051285817629095764506095564497651465212544611818494190977949552591234435469938693220256305617197380113563295603039396869211817064687655643817236138034084481229564941355168070983486773222802372863679961955794104301228863486238763247238401526109168443961863330694351990291905999258036684966264491960654381430565142317789146939053412673917842348034560403639485838307922880932414673520422498124199775165087727708947117053719337150637719890075025560632111774152945263414321726085584210440026921891480248354047905827686053543146493327633737219191370996611038573003710018035003335961804121310455560305880959949967757920574180778318932739272839666439017009724363906863986845047810395925359968518551652511524860713609133580984470536603630281160066757749888686737655577212310751453465111547820158777926858155607355848043817541430166046493820070357025757215842224438250698741656494269615587738664643119587077688504283287636288717065534697380564389623750735884013648561774653469072119601875095146491112839481507173184894567499840872017943319901221034767310645648724224214602995043828404205203292734651243381490169005240997206444794172569673429117879204020714107468863044534723038038268561243514704872039123827693083156552389102933738351710322807064022333292922033543166367770820312706152176348573559510870428450110475775645041613125447692598594020108163140147172932874750548904258852718197433521815046000232402232731930919366570074894204338786238474799508533962548485894222983526150498426328682272030832795148487635997358501533000622491391637105704395269506234118885448681918093422939348266188722326812157941455121906494743481498294076657643918723167881957773229819435672635972781985508141392242968551188520131368212919083981697154899525479929928834070328330943067699739686230899814401109632323211443562381153857197352713673532511055984325169520373389536812354154487194789032719601619622386791859323964696325853418896250937691552173097796032606805301103651526465091529883011751244399901059553160327907740227319273921222794206344266521049353072646973330838207084878574445962899659152508496343398402105968820513998843725537713574008369556927189241180306742310775631176598054677073461000065528212865288712172245776785571866339577144995160679212642202542637960154948516188053840703118898843500991051017465443128398432828633209769133221974575055311291466454520117225226415481218982231756324280334294304231529213876902541901935733986290133398061849713214613362108914348201749776329300773772407305757365495083109128944202702782786858348747775011711206306974830243267624375963616422680498356160128008182701491003440566068071246077154664394327856448972204937140583783186744539125780146266990595587402617093176736175389544819017190506351182171953740726514321941555674367307143212680166773691714888056403909161093050959288018370227628151478129552631388999568467432323512633219165253069634184642422131519831439551167742363306858862177615716803387130527894709655651916002129189613050361515877470747339237016211567821903334871710079497395052642047803659118728173635522597652463343346862522524352587892083754693219499456375003049210036965438003411303305162252189148198410085231136525090689846801769826519126745232631733018956887294344781856486205302616784080143627837600615981462767258936176827399283176848075486792363470951515257310650092141545246082744232332029848567940085637783018772060710811123843860528660659574082993285141737937562399399276787017057728053940741292853480924376131267868151675862472397582971661930201427866216756396456504819891970035264423767904960345053070883140038328830746587808705780944197267666269908131886090853241599047895299328718430024708849586549966172920848589093495763882487291069710171402748943475327608429430479878542261203015017990040153885104053932103782998068175772359231907086099138456841631186797671864782943771114809153453599266087261975348502119005978675995720000198955878335199859913169120177383223196042275117500098788611076403638914529315006765922984147442177892278900114880362310080857129707835740549646932865481454567191344620432892091053412497523534918009979211918904672733417009040726210513517923993587211179510899619765683737512352305605820203176542321894157715456463313523247521839063649689964840184071387564168717482697920045922226241387288089349246991403679681346158670821814234843474817395176244575923312267134196125694451464789901374931223967472314951845273196397702950526017720079152062323630483469245314795240654380752481540447291478116182916856957652983236585976670738678823995516284601479967508076469799627029731718086752018087031058739536263673092523104899100355471455269137757561337019783295044232200787229522024258502801666227801136405831147391828027011731382453443659699654534506446854216629428919884832156052186546675933750621881205031608367853509926243303520556923552086200356461694246318902545589655633356332493200805251753372734010148764093119325500749806594012034524552021470867018596465202145838482724242035427979488630609727163380165441705399735904278677639477936418190278537622945872150799683479141418701244659114101265269535876466966183400177542376456086350777671141737212849563969694468223459442317764623832728564430924100031771879233996878784435989464701493554901721257188124531516990455861291592960615823474595627208276309777293342001332852625315515465770537652723467350395076379368327923787083727496693197684983511109800420694434643641347508017216089631432990764759241445700019015046556323198305610819182231136894591464727218656014836611422896983445312152856238671984723486158432541412492456828366434809362078613064970702680015010905252979183833637667629200008451492139945936186658448820972243444250193152856613899727708180948549731571929776605173735004610385899712028011692431926316697210982531179945490726606153217241777031373730514450647250808591351388003098476184983585179331233915415232066745554627223847775449793850139574900729981539936259910758749646755850614907377892420659679145506399735712914010549614609589278608238658951340308148201304931635941436559446477010217243526745675954095766440307661548604919384873460915105169560061550823438129957563513104824183641259164412604645927262319710560408792998423906024506724430681562461541724149377427162331115253452402761653483854437699317378079963451911180599721659769804054000110924917430670106092710521204300269786613474413592638404043795092350392457284919627385582504061546420161066337733527381234308601792521258524267014473560848203571751406210164722875838479114700236810470104251341808183559354993684579669201288465144234232357579800461269113697146391098339230347946366777467054150248670825185387510883464423000958034805292460194531135670816515992532513072206281067877485644889107856937092618655808062645729050100715024380757214402001485541197882756128037561237742002164830228616593078648680002111144421246173362490201104732700151742470493005547988318889697613332029996847128057315171498977147576617577937349042433520025495994202641290633445693553516451610211231869304290232420859463059035960721636163191053979032595184147007097271915462873908487643251071721479512533813098815925857003811913217836343226282995859327448697667272976597400745932314264604942465464121568187948402061018163974837516564663367682284767169919695642456555713112627019216930818451800347821691642368706107581200355449411246530655042992385555512310238826233241385490805844353299460585634985982492330937605676609952382346079390486981855180454468786095550733832979365109604366242657800029462612306175200911493775540259526457531120946760551578817376559364347530475395084833949413956446756906657011582333499663258928867169210835431628810543034190422720926358437840796005898717356503002122672683107880323888177939252780559577611786791521355624306053832284482684707909313913263561735028726009631311395657799173014174247063561230665805151354928591962640806985568803113617306496739480305435818052873232950650796237510804943464682067297772279381450544245068074344112567856783653017428343894104266969476048560593134882961846841170609527492735733346520781631699940364743824360551033938403233214360641842221483752212848283008317990223191355263480174078887270288942764719508119800485642586553502136628540692137343541385675965637141884871918575362463512246659312747329453247211764742097132790222138519403492943717030030648393751943222940101529290721762953240447909249120914894791459019698516214209229557395333365448445532422274987977909664528884482358585048285976664790102696146335656226199555770094785680686285073078415048162664641171746522369099795526657669484385602281866697386792281028064453013286462874386713745848972353516433149050676435691027711966503956361601364580636828041451646515596670375065017681775429120487153436761840967405671632976675307574940141721887037364180396838944141283277586448307038882949611519764254871138706152478463539361851509907348088466878266861602963447980762185100259304714100045241174689215503603376612357626527054774828453125750611360845102234931519854629532752040755646324619721158849532405877478718780633763422584803432551129278754827253791669667160823241316487749543137091683937377141402350693697742317149674150638981765503380792638276904139481667915240897836385830646766781290454875422689057184741936923253452289296539322357169999465866788515816362284482099910667793926851464061094389335875871276740153044772282503596274809797732334317476359125259520607480164801185818796024785029277683082475984850578430978459947313869783537189686934661912415742973075692975149666895051444315302662172729278100441528593148812655550908942716327976116167850743613892517019155667588059666087010213776872981020253422211052584963869114208306710232780190861433441578105290343487684193783449626862108060249513156519975765831439088351848629215693855140875316928033868059976429258472429250771022551903365605378718895760863256624849029986194907385155480029851143797737841386486262157896440261781007060373553144629048422292283306481526274756325728961974830282633112794302607743622939305913319910127177002789243014859522904949453194465620326360999224998643090038043379391859476234790910663103011511359721475649797042805315332056914152267385164758883939826613749299750153011680297855992995843611389166493702734619487893393583336126587101111305601404316260065361079274391744121984494696558483516495656053421252668017054727432503947932274760354158996643632714387399503084020305187635119069960243779875569147714311223278170916569831201785799351673445402242799445293203502800797099965361827125877679327579837152001489498535726590411371619435538507439082492034097577050119925499564211196109033236629548408335775866803002223922990074472120419935258608977815689644283777019766472989085473900966633220854291616637017098708237665159422368682811513147743538336109242595845194421283419572570005501400053017778107531345238298906236470759682322554138110219356028191513932482203316919478823444025479969484032804538724994380617410706519074864695179523169678437206240287432002219953847119814818413996806000067995004782156287747105997039520648423675509964218557790437219914433851244165765068046458745779732371697343004605655028132633622892742823201385325899156559166197432982540513617380788404720250290438350059796931096108341934002379844650151594997572262810530611002554158537088740832214045729967493107293435670650906517227692261813343153944098602324872306308318499431031416345947512044922839230176338569129249802183785099274752069892924235734695905698026587979378733257867494423480085930198119319123415294140214650486438093844760435442490259423202250368483675714630737889757405154713106318856745748738857467606585410803720792130184069095975270456354937718527696934379449108257721246637660864513749988194403958723248628786126988308455106649976987261449182016311229888071592289247235405692747587949454157261125607370917774630121089387970417324066160003776215261150077923757878343152425689123254160404506311579612656373870951808042160071279849748288425874196410127122854663027801234062100653928342567777255844241485204589440038807564067063810024409927509068006885296718161070444928814940670919370718253015576441657559637515648196156364160295908179390117073568768536518944478113645750512851318010942289745331504772713409307906478211203199972946627787908072611437473433133199369330223035324668441335275739561792987901152753893699666204041058373188401665975519461787927878644981012727522661622416538092188261410121658548481475762921754156350012782862829867159814484264861949195146566789042443903700153763009068460980591584158424613754952111210969825047752527529120883826584873965329665966004421082252407936122840017891191542835497992575609019752377660954044978899344446862697110341052508598552516031915278499827429407392151517006450237921529775519392005520081566854923057369447556281968819431716341569770274549262671796842720180513501505377033720630798028856191883295047607005746937640806513604215756291672638359835390320521644668064670315737816035276167934816377848940941155158366476939152786886891924627422479735804687631294818730504814102889513637722652339523354334186221570012741641021327951622465449227280118741205427550401660679049308339107926994890452840612085216664780512010335388980755192829777676633536079706035640743725667977372921245188965279170273222500496670122619202533092118251747901373350658092905038754172346582069683307521908842455478096042811352761507662504891932978528905046019275384645826839349510730103089909122441552198541254757318321186433491553039081254365507689384375011997757165179141239525334561868421655381478478548911926544210009366313247034025545576899894933103615931915819832032396662268185700548984641763478034436799623618402238371080440835082476778993699536525633788943631824155776698552950098485028037494865382084270439225510591453752147113308442826913967720194346527740272721980506603717617686629724008291367235215446898522981125362828797707824915869140578345647869586149364903065321483272838058891510629011982055960239219410678115602956234219561132424165677931148679503935057234180560245531440213515990170081895087035933691873318760105695292053210925253008307314147819443895620031789028736873846285537321949147989493266577014850414472177486162918706303589428972491348700577765163345190449883936573473246254040344489255826933034640040178649913674250161475466336168417808610658213914829520920638410845718223048297548266416145846176366419018676876896267060556185623193058626752962281155827060341277577593946945742112537166543439062531493178098837993096487855027609372327572396760250048156484555953638190588438084611577255658829774110634738341768078322592484689111111237657762294976654278844440406034403266426078968787056926791959313081750190592061403989371814600795498584787464720937200801784536319465731728659361497931399933979502881067539747796168250876855407390623405987225487905810365671133309458279911002492868873570557596036563023583057259753596799971484397671990301999137163836440243151662988201004180175423194302928631643403116196507314831556732694823128581980183100776307632184121674690065857701348401353587366042997810386772552615844158450020317197561048668901831084248234232256807446817983845519159467939617614224073635841903318086208997565416608036424702064819302385054020426888366498835885793229836660649790465269175498541420616391586654057313772836208739241100766765536853993994084761292686209735436942928516894931573021741122559371464837609240843491810582633193938966373935250344987311567459133183494547260103064098537573072509731343352698467671719331624855038728578758619470689842355988543039078973773557628081459607842941203974513915165794343377306733788346126870398739135258800576815023992158750150911624473007358979379466781275370650143663087100909909587144310743045296743496779853842445269006137707897611215666919009063572257128947695252488327403257715647232320871565610511920594587137612447678032537327972265336504786608314257923099705525110557156434072578263511525382468214152482632318770783125297547970366156530013265151120524969475645631980938048981466542402815441196031590253360017625725006495343776199179228118193012140985474738693318939088776962789099377707407226766162181342956401868466997515973595753409323681834838361704554537491916852382309610234501135159086180578843576534235412867596914030618100892840754491784732788340513848374132387463111796932454314211514419024136843684293236902957521441327505303817287306532086658986051048791374894639152547546573561664591318369479248312047721711355990503249662886266056474652119695138424024082393471366929637659167391881220442265236338205588807740094702396385485484141458096428010309847617272731140987821127394761448128593218303739327751163941048164093850322426801176441615111493233744085416694975034322154072255632134855519284108752146660136368820246218675329653535841877793847961691554296641891069828319184306673030403395628031937193260421620055467389437038940575102937605907628519141748759284878131050411019881223325675156813855258643363182072252694904147666428078094400457305754096554485768057197190660837738510390914115946820476718172379915624837264054560607018770061461791141463739729768579146461558082595114501381435170910429762561914222586351384526641077910999417010776776017655395977277107830942377320324137198544820676864716852161807895539924221848356776770698001499241161212087549521009007027690791973138049296387283216827759928649066039948005086694350851825851482361352101411959841300963219407923907193993776743904403859789825103724841141528429561043484405399902203561621363954535188935138228390687648416477703578687871154313725619679086573503367555929528789163380675541781649292592203571448447352106002429712718410287667732385682107204224690137037957484675202046875790968355671537368761117991584754192677662509403630482628722819301406172580898395395626255320263085624188779125850573624371288059882891953438952494307560108464455756912617337559892646605300277247203575378679514785552326068470193048136737967701990663850596633692734464670709496173747071321410524791154624605510656206496883635299207642361685459923908271091143137539724376875995835109463279384319863861944086431394787881971968492036401896268811411010125139293540017291175092963978695721707418070361885837791959836540410767340405733510765196390021918721153916297784115983128476159063729610651280951867039526945222130089466658034719395722939072695164631070259717388918037076390613053527043342086895036511189920751979793962420360042163694081068285078807870398516480614199902878042548687168468170880032299565441464163814303779926261553837664626198779674827452275804829387118161898854525325969923413745430256702595537580592006801660366106002679694598498510219413932133976826350078428456126515890365391197342810845413845646108714371755998097722636866218017329124689142246448306529065020727067949542800090432729182667834810871946288077576981865059422481028099080014396808347369006547644099749600375776304723070948135823974041840685264351151888777349831402947989345979064384047800221485384186540137721814457375841998747729813045343285542194269811604498827766789806662856732878473270969478326755035343180302945939219207803544930850289321063943144342678023920731870245615913479263959925460827266019987019989703890076139177967984451974220491876063123362046036256653131997307215824211596195410602757610886022326858310606290735934912903430697424562890284772596179127705500648027577149836122882093614613175673845902990143799284876860370959866591364200748827318874278374119188336932328048880604394312132142487563467420532027448417141588899256883150747033539719666072149501761525961682150004997678698437481138948313608287319176205732367394720801689776632061881939680781252184188966949321565972863468753260039013824362018995829465057840916197696613580585611650739926497251267187017423785392446524479847536541669398314196650059457366164157054967636544885539690278485153874350896378615993220564968737666747621504353914533908437519556786059416648504224707512776195267436369004076424873277357427585846867548498978708277377996193873939466288450000669884718472061281770357551210411214579565605847687776341070300288738627378198941571153922690645578322301671770013688698641901169856359758086183876186289575025635174970119278927164496826565894284153627679572313205937575710090710699048465855366431885766834915499603676590307961940834869458009000531860973318478143589048637976769418140131408322986546870030896978410262478037018234665564893311959037115820423877687971907455083093221647966320466178249925852605668934581551784024764878013728903695582228278652564327709833014939292543154331314491470635109182372828792765375115353544396761878919447174196579054823216966371686073876248817081576390898219252663149198034435765699922241295881424841138100059807140193630535486092646138786784865268313428660166337214062470154717306378298473780014438350712167004285572000666928936752438380842963434457264115237666922474668312036294592358742875724850184693300812639589208097491842874551066203478872262223960874901251521854159499087534804274865015476063163117485645170504105916399201715681692334536113748711468624246373974582374653455388762437105390251334936881115261174771242179047000338911188304607623681228088287479979623305742454870391277203848511222187404414686177369814591946666704528827754479968043000990698392321523922770968619025361869884133269573125335064698994243302778845732917442127873361267852813276905048751279744168040841011937339118201461445015961948270310256701117776983768142650866054657497583777255467525350142425616727738367715647419816286262578408988075493223324447677650069708694733192905970286867936782500889369614683377713377895878045773828008092367818063350001102424463859162631217154256437156350022478182068541692888164469313932551796856187591499937364269702149954878562806128816362375982369502454869433804295056599756264364025450716688424879433955245244518913631868067881695718729789857337528670761248455418025853881624840651174007137638110103588946838719647610717401379882492005528577628384633153660722405971891738345701195563439654716266362826051385154396407036250180998308090920792217486266805003682009299387071790154514178966935168007144332781206203774420682529728952688649501841672264624382425365773250512049839894913346570367243938331365930416428031759386179025133356974233604347958406236860939211442792812418901497236108112647943775754958149187174958077331319976530501478839920309138421837794707386059593998783134319107611466705128045906651518637696468733344336212312492602267100541034526929412748217621058966329603631634522208365783910253087839306871567752658902909956319324309487957334527393305415720802899647947135353000570181598319722402838088522512055347588358820056331653932386105280508975722312443482317492347987785756697114278717109904936699384367400672494654586294536404343675138606976623027670192992268015971085738395217720681176402277584960926654755361900322426084237436852699690409165353856573869698423998968268762099089651957730471898552580512609726679077119858527172564828728781240393188673016174409421968722050432247181357684292009458947006433119458791084088119459490671174456152351034793883325896401212042804278431337760724046899011295526375345790137056702547974748159672962255846911582445094110675683378631421035093247865798330122180467533858041106990252905685235845320151492607320396911166503344035927600489291773272232853419505304385321544941940616732728087506285373114294801822360796793394042183203537900560696363886846272259061354013293455853613673697476311633727099003471352009581864134791153577102865113906468351462064652365434933478502032389299176033129002986291350055322443062841179730666533201334316507848979922549111844590020399618306863293061097982911882514622574474529341969727675265335905322785581827474785112784795169887015256044387868985124134025861840830090193314430572496391463768630449437827417657081871960578266144696472884486502451622650263182998817169230222075180321227974131663334328819265272190912637990210784447102449391427796618584560709094403414458259624445194604616980391471811371063437958501621772295111820758240746953114750244817831136388271978633405108759165224194922763060086927781158885474682108384832024567219929226468740233945098026048427753575838974294646301074971247989852737517104167633694659452927310822890439480462952428381429307971111198170508684770833822840307940325846587517315030193085900740433314275485326296513655888110452319142743086800787282827335055850812162626166857189646296870543210073511289001165273315113125328003640163437521072752001284429335026015399451510623942435695034440036971961567471427798960200723705666668431728102483079630983913575308189334498869115428060100913366105537712358993291054068760326523358431775986436353856181844818194413686921524931005158362768654586530267082225291300153736291493627725059732126742670912756997247778443683883998110795174311779000870659472669655962815576404994352519236753351689433825095798242461295009799165718255670296597992952224776933955009459370530781929429779697304099950529296778544155109580686448723219282471980264113484039699650244136367205325468777946838385457021003947130516670252538228080198085571821485482504294247059667770762040242451217298930804491138151261105894092314246641533799634438698606652371850145490965684045627258085351557861298051506867424382109349245961357467177803614479972877947423052725524285064097564146719013016806998484522569253638727942602504329683923689994179138564248023608335230707326568834096047807830979714972655314198108232367674625361433056564110010930381784039569893704881446164211088517727884814679601179282666537910757792620008399791832097298901208178341118426488108665017095918519160811537538652654063332352411006705794436808786867965367468874956970360014280895939067026539952421940062625312154795036081076544153505209227283017319280895469939716941515409195210583878854573520781359912825213990233577162866377987902330870802779616768194470434174822225472980889199344130727356538146673876282957581953585103931086261349217410060631095507897712634285383868392202637911824515505660030196773937907983794074415008572538108364407354420898516782663046551843878576871377879905861712034705462635970017406643970355356022472562049963157637682502274261881268626118020323642460372340598409363024496745791206594410643923395387691098592594469900678146072646930036695896369644322372734822058312450708895448528144018935660492991084355802100879174697029881768232378956574513787112809470712080838209491933408710554040851704768960326735518707553988403867783404466238544726307078578758405013924434190814593164188940984213466825152092848408373154103263198627311634472601320623041458517276826536656641797855774006243868080720823018571518367331610761385450241114182622997212398127707379702257140445289024981318488710959637277204623900628738310529306129643429712824054702152949725301951558230172579640117603577270820475839314523838606790664516424448866251856101759365136792118522729069625105169562748190138303151716702816039062927742586009432375613895667784957083967260902536167766849805925353969018684509087090775670385645773628659407935191087591201824110665440582749956503348056286459748384639115503959937994252317866110313881478128305787202421067216486330389092167657847546104268051666461095601680409758174154360407578941844417744503950458968301346127567328712081404983909466321901216562688039483423244775142352760570146441034011046672870326664640759690037638949333518331993920085108806115682699053123739217168059448978945999664253882071911874550937314433650348826301428148877397156212139668341271276763443186095680309109103835997486174398953606269288970076545683584493825432138936768932664150642900528756757990891265298064529026492495747603610232750384658430537655608939538778861610355238849417516430455726845514482309570601181611300731800522823391808292114919013119356438751535094722079007492150222394704058328054441764837810295237222236182321440386030166846507013311258828935596946462208758906267156333657430700654974617380921243786319147199762747109564503902453961337916794205525127590079654788279169050656615570936572912492413000839886956835112020459580851935507277606855199051593296395985300537827997204334020387482179067544303895871160077848198503571812314952250584879311697125570631039924113847464886330048967710437466659640217676022408175111487050772010012042482005389992055721909511196078499634052777606048431546464764482853884674662401021665142438019033485267911000694452172076965386325194124466248989504741294279576671634289942966541483056316671356501715253608299437934655663090282244239779016609942269956962385061927465787579120226554592225396699386452163054050335232696875747678950104355994044279595665084900818684975793498605179048518928825357859005878984493784191804264570262149060427290244892061352038711923065176496996530498574907774883968559089078640714162738635525314339307111858843300041158053535751770056302450699538004312066216560207706834614721174267771048978717127749277190201508044171248844138474160587729482447320426289600053784053165958999741870242524471500043043458299220178602963793391549620036292067341265415508463070253263670751903036127001868521888245211401332164166889881342618582599517779384660571165413415140334300020582048661557127996577858981105766927131294939880946524266186112170318819700514185114359319766348439465067613375002901769305537300243307101995294285209359684063343175728999938605848056900143608560080873044511624818847175961559656127106147484185197930010293810325377962909403797667149290438703197055792534077523215955706932371523082088586840593080991426405739833485815281951593669146547905560277672428198249083377675318010659112784691072421594489539793986979442495790688385957003357674556920209153361421294626641382420680920402439728522328544659236761961482300783237444217536390897498068367531959144021526172191107014280725127373966849048088675754719852838009059277893458171086236260733872334476736881058063414784203943597554805591018915535373621137774479573908328865835031926727147756854953549131009996807699029565628055612887609274808042173168863009805261237165381307895964552881708987861908911295952625538363173790628442653194191852414237509694975124856187452821610129031224507618355869731762860880826056987261191757438970329275716481336607830092394261672335044801105757054235705344506253829226847084235089873037821696449647325745795579520709646173424832164358575898601365751659812875298480939314004750032072338080239007078754553385269446842761905419228413341796006979817368506042743370822119858285631044561559618521507501607961137781211336380074578503124752334010914226503971200240688160470599975421670707458844524125015475947946874766962696583234741903516004462901659654589204811025355832597673377176355870736082503051836348816344004280626077320389108327721748053572635870437421910608891805252876090065940075364613387783464165982322009438179502201161830324444698361804281943500558380118250537099691041657228820199632856954822141895977771004337859000776444103360261570626800006563591212299634894458645066309936732678130940632387343140418628442705225206841235291977707476895986338278199480984785228287574957920895828685914268081574891951444475860878879254656948109573242093372321832512733598732203207910471458632341887933290633263704366875278602196255215607524643173152067152598108144733004434045532142875969733061139351677412483168923548110441432093296258556472878745978459436822639998803574603966078231947149201023369511397171884593063650546265600605586202375701079299687753131160822466097784072752042204995103621694618628828855052897802422224990043227388950812380682020847355670262888910005595573389034609936033524655080951802846029269916273788320208408853912481318296497875841520730481006321266898607254175414015850127791981709050632307939063016419190463555332572884973014720656199374675145266356168066808980253441324569354355716970427545213069384777123081081829114877044974156086551093568625016420114609325674137226780887493976376864702913980862929513877104074799425685845063833309447578978169359848485972867108029265955824735895231163647728317046149116133550174594808207290319973628770245353096221201474924786969200013195880450803657701761537902922414230092856363794762522649805750077428896105522014791461800310857911393484087341759143743758158731551329138969479736034222818726599871398053611160940216437789151748985098979612673567432672424031553762184745210104077840602898375405041226384619315798431867330218692316201882217341379005658258448516005730086084660791371524360802972575266041586071525080119626888571818248914649722283396382398401186139495058799818640861054420032953089177787824014402067575101637366964830330863728773612941497489230134225679980419700998207706183875782730091996954440544030334999532056748255767547270410846769763842995842378450390859000892653035878873569702598446137160597539570414784603801723207083074914773727862857346513029564310738061195858379262596211770862569250719907179763964418811896515427440261031697366393337244383620266685468453775331789693724955166706698647652708660498728075969310838405287278572447718204139156881602749205547021554843507326134411989367978578794026286770030002499558455993471735557588947061375731587382992231190098042025364875696053807411269776952072175900675116373449699779481372524690655001723950379871093986951417581542017052832423466853658725237531935737695232933865869568230863914838307355984116972647347468530627499659979595841350656651462031972735681660365359389419335263243546001712930012992097806478024597627766116590689309963466089509130987066976362353896582027915858649201524063162365042265700162308113618743169339525991422139520991370773780602980978069834543683163578843187729855225211775994554797516675170673647740866330756912768323966970855480064547404682409635466985255653862168776557038419661060016348630347737820011506919625480873159223656404738172013121248778140308667662450033786034282272342602820566807655997163416360947489038736193153540283619808018606393564318760459437635953736064687150795988999071309065145436188203190119428865081665570612498087218993265082378467376420403414914976515732276921815432770784584645219134162814329904049065176937141676488787205235476422356817095425468214667174843252303298490671147139208094072316176894529936652151610151187179170495527433112842616486888034750764284779518660815349461456528618944162939990281818051759851840390024041090990657837882138039485973555546528935833452555607937839942397682720070073512625740902028921440102755078892168092791790061242712863833849432177686954798213973974819667088336884640944026372486314172318166697424163355500059685983005458065948003913850856789287453850895527039587889486755982165887251308705220502433438803205055379022384027083435179666445465127751129956058564238544618380443032966604181792235851679757244849459612278249771803946685337990303283569632497932453886728566984627487592927922133169941656546691499188093347676451455541627479237272286985059245044010211653284068754567728238334122752051201770597414866932567770980667556111217874569452183806592889048213650068697594415212524630306062551480233402426792871941015482883102147761113242004859258178334850829821618063251926767651564188773793737327435213971381436423099572550360916304707344656795524844860251623345291689124092461414641564968770238686191319959293054447101147047113999943390857152189438968297351178654168428924511047708193673466243901711831632357206063400090843167379220979315388755575571143955048605313766952291267187840623449652617470255132327425596503668334685915768583911494945283736141530814949285492513411130774413114847673771490964335332519091362765621365979044768962310880481548927722587363819024744487010197892589042771604127002270058917955223700496300719351012706002741988814850791987994490860014540185160818517353212470737745297005431452835401065533334238127453129056723093941502119682932744442636692160354045796588752055937549195686804572656902140519243899145473411903272425649766084115770653123627760890193381619757788493255455526888475460559556829191013594889299762642259313165640746944730185378351481664309821909875161514956134767932630098353674319543963402454936093083166855262913031415768971771966355441605523685577213995006905603583301778076817188832868837815927802638241127280585340883270845973656250064237381484189017352327010299293483616594819682864943162459376697795989680413180580019827140491572147083489938786652626338741844584548450049206685717642817915042510221652715959529804217539214143329401543699794499107716897405030586298244184107505791085747668313014099232398704841405163331686378494585431408397098324847052288423227980496640482270819268319120956282604189678730488347199264045741523471260775669614760528893703710976458408951839310556884609959622517532196387814750486380641328770019381048883632407968292805785258438110202557711920727113173445590526368596036502562452613975678577221984031501682957016348263660963606809005206411042528328213030609884886447686672655908985697236938772612045939042199310127717715474433601090694249823134401352163347278480122993120077331173539157643632080981549970589523968103797450144156696468041287743977404637183212956832152802280998849481179181727374468705176185370182208749689306768702478678215635987866263370242079801817679076164210986699724129730868353205951986941461828685978403070927397947565512057048472477832167623343400451612112351685096487065548612537041095184248865564857790360801687078501325651778825115149767219719484840195494388911611252808025200195150297041707425503090721654094951631584315782986233362623340656110123901035741886348714479917093721068492802417948211684385678849807013338274982444832370815990156385323947392806650215071277344699305625546909687150543996829670130927361872754190864697776126953847251722807189809460988071571478693294169939999210557649115977795101188833782489448948221387864652494606102914595943428845079420721744381988093221556294266947993039088011830087438468530970676845233138823107222091194761281757791906771456589142174260978434652429952179224225491416330973495579208537293330279964030275236507575457897007772072939484145555053901035720512721982023170565208595761844479557254988646997922842938862859472579263360837751280685546368887274350829138648429035023101039276872550273926907913084173146892579512722454197975084079546959838394679704068511678439195404648739567340998385886380706809584329640909333245137764985679185534438623652483742219908675574627676458718147746874128148839285328401607195112140651393767784212067981737161265318891452267400017044461420973810185149453318059600266157200232197763908677873668852328146808792000333492423250948644110314693790493875717028583884726693679707878050917665610289436051073077549978459785734664947577493046932157928205186864751024386941748978992154631450278291594374397554529472583623999105130806116247691003574617150486519761760817860906828722295745147271729684899815636733041372267592295852428276805298804509155900724519388788549606883028871878065964689969949766028674615855232233193497752447075307391861925372995263134256286534428142618865270518385669081364209685475750881910270123054029252958639151204146958280563467090429825797836113479556834630806721759169131299143848838103288587807765512655114872726629104980380548969625820195492077862290289244668215236553777622760070158288880075461490343322060174492405665200262853287173328380415740275715191036847832171777510434698592091854541789628423046394579762876618782131947928555880403477027109817910537000960084688906040316452232966565118155305701389461667877402550247875752383498820225567989172304136438904454540875221475286694397101688372521694779975216320402141198630422959328698980919298016630487642044784737123096920577346512528932621009665315851829431296790725570808629368570527136559640244530127596848811005430745103175892497668760284983424483642632724069494228329396254918543455984542575854594294764954782138942729824702081716179445184189582335938414375481259080674982625187958983703798773130043466537524694293559020953546357778131673556157008224057842396876681816454827374911889956156955238147761011185979384399959686625467323624317055342289520855235606788377568224717103571575844165365228204153543559985377608863565368804201388597823254814902821111723883408987115014147241494358717767569190370151025037582541100907952030987717644808840906221346584107375817274237959967560679270172440771895734536709218989587973376988712024022261444163316798350757299399813697353806843424898002592657119060659433851971426462766097695237462287222688115004555753010766244764845543337291767196013610823586416067071126682917964202969163651413419364756606205523352879847613449770502628579664849080849257457523954249576719640116704375221507652325822911303313831875488917231774738894563370142801919071185846301477685106582782656363778894216928006979318256008977819524372265764375900473616459323746861387327543300367712092164610078217406297314170388765984158240788198683862171819184244603218433798493564974767341758059139008648027332796768217471953821562079215054976201961126264744772004492086252664834570397177668730898595458135023749843928026495743303638590654342122526722375912424718739139082678811823841144163484055373219013173625089391798189508010820706465481881177558302810417873794899850586005805329221527365076918516607018628618089879133319506353044005232301311554014382917860243707679942517330756445472470101849619535363747790742496711109291073703501403562093866901054657178289974972798632384495850655535207275367305951995823047404083743006275396193859379548671182964569883626760457999910186721985708056849501087584485765528056701342634074812861312445554822114510910951016952681192584018302002979466166542523702222479196139279032591421733180725017588403730805675750432611275288731302407652230918151019066865796800663087169395542171953851825967863937967697493932169623050708407637232161065764234808265437768788314949083013234387195994653173062839548555387747227685368725562794444472185258626892372883553457238127969021973736230002137438454431907770334600677377244136685686732310584735685267204564929943784732679871353198316962471455571545950860473080043146741350535019641132626309750127491431189652333943537004980622128289188094122838973322300163754053359258635073235733247812295188334091021582105472056646840439698579570927261741448127450684309762044207377163388096974761985302232357870366094636571843842060156517856294549125332201088404693030323642014045891096879391850780546707000739975995854172186664416458899295862371195237596282549542960596467459168824549677487881586156847657582411428779100983312797711559634771295307368181401626533050097847875425338443861991296936451045359301334508936880339075393582362974187955885884877037506346878196386016178454089360834411338322368759749980705014876067578423956796173976695057158358653716585271247824637043386001812236571473740042654708133074983705721133164822786134921655396096238237803506078284949552396844025321605689276830263814414027767149697311937421759609449991059333410303429878844685284869585155845853740975807131089919733596599223452013510715806082666432220727107452982869510666362826614810387522239190522074703979474627906300887523212873137005349859452212110522602986690826961686771077225050484665827972318259640011153649618637377254269894648182320326082783864404282133390630372386545728967118535780747473469767250671892010870670916826238339691492233175388048566240527567557212463396300746297129269769551396327493737418435698439517063148306777035126227086840202346486011914711385638014577007220398187313417664375012511363789274507270747603806260670715617941434777040390104746345893500646283218099513694430100622286290531331476068066055112276425383030457967553871612530582032484886754614694667078082818445467283515487532898917376485048116317140908318583464647537940426645003044563023081938407140579033105315245429428897593437028562371331193743201786444190288405092852528323889641961716269090830541564741623739995733790413885188695686903940659251348648275778556914843606875112519336205315408899054256966421379824634801526226570870243719884293183606476023344608037751993043119443953479211096631673523880433167125214897631877951310410423943196926460020041099646071769924698336903048595418923029357866322698952443401716695906552254311308873287902264406298699444282813214062711864911367050932107540570368311664887996462437044329097775399173480200346619570031367616803192819476944985120765394751086737057549615482763721356972489116842564878669924446049276209452605231956411562409810779809274507257923481483155372189817791121641875060045165830110109838444317130248960388245284021315498082346124676151482285897316354241086414784232979018266303960928338290637494491439676919861422033787346315163010028162963163954679124293125508341783142460783009545382864187460776012755172405035790370185993909743033609208819234515591127901738873347480591020555888407024086516954201270796923145356510528777659602739191596877571192713980539142377654391549330362680324738526644102439549079242415802436982288386347004323956166095947204653416986407286066493346138524832489624501392218714152175624395123725064686041134512488329048019352863799843015854114162650000218420066570692688319359452655200173652382245055011524888084802243701493107957169228657685717784879559448436741921910068156782845464678042699049295182230472506479332417400172102731924280702188378316051677221379283442558202639536381330743575020074189167536867158553004717024203979498217321397773442894782649368123742238852944290832946500443763383689726708987221974601756819350680735107133336006263105124906229133316411430173600383225496243302589486400498145292252323072807136420812928153559590236147075980290721328343448290510001463026526324803112699878986885463367764325380713076301407414457270375387133174143555134750877394357169552653336104342480574103224299771982327326510467145306684849604594987361070033518505934965976719718283795931843895544605280141959631716249539718282886024504520721584176024581215969224942218043479418267272575052062919762078708188944865276541925853826268434660063215631558508625211918195711842498730584880561140299983927673913768969406930526056012557433209966001913742841047879722177090928147651469288766450854317094438043149556398597014724260331438126219430319531337157042444739293108080044768330028773293299305333030385478075585738841630117416657890413067560279468075849169699922095237253965030464674592805991147296743623396129088025305043754600098507037230518008017930154509573679519369121234146671691966966353122082565638136353099684665619631918312711723855432385913669185386607915706078194037324378765252594583450185395001926550133565353478994591745094290402306184686782831621043608591253489723823734071424604870865982220552988360502785718597130324836405020942274842935030564732272728218750317084532488961753018205451981530347295394330945761602568122234368547815606905534343112486634112482387931765901922980947882494474479162533504759442781228373753567106981975152985064809312569803582480667786376728362126266013916928960898873752468238650189496646531234154224977846852669488226716686287260727470839618465174073559726745119771938006918213946563453451601498865890083375314826267506072850597182090736255739623806899300509253170468980271211620432260597140203470028987787077533865762765555999917418603127854264117377641408330139277541201730437862564213190591688511728662918453604563892736056191640603079880149628730285679213075132411246165836257106552798515315952055696381353872148435673077726385885355887919151245544256372744904866670788569543364127922370904567793351166205000784142555651684328720773036284763897800125757642683907889328527799801310693944472512638524077114692167743526811383448081247977892354879494697459473878310829542338675414314489975469806068186955012215369618350715690439343496106527874302825806958820075160849991273694573312892054138882059245373681916292406707414017406305646117285555889207949600449660210872120020534106674288315352694316150800582220109215090112212873966438476249788120550366701604247392427720054909343208271882856803538544245717282294558507463123070974205132658077237347978840246870489767526524615481254731291856153945932158657493586577034975708287843198431982680659169328128850206946167653524099950425465007690151817852386920809837811859992573149861233824914488901799358770305382454512694421526941183111713921664789315639330231795562380807155932148649940835700460408142386549548210112096045476102736708431853277046645941422097918511429301965203823046182144059023950932823498670055855675480106427918257947731417949465194854816681242669944570936401219742221224589575690503594242931075775882245873299277624499767816765251751841247254949281081523285179512655869113188847764339852064845638159638267621526494643179670076361540043284898639337850249956501355827600755515415190481489714076549200878713484846282095011659024200320524492827303919476814170952919419049395318621745906549587498667068600138198226956951452560296804553844214917982725508170684926284823927642101863956798149843300140165771242729161681498397882076557451175782861336810718480255557901431915343643963820954513665337309962352515066263864720623684030342993726194396171226498919355319558003487901828579965270000870285597024149948437324123118180296571314629306466508684621601056007191829825198467832258116785024592635683947435510803377081799325721218616223786703578776651073102686376694678564541559594028308686080068643927741595442219093503661849082874314970804896814929979871374536851128316326739714821014433412656232702111883960273720304787356315856280768407206575437780103398027178590582090637329056097706779286508742836958768931717948936155254812160037448416577371739129173805542830167314891054731141605175579811556350497398671435637834955274623710713746226777109204275365755830737522383404229782906392366590985335902119298090558444962471925402458363075298669289789015334461783499292936060382866356433620879740181754600820100539535946827727874291651065848459489020962211851180409215806883692420902703855666508091657168823368732317205836332032169944111317770852384889620756142037720428095581851411051754817784524959583914176943984338126118331775809142618318360687670611322320771954620547008281856410336902167785569649185284619251399424953063234125010865359319095936405552651234124041582169443960494092413906301534195879741631020619785022322815828390526480580531670759876663894502140747775429256451816487219030045068296775393800691509856669764568098836719768727969410014768091483115173830942714134157211464601837154302125392946551226821117689333920546943915531465084903264017300849271952693073121768573931134164596963318704659951747037613316377878508686178800657303032836877515222865512291127107365656318313585911639764061873494094975722575989092902694381021850007819652473610845947081053956957437947470290876419047864422618540454885715256772283536995201402657920020341595013849084792104029904184779610630235731761300854537027699220606403565232581457923331594019018928020633111806962402268349915616141573229960103709378517073845935397451789542688619889783972234368278396741696166458114201792646219784304673829661666084483419973983738695536756577775717299361119941621561001402009122224765721778677422464191216445797624931428607957873955003198788925464084323185610932449731956153235326901281247840399098741427890211976485266376830383560027221935727655428204676916334622577336963639002765975622358286385311954480467705143903652468852512999212559299389598596518527641240812277773995482902589845869260351854867018025167015360968452617557280110327487076306479897963217403202314409932945926458873824478216611815816947725546581474943846153949208170348743521416993551966470072199715483922449741949987557014482819693378515464327858652992658214748068927298505964690335971488685846892483774971505423611151332332553289563686422570843518473640264437365548726654958447172295694350948189588687782411360789709153787865211633690382493431736478339990937345649015597599337498890552493877793245696835401828332589541997467404217536649587881313672314998061821817064349952274255249736783170895259458312653241915827408746719129028676218318428913327606783302813687211196785632251213202283549146846584721606390903251673560792930238630436516724311878469089671997087558836914669017749467809260461748936807364334898130847641326239283407355723078472023533582962641413093354839692575696951341426141435187016565294459099916495048663386237793223328934193390493176748538222000008906940758300059513680008222780779769496819355493898784939993942949960846109316964655956895571971042675298997870789545028287662676604621435159913171065076834015851454693407847471649886927010595083013414817663028606873379103840477788810443790734009715344623659807297541538769391916400339931995008475641513550747035994764799968152416022318902434307086245303095500457180197762360721024295453045998255155325748563878822379779727956425274217935104419115963071998823702381728535258569899294002306399362846369415402715721823871133956143906466113185390021258291700506153437421732586966190942039612271017588131763637672186976131094327688103196244484162304345187560939206082920777371863274569110427612034988742618605316177100503248261478319498422971181056266092060796303034902041810759018915566939729491296178418155940423421111184676915286675212114172577379647576325005053377164038639773944141337647432250744099054274674200694466596595900349381495567414294585914282265253812119625847303924869393465623817599388947114494694094391554316186036577052621220121429506379468494524445673357802332210019677784470001570030965714123007702127352861324421274091318980210829433042457542305287184490142348027770684291677277333256349253554502326897223243331005589927317820348324776508513790301971853016379672236228578924313620785518537090990022034733642500533165079409738653790711776146515544291305861269875557612386978184205146420140124207995541806558645617986974741832365532941043197457369401523547342622747915186167125885816529982883629909009311680202212567789694619096789207955600541246120922016768891711366607615186807215737471845700086194303404425169395285470203974217774456848022599628527195139580991146461787126812047957414120923487248965988707320224346486976731175126925620648336124211418621813190927211125141981909170363674272889646670134798875856897002682459758549858716155710374534484188386222058025632187885737675116344400034828296192219218637449343570927459954320041206097727514878104488835936280683732990131965363705321300788498010140594512854850599929716266468681826856288558767362402165802087599780599706185732143485367119484958990150759032626041480209844804063607664621482486776859121044563220440439049044673993140169394220752389397730840746217565311571309477556936584746619823564457545084481458346674133052851717545175684709336060242586535489444860403814570949822870099783995677956328069005871419342876279562282504028165843714041877243793236177779025088676097109486828497517727376138350603107894185113763150584527708537264324765568064955551611312772053870699465913165773689358706973203937959423196560603418301234636952488728045193636625367799082280446518204262592683471857573133040266207303717128765604009411232635548486498576082578211027833434814066820776682231929394254776309527317030635096058881615138848436080295533352701330901096583229475485073192721868374084548504554144781142626136411830188837038233737427242289160226668454586044313514519893385031439597212930170143822039461785335762465958581503077042649216238931950947072683864388382475537063550248758974326323680238384222943458510387764056963328423024210096100251918132137119250738285448995330968962011995750139229676221316071835650557538088296957837928544841798240819089043556496919820912535624413839016504658711024113010863248486322262544264433416701531032492633693940975830696359412138755530252718325150838604604895367394100244738608790866686738643233808521061665315002677758468245868057601494587244440533217566951181447209685507975288596222855121230441925915454234109173316338714103391270433332395346727333774996941110668024071440894391675895178794751100537248418862942014899793709896754815684907071442444158669192844324174378398628282992802276565120250337904008492760955769753556752269764782754722618927060083552390888003348180856864099280099345262137453820560278793416502099907216445469006064601382911246201886193735176183106681332649813198393291933012999102847434665422854015077028185024934028424842762204600693220362040710193956323106967363224872609395749218419838262671773564585593731661756919784846730708070320068185158972819062660826613247832904572765019122030536066293386273822062790047764447992272190315999050115840803554610614111480397879609504759549925748757489599564192466242545752199887765214785241600285625133411461386785605891299683192848357490411195749459109732075772118791573379229565261774164165805068338709058550475507459525528528588280160234538383225475068851488210023381777188190749389489541255713363845253844079931067436575783738017333811565939033320005561398017572629432775745712212697331272841001825833465883898039440476953290393643769692493685741111075150982461687617233179553561523203485349650692543739402088696734390043662406194682343159136906797285095637382245007449136936207359949428961711146111580424981702602897230053321297905701026531816500281433985432959948856854708476034100961116030346909537741358275668846697128446899304137524444292490100334723448982826790385568427618329857116628131323628930020391388676633675668800507443695386262596262153908558008332556006619049965564277201635047231867344265593742617332176915762238116015985647265398538535576042247675929769916620059538974016362398469278669084929605817511737663516902880944021771713053516868749370197861215025960833496410937774131846062844153260049526858693729709813109394300247456103387043583724188401008238734443095182930903591346481944654762918449618744819740614281619751198894642677492255960355975788088273560115156013416428399728073929832525780678235516620709980226432797793371239126410423053977977775942464266632946561199836754057374911104054746288369940885183772319615367117666076701103245516494439332150320783113876060462478656931933213166343740724003085181560622707017610721326911049508038160803041518342833410872548923651646702736024490473347562327165722505987691691085110186796970685478626822485886466275848979372387098755949311867368669494547709456203636600441905932910727250125141784711947093454830905872811869551276554968006307375017145907613186704855550094197071625494655913042686753891740361992642794987419683223850352700535467254282660970222200998903736409401944785172609657730563770118738009966021234822087397913399233810672576456553021614527311619770488395783881989330658442847815759340463300620784310083015666796215159272256416544011441242246229473955253704939641498927775148394915956280057894431551946685684808836425492619188842916032398178947188989085403187032318284208281024558548920820104192803963584709698248088339279236473438372391971890134904056780440061145503092198962022604903564087664578874837685369233478280279330872043717921018800993005072716002688808363433329629647433769543649353527262647499458297090070308613166854834356229398957750466957443119076600724005877001191264962788129902608487586560897173549713242739614456212806148825870880094175722354869955571263158321033497552928199767743596445279457614022752362044534255516122459000708857217408483271383208363440871733466973864970887874719563256716730108252582872518381370926174311977986561615456732703903308745067734430282660188000187366532556384338996102306060383535995726356496153101231929641139734766380798530183052717479993811619321985498633282229934146922165291140181004041055084456246607993991173424737394030992234657155016961479029523102859327382629819827298914758668323944947412586597349852654367022779716201238588998185964877465635919972142560607429511075456981225802318760001971246195069478267787570645017328679592900773680974355831334284034025784614971966090444428254760671031897179155745068500458816236094904206113878412101494073955064238127426619072655673324004736686118643284625811787585390056418560855725833324089446048887878026743845651736973502724076024414629487815138300174914507885042469223994707021748829290420921199728662660797257415114628807964468122996625610823793850578191327890337302376167248678861166428881536765012767797886996214804711448665271617084728308426708849440977190209413390752831034743225694486049751256415506742763189873834262468455858477435828166705588214289099412553875639181650450018485777762101446871556520712451085346889210570058237892551593767192456959246486773020182819775852555362352655695895635080010735262823285166632016459085907748918301153222903938452174412579243813273302125528652540149018639633916554026072501711091555103847953467985051765838746253553196037333608712536676604637608992815801478465209832642252738503758153398851308614422911207334548344466306994726353389772241428338324762972750919307381087067109529937872308627488196225845676772683065342639403164184342054930973739377706256374986140585651520107372650128033288625186468327852482043127820141378009967928413909431380055264904089483350752062750198151887147284375979886751892440959710605483492385278084615521781671927987389760303886541041937027499313105279770683645073651671202450043741853371338663924319554283564759300249153484083163195407248307239120772184216884960220640913521419979305881102885858488556589522186703364760666107517810955449962188310982816328996280233404099410414636991942718207791543318763544979317958138473729561818487937882497903803963354228667575315766626375390242766110064199220886320020588932638261987822299376612308300364092189579291124512926401996607023224589631475854473738029499528844819109569812242386687088310376321075570449623857569184015938776383377979577532786018680140855759787013245981984953992860817404284201823906209024420120816371217322011161346168406167729338856926248391167000489905503584287461543981843849187114493222879532167514915968466221625042620734733014473134352423994093744320076753453214830517246598238395053404504668883540891710554911985224294085560043224883668493665895649252874681610581615569081438675855377720275570272006438735411431239698828641720334486321935804793287017609988787129976498533205011570762053749891170474022054608862363445689340176577610660326170943236489925773629100024513818401388719320382549366867921156573946040336651726975459290081286985845752799178788587977929751180291024527483176919121200383966002364345475518441996083610490836945776953598616773009693763137266993705419431890348424560454699494778059155544472099993694802181537203983058206624823548150565476755762881932565017161457833267565448754022525666622001459303071052474358167669377185856325085585387875312841587761491474336503493914794887342847435544010398579815127596928741195255207218157302435778816015814341664839724699029711348018584980392663458868141682014173983831117726741862580831252117402405375221349433069735049945848757543814683748911011869424107542471531626211892337507351766548460294601314372400687689109861079930243472394821282050446718178020335076736776782080651692268208102930291359524848457802510356001711400676290402531465025462755506934342280215036625095011422906317250344846923447290322054944498496639970063047459039369680122688845102272796033457632671490966841992012534823467139763433594279800866165531635894227356653367978059378073307900162141490843123010329624498260149937959062002292589348243599178871524927804588655578776947450284202474117156276135244178319040724046660346691772930002883774487924612068050324159749097878391542294295100682206402465342445236132487442860247681611585337094185365674557323842560979002123722872725463589995959976720939271178985387794875286199496910301671217619928935602878613421756891151904966066510432372145741336388329813822162014145862515691321704284073464068812977123655379299537233912530121638050622788445355967241314017692546650596455286465368885288359510623755037250652490845799113932683074949458006122452485863686815128071404837018258786592427155814460103508454835690438177843428841174630819674285275034398317681614521556337040707714689965354240930803527946929704578313227922730934062114894614406588600920497470785336661779414905687479999213435508607622973858213035968550682218608332320060689121713662957746230003515795578454787364282960115850987854066449293840210147402987588629539942919892112487971881005696204015918165258698717159191336223076587830526779145097893572752416643541600420927849183309363930817481890110201686664444591071232894131193246591745846968231508173682346131532246006086406891722050769133409583121644874138554928451005008677861336512262802817267785760598510054716884035427192265980523369403905261416701355117491367192190829057120584861889265936663530814981756953106409905824609599744065379215874311537440899935068746905218038889104365678733537409277907874581873622532477691248164554287358062991641867531653003241763804887376419599948225190809965382896772284691538380658673137177661297603069343741445778177126388836441571203732031404198876787938252938505183583578433526678528659504447332377388443930673240058852857337613462808871732677371773080569377505696986603090642351942686963826084840663725270550348303461340958968304635168335613245582330715352342337521560691438602270868216593029601792253101615919455711394467805698195388156462844251512428694745407698939073626861155329455290063564898445347322270500189228509247289076249014072531321214960283012376791341049019926136024208289141920672619826224885428599947691980027238383960940536826862873659235804236054254686279599409023076787557883779355319907276617954332745444517127690057345231402388967305080003314319189544540727940044763732526625949771205905905344291856415962219166557557469096563932094687639632420932120103780137425079748441814691496047506439891216951288567323471248696565210931314877140428100954539080898995971964699641173709636802768313256534718520318074213769872636655828518310380747571082295101716970769264495064753755591580124977167358328260715963227864206164821013274698910943823396710658055496508609219777111513986820337245315819761860910525034467161422880554415247678795078475510526938303515055827645855179777327929269917015820935823569174303166321302194046369749637638021415577203584457218232371322234437959801439445801837060662682249571435101993362403697647927664632978093445861893524244606529832893769320985750168841874087882684791149880650349985991540822275882533950738712993056761862418558018923629875437359043219071081509237881939423818296487630006427753598447807803311353967492465028011184244894407320135641574015572984218873435664102169128096776249212986706459489381214412427219088959093963359729375874370628137496318488134768548512844274324451357142039914542175115426935429246322780965818967674100574051596027224055039575741326185976132718881320248536266432842056550264543680315199990201888958643951436211165296803929920717056038067899516612560885071577107568270067651249633637989733986866322054490699034800076923787737385006390500520640282068990237964407077881381360559920471807117279750897659935547710325891555258903916600559492654802348566936736094091587742301851716579823694234382842422984581870107492843131108102813802024194873900315486970335979074225066381682395095320215766183090515813152251987075356177962599773041262022493602811094258912072928777857831927659100555539204605867967773431870382902180870384866729477067061741999015525267874189351947186937998615524755447154791950005914423080693481800269409743549905086653787672101834580825277683939930135235040562979748848813722812624319466919578236217663141584315191701457227974975574017147778858041751187431817699984224023757935157655176282191978326795865932026640323681405394264934982251928074831321617201512250099718283650932094189028321092311293867234874749893995789500862408713173525993713275132006252173113641014797440614459720119101034699315478711863487740700866865470295046721952884267448973655507024456809075005242852320359646434081827750351596436942313509868522811624742257133085105234311880832221442952550577264183155338159512838877487216511249520322969392083938246261666914071296504661760199815549677273275503446046253066559377643297468678505252714372911877094757733615435115118746633263597575111700128910190632918232312228510402047030374862411278383415416740910874402976681372353318248755911701466988770759077144776650070692402234873335352641487223158200655994489332129392300526507698665379174103325462411768423355932815066073127998963303880080401808812854391252482561967889889780140930248147423257044312411836574142554490938590788426304789310232276347497173756037651841156223756016597674602798072991767645164198207955731158568662860594106834218130300275854672841259208973395699629575532557938337573980059357572955569342351663605609942520639587734146684497233886748397869585043583981363454648270148056176144726951037225158200585278671729582361838242266358999636284311478944985589502797189226975157930564724632674509365182025997829878315491491442418367560481956647342829029211146574321572288557630814176733853510435724546355632001753902219779364541266144566380229413111368588749960682608360319197176869874122644599466907485187360016017229851682590190108348387829049330765921965798062384208862763047817108303362455589533091160861737428359570271346942384565879757096056733160861101916020656561021969123489495918991808366519210237230856540074945947152711415681218077021421140584753245558342553080682311124399419312018083142147887245321763843158793422070496835431908630783844552509177398762070728350498631602649414057136764140420995413166919373780285328011540272536610091918453881788463042936425348490949194196084577557323644278708522559502412228944652470817545671202482942529165267700744064429300985680039822033540214524623924748013854353999642665902049611168939924852128157630674384471649888340712301245794123071606069228421763355579937647797252630126918675832974554477719895945912591873874898765758015754454369549808147164527723902347474283654342883918185434333988871444000229280055486733260546456747091564490321979075577026254575131234594508569033309950084013295251616858995130290040422302740251710803849231418400476468124140044297230292665514940610866752586270154565039512294816499040363606625340247676880197203985844333569288964889330973885568784933239708387566220171665751651314336453450149520978861043516943586059767326848276849309578801897993124201249828445266418914495303383241334105198479579578536119877633562423870633956431584901863749601484271528467818360810647857440583239719187759866310568955962418973944152035555559542060913122485618988436233747519744295394148428489213850852974890155196390919032500566233621468147357467001736784221161210082302631571215235658138267923049923442869392580671621616419134852187090192301063760969924784791622306918173977705264649739340674105444934467311525473351536085887102036811911453820225234181957970143749052842045765475025605977421043046580166917271413563774703187176071293464404183821351097512818755849509174640795108901809732005164799549030713443566549703775912842463564967797696072379971591558536373998063431359814312795878663012154076365183156210369009110756067710822940715313648970337349527625580327887785349984221399015330590815978088536038549385073708337938053346874657114359815873364538195532029753289721391784375266492643325132314274939361754407582563653291382045535421987660418270549984202606732997868124236823590393661610900470679947856919669260159443571645176620886064228396173996799399179520607143572627070319415048299672894982438424759492806180179935422912501763987638441333574681457643914351904199935934660406375483906148493693481068678589568474463461358168136152426731887337427140289176902505874542328309070059647196976169996686512872707432077486051853654669133694098177953422345347040175421740940704543471785400515719816480809915348066272807835958293975409140919170875778713320823842374652168734237546461949189012467529195252875015107455586378939935675197897805000444168090129335379235314510901948020490693985586387706378495318793451975319448468809339406487100190405423662730844511330668326824662046645183150922882045377394902116501717699150789287119372771374316357692495103269560412721598075290603334318397423027672701411152654046123247964653036195260376649848576691017309531714072742758671390319441773349618338316100695622626723558751716230642787560834708338420011809973757997362974115518686333310647400510621153636750908134432934521066058532697505044771384976840438618853331329402398110955133248250273872329453561811122591288191676200460636655637518528654131911696035464755743714267698517986238430034014551295191158618961431251781130185827132254411900432737175865635571900384102800956089669213083092585815988725582768324623201817980590379643530566753421788736251401014678456951195872714283616496130634901711445752448826309467140495899219482396783025635069113894141569969918467273543293799087945788792859887091731074567642745676229700037880181176798707538992719176464100600655235480638754280951464966279414040402174567607285068422593160063869164615644673692508525367466772495837670004476215408454568918513477018878703286425027371740777545591089517135980634631130948116111364807604184565169266135794278940639780369981090890871875608037599635761899399348244083082684545393072379224230096672037411668473259051650482757294688948564619219460300107842102917177917602265638910843683298032559790927676456329809609888540974099582278193725641301951558164796925766247627499566407686095758172296900025608799057777859155993060000625553601628970796772165211971622591845597833327844459247044022426857394789008394171235182268584081438780746335884137967490429201239817722609832694352887862157497305890539573931175428146002755428452464763231727538247308629143040191181119121308456064623405619787998026602590608252634726480685095513709630383069106611477119761320456119662292228906773724507238603093492643761025893018404117984670254192555821612296355785482127549562508940690539428102161120392959891452002349838899070962572492121865310797470467493327074873980631156473046641630902778677372904074229298339848740149367445381772270839939722628923834867228697607721189324411538426063653658736296572968628740930966239078578700453718179815959354980582452334452697510964966493755266110901617354271190247281162845491524859582270611606048567141190126479372952051520256780786694015012282693927844790387446588189204812529867832371503685221276791539656299392385308815008518110536536089230859985200425358770667554197882519075939123276117778016156326924290444370981346556634479125031230972119535927152489450612269224414255856558818565194785488898601536008293175535685374922990094178282355484529981714620753523039640701140239724743869624939741396306534148986217827036892317980707362941105251759033321721922059735963933004161198033853933797231397812340422313419133965346472841064504073269995891310390039761523692862222075476670314901558184056612416884585114874665563958475318105051433169258533308094211392771178340669220189355389314505020150293188667940314362544589708319340794247179052163157285149538896403992220010845826197072694457731792436187552283560677911202467822579406822102450136789811718133977637062864553010684128590936269283489515979448614650464608762108170225969400527933553839730111747732116895706182065100672945443321266130089747535231911428210128622596798420180172878935110729027198550068814017312316025308987670008032041645486270766957714823474158968867573415850484533353585921062952793134230859666790931139678164746373753770736011675655227106367022627239118973567793165807278751536603107547674640210410174407506272743556956952972142533748893253489106685866359855821358008599884974167354475026883715120581026336045786757491771365175535774396628360911349272483116693367403781350601676027880549450056581216303443949470807294778547106095638824378843416908884229434731797545573457598207564965979417976564099939113913437074991352700039575532080220165432394516024309192047501651868509245490621345259146136626046205939006075877274979262558063537234044805079903073928144180249513047060690224977924270895253113560873963573812846239432126800891149293863428321040826628091506138066794856602467010812458234296038859720364724619195954230108428130210787361461697456175996019420886036462602756032137319534548073279196088707980307392177295817274360697937185928511809947171260249087913245475469651950396350192785435892190567827277387566992862041379263287503281014445084092433771135579630888542294190442978622840575404797928441486343890692336924310000644542684259161725248060507388300178404437406778275927062797236386649337876432866272340867956128223955442488381482286726494810514758578843493822759354685891732915851519716187399366878046270937046820372376897131184739063719216738084611664375315715686347968903847160284162386818352813332305357993394241302245004889724760165912584882098495403373083055834390396568633597837794138601358904215686247268671730883523168604541410047988106815673747217131276954995704514063726755230108017549004471840349222286442709766892650132433404661031514394340669952487293976061222423476122094676712684870636755620471669738713296710662926641539399475491931755562685147068381340648686161054651216873942737477584732559877763101359340762679833717915511061463906616320612993497375499371473195550833540143335871238080330960825275355279949476847413717689808274081271291373176751724021127192500888881892594183263077132616987837871956804402371795228284964290590128868727088839710092998791460949441850780849192542357184254151748533066544123387064105420898243121542763185364749003830542216449781915051836421717563932301287014807505192706314872631794777217794708099732715938073927017555546712352899721090892070760247382030822003404578899302931851146690780163030416630958943955386732367447111031452674640720177779424286161602217789189954119455581535946938914059583172680766660954836148269745180076672181356496200283423581619606460624147279003205649138878093227848424232315098826302577649655911842072804708087657741220184010168309526186269417782329296834315979968413281875420479006322304823400004003004524566920334532733760700810066624562935257526440219788704313231058609206603774182709059740163725640960570792984455222282798108473168722777408159659957964925821192234574770614767578749594429668633613817707349572899546943045839767650500234635913192450334334037536642545127391971058369322484420348993556317994803357081990365135787255665478877735280334263305887329303347958740697991692993803205717526033634832025279430388341224458866972846180174408784413782362551452693424943164965829233809240503411627804714941543638804299398954049941405492536766804994139376706811273382368368702031192312245671844023357161887568013324098295318776330488134353560855285208677699178842313184815640341114195057290640208782387892134751337409518006136124634268631233110082628120482898060909422254998634048131111526522119811383641949098588570512897314555304442578845343187038895214724884255012109884814891619406393007498415828083929811395410380171629584093658798526535904656949411903755164354509990487566481601314008168048559621681070532286757330159524893504971528202979451926771095991397511834518972865019623495988602340392451572745040591901004965729800800972939799208154767594533990553826717316544784832575635138428950735038021750071753784985565783751912869588928712398105817542763618290256308537594372390629661481494778330708423050843151679628595552685986663912869183178691737622358118384325420023756944816980830835105872434222004493023767636656031991582414754461204235187965265678517750213936485796693421141227786693371062754780495191908679829594419240764868951189340482110156178431327043364824566430925135972496161634666747335358390229508051735620190126918414918404737318263376880689033744251220712026921993328904659594200457509328180086588914518939428915983823197708033239607558329960461738804646977389260372988733685565265561791056642416122550381010970471429937292640762383835717823267952183125303872539952853854154527773422915592118595462597636168614188019141826306853593830660677331560001252713990625766286164383546747250641783486643639845845101333863822991023601206338382533896211325730475134562422226184493812819194203415320607752408054232540761089130803850981297541908704416017937169446615232270608600617160336621207402378654224916796023486409397011421006169861616171866085505675343835400491790453039546744753097374863024054276716994690786411431503634297398534360912267879273780636143163697840845306949169688653280606372397898339298840524573071348993587607785962537486983581304463280973387675995055851300965823421290490782025626647765000861523222323771190598163470789847305405105102014072286175093549351581191256605673483200848145605918720204348397607595739301891972933019026689276007973233571084823242136837886750218102726226659128793577993455441632770927573211411170295013898552554316126836033372783548461958608309104515960652979174885190663633584547939942890196030026553498567352447862155063751858142963738447260051592667297805677892895011612434300884998157851727830392388411212766301123379101922238028765388449754159271213395201469999977004291115442571297881740924055804470887643344649944572740617864502882599847750659975127895195557601614596984992408998289374878931341082137202637908647421924859999031979274612457754705329742327552547973906677061128939448880204890007202105447516971947151794062214427807876291797642237441426196111288188979723848904301838180180203103453634715462472299963174214518464811568219275319691997813070739031344876408227613019474850333946623502127694343509647105969542278540127565390133452847596458856472364615765717939350262414492250941249573694816111731277657172236368648395640756627095431575787131802351740338564310956589797891153109214663783627601412557712648992373727590240001498048045735150840277363492258162840711473030129173046594094417390162002132179066917775325189509315141599894654152060041658802064790195121208018270635510541571021288375383148132671401796094597649914277237770125065956337550097636070554898268370739215828521125734524629545036866754265784288814295933906657457702172439859437318142147282660573828499239206834798090802095049908243539482446032145199842218750060708637404284689613278854900948161251845927256097373644079258423433422633919102382484635527777069186935324641922714547590021210392699720380900530073583388869814172001191069605556459999997538281328498587867006961920310482537249107755944135763799063181798620473605943868619918997054902704352772117176731054985444396201415947408440622415439138053328195111183408704990638916197477226368715255986193146174543087137991242382110264275292089251197220677046352252510707145071228164499250844558205558765620493206856831160210786306446502421410630181779256776242395772347275352681354743561912237683429974987295230308524770875238955384141499587966378764468399973035226569352136586476436686696378062468382337743534892705280412757514681486040143321779211746858167566097025381514238976802760112156525297950613966602799399436511697026031649988173042055329061876169565493776408622554672203200413386123471584969891175859281704009631516934089890862713272854871977711359275364191716936191238793318091698710464326757940615400346737695327764233781355738902741198936607760070418758973622060480416172012696465537385183615119524225552085473107852332579412812071135326939171015805350943090496555522163333968027404702281673777248588978889532627663250302645285052677063483958042709589970840483549143970798702689994891059765116693720468333438307399015775029868903395550467081628782507309127249849534040068302556094272974843013668557251086925513631498588441707855417053996718196055988639669483382275434555716526755371033382291998747893078638809760889598955335725079692840370630040116750262350021738583812626778026167489263291471355455995136381425697420808157379143294131376506308631494755448803619806151441610694767544170778117178339698728235699034310744698196925644540177762635037354095160254978311355843877012421504993914308478986263603847024773197514943538147586247921538712115308553493222586872916334448810066697226063026935644382339752959668696531990403196076324335311685882636925364727869287013496543935767638655371931505915784420006942172913363774437055187877241522508228594960884371792921746701504393024242642295289548527156809749802641244092831014729744783284903745315825203454761390329137820554200162451506464995695536613904975612309575213820143215377484680823009788961244091687188088655782611372277284558944137177791362872966229464870685681971255419219596152171053700376853408684189277900509199311164913303202199681853354710909832069242249087130633939301368891047123376795104008468489434307574400219560986571690454983477344284140043097224314161788629826600454235579943869872705954348847140437682168344346958843890029108216632430772272241362457007893440340633638062904455980664248248904246557597537263519427426406227605760384769129002827908709073386165346997010074527848968268379872581825194637115934210774711073371326222554284488977374147883518242595561609431153712900188630531332341347538078089405329104258193904134873445608249302235477206258175744184461832702728165875606931922847350095043556011748477181765984650208447509984887688432926647781918953163422863808073087443847075231396018397922089147097450745629936656680639035074648557421660376887827412681744956314203113432463927051762445669483213534354082684005207213670117114695478699321490607855409034736913368510587632144074507605181721587891094816330939054834437785439630633140807986664149131484120093999029161224629222384232878685031450883858439932959410944946047895473332765901468756809996176277275609721946394770495387368602263579353719581237699933833661874911883777670526311423653263077204660294696511965050801864423710709330197018327521671236725959894444317294610934406171853462135642083057997649804251617857730549450631513885558628401543969556949163244942958939151704419875689470855463879671934317542768547621134174351085087791579392973473883649339505386565750867360984488898606448376513613769115916081179747488194442092541136065920719964586778384189010045859609217399613665619497901959822286339885634737544444066291359539993996957996430572984283138341138132183889402653477998193671280120254242398543096505917661013620616192526648692587913711609431001635458811551752170292382440940904131925014839854859759799196994636503917404420328141771026730729146825982879257285441940173723322076819748353048165278895807077732142770445476926630269409107038641570362683744726806893303345749853917452373035471566049992693088676974288242545473094988136590180650899292993466413787007321431578156539649794164835276656467695613708572529370502110030523326916181418208728578875932102496714233224591313451012200555165700483621219344001570077524990862677756839436318643615533527604563119180687977678918103488652240531156578359649590162324568529405601408748130114406615236922425165877190612504562469714735859181580893468814563373643819381567342407111239765954925698607209245038495986408985225205451383377967914501536868750950631447229518176605672580821409377514467083670392528131358982349405804981396562235309318416832445823084084602149183882494246862733071350462460578253399351333193531031356038924754603311195237974927475073016607604376877902401443066065292548480391378565262521125337882340822732913602986664375907481192722476744784468142076579458607783977924638660151531644535029895654711251482731569322009144255955860727789257740554460924761478514046942963059984544109675919450300827168180238137155967227427961902373155452578256655804920157491693668200928051077715255325346687469980403448254373138617757780601364933804800074972957719971206945006099314357030060920682490125351420039998374769039372592880010767747706506272208329383164669913544752460680086776270199947088778733016348602478224039109969867520947888675038119820441248822776015524120036845373170998533290840403748367188546988179587910988457911595984826906361301233523523870558008764949739879023407883437618638425342141034583769843060065745684370042220019114649038393316738630971970730722963424846624131542231750083385730407244938626014541588030558025023490755315090295550893694316425104797213799950025110667669886100087515249465352424587642153223492296823448116385421649828548527269022986135952543056587046086414241855250015933907461254231675923256289214059272720081712898154794449234041417084653249466394095218523719438388345866611134356264219658471777838713218140470490796460624826456395810616997223101316817101020412790515906287238695060061087407176275380004420783537745213479060051139881045788785899384561304955016129333032195196268624924132835613859948345421022455018323465820353851093952418678177725057774624650029418710426949551176483580492074540813634295500093585352146009949897668931790363429234613544615743173104956304727249456713851260463558493069812896783965383614891620923038412399945561061532175208395777983959419379803027209790788341692179098259577674783243396013763293140536150438226404757282926396056322277644093034479043926208114248925697755011129320951673573069847446680920322170848195336636078556876204374702644616247814667790408933451881606267729457999475299823654616210506560162091169766160135838899439145075301888078771732211397663151160182184630225317147652341073451777621054659847208504119916762337556173609712831419892037617970476557744619878798077455430856343692910333798507419060312724346680453402334924272813362936623997533276619695354274749203103931816163670799685380835313357136824413624115351282233146279240502229096710972819678789828564603185570133127093138636990335041341642548908139451554466276674792214509238813384472262413028070064749559515707716305533088194214710522749170213397268443170154145077230430357190879846119492745495081303929868196318060794969425511304986400938549480560996326354661610064890074315808915965709434078988024196115809438251960989387379163197307295879290077944160480618886930131305883743244123897835858672710921136087839367665205230891491654339016452252495767920549033526933049474556623557194798914534792623938967898502894521200627459118390653978940324191615694700706412417854853170241974965389987830650738930049225352406327409231537693340644197476579953625710434303184982756423013452631011039041763637659194692815011243699710304313693351718918086097439305186609273043412835422651408230224342529177953593157224212336295185107742312525325312336265338927385200640359658877185133021177878660079616488800148842592411980177087992219673715561320621498216538006387342693352125931769385954419040796206370701478955175047721187787967202780134566288464549668406421594330461668917485831122201752097757878810655848123762181924806943006023200157260588456005023554075470747889427825072826307996950221398682920713968441901919662435913079687503742259161315234976436662702211915355084664603977395522274195903777084116107344118954314560771146844960068758997708889827494204057205070926987738201157334525618519511567321196741250065015713213779044903570005992295662437465893565004849496515561019723229994823107606790112240294822972686688681355057800968994033306427238499747518389568826080376478737527128562421398185376745059415720139313291423896422788971628461860483574281266364613425558430339194856226764640628006999741777185900913764911339624180198767082820043463407186230235293126295678580557346362916336189946710175889648200753905328427699618289609833750424013250340387653586552884182073003099808432970606079394411957032287675022202703353937086960248920833453945734186271052118498803601256488508903880978293182416629375515899362206960185138834011883106951962039644633488414078547565559377735932332598726910948296965611404007869325913853567957593871070267785200190212323580712518001271165777718402357458202683325742982752776230379380727791463795524596212077223801827571156809760328353345480151223338905206163673902304101838973781906388294650104918668524571217161050011263601919859007626833664902430041944472464698975188250056165679638464105491564489326578556529417016275155911861115637090792929758960896702762453897049658574733155066298080801124817135092548182196059725301841097510198817484560840362869274423771007396411102475219732433403902042509384527970218875367725740380947298183733410468542140568580399860910271769619847143351284212722762190465008305696562691805912734812131418912687432456504430218620949606891863024727302176867227261412224607547646069736972671718437888539667204389701175320747190947895931531083858796029629060101930874391726559680362935942237255743596182571860445356420557048522068515949041132168288939105808366915093101353115965238081943876044656286084642868458473916365968637517143054696424503965281091304796058460846835129337031709559096486360631759094537789800350772210116478842221220896149485989379923361706412589824878839603154626153317832864150675894436829088149502870267025082316349901599578721473794287380632825494582578898687482438721156318921225823926483683267474463117783206986240291806439514952474179761706425323962024051738609679735641410106010263936442691307194402085140654742571674941618642914522523179463756654912312929482517946403868220528524044104756992142274260853551921458505920085772846015812306940981117505691289804686579295173097971141834617396437966817587747751625654798606706809332084686429686285704258098442058328148330137934781869576170954088375881301330936374114284828312026091244453607330978661036641030790286956150173032093778895197581873278592008252381715982725357551796508120958483479554695823736614888611471321651166313234635631730252089338756420427170596178738112620241834212686814287153902111920920919792771729550614687784856375027746000690089805046584473622779932722665701667859134887211226634571751412805393565912855459964065500312390173151730667107077304077383992737682641087110905479364270043141012437408044063751317781640197523657849417995571866152990667642801680461589897044945723077234389303944208325804724135437415053444581505181545173002494924578774754387797031290575106980333705582732389683930687770930501445406554930905502340318110226182580372149173551203356169927796651895052202521816636800928871834772592246693603951690278914298659946061477121948107097195912975529523419313208316889929273938594959090741468156434766939883513966418207779515555155537295549491319596987553913473180664568673093452597805246272513449271110990400122483205851855194281355187366878761538878863965758499103105311483852856558296820533026252177877134197712804926429586492356855044155629289109627605167004113837215426993742584597014911751102648802283202981499128143217000652575427767946304558026179351849384511783687846270945614660633610968459347152945804873163212866239457726164564825074309223183796790584977749478245856106857826701203387777923092500849813226950201310727318254840372732819561505137752654360653469530146969188946450233185963673900432571248123455326759458350140918984613500071822821924833895351142199443990410215927643474688475915612652747985235468044715869370540688002137820613276740942176126240272922838633874929581077230932946572732897142992683000879973448379747598259461106304579629382191214918114358604511766756285101534080031737481157717280913859340029562563238829789052105666348107154505085959146401935181748744487644109381125465946641157589456829732061375266758857171189488543140409376654666682075410138369531861501311292904980715539407266271995929731393036487495106624890984238177432590486270065025913129954416500950441201191886516324785686696946159371894482133260935206083312251814983913142712398394066622598481427650240659994794948177588667892751194701744883113550446851292129692635970104841042068632274534075336923561752155026102627483088129222381497113185099939277106613369879205308834390437977864665073268950447721987800397369032592548024487804524176057767068478207839482303442592427145206297031111580160551804476149759776014228425419554054046360625536480641680931481053851715186336064247792157854989566189420627178704342978100362831144141243339311956202596987258243732018314084752472715936165276417458781788529702848884753875040021476229693119614946074102622173142638948443183556923956733121256637621010496881914504434958195168190630984558508915616170827937833580589325030117175869315592987244859977120545383420620701918368056050185480154759395966270677602279711756011041693048498595642950375014846267221517515988430000343949671801857218874920361043106234976813308764388876297571907050323218311080949886517913114824881476851683867299042925013188251152295513899764427487654860419415311146523297575519273975719252262527597101690289331144981543498387255878945978978108135649320579605814267795781669621379129097239922116970504855109302565562936540572100692301905513715011842710273153393803133638206063549001044625027241849123305012982868464407396634298330428434764565075842614727924196722507316924898712969202786284412943033307220178582500324844936848455488906360405080801432708209170286943423538009122795393350710228024823496886426548954645382998351440921361760990383204460834283213610688797651602667411970036010172898565093536495950348070576970059075407333282444342586089885414767830573760135253070580849986063790795401703284792623560804638171296566395564928241064883508899540534485404150169857094850690104259549962515877674106139256031431701766851552240135398096785488168414997289678989274723189351991943969896568621032734374754844188327166013707923859571751679945658460182602012929230465518805260821410684126081459649645223852158143756872519906281897678504055352429150976008670152914390645608202665395012891011250556494670711181676614637892793686396985754144402423954261691183147842405167873196360321153286841514377553282877750445608679897509258604459223542863939009357735001553025076873274472591909348069022858020980237051281644774657012319348402505241831381741751135020017463469696213532310517028923473959624055197238054302234689550746998069604553467167410108234502354688951533926084793838027546712511041153471939931331412632491487000168779358743679080764523985758658228026601375862695493561755306077896796919671321284908852281408679148790110307362418999361032111862361390127042469228182810750307427737445395773451094522379807977847839170417452892342794773946773255617138068589767863661095765090096939956224256448491067920769925607812092841138788487208419489871618854360134669507080687278437754998379782862976560092988010611976424687260845672053819740644511490537417563974398663482705005141066344877284324565358601533934443317891588459295639940873864677114087245559443848061891214055909506788099267014379724092041529880310212885876315276579739702531302568267973451869303551620772515957109823835624301273511711786571539602911433886711320675115528408496771130941464744028120963559985006557545192117532795787310594782413528318523271847051462090022461970679134304866989259641787911357602711713604234528433682432601755393672387913965348403592008287046154461655697689122114700950141547492057630922943016189154277166896774038038278604304729628651394605055942977267208327535977373905143811646358383796039773900867463156113996123653393666135393230853139802344918902339462727795317486249916502959163099086099290941662401100728599851780942455897382267631909344681580775647263256179060849455390817477901565560500007180435536836856907398911991000087061661621567378964993638638292424009119340672337949041341628518694003828895713793749202976054020418972457504791580680972849561859430537924631221366738360417188102464001650404399786966156746346956252339293610046694741401978256633963925299140987847365378142287937229512627381886290835056526829767457668643400879370505883761783013920451934915038476529245994860354795798523477715959406023092780690766216536478200461593594161981217147178685436017132118238223923283868396643553052941364877554733880208766578281728387278896763365784086732851567696228323677730475102508572405864400128889106154681636594822979758392676622492843135120595401076438241816556881091141807260794768762619532476892489382473889681546041121238165020328457418497180753942402762984656782297735198977540368467543926354055504044239140891548858065887127907507211182401953686339002005893752202870282679439186493431535036296575622066878783522176625804072248205553546370911502971423833130472254486456959554092770959082447104071153380755171160596994553784418460117341540667153089160054725763019000913183986466383767765503300672074108298480827564894554246273932717215358940423357887085882682210929384502680733193192138506121775119946685105713142164468180819246236958959515983549938265673524351431238121508779432067594178194911845098274333630340528059045983602673768660875623119318118933204291441801138098979092028993393192562134224812734209211719450698818117648769503729363208989015982064288448283475538190618848207255745542078555731168810239107839852196818551102518653541569500200882014007461748971496984057833228582780207135952567904013517942023879990527058292887497878591715848457023569200570593358874905541749187025924827475842743570981163756840623420881206409015066757799705730832940622942046559610993119614246792377056549971324862257851632449564344455211631599590519194581691820077123974730137297466719113409101676377106119044479792606241896220781225947923170884586466730758750527372828308522164303743330800326766272269294284582243564943745873719910527759889401066482525160240163757542365950066624268598783963423170768304270610662426469237547150721904607486728595705645010797052252291669295133761787059953727944393976512677878675347031416361118923581612562395590708853854246833518061859022728971667400661324163647833332586620871373186032663432887748470074037532480887073438766275776898194746711753015352589443497958185296939978237679829246353383326357626967997895203668775417384079633651307692129047530163838322831712638251444918606267496901630084457850530627239787596452286904137839143344571436149974623311808190653321758346486567658002554067336648389737203414130019764468152151689802291530886018271519142990527478450573833097263602128898895574911805483548578990457334730114171124767314175038759932570834002505058764476092911699876845925370426908546253966380184518041208898126653703126709925406553957714344789194409291715366746068410676423362925192792427555694657957876858590556406594808697821061533214754784754937207985521681325462343591630704425519348875566898247421173716365622198755221290033034537143168652197711521093538441787743309778332504451035580645558892877369935463671744079888212238045841284165639896643542280660677690838540079524059639747619118532404170930572667411970829166745581544852171299650730229363040233191440001824514538926214147680303509683023893921129360931810724203050527572780561075983778292668599082473810846334778500434656206828909865835312971272585358348917606012974800969263074561519690352903279655914925506202810122721901086224124169903461779579324480756278805192823212663700241823692921217286468856806014831877871161261159331247786433519112499814131985556229314705880345360450231522756478282321113744692678060070211622700727197431972813914474628751717387478164039091960972678049869529646178974982645074192243024476546259238020695761185906522713292946999273390305518137546665621931347755764634436319252967648603393252300830204970617678675775422628539309305298169843707603332783255687953956997732662920438654569338206494012534303589920253295606422018156443694367652700070958668673849531218269539031140852480100705250778403713366881578367833203437981485016775761399027312985284384793071993205835583146866561880098225294180409197434256175161335520756256390805189219174323568252990881015630829746457068271048004541738356909303721126000592002191945735731799080255330689681024104686833920716753589020639658076077423385351349036918870995804151590218219998734153378083439623637274968131248574406737176873900456015345039405249977063549817819628623164901118669982142902150680845834582524457226454272986751313804157374723322900689033186998387386727957436568410222467233309196452506597615259820948969802851993567413131567572982585586833085844911185229369831548372448653837413889511639495976982178904375063868192794744694909610669786612056587302657561638862561971917534744870299716947410632382654727317298611878535074398802947447330613551942288417932243397029358392296444857791155362406993444252749681330907268440337250326498898242013366034027470306001242351631396919154521541009817066222576645036483749649017192888070940286059635872186052529131837199057026688112051011793234337041442372243124478661112850807842956725286902570086776409547374843050785698244855052422629432472942474864408213077635494314763153078066240831104498675888673672947738636766823526528682822491014126974417196932907092111750034423931625689626281210116970256020720144181641116000915736122456584164795489837928683996712014763321603118809773071750529107173988993656212961456705876741694355591651208343861844538665325014656109445865893671324511390834591713492109979628421662625393661232072005853416400114176173567979772173604588716340118110341520477685064398907888259079775741714229078438761401610376865246363341710136357150033764496089018344576192984952350887721048437455428615058726322780945031450235587369829269570842362890834056749039275810277520408318730324938632674352094244172355494282724513865541461369936957028379593809315695856066320808681838508648295024807341990953490958706871773575714469572461284722186800776993316270195622800412504940261631403723810739822570459796015734457599058051532294899627001419609122149899440095600722884682659651161607969743305837501600948635224371337738025508508273652079787191522117806595952448627524030629662579181891112182128461562606636259951379260117048602780475953549842557851362157890382962246739509561667948992866129479196406382749361504280873537463086989139327438656919271659210146389694660876885198960387022936582859728198070574984796199479084549151751468244155300436327354949075367203858414001353451623087714406736215531254911262294215410739435555256113022910494642150784805172641936172229121527996304699362178250389596433518477248800951854069166732344177680307117820948216607538753303361326161456235556255047072075836525847871541717055861211608745147468464164482227521667829236013957869003861073667984095469629850888455898398366019405733248320489764752830201423964124490014535093365306626605329482077256542687682785398300141297123060768244931059939669256588557534823048006449840831667846212377096770386546555758066218909938816659109976436963043007848938184641872170061171376784416619821011963666652187264068402092712735050307477622748155507672197254174656870022066150929252603664411949899148630163151298054012256828248635232307694201969053837975113624450945824052366536482550345231749290753825412612876814477701751172613597498742747415490698897309130980545418769586372341210261317863509423010973825198941167281315845253935322089063606308765363079297618232528453749095697361866560445228181968927449964545090813060654764336277814658857304825541193142014952517494981037727851834114679320999589867613179587795158491812415625696048673364650119345086714166897929194472389022986814372396225803119208788662750524373826908310757272007475389356408629869062217429422874549798349710709382943397900550897528386854800230287010764075344373930101034237772093358709878360172273230465141892805773899195947933864060941151187738372749525041790232914566973188698376795146301603046211781009864566815808894881866970815073798292361573803642976911959429509404319538294451733650668873264957635554083987254266622612347548363411747835014823894297322792540746609551007501768404839080372979014966029185397563418334300299713905976950935725811492803584035460949170152126853735525606059775719954173317915395479082207166594995471501245168081766931760182246273784019762180627235021989415629657388738702574877866907138677896702725979205145671621888769698155516341676631864339202846362764073089263763863483476577777514494113258883487839089985783424412450537995377364561490169442770302055262271976854004803575963339003152431439869234026194539890846945170494563618375125906786401615973641206294455272231673086053549298089499169922332119224387813128608507946337886308552356809393980038032341745294994785477826173491464913216643611359921907113740207918926380951750848977688370063433377329758154921632940168310746287841793880743494546879376050815227882184373410174425179323972081178227627238575658688270164176292312475112855147779913834353755046284523473777080307600321285146270754853858219278377639826963710427346508312296533479259586854301661756806615001389272433172153584915912880739418492250463781980408355157289787002310937240750014547906813221963644677574360062503756860183483701327716470915582373779552482883624607405420564555693115505048174402163431318624157464208112481100726329973049522659043842258806307278769332323277599855537388085183916560057027659097974856567411630744527379426404934062431525385955975700046596283528174932209515693243906057526038504995347087742999603092927732483643796654147462966010765145490946769722841572507086172655349239257755678416687025835989318041357746372884265633313563836009390279648449584173145726394488099866804226333992681360428613615168241796335941625790639009903523607171322065323307160785380344822542043717599346378161342942132409413480548461737660744608537281448003063922846336461466272900811848565146928309050385390143827740173194189348597503013784640316062876983644725343001029655028625966803072339097300552393697774170352381103954566707390725977378133143908149070708136157349866186932661790549320433296583935811980725874909522766388601213237699952829682960162144294393050985872894758218199875639244436310433919302916347611846379452808789656003569573907975626954266069206574123604980939764650407690369583202109975698488166777917871257047616150644900780443326839175851239701408401961291412527164773012664628178116728293666012493509494917696666451974935572647781668827742683601247935512565917677442474276136244008687268920938086772322555706906161692438935990376815917270409297740233021925543883865328671339941942215800953883520044391037793227064597439065960315875986471597859397620775730645175079487827997512336113429120297049611412016781175977314159392408413615738741151269660260115204880877458000074604536160770760976375549165848636028438509208075917105518548134820999264995267183137420351282595194707686583146988342600851673875457986670257636045942096806357586947104069452744397611739382418497465320474099895533185587202871243994172697087709764069629518559189899867338709976081472927574970546770840470023527672090791024264397044133751469383293245050546328542458852502465731857780029318185911659354754586744632366099789505476953783703906210877574094196956023219689362523956342178508215681464725097790694216879962230467135919166155724487091371739127134742848314383469672514952321460883144939132398390588292283152054302956958833130061423353294389120737647546967622278127722932556546942360675240270194895858467541730554978043097968286076379867363706128557357870155228228256984488011107649257270262912862569783897610120592856850305329206398777720782622264219685873637713722246393045583663914050373449227623857579644778464706927645665542966168239080118613685391966196192926320080670790637275951938444927517822853627889833093104333335379656768645542598800586757573325953659929810325725327695132591597425054641225476434527133961699349713794918618307210085013411673129852270225777056458862819325192985488673420070087412289280398463600099830244892487223454249745432836647406323952857639488274906062790324287009811819992188484439243837648863562982936157961416166606123965737958332562244536568751895705743955194274733945199252543562331861756106237523613463584510547601479893373672396602494473199178732931238660637395673508697791910976036997398284607778214309909651613896976829358660998193071133164875193854331372733881754293275395580546108359906831995983338809676475637556658922125140099270348705131179010249984922610283043588685488654052992621200843424953567081753489121648486663033971998627184823480923485295744859512895064610924386273562229013778291829433168587218568657749205863497724210274916077845463003321346605402713714950857958738837759701469816165431304701390471478830524338151340929269960369930863505037128836507345890534581077692299195210733351319512394680223104049895248864597192009086212354527555887114137630138184622359199080208622280394865531137321563200583597546098211449215408427362317835291107140748525009994218868936773714488189778247565854639034357286657470852515910172644021696221516809269149184789993187173870763184846302125575730192489003625779782920520214884769638268206523377649639371536136241455876954408110680403467935112436765087443394009249105941477332503953767566975203738649350386942676661015234631670459142804075816247248778973241781565084260945053047735768089106880183827722924524428567806309775170395360285740020483435464898492659782752162905586677461427295761512282332698610589073792606187667809302807494401795633372702374453492156321224755544773723112450105183428816447465467200721466832165133096117737550266351589760567811289474842292502346029343165429783626725277245927211471396769760097264253519233558051969872857253293347288111053240564300583296858877065205822573708884339062089956540973923505668731304013869942861140784230262244245698854695653105199915829519599074100589916493368768925484751067174494605549091103782628810565670207294249251538693455071789366377750321019601481179864007300167593243221956821985952273230503418733236609366173686034769081801261595787490129513324653170982238271890342241893722017937786667563441117392203311598601663032040583606602380209208111519544877602823995970702974780798924636656474025943997026356618333266684827712194331929757836063835562866983472941149704918135109725664902202317469727582405622709224823026621641144794007056931661970748198302434519668642049759943797281920682632576665517652840623619792924571190628472085656005485168780500633462826297305016865336395788809560998328358703119116754647877673885435270030886773653527306881214500826025031247042290718428056364951635151508335262736222563072709425906752130334055998815012360460096704265602712681746747984760686462713167430680532490785009833015325473858987067322677653497636225907148372532802080621063339733339872985955531081204496822060394104393013578455471982390800662024097477746944453941344964892122925481107108402100255578849933145569385281567178492308521543943393578258232774024279467146823028841524879261470198785162151969955931959257719714135259545613734014754228264419237061458142743240975316219626368120894894251314455185743198030107042305153151020793442512812255024477471905390778294732291428987486974230549347908102877538179026203536065721964275707840488087839447244200834514974764859178461702840756464832973730519398445691568556128707088865903750934863166761680983093579476617409075245621849189240894572775313529020821331047991382157402757541547059857984422393934834934368585321749245965985960512130012912669314275093182366027371628232495348056720200814477618775543370870618213930999771237201479203453332461461224000176106437503347781146172753338941742894042317841038940221879497879087957009613275863524427707087110822681916746748308810031583902275772722778875940751286480590181287007459302230432802079534704371721972993874068478510793034727175919334701794345903968464279966510909671690222222032713034282468612283783575634985832214415643980518298098798183854323923078521299537867074582652823184222959354523537313471712589864933680573901820718760390072228584974210241367497579932210788698896198051650671963438446172981523147772738274562698239843005648079714047521950822324313271252328982935822857142984520245988151939216208447179340144500321763347821681840529164881799036410606163844210945967830917154015487366255477336096261476956168645540720637377751199437800556439389617381321410159933290594578048550963885861447815162016256574053009184543189526837335220083098538502433267101771357857645118540919157934389125872897136405046443755448101821955182698701010340391757958664031878685518199973283601975040479423585066100632337155635023984018604960637047314855198439725741142643360493931045391012917196434672031588231505097457298318603569295254682277870213534355076259518192769745706647223197512700008659147611745669381994411162847641036805377275719259449736466158732291399830030960395736126523964120293988267089742942826162449688201083991328081980066191936818414900859242010385716861391319857979151367862152156357138755174957934360505972559210177638803077234575076856238253841823981925928287937380117535671658210341373799706383004135106321028581483392460034231208468039314627681980418401797493385344408237853372491884544757627222268517809281621303914707722129690764265057371604403913018356390057100869391835279865377573446664164193162186498225046333718783962272365527694861362603657245373612111119304504077336903568216380197167718766067964541971823696389886114960733288621077441321612513402878539778813568840694747284498467428702288048881804068536279335989518275673771583885437666656422947128327291251254530985142352802132512261253282717478413443536192457293621595504364484085771088490313046097560582524428790262578977126219204567916829117454476831609403640299120674993152908500455273893807911882968776491763027198833432690488534519639212311033263500562142882187441484300202479936783560543416692268012938776674820503554458896879645026923776906367097445353662017537494252812877491910054076458020680326488031244157827251735843573849698909598022698893540668266540411689289126737773851116594273137316294189674414396704357828491733647268370658807437534383026952483753297379899415484640020092697368193932492113625032049059445625290300170373230418277122577474916322570091194748470908469793153980560646328311737226183866975810968591383239559408022063830434276871171518804495272694863437725651867943511243891393202501803227650056651122320639709847612814550378122971733539017626507831858926645680389472250853298226780883194859451718589259851089010706010788709348644748526271849605314275512098649252918058147112174542910843279418611342831291735266709372475858919758748447698331606000290428818332405846537733990591562898760337252891186815398270035293608598046967575915983647470886157327941558469691571597487148445536942750220391546073933706761294277517149189419964933379888767438297435383689204913002838382512282089290352956522853231982730550470577276546078458945828338055209761068359320271519594625089609148364562967529015191936619625594843530353829272957813011636592750434840859566999992961122277085750225075854679888602029619371881090700787266992905237489447734564661329481773535396556057124476312192044169878973883654385428958607255529280205320180805748696670752945622120785692530780362661299655711440196258504970630418311970104004088732813482759163895116111593630385097423526225091811967921414088311861005212918115982871386633771057709986127065254068073842114570008959407946420493827467464883143718690722403813439261456952194533671236478980874599934810075614396068448689066036775404766478545017396693437602546196107631050446742187537992130446105971396816216312169574365822501977158510061471427520125565676239484431729025529516826662721237839057023377554210409074792039692445025234684904510828194150259894339414585431123882162775184768590999676994003183350226984641122949946085628922888842508500205375660070082010175798678990513883164922282299206374075725200428379862092845325227071583566925085265122820816084871051415089702358437195750531793449854748822042766493206611548816214076848776689711937799896913793287300554978979416763418707755449186622482527973459600770961043909872157153161654996696623722284728964205815872442119528965369967285777974813783119152759522812646259276044531115926333681311986256980796298841618472614177555712614759746993518016046956305738196317473073874711127506507389604268826214379501452615263497314871109093194662543745355099111293735527641718895692998938633595099125349200320161409858852814177732613356056986584555149730612148124639782056790715228091411697345833005615169890558296358240279008619866800197018725156578277559201692018303563122505326503924464626121190789996039747849705684016238338612167839407186212671903965558339854195233206865719662454732762861683355856390223790697985583375403445325832773109668745824409671924718595940135388446098386265998420094426443724205163652863338810528308286481885894926555383560642338106624551331760265758640229121212751502378660936144656163668611044841798341207590023039687532214048319060557749965507143802496631704818969055783466113992447504717242042598009890274346537940492124108820958185465688410202474779396132520721445392834424386886038343043604562907096065558095242391753850809093911662843451928585973943467218819984847329771510339139028097275298650124298760787774694332870016899678015120013438648166880695178416228893081090277840271383775819712718451248317271934732575563080238835642994433997020856704870964816328686448062338455616331553295819522460609091258769068340326534401912560580489778695956246576739691285267002706727009105319930480471437284499710151848840564583845779138567752373902508304042262186914189909755758554897858507368591125507804440072258543071419963791969231549477139393996387319089099633681381211191037487781813432229634664079995508077352541483331424314262352259015397953070406920300340798487059480479796409427534130751833886746463049144068435934393287485850167563985667350810453890534958803326507836169627941970442479629082025824443694254288280746873913866616035784765946794798023398935103072378457049186616393505024423809779670663746774809615612631334037206818211695754643642732215395748804439226509009527401752557220635741195392045900450089448513794799098012936882275505571882892575837058294188915633190538834451792340705924244890019208611974850953366926427562212890195912432894216740239645317502620305754600290171476639873442526596986743482191159320556023414488132625278319922956561913515657155912415508490153803610084881080273644342695623210239085547618395266125742471413220583394723499864268704943754154779771025191579552390960063289025786427656049257822833460350157857848842402435377926189596528356387340037525605260739353774382991266187650735294385028353721955866617801076511233541030516328171267095974477610803248616271540252125708292309390091881055933650618910259639215254946066091601043795633851160960379685975285909987211365311418165236249347448644340893357427192564164236985308686713108547010379116377376691404803961305451772359937229094656675636168988039714026446286488970297458532703298386556473052633141593661066016139443786138134590767877727498585800836389148424899934631851357501935772312472828913366457586133485329322310979999415669408395793439537039722068362359648784721828281768646464056238506219619995128513763924642466330754874264740071189361322814597388549620703521120642344803617371956778458917558436599408316062512855418565255901814309003238360797390079850275432800661690667145983366068225041758256419572173144952825387540768754943771202544137391328649036169712985616928195953544382669300167255427955357828242474405830445576222032815138833374230809396920159591783583987709837317367219183318334470639952334617272542682211392939055282239802287224786363924226064221356581553463106901035057858061928393282318259345347608378111250742650963971006847252125483124732264117780691911767516842820861733097431427200307114009670780268058243750630404042908681168038795862546894298216912483784202994850278652014637997122444040862264377035974677856861670037314770754957208812367508734743173098358013615895896011193293463017815155979568631248121319077974767052244739343373808439946707858092038077072777093047605228182180634449336810132992379707999227157468877888345202505528309564917154694301893542650754626770139129927127048605803282277632270953162865452386602680354397103658345828465004705727686293999244872027463686163273417947860843263581091384259209440921133523823544795521592117756049535709701278474145017534782956021407744560328728751442099198060311171682900202204864060561832550406932896042948497919542976247308347815827367053535824163326436319828788278426525643281606221249127557208979764577110746600540444308155293321060278809509998813237885277692683083111501264049058066554469036431609123106594839934919238442135821535274120085388290295625455724147176761898984437579808139418151300497761387659000458143969495068400964411237481843725747131949517135315076969602661154519437675318977739066689045922322904225955330853367032943640348222065625516476037718843907136482968726658943260669589653191237933212342733916873264032118885122613097576633552192207826062386789511401518853042243616687299191923437986099362395517517587468255662008980037987278331293392260261642738567350238760108666517225627860320013335604935107304013592105310538236339843737801761622844024073668476745396839002246243382578796937550698735651444364060354788991378117016955669477375079312876075584399206966730853187073411644282833454729803751845690130566332952011746316772282489928455868990273065441260489247770195762780005440029966745264785125176096569797399636887134020492982618479595766603506234370429059866041578084993810242625615032656507545965871621344326946456654052019116042934914163525974788409377179693467561969232993743163295993124612029391820151479364003667290010620691578762949055353691050928758395611477482236808259643946594146734486715805606699962758552538772968211631261760816912796091889831838880640120088256783544682480869594116751498786151001163342449700386030685490717153999396251076874362953801651542054545791242568076664864991030795876982754358803145952029390967720299067161987568250254207296079812765532741183588554852716654292576031913143276954476937131166200019199982010296798511063391640487882872020325922437634834726962340035827337706115374009921514663243552584559757120782399303628960423485144494250949479858630418708938670785590866178731376192623367590361453579226526777137944354967010553215318756016050005428343319789216874634285749098809002322645886921914691996171512936427030871506513392959117904037912219318928792882283609471409376806933290355502500030518820547401233632656594366254606803132408654444117857747159179937802217176039253247169413266467523105582458572776450692530456516714465682206308312816443867870687075460869018174214352119911247815353968786570743713673944067577916694235880828747903658815991469709054191326110403470117814887980553210687377941600513318378514471678465452197215075996059602191860832809369010279880498803602233136380100367406405333924475617583167593741249819975515075979322994996664221655583853871280910572591651672806715139410699113025418406970446191861906096522625724544186117406441945476863731313721786041752882689693200448919652325717207651333421029639764386827920042476752005691847135083133124239374407967397652992521285836264984774021763627824803424604005920975465526253961838524106672435391286864980272945271105913710404547482012100478762505921491030848610963845575633398894376936988455914586273448588016820423780723456878333143392115636677098060997430142888428511687835580214596862001002782898394017493229999441192300992724252273646205036708910230102837463905394637151035825836377179683937467236037940714655575887683761599309630801187449452235602321805133525743362694915395134109895447502510856623880086327465750875033719587460514199302748195418320916665331467014114052331670144589674537483781140256838298945364373184085163664721374527207252753059412405954069489715470267788244542445221886633780473696602832653397725650318313550038530789208059747366746356545540241879124816520160455311744444208032420201170810283855570135437745732196900816205907705126316542067708987350713306279254609861367012323371782812764892141640309829943931489058563744279730288287357892468606599440534026559901455026326741154559965637805423514677269893631560389258698403134312205736495939357771663114628646374318415204516750278907554833451341876816205682922611912364938073452843959862255175600355410619948257431998988649964161920855864080233434787560211505021209501326922554629517410781007362899434146276094042526624468065761877030419202222665263581040886816902362144171838052962358016677842872899029639235042984381553082563750002480189483505731606564916533101025921689583254586515527107436592768405372535252607012073384982508104861079328148298947762704745984889933236516275992184531586995356506076278870646668490395955284226704852195825378411334703642978537103117853941989069298939852561682980755790243756467916952548320794273601830091896952134616218291007267841101495727297782214007502532061025198944759178460916399433325393144327028409681594499144595678239030803397581764705565734979771068554444821299849344742324908670602747438198124960161915267142510653535084212363086690799264532756640481819324781280796464691075817297471968732850252080469016191617373962431806358384350866963993884640145290545002982624306302350106989437091779326720105616980899935510807259227463935464650335983964880306266851188976565694311905909272147588355482390642710994480942260905179672236696370084169712319144631674934733156416626099993763384651337247431439940108656738951372443896686177865239764603423121490887070632644539302624772255617199352353120969860301841123585175118558916883968565370640868361907008549626244270435765102407838976626992290991043870080375238646433298911923908125019356471798944958467536778789717244747519944175328032340829172874660062949472904118473773996590131666076290875837162709295905822707894864698202556869657501879043375401747682182378276954232365965178724292425542039641313362169823634833152927887047903960644628712473928190346063627106152132918883654743504431264972227159024269974823944869025436976313376372376489334351379030472219520289146149761682424792574674682873347308480785003561641290268734733409622240387834136204119479629170066792477752282543398445383515210685030402997691575094575439197290220103804380007137813145870858796892375493039753257020479752216140552946376933648308720636963646631825114570196414927209667944252112884537785794591596199988011672804649303787387591448648939312016864697194672705464025675486969994672709575859349606436576110231280274198218702449658073528211493290474337076508288031171856986928836313244178144939402798050322131392763312734613464105380796050097832651606218609514871824508006662745275153637507669017238230913228303798540555558512903709631727653431069245300498692826213888616638209621139881532722661824584017990834105441054124334928338298534061655623374818147698206382379969302426474875212746224303742267309436908707348949062513411000666540834923823074210842115087909468879296095210079791270705661912499596495759501714830598074130702449364126781962972635825179176668579323447773453286406310414856455914791292270707857651135851463042475213553558753346108294741181505497841917105534579705359075730930162327415081933424770472170956941937919594447466550751722538925157566064200450304548095954030420109998781512006902140799287042235178749766377798326569678758628740798465099453688772517378301537303282282217000502583087076821781272492538369282841650927008754198064695797126896394630827717165455936395995834839373141955597655792346156955275851098821027764779977340730821526944271067082524493326476404254534324771664168601053468590446998032185105611982549430228412432088072688476398386664480644250623246196023851721764438895294735592322240751185513742702681333704633522630731990999918176982606483208190054912431356028663255509236913940781762033471942050592452328341557195499211785480205789872248305925808612696866971994146595888164984185143139025368895544442264730926235388542920925607897051543970134600693964901814733571936494054039920638510507500449339154005995754801035199656841794428255042095694045530751807825921764936782968609139171573765525823993735437885976370818871612774191160820482087958370951017638011383586146920968913535957399306845334383049028890308401725683284636721711530240468721966089041611555480749179725228331543044201019180833579651209131472861621212538826233734491617318755831203458831965658847549310448045816151869444136667907514090030952025002200075293481384677143500797993369913203401712481450644003711246196422364222392748898751075844674735057863494770530274120040972053605166133633730896008649027342939393568716630652202709799204480035107035803923672729862644081310412880500127217484731343496385905200685576063683964070571677928201947167857303466802602684825308319822207693765860142802620855004369879059886102480870810060706986518948391363575703734564626107275796995691560756758851137096410784100498136191193667963524853418592737939682098775582938155170660792872806218692625909964107645850950845778304064048300507928694228718386015985107339441345451569717933259548837247786957506421386441526325686982180836267471423845034421940393550438988666162493699108999956485203640979924993651037596515917044847016626379366704861354875264833988217791804315886815869686542649269981718945722566434018282320622922648246080413163564968936577038141320685498515925523504065184929292871573419161252738384619957487568207484123369025542270871561659777605506946154129544284148081253839765311338946815352162524559403002262429293646361539650185185416421205104903401806860723580572917076104003731973843082606660371037976122141345807464464330274190468108586128377425396307644754738531950050154910486823297862402355331950144638672333211991115910278865886234870248106179524808456402018211369980530746434227204108314688002721892802442232653109680726497390120120914197456833139379912350863963625477419820616221266684218486335744540536610981306988707657340287598034705768613305600269217193491669224506240480541690799830272481741762960137555375106933759710954110079127209092718480895100616468128484565804778429112827953218275012545199144731038098740197463709462371259108267505877828186488536768404960671657093196410999224751045611747569970596880124043911435996780945738746060894666647106753066077284897584807168420394851843323108471477415886297524838326836936599539674039975502123665901182339186771711466597630552290999857888869559527436628271369248949660839684386162047368275599201076683841488855862851960854925446239459768985574235811358856544376189983566924633984681597526364966316529095618266709222359207500596592099558581964495503679299579253104875271353918413497852064098483715200251510348286345331513527339381560549562369752983559835788422738923424011891879872762718349831421952579288945175904453934138789995985922024883171639957014902349126539458288168456427635351422286897254074541094060889312056953563912497058003213892970184320289089262827905574709905504602900431295495852724366859656809619111687976898905910646666372280374256798387454602284613486277377331729728944475903382924301376089883582694073530368677417938426007571389175546383410929884326950911483320842111019654179187210059053045286810574765422952212928054526413030160147266940903386849276278569213202256569610168820392497888511828220324994977529971820283821339073817439868961551369646092356593540461228446353510821986653222650973668174092975454775587789311046210029714563415453067133372146750321106018553189573566651655371361151398961837471980664107292980738052711994564168638064931739872899462499225004335492715821930382935680386312175572750382284661362686665765676551066849923832731210890140292555196690991302482103703361353501513798252294388959022053637689456412225985373518027841616551654975568266374460996376051199375779141630166250155044801182372622599585813105499427065703190659606742767462883591233503501018940049579995623997378668445116037516469220499389263417229443378953662001131541115958158404914814536545312049429603568270207974889700672377983968055007227062280293709734214290248424006381873807619311673781450490889379617496294375106871707696248622841119762595146014189819661137447159513316368238729166320916902078140934535171856099518366126224066117646381411273453673834846701481443671551089871346106110982229061778381242448669929085121259023538684734166621844155651425607604945536442381337583206723603424172210536090428518614821550635224842893822558093432590783766366958934297810790843023670329446066344820951249073860848580552249801145958627291082628887863322121917636454660452261736088760115150307149045824297783788594409559684510309987770753035878758446704806779078445937701990625728009132264670062945321206448085339492422851776430532772127966861385668002310619640400343264819307861707386976331558829602760706081373437142511797099969010955504756960312607935516274010356600327243827097618252643600001849056538256302384072168903266537215053067356620234614094468095404721808374858514445656128648899685708605724667997015991572531112525027155093192636566515698171350261383168207990061212344252297604365404191682633060882567617709056653254585189039443902073649310453658255558933252502507207704347920016669428242398960477573173992392912966441001540862414957720100585471542016424250358783225824479868697928814461509277864283093128555939548920698456643392052102683288666556550388886995311304114577439098367460475496302398231104326755394926517436207027211462120726817853213606229533827599861343944205142985911749884908786435657978738226664684415629931119849213542226005314685009862608626682169023075517371726051559816583870852418024306882633391790867801390534514331730367748482382292937908952525845448224514619897637230340533188990476230628190805682520974277479763225791503413765907887119919677026838308274775518859497500042921869176583430770508047187853271204064133241574765238467965689754346440384900297695782994475868297866342577681548004564200347184166472678581837502066903628124910649024562035335495553313511052439187736856107749994267922695197661511129473469929223158417813446807505680082764294017876831943508246059984165607646467866228755448785169381797065406386561684239026155215386601569636672209671529926315422437203208139695182384945932548721841571552484985972320998508133905491084790646415635430601929172484432466012236055143023187687794561981480629776313545997866717704510275195468910601398624692358464634007436775967863952294388064412960339756658154535077168297126904487535092748170925976422273433113478843331283335084893309778075094307837567062722927656510377267036896189097110098924806929214854440820070401768709245389866994525154143746608337094603007559212976347860456838938677063352712045669380153643315153223857524977733803420705899564817161228144165754452104400775238789632377732753850001402974580233955838503034815447452391396135440493525833423893341758208530773393593357449775695138186000428390253978860812464734633300510748253457615392351320004362778563498375776285621190297199822942675664915946551629438599055065030493170421282013788592378240995631680055078879147628072083545160715274795709543905863704144187333807060456290004698431432772023392535341261263907211123657354670601083677065151505606520338378324943183778143756976124170700462343821951448916335458029262145821087621564676373117775173377609841575081796972782110275961822683180975194514837463610790420508475572889052036792948257753369768374536451371492713167318503763966320343881114235059811982974561903162589442231060204544945067651255005206545870876879401322734783945525502880006340328371699594330904790204004332067509423896711412197013192608670997203942919184073807854593074597166563627328945054104285376257890343616041583894486357419016009147702151291493126940979570748349252928631734762306397530293191106861769826646211790230292521496338195187152279745094881552588248410681461006607182331063826857248997384569303551615909741566490685296454930715313595661941504423989294543749416200414528620238458024803242494235043834434733593144622162595177093058954931017482838062050510876870523790147961766740551941607394890861680376839037612035930515018119524603564088701024195933423291048220460363201754398602231093599944526363157155946585840292758061526867526864724982416629658814351417297201737868743322671877716797775877993133781483598679728100332161726089765230656830793766529783355780326355044665063648235302994094684348490032915897106244316005441676308629355806771188404185049756115812114419449571485325454967886867709450982578996430463533850108958128674502981916128765710443618388765605306037757106336282011979514845783725808222043415347765453568569671275575730741235913084130438083738792834660098323515530095743051379150705502735663604673170029113070226266855699219532035691407074368584033703674904835979849301578035438942199923549727919982647677255332403600120941367606803656211854060308581012524464033673838875490347651606940948842706352547456772089922356421736602800582623748586804700460289472901298752968134509090751701204045235468484813630615875803554591409371645492446450651513207474575311826378736103922292634221429496721073026860267770893224654636193942651783367903289817218686471640437264119991401827742037912966007037403262182204248109547575909509980999198418108167716402897487419586809138276309815312424941800467646877252692996546164482383835696624842606612004490257063237436040272753752034870048583342550596570171157827503489887754816774129425969835772444286940833944571153745802506410080899340940398662725564037413685316999201517610771320708321374408522174094134374174373963479678298546378459443938267298980124072388022842452458319807378098263802024817095216972792096293589384041186022955354948337554712749172445077893981657343811202335771715595796013402725603411822728031523201518141179185232069533428624131637600166690567104600832655038436135229502928234819446050001062862379453050812662736234522861092614933615582246858307837408493233527835435939293462766769915446594285259785557630341874815675087442995941782471734764326402285010297066601385464437106514304859432024393887108497207623395398729172961426347458310176707425191827076785930152718989235262482925969345231080586607716732627531806852281002870522532371484786747907498245629512339779706119990462418653058683283500045934870942916740195157438468173276307744306029518813751303941046089493504121818728269519738203506328514038053373659250088527851229838136674283172616856750727372040926977731462643041725955043287922028720085957318345072939293335867644308455155776538668231766204459725829239668023561420584789794850386796867319300903458822923030635630162306752167514391238036107961592617139507190400581337266668651821710268122331208109825224079765185665393493476124930614459088562227556820860973296129772560703575457395635729783621927929154575811048990104909327488588460879759632964065672882070282070815893719551523155628385852263238504733015862284137469757929804453546760850631695862569309669463260626305100909060659066438744885991111750805375941799823587075575023928074028148113817203716092553706283484911589645277837007124249837038905998964383260966384599413204376147658381580492394903954588431684875062252683475609583803308933451968465600908229335856716380737816889218418271519494156787531403968315247850169872765890009286160103416309153587608281872650411297108095452170199141402710274250150754765162078624374552351616979065146306657615309247753365575566117980557197054406560300556060347703673181933916525914305071433820533480414614792225658643953336448575883290090435044450214930211087731394000202367065944905511324146835537977129356628854192230194926535702262505238799720116377884805199514306019876760809706069298958193857065320747137430579614409967895158242731082953103891337589801889373180032177660563263635704980923519334697295982522667399589223521881552655035841704459649014611327520684248903408089949738368070980914269186168723429913149943954449002354305787959705095686865554826389159106851460559499401982432033995735017648185319101251919909174346326870638610130879002553258494710731509843105437064579037366259371325615311143486465885079495404500829133067581093590184185503519649274587473984041453109212738165700026067564608084146305113503953174032393919061174853446659294561801040951253772648339871214294092576727284601054652531731745288092056852113434859879124269484157519167726810136934657836101462432320018183932248592270663970139671954628540730893056661027766287561759250321403166597409375804220578236493821492029049970870448648687370755107144896514137601163418153134673738479255872233749681963765998767565016159402261357528921571768774196200653927297073392097557680123848120481528958488441547895509209482747811347710770492300741231534869454179281339991043672538504226471238205419755768290188797023284111197201754114028547905151649068496196157196999497350611855795599833837930173070088232141864478235524773666759642144295581462071942963863261977372556565028172383915055866393695567595105094680892774499526097734289187228542826649268118155175391880102652254356714329000278842479716698778483914416343033462240284697243053396568573638103825328930263436330750619896925403849777288318892015851006059454081229802589067496312442022697297765061902234906304625231528817395303557300147956323012925118063553862700313533727077905230788926818715479041907301388849039025252603167613253123657012619145885655097962584791192676330536040216173294052632717776131818947938119787794824350570456298713189835187869879442796695453689901612126271154502045480804863386744800476472663716571825647034169160159301539354703449831517738401726506817152238833179525613204478357976712050125087006497100852891995049968185118325691914404622154170506233374681874868506690716092366925889191991566158193144101648771391821987465191822355397395832805926660154838302985149048259923690493471496587901703248799870575891410332103044189294237290693400399445801908077141350845925216528805125518855653833218154167819889684527079633847419156167726023629842518900451341804630172338449187098792420181505459679890791714216495149169304472918612689279554038335700544873933467763181356502763910223618535432570810905419490994740681894631600733769736343829963065837286773277479673799918650717934311336768972451078355748273098649542562290288503305486638338730781505521434534232102053745221629771513034627693030388374701791637621205463094212359099121679412285737488534554495236202397981459277416111613145917218202639917238850786366811237204023781520636999971282712654392676442333604545841051449236222990356291319928649549757247767962337236869312399019476251727024802457056903412182555844802216705555093572685486350994422267881973195932285873175358140392850906513151852434856695581642284660963385878999672608542164894781058438043369921144738935479026529723513450986275574763101915304451457221521727417493452879692369153355046681388906497831050148494101652359169240320957388522707476988164400067095193149181287410853292191666993565865017991467807880644194606156459387641245958415288648449918502847869426667578669521430675510482757301556429645030352969814254723969684072748066099953034987870567682544129512454169278174219974561049125415976371632446367077413015201941779592100321923831919897760184044993222928607425096647974146732086747968215754570053720932189990858487876895923492558793262330723275503628869307199199334979893634632743516000496735273284554889922926887739655776724257510626508656647126402375088693791312038534923413173947458897136371905879130965963075288800502008489331382812628983233928144284002146896192787341747246598550692369497092577000315542669535702775500707181922907247716030746799561128671595237335949442318865103894582600763176726291982756027518970177868253593507779828250945328902541528068470519555327160015945711429551073456867443472941919697949730386191514462477126719299382381594596834585583645957313835649496183770888995329393046759488597838793785022804929673357945301673490923571890116846839687420507900686333749245002770765199774316658787716036150584097197041237280540809320306611193750461294011913075629077578967102088567293638698115730285985920055247989922931080600990390674889414678119607557504566208250336398275293951740367763815512389668165144445966044660706169247043129222669639480788388788138143365498274407533997991254538198771027545255569781208509326472397410189812996128015468917624759718637153418275731067993272152853938800329265034388928383226158698080159141093815134336367297237577532609537064129464811483998705851412013376025196854429158049872773311791182508613767977737933077691591267185874649104901884999215702644697599719237111422934448527819124209329660379236008121351429467881262208554217691270758337371047704383388818291203775140676419793335222176945111256594148927849809434714923680838007746881456207511830603979451420586677902326727728431411264311478808341666417104924881553072210974305307766859037649440407468835941277592918351952573566749529957175214933405879441865685119922921157380436745516393167484518049793640045098325841307402851121927965491304590671695345865772041991438431284674891177396902821244950389332032281680370880441124193000415701819610455176549791152775140066703565725321561855342407510947566911475827619862775147278770500611690153393284153639338382654506046847737206842946576533767290567771406964479185345055824259455238030080255642766539644415806972948209620357320328660991465196659378526637218554547675181558081870641516955230346424005515462072216329544609232587920239678073288509374096234223424868166943718248912251211616895455638844965451020195520651993884159951230912330568577661268739810821095986833037373603268609510276485941066771899064117176308683459748697351292723399735581575521499154220856788011226383979039698971231387033563357245147953721681425884965786721121829465456604706737157469354247348034152757369920673811514305003827283695195280470967795457154055725620399207020574031300636273146666731715543102133090330408342642101764933340974659151162013762860705161937510170959511277435864930434844466509469977053452469945586435109887226479081658747505928217347903437429302620703613559821201640912340056181170459684761204452093496874291635984219975810397890967879136235551533972709465847850843045261522436894189382414096544357454782071735471674338087295455041118251148400286882270558153515859682307973750518825234656608449009008279584678634221859594302047218278839218802757279827977308239987640943664573230379457900228880751371734736098278019801974943924826515904030535083690271624232630660179640926389706999873690082687403250595879913552465867619675643282222650021895389436962870111572328194305994693127431587484630918069451814093587870506097195423149790467624252519550461430614594508037203134291281108289344254185776722042441793828864255472576861503068529628111549361787911880124003577024066185267002668750248456198958361679435254119335560140002442232923685177676771329883383818099158719046496397764374933392073922205316037073721028336909419162659251603318674548122294938022348172319178365564365715883614055106232789484238362686527091187013290821903072760574608762176824978586764225390701137511389773572235646811385481210213143124914225858385965946853865255354736912925500442363642989101708720462671080110401813894769849849259499852306330334633464475281211327962259886918026809351428528049338587555892775182714867960739249475050583318864785138283248715300207250767033775584652516550091098460320538226768799939437947780005367068420908567437836018125625556543922380128667478247477220305770109891785865119002053199680436448726150214356006978863886656848091724382546240099550072333099931928021645517985769726984872778526115075932486223808405249362502347974775152167154745206718722545403331934539956891066803727214697702626258837358729811896292278981335134700361385322259195802679207651025379761874072037234945708101912821082634881582401635311655971038222726745700489092993817897158264350323138751135487266802736083687079562705980006673521439448475366747049507592452898606072366547174843666100424941047630906485858211330142314781134837270390048048655895439480210719858569462920517321022579306185547052915735047463349136574904660873708578615665704200070917769299027096060849704820657674951769756559951780355663833543630198053252652257152548210357743826241374060294487950182755870816535935530482998519673314556402494707714621130871911252501863479936122235401653182522442261393331553095205222852410650843466979296929339401620146237213207799135345143778260676679290971834067809610706560762350587594755785431095269938390398322756610555075998884908961199076138831788276276742109937473534436039823565671322855494371144478062047110734351135742714737988918004845071502267856516466041979575930030956329467664122892699485980451506390230022696881852619237092237175902876105238819663289688858653018504155533826231821991155226144921060073518652115692712036459259334658410858620678881751373207488169531343133466865048755682164536314385284874040134150801422673379861859554048022193985392902159268288350675309619692615579771236323932991415936441520238471148412159472844259387391012928566789965488479987053072890591338004853734387771103769545226509492637425369974440235491106800109707795519876637316987496255972575809583612833056204254851428863643134060535882280794668660308177781467173313232559326014171550434749341207946560845755186776879045933207962970625445413792923465848611990470785247241007044669580621382982757811795638778303001252322426483286374114229498164876339084568017604468362493619333054326003521408101244419877633202828659344420845785257642813933615853706805963585041123099242195121688842679837129707399673312860342475999570055880059119651222018657963682373414255790322625889729480250636606979787413565175027216384688280191208620142531905244846616224926192030950449869732754415342126554759626373095603094151977198901095942719761510424414607569752997396019272844841188931999570317837477744859910627789818548162470511569375755401817785640600463280651877474266967879004648021905876506387488255293615862853248425446288396144789311043428503170188188782207526652827700064345716523642668237136053395911260938549765129751668491206461302687950500386591112085801611573756136184551590422072375207040296262306576779952648078614583794375968078297511936367815492288698888846298643531064742784065346607501496682557981178329626463689112012893823682259717085481369299563040467183812476740400579448477843229703642106825037961909924839390003406908975192103616630296029280508557099586396457902889950154859555237062382056111152729683265864107390768524778154856892937128662003532919707528205897781897924202377555963277410003348232781740822605911262774454963444197630967993180997896016143053528446504439249708674363230872453059871852964692891609828479954235602522251867923793184365348570914486505535957973063741844346847834850744782378015217411263836443907508075776130631819276401459765740350723226874080754803009494619875169284975228216965164397312781299848332052531843118156138019104613408078614510368447760675184083458681709817860766865590960460697306654292223951200447923580115204348800440336417413536997905429854592436843797291668839580321370329281382431958455814691639678531413795686015053439127162241169260314700504976075944618052132663021694555157836217521166378366027469787786870084680299982046474670290974449056929651140888828895922731787911571804632219144107718642930824998675899473122357152534507229463889165771224897151719321491481195532927547611087453957262651688641618835302558157948897416306194465382766064862917217961251710830273739906132261974751759006281569411784842846960958818086255015773741902723429482056129411742100015055269623051268536157834145314830524047966412922075300839052377985669474372854164475238019064371700843559599100966964352530740767440170755181031026716125288728286150206266414095491032581228126210058333545547846233802804867767578693094169579646490138293154390339940902133376431247051754748860830537360884959580914662325751218679709751041464693250259919012766914019329286294108627779552981879524175833008246848751846340760427073707275160251289957212463381838801067515420478735338475575511392487385260752343269504863893562515712310287977615345018978564285057820553038246025574284969230726098016772489992942291908486069213884231952229017124902353075718433048005536552862033305092702757353894465776809169117433226545214364020660071023720752788782252008786339622554707590823365688036945971432975972539941594227514393072705573949059230822521797452091721170222059962434019775315306448271114190512170346668118230608441013905691814089732246976335564084383601288848894537032174009345271286596946464074253380158393479405609039645125492767023944626391617608235289469421533330732290765897232670843908412682504098681219134080880312828639465886382689736442988765575145514700721591801208272860967261814924049376297399541245828512378943618124728124542653974172516974119949528511582730040115018328506130790915043553960264833377295237527662693759040122955911660916859426461065822185354234890009966536378439076281712339669322800487376611656887565331865107332967249411777061188666210902225982159094463567551783472165887534352006568401953830134150645932739946876445090973970324759177111055112584680530081044575793470919709659565569743640116007570740065890286263575738755900803702853990640011632485788322456462435631276415037581717468864918270384778888074845926939183001893393801755863184272440659975460057348523579203911602136560820866060786995420881798901172458917128332345184609177892250137918423870772711214637844689578112507783168466609375399035199759817304082425599083002708221322851577254420640701798855022980518915396233670159365382982593769894209184047818330439704670496164682721157516779231973867044905481896710408054497703298830040866286812955245743790136439071593059090328925382260307415218453940824837226723418138626911164219583689569695452752708345542506000535983858304621878926207270235810071783490785375272181930313952247000652345786412129841980150390934054218419127209664100524831435959945257341258949628015388733894190141368377411293443681075990709234272924408917687594433123638713895800276000195388902482997598530666321249811831412869997337737539804608233076042861950214403934568751306244423395378611183377474742114403242192475997516972814852793669345031750869316070187381773548053493802983568194248819810691797290283231767720920083308843293001742038720483707466809027458205864141927444304877792082207656513816994060421342870901525039540611051727060324968750185999875688579016918869826309796551753424350558143527665531037033909821852430952242297457161540255659863081300417607010046442980445595820423834246391693324506605929786085331229001058236448775755314954366302118205811705242444771087674525342143664167611789224938051018372951149271689102923698781038532492519562611763758962116419706009285967670133604959992360448991133104695878902153517704855321395935796150147550363931448979817745295991513305568057121141396723806298316124030785142547834946410541223552721559038807823459251570286030423565125328076568210609387206484159214767113260344689436947243193456999800620529640774390127590852929939577872020425068264840324461236335308950853564383078000086035125919916135473137584656133250913446954139890090717182433544588802230045202985240326526957917135914671531015967745340550160881938306002940703164061575717230836492152383983583250252927326251946195585564219992333362743175470972143446675748286723849963471881485187985381856237116659111546022013647446230374882378657801081664624182284088430104660645210909784731696674375247183954732841519742221198236442552768354079868681585098874995537848086125770727212285179719556975378371695988285661452428994454771190128567979924365421873220843138358355714508510586582505798318156850296077885317705799154124330552306411961980313343047107964059358214930800279083667784179655762301343137992176350516604305263618836810699399982905563165270467368452281938123003388045302293206573396111444029132573912419372634673889932473268403901207830446805760897151288933405452864933019077843637037306314969991306801160032397350066670977308553420070069303111694650009587543586327287069931816600815869862170107191618041732002255425975685287123431091011862861063688279409675580050370672963726867426831108367975795103254101088091326899351941287364001792756858943818172820203459505616100392796092689444953804662880483981033532916956530276899654823088134341457742558518764749907945353097712869737142761367995609541920937921392781529081748368118058520633412403284661924568817887889991457690595739144955760105382481946862793835710926363074804234631718192644379123766892223910983400366784447083662243548624414452333599478112383242693513996999756545617034921386948798350081198426212004404854400725200087113679329049111535924041039573423766190744238365032358652294484518097665568564040278632318466413699077146207156826266509969054976758778223163694832840777352413786665288106781223652387603003312889649555285757330252636133929102787914582090140621822105981581532625355422672886457340480878670321141096519667031558877239659320684459070799232914493700471297286203863182697180086052040431721587238884306473824262287613144209745556555407892003728904621970899733583456183538872727253097939820470754461048458894308297073843921269368736248371779176268710567841121097919507105862282193765909342437800975256255313947480447716700409028004366645317383531368484604801660634890300929374996859340120811571948055079872883084189630803527382170889252191087780818616112275160761463522746795312500831511504726384925078038314588633767029575840326836320472932911907288133850930972121444574083532176744881133735588179383506314009748301009170113619776381551921636233551317740991420286554683083898509424356097748611908975312598417063943666522327476896862795768878721759252213946734239985121089709336219552405308775579174314041835635294556287035242255799577202698428059043799092560832915722686003619239822642163986783997921834681219653875135621214459932897198664915526466023466997207661771438261784697375558605303036453293861652953674098970594354986689676813323525269826207283261495775488840193804870434178425414210902015088732311772861607085133027963783029731139107248264867523999498478622771271475298656568602242469433634673228306100848599938046287846012045141488752714595862504921644349212717832111176823868965961372309162981461121146507542952736577795432362732516329037421016010494337890488554069930079493889904056678643741734066421144417317788366088544765366714737552744231911716647518483274341776562005190800196024564103213489223544545028440905213691182710566401640774409938193699462172638915469754930895686934830203360667910084502443923668494666332116557773095979558442879216115883836621550042019465613368384940095855786058751473324443637845380172075348901829527476355083531494503937412142365709752915383224986039313949245130440134017081137075294103334742185046414927082759832217907698342752157017045723835259609291917294237878378694626462540950666908294346612044893307780473525311734352908058275632820714589452339530385508236945477951569254703114175291836728100844004138562579291186980220583623522618847831420396519171319825377123751143681611966019394537948450314775570345354192469037575878446631797746003276196428099761166740045801013581831583826317596118615750288130052244752794553442040724815539361017214174128100533163019517741619097110079868374408674246841470124158993286826083699368539543824151500072106998735644728564059573253608212872375822627270624419822304905875402478670835238040247367058116985869266336703264594767945638704597496023869366006029159992669682099938828681960100587560357885652327395836389075555338712828616849559177392734237493570333743040430989728494450480231744883922287674516284040690795967710990247564700560382309298986691409625162569456810993916831665200727956541164430385625568631680429403966505315700162902012670644285585927619541865361210219930050993376116380846278370739837701217249188649951627443671500072242640045377805372635957825689438416584673737611517687900320221911823846653491048471448508634523416176949235599636184771881924574972768993177140620406612963729795165137779099011942543615703097647697080934321473573860359627540346018982816164097436297561127973052144230934694987533527994978141050913328107708727369708248583639155120534029714335291492144206553423117198790973247681072563957435824609555443705446095423432887823853614626027032701532106348917342853733882603944073235548479552635165347072538571097355848435551608401658481578318705398744006506872309413437843081265129013290026301759540636103857517938110045784215329741097338096372007566530600259080863916341285427273357721937280564098517209605285890999376302792647623290244032647925292680083378206148127863498145734569930161776879852198157136378753290946754903919064890864876456205994255780323925707519046571743070920902291418175097493468567374298142793244116650445580645340072440268488066367286305187649895166846290671203580252967127708237056620003948115938703908101960017966072493316056226033097772915996427364544291835547464135340835219626441610430413787638787340718389646011256159763095470211679848387219569319754387784071934160539530315505478606799327325700802691590312978935847817983717947448794143904900453986212938108412084823580664681040007809719090424781342978494588180737727507222980266435033332938401811799776513045379696994677610469865311981329238744942403445957760549829039271257527586199473567721506793130733447069791738749443736002962769603916249942429957893074738775207585010699537052589699084606347210258911792741102835006049308106376277916500462211179711123813876807042441620689867482170255504345729053356839488683339592224927976666534018025138790753670896107155927610942518646335632861724194358887097639169711113901320936463590432265379658737701590921803637080800677143422938459942566148321028599698367575114204116316808887427652861336602579491263926042715972877215079007000083176931769725883674108668332348259054596064915753260129587045138713277169143348889203991649470082172257280254651496131417203658899422036002570888572289316735354203935731344143609076256158973805731435889015516294696302354983803808879393927428233130139214300743799158795727432080097404632299002852129128352016678561832681439990996860078075115547249612266189072787004947561908743732642944868047346652843016233223068892447234070308830322508345280052043932942677902295032794783633654028294635746259272644866061450213740000296555099756652888733235334027468711852846253964671831228173130937841764468997463455583020520453241076190994260011104233366025270730433277030988281804355394930478493788211921453549275723394181907719239603966716172647307585530272119676034063707882389799476689419329654279038308295676061219150355184357895545641313766416149334426510916940170686507396345898080191958765820036112883038927332575775148123674158838850367601675231743656399973072403146740657922869330999532927807657127741161022100478655058813801926475060402685905540392955768913719478425995861246806996725866705851440525807443512362786689116607995547596724977494027089184285657806126214971258288227935737385506906804247147679866479473375591812776978621166140461665529331651413783806534576316809011098170740076505398856361238292232208176809003354803473188680453527618692262291083363254562281445992956980474747364347028376846063390754845570203340653855929327255439210756353267563308228920107156885292191725507342977607102851085871912831463623352176169034157349826547885887704127131635712539997209290112379175546098020033397268008431117669033417053973866698674226746109672173576669413355056288389509441997677010888177689064325842644400837709663466158496648446923017744390985140771658912903786642835189759687923956596173109736016835501176939527365277269274604955256692075684625993060804576655708191991518639411640546788862739949952732165977102922255983382525506534577939852946613125475198230781770907180005285331453264275501212797138479917595654055060101408089408060274230364054542990313154346120859219965378433118239488206000624301604087635210677104796346910583470379128859544442500157296625892401686057406860172168390433868089947794166091110316066528453540946043071667351653572024729974420137156046724323448079747586038201711861498705466957374313218966710232992393001850710003078648008373447414343814753523670804427694016724415175429793633350174549927126137919419860898975201975966398263725321821761499577101807361850915727727612763310436177359507786910663395329736856760118398660934614701594382947316835501360822209040112339355471028649178615455457167167557997325671635353728305834381111334038564522251290693630446679832596468966818862909806790201221313565960207691393955607805709000572355752839960102313952103915854698283509814642136041269943275893602685455202594891213358359637409203485723467198137501018343299287693257842947695440559383519208559857073821973990893326022691647602458752560603424619146638256670935845627523716738378273704075316531091935653266870408692889398496603183063759630224761131329805266467980894358247749588852938007395015810643821549124040875073893261059764731422658174938250309107536443287166161197120638925936879257586704911913330482728694925699899353012533011982519683892899892947264290804978733928131871016534600373168465340931539789456755175964370624464658139347823773653067702384680712220388592877699454683006138138968767518696058081441871363778201357279187838238488594136157129676870475494939468243232557270426377058551837224051928757414606708895949419546692735728847175345913331705171310033182885427371876661345354169397802268484988144728473840611666952214113569912823013449326644741983200396102081156181379035428596404205770197059770517097088428327780759083521457867028476006959872356833676086555891378022577631668401709103982633196432949130578584148650381433252711207579908793857393223382121399326814728887754042165603915279109612531131308231863321681058869593596087371441138718515195712929886304325556914912530255608563143551276680000345461884711781063475974549464784966258433865715469189599605772087170520145965637987241125215728061241123204514889857646959424422268092744459474063389334801584466885474538749475530069770261656856223189396822139205955522979826743496804222250933768049856693768175362783994214470098882323536116034507975154434335783759017888017031876408792912167188616334561369471453753937521154661687580684737454825499551595959127630771347889705337664905330229236711938363841175897837460762541556733327371473017197552102014515026534263711662920830034250378545300103686068197984782816475023088412216493498336947369879714359512313911533196889474452070992260778391253472710424470794632315039004560339000368323700773242791775503191099787193129940209335273012081727444508841596955404743280402053461112146536741884035763531533026967602607599416237159183811357049741262767120177105774776220636287132382261434699985279949249848477792288197002293633450009030205143431632834754939554393193767815379854187554623189969497433421598744067275307857951739963751105816714449795588235246525086449431898591457901189764770029845635266022293154690732829289935048211295028072370295365388935207331152617405723662572151726753819007228840936480559031689260604997368747331957958515076215129452528382740868601219079978469048709161284362215818626740310011539679438647446659535797707588310390927531307759302838947950096055093549016167302275026346438885657855949952646341834708237132959434179571449464269115431609167333226781079525693229774085513830538408504366998915392159560020166995001773177452477116051747064591500671627667720890354176621792339504746353427157075487318932728582994565139476770272307197257769567307104214361808477132299047399586911871289533379088237048105111310677816296184199753391389488656332986456567985657840193711985654890387623702990438390841009916282796101797862078766658441418614555828811615588519681199836781553530585432771684005007985838197760746535675562999810542696926281023673016788643072118075025766380363238091892649497200407273682230248450741853245168713456739164894929105879811088990367870311247900608899761542770718899459040032276119918208997303481145188782085124435862358947219061096381104277878025167193433999653077955499859302055556645523385172022420638791894733222695887363439822355233064653938566114894658935639984292253598988331667299908438455854191658738388477088647247376722434479007206845775460741967862548937932040270406830547115844490043081937355555987257056720294036656728678035369191686515778116901941027446238370598998902114414937686705324739437292410623513638406314056629818989770483003221323180883959720068611231387460664912249461097155471832468936478486443643070270851807866657096169269827688733595779647088713504659657267826573181439875501955419416751008275568422234884524802314922845583883021210735822534675085488105436003371894100830662531322498717085806488702523149104931460450509277113188407734363322266086329975668644061261526313258853497476810873023521796360738975574850779197781177134604890217039356120324797677977346357533535514649843633113489149089657893359310544966338592240540605448384235895692947955859657836564355408286663132213654065303810047357441746932733995507811390605554500800802941243091262314218956748320858871225863301997460567513839986775911820895570369742527173592573470873411047769111223707372683778859150818114659116190216464950732287872072529732692627186288702848201929189316312163356127306795996609255127836255360651367284844960703547161757504719896717906118953103396012782634403955511614205305319048345350610971554076321116808562985882767106156467764531734681308140869469175495850180574346628960603434553734798569780827737015061077444668180383157000986435257534346785307721966688741566473705037321366477934338041156073261091230912036608294913264291858352609478769502594776329799648399907106043398926089910214375410262672013682523648999573202666640636877526830680308071450496506377196097588499764072185856647110368728677506539655408737971324038846401218718910326272392359040047996983185903319161934088920253816991132024635342140225572833473529755864887743486038299987192602314122040159961138242122121382417212370226598737197853664088943811854252372511072442869950846226276656101035410499277450653062043642790091110019002923515998302909802576023095149070501547548237337365596576669268374873337420705626021216117573589997221248729521253704511455856775582017544915799037125719494806971686127557077636183695340827561825410858962004205110002098345825181994046516629023450371891671734441219790659255886600594961865204386811246035744445561747196861089704131729318529414845940796170321597843755112731482805768277409463868625553080414118293759467313119241890847043424359434713568965092976207194302780333537430559937600655235909946204146666714115722711656258075381785755245782711401579572985967471679882827685335518284660621156645610706863011009061221923674802838467082880821054359108235684735102839204897297620159259150256601603312712970917191638872692651046431793202435166790434876619296697578615680190981391251535528838105991094000034340780097185747802825901751213238147023556928289416930987980583912269735770084295129822006634589411926328830571620758721545597476579099713320644685499385316421328442550596305928574539122482207289143945962846841465724230571370027301414353269332627476071817154211086717900499518134346489065350560839890593982552599759408736487584971081259071351231518101248666092033443310384125817365025618894186901556437537738342678342313997364962500198992910594006001994239106777849855726582439383571977410280224777280044860595192719918762793851445627828328658799800629512353202155634935781878982497978939982964536972869445455418168159401606891842457079283343854996501085860891687275855250258903218088880438132632482916436425357198127665697716277016795388749374733461033910245084155373165901054028155582638603242999615832781629225309016258824311080163715093519411039871731091832453580395330261830181211325561657917160450506327080307660465405147023228120607971262304622894292174611121922997286493518296439112352725655430032329498322365261675075223219852230342021049849665206704202398830409620214740879547141237621010679229131999233798156937571866927311834534834928270274209842611440672560044481911641790438947389180841438310706778166710267459361127573177965894070861019101549917344868901963539194340349225650836777941022956648886564581642908002751147629977789390021993258387735681915817983362245563357675621361693577053375163314337556062613711213962036029797531158174584436388954408816137358793327842706823117342636750758048505682185306314392538851693710020368079639605139171058509775082063130512291689105844224678666561777098630917066345598102541447240413608894205098912063043152447788952277567340838847565451114251887467483668041767937742146000291435893469606943728693830835008830775055292134758410138363461628682401022999184374702432534522498658192696241089458742317661481706543831577121421326805588062773110564045367033318936501936230732237231983932972401778431005230876140234192952197357392319116304438236198976491657729181775936687801989446518046840139581949387130981555429459098377937829630286950032837347688501339045766369065346883286209591419051520073842464894519434736449931703163232420947193041237543324078885437142622109255324214650611358042096908572223402914767759333900443050028700022051603329960911008407095742681965803692586324949789506266984753715520225441060635172008172190230770165178264760826951866131840464321889101229485006712056897192466589567980366405073774357244679960738989802621968005349790719057951214759965118613061500842219389198196700039536884463567397333768191691985053461185698025561597633333387877446805495370623295546295907478938145914764074068246150193489223917990831056270285857915170479728792057317968870993449569608585348363957296623479861961593630853752439828023885807127031598234434867533534630256345367743623696700390502187360747331924629929320697078663795703416022158116711392256719760188401685705408059742870152370697765744049981472343935795526190746718854848674698962649854340817969788868363798816294607090742926570809994500514146201591493313408447475355366116728736237193662600631731885021355665856182015809597734221062535647864881325106391736908234034319541332952509854863811053561679192982462193144445019647745213187628697493599105835915011745565059228307129026383215796274269633296954760117627578143819578525093926073160867650431667008702070185093287187429029806808790373351191157352847470617526836758860666809091333071951601693272733350690869881698111599082609522322543046942146390399371522635193538411472497169197714781529198259599466652395457992717543963687443997384487139895970405110756480967959608728779056504030351505268611739630238357128570896191684517501847867483888689986086395178428464069436593566716739551766668673569031588472802799511320272063992099375335161617917048557790195707500098606652595392443569346803579761400746520445406624474492842903595730304658441041305057425189909948090650224760435909621998955252552629068603749545915715719411446617352877023123813843492437390006260154949373442312686307198418773332880923195000915997867443538503565082851216978451453364109136000547818716134349232895569695107097863845676811790569108357593424905943254242409218405136563255554127975186827496462727870241204307352216168214297305225188794216430575630124736091232023112923341106546952127160018463676627308178974612287301507360525768130639629568261952549336537915400023855673511068915895749115053590614018174875653033632506330264504543866400090881435856362637919303648785841769912817902400165634226106657760317174784047567318288225883185222374091011331608872366525073558764506973264870981926742109792116331874152946964457049625425301913271633496100519894818497392447262534510806148900004889199283791539357288612809981856273335729375035836660438319029098384357932138123111255784089695951102888604573010473927067080277070531861267448037978774905664177657317321171758572604219216945676694044303717232435350782425783754001483683539763205771114316642234210434920558440234837591972363736611020613503942533217959668226282368231293923941924394610387678597574406601192924507989242816225322402884064501728087883466529401407549822509629326479616669299535258000735605295585701607832662419193829895450419407932384944867951104142708225898880393986630017611838134368607979246953959867082648846434343121147817598760170891657024153000549131552871848055350478109671868624752392892607718918786126678585517180338076361281300357081100048643121584762156378227756342795814294157866974288646918304756358712847503228458513608271403238998656505467857325897232932963244618995206995620663623832462598993557057132775865684212127241840602740158622160424626698586108940803496207980127790511452192268491424196501383492949635560592492422548676581264456757978695419012792245516416567209099708192556947768138290462604595367208563154703764587296089454944028129072505059258247993064083256208981086078994389117073395530929574291904135749188495198734285235273570603506386233193566325398250534497009853348618034205403368415301535316518345264050174138507087540353000856633454010590077474367153540257070613040371339695492452493010114760822825813200987194941244298983605112323879017950699458761216203869217790628258539507319532022801297103377573964354984535095329491726381403425897393885099913222942202387943520181772052444911439608600659930686940754013835976529856008014389374665925585339097273212831215016790880418490822644515563631653180296440251625980132747201368954335202193472516609553215930964984171490900456210323676524807628961657220809360475221978612569750146641564985512301746910260465203471032312857529831131120663680236246863075657129343325050956065188347971304436385024904543298081365469182649010733235806975751905537586274491570153089678377517053767552457566203438392446531559115979959274093836074560496634171117631579574568556993058931524887212807437808190882029698448481142075084875213456438641184692962716731478916118170851694697937168759036704570420145947826149508056168261235247966586210537655138459116165288596864054972348968791249704780125840489420881103748519256614408775695870536327287163056379209729241763504981182174967133182929967009715489729381407276321486714693386082449952365464808644248447142534712969759435769386555226570764239479140068439223708778084502192435804365027649091348341458780558823518351336587758031296885952253183766836269247594331787230375742979263288212747123924201444933999241189009440723724492864674310637761375566477565299301244733660358310143173566079658143857156377105827019352909997392840543367465637785245220949696350768725758102099711636327853657556380100218698747702604742449726150547118677254686688198704866488898797024983502326507609413052547126841589946698173365453180652966772786872629935622720120160446336830646788054604498833329545596564055483161012883066523877646652563387201835796518451799085295482375414478466245801388991687681023188609291793633293692270526324668291910253051756777093835825505278073825523334979168657562418528228959363698246547006144966129925279763811652983190833738637070356846629174329190715498215768147601120103093714002699097173798485096268549993158928816344344978510013633128340109430300780230778802363966655340324390479747066252159507273698510118464864493533700777631754142860409686179074515490163682535395707800691373956603148116579816248112891938664216146002615285095660450213541212328636086146412197493651036740044013580051496119365172631380522436300766502551421965626583554424438671492251623916284756175531385844454282159085220098440726600611815039371557879955734323830377898920430339939250399705069358280436631045163418997217845070576640697618805233777018702016990113604844961738476527964338693967025101624734495311004583787229579122350675926361767633688835153867429639246677896078582861746671224657183996381039499765162599505341608724226026307947052254122697579127030913372184150335772708396360082003067529002850904478926386933161143665775319767492489406131188379075861929771634882219293543911375982967711869034674700131472159469225405653812790297268049484902556214088841306132894354454120331625846850812119003430738117756516682931385180655036675975746485312824060667426702317762854158291240941590813232138739513376584900551872619345117032938886723329459168319290802104417686222896600260598541969514386077786988539814927391510463354699869073586415996134238402738407375297146122153790597547575611697524845694241746947828332838295459641358003490729629116869656657348072105604402896918731893649218639089956976049073605560007193868398152384533259035088242138758717830345542675831849492442417992433908356411753041036386141051337638089251806656630703939246149955216985821279269657462841468818205935104642066726385844479828571103785883868244639103200038317386477341138350357974398608261317997193508998524338470579993238669550167201319193613608043989091623795727082611599068869647481640220365622910299865292566830934939014543045990318452411498783762276445838800092398721955091407256074367155533896057785603807292220813582917291083052475228794474806171560770247336459083486598622975313970719045175699040728678016172965971864689960891419227918215524445142973742099037075727344707051362190510300198183081266685063376227069757188640913331600617509923760993294573644591480210198116306669742644532403322188025779607879187442475755248951259779433423259823578737817350166507910611954725213234212247582055493527850510234377501035655000966252109774769150176962442286452633442957660472755442564809299561577957433964469857417455762394053931535297350821469360252346759150253862461324884900771530017421482334629535140784632452565199289257198374504181411968134594654161994787662886216914422729446779510458857658707677675426332736379596834095278896245439850396918229841668401577776486880981979300806809617828773305233896138653085656329399186810372719142577303202258946483821371970294121273414943757222288223745603187223397775884718442017656720938217230408109996771147224930189548170756932073892085713437941528455667717712189606607008178096088550563423695752024818607007551298823540671934290217114828839875924893318163311899060275462662797449196624331522127321190591985106665269981572439715819331810290910965246411626393036853390841372323639356859799855400656874214991899484259479431194853265985151053162469679949017995017481267837185595510590311045075563797493157366778528811789221219780830140164894768704924210495961636628989154849027101933451471912907316966225475984665621395118919769942240788779445028596672877755799962447830850208044725283544646338974587316067397815027621881707412243817088582658307846219553096486431428784389282940148407270213091079783636410312474773769830463389632789647968262760571385883259111142198190327675723537419193669579243737295095287727670263938633099009828679351901653788808237437546431532254032104477391900021636417640551470294239327608291834574817729294184394282901584079376076638168016578850117552810774960143604143175650405188983754603580718410371585070616155325779758505326750289537843537481068952057012746033515852463393863254634995808973999715652496442916694993866096383627618631539240199683598060557158080136914473419780370451213588319346804455374815109678868896240114091950197382341804226786510399024916963722100640890376969382548721278187840291206170620368505552419100670238311497908359074132776870836826070096461690440185393765627962211340513315962157832318825497449639621968261297761167599516406310002389501580369043491236507292486210570764872911848252799793429986321899675995797652944018053990863881145498054892748125008997345815518458632885540726183780568991611432939275642874970411042978837412755045273445438812170038468818950509604660328302393513231364938644945445818805760651667937777849835686327250015644177138082118376575761094406417618741127379283874576840027230769414069589021219355113135078128994507128617118314898354813710865080354801209108086398975895277960218038905510155320725637056631401813358957202273118599136777222238907771937377082477654556605624701299135619879034485992143889198513114933270710743331813691063796025500970612238617635108154591105174801789121669244626787712716006044665736789669409284158693195642718127896154009426995503312082190511639929176057283220234429681471887468947096589795337868214809879894191860223212597174220697888969931038997997847968928924339335967277415845823726671432349719951213926529964787625071074560984844840939966926918691064731357189456809405052251374469562165138647271933898023456669836124880728758253992363830319583109849929898749993060742455972551361547380965050047818124946262649808235406031206106776707076294448327402322361673190964946082233646607080703560431126681625407975004070509336700750266486776005754233446987137707479220159799024351878690856695707891284885762236858046981169936792686216404643048117949998761877464330374245336626911707108822362991985913863533951266750425857260531629947704795584824565371113760794076212223237702153165516767182379000368008566757480178666793424587496779022159454278986867130336481027954874596824657799491253721732268340877564516400143194058114750248526422331588646374050558589963414999187592124614265881216232410801580367295313438231257352534131600340390305383975677166038728032007462635096258446483068556226000798020474889058709777506920986345301982092500205286951142325854335865032918782335371389284653495199012439299210572222010161990308012404441382475729238623648869328410079232589018344059121737196269164861133655409482524476289210072609730528724467678246387998668658537256774257349022836416886484720589585448469121931148073979392832052658035671580536197184240701269854546355354653990203873628276253260017888586212948141572662758241421754941673291270184080646748393645805108082514470467193917131839619349724332972775894582398639623124798961009978039154459204898915767005038378847062227216867822131421358657922319550150291915107918659698511199203553999980919401576011187768975209173892761505403418614624254193664274865458871396025492406368571979731853069266746738461022061489079178315846364405406295713506445686605998309973323367517824018484224350389882512429772022425153932232237475326735664176237663354211456700152472370780733166947163263298591680963657936916451297613880077108721770416649520413934774237241907390587797158505152161102997038512978374284631081075157969159771792452756562492936800909275213778984514834341005096023067886542690045239370100064282527428914167005661963197985667505242028506150603415178869452563763899830274800483729472342638312355768818521581643390242692884876263497364001358396901125954879129486869474179627711659622174766203075285856432025304597374637866792191132247063368612465275582802520606623158886175375032075945100274501107197025445059056375073113471483095891211632368173243026540435622819088595278343077429331946127550268238074247766447557599145249451998970188313673868095983272147405534919229596178147557146554416220817960605797582636361708785751256258302927357026420404182726731636489412949946565994205138831787113037099184766598195136491661811656224992274755382058283506878653579070690682496796158246911892418621549644622732939235709002748820627621864865970192389545242133870425708638675486993037239585452433823257902063106047078942510169319587595720268882248922609638224210940586483359286708786502024801090615915809055185094493705984560955411276473449369966013404544932923044357136221633012285180822725738773662444573682974049413520073118400765246139826839028198273680249479715830008274724329479552964553551091896380587005097883766899259678443842074584792064759544675780492321369614025653703254286930053694570957756573271517319409425770594148400811684693959323621712587646462869301634585842472890520394021220095410626768079605185517321538031634612880162149055635579137735716313537060225767084252895763353445980577586919997417747885677339532462618232771364137937807921414879589351915206844610399773714022376022584062759396793111982265376175896841077282283654523847102106860572249975343052484097819756995945993845655290044175272360774245130513863289739383807630682750798132910245163895987823282110840961060969609291772317367238639417981259970648455884024796859104161357684976047525621491147421531758510300437931868368407181100661746403397094932536909922679024756528493665940609565251070403371497936425446463046778241411220466865904014904459713919259295799068619899147672213804192592720730029900382735328478795633608646686302715246298369946473629727835970887372425405353464840649788168694734774121556910458961493205415380740889695637851696163445803296775874479173062469175441247318477627709381293609688430538417463690695927203236589341024431359563234800208871944291992792585829888865796180650432710466702087982938371631134151988981442532427886661044964207718552193313500798546881384214491061847740601733893809391106080895920764434411717618743721767219437008301805778502887624466996741106626691579267560467716418972424629743657309672067237372012090334186210791979076301937763026277430621905881435027582343618193923790999754489651116348342784689664457054962873660673850380595906420803169312954387435134103826824917898140989023261243447294662299683912489475479023277189241470498046590592587615474775454648278131869790535981895204477787444235654685600477751380765897869494300968502750987749046694888248453527905873327860825398764130913611247569497249084062122153404259020317013847361870336655265823182229363196763641141714601848639652756846599163621301178348527751369286619055002036872575256524388207210772704174319109241282884999387122807343503704114035855269883638245724052841163937663110058790090296635442931450017520031881689768229303493122722461714148340834000615204145781536923570977657350544532781991962508365736713488276973107513547423260669748783846705136254928263976006177896333713687760947280511334909572288297554578591587006232032654262167320078076123468940033689343539219770797214197719856644798004147794681479607809888599013830020037053968030961477722670995321097935376197337577649131180300311984350761909082487250888301938851314643360728326006161153944500001060043321117087832504841322499187763583927784256144619224773556482320993586981045400007142319006391109645365726563791603602044038977620572955724957075046720022599878603903655191951333749921035821731165875632920151056521490474352576580648952735951017905462159849976852326093402502836469455405806018471480027495033536051872773435670440093447185267224770104013487182317687879808648615582791877180847151950850913246242957074749254840150101303139388544920667179671441625027749390281690382518074147953248174467368693079595914960269349617379463151737084764889680395363255665017739201487103289630562726195744452232354172708953376182365125903274914072497606904821366445112730608520443189603206359732242487069484531537230058533193775113210747811066144701794290581709039744533655375351682950110091562305739656267027991672637342579452615389998211056760262009637009699150376388035501169052636575624871504846257007410090089662748224196616475606166523184272895192827194343460700937304138906650805136562909977097760028035541111127978624671275242423743296571016079691246039820196772448268705786950756796678547641082507613888784849199408380748338655830741128740329921841688597330498569739565474366812119667649602330216361710753704223682039653425590814078925243202792515167480845835012514592054192307048253148153671651522556396254683424098038462678780815418670800165333399523014057664518507932257410734637632801576606644169777995034847605677643347464827374946630870463385342581807732231169615700605287541355444058987502179937035005389307027286952978123504526493089803910209483159655641209530116647263510639674941287081941889712737872031475584124610767360386780792880654636733493136173459142742459784663014283638955128654628927291604147141053033942506435726628093943276346149944581549741207519649949223871125041738956455412726545142630419839123007996009036151069278519688439294412296261615213762676616284848585124064101170891873192928564964396671758332405945121516924251835914462238319628101599146893923087780677868022647845908550908687381811836557707095108471320700223181976216316805743856278530103339134735909192228906860436890332127361238036538022699422307458213565260659726541659912588393889370468897285004094015103261253381338068027150842567805434822641094636878586850458561856231756442705038186174558663124389023636963050944542995115404062611028680174531347753129050869247901635419121883431853202733181584987030547884440825078378365273970994620279322479528531859690601649967840530250660329100842345176762060690781513236221784922175573532806246141241447805500196473173517295689098567193513022356324685129524622760815492554367871441279338031831195158125609474809337820334541731902448690907135075872902499332158749937967669950012935467210654591065177269173372575206126021581393844436204497484913522193729032233348805865293502532982324510408853534943592849492748428974359994496885040353716053160187615207486261490420210352728761081364000222010709472048507943568873626679807171352809394131072643072416235608970565979375427114907962881684386005707970648148724112848619529387229616878208152480804364339868338580371036915667643123104736451988292156142730865771880332944591987681160921561072437191981655192640241208308014737640158077802908343425169305782696742553925301678888672646777716059781741414097947099269455032230824014390924245412653028833078844490043298763526677080293252738773634340905041433879649383897623726816825713299413472006419370338228277903172929342080141892847928476542896543203864759117774824063487419581023765859256043607243501268550865503759394797721069063100466335026714694362654768416337549353082749798800115589162093390921026019669867330178482881383341872463504168020121701238331097734165924283886767741784313175771899898106073654031853253470480859269019814613821122397200750444361089057560259074430360320899071313375689836239515068607652951589777658911556046808715753808873011553982523981911982544000219438461543029509381639151603702532611890951669343710374281863058878807547011562482585487785887151124373516361998407555727089756784070223957158629637179332512344169660567643317196842892530075904347805989561535484527824562818304303374809210525060530935340363080653993823149014934342427691443898419650762125562408424678101980576522311402012775225202474168979012673121981423508481633187577481406688625164342582471569805770430906718620943775549168040490023580057843245489320982250031575023096897052428544536292033534859716649793390696713374147986118100660066237433889003380702254448141080834413417745352120151656506825898729564783829264232473022063441645540369256344832243165559451384053963277938734391232248079689482899582634581060691521888287310362817834032159908524322540580172095549830585092035646060476895270331257898835918623447988578800516767100706397407307550939732331359274000002083846593524741604799133722651236364513305949654667622584073324181922681540259567915447052203496813514040796974203500229610963381304836468379373241727221380193074408322714831308218483441454145578722174874201734594586814887239919060993925301705451540068530957581148998481568387254317490963295830393044275122091585456521782116005338090749160110700617593443303701712884307397709736253543508894802791602681275384271977380056485848021799830011602880784516457210487148305871006776676289623104309634998186502879121257222970048189537017685904647303591089759623706874471261664616405422589494098950907112781845104212552252670854666862120025301297086973126334410803723524015328224815910491754116342345703633483614215306917120294974986858682865159776212634086938757770108333335348615907612574109452188202419227965152373642776695464650681691542618503122120447726400186205847354521732200182345766293604449025800752117128803644614569895567830970777229455610575237757781798587153241321556111208674482065591213127443037869106869195810287908849283638770494151247933299252022315143882455112441253072081261249290681877662279129363841466081782675792357449214891208513332397589946287755584146351111485159300432200136674481004431225312286628579415910450255098665454637210511059884894483157059681937005988208387758741556938288868441239670321953409665702705186114354925024981449971386088300437799260305139621064989393019357319931724156522572375855365521547456149302177682068899539477897612876678131631442393059987357908552422319190661629603790345081716066436553631043576038604733119806241408162197442587096523347011548491206785388697759416898989454835266048247353382078262551104959782459769968734768461788595633635028994263475927581562476302891831607650424206360512991152146149757141884299180961111002166928474067331623347638942099067398678744865059948264803427084564974581099215189513029857270112168502102261667633460606941569648104394099293954114284324258802494802048550255535936230453955998232279188987343307170922723199140847975639844085751032893920893474583686661687798851619870976607496091026141558661997854628438304750904093443130796029360245788965157270514496987229906445877178714305485494825758278906702003097417850461605512203887188578666232758273883962849850274895709023783397518470596927968637711833053199100764106904459598378357582099683142035050837570349694349022427337857086198855081803448492557564796858492568382218831677049655172635812092452915497584092465031597599316465707916093265963072464420441897675935290490650555166742461852228051620844467052174670472123858200384994135210623919841827426366838123908603508039743394325769120548358456439690591210718280892252679808919287339219762225694914898548708309786582012085888550744031528266954708255928470467173183176401929731708680420518165706865666906860461876648688000108892724014548666266808781950930048614248871232926015194584981787294191078186788200590646004158750281100084401326734659158495604438249076310663619269488171570309815898543798171381973896079108369700844222497195176891366169684558565754008514404837609971425724580042728168377178598194112579490556262584965487837582598405159036176710220178554355122958481386650293125462597182220845744519368326465282992902909950919668443899513771731314168775515639586329830500765896873286279392038113809061512751945331674403530124229617772754991033582499675000751397072292373652461303127044021077382147363937232117107492283470657146409135078336336878324135440881757799520798096705751976108221080061839551278582110670342566161479954932601162499175555986926620620267795277205781516962565946102311377372316861442496106476057320293183572794193198276802916561574458145017204896536250194224429638042182304133172635934638262891015100722705309083808924911130801444208241703549564492268361894139827389608194040046790471511126979495546864954911833650585229192467995620275484390175772318324740182475965110771084158216999966787941360461074090481407547699210359533571543471527178772154058366062752337691887824505727883176598698460259075444192858650705867845488373387766318324990757380962679968171742190542090978354495055386223573639775232156869753315595168227513053995403738109950022100791736488806797895034738567226776321171300340202375605675725329118490014844162034589379931356696547921708288484376662271321306713919141027255902317890130921991609821234718515574699707688730712939340945402471028768524778878429011229106612395582873892888431839980190208414015682608427152423805328291391069099200508393620886534072516298927010608584725360132283329502874383475728409146245280433717565079480301896917349755529834184628761383957752229595039372596058715205411740540059100735446186668676096219950762978055635975174536651161066863319061942633259267898057220668158147545883397482986599236765311642191038571328199843647430055972690484527836639021664553530759232345530351392262825053150847522142192812848099190199332829941501208413225650612786241459435063537941715276268142472063607963857545086878476939429736687915890454840139325223717289995809102536450133387934385129580928906974862106665099781650024857065950820477886032717860049443335243323625974777933300596408530830359241878545214337186120043322212471448311811297044769849270628714223916800416754973537916784891061673398573818962484491667390682517809179428081995648606090938456141643783183035762714757506388744027644450484246502445674802434614901868420360552890404006715989635000478941084218825062042534512554392457401127085284489479288313554642164128427671159246495923321359375296759930597878014103530770831050903856793132673226134640570081773036535192169934546775386607685729978962586881496539654954615442461327193294359899293182298763650448866658564725090047304900916081159564406145969995682555505147976247904806627395885903316420644203068738741121154616941161362162146805907346112655862725499793937924190247426081861562357670180217820556744508862623430600648871769986124740169777995613644922840469344438662195046330989497944164931974987208489128954274241906866902302378210873675332833204814977466221838424942964992599801850064514819563877062705375508418703782554342051850793407713324556931716644818244655554858828112502397820289784056027710291023259785521491087793581870377726778717057530077897695358857288251194937167141388073195536716772060719821091933000846441988914467457968456252643424931928623978243013133702205144185058846888054371353179845423014599413330366670960611955948270523630267493325320903794996461433472409588373012579513613504880985184489425873301710244867688065033359767871920189126639813331735381109505283554797557579064283200995875417993681802673418246830517348098675663128271084972024410114952893343028903590117553945845408837927119408226383821717755417166636813076842656381091194623097026619606923056256356652856078835575267512675521245287335208068947524128922467844935194288513154023926382991484077250635675061595977582979113065035056644669005326039136723066308693528218269905299986138849965584529147090084922584676683804589482325982477234928371466024745591907577302662277242402110985718895038145515315522360857119237772490203665344518369045773015342282647128070590653709480610322747002116795435758638090713176434107478968334736096609832071173869660290157546482784191156509314019752810433101578834779378285595046951248536679940934312740102597313651909603923623777627319663895797257639360958632511276264318224899540244982831170395364607692496422881683716386622776630267674498386145166272936864619217260603313880910829431343633390776179602743685898982664637458479958117782475695113201391362579818193428707278813696077557846714448972546063083854489022345732780346259667687495763314018727443420244708429036961232199672819753573577937262977445005689742139214650761901459968100561771250583737385747342890078415078875699086944811255218457069085202784708913890176201671308598951836828003522835337675242933165970486267280384649473215626037987124084588410377212510163486686220166508257222562683210469610111031991805928066906113797773158000394618488431724235473324232899724684352282160157480311589611275672357438607438910356843140018080609320829168479802116502413481981854898067370772357901722636469476725846127435022169749345399769151020847320925953250964515084579844088334019066866726446099004624186671375927345051240873432810099320024071427106440950272399252371533804444423466041118692603118261092317208186512100854871085854301204829295086565590123947710851117175382922241682668726480561377306549785384595434599357063844559563424648201074883181450960022998669501381176387377093555424604494622049627403554505095215619062315461512400148937496017687630930189115935362268591702480020658405182405305502284840549584976054642432507766929166230746637026540373575675892708247009360350800297033639222908038068731791278684785721764875276805737950365225050070627613477170613035894998962243405650340149291694471384874586564919618377552420382826715959897989342875981924009232971844060476257465726076851453081260951272361335766642598464528185375928441015395035036164611070999803390828043216978878286864204242088112079058012927506403894474253193287351785273265201425537524885639885623633575780501374704604189425353803382969882914320171066150218070084103614321187836135558743760822213861939286503557387895975900409740165818001641604357284097023228373436461160663067231416185827286833504679118308024943718893385361081647710742651943973986845695260711964707218247280991534872451324506828725703817998114396937884522201092260323068269764159435081362363652240113274706289265804461886421119648826732988189903470631053827792319685938263500035349157739913957531725195314244184881798508929615659311034095095830603079554670704910124623079457750738568149799440802331178649501708292499489725619794063864438061004331110424979348899694799240457620443170914295167697037393570974519789193525604571705045165916032320173835265351552024125499231716067946048672609984414388898485627712917795068727195782838753217984805471645987432476277405730431939289892576912328269767895786386564808798891379725103864860539626426683849779844515349634992003173159367849580034061367671718409351523676366319242647175097397564604948580027667418794241049195800351943768078991392403460169844590253882329408873699281903171583710812949398311333210619846889756698490937008459782444620241790375118887605273305101414950116114550969427683177099630625408578832923469918163575466230273773198608860293204271715700068500606309974505882871040202218040308919999865789515594477085036884976919240551191861852144695893112550600222018479554774858149977666114599904476625402722914241194762302600343282815909074373440474392895312472871375520227529548260902281818910136777291540737878877252020926544649689847961022688578090063522150725499340330352214095633811012090582231428043194915090104713570426183774555154763630510561505795400661579485643844493399292066942309117472676686652919015829275872293582201880746524495407259040634463520977662385496802539068189892043729447012307198564503107102181133626362144607092041557891700897729121900305738277233065583345489274828990834400381246583545558530049166942647697292646912474187738416470221357885669846793811740521463270702686839851811628271533542417773604673409065271188700457140825923662557609020730234702364262097113739254997177118890231086307727774675666597547568194615820855485609034662540363937136242525902702539805813186282536836245813429295077144479313394087628224075609555330935514459534485753768692666693597874213183868128651459081377405880469871638406685021241955927715297913047212014257788972345260465312466693749622455057646077133852866463616641870543145399608764692199067743821275880515676930063482592100050711383821303545999119421950148113926290323442432145106207547559681658909831050699741383628649200835244641094386820536693478579501524601241818863795504087695202399258936281544930927703699311409903882734655186067944901091299656002027676246316925292431754950249103555414122274108040021549779567667014775293985448442384152711795641068273628598522280271599584485808421459894782427736248616560757215218376610303051178240128275056591852634746199549242687324437381479487708653913105944557650349326320183341903888244917109140630492183403273267600188257539957094304194000105350068594569835913785741585604524935405795984013391586644676259874975226457629531259658612926801408768965948895465223284173430417914909333426592437713588983025804395719996261284814277713387166393007912092776781553677347050824437968546205902302844333262084997596013451370961698473121096235117034311022594448697610326093899681415170979661964542655988603565852158769814911898965819845092620554984402937173077330240485524712194608674579741627848477911360098374359091400060238253928380509266557911983712216964595131478079021830256605979818019490664314750177566531861195443679735560267815312982538904811803720796901117597986771051207285322793708005434602390956806195505445201694077239361710012925276811006311992110105944486668925966649355944700986631036617948287966588525949813657054294697854760157934940181999244840460934941574936204609939418526954240410856503105313284041244401866053530477074741417420081096096264322088207300748537717345766470047604848824392709818314124335579792052011909174439306736043943238493904238717902438902167062101794104655341079919812712433515295417365390597455738265302164692552840493506659180365647239455714195400921683972675058901952059537907972147800113358668175716454557793856038014596002708605587950186986304415096074942787147786819530606930128059564123973970524707811790386125489347856812507531284644960145188852279965866663465284065515763549097632911929932021635660051754360716782210228150465078983016502037892588696436538309732737851900580945995174097724246801702227678465554035049640979168005022612951725636887591496186033960838156138684468926095617642524765116255328706965918529423905876113932174419221719784845661192398810982120723998522884002977104708166617518233460862058701397272592216078534451043088403339848054441596839614332187518067563650685118077133717693120716280327365626128165965719261690387206435310433644988783385767086842782945630995766393034783628937758483970164610856551047853418203043793763318472152871596763719564083480033360472037462809738856354357408693418920128388743748068180472794965614976143757681728631550681472179360765287583808778690904488075942729033634197769259866104285557816079874682913510883345176139516766568579125172331511784465427196556898433457118773915603897281760859724588941847894980180185295301610704336328861703293835850228804264834254203504548022475887550849160309977858965008516519493194263924573669865796915267038692321176609652600586364110930132376121563658189849008161056116621223485874631748369810227868949287703412583651972591168061079095747166344469289177758570083227655880472462266030719962219739186669570147246177228023774611732521190027969721547872356990458634560701444975274847174833283164844760435631239857500935676286964222594881078370876259882210109781528864687527829825282618795270833744013623006593105098560077739571975351649697782998412228571111367174473493729367820569162458075251578802057601694317448285388878684030367422924410789642193568819766623022280377675638740806477724392813268020600540168935229253361485694574700820166549383955106988266085041849475518273087793761685975326487934984615886668700603042321211004953886208894341909646249066620278297918223169976020690832144074777566526926575861996613249149040755190159702904346437104344530332085799238246718433183515397112968382027940809829268087917149647070240917763732415054243633514025679482307690585084584242101232901687776737690964096121508499765490949181598572379402258565455332063541064130000701633697180952879605795272889360394133756893998613552187675868627062696284931058160346064262634331076198289821064185505146952184583966762868525973690377738172179712470261773288352287837582552405238565855948256017002398275139433844355559611784218577506945262045972249457989185434541018184799869121047735243475994414956071109582412235598454426373747589779584216172770432218271073044957022003805382321299158574229579591785600355890979752815911305524597391819447711159402700241223999535828232861866567043773918384007488355590501159007049984422472940092606565318166849643884622597565349873383702719614042157135967466703257158013895284710739662524443604831216929429428487892177425612395896541987912917063377837123501017934111937228443370702851399137071726503353667663291499753049882931750962246810815559026066330064380846104808265097088890001482820286177919417957746014954888238764400648335355469242111424788118391590107734101417571169508839771405188604377901152091400274037098803787744708362441465094822586448153726604803639372908944277587295676905663291907848100546776160534949566469187732164079765985682582955818943658288665634265005675993503171914825926415036581274987054122707996604429144055261661573351907002201139035018359076395322182841719725423866511459891944766945650252266391568341417468926168602579257965020647471402601496756013162265937147497898507477372360438472566152183882604863001961270165321211521225314391184739217251871188775439119411381312342131219745972747059795252188872334540962795316690714057263287013737137598595195930954064455660374262809382725123780355988916476795318263790705441628092759447341098289182188071106626540500420712042345881571943950545961594442693290650770310639442836965355579847060476686234348088027437497036731078680476939414097566105017494067270845208098637853630273679478540741930764672219756775603460173040646459206021709664719197349189623071910258874964057519193745344439569468206433488590222205193252506858579527258561916591515585251788882557459552648792829416022782824589058433673202243975446456060670889970633079525453496767511496849088182625261051285314853421579911592751136765118742297591176720548340111393353737909082596084485060868311649777466203926959966358266778594885316732724726369483971502708557711922406230220478303176571711598290496172428780123742440838631515571615265732987366919389891619202501857153198179010165563840567654736572575591981109284843404574277770981264378974442753680308756551668014394504198335526446682933942796914005572072800631091129700044274797800484379866797475899747842172477011657824617608813435568996012976154952416110496088979709913507311656553102779886686686294702403936172630325180595578408561245953096441321217153551557533600609296552182421221592007213592348896451801366377993496269718654922665557880215444701134147435000875714256085318849806176663047268342217241409416733716960777471241531611503228290562940361598859836946680481578562611672971163153912989191638506032482245665439925508128530316565057801050083567797448691153041917491996198863143724217974205719767684422370783649769047901439512816929023742837505685137416698137508763600567697301696411938835999508037401631156592964627743729018272466613587815448136192486353509518453973547266576662000922711656663337742726403590554996490516850790973168605391826898260849297546481888353271250671165505993313307838402967787819725494993295150750066050788741553676393322156496161335158826085163709663803210871615960838050371603841807195876920245318111737548432642765423464283898775131897797662117498757286295954320905210365181809029731009659744644093657919816857427978748083970891322185773287139654170871711320247108868822531692986673936751806411876385848820047174119881702842815914762561406787974907930349715880456716030038679829163509664637448679320290267099390130182809549782533555924477704423029694790365691047383634031453831276715689376102437486317660985511722181292008849469301382971494482265905527868358707197611212683125860728390089823027645409643333297559541306616432761030167311789731952203883104777002459100501199001711131671737258030649258463630400649440865398641913428854757801708547846368570831903127360967978099327983657023928088853865346357309648102347028958098213874172683180992885111817341738463836630656591196284251956656329253601442702118790304694825748791080106501405480782081829693025466883998011793510387696171116566670612684335560163546878172596352456316794651105834701680295904981080838999263656057629618109522374874968748825952943054689635423194208808646922913292442833463444030748349930126470321055170896464725648187397377418346408193948379256714171328514578550613450219279646972715296894804216491287682270672637909283871356385060391942133832237891390398750775464463789737632039967271010369357353291996282855632351227762118321889068884760166970334278028942998043397615706511801404510152390367365649875139077696389068778421547194759396087375949512844163483008777171766788174945247850406213711712973534377192497580848073791202230545827022523210664808856168291760018064386559490231306584970623070089932817584459218282487458034340160974397240354794392019299578472303960295534366137508666475037558046348256221048014872666245079193208229036850178691068851801370024524574461203345927100804247477416313059672378949512642886837451464726783158901983471973147451800720093499718725472770738832004077085243025460501405622339730810454963704141380556739618566357393891633813981515714593436406446341730957483509133646328895440074472267392873572945500181023186207716681346209122703532550664087087414683594305358092826349250636077526982799266693018973988831911387469041141736732307478889913754390946791651160984265924137916086558477652998212244104979409286626454886210570803684963271830446170692450258543748824464724818955034132050535708835524807396314774708572204928546915176877766082095652906254088747295278643691982107185773701082900156062092776015358049579348940585378874649443109734255609255334602810466758766498227228939196952589000921607815251836180764711784276252940875485099097677121124914656952932675737280057401217764341790333455672055777650178144367678871050409677480944081486683340658177708806408550898862216468859000085043554269033178017390030854476665082290214173994345772338739345513217291567618533965483366577279760709905067368336481331834568643118486702393958895196663308001640341178715316567822820440888416898638906369104360781692796421836507857427534565412540852553689370312232208500058537745244833184440352602710200478561152777086099450927141373931294289196542535608586189195570304266294600391022492765951972968851981045506254199180939195074870646067647681087020023835299466301708588315907289944107372710678790063122165992311965495238987076067797868032050523919970251606742395064997381220747852708959714773826670387606218690317928892965587833018630156880020791976334689206761804972658110301649988643260574635868131143167739502729261042314662627421866234966060481779021288613798644254080590619656549499369921358431713051305927837172895137359223583258748755127305059372482114587675565888832009783838115915853117555537080217944071625436643724183820435704043654403914748833073180965729753534933603708449925476483469354372216391324295541368107526010239996355132742219628687251531529807017493812404139060302202047967366009649302839474932486382149195302657990377206465236175132970513719561463380221233012656250960054648051706202761101135605495357030895051347361244468598340135414058591591948297006547228327894785772422081359793912598462383961630973136528145830104692061708609671958576158265611518120586257332399943226099831145034168794030003705719996527053059653012228872488663725434031596249824206783830182247456694039073140290366018105832062228239842510750022118028978083591797583054016008688933039373987471278545703766995869569404597519871793488379951494539720943557078254932720029985812583707495337012108759020835371118282629404106323881496493022569830270987439877980092193708095099082396669627540945792834164800375460315652222130297252366344639885150315444559146856560949566209077005894132521912483373227086912818746986256723046840471026587491797156719594360968328325082778207732309312751596104033264401689005212656633284947198489599691501299437420306593667146792646565045352972267736250269698742634367525451148334629831146594091194720195241509836575607886443609023765180899015703488275196109178048673290552173570063464250059882424696390911580103015931252736609438912860945507944578631669909349698878333612377309268680872047062082557140952396030394128141557465841867586232092349218170493658535051928725542783547316313245190175906724497818565062328739351330307251615267160467149058305003799275562907310387419946356939010102559140062632446564337742713949938990534477988561899131857863966867460683033559750970450425123455659556806711351326993580227834554442714692264162268834919964397065388409283132322302184485499307920147721545032860341200429893193636684818771663402770309531485261365964394767806821790809132795438339646155429892930556652289591691307769118859705304875387227487367512067807939306565454733167492939362514871692116374013352628326038897658256606592316016792749569750594364746061615955298002921795798400947993580393010816183427724436304026456817345857989151792715341689276167548598595351200573076532541177702993306291011773164019983755363010276815377127666259132956295259812013783319910547396928125729103437561691400188994435917999359965936012930591135765550802852840371161299250709098656825710362626054336859920826269590328456733498062943055751435002420040988228572409755321903179335313077817061921361364663975000099094565368154299270124709654656996953319781376301125122167860652553001141060121848304377581996926645849446483434503083655153790283233519674323035705946477179707309674261766519181704494336039444362183115870740487084156094551522565598857500797584397106189998382724507456229127095024536281797338683887231341533176837082806499089261613179661465189989045990930790122068881135782139069841506544184888013807078726177795730020450180976895309493171242422621692003500296426509357098653363347673584969859274345824164213139690176161925258797277082819624988502513120128096724446252740747141740270407820372128879298606677503729277395387593710149093787169976021176898266173174560262435268894647863983182063068815409922175910450562330705215143609655326035772216373267124754899332056609324970793449164214776036649688326359331280886494027486759251858114679485502287706613981845602977917123172910000408863975219327610314722580891811417147951758321913248574997215310172123198128600806520030993501669252689944530085164671877409875719304969910155623167280492534890283790242523725348054072290396260911149088157849336825389985611008618825022657844798270814306331745801581021236043529106219748900539696756835658433235217536082988524617640079731586511298082707786011689043448317504779730542698045457674872144921504758731979977357407077542236500107139590508803330662787892714245505423604347373846028305220888034070171732259140707140742535319003407683522649631028841406222088101969889854662370774005375603410967907403917243136363259532290551128775272323888460396967978416416804763951414406991349512237379353195061023093865489821758690708941049350158629915080577036222943208956191878158434150056955078205767962562313142647842420538016778800024932912577933745697553676497346054358728966780294009168438119671133913583814200610271703111534416861252061151228157266136695979356889585808244859268237651588517989297704773901671772983260685616272565063590022563326040002716017625919258062551253082457155774610874668616191413743616825544026362910443241941866139007105817917980751161570494435321121035757906034331498738891583244174944287259883150138509251786149487850839608156515582580424415337639959464173379269692969799295063170026156180323677501987025903503825592581553847189268108231494792033031399829002359118052577498903698131094122878390346110354720399965313142709000307273528159896184398276602990949556349394596543832090798714639720706753481377907077218468163447548657801730546427375669242072888803980850788503003086774662570254910061454555218358296645422030572287341826308818282908987007409124260174635673940308614864797171970014225260550951535777410788439644137908735362635428854283535713235105792210660682194526334703189999290633022792388075010662934881196596177558612978754879698553874669677268866144068814740138113696598458612363181435131383402116664931688151590127734137898756291255295028430069396259461444043838620767202227269456985117034964756038997192006693520356575651625912275815381069883153414116305259910652371838650371301981385458933505229930860282874824979811670121843920999824829335827160057690426968764790613903767256713051235642882228724052196460327946551298068597985396426734084277100916693024597094855728398700588671477732419065340067375950026547761754058889683924787258378524902980063700919045322628133429479453544051639402822652384871688412929758205923393816078583458234711098086139296805528908128464595758542535720559366820075926563750395976223618979825049160332722857673773134315093605477152837434370217283055033039124770510291891051300899791156041602766984601263455068176091841841804153030120163803098633290389727372727977117931111289453261966440642866806102261618963660800575015936781414488271319397327369828276610289957753719654477663075388466984166886741669310653695087111851774814223791036687175523889958907043524266031190213715312381793989118873924008329352026066843197154907979900879525932273096264201401173201858910395647955950210860264918549502274622806447397827425836474329180863190223356701846068605095736273994179091497985007854334163976245322662253965659593469291130901942548014928390017071541018494618861799026809385684925013127296669711799068031922534478502862082699293197971546073265992110648879737735393095916628362976584224303772910617594936639854032637856401989623389667929683429706860292849325683621304116087182812368360460477302488438213481437511088463780989932403440833663944263703354576294641259677697901017861372740301162963168582823528947500460276780845652994670118608523290879800389734777402225251852349755843665498381858527930429714750473928101530440298532621572518828731438689448127194224973717790584517216045431975114065084803865591393778743508875973448138161264361455985559660494907730105661939357234437366811031985089502228004280601234436019816730409062693387817224937556883970642688390676068878623699350303884404901637165897641075326340240899548823497135288440314853597987065974495885610997459950882420320330439469074427911874194479631474089640253719471227648433742316783226394062046506527774154126475748750592894164784566033425053132756880631115546033740355358584595859398153402848674638102174246394601126523931123811976028939622878516179903262668207107098462048662982216430638928493682677896528969257480143966648902540072840000966810897598556924154600480045617332560605661959738089981175167811109740011566668018055275547074260771040121306645460340678431658755532244709197126417422872857577977129683523883672818769533382082007274422982955053312106053839884007433791323998149503326413276252287918787893462069214692465632990511347144642897359331587390688029517781561180251719945359576021016262605239063899308324461097357966406193558911821937701655907706299593336301172911535404732803989019971492113177924375001715230922222817594167970681670659521431296834539166935310728255469589172238755015946529375864984486736448771203469065930101710183968160369078834830366099319862478565905495999449121368705160756487895591695399255214719829574518875789635632980072751531670795705451900900615994621311973915744499066296763372669022805112775290809461887907576756214883222259242891322449213850723149269827616732933949087827050741389909394378869321550101707963981041672255687760431918935389413581102124525074571316264301803540466522618392577005569781349837989760003793451979280674144959965735334539952068978744327206146188134619018855916323363430837977884550650866084508249476302581480576045300994020102205783417543824206119441234097899647890613254640840728676002253013953682450884618536391544908337182826355769996047223333989138967416482115977352481949522454521485323281155132108615089622193791447059586189141785521325332933255937751293456324155757489178188665214622946702241980427753383386772787874034506005663771445404376901656535599904396687289724668376206597899762376019577529200933623942020347985119318651813534399305274480721612519441030260286404318749105017035342391820923766146925144069622808954260923172335692293706358169751862828269744282110780343848422506644617740035055220922105562468531746196317594578921163596446019188600668807150373689899153542696523998656949526097237325458818355965664686523131132733309231848815169041067752386005213304675665290517594829565166805179821328480093922700355436047030795657173781713653539149472710971910730960035925925108066940631200706293133193818815496131914784515232503243757753320084591621995886091798930591339878022926729009909898007263393967039725884037446138329658492508001837113872803761365004015375320238563683935847842988402910472112589218578788426252845961105967064963805040814665727711422318987898512844779616158672650011635265934128058570122514468385432675039841941405238507075729628342271338635189358520236221693072851157556965841194183683771829107170248825217234057189372745312647617805135822898186273498381386267024111021997120748744540131953498045300080913616883909220924151708775700082605104337515947320637402359501036665821313300378722687286226414054013174984080693970705034396912929354096881929375380577976769297455581380411797519559054338035289387850611266291087567559049876489183831804184268354622317481024119776097988857461711001134115211360863805027019225343595864479378121305963537352329862023154465527342612067587423650316786657976915614882967582787386092220663783028577021470477073934471993893878014095518296931909289926779244927428568667271429615551978543233625660123544278518383789142140888756916015306685928780736037778353443003019497856257316195026909551556189737004823049122853301715621493713330422363032572281847780971549343882752699714149092826915158975733152697907816720058990806239584261753802926398428089583809444537103560351977315365082143912912686358842290491394548105982619560409618223376867352353285094904088253364341085303307526516353484461163140950693545417945919694756348480841424282113163982682296835126908906996923856541045038614385807728347175356291284695558177625864208709785196228991587500831099637883202950574556591522232641302730660903902605407050905233063457242750178924802411024616626166060319497577184262445885008149083316267377758041222506586187906945179257923974433970409574248139436754206494699139817403838915972186367018040458053712685540708384064377484207371365516373517429283950411336540062885613116067001564611313966239250616225818162282201914996682540319702704374965345034377268239840565813801815261560637654885838038791680551544177823886297616729214697130474651705176771528896889392284263418178970699407957413358054795649163293288470739475801966997486731030488983141591789208641291326143668376509277762679044880752238253510489734628466927910334565568532025551423779089585316378902763540301444426683147173683740741333475009394660277833794366341538881101469046555704697460366317983754090999206589912923120402329455084676846417942505898456587412876921373445248939589004391374697372048315018293109357474916489238856511837451413049918722389875594364289093088278150150550120320067616166498768223795215064788800459638460890673239591034252551001145861909772594373983367475003174162008126323568121378014084825965128373359627044821878257056353905481026486871077739904694210440352257029750313419485892698177431320085376987683290404098187413114419428079832992675005273404622862125805813060450425822652478982923658535816117134133051242370446271676192005967956665993632870729704456680753229799427749074025911851393448351601097471159200594719604883122374587520169796181400629557838559953666485830715538719071533692075032911857775267145956339669946641049460976103596836153023912764767825583791967229171755110770965208747308207861710338877255428938223796123525779217482833961045810869116030059261265934086059712885726572172110514359764706830303277581022512751725842034085943797405265744876311343067490181375626459186594904557377866256979607288266740529947585094019081866290420751698173509448780098034129853072363095573040960864876567874118917813320739392930518554870417781670995218717563375329650054762813888431325874975596264543692184807296926790925500898332528909567843904352507796811555414638527573351402294172158428962025719124519193940735710234945038013991288836138277031784522420584294523505294288404510350302654914634407941025732365235517911959080757972356718535942250690893967539892270301086125881183981129927630455333825036822785597967072136733416595531380912468349632638514046066508601308392396005322489641936845065148592216387872312085253940420046096952640825666098877478637832524194397904679626292385357219962588098245445524096950356589711513086374162382004210148902434115487672734060471119456803441921836803389785634577338098284031115184333961170628244833479268490112934623022401323998968508705242401763495766728357590009710048890201868438187838855715456327499214721698220660701249803522740535595933207864914846347356961660845502647353138341399776615693558583302496608417269744976543520906451854046064627053479511975317095277505841198183777272959329523289385686783497200049880130036200312250826445335555197377600471671481491994356831139044983235832884296195559481456813529426064248556386946011938210016581271403971177438158444969232051040685407689200441198940712126102747663097844448699496885599448273675800960827838536878262450214245800272550782291994147986297937287651803726716316171001606997114930225637096178991545810564896339364772854210840248813366415461371420530476419426308871739901332255293641905677781644088179004258522279987982965077923756041013617317693929695568991826720347011132376590586286654743349792432258775772887604956531273510447634109885246982013385970990769625329891796327596014712856248740464929520246584890157768649616177711980129643780581855016347988582918909256387920502150093793306927676112569856999452914330463175363359463855078148512389437677682795329505621768754147043237356062835056233365316646609619831428987127016275294484367485037982652449476097402872761046937452693289876742379080018513345718946638896901323762435755910917622636919501238343295591417394149132880960489470125317984657615279416402291249354323628766974072561537514927801408875692958540228184785165306405618648949076372429827932550922976722371214169561510687041733895792386389406176594482975447789556727836841108537205251820602076275921780496900296156413671188457951020398865824405386373842494676414958971263522328865519943733453712352282961364034898587951526150198657899074133537787971766920804403120943000568547297665861072280840798957925595825606156370460020568577762591967085811211466868384153058376801149741939613516698810469636900489383997814211518972414370446091791624214888081128677614884660052436406277939381029278586768159959611935725951547129911337103736436264099872927500882118819834701393658494706098436164156011862714187741330019001582771918855439750292537027855145624372382381395247177303041174738631832057318136638852258594953418745496106313239239289436753668936334985127713977917748868256570442220011704889380219200387617851375803223914454115242829787143034195577671572147083619279271844543980914054070700718859079281927755539809795188635283336731663380254532573676869377630205603267072817595854679102715475486998385917458836776127445364366776889103961109142574311605606053247925485051560866684644423067449842981284844371040194505001941765211760913732259406731243107487940277967703299731206998253857403221258053780709978371666591099977849054899204308624090543014451097675615666970344480493897826689073814988063891511640610228609057356684712039987421472303729000844730455461156461845495746551983035521930815961107280571569785421811772531118491809079652105507230377035109519724403670971911096242570606811440777942518383381216691974293568017459951189323429586729572161070272825913720154952193353382280149081493580462055519871865048914606084040676253250169137861492392945246286507689679852067943655577655194158331235322947228440772664574997046864392806962050528035681374394410735669069911492751433658597783727207530439361338693449207523929349057337843984814604844716112829117748835477831752709775756362904972817369466173993942188486565301226290956409268753790675533782564159982870131363998233964762748847604809927699558859824405455885056993716521287357854786021263036088928591744690863344550726406328662795054214864291484583617381526719582656990442475120918709826410999713426582620088571178571552742933096765801278234363230906039863534168526301552203984817361981780487109972506317550025289301327470476833647665763115172245397088970996601106573844126037432224549895214888348980022448366171559927145684379882954951957289871567023550760313802651684555904100618805110156143401319248973494604785727976054531917665021092593214140196553517439707404671367588757852396959892274015494944916916572854300722057540644803364473773889396938893457607093167201520872388506481805509875117573154201194839235115429692867335774225883421722783028617140162906765443710367394951092731997335841282915995410737060420234603065232611163818868769837672601140938886238009907231714994579707206519301220912086282794593652621442971533131933686061480919883605664306840897987697925031592046249910536085831563846552168447487211861796830375481700299174424621984660537049311933116738132881198347074397561217729665750479431260492651011291800726351327352493197291339707226822428461423753282102223789134414360670750821064489719360227955514037912167112142822418263986181211433729423724504112730775392661960934612657771552556939321381068357617644800493373632389509031639434771642190687789078739348675406879110006094674224091129994970272575135529563467117111258344102687716504787330291365856199258290254449312193694161662733398028172940064028198631268645600788644177050616370760918154650224903646946226404627553201165476331187496568589854780607059482595529559259750225049933445254836072907995963380619844806680493260806252517484373567088307348243905442906212054614169447205532304864512696564137857077417499458033674125078924918633289042147577100104518496671556237119411842237979722220503462518637305381521633811084745294189876359572618976657240014721300900540211143659788150879645782543381885295521293903419563227908624935883595825378906446383313382779807005483948900977218458333387093158700758096329409477756205776942416484240020405178334791855660705133112294767494437975454203832273451181589698480792849392811320197887324692971104556646562922408782863387967394629066564952759081555754881998813723086415207992593991371053535867835208919015151715217989819441064538660182676723716105896552758900809256867485350292940307503542507802453973467993671702413258135499875069187286551024980748937024442871046182973718371747779291073933052114293962864530858784404387526011380121876258434132141368395684301202748437519239152136509516118754648929017130446120781606213095215367697254050481400128108177371236290513946899727392663337836479248327424632170926558674562664230252634785670887166357479785685709360476811811798168941154836392956800206905535161855623236378864521506064375430251425104787808098488952516405939362987203776690592460685786195737944026189557974919867429263360700494009202772538489816922704788398783443723382391373915723341148340875516519849748627823112129777695942802949895253304938957265660797713626864179945133685508818427846431374586841981788953720470832774627838124903284253963128394393946113283949186418602820486683218440316562270883071574534898136015291766913501587482644895975273565687224439982352216524373774760344782312077097956508541377433389489767088565029349995440439768276055049583901062445834395411727191923593245606158851581683829304968673317301536822872782840856762477445007983221410369945988822863371257001110186773639113206789432800274325967704273640328413954923867453883729676017013457493632830284590137258846573512281715661464502400382128741832898595331837791749597901627930466705776937660559593441552666477816536747346089082116937621380308776376833750879951902783398574643182011786552085260209127327091771097894982230566288069750581842688429065106120173661828226365994998271923694311177340949805360475723157227487574400303148086492029996639923986622423779464692188465437597930973145904245009900699919599033841770589001165332105882311557059077101105826708136562705075248050223843918721710964298738873865895650828948922887502626350053654683511708886275971899985606362619458294940725129815765999734214033676677445595981160349687335535730482514964225418535462911089204222060953699571218633889340094755490642100976350345347390799067055180348835288978885780642034999165672495433010610587938887073068482745761657643555999787559450346147595335269514261474769984577042037282543505060365803857451500605935394409171971685698982855366088922827903610166396118620128667460797618345497361606793516130974556963511074635418699487525031232057459199147402316881430051943116290208053970888212228107922131633447347617150679867528757420865817488409588101873331026060122000218971517459904442357528909134607887102327321216081080584982888951597284109867745443016871308405164189794767551005880888341066971846294382785849999524057326723369296136214450637321598298751289741030117639008881008225162089806248693640963012683505241087485895634347319907056263657983431449122333739514458108965436818139360614498890832644717286555065086762418139893044001645118994622726319612562373121039362218653502208603051975724537954151370115664503149115213354301486519361140171083292261564369001330982436139486631907779264393272401705674928775786808420443594048630237403048374369416945945394267479085771852448338328725332726351577044562765714881404515055642093155285330661391534423244591739205795887997993738800603374839473132852070486318684068193475335048962017658918746936373990706913189516524810177220208418617011971018376576529184297300192115630955127119124827642338687360961523919076660790828890110734290314343095162619881074494892690417392839442908029532739274053268649244602690344088243689003707086173482302928695940947573722049515019413804770836161300733456534044981661517789236588587949139802768951997107316690988122569382557268792442541866563968915827853814780228691608002029715102488207207286178747502347381371871679067711955963512370256131360464881662278008453800989092781148093956513385234704117597874714988365448101548118324609774204138804053313119924133227359086465072041474023626498495898035788777347725509092249194669852959135793338590288798193399313637139379238394691110680593172179377173935474216861708455544897642292812701844332627575032624697279332674898694988781909650136370049474088155722322729682634070389583557289459339521930289130726553900163274068179989694988842345736111586785585642240877510514518859492811666896773343784582589864826877647225897850207194946894494086475790033784685462300458597865211160508318080444774737129880807597227159423099962267293278328357145090672137056389427877104722087687552767412934546885689450735060355662096501567519180710460858689820927930605262531673098899323457602775001316865405768925919493865951506319477580622424349304040869781979745867899600495157477460088143104521698178726224034687584698867646500372834291248116372905408091083136390611200098771487075438084020105939437706643082298632188617215946787808985505872430890699664723691777535207583157799936835160883224047161045012826289928602689437100730996068720574337765223351955542797326245566353839060073815792508073525275070986412849911182233767568762649291905335757350459681459143312795787030069915528339109837295394470668732165754759172821703345144358743214677041892972698772476934912496153988166542061482902732181768846269859566450967841791234614723094714478049255378591777085945387246672430215873008007156812434438966173378188600029835684406554513606901572521601723385820229374836843062672320438940370362513363445086036034161195473660132916916578764756510054047732118336669814545652532016459851461989596615959516661743119418805586529835310975757643816206248325125966160838360104422907774342326253297602491465922273768650368460456141217789854630927567146816881672352462162091470778076212287059153105730969665943707683545834538895839959348256553333533970573639581134507822525009842896240511687780125538505649789283335532925516260097767184892596460407367457807731740041009344531469433878609645828839771219231537660488966657233979995090820832457298211032616293457739372108894761624936944964175962801834557020863460764860769252232541564370717964627554506511398837839106860710043985886747537909134894351654719935159297303205434988752882996714393510542016318602690014322048136347682005531314257639237233980565835084146636530203445591074298270931573247198800111213440291942669306391001007931395950910035836248536941627998942621311691640019262120488394571260312619001044022384193466177307694465075931789008338411835466076644931993669162822498805312006960496182165095129155354032379704159253077132615167468623234478080738932739067146996991000906850902727654739751313033256850141430551310797913480139425958478542798906132586979802255228374296616358548511825602618048223222484952275547972953292119787098084679809821469367798781403172308014506850981870695552127058132581880515030286097704776850612710169817973582112068119899698014162426548620473216788962609662754061976844710939675082715248555106718600981990340693562711512147309646089973782488049446797319672222611775819631825869063619834573036547379785108890271345131995171373762774758654110717130933946654660453520267582178929810816332337543718516209838867902837063865408722295295668303572237497657087761787345941052771401908420736771040025734568279435302728135698060246942914137551718638672348348775454685296160245012714040182666458651234147538417507313274867424738936955806521978293409208646008689729945107013913769870591868654828385672329195094889007381772955960656982997078414866331649947683065311806123826515717115315744303384969231261114539231224185775059323246980839622549989479481712815807262461227587278088396300355552239016651975184954203894053406071757475433236344458923296913125753540948554466829361896573544907251528273697718138109698137312398843201270470175700389486322443988174286765219170326698787659940722340744947876421405371865707826036410059509680269730564996856857486840926221226927492414332003148427043711538563111960514290021956950888906488714276330239076996707730336391369842128964984245852485286117670293768479900131187159845014889937105836375715486623662082565030444628420992073274208437358808055890243883115812798388338448475281406446697984137789409153339864649629525080085428037017105498964183007371029086063616911597010869033069339277130420772151145676096227433486485504546403661737143897639221817225403832525761313069352119421218253298706465179370053103729739699266261906261600133336554566525441722817299892147176941200857414474681584597601348544900295472208807072616043265785185889309912637158338023368035136665255228634659576356959020244114129731771990711499691398026794870828431473392711175967211159904664985363587748318190934861598178864259965888170907313025500724298544269536280704613333113898479051333445600439586597116094767400415331915999113887835678674071324329523341258792227688383545173901669798410158735608416641623616045121264380689250679721121559355291600511105366552439611253678932633903007879209973395482433411089623755644892007568689879130923720533561650699947248388716827195268270357374444191201862181141480917308868389404650047634054973663193757634357707784634660970591691972009119322401408838755798662562540441065505147307031981400753270914799005657586646922417722552291823942368504658499902411560132554501223377421463720434955421626998962870158116369235056549492069698646874496678538516030657589164726751770630909914669043771204749018589430169734960179472580480014608496259367440576168472883128389153184234188239626341845596363087947723087710063590985914088095959456676110157662889210365774521253300264914903313747765824425072163782483019854838880447038207505132576720047788988385203130347388225445392154315820751542818012026178663349469280534383273281518552303763138084173742379687472741728762685872706946763310937479727158313588011665608074283692997399912633370023804495753467435263111853089759761157410957453708873140801841673058695136418013717194394650244567139112380879671905551148770290905603961362412217029210939483137222706017968150448356489376508924690913129041708988204413563559896608328869007584192341464445073069690620235906914106878940966203564277906221564935978664090518063937528291327923392071224867588562613726276121181537218859118310516340885199361052360784027361561669797868797276629468584674467985906098909871993907148266319646887888636113749159949803268280670503635417594748161583162194679145237125243225859217726700287909656955887840725176491968929854154512542079072896206296969440976496349301415991411192215352015918671604475391621068095852836325452388354221344675771341252362949849410185486156160580509283270698907364683712868739043099872269486938748581800859357161734818943790838733858686988882656697195125929175325882829433162072515236804374091349469505095359553113025711766137759343446356620522083527005864898175056785968533396316040281083461168192742634906920491711563582265292859729851362370583947190193515698636345918797452973908520328203747984617652195949399559355133334793650755522194465107878345068662246462783832429052034255099322604086630723829469595773307686694165637768213295481633717931922151261800663430850407029125163839163242179139785817072036645529061814114266138868284831338825327570603564642434264987240285070362794117725993981701510303648134266260577795424841389468795208327744635194740883501424454133817889293889076498048044895104930089767012778938578550710830322060124284208168707921398212113252253249524913445419840642632555233730167541013466093756658517844202611797425062409383544498700042092932752994541640063212822037787168179759433814963314255986426947314964728510435556809593873401277039402521494426394498314524240218547228487493128551737391302159409449832593472680765354886771809941663772719740427619138074800615380352571679933131982207039696331841310182690202497056628947721814002508456111491429958921051317362357598212849806712120720605476540949721944691152486503086862760182971941662604060179036013933083988484309211881171851422226300404960890783653638395681634371968591584828681639056423611944989574815859558546899761146647893747945965024553794833194083749344301095099111045129128961893344590563458341176270221060048287060272351813970999239119456773362390562044423081152871090020865906954409464896354710697772371111977191836377245842499709923108472686962052015364174468413689054145778274044685973019597825838085714145149235091012928103544655426089318000320920154543791001976605981724324945296328854557102285422465044443860312588207432027711224301866866682051858029455803999103056766524750511447052498547458131230826684164674849591991649135975256994473795926006008420932613852833443209346836248672578646564571490132360049966874048282894700569748607291595168848886161451873045695514147201256632396488027578775118912365629785446400500514367689855706794459823543516957272063391975610802634977349088959609913914075573842122813600467589070156523223988645707747497204316285444182669352537701906991943965276035461168940621713757941311442693771132975238064361655769064155033712496407876292661914441803466629693140322724388366725319532388161280433220165738876407970487149199917739952527804890953948547316387403611341868722310588210773801826411934028322541016831308831050660351549488561694460867033243631212822211529898090479280311777380718573596465318473178601043795641187237105061866154182926971398603318568639987187874423622619178658724169391862106299372031527127862719971769674906687383318228634096443681787587141971350204479441861003696109552827500342957066330397369510278464729941026860833049635983196300726053704023200458541318232561093780347916494038267249806507290810187390801576662707306187349094579212603057153863036137910374889002667859304560867690778820891861395653953108210832677066374435786811418735991835199022669056494699778858497969345937388795743971878846430498644605429270988833252620317646482716755328275667720676731904644346341362025965375169736499173558757399709826604836214930764172649480682433052230189986909114598107872792312545736574019900582264428143819292816483418334921984969105010929241141095328642151222743178702188127197596145447743833400082863692719836373507806604991835493068768045881542967708362305074933683351639416069893855082235640942839431639595847291525358749562600565582513015506543726165574474981083193069543986934095438755733577017403552761411850712424605863889215106975379501750707415175640074698967891479500317780646662248696946853812697861116471416617157820358595354252178250543489222381489799869787247274072997080238187168551235963067402172337658441964984148962828725818548154290102584407877233630474547950904753977042665942883999124156528997169996794632747341340376572414770784291529190907035106153532537797432245017697333514748370913427722012590926611297394962126727314980082911355326563371095273960396361707403566678256299723531880296525332677826678018261085836995014300955530797164813864300693307933442287141083585776785910362847206228708693789455957027712657513489492284461884869010901804283202032039677465077871034252410247001081702797806802794150091721184825589883984340189191665569380733020499212722500238456853289664264037758034549407744624691164363552629081521503359348326511500065649902988622419550653713266312066178884746039968995764383168712408778192625175360438475228644580198979396624058422776351668474051175517607819670946866668987691171046505801948976367509857437035825445244557126351102309736012055762466864398326144774967071727542300507098194971297731368586165081308639811970496410936850970884608035361812447882774607021237248639086666176439200264462969540219903572036866706784651479942030746890857094705320603818604129768096797119177084022713468230292680834197137018332439524134090522894928265557732275928652537572954509129206912647861642981450618787741953911922475452467157190014184945742379766130991754270504175880929106861907387237033207039429872507745438299692614681499125764684250300751160078598892509991128174521854621454641750423765843233386411235864442908824564170468849119993941503224937481490002195243223074574865732925156344567824940517274764469347859235843443317449698548229061281474550042029822785010738072339329796273737186413795701301664973575265956125262592215608276866986976074256530873026682326013397077161509410286361388204187169354541252680383197543648274496731822016523198499918122950339488583322730644262510936867471897954710255395916964838732754320098835337449957586911699905424545976795654558011409534342040180551957510367390119318823812592200647764739267857283548256800912840090179256818661622883468008692767046060603579124319676298777730699394631205976733560054308791755457250009699815643706813909082975160188242388283034591002397122678722374327498671361553281107118346107102328968965786213659846158283336196301489710533192166881574135814528898991190659694744132785195937808712286973627909224471065897907314010966054388393398568948711569493736791338849426302168306409926101508142755848186198970019572189975504254730175487919955929977945819937089092937569647050327426251687197315765122431404442476945278602617630281548786142263492819951910651369232350404371641134076736919998602130082396756778364505572963941283186650406304091847772634217820381342455474340176466585969541214499056250928968285723566185098509645393784312497798257698002846002849107564668453440714971738817847469060750918605986328642568379436921136824489530013750144718107894995402650627720050553114048665560346152994320571873229584242676827830957202635418668543500203576235238608720608924175518569130696629092309219928815521207037057843351226201754052301921749692824493260664228334092717076171785700883662031135480061264852766451314970262101914382095521486157281407575342381034162571469660801525376686049709230176122883116428940294862122028494871680073417524670008577477493624425746030140660616650098705707088408295816050243906424893480136398538690806389257814354589273083536864704574696240044159972920978719856283294373977206110291780336806468248256474285835514711855969165216691735599123584004826440666413629538327026946430593936025616150798429899662585827171721896692520273267508052994150163062874750637362620697937989582141925375065934625087522539310650809516715384206508130623137855534372617293927606608446770763238967368143587170163407837294499192235029923178585373156250089727682456911294989584229534495343146552959640718627140158285709095367412106407090066487796787263864817656310238492043619005640334219574542771313745090946444209599517680743676400288501032092423023633409682252544437921376157872409884571441592408021752755236049790115862990936203319423124500374347991427404004376107766167316980951663551116076063781882052133756108948499841214168366358749477739691270438470757835837398422297981146753864284269328625865211217291551618879205656056717715058327681906903250357472171268958024590724654172764453515138003865262018898930599922749116907735945498854306127963154550937308453973176563437140720243250539158527563975119652395969341699142641364071505784541447677763970737602001385011412753193228306147638707404272281153239480017068984537411594263059404850422792333173610527160711803876321431755488188592666625041883170751326477459416565789023494934461181702106847759236811272839274194961647663549512378105130704632385333234466246937045016671570634910568035956036430155636972344381710702921403162806203757434605675499097574879232219199163901107977525494472475621934355907648452858856880231150392652051360974292727279462192653485217524848513022143701350006605850402199621496654267303975488019003342651871747253387710261738254501016522873036114798458660630296262235418327319832315537518777524602057044282697225143677329482797736630076224118884784608705269405315170665926322985618132501863532218988515287721896120288757217770511302528347283010252444346913939095075564619710569499572148910356130583060157138247092512567621609765699263725291300359989251270395393171890386344465581505689101037210064140548482647823535356641636078400747855339004424693516886572437268486817287636977774012673604891532601106936209019569645557075846094965626110409822527054587658669696818526332228580568364762231507281616751712249674237179149735025810603295631270698512476705475783034422233412966520857163505648212461488570532405746470967289766725235724602111248760629367191758562441797662310766111870215654801528196103239436311169576803540073228391471863274659864767320995335580629238621488832120924036994737750863960085053886645106148268930913553813527666108881614090442463787231982273357456749513004971725402367718917721104385510999411543545042162243627712229734381158338685019894676499153721766229553075267289833745267332542109787800608347275744219825176791890581798722619917159062296048499439695598095316547636900300575651742430280878813760898620577476575779501231124007804093560862973797635015896800509703494760798490980158582296623215496272478140070432062432657510618951820686172952060330145653654880646660908806840620003352592477312298721305830134734944708132705178401695660876087998224682103469274841343617181300218260388361876470069851846644851454592267398677505060210169435057999223209789289607504513826126174866683383602675147079726768238525712747875901621580637054563908540939635516276849840916217920408640164925269335211876168678452778831315500092650955424111663807871449768701208844660251363451585293546107487751360897041665296957565415483369843310825324235606657376523358635274259472693642589198843447015678005439830784795317372383954963112848801431566209116388445419483778076200422092280483291905297001625465284411310270127400595893027449377885414173136529472002923381810518467912648290647302099877649426127970928221181256134399882685196850212382143024230976501914794742285237250061810847383965350787178729928346618224544401442996229936760445249156468723358405077134232645823333559830554483475971075254759456046216662424146802631301625644460775956558538592691032659386673691123950354412228129053314071176064342276470701338765468595551739676527916979091765976126906326060348326237732451533835696639877172732848719847191987967783743920187394386833945495744564962847008573732067821032662850821542919900312979547615699828344411478244140421075700477490330561590667053076285447426428027089358707405347587264736401564718107025729978126211539446573909748968248643887851036462726093712284119565098163953039820653258153188941889735090146777256893990180574395729975008572622237324242565729628137597405408481364394303710327398981699528461111530008052484333983774903086249002302033823556590196777281746656059332412001937379851265821641075073886358661463528869864564566844935282729222824191192524956344714856310856167322020679238638469594439835622801232585482930029136513625952226147293434281133317606048480146344357182874698860026973899611550042706747857058268633244277854460882543243121658985501285302096356372556024884166759526080460483577190912172782714880678924718248001219801484715586179823782787807154634672418488956670696632014942371546921930862687398687135171627351723505039723764694814002610942967076922982076774614688556811185866735415697601716299013787007723526457784770323123555387578386231736129119414327972746304895809642804242321849802593469203434352123375686424950859736157296702156700820256801569277704916665680779983713118685194946368157251394211193946014399765352849491783817919444161385384417474701210744381139047212991958838778370142696088141602237845031280192734752860653372173446793441750557288101249783338849830019101662983809756303576403706722641561338228525570525442804288573797803096866130621766457345123613283556769284038315149370704930116085080525681939340233295912728497219482233194725626560071895053124150979769838276877503159106220093215739039189016705113997469625363574395974587305114577035573172134611519509224877020128066538423315770283960522199573766959847983795175058384584995818255503698668906338109220160752633509094226535322111220672326041639284094078163679212128240058202849955882606723186322269247058337890178220752675360502075516668266029147892593805714801860023054106045808510680008610544957784010954353740876232080147745846222112521198412852406265291345201241501661875696235668908371119511125206587349700037414853018697296973413576609824628683633490768921310312481424798973760476012977445506009999966229639630971155900666439304095010375860245210009702126284799930347825159463404740793655651696814966433870787457877084702938236521042516893341236377272340923429446858810497985597914979977700764968270695534681169504186661178676857428603219096979106534766803824217696558713402143557214342726131809174522456427748851984407141006112941722437395158196373195351842648601428104354387542647605299182118964780054273406562924386376368692782369203973900444759209746114935142564117478060429961169295376063454637993197476984821247641989327731701007461855488925580164567365422690942336353224238632848525186839648358908657633244334478415623927704085358906456981546291212217005815762894560980300489408451798789166406743813124814492115259068704135771148564898957655609414493350576268850054533988096072160178084216334924583659639610706447888289226722291815371052772423611232898152388037324563260079134659917485141400022087185859187461960295399331915466298029976276425936820381390959626804442592334042175419057226243994618279354774865382252290466337250878487734563149946588578708645737998164146640353452260618599084954561521320214363171421487971264278958384648230544495746033124389315278385829157850994368857490393372187763643912052414906910940637488082094619150642867724891551329937708204033102029356919598535082322548112740787143670061721596049823712656494034050121964591923637441480832423446242080681235206592807335805136868769799332449985366260170474491044886230348085473179422072324072977420991020957682042486534784299068256265920373291648567183595178291278694244412441699422380776924307501345354453976852958938394692556989078498377210952358812063357612892087673167372285613565292152439457352933931230561148215677222421722090524205569038777645785808321569867222338814135976768818981349462622655143778650630509156793265152887864424959159296493678299965953317625030244888922092580767062590558088922164729233492109228353181025701777014581077968441042986969673040758320674034411477672829702340603202842838332513560252881601610511712738076426568051482397304986785346509038280394936047006973980890524846847419247285492370126983932298201326929207698148857613889399185340639482778392873360751543947792601632281963079500740756697850867626859480430312142645551622465814608504090695965751190257357887753463204283683201314785628653113963542798990384223295930419029651192462864412628525781503731452977709219299459990361765502693134536284642924952283981337613816661449349171173644952450136936765366690289233908321317034435396028117677806450336339846520702127791128517729689653724542604366897410760953110897499266134042643069635355035624560989423123327919970032450390078528681612807397052558272128112288543112253797326604490479677303697534636600552618585398379538990104849782610432004643395334585401057041861192667046044587197051655560835288379454507638679714849158016271818205870982125478346430116649054312282709956850338931203754960682922053586159083122629622611626163223440025903161724607660729969157392554705866438621743467880326881849592318710139293864837553517550331227174449001772944126308071009180422178386925857183292917544931382002580907596649973812568860791816742657148730672422196835627081195800676669384812933039604705296664071192256389982601757366637735492936776775167148030966506679484701274914745096801712120592192398830119110773528286144409486282409642075232276092216845231305697658076662567967221789699409533198002051622735922059179623567488502173349704795857973142156612505726839583248698693305008708240988656418294587309247313130992160416626953476263203913399684972374839705001423610572889206508744728011022562265881032850324068292175416461621127763210073049617311627750666677699978356330115137666094795548271279806672526854086075406176089722377063733465999257789940378623427340447088876161469304499022900414167993160808096779274709970048824268253314971653590055401649315740936713674983352662466825062089130121924338525622799304770740320438408234779723633659945550709615126016615220183235404379074233586529568570297951496657531052491354278975689693957112434871149663642590174488789442121580406479529365807697002511711059919471528743494248999814440203630333429547181974155165963346980188532330521158191535762890852766664246845719660364512277179715015874979249486358626220401063987850508824959340355549775934038262246207130837356913882198694654596600270871151979417800653170861764375195749225533116842601628118913103640371246282723209940355182966950791581149457888381796218132590546011771982263659218494794212768285647854416855835257184968821646605478726729035811065868411785665504976673065730509969517077542973384263165274338915707373145821120429442199940317699944543441342421433084624108376123321566021038380674806409812060213437757780840612492506103332390144175948489297210463861379291319915351639338456288240221502868563650102121232824887913478889630375658444870027937609989787055062841824926475687526566856633803903732345565431444527464447364806169339685727913860782486942375408437355395302930707167212027110059221830165865979346728526418690737961285228480077119567185507470542379407516742561173788194876813855484484184446552072166650386303927572921063466231331827293839593731717449868552751306629800201166599829875035018193206478992630147228604704098494513209436215887189056554122075735555146526914585869249405640403407925443912419431757207141232556593230682493750066878388481621934823278793718514057946318356083743425401146133701137924144692180175844945515116380776645932500246147908044769756990682459925018658305173534046419278612760067007006208042938189490062627966962511849428486866615610125534751227813224302862337133105690887924793157230789408791137858776070769088274992044246491061965098041324394450217937520336364408746363472296136062600491730064297697519152831190578249577978726024883307677702855680921678405256173468887600474070502417766449993093671335608245447054990473292350146710480670401626946934297487386167954868439896137938007879628353922721378306853338139513947724686399256988653248049919220284538713263768187139696511710548745247015340667148688840169022784972566720650924482438191229480430171583782294044834056197647622237424911272523366176542057357556831697114496470941220352951037035278041858793556160423188743643630407016615392809778525111012171047490954473129917304350723055372681867668916482675310022088431631039242286727784518010044656808261650967294262501199465316902081470473864107664782698459370906736522525162359380207484190411685826066982180238198808193237770883511790127723193751376672267987202396315156333488922464803706828402635923998648245266707695225615429399040442054163802749861470025292635065500770055902945744269167608836918626120822920860379372107198429786357961338233268632752485529137608487839073055064090962551569914188639124051126390435133195577829007389947540605334145584612301859410486230073056053111902043658307694912157041842912152196243331895634992691940890883959461415756652994010654833712870852043018546363034720422184384039196238340457053884209174598722650986582257023056753319790722419014621312562587986580066266981550093791970081186694024343061908788213055925512229776513959148267243883315889993513303560666948543671338256270983556793876818641293948381816789934637779318405803253142484691075891020103836577018036251404841881408094465656256458253822534972398449736004203399960790993174539783806741527959745922110234981641435654927577606658489653424733750815012984001969129799336727660159719674175874869205925585418360921061843254912242421236203329550884069329288006066575750769093535190810753611499669097689726737802604632272449173685322290927169710416021029328775057196955779039445011136282429384106411142978070812144308750327078105947206818377409972440719481981539019793298318460106441559214285898769187552174637537435141593963830632345129507573393820673304516915138183347762373317285155550196312614651241338232458814889735293008678592492046833574126026371087402452930860446575293318326887796954433871824764347561129626626208140137319847908060806676949832396668385747346674749855719755254072302128638974641855166674386215395825732550460684347498360654127013148164870271180331095175662771950380099899932480886866713638883637540157763688360435449717669292160604808128056607783192835118255835510175478732838162520739168654385746098134135031234929737012083500221197573215430897445074846042716607858977714005866178698648976975886224818791678680229034964609545808809636334387214068013748055158160030584947759553037490741825434446897254967283897482388739522412161840848538480608865825484698128759658267514548121892444230545343013021472847497941943497797023224704159957085172605439682685504470908625627138918099656657820306251726560739013947747776821394745268259868770307356625805396408421224255877273869174018693181813026068058322832749364942905877634820592656777051318147248973759208982056695934665650863625545114046184267875760278635000143859676075187456504496752936011802888444315449542529139125451500610066132276214783423039662324170234494667944066255680235940038983095440786510736612363301898098699052205342513453743011368563586792950662987355388308289421084648178582927434592043926847018931147249414009837541566354049712430680233703963702593940136558774903656328377159258439101337215166667925873912039368616989814289969530305626759995202767214501622898538284185720418886859687112686167438426719646124370067677201269176591947832173968139366704977223977672273773301423519023500416604013088290631265735856700272915325449729420743944289683188188157018478573284163321685152073485705647313543475543546340298983045237123807354212238576988824191688656207313367507570029571138344385456474849925248777334311084673147008833452977293856160908437847017644952848426629373011998618429305567195850435441078226627843491183320065855425781330454725012536551283794457825694865945899494193602311680904067337552155068748859444610551888678365755167769085104590319691513424865606432027939847100282142194753713444396492613851072953826516467522953914530934925229361607058773420778968878076978691263745433825539462162361342284496149667302310479870767162858080449230778878323400808475472398881271527550740631294877293531197333124161061523589163403081976259760896433130938721865884191977613152901728684279206167307753604896012080594914951164280276824187740834801382987179211167584875964561378999965998951724625874506917533886544394936739849642629928976523587115595884317582431108388127026600720325860760901704138707641658691503563010074862734175963962407819785441862796751625271594013407646660869217369094989165552519219825250304573639243103192006097981616594229497621690058005271693361001405284533639078465949025589895034015101334013518045446913667336572982636860998097815764847306972524179526222561451459196124454245285148094498095822199455587367927675336215392557389868139307663344330402079613919069415055179224940183550580795663417097010784094805740718499490120721139478878317197266370074801665176449974104276285609965735312084852192749143822408673022071856791518741525230574582933875834006412850274781469014885910760017146785891413179694875005314562591993434916584425418168353948260056976216183469864095321970110620075437785635650953074330797652249292644877242081938387128313790134846184021297619388812923963564920675966889849623168105858173753848685223731383597664014773715907958819703303881365167559045156373086541875221249635468393479836210539875880185839615136994949760177924172969368773675034164504291431182338076522236108625235601681858863378245113399885809782457109599526529387113362720397676300496290555830123124572373007345265957734941148755371784644241634791763520215521152980984456364379055668014225490180394655280583210491988343127235335712942211400674742573137345908062294700912441501012184653479246424912904705541432792232261065197529536876942668102646913282391426105448405540301809491493222529527109375660324522068333774134312894264613072497885931147850400380002341422029158691889846244597267162182828581808007426289167044383081794757347113937583907401928355360457054097014878109706664300923262882159034370772675403233864621051261963587567832277701899681388116734632073971735057988422511017524421385168821541176294211440616046835100717663521008259789475287313614209659539949228299591090801457594233207186384989300064540670468430333585583549842786843075458172696372109390417875680783944746980333676699645167876105601387357077505888433636342513243084180121041012180618424026140719832554516011366964898429401284339809742379115177132979239008481890641675174288970446145851008675287924453890883777598769380444988041428770944717138526343745581839731448754743446678426471662817137269825687419536492607565196994101666905957960570840014052015376816707355392079873588375865496808206600258648897551103357803748062611176827286531439694856348822727961555298044721249345512219135526522390284055261079857673369698294209994956032360212483345987380087371745682172934574310906575798040360588485949647686755575505175890341422259598194206630587260391276216861523670316836870160325175381371571019618056536630012512045288232143819209497420763834583468686625746188491021124980292474938331655103693406099999436131399285986966191035907535711828791022766468089454790040069838590902665383887565120251625872763962017388787568336918447582793774214539098880680057048080902536989260334370086965529880150870203408809396239595767006173665328629527070220029208835960833907913112007086264169338985786475423232702109055532250235713324215025905795984720863647865087862613026926184962630158917694181552436478942972072319162635366876810215373116069315369019758303698366743826423878488659586087022113604306512607651675307602190072434819448858457099060308116224517882400193383117602754703335148184054954391780061194856079662785072164707229580417759767180294167683589343244013991037687646320954264208880401280296763820896322096593689600938898950675555209055884121088009777788687621817070280711452949486827684008048352650641422016379411515466709283945317899644479339149397289547270723753252374017868825608253200929587374411924306610101446656672436335078649029272575851965720017161221703973787468829597290370981581783264035435290308415416259193056966053905772369827310266660421058412871869086575277289534014665146248103501769646261610283339272216258004810750973813885012478959015028640532136367064805298515678250624259201953402790889771036591727714055451109029676088482093408997502436470293070678951226727524876425419066180721358123751414018823644750599203747153602846354021638692975721057503421601597769776098414868200532496347677456366698139149422494242028547814906227657432936095362986551148024310551088176959993740168204841215270601133387422735863597169888336594032027311788963320573955315304220271246903678828618137057574832139933018433928214209436510523469865694420745775926173101786676854276459666457478578006476066694496546299621442925060447677502023686617422898669342116703365535244245406515489800946688715520715638268578361563392922087716665554745595957074421116290168090020170590874216623683151074504088690866844079059049817156831440903972684364154444256560024696129073114210745480632298669578291684841307511663486097025000576184733424801534241720889600694605368105459867138041632644801660053671468599731991160991006906684569244095044721492428407241045756270245965438490321969192761262030391872005407119637049442896441812559858080552605743273238120344300358349860176367015387424749574006438198123098075666599866911418408645271202905562135450965040793575645719149140980763644204170229032037910575747666375724157135460718434877338829442584117221019844347684788317650166663588686163986115035011855447784332794982161967114714657233788567832735539508508074488025443932727086514308858891452058657973381482501580825968069166737586958195085593078604242769225786674028890575162908657973595511771142405072758786984227911421674965681364547464861476877689133269486305187786771295587338093666033493372284812364794352401505617259898179413304764985381540169954188328642165244659692764002392987630478631819903168301955534395965646116949271119324138356634666995673310826889718025066149638121980236090081416769047818707178096753297163429963427414626002786020765015097642917258202381343622621120830295431765665772445808438985243560371019962161011888150806584782693718571119651300649015516012127678307994747299814439055194818764441692416260645433161875054869245985199996938815967845720262634701781016925307908180541684063871353379796168363241211781917741945407139889602050055609445189794360311797001207256513351103903651943263026220155847237071905333450345832071065037219534836690097667532349446657686407043626521815479789413766571616208918694733625025004416958012714491313915644431332326320431758300301669359724950942524062041636340252859861755213912138767156155916656175956539684568843306584471328733322105002243457530919729782672478660165433776332618905996235611188095011059022445114961001279364560649675079464701906335733991618311464122735018709475721565126761130331924983423540366426170065186578203471655779522444089389556339237422605189049748525422098794408841924184613858677784781717501580936845541135878354370008235101300410028264361684542785563903711553919388864287686054478063923451975944373411083620263429610664409184003231216335144149431099547277896954409521545043530160665684034546933785334761431240453344054568362377508976567413324342355544997916785884082320739329867625200858590585219307736985333226999079385313556831133829682594143697186038424581124299436076186174772171252468584540800398443368476780857053005957508520249885834587487786601101976012080218780830129912718650901944059127476403471858476904176803411888464729344502939219242957901683452099811892986200812687178177955230562623185439774962031577986291011315966019476770989910998180685434915567974364448776694434458064366937824201666062206894833999669276640071031670244347600618062543221007084779225963088395696789297384335476909647815100995763956726464840610196154262810140344384652422908120379585731015347698211163467592735750538020663237485429098469261969743901026840221847666305950807448599625955722420913338740872209507061455698677584977135118871207838911227760161790704001762830662902463064948417352256394375610560412316550890976501993360538560221217407093371183458805072996040233517453175579243073758111909703128633207567603615851427142153361673307357951237669377762289687215519208356921759238866300328968876556175622758293278321407316175176080139397172661458680478477218090994274558218807463908537923084556526809898083741556015881178624653812733188495500753725449387929687600985817649393750685771900060085259445783873492371409737795352671474500374356350534856729168911700801340123882314760861305416006543708609972908805060833054175788348259322053629466061283542760888750760723850225385271665975029497470412621167283623865653017393060853359262633912818544155667942142789643075650475272109679588397792840045324299270061540646232572608210017389822936115280958476942281403075566368440956405075068164662499434970745579250749324401409274037932235399926594288647941713158820911373940116068055979317294370382367109743128017199036678330555696826123727974991988415016119832280107563710470607185373239146139446812369407386405430736267417265861224297741468958341582372126014113945560280035629596101902718863521103772454158890100577749982460470307010240476063476547706152483504622493411826154333882520470836228239570584422384877319193602711846540824720270971735277144914998222844734019582834615250763497257681567257122554546962082033817673681680080010062594947327885481251852912577285632615388314296284498174278980501023083271802496277431834062689146735006959355941954550369969626372815643483046787571501721819461428910604637825680038505181889171120963351780453524853947245471326501618319791839412644648770387495599425834044996608989844428188771668491468471593468900053027989579097562054074683818734346747438828141518006113086880396392550548251756688288196842541453593773513321811890785965894484113820207519897754839298087821934931606683884625066573664791965800792981081957213047910447154515551521302806137872658718300035694117731531600386919856594491866605731760909272875860343725541193198077796468408823026522932957270551041846297265024943448125072372106784466455677694090735076775377332691884730277599387538404268423767495370273589012596232798450367928517693242316447683057356133375749838511492527955268904810105553067405871705858655376746435283760095813765498521914701923914840543923224042132978079869268854228976657523556789346893538223607987718943765571115352822521357952108831899350028101498477041808825242017200109262727347777452272629885666507392736161266801822971161563029701385936380726077271133704763051310747136708325552220009085578155353454612224812609853107984941482404622827207587409191910911620669889043879697922308012548383181369859791261481351564014598097075951900695703178314120902447515202354716975481913552229890330044031043071249388600331225485557625506512736853528248833337423917261993547345617986679808016056998141845646101367839147736636051812477003291791627339310150843457834953543607429613006287680949868989204617932841360501696836176009551477690153303863470938784577944250211500771646730336341557262993604974466152100894912789851858582549622776990104754368712494997680427639622938254258817333921396653528649829845233718340644851488233338564240754890479742509501543798132989158653790439873570748466695866117947853229036962979030977164089093509505849125453863941166209058839446838087834096829053572502937992102635437328460997049656254722628184047392025481014500799463245160786154776212085035604844282216996075415700449788798261722426447964421795637231473143967295971987632128545579590471961653931973989398716212448696639189653052321785158463775168976813496365260454915954165819820764707178039809924138120416907878819432865271091806963910259993461560510012019334730083046392680709633333976673482038847044134546023463604800759717128179697448497872349556346600901069398643754701895471571094553127155982925811905700602259136224392000545977120088502548154199133808699243804333107597354290938287941459152197303386939859343322190988342457725118453065686079763022761712008731473533916858074385782388571983371290370562414014805988129964682300962802672542772914997442684717768812364789317995406107129958946783738914193765747633575092138967770567048968478573727936768290409713098854770267137344143670330622196665262767245887733849567762099923532287582775195948318957337300936276677850338879349207342248153004256310911587064318259283929196339259325999565247685786024836545465597354715349671118897797781372835431954811494900714496897798247992812595668351622975502019583006178278307498212510027558822301611308353489316287398517776982478365578082395422309990233333999843945381374132096909679652211126485525739288782164043071936758526281846189082996269625205210851197315866959004952411539504321469563509489281683686492157466079933371063483005472307921603176714509870798558865810009049102398058371285177009671571631902310532676604514525834391460520581452502393432307022620978152567262354364751154114438472867055371767843090190028991725533680362039032799128749894393669900629749023337042284300924957600933383901143999739451137681736021374570961093421781599391285731824585909193628229587412070380593845540490668670847310684078040701247128608594190559227798517054917525054508985874285636304783835047554355404529588256732051825631027322572953588602166453371537454827285346705576831907843543664620302185832456088105529919453726870257853622664206668368510659502069069643852772133268438132532869536834398962360564398817687521311106685000486709141324100996159992298660040028863546253094379654162908924925300581967878477935010794881850449688425902681845550256988633313044102509298687272037261205527995769736047775220199698708689009742770289041757776614027126976335391299773322314491514400668223778219083625315515472052701903254303528555544056271300666551890191323103076588108287830464874942318325047934287555310978750747739164672326969735924564490130475384040831873487606851197542134494415222293282123175110380605152652135901831874079474097895952431937566228427128082505896208525032454052431807872914187282488697586422162918816153899379155101108086981397547026278897560817369894752602356172378639724629528864430869279165910520724312124009514262532054924312555082564094955960276275948950032084630676034573594825648418312686312263887561937001987832059808324770751683785091084601136299692215716091652401514072147135464871894251726494554911885601014713321253570289019346634527997376604295705170616101379599446969683702475792887615473128581535316406536603987722856180283125271087245844003920513054945638668759033530122994305101795899169745050401082053840315775428067229913478673235024275533108752841128905403938321554197521073928278427493139995412609220709173042364678007241431198216798619845796919206672430892225120343256047592374297705622032386562005712142016867017085497819759149347526204556698980143024481555088781529332602850328836145230275058202085971361816886566045944621895499483451744710777277515939432055352941314594046757517393000416487147417525127330853016175215312075626728207507186501020083245777761991334353861332599232058342509859646691456539806922279166990580721215108652251856278502162230395079363770928374486351056732311070965886455837041448455915976005734720692821188749851181652718148580903947929666971204675257622479464257092980936604859936549160054931591229972235506734574165912376083443376650644335324635657764588996656140481300915593018843770206748865055416949954610705365263804954625719939522510609121379119438615306950703766140216217840879090024085618133469117251439104763238713976868030517790833860617737047343649478312269272967831403405316681193618049945069486812883755949942500726130240100163784986765482575038601614088216032898010463856168867012478222962653680186098600926134232831258203702507602727897424085349737394578502424371356248578362619786406873120426943849837809211695620774911938404897648670119577584607518294359114896126646307210387973376418547939242971949475931750584190721159926726112272431685658527871128997768920013293293206585142020242492677270395010506833172959980907689038897997367183696108645528761700418258074349367997387603977701698410117584357419823440338575081427808999092474223569723331742920668581369099241682690712023523124523955233641699902004803449504056144464073779523617369330113093410521726919678648450473459793162772370962957121124974450252602754927205022554084385716504563652454385217226057713253158807864313704713369552552382879061914100614202366478045724307719276259526608119324502205595966979136619086260512163704320575487800151898803332706228609195313750150605744833332177237020905025633896121458448327011551266386970585420775640912090315981028562755419438547520243058125552946796160336248397349144865216786292035012089604048582335085017969686742834998061767414076743806371597650562090857035829642261420682171467323690651534345825749443458020764500781023913685167131939041550316192740448339583493539904848178233377193695852711597639629961584341539046200664585582718302532719694232750697988921673320208644097365079199870964326851311823253332124670311089931168067276701696865169727911047189521112976667650060606410870560144143777216090553658855080324049988396860026661834960830652544920191557501147284752904150337944718233653679645961404432938809239753179826763144077074479944578024093320342814977819460692942468079322512498400258611359192128609590244451218063017109724083241820480744713046292913743235655507609997353609703390714842983324375953755967309560483131179662742225609163123927027834665142357429854928176781997599429246675175203266878870038197845242716326491440901151177631399350036023307221972176890201758339207833555159773060909140075540190789077044914992790022483225321164023609743117119119663364429212530617990298391999111307424291521867607933468076268993604617696626043046891088369447162070701753773843272560543214090708898825356798881001635433110576618580794939947971015057272814515616909695580467679800770543187493236100778730261513564841043637063935992712069198191893180049832221019120599132898929837109436268157680695637219796903637707721416294071673642675750873611260278873691732608826499610913341273146182821473719984644074596846089031920492934784977644202677030977526110614318669765736007849586243425256082481308238817987460431669676158451205394750048405548661869750893829355410549909740437340289030375334970249275844232791650970930253258074842550940639633520050174542854824968005048738148621653466106018323689782874006174245747352744763491186303141867100560670303491672997365429633934942519869233616866745395980805475470247578602004915527022641923257275142985034934080987037735929018840957659518649442735506109856833689645706885552064360389052593710502314573585643422441094117540380614421672153314012771286859513099208305247811413689504942524887596467074552605984555938018325049803189050000286669329389095307280282157165818633551782647473115611828300478734783385855762010253078229242994853495344607233090209540900555843997914850226016424622737991937620298723994296919581917552517332187837804353505752186986530881661663064028497315190879225549834124784555297678234699483641416060134870741867061033723753741813467755977491614271556664145561631015430759889586623835898130412464908380808342286995536008476817971490922524023767362742287209085972431443852262024325336561717192893765643907214523617190750406851525092278427356331411213748651818769511935623506144696269728392887347148847321982120540728913766549840569809999051370617916468584296070869018937046436144464906321991217945912441103668998009190608076334064176722695251905297486385669567886870272637538000158295040632242037348453513941407592030583676817363890697784193100190611761784647620356256336171103348801830692292452589720851443911962919843760005462272623409336373268441466916776692697115847935438987332888998474957065070224711686156004477066809626570613286957004818787181695139238191787708504777384695181863469163495205722661923051080181254951801752024986466696875199541592983593558883754903852699574437429827554233337195546501082543146463111159215697759562853879637239339888725660647706382936265407888598999296758380516096800691322675869823817827993739317181118129299565024520052277322672074467532231714203971020894577650820520300278613841048336200422480305099447826105846301115125319094843784503708420106647648369970430287373937614427818520798791031956633441087234467431686277742010454317445580720853207608390149170561344151929013487858335181498550267294648794816032770927718054802096731285389751197433725993953437241797593372617919526751306367459318509497355838740100661019562625163023020724501546958837196310292899782329494263890134946107671856553199118064000295815465788559471476826572824857589815325708477569639325611802410586671056946639746322177018975410439206440964104089941547736126063662672157297127990181507798389474537122010192186568686172721685553733192266262055360460093687180177866911397055722466617050962301241775844464503749651048538464969743877436192550694005820438196410933055040841651685053449969233420995318728903626624511577348981758597800703330298610849287100651826101931632626672416347260616497695828929030585278086754558374028397957871542631699060174567184660394514321097777669449745741597295895489203224234778929911829944545828789938761164116235297958395070912529824826169750651873736534952493429928314608903567316600056626447242292716727979394551764752524788232042070615814080005241363536469787749712939524500976536097103418937582786881236465107066618805982060800802131794190970669664066100759132024265067887716993429459119031678353159109502510738438922970380639740809578296382047727376489834431145775840954199466533378145200508587848865394781149982353606926743277362314420553046811459594151408350989010288485245891140893096584293707034931345698505507944861873159451552528914868779607159347468820492700817502013745211836273426540158981390880752167290951863654509547448067750798403753853762791177933617793800997920219471244098822185713576257157771374868924544416678779863329081955285636375012430025716896052592601720034842308014252347096938145794653552705530464623581794163525943287445826769448813998921307551877273151302062943195850015007888336105852127622178268302237251195599857798226973469745539721911219666523636626728823527314748294863778272203402732810008160374063417510348083612580216259150061870575555397772851963863960340704803747589467549457373614035054700680033108766416761335158618837376794580513851015190409384445103028373462526652412211572813238047961625581737955551436758392900159653295208386036396271491142446606891721722252334113150314787903960015476257463900784247383705534650194043889480655633253676601595525692629904884894785211013251090635990049498929361924953450030438910624559961855776052609610462339461920729316108239041848802972866487838743177764416843782607797388641584441071034968838823421384320361451269901727224341597208500508588563282420026731985567507620356881018789833889271632577094707952113385425415622114679693953598698646181307658690454193311868973617717483022183527425893732871276110604304009594937017215264186166546432416201218381038846779964098784822585841198228825718177712008767686586768999091861698286540000788145648080728272433929523111930401336732562514518647501653382034143879225693187523982776119657085625125601760279511142029879906847152823265345186488834125874577363090176371897326900216415421691454757561141842341706235803963111438963844440798058548256008517180143347569759814605020569958786813352534738800960837662612022734219229631012590263825872009816752127772351484070912806927793609586858983450864182233565592593856849864122222325269841116048035973446576500444800041547094065606986975979605692098801742223089637214024947740885619550541230350635597240208178335183750169522573748426689850254267714739666706544656790102663058882137628368551712416510542252622760688589737864667430666202290059558190998061693812555499285287503555626929590108194338108708766508703760261058089624552038011637225854498687413376567673583861896222906614216097321443133662776219710148027385622601593897585149398283466712558249053560980244506452315811751520697881845862196563052289195018876909411133977566589451183487813883973836704113513845084258378232371693222002631412376676349663919697084596378971672791457658003670458836426213040100423768302009041552081871494604833907955696454866053414559659078874033413040421994273121579482252856226402844200516703440238228390836815065380164707452782097739790446492253865732345008773617275134590568543113723716778700686238762462429187400672765416928752225466520185399287427927326718611849463436354688828934857599718296297750723386938730852459697649884296784989620561781298652220298344005349822904465321153794484991952124441029305909550946175918906388715163141291203438769562111190580301867652944725613959969552686484397534249895112060020506131326788190355437223038111376160555800960074755687905878193513009068011470547449515596415491779560862547790281220079962181130359982977735868888399317012295666762008540549917154370343495234478167914273345393778972529165367250977982473082861525308204727461283924298414414522588846942908087556445552815950516282078957026266220418252715017565230678532645077314365134633551401598172615830923958218093943378016990177073316507160447410609707286538223748627945170270867238164999990297159872736414507247611163841937846015679629515195042832079343119610290396387172230666255020470266531599434446920261782575506933395587576316422373261690280238599794320627047050401474495091424892468042727874559979081095655300305653187489306144017928504752352672148789189544964460867972692695946470291407162132284528152769285307062649466007892912729894977253962735586653579985705325810950957789628178425675120676385754027533723558753992262761421832156870415506873257925251432078090592649404144802786305198615971609388017773774522973166350284661645321873626021437178496806285363030907881930479369284132282868792244839247262973518620560658760688983334738591493123136613702472473975683135145115489773918281057488298105417222629970086705733676477791859440205659450998199973888990940513800150073618778837625863814168460167328835222965914880830410273472885469293935085388095953904591176873554414044376102813375827827854323912975878198109152261884418628933385663924206155726892703248962813101023460743942069688667760917767669731790332424784733515920689684756953237869106650840697247216171524384838377559493796613469490051657609502844636097383886943977607891450241084831551720532072946209604295043365149601383795110119686429533656007250998565871418129137991734998208672266537285706531464532558962888911589398687899132276368965179518803996107486610525739387482095948981669887065679585415808072688419195480586706415257238741298700203872992224415802667676686990611374080973793779689417732667461701311215681047644927600040448362065606795369757920325563026045650722843699404456043278604385412425633676974815320289988291306648709431507046585556063871839784121783246198839183354478276119386980305473543654898253512504013141438205777056828294376999729980602302997681594011846615557767612827254036774256935011774019467483024855652492293150000359309977085924973209330001373634747597337336704055617723483174958292955936142628743762646346755464268747784701334309181029818220327024234791755128743714310012244903979734403498726699300503620602486941439683791290492599709811766629023487761354285037692735976186172333292695731086615177197326737200783821622083894306550731875263888076710642633533137985718545230980472822255525659216609404626954279561921219588844772789021408751923016372508537047250637001266037043816180729707261003777366240749810392305030676185768089732485728916810348723327940917264385626462809136151793713160196093526455269556515737936321418243479027664249268614217357905149581625253922143762426717709220205801552635035095423212090395786295922781037147787738477432235831371779035362448051602434589742997526549483513069580153674397150709834026811390226610024248581958280542210438775304180079890597862477181402871616005111156662870274154962791446992860451878219381873438064393437972859562705720234212632991442228893960676330889760865828211730057059157646875864413299931164250891865949693465937389678012794964685663549398768002129647685309379649107598109928250692474650435695575407910187281416845329528767141153471354735751657363097429820255782263084242656943642545348462535864905496726454352220740965932470844742319484549775524285640082261137008424672714841548440338218383767075430187882663186026895359968872171442361349240182657697294103372190109871055491234023297878938211431260019983030368136664428023146871310265955104908850853250806752273784708661450541871929162792959080660172117669084266573490420501455742440186650016844279319878566950545521325953068476523200635049240652262528382720243253507814815636219242974744893176255815803899227114923792206938570499299172806804863602273343817703978435353287830443694151228809395564324763635017352699677774459732332076682619014961808462262825973277332996489256837559988148326318212818346043350872374549175438402575629598633449956168465290538951280731110584910703302624610456420911372374471789911391486113755879234950881868887593176143515579233041945578884717682459998231903618128950201042758634794271074828068931190929419795811211189287561834346775256539395163269061501481179492752215645992478800241994178102009115404687629262476473256067677169417417222146011611877093532552366999111761081677581359366877677986274606062516707548433966593388469676737570633492542836628660929154336095093134756826342276166254106200954174962127978016891521671336132607617126482001412480772436801546455623271516561177106163893146400545310209729860259914323437657438237510022524842397741447887101521384848504095004705499234984698787300042445011997657114945603569060923011002752809908272604791849438763569371255507197185906163351928192979085640832372402594813106215221865732430015609617849520420997529720767524125071758574601437525350760407889238631121784212024033591670028546354182896066991928030246801030562065221985611027594769598976950370473630641488836441107228834471835361768533149360774900946045924953753574132866040084673288009354133983320742981688311775470348063573223532384834198329282277165981595620053100583506405203878360042791856043378743598944233249454455653402797473987720446667210453965625556793591724725282338030899908886959251904303179463409703667215046652534542150685071263488008118793591549395991125360301748775710492016456928353569993357942489697660890004363446852932662888317977594090874690237573509094434368670133197404657147337229689845343767013945371514323995922203129374380370482839395052091075700483085579120271186013229836391902172403216227821644869062514470269343025605096992566337052371317319166280170277937632177509166896280116799793120353257399807064429501944729418499394063489674814959842051908376023536082194697478889627222402892800197001631260164547747913869421502574654391467760595110945401266066140870699456491494013667679527568816969303833493695256447391598831447998053956610352838581610856283421743140131338983684055044810600527195058377038854685430958852440632611544485781551463436404446539012620022263565817903638585394896987109472512528983796233796349745403803351395299555393841606544827169903128061098823780153375938883824931715623202878602555838567252249012678937552938571915713083071968112933740416565705542473106553214613440316984221653431094649190651313151213625664412534430556304736203974138628511346149731873747626982268669544051967871465119053011133656776656430542913134819838040778633329781501844328547574043014386878796596111368300240882410304620773674937487091656438095297195847098028182932596015727911720166136238409824397196151577524228089947327288954493852618102029594591447810037528615549868008347233242132747694317948115666777399825974970850107593267146781621154601321286550403143854083667910618275594325599780606007564807918565207393554781424774728528003129691050389969261345656292471641497784708030624330014141958473718492922482997026794625902448019508570825609697355229683769202271870278993132019927967090596249170635211450451279200593945502393859125757930171329298340488097138205491181870966622661468451997977437795514059168267937886690504968829513417846555078144216480507487960935029876253127567376454188756929510600968898081896043656819859375566640326246291256847167062110015622437297809575336390940768138129223714783727884785914316718357591493820355315690573478695922208034794698789848266947433536017883966626514530344323963660601122866611834860553540249293991023227424276922538290528769103406759896689848226442305280213912927563493211837074558193226469994237106378876490514246611560642441052985542618299714314522481026761911289648993711937072675989065829019870967862700944748850417802271240735672560326602838403285400619068728258964472641275778380594434025288395697833614088494318807945351166358729999306427837899061978491025772529389572901843582179174198383974833574630135982497696165452206697376219557786686212938772463734962414317851821940749306748013234947657241104127297033380638805713902738686334182958211768803891233559115515133270360893428669135652854123280032996696124065687356386901767197769187692460141608527230716710702247444713219149817694586400075328672559304874913609987521294869073445372689367630706134241898413615639951766468230079645639533300159925064890306166823085064968225300415988738232551887083111239937778564187852362394371973560135253148154450607404824072939780691447934676098673685948862595793582847923451352762268058315778815643447764218139686647992634382802454292083716335624307009277452359295734914453828529292130341421874743236166325518165249642411056502672050254951469930265663626223219840876641045465462075582637134440509833580046426819579444079181207497122387025210555846323064455329945773169247728527559812281149071544197564494695160227813885086819408563835186608133056346736707131239258714534193529918773649120424497746200982446301792948886459669478013264587360517662336760064106334201647500164147700816265742782759501342993232077086132546790089585053800930738137805039794109024856649448917990180687825407997606877963869826943657609378616795272426969492573063256195959548351812944036099969798014878676957577524301544474135826369198815819522612898054988701630722785877545982518093161122508300573921985634614102660672138269006317731967299170024497834386417555459880755910037693992551542884148105459821302698196971504745808289114158244139134045680636828840245299092550478164538814823253439048876833662136491604552261902760591454678213382480824540636646707727672108966044363807730304823820431699592722250038370547101283283539266719836897991608005966555357344372883821773322856143561229395126978655003304301622320154782541419649418412305112348524134591126831273096362497703725181899536504919362328378249220265846409003287531398482874424637075039575346693122724839824116648535499607766064710021637626244205453868335272455752879764774629029427841371987695227544598808317680753893596055897158963162868245894280004331852407992574919073094481180688224140174586592647809979350175775626883433339880397718228633026313611477062183509387121708288205615491585334899115163090906041342019943153019376351870215728806905685554154321787650078587773500577620750524525376530142125451679649441012301563830436273522072388338132239847098325367187892942398083928519085224301177299135191563842032809487800788027651515826574850160503898061392352498479075619275294316311579771765230342858129155616934378336467074427930861470624148802697178627304264377439221649267615548246300006380134859796426981711433238890106638464702972526151074475878833966500774075073855314605723205934283244496569435225664456302555820259119369032277857962824851654921185788922656230507736684180084181900335382489676728989617337367001258811623126581370066069357959901553401213218956845278828286326181627464353688119973358671502078068860517445180464473728536890302599555918531388819857030493622694005749877744111512787610862815463266975929257113165199576761920650960307026410890961057215341633006272889314300228414506992049077381493070488643856326570058103731108626416777127719885252672292627559440791691929149365202632811317225674494995534067872899637893085214416661439837287149109437479509508074166473785791325369212696377747104472634621292810522441872974064244021050421135529770665074796441872204597784997395451257609753301453582410159389313741662552659684508114839584712999817061723094425902550756129952940466866552763603585819850611221196569888664326868033796594751882987611613172308140573279471707249237289807138737542959903677674572895385008994499686875401940206419857282188310265258139561451237371415509469792102897348967022688597772781472108215362826896812247401659340794619139556709421864758703172866230064158187980073365809552370359916859876403195457535491134559606831382903122244586297943686428451372954817002395322332693200996753742280388422867795736780161356662593134932565144989224240158171392597729732822216670950669215047562855828107903534327747755710965378369640931316083492064378670479376409038262157273649364663124364521263334136346174268204154334478652901184703345913069824257368008965181271757688497517764360711777757999980363223104306833361215104543916629945735398840726496863898616569518688436576733471897448193161904821838613748198458125661719828036852458082970726010029198230763641037612612635764700659685245712462220954202520611965109621596711265141908364867909160283221570808756000184310834719815606009361882481143389631000528373632768565019415562033287613904219497302445498842810794417211722549680332431448478836974493804133916352495455570148572013256100173153904972265691058095127777052481679990962984744024790210054852913029433797274376356389098492203184510525920344186330885486244074400004206526562915959835458300243508770066545215120102360788923765411430815757874550851678662075216550958696242307577991144151421401953562673208935802268011398303529762022779533544272344058455106253097797985450968097412058864932374177773926426583833513298968132678926887474801855134703185283076167570010900766983557932447140427008262261053506506819711047396018667406734846358217566856304552390765218880943328598863349185183570989423069867056717603357856575178924385426221464148494577125681405263441334968159658691939319773636204103957663530440723339915719781923531506639932583760022246149291908116314289987823311643543584499096887916093104629284433739986078267327725620556184705359761512003485611256550001368894542206426405251549455509690018028340334129722162742652697532070545621752146679580091879986010693253923177361520223627682712130650371738647225393154305695283248552995596334343051001584056982971930877767392314974305782897539516515571987652065418472539927400972921955610500402259169314424542111023029293346219923273442863066430768337006036708730153112113894960929102486831495982149698206968605777621601018521390381047640785214454580060851399686948885685732289145404991836550208502167545562111095231797200521523286310331952379328558148788337238089007276416701125113501642013831105657377550939879877823486999385158713479697500952360591329874936611694651538295220610892869403183566956046120128232301597871734679252199554975436095257863908510610872266834237095612889837531310732885488999683653176339541032848422488790437799518959165265916831708992312665546271855381568002924720487496873070011492133439975946681518880797226330515960511208100322044163844876626941009197710608820957268765144049112132115528484816597284340127869812107232111071197840885884486068368710247428288660758173418571740934994149151332051264823837345151628037579761519863128017454612470570807827636304532320684058654730951477885556918944097528480500953651455257016268615040133521481340759339345846158384056870875578477652618956835051152635998686084836455528137486921025898999506585605369992246766892262123083301373701315055826611236952338806414025072576840112827273275614459836016649974507871568859494825503882938284685863909036498632540688594312372318020361747869845671269801006035259625228581942097470308153155995801787220988542313854797867110773178387278120732606833299945291337785433727831921081321284825389577564942185685410921539353762990523042901882021100324264151738862906888903574970872300232155557117551441101614126561808396606434541641858864206341748119241619206396856444663668997692870514808308946670673731048165907977711157642973425701285310409727389479592319905227695702749955644154367330122583063450283084813100316023599687173340025658987109080684994988004884037884357936965500258344545427094972284190665112778011409292769425998638256111667073093774373727875157859677045133110630675085597529970206962600557484760717492609216677561055382975510234270099591391579699226221368359521350235422184693770638975078633071767856814851322872389839781766868771349560010819140659478082321691326909120910623578868569513729028408429609328941629381500147997007763510134396378952014136226501011922764131509051453037388732447634277376921154450597483793414110988329422409107051737431000068375943380778547993761846794922761698012803923820202487208434930814182809429415656988177972705671403796910324159982557875681060144212664025479782774322730483598662146421089970466182787884497159025291673957931787219682382682575851707113550134028817684714547627927274010016989962300347097965812510775363576030999211260581738421006801297063871775742618369751958784999278161141344295352911317807699949975776955220670796559725726564151173633064107021012583212615043822981055604066618301718597159823526811681368299869235278405423478034460691760153081286683261977477623342674675102454305551677952985826578530499644624494979037693154925274391603535165621801601827571179315855440487111631333520230654802215779297199911431383996323632297674939379342767457884235564418517854404722077412088747191541978784155754714689355089327850870768818013218073969625474292607268153245736476578390235734786240410509473367313269785657788841724474409223428809412585097608448520848566415402394878921936101678680607791349245352077054439015258704278407043006943896898024177486402372043903446961517702957664451008344523335052855806006367326169412693582044361735716506757647285678325934359673969363220474933805957858459658605714961176515981873918270542925830488683425383411029106991462619296048703602163664774964921857677166317502454621759250257254898788846568389504730691647283114756487160562008927822346788708119412110733081528650546671423534109295364775162372623793146613272652779285216908989970155423122358118884557283907486460449432059651321892532421095622833364041387280555539983139807169266627620759172296844131906503553337347209315527747966197850991268506938707071912116043795153867698684152574561934855622868018974507897838590498781261435083353288833628438669574008954596196660715558583120417125768532268170263461065854401666633317524227249342732192193811256286948039763343243909600949003103851458829426404047219335064215430672306483981764618826382812104948710234619738061014241746390538877799990682199716257870239529016787413746007365855289100038854752008302111286245623760944499449052131797848390101648330187288162239237553673433311142666598152669689841197981775378089185692252861210166525641039699307720578959199230534528550211904118775321168270243071351580541236962769646862586103060597243415485046085746390467250730353004267715375580546321529554729707886222144844511903561083828187306583676162862279605190514308379117617490512522539634908232724929949994285627957030189196534075497321522534005453245003981520259864194820935773928167568504827742880633536346969879265871981161563663592938276055755371597344912297877654315660226207560262648784224729691504096283780955721967579861371388871003168614935994048638451998940933705690799482422360098477771075659338584432813979413743262576569222676809484760148808011967950688838682250105471493220464313901639120614484592969589318322832126624595590202494676391812666385606138632103922118653746172110812072376509245379754254613134582256817433607680717578027354883830012060408152816467784446158137554914926537621600791048202522026339516623995663881895751086370532324738647978851617692778011920624335561192679948098367264179859068433580375005330415016211890967074031494859109503690387092290382501203447936160590943744748883245238261542465665373962664440607875273897327794153049102979695263795090631031543411850260362336369476714495020408724522397925132752527401350292362602989864186291383213050198668216365115706203156316660352328065960514368800716164903962919759505580132878822093342836595607671234933201763016337537842285786809543694458390498291409076014673041021657362680099816888162225357803162329778608968536250226669951187239649087200164284017061967840820075082807806319297731510645635675844439657848120949137164854384546879870268802689860345044767997319263305915864542644171604310578879030928279598682377675451789012584833596514225928799987251362883346065882620129895610618456788375191914869622145002024313303577401164229867063198539344603297642894343481839945126821217942103253325384310220721687617035865712986763448844908590656838799317387302970585847914872504379686620725558544735995251955122102342520876336687147694281768904232915974330765851130546995560090737578459140743210388910791977498243129282109720373988628062350642712041872986434635327910643797197267980672151294605405657361678574015564990742461336085750439986228395444824523965680730134429773701871362076532120737994699998425097564508094649714292740505492484762956283406969219048203014295715894700201956385000274887986180891731129005283940139185239227883854577568428627655785199414873149367591727344642789183359768011976128966475920242101758849110778816729159693201332480418796679327544115830142053651685550973008352354753819666089189515973400350987099011257002842606630506652781488559720322580489983715978598009480642330239776878145157737360643226967611092049306637896430890089577903228318346833423440879672786654999347009527922722928208190759376131677768143410007271970821647650021290928094925407864739235676624527803636006470877286436589789762017817619484583293026770181648451424860737017653185374482415372004694145011874933991728797975265116420218652326927380519615470161592288330523539097049171828845698748963182497160464832555787349239243224655311463181999524910586969084621886612250978601548133885430044472155533147164624336287006669715270698004188689416776608934563850614020816506159001107201912824534314952063927711658310903510528357754485218211347192116813412151578567555875332483024887314706564111855884561695882433526730526756509646213293161122252690511746396239346599243878587034413570728775204036235167158572196402143775787806616830489080735479976429574529032450097244802258956344679192263834740478674566850804154002923306369732059919769003843685477384590981791520442210138880931700070377245428704392337675798837335328024882728525054725106119930866698574141450475501179043338883976492647306646593755442566948677093987490914468854318169304971304100646439746952578701453304337666955131796382120596912203588690709011974770786109542302954409703041115181776449979017064444216655760986027979779122641302645746799578911823704083433694120326902904723327636797135276859083820375271108799807389775700952345585767602882238803175660701638997740009727174192762512983408844007122234996804901749359429396869243415129057511104802172104183987795104030409961604076618372490456223907107128338658327309366844183875944106838219575155136389984792372020148261189294530700589575520022670111553209073311257341398274576264604658911029357211213877423703328460022721002146902009665586799558408204434727076837430364223646639383224944438506932513858015043424210410117883457491365668198187104482208204479934247312975671452581896425312956035774472017753104464900663674212472514584258546833508618675480018811385802235889041852716653785134819135181658174980673915845011661813363816597981818541786150730030634466014809755105699351927026804461501341594866717749734513033442377951290412871954929744120331639558608375782305819790546172576822170677867947274250897945716229411019516794162405788586257228645644499448849081998981343399898657808389809812664045815430878665207310263787884027998205966384953927326756473473015954774120936355153474085492407797823674328952398763976262304299392430494843395343317973602478755504611207560682876315923845050999379724582648476094012201673855515050966708929191174243410741842900679620666038535810708689155375067535406532119374560025055120151401181588677777158909854302469877266941222432828181804437631475518815528626704952307824184079919385837411742995156567922888705684534828071459076296705203602374354212313605137908433207989262898341172944268847674085807860109185541397267953151365887065748024820035780948820133630811224109427240078047261119834080525887492533041108646026725370730843297751273874384048726256568252400346203562515305383215109892804130583902168006157261640250785987402415593116384809820080512337825801409496523917343870087170026480856691043244441344861817238347604509747536814160173710945363395810794013032947664357870639089077970749337461496505195991314368440872581044195308015412727569338671354470935995992849666517376984730583546727019526224549950582024959511068624687407883641291243532332441700170176899524285541600213527595122216086395584388909303078075111518002785221526867240402561755942640433897003770309852316780056411344539708502464967938487917465468710649567219145852274205430877684965509094303620911053481784484888278018186278388678165103449326103055419433795654993490457230856447720074834010397732932006116985808145246787835152332305879124494529342400805431472184966508823642628369463558139111423388508468195479340425912296629071230514284647788280363450907875029586301037534431185797498982186376756175500750570506156929205738064096839807419666427361577023059834940162692880726787613259714225745400732552372624518875624735603416790273354733306349198936569553831290838743894723992775201814796483067886604735656732093394632841538136936862603264526468711723518290582378673545521368037664583728447876258137265657938398776609477908538296847315239687137388303791485820570049858525050447805644210264431467417108847003287696086729486660315242145046149324785338537331713653199774969735499893340241222829235256691867571664279373842004558695449262728012749402383532080547638237048030091675206405171190888846397494342984795029990806148094412022413015052160338818416080074264991440159468442013796331214111785743669009919001876613008046587680140113153971225655604846072319237406113738728743977090294978708895627830629093260528776156981177170777704635786154330962000405235521921392883504308960103429600208660126580060745908216333717744657997232284888108994885692798985671019366739950998122260165682068557582732131273969938699385414092808794506992934047639081384201693362286851639766094466945491452623117394919945128989562544378601629954199984231272407179781066489548356043101511367326866534607219544268408033707090963311969291356050794898633799880344830332924508194312386647333739911410369003925584528047245013763947800451562358099852755892698027839548165673806909178678590753814429421177911152266285119228308055979616386977458805990388576646721929241523661827181730302437794420879359911795231675758478185881232616141800739863206220798387470577856364428506996861080164014850821779828348629342707113638658194284980828144082601297690458862315533372550231142454569842340418607579185171136286442606714976166135913246358799473154112398047112235215665776473653569673980314994828773862592210515498998440354677716106424393563777796904387881818002930699746580278754630231374829363205450665558047006115517018565731559469450634495739757343010127398408008593291734049583276187206882911147251970668648947773906675531633514972914510266052867053026697716801795350453659808587093036502321531960482527213495918195713236914112797916184232550759236583025742880538527137989586071878717443772664585095895367523884580631616199443525872475467699518368947120458748562120938706878766639124295793511037865304125078203752828045895077830873258726471305811565510845699799785056134104958724368904733817000588467416813579032558201725694127973484286960275660942480014866213598863479888224965834138636159858914287834121811400927967012108789133974669192321020496670576005788292325073016486584431095229338268883435345118821220836805813380439766027082519753651233655496073294882259349172447400120934722367869958949774104604450417104223348988423998544133715643680035320074309096772063057734847072221161476142462000133517003005084956569879886306940508946333028196374714481429710089093216848876354251279945170767924288893929642170865156917666016201718184953466725145649954528935156764640036686592163222722254183121886813200847136132064647427986762914469140533523046293996527958760140439216303550752597694293754351416478793710363186092546135977241601483090301103026088558128645128539296897827405430056568430086565123572525417226743014437708364407729068406035397614204582542878728735952137954195484723888840631618867506128032486002338463774736959445159945534258365354148162851009944658491347458354307006197206258496213105229027728871064483093112417359445275869806192985217101213002803750744940096112674015893244663255480354822433434116181737880116764649967955416421049163901292705303009836224194577656753397795756009840310113631635979999456753601851921848321131939341903038377559719632898003798047563860146767131612949446808774548013897478796794267124296327459315746465142401231066462577205107124865172699124504175720837007036349247193932304070179043753845198893729797126935664496529056865232426377002282349088958209941070474916140758289665523287962468120329075183159335993171841462082670698304737941988435000681334614355867833574134448598875967041323730422909814431519681379014347267018747295761222973272952322655442054140269647359370524343231547327985363636564024398999091583278173417379252406272007140755318614950545802121758930641502669664784033469430354820563220026863723996170072414762538895317432100107071602793268678149040242140190644529602441414672953143653384342938050629093462669040092415667414720755499394160724430616898642903870814140054752750306819040060185876861792857412237900956502227014127624188631599500147682949881106646410568368530981478643584398108604574380693327931675839182268347600782336423050894251547748453544335193606002626113907550004925523456332512202836320939002061259065139283999401024949156602916084213922939551736387029984177847026837444341972438839040623033575851541404652675500655869474123101695345379425050846655891312837868130951173592464814400354026522833666340420991470660353223837317947553462705631636190924753197747695055809814238966588538164300243047896396924233103453232742873561181665958954767846535529904400908194997341825479175337986939399100819202571098714668030469820306442669772802452599270312850158037986193084297708497880296934508645389228462890223705132997516363040170514504781589676312084393131074924050949219703439546227532795636453856650724421155112030357285059971816170866718988353451728794162087764842918939988933223470500344010159802100860148818943632232332087832323862762410194680567596052321382616928480754800981385345972492541353035143017890294910684265670191369798738825288937290917500791443067044065566694130764444034206677461204570724113526143136248702179565518299751450823144149042030122627437194606754729781779928757586671002183371070951237627191333385448686621676212409260978207442529307931101982560321196505923801000330875932157098536481183725236093324158786465950524314159307103838499717678164416090704763268384332419929637153278141127883554060115269482725084550711849015205950552333771409650606730469645110520039622777627504335098474594437723754048126231621874196719481670393979090954926634040273689014018611646549662997253061457660227437136902442513819978022625928712136782688497015020662708512747039403768083155409921534323449080468277600055920565326611795532292326293686090247258062691395425863107101916808915941708344391432457872069720094399918988998072508991258580140852895009331695994640250387272341162115653154507075534997372842312195536752926348105828198702794012970798396710564089805426069712512116202467522264727357327754921697494824716764341818813661432866434864035652982113689271055414030215204124864560174458329156395590321350604234079997557905508530699697170439181852347481679713730551656234546875150796181301799759898234145677191060001728889431512405958306981138367289808070818859891135469830162845905691970609609199175202484004011671913905269223825055343482245053930089995641376355333453596175744246080871979464112548543532974375629879272601535335406622531130328540840689329260379692396284261390508799067120010225705794546492547815729613719711137037040669835499469823398559390100218988814043706365332614865704474473892435836235501762195474408174799832293280706585325434834813749250347522980520704898564318292725112825844590857925841732913668392678083878148776583377299936298377843273020087976687105704250423277455434859319012256360431809667460598414225534533378468039969266840681374717461611859087616273469909409426359210534304627431400993101848407761800444222029357471084519294404887422187782786366442310214045767275192341814357129058230865046268871774782868705066297123632276060442107348065323026003020065493086439919650935591308303896458579051030110352828057680437898765953259806487901240429546225044112380859447302029220755967388753905884791548623103341847281702161523904327404324024734661894276886425522490780130256060734558120415802506794893145331109691546735208930874556285871779545993407484137010041838389642651775066364996395369531902233397862535141357294405915679660354585166275406141162548110849675394958381449255533874835145470245997636247654470276325850205704687639307064241636499699244042181890907121256059739720794166985858605287137449827083070648856979676730704474234121976321723266316357308925766324692157895064846880666287561448712651590120026924759525997591661669804235448924726443746207248920138362885649715428012090251284580820436411813615983733312896377848393363153710959589710386545805898298749157349340681487888262808654290722265448153566316010035891084399045298153551073101099208691889474262114091859481466938618437517669287673370221181896002913007848670051293821987022204090878933096668413212286318618653059426696326636867459256888375382063473053137047614599790618125672464962140899336221287056035998974623113079806654321776800551075937173427200028383869284664450044446259099442155857765987544301887710044680773352945902119396569215659432402375998900001730163390628448258646148613958979161121072276261979392650254384418809802133001774010062825683824558441084286311600990727901302270346059605844621920927663520798579251646137123744306951339931597906276705808862785091746356976913051678004550765193588009144715321800642465656674399499711884283791595498877653066752370662377230660679788136508387049826898596622588749633561888789482212479477873391982544554993865564883507566353321291362514275921931390598615845670232372504490859872129187113340936732940736120923389782699580854719773066578499589421328734664618376110419931468123706856233741340960454050931342379734964346227802754827714215307714379629703628940263521949752067977401288659015218067075609423682883210072596555460033521799183740101301195444632107155843420838196938450423241937788540805487422129950071874570921231770148524543417409970762700140178028242085152248769952527737161812205832856146582194471373047442970336440136414614144039079628134136820156516500595558192941414048102906873547253642108106830811239317077865214493724783313452096817377382020207453424859132145736935194192696043596368708287517545635506839872996850482797016193447370185680264054882598563424070275989086882057465966159441694052444163154690447217292472667852911305099056511946415914832161493571759586458488654309521342673338305043413512630060138980149899812367847459552773068781556137150595385750840900690732878273184742105574163717594854080693566016213924798566435919150918715626209542273110555185272263302786223039127745317071152309207505488895212990255411078968969000614880017420778572939804873006421301027222135795751445307603205583428926396109084067844156952410524301907334299528717202520387536171225519331289338534521104427506613991013221038037655735097119311394119264599483060913811012968161791276629570219259267865759175495726620500726246063390607671409708333061731871744225923950071140958359873416720831168059024262499856003073009748467464371974508642390891563002217903221657585991851253480062258262682057795151271886670103755989148082228796379300898854616266122625165194375498525811157709629189347197242150218691511923238612511015962953849089932558826886743354705313478895926797761789680120998609284698293276429652484888204265795005328668053724813187060875575763565462993948786954682630395528441880445619629424868526814749922067413865776458503269919260825271930828291754290373985357877101179421660889697931765484677500911136365492935596568662755429294306133066679413963494093452847054582586465624586881121618752196694090747624660842541104570944923129184098536643865413422197348673099566204504968051235450498408976502232660818434636409036174310726065180428842206599659857145046485484828977181442800890345808953497310777326295299694985317022774197859168710052674888902230340666560057673008565677422485048600427088740429086762126954756416452960052923051138117116607342193073553256090217295892885369188273091666984435632553088570099379857390638359229586998628046094643451938543746463756967892999127204214693619699668351394338836585456863934397207020422963433182819905281108455510214798427158504943733914475217075484658860556459687675356409620673753624536671447401969506027539660948908932214212864662278150085246695138308185038766456736556558456928310563269937765439105992229135010436082744894778994375182633616594543845532526302263252882761563939060662192504278475744408812913545927799863165704156665162305393521695676678111637138151835528696125750174028832904513245591954276084202795334499131750070666450460920002400298626674073839180185947160775243751047117283263036306595925682349329138842299831734778357562214536503766944507410345404740772905830968113992525696940692186414655980652708816616132370714253543257202533219629044713022284816671022201201519562372854685596568278571511920465862507872591286655171644253634668649288516674157529893235687865239895936997625443302709554411659075784604972116112541607544985810358400265382151669717160633227378943523696620174846759641777260666892941233635841678488980712741868112723937483373931075782008183916509477041850215096275436627518040628201707505120466039654207919275801379710563265375168297860299457037929191893245647787551574055457407490853047965609645890017071580865723343987783982664491976590204750917797469436265424577026669941093595427135580182599221879551349873131025366636450403815741009516729131658822272785070830605075945932876587788061484610863735980038666051409986056503891329066820644870641590438106869920808320799067724945060950965607140710100951644568444872819105932827934616078234949556649407616976484666594979375286500466819300097423336130357564321920640960039396089353870772909608907064063803818341861713063394236420353090885426541162741999818361915066442655959344466122525790478661112113312463954898436026008377832401958092411989084274513777947569083615891331907707087902189194858966125949701882559514679436758948242274731001003835975294241038030207824353960254328421344904681784979000209590172318073561243486427619699018378769402452130713325828466839638549412415779247441044748904256595102113639995459913411039212167764880682209569148686392150205703479231538229747346440617626244838261485964377863385885727545497232822296729701186318229339083641869555415597273111923751094552150728273146589090269817511461124915249837416910843662176011329308757465024190128195853262212645924632397394370247759216876520375231266095673135232843851062131688002938478940117772381698316719832255719254310631140062672945766960038350530480412786098806843109165466863442092151053022330833077752825246392213885260118698041549873567048971920813839208361015117129325098992102451090301555664001841711646341004454559412547205371471121748582924914452096833711912621421833806846208636105862883877948534215973408383356611364912426696053129271223160500171924879714481927335833009925637424452516362483723025320007572284579434835442360632398274883714253718307972602310131575464446485393929322223229965821618141581908995158519622595959353132540108196813847592656237870748802121018996505799574880765726972350849443508371164591447102921495785037548375373220029434273231021609071049854125421577158521376683894582796049236689296765706131993582327900618510172956806578155440688457745559886671261169716084446673208319833921987234949947735410153019495354948638201047219222277688673072894774881030900619729335991608227546543077302541331460119802429779578635926121412428101674491972208371628740216658331410209397186057092599801368578504817779422577959508607140689603571716701053378565199106284966537907099860182472191712357878249888887607352847447001701657956459237264026193108594497987314420122709694402882718639908583711896661450434882435705174742054665448941091673161982298332615772140857493042038002896725940829253048093670713968319449329372316596898615737006358988323513185437969006168710711991312471523863738849558887809228841811028128751104771678578649315521379057367906011297610134542082518669086328950353767038878078501513809863454969465383136444397879762248359046507498440008742129048541338511241200876233033118034818726390191324015759737719648137466000949708363488435828208337491393794959660302798010646370133763276876208939278201108995727920728416511647612813298774915384018534878050828902699722570222047566521243801831799806491455144771269301799322135208315627193891291106271059884395584991120359628591046200011698528715796015812021722362962608422279471460025377814353060932632180904181635782548026770488621916506541045819594767403649995602461668104473775087129068351530452647292101283851654343795947896616230647245968086017833977214058401279017393735681697890135079131605858714013082837831352906623281456699859783358292746735747922810784973356355848925322622833149806857296576809408843949704663247667548522259040694554659080221276619883419004947274671472516907867432481137199345435215418786001459954778731918896095941619307746839852293140656625746337797922554423822418308519764925395425020169271145324258559610033598558882458229464408276434090838121393855984923577936833017766606566986290589633114818648985943645523795666495904052094525586149052174862103763037617367982475351947609519197291645662061365989528965826764944755511683391879269102496644090661191782616635543744829396485982968775682832108809194919148505699670183616900036762685046978160432087592481456576392143142840777290588549970244910660837401364415369587522738483183584036411268111192318518489577935980568814806352089174972941070866375604232043394300984537573024215007323715678233774142690107497718159082324857181346021483809467872484823415630798976792504245581951205826034071134491810262268283955281679376301490733985499152189750147116980767210132250477024552522375302869360858350802447305631544121591784472225912436098084253316365222471500385075615107530690656150228088223714786611750569247762081061209708435409019765600122014074824551159916999880592641264157305192471040206979859324419371899351295574572327150090683876622835831274772896550093978060110971757919749760438941602484359916294850125453058349475564644281092152024911673244101417074359326660657340414758517951856909581667764482626060909519239580685488816850410844980917140371320996453659290454223988117426815398650329025769644352957571119165648874492124569326278801082822015525151052410988769311412101175666542880512557232246897735033828797044543697565557625747404804667722684484036988078785331199079371723253963350540850186566070815256269575253724429565686316556477208490972605439695197101519446582828012765586416847073262568558589594031835496171186890480981881849895762687903738096915247882584908420674580571173780940503584140768335334567757864317585445078886583325141849090787580916952107238363485068616787229942942568895739117584511617988718220220582747914347629860467247176164084030729461535427116893680757542747519247604607070089475711824969090876526018604272255552430786926982664657541415687427224250823868188636820351392942420664866321641598205694833292518087125285362688628794993563522770914086299144480500364587564083216505438358652837031385004539396204991830541251020029005636168876598427174709073008392855543236468457680404779301401284078130389131222239033102583468751071453448183139646390566056156860609727541845355639999498381629854423207446015889018207752315606514915740939868469014329786714228927008324284991694972785742428248657457916220561285859422027683234197724913437757733385010863019069315563852198483702362962943958045422927210685366529139741015348277391509820459476073100102286008250080291671326488151326653347927593135994344692095094321952047907836736195388198801773661616056482396492864045701777997276964495989026765900741701507702812758724182892572093104418352283947743513956063648262222214947373958893491917690919911025876776472229214108570478858900780693923970628387875242772439945329726783564010764056004201055666791601339834665495160213561587744625942682428425705859497062877246839312621909077179468520099813676788282485268838634646102007145272023854710017906556620423256701888859756257487201982514279844877090456091496057964881073264955584841565185458288255085939804169017353721499416163822063847969687238870445578270007037972552177506191565421104006850830189019512490382746068563540171356228308201111906046253026768614022652545536867876620619372598500742697467918402809247958464481217143182550232871028589130161828107693911726653522408823371803860820851948551122693866815782450223440172313852558027820813366157660804288258328050994112841612721581269158912229555270189319197640043399225866511693932057198051652827414792048287526511126672464229407391417847603436082916716987793673529842071122091591494457246476576922585253862043945188810123176881381519139263032946606111207389969657639266898494999651449792818465187465672548861003627123883131372143285971428114380361006639438984394773233252066823216737036545000141704956984675349693285282980687686697585845982553519345910200341921331495783652859124223047485480885771008929103463136567020708797798797007983375142542030259322515806375112916707268566506818512226010795345298038290865809828728348309863024221264113267869142143619735263134765650279481633301386027599907383519674435918885627193725600595668620040831071514643275586400901776732282031782742883357078942623207824740247990026945880292809041048720284360775497667900261260885803330499027060876584769238182600083996284933270621005368162870742081026751946265464387868133024687780354752149320723210122772296451074187742030010747762819646821666251633637029090292553189452870265296884548838175604490497863774871782948181971107193153562447129854881637713517904916318743344696183593316383471123924587547627352471761519212192452354641726045658163243390855310586616746621078207523233562517219848691258260391663294364744101531618631232063235670716873569880819350614552484526855077239219065715645672346675838079393563690154878800424342706394840429001214142004692652811196157712977827373895205838484372551959008975757434005157415455513862538122161734204009061148206055863900271674895884457439584401529646664232395472983970627097801509660429457547746086244810775465194582358017314627574029480745948671013739291863465225984542670767971192568432113583129808360089341394431838285407057581975879230466984568199608446294803197165841874841695139330998770987045309120398031516989818348610208398380430922294353942128435017874383295803861330871924115264495720349544852431703504122921570237937072990154755356455718503217289054257653132231380866515628220035050273260225336899254182273090303503701635950587928268132481068218565541023291827165134556377265622635058976098640145487220915641727800565755509015724297710049794823075336206708484060601365037878622440461794960045499366227306621581490314444636460891162178246303045864153210751305231000234392973174431193903514086960946503849384475372782382594589693088522281888252499895063182891829309165581539731838202358984401772573372942687004800549340456270584813538185442439230014957052266047946845147257838273188673333484024885817427087594838840290850975731645115543583317298985662686527425393511848422170015307424991917707411676615075953225119954722638946822598414917008015335448039650329320375569125078908438184123204923645019596901932018907665200828242750185855481303709552226735888968043648440004529994420139081270332870522042038067802965103170618631054107225023347562846430970976120554793094293897455444931199316071346176159120872704267664417177148868115025893675204091349186021109546203945957183474017161245471642639794537653092616583112714289910496651627297170744219482196034857771830141164276732084690156354989431167397879208681027428016046268268038857941209470825507730606544146495328212442063485909499135129023100771278125179886832177843000064129522226486264218055285730372209914413015957447473106673915347370782787228061791901742640337645680811152260217945783571424490217316992972300318146386144069693314258019069158240780839639595142109602594909112981441115386134803770009615087249146631274714499554081607755937724929921664611322167261275191654619715329547293200498248109083536141815280778258130406366523399337409806202147409833624531354726214540460545921522719330665406167406839630223174594126781781584647114840241177039647655412805847575907572321632870521526002493623058701684944867147392440144745765748431271110526008719832215785285825189943842613381670049424671885042616262365877549024439930373071334040396866703690627870895680178463814764777437017239497224087423672735898935086814319257158886164076878208646970187604629747228163069601355292844622630765627000588170090270618493047243494200058078826346114716013205719965053708782239425785179159216246196402123363784966700709793722420297739363065974733620871585646782315879973005580626188603687662671726119749575641756086376206522337292111076414338199165688644820281174017204930284991150312533773410810460865337223846904068951771233900330425211584335470234673507010731429066744070940355588892307797879367569922371174835711712213749822356928651985547997069362962077830946130758793126739050320726424869965740471339724605116507353969545355254131206593278639142328714679471104876108529932738682758190384802278312039285420544942893499690831126181770157011823253778384158595730916230003496642074769358708902450379887242458021637467617138396512988310429087436279937880541352584375496189965336549632871163854005391504553333873266671661583270046209923785047262179520695835345446757813048183509679008300978073795155566478881299152500784291704848961533594150032490968216522709957188650585234609905956382643660328617323843590633696947234630842225860372204979371055269223818253576952292277626359433069863551278017262756512288590340823864565661612236920776914729659710816599281278954048101457989762845977821821667225314217381806483870248413012526068862883690290027859284448014557014434296992857538620637065601633759568813024986696956892503945963145862514870126306332856270543890408390553976127223343801331103102902293544336633378103759457854893377222135373164869365548722404613640761624526687158606966699223843399715295814285081359001945268792930855738129316963263663838113090930751938430770540025605081461616307245750144659820223862217493431494390253696639152951410593676810188454989671958377918877867650458023620210577499010610049872121294002136749511936676545700658052241109341226745876909457792918119898134347157686902455314494019421476993857425811190879442960842655848515968793001692423727070635541961573005301084730112009615602918573003941711076519067792320863858814323958321607889653686564788810733359155533165787603445372295515637538203838649443642141917739105533206250883724837393682423204699468434881898841330168652481056234014627906617659341368432747007474331839883118572647414000186872499248503739282272910000614324569656971195818744624440692688603011577209462847112367787835364180114887229151733393509402993500270927509327984623537351706204498511365434514077915624391378053137527503973392142459384369548126603938058807824559248028226080397994066393220630383909345377793728941435592875080933339491606978808404118788995034800656756145344929669407484500759046936879450476636176363823227299421110187812985921624994684858569599281906687395097838540676683895313289393302076371127808179637689943265337325888436579050340122916788939092529432421347853591611956523016601408302780713585926178840609982611674922379213924492291432552060598003352170968827487011176811099589719191180389212936460017072388473817315686520111585079792617169737100894848290259179156609589717004444779749041975564552270094142876260703237810337853687185934520600623986770020942497813310923101761082610950439518879482077785791064133475452550700560327254760133875742398162238630743552786255958841898811660140421486034120415457816898254559908827538166907460440567749069962659801507703894542867941203509129854628265604748157971289580506299836268342899862380401855944644926825719677239938270984015419970682347532874466823857668243449252092487462913098040900177686963851471610408667807996130346369703092302029946012923130509674919539287740462759566072869090572598772467876891655433926077208561792791790510705029773278579926963266407791176450721849294610681650248067410970225875984558738765356815530492975782169554571049881665826717043665084712393170576227173046018221843952420629947907892275944798004900410525075831013567654752006882095053619757806944842447231565943779019657291965351239555449483538104774486359674788445301863688489419990306780854573224703755417851928640775902708520916411702197751266900754815128981705900043262751957230967703497205436587083438405937099341701284493855387314897910080970487689610747281411070537387420979628356369884010491620107447179668702491770456765000441456201215576076059370293621106878115723326862951298061205793828166027926039176029362977771723549705599282414419344591045216736991847617379999329436832580921004749003380435730356715676681091908489942227935765587735078262815698869879725081733187005733441088123574228736759466612078111576588967274306576420921165214628289783023332524586138990545426816706770832930170346219928461681680481695259695038449260105275198775092929307306153352083502197374184270742818859206385709100179971495139134106062412230601044637979938432234407339912751054493299434330463371168460140242593591842345429511258226835979430287512080301189021934777426417792248912815765365568679822515131983107135420230439523692319515824783818949379546954563583278113364939459117508070465863944658260515934321033371228066853137120939251801591260407460365539889791717098017564713967690135134874380745517021486199990133951889626293134269650387414362102458499856703596131723707400523449231911043762376476673035467637126416964050596299134908822111949819326502042790043417436457124627620836903212052765972961049963803534825257435616518182610465170064853257517592626948778072372102625942134902412927466259231450796799756320835969097748693272816127182750393698610235312678260223310201285980676212115663177975193826600194786870725219158489063167006879170914057735444676828628012781179775686464976421154742008215224161601089998688005732975510915483792064195317137913212324596575021467238110693529303950937006344901685415478085239606648433084635994110142701427928008098930580738775112376640561517786386081459411669379744590755695232187108709422208586967594445905511002679596820102795537689692480435668307254935273558448076302887004910437949933020485574819812925821665423743138737665452831103366845951899824142346776572564349455344672000902303994894229376718264658729912688933256519876811367530488380665159457643826045270226837404492326012986184337269147039070215511767179747552487271507330732637655071373579487176533646000979919277110038791379898426027276316194063646028966136706922596510132083324836180117053837524026572614857809905511890178534181224669837908207455735750767132975265483570651344604559094870553065493723911932184069239293275248366764234026426070248601788621009189882659046042926735360928638217269461082819806140679980303125598346846328475319551931830931294343499467221823669030084450127135392815140566528493181096127751771135626493577529215957970650917081698068729048956923386876870349097755193763321635599451060261902606570553134922998362663897492530296893788121699343442645692871401238353685050683835538583798282612268075433492742895693000573055303334347945172569818051107930783418471838964177133640965599739824100020773895487846524403340511427219546253754047274029898904198362768644141815120229153542279633522021021558782086317298486168429913564025173537133082944696674333566700892386268024091975595966495740619823926209069967738002714199881883891221392651531540889793451715476477009851019719600436528995593306640806067082613874307448227614692329601676697192076701186013250278422891315337645949941685224355570396549673865855108695373543155442923578575827743317943378388603746476095661616566490897132905070202867778583391137524557393595906622593027961468135350806905152049262628498886690080281707390718088266552347127850825870061442295049560329250744731565244519114160218015764602918098097021387231135348492592191520015720387123921039104478728683551837841513662431685445059915434645853848658599452194966431482856570720800415408600392979669439956361234850709367133272865184657472201384825893031836320071387387474133185042864467715757799829098416095828487412179258927365963877607464623977573327778431212982909219945029181803145075250782823705363072258522912010696166522193406601302408056304898483370470534353559444910144235695147535773464245688225322571559280018710759041855986483261382489121031213353207836787433924546948651263198659657160133886245208501364618700206705698372532212485319944976005356731247331097322823649958187861014788270557864191710944310945816032007376273958766524373884081361692877644879688489621910699868979301893475358973902554621036733871344332196865048234921969076088869635112856613919313410579067952859573882501709925897608934321085268307905366158103223981744895394208798729279207144563820058991983808699775262746614246052987438054385039164376409913619246986873026641827796283114041333386057735164233576862213832534236440908193250887138969841703177854690963748741302415496604167362412976041827893953987019112373224114065653371043430378631608445627261913171934600430950207063793054192068451171937240069431594357962541724582408493673069996659921551258613716161045150847763263682769717722065507900793267636766133298977451475469196227159929921483679529814766694225895829944563704314475144633618303196904825575654698260331139142834362636145744313964115267112517935656643795457537614876568944931019899764853753376440385314336047715007437716278477284949851144277925903413813424030774440136776364821965991593540519454088190798469282247749429332448529985900771420682608794332472694311723210015791564424967678577835211431520265192543873395432828522029270976050154444461351151678402971549973329350993216047164497778021923760527789277563079154131007031706892051513097098283730003421062665668168270463688319202274392943110455647655147147745315738236653563380209828740454658572155278765231118389491556870496806293848933031006451412629776993632830609920934170599025278440897865461041085495904940349343359068044599356668544488901232210890904720675206075136703682045201484478102202326628560719103485943947709285731337346901100953195054073930921646599564527837939582978848715082919753488591493076403285981475735339101241358913220312725583048835921394179947610208617846442818503889815243197146736882885943296164009040980655873801852235011144717334875714854628327463040387554084109673187680608395654375505713557588463037235294077373600780687292966486816428508231669139053492702305440579803096820580669165053664612266953630226848555355183877600709396012326201214770142336417830737715465047525286228949526975354645551974400183148386312695647115346599183964613154526501896167042413551155013969182024511306928377628354056125719296696658012011248708908501632842325254609568155742936760987439820981550010245915749850892991645968258750679376609518693941100253245146763119205461257447989198522889012281849816315226375423654534224522710501687662120728700398628973597055978792644725826547316428103552891277130365664111594098658182640068500904524906397546112008096845245419556749830237563104395524785742395607048834703102653079443822685561274905771299483678594025463690167126196353883143720049131071394079822475619686164592541655991673603686435751692766362233954023090281630906532530823757931790577080300114576779681076007787318529039729537460562168690651963560131857117954347830051014038238613815408174737665377501994966370987178663528198557943542353911013736121335405917785802484766258205634476234232781424886300363342643700844834368488916540363983174971234976152771984145521174996818099756644287695984863136299990511167697666925639088690745900919264187830265525460063979811980489731976163253588897393985745455200610760118541614599137658851452596717534242897796992919255389588881137782601265331070422131717723327156225957944439533749854268623063370363455783978662867412491267520784495884908297600825006831868834697295574219812312786806466939974942691682158137849354209766067166895243775494530117066808981389338686575448128126960227588666803942829288889580164476083105071089837222481271514955921018775003709860766490803090253276149505758152918705252066781414894348172197907240214784664494266970492323179520940150523871455433368135830214972560364584540134317786809366872843878185882505041249700286605435598163438722318430031210107733449111599261380029341591666168208307346540930153167042814596342927173521128513659537852406663489121389390123801660173411215349949105447751789784627480883770048681321035249620528281838582564218450089765986171340016737145201800538605137596476190695790377968088339886101135020673231139721090658148118018716766902919718721838716236034093757215496528508582099944606025147215667895421541294153077366254375049815599796678647577630797279824387106394545812112552441224597178203662005533900658997857776164720083267939109793115844110943046241303578923256069589831622581936775537482561091145682706068148574476823491254894556596921852919796089866555384172497410606802064678566601827772595289893332934848899578627392743697218335265366313609808284544882564094115254076801364481890999318602749372098712425783885282335920873506826787654618689039377121593110139417711960926602216139321972873647186101701695954150542637939800154561733803747952847303174251929110121036327642691396863272408968949929113965407910048535903716764576020796847044243428048187590472830135984399780195511074601755142251621986814690158537695405275834873049418876079719657406449692351417497945607918379896111457839229439312147971330842676820195395667499705213959519726598034239708531836229168659398671625430631715030829857788150196375399893525646666102452869162349872292632283584433600558379538690340893611932221712729921228831812976838151054335613592090602253572944105375221511612243536001073169714520913157461977497968356381862057990947742052672848507421232753472269598518758362453411828243776025921322439099447726982988525610149541264839622006341702968616793660953237213708428956394660944331394815208651844778656049724574288794277590643749367648964779189172511228432936869765474905635555920776419301937125236788747589682496518686421971737713152995469921772160736937209276561020815740811101068806606489974642816714616852110578441489256769380818704478557648959121726723545916385172243502247864267260979498527359828538318615269853773976035516368563783942697888127028239017436001368873996331762662478907512485636643816573765761654301773116755935887399414158363622160866089527396766931589528961702865036885474154267682697389768924079214295679885330599545909412361056042089410171474811867578016137173240913564982494076494337191715747583231105087308216138445459173728087797928857770842134609868559293536791502668953532827454425013797267768502768426017742036402553431543132761474737086091916382711988311889373847311972019567901743247873069798451882200530886473077464814933399661710524171201495746984581295444920596562405099758146774007989088172778033787463570364552328985068606998323922084997522114895187595291333341243916217890074372566841658824736533970871286010425491072762427414818891218863501026723456414141774762994269798782307910082764591270235198031604129231633968929227936796130987673389661276520742588782791851314087163824083028211324885899917111942532056897465249157802032398559509855576001153767566082675012664241505251588310567912567814419746216523512558465853957811702271814671711319712204718250436888374005722872012317352303764435218149865077993459512775601184310818455056273068456745168133450288677911355195327493386708241785370856791540191637762841585733052469390655586167650811543698721701665084758719898333814138277634179392755679067509954534133379112910047427199485005365379695704833532549707348193296687166381011604268482127767367053772180867040908967577843103748078141426896573332913341049215814641422975350952902428797795285834733462617578746625483193863398951869776428219052159526402128652965719573820513904108398112340237232223338240890847689478821802153209848333157509307500184990913323205858588601554105217127338628048934663899424595130424335275216243804333939081161689569916366676167200467739762452135837099777867840906288096041992267685406910607905444092946795927219781092883184147521008766523922313417518273140983105908533227292392077132978861818943611438793995878419041412783715552039847421048947288068324803599389341614199409902953114847016711141568559695507040206415804238007857914136033093733297252344467937057402991439078278797249729648616088882997652995737611735557441664402311925105644372488456985110585253945384523117784355276784925917425997685700018091284849145521540336881177999981249306375908464046706651281103397993957819623118248251232450956055809794844248448703638776824157186923069944503093772121655001161663775607725068558019148187728422563745945348723297649117099774825236761548399723961985928638121640386255198146015624763913396002981384778214042028345597538714087682472823339677798400973754926568477221679991288306530685014395586792674318874829036765831430559024413877337750270177932058880523168399391379011620807330228790855874681652147253052684030126644304382961620967271527385461779830825962064379637397251525730284646747143889748419244520955209544126615657551829433130090603413356119669984940357330880002162310984212145135824693129625999526513803735865167938533491026391725448071155035891585048127284346303095383990915548292807801373935565062100204977574275897391359476244264402393734459705799541558973351845499441877542154881414317761626215052761437257250295469376393820877001003521665288848533377920692357231888414453596947361698818420717627028004940120571452228926622044483847525138728165817124978717762891046914520853670810072923531905166435122481011981764445319987755253849666561258522291897025027791636712437431353538037611297792200175141676681724297805577715577782566357820634807256290729012629554860606988898043186204227147565917778754192636570870969241533222162629909472387436727683876800209072506200589219502284991439205740870843650490036167580673620904808176669226133691627125323416305759936172230424506507022106408750529343886419051350364122698363105541323113052984312937077493017309819940207296022434814015778243010167608144423897325754060158693181232574964934615247216156551545613692220124844858225655695183101071730562896285243397043701009574886463469503756131341487813131084208662696729264376271887683869138411029929768785040355957297889321027587035287158883635213499435985256445343822425149373064491739629792697359787882362395810623295018220558770948269438470060033621705850466850794046518070860814541296228187786668608280023519051755652906451812937745429735844598555140807504982344375498194187707284387443090051636747484247468563824521182758497314716157049329879020093143519549245327136904881658996955186301300904424987775842974534341363889555555542755350549551497576083067200473391328331901255981174604737055823954677315411689215335517929500137177653050770454555511396657990011181606162026759582961935953570542380794855461804534838383873618532048718110923373806687520000223704895680137047857187248604880090093492701177359765154067831875397446052304124814889794387430114453346228766557648621667585958799597700011849779649608001894582105432791389907199838457161311832163108108954661229243415674198154565038016541709296748558084775645662121320733527957169593295033059046444140712278639973803030285012212390065326545300186924240091806163278634400577530532796470544560091884389032017036016841671171903821544503220872947323627505265535244935520482216502340469098367820983339675675357531174078949551766331637148481906056220760985624875806509196921980240942371611510213494561308078029755356792681374390807601033763435593399004388240957031414755175435545020354291317236069564363683453230382443080011583611729943060026632507528341335505878184802617355490630473566397747765612731157864396902077828069974764671583983493484073639011471193973744168872712393955182485120777081268614564991179946239985894163746709656159379364327308100395732387006774939783237266280956748636388105272325914166569249557620758647811941361478912215353750290218810170560794301345246763578635408106054254685597581263747278257768381744390892048546828786357286288953768185489474499482354580455682512190748004038621276546413132058315313693902365295906954471666257554420146452453079969228229893241588689462399501459224261130210943765091394045932666887745404685439917252316807567645458160804377364515777121449507350810358415228033477081121650880210000480704721197474187304654568105906617234957903835445287762545792408090135868242529850419592608384217988817777895835975923547092208860031584178802374753357924411148725824785564705478154596117395607289957052164985480878051185293485494806721641729229887781609427542014092299018562980740800902773058965458341613698016581181008239697083906968706337393822726530960147370637504667761898601183943992003338792689069012390150643023442495478864687036164225386981912906205597406676209370784624522701156738299074855078081550977405564781409482640486158691970975518580082474445111615406509949441458642986906084730550633605686933452808662461557250077985329325644909953123887332197727706352056376321744279076127273343383029445776605690962541726182844790322046196738826282602660938156970558700808002788664438901258013847311331457443451943072231115911648310393892299313028279808358761499844089951152165162573947858741555104985431491945130177690893329081604321419393637060743697149814837668853808115894901007350751303454248021120496727256619776750912292038331129231613601524744902904488003336135491879887473302048331915423492340550161223283775508544518285573222186287399728035915502066052475081748191774985218835157750098891478033725033971457382077214600396996209029584143210914702649243076540887863477625133206617756682397028933743680875692599179961748154775620370085683738962017481267129440646530542267853529259784600950185996781991397305837096361491911832030986675793250410851141827624676220209945240607568846587085847582849694052851304056211455148986826923395930234917276065206091498799871807500416029629320896310306219747130808738101555674075092350106913815927975684198656437775131658146826146792051923376131587744092012243722657865302010031047995801573835027488152907558576570420984379718181489777811523653542069224447815375373266867289692131840828765052821042999838775961509677094430276805638415031736270057698422006323035331882166773952281605850851463632064096205970683554527942168074080494881894997783180954512245233389372295872756756422311761010005298571448262113423427692051220713112120964908910052196817285200625836155738565381774549067444781246830515054073783027091025037840891158613176962608192115225168429010218130056599078242005944708369818132872927391911624649751656044926025324223672333611771011209125891148410869835109661937937098691792564773459807448723422621655913971374007743494741952254161791497264742674616060765610860744890427102988823239575905369669161414985900346302760308180219767759305523196405872555624824849595327987841563028343155227673024416598313277855807923113118203868257740505153686310000656572597766991459604303040735156498753634278967196753865251439263061430877423000424758937752491444933896746562949962164981651383034183965525815681604651793745983024038075727635371972004766575177231950035649436029437600088440688641574829958463327002422200902183660511892286180760025530524399584821752356162960336998882239619540561702770528653683185092584926866518293880292484020778334515827856033971979053558011201912111725090053840920823092532285619835200996111691867851871794204334018046000458562034475030956691154576573574492231131905481623128896604331490917853320524868650464607110024786953473601968423170281687743725621070942904249624848053423843367740503001099900975986282306254931533133104863281970930503884498465251690097551517063293525494240828818697032314466814886778124532166531984322274357133042588574648430948753809796192517554464013586389770313074217474461350865646621461285141665437142712477383035097915636730447403708683622695890296848736316096496689428657430053563592957055123573166616375418326748233486591066031755712588204031038444679510874363657063135038861308188097978258371264712955664476524005988415231025779832447330860054038194484711892838693488345073576089378810208211660585671133956769654130323172165908924850427079252017000187835364037889719882179800203852766406297151646112518438882738418395679151325144622426784490043796945857976006237247883848202289045179140576702858059616528742505907585037069256463139781633085377139146279421236415153023577393563596535193593032213626563955105936487441118382854229571369552980634804479650478244494089843448499797804985814421761773107653566048324331635781740882544528052361811763349727954287014647699638091009114542633269124517968577682504338267744562763428972637155731292604636806526455682180812552295456372659420882067878243561037193758214502326516925223377950326313680280425804990119278035491461274501730689358091927681765329710536478703358679713856176896217315727700918608389678035364717813609607069424677263072092291842394947833434210191269596797245213976345186169294289551903946770095578627582604411391806215059357916188176206111430737137370471216061864093930193114749925505470574336111756066737011092681608960166358960779561922259611317617337127990697961880400424886393553491980821248959205015279961993865401901766912285159149261127469309265147839477182464578115812291654071115822299104754912373724836804071879543989479821869409226815001473905151582427553967304574572616873483125702215315388529129225529253611231582862638034496076599608114118592304809706753386511190352861739645156159718572398373816602652335880266257276558528530736910433021240301796194687275622656802223118099909316838377248052405909318459582581944007955236159336481243964674708731935037566317201087148876315318767668280767582750646918508356141114121523857507510348083397805403096254759075009582758916112272462186006907767864859493665145806445599780948618876257726575313776929644284585042155848863983919764592496392433127069749636633894431629817987230578079547403330560315304150091560533328612756337597750248347476231544168133075060636454972529500907878897959510017378495535923837193704390375797862397501056062617499313830546129310407655859546637758368272269824609485005793973639187784258906945225137486575730598434134376045332446600906428179725976379795462169818095074831499363444829110519966184950379149234702317591255403006702786286609773761358656839905557961837139047162438809357491085843359232716446668706758119433561880815826963720714924002849590366668158969221077954175528917357878256869783776754202147584611356670842704307230229397590462475276173016081520414398787708918399970490444828410944094350605237235487349936156435565655022197807840478364969676301802345789048131292387622012910850179852965368428471887309953662111537733910183531130911446286468309015557035191844819169684897563386414149636625160349413747285528877263321293821905366757390308550887971286690833827903792045420898463074198252173300482065671578738729816709950214931646135039920280161678459629768882813872495761690724160641467907460167011043059784059059918249112750548512190833573775486439512786425323765932730399426304383973921251097465823087552297854393820336409466366450052508947966995622478530362263510340345506375881903412510175393012572436261619170099609668201850201265473808948448141669278014764588849852830778623741135862708408756023781033869733172496215077410296217736277091569571108037682135956427345424484020760159997990546900943793862427528092760347413026237576521314148024127381022141674085310856701132228065061584810565303891987783801496863496884151983528782312664450226355657523509300373759623861147649205798156747969229121338613020377028369163886123905883783141252210074708821443361291800942501284889022110930070422642111572562155460612359235319152280277292508100530489488792260683747003846921455160665379102025341307963343429455444687783894258919232030178560403285696847720505445699720123837598062959163866738318439829327306655712489198211097573625774916359607116322423385073485941732159241994969994586687709823447574761357294002235517869648255286498092837401597170507537839956489247997190157907168241507548939777643225208375409982638975073848015013388032196260597898808578687737089126978915258546870637923277281312950168520400055422447078680122186436643701129338780677338997688395663906698493959506937441543285044791689748929223774585297077011377644624022069794646267914253741013601070138951174703242513353112366176499644892941679215295011837009289923852517416154269621797193866004303289945334481112316856588489316473780246792804457929702663001578995318587837156909382643543541153841527366052118070238483676133560208442526182029160954251215517135544003948932337779381345632171146220490892952824209438154102081968631915333894930365932341642126795847536891105030877087851546049519962908316258212339754580758688304413314952574555891142357356117098209073725919924947005166292278551856797443535742816478592611719535846924661679590644507544293197829533576883301101448635582094060107509220104671686556507977689242187596950968336173353765357612145023777592412095670733595035713413510501455719063461777446511003802134858631134412491740247038362499440574372369779954159596404574261792852952447285901147724135983216249803486483621713553462764416060819255451340092255692831784079819374063119689671472592479223804336978780267940580944967439504516008023375925794015227684773416886550370076227363926006603359967485527592390664604648687416710489264199126184315964273284244801896903407257607079832599774460111858510526908007622081895056948417062814873915178571821266007907876579549102209505463126319768631719041887790726451242403744010652304825945866533558555269524059305803547533142357742954862267196211933692516396205726816651546775692646193783387078664344296665327602981977464111974969663333265010161984918026289119917160848830349248495168843286575654490854579381436726291774626636505284246153634834243200247871925369710967799465439653548957882676371352942324689824444090307195229412782817358354114850507064073873108253654470072805426875508029794994100731104014738076695392661281680066412159601269387478069012711023285473641273675852634513964610403254524449072530862242473316899180113664305968859076280670116636171616122908226517572840684429831250947871920169595504105648913643269667517069947515778960222897592467734554749327753292683984980417087352377925418854925200328798493640463803456537757455905850369950881294431567020156993540170563437222824712905755026787202500313531372572993810835618725759199638195355298356668469973152275400395844717574011981884231970668384907417103110098563812154184727202422532063756039788240027723891361024912025009155493191566724591276705397157215052091217166236983047626985542640331310575575827102620089086858956443113863312318363090862045695641232640082711326754823876008601867906451725914521500555511173170294431703659428351461689075385361062924002442243060359125054667277475811939677282638744368577625348126464899079093057687539571826953781751704439113381963164052799827837723508174094386521040865412251741654800221165177338692266331375180499512955091402009091506048411500444291223450293851613604083919633572323727499684180512086804435992425287526699303995437432178803645574328378580571943859895357392789141136209595330009967788535706217828069541718428999324249667696754256306837848571362513783673215959336942324579252545849817951850244084431914577170206332423239628578381673054876649263415981089509685065310104431868745378049679897482834664084233203789536928722017127374249237971739076206380984742045852005825294478208980985947367905767900895263873589358109318710823780834851592883838228938815772426940644785591360879103245194712886907864262001998992216001502900086138277140040624443743939393064368807824057217387768490186379269604429049716955525128157991061021027341317848952279955505098018303162692424593430607792159757375780426168318755163603407563870431316702440358664049651995549186054797807208056736447309201645334343184434373643487128693038161343066584900408504403174806524151379107543055027613714754210497359746201085766783981457736907388002901933406963604235666467294777798046994296068295039152984402037109555937780306299798955948866580338659741076232499760266944789341004633291204075483929836415113516615447379381566317050367655184746590694467101784719903175515550405545633242741533295289282339964919008135282068325238959131457889233057445141504027764138219054933957502434574428396976923915376666004993488462986248029102955703908927307388803786303304306711136230657405057565130839167735267716120818829934782932188004491137887912407339968457751469618303094083852885533440758001008402048579718682091145798116638167152242799974300040850421906609883445107547596917438303069583530396983929277239638892486326885314499585704377976673046332978989877813209041549932526726693360715497990871222416294391843724914442231990911950349961882561261135313713185375060255457689919765033713110230180520363894253110894633237616960908985435685419370284606544652367021491429290747960256103788898491371611484583384832654730097645240170659568246917717774867281976850926793404208540049299771642275577711910178119146513476743986620047250766834122538704120618161535598285951643088975627895728354325959926459960167884017164777347845890601892884726095813204627785971345900446383169117239664093940647804431156466892324876480138067361155566882589576998901714758323228337262301102470787959437762605010786831548895170478594056599160642495525878327801746526166770161744409999517875035531432373112855870173624741316808259922463122840726176155730412483441179538162755519223955623585944357066547395472636149702910177847836615099461314587776349730957187704697424128860898594612935975897111770556256091599408330639574894889103650145896456653506456032031706336937040146592247127360018619672284397741204051656969345561412940679478239366485979064450809375322429669194211619673368642377892068520821339673015415539333214889335414855930418054755970592609741074118732309111631573182794106737590493262046305901502757005162352652954964544674141698232664292808903891983790956676703875097407910475652810767518099312668493521044964898823375194053671783397175900316306698603044407187055844249411549131922193202994289554865261374883427012082089339140202454081142889853456094570883845239381271655509049305050589876833117645844934694421485988040916418281208128932738368418470974324162483287686539675894273694171824098075969769603151349482028454141381028633202169427881441218942809598154859171138195941022937351569216412284165850231469721916892795119760382174523971704378816468063728354335161810363127552032947218277341997121873580924976810397262506744805505923332580709753426717634634824941037213310192036625430830138572005077245833080746174813408559996912066184146644146704730336545609587135609949321586943519170061717141159055608713357013799186440785984811205725328345856718125033207971640954970254275169326485536956781324734364380752257818278623424030151298338827837055898230705115879218060941361728227977126611084289653815533310623847538933064525939602974123534562819636664210122702814187614497415002238504032986200239324452148152407645353988276891092917141866367061877890562028270087597411048507781967574801301981053971318962307116842257990679058131036619785296361676587706601941262286987088295402570711728984488361841631231980504565999945354046369238075784860005911986480079094673793943531982541973211098744210521534657958192706537692529237642693607761316038127972458237893409413227819590624259301671018178578762620158917815349163580296434396824716395990231739345785055889567769229918254748278807573139734575082114418791930868343815985960246095272792888725694689460410818302090369315082550649335173057567444246945831722629057422579775201720802368222532447118409610486092001010374149991835823372479122352006462741001177756094215647383246759372297774966794895405800035254386830679449264012882046239314937397050244529278413585398683480067133771723740183348495705641658559211186046797185140667422806279103160190039631100479064896240006814222452334932458630458611981829975210346411053826561122032952002019282565309374096152314376744537491318272892722904229665146852557194314858499591934016802204429904511156509233690773431712608599496958323042779753945178676030391441189808468166551960191106828684964528798873830838915415280759085976863075442790844912714914377041487527950514264773055798430708937009843865414961503611637582662236495756669390564463930050094008103461426674674572539684887264982961405354478621167930809127219854942902934784422423327148349440636352230766168386091931563688920051554227010784048814168479339558316196342040907954846405945043383958055808641517958745252048026951259272035717235956111184236874786041666906377255010731297825138564031418781833487164609046155552487505744844692922162144302377067226323638291250591258326014451282414978817300438691331465569917479388746005882553101245606393865119049309796755508118131773692247814784136054356110679042447518442144282520121213661277423906363034993549991045235298032156079889263622100497554462758664329391970477754650357498497981697729370509784991737657849298259930963727825538325941857224028815767540952417429757857500230018280956783398906724107816198179709703090748584330184339922807313086576481282064932070924211752843594190685382570839628998570784876844624398810026232107242708174292205277323522848485397424843508662026335232109850911436381251097010284154238836435831588491399711908737664618173068447104554426996398194086832840054024449261443449323964279107033424052215369189789738756243102818028519790395242670843694453553953939313170397898528645482510076496973940330047377266176193468593576426431365816732881145845145157652673018390705368799845342327756860293371629456039992124032410905589488663080731077709510960490184935215278272610751821529411663239238108331220717158593048877299499010298789773201093914809543036013252771444864027812346904167465533915276399641092053377384635976983666739173036059143390101120380662944204871367134619733290038876767493246067317506124373710561825980846531479877626190417049813415964121744920357588532380949737143358554090523539466476348547126938522849948292703291608120957068518627409796683362234695277664970249360640204689223446314554892475136891607916430757603726864019686689776142550583677095911183369401654895595725658226733981579591003608673650374753004930631225222670132241324748052450165089759772705350859969537942723939278897138489768284345216874493924377805917817317337765981559478913910347123062427606454437553270930094415209076576608363965342194089376463586605525739853418575742891599940864551601639792876007799984423634124514187524804854355867519775248523459719413988909406129098006383958654782047151390271377535836227277534782028814929052717688390526190743740084232445282839143552792633330260172425196811922048390894050400573168987793552605216373382446914762472345064463503902648981865222362731030284797504563501374456135144448700517569546453112105988547139318309236795165760207147890600898378993944556892787484157158173303406668635867181865592405898693518628663940340114607845238036041268205064963849215413252935038043822071362334219829281983852751859384139737069090979400705530616537989805253119673923630781468058099188336326822750334310302245096272948656024031427084048992799816287177388167769792677795179288435093060481223467585060931918698491734147448884075594617464473165284881012311313943768790221204347457636302495954423652952201506441149860185623146328673138436691697680813474539584671868755184042250331482869510872140086214041207247604468233772344592735339299717567302712243042668241344637788026040709422111648004358096399518429084337837580422934348004260460053713221080528256588789825868665515422994114383691890016193965614518849198903904451817850726604934521976621800159654822404391918342249988548450730451537234203855463258237100287637687449724824157372115483923273203709071557585199755780190052178741598006370713887807444596676178849316933996270839272612546840003787775429796153816877562831574507022857680778076933875650591917896007478258490272853266729186060285281443317672411089839992179229429012412934414582977320746261422419870245635825888617140014986436071174172806396533179565598770915117950162717800501718723269346872114574992542061298996521000984286249473454483563793090663484749127140154502522024337733475772593097218886060151798689997903384641238185483735589929092335167258739246523375238461975989904605123798590507386065546735219758446013113113684579531344630484165050481587108326586701480806588008139495616360798745621107099669508489964248574159932867461126475052467883450874633810589114281311746109252220231355724197021530166710424702696470000697954163729865983956449173581245097942159599726905996871107194776917484003947771469141530506621403977272859213304984329417982288987486551129151666431174708157439189509226730244987040320348426415933457566940132167241404273008775966064528878835534334989751062821898398739039343215647188639250104843608779063551288659075264010764807975322345629140670782982810000392696098945444874656586986918518395862030304316194409221205829128985799298646684618349971074399697417118749716029138439093026655465316627091718922809110210407050562368865964644742478054144339078633698346937992045031621625487216699385202107124659929492906252203845094901797300938898096551774202670947329671127846140912302048977035731382446912535267008661311089462676368776998241617839595482286524675176988082209529348577798745308640041003386238428687365068280583890929684177753144873130395629749111222827567976493696123486638408701223822577101221514233156128079650806917771397275553030817434211093037405375897908559311282072506630891179238945042419284290091700459979432534471050942532380318506493555233704975852768881393715369667101783538167087849979662400957383752242313504390590498649507152237423258789410350638137312375488518668338706927433814762742423286596603657640577002440583920151885177302990236649407306165712202732819343525970067693316098878760886871907402726922713854155916675298455829850577099359161032058167218860360453812928722290620678772109964833492536485545751392116521387908891768373856702268947764263526018118025376753078136687548052869463210398895045836505284510064133393585450334974176752994751799232263973712039062802833086205376650184506561352379104125564350555524505891621876866544438959293214078599515527474755412985101080082910918595354170105049518252446257849700846274963378027956983939925911916863266962553982140779242685462413378472911355483143326501545869250632585983962359569348389645935170872235479385778481579571388136488639049079778081793462864107222418400846524732227901353691295925131986553802578893048977370358058887324347367049500676519583495318243276941535018116887900137464875752114766448459766077112236753876968931103016521124199571822568566973891868436485016438225577109153444046402864589479306190840224076220045631534575550003270019155270884486881871410277872520406755932512176228337419522509820625052414131692924070716612977250368599354982201175603535740872108513379920449200444317777927058201923521675870013699910021273422723364948376916793282408497076837216726711634822444274384709921424023627812488823107164311441452573267268360852805332829138901243944364572022470047185328121391012354845102658687424722008662217580951970709434535960892689820112998873250540665030204869248043120850817005422825139520300084890114711776716520061821674334083054451049865924112011980471985387416135106397099950744553179951359738253711302381715860952113364422074827638248064651962883890422641917962654546151658465961040463207938790889439249537892688980691132502360951605526850921099263613265746871668426203156146679565248325521668562343899387949264703808238562973738784430812704319209443914403662543645203109049156668834814002273867226858537533865395745937218528874136078701162417572127781086123740144453411131494632530638180092049179114567667302048639887574810072273535618411336334169878005612566790497070733317030191902186176069511335238030958860279336593878812086861032979565652112977907519497948579864435612697473261662454457761324710414912057436587279212778724698350905061617818821214979247176113125640184336884726814129680156690348489065411108876801052681904961210447979363395183175355898388576795450626233003422916642338132472791096061994172689468506913806933570341639836654440862151983699882756192349026687421879544037502215272725506589877483428257493638264996497465880570744998605330318833095757724944407333894972724663972139673008763927576840986022729603155352531464201438491556102885442502560646764829820019458007020857708701471506260052052341419552038352327114090016924418950997438816391222920120403157418522286612922479070663414938608100503788697895114235749606030840930281100483068556906093991247958050715289726297411194244110093624130693701826259811401924899591300931944789655288891294613663200374179733429544679500618950248833268787324272803348257580190158090780958155153390177154103823561150710177015205012383354317124212915173170900495658328942225350754705845496807480632741689512642758647040469908016801019601302768813509059772331280128231282763965830784553386506106410944648735404981009453616570992197173029237629901433044738669048323113958351610744104550908276866812390668842965087223516044081729952628965216436002341758794543026328387783658292605997892603580127701472427417407911024085797663590326016720907912239419282101712625297342899114825679854925547330264957364260956979930264802021013284492222028480120949068157594893368728682841168626772096277991458752952003982105261403632740025387082988505628159788773234816197845705450695678231781477624745935413765311010643439987152678421708512510791213693294237895672336571366450728568258429602269660598307287123785071312824017205362125991001846722763900395770441319933235813755556124897689566280102222113919387472352122279277013223869932622308060606065855283925229179032697065130618517161019850621263491918447651744558528242981566590810988807836559537690213726114879366310568647179215197391053101938046764101850505904402682686252880484746609669476782506967700287681853913335584677892853692859552668508690456979313208485160518104442978195343859807267574563908816425057410226158296990980594767489742181740752976896086625891550209636963704329676458651116759869681096654916395596933708325267774938937986261406927804260613845949211024696303631223244993434090457754440798591630112939697107109824801719709454626458883282833400661144520890274896980797301617868398878940057260516297422192537142589625800043204030940421974188321280494955333088840392886840086754672297689667673593087269142234808192520598416771328456688138428323512947823494376217761360721433089625061174426193183758586088819819536216780641241333463831331366921749279419591241561138373731742143628222296603604588078010993851896374488952069690135040211071398378576150133893868677706733754261070789700065864306842291926839208563824419922944817682815286018370579392911116179252132745467242309789856699963725143756451657215210540779439642253432247799721669812417509265636845531539332582482773285506100319060876173247755750235842881450643002345229806240918478402045218518083442514542711842531784024431422592408047569756447654921739852516506803614025774928838770336581379212949639666896789790951852033307669522971527666251235877948682093890360542179011995700877838028697642206741073506760184658885431610269951271538067652522790592114668527445001087738954922401414673181555069539226111374113977019665325237493453238537893316709948524740493696545061269861267129136319535508415377688845208541214777815846539954264278999733589745440924674131968371630768781203118040246018273541623800262168048216113249559965010658766600317565903789991054382873277117663249259929870642433264608349395485387506502291250427154204223560783667604884497040963579536390241069059596884327344922131625739712790364607083605371464225866534212158539098064000451466511030683396217825105285983764361554503941438041691855413970062975058642683172466420963039465918605730817269434773533721788118276880186391997677656854000227140476963443166396812592606061029837873066077853618070864308622040359622744679283756012897584177281840190768515372978469401842015544396317174195788907844701757678087861641144599395266336636078214976413517289194093202194457298939601470528728143287761310254825346839779745870911771000243070066856420310737689068583361465152198006931463668040619628803045017474112701904935208858240220544409006749169556633912680612977793235370968007445110503889133067245232463584221449922324382247461767352020827975151709052382231879797527507813039304707705577768348859711078842189621860699511728575971188692175997103452331464005695394080317203085718434478216481659438208309528951379238857071215324798061893153729580223982686612852801070903154336717994471507623016640088763062668461458611360343890920520835520937944822888582337025265460142708854737102380091754157364977164311745258864021199925565121851022962376500847718464056003712266769630031312012834429706623519503662776364451112446003217522374557695188278797068837199370054038833682523460781175806240635805539389266035077517216647889161596446436321435761801431654239026180708626662912692215562418817860131979053370339388451925088805031519109166293641515782306952943754086681874074386059289845095976257119419153981907504623244164289173795031129323391930243073002016788855166020401580429980696984497901941684216456948592447630925033555370365335780172320654850666942729213816822174736564646110673708358203470758745053326693159375549713169780329890325334785514443008494129188891632144184428207023797745700601492113055416161216960871626311170947296724044493944995388698708182621224479130471744852818494203266923522221953943252700462295354132475245673241658715692452466851701050526567014443064730711840890905252315116388731621155354537182555064845144199954405184281408432391242876719363702951022800740294919772413016340492703418198223202927883682411897954659923475893517841174516352178150246516895137462140906755965332255954200006414811471815448981146194397776199561464463361808658492453858764292637241451095967017725495650020646260164033399290416813297865076491889704371567697221570944114375640012864809900524766920115994823916789489046306911397737123087985208443890867441503916618668150681078505149440936307355182004384860462284114266602447359997686635354360508443825089631784266483678528861111334052015566946469126638169170516550822118213937428438455325856391440239602224942300620936813443483331208159217462272132423541079471169527095930374269518341839131572395486995588386213976837397154452965442128727364937438492368815567464507982101028137546538009099967993791309422127881181332282142111769767196226811827831836687736295162478140210318336170903493007311065582247836647089078232924011304843023114686642723865134620187842227195765914875129134537465913222467184108869297838796421168948187628477757687437547690290224032712551118637793449145896563536323834174429049328346467889427805946758407529852809276590320212268615261035862337664901005633234890601016656642995250989221642608586071671323806108362882489723022747166982501088715182661749231573933351244888080293385618160423716056454139568660670817469535087398975757850645796079380502896829348084300574454911214043052100162242625900150460002387054578412345388357948051011845769973461452557913281804131002406145999503537975173587777920653825493382989885186193826606521402041452921148297508177816915916750513469331693557843271050792556397207857384718467770048071810453831680165458124365587022599833753336929261610286174584373573236116594845290655308957286069987544626668108371540364535293017706258635897150927563764455039328535689854985082313781395144079198434875582504732836144596641575231683982636770639315484908888960205906427191541062997608072534967151206635726368605412323732691597709263500145359917194282738204458069072808642817461565552252465431218846841852263866775802064760563259851290030317534423773170627883910052626855288368581185699339034282215576555713115260140886972135028523727761095194276367566495843363477408637377873212133660372518255368543364766804273786663928380809856571504261322438103183863744659455505073176809468058594447948519005226195048613622428774306526525964062386187260485804798634771000743364911978709681931303856407009378631592881738857491961118257582303512313368408178999854474143370884734514003054084959018122925868784482051527793763498844322064059128918047209335949730259299105073020912334761794053122672753463091529081168343004140993009372341395125422698777976445486477454068333265341532797057587746617932174615014936972722834248084553569581033160088790209119206180391884162715585133282265191187914214668313949139430569084151809687569374296365303257221676164868934041926610183537805990381190893435270466375816382820447843668697683744092451366578223465083105060129164551370329318869962752918058415860545451796130384851332547244996864953143008615984552964591192802753682787784695730142298108909602995746703742726063962273053859499785350651247255891089723857728393847547441102205767824181683067725593411246540227463848757537353773508196676270109605387883031841566729299232959740119057319122310704771198219782872642555719049709576811476096014633247556627276682999509391377974472813366727135584883690296867749342615711229920396575045359487319409786272390930110220500150828624184005863277025272417837646876480009788848830706644216818752022905808036105164715857587688273576421221528472335134095777946326969949407329266946675294476702808387526043539335577545970329616151226175019220594062497088452580036817361416962922324310317308244997628906433960881310033644267779025275587741668602430797408622861493384455682225172112320649913945638189947271846255505194310284756666405611716876192642439790300636028416828405585734395686651436726196371981393925636578088795386857168772439832752129973264869371288796748780229423409064075507512394331905006405506215574980800712445020877641477784048395316143912745671859621247400789352421118397219518485449392579132813374662348805269470615755683516422257971036747111802147439271051012297200515981876539052237117696017616434543964861440102421972704962061772955884290912583594053074548194262149162209784024804895995191356032226262853080392569427803704649220748719498002476475027423131497063777503209259972343989253114340065891899193942669835258851633740326364033683621247857261987787737425337821411546789278928508985115652035551025150668465975493454530885925844476687491059457850412841239937243403330927427172400263672048597534965629730141529270594402152613821111383243266789543060101627879958008824663285657865058476863988384575961272368411592766240121609246113155037124746875562781670200633777236131050005387182163273984438793931197564438555411105347397556697165346045335484574474179661737475049319240392857319308301285256763206528058936734181026561803418603503274152289771203111310963854790433592887445026762864510325154851594696112137312728372263790423500360665140694930022550148322855181451979935484677015267234053675905421483320759167631101027317878643731216111063179039926244900230588238566595436164965747093660277505385625984144976361482745969632286631228549527428453629792840282904243482915510143563395068552132746040677396316733521249279224545970943781001958408783070373739679050856452227016636592694820804363732209816102859165236497878478273616131683687168648051870650227810302788514493136976884872853739932748624411269290977952705184494301189816725619308908744484390470916963126286038223008060202395643468912393220902643152551514870306711753860149623042824093886444989774536857598635396237282297784570932811904625574834838685121349863569126553254232488450306376751978442447768426128000657745556838491427093466055907478958098668480958325892664884608403008011296129646001201444925569011320484516149848380299553924016438169915633675018003577781909886846661050812732370475457800917165704642671332593243988172307064281352387477373741134695076106846016671174044345172744915724270637474108123650478086795347308436264118357498531625853864413529498475498835970544500658591163325826223522254919321027420572871479918730128369452172096315992054189461963510376134730622504204161804964349592434404994557652674843141455278683784297857679137742409230204793122655175852045725866523348461068805774691417311187430701988726373895899423956741250109066799179162129528908172925341802314045254727913448513718490816279027177078763145987807088602340807707577171496562660343123463901403888548554262624215746950385648652984843156704219231973739607892771758035432091931619713586282546060891547781699799832129605848461051548323557343999760084921079888517964845586893427463948711809479464872876101110066777913323262386224585580247868496001094837871574139582519763653511470328897545563892625547794787976027013384623590087601742803542665884306186460530736468018844367014210113255475137336412520085051348911447676490685764761071836337084582251742081539528037615666565506675918825228516235888650406481039276349306708905243766231377336430962841636097687596675692612475317476356651843122899388903537478717929354793470580916536170356593706733333342039820632245739575562257176784919917499009747183813237297663504278898984692994466106712812261330108082915777683552031854956232848734542529950929279650757602286681135747290512806088393079192438053988218514135911529960652925932780043451947941277221326274918185278668364912729527983515317217500086268790928297414191951444636765221230835523968166343307804745003695797156138338586462347313558114535480646598559471370547464044013041961772654376709463102976029582122584942185079957556732212465026430569768579844563470373233107659496712413652206354041475008752485784377347914154540573288128833905440251007874689217517488131673419124792698482572304686993564189709354500453943792916850726215225491544973105812913308879645809864049244977759467102854251356711020699046286172222586314353960282250534529261570386503613919157853567062347216024813082346109028438947670701577065488353170547605419751949079390960520322107305048300972032550006598101087356209808665293307459476116677136997947812212384067574088676663674639279467578836364728124136782220535204829644465929700471006029664621631575026465164155611535711671420205874293151590805591383328468702803610342386492444972593391096361670672037110599982887183297704284587824168238241714544314847553988642521098269910713127602505000047413480019211779424040462593217361855567279776303324337244798566363400096044626681083846035287994121165935121996258042132488956218443056930301115879864772019230924430286396455738647433953173982022499182638993306418389225852532152765945344738490894092185762289058817425056395733700421564217097269067369113412581911553638798464855629662333284880879027779020315320872098558595193657523721604238910990866482559767309611946661460867373673939993100417785125037123478161549950577021726820473020117018444152680789057171238453763749595351072852626383265080468093837621589209997559692902551089512995738623925531820119744112269405103982088703001508311112470499394748165150380091008245903436984305543649110902260702102605181519667119306016822660152290177217759312882755414839305471579097765653330328617727729088754807129770004055187875932526971244901346146617453376087941083542569161139541071333389498295949468351317134205277447669633319648116727823080363416214892945563147258133646572799575102012112037684008084930313412972748378540686446833039806039727299252245079246341156139457474838030402994605103289271650020313551755427169154409208894576940732532584011426758873050715155451931181664433838373369763762804820034926222078474059844382488965678339465279972936071021384144843867347685342679335443316389577254775912027569842143029237956315873946483277015605590945308150720569783446559478404424884042518432697658621372599221621868558228955544211909809097142214373089261436167413263389530305050445865648066223491327733327295581740989792735504315696137209834958167733682112291373371518904135239992593424652599649285967859517660947986300365052830349011133793266117955496289303245604417023477895975703087022319536729285439409453195915497300747594405492013581928047006455503590786148081408092465611032725403615775034695087917122124944736510451534437165467379229779183776683935709563260024505387521456370866104132401771864351803356461490822845782438318434679129036696104286014769884701386651401160203909688815377322689107945162332370982395147253377868571622380790213835505789860755123683746733868408377467691398172958888249038321457438235920803394343416376505671484408930954103548989186558027249118289070104525916174619834260934299063906907964949937239506235371495477528692428803485593321511173214988122643620071534199104230602685996435646455467929125411291758846711699243275875951749060640120208882691805897479938919628126033930051375835491415607382325925481318395649882149659741920260627128612952942626321265927233090047507688167864214583728383903267878024902134184928981329277175823806793282032642240847571619768782955862065236419542753944938782531183901900992987381718023059309042098974496334406003339208981873216321531436820745837958609299406681352226639481312352807494591915997805909920604941124314090158076355277200545479334603170004453720159190503877558083459003775616206829290460464873509674651181327662234515094313744634479422041287000920557149668928290765351700355752408875207716277766805870498089727453120303669395073070186148906794415434890302999753968814926600235309494559904999537989195074438174170990794482171257373732654745245792990016085998540873016605650301208428713448630705209499322156491271815860364146965153177553397416965109559362486152431797803075920140423384437704711997556691621636534105105575539208578010565551091323516017815050460823264347037290761224266329446665706072004817243665791383844068055865085813517456093925600045764057090213831044423765465955030778158766141615640211072524523827314934398061564214157585165297909274432772904780460798262295198114342383987673192239343188381405950281059192150350516893348069987286960597629395206571976487919537901507412366425187563547250426129229097889005475700588925050487901600190507117154578144474813781762546630658906150067463586249773852864009781021166371505937445369513969449292726026962767262838836333586060105064192782586843360961106113498188450853026666021024657429993897558163061851530112586818070423172640231185207005709173982039429342033268417091254820133913420220746682620325432754051694859677262362692728365511119730341179531755493609717435482218523623697769273333637090250345087746911678989078239145067032900389935122891241437826708059462853639854101192420728853899295149422601541583426761447474499168051061864669367581842532880861990891619220931789995225903947187574035119173397164715855039714529644382251536883519274571789104758078928054792504952824596469137326311864844508175166008820250947591225721956239969886585726452213067669805435100113558234202665687610317180724080806897169711812127735472844287595332034902667392741643850059893363582985733485263872328208713715183039168077888625592128851075237344517890949420229672786956469875237636810232730046059097791388512771263121899660603747945071350341891379922485546806014817017865679826820270126796076070473779091490968765203526462002279753298866178579457235126630726843316138706303940250227656764534692979488870847149211494648514834271595827773569880280087192587822979959898005774853376237437984698612447568726760411217980866455281068484252426723250966932368894249408299437618650999917612780982276153989052724228236206681463719430134385735881245056268912408126719814591127167598732530059561451076377387954598542703382309111063021885410151990532481625026177879821037997950505006640960116777614183714523472244570285123226523047364305986634307303794042963200173236699861569794637261442576140794650845326211967879964856207173522167757330649147018199565778973866078927420108458084174457806075107170185328980739261888962651241827619155326683543022951909908096323576248113305752618050357482902256288598459931295820613698206015180470348380898454545895847123344502940211931234660542583370943920797282048876899066766550855752819585680551606545482237087055879372996228752741354078194262483193733183474727205509928609110206958322450026577210415356933839936253211928362861750710473754929876475359743748622003851261023575578144993678917667439674257416343545708716406286357745897117639397050018129858073727363459948982539609393579106281744398801873523426145420063174416039271114459532811810886666437560887459344961977741244855615205913706365336497412244749546706576554164025124871859596204197562199955072101048768529550232187858505156012239909946118978357434946744777590757244952512913325806648568846569591561799980657590424232998175632068891755341608122770365607776246514031975743872356527589786426613446433426553848970223654157263467621350012191458885242449633715504447917211285341382095144472398844563856072094762863228314027174314635153573053452220647248589490347015316130490988404826327623463193966470041370069072183644056672232525077823316074668253550547470988945542261056197054656970702821251714669028295113060653333119914723662364999405764132402050973394575910604934425798487063021879192759796834948059021508383141006929444491298634620687029492965105086542244500893518438978044019765688324456181915587180652450670806053496262875826938262400343080544375408085868884130813127259197229456878357973607944638443923460758892219696032145230331429079848657451763539069009458006841152610952203930562089421647766883185345809780406412266318320300819142574132318994616459589705399017370375258124878246998352253421007297737767345446033733309217922320426473405253528528348749714761367949450359626043371865229213006120307888549002504840032775477472690694037645259709583005442461858992585046583443204393216786241360867825944759831458891999923174063476428476285034337551723637289459481644802499513114758458241365819885089411131794197019947791426527114951622564800620623999386161611902976015904894143393469637671943482876746731701868935078267017482383778566036978129007744174894013643408022019599773393785560393519287582217912741186684787157443023275668319398779864938980910647554170366644000222362591821416977430814101364825479175006863503253538025486204053716000816631774571441400036942001468219527187025041090843500238495904917508485976060047911246197039193045585964434955404523809860953939050513469625639268259778138743997086625990640921327610543669593844984922941340889457846509347635654635095228723946090831256759267247868594446674080595719001000813178836490351109808169575228851212322645961114118674814859292123144407071950600035029205390894335124344562408193622456240339830658117268554787991699933836670037177117162911906069623360767759844179704463493425926213259548578922523156046960112836592666705277559010018399302780699392444485930059150601453000801993040507359230290030183322237407709809573572908272026792954643325529108106364627237619707779771100300212836098980556703613990567174373899319440605045455640613345065131237708043767509239180593832136572691461163162624640642222582627429729776691186287408301359227110339371521678039028776607440903323587122590173363196084273083542493089730835770308345715549405238857615956058827808319455826472732996959193922754141852568017799796886028263305203960654502249807319073804757306636899295058180550046353563899942831648731885794205383060358398066588172216713004694594465375634496337709746502741064087639583295819147064310044586673828955063458975560989113247027051898967435908273935018047349846283016986838590126887084199170030257440236375247240378564934014680921319110772377105691881684708052473488851489699471832465443587094952251754769626992964923842560879588284440170859813539800484500133866724042808344474445571722478780223589852325988543993381898655136969989999193641202698178032741877715334075450881789835735620894646386266905092904093316781901122513600418639892999798311034854685272358215230715188358877873146063440013697312975550178522862273804738842719381323848526736608043724482965865309185511234774309777464621467387355461215751984167032186551084297327014765102790025585641464519971890181371366820796972407448535128155986474740551979735191675612750158287260387239580633096186626790546149419227749384591426432068914077018460179392737426331399619473182633982963268181375557668396979829703918916254677864529604111326227002486245288768451321548047240896242030298838454219865351499505363955444625903480599179025101400581059518380406276938643876766617021398026849143186239521419872358451081624904607539389989104339190624545532498760172841456351340830753594872086153008229275757187891591455077431567854059661733122730878886446497685750472348118042668732598007745905160200197082929676747192714672745565563764044720941999590813872682160267542183288656188976019056309130390404296102877130391090102993591827225419341469927828058339729041661936868167298701370162871001555577331971036432451981080206524403129636831749022198928908234670503109188122094085883659059328744664251257958944125502438576973381098313859615357322583558042169475981605593737381239743163723593963185903550217826430232259029871920729987410081415671250021306615085709964604587303410644167125242245411708150514714288004905112996081111764555370951248086396397116592865864688356612981085865026459146240109827031350830921313202296233751015800488549398287184719458047786800717559469786099174463772403110722405009668699656524905626516636780277187549906519531325927106700585521223984437038013300103751328902646228689977025103621762470004904655856791072147977446151748192990557914976105307203553867135292360113648092905347158870350981767553946004837484500838443673740213575158676519383265990092518436601193621887608202594258462534038470295589908296242489839410094423281596914608215415545276142347119625862273225862800577532881900554412120705071300672711559163126113814431748825835307636398770891711238458674081116223859615561377170458750758732434512063227375510361868953669115681223244463848209564760558073158874485331201768004918266843559955367893974380437006075759422491651670467356511785794659300557998252501384313559336650380976460840778300095972875221889114398237118031106818549620085285043709605707308303980606538302262882569595965335748416358854405293355476557555489752122248703889963657784374361071497791633811053940250273012530050184151050595321697100397957522698114201489595298997114401196511605778118300356502594989899686951462188447947653458846233421989258893443541600753781168173309612576106156128901271847149712541855319881258969144383888246522928183986093269341827504057118500330389907018863341411948621817148073271023896153327533129594529023141565402385680580832552081594806782401918600081072415799755432387625312269093289196857093085202073556534506711056410863412463634261295632072535519848320894362906026521192083305213257426165626808061849501207615760878482295206010299535001143486966681413485639096123393318269587770996397303016791822723681665329296810324216190251589113929523542834845327515888501662555134943332298105465273484139092837487654531032546263046042384813994296941957923397340256588757065472696494716737492315004868035371692557915847651270696079836241875133852868336372582489024028027236185017704411822942330652647486068703454563243171235504333732487174722418903361748923684712559219170098781561327577737966224523722596180664355655162840055399895059377612217782889898634558058247131520787874522088236791787070816472919940127338579017695063231207462167720301415225524969779843259980595917592702442802956428650217169558656275062971125052631042332545348143254126004494702704316798607079319382206519154959550073841634218947213096919572603207382052636898823600891675298559660032664581700988953291374958489520111021592069199007377865941507019002726234487836812811248131440744890332415360870050033621405482905151998299727932763624949777243785132549036532482725702371903927424902114648621093944834266033516904997949900472647705794062241814714863916489543610644485984078700848277996250257368351794473162961244490507911368445285459583231771341649399326041569085653107801954753793751991951174918679083947180358815610625468737258334915333552994871858403440369151243412446611434729023617191783067141158510310316151386989006802277684901482322613377438780161876420183223423850522953530309556003564183602704830549054125012614350957604475629673754438249527597306506951212176364557919260218658540003586105913918553164462965916889424541251195986896227716668759086399198753769189800459420972305869642613102829856216827678360610722603061117205609646952549163625913843981448146455953698821463882438357303857993938921181780279555217518519961428734033784865192007253486196370752185176163852056780495875727236293805921379683101242221456834540635092107568723191305927753055694881419636293812828637582538192098675070200217551191443569596366233259637264782001009107348511590180812837496571220576161627201540396905799557105224125911904030012026043142109230292917697653620082950932130795677394185596982191055478085949582630505437218385973880568679761742710354555130881787705074893218447848623968722116791068616933783654441966240882212312029059046885837667730882233361611967645822760180582891539028434615624846216745657705207687836155883765886997429004189358969171522296631009941070108817814173422700111106610821150383363414712390577967372273066770514986499627034266413331754875722368927352965205482024063369147071502821616809095898792843568511574515116117506537633925768940378076612997918902860934781541836179384939068375613490622852107610220476664497113490566145553796176564568184409926272620159198675948357488111393962882911378005346054995580107868437033186800889429785996012332924857537163906982442572344461088502797374539668962104380260408607708978026985241887148784402689335240163876189244493840201441656591267739396962539335916693494238842210196992132326426534795100406066704350159967088037090231511466246168012561860717455637700111190517340559837858041851088610032024576014149862536297016127788639469266183385151477991713756606505630371673160359838735724236592578126864651740781055540708636363812279191379173615042346830941479071755162812149740579508275157649130878958396480275962512422437446534005607414115114838183825494391868553733540449848584265683589772926766032718698239470466142666551352763587509571518760385244320256303665665547372770663915951444833684293073691480052187332690156768942035202578337873704791406378506460200052522823424398593547688430178051776199262962482039608528667347512813935600701942965712775956365046512075871553718563634693654685544768752089991800806810720751697554425433622812299960551566282361499644172980051241448134870432000917505169273298954990690148476411195557293935438047843663079217616464424644348142204196398291390794256989899268524278720078620942699193743347851565854047031949039482193826175322437103654143236706948926700106219851967094336022708518176841486829422303682086250704369378210652165608382144096248201958880191360859417314856121158241854929390855104364170756855334149831841215162816605426803230379364582309606950008817314435379648464255256962352698821968340590315141194199792468394649442816842096826036560328065869462671789781066106066792114304157971836418129675956290904698085124186065926288639551226847269605793166236528461885791338462893260246627737823193848786623456448197397315966628228417420812497874501633497622201785119254666103343898153965973707312094476869531233771606395543601250863924667484829023374020741219533946136045093152768555474321020534609668043900302233884842489056412815227612155192299620845501055865670778305683342377079675082287656949998179078185472763198351583245271909536329472159990754206203157934349945877646699026392281216171911727381347652093127183363014629129876859634679065135665150117205933143750867386240188496115250422353368551682722166341803566104287703463811273155739545359925947611197904378038058652732986054888591927783670560456815004066123981245212780742692150176854436467146012294329006692367872704720419322202318071735046958908151266993297924112252064178514663032995879579169741586662560197965997801385087091138064014253031335785527291223014797694627870917279053152319614806689590209828142418468094294844466560878158071094486668154245792606054365366646353149562388372711142577265090474298650477484122804135858475207453166090715363272118095627141585276917264706224680035353526722973624811998827845262730176662190752036010489447328759898830662800195312265994193815871619622590075007618042313841169668213385403470700892381238434079080060715386907009700701793097779921804674906892436387477204773002939496019005477813190605302481064750372638280029056489977657963612359194510141025842457487185196888339061330323078808761131685089094322868649361989141479087305638253951189295371155252490708806902446283497918171577380933333267728985771939005758220110140736039208197020431102239987642327180436219956294209111520472441083938670066154958813170819822357152907939918622024094705297639647839983189643437266883146567717765528919459867155061067111926302588011121807111236204421302350067436703850536430178223199695666082264109232410980630101607427885994049477778738601692839590109145791888404163729101506535685985481097199477098137429014161386584376486139807783600740186062479008156112292865818189339023353960445088052611280875741235174358737587602249074818394674804319804077585357681436212802168572764910967201213499219747502134551175050692512589543674803048296567306675929979930148805222573898393296795101233083055341312068610883808934590297890705882234688899406516591311372815597359954153053608307557154935504133030563852820022774143462610081353873006377546494578507994529307514690328504449875912134031550196608798228490849102412485667908863933099357072673970906503455859316041560418216934448920313537974622107162052553176194493030590339646886874493501699102959321900817399849139176725097803515823995441483056808477934264595293348928015979154607771637309280500856843436421014832621145897238187834176226322768451487692207486528812947373571905244358308953295109679421900045932599680911833268030875152363557058880794782552239788138935779483097688892568712244477211631818537620602431952718304291716254663160167119912160037550274772401017063590201837303213314959503723506318844803228626096320531272657794699382603292519767529534542742496630002957576963794947720062827428382772375318897018877177453216562575211715046502687779550742225042736622390673086972784738073774714413822340565003768723497318920437236627845605301586582359135707999297188364910660595645883546718414208947482391985614401249445177512079648929033064890839743517440350473152394564322231855392444726389591784408518059078859325380319839271039830000033597367590845394748766672789748988703123197945432097223412316118563553638009443211384376400200227366984052224466417279033525549895645467698240513764700072175775885537417006859119294494160998243421954509457856776580823673721437483313155982881720128752645497305306155302162666579293066764127790074576359172493135872816483627580873083653288199934457719719246581701650932891219210809645063108874823227520839873239127862243286424948643481682784932321316019445897218950351385269336506358116920915287178308753326696497172478358653393341418882330289684544796192492313309755514661226498080787079229394194444969261334755821604324879802849011960747318238210586855577393172583278214605212345880323215225022675241757955273653632890805797012123704247309454726755401486657126664368614996293260440225695975211432444407874191363364763614800276222424913575167770391826666096568686650722735126842566617039331721072734499007593458584242195730941598055176062309612883821807990829012404749563460837786793962076413666700725439808078389655613974420764739364370147956627582392059446772077934327690479695972192727593055094784570794482885154545312475364824234867818329631524153157335814918613725023145362326669417106680181628526929449751127421559927572915923953091692914462497508055295908869185196366397999491400310694545978347569874697313206660363093973742272083619085717875629784307952250278809770691006994531996077676556337702010354265679558256460548009182686888810949671052876649676004534232578744832769455920379774582862657474214914016004574144862281714081280843080928208938432821413361570017246380716758454553639437418163148356006756496560490803805461527504830325196284066912412466809830651554404825125697074041873916239873517039656097833007973848656677216153645288403570047062846013549602499866835708086495863380157528997018557187950616125746696647042009927975716988866928375994126798780500782458332117837865221495772005298725887049228946570179452204494886135041322083865555517680878958400585357040910857794765451799265240590538627408153862529960137953779847291699429038916604751484680029696052413488184188043333145539807037526295978059108329865554506096524753314964900116659026095613584068836204694810604059394091300785378013069199765760733113306348523310301683106666572267122028901585705110732078664133268232230891269830460344915574255078991254488463253407201693862403378486899432710647417472909740527946986044103377440003495359505026444407240153542859308358866855091280813808395589400527627369069013593851897864523699936412800835529201439991443142643117983777710600534945006780845165146615874243042166743704896182037516210644944142355735841181836101525740437166556811205420203532923102034907193960272882947466622901543163449079924183605305758641644460041277012211626691992282473272698850397549761231395368866068180708760001032122589250719581777523133149096132270525569080578002760664500823812562792289255541895661730672963254817860439462908107558659795609043373662670954667840931074696098315663261851399880748030179587520549988144331440976222901769428599826483039693718840852226061352793928002361561456747087663571260362228882345647332242055683121826075142848608104401736216168471400281349734748433789395500004531752379545383780845582534213887407789343848295311871389284672636014856936237450781691660313608970030147748194729196493810099500518711934232021091492627825468624768820450927793281048009690825510747773707812004515455883228986114279425986001362208799195806218316748673703542194226648439405724115234883512348150467743404605483423437971348997938701244760301942688444356502265267290325245125916154506664721266280742740066695472713168214159975190582162879767055704575782045459197723091869327485522538141961482083168989997085328044359362586263417411828898759677901783817481856627667058112921755356642484264951033752386447818834392257898170287504893592385720882122041435411976410421547644390185150572721015056623464942756088636640594182964487743689973181714485544672343466076545688951895224199501089642221625026220612464868089461935020016444823114781552479916354411923397683267536665957828346605417763278507990768289186672551072957220008500456640556906081409215728489547588217223512681319049145867653195599065722221226222162934662550103793948769121790051955327665812146724534003523280203404947875556928665980216287032663336163107321747433303917125967400945259155109523679239253810550064840364709755994563669383457030790450966105466178566578692870446494056291333430983195793686360081132289673890326735672500216260041870837508787137092231063955744112635369138577009119054977860276577901980647597838766189833936553312568022155488457721489137537725970271281225425117405374201797534106048016236189833763306849623670697920163098735045472235438908420932286261865927979286859800567875536165345270495533401424394329323075531262883119143377125027782901486912629173240308731477474780482397544117507339130610686687315475329428778550612252690474112399703146271882696028047490662583302552624053941106403526153732221754186919543612527924938568966215682652150197005547198379655032254637364767441750528185234761975086536526901543239437281235228982988355332319288647892079598793018731812102479891387830498682153024633483992258462697764578917048713305085685102596790501840183296369299173758856880906120051120176029048616248946061876246787968505365995814528397153907900737138884423128002171908894293736931253423615327889593661147255659687771145974425599346478352043607510814815300017381822945508618208258277321192229374258305060556039826889568926095018616326464480848665366770220625631163479256311537808889099334132310898866865537141297903857020175089101609590830684487913290457712019673485347521395922176975896908875708212752336495499437632216693642923657796863478905104523990625910591105735016925898284896959660855289555395729469994707929709493843144146105942245479823957813529399872912683477760544933363590773428838914894881574175281502469842960847067926224784009718929444531764444011052959949257521364215001114966473692484409271778368233280513553322199508339809886960715545568388904244063996826513513990210646147024743671821229173159337080318328150461682300289393249092413123233912737598271988939138185061681529668505999612448627621613502999305328719865875716842518415630818736608644799140015211553540917811326400271635932145663834244645761719921980028809412767209171231577574334108521658914586120552801751267867050560410695895428166217028305442452116405268580091003407806318563767145967451183951893693365333867973876661549837570281726551897425715280181922644189663553516253948708499592769602716672403513093547407483655300937771335278982654106335927359957536551737086428164491009097904298891327050513590742983075759170903538136785512956706275842042388890589384420482704544759877731448181487440907865796598206567713551463431375458687469885897297326812051718459852916460309863599070507166687042522783938652720357865596936801163078706828504772881316269586906719117669606189188176619505063805895443264117779782437120981217955389441160666061904677803370420593750260812506137832477242804977860787885930019809409227661088370854972966959549066703341393927991893639396362471334331909279285184822294000291517758637144313577243673539504975145357205095804297243065383074079235985240770012318414379358034715442631562141575416264851566711577458332617447423858862162075334514005859324710653906070962801737147609429334428597543547006318611177544952238174700285940021561417113932765584070554050335871373680956526407883207251716901391932285088892735788057204410416340151006598692306854141307978471981972404429839629542523690790890253062901319211822411491249123100713949407984880970195625059927002027390708979207872164397594151794604798198473025172716786782400644177368474786007967843398119534677122297385840238947136654201191184655487645841271874430611092131402833803464843566651555456753030422720095154180820579160465605536187722272483245632835473139511947159059122978199543259598649069711843917372184755413484395774088152026086660258112244983719856083208093825586391672055027068696576734920843467687018050008710458326376891704817987417232679443393232416018325318594466197677879810092414854341931143357367200257675096624331032638120446433576244796742318937059124298686725790363238219736325434930741769950199003866340319224178557191064107595514459265722261485299218856601635137587584577131956244797226309008682783066553285908734842386860026213710460439976850661019031254115848506395905433574593510526021066605534242917089434372498796278768049390054798688356680589614553019921220111812839233515711053915369785910571097048066717492598745104642353722264596192027729115072586630024496777218581490660954630139367202899329556707862412844972435179550768011192485559393796723109021008485934522587550853757963456778231471950872561820877760728701548835589026359349984394315025767360179626152411334356457125445480105750137763475898022020644397323562616966032396967442859809658225942953469257316114749755175060579894949904652430552600175017111429481988357968768362149512381193450614904481166751159425671316875608002993411801449304484090862072669751658520204605679752554352514424200571312076006929152676260372520353062646489881730475788053370879970081243259742350881511217600758713487421660979906969942714981699906852591740516595568024455973721440246504331059791741929499844652636165412096064939636941424479960281413018023210528161782907453016990352031211337494711434568316972144701865475887538360569559799017884095147175578985547896349236710154169024267664560638094991815350405280304161384992529067318017921635742384259968012873135893793406524922316851638569584198246469358688750393005134393145724430611499721220607181777714673588531458482349598366484147330389857518182281077167729021944766914853925599002128330835210546336071004435223022353822653836294885444671065726699826928155418883854296635887210894394064890498717556937058635910215183035857328984607515763245116911255065348103109353068412095630422332883699477304230467525166700556782911205183620731453832855786696227681805020503874195848518436099488974714436100649665341166749508602918507912438736606724420233593147321833329791409253473016131680210737581170309873862507762148161894864293101607484991692227653999389352501645251832271533420401583212029301727880693176403630950585039650285373549977399502996140531602522032199201693170672187822877002675285604441987754203802887967094776568836923396954908085033245597997246834553919034490799587735527090692428384954141788465975754103423919219522395231454895680736896765508336098298569898030549349319469871025769641639923542811590341648202737131103156608742054003744050742000493849100007318466656579444281181030899191044135067219209201591095021878102147114246258331168608859980106101869303073012419121099475676640583481783187584013552658833292756278313718920486774725654906971529595782378358970508824247243893530363993201067964393949837074283406741287058196229956985258931313002328096152343290744258174188602229015351567367867316002634826607320254330714312543295260372644219625943977786898218094373002706615192144418583080233638933903889183569118361127405960469741552053130249256568910955916218857733190574012108268826854564920893532104188717599788357930582952414225636825899819346937650560290192686630623721401448458738026887304367596906479578035146304248370988365476498123462760047937597286554896576611677667514849362811489176387710651973642374924904888558962230001164266563500154301051586709250835734529842242941224074958342382016249013908338300114201247501381035059295384824809215836174383770984795127084439508149791405990833098777134583129700913618975428673920957267360664347111794365784190546751286878646051292741946214477159910769980515256948489741657782930686707512741469550710114611482144479199632633255680282069786039372969648429920962804030093851293113354190262366478850040421479053575812858218465358043027394040968335355262107452774176811903769683398229750251529793448048145857535195399331759655929944231572290360875956524548662414097546790346944638006815460811310474299424197689592335118817492201916641315717509130555382635412765820931276786884882508093599801464254620892274623348020430774132836538111315113268394586217338853464425183827798577520156671004024021207990754602936896458338898292425173169029831821130682172685069673716458732844407745269904126860587164530968974910827874439247811732835126187116628501275521942374942493435419737606412719194270925184079267697508262797615092337274806553466175811636721182298818465219191847723704568484905477952628630885984037025061448380800666524030230101944660399661210064509830038875788340284573272964703679107561310587689288058370996484359432892888211402994770529355338616333122246108409973950260802232186836762172826599461840856588590746408449317035816177850932532726491475759720697513504560657769861512059515282096320154777590896716538490421966015080089646983623239246467564789452500149334379489178080692255835428946425941744485007494564242321245847834601900334733802901783685579269250854104696988113169602760635457411422778103210447345603386563410736989630172319012792235573544109937947537797736302039466727115297292487075334716863067506929557810558085779341267765052860063437717282731705559704964182190787223870267585006719442156838238013478848555780412372021296587036412123683195677099632678985169449912493979110567881763691041462825460136623847290707268880719580851054956231821329534149466917062989635505629741867102643811854511008370063133564496203258537835853630085145964805045142579192333866958376691035514385494041719808870526429332877792638416082149247776993894755360134214228424566690740102865921089000997001480904750489395817644128834578964821917245477482252251956761847732766753819426603162339740004119749953721172287820117967585042256973251707791491104537270880671714537308465941930918240382648886810640003044480811967507421081898781496456276802825797703828608767105443474405894907440928295501608703336599535801992539064841537449896238795684521828427800097305277585722188486298057038845879292501705599839171921210174020971195676723188166750426649214058486010562074896354271405291694343106844282554917580633899213883589893904307190604386881479505457054641488360789521480996643868950332278128268049342475225237775626898063609469825633455178505046179096913629127227775246954923466738745331105354230613834884798527306064178304645210777517459569183227083305412621024901723041580538687497398940950800364723252036518025019124502006444198561106383579919971983518103519544586589768611753393921686740919206314159587831962048547170298784981505025160216415262370902535835070537086483058010975912800577891073930858917677779580096265211331732175732755536023198143726343889588599963076417989048154070547940415839101166220139297220781793095909940845885885369135083291628289245069753210566436523295046519770090966065337141485025225393957090333784779865142503388219972600203676448622514526000916335358156362176913292168903872627269683410539971184302799338627696614344551362628581938353165054502399828688299863712208250689728245479589184219477195588877025756572057385440706956236105421631949518387630391473557603573487757532124641178781457243326778097577694367390189205064208125470802297276611467337367197874446705918455297564341587694017288651560004810438962413656685588120393700891802656661791016666066268499123030106751274836065628135153803797051994842771218420238139471210208860650615898867302943776715815320285371689713328430166357544355799753259483354869468214066928440266379411163591567610688860994529159956631338512334642650971746786053393077551904524591099654486460380005948000371842383250654615006303357953609131670995877590241191428788920776578660342108050182492052305408628692347797368857081105752634084754826063675492708219627275167377707203634496173844376419528216679020849525288022979413031997553815985929598519030238309901469769716863362988366596912094225466987680404483752018186317945624295644770389426754472645124230336070046490037330595249905678187812137619811457452982957341148275287376807636638504568738205807245434276040165946121004060252939747341141487488467335725722298898250230861306869067032635677274903418699198744603932717041171675963319854312193760205101554405548193261635389437465055272953083024985872298482515887181476753727016376853526816582327749452794832351716797258298592559580054347092446163609037429934528760493964009987897529548788496888312690711460144401499512323786483855008270136117593261533427533843511352609690329473574332514629633811111237395437317820674678040006262061378935983123803262765547678553314046308061830733306845708852478033706493775173561745696995204195047669394862201145286935449235361864621089848420473911537701865743724584765477260360045645690649500452396706716143091258941174092886344658428782937050076061691880865127219252386764180465746222974653970452081044476087095305632048994147990165576879842766950183244220812673957645640605611528012706292176192267238528257354944681071949911683575445815892067960824938880701139031118590812226135813566785931585291454767793762075308038941476414865620683480680289180387310216424010605058189278281625696733971021924787649488316300065159509039568038512333650575525146375799321194120512788226908064915638398545865446373053214982268407443388785235696078270858488033341110438017938379470449398400903024909336668514855976191156252349468924538556367581438171881539473744726023452289450956118624522514969919714642900548683047400927282280580748682990300800136805621493350168318096798472972063536213802031513512519901636088072967373344945847638231028335644381679037641351156668735384934445112993478849619766898266821413519510795289855120833528013867348606200638786845383307024282123862041754918002138234949856497611091302216449349832954364876299282869868738703873349636315509147555399215703831950593305538374314142178292672390688477555839107106987962134821377190136775528049947186197873292807848805313632313376586997800441672738359025764144497437166870582688977069506414461606859522619655278660089806309102150553522757018508069909541430648208716159205542224018146439723236274289187385192942631357822572929365024196819771457106920332178913152891967694717712421365180302576562481837233245503384855964151993620333349219680878048956050140267175473026984884842103166937701814432867815603737726160769755908821493450070039670454023192769016497666144839617482253704830988146497017318045756812248301455690869991006645916801052433330307554554321258627942528971313637393604822500198346576195622901615519474370276492624354561563144176368684590367018827243056533799894574744972563422183586450021041438609285680943475635832729090922381913021400772263326896695679121998085180145109373836468248056776888274394665452588175439912499437503722963811952885983432727890703104967719528193970614766856524282084364309067835303507375136149423110725410690672627130452168193536142869158637865475348968614468585071983806440904036704099218293854425034628154155188225546671342741148862614920574120937689553523041501143614741013941790195007672954468982833021552650552344996151146572119036509168783945854838608628919227530161466416785297940409946702139055443093701060773207149993419663199509811047875781785794484748220993988034437770634836272361990188840654470427774241606044173173427055791016697041670636381232215832245263478753533377085597210373815718718668086082258781607351528537637005478254968189730812574493006788254525547725117768999367209523016046656331288239035196658644475923012138121097770296577113895543467639102140526792272750574636364317358605109339247946405449543374357297347411692567364853058784045590030731949871790687065318492809154850061437881440908159560240371671160735081764526762370896012804585342223043768283566135983883764319979545775236434865903942987013007389770523501764794881996885186515339492783649091598920180597801871893825742065152947690086434369518482815010951634520232059078202278047100039652802610252948356576852928497181353912221625918394529567423588337678310006628689151955306246893526075014409709207077702045573384057499851683432397354496222692544946110077974264086986089646702069918590912930678475772588413334021163599355101431387373013088736126056740010916855773182652609458564889286820612113594442193669397967689108523281687784550463210710996294884485922452952142774224241347070846007040896707489452267901279582032182023251223993764484838743047713891604328437423585185956652924663779685268121616834201129204549025729021023484595698272607866520573521613892777041697098736989522139987686951370546759614549485284973535167493307786586323889512469273897331531511082789441859528803820360120413218249638559965012420069759466951612772203142857040208698810645143773989784784527691276955935539431686116454383267407363705988388741224907367580609684674544037562127047913155300999120739384933441243612394732482595198171113545576474241241796583979615872456059447079119302015109514646184539915038117106511259592324731487113347425302189465834072346752471511335597241785727573734708814681903144165114051927093100389112840653067667521171318059703976097137035909480304835235105309091491398574146624763079749041743741409087854487896378978878429715923440205492764810520391003315422023581259333621272352392536854474790525599493724563693179571734382636090153199600735882661768148031690104312980012661204348888556997536661710624044801414130888581375446403426281933353382837695655787821737215457871597482631440883757009645832164049436100449404420207996086387423017643695315697906799674734167321462033463431200234744928953903094728152623127601932175201624295850321550149480940242349776721359483853858774578711561343381023410450929258910234417456267858380392665011499756065699266111863451151467147462503633868255118975196143149524798048039705540383681053640348137413909504771194674556551513363492304861230182776767762662696694834610485897171961673232948619972210572674673542064803869053828836789228423571681931329559369760235809812413271004676981103032205407033462632613319205320241366856865496828487918725681934969041887008106874220009642099990291742239024785842291257625976334835527939767922143321996089474782523759841971418059372994554196858460060333622896753553309322146335581587974213487934524557250995089485958458564823072980758960658398401635885812724840567955145861390448798969049929098786977759022832039449868559749560776415695005063014761355859488177421055856607908944895232214054290230592746568166016303354934866404021068711342734345863153306782065244896519459646485204869213488601745929017663500352302406288369808394087522138657961651110019740308149629500306125930349002838993022152455231152442000450578386227528353018102089705712732418661097657083370643779202270637427719212559045516882811342136722620595812254695571992993724953157982338251160516865021094838678362673896020188724649655751392247641593096514139177034381812315080040593118805700724652862959261351817261110277363974282038172529093568536762678219146772887366928692134918721042481424998891088313444747832714201168526531510802412424361686855816599996515908677253828960563777048807881857080792121575393799264769327846229534771458141045427933877824701300563242943403718778267023751243182403909334234136172945513322105726776994557935329326172542019585728096895554881586981762257738882670164918746644182745155816227747283870901535648557264020596307076918947531504500327906037635859322346136125620666401621027221042362171346823710216772793169585441191737027609972150551214196586830428135334288732728412871424371279126454979668435666670376130015205143007609331035767587859997250016292626770374620596785105584077561631444141350716219242223384360504090069421853408917723563356389490520730368683374574764559552578692704902669283008132997701824169130038647593556657757373251111455966698197914386963070669005709561121689142158435175827131007070280306474538531468213947860808489195774921833745772517017814862955228657585525281078767591017591032337487631207830111864677464720451270049613573197742217733635353503413638408888440759856573634859302654461324594469332674061263131134702206693872508609450309236887236745655402100065401826581961037910525873993468102663442495701832325768164123769206292592718693420617085044275821105034258147027611682762679656710592221817673040945225212952745637096872406561545957494911452847190544622284148904052162841389413676085501166000856357866011687706101251116950510984901460851340682545447928537942626422894096124902352214270788250636002504274392836420867660236874905705140098686967207746009364244837363583937391500230996459739753899580928028398037035873494676290488401822849736003741994473458563774777709343299565942312614712327923557869880810054961261597676634816642475701430930289716226180941336374631171042215197286386797465307251687990516107040160808520675942048734931769006997591021239093852333751986836949463556186894483771051488069007597382035017302095502132185104474311729769874120258057437949356130155974559294643716076584393342331337631421165184033657485951225557091284303154538904875990268703673587639825568597992857088134515425636253029029103449681722832564003913757666020175064412706033634398596447365808957044492317194216375319752144561877434913032233854158853467049853448276482584321152077425043271795667372355615847382608298646607005976502748465333998604223254445941410406470039154796669387858837502854431930810785652956748356603518688558629308040728394757113533737280522263101965299290078102831857326988908744343102050983479722248009318782689570268939243112039796983221534122670421298863614240323974996343348088150360708238712861596983611760272452569109915062472380257804292194586841380599144305826388948273358723025956038987600622736821005600135311281157366103624258219213854699867403532630049722805862883231786431925822717091694961604554486797649837613914579853959795449034406907505245755847784746893360497573214231536195273806131697392401804334033550323124238915133652223094459366012891467356129762206002475136457776723017731482886033610622504837294506646938444605936201226465430425032842827934554219947842903109706600506036872049345199174740772921670527107279942552243864667980950672086251079983685484877769193545723673376671983386821904005705537076237104987469221912202555363485079470669110319263041548236652427781603279506362907123285118130907399652651403876230866186038053672426862449775420263741415852987188560122363169163755059141679079772303074447571791440043844448605128572205390670952485491136419053459935090858725637610407016449435178004830927900421010533459919438962484637465293514325476008342046478856148991674466834496837271063344735445822875967987006996072686689824457157376052927724678598227743714947674839138125714149133840306271038277706101210525454893760074673863561742139767841651155133275154234139794861100032625108492514079803410630821254953187666959437617899282698288508105198185466043728488214407409307870255996061404875244470491766016142950608971787982421863390668045590899279405060648352768886170851716855361330707912601710912396473321949303676388238684938977852214604794123769520232353317027888452306615225630297063004672669164349694724133984993839365804457510430739994827577970198392037779708101499532481189936734459514102306250032680280824963337987689629469784254131536910514688168360230854879829460348619329298234962470567594772265524705193667379893446660960596548456682444231966363626278817212372807561819182559625457909950795971215504831012931048076833380353334323304454385671397277904805684033563596673606048036151831625402177262035988727612480119634528991610585638624571706369322693979621854622835260118979758440189733571113750568247544069340384762741149260701041840518360687822548077470834690529917896186545356960036757164164669041555316203537293314791466307750369244165316546039879899437113960902893927701457217044572374645656324188277751812953039083226586396472900099203836283313307672939728245556948733756134540307661674197633428832032593876519889440971232137736065963285225821057685770505969764916706960389381308045159651150119723798183884004645106817270738313495600622957396485654102391929677145446748284362904609846758995682416330036002658824506499603225051040514042799566175636511793413040158511016985512596916930910100605532996810769546176670593696965271621781661747178270415666019524641531810515528913642455554152811523046863574992374360321047300147062064734620455204640012895999167092759593608148917241419869124960342634200504212857566104570984942493132306716402818497845125022219492473050653466275642092065711092878323552987944628849396039946711553102005148412324796411682077149419205581564170958081436544067927796758803288283661092672175731760290565022676200923808621067147764737939855635334547847121570664457581215871685766685203465944350339948439537690744285379306697014205379703782123743635364703918436741939621907382427547696150810075685885711945025083916790629426428380327569184222597329723269059227010753959753447027686622083938337295987842281576488218396156059515881129787230113392895103552276539603806913372945562132934423265943514863822903984614832294570747596878084638793178071973956695452651255400206074401102841757758175961244342938904056126539854295367690108634889115858804874389622481181976516565197206499198516423410417040815347838090628567256401110246768689217530999789280395620493711383754715144518613479286477388348069105768348843480119306925255113627825118324253695166386546361007974998463219633740082364630659266378621781245126129881290427733160410483553222568104567017697991222048533981634003450590793118507053871641678397223459272338024058855438240748912853656390282587460620462209738726800200339584349160337868221439225765616154675105458119954964542187141846445267273557207421229200042584548371645971350277223701084849846017145789687323965531645977653752420239350530669355859037232631943953294548139669514846742378609821160668863916837202212693621182809535825297147576659418458796024442468169619945677799304779933621841748514609437134827423935912951612266635393578384996575343299169902290322540294108235377567586687540923266443109292674445241343370694540863940945089368959093009854978341791071602283745737633664718659077538050124418179850791859117861874593168432021994416652480881390657413003134524991207691520304874618363738458943612416299657553402378004610081423175416455699828562259927134703595402649948900539142009094381279084132711967474157855501564347299894145457970973660237183438608110744929251370019701503517884217826169670728369966973380792438907512253997350405277907655227013198358510241276457613852328327147135862265658089628256469488260281011742623232343565176983291622592151897498631229430784957402857677534206901047946093319619209343080982631167329024217032624758340484788762822152910778554000400118496796850967662823241712707617880806837629697535136590301014292109489958394995163397048078590539591756797509011057644194490272719626091795358401215810847115071818021728117250985921525510389155560517774752449632042589701326764447007646227404938708154905779227735442180965439620414967013000201608150082520941502698600019667551394574538588077979939138487497216164248684871253040177261280901208877399315757059768314810744000837475366163750878292297411150375338960645154100317246968782890660590894402752701933649136310919567289689200129672695956650002413295099584823505216057876412433335996292790386148214854341237312286809829616067384381464431214291376645789558799209725943442268627862306698036307154095674539528695485375793181365207137078305847433843918735106803963216857911365625844462454904785735024279631272646172307007794037386379878253087156334988690677505726865100577535552868328859593656035804092265441694071264246737490819306488127908745935544067730244268566564674481711764359862685046608114624404097753465634922853384892546163596373155425479906692476336696730740598326435411768306301661988450869557722343694218838711071522364300143003872416088596084786719868635877472337381997102724995882652267213163845560598850376126647445126776908181784035140898426050194137075076207850916548154135868398536599152400853916455294155441378341279315661024155119798749987223316639816251996343291618734302609471283641600202469343099988644220792959394934167714595881866047598009647970393876487696911301139639213683009576294041046516261744156066954727003234640262894171425888944062141849563943740241086925091235656405980619091441781371306544093188616969867641811000952253325407992061102702604637661462134092414251836036696420440298713462580832180339554241913966910049944905947142362201323570207839960691351590366180672560264488396967534829882360994637201276885960432169030169812947056741255551382971562792694883625529091842540691864056238852909632371121948398402962761807585242681352982602653936928507212929215233500321654095992974300125668766028852970082444462669706494249336708303751141709959577514933851990186403096868186826366142977502301608069770176625744786158936166684966449246719292478747711252550038127289481819486551954898857169636412271824239902246441993188017629402574428071226061356297758525626333567127969538331112768906297997431183919449661284658394297512866747473331867655335210777148835756948485051080695881195445186186273628098795100600563480404208709792626383140409971727454436928386762468466954120817984236333028943308459211490818382142121524156616920357434113486690065138718637218510163140777118034341659739571621648522588497028925271471314499317020791597158294796081005599310324259814060427795782892599005236973775637609911485029531947110853143290609920732157402580847620198728907395128783116934174717658569089598871838629331520212914375922820560856713013260881680640654918778310762020451793394314012591582952477346917577242413747218341475610105902690155845832649862774914636345272387292725035151877523871864389485173659255392257913215293622896914403388887614734200313781044901504350400332353039761840687757508679378762212772521713093262292576784473269790836154337001862780371666705696385645406327284796070399995744943352339945809917334457119796487443983487299162969148438822928930660982341418398063985413810292807032711968311305280174841956282494488723033927402865838240643090057117526031955228051688014985620180656627330442360626981099693230885755589877779928201286573204541036903398099237066975859051555594986695986828321544592656601161303301822804130946116230783880534970656627481174176156489161905410867366393230138834308833689983213064734431758886949479755854933864877790491732261296319664092300476480493913787221390765817485384823256030400133099673276044629165858181244035915315982012273707942072388715792264843751751757228678626044941596306344669466497687547551117331698519452575799776426086542343524819108148734001452669313558904670098765924954985948958936828587366301584887793936952124602546725896202636506599435444686767262213750028872809350797991766370756935353954229412385069684232932866479040451179232136500511221511127550754438555659122735631812207434294599844471165508099680041708460981645979610527236469755173901738753787993610115363674345099193672808607035918131217896866783857306459974172381695552291140302397116641707348721866020005470737512564053210058023596371806208111391431151342464708056165155531160346859226738868823882005926552750926651621976946523068354457656043357585206309251554534224541964505592989928900835493803249201254113360303694167362563002661293635142336164377834144097458668370107802975571746209670412445894368380937358466762918142926160158004654176981875593621393673213527275558964714172029095883824250151119234075350783975102467648362468018012144795925818075495301605001416349780097595164043764005628065881656264862275796998729554609798673278848297876365573673775481606826322863323046070616858516008743497842825043330016820355487756890388371883419414653779529093921782015053698643520994327640490801529519163019858116027468646047858214063294580082584802327049786438741453064664226117413090976514761219940609346586118933359584637750034974592591908010376599321648575383537289014471299216938041524294229885582350420319218239175292088577138802831723938478326881080885136184239596996153928362628755266353883388824250920674525898339531817000286644029199561687580989765894601305823752545709903552325439455496861744247160446171124169601609559928736838884451848626365607443686947420758922577066439490618396455657514057199005317148880020261218357954729098389301065454960154232556319153450813604765806578050026756084597069770796197007056286330618168153973405803931842317331684844990241157780063384863977218904001299819377835079183945643533676753070684913752984139404714566192855270873683079203007824599902703041672779796543376027724841214139957969407389573269343141832027678660910641657906215115698836547912223037908934784069691437982345403079686237483769945167299252677957034733749323556180374373568310724767023707097496741740375516806152495856770089449495589027040574251127164513084475296849245774496236818192851311919479225138179646153530926724846693432345144351641378441101698223620832832331002447562546208669175642602126662017059347954613605422684385384817364880608253332586569500796389000530683174979112764541545554143254130451954325555910161077806535017266802211418428032818780565495394542805289701692196985926184627073518995910667164025445625523741794435412961598394210590163841261802038469285399114178578151236757976681755101508440018457491003236491614533688691101198500283710752850686083880727263705218968357207739689047020125668321089910746064652505762687879993835437533918551758304145269315466281331467544812560866054717681740644380873605192843960220745374868684428218488171479249816243030141008436823761574644111246933826567613091812475475362518616485211745982947602162072427383000331763419584922595069642308187851234360306279339179261808661365731339011862301511959066564714485112612490135328545392705409328829274465501983221301181065341240416257164756749343417571493001320984723194773040139348907421528884473665061506008840117539233647865482351333829499888365710003976276380168834888909318832549017889224399921144934745104444573363447627168403827448194931293488455642592089802132012501356180433476017262366714432358512966842896134898009593046072408310845327960174346655283571160384448142514662569391512419298705478369302469020273841749264575596019598127560059448011703410226700523359928309695304225560305451389735034835841678884988455678747943045844963552129942111391709563459070146672431679860024487689278743937923021330905268589415931129117498148871585428636877582945277330134023166529246779643417105524028373767543011784033471292509381318855323956996552325225891413471670366597540248676591123533336216564571834822823842037501234796352827114175658017223575001375946732095995347192067713935794583632947001533340668042325409380691442921087571375035304080184547412013591716127127453001326130044032971654309537213850570098728006428739124458440190019964255044059879650098441115375616571028537161976145885262172315586943456905056241728873041206399135379907777781259022407714447791654724139510318149604600525092303257196107239709523788261051454906434273930258099622505503904437602548767388596830732498493811555219504855944800188946438927864447580514978611803201306549682176303064689114346388909577848386677109163843822701020442290745249867704726434262544630917538022413000286777376196140606033761040669316084249506941000546799624559251208377073417406363332967689631920774952106554150990192428642416148780819756629381956300715155403407333938421798159228480208697612417092714331381214367727941876209183534724856823343248220347165410893739509365963361724569556775528716128168291389444288833098538470450286366285554199629941702463103848430982131881971874617357309471640401956804070762312049637157749997053694772840466657643866997890827845101015638676349072035342769123520336413999269928704814762520173805390928766209067585295732492412137595489695433646182023819749133248395804816757009986405168568178699454000135020222718386119635264859071936766456636780392347121946165912724470114613708033916097634003804877084946410971668996318811805213183163247573057380559269540397997878534431679143737393875954560087341376058132267688032437283076248116617739871111702501161328775540761777346016695598885832711027397422911592802198990318426363799102016210559678710944400880732376900936366264747466801589452220403105158284731176541161354787019190971560918358789710754593716835414685337382130850338926081976544429482434207191072778068386498203963810685686372114035663283784137363733817743071007695025003949934728857204893793941206124002482813349796065627737372639292458481080756323990428666491137375777314665938913521936026338752491060873153158722221959587194766915098507258210343535528182794928980248792196951523944270126363188201985799917250159562566898965500912700221240090819538277572210208370293809599499481100915776945756428775490986820586255690114505884454732247559249947588806956518236484714374506002843191929925531633333532320426450900035084264576018164720101286815246953188626621218515203395120480106637267850794912925359958541585948652238051731706092985375947657172374109066363399706222941756783933376240330045746070551384964335126599440126306704335634861611503431002531256013217507012017306191523943269481109098776014462611428898743551850686310161707753071681685863263819927293733136221816005434668404840268868622448719045220806281588218527468077494360180003069341369415034132625012799409646090928445176778921710079774627299209399295188619660571816627320091136758631985444684877025148698585902914888948526830719357310642019734154200068991545742432401991752889359290465066851846697999376054243810355605674984817650244836510362804152421076928445177855142576957320423965694266366816766887665015156237606785760770868606316785161447093777871870945446741687295594546202818288356550072415589005025260857136190251731893141173949296549637605826408012768263482563608136521475151580140701738724251061454409806546059825790761460676254526295492689130169779446806983876905021891158885028254960946387536990585869859999869948840316297496118885192624279828452714718458628804039471761044833677102621216222735318746729229781620232693649723279331874666655349131236074658792357680910539519490666620395725471675841153943435033332289792008458722105127230918134646119930042072245977847787712705902438192618740635934543951508899199459001348954065941802246090232240309976756416404915457578374658432161004717920362575155810189370886198658432899928242736760404464026494401630570482727695489200335124628976149269640220503253810217389181652579646092634859206315770503028501595778123486071442368079785678448442342245130073721502512951494637082131512795037586907966794169596645072190188037938303363661873323787448080901146853655346875295009107140706542441074222697620025594032471442975503245398292541143236700301173107155558581372696463933449375607237654992671348759329120186882185064767027590074033605927214172816638946233504306761428913623083811874885014710440363081516679275802558798872632934276684994216899503833759909733329612411070801805951152537681696504024117174173853408798100321664531400853820321903942669893893078715379646281262921757640506584307311627737794291104166986369652490386257792487078543642477763227611985663642748738288808970091500253746683309787843693502714857732348682955361609906807475932844976246841942429181213608057638343607883288224440145041063067858078344822863606261404672185511605225984643201446340533545264910998834788246605821023550191789697360157497321236462392179044653167539984115748976222786804063796358965956938963613311057102612280920030123324361608256456833791385104500827648655287810257627445683490632349405292378117412447465856409761781025381698459404329785078836032682457885030755689257413995255077801180248409474294821319282473822205678771284432845293338408292904929262911349813687179784346048774635697626702776304086898644241165751253451513733861800328039329911886323004360389207477381210452474910137856591010913269026805858590780675175909909626786194243914863339993973987835330534572916760819062371894709585932096882526242706189752294801108043875179391206679147764987631313596774072718645377606325833260179596659723440531842300995649955796798318491251073846777569721931459446891446980214997164614992777207275161488376787175543083232628346740126885262374154528982195036035173683416008160565088327115011380791282705202197916788315511072332445211589378605417534713499507695900633590524789221158984864939197498195400875899966037139757197520936838350377450803453398891532133158428505292244806106622022799699175324995503514461465628252684494759333576427300605810284574962708084670523708330367974641472041327713693397944673012031672358633872186459644881457390927064267039967938101832428361456148535232338424916778186226681310463093539112856394524063674056184463564086257216875841304501579321352630445490711124281734382495569530744846078221769399227103937074312403501113350712353204458209597355189759234241591743645618409855473545939422981362270841174460929016384204833107918277685889608886812564665404314084075515786080025964935873305390881212201350790743912524210463863110261448452752784829919554236815271769010531264736682643789373220114042925963049904954802535825204888952623926772417126890700982726138229439393781595116639265222367806920785917444628553302876426777925024605035662680121521571612573690878804587666487158100349561792274928036434753832158921819599154393878858560258796444419640737875393903762750502133203401022229757261942953554543928921828881792633028779684247866197988430788993519832936444400599413960313145900504197924310386353979237804268096359263688408884348357594494489291307780642575589761930182320853336942460407809888085626155854185601882328178459382333050594697576184879066714088572785343986023342288779014673119574165648243171559723872368680481435097338412926988716939543951072262328898396506865517483664173458982134161717191415602799117393877598109462801694382655608051854747222638958929727433555083363538861938474330372784425531090288975861173879424728655560688008911412590494241008382438813384738655901928028597958015300032742049116177156132610659266128960005947541624360339932515369598670459764590989145751151921802904240748274915742822113357187613982226689298354881503754267233781426447431821380825888687659885704994173107971931945863083903846168125206741226873200777072834690197587033374515277688447832814790696519738638239150488892330823189917134433348663738109194166796187801747236488703713281137249469299494161502396529632911494679188499968089337983712842680999589234452652303864335117055072312834298609797901985960157505415953648700907700439678888218852926026740492084151110906089883576939761023221213796549962943928764853921270892133055739129819031019308403801346164339355997148587099140561047519249423808842987346195731977340876840351819801154579875546827282598621890537813122614351353536096784310982183990262876895932476534254111700587190368376969835899174007375151322167964399380139980338420383757382939665145745924851932686600654745870189336135423019761124677244116124310254362432099127514336235780064949072254537575739231583804356037156231471835103687638131498432958352240635535245296437363187614722742008590282811479158597201215852554455796818048925683044657875572704877691292971739368710419337756074069444826035707209914376099950047235985731648409231157285353653637887608397549978947395176788060070028024378201192172275421177520768731460238650350339676149333118878588848633841765118310446430454933389331472461198447176317078286920007390792707820991685486855877021694919207368282032575233475106844983430527735910043585148557697238690569661910219539205280237022672306486350906433054576662412790450216018312446898102020645454691502600322971560527035471466175199046239554284115156545525674062787595695128366715334955155607287897819838810765523355731183188725089418717372783330054180129151993242082170117389435955382428435424872832900884908682899528510462715083050593170315889800926599817137667114383039103993309499122756539775783593346276427842256427367802700473062113255702558935366230089119303779739458469645423871492140328083669559619114126252200764045244203505721468331444338626063160985101151587979485314727197216115677517176439210323045303370694847909441009452297517915158503920462376098498083840573855230032970167786143872904318452823441161544495946314953994677971015146472401348352757460499382649476120788853619688618751715377566023319285775695224634724115660850692102383431354033688411841710850908407982950269064228464696018126899369705875792614008916458649644463806517806715807834729042662587694148054462698289884570245692256793242947532395957259348383771033728391060748431924280065466121423788450871821722855278679932292700042304711315138767558617279148833705570876669196790449175004202775535621260855376812100599318282100879611496174721524126481416358888479840422167429811335512538203263251169277331118514032911697232696127988221437577299373918038482107124889707238145709162749569399293174161559205491926330887975941871617784146012715133456348642064871294013149091026618580214154087784222721647295373708257808108932187676767473657268653390234198779494048107055901739045204313111072812452588004901433272072598127970823384901649540169196717840860222212777503404999116139691210642932324942538009287906531391577934820561335433201525307931761627941739001428753110224712738661933160284180320717614850172185989942587237017035764077489016362405685976032892764655512721911511139231150077918540365287798603859072298700794656497615223428429536170543615444530324448292574232037947909693017273004898994822114738538197785449480654497973399073543080625402283841687850166095658664735373014053452793572577556535139414928701721668197168254115390523661928786201943562456915028348220082209805841156728917559170851456021076519512630316795806036282101912362491701141232391946409660277062093230393821171108755425048767952013247687047911593108514357770335569112322648829398473947773087734493247795886770495668766311539443132551416702387828538372459992683729994130224731480401942404515064043273649548004842536827455506535396984228731245705367970301991534127515514318057605275260922171342652797561679200401855407591433405522326465245867913929494494749839910881489062522389573534067095265099305215826731629735554985808752957561070938357901875393247365527427907727271625863965074452324836783031292352860251687371402693381825822511406447379073498219538027434525111772877819702671939280995165768473061778456445984193362583028751591805714299450422962674668885807821042290681891945404096037090711734089902369300337183095659997065326880419340114394905456049238733643108922293703019661276813443794850140907282530278842767969590484875626132587372621478278468924500330124850725071816022722600961342505863408147321086819301045775845356121951944889645402616883288924606440841730318365687311534154423324504904998842881523905376863879837613280627275672450366160011096205899702624601168137228932255825600176016693449064971185869174616142589317959555479240507807521166817830252405909479755839967343031618564769294107435557676582988968050002253647089597631703638081726018288271350855037249463826555419893330545009523695965537886055952408853829732396225551426872169362520834912884202496535591058965501744013787364092774205643462463609069357586329359687659991935477838590697063717187790661128765518477801982625506922288131436584657588790159441957412163360859397767409151182608894041331572186859199321299957253406272729188698466043013309544248064877960953044556028850115666029075840782547177133562062522976247078347379226696847240963069372092946925732772522489668971945481364562612507378714993850790896660328816086875234714648522176476048545963412579345435967054536487649727820498558507969439656236693336197725202600416244227313055513267744262995547180670816147983756799927215256438100729436671400429307464866494327230311376842881045279873331786055857413535270610541124278521221565297066411948992875280772111155733975634391934706426637820936845228464201825900998214288561479531888666295425313274313394545713866371457931425848015747506285491722835951443538377462758552749736459625169584326567282814830487987220625407838293517726586336897447819413539218004430143500061789563986149297104830962794184946747787393707472025658862997049611070191561381042858631094920744598945301619776196535266607702684607803324481697165116311215910469057875441659508525207324706748202043295290371100607685039426865226157004667875665681037122049288810958740119989065851326041267420406079124399915775492047942786433335580061479946096507136891428403535818302089791399593532703588168240642042920104419526363156160896057679057811500111974250144111442243838678424965986892751708095345977667167174946950870385787857231394330262146857353049084139858791316433637970582849599338813193332549020203746720794705914158753640744357865128447786380909873415647332252916300103783167368475321792511262331135109633829891637790512946438565185962051484021685823271165372649998375951572027578769884379656015212463660544226730870174615497136862484081361584494110641624864651714099403648341408518170719329331622385891186056326188930197196005010910230874304160637549687734684368783852703265005284264278046032551222698418240794413976035271293588986042228416146561944588059038045186779534855371536978622416759452810605402602272878258112195354923166782459413120197640052510634252066126633135467708680927524243133926447849601499976450558815031458507210366660257978274163236870463759828217608745767159654523956745464233319347952214409838507503224337990315837031337883764214943001897705213838457871294972681690048540191587820039403114704676037036129077024382594302052249041435630020415672345922463534726130801202546131848002863575628133300195495068562699160160890889293030856878768077802147445620591134445718383083569266459947063276490996762545881185097499107777527301976651171216908021837423089995368509521884558450442619213755343145146253419261143326791520815670648794459744035759506656295472267054311462970114710875557578762559680741167892137436384798902569175211944053961769141457871094656911483641010650467532091167393544229959496218408819449435211326389743811705020705074848727594472160623077722044737194572945508943191484295861859730805269199051576527328989053201124338289044771280651115363681534055725574958350280358843249953626204062803552907063173541918268616595930755844428215223721424669362085976736710839290145394720162107209395232244727032425607290941983162306536796281491510615944234085261265538026137106663326395699264311107727371417479832949547550608664004451463397177786428893639128175425994393157569567728401634053742337527236913580646260171412293416513261912317443912886101716812479346399874197311345029371069398166981723340346839974173065104425790858901335721522099564766834933917625602730333978173403431056996071082912675738991663410566558273719133448418781526556384213223924909586733945492317803063824203073284970841641566970773735883952090808441092640658443565909272331783835112357577260986124379910603725919533724473495555921610636418610748074130770001201481946502200169048522166067467734085852680748633525099297096877852152124042041131827002606824164121081071292837056929266124469451622146322405149936605169114182899670755308249180797094639745686415661865322657611403612045949270944725025118961055158870420571943795158332331594626020923461234511151336288488255719174877143961793159829880609286708678615135008825475825815876906357481749220927567266545781117419754521092897724007239482491452143673264423806329021868762903619564926479235909873641495793053170483988177278746252171380326971372743356188907037765239954892841328045044438244397821760801341587457180566469343659972478847599123289363833188575544792727137583417204241352956324730114287722304101867501194782599361704249651929758214847651773633431960133862855539482839436359197666393458583523143633421970785422124628865693951063558037976520652960447353699925830357171120711853873905359283706158494102943221430436108407522228706260318379924240381015470312976621814168329904731954246337600601305892823355885389263220380968784626744209621733479532845125222026186435700505275369252322082151626210892074938235780968122972052475753125578588368940794121882283411265478528970269615284409153954882898614564750591754314904040772661177132473755381452805405837319856867263036365209212201327016030193983688342896038125935043458237972077732325695265718180934522091025880780997322244508775360151589473240513141846109748809269138715953584660435800936786231588665994620191716303441498634185960834728405863924963799419971486417578331016427854278689796168678759995685840097365764454466422269757494267466942642989984868710321958578302652453655641450388498033669843188139178519482920624006238066351804352239752997111844184611464729814501854845305262357677880637341855535477406738524410464488474464808747900110764527962600664603084171895479718421058489874672548170266483864183477357781059611228058435400095482577748386048687495688136505262313831894694196846354356605581403161997692004729179403675399345399265209446572436739660728837495873143407478074437521619071197664989508313025778007883693597107853321373488246072217300650598102060321426659949210321783402736739635843329161492799142355050440417417388437707866213445878864599627346207325834910240282932572583351184417125790397066960324675841705260268856362620694892492776701349358634844725644023231865936809479804028558461134261872661364757384809393360806882750188129691230016970648592722724691658564024263619019459348734629086009256493123782010087616184704045540236315428493346583515492010620194920156401675801770985755588837987381429332514902844341476547947921703063907837483456870938529941568646490237902277939950228317528225797612281287469724300019530159625598075083703707806006459608288926225133569992074630424722810603742283221857206378356256733915730323040629089061151849094270135901416690363181882194634165930257186499799355911769136418102819298608204404947915370595748517294526960861822202173807243284281477065005031227981604870382067359170499230846825203603679399948125310197840821941356831591221511122534817756542632634481843982073913936581479266838415548524809371845122105155461597364347407282849287572040568419232386720496590500013388582262218641070895641717842991047306530772477426306160530477540304955754229586347810531244760325683538861965596910916344749792777153513680832813611174626184101265469191173937542859880134108388173131734765080791364108659539035644648724731905374442376281954731108674306627113856997589048762424908608154285188868201729551326542020047853205228964736574621223872393433918612249744666611858648476185134095017819664167918544498368731442097405767619777982650860339506601438827952667546123834937984890950694082497083162236872852521210485714365616194964706270905863820778991337518843359157227201118769197655720472313283050421655106404840142524711892849735560102460590691000133094162267461248992871121840954934607605382998637555597147106558481110317360915356132573082446137686669727978561937780461382039546308372653831642763598020199483052251052830836417325052670300241871623204601611110360805419607433048842150887803775796893168249893757855570005092931229425352447690773254306304747258180817889495909425491913362434043179025100353787562638274443940050491144629326096428038897075312825753861168157175616069863225955549447757028606338579725595033871607652059928572094978174428171909700813380869130942290631781190413083268829408894449819164498368875152534588751942370295452241858738123976680954326636672546169532672072476735010205030756609458530437688284271383806231689500700186184469856424129951469807405577651793233734078172419001111419404104092514770472456317216825932289785832387645353080856329576374324765878737530417072325483125975937490490164564416141954268312533319854049633712001821376069229458929835843631617105150592327488439635736937154589618787732791001298937539607181400148748909445154511006061369202345186345369198323182564671615248109046681143478036804514420737987116644195567176477533090312117300631260803139234791721467272275537237517299304388436877480104693405523583835392647315843666182175221709535549430891880403684978944310771387250376262939286332571930353641473635205144731513480621763030999444047439350848571362511494475256481568862540990382104190819610365107723257673585500373738941978450802033620109903422723542829922235641107466375193786144183641672511964235592068638517040611545418985880654594499442819830315885014082414867482462491837519789121601785038389413663663295185876343758183053394340129749066741057620137964738536598705556671708832092556453530731300028405221873237675375748120550386452346496980247241393205347176480681486678828897007224404780754386270339110327807453217945203275560638781170235920369262615581853467225286948772971701873649902006923640894734328290148952996707866313177019445568988541897973345338744497147714846839836937984728562165878809315594231839985608179651801499352125263589221837613310872931625312021955084421326057795235330683924092834047278690628653117113444639284196315930179683864074822083489652047097996577960757277865319388707048301108785229935103615775761960044081591245993889839549744163047594864555341178253330721457820849639898033581705270560618951480928929820660615594627072878271535963874081424683894633565224198960039555375175272907045805728537533831353169382936406225566673243806566732407735259466615205372699880054531695044157343973611806955991902740384535934047536008651821740690798725623144358350339118672049042370725612669675553696017402237511169551846095218462686824008178719833715570437000560362697304040152607714611257868249100100090806515375659166787351134268910366950439482192816459958296180235105007546457383227741778091500543033692137212385804763546552702711138841837419305224663656544134281311916382852410395737958132189869962493275806002192910928383922268666165251418254368918519281889632348350884489388917190421929514852167685784806259296056789946894541271316497596636082690203120230688200182564220722430794416407163957969528039551697586290797593736736521140259400711714400306387601560714859164743521258243575474314059810941683909895066868501389243715318927050437792996120717678624662393702041836096382789977748487156369314298847323134441843558105614326835472085855636921614005590870104603527733031114684027633879797119568038038119203746841804626250420023891325368383137496134088047694399216560184077377692628426445729572833004904949129205284136728418868684722939354902933556505879974718824119738312943855704432914579296925078161888860579171798749599922796033404531197323822458465152218629331626442848925068066305194794858174326208700309457187619797452530594687200599037509741808874446670145669963018802273069517798451537592996361234713854455539176300909028354530190136696793431513607440097095360046572332326547592527880790547682989150101565079919281208170536875565432246396800791398748184730123327200714100341205601212960806041830914944340828363681671364037483837052800972770764287993632945891983980991321710748123436308063699194274738124086616444151342118668647568422293866271566364786245421287109475770941486293700698295116677858230323135910006312731943057899166512266688598627535312134247419328884516353105507424909919550032640727129212104035005504775614916831066803560426417294394548043068741330718698961255655147983877178957777120851601491346310130550270419954940812632850811932136574580919846947596262894939268164439283364392670159267187623761849794736291221177296020812097228084593984085271024194488436136369292222982813762738937452454516650936595113975659293581212364642191316321952820931457565690368087133178859375800410230592880219752956703516823515162570042678683301826144334757075420616779781883187860587362916775764441806251991605018849057785084049158485790149506386180478950859582411765230845730633024167210875584480941588669698200918186284830606227402020121650755842122830761586323812101273988795259155169989103198853172073555613543483541378801635298255101881074369788586173526911612937106686731986360433911220878718133536204787101353767734927133829279065878619445037486236987303012189444109707004905406690137640235581085607933423919121583978897573777606238046970659108608704891756893144091291780559398190664183080278117313427172865965958349632267022067782932064118179376562014044772940047958742110372785513806364513526124917659644430451469260361951641324387463932064206760483313890369365761364756753312406625733222438607712664939262226798651584328101659294434044186426193274599524799242245101884070502341563421720112786133302176606384256843200640295055419100392989397205433313578373459097563703822035493717591921808418998439070714057985749298796573795386810087929783685843363615558416365599194945480356398546212443779326249436522286653763074037137796856586722475235987979972707061074807674979472876411294767538462951141131231399340101597983334472243904799367686688446345796559689894062441295969200290386843621395915001906967170142475961703251537515424954379272696917309715862382046406546881198269605776099366643123150592981618027664012468985622131815567840663476495643783797146988538327155096450195696971206929184422607697612109921667316128025032938484091313942299569110024913035654241705968411892724006031239253819466402503354056342232594174569854758372685968595998555922218456009137056090924807391923269302950854874433387391498292530915794881078693218718448443193662565742205812636038530491162658726005332015803189373558882271899756759473767936022956779972605072363195639562024904505856383921668867727311192653555047240690060401621693443815044953887242523622834128341185664175027964729538725792917781398795529532719972885036587431901449271091947636852151866557449451780115220190512563633498278279528037818631036073910924707361478275331507504463283599703517955534050619427518152404201307899008589931985992804153564402044723104036361811636541587626414732013931439598391805305659075707513773951483480696538060197272747198140386099736861648001101326728816025949909895295001357427273596961242873527578191524462883833943741543302543890093238221471858982818990055147199503308573453132790836456635354316123525195306015704042047135729384381029427162396963040190866377636027673964388891669184396770324463361199694807101083611881968145106584913435260297722021769296831773083020485160732376083808959351766313354830356705724609473147650101601369227140789755182123053821490453769583531551329241595161449886104504319981840770688893354305495312622104024224853793710113278850357062897799135123919657200629505930025171890881208171146843196000213262946896091595489476262356916852024224816572741713523025994291075006355800568303809078231163674117105475876045100135256063208696772394945471722829947317248762687247712404394815166393753445327509172357066050387934317351415504776111636355199681727274531356420823791188531629715850019069190242843403619656818936633712491161282566051287197200019606721723812123916654642676998321621663861428477978763290981953131276235091727431878401644431377316052505067437757400669289922152141783217328080679795444805749287896260386025864564308628019878551818921943185166807990531561582054954963455687763299923391355063965692432450493936685869360465930106347842977169229428015375874302171063106862709187859355237920796907533857594725227908235831664862136818976911611153693064406126958376276013051266728737440158604148012299565827885174212680677581992988298578733454273675905484660933076498649796070870687161575545586430045969928819454324630909249301303718774933687744337416982390188122125094582428909844298655015680770278076613457167276135203760048098514832721088940219864385278641783484264151192674131731007088457156722960319141771174358092466663146687239886718511984404395151668267629114352813410696791836270592255089707407285324217207054626447338254226570597597722215463048030478056961283721032097689064614821842030738956717498230481263634882421185740079204772947816725306613639989644588668455616639582863581455524873247110792587313175535510145489823289795192634492053370648324407797337627810224935104458976923667149704719924284796758516268094178640114909109353270604455876008079564217094926345726654724653637662852465998338804657584198653389625719272063124481253535283368148130866873751120887468854931659981165743481694575977600913714838790656900691075124420365001358894330006773812867771587809474457228861726733756508754975824511114699604969502418613963510720163755934032246286406966717592251992800303434581824457063270520623457203245937501200087504532441292698853810044079575451344258915806098702184629740268509831032457480795631289590943212690172848252381396079117745294117347541000233464721811536272573229732484818805004350256642859163671825174664086773062215113795377544519168026017019195752515382767205294508882956531901683113937140823872768154247602198267431073323618651574088719824660065259084872814036468464743228586176183729358992699346082758544387666078632816926455736738459102342853204514125303192378667902085791518347248855565298632089298102999305599791302169107343564431050834024898261729801775601692366904924651361749251927643775015752310220119679527519410165092535253038655260961412195954168705204027733582931873476543294019831903558059290752257684724875998535283423669007133506506966955509826881827790843675830617140962590988323300301435917894713955707635054098589188169021217884416090267994887163538336719409333556598797970410355875209888563609644169995193482139329690131936421529192694466525578411553286161435857776762315595407579695723736750170594392363643132318274350717972888244450303522706143187190579820003332664178931111687666483582065028913897587254882075694522185955701610041548645866755568074537561846109978625212530276195231887422207732196415955209306573427619487366115330814686430598748968358990426979894353703280822260543513041716468042903382865082983066743707010127734862667622319053032756864207501609986511740147188705434397032618394238907779828631794990331656322609803845835189021655984368099411605797790482676967517189060585849016502416668546405561349181086575631717421091276456141622957073084013555148030100923040626489648918041428483760570908378371233507793597395098843728853371386924585381495942030691032148647912923372039225354069746656416561208569467697082401283442958398886757437868755527202092731370275531548530073746671794966556130809300255665524495879630890062625856368187974848275389169453668149728644476149189212931349251041387128094719129560005839684780094498610160058372098006623971398989644570103178854390678006890807880670407711013004799847420945796042318310335405868944569362484182032395684052903916250270436848603739747331958324202079665228603026997568099806673038320927988089844771039345743143953079081611861125969765677696765315334304243426216011317988095261364547006272411230258633093021856153458308345596364114281815724949324073570923906885413121832646150885402679319002514673524171914065639941937175732653831607669610342005633104618349597756757976689183761793698620528014483308451559223568628532329530383138228090229566130518330450431677796252712722225483936137373771811866171198325158005138021080166925500197917258777702011610521251246528640197298243602401127162170264340930516511764401132084813417335304960822617633928676086235089117257404562770294517388741435181442126189585811141202390652496728980695837297693996757143864919659095581518586995315113892163411852066653940831377499348579561156318241015142541624591829710408056072714289693620816753333126601505530777303718117596241609820790939345340626217743108418438813896893112874421499499399716553989905463627015320258153412133234720004587127772182382077342392349268083717645779665001642175968616948486232262713926051683989028981664435500979648059807700109804940063269016299808453935544775914318599358057416402118601789392341280666390470936124588976313752124817666296440917391824481664698848654239256421378921917795738203332881591854299085136417341266680400747800407899468964641705839786892411871510213447273782652705105526237030602613962876710738263892948820599030775314404143025221445420557298038209329507530774822225831642920182469505228260278983940598022407193501082421774386923641986601419257277723797400847145044084696996228375574576257535286366373273201521751359271667187198100303483605666625957963013756867784767922331306568878482693667566317487858844698944255686642092873801065431649387960282112882239909736976058595616080888477836584018884571810195401910569728670732974103974134631247181096615506192380359515452477791071780812763216635965958770568631103947786896376417579234753540969691051912985655797885348680533678234476639659133190242191199869364116968329340130262430208073970764075148882732054837733161272563256414913889292867916692269841863722605781295865874241210292331174151646688607245323043289102306733536235968149667827633562066395063891739213913524943570309327610892690479234489566579920327223473655833965205383725452901065510549019085611955496675581818703433696959995743635328046064951359062440919386890844580857023464023753695450718871995085910792149592053723806089870629255068578039858085023751548217771624450495078021081290768390619422142570317776172980041840471964235383450952857524751487841677768319623329571846058828529479827277119225549948930617409421262529495262698908671360681733247144590034177112086875408840598954204399693187915684535453849233188304874084552564705648449273186338137749918879290850712007204021540443861652473416836819837624260409970583906300293437018602784958678133519045425503024410172223288610940492670102873487558356675156143102135135651250093622012617394823622033697321605492344981205958590574678073733537129747495126002330079980246204126714162722765835053835056258139589466610701158579358818113408146535326047048400301914412766892766774187582320103548053186678689788370357335193352742582982401632525733438746559735090550047665494108469010670486117731863600206111679238227036284276566169722041905439333251046305209534361448754119890942378378963478737167689885861123638509062192954433128445495058218738507327076215131050878418668019306690727359507816316695845137962915216453225125662526207829396971210506410277056460739516551477314084037112452731577078549848839530286440866824641510311012891294251611857637115261733569231765001151526170779919265483360355266645710360479839520722415336499607509634969068581406364304936609004234870561115525166352172591839227993417402608990409989950959500420472415268112741964999867131925533461763910431401186663271656679187315046121290091264353797914267599918886733964458339151589383691775296597983721862447524015149694046082626907856085964312523723049951728056674101718679196149126277312781704893958341744928731243058548881603424838402065491703260473915514586859944975755729963904788046124438242239435325690563245829761355421101263738765192337988475147918574268224586561848839571156579553122453262388100200039210847063177087566358662252113527472285404711660465566191167338937843097305160512759115606992872244509981810048423201782187129871183004960323196373619094495638956006084413730661715412649707475736534742232331033101829309573863867047641009207220354026685488075511907801017105504993802027204634669840970829954323700177228228410084116668624517470363918632586671504195050570807790522342412400584388727012981105348245341719542208306098726008630094941298702237007381459130431269119433461168537452641102479761774323780352213370978001333520643864533901691499826992186528943634704665670530407940713607306307134682472460138767771818208898768180186336278702947527175752156744663266286037808241532059194106382049816442025619022220683930212453184090736142851939142424884319682471840517432603528777989175615086883642648731896435452008330966384235799799146264608325808955294142275193873084044416652351107264144735304705581238782856397647061238521146814812036297443754741073463036638533646286697323930813783199695163098428130030010391371561111526599982807511227771237626454621877727452132375203915925957536590678873196746688024196323672235893024461501778091970155842509347425041029506243576335681840707076001196430335236300260670521442114852740606973135380117936212510521967124326884811397353598096197335824739722157469511064848746697376619465465664496398401825546776469387511267491164408765659626523896155146973084455467781720682683201255523899037835929029298451691153726897298668753166822505392431445469959993082910690464643705142819978095356785072300285525626987710352821540375880341240782266366179120392128817957334027716139907959137965012761777038319936823403268716241011906054033959961600708648340883047141820378528968668257976323920211223511685269600095776765572158159542347268913670697704064375182830605630129041145301174881703360181930262895857246028176470484070698096753395805782435785601562782863670284316374988951911672774975559190218588874279351664227733389003320407356665228057010506875091129441546047460927298964225299316834537027665537996032123421854026812614122883756037072809871034714679397127281492014652090769187343058019293388150949286059281988188072227494459759662848668921830796267199579696354828796827891756939329374735716572374044663608655902939897549296606498061321551316789874948565256691096161667975848753265085438265700394655046105823839489206600311383512166064312149100917025640856215687509497827242982129511871635292754652596913137496289301764335760701398110495013130526066121147967270838150682986448486206942016782491141835176521436115380065249628282236975000037340522391983814062934481338953210828143995433948717769951561132813652432901166260282690022274133208731587086421867913764255715701284770678665432160912994279054307710135121740917786197578311766595974041474395512943160134265414741895480351533451867757176027244583865924096279039354855950698802025378561837616734921850573432871296786243423703587038498515848485295048992589040083366222001302301581444175089018278262901256701825681405376068842351344268833753267136739703635345708220033280239901380450975439590203054768696334610483507685684766043131938731252116696920923727030354801440564634768710997703117537815727578468941941384201389383027533480237410010590861434376393746846475712264704222305725205085684160596927910848703852925439091489548627331614342416505222529593699193439697158417678087869483720180752083340616164892336082806724281411996398128742022745316088270609451047628847465380609378798619413612184289140701591347832617420191599868769596220884245143404390879018045074031726563254423852742630123474964722140542363584690228329606151959382408352464812318868508120441552093211885051264448253534122317958744546806069377777824750973073583583657837532285646444263481835082531485704946361723757104894484840015756351917866921215931880848510971599407879274223736766918457725506194944171328217868199904854394101766618697185742485133846364025227669371137216260917993217831333582699490746079081576161094063284794522244914865124017781802115246363635459825079736861221887075982005851102252311630748681739499519093764560360041353253739896722090577811407126684319173824984969007836925089046871101300399372852484407623576577815932132694205219679126837394456867370160309731202142305001979084861624787844885364995067849385028127633310632014940560526257878497742732654609691467832576254117675923358285453065785866495330662217275773571227193691278008668337251113047763829485654769756021763242407606445700832773942417237196349924323784521561883801371109079440385920951820642507040669648580769398076427798825958031686415754992441587884491905017973935493725830569608189926076509866500497663498013304269690103589929403336187690033278654111740841205101245978086559194146003830009490342754900264891547700190513015452372674443485996106157966190853095998811645122421932278903791932958714136762371432427440396556737215370880619529928005952399511648276790942789517401134462873552325978962931687660911737068076438788193673960259792222490185706125565013472830663384690329146376127091970618240147205731663505752608564987538751525666393244324338633907627577960494648194974334787057214026253620233100520290404942814559431489797012888333247288675429081530158160102243381274385579010795519537825288696056070165879273860237336227644342993173031543901545070016308055179770076122069907127402510948187949511556494229242795381628360031954615236959517529846212589071957546501933312243646486168787567392343564731448579011790105747218360183845285421310903930641163146767659274846322329912414020679184068325758504640497868524185557091516369327394816127652051139501204595462791012045460484224596328014325949692786434778924717390057756400059133220117980051526139059086802620826969367604960425589989691112918475162973603525715538739502254074822456099515625180051735904576987770929511141587266522985444687741679861685453837572113911781447697958380754962413446696311233952008382574369784822750487837545455857776842529865600971705435102857927149361067541730572053490597931154779839936205805272266248883646516997631704340175731755618645739456033158712825740428399184594718289820000708841837664701547685621193843506703732116070928703995996732070751134960181754796583961974637761670924330591988677777118696087347581310674997288739205105348619454689600864873709083983745004635881163699581730062779120461035839347080182262603183857677147894521463304626542734345915563350321824260310648076314816345959401973150238373531992485236052513172637729378344724940240847820004729547111905696573178860684412422612452637418064028025773396376427470146613610123919232632019601495691762378727433953790732559987091575086103142648631495291593754071858608177484889182122527082553808317689349930964947020156180177402352523510436155114151781205502588111678456294693607937263796604559891991830316232417737679664770425161390794721237243624928224619563822963773997222814368603848007724106218976606118480781018616209865184233389627527511908784366163991281910048432385908828434736342974659040893074240349516707291169547863454120247200339193924492773995612511633991799303617984515148308124199869023376547318180836896736773915735349539837216148374743754698710886015887149674643394214075649813128361438042568449871326622413180327641966483296195762191144797930984285675536516181627508510908784367188862398204663267870322161919896143009324522246476393180075773643305949877717924919612488108341082793927990672596729313564253441313036401355645397073335310133932998938267793718493805374342786705718266418466299395879908583020854169557814361432466211977400938297851913441809804933172800243490449727033521854739653243370372744666362523158984545657881947799494452658997844858190448164326523238512470219463768051148159031110375964191288952643856786747150444886470159897480853493338157544126841624966223289709953521555883767346838112672340016729923295064373853338395070795604839459820245176501389281686097472630373829573546855248536950958344669095644177959599490187829113722407093799381300713770192902204590171970901162605780278453270651973654686462740080352760303327610636497609874686698723068717191404272224032702827322170698947113633255266376887614725062178190628711518958380337223003696701926532247688904952935971839283636926071188520813756803588707327203863248065324337575097103124405388045377686058450547738198810633452824892934458600069243311256097162994245759965902872471968229798641474647731072632775185761840202259081325887812448875379257937575670152361976909619876586450327347895060848550612802863664441778013953017796539477661359574656987341602587667403838988879018928622502062583945512745510335955547724717337713337118269076741598290345435506962338037875215355041588195622016720635690033043808504865926057168805150002738987314436515193866182525841744847569719751060227672209505937832674325611885540676665499604366795690593505580101966819175994932141333590746423026966297710073896743241382684071244207170736012444647563769035038181059165135238565461184980304295587516129808369376278625917097205103144296299758364989876021220744492054146350532587414425284672316608515989890547072135016190368884834489733551244015282152613440564941611093788131749514725698811693760610512606687889469491765798591275288004168267329451392324760065787297503406926349361141826496307760050240594006737723042058021443699321199969127052241165179874941787933168180655363635847173561509882637557957272821069808918804110094661755419809597457552899682062561673371746876623605129605444487819200829912638892960313854540395935125280818655653467019973462714361419399033884627766130387350662268811868081976352860417133888936072769438387602200724497468043423154907512260627618398617874442061447391824350526101693629820503616255525525231396765798969937033042138257179865771320548861583713767988346643458811508493899544253388202694160597474119899563129879976712107928205418451039111452011023784272714661060229288812055378881598795493215625205839007481441925733852670569802691690628023398836009621606422524259058390361592161026741196124776180726598433196003852978103194832177631999474574878156276429962938147035141802828773964341471819634478901847470522233126904834442220742425963452423057885819624335691299538888795954431356707168173871751046237652546487341500585731668940025153870100520451995259248483469437364400631054803240675410996700352529214905672204342167126644310553440934758582288374932503545274512832693023076286494025195776014700925156926946414316854191175594352952241304693389795804636647685077339852104284456910510412974656415750350867346434684342417033426728440100368333243079486507681399791140549337316235048587722395157593666491002130617315914926784930270638485721299093502957497630679523555899322383374691883213538408168593239642142802562501070467108561145954406895500219952723954165665208411180330376435222166720909974897367945508018625027515278264342157782525501910953041510093844385512768157226025838066204226576150192488946838392054848010949744359856804602545879408418159077802550775361657625477267571380494652173088117476493088850733614120601760339385385639446458415866366878957366582004357611783488521596355126276804363609788494257960313111933570416017433676161039674628457240536351563020225033232357998457838118440147243152212521011334154404567678613136103612457953427971717916012301110393624767132120296632660068943593609639252149464534372538077026996713361820663632988600763420485234465562784435605116886785147081277222664458044856403710673218080923288973918725481287857313135355555563366663437146280336384208709170869050594630541095687823250922959541454490291842955629065106866475724066959915030554464412206513185822902097183319785875407597841330137741372511999564425856991075536519633946579023934468160835778875657616062515571670468893288425061942038479361283269508370482145651744530366426046654320802181533775556779586020383805270281719164413366789041058301068953205393832709044030783710144010776405243369402732182822262139777298173898597690710056013535075441608629619851469913199708322402843734865364546463767314805158265801032708858837042278005066610032325212082013544536043327390007407581115490906408559336115148487109666093369121103704723402649333754830907992281796862828477124365319547768772759269652665255924211809586320763509387708209867798509979234354534624945685325825056318116012645670853709925335741099721538868593414185703368037012915264424202146956303904290473849243675715198079305666738318951065347373601190211627508862786003353276855808329751810190555591123651248490148325255816461619845203874368511145179821254529081430444501260827183885845508820527881628620477836702436239875639110214605456998012418211039879334164098620990412571654013502938357215102002766974202032223873358140135931595222398030566732992438097697378655634336464100488020422828739243501929499758879120415654675314671851797666230549180023627123768442223660508047430177063974236683824976223884461930286814641870016493181691094279116056959986053016028170497708647049895833217582406303831386333486428788381166465714537845528170763526054287331544188478399634937511554701238754117774196255422781908944492996990129295628373777783688696485185950727738689494541998716775753386682026685516205836744799169262176432870050567029948906824663182843972673374738371260615559067440090297785072293068937315522057304579896184305057216157217789397157217878115578907882423171936042425585081434099695965861418975406178229660144014041488396049465271658576672792644321963235858912226576756369103479017113132202654913889123228282423306053744538881739609779488744827556880424299964601327476957634438706098348289341263558673811697107408518388599675145738457154783069407218089298268460381891048727089964354823880194635906620291845392484239449826556285011603067199223691342804310867280832606186576524417648401026571725999715146750149916874776183627097492059151427888093719023325724227792273126389848690438121342491263588769739022637925964328200280253119958764589833606346038808568620328917790666627283538897633504875054681834264193547264135172140747822094666267343757684947760940110505324077119370483549632230455222601202354680292639648902430996628756284706840095606856346452146960749235201056653794936800553193418899337901333292597512165456600817744165233382979369634930296374938729730787488670592319742451369069641330228148777508815936555873109362770176916403382386604337612293606344989469302006375077945202934139933941371101987066005232337961081301973362874260571724568713553611101033752987669774389600940796378837173938661550747188247810956501038253451631378545661083747081134491647820291643344924474912932489367933919569664530255339177023795398983061477648268110274725931182373390670714255044891273046042524627579242818143338887421942199142769318438196334905704315867064370640682347275038953089387660811705644277308064955755860905328389464221473046240032771150276357366152283655448903950907759299801311462924668325843765785540990488141966707438447744505346064144640557764928932357884565694308761403889837616631055486681734534315711019612090916727810426665165157032443216957386623585559871517458316158418299700466829611986876639506521264510396096150507104173105297899017218562562150332964367159870320809932665558475472957918578380518807801651124075756814768911022470844000605658921324097031317065793174670344098693428208728054924345252787062394161254467704894442620111018817373675842960331265569160824148569729342986750449750884458188965489305024767194027921854888350896207344427751711135868151189957272290462690919853636718185151592246376942957654763554164027726663996440294732852056633055914504628855555321365653454838523417573505027224325234768123455102423736997962964995859487669319779043575319084213575470824430795263758031362193966949558409352495258686715693166629684380185865508826675158079068146496511257841516596283128771842047649203947451974089166994171817180309424645978268182422405600222179383301089939099154204990980031925301241567131901521976259049192814950358974889227427122570661229016980452278055767406619576467269802509683428353322082863259709087216431666033262691603081132914120235804495193511674110044783447585331381822035917877494336190332841109165200325673151890687030737948056877650481026798530825718669181528645845771972872484238541997834326991118362452556179254721435444451056496391395712088827822638108678133100899017401364530459214093557630441367453831537221796410491152559532043282814195650198937454311096958367238675221778923117033970315809556539797661066503394704301885676005630014663294796761696220337528731300946064599489429542941634836403202648741299498147609644440800136289648257263286080565580317516383565568304626966269544408074577559411042752414351229435370438861085080068311616057960656663277774946809208393198384600668156915759501880824619494086836083393370127805970834543738901944943123330336320552446684216138619383263261236421185235450345907864759475061887530307574333404283605624565965744155767674875075301104886340838506354562145937972336899591117277180308748912144268126349432604387362745597257309961135313847923401893771834803207330272534321454278502962785160084419088577852058603836861752042127469371497510043723924427425208436333445559978953539640943485095136552387208332761844913902624625401518265049161759541067560624112918876506975643343575229112782285371212560508726439227019119012637989952544962166221914511442695953047516534584821666851875980300212151979711552367294190164806659742150241350705739518063749920799172764857290435818388003721073066498290234443250670323856058253990199241121722486430794624264346544926593297483836652870193562903065049224184837860443217717406237048155493578032082116800937173118404013063599548225319053059633487585556929950855348287671088139199594907863544835150138148529021319817486143088924574346404710693981984410135256815181989334498349242341926332833076034753189601500394957872437138485154491959027299966563748246889161058610951979410991167921230757210907444034941804111165044929981787121571657103001614024972711339439159841806314374274173310811814267545327479741153194333259989157795616886284344920433764704734053904103031928540285605187416721015564802847818936763696254054621508151056672297493438540248767147193235270433639494743239189400031877237582097746168760953936570911407543380165825368576930109211518183663916159206787148357894727827465937721207967028073261873276924100332717453971831926588207836875959138528391431269028054390151612555698144705012184893664882767460344090391665923377768255248670108084392518002324864507635394991062412211969889396920574417679550256192142702087838132547964828055242614419676810309973112001011569106509588930049421032151415127733571512510212704500810527370648912220430644936206007602763604874282702659626668834460241837266474978140511711856356391926858515151756576766300293986887907446070209510688391149213115223353013127049378905259297147317865210043903431288991218029573590287685862724158205699959606541882724162928855915619466503627838639266878810706555195116349977114900812482141884915343020465959807250646193472672370699660282383879137879546915466608385426439205063030933726263201967157435182696734291221126884327371301926811293321831536988133379757523261300883441900498719474279706397336747045337694274766401054374138621379993543868998776576760626579737194166160891728596661115361553601347622557976933723780457509811258697913304983271461458818579181579085715258910706309230910597604282450843135432727855633008116371684264461414638336534340351055861102045921031035397816984991694217147880680990378877515636974123863665349010998599990025534960878301838385177064527506060610452476258065745621407684886509656644803786901117390670246979828602015248071350076347658610458452369808475222800806363726383652740540819183293499045868662710841280139578890797383789451816658330878848303749029357336842686723253861875739127763926524336725888008708313238321263873038779430184081458619802574806286821727724652068254234803870503198522541395908409047356523193712961033832594291729109340510766533941392927179449636918458077662185831788112967364168740970624288733737485396277567722043321350126432285126108703723459222724802466533706836164947407107807494914797586395823326784539582128000584071849338402710234420094284579985976058085573427509940834729592165816659051705352321768888228728670230233346113642351143423918782755180687833865580543357362701987918539386154058969332842354893659900093637899497341657375565548282136822937151512033729658490009429826331521813293437182539742230895595281208517234840959219256637054802421238109605663270195120838178177045609654764972234964384948677760859679040024095593705745848247781293633940469684977505463316078717856247479728965882583979902441224740293815605435862197647151738140415463704376616533961047562573654114581290878789248194518012656516796875558461614642161578232248664020007625247659580166051625406323730838246055416022189836323408180694119518507106919878531001690438422068202412006191774549793388308086651503378800848225668038663245144580418962876617522929935358788270862811651837554398318760797288996212673295352789802563279749240012776479869889238162607490067515406087760634248888525474580451691886982475111128436489168238911211295351569623704080632502524994147209743714182581345727914022256916604393368026877882732220384589520394585273695461358466901459925083094272243453181089579746261563253703263103058149987888532836383507387278381378396389816617677705333778260840980039931633197660832772466317456170442478642727139669929649040460120066512007246137181809658002422936300695896662388666969778674935400648171545280463942191488654040421911319906006897760058957323988688251973482785312262040309538154957475673494254193619371478574525939414200628556418560859785156482274874462333659101786296576302422024062816287320933307394155401494331924317445693395091047275587130041004298176648238885948728162154280843203870614250073998821155753537160214281516434561012902364077691840654999241388812109755287481524952977046022311623127136972095798936314288200324603497060888997508577941540681762437314714941511415366135297060287556910995969277631424648147785606727496825661572329302884539706685453854863585820745034101492786668892660914388907741514340215130804689055138389730648376967341645003904589059804650598296216596842999748280399184701134800171935715025822466918405673779443513319382283642230535510569186854966086781855372290097787664171300355915388968478588768299683536199884975261122086325811529857112598257562181059153185443480152087888771427262322318518459935616369730621864239427933341076326410300787417960363714439464125285852973200915131258240968004763650355094684625584384070070096021005208369884094687856766096552848938830727507983803136032477146040631261399887963799216474209032302950194329730698728786514921686158160075443773405059853711662165316590665248670440077078224968725036421497140671032413450315643263983266593679648574357446573944318554795867242302797034013153935365575450563492212880670286529520138000995407134026534192810954393786683919335806741221845408123785535056752147379118623347668143280769163052316237114678513182114589561195939887250853818292236101170414440202615384599348667006127366677165847023480203035720692698256816709289001515421528826612850437678992229424551831243261211474879245541784056230532315333361153647295942432314555604625645689743118270734605795854671532532986869705710001056565697638099998902619703070460693402692482110426944340641303379389076695190324055838375957349959397813601319672625586601885048270626713499172636458374738361621673542133893194555292478970854650069139214650463475920554130147794667550136403170978724832607863984272443720107359028423717469147417322860615611026312487956489425581755192033057473746508684227751118616490531815774901803676922250993559145440341948948416155861111769671542882408916446191388297387514551509066743966659185608101873833245947903607429089590030586974122568876777603460311786018593725043746229177204886099518103093674117269383889883886504300378843803542045418448621834173069597489184115367652174902901241507965762657838221533412024046706345488717472412697595875012078628057453833248259212451207427022501810803374920281032400369977464141488579190750430780353098697857360764266490645752727925705320392054135279057263008681168095895816938057185973309059677814172701328291568467861364963901488304722475382520769033087112316620709068308655274540205976460574775423837009180970465442124327040001273178677138524436393455363478685422453593545614849115315678273272424687384609851535344904062368030445195098667684677642541759243881170779538784125202334051028606804487794623228588157321527274351144602592837897437202699860399550663479440890253725842128866143074604837425444368974118663798495305076132204527373492715998962962175711430675338987347442394457056769852493638539193154844243176436510953336699723233155066092558484590365983408689507418132147775180703712731449055433399210481306837095762783443959015739493315449216326533824599285276659250040039555096930462071919788115083054222920986969121420902694957808470083992520964122800500020300038704835753500703097081921803587376738347529190661185077283162059603355121151862089290785950994501058074079964199694326719382442434054081132982102277230402026233038111502974592649033790104653543432990111946642800696232261791284849111219003585750014530531267574315965703964285944757302591112716520076559400623737200337736397844898175067128796245218727125626371268877930393483879026800948810422347688269588457112680353755967645833558352422503575529436204473690639782458945760537906360741800603238911938445339718698738823627184757403047174624041314141414803553889653041086777353309349290453497827863616477612291576927395960739306682556496703443330473023068824033249226578971451543034077980844699616400221257939443511637334971852073257927281323204547423908220371396434316321846922813278145130661404409647217213208709077146465071394909203249338838947851690228383817840735968286763744592738546836775474869191982757285537467718349554995980284238789670488532170800341088917947501873962729095350168292653390113276217557803255430034511725112875108484153152928019771810753257050700591954469163264089111634786383951544319276419465200614699209202842511998064851539971335087617120667451284505918938058823006780381943589033181813929370172493358097657008733468355460221840470612721236660277078766166512494074024607405816846344711118664358989795165808164608110886645555030890740080420169455126563474615010604313048594367588390721378242804961880970786944973067819366784226458784608973971396166442296221387472177803070338088229752806784453713159308228272453799331418356451636002819455230236144563183443321178306672011694357031408780389116458223498636256345382541669860436924245251924662492854617361867341492484569126009023826157121251072442089935408562675955999889312023963250101195989314508855348524608472974379281772558629034271987043144312667517822482690237014729378448556409046333308737752231979403025915743730160102267754758996452004751054892881257290342745637315251482823151351414646422058160041039930625137323973975415507586379439056692602373132314419388107071121963326016011578600621383486145190535623277471522540192888051164929852111131846879835600017361705753422607844528334512848567720914875194257455691111927994120580418334233308449092432450388795687066756413925279481317596737026134520427558591789515404155681806961114009645242137142615992882208611396239774577374815960025012029703974264870671661612932250694235020875245249060202937910086484170961383671793395098309387976379354815848753977817114052763111456724392225296292242230833951665297880759818646442356454142420011682880204275382749129953270525103722675996180320164031202517420117647365902448426673854529349286897487465271451173353050609343935217058759653072982834679801915856654233095176889285420104387540789624298609871281211905154223162554039119241610376950803329177984621836190820875572777236575439319907501942752724541032573906828525226282531612311300578444636966503651101430425852425521895109426696625204295778714737418501307520400441496523420517352846393558831059264593153514910915524512871810010951112143135230424422894554663177115148544873113298772727174341595506318448847806766455838945002502644367156257754158306371766243792993934174194397249664211937316374039813135353823577820156061757461749125818296619833680818979302587488205237669060086001030070384222423956690081645809379239269791829096790570444897016079043422139323315771644143884419531620038800955446871284008280289900784581398377469865274070370072452953117570933629165297575271842545374013850341366100069300210145779688911837943958025429103208582654275177255620944302580930718298258747719453697328159775548155259243980568637970185664354225360474988285872122659598494470708350294662645259219055690651023088626169838131029596508714811152277551400986090471219904589687754261554777545596155307847466775882233752251868349905827745184931984272707009716332907024162296668785416466494807638595606430252375331692877458893891727816726271641093078885563482950942453714712001240564111755082351474991824427817193722481392076966163249597049351734502776753128099219848493335471045266087441753540510644830330032603198594626780999454996103126319546815947132110319292867431162062299126723895632763370665201482303567436942633818195121668214195086053035652077459776159301373754203591439711265286617555917636072244291559324821465175252911929214232998559252109345682922495970848037753016653445180074473873644037912737974035824785411019719122825122235876938752093959580104656069807129095268459028405932090505422740090841788253314889366941331698534526285152958344515757343469186429244415820775794193046202169392842194518828500244963884962391224239220362914616007660859949316772754343862173956849311268952761810756435819966958642979555543229022468859362359312573024001435039743062663677881576089343865631297923549863457194230272714433765643128509202052321776311179156749577644305328233880237239429768686274515478359752011492629529389734995077228406173498755700091406772610331838124654261056310900429130266492544428206594641275418181008722695943019303121728166943130835391336104483761468910149612460483832966615504617597803704942354730865630529974101204391436726352757339954929858585169040650599996605961205109575030868995972468410005349833479077154653836622318528435463075000359311857353761294249067774158828499755221999306114406559094629343752680027579733767403514715128901244835152428593056654324307348270341166483778558936209835969769698083529685770183866808126095956369252032488617272235597455569000786625583536871987531127251465015095075381663361895011883554127198979856791149614489641244184664460224027393099650536797264254786083431680189312957500632497769483623088856048921965903995030794798310561661898463379907429921267633201189102411462992890031818479865035681506164901057727631850024000124421656991869600262028833573231796213078749782364804083655881961419989678251765799060090213343223138915406523057338943474175865721533561399383309328090210525476292255239179282707214157194954320890145396427174065046909563041443517207899826170719021885670942497745754815017337653296180834480409037619212252847019292098795126843065479721054138403357367054512929647502324476869432651518424383977882415392725035455079989125282497886952906138875817712938389299832840703125265368755446020953441387575905737233401809384217662330603365951257544544859717173450842825067863389018698773660566061498325451753438404985827215647770421531634144291103638670216769996745774920650076483401366142492667116893313786344011394788202812512345279436784756026019067401420263435455577161014815248875341352019105784069701061955470963110764038238966548165978507031959003992313120038468438759444342597410097261259805889928081229439352695753776669331807479481073724874945984167321239480883918171766515582767196366427089058804342294329397530648228072133655612047897731826263026095046155368777155613518124351250557703331128236393361905801791502543921348023689101318142419345168874518107504664651732404161228618391009454799056238290027514452044401837085097979254133980237469452759977194525623371329452872173469938885715648952885192557239577548765654521622486503838361126202402681411692288946331380254255904009864034282238509701605715542559587242421472216584721985517313045176511829878701035041172850821310193904872264061156412298997938162511142832149017985554979481794580180642725744884761064817617265166053695313851867418613340010193357450335643464722402921419363286612162149647404138431026895095922122046351102537625607061619533429277841019075762234511209575545018021708521429569210922066163003167783733104696322451972900530640453070542991905757351030739128494432252659207465121771731972628756358502683722800171862729729132527688535033710313781140534964740879329789009166908629549371160439677136131528686414803160302969556010538642641405022773533383298316230975799191807175398761438109511842340100863062820008548642041901516731415824103763754736004084505722904860964224500061549261578381720056011445725254203051862041681195158063910259707421848500906423157404159182588791652138007906415206623192981230213981530459152889983905235100595844129362313642684935947097906308436042424220628879152407988467098895744618532562395340191930313276145253801771659537176506872901707690307998735890725629086922820254372879653034438248166804918652069917195680622722773569036091704426143152494650150968037980195488088097504488425363538622739557608819397563254244094992278787448932693037044189551791677301400765092287245193270189848740218001174170642280171255018663394650187638815365683683433235353423740484466057073375786063446062761910428906656973390893857566432702887030906883668697759016111925256994110615764457407352777460275318919284403696629143521289666648005968518990153942151444610779177437813704879831507858799934495055550344171443908950221530087124826400527973869918904356455348882373433147882924843885297006266855574869887723275458309421014360638464270578616277649048560522241012507636847103543764460730072933461768044414417163276922599404657260542835078006134167044102378275270832432345404033090427409738050275695697513387213654711567762800365209692959872811496641460190053746642463752053383367279846118276366822599936253977288036412642893313962597653394551464743679017148607371094383480010816430429753737349303796849932954557146866897820771114336933621875323030298347297874937978359413720315927241056963880015923120149227084054022686179552132537149084367114903498404764013293175061476026533285734649848529539639836518508976145923536867366199905405586216826024376805080580179088790839730868616159895624729443659864767371014183854304195847954413662901220311138531333323087527665482879273206295102034734951787847645394619481385295078596645539325538363452828033569227589594919997705313957347481234821613376260976136167166567913404754865496956517113733377919556312044484937974360881821945344557636359562545348271366518561202206220298324889558691634477909243971424349586834275197481066880515591312441343151909349406596435099296799101566338901893918952836042926287761542978519809836969951190825646871263013980764775351895922018500465085190551291450015152146725480944503259808294768915042359436633635907297449660767852571389539145800865164736397513614435207412743269110809284415209638968166876240442702399319018944954950817351933732872224386583205927092809803657627362897030780514951178944250059641868514567336201195793951996237865271250346978077944587732555186952658971012498842882085471757190591907758605839992675696160894537377119334383770453886013471520451504405299253371725500433774354434559931015033350217245165976974447422448317414780843294654738820612337621459875303266414154066580011697410815256417518433840921184104398991119538281027902898497293281396193113660707576614528413159911918075267745811031105016681201134825325375249508230940410866074158074593182321417519780408750849875676054854990858590496424388019890913547480884468206052446717551642524972973307395894085898035972308610198568299518362814496340598926557450729506717256349941232040331251063030729270472884879029104420714592487934124519547661720715037464275013754689886346455116976664782288301594768021649734884025674844732918754197503695322336340454838025825425122779526996237554824120535263253529921268932662745107485494790292291410663117581902084547826214753115576586396059022836873532890437731738506421737895398125784670025262473239572359758049976821673361213215772817282000403117164972903042406658870846451439747308673341593720595944366668692967798159882228138712987499672576421239435234441214529995739136305497689763634084835545178216472953559706430381656489436893816899182364339690805316777065533155234233620588827279154903991488078660947858652112656007897212514284034762824647913728947066362077919460131763594856034714510097385693143464280351518155463101852113760507598377658035112801834189919106302934628630078670954500644312468082308803645690041119401291109672637738570209440278199348209033950189969381542512396436041733357296230429033440273055253216686050578594281532007247728791804608693061830727634547170165114342193816119969107599489779009703591434350398346558508814147994351863474259463162714307672099877215081251689166458556217736467639686262037233068682680351268510829758145832033488078419839300885152446592439691922265006006181816263077420778867443328348237539371332266323989529992181371478578324550942023834293266899990357048157179020141276032114480754611022350696920321658209291276639522736230644340323659320109492306564277661482012794587149201262608259281679355147758676863732961019034855313888945826322199591804960867378894281251670042794382285526702338191337405537013344799875391124370864195892103095741845833477523123109748490476907636862136566784730350685298816245946133910933179937859341361702962343209036156630917001353704079438092186054737788619339889761094214379629331172001551580094946514460257428573275996644183649147909913731205753781930646000330051005233559242785047174975994277958959777318289118569932842440859261404179696141093777422531509119111780780028863228517450208190485997477807513941037163495840940447066110881329829662063349052301097254901929739303465953881658462561328140321798298454945222666499174109433705189748497254170907152852376982637231088799618384310530755516959511186588818022707575939573870238664358885954682444776557457692709960166135242254035712612031706295220940201470825476395782814131527511564757666364393545380388646638061567235345675615422491025219692213474862950623673224544281179122318424975178955861183715462081917215388395637833432262853658213120372332189580974711577234189323048931976611447567039871663944997165951162666572312120197613044173967425735389364029162041275978157147283130594424415860071706231097290419476727292521186209041195435899147738201804306671747237918032597802789702283125724194586690907169685543623913180579656034251374871184113097266045405463359028875157690672563447612059728412953485230786635159557526199133139372888218614901701199100766398154267589733297224605783072629161461105503117557073003248335172942346996028364694043197655503736114094593202476767243994150693759745996484062337881970698560316045079665665034154885657741032653134556569575493301361758627291443012114872510635691300661264336180718614921549335942354319830984449961023652749155148980981856754138193090335012481437384916175429272568468934585520732929717735524276920665030738965789459060279182226529975202039207655099652829752308834687361219575867171499504767255138132339323859245771762573763295875541814733708764794568647171625158595974992877221810734805552833827457750989032933123982965972207191559313651432332294985167315868452042960138215742352099319948236441304818172359923640141443009012839677051308756209893224298612414131616974578033749800319299955289110837641464641094899044970939367493855791023157147031298716477028426966108679433582714232335271447213442311163257312714052405949237286954985677594084063764185272541087097098454457433456149452229568699540239653954420206995119037020879301456611112869868259194406891958963150556047667131064330853210383907097933510916290880322992015268351761932081655923774590607054323519289943957160118258065746439281573641386431875780675920194071920248005312218790061481116330627336593820542227161552704269202887423810491802166215648054338017432321387138946151462247273092364298774969787752496668368056128768417609198151439574109078691745275615227279755104413310403676830721877957771055100418998002026922047946194218053768995443098574745465283028137436946955400665865307016465174732897822769087973815845229191711134400663301388488514790323739984987965695267433201142365983989739500019025451401869305968404179099128376045597902902439802022867334167479781703536044616061192791149343921037976173918746305319560970375980715408368648132204912124554937454035908512260109828012405119633575618927759402142917842115278004524126773368730531540328969686981686169013107665936086247597699023376733616677588270542017059659711416987320488900466312194430552731293423451558626843251597438707871688940449230738946244341218144970199356730729127407091921705810392156997380142746692064360018929417786636148794536963739360750542557459445518927668555882229168136834786135236797451492575199463832051501451611699769578225234638238891171670186877095089477011402547437248859263648612396966061409045508785325736112109420779081319897181552273171119788552256228736505280506829757267858725952258696600389976314347371446855597849536854957495986115376368625577109687302937006546510400996523249796559901859282211675278545548274591626378015656577376053714349891270418046655334896252892896305403035583844885889703421163117029929847772146115239751255106264501646707542935448651694191345289079158117174077870171100585080086473231776420054898155907630586777541900563996008390132291686637037767575302530194434036320967764919755929644330990390520497601181539822712246363527481562990781183085340999802573624784287455998116305134491141964388487921186283985965733584767361502441486059972602688051444030794973919187398401842009217409658514513851202623218902748697160906780231996635340254666433646759045265183085798069295079249667367126823407605090994851716031808236530026182969858858384453857545588395082524230804990930471471693477919355570925761879092340686222705458740304670894721423367287960870597200191428331640052171586819311422503263066007250261538136568398885720210394221225480771443164579826304874161414015450884834360132812976175892950426663713559942910681639066046245507751481359982921671072490939425252450887309586704715520230637429682294763788265145268406403306260832016683391307060385104525759529956681752864557796711401043609466117348939244116243050558215814979556001706435816485414688547880368721244052470960560466601711032285010416620909247528333103659884243314566623970243134613243088065606769283452806645800554485589500304677231515382087654142639943593741449194744983478676766424773231038604921090049435128495545220098464748586712022155297528061813869110226795717213957292191296233151983617996772976771306858998166392646105930145578698863708315154015561002591472607644963712358543864726626916371440898001453915998878739341318259192216372789553100520276259688686343817802255975195078161115583313410002903084747065097022066252264385262629184506457995509842543705009687355805938095882958537422239027831206035294721391634943853809319171025562872110574527939069343947432154788063737552187853188936681032247214908758610753917481897810914451417806937911409506691136145289133258224717960532853515712120390234438996120503764399652241435339218916048518744834200685592643628357600065915667869935325257990738781484996375075514750845657153451210915890139709855149277764554530409201387406483443498024816560296911990592230538187341195887269949307332789313595523749265719676783210734839707177971951073419921714294532564964354209303232171699063591908549918397312441544906849405525117584649045820434499364749341731676487918154731932776420962103592371953329899195955440693119094798340981656226893904356808405096426170746212903768362564954671388843294859720937673991634930238189079510823510997202654850177028409575596385570682536333899736368698965959209195370552635368015559945572422735773647252421273794235229759111845059775809057866701220840707597019663450362366188772822061318209000487953175644094533677365501644936673460365897203942379019090055972026640186452796748381002150352591418891254871685992360395955729963314159901596863931813279850114230790233134268190860217688488657656327952499706245869160560919320217467892690994682374519655907639198093379593752444821634319440953215648652075294330891636931529335742740634802947802483054063473140873479878598023463233523990536602332253053753581027328740095327765382078777821375660788535431629208086012542701609823949620842095748033326176352726400638568432011370813723011652701737027854501512505843926114370458873066110735284625896220032453404598421463228333081514772020144994650974445258552982346834123264258466515701275872156691558149358530492259327733252368975599018220048871313367323683536724454984776436404162140799162075913215969231081917447491596396960002303234048831996140598919052389734210864485044954541458666190190508792225976103695916596552198479291450996345682285976881734181012610104340940930861914858341760651848916182675823356216557019451216255273832108252852018466123685861934168869965081028870750494968472984110848640850592631580441059482542152654391299307557005878954424635491896124900989485369873569654101173775288166041704774534409752373159970417278385562248460023579304181472624297875936088316839837295052180038566248265157260769518232728034029404273238179012587297122236092524069021100021149975382311847081932630258826825469545375908891177596536172601964302267926664852103978696042333849397791461966132173717705960072408252175964512385720773376346564198253438444825685307764581754373714918606765866299701269705464424911671561192762240009970009147204117744696837462890550445397989647328434606148369933238918701325900895290565957154786534677157595115548604508662381687035132793773874027451373225672604453185343184441184482192722806081387546488940639466356530391580998453438875322473345745779930735392913856941280179872837530753878748586889301937179705905732581696631003247758533710035918777603855147583346169605042014993640373649819957561349880377319681007975888337882997322994149502783077595727110210688255507333752055909973062668396782762831564403174935579686227784422677559699138756762350664045381038661476449188765234960349648739343219745502853886392457494114600110164337891972435999421028025241194202343349155071591094420430526089808825350712567790883531133378985268181402466968072944611697220327832105189823699832885580660893259340636766223898576690806887047448975362286171310644968661714682633495908515469916884488457940003054560929713179677456720686282602576965186039592927334301654704353030835780329029516905987153045892332923714311916953761515113497927217580349783824727260670206265377689599796213964463678811537635586804103177616135264628041058734920412265542113319590739741324522848134416937432296837061765323254376938411450381877290851598075176687089550851807462832227863538031718227982085256321770638471901240594443762766054017555669365318491566923698548077706143391376746947656011191624968741008330675444440096229827855872668924524631376218082628439159837926929125851236880761091460901070867027502332622495918045543159800438661503233175750105658140971278492786362252788231764121555654355455910582363255683551150712381945155720039797730121925047497739434508080643541923763188726618718707725778585051064847260980877297238808763612879126609683792281098621522109449648587701330290512357116312423946367282545202962703981414549482011758029623083921448082168031616724506688163197136498797261612166887183975515180635787338966606266721497984640556836925051295717547217041796124502672343503669786711297071360027631782878446678189058892061605489685549272892856764045133881637278051783629081175735766081658638160208695765181398677569041042290435033008514067171808518555561619181467620925150314782170276415650521825949534836772093647606272093317995205813875796756501180495619216929888657396425319629578608603926921808281867602425556439084862595301760286659722416112559808366853109519063446390549792982962838009736433218046802473767200777062310634612249628290257558990972129011778073491395827672149584039730366565651051379072949198699193561124511188752843129629917555673049759889390667718686924504628371377019994243739696563793438214868814203171752544419505658283837276431204696667313823884222379007147834099405743508414513286766612192137498414235495732705068443357632540780993903510315514996351335687864346361680204994066727754848274374496524793623247684273401538705046581960141832243659856772350386714947773915978458769611016665269526652202788578628564243998723989300344706806359777957257567350360196421463148011350443727828361719754384638802546825241601622432085208249558582690826813566648510354214781138441777029470507920886263936556805646198994581516057795832529752349277174723349162301559881673118368232191521383880175316087602349936083815728280473835032105367743894315726296302373502023239376054910432531578828229791614134027449731302163584396321866387002375444675856027029445919310999853803248321220182261666270400105855969287235922922319617346083059463630104695913971910691364142909706736486011443036645280975327272303653345140085377664148732382312384825863583304749816576898035570490059092448531895170326418352191712691778294372179036648855640981230199622293897437284173496328686515259151211722179008261159799850244909042760682014226969267699045174055042078340524124174923697313674687863120237203656118514096273631950018794917308448172761191146939598193567849308945418361432461177923185448827262005721847459891572282021779053452350536262628764870996073224515260494670994205170171818272294442312113325037224311864591992277900860550683329372974533296758919389698625026333743914855860341073877125891826564961167362960848124335844753238835957524159146879669709417500763839540614662028394553717749649168023101168925363541031064298615641336623686660415263789015423165259775167251048774068439010051980417229057909832824326283661941216456048179349290325066663296232973837351242952395682297943747969531722398783544126591658733049261832725535752533855895315036037590117619377540073395451834474590022910868979627033963009110495140382978468593172777918807148797096741159308599838149991179735529087671521700063338320625823091384378857736808952373688263143077617465834794389303321189882868346278582695782337109496636102361810150689517622800033678705374794949091796603207042503871949358426689644285563774514810204596930416332462810918545111280105722691368692824533785130370807514683211849359124145264250656209590289745369029268430883457858091978532410778823256343419391330984976158399065174735707160446796496879554561219389585378742828728181195238465290354684624788681093111487613056461902828361941104443737586428398588603535161675607830120951119189595502991241415475256935120812149672284430799141857630033677823255695269576207157678656157870176228065621154648249413969783400597150574558539389594791959405359111063491613995764382644142416270468418291362877030022722926034535858042996291495804372105746801180174923920849015755281669388632467523431685056780181692315813344977661256949709869651371320881872659235479039156673260104581420443635686682271774602442592436019388822600697185458963330276186821535328380656286553637178026474071959704819496264896197520245560252158421078249800552610051342237806783008434877539906052131524129264802615503128516023426775367802134591460650338885643348234480988646548913420690607324731657768455707088256027243245041414637518089642225456106400216223222121798295159207495188209331894550574242977770629749385082712289365115075118751824486520625501798006406813104573190138872333124118080206712964177029691375640183668126806877973293521273763877787439525596615719781478270585146515900737702312688841723582055792587139268254517724106691614196292566961483368542116624346147600651842500375006768138864131205818543397892049632889851813098976777433694292013023073043853519855445241072950747285243567484216100530485909642217685640322432110081463387722943129715384691198707812954585877819339707411201506357704743024429329078558711312095170216819434396617391502461293318266766490424989784257052111021973203317665078759688334645817217139788682060398020269454499324629582080193280702275988652313187544301857782948849426996419081496839450971126308878359032292793621258997755187634663632783662763008151104901895405254793569257371647832750129644589821482765485815493266820603820493138190754330815607801164059042281788587832853402145792143892677146912540845410539692764041980362747691095103378219206073633743243530393012383596872980691983028185457094875537581720065369418498080281028347136169782268360570954087566813690366545823553119905802252921615809388723912556298959028619153645120461727661627579486667726656755630647434362046950644746792938822011552004682283072444439932588192528026594392067700196715932713589838404864262697870037844734447726100600530195412078777071527704750396728511176877123938615113985152200273585291901975470896789476986825866903248634933788450005558850809351021455747281900299270943394513294919047024433714800032574900984649494354449985204488980650595508442073961065625400294698170595677910194269766657754645338358086100823691523060053930584609797512264493662669484855511261088229680981649763575849084085549066810827690213491856745821026573377221191200995856686306753023809126416276998682954741668204257506068910514767012221400862179322435265878778393315611357614994531106478489118474671991397155789888730222738138450765502090135867324250312170509416637676790379827588863442056209327203533593811025772492848753228083164334277933853042091490610231687824082059232476303121810277724854973466292246301197924352581901933064725343705376418947302612305118087793061049333353092960344336841647042536759300864276082157556939531028588917736639454877886087801988708667686328628319335046143230238618101566361303944187441632555009574057536184987756287809622766228073735259370610656861035854766806636531195671727394733163052083955261099205888059949335112140452500285731424609461588215570302067749072918772738077160376251387137719994492709427100174117128601691623090288571182300883981569722401880992037401588755433950929001363412808514621702609003246409422621759254418531421756758691255959921487347702446401347562804914681415551308416863625927178456103615781895795783271760466743370827740110906517522965829870514652001418258634198088168775071791780963010991570095528245290530710788592646354764476251716499174090154532216973598441266918739154422130853418845799322268868801247863320148991421864312288109762045840587060731916729929863176283655488532664673898540190839246259461145327345345672526039927468810677499820999734822618075546275791614813085502069757905040022162106817776835505485750922635648418992039142818158267481410145980668603674827639631240798373507744031947008998177670537526956379470547705525561892678803563714203362474107907583977735236414405870347248069060477080750152268458305893829199444597161640848299335442020254165374618852768492281218804585377740581249777665611776174371719936617755540153729000440841707473631767263173208665118364610489572904778701404500234129600737068431788849673325817934432983775883806904354880440277931995096395382742989475006823358576475899351928284031931818677067167333439133260798083286400866853551886218508739525278964896416229932391116439062412567343608734048225968269680827406245040701943504928137081088904473630883319819395781010223023085391249156141608536087557816111709423453231181422080542935689045528367371928417940532202879833957491806103122409582436048860637519145106662186184438452493955599512260626743568358648558527221364887813718909512224014848142235160152323884271503282143795370868254276720710311114537091841963830740198743574127887254545218171230510618952257206313289713385421100840143189170946477742165114426918586568704344594837229110459000075986084761948347978493595407491216967665917386924777405590990792779649206480623838653836101861821935648531353635999537257664618260706184397047473527226570955016506550885726595599537354977467881208714240788879970842380380816728522867329196159334127475728835628301675830084229374243069378149926861503392838727964560472314882536344953924653008843480904418776824904072243112300620807246549707009392318378372539954426541278436456034112699019068839591446282824066146449557785674138123615346708816446838662241083971724448200237826105500185571400369866527053676885890636400007629614935422669404731997383806730091892930485970716574497376222557088152554222580271199355060403801131916947947979518334917764270955906736988921216172310467210872741872269283152836540850717258404577134563757075069274067877745688244032060393244355989265316643197897023908126505935216311695984594584978388193099139135350415746984312411057119941314165160421721601717991317817527989550655705320215448672511524514306512029763279881380791230141392117003680862345547132193145000243835491169232922719320390046829774736197635022450943511011320147892899844644889294705446593164668803435118133232366867918436810873380560142716975784595023958950419334765533356003920103705960561584273215480624100857628709443974288459401044323923498711193475981482900973866340267619378306423515547505826897083177007601689927650310464681198292621428073579064356351609172244464385837588240874393376506806840570244120998959040698861604488823090121160200880340168088432408556875531651758070268430181580066495932578489552431986415261345381567496350219865496338097617011374066367151794910094139353847386691402234117974236673501767290596049270566450074856065848874499998532367398038858214107376247055725576456955992233360518531903526980615119524757035469002997901951519647310906544563404771297783610757106545387932057568779980498638541748129624173666650144956982243288327811541204357505359985745164917390029179376803376743204292629519860750463728447839844403560842714404968575474038386225072228698080533362395285666697956619007613207925298557271067595111142782375888533820955059425276725150782683457409893041371760797984659571613206260508394666857920036748068123327582779406604057494570867121163575804016059183519232526184659003937216357318234410869735634249514066692892864588501083955314020961193855970946927761513061074826282867324714908551693140711206063742890601554848177495942933491444518015172904552404941758090385023826788075099054996778736390621582245806734712976807836803924548402236770568974441794769400178345879859359068527198594984670937827669135551414534732971673434536334972828470594222974446768880540987724928957981410220023102097711338653342671698984008687713817371871880458971281824455252165122885196357804889209287176360845490681352781853274515357990292789417903762144157161935879383183866117305096175972879797310085639303436455600310348037815091425289642911627500859917925795419072752142845755114008224629722510022099256395682813616738338919059664149234680591343046388168988833586846297661524965249570421662361840523915977630311268768215044336305098324007878699473056613288661839818165033561422076907422597545572404549698880606282787898089343359858376071603858666984916848406196577894676655013877279385773160612542225910998942925768305755489469136732637252186783714643839599209925966102334475274726634064303775076140895477954976713486900677366559063523780035753322498711070002141422332919780328464882219456988305768418879607247642917315212297800042101732696129155058463732820776182117084145634022545534087651594343754283308937100058563409601042202748997781935650662043257332802457343251897903953968078139509372502137465681986147750333125850202836343044472007218834085009497645243204661903976374676939074244870854898688711380475742743815454888692561268828122349703893876017433377258047284708651886205297092527709849776655327824280042313625154399478955334094524687162705637642955818408107005769503971589109455026361086552049662499193701093967348167094708913177761836876210720018996825571074219332591670270922529716808796291303739292472685044886744428392065700207674405638209878787112703985212430852009454026929265902322846094215439425435631077074384316525902185069573928815871123579894348695859572735095280017361430964573161936854826971146296050593386044866228131522276859532454951233457822230910829886249299994289095470742640639630143182304113849774497477234371905619206787874780162268981683663201489809205083819678851944330035910839287073463650867219717334440823341670466165998122362349944815076701279532509599750700194726951456974433075208695652658844550931299061379792624155172767871483594864249074042626547255223887613579180573905926538905209659825848672996822135485388610749768679376987628845351107081004789647591162254473446834601779889266892590929032338420309790111217899737533286630448505149470499350451003562586613930962838868179112287295801738053835350081733874826614529492118112654071380032460208867558613200637588276694048745910678476482926609747354447189697138248930609237453585627458436914494867852396934543875915427037376852097646848579702075798937104776217194091132384109474565387738432092354325279044311563706756628893587753426721878463066294397506341276033791671880116512458636627929884492881330505826575023802676360865569651765845250501326140801617279535507763671859718162420498166450004384493400160270719154321682305791622534118489814136763760478755409139713317736953111983456019609820688772764274825048705585393923522337975127353483024745598539678707974496027111887158538034744426520768507574712948921237839462695834989705002671901226700641684253872046064680505995817226245929418308729133423517686688451499822371400832239378498865342973267340461297217105779929640131138959266519986421856413693773918705554274708796889824110061001343551872324405232425162405274161371915476548774263795450694479290018653117700396247999729702040444375027582841635463164787330721887388416350515992489410665299869044150123917044165756552134572052160370170432733938309236159557748991936936712306844838133917426139505682839818056877491765794331216121049957937045413698574549308690064394876623625347947535043856393658240151488468274061786465246808970851350170800643867601887509306720377747488854109337634034366600319521276666811722722845586942021355697885426081724297506718723356485879264378465532594925373574807196131327044990866162581066937507293336827867583580195707161854751352201728598307216653769152967802722472345254474834401529393803756272332033574950430631067978345288860390169985449720396302287572184295517098429257889246463810659935615035042153904035636371407903999871125273179165245318431108808440157748996927835598112976693096675920517598233748124505272997548045378116084576375525084079218859348759447542024699640943818862073545526022084668783448921992621287772135930292446375375014012513413827805008152055498970638928665665358466163576648989514552709698885675069474760811103757676582081192720134674317271812812012468018096258965713991865630529355193280330089175161362051739392484480514528725267072370287288712154566934283980394384991925478287068670434734218157179475631518510979043348655155837210329653235641066743308439447816289630400485793426513000603750589594282752377994875593741851881968106274177280996047302072100660209825563259136671724554095087797523447288852185186472568648962839157669028470522554265922078261284548048497142846619160238641073388052951356620716377697652751423323981663063938285478914800800777764168445628174235004073635964656634671694061617253933644759303688913963453597412020900085494697530064993421479349705136340041060162115534315680540616416059181203609867632274550351660735572463584346022773184216528051158374434503259175985421500747550893977502282684390229058451989612731931064545997453373785444222215059104820928760766047636325648706452460184349142547738009777005523146177769931854931478457740153815698556062700052802845836921497548655368497417716320303167072470393229935366763748163327702552928596779419227206063413708638802071721012749754132194511265255792877020218898776631576797455426168711881202030107489803516933824911213655683932066164899437190384727740983729211473712976822106827675431484810104877861542090684880340881058570972619175808406822243496087855147108543439798817481713546221108975713507220377367313597430104836031868581468785867490331968988808726740526367608553578992944550677312769845333929882674722498902044378445189043181209137806282966367017401669308319198902666123415064357097858990581240097833763700061626140011607007880102519136530194798477218864144793642335920059400906818588612177184144136448821052443861607514362504509832357643351405744976695313257201943068211119466058103458807479226571313615077436840613832094701073261329093000191508123856070704987988370771596582424933030588417624396667588708644734916332777447657035481115090406190238395471200307273265226297341985374888563796284808028906948530771703358310032701703496844839568325473622846543046460207325939289007837427678882424338550632534511311360708598729186662977402426193543348238623838883283132252917453588772476956421467332706115320878487489532997529815960169058942587081909324093142857223499846076540561517685363530719237750769621450291433761054953129252827533647776305230573337092916877322997084601444802021379593055992150808769121223069047780003031081473421344067397430003556077917964787388927821658743472476360156609571059323328396128310151441749142559446673962418366185135876649527000554624384885602972737985188687569974144568682314837826770258925916660756593255845965651152083535829235904704829846675094522163784647167190334909226780853469103874076847478675273830179061336073768714642980908766516055628519822185088213549091683421836000168964479769355354181925576564162885609681353422826646353995820120889560994261859216175944937451020371450401572112151825707760375554357297216721183963000356857708112126298799891489017945879840233001515062196838244990565940494723993581671378297284741800807057493412515817219470214534485162763033844735008053363088965954290654535090477197117983854358161583608697343557132180000552066865330489466606045464558001240661051524627270163036469250179769517471271972941431005190034768922951271878344180671613294110858215943001883965017827436922765254589396391923623711302096810285681454653797309889578131455912809406320682720945195139496213932166468612932004624041200171626817709438613267750163801890877894511512736671058773967611354737986113016597379894261077713488259208267703656284582088072970025974367140822068470225973524528171347080194826969759730731896404932912899652240101356086818053536475112464779912419236168800962546166144218211130514850198918043432066109582537995847314428724706442222060643013289310471409098985157161974675147049830804102223559924096589729895440424282972252347097311740685823756965698988826851250483945508445245455058992620067796406653616550272568129834291579426560613130407161715054663173400098178504634212128887991369656661360498816700308940002464363276086213831248612764574095039108787465108337925124829570120174871618964226494439283988445195985875884056559244039497968620359712203051122251021353794043824284283166431026224917255155221415748036731507268317794428316676231909028715290755883323328114202791926558562238155818220237330659555487795472982698878015817505546581246057439348542050763622027429352544655242115615455355169329693033105863559449558279896015798113292600924008588234801436958579379808044917752035287843550668093475051377032188462046228127916909385793616023756552913213863932965445818346291660303896008355436812831307941604817130599318755339871193254443794339288006396527116739037380784263847487096597058132528026660233313822693471440847458003748410763939446530999846575728097827806209828137102261622928854890086534390585074992496433631324484895200802397595421205365275030196235460734992425387389947553297495367785705607815900831191002459021807156770279864329180305521664467197980795556088588978542482483856391298877364647946662588270260050164423096108583128618105520521207619710070403449511557756320816423787156704726884260993736097947255957141800703250166971232364933050477938203511184891831310024682050290001071199687770659559219526630763683952635732843198710465202806016762646254349114442252363119544842645439921506738089026672517105226307657432727592259272861950541542980213498921360880806926252402026342048188842139088384273266675396195200334780137141468743656577947322745400608287973745095679676749145416140809458133304885945628982033367611744017287579138039740541167347515069226496323079587550639350226429142414665143930516871401460952601698538790206880931456028485581505092524363736866507874754537828616544953610539321823900043124203600683564467321186246501856973552727351356098924785469520694472150880076714675495221890779121146361665845665672414921021759207712019723173206451092816897844631761672850915816369643127711679870185632247248343086124392157985395295629704701227419180617522002250580014713981829591931516355095323535061516296161964653101060387810367453208257041976777471949448438725026871890944506895254603432923674985817917233530177102744626237673410124949950313898993076621597894316650327700015281728406522521192340867185185374635902600954959600425622471631917379163744165292196982395063694638685400470027283994692215949844475493606913800427838433154995298891055719979725263523771831632812706064605324803360241382953212046384980751812183246276731604592698908649465725832419024267530483532864898741402565834709778731977577945531748556475460382195812412464987336849993977438868812983505590264905332458623290309791805419731994310090878646641079333254037978198973702760178142189632417311990928821586668048016219088824318457007964682667919285128937940508254841511746400457807804319945377600215578209092975671713379787727457313869925945471195264719718535027335318054668691127798644909303066994919099196236497336610146980946098995173005543713416853584959190650757941551321051614862203487707866326555076296097045173145461813234669187050709374237701524954544032367541720789093678973772871164750346408528401159639983577727527880640401017077568904148905452937050627376854206757763801402771514888723337541100981164111406078215803771474082594346279088302207055770802028495113611655645123969981188347571507100541430078211472460165628688582794907075746738797830325057783637817228620743766528265324728284765221936815513347309227296858842835787376954839615109403132881002683413284696960001551032039870116434161846174814041368748725716825510958287597051003654919380655708401833073120504696134203836252657914295325944998991382785836794352717222245028299990282894959064252125400202998820586155781649034365037156231043206449526724205559453504571960144153276335591865047264476134788555064435151312656252021885948617211896255547571643888712918517164713776562251688663246394878809728853244783291221773844046506609325117414484400025463842654420839803424316649710701196961356176999188872431583772601565894237666481294424267746257569281046486062022577658150741241041328017181398265809832055927613125316990612995182317388191597851214830370020165865771650645316029861662272918376141217998371073911383850497527466803680012635467159106414551223037818050727528821010403273364252949930976450071600864675455998432832373504203257616460944653845360562306440560863500015840849560898157691657155930656651996555322505927665790417308120074045861825822823920543045001001376508880296488683156808948186299152322918455582633137033257332039664913290762638559440686385252032216680202894142855855688118738462224380165147820576436143237703827079764328573299926535678383413416357934797374349943304491598824515670109990425586316817166283846013492589569700850764034486208924236876602315017393507760671990180949456671344113742491676596105237373765524407289418280191816714739761134729158179494522025950717694090548228829503745183979797291357663672394893767929709584816609267017794153025031454467364755940742110169308351324105908848303985950859772832031530910114537485429867997090289589780210918444408031486106371780705277551505476568657628025939930277363119896407195745914460320383873810708472084988605093965475852635562292582263162674283518084978924185255514003623716100581050006491691094618473406679078905146116697481200093150756938325050026588770223196339204414080110513203267170685808632325876106166456296782062754073092884354172169228298632910464794999324553159697584706798762187092921334291512601036780962241885004020170219113018052902819462826545492718459715712338082541445994901372127714396602456868949793006598528268097652720856398091500558348260198723706743231349092227348108316561010161174063243367998437008141621366797351023820157137072861579193601534320787622215086967708876271654020190647014978487910581705168197972612135532978708174144851536863626122612564741763027996698179124217044860490662902627660676967657521234002271090969147159448680605076866087599714283361728895820401549156547543118794838174214949991342711246840710941116342641463364649423085412525826983449351762132455497129654629552773275256882924352628684468112262851912386335093689749995196869738965722434530232813046243243706078182568340273207187937365399632515940532171051074678463093323984762716455276746340346772287199067783522469311885919335909248361630918107562427522630098990517606001105185072834655365179253783475475113624660167309629022935345967596180375386523869330866014980820430449032772467460669738979628805182132156426493457794179683758933281645759459523166175840836604732708215303776367618436141212147192157422605473775317540680343348940967816738884984157725978400423354671426527396293262115034974996266836481473821923265122644182041772285432465399167097344301131515269120327542639888802757116731542265774463839064218222003810143014169394050172979333230725641304982493603482186060717732682139737917306906444882642100090905281460887742478871291860220745376213974944227218382524124982856351514183567717781086545402249606732395203898809797683223439732845605963057746742549423804905493679824914974251295127288006526569667752170182332788231004043120372732638439400827898815509896529106805606651912470559592176675248029173850139462747785314150595824341381506241180409661312279830810206108034439874980632301038691717966606253929045369254472126033921449256580346648389751709087050855456770818013596606385664697544851734583188633991813663576376665323912553050364689192647905972597148603697699335971639342807488249031019219460288690478466401818997565630322531679628818343347802542163081176895823752470429306706896383621141154780825727549764118020667060009102454303271048316852383417831325106765228449591710246576147086330813179472713849703376953487773687619087561082513210746674114787727571629686924849543829290225864245321279244690037640991881174276009563596479101106835681625606548819830173130588247970903871448588883767513750785329964955529610206859034427397223109358115311042177175763829170598388934112709018838142045426879082870114355314393949865008158328943878177087164037069205172563801428226057459227136940926366814005276448498628214485957754260816958554657085268224682194950583613684210966764567128212818877758910992430363100838371224785304929444799695294909946109587619861984521039928813718726439718983761412883204078283796293282623120276353655830575370436079841234810586089939271178660100695698952709127375910296999338852538613010216216144241122335803281933050594668203166666000381083668638658319716418350736711785347580875854273450545243676896127061792869890096246067982521064443191342267652954906935410382167819158138308952712722603143426656996286346790510698201583879525402688158581162320397779483893302020371015900079657767318180832383128561434293750972608868870556281492399293901186554930879225429841054528032191397416527589601642492556518773247902912802739233128886333572809928757513448149638095925207315230180327363117321636071923247174495084766235662569463544562206124148080129458842487702351971495117829631382071949210821018543507792879448978212987421238218344948272850732173552324658279388044741361154837886143918864663604014614035635728981229308732482365434913536570592409087045158814886421580086620766941439079096105470873813164816279356935846511863873797989610368060168066398604143892090774016462601144694477210573371135947476293423856363316721432397655048100934434023746388930286094331496448681814785934435742824083923117906218556594905680607235717681289009415232377623955869868646508321952449579491334474913590976712238478708733410639463600387405351270281562501298408404636000355526773534434392465823257095746887208118298501330360058984781526804512904408038739618598355856061815517136113978358140630887230570057196627392804639906268530453047344036926664162956518429420491800230080487437532805881675530462871367968248786550517835488573119004336021061016302475579974548313539072051746103746652367086200991031439535733472252290075434842019840029623081422625206828419921167749191017015898878813818232685026673214898594366833441060689498044662374042480976492483671075386626210749799359477533002999118434858542331587895878267075216333697941056134248923449446927531177677861768039257216908817313052259571075526809087487387299664957688341244383537393845960486867513114961463854493575997424449833648872280147184989777257415625188354098188326805209442113996553488666441644403048808327662756933370053263978090592028187383884492599961273715925450828696558614448363778769650465348114707445874855724735315686107575498622668246017310610499473262128402564275205118583776437626569583831444469915951408028632015962065912642938007618093175845425441996415999668455111516353324057450095904730804265206491695224965037243294547978741392027747720408585510261244607684443369322755120240331043521357641414496830088359402267586507083787696643445112697869436381688082889254117918119031415969465418087835166452730754305947026944685076307220739565547081869450968165363622650999600977189097809598774066262192529882304491774395600982047390413803871746872282236078531519161311210731716448289832154263595816692902770037299183370219563532131075144630005587972493578459600178135933426984142629710286009270076404273157017600531373642793318384708337082236492633959280773291811717733819688522538164293846696088004074058769019438318083022604213577341980984254406984266338258325875757396043934204203691137591563089924176591971355683962319323998894808546644242606960569597715558727541089184313677335398376045672725889901102225649970921928469012072231017688702375227388752670577949334589930219520312195664013049230073749830363401800746879561916693459452220114863348476492177731121875051718622734969617031910084042246119690568467652201976492257422620396670609560816183201756290474790262296675711858927006425434161433096441596794508906755713388258153287160843515438652324870264239209919542141105434941868648323663775743710670475511529982385040812891251276488316563058237593117470480397514663065098152440557105352573715714905502329030014499069140764876299092267708374329325774094212537613547697308006855239115171718820272880557544013550429872395564048653172291347337501705596166519687169992074549470778504310666781462855887654967870502066103663407605067257980052050959570986588698391222471537595754546113155829959889440988016193232785031689498697410297313485353279802052468529285470100176232179938601754649519888790419274037567934457419132263237672529293382048235550975196721929795201430883013699115161280920767368009657855915549781217097909453559899925125931732218372847221202238734079435713003547576429009281343324181903442123650970332590990328737083046605361652494425959757647457591731401278559746805411289766347781629333038707884578567453869369878996515172337762884841384377360133532375325494856581779792815160789288937988635122393694106054562171380066828606400365977551039513328119220960102380662929357745340922405725426691045587534926803226037450097612383298260139141209899764713141743029270746623982976131529653300072026101724254905492122281858701764125490852065568383470725864267449882977760190675672063384828005113704561225215879507338740502341643072668700196120872738590640386466911095240131844151914983517913423276628677008798506680141456925825011958023706179051814595337260763704696777968779054458343758557772655409877649171500218105497919769085624377356397108663276772273242922267166056565599903255745811872068719262441251855064158577094107009845347892897732654693696128011464200202506795751508244879828304630779021095607689222925752191896310539576290807422960231260644541193321338406617136674716284390922874503672416709474756575994963621932710440815211408011706560550990120555541740742810288312572555520826228748650343785262777272809708007142472018823263205872481060219910961197408519554204826482217017274975539294865555643638859822693023505739675472588473571227636739015171423941974264443041725134485608359677238327364074007686545190192154842424050086089525470236987036689042293318040025339927203700939493343595068341977917970648404392207719890479277980685391627515552827794988858925869783819655494050172013095131441715360806071988623327492655466738025911205087284788896213212165073893798185457165880473763747270589343377829850011420920138441729885854014989816404337492996436453792593519827194981246139664904656380547174810767139465570702476321025618030826009358809085152663248007653418353407413375342586484272509490145874903386810594678207917999944508215793327425555815491897220412054111037120305298259361244193583527560110654923056327268145048521729675520749765911100047158369190047195318509953139739551347666937500524380626893017376625289629314738786024540579048409709180412040010909931351464703979591132211815949173703674770961298438949053968492369715618518642082036681299102928499789715884675172401857484776925411175919685031594994509560158085423565771691118499949133275677887248026906761837247597609090257700429937208592021393757678173433333839875707936740858851867573400966520240683843502472764873738710547932716533115169248672038833662944049164702786728680857361890534141026844535183036487551898191111435369568563035672710622707255254220568581011725851929695322789323790813817975649614577474526107940302689353088863525576827565003457138978776454604730773070342120944128719680771558985602008734409224917364725366737434647886870550810929273775587335886917633161770586143790730770632183091961248978039152098920152748263064058937814408867453746778465909810789843300247233350720202659164861657334774285278013968275000616698625678474230676041789070218308387696168484877318961341554787027690724651726841935988416762560324369317050471473264073221237504121243777087403031032824162499827025621467322064514576905720915665448507220660275484400795508189019992315107648909850645886632013554819012495915020713888108203911137876912041514419976044717014181191223037434500516790766911068170627841436092545706263426798640204608853797831010476306656192130449839498406158701577143248619156776965391991050089401653062233109395243168921268532296831273972378789409748108285758031868266284846770439909618509867120541796856153075192950226051285434156418447079181550603959236761204548047256097432874908651648904108096327951103552925903020736190941651756688051993107489816606685736713266423028472404785393577018036531050839246673132379826914984899626542203290331424775631084290829540808176150562479333643783938317704547522372292549428003741834745601785404256490161862539451500930639008439886420860528299244808412146591271365551164224402105789111366031269479365631752124201192762559153870214355486689184671020389014489665359464292723644743589214100450020878476255653177011037112640541781282075451976369209420854000374243061030630773339444442892293749921780416403207883177293426455644982180132770645907060868343246897323588829963159097219598901329285647580746241185325293184289113003719616836700479979617191508967324941880214802535327093269960032564003591536759772335274649652576142011832072155237053526826992701500001188634406999082852248932020447426254955402529443578515261354126007841557782444379788725532350654275001759961294046729334078695707885784168984458846227674891264350538810324524308985673015312682629026246106081870825015465974458461825064688391868629306423416362509655593984169289787920274903590389099337157134091450331568801764632812055079323184397789147574830619897202841973787562942496373348300592558027940435747627087365695391008162747197031780193458326688547078178003150291206399841174369932043594730767058464855422772579686617127372823535620536758888913914829221703619490409925247684392750663371772419982354723088064339602498819722298471717433987798162256623644346064871948104596048171701549283553041085816535056138548975592453153529131016518309042858756031649306259255651627800121175582870730104257411663966148852404347756072777669085231745374546440506590753566613319521137925104008957064584510921907180821930620449164495173541256384533554829597883284967386025311508072919208890192078551057578582509959290497445685675137735322557968397614208162434236261449096602411738191959558675852986751805936954451847189370088964599991288755902198161028759346750440170863135887546776940366030636340680014485170707876255811461163522418954451080154978473599080068587113390144417455172316273820194817281340399213280024133472973767570084456353934151091070507339343829264636088396021711859937008387240717292400073987067171371984525559057377991150766415950756536031585671455801291729198491964796769842746431802890886697429607970293947910809164461648968498067260602058774916371989279247770980768078456269803886410851657015954091387795758245056253779687240513540500754459830945413787670241607699943502519806657335366573170551675452600038266151960190350269309224628929556546231300964365686109252172998282017410046771601843414523625994192620322116670577410351381302245494201408852682730701418155012995477971397040226360497859021998405985518095993626342179158755126970683882895519916833194408121603419032436299062412965165406040753510126878996148387802168001868960417414926586250915232472134143826251797805406544140171568910596042013439750116929593185807757907380075478233765154664666621977007975860397327845895868517860805622640163540456401739396728312719601222620723457633178889723921781304462565026911849171688228620648806364744612746184578015801011989907052814157230535281746607535618322283598837660020570381303547446285207460295080661953860119993843465660025985257191149400054368164602017588758111444034686236244412744884968102042472784619786099217775964163221487109105383353930621112690242915781966053573835387105436272154985502711883159403495929374758416646992851376647863275871096324476227819079099380386838605089124961429041813257272046847096823518545891376568170579313506595355626646202136045813301554127688304722164118025907762423386440673678331130468624478375196325274295062576143023841587999846956997989798856335605763847176453984941169122719692632406343558947736199778299905670295071092915747746505610529390512292358804200642757795180987133696285524589228984612482324928001803095582120244807299969442916548203427683268469952315696741739131367698013957456267971377332319858015835858813960288697846259979207574300852089226412539744135658765319483852428458687261570571498428060167743019632737218111406707151931123791158774206557504956783418267082596024735322495411022522425511457496463847392202894746494159247400336625647359659068671659190334244567232426194508536588602202340537964870791220301172099564277897057589360582763134895796790357890499563857772023508546378082242477265313918315240156569141687665054139204791455838623847611369817473677773943798299530674362354933714838109326978368370332209202616973887053516545985964781666356101313471240082787996365405759038405549113588268062951638183641592128750270699749073797097168016085106027454042614436849571262765303797647544652716880812402022067880643602984398574204544896739802560506038113324790202302337707161743272271234886825707250097951028767720135884430743013080531334075789761206359018141258926150888939246670608407429722842766122159812540673387943951739282028681593897416602386438350083271734548229609316331859544545429378000601592782979311443092702036451227398331859938622302500946194321081246903349836550984632309212375621525802899399541265684368669477076677706976839858046946040150053470112286534163976926672808936244282658218278586650651514639333407464827600349941963676468331395738858667255395759387737157178938246680240943600309268612062535933255721069892013937580406307167840145574473859514668614101831785974115502109939995326716525695486862294295566552380099397116130560409280781783492984702193423486150418876299905531941559661297385799095295922418363509848879088975214088982474733925890143610156315602230294984445209798327758800046944008609228293594332263324263319495763308311895575482039752850452992142068505166106026825676574411343785434544489233685131607277985246748713558216999961555791403288766020027252410621159044920330982132715986742314970510678394820060869750831497152238100701893674648024063199769389918530660248875415538643078463973947079779421320364144008242225096936009013798248568088146229371500853086499080036323665991708793172012799158300523865902451127533722776195409216266093876252734783217155456284485081585180189624932769025027046788940311258552567536950951547118054441462100463091177200721070246373427831397474954907487789380739279663748938362601957679383074483650442427901226832368300513477898153298664408555319160623102379792122767626684244263875153588191929867971744208579317102640661257033259941692937320401124175037302327719748498389420778731895616230889781152177602552624250740738238291189647343842977240068572989259614637021765068505870385403901574125488786924649906720773161561056333347312659765999024425231577431861764187074630714733359049436223601743892096876660147961141185888268992596540894407935587243548158316030887062272923974494832318616120612952835970587985315053734953394938873541489347655549044040732053419513437347149903336508547375787332553480383318186350883943506582708362040013029738465931729542790323191797873308198947148761098040251234614915117122028777176991955839759827095897253673868191777066616292876614584584064345497309551887654042154455656472140274904688410345861855576038745821083976695596046198007308888466147282502762173512001683191082204314797843092608958696482994514486071844513590098641220150834543288751121277667881153686297613100534680558137629099170138888402432704234207397145037956802601134959530978064912991400603854748191836847403047364220807816502340930633926760450669215322219492728898651066534754554360174304179825640323965215127305509586446615272595727703826882793838600501114057387964691802697805670405809615016384277296873591411813135497120848485270850178385627476622984768382564253122185924125016799191178264969608687084106477724801888225428469443856507360613501676739648432884387190733181140436903258960516527123362364742311483872322566111208774426886028573251316420619993825228649229800138563478431483518577746315302183301674141503920330283275104820423436429291756679553132280347385968941560331986484298894506792083401522907336167417062441124152011306928685650806060579940793161483802373517640086056300150061221559454330904271555277039171569101182166533977979238157405791205300131161165178164639061131313372019386199512915865553886286092951661995579695961101992985842326909647546494457513673229997739349413958536531291779058354992757569330461448967093089575846762591636438002557660536047923933339224227522617740165787038147376116215346955857282412436122517578098821777152114266823502890645084453773115277128104894817005648791255022780498154527721248284509919551833495206100202366796672161003943255818018163767157638350353225591361959639711327902846623073050915742221487783751604730535770921837116070801169575099716663410136835448543754834832869128954985190381685607960219789624193809538556031141798536099062819310134242096244599540577284522731522197537091715800311996598345978962937864151896151275883592883090739422896073512666100066129151492230618950509125088443335215902765605637930019497295872494769261897012675483552989510372673384690304292849717699772914586143156583204652887432878426617860399512593845086860534115835761473522591744502431336398968658832621598600549384769609053877405423108340409787608172003846594079872121107308016629586185878303650341351478656173984205993515169813101435774849206008969819987660615042373175247268171589127041471564681247841352742987937234856469032938414928899223126411679744687772528373868813128882074122648974567362157931419991943474801929227069499512832288865963435162271529652538976165173110381710298302364356970818522090530317150971289183241763357097324565508587706119219824754051846665962155919662238360182447881672010355571704804881651580359443061895893270242460609987232128278932435570092289750037595271466576256026483562494028892151449426191663546445720828488539456378240577667530189125814484526317963234532068566210669425876096062528835510801602733862364168747885461118389335525434388453574406767446918696053779589814434323675830740441580407669909803326595127424583698478599253379714815937732926471070915276222716892111179084707608205059205245315261621984837528686005098615479551844797645457783413867635792661649954045854018290979419360269326031519496356377662445854118370349021457732237344499902271276958907438580814695719415575374611406184573748488741829007735161823187565838103108863959359064025869412835096063842040052963759068249053428639587322042220151519439335745550950482725775453384034970151759781419492732072871341086885350062307341584847922073903135868235575720647891935684771439092693803341680566728723419294859778418903913157053369760038671211717201771089904800953050985870095116781371139290195311894622652912262922872189503366636643143900693096461498577161746966326007371448478590973018180338047403144489248110861498169897838167340211184302280040315697906704728157161214335666120659341957606772920297059016796387145496994611132008409551622070925907225381328712642958162280932934152085055037797153324563680954676194412130424015346222226980122414492282133333087658522987719111604981632264727091099369881506221171496462888315467439046483162311735871846583275253999314236199676505731326419095437349985814764612736747895362720886847353349264994430858370701730520392855122012546937935725662345319876511862307991600914010993950961345631138445684843412176211724153945013275247889094776739070373542194805851037022852976973649343053656477907288386293312382800221847487134381916455689096474784488732242201578942718300837349229757092644169526576866150840045340113071903689361030935533781700975606622136125866141565619097466719220432860539487575594477249657769609540228520913418026967970656523299965446106233334616859678866927349467058657057615413840717343565520137543159152977944568294935210987120104046417536911889979999750795631626299410880760728025027335969810391000743417505207882045087736491118534501356845428755410336648406229939694308694830301931655690075197471077404861513433246363274641431089806750267790888677469358569570688215083627326463003757367201814546982974710666662460447645114239455147508032069297954539700250711271874323923621418030494511422073906182537492127942240572999267698405464365999544612962475886503199370293376582714623168870761200908717356804450660384089739428026486657308619807541209249592914768803286959001910739904082459499151935177637305378599362530201341746339432351401747307417396184282952091271196966302107881349416188170205309286287765042174639060781480826940404061903536463007307225296557062687138313962632745913438045564557175082949883862231784519007084950948360497739855895915673697988154062027415025504415980599728031990626391398978288187969496267693051070602207077411180548201409511779680797617261288098721525497168763737380180689353367884155182774011120276598041365245658487624978237791978484925871400383061514665045139759438351760083940042673992705525603262867535527611629995057944365967421422257167875377186520132627653912119759698963646396346968747365666651867049740028285363425029328823330646293926096226528436810638784106054221642359892819972816073067791214977719244378247661183018857963094251196967629947583510429437547425343723832305547983212849169970722258570710139299613299442895192837423530253840387200368583661871022996402994750065753194018582632524717093360342647924917501491192278227067728751298476479741213345730460084568807799654220824866986692565608354140755670257795497539278520095450430679169057163637913501473733207441531137802663831758727196064282950639846869175210428445051057982510743526416730652019474237264345138299572770394014386460393027256656136460830777174739698199159443394719611642020885342973660863965153124670443036742130403209584564393497626960761830280511028093037837591561883745522480896966060602175082709536505309438074506460944305124400340372120394187933748388856311995296690922867853978619944809302047938839025035230103261630620722174772810147095454244308505834857014388123570669554052816506478892394499962890623286963943984079813604553610418336620968623468752321997172029850314184834506526842449095094362381427405357233516067653989290792787105599236399428553729330274030496434310818836573793095023483115012687776630830408561780403110643747321663329419060511670148481147002533079599494766322990009898705915442065203955181132275888058192534917118354113480022556863506465753858765993107373515995829273831864453995255791615954342719571375717179415416262512477065218551364347575061078490918379434458567876623138326347662935538076819432813133722477000315057263597253374772664398732128004507589672091887313618826009870779137522648790040840916249496454100611152180727803044368674594920708887397475126131918075060846177598833491707338314590106258544893783960463533874153529061208045208103466512342127575533032129791924075881155821344822118939004851120205107214371193441896038124398888721578872322631354092162432016893276028888116121288130155978555586878871690974633248595401172415118612070219749492057718502238626197183994396275620569497846207538653301164835233732782344614309793384711259953908064191869657622022314983754812517693499728733116165153267912596723211722414390305908227718321482069326408878792193717811252686751896554757341268649397391472065810855847959286068150355177925310411070227846306637275586016788832073845490122050366547092022024487980193765913091974970129519430845843429513995293037556232933772060274143500869710201019597994913361578154093879053278893721053836047375323507798520869773106687921060909779675916664850438406469850000679078912808419506240703801381994965892513462692330463156856195397625966569968334799455645076681624003403006045979106706968226813897621042444981106387103844066927701353133688944297649856096831643328581803623337543085992350808054903569478964565957828876439086132269299450284282993825830253564231349426978779094692613011622674191523499346537708157606328538631011646148437966776704562593552176517055232526540125242284892780587160105059722210156409439610752718988741440944651407154531511198761348389235718625457859711000988744947143967666540963984627762405857438827913471256076977813186915167792895688262148089726305801648380965137466773015386333976481848606326238107404981184151251807129176206409868711739080892664893500648444899569492834931841806983256240430917320377449159570772875669405145957233720557391305405306657534711346888733763907506423299152477392444027839902660811751851675400681378427150689760661457876369797628727760919943414678519422272652315514160174868070051313285237158857227086014146587768632009251517839856615014410217210085232756349355459388693117225864618118608051088791577838222364147090440614161154629468625311304600003050959544455717580758255061547473170198610076017415810262955484794033859030779211376856036501649669008069134681349986287313960491599170260914489075872218882706169323185571101437409434801241450140733335983260655691457725877046229468316832142940016630143742749244378463344158543956434071680653146094320101051281123026986052483612710986846271017515614939868773349693414767756752326546436665854444694190472742979849996976496141268242714870545798345331322160936884502175609880383408619577490315619580274862117079847193527026270918113598611566766428463104828516587045986931159989901943008408786110785106984650930715392651631014484929861427649685764283988636565103288348269291302551315888963246946828583878449646282365024049665620475309578550111119301630720036129237207743667205050548525768022132950685065778654475513730637606544611044863659837415561727072302997667116590707660626342772972436444384109159955311131885180459746227943252634505125945137364948123539955553907254823709269680633042970649391581223541315484191306024295650971278917969687027936923094647729122577572422666570193380390593279298546230559841157636628961614527313873009446930354637649872363864340193519917286965071054049741882359665838058282388334674622309052744903097891871330141825692776100049704616387248553741769972470881820378845221852596444053323782976823506891456600970804515694633777433170781919514826368625821277871630260770641232851617473057129816961744992617669637546998725952708060825972143882461825679805785038872909909369685802799771224372538845209132300805250808659027879511190424371851456260421121719332590149895107921634284693159743359295145663753890772735029275781851187781686822536791581347065833979113331901933329723296582051658563532839861415418475188598396157408448681510877543331369598417447211484875155132786644947360858976676045686402594214395677824854831499535288366828667036490823955141572730423388405203934786130095707406829640395007062519864877330280798136129096606776787949495725130194506758450825647989949644167615130355267935058700485743737279352322320678517992709016603496618138317833096697422277719743673147342788696166545266768530472224459146730467832573237027673268489588258758708521116027896258783672620046420474816886868150110395467468169309533894187672957694106059334795932471113077049164603496419715560665901219626543180451858840637029819895629248867818169734567049894566863072542610458757519015163886148788874828577682450783927325233218308446578294857372599953041369305584086507040335148250730281368880439294562037216789818148355560790956503786194159929587669189088857517356990343666837239222642893755934030521612730954497891537774238482429870461333451215576731198581888462713139190174505027583794446455881624874760450130897409756052823537080647568329574036129716104582565585407259584903478136846661390785692243172950403452626869256269316843907250136694917078061181467715774511854575157061546136028866275147836024748747035523818816902844625996331023083394578529767206034469822316707036617230130546119790100533160128199265469846191147226399564386269899566829515181029472766315783799068221561704512660438956028727022819927788877985646638567175363136805403224272623227312142136798470222179287732963799135139990451986495918196142571585246161406489004198042320544887456560480358053454782848494648032613681842749462548786525467565305185740841722433302596174455273856980244981004117857972424258068815041411193629137008019579379202260079880649598820131776733732162387969231457994837022802356979151203731628038654530228377516440887615292961448472081591401498928476688268540474550893343515169870857401677328692442939445798926524858203581895668333553006705185007716301923747405607206471685024945172374336926433753048053883904940414003973625545100505379315443395161066407622626188893874243900788288286515867084412313483089875582953656277332368460579478123697868654933852006067319448468501473520562311508853400741105461155068501918196940843905516000905674172749860359050733564565544492640999091028677564624541042346196389067124670003632291574580812966572040783251565613391471656471781655208974048178534902735049466381364668175609223625692857341786355801281718150092324343599586794055227272682967399970206996405324174354921571804345297520698961945833135744930323377452458384607996109673295598425027029497964685440250689825853664528089988624311451938604519967597037519275246868208394070884636173539665411130455585299120445912649168775217274400140914848590511303388870953246468899445770717299216338555206531783970627452153245934080431176023817764323289834838132791139059743960200099787275067132074102970952433039468332685383005274320309761680140705337920527789830396351919468269982160218956712034125160485858620786787399603198593822891902111422225608584023109440581758560383388710897518006492371234835089707706318687187744494257274847388827224373849598896512385578050603447345812897840977202961360129518817633914901686719773112053741832819673333166720998304005576223006941187044539207650462590871269246624796656740580032163239441535794556746592899113007126014378661581676603760452166704407884593950172948672730294376547089169289578044285850349665110208362661877576380824690999745911133877517910449539117756792205343594744272838558716730133018627885380866640398444256686677876472025209572951837340521758382244731917013607620068445927503362421179342608205762593122947359124743770893444481269220285998618624977831534307131199895664761649719361195404324612579197367458747725406435187687595524983061361774653664744462427739052006211103212479921940118860210459581977019810487009167972831682666669288961807379537726693846323657221210904252694107682181709027557444562481652323442454750425460930667202007330324301415037316584519052502933056808666648275978027619392613285192255313366272948908162353756211370388314598687864184245155272693782137150152211340327815630289496334808043382750386874341888426435682556466381584320799069988872892351531827303231487566102802218150865420350114453568219695084353970268230809212459820287781620428736387309491283599410835262747928387529516499290538891873834352657805727884857576295536694157412813133179988572117115380034047828549688993709502263663404346496711176507369284180078292424156197355796225307596172697667304823018971022350661601979170707708922852537575801705615807304729675799019882896727359456727623707553673551651992146171222638145859436045844759918965700138109976771315549005304843943766412182652935607564484292227287384577032134012355122774093234110456167736197517008614778516386865012009536144494101711420707700988625935308867618518955941231991124298411774484524901441266573898029393145313846453301151964887881738026758978434216848927813543444495530778059478015671795058565259258316324964711433470128062110988350872831200144915698233610465128431523728508422316135087779849907570717895476638762510233366670773917608178517760772262315582475977303706205480298831452398776966597710422749577406474556477895071009305154605388973648088396064618407712655054374338529815384916246480851708153057980899538891476234130241547852122195390583229256878310542235947964246114435567270862882589418446342239694327572513630214500126260857063601400091353899168823875231035094894156021651099113812025681397194264817328995174868788904569981910652437667922648526681198840326555554155079189119400993959171877667794812974152556663808189369410148197613181111856443591278823569489094198309793894474588342049226410871072718997472239667095163310476736568206160674049080391649801710172934950612333530261307500872532461838034073564168294034738800540429181900811148815036798159538938876940277637011689332757081572983085986364430701708311233176806622498268689853158844928748479921551166192341698371567507902516894500686824510852138121613219650464517118435348820128444342571781923669519647186390382031983796550053706985758470366295930850754956335317448036201247071407914263951332844055666816519592664194125141930055333027100171537265968561423019618264157680664215533932574862985747232438463611957701915097673333991825842718335516928105487302745686136117023560131117945287704025649826841779793739070567655476190246637565073996869991203639118644302441624531750711069921631776184261928051763223194323219223520355687607797855937508031452020952158077042343367919063847720811969046221875564880474034852852591192392814346820819307251720668824052699963541721274449780337052843435424075256241655922488957231912241873797809743235686414639427476912899623684246106098182408683701415947087805877451651793484356909800530902391980976796092360452324662855029342162478723407114208099554349150834095153853523197697258044811028544700412763741844047841806023325521645396905692159088259414053740734392010937140365863123773998889642086657462873986203845947915767889238332503620536893322390771785130725662543749975604175688320870285383162011188867034928380583353151650756219616580913531810652964619478241591202731532107448271625526047247840209637365574518449837345132523812259780432713626148470566497822972738409313231512489971183117633079012023943471822543247516714561410548865480475569465526978547441360754829748143551319558570050263561612135790535275579016991869503240294761596700235350219773563564581677745829453788489686549605136309391843148351486192685018571271848622780898072657691421995244990639296181808494142522463793667316173441904638903965962359807270814948739677621455296057000394435633578550380541169501604965284287902985256890043217213687204390159001761508123665346370379934251336483450021816225188502653973008349054382557878625504319295522326489039782427345057028947686674518631975010761140416205993114171276523984994743557798041220444505494222502531415262346919186496664300165348232700753141451236681620472402481512793662278789151381127524320730366528371771416050899330774544355972592712340347366773151881782413051066076670183899514801577040999480972901887390378473264603769326270728004148673155203656984511547551436481046858323063699173721764597844869730807324120429319953567454923835023604065935439053777151751895212918587226402868280352317230775481593741592413986654091959682167512090105330176279392111799698059896343220748508711788139151054631571802835915400416372439877547028241277585796953772530225257237068359677055957724241328777630242880607882732547689636419645604510006681901622724425112155210789273665514189140355260058514590040410606795697119997647494692860399665561359996960777388147020052859482659511232892651496626639333308506151392088697535959285155696876143057386608406633150978000832229298791584665773603421083586191710991403071928707681911578876744599517444545475331620453214577227676029999782950946740135731955153395186140059041460226150858645510104990079233668918394284528386989366304172581696015893229802936797713849275289855873340210287273707115858210588030551658876221315072763548148379966352349218547456629188535750436121796031332261066287654236284995197602916333083980292291831096648230256540621705885245083131285542615178617305334572861877362956687255459039027427487507447684566964018381834474822317535021047506738844048210860060558777667738709347832189881262318319383937867224997416406479942699588725263881234922017457537610161769635205636262304524263544418875383631744571469656191764794225712705609288594366394862237449125044961318036662856644554681133151040334391991683824104115057585783275113571476290562196613691757706761666530017577018536966936248608419108805460152992832780640984070834276437830426738695401147029051181900855684344958815446075624179902598127225305588575994482251728210924680652602350558761770858233604001106246686510037395057364207249455379189083956319845985806900462904536624981352278115113554956785773211722963754870629948822158348813687493134932795267137046169259043857721581619180937136039241119507430199005631197857810875187046841438509266776325655982363255802066266086006449514015777524398924105352869751579451346147335419021935867107095012037225832801823952839112138639296270555272310238733757898430839289148514748717146195998287977667657927270410747647054180411214345689077149652331847090224533373559565157780248820074698565798137499330469414885908611921194299505366026224231041226316409879630779356327874369123611598989042119738257502006459012789794700089633470964871585210982415064647304275104806350514225413835865672121610667460160441295008343010304156521172705275387349510064940781975793835065576789457433450294061938343656383480545118867770374616359231055022786646491078741346321386725647201656251286072522270269491289042320353786167967875490561746957836689242811857397277821940497679316302221294440382729180879872007283530149343979098574809343618750142104085750376786693075582081065001759165505063321077124262028761361175327473347095391286354999529745772538013080097662020756968440396302782230753233637437397263086142635097369824845920638727949787012371454519705309097092410802710894596703460142643832290881649369115988813269556351062924333975715188025225207954002111001964566402033726811785012110473075149322308107723840837154539457098029187591216176686927690902931145054592322437411795573560497042360554652521669602821657940815453764238285173847600714037448853894984970659828230589649151129174273025249216674666545564419847832976231794372675997014206387785023875477961260200538426296566394638000565952646765271847145204389830763868265754847192713390057040096122957722430797723537989619696775970877118105109513673860296461990235845639786245729832309681518584158808121227200426935048128162030399685791532132302288961348830989098679445943974377109131436531296805730264039703575940160704450324218290428113059950984017593843268925402219141092302301521181366108237391644769879438809416275503962713793476076721853082464745615963985732155994876251014921831537061053024232995451756723154360839496101501534638923733020307414380538800627675875840389697352733400205009052561885085334532044796466958892547455916345435322566273630159366612908210760902825850588279707633366345882901721150045647882060908558652991006891447757775337919543130735082981125091011572218341528489503040065386429239762891935247294949966212077670851126538021634973106413923487734650986029293887488899958257715768761121069970200950822495796907714863724545389963876679589959237830336993819228065544552756261801545485908683530169324816347977404164019187436046440072396441303033387352405168030873621539636862826077007162801883340678575674784886377989343677700141006826082892402523791131501830225422490038002929971442892655258536041372265896898731410031913051119448231323321451843673254294007684177488689636875572196373730609311059562723158675019381304769208293430900713074368524638263873153497850872429077810647253589138290625735568619530959221273848518856504098117826537602436184974039481102286100046333822887407947626298534232001356902694460747549517336726406327823407630725663861521240905243346118910000064304343922828391562504417263074500577193810539914450240357980732187046238754537816065486159989213725779324400550967106440060269337148861370821188776119857269597807275726995881491141846286249465657374794614738076865350554705931895528705127723857434601970873782910312454532809541942935110673653866296290372001766366163620187291771061107664867167069121411174629818586442159571007436096643388785139601266782119734327165551879196024333773393959483535488547745665826516207482151809223262501551678941421557233113051983272956691946613377837597419316878464047202268767311782351968328795379405718876881642707134847554868761691607677341242034833759121732022655988290421893990548363068556009207658454857752119588111619256858447106975550287548937546933866148238272378940957261633052453606208652086255472174871755301679169697909837193045321975109147494949195343006912584008204229075224946146451938442182338127045937671478184097486790340409799852749728546094424484236521495622665918447814381995189676850172482452477382435703622119694579007798336324901762346843550798321908534019810149568350178402960181205213874407261419068903965858759633593146943440707110344940744530073242847416750507994665006824779163321436825154979643881563917551721326880151492130310004289968161785682673116900071324019037963266146483823202806413920131132725744837574464147430930284931314563550705649147767431251257115832927812323880695870243061939276780448989306038680662151691334064851118455037233907287976186830089398561447774150015683026972546357426950899528134831822048008858224419210902997045040482676630840739473162920833673098733804526308177966730383721900280639910928883609189574850640146669559340602825738482941648279727010759424504610156625838393501160487922931292628959825143682399578194501568211608299921683524561710454806695517676715851799007438088078594449210522209827332886928684869772203795867091539798652104220416382294842119687570077353897348293135654764919200392897801583545752684359184188889554628363322635081151605357098352652933937186069305628440153881645333364731322724317260508861663887949374625920911832066255442930241731219185954060581245256822093732760143298772287093214150791377311638447956364940452108998225750762335281374508125441237926560465207754015589875891044964859395200220549947157066176177772084760807437232984953283033073447474096067690733523711193661960544540230970074060859098112003908360955382708013741691101989535503366748056117395111164023206518789961191132644934330371116657484071259720428887606543959193552945915470541590989237460668768724601479307396160221646249005664115704711923267999022463033962684847571805348664260955967175526913922603900440433053779878939673873997787196918564935211142154500146923262184386166411742897113422421489926062736240330723243916866867617260992287844740264568245597062159262457169803302047511433980447157237914593981112683493564703521366115244615948052169412768015319468390747720246468496983238786782109224907112315084667970036797336378379922163856401014719733273496187436727324032555312567938133190910656271913544272983734911655705203770985966944152949724953419185490067935704064513014226221475597789535967583440415985293060369285932478012823361143242951822624369951163491902556223035178959521943421709282721431306514850497493378536713134039949260423815024199710522390626022790501943016524074552035479722070964179854777723562937467639043240988336602449541916595244647614829382795732972235443840478876993453253359340088460089819456106842395005627246978866048017772073190658951794760473241685887024500365639283192279662122405709291067171470914828281598257647704099567633436852076742957219681714111797157229952692794022986927123030295607618121839177709743181782597761862651857700537271269827158102129273145561991190302165251508218418679990986810684557917199414395686449192650528446088310209622059270553887086897191655611300454581280306689152252772494527797784186850236302971983928340901331131648733624905206918212842379754760522825304547694952431091566488654681645502853411177439496582983850619981599453692125620127130067828228586095460721356201078109261893468577586818708083199564496805968366329448770747404850228634256824599699174330071666207501012582630993511374391769304574028289898122563036547679312424999032736982625340637094142312243490271503638722362424910802078090419090509706382345599634760559706539535008580629909007711294796540209647781417922704956416395710099601017237423006901407739432397422413937076299796092167846198082121535071458319639992792696624077035347026508818263758032278940178821250981521023504994140975229718511171990075799601304162614321941006741185097848736844988534175341923865814496101490396845351478217136916950132566978915835739326450133487626167945641710722976784517292585355044820633559960807626401916584839046419764308433745748981253035734810672746268893479250254498999467654749581191963730781485801453756403103573608679436498586425118875499955905363037021533808775645315432296180393260938237606454194036570518314584640260832797335068997057557475202788780456031066862619029469945573584276020044258313664055076719097657710443634049601734473028378396541092597681441017951503636393415359242032649805445850066827587404878790444627412593228271861982565148269644310373436577357663157138354295345253828568315926956040850790515626238927725326379143927497625875528700577707170313194374080908188735042106565098540552057490877895759047156790709636607830172140089870615658707526489794934312151541588595313462939835357129941082580212939094878985739485865938003509207679761218609068414251068974450299134061667558667187874880656741474279248822552857552914446375133105686323038144321599394517943077169047763252798006758475846215204678616388631932569666481226356640526256757034412289482823542676784112269078910901827763026031108873762751840170895823385018395826360956073120138224311575996631789346533622541036425387655039892939034788156644880178919598029764453308308007112881355532084886862905902690701114664215504656965681854924356879423920243353921962558646638514794765957887834623388920067287534397941778110090486240739142147710028500121196762965804493789538506922612831919800422202038430792851216086297112735289615708197371216115724635268057903223011755207485897876985061746538899112345903219581076126461660711830025272309607459444373090517271193393134332295863005463641177031062479109089830237875970076149645697666814151673532849645075702594562937228390693565396366747738624044315298749164561179958880514881535308214820006445765034439175608594712094938066324596996982270694429149523269554923456226789026929516712503641968590957038400038041531389315095594053536347730670631614064901690944840791665791135931991472759067045926289786489838440942675499476067808563937383059143721240431409915160400135069003302735346328431968927044906208130950810208180570939771396905992546921027011316046986305150662139865791816094839236063364346422777480493710156534739751863258202539173536254476274052025775193762860975284881072790185363842857141445034405317668443552821688560384932913974996466505420228370838087489152672233251596072844622755574978002921877790824262049532546775598512534945957623943321512223187532347009307544974133151530966874865525275337796862012094359447185602824652057768951568452525799373741706001555525242038029435632958686785711219267111960573089516402529209578171333162233363950966134302650488971128084890845326405688899770255622596885854881844475160283919146302239090260228161798902580818823909113421216643839956110397279431570809358979148963218306259137547351773174477505590525006081395759800432762156246857373335351820825334014517612905440301332729639870930386287621650947563819798156884549096288234066093906369432012282370499331544400398729609359573936578888808070495705444424392492624625344480135218867259307638984789267780346546059236385575864265714925716336663246884244057131946004404936977205963180451219592221442176370765488163818049185017827035236819125224990668252310597047560274175472459499939081322689856542230418252225610028690307120360328544507032671287058478610043193468246433435076142414007039713339537997998572172473129009020825814095784341690845907315424862888041757788353844551945867437746179408649362536877763021633684324045476465059745319235708504913824621572959151970522186994500807609288534429406256807754448017051560102391726657764194708111098239883940289047310634115726128321086336327587226279434907146222527275323767013178446634877733855570100880996697776650410848362894203686293154079070654412184069050283511807472259150212961192570126728153781589762864582668081844873707855784650161251297955703124167402561453292045308071468795487694861924145786373286837591466245635578849723864457726699615728284781056694732014443476453981006352597194704057643711180341908700833180078629514144784832741158448427594525527565604731053550581008459845395270771570940473283941016180174390982160330240401582354825901491777454919641878787286428453073125048528430398275301924811210457902973941118852146861427869442463819277939103929108494030407628668186756088562934798061883173671834221944981216692213712840387943505278597362967139137150643121527114399534261609055397643415356404599472413235637421503229496733955587035926805886204241606484970254364858019623444282772928190259687802835201665345828910322617010614890163195240153797043331039177213001870678842391963802585828478592361864716328904601330434102561860599300381961292375179726004039106659725530825164621340015281389011367593423310311829110201475259120132664799785774325818833530768899577842497938592047090771192526692636950793368237779825467833161015972839926417973409213349141868506893110558564913361472196052698069167545046756792940476344712367906950580185059402590007537039798767097248489499838413956799454901379718775008990177195915172991723276899813853305927465739356875315391424751473344583483621446756420860012476569897429620549120923146290932672018878698617399139359346290916859601845168722660490062763869768757014689637952987684516993674946307743441576829703553485466937321796322665346203226583110087596084621697868206444003300727083414791356306688787794248299838366751244411308598997504821668246520125464781757800512073486089117321789803522587454604067598876592115410897019287688427941931090146057112816352407345097128187633388801847857392389204773698626918526156370133973110564367586389541579477170434143253163682048411929388193293684069416853065285451131454373365929900804024814256773468329786833425651305210064702619694135867019558985457984463217179571662960291549367260659161823202249884580810685896554436165668825637585438286295544413151979686034022343092492540571830399318817461841909739878191620314041285792637536452533608397013030385468268060980696197121811053356974891354845615223942116663221376864065449841275212242840095325415105120566143142712426436010445671368621573747856502459427890462538814486167179216101100253083950910462111967293800734043136534457790591694937095846721812436071209846930476043127759449730464382086946384030384299758214730181761226413063866300675290759863400088665658955804911028407163619507850580429525454533595016639276152946008963537001270831121601782724673422068347562302097796409271538555336163748487770321325545011162482765778874245037708623550552927248365724840827827546800650109859367200246228214126216820732454237900664444628338105309255947955525500790332489076896471252589037654722072343196489807912268216492922288632986386752817082069115193809518082148231521432486282063258129889371519300617460321552868752313039340123776365294427300807874995834337771706178489472084377201765467593308582689538901119421633584563428498878112564698981604652833170113669434662133462838225426285569896612597174691360223282145394176771705968189324290339837639450004458462842892310253319442530687184650237737111015539281237440950776759537863011662717947018835839120161723069023903744111927232158000017847474475004606020245562942610492691433228485852368093082526952772910787083599383564284760848859456395015373730944801964224513049684541069123240426123213386605031744816931410281617107048972908645689649864610022004729914682333005591795550701531608003827153154246162331139373109156445697483144988827319826973457814584762245026278728370031611240910745081758308121608840646593011956980738183947310755338819570613843382046309203735028401642429590673764755908030308761659674544427032720595663325072102529092576134237903840749337535151751246021011923141297701966350743746981807540826000430783469064811293305554809767616767654236300776298829313281652682613543133266092933075714331424430789331725694503159683134073323039240293571101354996071776632831174455407125323198416786627818973974770351797732965042591762025168854780166624563815456258451257069308026641635156695506455188101235441501150868795834170637819756289567593726373827693716567581397048096428793330685896188205431367143108724320936000725114558866832156317916123901574166129395985746553046164657267607483399999042445580421872836090420140967679075629178793407468454809458201356301142178884286846765270359157214981853402617912489609965401032152512544151025124799906883467276968862649023428304702604830272264998310575159963108037418045732895725008706571387505359804501315155303936157427608325324931226818289377199839962407659263602455312029601903141483279917579025799067697292751019745709688665772366064933084014402428041166048447704708407961282655721403213180194408548436051491148500189307521937378446515676101074375058585334761095068506518090983616998178869561809782962288130461636643111664899743453297668939625816694490206777425015210614359289969763996853539158269506262204641990238411869188302308946269468343198234038190918640842705447311332950971274138826548362096726162973029778410688273221812552780856163987131919083035900096376133538001651401528917705355670523480708723453362972386106982459148458728189436814584205366313559352420035752281922006105249722796591013248191379223561570301970997666979132219713900462287986947962880624651744194798816842735348942642943144850166023111802790989421176663841308656523356289688352823641129081276711679265351407800314965105208798774359383653854925048202393532609249935305718275215858673939640282186868762443457388169413789853306491392897737446422191303731346175439858958092204568424959807746117696172752059715185300306809197178534684468033712369699885310946677841774123744041612795042931737779765295851242343512671392276993215077639074088763260343818188089559413075010818208574556236708449783241851253371083494107925982161578212047856847123783325495250452864454556266131906586976245608092733940668193129808518655434649867126167441581852629421408143152802048054407830106552037320421125509554665256745012055721108466937371778395573446813755893297359352654972451533165098272433719277591652786659229564303716922703673289476828400950687178886572063047236839010455872395067939185932634970735169195636701700286865916503676178322135491609355583876449512258606190544229897556678021312139842638784974427588303067352678509007810116599018930736360062617399387038865642792192501993208804738322891759775152517765269843994694930419660257765982645558880093073992878677185360852706953689268083039242280909803512594008699908117814071690381176681716054652377654346226639132268471640014903778759909547944706467436648922289108681300015573881546746695633791373661955334621773926198494759723185022150899943869941820322524174863137789655209211663017762195980135424717196446037731418878640679950013229662092218872565534335120833235044284338732290518847158615167371092469736721680380778594153693554864165313195030657932283389176938707296034884157741984612929729386881456010865937020644850547971437515096579438546594224122540282827152242777391599936716208645379024126240539247766520977842520775467013496127207762474121607707640821237341837432901870261707157999725474759839774506105169343254080027914329634205137555718689923468571539241782658083804245743640054924622078024275348414600900371332809301691527337875663028225326830232189623210346582618808492398799553404564395537283202974727850235727435242671231534151446020637638140466141572946858776633657637194433323798622940937563126193216506316021707418523895559998717684003012193859974635514807590349667498130401972341747014023055031291144962680314361641223469033676962247735571911834796044978359954643827610725915337780114029471875714170600364946249474760159216159908720078133761937471849997855467390718006761108788929834832959604302747622871585059279296447338286887881263657816292198090783064361694593871088574532983810282408325491277555891625225910342274828174470325363351939195130988540148702203979257028915459532391417188471659196550719193621609945432782952034149462930719183205709440805010670521240560279588203833590263172188824867253346331229542389621485175821735655681238771849532788304812483376060404376885993459733185965365207811663329601531512224071664012465954240317385944061372058270243858945730118479652337828482275718505364970701610204807331400786732920915735830407952598658322146933358543431547580630180140297347911748585081836535524891562448817879962908731268814073584745489769871533417567949400203528576443308112884933445622066846490090552663810289458775957614969028487855370888004620835345053309163203105991878165641196003009908373000505740682649590503726069944876565484507498054820327153448126954081368294112765092198863002075570607206200918432317920197104398377513110525262048645917766939614635361703707477980055814803296239914210473025547169937212236275058109781751166136937388478264831993614550417208911063563111414752876049169585279448237861327311686368765903991999199293554498888535412529361788201613892967005030039696008524922324485211239584879874760324940709561562032099868804841765816674299474319855054983329065461812619463144014430955333701013725764217239235100666059097957913000031442571492038833392543391651425307053353184760241244795263937018816229605549576245211403742662606200321758575757573049228082268989231738948824351796528007289387847252487311714106810908728352797093339340083312110113727192589769118269457380503776979564254654394431521060606735512195873695047066137325364457028046323796677372730029636332538745474148278807342540997237594486768347402019386502218364190293958724728800927353539567693251618708879404128744377629966162648842862999459658937510773453808327494124134735868395018679364378567524641413080298483763924923115530835086466304978504762453980875495619435988233742830265272788714330329718962592455068991969702672457006648056693023160145112654608885420901663386310039959257198459874593306739838823394728597605688000389618853560208666772091851092308621695009926895608647299066513327192224451850719168631709561628706329045869128686774966557782275950120825256844616883681108370784545215667176067548531131343801850264915854937781523101256585225067550908180714003351408862951242551500401733797484625436316451489135757096113645784807960196988203637872588801767595189119218427024090761054112132486133364854444603003123848525405591288415360217668072190507725429830606178450320947327893112680953602512457221506649576241227048126239031522074632595475719845817932248217214692132318109734030271741851653519350934552785318309588208511097495940213860132750290794540631296247771624594727385339170765649971454698155940828848863897912607058282355213507558226268410879716672876782047368980505011930949871552328736569439109742555504042631014041725123496648989647223346542875974155426152209740359178255006595011532946860193477200473010522638608492417466045746399874957043877822481664279739483673072649509791872822076168491345064593234729598751320068461137056021647320018547826110037881263468613436861720830233869458790116855016735762673055314295520703397090025954270762738594306115153930728631003487744454852876548343599190549725169876639634273387400750299431450240566347283118840560218402497684684816148419683835680184007727788105426062100520235374020106180794140557593411670279665750917432804577163037834310326785640077750372694970069324526282730320012557677331998857481264230392677616590577553770486451859138489589615400653647639737073869768599404904385990421446857458991555852394424510738133006410373264228775802468731197531861656360840388996259058915454543338059700822626678337400287126395696964254712977840818263395050519121638923697563183884694127166371115949393287522603666443599941813876464355478673027486588941387176158932263875683643693294130854446323616330228915527573789243403277366367488184094185017204476603891173743790481909063562141166756303232575421700936564838516960312743071924986352503502267836605982098385723003672606049502424909470356250530469618485009992472999258786266425750108258152964999413445545469505839405916765548409354725616354620379314057216467104626984328011629225995902922186714000221529688547108222458223507015894219518139366323389856554711094930587187959504882221619735791515471424409591933227408697200808405293937445939687322272050355054717917440133293359513784222851071395703072353669631257088553889523352169217412048044068924328983098449086368272912604058332063397779686591395179117043090301234407273692924074250251602089314782583381759698242943452966965500340866871401964058014887792223231701942820567494625204168456986438156044966726540512467738775613265187417017826817553611862665252111156087131339515085703380428969438753854910485400689595185616719997053834661210497266558875730645752425090901849346186252259189888786667908010430888500045165119519194234262093465330955813991509172229691102640113068712022788812310763290062696857221498909174042548213090384967912662160781910489970367137795866963877451391094132723960934899985216154151390999121787477504689607077019826057893922005374041998480238400052990502887081181433272531594959436277009963319115739424291747060134900098327117739749885260740709239146623763852735574480851305006253068632031254231288552644117707058815408433831586207434515442437622440698178510972894754116763336331474868058671368631252879406236880260890096017000379742335715715873005303013846779335136145744163982698803431879764455465063472343053860669798215481369979008882920339895293516406163690866172579527446808046464722385740781938474428335702828032231818110718405476812834473217052374350241127466277706777113727305029632003172357942544425724706856978100355787282808644881938436465237869757972978817608525037338324588097963384682866536708411087112899755265147060112753551598608235292709606248279817588466909627851380057899109038766675491223488065939135904219829293125567419180362741949667898776916707350569989570327974937185211339820744245032800847441457215581981998588378097027791985810050415434482230483841117358296362260784051615923034415947021605129275745304559095701332495148594131372629415883821337427093399592324959627315431313709437032211539924207559806985432775560510835839312367443778807148190034856291873994477283090809794010637928047054404272402039985373740409003452899220610152333892322452654090196784517582122718913832850106995862487712431977357450524064918363958409959610946053181528299841003504642560349526142946821714380019829810863976013688745477678770211041165850680475391055470333903760517200858728669998041911395578273168758670389931217134971324313019528780799609393290775640564658353281782424144461300180258300872609754497204530568343700714494176387124717952680035455069026598964403213106768476132596813080444511985274406065784036423038115250696697733421950935989623998862760891343921578379402090938305842400963189267066444664105402575666933619013279791208035304195559098409061811350835287935497252242990164991263557415938034470279490802989433384836223681244746454536329292952952421070457447058621466120427877469220136835238120987851699880633889638377421763201142623507265479753853595979697619104248149470534396046790426929977845203366202450363357446256271365901310587251972259985016815564670470663209689601691238364381102464986745674694829518282685361452973187944932719116454893426342089483310248203725808829753571041686793293592289604696871101700079763757275798047595351756048158968880926760345648407009447548635796578390250644098966491081377354275370628541096104804041986045712313857747238146212175447593266683124420920123818458595998175608304981677995213425714559629645475142271002916146043421019649491044058495991528076281413487652110462960454001930274792946826245892220826077133760667795523793381921555958509099221304031879750191290612022434278146858166941408516228757164623064362591745301242903021002227633983823579873553243229059943904936986040891227151412112571851522766880432727859747153587897848664545052013096792653626392610628416910558356353576435613905293947557006385038820189617673960970969855766039937552124053470221174681046931239240181250939485860681639601013403956968662695778329996177467702909692157414988656195289730823279083641135758416325308973513947977355946867158496614744912872544917026072897620230387293924124458151430675958577207721986612717111667986549450901555606986630878232676957580035119654036566839312552113993164990256142840888138975132943812706350052155089855058670338605923580477364654029225792075616208933739423182801872315399697828218460516725930722628211165202851359908692677420468195941083607409201016779500074460694205409029307372585377485045180124736080587943101068905849855720210732398894783754409305232112744738793831889192096924228632191381054351551050201225008810086577965122564722346510628451269949462014193901961245167678586669042182374274822400806718468016279104517220222842579574412331976745502958386883250035244612545216408827783768726599894409781745102640332104135393062598390689659074575660500344123803681394183725758739433692947051437450526695483715793538336821058359731433921880845324855055067131160465409050673072193586266271660193302618734472371713662162305003776924681357546647125294975690861071070310781163208659806352541448030561970297648507628625092215920621204694352908915814092778217191620047389427253461972977368695589699722289030262316006742384511276314403981344634766595567812948310115071391025260759202808659269319751876012250443578418571956624854609594791358234336249189161873809133806820548497868771432584048463472419237750804303701502368041924337940938242010602890089592461242877976812776787240558097820676540923608358415679202201439880979368732899062273819486206538100528204147092837142324468810965190049753475486171760823358504639165729250120844640714565498600090281071685511591085781541137132532852831729939766723634270717995268711063488309716215915532696144731416560408944688246231963741256355571534539362575838614574207710009123019680147529510220137838036009620865422739328086556286618827929046359106708605338346037787376901000962814100625799901437773822718107626901750753638564840934296671057590686286965456249923086366852980133041266108440449018449067831194797128679945312008763020356785803714463537106231408037121980276103806759279530340570538044745154755979951464807685504583135429680574371230487005158297982466395369909070371259477835723677083409450478730141991298641874754465757410929542467811256450853003471772874705729898663660516508252046663013494850246836532980730974618637128957202105070856995410778474532117275877198143528463300691910730525517399008307942747053256290520290122130223324278779952458430943126002757147810476147338052925573126287175591384975834100713607640747263947036745000770577372778757874832759732273639277288056553074940895179824563875569975965183669548396049158407286065238932338757605225692013038234907040492595867742040396647313336170332355641315109768345886398792330490613986229093056371530592273073836095888067659755729633688716335153235431479522873191422188021611121984814484285989813758476278058068194092283200966587601208575703356423010076158268965800159846174602165343239269736141298068301458302711197552578718617320211687214230650652120554658466738825147104657463583252768995190495164891771759236207804634843402565519342323347083767849891340970884815005837942808910624148272117221709039188762172261788838429026387512661084116234362309677228634798240733861129818320947160690345057086873662843668499907927509211223153977696052689604704230430364090221099026358451984155567572695617013884817692565750487639132511085096183937247713857188694010469995356834880363597618146272789980892019942314139370436278855622624260061289487353636784684724608855450932540806404579057922311681819461678122593627034310308631082510891673529077802986237925121290367651431660976036427843114214741483523068328878470437225360351272337302499511633844513760338808021163095654687430162863681719798201126172006969512150501709012542704254966945548787597314638532353573411182632533051229491240263681611826219012201216867370942477562357306846011653345357267463511355049588349027464281385812969994986630426403904350300625527479606852582919836110667686202977338783430969681011875394357245475860924633597952560507593280220991717840095617765949817645366617336832226133427664723445065051800191314683807479942799866044970011596135950513319828173013286842146705473614381856131383245694896692878061724215086708192441440622768487242217896934104538747556482423949564158608702662881683140385806754881492028615565879914569920004537533090906108360348198906667973187888687627306339191294243174844317818790844198394775735465962808170934832476393153501865103597411160789786159509609789487565069122508133179992935332939974034853218153776709477705762653843804892471636885151645284486629735973121678536350002748635993488667889943872972442401307066371877476318844305230947081747026418774521863026402570379464195646538475299938599548859438591968338245743951480437172867615795078967492904025180158604751963568314010894696074812308669116192574918150562992024621939530826040009752054245390259437126164534487377396412419953075483349563932273182842071712897678421086572876242397166642854500065771584194033633210348110911825939471574423743461388675010571860962362539258324858754830902375579596871616779687341144624526147740598480394531505769011592297386162875826092453643925692195877748171352449554425289552833082398996161245299439353248145538673202790645572586260526539942696059260159474943122940588068957181278432510645306278521373334378324282515577620094476654860385262276371589747523591357871533942547086342979525516760947025325902307853750992420671704899397856872591218036351600933378863045812119885611413609758331444885187405208506092891409351080899867179105105797130845893018979452047565925756637328618409673748848466591018499066702350580187502797366811939497768413434138400653731488609646960234692313469996210780277328829834986517797769748615988823708863954634416684702484976677704268923957668352591968006654926884445496492245098203406317096462987857563554929380349699900613832332788093344907924072430933989541341382427008345492408877344054041443344846917948064039665352741782549826242444152888727992628977205325125683567456477338167500410638875687160415105892600172160689644078456871661317666538260455723683985798751220287372769162946240006403180969362166105899329178431581526360094175217135992038423004842359811520131200805875869727363780547424480452122091734933589107864659163394370177016970234738094093868840221488287225154266332089417892041878084685603265967757703091659397498459287266676426371183285793448887458576307045356856699555983153918290251815994925169807136604413961186187022924566835372022306740340053881168337670061077540647279705146943479960129999419578910739643997330224227980099375330146497656527705432765189703171421732852415143465897845728999088733440008434273028852921575752986418625251629938378818632411295449396375480436214689311956501489142523781332557465766746537718103625408130253552426134070087932100633713112489903335569082928010560343412286565996396180030241923650756191985289361022034363468726586031109235229565373497793031935428598865061567733808335858240636578217543616978176319862967737837385813159655603103226111308336321112139346043546519348064885952355405044982274561260710730513861971869188006475592315367461774887972226272178288577498423136765238364407926094229811796268219975685077464974716517885829092776291973090371415414010379483940283255144093860773495878564048636524821989099440425150454330907778453987774358416761995250472031971114963401801702636919001440047619095138652799196172604082428102716028996011939722761279119885676960767735940659183482818218535400684159979974198286144218649451408996944311615049067553693808009503112427521716621747323271162760140757672618871850572261697488624499342334917895689711753463046370638703995669663375177023382308406771907058419840873152930060198812925614739773816043997804116720567303911043027591818509933684232867630246905313720326185641039067300247983934140191228281920203570264490055486457468297290103714257236836041848182685202027917661766476922241729226699436120088190119701091987391317169164988250596001702209222800305384619644130796118778674658581741208244577979422278990805769603325089465026406669510552340733228871271865750236726518652051533540390253478879185526156030129896704242407214976593689567086100137621485329701395488944112055198895416808422405159122194369198436296660355434292307558595742185253497350477408547204259278458584288081027275666441441186853527616441487409221246480740357863738654919756810821021012495491220130828339534586830167253975646844058028931264808442271487644474034181871102443258697618753288127709586169160201519591175719576359641514639168654719519969620718569988633946584066214871748363804655861700947380863018660799037418164974501129870619808374697621896981646832804473702477620224372331711209031997858166939374381162177995398529443474290466185078838864090056732187466811023275723066735243213134736358060679122672411795542032164090270527346991699650628060015593994700593220583524328061320804799463740700236016746121426449491866683119473000883165382359349966879367789062065829449784482694459034010928127471199895824413375950352279225258561302170507659916090856602987152507455965743766676416480557542746638229812606512072862310906315028281146522945704623651554600339799680817623837451345718358746007647494710387068904697464706245380466498367500635498676562393287744383908480677655864089020557432769094500029542459779674756555818228672804829125557671278620632192252181879318383743338545012461442891979219620282517260928011795729319940039911765167920909121410328847216253343819652242498380977215357516015098766313816763685988185401542570512427694424627417569985095153015234177046529685020724264255165612004143506983667228123020214076641596514839920128703486651104856269033767300657436952752543931039563873251335589901969412525600304492462523356516158209991060828854560679616664256949912391072748075543615768670446535173581683069262948266031632454736014302784891537447644051434558695773006547226297413586037823075241278445051457158549995984819700063338178256056833138777740171891721912467693732152066967762235581406318349356865843525015142180926682039684293037272740569075977104507986225337924957405837609659979895987723749676184162999057145521099625624026269922160286297963596807447828761810649787489318562073555043468473388455321802576984988026382025324730459498600643220247789113763772798198636412475201366293699769949885396090582019523899242452115130664263196743626311757107742511059893666427769256021551482698594279698171956057276138264315792810647785132255583148390247565719835706761390712545520582244160282762322382673800746399684920425336419938700014640430514618654096778220199700570577422590158794406132820178813911589229269214299082272873727820665161765360708253068143681738678852586572258764846378312703615456877820205623815929268722622544933002551560063511206894075910286470018121621199340662457054630786723904893355829167689685652874012225003399627269235802204174144101062664353538703648394255907898683860936610056848197910749068286132086849402173572052300257170256794340584609616111229179200073778595166936845771960223682093144313215712004395411703899022169983800060792427490829994906038176565183759221719714333720436323569257413443078422517733276169225832066910374485099322935590735788787196972308587311193667176517843616341085472699708536563105729402123032488320070603841833407984907730703546927457944672398177309845499559371832022977249921401237350999774811607940499317424706096522693419086837128209456619057144830721277482347940616432459293112038389700804937919908320870627483406045590303943964599667644244973510287753129829926466715188088481298571406518321204079432351366801605386247343775576223424575555473003827566228071189676138275458982945779495625183941289051562002966793973766809939755700132060459940252287396402608544039970827747409492129998672273143694130683913587094058620487202524764633749974910556208031517671305486456923765056297679282740780779943124232747242938792786150347708615426833786026678402855741379116698741469240420610885636421181373241462639659797773694679564838864953257968953786160715084819645394587139203670842925896090526811709574663646248349031498851860909917086388018540692973188003789002750398520471541663281763444703159436955752350088895491252712534294437685156609676229292870359035810243645340844036446374585510959267664794110640660849841353213785174798655905667947407042968499553123635625722412942878612881325385694994176341451456061727709675827788066286171078181831324654149920846114293272352549868611518546413051085057799082470711365476949783069890936572286497298767718066801048777141592885001632817210083619146728907745064968575906998228147773202426329277196201040966409838388643933455371403564168311859722922672129148496357940825016229120848670025147904117782142131560468927221932186302209204119369253159086183079060942972452251000780663407247415287470494583253764263905946896433776985633779832261778079476975739052131016680384978225282763928062351103004882040398720044665440057620608634424380532563306393536943917936661729192198537739833418388469525073184583935543238153538387751623465777865647055004049333900724409993642177167135437249778178695719837639840890126463543788068942653869816297235529997145037044788498649079241520579694323857385691597680459622349781289097121341002864821368675825133579980147041914547950888144924312585853161843897521800337531693978559591274215641082782119733275965748016843922358023514242438532957890322057446629305651813270134615816742085744909700771994202992622444290240275807620355710989341233918914184371924874526892760796940846961056745256087572459454619455320377964714899273779056674631944359631295844803434787919587646885325435399672651633083082523018943266657673396720012902280200939423596084945129182318256914555985600045104799993168069574887322263084877173312150727819438822252832328579181542407125770884830616196702477244714470791215589769488597633612276445572534520765739328950033492522208478848877948226864136756516144575942604806779064438498699004641816785171733751120295273463120685293332593025263896054127209458435681712594469601553993657918731590042610271211995991309970279045363434544509131831037912536540707420895398474022604482442032399259031638732508543243656876801265861511396009419531886108374026000567473873300656971694121284749990650659768936367357419876683320657674112539333573755795834397726089737666093318117537860444506594707038255129276030855438185384689420380173047416041226300522972672066303783895040643223427867115852286029372006986991495575417880115256478538055425505359252677238431365099001273800867576972985599308261583249843528374268154575076599551396115296570558762975326833994034905097958709817854702554153717563809915857061373428940724095724811040593570524860509503430199286697397960739864832895307661393461159688480435790213012907043771279010077058308059549792390036654056033668390345058231848565089999972579344616939441152456094167907389865338344451427836304576785604127395612167241848172362226775501242885541201647100953601951318602815920367230267024602180177327526397255323690689936410386233470219101366473161118510629874401420607038182096734630384886281935719107268122450605372215809873541868401326307286472781517543584276242533142339841179345283978490071017987331639153268361844169135165806290862578509134572736481098133969107333420018134921346176612046211362449133773496990400287833157106270680653297301701577899728699941080733301652661832072669087509045718042955097309788214903204209940387224189375698431388234872367929491102442422106797386002507721761994706722231328691729361211932142630071585190257973770917234242892615532045172364413627971416220299414275256741391097954082835727086524085584853229326869704967893283792737136529211212342293775994490456125137644091424154338085051961274830045754475370086067470369206912091731829287833840005686024644041537594340310940486200525833920071144061086558987306864736598954483908163117983456046721713456144101069477732180858870162569705418258389252344717611899115444687673525355502854442232643362069621804968926638814028590545679863929100683981227677635851246777436729170000268039765527233199217702120451273338690966675656185638466160126842279007252245313147260940387573422821358184926647854954477281310263396693016517192798682491606987080450897686298781310937577865687062777710382696810026446445540999709264100670131044951424466585503270707143973394716637430868783551975330123456417106614449030769590660074423534909360879748128945990965704252879360273242752644190145543264616217553895441779121142826868300951195117468220633517838337845854778258098884730260797592641808958635939531112485143037170504491815165567119828851104802620593621261487782968861955629899254471822094436451698483965031256574498106996341951304107958922647922520290329363774972336342815616306104488551245207959670708592190515294530483883613709422729628157696510584435652193192698849349072866791713627774680388018269755774308935883779963942546705990227383851704772507932478912748981790637105623201058491838759104772302011389251473725518105561121264637994108829265784057613490274831661234541250400461893691288055210654302589574626879191617833962938510003642346579908103841217092513271831993602131673474956550622482428727235089254221645061259111614619060962384257743607696764294779429887768379568917008825349450903619966409674570537149905669337553253848086544246854847718302916647030414662436444513945003002439203645758719928322621200359712146164184568076667481528690206270899072091431139115661724706392441353432833126071298474548421376271765934925215785191432647418072541220130485617430011341935742372599213235799016509726875120506485252259908911900539446675588215305391032271404977208909831093789466271322863244145248145923521889081844397422371733381591777637382266105147540181981438376974710565703212784639707133030951604467838424147174375455042921786118891105208425991598616658725782960971353833035069414614474529422937320370419014633606647359291667954045663888059815465943208619570941330002188622663233268982118496431432591409542215964820282984213671177368858957116697250356045135991879611188738366383486447758677888939173696643282033864085496169202882388200632663544626822763252871241573975752105918072116528660170293126644443742191941354955120653227008392366355294417457778280246485526596818071982084558466060636849852447210285429680819381584265875302149086737165778711809881077043329856602088269749852054793940289813773684386886233115163859388119676975056182913012832453022733539543547939622185466225657695691534129533902895000058565648597793462749687786007533510258252385428353459164624725841128981061525629906509859624022707956159455480630279861393193209005597753843942320653545450661409407359852127942679736424053685823069998153785310664332834161516043055040752612656174611832255682004835391317780406158891330216097861952146733253253531967749740257906017328914572997688089244370024882827169747645442869480715755584922155940653444878577749886947588507326838906821765917300943725779546237280225918067960280554204509531646443577197592715494306120699228948089361161375278740597485446024049106966282889751335972734897347618420571158205253574482807115241190413067044118429942390905165722922520495153717100420628903059112853698544681415058403242621407303477727225709997245281570127214143906420374543575249363491782817036726629282433429755269210585975009934228706161652752365989923867464683699998994398008139072712658710201753439781602253215644797467667142358380517959699981701124300899262309921141937904338762841931669646131969213797369085371256552482344838642549766359310823857830874856833991416442090266122511669380803011859963832797355543062914834022891612317304948478506937503305385754625238098882152662443203820343499086072689829453740692249424099275149998927694480477655902087870123031929319676921472116881343382206559617551983163869382198597642488311649483157902747713262382786021179136443192079378526468091186457809753540855728117165160204812481411458135197674151269481229973909193409047494752031106063831311267940030391589903279605745659066186813109201004984854201552060915648169365540690468912185991673338532090978936856858114393020503883057375689348062729992471634030842877932580927311058931709240492410398495536433675687752524712685585036570064596998124760206449807801138913165369615073087362011359257789108944305953311693514828550562210914461732504285494652336633704157565601601573495188412467893667485160885057781831807497022813729977482299780298721522508773415150191868460853356273969356989987648658233662768566779744285669622471544097011241666585914774810763000561989805465286106610366906580300372355919659613572589042534599983551114891378323623887733702286768002320406696085107182764743357599186107529422233108558785580824392053641868433450894039485012999490361278354953330227637146621349080593725485805740993265268076000135497440791248448458580061011970321777649441678123155365868055343382245409711834688784584538055717933643371594833891109350116310232003860130876279276055533438802682924396090686369161040591292840836955214697066552158763765713972943365348413672479744284493519555421285886928756799535661488630111756812072046759097742540057325125875505467881875670877686625402782498956244995857552735066513563419312175066333036441365668342790884729082857480024440095253120026445475060654592914232224841144277914635549988483729518493181846947038080804742370164513793519853082098998957927800616297644366265322689563277624057256244194709645915717277242882479642516938997927002737502687403715379839958155445475926236009063780744343789223363217568117921644514718335512814824464944398849712863025092320308713615736520298866567809729425934915671975377976687257672998158194352874421023135101399898285307241903761263427699368643952280095778096580750246240673784480153676284494179443642707989865369838288733149389226703531751941851515037764391374284369620837416667006619898849801868952725656795955874191452908717790781513242270181138304199210941711579411997545217923306278516444508205182992852726042827798850105538084855769806017188507776498478623773429142218911811021943700953602074940998250080143287193874170103936280931125889464115859304459615355088336783279694363476746567532235808352124014496356812379512349687822909309296045110933954904116202938493012591829786514376933134127577822535329174261964359391476297823428410404010056010449433402401228993129766428515739291012932992426292908487189216917694815833655950169460148624021358080064801892459323551045833462658585531356403980227244478136347152302013453596479254293430930954546806655679710424908938032127522613920755952278789738284517696060262280425421795665728532614044265909258832400106091229968606835129620895115048595782389060235261423487722362856154567591692664272794546030765165436033985711822099385006375170482471505552821914140282958953363795103337712067764179620159426752507817306409936249650653993721958685500851004574767491915023656297394230048387448691006531165568875780121635159870530959739177733079436393991906272979826468225070196629202436080220169188749607233269045040991280560341709004666902609484219074873651686382207539236534036003321550463343611371868734635047590858918248109838555379707270279864500018876550078741611343211082193694962613608441842338924463109471321793149167890897891509236342346646019513818003669908353992401016540320750311818177203061069983595338880696226279229161212768185928503114146377130101223911545727188108957053979118068816313955900441685874395859488649974588144290849332988384822763373767681208097893052760332342376336902866390904524944325061577171014325832636486550225224632596490339786773703714332070630683242451904809265616282628448651302464058046583262171649904774843361908276507000461374790670951333470514421438815873610709026528488121128085477355274392536203258151409738220238565712441945925817085840904412615762727902519065047040844132388855198713001330457462258616443438946698300672816104318077910462813552531739551979194353319231141290409801614690933776853114844816685055047453605337057186344704011953712991071907097841831797149656139874221508774680660539960985619666872834969909939495855583711797955745231761340349467520017861182657356696485156888771780623173455516904949741291959948840978046354864972915164749411587408665960555825432731521696956546539332460185512945788467812718871210933044698689878797713840132301330497777545634190628214915535999732521563322297604629110978480100350676234630721920606186250365673521031607382741923267307150995836130890297846643521947443210553646079893372404945968626723042304840146091776731413348333230735377616666046643719285940681921902006851531895363894975466771991881880751365375913683345183569381030056081316157103822158537911091581552583948580620349202739571224606125516546973097212279722200794435970712593672850105546592435442826862902940718384108606084770964706805068142033595767504051613350711411584317876459119324982353881473394298417927519829481654251114625996103433840787851332049145639099624413882150251009313309913464556145192948471810981566530290231593778260384213411932615616035586480067628365523907462320292897832016363541850645679610679937971805467865535000738916275681135134189381158296108184296236976374953797137704785087581122928959854370716554262954134715489293003817105408967914408157938731084502399421090769998284083137966196872965124285289724255387239413912691007524365509138894110752810967938260594615794996404960867071593660771240678197087056560614332074193480301659325079531705428944929549926093836019869997177864404750219563771487593830638652693736644518116949705968937801738758963250968859691789759570254095092247028279901250233817627195968670017269848124224369219583282309950825542865059702046340327344832196753187639486555738937331625619446534208796030524523408267615389589761292352966151428268895025036733409832350521623449258189541401921770158622233875177876586088352736770965883515968046570248479950382246316847554665069938261704534524730272556499344453894757356836717342050882530549980972685665712547994211569052156945924301476357400790793463148814460113204198054765884446598229690845197145962015011420403418167168862325969713206706665279553819428714933327447185459286571361118505586913220295567188286192616606376872270084413574450762875003165577950516073088427550887927038525713042885170223842183568294383081623268309615050572530461906830107842508570268941677689896909701299722336991449768071993518253290349599632370314937319010238983477338806619393736211896257149839966327015601975232612429252903540763772538009745042108924649615787258224621565394835671142909715815427423924521401348137782303212804571345823854394883589054583753843753778905330480416270460187770340974127198209156892746561421932044186162744236077657798308991568237105437626851871188015502217578610914038284201008805216013047924266026691960572992421217947629221968311055004606648962583286841186015044498109733007371146909278533074667223190352128958970799533536341259041302488229937179912731363341104299189355343151444273036226836042249884286403408374307914361754662900668552091758343410389631659504473906889884071597850935345020383032401454212508429505532011793390845613709600451782280307740599560671911049176175608972806142245837345648663085629213411349168331296471998819265512238098575157389120548249632176681238053341444077444490680312099865411469548351733010415979904578724799422874357504446254550158042014816338698671214264643354494160949062384354194689551346235799772795231326034596465695989586877082780468197898101806133690497487494487991456987142179658822810372494450759247270665317588893260804212241888356930302418759548382781694506092165869061615998275494576495870324929710626638662912862054331898795909201275185572012582717112319981826070793566722254169686487380466221558150174444606575520444108514636557655625361280017755430844002822809885436896010742698351135306233909463134183159898504139772544860559737141888654526314346175174211172037248948474749259099762013993271312633940744229535927314926167793738628589209860156341077304721582218361187179642282427718099022216215707567660209423712604220809697734056210302428909931433420349880941446142267732199507606028667812772459397055473284349114494720643175773484578234868049566641939736604268102553193091351354430355846481562576718597921318402242559351402652010419352010906037250213250412224445574547557922142408891555988501757437858256202742960356118612010786340017233750080518851803791753452691942376969132780006279289055030266030431114873113310471587701226619069310263957563013230061270740612092761432767763667776250317543761968001424431532784587540477893972393767321675393031060621580419981142957284713772888159399759434090366031665384107423302964712003479684358135165520603673161705611728938168121681613278046201301572986604422382937603729924117642682318429756852718643611247829891892132273254168811282803198909355364804243448166575431952868841700237595407801558505341029271398272852084212673182237391343277561265766957401257807509659410812696386537137285408354447813671536909771745891048415114270558951235508104371422131031878474121868592030782888926732666402918330990861412191573442738179429207030156589797056560285487463057247671711142628116410275075157866428030290333712365968591851889691493172361419096932939569795810573476452457089653040676508229439031648312383624840737316149923280430373172796792288058615280948763393583011681147547400750322402869219173823141266079538761947416365673031984159739919504538304747673232768667536736651650478349539291290020570220749469134254162499590818966648538177499693999939376000893963352274375582257212471103846490182014453799022184623270855854548935116704693669285482896401595207499048870751245077340946353881295041970907066933363992591615934420962968174441160089586627763053733116540170757988085287902488888229199252539877780444788139246152311008022836892681985738028553950672693665440968398179242046036687176792621672216834397992853901225172625650419508668512554068136818589564699525027940574320002348785431167321349437012707547346675543068404308161782628967987351367958209092444501823307480283025309315871511170007665975494167610028135341253096985884382237814403302657311365504722280907584019788676834866554682189481869321189145269547628467065180980076266434581435931553376382765585678832384669997742274138589927401287277807926823214478085174505664787812263908359637680950459224714246118767455546291166755991347648759817094171434781475208977728338398645463762947964143820623572385980184316776216092868035825305087741100558804082839757016463233143472445593220126835150148336775521656314992450044916705647549302512358800291581267813087705446073903097445699864173861989557300011917971728603105419197781050751235045625886409296227566404578421433328231077152543636895771009907354142135927720759808853391742597949038760815060854973638357120432415690545050186910844774661222818755199191851474272568472944553732721611414373536927762240769866189560967909864461386335859944141689313444406746792745376887289569111619021724779927966911142696986030093827208593384387151490451907522637570764676482063069231599592541757718050329428506845729657139746978821341622215168061399691115771246501829033463372025939566228374089188353009204970644639011145103936961871512680624137372452485607491367660091567073834765887425317529085344458716461163776389997104165543925354158138369121008821829278553705191596773109773742656021524163490136226809996337430336273021485161723784119123024041226054219233066363418081821953790150648619989437434103548276506683345105567922570899751914720134649147477785790076444294456037727434343217854621981322395955385112858660716484276846555376690288311851663718672112536840856959564773460260598130771858320464206838372802055313598352999125202808746455047920243902189993807721308396613796893044257160630147790873996781579273803310850249162557022445027430007815176636804123267959918066532219738690697613670620312555459557492309677976364573300735043910659884729248219220582696909201556534395042071014832691055983774161581692349007048895387010162756098837569166981217460756314739612366797210977585573203421069908501061923962849754353912892084577266252101808945427629513322200271262602231521997458397548579837234792616880452815373208391347852128318570191841262101370308224305519461768672919935074233906048204854704256075171201788965468472276100381808122200049688982071486328545080993205939405826455170628486189255218197790723515027133933297456059670117833980689187246019493572986219668795617150433314133893033189298463765754039463556966981504924736221429662183061739442511298777473887765168335639094990881424134473004156481483289206209321692254101960559399463456154077884460482293269360412623074033347701023525534560830284026605598726545577663917054014642985381952712271835790336456653360395689264596380422255524356512034212556580190054160073660789584230401019277154488890934648504069601251249851695089760427030868267532206125702340057246304360453988666766227216768560368849177140267827861639189617586529926044641470277288612132708000055115983766758944624773496344101049939154564429690521941540144679538514057480893110101073649960888799719125700232525930949926420359376834714801177817596207523593824426322185805989583227882443689838019217443578549170738546667953346987889702353256071503070872417724929997855606342836974830464519564726438772531076734153213168619517261947152221505977909157368898635701644496797060718943510714961157826050908585064019475162347500535191389434612377277029599063336035823967933311102151053094211773650430351640500294569763895629876609418984634786002668505012460861949074732535633918105509149646907322918068754348558001464173559567439926270634750476065988100952193230935281945812428073966833994820669902066645228667922587577130210232899975264441337784536926769574630785783459632314695922025424388192025698870315287654749956209223338716195820344470276184559819036627823758200526433570211311657328702719797559287861569560170438416030739895274728609142323994679137765110974245130201894900661955570196697859279459150610278350353046846430409462487068429273482093256328577584052389345773096780863226186681457452786550252693852227736049799026961602870709431580307624443857456174921850364599913197965660995649777298617316449815605419706532612874979454489836517140639106706857009592660818509020309684697823446616969759253771049515595967246142485653467598163196718621616897082286097222837458920988657433517327021190404651348923556080386885170474493288832614372587075930111119027362538446708317344507525172752805101499038432775199085883684503751708633115455072363820001560881193164995057772091705444721275136516181952837467058644780385694510878624149872968924246031493557281530946707329832386013679990545198124455209484376044538374103913719074179206947090795981960685394681628734973959158846706688643376966400867362928520213236849219237554793940797655202961988571644144261587686396198659535213824070002231746939672883130130605474201955606249345761250938511772576511092210828499729171120114288207375796988178247205992329261559700889466623592136986672642733805403956676233039809905229701844653742539268701786623839118027743966455250510773669666460427174544334160603164025245396674648522158024782973009362509619221576234326159161363701166067399390751711383764957898343902615729245385658763612167890503671769516211196565637179860281343113845348250240963144245998162390916024123352461395123506220054171882225732067541320427572778035001168582046756272702099682506158392580782774972035923106569352677078246476649108688598852107908923893964547696670209430972905049601605209588499262643256257503666823737460485683870898515907852141241712064077042302009208421237446814040867360366390572880532115230829292124246188964392379470597457161933520075668416644099868573278932122636595743230151277273872926426194706190454755503186630691901415544208936850388405163840004225645267806066900282400868439461252190287437015331896943823533062104421725387294008355690452611337341634045554686397895066834396758429203017756495520531434175762905186425083297988555747612281502966126045424293610515117594779100669656604037199832778682240167011112974761556879602843898615200623736873165000638414659339295160746518000586524711607588328560640034470312855531450484845319301934570489773214524855986156236521544977807907202567926897065984191695209231777181866556025182544060587587934981784785925400960343855633660942813871002935925962087316784616095414235587001856181953525627884170255552398323922140297475038115749548918889638167133508331308289144971844086280209860485202804578099641467785964869049688808784344901056601849522226381040500055686512794878947610739425178736086459415573124038094621278426769856045677196828324479705201404008161972891998417032632985720414916141193709409598704139669677649816522415573919987818101932858738271246176222094733928576124391823748480567391939997340330542606780296154607387354511793291250996112814592413326566707235476206475728196896720781046415999663310609430331115265603357467354230552959250801397891381388844127627854195553046783708777534560191581649457575738469147707511427238098653463010780184948020910037666476337049503929777510302937963007381388674962054641928217771113303012835817133451115284792942127741862702681110788182659507035037072432318782702247776259881436832802882785354277499503486562710700946052535626289885848286345029698529456850822106220419793485477899364275854385761086931059847421654962521622360012956868911371040341426422889142365079421712563879438294803383885905503483586135258674848706160268207955401888968597111938077009756866036783361436623798294039279693069245706986468621085873884186992606013074673505536184125501511601538642962998857264931845028422742035172178679099794808311447116920440730091043109817016402822401532118560922381205554433595567640083358833818720769465196950207071182148336989141709179797585117757905577882333956080796874493427335796340921940475783634046498776547421741100677021323541656457010786903165933415551480030493292591074802987528829892183754977682046523716711440948367858286728964778919477629281754577903046108420292621830469761153407806762802878689485145930493943839681418443491351244059521830268316517638109982401231063852234613327915920679915738242393051873823884798521435094621780935063491168217599910954599329370309720557870572015260405474368129551260492028158228126534351342210349368135238661761918958401310828342791094307809746847348032274477236159098690897599684200047108061380132008263641714915262241680517922724867867384964550853486010214362180461358912091202866197981060426385037944755753885789654674475375502444971574760763605383892699159515308308953497047829772111966235726833537883489441299258056522214110050634118527660011480222783641784371292844409298482968322049554214917538191404196407386884705417673412810597519454130145143070691959931185567510406374294646375165416587666628367770003422273643404646769000878350399693745096042171098659343116868488113198235711057033125516475106705304959144883158342199030965821015509486978579523920886238009990219502175215458874699772236606490983945113784716813892538511888149610181573137345230718953649433774442259520672935373956027229281406752814083970390998251631120357328451826136430491405189341157707480064780478246969860383101813102050377078300512590084991600180125929712858970529923348163035147457474451707980557139291119690900001382142941817635936967494165363531706805395017746735622135329579798382259820354514607408828769682810815449310276189638065390897176135439025032136860964689157589703547736783185517106054134730139825873355466107033462431649319697620623395698446554082794982007303904780766897960755956507147722047097678513793099577342845549409123364725603833140678695444959311748910017930076070944653584327296159156245551607591223255170057601615584603350380511903050486595045169648593992672729341680979417666419339359366664035888897168364862419613042914485155840906304311518301370136573221409374893165875247521614160717411793878628013479028910821083765148549308624443953240483662371178323494158294161268329413240127808951538202889784905222114330230402701928401463188142909351907184057013063637914396601695197439639767337286927839655761334277238499597638350158347808899938029056143665228302194913548855072600039663576594896616332489614192172188082285685353516704993404236967268166107818483326559750023325826297197442342637524135498947569856389197010073956618912609513406045313123299550749698466435419625546903198478437763857811060367133723493770942112965537430332574222805174423834253986197797760941587848461474489951886188036532044793071003384442198175332226947840165516158509851347499626817328238030418573827397390488213963996624969501139581227552271149583440914733471169992273780883348955442589089877610930708758502646758568886763271730661321491915765969987920754363379768984827667836045683209379590218113018956664295427584954143805002905181774417312588606942824659894656698207157946112626049927739447464809739437754637050534933734002457115713747391347158841317529218256606172509396960839792320499889546721712605323434445627705880058415731380742898885114161237526665705997773639461470363020394267044587802486307354456815456677235155180820941937005190596192347681884542523690447622707532515487524137772339831971041602175697574307830040907278308158151640161513508670602319477773992202009878866092078070999792144507553871528622860779280486240355927031640185609000616590210309913691476845321134436003148162996454546058434861124318146678364934109734680642256745363621919113809598007613065873957521352737094921063268980772147376506156142619240202222769246353949820668930768437640632724487899368856392261034951139209327015076186072051462546304605053714953794021598180452147309658726724591554218650713431811711482516926540440547864097509973844136271858094878893702234937392475323133043162313494025399071517936613167453754512887714897368125107420625854246782402433905605555152303995804966821200250072067192242790452245160691513269377915944840218474367443790843471350570318181870164326493887955295893429468469941555989659235053488001085962266503532787075721947131831673486639199697597489832265204354539854567530777180041732939069117331999784257555931515876245275178465174589783210919730674106944566108404866016871716268067955399764346912708165399090178348961393188240359862554000264672156791711338026880568085672496364658502160251976215849929083462018673428103636287521289765629940008584462452495017979727645457840801385077167383996408323386245111907462197084046509908684604609200619112633596725206988656010843280842468760671340121447296848656168411520106461341552712226703915375317073972040011046542543762963618272159228461943818739243735700101863984861455740651100405640268750062276448695940123779762273736151243813710010050383164495213640499432937117519318641094936822767161725018761883103307000017810178033883609048953317451935850885595920624485841460548336956031626515662532146645414936698315213811776146725125905560637533677689260704982946507541708617437418103934230814064456815132855325922447066202800192739206896899399173567066920181419479292967170363401310514924564654069306174995024286180415167097264758201820706868060277081506757735647856760270168240126718924702214204712295674410929608543941811150563284009316331272834359185965646526352387410868476600845828742276726320323202850807403630475394514014220456960325983787103990650074126932277459655232747291627081706736236735841900527758693469757210671656480681798410442465202331644914399631910108448040818793785814604521362134668691124028311126872087141154287024597786111662406043380246223876799281011807909482978686832226747218138331917741610803265867396732406322032412966851336210188896236486641738821073917102856705231206467394474376998249778832373414212683357682190571413454222300887204836075263926928111115201068605417576782966461975459617960533375674052645723696021690887062701093438328348355772980242009748513748742853052095486923407498477318310544116925320267908909114572257957010905869207383996641118920033431437623892835694825653461348244408295422075479149243119845343850951867560582146057118451462635766649993991545236467433462747152738243322943226282977829830148263689325834684933228648789084196112466565400538857357154250189930748145221721410489410431689671997218593311802259626143695535183739059628016362767769993334321597819620658302757987681312771601912956701771921641967910237959402788996781489695685416807951163283364065272609032208797676540077763093816902025156711019974893266864208535963179948028552093654294857303483522761119707252430724013490564676636202038282312321821146402292475937066210210013991415629846905499974132536007140967294460220630822938747759989963063375881570065961591566790394494090398144166754917384503541083042255857404877412854052194913129115918789054685797139287395828680853146744395481458745990588419452205478213418218060555240003845127685998087187042150125429122407976469095319063331363211408941733490903495845784692476165302771621643482020890557784847969607658273198784578013555576533705317397105536462117416186294194423713014809372143990673705763192535769059152635259272996009183599185245675499064917388461084930166643606603644384106066515854336481185327899699703728385487661155623691560109053276578595696073626746742778168113335894822589245399638280276212885428949626820417139177547211046680909206005329103473944973628826367913905853088927768454916073737535394494911308586158394189662869992616115049798184201790104812725638060644061448955716458973925006489806017346928321220107351763035164843269258534865448368197989155966428421261539171054796042455678710385779805892306361224828080918788671685278534338652633107945203597127958552040119056840455900549696625178760988830999146926402934668662895940861657553528680557962198735940187793201255405949799057280908058104171415354238318353498513503187593087378976558831968145812784616003485217728244558215955538763991935202509441530196912354565835412927131940041786536497777965307888262731924071048203809507031720270991911844686192836386551603630175643613100677394827694058299904155750906593480148616129915797324509051331731282256108413663697888219191607166716174616417812227141835391007119323609291995932240213582710129127834665662674424313594374321306182197534963489075773385810610457075974813153603057396697842129454232378895231921837573193416907731764334116674478161148669012529025238943701845847475341940909605031252730971478521377450467054306613987611424096076908628821200041298123187679679973974959667459962732464213579259691957921995033165411842433251996764462208255199327178952161883741919756298828755206260271717212745087079807027933288098231612162802962154596554190837555811867373461744732828673816540314962168061670889156973049756182617428223851636045500178831271023259829259983377505853840101061181207686968296085915949217016049924291926917053754966179855339698776690181421799009458809085290726522851856807545977141728499765608544205406051233641425169200374783689642887038716009035860857290150255035520824086605831973972776393047832749608991800088334223142940514764647479543289788384696717429822178224139543321541356457488480508217240952652249268059071749898271038995468771271772590104691083825532556096599309779968797721391265838476967380623364015000532899746100524946044672706459254125183221288030398676983811923351860867067421455042707656275793025358458344071031054256404128781423530330182234880404825320585200276561290837285504018671134588109164171098235886955616719906968728843201437783082402038866401837112668555333794033448663914820862823904468896946470569406432051506878974100968161340222278084332538937708556637820764938993855245600297469586154869916085700099830229348926943846658783019490568570807494154265124038922476101044196414666983797908304914456160642328912873492472246523129734164008862147166117730391768545785425444594016418534693555799245613863431986982143055253178333047307355510217220039869027753267929952830036809352103740898997781838035008827067708776480256876847684184536259787556015550718719075363151673098135216839227649378429125018370856889110823267465478179634769292182762086852079828399188371883905813804630760583012731595119501480909984005851054914361153646005919567326835969979851808891441915462011181652323591390539400850216774416995987145829880787526305199139921742516633424816563120816518413548670227120956290914245502952840107396888027381614302601676832374721831384832620494123157745224981474786226907149780539940454643986329993104751679656452939531011969668730577348289529293882892243190665890509092408772759687152003019777349462524634727725125996245979219901189469251343358687080119926727794865616257077048024311273826743017846328883495081304375660066725027327269414875578246407424471836879539759928034293053509823922076527232974869718463546711787365711392451663613247632207878088578328606401057940047587913992883812214905872020894680817119964090289908247550547392701883196531749903097514274939583286330994964075607239739030218201745974138183381025940095646685937201783163686917297134894826548749106785994978995452157720918170230025727943669114245490723230803087578056840692120742332496950171257504357264754240264426537962429667456476128932464409116811015050749817248258030993669496740023317251434339478070145489162696000397153927510966864463717186137490666823826662746098929977549155435145018598183628552957606242806627543934463480396164992264198248492690675173268099887776306282499401588253296495395012264327077097245365417417466796875541325061986046107710834409195329639775130570865876216336355018289846038581107082881058739878105845843406556178680196319733234178988706110669830504652512353185363869577979308464671061928082514434929152015744889729766254140051037437810058252797835108105356155925935745756996428710443523472886705793721218887303808924565993289509365042432984658777486771596636488319538530646570496927251832321946707403533397859175773729771243981113754065154739335319473503475885844636843920916136211744076656213630059616463349801460154167014592917364811150902409668846905063453214815910475347385341691283801643882843917167908660479489789849035748735726681472381883375418009791539919757511120151099980913463150048880474263676967778316607663914644150042921208139310184701456649063641899429829848024685206380252235652372168505444625430224363029553129876668443749676052360906129935159485811771852953614034031952826328240403989068161275402865265322085995021803354259345243218675866813345020798626452009905482621321295009794280198531673021429418201373127771651174540701181530784034536083090430415501138873660421797846620752143771965061929140726293247988320859013163324324223604637356076540550674358822725517380534185499932059019763313327963127188411598497194102702579521500746549564258275773848882508295361180879827956796285435685939256408002800287639060615534696286561295149424071156895750162590864450243186094206353834117652477511273319044959055801828428768371674597958920378008248836586759501456179871962104329216469885716437315668397767865526888210238453656764467452735051295684917533930909931318237595776779486849999157333298103057604946062864170193712731375239702654209876294691652835349771560454444890003973395174895563135447376057329111434641100109231677076847133122631098607700121982480540036674321839243347647466149200051245612980459819926460750883273445367311570197406222149785295665440125620911805546386546012545269642228081191804053454699184298151337463743178637179657012266072309385312603224920499635228843003496597142796509335047660585378447498884899545278018542473865328897282664149235585180992578206627950122311671712987579153802613207176013346367821600606741732456934186211462711072779242357849157842708560479453990584235269136926992509361025077174887789837119152439665319970847786052148944037291270814854035904269033774875630453778549375312958183450961184810623832494628762470281001033310448662628177419977487235321758856712869928240017291374371113583943638555697728254329595811143085684908372600605624855145689764912127470554939704055431669007751621348403247334795610794580697596134050196492539651217480213105328804040804801030557277320087115838783798305105069892724571794414180768934509311578989134523575741640683993481343069665405186451289055425539504103020118140822769555705594821189052009314386235587686711094233357261654991351537529710696676957762113213120105565057207109962199250569937753990070774930723872060272243762562121238329314965437950021161707602586234856356806010424278789421626381360351009807507122090562844812341491256118312067810512334145526215801285130666882488413022534634858103423973260450503136825265809088661942917853991453630095915189239670657929301491953982171349305420373524844529379294000718363226441292890766878158639218639325532031770650472709714654517898053774456845737412620740194321626391839737036440376789924804829667282150219628931998955461195914099616913836420788903867609270818004882439415736381696188827607390531421825243667945344174860801042768923304810093004553534309016687688730444007138989467788997900718567898557494208671215029309547825293190900332703681284003187509341201080655150929446190416035766179995081119616879706393688539414397126748235597597302909350768262620409270500047166337958491336053523884761084595707338975971487233052219421369985799926577791502651987586837446832048449224016054765462010156599480409439154475687413381929172761076958791934952253249467544434748853557264540338697206624464416209163176930568348543054976280765594270887652153069551343663272019127674807152054530388030966265017961270334724357388751627107154413484977829884641090588222709734545698806971340838419867334659890253634193665715274940069405089689503873164502464083429472488434584494852831431081568104648635536489684273291884826722866706943203385648952982781342834847021659158848336022959598282910485918422861954928055421278286405230047584346024100968536807231681653147882855188593450775342855993188194472413197582157291158370809269666734331970018222943639133608903332363168168580381526965331185432115580780137735989376309928364683553544450677057167675638676889790659753329740007618854844177528075632256908904110795323403035006748973691128964345928832759263157305454679991489797925569369642468114324220507271782642413234315939247711382251461715489275854126922994390654703708516124400066792895359447019917160507352720672815727890267729420715792725411215482829329937930172653853349413536259412523394980894116523998503246290753236774744180846342145977563768378599297951127167271610279549215245575615870675338957006724323978709277504215023996962629174952326663558253810882005866589335387820217165776190184731298589016246395265598713284053290795629300280061641851815748022307578223728281307444083586008906927570917369383052387637119854066568902003957720450379589697830847297070942064832039817184918520241737649528540636054034640878434716166354703739517376830243376220084052594875194192971575796135950874719630117201094434655392804798900855294769235835338279365849984934651057651280092985623016016483440269394769390466603088702705642935123308982089901119709519921852403185468545597753527736787272141528971595267890418651836480305770279708087188938446803580748627218401485971393731995256419479119053718688921241869467147822925892086979749128462425500006634622089641495461398339537142784541866760270128412956880279284156100421504145726675941527973425762641140761758608208900185254839981923187081391573063249852225811642501569761186790349552524049520199214426897245358355660125361820667591705580693060413897197500515714512425107654450778477745787597207199307278590454293087994341316752505989009457132922321897271006601496369765626379634417406106918048039116839129399839522372137050961372116232547157479121537001021094697078438205754869693846074641942773659858346412900742855657640279329666345652700531989223702559932642068607340777015078223208308242381679227288208084402755972827720212460834448084152592430764054210736902309617200411638886604885372934907040902535590824198265338259911846989865271517602113915575238904259341719050730342098863236565303142278148544375786911895530464077675196145604635688084397989386422913874836668009603635312816361525202163293863850308929732145821589758104363907673477699529534382088903099206663750893352910141680083109709344689236114294263416285397572415588588077533372989201845648562243049055661372388280088471768050647366507551627330702762879821683215786710117554952855275940984950956048883007307446356469870556228036904117399300428257100852001305363050520693025843994433530896127839657693502953244205326565610091651182691786614328566116596044373642411780452040551916197681774020822126857086319106443573792582072083579029009183673345139234833511807981383200201695525134511568839409295429938231715940290478845794121667471624558817203042149478876966406345392400660006442248716717350553051776742250488237692135353296951233532462862664957892149740547267741022008411775100931041971803106201793822399444308390754514105783519925423624251979192024335563759829713037119901696571854270329548914672422572692449592576027471505508491716150080450730322584301428383503296011161987861335933289436950713953079985854179617623445379663932358631344213104964448581785356441897164596316443460835317909864067257772295431153745685003928307171815545475602949840782306563016146239244528795388798541976254911276578433461050260914447855339274108408345429502538678612123332853987221248366475577017707763174857380833147562112663173052793953182241492792207698982549765553444036257215470283397065384432970632604262999224776196187247448777519218718522756993926740541567753590748436701067292980626343055582757806250454427647820097949375794867418028846200495329756415954237876755197154650372830850471183448174428780259075339698419707875531640483199971641395002022475091889177234263272835185372335611619191443933789976060505830845908373924027640182406375545048781142982038441520167440154859504911096162957766876498346594462348912631122223403781759327081886317929843719911649823267871352822758974254802879454869529792653974699811203892690024855226003204817644692084570908669926633874221285054680314374797359458803925703251294951102911585469610878871449114561546735799264624130517909350313327423296230103936984295614001248683885552033630846586703149057788867772051145672284203538741973489329308515122628910361911119730804165053762035677564548491002014427703634538270862652231832639885016393355806640897491211838303883962432871368009112090943355893348528944613664690911544987983260569350562450150558583782577855559884494917430400710671518792675933748758794509010007042890469150576436663941248582276048246766391468705406775736845017369946947253143494059743243996916263736918532823242658229288106417451582920480161519571802861442428616768956939190700559926329844064166852302762533020131514133240635573669068727876769808865355263297096273922185387077371882816224002452902958534382360972900219957250481317762156626114039426560166179036414382257779158052258522340841375600237963926702760173692270823470084921226759832338692615849342601800363070028216318189781232428435277774875603522817298808927311312970454301378753719225530862870844679021906133545642118622842701182474532554357072986805822048380965242176214848427358692446986095493885104454773780776215742192358586735360121957465883977649955209156001860769043062371461819170720108408954094820791956692845979646655117693164963731125787997108820239316449607400530425777420809689848473596694147064298036896385565800248408542393365616506877503667001677545807060041850347952891501610178242087024058398397936767536966947448540954427431670759050960224699612883504018368009065354874056546922689865154975866462371592817779053506137346670637296891726582122337570997586189326586799196106308764935167344075139331906320216076016703877825936878891944367574912792224920434924292422755004686785626512187391942533951705723285202239289996811012958122580773726702774816153875095369438532460463655848296846145279177945869390732226636551759035700074218858039710324664291589556121242424966793794277933436826123141603161615907450682708317685767172130797359864827907272547346277369766900447477036844574161669469584843750790217394800736929854606041395050277767060245192845834508596039134807424881688331332777058857687668627610803151640819083411978816909274329726023419386131839086117043963872897714080219421332030996700462655609214212325717507115164059565156057934932307998865351486808846064648004117614140960169078682809869847911082472959223299024043240734405371763264424755811907249589401425873307959992135842039843144281552163306343268563953502291453002498030526806484952489262777218730058898504196988065474588360190760259080722566296331497024652693349058696836786887438566507586753702599167492279731940055237012466776137071653571665933940578482381202039578380867414749764249526654954392883729525869882677048468689725528191531695305452518240708464369840245339173775573921801217516807903691717875935493787323308541616498500073157595039389298800698011707812413530555637826816229930830319765413201956337108912846262696156332729133011207026197200768042557037069045855462924989897913765428376938571523854750160396677065628560169822897777059952110484104251096938481349554309776432801367702120440058140494364928889321310151729364229003343296451361802017674630598270531813075134384861716868349740197800594959688525006282129538596229389869006558487030104385194959481213857741057501246451262460041835339235843778174156438864607007682114994096509240537832471129579415179036930331195854085421668534815896373607566479779328635407021204110446333791163818120083383304751477863458613176499717998714762292517197481374390100054072218919991707184749328973157327934769689061877444995440677445715677706618617969853928827468049412845169508727157915882091473864339066111167742522583273404718204485361372578209872964793073870846146623445468718918018364353165079201897895790447976498469745944285144808170261444893788137619133656804293564633196507381317542161291691218408916946222589845376567549926820777532594904048070508383371873884636446667428049411571015271743367999434071733339099543219039367623650882534381235980775002438971963570026907433733704183962552460713897090519530490854178186795192706972412881928151971280032409589137985522327680144783461263824324836037020291809844519387261217521558098516253803561576049585186445230532074950641684312441253831106636842396256727312930269464026882708962772850001131846060819929577262771372426165558151401153887650656442821990815814641123758235597602507906933182126333327521054587382380804422869658502055396766750201070529473138165187656310409673379421813810661913482611724517510681375640797836651376810765715406815680436444674790815367333227136563552350713428448692247379677135801418468920432704993072764920415866771353273739626576591057049379263266975037893850837042606441244530789331752230403872952318339350886710917307355834116891615096031921577702631467680557219980674634555628364774394781330193475964584210511692704010532008072096903982112600627536448904013103428073239267271435154612333825357491984895327818867571661502683691850963416088914718227017389963652614479757869123310653615326125243644271101024098916151556118912002095110770563275590484333662995510183070293124374795083694049414640927250867021602248944204928243084575779517533521649525621897895926021149417120146593165021811227986856351798818260299995496083543798181411922289374158178373985589717130385581720565718678114899068213107071424398610830308678020993303600895188762919353219228440951973176756646934708231926984534505057571074832268357639343099122748288623886480306174685198190863614754667499788801978946868534665927398435865630564502720652196933389719741037837776991805373702374361590358411878972516135332993522106624544782049484605549045121725997379481934835550306016162452237405267220241675493285469017961121631344548138925385975113909856909479312281927208360807541413440802605706134938359855133775244661368439793012382099571181041112107101067333926706230688039058619611945974180965142640223459169181807473957403254049300695622578986762429782255235924789022059860152006321462023585859396918793409473948272614052371446289400887918505719331494070414063316700541235535715795306810914075954596368918995755209391874886056268101874175178989630313905965323326799654850660310086850553539935099615208146032250101721092478635477726312093092786772830276672970695467862150634298265887263142592078279875727300753200653149513323581420655708276484076974699175564309667691897148588108913952811679600490161707856125640862965257132401490986892455512520156791352054258010811663938843727458266744495537706150658636873972114494908189701490091803412414478459309777829677646390238924414719321685785607464359864757724350290573541776979552338248017474808494112676742928572515852450205562684185891135243909906020030403401834833609551716929413658272379760019030360415782398541777983582987213235324936928815019206502027297225474849396997243013529510032075436640081026292709506429606408025368320904903686420594730489595801839023095528375105630264098073256000096495852803945586465018947421325879865036668115509880812352364707592383392527634093809902979634240165237352289890435860429577338539925387734825570700383022851753703138560050650970760211818291606758898145366493729776397308908967315650992805221495185290178177327289792889173690565119917179931239428759503342333968498233193260120795958076899893598076326156118055042135515699903281172392771705019640070567798382650101183748426634425315701347390021614948843963910751446177406878832555172946821868404811617368214407565897843563423571631152037779420705778579290697848268555582736646658079984179507200280245941787300906250137582410376412457549383066915487158146662843925593024807759001019416279739218629461618551245548940184142344006621390615269816591673897003433631973811822944476770745093670001175325609520942331743213927805083308226631457528646987131048913584931063753553471598506962193486346590643956759517351335008068802463809546600155292648554193232540157049860035097383863186423975801465103990839368237078734432561879542374682808760913437008139102314336152491902817064370500361104532462440141109295985618967047883635412152803034595213868553347525548016317834693124473918636512155798104840224607916497973495333609208786840750356868955890631487814241773887411314320957162745997598785927449759496357622345982322761270477923105151682187554215410302543956243113326349922261087455606984412181351185023945132249914941909236964752413474300255225935220435755691942144849037678832567677504208885163764349293995012376353449237809501834409821491106594136649191878215864689866904789159521539028962669634356411030090843507285321029850065328535562095382063234580321315701612584995136480472332357577879344029222094631833697717932521557755400069420678794592933830644898314763096672874510009544326564850773720712708219557910678955246263302603188600201701605155296491381522025173423194874540260150872585207540261183155544109926927826927972291704994661547681639852599525478220175965360044506546371706456856488782867930768132817126009243688582679056226055768526471035469101379331651438829311429495784921962137919608237454868262080766731616311690828797991391029051941399306246105657158090249746903442907601851845033813979189067106892976909736734423312218769229410070749943201314382080716215612261544715447336569074863496811691062609591057421973083870561482622805967763457814958749694193907762857532054836867699767511561637067293016963877117951480472805432115245185268716950136967326199186596730304819314538798363049078954684407510316822449563310870592203737348007483056092881328727289952924542000675192692263050332504480941888477860347853750719726569385726671246251601838920768463494437683058767032053595233721571049678808069607599805426447778711303905740385559062880342746284210270902829468061375957033581840877839671418219136850950300552452807605580155674761024172148830230323084092687426123276275074233636574801573192489433409359479042251784519628185095138583350355034600641929648462081267602692486450802355478264676658004357402500943101110118714879937206993994837795900932925223696537308973056890629025464661009648456654774061076445473635580767301691025270393891985163824995204255349680074468219650633705130337363069731678508646587665722199331805199117675356400769137134796263768336471055990360046937988570741484462391396201273253438667208698535785341105600649748516247505348748996384378932169302981239871305509381436888070021280971823269025010044244793686637889933490030398997606011768667237304820572711978899666190913271395047370330335129672438313545422144868598608480323248427222903461728772277896156854326903973941420462363488882046117940364017270617183462300079211632522214498626401176043637534027723111318838503270671090037085454399581830594549911418781043782440113012520214432633670197903529062816694439263054016536873970647960132752836348680217529132593034418029396483927715114542392403571424182662784166099600125250284989015299993457549816472254712327496154942169711154085877784793186888798646324630029049833417993308165686021731360507644900101327899770930139439558768500958860939798326926924045553218143722642297506927854330280787628132012527633925299420787857033585823858245199374428296219605564370568341628023539439209601851647069843305528528904043510600690235965294457343492718643152780575850628925080726483988097334789076721950902656122480637577114000067498992291616990117517663886351339840768402439794344074807600682949895248781261913697672215168244367119524852535746507146577359476195412108412334304250875579026153602180079747373984224814802661127619752829736658689608347278485206751204753303536230322178641336332232100167718966936713768493700107552982802922552850524115202762669116794531011313105883347668436205285717163024181343833269773892387530365682969314368267978671101342868016181521830977245127845847791717452610277131453750939248545431977122815264821540243173014749524076044238111606825556701885646429178112503711330066676722819016104748023223338788282421629351941290888524753492121015457538235677691900931604361653136087634727779185721175045216014250665295342596463767741989583993580940629939256632198721593240465805033659802710488595787349443603391979866295617812132813917448671098672940644316145069427051702700311373925775043675252717237650270924013189349827818426539472776283677632173012087131783531512729256132883601179736952594856158253419709291117996494085876646010545372020420573574202965684793543830935766467481079113650008664894129043471603380828751521094119705597583065867137418789172522957369044568106604254320092450805327056339617395019640188035137834246495633688082489703935181929099062752552748142703384254015064191863265861989457083445940251612038812708776610396730170358585718534771434789351483362028406227010277586326165038041235304286897672010744335860220074025039095087440232644662526898140962296552099846951185901609035563368385027031354180802565811673585839259400286457208456941910165108522810242390361941996082300071221692647957080311213406106906578100997367311752855264085175771862725240438213607038756607704153208440985152565064402763689745229399753152816265194684152340256128674852319375890610562584250852288409532298918962915242754893100469594598542174373745005037874472121541697295680516878525200456187920049265478153955520006434212769369179670256985975393518815701004023656111427511375524425498628537615709143823403599009434534421525289579979797669443082737360583230079170446864479663141253932331509992475907337914082444576862006349252823374674167652888990347274639492420973603608814530244970241399589774153762897176762284113610467101383782113039909205103424942302890963823307495373141954750207822367414341728718051369272523195571391696241305918705064048954950050771799338825186664921105456501836153436429292496853250963608628396552580606398553998031202921308839207525020002183906124636546199333208746647730815333702663341099856006922404756041993353313717843977445350145228396872958949343614343970110125037722169169939710584526938845055245410507531094865064765855434765500749893768469379182160945520939811927939889754740093374567487924450288611974198026834501154036634308735827409348030636115604311149807587662805851385318374379498740798427578931243599482226705182293235602889242947082439450276820042254268506155862587029534946384427009395464450627343774613114335695432635185798269558477837069972306097720774745972357968804443162664353531346084928559633135320935630367757841536157148838732243899172100985678753565585038341838961408506184402955571376125913631743519158575674975396775897580480608598809121457741294116275894006136357179917328336730801662281702664288719847653679365319623269332501990646401911014333990027679086222352943052424531075122855507640409929647404136929710233142669063158487690608353264273253104613842549585636881838280880423044967092988360443468816507652312363903679836942593509770726981630467827712293630699090145415639675968584989006054615475746062290403219687209235333867512417626840759409881713859755622244979451790091629023334927806534244519825158629368596013566591226844970813024096985039643798142042676096012173361163298956161476464281171341549549180000026730029114269435435191748377354756093174641928914855175092075144188551331964031195693657435428682000386361044811373173971421856987281276794184276453443114083305624280208553434879770040450942629313953662863897582769858964786410693209461334478798276693666504704657120511047451165065335070758638178143128132695973377123206117739842884988704205567870224933391033985678746415704914830028071225612556718827827522900562137581219829757043920924715254293129921762749113048906756697903911906781280932879173294587252360926807166054676309729734521021306145019072083979178356432114548369029267740822555329718930270857851237235152920564601505868999028101207871674932511342372186555931556292365579637593889158503055985642139420212606829077136600933909433075508224383827833545629843820178956172581214245092919497720574558172155686770148468374823371411982719124095200934758608726664471438942039556573549006671575502788474256519459362304728262831905270370541335736300728038189700651178274465632476297800702380668695431191481754689656281117771222264300362003321952324625011903175550206773896041614473071336264505839438471271252464034219029559836190364260017542953868611302558326113995850807871624802241116314456919423455139749413409574260447972564672921321174866891345517420942265365007704985418263983812640698404759925035111231988982353373014085625518372734566090823814975833936226760951903032436646388569596948059464090188419455889079278104609435069615111908476607786516732939587889838193848905199248684849364879318724086777926707467285981154358087246290431056342956186209538923434925535606251981030330411080719307370850105434735041247415481989821171833343478198041771253910176465035097984169669387599445038229943176111769034402909482391889125350176934421248544926159953798135658794067220646909252884348917430654313344805650116586410364648629943521980182574448233800585157946951075286314730814727548581785840211066525617165746653531521395305155304595392541747020189043962340775414065229256367570406643401267917490643859955258050155429685906274217181159288669591198036249265565010876100900275467894839707526241984237885798201790229302206029554953744226086296015001245547644583211922614177942431487672200607274106671801160696983323554693450778290360617008210862811490585720287400808382897138159588445146525712849338672563730628812194788492876053769732209654174594785219966758866060693385343271220422946454098794659701124484126528631881904374307251850988784225012947318735230284892295094950919285039307824116089686436676403762691619015441327778130863686485719020798436110241298853345537613946147131955616603680685159926498286295960522879488189411991185326148476758953281200661881389977023277242930725648190414763888530377903674051634717445787395564224513195448571804980019870329008565204806676484906821497364806072341647445820100482588063934476259893281587586499629224452035569841007987056576749457150420995561797952004451137403048977960939461704428038430381528693199024523747525474041372639726798874842918340279007116564716248983199667210867115144642699732559250037578173739789093523558818969727459761405783791113459640944397652714130394276991110785928229519841584183357499272435280887048449737875158652489324381164039071165278261294534744751845432900965347993586332680460619842062209530698798945984823190504117847596510556775060988097807688297988764860844903279259005032695116424567350762586195169622839432640801992892419680638340571837772795946804216228142909202435915812595530180288922171628844210909859447257498927037995604242943208016093844494610624692792849682031828520702277464511143119284667059542475126626243462512505240914160697427884021646852903610172222327935328738787780231935041107526993360561783567072481441080366531758795129625755614275789377008212025943048948876099999939512881346529468935058134856473402541415767420049661614544986244773653906252788010325239592892222190949577875068475766743952720898758347692373355586018896363682765456172467320051106298750792147268539306767325049762746895213933557714044756839238784006030767107702004100307974662482443927535998620458672958216425686072107884421901583225813198517212850522339587623851093794396058491936437244223429145161400880384169141009314784805466629452318265997920797015721123456387120534148468902617747048134680656734518693349093813383172151034613048638260657782721321507263039891811006364837058112074174753534899013205843238346414119163244127030183523942416774852852711065234794644668290928868980263617751931971504062179073774566603686881728445060583246535468214236686275985036208945617137666087118401059485987136210619990716104216826616368951677995055337841326252260868672135541771470847092450417689081507179644753946154914723762971730127934904408801688752549976334732852339640692143173845268493554050626879248544986882226412588041196251684391138922501381108668236434745638572915699428096290118638642658077636918817241584585232861861557229163367863740151769586917269254290211327547497650225468123427339455437372248055443715571439217066240938063668561346473028426503195224372671369721969185922400347638996834397379666439976754852298914255834724326799203543158342829787861200028756258115656409622798075476110682825605018361843551800335999265792600137441809613713610795273817580160045556480396675193023123570315025309001329122286053085636019726550758771317348695149289334309389359107563248464451266856739016144503169419361784055429461653883801810630675711955040589168730352669868748444933094488888786284622775324077207974717008405376962835210320224259929576168346357347779329211886061297074136376323126656578328819185305266339727780437341750250330501567486821531286583786298977706260337421261984688579783414207191290027508818710799589120935813221910495230260379755946945168665209731394376532660342742598612185003498434657085263170763756077152642853797074370144781894374978855744245493570794495626602801840958551668447963610302270900053794249445963215681643904744477261384470520264494951425145111670748318783712410336028698233747273264918271789737702474012416819711125343631988084873073203209655011903445320006488710238770988658392487208289466014423105100402959919948355686462873165587054066999586439764695526012997621898842067622612535670516830475174248995890168291654732681538354419111530087094388932913135169666280196125445851862298479654255398889221133301551233025675188709034916836339932158786936773136160531856916649532312773392113593114994776710652853583730773295607694706687372195057877585603852422728713969178638116844921537795543570529549576895391275319958102204489444008148824125416916995912210158217754057394186053423301479223999526046142703451667935265142392999635972136785403226464596521840121829471177901899288433741438429443179777814274074896037817788314748362365435196269479018972905901292908440383432315530139519552882837387042576296935714687950880132107789960935884081923328542733145044940490423576813493752512067196954233721778301160956840064477302878290053558053290365334521222574426354732174531322489565022468763732091429395557059585016937746075866463322879808208714648768411460798211551859158478021298977311842765287675100742687435004862478153824358744268836213680803127392860371694506754206607119530156981686359714881071986469815605253946521066195453015686183530659539915110626761269551089537372910829942818743461816133670552514226523557672354196299867549414514121107706673664622573120902672149085045379240055380062601703465012659269795812997020073997100314086261475871094835280974170426642826480800175523214026355708139957969329984410597405612654094273031800586802919656892540766608107657118019389448608534961334345471516751825547395628039848463436331944021607162835473919778354868119450978608332947888118565922657210409349375429285473384567781908038974656496620848119992949880361181256933140045911275529027029924282941393082783636159441190519658176507625991181503588704361227813082871584588508915695502366494814323177891790060095798148732763306899070061479104546057804075297823713886317510792829915577263796000384211015961490159161911452229527987266048012889086695746918851459384445780675946660848457269844890926307805708443326042552485449390459792431335456388839882760094898106902922601664730507005658770237006861639544609319885032379850838796992125869334301726826163387582206771301410550736898952201340014748605671376723746304264748715704949462001638262107920039055163437083602945330059897611231798678109457128846429649587610596137556142475600184266997489288877245960456315409750957113166034430768094012533287832991435268040261623640674636766567163760835328903516357748965896346051471258792541495009649693828941879221122440209023158685561016551845314845761733723312781493347822266699480397120544559644792452017518608777926465437714205642170336391797229140433615050730804472668562375165332563705316465942988267774253861243336158518422181326784516894789968364827857729539939422301645992323267165155021346321713299472234934933333200923704267299369973278240892339153104130604493666031557436465518866465692284326409531856172016071187789350372038801661323891656759317384244284845918694525160676926221627031519551934140808602911351258210238701623273394068676140521104991797444297235109177661367511669988059457111350818670584547577522768716621044455369954238087310073645596935322905030073208965522645899680218470143133582683741685082065414651657749938919248037655163617416398345125554075491422082952114842584163101500189755892612363091227680011031070961087904877376245282904183492112620248785213696120559976315497375078744869066121325008604016909784884881745478574768182121211643057971203094224806441353018371486339331999030895084607249139028228781619537014310145300051946338867611908718960726283029463753172589287532747516406492809082474053086254324784234010008874394431999574388907325003703798380540530487968028765396656920756784258079631027061154690046690393005107197720485553914982096663636611077577576869824898401183475047322120449610854701910384573508114334438373145688836363097962731657777181134609270748676154055770577101727176523231201658805143902777966913438364364521374182060539750689150109803689958565500305933084069684766559667591800897627446227658599636202978077007919867095381024671073719490578167842888391750442816783312381397903207698065003656555064331307398926277377652142045264810037741331201483595934428057090246195288544518593291148842798263105738999056747002179665554296003707860384779858739160073843042999082362123839772635525308326873158225170457646239146197432377999574138828627201240441710812509491508522446195540583166689218329783179577629660255513382739866193866935250015657458134613235345520880768279167108227163491962951103106332845579388380182682612559763251308095110463635094677786725569207675382343747899189627599917446217345583892418625276114926820862804567124110054102172763053393221256050093154002596186159311161623310921224740744881638263555414224545775840302829683773390128640347335112175171911653719731874730112549617585152117082854352852914337056570298227771047223245769454283448271834951300042484997603391998704945430777997500049187231309152690887211482085136934329602259437037500088739828646011368041945751831013253445478630020699682523840227640349311990538736393178254453788562014869564703091029537539355179841985637205080251293768719683751597286216226131347415338485764191922330864758104045882453366530061185125570112713079686766623841919283035663379249385116202087567896340312944451453584521980117232801690181435045464191496781397362082987492186161903082129840902724547653784138800992651395729935960614299038927104017259365776620424767188047523937526892292690960750876610827180070397927767923053326527566657165922271903249198142194864037778998311274217853686066818882302219428284277692034258783963606523537656336916422064777324736541747553586176715399628756720474335935953074308362166292003343054461166077554011375341703298310898110107377147181740639284194260749657514936737555269814530247526541894409184821792200176918542493936894203559382936708663309279606761634610119133762640875698677906666593333477090455223829869587921809872005885186335055511357881656989235266316781910518542450581301338544298272937284635562948387385258523643917413423270692847705489926930002559461157161875715040541286385413710561172698031386098623954270230585684549797215619323996022264559680839160743642065641139039444599483075057573626407256830419631975831617649446063181878867141193709048219480170606581449044488413291960895627147805607894890438521608897405434952894700651790798480217136625795153527367454280548945414306423976315756876341005789976529953429273973052482772329141194469571989971175687769108000770261850870833433208999201973632770008791495428520690326180336005498149903868343038697292375910174175683843670984966413148384824624020484491714909406386078095700402529471587975662163372283211097981793123767281579104077119033732168221595385746052455289743968224146441858636542151446601308857263760582603001718433432628387911574764663586653648847986091951701290864429430146737678008724636749494576454505303166075530708515790291464635680775313051894223848084098593327184132218402471339283935681520183250943049629923096056845620849082337568233627477353890651597894872328566407068569241939001577457458909317292192317523629954723326140086091632642288788336569641869605671563250710601564581652094764215105896421419334760412608097295802988016633839730911420150430813967234196884610077586164826337031273977143924458569490468813376327956546958972577972473901782288330852699019883540773899803386415584846353766616776135135112033446708831909123866191310428613897488881889780952880289034200356363651990424247226110870249467437298874667174215330615203139340455907111937990235045221643358812545792358210494369333221303437952412760020873070278009094248442098005919501011499328050124551107514937098123758360633320815389676270175537449696167925841630046507945235040415705809330330723351747858323121392722733416131412670392216081735655286783249043992703740674085245245332051213070229521443106093086567246656504768639537720846406004393638548241714506572485041961150123758378378079679771080488064435498691478388411196532944818842951048261746153797506667493765103561480810243072326988258031181907869022944186556761367742956325515692333355911486878827879608439091356968573148067897983183085285619908516357350250747174637241365346367029510467382401736713990390528301231179689501420217386027088767337096560372575502058726161039905877863937032720076764498517980769919584739707662156886661964713762159345089271451509460636545679800306681946660277815587337163451917732212523727170346240570402843149954778796481630975346493596271141629065293370179876916520222382532106850367265807463602398174060097551066288317040291330887815870151743334506571180925695176394122357783677113080931402288495612031285665748367544843329045357850821053515191414257667891142614356395792778929975985183566679360435951655118013537260027336780835093527895096366507172907665271982526623115442243799101829431451164466410499238456175741533162046927547157382210979374616132885874478858888016465230875750474935370813297104471681083184990164980955548789600564254605987136263524968541598967013991180637496447581016720447872002382713861884021330772543311752262245160217350176022241629350835663996055703709803484451769568921861592205249425490432593632799989936362377676544879734997235899874427658635905385064144336340570881232174124263193213349581881572990806008897640835418055794069153505101849337463269558862856477503444657385605512074388462102945068029565863851483771810771997728299041578861025784662203467298567080329729530181991516610750111983078065660732372291088504685647383535774521330884147293144402716774403815020366807117260397751279479383409332394363588684334103232823892158389553705095649542817873313095874587803330026348859170336402145974218704697765512426137471453628982612151194701090625904539893522650153297882010095499213309264294549398767484994111515587696069049101305689170120821372741431341551191619464521029071935435488298727156698994246536686487669430187409267369781680844109031546316588600945827592711526517320623396243607001912015247282322506989855570381461909569801266355030622374842692100825270619826345872981237854051274855980926100024277162108009681978251577450381167675408691069881008931394002921962248635080806775829625230694245557784257809240452657251820902161479724453633673455593054052598162731489373426173396835706787121204841350934522982654221511971777648751221188929490453941668124611617041407979933059901637978049829268414645257444586394542904652587490197828753278923742718609165694771771269825649882971221909204877409750557868243765087282036256595272762128392805942163290170435842993780020504369622588517527753396992054052207046202574288218734978009954362499885258745730777400056495009412756493099735208559730898356725688409527297320896127327988280458645938466638599218808506909625957197239784663406358674932379765722525104780850465590421066755345859556445973401433436545587213158658927160298955394052128913323686512971600514570030944174887153109711019931643499410259522731118617779627888276694536784871831041709165744416081603392999125571720075371269546571862461123249155257167395856890007172672710386293555581644754067302797732907617137460980184507854009608768663968679766905290183836687004053621773172835318027540394081160901734715339248400217523171752051578938058796062646537306137415059743728496825852587723382157597645968047603089378549809147853022820330226384910137233713304906785231804440488869539904463654728345476430276651994469481131026977550131789776358372788800357390337555099639616252308306192968599516423076527424643333951217633356677905488310133707757399344488721630523709372941225125587931459193833540006419699625138036521769051139756333461356379150869683209170332228815201169231841482266595152746144740829617981708904438505663142515604053625991826761073499331356880257705888743084991461895123555814697068487118606831917673148468255680928835745423105275976161852650705172427980287938382939138564562802009373388688187143634403337359708995724932170529070347073598506032626946132906963911489615600317458247884022308494551778375627204422186304098793642377923593984904503616012580393021884161291147472627536927924170187053075159435832868047584033920126908155344940666966706238248434179424796231426076550734370029483542178294572595284191279568000641018313215817306065036268532635261669429526495381073275489223672809979477934653876445108295486416641881771647800226156063840725136281816748808316413952857453183031576112271588313293121812759013573381361952902005588455506904702580156761988745515453735854399793774463675635806188193747649325898106279092998646696182838683822456986702430950258462541914750271089395383153884539567797472946420734021184917581772810051264739976094699752777304338292861369931644984685877879098326780346362695152950252298555611570423907601278016941523445538777859490477586815799690246480420417527810307624214979300226541918866525313829124723788758409415003173673516828579975929696451025759348671042968291498813160232645961084502853762387105666948220620134330174527441418095918534773695108708561619887920998964735204845114245429561386121097464528512944437329610947609029938975528799857762966954545418137035464423465045333392108215717775309072834922013699835382742882784089084014248581189547632224428286135962580563625441663015881526550265400201318481868571651270091887311338852499549773975370819647705648781722585196791735678624125955995994420302646842112123917198637362071986485642814765172945227968853184165625243492452137849949680972002777386577023213417934764354803964714459046296546486659565992790396319359329565207417929867918666671329728485592031066284130870648010912060948199480458592834422247841704964614948384750527535009217824991453005459625018961101921755707417897348820341590175498490790834503827842761137898189750022285454231530378385931711181560899424797817386503154107059092686091545007337273488870719920736020114181844686499910342532320239718266895574485138162853776939954509651771123019100039503593922950548074534169354625642073370997614189910244362072618211226537093359100385796258630610191084176105292679966823681878789503551323418459525802611594728091088671028372418586051576436417669341663245405681618929122839214639900242440588039851425596595898583823277355175889934818115068897562025402913994595525346394577360699286606638404087637554102821388255861497374036510138346657540553487131417985846818102830761460375844098441489296460460682185676905790072044462244655427865714733773289205048356891692759089385514880355424950559235022437418731809662951592725458871196838917017294232253375967756333081692578974923183062693735725792592964253629409415846071821860988958689185795167760536640867436011540953010916042056171345719425502883135618177959400166702455018192119267126279806366985017278906416181803711582650107462298127248357607148126730527869486726535864186681453936109471197438200384804995476109472734717334006918443595296028377902078161745847495497783444263892214335669411918620814077900729547277850823692821014761975173934986582849443081429127075598493628414824145046575245984583151147038132096334069781987922615084284936738852932181484439560259534250812346527599422925412829744381475522825499073295913117465400708535171670154236077796143410796940429050225387392207860822195403550846244508403731126752034577847202574043681705915529421559975775138803914738126738950231926144694300559040545154634674785223252996353186298021940745123294199742204298411833547296875881633579479717386592360426725499931171098937334364084143525158957226865838417530485879978882399719839035171250964120922787517436490123086155211868409298798685706571659273174184518486747598321348179557626800390492779956722711068533009763843045039289201054652335514548254292122449098847041001444297576300642269865575972759631413487421448815577148148015381005823954146423839591686333905324911561526454291102664403830473303356185347306375172414593701010556340236775135761854248781178682015768181886097195733900447288156995883556330387764940848952106275211360234944008642152416985888317465350892211260000645545917362343769604608574208955371158384769833618864981279453385902926533919089643625742773338679742945492899332129992995691281775370175202739666818019089777232710660647157830277023772637892880694345101561466468408023988661255224996261707229118402990561639664968848035087770666819346723469061129969402008180148336267930152956364491489064012085674173052827030534197800334737581700966373228392563798484002211165448855014222463621235424210651325869059992234116063099853195485680963670227247795781575136004001536256714971879345884162135182991926506915785846443916390231028640763824683894210866029972957381546369488025556597806291974710836956656079243824134284602186533383956416553057863744268449899871941338568672955225242655202693918966523948105846957889095237338842439939782733400965310371707253397308472722426056679929021989297871307109160350666835805803623894046585431774143694769784627623547565358055605998593626532898407419976534039799484375052439286232982271217371105890586986521621634731037136659409509807583828633744207419547978698658846887890882721008774618947994914679063993961824039284005834529286434667945132821300271847050293852382028285733418152035470454798998456829028551886277138617828819171586910489706245398042228816155712727446149665527985184393487714810668530706765173427414992627752769843355009458791158437201212035814352226429077710597770435958113572798783056015473177008365151475691163356512838501556281110469548518264751523904291341987903729586284380615984017759664089944325777554761228237214733205445011483692860947597182282848971345580675072208405348135421154783447620198661407078833635110223497337201047412173730681178224098956292324801830776518228263284883624897640581008269624082749496066099923258462432772381827160932938219295298189544867984425076278645564394396798453966336916972940839928592609544392516666582783341143245126706222373120173411154007471062047776011918229169460382714454566274266688664182093688757770381257877649810805086241894663619976455526394188023367140428839862419943136025651615523439466932080543760416098698518901113490636536658444310651570096505146412975764822792061842635626479079757849335230648694784389683635443141542191873563895077866099511156582896589332728265503849932321612852453770334718275537583395316424634166422204332701569284457716317129151949252413062315827159461434662099596389400856199779421443294918725222443242498016538807941502109235968222282596883522689628689866625338084306199112188942338996752968711691296387129652528887285752492125136310701244031206696032722829366553694056363408806194592595587657020018671528746658372042275687489763172970103737219118855674058086191775728347937273100530261260573745662651415611521365920428474709556458141804819517729748299874535809960551273797914000932559307183249453108775400438379608129177605009193650691760902647774001575713360698624324841761177917098142697563339626153253591048831939390389696715181908099363060155342753299861195399925776348880701049101021636240524589238422165597441098506392146616357210339652580266429486246314333584511442746397676314322784835552833865802191156954215995624144673467431741197626093672544002915013454289798073547065863978146137572142037567253186138075244353833959050130143612560211808738687334464006964993845098725669179909241927385590677226840292832264191198391169934667724407746001082905850376723983930188849350540559161635184817874532153399010220431668153206778677172802384395679115379475094905820393017178131290805952711596939464070021726899106535059719289706172809812494131817421979685882794544434402711787536483165129818617458071218671441555953110964878820206821462675170196068545757441285493996651108365691046544571090242959245305235609077656523387186057318726712017571711948932804326801311261982692918199294524153240640188246405512065077880428246301161627906708547116719264887059851401749596227908933087998422508494119557064287211419657519157746755358957459423829148525447774156722946843345094433405419470526304709399685576432301331246667221499449871276816992329762483506055249384729643021008921717481735054467135749502390613183340844459454357826564920359107946363757765271236005706206150489989232682800797483438785610364946428602074373145773281831109811356055177284277323930732483303337965051137247136545063213813098943910150060632224243656683965902096733130867092790638699447662335167421509867819046316167317494673367521533224290878759178304235306714601011695491245159813913572959115402968653587187887227745832485434048160580684253051450949909181860470619318426878867248682157781566585168779103433967943077479598127610483390336730138683050863694732339760436375102155452436796598179872250640682985780225904525488596096895891503943879054639208020424811533057361912589827268398203352682815906546415946498487413516586793044926080895839674847934996371958663954378129829360349347949143711388686101479655534471824108850926238650371121179053494606472576437167913278659713768013064597706548038183326350935402146760921215844469068152012593563547864653346580462515719746584438502425262734217726102900693902581361639043869261750572864150778390937984086570045337129031752154791709709981759046259116869772073241185690695953106249748912559874218567181617420324672975061938912843940634874493612764394953855515906498660847981477972121097357100440100845174307254910989232476815285869961771655834553071361593909319884606811060573905760509386873670046494169070441606816025243534672569147792204058781866923143235622645068056267494814016020120241762544438394751329696726245803180035251308342726682522475369214737030887973075372731421080455286415771181855423514676770683900336675487524617911906497316207018907233259746908599273879879282164669313830710903143852405253722524775289847374129217231607811478817244673033965800807381436008305266622534272581364983982065829807183586182347010771697060009283127429960837543758138194551422712982150708870025236152726871525130522506753749006338045107389874208862713897417674268412246283939653393048527033442357600080900935772532003033500512761654124383358218540630212331343125890498442346822324541005682103947316249573332267096399706677547884209745226584639412080464993333179971749186522556965750644661249104353554251407520939276051044378615732902625946668494152531860188474796979239411334129533439575129247374537840870128483378425078883195931364975369806077619089991535111979833395538281963226292880400266330731075619994253130041131535775052716923437716441137135593165338334239647977463846158935179129821912680234607335363415881237731115041350592468194223764031593226617633482895378018390604136381881034654492767735964327501599227607151817696187566218386828214856535160555049041886440786388172182607139545913566464965983906759284612557083735874284428375540497032688076385611810819683962879178988291373788874594467883164600993400852384487063818718423935323513045843503774789429188484604753739272238102729087289270677066256875817328560040487236717504423267735033586176057596000841359068986105718359677646314570237750028361856536930591080107765623585931742838836136198683364820172090411679732138207701236225489519664401328480141236963027806090232198439819122883758016479943638656710029287643273907924229033390391211568347507488055192816335106269756113215517836292410234687301620798057603377409283712434188576639404467566669392288268235459960511946474865089185358419881850614645495597960326447571291712319582287814278124639160412006645612030496389511878698010264209449407905657223419896445582177973102882644698316979410923553708422847482132861725072775861046178108894203675793923930565178437774608677483481503331674604744645517356813416413631128628193890236953309153696549150705316939025109046861061482959449829491001784868006213585256388091678171231625630584474695583870665779186912655104885738561678377610415391644157198389351751094283808862743933972689285679293022559350864121912924870142053770273307785186607624989386621001278033129620077678518968053357126899185219129121870345904754729823080230579588462473920828530489681584353291354597919782186315698754613979250820167070452550689002371414726737808833757478166079353231746288467681212404930927693051407137892327433579226794977862066822253266348996776889310926235463694649587061575052167292548000254242172583659233051397092253631951571994049229473606783611858465269356568510235648534682145816592671266516119396447661949981675123209077480522154684115095437014061772585210225771897569107825881732926832336439153150038327387297970272274271868352445008178295503033121846548523304737878158803586185425951635148510512854370218235195111143510856230633902553341996015426937713513744779129433264284333293886452784337393543197459639068547098516637441218092765390054530547091556012890056394435193743756870600024478886049657474858758517013132431957758896287123301348709142391856579679425341885046269511382738466411563918950553382371340795550801196427578585773998239390120265061875339039156040296532444820586495651575059492655050239422343016301052559753501996313762040671971917197838497726110492016410134390664773455443714837694063497834812099794510822189055950354653299277997437174102913185963303506223078115716667674766010504867524807748884105437433932400498884936168130617757729637509208248498982023560540433629915293681741164623903580398169786657627564094880266930649908687546164063152007261360725286170438557822665168625113038595334023552404463821592423035358296368338830486454654563007826408242059489703205152310047147557664564034171337054849743127362598344363651543575127846880936886308949717027854043740080150012695330619177186624220850436780037043717943342233312209558053326425224128354559957866198238105979179740330480970301284179758226089662167682701837895603327734375733931972660424317339969036262723282309156309238276602247041522349751617329769280018524243521006798347202941975145038904842340277084864686569855100967377637428544925389519917753308108929130468784429554220936251441939781798376113282747559084603050762214237226318701035559291601401560191587332932801606271280943395437286856594669050834233578043809664873124431053718332221083061639810677536109372000360660161541064254793147821068126183346042967787599142190881235903635148751461580367730742271966163354708045249618438564438928421334100302679123513834845127403312985340677195960696440832933702862631893756971577830880467524797578757547490855195407335351934292221892054624505284919679685340323311596479353697282566212981593897768254984676437769932869992784748707177502382531580606736665509026517682700782857707486419220751379848511520719105565776175902203262683837154013994732245904781134743642919057188500010249662764306482340860076726826178532476608199925928357619585732027208216448389458850534397671640312674257405877294548583339902372472814247944823391790429629231509052761646057137376223284216879158294165764145647099971203929375938492809943471945950735364310817365753801523467600917679487082260345324512201272375860722254153586780393057355987047566540973180716694234441282078794788961377979572932068257415571593191650878982432116997033811098798051708237267112620497314372926412152568597362894028006969037038126087457530241893992667738683674459768640343412811369695392119593723704972218854555049941988886525840075774550733262314951707975787788404598871652047845423443558556740777713185475906270653179595622427900256988009096927394914125772755545621152344334515215439208973916211695761661260819157060650438837565798687475880934430013104427617354950662523279528714832849647093823997425898020366727319704206447030855570878393941625421441747359919914955537395780030282178056684152295677834807872606559147083276715445386786375981138460807969612802168070967549978121746889648873603561306597893480371647199685066824542174341407856479765765918491900021403260207669856982281788146499085380134766398548300835541762305723982767396103720523648398421202707366205250191572910390456841844511250863637157019727141536284362799405106754004749747405729731374176782563955066051344617672448195645033882675011874613145194705307208607838199026260435751772661119528583544505423929759250285353290610518567952515862876593855901952179357688369930809664014836845739594656930105076746331003710760927193324857865548380108270410491530122072868816380790151682594094615824246846165462342903053173433132547582346038097080970827920880260095651702540153190548987514721473556383779209544728176063231539937570668846896523886842490858134677440445746390770865474672156477353714736381170060584317958601910028757018530224935155411759358520584257968832905592908015369711707675764511830877221444488479387455210105388323415867513295368285087668075079462781968498687872018525934800129244886455037161498630826100551550186007723773009746735761660098958550672948164569239768623458346336470494777591795275029624126203169448618197973544278704291151668723267859371125576350114277756186034270353280116152292051095207311158637369930926218262732014768747357534022582449261761331912678397516842041474348048013932309623781998291389950677424708705957938544360049806949137695929497366580287660018720216540650137894916704008638499892835285522053432735003430154915939650204846013636517355825873479416552218327928364200286912585158526544510517342574835086241707495509723100004233511668176096013685946246990292238308004486286327969437260865037530969897405358487993378319900532229961960265957041642262152797593032492806522122107300022753413937561157256738739764404831226566459543209515187099160104772228167394097942106077629843636408349919610776665086959543389696272066139139986888302235661573325516111079395459793970798999203882887194230118172180177476895561660875478934823965079541371307656221004796791037415841995714367838491279783579547928143682190529674109729894239717530458235689538113005223748718501032537363032740610435296985202655627136762147890711999647237577010538304323168583536071357323291831100302953867789600910381597407917875604648245675069248938881350113073005680862033199815727109983498112666720566696801633200133742467506890876479708155817423572756058824568566745986651690700675082170299224348706669638247171626957326414171594760102906483174851094801688664486237791130939448239371202082145067153555532246708128754518832778149315189688524324836098225728363408545213695153819883931896921644834566698908887672549490593182764596718660305423943810038827618881605538879732801903840254297835811718621350084179997157088421545557076225436865142390576112979178419600557482407747164799646808364744424185552542968720801017537903259366836111928571728136769675491661504221090160884209218244394230202385964186585471966725813680544297081912771895729438101582841029056096006077085440141498716214943024768927879492903478443639319659152873187396632495648624652462082538448156027678969562919133909229882350475862156145918828718405051955749351191675698125413417692872544210784667282372750260936564383065052880065809372100939935763568530895493772146844175827196570957694590889870121517843807516139592615164290047353800601676787517336917706584263779321600785798273670334731673061945289944672795162501242945241619450479869687520765753627142636954759737310599291692531429639993750878101038910977251848549271178472961625130822685131136021542171553550982101598431587045187842406701279838573436640978096975458464062428480112460547662580910277931481828003136450956953585033088736028471982536512921108847228363839692979211684489175724086195637025429713741508093795160199371270837144182291444787616430752738893170801928297165516081250544833445167623828933533378777114169740306887033108994434278871328841104940581955477990376467760696594129370330378546005223181405309531574324604333182732171791787944687106239834965037039455364203524426869229616631218668893296417465638280929220716557344683575903359408515688958461240673355567226006860404320796946599719816047395075689465584208605687083098466708951543460864015668468911104434503540422956042627110475135523687729013452379054745867000048313843937249383225809978054941586835612453237190404974302804560661402314823810171071924215158968503667520536612011962263426474605870205162072059139899277272174311311965531492925107521392737183904427779166837976572083847216924496038714967276066202573108409765241427680446576263440004761058998893682097882586574907362909106124353124360762902467475096648457819108162850300118444529297411745301151204095126182875841747647096375175666883071628270332360037475515880713713465722856911735594824317645356336899958442025273534285650979442443935237285243282404687730641484972463880475638873120854771722292921817379784079701762074403933124444640188235937040845096742649747498642401516681035011600629925878223275673974139156579416916403051153158244268920186979273387887391149193216203172295964049285468819509898053036056451642849554854975521165317424693624812507029082599735069691156819676711636196223496790568135056179033488282339722348633204940867336850302979319179946993274600429484684781352905885073565553280930391184704565619852214910673268705273899622355033544350050792070271932304989142110408517458334286727768392512391675785018993948936329905264084895523801130410683210637922576419185920352338903671978611328225307763655779742836855675674534976705890133726124492739612215888788655456061357018358637022893651284503208971844473967378651376463009349021509860972850249587361487115449869800888820236662672423701177316669745960862373521010991503657477126928355113635013470824802882463005280074180824380664858962734369265162987974468157518317611652571583108473008149689785875453930517942656025851579602487276446612124589457028478960115576362136475661196881491654033815723218604308747868392393476481427762220002415779807844939170665691903375293831807946843154363097431933799993032710001154307337714790666621952703027559175717478954814718800966019507720556520782415497403345986184957739858605401815778003732689839571695892466464998759155469193747360002676921290660953364867812768907934157337730780576837242349033249738449547074198518069808340954355175549888267650567764578898931922067834118401321682903371604501396599982648566019559310112811387079146031428129018052870158943736771598754078740184394842825079440809710383015379035609862263061328746204864210239413006971957500021173367487373497544162826379426754315119685590313551481850896704894579883517489199844899628009334356216973384617951864149195428395365491515782496427953359187236896210576876206664378799886524870715990375143136516641896559762121535117992059427635895340966865913479727338021826023845178716171899457650721102154666686106568028386085707642204914409012874568094381964685924298517045954723357809941504916655475898110449854158321502198288049234591425838484637409801299035623296973853657703316850003073574160347836631644696086613341235703887070864601077231254452873022322792243802634920681934716966202283364268980008803061628486118109687893627371585005316396009853630702123545122330392936217428667533074402712022929326401366085624953968696827638207071586532017508450769067191858283785001644037679316389395927636790219367003053924779221466847237679447480058150392987135465990926436438257801355929435251866858499375476954368213422056295608136791947613913467662102590996006284723834008361921136162409534164846665691981803412632516390229978104440277257580398563246791604888894275212525395321736437206741556788415019743299850946031329969860662762949204203198605338828885407854580851848679062372339650488779939131155829972039140005621063916486201618425658425582133203357507891482212141936697281542788324671814128272313441778297369848953246759053579386548452497006792002566091485357029473022500654517529798309168055234677133865629566260108130896107275057805970408500783096147106213801166441512544184304062777473508399555462818935731406876732868046926150478406150955803409889120968058588990423577816237047990851303666042184407573623228648973872548617977829207653053989296686076839809078055004259418987320101393728592456680746472982174335544159404690735567671164984688355191321164930366076262210571541188347869785448443598399543030054378155059000649218981990307002199460942319874898527018022527207790887655087936399978580040911065477376034899938367831996908804247568042516008789170343347152842144094746554119919426646833001089186527068562274289802510900527853790218130651278676579761090394345886102206192190181833407341955081464828885590388513620142906644417052654716745966719334644365868413220860492039412504803971546774518487303110222926032272877968344140613340984996326613883248606839452208551336561822146546797199977777265784144858206293295666877033966220994817261219359155521919591511064506445808444242388547295172574695708960891343598285389886141798173897101185338836701147858123745751574742375326759274530396829756173270925877880271384221928011092756574930794531659506917062577131869567311255195811152986259211314800388996181018969537315511762033080131537153211079643883545940684649433868128032766200117275005817854485782517296225816361853162828160448594483037721272600057576290171995157284003635010516490450655189486333626859165864470259860612186419122441717273544165454841445660660689279902144417530383599321701779873477473924962736227493466916251405737726867795470903727343725417799484577359742179859071046447102175826482990987867606097337502096583886092160524192176217464168353203311097307418955291750206951442689509766488470115456159589195503841902303245959391983675182542167336749839834680412335299366467434801707001137910801761545840458008240025789024045631662060732521882142787066594199067580867309504063492248803615827050450112128198423715896913489806661067866482868189739294827523015002418375904958941459530283156387287152085952495689769245540520467050132575014780922750117005597481641499475094584505565100505230450318527654672848566517121292685843174695062089525366690122986863860698564227322281284590769329934704579503270664843715569856204744275411373106830442658109971687783600998096978951674675581574996091266531173604063306622658549081036557202408975337574549261608779346613730776442864105096550114020932046961157534358297758907535513908521932311725776908527097720671368139990552047243587339749338395563705930085122467137780970020610884841608553977133470214564843490924553108329012417882688127073961613473992330441027977935064215101126274883985874923865023084284230319208923913462841584772561129989883535526634240292608352708548084571663996378213132888088848695251596225064276870130966829494151778346036945447129005336458553217364735193570222668793799386207672944028974923122029253080106247263055970422928671778056904124238942039864832458553920401079234580410879160394807627074871650906887813825764818171849946841447436071444753932824225422234446559785375214753599605073878337845871886882928864842540089864514671622567901238820136908855574307125126255943472911736529028321941884825096847778067929687883568660448600632322695362822376025029790302097882855693564572125661945321202325349355347345393969936196542681566439685190264742711953171877187593448700318673835224705652400671592476207576111948070945896311887058957707564352641287995668562350107430344451542524087870225734014805099396460239270106938069005991725660143069945535159042270548646658823696719176982283024674585301571773616456488442614290558922215956499003089366379582326245241940566382979660197079503691959286425564759061418859848212282027744283740463714855212082948026420578766875020697150333886896174378043219126187450181613298036271624113167328873339799177894870064502383908901804687042859625171587039235274922933927074817718811074352985726339105173069813867283843598605656586388471327201313441689956540966514034778835224307719184071791452419882573563612223432267832192426654944476097698574287917936566476301722634489208903878539693793907896195687582138970697357770026124735417113835540279178594848262830686941077322865517640175483391451539110417426100207769614715451566408861020743162485603122387279462886622804913776545112777733420377118998267916740984189659428427329885505821200748374702589773241981466471424475817345459264534155815226514892982734129394506108419481518597613663598407184716111279498318918248036394190801827400134433373033889650924267053330391305350862568447427150025204091481709205262618160239210853702167677602929075144767316995489920874190313788930915047281973191914108163710082383011798421482722584023856623207860049672797208455363572180255655521663370530243776634177641242670103060501172226801610196488035163052224240765468697436043231015443807786177123976347266251947082311811450168188444804275717368486492518763433034086317759355959824812641635429935797127906666731174098978285266499159208019524019081713484740799392747741320694761223908021641192788292527278501923542001564452734187657529958190858742676694104102349971081074196472572602840115074416325620955027881557734123739889148537400703557068969487163754753016521942297850450743346259999139088271600514232617083177214169112995986111479621132456662534915632355547315264999593397545021153506738510160783714293862160422489459864180592735163999321284670697614160724519959414770718014282251917764242110293206228407693416651882386752182134742637141000183694438105013782064791318748467539912345983389849101502442546519173707438629042659907049510308088007598553516441133474066108598520550370125964364587360965192587395236450280507310743959865446916334107908609614563364826674513692578653159084612928427412391024646318315662286189994914411378668733684614110668840006507658975372946545260141796578326531025486539773576782768024614377652036026977541245511061697992419766026745504522241791448750504781992707636909776915258646632948910774411395409755230799269209475959073750968798820086303191441924149477306072114973120681844510588310114079296961721286479128572866585505972635039039925599808271649601457667660603621436805648827661103121873985184728107872358616500163808657899360738405786647798630774173582383614889926723386105691483588013897251508984197088330740967269925329936152327018955751936915513000063706478953934206832978096629404062583337932633874103112508829996982101031879219356677160184337131207683878957625011654962670502579392123331867993596645501797464757561235080206037435975422881332357623625728462517205790688927610429825258169298907790304158484521034970309418600869531846236328999353408788887094100021302547972407990544324405516861999931275801285152970446667671462798356201626159575846369972127882090217921247982441125229938522354121650634430592548113289337459181601544078406919223354623147799330618378123112904310938786256032441920098641374536714213096378733795962248171436075223975899697665362850604384172097588733945839522105280444528913716558526080460139290616405424308364285485239867258956319729736270871459025588315348386399757320306705679424174916328521820401785317108011119871886918432024602280727758718256891233555766046120549666061763092072797270345197705495301796610820835299067419764932227544327171423458396577378321172902824497711674497920330304199041596782138831276302033007974763502352900119483137518373856657041519457916912009065577957731475913311389831065022649135692740199536410420654703346308274282262767993976546873118862542624047408820112117149745703869447179400801151092046235394121496622799862405819616374177999813106991762774450095648344475432752578440088182909653520988854607633125823650073003944389728721873357521820139333989463833392755784490985197545905449983781708260184571561174138615256092859662932077116301596200412617202688803919337812272959129905573536777390688688425000028480104942681745591581318887095767330289214805699452571976807913680766352888291816196232154067887150876681281176972200340487345969613995518338877725707420578670158285545720918785188247846127394236408071981750938193678622161406685774673609837654321289691742951876525072565826905806786819521510586927346764856404653007947545879848931095844405773223788619624268069690959242799196845795581751662857221917416705305589063883311907289459819189593587550620028582099724783909930904274696842022959362326203432307855095747884734388813256761160323672357630908989527947594913234034602462127543513078106296923165836214540987473519711805827779039089613818635509435392528709299532424876044326338203761213549271874620820730243640686478207171195230600140296811039750262729237580809042512451116923293373059388266278413356720798661548267962085832986307305950961260177557516929100900546473798906229373765079581752906180528237947211944283527227777484664647894639527059992345578620768459744883970185751609283185719662111318892926150526308831034455896084967622988389722032250977671250220417791201436546119118691371592681364436816290364346641254417862372237728767863634113026973213772939451686370619518609304767580656274578701473830931872084182723216404408525266130725094657632635582803668975462711383773945024960548728136724337982174705516739508342032995398336942594317297178370311172845867883188220858029287681040120164242412958008969819958917129293982898392343925844971443871406797498242747781781260334300951874907805607169322317250213144238989151958583815733661915864687629272266684462064219576343101244760724043342074792600759446798086554883263339825280763103220494874321671931954114383384454211281849666856153617992636867890504432581334438097629053736124597134424394391446196653791805990311074637460381972883310580746031924595157723121170560734667221231477128400376926843468196243541123176506961214924724220061296321356975916261258938952928757019517029276580613143469670422270398186778014202805081205001488855250660215020593472041676913900760532055463010422824034178114134037800635361745609593120205291886783823134984516431682182270268838691454888616737959170620779347635970115163370147364725298142067327237475007742649957977899014017560721444427470977079902292088787864785278069834199006838596798826335634853573992017028203567174630396559940072758652758951551729013488507732060857579231840124365132430288503499631037455905010744971462856194997405316072772816107440761430204430165780961110625847368509814514656268262096490645561756747230567963586401862774718053996468748306923358698478695102423869592159994362091417143253582476594238186444795195000032890694243852643440599824791091079434064302772067421465755521968648469942532802314079379713203435020967796891366672398601508726343079505507006407584245637610609596637799075630734201456054773696785387273917193319690227173215176036321587925539597448841679162418228591984079306034235478387711028374847949358968600333142020766372163684687346188080113869681322619010927975153043088008085115317086128250754527777544861128681839722783703835424601169667308411470024610823346961821596222572374132211772529798997521690050066368153386384123119570096238181072738761534334774712882132524976803819428282274540666205441368447382026712133373870879633232335090392317217626376018871997956000770151833241598156494612825022949879825237906619284779004292162721201685443567795591159785153138342044358745627751115115425189377904304735138503421707388298255157587141437518344928193674521484529207763880222824540852391356150740068756259867909854411524881267725683919718073735189725176157907102445846647638873970424485058035002425646994471661469949150828987488419246738610554293103518487404536623095179948944026654069625215046108554126098002315270024629052256623562391754267376991238169673927222814896516809501183007130671055124775158522323684605495340884826166916831713581705480406702719848486473162790520469520713590645788761602119197900879525224005756128124150183350563715649996635879522313331035495312600933789362693373690018902136098529364721410102080549017190050824900504433701458128685427510180132194988915584878378919116113927882972429797441573353221888492462005121623687152958472226829667404418921372157183808053415991001469396481182973568611851465676256462403255700488772277903502319176270340531876023365098964998780706093536186271298529151200068742498826123128241602469898720749549065894615184462063986213747521716866055253991347241673565884160375709068434091231346590262307179981387789223015072266930477673882630427466598182722681006421271056786608928913069389064807395149351194225814227316437227521983505275917485728579807639565934325382339752944742060302008557895071617994723821590861573783012620998541809086813930807000158910432925595127865030734591463665294788991682821548192478241723589006561471164112878882205967490674093640460939716789154753320356959380527131908268955141699559288327387568509328909955134078184528124446039929882947156436171642097331270471099392989428974037357266173800288808026252414529093736502304857061875560247807891972745226346911378386734928908660543798538745364101478471541153894701220888594890991123170133586135160130854991897990647360612491935469990365123675004988255117090181019614450754598124200396589684382677710746804633881962424759903915277631787893147330335674735058000865128332669891812739333102770595880270057756704992607766911824769977029965927148030358935084383305650433596253145090192350908008649385299981306240589341038008471363495406896759181334932788892562759448934861201339009519051671216990181088578800468454823906302180728569889764540454684243235430772041870081383272490803414362009537137286540107697493324023027825085760200726057287991079610349875304860183374541753308416419459308317349957330623241161889842373872134697988555764257300423138993385340198695774753290112890257969015177056698389564984744734572624111427708309864239160272608510385781986938879648615839815447684188711648049885953599557700035484454518026631772683591799698858746181692935128460250532273255772795538030375723005399479275050778203292413656850615607780416719827204826667893977776131927665252843092284461826557002029243241170401930041362467176651714465418753689735894342657209176075813778702708431591982234226146216964604092279577662045554020487092221519922467493837908000501055197846218764472202430555613577244275822147842385385346296988972529084309678794603512057592240596272490106081061545898521116647257141490765379230446557511148876272642169870805851741775617582674095919119172271410956694747107347358865386442444390370818376500963402168222646072257392105494785061582854857074513172969013872838938580085264599046832137113676556306947545658450226717226598418724272002398203708295543036474964071470541359974272306236329202706964130621095505826862631775750933786770229706997560219754154140331209124197608200675495988267483483528616860778900073717837261880791150571381102716006136416037579519283732779634809142022800553803299057085603797522256229023383624309851149844130070169434416510355049464229925830279937913921032440255020099573356426881234424862685236548043633340655793877376578859432457400427006684316695498072889087330872443104902583530584963940411698368903979895814181940700323019312927490622977768711066566358071502788480545169224104041046308000673894897968319350489799342700056112150095357721426343621822326646810369055832347789045118020767865847732679001350958194939946058208333897249674545468331969323852998082121182324200026356041078953306075000092597037406258788779515164497252631618482598122254897354244359145494294968798788079022020756947120180995693428380733969370701049751234170636172468597383075615965493854283550988164184380279558682277492285303225187915442480620604214739300856578826401138633312648052935795754178317688159333702871946340810829741520900494630373594834429950673801513885347883831222949522779301011705165515459539435862516778181692695947073573816092616445357419729849037036940289414123322859924384922331345343734472857411006644839104884442565205441845861589091566191112160541916050247460029933340604719375829060262159695678977766686067392968458684812387281292282138820993182138089000630195335519050154062805449732751056276380307736247628580047776282610861352590547159554190894312354219311170690420563294722601467909323563602238029611892255458480991395119892983931085002017433316818632603312944911796913260916571018492145745354415384110007671910466344692326487618402687978602123563878074705530823881821471034634677688859661254652203017690438799405729703037217133538579893214632645359668604806228843584898548155048825470829311894020491189710851283183516056528197231749502590526343953059484725848171580400287036004592225267774055642075899047922416012040918252971896521872710572153813927332909152232302478624105432611796826332600111369386338185732326013740073853838547663884550629370680575577760498082100392321033227461133603863470904043021377586871676530036360440798397515018920171073799737585388224873530827370871697659757221882472126231370831763819808623062685334517132593547750008451828427983504918920728647767096562433249712884622478875962897703380915070033326729387117793439509374272100961710109012191132556651337337507606148619798975218567346048148840252897213181781655247666200909492890751792127579009729155006229166907136286219555898673420674229055018902217295390655837669312488243628716762680827808343882731460474947762204288626639623274160289750209730905883898643356195060025158152556642747543769408898905209725710836465353947181569912138436548820857025397863751944461956038525527350806408810165213858043124734848992237900820700526436040077534829875425856477870553624060669516114815968664838121169023413567919896794455116486964624383455243555315896185822194581011057170459077163885307270956908959683740213106930338285670709182869345436142690873304977239950389018144325715036827321680232820646132880494072757250358836750625890718462275512115753991737353361730825014849743708518011843547579442390774019152377897488950104005521844099201926724366136548161015505981819090196945032277502432080646324154843700305185331099571327049844058856459126714045427766825276307752194943931174952550535143222584154974388704161027043559032244535598554894775884478498611684425061674959180018747934611925353694107003542780021839067466134211901446874961773331683503462905112361900990805901174697770784010262618748325083678520239526297937159922047342415488031208001406376425200363786792409849866040437169071411787946471247659204629453336114063106061170774359515957626685818969864804455524904655314007384778061611567950997350702585192590733684704736114328073876431655915274521861630616957422366518238139542407384335429959928407645904173255065040091083459167397773303886103813602720661292174370812175520372189579660496963726971949910898714722983273516365375462678650059121253899556590717901728548889770555605389655673527907678981890373205181280508630572895916215074133480923659437492247339346527589728577523705457068851891031011128135365085605589363117819997921725818528985331047814687616832049610276369422194188721349024173838054374369016765960249337793463292659433312963798159857132563178669319776613401871065088192313036009194748832560214202903686750148513550284021663945190455220506090974310578402334011621476171710044493867312757300654192984104614755479448565278297418246374092098158167406693844805439113898858065724496503904406065542817186941936826858292937795589192722483257957049087845077450967315260388441925494924028749788201807374075098182249862783316735230121223151479252291286309722722643228712308185678514301683317735915036682994087701529932546958957238374260906456345526376036894665577454776756321245312328380859841675424414429956343504490964849967708674072917798308859062511232168288060597510340172675462530639985715043873797361993111481273324502395896952157779216497249460495068312411457619285682511578848985784463910774498677644626134642808208115792757901086848931161586045881449763051237656653350947258451580766309853799419348301291443635799855982866747612453599481494579382004322265012978812169709192185005684250608807745409006053411196941030996577640236926645921528709868346601923607665993553159775358984607328021360648740512549601888012344357399255504869241560311369170550791004771573936022898160184431632076750747743415556455631856464364634522750450244270109095046101734796343685117492868742661767236071563489838842155320049535638664826448880582675853256044675055634840322474691607598437318023797763339668621399816299557327148651028088383667619823675502617831073889850907872483087415794536060716817406250280035702691707145230119133470087916453707528374001554411432833879493975370638443254563457005235905791190741126084005668815541111433828023705285407243113474095192630709662988355077943317457252369859230334714249833582071351766181227963262269686492503623194573950412057801550353276954456968530700324933990854475435332818823021138859681450442832376805589960755497320308447501338413028781128497632214431050514482409456905581523207654912978009419385750786978943264496519898914927042521827924552869218473631543584127430847547791706445926715933963829262304286518300751687123366930910593351223561232547430813612817396670541250689109328229164340497240724935382054378584428680427988268412668988269367049592950846633155899738940611724800950985559375193717955631051107754119430727682196438958971763548375329808029537641090477398186944055565242412158300437700321476199737814197030251194537631043050624591694376667641296476361476182936690585503788600788755178552812371695669085330259084906429962522230507327463853728029842276216329497875959404570575712357152157232793063557195822595180372071352477202683960299217943968568474047960051615031999107398065093223559810641552445168225479315836062552089480878346492059719518063700725326950333173685845506893627421723740644976831362594792335982247761106006172904234560635374789025502720290524729544090926224451133662632798482745010659628732019509653502015570801696836337717893029612897233991459589130825196696016378552969507242759273597638930607074941322795339832949008065922723966232450944296899815968669940976816101406479661410288832663895761305050236861607873593599841730705638234276107498044638316624730674912880934254613483542623236656256005049639580268951690224486838702353593801347604536908539798523568313180928403495749611713472697298723205841612696741901860070185797602506828728023672713774993862106369771079209321395347835906474264736240809774724088257693037574268548424347536654747872880287446391340177861192407544232641353651394174032977229805163725540224964898134549767740922303992823959847009300192712155848933974035046096342960932938054331909711694598237022312745473778305724908604537233679263125010435095217532607644801248951451461726056257818332412967734910547724591448106646686853117788551295256781460039963472124919274820249278883071116561022149914609318623276012942009188443522736662454760759951036140177683300013534563007108333230906548588189612797396539424397273750894115309880855161914160878434246168398849086481314342743498742764553515116109268564975526173156463301811117816328745148588753881408579476953870710349810038283125078296072448465190029413087424073031811731287169286337959763929274465316261842341847750816097644077866952608516028881906047465531750073701896891760311282932807347853756390968498077021410641483018959419317424517814089933330893579164129540834301617086486947449153242252514041435531042494101713487608938250258300849540688741803363971652059610301774830336178347757195351665337239852500338340228376698515475731322856986644668488689652788488199826670426545777295719728144259604105993335556723239036459172165498652053039654332913306224242875087107742190500813047785383475424053514503886644946016046141574545879410253588731649818500223080049903710013123341755969207960654373449649574454644035531880103701208134850017898638327750412168684946619301448857658723893619103140109338580593994341555176513675829362325577823138634477365357091015651979210961593058832605638725997429291735083539860514232811162971320424168182596857084172712528171214212677942454352925191926378110660868978117869542389539543193677683985725015622217814500799428038436489805727432306078357008662896328758779923071371769369476137343727076254100524860036280586118907362718613867819498840086157904609508851609931926669084033324692876141624585690082654436517766054443058282774852235494584501638882700838685706216570806074654303899121246015590468132549214661603028177082575725007805045009720268314236554447129529928391452809096780136049326992384129639649336305647925563237611681165843489141281054861790059649754565404643575039587886544518946642763911263809770976630792874451329386545552005226638353215734595237489525954067398515241440265890962411102550396728905119362302364451225561970964668530743286106181799574192441081534072207882738440271728825026569581992957937447420469640830358774925433365197014618778626782963255945269610347803562974210061943282993762407729226432850162810316779413239840732171394740878094078602288938699609268107452090750607582583510074928739774256124383081622325761032861250100288995078306967480437161257889888574778274787459175906087500075645545551475582167042193252851818448582638754159335735930591502811627701939098312218662111814788914934590710100043051563772013743914806975755169811390894430308772236804974891579143369277072601047645891431397388653020811158508241806804205368223563414101114707104510588922636289605312811666786032861104743094504637693330140165317727362947031439620569394567194252221962292341397299743769261102212174736865570595657611449555529550033845388840204302545525569056049103727971632034517964831191520410587004440831844205190306024826601748241846791504365463729038604981869098909125461305052836403046281152512814521582188009210981338228540284719815943745704198742062193523535581665606770635275627663629538043435373246248927065903845360216969730735792057940261796221295891739565866600326832910179190528751298619973378577446490122025993164793194976998032316158084195918586264654913176862913354870543349058826553696768870858500910163350445164016064836439098249168338888437863968693255086351521709794109810668465688959474384187577326227541325805654658541088261476352020291953958610503901898699844345489672029712438514213084891466243580108166096060073834970167000741931682809203942201559536748317173954608544260780435409484130510259545615096470910018472984917805843460746245282404571684536452234702571234701120678082822010121632892681341064626454735772104174530646472575465094104738957500074354554175139066759157693001244256431501393103710241099751099468701968092775745080933062315467274107214108955858250655769449483807600042214272051475264049563354592653679497282898068476963258687638936598845253237022239957280102357061799611004126779370806788981161352852708805440237520662323022626467257992488123583644144090011100778669263723563977781243827922798046258511966394548502396557974782320364614062791091108712116266629176819444526442690087572808758296630985244590973444743105991182707293834174212433334734397619769657445988594655992414909136949950523058900135205545187351277929681097862233733173785008914105524019618464228248816078145650065955953200879977777147531487710851487322771859347285600627778668562468108473486300986037474911427096155659364277938096551452670276443849854120650724556854423381620036617781515028189837741338652802583604783844340721699296053060471253830576341188314539017802219800458761008134734059448849400208824725654668813691745296743634824174796103668205400595333235817325854725275165009868410899708451231396279149214871080585115637052656411429693785116782597937453795693282163307411791385219320893743323183475872254716414440128281731194673522532425515534477987660980735942311631052892010620110866349394592010204008864628993657193699342654162157930045343650398292100652605286657071105734049351094247469519454943030834941092393659239338771656857149313212088614439343113624511732990702216541901876301561656733295814373717961586628577783635939510576868899333607566313083100432954257327170443026918712142530148742301227447310509456469677259140831001424042735289710566821675867095901177710924871857464497556868619568015060077953607881043362476549911062043641811043782000431644760057783271057340251469432251454867419567925525003004672759441171547371292058285270911349209485697605924922063647978880807235097788007037310860507253425330440438942149626241363302841489561532766526867225227084712271408305557869869005953082074114128188061234078530396653165221651248700813197096180371324838884815876292087342105925220977588236606628983605956169021434489497820983348084447139347816892833392935349548043252116787274394625472354157276581654810211641136418096803827647355230584565066912525584229390299647945691962021524206683021822287355802215364231361704572157453798046944621231678902933986297411539179507207546927566310031264784983369147227576482069581846803988006644721219286992481444399273147522193734366514969867902644872453166994364363696457258457461362323894424434644734582128767325679194116642513203326371509636967523662370316706693673675028565334540604790444276784945865544516743407275690923889939213755573449871817336591205262717191876263690137051547029456538377322205390961330224965849415985169229694562937773049053815341277977258884505892239095245205037301198693781448127765093745694897132458339552331150073077958446795927574903540636735601785994598174358792339324128622742577222158308734783814870726549475281475269905163728038778846090975385447388500920147029850416990146050293318122071709332045901735190637997325483211372638618919239283636201428367949520052712339142314033083295224615564687129228745135654123776718740874283764995742850744918529437581731059763940611652689138577724447484199377994459387212194796651815474253002500363975011828150568403794685008326056534724450798480335171018723689879859894195567990514975635847434801750684697647158452458617873244099610728549179419390207062778768195919010732311884529152875610402467521270677871325153968146223126461002945540485928867395743714807490107657148778161516963675163194043516878779563073754667363036627296875682586989562225486815181281015803819596923218632364759001633210754659155362833286601936132451362241572384484570249988976916148334747888795677555953112375673056470079507294371429059491679456374692853442429127336121515662705596732903552574948398153499114787349166711562597624988784514064813018660470531234875473598978936184192849668221590343883937209884436917024761316269507468689577491080064367077272170337541384325523881619091495530414088178920659598009501891873371437392666360977994502600979445961208799375080815495845577501945352083921678739736449773058773493125076033356611978013862686149130415323453904394533946800901125836090723305071521473547718386126099092781627703053117858187445465566015764797591632195658880868143428350098007595441874482504832562990423050509668725697482076246052811316963558230383974780298038957370023197800300915003052878631695523375475215554168529728852653024596056796662615702776222508868915882567787059876102204458450372216659470727458113406639583048944306551123661055598331684728054907196721125077711277761022615131244709780023583924282766082123796520881426497846974101179837481619229796988239656733727882555525208878858787767833459095503657342136169939716796835176949466793194891870774956749147396334381484843263232120358118873601009728778741839581425363094697635643628113713029312567052792660255350142910576167976922256186164624299072925950851943718264844420182436258491487706394808327647531585702957985939016561692331551701104187549283980040339936364254953821250735593019066421928659710419408733057813291143798988438443981295964091330189115453225698870241699652567231375463230524418294004705248232957679640743409511764338338244832488244292836246545855899630612895521092505694949145679721910445500841071149474220636693080998492504592580545605939443759999341447730977681645557294806201001921093348724003617093481103286225826157136151875550883964147299288071292642390126716679700932640721597363085937613874461137268300543012509510295603448643537560759220956501292224901071383790686728750844678492476098796735188663006117247439459989081548201469915435827706875703954709450462318646046311185972703212933898359478915096440409183885934559150561390854467161566809578474657605275552936967309616694601822980994526564290115785444073638060411083296226040980763684850876004976815133858398573282708172166660496157747397121779440877673047993258281391129951906333382551024564270809508376855500560590291366374843851428736540763539347769253133049985133771147572209754316649113524578461992747818855141634118980037014494096600458037046864658158033787707816893056021494216576035950580188030222562113791914683154163066634160999160109195804278927621266935218100296211185042102434746454502840109586954677331334471262762594069548785997754349665712414788331392740677041177573147842213779780432495417058808222316746774521378591003486717181882420482086464685875531089890650537803200595246619824526929404540741101062116177560787771986004437393563027468570941525465094235126488510193545576316728014498798260626443559335149014623465735166681285403226984371112876845988326972401443114791134392313618652286234388115635284700143746046832264679135466111156051875769682478568179463048774347373493761986730444415192324333455846120447726278557575438765841872725961378325825700778990298687979310974429321969202586021433434617737314947441039415453351630772985951905963253837165639344601160349372938258081355202970643426022894190878182601158679428562657710799953760600655002716158275195414960840634298546202005413336093882543255921979438386370136616752688593702942495256474005598712926680599502325606761685520507871170672904181751867348670483802317848537376658964184413395455987648236847738127653145335974358811015357903224915345501039155393405354505377430986702106555649967398654686163958034624721956219641344742780672551700741767839967995637113117131729379320864652182448223026883901873869601366564667231365173458313518068307853565362708574767589025447001413676665794466026537591641309556012448752718352132037447582908687671947001605187022816685216260528002471714295468681645448309647857038226121827782441504038220014302546248524801453754668847839268195653146648415730502499219890358914739398328266761198525628057186129076455865715880847476792081546486173895816185719276332420018486271990200238044707410765763463791382884104734100951518933762403104216860394393919964477923328629013790693178544024868584209114461617077990773171128764867501552243215862504921456112325809408221883185696722023175641430651272900175392674178741147351620351023331358597071233400315054372699146665562494291250041022220423537424316940004627488135659948643580777253806423536657424551477230330187911373480341284626920282828236723078735110926039053216153539449693339175813465232072163737555682331962144030293048771717029384657177526813108244135481573776427414239318454704430701639147878345804399653903056643106246698631664056414118869554318481499560874332387527071051902245022608209079557406210979363136322592270893260070580886556606224468117848761205734791019201679489789601142132301802764211487645736860104981166005080575109455825806909711713166686462235097506499269381874548164723687179983006879120002892205811824064113929284140582384324202648343932719454786952933098791503513258603249324037920054075643547103705259733385524531242227024113326349740879803653295925950263598828865333476109846982249652980949608709103262005493655463590864704478572585674024703105381997453668911416121158996247545922955841658785409440413796651743138918553687540141185694064331164887163506326674123276749089852201504989474304606224642095403372834494183765676973790220203594123475216500208801934552278179236615261763171470508489262683594052979552004085567986752855737916632648078880260305133295995897314880786255990564309394359023530324713180143241121353477047144527291977462100239007058457930514103370583067998934520484439597223008401089225625532031590975751508897725025149307120598480469396978404902883386871545787463802978304120118140453959521151309517194607697658602563991274342535290100528579953487821248438619561231089544213536081810564601164395638098661191729858482982453475866457991763952760284154356382159713972561375745210270487582149766065444951182238784509306553758132666554006138290932067899815114806418643770010799815513763413778578254491164356826136110790316217623400669489762334096975474878907690401218795763719517692666918755627917506403539704033622376111755625283804650889981398606487695828983144430506212411535815752177322684811415747907815754685489494191005164444939611043186166305109759276739586435575685032560551998415641013740262804561673644725789113916247517315046814725300260346326101237512355753344322118027365874781234582786276483627864179036156798297343005802876202490843058519163883283002280769570160334324148605014420674659470760886141485769540993551856450234170358332008395989141959461180770535918888161922920394951401629046584151207124388295225462473476463305143139597908309337958723113403170473287100652517081734506450188614196600029151054625306961496268137258044412460115927780488726184478243533688559219862028468632746699179877597248751283169791843973652828986359314147222011303659383877917660882591388194408354908955189093799525491171323461173527191405960622022955010135505923561108332136374894512085006948031020417504940547848857199018618970633882798430629055046424795375476628633947924158691049121780501087361009256096535151294261971909509865784341130728840254678579951988180891689386720921629614108789885965745344982529306633137223170932069749024346342299674627083525374703032535691806209408957383282864636264713720324718378470050611889983454970295854022864340808385312145674795458894099216383796524949573675542866378382370735532758424577524803584387515931817744368814992171340437554697841447306378094332070835650372279034521128765100527882279768187576165374630325196436896222387352447978615971981259201699107005128405676030598290056296680693508903443264936579007472103362268687373838728028658453674341163493270756200351297863009479979009472935207321017105932424846364143334306634477932759325081351335212435091245477733719116985933576571971357149131198377608138547515266259881274027371349194063081862060650090227364755600319272410033821182060699699090899418518941265579787479524441536877246105424689019361309704366634480529598350994957309098567020627907953340523148953073650542208701685673762351716219059435281602712216451547782687189071891260283105309086593601285973288856717187700397980421168649393796529089067960351526285192147819261383267988081701354865256351094361623625096291154871819298459748532544817839825797397622273778547162186047421598567240174059218580793549031657291886585866082606451834550050335271040969338052157386128427767056574315242567452263336664698789229036577046952963258969191970053278396105587443672577874211359888231229977234169793061336477540371534365383210962414827089023502649003780403524070957126835946038871808186653778220250196488699888757967936775847753116488877043688041308311991937600130771795957489295859093211267335693729659304365827660962872918692657953380270023152272082621077261973721196371642684966059431136009983686952216503103986123455168094295603606987283283819485652707864012698700036791243836926080479967421050129971327948350698925361528331291028605320932008769113929037601402672194552809832591894857550310404176864983868421794918966396725666836047356186429324707140170003475095858802224182880815468284490412878421268813290837410177903421241881286677133520776438236535178071385864323862187353923609660851595070827890599122383897519637532650703140703050552459821721880683817845037143257919683070681622228454704871719916053900762758098581490512167754686335827121224135447268337850839230086629356764593024636651687099286932436712676491762531506645693890887650314117529142817337776706175737176178225425789642447865128171472898627466389145729719359499072084737706962594049165937332399421543941838167950611136289718538896094543434582847014794605733533788474987262689646615835980083804882566973542988159687967915052127355393404519359637589215929824470962694680369964780040591083180903982618009062140239907084065514354623123522658476842345884506588529682374175198189478533692686292821027037458144046570550211704046815243135469089255538578513375283132519341013282328462600787608578018052448554004244478666333182419589302421771824758761652564269243341466234354970117408557365118995621225888046275475437844558563080822935740082103142513182200484499841784751210977072455433842244430232230653927902579892218970589650547182551737236488704680570482436434175589345407384633272250597785943234967885968441212641199766300237393205297456459300431464632883032739340621937426657384608731327818761345373665548620032129653719564590110066812709003321191102329049999146681655533163770521312598225856583696367905336530453046960572913390699427915554945071188582140260661679199810473556239699429849099278780291141972974334761843682978748641368008201873307617820578701014650210872468528905484852363794795233201347550375886001135344578878022987656655258771396816082278454825593570519759597164334931099235247958923030084650320549997949242692586150887187551542619930320310008481066063874475764039981977278060439994827747023257907665866807114542293049310702348295813247147962359734106102949423447884971165155286287435240955049087252590697542232800946468061382496861155255122627349623458384059836641540632701407765874067011969056623145882109288335405694890900534597344414800394611615170862223664313897866566690464896462560521676699256897893547810644977615146552945292653675483552193118418430222147114594024879424534731040220578222902229898469668840923924482850306235571464355486169613373099559734437695514720033048779743522041417316648955286607455548025253362136621264734022291686504584975758344543899420590814798226127764325681911324024856153758845385968594749341820713892379578966209897639306792876759864699421664803822611852135298167149949493994554396762321808171092581370900848756825408571782243014705237194655722517137644217469793814140204375156788957005137171474133668164302531277198863621124347999322457461897560435865114750839169859142677140600050013918556776931369273770902944187078239534728952902524519786495068149703507245951342771890956793081859564243682517441479389298521610257907095371049088989663025772172271689459645242018710626494259787792291073679515547217779401319883486873893387652391864696290677095942550651537458109172321605601299051273394706358736234583906146857652487947777168159154121560990230739404864420048256036176040276891446915141090353738326455060313289245890257999109434964690131598202483721875214088463870685643893749166307924075690824194388128990854622974256754307399692822506475314083719834641357094710174177924978854761742466843651714498967499593192277542200163184663306975095754884054345423042754496801061838540786294671105652905840734655019820072333020638982264218793133330575748370731035820817698232436588032211381802560075457975439367816112884495175676132304036078246327480445002412782094510319481759827122674606828044147321888604632236645146222298770351474691091437405470323540647241918845918399255317431621286004729137186718949992507493497685908791097980073289510411612956959517223160539620207305435103085455049335462769750184854102693398909595236918833555298599882264191425507011156387860134372168797444569109216322449619291430034231972589629395836985868342063894025277936194159993637183253623521996719054715886001328977911515705383766260484650722642775677921599379513526767613221959039378178967512723255967103100128048925493570713632437224577509451031452155845577461186252676609166831432569610222056112913747122063284055803641932770640993847910869508545399783845868861354988820615657786441007091930935804392308253918879308765872335994064233232235160608622598817666866896244347363333074498571908008263567483600852833968021185219641343931405004754943116689648108940435469369065276476013779585055424803351145609071156560311166852673745267880803580268142649889743586813040733869137331625149486828216186965581848741814884289282210818692613309080079928658846532469119580435457488884757911733460032402713538358834545286265448645701018587825057670581049997160232086549677088006758543130768150052229356339683028736892595653341894287122665290566372238054436053475145415696264019260700566473369739953860347728963725576568163017020857295237205486481559164718443962501758803289783482546101223461752462608963251388442253480210417873848499163788232048625903436195218473043640536863647681183563255760122671475047941488898657495366892642057716489269118334072076629913681771164839895126856630214316123530709641767093610753632432038082066689586222302399861671205241793624517852925572148695563796446498888805149259919309502986983392132557418386085862186532480509536700020278254052723414678413872126768167867208433548419538497332782138000058298030423425664680874287852521612584886547429558434358813707208825432530037592626686459113580189042593656433156395308404858557609390807553483626984203442274645249433199794916449914159119494524020577012854895399073332049008013355753705709818370973967722737580430358858748425000875029114673481409710468458932390580721790791541005207896087025367856456219612614333002959187061065319060267136760264594976335534536617460410083654024844142797668830223038512286740836575756052172420307610205415343538505094289442981926802424909217806437529297039807246293918948484403955852585070823355342842556994743738522522340974591654676843680806622171860393618099586508581824678615886473542788797280385327920444494513199099132144914326442070460044505760870165320250198428516521273710893336671772788683558110518025436991657830898742631397444458765643453091573332521194982954510777077811974253956862603821979669816705787550607160535283009323201722202674949622316885480474258438136961858776520811815675457255889025221187348989021882537359814916715791113147710510557032131082665228870503005231178614185402181270808902895472524855331183479369518055164792053279526475667143449234466871721809365868975986797038604408861151184669853813980554329057811263439114717209304116363784107494663827237892142203630987097505755761022884303742236119522910274993293284320481527512849989982279793998629205435124548951873794305309820337821208393694370981980171192083428595925498285921010859099888794685236413225059611037780084525728137213996442970607460231847406968781301923578224543193113329908493838665101383165608490558647264006761796013838551529099260489027990651143831535513348310541615207783462937864857410889549885133429248281956946227790782088256789556654052659626766323296389933976859396231398957353834831167902834510159649350141164339706597057460584410356232177963100151948307731382666665631428933456055671358939424338132624160741194631503095090911160716098383599838118029335298836462983642426505931263378730481409639469172733196113500181048551962625421619065962857246451355117093856051578376762307722340921176670644138600241275069573682713599762803278944692814843127900236159494983950603916692421937099451138593467323894235150747793492105756346259175590496150686833813096818533363122847815246080625591886003921423228225932755938587210342656747810926396466243262031298110549354372576979656819063170726266961460602200896977608875123066116770264976941846080664060807870776867781414942361116242888759335114126519066470691493605633783830762707042426610698844649779660498368153017761036686917826779647897258265008509067101099742759723294607581662298147988775472671698189447535082271711095747165866751525473784699144765653008001802262718877978274811732938093006450882088572482188133682936565936279441195860649207283722138627812752499992836354606106327498553129683455440130700005974836380370941462165080161980975780826469290483353739894526726807242239608407783173556151261954902863071075115622338050488701097649259263859765127071370364472570650951741735130363398218380146164312165805963565505176128929172210210774011853890881670714406623039807749669859383294870396021000034760128223374316737830112111377143793654336824573413301911314967213308853104071412628553314733215413251571519202326054972660287922495451350958943712120122969502340885592760944992637392872229283052122274289408913460911332720299483200302894249790648156341884909983998965355769215059142836678859284014870086534036014426232846896028481343069505737399775426025654126796795877278184071938210271304828615398243708111416146346110118644460898709231033836768520729806084322882792134893821590503373299999636820064003137161198252213249665794826771040257660055227767688116643559817674023594894291898508488117249350718706743738502517769297486615039177939088138818934070476215831507853427195204494797916723840017239776259783896864694035179470244262319490897225262694170099841417955786589901725946896671176693531450498261715451265697364190733775621795483463304338164916482243954973477535299429913012598040539827427138152515930477524488109877164693275216352036175738000276653077777389780171336505139574639293158066543661672410837830561055968562091329035026461029532955000683602196928862552774088318867855647691652540551844116277690307852040342605213803843119507496692937316107547407298114160884962095879755559862006503430570111980162690102929407698798455664295890679872963778878503803930993814998444873330286073647216096281188567991424962669722347965116226590128338316557936938730572239934754908724255132757374267389220709907293639631517049795739712650875945114476163793547122063790194533070511757292733388013675300348706999573585335606889234270758529569899001118018644623272660033617435146920004051569769933897031939934400718351013800769088376370730281138130281044032524956470566481971861202243232234936790022271644657079472327947740569503101790772864546115998698931386604954551503756644417174766522040156970357794137542978322347735819069388813059978574382899538930103896280000777728459427073708699317898406601560891948553303839079512924526513518424737432914089226803467466410013001409689568587068741110414295302098232616648469830564516916728002596742375193563416463488177187601029675131068200914380665232169373683887193740484368511350910872583783600489227542358389689079133864767558534457230593923373750027401310464495639271605013597823998069107997306347260735369354227604743873468182877684224567128736784816321297104392294285021598658554808095539766448369246237788254629172483913927236463390449214037139249865737505318800078931031933559035366150839292759943724351990142472919178877633671498070897755078191976367589135997954221205170911981665664959540801466681295013522615418156498259733503743250405113888579200198560515510235469660576484105315341399954596253565067234754129188958676262737764144132286036518269013985087839266886711154009176694274411280375886730267467092500152237724954905265496405202014593568806027196083673141485953368160428637755232563163427134312612419934669322461635047984640999301227146611120699745339176871559110652977851571959792670747045333063086662136009436958529149688404944725564186008596586774806047762652641232223998606918408226005284121702749464803492673574826944861781406917971941476942193843471856011586396771423556406610028441368304402620170401391361256286820902845216461215154587164334650738764699830486836060383302229584107458233555031739493546554831739606909949345984512014434424383461123505669798223514285606375423305729180269174100916639779673662269745818704283289465838743302542044052962099806428880324447333010250177330746099179761036606115172126984054108957837920238682356823678245058401681552444415887248560990225428341257975184076792562062221322172636930707137989283619596221427333392931866386561563445033966289368654135390168203024553075789080131782765104655755029112024373069812706873990734044047855969502536134647710399454596769497760811250592510070471517001256761181306724152881855926374533569874722051979096335625426266256375411891583165760298044025947658671092871892816268536945924196791474534090973840249325402886805354715608747827231657723873190981661069292731327953285696842069264934188756246395583892297274409980740975373276872878742839251560594820835059372264541042378298574231314655791331717149494934081044054334428611508883694030271649855762331781601141033297127186784655607535155189292043780133156419787036139946540106894137245254838458160668342813500194137823579638455735681511948949153157808659319434576872974643480854941919807728778108120793908862643338637248794724340127274302566378708544889631865753759606599383404310837524180527709090113327090276656192102089333018357595391569054243156348900135949474996323878494419242694532516510781359755497900365097468521680991052476958533779084858316224291777833156901455412376078890573464119768444357898748293019794252502322336450458159947750861805762488023205523149757994969756859999040441565604352887610570039400125670482407632316655109649683254074237785726510165827191199008185827738087859591481599909458447516191448412695290352119056042746234147566117232083565028779091544984144386823413355126753801349486521457484343881332662893436226158591053402644250794046234279160807398997647081717674291633236943906697076791798984935947749839777267101847354416372063874984533646688002560340571766916974026695454170987808033241628463714295828724733999882317231173063539553013647533093692834118946641135245409340447257291936377780367501948299693121280643834196760275389293613088952790903655182585851742066707845244091449638196082655420123200815470471931700885774919717346798065102127322881601534462316640524671536994407385256628559859857906960974892574451284905866832570487747982101436142138716110112858644611739010063453172358163351832955060009572774450705488498240954064811437729088922622398061847209713370710839463841310126024496387632698183169118391949340781728160180713690132825780016460543211938419204620352811163446139638277596294320325516260317153435771999014634176312390617513127147268269544546795188376450731867552758166807239567815492079661451329501609487173219264400767763037060309289906067598673648242596937628078033064320566066299910000497752147103136030706276953342649434539796285655727380545416196168963081446278538744212358253742883517985539721967906337658462860632099428039713917286329538707637170485881618113188898019113954395395751820887732305241620703968722852172902573225389101985111886722287558277479501230617802004973245952029087158343475734195344858433598422220150340884162690229272685671871093640958249003494818690784182353970038830853540282516977178110711414943021570982934923010480437967088665415600997523153350701117238394803882595609647463914038262644638045635535445503721598476651147721661570350193104833168869174151088284079909992684110587129253562205599644623356823376434809669659040658801540766682503977344519543102752359017666018021681012239425430342929720835378666501056064733828413042585950100927728352265956471282730664312704980598154912297458571208004511892483312733401136645245029186449133280740616629317325907476765359812224763609628053064090222183480451779068855250044123443540716456444939202857755689711933680132192486549488969819788990458305731523747189301348589519966995411474685373553206147191105959973409642775282297033135019917167168427989359759178353886724682118298074011040452542079070137838694362526500157239973361841259551823281504288851669113304395880385391161216144770501379640526894829544180657106858733814191344491162044972405648487602010393336369980500105731066406260502859738472402543963903804112174311304303779115810695462587924095609305764048198048982010254716013491905882114316037834994734265160448916931904322220944746102092364058050843013256023430254550304354567774689490585491630628795864527489119188060625107684141908188158517179201112051915747260840033662206568823790055513087582547002371059475624561201099401090490324509108829212459662039729566413101238011656197623983634479865978893114133289617492261301883297707176429621750768695563983815983808641037057909403386456089695178294483896351228814001858701641678443872838361561561042318358444063166618759404478548169141582434965666188101527662885180333539981191834373022093697826800743492540119241762343767915446128693533341111246777864001523022677161135537390628312316505164361851268610148233178565396168222842304747678446342531068836674479467700912230611062592775467257244903343221774510640472251970464051454132849927072982597701745587662065769294543678967026232739747809425298795614068517583998449359700239609296216743980428017071249983132176056409673942647618503873930145938710428755445084091071743248948871568723527834156583704102648344578584634394952478188418176787577046142784968317087243938234109348574393677584150298155564549342876195788009619252775911933113107720743296570906537531411246094042565057435683356858647209842946772519522001522716913908260358475757813917704254996842260633338623618924401569285529661975769286094775291211478213365832309135318568990658371692949507251437734446219421662273848468386747401195882197707706335479126569444648169367819121383100609185855493869700373704484841833220002283243329643669889246947024238751853704854135825341069818821448866322573734361374574108131119127978084638332549302419293677083501302965654014282482712279893168825081192996782863043105664908852774174272583572065344486528107679005242802153720225723993558253197384539047532794848277521974801059193636668960300770631618014538537882859968344125325302132186519456382820414343964701763494481154084786629008956192272911434890007451531380497505747895941326551084246363248499984588440045484228380252320301660246717438669895953994177285127092998980442022463867982829176206110128338218095485745082939071180791282725094212674820814000729953036506898805982557685191625767531383323597871282547825192736637842682488871180196758011089800686917437332637285628777198624672298840926562766084380348428210706316324356692080287520262935750680938220989792201459386949047556235389356707445709549535846459734152585056937493042992141176714401117128937954818738752378859319779359828013392945688766249479205563877465822532574187995213847364725800164431911314444462325346265077602785349790992882658474989004039126541089135925524271242413574166264303418484395058097535336734573010545815438090646003248959591766339505254382607541894619563935838516820546317306983317693819126337069201318118964528328913087329513510481203036806693221916357697247752172255443739183662561018205952184272513290624958006853984744726068644874538795536673280227807972332445357472632696586978865318074371260984258571858648067629078002834012316064573418150685219511991904652836453931543040994461296047425444549798992035478756792317298969073213273292524080303197960133520641442264868179666291867051452595038400686432350390767365300644727642185308420450490407860172797576532103304160661772884870938911516850967342587118367435679271169712935720219257067874390336185895019239150423057406483701346286881008156002014888023703643200238289218156747004104950061863806113398627854900280319637193768514917651011567272898219244317077875352284675401575185289384160475963310701209713117202223473576140757613873758943145005157425188956768582757785396911440112259627714068007485883504318917344591247334552775784978781687353791947223869076538622410355000526271761535886302405163472802275214640263719929418093570592429684200983261624721288947795857241633377558151315775774688638460988648303986630579226449611722463462262979819498391704884994504662965259616134444453725325183540188506054328361313842189948290659601149377246519079336273889247812878209201387907411645079169011810153134683217697285676015242277935715733635411808394140620037127964475180451561262505208869379205357323161218471537013329503596764864940966922096615866046415976893869199126515757860502301119207524227303235383834473279657533639796857833240631098107373556595150211125318250579671560389025720620114491841970085812927035051869139696541650178342664900554080156367865419705499949226645090702326146186653093329860627417558939155376726518776692472373046689951548654090746319658812251452528553855187743176742962978155756555752533981746352763698134263125241931834556979405835606363039063031670689510149547646183440428396581393119529321729849674851158800409102584437174043710369438360518447078611789350841449876765205506018186762344123601034352062093327809543378625054930193639044985395355737778656509798057342284057218543041297554582208868335927922538255708015476738675873886425130612293306007930322597499988215481431152058020476718589861428185251119973150125308121067489460918063231375956455084599454007108122440281132376373060774218371757622446285686666823182123214768791935936631396337876858147878713808560315788617954224268719467264328245911372810966332183933020995446231505001017168532944964343657457432301205861633425292915756224897223606337735710229903262736042034454045272461620783542933205537502784734621485965810203051855351591083129164198992357607698422830142591687959350155890038316918753934044003803096729706134743995244255131113439079376312753644252357334558670196598682727885073290406793010765870075068868290321884299890684192835411334331692214489485305607004631357972582928674526391531024857376178430928447103615084845125709661154449079976787950810293197325545185119524280391286334670962264571796856628255262141663289673409435073088358946791600959235045871580811525015259064761411789304366391780364777345525866890445265534500742227011315793657207457605874610520256964917929569499423404024512860298931192302537990428128419586618580185625586732963641039826832262451917189989867862136607454100803865249114302264998592575175920088385724833404284089523504535421470416458980209869168057688439759993975830303679855700563554860949159219033754553800409462369641245836306868941713449951098690481843740373437972890848428827968367161000144832591946414274503095440649180400182708236363482220583268183051900599852914762287340804689956587022394930189239653854699410376405553913225793536734786685271930134256424822883647490128828829443373557504912757710778669934160778281304425109582677915651264115428613158816687490971285382896291266770892114122919813268234738045880183240462660261926637085963728075768128410026854985932297615999471031249137386574428537166383267526025119736226268556969720623701981611555319963629732142205856866917191464202294398921472018097062211905397352299824532998689816992001120574837460752505892036528881287746765428562236598835101682349755927558485079688725514659894560628476256142825722754032895073697319061085360217113396730433797136133400011483215387966484548257306095881724347087580220690201477528045839314700395253658379813511341730307328958445270569328665139891279129923567558067856633326841711660036761560984227533945656953006837517141128289154171245157039189355853324346784608489954137643877957195165492813212683028022698132911907067121459609293949968311592178968039289125984535414629468780035587358161522119018371928350522977198731586233896709791065738092732407573972279625261412231269334076448555227181132655532704580924108983181504078065305302571155772354349018452567601028836461106766839294049544938426685023767542587399762906893973070045033161968164969861609313474694554416433112753158733252757286648892776362916366372201316961658000333354080348369022606410991698647284045789339350809163656363604389918173265581421876676078335278705471630956323429887696966547457525255245446472490690218677187806820767970204644935767245738055246590918601237430540478861091410278811103482388731196450045189641351464281828196403311909647911606919475585731055393942367197658074712287961427120436602055922624496299085790715556584373914339054412380566091911363609170609336619264006443788329409066939944471290769266355418636124278209246315842438259185706327891384486252293751949957264231055346544042269596439107393957349484524697910204438339058503323340094830553518191274305874973201336094769428171155872010098321276041900673959941883236593769247231601817069967794622891750854767444504954643519024431830251606562998098465900868792448658560916625772907147816864515868770106826299821866681710132332151446839728621940974322576745180561438206592589735813417191907356620824868845238249724289961503965095352145651715251887893641218069817593765686799805038256293245626557076998825441947580423797103015172626428199143352211854101912619542313686511486247436277225552378940982614610505351697009164609526854618508340259100695029652227926581524564737215556261615668266702643770546957019246018246953577082454387921676676552182203888459568786156400566947556880971731992241779762852740550459227822159773531743545299662616473639793645766562230258109275443899566587023630465981368091079068605083979328343210637013903571980222818079471397499582798658947793157015972075447650162008615215465150402411584973825591541141109802735266822636973945696294044212254132156150984062308539086452360291719325918313428474428679799856978630673307538731936209190792878623365563800666317474319548679846343090636669064829084860830882636041318635355368557530565909098390959632620808271215616836455205833214488859291335788990958710117370655521372133930123173192482272245306560917404410012682583350580631874839009234792135977730585605115122789004137335717163954512418515098522996431356528215320899185764393497374589347965491805204180749961154311392638891816915377707009498516299574783610614174129071106351957564834321617791783952878159087396947170803279006790271681264050936654464704080538594360840759103939882244267071986527086246770633939167267288356003690929744661714058348854543068957530875035409275521624366182039312401896356889721834118596535717860262184803029266176435120885026814856546870298087193917455094327967835822303461406044827101127851387806794633934982915118072501359492361702445526003610571970271956651176699028608924326342441674371296656811426603288622789106711925921624770978511717385606755028243774986854923378168300044271217553978440072130860472451173084679024679360059497393933026616647097850265470286144704357115281373692642504276605228095137349256858220135603990638263312759228366976281245850423015664879815924585481321912858674584916036782438435103036311282476552568413397928596727791103415234741626335373727280525336320905538731873564380732998814345887615220427963166332942200204856116270045320164840656349250932149146961959958157183582032462307268682855078836963468388941596127953302503371013473645536519476276757175246775033479284313061376246145780831173944675632013738898246360455477128142988983025012077536495886702216637237503473818187821600916998819204724722427620787876131397921608175336284688357852947880566883860394162968882511749857558929359220040665116946988683973881534909337746462546572956829348161412951683502195500977416628271449137640657342990123490276183397955117756087866070353170111438620785604564372206567149269827779050961753938798953399271989323179733072860480911777029923022119332768969132788427742821780808837345878083251036367212073382904441409661630237768360768728688573964574345390331298432410233916044666045450797068389142285447378484271698197562082679299325880230576778878053044073929927506131885722891468633523980736682927067721975729304580992178069976742366901980625104794226455701106512416029323074735478916676586953583694979026401913513528597733321283954423166661330614954853713728412397922920100309442009237784747363229620987892696232233725817253164839254584482482743386066240235397410028935996332460477896177019837004098915490309412429336776642405838613853437765055870048842774424220455370764569420142001670922479736985454797089247265709720966270306283052676359894338896038051145216933085157394733217749997702769398780600588706129301926358067861455907161130428008843119063905517805805200786362267048553827586571992709621600136921545644241973347741463611464476245317693532210696313820462982065529220657190749879894613492960652119227184496364864421752639427719507844728911359335105269568677387025503050868443342013041100870162498578583044202857385462001649665045071685857854557377903375284587053610974871378553008015891896275615941334704126765669372327100064315823798975513557698644451399068156944286656375337299210999389741093546941896312844245020961568249881021498806441989582549233962272386758266026248765420413821978601648017110741691270599240485375103898264724181414667517630064374131369013724556770544704038005882540148435107313552377393810603783472734333403941965823108737538694930293899188697650761737245306394920456545783980859836418427651089275226332412134621867143049270625889423702350324580391715888265919922226317373581218020753317754209641864365380573279121272908082970391161047279368651875373231530932068427450019256885194852277579180818478468387656583182169671404668687775715248320427479147224775810276042198045299593284662222801381772410153815189828379939257196510393371741282813602352154045253499906133986089863863966613444738592981073071416370976685581983068143156614604456351971343753864722807428437901911221340208369059950771936555667949630059282735735113390627524058284410252050734970860247217279910287346552327213366022930280901734264942812436726601253791165056252905956559038369134739149442537107211724707481183196665432435562766801931459586817724693397902246001245687958302939543537998610563365530344877911658306853995662789837603278675037668204321771788299090792235081305164376336651650270894083780129667041128834464511281958079025447360649118510046572583628335880768650263067913824768805027905109060435994410027983239803496963270719485386766556823984020926699087589565974924373418493557508855122414260068470258584293333696189741768309774440446837623855487709237861799405852172570376067376792765692682317743109898116105730825456103650702420765801482972979496201310316268141808741884780144746473010913196643359449389203867469981364511672176805383904225695988086157731671751196514122886625081338743121886512838139539254723235024160809022094251553123417210148861392432740615265309326446724606142758928190580403161069496561157390664764986474096767682390897559604460842818800231521397264787129758699246960843889671739337614043338148755000921266097121874691878558021035029872637708952751142333408076724017087560796593234076144681941970749886229623905418711448463819625103168191739973584955158600060539778326816316338087080101665705918446177899863962715388236648239942242285511870859827283455347807942527949801039005835737819986385806165562641881616483414984094852526998691568453167080713087255728941781523938330198605953650951412930029340177618085310065823161983151178081890811092633225845450372230983568829731716992592898423819783393906170714970966637443795435167849086009694325515813863479752716546896995458967255497937121776645967207538310210763288660421311962271067405749425300779744052203690443763642942790960094243544420945370808906554479828364086703241539483338384193354620006843020788046503758690427076935018061644342606354925849968492391586387065858395762530521909274655759611491440821013756521248132704082873678289694565693439994425139134331069865597566302818362646596344656834565481005751658263465646136106778238303699387817368266094800040326210942622379965939630243282259491623613481742523797425123941623094516060328067212975345978656865337109753961122650697508990617948979743111142856264622288842638156986737836311885751206671101545951117373004084735095973359712353950299420669588598733505996332008552366499916456188103776226994338024608791090585697502360120290241629521525603334982535945795281074216996902981065593145024788252921829053634542537332530707783038399509673569089689837251633240476295425923300719334798241183402987871526766827537412217176787655440739789189780540149826844833952527389958765641898266866701650592501635769289033117489478375404112987418874256250556091440795720366603923249200161486819502110455232166145119433098711030714767064287530097254065960954043259400293070947094511575047599900564208260841221839212405009188008100673295371430397430465576551380946141862884076235099531407127545815171618336070696053527686663502119844118184399234725528461682206479306614050954258773752921683197456810799393993675283158275492069593960905799408248904721755013000031217925450816020699081091363213399945819104580930139402729102466878273512032818415961877043340742770048427851508512301180995130161585111361909534082332981848025811114299636936638253472827585624219348067505658999871523834009281696183875304139062164737250764085828834507366804583356356455378162817592642576500886203032132244031193548880145826764731323246577743909168705625815961485549657869177599171170084982071724370587845111241634070102749070447897245693302679642030234597399989150795951360265495516516679226252402330631496819178362339877784137837508828485882276707395541723671013203733943545776494801946401337567334886178508564586435128909752345238423087532897210640163102250877281974802694390506109020821423602698056480078854988769377192311335306402301978246280504331247017397239268739073594334313377764127300945353432764583227340068815896500413367806215602651786118906998224669865727812633309545374928699670993941905408828530830137095621752547860490033658767993045016664572004505617457764823392566439723182664630841254141138321621281125207527294639925342136635094932454505269028082751801303296356573137028314001170601475639987022762600254635941525833238265282297598802871748110121328524126253726563526098838048406971059816909435331819674516068302013574233906770563709207070789942416493287536055823088889047268125753450228741511684653352931185722025951284656753272328611685301343267560618888955749913867367340679232874570993413819770003828093054459790853787921918438781019571077628726363235668330703239357239018730480762327982236804220339678740979629629521726579676512384028220570955092146519011801506084817025149281921263853847473530415107993036411206788892120461284321319797811524990769197047876530098589490364349340021197046231561851882192806403019087962181897881356258535188571652203434153178468435961219875774073843159204633225936527590526039407318684285279874913116038930156399002484131236447287904070015953700424722202441608124568553835041907423113840203151992814244427935544392705651149484142175024293517232345948037090190902764072634224502055533507871990747639469276906170269939234819061269135782900471574436325590196167872212408621027696297463468466671629588932706885201141598799453087369761525919992834562977409010554264253128685927521424895262983537610541644748539812548547526018934681371119769333671032561217170312602391503864446263880328694201543341759093286750134361451998946400164634429385624266222891086613100268681723280052926695014836217207890689716985215460849394594330062207270673150050271661073019586190235189095895296131409646960432622245502487468154245372346804652427160379675130049151268558095384861890554648936617635041254559828496721408494896512559544148614793848548112939223382154806861546931395115643561897203170772448418348982695307673814678738251795154958123037160297371294483626622070680534098113185469120417586372721704189721092090856692417819607881545083968998465079080934396256248338204622747199328032082390719062590395801905117982407104788606682798013382356153434598437090408554983378060598581582554651818252101336685549934454361720499936097530356269659859059661067736616950077645956553015221755919042320270523253573941971049936259527178811157475068576344882972139010906889831341802046155140133579046441025519176680981482535758320284097453845118463880104138214237990832625832753755696452620328934096074939840235444795616611811172512223268641916658182810856339923824748283948075928322572251191950373303984458600363417061862108937962652445261422043690967981858639320311418037859055836997119438968512901038633731403097307704938372062624556633268153742287766543199476572309366551877447116140074823523038528364148145140424298060221437933193961336355706934643118433190644861413239010376172642695111750756444408343122251783164489897227074702065943584096593441755978316470785789480403105212938040325872786274802790829011284728522643601600415918943224818490682849770106004557751114129295455289220441013036924357212633263824234441862926688854217317051876192116144332726275901028285834625550700112318664702681118973428579430224079911483904191977117635251983105908642748022888372572924743587266325577822765081016267408508521483745541159369246910873473274044032211559391922843992895990956578836758651276564493219548212133303262402875704565637005593888939697452564476323105065771372259779953680747894290847648125630572205358490558703924614410625310649972355898153056863470842985070031391949606392320620153551074988867529596954552143036229046382191386680890615226057297626570799766146898082893689798298693687235294344671626326716785031371060751174859889152090289668288417095359060635734635462844995460852624541499687602290787925582567063505961653744617626205929519115493908671785513619682836911750707907245451311865456997666825568278867396944742489534062707106063244134040521737407728061533496273850914558552272936973796066390610789069990300948923333017750114655490730238856744581082116191898985133556375076917389160291654885737147636395648963373467987209960951396140220601614583235501858222257621562025403066617143845631314151997136837614116811929191803764106727017150056024270692162553313496638809078156744225249373214753477118710214599513876403608335253006116685839249731787184875453806845588107154763933932028086196080382226041041644999304545248354530391475248881369715955596212862577468624089042727184327797173366421354818155619447351525081913925604880055409407057427468257892953388917703683724634483084478985801570753557041693676133834529814599007018818205778455801819808170143888758334079219389090427174913624604724624903037905067206928645881644174208017831826992208947312174341178262330430340125746816973123656283440978181134492229239391510862430137729645720588649715761610557256379567154033257009025639290989413919038310466701416405182216030735897048692956022352105887354133426477515556977313517377975703275234638792522446876731214848006520675550606488977708751655441475718445416623854720271832677722216624963268405952489650600553448202341833268577804709079380196046059456151868842968951944196327076871491016509520930351703195190530901167815225932036377398777812183202894754871632929627907875071171603971467045315818413860929126157045036247606556516772614615258538097192613874531440696662188185110980855219854545285722450146204706780931809222568839037621437124690291278817009781525532270825138743372927098452353853976179047417161303674968485135873773761739296933397098248694693168994652576280881488565047692808277233871493992516369494109369019128500919598075031427285217609547108558829320503193355311071518033844793491977148327561440194943732698990157675204833138722776433054615089003013565496543733365278649043286492796345461137604350977369839452688602982991031647385975622499340971245509793658267354412703289389665327051915007246640740002572281745991737710098176993743172112054790701808208515671556198532484994965628645732378496977067537738745228017909853949341045327684323371108301855824854650784828829968134652497113964392730985840899231902584680465533587352046414559739690521767918204160938051227778224126283093759898040797921050968245235051295219025265861187931330308954814288373772495966588163932582696292558524028641079217069212031054845642919619995247264796478558448051882258024559486664888600092080825698129720449422406963245727352728014657636683465006560699932538534997248936154981589818689299443381641268468568332314962567588893753503456066540815237687090312327574784465905556564579429264686666992870340490577202923666719526063600254776112979778160801141728049067542172955605847448673608854272683091619104852252383879847310338769811533031284113583544873536928456045588531991822817785636621156423045549870477820175803210200457860419188704213031222537622908502928608339093164593196599132628335507913588065251175142783749455533048058072178951652312112428945189025163704679841340253842263509800391320975758778998689756735398235745609623513608995872885789593187125778493015754874175156458140834564367184524699475814071536682523001186275117633878164084916541628906371039240878853530497055846370132983424346430723513386490043055931460904050447585024277720647225181679608860835228023680112391571170914949879949058707166559658433548288758833336716164592800505100984105295827457048986560973493063903860608443638119828696060752170981602067517715041542759173492855776703190690660953562481224307770216725023116112918978705666044731298040436160497424639238282079893053801159367127797326427053238045722279657369011073408419020742068418097590978736787089275462916423662405796627179173244047405512330357440926789685335513577533724405980089602986478697421235548587270468691183007826848769129563947187258979657023956775548068115532633321767188432325747811815621866794554672573004562914021648499030278885671150649774629814602503971013029987701436063066281507366574963194853467501438232411434927962844504054851083503524536775884430297581972884222847432092636982705832726942028709828574552640673180617403571322722061245152753591427390484287984427510943039952727983247219347294633939003364587712414472677371074400701434853988173588469312048215520349329157288721314969365543151124592078404536331932014615854117645909670427498895740939906666831979873238619542465514255851410469885378364644110030304904636059565380406761257691003486167913136188379561590942360219106546044694082851507096674524841907089293373105247395854368045491995101073734821957039295807056952388298264765371196993795793468085278701936472984798514322741692278764953701429598577868684610296128227864629879789182023172738868157596882828113692401450054220878337230681457770031346124767310833621978106763308790783210617040039472366319201480105086813325493874836149408803632721163354120878993866813317106581796906921640306970311688883556099410345320711149881798432287945681178381043379378387979219749831837138146498043237525507805368735471441044676295958889632106855325275454686033831749049162356003976891345774203692893633832202394766121705484298429389090647435994573935982183196908265144455133712383589970669260333086272164267271104144675775465677683072304984055273566507133789768595971204514436036677615038707707095459811229801767813005785166156665315543444011373270398035056089505808106520069334705281952667224981928661582671669962431717999727507871164163402892281535923077291193037476076912060213597854385622878486603134634657516698854229481448618804241424397859240589265232765154467968820902140455964915648600215511763059279666834415228167528563010938674884283819056460287056244780101834255661313094324512184669663166319799695726511347458157206423919751390851057789824913363817388290942769828531468486593066230721950894666778019000526414058756178186953236862302332455987995560911652057973038536690686562660306247143575264519460067725808592998917239410755803827019214630322027914254586234586992747063085712807847841921110524158567574268469288464020406306452290839862731777725091032981491478194691383091571765150542395811625313372269890416037137646176644716124965869902697570086857421293984903868876303882462949877386804773243691446215487296375964443694565528894053443643810567498804740225538528457672864864868842217785922286707677021119087557069913222972998368016395222576602211579191548976722788504313471669641883397737558181006928258030522565181047445115605511641938680775960955916513736306514481829680425876072016330727091490461282534739180241665142899168383450889514026227138369699553737058571332423902135730547975771173371525509339466355612686685399248044783233913234621796179492819863357838939509712930925296192777797033575625138371850873864411654505019327589092488831339925610709598418561114604608052251560032919491319650151267418121255133258020385987950785856176258847586753124963392438374521252098595147384314076127716227859023991254415573786406815757878331093147895604574806500875645964154597028298959877913826813757079115096395817007788459117076659044537858590090597980979133254076823688752138627279349223521701942450413723854463624629499854169616511653470224065520485668627827116561174696435613744297967185079623721520694876800134581224492735530829150545120222037772765800787120597548981627426394873411034499685612312115281118147018376499012878261916966728531439281812200438893483985590803441308745412123714197289867545156017268443270121564394036944033985722893659304851109577034241332661237094820462504803448500581935193610804639840118019353133968888748763041987865590387725750586254134806128493226651825728132699825662360176118374719511183942926986475560822414093757733924869395974191070634130638187983009575007323336399946898755218969921226537554501995260366227640100426096559153237729052997674331409437145167580735602615029445310121866139452741468070257945570578753703154775587243517806351085687434476027321103107387810856797544604414016693083351148092414069639953094423813813254617460870844404479915312354555860658775965617129944093768265538740995668604877109232738062207735659931370286039630321683887271087265439274508282324698734434063387231200635459866716460869543444719837374700958852714584204943668906287108326729989454658554174772699354816211113385149503658103413820407673724643318209767371663187573705126020629088793511419701583397556672064209813843104872944959430636274095098733275783446130555014175282680059420424959799705388341029235696823406243168246452335159085936266852656266930280078990117756946790261378119048248544058878786900313707273774482512853427681409064894364553751775207717848685358569313314482327081064401851067453395399605995745891938613067614026508849306873370419181384690019893415869910123470052214309078137944025661627279552123102667503521027969883104842030702231327581934091945984327614697234551906429389986499626624080619759327231013243421017144642185440130064400179674136786727222666315366637984323981773488422423630939535000577921186914675059398982944409527661017941107862479729335190377187054465747934444317260464435440041051939048738214835452214667554397407355609566542579014137923006267654848464501433360346857620276430833780086972696646643418673844836004903107812483117716418191375761092430220774680128150425841500121934522195189881800225110913703933754110024576962346496458159943929329346688312239496565213215250181681885122072150031428286465242284748274721019062233534067716728755759580873626261141495425727867308740333566477071030330144683621401922986904442487187137291007291149659330796412250973019959387088768814788391869536763010352295334339831076972546425260558299538967903911232066571905120127757367917263228915834742325800022831300202128330109839960677547851854156438346830544178952668544965932282323759030460427681380165066664833890137935270722524273530451383081457549193032998759505806311130511090381097902935501984580249461666037031670413642125143253749122650622078940404019800213601601444218088941666617671361606251220384539575389588395300583934943109845354002673748215714892269312768059930057987114296350253464864760595720956659908107342738642024488456345234215824882381133698880213154117686661220081080466784216970587129542596866774376613137523945023987235528912118171408025609564031475482353182719906094535194389947140800296072179320015373242537247416841915701508419987202982666124366340404473046739896046277845447453209723022252116778764638901705960711307261607396116860971490388580520264427924791629578066901122736579170113937368353456895855328816886571353397790702428871856107600222402799538963590703532316137878540201893175144672241515004791962454803392987644639865236254139823989725623658164445840032811835338223992818994636900427220268590291105807605349624100343562564618755296881635244167596639803140754509479871447915657591614931976860837124995450562857974467248334870267405465476070865028414810148267808503698424708844492718122819321177899785266376131353828520625595918804770469841995292021090938435907334054162440577784249505620983072669342663220168661473832022065517749910719878454895706453120932421118222492544077524321411410818115654127228372161044142173480669855916354349764348120036752689483074895049767271467775191525677873841507795657514733046111844123344094171282416942735768796369084426657663249498862757148154781258440748870068545890957838705722400245048052892371583783449375031005624433822239055281360166449071227914721133003936066591470603422398306823854614332345703672631136490298359571502239119485871445438633784479421593274336785587491163774213093832292340812077722371946590005575250137280901191052971456004933587661120613030251561747497078946661104129460292986026712071471204258425731318082463106527619244524163428940710637527733315859036291525434340235203755662934804402121814572728068896651250004368800361743957017000373786539734266166347615474913244454787817552710360602884177870810712717559591689935720060737481669527839607642537760016966699696012068748184050308064888865897870630220691277285555507903957896730507042679173496666111604201762857321231194359966689391693779674462019254628500937405266259971138227531234750344656859504735898597692192130201085040950536229533556238446311119751438985853019817930387707907755582647634429759533955786753100880380769759292261952610634182680806319007648439745109046684557272565509410257820494746512776800239050160751295173059637226408251363485195262779014224362650888210487479081814040337054715171149695941502704437871838540907009704889830884155557539870042500394144600659395707206348210959029580749824059610542695200435043353499028043612780040975932739196561796277999660840170033094939474309849802911834408590829401121432681163759765085060107813933215379168019929780077938267037680034886201740919807700093115069745287937448902956374122525140210470519127936927419270829296271572188209509147788151769479664569265548721334326853646199963907931616038561180723215127118550455782533732906759813340908568516117756158778378412068927390319146084878110222524545378818842359868252354097532929005841195838480202292690622917458707964970545638903264204590946178433721414711145796059602048153993514861464649309035083751595301335165227179722746893409752795738321991259562635112977321339860673070299865712065319170932918654630722281495198921010495090965405872317904384940380572043264927504975257643360596155001919347799752550458530267886633422308807356985757300005739852893285878735270787401069264918305454934106088605287585075801928956755814013099905992089844198280746177050860214143249057352980351932876065205367212022253726902566751868154456682872521139835820054909376625307270997562043973640163619453062343883584643101436915905797893040693105886929134138610189563823540501128996167155351332812330846831653293175782099159224195826730539805046199392845120589805986959795617558378008090411617292309802104161801866680045077447196903759647333719364357716435463797941859250807864314447005508294589329177505833110696120156444346276553154406743748008612456592208937682015764098790178504477666355550145041310848065452185757527954143408045044665555679652022362849331786160837286982525355230761098550206185593135311400544223173675881135874487534701415286596358134018001918592775762078384726464784782122846132747326810462803779374466621001163907065942684314665233237377233301459259990635234425985255779290581624999883777052046736099265798052633335013140013540395213665682928023583498097549117876461142320518469949407834983871065598860006921700244197730774117837059948246011519045537715628382411540160339704604963000300948314517177616873182611847683833608875005012901132379990302174196512826179744360511355759326397892744536224503901928716188551833367664317006018079923347804660172540751883241683876504949007303505977564407743048898663672845578781707966289063415625090509566401772186164104619760912303748581168699388623939427333327414702988467012336083523838986002577037945377392007640589889008580925485974892366235207799468328099625748597520100198770934082035233868121494046011686066750495644239201079810393961199566806076935266656042688892389061732766711726822983230082493357321393495433122968557662744610854298345940264926971831258554523598995524702938049868199047643301046427968792921119726554784441790840017785503243195430818379313198562650479011995110628649394667361458425404166429913642119815726089645692813869866667199761785051877829519872934255805994435320202036322467335829642273172383193075770243706663051935704620663207316883110492493849227033528709519943286242778675620941089298730037265566051037361282973867821360087601494219190035241624967388772574686606492757637901564340315610559313618469815503397359225886734618788010590512145214914167093874927056649781046376820128151535809259139233344478712333904557498770782344548425809294212750663252159508115122210047297782627618227136735965181238150070972815836524969135410267966230151626516161159336022599873505207163593939766016841154009052144237204080151841409381620479885982182195821811885368264135718059139296512037410269053013434495124122951398376957351965335325855145758321554386904116484495140004320533582509739525524143408923710399064568172272187734005150525572898531787935395583198412196417992741779036644238227810130374701998954212020687739115937586571058599059173822961299354205774805499957663215694281128522314271321784878771806876382956677932562430212147689510722400784100021880876716729344162587950715609300637448992575511424333093342886595215275527124729876567140425217241379980346515164578480315068845388640999835494193307087842318037737957471574661731457340659545131420256208847742771961860106537509407350372406940364225855070714602169635350201545736665305262615196994314943809447144523833521123740023692749174937312840784569757589914742955012602935097354443739777252902021364930965765927230074285835863253083840246011202702037606969115269706792473569694095000740827140881210788323173382220760080304992187723267110702767253444760713993015214572678706406817042591242822543646198303538905143029003832685521009517354150223515649696657400731709202947992380288105099889171729836370385854536710518863345312009019384456524838701585115634768723202171458858223070475106763851139884781276307245010533581543986551965924728116418833219918754221433894156432424329561632235486002505738597951254850134962521600481807406287807383284681071693557131249201311435547037543216800782805082754785302827696181407309631261080814209319368741515563264355007262683493478304815673771646678074138589472353075371500687114991151231797317900197995786833718128945067085635936040940509469934596884902957330079787487208338113061341436742595534079259058323708160105028784163237173409226998036267799078400979924903297564565189279039023647015873278660969448910162654673272916495782352221971024304332726492964893531067886504655322069626711226816565509079471920389396749549037558413550328720390969506762935600326107973075685661992903844587953202402954127587833577775398580926224610087485668260876239284673023941806488250759319090697267914142468856283183705189725500425936638638547003583568376371784846325978269502083572528524171779971571195229180995862225870836685433191796934161830643556706273501469622227059567736088404410070642274434172873439940940290545700614748233574791623870708393789268451369235947591336445619056619550040681776637313961547344239081599267441786279845047910962578106742537158763729325384318020346559469193170151073912113925016185555589619368153864139384092647185479307556083480685457137484205334241817250990707391833872535992770498177268272284324531314076182017139536003148593872589944291190206187149754534210019987015495560804979423209519107564942539918310572199385484337138608973402016071527446092774277371114962441225097383526055757904599637651436824848302401382014587688883523279562006389151884256829778239273387022428142518139671693459972847243856210632080345355558548908689685167560787492532905198638642633001247025521047547562595140009466358540299522056589840295439163716098542944392851098513641773828548885029216383503597016634469655772518310860899605681962794283345747679229961559575770766106509697060420097466274114293371825720246011886230401660444789942516548975978626365490059548739653083187995961259292926918802033829133744035735119418258854885768250646976786979274602663246985621693883975218654651661066333258667630744321903713620490017155102997969402081957164385063262912246619921342051572027842484004205472233003816959747336505002832534690097408269008964780482631534263925405439251085706470508850555824586750971207938002409335953629789662574925406301205420685756184173299485907816255460688074191958263764708272190986978684196035683706153364944500448803639139260404194255025132531855264907474672995677629713744648818563081408655391875429292380183023041365865621141864829138178588364634174980279238108336440167349257612905502963616220198334741558715909206164651605284041568528549780197678401797111688538069262378163788389627470025142111454051632070478500960903355154478891833722846270365303506963764367579121978996185043954115504448835605063313211087454179346379817873680307216222872044384680991735753965303964878550593777171721097716409735723554649306273219462634074896989430157528793311965430846591043887304799207637564216089665400739616468144322476773394035388820862497233640191728970173683315738779147069958053903473056476804844305596594483170520679903261610257620794451826205582503284485526931316002582093877459125105008683299888314272359923059434805881595153347874852955018083765320170027065032572797145692718024008908413905980749960205741901725585429944304201395473969774452545220356997231481705217490679810827341607015422235824698897593327567923350128265621247297807401367500035562146137400421733507336626243321160027287465604991383207914220565973945670559339198702112634880570726723881919984192355634088117901082204914681747687293933074167566973658133035221569209230893520489295045959411338013022924116461950953993918612235714912197909904519250940108877243583476979908754776742301139008985043593761365361867177674035208021642709416510782977582986140992885047482486381482624772126289485321034893831765738090829494522608460824320256332188413833745188707244443851299835095231274420029326580886193051754872224739485241297522766780959203768373820101860808231079670948963576023529293457516875888734325082500137017893660775931891633708419044005935031184322063809212528754237961498166992420114453621204234947854779974815298320429781033958502010392554840554797078686815718820334552140909046218754382637853403151018449589311777232629148458328638809807568826787331324144566442863516806666689780669475525996286731756872135613220416533961762396888645419582615639180667602702904264448914123203614461478367277613883406439405029224694098464390980620033670868297128784118778702451461287828303578931778167783755493568739133672529079729635069175651823208430630224323102251985297175618990056047206684605888269092395257788450988116334179566873048198697294870552515498691090214268935376861042458818645024427229508911992613484779585318816101118533912194936228802423481567350384234645836689358594574464382500003257598033651983192814498941516488433577268736331803555016644600676262525487680786512299496497132889975653311750607547223820001666941264571797160000839716138847529654388309886148322319372459403194927453467984121447321704879638694592433816094685647535027654879686458153424150282480451842647332888873981779377202666088477932284043237877257486140000127734366494591528232071757293887454486645096877234942296856189706305073748089625529348615872948380797991800004857890581758922359992015410932833581114942681502352325143046804829660325096042272821787744251309552901369388433171836932090436627471491535093295759418340920418073367610863410025372608099407446780281370528286826792815913978977914081777998047083168557536803400721107693932469683272441465994818614724053775319741734098999907598607992784463054379610015817434942761142296967460348399937733182412471251747132089778676400358440976155913816018727636554519299405617819930978056639181641495093681529670512926782646361122057903914567519262702521481075708823900034187565059548687936865684384674938192559204021181891566061520457298372775897954323893317856301164545788685592653762320444213622474098163959617539698448732173650138205037168474093600155800627323493868922791045707706398540065451336812721727150646015901196913388317168435376399848651665080676256223824103892290211583682053196212781047333290936797677196415906664927002003231337892818790837281387920605652391199880468100043980029860434310274519456529614695659647397284432156991485495856449010846158672341547755450224470452816473902940339542602232653814584504320699752114819676934731567165976017855787316540762902808573297857202130007309530102882630997261054016253060682898620192904826780682131183318846363422101300873543875196840844877632931523266170909233131619283135636556282569057633625690504086903034437188376113273662830819079798849199610847720695697323280235516525480700567813498319363758313869800281768276932145177192584916897828860319170308134361888348079529688021698059150747368838273209276978556861456899557322125224918703125312600711685030244833702289124800631126004589013586584482063511490612017426458415648663800872750920840018883240854287941450916998748420041113355713145323686843873296457839295456565853666699761587167145528207812370455638224666948393190210757116949928790772265259667782351848289939921849330260412265224627405789021268264380853756968647251489723121111482061313191515672764408065884036239570729031726753410099120831943588796752281415710175691188189542750389099495851347496891141630698400688837715288234910011720654703625847214268477156828856025546287712192824037207619238531723910661690895374647936703219716010148147814634140460645613995973300286390491396457684441726320025696953072195507900587145226476165149941828657767491353952166395775702754082297969463046529138026767759083212531882265279628661488261615700267863195229618749292874009619229071484830453543467643583167104308120267528140183078206789904628475643961770324904239823498427725377818321698299158168239054876734019458952351557485895651532619576231904105979953240426260620293190139203813604661368828702613506077428931930222078126682957608016127365000167372057774183235809940981316654702180445733289735821540957997500993562555666875522482320058835251390302312483961308479423004111868391864551176028940654984644522462407891595894381774710087710947714277491922471882902922959876480809280795817450078635749128538684618912131623352876506335245527003004755491599623870275972623961563471464937994073415049250318834999176293096837353795149916971317521490139529774970986983742412866761431750011450704001904623689919319405597968559217290928863641169506337463426317607525047753961351706426993938269283758170771056180950324978672031203489653830039750093580237775647244465503919368751755647520862020096583144768923896850438225386726022805762068900240989418007611147795801238985417620524307556153745741888889701999539956766017485337616862795391389492455599555708598499649307746427770861196398234727309203866513417806439394875554004970342256140721206709052760090962178459618584422430177301299430431829959940421251380603060426483182696113468206174576922080361993009346669252777589570966542375085857675267165253763258827580283925999504339157436155936162846250625218968006226123564941679135246566881458467752193469544697748295412622175225173762215337165581448975589107138026907671452223954482507084632897413321776022679746158357753111657236490007799892737518115504062967322498545744113014269832724488984768798656605719458838872821194866874177929010237464570149181530800812545840209343924796316502401892269160270455817131018622186205215327932291741132714404190953034984659442010685710588462045626706017570637422287054961491205362548630016920923632254427931173344550559598912533453333160818822383024804018928106435162419929998390309147753496902475803135237773289996436217931719955404520402153659696983933111493954658980961503770141750510170980391317615717789456103248139561716137847372013200869171023007687591416258910643790428181170537931742837422481888851706382333530422716263108605356882533751589523831665340213508491569064149890108679979210497554310580521122794669962761103394375404007956211691626970028488009524263533701074939347197288701245629824201518317800245094183003017672884450390773816497221970939865576958040865930008216806520185541295488588224307604334294959973691019726141260570578140558127984087305438359262767794758176131181317959252275783411336534267772187417269997024092274690539451862217870909920060352472335391217527707822205850737455934493056946337311753981090095333706445703413903187421432804934760575194588169931156433844594665892672871339777592774824427169685107684207839982478297934641553051240870199673573920487494954564715340871185136072497937513834647751196488339155494837377212170695996987196159637217723984378566096370966518891028330974847881270529469829962347660131760995160156587485758768880671709968518829407559710159614837803426228111439164783580927638184488680146785764271921177601929346467180566930502292796010211416558910730415960874739882435046229318842268322720163526633806000001493378774539488312874169232967071929340613574417225596443879619627014784513990901359900750431787097258724404730853657328337043335225293816913462610705972729772287743905120349545357807565162507123371774642086881018520033401531344214180461135363055325030787513986932874143900937792977014508033514703397484984716038999942312673698393772081791254765023053966978631202756410155637955589891728186350006299150621972463297980320306582784640883099108968527260775758339545202624338701467593670509099997676919775771466390842937140817087471093028199071982484589860749577011934180014289424915899134402752076442169198802604483721959403152357917946198459935568060151522135923084387227611634237303928888509078430187314799386807078824582950915083647225353070875624327274308379268087958544639833253603979946525554500318782377887725336244641065100165894986191765665385881371317325608087348615014342762396446725100496034356386170682115885361428624830068856407384459666106745617377346700219460177660466046463949453482629429329902223608995737013402134265076284692678286207223499584212827268504452366568772290476166504879122222132363781348534033233368095722559921139249871168014141533295462402362533261167489124014560951278924350645108723642291152554633809569073616452119315370504001990473680713717693916261930475993823745680231037387828375511132695795602670552229917995323387597972081412865780113032015522495869043679976250581920155649477249923150034653704310824504349031461299544995406883938496589537816571897153748277953646553252382340234369964284327850404716135024273921636885657084844801630345929263271722559009658788053793594447722611755398893461680506064724526561524843099637226870258959750551863193913742087015048642517448118539046503933286192622637924539523306642807206001348497500216856319740158388267046822631919729570015476543045357980014277651987203167773982632178565938176016212201125952062862427034682170119163482115083000266132046779788170339437913514213296061781043401778962789242282371871345519278167218696462455597073604745965463482285708538137761613679442457422008855373293441707311705505500898413616654596504606213377855979858519795704925959812787038447362324293926495655053838518682139261803129071953520124958417725348694944630189506834077008580993287957137566044792742975430772068478840557190927793181393422021828816038555407843025352403887470867496458885109521348210679501977913278795553646314806808978646549126074203750745954761714362967897602445770712816734863775544909987446634250433391842943565337253016669397639292513147095077604581395334979192524907206046586799525348552005214338147232265203667655820430345716581672378857526035324024884105026699599787877804476952685748665630391440000456929896085676772024299077745621542926087704288858160067733926689198133651886391430139663964217806915058107118048537137081302145685826453555555169082986745659153675484241927771973363913480605123324744733650163315543559553848421617384574239794530857088492165450546546549366222363034663534722506358443054811229048310275027929355920171764340317035637525942167202928342717468983537899388656130490368472068382816305784376565519027041734935955197217501922048269202590598188461752999313559662401898225610136344295280669922420103138680882046796263652090855899338343254211726093945994056168089118986819752683717904661224022365327015426302051755804519441806253284868580823011530996230294112236799376086542823295659939822849714617407451770303164840176458138643824365521557161915382881924851664390135349644824692054531484780267375702589979638078586347211960616576379482385795131681556106117919769875051243726258145085399145274160133817518630500529594799902419675914634912855932435016167767937500093507388937817844486671154167721597865280615484745316006368988729856664229812061702690101174068350119997193359473808868404639729907958162437425120104070266191885066121237261586479529666236465938266599935150161750728021975785235543804838742423814570399894160375494459986219767185480865333955517468849685349788388391946174263031409212749878834865908051776299557072893608726845428387966769931774263750287085858924735657936907254577944935452507587626317125123056300791205774104347435688329992477126676708974604977731558060699190859736223275904648398394246212400708372631805197060945513998853061978477834159779568269149102858032001672996866685918206507814891980096535547427600966532312207412165619746217231017310532339591564027194516805972902239690372807620248192061085748137596549238853768918624130890558644238217763267865269846922320078346879314207085245330098226879377995715887269755676272645215785581021605528615626957376014128477691765549916090710569817020798645964339797187861275631407793528478081313416625916502708026046522987113586349630630544237170997476938427324362965993807343769019402654731738606114287304186088787781018063342926603167908274534649963183678496820050013741495729560479141305034189530892995245732725262508966093130054010752592037859155486021850951282179630958553537468440901175544823620864510257200965974113620270215188461444370540033921846415235440936875031900693392457962564564048458806345873342021091733472334346319625064439536940018489095615685441980329927614630399381579196998295388407939291793061110817749299873381627960105934361414002941607217006736033248986997017708721043129649179580587856416606894633187720237545622308552504924415174930829790736690836183918689498043106614143950849056763480467217935752334985978753430990336504071030749454230966095830753592317490802661932479554857340605581580083259823339172928132869558967692617110398671238913010955582029117779556174201675367142040080585222424435679125968285127213087572681059203351124715776542863480175031558987014043209416909109666072000620648662797120318272505514295765660608824011351608170916097181685894640130786492495869434941288999109424377747891259312520176298828876400036121987395369213189520412060077598824404009915810107131584453729269309614885102161613051805947225540539340107157693254285917072633365109545152150700929907733895438668605914129262360379671361642286830454946127216121515523909848005299814511133612073005913523785697896534778216997391452572666921944761070097945075149882906664557057045596012602955115565892804400461054010621668076681857664939810010250012426913365119498582624793060938976108941554530441766474285153849761750840987534990450443392823045506112143276169547947784939825476931796031411566492405418837710080893695539636463527843990768023408003487196957221125268343102737553938488064685446455728817459066662137237042789703519313600875680817477815563711029862516693930600789786302521646316053310859544478417378506631727271528956824736248792432563930998662382100082115141744528327777335681592868579659633097731703169673950791308153355248381518568366454482640403498976338422807685229866236840112407387217760969680240254176653977501824377665173824705780416956568539723072643956498182432093992320867029586834412720305837398429630109612097609952834254671081938410655790580786179181042559231676273737676249954756255583862304689311275830990235221588704137671423958247973203582799218050377981762802695503161605538182459074655310030934444161884307670378343396274630768171496874540466781713421638572369486711122221603886973668651770565105294455361377504536256231120830937303161753778557658318027500660596189778088386703769483793517613024481003050268555927451978002293558131685069446362304446130095126086967476411430956988195800776129370936604183216359563555334553667216236007978410114212304021425435098177702682725732915065093337661252766580459563958607210354738536282517003898207678265781218593761682265227687294994426421128394385457049010448503029838723107368805402044700934180872978286057597391134718454697571897341599233757901299899128672262040016268997890195197369605555474401982485191154276545931028766672559074672706255877076938668043497761826493193395865783959040332640497728292224713917850504374631097419595443957056368339738072896868148193646468576345806829912892198021910929786566184854999898677638362848865945085080156532268179003051920979779936715168502253226349804827484043858045847931877815337927415850772395643766544822576730300171526032368399316954903626441563973698331942870009172943755716067379322588977040217504028844342710919413819452606152305496058471456120516509115577045410081886655318405254246651877852096566891268142578951067134101633231804460977724720810927355580210876387538003315525659110988081328768690638335574095834020035198543102116327688733577322593910704082784071007842844422448849565226641539064418288502643654776954335299008096436473809290479712245355160152939731490725803850979883525741643426972143232690174221722858544416161997569847679858732058473190473663813486500847240910822394310068719297758489766198087127515782359150906934038649072738426854046377016281620128870119823322783433992217693723647037143263507109923882836983755923465092550415972520928145334445660301032222838801786193866085385956671173019514054393386314594915707964868438606175048085467251564775445419507842143502708646276447264491698051559579741527411442358521206373169930341027629117945506506243229797910309228535960119908426928255192956903794601059696775025000672686704595783904776143324807109130572511542571531342117783005803502545726677966140771941880469878979907783283975056786340754458140664359011139052582783165927364143147469115356964571428050173101224057493683520612981262100171196613505875110224054083047425529192801012217471825414933965829979608156166886152902568113469008325309694983606521427817559233509388539183697656785410716290478796873431530050917146005107125256400187440273077308071756931192856082942034883588003297198085251387717254821687469896454492021564091289220081397348672417734409629950563070583003148528847700592071652597745493632457171236711487244837920464275052070332278788713450442815049520428611408217276666675986779866979870580239512934052431010264459282143533672969817523144124608705080767066143489581857633318282248184460526646270290651382903678341974121238738065712942196740426595605134980332021056204719338092067906568253795240312992929029575323569704782909347325335873055311986111120268396841511007828352593403823992870070085669243040321206026986870047269785975502237430571761876618494123804467130425870204385365269979108849755951340199155787203623006991471127987901456077497165979522657556160838145555240777777185799086838121236093932821503473324231226585544546450789940731163538866722844800652572116769838457438842202578376675389495227179936604798642817992080310348964763161663991583439431705460731185187678795258437991252544828185419502213408430044529151185493465510895885040501962535230899524350730938924025513494857727861321658580179944817613107156376343412754043419916626976284435845187755466057903411813365117489810283264621433215453222306038154654733560768950714024852439698005841620645694173952252075211890966732359777380601541536668276905895037253382972883814965806009436632268399418085825768642631924437547477576394242285477167619306570680461700779427066170879431718216957935553283143268822412821753471319777370898937101070439955081875881628434970217568796093631177493269164879385878249419118823667309173064428007764969015284088827574114198893273569133095467880516563733452423038006972778328016598469790173491891156256941866484680262119460100304252794372657135799454670514400492101411161646530177014681777034449740434854976570718281021764933667148833520218163411204700849117249077138597610706075287687012376124380382934332538689644686204167922475072600514430932500290078995801807017129968259893865832949382468979173648320293063285474398205122821550210924086867078791638684051136755400013542977963660147171695425770248678311678848326547088832322997405275711419702098437821497153091058496183856416216101183082395841791784031287647913747329428716638130085566996736957066812757305157360097944370265131142944919448777199343165903517591247173206363143747365309222980420027085799603555877918365206310949965465722711183272754776056930971381664438061871811436577834597361938159068513455303529896138720617915365425874343712710046920311787733005855784473083221862144217012185644083425162912199780916074838507513365685425472984860310793387132826169144334964174722510163185119340674068382154322350958046972394868230690213891480446657743669027593206738551350911052750573212229158654988205169643893228253213990774788428901923173084681458130612273764963252303641079317944310204294258401330261593159199044877540418153164893232919268764187605613425600794531493186784076645125798820217708186384259805692678943638408324857867663774151899676224661936813810869006893369931478128605643373686362776635261826246419943052841212693934791281153436864413949672744556761740840852163823361344383210144461345017327845747437789274197587729478957722631079211144151418025520916120500208905194127268405469933278383138491851340396694301088685582905947642953687136206126198233256928812250276186716064097051130708777188137733787895686058202587874347324107529806161551569373077752623353080438653980800613483910956383939971032985288769118074049900100952336195639319797825766431653905895877587263627999533823565801055568208755599808285079357799226622396043984083849283540860812308476291775027234143283036036490814693609970305849101703906231850325744797828107168928852429427005716266066215713297982096272030611573079144723314841136767522869958168565052687692836304737600048400095039623637607741238456629348974838841905246790713345358156122901287482538255984710055895495281614163300019561764781576798527291238045686216155562163920730463421310095288639110560726602353705968096355890083978102417442367948736937999512115218302514358699750428614683435215668036389327961055537365498950359611383755854803052453672655020776511592972606067034018805944567106775856498304393872831834657821867094053615038145572379644641106267673088163419681838604160025059628894282131207789337672587319646044937320786972940510320929181954922812744551223889840001254786516991788903534359895627781086200072959258633225028830764178970743396502725504403776281390004566451940314237677061635787793999261851469251356507097264216987214011904415469291462545980693023418428873695891742893499386355170790323054943639135822397368473523626792020064535410037990430798438604622662734377770053046401846201367750758478073105587053479255224542889765695916867557612969950568794837444733250670047233607372508050537790495224574132621845274121851378593280458671564739286377921665519580052040831594334548371162546553708613209920082946347462881086244521365699918584009528016269060383787066215063620536874668082342548962140276062202488993633251503120221289186409155305661637279495612556129867307478037000090184498816350890406627779211891825490569415652333833655776562913590010982889118653210078345922829769399904182192244487003165020731516287710454140530799227906486488292115606416661441706950034534230668505808118024683771987055810981767097559637514943212311912228161946901490524305960562270225904939987656769140031287394297359106264163653013199698110151470189375791153936024247648624406567623705849016933982895821310923262269981843095957072414309991957271764179800136181158889699423517146739376182732839621731618703820453472099294749152389448882667686241255368308854045838965710367793162903063908688679132836869557821847746861094688344744920871412528901989325425364699329722316961055311296138362615143129376747921178798442061532440387679007368401969093956619675950860169793424277639961268843095338439084088201996967298683992936762999435752944943003192010668551480096453530866879679864505197654688365448491806728564161702343612920376430760566447940330250384148749472741819543844405929421073178746797217022793352522214067630235576039318768289348894189506163999283640055271051265565704856337832923830145859112166564521738554409133825760151596220761316542940626461285583506795538695154951404370605520282983727215196742559375895643478679522508917709264589710678552209939702574091790643795410940035891715528660129294454697601035724297012643800648485851392024341169056320653518036198953290284284954758207122053841504303936190973445969436827837966653483785943459324211339471248955486249743348473446410055180348195232949434946736000992376583293559337447276308087736603640591122101488781016276293224088023889702050736384056663193450794743451819435337613905081795386748509663977793109222723142618923778145043799299776020249452162279898589536910588808130842107309031838167768794985772427355241208285515459992723881203985251167000543365984916028625951509320859832458945406174528736022128378929026371488951146978570363717626119631474264028482967688302629212848511908487528753414991193216995075295684881141266062190890016746411561686098162438514462727718119963386111744963518244073859055401746029207278282158203123579884884765273365162489729925225044114484428598492028008429292416157515877300165594164083521121681839334725354526646215239547847800582073790899984010917256164502835332901626732901133750712287189759631304884601658873474557747807090275601039985890403092382246767101680318186026309056744849576898606009938792249549037112893739786091039419980282039217578605122201534283355370605949198465709450794033454684708407417515073299554684988627025466783637894861233546805018349265077673795823567689005483239189601341374138891620585326617076983990672654757207938386119607283346421680400806117390049803464798017328183934667867469119635670924677824694120920403551760456049076226711187393979260996346213231725863519057262004970902267858433103332478002601342320911613421600689921338629400550550102205892021605426386732150823757187358830440841510185988924735379764330388468106595271621906176565097700341707001153473745897245236335465530612124954078244895363424441204891823263593280470417970729468932954403273613325268149124662392972847508041629168246366502758514912745840959688223507786069172544696497716271045476630843177464080571812620272415338468243775581573702433054548699729084136405963703595421279065066888450265153099625196635294743477943402737639447702903296659663689392811806676343871344116736442437670588887720369629690080288321761795527067662732325924899226350055890196925249889011683492373545763649901635332391975326755906496122842982809450898247546619056901497676120177498476057898826864279666787781851740834915249935525177080642877260780228110367613381550599821886311326175680935376054383766065963616644311818671508683259318221044299197369541006867145454245553449045108884810749277590527181965356594083252963244711311467800252757218632896495674357068489544466043863573492684412725460050731837157106439882366811084103392329157448356700948539975092898941571306593448379786755914850908651065855654589077238581243015344442910816767652915606135018718810378851612868188525765927439429052868078631592298570985215682955533611306412619067837480491196982862240360589505512457956469205017668675292725281960680163449046919438570290855383949158089502609079304541483796148910143647596732725686547342793397555586385535906797305852247845276667108832593308640842035748388588276843120649997625846960084888866107602522440829147940732229468683419313538687241476246700814871014439048967196740771400607697652873234173551372444456376610958364288235112638775545216730765983776582968442688200534933361837680442529805630164149627431666327293430714815779441544821294560743208309497570151764575899142252921936026927649649248467989477538207900235086651686772462361721525159593664698220294682403664144169118565732999639437280365087439904090046695035870527249229159216838785704787368240909250343285823129184720348479674707992010704699331086641415198809182123185151359204498919743901614708435868484638202862387940099078868235131010636334116566920595845662809802796126461997819226691975980826796582140169105228458605422053446532946436181427399398231527749933627732261989108316519232844446709968053361677257095935357695843533886470807464866308963551068380138308183703172020172431077757801045689926436989800914847431265565541806051876051691962160517087053953075452123119189828961680459769271346802047010686701290283540899727348593052738114367629081401860671647159376042235193210846684474602830606861561891711922967303356946500481129050559286978495713682449259606591131506126494202947097879020604605611569410702992471017226903078889657886140200008498170103519925013754487114600206809214171631217452066131821909383333676583854068881800010120498731345364324890744170308465078718790117098584460957632541927538538617674245418089400396811091022385823199500846736503737985371593568168554924301384564629794692381141928219956893225086758630303975579437765248216697202075363282121499402665801027551026451003193689160985406122002870200120252119711732296452020193059147493773196152491630020620752704634296805185547172447021690020590928519927914354522655480537214638465736007459591958966943910829002822312801869290802689744496643133149243998344293631821216726305003241753843453493973000740855551277799709565216142269869021433626314865526604179173215363606465056312714538256793689229468584343147555788345488696276677461149016889196380775656401826331720442250831723276159432128910336591745699315360356627601992003764160486013551392216658768033898961752949028587196739956411369724951664736125893221385371519868806887115616586399173201504238665305662589016819747944074575520932737342886202430471771962396779445495243177925474456404059675473045165824255566515926687812215664127832923462202171900084311557052749717604247334285248363280995820733211791847499707037299229671116536764044133330805313925208499982317878168293113017421942649200258883415872923441340166196298671416391159530516772293310404371283739209069911294456425154607797848662297396500343710513501538844071768922921939024788625539269060524080009228368586121313854976568138235257527461974715441336775415001440688418953606226843886369289128271844011332046350376779607437917114579850603468854442500699948230869233507639579663454482477549099490070962673583215338202709510651881102791286857667688316502950078006139425724551682490126232866098940424078051090962882034800372901026721046085447615626335523623636321885374708281155124567239716751478650712171330359445212124076346418146942137939856433130768913463597546592614371911914064945614925860582467308643746280323302238208266305072721154902667107936913029017776529477537917572821258355881822995778359740516905576160816504189346301285422269684304969498371412390301191526243555352488080688608243842141964178287318862276187800599993774928686459916077657323979325223544074969938275132177962657016385976694439292590875922975508114005622863887171921300111229942565045789296136587932627234747146434053943823888375377489769005415647112917603144978593059108603749332998311731842887204019414918206038274403472151825943301647646011919521625045894356208365833201320792187982409656068123378743530001228499518127222188074566870211241887475520590782563220339943559362941737310704495717840262098914553520645514853525529194280073530411375760847215743825144567128641984063756424109248792967474542751829141390409366663360660174602728946422544313288006665947629374658008172635308364217106180362950454121565353931316612733370978721103539254371434045940622361418516358322375503005254362799615023020600536404387975760542077013364693142306699792535901138757264242884227013848152893622136803042035267550257564795155292818037415768235718054549811274949972617863088068960254448170703370713605465542666212238225996496484915052295164509383247300941472766040318671040860861645942281761630955070158389336574039450745931844212259646650907812277423393347801928391791617168530057453009074640803743496145280073405467659095257441221967623090594918617322448848363500974120777321246219026360813841052232175474698812936461054623913517043929161408025934411454803217971183920696991959471125010645000580657051088932558111706848871636639086360023086163893819216834383923893812407595073053362937053884048648230160027009652433147598803225886452687746605815493441298217680760144538238039967721515032536454918066022809463547170174214967475029897276302246373399722411183400097155962062338684412650919342682451776601937169593236205874172119048297557035259402695242416526592703940302496390373824283630827823878908767178951312230542448078588632824270356839847857991413077308246894100932411090849264580449326331065720189295320902837258074621639984275428452941283264566256733917849619152912244917740286279660260682083379789411870149409746144517607522128924447819083622358767315855605731157377086003525447899298763291659842330465368112894632963047385618514452028491354727881534893690883044529424657226663838690943920609460569918943671271444787279464705256892514710085480284232930941343663248783792722596522660750918331497772545801294915940548158507442068896638139414913790150418981165457096129281635248980767498831284754301660957003402100519334084548368630851333352975150529230918792496782408031514568124432220547345601032497178597834280005380428078220263807503391922605099038579936725120835139415045720582066036402857136082944905701407693987164269177520218440824432010386287069570180413056578382847323535402957322267272376122145624813380078449266213289613334078795805284922585614613955986990314445457226479676820920139098633288762881661156501832448632743981531136749498215395650243413476327758996163116456629264970842120712788776637974183863696990882821161846522608228302992140143011061074573730680746930985724587498867195934728599145927306074366853802532204709068253151103578238685814091060098562867977945765680107799160556380253270230409666981471503175868967418244531208416389200156593761460535524770464528662677851624465045481389834104576018160793126596636046447977969307141782502627215033989911799089536065585315467666917591259751212816886132812939715357893413747555184496148635219085682675222561974711280328064216218373894036972567167663166503898193656754044656738881384490252803497200425499164054721172699560436154848028190107728046871355399725987062452408039469648502653704619244940300098324138923000663438100829791567440688044614803480382917072776121338111575170370787721089927712186311272749968966552498656414354763931682707235784035850142803871068326951332609053114292384324252787525784337647343409008631389130710735800881470048556674668592986395220978032872908107518961585785192472650984390842884142332430560615177846135133461781761837638127839096444635171580315034592952940030695444968674810537302888962601913791676675488466107830552967948584011882135232253981572678727228928182615933072681856845634122134409291148529402771188080204831752354123927208698231489460621616222192244265508559397480576204434482785259905770415956521936226266945392195347450629943908750993547060568501093323025914119590339387706359120364613373165186411495673690421881188496143452438150325760078471395448979739039142162454309397299581798702642577182844255124802158645912375487971222027170656315520797569099356888393320515289327962148615719945128901070680781090040774913807705485823371482233708690095832198355352969459648080315643130572255064867080693178339652341819066902300649732029304654534608647984664256176577533209876803607343868395929720923177456261501088268809986479978015689243598865496295342502747829616869746056581574921819644785997315563291816476688240799355799970076591586513478966526902145425896346612577248651496379899245616537062614735522278150386032800318681380077718966700923089689556242799583321680825787305424140190665893154628268207231597877297972155366449145015716582198991330248377238927401031137642837779367138139482684428235238667364163010872369970313522791800758935368166477592611562034036084119513249266562551213612016854496062123655677086963777030011302704417442649117974767661600943484510869042632304647389194689944481494599976233160561829085203957808516795994512745518818195799384601765126336703554373844484642130167590514875839697770004140896139429980452728457370510998041470520595028356855133678808680189678158139299277417782246968165729398770040289682967227800542268059276216862809504859786834321914039641559430679778333589551098716317710042213351744102515947999406270825906657778888342006484532511382041049814011973886632433105360514367466642288315069941431946489669991444942979671234991618886289476774249074948039594720172650847365143322367291004154628709831388192349125856287570497930301272604962520223931896212867196370906662632398951887689739438812400595135335072659786432247226074766626677926910313098645671985030789113019430485052316530375406099303379549929950163453229370785629394731270565876676974559804934107201817887927714422588618631347206599516301979731904852506310961236320448043155217988062016459451067238496265416934630607083830599970777817973459402349517471142461342178882613162634239956156499084539996495444339161784203530601760544983448028063626506493574470373376670115211361785651302750118088818747162722047599345759011050442247032767143879764694934086915501178969666395135770948890354569122569587240021495374873284379419147047490113247906518267208495263261215872382631595024766440837807176267330303006814116523047935514306733117628141750737076004015498834544435881400265857987391550487196084430530015613421524161067241233599962845561259463787018317203200676345827471271296937652366640359591454933833407373276035736268719333624094987825476297734844831887008640155955712493378190541344144285121535090964135389557354223099110707859680062336341603732600200624465706296316398072653327795578392842826067115639459726353669949277456281964473172582982208934707141704299836112401183811757397913988092496103502753421550795030074167392732902904325578162294081760851564576505052210587732893119456512531850146218277125987879420403120296616922977202541014373793815413159158649190055531029010145225868783461518391670849285769695803543966769786789516249753499982223495696124039546550055097358465113805898232216838548820676707429741630847260617402081304441842993424525904018648694846745967282169129247907603098444765861384286332050100563736420827871685183321450755210399735406926244761831708461225271879377391417832150260155606853160310200297792357729420898193940279867658038172904432681679692534226718494712251811601140586435745147297085793724908358530438369683617377645457499429990130588366392769773150594830212196286507029180025870275792172172014417286648097575791962554883335825123057658619799508431808058249641640157534071193953417213624946309292959505973052286029191650321541813056740876582834116286614817744249688597215391807535233427682299988328289904313079238811155607437914567573096171145259626140328723394896196581353822072330927889177474829901419316899205553690973342908938928231126085608232068741406459800858417756585819594499528188940797228245752921891087504951153996288883765120741181855009077188108421326127634615632867756010141052943581458472779369885268435182127194452086688579877386673284679836128641564144440423566172963617324940002145922255240680199058197651876307812527345176305628610751510836541957776620002817173026135069293066914301673785484951767700221275523887471814093276599691615763755339034739652464527547787687330606029909363280953549749425458741181915029722339977969789180939526601979524266717265101661705519153976389732245891411457585429165041561531189735819723963433371890177204158475131366992959397190256743173104809144664473829179651720617084822199432396820291876599965205981395067347700380538499919444820050404348293859289051570024591447252788534980455614277121399833236491765112237957376282583466732509002664429517759510410160064603287938115771789338056571002590781020219046549538219546418066127801705783496618590676845190020970366220434831997286078270072410135399574748499992810827336733902398430943094233687770923405887229885143182890236606641179318990737008101972831466584383853352669040138119393770797971169393502996174767912021267208001532749458588123013931143944000115896035521242080730642833352534276785008355831166990477756950422098939491946006517384375296326533212339264119903547132234801781435446595721031968423578208662636739313910944403814164745386353991342852183537635510982749135527837684647559376163516637574912192871261829407968496687160533030730826937589464107526341131763330831793449995208078671040403428271713727226427621529739291631996512034820422566983515050502382160070583886184903389914462485461454072728833992548877978228390118518417341167476989458013833643409299566071612568134450618163973509617191603574419556475878173130329849533810014040936998971612480091659774631371367343572510419023809075324591169190973548089707814899288921647114296151550111183247082001971350527556162297406502142230657296526891951991762479088092123190223248714920030975896526225006979554013384180173812014464060507597354190086444047624104397149490320037274394559837459440435704972268160409274195780192309938171140405229594567475768211079891395235683116901754166152340194615712114389653803696005933800821816151004930015330327707030254624580222054400214996069579254403095375013689232889134032586391723778858014274775913589587570501152850951025215677950020872780945102278409817150139979171697978169772324913433933373370780792672153732916044358640151850145833941949972251943566703017752437503146947705739520636699644206613398067621481970664645293898000422830250909264154875797646646239843625919451060892097261873995139775612007195896232290430813086039881667998387441646270608356673503825261141259333457033600496226544393761260119272495601432840152650369920983807543072653866767714133305337073542749909076424241220243943673598935597816903442875519108697636329376386622730167697516677377869194156895274520117941114252809006408325654639413649905241524066418190201538961514884793743828295447643104838431664310417679029061535089345340359066142418337075789384181674541500314855519664775396509358419341980092162223210722236728082895987816086396198781440485143047749820464808069362223301707631002647663880176062583248493185798712389925680138540038287611114801047586241370603726203581579756915185039343722176898112807993881244085968009208131805327794484136722029451149072833446926395473518775077757318852501906020606977501030190813803728245297051075964876620291887410681719196471626886167952162912404648914979674147723213106748335690520531148877138368227143168293974350190214920371571644613339552199625162218713474673361729463306303584256404230442526531063119053248742640543719076380674024957009707917966174503910240200970875184477899380736852160062074317904238847320897245538345633631941450904613973227191420821093735065788920468086874951016588900289028761221875523732172102927056707560853325930693932057485849433680005644478140860959861415149238828970796288887012472659860954218881083991624623604698409900286730624188690782067399502577413008865917845499142591030905193776663338916574792768903430894294569880059146482474783892354626443865137503295828723825787937379520517411539790086705668072617199892741371226277678306188852424840394886204581885317842044782268708012458342586647385058339230861894093394752983331182874943271979917426868843919428960748140182959827689999563813741381788270776755771609577336594505217359188466912300219439841127313128852863043450584168382634769273198716949451406060957700500973189615272527121317345331398652055029251159487313442856444465931390388362992528876592932332068291974791098888313699114054874042945671481517574977066228218798848233445331235905261253839289458744388585214927532650058027989510967111790687869248069421386580212154657912150301087641945380014644221835877484184299944191090738896646736473365288216936182311543618927925800138933884923104550757308791133938405035453704720534149009782106871529023395233955421274281188662524033119624681933012283725335027101415569680372759741028818167239213892583584154594401612538567019370651168800469071503050255769050103940758201092162395255891180925039503946026831572454598050084133990809394077143703180033273094062226452865854801085401551818714142431548373510793037650354361229295144097094846793247823941878376758113279834838046377850938525715294873906363441263654622978927172584964764511127909433408484843299036919635942416027514850820249954533174100078197318217513915360509896561928054955306117999815524782500299734443159644544153382373316374043653569739350697226798852208202645464883481739818753644633484102105500159612710843501011000378461834725256963681377320310474481130513016586510997732115457344899837700711449552391809398216777384972636398363350841281871766267531783745815052424090626926193653780052921100814317694587735622607373521213884158450060417312879950162345007622458754006408155302978578887164807024589794360387972898856198158256504093430687574213480550849900275796654403682747857777217032872104354380018520868862088066774169344704948156323498254639770002835410812806304328453995206312914867396610118154131171423124559591737767121328456615011682519110930157660509070253386339041188711340041023930627701622592632050245692398258451365204524629348903584715339476685291508154665538707814529937247692633638729227284419720329180761697618139609006181256618322479962577680318977419060085071922790539213683212470387636657081906001104843809076122587305230177422836228573761123280503342216922772876324792455454661062908059966060569463968969702792620606020486850426049236167072893207813152471798079869939271382280817020410415142294233625928515844766182201507227534566509843798722172488793833781529172031976979905494744368522413477275143661496110250994307313160323393456390240584730051626889517922025952033395897473837520463852328651779714668557759289183246213247020612764311880804014401492769967321366435201552705444254358975661063743393175768433725519103631734951743323828776766039252848937894403263757596567163192216571703720122358281842813030159843203761145350068700356389078859154916995266139559149340402613557175087571037648797923229327394499205368231264106831875798887525774186177771065734144052107267897543668645506969465539354386164362485366104781856076311308133315728672462358092510115934589610762434290400367348731280224416214492472871535883161371732399525892129170895700912998112276595846872283943762695764564856195361622764083611463996869005810506507756512799591891499057448206530043837458571432454284110971594195270028780651042958957575925606071610109905167531144164420770900925628013819224848400207556340964756814687507713193204652804401075644399853813997476680784032551247748452834704901489931249158981615394408320836759169641124858553391959617316011135168307688043269167425955601461582387449489048293523781989204311956789545562402012789579100737986901220840454957080059910311986375425859529220174489540585080786466601646661954182045466369020853203194126334377419004036829907277000983190851702246958651715359789922460789558904661744104366174306181462854920220029170644773665426707808696471365270306604700477570496712654016814827848819543368825174721274495756635665584926506859222680632641822159443666731825179943777627019937973987429135626755734631363350102594850389495479216068062906036647494143428166697142071602765094812241145083242611802512519348602398894192901639477956446918503412379396306653304527226414844530417607006265820129663126669598743144937070123007245979909416588258118490179078515036639904461089933598489584031266025311507640956737177503987280406570012105284296488061511427886685963104449053404425224697715417802485731717464926341620513987243958274252983861421155461001629305824139020511129482652181600543680393918790959665746578477579877250488441977954344382763778259985405206120411369625961219114050025032932317746425813874245424803466875930751287132145358140825946784827012744031715946186555036385858375661574191218161272642732676856998356172085597848712573122602002715522947047408368289165480906100848626000301655216797325145309748036979194806092195461472318486010295769770910250803311198730545703441087698784713521932696272610172683992337161077850355528314463615275823513046891842715928862435582505694154306600458914527852774233517653621535061882857900106386043505005705649812804947480739983363552611778424656065175823781336407843888663645514352486721223729750073978748140284496347783209287810012046636758308334625865388539636333484468489188261154375036506698541338264811155357500203662217020149107683619476199189254938467703393668197825063538579317571718867574638294022026418920943746136606174787949295969775053019837464182662678414580667010382534894707366589230169481289450407023982875794340361752457506604689147837238239452781476262610887979478953685219155572653693495754138252450232695777324976573042239705230853800793865334043094485281264354029381793705525659096505716725974126691150784627662075793384269822573168893787744688731170256894221257076892219428137041756848317568209032806482089524778769279710948944440692047639229109662910574843435293826557272961982137859963782123647925190922273331048304960302205813227717946888173980596198124236169186757834859069048770495016226071386294938982435438858527791786713613298191258036226441615572131239313943834591741437980757762191782238312846210647586365440967223481148574863650201566790901074466442596829854084434640671657573820555896629691347014768943098425666569763387006454645658057847987679480646786150939434476973601001291706553995191202045939284522359835232219212098279458764991410013770983185094891514672675171441176495235132738638701373263859183224444305379201336004723293928085192095067192777933382249801958131145931596630918257518833651723970709614253535058220350947676923718926166252466646492430845083657826978919698136653587300895604662816703881489797681627185048492303610031515076688929730436154012949161829184254627429116793844492374617791079944734896561677543364843237512240065787014731750023680731498980696272891066592538043313892921694154321465649641750809296844820856572123050756511432819757560565226228831850162048647938033211481117885398009601743946911921787690608322709395424290428566514612470132171842540686456483233578844618011221574491278371498166562990468830869241659488872462728060216278452320005642626396094335499224558155312955227715484339995817820698548241055527134378913281813183968026113177008854398148132626457020772962706945922792802229505939811081066503605404163399424993539876524203544530762844227034695766519624446717635198348532339469109018332330599455588219616569852615931761439015657213323378723496786448668585174236244961812011996228290155782125280784453997999867189960962518510970197012713885804928735634159118482674404888825331296148935236752480556690720382692324655306511230141992842355620153108804647911832344360108578890260974527253644731315526211585905665339020440474935630575722119153151650212108980105660371941019299310584506631994065526654611829540334891757835608360532653978214625141389276785328339408910271558623154037760753920955291914723337694114331496488758919894562408644044618543089946428516093409790939422088066718640544592332938068841025050268088288125328235398632284480808541585971253606689618775912087492292425966586304348015588084718184292197486134111660579212478866671527462543072044364451096531981354675959637506786208237516578015257950762750732152450905164062797186086257905261917565200747588000000390812153090110965646274573810865293256281019852355161813683707294420160628952962515343171769131872759158360153295697563060756311007539211194055538434451252321053887412431290194359997309179556709400457879663552549354751831593468665000840047675586188118803006109703275105437551717688054443817298799198673195660451234077386210392282749790619688934647029810296191798982343584492269367474717206165018837546848291485388588494793120538336473655092912445367397644374306212823263031143550781245619498977057021703461111972206152812764127692337024720642433323582592863675923581442870993914814054714983078767791068402723512259509687499165694157068282878985126561386256304320244479743765467524743716181614375271912712772049697906601052324948831819657057793244670296850589242199443533587800232301487750056391970536651483431349187685212272193408332661991483077973757524351847370110223778782827974018101741039326355463149772456203804716864133855039568602836002947320706090271425104144669743819342705095999361965075016723497431883574251884630175058477851347124129102149524598148913319557749630104585632465398039605210199037710780185086601919012459034695110297203910549102584252968650078441996971909826612460069630772122296665556548843428753736905277753118729342706232469098651137011241050203312046628513141182926978018981227847105989632988025918332007194607017619540614723687860664427209075777554642014373388642103653729656721408915594541481237111671765873403324458423873165720253967429709510657652310052005003468069348211807226372154719833350563276944340105498792324181487226153551586119077597327414672171160820605099576957607674158315985198314340646299297825434037230829085616265999410693197486308854318533202877165395246652391596183697988058720602138847575953667652828172227911443975084237263676262036105431949307377453785372035767105291969475826187880181683044094932250439171865448383492820764073491730807588626027253736229370309197520314995900947836018172582351160324100092698328748683645769353921287223998534993385826863615425164172359507703627933048101433886852717298089406114037837927742125848258550526185359675659816501003182181281764879893271036396705064535875551641381326213797263650501505053111172802903132309100486517529517248119158782705755181913703612003444594212229725848392552392422069873764681774557713527861113607214354234707641525226156942162574845503077058144778754736578360947605697869246260580674702498053243725134749338580697255932829976122019017087808642059852197580496824337432651929101144210732122717232440759470306882369926620234674683074258324732353403735436134883162550649086646236970358942999485264668992332813224538481885288309595302040322004525998672545188628536112239587608858574121063934219754593482940413229490056606504724179628815726514360365180252674117571984958789791716318496484967899838871805707297262165652056078155434068709365088597402481592334552738968731007850827046819982268860625803581193568049568720895111200190949167901259887993715404914413833878448617225957662188064201860405417784113378435853290265946179511627994363142442611509909060064175314378326418114060450592314766144793766269743395130188712217342122184530083125516904953365172694207804135721099457616782798285741689057532982779193278761905422851056273397267967346835434361019175888287373320375657590379584323096002688741965348647446262561587831225550789439868931810452651955025292549322016016736968153919183796643975083542054132227754384080104374066577407269029093801207970488218173487667620897843550816413436739960272329800386056303525093911722560797161421731188959778901306013985902898470569685220572580678017512938687231165588369386562969297750902836613253065752836585981615124570483223838066087868934807426482748383554426507887117713989349554908724112986714839753074426760773434062986489105563396730390973582156351468856627258304307902355628606701321144608205972302729401052403019618968765385571082321925780778470813064869034126029047304696149854020795098710461418469819303996893696595745843142474745813922709396491736493415455658404624233599064409724249104645805142648754992700626336722548492592829409870695023452915388640030017659787667768707524106689574436020742914584330860064955696713672783045590484706048849983854476736837137975599577460438399478539606708273645929459099296815430928388539595058142605597133987777631108392616820880181130218665288574502587042503952759342697653350373621781059176772305242099604593771262473397159566890906413082632446564086513282515751344943336924676138053796279205241346540979078349242973172486025824024596826550352183092024038517764854725304421709132970068879242997684109258997407500604249145435232998304093528003114297962948984496675188492926042628098361307751710044105260628176321680733914060309165126812602736913388276932240112484332417699925519583941143242692772123265239846142669121811380793216250921826509552716230752304498197114250089691101253064092641542420294346365102746197605538528472395883274053193470544192724512871608194296205660282831719234332381524868138257798989359946961003551987958130634340642342269941903623155701517624435275307925283267320334679467265847486621919032974077335318216304830320429350584367584551691102328734455596889984476851454962398575887119399292480744823203667448605348966993883026451116466371546901887351346272746529531680271325973636029208396984669658656266995207421296554272107487972040010546534896688974919951761033809486054288749725057959965836531916020256992446093402168889392887605867022843548011761868285832809548453763456977860792639264834141699906709104437834682056621512194421533640095913754055466994886180590976732784269546163260136212872626972522591741980910272217867211683463644837189914840733809656051139502512669269413920646786051511188108153582503485630569003599105773692562016493353465254493477012898219046056815463928414602843202845156333048115928494736778984398460904761556458994327575791649670457455945654622899973350318684342042151372705813203308057560986631008562702341036710263278195903299016832672617117362875391301186290191068335009629302093491584214814455087792694027056458138248365526443379423165103053425508582547574188025635561262636983629917728578141640826676125119144875058730492975704825152950796045946813232505181130078006448655732282153537030052474495970825347988473455993902720904870277596687905705560246150688007086443904069310081259685007976254727012975124176633167491571341463469900617612238334597396187127768849442614939671027907147148933467801145700744344777294442168580007329353009926495928199985454212172246453130146160071683123895240541559883126962946364383201552448594234716737453239088139018293699798037466587286193010183658773198126073830921473142584027145870573484675514006092535733803669016107247050261576404891462894941063515307574770994426513668007564411744550760558922991582603198152685292832830929331786114254842897015150100665573492209744946236514938695167284875430399055255610222542301598486626317646986227792114879535476232894084638428064214226759373560715265133806882559778582037500530418737467431292246795954816717126884150635687962935480857562530444535637973075069287128879912683815590831600184506897322991883256422146630185457274589963837429131841708944857358673438014133392894464158036168471934308851389584073014476375205248925188938811359150643179780874135326541371879263471259462461317481107615306256927831926222056728366033308954972899103630010754377080134034764114733966215885902279132694433504534459102519507332883336391394171559121893561922736852553907320702560395236118578612430891904305186159365108418258150026840346433243496139209373499127012054952416554877419624430740393235361125091059453235039896191250498841055677754236719509064787481501162948707970945306023953800570888968312334212416495830545931263881343821331970489963194373492280780783533225184167067307616269960967481292357142263333929346684085073390768779152867700491366028461868150803685153413802062229853316343823032651133684006726151952274048724789330415869155041193647409640974669156456569215759421035237565473755139719637454722906137550571357223313965634647060671577343328666682774841256032881961501001374912219738278693017181316464698874844158078873263814415701210392561847359825766036102768977327213768506823271080531595511540212629558336597580466890730070992721586439599135557655081464115319273633591680852783498394358189854068678080047346103366788847978995628951189923331683396550869850290854063658882747137098705833673101978484505373259074755290541844792020731581671510159721992637387286185004020400567377823981788346964294469314921661583238735424794344779074907434032424084290294881951868509771840583821608851828475152583600399405639636472179658804766573771447231802252074311151501127595445179672058257287607507961511344557584367732572529551224820274391051731955563302527652567013074269374206609679527901009807815981105235751165279013709431151980295860253798916831749390892635730429349331539664438399179571467910665183815790665039474649446084100455849556961441848424921546664718325397889821136448415975417466475865108084104582122512399689661654298077431606670234996633818248052054675662279047208499357342851499307383916470144355569115876797884280363294042220056049895568213077473479257213419549424759437720719904611466780099820874656985415416512700008049681570304719019993493808554611868476668103320808440495795636260042724378725101132207037769008172154874076996314817539265426886819730204466406569713026333021208058707837294297682669385128687085284524300431316940334451471625349738424988509198363765317957148388031572649079806622083814673714301603163324103537998295085648557254661531594008111348314301966974238428218984537877627458773340761688227205272403967946165817033697176457082741974252253397107334094381204140274419435842618494327804788682979943058150929916099686418453389542372692443226594053950696115200895572975282550830948538222566965918932281455938296810505416073695365155511399079543653035542210943591675231922209494248922274630497929408996416898677374563119724439356671890611490850142592937653962110294039330437763277966164649882436686342699412093687328430043441572692130816850416254883560785449757935456258310543023301232606282969922683411636452030704285958059214800357091550439925482701891982197618528664737772889237986635146590494208408819164457738203860557745385196440177287074109551856872750525889049224110343790004472613223313600727699029134890170600861696845672412334275974436313288196087082848298489571738547721132716898506422441570254573588515106648299672932066992089219194834503837669231463986255166597931891677888416901250414518652408253003048195191277647409764884595000996516368807438548190499002456689565944696026944847029688991940188552017842597384864819957113063962532907873967541514656925645226633544377814330575799059570591676357701757226620229744417227208851604848417588522872775985398060646305548990421884330471314875679043670841676502158377050139723206156308239454934517995464699894433042510977459043593489725228340493187774519809386582657907185279185208911742305916332132620933221700529729585351098063848607615585506806768896531989381916072680392611383861791856536081227498761342566469936221664603271262251866602312227236875307284993124142731819324764207548984078141321610965325268055195169273242663741292083927778983092762206784667968259241534912094468990161908785111999638481565254873571592021647004819223805113420675364673019647818000983833557167919581075520773712811383862581740248591689741621531893781327830553336721930441043778028921453988521896649726813159399945718750008093593928953012764234724455834098285283950533465231094727768985110073029133142640974168881842542332284409047577132274472819717018903775500305142209063076076985603870743538552308731131421152006000490748476343733024577906348265242048718736445161542343091287296177596773238938801254930348075267396906677415853179302513093714382071099856884330975978222751894564210820381703104780376506082131830804737782496601401710822469007223060828576189060677344102521528158278621800453853428360658684507556011746723911149492326237691240752867817559047152983133576546547242822028805825917113380920268638149462108759108194245572030091183184604290654622615868662794152142587602458524783093413801862394451013514140666381823262933539094512853134375529405175409668311256761332881806299988140747636674690211509142443803507894579340615076257521162777682477678115790431289771453031287283350492081393479835972911027064222680834768336084965451686354328278351966032269759848879642230602694677778649710612252570254247543143561248600535183442169701615683324963192593448192276799369120416019960902756481647675687880962223205234051554641799917335974773999199901195316716639728360431744954311184693981465846094401051161793666040022781750633617476095037115701590243514303449287676825016189432571542794240863672559134236214996966782878083395194242856527038871899613581132700979404168575776262424804611720141164385711021036590462660628474030222385568469109043434272848745505533037493928526536502452687831335190779995058746545473959389890984405079181748222268291789346713044926229671089408110333876336531094559605869012646923466820449510202218768770326465071371500415755843296548539074390698002963763520489325214675339080339081425076757013672799456286046873479646789224412135471877051130175341802982511190715457112915960445589095471159697591834873993463286005929083862933023535745862022639184956361681276310679583050618067607293049706278398846993652242068569086849933045917188697778257846159327497210662120716630774306108865950019578631407316251361172350801660026351045501284218069932738659838111856925984430492077702140448495703712680818000179377022327172583362366409315996159119528002993610874707531384250323979713343883293831232278237852260166049780658382487482850039113079380255086502304081107580964825745358077051226875523797279967664418408839406718707796731879831718586278883559362772420473782520195001787029053878290760905397705295478551915522280554128665830744038236214038766505215107123451655226531742217388273733827796848662971218410689986473381430067707859167271440810553591794819833330694842907159229104007903657911496879844215796123931635656239211850633448799442681968073378242377194688331545299411499778772845605690576687751234798387709838703778832175227716919736190830632683125648684371032613474589708094175199281931738948332443415671644392754819754538218910479132073357495924682104309889895730012708935584530984356562869077388181079262690736123456434439308053875318263116405123508997393401463636042925626691423108240470242719220762164226688564752312235300092235651928460331559004974095675586595308170236574856459495395936102086970228919485040942527453725157594168090065332775757151785925458405850159452414720666919326760280206772385138524827517948591875099497473933305155828268086619582629287839165423399603628325572580883236948638179670677409949216709414305732100957777541925521754919439983458166568189230883367135225546280727156706281224391009694730626086702703693203950673553903251596178735069434729250207889472172905446000600790109316961688054028624186809967145936180433990764851903798300785403628856118450792583185350802091118900621261391749444367917267426254581052276972698122971121019273528905205210606451665270886415237154100819163711682695639794148228081021278994666783400667205606264290202851324269324352985925589474003148478239004940966887497035262359745789190724564806423130142986997048871608260586978600265327027157145841410548530268798936983765555641546630363140823080602335074005838493614348853824353520608173814356470444658796078372804178356179656924678212062252134631442897759723203625605232469794493395008031507867867411299078867039209220856404986025892554536853267743649296627853020739095127183001088557333581795817596805664634234658724725708106311155327078035615342858677044033010228130510864751658030623741923846529062710010933256082027972038654576707441804914245833537985566313226498005472190916503437553852011715383863329852047007474722069465072785374062859456827841732513968626157630158428362105788750095414274788887208821462722130822107929508458228402118764532978701132247974283880902444250168012453531345964468084624751361859488857389262234286749236713221763292427840595650531956133012108325139118393467031788801319846390601484962677345224018192523275845359323122870631481030680379781391562468450840621858140678564596605496023245771937255804033049829574581078913890839770212928524527252595965608242533492299963897194757794821807485257261722995497807889650929550390976168428525342635295977385622963668926479698861571139610836236174322489143884204048467256698800466460700489464680884173751712449960112532003637281185651858374204958699189455845454688473059502179200763132213818255448673269646645896477367057097045584269289157292218460721032361532510973943992548459404762143943924070923849977072941131226782873050253898039856049402126011138073495788424555422267231142982789913396394256924322705026947737691666726023289719006279388217010740867897947238820164935748696490432893787220753877771869047792650108446995157117852476639182961881087869007076148952358984726705708931755554645715356609734101886817057135296477886966601097484395145066475574666340666412956843711374239418431560583256535095283565992951981395248304056586554192748382394781419721779698669453194607973868766749497455305464944192662086520328788460980426983403438909457297669195347908944989905941331886242746073482738117283673331082093036948673765269871565676622761592341411622330793688192641057417389811810013930420368245462024424718236346598331330037087682067559740110604940158000540186423500699441000313356638072956057782988167008113534772423587604772968392655677843245800654722829947154379458938252879448268859501962178011562306615368452356761137094967734129303042129013838780371068950952749657681110704466943174133993908928692548703566464189102257337282483805885205655267778246065959992772038392483129487472642747549571796264493523869568356273160851873122038957873338479264363364381997130338457935436243725440587975723150681522103852019367449690749617491154777846053305227915616550139707753128699462856101214416541837821015251726296730476265252812442857002656391277600717440050289215535293038945948764065111612648747834035790741034941583959793683464643862128019992401563859538762747846222556167935667237651477971814173116014941656700599243602140201168926062091400674057716713596586605276829586488955157408902391197342240910589525019185398928059467026821162533726344997564604431151054103426812736375297712162843604774383853101647940850309855625076054336037129600153434752403560393988255373351159657234457920634600492085196259932902682873884503007652346845579981344810758152758428033946532940347842721070269932968698878296891174142975163482915468807795120016256210391918905173689903568394963623499588472695531280034847353096077258148445895952401600033704746468795756557542960338894491194170009457747096883610215442552006520167208804580535872656639699077089432679430637903019088732701841819848149279899459348658478182161293915672709528033914498717799280647897458949947463272389621980157441937552487159074468672601315300297959297664721964942948432143877444615296819924128400182672023691173802811089895651475173139430568845358355386385588481019344759941199628011110612733619219572264948219313044139107884978248519975606382496396325881580097704420934807459568385793319573787562351185500571912969131450862211307172715878957650739956514763090647516277171114494671875402222011039022052000868999142534696383822637436801981423143716022794127818809809929768692765864376564075402367886186969017452619608356004612126691424992566949758608331141720500820224297801372276704760619467681795912284326363896932611562292351634114501914680708570000718787523046477535443811814282138576578900493995862366362825485711713845931258852497408162008138798717589351337467934119225199332846621364188107297439038617433486838433652437628509013832809904886992283140486934571615231105778921484699993338506027375459490298044694752981598753964242975790332563345359695681915703028238716680541036148345805500731294358311613118300455551428994427752570996392241012216435621448687070395259413427462289516606369481319963929506634884656224362048625918301338012230494238142235956334882550760915132012504230216758418891885086835635021771210372108116458780905504520399895046137661865671949436970077725488628826439648834248224916846548974146305666871282295379673969434776942393328134474107385419895544192745291919980146763372264329420725380432938398728554991068568503166054011344976194141923822102170060412129167998421925640017144158500910108717030283867280820351762842467691620440741367203380799109017307998342438688764198946454543115221229275659141050231500291151505340061011449997521182795467137700605097266537341726315765179942829522398207816400420695257946489932052553174251926803457239192055275841078641512488677640965333831061290375581097594382411505392805207179790660975274088700967469980953569391385327957672555237914082998191322814392332340185036373082098157013574030351916001099350174302095160463658373734703301503900681519859268071509834699113094804218991958871778860069137387621063779240942480866052713065112694256145308908338631602007896029946436973368756081338835887780421901144468078320122064970316401769027878268301917511015507045556664705281177867447977225052025180091704317382894836759368738031911619550136856954877680548991172496425426664020872827103679897925592219995267269052665735533238509821659893410748615404160522930416825534156660969605859758035991237592106065728574610976365881898350950354513283932973525258090400276959808059958298488547070280683368376654948292757349810563602950312088365847705507666723166033115349051418087446654762934236185493650627366504264581947642950231198718662388263476966725410665601683365756482015477595347564694821782532870842039555227006075450022733603062380780986910003023255909607353386097589474201880146228334320186337837365852964897359053669059937855025424289253582560768211360425021808337169544094007591529320546203232851229637934905416177020942464120256158374360890140304317536462091189229422776194042587658362759372363085901909776987438799705007474873238874242938354753500240982912852499358548510000295518755951914965234557927744703856860899423028143808623970633853874444673505998274756696222145492739611734938179798676935395154276383400377738551116137858569297495601435919803082530105993079992299349290553983434470152000851976211710595164864666774186664255100569801729251283515935701571075967795701250779060854991798147480072801059622479383005501819624762973422899977250382405060994810361919976189481508395462795176570418176574345121594257851962129342441225454249293203595275611402369396570253854332829572859853827672501602589869410982626654389951635838349669549472215216918993052451090381997648429096776449320323438117550429325006186051795877104236943452120899455410611918585123510453322886018407808898524941543848001549132743730758727633113138673756173589733573248466826971137119318910312931794023843153288150830162731066459104063063680716870927383714010209041510067931806306962727545747856971973108027381662389894156257373754583621384627781078879073613835216468815442094307476953282369107606214022905049340649422289926326360460925309169420641837590635183917859924438650383697340823940299134983501998276681467249635011616608203517898409827607507428613127729545367241080298218023841929378642472192382101656387468404397154620735284017206839053400438590564591074814088087809042865182680233905473684789593459289466239589688558894644319898991372799074345829491014200957600879527823688022961511889876866305606161175557898778359403240451509995468331100359408542828176220091238903318951022230171269600779896089236131031587396334727852080503892653768746905055139963260101012184801880445701184382104979357554111087316547988580629793203833811139181463747100684660066353904863815599251258242995179258700067296281347670060172741398965696583811500874992632889367387046391210684988688675509748431383347602395183355271075918792604373054249595626431165957107698643611133991467646622294447401175743730470442073552950151293134317991514730101590099433904928947502742040506978361921381039051845798964157694866858825707237291930684274821033583538953990568001938417751727643632575150583625691092167034879938940531288098746057590991908186090881229136587732995997521462902292650532302511547740647933374538232552264948902110113601180509458599181156709285203631796434035551883406954206116003631198717012536809562913454384704806459841717563481576614138269016175538252303400851308606116039578259300186457444798588609407956745054943113828344340224428964318138175713375623528358280533319317516673805973225217537638360804427490415841744177859379180419975893898854657947263089904857237687994676336133346008095282979395206922089894048345407317164100254357593052193548856984330324028364098046923712886820990855503830492170050085579959329924306974402722993861574480068711076249337971672674507583944491276354458376190358038889197869832966820030629253829342697656742500331700380620162732123163834713819170418697292246955308194594164950010312351883305965554055655508424625220243858630665650580802792460477427047381892320494168103058368219847793249110933114576220809565099392716924295135495904107190110672323927856202724341975313579269519634028749483124113620389637587879626626069246918669995741608280154122767873472555895044566071255457167578618437357392915666874442651499449011551268282081013309199547058394091421954936053539239693885204457279266511485538282575998083677925377675097571350362947286970068715039062900101635192319123737085349163066579796710786832431999670411073360056597183042109647347268475738188469431011050930885327976885414177668861045165536815673120255880414624249028438402300469391120171203085597639341818534465511164474797314731901708159490133219724576410126020728051920604034930353356484070563359571473724948095103619252218339566114242290780947940026579735641385970832990698093807828774907744763347600572829721037072473474104115855074050604803256307794543765873316513766214841945121355852828979285202067499526522335063951364866998214376606031334004881832503167618525456389506552577233571517551839231155797392441987088691019495992751124111458900953636510862269674458542272679286126906200157932132127801025550929489396061171179093032903503788497729293004358427572476284894570881325381038046080984983671524391242711814519251317329748691826945295460684613685873786007754052849320431371290502681200473311405437315383782660479167946242440807687244160270132362544791146120592244504279172342135928998042559013915665744046050899527386132166296522444274664975824850252787957732474255625668892255702309418979075840398015504284153598239257805257866940596482719172684606995434324441611018772322434229159262484684337785086152799066978910791950400828203059756701832377145326920498596996478240302064797706263266501455535761071968965451550459043163346874397079309323508811690566653053128043277780918191555922506843349410326455057484397499509356998331038932358950107175778726466245865663952527509652346595306726517903817168795071450452715895191074093346677575673816841260081505587734395024198340683042507824322062048954375911650073940235809917114938525218717289635687740293436014783953850321457533507700226532364728740574332611605220281309972100493826954584070595381141309869990145402879143635565024775403749975833153564208065927988839199812496644193574721170239947547151660986461069166598860408219898708580340704962928890043132696926748449262910199063196789441432298456482359503357052726799496885557567355111304139653589026192626255304357238327954457061864824507181215437985606664273526270605917187873781559557592998483075542545263521002924609183397219845616334445087434514683762369841129011796222273321861445487007090191366464049461973273446621343725743957467220596759040888768922762060841522313262423852438402823364336972805582580086821823534775740321715043587515884250293013197511095364363581552410426766304490882987457210993523843862610222310764018152746469007372116226653495396216126296761708883616828908406492903457619154806306436687139681724547645648874292973791715773001116284364971451894175414898575524551016169934817687246021283181214485993589705825348789449220154197712060761119960935133418371731257226789055011700931978787535119254174488694474643311922327253434063740761607751726202773119463908681605848559211862623351955085655258861021607693928279689745096309581756884087399048871389884784960327636449723175766518931023450633405774067725472013416462175256595640799726453705161606492010761037980892824920498406087439474891419112130094593429384232322020525486276942202797652978921774546044098603815267799705084112734988605377747895758195330476162046223952424474839805858607251123465080654722988967087637538663586359524690655035874513348799136309815958011711264029379146605991730880200319206566777267253875567308299848429543426372929693488805605016526544786867325344551409897772143784218510720806589207482754138142756780139732899018018354280317048765438613120904160271552675703605079971701482128923259028715656721348366176606884397086745734993527978997041049375373178907482897316037158840110464005764614759769117740443795539842355130892387939417611290902092994031578331862647019541184244047992693900366901195999230773648296084371768984869852750233179632170880468905398006090249429552314383005101452536959163921593182816416651725035818628353461206845117470800724156900757993670639132690244503085411593187079279177431838322673781281205202587913354013167168808430936526700019558917283100608729488639155437119215789540568509422197167619475963955360115817440054130659956123999876387489145155256598279517548763312051271974148754305427423309286138905401441109018364483068890028422078857109532446056965777881858266479875232302385618345312033634331445710723601294354173365838804482403701796097455235907678896701908603731095011358441537537006093851563592075946824899383258053526865555538506483755060354602447013473220891655660535433825032157405749745532671716185446350545406070465925980376500983806927085223609191810775508858927357247526058787906681111358697314689321880702140273866200575925230912824120541580188156092657315618725477543109495715835844300972348615786913758022704754274760687454265267907455746436518796552230461738974738369515991283480210288031230005786998406482448938344426146748881896001239506516438170988877514586603908489012308263046615775043381520796020159856309191998506971519042960824650922162759775024563365323368440252719543030927277513906784704643760417343835340860928792172611309347431746855946866130851624724873328398526839355354471409888510871068519860584733084013582962877393533998893451392622998176920537480844315266241366895134765940652695905475219357158374229711289887447048476213390963806281415708810663270259436402797930171492918171553677107752881564996304759566655825143957859457776233919129149217239695784501300332803735698660839061902970136134660951727288610862383809972250434605968089846678575771509875044573848447935981106524927603499003786953326494544016259308021811156002575104947072577606096480872290288096264969340481350317135039599248926563840449494830681066146671179904741600674245279351302939648225497709074193302915350793674146323174608827465990774545447329356866863009700788748741508257166403953597439802180799255695456264165468668683093831649550528646484850533162620382831163168461537331500484849684213501534631241854304718444609375941644341018890764171921280478914410279516013271985797567137610910242732897941097626729522949981730913446542163756485977291320639958052255633672335606522456821304896104895319776985506406813849298865154415453542910508242332312573209457255208492946302861221748527178759737971244148551776154723930572969317552894603075216135170497782988835951830953096072538367971068297710247504169204271853619462733223618931676656859696738622239374108543782324384978510630530476374722959865869743915311371135191096507927825155985145521159209905027492878444384698960004335790737496507796954540666412319145849576370865120318348744177116765620811934152657647164582043261418311983911638911448286583911551668425110576689374326142270757965135206672071932197173304403543883593772446835142829688311895595635923089841523210314870214622048331059127630496350966312702306527978614753152441291253185304026878525340985095727708387360142674905582575114768413335652906893146630514643602081497612870630437853683974213198551428806760170111706766438959123641514412954237710138694134948614610176646709470716946105250865799601847411791327161974381200707173883019369018647652880047645732612085356534472610038008482311875755639621798152165961355049649868128284680587565658706836828131484316656847016952238918309014469965961027954158146815648188203636595248207994600425862570414104451904614113533830067375792552722646051549469404395485456647534423827647487030089485878848263044686426750900131871253693653187336873877518362080391646364005768612912725187268089045287251964368042156601411141104800019358591919046755721248214693465581651599128911600242099142745204766951217363208106082824663854003079653535606832853932042380625719428263025210886055649375189006749558937191423778444148959512350070046890253693410669975457130337480789172979586062601350432246831464243540997352028116869438239176774155296191656777462381325190902466223264996300999143063904143535409714318205198992520983593515427827104965789216082863940120786367944299660312786746315548400199966776407198774481768095753102268279202645773335653231657440739439463018933122931188472487762728808966440538965862385157158696545216907261138705522420178660144112739314243818579878903365085517533930231450964780135241205204315047834875420866883171532733600070902447079519183231451902953948345489771124862611563937703129318441692098089729121684395534585039574354548584695286736308474893247835441018106941823535645014839936692133632106852567751708974049333358911863991161458830157366638203015885397551371274357849887400136464916654841099565669042009265169817199175035333554060913004398128380010262699606536791571407137635459101488384330136208610064250483752082395921093588075278273608481753493675157619312631970326926496441681028509424830638160645457107137271195831581213444188773270955285919117304352102469630813060718089470249821144088716688950912406658312712766263482352146032254708119206278014641225234568043435878721376097354558111897700055053120612908760946260418406416961861981902264899685697934272756538693926726595917237665726612085465762813951929085923743515602488870006144879790177995140950638583642986293512689734749367601139193000336179477126653317668216117452148304409960625748654550893129190712861051514382258453590114506994642931068260469236398943783139945445590575718867185396666141977789179581722608798379108354849649071458750228591357537226394545568520123499238478011431236565352725441800708413623873173763824605275277462369149079041431784437013448674704243107763942221291143157352008964523623863137304481735134368298580934199144163583836020435794202970349469316939670081356169946342973040771236611440423410319987491106087367486395824127807056956778744728789328359020211046966322801946950097681297777110156017682527671139800470721065050783785319246292855726920795525459258534335632496550118839199734555180460397463946300246682160369062602918358492932408055606704264888706478963819260600916518010796281892103531351607878768121567439591595456114502770264952507466282773778196967573418671596813893625143301789471384850085131152344836892725693879796120762939377700973279391127660957147920076021764220366347407443610268359992033674969119296916695498944123484293763156590614124582568086487194916977167275993961472147579845889522347021764946986027899760114314882668345188384332825216169706662277066884003640234421399473291367720382863398540749504334129562585294420100518769205350612981478058834877421540349854902175357748680968772430175427213864737045972522872623735337573352032383152356826955922282926774929931687849049397875892831439826887706109244961755884818870985764798022495091855333782062722196944874030525981501060935339237190507946073925575850708484928054401123143966042396925788094062655786345903932773478247591185074629840126217811008535310736974433021324324090817860154014616496023277834942117619135801794430789891605060365145956653005888606529166147794827771126011237911988322152800177068411861814008327584560001305782546714449149924853598237900853604573821579030488529952232611077077571467992028606305720709798995860045678207078523418204059856677327823196120382228611488079367604946204292411469773783868135604206180557011118346822267174524872412077850181020336280727933273728329265431067476572020373256627746851015228638216321750768892508911065047215386329643513854767052988087804170652065027071089169188728456224658874294614919337550481021231316037284346556448826356566382694261826532306682548555643083431573501525704039925136428746848794905609451423912149316124293589883727864913032261193612736316650534029592421812843040339052000618604748100863372164528180293240208454921020864710017958856847564373826786622811687544687745259018628387040384405916054495244309950297612090822890774014271802732988428466151933182972476572701103689598771958871089131142546725099240347203402463488932947393772224269140897148125680139748271022464889980950039537558033135216662285259957815396986379358699248768652599463031576203545776017724414317192828549416908510841497641809853374364004217739898190167676259468390019716611426054351068726211938900210706991773373111722959074469904573870917177341848912820402113529009487543421672756357137361457170357928385392677606399827110191296170205254665633248824209464654179835869565555832657664681414131529515744682363929409403450467144927330826045799197406228681374421745894047734403162860872311195348999584612590683625366218293804970268556765680944908896597014952565355887225678130211935779522373016317430263068262282653200693302417966104790445110184520110357653102206936957520942305233937435682821261067512634544432394851590045267216059473932941297247250160207918081746669608132536537631296890460830389835745658266198003405216634034232170800071598117528591582554468924211834871323611719364853473216515085995990863334726775721951638705734134799790674891344407327480187338696508688288736435561122528943017332018294450738313812470059186146074015398883113368383663925211175383329105322151877094938665494024440100675579792007227352602183782499687805908494583196961015459933366063025569575370732516628294454544672371897366426182309726282628029000063590048086559221774562906991112555944948815859169043254260072664138409930665546247301537435848896510422776453105209064540299382840457819395488516613060707318414609057809494627210913087633076889767562349994809373022012093044180763072851206922487762163446621709559640471054221823423643618553498343503381029399141558452970734077356589569974093681742704496059664056028128608460034332414397692960300495622241113430726020362027817998217890532228689008163875156814159519238999663752247470840874165891872792163368086200807874239633721788765840863289641813958754983330524196316071631477766351595485839861125987616785736469067491907181794666815038466155622715352436801084026656325847591926208981778292714956214223189414463369366207445379132142442887024923274921375097062016095768264483007484702186017198035967620684491961397497848344182206998304763865854135323385034819373078779389784077057120622452981993534526272477702617487641409225855332220484945627243041525900411271654734335851609892009770172743208726746403620047644864420587707420998949216884101041640853292945000008714744548299217617060226985145817809767488862228803883397669139657228120322708638517979016694453150241288883396976559002621381540544847017011328147947589495246041871176438753153754147227857203627546330972201649170104273354755519909295517510992575101695639167857847718062346064422246049517747610512486726101413703121926068445941761650300290650071394639607370978486534733385627381633094502032237829398069152029895495582249000278023357043486210869410521348012057346194626877142991237929773062640666439527075704046552561926033051935122083007370986190093638027251362177012620091082776922246908290913754669050393952092353372842446321246298060975733613013982783323932156602175222262509494735722114503946606003559565190708839711129096276245877988954699060689585888117737445402607252952683276599929815513010769043838109494342948872285812334822389315484576877686549131742088334015349904479344948852282726590773406762997990726566052663870523217229002205179201286235775928223825895569219514861957673854879127042429482476732255276587222395338712299764509079463204225966204619313909354923240655265745294805500296448782454082038517533792167822445791420720580505031280240588283570667569582923226673942482070316340883860565585399173432358993635962819877634673117662787592790457198857372606861272299858533344710325707111283672100497533683944795694621112195814178712311348881123725887708910047253819338477215695262692800855809024424205125316939735401600859959086385527471191053572358165739340073174224210618281351842266021069189769204322843199328437852103350368826382396359408015187706228103147129952545578561977416553434844859368440177948550694480490483740509429766322312792865173476867832823270078385856188869876929944660147712899013963207618463540761087704321933199537235023341648557200539608777543627197489551818623724064850149805295081473553049015484238316315374153570337117712871630824869517607487833151784058195613490171103341747177112037101910286938741192417360435268097957472844126390094151900540986961105886083916238285188758036470101099554007920037376044134217822086730266991406382941364471114006464824549072941013235718558588312472436810542041921183248183554814352966760906335676619754685016663953035671503615750770615489007180050555134892748797692791827522952890117103500876527695688516380385919680805809609318440422979528233842494889844911433543331280644962768291478988607952986977599827947288819862727075959208585276894779003337189876233560278993007379445147534675222946041449109493682365245198613017635893599426658487942941768902354854842374927246167201623019803146006558407046671475087207040914642784136157489765415446036051550021625000740636569430997422622817449285222669480314249839525953272297476876680603285877850352524368223733440291921349229650743290215635806261062107592945048939247432153657705984978365655835002301207782121999398903602509991162759892578096754941196143671084251165560952657355976745097601834069444468917030831663088645706507361573876921054268953521131624435204209620372380856485900307873617353919320277287679438167685195105566826754849189901208639319903262195440770377661099217023420377675698940486374901559043038336102409599374794540741227898060924274862985522049072007198025150057418098000458340026760854479753192469166350242149050996639377856167699977908381616556331564703896089564467941554500484016086859837012012703953277115233183937085509335999779286496225280244028467825643549485091281628674621182391198997941594937234037545246449249910222604277286458385521345812035104648941247048395650496451947253363986860386638984846343705412067611730816476329729692980260332913163445687882976950747170822988452602165969629423433370024056269661210265331456998424409849783254701734960271237545546528879303803298791737612574205648592293102482035471847754906897551507014843948565142200188869860821975384820400794287743302286574981445412631616692186086459977487695099470998694532798477119724419795356688763572442559153323088053514767543385026015386163941907694153874614600608154022374634122698490900454486673274792154334265494242140757304355904709043137520569370171988472912786005550860769838556921554585582763371650285075748415024600839001775057910801230530617588050017970749471145630553960928679606903333845105432049354690470817053852136506890479430411089356464283902581987527302246420125914907060037149700963980940935348804048053761801533812213772615505012619610395484297670329306759870403336107307990282943299139629845041776706103829833881603554580198193861464081375873267664820218039511186511510667421166962180924795281993787818482308135062275599367239316150078895792566028604769792474759947794077403531135055070099335641034197088186033693189235033414864862047115134118648532014788344419280277207168513296713881310464214839022368357502179602968166794593527939540745740536835005033719163377115110101711170632001196674692783067114806239097452022988919903849984333362198277495475879384952517469853725609330875900205030337145028779346313980254081871399122973433333250593340344906732357103102782637253453735825455492569642871673278045594657709257518937950062854091200945055408445863574400978184787033519867794410928330700807245553389825977339485968451671137104760948528826471850166481245634331084109958874767008343234284604970607471284016250345562121288447974429794476343682273144301097333282997636339048972471149997648083384421150463307839914718566565080076136000182903148656180316146478708675483813641902973672520461620664245276350635114641387071838454549915295651863503002482780603558498541047202776720172493219562616850433853514624385301701876727847850020948296902037681505430626878329390001150102677868708504718521550834907537097324401553869828718639358754144985443317729946804792633724100524672045951219100871155157885309778084275621434281050892808780558291016340521975653997022876462485988772531766912425299324470021341941035909943547892225875542529567910821566767693957182704895578892978161818024848329316667288593967671463654842431851274006432430601811475683262870717696611208181653516865891765453735330829566496505977963999821329551639133042162954430788146927580603971423840843528773324001469651346729521318710021790607584790232200993767636473468523417357232668038822018813806033081858101229239586041462531986611492016959926219931552181111034355006688247386506825006801726250218455867690858412557042089623647985931246828954935514485772185776466824897452370335471751157149282593744301797612927628492716922705670734510733418387146992890785101915317747188865381150608762667996579438668564200155254612220308517282587702373025450400787956866666902680998048209425532460865518822533718270994026902019089164936651508641539112717551672166200397685918714281956004030442970509812315352199758011825395383363914521887428728893366631382575943844108455252637456252834072040551605864476240908438715566231326759751272395071682362097042183021817965901648266581231350517765532247163125979451619619915907266424726641885055213559781891099792756262153861408955210581151740039165896679126618400602689079651990989322230559854224699172158034093629922285989886957913591708153088411251208316168377544808031100893924052972983812527175064945196529550352235721638322237442587552072391881666052803738032043981014439896352830630059680977615853989731810057044742166151005425284376362612386228990851123895145080170792838936676564803762932192930742243425129773334055722093413379704629545202518234055861439909567482094496957722678617900487959735924909472452547714736304706052945076929986982427922852381016848425224796726023009382916877047521647901045425336858727026745952355609009193414052719989145212502375840453070694722037258270635004713315920176162997781160045083991634447778767758469698121499620046076904051125332955223884873278010304143697646927736969889781486328581872138149459842040826730649914265227999309848262585477280251971076392899386517173630090748738991025028168772368671103395769937548301088834630263507356476746347969666100307591722210890186643302826663426278173218870463154405122717427891256317193369732987930083604697208904471975809284747629113645570817128031270291516378441117371983460831739159140314988393114871569594032282587872522177702396801701575799236547652929256345677711183928465786216473235266317090150474817026901232194333132866190822943667354786627917178045224399173493394541215805137284236778675692038353756781281164702367650666259082352410634827866841070937425124298866136318170743933283264215065417206397114850719155522428566928313377510394914980410387781114110901418067677610177299008804065272921194756686020539389081583515583964599696127916891082264267585622438742466466281435110455067518017930692810899294833198953725558751439210217259620047675783296798857541562394633736807114140238200373977433815083424370134021388411094967287637110656359245518666893264484491575701138571154536837490387822050379374591404971566433125838733296011100632670601568952270942545239923463501797906404685813398173515397121163484685329787290763011923321267999476315939888203005896459983561741674237759666155142127232685685353893774782110756584827103734296236533552273944208946794152471582072384375251590707354633614053469271185631060815049849887635645325890622646728822845519310698281916407639248088473107249837697586137032265860818594759774215438164855944503152322903084193419186943815952056753398604368096567095203006376136131944317154559262251521768320374358756580037318836695446374025852449232455712739476017707231378941078730872338338148372873629030751391449134970926812562035406214109300815940198653013745179178221508731238193674655859610422708813586694065807036502631593757304918858039327472534935059885849004472995065674081396766027266916197019044620024576054474013366749428751318059623947497151030073250659591965254233432277405223119040572958456637431856477655155029455748321558949035436524169041606087107508666082612355438389012520583876318810551652972779083328943825361334701810581334715296898793335994558028495388164317060663581831947027406980567131654380471024983940468985468389797843852508224707634358414012483561647060886778271084138826721950458466081731137199749322466611290362015964141309014005420449271526197865968730854949290498080198521991568212687354711122076099453343734536770408579814302629830456737999083265258031258032682537992394265761591264761394627828224243315954120539407073740956980384193307547829171467499517201439330855840948912260342994348150753246356910699972980219043156718929433428330597304284743334373388672345992106256081533203105721753168883085491237442683742176003564219245808248231683211630776313991453739283872784558632209511310720315198039659111797886416192314265140728757193194043455842729193091440292710656131016646307527066020230590031539827312870615211281692233126253912627449070932925193651654720395912706119532899206783176401135372224477089711250570635801489961732283520536314021513917938840561956329787547948044606543625480861494781582346118511785326502118632098320010288511761168770998080356545830934853383947147970220088788621306228415285668152039149097714457562351791132513457344845763991718497751707427779232223621645072735040906124903729120896588727999735579816890380606868296978873394194837873794661643762558483901963386086356663995751397960947577494403725494334532417335606813849556043390098568817735249289287595239827699480068823248277218068821666001767085363997183792918295348352459210505866607552478593455593714495970572672947687895939142467125648642912986679776796226919411154605782204475026631189497735536727541494997709781813073894041901194826547252586534792114827930810160899440648046911949830028564467843866604120592054639991249936937132620573405261827166279575345984965907931099932455681349494675143894539620418855326446006032737918804862727400794063611474732131413963632135964545924402170885382322822897830869358254857257529126319521175054822103771416274933752073023765971051216489787128307391157385968545524478042163613771574063687613922243187775625656742383397122070501780460824861575549196266383071648246898250882228697864248480618444702741041489343253021570952546661819383131095724499741206196723670797442052020945963294034512108342446034648434786056478362890928934783506620853196577059518375865487629107664965351514700883180859603755090943055780040485700887591040920143908115540047735153434588625166018754885973055096290477111552287118160145219051944337137393900639256890753770375796055238581716124621175915488301569954549731849004985890044481175214705060994854348220442641480449686948978976186389511881963640243099803957641871220286165467724771903610103525913178239397877211663043911323743356911935219974918563468680912755703970594867433476389943846781403163005458966374475030589210228668357389766433057129723555946830740212539999043074869273141509175500215537456344237550097745595149354641681779892278107169327711769634230039169845953992133508908434615696760779321497550565317452836833832274852917468862298135279447759608437857564568180271025966130532076793477786789829100933665822865971853716450273067304736037637130047217296676986257351844487499504437584899642731834587108107892919589996499086293766249701498958721876203232286029457721183935661408575818969630777902531909849245884863774442922779085477936505724278365296103297990399668092234189713760353128263999834556767746047957667073319354953470359304223550861350853470373538299375415626435989277820292699332420714023377249919092002393618546880756948697097678880063549274988212445170315906474064343982476262238792793804947287007169369139271200746382537804608728015585558158688172360907685464185399371527905736016120268863291936679080964635575661013002354100925093452514635535123729610659975225744255442683079038075818961281763293741007313278832738826279995367040207832357952136017283981072933118726158730584925061061042938249972594430633981982450317840837972634723302804114604555097761014842572375913515234789433613820078773588125059575899980300367433152631349009050404528786663747764590244918830384938937304116051967833770270492377100574235374863476562693247689540769380914181365652974491055223854376988260509255040003694450952612517414490183022248064255813339718280554849523420979541687978162515821870721094275766357188722767166138414237677872438579813391158055711787105946563394289710836530569860635464588116251356486985733251151738411821691391665401486384393532162517460411060077556483185871128598493266392302774324941317660865192792727428374516424372035367007668447988260936615568191774756841537907519185727112813482534302968917734211342265492796295030888315513946529708309972727427859185398949904449071285422373214705805756209700006731854594365929344943641993812241309923879439749908884142578419132364841109358287549307996061831200039562084062515550625883259738537759466493197053194070558570660169170423988937401983936988272360773173592106157115619889960718365883531234312124924664481740445089356645876094631236012610151208843350361023926763503777218262964475246175680156650838853455604350290740705945006222620236244168464602656514941324238195805023902236972810211889831690289502074467944757310582650024569545683584930153781055526358421347541016334917846564281936889943404201133238696138015624603409538999743784613733466555309446022582131937759045297086972256375654690685331673633649754223339723357886142878262302436294083371964101718901638413971247767336072248586978684187772874522805605301990838045047554008667407863752764629796546978428557636088690233103009477015883407601828884809070846551459270286680926208390222571327408140941850900034798012129113770828178803736363281740353939531403105074610298025776710236531884378369506690435096037405506835112913979649403917596247699211794687304627453032350649709931886489620944110854000766693974423689423057679171475793057327649429501066629200021383214075795350283968496572318989416981059180467873035082852812110191300200889727844511712119931179322685503757741605664798633159557476439627309888622360117774075382156335663931908042877731975024640940842558747979234651380015301748518799021178478242820401653915333651704664678860158755051341906803966055788703905779699724933986722143606876940135285900368362617412566578088135682812500155629717106845972448687306917656118046347889519427223333485565670658497136295446771048216956707685768065215267226058784592577834871221505327646711248853453961584374683077106092645223402685830197349870275857201775097048295161431825187873740723526219313378850057175174054057524779471656058724214887324994598885318130961495564190854676112457936727128230405552451113609575190625324220695178636451422304377095300397025747439285853977600536527042133472905211812284569547519234416811003643882571566376356380727265641726935239925022759543025766616479651874668991205757938155857444605000852438311595353548610417996396237740346651303154523979140436297009220406221935039584972229279767997012333248472497759824840436324496171011561229573160394813187356952265661571832964302139510785706202430277988180566549836713771461137314487972419583795070432908358419765671689496739469358389035911678450730589126536109798988898279750783166291377332828708048173626628526018336920047847932279264034353676377761392928965222470128505657537396099098324117642035392917506301987446745599956413122894560351201155477483932294286331175708084256200007977028299885456613456232388813130719633368413257890548788350746900474876023309858930695816184463900133929980315559791741021182311518830110827128962507752564839705304580898082037807820115132624637751384861120043336644041666392082237723075843078820961203472229449162843836707806541465281177628268071589292738327530640513123255212846587545908580243743067927328412152756747854505083929909532007307867637430734672249985157041426279767892166848721714942853830500995897469460899745786654827812621509383416708023392013540730400570594841633695263707368579526716564297983101666213556280357025028346638321851882088226041047206775043696182003456477914695384759990221397499889932171239179005419555829944956547046288781294389998389828925188886779159932946303852916818450318577121095081255416039808502962249533632263791857747768792033839343288987077034017629412112606438823327343502321591408861836683808846055807926752152187234260472432652445350367389803196773391251861079771208337007663866476615948797794128042932944794379798560406797092083278673100324847875211730885032344954524385666140508084564658234664102214313144499327749781430875356555884302284499346771016560193878324853850891685299661898357125411376360107126733563392343571409154905770203729221627311898196704895273062881837863721742091903691545637571670661713048507942067538426833282930580269774593881784507599794988488831586168928651579037074746424402226824697706032925657970964588430509629985186375495862316305114974564160949468680188116872355830922192917087380415003019286929117966192842143476381247143879363236720403825386720092389290774301610894227649240853666062579243210699288720904374435107464325316574326557721630379021952728471097690964831585087293387508400895099698724045721917308230437230071764719640163705852275427591093856011532000990998818831895145886848291531079056876760054701923671549150851914628370888355738355501034061277323838699275418032776629201694680721374479761047019413163341800559577849089761359197851985403584360753101963164435020001111629252861478760535490724035924040878943970323873641568808848275250626290729900660104240290986416021218133864796584674795128698988309519441109393073817647574919895067760456301925943634909318019142010658754656279321068015309727371747045152056417871074631429214949150948447652424659949888242081074466137971118147767324690740628883844822663963186439450222064402698819071127545124397275586905050843860219439912869184163161460912472739243625738691695577628950412167626642238182050590322209892545351823258063663090447448926619529718144148690559688247961795093257243346028921995240939676653169273112993703941976188162287886923294188791259307918055339643976656356109095359578932022642030699495315415502498267755604959557521488855560158858769598172956320672253342021059580195867124883092308929473358406742466741203701238350515687002375346041811155856495604727013215545953443871827364651867842669539627523176127160407144954283175555548704265076636352076005439969795967090428105385641476922874872390391652912967006885904835001493262320236561010399501563767386210758137237194976597204861392959712401615468911364540890574177331942219714107847116041104647775479708014535581867855523050462667960493466248756238494556503220174486006051453036533374756451416883347245250966505088488772372090656530795533489702261118395068950326188801061815786759604193339019042664087139962535291745456446476104854242693925614803649840419834412831749356077735901694789955515354872421107487126437712738066162414006057627810977550956758826930049060779976084577730440265529898313994478553899008031724311846346775604491184689065370407045644438824772934681740680498751396708141750702522987164996981540784065001045837371094477491634959522521322567670584775395211405349434547089465643807487736611378498855555024066677006079818155926890984130511211314292812152838694092996790437107446859633948469842062144628603744435398079801752245721167370315839715407932354918538617055951149752426581563832297864263623738914482628942211343936854193959747571055858723183450918954384624352657544230033352443774430244267825835696518202172860201061110690908859285939139866145519175767606065974158489643331136014240621628034237093191758289826154738057145768217941709377839498115639998888839085177364192115547269521168641009734344342267077486630174844411443879771103912487799362328615100409724955349073162368135627965425750565013269120834293625077327095180656406552628099410561692651448061100595862999381930379556778609819072149918384997339877380454894717925205350522703716741617774355630391384264340370393873327894416213558571581358553509364377742455312290079248239348565092389736487121533777733270163858872059725117384635246198712792123596652442563529440113466649052585171642519784214780097292062784498014642210972643856504404026383899342269799328980943024951051339073787244705633434843941507994421568662155285724405068464702007224713822517664937678553765134529735659459164871811067993882447279139991485427471881911321298771423485048182945871165552230595144191921110344639795905264798239237565351903688683493210050977717331538400346042713234313907931281137709255619182815190305095775798478009130301924899674073903177680554900862193566223707201980296089892330505880169226233455454533749348430863933178903336381838438402469744838996843106880344511229068203307052136351149350123441006784252128149477037416861117367827440488441688715295186940321775127078751801765131196064292145313515521196420057348811835019118493856158794509158784702018913575219356743753629268829517104641296333710706818383128402645525538675686105799015581936569699405243321041340361058090106443937588042585643409350747675568121447579461950496060578547467525371498800198968220053867579679620215752699002946786102936710694831113530689262359639550855014315921621885154855585151048461046328499468357776292076509148517723381836987873893303071002334903437172810657946081139314981328630482768614913625726405603253523312872086558876007318107707936241778053891102862449067797278561511032254261374230765242708205213153495656729428218314964147178491618739037338764982305495683752691047647026091310442878416661439679066957273684085878102589231891316019202890957717142340962805935044449892608154261478170996812468298394693116750295905669315093637440981819619327780635796975781350462805716631916516839775847609145900400135664667131886607190651453137640465039793576271031581160797445621888250129691602737668930123565394103614888588547055117265135374160927212563065203704107804737870065939718652423638369947278566954652821361249675952767161693034667260006948769182424233323644454026642826388352043591830741073656351741990054088351397265684858397308131836012199326946794875329983457014843086846586942169813110790667836911208132618159560019258514299833966559854057228582547623629237112601991050638045732259161061017758728694305726153367383550746424984324650250316265526405381632073220777328205578827937518784139871435944994360871251357551100760927838458593585243548519191932261890448163601923656834078486590931913003894744386950508572438922749778146389624933233207652660371497308765255261647272387122787757896169822647136127177850523518649631884466476657142425189906434868703283434183064543532054561807260756486340845837333415074346613496226891142438631148275989922200416466500838417008025067798626166732304563869012198266852910792720394153420674341839443736800038564211013715157911610770066571890117421589606392568462532946253794848849225432446676573220190596134124784545071418033688326047149240827513498340684719889042304041687527165734912416219372160502791923345798425581160271908350501674838636020143264184311455963785974179889168189166670457556593774754444093250912497633525736979990948985442771532960925282701054739373993036295344892088619232573203657114669090843997453223273411452137411262445234499019454664645846409311166190150132494000168659747271927035377690608248483096770752165229135967953942670626500396890452379651532310300912717322370647732337176761205067199005642504583134538091020292261982330365229693329569788930094909120704239501464648590203792949249741169495778185474150139389559209886077882855516233218468461440927954837943410845822557473523178672524289857211132075501700994536647905642146507270691135873584468149519753033183618418565100025536229984823257911552364091442334976002626544227252254485421240005749408155988713647568790517865849077473349390479811747493925065632852630336110862080031708372780898129460156799758899889354944004612069997786800042571080810519015333274154898203890502810166430702912546802660480020934839508082135737769441995407569778546206483697918560383925716897360677069621741912216394585696620389630693075321313870290474243982491477218093200351337189970408376991901001437799761766098579076892801111794014043624695836495185149023995540043897747952877491501767082737864829969955822167737230283511109997711017545569168230425294717260396074431583315562140004457438941199519230851128278826365808844305138545393945913131440826761584718656963583730915010087091299814802686379204789739198876050005176418974967005299339419586385270424760807739256953278448613455282593552024953824940592292800943170228869475692639422546350097302370692505281833145711724782892284782179939685444314507653448828947598082964557008360131194326885878114689647104051356559214673387086437994738535140098772282022410848065885533178436777916750556462137859477430859586385297446192371843661647501179896093961069701594629056594684794835860456205217218982999780769869442653006024629132586958879210053997824903862173667918169088879927862983847432223938897905231703324941216650653938313852919415782069735468835975032165823788671176353661890418613839760558477254189036167536222170565428086878165178225535837348497268427450977875384793664211914851766257769017005478683034245245337225901224636665593828975892782584093171817385621896534596300477051642750409408022045683050496266342697804033348841411721536364315413481299959246893267641137164968533256768119580321486709863404798516560584808247828179902240692196772552165663056226696848123499399341701141800288637722291136716571786028207041871760731422876082003422567523107888845064503646896971794662751290713263886010336575788342260634085773228889833405512684272523352892254264698695030303703463048511011302427887100526029950396381180658481911617970413109375264159736379970772759588209010675092623140544089193621773674416047301209630929294768726868491784483459702780141866034082648824749824446899766967243569245976685955056042954142497319933444915274399687898786888413041762393955538370296293775511821594023720662946515681492415497901248515502787835039107656997467529682507015549829439716975202142125621394503373752722489244251428082494990332105941445342835882660087491204667943974225258818048975297127362630141591468284175424728567050971445499668479284647301932033518907177910276302581114289132318811801443402700355970418462197401926592341300251628681696935869147470943491578394980535805989304506906381322274864635600525916045058132499649385615266180076828951988230959063468245571690414453870311317972534233598834586867511949636473504861698453291260063414245238006972025688950301438412958505704229519625012280243985074488744437978273405489833050116526786233039861809462823965881059361335579153860022957719395265421631756086584679400037623314042324030587297461705307848049059344179191765576624587559253441681610564516479197368544209226424240115571797217275508839979506544721537629448132469056152788800199319642120269921502474380144537380722841363356570438367853466024187835334209245363128984640309994629268329381990496275394564734885496149941479887270166634614952941757085926163350604288597169200859724337982470092435970603343938193243511259219049307695330012378051215694723174933844443439093844460633262655304950160235832156105251628518653656978248875562271530268497323766129632054420757820299750917349082877454100231775773676580374381059839567312443688043606446661710130383735486974618093825410520237349696949195007445316034278666276568351667344418953103980992713808658487706905034702378971262048715874493141855653610370920149075015282574872481629032493077696220962400765456452913309493523602859396252549170394906921191715242066596041477294526825382687046965571135662658374337271268359095951435340997486680662967224674082219933023733221494806869036775011087002942580663909103275785002736857973791607879656505383198413696798462683833437335098809832930053044369388249302790552229880389140499821840802507199356097251385809243150967225522554932344085908071520380595335704176877009781837668420896718101807541149917905706615077447038584324745681309336982503584525490195645383659051844477015789923901670286624408787893322038999668047809736721417784611140475875880948512799533598527979082338218173880729848679280708998719484621633271547011248640920719662330686206765886440234177288980625729947490198011713621847033915126620313284949848642340840606782560431447880373171529816570717922629054320270750210553975347496362408738765526483230040592314801884858364194706543129978099384054173052645931828457499676723633610377746817802747576888945137220402715238162405729214379097513005369081600332263821666569081641708913316911795364303996743293300115105352701541026583081299538651722491483391804087864521381260210979006644731518598087761145967308984491339229150855828553731888772797266924290578648908947432529539736059071962660439618757793047601271456722437934792986086958645441793994207699239298323653013940429602199949580308379878191212889722740590745200957323729755327052557742401932252775320202914426311505055265129559401211775293390834971697343999187452959096493444500281885098513520046437925337530732909566150454722985913194278810156606400900772318912198518711582219248796601643221146971761165683182184725762308345149862345964167820408392410724194412699201145857479399948527272012291012898944028805425863730333776582942292105247460527706199973443099037010105163659745600583237376548156294448709271836551396699863287298295819838958305534563405809536538647068514978185901497463478771871256815072968621406603321054738621959570676752417997920415059382302832601428543050459805795061982539509439024541011764721579773624062601569624059243473820491600969731843529368671556295205285282405910068899017670059314811093294980909547125359656493490791112153578616520931514671248506133138161428653232263042625553849074104824716031555574934155708492902231798738792346068065461406144920333727254253836018755390704739409441845626388168711098658256388923410164624030419203008351079063063026843137966332767908239119108417393852801727781591039740947665906224029440038663484989199805484383536012305768612034392686467428996722577874890338387880846372619069246921783572506456651779971640186812204314303597982490711907293402857672694695112821623901002505487647884854422354190683812577386380209549833289591062157439356262493858437474682615456887000496475474824651609601802889912272539065525112634155412165641797963306545001902224324631375890539432978985811569766084095215205277105626028023974297169096393393440982566278220083623255835030221421718696704100651467019690405773273450617132620952688224775380648788163283706625318669965243853058511942673536791073325600150020254592241096680874705722792755229068237871761949130718832309247635698200420473743409746822389357257223345636718576684726193914710862198832367453877364338410515955825283292441228293869008672257975378592069194565884017125066489991286431466507074059243441644419926643866014153433755742471915297580859975830644200356628917535576144317996282736503420808656700913150954082203267245567889543055357878918897677556397558292329014871278535567547794701934151205272561526827740323292472536774549903134438940608392148867806829201682943719678348683725195044656962179533006906052988100649687137635044604865265161783424648738198866505239019429615674160592650213657321126900758489603949427287905150387762566918682055720584387869351895231341887869811755459208389042351249427317119302242591536082473074234471708476203662013696752113656507517275945962153526413699263292227525604582868593478972306967842759162341168919130603816826287994324280635219548370082306799179653004464281776478570918869610944730013847923084053157512690616614056851955616938386700807798968177721471295607001216249160786770178059491680115594061583038489612152259520084867251206012428088975329525467897618888211025100482980793139410726530288708774303684073049206145454154458090380916294169394386746186649892142950123986412586444686759825940575124727970965814720419428810234875743359585097895178654374486294644525362119486644380420191115004356873384982647975981577575332206184353817275590698687623855462671919344721881212943365343400428860737571509866719802505550838006661401954897086468681069707550274082352039396266992042527556325272720424992314208749585440644118483526927709998455218346111947478856047837136824632869032953129660636514901785209588930278281091120482945081538390071861083792481614535724746545941597135812954181586710192555570538668279732368471769348385503304637876915553087184755301502402208254072304341323556188197168283863050388705415135780396060233428259440471947891917414374688826678564520723027466894977905098666652510433149453688655617822130510684505233392425217206441224321090333294874779156386347911240681579586795462977476350979121666499246378794943541700724290496644929207959373967613215116540497226958477991472482740740073937091178414840853137138765693484591764342182679163987997604743298349091741694296122066281539805119419019785928021463435438671551716378176823599363540306117753173733495357867387794156807717710974005843501877395516934435470702868364896122667492362995413570817467675893370207077904998068061738880218672285054965964229796055789147540839012746690781405098968999084455788375892923371013575120101841258039922617616813061434447664661783518398747671061999284864680746348477652697916096980733871046913929620258598664074117570245956997360077774166417533481545294918877778524316928752697624715588974909387083311921019144163265315455865609210568322993146739139435433324725801975035016104591875948945540735250931178401046762988523571433955787386068084773626308719019367952164076857556774266598147336817688694331713520075542379868571462268461464742508513984337825880613827533188711902388612260716061163432375016051571504777150756271886965887806213925139257887882299534950668033777926749337398465880323131265689564750331375865200954612473375700224512189322698613349787653528110817225659810671725914983501882508848164679792458828787925512473785113050587969413517504985227341607112219080171811683549236871126937385088571096569584667045876662620916083588685499206069130681166947684845668829810198865695614574456330891175580461160076999643417706858644107651831514357783132675257120176087400849500046286271858089170937948109060095776513710455388324012298216087612258006128610131211226169788015341765164348826110411464529031309773315390804897875363353188636388352453418255812033459983291240203672384413378499405571424498300875222617115465834681544900302471945329511030842731294071589143330853031573405253596052561066862623380553348606302541950545997748171203747473573678790792792872026860831180294711281695365370096131453328110744890446096531860312304694899183677491020808838465044362508502558735030605050046483972931074689124978417064111374140750274076675034544771194183371605657317122194727248524460350899732777129327320396847798278811346823366239646745399940662964062386407430947438480318568295860771249363989816368439893626643097084880560422240147447122650238129029798908102482616995819413844637956506790908765041024839948649951946767781721111951390009764341309894670287500197525633689598384522267512603339133106524126785127504536973730043757425841055522280736080360032720427594406907691860851066130688656575000586346575879655119920509998141250545868592907725596315812472975015832443001363709161631435815139543554657058719287731299275939915404577436635499223400241427316524888067655688008472309411066016439213824085531869671495496001222989513983405398697924103981762979684696628494280267969036387738672812074075290099408988490461263369193207098681136702513394803343141506523578735996627426595680722396349753312401702425925873012963752302896125181555246032262015445438054456225263421613756722206606506285131896865115441325278899298795364641760921086127190076730996198066773354517262381130179160836876677393428914997178929333445075008270472309228907070636815284737749758284372497855659668023517467226429203533345150238723449017673048568021324771682907475518659435651343530179267488981737238998776059898306065323054062231605577563414113769575279653686675038157592485996452337832818313190292905043601306465098921606491491736504591319855979058670291634351870746981406105311529680904441017716808153435887348338039638966477579529526128825588563225586468030305948299039049675295796152871000997461605621576966083936996672260507904166530632128687261001315587769669646204698279522599585514791961953959579307338614661915877302213240278430505102981898751251124030503216673145554278852062152598167685798500263991894333831631843500466717665763975274182725013571616482680056619453109854709354982029527357219916663002797114140199230914458728239732994761152436743967948866239987118767063386387577013855911703419238925831050049414619862447755614468545640741547823265588071213795220859047114129391603083353781066581422416769381853362575621051307347382479823158291314584744852644599624072331439507833504094213344343968231318192781859363431586820277772511781291196704019441309026565571474597277793492384378490831257169560296278962512658377944318730600415987502843518492441968370270106908292442079649277204696966573293532835471277564769898460606934118572617785574650856215110073742526137124604590123765406882571696492037540703554885487564608649500231402806270861642906814451090896167719520187152454070676968419942541039285372261093802749033632978538581866186117538762010015890139765069104957704916290224772798507581228172330408919775972596838320419489941803825336776231674261781540868156063803797165580906181641680938938724781717504890566000056714011125127852888706093985807656871964563310806753432492114247464773135002995879992124132792269423322676974123382576621352715211557142650347944653131382236076834561699014892472059644288706172160548724470753423346542206142034182795139017842865008531682760100891280912422484063410761133910552212400227790227601740743419203054448512078984171945112748255266934925634303843703549988284778262991469594398609958304874389107147228185311720362731951681251576024185391333135716700385843079040671043264060654175333754417381441712353804991397126529701952463874542660016535654477014255160691381985434273870224645362057674148907226720783227274531834939077083315985670239762792908228738592673633063558432706344412544913457800627058107311761150842020173131500618867613082843042708997168297024343649560611611197206995432161070655012799264888498092341302723759023358504284016685965240342404095351818833295308969730050451982606088743783457257641853403360446033064450896484049675684373061140960314609499213399092039888524649701581983183927341068123366527957047042156724660214801828974432614090996345444337378635267986562910782811930769728403430772119474782064597534029153477964798511424524576535712678560345276820780846948397640582088623467643488633792138969983970068627861208766367861117417436446894790449093482859098118630356799453713399829255664232213488959038080564658713011921331810401970995227502480121922222930448563532013557445218363240149115253696641959563156921727031699220671543237457345541291628984916525507730500560360735569288785996056559274469751888085750293213027339243077170172944542743490060404445333231202242218264059730136244185159734869277399827966215411980536079818836077835904197191374404844238313624708317724275536150390818921602282546123849950540528152824690811931611153122876429339956704542231853485083862117576329031785737797858814298766403525564470600196554659097111216232061209464878473931765866152140266732049485437984567764426750633875948957916004276084306291869443155223044708757310764433613163013243249690029664860409199542586720428000061524694659176864872456168654803421663510552337313010393633829187638497507229804142179808584549911684368290045803895413947706348803480690828729665692839485024620811834123456397905819829624710158608399185423615413290118806563726038448357147508861546619859564955355867591713305599483606834747199954880365833616392211777362820494893828753411236308293446499743904170126724985438560178088757080763614307679988397100318410634166911597145404453023488470652664888124312082597261920548908328059228091552358374544110936244582019259241764190400907324590794558408774384815229669708127551609331293735552099969063505031216182467405310256886260969500578284972703909775069834168436915262498456262597272419026431236452734120980309908581539220626424028362298625129016651343941343339535210050160362890576411543030203992871701431195866820111737874871332538924414889001545519726235144407049920472588793366179509116399327408543345209795797419607619301889776462957027327121398832696945028979639567911625363596442104332683766147614429764001698434471780990534564966728832993744186270685546909079926805821363269765159335041730499262142380113233236489686454572340106413552744159987718307975497802830852800830781698465687130176206725356130339946423268073694760478781054698905296990883906778781118583296998670714954896899973998962716779612811572086797860147622898717433716981968548337855202927463372576271115402996380050790735090569574532707091653382823724975902849608479849667234244242261722520203489422904384374163729264628826729310546755454338818352757578813914164667046072209353087832989654911915449250804004070532291613359782620285062607273699639810288406319159867363654208837058134120963914557879161116480314670910922771155273931982490267748714433985175740680977778607361770042955682272465467359303344511768309751131528567892970399840312571894999259819042423115366488791823108854066880678525618374812596429000455768229483524154521124415706840675237496207953546523989097515044126421717184362218302735240055202222795590969199019959528350541711739885710556373915204761125210337329403519889738278288177401874451143006875272567181466425656836673715601032628747819792791195743802265209289933071308912543770289192415492726574038765497368533451160334812442711808648826174783731176544271524597643451865859700589932552676684419636042275507000958743397022671588660359886247386987373998973745959001754287985698581418119302395148498102589393883907115725474668463276552132144190190335446268049999370602622169862992597303196983396056795388047785411591848285701447232168146615400321951701354544687634661319109948598920627383869247736818915550402019653424264989102105362785525610696909794562990634520108213936287481367106240476100639387777115424196139999798210732456888779086978483892129229432130705880486600306906896918095608331202839393630598531902180134891659735296767640771798001145017270982428444016208542501624428127699098169573987688265404252328706996929344679378472422746164607108078793941482396732735586038294666118568401794807538714022782994144246580843476630540766547555451507016429275810935451038193883891234055191603262605677682114915298879742741226548974398422218000172138546133840067747575896810309145708057561097307399485822708544050598870237211199224624222174505754270313976028039541725988903209497548041610211087337074195010976563511549420198729576356242529130341119350346726118139982298430324325391885983043108096846260230202877633109827764119915536289434603135001508266427637262293189379252513825863574139197945691547563716980914572790040708275221717176972458404424015491683536376961276140267091534669876159024756653072118255700710023500836316254310346924720003157732308772873480392703489621736749807741021499047513621668686968136572202185459392306295718044716160575219021872340330021404986994278363555753612602203996144213964296089995208877760135278224407340193570815423597909435052546361013584791035548318347660698331490131547555474585087415390786282587327949763153352170814245613775559392412685986874686474220761370437246349748055808651406359237155565730233802846938752222828495806268642616850460382554601012680131120727281065124328721631256358201915034688446090270786256417229305957591192647452574104133288524961004731584425775430323387567121185287145118371476942666427552867669847447216158253136708864235359365192185427440336178352397068946322033226883058070673127623218365676758787737004550291919380392694483292641722097850857513059256811272452986592771647310536913723715069992512905457138601898777959502067419571410728930928487336296480507976612086006926675804018448623449973234539602249417076307406322635323832574001547700214626605188798187922047029359284852604171082358617466730500138321410736919115501671089082799528668527126803343579762960898122482079543641855105140252371321611491635594799760233854858992141159953982120814781846125663019761897038822732010491771348888785525080251867913051296006593823030473905417287304747218213614219750698526357315407830048841744414166514054813683483237054948149074622617802113886541985100767060778797889363297929604934652457827971386009802730761693967571283140636320230131929643874793033436545366732462884735097306413705624095610024301521064036954890156108840289833896406602505744813378691052889235226832037889749078361607281043072608559856314036418141799127515563184760939228220090274527288921559058995075009379788988216010520068730090208703265624363587566448178060080964174765723682330839354967860419681745330029579138299263732273918348961095317432229768517884786224789529216657256288753945677486471543265265734836092029880825115908085209524400647744321715712392407717580950814949436690750085169881265815452574491124648670428476573924463128961153522187743375978564998548343183323272724034588390012576463168014445949660482882916138639600871442278493616053742072575533362134015368311759137113703817832979315467364166709728163091403282931936983922290022152497703464119641130956272884365814443547236931369909023500832548970846177889146550372726155738672651230857082506458572350371921601731692526571915016043518218739601444484919578156578438437108326162021508367751725993560942310641121457092638408896232453934952853668134911732287738021845287466590818532815100304182410777115524310847508197523133907650626502183667359491383562111017078924227832488411879679800259697327751954296649021147067839461290211956588261543593408051502649997523102735357281711158053698116342223543844342485271161315398305566207849102965621521464496301697847581127717402674029429951250674960529026098188876239130707420856739562441313891919660823784223967938792738115928423004856387936830314896883258629812266699737192908912474670342133870507743307526303209819574892884222942631669752617304030448194839453505545189742658814718821089591400792234996373812174220978427775203746750537268248250649176625607254617672519918604155281042582051053479586098226021977530963297592158398672563780362058238440216053239072141869675893314528697517658315261769611221881401146958949564369848331227317859138406179777736208515552822753500418519725594001765698894309894990280249108397549904232363543883319214510044394424855403135203779253110419201379596071218164306313083983260104054517964111760730795364797325700296707148816298722319436602040256977919236708014344842343546606758557014363927309460538562332823574585682394847748832613000201911851766448777503151851503237136133854522791311710819168202891643494242590532665365354654646279081862478946833705320987080441437592326701711591704018269809729410169235796528409184135385998142680969984757317765738608103216382060917051129578247930830502540311044956025752394694687222859282434744037177433025300856749147186317894625351709800094983941430127997902242330694413492962311191244884094743079913016595110508321378619158810816930562021881183959507781605692759672365642015011063252204132435279184261022507885487527505804790064997615490202063871052253399274108230397162154752866217328090222638987256155352233928335939901572365214520429645344329066736185097750519823597804665770654539051246185418640818139054882806136417890605100531418529413282318552428559989966782490412158404207363364098421043004673214880664040153363720938399075886270060187002794159614767897587063426797183372843475180913105350807774109555133196271840327703031365505240886849951578165078511250649009778580431116496268630664760777925145212664434424284083747782000318559145103583022257473369696823035892633708959945929048484976201641843710387725538538547317972189433673734107496843551209903513879912586119427040418512499736860837215692757189185174595406871263559152877673724681773738795346812643488946013570037537768414315949482091978923893641122326968412332351311928400745516610723755305504033120664791096489544257938843789991542472447567313618759681025302248657230794718185831352435211065277965771352609760171986549569530754617128856299480816661027842144351993405450584361404437368707407974797311842695003795377616880300197977628739908688250496412188303278254559166292156128255526084299187723994093126423752178082796179226388356478948267738779769160143361941751645717940052780577721635797443900268787544025121911888164278326349341830882052883015059569165988009775500559676753096754952852359357379431839293748210986211802652604004877833891034611784017865221145620529357535152947950104486487732898247036936268283979784770648035639876321561295708037460468558083763764487291176978631286157585463703539730206600345074357026694083553071070934831105643628494743635918474691253331893079809847317363041176380778679598561491328567817861711591967407417135398312402060722561224041899932978091109101772777912961158186535905823642411243827791665187373897029797600797503447559971956895386901622469989389179813021313153406349602131393053091478671362052870933380357501986866076769740358210874177663693497254567716414098875216257793346030655043845885109106110245983186730763717672429252229492005196945474249655527680688477975504906522888771929944352625703056053169099566883240578586544900507062058619111796240800490705176253702733430881396698692795742513013290808147868015011951834651918530340759950765107410831149165721873250037703356629488800257885805177637814896440900651831866300423303997441577360799679533403553514328572316362473863242308970378997582752137246010151181291033657671076345835982785222000592797548167614971470982136353318476336618344695741253793108961047446853051113345766205473721493410205226036332689295551524961181993614358079500019955907975889239932385770138324639489104033890671468584803494749708182154401720439126993805743176050823615801141730822302540760191644272220017943093146418049108185832125429706176232989098552359995586430345473032010155519768530284888914675458329399970872342018732037033569173838853238982440063865279468372589622938347233561205599136013792271115687980868223016524373959749417387887122529065874297752680504262842474702199639358004687563506236536073948742137880216208752532720934509824125372839974343475034219241046862876712367384695727103898063963025006522856398059271762887033067142551327626338093777193210787636544641508576112852835666930683292511658513287997382675663347789936146902508645593789516652536399897329106534870025301064857815817866257122857738389993477228569500043111800967807248702626329667240259564314254462647420949090945678044972948832660682949989470608248505285152512173169872668547380575808707316460277365428582531337865526228880509605352147155126596757986580629917386084971690912847217456487049723943115862891455033311253482599008423998917390929694921979240640508700204954765759882240986925562613542533350030120341241547431384171201165680769624290204612240829951196676147867495287692298873664934562556612338730278380393483288001481056567168689768885986632205741563291659813506445798273674336044834332680083286806616573951706925362801364493314302153060597858665189087214737607173495753313535677151505436806393264617788589279380737733240445824703727563950204352401448939531324907494822336046704057125129297160893952610797269334772397394962380232551882333700462315625726413648565691951931605495015416376252489043427995415440713480116263781696304327431545207683274723299087236730838712186028979173925583386260761771657924515871127921727289755261933325431309764958424720196292077273525791438223735299872060521038104171315124060151905651758757602392065913926853836961181066602520428088600843468893311162567015734680469344183135761911514554898316401973708347281982575752463635589003905899178821196991619386431475424093077178335234326089007445941471659467836520912085450715124958602976265652563364070190751194529862748972832925548210506094843557606262108414345181606730205794164813629532788824130527502887136520534407787118345648964447285920803854357762408697344788389649843581016482214967825702353305636016446505887201336266480214469475951246544879069477928398406998671120836384085896559337907976671965743103770102582752419832950081579727882385340564662979243079462361285097607202216703912092751023800602948746347131085052312924995336665720206542404425790598735157258502534654615106707534922534852297201742391532110336210944807897328911664360478198552120543979328784848448377790751025347156143303738219033071275129624277015526475728079758270983381413860797936132103065073365893724483532471306624563269117227407689761428938989445493371783741474023852067659462389207384379131275544474063674085520794473238787086861496569953518635243132019563774322738450053273747511948871653739745107210355095445107022385767925051885045594839562914367397012611899752615537796798426243171613249100538107559238077377888962851127215468673016994228399943075782669955589851620798178871010344325551795991078692224380267115121664865750690426270897515585597309541241142398926240657008364172522126669153076962717021148691631274354220731863427556048745144107300791032306901520664389014642229960950969861739925083669399812821762267700986611238429261182057059480431433544958580462642046965724876399910714237166644762284105107818360521556706625093604250062039937464948057971240163343142023090906549876587896526240880821079599820530528070007252899378222488583225659753966205357211586083848196685187119474812665999249229488923341166660088285367538421972581642641527287993269985590868274688536416089960467152848593022626701478896798240661332035752239481159085241646106523202532585819939395493977823428642789161840519353720368793899152410005127317263538090569218171849387602752917012257421748396981330499096955701631098171665432376667817292668485422278462996018679272753063055718561145480060416195087402313832719048482214742969306506856791887667948754396097866834568749052552707509934598764511305788382907134678048348072255137877381778155968680817360370973736119236654121939653574654203766735347513390254039597372439314057421174092829784148804658477457964226435817830170361728242174838361089370056131454440507462913326705568675211917970682217785267479316359680857899280874087941096665744356096370644196728424406874355891316672987865292843714495423432820834128849958332850408458197278638246047571970557199928715746569942278572929418409719972738054444438989118242262847812497760878112846525107991620197895618259910269612790924867187498692630861164835871699970020413318825846305261790176475334420477057241610289318774052328803816381447349474687692422700601269455385903871767909555564631975374496270339587892929015640949323026026023444101888727754019543880452851782282582013149781989591953875933562501997439379862788007863102980036944071471475998466556773326603517172113439399070263299418438192009934558262651210113219947016732291950110343039028033079074278695314006314335859141800042914817738822335404769494486273967439571214080669386446463975673280404693309759355844394885545821303231426800941079168948308962448762045519845993129135707601947566083787739834708355493293947180569277361482696648578168251768835588223719339566194673035230198479194909978189580082670282834961018327294270416393209865894048178123561510178687179118682620067248846460725025713781041135289884977599683329815724976536639053281547801097240591805360439788868719607416909718591251426965132772515888128363417166801450964172357821930286622124096759424363996725357107231673720245275811575084890888179720059868151835686010297905733683168533614152727533343713147637782172544563428636087519602051696923203224355025871753212196531260444440823965640705703862208357289326108024410435143591169640743785944944785543138081804248256561820899251675817311928584543606977346995945699825331409995307131458372542360430363198993999425966889535639477646510898361332184052155922105469680724084656690606060063154214794900215184749646503649895837282295748456379262058693419556363347053236044007397542129338111135448618076218050604523969752367369231314464527953479491984448812492628636301634297789347505858296340998558124326645137771077713224537694895624094940284631748723037862315001650392822867467503686920850385498159464647490689402867359935947991040200617070639348308078999599307361542760230925750858023124991957095037054057449669498785223917024730170009562489644412963637587935197742176574901012523904600099024259633737393718181632703726779859565409408107827123050277694606367415815663842037568287487141946414253157137139490678359598222416974960127805349470742839081351503139181503035565665556137964401715615760079192215188865904799177661909914464415678012996650256754192371715947878130971352381024497142586291344669752465754427306459803555851188145914437884469392665776708559410480093326111237493685283367680958457948245890454540684185521800978508940190367971354262591780959922459910730759918797586257075908262691832356451522444169425755620607607605789973869281779282071199550916524220259395578062772248699476504431892158012431768695099164465844626504965183942826583448226553852350462949147579413223321840761065983391734023387788556046528143061711211965451145592232205648867691694137597164593426661124514400709484430270648937032612084549723589233737959389212507956320921059030228743891594396900324520522239981283799137506957866464734627827809144453624362597102906592404116401389694640508671070943326197942478733005537103114367346875573641017567211109389630297036263854005526538394207045547396392779675449097929305497046204671696580214024351850104043069324768063118621756298118861599184839749754604862979402628579934392234638282090078044878123515450075789558639272638259961037625462941771663786179225376075755951736277781896741879295993345051489580599130724016398917167622096940278727414767193636924012454962595772735276490815134071609801440606625336367952958877632804753299554267457371037623897544169462215145645832132097179983547642412406252719215616280134064967253614037541605885171313872018487687161404736768297973403953135908207923467866399773616242229922448235036123844470399315010339359172022338919918413051657590203281612373014710695814521930218404735584297533826147034156511782125530810511709990597357458470834504062632539017425191615576146819574319999663179654065244956399399222891986938216999990041832088206670492399259418104176418335999308155329858765863305781229072377995813643080467880502360460864940145579064415574686684622380451646168339092945145344697501477335892375502089375871788739183185770972185879462237707821624608252308790558570008027818624756431255213043669015969892085946840314034639778740344012486984521901015490959111542490256945514998085581916149502192426741198849466655258767070937054582145388825008452574377448408589820801898174226546012714296265718064890261574898010623734202121898451124105235393183033252052295672149498642917331828561232382559451277108050257276347287646562680626633652656944994177323919813247926660621751815578282420459281895811590741830329751840780011834152119413134244659231784099455854657448706439255048951922678032266863766508310348088352114516148915806752562151348864434958621873394448278537031956463876716915066421307605731961028024573747310888214901840689760863035335627431170976862606651110970689658002318666768880565445548267745081046231841839090665901395841040033080444821311703504002393637945779913579387693177556007061959065608153137937173178523815577596307677255809521180186941965180783681680583745136879288519572912032632102062402124672745496237949327741246523130405509508404698728460067193138661882079365872171328390929890727181638841514379157399321464700248424260554278274536136212939368668059833598162015939816774098525290926795036928707413241760219967372357915553844516887393517156919456722963202717185872967612093438888072330154832932017698809782144778638603368938891221429934650899373826575005639088462544998952951594230349380562147626117967905195713756048035391010075229658733532063937951789825570605775598149841666096021190831885863702215429778681350479068700016464382102576505395087270125654109978290139282372930995242671852843790297476305056041970690893000111932030867038336822015429243572928006222779009217237038233812291407693322855321009025923460519109971881201789489529398296145106758044377329802634360430235213640594646497143957004088958564096518656410954229291295115182740609869485929238088614346005294967547845361826575645544556634787155225903777173224968146659701911478077039203689385318063763050842981408732422960453226300295635389835470586612562861768738545803602723125358827781431602077413587500216633614523494268595007923642271766729707382761978500997469740414815766947819709248936848889406850381114458633549460455812477462534833060629423514523990667313123735138049292909755451690160794052510168548132954022754052131969497483888378598467871986195403815277598162906962756194157362423756377120861662527784562306830135026093960817014215149467598410180936464606311448075248068900342441276310262333580642660783237919836068675297416369588327707531729416960080935043604398142346572030248551210152856768062656793699189531766808049312888960042140168242123141614512009134790377958900167376370303410290670187263083209274740756742474769552364839030938926863309234801407207551378587943823320302096128541227338034379620676604594521376880942765099009520851698604042195245702841200906088038665461653542954649875494730548629821691518087935852191338721366699004110023153915379440326207763905536820124382949469839312137982740518002112831864610603940292609436833300701496586313005074976248085726082920050500944534786946266131735582803453770002856661191724651602839454831449669778913416139106557677048774399820376589323726910547640188235099316119598640065595860945986062689396584445395586317832068646567494976418196273183907288630942354128006751669630899386317058285809402184753726098841127214941369774548580156380394304942046855408867893971681256894492787540354645373848187954410725430763309644015819207833000149588524381633991121600582380486048054887401346663390475710784965306856451950670329582767841633589884790896967436551261184732759845339529229757151191048973747338583160130680149487338292981690565938635717147727046430488877983389315999483829681717196743898258494699194757262393096431127095047604827816853992525539105457704918408997526634970041950242392965014345594309030809121288778754645751353233971665353682129737430970585408902788013902736664571842649163816397869317402589217882424769259804174652188377355382323104290128567398314434941987542417904747614154659673836994702523545306798361257466682383590346445514608161550715473274508287962931130408335215529266250828984820905168468335741971759029796853551426148171013884325109482056285300484974128333808644628516544287630497766919284215249442277322178722394258316946078341985032776124935841330477245055866482680224018532994324500419799274547089496776379926065761735991227587819548279575507002583495820729492540241727323104083623107603837843521114871691302213612559860778943440292445454117159026132611424100213675301408242080085633980699535879946040543613390340531892722239617876844017947170769535191577765774674935586009822482250441282081823488222657229955299555428899889838282290826705414944956367255372857272548302374080747162904442014068117909115233597477224002950966236809502234554436707984215605082129350706209394582201744354534607451053016402347133163869691951996175662186026641189050867858077286953482518798958624171732871679930851381743230400022770134920580446391917028805173805676696370840311537710338781889614239586567052892641895971026868213513911929915211419916105025493937602382928627232252516323020644256670329410847420646142875855021428556067717224613175284419190063781539947135886778741661579086319299227347746288003251807721641610237522424886431021295063366160132762438103187601228449256971225474549684529038479293956639647997058639619028132923274236037620858986601972518356782427407190618388799863884331781092088391226601471266582586856894332126860870450892825629477821301482770449490384399176718771936064910843018201221472240735746260996494324338583136210386850803435257136220649719624563668292901632428660559356488298508359271957290848622061430494649156735141322063377920361261082791704617109912218840337817361128305464859042215261446663723223320066269576402909098020324712991268386890223566448012386384958056853239595027462548864654762638890624203315986133294189336241817983898069879365218675230262279795828668976322608340820598543566807391479320487726993598166860808866155922981375003523672057913833228144398368066878449287642632213010866871819569973162378484091683306866503163852199957614101916505278586002279331793698350224071125028944968401861247780407062706799458801651707448003754021321010067546157570258018229733933161422019839223530015476504408287468458867581218894216654927388596189374955798079741829752825605317555770882564353915401311473837425640594625686707616369800443092928577855573261930792184288764082784047366960012073608906662164107499390413954961821715909138228782635801154496015588820861530637204708026387611085281350769732836726708564881085179998425894220540970881250678419064408014295036880280481652843996785880325743938795238826633312516692162775909351734206138848207715659280146785701019499277073041730529637787888683451454191165838117911302841620746898168178900373605536732397546506595362320919596628702969164570179785975982221917026574686179989017065733205474624944767422577870324916124628407033657540280064996430502592486768375447644463850610540242180443338959747193192609135237941744960703679526092076900927956539572783964082200660556242397495813285110540867606573355303497763137430452457241987427477008150010282158983610967976331877295712597887761707117437446150640753056167903117299707336580743683536203600832805646995175593804284823146170579026113803542432645367940775456749370220718335929729573189202921801603078756560795441440216421661494604472901633193086771815334851639768632033140230559949811195326715075583977292860402847158199557358808313015936368835203141768863940474032681955691365493641645041420852052956684566752410617641622266399727354810112586267434301576483693316504179783732762682848589241435840125005612672818676406354282946104588042569567741650465700694720613298341494545530824068783602241326710073987501050436733133175564192366131042263351278540117939140874286017093486995888035535943326392818346036216956676602881321140887385515290408086532725686696664207741691129262202401907578334768918576850218383687558103799389848626294481708945387969239234411604206697702118072475701734846197850079538875519880141573331934360202080224078439390771603946972240305632248146482568548549016796597454202034386880706900786032730556593727407448098528090563770144095697308054086288947435853604287476114710152437259722278605183193533736557008932663701676771188743853511267569749727016892478676452736517617764697672791841746560090144906542048979077567340289845226473466970075223298508564732770475287021430200543780793579238656221175964408446604197006055552298564425448303272704191363357891785686930407426232635520731935619517199949106136108344868742059318475373485016457507395743750855878693051255601056881441097526326898015574090342598581125283942099049147776390797327379689362752901067550297359726343597432291472393460072016482910471589173398955811911554448890427877344337285169865015412323849597622721490801672538845071541219316022688413209583425548973829947648099514386006171028014491081561886558584593265383106274664060339715215519543439107700549400934688670057425920220440887314183028859740937911578122617772493713698626758946224645064081019973061692124874737655050194844147223936705447623808983938247812161414091489410648972584082327423156740995950456043858852584891648431055668090135801787845384272733207105882072860101426912850276346539494894123513403163126029279186796373486220832715306511424523519270383726805465215269925827947692096229566609783890739103658299831848482748427757149141976981306725246111355304485564058720642033685657432258764408135413172691799673447112586700848410671733199804105004014911756996774369184288228090491121911460696318951245819367817867010610908479563243523243772120694922125251956329245237416284519609803237204597698769367805306826177936895006099474414896208131935985388934583273517890617277856469244569141867053322290801396318509161973594256432730071488245073325195642804483390094413142486060016396734440377624990869910052349103114893827316076749091320588713941937729266165679535830696308909086063489182185687259994420574685520802729220896328128143087911811192727200813428463693289395475900775546329130520359424163650369436695478095675562900025751649038986747652739136866043502851699931049977855625811762024996083214937845910556093467308153293924364658853985220803391106930503321615215421741224537596203657710608956470826679834811796494965881893673406785495047119916962037590744657577961568093513468067672431967407540574435123006699347980699272692698821812447060773012816183994560112662479830598463002982473689453770997246209345420732799266784156733104577762295824155911495793980359708472882601155195738234195105247962875598241613710581261369484581711162311970136950245293238417549903495334525381963284061377590408833767102025165022380260383232474383307292098997713826813662767562042841329403526334397307056947431442468784109023287183474763851855276534021405284786487103871841569341707710291710834930590611210121881756703194141564827817488913383004850625081342027556243379577329106286487125015434823944480053209444455718454319601327701219648947306944023483969840278512074740589723633018836467276442718235096874654904010151151881514748248250347963294564888156268401592994559945927224565567425621369391673079479741783723264705572446435263511152757230098784982785872757469575552094660201885206794439453368132213907685529360784721453707556274602458580254559607088960415700852085023616565003040899543826714050484438130572743228220679653566123073528569283132453753646234482543367286669668485221683571172309940150934730395241551737088208292214151179329827236464058178807675705409466744391446121035126044033387990587719981882450846262972655977222087326941581702975008667872460924642315780149618220778553858893629937853219911550839349191732108190781293552153806680241508469336244003620901582378580040908031532843877293920725512610029680410074218055880557178098144164637557095028152408055458795222429867883190968753322803394192394364342070081661891455532405008458447328028111997843598508312835842536840199899372431514978589511229968833441952164377290150089234592515406015508104885582330996860452324810281531785860287002960378010864367039950058890589416182050229718737199032579412147600698446535746450930376345476338170674639635318924978176858281402422254741200499637174546481027494839168227123240754803774297674944417808973846122933075083805717794296472347269513438277721879686433699173459946970626844598641203390518642861189964545379242235030398818378727900900424414012631315193887884603676355572345441354922701575967900366252478747606437487322430913808834873892909903197861963139271619553422976713099820163870412253479988300593370345171754805284960598845531818679235471992339794292041200684781476117002663079264108532943702038857386855317773204655494826305337447572918474411139697657645930001362426257859554197599824262801017588908584759013077039923845513253713547860051262877172567138376624749570752267376843289466447308463961795440271191235284864450664927275436724812459304991821314380358456731256078069852601222211226809286041006233576234978281475140032190212482486737171827970003425624522428708981427777202537620268376610698225796588117589695732851478515634953750091426388966281286508085193345626164928045411788725710913324245308916800420666587273374950023762672192487770388335899239607831723432733048872716406730038234915816200567797685384529109983777818865809001062089169591921362531707489452271177643406017157077946951198329865921125955422685718908330902407841794171440438840291171344170234690017479399072740900693986730279123807701101976743016510769696685964304229218364288642192284177862315965647005434777510286888816473796673653994620148344523630800760275995987551213068567628199121879003231918160405109640375753513626066042829806020032094179479317176544358708284723435403581296707234982658841574785768478116626642246526840302461117499663047599496620715760694200618622174246831161234418443042670593279839916736787572327104073506600067742348252496127022647773401111687484307162782537599668806391501675010423482190172247073435506082369676500872034511720648479179273368198575389244227439562783656443619448479630090327975158898100327444629361252608939070500495446878854675206478306090209317247976766982801776197724980319049280869676295991584563257455052004343775764656023080178344092194322203357131146648967378578969862752706104048439415706180333154257636587214511959315392531473687552590497995152229009667877485635679022749191971203178311239894499726746385681005762789234565210369176875250992568415073818811403307289193965058881437626202602793295526277122328454966815973954868664678094250017379109040113493761148366090356565222615760933126723518549336171997599342806280422893756440923068007264044921417007364057257173587249128859517216049113261637164350507668988820253901832177122863603815429687751489001752300869744317983810556515583154441181435429489032576732305575262329819203074792611788086169373459367745187389790709753762876413709210917065566941288607214600865904059815573081682441344761748692226731755335993466734014915469515208107735173700941687691590632421902297386775539514992304173367447268262469593933599740787243967611160602964723502179751840814305126631069463607733105517995335167201121749015958303818767520711665507546498579930919517063751873323813975719786040690126677671538375981445862394680222915119721716467154675826789076716679768682158422965674856590864735401312382167581849218071821269801818331567835420720727576621929134308897195729473859470753914239778413670160682931709523298205793359926911380973941766867713372520656719487063044278109930219219974428427915252212207932802278326834535787069736078576809010172866352604568763185210823959066605380469928089629860870066379003303454161606537675863300720337833994291598191389064311756712528501646319861519344183981887577000982004842100704949652227154711593292070615745227612384868657534728095649227237600458694193514013393362297632954460334840855225348391653591796805173771537392470433758984658307030300904309322988987852686817179596884351299295420200643920127845844798865664453380435712435815129287691577547661375294533638009742028612101318109908910754940857620839002475244916549419183708235656658618605877699262611652715086516841698042380496700617067619452404614694041283792575542239234120232794233609471613710231400926791710597467116038284101481373221152589396308239041001113136038466353923259324647702205150601492389006081455451512169524656422113926118009314460511357733164118581484560658044925421961038646934692102984690230645285639881624188943782578744860015206489739015436484058595050780600016420131237413576659932108613912958018809339299854230481505548586880141556324894539745324467388806860630577744885555090854398028304679473140059085517829235597119620435512738489722267136238854214950813586955789076019392587366593541017798807819695260723441163882571370323085273308132019471055634334289164353619001808249244410813314701387563132482455068385247199361221836298577876739378093732103852369206834017901923723355083106994856230179104845654686638955146008362157393334288085070018969949916759084076707991804663383440569891178118553759329838420953759434858721297943523138140472871452218184043173128829913041528108203781442887358408732255407742393947432548305217847871117829092414182893503632897304976042829054776835296272079242769479773950179407876714755368209570440900194981754767913703249860263870539447160586656007629954027162704461524485324772927876172671404637901844782340281546039369156410075290231140248074390815755313083011035184740802538569634918254821726531143379074333678175732353193635681882126518349382741131683136516691856724743358672056598223099914956278181520176768779566777609905304375961699088751648707742543676389313191827555052967785357664875423586054522162914926402961137883765600322084272349721561881500024177584483105608873324318621600990014529856235737525197489396793880349508634842185485659205215454378844250354296139184957814561194825551584044450293654795463847943222757539350433960974015792185258117819734865821921164604490494441211647171471183150038052500560342147435559525825504698229673018294565729011090663528966594174456010018076847551891505149824297334808274970943841742809424603180202156868157156314795638746364164978281195278097439153084729935096563933041038988839592695896615840506736682585578505745949384174757171863109656533636374373114258046807077488549709182555589090362720689784909219287100744780061338627404286111426929503836212790616085455376095778464990846916451955803921352739237131618258863254586566771923727308354260866279424978787408139616262436079053350399216498141229475303743225332903552927419940351097890814628136698500762138217980317176548411699821469195891989843539140852756320893158101214310019750012377766628845171222386148543575178875377862106058269450933698413195039594134229542434270089261641642427721168085158968497956194158414301598747598615857301941968862208854789618750692403554709058570976434552717141152025244159608197518382026971260069884672215663324532642466839052195640810344729184660787311300110959301943187320751954550103586592287618002169300492691731357039875223105173342364024975981206244553055986682906983399041433448135561746715094764092005488090836326608315508744538214335129907021104483702237817457825744777858653334390940047232102423996694614904581217266098447542998037691791055712136503454574866912828109014842214554958049451658465615141140837547161782066359530332218124019089614504243901404431393301482468180184759626692876420134446779669059424213846887262370056096616522737264858730587042519040876161720469236653038654725462355532603589413242894423401755662085834106093748364668825661917309750437487131775935072857532454699263589589933274336772687297455173505342979351634464448107701012971993451829011212355514176640692820992229048015369550031873281622726807820827757014317546228279055290326726635985069660279654474442718761520135961734117240381561865102330498979948432819100266412747763621054287807805760659323140708372779337658109520225627332945347803226522041596170714947631936259990024347317640272225044638418515780222101642673062560958853842337968785753230470128979438936342943915130436509786157398327806400797941990630008737292259120815614456119442390990550605354975764665834227503266927553529424647770948379746370515449485760573370396250672829147330776243172540807038216139235363711361874299139424257772743680905649433642766829359371462950891576659180166572159156924166083855185562543104383798808997801669438119883053768816269167128057323431792474896292174067523774279025580870353353707345643772331652755081685402991011762200425967314427927346398603119358971259669131060489060665563671764968706870661287514075469776896106471150010475607582059253997154615811522895181301009633786009658371489411215330181245816268936899292885726906103062219016296373896387696506740467164263609885417811361235796945811819309843542827234798573544105684634495635307048490455274275698227025791274271716633201242722210830681925976055837070729811017414476480148428734413742051992184050221435414912499916767033046884578367932938233658041003112142464366405607451891851750511964258837231704561607596847429894481565268856540562128024282014357035426162328511605158095240256052379245784023237823339274252590535119100715696582261532298700257501305529394651179818356550061196719299935948894736139404303299081975198687790095402179084158714953493436146627787329368135364782842737411077939004788622418210187506002675836195952198374288538998453863489146537195808124345159778189871884928299969361730823463767564768217058062778409590031225441342686163944347759622122573278501577585927844539627169722825856399295304915318901449711871505870282763027430237937683578450845693122497884811158412040600679552804599330575154834564340495759917851677529152520266615095426317257796723413277655033046552521384255122605426741760683594787825050216478962252798317258296246167232757685397659983707583219798939772293596825392710382236314512805240570454881827670178812426278176237836432080118651541823363921767224455233256830685887267198513016273836938437666566883166389658346445341211699790481180190265805657709270894337578759889139679989782948233056365637667598485831324585294959064705079456021384219412937686733507892404248410858003041768062153414323252780971832835727798577371087723868174572720613784853611917427391410059390539663277191438593198526323380681048946071988827977134554856498735375990398464994443311441291690282385135857352917791120796498979216286043979496221037958296782189618478907502783233879780987449195906303047291999253862453656214380314094668962251655191645963055858827093453594842720022191031755762113857891215808558931401270271423800001768451196645650229860044338908656217764588538463993455331854671638285344873836253683479222158941999146519729106818980251562094233380080242329883163304120055203039744147642217883223629725797953579694504103958901953617914609304776328517151296444734463724312409665211091227179697890588663117031378604542974476900351365779128291773632931866833807176229802384852897975574276894836845530147764335168351356105129851511902484404602597910167338131968737605037775806434851777645850930349629252076626276339153704744455368125949627861452495526037998898532924745640223567642944656734741242449964204884890771410055293709468776514248454888543643520109405984163724215393016858525618551797252842506092803024342040891714778140892835577743314312899856390434589394858543772312581395576661235706445844817667952993736743084565707372154685851850033877593174947782601678026916629853268614376970616797524227675734473438468181918227404714313858450866577422440112208352836709455771166930489091812411314896335295168528512762742684499263609159012504591180463986301604841276134104995798492003731000298555537142746805637141878864807870312839952661726363049382523742273295992895188501116627484077656369668705112382129007282299035957514669881350967390374313321393865440762135322100151801132747432596344099866997466351687451627037523859985110761002512678608804759361700735593269306085214669836501207193254809730061557593426237280340527752690807482909692790524016483112990931273619801167052675736502178769464125198222857302893740142619466454360371334212620859203445239938809579092119333300145738231884433780209746983949509286086071481520292096956828593483097879149103810080801006375230437897347996721221976889992718471180983833095374615942589100741825746625091684702146902694398102600808180199754358246062588336319672287636773335826104764257624449774585499270351983718566541927404591601050689750547404286488020294714112098929941930421530458900159493160613883407248936622628426010323742368498021366087866518837791542118925349942931580068124946372225600590028071928278915453631982844876217749686217573508763204148972605799649545550660022862897315021647917037572152550643155591700294997426382372818608427456835231495608983162446917921323708946326027477075550051949038258258323033932963273859972010792304972356773340547086949844843055711582120251642151596319002767159244771310565795992826776330445008691209944612245394253966166598238474602493277959200611768096691404549727291043972423592547231350165793737470421306053661658967830292446326291576983523453335007727809667498215013256640180957716421644652579772219589265740432481161322153486425284028534758921061346735544669006905317102072931593960945524580658859184951460496455164259880446277036051806086179821409417121330998599756234159892286523418647860545999773439369269763830690752412294439163047772195302180394877101393723711914332951526801372182117802697646532058193310744012800443191600119034350349152503591277760544724740057902362696210648138234830232633624803720117451107777379065151091174778145961618313156705234331428282904256069624024448217665848509973566392528887113287634707618726841834156463064046928420301892114917898405585676938348683167934414336678576204223743384565870985173283358850705705854267669653199363404474362793013243381263765589751578079618730351911912254135295340837191521910185364971425552041444622458554452733860910780059296363432837257337542817113824826062669193939669235594687387121169577476783964539056931801058208542021116416335784965647776372740808674342127295846807772263348373442011029206429715545654021184434036034302786133677726729838373106301672946643490042735284824481988241714634598528242554035931351713688982975938547633826697751723624684449637485610280240993847181801792070934321868266987039666119704773750910662626134521646039820823760252365243854416375221944472595959512013129710105859876872909947566770238441143305658603968841401526937551085426066318030803946116982365803699679241885714868870006553415930990743823983919557084271830245729368502221037554589348839754997273450700605119326225841639419326731254127803426360509821170808208283730223673236351975040066715847687792868092691371153149318382166395929623064483716663199295879184337806061064150791548392725741785551700469313594524295965268392374011363487070495065061636315373491763009360748744171400231825878690023992837011955268972628198007336352720473295860735045499601941699726095664225876212925984187442547829377822388686230032854442539147909163817256343201474144551571895611343360466504399435505278019813940266130994470410995990360842526073056500866836401372982546885390830281398401151722344833173651736476240575761380204961749890601141542426473962023180812683908723788435141147180532609977426952943623980068309937362646842948839712049779269475782527485664737049524021532615166560246397594379334144466659741381163779275410884122358427950127878142846698565152949065706746607215415780994164161617806564191255727602883187424488434446240078353349253335552502240563010259926272870160745863667165822588122756541354056968465269311985027131248849848668696119287740897945858134720718240789492472703427156878031603132395066946223203587304189348161722634819571911830363896866908338851635354032023410568490736066900883322764533648702635755783497691712036987353727559055814017720350210611938369485050730227812757743768241424651145948027169138949552066950749106743703344189162426043813096674681116827259982424368624739911287324921671026263772024400444739924249328847131143652584121439879581087435140930067985236839695685024067534377074052461991137904488497289900907084826669330777517679025614960400375677046275645299614278902551436836866560260644397580485899249191870155111179826207142369675851138043342484220836363899615150725559751919402097909231561513940574713725778922086224111759371697493499578167352166215523190203760468159746079396771062148703538480710221649137214753792987156490601663479773409042991575548710444477081616965299061041559866812643271463091167946079778323482121305561046151378889278335099935052742986686917322163814070797745127601109644235653364949697916778176762504304601295759260398759040166359438644111944313542198940881132075964813334675627924387509766873419281250378790865493246298473748768397599681966649010227932571273130918532328511366506271724956956741289861802112856263231233277624798464744180611782736261944056103616512763608748200407148307947217594018286426368589361945848132606024707016503157870840247461486498537905265930261989814707451925491028893166976887766247589461132797650987390997984818971377165210478607813037592120273512679409490041730672005377371437097273537677194687273179974243891184845522600617723598976651283707278577534842751195614268488648151172003180101998768287150943693904699871020211618448825109300947968708804916396060640435957280210875306847735478127237559067573294548725706431953121931314639659738443431398964013244000837649787369069838526093555593473143641625919837628664990902218930726280278037152791900184438532475240702992411252973576047734791969212499942282746552235305556275551230429045142101155743036262149114827716795145561025367067654537359910898613737276501215947279072029494070556117116710285385470825447424191774913286169070523698529859563818975984875893477708386163415386094765712060768189711741986193954592248625728398948955344499469430207482563708193252135008352553243989428678873330996241825677743973154573188235406828098477682454316688161889803873227101733095237883588173614684251432693158417429035654572144270425559693834090085617021748647459077003116653388678197334555025338286444636723051657333512047006572911546720537851392363669466314728091519034889098852006033083498202811071326885091553748631213814625215127261499125483254146878551108783432165165944939845405564273467861082376225380046070458227949161510657802361532084965387251932495331670504469959557947221288408892071710798980810018297687448063754350114025796365926936727792987506542046510599975234622308219234164122522907940899955446802612347177017479428041366652391166612593451743887863980383226715665136057187084168730878231178527529377778930871948022449955161501189413684342527093524200886652390152539236294680419427358365785250646540681913510722093066057705536449011919362999568637548337203846532317312533146760406196939961280158013799024224957355059449323682199691143226033155200861445856224558817934410100886295440684809162994142242870230569454328567609906839709472778225184849498118105388704546471876316093645736921032707576699349015453002532320852385542846436949612657775029372994504445788937074960749408222813834920318847473549858253378812744484429680828723782024282192376760155395069623831455645301326467766460640644428884098530776141342918367782305788912202989116217111867777662915395529114585246936173517019513601736416285748782594250284144317207732188412282029652524324376409718528292763018274144236894745613853853545179298535012347730098113139880979484721731249370330443272997631219153154680447625170851852682770578407333505052307858643177471400619935174807445598429948215682715119445497442771528729349479987632312615678244348775443088937532187134684435838620751649163023022471360172797176366421546120264697229406051023064345587493810470488891058706075373900565993152007846001832035862252416538672058595476185222373735910346519691030718299872145422644719385642834594433153819824803585371207597638620531833694659960881863653818346934675531857362712365997423018320065076863426878342852022084707993101877147087149498715996063272802167781488356783180041154453352012847149099968257419553573946219894761363839503668469285944382301365469790069405835357226816999415605377494510977505977027314985566309550182647052080079114084316415259395774526526330013910839918839625283809057643661420883202083211292607450590640894072468528187290330698372374298172755982353402574301404225840160960188947653756594672155654778105083077638346657004478000766517909486612835474902042927384214600211319281415467667869358261792193248276277643677113166444232548172120480617284055195268739792181212482120297697818157113592369297216201755640715043703343026799494920699862078929876463122926020673662624919118466049382994096967911780938347985341781812472616775123556641922007861236762214007126818632855512054653015875752272323496174309663270699912898526871726708358536916672798356427143902199728856406285176782365063652207530809987892116588537857159942271920423100698837250527473631696479343527353703529534966997749852048868329508689550328649613223433162275897784953046025645815964491685835376055814488957474449834208498048960825722549933008381786201600977259650749264515867131794837157042915058334184656560048438238232859829040637594953440820022780053484824856940259388938478226291705899801004774392532364815692777470455215848768742630138392255505509818175446034028995021555203272196217209739382717325343414830115135401425459606598027963416777668131453821660797840065135571599827662286744572538584896459716157704549171269389875537865364617092756900183136440094201413539019062657143444143300502683044133731219742909266915615941947665635641171589070785205047741672701216613007537731868178255979983317635788720226927172578078103370185865772446698247445211484124516852656154504938281041437153711240829791113383177729424016968601769586154922360501551181693988833405244634119248332693614801873107974209145846533795369015327414480576127642727359335492339952879206791933986480653955806165644586222274854093093316968256516587075759484661846908827519647241072450697320373711764480352017863692971942325831515880730845900868113440282628574958890174642841912449273084360703722419988985205728338994177517422003052288048042322418968441324184129894977139829778161006268211089290064590982930291847453758564018214695160037226130321011043860984364663423987157942267759656391977439755606076878859919091965980682119198974521197651887392657020457958639869320677527530467095847210410971293684706763122578914053800355161263494971831621631849528488633888433509326327856199737912198306603459236139208153839770481346543441845647807101907697316375135347250163723423224960400037298996964524506849893060648888173916108445709285670667849524805729625985705987848299213140898819849650776672442800442578122751713005438031731316661946535768329411278550161354075001130548289273127615473868697235476039214303226781917112904936008755053026742807905653321463879226359983128159860120808261052444953526760350966331007443839398479141534476091067555991271813231861123175074071976160402299257398163908759081631837630737501868905678668785321372056956849612017978646904736683704832809805314034417859019660942569921401438653605554591039991702493028156156951133579623541791056692406995927505090715747125193893433016570022760768958942631667965152354762634689047845381554581463892264591292373355607189502973618260916260488476760299366566208820766830485368270701053366810793233844126656536937571480388466654235673210950413884840993764588639429192838780201754673575678297999480465739461652004208439283779595437430527472591224007652060606639901392896212001535910902852252644836670657866743065436678192378899068728983672407286077428861430630607906296497776310673376461278208951908038343013032782108216469340383064819570460206213690614358922936789527456900432496684524045530350972536663960545849443369732774048259467626197793340046175304582289437059271469649188171235132154884738637198071609642848285673591172395178846523319660407796905433505042362222454064774818572527581431664458572191114477707783838109290565030938872729675524469695061316822490094659138307347639760425517433178061090916011463692515251174604607440440535227184956347069861327887364714009977092023475462117984549833381295273746045148305657407773630892722822510775436755871053210324628249849559418528923054855851637317423862239464739729536608952990317293448643923147693704975059987668071844885632719107790478533509435931804423454548188027107158659743257672354077740699079785327703829390420140176708649426002137605410021205970236238242989487998637409130102775837894144501342516141216468673199932766962967643069332775141704870305296895946346816748743181496640508279407791879371214520031990640423502206144589930435146245654549117782529148276877880783383124956162185637743913303431661400567458834606077756334724005918513708906206388669059814215838751139064140200550613456694579232047165618148228787922375275460789612628630319079048114552841897789217975547572077916187171531726705377060138509285588269645952741028515327911243901376224318034154851877010524620156419682543889475196567221942451791101150902399479945815445749358683243029706146282184985133674656419543469353246997450444020105381515760664453957200644555941740909511025121963454751111528759905422146433933167374115683767228198774031897040893061122466106590507613638778859319528388125445730737831513368287831071636227230073721028560893259539473119863524907960268462404042396824644196739535831285915117399280656116980577128170424516352421561838412579902939629368944221501152977386130745936694370073900064488633684082189922036097904576975552073919212955001304773741999372300553641862870642000750486970824161282142139394821707467959671592840474659575532988709142907472219502871794967695615592985448779092556745113674034837256759027468098237873677501894175986282109222497423390756935788985317498134137799357814768538329950364687445904312119033098113369460832816365835678438487673788102761248119265697235191010749649840851410386637670560309857139946390568027310066774486162545921362062800047657378859916100154059133334490627323930802855778755370691788025957582238524527800435939343063256912990480883682415481332503351400190241707021477296096186004476502061617724907518172375885941350744021424988369438885149117068933195945998162641089077037014478236225426793054724244095060175873231231891193864425891152445249042723465597832023950042886783948140279099868024007207003580788502788769115527076680429945269782653645951240411798496817395429064397409484810420688199532032691217203862897845843835620652100446664353739641101517297904790420884475002291366492870846154706258630475670042180314577474304623937777121823022251296135381337020420144683477482669952715672146672157828822887592292571163730228024980256882692493971461383617713140309400588262765782206973372710000509827835293701630575795159519099336868125496793614178923745580847776574190907174311478709997389241994286448130990987404911338971385131289450592794685521304167911097817729713516332500319462859885480563839872186134023816176307505759338957088734919624690304320442755882073551210326323315116201976118821966706930141078954919693719499078540768633903258681629559940352846173594766918501103886336923844616157618523922869679970392344925302099661604126458495525843039080985614363915562018682922606896411895277910825469804869417352394640698205206143436504860575262094573835227593985643626137999048849087692747142802676537023756192355145775559121502878799076123040751473875875102498121463216978678238884939106928487170209239043032885780477845275175887911559382385295669927141547290724428373156221257094143413843996578576459084183534630657534329420997128651323353305646872740394957421594892575621782203692943442514774609933457655840797747227695684157846389981984643000407005677007402778904019298323945326836097628548362828233456996077500551044308521042220103460538507970882712549968197075711602774004838181555901917463501139372928049567750272229658679859899140097683006942830455730645865011441223721372214281235217737989000471302618763143540890583519223424516426154502615092669740321386849277483394576002171883712416715537167854491281721933163369456376258314579654190213849062424941367250212656902419777267031240399715540314421747242492373422369122215718534074779556904654910891851274839434565258652833832538181710351382176639916343206877595292423973448112979886185913153934348110471518490728974832985268282681804736898547641067761172896009399783286645806090936473490195276346005206076978347901366922106410658896172011251361587746407160514979372265154497607236910351790993403049512476565537435813848600007524614097419127778377053220113756677240105086303115481864130332971352630079357739526256703871312626864839472906499959716641099062317142822894801376599435090049455249025162874563006931099170356289189044194300596122682616658238059009021671737476279148656042976847174891388211647233371918336012718482868243363293108847221364124134096657730861978174367848536589356414472006616339890955208516179642423367048310308989807171482608781065451171787362662537626013983377708572024399988699847355516444942158006858673183332408494629727833924309689035478089152097851010763042387040496224455986446667129462717042594616927282052830359920573550546001171689315157484448962946035106498028045029331776593682770912515792127272277104998620090083650188804365084012102753385575510985580967122176534072442383244338592036386829299229087688222697410147500870900178385792215306671446297447579769609823337693244835426914281370323178943810891651448517740783715459441361678194250314140888486557063800408479856775362124323867335852729901898732566579912684601123407644681746730308060512776385882005539667053377475313941639473910364475471189587730379075513468752221322062815769337754644481726479415208155184192412010138609276614366101844624395304047369364494020302413345831238082553092961825254602301916284141824238362926517355924680044417855923196293614015319348787332997942926485916313689858670783362225871769489022918260258607477616847196442798353168578870555622048256078458491423215190752666013453365915857226704302990130181440415419852670190866996538198470479344190344295563927995440897848619434769190613676166492946187568813607063899341625036247405165263679494756168383602772639834833716138750406975184363580234712644367527404213304312587831239492262350916902433060459224020951563094160398307689909110629864000475992651488207547178383278911840879441154666429323990647776482960217031960820976466782302310783986816613953339112333037837704509661324801493319206528290845489129491293799744219978568451240952594040338797412318548825425877664707697209853967010882671270939601806888474456683010292975490824455795868143480753575551459720039747047956677097548899776871267266876903501279895490376606942742095870147392167849233172333287396027737634041062825228018483573873278070854319513757105754691198621965242458135612718211481079880662917067041293317024869545261341609184847706531631291694772988990106781583351669570658803897867566842839481812951830652852229025603162197557558516024939008055362748437800460230439548954959151261080976640789649728283778624755530759118674305046362093899230792588967132387882399849216539673157964912728290986692339567553423870207995378591673623437925765492275349281822283459981544035478138808329520791311898193159540091008761200609159316857126098752215535853248702261204928999618920235346625435828537961237292016720830214391900228252120700563768610991523155674925319501342127785479829069520474845514371448537854194729014109300841423654541464929101381766235444245468598080710280427959439863968876682193470919853982802501276838049289783467012382342968968719201301389256536326295280517606965498258556638607246411137322345389649770779896850523086605017472395267658055545325439904939302864241436729920023730156174435054634948191961934648506581732575074105681585607963021462778450910610807740761312016317477508963036466294494707853895052474100661703914993716598395304002042968311539648291202238879646822057046498562284921621557086921447919389228060201066127003783054185026516824849199618414476583606124001728822502825851495350907926716406143752034994151539436826647342775962728242627155751256423711313287756607497125133067330085946006284044181695845483884811842477679973314590578860152450244122218314041429661209664381242308496695392513789439194930223377197472939482707507356879147780411841801495516369416040763166944119585003837002624539457852859905700006124066450271132845070050267658564798676823056781624207500394469357619557867441214264340937660539279467867178681630070597857653967539631232922371109235186964598928656956865432824160720225598795588999196704021154655961494243495461397620353357853143434207543326164031760728561400007817398014843111106494895123488918269082361942242580251028947014964423452764648141253445052792707730507526697227121277399753069391860962187088147952233830346933292130001171439809378454318091998932025719640429017775997730173548673233520755290953776864744530681004826178767196654714029485488675618935197937654893709227697384883459604022126034803099930895661013525976688727486704455794659866618972436809592420487612094489304182379361393007319692763713340046355728789851835116568193840182547838426720252657496441099336776017328381443428820255855902794482813213031303008566936884588547175268916521615998498126164925517715259784806375208938692160231561049176795445650042052089775305882569377430290542937879431058893880450482205698447271954020223026180407522384394379592402970715149153704010871922314544082289496518634078921435730399885590258368805310382869745005432801797477112596478804995059229809500313783084964440439167108599361811622116573272498134972347408580124294271692287623321969373446293523214748771075261886265275291971134555302473245838208448023044672013449526801245986701372667345271477869256765372307903806757319055161016512661382515819293454670510077036141173583100269339252364046148442472789987304353563115950512982686396489746178595486509510709291303294896302994600714696063562653204958795789834991445194567800707969859846029225926305029881666689318550823911851663390961975084770913141287400994709067924640562837581277141940547133902418417753148695819692982977865946538116270747064136487453312949226615311644781669073750926259006626121879113775342854084138788439356325155578912284358169971449736267778803358699864342649216502596898320345006712908799726788244977944071793031784844101786569518292649499070378896127883881474528264557544951447466467808159845067808175480180313528445203852986780090365896097059046268259950251503990529790821967932234589346674009868407807336127991241643389237348883456706119177072092723838148919269426880038198200456867628169641849640778933738135969047213895442304619317632586409915904598136507625916791789665923975715826216314233950641608473421513550932406236277099162834140053568913559507883263279592076319131639801762918872215040792262595447746134812829989789726979072744081613778522366671680460695874545647528279036465722526599438850359268921824542243428320230488874949801213891635498759597399785412355963349684634759195709770499246133138984674924347466942020050633961090624030591510656016544348879442512534686755825653863297001433833592271833007294742119428138490703364933734661299837535139045815475012583315895730896916299308216023837385018251718841803477615571099883348409289413593285395148692871709679891584719098511611599931710526365251988682341572213425888553187457948122430781927956723591788962174294789981259088229839354977279269350686677099042065721825317372946423879157645290812220529580105465503788034014937680565662783716742900064219467542385472102759589420891831545353372363117059307020388816550139406370660988408847367269518155253979008524894190912400831223218775014127285513424894936870334141876099525630328511437787781526633899215549939890717842004640843393384629347918284636981286176754273904393546440870772085532091725514913355751303233656487686051779767438294691613404569927353013608510002768568055182318556264536108076433527777624904313051716110589871957147537124709740135490311707933330695925788238519989118876790347159397921301215030567258429611949043475677463146351591561267652354572427644940117046647219603508685645680825970329260110899040624835733381760704149214021763433024428174147044110423558044440818698213038498465938456922865786309010172600297003183212984522713804321012138778715685629574519760040426042082125083042366768102803819690829786690738697152158909930890520345123998485180165330045634724645245327092960460986266438376065824321191819338424524430116072765376647358699011238888803478977433036843468227059585851675823466942020389311409441810075643824251382625979568287843719955643462294534370256356625378389647726812383700386621282493591779442101727711472314024411346262838916252367478155053135782275859771742440361436471712622523665000754525096587551688978445540792557661370356096356104299409438088961470398737844203095259182857950211565659345824367297614359702712908210832210199194463247255976657780522150218976486852486906661007387371503382534795873698835343056510346571235547983801570616933812718791897983823066054864542413576784996259730666062257039144834131418636035058303357276261265008532422999870343915093009560969881589344715648630167638619461845568984553760587273239178523095724336950022150477487872790427457597433009967328123665927307257981820746938659546074586605811164311279184542737857498602111569094638154197623283894741098608157946031637252630215821276907602958919377505550500121828060793088839207114754140213727437633833511383441960418281628224877927829669532824358594489757250679638614352826765648167976410673579774291324359036218561389544722959229656586947352648385344950794841523319674091729463841278914791059441287425231154557133957068122086290533236321265248836039173865922704192086137552243412281450099287985650555120347690857912244230267000253938952095055285940449671194060304649422695162592721639227423471822429154341420612479429144489234785903804815396869140396441589344752557124352706160935286823125876559820450311091609776169622553194412981472087063749898297141009826695987526244845264551699856057031777936955639174597228448275727896971466407031919027057455792653809797807225760255574249467996797464294470188697060807800150596334434563549015244288649389181813887246155956345180973867868918878347898573053947080850448887794441247240550124603680633144435556505494808537257792092998507439128198016232330894164418951064018509456308910205559404660913725628444898731715415724105092558364961671228507324589495562000842610617663871119326099701190961534293681160883169476572815168557771200886759141545140553412590176384059510143771548411455587469176270688755303599363055287588975690123936067021227415642734006361124562142234149929772541709437353287177583491947286610656350552764047714112346487962454268583148753531678211283400323558103870956478354406260792385504738153200558744289423469139545019473331791627172356950708071175842149781202591502466504046492804193922377425084500549663793750355054763128943690568002333943609905720075675197576769933774070356828819816706056829521567666585422449253005732876729511868609567466180711932037523210806814685377017132993605522771933872673267774295590522932184574713664207613214975148848053911726838333385786973474728933078628048343427586750287726930670031685339755548927182717041579241775422224357301306649290730226464418715413549527268054238549087271669264633580467001992349560184182736975230506083798766673674983770907396351286443515888447487607514064369266101600404924926144022849913941096017860292954781187485124964676714829248029469117743181196273218293665833485357101946040965559423207860161358431748064535156351788889142716281548681370933293099715993843350233245191474264687963282834478706152852767079093368714114290112449811133442422626725564924221725880874595190090188340573843249636365511266389766149719478570044592596060913296677225701002328946980880937117873034510819187805728934707208586989844843591007371115003130784780014003629242549147286553488514653546693761376053603948728732312685749870680751451918949848463713056574025978584372804828308945132846552237721111161796364917711177127596907593820264534002890317712551616036715467012441078444858025789211455730325020905318925178463676728552932600941524580392515951196933462322699232328023498357231508525140950932282284922560866709926092469479867597641034658414977943488842805007315010050297495020050638644760694101780006387737225346556550586308734781629892239700357774656218109370955901842863596408783851850805503497952820945439208096977038148869818669082821728621449251917585553487638386422610973453338011615443224160270552647509257133328215701634053587076211674061399381371074161941363787118328476495453162051316811651072617428980873192622033487729922422144555921613378279038501704584833684481672818919274818517055265469592443740560668926147157834954137025787595451230066897384846869702108398407400334991102340556938007236235889584082800956334986762323700566939414036333596366909507356090741768130024213934206769331588128343925967896886173069645489629011068225442481481196760617103440083379358735237200233079841492157746570506363278076695874775522959428381505229798109181694935919186249627431263760920886895306605342308833062697047749018628955818721797160328261487913208059403101565987550751885950009472404345855578371228720889365067623361240212713670211975989134429104790388896056984621986038574439941120361234374697902710962530918654986418204342902577702406439426552203743947936329948495247597698504414470479324812518439172294832912004544093470679384272394064137234304890961748330169474812949248499697151006422058998681068454550876106163153921352764681901290553895836545923102936973208247290668494203337499184451929329934585546707162178916911900813091268589158606991397325430605738914911384866656879592804780749343019669168065718567824126631065231000941832758080148924796666676084045382822708080389254570677288402811673549863226115248015438527235040747121930461439763226472075329507689698127619642330969075110941734891128670661935546783444210096812985224020280671893266705374539688246059196746087304420889883967368598396850732298489569895977982865644469806979117995766012907227963934291606117071558777803740517277007266079564859818802394052157241053978392762044711734723320256033822187722509513590309187248568422011703048381020380050226508592018786432003338586732479808432488856023077626987503880022834151693535240130425443574811907332875422394190395946678866495036237739282098550642512031715438662901381663152057695427232285941007438510996453914372011399212459541655527062680724659764083445388538230210136772057807484604664419371966186977560321718759302596939076074861691527833865942504704950957614620502011873912847083189236348137373149518251988521492129213370350778119954445079894163732193153841028870653802568571421145860886667219724630834150719297011155878628209979067835491277909618748958905216970548620441194555288869576563383724094345935787643129915453127117015317702371798846865568159013938999132162329988373487472756349182605782693830579182970678447629913718571505925865517667311411153151465652923919819816608131131855174012435606812016605244415005540481813386211111827196899964580673319181718808729469607192096815220370558118412881293343874565519245188368698199940283743133592587191548916567219042406735977356269033838913025403567293344823368746249993343937797220065958442289272262724823049515612452728196108651159199135674347762027177096688424512298073126815812523595780766793382295892344521046553113035095565325904509009606586267946289024322459480777069773191305549273096366149010185126446941539233691562090400760188607225117752710826106712602229522278152898805120463789331353984920064129884445313023890515215685068480068429995037170533941237781415818150816322366718409001731642213947617590662363816784375937594225916637976763638699781387974758064005150337653835654837355510873862148563516790725631103010995178565763947965572136352518889443855441024209698571405791271938628178465679322739826050954709072446653315542416532701852227335366875990709415666716469434558915803090819724041307892298195742940548044981442917224993227752186954260795884132981738082692913767070756681846624233452418674040543388410726233880389483452285220903387399788358086706945418759753644531565541165326541712112537151185873680769504606451557336764135048399297819518198417158495176988872733332634056183473954029032795029035957613998834695028532345778092270433257555348076984728724075615736242338271235039183564259616097165699081913878921117025100240326508184316997841818535578065699740340832891883068436832628833410790494567907379450269886179543674391321643448707821713834135699176858319524866306115426840477524262305838024114199609695222335508836749332833605294350167975778787607342945682098695151169515727246142259535245486360622440096711241341719526261929080362439579795540194978844146603949954613976483120874204831047990841541253362689172378118096471382676670665832603310905366109937083534958904022165887753543486593269618308790352784086596222077390004690283080182500913540970486039854511083610719072669145739232686834404505128865380704720154566464031017701456040199260043264546086918783576554038463874621163866987065177687006035890008239364650815838138856779969755822816476963992557236809074399577882960779800008804563749771795167791982952135163825598190311978175476916453697375069259190863864739318977061078371862096710489198889964082112521732258202696051863322285616834250706598859677710522824334436357982465911917325143086715422520772243152264388537978085813455621353448634674431405204761372851699402150937555297775502858391211221911241505627396503389256117633199604971846039132823011248005863918854060600530112178818107438271006234318783477216329836512726076536141663592939610865791910029833631899185416709574294866129812434754481179004492228384880926510051332909586475707241483674886736612243577588958809411059564816882436881716757772156001864533532865798013412611640049647015312291578439365480401617825739750026247212321725621225633894502877187299814189374316612351491794885877167147811281123167351722649122004294445158209141530800539043091935514278678647805772860401037573992779716403058069373239855236445958167807150808358282861252436753550627556258277422674416818949748746335784381096530229439287139472038815753460267442155580902493324027529888043000465330125496715616444618457539394258041017730220129778354073258225659507689397637891078947949674628769189218163611731439661476007302897887583651891103666160473816135889307751382420808186878191188176800495451153648755693969194998055457778902615285933407805521523105064194631944991678676104978798613341803184707730961462325413796704221841979178027823707450107807458276161035960929488218958631502777638877507093869960702202778790652708403209550738614948081242435454028956319815500071236248512827273144750443489352640955386770596061252960499827195016387742588269791622670916899901262727315429249811592424182209997183298236663958808390905174290617406764369409822805485288161796974178069064884212752718663891044323194580713933946205162961222773311229938126415649170092821532757059538460248328198198379269215928191729201638481417970803275347125914117072580792097215980271798166553660731681645805660855055558920439757287588039444660942804008557700797073046418545677147869765516200871846726749007246953019297853668633377517046865540409033373585303825613241166997002184611436158343490001058002709381326658911809978105593647312752563046720231458380700563066300671511497813544982251667235714968605001440045295320618425521145057057591074580455384041239995401742756232211031226225314708542683051080864986959374744098344366321997833668036362582489822211546456370797926715829156069483733510551123826374052455942056126582545013609986960744207726532410207233782722653585023520468459371202193975956865070298777826176757474977819455530953724969843512796417883572965583870209064706241930651149026097831244770382233475675056733858211119211574415943545711782831745072318567986807399233953000605002500090185506327368923740225488363690036831917059858253200776152332733230904388396754888329712493475651741910503584518673844654631311260730260037110102116063922659952889814797417712171712699507752398111683409216792427801632290140859043765782996476712208741447357504289192381708689940571107989655347620941651347447179709312790310713080698115497438323904033538559700577473272345961770182177976817496816646737270026492885808145403479926445237762905158540862282101751470750417348669525311378461215640989824739680383703867534920256891451457381224173736538750386268303288092799556359342368745639637618222988443994468258770175897124116365432441789839282349599344891885860697583945858626254351501064686250900086637752395502795865364789626126696546457683957412450123154952314212902686534709035082978390276761364901587517517336285107229846437698005478083211814267760137069211732433744881708535062263571125664914748361884802403085741188251068733385725867629550088526131613363209836575316835099731570590036088146026899420445545943532759663378445669219819692206839513408293822501249911854131495684343018295465740414116017092691252671417520512186723076565959392982867559125469015752297082770567266117649983227527258643365555304286036727665316964697379783822365311123779865982656291543691183964553979948003999942227642504585063771239018215495432109598656323316044630383925531335298723143619155286911298331038828359975326605062923332441146418170074438463679759735005562903981657932010751699878313379742187323987620984225873662560639628785875803098123673103552596686459051887782227752618179718213996964485896609117758077047964652240846860173035424064211700394836846336963324509122376448899219075493715448741591407626316434986946109472190692950874542158317590464058180770724314559771943770266831629254489398744628125946494956918547596629509667890793513582168998109891239914145761185178050354969275948866219779011637508031253248785608570321740532153942450738658941879004754027937966737469831927577227739125269715681377396606884587370675357085191784235346557056873010009748984197164491384066430684433416641817449616607593279040537218448030945162870203757618756457017951376753900846149148061195301465560250122285417075134818273147430842531507308443219512006917597962902644383958510874084888398737462636303102517037319448495081476638297653289785315324217929956645257298983854897021325498662497562081601367088805594504727024304643384322686158664793701176235161969261498497967188759490469150624513680782847779498614505279368679684655888394989256598559666874677595258124183194492188827906957804516796748221405357310794362878424836489705674528456569546464996118263316788126868786381044526195895841203892321994143042106887622312696731650388750354171434080220935697375785820166957569185466738725012216897120339203865831757806107150826689260961303810494013338921169823132752493466644698542756723439012227109516933270932290763895506998173899837924983947544623601817820126014752241765421876629193255814997301695193210001215282726897003746089883086302336217470750031493988138674229663423232699325942217503121394063132940957924491767512208253749219007873199012882939409894569421604425559223925556481310757459423108466635006216774055693761750060515325499190482743428438293224830798101649711470644037374668415454004382738900379168657126439719473024462935348160988903485408332598428265014072922291432131037405929828330878037853157583453424071655424742505747491297225460001789257749513765924020334008482860710010036395704631749809421093776918008151534305148421512541952271469259598268783377246743502262982825832511153195793569562641514307041378363532955877593713107694565160840849299877279905826911048873128038428505111506804668026202314136337109075068935464260095096460127859503223307346423884391578532888939737280596891146756049536250303954303363224075657408760624366481602079784949204752978933323770451696913111932348773152388791677507150255463459020099824143411934437297239819489366108214621730908729318308740085111305973755722946466219720838061685112893206990289241949507453755375878580848225134214787878964901239312925446989427542061547395680566970223273572767705215012567337324998230225614577776268294527266226056854141884829540693638388864316946399150928623623305599251610122004097757169608073109983468304098529017619117286019037404073686010847066841260769994366196185732189098077158905254788608530968229316793374649072654959987102861029837094595309311595158799455578427093628744999332449939901988294818706659801048699316271730796483588669328276998451501144884446808617315216407995422302261442846101342750826175273046629189420283793098606529016117956104568056249200622053473280810968235412596406230867582815835255641237676639549155092569337809273791699451869517516989051958392640829271518260272747243428373926147101407959798019464449974731026195328549947425332036744633782239103749135476015359748794335551269994102370682618914799862387673582074291018981413601149290321063482557821492090313957081790439427135693336315809559192515613983373143271378841515090455208031753679652414599351941748810699433553148376521709053891098827731642397678047217208169902814155692631060868901648673240678806357090323831295192205286949999469554892965048547755102212484905872155014584027574127252353981784779704911139344996004164984642708620433338890923394561509548540236892028975939107195574405904240979543565482235547637436157727644735725379181397609807045530790850938644248702564269618333790569694111757784294922808184026476395039625586792030845335728909667273438239056751764517992210460057717539101031943351953798151472742662030941496400103744349541491183734597813016821018989660098241272998129499886718580941540963510395590033613556058331288279006980658628215987471036700664898774966328967471810484696554118486184590751777977162048903996614510223644302841540560717630050855104614566144185035400204933063263346435651857710208412922512144544197139739952618473163396520146147550649968190256310223490357949328750760955469690887034163738927070910042398953289665550702770772030085748779549316361859801949103716558404572009419154998995294917829353144396972465293037966739765301181230114187160731994836690603637697903951654345482294438288299475990983627974151780185676436339969204872113378587486774753221954882229425362927536561687135896641018282516050854754570719122427408045466483123887698710005743484252654288060482560463327034959409331420718380175670042943216835543728180968598085265938858454826289953883538053893258221156472997511219719962240015694832715286461227672887516368384524961879779894220190097253285242927969474629351039931965483051336771711223940741081762378258475386598840045500840050548402566359141598735457602589915134828593051645804848380301961148488178223701992334004438557598889040798353730811305599553983624369161150808239432501866136328980408134980431968288091632809104735538451749004065695891239949289758829338204412683593759279739931864893745262214793033211218849686672999933046241679749955830885288474602861920619026117258533585033857764278171274773372722164084734365007880404959019955624500699024213514899558025970576117841888620733246666601329515739175454341048217442026765270608086635688143954101063052285417354384860712165252813080581881066160200364314515143330419908148220100443302682512476221648887751964053610192472809136361392955798536330440665035408607952703304380038155236326481073654877916642745474262626492145586660568273725736003576173510348980476491868845907434860180406522054892979879449784953787687494695059165791655566128686019626588994085630941217827493257130886788888477290247499083082527286382583113219388236420619076945610479602693330434877533551567691622963818718967572520921613111493579013166117811358597555987887606567000257262779812444021126379690092004383342889186373276984812522604367127106431945133566300996244281492103469559760264214812112571023782935142034882072643547632260616370517454961311178401895688544580847292812509367671870774709142403202783173243357760197433893874116747110695234629031808246997651190177229721878089055738085271316444503641865708580672713929305165979154883761944935968958640972801769770142930214549819436197286445131717659491752598774757403761391116471725379848369330650474969005981103125393233633134342178499532271080624334149673097218834152001155840174126335619307068898432993065634393499900323264773638353196693601732937024594574838196766734305465061266221683294848025905689371370105042858061383869669423534264722730779230866151690680525646240459866016232010870988432611611772436190528503702137920032277138172743150673143699003769341316928025688620330362248276875663269582142268635866402925385997880627099512573716773265121406256086849986632038436850258434757045658475091784196079864184340510318607813173366492328041002458958873812606828010985842339095037023679797940106127913739030350611650587282179931136824876370107636273691738874477831072234769644654722137146138507232524555653187212012418088013446929615293564093144597070612376663662708788419440451348546166623827414204462988454301913463606523392874047825791670305996288005826593937682171939624599628638346393387394954329770411625865361103219015700254293538755433570288781873299679533740542063922388812972993113327199912168850445888692812876960574525581862728144288938238422812309134870204085953036379348921423470889297408116902914559212004320218847369995606293389610864710384660420320880375609253977107380715629554697705845705052445201748039899774727633732638938212024618327403204275073553998446102311863949915199245746474281893769675410362551716462329376701801499110319929263829603145514649731106948488582962777210464123959089924373217916044413703495095116261678823342212653964371235575330935876778264594694279056105972367599051704855802821537560963715304759993851334730460483774858391787739771955805067828611524069690753276141625694713449660567742585093176744274853401257096765291782584676535439760649847598995474159867960757007904600088875177847905714739750576673316588905034127921046457544892430506975834593386636511658121555968253644285368261862811279384359543688223072498759057551292140901486378167407811358683477170574809550150934553616867463175046004275285178605111137460120583661859502523545033104147092387733448465843882670289149948496423881193369604417118115710074861747350614464735763457655646935392204980359333505123065517074874636426814176233131838394159205625632761732200127644492294139005793486231699806216414152501763578239307247183182118337983931798049625215065640158236136544239676464637280769808311453930309301655183241076254895990865482619159064193595091999182194884731727760462243504655458756466681050975557259810259342654815230881567502270329896616555733663411740466608523142425289560819906649006378488214173072620373765248138269153208301770680499573808400282102650580946647114938500390226059177596771249250767596782982213134315389058880336724416209674999177577671796120462951923254608635113003054316661279870962133130812754837734237377651935965905906424562645359575860619118866031514679892066184141399038976317248873564960383800636171832180017775028098776159122025429446777765437598256326762139388299651505465042325659969939959669610738386346922190391245556594009226347755959434504220738578483146380080469996812627565206112597377467450325627628672099479071854270017865046784111712966724119066201561767136168074381413456064274617221635972226809358147966447436690863411970222083463568736039358363586892416419028555281573412251277828112123980656094164779687950088294467002475202487085581393140389654989853801889668046250020723094747467473158749744298094211226257427335645735150582458316740154303613860217372221461386159790824663727570220258673956899486080319733296324068731867285712379129384411702885478972741873549640907945389848672386811608910547040612084688544176254310510099596614372603180444000418530425184006028209303259888195256929454798220989677869728856006157691396698583204534339189243252900648586346653788635248602448207372325093978786289070036508666103901607121938460330242787903585544466206985966605368214392918058611114161751941167019593862781125322296519864172643237663525873949499212664403623366290590292353494187669191509979817765697712502192324328003349121845907876757828808819730758479159262775070708886575953037667337029375402396712438067976128370436379239099494939304177991124254890023897218068984473148426755311234799551127024244650016847666583351801925728776536057785851268403969837541990494206040569008315641778737530770080801364242427217778530833165135027028991814594380887268371809094949183525845162831628920926095616977313926287883246983397725076081521944965054618957064234974866690010186739401330513861080625534784955627818110077334439540631990669255030279229916457028647336768884280352017932045196282112549128608309507245575044476894025553985910418236140837076366774190425918997328571291255432990398118493119316520400944969459565874880373574306719211540994051311917470707118327430772404484995995237207867218957413417690687641063070329102503913805229047928285604421733841375702995144410210367566559426258933348659983593071602487629138469992951075681360260395427263985450932508703460368402669986063334515042486025123846977901805844887681583467467462411521399693808121192979088597224942779277989691813880700305149569396032978704841643096995748441762486667277765489536159249710608541359346616897366014246369124403876068180609238833476686532583554639126028076681530818448357579524123608885371173839918308083081667854423435561144779389107196110944158086967948287311556522060567747663814712113529839859292350335790034457043467232428790586845260542875435786682682976350491953540402790865550873383207844843853575768715180741572592780090212642192368932261714123282637143191050996701476064678911861086576100513412661964835357775541535449592371042161301342168525119798044317170642186158531985085173919840168075901511159501594231383025377697967960456761177710693214542992730409851984694871794399620339319187146351625763204857815958943237240682353708396425524558541100436708642937252947247398426760521385097011331187917808412090649642935135230275669624986148619349779847884175301284293787616638141855723562673203620899578220594703405889435438026036852028040350107492152776931678850370196771819293215643592643954632034408412395583580009863638053966123280228350010956901252048700350139896751616423157456768093739224448315636516376763221418343118529310831385114663936032801140306212532456352615455023787273759286930296543462981899352372568854699655664649062016869008784179019442013329445429231706443425066983543122570523863079894634874232193874477395686148596068081580674042183131693071729049002383041614403130536804441161724577499847593091836637112917604145645439528915225631824197451729695199998622504766850164880644149369304241430181388402117037144537571763598500406199973292126430191583614040064191128341709777534632389685743984162979464498363319921085869061698499332996024495370822581706059396956046537760242116264472746285200616240037548045775286032264411002991798123155215643590735134614976688465243508849250684164205164587835028287954614883478260768039010980230463784881462137105527146203722626893830778824619836459261971692954148801722913199015006317070132291762380533157376035308897358334872558435733750840008227561806992470551384254158746245478149462974016788484247243713232252504982371798730693743222214686938281757329181880209192651669881916244199511794881325249217576776554997301825007144186151057232104009849561627386316790938317028757843215379039103706026741832030681675936709897170077511579511381844908878176535719506039576279429184916252952860709005758498933834241740750584690143546690122592094411013838318681259561830154634000313703639433735782043586432784803210308429445390222715450295019209442356547056742767466726319264644607967621434164033507609194991849672168731488611622513947971901025989361230265464763521471649970408287552113341545075023620081195417953207205951142016476337900372467117457920376773986807244810673743200459140932482478745886333264851379428453593410955835720067388126820314512989426721688274910677176544058436057038616668259873650840123623414153082227768178077533514254704648327244023932271346359411534432360780237200876190799414171006191829805625843549772969205165878461611623135256548407804554395849896901510871235714194556363296213026260761501840955646126543127239451328647624926785311434697585109840206905556159208584476157534185788945219653338922253893066396245794861531417466836077601318214157970951946998068607732329714236758113083573126291670477322109597412961084374183987332764806499435330944680427917820281115414906009431445303494289149776575366637990221372357808934734635339949584290019267521844323625787694247373144717771478394087764435070871229234983652802235919719193919030564607057980293297534215381989561009219497327889500252271870325088217157037596199586142919774685866356199454455415625958663926572211499091369045523129396940870645861416790036704482135923389028612620022544472617421732454146808684197053057571153269241823069756421626363557728431515877002176314780403601512959753639024709333751534924046734117600206418679084941473451809086826055768809025093237207069024427747271287293204278974375203744741841620014681717541181161966912703786875303975460956468878474669177577645685005570788978090431900864413220521542979635934008032430091937038526776540363750601009799358546213372037719804976145133252939298533276135594894525083792762570164461038145948098953927445645760076585160323438517065884572432781231271998373608059850424565328107943637804443270152599252421885936532128689658691838697478065581070442273396695205975636022546405697356769858708956385947756534102732795287264075718349676068511220652464145605291902057449070270642852859092536506103245314194285819457936783236851799148283332198396527985821935128169922878976216981050985848844527357202750032318461463309908322634196890117649683320761974614841654109750093424933267959887937394980878118370111195145574202602796850954167929286909701494096927005068034749236221000842166751376190582325389921988656612412802598259018495394585036306974614404034999362156217236836898879013435076256697317277422476596791255173340701527111517464448083479345997659801715613040471357750211662699578224140598717891372660831123020821665303372191264390930725890650388408249912781663454430942925066095664438206458759108788349739279056305090229268129600112438498067111412676101863592368780118582514993748718793977514226049421193624942819443743449615180833288971911623878657745454112351021929172154473476579364955499714731242727256842504119391804534563525753103231023457492875474053153550470519083523233096235446420330919679692773801681378994577592072046913677466158679921508647557601543826917195927742841369223764830927492811920387448577678953968822089103596760547531893758385463664453019400985898288840799211004922316830903540718376948698761951116336883447871218220908440959597994417780822273979674385174544101709309713057863154032117073468801682508119658984445120845549573007985410847019533043654064612903890179096192120772856789797651256432929892516358036596636854202364669007247484818522784911267726298984173860783353693579891134101559015406178232471464058669086450389586571504473645557621918666499771008564538313425446501471482242745712738532646041676996266597763708984454380333383012316180412883550273386990740412322841333158990812332954488053935627599770592865537922969092801017911765069102683867762173597657785288486775349431301038714426162474506108115710498499357737519408122552645817005692596462747844597932601299588857530584500357932640516139906584223799092180233593032712752049715316392983668952591829860261296841833917343265390160779091734018156852283361495052941466878462956338592054707501945781318297707400110267364920660847033258705283256906975030723303800953070898013635733837677972485478128313109356472102475651765937482500702352858976731274719669941195279679910897396216796679383130353475162856247347145364447011564213974897829027348525255668317747192884395567901305679473085849756186422748713182256448547161520775771608926475402470809990250949516618250290907908483138937110420090652698673435716919745676364506467277479714055466454702803182761557375038323068502803799292769845973563878858920904077519905115754993683230743141260941866465483581477397858449164733202400838521622684318683611661895628126724103710765072826741802941834360855670185322228628695179882752695501752079400628183430610652383490360635812198174907582068893404998667064038558713739485865456020082995589070442837117086327720054586684489966814117784166534906464903585281828506348033461444372314125765444943872004079407292598396538502806042010240532588170460766208020754635182023362237032721317838757552602813110039127080532847845136155328366482959307382081350098513181477762732528028028805708297903941464371096776309652790637752222389287483839448758610181676799428787932295163756998192749635769716474157793164122678623069476865127992996283912837794235263557387742697164443375714078446635395824289298606876855565613592647759116401442641274274806134352134245310884712204413778850782402584201990264465555075660412392858907334093823326391458694277423699091523642378403587691076277862290208731461539030276021743780780356805273115309905956997712911174484210755257616456692957213239161396456084319329197356594558755093766382721112514234303738837906495012725280106418033204572442070026657838780488014193242089237299384796676051805069290583853274174942712725943719804579158848059790444614456229954889655061273321497878824572033410718706470746382315556840000972265431663702530372502071276985526611088068939705601110775791158764930498430354088190036908344404498417778335874332185047896633159687333333725702357000339811216753433417249067977119676042790116361629771041835532753102608590207811107258335567533652203878690730771937747654553756004277268900484791537334203713119014428869606251816327266334583744342987831111781451984706780975634866703489931268219714335782905663104325828673060659034636448247103320227007595984978470632149638065473453864112706811774885439920832955612723553551885454078617365807207384156555714253943435517745992479521672312828866089329958567521580351116079225270439892291373753165910960089173938779770524612708341189500862087972532468817212717999609651729067957288145021655818263882528237833650041909216640370583983693768796767314730822930508784594538224996056870461176637233674160378329932758932600199943496917090822612046475154729946634731107449076606241124816056559359729553512807198969942298341918530356353494774473101090913709334729131206502954631919030759176747583356020239582103340892600022588537801985464320160225654067629605542355689066052317204529371250199548489667970413158293828028599970760388374878237172440029750193969073950625255455540940679558425379270626599804728262411755107327264888994387660950035819661125051791485202428398135570693390742400973582509925681040708884322336552386441964093988195624071541409468235155401243740517257864986025840155250132959223747832572947996300020818976226161821455032614140605721898716228377121494449177637846582001488654678416724462721811350398350429869857620917798863686926388030519264253219060970538358476234441367033943009791993634313395615085105544408043147872263911534261198575122778514783770119626738380343517170079827147512261441837969840909039496320456037077155356093523335722179000260313534958673544938410566989165507782671302000016092263398333330446269435346156761944094004908861028827174539134256383930487735654830185581613064487281931051633765523685747266219267980831975300998809838488822608008649633430295591722375651720612545127674675090502106286455117519143276459421007894070414703252376801704306820522637906622544078783007423281863658800616394030686665458838769425765659661361439144109666337776905304122678277133451645545989552982339731541635854013842070969784393698727221586429848812881910514609699236844461319081361737769285490340728545469404774236162108972263071246171998343406062642159393929633852086570918367154273856945327953469435872855373507911125600471780092775426725174425290353831037277896198001947686108176423111221054355318307335585273324837266197579717907472899367101828909405938712555609868409644482492107419668518409360215731062169063155869767198136665943101337845438614767541844121315439243341251244369090571222243723529659411265116803649642910620442426574517189765608186003209979579145897585509321601248247595091754597712697268056911921910579650733169523312119202506296496659716787678713822041787219400484342027438725146936738222590308798472082268612991498041335950849029402071762944184655477410962290900153963562021665302311542490044769340354454970663311557779199800538943325715513322416586640546880945491935789746900769708207357973201289158908082478274870547743719772242554016302043599183842552209225713447197943681697075963963174070867794652823650079310581465977113311088233503872692861575992443988221935388170308685560373630889154793508966831003655055691814684145324743807141349790519736127798239309425269189648309415549525232752253741836862631048349161201052776150437453183752056705998731975481556152650244733153173927952924377659261843077620752224202626148233058610149966471357798475578946935360985587747907367144323604789568485381510334977134028010920349094410039390162582689528902895414591636515824175492497506007074774946461705008541902169686249015207891322052685037453843870350656864782546740970045389763204081261360686179741406235511310266194859550400272059390058413713135543802614631920074194315127019510944698579969586305019624887854943887655804571234990299812696223055738878989176069061282594329530602190810816306422546119231849987736075401684585057972378496545910157480376115406220991530644777630319961188535393710604903303313572176942079889337102900521635406226542699764159913188861087948353282933179533010547735865289671711542822063179360033230113696997534993448743461669431057560164281190183926990675041030970437768587770757378900065849810742329150598002072060221674941531394002717104433402034657572956501782960546232681272834388447813072517293661292554073395759360706031611344822033587261078833701512646885881799977064838776722372697558574152455294623341961965132039087182930377837374231997797954730721601424232963690499349757791761785972397560376713958626969871788749376543824823181091462381664035784737640405757258394888213274427647940334170794255470303842236856748579819603380508094661170778960177807528797047181901134428758108143421352170181299556618270981405289989067801189979318580257169653188242506824355311703125487972490629812260308769213830672465012425584531091705477975414855306930224478495569192999296260894033203127959352427454522299577084693166813196475665246857357073943617320553212281119024296174899440711984679199221541780841225691776417352055732686109019889897852542461279121373873150120040255531979535807562343864556282697557516888748943012752914071782321482142137877539151138112151353828930870687222599033092566469412205376623919657619708492929335564045501340138189832372512968673068152895013315107307920396255039906579152589057073818463939802071049034868167301756527721048165677668664971597739120297953367520096988910638911234554677233254283238041442543147278108904897460599819608166613867328611142517319095393526049273094187326308832597933010542664975428836319361361937818090778913090111391861974975161375495665782287426615322144422492399148445751227758415880790696809759787121604568744208919717229304555756351480446899082967499071844152765789892365821048636485355688845373527451928203751004978055583523656758425272601349520134590892209157618805498202790828921310324766584521993835762588237823544254705803214716936769540455837126324735877205857658233826330270017778027310701010570249496580684817043612290433286832085286293396935981922862770923689660408227379913816837066352914236820685666564856900650572648035391360317758801575247545233180617548708418993127261291030592423800567580704819409207258950795903021997631509327792391952492331064471824933690251146975085243349707044072438775837559694100746310507182402498917547677878345513327543970384932242955211181532064574027376263021760567464701882956921188287557937575215408609797868774444111686469282941953959238497670877047183935580942784009519123699145622440128319656811243320415561630373340395312892942915602831517056032369301003099734176569007622593419138681396827294503557482776496684040318632712829118824220381831440854356042644056366765157689229848915868044381617465598352010887680364534430311675670379474684329616912749962806636133790224987874837058861377035293027474255602508609397882144676993102171509043648923683293212622659409456217604522897993189328149792763518995226517025657945470967128393430470523200729212112802442140662189364663683652162398402551693433039723051892362120282106151626028229003551384615420974616443106257819532831964711178968478645505816513434455076178753096059035261323627842769714087979122931733781807975998318579978236499505962731602568756324433269805045034126445476218012197618253712780436103808392833663318045531985575682550097197187203119526116763811302757006843996275406211994206554039689552895645189127826160002147020147439729920079184199406042089760736023425885761032474281055056916257919175176432226609671103483792726592203309702162781962029183803614536151923622466204026419769705340743128041635212316884142087227641207545903458237358543161025356487316842968287234200921924133532773113276887687690705673070291273300871561680862240011929970458566578711499712618667998379758737732400996774638279608238125285804544237650711944244184140046479158708111655776878642806024501067043543906791231583546483775200583999491643300163467345140742141937234129317244494771379921957817836832980765723634318055432363244840486641206453869647253162954958051453396876123264453899105098300588696865389293042823548067988485764402765515745870569457813779450524397310491938027331536687212106231360333328071156545858792267936613612357738301539599192413694870214950530952889376630517860973737577090182378131205481621498906640788060571248612172471969561919320235309982279184183615953690435861418640313903393598329506013643209190983374048904025144867515142103057166678789616649936953411043786496682905733321475525977572247817311819845850752090761432022221656228965231131291098613942464345978215787945854253155575477161299081273348500416114402528453188563857556539328700263308512105974483308165574881901343131887204465253559852322058722009566795125221671867599950764586700548992926325751866001985318519391625405517855628800193815204376751746594057999753205911967421216575478653461297021801542352333899010400391235122217872865890972401484385408831969051415112056669429641924551008256797970800859435179545453718327463152917839860306019451414202023790252837969283644983226563096270413761272742362903109900371705075651856537045366878513287219609978797745302951981022886463764388817489257648962975403211152716349002331108195875916419635549339885220819445024118371359865217553245510669115013653241720575007888034970731395990588941043824586564590225322474111624045063045206523839411450711062124788020835160307614087370908800022415219619228581804350799577509671872603199548650534040086359138799116319947216324090995222219404653856024057262220417643472938933117590358661697312203197514088737876588593803206594909264561197668537300964479476419695052138842586285972356607017891918282653632899335135439956246290315239068800086509873294399210451814728519008618064276414993166145616110490674410070255473510604535091246041576318813730184145770251539785696887782041450304006122055430828746655811102427106675813717742660901085623876601301017601144955054293326175081006833522438877711095140368300346822970656147346977349026062077917277287100384443395845983444108932169278992794001188918671599093128708201354904587068365554973825058853747205767938785205840733325541394633406705576436445691582408587018423342397574603867283637345555063095471397971515261030255764039484474231495879521007307133722435289868295586354994508339600709632352119119221906620342196412546652968709395415357730182251000358728587776780707250000016605546055734438306258062959804333106689821515333544565525623057158785213052154034066722806470040819067710087977027282251735469288027883498901786408838616075047219551331515758490301904759810262900241699066721048860594494530666291473899313061176721446270748912903168513049878239262008987100515116866987017684518953669505093693887346425732354204405524977440940338286134988700381748001533304378582978709915873457493434511431360397574558089737453973030126831666620120070844171182489774832818250223939992471705726641581087454909440557633495520832805421662573931533493457905223835207853484690704499438912703644408641695779859653822850612659595826248756209287107971344521630552913688678979588873249964784833457992959601941090321567108007023264663875460657000037412166315287290632276867584290816748870084114117732384943393145122386728985505052503365039399115819439662891551000326388957780190262069063317036447338706693361710655780741169490166387533796056578816350357926134212960244670560910820087662333427673759767222047860341845206960823591360521353875516245948883611320518268087755161881122986801362297517271132383007210431958851775286384867580633562391342863796354686698435934599933317211419111974130557844802239289955777178990915121594834187555279055092573855167415477377569427484102217200103344284652316012170491798644170247393279483074222220327656710754730689356682478616927248800541726640263646370068764385236537678205978991124300492213132761051488143347546290747813126435938472598282068337816268828049070556486466211043430823334427826211924974310149707434859208429492576303373446341265375870443137326976794041331713703610517006859962011344933182625916599545608516619642133313581818215080225174925998046314025516046087404190468660618051596856915451940427146543398266030379125253416492399960336423089260626170711658720535343052321967065978754065058226699666805544323011748142084906950198925954259373297159211039390380704582767076786875543577908900556764068098991994771599917139684055175624654327189074581837628417465050057499974826201145686032939817005218137418750824710032421169187844263762232358414578937603848733292005323023936726413813571658964344744951648408401967833545708763926816224437920864669294323819979862714221234994512777099823880615742561256773606914767033266587346185271813348071864288242704852397086478087109245132819182846196718246923909680086837668642086402716068649034987619523006965081898654534466169926150361204022555310112696850756598028843564342399659697883890637435232798364635965122730359011560153072759246576842574046402773523594180096338286228062797915065259989225635815291149606450347178569275917875005206372308267148731064880726948609687544461215577624186893189543211324414268405723843918029818466261250376893317986995950548836616958636112643562739158618955561857370661138310152147378575475311727605825861274952414414570445857273668162966177387321595974377258128014033667485259766715923038048188454140469553477113309761775465902990433662872837872436776161864774851672805405584659500286610071310438376353189834821776828963137029132110582216357808707269243621541778973292232099374614562513310851035499857666614872478209570152389330573480977626275887742045542003211076937545124575229879131625280525063119925688718274168296091165308172291101899270978166649946163716571326082549325545614329903145473757769293464391082062951661004008551122185057443519857116797472412927330900916722350018044935928675506446412761445115516144468717438250720568566867696399805216593298108450897496215049667646385545436637683684840557308760198611954545773207888853707918893023326587708194349341323709852235532179289256232095924796465831410169098964058990537369178688089918356764997236759642893811246505231589432528839762596566628876708492904195729093534492037431335946368809419731287954064461679578466551382036404670021435226009178745085630961454732287053706076855815224853911257181647082397550643973792551851223345643396992827732078953560307697837795899084873469591058807493041183542936200414012084851641984198445767900645431511684726514181130093887526175783189770874630744902560461085912581846973904748877506654700495867650174037822657910348886536250061876308561099287254925284500118547231590870397053037231254821365896652251024250415484126118207861577934170633929548310072691115763415415146219985088208364003212028299148919428567336843864219813053512906788468580585625268063803855259456626450312315332934228867017366765877501743847963813727047196001282553938430251449565769066540854937633931095848762095655104914177642635161171148783034290485764003790057597635795315636869645210076915744428423338110000826684769979656388899775882916486460907047862377330448421654286988504652874463243862381547667630483816590810043703730543654198543541566654141844349964931972191854788133503409786400137826339288187249739849282617578360700760221320473207576045697713267493261132431849078940958613485784236638007285794048529585108507407179333746810039939668602095484092628660543198054301402092684434076500244542201328163032461014369692247413359433751105707324174856218000893891458701031176741643510380833657283990804111589318446177268421650779680849975827731237139165580604967962130139889773695411376525287956384226782336085223575816836049805758626827329599378339622504049180989107732515394552844417661078593569282741652637144044532070615186957482322460705156349828231761919163130057795117726291223531817452230672872193456116659293846441986183090072132718375850456653340837194531435492028466915059871072274523488070473514792683520690465235017533536125098329691559785517610736596488812077001086018745533170212763387642452358265320882416353911538440306528083904012817285856652913586263598893737407523251504540655436939900367228389526072552680826935956869546642746573613057036286958541240498049688029824557625478053118065990223989363884093138599629595423524967702460975041175705660499760028396545109121525021618920454860961033673662461717909508367698791717419641722410243206504647420125363506827308598994987054794221597574488133632233957532568383748208462134179774316522742730527323662745429492582800927760968256306069936225033160694770182375454835043384248503652160019620772661904513516572963324700999195521922982086441712596499775509984895329162897393085063972352188903707039893309596487502823276059077983783895787427405545934299668842038498080335654282772739706542555033420953363212522261696400183553417318020583497886691465155369331079708331450354109847223869738033417522306730345270688247629703845727887053076604848708093652646590053149734043401228577077484575058372216084828769158205113188061580021065894109706607900392241043271590313439942829269475381424254932005809920971549266383877361503502124222743929993409141504659867089565320448376925657722811584200574757920855644323314293746374384938929278682969667651337567145824514940473511214013457767810766955106087386107829861210091517260313638805494607128253931710027456175375452008555298637290739673235518103056168785292886864293183642596413031570327412357422530590860586987329492566231732782016858495553400715120223766212496983669300147704604798398585461346671428024585970798981161688204088876295204645642017351262845543858350245384044491666718335903476347030601886947919224068377041602912077772706544598591986945675839232179462475757214001312973726848036820810944954131323584883587794962862383643415104440764709727265442794286452553928597188473340413434332840365701306331836603675394143920839666454053109856633807109499505112235682149641106799149088233503527471394159918787148273350487876012049618710621382348257584335090184567472285204673933954335925515569946736414633695749159788349047178830086716723796299025106245435812257037667018895460442172262514018892514470361884699692890183516358843278488307240125274162888443058475490545728984770634693450292334764615366986827573309577344177666124362932868752663634106206725076458253950207713410583943718961562475621877155821968246777962636550785597766884201989714686431482496927330972579152791501827792120979665315605160743164984758242641619857261680045840930695369159810255188919616019064144566663732115051645805850879741546535091504979855635321270247263361003777037092189085009889872798852658655161530486793999537442417643994499180983208764664117921367253103771521287622202340723287992164213083751495964198316370194028735474601965819576684212659707699020829899979473010261792299066428988130815480083867014681828723847120266306202018246227409986846347217679950705901615204427847551282442579449337808961304024102825741509046422130966274474895739336434944245291811584169278447038947807776477891256458591170987374292113665783858747383468401873731587661138757709660413395692190726312258375377981438388163117608213592951009387983492151680060813068213322854010798294375802080671243373381013172015242099009094444125168300215925736545235155019731773942522751852478096469531031851892657583596623114346759106208611756067908619193489339533531445942711979915531927631287579778337900145396033363354925827888072922451101458552660619424466345971949681991065127140494394810543349100360551061828402962193845457471332897769586310347494194618018789584646222750336332118059629673562319858252217995254536941310665288323084489670319345683725181843731082632690883076598461359973751123237972875310720137106929167305688846184372263671473462474375242388350264613604526584295631972418696865939995554846027141718536304883275327161411230820581536330795210722529878718338861574276857422042073311243228108634584908717499528726157651278252241940072800145643673429453507246634179801741210715667596608062565005796202363866479502870759864496964331490133000090226994056896559464928722236442121565255353961090280712612823238898037590693643072275000196904166381284350696682401713376576682283897065404472199069857487322366928540194132354988881660256276317595669728143889452690734661096642752128337285635868153685966243227329060667974215246759654231541553414343755639696166435210613982014592769340553982758974364862441769150602334690929139331192184373560070762430596544903059323786460399620866945808261555578089556226615395327553917545065474376244571034628849429093308900150765546008385118700882174729697946722934278754707832443974082039142951876519965659618105709365135255311718277122019850073326195016619366720336832024863928787328418836012263237184719728143776386765074296145258134479208984010526472701660510335457766214564803035226157720951218956938361526528558145896334122063612417279603999010474913742791579307869713549403395285834296860407872898662803867897494832524903383435222549545637908523258940894206370185134207732618467577099345505922836728620598388270390268260091478383461451306699381395368684286330237773276736150779582453297237690175436306889554629604118516081581469549021725581744504370598609588838461681625831753673929638654918876686717016101567210613172989688942903102834438183653038838052976008630532450336018522669024731149641746083346388184848863522371983848093623601642615888208909295306496685651734072196179580551313685764865529821989266874236474894690638739140101660498388301871850742637219593129635251711723551938620947387409525773078239930449493164354764738706657386192956872553870637799295505240975760644552457951804702348518908171632582507839905580891061325806771981853661102520587514572746068439321713868470399540135877683936314303590071956557489290430780243528278056445261827444894572851677113925138849790442335982745410923844313961251609136187122695476298940701297704332336484387605149077965998614362906251093254335167533013540596204878380162160367996994063926545095634760268567449802832061156675230075732839456459891954644503476739949331735766980764771881955734624428719951409565947360978697838532283758491706671670382564299770243262106065771658184041506697466334999191805831132519391393431573832353804945420849676984127504562335270802541196537695768074993723515163717052873633766706019734926877769744514293530859335628180716421505854503698020405935830234711647926018545004364314235441336331779615630658886243238724956195924381774086171591819285591229785540776699884212645359057425748428171146925267432425227903945319003926433412748764480404238839799398376013216346398524370901917450619670679108487617076673022101355517558958486394698049083794204364291939948904377926579836160278672536955846740705733126651422403997406394881632364898449595546948044760085950964396660493008881578177641248755899519734762057080307864994119313405729257606475112004322099738055837122108958559080126983591114718123112634205602331333492186324957076001851360858609680824318428538360272055747918484309875184246100541024983813105796459621595311892969053372814834501453663120379545399843462165992311042074456063971049096081320510541454895006693890187722459667771533049166524945604886713877604284199207243065685671440436743327171964951449943961627295251580412213353423090938856775088225982887637736338796844005592496164915885568974766775937417547887222601359543616235686215475741474422922032739324555889349242119227273755024379438152822948848538343503011414047062658095808711044724662561282754654059462300054270006839668066728031700019406406368551242370165621009637195098380395906183089568937736234244682051271152188141167752003096846036370159484312308267095234929731597388996699141079210485417004719829323816372564504995422415545698533074429102226296954033933740788623786153321978097984777185155663202134907589261759599141898649330719080095866059739764090821863641489076225466372043633297992327497825547137498474311561932298433844443172823462245648121451965242503075875070447876432521448595812580266729829859213633240071679535421845669207699559811893656726404766039820718304600565826843636330985537527804805769603516872355418775648114560804119550193814822849825367648486732612548671120135124735353934367746791423970244300906165110862867293887908051845614823943364396162227568405546129025885500333342821636215995883209792228872892697627842928655638363847669558502244030638038737319912699127269843003137597893913459922387460817964169537890146411756845506432169367522580861749525679379576037093434909269761022503240982628468690597325157850065100128574654074811507780646010388225702740472828833629213744955720571624349192419891330696261736237159689830525816473360897278812839875649725618186689001014054428989558592831786560226771666935952800011736197395504088750041415161645065357793908376313410708342188686359125663776964288807789002645664885932549263787350878047885874043728729675838073352956768454610999547409597439631220928231039362455002128739855711284819181321333379977911487159025115003326122713674086422348657216489287322183598703048786291677964573793594837084642159150790577891707709049843487294091466335954112932389349286948486314923574905634655525803322590577950403298971079627939830689717949155144797435514205985194893475007833029500976436420995991551097543393122166865912627691801787477682918494643102654607939665135712252758561885747235371270625865924491627058602179082294661358025392666870591672271136573432798390795969644524102541634006216017791884478588038883587072026427662908675991288733568391493618076785006099391656271235878897785971545291194956612492174068161428037887523624868666942334952616284571376178380721364685473239527334684741095920259657649142553771794319177658956002827962527170888731366918860831603488758045280398599140173974437044374156343954810929899165518856645817384494517242930770387761236888303199298339449702552794205188819877545776794219419494408991882825662412918761605091917164902475262650603776616316155539723688676100052952320673125802107101362828242675946444387855214291360926989478491295470776203133670067552709774475480662315180801984815138290419512063256208305170260600996469584318826322096877890831390950107043466480673611585374035308134335157058506305869238873882293444857346821229458966922083368701155816060735996431464966296679916474230366646680746785860742525106511401849879392982883137301490868115594402766656618340132335296118479545804324116471692421601001773178792325064550672679217164003562731217023667016925878294351990922925327842325894594968397813288180931125965653723123562159661482028000974771628867961244497447579483910260817465662174636088472494141290944421556959163911510701499355712161663728788320791836118828292412257814113218072549774588505865584625882488141401792347642424663278070158341147756412410504353553689177309721848523100543598852538347185603005825537303263740356313111283392794208874561367546434693277904298833693284862782264217932724421077871353293417113645103057172453223164650147313870836690196793892252345267229759907984734352476726085822978645340368314637391865945591506059448373196457020413945624106042521638700105814827601536903883241033869535766773558557841108348161806923164159664824570647781678519430098514272596852880174606050292982881794375272274330442326428114845249460418001585477203764329922226437688953195383423740093994352123076101677540317634600722811957181520655018862827715862982459369336073096395508941027472424723587637655435881386610878726048143105730383635267898976242856641898868971023151737612050209438676538747904178794597441260691878138111199528439927979911222790917111184098479046555354541485456645565770340808608486012263318506949658471333728163079925119129066445709348656075201344258791132740543857953400619140202980268987486860205027734984761399544996596873074969002402202010248596855756454523891701525979580882592258600240511895379905718533026272845635239591756499615333001815157434548008962902784772399921128632493591353113905487747531767945429124200002751931773689643276031967821676414669619727030574874462343723845685694023295421543408930290436868133447624624366034257335624078585546542180950891271436923709989530773581774588868833680204633645370476597518569377965081846475917354346946406816226798007997866479575685782629434813919793899902544105437607114213176574781439115840667883255382850993406397332704675843425331121108042599233178576028369065872002067988878161706434991299139779727911351776817609920010864424426560858388522644507446447857616944904782993688041782321467426916209319239176669967122607961678048546119666720101994294595599777812678984728977127836971692518737942391652417182678407626797834748654670701466069393051068497246369319397949156547632230180017029294382105913148185292595467108105885595134674708654359201904445107624919356521971108485667066434196221280986500709301508355353688884697050710609182904164672395867599080257175337995579073938473522450164552975531396932040977538983394576106258832625099564943318118384490963176444140196754509904087038551245595250063235108648019328956225932665506045813471708358008259574862760741360040086573879454765398531745821189964256055663431648524068993761466234858483864279281082692685003765898719793346254056620806985541894595574095830402306807872915598823838835440234371814330331172851257329897540460066758646864043248578906601159177882507061921940311736228479950883943018060510972364512072598288773357159401478595740355592754368983719516745789911742434421447248902394051934605222083666350182782089016636234063545024797837005831834312263934206127850780206598961473229392245290165690122369947741046766004014266453928525623312469359809807604217529643452819398966668995148899685179654864306560559366545724136675088642243663317846630757067632637139438918430354349468615852749635131280700001632967474505206809954054411435040986520826218203936013589475919044495749828336161687908225585460040898553977501831073717345363808499957337035867223907385887910377959491502117044306438001339106640999121613534779878046006421726129937933957712040376596864287718560535486652776316258064240384996569514154342290742806034683938547273711774442314658127183530626894764874998434606775852688861546937029895149874043888785388825840442011424431202819229245391474700117134167540093856766500216431016234324356579040746888891371741071203656742923699633276160465214019846613995982285667097637536099545170864743580554472713451364209599762885353591188529335620905555407391277982460341905047705870762115278463422415515937213239673436494385173920368346663240019690943724341094940658090270795155382195174045037760030547069904338923287398699217103898702182608381087316309223910749622142112517203945987480507092902660310011625917002070179289791732582850709261337194140788080356315219156483514932213421221650529392733135686883748500674504468697526786951601386157046015514619426573349487900572779048045954761056089411537701577064165503484265782556755231346564133768496467335355005186961183849054739153681364172821136124820244851077881561350995105054060044347574474396686952015729540220630591241672564128534011972463431186838995858261071509893289239068308661297543828053835575785241948933724301928779680455813264630172229882984280151889946345246044507644255571387279235048956987569360820695504716428089515894124937084001044292981958984385694694555665470737973651039538526211406136837444691890633882507651653844956073638578864424544055806321318153029452863339102759462636803357767205378038416325055144712403026587797120002835327527906018031450823276243124302313128320498391905091045192549106242378101534922779243766617035088858224158928465810889786901713368310755656534357663376086005847781430503211743003635934629594551680223275835166555001770533591255891236091781692740474695108738649102539862252283188804876614749909583117962501370454734072138768315629040043301735347398840645391003279438415245838008454372264218088568168150297738404795064840312392921691121915556699440071907709969298457162132077560549193740632767407365532409752691099453883951238424123016714155497413012376483407689215392996582387454102635646761249684320845459175850292543059661327888242163078436657933322137849666276055561187346412141551199116105545498186611262018287318690007599431431972231566821107087800819684297008235858788889764910594272971010987380989252782620073459229881609283291466955881185749427372415104543514405257674932135168335446304860050623204254262977111186505227289798775353253445676080041333588333100479854795810419919281857885297969656651694363042839372486693338440345558005394673738792799180246444138562591193299488350294552888237875712864327901776738247301145642170746815118145874951094432020595340776876172796306730055935236098271522670836248752091306106998416375991924446321009964227915033557477068878493227410765687956587252623503210018888562767874300703023952618728581673314124098041877926932374705282481098716904777843863413764957569196891324555476469472763907170461647220723646892991136110002259509154600886214939723500082231371732939496947635432279243448866731003086301531487928832381688473488950539951089637758218790811309797216135549236643981152605450276027854057603118565180420637614668655729632166291352654687167237526890777324197594478576899839564572662732432511244715907857565575472141372808709269205251817716404716816854884587841279347896866453715625766204224535234880411785551435512766947329438919016844827954014690053182521611345037463014108360812130730533140545775258539500348233504540341800075203024364676328931835805192597136469801757140237744298082053316434463359689790506137798151725532981172710446012419711566206632852296824010756714829732538102797565327883390571158933972903836047605621149071765673614494191961101730804222170295869075120504926679295788513588253816374191364165246181203790236339369373538716622041175566135836350524337664864532660519604266361910686612956175245288709802685613869576057000411112815678542744648683319389458725996249180840103046034886894751606443839427777689041678454783870064247446622432057299358000644854427389962505644944768554525949592915995843118456009086317106529410618391943620709627877824533679772601744720358619908623391219538127467902333697578847835595748740658223150435161150594515992358687965508295467277338736238994744384401933210677748888237678415932182274580962591292606891925926094549920515097234193562708705174020654970796451871456228060053564949018831447804153146574210172090162480592950370256770047156129991215032047771028455126781697802984756701569797622471733505757398970524053143638651570628780395306529187731605066899813755207981930495954526365301289992427731842021215262178731774444703699819393137780989971331557217443087388344639119079956267856139260033877233144288652409410889012499141382167866061889326678399592428747015311434248849534877091893663894678741097711662447290666300230847826592786138527957557457913395898565444493097024483582547563582072985296383810376195989202370659718835438639381447336159681121720751376713451559092239807736771833730707839341449815229371412785975363534660277336019131388988752592125063026335991895951829064273694968389399358735603215554873184951107946693390284023635958243173368094556028089176315472742270151430643077593840485469398222198550351684673520877019218904715849112391174718955513756740985335182997554433491477946293174151999272888951152691187737294592938116061268922301752222715088271420728585872130359802631803101976527084766060189371403239314031197435030867284727987778877021953220526030441354281256774528897938615116580359664100130650619926668944676300490555330231786796813815889444438480862593020477682347324793636149930947326040059877131270160437492067045064021617667749400296647212598257431858812023515202657698014024421423510191576196454358738664138254270029811145890518377016889071185724090209923848137124354742774065839781970431677875985930565542731296711302982494419059117180395533934334847898731214339581947510329041655375579489168803806896155365053869919347450075088594226765259982052297363547091245144816331769412143688578010831217767466759648300406852669458165896801210267638315292140244270338766642803440381374912467192388584346334236133965558534985181515466816745953606879325614556196621175677992942852948501941800972139762939240709294287768350471840924808080720140479853434610698665654160905337221922562177465568750168035355216585198539093255607494597033849623742230242761709648125117253497710072544958476360254238593072943099126512177019168492631604538950689718397613128406253148168742446519191994767395580789982357824041689309212991627873165286531749253774763169192933916431719663260671278657701220048530448914925986909494800415558370530247001532704096429669218105507691517642515037011789539085783416831566789739936259973971352709049151900350763332484719173216963521429900458601646894060148593785413025023382755059301322885664540675166747629189766164870937061145502998159104205015566478190105536049820431709998986925277426284336431730008466410106880756504037589742160698022557747695254451051496492461798004915848372836505827589813309112269710727908405978380407268187046953630760961040432126945486936895880429176934684839977103721364734075876512886890678637937875613168541227257927703763317907498453056002660752293155849670899461360906888471623221426835852634245773422587456647778448406559702113363842050231262424944165607638619487511268399839927367049236428361176724449790367366078097232750697614779548601071819750844911932908877962730270618592427370967537857998126517434948106370365486265661008872383108627804060984803002426979401227117619261028423660218134050544402999315365453998310381733057508996928482786855638132635926185681878590910900452812507404311039140134251186910551618426177963386820078186729800166223972829496899003472141365503724688322664737972927747048948027359666596574363843107517052207225573647768445445405215286545736215003184871752620119414604176663053410776617707858019162095219507858032033096339649211844741586853087310950131132245354428501383209611802354370521262547515442548107611940991801112702187080573193876097380110752291167338973964110434271302458388587529700065424262831752488324514665297502361383407839800192708901655785622907622572347201265419277048350599948863058309214800055631469809366490304422136487987637317540474077341723685018014284062586909451670776693810832272213671133936365269037091961265147118366091281248520966312777966931581977575954246945634158710101655653946216393440394163038111833502476663994629759410661587836064335064115886270787561593422564910459406330888188236485822975672815663038471001668256440074714760697716504765119102839248177543332849860461983240423408951828522454900795524314996841514065002925502885080065397482099770298926180290355624179360129418950313538547720633819154626956049715949605994537923841423377863716712995931245583806195312998835837702042952177071816175138044562654230172788199556094548947829249964520881060396963761065920325117141165611707591811867368225292455678596142968868596495709396435013938922109104158659440841326066912753648701522494093368710737511232205142400229498046848003492576244510747388945390490897126274888477736920107915086105551412298937478408232600878504925809900868217131143592949773163678467206217857629894400451359232410397628392055140918123285112387546898885648796788030364083038379635832626359254415879808846212703137848903860893133077742822523189201714330833826193197928115116062941052529174911482559048331309735919768793113123965273690530791412974370024960447830853488360813134819229687278688333930717305913480569660719066507125977883295105592282121399000976730308581260504385122211636834794819512807232209628906490217967980994083305997934677375411549292801634204312069660253787746441861599993731738231510330102162255431433242087798314669434445419978076908368124384724811236766748416795121833597604125661204298112873760175506938359048424916680379515955474902159144030014158683952556360927735591129300859253170230113097731504545778098659223026530082221763666495030055749898712376836640635856046607382040272714788517279704060985328252648796437053755229161084352147016684622617769847841915005270647533289453800763893098834749164022187214224037120743452661120288068355356295516344554487048917111017655861214066997976411872988509631014323525422630032839037609410799768898859688255523686797152520629377329771426827627797959865391447199714313087310091082017230705860277757008177065059210352380795327914937158181631112712073159439610827920323103677627100401798514433867444466000675018832965556720022537057192272385088582573260958306932986505552078975627616502746581881075735525174313273123540768094510211140873074538092033368615889514858799769539453823731899447864141720116603022820928851460559187399625392318238736480735948344168116945551292162861230139842901611754539242679012346869216241591637440049389509754163166623862185319821117781270892331689199365966952425354710374017375173390336140857167092987448309748121352954465849049516962142516786237984650613932014163758632914269794987132445416693229940372429192028068561827901822602559010191272652270262641325986257017978171647243426012713400910352620623332475718794638537622512354937495422238497942598369164299666835738755009158872657026830340346672582667105520374392929701060414840596411565584156427586264806324566514190486538314007338341987778916214586812615243457400515845109174645501656138768088860019540127160193566329332901070733614485379224226569977935643005099939872187025087008728042805420284841945269940153276958780150672658503688127216472129153290921327447982705867981640809891027040043669474807705005855525567153728086830021449336262911943666803040853632856758074658463989999979848395804861219128022118465534510364613708038881853082018299926475784087934380403741046394557414102330465909022413843897796139181854193812620744607356558341547232246581337440028062302267392191181893352924394998311534708195858101394595128125486437031750551473211675937975910064087350860199582957402203659289066156404856865044139525720288552758797678095191643052884053809446869134150363796593530500325754408707455504373970098529126610095357200943687733524700186798765009585483867708625454836706930891221862136099395944968679690374952479893872227705694952301807708712382684521121801540507279034682181299832204644237966305201941982215880561616347788109745708067002446040780585405858490456165758120999657518501986687118657244540060456664952610631442765584289866725344444534193654631459922838339959200059439431431971358915511730740125413174711309814967450143530534894228445941450128534459013663274566251376201647587997874072722070607383551807162919421655003347235206630721565672703606950901593757076379598545505781709414609428878257335284752124005151587677826772626856626643813229639190509560763720636317616822882969783415852363992764159798548387680222696553826882553540641706375932585042264680658911696844528418434082998239958605151302759897022607311137411124084412097047408256719762295354173630778418932564078511979518553668618034501411256298958089734439056824652473941262678140187703414848669557459339568268320712728771993528874519220953291189014527117004577432314563569335159114099134527434492308533027612643075969889046184423657480760247351056091121782817589938703268032630835175176863098970478168300473821700605939923041530363520062280127774762418160299344171081750624204898883278531840826553104190338669629115743627919698994341673752700192460905689509582095857576519465664329321533767319128998296073357058032366120049791409193069862203296703052534557217866728147970005548720592955927912267440953970829048541248878869809595506327950481729615818543666581438388483161556845463197263531879929857531735876819963041113691073779976922241913681471541149341255202366638580701693954955593016880090845711150484333147036345145721808224371780209639948390137800151332185774170141568493369924758685232461678313346356711991486864316407340659128729590988230760295253327521665521806299089751354816401297251376103494437503213627197585534858357591617357470899800503406478797406793826207052868233440298106063144357015755119920923078424274105877240954871243457583642523216636983665571628034102942683344827665036121641505624372043960473723523894371204949170206771380468019368873951543995928268852342736296862499901810201664207275227171141534252311252450336215127911408544738783599447159775015666356490582685135438705090182544459929497549322302539448699915218297615912954432930861403373781212244334286526010447084692443558034466035464908794088294457773587374926109324938238138838510623218546043059402771877934593068553603312952892232717864198511343964113141611068804992498959253575922900755121355822446600421890819015503455907204144494665253964077302171304305287900316790673039903255886046645166795988160259621882576532293751481178106929341377081737941090189706232251067664040845953442872678536850424784574424384512514509951223023055531148200479221231539805707773214895834237034512590399637262529562626375169241300585444539712506028315120811936245051966187878207517496662748338565427265246203341918831066797345164345182049611066620366437658017353299385979760848637508469492449597212994809601217577237006981834179918705878491963359470113121630513253589085614038417984523325657085615822776310486112733131877408967541670584329430177211440794021695287113337459738887716096202357152195429782557620612450610745536500048626050214067699155517808776406101680284305758415010090049431518049135590036494732309352366508026120114761872424167222716116061001594419704627933320164823491442804110470692685386874565445665703692674846277949690349923596566533902900483699024891290962461910625024335270313578031106686745741450041844428192843314288243639038859736159134856356092539742634449630294074189855799116152552920352491958306936700676904146265026449402994236662569661471608122380394826894053324917127855644583307472611559970691156461054518882878858173337492479751065677394424329693176272838790006661453437784378973800735637346412993937262353045424892811340667540257713833385343138792181591169739672127765306428593049285397605759094462590487367207491349481917759459527518482024787739723618573369824381120123960442550195946134212415051144474018945135386960525378761789834166673475595078182143133295466158365870439238781895523505818606070618453328079265937903048996546464813854232174448779296591788827064937730969889029774549391652768905325726681618657784767454895886221616335712943674266222329314173356882505873764717609943822307461383138015330105843782733857017346191750351469183846837803719016142685889651949318025548795813626324793966974807098194884851579959411526359675980632712063479627286715846156354977586294697503847659426170765998008826773189925359645359819733085385568667948804302431092130801653076078016820399560241100422925250485099117438329683330678309734304933941757998423711336687319617300927416131556375467510930118555789504546751208524493854984342850830757259756961720373561230396620921968484719968139257794514328096277720544045069356033762857392168844479589137539313129486404133894543379744881609646207551844174058057038543716067472542649917840949128133756180890717999765702627003348774796310431576584360102133778745715998824644806492858047977257982026121935546902084045666304472978044911605981417394801754179661000446360275445025678917285421344255619915115939392945111215784499403326584649395082615148406033490721743051235673280996914532894859197575654523452897564420364171385099136059602217026779817633492722449675188067338964146495737834004604939937183085253634866064567312173571655069003665801514993593377235401039996574219796836248927105032047476851624922322413029391475348413673374923908708894968745573453249789560361209201153758433265002706798310501176624435851384197182707986469074263117018737284759644405418792814263781727362490326921340600684007191604409878651731692321301500389197024685714276135237179388441254415608823628460290750245376427425563035336962105316864312184433149703540896599935942463123523024609912514558316909986109627647105078934389182853494902041330400111788606247409698175343353777509373958495338433554994269843297361568366163712074204326267027178396605080762600376093791963388397775363626169154012243847359489376317058338943148174023065304809804932097232621618938337503467628672153517766928834443782515722612504000014134577684204522884415971650416445710647246628588634631379856917648930597556331307153105828567169912308821943319183114888056757291906424466316240426846417730948720533903296422833284848362089619351398044799032430958429695400333761026029845499275178519355164335552135926783754533344211801624823416286627874226228324681941769810723789879254883294877891583466360302611458062261572373721930088231707255567943545296665583439892554194113005146695326023974425962066194550861675060919874034678608913898199548440217280830670045488901640030653945540506108070677583906721570574705722860802736700419268312966710534379734030535256620184204213076099802353710941638813045930954376945983972348909484421368829941579771005931612221140009495372178991657098362917368773812507379239526783840603135593342143980448138048618594146457618483491503710271728984819896814198620798378133739543415855570022783010858022141224769287980818051014560174779042663670654876633584867250078738684213830954302071040517495288054806415635748709291036980466575143428738944650193312061404873492823624358572430340401178184263804760559192141370795644795104005134225865079639382347478552727724340093776286594331972596355063475147233741758595159602722615305240525447952908778639416322348549863771250235306101201311346330450078288562490046829385418236305811869072994106406668000165272297205561803631173353862092167485900403084388591912446937325296331992509148558028080917704457659087198845216651986853951486047428095099046987621788691021268096813251592205486119649777654590823051991730357379478855580339090676826690874017570988634787823410776805412463619324343888103397075607655969296114583982803254884634124976982786279901320729509109249563713969123984524243027429268680126183518785848816372456585017841520520680338052111261139240842982708838734749282639604437058128473819161491702900832502261111778976848179842199717586671854935136942232503946240921243959906768525428463538668225235901622985045892707441791982219754385212624440667303753273695067188917121129656766528661716549793253977180771611417822383544330042210577874296704104194315384067635246019403444824265024568412219679049076609884258492907721953111402393637922836476312053063203046706609954750219952573563904725274284005464566228605080954828298017036616839463888848187680348769558524833939603279526680101015987135581048859728716173675637748913062830095735028819530968014006563394873711527276409347657081668725357052474082220730614070188940555415365532370806591008524067508136819427841143807912651804483557004033722221989244317682658295496402437487935709317980697380858735108568237400245505708552961543163210453704719810100007275769453888215661614341752851881845342011289232496401805565461706323406601478296273705061194716927605951756480518597657222881676258131562800114218861108917399028446118975233468104011476061799688974818670337264077826296439076786603058152393431540663262849045561587154538776448303971314249292055665454114979816695164472755553628437385851669421443189249663170756172394036007131947253054201721876519985561442326740257246101798131627059453526344541141451257886036163024349760936134386556836027495392490424869412856717017876297367041025133770959815130115545858772536128737696015715277585510804144012206067667723397001404794160531501243422281868143453271747992178899408429819089742229987759899718423100361200120825900211709541338323164710464208611251913727361475781463658202879145473504649320318011704319157611571433037534970037244967102061674650269688783122289295772987567706871406222381972427984417838503959496774693776789990611746922741169338043031993384150124084469906317826595879336551887598473424795152675939215332779815875148956060206892212957851249416984706176306913057963626754235019865399257622379284565367005157345720761687724604864644337847676653465563628684782921698569796977977177380152916774257997020531338837177294591138960867890547619466425274726761511083249704645187479971420468889579663383550028609427057713402483513325804386489638955244820375702265857170379224599402237264341438663766138018983611059029996557336373864602155185316799820947126193326101323743312768917584996793837889527747180475860863201753962281656730059099008738043431415266068029017118543440178725771783858051799423334447325558581063991775409220587222080151417465224722890220961043881681143630498204785375199619682178193953218380354320778512578103155731351624355273238097842529113507501185515802306056853451582237421706334994862446527188507263347052732277177929627735657079312500212619766061658548021254371153871672853413756393923889063067887068477623513273797566060642082028146817717601055381403625130755409520943620730111827857231454326270355605975095193815501832598219033451968946799719594789377300273119209545586663299849015195943382011141888324058080640705973372752508979693038813749591686602196113344542848904058032009747195224999546019012148567085946599636430077321681508441065892740289507484301549842121221988414048701453750162976143116564586909143814710553886518399870563582777598211866950746001659235419032692516763393208223812196513187106943461925847531830114176194544127389260473565423193471741573353054443054325518457269865011212398943248757922464312394135869362388022729927076366389887689738004764307485771011160640956545929359309071462125221141832970961741600740040725148408143889418951678079808699463699892941819307178180780619854603010072517255678996984584735681906661537480454294715681899412374786978968916298777268335065026104654267565096905940693284124623524906242299736683478398019080240535882167902781433421931036127426123848563254656679520572125568936457173146874351488697350771248679635318218090585292202963969847582854266855859286336787482322291036558244741443791063110759905910761126760678768358523478154183604281463225818497577545756552900641675431272026130050070527570254034476745703302093186437178312870520656917752677826484640295389879401585206546000318771370944820665770304051456639008052356277956509604612313253740069596659533658246375340848818175129072980455448954894225850968522956405375200553710834694937555489926305943423315018668732812279082221255309156172915950416916687137424964849468463698747669849734639522701265279505308841945980267676202828589639487101115213584908008956986035780378523324510842272089360979235728844977848661964231893868734458899269050522491324019023164397313330492365770870651654998100845443668896748730193857125766003987497958208348838357938723857321032888296868153653838401643366533957482041975343630884756762035342260463887050424712397029687888430440841079776870169474744486803866495795018830723996798856167278860906084232390341101446681216666783948672152280174170529082395180858552605138421501556122416161708110022152312633276089054784242338321048988557104972544407869556397017754328536636357947702002146820035160651024111367171092001922020025071181154678675339315994479689598009077061994354681187363652168558446118287328358671800070034195657556675464140886716049826539407149714535982145174803215992483966236192443905170472536562833176443676138238807584269862457861342407023990171244853758307755646332200847149149166171531604074253630052547713209410374685658687432656805588984368322452030022689474213767029934511051119331509735720126550327227019216591077176725127939837261916580499628906078455673932073279777596813219451170409622684826177632178603946656489582377528246473107847219241253222882958603307046008720963997123039110011365330057534513114136652307964806835797619585915894907351996368099381412866947505540022017973906407779964001812831963663453409315881394917748806105054265350090483625817102333839781186739525967451039157877438465640085453504286241800339553477786481717816544984455094022631792087404226841714539816967160774325187967299737719274283176261673684692734472214377461503881985372263142801018390658348786771100106628662073562285143891741200745126925788600538059376156816119495416173245557930884840212163709742432046972274106285852584705489785408857821264845499635541456631676421381647588684949327571107739586949061535020943833330422063587859292983173116555417479727402378691934701146662250778791797010873508912340723906871168765005705218324607531451258981165565790204392229296594525756895817580638074529166026417443619655211472747324158633917026815334936908013891538455143179359882104849645171790229047385139849010543763478800810249680320339192936594959899554118915119871787793820788708163687012562091911351180801120757518208566857143106622214118165922583371933952934838019790691848681523167330169117699521748570970281112547742171419744165849078114447897951805094850448452952823718941420364379758995550537163365539144513316799332262518280023278027430161883885451823125801023834656162653274071715492293170176989206428221896051558021135180114762515595171334457832321101449585766888595411012412247461079127048114893656724244796628554376138562435807396521841066512429521229134734121854919848068072499755990611830612369820940733526270721729670920759936337290459174344109637725285419189406587296477697988373880747788591591440722828123736808584488821463549164178435975135634011873798352311145504385580029052996612501456313738837066265353773740292587727512827506983751392808176735997580371562789284350704059203567263633542197454053675853403911886564563397945010808131801272981305732212413374396887542000618959956869339056123183196866963276386402273794157631274152887816444260677770190259580778427773977399069344921791342763044358181343471831842572714499778397933283790076490199081124175681688489608108594098599839260429532825053385095582824691991092095367908168910325072598528129818125307935567402872966565029100309553313435341999329331370292397780475541634683048236009854312416216162041508149083585722455523632953796653300510944297577027932510542713474045510467860443794365420493658198885079193630205518027555199951104664881747593255690593171599548860918656136082977841632203682698564782469379041607121045858438249631662462549127251077740764687034427601864352899738004041178528049162947660131362651887890285609252956412902669031376472977699450510523021118023128831675429079191890481625376479367857151948403484799946499211387764065466703588619248178813740651618024110796858291611817018513991368391467828779728573897883315270538764973922369897744597521821617180463192841147282449807975534539672634466082795519117851480705085265441043500779061713498739894211339850816778636690755368894612670363169244094450505782989772852759023615918620526298128699975195106453826770381912179537733787428366978626227210271487672810100031212759924201110657905170625584738846794889825597872799443592577981640369262173224313565421311582582502831942532821010438682548051998906615717158345513798125431972697730031982895145580597576274186213522855166587992823463139958883985077422080068188815567076067229189850908730138096253030936124732268294087760706977740359855317800133574998432698906681314402540392232467014253658504408356674862127654530558075330479198677616096510974972820177352199710395548033664015340781147166510654255506718414848532273328130040968485440381135452426703559169018117125151338267880254509447474982283334482184818756527411173958919782308749973102771371160828382222610146332962830777993171932202959025028295112557401693739257451220338863667469519275249478745759569910953842466800194048099983077149586179995114472897349796118516487552777333492312058479591251460708812651272161483239212194462692695450505677785919131107511977514099063017940801266049199947133950726417204991545699143200671116100643443060036072219431272330889537460550565792159990520317609969359941560397040660288064448454298739421370386202486847217111503264069662524640283234796017521791654616761812821345645594539658158956580672126777825108179118909105056589020956523593637263745255703714845665369339178192481971475468410145964228576796306639382006170435889907528339060746586908127394754048126234969850142521154562229692276976438214814949592075578238624764413280476755860576789848991904134263578792819212006972753219257267769614266069713223564975136567792244993790589039258270729990394330252085680473304996042302319814304012997457759790548611057004181861919570827776545077415856982623617392006826862167046765950217470245929513029417529509477419858914022602515528437066746243885638892631288074658732912401927230886272945393639801308147284322184720395886284925102528219136288111567459779444119364412977006281752149888421627810644199019734732562925611321776869024451904000678066101040297596486181784975351236618375757713768840688482126507195879132597164236368039790854331352966742904086241495254541948170803829254472427538431705087815116374373432699467899653031287841587466870074807500980784839760727976160141791734890283797283482307729383284928542656737789149486100426404305742724744479548040473635300988158006010756908731472310803335115303594260836707994276407519730686821763133306908668578282160090923710867548808720646043880357100801759929372220342295280410800449537737152316997768691706470536866964850573492752304167269413840220724723909508483320985955360988880689277850280201960949166378199423712527083348298544179579565899562461103822267196284014248375872117924267111822603239246285671261486582070069542875224852236918264640364234706533120633289003483238673294751261721962899378788056170702838023866485217088639268101672732293137208458282956751023647271546341345679024967701656154108738312781577828951547122703827809754188969092033796712796948876659405419529609079392933990515333536661045406032719409888060089551594391980038920393369457819561224944586290859494955608427362700730960152408278698975349698512370949594786453515155697425520447013434471884729126302720337254566598744801264774353703886940607849444992437033335357453609598100180693842620120449455294173367904904529872641956499151422502241486503464296910959462668219630604884259324310942775810478870500294407936613359678693238977882050968318349155822421141415377051775770614216273814554363983935605336282126558096319641590083526040246414410771253170765720654238205581176735587790857409941842399130502001380497990911753244096232726212483814211483339250277299004139020844000290752329322038526085522983090364985899260742492652406558923224264556275736711511122633759682356266243255434419428598843729843741313640037118409384758226744867204077143185720346993918384775803840122414101976128131596757172232189757919234723089368876340260170875798682065417597852739178867276172791652833077840010629095254434022892447095168789256973605770559449000455414195261685589974374272818559338091938576147746015359434552170175598464154792381743044845802991109714451852554017309234037612377760763993870079639050485450958430858611386276269010326603459698223247271167025688051821632329296706207876557945120729074043713865601685885407283781179905156158424974413604604693090993473667386926046065623306869752577779769677120082308636362007617397526961117718438775540748968181858710090326593610113460587723635207119114749920885196156189065327513481257914951770954126891968940508261229938219240797814287710879354980422603931444735411874365965558357288058005730170376245115285284996293833402589174745186562181060833638312638418628386390358369130164946781732422054166988253704904967895657874377945544711275128739170715373548035108103684961445166875696896560467248764956612281456680093405302117134417379475132438985006543493357081212489035912383042106415373522651988074667864297074930605186192798824205870121804963522678830230383276554046766468651726013802938028736477551896401674722308518260837168724409027158769471501177893854777337752882263336638354139462546768854218019298592046196140220638056983900017379926720399883336418627452173068935163974221336248643408100262607314175542845858423614241339879567906760040727673043896211106370072698939116869467363289956425977669026102601509755969774528494236974576570925801675517685004334875226449912332500000996817184493523590753966410337986378527283140569046307532682582191970944853801936281785972387819405132853398626516018012372692226126197070342834108603876058189606992528206649171594174448602551033259666725966555236960326256833891936058513933504423858725370542356946496450185618566280901113913903364581569951123415305390653966974271378407698728849823458250521794117897767563674035839167457104908740951090804786738629942916053875626275168136455990235208915437147623906454212157170939854278719187626501537003304780869951977441771793253229152967529171061513515804102655113587134035991698676178634029231439770021648391177673146047289297367958450423550095659383052150845523441498612130997574832955302156257136387786353299421613910361718989619916921403922679729880677189917417772714340222621825914465884297184778792069836022327752948875511664116135207102643203705076388834066821812051733233024870417228474897543510536122603306468024114394650429187138804779632926954233509352692615642081380941369359467277306318152803427537237286586660483028114599351551771607259360274347079688623210516484896225692984966268146748119823387926405445542421699572577619743625348378236474972225247691882195276215488491596112078440631795731729748721790840067633849588950652642524436015937953616325601292197692942188717011428122565343171845713685202458169854942839627298753841330608501819324425234107918750365854299357139415795321931470390552261086201062110181620859399335654854517773827170347675504111119319963191899871321576801125411942449249464693107057004463652578191870815353781678346405942301262507489262834916453011457872277907069477405136685009907613036480178936595786506633111329298918171329937317563849871200731995482708615827244791016637863835850606931416180481495004369870091736875801615378970062664749556003923544765353770769407729421344355409659890476216831898228788470043247777272621408512557919676874700809998399533834116789850061297134074289273583980742225845427578715498435102687753379068516876278710402478737471661907810504685520201335374216911943310147259166843564953768828353987345204466172717041042209642560172002490046032935285400616466954568271291213730803251499441112692179261722340538488021662725701564267394456313145720136951538415994522796899565475233775070404774312434022663762837054647839197230658906893368916602206717769425993295778824556588643208967612130121238552651572534985481288161914839661759839550568007286310333967219030994116725264701122361656410017047173385122535201239925745141950400673971097892901006469072294930387308890163690599378874516506367639574620946113370061206804669571974608075411068116879967646282492799498205705329940994840548138310553633095026341458422684536256051932028717549938657084518518471441678467992690721754760876585871489527900719055432646823128319110802326472473763797881371447351826962897627696694144179985763206596642619892958809524443795333597206849502036893160972440845987845027636425648588730679418310183688755263276083321214339177923535799025460647565997339242420812111133042467374659424919665558587716376585027771923828700228938958887842109586575734042066897206987095615389581652782125672310526102431951674856047633304919563173605352072674245689301517065621999110810147706854119296376386478044561580946570756621043105792560361245708598887036122410469516531696493060528817422834126024574189436093533806355589770204392835961051862072713789235448280336536515366361397484207121726586228368016282271634887213750496763349066177364908082629816621721022660664470118985440459661783492078999772944133042296286048474849346337023841391437213764360766397519038895260039549558090522585472109917296507016657291310001628084225253786331323648965370040603844919819397078716774545963705399523231543239120580900094483935411160399457888490774649301998383389803062006139822223720738802430074586159763883662548993197607531615688886582346443443145427068275863769025386465727035257759423735137161948801578206765975993256533986524970015170152278760490410366652238245560816994701928514313902837213220694296175054587373024066251337740028737209163986830543286767402479592038606922516912366506678811704485050962207169833122385802320420478635786528340344912009207731018494822068243649516082702172340687698197453814017187711834746377398419385255720439822270110627274276252102510784262205909972547249666740115701435959413834349311621777308782172000154567051392129328958729099276018606364960890522481246462658427818573778033349090467867249513123892168640959823712013237240517975228674180602794397550133226272915985339598588041487938587269783305405612993087438589605603088269079743179114353752220337047551985440493814022091567402517244302273347618942728967053190488168143794839884041411155807233100808842379637481665391116694623992812847011458366968962959571316826839692813287735160551665322156140896112197718065268067612392565798944486300120047969345246531591879069221408328278553352832895084690275275028999336847548322687962636161454735568264127227621658310337477684540568442402770231330711418621630643326226517049216913046876016063735142442431381574377077786679327248470642578992644144167459579503276955399838177271778475682684376004309147517750796991067248438698836464865957389666609476183049422546008768983367594694498831534232865544932577975675695803850412859611142059271027248053013901796455365328529302927166642912053782151519019589350094992952993961098487710286754100971446716229511286110641415518015510470381507227736133597387796200655477138442231042697147598647699855807141611628066520330506124044939403633089319660524935540902445677737507137712193907425633003403718441728504330458023828036684494150780048419352358820983859948212170969164782742398523504062534854051445962381001181753197890453390642656843298376381942759222327962302359456045175922099241279247680728511506661868409603862300819403930196741408618217324481968243745188684987861113218692423884103675903180728334962670463648312059213110838270334080118143341691957856241271720195592673684334522532440285035421130720133926573317300469340339966815049749735815435546284692901965800589267795345680915473073669384213400906900475591554403180094408136311005530580848749425900862101314950286902161942692910472317283539889635693500846342706950399642158828070941803899420977250008341473311492136756771769977597813483287627723104843919725441274487992062309216114860372094245103890469677292666981928321746529656292492597238823947845955797568331682957238743199868477934762302005528550986594639666589058229901791213442508589923028754408493024899886722217687552811399555514099340806109762864390371522319011397838332079945495956016716192789763741303147857051058129209327396912946058404375812513434866022717306271366374049257259988501890729197467677798363574163170804712510203969624087425404004287070713198539456652267572760233632285478986058902198068181867460160757869108769671893632232756493096260041665320622379718022144076360698834953979842386719288822341633306942433287123360296373099138112518742144052975623277286802246510649718518615862547596401755483424933061859650231440486100897396110848403695560066167893814223515497352402034892871736971226343430148944120110210426204901035119762404249870881464375783994029269387100053056987988320429746131309336905242314428230503599438931031643661232642234693577946646214848111128896895499171600940910681335111345829901149530509044131507082082955623426556615233462163184681965401816796618054873766736787117771351226132996498902927351607120898933784754626293685881541533386828152022473795778262857260716388514944411010814823173870038742062286830446699863553153342597457475331544592045442234919752973743664892750038371193067682402933235481514494184179328988868351428269061762341932909505303834313560015584301305749321466274548501194953574039704956523385461192566088878248527211202116577665131294364804263312517618563432750594976303772491108736908709320609203367936062004854461485618686017445539724622279907314546839332729617972179577348045366311934231824531727210394765702711488187941565944035393433019697591717759425729870322834785210443295034786676282453199888496717441610646914884845815573796411878801899977212338157381202170634163798032240055253921832158622173356464782100088782501356559534613910866396090492163328883812004499826139215120210101688171878396234737868895284847656418429910632616958967238652460908673097567259294923507953993313290671014593886064447113871195909969369432590228523788392212295233843178559661616576169157697059065755812527508982695423000784651569131025890529535740028304535339345943485867028317661316152432780850405320764037116396528305717979700510621306408470899703674291791877921690455968028680968901956934985054910180233032805516114213850092258757586996406202193268227170679548779046427465433062795296615670909259159232198034616326728841206345582848537736702899976244037989267105072557831124938385029526576037143628691514074517133966556156507043370675204276146922727003911652400981010354045630181965676342974422309332269947017415648135502622418184870709966439856105159084464913483817089620841498450577660984067661486546801881277036176991749415890895241580228519113668908456837595804203462984975335168741471059066514541717617874537242694023613676875186216532009805121202865903792690527995699900188309497023651167692619148793880156538320465590182213750233667437948443056476248745710362024323275406897408433825462709418825363325132803296966579847017681116755597526685149535403590572133855778646292863961767387637306765170947566929995457914546137331040608507585949755410971783384087372380316740072011513008785017126268650825828001173358131709942501332639461245745779906169149761480412251681456778261405658031491859603373571347916944250303554503517228971989822914941851707176589021575929130111378561967523540025597370998462149329379854238371055439649689888681479921106622069322144614283651760352068661208562886950250855716591764921732656360000487061081285896741683539464825886331648290118655293748208893625339549998905696413242682749877062484220205933631727010958887347140050286396124698510853770865641539524889781018923125936579626711430805846706932021399060697269084904488953852358151019939382795677218394384185346580782064906428144410257660947071748031194653841488774502710923710862301792438678181605086861724555538454878974965190458377514351777893313113434532456087161571010016457590823499243456554763401186371211591030298188935679791993950536087801281485713978122748392451551566063396189492391988282894508747930809698659567787368988867482811820095754054726608125872031640074290385652503731781948773975686019645756929487837620737092868472214574890718078779378686891617390162378838407812241951411461719701016382888933989051599169157733895865144341907003315446217609168581070916728348923136695909317477250668224642916104380915442554988587344491839719471729705998962693397252456566509122066892248952565819276973760554874871831959387439941240630983370667844851251759944354175832203185633802177048513617247924082253719097888667178705342830411442695349985401946147678093066614057076290758032143079351914438131647498144899472522205204350894482894133444632168058472508612345651110525591167287627229606094078877099582244013064850068427134490159308680566680770035160399443008003708727742766027771471969180104183228644475993954053388428867590798898665495935867497505373505311674548889671931810781666129066616030705949428375770080634866845857593873047441094597543743103028548987074471437259978082982990174371408321654630894519490095550771579372714334700472579825231353346581042014061768462704450181643254846388785501077179927002757616320191608632811022145230660051906784137945036875650303049501354154999340383291501457158565171729857925881150531159584458280970443425873202353566294469520455351468899994977953095679220355623225341197605408077674387439843018837733813861728591131414080073917115260497606557166939953381934032558968596901311592581530942170887785167160834500980576675212459703670522488707336711711041624624435524364105299795195931180148679675741697105862282889140970594366012772858562293137159063037099083272823689865728295817388311704760198120444502688928617232843914442259076704225988772522247300948833166783885563460638509139351892736333698421132704947376994588714916424890207486018134428665816792149933644325665790796721221565617557699316360175760549286558454074897355378974361002686090787684877444779746662270213081801875931445952982382712634469962391965314469361723344600977598168372526494898017355027664972401290747604044897870564739516428690759054352416106471384202789173154840948690683507942797497632405121737888579149478354598256011218853162868196537182306676932515681625531651303026604742777649849011183031073608883963676228361920947858792432304351758352970036289309467790720214095775273269357518592926105717349964321755082779432831048221605831842610938207341087770008568384612457314835043920967467990145392748154741666438867321698642773106150459489524871360615701320030987738139423709305216282923050927566484546609290437051370555323878660002144831024257741169597402269194347894098124214912589294471477705161041391773120718675400333821615209307461172379381454916464320757232197428120459426005707854578850082023784749624893047783538012856002063400252201250381892518500094220752198943526196585779137706057063302084761337149309500454598307447542065660443474356323529413405507276639942230030444568191944794615051356342582847048897024581005903651470922388373725250731220478613275832998472197300042453123072589272043089957416955673035197365425646158510430485992876298544369528645013206010132367983609126163327208768905543668538720213580326553055185343477942346522837047128957820012429751149639150615743703034972806104947179708781291124820661075225430545004836782066243653037108889653520591759429815039288116628944310905715165242829637701475673159977575403310104425373928385480230628029422202282388774434825420464229143108749805133484124694514350587212727325523319913441111627666006823978421874995536364588191786974511211083980097615598669656446409793771763585014472486482523157058346289111280671814809803854482315735880151917548165215851625998621070944743233311193970292149263373882857347520921417933877009277414121363642095903867199881350450844084428261382603860573672821265858481659806836843788526480714706127691961844144491413662616218717632233843819989230113204706025227155586020859947480017074703859566503947279644653123713508015030780044961487591430353091196279691533084298690653643469294674405729813356099939925212128309933186129094314328738176618169740232652038717858597982103752727137082431168108732325244981290826952296903497914901512576565686447509034695803360579687099105236515766872989515194568334098813089531070074863788480779710820450965239602959484441587524839146492464975378986333015046715305847367602988444968512480004933435914182052296616285464759967690844329499958540267207216109922740836647909825722267838707845949981477272929155772291338513477729707891096728380654339090612621977289349283062918946909372426483358000854894631594498998273048520862481940457277599345568515455052254253849172572690476515529107900742687591816425903509048264076295394580946752777087294120086954585384863117510995730121254207841445846139370126463889529067976259388091434889475148900242874977443717512100599584009101447684007643388252194326282716351335510989333482655774228353440987986763414255414160906549160568246759385564841768018647449628719370271285589450680067576681731830441641281280451347212564972095690663433576911748780853017930092787856991402310706597018943178028794427130840372900775871904701120835921135858742067093111392167845372758433069749079089508643029210795897361010944531861494688608422152073977877065987133734731013374808445903087533373715537667773438704542656420498459314050994267174113680485785349614584671480010163849442737208789461140153244302859902743594988119660029693477764798163269468228250851030270731769720130040091189829417758877134219270739165696765554121774833399148294524424249667877408208595821889711783577822335082574304490289034600062086939976964054019864055105624938342680438038588407110380980760911943402790742494446904768708881827888264128099171219944148338227434745917605077494443372743206922929648821074735373005670341080175742673528725172411667398193416531644370335641370934587658061434503096786576326586565669047117885131866043785098557173722926322665379861978342581214916514254100690008940402388657768282067547153307063828882922029207197694738523526276989124991371140343507630862415670236767863735330001542242256757298052143478841932233575275098521169848028444324504715074321047693204769418365193684209097517239168780349565010151620285077977641731789359013699910406658709493467132326911395095844045824395786039953075552654088260459655610253469905457419228002111092140475103999998017102786925300520574978293986986842256414965110291166662045702311506704401344152034824225704446347802558542596558078516946874733353361628179420053863896995151197047010594785300969556961132497000501837971642578942115971676283738238323043523517516150213291266715139032634327864603047079141800366320511021679570217187440878342231071946703478933773182859385414731678448367859228368997249572828606490553315408582250004589702158438860866178370097117224954958224329882571536577833250832330060327579646042358269936588871640107547874795412783589470045626442221364432977720806880383037645865144415673817564625708108501932822277129983717796083526943733228687760205776387275213463435011125059275446188536834151775478277260418826063727550518378912318349359374839252984692191095629703351646872864298808380212389013442510240818427902442936454457585352646948258256419172718391626170681931645545143012266856507081411356756852839321045426864428041654749682774726326804576945404801393792417742449976079556234625431948598213470067564165548096185535908992516528596349308008556840581936222436735149661829643935354013020202325605623089826677923320551317189684224919946481893346617238412527108273037979204722691956829184794665243811383995334351623096747945172206593651287962183926996946549733136780990108365434708361459646246157924728848391183198208934621397114958193983028964645782517786688291444404301418268235297699660508311993097953881778828385839207355235307927446163089017953645988522639551588628309286884113329976970382729658186453795557490973615309374925374987365813798907981922400836709736891603488354678503234855431535957603172242957534034847721722917460125258367702832839067459186605134868949696240224058502168768011438135322138941088529536771531435395316660224904163251561640159726989193191424751443651627465006364782582401878651780001632707959045602479916486924921248543271481480179987716964640944260946471912305233926835380515942693776401103085595403193192981719546731403776095841434104129376466331206809047934875778205266928955710514651189859150163478220175129622731008448512847819985950195159724904091918799071938349600869740162137711369286466640890643068438471910410680535505582581776061715319892198072701838474756970317802923893825138907521492938092092581931420439008703816902379496097290196083181166865747974409178242090098709212779449325435492255648934711747544072049737221559175884686202003588425267307305717337716720874459296935157541600790204606855646130765926218961421173013752933822660453179036792893068153386315561399523173794237232444595231633088782237922348693397222738888058973620357924670390674108137260793443680826252172058068991683283760891768053608652425800436659472093713882482562570901613891382135584981964713060238618245316548136180796295891504890725677815115303152470330916700254204203243811344226090716918000505302510615563941092148658749414275621411454352544845855197775299239065045287275440603183634130411222194079181993769352227446862148682567924695252575802847205402997849493800630738671082644632294892384586930004913934702105212640708084152602671763005972770891382801830777988584982379129434069968465293484886671619496424550457834281036836729622448825205097409953046229815815977982754966793555919754136287007660944145432592130784252467948806943765424875925231976774487316055765483738674205524462084846395979966763401468500479500423696142189177051367620524741777668914899892354363882651386594868648047317072871661805862497881815133157441536051981641161894470165904771260390308811792174175318623831421640119199594220584781105046117835055475853191265291397096253144418411694874751557608765199426750302474341396110260742734364270486717613074408095262925435974363139549583261398745101996315075022067554408836888039200026183426825480039985865772186315875965844388987993658220851484153340827632297863185722829842281257627196400080756500187407552223085708823010960740825195104011864572318545523472813466743577921284541357023891603623323568880600435485483400778673553456089599699719859317417045007926455077592829778132538826524469769347914930496098540308375456362658489943880135080799065163418649955097331406040851676319642904707818289493105822916278091195959110116042483678870691692038855465985555219353948112444375869295179522695970627019373807281373296420705085161792655369512012501785241929871817965326298026518352082610336506059607431430854851287802720164227425965818603725409484546249579996404964927519115563170654107650881564201081388530927356752619352845607587049533651114950947908087169307673023470173034466870563773382482041961653681792206333501251968507082370928766725280120894761165937683150529504344051258145005841294403917132488351708400296655295334266946995773604518187180947644687309737231144006634498035663466521218311227654955404951194437052119725732118641448344172865872416496526208337259168885075025005261793325186586857942998863800948104814682981658221205587163945578120931542005488916800398798462160078914150895530698595240802457833515260515851076246715661536448507152114174183051847577494674968967995713568377959029929391696249297377739251591339155591106769787020525874647767120708974173828580084046877504507036104620022534618602208417436940209912609650507218559188440571903879791686187235214807584663510661435496882590304924180133349314047370718667016637466969170810831108337517170235890464813508718661253449091217462361605491046105048606347906959814173319780918119819612379011756314439401641734663368307656805806840967845706924314797233689619397055640000186894372432683426006520869140132539313780206335203234801805318996647772253981376456317681554568286042148361518953550105127091470383353051019514354469416191895127577545480861051229276020186693926489694667243855687364544065482835291703060633853159539140655181720745427588932108535959453514818544374269741008405194878234686486744617657045014814871109156698421832683019957428430324135423566330321316788596285073979382434903713132039363976273607275280406110522904321495729190681110064667243096426206513655240473299231517950811176721455865143970688998625651470450725374284898378413450623912265344522689757734570907205731206879939486044323845526003664855461978984627402913769200106206286376941732674026054108845179797661395879495496972884413735234357677023940158106401888546791510296484230457025928886915093280967793318703908574996040046358572587393954831424178666477708450189901637820537040428114011202775924435983960619143649673425128459618218234208684589376623685341977042544703721771254104483508885105936817838758593246439834333280284754079121563192410041065649283885859736281165733173159872620627080032164726800027116507442039965078845827626871746530704897885059888769518663819312189385874951526915178330028706341749351851832394446572804273166622423378184445575898722358527311032886121832510159596150763734860099414287551142920367062166400193960780709433744472598349984860000862247051242000843612269113548777232838770786430880082384590327183130530638678566698509269124419141128500198140443337640311526115767829009450665735752119079969936215118434008586504751282488117242024344696087538565684283835739991753929653579076117957674685320327011704032201454145372350397535940051760894625309133227240501729725870861522302198741135012378021000509270266240016699300867240878775675116126849780594080408595827296324782712231791105972740197384900173962842683646753130001362320238972634613682338963200370787642336767208144199331247593572871220501668430469051676555821876910440784232467303911952645357240516072535589283814206243764433128923820943113090340873511299590660482738322218578718123078070266203097472359727946388957704074046962168645096802454888510477669506814773932969206175401244931545859610344069720641679557042553822637357578186713561537537853580579799529332989570429949166737452013401032053231072917809572658953896140424486569870023004357660328152099288277594803982426749123543464746245158338874349811878420816337308170404152575943213392364273222647619699190906550521219735873050305830531119475526540798333195475080114669616776531998375530901372576048355791969928054372647338407042432431076009209350970109055764208879344331475514200374590375470894848977654821712271378115927471681218210008178912716144324555648685071310671935289946283831141228795977122549062793378122263915786690555429690987396380520624174879942363639911137902613643828797111694213723199593772303523527821802851724637908473588924826316047352186000821761618935513782633971906673554376225057415014084329782008349371467598038412216443869850049348522176633751889706604290643041463021049014922108254528672379163257358406122878180432001532308691501731690200962602821721227862537946110921868951032511158124803007511284651947460374888015329338881509883847152317412576858998935721352716868833314610837188246866864757720081079691100687081161928616930599471266232833916002109269911351729971627928482713579916447450144154041815451607994160862596950186878056899023429223511351094466679786458811185153829046016383525212067853875966033518320159812049162241586388396747740977154810286960135041226732054399380118431518255472486565691573258050890355573154488149768811820917226716676978706534774635112286858939365060425688906779153399307810013188052019839324118512364809102023705410562952808207042318573544143060140133754491638035065254200631653571120732077640265708268473163584536538341190167106014924072897725144627104678167418904347096304976518054169058377902814250520471201911955982190311747557336219771677887824523422233390891415232781102620763743590421932027595923847215328644491771801884625319296646631227638995786940019835507257322214476854040130327805068086277712190953528668273476659934522854969960292986677866770716608173157773857305787831157676993039192253388720892969532916078633591027321310786205349924067374857529029013973635544590449904562121162529825992786383090912286293438342291652133124849075211837693155997627986352472214629638637010146538616197033935329779675929295528693125816086736910208726494099242063545822015111115646522697931966827576625367865601514669879931788328369147722230610543919521581150910646450247720925924594455794003427742696222386714022452948841150631924801292334209998178667657544475307896715823423519390759750184764554230258710181343456595232486703373091075054385963015425189373557950089512848334157308185220263348079587176844912094797336309936376165849978390021119442977709221898267017769547516159266578761462893730896588485713555766822494519315759909638964398252603629053912250607631983412579494746346147958161398329180075030223197482506988558595477433277214148682973355087655043350322456383320070474729366198539341911155743037077721239023922936174558675108616095013573398250153007479182879317936894679126394383187670426648942552131274450731949874759180058987098613750917903362588003884182040690959577553857164529404018215509373410893150289507160297494570656891991574795998256363025910737133064378235398252294511244475111981989877939270513319649649686683424624759019884205168174068267403447313509618280289035397888208134694612918653760226080079442623316467743382980569600033576706139304237384256470796222226015093710508108156168477753351042911560873498627235296110827981334282622241014919085071260847918686518221776723782204606970020245200619917477228457957141117856645897758305013925132746275571832498288937490847435680907832783643359357545464714293226592989798056238958220518678596567472309419881015802440380848738995401422500820240641403792978616063747554252426728425112899350674183944443770276175354440464816229204196533832668946148431437749761381698882412991307006546613847148789126133883524480090516659236403308553196926208164457360616330870591192678197195210499846375616238028228361160875841608618041926015747280153696399144906651804155702318563481645719894497938526816618130777506498037817647022696726375400923887605399390222268443240551079191943263412923617612450039292977966157687869815982710281829294358738805632061992612551321801290319907556987037006505119569871383849035742216341088931979990474788423720051253379943612492305668629915605411992324892928856462492132032868432355494569239122634195253436755046183479611939479753356246557319360065991576977620697624499677449568874057996581957956192328374457953223119330819813755441022953252993759664938522280615717856535737895292378434020756684564282739589280553039394184141577096954367526622396334236290956921991763174212799109063193968833186666527349949914373235325896642273252457322832086901288254725108524699612778292644916516144995087134561885274791275087351897297006043609651496659510500617252381131678912253167258453212205824313980488100770260751581777702879391178350935742877015188846857596186560615258813365749549021226100800737993661366734166090367420468700108187880038400947236324311506931975030946159222898654499042854994718981494591281184622096614994422564388620022236919849174049838616909402055614306196653619515089374637795805039868269967821238636959815159615908803171153508994321689584516680301942792343945153988762526091283416993571699824564302319583236644349070454055768140703874615132222788577407412986232661881576539451788561482878851741072947036149131641600805781338850301459936481721471481162608835947759724349662877395510822429094806393070134409274350626078381968737092830140981290526063344476430496170898809914077077824481252081145015667651258113359006608608701357857590784715655869004089682533306726130287361162119173799765919388377237076740354444325325685543434462397402118213132955476098827755600191333243545931057098708965693823754437013894191329803214080220314145870014291662434581077696346884360243671025400599603122181066648441152236940926350346233251110428403806349816066018384298206092765844658808042167915906674849142453183702763658025607357604332602864956484739722902936888639913950495727966660863429441497849755388238351515846977500234387218747727526381288882503988461941427869292369659207455648365636354160710379675829819751137928198278079856031023812116909164978444815263550276355993274017799168740260488755555925449137405935422463247773637734389207167178716429501905341261568933383114082087760918414227560725866141163585062937371202307494518436546534939640261437559475062062795391916233546272582188830685172761076159385092230789097409896916130397961707829305733494128825069294445875733892424768301402859727637177862217056642384042055581559931527187299304450238958340281697295235272265617388593557334293803382666685606156491304777177140999725344236179036713852089241740915752635657230738087857082872615366816166488243847407600377303661917916167305045759979190266339963782943789221680135970090112259516683165854508064019117192979838370988111009250285318972912475077003317999884386835222178702247004313907861144878433663903290123937668940573540526606018951759192084736011811308064092487524094974425228522296629519685736627616807823196676306438023664503417111079057171296424068216635121744318686193873466953810293204388462261909014987913738479722061092278917916502818315433573750878605341293181931111692994539142004696500894734938756812814650429944630498836280213010791978022438234277107527435048223841127147151120499030576908894222094248463493215924375509375203818498221627947682019026288760643810011297629932996979954173931702613288432169443280050744753081568121191016579994991784535282691994431474355180632709375684661946161266506256587952187668098329042443950153684522411287179194880533665793226969625212476698106053763414735582984093138327171368386940168022222134558135704918031956434978606731933912298558430442657894020707193424260554931365314849977590070082835756887104731554173841686808293242514743459963854884102745139189824439242523823199886001020042645566455679487561871256045829102429979193716887071825642781262513590422487601177514006283000403018104702258752676268984918277251134788690372723340637620100660034337969406573208029332241822405421417783397781569793790236986594965710365682565252250049980157149702025836859735135361568729487247964648866844165750437353077087350737795427841327410402769363830530449619415414709739852709575167423699237908222796327482745597687302020202868722736029909322084728550985782862975363378125688523818990986663185215759641689621997191854309882098741716490245771409620908595223501623580711052855054684691620739864463466256047316109502014573485445107539018665667084204381085445205390173358338008648064813610570768253990184834682927904547324354489025817679907154416766007159716248015664411540150394471624543360623198448213588242655640068706018849990634102611393611066993077782043698641575492949251596781960038508562298893392283052440430712286259012475806081322913155945161385354548403977895344992273714666443959099712888970961075276927662599543936789428829971053488333635136259508579309659366683946784572084619014758792082651474730153724519848553123164992496659742319724331062404089704207379120163612107254888885642702532294514704809604985340997043453759284509264813149579725898378225265573983473780117570634733430574450169098323443777296292670101002701415586363498454815236585929898121291295867774128428883280823300111078637147629966515340641803042524000497422743989224874362638898886429061575773678271217220518609145564700964378089839099426926508373442799019528732455194728583108704396057064214092927234538169750642022905129665903437679658780278956545506573318421459406725355855954715100836042131119727364530096335417421246420294086356711383007190753506413036440626291020694420703589211170622070719060099160886818295586198585178066614763000691875069666480885879184572208862080500209572877740813705880276405230994507852823552939267571167557665493855450055377733749894638243416530072260127062190739924063071207880204134701489266766459666685263198957635391001928113799114370059718632591209083735990629600106577099929004250670512035066130504532785825147855646828751633274584959181393759528262424994716786589649694728771864938442239421439151659529862384269895626476725212487407387385419710725386113551774213854357916691727493194888491922692928550646105952031429337117603863434917956362179030317358092116752728800421669401181135770179977279142754692349306541872169713113192661689517796691151349594975595977207162685789689675173330768663714453719606893912720271126747869959525141414503196397014487986635810371117912027154557927499383289091063255212746532738301132758099355248768748104994976265133555447237117656508099926823669510146487679205655515548769079486055641039570791800292523896885405566844577705263917072315502104353520492294407346708542584856146247624340239201250919386905025705985926285989534221015153915491810149713105975883137773916662545525047895758050458141871181023750160931473384305401726161184706307293515755429915262645475409102221813604382260707308259415754136620828752496045271591249110457361669981868312574958947129886323591158729001449881584404534058876264637621712694846464780786196379013480509189051672442412891249626339159963771062770480692607258223497884107857875344909512890547595197141796181433745265063371607748266608655073056606641265802191744637706174816885268828312434349835624692392696214849728774925549839208393626198917974660693626430462612468680070358529003147983988063634761405978324798288471084305006980654627331569331960622209181290133509966989784936580892381166005953107884933698958302480333183228320447784429960176875878879970645706798765178049081927433103521380780583374525610894105705276823039318090188104201086389414200710175808812445764628944529165779804030732925673374801309384919659814645257776497712201129433652401279269923330653839527107967190925343632376436302002977609333734242075581054574637411878493058720157257823338606825097728063780375879250416427539833328985244572486851537790905059742435539503836024667062813575435724730824742131077098161159022347373988434518588534216868727995985614011479927802267109959180407673460057514239151172325313254905691509927174823465191934526243927060194369070982047669024912126695072408551001026639375206960736965652509482595939643373037842532295352119893077730568161812591303536531488136165322282820968823671427921981185123076850091298893525760019792889315588752664527770553034975427665467226719895193867401519260350188001809807501165101312404338627829981785037019712745684292220725652198275259930879039425779330465456821404609565809669628087834647048489509386958379367072183278189283680342665735960499771874573325667436634692820097450238328107795018805819551561754269274900371762278332150096802924847597316148379532795979175329122990496631076856044187432510865687782373370391272120858598061146963272675405877358728096476278747581709166658883377639507317302377865996931662934742394493104992402984142027555168422012375497809476892206278625902226656228202180062676510160762793550319263414200883507750721025381178208649372778675997325422314191333265810805772489054766600935760284915107383765091176242566354155779472158331318761971346793389681911996318844454614189537152833736556676617467270578863593510661785472163686132857435281514829212907931672900740355350095699422976309034459037919911559687349491617157468549496632274080045106600004018168815678511094638250465396927130124087661944765565040210250092075243520501339400562048321201152453520135660032488078014247061803637808847769257926084269785777363761938014102714210473329099238318130210503718649042183758660254241528622495894536820496324171521259412410315024115848659728433288644948345442247300936754004072235615134112709601128949444418536618526206332538148079642510273632543941550390980644727821265176651169875341369200751007971722073901301886843702009549246426726258098925662288265433169341408541255050516805827226864279292194628190663723227242066945426857001506838393619241191968887882586124466268406379614521581624655869305511730727482568720602618682896193619652652683093448721173733664676975478817735142387823110412836290612528586739121285832442208612737240795480770830252827062390932094139091281697886336013951923148986293121282310511129958849198246592554385190824786590409249946080117261355096186662557920563352333282814679988323827131431379059393947191242209700855040291543210819300408447183062106784577299852264252970740734649970312921759004185307450614799798195052463858721546296337691144752010635360944376310320646793056363469804897280535596744899636928206320564094601735487226255632484904409019198318955906290430422805353858164110117925967561285819745341498159861247118760379038939417393470716735740240895856706651956276734383276166511634791542057321139676415122800544293047486251378141776703329218918685721121945621279331867714935283778088898913831501858569100193866089711453296911304089103285477956253089739456083136838068092513559469212009160942331384640240485929603714355014470334656974084464238561331619434836568181779961971206243713630994712689146066884471885878206599702570137158654436264129487521258262751716936276902814926032333757278484606320408386565016618074206654781778811019848959600592411019626590991891448077957956569930168438549321507872753542794845325336627698678784280737772849311351268109580219988063044560634763177993079025179675607340841342705100671345889573842775272806519807958359607626626577152124446388222442015889690315612339501280384752456847840885208012217093509876537354896587516669630930912268402663881015893993545013514523790304479352518115387868495408820779892343498910168425980746811934832276932079969145957979093407595105200020736470690664125184482163047582397723773055756131824100807456110141634841583666698403739825698226178489122358024938165077955416823031845044121171806638070080148728572990016161101221654642933847968635051429901390051804104516802162855802067207142785449879109017865506875111673521615083873542329255767949722017904783853685602338163207765533365618014438548348116520787842202926419594772775647013341536086045841932986680537485361707143076882540096731656912604862914016362844355689874564950343392766486630641614701915480478830609002138894037764819352761773952090217470386165119808347837208876946573112173651709172042770235315913079185946466118524274490268087456211943435711050281254295997788343328420474429244572614191823568838433757205793404343224322047657604393296051674091478005998667090084018155769439018784974615529980526028287460996755543536938632322524912352655969019734251433621472476457714586188298670052808685510956967811920576012818646376532718923341777853516064435602067781758679593565129886050898102384983757606617744672501296378746690064117527850856339851919856391225947897857197819304458662810458754993969429789708054772333212280113751123721665310358437229573019523953525932400758507329949555353006737678329649426530488041920019383699675863299358058745081235329515418570895685426007896359649816990343922808772975594454659231370658487605946191172818538889377065416426503415730981464879668863922465460703952596633921376051156123813678927685055150082578415701070383322335674689736103114160203965476979159370564963337703266826604668918079290423218100570780426032516549396938099000775899617368462140300374040523414497973988222244350045052679350014508622887647890297943980996380797178180257533373440484599492070976755898201270943532555346140125516560779493366565198837174079080449345021465067686565147909537851812547621524676745265771339301592062881302628074416398917937877798000992975999065375825643927670566077592487130264598661254885609184296989042774163141712639418921720022368893812555989546709525355618108708765875362354581047485828875913908632018674329986691913058111244818297123062363925982509367871484515116986384488896502130980630807852592005378016751485675781698504888245582200211025981566386894033762914837340266681816057005342357454956505304817939023678481328561630241366510154489206403680262761660427569988643668200687963091521053134137257132224543458880597945900310218595368692012795495510049817215413411247660372731245279352686988022590881033146185572637759787439138100966689301329981199409005820810545422613864885320776787778800897653116670025458809575044772415985775732939372702644954547186109845787733355531821027252695194810925764446921761755268378187590765024434524883827226296407492797719928691017455278296102103097263520513853857029293252990905986647443484384915437424938842956397708682916572965623477774388332990963045841944882825352237045962778165409905185436195171580398358704994156851221986729407006461863356361809558845737568993201411321021630440455354376854051408705058405315590447524037727462110271336627923360623543847413002762499939151764931578733185134120969666780198122756597685811526970634257560541801040337711239108563131368696172799614319709101334529800958981975356277520051525560912003194088165935063283827845102449218045873993610509197760453853251758727489884393698968305967182729212022655465656999441867731980099648259739091880175953442923502539938730935706345112985404025689554526960722146015439406719166918666732572081855367609200668964974767748552669397993250266094569538101779883590083758852125250738626123410670467472780086475488532203080346817034973816112409648503894535452555755651784515510195819616668147242675105667339008284624489094944071639940531189677583515750671144897121848863613457211758685040384195905631803377335880518780724534453261989872486724138558360525057712846771707435729042473461431192710935176121974855837024462069908123417949917004814012084643290890245357821347010347020603922023512230626443497464850158861309644061713640323485208956231312450219405802337366201718133767576038906212465963465570890140900281134715650720934965244402485033738221825746556396241445613171856459517127499574080932148106632542758814704525778586985571701229827929054040714662285871836384532794957060345231949394954532797951938152152819225504850062266546057803623167019153554003238169945072848015716036317231039336055361357210907551984857628315610550693522176437720888298985102423608724825016266582486063029378005686401467343469191260490427084216599922437615729084028751169223962377781458285940017718200273369171283053917226557497119947638642310075613871091598895855793342800120367519418128527450450617680139197946236959701938874763786033042136288609660104203026474995152127049011193189384736092874067688558899210711072979534734610815863387978462240262527909746596020328039988281600231029057176900137912261377261581766728330312575239314576634383252323155987432685078005576650255889919551395095809127768692412630054765453457132037889362136021214441750261350659950473818956880706111083053919181807633858735760111955018514276654127457673709276503125482754132720017403210100930494303079245062117685876208084452329040386394497900649702274720554830648151520784290760456284695783139453576205495586234696942046093513988956325657529389501372164041156899101604117643371774080081063143234911347510271359684892110196527264073540592945705048917271204344431190106075019872084785314295909358615429158132283577185226371867701923738073662549167960010830328039344264444629208825111093899464544554108024800284972608573890019657587807287324025794845966459671162604323624015089524936649884848701969178392591068589973679189252240864648742190544183810933880207960483711527698275417024939900068161699996885758087073195448979294987166273120664494604075370385598606726927590451582939278325085679486056662891367359951747092682073378150445055073513212585321176828007793371873587398161120210610796685484325709556335702887913601397695298265480792193256416596986973862659278748960690228284881274257296930801090934496461479944257718505310987152019254838710789403376144583554617833173594009118242835642805812511464414524846912114547756467974864816854747313277891887208184689082993751905088999281227701246979012894762564681867723593216522273916034571628114995588200578699576730589184475214852803320168087470112660175455857840406867780689028305314580522720561897129797867715543394255279562728497291190954849039127661688982629234210819455077110722920844485951330415937837482727783383097763423325415509597237347732175685078835367894163073165225335874905572079168189513835871460706025040062185248404505348097838176880029562709219130543555880116619511417057575403432828243369801037719132261110971500525205206263141375316153760945729472327793073958173768370497986313919938296954252460392874845392392731533798520934311132197166899305454428128001783163682177216316957885965781428992621089563043880828493164251405555138249321560892648913052878737817323198156427134450389987989639788761604269353568395081304454409690331532814217168046726023480852260125407689828370782797702063355948726789644993201019038993917038946571210896453972632946916077523756707231051768958725323096690371467214220921997577839688961987247602968909692641103876026596464734789706242394335447905663784894458314649787445424977848914755682658122371705370646884830284978793218460748594886104695499762012410387617776288659916869725504436736347772689959583180721554174270804762406486898386332983420423994761933475981881962640888517177178015355791206710646235163716326939587653626926197457830275937785413764376617579419298487571260651334155067220581927384086409254403046498037654138696649423071712939998021251869820183241551711113170765554106631146334828402503427895068730055377202223076108268139583206183877812168497227221278524084357764819251790239854846735763960349162962334705159371931452718054602117652260212330409172549087422770321886557425894486464047239580074322083352674087716762072756487030648584074486661651785944651787683613586716163411187817626607583050554491435737665925334874536775549577078062875441171347754552308780131807661933201612029496167658398163002422321907251059200182959709346364969637712299110033769973892857957592010255633128407069409873007917877302281778834738436731941766574570071679447930427872158873806986116786006077415633886281059075031025635437457728029738270473233686478667334273465438757086845360913260546376983446795690094138657967704721913307294421806794544897887773820337237797213843805348256644105430106728327386596007441504438233432726914085362812159939665530016686773115156429049566599071995409877472178915698106090277526576960344760453467785709401269996028586273289089833811167887344328208968341514224596824703163771474315048525384358869818822183592501148622059852123243999523736797235474075663529092096556143881732496691007197298554674821664547222506978809858103362659108855973831701835865587262795570604175441509732412225454762630677994459896538020220871620777225860088348040092693013389429467241023156300852304062672392710256356202551280817389367425877230862790875610502693132428399560502495374966444023999416671803384205455899757524394060303032678576411020524012922056322819009485246022784470042057205290424624206416822452009302995554672469707050339800998569868429689348226156745586705087337024093741964388486208371238116772015160189531266359964633358142736860862642422236132525974972057990310477020983955613296855290118636943828367530588188609786010906146652520392337086325267310832679576697888276231017352400652867325482837400107250679501876488199485220783093076028344539583103311022449314965884209966855708996182090018490109893240143116850925610397732411841505490842551236114975607581109646678104756396098095431067218787696923662865470682173005434088072504535105953658494837963978315134079586183600294267558923735180924896781476002721980106313616327414522174696718983693585694340120275142468461068962704749910121877194268754689619076840308233377862340116907206657929405616109200202024228672363650059494214573773350611166136054709828073430426027314594093140931349640385631915017875938065107011058732894575481799955916325287695807302537111477498099076539978939333261691227604361756876774114758564664418064897134619241282418205256650071773276179884331181245858208630918904490420881581494929835937069803118731766737207664132509539504815381377130711530628737665029032342117800200000803216372599501983291569947104635241686206880832788939017059078752389848191810114449477943476555533826348542250433392884588896422073906492814240869463785305451454687944457586721001091928806251702665266390493957757912930459585437286387593052121144700045629401383726785287161293138286057479474243197629161972749059961108159363795896471717460670306384523412013080620720433607452406979177778342314173049047840022869646157603608159254162915110076918083034013213393311933223566870800271405113044464103957709312663748979720992871549903673349951179523173630001676339405351854439522902541811113488365874215369510590263374909668033845471172390194503494426807223135567458329452435892157290159217197497117643029051717125064484997477503552343470000852331934360934693870978223701105069599768730997457737623496354653678870417821129216282202487111963101914047642733863121697923735884987088849281252515187103038854381844338524457028445364214394925809129449113855392924090255512868309743770210193166602195765158819651599970085996447460205511802221722882602847791884453916403325639769504731615477863095041680843364419994009548731816693330368889272991256553531571022621985134334456018785504338523985474114220553736734172989171409000727451179203183578622349105886946679206722615748301445241774825055092624510156707038655449771390311112565337110654271385307415234169036651614714060043986850314782192394694927664377955284046521558789556684622621750039200390127506347873945645199458795843874828242915471095601487913763542442085122714061753047106794636551189829154181425004753938338863894124840123688570229827367257456147907952839691361329165685022853720800218538249507846641696790671035709636031196556946739924039258513029238884952866426763456092871388440283508354510746635970272015868594999013634159159230615014845604975909903617035246150914357225581840796886087367520287197252225592529234547054462027041292677726390576372623453012166377591701920857121978691481988891905686833595692049917431636200909044966436798162381294836441763065291145788426529197146099562412224245941326097347643376729724064996979532330885166787219889117786292788834964512519245786627446798112868626659731465323650244967429147394001663772169855657768225033486273507976946225134560254567989584334075782406153268143209126240818865472736829142242392491988795609753342627950959343515112857452119535148758931042010309244865376958796442585224149864501581169509113769485041483697719352523882797141935467864765420821087672423571387688591473080489934795054381199792558700688557385005122821152029099309803504282383558335961669384058165385665993202830928430218802243056345050042569455829219548362793620541248396144897671629649266107339514641210049960779816239652480735489244377574469696365199194428147379017506148389329496567519538303815546112578599730967448948819631239323657145191007666572171903014729115092665669168549903423924613837145930263736379334721086087570703091671622506658544978424581373642518715588631654868028946247811718598623980759042605499273886789042897132481938439748671548678062335213805720343996137793519432042212347434424057662858784661706543987231889631695110757323804147363491158955350075569235171875710822207305815551737590046559391733473506879243922025062357832304625917353210198426554525574028632992777312628957400505243855884279188297215186075103736616181726142309421232401960359149502520554319111774371014317427874746725015904307723276212762203903453543552715219562126492250152033203557670712296939188242336997576751989093563160078259671598020456556584490095519782085338849152112086904238831452160513286587308308887315181271219180580143907949759519178814046034304419620460893772447183804166739730171038249290675382539780889708428012653832122575156835022091470605289576448437324356909773882456707987359484170678194230906934610841448892550687950383103329938821328364905209454548740605302019994513780878836301138803202221236609858170140975195746599896936114228857008428116777960358545943716668039533749565376026030129196108210251937437490729714187698993634232966310415854651742241645620575459187019798495971347611654738452505860929944233849877910754862967282684612316639787159833497303375462580683463301070185524684851958430747874299434377888434717294819755438203672236878462176697577625725603743941996736215874212206231228929559479851953755692166628660118454276640039180304996461305294728594309061641720086952189783388399831909936214957846488736313299217926738145341182428239220478998293048195435540344587411499385214879363970335272022325200474816219574456893179270972182896744278905102717533625571911285558301034534530770409873039228397806480383362507737798158589390550454887535699166957209123391920726295087768139313080915213710957914813535270892476156321561690899858978487918569994563723335109083492584386758314498396636215287988295170905658304929135994112880583657619622293882698072924485859838357420720949132919570802934700673751343342329642044580310739338744398286774200502857312451215970733096501232400204463372539310032937480522465454726228210297179644445321018349280107971884567396761277620831451014681309671025923750367887038918091003617595181558915647378797180843648506737393041307006823358916273053653125156432205683331535753875282152084844633958845139657798945384925752854710175246629819124504397030808389077517131513958658450444001898350497004038571475819667136507261599024449520655176336937743624404212611532711626811622060481080112000036730750655602094189066995531456858418954878921224997025079166138738783399735033578769831098743843431435305545182668310001094255530284774125746528864471039886468973027541718673211390888987958460888364604214598684227106207520621229769189382678483279234381828281342932423777766233519436677716016288569698877723508848699040727261145607428783136651813463768030473192766552574483659858155046998271839174956166752305890492684470069237353732076294624760493354349889389997311873039218002693324948584091550068650667655057683246330613495239585602718132130273888669451501893643002828106271134004609536266150350961629769072750747190971453628793428080111063887347553333595860104697421493968556763587267553447594062571490629833505696357047070486200522808512337218035134789822123230829885759283891836415820204828781592294103680832679390216366685394549553792887947505443091304043378328604610061719666513401192119164951004080195951166479693655157081067758817275050871755969848912415239598782484666403214747052790799077399481817931436979249191004100825677537156687268708712122219904502160310425103519354584333803653251286925749293222091601275168101834367649088800641246769400912083026804492481165831924428229089116378650645636400925011035082595353357177396943696295741901662076320574444182701914168579731352742385572800752895797131964127397537924881643005561411529445909383515460666672880125162294154304347688675549841189919631975729467700566311873956158190051320246681023870715637118885125480889979229142466334878206433487884434550161497556808129911359012207977495374304017645398935897983522512159120591581370119649630836558538353948449877981461840791293545983044381625051910894127268370493793461377584689491532090973221961447968209233375618995334567311556190995377452527317018623326743863015021613239628890503208503084096880541172273789871912090943336487443121416574061326436791086938670943250128545251121799742270444334025673522432523750550830084911308205277288509903486875453585232939816857198238661900787907993765927000018467581357205149076028006568615451612448625676260766980592332511580063479562963262437414304825572810786302478797966555418219977207929886331705933591366471864137274812264248044953033635916502728790736779422130919281638202554354631460060639599111655726612091624920507580860305457307341810566891622356595502231172816590871396445127824574339171501273497850656270603348374778113984505200881663051235772326015342620575104119170054370845913010275889554365271279241321747167024068851727397765182069298852268176469177637244125949807615934160535218412153961194435181754297005363604831718776780314680632466190621938991636203799745452470257851647145856438103532432098837045315844865764554000753906203682253600722555934878977280728074894911884169156336697982790332044853762133156263210067445073885242288840778052158130062984519477951981812257295558973115606080921708676469360453498236071453287059425476465895860624219725345544463345893082576805532666713315737976838737976232811509260188857085474089027104114344344322794935070639106515733085542735185235495777200897833921949378301141269750865454076197097221701565747989186797982827840787289033150027484527653427769980745980226248775393188684777991139586137395369589889209584555102068068956720695303856278632223407189752648553631437931989322222737426481119801011217422945041671819118223511539262608752433106473880312411712830841555937323182067393165578965295361602507166549414535294464584907137180448974744395426143178576155803667320306270682416579108900259710592692880087816550448219997126755455666047140362864120699563468884989822487862810432374919417782722909967985964513513975134462960882360816284547128630627319883343008698412023553225523417744933177626542729482713666518900816859847822942031709150594745844402395065595984465824249901525161508594280775235977564558388624395703620322951927891817910045643969868807323449326694741233682617735871026239618984041681755293829030902802328711236769447262747605926416910208805917227485648475451100092324232287744482376324377948330926955392742722629018921149578420786786553597575456791912936189575165558426300834480414764152037611581020349938066512783523302825191603831842853534875786456751694836920462506323117155904059906846154342620838710412076888542203344430073755861475686204787729743605931118032282589549643380339300027658458287129951563484590857278264725904538933743754239384912949261039586325881916179414095417121173381582544159689923360528538910394058283795503962348223713498390900625906721719713007697863655968682508539787403492590716041297764005999712278726349880811162170317067864840555472578708059028201982424802170948700862289104400303999635650744807668172590157646299095136825715637444555600832573939344362561788907838919621163130040544765519118834900036733506978029160717892403409733492831228893324855567941976066649843381538392465864902257021432610707940735876942106985168217116115545331272775636326809220370801900961454809358754037619851245191007813243789458647473131621799222157182263348549853119730168032124180230494305308757825922457289889870155120325066912911958470818993609035980792262800244549726470903831468589468312748997892215633949865614878979563140434940704802842231900291834578124571139533063255997114727398337170576846693063853200517951985972603689365073226303585944098956868861167004400423715346196128685948677492534794438615210181305337661185460211512366019214497804782651743763659655195619123716597353343549908679413416975265595164149133904895431211583798314107298532791367805810678695429024833467363303637786718927253385538052678870110920080764094247372474767312586537851734453656778380300273087189466458365384731977249212632518330084758233588437236496195121655516158104387601661987629697316280355929749745028635228661301493218176222279345170387745880110720678273756614711091049970005516467606603661576415231646710139609775302784473077298310226926017826826851769395615964783040445218319357937073696259054004720219792710369055188681687245311672187479293710643978304829852896639966509202137058772767446461324774338288342805221990072195041336016993120527987872722139376151005347221997161272224045959589789824299433871395139932271997623558691861038702902258568052704144603604084441011019335046164385827945867758425698330544011587409846379005558272986701164742627586754290728952450075731120243168856465821414077626738249889963893642795178922642815280132160283890059342622253419867102224318532482430006888249745613791646822655369929512639740741215091632747164356678664956801545802320659255945327098249285825547691668023831524865945686013468595527339714345127354185263576378108468092604108581783130644817105201732352011342456662360980505987097577469007605181718104401083729561003819211049150390025568446446805936162165714743285014621360081585322080429331643825089314921909484334980964652028356770274706916320485609261460059937080041161096800510110908566294406938697873512099007533399927694005366891935989952278115534173183406755655085030154280086175282385142137981620391490648985066240168590167313202516354501358552689821789116469360456309502081382450172538771420445476222624551614544787199102880904592892742528735939221125575768584884623877177180628241229852015500810382838358689233663772393851234476226317348241437392146564341212488934037838856024682145833921394149355612487459629518285692402272659931218427205268720431702297994399177271618021882379605779803784283555315537207557139614197722866149726660111944690297973105213885195533211919027366156704068080672514101854335489310429012391763488330059845362222873711995946457352518784063377285458736906673529895819101778182052643019010647908436610284292594494662008739449955595567599106142331193593783470082937116015873640391867796008555767939811723442527212239037724264017501559431957407537147544994916888604188653256653689606085959689326145106423543900987140204514598409106923430838557613610638578126010148257639551818492089674459088868083849379318782084633554754958584095587097021627873605467459804063382517264997852940107533600498480261935134542782686298478289474189623554106939900592647180691547032670141727988331194292261976667194854736366861478752630593386637128968820991445049053188400189252589953110581262843380470216081377829419159406215843786744894492047012858222232269228652812197590225530798701563944823604140163997474874313895526993923651923793912320266620247284537615370024897322034213964190256899518615696554537938759917804459449679375809386957558427091794873958094640520402189699925391001920834285627999923300995974044292131583325322075020044343515588824902011075638180652982663005242459306023114734438358952843416004389108365860071087366234039661867808514521144832775365886555923765539394074522244089414959831250183207990589522271658241048044554306496999403397179239501827448266927500556219703038278580334790133285405167165144776313195102833156889539452817943228488618287773939346800639978650886435186244810024905717548090910871333623074742998902003912160744450392508405388633545211600768934160669701639361828532752843745409545072176731993165651875965756847110765896283567862938586456079399045185035357928144274962723151917536194040257782918000556193554570356120911220343503751902510142592051274229525778726156393015036990345964157148472144479211550533717618824308619786189687781554723448204902705138732201171815600513086210869079987518955912300231050948046014457840913189445640158406600673893321709439504180029246600608798440455038632836809631504466455035728835863241291773147775205113272159735584742159905325934960752031676741093125248518265522019097596587779020706781809904358736705408934842824641120576780750327729068855829467754965205610711972925324598511647825099169380397046115726020014727228049433262986610688833435822637150948460782899005670785216351798865364762752573631184916509614868857682718848660292802418043031031843693959459364288602508370533066832679010199086220229345420140421412988316660141378974436213058456394820570143549148618932096530329602007381449416246772706847182702712571531734225466432080029311492668711442583491453486932676132571169047333909573276423923547545634548510559251127967534229333062712852523016721852603747258183601892503968507285243182710651376918699674219866362103004420803036644257705839004453949480890286483185073450112837967994296136951538299481750177335287320662524098320183550128685733466382488092026472000316868728763014405155324931916769813051493807123247719807448073496324726085116514619924693800894891192402797551493031606330206844436752118358961497375857796144526890198114616318122676508190000258307618026622611537261873947981823581581196863723854019766641881051190407744851805704883666279824165636150969563667699837813373225670435181260462596262087682198707422886887563650481364337172386594434110458291872130031267245019733248400881998962879528970848292423288160794321174478195955960962989252590817613400114015737331644015621929087569212512206015249963080845478031357127550678157210239777652907598249968606397300652765987287806132515335154623366304132915598522013812345185464110919702647673131390862904345304588633426093299406039474302712009353825865930788651469663164610109490323320051223990213022182854026567740286017722367405731862430637882963706489631582685207881284749976260372159080118567227432208868835000044271363746241897281664640582693047635224022765464434998959692262520181605608952421408661945495141009409651547762438699477582092993729879044257596666288658617455544251295561608317746878652972471627593658536025013211958514522418453862492964345038667215562826359391622279721975509545843628233833639137622529985230258714082052902598170197360772192434535445168630144585616316386767310493505950093796306017888767062694899122447582824834825194126836212999184979586383364515477604557370207813976069476926953017167253885498468958229609303253548510238358216232212927087554467668227111790209830220641345724075623372676833892357334007115853884183262058460536039670033809173426661376640262177595282034641166054629459280159887062847654611709248440415603747937947542558465662235304470427427444561411142650603230413051298713111645307545740737293104432556968833874050526342533873332615601611652376040128065027453067056347119413974866489006943351351280002226870195938167009552612480714456392549481446426895950767727895116768305399013640623113772359497829088949266590741220014383697140726108201725398791450765048201306385370240199645424080797192485135147669302814833548000694972113323730901394220577626129724187333352046791326418654849168741343399343646459885066617832814921234684875312103152704752177691993609719564582154832709703839498661014825654723604982362303055874795820640340310386783516250255915379677983736101808177153996554876042773531816392193168276514800186941618483518376406788664045352991577524797050548562226071072982158100878732322926859461287332951115382673514760159089984244814660460443109987821166536126237819731305756664648877323814570874585308422370919509760937989869218793578492761934991818131048224138200610368428624926090605949252659072109861280100898921907926413552819134479426973326908341662604390476312218946825746088203087855340157663087012897620732958529400608529624074019578446135426104370556041454540960526494153164346320350732313550748981524234111215753922945317599794950427944102569498315630215046287453514482501178286872089027767089707031897282472688981874237687557985986333329378780534666172783597494414095534388663196668999421567381630852409619050444928746053475526862598824841272718061799295904038350922965742489029017947619665855121185880750905453215906732746296062618419121076608600159682277469553912452702716522941805920413064743139726976786026044282887860689055553929431593391060388748464213184761704676703113903057835071051542983973221131601979458933879663912059313247696951159877278919827763878206573535536362942739294353582950506134771262698857692888007551020219865914333940885542125608999558772579342408938123011981594673594901193081827573543493493107069554102351372723559628014886835461520433926050886808766485242350639156001530760704455519376479293768753956929628887447526113650324445154596383634844352727602455433603567356277868111855346284966291990011115011669529557364779248771442477673676597529373928046947343801407938116587735296567575721467261256952748268130276926775154847466082671214465644050755337741678099311198363345342506986683020718521028382577338722259148378396192926737391819956508930454634973652024732425505077731037646326671267462373901504402334004499627592547156012552122996843382223177444096296612731778060573122194091675958319953043999336046746101095337059897587433658905794916726799544398899763195787846156121777300986085646799100735703272685062238983380117899145891405304891745637557170584613606612164741641735273966867381635298607818465637053974331518803718453398500637248672667037682889099814033639629930382179405683960016698663394001977188974499107797441024505329128947359372202398844837819115872835757403610024588988097229334082021411391620834604943839285348594001332948929535876286837189965423726770679388518453285768141964052831946606892280831118340569375664100596251603263275937279536108839269602095079424095506258771637490660889459948684318300040403153592452035313074719171314353170030488900186560313329934869150916334575049766492099043994671574876506785565823685644783197662847640892585926485118141347128858577524072200493050536395729952513706445975126591041222370880392958009871929301254546288965054322975132111215772591536387712390646496158350329185619965421442111176148399074159517018818692711844663581073460282343162980798921293270415127924609318372816128937890899532533897329034608698697549269356513066411753699491405767198930162166628164665703931593921424409748321614114709019768621430797905236991053618399315573168525970853939594882957926272799267137317859578586591647813552605318087197235163083907460821881938613524122480237011652527461933646824922996905927001079254037880523859574796278876667354158070584800033167322138473194752723495778397639470531043641320051182986414306516205558163810706413942928619761552499446747918589194658603252436795317336130180009353823816088419440532677718863687566066924365346243465562932940558682993211456149031903210387266795893351997237306908570148515218392107152919072082510785805806472221350135964709088617070381622106406843844535117670264519902265705776933228836660738120748904334304281895127150415719544558332909675931942533927614192878249694020170871036770404624450352072465176729928999843451010541090008948267317170348089014188157875986742259822067540749141538790037643200663755343779492401897046879502033368748651813771532152791250474602792338444630199389785973657386883022700379629439407843242886051711345398973084110343299010856599254361282579924646806061063569391326758715635820515771423060930504615613697092304343380156792634169360898587416935385481585599015153710693012458596839476711755866236863449491466672170993837958912783331154153899317205288265585856070505277190001755118892916096390164967246923048303303646682955613142245570552749901181381402259513405679302437735484324271156800359424258393656921198750312150106019270915443924167107379332696939127507680220668015914885579812904866147711816337763461102632560497475835766817984832614581847456245287215233686765337555415116412156389929687022594310946224497671670239393903189709500713630392224443724268799281145380864819425397543469085378310991658714667706763842440039156721373320556234044054953424774644919815027191681908473792398398984689087298794267291434417524876731482019480873941195340421998610126937811655984442231277268272025823641339000911800704446074482396478653951683852104642247217112257855136060120776992935668122734371852126183612014786950050142925329950635903713672179604598449793920000247903041714378481887853695116328395112482571356589523640021437713615530436189431335252795072508614876892295537640747284068209889755201681330973743226880854409442852745260412392035469531537437295171625223744889805502021528083528974717201728517314115457922109150681326167345198162118367955892413659057775064384459192335763811540050804803808717886219660019974766814577564188910044724244529286011982497711084885412708713528255891492995749604352559325641718847323613684561571643762528161039948942678404122421544375360753836138868630046201111149091957414061214048505630763856585580337427253693973509209100080334530567514128976266217322887083837620995613020790558189647887796102296634836942853456162528948174351413345156231858510824309282947352461565838737636300035240054696207951170398900856151480786858392596287493041248245088618157525841189070625744316189971792667583954126228270275986139541586666555212778457711916576632038498995107234504090983607053300000369895036293178408314228943208714655235760372804421280589905515534694904502287009365088166825456107787218148036492181117289645646536557577046589715789634640884676165926394005657010431909658533132678886850848641870996596207855576545885337683943434527362949429407951700796538643817870878371069102876441779201244986877472975769052093812599790139982527650972237300226697490785141878237930478807342183671249679858738407382098679622047511770403754743799663706271201685439912073331671087144637840986427129713775085963982061906869022054281177584143991104381549552328006757987613921553969806226996878598313185873705997903865134940405981743105076408200641606321468767702182402569069317643257276542020156246152870304659874160035990424556790814264837024784372647506705120347314222166730355087142029508851037264417046044920626476380820390859686341324679453046411174296572466275634367137399790021500590901837832018751680472764751984050934119111831671151009800850303087933468784802254902750037708828781415947911306052754495750603839366123484562733724850807987879103123844413096854278117163360927066547805256956729143825966893077775060461238985058496990960841997252448245751329798930314264360640435256247183947766344574631733066572827581513655087619735376292902373913128962783171861471624814423238879934151381865387325975219308777759467695354777873195647224504294981052218422587750120410042134546088596516526617570205893022239720251716162725280733299936610795955505083083391036982260139316038157987826936771914418313242363956688750741191410381640847221960118822579454960580048319956576866386265116567060965547936995543263247343020484154003474818131174106213888877177323338944452428737918857396291060896121759877145442167508063784269340970645584397084711243035978694781199978354932916055175999972135055628881606879081613679023117683791396208401597574695777468446979560693904166029607162950974513048338823074346607701491755284122508686306946444803740528684285585787251839303087917458990079163436973454149503772384321486136911711432480829010476871877323936673695995580623464404640545377373051107642052153186036339119676182778430607279213987066798636322528929119077152302592861359272154808544942247113818291137421683861173663182555968057472212849885801265823185521923471731157081123710303724039323147577364355965826921939790775781555743443937803334721472214518469451564495004947441752202989005277846384408283881852037886342854365097776123974053237562045276021695734123896977822030793402634148043548902876802993881705751276227029264084995679849878404126572073530874030686821400973682928597202038801865121347404801834376674454028249622998218849229170918701300828756702942228369824438652323434690829312111719002249485221565234497499059771664871773322707546452253057274079351141741689916667492159600552160552214745510269461163896554879155518155233183511009009264669532130971091724552121959133391264224206726302745993653569715434545604950611686063173324689207598903350968834065767457586357941399603207929247408912412139505554332591020659195081365612852281023324804341658970616389867189507757942793046338181095557539445242941929408186705735028049962564662320585686499355114967981273214408080591213138715205821540043258965044911879752543377965451316542058081592376743544750026408949781746590262088736920654279877970251541858669530433550443049042401865498922816197178193518964657174548860615774826070015570871697977141418919315453379027980201386543762549696405020141802494317412039630382281228445532476337865542503394224987536152584686391989105433366811020433530935251291031628238114798463011695220366714196220470676394708437444878273280055900328779533595289634573098801571226903308196510033338755036354783522455282370672721421958416570126286599158020219138346335184914859455346784984780520178148363842332847612006935531726774999628291567997586059312741085263853761781392173581657929440099836596536671802326048178414469219835921070730052484735376178773117782656569523936212209032042933532955687904291809635380200821623872820808518820125285329396503404232268368003705197932809626798357683563209532930796477386267787459882332611897378363546368223978880729525035533430970121459206179578672103608943424994131675469625388403645982779274692202665923309254052499385005620249965584606518008195072043499509972895199119979264424241865538690385802648755124447524287003346888969854460844996253221320952723294240399734203683024525621161495160406088869063602485072155302637896864222118935968840610788379360392713474076844592833628158487090534296605828931821147567867709324547641542292824515286618017020697771899804881943365547940403772492113203110203994504854259230184933848490962329269924738300053116746992158509417166913711685633153072931951683052975280957754592000188058241080790007568835224162776846060308925293812278946312915361726988852192797468953928471871676035951603458937476891213179496382819639392860840074502680537592139712308154955969808452390313649050034417782555874601045621820170731212709589120673200570567168903099317611538415720810697682817801543248209394058839382641940915830333396251477982135792909755903200683182827720287579123711668318657345746856481698434777955737323136737514007723073204372214200826743301025615211743893302507329164949254370644290703318953545057386327011745870172158562262609234530905121378361920663267330274807544565597382630330853175533869851565754766864928491312008244765009335167417610483488871765571707138620951065076618946980696902673751749877453063320607992210924764790391776711680954050211150754831226786542948156621311729897086394838699051092071701242790329538828375274222216358226437629619375336700180685991600510434039162388602622460064527302284187410370990282129135203401000515654242371892301359975121220735587648690675125150156350322124246249825082891616888874439058809534953155026843605705460269323521887993747984593247846255375462188863534703792083113780972833385882288377818170219444196120265684574842354202464167858445727447627262799215746233047782931330187738879787344921942730698891729199386425126081214583982943062407664498820686187638165945887172434959672028412598354066075746344064198057177880198304607401654955242206393842609391329260963134217524810016476917315592525005765234254336183998049055362307428621940663524984060899353316293075371096499297762009893668487121981474135242604034636670570928172456804800205267742428981339379213006792613155861917760664656464423458064399202659230835828676526503097149993778326903806401819213755682735740160399720026500853640587693083289866881791224127357724672526045054889605460339261662404223476434297574698874325591273385150750144114696220487328167561202353228431208950472910199489491700335321381243654268461743199038980828476907761825386037309529159786504946443043591793293511270617747175438671673782046361267951813016750009280032167898590261769315935863285440761902819121170541579705185680780232225032056658705496425250694362018643731601584372026571308557312218858474620206530365949328960261654074772088895079312735796046353836878309654729394285016350050869165973300765934800788801906004166140701705651112716044925946279999942342978510221725840922312450731001486868358384800577572690893703811918961675239976651511806011743715545896943322775667294622393390267440678958546939450471208010835933356747357687762258987235122872226140827708113459336838490435805323968347950673710145909688810789169230086233704619516121104067601745950569287559056740099220700000018731953644169864574481601422880644709773610390095065719275671337284462830128446543191659654713806394694611016241052718882245542650019399004434298297930081020772226087098182954952785008999363191463196046948170334579928697395521562939410393188872733527512306042922887198550978940001928377909498027589385173681754052367182056458580699695737074048585924064200624970862134927207515183534410030604158361408165330159285187362466585961428635149946168581523244685207132435053239443878283955972658875851975965813604113148293146241282446255016676819954699986898090059583679794535624229192873898632761576522788609492701078924428828659494892455706302705289566486078224916522660663952949115797411818255301715544374549913831694166179922722753867453708973340636271243846732214418304992025731845601249038099122760181205765844929576552626887322203670596420469149131646939110214850415025014701749976460702080642638321467850826974030652992375191461586058149131591183762858846904290855728419443252724790657099400409614310193240034705900418305309458199630478466967909507108530074864805062183616678775279299392546414980526074771661679805253815992829226710769394613690011125170460326643963691553472318746737645789330896378003120180731690362698774440336828337955227641894274362352298245792352615918719710984622111184510717998725269694239104586750966492904991858614917145536285903612665452271669763688583681976740132777772121385398172280738961989785316337152562511202998724835997187568882764791469874127448977167542467533912403926003949174645224889605507687104975861144058234778492411038344083165837605269211161370616378856188113299163280339395709347764461153121362236852615974923946553772989127559180421193270832396826329736911271522956556584993134519308628843049632231810515379581699756180715931820172867613802128926688187587116010595698577841565906531716981921240302553129402959803044024237961741391765896111125289823097811364456869926164316126017658930401869014121442206365145887437112596334630218803056528732520864362131174641840298745974170499931323509529972520833798519638189417980014192434769637496132634349800312636534085411004905178808081714608678233719322216197194555838195414798819612574525941972530132691129935336156897257545431890972200947869941745978780196644171460415634953925397751745109849704139908257142668799322936070327521216080588930083471855904443937619006081103059706252134374054732639146693755164939974034014587729985752781384113214493503931490274492483694739075238586965724123910226860263993057526006276241406621446139892284938469710405185783351245734502875817615275408357202560200275436505310073929901152963791255171992039410285431188734890373027103813613618909219031090254747990163785180808815225217835923439261780863838122606933794411641042938889269245473791149733698227186971806429568887879814492810385463197122081007303889347741257863694469689461820938068632099803190773243531721837170255086293111904772088367336397357655857039973077618281155933421822716819772515705102232667431619840953227795448422144276312891843286039347492500236848631436665908844460630110930833252016519361155839593527886159802510443808602491314015553947599385271562276122086500841938183958935667742365981999834181560175880883877191053505175250654930838161447718736673552084380112799248178641020652120201676304579625435586378537614670260223193537458383963285908474752729361394662312912793592660811899647932001840842419667520710366048847114518769038034529944734484555109810314010365960840217306460792134269451419002180561938662773444777440599195543895905714443997525019431392124592547783084150867083440207095672740422039314877320448938352546153018211470881658607332551316835806138756073493648329557684090067263205970208177286746475399162006943336836733261606462758686862513953813697142807157743686383125150361685277489255418529213290155382835243711955897848086587857690061287750417942012217956838462999726064762934002505126150884167077193616054169059089582608276157375613524622354334200432818115232666474793523223917119197372635505599783273790412850374575311156972978870818187381179832640469026753785001827462687795037540796396395748151917832444988569828805333604477640327444264558266745459852041435120300073355474907940251265502217018646049219282535992501111672689183587978206834329364976530052823673029206830484662749419948372720318394468958464126158640420190411138450394347388622248255917364429306278796863886390321608489893037318425961734658742690201812481831314002902674718943041347576434125217703690554056897397879229983701676338208793300798093196402063650860885152523282726281876468784280608841556230373771695801252389104065071169066873585564850357410482123809461003592305947296406055700172544549417203255559408397216781756431401197583043280610000574939256656484973530951354027933674887531929423925736249917329855990967004296268606307568551904058294236493026924369379258892981490217194382144217446759922138606149724290809454851274127123722267577608500476014103706141634929883593859040071784426399226038994996674926612868663184805514485858234673168778119753405394721559521817874866664253715728950675825810866403809690914258238127234531893473234391538964280419589075626703057906279064607617923794215627000611810559659973724211347369830259989766253169823534569343763772303649275820915675856279895161884382389055233107020520320519233525949133416464610052515825844366538363186857045727706447340125761490836023807599585960587980213703953985831389209841896955742939909068766683251256497850807782556919196906001612410338699857784411747154296166906564573674358019960561465903901965600440326314468540392957235296212027620362559207556415270216811496481378792001211642262641953223697958718151472050407951356868969672451752154581041714000028636340561911377154063260125346624448653824792020166151875330241605858836047738075215786354727609042934421752684850799202587704252935350559707880685355840078767468659346332034719176522806431213742247180500757908342811679054070084807790854638599130517181681463597744891120811215873241663265489963563972727151757574699048240614894439270397694301051258913295893383414522558193973783322308162742487824582547141060788537328399650587067303166450566012992408033876322639761740164175455613356008804250229578887331763623088702759643285466639251801622571673377280000845855338725531499623229882072245690409169745872684130642257157960195130152954683567607612599171631343310253161971928463110963678531995016390822866384237350177659043474944001106666235667975094705732686742763787511883287546556657277099298901881020183210266690617773883807340482069066142296220979837758083220168822344124099749433850017263685515964462696578574490308277370923450818437162174828521069299166470093878103670168319497598704330201343143322469779893252371337870470455871900855039977773214767657995399346848026250872280108570859992240757845331361742941314350682534884361883755879320698930766390734640409556000761154874729945252464105286933536000411715506188455560157821980020596513739757638360640405837713310436974935742534372627104286742411728099938354077600257816545498332273805469959497075444272049775481017629091529278823984831074993188009540215639933406043363019664475757738807657540678249664512144003306280364891431051360527976819048218383169573286456340278979186692227648995126524106783336205478072682924430655015274474811550972011809179787605542243544091261699616969792016777642169211286887719137102678588109430539109122732100552193121425674696656769565830822246488703520034923183457951015101462393362000135999790493715140522349576294018697153172844853445314658070907368566479882192485025160975749819510528812940932439115472817824725522865511924354683678012623419495232075509805659777252166241729932212160364855398525302427913471571587885348217269985624633761989953761196342899193402545206039912745256153545449333176969376709035486509948000065925404449836448187930482107599399665159780269372192929381050669909454932790976767266984720907587813294115342511418772398243991861323346073660411924328850644990044055099421432828078937313670638475416676481740727057663895140445913086831380276319020240805997676110207779231645252944138464462140854608020287929207109440677452526009321727499392790790438337482993025612464083283016274672715987166225002572098199217976885396998485856121776353950857113346028652530290939013509666628169630080810953978555272047868769802569128274214737745792682845695880799118804899042258660721078933029140874316722707214532801250844559698452730281428722888197374403056037422576780988443577146712845444388004248171915862858115155284972215648411769165195142480685230623352635567287973608584863288976656453949139730508189238965649956865074689250924892028914456091567744457202225687087878467107961507277825394825266924949353076126392835768607557478974745104616349555936739025372054616506080927806618017624955569971867793892950689249464050731746950051015483686817327356322928120293242175418013068107420487575605374670230108689525956992779822621032125759583319408947459917370166375035277571294410738415134581779061109486001581281122821811650492323639720494532689884412812478963307951780465196960031727986576998335208161176998519024906232785087533202367383571097670436525182344078380792781131994272202968940734388830210248729794757709841282517379543728408524047554785352254821134802960900155244967597752444531314883628900768604035962334679169403018541099938832755516356949778667696259789557904129723177240134347978797775808654065080177486634143069271523779156322719927118467391459145061470952501833703719541230902989215734198876307076707036814992615955897729154819964570064496151861594828666852258438623565626437139524257320094584903633039781118639651271933051703441045630578837603631735237646877036048077306713937515225558419312739331826852891944359561625576526734120312135202659419024631201574320754011421843579351315953120943995949401615375457735021852668500595716874184956631415907664318898551440672770277747322832253758881403534222130276444740470026982149700076664005323957885909144110319691876329401728537575125159234801883010040152563607608295568063614465281712840361178971501157190147356103311908130529325175355460360354073588038651986401990753000137926494087338997656899427174440883074377095743053285968850464696279961399363709532489832585567106276030089626566771688730434134974049715182407242808800884698732513103764226660131935873540213540382300900946729461064330266831498175144037374804465780406240382181502259100887447900927836492826281659166000839580906029287095550217789170968460360514914306545428530667880524605269459269273891786498985842636851112718002224477519963567762439313305414519626952893594184359221373285779054693189046692019988002739363076583630075683301860266956862767983574631783419898454117846805594194491192925018414356805119476493235324707177206710007936454509046603054446693438031189701118340199543875618687667279886269590092295286488890692453849212563500654181783475888772417009160305475784840785901475711665855037528587032408325444076085434181352887740560140730893253821893384931065551547239328870763209939756985220602853985481690800130323359999948502344215946307712571918988086268075046333884490252601595509387242224328826327713683528776147098704680773349817121088461826461614509954220400117880325314440940874562126136100585017686113526325027421606080474228792082284286818028327085051128530361537116994784459535675382282190744250272560794644998257018120955008614477446005948570786087564275916845930083467957660771171126409914258690756993120120943711987582907760233907901904932763004987719870431300286394027016244879536706116511096713457489861049850206922047060769667738888311987102153134193498616924382049606377165850953795009849453295829753444455037946314355561563649881633844920369763970255022787024210400072790698195809036610441685383363156337855486958152070516922987080008840248557783748143997910867750900742452915109229142433768754281418433914967275818549629544875892753160529634302336531571095513310794653075597300343203422643745382479607248121340911897026822297294305676619983504948883263886903762950592582884665813115766110268761164511523172407858343111887593713419875975028973343301387496926945345060408553702250936303874685930672910797297110808150144813528499131460991432659298618577021604941011590325686949853261022272151170328890572534554266307013963593035395638894493309989187992989967674203828835978952429908589887800835350729880794509937073387467234848494807832836144710708324396747135707479573386453944387883662429901009217305530584754698418413796158971427431894082348057389097943019905034062171343508203469347645580365834241548686340237585081658081505254146053958342343772265973965226351870374106220302223067856549150135029041959696126416812712701981963937900420872705035731029207115945638388953137125357646426580032713125171485111335806402596462024970933437376551199516704213118706749880415766859208073834351838451800447780383675301188808341800559804191395861239861478402960890153508486035594451693341304711481389069268873251572265859929205528580220417045617407098885279202522675378164704498651292517753885847175215713202734630365438167039627605670487269695088737458682970871937914491283997757853619238410612343351847766454056388143903015302822302372582151560693057329559112312667329485216334956760637395497022901057492998933813482936792267275658678142581074842519698372064097899536898189995036275613750434395183362988825977612081241805057904146873795329087822144455117158700219627230385488073227372539948651065224925889326046459793366771070361770903412859406283149234359986778694892108238340000677874313711755513032360472631271630683413072827890361619859770650157331093670650560817687471003602196723416052829302248586518613419108205349220188401591732352867933508083928802781807915720750199803647549871165802699936800015432346738240106427890475140628976663391752327932536502211281598144613819197461002656892184082540521187955697847412774659383414217994988350785687693296165657738126147729683191481899980926787422564348382343057038181972612897779801074331163150628331185165138721245090154370933188060912813131345207955537305235580091997733151516343985900338549997326113527709488448629657991033742641211557836702651737157091343643747251247872775670405650761041125718448366133684221988871399312667933816943336925431212877295151058766291906042020831493006395977015355225395631488229164515323942907361765285248575977024088594985768225805950764431376078089551433881369397710415606649595046918647951983127316971529332328219003093310961626257576069097254850488246298804669427690561206088962844468456523224268702612949259690381038507047380135247324877984725520802048862036723336366026124537907979341324190553370215647168317273617816418523777353586322151568710974691376381859364109160636822571499355032115989697444420927953403133195199114572687667430655088048216892288833113449001697045554943908185249157589133637202100220372978652017088296340699115531407716591781737878206760442233366262313096340266883973558025182179378121005176003058130493786384771869871407813078250871228030051260539673725939929433355980547685345344687076734134004740246150067608690501578892398673923570091102075039480676751512336075733961949207890815505596174390990126066805542551711883741111655459494184082078176636774233840591719493157932107201298459792449823891499811015819856562589155733562314078936069752614265463558907536240729155246988514818368972176867811099967788454402847201801058608146358778997008210253181968671809665670322921374527949509420018835623261834630964097559699311116516901021644263514362747738523713754389564560906524915306365049962851775877589974325472502878892555928269332473457200230065799136346679625439507422354934456459456011537437490679875073859390408689772392802027046929183160277044988780048157136698894516230659238126605909872845060793180200531342320667639152445659064771128641135798598652502197734258058621764622258583313513672798228208430374072470339344504978274933808452755914044597302686049671948240586185949669685914550466901998484465124941661861277095742413616003230201140731545513614222438860783111622445983962834476808394915151499955117012103219405645575924141883622993001434032348384226132682283079038202077528544011673654514614606001330445927849645485680774040371098031910356461208612106045245947918412120777657623289468697425496329389776500278264423397166597902205490826102344995641174038141844855897917350690038944445543102349726354791941262269371763864347162282852795651949678998198891757479551489405490734094166939723585471242190067192574272118057331390375685134849325585327676815732790490104652138377073952891857410122545166108959648917765309039921840393448074173433529620094989159393566027081551055427938242861739364573863432228043365699005536632403774164726658061304493749415515662817549663021291159583171923964583008554575729870628901194562008710692584207473960672396756384255409656117772082058911310029418376491416134838257522229004144765771586286106162215129200216416870885043030869868357641872703181613149902067174454597651879494961392619075935364840122724634028310069251986563764070601685672545871618773500833724914174559377758554382696835710456717452497538577310976368912273481041172292813331854792098812282119512256833705937858225882115620058158479145704337503077889769580076626666783373098590606896209860389673868973196485692753449358155481865032739586333761602067785601387055315641959722403571097214235147550454348617264781523428337777029591457106989046856001715897087477949022868282108645937956499553045967622546854865388107700819590217240842200454170588665132249324343725466804226390830298472289434558403699451753268634232492747547710150789186726083043920825754805287598840460933903105160808287602597150374394088125420089095065732291142617763217791106148558074395207126492062993474155438633212934185336534450035404725051786031177504665034604047739088468362289346069364044661144331385432646655965234847441626430905349336007643187094350079299335778200177155122792723729792899133344927938681412356715385643097938116983576545547893500451063536733280412488158449482927041934402171156520657033569512122973669946734426058934328208196198615345881127242483021132000095881236071649652030554177310238772688483756125102416784771269579415638586621086583843038877308084976210770193188850035467553374326652224354802334924512655303432233434758879708486886865085477728827786264859829796603476840359933386021607760734401440678563036954275962663219228555204732331651495771280668901165573384770014323669820989939402403891597246645939850448047371597079264536842829339057808086324626880248173489162858625732902245304260973025039085698102237920199867877295184126021750858566400246888866294153281073650929157979592802378253875270093955630070219282594904729237834441331147369647879746266802619116736510519847908971637660876929270768975735231841642098292531910462261582115250221643474343267321171299876903025772859624073071514662207181838873837455281532158058662170554445956057040254821879541850118052354542638897934018079492131700889491958917142087551206454755485733335103486932623839377109704387611548939377110149084781757329510722701539740353875521215422944760442208116751856015818768866229999597121495329263296394040338091128500104346059460222016194204845599347378682287365179951969338231528171022086954734833171351464601841053100199911695460770666740514220612095639732872047800810757867370322745278112422950618345860728257288923802489031969209571364972580795291543067140771797502989667641023328417434613482702635587080471218693683824979103957244278497990418989476670904770324858110362682346013500440945467205425646123422833690483901171456614622832164772566574430499380121098869342218911279788588267197004791845399513694726774901748993498484133634823850341319911749637552251310398781100144119324141956204580983165051630618868580096204674642583723156992162287350530910095332625252545556256346334109061154537999334456637982765302563262161803732828592839537717519953142951908692839956368011781703945175486780423229944453681686641034953740609249393407563390599717222511664213783264285224551956236116435633809686608231998974942439356134232953978011280363259007871794746244895945583068060573395680357028367609335769282311430575738194228684348160026258063073198821514981898804490793886733180444291112294052677469029253083180409938773911767124715672051225932614624474147447595418642249154266551820456368546502750337483981437799891618424672957840102932974777068308439630411052482155778076704455105116864641392905645185446007342422139750584044065923916718953698538019942064452295091852179688702450736602200116713539093691033164245614220579739204816092561069691352186242798029311239937478001016692618870600550212826219743897807600553003145755858442795918761331384801495843452960322635869661764568468257582616493344663994992025395351347669058860548849911390876583675331650400536177262187532521246332051853059456947104282118256579780278532282318146259260303104701410103403558704646694898540889039590831121448980138649574019859548760626001855410628199822292342256192311024545124207916036547925707630656022216427348245598899704811188295448034643413472277010269590587803334649459286571592726080914289617253418243746049873450313480705002887218516100015065175523753069958707108134948353609666708032187015731850980382275865953734561812104315802250486223914957663833239832335195338165233406251045625319297007720702016655754749763785793925456259004392648134975138807551733392364452208991904135012364366622801356751285769612624807080644926721629446160361764456843011352540090634563109131502736056050188203916969956046945858312868893643254122095131845400150142219315382145857237898358905663043704721987083062769015469276851858613213316590622845940989289311626384263369129158812988194396668511923717721186657998328122892627564181129451788562463321079572193223133678497825396890684326501218239185519996907928812434929256797052219943497044717384484024240161417803066591193465433917267581323965732540427935605506842778959557625715632639708618944417989207351982279580470668027510944129750067995920028181066627806522239653235424028589028565530523000501087703140922363441018179249208937510334678664758953015601127890731059198003122709401200606716525909231492396000207954081824610752345016116658872259448739432341612009231519777767349632306301122480910229015191868385796942732301790366966344303566961482312743835211068653097234954845136461295551689024245055240801996449948786582351070615103686873168109228593431058895413123923331286409732979172528962366701804475410973301542697658608225009255747287358972910315427453984148484183759291576467910749828308263996301160081630937656595546999392405057896008270752168588191428124551805395912297776603093881414509578115575673768638849944128597665961482932177672959773220112015000931045114747483823339436644351871041394337852669498479498305051770983268579461868628398493184397296073203235131916166531801641850423900856747886656662850465224576285836500976989944811038249118895790174622789032302660516831856488358296334266198852670019729446658172197287278497357440332902085482440714625979761634674773540921859808601893762380795906567667311334082372640703796461763768299003131162449503055567796714434760298203687549846076922403879069084198989882763607932634092936109542076845308260934037366760197981308890927407720959729916743504129518328524529424919687734647079116283640201262886915519247598753609303547435482936758457476850902480992427855449664805577984541880911427225702019949615477508454995715127367965608496192856359881974782535618629597931233871500928247483208257400962574078769711335344437592696744771763271521679162140759025705315779277544504024658672251687551035222499583200421747579217132076695647884116439764795652708375298394628643622988341905944975780408840581448836353266037664828281341436857489940992406229247583190867791256093082905102615963317354436067737161385065491340638333764609488630903201286346818222000646150852550912732226860622557381516838875614740359890650204543949355732655224459223425152564555362752043764185441005639104522447256528854395507793938507654741898588891858573762481274738746353873528234366049095689617589389141149108060447984870871931875417399321005022464153736536831558403887463805973718481321660648230173332093937940064148137492716231309775400313557686987847156370434445129953223641982712161695923623218240791584990837394733166405547003058535990207633657600542796942293661617567883138500820950148097521949683605127961246738989760600810656551737081046453535593909344238531665027738783329897960801696051760745362195667159545218092575398143933159079109738506881607702420270514263022023292695014738781506102860746934703017095226568518049569374661733828916404305220938971594022657310023073033079983914480075843925451757258185977624540298342986095102986174067360256016563876194566749303841380183301098831842672621848141259326456927153465413528431544853443465578233097806461859248563863372182269417420670140359825716389762585379885338198335144088899307831246266352076754136536078935209851457445404648836202570163096484897495617669648580369097299195111062153941673628785675392328343991151755803111276192516310134847806777298054461123296829270365680505961236702183708324911718196376807678725016203170441520032678432715349346975502741521774983420820505625216212009661215969309268533772160398359310365958686627207302470110429348975240343951822166148193679717250945767081091121983231838598326952122838637947828518714298508990283567924056109886551847890233290614149067289887742821597031865478633469441217295700287233837584477446772677621863571628224209618702730293699221235777755548587694192946063128998341228000237385568521704078143192035648401640247208216049755721020998640885269985515584116190245676805134777365818480254208929887419025465627136339337047037958094566291455059385710554439288470368167214158554652913951633506776542149576005010544849798466039965734914849348804272476243465924403373556840495889751893916952256293834514148751000971781614702754372665881534225283279456155939673850283212338272367784840936100009890446329417606327218485842132269434361098712278734355942678519062161300903519595748112166063887217635753357792923383494656647582915353630095663521159555891161501967352496061802913863884010832873677525689887421905566463629784969463838920301318703292784304320850927777839883043240210090085172815793450545307767373297803920704055283257765894516248282197538099468537386145276552914511297759790583641236892173401561589866541812312354142905511292995202091611717615026886091716316970112353135669822842161759354956306969670560183766205658280483150546014324608780173752729610165283186965490316844710792641353822258436325616946194439928258127886187797427823287991943214657886321331611225968996591397506078293570661401099133922505628708154228949378102993421022945411784762791375328802873141705843938958483413719424843948743208935608197730015621316894846066927869354544083690251968597106155963841814723357814721658824711115170375058012403519421622104500835730201602028525009344243851027337704537304972880025420329860562849818197003533815950592155083262103411108491127794496452272537425561432652640865972227741415537217216671648140319061318268909802224319755760752117886290755874861326810252291842901440296004519654586785869565335289305526513144091991257671966918616610604271617432358966779336200804251952643387971926860150580206334010394036649721528435912149294808905950981941893558784537474490334633617188858126690839659753226159065685154705832759929198031614645570107993383158283227259885468388342735644391563272490858598123241803337501797349540881634235651381747323173137807000061545844496118303207853874636037993128881225386751502470914032542830092487619944820961730157560040174514281400025723425487200487384781160473473282755205214065587009402207622594055061253513476419044708090318036410474884411714256351843392089384641356160894065008448390825724725223565506717433495310365600516766500659591064521632666089279502503844112417078378476856203063100260482189995005991451351082659915695594882806109760175980849239047485310442341354158425814896370791856887882808950563369336010202596402107199675272141201253604936094237377135405088089456363723922291192630443231180508038944724431222997613975175783576162754357735000638818702499165946773137710501969112371070643062125820446521621977358110489745061975821483396724380758212482144300623800879636184254537399863209819369749501986581484303771688618791590541836289052637603298070319581227002851075970615094929177740253212347962068921106083962461640423690538734176548785689641033161960421757059100900581775513827804520948603314776020908171532931581435175036385456655037220740456084538544795690152390028752635983783596319921806860301318307289857071950302317844083349564890035005680434827216443716540062448453116903717059902701620958395216301077712143782778587613815538608547193161325451805500733133996206695720721938863184461789177186241390700682080571688667103769569055239786380321225087326188783609673004860061577721134450046308906246441760753790490424492292219268081794852949273618879686705747557613788033405199915646454492734991090840637166255439650537109401056537731480053414835144133108375667526408844231724641070983470509088701414247970583896331769419257903902333937588823988108723381918292766337934786104405410828633555234138220305981626458266387633700718213053808616620512010087000709998134444993443107164217944624128405118274408952179297010871199222112667282342567210764879206149921045844810537227201863097358868939288609296042673736422415405752980404894209158655475760257028766462279031786861924697647203696016729286111982073029020565202413181364657267395306437632193470362932817378773145636250480268894970416645613094159741340474150610616142788093248595132956735642582459479182422517154844091126749166820510237804245698621916781143885832002265227073792663413887383786624079594012289351526948134225030654570693477083015896980660814077383933176282507485450245640407953737651520681482316371621676233319253365868286254052580623171709190298330806887893955401221595921910422096336028396434332537575647884651950937213494699310728240235051499542463368092871992911685878740053460263113832958817339253373893526116903360842217432901480141488886441286351086331924842360052282271110100277912582252339672016371964636839850927752991468029087495314159903112305847114666730911391654107743309466763231306045197565658890711313298639417140421947075700574985332297080185861555869157219713391669387896824034220840303027063855988426719584507126937373222828095719071889805214939264143214101678426257495702894878613807451666337835840295656226644031232878880051914879198403236595784784014349468366818171206530153208708990893769527334149085553283836914544582510157557297484109269201271759433732566369125999323666479533184723115448187659664905287167995992011209567111551295311556239176870984135970109579705942692510660664690107972132619360665159984710257787346171271641322446555867669827269573780912513214399356445206361966232911655260209999830544091845018733127343951944326672626463803423412651649843451511135469171047917619697720613797072407202292887115056235704475513166219126686190649745228883181075306915928309443139756372227493066191674784751436165576202276852697964022320420882476155461282065568899397246911246120232810420717829510924606100739880325575574720426588586113592728976696163311592523097255548060343649388603964646648901331229446888521682849452574136440513407855521099738149037017161210571580559699298335788210731675581724887887625963920035071359180416286754588702316901137301620602087247669731886827491428584245982192606451319135928053188751342031337744205356336052963346435643706723487000318729828539752412944699151813528770034918509647167171296492926875043338562532410550304621612996942607062346340153747094629105525600434406712443804723905841406526612764706825202188363393034678172436644359312619256824392468612452100724854430337843058211289327024392540285954462881376233292297072888784200773652637677512242590760968166319712653765658488908704804357693193715144164006175503288356906549108565329469641579183192014366276457749444365094139749957076023393133283388022684129233782304289929832090960653919789105807649291266967667424511215741313464951430124617151432571432208171333591606083577244914462799053103151271546485238932260986546434370348356843222491589549239050314394596106263275295452966834186810731444021986766569598232142790822551588870577420708570018890323679225652860100719465690743916108015877384998419106653001523730690100089218203783906625670169796051933115043583706826439143095379156338121590498917930561913919183678790030532077314938769590288375742121663519587551320616060292622192728660188325576066575250864003975304229434194444481491440680870195965633652495651146316429831624784957114066127530697141245491013991442022747347696786169652074578885973446706621659471478055739514006956249091504837944778777171012238406866963914482945321275381321890913162404939070040245023342977055331387368956823328277538786918520002680106099772995157700812701490723865956777997077931460622325339011815796065826805439275611827477801926508772414542766836517520439869870268313634377715316408240249622697127199602501948742046767834325908165407904414933864026216256865263696257677140641748891718968956053113991898757883653629039686961092003203893727512592854717385423560465617980749536446068730042884823499554818936375065546536985923704590905399026708032128536633386909668341577658010337577668080559437268375397180959552412761368551116164588920149045874871467316282306377622644106709834083396856362757948646732171422741633559363258051788709614722439449664110132444097041264833103026685184729158890207122408776526333960387446702884882550013269645215952848421083270227228936352785675117478960822207153433254932283332894271127694383190656382755929710378614706669499047809193577956560770984820090096302896740478498284459155305018184259761466524642008194440753917712292699521996589654937723213865415359141738644877529703389417278366426207779036481453796409072012442870423808003603368273935913594003272741785253895662109094824032707299081470439084629423363083199330716439693338012994097427168648443291601011543843923954687018714458399736605504234996426573205541915629676611724025742319481824909894963901599027447616159837852722390009831716922481771500794787205176275390995441208401369545219768895910138071394537198598010387356916445750951731455496692618874900306001935073038828524037834357692088537297525674544602990243615321395421004480265453107804411539520220992900078124232662338188479397825052206949448204922645137000363909415444487972703866488045645231750674796668176565893361390156684270361885315785727922879101524134943543255333123121520025090390733465005358554215853865265145974084688853522495667297230148865400435329159619779684100851295162636106875745462881081474473525534382777303453223147470754170365460561616127851540346558679599617784189182726070968237103295419698630177727231940362432804524806702276385147967937139667818261599962644595505797153943300080778101636759235134412556455116796931842036975893685833742816753146414049046141868569626794784967848046945927685348937627760559044943896126840647182516690206544913378380632831721015118912550239030011906482423085926432378004562142091347645479087902763450421985917503765266835697994415437800169050978039856982465549483126582153682983984123069488957224346870577286632860937939440934164565235633775186817509201931924918184107988854421870769808563768361003379988510176043929851445529353683595893192165846217112421045033782578264717377502182890011311653506740404342487105397780214597391383064099822598429271530022160598994061708576597746259038353254960528009077929650215075353307558675444095460620021261866489547653363959165545519338242516214812311169008641462472970440804959926328775477989968431783033155618357606314902336432694532109086404112122773756767096806831659627535829609771957579711211884755617582974180156675150362825578561116200271531384614616360688169403150895380460855253214476308908545160017895827336979942796958504229610164076800582691579555548845965963412096569480781358361794521570147273371094245292030923580280335250197652937528666449664965169484615033519677891506989295069016009096195819551109894639239237302434361167145144704975234332564766873334002755982028903314785663582025229890589614072568577528441101565868281682165984465081564339434786858667038556950986719940925115697983883889280077921930623292340177071332834131724167763713650564590054647069132236906596648807259889429625152080163572007065428890451083232324126538895058624720495179703686031270066388550497707569953447075006119863968577489433413738023077475096112914670641065661358921366911986244979754747120024795850732777366145930347841493728195802664610796627612338967829233457608627667599378036757358154939788361280860819192441829701866103057417923130359972985147271042283051974251294185446229839680688880733944588520940551209942554554109409098172035909354641085595173105879829832351311289733765098285845842799170695260032886511530493195582021686695979259893043416885136107198289932808299961289366978312285732975204209144397884667674130732668522029230179416432554702192852070299420507700881528942569398389372414319084254349767411767623094424915939455860110225294734238718298876772251473349552997127904776117923626261132104903651026799442796971044762861367636364228507886454111540381944148499306741682723216817932728885800925888567290036522700043714521049127293863086475183248295704997261998667547847492572708211503880198958510383922993567374701308806127003180894555978989086395709660584727872726616703267135235841564595442637287758998185963061251717705319819458987376645054166498649367470064689106328158417593570011596490830476145682193819694179814923801994752638379705792395278349120193573338048970623592481443752437654908883886305402163160918092759853010201774155074869605742192290990909705499130244482499986441894687679071640176195080667103308206343249594968632702727706351251558810524262043683498090831605382077618971313583322284191134247394118120690107812707291082039618130032019624503629739717491217080826642347045904038192170982250201755235598688178119581852981646148948482857510928252335989129871675906933723628983080737449783210610097708645929842277420921726187836379411756922846203202908225520943931611588293124399218469845372677195236242813241495293847123509658570093296292472549261213178772606744501393958035936700831236858736893624240369510286651813480620994953706195207306354410313407974539026285854292326411100124782870398285133155950394879688814900217292818564156644424155289611924260284290307192078933668820312813816529397006135034964361772503826202401796069343078161414999542722300223651805843471603103080273472061538267191801231966981904049857217650290950520454871327108720277229241828654365221089576221853876482193094494744076062376217661098209167172322234732713451549793538070385286478866684593158759382255110109325169291158350119466561763001902023409052183041210415852263892892682308610537425800828951636289078001639242261931540576245009416245411559290658024078540500450801299224125716669181112420057726625475334504149781551697397959666086760689939882825625040542663255690843272682661927272708332940828738785952069098617230126427509980669823548980837038823058908150000833151154927179203080030166291750717677107004306834975911814576662389138877472925846341784289503086221352428915429751942044256693410808746043968122114271048765006471001730831446144789045600895762965349209548133919435371881680378542222303779378571850592501843355770412501957828554883476237204004161534605302386285928288406257827029890062486337011880775436644281056585985169626965999614783452998359425669299886193269566636241217348587853791187129092907026322669234475178523711256426236471534042700160453204493827429185151583918751957735159087415899906674984472896678614926001344767101914391697159120250376608013768026821358533362100280516450917797232775734845578068196387945857398606402211718314943826582214872237577752725288241013738187621793844634833532114004574630110607107465712118014824618024004231059497943531306412311270930571839117738010422043695043360298916000666384109423737559374828587181728421755430293175941904234595109213112824816907557142264596751073953490583657070421299234743537173778595794025521107782983826301981055881679100961727904072238216690496488635980630918046472726549464103146146887946458255834522505094402062105981687304625880361676555189538915514582000103783148968338707851266245293473252086471270972652772652584555341875426911827182744190903095241749034069558446032430354825786144749202847631243520667831928990766136287148443120188008697184183584459039616319891330336458939967310825068278706722436049224308682833919721951811391893474662313010291240174845880989410674561606856410772429434972128603728471873028981590443030396853618544582034336509641315397924191893312743790340131245022522397100581287880871437124714321943948445846287511430547388270877712490148785999078403778047558778276818023893634657955508812818345643127426277211313041221304101243051854258752485048307165206275120647123799377019145657983651594774459193456127152388182530107924611009298395227640223760301385481477423932317610207192722388707673353130914601504564883185511727813693649444599093439980228606168868881436503445362953237621567424116726853694292198509063080076022673391115482276999462910070115737244474648425810100639677132526084039844372345753865172058098315096484142259753288130555560713157719168911487743161389202451493665688247495918642030879748002046718439056044586651603445045118753410575631461839220414445914403626780209519491248532782894326955747973339842890105120145947394687332746535722428672339921256855604258655672932922889725076915131576309272735808468090925425536212160563101134837991782267332994651314906659847762050632468366162725959490900000947729215192385387695952148337126304909583830943244155539799528376039936919580679533199014805273611780586263325337593156420523806027695200679484807370431350457853344799448046126016768767827937007823432266826149793690834656080065844239697144738212071179573292805767556359685850242653313538140546299184642293018518435030385659028429339168279653872207264901161841941823163296268357916474642676555761024364109147483732817403201597437393592507055602044714497302032233809730137835514093816386491372200244607021423376692328698489966712114996366230580821715237788393265323233812041172559995790109138115090242961469416247432031414748718168472786727059254355383949682530742680553536298529202874531933402584531297049358851086570376429999213232795307769865745842530228956477264291723630831681281299811676549719446670240716066774014837663423805111773457505235400363420009776034600653203530056852980139873486277154285323041386472505564745756353662387830883790895398393080356003187767621621933444442889627709238165396915609179950494151491630613503239219699862627678777045385483933622364174799612524584790345428862399158636956843497091105539910896565421154318831303057496240198153400024492764306650118743202772545892251573193766222135405597432396637521451289724649330385808177532377296270721126268032885867562499642968506659053595957353039518230442392790353776390055739361209467714215569204210217386157520625027495620022615451073867073957721050997958480991216934272342953543477612109876202404591219873212226920788817812015257168892257166489058325779662192479349502055987240190068229548840551697001997845672974044850028298471787629430068320008206359000795861025252202338128895511106621065625667056586617269933690266854227843703359472161322131193338595564369241586707357990490737977127137786603740719810001378528608114625342149885070290548917512710294263132452204844812883534627251530116069752141836045516212349336265483389899239157380031772737204929291889637018702333705634064676466969557613026289208491144786071469456659626499959162657441682351972090891771846253704736659955328668173786057801582055613667738119044683637358554946353644832505143291849849644382892134702199154592684489559117512925467599162596893745737634391455035076165163242495862784527674663558262435954638702082127252830865682514720837577734083101952061089379466919297467027304344604412712226339787252550856273130333174027937301417467543746040762961439249449950912905633522562299986107728934322923532170376037415121660346294009026720951607219287104045111918093343911362499542346703578824924851111634980665113776737247022781125851670505612410891707218413808533037480497241366510726809109160493414830475736601503640588562652581070888333442721068200594505964282308568636392004547704832870792454160830704562347328701146341189913815011897128192328458407034983020413059059726751847274730757918889106315847215912423660292140324920097956699628028627421215484389125470866152531619023448881995570943692032910069417924992867223444572803941061559396751181188382105432501508316542544674894716356720545052435162336259361292805868347514945004941440374869348520960877220057902969856734857351993229124908749737740534046669299756946416696522242881426508425055301646143428699249000784134148470584214645062910509918225856085796709797379489688911846251243932791586058598176578319784201152827774120425850391441048109670268084388807050805843899166944587294502223067212580898742954929320048774022754224013276827389610889403762789182950993325684900133171622824951504576234462783456344110239621915677621744584238490022531784215864248956873992624461021646166874205389113637997305597330451157415129530601129393285257757796793758146650777085240484677654940456673171987916774986489215622083916040702270535900402568832184999879802312726507125888082595877731445265360890188379046827226734221088142176430628421720776069639985139624105714765380448175832271999896874460576294666076302399282170131119395397360567856075114077009389758157951312994105956638358823694592642955934609677171867285853514299309998825241066342834754082573421141101888970544720564461137699677802424951369425038947330916009803933680553107169806188475358676927580893917327755966645599250659675325389972730272411337425138574356163253346606036889921703820769729606037505302164764517915134522941055114276935224696437644828371118367188679950327226321643556069218115238434521897930264680870432291054027509862140486544059871247554502749420173146400716470638693925592620954791805193560290829147326350634674215861134479057591575407930939897038363531330749712953327465677209210265994030215098191510315833815237945945205142902874927439096928673438190756185376328766045354561071359581255912427901748502065315560120892664979484385107127064583940706644048155565853035632289320808053434882130340714733487668684166252186482099742592412094899851525234388375274689500140591746146459210331000927330838431363288807834049842031962113253361242963071105247036820294057593289265912901236791897766055945699828822167866052255765393560050086613645055930886774907011394788540273892044057551975543102868385568973921390793330183864245257136558421803130535918293189746898481919858618786068837923172886075235173100599474337405992847602729560687317525864661160006219443294845682360154766269964324431842476543714498165618119917182913335117724846253220458070066612073263035066972940182990335761444345424037076806955442643663226481263752807533049333183855196986347060236429341758728681931969792002867653853830674281220784316537972768368658837133085189952579539362087936107734897903692636053741068063887220054121093443704640143050364432435823903730028149471855617276264452530384989977866440494263176266385678543344581819565620470408265536020135236907707752500736183526530353470445177096943168677696418534239051245450263038151764357097681732844140913718902806694837175686564667813545390338014957079544931947385402276350204440930641999555916590822121216318375865015325044956213309931969485729304444919085914629555358927789398653174550972098606306620039289210561026689012599999754213301406438268537552193294899307991607890189363420640059065290186304884419807342237896789947462738822024090287950845553157622441000780838629034518583262382078215388330549569674127292868302117271612150767446610139963846628203863131191665885128559817300417098810904916031881260718773767095399132751157714862435179523179907892572027650979126004349176546620122506604437016665767282257938681162778270031974077257355296117616255738267332736516780271415187188723828915205221834637958574105014408513707540481072270218380239882601551773647734881266729283867658233613584430414496566509736922671720896273576712333275601392303902403952279600407431538208628320607721871076731328551671730347568360529738300297582953533243372758582392298125549587871254268130409840438015914272435608509850271285397951539380381602140858138042266342829658826604778397755328349701376329215868373864656696566754968091716972124939001921226195664821162343826166992386810303436387331612505310060912014864142658312203083033277567086413525731715034221992970759503125979611558615956759587671545391454089452616058225857282130843112625878754637408104816464569857507253640558464575436656194931354383225737478183614825949717512805283104778493289847171437584709536641609708081673863092160926511855050736978260233263731500647875046369330140793788752001155667689171818796539802992158965765245062277422022045131003592795067936339399156298228072390002019571095355369359862970712993582880791191292157597257676717430659239948849491199559850084298111629081699071862347444173508882023466195457851021055037277482869570660465041801690935775340204638728284217383013916326252002682260746644987601785634568712452929188950566642561227185625181573480524247102887315640592536539152978768273559714915716724111266527186988604399089527709049326766365318192557097958314333467763632801499959791638533365180720594213573061890326697381051323833148183057288110541626460795978386472994700126334653245119549451789256365217617487446072050786900325389522760474442100000928792945447265503664262231237845443179701457081923203050596247251797493376543350750375607088183899587712930187672553206638490013785910870362054974353808878273464897513938866263662091184085909601473871449093281975607595685923003238178193965033601580439868719557629131103589533690421717772624562728993283468012264485755177947596599424528103368250831541544547852705864886026111427823106061648350812873804233577021181811010672096049834493763206456001688636084093930010300080041349352892069260571021249282066118839609555665402824402559457834167583464004061927530180366515219871912226360719250038423107866509002218740456394101333466168044759805928793722395975780412369063842314149826723117918391110222614668821658228367651904649807170591942839987540778169328891479349550681806593966939948560203153348252916057332697788035946644508931253532322428490268130219570745995676139766121354424765560266754820702656946503251028970656099735257268651394834653955805665465343629700276500929886849464488323087035193728932757178973668941918402511243273818144967235039071088038036250161627797352809645242772342695040364158556649520424750061652226511584016301126053268717853565644431380231191121539722923692483227521206783429563312343397280582658745520209974811709516941210639166452716448842942042208584999917845289399309662534206592102647324913953205914127258474291893694591467972881699296514645035005549452650757023915103865504116999524777790820381432802550402753054374915017378568609479010501031358544186243587006273755460898293730996921012051668201977480389605979621828994505060686890371654151802182624928385878677994580070722080246104624423100163517528863711699207055205402365176789875342677578133613042981934308560090919050434225419104573970086250955802638798183096691855223764193283447757353483430543775708908300165275183681906609432122001111666715034313788793475258031202939306143986624788678112291818354620889529433060636934493409468066435737688296345105024041150972448041936349030533945507981615570625278754325290214636534462908803705408206209699389946882504651991852726202604318173872664390335173564638235470134221210732551504122964477772195254817122375420687920599945770523883057205753575330723335099624257362611591513993417135032815980432590780024981183431554443622928832475366506291653269939366357413233249278603606618002840585401349392405920040447371541410805415733046394183269536746510041786738979856247476969403629462130268696345227772476552204543569661093664076003495868825307862250848652145292485711736450815547336468737449255566838766142369686941573422826322107987518497303496539490172277019412899677585172844495646613892513432355891186519480041553395534841228463837016645861855147818306257371830120219440460945407986761976228373485991566898869811822668407277369767120725602418215469005226872647988203794621409884313262812665410934607800250671289689690836455251391940044430738332462649098651428340523710276986280463232437744407259858298100320116845812866205449690283142304457239306264200000160978808114719976587150657192291762812194283764396200431036891463859145987256098323769330575113308405906774197674446340267525899221923260408850577461672114773443237439081344941245733975421998462456834541559705049819609989889340832876744200219148398373080068950282404423958352153644323406584398929752096113849498039259141349523388974181708026441606256613211788918785134545748155404236725076598177219470214039181077350215358645748054618256574898798008783867527016617330288138108203011482765308262019021808952816990772157614801392089938193061793150117110136769343537845124293922779436181470985250026403780727262955557427073750044995879038876096502910510720840772175768783335855138493407204376952490323644858503380755256891733917516194545748428832558174103049670905750359578059088734101464121600940918859428668135017794243713624249835572897104333923995501926330817971303668344795549303326199016739097137609214491034758248839067460297713765512249325360239400937843871751906042108436471406176222075603999323975607623020589387136498796822766194455654631536862641065054559701329298915081819778706330020128526172134277594906106149562454720920368464213030852877500062345688620147355222162801548657109186444691745532395523070111035338646925900472475384978922957123805865356655964385853325179683516454524769167136634846010905503321426131321520394324263621297247171078767109658760825673950375748172815007378161891459317438510618418890843034158668766164488008990250359161539116503545089880814669523323261265762977292280065216932204286363765985714381651488532577988450502163665978863162741654808510934981134457257637343734251566904231806491114095163792023014448886724415652011907748377329716828664498916118390574430941814137131246016349225418898104563391783484142665824330219903837368778171249345477303957480849345978651619323226276480391647309138338315019840310914203676978440662580200683511950923942733775671976565893165749016596359373061708189730922001603089758440614799138337652764883402854360828072120951063254408549935879262084109539894011112893772669794278397596155117779613238702075856102008351734398631665583039508720172590212695920799140198492037777211123707709766806688371302415320748057785280845484076327367116250401497273310427650131594287821008584822633662693186789895048326514917070663709832714554966007738821974063221223775744151951621434427937996266684976929397073482490321465559834206013358812670741422208826772503055357252155417169004527050651415830793602002026946280453944319472289098086255266543508884307193655411739304711992479088154639794762431086947047183654580901975130867164681280196280217926475976083393681321006279951849573917124477959368253933998586581778978318248692944072000395190404993921855687057994261295870220619857261285982058685898769052852727848096260557106245570949175393598791465584137523526288854478211290649813529697628688739000733429517841537552252227781837267472866729392054665594186273306882505858900463292244853098708019115054671365932745513080891643631279543513767444151582432381078251847933341416367375479567625491501088630701274856012193481400281128230063082874103119638172799392968474447142613030624505758235112394398531754784259195035392381320462927133422578662352864863617109364284921540187732138636823922843565252949664769996383181730852697734848394435117857731988824749297315236313878730211131783960387651295828040552671563327304456212123044474024766147658952297340586026770037317609491339990774652605641018107225358940082331110390279870291080338309732521838610322554430848787004166866231409228649783239088344212467652498218615601038886356174452526786716900438115242192240718670585876101040606358908343914125137336092895270293746117720690623787839900334669149661223325797083589473802078926474607523066560328320609111472345768623640677937496930696551227698812067038215732237102627696085732817842819124710628319317281265117514641941811898026981783252635869520008954225659606800829500586312500604446303942987960149472768630024162847199533869206428094901616142613596878162321330580055206044845089794421150808764424018911783899203450495833225367840677994599589773013467823988455323201146776829662515360673355980544867049308373432818757457184217840024617090844987143125451853515634127706911846530996938651439139920720248592684394637147296553793047689700608629757446717775724086635815709632855682436941731275641868839266245641213451597971850938832474203581256531167591968750874008844752425631039952244230656472755942643184654306296136345369707579814275889534664887469714938279643741417325625726138029201447237806320740111539849761579162911067914585647267710900102633567176753811184473866238413217717639923971072608971740465276680638667965659683569104233217799078509548167636669844196062886246716911810221898875027015311622151579699454837807390603578675130413033094785985135734833530935707594375679713862279333507762440547647475730128900153539306988286309585522825038557038942717967996233389273831916316157220660325764470251260939878509794283005656579177258221318418260048181599159522744498058677728839178750041169232189225823760382340020808738054157532779144236536120128813225993034973518271240759182627266555411452490385697127507971644882208734808069233422131758003049468876471194349636011718677826851139192446769185431104877820455123578889497344650657182152281889487515579189434122959162542915942820867709028965324619907255183484560273712249910895767365902328479859419180315162947496333754112912710101010573391033158534023833750003163442440895506894082538349698164157177783880896319153417342713623702325356308991472760023584824523033555620073087716631569746737506834630000246771767958819522001304333124637993197386316141149864171333046077614089938364575191603616776937454444398765555386575791075982122375116397174566802195919827699558079184785791033798842023611459414966342213628392282331022501192477557863860925791995203445246301460047274747186232372311646559469657796777104828894887716434293107576070803313100176870726270257475835626031851451727755104400606058404047262282877185319074973730398452383837803717702351752699342348504196903388380117731644678127644261986392283965394107869230212796897229238650524191222212628306778334172548934793585099498591715102699645934834629589879276379947903678321585873417170139049588268681705148926223402440547528537068381340747238705064164822224966871359114279721669186959780865578666436887689997077770662096569535500729160689697650146083155676185935916326959038308733007560603242159077217874683051882094555508279944001765556813934210080122009450809920182245290740768779887109344870097419944948399470494402519663497545244402684780879830391104452327020457458444471805791612587646262528679084892060038831370078132009915730750982699380903504726907224751382603907487677327820300837254967644727531578322127807629447119132498763881222025084446724995884508047752748002840765468221074080256418443011747868414594844964357608500730244118084769003986805403488279638372320953323212874891534339781356510256165476839361499463006618150257223280191165982019597344534437760219462634261077380869250756406346188020803019700478712586424341892843284746548501351009731131239612871928130841361808915869430577626348302983369379289232169851885916529849609341512524379430822834594561898286924597369821474878963122611836274046885729949348927090857118174906681594512118774170136769466138997832798991566876367351392191651475523755360903577073097492599711522959821096543297108891601166754953711489375331756204024675411044215594706297234313273107686579138155650355493023986319861819290773766824189344788117067622959203955294383299303852927468279990746732079590009150306877047673207900678520258593944474897741177633864869680767565066081314552362155064666026496120892190988582593128576236270536803795152962019894258051008480989327813873256419861815354534901937975543566019332325523054837150915976162288034757600002699836511707752340055262594832127074799620703283776759064640334877491739388122611362423639627819565758479594274432359907754501511109666799189851884133995441051152714535220745321609657752767251797055630693767385065882569383348319427268193794732345917405882363758620146997414539815669855607555657618046063546749107834418118965668737177470412116600118995590002465933361875764389780436863735029410038113072843496159510693148154456027130448589807809533507084428853216124318344198785990145155489986002179674667607371790561201910877797812912261386912826118632036799603027305528812530777336100160654897294017610377880239025969311885505368088016800203757149573549710734791338493657484491672902874204663783464706610486490791567453034223444157106303261527724724308818243738846869352964876820093344157649826847516267102304621130334503724688207691247595216026281533508448352188137232750657914093671095125337506375400946936782380804785137151683730108364365718496135331644964005094673424047983874073417072492870472957786039062034614143706803882897181329912202015604269466243589737584980518608217909867365112535422984718488091385350682500580716759570008523543432446370581200098826929774666725024681384982209222643258498546507041187804492149680708149551968381913384763446734425731938501078777439570684683273821270492496765804533749734490077878980240248418907897491966417517355915714475256140885962018524221612655617116131203725302000305971762422858791107073128090951952613745148627521731496829709128033697211983626190955241678996118383905767406547720351240828959637252048672604270161841397639970468008860409956216213110561057543533938161816089807531129270159303654357221703006588901483582620142466680647967856386559999648237383666272236510934013356183757312619353406891495176271103701516859833213420032904565713502742021781513696568967299041801027407588281794331041571581019541986754683538469329337496898208687973029369315336448356145481283130231620281613155710082109461563540320391505482735194802385404060111146213701911166120598394515716072318626755243385763980023362848397116229058099209093938449047481161221653157192444510558129089658261712083246842197190362610886036886118334224575817070214441747063550262978239106216696822768433310817027694583854558499606970314566246769091433238346749398661548496432767051171518624459624974489268301060733873797125669875788539589525499963436361352288898373351810639452485393801636892964463500624096525158523434334439529234648973740691065913774059682651786814668379684383184422572501188475171087859545144879011417393157240245473622431443790516540082386388220608748675264553455700568261600599631431495964855917513637272568953636165058408841955348905524148466066094097907592953110785204160661506671993805905687707515674153262351333032174830180654169372442398873538782852294281863096782426042105260719847901332434515267241784390449908392866845466413494537722138493724943904789200401919460077384344947457331902742445952970916688576888382235539329258366090812943744786224155937604455417343323158971874613878088593124219638381631399618807033078216790438745591242067457222131385386020478365002365001424210470231951880752310382793735052059131229370573086154257748695985463198662242613199131310597401628498334229875456587676663092632018534209335736365343925784988011842220583565700390535920734820212440794220726249219467307237130135511303248400712802833744340741124400658977843055351807509123472571964616839213019812636374273155599785503388057436367844874760701972613329203032796782815597935079547823851814453636820723812474234798301966421842890704912180254799478964103271198310289027473885560018044603853258206347485408266092978311617315867622322098647577086562574613284895677895119366593807329511404436305853757482963085824929656821058874789227818683528758992327412259958349170230659426664597295708712317751959847034328973905750512662929916742438426931950993915960643543154047622830896188279277202245899566818752362069919141803265311160711909023650158535552025923397336520509866137518017607944478364597123639849108658459955649909896406022349728205460658627274005646861237566295175310743996601281230597873927487145077489096695529484317378811640467208980206465277607789570645333251218302983151761617668536786818956143466671965318250049257738635396464982780673517574117848583941865752205937800883831024745419094629099443591789453374107984171152670301559303906413277438564190391100418442628307805320553492904559094978390931698059011458892475281240292360578711357842993841838678654047963081270672088647050049845159310227330704121185632912628168662764827094927893606459429510910554260726226663676897854075162874527517471628054618683738582309863668656080205218681508830747701699601583375134429154821494262235005306472387204528308160839101849522360305764156975969883940586890270158734633176608121408918613583938669354255086924520736333838872770544725618797874190833322707394769206478859459753955142599130027007085696377709566673406688574717466739155447798117423199466043162333094750187365713434389301037979194478924795430860052999857551559731587933148361609907885363489597871671249426818042841448118152991434147288478218212048220665778700901439153401793755294749885545161885766798915614416924807505932984167242065291570631777386279044486886162055485572742414873765197148001720382662982628129970813123266674065206564094425824707592045579788860854502666180641082292372205176285223327641696308138404993931414246833892350464712973311665484402682964267161956784313457291977407152889558635514232343272120697222717479347014405360342913589448771146548780107072273162688371273150774080737220845637101378687870423029378429820904811034375059744860265146311270392795600582331254120376665393112643986803286713586753123089331915266742844985440750635914937969355306120126877288276500513427137812900913166315789473988982803417603069343571317886003591324507375331700077512287650955272109927716421995600852797317661044773915663336945359974392256537381672615703017842013623249608700184289954234782496648524581087794761619069174379232948797078829046435680207513018838716931858799955182357569548268276773561411043192565644300273951336428849813883035251599521283164894685403561592802901260895800759514358002116323166160457361630554729638636490679748180370923497362742276264185737637464241066293675158451118580767858305680480186796538928495459306530040683305469882832209605014156163770306080688225304820529264100430388220349848767564490731978851136802273892528243988313076198336217117613540892216876540644958220976570213887893279178552935540279133657034099423877024028513397577597304224890461631076525304369221399146215810489287389018974919415508564701947600614211781375303735329650598433105073982988774088721973425688753998596111003823020394419851296942570901560779878730447356023072960972925865425692291121610672430036454598512980261667042546932259725285299626965368785548386488793472840613372303267028814092988679017009797850246252650449454288553337223347267165127051617794598713079465469239023003746699078590883242835433962141544492354284093971069928634353746832214558395853343273712405717658452006970188285879843878750116682677380579573180262157971258961860247370448379803397668491458941721282498693039082405599571399678073434577962877186985455549452400027992469964774641170477520548799413777674292843776811081188495043824330853340388722945389227907345144287208941538773290429905039473232072237509174331889110398660445800265661207782374823299369769126644900094514475618371308872516831148841104633252490093875738331618458829475736273343521966730711344456817351986707174124583560818643804479228327747585524125359371433701117919230944270283003525128910014772740412985295274463247828589693580260852959223245842272852316989348994343351615427180417060908215447142651710878462116340674953398267648355437200995606310884808246246213135501477082227641754352882060671302343544344975890340575404370089468174563565964903224236730447754173536650656266507751891294535135743693215723962751326790707926381956488001797712699891066108792150115775934091537134404696080484404695187516626806246427162418056373448072640929832525904480117404613300314758046058446213653688512830666601210533334624421967098109450936449857126535585620139463848008107572768787825349118076198709014854797401974957309790099366511032609386535593255486953186369719428158507577788431957745995349012863645704618754786548201520054386229111423059991649968331925442366719521353614669960642561831777838466019814730120259796035172227487755571691339906805033007080822402561729255568504348202232159203885764803132479689820779306845042877450022913639882520809883499301678140457425523915712298148689212348706249804581909774336060817471537442272870107178667054414229968868549052976880457320760411238262291683166799448280105136738161002755063595685629839950140221723877136170438115338628091471511952945393809384643509272384897013636479338572573908097812293558758645327120853429345699693909222582176876054257986114153442961247120696291665642190924578894149312876705508515479722813226837504728935916676555853071902853676959511658749425116801813540205443620507837150717408318758188915371315039564001454330359089322185803786280338764685275530809557206206843203467446771237396890293775056413829139581118281689825630588293917909801901664374110935108050890953738286262176266983593629246892906041147160411780842337333119753955518490602844778399335377204794782131310980704431749108017380016049070672606125988216758429181997311669195379186517226476198734253495728478245565612393200248819481112335890769980671154524934894097203109374244560846498029288507511766600823262739905557867471460066831013192833175343399253995454224116318113998317167824104812263092537616962947214712985989948173715642290062690417742960703443388078662182725994036924609687526085919152555560677777839364353660920706102753699859971775423533907824882009464248224921298259767745877826754548378391117803484514003700846806333570465631223328016574006329283929357233975404366425777157094745604537421220163683559242301685320231884959927386598682125831275049932040960393035605911518072701166636075355713937386726264282433044630530589062190276419644710964328629052642723807210310620453698980190941386515729837781946016255255473165521204766249980694466336069623328659321442878209689267697916871384365059150872717536460328858300053804544702327462474240715454098866085743558163523833199048718884844778580098778205090111715916001341441698708883879517742525484977132045662502458992235935693872679717625140919578199562312044246391385304039567433340343003006368480254586348838762837327326540480938360077109806172967978291758300511060720992048998468944016657774874650151585513640077670152987217937741845917421972389221676225491215281881325670150511497723814632933224615247388633677843614608238013729782686184396335533167792297096646234182490748753204957959750043436611618687092733758000239248848377948119060891028159557571587359481400038944356906630839828505288100925032635913975087969934902037581933286777544935532963519772461236945761051164556301917259576692566631781110669292974079030462313957654438114709623033938730862888773848250484949466683849723248754255928588639657954374487875821682500247756501752912384656312857459582089944259338074754678431924694674918090663162739310791223948953567196174122167252713249037050892973231249919701018987465598465497580801077148057153140606810287716979668213243105924731070996618092969176108154064626718993820168177201894812640564098749159565918199544755088867793571685386747496701160329919703559596295962299964603240162073067152211138372681402175957258022648107350523829728194130696931348316718197480114071725446414935648134897729514364590717006402816641732876968253593564722781254353003901411198988476089834646020411492189825390005268112209450692540437922180160750918374236292525942905943490386635308667764810947102261692186265715266887300665615981968339373300664097929854722281797991074182572113924992900430440548007619120694268983531533541325687366518391136241948492311378843366074433486363492557116190638323379025806791480579143763838274724816189925621847130233710295451800099396185722548934900169712498207503752025868878238768111761154001819313913566555758009107729477611487129624156820257851582857101864531682873273528335970604449575562341622666408806759183357788906834450064080207539579162738741581539297403668029077833367092240895485475604006642577866645824880207882948804085155698498143676908479085595551045628448900455983114332968839549273167446871847620868066626952687909268176257834043300324753423301815927814531429795428349821009747335584186831056207689532380551371210731846608845750813475965220309010945629408609704138085573808289202918946596874771625078810174310567720629595456860720577807892038421159430799559767558979444715829641283391853860129229348572214876347484479597597816389634013021919399266568729312548032030212585403660479321209713123407204481134804406937488147639351797443589181122519759771225957824698695278407524918336987633506882585499595694223069381548653402149350263023609628815574369778784204137173929173895112190041704739694401913262051429170782847791328728213445738733779749818768338012233418355350695046648034678497937506901974854117489487078319317211442373084333901095430091754022824816052091087664468047783599580526869800018919681001070609584084566055311450566751780863838419998562882522406035513457511982147086550364391971920592317152731268271020493410208752284710856860447427322999268464830801342275433435495484083039210156719714295984735461203637027882433001898328097286646528408999053612510477214563350593685988817072832991445845787242076382683544374813049652929818154899907527746717424917209106457026263116296590385231779912169433845790161153404055913077099342329993142593962986472422419843070269417864075347951119706473873521589654692683593113513801668628566949966109617393599159415647052402450020387338005079375123560713054568162555727094386801454739219729220002847728317852328845080308130558030428690328349585648421956707892980545443652241991446664494563089690785342371117175839831594874789490449252163876521494978793646620350521320265304101177900147931324678699927048711284537435952920647247194991098403979327050259511554910827179483963362006775731174474214311250514631409865395176478175051004241603600740977410627306837932105359428568671629750665931385473961927505225416591696841853928853270479822862770781559387718981752944486007015109912001830400280805039625943530514854821977227539496085421403971541720567038591249367617260338245066702910314542103568463688676478128014187536570057958733551989831424800754473814694377950791072393125108794052701512180980326513246133026021249927572275149823678403137165120583200387330616933636716692853456791379874273889697399091964600588262761869404422779249632936822520990144147253946934584305128355938400180147433035902948238058681381789145751130960781493031600684670211529716934872162514815409731061646086392028017291972067494716725579324738343733851843199601420378368418978403279116417392223398256853515941201788367454963761878587215397802362030445204692721126544677431397253044645359859492902958218548002424196054145869097684072733547787033675095538747553576942161590838357553595538841278489941402391567134075637588611041353788470902231302167039230558136663080369152832620443975106631771004050429095962018257124382626135366038347596168155876440851336077205161228753599968604406693577766435115102033525565137091952668992817314151753580064642099626208947084339650745525510088011074387098441335157101091539976654396079626786603907284631774083519270723150359173654813620083171317206728155491818404307837064588002560353233405394514344805018459485129265773956010582894082742651010088796335207021405849936129468175934320945843427484429915045122684406520214055438384686734352005125632885498203739970431063284841619583524139108190082777675404701821482587435872364224227995327431272342033230629126781859826797462742685526920409067957297885926399165816130269628258104984122116425216890902811005119875761257465577764861994994501605530055485023968093970827853159523079894531657031989782509030436538458186123684542239117663574992024231501389600897691543286003372948020545945639291742795185781076569308979854339843234924544005298078299666565160590230219661520204198953354988196274905476271613731810598429029743470018744990687030693979027277728345759734311805037824849311727835504316051088207549815920163271442161385472442207784379012141134819604400318124050219814462169873172023074685927186665208848591748485587494217300766957620492223203151827738666323297089025072095160984262496425998596704539225617332480653474703969665209319586319877948764901972381696656458161744686278779943779314004787035152456974038225422814912569341726821715914273277771705709362230803997210168758577548155536078986566300428850765039792612278863573667555225937633158569973102198650612934127969999059376047815115801681476668571425280657620821226161886383889082365049171350974781796046317041860715734130657145006658379298859399636380599661617469966281940585468687268808651220852352617964062606434513349021862200677808097570911782044133715817544548021398381276566110159967446367574704518567629570070587421379370779173750598563295003616742682993935185785036251091975443185974043093241570065490926643243775256762696036375777802807451140768563514271651671814055946795072374639104261302963889987761696696697569914964102459398943913885680609371349446998231271210178995008914921192215077351535282609633293391509532624320769681172203445880494466920280134228543876745894369535200984669670871439633909829325722899451548165897385501191227030428170176661895132140291358523239299886693377165570216914934882662260986026486910750854771295951653545280416479624059872754193993090387416467351737533794109916786688882747641845171023996908698830012372579411049380355570989663221491131648259078776082940519362158204793955334716247168381413565618358615521559590967730922151731586806547432105441108247616335363005556266501047353683236912523764718832882836492462550136851160059253541842856541383689243424233412984919229246960735591077800099493193816022461985892625837293922198036535545232566083575097091716539680463551981385250474943844507970133244374650108902634676535945893720174289182366533069067927816412282704471493430579673467969701391717833900966559411316146542120490842702781758101915401641039291531611196987731359816396260891343747277603566120575746838698145405628220510891549958389249320867299765252916241519748522832960800586872144696509109384812157868017233747562464138890068897487926555580420178251580090352712207424603531075493923852716959421491654990927453444482463738251843248832742687193027687031975906775571370164069990456280306276510821729489116233621942222111878371461398891044113721813875788112384347760348313654202686929037031423952995204394182676090733934320263499715679316377751116285244341593284132953437876512191973684040774223783868367497214372669245861063681509048716098940170554027180733724248870088006918012213501232216350924341088831849704013236926604632989835966233330177803755837172107279543033394755641884190943740197239958214421680313374991105549450178167381570313929704270389066407174391294781362280000989953262297791565219369134214971278021869044341391552874584324465049168481924105882450755243108769984776885320447669276262428282343610595149832049021843814120875826645212569450954134680749021436470043306883422187971707082908724587578512525125063063110682572679192941305961959788300924609638458148396172965218774405863776023013493972739760579459965650250164396970809859333959211426215990078561022029376570863267527276189680530432853618268850215376217052989737859824551468266150196823649189564865419542171229481134073406054037571232071196659734795641543948570144992423523718637800792210661894982071125140296784597934856286046348995680296830927203633739396748895141056532328935982524946323992053479116128006527053859159175204817985517506003386645742044030455967979757221087179136114527464666295820318717675592557980369396080820378915116012307885026795762349340204045574836564163804021941774930083188581257031092757551749198281825670225549010173048991159652375170747627111042219925575633294330361045612126420031922269803462230453879391725540899809081130666454219957646147162551937131887406129261104348854050262285697539650853120353432153477851081192706062530888072136621161327991958196900349203824264712432758758840260553520484645476837678801878301307114113257198641161899649518875794245024566102418868310385011376975643174364048304347895522597656438569930604718157230143151232255271738210733378923527380524550147251590131539125813302808918668158134531276806216701219831699952568787839490471443959442164695282804362390812033297016674944262644498205922204252537942807746132103590698479494159969955937929782954837000783256020186207493999932157287754061670608376891238806759995466802059113605799750088851776022807288215156872549164600800405627217888804814109406710445212325607153575036386167836044199298392990403376746704697922187985940839864190682954696988034074939472977664367514734596285097198438406714528762286164234831337411894146438273338572769431517490711648085300485118634383037967554603646255358828726155171055373518741465269949734202759929757263203595122635293366443369567978882997666544417853292049431623911766796586277260739912706285983323784180327819314811926087928889830845848638019230706464529511777777075339296492526329818670646023210530809798364539306721766448150200657862915667122309519771310833433872703023107911973376774397295618399380644241681513356481520892021753757982662500935799321412046164119407411076860881937059310798760727933791974964495446383346960278111578258275761582602482174253494019142838321469963470077872239463554222672194204296482475976732758575897703085757077902638195904403178893268870665216119666151394988648928830548231268142922237080298007884808807471456713181461895996736505136649570917679397104636603447981296608633197000755066628304229192044773401418315306483201201519142693065857967029161708855569208663658583372810146236254944626306743155079187939531178262415193489004944901578095978104209119891119469586338501735377635433587951965624389243445687242361126189295540225252228808541190124013773973724746007318178908040481657661538831244855296773300806236308647266396276567997873984460364962623416599764745212375550533035963404211149346669678859178034192410088243879003985172336413705488197469360529621167861862928055728422709407072392192718257038422914024058435926220595383881683897487498621913607666417124320629990146038104922187273818380748344337150070985032522829054785209606695628995167088129259988866484994305316996054166106515037794382218911895482955948632091827091667218455145004029415076017340075910002593890488951316422322405382135483314204887394129942820652171948136944171652778217340165832591835657728688210689137229244705026079175750684520915257346265700779162548722834014159259080560998855014936876873576573462527111750908364612089009848647658670193686567445382701436708443675274656380683770556787021004371625669745403392980289012603532749103015071261995538132111512934998942937219519436278069250717183235838424153106081707039364787070872550943546267201450384661621499911624501464105925451327230717689413312582090794002233855546699274883954294748060336477605514802394193563746317564775538401739373159682605608691339200241140208961788243283958796097950517189336413856335770652191346255837167031187809522088285891699293696737495135164324617731390429311890719661348378348728163487474384114570553129026612085496749128794372622852559516406897891633611558707253937541908585990783269266982463712189247567082388152564162584829547249435013653076586064209430124088050085674443733429642930328245423407490050988406913352987236971402855557617653598713592016312563434870373350552142621733643632289264430438338915541310120142686096244195595518346899861119692389809693822001409819258685567415322887493626919220510217991951095058844495472504628286498481804279919799209913912326831094430312990243815459599705248046677888957822883950535423286273148853470363965781484287230545138828785466071872892727009598478864601507491434738881039041854030884084337258347998951486603221623478282752139003699894821950238400591232840175250187833595165127353143563304001124698843398279377455706931434356082042128193062494545468582203772566868732719238418891039747077595259522190271665468117735683244619849672663783758599211240117936347088698956421681718876137300264149936448944075970585251850177739631539436236700775477419267413421736404113091575691900254623609489379269885076056247796257864263372294777813428659556119283151427837858963535243078385160184228380383467112944965457500996734371843348278975199637463919513476519539706768236599064238544215631884939084917306228451418590263171955409748599619487486667159081847824525752028528338867620076558774644486373605879798715549328122173359509267716199366246138567979138087532404152717368672625080586571368513472259372866816603084329935645778790550538538265354565681000194350094847961767376388867833652358093327970202862216089277808314992546091727644359737743839189613977503212482547201040700834003946939954350892722179177028323837182396564565415384483312388864489276749436969238146737540050425563491262899312533144460162262862386636634550188707205434283101347550325011910483427717188501160176009976636907708807431475391690906926934819219077522614787925735734883696294563418374471393948194807174271285185445245142773791200538432137715760776180447851983857683269879247875234113433512267802923797368820410013860531365837217726168789207194197980315750857855188692794861865230958784484924880228152539137201116535393232038370567179010752807219306384964795036824410984307966084528982085337621606342702348010088072416797903151090919523709586035069404845277204347878623994135217703341054964526744101571571037088366248473062495289167121659476089379299141935357340390283415887612066746063838807010643837234541346034698717564280784593979754992963340997024150794780666046704247195437492227174176993638291455586859212412514035543321236864515954711835858276469588028939934365613663793966514125570185675732837217669034544099612911375988764188281579344858474650150282176612586622810161467631234606158730622852278639136728191504094351185481290951477442494360549295759164313856640651690070487128231845654473488648961091877185599159782095320087820609643620232696754278123983116383760202545412824398636656448661787088097120552901792085843106636274147413194502410674085865520310144452067832986590838762445672834696006873764202402583753490677700686321394543951814459712454073052972324027716140384716931208245525461667824350588375311835709120260694837116759919353955663666473566646969810340531875899946692502322359574601924139288401948167659559440521656784242778629749946885501755758230340106963465352236688579985072840178386781055625704400875606460276113329502904187473532745815367558493331626939001780324948677011573879782704961611722149400425656943212999116367387619729090417770593207838399211562839256401715230103181155923436166164538302896616074401895358886618069466994213074329354949550214182096929241142678192060373804593095279062755338125719587361519943731428708821566845893883485927082154155983149447154118037516722736452837504605334913487683069205465093178883331343028361316514702124695208534891356180677902517614139238929320234337157758607936317284377399487121525447546396466973426854510234903741393094163378309903060890167380382756422004757209299033224190929357937731324541994637308033234098034899497854954835030860998619568826670647135809774799753697358514245853682669813460459025776239605774054826717054816688071347119114144957545116681341323460047520390511271187296091739110340578513990459316541740871464774525968199881367571971659961266729900883441397196486694412760368576536694395052318677187446980466998722006032616718155446514686421356754296828485102140824703877432760048747881260764859212348843570745994955073625080979210873931731655080721505659342889042413527224609742909198592421162718145709660205201895438122966745678764592416759151016867096555151666624592280777819227190673455936823602865705517753635158206827490203613175626688690590098408613535319934455031422374701448237880768024440607362789259179847634885221962110365054267728161629947948454119567232718141455481026964835530846155817275494688249906018042412522251921252690657128922128690940509014215573156731187695086960046205705746518339942779186901093725715200920923138996411046420744236127290344334568377081320297677273991260999919013925045767187712112287947860087151958198056995588899676724407251730295822275287639246888350151243201060986502644038872194186390476435380440712816550194715438738153448284182742507746256211392702629488698552409083899069810276069915276462274508338486142027658020208868476683948100380440973137475807746946253430604540254326964780020993637346950741449642783440884347596726188913653735370976649061885826200245406175850963741139825209359453217544759377206656334312141324463542309693435436844360193340350539579491334534725543965522745570498849348142459660597646833288033916072664459554160260875974353558816907308410955071589667994138147439399403114692329723690221651917408779941007613268794720223673490462438969663387152476055943727474611603088703155535389950594655044313885143274274995331117078228086306591104089828217971292322701919070183011733642676513322412754003283714641910205270097673121274142642266963760373037100188298765149608945001788062986543834986932339385135060027695298407315093474213658906787534908099986391352071537228323701064849492781310047859137791899188785104417005177276172050623009204088879183607640833166941715640272613399928840307075372107438565980722598618568302449319001319594690971646320742982839049571903900219913909084560947942337994738153722319225412368539198934948342612040547809033667063244904869587741009012729959461369135387508970734557465962884035131192024996656811027134758159996540166460219273538465364343288295887971272093552202600495615112173316187094837849602609980171838487406358648506819163486373441786537463946376850184772900704246899715490842613469663965452170685229397702147053523346609158730235983818213949929324509092441505070713507825814757318957777110321116799202047918732031987826808389271852729833299296289860203457056998770797362657963912646590386125777193523902034213000060307543956597902435320715167246369613232497005300253089330320705447374528585798760664358650872301255127719310717376457954793716518544218908521436268917718252844011618415122686705771484394760585695974573435774624540066900655680586770059166900308284214895281404399520865017920003133270308814145553492077176745431545964074680677899398191618680889827504892776080069845371157942641306017597871545481238255557250001323551514649847132737136970072440403765537336832115570250694922753074548822818377110764814041549573873492644573059352823479948370041320857769622456044734794633098357488843477400834998628133304543679392717947203327141123591095618420310038099849992913334459304619764910537619851494674633625867916512235158429717117103514366674536699690452826615029812607569816272557231325427681855959287100521122675390959240155300532638863885223058951972567412328658921851162710240996235028083655686278209223534760554923226061932064951861438417393205526070570043217660094379399644394984387882237391211676700745408202438756167637993832809400655087898162289029235702171649199691150554572469175511826466769758247033260639475579321437716011465268561087336199637274588635258522254173075048330681565952081822032056689967294056252565275162907478135039104173259599196529713227148991216945297717815925665040249676970814450248764730996056407746699297057935527400776171510146333899417084377169441682914610932499199735546402614425946653067673028449369170040111465973702807754694433534258303042676058289167745740033403988124694604688562759471952128812789285369794166868860127779197814803339718858813491532060659338110339963162286599800659502984090721834676240150675699801286865360048250925254588865586886983739626755713130933831108443340635413234078528289970224049903917281364215137659037186217436147172443411036191877857923102760937137193592299837770972455039540330686205602461024032102161641622908393747426567340514449615621877853446738517239295655649825045313141676615349703767561366910751352304089805761249633657990639209037352594173452383797756110789892895621421315098513144441145290653851290873155971251915048541961858943428552149210988989138963452148687010366543974007423334929963425008301518579237643683360785835795740074467745613751461702154565620596194892510460443520275607320029875303730462797357726713648575326463898416897054655147215589132218754180574840311263821903974839552877581648736606681399684442929128738280614245913657701543095765134683847844523455532342954432856133103307289745848834083495268354089891057520595231878453898553779093001519366199254303759005242338407678195482413584902417245655315438887780509727665693773955459871957634807237976992450981219189874215058323336645878234693810510536883541063031606131915090084875308858771808422570208328002421413890495592797777403903301922715616036998203492517887519186367709779820612244111570033504168467972779809969698961312698753375384386852914408869273347936006316858940016425199692302427655132583022358540117171381036741018822533080845149643018052112395947990839501937915943312091172810972512318517841686463299143361258539323114653722575689597303823770869358880802000267018766814378036185762711663499642367367227301328182424241885114428622519344091851383191736674875544948261319221273379819891430110005606618438654059953426722491991513658398066088347778546987915231242552103087401242646067438827830191080969236674503805633483984885917124388135345322678229415568188598427927628402964093314356637788639130366003855489151392453003813726274483631324860714139673697310978377931073710613030284629724283218673011671137651344875714268350647362914955876419193717289118818170144513736646370145026115729926112447568470081393487231127095008601096237300615001195318570753736716482820104596477231311371766248864104238859954492039463800750153158901126035195732795595657679621587847002144184851845952923332090883100908615864366516204670825713030460300516370874926320377277603020413402646008569776087189580250680734882479719356695536070610865160354122776109624673820590607640068296059160065795149279059177533244786344033696699327879039169164225338280556242037593495205955223837645411327347664382440997529545058533192840972430963116281829537055757852899272745151124936372314794391731969305079469016812224420196769167811481491940833379601540062615607377364155774241261570694887631639670548256697060064657344010220432688595941242733315192963962194501096230983418681824755664825020903963344301204285777118183065006094230847000887668270365506139144796065189607917835045970036107405868045928480478398332209868688200440209548278097948557315311576879957092495722634185171857673293826080563257828798567492207851683664626066390369739862805751717230359008903294432031806319575779127612163588734470530690700367427016579002596667578365733759474399307592949883975319457008737600415373638826158555385741883560151769702916984412776841293094506684184660301936505640519013138556769782556108004080942317618053479459094134529234587071046629691432414558006801704612636765056047955030372769225499616820044799085038283627366177109875964420082225658742810729737565625096882444569586767797098760069229337297475752233231141462623750971474615260051390448652360488866678702221958301722892388053721611403895511261227082067739144048355083070329814998881674690941795169270446865647989344389844871378209294349994140604584591905211105812465849492643915657454270404605181888735739615653597968526401085193934578443895131128668977231780467620097297312649730087666986217549630511756051014792732464352350163154092551574947857540759424332123319874360891071354985875910405365509397908185194483545647612083092610596958086513793426033580912585466292527579482438760805650874007720947054352337111238793513761372692938507743228034027780561220748633073914361317316746668514979609932186710946217023440222346627366515473910922053018126531582781626835982217021737836731990782988552818791853623950300507520682467941510742116754812371790736448838051783440756561906567026246467840542212325747216598086925616396022257179769086320287842161556758205989934709743001521389510152963504550683816217475861417823026505824639621629634724124889727332529517295284083805340536943336564614817665576408107644413041088484096822213136371780962182634470686394117016645675243861923276310010443711201082589260335966121899393488524073649304212244670337289412884840618149160217139416836275097772096562236746322051765464791771946999384784491698916539137220120712053746526147261362846717125429507387128098437335280546273778582059489710752909248981172632101499062577208690403741699487213952426953303963883591518960327480855808240306308057750747894336974013263560459212527089631415669405119198555682009956956046974371062968229317490685609882976914807683549685549264685902594622527908595096711373629556662008647257594191444512475855497614434612946656680212784130071370192396219699732437812596667422425246060884274902076587057668229611147617632526405935954101291945816271811300914383211385723450417590300827042765275433807230633646998607214304757679307801556857675789205727919327216386150698643065512305115462061635815488180154939842954628413125183618975545807976053437132143994496006698461749088581620324276904412711816604782776099345274722339994561037599323066435349233638728350528933791403466360040803308592693660100904363273627284584297941132668260253082903689380554343343576805364011721507066271348572335248228906072662036947711723668835262361857145198010960878609427230156473195802047740070282985036050796599601441052778687036477958541787586862324775491833696915105680633133081794174483766878906927398451028549481285569062397301540323012913466228289236870334029665397492227474610049683540876406689995490321783471984257006804422721066885357298986445524518475754949455149647276093756080979373296366391531324763282561952410226832832899331390446776152384885235588842671416705551166320440425542342986637225953954277110305387854914823066015542727250263878406975792290750082013057779307514512971748752705199354333035708714892158897926610310626452272318823867409663053045108264957169163345027882582332935421952776562818005650192750939007150939534231315940549677826457649606811519986748855461950385279208454778638059986343486802754580947130134253386873467260122624137532541431181389718954597696773447891676404665328846315339719221672122921786880933617437726037681974179191349777149480083925918140807688915703973448643442273156158011971887618413431300629892582582448442839091493776373332602051603864605649436827596234144776420947676255995799017728359828906262352417068237955449103792844145754031123646331422349214157920513654946269057673240113914487808704696356561794809912579471371096486161385416075700188754215534866522162317305497293143047027654950973707873435962138037476143982759386503229958356676732188097842407851657357691465774625134570723270522639759166755825834899273297584649120645935216204200567454246740928695523326048673800788334383590240202951108990093337384214398355034734527491238228768465080125174967354995573890271544687692334270598187635731650270053468358838210941787413068599365703224548767394109969046488111841074335533340844620604033151148981119848579698454587781545272876583938966109012117199624976974961900055301777640841310901845915798790959862154988606788136898742623027915306412341615276507536507505352780359557699975533875365638552747126879705925844912304340813798841932800877190177141428044736998128116466055123717223595616301033021286344680706288340321311794900375116173297998194727413513564216590915778192129073028582382739920327730096039982094142305112840072808188986414736335040280821524743538879797478962207084484165828341072640634251826253986689678367071547802423855001846313401830824723287052696702711562561774529210939467938457888485918885277527783770155345952417789293699690102753896161691736005759052724578475764854075106601437626379331181550360391099854587290359643237263927460832758577579808504699425221318216282530676200537500745210103070994104474857248709134216872256320147221089965475108475355609696075088589786356398920607726018052571467930966210369813813321251316899982007902479621401221249757358633535915131433422904254850578244684688318542765050152442817341142978170897750787642523932542322356938208888428442286323187249077808367252895808153091252590529951791875630669194901694572863975628392170926200916456271809701306831242062316768243571468356947822553262754107867083181948052693024742121856020473574067647840300243508755147545785211407969052922243468242787396796987778342092045273530703897229531490628762039251085435787796138290637103092211281762167471633500941927575272905679583990145740107095277026974768851326508127467039857495139211874879072483629590183846474575618297898601328897405939418172093712364125359463120529479150776259204933280008819294105485086230020987814714104793683258687672188287279832885337231033982035118409465189754066507158584315678839873357425267794588048494709974295483160364773755459190412876793677926679966943947111154830938962855948834158843576110648148589326588855534989688015316278383958298406132498384243612429190081264689745943212100211336060915273925821622032120465019604898840555093089048503281931839743837424205458099088600702503526144938295697350422961757938690488911797698253159686562434468997309593537234632719051072671049051252152561095528849601690257757030566699767637623360057586847583644921459211304985468654971235108165913875791571838103072029300983110569153370322123893291930109411282893034573115013593706361316686304297228174605969701240791234845250277602735250717820828764586728749270040878833004170687952578161087556260781637915054268522592442715570729396627601185354417478255549004938445527133980710710536133721275422928916322850627713314558868518845135160007495162003474460417648564961027178414997766552914458555813386923213347346156994717103395893012375065030873118282532090063308600867999751453361809058981637088589791617899908141246087745627467886968696170976646453060877979929808913006930071886283950879478756832174602840668402283626581997920083730829432930566374624568207104253971337568285080580423444903155450105367072477796769569861669633556210971190561061329755057005055947316602278888367707627858927233758766737768422525600467969337064564449818964250054236899524981040933962363149103309401626333277330999644675075641648713814754771240462969837460695284881629557128956339172420825989670287434966850071700128885339946347649899246478870506578045906295331357697836044130484835264920827473879684494703124010562746526214947151187930226838575127969606145444268521955098987839038628720410743441969994156461332971255682745451908323313544374325224407278480266278744408423414086913271018313895868201829065028310466675467415009413321856330471217305512233099224953259291358145858470562700640972190021882112373157475507875843300894812633906499111284726667754427342409638182317295546892834214459900933327987651302608343510341770183221327217726704795455810689816784609807653832427470185027983860005204173827437610936473074320119508065546137572802079399211236152769383553263580333768851929955977452189197117875415902568073032365486953293823780576373004322521314116801169556386347086301916004244678562010635383817690665220126466797804975695336261723741898255320526097175655536936366189943597302495784607645529935904805594718503682689576846242036216369993391940764945391773402906565986310030601019882501956123163953034315911387961705214792464725910436910706379344029272481359408021672595923217554236664327345192974175751708780425646373662671387049690637106442974915716028955260397747666510470973456858019788448251814944732954000462761252447879672181754598443312447013239060101400500856160301194584090019025551140788874764238226150624393873595315366279029768257853192067226347129689949834014337661745539328271654145999436439836677271269972015732351258039637922951704159628646345109557726375829694378023278447078683267171165723068729715961977887266169797720587561065573352740319338133713880989276731297440206954687926598456135331266229791755414876064680592235143091290515403116530383233051468606137736065754693155135341011416328480791907208237257139569570855967510908181183072826785600721274356544599921822659808216765508954061164686457983387161137335745138959919629818756846874732236752637709944704263888422094703428097684375874971688013780473226609268077445584744126955219065142195824777503348573614354734486295694331583103334001759199941096132525029805451222038023962694106856052574270216104705186013344172604412603508677738828716333784040553930844249908856798574455758556547208404598840968344951531245977130960212953200304043616446874713826200023762985928993679365132700342198704207428801147820091891033854196794164749570356082665710306477452917579057021987815037785798820592145979098526780739124656695958546523693937325928825256806790581342186589036186784873944740724059171871062230702821903804772771934482938648779847063335960921790024166510022067386495271878438440154289958086736500798423190168079183376434086589810825402916668434466212162519470423790369587035474489077123041496093189722845593253873286830356639009706508103004913875546517394684281267412667549580383438816412963639088275102777136974102347964261938451995979074943760178590762013129010502736716471892134978250582505562479880022316472390101345991214452568922916225135347521989754216051475041316931539539017085171558444630932810183804705597426120857568032978497148847496365664243796328943248434559085063141345337096739179315174525268127737253322680877655891350698780779998105015171185352004892332350082446556444098726788109282380410135710423870068587235700536547944489117889091461423394788154044958723525996037072650444288004945226237931589670741510654237622109155699643435835493987377789925729025234858027840645149519529051089892490259623779677960421025220801848331438507299847864591741843751587924064690492257201058787688158106192585504819339446345573038930195473149496223143556169382285865458972386455748761397449712191058735132110915525302407535264200277454498371984232027856714972793657914549927748349157238142511051528656751137020755803413993916378962413038832990420375095247816548072901256134365414022750553881620202487186120960123648320187760475262273461366564430556254510778522640491928591606889080537402655282402313580423403073814985886108537822416541233193050385309998739576127498589678498232658571813601107866462970300783917239949579685811548147770482255837786949759917010470892927199720715422780356461811387308669044050285847410758074434317583506533347241442394816596101569948440576394593783243821040122068896473445993643229115889902525422726957140060016726775585724078492507442930281891869363261465673355843198087454871131861841460531603091250110553931850885806990262130633423318038339789748140967556870065176199595201298693992394888848358770989534823766966833993912333782341186651240038393222405467621745525003800284062422935994627487392076789477814483686566089642675547360983352765156083111839618619849567455418029078050005690182746839991700301893743914928335210600121982998550959402738609385699640273855276260192523830017330187958984765455689855147256627222625752987395520170077733757033195803376145359273717225351480251986235195177969081885009101202147186712450891588545112055973909127984577886504680624030708141540386564777723802987608433011915590708788030141109860845165333899550271278319326083333943379505808713963379820255726428861115841797859531427051427233890680702026574391027732298257254467271018080572115360228057234080757213046576198760325616256621870770423267842727877878493942107124263298490905314405076965502142287142318076973510331048446478180767290499401236009308805247516097016283132871580529402024486525394528333657669722511818876328214388785416835389664267068188206497924005919769444026690701242834608293937706140257288738400348844504469850628530992867681399794931993921039697336743336593797706541418206360606605456345391163289532461812460703672531080698655581848329111782788950987663384956469628158028282353087674904704393837718470306951934910238222101673684269986195412298465207827186157303175940525770270392985351646028296331865490116633088800076209426309468158033154607916459758163628611440974196190718027492062569078670635647863774396482860413811823875463277690226308021434395631699131508775637498246213073187757179988863406656242113804741727429373205889543344098665769692340846170646374840943832149941180709378643458294562258898920584040746149715292663207834641603850298309400210515967515952151845126523688558274223777122750090081444640221431398002715622610674436881394614172433934140857701736707973948350494783936116155331079996829730033912014522388833391736059587558707792006648218344477181669659939132963524075707590348720327897084384745722327286021316767478552599862567345319247522784495413489061859852584962679417499653710822602780019162183313502420802259139914920361492618925779276591115233538887178380029005061077311427741284132699050569531316332624630352562936641280302776468605610292616532190138668795677571453228722396825038265102471391765979118225087778752271016391970511471472433979545869191505588675616841400962818567046161373798918215907590677178893731613642259636770778392965467346180359044875311567425276222207978106201588608173631228069519118025014180436252436781295297594228046636058184367443818573773322176063456521306931988485625454532343994440459427002794727676073363021796860356730981886973196376235236735649544792365347346217714731626356326676861796626056751869231837364094671586518721412048847037552409257963863956752667256324052360896500999753475009136372480514637072794880165177865901160641176929104905630688955359745319593017726978895909363515165295726661276326347637523301007922225112906589572752352498066636233287024842100198829468741048438791443229274764809685227132331957312714830292564823608765237983236863611932173606041702013902064903479751325793732703721319875373647058499060849539671530135977097047744386260166840304688145602499984976015043612973304576064004401451268140102485699036283934523056256142813398301220626037322835828263370288986721942038334004817245866115163649542429440673865887128249826506367146714660090058242689922887916810177848677969482211827775389072297062680470022698142837755562674316919557717747393594029987559479889566285382232927713371754974354243008355295347986718352212814711078422457107516455154984216634482379898689508842375931330981133562911325149758819849780419690975786189656392983202454164148639947508502225343203280465326970572264251858279059232801612231527387109033565403661324031374893047012574729374704039823563377436102057286666121059707004150650961502210620897867984240538389670615295546328671801493606148867865543136395541540548637594250513050457857423720467514147550950796599932129127858981688561684216591469103036347291473825641565905321702766886273957284141149140531358655838074626517194593030465272203251455728120846875736715401784494015107135446101082116454252695689080377475744242512354571213264961890281867418351788777773037014201624875251898934694817675867458402589784206160224850446535839618317091405874109535249962004880349863728455484217910111935077971720993699909901066637457563982818681996783632095590347461338089333783523237653371716053098878697956127749710710065433654702800852080437913876513473806782401253296963865025069917696741349349925781727414070708293473215668166438360806585978800652025361271112559224262165012684587316885528628673918670368696111015807391006211254592567738951972131614251675901404030066491863457012891788621504874265643297238236032762519786072092673582735105148689882646928761845134689633051902450247469376232547716941489387824437873854070882133943301832520214476523700147817500743082696958608795771528978044575758232816829073538917588354741501121138673318954211527742606771388870556381343104072578865290079337924995104185427577848867350509339141153926782729226859739328539972455100938590848979636273371092864628054376925681860253148004669445982043880239912869024428746654413235437809214496633823019377923103648735926734998169683240086309559596840633794032003255257750712432030067562874470780171081045026453585467101432886582587983552757134746621215856544634857532688597796795009880636483112736534231281099531357531160127317314713142941047051213373052918844622126999249961225247936021362987125100094724645409925725225991724765593285767313669017642770903371258660491602046360018622490700632599267556284032815979395639872807487527663558689003603938202217572717696983837911727450177366049191068027540426115283526650102640648005487568242349514021864911280185727207269605401689991730529636269234595920667570177168441350265571065664469705307351735384310837512565854023629774085506185294004495203863704104730473124084580263007634934326806868286679631216486063642591801632875401488716500772101795123525497390540664499312774257882982605460695506436994289367560474955922953162748704102526270125340854689257947101822393154266305143860057477353750980409858866406165660186411002028448521265489663627600271235731237139771655687017090623505052995600655296238284830878966593872532753955813600646386533627951191249310015446971223766076200023294334615645046887502232964443235464846713033264654069203964546434182512344891441308844560634489364999886086964401332037255306947797933527319794959923585284809314538551825258185928601280994053129796603552531167405340675118896252199559279224457352539186533488593293346394929382406043034916691058086423887682377734042972208714994503514245367504314989735506089064138308528235658190838963564538229247979448190505762152056141378263064555063221410257465334712864849301804924688948509814005043829003513956319191834559981571717504049017177826480364881151133902043820040323399074636396106056490086538461318049973566891685363965991081122397055503195077694249012409914925119170418151901590653706079008759633712989779381653610253425551518130222284092884568409191347968900361346635543238123310142129532927045389652422239957776238940978638766420178998225237128285227245196902890368154836279513240614655207770000919722107985375915935969373275840951966800932818442762645442820934649613610121467761573018647908262495325728829983931857559647229814750546294031380663170872942290175507855218062858423819238748114942140054772750143010442494878750266122941578294913727315538709302197079820956589526923189686165484043535855726611993532887997984924711978682720958295561089249215300082566334008018312246634685012007589713287705374790956598072514071761443921850332395893870683837941615397726968113138901361672212612930200047489874194377899590140862249228865239526767498874575587323040416844993406127474614088251381414726000582316597969232372099216319579792164930304101134162324135041433473489459481039444664759512034233661220034881618519287123739629122980310484299276456039637213385031732752718535295363269621050480790637883369066546214661567894163124891193941121391620785603165036408755790897649078504144052611371197664329663155859480092711763551506206497516345770816907515642555775254100297307879833249448977237573915120376157368403763156706942564236713142083141621693915266426058859945828158816076830082813654780829965367040476399454943091451771508256822323993746650361564654476352982170592563162487514967121556911232555027881972619766388170514123599793281333697440036544211048708432888201536665672312322775773265623246575540657009175585198058289211115557921117781537410822892933043477797586720962256620125170939774021759047948091508914184305327054881016415044270949571398151919496369520308303328069063758862726652845120910271481097576347458188736935063823336054848553550091221951605276395118446461965488165278628352858715129366174415139444111053615142217377774479150517641745106373865215951798578796392304239760340190177033524034278330195207855777378372800344162260432737470371771620693675698458623445675181196310001075996011880670615777576757031871458089055772164427457695690521740232531108529643397129228549702895550493897414779504366957944243542747514460990030081416913425819968119505125639107316598881679896782912697427019892806320335747013298594739996910188070188502101279857304411914590725038487461552553184783705001459003269691257231566981990667063716746333528930336791651189258690270460349312524362080609349078434757116573682961135857476527850826202593358590989179671753457433160478466731467041946430865474669985728812313667527545112841902268657202446618823717070906109770015102162306382295319815021353465288656465411379966927964698157467791464638573026333517824058818284586911036305384293297646996688480847154874316928395594475231810558151987824593197690390329107039493619903784014815378443849899990288930909844990805162598371884624623106735938639256416150554275459602528865592303121357383222791544511390745966467998826718832290284722085564207689516130280779128848814328868031764040620296858218795870583191393555197297669433107450459179995392957853793488329472964538341386294705444828467997600022202033654353074164794575483552977948095399767475631420172851597513084638948128736349378895908766469230706135409435581047170658792089068002864681988016366096039274561058802288134835692805415165028251447579353446892368608781435864397723314893314482367264193026744828630562559885466001109163460110044189689811792804199808485461303519425580314206750200807516852775744860750615829193330107381619626263630273431465052529939917526121412338580663314722181088207031478382374122287112020486682244178069098787666815584894762101381191585949523557834827413333349739829679219036798532749912736010909224432778022342680427243077213209270822683557245039622727331873133407256918475204371078106197698142455215178900995147011395094237667356987577299420639147123114328410411596000785460571290044834672661410238506143100592546402515055921250527609373149193167403601886985414594432823863925680898485524355559894898004004310234847528808303575086189240882138983582169115073705697978500852221458968680112081333478597919421020959250550940812370469576154341813789485045227016084817151653384969119278197408966443622330454637304505436969355835777513004149459909789654540460853051727308916394956368890688192125502263978977511882240822124953405855875260027783222421917907228147080323125267479666544897752400410959469240509577866184778023619435449424419077314080498726271339688360859400724171128424682577273173736931125213703199072596576992597163123594667121181632264860518262038597630087027948891137123882047367655173103777095792200757152630642401137619878447702284746790909824152639292439293471057784296762041733749264432713006717828520375420142836454187356516006163241681188324856666522018722623379110119235962000333955509901408558959430759044408241958566355242909324629455971009293491167887652740687730590388896565591252929799021070112360329871632133908535716647136634007389233354176311007177830908042855067807469499434039915611621322073638246849882698482191738226352705171774385229245173069952720320354111552760470511789233929282626097727997788518055286703918289144372577393661777966174067080493537013150975897266657125469563636825278698214643658207548433019743224047257112077062042158221220882486314950370549135407594524402488029959526338066749893204681581333168840220100747130516401105645436681233033423713439666491101066341343167992713854803781413697558978224321109782291180340481319459022248391932895300165132981184593608842677574777298625913313616268197516683290440420433468689697072092555515047059345478596428582487858633940644664303854010604406573596437868416949773149266661915542622896929858873283282303467400608304949628179169327604590282536606087292825967841472104409319908656510852000839411253182800220577248123646498957455122672736460808009170613462615619049484395636325916964550617503495707091396211804417477181368063712809505395223963152698661360618266731470308922476632910372993335382632316044558036280551580045403214057375143098004628710607649056947790464923118492124951361374758870507964662724353155200781749743330581020504488533192647679866973413988721052732988663819831160685384829925908851068802444456608494706126674001421086963044907014413449567749881451843575623119083500309941996750416439005141579964359371559092661321199663539066395286789666127770284974856512328672571843176264771386790235282318273307883311143645282918155632645127073297076962157061008151163344581553363840951179430139274616719966604984571738401668350983622975574948460361871382108271321985712091123404985213549277228126947498327826199484709352432717092334548684638285108786952787474481802973839646743103359219307222531285655189199100069763796421042995322408967345178369025382411193452592503740517203128979792301002771456064289721991476938891130733644802906178737238103667034377368772688866941277883604054508061929682060877366381271497721267984646780797644796070908434983176977233130328024049893080092009924083086842659700490378968216730235204727996896044204176608522155520696118470284331242582154262550016143934837457044093694541256279920120595477100855960547574127171969282629428449455449175512837554716736084337698884912456754859169561854640249637430549628670942382607205769375239002249904395530023890494098239349221932896425502721833778759690458617473951871667433873340912415245098736965371746135045941476932945160394070872929894569442319329937227897113202823576446232156882849597004497603871296471700643801275769539353158535702645659676756186889238469236304832567636924607314982750079635999457914423289551680537156933118321541582595175590330218190721545889371323811308641150849875338599463570621215435417160752321302420082877710866150802248389756013902368215849249517687909472758847678916375493076901325541742260181720690736739468678817499663286449544921741680584964146821984919983888227834837637795733586103089435233961790243341544362502604757313593292779709413110882399878345798605059491990664660821003412739418656467664993414985515990515779607373252404498807272099189962966766972014307203910827386677012788989665884831163609588032794964122759438717000233701202373197783872024781745242086453151581214162732257679226108484761176156487850489193880500059937812145936461104565149266793883589317037378033545631019668893715296380863242339492977114333035400360509864044733012382432989879718224133551158982001828352571405478087037190102936992317788990230870829943710170400006354123615645185007659060768821769197996544135848384258282002783273007235683224803736664749644461637541907583177042895269829793355287647369422620619366846097657256352778962474537253874014174840540256278185447328664085602762663786564899211858813145482323169285665820656260618409854839802111132331170110681491523004243508413784247314232816777611335193235953845699214294919089734357962346407538810693502268310629706915151382243833417096751601184930680388413195041754779493485290574836293584974560728076958218449734706126147862373828012177765971165680192093431894720038272797580722730057646319762611598392639077677346140200510088114239900315815233592371965074370299709257396660283735989677688568430029620311876909094211569764367348620801027166632210249054218024170843868122885612433013043694226088445323449292674616436541404105385930734889543825059009824885260318957625666192758481864618806014981726557924621720361896144930723805923036485842427472557385760392098155008107191217644163888100644066080835127487182664371395782715961779620403878768787723681000973169316689550069447587692744287603308899641945631282856810117794710324301101878307949871140121135651675904522374738280117730962802373299800084551785340908625497871078858414973949616982682810838814567958049960723044791205889120858549505518013110445342571243795077178203626548865585429207549907129123349747456619786122786140504654346836756674695132445235874139909194394152515428369125500052483386120702838285958313524886011332948624384956177918344391988185467504759324831597422378138981240365590736701434593808202465511869643629437774338001723300379557672226815570089865698469562649890794274204423402418353819425501693211029482522829121369404661992471447849510170041693132813084827596342983615736141652715655373953493671264340085634219624518815400734511352816271800182935469139478774152683145697650879744604372011902090122546450669450733703908172317247957180411937105083519598416700653809022804156806352695928957625208646496989390047774273787225998948283761323782649626253621079395594663210770575054351542541643974760577280900069977055667381571452170980556057146994947726884154539460590831307454187051587515961394299409987318873586236493956642085223124097548775833852190681837439663521085969208492850529685527792571341822764529537534118389275938250695309436288655536077678282178875221324941750734791012878648440275472537253690268988059089535072008648306729135367166234307290755579609790663565567655146161489053372251224822936095364433145706726036731021633421815003503418724019880820757999189258428766984545431730223907285206333185954263612993485818376046115838228332965678958222543952633069101471038615715593318435671179850121382779009982247354762984957944458984548746323412045658376297837143952262050739365875434442291168111298951406408281921892657128531654537913389838322227364960601683835795458295097029440108952407601873137791871165601047731925844275369736869542663865449020494238590838927722492153186043341714967592768956589575670091298665077051845749152098563431695177902826529694177698063273454484171438818755091713613985236207885171070719994001045348307650683278888596378245826300976137418309861690882518096563786625662969728931109542581814181458401245705716717581640533115774008919104475189085819945330015687235883075985951749271375307626195380235813465408454023557405328267828617072581047832515867236572506206986758661490534839791732210373176923441815130652664579926068780851840259620200059576442500416906620046011870570075891198027008108360143935777382736638254308478351071165712275308401260257566888919195599085513801639168819601885147932903796568431909593398134138765904922862880324218513041324953213750813693731317951601467173260149128055742906872548099880995515236110425522089889064917922572087310694212835331978013079908722416011388045914972292217314620057831927735816282085135361959357732195379682379724510753708189350205488264074991415074679726085133275865189424458815286104643305860730973880134257401709472234377189983265858427080619670882293954085144591969401936280117901740004055118306336768555662437889884210106041177828812400998778705458848868057777955384557050772209587045180366715884320842142325130016528912603803473254256200104965209241382685401899632915090944117113360898533272369909872457643489575896457138703282806388911798234079525650724201549720589848822451995431995960149055948686194892847270691166990998395213272886686791386864395512909409940447227446943058121710472962548125950799476582601249370749796412918642228527894720751696780162943835391259593295514465139690070338641751649647181938083045314611790174226815933776561911505039694639919909352617703684882229592799479242169599432250954485695684005338899583538281546168179641234860294105964066006128404533934665665768062358279071539767676598725360792457871015159783227044586447584446654545221121343505075756597041581792680881710923387223467878997709637678156558543870273935712038156679592133763010917756879523685343804774444895072131312950743252851535626870744467266111701261501827861982235804256725994968853952020753768854005482045587787430624527322094453948739116287906433782510232562389580764515970104154511097998602287934010466425994997320528187909675040340077712778625593603875563550068307392883444711462205402089987261438249311591690050556968606823884922395021735376910400534554799737243540748803559596245438516974931778152562832593053439520775764821437007607586608796377870248299434293030813258071303572380974487370672372907469727223611071640101638466327086768566853216501782479802073390866991984118082373603959305274744814664973171191013200030412863939692533192894082668958355368322280445091090269965363752502825752186044537050773041526294405849122052954773674270305373784083337306817350908661415374948912428439468190605892948571459596748395620497748118209335454348667553307321810457124490257742696491677614188671317834396781926178848785350446652438413418927191476359179420439087388522788420024883401787788978883056006452402941798045919821874032290192849743865890122736131305083005157894165005699476581702889115916989860102954645180004832722610085343394611944386081507354308690522590852717169196871237296751307651936192016945728176702600899387870156936162345204642997637781699856066290995021460567865912642168653191835308991546064165247396701994644244744978067100394079918140758805790675765144806373217253471557613051351412565780778785789423106961198993859549029039853543966253324645155949123789149495684196868955077767812199676138136495935097194860133837860456172770014242356525864349108354742368926494508947390032586300397416644507285278707475169520935382783409874597071337538908242201594651126205258602156505489404353270589038330124176118287868839122313746927085058706239410824754113307843866972946756694615798838402394084101189669077448316977650506087054608688238577293371855557049251751003699913102461689707859892845355036232055260837973675299329377144867807131043070648201792769192849235219177702745083001787829812924132053247447312664883476547491314049658778762533019962561149211840532264978738203171806342730023123799867865478468709246982324836249578359325641404886152134743156116374738865920163852989395408236242075066269989341691027355699661749479423890139347990699167747226783770668898164150087524584022684012134387489127197645278116147234391523973712475009335612282551192303828767965847166749920810593693689552190951526669641877576082072508720208674150455059143868830091629852938103649467557784325123373707156426454581982894130208180363619493475667171301688977697458602978609329428671569424727103449814733333451725264541237361713198203397583233630300753705688260877320572791689851907965901564408467330241443780697856894273171157202263282802230933394926272596158206798576057728256922054429701025620065111485895400363746770820588528701969781913230404677686825252223627678160521596338739084488073089059129061106618374675914374024797366498143074114199108799497715185039505224162342829951671216476466213972590032346459208218761824185867702539594074083625797249061117928598997008373168620115853859703179278061373655393065290936209695420771368573896486479130680228652151200640225086903681654851265082708265774349424127740770027553385186539256049464173015796688160655212667474920293173305640753506932760334618106446561149377692471100852564975845107540617106118140730785415103512675048467283819702244427070273407525330173776021789961199299282993359283082314428707187497453829547515839748292282374251890681469612235202819211210112912813034450010162649720988812164895974437078547597244036336689795972199973847956974734065568536203364390503612382072659129113721611598431368281809855986755757919323188294383376424291630093484256975394230627126633913572485404297948279035745875119210454902666906233655346725778043739574397926387547458625339648199505238247329571117040775549967055212130056649508743406115841474977499095134238891798170129171292419789000152767198581776669650432505287831790143991144590961508309872130164298089086803184792635588465549451170028659452988199591582759708319374292602262840446216990216900257317965820037006633390919082524418121331587792364761433834974828050181833945366367531540643330655196446543858922088994919959266978290484844156206022465871634068885571631490631095465635573305149371770988286885587040298896601787706957665471995631180847623346260698663050521329241741463769438630120661918074033422340120360413273201935042856765448510666413299740762962843833011078070790209767046278483036574757408708321483171032700550898529078313711691043456011387594544976380964086084958027558923930484422451862973166365775108280570027632435072587056070761399177860781695168138900927485942168814544239159833813783450412706876250204422554464232818892047788310523335261053091224434699948306054512960675555302462770879436122094685999947243990931323930677885026326581332984888288761841229115749402910238331196033043326701237163295543985222010461548465898669618815127157499557265582998197042229628426642062642044598930361890945981275786211230713527316521887404306302716821145675705047154590894289495116676914732487602904107048842339171568855298655910220290043111793745247792861777118115493673051062011322682471001899433466436179924553757443676502798775072434995616677979277908970427453654437028241766055526965614854568473941874804720048184150105555728168828021572324759903389307979632195910359055075614090356025290553630202096434328872019810191624493189810802780906530068862175196194507960373477014140769292034215803061991942303417408949155319170810720848208620058811617850649273307248192466866254239256660176687452074084388027864183075615500408723142278061261494073400292582809895051740506676878142339750381751423136007567425123744086920789563066361024262371209577978113239119064121658028396207444412193582239626185661466428967161376991187108061821910152429993538600680326516282824082630837234827148160059728570922710568654566863054892630138385531492101186432920538456185840229633813731602421690068301847155460491370126215505005578602107555572788353917115819204194366588613227644387404920761033229554718388739948919281625512760435074208431047916784066338000595451953718382790221290225188981311419574985835401038850026305473027461755324351681090184129779106746224726889582353072676153759437752597534583075912092991649182028511673038761343248018615244841697841950793783450413883126758154077866775068120171167120195314230869097147169086652853492224846806675011832185050384552744518910323251766992001963521911652195258319692920023311735161478217471545171757876712296909715551726201199676905796472129793709690581506621673121222568190506913560442406808136355522750006633435888214788238854756713338390715916775965088091897963967844659281950541302026158555052846031580336086490083762454953046212261864479615675146544509148784367496469398586485716450031415002082535187404489438013541734243564162849762647316490029202043244385071838446766855441694869944327740374821102725229787246576436224493933767151953437110643553020447541577565660727002072806866879515195130719240089448448378372568696681433106599873417651356108865213298672224357980005439113121586028013159397898400788172541533162971403211401467077171540799054729001633074073666737392752819675098819598754951431385874849595988557363293047835980094365071754402902760317656698275651249302211261952941617524952922764821495955871026566411382051568459989537041079450965818987215305478233632238912670658594162579280545635241309906510026314395209475882314685847862985263400434995557838793286296017539692117808999018977359745940409005741897292044279118822238094743086522544566696284245809193008307457202563464781106644098080860820466988625530654267751322800430618404357323682489263985763415929091862870480379972571972048958512588406488097687076106812584595616961487114339533795358434452352972698044349479041271045235148034628190711681931168725082653655931537680169076572418135407336255712185048172738983250603591687015486803050273968793948946727322420342954463015104179391597356682921259325485419787271103783662209205188018566021731256901309730846150950429927316345311561682874077507495469265800289461556386997931907812083492779825450183627953348527037847688993188668230448600724609474322573781847965978033414243332305860495925538791711017435272180450205185827541852653373092415492844624274155277980616624200964008994781500185291988502014264390298845684451884621688458940577096212778076989472852446040263890718781394332789724753827566053549742172731888229592006161196866537236401194185988816128543748463698753758633191384845695317605201957069184536186883943640474987731533759426611104839925891182107152996670946065528800153887676928351832675453655304634154303357598144277950964142924465366367806346923980353240836288496365572217955972479328001799120186535274362973999978645041846211737938513436093235144457086979322157789195203141346612465829019289443885538224062672455468407116079750287811044777086360810819569286100618944670502483737907184783981570460937362298673799561505109583066921954083485614609328492718315349790292234772075639105177589847869159813990521927816929568563670951330704558217284062291518881029394329197770337550213190914699129810962833024620697429349496230923021125707551762290060928057932450083883306544785009562446225179776824425529338923289791140253442602514737435206285415472313524449658923451650979223357068103610310979401018913922425117269971992772520187297812742776425850674971011811166944700062126063815867875971879945925185626551992767928810554709015419424058719715113147904374923780959258227290085805303697642738182529351325177837321490917319781705365380316834031414951524501368265758871086117550217499620363640488986238234884025815071423076476979628202110801210722121485052940293790944024453572091187307188767891506764455054052467060428979793210963393590302257675139513353103020190079428120370944607215145513685357105176348379940354743984674635388654999493571061715502309377891346004748904577840675726875105417128004234635532323050754947627839883840861430759697404660631625702264350610684042439850954813393792117317342976055255058646866883101987464187919068233490316917430710403165444963957025239882107178769370588695079301813589682864591407618391412844976311462985318271448836704629204802739849926648264582711616328304139249595849842004498998783223468225388901874167253546856145576684614617482180818331491687319719943384898162118938132604289442211851318546604753709225429300578906507528028847305320010301002543788951720463145418862695168304644426913233388916595246069392594255449726476146276178504514403288592184169045154986034299592016965973870104222825126975428495830341282917591310043437651668338836676130055919048550020778960434574872871317128110100648137222283840339224466503597163612771189507975689368773357158449151722118820640560254565380650237560436132753671800911309869969478662466905904887851405566855874447070262755470085663834474807861058739271557254267913730472054933381452906630260956793338142998915309813507231333154189933964847656489099868634466537093770945391690230386952450928174000394692324158327665469282670140019847784975534182055624527905523428292757779234886846024782024769180439929185063115065313235104599566842829364755084265728997398451306415338211863716191564315206915187795899941728657357137797800570274355778766410198318073623519224846550431602555625450235621539923541517661943173628518238866511000405912328997531563616413545586659852206598156067417811743305648840050780513429341519987764809419908654318706700535202746626953770970749363184581321663641486251327336288241873164570244897018926810270189892631452266344218092625071004140833663021577487309881344511688865678092371058629111490709358572173339448508054302508525677799343481762241578020038863756251588883183618248833264827383285854188265688356310920238695093371138395002450772509878815160318200562283499548684947862780183720385594982163753621764210198331934807680642872484212007076104845805046259472762758948609100426048599221707198870688572202981223952119064656176657109058380814127387213685032947397277628229001135962648993575942740066182875704648822843731887356609710887535292794901540096967128577564282863259030751334295002616699013001457836466015035515165703342168253938485046302047712921747670901083340978165941644258896418666074270403637004018789588141807429265342105067917746145938168032076394460612359307433976508198300597895637136331988789529757976691687687183181379958430129513688829130269780510788873836021725448112316443957531921013159520863311829378367790138560726806696899371915846400425025987939093128114468357208387079602085176512003828429775378370932616061640581727020705594340765119422585461264300767889925217184240628605816579840006798348406625369102991706442402244398652113332299642317577043442877442897328948046201573107423162723700319520548076443063577417461112459352107902909289709310730998476637725888724715931282500448801134111546944710462481396427670845644801502130207190481178973547607194823150330605409913885802527003224570134423789214956980581611255111459851629676005156312625973738582740393194374039232380977475502528592257062056468983185772961778366982864954898291988092015643275733912258460725090138672462226402367143969001693809987519109545146684191355571761537623654177828253238051233639106656001165248875772558521467877456007448155517820641987344958306092955889347929590777700884979824099354394025420814497442898938529670931038888643762728575537868589450894550236697364820983765627155654993483332070059113755796743028264289022486866798846033476969123053073335233364943677774131202161805288292177986042005839237098477238401954915936856349428775013998675620069877438821105572615262987109832562387656614286790046993413158821558909067532591093140273054124487538555465585229497387799445491116813614719486816540591140958178713007136119582392309990098855263072323599689683931982497466013137492392200584777242595916515282004055386114324017789809581943247479208923142543175365524259178831299685674253991390176120778943289418561224427336606000089475991092228150820590021959652036791432042557324730660246603365246783461099268286405350707063743359571374808986057978517899081760640089137030090510334452903995297963302168842094564228067613152741402730284980804909033721496283479654063764517905630072382327269105068307607684596727043225490740079586807048933687524962002416170073061636177992062012736465254702995355988132493773187935639074886777518467095260470977958778438187501346429266092732960997485584756583954234430660442933643863646584094976675417510786926611680012854638430128969579138821149237118283937381244545369476067391389013316908916362290065363872677777101939979013505167926013736895561058391390684455618822911574212998317763736251459296997283079215543504593388868892882861626714155497138736780942584048750588634406601892895719208383018175996928595605073400639107772233447151504844355889311260738870621882761715448615073313639085902280256552223345759981224123520145857135057722250359873216472396639429855167609348917142290561127611655402529104595647908208054193953588383993731502315896116751951871863028943871216142912779723612907491655158656609402485134917749973505155548749214886687814698668096804576795146012796307324138091251118330974005928208504800428811150762378309487282758021826719215834628715476201144935768807236260508413343337881778241593142520642633100739017211055329607960508883751746626009350540643868810813308306859154780825836639331486817177490176762889693068953147493122756479413888199847588895469622569050218972294661091423356116404588618961975405435268565657551971131656804425352491275895598888892183043102613409664696528591326469930928322224088318928739855002847966492246566077886907696146165606223738448996631195948951694689827442956118919334104716867137637761712578563736715384587249595306230105149762652730773411397251674083250724240238145953048314551266947270912000280811912315518502971010946807885407029146252248520890980123522683350878829146867165658317901389264832102951596766702931806559233433820177244305754508802016803014349589077706745745627316476114285012790996317685338924798617391324365427577623074882112682495109966339377661440721404014528414995506634983312651585268121082552479204372416627956388556179306186160933273055326191886629365411830514275766711182704140816304940224755523590754866629317102735346696178443082691175290149911671770200255415269544084218795133017315603228199320470476720028166479085310423995506251826754998441194396137069014232240803536828855955277669535131817354981845830977267162397745695029616578300120809281409412864317211914453411705440028119024812786033415229566262598428260641642996119464014534098121901881657341760394580167069015648461178886406727721410418122134458888272194138893606059945479951628546743046813498299400784653609035444435993556636607859115082181027410769110888770687660763674503142889776165890994667817523407066592680546001611455897530005854105603876388927077693610027118962024039501014258871302956443379888657741764739157832170215435721087405113286557742755980202440209398480856970440286248001159465722305570589970894823280723980458064752175217633331913734606767094511322128473489905174616865396119956992446846562366086668776660332572198718535071962429009873717231456125202046018377379888481395461489651846739332734258795744664089052706930559539192714685222505789090876917364866934753872830852144701328931606971255237507518196577077439891857703120442133730824663524264010236328563362702157628066044662602523207552675545952710708894390039123111603056031762737882154965581109940593626704740930846539225796583754755170185697401844200901557706247567344450618834670411643554720401886461546137327592374948647512766398201611714094263938585047904863844454538586637131399221794075218130817990885261649834661699724118870685668510256870781286353703353276708359814927118424205950551706518426114381190025162243461906221151954615674773933323898459967590546932248667387952677756091417275983759797078956768769027909782015199737695974888884605682036836630032987627635607359661723097014283245847790215244959804904167722974179033327328273526208383888797288378141206169743617934500381155540674613988612470565832708821268502905421594530303131903300925150112659284248834814174205394563414600621817876755841420144428880786674841565679674920537696375655517687358885554895287764019605464935128874456926816278442455217089308483825611410978542754778574705131039132544625769311039983647818761439590403595829583234259566333495576999068420082702862957007722290158984447294258203318044712068355437606014684759379898652232023956414916012675038289371873556767186003800985717356219444921758487681605785279289973744224183563610643492729721218978876737363236217817962570860269987343617304774470230514553258732059042013040172382334189043855725299985133150896497255658185434484894054750520736589381116603097259727615200446938470080987999740193939935502505776554984417571884000628561820795707644067651889771815922412714947439243154241511315842775750994901218996568857962586800798814413312216372252779453298981511007371323214673301384226485180614258823764895988555009732667489787478914985311454675739031465962090562103986736584723488007533691547984596687593849888949292364899669253253842343409846364495693943491381301882215309363697769703992925555673827321432423325373370647050851212662231084144152514972759513948487659172814344458595771124486116431997261617346540650883830673136429922344312453293145648635315096724698812430529740836401801380105922280829381459644639045492318621030750991456224060310795741019796826277844841088172584184079146964547820015990472212760739861553030844730534284472461794469698594221517783569531259296300098958403573530196043900021624171899880586322608441603539881607799810406786225329761498737004634274394869059722560391896467221338005131071727368406652332127667748112947070304146185574235962958569057765012469510887843773018153224903973608483450266418573101732469805504504513591551817553172761356797209313457831064446534581154311209814756578443954108195803857623555505941007411026832308359511157240204081250329048503956883495857475438069392685349730990232593614902660144200321078736618308254818220055375895214823727319817816863389146351363067827746461779638607583186426573340531893334373640471941704792914797652021773904002467933024067992638687603059195688742370042926499962906308650038879587606044072334038940450558709151642977325474088467009053608524217890759075941507646178421089024689025212188002427971993284685936861487012443277508206645690474354929608947602802393002375389194612835996892265279233806106392401120175292593907415700354539334189319016900317195140130093562107345658331993105030439930853626760552771470459597367666790277519705059049979323871785276420056243266242255648041136275619574499952576839417411327823879637370260237478132426776995334948606646065752417378995699931980268078024737027185437687712318385685625600499439721418690506302164225901034656156369569350591662871004443516331579753393787700042138118322818461262958239233434986380381614739395709577950355394294575050762987220077110828335313613576235686233089317992930406320883648654485296478550635736529666674583141117167887030624314999775301614102850469966382814020424376280483202874936110626133391491324980060024438662106177330618916154208185489969305438842218539773189163354462706247610994548573725374100338372150287985407894774558000447116146958403937130253707788710485652627402157428534637312497610693223758871951644992894807380223510031079756391902962511526174785007772294494392672020949326690817128955133973828679695294031730401927324660633440069399441140800605152121329989355598961144254034847914646133366783623419145571172936031281082336916994042876200230567437649025340173172039934821250287021685554698083593024799618580057196351332996120019227521640332124727890708960209217513854099427876974157957353763834719954202536572648463539902225349085333768933342880204073032281224364682705821317886926560934269325946508924625538681970699979935298679565981417014385044696826170973426022837337598046944683395175036208912109718705234324406348999486109548352751942890910489341533030091094341537414950033151340355469850239724784962158584633520940371964814124078709243288078228199761370739058861023746669595334557157336519823041795016068093044569121514884866751917364749398023736813508691737869573827747597199140571228173866457024250441985975865508746004326316742093970787519683727179562219279945229273616808632084683241921758190801499645154149712160642959144908839903423825984828906824414187614069484743404179636530927029113757007371745119819930586496535907538247094483374821847743219912803450122540081775173085681659209305630112719888386616472594125239197492509202331939867075439553476691303804025130294159475368900972262975212399886209077435807561236825351729791757492570702766993613949379161115784421520570562364559020069012674566100937220144487541199962732299956809394963440776430230095540723355062299024739792122405028260613564182692633480805140892717669573526426808692798021389257585697853499777322779701050754384596309688283407901180512973110280900917798745014070434169964915753628562448122533203717599122579067859218740774144840717036955101048953375162234446993339657723900180093526293199643112087804526038240556647253253840954612397379547176175075305201453670603194831515445412540782203773130532707046434332171245850060398868098935340916317063071300400471121358313216218646309327533182452232020404968576467859069977749633231316647294048803199135833135980728480313503368631539112387873915495093792514726179762367449136872660454680924919049412370127284494710459134023071384383558257604047602308763533463176770307312967008180708695874036321550006072316374826156152617531091129202970232780431827594372002584522626838425506820687874491338903857194572535776363963820284950684032800522138501707409717486726692256064020612314095769630247403724814981491677222774406969039515122030529215956449396834975998173619304802966961869141212188547501339255757715796700595454696835753151439069546619547255750025364582424144810519840467371041861529985668382086877814994907655831542047494551249199058389358339867434740284937930318293682419974669422796969379782461404551159030827120093462100126964253182245308161498505391640794802351274239843745039683113784966614045976404274091034670710759048615548274738022351665896795227956124739253555405387299186431128758852889167909951679575259076239210678016541410843315424467440021271041783825456240043279774245572629664546631830722394595677674034549900217012435599992920482607693677488562795042302932511412980534427946111361764224827708093762709529527913504353736689419367876568470261100263410705407641733318606640610317826166993886918489129563636552191731486679698400240811214960885797595403994322756678734889906124667485958303440792003855964537371812325534090085708962857801532603584648434860525140646568403670915649505134941634152481751691546479383707512292904985605688229990223134502645957172157268619753725384381672807595649492481445180420978125241165455679585927475852059513927082955169798537729727115225045074630642806562646133179967126155579290878704770973506548259322094698327618648838562947519727648462637239619522670536461999603302100563541842857802168020021518145883391158392525369798666911004611359958109939429051065086895410479463565517512996749646343702617800153615022451737284555636593081395520260715389450099836725956814388987683773244702531914961342349099988508890987556986308219964565788468649248903197550350947303452836111428238721555899246630699426889448816265727205148877625499102234530772077613881921007907362227186243550655698097531770082830633637497591518457646138850071954303582375515531260727612855002421819129300325548637601291800137393134921032652980669799993749770799161684793579451609889043721686837652045756791848563625117385272296665451627516261765425114589020409326875522354322852740439752402336337204551663627433995040932874177399529409189053647685142503977065455189738656542911296920076547386582771640390475055736433366537193031465390656762482753442361923587826915455048266104106029426269951877054886253897381816101313264892983457609344073502543403690886958870956444883318885067998421441464359017617192579082903270121867138843719569987082568682895632071123223919883280402144480585062342421551104163119255308460490630005920493055373580958100975314239399797616306533002951858660384695608355558900871590178132287728770219874824472184963215375643947471114610067769925978234543401693393539954035952520043215886343883894676444175794000003731250070403308409336589307699040376235630958405767316323147334818034482294602504177904950049246208641269320038575331811594677744290088099443072726923652013012124153058342869965659893523543275424308709152048981442868089845329081939862406493623845404513245906168193951408334304234098009656123291414493689729753040504539731787303493721422584624074661408338666497725534376403240425300765488061429423979112472399239679947031067941995878637386874144621631199844456289141692328900301506082871287210642107750237327110875592738834253152245655046912325725724989415188114326892834796999684073181810813839249922984138665283717338324847326240954301973053683244071296804517918416084897336629523756998909934058278645670023569638819092218673100979790468840903760358469232095335150499058869055329941862650939654952124313023764530844572611844708507626996046005651883393271820702796779000051356353040067065520646482267483656205327262718991515591976263335595424206437454309061623942485642847530547444731574203428452258185502364410291493886234630440758390995093811239281167910098126277206422673121354415003009128646964328535212561667723713541188620235313321468191887160618798380031777315830333883475428861634907771659344549884595918039127011765540814683540467826719011367433216179344359533809747727592821831415213761019967059921119547284341107274955145258991369048992977815563923036014487807569854864033284585281534192459623238269245535896612455945643813036254640723476731254675489966520895113951568683596499063794588019037202374399905608080071791692710722823588828840791741316315042667375713275764865636319325912689480105010434563927079280670104297096333528164250661575989388060024287731495347563138359843777502337516659628268148002731804240596675154357007300798241035456060534519451761890089644368240664894859046868472859710301686386255148148338156249347021553217288662048894523867320990810555645760271410123984815949025439840526227058092303260192844632179157605187887171593633994325142511865817754035531867129864773735997270828334668513606529063129540927159285557276794160087894534681896069496232733627990529516454276581924455722144749159752964706242305770134326959933932266947570129382746247347661038021691475639447968352139981799569721293964164262448318086878747195871842965315953722810151062046096912949804220038215358261814370602117263121092699878904358530706363269124685698762247891218716550275695049185614923465273161227073442988041896063586492118712565038288944023741811096218208673388494014216421673919150998195306400681145848894057333170898500274074733578006292701134336943219686729374824954976009675123462594780366145554472433658192056908209875317081791732393323603935970758922635632433201706055021499417308916482644690650052934604388325934980709498874434395319538842761007297193668727298389884585168257935044093616152055498897036433532547035063866801555736398065017421939184031295284474766821895757187108128363994206197982668389617383986397182578127693223132486555306099015378125019061092212069005426540786603583305387840698248333810987947039775768806732847690756628063185809521330026998348799286951319218959660188879190000373944658120165655040574666092171211746528223422368484721128635339079445963958279787948332267844795045851094819834441183402607103687435104079524488973760956350105233972227457990341595373662991521349399744884509484732459292657147563326399167656230322969135992709735990152635781080757286630804382734670139544794880070523569464212447094099687277548894200453355250479917001593915807966192081860032346994024332931012116112719139248851016555303981866157545842629381582972149920906833826475512560267852231462357665637676551587246448316526872597142343429885913839236115317788918189447233688663179467342177175723271095221080297116077695961610725608405129132609426443092463122668173024653946866325593889506948252592380356145455371715937766415955176169826933126049213063968642037157783965212273897477576445261276633534569451544813234458641568574120945837506671304826868776825258072977702439050640936307580907570989515585683810420010353006324971515748617083664795735232372790436939518114114302854206471923388662291857042418029681642474898748049334866964915153064571006473002264354282315019121358286565611037101451601076533664157225985349082578896207160335828092212871315436110706095534422733382813286010525491494646209057304214682000132140303918497829545670830608080522720916374506215915727359586073199414387320780480753215967229355190673895294851774463319832189997757800361556202626256551843680068974017184517240539091443017078771154880599936184768071503217508373545244226957973864057705626742973722516132065558869133465703886976765249983815614801466881286401612551957987223688149540682554300097213055292200562214693132254477024271918701441371587001913881639546689308855474962892412373532074948020815234712678585092099282318443652124723247505900127137618206534546672431958635557893238174711815521532474862145965612145488328709983571370168619651483173517974349069004482932807364063814883776153657914457972633499280104527233674259557182674192210842998517896904969428307240194736181193820286439484794914325299307705873653629318088413826278973958556002750289844222303229515353408877326712112925911317977181658735138014966762916652988301369878841178703892781986683464497587543686412974912041056849117330933308648927850115170461740188247698856341283130922166983979007025836859404858741895058195200196178716513834017608364955671488042767645967960893327089815844194830345599868290197281806041263595234137356441007599233173460627524582257643964585490315886908292111783287086060774787609872867559965244627621150756592878621934634941819375195798936586246036481666364155768272338220398044936755381687916074197881037937243683663976571102302928870322201991687483300207006064287187530998196612486128085226638273995162304777697008209285820920507891345553213978181963558770025467828698965794408553289115700504620535423487209324753971435879934207111619808151899733642855982317119188108923790290747895374462270205311836746544461113240270493349873807555831439279830353242331558681250780460632825137423856971970384932563657141094979813991332613018298209633370611470866984567534204839792246013705189992169517053762240575371131056368782308222461773738646967243345858484873297561205689457080774441229285446989212589195155797037319617177150075848160093367654408424358614178631436966598570898782666402958941573536156184729222681773281579489829687655327268192148097609001410573498633708663412146141779293756092621530797041797039001417568366524216077860369657009001652094681465282281745949319523634704716197440822297928292455696611506078235650032932110019730216250867914134447967153993809999911649023568465531419179714843753711542421031411688955073731969448419382565736056269243325506727401534037177798584028953678124236956451409218807911444506594873087884146240411961025704596814566051807737124910069880848431369525227163211903976743956290363364556098016456670882939279137866230526424751944139947898754941323619175982280931518893583441951747258848807532597521285539647108336549712611405068267305728139887723746418858769298487207619416316895515879921630226356620590683315135039332980921428544662964503818983550574661639298272742647751012136106435268193191227568272414507616370590739908558035159586323002523202996087963440852919787153483475082755879877021696258363162402526964905848047609267125119305778331943295582745620225242434722170677598252238954869026395273638826221648154946906708438741860744847085609214238390547332385908497609826992326878419838336931408255586915952609867439592107519474514856730514422897373508827386372676432679481611251944558029693584500659909216724888218237684984647638277469553877322199902738561456864051518916697412168375718313035857117916977672547701032989574754156367234911385988621800004409443075618557654625021856668455040493394340956162839893830544798183673503479668401299980065902830306411617259319661707688821572743330890235386459987979599294538597228347438141217123224880378566426194700222508852574181826294838324057643446580815512002242677360964922532060476089751583270417873869108922154756572260228721237943043307305432609201773892096500102539529257510925593686760414611315345079009832618729810740132817322701685774387337457644641474478233211218269834590050273703036901443054746456385010682776129379247885122231776738678255290459975206827017616965694743338487521569088600119020638561941171681372496005966735984081987029549832640238877912182493140849782262220238810637900583789728952015301724297100199538800771637157468522975682072740106988330397830487757208962182486434444772859721010841455531444310656149935672977855812229123450589816831377362824578475638841887120347662241794331481625196154315355611297665733329093383909195713939086535044767590408997674271477754551622631368645898993042566982826073647897744087877916545400316128468569634390572861111519369087426191128914132255700741129179169940741716605068270901812540613557068376082872245767221473997091714547632834743752854283341509925626341566333872367275393245198360057122315017129378486781095622147968019564062090213684035183880441224981823237217235483910413664298618131627920202709235710020562378237996551906348776474710632196999635519851887701219541159657376303460806565139698742140908296810910973258423966295481260219729520908929740055709038133646663125445221032003265952740200867579590726538775578007132486030643070315639564745666080149907809590882771472526682964592499524694765719682771924280307580282980959871773707330704556008458897810156685220506366599704515872590299810379019789631993965182510866117526541028573598198081397010533452012249387891683841621861211475190874703841783984757927312970157436334121695190080145407015908691041470728547799234102304623846999257274711363250125172418987967782173960956739875513575433218761733433890927370005312236303030271206521646675537964286820923826760497582666471200710203835578419476669528463549048878656768226814856644657519103389816852095690772972517197019670547223466953412679351831348443801627088638952083578443515582652904431813483846213591668139102616173087389416345142023653273481064752811756432845788044797133274843182282714063117098468496723797648505325013605185654357816627742586661409833988170679763169708485242753173051155740446096958084252987614723065064958786372162566738180029106651205097849451438670067216925322688672106188462980221579105899955438198871263636455082199762231155342546496494688149487442312584010555239478959280275787879893064811244282712404812591194395622062846209757500714862963688593331431445571142657276176745525612785528989043095655047712690185091697342641208328968767424520935928767119255639250948900613353086987865281204171450007577774568593018678235707932060937183620908417013626529907767652649292314461837281712044878993477753684524825694205251578774577553057645566091230757928778874134136935431216517370102818918911893644445904627391203185828349754571100452000777976650937696313759566077236658818867265336858721624096439471935454545095356798313243575976808565332608356083117301534380134731532186166550251647254552596198046978279906197182273054611142055262010706958353625905942616355059943898015745136846485997582105493781123502209643630555182758627233565398936707427021276806859019396271315023984557235942049741823001957388352913484634227923457671364947239720314724517176084394412464356508900926486967680859983576737223243961971296918181894792781159449567891498446187418834743148197712943090728428443014269177287196912436089712164482367645005838698039872309457695202965150649021468954595551176522146099369482375203771805716541353081300612516188718348280779118527089754740868722999376674137776064300225516192024780958745293424996420725811639723575566021438998825250993308982702278829181493730505589751070728256163286203753915937550664962788466794713768925971743051670094606045593431257334853529056223703276301201235162724581233178415048869571486918097789272511329379185501093988948440159734586151218272148253308757797485241753907713224461568024996525204058904561226151609830501601602077968294788484268290369308242169703013224867067535136949102498941077953611074561757437756349332448665445870372596566946245867583992057814671243703371185320444636782767606176951531689011191086110662853528689466579753712701328743958045089166079631564434881199473007679417238197348805276265878392637394587186096565872447444771510880868439019532596887989283050804196601178142580404581828739641123208107869303917587921192070877249483548841335744944652799557716746251874516546655759807768380608935821091544543093195901303492824368198063472470034135654736280624998439303497307255364209891720440290682276960486729701542647644505671891360892781515037900940779140876586721448217305338295481286389989203602237445892579860305897592194385878778197059418111976973120994256671921422766152528087295734110431343379883671665386644719680666838765433176020764672488996961691030247587646729645304246513411369595015174734524615788514131286966572742503774692980217232981894055272005503686153106729485865486046178157573570816878351424882223045793359047960877474948370035999902809854688922840608155877170939503905449549646623346842233298934399328120586647928531079797525819575841185061952037623152789903355101803138203114484633912724600723453990145410708064745567393891691110434703220241323199171786913232439371236633778988152928921491633355545661394723641073385868173802322589650146394938093693931045354058687377750020668220264226581571052379257548674834201708125136337360792620026982600328176927684808235900827689258349966082291401712713928861829201761608001758580450541827458369750296881721613933792753238677317733951988228495142928654993412816969345255751637173609949478670376466760618162571160643216892395923314338313623632867597230364945108988348679652077236770317585159547997604094500495137492311222288323091607588982881245721177617958141932105343905892631502299551979533640010738455805817045834190359039457303843665179011619546585953299216284626583796845780281087092498695028616797226219611499545493138972417798804981380634083804732095617392555770758739551230924263980349122617496501222439334153254682234044136743829603453563555949794047429225124213666584301680754976352480406801290194283905297091694260044799599248234332849518763088486366720058992845460964698269952408376496637026031742933498494931905286281787641407270723587145902123686720265037773877654856763761011223137882626675942125697692660318812012316740957984763027040283545421525214984107513490080002135623215416277311683177425187365060411204494969415836231326280690263822776519743778546563416614206644175586303997744174347180430387995383992075418181941498858295291916174023860689734205963309965543580352952848211750551860798855889329191829698059114741577353999254132955763819445321061811625134920750506547075317436145827257541469183762961090156269595242010994461931315476675794813905181055626531735240631548979625382261776146692441366096116328118724406510691494671317732390194091712311663549867215234172755729646718446075038203317206888827411751974438985967056151958090163223338334509015923160128111639955921783888308904256293404022036192752521326075275667735155961768076743481212819621582907205587832243679580104507316773481249677049201968156490754907813708451239196518958754826594241522181586210695884993732563030863859415107758046059579001609194305172551374711294932740592549336312008916801346921379264457745006208678477590310678042599145628966683600327637471401966832201749746100201628418557031912086413885040795452058463651912706228170934390180376836622061357993154842181655127718400534314190494994956963297023973169023402436077528320342482460153144852196149082517661246005095668895343800645792688423217335181004981456168399501086892525683544199129193487691853392844703218992124111271224720986738918254144891181308997228379921348046515702017578132335087751803245195427215728530997734965719226195036692937750842497508081694666459827423432192609014490642064084803794479923148173586547496261930731405057430121173407848779403232807293486159564903874381483040110502618031029321841614355869043105495723134097708276042934847463331084126876779628578175516531323712915882617960318527892689100071099802201840673902848504355827955871808810794923109449502924657669436807505505275519334063807782700419419643837894581232034916406054219524557360704554525983731497911958207727544659975085127998023667724714020233135121391766595007880706714966643827968668387348900036859621733898290045881224849781616616923650131999166726703009365612486989859125451076857810822872139149011296050346216506191986597581535701917398141796462065205037709014782152429747598318577785213371189894487369492374170112191770123817393471871514577775753540994594294349395175119751858006335146747973264429323118593404041785995818432207101770169955753398595503227265503106999390004070602231767555666460169295909851523220511565004179336966930768078827107777003775399493573312456416773094031441394132454231993024682446036879874253792481001267804161470769748679432950398237467106356945174261111473578045648239620807386237525267806547165820397591005132835594953314898235079340188315614623559800468037630971337342079087713787954753480838827444822218751249843237353716452566898926568121043899103248525214470818394064214842259848364744043304367554850932819479754865117572122274100640679932596675769030174948166887953364084490873261201417076541493861610601117872479236884059640528269062901075779554458147335732225820995181875028073211691787474765102875248359698894979334203991710118280159188652415030142324657492831493098829295338161218016852396061552187138147058215051171336462859315418501430895823117198355637268515960975567123242131538867016372635295257668876392204143834572937591291510690794664815282532819128237967464812115252640553587046455042046850549242818108218021002394497421378843016327731984423653680794957236191740984085373915053543117962264235797229643363466558438801469802377973935599647812929499623752989513717958090414308539603254755064287639696773791662828985599754442450989174605378524601160456599374885413007728476324486536315747393910122924164449297160735124885945314902226470959696311006691710479371027905106202038604730872924837481415611837376960924257860668449809186549950743461208902481025053358964293772244804342555646502846463270249302620649002963953229664148975444851297420197585356200452421457695956902246401026820275809061056818594276518321785655914829398000988838611350550178491934025956782495413538421946356588765159427614248639790651225341459876960616264138419664591953026387894009125376218993690284348358880070422344517752110921567072074963053546731522731337069183914144601826880517141586878458836035238236614369048445802290588972850841823617667015930058499599208905034943500539679952288347521619930381351703205452692731923534560924215258138195225520038807403287329040892746463257849997044266319619712408266002026974690634283566659314189106214578153488730428128364793929263375604745793661444674275663345008300787183610142305031744575913322163900379136567452717293782914193949324177391468949015797209989094850900341966299122221820463754344085135544807685761756767277119429029892027023075911863555168044544344463021683838640296297692616106834091179675616454379833383650328612488308219971819588699597400570986049604975841859789304525086957376544308111301076097990480203860011870032616515932046150134499964604464866886655976601331384755819675145540870310045053952494351063020294905197180491393212302146625405648299754408623441606589091485682702303470118405507545606854678345826025424610511338162305693719952315037761992270797602054100627605358287770413061746712376282867051515050658588030409565308489249644953129308188691085836414144871001389675566024318423796477181697823855753034634236125340639653076848736154258930108931182816951581410445674664887717679986005841652233996419196993517354176312248208498662470151835918425865484645751988335236627523972189975510241339303979956602819656738694680808667282988197211746316676496608231046176242998580512830705627624389132578812221921293068677881545004296217026781084388052495372667375960964956248835104746526118276002216442673144542737513720493680155824469014387005784335802177865979765502410591825641109225644029435313900766829900893979140101211523134091884023009285597770504363347213666942200968373500656774816479908227979066449891260326718201648480098497179556435747430000742249482414570512773936242033526031769665529168049943387075644006742667906589611677689260300597094220948001661353758760738019837522805548705592475658056159047504803291663721432518378959918887900981612859107222530437051076069737035632630382004020111691751427336873011435548068476122324087474381504583320126818506255720499877266110979894873679449474688692382667271760420540769638561865051457800256930719178236933703566401089407801975616888257769577353567273958945555620414055020268737660506631919655588147683704709733035786919190737168584630732693596157744762021924124729066860721774827542541342341519987562747416362703465451211094059057771939248935953747565708603191512156045450178264663898376205372558598931432523045172129353626788416778034094631229851097762028268103152909190709693580763348452068580240872629191212161515682529954336014341650619904617175756102744151236483628167305419579902625878124437667842957140098069249257091659374034842957400074949855189639563222337530074972788893048138068200031439464104880191400154631346017444178254789308032649287424163197063382275830960873109622105787813880307848094592466712906904805401867178240682517600888538779618379217769644920598900290747342793473949277992019330346164248182488955262995530508784449693751225734678405105154390655496065543789478366968777848748925986306140721405784868305223548549191839548470677091583291136762983832898579191598103021326759366298292863444715159060700358450500064428112312297401799415846365380671523826311850974632877174554592282376643475545938335240057256109664366043357450405817855258194425621993303364345225603002261325345167250901299103178013972454825112540497769182742393282877700677918652339682528600032704971712611088701058055367375720708210434768980895082177526331737792691672063816860285239937323417417601130589819485240832428385403593467420940467011558675589647746834997894373839998429060977738365643217749868437953927738973629016579625278546894296066565668864680152550874597312648492076434108225091724522437701195942435139552708487471175826471528076113422287263618921935815039546396867877452482832159741796679780223831083335855181182784637193293553164741514285723114934517426204798098796043135989616913944207138806074653583535939904097077827167049398807687260381090815243867152397758197617382527655864083747909503589907293722613373889702804920086560662358249778745622755665098741037353718306973561117327528241621031662682464013410973703984538866966613798328729731411924549420325182343577477628646068061476199036218421592692110554708525969206811289690019242941643850523910969296811161740531219727932321842317870185081885757460186467954381220898024042678428489715563280895558496250769309291142139628984844032022639761268798064393769744428914082066032476680193587727151889778080742260662564540302319028307241633393505325897808683762322675602178646520788322441651015824081094800239460825691293548304072418775623090363981374805307122924860343326510259127339779016663406447381805117577015684212242617272878088219196935918677692057517255255398385171446408934433939484976893916840828203721860110559130888233579832239439284054326332519546076940355863823086232763009892467333784049764165271306336945793040926083050384676131007019921879838257622447534190274850745168331517908881110128361776155278421198562963508424318838993924571299614676826988016801686869989281858634379167450946353338068805422780214156031356749380929946574405150801030487887406023513323403180609240442556358304863524295252424466633583120915435872695297711606297595477368164979577955331518003774126810121306350380365894745681617000971162745697124733873051289050105826121325103656567534627906472136957612392921673903019976988366822959322125887277625914090302425124175957987601284063765395607195225553990353842204826007649029664673437205414302507504729516389529297722118939803801333389360814347020399832783970414300199787444754571425972094592987105509693376484223028933768669659738415244101307225110918569831701930294813560410433559271285731273890036635273208740209834435883257631013838300942211043917100123979409566073136021696209240332216753037199507634617653314057538789765280621838789582763846603944873223865206062219256484247306190283679706933783927598945774765559585455173186136297685978374516745950384071300470621171393608175329202813593551807104012275900430141276593622282854363514059043100719745427693091453768417101194121956828450924265973387868644681395513041207625010208328924831141831655744226550273052474322418388395309730508796076700952749440445119960253621317949009328608105351996914360415830564920563933161432573687858450998677692057324283734929840403011747639301489499707338668718482123869734839980794921016764600049056777114210837041870490606521497414633126694708832699897222859960107204542920489767829449672623110447867352896222644571914787696338718329108888572814774520487778481445810306341739062898843121510820956341196695031522940205320493587635165851346528498997035529160962518359544580882949645694797551125624305230680553306414902945386031348947850913218785826657851960460391409113886264230072825139511203964518023645424861780352816638116835865246642716016577917420627734985241582009483147830129817146937607033366428392164974793460188295665140612857142668700745296229150952181433694365917764922701947383040706794405907530445106090261239252264031724794514897403290330386414692512637159970263629064235958172918799483420974624071232540810742069193832768230801467054705685297443313438879268893295880131308502156240011917038776435182015504148494277462733799914532019481931112262065520435451058369897076959493748347370278124261149308767475080169101329588649731469802419256201809866587434140924798513776318140053442533156566722957252668197849259311096468427741426483861605664019443921328829461849123393177047084399044478583700160124907876686989490477710737347858528192686645891587645588164101254982873875052189675950781767613051181496044559774991372106460527208994079469358000152192118467326202102378943996457714236425933275487003804116873874532964904462175744750920432367266991700803230346642540697793443471382608430003289899793493739267566926968807047845817632460302781054506591135290532212512072015706110695288707572627840389500079040779565974053947154277860170930286856533902827873063582170368483880517391906968532166634892225001226632268534454884246658791131474795930085653306680733393132237455582678685074519984291431010539857609345084137347125969541768672713652195968982891994023228784860247439180553487838953315508192455326727400985514939113141578280407456221895685638443011801438470667847332306770805662639689416770528228591957805856484386239713388110195164582843600653920695722762672311859377242610060031082117148671967088702094206109583375782193683518960421045205469814455818246341743205921117688522020783731064205105805488342259541594689972109267265897403629445029567334747125345703267331192936758464801885895631866631169773130032746704388947721124745697994507297900244254488153390237351799106760321959610220493824785402069612757555875994665951463090625108437786975203032895257974627808451982114718342244694563095768518989697235512952651447897687854345309863331088643728526589412870549555706885836985400286685264516263108728178216514008104635926204571181592799197313923010360984816586576988386471510880454471078620095942611086251192456196280777023759552277902586225779243559873924373483521352149003648676181166203809376811416272418554566637657839305901660445001369836679935523879289484277844398357680427173692240762713826492899293834861431616065202358409753769557687197168282507050365772086089381891544413640671114870668191008247191631848149646442439279976210719982903459683948190698932233522297219007427083733682955688336096388438672454449104269017990152369944717740578430278342482323711285938485560809658703036306210876805147123629453079883742435165314748144967493593992745047740061005280446387637664046976220929802376421554910188003481129461071425497902741739601882031131104103872815868120884238436997542225446617028923256334208893839208842990813886642966075949301945180749269519742570338443494341655808754230182188132354471567669127543995364008419698503965878929119905537841224816235967636863081410257382633354213327096292240164116168137729440660107429376047746271776558479067948639903900983121960734612745717892903677430937750143421608465625064979518786543008196522013702664643218016793334220973542903786144230360866804342286181201919845744288492438783603053142270839751428742440982857859290050554867649860923274806109390626136839591362626920144011965956825937754677660892143235702283183997942854006748791773914162990799902655154022536021767271690280429476593856966135942191282945773826708801332636412120590102181595927284703313582218433002022127481428154080552850528905864127562975416478143568916469890901004424451064258064650038607583309471856730411426775186103156764213941869819837813565646202907554383728776896489073878122990769209139148452687255834752347697519514638729941533027292541626653682863276464746031719703786980075810552259366824043002717002442744585630182823719883886967384417082997578715144963798596432646617694049471552921416980419166771650236716724812631614153341706983426630395041960910115203578867898789195056826802325581357915537758892642933919286501789786021373282774507508570577026980150884069345427316704047745842045452369551558392893210919489487034434441746027699377179739696748154086192332363760565799086798177494041516796408339906456517844438729673577991468386785979462841566501059555852806663906417913209585676094504976258387544992784065825866615160116117403935268982547928591975245369547737168576786199282302740001373997900947418353122542732206344843245766020506615010953746574738185249184810847584680771787706943663435673879805688049046795666019063952771723935176273000243252889825812327458506602014037857062511288030287271729720610914058643114825147276913709954395946405523361066236978690625681969238112415414356490102005860897161225538506378908498969509746413825992193298655060787172860966222614569753387122025463400821216449466592162766962667499218910102899305892596433119002851112089363595482835528036206216297820675588980353367750725491211080129738805205502628850281565696648344242234091611075515803602134475380328724460177650014824051162122028378389947170996300086538005963129637722956486060788931118604440095896887475421390457850746781579574565937696150818087782840969950157066513450538509707294446947706213099277352263321514131569964742449736533820044140272476255063862268695938505219095018017886403731521943481899149279982463647695973477938280553409059384436142880378946604298852608521555995232572827627027119929559967703462155966420605233228116839949935210040833036299811309893938055140234990509472567577205966430832174276170821292199589305190454135546518850030471254614606525287109334246052306950671060744619201654051914778715431725969200607739739356970826609738154366009929231897553861286270063152570358085631855920859520185873264789466305560622315903565175264043697430909962471129159650517197751013598172400962136832817547053716324458578593598008657190753577116933772030597939390364384676514369028876613095162132356151945993849450127215306951929425325089128782854476349121663849404494289256177456288781872876802293049495748761699544396159355299212506764389553562761047348612285101564286351885594346179016636602481709855987063181587071740044413180131533596542848523643192039395814308068846946424733698509110227706765480899015645794610972532105043504863054055290052329852312366055588696296931391962605216112804414866754622750824111396230329287431452854476496164737824110019256663587836052581936434959391169326731719986802479877865411799375464192470481358949956488127726977349859918675982683830246810592677058830161291641164383781778993066244496058021792255742962780180000415921689812742004121344297313887371193108443280023882594475373857513030084125956790475183595007597613636937545189523577814858140372099169086648686452653029088130293210862083690114806727631583755899864017517465638476110814742289618425845159817118718430688564145214137487336027817802860514236585365082591351955990432412839730363610488724549034970980657809028028961961594295834192736306787065472763269328238382489029207896448731995822562019752466215422185202844975689765863699504602128619654044467591722153520187628463905403206966994208467323082706129121521576368072487713838801274242679461090652237695600810952729101715672234392484592202293989423520491286100255856253303254480739896764720514058422110945471317718560003339647976160100271602786660240009265235342775968733863474265122973372274232303220476455710410381069446759114527941340960932020330160767575683311275968256642782557527529632549821179483267542663947942978738484078722869373748530469737084982677760484349017657324166469224172261143311666242606731148996966794029325312155397691967773238771422623854289867891013015529544356734875759687694500895436761458894267691770809346905097467092349085633919771838998187237138353664245673473850248431825313693690656447666801191159371716857623614404687180787790241171310415829072607605120458333520200949176243376807479552818963307933958214694549989790077819967746721002297232363521907885468722438153997366232170507642680642681003437358739317016433934508097320697396554087973555550480911029555906316908382559136769189374928916100317325617950477446434735401610824538157590501070915152926278922565812808062894773904821723569668102832628256483756714356214237632808874313799503589791097716784921250400351868780820235301732881396937172610365299720494538879846681588981731835371500678981643986754359407670269572125617802550379071720880246697730711621832405857956540623006510586964481491415895344562399515909204112381218931994598295693490195605736871328223082055336989632469421402648480341317567936307136800025549987559385079724672288873707741690596105610473589336414446411453335392759579594816906910102426284900658556887094473550248863466647734826789457332749609581691235854984732253347190696048503152499291639317120400807569331969507859129047810970435919485885182857093711653137397032047315570170576189652007267797889892740600505224707492402081097420951006294785640924794573226390822851184600166281908084028402505195600375326769765834705938824057810813281133005003077271577717752469161032336797630915049803083524401330946070845598756701881386439803212838789374332704505336029947077901285455753730785538935793080152918309865392495689988054823023931166008232861669226975514130809731188173010569665449678532609547800126472837726203095863557935784377068243480987716324819945961724172698757654325576075996967948415626158024757634417600992192884276590882922874620070610488520441978225366848627609296038776532047045123321916432693282112029486255623506833217422417251280512450769801627866228785512359385829882857380466426658328269953593156647441093716547663815809866600463492466074944690626797127592050312591123038984661509367389896595792656056812442652980732194256343715305854747018582710099063032084640246627321321729448653462876531836353910258110590909233135830163290575655242914312565912670812061739160041231258081348840015960928245359196452856554640516818793515083611518701207576623255188433516179976208140685392255129239068492227353818399799253844492757158214376516643827675234776634553799040183218793284618835615331156561829745098725254981435670769536647990082618267647220722800819766510603691922800503018394951911077637528237901723204384628268904376680804860227743306696026232413566290516095455524898429841030301652375647096616132297399731898953901891751930361384960912342685211656049203161879628002513178594834279810878205888162717043453574826084985932645180269439619797106546983747074348659325776790442181811066499827924756229245304592838402183408832769614392000571540213671731250936029063748284508186465708764461221909439972383863598507295490435423959496620712438558564683749129866407518277853230195537316023115549206324226090860033117743560315460034923424291946169774318892807738703381625544495792210108311400539961591187356787114608572226518499046362847949620659825548673572130012092565226670949682904699553318877984732303146069622367627692281928230788822770586523757341677839267691183530442524828446156514391171900864715470993526897141486120242180704499574463698900917832135527916171272648810835224537744856037237411089635953272959235490953032962397177029394318169171492397340550922434941830935936358652928608922279808778709667900768641333379958989878328464601536819600586274299875657913119110699260995502111448758528451458782882457397740344879605510062924370816665696472018891934728368119517409059468455707368785914507206618127650340068180682511898077980250014157598864018563505263741742976835426655058103271374632620597376481279217063950979055040848424960350978234681066442935121267807181833796632751155443105686181181292435915349880077487804598726619299755466685391076003058469194497293706991606525714871942277696722684697644839670685960436480728424842911438327666526597282952772715959179691573824962085720808035840840574565134337186734144044674416532338601682320987394118151048700078440568770014828712128276070820037235419475765650848914834114983836363138067914587782058570147754372768582250207623999004355077759197972686982441582982208524476148138310144490752507703955963601268746239238832036643553617801263525472140058093642271756855703396047967180640250976084631261819231438600137197011375686769750936550873325423647815417196370374499533631474024695775105870438598149335064618071854733937511736408699584143629884405362811703512471869424537633644210331490694156741289668852251828864847461633103455470824713721209377206518548567673836252715219168339816831210113049141166666140634710477488582927285836392041399042971117576149470187490363387357047654942561160952829408121469367571871031824772510435312495979212864619753407176470149867739605771847859976554331749129837426877513246318814565229861104172562203319754191230367870231215743238898545917332311726771922362321804634585306852599686910520196415899166952150994605240405543385056160891879148504852762063594191704767893819756344369215393662862675819396080359915037348283758233095599430571950920155087790615424893657523916757707365414954766969902815411760437340235462953689420968576903836008097759128980423108479044836860540802704924752549338414161525747731102135670830559219951789425472757016446195059562507863264422365751612665017273906649250915470187016030878618829220343787732876825171351639269718166701497365174786494166229892846528394260949433688223484778599722908956709062851142266971587835394973340140106018880847248184002831427939348136343177493919290235699463904508767101267690997205380958454444032507621780568011459153184519124307685261873040758748742880347569015948002075048693104988193187684476504266610912900438410051968663576204680157427081162117447178937593871904274027474557999961359366139652764316673194587561750632270080195453745866761118906215990823430126064684755205231174748420132872611993926417384696129601590169400627194848192277700611194856615753000465960057864050826916051274666158304211177550060586442066412469607383343012773851660803731602166178181639665405656378301746530198419729709078586957538901220557998854913189633479227504329591816381349979977754230206635402326524581803769409651465742235761686265294251159795447581993335733419739722080749955822913954038735244771591415461960708793384355948154879916354335139616921200751399955517314125895295579502573079946658979130411997687347614905260357947487314157139060642851788455995079647370424259146292800361936857854302450244418435727858291013362356526332375523637026508756614459777259344811763694489341693093035904691465760310287326762317654005706467696739914466728593989358922795344976623886217377748477127393407735253675931590501787877823833764110357917412194415980245063216291776561200631680336803214949647594820265851178296038691808446346164359697203687686698904220855706264966220626894265225636161491028014992908890889544380290488713699591673514657889866944826281229211128041068584244553173077488701901952509733705831263952041871487509622678599227302858308212736379724706100620550936601979560771232118396122605381668297976901069772766144765322499245462569838481457337545654247570607591818986072669371303316780087964901269150123503470010678770041279170576328528099812573509171937925236735354105578288957108873827911046525779903034010602826358718454580179242311059537611505294964097759462120547675463436218012990826468105861374373641330998916994790218457447699657286778375180010966869259839254657344406352607709565903770989761854955872777152921468639471701271444470558878282060422638216635028929437850512977305710957012403114695101490630820384276915304450167752842376513198021213448752648376507966392617604507872946168846438808011825582608384698013662588515002270030792606327834626873702086642467625960809945892007907976194026861169397296650283379888874143057055537623602004978382076729950520580105532577743414756881630968702476302695910785057909259244296569524212122208657821209788969455901624057113770682330071443825968135243492535195870604624933830640798913103179524845060854778363572577622178903325709443903768282536683707541685417340702418256376900651828332144628644430268118292134377983319688693066296211413953530462962919558907419791605109924294928576098130465436765246552722032709993304521485991627989169126220406168173014286642280778395196494858379652280596332453685594757628115195341089883543098334282832545651535530125708277685138456000735570147464909396466651612812782500207634031706625301109858636849045281280170544590511552878085631985284425463190047057846307802670620067332344198525868837915867496457932741823649099896482344303022072361741064691423749134832245190817940289961423809575396739970866173202741075938143934199036886689284578528583736133341767833239669422046653084233021433857634705556850717640431537522047026735246041265784890473676045719531787932097664582448907808402641409979836181438119288656732306437801235475932518971681153839491061796538219888214690550586581778358392925624298265110321401412603642378379347500170315338431928061252950061385617011796548049890935164109014472078206634602315294106783284798965495069051668466744560842714447827788229709148147243473350301486505007895374697952049187354771545178560122515969647047492713522697301361060678341955691610097117793728826062819852838995834436823987280700288811794382182914401317913366049256900966330923818714048819203729549373531654430876093556738338373010178780420502354983547758435856752951077481667055300265510173804238164598522895702944547746060267532935866582965471664786436068114701603677476718551378522528392218932311861399370687057441248132576493000702982188703106893080213097425357790637620449775741609433413856015407877055552519301264215360092442147695236024201546650280000215051431761612159064160927738219060795552607599141994199393312203835304975971724969996299268392118261892664620823893375061409443159272475464049457723345048046973866200075756562101162097030091822323345840417010989664666818686495755230590771170186032126126459390862934710725349845086392985179089920451091794580074190419930834331027435240184392917151175529463775290364161888774147896759221789985625508188847104146035119527382123753236522619417510701576206542604037818094871533703363875249158334224892414818633872625726621993194379641243224613854972390000650294978406915760539611864277849867394631012244473565686713831799650884162048445591024248363926167088867912806478911605899765622688099088102964648893245473229207853447393677211410463209739177334822113790473281086463574325973993268327843517821942382955606780291830603249127897881338351131961911868416943435125156698942986995148150764777022197950017044766030959680468513523401023237409503452953824501025639288613162531902224882412138738880019775527430688371538067497561285084164172723906171632618494675969371950303634635681468581984230382935999690385399071380209533054530774187289609934071341436832315960294287509318203170358675781145955577427032784912909541727518331410608638778370218343703163857092008070005652773693932833803386095525110245823522053851077247823509886323377685565800847098831136889029908598232158692359119070187628642922072916903031540605309577039406364554301863123974764127073625633458471716857572427160719262355108472634976256710141551129385488341295262932850013635559526697983541337987285919614577268456790596828749747722236374240298478443272143551181997288033590796733743594959779958297251912815982710044763306956303623671089744621777781175127197298795031062807342817824680111122565449572930976654593818699739911430060521763323388142698501805285813874521598823333622888061397778911162433201606652218369210391962439846340168884128371330243670093268497533749384227297124344931674710513027543558335387936931249450919463106873216838382930785130835576487500464320440071931084199587191087897321675912121386865521491958008323294354720083799639550594842096182589367655573232375278547977728371408358662194074832946801581932624097462662249259869798201556646809641462253031023543916363280738111003921942630097699700886244582650724061596769916997497682725949038719507189355837157241090853654723399360868291655063854330661041309764742259397348757367259309884350851633598195914836245717661325590425901709173064193386094578156889556248978235768350624304298180042965038889724726937584112284126943216604056603408757874768696853085364787538856630189300400899763181840573489624585713538046196915997940541468854090227285255466407171255998772758890608076436757134792418346587879518663966505116790362752613857123890301230997867644887922344340865449885477480548905584295305555706225860678483902088919942270057136835738397647865406984662854283808300673505500536596914714725482203959664679595413506422960035438182979998829856075775723175936641844863057892890321782802065543192663365445225615109629102025304618106519898910556399638696023310570912043482182754341242751796930820432801988669427446072932093420529030553026928364767453676212695951328692998636387772911291231867152973235112851092143084060173397933729906839744234961104595593734985490248414490670646540246350950670105487675171104182878645395553849005728070480514226065998618710797165413356999453503511264443216468971172221578968809561483816350951258684764033017636992923206609135557094261689312370744205360064922500875602541307282514437836063538174494100353270795204173875121139959055253147126065335882945872379672188278346042456063971171035754328503373391602120094527167406535671950015269873294814757036069055304435329253886475020273113932206255062071566146776826183558262656786165556633377568791261241247535169844877504466205374066670600004941858836061452804600029794339564358461687774644405839664242823607912015802847373546939777186823823334378304636531323169176664996375866397620408959772515476042585470077918138628744649820623424411771516751015485670653232431218208199997628660488811092369372494679100968812313780707117100174565521195577253724837349640697304698477811485614857121036584624808934517690696180560253146300368363100399281687008784613542239157631955209410586232384907979751003572590271383236337214114177138377184055403685647377421777511616246263223290817036100323318822528451520707195438888067394374235867366575283996940904172726850892087195841337186677048668858001649213134900973433533850368603143756596315457977806642037088827630222213743394835956338440878766645362822684543471819915679214952858466512453558365446986841522204093521556755052838151922340183922299580424583953848233967098862767804379807687148258478569466083931340804703132005971441266201915945235164525704565448924980625080645262419430813930361797379512486369637072924258406157153571157734315094191861137417786669229601825508445294354998764198725532671216465966296109256893570751146143637981951224032251249545515026580961204536624410778584924378165268088776294811806038384925634616871802824262138751737215897447532553336664613308352137271369325119142095281109220633807408992110811437295463059532065552375384147651619433617672125287248693050181906891776349986808858127123849861181591199000938042054111337582758307581812978135432516654189981886288960407679431217478685604125094490501732915938351383149824299534370649999492481118673450611624014211441512086758618449405899367296836103350444605246308995644135286710554278516086511567586619185495229807136604573844110709684718968911037189887673744742391090033789974943294561998309457225694757096701222834486574607260905184764938093149904635050667363400413842472893601644788172712371990055815821603623763184710107806723241024779823067850690361677751822268620464866979084256879827337730075709575745902190256869816867860517329386271125064084406573129378285118825161638089847244398089021080319701542225736488706861603876645454460545422959217335616797279587330639353594146079993681754637962597776606790939771215131447826115592845058378793371426829797183807563575011620663053883704410107180757902985008566750286516679960382476969279736304673825373910351919690552967192225343761303337295104865805660678719848321156481283453793105963577066037545562513451931583801345086611372587454798621299061883025040801573035323329439422616255080276034550066399978862289075755449446345238612725682597358540798489431617441091351395508952699680543377379020972534363125611670350196618700948344408920721379583913931222203434258769187051161505117728266629805419476603850125268019109611497170599854888677491643577107345122795416164980554624486932588010425536751079173676678540253841087559778834792227184646501075006585553412318996606678701410538010654552557413027871463305992343685654481494946088660434345834671446222762643704452325494193292602453430741946543955927384359182019745498008090599112292931449763457922604148206221686762237267760479257910892361627971660737031847145632027034023708712022265845225483674404908519118269455416762779992375834683712741319149300300712733846566363966761757061942211994506043370997810765971143755746408205633765565182749106088090802006917536216257891867621771694056819067471405705075811887544051439616935464000265879034986900276649868850198122144397437127721590996297304261769350607227259680586143012928146817884970352447268750205163862010901287302125453569416653444646415016505053319710125444972680920331972904168752121956059078068150501496138354354081910358568312200656617973950956373923846519450994055191388501190646873634844861210977719986606531857005594425910917830892232179876273031817501472637097602471384336744923517373681061718912197616516083563898670658843626482806049592292978281584218944402893973350650178090617991147279973442879866291578310948641470273933223196832925133240255392032650115308839254119640796124030744834405678982274938172949513328239263269532236275555630828663471475536658556745455531395297888790468338445590925563810291765853975438048792189101223237502177562151689581090893185219838601681995453328713301629361171550624876910107170712312765497571927082508601953463437064137646278360155102767917391156382289584052319869985875861376316787688664186815163959208837427437221191235806842691732909012639763319153860747481731311587291523863328101575851286554904637389603901404748052682042235761880211794034574316441349062041041323382169089478497516856894524971988465795024064333361026228353325713938605743178543590773763723037168374154569214789414834822843312521419442645640772985172624658040779770346427063954968215081417342332509845451398176313136565910065937777838606539291266395009886481658513690316543003633186104422383016994805583982325996876512287987767527220076330069080791383939036946034080318612722561381831643174737329537433514945367512530829600154096193197282017153718530909952950594311857899104698486298622396552295682247068712769162647960304331034148795564727817236173718214698917110219042340244121901306212864872225352058989932025253290949762873258352626701153402796866251066674870040830502214616943176372921797349052805660245704561789770119607436421161533878238639038616345870358871210703077351232417979670290447956651194538030521366525113063957155161735746939826540594802795006736514555959178490356716405062225720818952472388722629825327122458686549166643331345553248521371659754520370096923549531247470767310521443105853770381668389874813193269978713771146389163415243311433714324688482444127627903936078936807563816827307839627084570302491830982327465242809110615952471676409366077178525188786185712074915730477128043161879635180517899922228901611809239457789768692171267866650346528565511698958172006637194046526332686719465563323455167400468638284316299275121511897476857518993771368810416580672237895332884548149824244627866695492541671938176615696462298022285693857711225098589768716723347764336435472129032696707568437296674345365054345933842265423753769296752572808519213462775289040701650315619558616136553975181121057098009076500934379682849213176519249188305732746312726288995560796847746966435711624498162258137404502171148085239397586556601660944690499168992695792593409074143676563659992460896259922548947165698398153102488785561271220392787852831311969135811502388246987108234268035740914731591046970434374315045991983811678679550096917807239671907601232784168004772986700710566019164886388245512992073940518674461334172695260390145584738633674870306253634995856548181300981643547910490232026978649334696983229565705582296092637823344886126960494452443493460400982444587589822127160264134345814362007326148148098753885153241185481432000852876135411914540000376587004916746841628795264646662080403887026991492939667565195863862474357196953111907051141063434977168607260644654584014594090264812746551001816570762857851639910927609821385134889796204981510146292142969727092003405378211836001365096860459766390130553586939941185251663762691192899915787041263015101456499975051542243440844648096533968063548794352095235777395935314539344482476148269013297525009042301979661224800838953190054292391148380047658657128675306952255722255533059842172358494178529963941999192014696986302119676381943423206470507873647507760994829550539315772627444091207104952776209928406764583961015994540080735064547652144993516011841523997258455157141087717578139329885277285594723972018184873499919645706787606437273469646837516136856958896186127835994048080566126874256345395030145530995517471684186838144955120642434770492065096993550033288780481813700685776111287199406999889733664738615713714472315761281712500952886649957822227046553961902365091075613884443074772684899539116142631247820019932882384745013211605663194037537635119483783404736895629657799243755066242331881027338022863236257732113278141319634373193153331245669707646263623937651943925491849387813206032408392174921059626042718623492989297253645801272237533679075536447802668240203645636118831717013549394111588695512354115897028832143224342855058738338120404607646160119068658852949971854714462910457451880417282366640240134063385889249073771199262174441327240135607612730413911658671635157295165483317985179076211207228844284014455410445529901946314861863114430527015743627835435921447537025259211574622313837734554646275729181273357708639324148276177545163611745372002163751566102379484524888865280688342055795416559172122078262595886941016733299764694976585475356970651225904766771037682215334488259301704640200194599965207727206290904995084422775739748219912967650985337621284142771366163704535332823630884913460208310683529039095848240829475414892737942654744229369322604506746759859597989392155662495911854524383825313401818129271493638889086349463889926611924010163788808792746797981909551857541567754678483270553368254097307352730907692584687160897971612461050242276748537098693228494617192739547605047183199224269719485535238251756343683302712686384514749384526692825391589205767058893300746714862116738498815662221902126375438764873178339464558382633152908234395735857593243555676690766563341614182592027344485369809313468767252396776247146729797517718375096178012649794776049881483543883247460801838047495776615136205187668749395105012899146573169103118883661222947204051906569628806890151197898897270057725185578687663188559602445358370129955448735293979024513494154544353434990920715457179530390281877847282019258371759819039070259001056612317012382779673471206776258272754237138660759514763330529848046617669607924439686860912204944494335795514534829944725300745150711615062034393377717933822387277002964363034506393627365937329980131595961378291033470113569073111098104333424250957681705055849671393718127807131475720190352749729184430301903028907465664818132761014943522564625421440090959654822484097454096101710941208783750517461826149301068224662909579970013201860745874858423019410725207529491072388175496343461200696782215500282144765472361388699517877170531313095436321201721848923469436121518612170544129511079333125459266881259243192805348654623525764241507151230012782068549106074751293662502123892960739850270201712373044353187749199055682036512292161339082236736990270885412903561575531335773033727768437339142315543258272904216057483935818722236965158127937894669831216495581254064158087839881800123312504468112302875335580258969578410200993455810168795822306243945716929782101964489681670251794741921031463964819070427931515838133596957619616474060784031771273308214455569233510175316250750160306451329428351677584514285336995290972285957261433980285759902044599174320892354218057462465299338003456842506796978351232137060346132909153793458626650194643577080914530687318744575823345978303010722631072117551052037145380616184765458273841893131870543823839830487392888613766685045934753559439496655331213661770872282266716701450501050971921846000077214179023087351855006013660893388121126993784946475259610490285340877502196408372722673198140566917535162498545656640185012316404962929459815004785161317248868642057995553831171685909329200307820870523470523955178172041474647963885348106982371444748037415669824310744925873672195758046395903910553122325279204392523536003795753281025961147938280657235405875025032880603719411118101700879588660282522988746823952532772527786704063178079694338403086996013647142980508482828983680498236675043424877266145826902478605767765649751475611008246846613533291995919575703557163000452651493308423201147513914312743453567658064678130142301453766632310373855518484785141047738218442996554769759395427599955494884896657774933918777438813153794649257293060125376187408399665552527258247280024641032095918972985496665430603725219279675033431653347402641962898328751979729436308294939034451623941374039932936127183117802854933030475422675899347331791980725036143139095763310458441916613743771595731233962584011951184107500918767054972862180925663511691707631560054430041754977432806520883039056556366972445985300711369741511793838278736009404308316946213152837676124036013110073529101434450374510339304783328359967181056106732748237897505961252943798984609286543246834102314719781742277526931247169924345916778471891937593852566595202541063717129455443385077569182336928846202551241505026911581134285603059706140287279838026489737039641414673179020107321119521076246664897137278870194511039022361750003984734058314708622870800630485925800852256209418150883167152829095467435866756290589932525269091234658696033601679698716436432772580271997328353278359533600740645530468944171003339575921449499532384640204909823618759509762453790576287140555025078260487877967275216466755755754384585633582040816585950977456066485648793285259924186465684016176329416561073195818831103468291118222170917877751721720452110018244169916831471377477455973956244990522104881514214308745618334471635349594350380334098931755840428320357086997483569360188422826234716300237161670773886103679103900751876433124572228212274914877326087064574229390352881953811489807106014323243120768781591506737045708410324966169418458321159020923206884071949075738770865671080504823838920786519461661283113835300502818829129920631260994842030800835134283926262135705817979407346453376161732945015295740099615982256232113402669369499811754169037406762669285739194328316082817645976772078391616776714663733101270262048587645588952717329428970487620354579671821434151317789054988690406785146792932614959376886266502658716084758713417401300052002401707466454459047786154089894375884175655416505588685005130915004361172862657716177663321399451740985260911554082783452651676683090440292872891842948200378974463152098073225666032599593738368079246851537357902154473887027121829931236666045123209436193054467187637395114151522506015169890537838199326955953176926056570231787514890210498520546621010164653718146813763603160695468215470481174998825615790863959307383681544793636527453471059897545045451754533405392838066141019830260701945205862782518213955923587634659421955336323579546899297259597066159937690585056481168822336517894777585711046124560745253301246473463143998017311982233212425264864571799694840360726502967226716199591873089122036059431174603364636987752715384845901680410023769074899124078614299933761339095940310260655166607477426155805201240662537644611515827650593431051146860463237926808970527952775744713241841579242970260977465397709535085826530257310903847712561955612041310400142918117093145479785827569024155645763939611016989733095973371019194882256886385568128084943307547368137909153290239476780821581541697309074490966917585166108057019284036449459194511492522879027313421191902736156748466403449813382931204065461661828148583179464476758164200942754412553757559275466738401826814969406876648677823018148658423042796216054593991623557056147601372775089162508120806599789287139649461001004576001403097487529311807390393597004340142716321030003391574150453482274295489789992105359447119244490597342473331337492620412091603967603900229309881935999096220677953981755678461864477188907701998659181053285852132827196352984753322769539879710381528681159845648892447286133103059069332938937518754253984945811796080515497863690260646135944410522683804630623306825089220818811787980421599749196498210260827965066494496578668655613188952903643709939751465942134710490648918098669901818869530189662442962147288086804247899854124485888725772565268462285995104681323453143716446766735641780837510673725754563077217097722363047499723723351445871243101933931622658665799742902636900725216698167842811605520872555818760874376866940802930322851027170873575167176648609372937456695941889285624883984273297392298102945957168030007393845670805290013981611740354319972126060239060627284693591745875376436276942084129076591236822337094551667999133396200448048539111604116687936680451651633876557304875398599510796344777801261265324574600127297048406182553418781870928396867791823578479363018791749253372156841427977597215818181541861033346853962881180896180250122332153767033970404459764630285349313544433932581852393499525451549410467155895321788485377234209952792236862203313478675311041675970631724300447743643303133043293228339520038990446180690052274463688188654201580236637193441584310888130802392876071851506971118163785194762409017246267826996328729787233839357516150956225342834455265349505499810618879544530982150439327643121592131167335754680868449476256412625972453573320420740573482088850223267561633750809060029021605303725702661390721999829896483627763504297932595180676497575582403153199028587427376630781120943073627774621549846131224506060631264224055792162077058221131710815155861117872349677654993876296369504388959641089958062472487736480508913439020354292719525411272041692680136622196460426606994750546870599446884441935589014873096202917572193076154219856954712038800792749820942583177033207316586063181532194677673296757057434876223848386840760099236011723753397709560690408609069270028118997332742486315467786929707463656969453755635705289179512794647718283807145630468978779723719762961850491542991127166886403325916018491584337470604840760555330456403159217200517136183918350510474300872689762991930372236535005283810800984014445613594634295837143074698148133209782197677830361014541564193313331660591923538011912777658466783968985687829304969572570228089356534124941526478158078684342991559696265318548934392289474234989793118853644074901227255109978095257609180100925720721827653366070555364070131929994349974886538877430423639897511022965603748730409257210088235334866683775406957284649436146253687009245989436652348355590029652424576840823243724199939712682480910384654574470554847943062741834416589293636207845920752514754571691875990633409287636730024297119815164371040437962786933727922817468951403284681888896335130420653454560825268625705210093331266137218445374565269829565326602477149637800112661481381613715968678552931117080299110032464578422187265804327297877433875449293022392973226297803531968038614382055819929587141453873551184845045936957951464293737284436905786409331356022535524909245519029996612110216043911376561307889358639096094135523819196836114405800126525356665090966457938674372731258865818364103812586183306955840559498040778080863565803262535401169420292394474466361836297720296166384890384263825212561616321023997522506369018320146660731722217549794929650045874680618754559675790123023641385623455809135116965740918441568005528269279068763291334809724922832078988651754683692057238258325555053415828560217819637898198159155721656583152680991875917873366467619289184301671755105404031106086776520828948145150517066961946455209343400337313870030194373691951738149281219132018946190623152491227706054613419503182793362939738129910155877918749096240445700129246036454710884509313020605403683593638193545715710053454433708863351630028682974921722052604324265662156841595609934751811769843839707129676517863243928226053524305717082766421043578403475730796228388257055862552358847928557572561361336432089053401875067490954309078482625857913468123772790341105153562092443007929202348231172207390102454767576192379666239849069338577986148021179897324476048897000878053936857036281915143692459848939383899046929606658513523313261387656483950385027177806927494956886957821677432662285748112798716056982480449019855955278337022696584230796912388705494005462512990496479372359480554057841927059590354232551085184348726822203493972573857992817395478113104078781553326389370257348539313042136161349109491269660689115773886282875065963735558537055808526152569704987806038926164516687760121143296257170017196379449164050024694415579950878278125872400963918883567549447538907232612382646982946035994465467807226928920549093737828901319595581069083754716446443265654532963259970333801213858787522251088047859980032903214411684387959869294111524890579076329190978542941478497436683092217372751850085725950517396255877947317848009283764265983531830727011230579634631177943039631178669365783592982780534139339506410521490388690479578384962433789600356954939600889888592738902692383424586968847760518817857705519253387383939648078405385840016816555099355409480046868420214680997332815923175436519264684705651672691216386811482510886747517312130571225273543457277239878075004682972742837156542763879852473300201659601391743782271970593996906465810520929980707048292947555208831883530021089403115349471222566406492561962607626822870111220659828338979767525308475285265633471632329102528631566558642243460773768894838923881408595421656009974228328351736600208131748681715156373684853446530385280539455704433237317839156851103073739029967224840465077434657402292480347108245398246319540803913219173470613544487272336406218454779621658733770302691369894327143716793387415585846414731014285257952870684090547837042709917426303753497491689782371042144596992444851716295200637783779066662332154329013960544174815078326059075164291925663229131842669400322572016640991707443024625649858377690877087247449991443815764851024300241264990332695631448099252424168502353769188961131862958552405189437166568601611124247217392101033441311562511173792431175341117530298056966264331811287368525604703164300893842424050974739420423523997171543775742210637181302438518490411593260122122572068007996979511432473566653022123207988519290781771487029278808732471132034531834292979294211193183398796097890480322915451615325638248659639484956224009064818742082806452493986837424715218961142336189402346803754064398058212934150157421881730002090625026340266996460175444377317250711532184351524488696788571976033476793139227705573949105572431578932789281638565553111199130930219980498079362554820278552885374513125934934704600866970711432801691870073192040704683367186364490061760629557570193772511759393646696005523904160560594741408073554846560168666848916276189620653027634457075235615321975684048508899828564429940229267533758557116167404506791266164678883510038812705597925883900953255673527207337384582817869926624053966674573778525034447761808200690054333783077321798450167123809526890002342198786142808884365838402902712317955181637326478736395633807936463600182907205379302005070637082143098415783166334552085930452673227773057854071030869478134768802599684633464069248070390115733186211238797294293846155153765298866174775619828868522321653862310535042136238695880585015145794290026071974882965737372876376709534307655049969320652975467136596687782651317862430915834431873451705902788520259810503956283116555979145199276845044631542165356999634531800762262502885022077017470502109469230431067962406038686826788639376140736592191226926141882428517311926693355334482479768180291711350221705533926078584126070421319529815966396005159959598307796026568317764370315095887832504376458482492695663884438052310186456069665504638839869454907281963314578123868221694457618295956632520007519547378871222803533981402869348704001081557787211550298001414579758647431272825905082747890159213458015539238468037262676956312591653867427929407088773993329883171571473401328019635447651785765759263466217325746738506666988941609240551404642767350650362909147987781303590191827215408017202583882815552495704741469162335780217479405321788152068008340976477580469030261131664656614069569834394681686796032234925099841672576743107386276621062201351058791454088818204431707551910823076614715024180789230306766244756852131215978345441916524708758974666832365994112561760957632407664232063754832525504451686970252043093519514624820151566892825160885765389360484351212068854499453353498179877646743176553290480214159810750722896375983700201839873038665630604605885312122920562857412255534803661922735385885868858926485907359950560350449013123339613909556635126261592635703443909840786839373389584979299519788675862378738271348273300421442043400397089039789224584086696591486975011950465479766643591350889702136732827298772614954870473254708490407712130009555696246653321543423218089117008527591570486920659618686886295815254283146450921859174823441837190161894747173460453612144330157399242371925034581878183910970366124245249940576197174760921739122669220719500648065934186500503199415154540380269190953711323619556647309500578981107519992496574674851563086362891309985813378012160376558750960030039298428484093571636932582666833059591072383955815999643768444146980381061191662472948787790729963737188299438633717441167962455266579560198182878007447143623647123992730440229045542069720600204975437250235071252423620363578402845784656962177715850828690198343630811003499326684946627432117557588259562130624895884366976980527474194289312142614053181859284932431936760221737394422060848034436598126299412055874306488056670740189884969996244935373489264147172204322285613655145294485020749220222906935448809308735128265397323395419689825342511576993652255550230892109301455341726805089218354529117389759550507284013363648395406461781603511257565491084588744460596632456345289290156014376122495510215772715518386493157614260409041575951824998904922234125603766049762482395978383890401976653372840513673348406250338813873292350879801380877091061182113900724646054637058853737259055436625921494207119708762602820371824405216092278147451191332103736657986252182774232301497042664020012650091702207302895210100420514718911672485631584991501211084273163316909175446763781164221410816786301157326073958573456809813267579460327054472425959163307288085346998225226530606819464197182527685603738811285810376233840548972457014830308237911640023463142756705428490076045726806825132389088865123593496006786992568431997945946445975144771847000213471792146232412203924221344475355339126959476728532021764753416686897277072266742504778568746318315114569839669762831226161985527504437819741057956348909468922069704609012144277216235563193184950467970755244809534340480033858845939646654397343656188663503236284739530580902221072012273548662451370800372670241040211534712373853737659401651459834505224869696807281568480349648403124874234674944183994098627815118443762377496558082496041390283146008033070193745072902108611250465972188393023321902393622943202265951819113990312081173975232215748214150259408962932596595175157452021889898172239990493075191777469459740191400153447705523960956902964021396179842193410139118861963012196479738058126365602220998797880462635415403541812094235988693371931427551130135570976377979641725307145098697691124992597395232745391953903987599800224365733269481016564886079438577377281281078766210067347134901741845042384710156212407735791504474408133242309291183214536013880521376809782599748528251158784322603451175879756886167136468587193215368435147110496162853853460635687742128252517037274304743376707066999918889813043529653997516945903637800899663542312712289736007399845912017622847979103489946981425135968642743723491914818312878741918558691666030261839151015973711042536507463802160721132879908800412853874497335724931965225260449206239053797336650596710511885237919035371538848269233908426641339641073298773234624606688027665973294588873629239966545780253300166136728749310621117618051704430421107830275643274126944976972802371560743562588557557319343805912113592611648191528069937949671658094897698063159676456945452236669770308215586122189655640113935718562925293168634076197835159230269728610588154629804658339911094993673216888599714446000380397357258565723650858904162598766479799206267325729222631873748354177628161413127936762467468277632593483453625070158895912775310714212761848049491193722344062770269338044566146269192171946315242142544204681010997716379476969920000846993185941106124755213833382651839493383929194471830018311573623675386123520180794276160954538425195190542737713569216036396672904683554854068464028778094506786569927383928239897755918584829447657683450964262013290113976627086199225128299960723768547879107558935480126875955699523436017482843319724794499520074715157272079641625857491730324632393370500232232128261785491682378326917366419944943586981366047049381095904462184437726854019392653543212109634774036132657992147452778111465942009811878320978855868890217062861771498717554652178716163679500688450176034713296526927986265884592348018183152097507895914145634089496090402179264406087499068750790556078371658093384859696534141274221457546059408501189810140058168671289778877231827236769087669801891417039591203523049152865680449468914898189727672182226009750174918781812863917829282017345137429379853052009996402589416769404318380827241344939101648998191423411721098700978572787619694879387877298064059736229959361145078068744938357832770698978799236569954739726808843110243887420061368956367840035005045096515483630160619658315068476815329190470886670596534660743401608721909761926604568794603848230691354120364288388271594201887465938439996271379129945391439706573227154131343844298668155108485190063561942917932654881541871054414030132295332221693483366548231809263687285264010725733235865216758819151520369151934087884135977723007079476938870356142929694924709770637094271087361150211531387166135157624119317955218080658394883245596325483113195983149723207805007951489569352536795906579580140566588817531150709958907974055861934519620346373677067962788362405103230646276208038204923770299434598016898995574006025939100495678731422843630327376732632096363157064655289065041656095743413255502579658813473060242205916319307252339868003780167730254801116514472018001971133339474494688591782938594504780091726959814674941650775123829347062543624624762663771016062850379390758529033803714151619903238031087507261648810423171988843416018686206829329160474948923461622959064700359628086464135405965638902399955510167808146296540907825533398010539023327772853435575302483173509936250536120770367959098470431844347108589195870422227925602980663258306927974196520781383449175248095958869753142909284714839747733185344777292068981958967188572310026262637513259235814779618683447369983898257630348082794749706004191158724928860658447657729733051768958802189939683756511456070597391799793720829516905004090155074994067482746795665160642135934748440576370312905764654915437932160375020863036213183737788979120820409666864703706158825119817633081122327569754826154765169648204202703122808429912862331891991543905307015962787518673792213574923635266437162308993131307789795958417027068883228723991129981030719546669959346283773111688639213565685983282720553757909956484400383092402864161940993606968536043941949343787037614487560297217640088652988321053956189644731959530027964037051291491969291437007785526849891630597188661496963176886065527179037058859117683665871700969008759172255220790975943715294675131635738020641827285786553624218151428436712694697522279365885303561428735717308622764807528719589728389349462834282070416450817382624968370959108048384269371994034319477839490303047584217608853300571342633568662124539099655100142263655147517839031268563333642278281903473383403594910612816612805014743450297873675279092025462841905482991422697833678945869954324615193747127116858396325103597961140794344448272422338437584285149284340048802455648855071048568668400558734187942614987936844884799329017230187219513634196641913235986547309555213707723948655928909021325204592244374069007111486682539937422096645168567331887177442338261223857439340135418921745782511706421347418418026465238223848186667075121264547267874036728462107320166570040182087843393721906432973251479250424012739480591717278677481750131575444268260098352621181489353814333111909197804972825934347040438354971712072627167085145471354084529471060599183772469537746627655026929801857058271743692930837670999622362906808896425608908561267801323635073110990984197947421037855173934335130036974642816103556423416747634754071920899448097021582320541515427191940749125917852296456454450344803229774957954443246083336645826331947894745095901439186995328015409072434552858118746012986154465184067389210949578957658369645434963811574580760395959671019432337324447772553134585510296862803121770446519887680208164873102902006877728299713312251098713038612125636953438115578926263641769336423372158392051581328346192211697766375673295172883092114421709551872134213623024658804662467591689111941657962415829826381244451670136513219881817366195543764149814147940828080175453277887779128681534859917161340355796999997419060103905801926446581624533113693861836804805902569481366114461599898324124910794104664584035058040587005251805086600615406429245350223944663744370042799012502625559436171950031483599250025543227310868169584544579307684967838560444740407243086343624470975231199063909084773214596229768235979144312462201404000186658966946120910153688304101159177579627836139060998569504371063840056222771041260952297903451275985339982627069797720484249107840016663595200442442711483981568034991985552172465283810716977031932653374988469739053183754272080150818453259873906951766647587747674812943288634188685323020539140417225133926245602174612838888639029951908814084259602919201722590615865839800517493002067792753352379526264894240003354358883104627144178100783133726516375604144397283280663931773526672135419936976737156606878857073104188112872711252336565523487050174463277376697840184732444651563357448794510742398771581595426315547938553573123605528732626179775691039390141516537804228851496354356202349336267741879036727919118462197394285733047889732109630326710976720867832334867127606264854583863146422643415595328518756966367108588480815951850586916864431422281115520260328785165556681754536585266188751502429880994727395556441951149257261818944775034624808284064551765217202238757908361823724027164847382808568530999879879260667860371905206292118119520709708694890457674036817795336867592513986374121504007941175364883525781558543942303712250753772716294429463242201199840139638421705423289631238164973252671213993448047671709011052517231313416820802417738166934485459060324170398726336443289468172847234154899554401451705241537728452925151458100500293521370609428352488640709213867474364285239102857661521617059036993448972270090785939957882970259661659309360266032845042465541758190548940968743855398590694085182324816999998099790107299629950884657030406719911956566950106829583055710084689812025845913795038015308979481095596035710879584144567198350662498412658564634283607666183204094090694589732784544357643967920146185540334088019360702063063897003680188657127395838665439283104244903607600351884312282739665478290305322842991010677699245051549247336849593288860640720280917104335804110564588043976705980563319454725876267756758264827192187824244505745996821539779446601355686450832990868198554939521921916491663184250507125345141653932481750838621175911154559364455569920868648530769313985184953935455978472963389590016163295547813182861737473188908473590643106028809844562540640824226796160680120161298011508577566402576030322356917415288054278896073155879959588047432802336898643015801512423699325644413590086254118542812488648470043350423381469238838056648236091718834521282360369616003771088446900904783374944181681827216999000218829827296899034255365870261835979246705957129934784003449845451834823930691276765021144167376071503057137332239466519666900092865127705421220612397143083802967663838515089302421584739858752558791091825629893721268663041902093231338887765335897842080463653325704706668063868614074270945016241908104220103820102243488743127649045147867032086659330995486008047296493277610983165502687111467052150586361562728069143107633994908850799187571901703158570779139000289517041471131760476501999118931714481668731285152833046488427674100642013129855648392926962955264235127595488747244455549365429387709394641481212280531188833700096734372770456350721959370747076464029064600096539636206159938896673764859822657699505659735633551080901879449413474908074922992573459836502337382704561424493981004972860751909649646137396265685023708078478145202179225837365434232789620675641601063968873861247884477572178256402685199164701117817445177184070753918882190408200555627934238751779060816657266075020913814091311305313256546962773232235749353723022526597203503210132041687788794234943401683876051218257232669163661725138852671331754242044295931733049792562875245333405029718774306671058226391729228951270796741129354741540165068094730814137051174200855725082293605442488315753103514005104798670815585531681698627518337065317333864286134540993231210891824091770179074320382271047264499533809986406965243990395445400760998361056962033588525583648741190380572865554847749430267991765358662864985300616657379793801633238460417169741080117624139734082083248009271106989353261995661218836912514461641160245187678719428191796253161784638316365862994079935282261934018494785893330102786334626991695373592139269200566828797021009014253044652009286797956997812775263817633298618833559876179760399607125468161370020729915467985809352799051483928849082813988251854405428464678311735341429858479357222161821007224584080632063331838460551384829990138685945493106627438442608014829196639635760164063550895864662595852708336510463146336656212491326401663067132884434600119922078474741698174106992811069961370089953697744987274808605969985975385808645000620397871348010255294545351568620608354072711856147921168583177570896794269673779897427855794655538650231528639413539468758621658262507447835374251941181037844822285696891079538077403895410612584087839403452290114375011190160610608731134509275927863634856083491418526796252746019375069831770332402296300029085143799049576093021243770856929639117890987025720895808212952020595749720127231120103520342836624784332150309863890474048360141299128790866673072324854459840049743030871523073593854469530651245922878960934715945733821590727520575278766715851947254632088877881168769148916892171861997238025058675477885682840021661380265501132319026968995657940270200878312092940882305918187988752061118581564168278078328824028596502720265110452365471884268089415780867284666462771578009741559197388136117829785305316869830969740658760178182356907044646695911647021859396486556892281062809579641580600877482944618379334523552223178432865436326564035372708743771171636158006003577539382913008069354763598088947700769635663338356741581549683315967000193338700957548181806210344073226145644712959645087595593331942944625709123886688227449238363694256826699093049600734414398588181905256047267958368855942438652693818921640635645154144040201011739848849016653417087341827186870711485558532275923129139756065370203685578533666831554301065205599492782502446560509485918778218684663641066788651566671257616589106477131100952221838757399431234905059387598584252601942866100078904886648380367242062489992260654988690372672854359224733684766847878999653060701302720443900134247881289286590073791681444316872922825458387306179459229615214401653963113524587567322598401953498233129565206249305552158097361388198440991884122170547723252582681951716778793222756910433460109013549750118108466580497905505383441548799715450690960515238652995600308463286567668284273193212598702109214788107444489276267652211337175712653755124456614803697413895546306552718300000095992467743931963382226201734497995254573944570627537880785356541842107349342857764979866308987555706661966715521867568799924798863580051335341512018788205000734231037284716805536362069850650286537550143965984001408565905707275810851978176106244011415036417621852713672735734935884801837016267462462205762706559623922786291350421836427828952029744959636807830500686048262593517470284527344855802498877399756067946078899417839697135162214859026547505503781153616306347158963506269715650366635037899071281780955709659843347702542090306903440456237998262849770676422435054162648287995104010232871651667619768058989525955960734269957192100217136321129963083062822265300367805041206192062002904651642961757785397566784261674971612966900554722416562649387407496129432669750186143478772488196855740049806937530443091713382852856770874681762007464744687886067775906965989954635108772750151295165066588545005687513572210393858444182921375390573655144670675529568805052498363888397647995001221033413063347761283608512174269970138288340253842836124581813261065787118526519003381114956258553416251584374991183093076894940811328135289815611578378454927852954739458531310365177336084024681180980919387941930832756626290384763162416762828099411966503396273003925557888072801079347703039835540511929291032768309744020626843130137919338117831762606025888785379240028866683055073572332475388885964472618408464882462895927442361266856247779293659572526807863417329995637208430259917256490734216036077406942247884153846318258661214214866739877434768635274563979159636885563909544708330406945757042098165696970661476980172602846044402371054626962928606526408108295641980879321513567975535575140349598310474388951922447111643360184228067187698382128708029456906699021626444363500097841970440416008043039678669360978507155164336440440694594542814153814027950144160822616058912144824612042569399615277900491998540684087227080238912326696157574214704359021613049631711911907811095533738583121722604420098693942773119951931982086168538700826813850714190401653269210960878999408260289407472320982802087839260487391664790025764439548473941285112053714456346101597755669654885532445143321157224465421062137886164255936271318833921190643045548377410226543924933206220573338843305392103098299939485663150135649137148795792817129261033208052987436330346220926380424402677453736279134579679722139369683820858824754802830281426234504768267296439002478793205429139992484227919294835936150376800784698895088627803712215966988886766934381087758439798553598279695707409036930904946640107246082116179531528866699785698125867310207805053491058924152658962243190824443710145273993184381940703484850657425582510946130482210256119399357380534554188497010673624633929829948793657200934280098658180888874301753842144283893059736881222479128837052583117843480211311687543904581003317417756834812748326140230193984429080708694503918114403132140873993104131149941894702730513247057409692930671633324755590690457411447003382098888894969669973509658510675815729437172958517169677601322917424257658438339864336437236193742228256690986307009009409814941222812389772278003117374178362826276964580163680633163040265988062403006497784387689964792298374777486732289679503516224656106788602014348373340172987421145273847741678677605109467241333637557536005675032547938289685221111579185500458927511597643141826160863638581506936177441577646459468670045576772917898819772434763431010090550883367870949262837017090862746313188053664088325130143547425573071635015095897475959505599230858968938976499856039173343310761107806440681483883456918856692480668500569970839937337314936147091234793794287570903116585488569725790990353285684466144460279002238965570772750669831034509680827633094088686202230406525295220730283768688321619056713970129628433013621122688350967569753194390370906316526490342958938620993143832212305334999275208345867050669568220205466863740024968259266808951281370129785817752402562821265037451816271720366054129603789295257965888830309598931951493898460876475120171017736484243044332882646118836735858440828291956602856643559668978785925655602550663331520736698536744564213223277501705053899526254358926070635347881433857986221413984773075042199972084150515279730348417983175155308961840909161573634901588676349400406145287005582194076188734388376219775237613308688668298419279503878555470228183772805956365534290080973340563862012412577764612647999916190750210698810143932556110866285658344328025200217597866232725610051297207226384172872699551157099225109177881662655040474161851529905704877866438913940454163112068672114531247363352329757761756926339813587582374905455692477288901090018555974841037860725901931269913344053082882694778817633558277571986213154826025091184428899441674391539188015371525431052724129324955393602412811128920398338262825252578394096369363366083443478111229081609428879146918160372417165420886975028713426775862525404389196304198969194561157507764845012469891984364082776176603252358377618523663276590216169012337527283232751744911807388213986607326315164797833668292246842855375755114679283552833671121068597596586692613712277440858332520358300030324250382076734227289262967063159815326952803078613848164415130236578417794213013105970163819245565214592433537646828765741459995877328006787816803901111598708231652015232390543053774830598313393562089228225806154245526718540098057046655324728094907345608649724308431587818165319703680087558073000520995291845801635085576110800147698450051379011828975099503293857852018196789112979836119559249253937301395969229036593480311208992885861748946046945984998320973387706568977072634291812212292430915641447346456190599979522190819188899644154795835624936979839880629720624432567914994119781116773377712018953097520005634636632209202721191904315599785447177891156216807622564262744065371436646636481152504225863501748530261192092228717717063146513866114319573436113247108856343110791401724856483073867490763346097951112534370610590646572812963534737668559901189468882075500385871550170945882762388779326809328265966727731556731892744708308995614409027186513355888803026515188072855147155150017498712634700801645289546005251965677866971084881976338189654237855352914367062887405497260642099114570886482232622248331452690823693645696672745929409627588269983760116457903790411929895604472557595543059980195238675219659126585233596409878555367964446872772259169098767771848243360944531793049039843784125451865596389589167329355980071179049408996171992948762709620404966083844866962412427825317754354332363651305895768243206488899653560411406398104956156205543587516035992290915581615213577928948059937317306918623612388546952732750983749331281917328634581955687899968658131359651709083503334527981189206427725984099208994147746530127775264559391528962574349610228359935811766267738172694453082129624692276817569778723317938112702496383146961985557691621528221058662850939437418282915390494308040741860750851000237552301845929395300708272450741016154824366974237111797781423088880703612126290700116613087435343891066022349387199049913345115354438044780105468002897917908693673612730526127649132094849195417339620406137169181270177568886588618666643288875197675687140872553729546282628388325749958011105253424402139610542949311395129560675458091614248772054915723789445755413862631134484895208120025672644452656478814796384394071069336321778507568345615125233381137545927265461038758571354446083026353516611994563664682031807052972057529726579609754976381786868464124085654909934881335599118708097172729104822086424163046394626539975181785939465499655084208710138836064548172607398408197402171712836934335902343832041976597727506537168184698168301267602477690642277148075601050080886086192399227008908308436645120718611678383647067318769473085117578816157210099406764827570245838188452215888841233945274498591810464641404910839559485390270175090056858800296493718862793754073095134487320345585271508930850258195328604713403135144385648610145746145524935674329157413957438457741065909179573783630779478392466641455820133652427067926335109525402916335146957810248199535984094846416634892015942647101490777864647226661951322471727112545056397243034059615643230426020538228896188000934531521481287707467690998837309163401960681311968210650297362862041696548690711858598748406138668338770870192561439159338610791014469219654542955290658456410198682602388563238947887394030900981624763245257224448134250679549735847672097907217541824291982776399525317090537617055269864105394639336705629839271670331410975847187532983790916304013649017170684882350389918329269533429684416908569156748497623558330639825955927767110070839174343255176282439683469244858443893185311829587752193593921275666480872680555525035498468088073296870722310425136610397419264730051558604998467030670733397373025328919358742937183798607177096013150613413543269341187034839830956435502480905028589293806382436635569077779857727329077109368046439326789710478218830479070677174831453076298193912543208899644580835145295978134963893288615883246000861467981346415117533123166102268858702760443534594270070820775684360922915565417812687493346493527099752088852569990390082170035346224039148667258445071319293472979320229216316182032873225564090523388896407644099008799045433396610358600050628542589170920362593303985256597717529447512914128241187611308445960549162278012489556716720184157542838068007433516921943340458438714369529587588526746632065666018139898299683811651304248878195918394257426119301384432554782833202909852983766568139572423753877300641301635898395087017029942765502270592381368146363208406696057879154665763302939261883487169598406465743009256392752546950255673195409656954038180468669461878384407680411412104695862218222137551313798492924312915332602677350640287356699964177025320108867937521224013095837494467866702698503569572891677503088893559119532387640417877286354087051631786190456525798121023310517296364991405729787518399726420075690368285057603494450178403387507882849810427093394422504559362533257920427796775478676659381324603130153810823912138906553879839910990332681042448869741756432436718959925979882903082506896496470916612411201264850801070464625162354729447878679749220067271962124099498929991837754024555377161588640212841697348049921863473013928619760988270462544282652188430527118156624712485880619864855187562061912776431441862514783353107140214811475084700387244020789638076896885366490302140350434638824643814903938467151196921333614506047753623356555518562189256638877281201013523084689332753642396149228825893411996407491375768488666495118919325737214917028191202738203876843991569791969576099882881167807846134615543315770423478190623651833917053724842564325516812656229983263778735295869087160385828141657924889530586929976415849069127734319124623013622029658815947258175372694246072055436132699721242966198842435477116627529118058825931025514755312829851691292528015862199954344807354446314380531944539186754643528455373077820181314162468426802627496978667943808518397406340797228193277932732957894603581317516439714595897724652819302227602694983700615963143060416559575531440007639517028123791038739778723303135426297941813124729136602248766960286729101300877116924321031377011296477959352997872763944424955034317453075538419436665686753415889563727001354106130814819688946674190358493889828058852211244563680769754005091539783591324110885498432700118972592147809242478047093581485063863380548446257954139665869668335029758440873633406533218719543124321344869280611683875196129509253701012463543603083167619723084453116516227208075898796529938034188719903866725431258397203242793781681348755487480380580058219115138942899782109783092969175700840752087973694912644226752863386983591352297613716923834141132692552008910480064538212010002269116291850669767464666416023523732595587397591594646289243943385784022007694867473068751013823775774953017414709313635706459872372482845295930355229982007865500775851480059761990851721402171512222507163019715053874297705719712748954738934293970416282850148719822040028313733652176993106972418777653304017572247534495760813092648156399655087052724527028992491621227081865537684959684749022947202011817239793779108144694363840083055396207541305036347745870959117842749843849746045035002444916720461397635286938691710924149101794335827469570610410992518579780741526510668813368196453777756764411775891636563629211089201539112629129513573424322351105031232543575583202399080147863982809750803138059959886359103052388633035673539926651277667701032841720193686315921887147344079514115677019576908795506049273461796879504765514591583479882201701771508908045961066617498103006006397258338990251622499002200220459505002276840562289043002430617293515583687789856421776583227947583103740058994814697567856081044998460203126528460736287121455522798377348783313420142496637800067102576510702595488294114557955004412604667610380515930083183839450261674102475189587511117053829001551186749743699805284853131095473609348810152815136906365823354059670515686017638405509640771678702216886506148212303610560987614832902727397989614276007808474589502640914025078891633110606572028366101638120902715037284427992838486270995203555725252522743339757515829429351868718608301262448087333612836855984635136847127934731326131279620184489737872625685686760301829773509274589750593572268774012179204618665043804115547138910036265061687255833829832311743857175820792544991240518142806797913602971206931165085340885394989891166771634705311454947956830895055439329468279845206324723198665615947245478231734347324229535431992684178176403347049896076836667685534846789086177803870778032232062512313477665978801826258251479603406633130447112581167369712550842605161772186371363519413215138655585888430254608997328046164783444820900546687814788987619270964365297714783679974141361950358764614710474415350134829418011099023721469889141475738263248801192713183844641975882748883298850399347168249614225909966891641591812486354469337443221642386146366677790018901442894649794786032248987057347590023522062858537910333442907119770460158361310361047465392201812379429743786001524560382307939832164489371791230883058804995131263959351620841051938109665642381603996247483519778866887781991692574711918292510913713180518577681973360343656526584662235764496391186676316834177132745342536308934914214703372522102631449314577001029126963123812693426343262349013146131004048244416876181513387712135566362555460085145043145710267517725337808956004956013040698527889010589542291167855677684649453938112634153252139134666315294858068040704156403473370992719386163900732925928837588505615211797622545278599386009382308468201826581136617720076338593235843672646945590901367619448831246439295542622288946263766554829117045782385864415851159918387646940705491419817111031901924474959508497149001851553407837613660250608633600918664822121679498839282170882529132610981816535885192805802334973707746888913106777198867892698767025937555823519123069854773267166579061240624669973061518695071388087526365430137850331124199329444734841389839837403218311369827422790075533446439527733324320260024091184034779786409504624177795281377431822654113665524390363153768344637703875385517160563649108952093059044095069430934563976528255638888456180450891002738491555030928019087958762863800052392469927342730477509661986796377959664203361202407755046402799996860394348608090551467024243355240683277940890163379907143061758591601570277706598227331846310088014157708024115657307494146563344135964763398467316218029596348165749190850214295502108195003612293530607705133331374376656584748489662913977456640081211656301725707839548082135999367446779126168851749796352600556541470237714919915137049517344545086390755713300530071018235203870801664883378902311341781520496044861485466848928152762064798087451458601653143239728811563522442871257789821225132069978595526743416219597868841791055979383682284965520531194006597566193454024112503592624321931543103499259561656453031293937689010081374782003651234402773720742477971259064125656604967102697807578479673910488173440236509719452520286924965370649610112766173497650567498581005199040489485600149688694188567494067197743053288263317923345260199373704642042464561353967783621313936742723079244739762486986302912604961872303247746389714049919073847507214850001082535859180011893166263558031415515777947670408434693636008753959892272862605009357681715693594510058487665532911013951391508882422402088544951773024509029780876863138392387535873673715808018004498477295933478509082509573946152795135831395715044220912960469853714851472796066311889969738813137938223186425007446783803408200285013701609739601386390504735027428541813896129195593779534493885039227501693292299672049830915922153455614480446901411868329434329118067926045250411599610994409702311449183830087648111461021292305229574259851076615173374729006325976233090967538454656952498298306984819173819681617681552820652369795859869692738497810745197613456581723771597604850777087978719156258630430839379496019013076431798560770947149563971122863698251946383412503836873523142943442724935262100791130794091439974347376288134715074876532562263152269503421986581256963773236187335629674259690308745479301599551655029689829731828042995426214504954988122410655739496497211216982588433477414187271676782389198207612270709278975830234190886552338341037047376686021116526522177667594865417793230197223705775554686852313494031428712601112550424068279005057197657770159650400389244248279059359190551287004437144895522139293425880135746285537785876408729179539902474136203158698384624503303898498869641319072772764480811801949951567176822758550865629740329960805779172712990857742452271722665938529035484285313237531927982785334012101049248578169842413792672824900863321839146991864668327290357550923823407086801351615128911912966378089237668705904162829034957002049542617656767518617292075358794314057094619102577609332684166651572609347849853139152794631206783275615780440063186885978093835682895217524716785027937345437783754702599861718508929667081812272132953406666636730814076119162991569611497786954541048095835713144282579917984148453177635298691244091061879680463298491857754805876214734402266883620978125788570144674171635615744442948894479900502388978618642837676541330133002562606041416992204322746811809205889713549531167289311765534726275049965303514340782652894961204092668456793941570258839685267717027071297954904066909897576788167480331023560559830401726249578962489342111854164091517955386219698670506525876504503130819409577062080605092405148422570112940393178908327780370418385908472042298352915603990518558608693460446882646674515244545513733554563188175292780333106574300458684971706880515057061983527362861665532448984005082032306403562190418644883487353297379366024373138839462635683742629427913463543247063876295128759708707110304435539495432810260122817306240171241079387712014584895684738639489105773492127282977206472498659018278903415554064462430862224158198710520015888377064074053366422735943863826810000966832233064437200345027766607209875130685204478547483295720466404095733009163036591120768063348012766355197094618183623339769462369544472265501007254229989823863093389855165254198966568535555273650244493571822453865795610512089489110397704330346429871404134794691905074710919365791263890080087210501204785157107892616310823593184157783727170181879727167847576256868568985122073875434002009609179252053487415329209529186150129493609115235642621861862594271920273299610807402601598759729566372951003633586028264120846047065612681236378048702631081826943969095712736978958418049488013831389985156884554299247302376010216025631619401282838633973002385149611682860609687143294413418896364989264608286794290727946029091673304253132192288177560772187364408987784849201096678950523930909865667919950860329983405633591811662537587708341025171835659664185509175459728630078233257273950628275604636464331730219344088988954535610344522166531013644222813106862453926103227036584220380612015866482902939107179472501464313531426554016960718065746243234500433538238773116909943258337269472185886113194608460086237197917793617550735693649620614844210924380239842150502076384099709905283958914755801586683325110935767746240994329403867484873571593459284476320234761526597584133451986168910814013540478678589771658276512260553884489732710200748126117764274106889152917883099384806638067140636265310701815953918104952681856893875705145762358732870396952576775646626123351727972205367071725320499611474403813127606351922238864227120513246646300029482693688993744568386024399928554799798389774567208664138505604205918976702810000780118397499825065890341246517994534644696793159140426525145844989948432422555732419400737557041785232768428682265985462110604228226905783966927589111978225420659625409424763966090091391775752811856933395932750784423400821090219735091987117862642833945256653231354415307495959938153298151772717880407565657277480448392962202693936043152520428112502367800058220652324287097301234865712362344276119224458474671920731368446773802934971232882507377274139326390647444487078661989997533576308562678235790205720121545053321180141115598831478805118236368988379539115239140854197447295153669877942032438842727930467779545555692149651653354985620504204907428905395651045657859072235359432821190038302628927089416107511775056690246293060898307898196869337196959430119103431163070623526356479492268296864272626753210199160182358849892831490249348191896672570160378978256244626517814780687791202965076967423838745854746961304682435442343630125532579053847905915393547215635483853090879480101442244396042543018515583588910312012529814471880279293837350734664418664287224655730522547923513878987244748826150235454628943099957252813115550820840988310060598688802268176102212457789935382603579722438872893801961209968287540137370186847309681645970279314255307010027646388474703706486589153747815942203820290735438568343828389135709909786328441752959340486374897840153219483147858270321561510744756554327448041677419431571214741092507788373778101588538285204689815228848268265917575004414110283208959340082726195271688426708388879971021927138711379131272071925210642752561610867259468464806593423076779933559096942578101552668442716856433379974266386246844209761087296659288217046903417715823540715708692594599434720713242234603718479948340161252922112236328111503210334497584032525951428411946740737657726774037516009956763924683403474122319752176551037923404094723626163088620377827053845973062426342860012350641774122283767241599901313195253517765288182387836888843925851333698350821640952846974589060173655742601546592846908572344687896695731957196958502963829537481988680053564425854695369386971427754502440069721879296003695592119062910380247409146885374923959489577549318882160552763682183135233709762515510671217608556286499435987308775682922944255419220550425623355123399301779202354970915040068397502659799930381672173586704775899602406624842223434600355481968249108982944073851587340522967011659892678684856420581196275154171266195332877657728637090599683094936966903993213217836102044026540929678318764101194141949613625542108302456879066891208950441222560995659816195297228733216931168237267988380504786171370679203087110927717760721240747273077589877908603081804001150792003074843765461036121390977064094053183883019296870311420740717796030037792381674726664873529197650302486951095668613949613453975527103987072763864456173464935944631339279661978713936843611641742663277058677061440732069587198528463446654865456051040033660014103784443515332714894728647839304943370333091295253123452072510801631950391588936704600608382054009717091388399654158112744644626124298761098285096712453533803130310459395329528388518152576610481948209588366070260502907311885982880671130971518468960290497469949003824743581189076743240643138160530220771419415726999833252270098003161901858565955211008944681124274573413131098533989773605615582857283368171510865370020284545002518868535373159857270882586789244482007471472413858488860950137184213047557822063006693068660554513835941321922083722741719511370872719031611870118664410336646104184083064658553534114358970804935938595346071937391573966925271080232917543701652116069637579340102005113362817292159711946609847630027869898773013052665734626967801270631898308285922915596970193320687310426905493278795934230806294602423370463438759342403142033128042920353432635217104466744773498397694307126081627725179485148504240031353715190568838544382879090808606684386855722354049907786123915948462354208784946918662089365015852536984410375869471789604003016559496106771045442548643178254309125469128593090572615846762048356474880627141990696853629585497162801683936135990203307002379929921689867761970321355988234194501823297171465040032288523902280694982798633453699892422372873150276021874393202210412654868205641319589914407179319093183460235248120792822685416252662312007503920984572349868109602798113241577397158392663065191118466772798886965193818075032605683717378911615400673234655324126878820519510861511675419428824352060571331027761791656506781607751395026052306849806382129595008695251715687858855472231235890027254468481233007173493570749034263594023981479342893426158521901601164524108774411325458554453753749065105653972518647140225639695307896119018595434772218784202445039811379787408135468304141008420049050285523954811309453975677418469805769129727125644604992455307527995737737526908624676003979161774125047409238845389476184417347846269346014110595054281746634578262563073120273081958865688405177937774551114333799575899307373868041423323687447709378153094876536530629611314685540811549666724526967634343590689128504668352540409049360915997456268440862588645426712120786232326366586863327777347080527085300420170294699138157238291633587453049233992173168605819158859897617366987829363216891360468236971575865553233156685885898463688505497263954565594426530466379256163743128362064429322808361888592492132667275974426409903108206491453832101324968729745001177826200515117116281125189059080585374086290534780469606852504561118312799801464270344444798280185224007264262139848909207271146119525172613840673764009770971968799120438039065542806355849993236450517441827688877664164296393095551691019953754024070279023471723232282635698011592450300952354786700376080323523546349422031135729519636148761175445328595107078024504182593565131768766804456576119072154686576030510729116331093251055982561141464837184656012433409897725609406572733375156591829178960240598616137499078251747225990810185582282169056184001081938523292581042336770076905632123073728242368546110947428063911600564959935198917725753178077272545682554918578363113454586702805696909674445184525059878225382708704574426797742396776061971613975550284528488137322682585683649329055529261994162895612780397862363204249454480992322460746839954755425487750910749735494415082362017020121143829098539532224075175049176844456736088612282799865543828025711638378588514359216150677574190605507458570133795847257179798024289743782706803196044583924687156806450102925911393072644918109374009652003729306451918997307760608597956634779009767205887103336384979479493561736540558178647409999155191461945924242518352904123964329711472092028579664809126745100010573257140786845141323898572617333855412709253301116053322251594228341538896765401361126600510518477768432345588462590414738401700943948834762436648748530072839293411769528013341935412958888228717974209931970490461204891624130680046931394832192055007246026527836036163079322335050604456449545291887002893452862765144753954046634596172478592586840691021033140904672087862461826642358704584281902895882362011159889235277895979342048144629316851302498200802328719475925418327965188851567254750280388302564322605467856054984532382470975501529298025743073276308628756378127568176155532113543844591937547817025080379671690446590333115209410796435596839347675473204373302728185533372763520571640928611487185554035649474802813019670641663625706508340630410209820749457146773128963611974051496810800467750064267950911010105064829836979631678411251266614682626178806127984668192246147322674652140548548219024936745313385729645831237293005220873429231512883069232902542048551570182832561961946106953236174408035026570532451831315115945222962663942031447052591108754402376754834479101533019400085759962267395091301010645091486013159581461308447514286161238976864302999087760618294025491578454012989066750298748674083086818719859931591727192450816984638816029977505010724635067920521702952966955384135409674702897538644731660228057073872880804124901915110165788038279464586326062004530359477405682458325971440961494660161886684957935692931616772468002992595671299621489552781212796695517206107831446022402448181823519557752236524711168083703359208977722157219703728653238048567040632311842076404753422013488549555216541789680388109532896628067106726694140482778254771889311591385978483856265824426239665763075826647522746723465735865729960166593185324862998080011186899468061876639889452734692271594852683601488399841167527661884229915408047784606471450196125990759399753580016874535638340462795346215737503537088023992147480912539305323982791216007014936198220232819930366150168416928945784793657339926449044970688215307118107337418972713240148222520616335324352614702035847378260025428248267131708408001772848552465796413603641210818458097560813470542849288045197924995616234436226496153184267348760683292871996708779328039684762512262344421110788764585750846103371264688109364336678408159392515383713237927123599628668941991215579932244264513801916321593458163432864317894832671802923896145538143765483378509441744761937222354792664281194169345277356368373112304761879193813567069592019749846593392541107772603736727707047064167902700199441974650366924966471314542766913813515288763120258073228395462198320978853861469781804812531016150254581330570266122578204703097920975638326754916076453951287931867238508836013720629162557701581247495808898897941808321527381235931049736064581848578873023687405815763399595788093577722361896451140243325195214355191055977774390079737361995206433968963081942138030820665305084668608857232050182194430686741653202510101528889048134336451940203214230857289013566218490423298524796800124719585755368483369334258151808314147429051884988411434574649849801256224581888522353717357938592620695640877062657122503431516675657053058845643609634971106570422403660237801056924983108194948002242651456431193207936097874196807474467934279557481217798606644075207303351174193367525215688050821839026365383802018582937795865578323108321587716405664866051351874296381414853388966272924181179570230756250869730441161423377991824771928836645243018646804398139454430439887949967122401902067835599860622581970177610338030590315201512993798625961906617355339782578495231539794264360547478255591740433660242342189341570351480065807592110521307790124025881575487497939098927398874786056014372397835494607360046798819809576416110732010902999776759521703369185662900143298091818168099482459263302757115828610239127643186083401787973830653710238705757944343482414916078385089115493161542720668255174374481766886616615348759805222683283393325361308948763249622413696515040117653764033741003943214078319871063415840692453510179204819245573701413061491791499393329857179551263494499124596564251371786367140802183221574882537085603035781003230843772617685678325779137148416529302545908477923235930371668221289918603522695740338235637436540997562973443961304495968934503158893342343194567873211268366179982328846917799375705947474513550448567235874750866726278718226778012375244403270105793035937813182706972257913599163338317116239986606599561672181416355621645616474224003919117156564080773819841335639572972475091737805196145427102343870848376579353032226578434981246170114151481880256372144112467838709124665622694375836522098412192693304600293926626337420600622584319393789137638152742076942887038715455338047897621100236835564456798645697196934372932070160775117596667055693580188298992692480066593057822995976212713071958550506305033687040610081627204165122549720333264592794235137243945527838604176260557105166380056475452920439439138372054350340910269533491647679866696948578095516485142091374892333463083336447665163913419362645098576087691903139325028955018828206103814330569321490309234890682317317898312844122187845466651004800910214455560347342330619060228404068444151657207291089128685330516242911118211528462207127730433017587915380591363493136708507922867806571106714097825161942085639680437504995003344017349840499878067380879615988565354364885579023971352375503116846694081883795375434673507428435558991206427629687891191759517576437907630061796778102858188387232490858228285896659773982236145002829774916163636800870460295224674231345011863404933609771656447500901952795592409407357030662586530705798217522239254517825823702106852204337522345654980972696507367882355890279404045790424069368463273694808571823361884701348263959513529073394208935254267762041476228450434611498586436581905867152860681509758133941380072769568086333801022716897672020936052600196937052191177220408463427356305604524010662865306719430596928353981479183131700829985073899308545411921849372592670947607945836249086305310064500312335114394248379227299822077992912954763125788741366188616665638407777471616400199462153922533733590047469289927244534741072788785404519159990902309785665189585177333200344665037972757010369757795690246574295441881097980034630189587032619766614993910182746915621539339155797507935542130827215381939240064438631238540092754616617158142414961972653035908656160207356655407504200300931001525927031565817664346176413976583354832739441375890945279476449493038842813408030659874395920808543958226798931429982938938594452523722835100355129437460791790618385642080027508125826014328629706064231193700971087764881121597827603810971175419377832413821128257055364474526030267527692873178058293780809011687936903242847080175268786002630264824021833704846250213014943828242101171815048842044218007089221070205654619823545527500532820553075490004169985624593104398432324340324996097320440071813588020962620671689832519220975404282747938595961472895617047872609492151350985701281776018661868915986331590848406841986840015148398537361030103199023240019569968981415976194720526369705376112902413938230840403271928722011799811269732939679228662627386338548050249917259602734751118702839294348442073062394476637533144169875920086436986233691200394430708342269459862129113944216894793166382919326479239263949601656077659424234494266343148118609454365790671489658974833888087868911012381649567617794390315402437599788856240414582882419438312547591619658880178422856267551930072576192657467975534125499116538610641182657158922630418664547686387592201279292263477672335399523034089592044396977911964470648638676127790183628121991548999328108926550044271511148391548467106247355057304977851183117449699940899313751033457349122365745081609720714193628225306443443736997740333858723008202396771805194096728330542426327021283649617029866091434439015493783838499134739278707627843380531104624288033812407063851874964556732534954197284966811761128868605272825621293137188429533852692708940093217128996819963946947926958910900799553393175999201667815684877035618597689596903063643007249851534805535065851038018188656556221612768260154914369027407413159816121781371775017696634324533206403336674302741731432497922827056628645764723670517518563776287979000530114318245799830917538937543769338649856306731027456734733052434863139718320120952674267747702697515277319284826001793338796907948488972011506426011543238825764155288771192873539999287314092796029062542502188683654326621453529703130371140097155818534838618093501443881010210620269073427839913552029048037290160227511546716955381384403573425295726715154187632508878849574615291260378166823105423121159366983812048249697168299623426698660034771285998029390347010172159202868276537458912708692975819631879324574182631609104320264525649688849962136258897040808399400676841656857993102188361377484110587988833410291185227666379272881340059052213286237735642001089395346716532241334636075042761000964589286927914603330842454635178036985843530902296660648076357039221754217850155466520359029936355804660234545640724530502409019536327662395536401084235063488436162449724077899746358705265308321015664696747280351697231423884452836067624591190001779762193220526753991892158665077938132142200051694044084195832288653599595169816668722617951394249346515414383099185223207853053810049987602472967807756493559738704095635704633612629029377898489127142963525099307806787591216959838833068080918325099292543976668935653600103549620064308855977758633973775674793912859302560997589040717375973403962255385143339565099744283163079504615910506255650900205496748774148959391127165149381550288893538862701208034671169926017092367307706288328516157857736638609168326193588628110757976545577544796397504795775249619951426308555307849461540695646897438889167210712478747416124981840422409169566117713582149834001867827144585494281938299802180292061810533883441612098337888666262299309959930695655001287868773756346919390060275947959529535396157781353756176091530462590684885268730013306601343003834183883289959800388049567603403286138517172441007441788948346358754785736959338815148535921311301812979318177648024239321917595957354610573046974125947707757033106809881731736386827118162857018593160177924697037893285591270049766372653805340946856306502639733620597876744804144614317880921263824629750506727755475098452020225682360984815824456171509561066678355601222413947216182515380867135059077038967542852330424997228289248011418615304904815886446724082464321739708041908142420891216948234153176913419134661740390492160922659309524284965338926542582211827488395993827001752809972727599597242720769565551936683347432224742662151995290163050335047883592711853535933756884470050616242670841496349158321446640744741306453334337111837471048502876219052002833998188940410001187137614005847743569463233138084541901824834412179693915794336129585321046857342995227491236584118363562173655158345991526529583833531362940485898516245449805939163088232608475465999125705144573912115869420343264513709888590344441333105177274350459372979890617244043978479720113141411354393093332609923220417919570359239806041382393622962516031784490002089816826972952872965660341016051229865932688145359675871892027416550263041171778807570499912641246070562117906412213179463818878922298302153084984865656794365121338988538516258562043673208687400169811750402167494706328803134699306875912783907651650683130911454301055534059379778492390211565188773404547554548770966312186229457968153394816127465857755261570159244515761107505455992567591342287811799112670065857882018317515942958642186479254384759984825526374948059643601826930167441680223917976985292961797289925331851490396177269449040209556081990889070540675544574717217423614443058332694694896373253880197352831162948707233346147836714956064173258802721759817491566380044086639148720881867860824655048497674605168711091309899291936893339061217855166168152731406481044979392372792003132203392442643625442510542255662345332919282957500731395032444404368953437925173836239414720232767879882804449874400337478582694697927768844186612811437373487832242272132881329199430064473959989385168986236920568463145762826539022743981111157906286238809025858447965634215428639987538461751707761822595773071124500585031428915029652380365929392313003524331711858020020404462582136068131906502304764677871767473956649908386861622150336361687459468068499485966224265729194703555445092070114986486666425104549260751458667806508567613740630508888722872041009394639224000911555882305945563760430950648565029968572940047958862272144011660312466223324540049866374782478987961268172458543917456589810760343063778708785979512762353322270408168227687921729503111731152147981768543846515943782688762312207584510263534639415432320526065658817067060347054245664748918652685911608327803694324045122085423809306251075882423110997582426914127179575510089358660113010562786725098857746828145773066474990093805096328950165456172353024248312811700331609005450865716237044701415379200142375024955508899267076273534453538203400923538110874553045030913326302267881965445921603942893648303933307499945598634154312662574613366622737836427484939840907300111455887822639755452040378579712755963217048134359690935054399831341305494229589923537753026828599106063106692418187840244009101423643583230136269188708737597021095284828318302396663686896197929958411205903751731579102998138748956134532175174870102349281115014607599547490663641561958579432316187923056569002161443486556250244118503578785044809593511397434508009710218403351718647422993396171412078285788788607181063566490435202023521063148914824869122822107480694046385506546069560282340620694432344069764073671186992243054692823082762405726733262978604227898036758950461699069743344176041430979707154039318541071025277438019791483335554514944710461835020073762310165883411125266744752990907623237658720226853657838634531484853468082822892831962154600052865586461096132488847759656388713251978429359165854587218833956665883737311797876963755684272296249411701702343913757664965676760122959215172608657420818787059195065151571491516709085054945200834412083021761903883624982726495561666001270433002591856206793423116858990336277036618743797690669066284792560391864927031432091082548798480725747509157685559824459314320726575356471781086508731864396982326596413077208052743440537019736733600170225564076599950187757456435220169037044533552893942996510640342092162558285914398506365846467584494040172109528653680636653968620578633017571177000976084829802340396471633912135269108960203551675806901101330556507458338552132344164160541852882935476915693677067051493715090948320123827001612771219962468787362136904238587994170027877745693463371629744389617178791938443675975401372815003123957275886351906111800586759379844382110222677565852502816108332450552758085725749181865164029240223319492999438244962484298095734889802334831121913973033544801795881742481685065806910936125867530382051668864227318115255914362409412594737303497361099814218405964425547313661259032888416938449024391718113604125793100108186399848302424719247290627675054273181246005960783319199421070158486943670598404461156126589940972543384155017690876309482681906956069567548717927863567787291814140043793224382582283427947999731757589840733230430817388875230571681024856644024662754402385661417051388915202904161587021232236799320248128488906088176403583769932573265301667430816854621112815565111383593200572995819313830618527710474177487039346671409628239761103256326799917452670616704857719975114919430706425808845206255573460738927250191284176514994458416929527044711232288377187519488050509501459796275188793153655664922087309199166402244213858082604377354290836203991214862210858540249698354402657462015746250140526434960962485239130078318299055778156271042112586678767368220843499018826604624330974412478829815675077783112384881086852264217067882621510344199135192337653433092470144630748279043447683739546311962556819064903518394389998717527551169040775387157012009751805244414719364368150638170255579052842329210803119013762747983399169346677828304256108664258621046608181326681688959712392094204668644517239518502380405908876066687981509903131223392856733281202529259460113651822303859252567453718833735165451761426573560786963335671786025357117954756880552876332426193382051132546470194749967688208399372735819114534364669036598449862185692211017057345232322755445753188972899344883812497687491477090509821980211069649384185283457146608458345625304434190963577496837289787930827770096524542877732189671855043201396647895205923186729769405903579852909197307647363281396940254069917976490157518251598834652602782546169554699167592984369791114021981920133478643941367286855028179673368948872156210336493738614775848748067266882731321252031910126874652136338702470570445737140606026120248379402353812519943871704489978350706165405152523352849231533600221708520326680134218143592523151515181303863043937158805351722966617402435360813966757918100041082760825192977640158008587212525701886767208096965462835855014467874950924636339430676151388144016425731887309968826054258215792731287816997408548900865941850322379718352754197826328624999316842336776267401338638342392380824061608483635210356392899875579231069261862589954380178460069766312568970020728247528161151099075807279207169745271986786488890144652621771381532240740730481220633426364062306992458895639421443655000894063233342838499525473003897937603951406392315994983834055348132265805466901458563791587692865619323000677219035543133937461902355686805639702390594599803035736135951012669993036028910123442429336296954226259271118207726866572700557926231598773337407041363324264844785181166628139272439777755110805036849564526474926073070833514187713644693042495718698911628841508961908242893935467789141461868967243612194303003577671494357813929633075579139264051714348110303002433635147646391571070409413023748439832378822266652691632165651973324541266076765677199618785693735663205331317292059830807661786174167784509914868192099225805026269173140806192079399353661434092231446604327946654887303491613317977954795193837477609668895760285558599529709253641575129004752290004811391518289552727853900355831698429120501466948146801844929130075861159440560649702653077023175673402621280529882916974250819113966082818088999733878063634209289987501578193411765416723715289516469968011848337332632763673882287449374377652375304056180597687227017428874877701169921322533240978338949693167392516974812975201174044237783958405613694364328820114808022547012056343212733989992084288131278694912840435772445988029730533942014088976733736385485447067099507293392036951807358937447114028944509392027593192187022310554508683078760879796768702452093020257888600139186312435069845795741083705940539510570353179600862599412797122707467073877692049742297115811002976987474141838599381275402626555611255317070245148801584023108532896773363144847461283938129850123090011365268862707065969102704040286747473862926801119087818619646239076930063138076136043565080071032838513392203245481436627848840896965894949761513994819136743345774232083647378261987194780905208277983086126023555304078581575156337967492197718990608728804651826884653570611576809706173937064707637818813113868520335632074531742341199013879807913669648945436406397186929277249296197143250662833893318596374199657985239871108942220744489182449559031672791564932870740928975262712369512605586868933908315110103278407571239324454808871794236441220668638185993686058823847676376675504455470101119399835710736143546983607021524892953116695819454525096228078955044315141102018155750723660902774412067905916970293045976795050420867106822966099204276105073017119399388324038109542574791737167823108848883959593152417688051943473269365659202633778247330280037071723526125097699248186607659618405154067558080592467918245616526750002293380123147889974832963198093010359169392536145473604327916137852897227817597412187691540442274963985653315989460932385771708087008598364085456909735062130891363330071045879436041994009458044124607684897754695076684437874205730030300116287181619523476860462882332767237191162086323486915104404157782177029469272936395618973392866068493192559651768922566842140300135464090997255810437379077793479179739387471634691811687356080752963345438774646172953580822269907617056397252570358062931044583492863252444995500400656159056053392105806318647897976621973864757525746636688598923817441499964357685018286599856583165874797621277282729445959840669057752368054639818037232456599283362174139329320413303522467684819828042293596541621249437493104944867334625813530888712406374295185015988665079810027268100347778554869210046088141278262391819900375621731042392670866220188011934844321471855409412898467410497465632235875930708315945831959277600932516664490354041180955720682419599762612336726680128683014019380354470125568682758799723894726920169035287107358832715310320951127726374911402205370653170123684154386618005959158992409177368444554338802543789417540173841096406101051442560680632716528204675331420702933684224378885240949044263617576314079346178488479834995236877516869870018026976690312207977786252856185153676296283022675154970006567593035875119127530879142760407429432841720249931771517052500230014320374563087472850514850008639950347895873383080348552635078133413245234915883541504523864938948344352299097668989708285406127756270092253021089406942906297409936280403447435868998146707816266180853703715591014610529437106595890531351610355132757117667826179458949343801618283827876048372337780775418967556723645638649444915024057265617326182395236519729148979993446246950959854005618633666710945359402628091615117139364761066446879201656171646188024042704894873873492300618547005142832603803880836774553787704719742380119335724008409690782573898951603939249538703835402300918077783267024152617512935738653577799841244272673386171689218797586561458649163632187772920566466832017109675871230484741875583257771246218322223712004069552193971125627549930766544110750801068807760564339984474192151974353579589565628718161043920607282368084155206370419104688897758264090443512196075121900094785596465704626161229432754805962076761282117249112540153247047291579538785399020139265192132268376899038168542316920690982182364696959002125116142042165912666912706882000403544894851561992205510310261281300338348501057040338677258695789576592912548723189204569371229932079263120730615731227729519858706373999814058686520992852677911697571652476475252564916370527486873998041615807578333751676055144098941813175230159311607732762945993248145846262572747395359502403684306541027479491437285429485102345915003156415811809133988499863348385386660133983077363039498890046681980728791179419725095190884140616034887514606092508088223223695127360368394270557366269225564230878860466239499896328894779136945870076996445567137625531043717411482655335447003812588419393887588014614634803151217466512181110590001365897306511930534122086177628577501663582078174474826265533806412864182624980634806846966739427543046599908622313822034410343544005692777806182983942155288915953771526521974329257641171625374904336402492178839756247884580285771805911795809542357146316057178635241775439651785987391819186070207930825779413954613529962818543586268296885498379229190617134186041588065088588094450021175765966674334655154954051068542560084214558732886148990815831240652658575754988791386147225303527895550770186945707603026038273776747631935940423781321110828088364134488473240632061147102509682996333718298311966776502627458323751915450004658474847567893737032625198725649137595304311172132403102665909136834528787956759197878751351340458163347203539853090437125167383624680398436272707016790362187740709774502965320905557937163129031035620653138840928746845940175831167752183916003085345102990428460727558301632771352546916570187724944549899280176540368614347411110760444398519430017186459023403512873630120839303738146165200040722265575760782496427590776962365213513276705877915509908663028587345399361732714577881447426554009047165236463978199156420795672075629302753951717111982595745686473741388030390843194200438505340234091786289714156130979752284704829237292438209403068503056883072000488369670214514493413269191637159421760132808419031486049424917397609431280623875256007432589924741202318686569919072801716260075590969484111397593773757648421088991829085789089810348556050985845972404102789784905185896767568418453337859623544102798660354383450145800531950212854608964710446961158387534314468119848702680185290283404979503162496047673010977313026579442176030770342050511364627118961004146707883498257251129721730555956729897380083125697776538481415628688397080987858818372204062892612235523529094539425523758650491252349357028208871544471993981778646113465968540070023007517858293471131862428419641434884005330709881597428561096676336840917811534021387762921472562953663512220991320631529510481633682085276028848176890808588031698583055899789396682576596962345092153244030961966327017881688913242915336599016912041571770785422368796327666498533089047172040117818862469271963221703320058036893212689198631838728547698212075550238916288354610570537466712894697317955281626008044334410710945418153873386483009681403740030924846784648728998402805834685449340039323972454368806576520300110492897193175064412023621497998722202716705233983139169640656916545825124193718891396751701871677299861565156705428352468976016666912718838406201160131018526605502841546868158471542702665553392094559743570794565494211299543359408825489435190074085641389098881425221530338337096254077150966894649384988862941916993229463213765680684111497953574000096480718703111462580186414259599143890755951551339371478887383690561719330183393034917646335213860973895368324843543390280071028344528650407380220959378254901935228985091487131106141767431067655201891008200859624776867590587444786931535477501146369414720865297807571974131633900211215823990024437822943937394943035698349743037744460058164489088567789326930359126652443186544847920202493942623899701046682819134311627899794717285972138975790064758773612157813381371322756251276753127706418077586291634038347548010393158139962777675516711840536635435137387529025933769807216739595225720825328309342291884419679079294636686598587628807913381745589666944062003169295773440126163683803032640258823725945652112853079991135413779581211087429632548593209470979679860497652972478356043844083418127760890951279421202264576075017015189763951810288693773337928252690517047391059794908625462660430801743009774817215073874161270639733394589696353392173418261812043799248638745949921109442371474163617011899476951647439991640297187350008162612655632841832737988200534129054183780228813055826298215464110246496972433566979916537197493820626679759398076400922268698575798574716363114611428880812147439869011872760565687883713159583857457101988008560503341567380591681320088652820867976527557813911270034330216110182141385161742372714330166530670375808939916000441161500271938098201255276200087343242088711340264224831384034247617594457304436646548012938233623198534353504088041301544254241302188896089664023094114189081748569430804706952087172648471474590646751061468583380370596043798883270541723532320527890742322758349088188014554228727866393059146511322846342346782570646480464904331017211768257915784147338965755296324445639790704898177490198587802346599355951420883399994873662005747229638909795045676739487965458741443481507118408607598619254769557161873889519600545556070520227708016920826517043957532065141442385569167747246671440302038015670087558720218130074600632445788966481432018791729474114876083072101035490813374654101793776698109153920511713411889814699449369550426706881608352836298407862597250905737435220547371294003189570357569401551419090427874233360232443692683252143395580683074694397750932156149036162227498458447266712955846787288394539657357752832945882224623875275692082934345727732508939041459411183576154403493874591398686555580891097306085260445068199230752749755072218592583697414278506414608168184672037178932542558654117750716829660968438058380214059166289855443045656294061193908963320986759672947265862905431379846960804751084749062881938522255721116586791560782244001657235204090743713495888509357641206168482196609659473399510354840595663239041687802172895605651969971840598470360604936361766812219577470661388776897611323997920361037728263115863016587251356241984434700027307628837258720737378937825885301369063372960505636184673707928055381966322342755824216989134316866558203484326318369238827759212609494224437181160161899720923949541237716892182472727398819102446314176992557530610705681267435586752890811274073293815981603107629957661129172956890721617565796731625335810379902842429895449375743946386962843288925196972407566658335649348650220326695727231074144530878184388334451016789384349838787853223954115304065065986717471740916854532925767707668493499852874076142932456169441573020509439789048809606515177993343024555578684222896399229574092543531448781982312422589367154991077604106361434835536730941324511751754771754285544614322962915409985871041154512182542253883819337508384332044066418543725321514621843587533084965498042683685352602253779664262300471700388470572945878009330891283175046451529636025942449183492735685413478898875349521371336510378939685413523779015752573317281338682393898241034008571133475313708135710373099056256846096664623129212095330068495572232046870440350832144952731380442818152688514325031311809845048536293485922539460279701239754532503744811791235854546250914335081739154950715103636709532141404839081327862853705894026771513678421804065844894756528998664296677086909233464834459455648329507868424961405018459918028859920845931335023817926049632741999821308661631857340600544022746560959409873243276501895373289232708221763643997054168796762509374903342754790377781976304178069023073409631201352996579771643915737627439989860018319535754845134857638735927742203786494573573762833420836803912311930315839561380453929279639727313092439602385251978093054564130020595563421408526541091382128707195527181991197175074897680861378442445839350024523200013550884765960852728187190011193202119237420009184466925171220708736584351311034309088270875206957739856344445109879543528094086394995327235767641801772872241042533047057698176231077115786858826155667107947795794531566262301248357690124447016362400766775558502033549089236430151091165617124117225808310306910527044438274139374179784418779903360682910108626535459371639472984476444988252466332640612380325515634170748538227510606201626072252335123390670039603502365419146479284930839654658461440303021919159014125106025353801711302084226090811187851076883649481610793707820543081547286246434955618098031638423449078701483755004270322524404829667765424675031470869838313167400645140489760323894076080535871701202564574067362154429568049366063066816074235922586915740414084514672839629914694833242771274321949190240856798961836528835180360357228713550487371826181445954627932263135577459283381044859239107710156192047857269271689501332276376474527722114234031194500091795217033229785232705726623998770606168503758213005179262417611499417302403394059864404487004676091409659193780957892199429231110788504313738269938596424784310478017266100786318659401211342340734737621476053545349738574955888934559572316417864962038536119404579107464944681480469364949845876566892238860822054042064463042366331499450660946145704320614673181653939317777471435365340870504671523154811100697527452888504249051667117748655942056832947428175851051673748482979898905207897044164944268025213671472576464745272722427528498691032098199785626879455121817545220740665403204466609483760149235435378209324895169917582615066038029116967621363257861124601488646062137703960850368998443365197282570182520698446413730106808073727520378266529925693772206239158138134253896697993857193476779524902977672482466046059314681449525223646612537071298343813173370468592081746192851334337648575865505456379425489763105731852739695794436017029627098188548725223412747586347772881566588444507086112747642523498818939687384278265639769933903528850062622744161901847828332136736451189424752481548410126143561961698745384926297388583771244409716685134265848536854662830168275470281795665063981319401291244124083788659577382809237110352549706191590132935832207787052805644155319719254847732227050410857043257939310657034951183720942455833435140674102127309753239965763072544088500130798808811537975030918957783259222684375254770462909664759893328522773356148066200763179944237039818450576277038114274223865694064233502366862264949382790443432242263257902892215823447650290192642445646920297752627346263601079644835542516395986071582237298134059733759262615776789914180512833646541926065261262898363494919518133794823554489540552410938007792174336711946879802417066658715978202693653546131231275079099172649591532958502531628443041502495849663728882000078943548815011570862125929507263933560297657306228377756014382269773587133622557170867764327435249922646776866738946609121208087490000205664535979899246628833966098410995827690885843707734143209676595147200940465880572933783876088278106809067858246598287210551175676796223145552266430631835388613337567483516018272252865288101348688848033177422850069783460423137542416976832558809171236881227057385676549800655671146879475497003861533400311734794965722410337442806536708767354786611555182164533527475237426934469137123681247964022802325687368673566635117088895238065306345740512984373750502102879832221253480589040660233952067267229648876966127494594362966037371853956462523385696089173828885002493213966760816058423756826370501706080003843662523513910229185261192525196241566821777059935859999276276731459095008336890307315901162455951891732655687860583856352291039208385328092369021463665661966757862804457167839836812069712915536045576797183328415527637061747700439447182317280481238363081098392696170902879095110594799688659689546478118495544626417482031986379786944009414432070461040230585843611877336213086194761051837145056269289570328706568931558897049754021496697516943462974778813632702177770131914869981337756185491103692341882929366316978293271467474262494179341450498099009474289547120553134583656386528080081220419485486313759184051910535481052289700870190923569510172377933416037387344245461085394243176060992697390312555385692832836980184009903537202252338363594054235052168606374913331545074581467780634945544551388782833028297643397252085296352824824539743871148097617471666030556771647043360451619293758873867867490686212621934763607942111088731932378336228509976495434827628580428759626565680133988412102335526803206696754590894891910715167368676657436634403676959218599167078268601484450710855742949745732168194595127795970335147771835813163952201106495671773938247941584679450458489291190607145190837808968434291015596826607640429383818917744117565809325181068272291717925509890523415778974105954185553989707909121125344217572702021171227177677267927467242431259302144361214757370626576284135345493381461131845721758476995203753885236230422885863958386202720888013946677595517188003172238311854366317217895949424099477339643530247028212209030030928960448810577942760689971146965409290752944677244745247320780819969967482158519580510389065827393045011550950711914716618209282669668266328246972042742327700353611836287620008935117514369461509675057010647589920900916130390919097319800054404781352880247839268358793219330759436369647213677860578188598342197197518727058164751828359523386834772752184204424785585274208308803603110722897975750990983323162020469343941593892660797100180507749735334147473571710727538195020170719925606742268123563864050125025694325714977792218303449461408076366959640243428794432205548614458737946862110543502338934623590290861333258861089080675264113405036645106536529423948054278773557086320590363945831311390546315102099974833702182646575930616190604896636423971201206314220389985782097898933613374480637239361719503722693996694885833145825452658173613032445147514044542281472245829958080572014496945421614114876891184555224189289785930565430786388768756167906712440680569559236496149854350735515991778554787571807887366179557067316427415450822948729944382824895047705617471583699524567135656979412831469474283063574656519880548636010876283883873634816777207029928918750513205243072935474087431755946150382626248894131706133254215957969626366324240768176132749593934370716437099817680469244077830303114232167355237364886610390259509753027158077668227836685304984338737791948090241387291635892658093039727571855870756585076071397267505568438546663322049537053283534543869973258146221743366889598466105844485162516533583193784516389748059283230762116257506767473341489407546532781899853213149181856169657687115973955999956140408278351322834762919172036654680200313141218812828835570990792103466918297495923611679329636968784182926160812241199576746803962754005271541495810745038907448967454231720894651924800622908012460482995969212070540102643797582258412334007550023596486454895717068797271236507469769479644114554014107241552119033117449466181259627711597670329211986550270268877249209864076681075787166685834114768080364139900981514647330482631809863920882914216646506303068724865525169913588710964848686863632166129676736491806768629604733966732880844076240366165986012450877042384618035841423297779240564910887064576809066988792112324344447156309391853449457592951550426399467129454383022045512777798078916729353874757460725551217905933764347669122110285735617241977481154081920778502291601847812127409382249475949647123886710573002807774744906291801524414802838748170659650592507660742597043101460058553435252668375885289604945439810105931338152958285560865483622419492927428573764480111256015399215868563941345686544379339014391256880067447640219526133067270225931823261303299555519469849614736089894806163911468396206529192511383120917195945835280381009170724150627037392524530695262487384356727256597157093479600170674874737781799837625955418798063636287316340815594529093895713257005459201954018749871705935608687372316852588537386203644047362458216266758007309511055335270043552189682674681305209153396798482044632676492158361694965144760051831946637874714398423038942671028394930775441456708269126108846018648963279079724637763204728631405066415906627249308170774115004982678313192370261668483882623586951382490903156670747573811922256829300462152796255154616199633013284483390930507151621021775984984631113391058862856295753973008575188789599509067095898395172289995434531208485510750302537011904343802105915584481509347657843610989089531404431146720005460928718695248143626201482164207763202351807920929960780186612612914444946280243146751346238646183738444981309602276214729876115519670847188209419564072469961729404915358663830562000220877493508824473232323465076808039068233848079059408945482366543824690369061913368251586426084589552697733882652517523942923450343047351301830875797531696147519287276819644844092816604093209013353837315374310503527268882389979413478400964401011228705670268207598962926650332939765891739685318860770703710135821628781070026524844064168220128535152801397944188676212531273925588559722011821076869765311379537480768317603901376982643435804091369097259547569699433897114748711127736894250968721268185170699335678835272077303634721547940189126675024265457512690993334765027747016279914701437286269379862289240107252143429353418602359349486841750388202243676392383157090546534779441874197824026438630583061583511748392094078340190291279053074678239560808066271861064394474200788566941750663230817180548932362466885381167649830323205621611511257223390744449269658895673650635936365238664100018244037584505647152313378879848425679681419582571209677128889021618081748043103316425586453889811021233930976948585706438678868499809110377436827126331700673117076222472883465395084036938347340745246684286374628051843758072662593261668967720886340364538231247032981558135395529473601240798816009860787572000363862503791472060700876062805678953491910450644959738404638471618957768492452693810571581758264880475912695328394151349534193851339004068854462352224416821912246573466041682338252108398034834886936123575905293054264674537223892326485495657335039382914006520988863596310270718905483106864548398567481084998573220816011415154658775794386518888322578096322036126327337678547501096706389784870551840197868015070178793527239957997962891488509378679339071819306938772778434791048235152608024428745536248832313870905010058958402537602343176834301547145801798605186223909635790514432029263359401010368062841081828455478183305590226633275608403731370013447437560871883681978075319147318208446703701195619668691376627914323311798072464935959060500727104721438314453029923075444249725374968821159608060633217775870508831769870786656394130689992776143153734306698686805006839789834186640125730887470785783056744961415593701731623462297677969361926844854112815635446631789396210444428694697766292492706735637659330830677310689249767461756437116812941173294200726779608369368942832265978912172240070544970785921407120727187132166279547126010376638965527893252564765768497921874693078955649220915948480394379312465064900630727868838730306539699457689521985256323515786948790136233373766288800364355483131281117996604419287934046772598310804085178243454908744350839820009931848544476770056842218477535463371178876513668295900457602632802007365711909739214785737578646798872665360761185159981190112612471256480340390231764057754250665238362341722548656715460874825131121776494705341289070774422090836458417665155208961671419382647589942678809687512775976002745457340157101179230918562958720560082590909839509435518204916109718785575074070513869460607971648829697520915241344353122269082396376022308644085947362772908307049833437007816638202149527079598969330449146065020031474950279876309556935471302714478404213148624832954732995178807935401876469489285345597252019060360903045955350935732567782479311143656908184007324570030749540073530288262430360877412334584993037013000763452649775100410573794511587545441658501343654628369734321860221873659123668922654489433851058363933494410921754979237733846210885449489621899799231773461225628780104572727499446645441299444049993631658727462252096607632260652640994664436394211098133600473074354335744169903717666915103670213045739959492732648518161182140353453053065708388522746928992316399583435005210518833661674218826677731436259251829609500850675081234939898112771137565234760451727645190908408584778004538621472496358011549429084550873749591606542069118889805398932931095748170725377890796538372014297862297783409919143492265045608390154976189802541871968530227132921826733607607875955370792036547626585756359906077045712358798885095419528626806972278999599583957517751900460974507721369912645059433748943353946711578216481091521657301605631855600592234557302891284164467701435543694402043013844408375662238444560982837879492367842458728784010863019745309801123820170936654712804518843728422458788755923950997629258086348421906421117099492263749366360788737870406042139823685473384537337621007438377432640577068514296626317718036143001478182344009116039065536351406202340019002623297785894342731410052137166215283201733788266830134684198490934543262300263563924872151956781386341856858897514935947820934856617468325686297220370364266471712956847215544957240228480780176271769980174265125803961722584543284968387494056969015228158009783222151278989149288510119914102329480946318984430529391216932422563938796833421930504425963720965397813098226025783241255451937548028541836713553065044008828294766024718983551392500990679054238577046644866639638289186351750677219189585931784171330669557375993231470032625056510312052380203515931616497141669872780644665411612119489449500439002892695241073257297154826652666740869847477945876250979393397887255443724685081299246402988505805253818816781783752735803854170326314369295608925907003339866468885563000188488543192315013532237552156122503095985711857171617707216526564597729848905477261244328124430445044434694464293051887578859891006586700028878631979091978064489331920612782020724700361674528172875656128695870229788789791786726532735621757856860717878268280421625802616166036509433986945699981750969718020514151904955571001816947802407093921501247808554080854138490808318405958422583435623532585600855470605210629054849614462534881289640095696039665050240895655962647417945077699201920993833049879379117258093734541314556651335846995287152057199386012081429009775274847451106304255874874185247444006014231106354944210469799236907953697516123281700029961751186442791781500645377347466520500799736069462918057606997381402066998944270652755433471956284119727466417894302979352546280527917976021216007623937280192763685153667034387928273099069996801621026539673763635642694478698915580741502192297711010216636660855632179821945369875553579033923784830604046178337077869638722789684697232086866992692778819013184284244050192123012421272263238889084916130683414042201689309691374073153488029477774474685535690171143985731491743650697043305694928621934596912245070495280171803785978194223691094086283645728514472761098740165248288078183976560403612125026490885892291326665443029810786833872164421540521882040429376079715991807373314616135366098468141648826086049059604116559179634488915550154884414187087535761537803044361069866003371078257896897504089674573770962948102983133376716442862721164190042732179703174473822483217535764454631394133325018823664465699906605357239300191875180630460807532656011671566547325122431410081268915243350212103667893693261655356477225439626108739955109135448057538076870317157161834824236686682090692342351401438493351932774769395462950388736414596488704340926369891056790867631758881661470575621366782435099340752982114265719957541040736636302227777747320350929941010360234453806696460960785574898281984803858839100471728924740161337383754128643940426229858100037981095028651372189289691488781605102740415660564462276012818321524429836270638669595038444761346033068674332221463455118744534157579649637714565256824023807806212024146195616100031645746576321120416153957906308575236301805071086225221005398177425946617110322465375646684897689140295865905602738428185185346750718082226281055405388041011895717389357778779995096047541974477691760968530963695833436307506111792951471196988681498466847941093538485232136853347971687280120555896638893807069366010135612360710164452996771386967830916754034642739766174041879962612238031809644377604224549076579893739472111169926676286030260742465557863349568505657315777527923107793457594060210725801231511286573901896625619759893809210700436513247729638066857880073469951160724324297633418796706557087604188900550723729588140956749600486196437032743716320653631568587798260033975932791844235692409981542160045965774684623398887586130467132882203402003953140093733987368044998589712021997404733443640929772765680638938405782405320958633637558657663657571283872293236826430020786529997939306048297529076459799421327704263676048504180354572182607234570548762566027922890555145901121236854733390925714914105138004680085557423942603480557240689003297320255252287758992080297226168621822558265076365146090288985431092786512616077102455950863215986933818221602818465039425216562770809752122718428277904516613326616865156060338392666929835893398180966370749917384570389419987141377178229100670563835112280631285029564519670129292715606339995045503750935950233791585946730408750849117457755234503125007851506918760640253539249849576821639911755394621360630678156570484769325499396998445511313077100787141035749559679467051674600631352879945999668839414294130256154718928900709039872730032754794365316046749942769190313654038898925151799343841894876402050694715531788577550498178223454208779334703813855698581454161450088366455464530129956561011019024086346422801545290869083113534846103187479582691772736575238771052062267555701951313518681700595325451597325635873755755419580768510987145676641034429586843858052671615531121364190549815111001495599993445483239773747886196102806498056847280836573967628745904277724818996412893903979759609736798097074152691705558232493328933083716760998680138424642964341653761350035005844434361854860792054897454187579159914448331607015365900731554644870632274880336814937100012819712496966700444084449409489767492758013502330995937095835548860347099110207681035161793565102075713204829521353370117525420626962716952246533989829962394622709389880790509210570142838952506012590764654391964356396967234007630936996786390392382382027840058074110361841410181456894503770307774315137733504237447157207421814013496162990207356292987811924175251846876590133713376308240592645016788193607133125762233120016569781561176148328233564613308280347217000139543241622473115975825520795181396058321287703326257800394309190171824448756671076474840513694890218456439474485907460442139489646397163215973334968665091300412809570912282498107425512896046786705845667353366231127019608079916996642515699599803767050791699179519409050824215991490231527634547387826896076216046717917551117170914391575305474108948752325559087430658701349611374687177712616841326169161596653956992779096590040501779827155425583314312867701694366355592959939914387067912327619903796977021237355044116330026170831345687047757352137614525841054952119777324001067740697939580149878217951047092481228071171230010243420901992028376085474453072181262437921590404020860159066470651914824657219614447062782797551838137807036900890066412731141687644959860893881581458654764310262383445339956876448957103095485363322719687901342037013493925678367831951301036064402562325873543254512457665388640117339358196321148353028361044343661262404858573232046678948489156526152722797210121853703077204769947994738664899506659719350519776503471607868683466392266402645016643440618176691865846239554112800539292057455447117897187696783469311779699812848089564275103976500039548837138970926617769046571597898909625670288754502750177340214531462483659139176364510347620416230856009044269322720260456483733585345458426371911927592429555015672854237755443188410798601240622658487892475996044692455939226816931154948343094088108809655144258640930927369967963225256870177315690757433370916669563350430998107795767023559408689424877151185813992742231281023812306084242573507371526348463149131816359700653476786350497447783436224627373462557459775662746817877586960479168882592120416697376725263460959613537993878691566918141013714711078485418535032651348394677342601596254126840921101506011722158142134731664691199602855574230586066658196137733301500655894715345697341001591004332250319259085397473784034107765878865120104706639428899357314072462355403948632924985248018392984501666253565095794388741027849462367116501009447362996068716459817723353134500476010670064253364841152498171548774961683416051901035961199319053436468329747493138058515057940809006032023225698496164854868814129275147550557124591954810637641680068485207755171396022641541109268256555416855281015386857028966312161602650227489987644660747115191156824076650639854963040765050126705841077541969666140327983154278740413041207608973487367741828800739495807006088223959104008487129380763402185372559113162457546509264478897203724609610223625170432549160574944901550750452624571069754558921271549260101366734740028035370656670901246775060459792058669577223616285531612717597392540317071910100045668886353096366153221355339280670429192532937437462083346823345094122824981752908560002052859038732689353766196234692083662993458752781991656651969772015122799171055047203567266164507682312472798134317678739177364997554114603089796133587397485049952620389811157215082728828034593010399792041734091989720459380440336231573543100522882350989777010599703194081735460626320503261765772795122111344381808850954353915007698418667674447010778845606960851702051609685973556480299840686164811611394027186398377452386449941513079672135069891558069056526699776722122159504703021824910355896791382858447792159076441491479740574761327434330013686849625516552574126434511883125988055248889539833352337387674107948366470306734086964595538936849169826341782241164970561680180322812455812451102908280908189088123890180938537569720186406048663896429621213072643183132320946458246698998857972494760379441159682487378046207183851712493904177932729446131325147078151920913932047469252513218277834396625247703315747799723168846291901168563941695607018523711974235766547928648833622239482848820843626711998825797095230351907639760089074333753357284898677549828344135619582757731166792806402035946301184932569404675971205155736744561192227479714483647791226667559163254561609691764643903677982073216173163427068895005681625603004627837752066426314672829327093977046462528587594457548461020368515791739097353955914606807218708355837872538684723792506659828501478887659331116001354768644480008597123066458620698688483571201119474487491915186796926693069763585158209664956920462746572530099428482784450572977166134204689663807095335839618836580127979628720231985695195815663372164039101806863423456873168995726462703089668727692373688124053026651633660102773787000895840010243178873996788031110964564341247082696094414303884219200984981426512681627043051008394811965278462433357601900868045838950638461876900829634512520036693927799568447405271109766362887249357460908213569576483426042709127947261788696915728923487425005998990186498998944585046739512967386496350137011950111891855922448169903545036547171037008833191414390839783345907152446504549861887584219260766220205588778715072312237749904386694093384056564311009895752030921014994903819621040388050404691611209988972262256854917403401593567279036673997015866294026228101775221446542663897401232413960714482680009410407809936226956937221494942848780373270149431530278263312118595799700605211361788880795578184229466178684390984029120287510282217184051730536753838336983847493015569549002982151487373205582437172670453103219572501791184801137883694551280823904391410877336270575469312497068321942879324306489547634140903281249705276921942012380658928257071353554646942106106059518434486468154924790016842476351242751272586692206772744863304419974439970820822843758094459815714585114295962890679460303322451774286660738577192863314724589809529144289322384946576308821470351878911755553937867260947432373139124584235442419373333225020626713457668145368874805743669411333782882477669707358012419894180186725541209198504404603194712391472305238377021807591599690901380335613340336189053271328813204954572633764295993696397160198126692286316188752814049566999400953514329380446670934237570062988301835842934764138474854208996139262322181256260055425134017714832977680657610208615624605640005397870420563579390184381571420723541870834031789092678296448825591780349476482150013098659476112408184856234672042099099108577318143113754247095991036715904068696201234416896710499560835938388218249157223494622709093305610007828112887731472409756061730917000705299350555865224870741754750645001933091122643215060523986617074498104344445575011926693032633732539097983956603367549070450585665608818326737229038049644469092008230389062529990933224974780426989227326700714709987380331272552578841970565324838040054476835679656941879538217579408649316003268412104098767534377719491994736430753005212845474159243648178617139588792495958285455629626198474400503019838034086671326154671365379243810154225877718055775850733273730524284482694793990288817923072433335318075411776472868959968644428322946234604391814973486010350299537339657665667247690325326862052888812220745127561422429232195865319367604948686305180988333383360095780991822242426909216094754656559666171263732707462239537242326961772900234543201976257140389638581327681004496656686355670723102201934969256710314877193888538215769778583269541140139405942595748035049109304300728042631844238765877365110418572493193421033865819542518279000820785554549992482865920608985801305439087988858149585404785310831469414467536589830636732254428777713529389241328857553942764906124155554237845952952127148766733481434592691403563590348601981000985046243408874523154426403338336658142625840003484078428434450510531760888709019332244773620843410249966457760374067950256997931263085622896404677618866963435864477735344541454964871674366367144978175874806424056057604158805714812475950468668435100418640933735391226958692212861064087954663002397007129550394485171986460522743074569741836572131149585770978644274079450270139019414515799734954746061942369911288673473436021298571013020535210929465408856687636186112822978041726085087329460127978063905103167186277406115897170759862289309606682268629565193995724576131799789383178721146859419432536521712475699628823447706327997385582069136415884806360908503413619450653840510508704003098639971084173491199898997150910760852650028867888549720511388090204662684482742470311654280441278734252930879678305246179326719995802021858789014550426946724725582037525024325842407810364002738332716355168274228139867738336120795595150574432977024618012472832230841503732453203230581093300881565125600387261018968252943931779226746900557579004556492813189568807620163180340995899565329264168460958809603624374253480530844320601273614346166497689721955979682343063195552769847896845792981525629883331369762987956070490235224860062891684460457199253043923323029830681613773833948461934414360622770756228777027461114216936163718529970781100923169426357249636637973702124702802024501136415429897101201307281236673022467395978059889611452938981865734356071661288344329548726156680541278256121996589354033286259765521792855622155261066231175374886858748934627016977811431759955259384538069528172688495739790246922570199899436496960705350945252602662398638114998584279022872485471450037970665942973585092536132305465353495356788824629009692380866897775272997040436134481355460811337305000621492950274023761080176786772768016146230301055972453609628906088194946025300373891023551106832886933889942787741198303001727557409144846267316813461828498034717872799608965664278273547787663605543696611771068948927323514975620034917234905056957726104191821629600992548690128940870753759849359965425553107174498308971876050423320526480491771891854398128372222871773107543530797745705123207141688003800811561116608581664811983359956652046112114738933634532478447051155429688869285339634787694785725698494047558187370436621093971847460693369678952247812302580892387753830661710919181224937773070048869910943119201985581011506163757468522321645361841231644889874038478459336534816647397730907189498047739941845985432831881062147916416200848249448171998022825873658180520569419622185580482733626744183853007711422551355386073218864905892850967464997394231681387927453816559140489429792933956442777814737006891672893160673917705153605663873985058708253920051246035664043584797299449894191402977247966174122007967448883371148572623175694300735478574891251937266905192447283589182653440557202717510757439637284990125835091592074820655410796830800499937095565380987438939532075999830497439369807613437967069838762883501614525645707776154751886397931800762336779634414176037942339501635772070957659310981910321481538207255039844613204866770630564614963313917529892886521830071344013222448067861625290431403843885809237607528851885179549002906165203451360103380004378714576343921409070091006386143007270407820361741740713244061698410768820789621861341293282130756588542792495316759031346731423110769241978254677322259886001797525408949975964961437709529557109059155682555534060804437182033742660256927656151005438692696641812763519549496978273956605630095173577003842068906230398888654925727570123976361790934110350915689238913159823062042813743177365453305739851962064557885934360037121631264740332861046485065325731357275278470233197331459034565111280878032477725004328360308880119482211303103831098394874237496814779769001143482125176499246362752339419150977012399938746109617593689816352649022605969167992082547035361351313838108819075179956784201760296824389938348907737421242708426459464840666908674306016396081406923264720128380751392759314178456221990996569116300836835893102543873062776354126964268746647947915145777880108228436816871246558847749974295513192856805438893352526836488424798760151549709370472154688506984917587937597513996255263453152273603151058789466813644570351271770210510202912126108234391935279526631852916422981997256794976447617608930485518607962005244711031652409827679392310158224272989903200616963974969496094051067425190937636579391455274699256175843187401502953263202398437784166752436732161617171642499586575507398465178749435563230992025040280222511061132137452445012158355563515034209543675265847051747150713744483720478127158666896168907639039688830906847279784838265867894558831711604491801270019398642867303215878803517715195492544200288349747489573893816804690659209046028162442145680942954203388030003615621863071531775580578503660590684843411544414694956073749020839094952367398486916790947925915746241103846589468948393216928943607675879654669180389772772846200872175759289284931317976424732133673302492956335990310850720709875994334258724008537188140534143877330252515751928044366615109731483754673142651416553544653042226098385263128803598337675654692122995970074350824701902014758732478135428850074764238393266098472100623136581460963752714144894591113961225543391908494752506416238081786073643935426254852609583479808199858421726382166627430836747443841088910101023014533904159587926169699560219268422432954978267073329384324061718597195929427189595444835867191782239311583796688732350998782578704863283006427267061213989885453727822677440717378181685231759225189123042522377857336816152336597828804781580225270475413762156767892407571760130223189180583725448243923819300073286543828433264319318739712015269960077995229834633192117417588664103318052177523811855860760404088554470446840085063691501982870491640344613361550852155614251581953090561702939897204959140558494838865172888700267768364179961876803124912480629765544241899247624097736904909707589041167068822180545322476097885017703109404708345976389846854587227980786492198057581156965928711940555517377660224220616263084616095271339299929520288300714262053873946582699215041281529726801595661435120194227887866110153082989399122796487191069051149448447239365971346891450802381832911710843523621974211944147293574598861522006813550394782095990597738858747243890045917504872169124121045860136046488336785594904150719422086644041004895784147976053749943596098283833739629265168731608302106588948260469504571733586306039776250666645330085995510047624477232875509405296946301171359407087691892150083519550774553970779338408645305943269651900795794724402847987807899033762057865424502213448928771482646245496215031971861384625265106125048103343250286753822573832055633534596334972824675649696495403097363902487259832898996481924700372435121443768095939829621458122678986758701760279096442136694051780782321913194604673878967991778426650222093144669717865232791040298515608367755232284738625235590527649721373948257514433215891399478604858647889239496585501728979337930000705364442918951667961085754567698637876942462881761052368146849518701865008610598135669523025423860139473465139582675954410220687100957295992216430092893746163050008902824415249594415378853705196893161582631377380013253255345981863596498326327574333474724539592086744153468415037995005090398334233836432961437888611922782408994856559819618199493381063809101626544795848316370955583907182948532664344667043887302694859685820914974028618829012670936465755778731849683430861369326121914515054395361614019103512593797869852729844955891105266809673966869776479935424377844848493520041930887555719129234595255456189817240261445312040643400039285267402440153986440705585825211665120281339392172260551553181599328007299869687234272106088384423233456001016517550973784245728982552122642899154278860261012817748126333629476721941644028992061602436627764883746164223466604634353532143777138869380459564064133171149684956272247838188271480784279413814307635111182750823646570209972534921376322595168239296628023614980425484193983822400489655842226871611547516522376536584903261066671103250127536143243517973185789001690208822702426826832754216674120449142064141154929295781773039676165514192018310818033859690608878543457708067603009970233808284058410202754808676997641113503845512511755152002822371767100846581664119883881385912825180718675439654767188676297936347771206394554347382252763253442337466720673956061091091044870067276948300470608694542205658166299662574202131933046724636056657906342925634550998243643657788469267671867870652023226981782738914569665095354295649239515429835526623677318352100230545371289815780930235446425170415061301210769280675392149422008436357670177138082024105386004012850095975437881608911777922708189711645563361737236529143590091598007130560921187565565000382241138796910274214298070820679742887951487327970292021038812729259423589526927061793760984138965348983160103391469061267613886609570495578323645848382615512222704990203772775680880107418404371297477934103321001012290495464135493781295576041716126804416848614389170543945374997740679764306487588995461669902338157207996680762084955469185767975538634916675041250637691381040903777008786498642607973535530504781674139811262196341010661210180761191129010081224534721542024860867077365083103482692600261052372172467469709440503710101100584316564651931687515948850090843263426873229560385730125772072333989524923988505682569426220253147266108491629085811779747282838551926939213619449180642452688643847905555159774955160871413508751866430619976597877964948165265309708198628039401615678816679293337743477607013162202965106908732187300704821899064496345919908590456203061611501367558288594236928988269845660051162118763669925749628538820386081272785590340017031572983682116262230670619974655415805433733144765644215334343812606563828073244877155242612536055195467284052071215813025496110623138309582619872966383058549725054018794518204827330343218223462020987506170655756777708668092019539517664602732990392979005586734126886715601469186681229544261315611248554974083952768769292699503167797718429554981929749026408208468716546960829616097939260252083130652728182398301286816167100841503947460889501506408509447820786424498866390223388408870225392838017608043751593041970665315676414492007203043015006225668164099127225933304287232949813051746030859556723319376270167979859296617167378479279807242981832614047400035352110165428243878765368755828642158213950030629304250486479763192677125669934429035026952151171451237351895628517046416381060781310892038264191058776087767971816086533043201509516953201188041581950570018518390799794928999925305525135728910718367257097849261502954489496397346059936319865837288117184624686750028254343100093270352319550561728037521144758140851552467896106540706727298477017596772956687022015098327998735445483325385625676429894956011225110066173962476314106790905064151686447543221541100647375147548406735680533667364368758198334613660134315552780642160986231104935338625313283396340808960939561483594948110655876448238991797871744801983928674399106271770098956213685254917152050186631929798850525967699489319017997698318041939942194218111878794039263302028279924393073170185235870621193336002464134900766232956032503120361458846534191557255616062291872711327397248719192573102401141734481044426064230936314930181723866694999663124986962422922638266440321878966189523772832647209674744573807505989698831563560550432214670745771646676575036600606431088836143368537006413572092775841078729475285457514837457478245922314720906662945154029702013495636089618050203224367651427596450786107958323572555325014197245025207588315091310091612785949159747613984646276864718553577523387195629618316123417574917317946002096503659865706030532496916264888352650733754023797946065021583115637357934443494248552378739624722787395567810629251162822078852305439001003911239699793874084108148088790058628982058984165534256082619917165194484887620505691651459521131896507143668821066537439756890851684704116516151707181612976321048493167539360203355211157107273718597449156573539075134680511213166015879679837286915941884795353402531675992820347854066362843907357796912897637499667207911159898888332032110131156519385574907638251693039454182084238581777475990077358155120161398833941141546981107824772309563178231444401853658623796185767472599715073442084056310591382635743105292893693049107685863464493968488991577858551978253019799567883699757118447296874096950735085750205428558614562812310758520683892034610869954603385094950184231404687976877998417481980330078343221331547310162912878381362721737961682198103421321242035404116750910702216510990096129809712246165223657163236626973585352854033383999970869774170458747110369243747997970542862173961805968752040570798244931658357987324409778227084106906772226729916549779268972874243856735866990795686430682157273834619043297460275561132150703609569935344778858797229950294493401407291329565649987087386770428873451565576964771908408825986823775639305599376903841977535778116177208892463203707416228144540857174303179680879791526477708537293446756823340005325847460137345937545526311789577399686195403055036559419972489046157989998288537046572107058382917427158852237227038241078245363562008340525136204799391137825676858288675483937083047342219938903872242284954465612411126554657818536516422157152335308082801552826892058344043995722750702661634003885434290939012763809313841420167586020446323287107665698833076107688554264821347008997373485553789251773827496333661424958180462545402816015182432444133544602403219122742771039139989197528428452477814334466399109647851034908614551221201857859656643197750739294171607768564834385698924087897146283411449846570055948321677806089585477099672363433261299516607035521510168355633718831761804761097715886094203816865213573553221665836584714165365671692244650252944899073820194858450658386014961002970859952844643479541073231404531811321247561593583508866739868784290260241423413546970633769058220736899780310280589490352934335803223180691996391919351852605591444029183685286556516538832331508673055772539415025762305846844839218122056786659826889831784619081732267117841456073601053889053430445623088199104601293002693489902635104785088823793172775973913531936870659779007610447962692649423999829416351110135949061374586768810793806644341490451691321038539108763865636947852739592498348873860297583012579414164558729243065883270562791187631748187158126914159391789021622455467587188075299840018718627852800073786457584455036855620363618049624794491724166649832717661884203180938343323107114529395136579648547230785007923703618021626236977561178203547548835760162333836891017861981605212772684280469865188637290518105376029209635608139639855160336995982988458697967539162721104287967632552147249350325032108717904238685333093148180684511174030423798419566820813519239773159805805407930361030254757463918939880592176753910242273792661393030847139411647260935441307044707008134318483855188191222267524192071163083606060770988401294871442511057553635208758752714124338304647281203273482993326522665025509995995368104563457964230967040316657695957480184617888963278325547455681036810841810899504022752651547599133525561038754465486328355298716527768537102716369572344450152428307347205935839315739584102145877217833124211451166862144412776686463467083287532224274159280976264039200830464442739059103955921700080557708693562646570052165616413671472022917162408600859076655658497454897356119095677043900798155836848610777898141061555957314978373880773482368177739464027395960989715632727891457486106132601987863677949597211725526004469858180298421398617076835054863410133603489900248120700892090517237240013051691685998760528703467000018374859331316383074491924840072079983229249693994050173781147293975235518330150135203688097963344867846002540846075087497578053563559837561468199202961204533198480085216184815617704849311886121934448284544835251942307931997441572381756224154828604593362982153965986609761834312746520788617392414482772082296340523845677883160345342236035547740954619170750726484407887192388499282145961544040029070530984108749952430308047466334416582773798061161331964135583319236924895170318058741090489386854704987388714893174386188057188127432821047258166834440684553312091525282803263903911995983114807756385199791201378222357011203409815222757382980602058530579210666208757387466925056800538227298160079269734222176666641190114140782430167390669352920478677743524577792825592366112758647457136446236971155041605782707352856457398762308011801302995552911906096045474291768852110969673893048413973160563476599342285170889639125297171125223895393777766164341299536540981830954417316391605055482709496198376712869870415982767024944561904800301066238352645429835864134453598364034222050911748035678788014106686090693784247475862739393685945185443686688202356647790815124985751959937619765591823982736219484376514917275424765607754990167636686501012265143360800282614178384909882822600630138590359154248760364797563871629729545762386861112043497426062935488301374377617948600101572877415302258636284448308561945558006666981594133008392132377919970146701426200499079118337528415516793432721195085108943391177274786773204748018953711185687561136575407968700377590581310083831464983853516169143099944618488900515482121312204456021352719521580366439026105162224402713296753616942347943411793230916011277149208181133183131924535901183276637007702369702885933804719157909862964063345918065072819127157560238744713892673128229941014528915296353714556262182887188631477669874168206528887919189942672392890392744341574543247018399911738806406511087576412567292775816589430083177824311202891227073740721318542924306693034948774529472148434716975720382291104447911515007799793179381683464991143851583502298388737822400111635976720800406945020744329752241684797732542912265445261916886454082870401243537261747155134626875634056366696409865765053492617308578161131991108453819184033002321138610574077483862640366372854597886348035537152412283904365020854098788297743205789224413118292990702314141410444902130585378482325791269138078373973010596376832964845825750814366441637518657134688472739379433753703357457355688815022239290385657640690738653044456635568574927951344984154083210871968202504101666092596512558822842814473367848032149575153104313218010171438710778256421603253472886202628889739195305509773744225041764413303912349655450316096139922885541604164566581657513870825933172682512368255769423337360694964116381066728210533409008880840164367276572913808504536694417695555669895464964608495036036674990914441370314102106622345759117896177555017630655034897841118220337257483225873211958424089654057313469027503753323772010768425157439757755729001639695989296235564749235679750434230148973853353500183961801741419097973650221630203253591156741593545511968989507486145827469564443698195288088884882983573353043718457485898296335010359987266948293657695739365068723580911512577661720404963935699029769571136864223008666391022584839109880127036488703321682152125173640193508362778913168749800223045706691426330281706614243700695917999487002185654939689455437051760129252112759277601918783581626742558396777300626624208785450601398164960921266773344095092064836074770177893500467278246771792690522617260984153319658280689469754587319238135636040192088634615123115388529627922037222605008579787876836557469940689214631829168933438947427031861331987749361617110919972472798092221368020302914378355076419699155827922986923233596014961013759739396316005779802704223272141998859429906073457578576587241616752392928612956822947267189292725885823198256704146265955633487433795964127141681101663846860289423831464953336784006253413594221557011137448420095197155730695103229440994011420061213607609216057774847263351367829718357554287212169651651430980711285682753036702977170316704088557104382712105036873175456702309749222864805749637937943829490944294933485199164520696736746508347501137847719895633107067236383235488090269197047004018550253248692187320420790394362405911254895640950081162795426540084599908282232306752581617188812515608689564904723240978166006500539171764423938238023789576152017154223350133967931995845977341380727097885868740638086930988107265463987517436362031548768860417054803278162605008656880732657405657615046896651726166095987058750641926881838275204014086683748283016818930717287514563856690129559729817643052790996467794885460810696192675736078585641088106008969631257051713466077280231647478472533924330421808857051815242767574906386106169983636253804732334391363145863259005152279583405513269442001804433690071872517117322201787263521947826792208987527407410481159415853189173292251002135227582568948417861165275090763326532227016295399352389603510569603865279743264676212009225052146865810118006250108571485351838244923140096842288636711164080879144931132829309733016134625156958428939565825839439712047167380323855899638364800528625346209936227471130664682877224264767367242072694263039119525660787474532130733471281144971461851339781347529181081167122005236750621142384520411117101325117576231429280574056811681646431143718838560707065111551378743537054337853862377897176538582227809748444823060281047811009543557466178976000109102500739891316472023203631834972712811759278038860272547992432167874299354611353287528753249122080860327392186051435721534085129806017395725022891548377916585862588850782095526215944548126946043588731305414935869843401711893269673562340741453483931931081431431587372865344472254556963876724951756355323993795158970371559787407214530155098336735505825829081072249001924871860163821281782975956270084817249294930094371948367623571427506011657140459487463293946786572214046292601689984154122235893568257802414366640589882977594992120559929388412217180720558438484231123194432724557524009688250097602665206666776127514628436491450126112109594575052439367295154078641368003971098268993434374356256293877033302938515570689869315631797579856456100499457411964781838427749790813252252805807044956325282202547256099617208068462730901731502698355331036750246638940506086452840091740727894874889534249282494902619912164276181877778507083102930391679843527265756807445848225602357279170648470088137822670866832205595060756124319462284564558176359894556301076174099597073467219056030045769375504481958573126543827540906585231766962686506054013941457163633846659285903677796044293059387899463530948464697012799371806633169842105618526346610291442831033026893039370555954237660688681499513436592625171385956448591410720931370006989924188173983099372833603972003822306276433639551661673176844054617993035485296750007350423278322166424625692465835678366543393255500353671526971166496238414735326069824828925945139635964039335701559589603420316069278533073336379225754621402898597022723564611804042050473353149173980178647755794140654808989066573900142223070024819830482329097328550432972945063429373588617919420276506926706414119538094898506782269963516370199183765225004945813737301677527564356403236132491540116122043468412597143202467108336448332459021561880634476687293841968847267257734950096505456956683140065296799324462524599042354211163646477499273832537598450764531407775233662337277875017464535521008089399790380671488970321204960851245076957631291138939681084530311436090719547652367457739304037522576469898933837607940858955850841060748627569287643110181920829213524266769973957412820023155105569670177446376656294809281096558562850241570121996140052995073857101073060349720235588999425604511933699181272356504617172340702814757623563574994349479039448556353986861389267048168124451797067264445445113847556564947668775556286960643105632125948266069886804686803001039959912952580618831737753051611806582294227789134429101940190297671515738149145876400166867124138153287113308486596134526868629595558988746372249874113515406620238905056710714703180241273092604048015161843456022160860289325655840633523252923923707503113331378946997942062521365111489965680122457850608352187431582128163076778761829989667240738818930434020951499246737615454622605027045705645847718732718313173580781508462539085293447819633165367910826353608920770210468501823501320889672453602459155013468414314672376116393611028219426549903526617430492319362549848031501684303679479651575577354695449796348484013016928170151516383283183808418565092407559040932262773561764088942978118476105381134470881687204205537686770652290341976845938563052633074873361736793500745478594080117802017609136140403427621905014160895736852078426961999998863922251281186355184241420742251376507092479185656283037927269670999839944277255801980829331702818688971700913545950201064965290706676664462360038059013208086973353484182000665061886810990635094461786888944951916709576279726285418617095350560510269742210134427266506107626203607105205632157693002776738421211010884894184099338150102456037574858316962468953822917973372275000275046082675572647849722470209858477846997456804156654778959927295533763491098389619087351643278029136147239446033678580765429817642560469812149935896473629723075188840947753540330040924329807772236119764562593978351862624895501815643934495727027051908024367162077342929289910139560639047670536072918247135383148478313777061239109999469307834907653351239739694377824794638727888520373439752018514187559180824980843896549515891620851449982039773109992739359940913176313935043963570967784009453909447570548663263295354407176940260850791570333596161256878307108460538054335343294958027825962781152503569610606197633007561665775044088501986912498572975163117969396312546307299861729344337742424170425410650369378178835304795160690304661448421031825847670499741909288733562530840349502535522607927410824278472107279533950499963235456748448806776647779127642293753993170452384450253240701698590783794898297339870032740472181206826374834071667111925070838532299953425778900887538828925483154460246790250224384298301580857836116832271250686388524437403463660803638690089460924367378433366675021060092385536160851429883947641660750233123454745813012198986158924623317907296279959204782882449861206498914694265923809359115823110285512920946271529141966304889052152076754382590733181872326614337468002891383581714896882035481444731055199962974194505156854433499402017339062406476617389759746470949437133341169854974092716282514564147309397839489678720446088134604414394338735815899743178509746176989107105534259410190667572384308681552687465178079020636053243296790028299524694315804527029106201955090020221137757509658277962257442929098281860649983580236924821106335314754447583781253794829431832301089894804735848646061686971060656336694283083265992144973881546035588815747740495314311457121564331856334344699449101659680617704681831730632917271880712641216260787729308673411259328154500464834174741402110473555556775254010206235367895559276613719539789147119108743567298441344445625156803979821619762895959972936437284316794778864453655265463591105928388059563933146307195378631968212069998146475466428456725101646717845377601041189844540455259665349826502441112449525919520034857365930771036504993410348640450864127057299435951753292630307385281792877548431166264291994791251544843625836628091018570717283429079004800159995513016423061370038528774303386147138057233901243762039250446133066486270840943640471903629068882815981645795633347689261720487111687381691064154938648087780660164348845571992968751205153900596761125836725292445165849760823181587256159543375099837802928346860643482806986496372296768220815398183439812301898006762589560446181079331702568494850470859955611229588967987281706364831226483694123388950029535430271267140379177900229030668121254296390091865183967566785813295450629651599699026071039853213849235405952191451224653513936532613056166346045238425876100509013986656396390393025138599763172312050405859391971700657281052192693680931918156872874102219417512071235350557150804150416027546474521963119296639037367860951998799095955680126545329329074358242657817941681462071180855779435208833100331723986587812202551783966972600604451044599869817441648008638025261994760417338540564768348977899915779731106430963497536112087343176707234492796558232933372527140156532924878191466200294577535490226021792130804671521486440138115530911871202584651199856596932830411065790572866487685934695525309129392101447349818351954544828041448219397962862708385704179054487348314346173411300554040032183718658279153823332979957999062336708666111107177665331444613139303239655669561322595589031685322492426515106552819247822897271202795514484301313089421628096499444105114071750540135018218564774312256504117123299220589530836130839957966118114668699301222001235123926656017614667444618543581921026711770020559957787655968153732463069828729722719686463203280570509756570351105738792742466465527428229456330785558419152509889181295980807017221737867254053840730221554444242884945324962893441589842144949438708692073375288712146083490366081092457727458366790858034618384318313292307114635960669059253119430729297511604446507040857649498802701734178867440416750327054031467433920658981930514575455764271290067828246232105599992888934976965954543678347672928404160509696269245998525218843020745287466427729007813455777128230233454040638398826442331827220871999259312502857684319541417858361528711245175380526529140556052818214781483594971882671433958298660397490941563667589418745172366872599157820864654969405308665325327354976899832500027263953857367001974298453928003750445057495154438105579826375501783001870041009261833814432635270767915862487180535287248619244532412637029589736957916750068204492861293675677502616073792260769229454855350850665259788133425874779487598075382664640078356419532897394620067088513307427959715951245839048215771440155895026822313873047693644949073047555944163431944367920867580846760746811413060675821305155456302357278615713707733062698425036152105583554933670191292636226364323283106678989757904008758414390184338785938169221468884809242890445323789148888962379751870440771922944724023300566301536291610635399784765850608021648687621134234605360977635937539061645645412564268475927694157120708113181587894180663709476171892109396423588215686540914198822077089938632039504544070663775472250231848487960687011154865119272566937660123011549983063045487838781709046723778392033630947056380074714417535561032628194148335500542023694510120555975789974431137165933075947343022635518955096605791579849348280249984751534110231652864336988734665536804352812125373066134412062923981699188908984252845314580824605095870589568496638610873336977845556680967353638853553527644636537854856186987569973551072290305676887929661450493677880760068274253026171933403925396459019318016624816225633718469627286866594695301367847707789745113094002423827624056894717844976399946312728101402549129878253230529380721552151052836615565000219370781064810642020707308209873648256939205908845565389190043788476544082587162052297082794847349059313364237598731347320459344609390972959244085204503561627120305548288796258450058139386182910839307524142628643196006514194752140869653032139327854192235510507587322030247388551884877636410763712573024975037152802128849050577263538081090729284968377901178114947233792065788207205550871022333877912588073603377563932089419855719844802682980559637503087031584073171957460130124708402260002402917697300375864791607993661011803289350286760420353543860435426808310418637034749618103449866177409697954215188277047415444031186661182284681732175020974113686780463701987197440346552698557759865247437382439656521712664013310809825100521638512396559185129759326030380705304194763072803440106994383416960428180099563093783239314230567136044711645077259337776604191732808698481978387009082669907956031757277865248020652777942957474563561522035138565053672164841971170185848246976968047444273929306764322742916042107802759734442645053672034957640257181314838448535908612440791567995951792282717991683293704666912682105703448204648629089762125000152064116461132527253166039572919956377828895152617999809220619581114722685881913735418787098692486558079949601978756647492699176836586445782352563357444329365875218640846127469881134476213365582429999449061363664557769833033960781925287256823563142029446745814048705636308134527215132891187204116509007948905226313989737987478033496636004944697592151521130688870642470368923068379690936930399695259724958048542900652315492453310998652686420560268449756565218099225120741193119124266927632007635106325368586003186984269355570396464325901263331355003379063245691741270993163624420169283848238689573615393597918521214376766915455930203899420607728812759536268062763756061585177450154224328833652729050771681169442999799498850242029996106669146623536807075033202418464349207599644438508042904854329718080972367330364119301225910008476253437687688242471976687961225898661040810115679428842910717534730030297832939085029244856742827475604979948451527637756778432735605741987468346601995419413775047323539636219388574149833957206753445799781234639957953505925074887524555165329406683957588092837669512116476669062636039058459818111886012426757301267377628882389265630652397334617009653426054172515830835019684945615224633807574793423922489876801825112798313891997905686180472558000558379456132469416719461547610814524648909070439353769496893533824732484994073352525889088640802870420050560871648132153796068555850064344500510775810172199889811198828837237954368457224536629250095622886072530611933585540223619558454746961919768564389910974261427649769954773928362446164337159692154082210651299447323298346053779768587193936891681072436105797876795237008448827118109642575751242190171717958775134472823044860190130044872097387204086502580413504337131186211068947733679879398473559222313670514980345364214451196044832714774331536628455780716057980660095112532923070090299410636747295010040065759726475742599290363869228314099643244364625205065200760933258047397235961080316398430522353282716398762745110726726565211677709172801796537684409843797542869695586467083828595357204419225617832360216644573949796873616978813016112075589400966941655595847487034354033195046025826953104603858754786383891889802994035297156809070826197553758850479185844604811261059178456517138388084708317652164444471516486416471311218147803743018319798650654190880118499513416307550183821236536924320234268198841128603984560211812102510415104868906945452920335641160999091472177231216481703139886818763344697375281247119823162503156357124122923731115671553440878748406788392635298365070649625101371852897099265623699929631907459059744096964184354074337526539994255065237127477117095306995201110216670384350302036711896986783369242733419793945663775007445299688541838426307725852609504936498609536456328157089748552691909413270475133927167326323042222574980241322341730841298505905049567138982410727033321229076818178196185100775305172289841168889906556526816532651923985547778613614556186594115388589662245724315079625554256217021803532331768360075612044228841421286520644371012638538790552712143974006740976182950256178414349823890469781333336375203097998642850420182200071837269982712544668107461782316688766900997613508945408534879273450168528456460913735249495098313273834330685425016510704813225806327808432517122105518267014397001003209102501200792758797067600110032785934096544292009881456719921909362368047093143040950136164335606701878702831686951504211878903659557275823578517277389063727015571652906189954902541135500819974349809485513957562210447461421693482277954049286534404801099503811823748186987280343553763241980903832472305572915005688919493122481134278651952841019036966759042319331548738829687700160345629194886621683001929593192370501622407190647632593762061124118549967022990461965900389817071929977376028704046418343964818710795788415653724670404791516191187912886332122642326915921897059667564843911182290686758809990385027759144840714589537689267842465103592157255425929702584868120589491847570588424401618273054479755593654093788969433529442701431009429164148829234226598323677756510945045957620967722280204129676671908436725188817756095407072975485098553089462974522628183064477590419764803932293118391500645056861896067354295093449778217305261415732240607244404878293624904142793107902194185264981496571480777636193529386244842060328946422531658840214797172398361181624247472983146410474997841131472360744167805301246299238697285103496104118649549481943190040067131300493363267095795273927115770809514582539144719224903894661181486606307772887608551232067520232905085901701890170549435165272703458644176020720487571211646084956482715452618342011608887084164602471478294690256573444834710849373026097187085920382279164713913727143863586192087736144301719583591144337303536447231236605733996481105318927450292749927706991411495892290044508443415225809523089325697766144887077257749494741174425567352992164765440524544764280218635509349138113599457006870311729301029197011379918799592498197740129114570757949104546552103768786787045723692650200090839227850363740892732174562528645792283031005534476747036892537540529360109196756212341050753576105038466468009740964336197929689271496746162428909866729411345512987256851757235748756654321045661021751230811022748027180786687252611082400524213408448560636928765512144223403505433211241980760295513309390081014828763336189985045851473059457987768758656242487841688465243021491246930901315534644645212822615897988526141827728003542865522154118568362639942976058361097561811041094431549232521775299143467826223495401227216211915496443103137544271077914571244940718997034236873841074933290983317681981960096917177110858959779921484347834756815428265235312175792844225091928876029576521633138456759697424122370594139973332971303157533157443748887068064088022626312990504591890611967461507038548871681384845353837622112919715701903078314358949948726779489999061626852070845202188166802468848709185331141522771870396960273031041446374351529783220710985192521075587725878637736131482519459707606108810380449048987095769358902651180941062868452160760006456703907894777797175604190587943776727513372872621775381084845082355911079014343827709675083676691056502651504781722487189135068825837499350892724063405366177561038055437734077349756224709724178549242471840793309522793253267887088888321635989453511048520537796338095359061417353889308836535705566388212795351916452587438159215758051399862315708644015013987662950800841892145608432275680028547218459152714551817391962985751010575608126112577186065758117956127419906800213362599935902426797648875156374601114774836381482925001384950411941962617459283077993166864166930260088889582880316074251210960105656489953601109636709320068760281292211142052608036173826942190503206249940676572012130516076137975062913447311841195463134386701011059239154262374448014566565766336021090949173447374969048927613882666647746143657779110025550269804773751290255380516347492207132041045648047541115915653866341222607271174483102548659357975745721747903794608089739520134235441941430541311177289793844665794329305659435660241436964604889140101709553885369088687996541499259934890393901276087384388473927190582198082257760979603070545226073716799531011517783347317165954131991111079516970871024485300919293167532064650292391711976795970298512173914449291184434229374218310930664170683440537231063712159957828360368831320409658951788176335240993022437459660893282971741016290788580310373324627293533535883059490633885424997842869614223475183795095469603099158036958327061975965329501845503026299491359014829633126668791380402718885190945059883699801665611828746486501617165395061279121498460332413935323133031272870643004799528586296690280664927386703785130004366213976629293049151235277064819579255436671648136288989131379160706285275261864439399977288076074820274886464377270945896877979672381240487619368720184143352199823197262141751816813486841435571475924109308002352481706378412862417423723170447232428769388875891451933629585109049627981303260448134596128062411509157064639156059204928435609441779858897905782378923459310572294999565159203520789649640450166048513771356064791858110071133612619494345833408783850112739442753986274605247120455923648289152018115389222065954266155679390392515129314890831358545208469868406221713993614876021199625870035886305698188987550612972294604519132495452144635191819435686313779856817327204103622681529778244962062452845252647562295927476186367324728302878143762783598698987217570162715534174309255893816321686387707506659420373626412363028814699331897006224531411470143336398206890323210404140382083875817752568806631964514416819329814264492426266283075960993714221948453740434373503718628697152188588386495693302361787901347316464293759313137349308414272228282966667733336916269787071955527389397103104756727221154156757461228698834697551006005831566692611333632909948856707822896549529110587584499235330804631028356450656991086454297683214144526576353128807271575672777450969276332041288274064147225489406941047714680815756385389191879564791914432809716811424396533730116090670463765169748796041662781758051573390406393655357354835053175740551788911198680686353638866417163417590687189969327598125037643566425146252264862815746623223166957046435337338643368084081006248557957506351193466669108402854213568987846077132649239726354485786761255455935088174399797781751995188797152075720217494367433874738397813649511437497812821371217853364171208332813754928984755803603268557306169443755935855608757460474161831407089325929696067450686583299045568594642225702115446215946966499382544586822053858900874457511935025177025791292371071262355582678461296174169832951838997056649256044886878954172808868063681193253293758140641126412507295582348944443820786413742600087137811254685372728482311928554792057022567596675581173803240588973094777534244391163080530707305052444409826874809381546878305172024108478686362187168494665136747686057475132717004598445364340899835657131464065029966036588749787054028576826690937832586992713820853190766827421828587196410218793902259593861706175064700243227679570542987475860093980393690237008766527851560517022969038424539233096832347271729158397846103524952627742264361809260050388534594330848142847187922163599384242575809111652431125291023735485480061731109924525885583267917075217826380573864438367692941136520985971996855881209712604796568807933198662320399277395204633033919675860235824712403393506494744111245061450561154808897043931883962014475685586463316596262169863394300148763374400275243237634610080718259397264545277966891077047226502615519511166118570317409089145726669170978609743167189272325890819471718088407506795193642843254037424277097721474890045924794477664339427457510043441941562149194389584638446282731109776601798306199405064502386768486522573616824614631154398562314150720993590663614286385377191722241677496540739355474470055915718913783178596032868047681399955902750085397285830703872413019870632248063196927754013509915322736309741333513136532426345749428781131732739327656925013778138529218187047193715234882407854229254862065500834020197340134971795221341563464911807455772123985323622717088111122757091903842093346928915896631485780863845836403513221051853708338665327070868069869546423696206088191384549304892990647454898560787155253190633134029981780008818921360369678926859078726097032704175266671538555741546324448972018055776327479735910381301229462589592095161942718433753761244255739234501362263849764792644981180223386235609330060469618316135610007135951423756351941951494622291561678164813679842415182898209203686587835367293156138689860534765983407466926892383529429000341775562832675177504414345239831679770762037577871273885440849099245477336071380148712548120034556024568091669048315651243094808542501899577936434122953017803703219493298033715850829703085202833321581303666499365302271921813628208497136328528970781829708476803166707486134121813255869649942112874899719555292560151773845281936426223636212747812636124771410588667827543542763671419402196624287121351872410265061528102232112280697641444403338351445976130887180758794736896799433182354273997484181431762575046900614482540883568801617623878754955239911559862465851419300034789692407258671384331872785038835997081612131657282253990402786948225600309891107924225455534108854436554515231184600346016435262652571522094010374951544586408076048456474616944664091763276282963264312839437375221677828772153703582060273096896420739943268256034561063958575647873568036026193034527734625381421882651195982803829355284098132985963836257270450607507572034389772164783277289328131070324709844434241933647758381013810042219045759510463787981178143761167059261686627503895518983758885798358557752330991557850949812520999826597245848614421862209455550956815099451748595843429201427573056364557036924375525631865782293528230743187683060208808800818586186833661988915461241609801924206816704798191524987417071368967524373631376249135754702347381150632429557433269183670991552089672407264906572809660330321461463897916442354002079592984538016584806388545237291303852946934532361527856350501948387989663805024469120282879007030504226243573863838269383048416986439069534307323633569007143810876070722306078209474531608429951689262417549430587590410625873701041365363851809762354913388910303405587604672616541098035860690305261220610930160460911668410627449318386505396715906307816909115516832748342744463579543815326129038387854284042997431376804363795187865849563534888740862793966105777720540817687329728747986235211663601594337492502101549066794693075153930353652687643574335580848441269724381032151268470739386294287500659351061513305494032535178034014797121902123785119631521757294538622725690372440987724609927333194119664678526652027908813637808071648947072662397085567002149252952263219136520036870233670998207819727250334469783398214076265440448029082539756997497048192114900169173445195501276926636797682797130396464609802763587602117745950516015215499557836278351138871476161696266566417224939352506273020241563608371280289085781287980371238231861018287815624200128394321494064905978903898323419151201511679944049727655938182088086367514994902285193585875350315076673204582683841487489562335194575718215203846259119584737873172305087221024051967261670669765613445356015871208962792061663003353383697978202930704867307093214076713051329088271185322504127736171404295777547533082813282009574116841779014474049483706365738162557643606219877007448955006304343584994577058225178195615627176587267113270175068322923825338394362965059717753515928618691937626688415316526068146069264376856390160848783117469259619459357058554307116641917042025718707968574012888737023665938747648908083621014435372883160746831537130373915156168782726481325229137349680549649891263653147382443500253638585493429091517125389616770068744289065406035068320978343027214724027330697854225510505783223299233051466161579878375097623698401908437710583952180572923913714819798528149712866183262097379034306242463035140648122044080995753140433859680484095404684247707444071602915730863143108537072269544908222156149733717991637394985029048559946402743273818373286387155317283073120058924140805451704615872122010796959966949224925400657200360013135494602199498846214468586262662876470805772923202543267921411923017632347944326693050830623764642887697338671429936037266110480693692374765735247486661082670651758527839181118096363410603608053957027625647790426906069159105262885542033282593520333153023823822312488993152966850816501337882410499410750917024199844349410220592169623280766272083658452908506620783390760488112093252017432433689967050127682228900889419746078297944979249830023900847425475326381726915316065366072835692792530779044300157756912110440337680488710551133618638793391201581988215750714656879821014730227039467593097363276256771007710662303908128943467323380821287646738942496628240990935571244376442331073127219709018549057440555251022621620095215055182393400378532974411619169142835702330243294932004266918502877921177460051496060075902825461521965846750920167899219319436839354372827853916074245452478752499987535761721452508188367647166148103820224934641108051771693682019896026665113476173860189176238348937802785287686395037484988477451983890977426057519450516948903015135931030298683842579136121874232975996876758383539964435505355716938758831993392379813954727795330773938782925595816867517141143984590936636081247913313592928458588445649213312743356141325114795833145672754623648192473035152960049184990752249233984984061926663186687347690463620664409596062761098687865054821340472675118962882557615917105653399139202811989792901598739305069022227549347833268180371450932619885628073756681708404477969078146099760818446401165667224547631169188897824738198990080369028579430942283129537145769001069885976824594721244192507070822230149830601353463472877393811183417716378188803306931288632675807987005333120762252507651456298134014162861933097837020384868835144631813175591104898572800568512668822376126600974392471125417528614420069029608138630984520283805112575831930035996667332650140926152226569033712988232277293696396686779262356542723192555950093825608324878738396648913011195492327383664820222938655414535043015017776097162138700993543085359190426828397018742261118806490418090990808733448293289654552685097713505575818080539850113394206433527833613730008266611890336261569711888549582866376509278081303271199509161270553649144010080254944240761601599744818843079471035003306162768786933870473855584871843942477457580856493213258958633215963692248554076471939851148447446966904612325009227182277456369729992780063107131675438019195556926885392672585360632757289086079714901234835724126366127309427049571154117943305124359737194892706616307283245036740743128023374193504490111928878639905381212195959335051878836782906193023114800276172423242685784421327906894399307024883865335884633736659162783044844256733947781083587574685694829812893065080068933091538194574232469929755155103734828895011304292547552126509388468021679990316385397614481885266924783793609427169936618737508662312132079620295876183224285035368762716386953316204155470353410955527842626647072048068906075398938391613607280118223312174564320500043334892096342121802051969022385892236134294540253421432134936119279650805773684838721456749895817214531192826984023478017193327791304566697603773586493926484663597217175022298457452412644260321599652892688296897797450827801408641500375412778284161439059465463125530420014464627136528526442037088899275981070458856093775489254009463215109073271683964017537296270805359215993118251641745698310626711344224936901217087846181037227660410370451968146152260518783940547435405873362465135099493182898616407775435117568885740070982028563827290545403243709140150743052041194657570646973927842140938404177475168259996925279240489739308240915396018077717013889628373737904160293918281080330311569259833396822133251669364254945658632083761741544336520410676910555294522120400354091705958331451626079959321618580465845555474900122113044901066728954480513675557778299412187477370457392294617250360833762814146882711327242640398771368658027518263492637693607076337949593581311709437468116737691310545813447360861382941902899987907875151097620771271625285101394130805178868081702851420680242534712164911874774404904155184196892352025373989868501352939000203890814850538724375322258208124872081384937483621413220215974557506059398013002486075103561094723244933310916274361776270166498688202581002589381988656938721400385368600398893640465066910922455815007210204043308635025178093971034006611313567623429860828168815166479661423082706335085907339881449441363102938401857825977507734898080250101120683244500741143456861801916944056275171998641468718001090597534560130322103231723295840388923573589868525353828114986678056610042011864487910833014609938641856304324160545781704412426107104573502509700343383179932862786938171330527146623495886432364535206698341580906680977948953069918957378443008901167925948256398744109444562069652275367254940769063945720546652966639504801181928581589070511961383440517893772251505376483222924347698867542591122294185168122451283749122012282270125133852646030335206945376761393189187902966109741151749332130771485060424729567085192804433313848211097783570797268654317902295300222999949175701741764164216337995955381653580577903130622597830912411050430902894759416914952341808053183922282840404265453358675117640717637236587389731017439297178640894286313478574174587802405801782787263163113481336311664509529431530830355927307236308739676890933308617400182075405100966769135429572136402320349769690774474545422693820385921772989843231174294304067071149090125725324218819974512508114573018966017086932128415592504220719480847969170297789304663796726450874257348848626907433293158355386362816737446488725052069081198144333464047929607702464746881851168008137072997404782872824928817704783934277466246496812764246659811864479719296395073270681485813206073776341067184155933503093893125923275650905430930883447845662378755680474204756028488034730866275684517813203118081918084428138446027930413274008558301343260303191521183973644909512849666804657637302864692191039460000089695805128426340498019131716051656645321084774794039231270096992734451927351363830436837837681047940956264742370322646999852787536925753010841738398789261360272225094001534784622032895065680376605531429199532354959722937753371770368907338519708111369995082244598699852374232977489556429825674148889137078380878995333200144508710237642171611550777681038500848908335797347648482197215904939674097808662542028449773849979905936331200105096918028197458652040063349098207441851431943268757190645267188873254840132650991096107468030746842361873280263982052629149661505591227749181008188442570987854444379849465307582636142000177929367469832417748994186233563938913921672290813793782939436582351280562004258997137900778755082223401352454034589804879384730657351069333840266389221481545366511532642806284006620871283037904203174532074736317644767253369475269452234035522443109773206285569397673270419636215283967369312720114783930796457623345755616091717695407851639396077542665011294040839616115624786476653498109460463428134598785796377580456795431535110950220456801216490721132516027155814825843974819864818036276415491877690807858120597598263517536607168622281623899045285511346476041731461069001655387408803484484193938211712947028393678461770927847674689753622359640145353929740529696359043300748373767254840804236824930830334588843380668311881578848758789635762647759648720874493669386604810937102468128786370212433045245703458345203775979615800185546375583273513057494531770258319372947051268317717534003063180381593407096560952965173391855859465664750977064470577918299934968185169017263002155446181421404955754964104584480501452261499242324250052634627835524609164355633340006603775423360351461759778654083510503984212656353090040434318328521812835272628343752146790042954275093867647161868646702378274968499563897289278774659677080757724448885264460115659071172390783460904259759552583763184348547712471448179806386080092343199165743491506971917796255403491606090981121143528505464363757616152287584621820928518503251248968920344484989402561173170868057605902612932547870561743933025126725779228194908499642300427977043478391541876379881975657680843894719583964323683035299737700544980374447490222629553087836099841422444475614829771343528625386959847162255849482274934043507068870391672488864357206270522536617982166272457953294201790507709892483699481660075918925567519388348568221626522874047185877411466459838710502057593777076951115238508154364769440449617870232461165105165620655806718121612658166437840110375415936924626242696408433156478333894677747736277210629901280859790708722339476270388919141756247213827061486938892034151852461038655762504991424481069808260127283193003855280693963488349891679662744890563791602392430228213923092778314775100347525195398595872235109735937942643540170203623310774356857394306233182545090343987695334182417823976044127456041512360738249674759957915851005588734066522558917790646145446312835314739495598360235010743582482437771870734668223263708576054443118410362829970266785892255907014343515733952873627858390847245843496383998928517414269846580555014577450003974670249124634193333371607438517727393371967879374380727548537604409788120459238899512502651006649984366939770934405965197203046889208586051338349731849400875989116099477630798300484745198970924654958058177753691670050629716036097430682932021626034279585695411245554864385584531150865682822454249808106224394330033034911698152656489078518758699124522073800009819112609342244512448194400910372924659177279212048513914954674978515839585700822472304833499568030573557738970055178031652503619973726267667622610880885986066678151903321458804661818725392660796073592439073414565435203262168595197948215558397802910498196232088767545703282826983266988646748461193259005103952653806209778659725311687264378190824181472308900075362168923176440736484790421411944592551785462952947816784435002611317121788480792263170436018188229298124096036821741126861177542146263872342786247649240008171979099521649308543411801746447700948107769218785223161735559491904415578900390022320681384824001261264776137414348459883825977036396585542189073258723972649374120621630257877388391451454949736696494045049371050946814244824736212047891822430686489866915186146640177450270113912104312627194144404698893566814243264621229849667905182218324659420306615108125793872014225868437272168683130566359318939301223676590406965988391335553739762096861050301108752198596663409092119103864217996757659756242639376277966507458408852209007995440891130187775202227145860916841440005440635497992165828634618215775622980043249118484530102776472117463324952978498896676256935336392279298518332809263694801536359274958774245290330004780885515425763112070017304733773588324188708889936276286734858223257259410386591771932149185328264109464842692919287021611683569609511198075122101484709093417486241113934039091941740894847277662500327526346943762122239354042212251666054187651508485258104233944491279120130563833826660598328143385232633675262364289584831402331643431206486694036702694513164653606236824025049295880937620075431153514298201325745482943168421078707657208812661535105404876314722254181831111314005801242301955975721702528294431313257991587664921019435313315744996503361799935419050020090672042315356373220207612646930713068893281685954613207371518256219371058458695576957322546690256703912825048449698393577133953212366802351957994069139688373518194094697743094645341348576466677382376663411842277153112373527501111689969132294154351106701012157732070982732713003584039028381612748235885607573470196474787205288806576380223323482888082793966149408647978560919444049644330317664366078708501888053866867093067535645449239823794930882173430033083578249898564677599613085922964206672693416855340035319307660769364684423330868527850294611338462323414911410042084146517306499634361281467506204741502401299931108307898969841188837367750672918161746451798766309422615574151725069828794763479721600941735548576946515654852070160263281221907038486286486800501015826213343274338983040831028027632167192419842438333681635077733513402699713282300147241339367126306284654263175315788930457293158695833867751007138132290374938885511367472440750944830436585492085452917462859542970162801674974403928331491431844856597487735589454475303707015255216001682762075737888727522262051721403894458815426179000664384182336970544751970471665182079258540499424913482493626083666868664076865731422136388543067540317790288945356693833044854107859400123087185118348464451286240460144578828123259898192087055052632414664343226554543441308983996890676435396683514684637176016785493599374396714982826728916072973548543838395163641761671583001434838625641648280451332155405846553144747591959706501378762923814153118378983897280140897079072730891577940472197373267600614552469123985072795056530729034622540643955383286737761634664312951776642683985558011497799105757050689709317181057629780854558567479893121266483850522004390703278584995849247617925534698765483315735950914727561659528251584863441120100125746469376822696245156561175842210590697620753397338439187264830233475079894180547983068736097572347429919604337923959622484812713009269662161058049196225902911628350449704123979629232693428962377594787763059525832269638014801148793736687734521129711748540113054920957379634873786022343254877692999252935508188404820380029549706395884564795078280815925440313328301209434004941063338169512867814647130206772734751753271309967532736722578312120911401524825901878066745657917524652219675030554519460180947699448450434422345441272507506627553414498603633855517970102773591083262947886683047242960118599889077251739385015830069748344684830110218825656316485270152364145599084726278194072811476800324479129378567762131661370936302469797837294804408292023863158654134443718827008240762426503887955839010093790667698410513659306644208549466062006981806049314220987183667214537433888176955121963263520897639842468601519778108686957576577903618900390570477292294410944802397120551968078502240437304580182560034656711146693091410547464762600223825476996064217283153187325681550781067160019142702850343763207555186592981620140692782012958001863963785460191612688877944462030840504662439882751784644258592613388380708492534752622133624208646224824950527295029525119321148115030483603214064478166460494646646139238749492357987936902772300078107718822541770369823705127561120378938093740892637325021735998670061695021439135239789081315199014644310473457091912156562932460647953158485081646713072146967506545613453527030557578800467832178416938118278464176337095527418771739190528905804096688079616141662512226294328685098034411818743385012036193262222094913319396317619992911349471409923857753255837857472272740044635483018068319607682413368350738097790536925812430754626134917630801920751236698856259028721699234781621826413654175334541857453284171636049092022187690280900256192208437458003522175021258842394660201800653363199501663279414906066122182507683976502608424902944037760162426603583996307363277839777472294019085317504182826228861694311842537697544660992580097506645314877642948472023233297849485104932052057814403150904984004986359429139598153868576872034812184190597247362537933035215335658961312965751851771527019166628652035594386729289595289563795459127860483586234557523118846404899899450771900919101098334030098070477656876144827543674662781184903124242688907852771944905628260534636189143262948419524582675055201075333771736832085189028245655846727250420747286807530985780907246714141215200738070384703786647957824059223481464069326836927371930731285950639556418313560010972355405978241151506861001859223105885616268874942042403131134799186898342954152286692283647200969488350672902691192595646361322976064891448037540767831987680376119903667819639148742475269678213101639180526734349298978304494827342357639238359371579796470342831044940841718929751192461170407848689407313427668434792548879711494443772170886576053898923527135912088914403372368631306958213328587776056665200667006998527432333744145235176419353678628970700867255542833721498064782149984854984176004240843385099395859377096246500804898741686432471296406151341056785052436798038761464283907993855423776952176844252144551906749820601842261896840700398089502945243548754138769147904316757853147309723885743438311022165913525064196319689854089272500459661259872886481866406728656172614249444577694014677792507830739983107561322160126680006275974458484746166194961474712250610765476566013665825150648016897500950883309191753182046074599897416915195919730256572444084623646674028623830137336195350466416892545935627294897656826759902206673820788965542812546696695040461195988807170574713260697725711274651620396626377870592537597370107295341581668028415902347814138674403976847667626797806036826461488637942047394182902870472546718301357448472389680238277777708835033712627890674292199414678517425004409633089391748173399021749202517547977676031820947726026977076759597505596688775108034999831878455167334740488584830495704772317619912355575815672557259431762125960077599959039376544817493326047960433628445265093980209231245070875949391837209237184641965457302465035291971360083517711726621108503248638786320908583621608428130670958220995329826462703873863735784629562383941143961437814606116218023587089341893881696285452301598786946913674961312060457424330073443632147167825131717779118846873309673484256883057994877148837968430985476122902820954926533879951153765289644143533860172303412836331178006750334404583749127585586999352749782282329297744469205828627884934910417399613281739456086543752356090767857481969645484892252932251535690606726588058634506558756409718326870690435296879434483390964217553690079941141567918157559204604088784199660122224891026787527605751920749279024493507198073285926875661155836053348567245370685395066474872144054678915352152358668921129604511753868814004150938311679093084698776173878445575390011490609036509175855026302634926071639349017997332721980397291058904911304960709004783413968177126271015401844400065977152778437277360917982902279213311440569229464014431949369383753338898262131189242097455381736773076007262878032100678265091704292657431435874926134544535338149825948208153302929676803760706341360982299393152879816871061083192135395721513079528427158788468963884871631328011938716709351351128497298368831653714679519134173594074093884597409706997742475841341817035415529365192210220399118662269530575305996377158169211222456279271645777920382783574163104226301057355014140274200948800525142099050234867901065847133148357357151417034880793636301970873572698259534764921957680250545600999925119416609480935633832487809238139907454168723672169703027498944317133954899190925140239857485732814733434934732938130534111932232391521414247921191098923896462209861665656261479300550895332763570063734624523457637110536247127916460930008622554070564903561617220824647738804868024890595890751775853039322949398191355987407711425215128168838516067881923812406553634302586050459161352903721667790847914241497515555966343838336228196452493761033060048653675232336466416616012742841249147163569689183840325210735176419035393193587347152097636614674632599295511152348899297422684826607228922880326929767971963786263962415680679287087568178263522180940093296665253374041527688937006728403562537808888865191026533810863858965981160684656240838965217032315249312815416232372324856851614938649194776894575685020073734749462088158631893053121667732851583715134485413359728760884090706860414513055987133828191819632667716399507286175266882973418979984729645015097030723850287477109083199080700738673557706496317214875949587574745021855780318626390073891614002414374863813786766727177344030467977523754223952868090865608134402873028787137563239720149012080957316981232339118640466736963690789747697882322373780300013115353776416090946401821603896581855945829059171493408864158181138017035693907622691005327237096480752123633659617254014471711410971342499737796027674605058122002007464482193383805174252663183500861344982442360536667467504642065769302811807260764499151614630209042852727439896023555693717869972842224752178667574721544668566996727965760547032650551932628078901268970649434566385271743096883569410964373610115991693837000012478228796348282277877172714342766707550803169743829217549111836709958318115414278684429941928580555056945587838233173343234961215879388580269521570255148703627826934561340460106804571252313370269339549439139783726156509902623425573665935090650581728008123854405221033846146931293883775480239956117192542862308058662812506252730554798062234171384259072105238926065005697320458041146138448231525362962765005273896809891014569494320346096590909198952563537550845010638579105158448381636938729941548242443589119501245750688899436841740432103909828797805984765871313672331860456343214577385660427743834066643795891051571985229665441969410692095963675879997874811175539115069501466170224083951378987342462786129653437898538940881420414943444063470158252438241875924979296138127504651407823346497449232787430854189970989827312315244645175848561544590267228296666196095907632105771348899986353103709832653861119857502574106733918815646000308845934757037592005988856682580607994728162269896344364894330677409493286334486399857397721949542235309588856203543047853849750309648906935615099923553277966758849395862868190208409058796985805247151322619313213549569767281178197659807311493473304178590125285961114540880849319272208022839297237105234584699062978744399236522829038775081373582908699324614580319088141497036442875417556350532275056375071516173223908379024330849781468986365849713900108629671825807245220914903800900885949203361413347428937233650572215476820676548924387955695197658742325878801035400114570054010404360250361793475920434412824421781036007812234458816403133488308025208329456694853517036608001612932272705274929907876835659388251431041711791701136306430778727129882936429851295519583696627347065925158549756840718208157267327823739007055513044716566390932959759037736941491447356749673630528840345464543114554646510118358312726266772233173206505727475687987236654431457440730577554277565420595103872559042086758588085397582747349462287601611153680359256767471471492386374250358148173054135812270188476905964336774110717268752237540581580857515327429039318356108002362912559170040576725217333324738372336682360587134076789744426533982784534331479283149092738374354779245257167537904965395394404020070943824532463222197203823844107132226370508055280822301856125044306726303968374594979319929655578258572683614875050922991079173008223750397634802385697398436913511648088440330460863284078174468082231756343267251473590816010531614886115545239397038244566109132773400960592410467949747765154899997228813513291116516630516141852431550868290736261892294775035688544284649609996159908184592166599349876164054523721516458832814184609715781992895604501571694607485771736437445609891067931993154838574721119062418722619565574344773288606321800780047741692822535048857717458836521677052195798052123473080247493323998766736802498655290085792421637953063366823158741280017443149131476645829121821704222668997774811212936604338767716627998862222194679738519190603539641635656100099006617628426197437118577464722445848014898893102511016521881136689089632884362314271479280256613871005495367766131849236241807443505243736193111637932785874583728508623757493171383853815473866708355414397784347295367507748380577574967285926519956538155894227256868673970326707449675898498505688478257789511032843516721987997658448167810953789255353076299694380384587539026953377701106087155703227341929452860874150561440911628949501834334142549837857994221062021464476306053636360060375641386432529679416966312309270878122594696692624750146093695792900540594174908175492850326783106164626228342851726873325536163073924578653125024151196788971654781220978272808334085280507656565112993585095953357997819451119876348993582957186311672991653865987365128670798839643627750587035530143648917483052207537645519063978970480604367942685343359149818494282000166111186290353922315296422067629818256206071874354728259478196793776696518439135273983067559088776687464976210986820358933031036250208210534716608187081564623338556308290670817591827229362856224704585377584605263243733913029676232218486841260572228996675471316844459643732923084921263934704618999910425041624145584528747377776546179453708121472133916438105169894275275682094228093239860993226180588579232553032147411410316725791442638573653145140801901757480041100367565531500128689434637425547831863412093411985491694805686483739223167954124831759968032420577850932524598747908260671759610276232730702457501419944362985743336648536479295683053956010576599865970845279150240467982098958415221595080295997851042652919297537235768901789063089572505907445158934099214655884394463710008294917671555709029941310759503741452970629193499336897395894236304292113972502956137844740595402378277663125931044782345474740453233227647949715751913900187622339816685990271514280430051058247886177236300631183004969175904130477496171364597656185177133351792657325296742999264250561923876987002922289026664260056269038222537086065343319438717052665937600252930164549308069814514615960174574807347053620099375397668942405591581378247519443860160516224672625127236608891098885092537216941439203689520489915344135788192992533934930870264404307177135404351812438352001936056697149101795382741142494950210578253086490023790600179879143570976475519026190437926218684571192558628005719504968389120217788652910921997855488219991324280522382096279198451277610221602584189390656433540507363096799682211092731761833925029904297416541112082999648985331202389264979623609514304416586665354953027185879084360909882679920312353044601465152006660741731235173369703049951140539418591198439387965401369123920303106131245426258044300721442230215595735961055583829849580467906908241218055342614129655957589427042681231274020997259653892203403767821877550638146699671201233876859209415015815669089289241491946646270451153206379417310336806609826519086471366928880023282686574502011026889900321842558903985262514828868806777353313327709795852802928806050878436206232825809089484010514981278787518102741308925531912176830621747135027486728123310532782354916103143606751096657485552230621409074843295213161957235280281150072109073866879554732140014650869945941234993039076223756231253001544904035077840248505609202107368631611188302321012917798123316359042508568851563997458255694829436768108655763133114294381871328776931270456575766470860511425587341700358925067183128538664598277179536234757465242146462625630155856125713168611638224770909449456315118665561210284539787551028188342557455134121879910233868527396150122434107392262906800317074647406930469290167407132883891667131856747255290338069713941556004810617444879138326334419055350783496684650190566187703362905046050856843060632662589617958914933643532744490197424558645921462113532585560794268172221138547713576763391319563854647135595355655034781860973874103408287102497820720360847063563741535544101223384259483012593444717382204640452294850416178243903682093305576889295109989762509647382802123972596931630435461795691453744325407861794963830727449855793529614308094212327131337627779749766172660656755980143862468707964011718393852563102301205337731590299212295717658216241424134639082473302531191402545964774948780609367447410985721585574258182501306260304266597675501114426469791470847244908471155513438563721433816793311561577923756473426635480679440573907090017004573469176865645699467780916091285102694775393261906026463743961164974293635449093593326846810524059792407216959149743751366498063729371469185059486853602709711455592749932251513441529529621657699062100346537201897924479821663965555139659448020274781235757058536634069651800251880205342966345519770557079855955933769908055340710214062637224428375040521672688862066303018380102709583052935449297534157375787312323339949178728497683217770057148902791449019814784343948442270357343236447936812438116370741657719516918579623331971218233406123144939881996769548815815178754597399113109368875488535281958659030964443139040074362108659513374815023096991315768699122947023828746754665219400541012272849889974189495810505019620934271507677272173611397270515357738884967414688369381099465271905558056468149856272179586681579013894576198174921178815608978955171315926538925423686534254583323527908685269002224608051690649223736418859725015231196578883088853670912743003147587215583370553506067329015569164381861795975504445273727208608574889368843923525790593320271252231406396813194874036067948633338558017414737596652724897637593526423620552279761242715183011412481413441222287126148831489857392224174658873529274516428804646763466862497939771342450586989058011179406454041035346655355949760336298651117635687090230619531344072809883822693692421460128972858568882425529175678919854626348567281440042745392996223149315845033348414771910795131089436031602137087594086437834727721799690763680539267148004271910014939096511315998724602740297814359601012432150584786509616488797215234672257890645154857965043127870139307040682475752053470296885641986303246831947305383250721312324581646983679063262257785457350042124241319960291549338781362970611985679038632880143451365118018955781479737178461294335032106885051505636126097323080970795861185622825471808038283157616300458826904332794863448090120605855319150685492699873981211422312394971437111979995003281599751392419546866093493086634314393594967229315065026077529637342989145884781769037027246309674344306708321000428028899377199624850605451652589939725448335739883032113133776266759021989960777313427528437489530082443904522049361680975309412500708097689087181456397736957335423793169033106195384200106267526996219586129598245293416671147053112869448531918968109004122189208695629678404613221916800988027469171766333078145353503666745420269920426063381732234472945804512874352232287851014755584965689084481393596326836966096724847286584728167295254263493817411665295590874235961038408783516636748825549897144570001565780614903129047548640944749925311051406799152828473726879711387597041938883652503135560316475848759603543607427761029280902015851017389924284498018322022736508056363036148214707783106659932029879249014584089538648981380691289653745608693445485677960716738177647789621358583763933490822134173256201998869608887120322887745560520957170686522355440837660242898382714340908834194137806535979985300419392990793429568811681659128122336742967479018601428796500146059191846911391349870528191128886485315172793163936030746215976589531616181566290081965255294974170424696675980927219911468076675517814881562091609347078412835272367611044578100488757223418130153532915941488419632725566590139348557240626747889614133244834343819827508642296497127774231393712286227946340361024724200254067994773615471074731215671388287333982204750081218013341112045268995866033946847354552827179951354004488884336328018925352899038473362404985788262183912682070649552285408022014924851430686260962052951236431738281348318637490944031427771372737146928913317982568961580611484899421365390357015994987688528080706791386882816269789283349017448448634069716236479794239525956362992001888971787872931308203036438341349575684254945368513476756998101772148866784422078310778003588531284690489364973111884453156667578213509365568780020860649722447001897371589066258505894129429362668821734313857620793871848018786115270784803776797461328060141737883352349104513296907755247083819522077398158766042716918000870617429211543121658296693184433966168576969951561906287341504510310503440993825284758893081374643494876296022719870003979163585857117003351480905951732568188472029256734267539288247344326150040179499227551917032705455682607305069627968982042412188840797087239935701768047258050231791686469222362814514413218717498382810056235420893819522893471608645015762453701426177275143024075834215598694718338230594220155764624593158873723837114655501550439369395064473569602213562822321663592263427158601923663752639589106294400553783492000834801566581705850646087559598384846579847702771677695922402005660841991322644004410775268309349393121667943934788442887406009751861106607141386169499151013595356109026832284220815368902963025673742860506026094149545959090435597414399999614820669126037664064339124890776120135808468523142551312616949767618570104304220453787078626583541403874122055664328414502737208374102835335215620740285429846095736817317536377292845593644718790752489806941291442397532378430637008872683141423197140785203861327433241343411945135925115146773727554248418868964987965966657382406274081280393009867964324580821912107671572844844465329781803596644144139183051261926317651014712096450248192596238361048403172975830296593938829629376568643207459919053554212189776625550965733832525519254194131497289033467858141771711783483829208307449900818670537962594904356782408119082606149696681797613041533804577395939783118469027181654748778470654294679979098174312229217129169579135603093995605799528605170857018886393214949345650595332319465956703940779408637063082432968709451288544126180679539694848843305358971127783056008346478530322436051696453870917386460814565544043736506464463396630122005571638910927291557307567209403067683561743595813315770021805436026682296416797426809020632602700205630550179575530775835707557756305677962850760072849030608639307115905179750575345314046846022388107258984255748373900288435915776657953794549593538245188563684790482440087371166080154627981216957326689690627759126679967845794835069134202409427135875970289150387611746136068770671468420949081949160460438291564577745443054399073253548623183127207819642874258873456973692225754337157192642959191633326746585653161667460507806138394837094457902171922485450237524014701500894040057754280750784982937068605436269750692816360375341481083357351779724049687238278914497045359147068928179963143632743233269299850372213786889002479438084625171717985545057002449587792617587557100300374799584136626201640315548163474438569758906902475485783936558279804650486164044505946732418007865177123081785683593487811788423275741734339372012663210588258152795975960816999525172397372843810455557389026842120532928046344347356149248762046370553096388351761224059161323452455617201207338471704606104650766852274241629939407956471973746642102493530572675056786967820322326134546362128476598397934165903983496611311131199863397478348121023327505577700150646048328559013622342919632192339392481962352454573262618034440393956564997313992771603278382315981730343675293853374559568944012974698572290480828296662908825212330092887490711723417986692180071750960766390443546227170629785844152169204482419378740619841822219188179966211939525499315519361328080355876700178079654816221986493869525181731723832541204480884488020850937375655679774442363772063974937939696726587889944043792497593638942221502698042987332060818990956278618019982291101720835706070337190113917118042246978795738369791338630985805008897895983749072441936778488857841131000277749345491550911407712595451896715992474097292234692561567894199734229485347638019067147329573810224932929269553531233958478247486499373931458937193563258718205188166965114696256168982591149413728527543106252173232236128084598685195441594623933001575938785383457000324151373900057658077054356416234578587368919226904962866953692423274232571199202366562922292944757695395704519272977335773549017873337834158361328335926884272432002498059186539840276270053697215808724270951852829649176466294574952271533653460405686176223919621250447820891038845504281894994534621865278702593807833906986203468820360987037076639424116599880585509590070123536058534037591814825417129608140586817837809383586960403953890556731779749953176430555834297510549253403926126758516333704035847292654344942227740034548780106859680885321926704226089399731656485199461093713991020211420848480192939333166127298695669470844181047255142341685051695294313159269458138828727786915052871725231755708004195029749411301735043123262741103320351578854720580118615352925188317166699944343826068142596258464736220230470020255589347720470833062230744918251693327483791472423007381371148544879730704056745218059151595514111737290865091456680200788819743500795796870422010123961249180889099168943128464755109878338141432161062068532329376250876917928367252069104018611908223732921734937767522981206867459281519002794811733058175245077596079609219959610903438869760552768813122837140758462271295270895295059700473404049480561456237332091865378734127976918781199335821361518489003008100283119889200752695199657654288461157855426423359370626581021026938289175537118860595593845126198017352635225506093984393382010486038210827101333678107490218831290446605403642986007895187393125916258475092599787693228669296504997176633655125795834390709371561181639977241308653252209551773439563548012187391263888881020237156263227255194966288710998452158439932678292984026591160139618346848073963018785317796131377780164338897569235811894947744959040302342476073566448077114280680195098999133789139452126139552329316162502511418768702703960391284571876418845283381189367133407402384381074059836769809107341243396661288156648259248469497966349107983429511812108068104163461988101035199168561140901962676461105711625947167895639867404861894074929386153638122283843133379760560491652851483975292553069330955518591360239727823635413121267857005931407156969268482337355113203650529578740205364894550860584678453129971969905589576187537897843514032319566124938604815313511514810347143206098914130603082776246802584495828441312504184603470152347159527544786471688486445912264134809742999541119873529063824221043663896240423180134224343620180845822989972092309943312617837371831509293093987740054646514797212155538031985131844114083392236244214683687952041734643074699985110531163955741707420642685000911015859783423196384151635054481204777661312789863537401149461781997355525022505555049356648392323413020423832608197532465489598383456243074289990864835552265710017683122578660638822771806721378884440371994224802279049981350206517071871111128339678388485092829211118191602172751142812681236989019736700061943401050679853641549475843346616102681289723496949726729063567025389906363463928131398135633811742239267981045521534567719624604476981024401536950261841536598119462173313881893121094995972563235296664125928688643052163039199360764298398407691857677977954544090479982009324977817780158228893320191887926214736782430086964968177346182133455653362638785735600025355944289533400620286981434486372298220395201999805684769947993764522213748874026507471815772836660582783882771811036985268682182624042705154247555544277047584384469661966618556345600058122365812949066783517131397767618864314463635878628127646459650738226539237425456951409352049066462843427582955822554831059878591355735730275063779665447008680360193987435864198209525668473272125965347826171629663988850049707895162977461920807821801077321715259182893271742074032175725579658829697897241769995021910363260503362428388331097029274791945736969693390150199015400741384691020049644802557856330540084528612860750713664786979723614986558832719350343764565612606495899526253056424927374156720400097887115060384941431019978290682272408680163766891349530242166286623938370239024365705681559626509375322647386424498618966570766077114877441499199828966324926437518334085718611881819545388431528093037122734026012203620069291707894688757304568512589063026251617095504891119071709261786015525113628288135360893223633058370365281200343554869758162888651630115917488508267224401381768486908501078646861275652111185865538971459329810538493116237647699419656938331436146406560339118637426944941148299769061486807901544541922069486775597156249470499403426153372177607629025719407234448623588773076415982236335124465582345683419686851451638750603925881185624728649949222917643641421277494897059413214797306981966037308397021539456421823605557946938884718434781564173942271649702970408646110067071461307389555472971264273978605863156889669443118859919315585986324757143449044374504706648219823823526699040116282841239963308523363166088990232909695407922921029256930934298704556084939246401536007497049194339849582447709532959220760131167341325718601236714424062425152168971290881510585092423628672679614678331079021638551211205083935058428774245819837866339248957758322043367807363386538929513137725325331757370554077493869543642854479341029604652062864261855919806823016199851722150823262196861660167871254969841124577213075512537003724283494804208026185743139215777185341080609469393061301834890289755442684690460936152950775394556202476037848218358476490754680548509464502051638452990358914695919042713752025792416378767340241065328493183985276876853138237227690544445981743364004212122666367409187741962238688241330194757243794728348963548586238069677254459530937729781670795293327832501946339628062288878371925505752382590240820312988254672667549113625434036454007417767860676779945184425386193762213845472497897981541059773591043216731238332586674546274473202629728427158941198667228050784902317779084706891046536231045945353155143795130882282860844212507961499748501729868178018968522326939742638388002720015851540978851751143928430306650886647244793781881020774172862717397250275764954072855066893442323925249912759386021232861468764952673325168405204765931399149061623615495001388797829343662806669760627183976469433455967996168547826427534742295203150783913085402565825199294462892856031172192911722763193418267010662518548682265180756175018913972656764646798517709424101111633716506590248834958031221148289182867066137564853993540581252045028432926448062832528299043186271533024862549366019567375611229672544219811846966888394493647931871523333154016453674421649562998247300418188743058191765456711603505264389931675325804589632023982456362144747856153212373186663580499620793750874228413071586849059575510482250142066493068015828004849624436147065911155460526436453442363531542900048812234034324608012231724186175517470563415124527811173986271994610010791605734700394889104201840399887186968967222427626542311397621639718687153294765085284551605768423053387505239949997981988433338324530224195584478027187334866588047243208692617580649680462062834480555473821089946426665688444315831484435356958021882730563505316850358785546284105664285323540693382973251755858679186408632075942562469437992264026977349853127965528386473930532586856913004957901196294797883445918453537488206079661207769111874353309978819243338767421680033020283362360230367033269911434473204653550457986196067900145203741415451599662841510073308054552869638492499009819070485370213763076049989633189363954463965470159075394135777688075425176689838396763765447966684311101433790995354173106797131196121558073874407669451084652875381725481056167458958894970139984749231385880263886212906112430487860376394380672114790278600662547764184977706071362048681318287034454873918810601466088873242404783646813313155060210815701621273951675864891281045477463675641335152460705751812200075278452830231708390982033926394285784292630264035290986205295098326200700650846688579789571805995807090754148794961910022050991947780246664466247690583233426561844807076352933215921837154705776878930255737151716970397519206226309936189382780204474273944823109927525184859409612280981175329833107322551557707313635749561862858961398241673214901655358952495854590210231263042852958704284198453714650533958208125295942184327335024312418739755680871615343303748322362130571174061288333667457176682985015223176267820866180896454141594216484806430110462435909606665081548906008967079839801637943431760080203338938309873344539549995862774439419536572877266458587033801946427047985864416375817740817270516342775535012581113463216024146361690614792640412650351915105626559061637010266864884263733486196318442006192096492822459550556055437161020980859280602890242979052213648434959496788894190147594034107914277490541283991381674194654438724725679787084633692283606353940238647200150360312109186394334423630695812301578155222970678709547937021053359084795149491773710123080854234446464717098062934286051889059619675634133115857340516315758175182202695550150552450120791851743146494577119045154229609013973831073740848926498892720136854610665869412647491907483560205363657318277614134963866016384373286746428283573934980851975250137818493263437062598351392080672492186034461767420512247920247563863984894523743011833691662291785578115557070952172902705878476619584109415966192697064277545683536310818412755499143514041889933323177654398367147747848430940512142054204947478213072933911287582368394160287496935708121481582183030633882462226770209867883983105885463252084010100512870511300428504357957217855110726670028625427352509378207706361087352611957687794709036845160887968306965682179027461377515358910510217344001415420792236253418767254452877994641088212026734366933781637498751976189618303544496084302614316899941951160728930933597709973701178211444379657708037043506587569426774764423574393275780678713803370273037614098052159433358136483797121253863537222440107219189591196268030808185792027507693736878072293305745116448858171518324691113949498212971987227284464664716539496537912924981396078614476237422900315449259236167526976859266173360490315951848265284837250963287851530240311560522360223353991795164608062538752095695203967373815211759675683245315900569228408118492179164891134400624959002808229232821586997715491505869894070399975486821187148828547794713365145853668489146885364604074714460180654588018947518469487054090320385783856078590129744337966059782081774874848023468492361368498730559692988296355981459000056310369912713546600235224289987249065214085009343936294373270163111384686778739098809061370311996792238029868137758219849032070324421589276712869964335067804502085907073052305344655187648256098168425066750647720322587223468424199160742383412763790050263383138658063846718710729312332162205444834758663731339634654456380225873178589159757697568864335084366776748020326774761460609561036121392936291505331131248706141477528854554805379125381597196255343659132424728219157576939740129987867414834687387903178921631764077117887735123528159144525641203413131965894783466415361013195549070172173149272680886402694629412470613359168920100213539577788945256940331223966840517521681693832946477845499058412887647269150387529678755571759475480400084637695718212126840673113480138596621130583507619986561646987760271335080716409935873137234713148635621316585117978182612402757409178278010017645889540323496613936003430182830144892897493748702729349965845236511648774155757895997198664279618904231054433505611897085548890928986935201050693985457922223863186968961660370737727080146823973996066513999571186282082946361195797486551001069076171153904447365436813541014002569617098089051985017011465306777086608813573994228902216922083581088834924360583724437661928614842160861325113860165297877485376159818769611939228296783463256716076979158383271842796766653372351316154591985524651638706934344409425070789315509072773813396805664135776089090635499841795088143724501238392353115441335541414469221077417868917259662909456200876966067045486271523204860849740440157744829444479312356548173120774961763491236921130985998350519238272441547604914448144127511171336728779332316621024279761471384920160449708239059580584396068221261774588614825403183872611390475134514233065385274105730996185840970683386494011540349422391568631631986459867725316701968885871143812632754345278904077822983096544575429321637493217381630880567058716717752781433431076154231752194762597146915687421012315644431319782963262399919121313333188065845842967247097815237079470623718462808639098444617968830031885368709005067802997291429635929359120842907212493900208647123389053843367829990505085806191844698083073871856012310214715964797523202312468544114271063240270788837186379149739762163387588114741353463361301441823660254484931351104358940239821974044920752114363439172851157878677830049771616111087254378436331135151683835183373101692619897843009264190820231544087252534121574335760343591645656105347449895799168657015510377381010605265638132580463778769216140489474551925687083941711041260457031240074130111089370036367057310822191415435354352814987378971878517766259383086342851334148988022493904043103656907260947456167340676220287889912529434902217825333108447091166574147990116081492128037493253230422482299018970335045201571331520868000378886635705844215554067499526985792395303827541621605328676873053904878703516302390229862962711157193352279149268960477895978945601384012297989189898225702830160653729440179099003512605954561034348040280247054067820600467357693856341632531646820464027832239842662776054473191910661565109940585651714077848107164900633318392963854460152175382482883864186355586102715663703464146758302761443853091726864141213022021798982130600954458884142464524150812265051303028793257778746730094400727449924462248796914604172406057369157394724403190904930969879703008152739030891324587346371274830229676053208311469168456680278993077945558226927731699281363004670667484262865294384219411828300258358254467913462619856493835947478838385457654954159012622976352346080661937281521607024496144912258468192685034068600155292236617343126617800872787014531904832855774822515314796541167322539406038689254446354245467810146785902938271628118929976837271011058023437129976159273263478985758608491980326413731982071272371460073648914093767058909286043682404141845364629046371891702043795575988381115906545234850132134432919174649103845743365691090834032512381614331065872509671917598964082844685042853181538054046804050938371817584540884198544524115242092016291993888713489637761115876593877079150359388136324771069480997684727528385216132786485328819413683176916725297310303958088590622088391304285741615295108702963593508145945363184150891406994825321618462380207983902575510240657968912227304473388780256951087498066925035646533010282237922196532993210242592344121589894705285103600702906989646844446812525457629932810159374587170365257122882290031500386471769594230865192748122068764553661177331464300357887277945102265517488471502328499598735547768203371411912018012869049708186301611027737562483097271638208633921735470691049381653921608136064591930587235570482480947126294950617740158062602763084019022102409883821714285293492944796618315421006861181593376825504093032490842057123440689778916888257719784035474832907934223565058841911420462700461960271484645850037611995493042809127212401163369646700904432543215403044397715622367426785323167825430692194980736721612236447320196591637145980600774579632941683935438549871252241785056458365527719886372002298272623324520938015921048908953827012193274819967275286039501741378290091510762694852954308797807382819563951879231243366071492555880291728055979756678923768536222865652363519446799053400604895353469289213425961201629162623720121655766715574639581068331577989174794753854514985594272712267115325783874397335265239635833402902967371557767822687803944503717288620340166860795174519500111866799227833154633087108943100207463710703161496943548935508115963647352972766750147748031780503943681787941464863709151026223970070912694624811065525326046809022081593699628016956961633602292796523274727978508102295567277916764574256820294064850830110276879659776149743339899198970572609311767050327137253038116524390371882619169890158772783433782616446767998198500277219774919926219593285957550266041837953803853335097952989454360375257777212321249197444746364367392543123896889107206228848439512488165335655218246604535923081349826386610976847058953974598385424828385190991444669925065920984466966185479851394411459579057754171322113843630292663110851729753257837872596006660278485898403027988311225274348478053719966308663063358478179793920132118529292527957742258091979438658814022129494238015705561245392888933101644328031215900094275452419805779185604817249763398233798827381078664920957313615359911507972335892599326203279526145099623947884223510326211794047679955826407053987749214614383317836277913972662605382720771271274450299798609955422397100452413650875400884468968454653673274596167413904825056877371542550140161121540348039341866283213189694665702593896098965203611943740065422780408077170108149343407166371414441909687502013396016261114299481186601189165524934495180524710414429900037728744044439122836596213467860230587419759236197841371735416270550823478435811598645812194185320905810847084421327387845026815205992265706403165622217012461377343573063487875552261387135769253780438400429258479405698212155646067862727202253208116358448097253349412007019242365669042581697599477303160017193971166413990628454539807604403105217867170907289825035352009784610866879167451734010778840602891144232103940930150091687793977139549470261386577442234182861955104973916877406182377347111104330109679960554337711141064497618693414452140271041291063855965858899003933363539740033538223445994163574377014220110121246587392072666822583173235867315330336946306756712740736804495767238495921631570499884055937237288676685583220589412943662428134276390887742560829887217580710729067286788989261626817282922168337005437566667038153917696743941989921247341676913197684058753117199087882363399977414923166650124759957414273470811517303167079881900552600385303269416666714480309170108659998397890267330104665778967861736618844632548856639420182400027917302261017335870148597782495953126542484363803737858957131667413011763615067121791736079858327763681621226709142056531975215334617431946568934724276873219785031563205745535644853207885175179170445697830751997725133680450698774111918683820581554507415105621939171551324814614441047176013878290781693748708922184352545720001838947664177882274666339760774390069199496265113047052743669871835308995998720721381692128648802380262779801466859041948810897098749620041370981123777492025311059712994608745286849666899107403361683020600036772938554961433614455751701109576005658213870734988525566503697140701029861017143530885062231949226232162145257464691518724334389633318845047667195329550080752490414394678084456680870264022645939356003308746621016815114630545865560609396707147832354280915577389782109425626002785778708251861600720391326276040070709801162427223026920130602411689561860405581667743010606697771625583248910159553823839476174756025827147061055979757218617173641297782735580923879604389197163131122827266377953880684556366305790446666107897434319557014307085023421159785609579946627275003859229046786978147053240385636218828667384460755232840668178709001923592252475498495896800696920013818858719546487004734176380621276723816348795905361731903609482198073373422157297706914608847219210390735059443495982360179265523677387092079002889940143605925784762041390326988423661446502527114117512138992929414448805179405023131637217788526734601950419334751751462025880983540789507783316061311866959149705705763507593670256619394860347007105920798427541929531524773213724662837427114909142776922889711365822883603494857130089906722503114834139844051157487263701812312277904195842204928869443144737574339425461968112030592511528757646304854398531555243474056921683893053722633178141244631298191647684210865455901593837149938885987304116325694223602447289593662801823237591500677298291736112624708923771531955222429825662548344427116429588661171918966377847400300250925784635810328070046020156110003853389104516442431159663087788649427178878776848465811422262752757044646305839710897336050317921513124651273610677897010674183844060336491790634082165525694048540182420789934982789485034337255800078749800521257486809506002328559295686697973345418612506019714181953465603624432594101600830108214073230705028621948396387828410817601882713079482744576250027722184735761945032697511807528713749487033753398871379249054392605668764469777234212670585107811579097863126438590483555388447318023751713582366066732400337161894735264792202208678410747114819465253444757978976952542544000816372565044566934808231436822774467659021894044314200293567192056471754826115188579036760416966311335577167346208930535921231991666377787655300007825426325040893920338623655032511661101941614290907557808455847090127020242609109826610414184283113484697055846704057426371142410600408890568832331613771996812888736668693116109687968569478221341589133389917841950969872738881152649031894886064549153751842339287652923044760960038796771409321103143318763464190736170584832157133275757555193393687214635635516072087593323687519839504569916606617895455852156084199910339434077370091725676489144929726244793010436134277962923525768507761763866052380925928323487060211191604890705715359102554164302223805248032226431284921539714963187966973081120139335976062308663327890491931326324161255382837603602342792640471852239188713457431843879384042656227051674441222337314185013993321208923341837541104985304859640940848916711161609591622342093300108649302045245172333139220632153029428831269182523636067391608367652271737329849339232091867351557622777941222618935617380616597736148661635970677160649391518033131253096626020196397308386364132715414454897521688189675583922176987978275764161933915174086925817318548033756849566668660237105780203426530760573607578327967079075317536064069924507923141773467191487695303906693681388668260484548608463120363378477509896034336438402122333591025107588236653581152921438411997503414424442317852864553399797430913722662339283900506129731998149895816227092095951399399870443148435615238215712536604916985015989318556011023464033587321056059735506137088955471469054928582997773286046179764818560955097821266983732492878345639516590592391765218887454628586432496346018940325284611642237362778241558401531245776884583690917287206308923605960537813169979391284627575181318085836465802519075675842786236098389310052538103477230966471584336210681430868032596101776029577685660766429319914845163696023838601646577029923667571501690531061325405046647212000093714100387387911520847960405828914553717644416446569097695653979044287084307503339883867977286358530341456081513768136406792986512434828430410814544225682309753317382143626169110212761076786373824257134643699445018892378997780838141821572106635406903229504662442668683708235835165857645122913045468302026492625394679903842257039050123161184723984818510605175783045710370709058838958352248793555419678891716089321575673421605769525058601292690963946803560076655045065466976620468765882520261125291697071289148971722214322346545565816483859462773511172646882280633343330532458998554312103606747368494674424070935876157704994865412203092418414885045854798801395198748964821652450063766450761248678757499281642058405392557684160105759902343527164182672709575552688535975786936565559758431880341802757072755694995190557070904840876153244675614567164742537397167117639949044392096061447664964811367231976353369966012218243415720416711193933811489251410168621722544649891172287778826876184169768276743020691051006786091468260070239363175655249309599454810940294679019106028914645677138890055042111762165541562136946002137794583287842269155453897011819838851883096159831672448934765364061086578271326770892682606357668330274865082128223099098392912459019326734506164533211960624715827580576541101619908834159598455036528246999548757275880377506510942150641270778994749425638229938619345566003831279392096235168804578238225526075847702493496337457347762086424313350069132704552023247673015245938443705214927456325678361790651986541378898939932702274456578143543474249207604722824760803813349646950291150116540375286011700942732764953682315502665119229640557893166455784737242011186287868076492224809785647141203749222897567591532595066529990129721786895072055273467981479499765609731901162802230339633997736091828336807997153184636409508881226353087546236375503054339416369176548085034495943115484675283532499643376507326914917177211071128837085600394241614738543721330102408537453864931498549274766752841807128257025356502570676636072530148540557920763674927048815787741975231293041677647618094694699621355851000534300327833150085727301769518078169484913621810249591106694982608900117840523844893786455875036051241681134871464338426826143650916359138737358973760699653873199745469380753102669988801502754751749368111725119060286224323487297317351840010673770346038381095737380995941305622975728694154845378928913568614894883357725825655499434357856049281879595819472883848120664648053873556711173673791385418247710267998145218021859651216637533071646182328818708264935942996641665901495956538855633348778511259707594951061224752510013651062220273765718181693095150510647981832421813970397763722010928043204088593555562568378946263826647903154451190231122801892923642558205699869306947105538218853245009110723270129336318845508669876408264234067522480993112786028685254035716553821013999075250793600521907141622539423128106664474559973610556109416762371876842529618167679711748007173637559533082372106139479238110798251091099837050403236087786200251268442148084076210063771190639304259063445371757385427624489523608931720876566048531938221739949689571381202922501718404414054352614818426002375278587307589462883822498387227508105435483971272460337763112312839934884654333156963684647107473092791184448324244185240931385851019038944892306187552847632515189121098064574183544243452568397112538970659138769069291631077384938571531670194527977650114801856053915563109513360438118389226229815129297178634649159688332614884858922788608246087598577628939301248354793808441597019621689204289153239470536296472791102349799602719146505061124466512189360010154976972627833968260754005162378255979511733766559558160535963328123760445728767676778079928147646943594845574210202640159843860088028085127942584864028562959247815466739257049084376828298657450966740304659454130832927173304699000330315140638851502546218109731704848629715408162790347921665687895517164004970677733292000178792341424624091030142270011174479373374091770829485922470055559501620098019317161515781286457529687599607154208532092609851187976730636581821288218877371244606255377552152486860448402442791540851591432176905505693660608884872093276873932789046775432131643789282197727043786239120958896263741842545565722895467006313171879932508564397023541094646729794602051169528522988972763691658266936701845117401534866258909850221428148981898386832543398586557172008520964830602247537356541269747475418491473430161584241975241192011542835552597671068489317320877407470589021980792995101866056925833932811912355501087704636706904866976862793122181512054480299392133765600420976884933054983498811567788222498808143200672929018564308205314541738233432884233246405912115792745975710684080306964878499349077606789222338951285706025806736154280440775238805365602266013156477292403503884695804975944059238920886726698279852919145155358783810470802200103463285032368717756735068887056557265087987741882055727125024427332034470465393791253500069980312554389024425757476754875013268666677075616453086915609049940728269256597430574848737543299518649315925237397519712300455286590847212049035783560453646227067435829563318531260636076742803399588627774653352737764461336425961643265615991930601407185389993261443455811451040288672174147709945475442359050588906616512546637894180999177127899669083185024068040652345809043117448092408001935583946323789662593829107160312956695045188059058827334785386476618569313903005437112865359523513944415714790540327606523924037496186496184159568026818742976148132684467851193413590999254929050568913124608295880800159868304695314937100916063659294563664876981691754354041558706825762973036605181248293121743396249716259974683624933300729982036812194345291317379961242161444993278756836201743287974158764555401839380999164100341555106866537439738721736810131405995618665302229448537986003064973299724325914284292732264137717055316933498312435813286414006563832210931871102011670971833041805947930462911580939455614872989569458243279005843647591289957158347015953871813700629760281325548528043214746982406315276704698348255830659222996368589669178189111426788995076549346821922799374782881614532360390934140811453410975854330322353207320724114624449249079781185362006076133147751719887448082123490364591101846959333307167587005358037037296500929258520882397351235506837201852008549845413165793131814646111565960402614475888943578740440687856385119170981706300228420639485368735677135535000039850774312510582355916080144099975647859714603670190392457137647337457657583825970150334755653251657324993661629590921164056056914455125167027618283749973842116610341119646767940581576245450576842888870549226761899511609977249703865117967332180527300218653207926128242557927708432862323259764389507305212005114080492331219765960775556814760565101854677288481124471435709910409059583238205962333942752349614280966425186652958897334684629307161937576317827216021006199313036210390614529018039357616119322715009891319556599844711268146838557412119997769318082750949291868771876914871405739875831743646161902786393030917640888317494710706818922168097099229746562179494734963799196146893064309902210418540514557907927188417616948936420756533584179243799463897230317314657943672677417231202237925700075023914611822648384458501002229481210344464987948572615418441339353671761226317466700320184715942138245178198659353538734844561919473326149463113012762180165763759482107038005836964523624822651281372214706962462034487166648411210541665510565612515617406198090173008860826052276867498459710931716696293519830553044011925732246852024608050277570964616191653559006733341576060403851077113731342300890370544253292322335888324942664831404075801182485111704750794466916833051345589222467752853069759704079225279855748303497238198554155441151364658118223721269145520328136171982595425665675434284569897547060701983457199375822437577549720922282328640688503676270727967107421681780053058875123897851281065809359826851226072461922943546944226938941139062210055783430263146230302082888480636897321518968865296523528952527252660889439701422534451894812480297412863786592164066426924438530410929517051698480822001292534343399841438077829903910051447795610079103424024745836072214201436975137142386595920140935146431367948503248663645270656083587955175903783965023669265616786253064016546026622495851072438358693036848622432128865718997817156549635903276267938195297251596521415237842519274804815368893251725785886249986018836671940608957911090575144713905541907441529401723180115489019077740211849192403196456330873272563075734273765942587413817641228288838355876475747219499259303122931431043161698024705991232052470332506492388418029618365695686923003267791926033479135513254010830508595537487955154591951000503396456578190785932898246780503393809501635218358487695862209863379287645261622171419499764074281635710371067246177797864039870902871984418634709123129118918640558814602764102647808250038612798917552757725295919511974097503430152957307715261667479693825799656655825502020245163284727052326965990793840176572293827497358527835217306483373115451541213830867782185603372390228471566979859092789630617353193229998922415254390562663183268546351139496684057308509904051199627689781339252064887187974865654702595315466940514969103664520978778411944607872633990799819334428531700153321771227926430318630497947313222780306259774995620565649855914583772495946655334535647487532308901519696865529883205657040710477701210602297925920411077270093784415135836989064104551519488325062723584783453942885116166295540988443401250464879968006460849811246120433550390262470204043386799709007834119531567200435506758154530629924853167983892117998025994685744069890367763527820695219675379015779690785949752927952233070101774380158199423268419837299901658960083179963222213276551681904965811804717024376654556208622852798983603628625807237972282521800604560120779942224396589616257408534299198683838190480243897422532040804006754558596434769750345910183527255155052278711153709325568798555059511306163068742978840051639285982513506088684000210744071592556722336430872675712200158463124499518705982789551543464088598767722959447552732349406476059932687782357872684750768841346925559385478178939805072854063258558064502912831365025014937415165860417668928517213537885642701742859766634069519326347330298953863246547663758566843321975719053560826928477446400565125479862101665010737527691446014387406729138426725430563348594801577446331422077398048474089058924097579784198836262928570748770948587798724962951093172945276549908234686173075235160519936311920998016521425986439611840510567311949368971010813196093953736586415839673928177480298628912145343466861077032192065833436431365038904076055202050708602865426221186892233953325577266656464200803155310220815814139780572809448011219550445947768027752076757462392146790536137792061176122418934099355926735365473133309713261699657264377631808630099081630240698426920111876337795785672821704525565445976506271339105114975172059934149411004667287339998211014482799401424567416315070685811938058518061738116754019635100659129520694429441253148462246671942702979267082443178197285944447700486603712782287104098250465307002082809194753378109832649622304657617657084720643987119999971618676804267636014626200559903416058529718726230691099137925359491819811504436181893593218271379958579873566114678180869210347448119923419064158233244215273289039106422157228615592874375132915061834681310330540317709968043181308416116455707465641225286825045690915116943231175407453922516100501053882106216225204245770844375406635793694471403280098531016928022439491740656676006437710763770531091430517377110768165811820125254809610188300310173781989713165336586284891033129737012835997015580545115820679046513651146548502435226835398102718528718781798016909199352591609701785735710883240074184153340360108882461949692655001747591294350430795238674364514580568351913897934728052766756769214835458834326410343651220108811738234537205412295135347679176862214118054141982140444746647618538067960176907065899491340783473285631707563144284151282904617248438170650572739253888746319221584007712943041603663583557077565611898749307247806273965590918954388137474384489392729308925812389740541738700343127288768122421366167028190343795139109730143700894214981661491980717195447518735081939400038137239138587454477566638392388037094860897960766037277565855443175270300234259335817303189937670293745564831637507767733561797521700164598788032153353788276848515481290402953599017525649417141233129025819137912445705219264678912129674731214576943799711640303652399895065905547031390897413629676278317618301840024189871711741599373826679482359982940250689297141616961096812746243694232052827605961250707240216397232330695477542476207191606168386833634175066972327544748213868456192692840232708239869062933132843111813634370637675039168164909090123381553294142578798475192770486875724840736657540822268462153631350014410388761380001409270658731867952040924123348351918449447096118461082012244999613090961890798063525012620668296119384782418391009719145317368708768406203118093243625355170528712222228007303639090055916823408173787260020045518442819221599019567315357034818274754017479978128366011307050039544833222651670968086225089908562686092849578723841134049042173376684488265476782469686194435808777936431817042699481089306136336220034053852599207373331039842511530899463523066033597835678465209463171193766434509641604161679128898750389519025115694270740420243111201787536212139073562540184115751368391911784630864456450140926189941776136329708644462437486549178071452027656040110730100293930323000132647234533943115131552127424342937425849706602652997354661123709102128546365901212242705469719942969711117535136568583505251902546740539218125560542691372458386222741270304803108813701780223470454309041208230546745899504322107036444838658147558366029516435692347748610781326208813811972494563333374268157439839247541481164613820818572714318503690681263562421705930452553803095187096655871678851293052683907652422854332079130226458963775308829811366156467445433747557541247912660381800799888681391026822640900531742415438477546306178077474525196902744256395994799063640148340273183613126638214506004664691260682945149953932248698935772312772315568278409955640704611985582909101201151240749945893472274485990330240841663090617715698953715925392319752887503128777039389701901394543074166353134802825095049936769286238566779107206174221837372907395658189326637684381889327007623437676141919659382030453164983138888102697028515549190781555965308734721830451984243421885745497516791609457732052685565033361999048999121223255298593046282195614431270648810506621162073635025389548294837707700417956904406437530869162879428089445824184442185508442482483829126219646162775497969163073218844650653428335888070915639241316012246210618421986695251997353173497433172440727474858326417930723083754379294491816397674083866094413958528721052513179270515711232160543617973922477714362998468147413936627610879553918808683212558393011519603332616633512894097452426923975145392742931422074001336731756744563029750287621854518504085135485056373555671741278184139765576530076586713577105049871726149511516795387286839667139292052142463698934655477619770274741259279176855797430378712012780612009618974468159699395541723491091773158001422532124225022218087111641319119945552658190352864265107572555246811771644118030399136223470054306894373286999265897775320472126560361928067162168691552486724996903845336473595021330382003954802652397456351095568210076541813272744280639011801444691823375031987178403897572979923248393896385885763650698466396055225737826088542880462028235929897693405531419604067506754601292314580789975044795984079559955168732403983850053379622161840016243542127169908839846140107141820718230071007860913396772057756271137928530447713436801807485941354287976206367377697871699671992978429484799899330511914205628514032752358044818631091617149722953678571991875074563902036306648523817956090517163622810667959216201334286473059152082621813297767562105074943045063655987788606431783214389419273055152926189012964141552980897519489060151739298960355480068005076965446696645002328520235417924623168136932521183619150684527744007120825092659401636305380748802618841714887691562914907083981872729700593927145701501771925300637310125807356497650443722621645685826408609838432247424971449305358146963458659187582710067366218103183430879024991142111499507245417354071036693394175981572477286518319840098898500523273724271068687179626828140469637160750422289788815460251629793041045573195912582196278476129795385113365046421700110581882463234554498148638289112571552015791643619342163349805566318917969835681594958509968501983433303062838316462668280144106496088417259517332475423223333986832788298954644068941823196892329179782288809292217315920148149656336231879057240403428910355769535219451730989181024257005836278254619579330885457129132451440730804282841709416818246322934197481251689264782497529219640636548262909312505309305324865658030508456389194499352631452339069422660791948031079349523145500380988900455675676424676038546016501756237306908901054728561409625642531986279160030098256525411556337500804930468440461510730857698112964517260145932425082027550529226488554008830835314284741725258348488541052799888691100348748233380877069843284599352061001042785895635881385175062343370183316852347114488727692219450392109759921178915537660285496335687939889143958489685026483377537725595723706506644133455032491152795713599132927652148269572319660940012943162787444821961173849473888355159200644597906001736345699821147343689168236152732802649587256233739922271005331374251545194388880713152041553374895975273543640200768643286357199101402033695768606403444936817897937371138814602649310878753515438159121348408214414916368947870722944180572695904871267575549501902171581762529424395758409228634060068999559821110525773121050107745441379525959921378684485019039106647573250327862204974248593282844999159881938556634143481518071553811099711222752214730414016178981303713731212626377979039928610055259091191096617269806987536657018429172448891273926896673871737173703025789665181287716645219793088344147724044522827372459956265603942138089506986711922596232943328334797980855646121754772600583702854526065771447202212618307162887859867632209550413241073973183986723547760331612158171106873201331361270498946058872332969792242592836168241778806298132236300685689572119254296623344042602810839269517699848083209915816340686753648142213209264686965711080089135571051762520025423522926856393322512669472793653163139387179824344233587440433671504464980877776631381604394032626987068826861053177757196118701425127822710195700450798540733869520274863059639103975217060875235193717212706203998159478400237593026106731953130378039147780113411776699577076876945288289414470849350501170653117471036133751747189705592661832461736368661981396795140154650654785830088143968278967791733055757417233746063104280341873006158215777640948894924386706579156400236215295801617320739702586109627324867602937528455155602293200028606110760984990564640108570396671465064691273573740467798178894302456325472272275983317600750693760161777665251237777256065557480964180712651581295996419316597443881030140960789991983551401706729783403890002847084673295289216583638189798340444132870773630994713109880814130871447524977739524699624191258181756854692755061026408071369516302791305456528169589261112522437301744457735224442835427060093875464103100186196161893757631377897736558205325733699032960228845802418743355707523039789132708018890475593408661714866207902689650159064268988158808050894344671195629199371455586105725719945760839823697441384716367111114976567272878390762585195497887648351803451899913779086464902470777596116882674913629277934420604630466998480581992520468501239825629584820215289973580449127034836843476778624214324045582572264421544580484781270407192565846964075610754456324306489836527511304010667280538578798730619465842792534430782031321320094292661267003005007015352194174988236636643416041017387163948213122159045093454847841328370201552499857083653050511560116783419010138991373032890486611831716565843921287669490776686514497624874808420490264794806686349930380781380016804642356097251924453316307037936228861113594334255308102982928910861858050731313488572695673441384676592408754615888968793826050173337254758503111852204473831641362378830459425892662871627185345989088867764746096156249616522177452126659941708497983780417322094944936093100470142738228092921006768878240933815534894645157816155713261747440278557143364282416429982290199033399106127839494594216384762103554150250452003573194319143257457040674355241652866585839404470350056165182155359811143579597361786410314935697101948942812980401526555678351822240081693820288590124310337681439502852569457922097089384203910834638346798786325563490746517612103998000814089047440482433971537854683604303357038674181217164834507171205911613726095858980225799396680359534280322010312265132634832198682212110155419059316786609353425656196247978258656946693649421984277781905247253605410584209612541075926726300886706992285741054764249431212142868407169016846380589279398537533103972018001512818549902523078840410915005694903826208426418581573158213800282457195378302880921766858680311156879510442145121746738916309328270427537816373725770231023547195757575384383770253302500009999017171447695512071324503114781995747307620328637538721416316197639194849459670830058442592904233538902245492492660112376584677757435481314936145924305458222837763818790340465436431382546596823864011627798300117866870579409495517628386030808478624652909700692396094968351947590288674877839970269801703483625975271025728805999887971564949359374859611153159514520001386665629600233028295252465515326577230189798172013403331232558551561199621791200159189906894278787546873909662639649963087334613417983339282655671365619204202709015087159550428054378416539188749731815593161514205857407786347407111599836623976847289518682739924358525180956389314385381621393738045012805174550150327141375946217228011355168219371659134332735288539606806202235199695222269657000703216837871106034149344838052988829450906298252636625670931978107010800734239465345774864729883983278815946434281075401623837208045067878771335165924973107595595076750039003963353849864335128380923259881108688372307914106286129939584222621877227244251943499398160320544155789734060960018884980064910865498567154807119175446657232583626328436753712739340337067924933875292992820802374113051370598884310385828486994319781316882096173163123055691913202310007314818105858447738308518744198217238514368894506076993773889439944472131585525184207558382745355941160453721595550032007019122517608567807275672344491206577646100268802110109328547994624459773692878356045393905575391130049224532146446878115809952403548611488433195644757175356318079131775826748061483933950944825171271425292356210435359619720867374801363671333506930862522309176198705268579403325662803524063594831244386023852911199328552629729504178105068561163065199761856928942158689713534607971413503453543286482060898094722873634576975039700500580497525845121292023396549630042043561341165482139168451338528246866307992183945436258355887425801251016674076987906470122490000993193961527062271032236120246857271876140399872138619753122690899964571445415496172906083728114217791973242610193885213462153573600766867664794453879930875397593484776448166358638130813738279292098723625387022308835035218714013705440328166123309787931417211386327736251045518495594167708966552982664060023260142097866479236377239269206032858261511733949641493013679364271739923800841501822519977163420610900422947711303388922832403580130333373648015426740142347020025990212450331918488816816241965496325957351339641896739157843598122889421943348749803555633915684549883150649177919105682684242977241426261536836398004950683604817366089692063564027775054158795666491168160452903167398354361136238446950139931571475237577814656992804540635113381139656398082343090589617637484620228038768732805514697015744232695851664929937424384898539676311314762619891291950918051969525229889129316520013733820118960821627672547852761017883240510188292713716713629055774197055474125076482840546305787842538821330127629875119805074997425494177041472666129585786255291504350423638215483509515216434324162209525193478965730489425094480647323579752439920635680680407322724191199861439367920998223859092378034382878764986099137855321982001970541208955250860511178460993855969779418518613843355416798771699549783855875654789594941869066023764391556891573136034220914851736719826192680776504973857957743385666451232448274843145412283292829030961429892032761303118370056271505384116865741106184997097677152956134611814770180329527409313427144703355848656678992301907111331790455107251119656440935888169320992310452082741446549818597054947554500009858293274405641565168857538154841966528185277843580153691303759607948011510090559361014091219510633756780133291675542382087812182244159155982164559410303470139129593844601806168128018396081424664112619871447065243021138474571136666078578996527597507304436437044579692766272917448574161661120234509017333399371150678904222646012814948632391412809301195001966892466838038786949908685420261553131028247098122489663308396222423713253629749863307724037345456613643385062236986451605887051272944816772079153890275971322872561603139838150922636597682468058475172408018808920197370531909914878267661229154237555698007456805824313813408738987573101830291063324820733468171891949772685142400166705306763249737068025916538032344846019803363855369042954389312774267348407920595329834617734226343165194819022079484694212457170113945086642557319306007278885096351007671611480702356272441510406226842735954043707207796315475019765289254637016895701987785134085169890435196808441167218392938538190492397047288771478345578771195149745999242695306924794539968341167038934976074239589145769659664214675416994375570356178502215296932020054917058563303712978705328941833886363922053418053682845123644646789219673545311938935264793705958008605770218812291989091923934398147739399547564642664412990480614458047247455606163951627868435651157319790279149888953518882964905438281261000499435910010244009656049590223525458853889008654119634082526517191891431537234678020834333330975982458936492487829966150180267965801225781689556230646364545960101106567150832952400978287947755188278769441096979065440078050202412646501376274606119159299774818190830380249598586440876199793013827223405734973411193560137151472079869487505650565581182220912505466901793423945419457476496539880766249605177330225713444108095510572453584250261914774952870565987295835401515595600136364621643600640414176944641489535705327632935838629917341878355390089643090086709792054004771122227994630669682888690294686085790145744935179973941709234343575417468926982193349451723976995201341953250330086762037407612108695768897035579226936716032855640971369672292343655773512243626422371803029905545983598255187696809078689184602666302617663713946543163153926918604188906143544057330654720463535211429201250778069818484599122942766389770393407062402845291343193793195182827557726570836961443039086887764543414003015470867464492445553874979296545328153287308773372429144628136561509775384795979871994422820693351136646074007279367595876598523909469180157065388733016569907298035963850570842797045795492901390379945964522515512513489746078344254102807844138621961777291139553897220260172101078831970107404371599265218507192394098936288234020926117468723762501451698310762009671862250404690312233748877147311561311337960321946797071228501584833382392683864967058829997536118163539449833902474698315350375401973571017677708006800928690533485983852784623017686426250373641527370676799260654756347223323151228867153123572673431161996761657953971527465577191823498906261006689759110038070245794516846807466124714983117945660376208234085934543153994542835374307693389799693624210473580201468323852057796189081742511396726553491521427194809246529583054275658517022598092546348527458082967545371760468533691329229374763392534487508106850277453782446310110342943271489545462333106014578151131167677335110806363871386039096326276140759639916159835548432981835562455040314115385195221457877098588324936897298790559133084901760553947135477001215074630217051779370650669323901808608651565088768846911216917295864613308354215674654972554883768485741253577304074176991003196760407143351488103365072591218030457558157242521071542731404009617951931564782308506599126271897793298776406351507164851342192574012058087016924486448797841361122822737098025377244572892638223100883738794050932131122213792920912648217849141765833198624922488795300972047346516039158764414034882082516916411470889207652717616318079146964029321487451672650857510608280016976619191677138322522669991736112875581348876029937840131427136801512715484595813719894114616398235680154336056675186276972820262704633790938230093931431572221958155905984221597784568647723473858264786729754266219795743080735246714242862533683000849357047766546967838643792568087325696049702360563389173031567633409055997837238398345901894742433125299486622634996243868359032536319113776941120107873178161343615616457676374462126148672125120151767042762854345613161283985333202989594960824658967089686468714246797797691922266481972729420178082744344950865330708251208931533563097974759694966010810362071262139064966614207136016081728978479424381967525456439200175424498683930712616860144966756645847723893237942235343614866447196053859255685062151891614717255000853448215455918907366229010099486072562333329678993001950361797717649424007318743516605129833678859906816889657517965370338447268552930335439943665792051425202750414680988700938386616605974593575335892973095033461736331102626913860252524016291739420751229559358467068283730122682356782467950236581423790218636078274146070497603432482160346674449131475414671621954467661224690289188582511834542453098862143861970164398622345495718772457740189264654653948109166787745478208525300024638942229330293204758838300534253074087840862614248558572368196908006171426922427653664263192098888431662133208159081362297348582232861175046398458890313390796211744850024590444109972388120325170007963869630211429713105034015036691432585828233878803374781670083040125551105134892876901981991967078681072891642353435741623662756850688529329073707829491254506058686016926988443769641217114099477463309710056971979655430914347128812134866966886933725231508315038209713661123748029934154310077478084383108318608743939015884009961099202165526394572049243617272163199002059464590965978607406692156009234369306239109420232330855509365472631953786407350430832497332158566007873323440988157935928239158229578727938485350544759122287272682874277908342351115438891115177011644429557551066764554174873402981314264214332778854698968648379560552101186632611158023025247052206944315448676084181734893033989043251028907948297536763779342078149505141576673372569283060946095590275348044437460007285090488672981838923625927725806874977952364890039596644671162469512888449073597670775027626139404995766577998374592688747915608545825934875325593705417115478041054103591349538719676057734035238864445192883706964421540441317324432046651395234773100376325473067389763280604369854379708187905978232884519114790190947520225772742141513133809732984304180518070619621463449709045886142603242135275749993422188552475448580273344901542192730113089183241195684297416373163644580445583436080621678120070370686363675163261531482860248881550569853517408212614831686683619144468812300224891601869623565242304264163374391560462540201784831778287322222826892921577123632627151413556693422638794242049285340201663534845267898334964051957774155175101759549665855078676253049924342024793242002843938905374936730904172872092196189546398804164968690099273948217486349481200424663100004294040363133226187118404445168564213967294493149472162699678877568935568879762454784569518560168110449062578659966462316680275525854317315402863166986244641880290571125726725321207292680383912921907153875651915637239506272040723257308881380819873673901825466429616312066169433892121204476074549830866776456843639051475504455407043350419966183128970645848309490672459504910784937410429840688577299544125826708118259042835104008806709675737736704987405526971864935647454700889423264692252482090538410162159599437567386159447346928698668385720409990695863884420383983591504392039963434632924695721736326149434029821485901618598858628220349174624918571393525821905121907460124967194527263199517756208252586473344119767714792665823051731496393940610699980135184149926450611930688311656668518730723258567826159026458160997519643393327468502392076644764438838304965501584050039245351974220657070917938651187644838969809350824242284751207272840422883528714010558010248974350703218937873275058912414552520804122730835608278070900762653946269280568401300616855761656646959690858176927389272008983720488179731700993478311590633690846111211637627265541893287248680712601003930372589309538084781610845849457618069717510377285855232668480462589752983372890993699780641471275346082405614575027856970970066128282424454930328041307152351924327685896547132438006861858171211714977909099431934807662752957438000161116148663942406959193511570516013558383699518934635660346796488853373942323211161481023821632437995390850192879230941045874595493446194042908806597029726846908114817439506086849399046369539229910441796126887678848800037610330086221085070797768083415677875067218390965088448372785061240838336181445965973389262807160255530922270775880899181224012946504440188499223689184976723688809520263359785555657800865795682614521173785540701108961840811346580084943833107927485623806926821596507480051762135015219717784231526934606614856656207679417994346126045416781496599177222541886259557158138690532052277753435531493507163518805627189489077792228771585341371059446359606042478218730695434996017115804254656587851353414143179025870027966023073728147435594099386776855187125514770617093803867706597184587539090651554013931292895423850393863086407744265481350635447525260799157320252194078414389082564840852232668255601749408763881617481210851768315551398832546623188161376005320055536422144558902296775640673498644448648818465667722141446587718753201972777625471661797662656104385213401323680238000268635006880466616256672297724529390984174591089291968396674564620138432911463356191204784919827321120490159662062783970193916598029922001248045879614017426281955162226942363542732487060360340252957099371835272529056255041054993070927491626062359993130075408878401743146847169393834172715781669545949092619119470661653205567580917947381274866644971536119306695182062609116054938464053859559799726595247475640831350124386418536983260657906349739527177160125449916643203250437290195376331143862161958418044786903596353482628368779891255592621831253709097782381414125776549499362249549175284150967147095087226046034785021633340214122687444863250393702952812458792126243756853459021351582880949072263763527437633591273789568571369194747746565703884675352492313013490838531292164843266749053756197704737075885094394907133682120317246293692561551100185281046202235954582950068994502468529492333564286730334048802139132987438633557485297466576774044746962718272256191554197152856592036511752344529159403236420859781171062662586574706334135854163472681858477030299849905637268849932324552050986124456764400437209873399460251089548289531185221135672009029018048099717995417968573852589729633341722227131964944427309054005657367251883522045396697827027873292970887935856629262612552440224001043692088104949418205018262154440115613219690206035938402753884026933778142343001851566968478419190453708026670254629399644133045559130731169613870108088877447561259006433936473482390433708380392244296375227436729312232134515609624663995403130529035426023390344879374588946823311225135359607123462793944594888792686403208747282526205036332159134239157343819259058776030002315658880304121107391736319222294999398343334271625927136695652458790677551693990800367807355336733989855711246844880310180286465700940589504920584606728081058842420212143824615220405712055527980552110971067059944647944870363776984795284242966133997651128658623224501946133300906642572002117792575870979642995148320418541950815989775904428839291625860895267158144623845572920539602007916931661182124463311391961464074864944014783702675080530335507294027087804780503977024812572175567020699970478652727326458375420831571309178450356393244065685619532076964302244069772309004509926244248925570325842104589702444261365554264024813990510884711839284714946751962723016329635080530208633697964052893812109976036426302653270619979070282753647095809854549307196408294412159470120826813626115873180339933361249789442801241698735146529715331468883321319245248475186470638372319779297454900345795961567678744447762642050353955957762562776681841599720426214862632939464032034741488549947733266863437429460569503406130517783324881107333534998440148375365831915416670249643077557206822337987550750411486558556352807142947117104401399766959671418866903478868670085463701132760709021074172835396956940677672861935292549506202504329065578636895857153418758421958899808434035944210733669951445032667136280733251144595734283859227246038920165500728076654898691912363424373713223310859933331117813869125637703318253618938879191234299595636692982326029314460464581243619454878490567957432303521985030404806382311421571431651010927292878023103988646416774865723677173922355629459824560735366294300925825819512202290142422309741760057127423251247478444437845861349943738549319173066686821768077209121481445967454053597850060664137977995189105400766254827181016462664837389642441054652943506080322171115160376092647572035196566120526491514316708997875676631733731700096778666029573292162560735368719395969690294946265417215513320552549839608892971194683428705909777798505376892747963022880758626632284418507605996336482571467646015211655858901828003374808111395774134967251063733993605975419491907447428009261142965486005575558623754088757620120503397281493323516273914259441360467056656525457297139073892841790719730179604850680613074831407793186257449194893527345683110348195191136812017984405036698123760916552774763425614587424176779527488306842660720463752320587619784692468965700858414482527552288307372516594086774548549249445425932462088729704224813037239918732154549570326466806624910727147230461550488353353823929881957329028550874641772842500604495748657161484981885301606130034575226426999638847492729559536820774962889143692352096863969912414892649950877118759351778619648376181480291574877142931130411921181697237165895469733308607725544311847080217803220655726677900001442561291840888759696787175552104993542845781853661441898996192465907182515537346427298218223713545867855216444457893718413798605130208360568652113170146172568883017540591286197940827599798626762774581856047365922824847878417350591333435357201415126065275592427642812575686563372858021279562393083764051593937760262067352840615894202394392092008235626379646846252971086671800831266648225295324893060936298243051837256381403371864233503307361807588921633504751702382061786089066776511478601780656487996477455659918706994884389088571399893790579755158147251183277271027303923706480946740850575993319093138511904847957639945165110547902222161734932778219622426772366184442576985473700031639108276254207065400769530942902129249398777979999465675744903736688052785679158600040734822116649514941434326217550146595527532673192239062095214443343785192990624392994730816176305955562236798040586364982925327313787346007986609696419695275992191750863899916988008278906799167655806803760263821883928140202806652528538868057734120374061186102722855437334297347454194261300472679907858673516431254667427292105451829884260536959281455096095818779394133913953927710684201194742816725156398258278774706416096672264738643109460229906489898998177888401080110358689746837153200235854071264627314065660943794163073304936349487282963321452099698007053019664667586378372100256015088704651538761622546142250673455189947050274099528459107686568939147936789615453221703682480023434949929112322961902483327975414979174487120208136149363442742923002596383922270992092039117809915411399400117651557451803353622713373928350634888411400922389756124373266355339468646436585479714412943944329173237702950645057566478920152579976779771804318176131661746985744449407444336708984061585665133409936836765242081969851379758230182785812301292470993698145955516538773299881490259211995806648716242271476749660200695853418818209320314900729759208804024992252762335126792403753516370540215917588475702787586387911922453488011358922366844662627075800821213332021665733458190882637115990027918341202718314124190676650847002695673947579990123830560110448515023571481942359814806128163183082162505591462385455370181087924109639269806059597679981462588133830572553394628992306681247696691485335788175976563467437743916703993823705753459774676641484338874968552055565113929566524541423692473359220795228652247505516569070078528259201376744454208112931111910388471751842565896467436637409865141743603784395857045832855312238365901202042976392257167806498660920378583771866942677894986002447996648379881430730206346771118202769960052244821633509598206461396416438187543036068264722711718694712649567489273851243788794169020933384869158317759664890788765569208051998393701467309550478570982115633205540828820745710920767631612078731950077746401824180983363828424235283807632176986173725176725757013519923030590581895710742953421695100561080186089745844492362942398770266328725853243426488237731000752476216367682021757072158710129654410688586484564782994464331704513194955780385991674760028258831824086259223288678580767229964664217988282281193191872359357223581440165848125748172680610574059642194627222293147348547207692317806093246256445533934924558822547824765728276643768535846840986105273132878102212382184065622257033818628919080348837228920154200980266149543321356893007744194549429081658702910506662469701952652018423169282728000431489826535784015242258188570893496697009811186031447192115380687777775992350759447983894893913147718913706817799367027319858249777593297824831787023072409393886609249509385940685430868602476441536060529690644506581353753536978757667908329683146498602677311852607723864560822935924470189313765811362378842640979133576818410325954162610163836824954868321320615945662726239024270079217885019036821584700705784639329383953229035253884368796419219545696904108304188568466768466374069410217592256828268494028860391300424314404258445502418766770754700776474845063542881188614313281356056691502124362821887073160924098704160171470235170014032096786675838389714660510533621701124555673667797870409105038133397376059638681726031003101716750842286748580711662513915676308514441015183612324549236108941214226846788369076243890963125342566705518816953008965778875603810951517873812714851364147332283526709975007691774263975456850894690676100264793694615878411450825570241904904863642153925853678665076995569716223057597813884856469329108064145269806740573882023411005457939785212060349794551210728629079067312039136221336716051257068280454372909713665092603502122163166391991158494329533509933292935732497635196254356978819039717157953684498851640649541272149111721791707827611003963559422784662701826480820608246642677784563681280946243021269845177484690251270917652730909921838361333826596843237374387413110275358852014798136926863179442264240012645891187424805875919764187796932355974976872439900603816637867731380326999197130718142564900258279978349784066868768720778252577714643684728077610977007647010496370706062049190965910546861052380678078722517751795045105927491338240857311934092046525282626767586978954839485456057197361387499502089090914219501602535728469460262249362544219842130551383581729211434502663669744958680635353544054572727822712445872309249234643728187556377490630295096860471664529784966585068326912710837766907597707489988937618496488315268065639344717950580207238290705282540875290477968449818181634545923425245414126266293649264289787097742839908407728786997027866498087062051110346324590174020686796280855766632283987018308312582961329846578821038663074340147043490226493916566348149172522275162443033698464223406190339111344131565654380816687760490229184798078648895732295180687730902623045529472984904604545760789738178451717173490688381293035124264234942741058439479460855365669948083106371392953836284278388263262009215603561337001243524592631284720305737301839635546213370695710545364766660308540273064770869781384141084199161569542742310862801778790704456218763311374485573034906160449487516467063822009146713709250177777112437126633384840049515545310963035809088912010657825907912839736563125867883461218770564625187333569972086265393747982594357083702460179407708006205613881639002001351076204862613206455709767317842292056577348341491362013172650145710473206071193167910947782465104091588361579367301315919585717514220769877937567076379708738224170139666686004746718061117016385884563800482993857656719080300946841131759418170406248878966962122847394946503915456963813473922373070693747173910111775017912331464575210560755370120082403155557162837933128580653741512913971488695628658206337052539215108510544162395086910649242901314583787957093139402127322860489776410041469987440777423488615084321716976075247315888934835298607303462795815093547147797681099483530513211271976747403263026956928852516128211148143975474852775603036463826414604289191735866428671043646980507749756686220085758490641409791230584813553542130277289680739381720721686072876945083297000205083916300781560906844429930445848379267839247496728842649819395386277743321368526064713657727268138483593150951302115530770391698530417387863213177626262570619710668112240815249953389670865932893484210449051931678015163815880077228135622293790533782632020640266619074866850156349739100734115411916182488099839951843254976021097454523590226731200657351193018030767965396206897438071932654478259587872839592706479989089085803352325555874675232358398197822720065285156178800425045836956798495208830093091996332285756310219599256076889792500092483094578164341040317495450338909452801958325156534239170775454907782135034262600762224315012478611828108655627707179141102842527535327067776414953070561567394025024526219780051986832981598768414670631436246492795226580098881614288952764917496750996776218527484380262994229113103092797725966627146416513330391601582457586334926445080083259802403254129892561825978237436089969866383482579880079889855834441715243526621357646821618869091678559240281609870096934301532376822116061767318161985535203093389488051863708625286057119972668354397176942749102219988259842679382963355017441841755999843512084203360471990105855094987626094930787645942859313401912222650155327419094747805612384055681523898483637679751130369664778890702809750317245910717984981730666727393504368897534494133359063773057970880185739762852196679774445344388942277378252122913992675242295598165229034048557475611844945828193707034208371922616929305113247697127095034059091979915616570230691011454140946816749091496620151133989502551989519347998293922415154853390227613545939592385490207877060299192727132525027080341437042405840127626661563114064066907941686015184634320933910586868380758750055583358041555426539238333590648186286243407785559502604967223255086517035547515886069011642531556992081139081256989580209192831629036985705596240524670277908773786656266668193875914927928379060273461447020019436362716170421394656869094396985030189986704794085853089924471827020391799952449634420827039001677539302645635552915945988647604151574224823060232996535658823855253745031061689577242684553236606360359741129414669330829819760052707597914785153745462989917122512469058533516902500462862577545389390438356731063602695473793631455618251428687903009184564736184649835362727080594220583430928538871162301574543026616887492395169962917630268424647885104062676151206913326378418261192193116417209457607459467932402045534960989504623883904440490094236181808055437978204319636407908395785641071427297336709700040921375322590044665233438954044917037587423427141133498583164055888397878136989178127012158659102270602546531752698732490782601273816873474808489106368313107230083038595086093688088910201988308522883001807928717382218200055541845802673398825164297989397808548795895670215121832714470451878588624178521823592409082041371290484635443198034347114185487992722671984385036202037944162367325704090603079929812750064263753269087279050468977433336719097888228534677521547544919484327828181293643388200776694273524721921547177453846317927093381537387598888178848437799662566504329863393870050478552405764804941507353657992288058047749965716246874246775160607899189643831046939999181061860326993852995423896073774148849110897277585400595252474368265059865037786335712480302148857810927076423132960381329368398129529542061955608389173325656868349499070393758661546141709958495350373534533136704059046230626754624205909597573839507988695013861310511963248229738133770254597014881667872223451957327866785304692402163070278946549425500503284989013455547663789185024160970472710438955340198647367206609760218654771440894526810463180529224469158350330920820409985211556680726175660062693401842864322455624173936088047947992675209606533164351284860841415584032561056595791901776004121912781724600595134133782031526722363053109139661430012862216744920413883568728113343362035572999252160159554892995331293253154314886276866242370522748364329740415091509049960487476413119455514324179444924355359051416789806588112480760006285381761599287357684186831392340558218876676456169087297225930402820079945540637887995674372547015593909776207749768559444101585992594307567447128279130485073403702920199776460039306588020445990683539428094682939613357195759852602091984815644075074215464013763628896476101069239633313413877148963525401078933477957121743836093542201706316638832934106737949614033005726889634563242008593829439441495881582121031461056484945109612326762931476981116005727922345548183015768923055389127654364401756443425593767643348804583192798308758357837881983344474612106723875659358056213741997259771164005429225960820790295576491912466582727868520736266722899218996490048089583756043808733869193514866523323301673311286698111533836445232630317840737730812590011295396405825066561949945144216989656608487087184045244952418895393412607329764612260811455112548842360290705540804411511416365030081748734775251234585871521713471304437265596557180372640347676041841676114826442813738816232905169537704124034721501399483357395893656506629180416014826694754619442993704618407381790086421494803658140277639594394467939338725113377601588725712987409589588327896568570551849150540733916660490230601114844994015330806324753532778689259271058797881824628762277187421337741370665435640346951249697446749829198735022238633475999907080022358587049338971684768401267875814835742654463206407289665210965675477899832422629115039188384361654334709197308246078793132747910760451766340154816162057998498599338142504145359960891396215918352337221021338402739606647500893432557345773932255278109136640320184762678244800091725527979236306589555129144674044304887744596334185158772676864874682653412689272648409745860658763362344870890182487937659141566159353715004021667412301529124521061997980170981389127984125241490256516179787075786533022882994723811744556905540454148042737631945396685140546555048000621417339414469611472107538367317946929626307535055838908252055472671137936019505964817010058475191521941721901860345381581179093763687823387319349123180529450999100584033610702684418089649544903989586611124180289069817278728150509481527533170172809303872754961979692174141749816844416652962083862886733380297907008694535270255726319832911517033855314937528197579963296979535851062168863358579531323398373094913095033724623053717191860476368322233798370868718440925114821327144470756787920729701314999762668648881610834878503917663350165294847413264439937734641113571693733566921268702191988104667982724838784355449138432497186410544487313377497929184535713124183489915619049508301545568394601118192600472223572971621020286121771919467067392977582355335354027707986791378968462564531445471046132696677917256354380810736599957198150302627823251007492924895873005634928481586231269560474156743909816807902031377154073486774480982589021422689617380562937464707763021520484846625210964796802449032775888923727201134283195960730665607556229868159333803514151695521527427683350173003681192597214018230133231279461929191667258125319406097609970360081382886043955411638752711568892029775018355109765235976663018069942203535797788625425978954767011642040289946881453714838883423222121163990303174254358010072186638597895596890576640432291199965711257620012797704801148181175915278607884365531413240393755978930194428646775640943013140113419901917853529419290497565888060054390964999431669509589662518513399274609915394485223758712147688473738327568697851798666652013699612045772989396542101936224815576762761758522292969211453678897521315460242100474514277236338137495907728392179028289704019698036290499876499012499623328509651251894000394404119470704538243826163012310490565670635650932951476281823636444225968375323143558323944834758400643727843094756405220873089799336165017561151137085804923791730470623844908877944297509012824548158466258633732331779540600451172419038513908763335611430133324041799978977622266489052197296433004874367223448719243524110993200285302519998454270728774079387732374212863986754007199479916247848914687583426208123110287894034530296926761020678518942058754887154074438009433034699173661217458208262732179250789657228913969962951385573216320261525925226390180999585595078642225424318269047170457529133399053071717532392141587890680411806113077393933994501020822857798308971421680750216578011442561336599404252036276466365910794694865307538054822511908871997635702471163195453772258726794603315623664252843646940727651575873589643706489479667716602358245147549057203894275867759540211282773252013011582345788690774366342630895682394329313170281125454105368791770834567196319860965332670299986193325338492547416515178212477776337003741764353356805588109222835329565373907532406836064246455647928644520179487526225619356772071056444747557146674453697572137910786475137253204101664437391874255581846927546629499228362250064402345734904308165960728257437733647789252238772177480967422958508216098296922159167852309899015411124530216349425853543377751066815370757743945990148393862127222691132226395989302814092714468864143031445340891543068519583267583519230719486330675297546502994853862014575101193660649398429245718142001742351687109778292912690872651839948573108460327799959980860544574732734292200686202876061290969581856171915587744543877452367190030907499143917943085957345239491004911236842292224499846843004786816154997450527967437245302769486138984091763537100072476173682458364583287231891301717506937127608260440739873809165779784566146723872395092846703482386782304800080613521133732026946780328929536096495365632995304636426044887288374455699779613075073890753170301674052025722576993702539357535668087075437192827776699768198375285303277709577571614252004881659811668645525249734280938794736412359822391474703639983709993983193607171912223513369486993555166500944696999948710324161550788390128891014831939972130600283866876773651175067592570806231829570712706161028257925868909528874772503197368204432503488949154091641012998015354232587636064082982045647468546306749904659925191163375508644373161592413905141130962944621903463506889132772527062852415695597919986794801616149319144656549160832451512969007853935612370560014500181177517294456339556799492373528873291776002630040307847621076139805024887968699847803023312497673315961914203605300299663023086625182792239489643519460092199338687314962519015603842338590069194954180240060568238600713391154809429547608125179190496064963422908530179516215146437862175511546148669286926749491359698953733811411062013357733877987506909269247290390474470480313860368143277498490518120566785869536455953552248497879507958436086986116927114167433321182444513494913531490827982360669317543798592118777385303604630893876838558977098286973411540677449264631895288087599341397031857220209994839001247657570584729427074856133749946940492791860599992137590154755663054736778663145145616196729781305579069106399383399523012306324020989291413660392498265314227803370814828464136134739886048277005635171426767018605982279363151875477942703758282455071410155873363298745461043751739987401212497484149109714472166623261883304663257111164705741676019394086853984090519045511461805100844158170544683654965411488947840780866071424780634877687432976357642091760406778288055391084899014638432195517474590143502575556582339645472606004853271476896288884031787917612912873076384178185299680382019806503180886106691848770209443777162291265110386739523818185208829694834227442450437252528063608260298890932775973729782355780884707238819189810372435790063173676758804820801809586384425522557172248944452151100103443568817876860599518781303688698626103975047476765007537214457001619633452784563361493363160506970530211317648961929908551206114180997108918116532764956078992584052500193619718888149549679661204799398873977130192143676095203001524861782286402905528018418439682121334232230881388877015081169000886178527438984980211106697122672525265490838557866505905548849028683007357447705790848874509186328034679091911926353562626371884334662857454550188347151274345509943470336870388196836413618488039964085280052031456505244216814473136647550930489438892822589528561828313308411318499912300702754260546355738026051916245307619131469712001373800574531616896627862961851955025868749685163267167736353208032704080522437061690409564597788637839122326419329479352410792054487854119015429254839987576851191385107838682264681858593481933818248138659881729710438339206783830125956475953975062381833241560910276182608092030023040579190373699206416917544317106637038107975341829797176658229908373345809041202315616938142348848854075901517193216131977970272321693763652810319333173343167537883321629329907235749570456025720257454507616204934480518825903190192671281641390876985963645955413852470939189498391986398710360594640238807068082870368834928441517511969682422890534701704310210307121757031679498685967420106097586132196618429981357268213547098503888238619490892433184696986217404610329073878143237772271644306420694535166220034787322578942383363434363602826715981836924102855528402561175447762806559972760625569045934033508689295350250817596203188410637728940289864293065014072157387169863377090426815193645130836290625363487324747371312759400088037401265092882338369856538403171705139420502789472908250677388501395732216616998907246330680682196505439748846797590833946435979225713652708382374258653277201904445615657697834898949561141613799389743573649838241759557274500160777300897165752412732283819627596407342131889126272472691349259240891769004177425749786476563937639610438691253042746270042585545084593914977843845848718952696636796832092495034912783571759650531762868305778790589808172275116957099180354758705709067861777628309101610844139095184675616883531179440252719395300881289770300407757240318083099142584167770151167443717092997073595516151060216247319539574881629481076940058237739001153147161680589839678254333851676523306929490278898859971430855770311866728573176048099741920846911933533856423019339275533577404501826916133260334375993336289231715451169279024196654474609435111896295790122360071818975577408072522931632777941582356369824007512730091149314601600892349996537023606785782856371246676928455476283028750827904373164775260333850888086019898838272142932341763547294769521816349988512141610702635406950628344528123800550550294962294395598937539593817862742068227176106093276822876505966988378627951720166746674346341885964363383673987082776156441854329827545108222433429626106529101713777260668403812304005650506317605595288426171636918980036675084899559575149376245233819426162211798692683468935486589585368881264373953468140418415674715107055511619169283093579150071097385049766882322016742256664701845509247432328137271298179154855393063791502467545324314473852851888066752155287642389579687375456539943321490726610655264595544418679280527416069928637840712049613079262871414364733838415095346996553590166157014534520536852133359261007392124101010414859458444302123186430592012467390431249809164363555024857933423116946823360377821841080659661075374294662117278983441663825737401357885172665022007159077404388095609822644727397110010682774328600946021960274934845130517609240254971578980397087531558076258429703627431756550945808288841159699733337530909146007632276940669806228195497493560024609546059053659760799273241084047423232531650862809630980370951321268442128046725212307430787908854224898240012126016340225009724525907011163822791564270713994624490424365744826980184035415201598286706246976260463155607196521509409365155397684563717688019940377663032197802594818220553179855530926348992080723832274481792246911172233785513998284330925018703540844266253492384869511587511136242443060642128653291539456981952027106010818710924277872885717807387362312552840117675880928395463245513558473420689009078390343089327757466571599496134243750944928473893794263289735000000380797250571065828853497256872833990867971073032733984870653260388498875285129441697461674054712787823086682540589631286310429650214596558349536668455777326196576734059297693282099364433275012904135251502459098802979246201537328129648280650976422901730979121918824632048427376976039680079468959602175119358956702721036447369837256207997203123646443483572150836253383984789798103980297276216166753228727634710553298225369574345678493458594345406272367586213989463488593283190056295340401857577744215437322064342792481444004126599507201442190562495302650117894112628053221721210280720311900946681415729731980058499051685643133605826006313628977127212561512568100651253766753498278102246388154973462543537480004540955591686255811451782326077094977693951351663769997099261732177345744422145307702149581588946878878766988118482007833160178704238079402174411688283896085563736787849902019196751581295964300614068199421701399555939563437470281718974385917994561028609962120613889305248079202307555695852658005131042231637998284596808055105236780608023470098084037428773127018211397570584244518671183128591203760193654382120582118692717396121415108530705070526966393597656603463055136592436335945768217185043060717866296020411957912677850096545975564461929602541560318061046461562468269457861230072882550819329385200669660726492879724861857520072837492361403220326147872837431407447805459086850285189279116895625691552733315671077218261867813854786634616744559912227864238367304456417590250195510684204652218409942037737888804474901572756758835551591761812567158501539525347635362348020363276544475605239914783635569969996925213099617673523596033710991162680626888795234109686741192650917207032968456555720885838693237319458825210112340648248551549008215645719310742829086368970664234174852666984722506362224129116244528125977774958893145954414659511120708582447460061780575761599466432014423256107963686340041012212204444109508609764366384737474529595985732682123818301714733730536223538362588299985350016047541475315229802495863584034150050758631889492774084596500009613886567179601793658895638002802959629536414913044979532724785013447814683586605993538106658859506400662541367780594887238017213967475319791797101920600168995989635460284497307688830604833584838886450680993041857845363960053751616229507144282910227465411267680759987760864281339964892870894024575548791514980520240235905962374816549017822967840009282723343419658984831315650867662303344756470516638453841892310593267572325480279731427042145794811150332370319137201337854410563054205875803238557661557801699423158076832946989442552008181054762533741839944410100802126977054304856473125959808221148582526091403561179206783746874755092489422344210568421143270889705052110120691525854714319766709475565644057341409831846501896945013021988840281365986489028808915772441855626274161515809054078360703530057723207249363237427480508247869479840942025865888579072734476893331814386384702431865015986503441842849920305733810664836195160596724086685489320148719135429967393954892946408120795924543764835405763907644376027420230058270445577991826997091876632930411153957716915223657679618765876132818560249842899135421560246368842426416825298116395404742123432648379566062681365529746874775520468991008375208424272713077240688775989822569270636628448479538378724359237750365329096272970759538075940857012424695704260427471990712648521272249375536798606982802011160178324901637849698345664265644620218545576421247177630719603689941646670694098286915401411675305899129202501575130320572757380398448464151514189600333265593618788924004544786383448206785662005405604141297102981254622019876661658645274271141271960951671065572456818890657420378681399787392649045397111211795996048555179876696085998460328049509512136111608237279913680176001041194024056476983673720267526917899379891897726191523125935984412734675057742190662946144617278476282152376111236272462846807614949318111056459507094987862944390038599231852956988357500626127716164103898421779555286424716941702233997861643066611852976289227731304012544039378175557109426401516865785732083147045740426661182063444852669947982854392703370641601112938509539812518558437570230968019310387224989719196791528615586713502103153966860747787141907059513118894472220234766120770270061226256016172185153502053901996315746014042164174786329605944725092813144619490218799925017038099806072975601068752532440339105186282037118152005908250856309614425282990403794647436550833066621307295355332392061453147352704577304188041418728929426622526205791537701940856088736903135217760396554556537472482777542102174348200541183479827989527551369487641111281008513451965640493940680623851688272537704674262931551403237341285640325668100651974266376927594027370186455259176087844387008871243275638716975599402306652555798568263731536179257384356698329899057331924102557489507009765098352331654324268537803163329200665996020910990000954750941008705608529805736631072565154033590714377341236013193423798919694979247726921944865088684016392352901386940730610020748255716387135867498212165966433354543896734109601255471635366424621501025719736712977624323132359531608875846864625173345440724976274578719742700450339513371715527987097936917748476701588710962738411365746097803670341646210937558036780304148399778072744876468252415451417269992432363223857968865607132665602941508178490508234656859036686239034630095148243693041138694359263182820739943435370908341860257145678137269138171672368926358394933344247934253640769908990850933229175806835256705368222145285679322258033404369756649927628709703077199186677203302223161019827128250646110007605098190668456206677392284556213081736598106720232240575103836150332819725492445689500214047072565136092475671405788817795263420772136699877762369863281413716072659295096064716122395814588172972657617782012229902114691929126501500725459055431525244898370783725239536467599613551843296831222612971341689659619988899540857826895668650930233656701202004608038995510892147200873622024689374199317383809772691912750167905188318808836474033287126473283648358007885243663216195272461317359649002784220977594291747098812705319321703036848918168032273246038133244129437128077678674906531698931166336986364845506609250158331763521056766472248661502128602555527711591176558668749574917671267536480606929129515276034931848531839069037565686757877787285874772908507878894597855191860529373302150475869081915252044025618675351011444356434629592505634745284688268804755110790022212329798219755316251675414853572932138379933004432788377475846699014985639177452357546958074786320114145821046893454817105905648698539237877456916022804644969108026873450300035415200015764112916767000233345476097218205347044565372997255997366332588198149638795383663600201972802620691924835802501615976286870226593592931354432433355885047505290331391432159959423800636979559789165246933338394730538602394049455149116829873433229697881409205813366983326352905303448037730325611708318297329564819642398500032812086108037734172792379888113463330411768323411460302746838505200255205202099597765986542483249803795176960768192557184082255216467268526220255464002979255138489673318288082096203010247531325168412139266902343763589222103109488716694611504482181870325145769658972536544131587973138251213893855795797778575659404265842620311502608816908130158505513380988768472943725536815133645718847952404400593361296437474283814046336303271526638494580124694581196108201725770333413142869748755935752706157773824365472692864138081146450270379261932784191055358064967618031428705210813789163145140411891357481487224936483922020202272895471151497439283558723241010218760670915680252231950711009941719710017314589452676599720015994731374533681464326407066123382025773517423673315207340881489717122475296332502659969556381489924966675625727840151124730758633747045441958160502373950035306060192773278122669367336228673179307941684458604084952856474112867803452270499588220387600249064165204747735446802195177273817923630170733599230490213933960494603001134580036027862256420863415706117939633920726223846508252673575558170469047866636494862305571065925454058053647605524753143816374618246607765605274165336836401587303774930155307390879753764714986835415591306872239108544666907151841551806294412676660439806817144868894706540859184080598477860836250513418330251269380822139808778283227263233733857797184327541455204646092809952012106738005507341398633491484237194235449904730490845324342879973517098513108215430213064418503187365988507746385531362901258225783441541484085495486980941873080827303808011299614587586861439571168836595727923485778610352759060292963325010891418022585959737978197002767894087830716774928166200605077457537380802442372903524020862829864032757101699174726383668724151868381507958012502323549456865005579583195284345577798402502149955731735026543153614271409798831636036971646289042765520910823440906730101592752636553849712579876039089375932883867676077837170475050930975817623071299222010804807496250611580109400334019962212599803961303359589490556794024991660797164292824410093033702454436494093572492036080141783688629830281370694942330247084371468635353417882713980299517331421584904612593148722907172178737438067318360264618352462829186198930397792497036152106262379994959595861818502861443499268741601292104816081924874086940681558186804021693786428217380219449429032503112839556483740966402871563569228487014150479522875164721323008741242830030508232775190606271191126087536254682207359754836794237718683415053945814999028440318684076536198557943123536489145465126522642415386851434780650752275532292598077863191249236802243074766355666624976799947910527235097811135074381077433553643437405246902174539874913088906527395182124970729426670556394473252897878883951811641316909527174412115477899191589164655501140498977339413640193970746832702438295052303740634635503957437912584850052392171477141746785327368889438849240902238443840558873245206057951966628968545615457099308714124686923812368285660053091313218106112755177864460273714066551577290077704170864589379495761733119419662740198666127043332460917399004490395382288438561782286731281054111645356774014255505603632649593510893121620563673045156958695068184948752391962493804993048978633726809073294350940604082656873895663114422483374880890218619931106056030817896095207061522860107448183932624886303155253501504749824360950981568240076802759857843782042710684219558612331201800080916923919802270077621148841091850701537335724543432758528498177412529830603950589722167441138070828662488717804010041931914065178509689101202654695299233739614696438030993642280415659141231681162262835539110953195377390062185916149809577256595006591682481138026453848046327278966983393573262674003838703340157130587010694549922816922116603279295706146860279183782332804274493871462565253624285432363255997100750240209591252093003609725753841379325925164381748495821177918408218114593768645088814584243719895107630267380468556065606760919783308903887122071421181311682172598388503754204783811432148762680462315395597501527282788772640902076639511469088986893847479977109463674989480999978015662078459981583190566975471346995324068291753791137169948137512826755974267826428180723039527223897521967190475416952526470872262221626142448128481797906648708242624202833769585340828898811838726954627328980942823708495240900697856103296282596699878446262749224603354491592241958838538439147240846800367282248982277628911241925974828681858893213444030548375543838389939895714885975510804980325481947371489035029045923506818473643300032698416068390181199923153338831878569871402275242158545414255034866516294447475390123544216217808838310780984734344713152819556734804279323801319773418016873435468014415868377018166996410276899639797343325030246378358184827947275786160342470894369750573906106261707766252106068182763537582557847169271907067693472455313626838331865152407296821667472881534580763019343213815583077975042824449754138618473606803290625863031205831646680662427128912166591641950736949610855613307893304263687734952264877169900138685493412871334044263987751368465784946420730003019362054199892250762328578645624301348734221980949790429344772477409625833548648596226335708360236179810584441917375692814569223024413992620847081794725377093297999485263742392256508706233642647174956147312223696142380486697742339102116684963114614929711758086005951705392448534941148956553253650057508177309684545078235925592680721849091151165848487361657813000832321671716932067783403048243439980415446011003833569626679671614288877476334703258744878771607657478004727025634082237558073553219122850950877279394843229490151615646424288430477114742901402668117265706437838421631393404698066869310601574025924293824829379813707228356996249756933972477442380928628282394436611959180235018046835827031004766312730704729790460107048860565294608121761655253161554914018944424330549316581502412326110123124387421721901559256893182963385463406347420048879638096202180245510252414951284400885889684140832500155619756143742112459586343526879158609479814146304767019124069951274492905050517584686712620943987663355001986209361407767287060124237245871919751419518698160760096132055242636726965956091306853061160187380680456943007380757245864557756029861148107467995075252886040234697290492014455716623849697365786145599510581736109366378602480560846875324444044408666835367646071750407182466267957891658733126198307025621406599670957641653719142222010342790351753710309018296136245091370928792028913296644044266225153582045483011548584487072850121963579337999557371855611625335839306525349378283469509321773219150918199698380309107627020835092802165240354050091446758914601825309350488726561897535647221838774296881426502758360940422033185905779159613358824779601257585629615836181588664979286846851814619801088420062746792009717431429342956582569056776873796648263289329092667522227462650710417598457276146358407373650333043568377034040522807328138949450320950961191022232985531101915707275232394599216566072308648274581196199932733914993857490154580260400174485381584537760299790483324347664476597482917104646462034846525030299440721737297582151004866598815517563683757967418371399905404043736235524711342426268828895249586725062956788152819352615148550462192912041770134643177173582790756491889262612003444440350416733056584138991770459024320649827113892758618910691288735256624875558280034969046472781215716135721293741945982002517310308172024143212222281947886789495378370930666927333323311357350334554541838433620392403680223633057817254586891249635128445789985638216602006041197520389287309941567292858167586882238827840548407631238391957553702159436103051200965765153606451904925296516028113539050759230381917880221521427079646789643378330052178664555209948482035038574054827906833902805981943985520933902378004757168832161872539137687864605912254200845642786285241816119055902286003538526127567627938773527939136252589253088467567040960056436659764155236358228057594950444745359032226449054471606852352206823759034203654823802674128504533920318742205484930656832761847192795208150903074237900170580216973685635973158664943146782348338944734164035896042795660753336393350454251590457815741386600217598101336209906121541425548730482033234276459085884325018832799691039104407341666844263757501022122708523694763676295825647204533669190735639392256678550207085546903538899862841305995015537985037769378110208466856319493490612033590931533119028325046340027123852033160506500243000033696381745499710754165151757661666024336968578913047069126199834317140052019872410804625316207680287665737720964470010702845947571987357076225320699404717000231553515771412958506334265634281682208873939857909183979206059990829864139590462199462933190513461305411955309921858295836471229813417510436648582652935823276445961219375992747140601758919942016412825517520949642116871128871503554116391856211023153521977364510037332727707233796495893170150805419627562823732472014541347746691530294388889808623328001102989361680773715398516719463837767162376376336644548332444514507779006554602334402808834647015083625864699902248168194683022684042094239023083982698773717301623961444102407329655266841470553583008121102140008880116880300422745992364094546399870722278776236745689438712812670913185467247494324998971338542356475953925456151514983142288433668485464261769933615722015457579438748293014233513050332143779564237258646849704690509585547378744962537691423452941377203481693227746652932693869598798924381201522902947805905836825449031369876873188622817657270870108591975280707968335056659420798781166281210716739206117688866666623713128710136878879631918182930267681554108085262958353029107368115248702264073617278427671806610964149993923743350957425420446901528907523050285343517614263328630262711739797926999245842440952607036383128617383476732320221431875731221294990987402967696702605958818269829560947740328384295178338139739075756963592103939024120202329356775370147725594745652431854276686496474722364966476721632296445944502931286943812250273236384202184520370785447176134976889834718892119855066787338207716616528959928780187635904353280081100835904500794045711836657793704144300592809055325344181026271582619007401740471607385087061771235893370119852461565785378611604703265689975014161712679461307672960629900980829045275399524304872020134358186687812831759713982539980104735304602756230615885922201136901111439948672517147358682399054301199340978457943822800623111734482427827527677453891994444489790993665677947288698169827661111941728237688680405838879771576441304742147452043269602006234526178897076796973897665598834567950849694527308568917832466895744351791934994273969041153437995559923261923776909786930709367851219823336337986892642185605469640664174953623958529700826882693288534013772127272305342451496904999550591432048066490963828169753247058803960234089378041137145094914101879274310037519231718039705184870813584793332605609953227906656097046819028769305854048377925560444131121802128108791405918032339321376633356042607802179222180925165296980750382460385497000158640821948292823944412914873185702884117010496580539028482475182739999888042473454938916611223737860312583839834030956791335900052398521919138048988314321263913496067165471158311032616947241926008320868109153173093919424045306213272235946332910621473075101110605519869535851935266280022801027896945611299944031963431455380654440677378469536976828634545639377913926942097643716954322045438044856364415350510556358846406199704806631003477950374266221103398259405199543686979715744061802500684008359428921872441795870867790809641238928508611199305060336811435752764258245085701526223949167131503086105562234254335976364591540118443616448093130505954371415959713845741356886261742132995140863173500927088962719384984825353213951899100623384023848047572902566691486003000528737708893175508590805041329000676003076219735971320374492452964746139714406419761747711259547869149737919056531614817153210217637551375895815784853897907627578474918033368587358374411238589216624634795034592974114098573374839386999942250811970755343969121581616443254935217910398307444920648108234909775549780156433578465788067367936949374005884685869291073999950054406983185416025934044125152555788653791866677138519330491890069737451098529790969706314686550166864355406802938691923168019395991764346951562540233241677934687576890137777175376062645691489079041944742820652738263918282592814538890407307286835373342015877461012637393241807431079421626867871232578806676990009000964791337079561757106584206255100423853240071154025686191448996224976887456110131296679303464324678587268299016917162085742970915006912389478520123413745464699426156128009583778155598694328585907578420225672809381980825217949240449036495746048132671095816837031129329169768366217611636899516649309482858537976652823056546537218390197235487609543865740244449309301843144267033056270697486714125062216772004324195667644413887408466739937779351764000301994737806977248180266141237851362523211955573330899464913142171572729958246581535240558894489343667367503232797524177435429058672251130179621360647447392121371584318433311431944109486225208612790292510962433395988824434897602827938020916707836658135014432141076914524899144263576522717849295484515186260713226334443999529490723480470686992378860954122628208788859750981934050183375009641269973833065623183864189638320114607469698701449509892106674209995166784148959739310063308806297064651111939633265601772315466825224531220485935329133674165923236621846039830851408176483515996123144148743126204617887077922332233120830537754469480448484115719733669448805658219147956752487933485512964422274601845520729252585339387496291270319553875579417639916796523077558330526074268292050157214128916325666495922068928020749298411580194007378670450572521164688492723132507824887109345756267532643487772623275917430817776171492017449750570762360489290401212900299915578489834319834559217418953815032477073693001365401490049181197968357078632198676930497828720596464424479361615002285899897613093357408721062280805698173261659744363800152177255433842331467361130876531156062985647127535055157853153582104294431276003998242972614195791169283477896276857889775411260856801657190042352189221398507833619581241266542477366708556023438011898247954411938193449199783174733757814464406354463073624811447572797217232398625043196236439122638398377803152362620209639719081349232107717929826922866432373135179210402181478118895966297905426543995792415764805970124102426208372715481125933176832998370716737576988282909448530342101139028457510127585213628372417968679810376561834297296202581784267185016586378360788744430057410369003802417840966737768624944417061064708462738723174395311016842520509236366398741152259486714544279197599600357790540862681178933401913229509471620443796640588751473175963018494668432793146557854979271580561731928029725293072347193083093877688095746876282547001010113777403202170086952878668477098970864746529386750612555396081580938622861906961284842398388891042145043266796200511334673681548518182911464926665463347674027058778666208497345737581573084716299049504264612343911780478233864710770069473031020312285349182999818531994133803395012199019905217553053591103001016453210287003148851252367676017382850204545765321169386829239046163618950952736791028475110646097017789561311331399089500635345843705604921483187092756125891876226784164646150255743811773763121940104454585897472553030888173505185987392993562725469939475359890334982396405048481557605084225078654438553999955458114312049447059817495281980305370701550815202868289467769898909646858339201314803284175135748748243590229054757895613979371501827010465578390329131550983905235995373201507179612923609041098216984894694589905399872164517204075410697547054206931644271496235128588171232672478139479783284855716304836976188288451380041827709047224461993943093397104291075898771330710794154708679927632801914561055118831071938271707596835563308574189420420345489761420102383099380400244156269558946466208458412673210857620944701351380580154582199931984915673649940054825236556659796125217165843462256035536523498183786993443691654683791761067133686282918659924399046885395129267548333251121014633550457493711900287456330965427808256482350972807974949247239867201154472956932869485842518417117701202386891826935485388507930371855463929177150590025384471931903804778503167947194672343333174548445566722556217093710892144881658331967324085067098904729146280448264196192305228169799495778494509133595108312766462912405302954280133809180363774874761333081060841175284183181042139311365503170315255821691561409845651683287877774196315381342299221044732684690091801772846342195083739160875433772617916884495140152238309501614393858202450354848162808013938666901315012485887821963938057460264466999747065881298464986918820953793717502415307644175244376353008441735221610311133449050096987573244148371473801095212664594760224116928996669989917514038734580334431114895420116419716671192565664043913841096845950686888483142682387078630154551274668866624798748327774781819501525948439427365637143901990635541510915444249823161142883000617598415733719680283445775489243132341475549348627852204211925003522970837354501790881954433717197687113126497706432371886744034172502870391031969332079712230453106385997897859269296553256418990889082569659807745801917559841330309819043921695019877505118204259259828580598803637911399276290039553594149851622573190727861133076674488898040039919514223930463015205350406861663226716476352751181800325976472096260010593505194703216340718920094196588874285022709125948400220015383710451205529062847321753299917853930058739424631101402260230039906739210334048055162390770739250310816474315222373402059172148987160730237184390318062154698369014446756955382695860981300443266768940070022635649578634839598767369513082405351486316072830586153136818230401709295951987579261053425367303087140860792394945457977301945068755330506589955609697466102156868862516707381328289028103954856712707768478097020488316422836615749027005585064635911281314843019123528152131340285180647068102714960868287959705211583356757844035400696278727519252809461877152061160789094984231424077864974505170200360849235757131920796542324060755651354203755533717853037793281059304383237775274099173099416312743063412821876109650104191952294569875218934624095884079260343020816300540923051262526432191010407167215191893276877843691924625810749650520301987060415693082664306981720727562216910261794560955925328025678577037726824482452726010107399373149847393931638332742469787146270446642983757758336660042271873253878738648301746111179452525563391163140192083080565720134118704430541768531998489916702035034202300982699547790026653331037272915650089754939129891644222007223493661626904879964000943741018340013060770187297191588089257885320374218745320878767914329592125159815347975029736853222313247996815971153684587891372897386526779613078293933618764485520811842565518261791987577391133914914813912223780325322343845843739369205131570107707915578354386456111375138376353870254508655768038094691355728334610912024832933743892595380503825300655375464599935894963620730678995449866081464029101299225264313651222061480655766027115074620068177718239479735148445124208582513027562935962507485905421408709227091113784350465485744741227563241310163460233707229917269802254206501814462988844597815748634527344355093496297090527995049692669998783425085285497911222426435049998774500825431359501919855597368181285676291130969843421111512292682880017878741919314858728778016275016454474517347223893840943796936961839678959589922489822278306256842031833903848901521566242024474173933109220107061546645881170486066104877182797278809212161031488607682748445937532047293038541740805862618977904541469183913579768725308122552966478091324568196410186613277727062572316827472129540460416887633148532120277880865547753589954285908707810819378047498054933957952566267720829709463054802262571492456215498998718258447430695272848972565510971977377652897237184543278128804143815618544641802303176933555702991919046677110840800402475158226562841305169132603386555478817765298211622108972362329605050273427388178244916144550477188200962856077189345789303052052636643636414147399255684992185932758640255137749587656524650754839421312001152161549305646514521597959984341929213451438316002895257458070154091101539119473842399911379154519633346817298653119508328838712929741706428035965866777074577363417836246952859509700021520183717395636068327523435917136268771581570919153355151201386814253223141066821029134822235879533608366757147093892650197070900707049020611025903906597924066250599687333081707537405000999302204789275540945376253277891235874204213931700777068480005113483751744007060371031431136299140037701027944158370596368406053521760011487094048982284742999879770082145073962103909075577113664311647936544662412258836156336928941839366788678410948408002236045241972280608057018981805033018712953316054871118012431916354539775836574943722849357139671111776522961816822937575200706151774037916180562342447703420174039846197395263592919690186191888403113846752718121377532931134797226546341096667858515948471074877786675456748063676075936846417147877155803899501277411475222456985202886872800488253390066978139768055212554867793196363289864137431643641117884539682966131086993804778994446849760608908610664114357523690226700825661056801993037356434230340673371853408368927875185500638866319655063209592607674562783452697692933243109619255103084876119393928316513162733395147095769802132713290712252315745188476065595311219045219782503541084492560741343304293505606402393349146782103531673227715933105872098911777733431893660339515860351841270376976119086086985199797137397746281620974418919524416355277493731818392399328721153301419585884658082602984951107693269099915571481237780415324137648480735303577005352939512303663964020944873573461366320786042512718010205085059303451214874273926894424162233819701163549015610347734361852396304114527855478794200140408259923652179529739785209485274710952771796266982875263478062436828459611777977252488816698616705389051746061706349799890498589666616907557181314309074031486371335249526484605368581215792046010271240830761669390893948807798783658782736863833351522161765476209567741275019838734584986309501527678018055124781631185689328479097249616219687183447960967839994472846579768950571877189018925021513362470903987143132733895631130882555192178003644213262766629659444859853590710455027881563733405781211978387162992520941479656869568346015645219136769103524637609797369601747576761563388999354106477300013849260562451737240309964642612245414561853882827464473702876172751545212301586670906528334048617690563569616251810548804587075468631791589698075646788644490846332205098828364325086682451479890944678426141865849314701458916507892749711055784210540255598857697778297154525792979680839339363959036065295651436022501482386339739430835392097629688303256352568433779020176211889501737475801292270484109636201619489205935275203219288489534083497645739973228961784464467840676795371895244948268498458369405626934928801017251984840819939368957959881095601124433139367571068835756474017656909366666829072061789753624828263478568143327211830293920059460858514850941734276991825425928501847155934089796390478028700828670612561573511460553413181349252988664699922249621323035226631466342994198466678921188988443955348949060299281614273731013688622371882166823631400438091224248243049515956039610221535559517382707929088716442181830697094209561148493948648989193416308389854339353421980191671307242067315991949342417781227496123619496027756957149564640302432723900428646373973790342115887928285700816767676961778848621378129508105352013333609670019823744322503885633043145850109958967899976234226064959160866552961814335249043669318180444039045734458869195292657749323893091182073379202385507726343626123059024088831814773116783122736072920524320300726330112912358957776079956764065538715129524552668324211979390133475732803143995680492423654909050052975972813469080170032469389380854842779066963915291383985269794688658702166503938396949510156241832682414284360986626407315998016597387027414598628928615655848195587319210642332655090428374031014616003318118988273991014053507556974413143451251553832861929756733331393317694868899750323326812851490464133800052895366937172233885305043779047501837304759581841202171098194166275348796797412688183052979835536727555301169655501993819435816810803158296309951917327628648844112119797610033334817820433987460164260140466289948694767309138093730486509913300036586939770108417550894597024697367615713419691360099622269577228859125499584849207006070325305927038337761707379290661126631672400564290228626955461772293185785419453453521376289618373050305950655775380840933117744738848114225520528139742260101365955174664104829757157523046996076505150178416285171912573255787392132961227482026646277964358721164675604158287912231984074614002784188595577202880302545936463993688828115602771843560911574116676913911596781999905576097590497059519550711999674305218419407020494757496696567025835786491953002596013741870219707609336320049909133787694419691538839660664525183365902972345552626264210917383094135341642476406669751062898539717308014335538988360510936890757790251086643280484797102210592351357432865153257784285590177721057735998602399124891022720955760882813105279244311429838449345126267547760501672636106641031001416024491319956121070883910432017277485456552280120336334785221653910396840576035492632898701249541930045038736503767682866886327230675381114511005386875890795319937316498571456253758567977059189416420751539697842815596533390980734803189413692341242449086686961295297861109935310523326098808407803005407819905561391324837493222571805218705218061535802081214219952505310366579511810854804350917395748450982504057743506293518529733538991469222483669236225030689710983022264220980175260832851278436342589796961621249493560688459576345365686634201695378494443487873206300139696622493255451753628684961191210102684020926880956316772946512507376835272301097129293692275149115108827235461323484136124616828336600213282035639451077753045101419463323709453576002021140628381118347506249641674684828131944160639627296953931531630159619963059431672134454253598590378288622477678314718174036629927695832562533861288204034123564246907713016785412553652914404121629886442526897544329501021170842920532896911667700944463167972235831202307068569320374850205936202227828320153581724882609117513706304586842635805761804625626521698446702072766943640315693421403643555265199614600930098286181945359853837670428197436907870992185716042614799131590584600809195857683953123026851273572994428613422492875151721544079333313724895367139844983026788438913093955238286546178605380610172328593260813782875144250835746300862235502800867393770984909591265253598014606625873865776451282163878596138893843767969997665246648460881095921230283647376060528457938019202539761916256428570938867946525655027119589067355762172116587800388660672635370018224257421405137775384190714207771638782570736988002961630806552929749355017618832974571540662079596773718584561947427503495040509989637337966578705216987140574565245782004495607112033482379472243518391701152487580580708711337258248773186835985064302531669847296939583354836735335559012919242015851964158374748496966360714371379527780836507824188755872186011257367211749550395641372082346734129378200398066027767079808178870624329335303944221305526775662590255099319288275170469897812970771398548464376191054297089653725022995689169284815868031270951523563238454323073770897811080714194981549825720501343384917816065351894380777863515940584935266897019934167948372325470405871488932387746567392794531633074568768297959488142152707950206546567118863723966971735126136100975695814205681132398941744389721850647664565271539414476938469102540355219669537175471404231748548441537017909206938176108324710611163219028683669747799639239190480424373482540228240369113864957827106222642941996203174520295983445482856899425885030556902171128667628664185090864548772904180481280487272373520098289082672563181203843596510951440214114311631806264736057642415142631118469272586504134795705987022601042501918532026488084687831874871340918984088406077412031247426126823496304743455851512704433075754506022576805497745318682781894306072977550436428845467329126178843155328647332613590801859224538365694915926827163895428777262775475779771988456886686981450962446065531454629893694030571644585422080343559356213344724985545913036508000869954179738177387748172993569502285100246111055776859781794746968679500020321878206213860272016434683222893056978988906428016246288930445989649470677030457018495776779567516768065595846899322479835044784518140610600349288018470660180612081258012981630462404908962966699364026464182954776902585135303614259507811797335841774703461211270363817762056217516886006655997272373461770206579222758909619859457884748541449863983505764787859532087539026756339206626985674500437002413079509819515829392720620288156980141275224818805961380740455074620910886558826483045407688584201751936929836639323010205406459267617561218800846828665614021524428190413635728115518742438538069745314784867126204880470712812676534425224058391230701153666133829277551160490889170689572547524757281570870676395313246613180657840701233266388700876959051134950806135823581423481484870768934624444118015764309868569094761125842773316994001212525254428008470104986087339184250560886069072120304977807067692320951943034672026528023378353163752073903021089319593487628699724199982903843399913602890165780727284147341452866136069262690156213153572991145469331163559843135825622916382256303086813241949505437930444986941641405466397367719220420901486528863869061195370130625608253109346851891534227166728712070673906412414584208475288251411601856737372988717365987264203089098152983936909843796290761878374217397138614215480462085339179436739468897147162585629478054507486826139126093730098482588497638938440679784323241372662339416022784617057638143354330633264146797899444822143377985406767394767555002411987464923106524406128776136506886697661612663769863833694603987600083340694413677626287434835496536079147041315891419316073371855057216396095940553273684486094735242557333574896981546571014799888575035147226447698057201423491644485516214833996417439556025761871830622610773459636619811437515953345727868417053785898510236514887910271179437498475694072107319646520098592453236869592148831212628945978572806363683882207005545447044507467269421436525231256623994059512163435561951470928813509029326813408189684387012133101424195761781243681053596889159818514262144849020965666425380459668031778368380254103622448822049881711620671626098403669498538449042853008034005040295946211678134585039328975125462247472860973321028103435099454378206889277625031328257828115871229139505364309798600973378256978790697515212053114110141316353706481734102681547427766164145775206181607916260130411912685247820606114750228147733339102441626823897689135600237204378266223266919365171072523210949038239369203194955504665472829449079726433117286534631250940469884540248352712705737752849777699181059937765349153592424855546889450253015043370542746130749699480851729605681374491676390318040741336258037950791219114660376501998116150814805187121615253627070329424044240622208996822020939423277928365331994200235329652700310943572409791134408273982459377989254330358201117830805849866860424748099987471092587356543517552216169790708370561801233951376072164577951182579227025006222485523736273262757738294857006244286524417228011065292636739428105273566788739495364470713377029933105386027238157591435453669788139074546657537671588329962360036534697966561941073920681920848982606888365809782983934309618044443965617804739479539595691830303073824350802967692568045824810619807089049337487519366410244687746407025277260949651515224807180761797996242085421565289007800779082444705574716392099060228734124052314334322460572628976765630362049869285872219891364425522832920970526890335632097796492204958756631949182815319628814888131680097509325255262680631239102506747439323739796119995534671913667653871108947556270386109510735111938953181357762913039538157405232911606668383336516840827938680388023174439487343943466497896124436652862182799245091324684970284714136873929413496928862372310630032541118837077001270879932517134619472994282490591747472733858654864131853490215957165020169753240441121692747041415844325514623453071755757972695382208201935749127298095454585010794345983372493596704822245246657684430883174282488331127007230961598877913552211875106984327636341882855618664137263421151759031551549211386772969239683453967238792480043297002421991470348953372279545225531656915800075059793427115347321600335759440881032890072415187619299231112455061716714819933429436543398831365988588690624801934112811432239506704074091130952073623587957057295163830993351407985107530965691325122049587931687249204399949880643267512153930541943032796042616949596495791619744516850405961269451195673409454905083099810353731901327951313485636911306625290252861041572512626475283449818446905984367810094806985677225131966203959498849531952676859065927908651150457480162690561264101795157610835402828691657267424665008688509813000786528229914787417836831817853547631608504081433914789663442560099035937203369954298588704166348482196401662260653199816950423033604611327897477528760512313408017439532050531196007881155134882022861620290751884807365994096650083344765538423343028860309220281965646245183305271952995017326898249277994577266566061035247343174521007156880913554442968105816953013646581168935028768699253310600719003334890551159211608251823508951300238594136641067923881696459383332799233833298459411583287088727985463000472606699206734169396833863320782961597207121913766801311031684056637691113548802014229431882846180933248051535727451152318252707487765115675601645675722763465001540009069759447295617722959990758684556178002099842089785420265244850151693961330118586653493485947798829399858097764959795857044016810046137971343444107270084318616472146307308217811990910381886979834239280333350775964343608735874865533679595766137264230287467409525201860320664470716874971012978264277337486018357555875790198916879345815401267733694689549941964123348774752921223614551666697378811413513853875410312881953162095701702952348146955518531043634614421431871819441544665654265055552295835738096402729264256911194879392941368118940307875861184985150627665956418886099549534064835580391308737198317224739333022533197708618984774604147652728842286393110005219242950385649715065651485479068748219632838345773410250531403035752962427089525658643969560128949811109318210629845413472752841010480569576992805053473189400185613252016898246037882657324924124208431444770028219989091761515875685343387755506860507445089624327109595013032207663884853045343197931879550180181067574245393436212545487779928630439070018422937731221845377199527473394991167267291961125075151782434747396733999664199374152514015716931693023244020508257742372922047061244220619342397493343613152514593688939927231344462244765119231062951601919303223977424430048157417000278044115475008563480680184667357635975505220504979015511652992183082514982597031299635604077877399798247004669958545721777671853439580844344325510396224830541500281138170306489649146915809526868097154132499556903991857445166178980501731270208888123197709311952113379209994032958685810210433738564766650217866454552486815720947898475096031946872848397270613171913710766725113189699787678455859782131621465467566587904166792721122213456622403978275392034682405958308400930321197393450274888678069002964342466055164937358457866360172371109419451843903049056645540902332648083408638848439028697851242286028171811824432487878723025341022277487139001812149075626585933215219636193027552211616170412506673933656547163510838805462884104388309223647645090357451106347654611454696150590076322967098867736732157062885981054786007673577002177735448395196303484616374863513262377177508034978139706278875821473592521019036737704950867473936083322138188374729662276938051314681331360277700478064175031482869466101165132693806399087245576159682896728583952835923377952710102875149506265982259658838781635738664937532117394570255348367843560891974182317561609008276959135115272847236811947104755814172056629464189036051089588167490956238108801695027023896194229935321373022349051098051215729711673075213780014564214586329862605787587030805493636669476664742120080967492697734020189027093926992757017837336793449505076167230168360452042094248737923972094103493005357672398227419383706809539062265355178442345376614589761411703171935109040396980469626227485238633391891365647159764758251556936935549335791230994410140612423156909916700247432223654776315907413944309496329087484651229246659532263160006282453613809472798180110833576113178618020537122388014786125552714221437751756920319908742374297891240379001639004989921469654611736690190458598844503549411836512232315393484428244844918928493515549371088046152504426678822907851863710408664942288426187816699279253207877060364357434098904951863777011280966566530665187247432216221319246606633759192495117263099560611162939214153936555883251579383290189589585494644919552792292970744301968291959393563767031717108206864021964834198642270360413301481608383835199727494889113779440961224669170581592553387021177573802214116178473521963834348709456812249026100677561159830304261721812233488610833082106161188390045871858982531727906435451893718686171027837724722015759860051944229001523632194605089255618417190213073155158669791276208155418987587699350170829827657556261268364961138843371190617685093592367165425473835441603364392268906601029828461959878925133114437767700322054201338352550632679250580150880992904824135046720667798557386458418216481803303471650825757978269057424314486576358775615176284984296401279241741268720818479678875280513252818502094498316391348728144603098790800848222466751775687530498088095725370940358987359854528473161079253552350006406812965897291150097986732990556719788676252015151431411369915232956732355039913255220386298380382803386800399281173878609260068788061289594095400310204073508637393370621453002445817524821641641199092403196348586328711563486014510611367764940521200955022400868172055147849813729580106671288333646476188470531673175841647647133829249786365964845977399833742536825685398951618738627725111128468682611150505276904053251395461760153602213923413056589989724711743439566233750680368983873931833206454475807951470896945752429696334890282088032757986343769492725402473763610326842189553750993338277447663998681713689930433131614219292356016921550661711468055470047889293450708941505646550040028368222837325030357054503504346949527212016609732066223891596170877642839514269127850875361904257356286098379440898554724796960791849274456322567941410165442231672066549705341558307334196854750210988524931727870509793533521215589707840058259871185539024854890913215485142861464602756191458748834199211611125681394144354373817148968910545455883815535376305725207586983349321276833944946932909209533639084644286453861028356454370560381676882260715062767564691862063933829692892475018698484698577128257123527236410947501583548242108551514424859022087853157561309813258091546315514373069146948663977307972680780293832855605717921879797038822555666590979177908407073445431309667373395337264180738808433028657478455060164462715568208975105472164387078930890178947390740357849373696853016737587937871282983428875274524589145795377373456056244364173296723967717042094389997657380147494444571710968914641078762974446859599808628354459960724355363815870595384630951493264265694464099182958327934542961855644498039957962817331142382785937446543516582621399094149132011939865938793041924856745772232471124942289506453844914882183789050938815490121756394055123664873089460933645253762041376481207519905453836546350086115004365274951835651426358701004755803009710946731605765857528792521512802297286140758315384701748498229668421443273564490066771506141867624892937408609440633220892859562645222614610592107896104539909575426492996236761156423980352757282378006451352950296124600388912481869827931662752506768370172534128501513837241404072029867837517714868083058246949566751621819264058057767648705375548138885645579542166992228856022357895588720945419248611705520535574880895704315885761126773422784737028472428151726883843935267964844773350430316875304187620581731084589494003791012184345273540034731345184138120703407749147039680039312539465540162802270628184036241526522292370998513357866806636222990578058560488826504358380583476366285482047575592410919750985805613520677471734694686471478542740701904194359524124709493848295680519785197474954413186699943733666295436694051692111085577121140263839564105606083065802825840698553048470412609556865934297211772847249469426356744738972630675622572815497206106747958612248313175295168701547464163661626160361583821369165866234476029750824032348354816358000086865258579109128914361758812588448630545742655520868856790013393915332863593443349756680895025888706764670774862169111079450914724563157133267872552094834541237566153260780874515365576864714409087114858652070200133439925935818564128996576301034183487571035886046070604123645644910587155536479078343586386978866130350269524599993543909241752987153364338893808855604177511966443583365922114961712564277266765429842519613135951152703231812278248906831673830067692436417210202964884425891690084180472161193747244656647078717190867797040696065639296190924398932268696043651697865681458105334127888555531755812812977733674616752329531728401773746717479281213966717239772274185271993521639921242855045663250120009417006238835512583849336377494637160703361061538939604018888377549625880814286022129636781533453781219649005053029212468678341847930993420865355610170878028571149870142282420082087162368189998377798418813780408149556917438434484641941595671230044579505095931611547627526569786389991182188925909708919702036862999148355912274990123272482130180322996379093502863886886878479011099614876520226803023185820631192664400901368973299223606146873431943717564098228087104909245956908448375415167575660502633271010975153618830741954249441081043238273815588652294633978306212959754533014415043899260792528508992104566011333978084400701995749357981042690079998114514032752723079267720883343402812480395095874397969738248855344954634978269613350083698030596102103987998149397229209620181936492860099673952139062684780658110746563042154335083543732444684002315164020516286701099988270093471843965178153878389087841362292366192764666642672660763755589242116211681914135717326620502158554375989715671841585907008949406620037474416961800838579504687342713113191411932201603586577084155243875194468704446369904804978030846307645914500010590090561929432328679454474229031866719206979708154349063421836258957156356118234865269880856009370034480687845785630970686971271782652604082957593583021574902813165343184023543000030722661235068408344427413998209667537663652246315099483011842902249569856456502375730028779372261473459711619219406096762685155105372560602251738736671071738650420112708992924238179288162537726659962682632252529817621434752351257415956869729425040143136609075345813959448497672469142305561847033091435639055238429924907114285882488825533030749550564389901866900881394743217774799970765826511362449056833617352477078033823679683832119796117407719268503463985651222488518848174955959068029231475858783852454228623606882068606116007848176622084546667327222945052563101895935692413699938877847370513512510776397889847611449545192403590158432778639654226557900889431334625551055835900299551305037642350535014398484123179827124091777339941066019170953927892960647112255270865864892324488625874087323474782857198232075851178509638691239708413164660975173768655401913920064085824146099778972925210828286217914808820422738684856919644567968225828535149148168205002407829329013922131064616808300258191252405527413507748646162645228957032563406863420448773217206160338054575226066947142524435418026420473796082251221382962572039567209662292776402916495802612947530915255320789586241853655701944696864139830047922795504632684319072590930677955594744603377308928163184141473174820391528090149571325153558809369431965623254123706485806896600389047393977155326967137950557951072609204210869463086296074519474395909691873939232053253873701944937718476996707567426905910651740272297405674807649087294913724030728700454503233099529413120836508886936923423053366155802548192412553349652613594584632324709106997434820162190087921930583091636588231841203813808228195425774413318942505779597852742306497280066712790707628499771512984635024184853365054653615885930246023852471395139742662492536254535014213458157712981285527232515873129677720487011380444423707332523405432474665368263079604930250966335128020900043155774716532287368976950168800421855678310883488403389257477180195301824661903367154613901141254116272018797867885867184435327336384429002614574554064338977737238157772980219693365096028888514590482143188435700781653038179587516481147610223775354329660508274069933625052469708387711014880217441824263667092572694048104124440019097797212572530094931753310568047891644929420891307336322354592255605305424634255517426240983242310538875788696400040898963854161313114119976971211059863965273038978848888837523567547828163847868360422097535427603644841735569959917420627096779206505056920985137127844240592745808422584925767695664648486570741289889842440887644026841759015218455562248175624526655976178710229551782156495410533483878792267380770930820024154859516710469945020099241193442404675239006551130055056518337278949883373155077273354791724650342157101646404475064270038859225289089717539284975353658285772698280717817568689648843189599496565018574935768804967679018746992611347143504710125462292583049237774252805141665192687401246067472406995117223506115040556800967816829411777267165362023241474041231683884522724573703608742264846899785029964071085842095676300919638029902958174898409595687374080488210779241536738643330045645369461625130377798040425841890240675563498349711696504534059289215242382308849731329740889076696665710748167062505345501928241374630062859972919950550877516118724307010509420925994512890142021614381169656153864827625198124394381114415057357310206104616904897038033137360657601974145715672796440327293077018132739405069153848630306291363865662596368598753070018602068556864636149536682775247433969756560337256422836391056483569952821393518187002802763254272964074797502841903803493204016975047067579634510400461686486347411938031367618557947741113412625514851570900711197528846900006039557463368633999325335035990695161025398712424056093289455033085963033246316287147651648303202503767408366159444024549271094688161069967330250846581442208183341480886533907409000378821307116268353397639513448534730219122854778034279888839583561512479063602141927203848380510759884890350341681155060693911876648158683232994991898702622715844650598859916637598941603716988309662897770662308748072764147117782463771261220823712969075823276079195127865435047763158617359140815859630345792822008129410702447987970005249581535272907618115813779449238757222288763736196243679194380924688511263402043091128807320582792199436813038443384152103578836278228294234284203132109204241750279566983178542466925266504494910033502429623635029760660386719841911758229421627596914052355843821059247886946800638440553239698388934258347286384095649617958583310828112070810921965010053848998836360882626733911836525441775726491416298115197014506046732185091012168333788424521722991860558921134686105604476267072590123897541634366639299098931878021433037062155777638279955733226071718052201570250055675378689294652809688553082419846375381960028870121233329595583594938416999409013943453946964267624331908742879359567900351778500245642087960463064287001045550404078941598766564232710924350275369160510831039044545130040377977591831024594592370954728370805901530426370733792341487213994458456080686088565768099531548192692689880553843747572929700608956581705614716980122039855946246981363284130846614336893941054549461152491276471301410940533659262491579546184492500560641937134236739809019582410131130676798532986652262044623813851586800464931668394739978195500564469203427525229410769307584892630705834882718700558421132391760988996274893891349827404427738464094741815283597714896491947075265365480028947179982710153503091250820360950885717600403465217502917005986351241820865742152254968655289514588555575957224255726563487209578115171143011485020424269639617612105458785486515473608601789479860393962469374433497527893178244161509608689129268684958762229509933448316034139593905458780859565180433887521080916686862812755840030160915457142172880303269900915405250528262943098726355390901041136529020062200683552923694100057158066592420701061252641278625865418894139616785643702764201473128450829429240131382233798417888185212103609756105952713443404171440891918110574691030509469278370920779923883655019846830969143795140638619215634288462246895558970216189383885527024793705985076676492277210700423432646248052930392278911622150833452817658972084126239826256092210202686455527638643308457228116017205638521059761559319064433242620470101592628273096027728997241593573254076937547731508569366448973462799803584210563146089973680110875454619162663593973828917307733570045534391014827810578014489865452981397980191478336733445231009372100857927494591235729647454952686971999801852898944191291724061956449549085022691397664781479563218920997429210205571388809867418491734658474676576728078262708227427244200409018761385305962664305361715603677084009810610064207121564164367797546534613991526669630390181250023278016950639161919597588191203348830539122781859772878853900842308716334569623445347825936793967588380951319939156950277401951594599327584379891246642871826174818637284745878026041681996005505229421373296956926006699660340548413749243448281897491337819292417599839238629135582268288577257497920217443609726016598054156468737789329515079588864305813481573669690158543597854239381006580999535496741394666885409302470925191107457171958414968601175364711940463984764322881094348380603659902635852248513599073034100659730804801021810354968617167858417665990163152429640201097055571983334879125836104117301504690125119324711634453228401798416315378619709039534227068863274167400848207590185775921999004306515625965060086625138366540837312094073707491639673176116258269250405218449362014289267381959130700556363297988754767522829579557514918062736734102810453953718165141370803703743295897816546732163166035558282332730866671915670873574621336979238309669748768713946737837461644263126391060169645802633932304560660610495592612051578221929371424918659156109567301946239373857699600299060121439533424226284305120883478210986323718182466265494390027637052648443356481607013892096324097903113602551666816445079686441550270688202476692655245411935738080413969602173826202690372360308034987122752626011699174332746509008133646207117197800448167995243800427226787995048097482897125841916371059315397184871679280405489420367029299112892793086223611333449870065364552135665799802556821659233381951216763164118554688728440009333021055947662306245583155669370302766273571498262517849298513542243925736998034934341220713639621774553935493309300163066222383719892552198552793371876461320983189895985209651883499700606002523774205141653978363321037405797755899483625939886391185679078728590997845940226788953772258241249965187627769435741634563842616659894304844270510507128055201016555489956626764134153490854123951263867315319060050969736173604221809787857943997953216236338954083466213815753520594877898776186351614985468412193626855654873063452530870584984216968210071777236677338746880260073959292819893231311329924845531572845548155531407512567040614364856691366277374047634428247571143562166247346210668471487118165512525676658841615379174067936661856979600678112057330266753333362319889426834856319379484551994361192374666454839568303824397102893834656507011661603093837465192366905606636787474190105249043372462104705534546460133395855768093691718568234652405431672581663805791418192115857243357238864759857904283390056420299574615798612351472901583609750134681291997284887601983904146111348396019964784227687331388888131113893029092854892515421655800368282955766326126560354282957792204427425623196303191489042084389225677053105374154110792047448820433459186696942241559835329049229997767842376885707609953249584892062263653795204256256860947870560213125772052258627772725820897941122034622830426662708716043665486550770153338462065684760419611125478470754048032772703716154808579178295655689102520157637693468829734852489746690074195295527241804900701795942158672117041345143767936176972368647205506466190726968084737707778465869073621190037486048168586639784383907526740019621258359883520036788360685763827995195447209364926592817054368182905417050250628256899798589158065460292437451941266040085245672563642578912960198333283143291695996445936173956577061476593101241482018370915611420991806149981769390570301552130958936442006181491409696769952698520341260059626559927143583023925540380805170564495751783004404032949620211195428905374580620585047766015994998086915744373127734964700090379918909440953566087338457893576239361366636833133314699617609708480498578418464383026203370086979870283091105592084717366495699522686702828530474870296394043524272788067724672691476661258585388583157079091116734375345493654852814579027142080049044445428863249362764653268903839350097135430649851683945557168768869952205101883922311253128327006964602101950220061048813100784953930417041475841306388616503117910858859971412681076568745056225523764487939063015126898817083571073933821370297594651167848242751952436856725352917710916494780531253175863355597931973536571588794794816274217755331988966565627770658724905072611002638225695900046064171139600842380067322092951144907996261484805369725553184551645933139971307392382028929449228402542412774619527567811248567623749799707217031931564683309527561740921192114542061169493233494893159395226476930447624729459146667456109073437441358299456518227650584152408901884807292359320439996269616955066644716147494364530057554398353477474485351743679089142498395386516229496538505509051309077504435746608197815463652673646059714086744741902397859814006871745620921932752256860202818905895598069335834251181331789449429197907321168533409489207037825661717032553097802306846009807429865909172292629528801661322355645435886923201329588860250766335934279159737863592267655123860456653541842356866002135092608764890562953114227372602832174471750952139659679952798817739774700353174390083242010530506921214445303091505032925284361492546657992419196222963452020888793682065113731419499076780412065539485060790143382451033841927727582330149927189594352555209896131053919940209486511349426133714360564402391464460735086336308470366624435246466887668579741578399123374978626581019594860503044075838365123091613372041460073729766846164368258863385517814096500768434397727837130570169910074566118458123634421703097336519359727670805790837003190835938541766383051584498151234861073982956027497659113214094619871724188291530702342464068076941740168355012773586821729643236031842726329574421961546885676593439236384309270456890991286246502370466050086488715766884315021205582567072369891280272131161274066995544074548165660536316131190791644884560314023441198385028468008424146543660176615071010320704723097827872495456153410205092150889989274192917864766968279173686440709674458448086115235319247403459113169921110779830235161223813182639750387651717154743230229433281210297940960131985886262866273072411271454353222549789319852759555406685226885506317258641063626544454634186271908017468595382583475707129317240767092528502967098236209888303109724346841426992637824649587936626017761509820013907306281538820451426681242636909054311970100348743685274524523721872511614020321176183708172688176161584919589345683042530040453728311341899597453443035837260429519209813346589636223751861069893553806640681220269428799969530695604279778530647924749139818196077127748018301148088528492105098716266847411861635307995771651167279840013880295225402861812841207119184657549812579922603855803788983372267518639568517557412477552077264196573643923058243252917630001115920051663854597723727354447042516862561383814882556837423944011747226836465121079991023121213098613037042974109191823395769732906463786453682483310302249951028281172686091053477320705669659797975210693104264542790232242385694442378168129648924178818495072347605644172975146275795615573331395123274191064972426219418276911503429769262164929436969659751960100063545485870150278018237908325937683893306925660219802203033384973531428570856325776012336900499671123914617080798260763341980005311569654328952556300202607787793065413457927904075789495918201556482910525302056133039110765526856254298262103073401455156934484144826601467229925191176990219390369660052582557003471864081692718937365331358610578275932686306903236002084756833897243886425840626803666027187385911167690142574329587904019733234079675699042475465702257513771133640345821380793587673369302636461906552802758961546100125493209060480980286680209172055848553919536168101253116408182773635156228421684117925344111657176882617547713454758372793567548949104772117345229791013847346029519769592543672781456461967483780463587407763337609628819239795836693646137060545677970181693763654087603624876919908365568748852864951791352988679856210680892638148794490892417953707653841051419152580752832353080475030134233264655426303343260849995061766420765541714649453868837757154771246996220330774768481069790798053558281381848901894743709982997679832593714778449379790104917290321354598056470378845729898289962498847006830810721401011392385150372881996040939680296917844729363850498684105141344897291709966624028538212362106967862076555013083256324857676072325883073419897277838153604634412155569629502055706233362640250987712710064723958992318418545136498008321247781362177503051586606248216844976012111143947516389673443587622706037910564768093839402789650345174419033889538159670404171546842041525187549970442033818958732928740771052673273418788479683418789197539081658512806756151252759979586707404443805678633084569653279487493172602015574096960224001809242866751471693622488755035760359964922644490008446337997850533326985280495210663031299497770953539490360344230110329845832928561475863257500917903424874583991662580679248775443281935311696966192627683895359555291170810660208602085531270542191574773914097985736504010418015017023622222796297244530993699489074009831700570516444010768950539436933597909789231229714424970720002907306796414746095471632662909493308496594672712740666087381613285662440364122942250560202533010658693009756433475042297525138592038468365514479427988448693002399466232101678708136929476325670515448099188119871607813167970581057834087882220743561320083303936132739560755178994581248647224339110755869874069821194529466031934334608059190207780887296863315521341801113117318804798168054060343538892055649759384322991169634322138973236470860654694010122062094128596592890989862930354674136984074224824113331511830007129897258409988266693612047321048996322120767277181150763172513936261812486421212195186393093094188328391839227518542692590896279636716723401389831538844804020039878483760114071737324836339768855701129617825655642167477151463733284237258370872429975024632061722082872628098442118849461379249257308447386527187246574952647040063183113211318413903346587103737165468457365339449597493949365648888014566737381128681246099775994414767980773601474152578998985531620432371197013905229392889133293509802609155990031221069184829685208587710326536831638825913098577115756833153480631770368180841264294296104940093246177856116517635849954707931993206918565177671275386136671314801261252147598466476109940105201560105833061662079949189288666705598516580047839439363385105101438808920894360560800914081998801658556317676076289085209405340194371108878153584947328943398582815048760986568910345661059747754514142825325663317752256325807340638319252673145901083963743529665238374985545664924681270833434577251140869167795423304721391185119546468882005667456963481465118594456156734384656069732726124263306173691362188064590182776444508754688772998816784645243237659892784970375492902210539306774990178658905804335865456268308690623687138958330028466571993779139700583479103309766886202868886571252579453109628140512834968284054666386940156263778831616009518966513457174497739084110941590024518421961506393533728062030794934517512902076330650442612124315678508110279270698753125324690185136847898658408174902761617048833642937611537380346748417409813922496257822396657721918112369017661897196331812668498935664782068850443409677878658841168129289424385766245811496535832948230394171964296899027762418111492870858838553645475360121811892565673643446351452812788344965610066406803939319005507099482670607343714077645756250790834651519630155653577020341054358393742886265282544860199385311438395965070495507410937742330385323035372324088807387430038951034010108274231706331546242690373797022228422567114056575022483887787916551748532293015173132503754319262497764443636035654900132054276196349106893686350659458640082111843651246670451948241793357845530490362686857450292631896105607335476427018200070354610237423567603245185044492026839562704867762669554299203318100837417975822485596149937043412939292079994397811528145645108818184798772882400007810264359693632395996437291246029022238206803520543567547858636031898878941520870954173086758390931711439736302284161257729608431771940507756806197632221864568827864795239777483238375045497683874166664181525400577724890324461701293924683227382505978041131385035789908121423075285727191276685762957810918855700473832688469022996300873009063724188050623741119162108568190310232665178519902023077047808368549239015597399111219285226671044126771755187771321289676288099516577846180884075510640026757723214054831800680151858943379672479980222768113687548025030971613449779671823575210138833869504361424518243773355966983205377513576322260933193672914913637131764873388659124325276046489903486645581664589965736715110368991245455553293948176838415772452819047045964852546083949900430426581653966043053818291688860427181705015365333309140692040456182049725733295952570757761675967870681533221888952661107868648414376719803909043325592296412551273346898037153598557196137030398666984380319283520685543151333965361661882328277977292230816527308193172499342394301666931868975261130631573716093834926546515804306205045028796477024781444944077598799922871375323383723431657808854978689894181391204609368340236279126763732682389931957409944948388712297012281463873786929343306624369505343304484618680550213284458765471636991895541066112834865390072839502584504733058639836389421600909590364245134104621364864976462899545680331257537774926985985258357643748636142743264752777667629963603126601743353239948913889599559408090724031886691194888150764091057808662245471731371595554308036107928953002093889584402842386987864705289427194513447653784985187930718712310625580764740478962379656921658707977849753197466175717857191680917902188891532103433439057170774939333515597128917967384872078762749932009349366182271182567608406500332887027429052966623903867895175534096081642861283285018124759669821992444632524122571652522028465175495767011102412993009530117864133514775723971608365485329948101258838232703435044706660837137194416370108992758037622433329818824198769998615679675448988095124366132112918178738002315045407212465653939228344078299558167838766087446085297522461762434148216630028716926951246391149745150246791859336027438653774161263492813324652313253061201638105308077913994067500621568635507532484228941902533233594182100592639259323420350755426720646917305504400994809872258540952140619301331935743383974736701072982794873097005921415423375319287098399094985466157885155895992911006036791512931120003055638016299829081510143229900492729402370861033297648818643783679531412262045782580829507126947828315418992333192761837136828305673206012486438210205038976866626512994887025853968838540378670391949844309657474067619277484411872895150397896865424887850078024660586079730528577245854002540841611996270448610760029186450492920680878007541848983512944365933890862562749400345221708285509077363247375933839049477680997794217624556404306786774759562352646806236109569245060794688980170921554969559201014957239958583396350868376899955430953845379517825284510280170846789288621985496378660155633838766494169621476005080787248061665694101876307848316828403052487064325951235147815573681013019206765596568436915949606149841653285644051040371188736844598128290255447268342389342273934230116597568033620092811360674944670952600591228024476773069711546730532262396988041454525304246019063499867221191976408736460495556272382169015707267219132300062089742214905951684718464482049823100086260245423479463967043973591737093695726641523183849987388303844250075001026150843398176293322703897198551275320018224251360323639004201955155448343994624268643567003863051713381778799201569190532801250379799163324981234171594023857048972555092914851635626867489892460137808296754594911946370148606147172954603478558961962955615880144584857745014725113679921662378642974703097547715429443529779298971565422334247837821135456884301254496750710277603804628038722131394972459102151878613214575698845244383633599825584454298705376533907290836523851121115339976761163399827821728988266356097323523901762194727360835352873093114450517699668049239644640272662823208576657181293327612876938954941398785158820841060870417374980226248242494778255589345217435261143447500601081164370636482334250261103561341154049224562717170137752330783517447618786754720734056765404981089967089940524426650923442759288348923458463172009227732605233628328422161728768362059329026468918319978128373200767306717970403960853693601426983231453358616133613847798442570249510563795626032365848517668035922320945395183593066965951294129310604522122736276764011143959076436210596070159178563686744014524594447923852929282847640718476171666255584542660665679655314941169184421791972273110773863036418561004458774120359452203258387892520907591601218367692677028665036695083650093944553563934518914801284921168885123242463712094778363742216084354264150896367554896056055715365445289255109833732201143523304344586213382996706458737399653244539923296121560691240345411729680514093317366974128202280335375357156873588990512002727176221367961618845461229924969583698611337964759839124412332448310865791661899156098321091654170441444261842132497873696137394034354578651576075722077795083823271575808640417522968399443954898349931808054209396602864009742420645487243149891025392640432522301831915179271359905839458163340575768060032623067198707428728776116214020002651459376248755703895521806736688922784456585456862543842212728951378215680375322192229908296388113883595892906786701216220032460652386635781731230410512609877554780540780674517475159773110108672915091434851523851593953763802868717447161578112023522487300210473270240084347196393229895348819010926238277121309768143170112724712389549303238502775800284972757362062307891315771961944487791897554167400061272484637464845696769856263731361446057524892211090312939946106068828834078794523887753451554967509369918137900606847198491911518909829744585546278759889384201830367497062331907133813372414866278976033935583621440002125388120715546878400897321880163914268453744207221011924707505883970977165206546651951845985030307268929476656048624699830055454789559301144489688876141067782431713897642852414412493773747584564361440040867392349190668894784643587993341000140105156539011108033806951023268453465769175521226946805574150118899254120614639304321837361105583196024626581882267772397348901707173804657424092096503712418694355195723923536294793981861280681741237410133671785157949116012747110128663701462895617645752646747516496054366875987317278628018991879741501769819610383060017686011270213630047666564033929985744635646498568262104741050638470166193087225849385802074469988058234861523593918802389934016081857532874724878474109184548541984536464418728638261715026852208811102174424561626616246055294214498533530218373414562256484631101704180549822239091999731097673642379465345666026559476953801814075553611356342156984053710914463213006735598518297608792351862660948491447185016936929143552224030288027797993006845465810045575076967460853220294818092199310355871130299369890844562496488092318355471185372037051336519096327986727013980501814697881834247033619429821043452168719732127622086058429970565301018078866441601745825019799886693497599746526222411592405632707976089500107308131155702973624755930065094884779692504574699206500119426352757946888830539179734136057668935177295621525611391590362065231748614694940581136268514695244800315428213846069947763137978421338862508958371385885974885672613141248824558835819015267854211288272045878349537027570173417123685321075231825075946167218049695549374259171478345355211970253210653942357999576330767892175456574618997552677174812217954586736602579708942207864720209518776825926372649503028112940530607698312726340761365572455052544877592315812085461177989046175022405239271142731829085491407890377146488309946932230828932745305593069896826153596113772408456855412421922868813611762474511062425215307713382727408450644026749809946702503901956433209774810417953382415212298855368016722213297143560182463860879696144335931756865326404558061705084122358645032328104262613143404703396976815222439308170024490019519496310518741437369509364288412049532605039741784537602292919961747825101113499144703678635193487375563262504663629370170870062871587092475379184985266630786414756652622540071458814740936108873378958526378544686740471870802906099907981631404086267704742315696973662496294362155996140802289938623676853341724193400765951555664607498475874667294278778295345309620224065748824112813350504085746811371950146286764351671829727282556286782498015675840456062122552807719876857717389934016817412297244579132382114644359785512972399444836914122369845312521803706914993470446726158826248356832865853496719120906069835673708459403360369209943509761783144543807863036123135790168888565140701089452032026104141918892814758868917927180454519599301700708230085232837937704014619222565155318082653612763757867471394632820637263403414376266478682984328293277642459035701823868731861612074398196754578702791281788250822897977777806304242249105434198461306376567347053429095988048502612217813016002841937603123736542051514041860656318192249940855990212016996564453504227810096483409033670147756856282736847299581461025172559499565768966759982610394181264120949625694647203099609191305238622831859346739616447096071818508901532706087745386893194725979836999834685936512081298579323511458105761640245592463881791638313080187672964958505170329415885710806437187495970424331645369734211339306003857526093220783715554750695706081652155161333128743489382284486604859241878594745344803501633797529420602252179478602399608946673036209923178234427529937126368344670675009557533381944909620803184169790991140384808362345117589311257654373002277747990351622488933866814867559194346770452914819954105056623040992258395150434819515809369159692101197460699525437502801592966956407616952031836922132604256061735054548046333957747030358521639178804777042580268184196919434825441390656717213794181358880075970998321502744309939289012070043517660966451142204939496808695667790213283532858705239713961589121953028858625355991611178868338900381027812453400725586807460687243930809740963614594993288465569877800666985692617887416587804207232715122844353941395211829857595642906228347326854105934589200181449489516273619060321021952108002753992840879828880461318983592245432137463165966090323171032999351280977336093828686886304557775149951345233974157914895380476408939803421452256441910721130126915313630115775708508566133090251977291778282495295352369419674341535970882155584410686807048381558234027870488438581526465380905006770367476966063377315389708577884322915283994985531918958133647710682427246628821329567553583855259863774496362779797167029489813677730043031819193973471996873369476379041745528573767660628157094684014365183839812275571204881383359447024176965452065866853438176998190470111090036191473797965035209389856040082256184622636580873556600865330866252992675421357256730034846063733197343249551327978624015038433860254491378276445452570870189434869795117845578946984483715388008430231031149631301941939768135403164382169839792743953000642918608675837641198692581904242591576114545930198538701721879827538929102971665291225939717652469047912127023614476421986846643190346326003127607578689012651415227964525658649687767235084047837796343359488782753842045429643150396410012242003679041653827430865305639772989219666691257569422321282863257544911884184844194359408344330189573864416105653552647863481518262366783473643426651786425212028679617551836056180413949035290921399804452420247069258943218827121122838115888185088094434444197751675205092635005306812775022437088921568985804888160204707571974727230565611871267301095824135042993426521421730577897146309427770949184662795077135463811613347784720553639470834330285032580625036112361745942776449027256284180007660962132989406418258641519581806358293572053806632342470914827327312239175898654499171612955623008049185139049490212479519844605996013680749938898017864839180096135875021754914420195672714875715971748537679682686507604882569310334687549825932531334851684268482179155577592736990057757838624865211495134798467440443267476006073115630455459216988333030808748375984017115184795411045999137987510475189392705121168500742892758319883740033827232257239509969231127132731140658500790328470783327661265738907545474461443357454923474259732588209295950891519393620613512243147386297867579619903390119699197289369743465074993955824142273840350090459625739816468931712959455967924749172134918656752930831564031313606940976157047632534019096188868551536193011155164047429976395142899012485914075124983297257296212022865525150152373400089622613164997240019691157825599911460958657834012467034831684216146537453240373005472878812198667484276593167013623829378815422725866292543135778173806027235148761912289541153700159924057535674618067016639434767741170350530788791989889094462074878763522891046522070453649688975894631641240438791434600289004101397338177913386106910104781220021038483078008723424081384496965715665428823166638086179842330124380833337108878068757083312632786560234615185249222514115953450467969412968691170759483373609585462401004175039778329855224067548151011028693553735909564266689783590671393358953337056619245802136682956388503907678642019599416394544197389463582868237443137804900290516957773735321973358479231967228328887616819744758583664232543838358981090463183534291108818085884469820034096094658000739640148422136101297347399603700076916952123893921282468247863761925778512105296752089435431217494592127434646737179957517124902413947581178293732299552371137882081467520536588179219708966883769579294010897293462142813239754226393987796797807916138733528565181302105750506786642135838881468916441188048584182056518714012197475344055724498859461070716028058382017409405853237606916928208741709374143105183740561686546130706144664936920215497930391349974959964079948009486867346505072450887646017872527484846212060451194266342970914005071145166705838834969145936502410162268713614578976696818157184602705688366930278585160591370817641061759241143986180256580207205561375709355627134313990670877908826488877059323519794750128574977279629976315339725817085920782473557924320845829154713603195806100581118540189482982845825326272378471694047492465691369930983456196919828769308524835897884791434424231569102608810627598671479772427585738051797273941527343414045139750059927899339989228923904795451770910330095191804380887678163319675271924247755757080060877108392933260298229461997986096033719914129218238634308741329405159279551210324243442688115849500364726693353785058169880528917865378837866662675862625681789215888054405324118977273398920332516283886120670672313223523584648662321866583549130340037186627336894010075595521258243735575725392124258457939857632574566393414075233578822121870821241958447826940151420652720972269568053665613087248626899975220650545849274526102269507159775724402423100736587288473174425147612561998069828006880365276199109733645851923175164438004543207960948104327868598496352992426135510814782531429700133694322251732097319887031183308078712545237027233465887791674946015193021521275024239765257924784027527559246898721821160133669931223257695203897955724306445256155471180803726674329522977152155735007358569168018822569590654281376129570777329171632765700350287307552204787403296410799844577414689309987164776247173021660363038365265489883742039436258903521858470773823856495015472588950895284478086579480229542414877241462553699962141391681293721178992543298352596851928824184387181444207207133349986235682043840290277191756210229464026169664934906398368266161053818296408967846492107210066760835604714496455502412239715915462260542422876986720406868630535189320269547403195282713112200650583079504085259881776131139332354381053291634049306992154924297210720837835622533545717481391758046165537873162516287803314479172847056585576139632090101450735749504290841369835418006799141112636045978263340409401427602226250055029363598504906019446420349629186250639849505653107404437078939654639951428852844374360285259125345584932199600635330761551983370696763695601473697648447229230594446242205516480108067609100309754057230650151813372175346977595212975743466727985651649151429832086127459568981992569744907841668785301415734437280073253964423739404210033644283018834142569206904820861650830389091195699894163794082139725556688264812031506547204691027492904199548739845826860487948922101961737184357564912950918573258919306707820583092433870236075120183553984558953010983410898209597152107555768345493158888047638896026225564647522639344430855386035507460352915173463803621070604870189176657890260395531495215731833150879972961793058377658667056207278216841349787404011611728875028060482884018147589829650986704017041502306898469791963545268916748767336017429063346371862274203905060039526554453817075998516406673979591891323631096866229719536164044730325545090288024138702859054140462367465173402997597759234640765934720158717999667541707073406424386756708031845050260158079985241629417866288112326143233474763506519158715538466149692635842137178123400157260605309886586218001613866263468130969795509366242443131182671395855283284156820603924279959013174668746660502066054834690750845233123826610502893628817389395174012904644738952993154543664680483971861868002040581395566594277133959905782306259757443583683599749140901402615760774432248335285544648691694466940810503816567114007005538953758741505584777222317798570915951534422492834420165464603706982975983685104691412055670692238054738666815659708141609539952497755263410413982406303363961057096536052724696109825477421605153684048739718083581289978449699763623561156411590047059665062359581593448636471512545256299482552143636032826823031780754944692264234624256380693024514454486492530506881921249325754606923952936992039158482405319996686130160991270527805518685531504619807726755666971119989205179797391778742899359366366388672127568370558753887674614586863029790957593947789410473234558482468974364792125066006975459416984037757162641230487092994371883707186003654993194775984664487722121367386044063280026011957584755113837406997267069125976854588222898610389596139002575051717636999956080795209834603933688671879555278203395179036793378918218360545968224806592787107891223406143618845727746500114982371081272757856509089842409827699437359838723900540129772665713922781027234973769695686325316475388186361451983116950105143360212812055306954991611047987633862993029738728536678487802932884055262058560422951478710408915617991553072830364072642991767708076334781347422674960556433352651760129840039650853736372599404575368917481906484683649944647664426012401988987592498112679623668969816290377647426422669219714660997587195591714591094775071141202332444798404745736057795759436727027486972631882651157126618043296011720138042370200322071149413475301816943079913596068781586091833141128565619559549231387320189320436215266136821593230115830544803250389898204305749923144481941333414009894108205120334666101964037158048678906389353850817838455679793171580456760298752134115941180154111891322187466876631008544652408981847721731513104062942930747806503209065155098010860341357774279622457119175567836608841397273717153402460324316140554164464951486984840375783013849460772559184721447032277382125730898784074875121592834545556530915696335728885275739463435306900985918512395985137100994115695031867930463299874045028327544843967369992432677674264132532508722444628693226520929881773832350665758556921181696397622537341966704472722097167508451460098184261043106795892041132137372199057800974075304569619147182431391412100634788066815313985973764744813558766766937324277875112985982568957655975980064127207155502195582215586543508525619639778053818845414288635312762977602249942389167892697844363430245477969188732699942007309490466393805588936344560909176917718873765599709448195892873928186700264663792453318551278627743816532152485016221049285209460000300509398041338809467499176513640853795770278129301984270573531549536431867570191140159199607835180191806660760799463162289251245248997580937191733542064508554343622383923564152128150978881812867002775010781715993555655175820118391843388394548199099487929229358438106661785887009377581117993025613151757119879038368508179454182002062251633726692091151709972219373569538095243061040118933801086732882201426544081304789536003608821658762707574122444639124255110659039620229594733159275020235635205440981055998534693119388144627852326232122664605627871250420525530466950070006942252557363102345238921472324956032996046433796090839511256251181844631485495343437980938613958970054339916370720034511007909205742341736435706508026422148264300756713376499972447380092524871313617702031249536963330936101215397928956196151653663189382371967189919408100929189491248754017141417267109676986493451497296580866906631376187239688285283461367147988295633654540865652343693527447435432058494653938401870536767280196257121670831230753282050520836483204015713546619895747367827085033759476734143494799383950101638103999680729727769851947864221601688536021898649649521332993398507429865622870299590952233991458549889281729939848009718823872947420440984611741460809802909885560983087490567510252971888792297502738360944279510769279711128251210444273391517340764084548524111586209249302881802443752170203455924690694167548371003270794652124050374804374591460503163610208668218663953229159636715072803517842280867018884782217532708392031321133076728862162628811094236047229574441552471258327430010156993027145952237524753484065558286848323826517555028076213209322909579307289225213839339109362581815782498113678502791351206005427607960313379938133348201529796652583078296711309481558220016425862468568309393034191381934746040757759597577078893236815459071944357200999502770088356609498465383493742027827117282140185548023758141778672831414557721549332888628026378666799118259888036146417281118938498847655587955113572208518418492690042788791612242372066919313634894418227549861047031550167989949881682360756400997517965549350889939761981802992150945592803096101200753013694894429366460196137485679342550397089949284246488522864729493929523586210300470984421662268615353484894043000077369885110524617601086210635769119738332292218484466163612647731130272797721704189297069034901790972648242590980310335623890422634593820076339700899391156962550577463445248609774432664309723864811199243833001326634775341189229654909289196299770486173897651419934109051018378559760550163282968965201167656734461791941257110300687850549555793925684378076769151131216562682432741585320257084383375722887571454344188604245804789046781316668397329032636347981048817114550470511206436883438662571197153243223568852316722503612945426538757054148459817774819347926382390233453102168055086828700355704081951588178983326656215801647216134294367159809100043162374144200102555723418065142077452517246730311409188650376705160959272049707345000716988763302742817264942577288237144023251255671684254615366912786037016681781533244455899720813127258296032078997629321721068060661485540836559461745465001390377670254517899739256452158122272518632497577748583381074302039932833258301266245990627761435889438653812474144928296842221220347134366560346152151403273271848647927324192735987841552011013745601399863428562411272813136049857084393855741753795353863494691253467547838536182657261165306920306087075343976605798740707984517084031752480225062781679613189854737270348514630406599815834805505566653586075791744642516293150985338575200667104623557210314802947390939226507283906873159556206546349668269066384438337438293318392956955754237969631877576255693759779884367343523271268460476329879702536828798326492862525957319390241256408416414804238214208780036869789800486786340770451568493138466185761177114491920983076609652418328784806990746950916920971907122639634109463736081315100919541962434885594217690877214694158750093910143690258670373056162482591944036811973165558178270291264627719360259657738736878089341079528245200273837452762550690260647648451201557304033183898307858681612409545839806337660078033627732709797619063194541318053158173015889698739375017472564377669923932795620104967428328490469157709627105555345068210495002124983053522509890395450492422876030998778418792229868159823321322357526758715301606515525903704123893057926163872277234546757409552001004046087166840659770577955778976483441515868265143441554277766270732803307248922748880129340026875364671009129574138288293202378705790878832261954554516755779341892405948788011818770200988192691878639495485246454001759541211085823266136281436762699444746033161195937446586958996621848763223268069687572704234489491817561526757055946775041506844442831676677672955129888370384097029748007857667676287122292081544840864362968858646019159345574763611738077438862219853961353661075361597518684067546554759595372679838514801099766524838068424606327190086440856041590409120516834704556514962489125574528283531124176445086580176304851286471502628090697780503244842982104881706426117263201802171953129982450314546105716560997259863379883892153807952409549415688333811650850426570334002499859259362483698346198038389208795787700764913696163484891297414921996219508357738069634893242487008496478146853967416285475235536175610082361804001007506225041015631727184561357038449909398237800635902182997025381772232680457146455722899315985926647153774029788928141473380293628622071202352597878927532819128355888801965226929492944453066539664066934475052553659809560354940291669092975786825476620951058521638497744413479103274755465084632994976120155663199047993265883089752342769925905945546564072646565579654885456071176688188585144494485287290609708776797207978946793212161147694685373722940225785904624561046231929100943996968515572158962573720882036108238280670415349976524221634974985913431968743241750141207462899229836820375774845887196935751121165555965055040602071714163143556639090759199002642789518468780989302943631872235978103967254042658185402547083634831526146089434947549956532346189275858245224611931420285488474020332716160597516893912411433252549107270945213362146479547834106430949453225222481507757535318260492229851302478677134853616197308541819584608378299807968950052792286466371517585808689648423330818729171183859917575716994736035631251931711285363198640134742538705967060120982084848532720838569044757928647518748409500990158429746616066777292770593044871909833747601300569535207143081295667903272868278463282987595228246421908947930307459720347657184968846033816801923173053381365274318852278861948734153800294859298472042883822770014959817684477681079695097955425974925746698533567512488834280288825151027350380504585359356200431060114785650599487349852202705324608672650599885339210968853923834391738543570290881637539682165036094082313193204494179396704341977765355577947032638178204736727203714170502243953591980301426514831891115103150713532474366123105391900607010461319120368569467234786709670108743657304568817495340645226376731575085539584479077536840300960268951905049434506163809208611439804378297569081027584553537033915746741336636512965636858239043999450705639770086651006989532430795489026633364352006953754067072672541430132826881561474653231436437628013820682611085716126583332168259689525809689263813039893862870580016237274986394774478047190553441247539397304595032021747435829132666175762959813126328983703600286658160002644077456356673129836871037469960674224856402370172381809380430666947888971989204437424110333534255751878246320963204951671178139253145405693127378395385774400155298790290241434603779141740356495823688487701339467594297307417951813608442240703867617128262489067102158270305828936098093792846933601982778150810284410174740703919944775494692177411492044708357011188588315440025561544690650661739920568121430098089455641297788708747460130217599317813266845758172677398681202317179067085966620819684123452400148360297275611597315241900820493005561357051010470030126756195515930653607514789936243304829979684303059840843582508407849357741898241224170256496142634310334685037179006172496638042234189314449148414615569994547049708512127768995932799029517321729889138559722429718714373561256550008119151608513406025655478446148989864122997991041375138978226091179394893910543595018972898376138099565708973213447725872654350842670052128388729841993473865009106120133690741574165310919590438473149393659464142490330219569880461067103266356321476161306089382885365171395490056528233310360085946779546110349190347323442505349026126039514041393475129964544329519635290402080445588204877558260088516076254321189113899650942015023045830794877588689535514004607025858499568775236078564585145019037904883113454054837474623448533665496505803276336702963405696013960579763480929219367820435694018418009249895999841496167994059633556057464529526869639583907848271833204423778978536444900248309094954644194750158278688713213881432077674815614148643694380832393282539970745199391000854692349667955603859912679222799500256178427535204817373204869331507607747755705910854763604074977444900546161374359200446602876367764296545606709231682850778040021528904133169359123014660270449431510443048585523103312737476577653483603829756521384460459769948653680616805267477985260343657395455099711112254866473171990834841662155178436191419286484361061546532164402976891411368629389105704872349690783686866372240588914423133046230503933697209852660584528782257055917647033180983295198806499388462496139936051105753752543537140494269328280513459128575212818600801130344106145483011632432219018773292724579937896915821385440745895106488475764891376884133799820508701291757178397132283460469589145284558538105865054859172012738718619680209005985778795114125914622463091906132236567422484303273550080431284627046332204162656410275578158853099906956610493502283338101219136305077983236731147882620355931414608565583089866135013883658903650163330626860949879985902388045727602398419344048914420991743207746130304000275144293023871132206157772061702407648669183463252879706891460161317203599135216484128717964542532532446620677944237194007303977761399286351588716391566514827560592621097722700146545089232631947911994265434849280806483934973214779124231281568417883111715018782311271619835612381429545040951036654389740139313494086573883474723110540748697539801640926509413491912250365086601512945476619699933879951690673677538809016971570466957186416504379618959829188559578660444827542674957255106980626675538541172552392518912591147184727843456769254148832630540468734394238298502499834091083942234834064667587933464779481077052616862867413297575290579210450804903766119412786539941418589895503431088518778855595970891791946322763663246866388803083265608235665293326820662781736586734741454482301532543356872677484144336304607497658504830431891052606200045388110229228418034098344121428424082242256711225938463890433186129528296363631458174106876260873909999500793548451644156375048805680013625440958611994340053051351390038943899500299224217945316337074456395995021080345879952154202897852840261713192674331551120043397688971767671768489686885893036883864171897386805790885422318505868380201083532098505058652599663129725361644427797567533676627242361770024005500809211632254791671368988358008490560326711094925018511744602105887853048719665900899739383873533158122430947547360034793596347251014694658145583820927626474117152230826113005266217794020196419995502920155413542837579969682610650991945811289940791485721251540522716887051501345064850976238560473472586193514385742401984212324914067023709229839539411970474511580605316231271388344449302666718730433690426493108858195544273104676317064417895306661870780963370923910512338720996893490707235889333991219906353563700570561267950494198472225463512355638776917619724399199763460648275747263936844653622584910227411956548739629624925376243098904688459218594052659084531532833813890086876967291126843036111759358479465876438945745980060397296472695685478904730984723090117626400925944380462135808666864900514535322146569965459968123453198642927117101813857709525095420327189926039436480139815911415065804184747148247972672926680861371371600773628354196478147344968225912634702561707198303560727357955038148159805947897119551141292971535041578334209629232059005276574780222683287428877868888256700387477433814854108096959894748238369384601345220373136340043541073055854922188111385659547382154877317526887921904554926604184836564422349495154026505181190025308751549176041040670221964246335813510543497005484731327098121889279995245834231755715406153631399576170032739801794198451493592943867448915965760527009379178294817868305076284608195580862131761606632979728803602500217538475523692912113866450199225323960050985305476781437534703387442509658411520233512669742854932831028015896039810060373325379385569021268763406234623215342080877623762498053995669865215215108525797918597502943924185635640526461303595295106969668764662773488342549003127744705984628909882689683033869618038625647968007720318997201016085886898188606238329251864541479628002426189973696065966980305432875798110615628669485486426107305997902284962438247155335179221440648708248725389312977302476617464677704698926032169567786985235905472164546830951210534043136978136395730110808579579888990127254102080260128601729238055010468470867708314206012377600099908092730458446768326378869974433083911967778816676751266271138513223530695363795445307324423954499617721976537523447958515969887007375814125557879524885631519144881901783348769541510307405051636466453076338495867507512022229296870802998799209027773427067710075533781339847496317824689697265182050328812845159063389570327102005689269696421719371601882421412150800766528438488720027468924787449740415292755296478909901464624510987207730741340970721628584730559252210982298196715623379620094933578860439906475953077499454723826187205287685003266113275192451260653059474947542067029328935707289556471592324375966421749075228745593798163820825256496268186658135408889226419555172365536609852013819126544030200020598907733491126497393879561352780294680997620513984172359880808746256382172951582391595194424326872481015024176708045479886599344761702621525609548337290542762832662824537357990183522320402019930163849160335857865826905876097926655815383191795494217822795011446683662176381513972930055533654395672966562448226647874085578565309195848102029210870967482051699923747596631023461828976629231699999581487296994068185056993956248758969595499209003417024358023049878720982081959218177785582477660418878560045164384732289197325331852825523974492666748495788987938027522826240248774064363746739084294973080701823697495502384976351488032899455058180517827307252422551017825685024314843508012004646268920244263921413923718462308575455299497950788629442915416810069298927655165476415373011937835330070529051559729504304935985550680303811324109516959296710829205805992069255975543536818891385959885818290348822413567403279021662461024574107998524001676697813111033309335276247095631867074750492494562395822144212084726595646748953389006321186543285610520017618396722478057660099453914936055915452218359593092767556087098549278209125366988027617969168758367550644250287923008498205718587264544928441847380836510097752381469347710242275044252281242597324340069126825232128624897448286090924911156833785653014603867510929225811825443153569604379437464522819101146798214737466152164325745471461608486125208380113877516041376532747780118862674754897097804941782419740824062611667839182419888029917005291424241425094608601883498327810407302304090099492016999567245012465256237448150044124005506925564155139298603057249747789627238066279342384993737723435360701814217196185979410300469876828803422257040856210590055332631055964869482083627711007603518588729133632253336341927629090691214082596982946555991332768381416343880275576364628282388349333860288205543455521532726954134217910463886116209144410676630379784246405929703819378707218795155627153619421724330564384851554512314735190580717678449781848268776161904742757671268930375713934555911295977436198282348422259434978915973119072117868575525436819910333241298261751066672822435655028301019533297897878829320265335175787548835125174000403371951423973941236903400120321404158287359627755917313680884969162995063432001145997648442965645282578610785760787576229363827638209844358698768346139235097273335967383287306090194724926446825574122843912910805420265697861131153108554606833901425907429625354446038456596872502496033441228353899224595749352393475394675537143067042534195525922607384304379868056625841807859698451826817332927199827942094775041379795973590938779672863985810083889350574895588729243744452116851430153973343790106678094980656665827743261314039960562246718215001465843005781444246508778489133474643727524151590697220761646338600037287247830455262765596538737980117580624194764750315401569922789035386079495712355448027587799418171949111620747246325070750523882503654393972179447456158691722008878701291227298336422828250872851693220917438258933333844604650722244774953321552669184299415368878140921819417177980205944445912257040047324141519732811741169320418373297575303642763346130627922305076173375021654944766530822890877870643445814626376145470775165517650852297063443161221948523433249845237467113045533018534853994284169164743976197767735103650811802033327132546060197159988685829325049346844561188749539019150072062830521244728305080580500464791963181670359297676902723441729633977615824286407694697417883418243843621191531322191973649997660062265793768853148483102988811418328889412743219409934419439764958931489429648784769766861754047385093747905016427596287771391517226260066288055555430287594401972675162756202648490242180617997546687647609874953425972775472093571100197066570662721550297073707465805318733055749316950275725483516279584079075825807718000111585836524644687059127575552532054392175433503667684025602894023818092854695948700050950971656128571378011071619001117752711883967280071702403856064231912516301836193296296539055390419999734582375900794622196086897212537159922545694123593881501762541625138590969570871842634334033350190077822782538800685498153106325967279577757693033701777223574048576660641967859783317375176505267223194607427061713304911186326549780333976304595882296369080052444215233568877938212935810825342149451499602246784629437704291139472760454314635079516604139946100088283811008813096971801039304547776745708530778251804525059206679501816144441439380973516566559867008364034643167589863531602265606868706405446895435234060941808733288971961868121586949499310538365006439781810605246649052587459128236359773329222529357866253865308479071931710445105773670637681638125847735307116440799952899311915800905212319233875018928020894966812608183605181509694803554167935192716064570496645579471107415804976514533481814277498566383768702156963691568489591163783746444208238003148020218900895768669584355707613816571326234194565830808063880484596592439494518232426386624505330314188023356722400140857568325535901757941634263028337345862275267436782349938669751387235777931449097070304049174055133610215874188675650981976001930297262562900973979341513492303035038690812029980551064349734147353285418568985924039230025097343691850977261064595094125441611751810679391872674959574139475211434719694754798084077624307172115393983200036546554332128032917082473680417250723367280389007926864067366364429168158548542703377119576991849998473959640724281667262531402116937013698612261758774188230258730899041852768594597396271533021456705653426255922601153703049839464191828451848372632160544821480306422119350470764752508072754360461627177775226149860432820632751553580960860353982251200802072095771445234780272153242951536941404626255490814301547378347452873294859616711209557519012721287447420427604870159878673394428604075070082527380944481797925244038937805967238914335414784082489052153647604789941629886690789757535328795622650026300190579149658927482452395570905819140282258273284520975253344647738231171083791825217060134026375806682849463171079359613025547817567647907322758024959226258536535699426413922043618719292488246436818327073978858495962029864902708010743535166789590944181809275646161347736260207407106120574361803536917196079478482551720875267280592615012432991553683720841486886949262457900250985095870006321023507254256289820876558213175792197699730660580264231590960056442926788074965433785396421199686912097132007433874259399457027886378791488058822146073312463635099460985591737435373840230166717389656907596060265238807190190079398862655475180524940472036556663841977051155680759460858432123427395268519603003739944818861181323301986060948741482396621538958526066086396792552878117529825257548612918922602346074144402815218012958065077336874493059173024622578209592883377013129726301323151449067571166609740612383355226971739135178515428875541447140744668855101889211894842267408250751294402948989291128558474857165908988741807265209745803526870456103909835876985559798843672978987610298190621306631540466476546026394861858831962512130156014604195536277018628497929638727981564740427234357992931307612859875216056333561291003394909172816314211467984366661362610464405250520934132205747530486562892023873229570751347773707151969630169734483960022047562862751413381491903563344989237007992150873105389779643671256448549632929141446705088645010222813628545541652905808706655940938669261286482730409849836021899920809736949387853092839245074947805511645202096404181456184048346733907995384552402981706891173849786017901833669667483868595398217049079402059232729531366265932499503019830473059055962032113111668291808601231456808211538629438552478537347918457066129723677598250611138363052254598264603539185625724084761308419421496686782825528705235311809659670187164324411751198910350595253957928194961555235419440622025798905924112378023558209031517082345718344637886688282078379824723578086599325726552698590732973357792297299949842049683481406855277084915227834488268674909819854378775560786185752520418897840138186221879066589601601557434994356626711614964111387724474056562381872772124296488453182882407973380645290374258668187706372724947327746119847590345454171639377988753199386766817660047722825667247632692993110413736383320053631509397623031118689644755067374964109829922133060716790453628444086654129605186812238033284509329460919106491833052629398437646462498666896042585784615756950239150989561568179201409324043491493639178071636815045837324582928534014109568310655377503755584404557550934188932067918947221199241121331065667397111477455480095278613473012497053122078809722465960506462053112393615857071730994372989752078283914869654431429177483916259480965746716383764150371492613641582522847993633045801462092436814348799247283517817307981588951651651097159497739610574395194210078919439261415620102576125375450993923224110411739382809205618298401004204849441715694698594748207105690442529715587041139725907042511002772668572147613382321050059297291964244175955588960550466545047916671095631607376909087609304873749489539703071072458438938254875278722577803097659402848196913057799387832539808400335120490706820065209573450439159408059670726132423457318244760199702071154384904003734407344534096556859403649066456916462234020792321390300462507798721975679077893478760064793687556258694721133093675665806992304784329724579414319528294373583735087047241547220335404673781319615598442274201477307683088554341235452983998970770673157433784461271627285533599338935098152662775644350573276324176254923611560680097036015870296409679876996322781683709741920571977564721769875916539359524000581296097355646147673954981929330018100514566990056007685508200408314243113736354655677056087691673701179581066666514465140566192699816448318309053004362658141826747831910014912350607149091690101223328031016450001910781293702422343787966318682806698843404079904823295467254104667308236990063752224586444446208936616056854528456977041364952769763306197840807240870268948210422951847547874769108591078872370485044734810869104606079138473265580811629661052118535865861782326362062073416567509414954326709573079924515491606323675069923635187432559590315437492527803596623222896622576127346753128226920929601531239762667239374683674335933072268041693463832143756782868468540497742758917234365001974813204982375243768978714634184861215971277497973644829625036298560771588275402909663759666101762112508028006527351325278257643410197937738417780011971603873796379586061713172715782949894830380157632777677994978223847847305865359306097081465005040077541017076323441343478467851373826543446245143255819838251638697494456318911356294844429244680155743038500302054813687325726522484885350480551268944511581384704029377606721986332458898495026864889074767081294658939767386873515874958435419154450870692509681842077184605655931852219599160440673025432367611102499299326080404616822775924899210353989701589591747591830808720882186605303839468819814714002440924807440925933272990368699547585336325245015008207907532663601970188104288527785711561856754626731320449589884484162136036406397085005202874779950248265356347732232773610458508321799466725187254126376355464191155012919368075941284461189595177001720570230283287648120849181689456608430711603523337717639994563627068696178392632461903798909450667877370927147736740333254785991467497285906024869869797287771061491292339143755794935129545154817231806928121145755789515635898483338331687259979001542788704706236768013766864036534921093353158120322480824586245848704132377266546307063704135223775335382176904382545353847601739882602942077360574031281149512044279075783172648768315985943175073738814478167969260798004152167413793229316801388847761016177278191808122165740837857529174675882551583898176831739215055923337013982220569276628024269633471536129138709954227326340808310280854443478522555804911168294189769786763018153491956048623765023776953525424435574704773110493735491807937718921465644452618954112660966605342181201797123209896074645989999356730632163371532797641923892934506963570320085851216611654987675954066135662625471276470434816096046089489424231479485448182463444751423196922772057816166393894492766422502163025394759878558010669125784483246798888616393386294773931255651844455473914915508289429912115275133789893639874759880539846876056488589056252076480470401318215819350541570614535521714134928544470320743421491075885549315524591435795740081821282725027933735390540696913913401199327235043037455138033345117289053994365288430229741726398808955888484711448871507027984678056303808205332455878567655286950140702028466732992566089073748160972809353203281009022102277054073128788728757513471928837660906329911383562341656196915610820767768371031977742246863880164506083110821981197653013528154740034930728966932465291342884877086784105700588188870450684991308205764318147600966514720030173988539647776311071586588588698311282852912489370068985200232859417171229837708239828097014124582619971528981020222309349932378994840578133779238538611140202943280610803663009188378572097834315253084423124910474074374972629829341735944805842591272468779849929377120762737404719154585222247109392416828998574809064531753429486568915703393332834140967462137452863935886549643845885972086333871892888178049908617108319324160829967646705307191509301638165335176779167165119537869454169021656297468065099179106869534493305013560022135800984174831702115531247695024883377343497725674903805494930737958908750584263421247117243981897979026057489081902276396534568958995147165070188097978447014090385558753772167238754314226144370227313265848878367496877378013928503593263622809326922470710073334432141405025782073771294670515231208250209150851489270625799034096495066828154772297509736817304685153089341387842986640051971990226188490226580661889196719271649142363962655799279309872700906458185329714677423556288787975392797742756778572166999060620050287514877724580396502556011916059212760810617778528321831677257397697939761219736660459040751734374723643286235803281849263247096593092676777111358623106102942005317916316603943002560495654559908651940915982876400690427559182891723268198708593566814961487236585675086452005353169172596641929188930485299140823167632099902569071377906541099134760430793591223180393556166318457225543365319333851677361283003613060156051346975887441353986724984702218345640844534900576004818779429283165915609306010591827071783101255144372666792753256917507710482604382735177922857709044666689605581718211083441315441684678160469005291555962949376367789214814114287851225288276985849197255048429041663639947894941400998401084720879592429721683745200493035373268083492342222264173123670220176262717716244962153960638715621094102666981519151967253407840768574888036920257772190093608681159830758950577662171388158628702862323011172738773710987102592995511699881902263627516018369442878995586867031997506860907255065614774943992711857554491705136918132988983975643227557769667145176769612898614582971448665919806161105049688285708773701776180883212601497850543806503947036120755839139641599382894193840607250337279016776049826231675406121660845661268872687376472282519292545948152539546605896266289317774080397579567441334945357647479638958482838675706985606877463429668570101145858413928512413982179807013802780638914880459500681370765721466892310049829003049313564310004377526131034875973947150283831863299788948179340482882304999779555121016468965651565385208909646576361305819140867834499571085157872999575825829494280006615293583753960619324857344760525418000349769387872133409185520370104688329404702514818165779159936950943269916608823465157346427488788023841411315669616565180011355867652685933983525410166143625713882872614113865185512468866150652819370058374272130717517323585401720392607176658614968838090057337141059154077702216217509676896460058769912650129714223845838627320891805012070367128724617641066916908033537725980412910189255599000207224759573619081376674963370013247115971516898755133807103886539328476986650426561393589827434977215244311986628454373252512371584349093598865713868482565411730359906600568448655859267725010970046193585380356579334555940433939594017839819317211598001729870580371543216478257861701041455174522369191375364674534215207504557944018130648617876160277922564489848072869005271954548506743689881065207267088009375198085243751446184925724478314050211721012118766972627050040551730529844493120823955626717202113157072640031203278839870788993243204429825207679167296067447612808103623277333649384214746830261177644061065781852884116247794914427557416554578617291454987690473042488557213247180357798859167095441609692256498862335111231708105341071547556073314253000144905339575638573385252959347793578945347310527749482011497399891708980302255452235745109405918923871140004027319808000636955651588511617850646043664556713694199839313664598370061649567854569234343319203899404329484525425170499991668873291325758924150139858934362331403774093330039295410727974429103336040516150360140797016024110450899938608937876704261134824249240743974721793604765732033374409460249492697153428133386582813499349008984845386325559571277865215945033585298276059529340688206270670527822428273847075284709164067458594636001352625845372281522570332885042878418577159813511654266143804096012876953334202139586717981887366099277942914611897482013994061826163103523755030302578767899175054446737022897087704860065394691867124921540180477478507851096091013878703953898609357131932710764227515473600244887034621338839830982569533002037296314589505200584614150796450472323896192591713158070577502239154655519495265494429149584288136361841168868664651717656820727373860375595097714938888747356343516334228474624018540111855807598096582617413105248044106774486849367861175852286606047881410761310423732361180290145259432439271752837240059952800815662412059278532842434688620027195019382753192686537316376405501489239460124755120482742592062838706389811600647962560262851136047704799367592316489314525474472715915023533688485801141633941378448980644978915924316844661858228303910784676633583079894595790674069722442530519167785006859922897139107810497773788012746191804108971351833265987987174906604452023585846601767250562719561974137719051404526392168524288261881100649177230430702681713739494615660126779312629996266371674426477038903100101269839564561262870903286851235914675654510159992403025918716064072100100517596588825296076192820669085998191866501847554922929199913852922401708629111317466727859016156533121685722952457748691015769624027060555631043301494364735703866101359923862872524816296315240411807844465435242776814457923878555921209530999745556294863658616047847123727354173372534978114893805627319183446721845733383558364381663345265720044287022096153351856427421280052492320391866455573321931690431429373692089190903519467155802551637556079485135547812807249982526842486758766700747595456503922633658658887419719947986894151736107633667236454619985752076106815302188955493172013685674255460147379344730141872743857706777273180645433479326437195701256016794140629427928416787121660600583620644446190270972612488387162486161398631331686306962258319954011526951738475453624003017841499807327076045287288634865476746904026903713938508876548764548722258796663120777969847903161246018359777909206123910758569870284079493707552193399294845005014658370511289001538126127021455659894517066438723453881831846135221635514618232561043400376793402838260590564208739068984559317120748668570655091263009413340744721468951640230799272730961259124260098545041718357737554185925978059914210585740086447718049973192591339643541640094500716839131786271413174861987419549785375740649959228036241983996272863520636840674300952235573138065114539828215784231247696339220535332486890992202787251432938635252293869106289170931079683786984719108760079009459352103836028127388097688515813068057594855591501159777444602409270251512294282140486517187037271450160856877705911317901125054664575176513878065066882991487083370658208447571545415031472483399902763904724559366223988991116225267950157813782531977926580346368464119587143692520610509024828655104098189035062828078453563466297929577381312579158287143169199380864799681506167020773520331877720541861948394393397592314596937041021866173094669879810807924402445050970114218611986658479188253904385033953217840025429484760837785865648018295101421423152430065111710619712296346088748965503993270856023728012627247915483125560326972777404023273301744223979581052370899850444025599489085030199981025982788434331100705500057478309381486633817358062001847275357878902144463613071050360584187381395477153425830038132144028390641240427955045501733601736266397527741105671233738854751329878318211185523264104337459793821626730426738068310985909371362052694400179803928504351163414175494169277345384566716539089479597423038836401782384707296924914173892700155226060142050554772160411982620510265717381386576721202957422874936339568653210597373744437539397720957020873041541552084620695520375233793928763061533959440315498489791342025717008142412452896546257503839173855391664785335289380751105666949258136184626055106932174698172736932220983716732085480118102842654650644585624203265485157005602246475648429905166034187540111911954468651308946314454874747442719231086777629296226819218119416924157430433203513579341768579942804621310267250010568013848486856235550409710974826725555112303693100162618993659385005679992591713749981871033156086991963698431869830991845888952387851553621734615611856579860290996649298793815900537574204450321148408676495408351458671872184997985823818553631943774829763012307416161757996561747456139853788487652987407360680039081257486328428209104349060411232655626224235756760986239723215658891994843424140345506797763924747692637513119869999807295048858256146590164272285965268635875017652006773323530356237377303261198359783981768897158917325823432164453376968683169500603316769221293308126233895522325789300572859669643584378872570198860732609706187129024099975593856508038897716280809000727965034856445471774247929060013020633824467974007364798680492005007032475145631924689732777477594383145137146627172706661743581762502287150725311494682113467213403782992784603237213580849892679216936064374161156365435719798833305760876927996191751153774292204166266948709966274313011739952481668092403598975962096655196534251199547020054789523120863027933587755203810502600486840673019856020783484184800615812546098901248830102245132778118934940869256920324555871311247621136774539930810030309855299352127854103372980743628689440365467880206450134347498063629749205738158224225566388556973329116106265785921906438928981082378044178626239663776897943587221681666193548428702568670132414087601329288052455792500060886923316277257422803799198252142176844797693593101128028284805156429073604948688344271821698162979311113513518906262047562429022160228612348706645585071486715685079262881557963909323374360450621448289283838068384203982499813138913443862789528599189581034978495859868593990292623426014030012422726746967564378936038863675476204985921326945355003715589701553943357157997083047671779352859520826810195574071076249569809592753602523069576010115179598837508969834626311455035828395609457997824073746778359692245999254326131424797117957517562931545162288494139652932300060845715948341637957589999939771325132396090449632269607709333010299589730176090245872914266204609141139920337994208587619860647871470095502335112547513605513610010972205903493062740939314112666872702869129113937303708480637536125671714391080545320494670662756360901747460647743965509643033632087798012919724913635747863609079333413680981431138003437092327032825127669490199075467030496299516437371722719635870489775037958429133710559933520321631006360603301196504283752536282812026982912054643316423655262030412578602170350404127533756445020432656448147171208185322128773160422324371056883819061331608207560504082418563733044626681646812884255517066178429307101789162395022922589040069199328795434541451421879367807182814414652093198783411759175437285707828381541221137218368159227172696122689050126865423101522962099949234238396017121049593924165169011827810094577732631222691981487551752523626295906354912289125827935761767336507995847472769819428230343039374770816263829416669428397464430874001037447872245792464027016083006424252796391060139814880508167672326922078827903702214971856094717867086204968265985680864973590911774945590011459483353171915742200936734080334463801102218161235400140026631920772385924057818274228041091097630397368052634020644352655580484263546363982440234946442452004498257976648193147514907756097010237853993033552949081711935420364457555861611774179178084106297847983752586531235440433230942376373178922011024658136228131817516734707248719797187961905107529272475589404048748361967664259874229942671507913893104215193685889496099235949777345240943500578899669829378268116197282567288170130076135189057679096634723458763606996472119583175454951030321318031679247377902768617098649206213790802005675221838762126519017031028511816618047844492645993670435362485759491557060222353013922188037334150209862613191433774624449238237756882460694621545440306651594248277180101698763626165787630768930955956194277103774291387069490278752907417597874332999751792206866792941473788609664183692868425280002114524513022384583052540656035547830728555317002060563957886813446679598197821991401685072223572601725998599619110489566338588529539479735683868886251533476314653399528532667740138614554163178534259993607004797343487771434405087708809781534513271576278662704035777990430858266666100585845490608099761548621436368952077199824558281153026282697382269697150314425633948632321156177205298105445297674429638892072796421766910374037112885259828990585599681551532950039953256862181994924748089988898230734564908917582507569716836406582799223042853406886165235939261156530045551651058363270229085348656993952917600178314945587518781906302961634362283069612768655999285673123587594124707259134481430634309063037971178860098955797560595683175999729807847581111879169903964447460985365539988819071957089414203775688038483669620181657576232997888577762337994250287241830671722545150752705651390142123793822869675103684298867986138695664317453977881442494851147562309975380489890150948819302702726729576234230505292881144148780372987275191364743495308769093367383819779533141719349569120345920920338850103456308880507840690603311589464878238718900506063050302942150112786393816986639440575252467925268371939016066471411983561181223284772564596908417310100610608986858737156823559419139563531157654831981436352703256780555707872430868544542635994940557959636066115426417462088540560913028937972365138653574219679787547153224890315674551806783430259943182733965360503536817408047936714917818931295182220692162777361822591650071623402320907416654422661573838163946409252237882576033643731651302166219825692180009205769203644592698102186799825485319845909631159441144558863427199551328201716754223988213767628379375129941535659815285027149348397629007294279630470930472944065436793991213281448431851231708900743774966323588567413417995090573122007365040641476643614204924701548240352940882280184637022504848355742266167916456860504518720734369556726464981213562798301582507238320816381032585580012284647478974654902828918047258731361839705074612764383822622864795759749535603183343780819915675503802386120901368530495525512365422321015986337255749295366714933612692583938078427685456241265184625557921291074958488709373792123720389336508011536197991969006085905507710768725117169828806259121315297270356191083513682455698319289512244195726028476341086167240260305229215180682678609117080190523291245043168031080457713891309551708247972780310669251332620359859543713683978121243791518480727995618745598328582904350313946723594855872852025550707747427268535620987606508545064590255302557311597854286957787183990273846307966357917454262918866802830913598953407582186020675161277546750701205463642824930115778931433026873262878684330668752383857892426828472419327431581662625841899512820979074134904836718866126132409298814289674106008914585271458916793415341704486372880499978756603370732539423467240463829870475196140812196382399324481526557837328029265898697679465587031178275122180686271821716950450067581839669791784360792720566305846095802635953931452034833216815867715430630840759357957338337803311195301020228365458250349826120106772286258011077277732928721143278821260426301501927098627008549542802122464859702339085962316417298202258440632399164809371658940698573592528864640059017989205617685861494576081751983463944143198219273214569446885147167403421721765182686377594061232763323725171743576242317345048193052491294246105642506362456959688922055454067002238618042618471772908952455390753569998784234300690150410858377907331890237740838420358327444447969814562207827046405907873275822237266099939049564814191771508430067995741380157329903412877774191006905843614431903934938859045752336140810147841834947444501382708352221444429971589590674814956745563601204213695167632614116056273264105216757816841351023833249448237547793289970181507681383794902030918717680623646092475618075049986007837916019115510340575638878395545949347712532747678008876796149723609910468378317196919582758022007408299584425364015873047306785325985010857827250048354379944583088401202773848100670834413456346622664911799185756017838707116543149844386758230527045818234364444996345643038809543651824857319021677091894718212438243018053520788905429297256528549043152033601449377250128678200484887828292206219837178428369289282247184484429081195623865510506184050788441796631097376379931645374712798766832638704178268880395778861211001696868231224081183080202099420812249186486422704003887269291264421206350922223379839043108890630072511282603455786170412701549636464537202902972991782565098855314835260311141715420822307526738152664650965355077619811195244850898742093217151341678038496330733131483500978505061279792327455175058729705236621930553677807741817904750512855703693873898757853567625952554840567496609100420941535046277792327793800301786630100945963302066289488216026678203488891596208991694226287766402093132720695713949647191276933848091892161118556961323359626551936223137008045603184456426049917613511608687526010577021334580374420649462665975264317250992155483680734894793239745172089199987649141889665942305475278149144898510580365652746876877184688360128246462823635999340414955734776538456247378127645010234566983366060118368287586208512222656587894932861462871867740373670563596622882988634548376671953391357449472974533977154148349981996957806177763785277522994454405173594333854023648694914760716725053315922991899188650957148264986526667444389185835601598714463014983146355288591968586218080543725397252935305157773966092788463408052006023459155376847514316943802800746980176609527853657669737398461195054399787703256428575918616280473223679918602025092867432589369211268836620391776411202194973049914819809445352634620255572321230682144579997735396028099309274985489663879960580502005059625872985046491001705523816552787837868692351755981323130270435237671153877245872865035537396418226477121766815507010850609991177879735002023544298707608606222468626030385122625264673801746488778071138087264220318830571506910081772928533513394903645990173458686192492464683187757674933223178952852834128541079118577363111879445658983601547744277740188279306312557024339082113490263484598148403219666815295765691633218491694843980641676916203118894120292336985004190779920736901547863344955323479944806062838628397173324121047079640603078048570380321234001537680766516403213620103320405546201350325491976326484555916188893421669499683205492792391808805817121948670367423961443690617905856754229617682374029225397596223215547655475780565005799424230749870455739912217011198431214154300412087326627661967330327760750229220719010776189545133890164199701985364433819505377265547025297931502772964692076709778432007185339500601119452983321492779640358189737591458355197357351377620796547537109804486193335393159788601896785453376635036401520837724929003289838193221968477519567524177736539707239875916495903880457066266330656304376654537039809918155388137256483295181107342885498302992152762282129563327691687192978890603825335921615176744845151798729258847401941328589206669341648284147302526497891319156764355828357944133633830160471804474376595511402651754050611347814852590758327343836299245024077106340767004774917596376431620797324296446070064424051632274738163352273953903941752584628809657465083151769736844515378397291068963947513178760389086924106399030230264859539413617975225151522138886538989740243639675489236010470393744244669149157133167279547944911680406992185569933216210027848591373341723277863795278630204606209283177904559232379432028948905011666020033509975246319690671968795233225713353807837760640410373307690505064101262103693600367032891931782192071774573954736485869167724092735465074720504924432817204121492681476524960581958306593891384444477449018066899543761814626055229669743568207243845416112000840579080627959363768236077267455690599722600223644634896936107168518400977937766962223723575502463681383964590051365540795740587167210037751146702579204972699981683375355885093219980648811916627571490411905291885804689458002572612185803155490760849831259749680553097368440689249597882037827384696361822070426316885437678663029971673222843241252494970772736567967629052518587355880169495183658356554875720608102530120351457350653285885511296189810578422663120479937512812615564895663717121442011680199460367073727960220207501959125057113983024665794469791013089049543672650880521074325349101749568502684108245382441924455539357740001375861955347349700239952844356135372533326017638752315560270745711995963601454144867150507605185635052103432626235668103976077263487371410500757629552571498528721244272810671870078872952221078534839579566795166098731852484654960083119302145835463311405560811561464419769495380732920797669547397478363866033460634193912990597341296545905826497681160537356173393538858713121115562071520924916346043519693260095992857243138557134258478928231614568926110966112378517853470177440489916091260767954529609218612064160209078812875968387291234488955502804724142898423206478246793946574319481471285471615211212132170769912223519955038274350748922515283510804003293049113570402694492481041692783417528938093227519414028651329660890322687882766577788821845628631708626669928410293353677918444315371143336226052020821119926414420415920093441278333805525850179015477293893416386707720391354935454346377989775796705368209125505944687438500543583191649376467098362583633182347479179409441394019946874047043672358978987302447376108516180015194710499205732055474351764939745682854831551001317672673806933283225855878781273896246027769543041729111025174182974259343905845441097859189263749296498882850267422476081148615459154036402323763288481985207161284126779070263180607884145655242536005811383360777099292816697983095545193843992314054693749727111925608162991493774149860877101383573094954252469078763119957800056640087589818123445338612967065136578189298553257039777747544564701044864882758085418309081377629644935406117928844476199502886514570856825002284840481239615617525560114772744364411553748201299594873836135591389332338156332925138400834657285352290637685372709440446640975565780500874425008540388647100746300119643539710072488137787638493815116275135669051970021168658631259120191041391539951768522736663353268170142337624264882993171466403284458408233754983220422558921175032470537952910539097797611855010541284964986969633583390046326364194247246567113732734020288294662520410423329702248681228446715573004430080135553367210112425486257759188636354897327550983890311035898287895965502259906492700634581255889744776774120840001766248301440231699447697801913761450485345211277939701347557740925246609782744855628960886683928074381403298715146638443190699867133714371649716988133877251296066104438631113038269854547752009394741524154871627029649842250341601932434994397041255252075731201816260396424975166192778697153133649958643978044681515721231323845053638947167099227573950126151923826573650530025269312232370482765141475893949846008530648753567460275144975296447585378425517446790850308443819741476923779433519005797098421163673968335386692409971940716369083633741717619002767313163591865670189781130675280088925441095978599746557364768375541077872392285673164618196659337839337208646176097539066771891936350135855776303243827221949670604126829266717789022629831186708617839663508522688316783133786614175987741042192212212258436367839802999869957875084534315278561456488714641487818199683485644661361953051934510525535393572682482666288855931341887474213623961318854368155346048057942061576939269905493239806335549467679684786386421960177338279912443459423311627819314408741889795016051856325051414969646419037258499080538790752316563616253357076336028118534870286139351921856056265042654476851492548956580873170094725993812254323071279607781891147310343976202861878223400698555493125794499191930698771938307700644553414549191209030519218138418623409739711315101595007929774386948491841800835201882491250002718814886942630444767769285564479966099603920043400769951886699006074901079996336742331791563188485725085932238525242046510435080950968890383662358057690068477448742992981100569751531103161099375480731584211551425808279032894792922479512296190135996304389049365402646837263311315829257273705209731153816315513905610538096023906608119015952459328467403941295697109411319882520241106759457543623677857530381271148549529318237147192493420832943353299901780371509378868802505358769132703353874478659267290432165208613135211814463274078361793649296790114479105284850682771328500980739777216279241218117851076597936363272146152632094869087563714949237251024157520033045368599542426203268562074055397560297870629725403235361456460482910814993849995759398807987073047730524753405191786624006094399797162209962168109784321137011949670671932943091954774050182133708620053882444996982798392662274050820935677428935616575959829136482805818572650003117551555765289254288258117573327094674461985616382834202105354195641655143283521425507749700664376957315405526134587010222234077280911971268285664788228117930488934949561055266865090045398729410838393627468506639483477365869537596950319376674181486412110615072578627281192881351082802932206881862303993244650592629237076659475371787690263199245251497087123824883072099484109096569223911391873787063373226529948681520339839743206465144845868966208946326759221058724929609420942677009540808447436137239465591559321892962407376128530233169994160858410700138172794070265332554401262851453479817622819717891737966029418499962869601896367116206861265854476001793147252826000886781082951499961229166659339658488820345168798459611697905241612637468373884475163710325281171606100158590093470777904911402457737951960875859699612851096018198888931449150862889474072782540966518655780894473282563625196871671973097195207270736658657857879502037800940145908388677014505344852790567270983888110656170470222881509885893774764998882193332612874638338799945083377026447475709219393422143041156767267019011293365349305188798317501056292784083962381354381703852822037028487700180397290525020084375373956061647870333807306206418622688182368128001134093810134604567006514541491409420862320608342297852959823755174027940116603301626329513808725605584385972416041185491502931958916432962383320343097357839202818389725272538831099498472167826864248299694759619779911887484030076703482217820167315186977653043201856203354346585366848809694041272744664752816468753230195584747332792591397260211334207716989947641313331212206537691729482496173102469858513445077897027172698590886774372252006750101994308862068830941569147053754405829948105913610426507888841545421295372276557791826454590162079825056949323980445598682627721290059646866702774733238533589155592160544683865827073167129162916872027244961161565195823559036782150212070495584551654211695243595601299303867048637016288692664615597800283972956534375543609752610063778613978628664837806138271703755023272466990891857008046352320279974495343630325747962731743288238952398897182825475349920028868657712142270657053158675335676543670076421489612011767601731056686550329871624761450235220373969825282726750811814227275521182845439312514099205435882169752290007550992994135106514488173239192439579925148487510166091569124969213654928645521673131646329511725048523864533379261670679298570174447246676964135631053416056443770712104173239936702709711462536541402260133139853154226657629192401055265973954205593404380802426091851107582698128196083570238767238552178851421395340767576207538357163599659331264466102310833976018299321724758817479910430495607966411736074084103210370230821357855078215991546976412405106212646914883512451832759472140627068216337836309028452787484904587971971180091102702817400876419684466229183249309462148706785306021014708383938676878510274585047568640754926052442204899476309823526157865811465423840466837247692074993625054726211697639262591527661511770072849835116237982440132526781246678021305162058523681412577330151346337807194422534087332200137826317906352647184781753025936861796390866944674250544728994620834847635191739928354167067257553753639538780395215270167390310834025302572823957942260562754033892457269882045238734914288494893550711647931616350368254007765474103200079896114065192785714345931117045543428338541347772409091975446290327969304289555242762354426088201625531553284044787198048460779595980172624336525301007135684381499387363849047069678972410997607019478475958272897403149631794465054902152459342307392365356816601338177640481821854986249082040426005564820003478965635771220215318660458195299059687747640023949227833918867936092886177135834348934441595102699957326005540126183541514714476522805456423154960979416933625236576224132664712368868353352633569418123705111990363118175400311422524062248112478531107791189312179591365523103706938216108483950930716333043715912568296763113988846815772193648251868852509655283081933522487459637610598616401565108895786129484430661658712324344629366128059613755203333386886667551509700748010748978896049734870600763191479908733931473265132382435981471370980292670759079603176369414431272088756442806895943259517387355331196272625000320091300224581696098657207125562690471528032447842386239775786082103781243100692969879415016108758334521318022162463937912491959311635620280529132537106512192000417424248291950753720835193372964144116290690773414946635752394584091845949556305765046140603475760239285249525870628773792273991871382168459747419182288967472663717031600819715590240379875208681492097762430182086672209735679994358533344271378232397133254732050360564400541285410900696639211019216709244763452377372218074317411290694617480741494962779640808167361305745072345904165541806079879672680873301692470216553254837637307139809501560815390814693866889700586904803571194146000116759215104480012737629392743943233348340320408188942686333129772834602881154022966201520920932954766744741409677469871903488894978892694684752779657550487780249602576960260508598906557482238087542078471638240025240578043073798797170717860932559644407148152984572232740411150536030686203242528728094762867016197020258491305131415001477197574647520995807401132566978517973178047593457297924588549684006583513269233594215487535203213401293433039326455842552407288827863283099615088811431615585992784559479062026666783745257582997249470567121321508419271025655220068173377076923216873902825121089999132194419596100160741505576637322219704143572457912753579905267268890936345521425189476750532843406687218930420223164581249782734810865450081564714639681218277151840565710903197329914183523204376202519347432940962044676831205305253425721201070445164994005395908543747444015181426511222397709373611221243184385815475471762800082202674927744738217921721454139458026385496850376456378507199843152071767232402305534395548078714683965697481352166219549572084822322489450921385521043354457462792211179589431115887435180697320842696902307473947563308682722197323765582558215403950031737091126611670490975758885744644631257052470273478213183411244118615542781974058973663722012426688226684229790631019764735123718750672352015261466206479264929945164022566349520318494330377015714646257187675550582025718715101231063987607304199853751202762199670078189803107887699233606122960534616324893759727138362554819542267209800120790140423361959415136222215409496005652431064135816123177702121888142231573795001261894411881577721909066751140107642787071706690982940379239640837497858458052712809178282707985804996840276124586908245149337027990472465487246039605257504776806929019017606017491565968757521601962486431710862348484672787127350397458436041896916344837800835778344020055767948776946571602847737673763205792586742767494588628498699257250537092565358239209465200670020893930466271512453779586809585609065730786746184783814651168945145603259647151218776984263285392101454899924684268861618971751499399242880449446295025621918177694666700394472849547345140959262747975333488843248301842784141483811662218062614550228003498039802809583435684516577991923027405491717188301876682706070048595793613060605034671178181467864110725902790480530638901998348955169319395648802054422689625054394779865725912597634178906405016592906004997649667145928272129287401856616370025039627769540868028840441034338058561461044933622900595207977125394824114143091393164217592042037669450042986443519216049049398308465000399932240194031408883735031928049248271165243719141497047141507093124181634129893921519195755585446104722232663957096226334326820336082716711979261874917998273451850831675292692184003650780154830641475594833520596833696339021331920654228386176937885599646643081068934090779738721134435760462592929215160083827900550848347683097455389158865923933876688306526910769523355163779561989282771596526272328955796587472399578744300210342061205915241150183254206993747730535285282347092502942395625194901537367888805642629693488507341086936832480125768630776261664490962185932937989128576463632827570003406524399996192316236910180971812271350111626504720511834895005158659105908093590539756226435520607232136076140762541057702065673518749052993533219867408052168413792920193543453091028044175663140263857984213258757714266400478227960729225507180759294011849651940630407200104902322580009563343350213487537963926581820163559067602821737241278442970463720591872498344694353360640858308947616536739324930760417213388881193186890877499949662279374348657143825755379403376218836559176930670435566490808595425148799039064667477927125602254640025561610040847499960540229314350741087969393895795456955356926376486507885136051899442018970171118519688908116377507822333724450581342914974774820832851190559028145742837656866112054160024250487860884731598498178307571605511009783837736659567279313169630088946105971244332684269569595674014035672567686993262828687204300586820506496247179295467705521201280625300507892405990989138836420945603858452504182092009971753942676263096190666251277989929561262757080372027441617184995517859957024318466296051271149694111686460392447468834231450729920910609300797002429816549027286056027686573679949803986227767922218275701650421477905947146578174584471884378407841072173203730554134895446105123131034741677508749493959731846148891804951125406858231831127714416947844601443224155458536197079289357400433479581155001284481977118021770399497847424740197176499930640056661901083111735343361934744735174806290605793643540234996115497460560336261267918579025369837286341549299381966456239837107398837548180921543378339421511707072938365681866066049195230940182313163827012548369718482336586989005851800460667616357384164705153082239049136134264698652808153137513542404267274092681244862979540175083756723662786522417276510295548984243110952151664844399168153274115387225055901374028011220083239928571733860724559315576360972208723103293815651848517028648698735651159592986855514209407656926655689705243271035254795598847444525621859942989195248342716390769344671022089568030731054566895608972048566324860831113530222362062068159256663949434579745374574488772407591134110540680863273541810485485896424883277289599139526776868049205738497784468309212846108923080018633670170999133424285228892290696933804414403340949684781957981008372525906683915384300679557698616164429476703137767714266748055853523213197472628606728710856918014814941953346976826105249319957306546219916283150497271566603426781570232254858030236856299424387308665035850590735888225855802059881466453024965652170534640331540968109169658077194114232939584963539646140207185543180392904798222708882235917469122041648813618511802535019441847503040718238922456589960402352380920760306839737538617205941829426893588026729824609530374165389732997854607541818386656472639823223804257578510684935682515372902232123019516978110309345969297140575125992385876525317524413243819047838724779164596087987560767373994639013301842002637397240380245992410242067845374697767205645586007885647677646786591698336198663573631461221987283016179932081151771996568748901332712492360072608331398018139712843649104330935241475198635047163549936341235247692732197325783322875366679274482509533639464093125528217733834923418362410503047837891339601355155575316307760397759930053842526384268820080647759130849622673185873676511728786276670878772444430060706872740701917502744648260958339416320651378701343581304321688649352897510358439523395841068331908419461368453253738851983107371363241981162451224471172942718514419557418857943022975674035779008586146074439729123623081532302709438189201465385666877275059942314387756595131995919144545233821636997492085986234895129695259841449705346156182765165688783150462539188702958241329759533707970076343278264875286699201782216344988451735994155889070929989411861052184132458364119796612978296285098837333456936782625337934971675176236674466788263745387926310665495788470886680026272863506506895872016960369958620895554328063424794369526261208069142208932311257741589467428234570824657574211389059668290876618185182923669063930417626793568660923554408255105856333865928659687396547857791164135936758337242439488279755647851684441869045506381114721691912466190329447193566901425168801657420326279258234474908530080619666535447716231258523975421026257457977480096424780902255335949791962150040796133879958404952467947408414027607388781743393642606653881479785294932664073597993733203050354586910404451707176258930566775958287871822509163956002198909813382810923572066161422537353705028813638158672785881481579653813356164777460525745716403245614257386524309635379215265494253730648706692504244683816208505317627630778753526196247854237074028274093418713981905712870817282227157219680895973114325889911952487356095745404359943841457464614384284335774032661037147641234692262390533361152150278478188443746572077244004031036814511572924500958056734863305906266551252460571964090770836324048895966327399298671690406489641032303613811938886473418787274463500898412311858847235954073965782745007591410584874522490746838151035822123616039552169812703939884094212262813785599638333804665639887365753590448137699315423866455084875457517155996925804960215247887732097316779750343248314591940946271291083099822726913993092307466828594444782390126540330396363360580766413968818829786061609152267620999263244567653972809718883361443160630292429035137533769056359945219104148911315138667927927548903193502181991317824805836991097957903574741663276901253955287526207110376249558443037706925562279637003048304975705994500762729260710929268923595494252818316026468514699396685391691401747810565859925231484125638098730719719030485466405049106314757563410937352493605296705276516439124069444362749409469963948295089649484154071407586635500569068425809836172756286173994772220575428800294668091946709648368053535699225035382602001365670002895606361671967603578276455612342514060279742901914955458906113856542439329488316235549041525508051433593857473834514288842922801125298401488892695376383746827133148967456661565001036268574960493394130549116700956128056115429623035290497260554866123396350462024609874689625828895568849251105576166314722046545718854690397556353793648398715622725520782806486860524843159175091584523049188594868025765048214465820915597903661143973372407167280642332347378546780561999170450369826520439827612847566238254949113336285953645082580888431716173133642283830525025840169682673265878825843928731900026826106193900607294977829968778025949161289590647829193311459157388101632753477081687554718560087092780004279138406608847867548002791690491102996750610706981705061824300754117176128306836177636205221281324432500070959381557289872853045296167081549792255584920755063538361054204473861172328962102593506475798781283318455909763168477909085793915837792942682362000929157324190886163831294483704281018252434116496561836461986697377825657561904143092822868836867538373044107679885828985591824492198041123380400168312244808399392091060204927974739910014709757397838830277832968893604056422255983223969906984287041841665202015285162596683783430011089823136679232081132676053590201086761194473790047659092624168136000774605759518044905300040106444823985725379129044853023315343168165381791408925354898520182731846365717139348820559185726885657156433274719299453127713979805116396102951133728361380443093034265132707085374034923701190532794890330491749155094038496156467502099665578750279680998321987975677601365769374377519467737758227201569142198012645894733173021398024690458298217398462867256847057985356339372531665556667359557150607741600998857089200459329537736884328854936641688519707719221008187635240146808895496185977919203285267756217655184255211886847917769947599666839277261427098238617401996798835654313699809024122254981944882521158502422917163999007291378381487836424860017860868803666344780199959995668937704160223296450320829140436543714814839175725874518732598416560068371363457305192083102854123900367038936183679343819425855075179183785916451487984262853560806192958823364214972159875100767778528137673527897498228710628966367692548472243423658026447587716491130134582155257636665976487930934266703778767783153733144292055919218179159357258486022985703463568451552034296554249989612518778885712398503570010472591837003063405510901216344009455085436468518893882513202819522718415901544794307986192547600693682907373949984303980488071669962741922443350576922680173616507310036505783586945546731965683080429443997826555341503647588683847893566601268527749627969549261032614492824069514299947311686247001927430325188677005043977785743174708723905176736431522111934155761569259721041099880240428730245409345185004821622683159925232049072586108219413880795725013963963721758900988286208034853425125722020811769623731017949220110571448792648644437634767040753771631478600547491091159746693435587250492369225676803565450397072951755570353944875268565226898355161063477394678017280518473025059916316349111045739217628472086694498528552250584525118356708993949251195855994238990474645330288795194478266333814257315997666360282340439131184814144501685808193679866746882472194702373808898638223192511375461779784268203821997698827789291591897461875940817358703353913004112677710904390914034930473066184130563736831174238493586206726727688046779422333840918338712594066866316147109569466857033014873998064886757024206961823903162215989645474015305794474375988156735766511883820701891153224379296953923049251987205581151089454714672534895481531973208191538833452711602040196798059320312843684484881311057188557948091546191061587192415602856807173214682469585376978837621074886589211525685769098399703522588963930997612553896168893645704122511215067100565153245942309600030914367019250848986847370295016664249868396931179533758371875033067838765958676727903992629769587415885574624473948803095369417122981324950060254822192773806665917847339477404893899520182401508022842786555389928986257606185915743429575605761947579103081517708912942388017374749287692719699550457159314830285039001318819767869698965573105449835409670383008197782928470534412910326343996341632310629665290379603052122828226298639952442356754474484435467916320510501140622415331691011977473974678496125754745037833351077894497206037339308647637141548312649556304233277129620110419484172569498194127394863252197488955329564082089149893714267064332492561117011364484300237410088504375605283051526185813047155659977568174507088095036304288375201360377802773128754928044060859210736653848518225061652698054535807058129855805938386103158969209429788311623436684850871987753147936798643358721455323717534143918110174902494872117913561638576013105708270738892855008376146958307596838720372686960184785025237081168150361334431483420591815292983336331686101967393847867947838098455506421379280338120447247813612881771931196634300859471822387013020326096380169193831944865849503036831467912635113810959989541839457765452180031048876744899861576260738338407802227942930542238323654542165164861696661267726646772777039051773730939882523241969567252884083188586270682028784285305023426667360654565073176987270617671559269240062754643226721846858181151134977551757292072105580197003118934622695287187345336007051843244707934260315202088796256381648186540522377725281313920910761561497744590743426073946212900342366931879266462248428498977807812564571489186269927011341988279525412985466670549048349399988182417195209716223785232174102636530636751242654684746394834346287274180234918664670190767382515720395856407682321208280408315935179120737181189852170464736347648044571143431078314473228928771116087298243297811957402087669681885672235001407607874001834781048959600533568274019074927650137869120738639653075957267289657660832377887338935766607818859401885735895787490007679704423553593700893880093992380062649658904829935095162161063556196257130575333747036857441159492288906473845400977622049127847303124556637384856655596857557908610934008316781715644867846041107209440073269077662588133753080963374349917716896562966962897118299210788256648165869171309298006636974082389962086360104782051327745346089244243669713044598910601872906407263891618883143767754063479379073439376032052166006191611080290572702263715120929173440370679276249794563285274753759381644372626843703650425621457837928469172056175422895283733710181566218762325767552597688684218066304626641233214122293680161503795513264216050238554201163841922594800688910275934294744811606507565977165289252169471409783909271679368577363180444624573817455077239510983500630841004150366698412561781447056633161025877304607423507234481252118753390118894331878262094605766184251703003310125310022866029518304283178096991261816139464707410242931514834038411050575771093611496888242891018462475181849978652944362766713270599799261616523290423747501449095619969952639469700911024616433624506555430711435090607332784469349408359261332316940246655329210280936278614073284307903718623987777947451805395980145221231787178192812401805941672746247886343922756686597976637001083194937704393087835318096982531190492577694582126604921485628863794503240099952356095084302774862098062454961944949328556462255373611621692390700724130557782603534748610696927072128362782638205442976445492086224695454751037007915452084525889836404165038175451953353351137788395537527950166741762629646132425522340822306356285637177508308879692415168661078692968776971856161694304018995777107597759240248453783693085897035694064919258591994043932494277050730312203220854764511336999820648069932794563006047118441460351117081918060881287653213260559554832965670991497540061991079833213311054224728892312075510138886998392330720953961632259171022182905118159534077294234678688153879035835722792684866712830696826054693832059779579459648432593072938900784853396685719995386073363436089439645728955713298804760487184835483869542980771691220838709070511248808104773915558478504807748261678458360062066362274382769686095753459775959887841418652369544178614688082064268877715351012238736762241379318019420007702362638140992746138667425086588172235926625817516018661604707677817172804924495657482034036430978717782672804238582089550168880552869120837569283798131160434133448791503112260853929315260599295865259159742738835455122878016424179566503511051452159512445711003744521569408189210211903856792393856732308095895997963028394392814202449988633261782510657442192179023851283044524539834119437554054988626664517677506764625005874987402642434166589106935639778389116660437361882564447489674360179081251917516297702207878874607376366313779380814577404147741952282660896565300984517524822948414725598277786386741543161599799985318451591872784765789652417055105124305379623405332797353488041958883807249633470143678852199199523769797069622124703785767076620010007636618899719022860601340801884439221429962598033018126001430152634245350290899103084511321296168776066240332895972888767295625986913526291103370426888521541851217354301420713970670289438956101813466241698534654280245709736251955980815303753126421441989385449043101787991938917704596250754290167766739460548244113174398334223549749203075150818884811753709230241397501334971544793572462822344743898982663457294862158806439334022534176102695111462427312262024229782356136461490515765256477290118149064240717905137347520305774809402174113917732464032329801486558726337442177761185195789765547357542772352654181235565344427674722088642585541696772255272748380827743615720130773434926041754166724385472051750895353516233037732885537466601055040177967514683023096675282852271886829495114527517048783317948400843724799074976602328295533550604877156870452841103035462680612100673387732625309980404296306543280526407254892559052016865895049181479845136352414276589285685052372761479017274833669529470435720903679794876172770507076049485589518134392365226743116876278930137775827246742093361431055854382973653607581555008200889769795941013976967954434170459558457730212163985444095530642019882813106290944043521722452109078390761231440863219502787659009842691561094467763189069478569339572738941078201019070778569548616042722452289777753228677756123765262397189649079760872611517933195501049892630764566896029247141795318208774653026158249596844613710351669590338714603467276479530168500039727160326370788990373210870686366551684404100112709128517114182664481459507567542869806468352433147093012326139863487672256278329651604407196543786077090102411395690559963793010774017944389832232995817363932309907859340766166177215407128793455824485846966781645980278219227965614431131198061611837873525780260081962461809125960052212878069763252986077697358978202333162017262485350681557730297784609312790584127238338384761585551119831610852657656047710709428295673527538161129635543511830612119177549101653244918103438911583555708871817703617118280794135855664405200833435619772824325262726127175640473510707903778358665053780722322153041421967931675405516303129774327104577399143438444459537027281457445874378007326908953769909866614157285664797676211270223158364718399710758689006615654158949105218684294284701674446413098239270082939248621771679855861725233074353595819654885955137454548007838240545136599585499260460890412159433010443662233375808771161892171721105589198440156563683821648612132036768755477848691423590568528503667657868702269262757740890186494330250925199174771736406967866370630111682790420517000955664647986256959407697943919049508397143967723545366084586416288172898835636589070357376868506084492710328793761543185961798800814334414705549232274473808271229258760629015302950866941362168660323465369741291776895272644081244581704645484462228556424137896213935839050608409500170352154777257012445332832652820305454148291215385329658485734735454646363183114271682372321881971099802163955589352679960133214897694200981687063776467366105228027921259927067973611986535161976087805834692954400134413537587909067660723269399664624940175469680524976898758379942994952241119416037984754324631233683520449342249195162742781344182830214969331133583480272494294101273808172013075111636467498857466729712994714921042637793698769050595659013905835600311844116844369449012577460141348761777728974784735920958346002815386357624047656677075681729295659110299725123984288116623985523972642149010094266016252787592259314062045356050097143848098298069154986166907769251724412373299963025480844018236493086626364859249776882768563743342977976743384661913762561831118528770439891260825840903533173882049577423894292646710226861107911996409825462143907021871549244446258664384632051660066298098226061720735184382851951687877423833722901327442775884676719821135690995688783953978292767162073977639390203878017449356943889090964600641130601368096295693758298112835709871699966800603669497733376573823829439480778198897978750293630645043441774927106421787230370627403241739573614115293434756491837687020833373975184947615265222440138819092939281969166724845186893358553222766250974650565379676408227556113716602586667628892193417721391288408777451817775113076092420845268360853497556059502287123394430941166971871984447151791097195467530228729795021520291198010113547936261524235847350461532907267592491316558796867940230225611493879769237652040054580622784324337066143217044782448657165806267811883394687906128217331951623988535920212131827348398681361490128736220477004555102495727738303196595546733704745370344576254067859264017184766857682726186898069988403937268458002318971055301584333907967314163786102139415603343354220460084535146595685331954384229070198048134578657367864885843267580679676497914702226367967812007392392661905534837841799719151268077961943396778933819461149738317415759519339450427502702377389306624923286850280122545432473371619255099829128859002573201686915762600691874951689632759349072964122338386699795900085808830509835886930881212940123025394007039208015067198559216807019889705800420330918005118648497144862373543618355218780141818280735388498770157265145388571088024745005840099561636316526024266849193914153028765238870138659162891365438820566040944428915593694666850397827174562449496467068868988984160990093694931209195661008579586535579956983858602792982989597899090994767215450214906325971279297623883256367758979573744740902774078699793287097782349797503318180415000045039535413946460518687973674020073748561094299271152634602138249476389036352983447186378379093816760503688126986395553160881472158345386547648101657419007302730168111789660961489958886910875137976898560785010763970982047912011530187881809680779119917178505192727096188769211423061053279851106926144723365533337952952229076888218945971092833895625227765710889368344616443378965092085042668096171949773723228989278877345272432925189429576823697515162206272942525332710523509918961419393685818228888819174911838621525349300381480077302084270570076619766398676595059971568231999236585623602931223974545843848653848523553218225879228014779263572638260611373237324270381235108807630952507423319288228359315279519446736649472566645448845524388922152488493968816242379288100846435355986102178118944903673919526916539522121055432786197470616466518381876847696885513002478127710971083399219591576034479567518511574984897709841665469291456891672832639694758271857491507409447703668719741803818966771100456877540704521272702241579134155666118189143557038236921674085698480076256603720543387069493851106627799690638376997610014990747783416298071312612921918996316544414782062389288953717759109845767222489235168695783199314157010731025703526430345098927672619923903655275859024622575412299532077159049811135702759591974588325504362771720772490989884923831497496879221653675142531206146366775454095280489910453792167825459876821103661539982354622185545620109968433422196807316833286337423407458506646687918307384242800791903708909861334850681810975810163509767066029908153944328419194627676912147849736475490565309990892436904547732807164416832251752362258511494490628113673693565462616893048943925665637533003514074729072698234649854510692943159888777858703973691265178832709711520708203909870765308735263853856072926311900134644380510638207025303237960958937539665391767710396554664376554007987779367379912776580645167144797154128990952406060080120873118092963354238755784833221363983961938693938102417170884876548394367947688180024917170015034438688124083373535662189216384195394051380580741779869396431471354854884517640809957354048843907494507614346265848279986702273484835507063428275599789778397271080515120182211394694921865988959327889433565593762417964220150858220205906934903272559029588514209377729716217407100930271587647774930396095848286146852178878737619729893387904755151148791126685745063731083209643029303560155016768902027740403849258034713980609696074880895577358763993784073119400881525581609643960887123697765786561406223232943910826908518685135510379961152865531800426059896598344919771389119866595244812572465887632185423818086763905714833318709360518896564509775085242584040920922131622747143402940417837671755753397799163823850689337960436811576822599993842422680259239525413266364611616901957933773003383030667908181527281547981568804294702480162321740560159247024508356757805746168583992254269447364124893011566777054774841871382304082150087392406257188237399106157722382682042740048905116469605379614415388238013771375919411939074604078071413924787931063310981737159038094818683908126173873821380105539296393052183124267722464273560045472935724608937332755270406454533214401466764995267633923463405427461262749775307656813787191934491550126486747859199571983722834635485903596136506657396561942364693508944582557270681274733538503611637211412877277348023421829920389323925475618843004641403189532946825245262429906027049038944014634486216042168887219036049859785653254426181405422139798979428698580897077430056471950383992054007369011504578170945617532621903326620667791821656153762004740468475384027943947415003466754057649335340955290495475119984889521408164972618783958183368948502926365165070460894096872144052579192133033091031592053659142445033141483046942209415803193702639272356441136793770909654027124928528973546829324792156681177312389823494643778927039382027525444871239525639857693786698464487904467327687685413627376939408953576000738079931324991799502836728653772303796061251480803655569004223412323868642872594786443929599110775629848622931200855589358251370885220780892373556104854784605127402592170792041789947316098912662597717767893975396784474505249932986624320565998322043718330168693616420984748801449372075221196372265200110019793724886097110470585813736167417653222399489361417765689165190325708121566058212332427551235251884579440532217483910952959178925588105507764722048715159860228549328118913297148908570337705055278749327262577804335012720582582721746814436569673647842368034975806679323222238883287077063714771381064483658846396874593943884361573702124983993073434450621990349986904270724749496715023750861179720825691397767730051555627407448649059623945012481861358497051181364678594059287290367224421024190162864265322155649436759278585244683393190239620088416029458520659201633026023070597699787845777664735942585551051518526350182239859058900963314872151538880343172870737138762085572478952552085964124801602494244859902230525378908261314403802303355617743531395797088012217566027810097375784977977104054082532589057419505766472028829491584198507389807141514034608354956719391971968746250824356510713191184640504369043541952239324735397418070937954889406435947544340831134762344754612011379605500927953794871847493492905507960768056777122501743268483732440702231802340043493692465325709681531628172886129784557447355223273937101281418585464870218802211974688793862379092312988856754347930690673839260345277254540126314482720121180674951847476436426981477367266047986570273810818863680390853196295264337078163762996509277097459601799353666985284980416611379545413418295948305574993284298428978298840663706452254061630859036754703245568006508815607722924276898703180025073791451885343639562101300982359705308366882996091054584623661116191365842985243020957690104406232554615674005792276383417380490738362318176920662798033562214900166941680428419762035562692659901060598835306746229693220657901461325372431737496473616295213430937498685530845469030896853986194962275171398778903528644002103155756140818162374290462149960290265895946056360452231545152916108257935739870404027644507857756626389957058597624958002569554067657940524189710741497414704274823356593193451038289774622950850254416630588934805195497769918939392499086881818646171286895208739119792190973210648207431809488093452668695344711945324193027765983615709914069512798174657464933414982011424106942226574832969896144118506272889661738951497154986235648245936480439005671505495531521230430192569558850134052855765292713346924707003268773684765369381298968848887909781521874171784644996437654602839863596497818403028499886167750572426915376375341576942119745156600748984928954003941889722012496406558346832811532655725755983829991884207713084305235868688700972461267330823014112368332379559212595799293469583946745656471937291221797778533842921774650867038550578755839058204440320666130634553197480282163447118519710593745171340829898154474783089475998748519423882300763112317874047089593160227458631157174155424537424541156715930663755203863949808690613760357175419269696711278449215264256863111806232768212344313997747862122745024132164935993533525922952508507319125001244007041746464329411630907360439703852752889156181208089800145620061337067437437754508421327715298845953125585364708835464524954066559926078595153802344989182989923446214545131099257407595793679511073618199679420399460801885980208985833526452191833509443575000439840599220692497973699175017244430420742309977824897332921051792406966140345559443078364845328589551570686463554704828863025558908113467253615060832119820526191266570154640251457376255582052884866588801219824674972814235901177698439025329453832145650901993730022034223951928680749772262587687811917317798731681015211054826418121005153869882832436999767259143963647213360532969872340560781101417645111278555139281910420398663727027954889374968871385052027151706384579823422152590253682824816210427360009364338237704422108692187357323759630276602591513934078754520096786449395099225396370858820332219377944432765143470569004462447611502406186317268015300601940498458374201841953986708634561596185363762313937587214817058711998968868087591637055787337291873853970422055100863917692886724253514180326379348067374109795251033430325712011400558422134621577775222181799323882773230621083562384377795938498502278702060236468250794857501785650447213552469192459247031904052567586692491451587875328047359040192634546620526538373327916667467676933461820777382624847065557605588810253400472921134456680599944603545136487327699056292576598508925665466413450159111711208895945499367113732903336283517167540365437938161140619670685026157764223655569028984708455410493552805260334735432468731378081892740702970985531218011032737283448081996777922955023589746608450630735464039960511440402975506588804303088150863414116748509761805934889110372383843800802463558662966262380222608211261235033735459104025151635242663478170254978972016912669544769552777941105143687397576363327152309097630578828872013823835784033846102011381393579322919250707864113085595479278115165037363862526852347771268216059824242508195492960158641723691542264747653524802975757832947966133421096206164579251812254186720145562667056606977979510880623591960889775562286038640607087300855724694136167889177282880901519526046121812174078742043423661380362271030885905348523922266163221688528358427441162643353265622490546282913592916288218106528398835802520138124329811578672896740141798212857352927801334058460033991713825566095210610236494076465361969066262093718800054768725893867215621364278095705275943293756040518323138147357680609364241531892049486648092551899405430686374320003449462301267194370051505613864965225386645428262577957060397001433682900178209395376795378135186021179952879073096901605955306305404987643750522898588756156291294630922776989063568148282513370428730805756967216480149248102119758519096447084458575838958607667142221778820950324716040935903650945914033596345318335057441018069759842258621151274739117916670443863162218727433292370907605794916850988565154595664273338975614151259613173398691820179953335558198074354460306904569144348265529553204518653103624010787559463974995731984871701595538269097486342797378287279051639962215266113580398066302560201923323893610102579467329340664151588132796774280439018351880053949162708259222939020189824250476716838678504888195336432109086153019239710844277687761598087098688801120667725335987245305299767830822428379797583717710882550882457609507414773915009842995934671820449249332273300591876850456042973134427646499573916075917792293480153149327999566285380318887079998999048929501241169161281293664540967467795864790420308764068023554314679815037451226976444293853650021953321245594896796004342959800204017438778552209457273384621919290716233808242438065614777084034744870137675825173786211947797561806619534202333969120653675057757342981507464541528120183381327034525398557552930099317806538343087861867384131578402870795875377112306500861281038978377820066857731574221520377601105632277982394230854156828794685429483844248448972359617722431856741996654284642363716631721910675999482820977313299357648219365981364954080706360640550212990496506408112138465437695181929050205557601472215888516844488344201488540720710267462094199971811703999986459532655981109125469502073721894662090072664944259916079186723389360658775663219231204329877950341034433563213812995960317550869366871631451794602680034769912455840558903034862727302486008400305971615752219626341134129136323728121485303070900855056367168478892766247474511358988903253190267854164582641701846675533943014921107868427809662606107802730992719848151123172375687129121260689950027042997408619161290092595832031715189347624601727219944890912183188933714155336714390292854948400871741698378546919833283198110087446177075685814402072024407607671698652219904470437998137445004275347493370138934583952474124618757313287849883928954503452297988964060554667876673410560751531024837075719666818343681228556929055884615149446397183196974164256680343119954001649932757503651091054643907534018798213759118715148583053042279007306859520267191576347210814563600224056717940248271808255846180103505761267659521999367778959600951548517704009365680816898288562976353622747772709905456440978564279028984691719534828021535596179664584445146973731063226846332036112864262502716564319859235940385939777043633850112623309674449764231334975826865761738311351106658710159942782343588766745287998373907571194327937322524118579890016521781638782010969069276161350231484030112751593496247407941996857422789378702916239160827224335407737750871217255599126837313822525917401850869103316496346923300695261171263819840830853335087599686136483900631811087442628141570577632740667057270101317042905205630608341451765729051854100393230182509990279561967051468959779669672269860579792218904246808121724875715428397685537628279120826450006081597864379915196367275466189846821125958446408705700504980676943111118707716712703875467827170506499428562584115256509907556340375891439097377371002283050953326755822479427834795798363285422951084695292334597479327615615378421301733822496315095464054003942684714542266901988250773617842825707243256113173746657525283311705505538872822110209234454799845277261950813446770023931596370606839177735771074966196886037542613833258956183558155694898558216459927087855614156626262087056498941711907047973744312429518190059240864520925708016101378457057379718380328771114756155901703319565704188697189805183261593621706462167706735323612258422929507596376273552981369613703326963804568463720685750680774934448293057808267631072372946314785013632762230249785853766740879770268481205335453311966050157281632790336602527472479114811031370733775690255284482835275280889673888971436802470072369530738874054106189079835456216110410488513750265360066430474486534036339305300702190816950754506437785948931863461336161227431266024253483254788342496562720316308738149394952546560321089600160310492869744969008396666911626162596796125100426585220318145315102159822898265692078818487761150200194967417435530318521791951546591491010209253619451083978286850691215030581041176037632375356346615179179903443408196716222357521490641055924309905909970561752504609776074849208895306689638424935564410850798214185414348494741054191030837041573783894506441380431356878239766680126857676220863680302190492262029739326492480632206952027019197340067789839951176263792415034859771970206224174330499844697487679223970502256357284535886043635355273344143004443819849589053980666083552446067376417573961697100598190340899098756855672766826110968310080750179274754401055630841050794656307377518344568894602823775499880252827541713362578768770400768476587992378466705626870708360493330508760281143741113811817132745879657374780096120766014587758437393835150391797111972686716054938571544469067114149068738964509111009723283213414225611264713942596772175651205773344666421169778333582556861831059190609820109694368138941770709034684325097577997726884853841681848855735888828642858047854981831321397700696809866057692532072980049780056031500226095956880356255542262348311533827237231534752492527275612898107738733665482814286921760270800024707465568286554509268198154560844689874928651306164381616634295593253851136871232611477647149803931821861314782733569002909928731755994938859457557935621236029793294238007492137551238926363032656274405931589522163403266496879202329507459288233208973943457221006402968561232752732982067207656797161544427795239182706855996383294875121743160355490616364284148583241590945480225457294361182626687429015168627175534797208040902528242418118470358864391517264065544631813378610151593103354983437534457497357583889280302600028177070927909377129573039008840138305606482000518701360047703410138423402497733453834866537972103584441617190104374716089882234761140467823119508884366805498165394124466617674639455279105097178079165565342883407367033226280391540122184083756604099897507294038404133757482630941030863081547836553520641953030367551997377177387792025869090491406171775536960417383622967872163202881546103871334210333734021915819599172800788144717273076080663838522132966488574306549472563877690279698593499157169535776624909773222250917308767590832272319916704511405320789278271223421256996997543580030745932967781830145136849561196631944350192437024090711039415198152465603463363321740701299564340723006573874282328766418604756082942508220441894349071197641769426261695993579134887682596474626742851793367337091009699029186084351797782380180088840961376020313994030991184603606169531246883039829447093301909216818769943749916229831419555917404118382867413922206516446738393319323816989236643334520381041923505473885641032103262182804842437331583014258287844636359187856054717244354157418329761092252157018426535618484998651150733641189333450558482539450632704028617123405422939273376647314988406203379802309489165117980752989561728319755408042045068376535811546410898470041718069088141844790083479491215349764312876150962841094526354061064563088084758090146762863852857551449188910918817892143603138077049696577261733728146092896869031234245351299771723678612997500691093975783241689781335345930307354460210597123475377849054343676033814288186942037378142188983166669654948023881313738371957256259238029468946118512587734170954191349223996181185121862442324004572884975496800295757549327574983110294548395007117901953537740961996138002724432193387627488408449535978236135225974110073591824951721469827272552310700795780444641270611657577895175413916843804337239259838363885873422590239287727079026796439746020941309488492718916984935459891027560398063213330197796120316203548161718971953485124347903098002053328078804515215515753676918953880045960154257439371001842380466101049026320583081292923598896505118580198505076895637790003877123869678402368603047586091106525751953279358913847153460078195045601963428495604192774452382854039471963808479851562862278980665387440996828526418181082177884410368198695795773512324074964899463331499403262746717000266391121687019862299977945031054895339949896385673993633571056894456047542561733191144388019057981958524926474961061825977199231024138562990575299564086468713992771044453321408140362022657184125021828093572590901183910503912121802471426231130255314548164809411326182439101934485608537152770128098469299425134093365266168316444806205413866711581963571779780097533745138184912009786036479550797684412606865339221115592108157738975933522095460390035262348365814754163231037891256561269169527006416722747011682662147704754500243378242420088420750432836497300715851425706988548002781338892975739697846173488903151751816552009098534616020545270281615640900114143043152687146417833564589860908961416741357861831144700298855512334012696198709192407630041320836834680338349509621277152752706174999139985360439650000661323404377371506491232196620800667051825665518762341828566958618407556597562132806789138417153336897747712263455564363403026046507968303295032049689870681060668151306493195249926467904301018950586001653453243064191702810771739325728133252104954440213214417434331369363339087795290476630626292075800104740904134475293087626476446747894198242476528259930629409282528012595637115777819968849798940109669549286158701602089078384048226434701787179926348944958559024459707282044935357708327229705815794222166874939839864696231889081909445141906903219714062296963712809751267753619501741182704979539918613867662355799152588189184228908461635290882918820993219061736516875364332155367955457646666572957476610432863006565301936772010426840776234042414282330165306625241806439547636359350456807070780751121802399162748265523304862490191942018885782906277574354700681548448920327896782163002887538511944217993423755865221526295212819997879954548144838917695163791202410293595025419437696995964915186520825915597253207929349748198554714398068777110128814651942208163490056648561669058732940147661223700835207782537017998091063578412970509595636115550510601791742069233883037142095942935146263314822495837202889752009646835731566819391646901726966888687491311721662266679107820975377465749502968834954112268606005573038755148834255379633649085210897685114259036035664539358125607404440338734053229451939184104931248900671732460318465265460507792078931716169566852386176388947647777320336340985147360692071081224108596880191424933083736304730806217935704442872515037394311551902628928606367029710365188211425132307291559720165204538499203928710108317401634139908702820481907733275604950403145301792747422838034464398944761915251138281788136721910224032025782832612676009571512290233668147587282351591936775257850836508121560893691209618598361770217111662487100971455751655511229516118911453866963754957828999844723094117155621464169484716659535738533634458943204734572875681975038396894377488621551570712232280646738638637020075823852785634965349139193213842539937484755775014537995561747303623066273850675844232351763256434024002196920741269567846921529512670559701357466695348275780354888175411815613490729975621213266379702499485226606086944267969736685082928630382160902548713107049490231992593765973660661512150619756071172859563886936447156449655547060232502407848855578682419338375634868795457439987420213347222507242238820218276846729788637042128063879788735090761792593489402885050434865266213647339192449612509386814829075032547272870405404986573915905847579161127419002601085490247873383609416082524840284047858271846156146747235731487740003756922643856953213825095578573067544094824023813487321586542654736691965530332670356499584356443355503254805762074451958924239542898948845640723303584699523503569091123480009119035249342229004626496341438986049208967267298206167486701283369405999348813304655918286410564928031822449474224706000368646344061623967243279155983646972727971173459977771941909498152134366183875449188008084663918641983725350633424442291706998030078066519484353019943594394204656464593059183286890110511706413605341037983702026809726267521632546702471286749136204291857772420390803288340283041266318071111191430379352162788625263604556333277514545512171504382540054217494584283714469195239472061957219328661790060440722621820874015045975329652686939915324101413000459193023335512662174891676491903838095510890615967140421884153268442920629239258622289712821132835218695843647625087019890092946209494848136275385228658784811033727893935420062547044911838378111259650927907349862802102098445206327371832868219991205287286758811469518361256046812961496138025376240224274477623611470700906735171198318395809570524439168748510816042762242986298119738701727632864132665826105732628810879399398282587872833911367250455618297085480274656218023718331486546117510577550108671641312401134697069622319447131567894370612429261457871245915087834362117466197979190655516895854807462588171436464988956406827822151530545446162443696414694078626266866854892495635723761115744240662787348417428329280031000371283907655475491195065960425312575526724837630558237753212367802914372920200566620653450667736395545692686829580820405091793868295165283581370109841604358958611550685547819829599677477137413046598203677060424292482539887176137242615299986481317500999004157546337872923505786422719583301452838930368191149957423999229921759146107313352643649082537008633985100118060864699675709673918641150644796587710945882680253772267654246172842231376316629987966566316448778357331175957860946906660629170485979618834700201887623048847381329756794521516625172719410323661764077881426312189038921675622165575927654241286130118867266010984343346723902752811978961995150298780626111213134051715342661922966637340275696343048075862062727095111200315250108172481162870942893397549422758827313495803076095797803661405484473617846649015136703641659065917785814711046577447115450847412804869086651472368933534619813053464435698715372806173927594787949044877225249876835035120654477050479520054384932806858622059283743860059266587212239176361153242994412744844649232484244620457088089997329146182803471252130798299059498280943548346934887422057334087429609817576050860621346896578066733688642498306792707782162851477597647901894949589253232046318965096692790599037879682642633719682218003287365609069822483221760121124466813534100214417582270936646250901070997791072904386716014664777882762192723280371879112526214248381925332427280424469218824252239234966456706611553849511737312400364072116937160042519692050328969277728879003907433069257836856939039878925158386090474709654755946137528079436254935533345643459989226205474535505386756643545563033845911190152213132297691258493750767296466722347643738792702224526364051346171539699042446648348451928731301688225500436932863750006811267605746912221849405890659274487296160978563700910950737924311097412812320499615293932991420235061715916768126935182492378906278765921462985455189714351606456341242222229257661418695043375603056713397806719055127895366982917407247293776596970968964110635818637114475745280285663475503544631605149909124090697742771785201844960964326723764370988694181464321966571359584470373341312621458048545622951558104503745013021243934607210711541621563035056021421419119674562966344320330698007251856696440838136058048335342132129161935583922869607793092251004731932645533348833674141392547567410564671083295720278307246809774438150339303464914319412315597479213374832560479846725955471785305764266043864120544818988630636401503266245192623563476452397842055381366618766138657757876410642333254662775176708663445661605115566291237842424751775195112036777579317054961856769346169133450099006420094137286386695809205695745513394292900687850033798052105103097723774006237979497464692311377592426037982709055720890388742553367766097367390273076684909122754603888867119133178753887722914409794206761715001108550608662155571219261211669659098573325951549979385449321197972625607671190287352889528734113882349551209556390182395136406357354969891822474961527004476050496102964379358848593694201218603802259582291780859670463800881244279826479249086999922299205743110071909553639095148365337691081764232817746343973265621523911756891622078768396668176472095117591568123611049534453111215613469649404145438408520590442678340113982734411921875490122902966653710862291082187662304197130899196864200200580840345145116924705996862265770058502354798664270585091350952815905776498616774172739943274860042662173040896794478253930002050474625320404478448957270062917490110846824902409743339335115257711463493376894801878350437080378413483720919487151753390748893439768816991319466285249200980107143422603963476176398546813296215505157017173340815131748148342254875542295350510570701144738554968741274742794377805062953637170415971123867410043321445870992727301578472716502397645568750218974496138894333390595264414406371009302797215762478535946615131540674571313506051935701482241728714672584620744845856247273064001460390085646552089404498087467940159132266863515302293767252187309450931568478461694198025121790195432593139834640111612179830440820733349441038767052007758346353247491995983893588353757305033239315513806632714579807317078120900514246143598985262469173632271501949364892981134371375448331271226626330774961396096876812819710680509817289144018626264934573037800630918026211966465544582370575609242718681074647056728074025489835551613207477864945953347973357733728276979409356895638608553372062815340808710770999261582907411731741955041249512116260413550818728399265974515829614784197026256761078148454127614649336893465345577270669719080913111395477399380628044110565999667867693373205337370601048252051352575450028482005906989540875053129344732202304869513716498032086125513047369174697443771519658045210633887742878626459344011151077177292585758359704190538804828127705224109784072311619715096477493700117802121025624828865932255743077174510550789570694901887343113126256696949380181472833392120760015998985332867358956125198454873204488299828978153561405692274129028878467113023620301244052832763301214683714101436316561989591343500873816247836683099156939071250496291564667538469499755611780861293642919520523435751919724489530131719343081528236676017105050501094412490805026323089381147862148476539519343688670790914853112607783818786112181199421591397739120995635148481042940963260682028039027687762081943986369630595404851551552530090635156038915856935038314584054760381097891825042746911081643573784002402231377422822110431339288447962717547894472861566585325288155003062148819901551223896550703117142053011172132538591768215874864104030421064833998056254355311994908448321974481135711902492643997898813493203339712461952523847622550509823988107674981011003604875315184644359925719955110030133441460423712150197504278717872721741313069700353303476679686953249528715181548961862093178007095394989480641129140137534681129046773813533442847599403794210424965488048928919140440933735521845572346802116104367429899853731687276054510260316986319116396440128602311304725095809546274629351726354749098086067563745909436034555309849520538116450089787412462399819118475677316622087255259533410176959707561985249205955153574426718410325003397517702571031617408411413331914130398145529487073136059455172142814301326645869884928741464000774572541551669794961859245511576753244480204389394773232292185229337057582627798607526134896162860654196878986521118178920130240910064345989765626555636790776831865210872551895293039950172987646074875027138236519608153838375751346397903138540372352139694880037642221697154202517442361413038104593746009761953270253420617405452810861422417256213039587246169657496604703387961673857332251349307956508196285109165565965901172866051236647691538133543224172254511229434199229370777969633502948358432318363109236451188136082159836296195145838625815683270434889205121181227479082057209405928429096767533126544941433897461451165511074436359228759894225520360889932035847941767493681872743308986268593466669303973089816374379367738924346696749449773845982305702247616919341919719112172232552030658252817412297711054660599728012783323810166260148167404230208735273126161911927216770347993496073010725862826225343754413454644659494776456004102821345408749335711249629704787996830972530037533744844385290614546045824805292698242830306033100364990203621101493912807256383474880872242936703145082128988599741952757628963789479010127722282416617721745408193453392235126090003007704632260015901155868906272901441004638700403387861523691699488309001541274679893887703585625651507785531630438286930506130877086173195567081966699660555250561646034204063574061654898840894840210883633470239960873244122578973163706865121784775665165489706263421862392565717997224401212901273979598764466699712485596779733370915632080043672983407441527426093930976214808894125120256223299934118419690949031838945554688695939110684750792900213909931111538040161654708970640526933370389065066335871070696279774245906067653474967010217596146809895188983730249206942107084707012546501575580407046419624228335628260740567380162742406841490549071444499283688003545649613587606889225191179490770990020830939368324661083944002919749800355600978830962399312662824697981047846322030141502077880797625619118559321480264907059049174775473525551159825525239483090969718206634056732179405245519518089087802614694709861293421744894488931273137161198258056415855310959017814394388912122160873565278201409056469982250539147537395996989476487393163975925354210775049346988434655290209070010956339385456558390041556283354778404781932018383227686703860193117599386445049284882846325330750549234019080072750501685203330257232217391162596846499993682117876903916328575924897317266871554136431033218947275574397537790652047828855757526828167624907510091027840489155922888017253258350450787284281618134446896354760931048208353105275415489225090604358790320132010652821578936059389118416676251143604288115877226769966272047484655888512069371449199632647812991562830695136471151656597973804334890697052038788693528659052626212350626917916167079466325710672782964386632569176945874831820925757436659053943179165847531882465014248484027651810050803909652764311202650829448444939507019225529294290685247771319142504628630794282506421908118194109986867667551468616355217020127008514670756582724405626419682766722364915293674879366225975088799458367310031316164289437850003509192402140077280910798125226927298618718659898967069251890342215317943311562495669812011564785375261327853476067863555770331295516067647053813104405111696232883522633356507252985357822522824459669710269195872867711638516431303229463355405185096086071881868711955191433443074660140606299952997816362591549499126784395689295949721835677951555316021979288111709176815199152408041257840061192163362754843092543746318722577086098586429110258521008416748370020907442447837628021143165687276983662331081344826428335430259751467534744314845663788987946464207079542693309100105759342727166924714995459434905134096733859761818658198133304110342725167998171447531385913604518198988178099578935442503280684476939154488289002031054651879360003982835526297309790925632562039946214423197937458973666199742961491828693997905831655039780066709465941238051355416911213188301197402525674931945859079842924251427238746281341383375700301836660529680707043020676350917339973757770676356211720147230535642287818610587063509175757677169426390077241873776366414977806683261459155809720577140257308173401383639876230363251781399593795859605339662904258243362707501829493273849768471448871356997453910521873055775930682166440490993751409777425158993083585831945441673061466236318728642602011596817242711931582487051766233236513481126905284110859419978516932813823676809668029077564933747089678528296223982410894855686000133419968193863306560443182748916665496312657502528421731419936530978279608323763756461839378224760376808139316776331952271636341365686981487141592344658915489378193932108086481845962387584711708832926619993789917530275065450638587369962606870779974687089133352887627927427001676798124270455865198009366984164666681544496866305819640061859065706142038363285937989610496358072693286209596766997703765182168648671968944134728970126157811793720170858353548471292604468122439663697662748163613272657046637683505049276897553137308827200334314930142764043029784775424228935441461480837733979499793899952385846269234470316356924081105978216920228176492356642169472759814481006123096318972471990277603147403821708516472666572503262142918187323467402136155058506596458435068394096337813830175591409929420367506316261017124489444495808115594483837355337687600669142396896157983678767446789843330299197898804367358472610479621006430605601910849343662054433197472936783692280439747295115147662667723659574966251788021466922425280405238082884312670080663051145144488273859027082390507087992061002624363337685953167101564696946380744584391726064893713840469555978633574929639737884803673758309803854554388165816111685555986378648144952070294360896584162091145465560630810057620959018765346075943425497456553318777152733796397782419956640514597948411124808645952073581775114635980189712829571649395775414587129209051854872082221316651934163647321809412832376585476511094664816409237736900943237325798233608402467508584743986601212166222376340436360496904813698927538748976800987982853213175158902532103539896549944837941107110638649231305766166558437900312042071281204215061280253286493695193318757110197038606216969051099729321856739195023414927660626207550481624378586874048898292318254441366447134404396984880723042947391095717586617765844835435901336840533010201865661586917480115844679384545852588813411703807662208626619600346513143488721640657929577848917222739159589935438913072283337767424079266795372375283081295705689120292495587637903346664331409238047168166796554706430468644823778095043026678844444932701589328200855265704337128361580488902498552462096972691706947442137968793035488589018116155715131054165437120695738890025689158785065353968788558542138435672590536477814568281978980848781528053285432759998289473471235347390547687476615205927743776308733430054864237337362907496198206908664758237396843889870296871212410161462827121894956586974326400724495541311465707477230377634919315918733574834793778968348553709301157923433149039617859487557667509083872136477382099653672700358003470556557384690305896888804617485755600504255625420489031282891121584311832591479692951405201922914473875424194325622197450905316683865495244662256358158444716952119518234007318585563799268024945587835034672272661305145527851974757570531446555215547112235114797780830925133336282138252218168067763379926981720946244336445596225986252518954656196018005632224553921784321763418173623764337461383405693989436066282490224084416775164903514653395416574606926040743204257466125844464815426374009720386605514567741334826619625294509967300263674859132565249279190860977653862679152932112275756355220036902574402086410630576244699904621791306140564587914122110998069822853754922374002449533386262911679449306016793932882129270911922677534743056542208726984628520618735903488519114174271480868027968099627330513692706551467867578874005084559779137694234319844978338895030501096341612471537299379154643360214315818149316772482442254332674120333342484868564200608851339287387648179533565170413821601438444359385145563548415539921410111694539976198431106807269987383951187706911886838331608996915412713687459629559399766164666692927112929072602099859503161928162269435845158414597077915261608933721022054910741203889954492690623671101041207446371207082747937169788848145261920909775408042647830233283036771299658969321024174238687195475466180892444102459947014664268886930277632620791721302354462609612976461167891985579371981661457925279893244294029524128337115752579808232099227858988651416836780608744275673966712613626995859571071836258126171518212794101642795502122959843488659303953792683518940451476114509557115872906850522320458361649763766416688695130578593358018664520751337476718944459685985919477105182405425519982148335850042335193323203295518378422463263242833205148889730861852392947977223106477645804536537222442042066016284718018624468476948675785890911591389209956555450677524239398941347641487721185873338581953020597572668912487847871645055172579326349852634453382932603308933241268204584513901959464574074261819048057612177144481837096495942325854560712717203121849616196810466506641984484231562654139749799005533549703841066216960918258727969104201979779443750466874941944525289724184209069257903012384034580113716310531898285261133244373070109007425788170746869003422559818718646318712519959120592763721514047955529547061684757371745386898094016297750469652463798620892424097214493011126527306753310462045449104581778848320389444867243668263982761882019963684939478594362258725297842751925484050024211059925365473647874516930329826345162845046390813210300152698495817900650835586092485923205444279982420018279208983185953864656800714354151114645665278641811752760213040158457404533733428274151513228431285985596423812724751279153956533808538480892983398730974889960926532034447128477690386072314961969085489228116525657649177483578592880385045695542547221310035162103803759342337280877094712813297604406591104955038010100478158598321329488820106215401281976444453163436566626248555363977101183043360445510021227384670316756239714788491818603976847815800502614177800119587777118374755626917746030166608610003264967195939487256307931576392589183584880895397133861258719077818323730696584787007963720135500648173598665367991046528802268953727248397002666384537856064339958958220347016806921265234440041153708962339345859301984353563883861621513450574337905352245414169359430315235778367183857859523594275510728281548680126318331389022009656659868022457944034542164933032353736970247952847337075544705726856596966597070827638443424426177360959675016248379333804413931394547677050838663472614771414729298506397952507542889266028740550795265404419460032581497202080351744910640572272899897501178678976311763478702821316931937652983272599271666675858524131399298553477947681343951526453400914204884433346933038431819656264973272237437250606570420600612179752188757231414231960531605303576102068044758787172577419707109772755886741423891811822965354597775684477016974949469996063301759303147060128249481595690009662653107328582770023202163673268571703804007964579308649180475377219328715934129358891882308871704553563814936869098062485130081938937731565850213646115765527766215824892278963400811848711881061299685056491289565651354009385652030308196878784674739455212228382842824549486611834193324682271938990980719460272106316807221690466689508445495389785241648123867804342366740046078806575994960734033266560754298996754395068095655826861948111521675927241774292788345457697090677278660248796428220412301274668597961501418268775905872071183446967678437681216132341122590653037129857328072895869259913714154408252827643077886658029486431561587156079207087191895280834983681162933620862391852377230700860251783769995723964751666406302578125963620203510684794799033859714567843702925358693038129319867885577038592872567245163460992873878081956876925324934807191810976291931050480749850327369597125295148096683932819184663748574317390379350393130246668966695810092993783675046444319036639633961114116194641302605733549713231577638309956679333228207051894915530940121391297855535413632148454076966549596814609944657885961663877001744418479864513324316524086219552760768828986038057777459879946931144250217401185261028420042565692168084500719315944207474935341984533316032242820848113302106757114591099076405017396377507329726593756192737892945766396417993981722944302681221115990014402915818337873690029871890150999022492954514657005226559597719158506220798853224402089108165779856714974865826944613267729321906141637993641234326392521213432027866012496928576681391462654062214602675281190220494984374842180688891366364801731946213836498044316464821696048890804441559795672456017568179961297144530377991368201401218107258624878181110172809322312143692900567017841066591906300904247565316441211993624051407185664423471675172631940839462719415972188845967685011079362959163234285751894892380808346783206611278531677415742683532211829038471917234070222292578827395298890933062541772658429879618341551611386189798535471742420064129836702460911632606366551919883842260002342687474656476039625045319603101151627824065758375935243883584295022317273428505418174412108916763657722640136327850242724141131766459947009977941469918336792962694564278995461270560891143016640585367916363713481893151281701970122664220358657629614098498518332461876297925307821691167479539925546643415972328443635382869301705572723655605301566962915844767407412594120549346238043069561428761745290419186604780053381413269784481107863521222173729036468682117508447666948875468868207938033357789992080346734211568228866884029923295141249401021130563816339023459439633451761098062097117092764879593348139648298491624789666109616826979437524614749825342140878912704469819302399696118613734203875076175573985925261286951575718634469269835144258164458770662349545431927461353697723046433518166694628931031529246570393346696542612444876399228963720616581138382510950412205905593065036985698566263804249886374995416706745659474808776219287013323210996601393306560065544187455240520800188367085857311019439195714832089064627622190470364850508831235199497166447709375836130239388088641176372628085945139096983350698284766013090269519029552079594640524752322108743725634269550289308306541026093036194996817945689295008042969987265827037833434987587976069638107460616470865953137175696802968833413201249297303725867772944447024690419565994865561997878530668368086381237829329416517190202683327479841273042548248996380245997462984757528035278768626319907868580696721302029513246111933918800819116372129862050023452213013835216664778343960258257718462925742052600312641235811531516643336795774039724455098957721243200748426609538172405657052493665275240595257605186884592854861000729699284732709501043760137996660552070772040549875102015972213892846627543501213296985860450317090956216460759061304611035394812090683564000483499728429396287225537011277112503247951906129142549735461406263306931834074385137296381683341489870228618304152374054453001860796755085624575752259001287580726265919226872542623061385185469840354941947952062979889491255372970717295933148373704508343746213869207275257379222754073960666758601967768284662712114188285229339725284290353786459079635763149438646742806701298277199646619053308369638409814392704073502682930340763298962875737340533142523259280136536519211087114586656689856647781707716809296795285482033432113722966567143574009221957070526598427800972833145139144164904816575848729747156280009589574094626845857947484799993670963164027402556714096249919340412575576703489336277139051406517401324678549863799922695990965057810204751482286304363637216584195225429728554319012892880556598916437199897377067636810649729230845039933197668608742697685108451261516476391408957426755887857881538513056340802545494860228357113346260530415869718325557585639853017502031830883450346817392194995501559789227138540377306700360658954441466312171408544206177770838543512176565624942420820426496008702582392467914172583287287635043835966836712887603661217145599100264583733042053293154008755084453543439003569447544851405588265687283440338348552934337949845715453892345108180294962117474332809354861346238571607521680541998688416529309174225503289383541791538173652940491198888850432642381919315044882641069346415365769715819562857307680515292204788305773387765260574626980051861847850516132968787704224507764458117589067333180206559943984117505447364164754792300889080262195377464814451076797081581410836469652860451995551469085954830772007382934653512628824782215894274562480434324707303544347533631400346954727318092389162318096354683337817947619938353262118430221458474014844602009105879150762456524170439174123969985798403571335669319925831527791729372064222038170342768678800024294056122188956763193003015439134932193754353444593546098483221247358368402142221726196224094809647190219895906664976995852032469117629796306501149932941235520898542078421608556161562207352225307245771230955744616137827055602244917881177812499157245613206327588013150008048028305014278188334190653614623756022077415708160431574766020526253280754909031248549259071358258910358563379829916518476482804192901191648944969206578086543369455341671453489225690913399659510656286419092709712425082856804343073247896538349882456201824589789921971919091175050409765971524622450538261662898799578780991815451724747270036380792867648835129151744261651972029701361733016267865517755115497957920714732159740456188599580927169331103974877337232219502678734959317456654148076985473745792550146925243939711206033825436818693547657900888337469783906619617325305842691734966077064666135995772888994082356817028054414091870943995431762752705167384246246152848223418567862587920061546413364410696283044983233982711392374633917465891978899688522786377791237054212216998621441970437648410208132149468484802181559680771021143365849799331177720770294548891276517231193786186476383515766273343847600837133048178987399821190742753057225061730981470628163134306875544979945290930529458599714751095610995727343330312516761010703542624650015368970938617745300889953282181590758628419863374996536272169851588786433083936437127603696295340033227392273651964871502390957935063238016465233941659178586938162817579595503430463640505496618998048301559906040182918195203683770086707359059610206417525043045474384469982635495260828767839555360841084895964425301988426248739311335890243454487034038941400700535671159913528438354607448038049508312731563746052621503231653828841580500558551637537672218514253609356417152606929503425772557016101132738641504502971067350859594873109621413797489535250453853974749521110071668135209847532609808684981012297399763677230110424696372050286397744334095541994388419878466294000474227298725138561221806328666376037327943600917487471815872719868227960330540957083079513616228986753016094651045000349720668149929368858048734636112846737894183650150400443522000027898237600192761528274726394147067135641452645208145683535605606081965721520650699092391444133890093228761020985846132401698490257404162180732443059152427790636922163611688587440433737194010522150186788348714059251941505921629340391269902170251189109716000201364645735705794593895387902326658602471982139591319638628267938678863894622997511466996149551292029785634851233172559046452546118982007704529545420219406170291696603141952426755688121283156887150649993288011665391282646195547606720994602006799955534390634453753265450474329723559529916898343194218911429880846526878798365171770348089083621087548045366094857702102209658039409519006500902195544197253620249176474183641667482487192166194848967266406936774148187372968305813533491327657375638976579594918842838134249896425915691307222229289140275861099222208433833358955954869577298197420789663135091688535373678925458870791260222418960854204958732660171201951640602964901495249682565781663672269317397138672995002126198399136459097760451716285219955763709003473702785931616546751418889022191786666806828147681203108426018213056968944053101680881782434676301430020353061343810707983573305130651390292391125758337254366959551865128322266375943973545278152297501747574981438262889840139098465967080010496922431967213971837594699607432866957283971848402074899194299124996374086183465337281111980786116967915474185780117628207656771790703524156651392582142435092858092658203342704354177155917166642184848678471869546258913780117519635437970476300416109390201889129442097873479868519211569280416571686502601069038367019791891123392536703066116822802169465805386118344830619514638935391818145058217947700414735011863944608975634910110347486374579033462071300340034318484106410788179349575509182205864120148461512915556691730575932033955118708514917451025262514121845410485456327700353105578657427529848023688940953404137155720396475342718350069083918019508016472062124552195370819264753927205856553019983530565172180246026880510306254739235911714155350260079990472402964097220053525566973049440343814753400259747900931761957004356054590516030101529996237457150156549593174935127284255252106699180650070045513598863123313722897449764649107932967783797135875861572560647431173627131117004975172335619863787373127727942302865508153176799106067766990785294644659572954946852514449231475995199754517638269448931092165870452885055436474884085408965685670929124847535888126762000910672560890872918636456762807042964913791133409439614983787941447778330225427460978140508902544226817493257954439667925852308728130276663712177617860317607277581053486832979266414467322498963383855477159171319928078842362608038568326480986567158915899928055380036327588334393704458401146283194623475466209339446261040248964160782906208220601294324270723342045102081416278689886786082002268949917382417719526960276557517932593406539609722525302748838075909928386285033058228537330928940298512511539637197840770364566922705686654496474372997133807225961920754171019754461032549050741646530840382546327721395688972326052845962382609340502076314435662397332341050207230969658394294633426393945820123607549952081610534176720442060523871344930670686253975430385449761759066256115810322234159086345999512286917726418070447053720375480030423636276205040447456239548183598628848098150611983648035626788244420738743314292119992293833202069657144404315723105282810212805189647546664002455910850403488962855353188635015695087243563626383030867673019599993747175515309031689843083884490769862820741489266984834962263374712537749416172162719348816405494638464893416089549254721502143139248404400453221483589090174174913909461892904280865106794863101254828596666757881444224804187132443350399629293727284785648766760189424906595763564803305480142889018008489001587151105438936192943971790285235067317275221340126934815317064938347929291924177047164279913684956374678772798038880824164107446086471271354577134711674047103174648985818435496326783792706667367715999364035345616039448998650149107090903831882945739398514187028262943599644897372978559829922265848911153325143311035447943772333547954633463030525095548936330496763390454644876738779443210051365266291441429897969599882851325320264080692831646481844094022166499286965218659096267441591001503016571883065071494286022767287421546098287927449388055420056434779931917092033187977937077987806654914297765721157214352147514524004924232052328293647292874995814887966904812160459025914860152503964406940779694150524051394687091875741942359091748889962719970583201935539403557959296365684160275815329560391704214533663443726821640177914889094301785678317930686162999696754618245490116456808929374914117405041649843233785448663844602554479315161215870678029893326978446572829297157827658948703110718843048787714112815874981285466325831659272720493962004977227505381227863892918233702403484704784065913250551215084921123897611102014228259775733742926875198928510481103389566080265383783951912287496524095558949668667369095168074820704385834976457120122898556137149464661604417515780125421391157951470554523730355274281656286272336393939910050004106988166904066760972069672722886651795710288759553269658543838034739268426403164231004429983062024252050301528277428698871690371929830855978880909304042771156989916559392749733565233686378123720310600813609732248931111473870382038602660547884662119565238850397884056587769909106096344672115621905260565128440937114389351367346957269848149971608065355752562227771059363077180620015892235680001034964888269328408360947302761114510054684906375569649858491756469099769251399212864856012894318647928567535907657717135827114409778805647619343748923981869998489773357930454593174512502793574189065359539220035912581472333924211409997593187592761887346601926668142498386522381706865393926056507820981899610166912311855311611168179428189448243814488865614344289493726979088544904372955196579287884716113566667113650102632360634038412216716162933095015404166706017311818539760695976277236191983712226697265959142103030354936654081721053440229014706682251590647463672033907284674521767248002438362262775609066604116803948119007710444679479699327718931760002294581744274569224590989743649298540331341157219176683336133200271659806495812599648010218044359009693224290354098394732200555798246075039292738536550103798681709492812473336912617405164088385469517042413100151597242432206926467133233407248722478879379637394883753681940284902642726002153453325975149899595027065234808801172654968068345403467144674999756592120905939475666569147434631560119398075290733343007520667140658026188925875009435627568671530983897109917836486061442172543487874796504178185431315398838139395761797474018881633301717886904895473525742826336948064316188056990049534063364764055152238353914669223480029065719237542263170214568562305034984048730347144738763549355879726569735242722621005839373375777959725744674558520133386842500145044430207561553767139388187889509567281211784694030118219280646120120824554875171122318552676552828737189461809276407491724305785806884996294971315352033972728380596138862696612474356376725830530536104163461921756948329191479468578356884298012607877698899822763262325387475295783746656590698766025374617724655286618119835155090685460144576601497841004376632063417581594180875049275987885914606726377894911391224145402721367864292469295266377222238767518323116076412493880501527509769610590826344867380268846218193462847712784248014512550986629185086568293190130722962707021792596651759502776393895587558185988667822492705454767997245152298046069757883170424747970026971815628310138861514490585102240000478690245632835782369679657803767196552388526597789486430631814477057493403423121411552587346893219005462537090477526790134240972020711268917152835448855668293639463281870208851088984637738400642377268074382598589707706516899638143434857451404611757653140889440537444874453317173537843415662633621336285721432938427094117580885966809517048443088349670940441357793907112587476326068605145141776135344196407122031684865398658862244702962453935126853906760582182188542306615423416481402818659921195887601450391529394124918784109773401715749662749455210511072719341053454879153436533374209732647138770150222520395569949679925155326202523837053311115983675131004115408087397869382269858031613915466549652975589963938075186820213225021533639913592346174255764866046637694494588716044111363474377303847449471408544384571366461920996524992509199482448414113901326131017876057161008867229073317185532543831245536202040860398772088042115093191566952770651098828013632043980896594825078065600250075005282406340002459168179457561726241284914545007869952727103450355857760181623630915709890074429928032097864292248226051720933947368166437713463785238211047201919205628137736866267254604620967195400964075946989827615055392554487991194659787207608443638738898977841881514860332479630573808549066768238080303202888578651170573042700794635224073075868389661668115061394490912300309596563223734009950308015371192424668772817436432401956510355608447312858543210985863137072173741687106515573450233712709863501510737121661823957611733364839959785558806159513351567203765794982467917652542376389238422309614785606244759443917343285929061629895972409227950387695178521653901150026692363527219600663021172039733824054870115140617154995143396219225526349520566011005138662327007342162207806511426958035874811679871326131415176716902755596458514365643799323073158860493204417978136238981486490989716946341619788217213843783455180000212422772414061275100713642973305075416875760858715659088908274942443665674412469916935931858598449081681470260077918432879159990398123863119798771503148269022884149130313306338522015659362081722231727959922897737740904880882192019907950320459807707816026912219340677799653161469140535218902433707427136616899285314761093468503671016654071515980053485961563065097623367311851202588404312409555989386456661946991910749117043985398405033402918384197205314623782791278886286956901149075676499946856132012053890193226236164827003855102523636088970604604294927084117093980130832160307176783270198674244463353881921969890131436904997859811053967935029549761175384630450405059620536534748353491123769437266209040703696167847803696836498881812910390773130195692852107783970102789520883895971182393520624351690689543459263387117771287200349874319111587723228660949488612123501849660540490493701922590636851816233620816727986476899549955108181181109866260497207622994894480209079446476849467863885615211343234128920157078234715252087146955800014490205096611670234942444860978707497558558937789766115807896795536914932663911528096867476699435127684326143532000962568051061536749403539748580351945503144891818291441073085842454375871029490481482243795009274378335216081116452676713822584615344635036354195768397452241554802115894491370002788486269327615976512704919677255728332549973482885891001838484820418748283854531467707548238296668400208715411635974208171653314214717081148967177870347114408152972441225846241417303169668507422340539807979429660216074294192342483780885828661217972867069610353812248593102697664198948567796501894785142554433740653233896113909903669365799085652506987184344418579964000600179511192998395322737759384914808258988680214521462105653921011053703369635368763817884301462949812386855300631074414358373132141264750136598457059224089090729384709539802778685611200191345085189997871061552314426744283224821570496629970529935588731001920499775889098169688104217301857467485541368895931243780929262987216490685683996581751179644291261860148239246390518769098873694100606143563798176651024314295822153520839068368156284188413067482043262585270098428327292156708151631201047322239848460271148288886099653065702335079087563374711468379737292892383697385660869743478319291727845847050645479822511140065032888569347440936039650962336175187451723155162373679969140424026945730359835011228326080193425256552999315718639178766472753876934013284951179580802519390261973906735168747904730387291089298212435391447386760534713120026148945974555246318361496950724033559317665219355021453362488751808779228257633923941209627197517633417394152096820051557974632895508094105697247173080391505532347019253582390853975361119459152765065150581934068797861894756054228160666693131358589813064348637836862918225053971751830272529095499789817513044618124341466282064821949020831577898731027503578450973013585717286247920972739875004833694926522641136504034265274676007333890315002390789791304030389701462557937169039594371728172007083205185702511728961605173857768505828035080990435345102088089619062006876116141097692700898529662875393900243582364383696385257634207649450375014159821383254815439613706644674511418152313385186566534590081244028211579601931964411051819937521515944731437885649435690939911265601865268008350473047901002333470429641010491213150681229848066582854381333262657842799201905915411751633713808461063423321185614311324091296895770973714106203690656441269226969436498552447814250950923900809412584304674766300832482759334519665023527863126463849943710765351292684946837170861180119206081379357592815272873742356261931129153594155446563553889197022709343896400241839768240412305835391744111840758326741184295531198618174935922986146630644362218193488726702355451067088406937374392080215155376287121845232094261025622606368695417004725191840849213164026900167287566149360672131295377469711407703015512580086486494214001431034560362541663500964489908121791609818087150715440688295329786532757324382068715991500454020107125569851824494608442604492204174089937837182231917292852257207328007543275117525744370558616767348102286495039370323663011662245111814924293922769297486006120240458061651742202268028334930019018060409211203428061343304499911965202304578707643618031921492017071813116707433857247431882279015609385843708455332158942270594423688712832506784858979402674309321254038748368699572117231394140236730548246905071759680837621669022037547183459125226880252315988272561290566200133295950942771325427842766924149212362939039927695207462320373395555142725965340759207332465454905537471991111953276428940738649657724711743848738866461637293153340729291100270748429905001278033176470371950188924113565016924598157425389084201292728492911647201285623899726740977111644776420927737753102499447234529613883791528099938600341664158822297917281766155146771857156885009782024730917064400518844208108686424260617918300818327920373625277546834392702490435470564267556421785004553798880714259425743305487683158576940855829681262200384934692678077763231909372968280816028494206234271093252900958268230888991146256028399677802295769031570839083807958135953773333842980552696113089372429577075039412879650607299515349184282969338681059265092324075464787783999750070849518596385205362966685443103490585335349726438639170932853590898974221181877947093270895072569737951949006234981921702763577328677225981274873919845911320258729846502424941970832781338516943015373580172499919093106328180940614311210526579255660492785777833126823357657905075914972471421970046053826549628399690161482483383548655400942245541833410075487343845990426161657273753365479982957664389235871783700302351829635097114884081751432461884658951631069941277187784246529985708052716972891214489372442976903429027313815267885825212169543954672784181129057393281939963867268874617461549231622417901807335172443390709417383986213052744308871862076623606970526956381447697397885651518275461801360899090670939860719546442845847310375601756670771574098131840691243992562417235587426836444844755983284826808569351438294401640891254670799620036954275154458940399609156136791584259264719456030944184777642790461680500313926210480813030571063130833855422988875332626997531226173895200499204783106123437683563214381501858066705639770740606666333288053102889209484144936102692244495743057190220985385028988697783397782145902095090591141479750178890508455564359648296602222803980645673122351311813987965416013106158470662237958594119692138398081241330921977510132880952880321335124801223680968046833294791452580244365580302612509099948721511435309119404822716547820647460162465325980914592794736420026217337214219210234887667568769313556107272043356578526443615657951437564686298274577920855312220971378722116097780521638245041869029133413654963195236770034730693953738018207911566897378189407467897362837796691746845549560128204314556554939013587877471955165367628179570851867642411232078921722885157046455080264308058811298348984769565007515105547123335979553940026977357830502472331724557722715842032496432486622246108461037377123126500109124527114248605704398830889797756555569067445674768577753568564900179950461664744138831529426216318001852256159744438077611211055209191751468735029227254616451605479396439796556784344949951777523785784372548474075544030683079682894907603060836404669898820477340187710209798607972219226601472708922319380674724873291966531111868005184699389285145146223475426857440044416669591897208617122862357768965954397712890083816924659176572869537365506031568409200083325018725618720770419018612167473678867688599403601238597741559177529269962890899535938235205921452365033507101158802875310227779087344952018557172385668365846122930235521830854964426382620023852268989267389111699143137492634233648707849977405394245471983381940973691715766104716098303470331257043767803780644313603867941555248673082348396957349045029070714709474898186311820049515618428818628211638078287753404897345239180294805911886427637496558031261298499831840570446507916315104325865136883535646443350166925307270678127415279788249510091097485614446829894010191368225274189982977957473757718973680482274538608272942859297330710756418015744273392137897035843496743389154165722040687164163154990600728116933399841996727468104723393694829117259512109536903310074465774195731637550550105623495880784333924632799988595360778277523120739075994676220468523504562572210837303424818092543541872762216971094884469946441072374568985499009076642956937424201689982701755047409146175178286457760680695707496537772533360691662433167926271601827762130661644363470238482408681899011177114052805272143105610016259028443018505928906559546212121244869320328540883719954502162917946641586295458668602147680614198460830617491440398206104559082489658430706120772300940868669460903655841025989484022881500647243564990627567790746034734377186468390346878793788162473117181677348716623024812349093783384124186337887506782594310851839159758708069921299367880847119467375934613054084168973250647138970317118625596019035591988933524309200497052008677586443226652728776141682106264310316191154357756657592140038734980502105205605485701720737899771930314807783570873158408033615809365746170560247806351145549162291510167350848332547208390733718645670812592174987347853039121142895547882301276159501925646510232738975195459711465528907700573081883250476694960429584005745644725303073999731800727179775062141111298520457135909898952833139327989581566037327749526379332094027010314884577558098558100884826626611321486104373131149316133145199896519700418258321052892952441015430815302445417656287510821977089229354569705152786402238523499516531927952032502606955871584797621937625253384649441170526775649250916308330667143022973897759372163190731107573622916431138446216953066045277758447272461556826860660580631097908228526594611633640147476345956547070710820100219046744234689551715597848453180649220437303249493731009516220054465279077800053545884388778826816416240396760648267926867727599120823285260663813376340496838464407711708410060893404338861361103759323925141240687610387250684221825057702161989291423436083784667191250800222527984315570543260144053674813462706106844882446505086268547525168499877476382732852719586759899782483568296017535048972762572814261089309228479211278358130280523521524856397353761241229482758539226018004379691130958766077848323426148686966503230033207450278315599318040717907776457003972871083955716816468084998087377256105385870325079784819920217178800720585294290885279217591938384025468280733753098541206918426729121532438328723878257258586510842628836342311570107463667874830086621871509271567216750518834576913392882016443877671493492555290854794372827738801874295871523878335513851101450785286151261415191335811578436585032294374105351674493122333888908863872425806427101873059913969510307231860221486665283482512222390587398134194155245515351969388613824032343808334783494359094519620716829780536333667462746447686248939933333651213267441212585791823282349990583580472601681096797555113315197479495514630868450608405540795736776881963720391813044388323380314232628404839477370846990874061021715840090725749211319547375126719492787684694897841922975575371400832072341242173525331301567186006014385703009939791852918278908936293377391674143459273344165240326152755597708718656015047677723509445428195143504753309008410885863980819944588647489907546819800585005224600526540589799650189188727726100398583079716379132783602547524387117194062544711446578239429845322551160582134474611286916981164689972018510448581698915447533886622291886401843049488319523260820014321464699166650133787775552917281106160595121779450065057475881443860227118000232331591223628998774902211766090610142664481618484633671620181336586971639255517832700286838840071952622375096359002674580184570798416035738269716996457071790028385497238987555624951268608762250940432685935384170057586756828555075666637836213992303113066302018712004226185349816506750166214574551803297578672871263752854278527756010709080251910982130378236163188269904321079662253692756247083920730114230257164056042854645481496681089392363548698743260828917470983059647323786250058863230343490706140677688266121572866094572788846437861501532915161753134195407362750463650864603782672139534961959037258321627799076666816795974687957557871116028232571108428748340688440898906994794044027366167300057537153226231742653107017597589557396474618322708120118544526446039730699958676503641755582113063734070188959569018497226531014766804415375748005183456810293920113452033963170187080586513472831876613743767321496161694473664747932070134596992794711544460108126502803555487366774101830892547261951175839012625464792886494875168225593255008176107911327696315636496255151276822806231326081351762457995891760018075727756153886345853729167938286551867627595715550287211540989324676126348895200098460346454160955059490524463757444598863751164051122930148394310649133858499808771190245506354997817925553733995362316230963236409318701547769184506359365628364331644974225859254583414943483357728703296314009650490550767683336533786214029912344450988132202714166160378478151023453753756253660232208471080007723513439964806765319431363617388310393160165036093172274462843439608076580958770463352559343915731133654879170398676806472022691758031212782473162193147870527275949137458511046638661505625889047350641808959142952844391331690075793327657527371753889903815630041612426296582376933032223668646659732846557435689167436195618892341560097782391769511179332715815308465052005017702776001430830654941554113213188146034259128933846923335521749571067696859156058533838129318545258351643193528633853679548794999556955767600913935877000630046084897902988303342002052812388480239451657438102884525961702416130047715773612495568965162473087695573785874623057808920207375661444631744776789445922535712546826989430122262918929823022407716363717731590709648167232748922074962235414415228581026029593845860884819988394724723704097793999688318223732020088789287445165900763515209172920635972919519319226606582950161983723520768278212184733613806846600268643767181763056511664108747146416624382856054669037431352706732580447611988350528460545842433705519420035412628301506826778638894414093833042866468470348056147432114503576720524370690845969544231219510226863781060036347120638527244750352399377040274738619856835086884170103578150709142055830375109783178277237491479864450975962276685388290560739005995119824928838807541376606735371365875279850076807441511105620362683109807329942401079243673284321365272646055170235269308240337063580404134237723935206823799891311816934579749106669221339990080507101979300697455303404193539564442200616999638955989491745941659751711647746922781659954654874526404735649638406128070987065504633757439245216457353707606988402151171776184524154735414436357064234388931869738339756093761995983747851001737610778056904272032808626917842271042745460381006452782935465839073349425910049811347768445588448811687647451690061190418410264599976105440098965944765215403257418079089921137654416671974436842828339330503500981386004773557996266884217671518535584050924978590747840526269016619292473406760063074808983689279433540602976888401346775409944231005274022977899187034467962687365012224599160841838614363895359448961024602716530444136153154168224734570923378889295346836571338612604377184965128953660981910444927826053574171998012359776834903945660702462581767023611720721909833806836085065748038376863208413928989591724402275713722463869706797079641680435374719015913101962116587071244429798409127711009697820668137495766659226443446003029459450262603675484186273388828254768418069456247229662770494010743924992903046099303958908780662001680944721450944878795081604640135778366666937540815955840012729237149490123545291620560400579478726745943241005329382967962912739539992201499730022414889919036970873003449989071496207180459904959458111520449505500895169405439495035093871576936810676792613238542369158662615799111023483187096713567562089221137632894515894144286137119470176756983869838419144594186585834641895070790832588390863390715598094473581593835169346320357429111105444141662133526259813147665773455822910473594224200748561464822150574910056425920327969827310845155897544402615964479448082975239556561858197689494880506431812325057056878398940728013789970285331180138576196180715690444761477336017805782970038839003573492964817910985858362495926512587514405024013053501791583815711538368139580521115662773307606845741574335223820555578024062116648329608757941955733351067250675988754157127126260426244662353450066546868744827712642954546886728076601134520015632829799252510280188975858300547126927298904858274042505055917259300513360184913247270726478782631567519127850572396421013859949604727165705610908967864378789144168924672558229784332947453994588939326678173898725485040388834358164272652538786117193346400310888654326948902727301417655225531691939085842978243993016338223872537775694571779595584483180412896512692370236776062412621153049520308821201381383413793284376449794311006600667244283000550111373723141869041418204067454839305805164907514256610062824300972374169624476408333404406824379933940372405413684951590304284909469147556590115402663475829336702970692646627976461290809198902341868189911544130464013522379235632322566274535638546897167015261165411243072245588021112388654531536648787609082209839579325829810152221738325656249061560104065781415285576590811096389027100467528767777232172307857037372376995914057423869852517218591190684898366043309817852196486282532067602712100269304516515208228969564529500546357206287486227873549891736846673041710207270589415488342681975554627357070279989677762167309449106431851891726976916031532281127359799937629759834966270516709024920489669085429297734633924846416624151781248038072076761598816581362203139202850367424931184258826655620919939393934394786206069660353874987696838376118669896053207222324182579737028251864517703209991166244057362801790111871992442774988388708287896755169419922267318186491681822323645806121008675542466557102724788643327980024847507795460085483137265598525890696954991966709053211884890074189973502235609146435877009657848301078197923252069203214236665414977197262205802010750829149087276658268345247658021368311190445911817446101860461103405832003537080006445199631316603521414544405364573731924434289989443146507998325335930172870503034075575724903775130440763588516544566194800839550448197036925791939385256002381218781138047254815752447868479856564867502216858135547994754381488976401437951031758069553322252662698741486849239210505906769503236368002176093492992369843794027717663626825341505483972819139781952202054408200843443700479563982272908763909253220738846179334676363546321417635489867397873598343219789629184248983381828033060742068712255336503166034084105842532118313633971271073709022915707764773914721364531334345847878311113388328025130121392602609843784641954194735229511631624327026478000547776232426051921740509496011346113999371132817379717960658577846192732480621780559847545031021148170545034741386834680521127006007828128319416210263777176818078861305955958342377232543892639319665096840885574983574372781352946983792964876068717335243094913993659099832029882324922162884032895859672239993161420509202187834013642305372676479967357096518346228959458058694401391524621810876815310675920921849671366358465506400054618514039810244759509609081083063306867521402219522914982353391564838542323885274021032718695361191803684845774948450019901469835630491673457698369735370467654573271984331445653833666893699302554795758269222552154844848545597004783302493479522655325853806755560488601703300295108055712500804553977103518304713259691771412713222053917300071348840551503092525687267916794368212706302170052279372920280298934156359913628731283244429611042888858179731582677084435054755240800860429319683832635317612994220159683889053744241509643222080276502725904944814897828550462848026787993302131444382559961114059736596373389279244948769930496180595292398275011661117629002853136950205521376676791132887345276296925017522081379964268589816505693894289435588404936448549066453750875061672041244038573894115366003598356179145512310814979590877588264526944900869185634271923986402460767770591479897985761998049537884602613526090112079413530056018018973981565149217737231575813733710499208637872617647791743060806584297729756633493173498493896939975156945103110981151795424619263281991203785740757226226036637602566729418212142481523322171859574621945164894149755536138651203695549275967576760504410213580059631603363654527969818072341038695750707674848089042627986567552316302158601523947251118133943275551326949503967053570953038795411838557046290937315660172768620954123281354640977902015393158423621690810635407392994297380122707876173325551798272955601054611725216172272748647333524089271897089331915746527574286498058363898740058045736763284743296632676342247008569749083141219776698153328147829225183839251729813117277938014255887324462857098815162702926432580137778211732939336218460880506474252166875000142144685909434492062981617267511809963351596079337103779118090347490261267743437083077569882495643921532805765680831546606512163520393770071246741392674552679884804432855407569887230677830934426798820450855154628612885295040325282544045271261315247936550520585799994096279953111199360035029439462877890992703764732302609787955156308283161463515951312042482396530422604725497745289083275614938964244850264843804036504125238407239419205096211969113899554013172932518363272663052969567926168193956080658205059615581659255708791801560077719776939899530650538392961399710867810849455493368868597379011555763422828654017035153876574505515851231699090988931317101810259532102603944258301921567704788202479624343495499475598315493636406231886935524566274944691686606211240048526311562491031226881091053339571602832192778596902943737724465472635131742220765510207120996662738436899478939802485835292167438489023099185852701701911800838384921288072357926135858694288692860411351447983461914407682786541880872916414412419617161033562293186632675912725358168690082762200456730004409348432610257689365244530832905168306706051210060895076363842031285284143034593091720922735101267698967450196819664821538439092338805170977371591783674461611972736415991654919725680867436952697482791987500548737441010563445376453979938560321195516982071444432249564222591349112090186175508364648205415650194280637087750356830949573592907751189809584662148703294606612858736155093061483417423705605712370741282334640345895419848365045805498119455692124225612914073504190289784635403803748386240637082236486317503824849027334148700186962996080049903304132676983948519774346166944891758704323629409718786093367235329267964389653755809911847221086344624656667319840770499426069289084859760366210832816498908818556621056516957021118138238896757834077791581936627284198217482015431906715003062035816590180635359071325605168670327433961739927492714715142122951123750246326313434985474950072579939586482177176837537172468603616009542493509179853049839754934422426954518658185604497087197845158597442418363741172611637021308035805274625690172954922210711666148854665688362354146367144052543230925143885151711395419285986321450850756540644674837553565747712794696491203638259716074569954023899977009529730515609311443291346131250509197997375303420299561811426418676583226891640623603577275667281713833137631392376917170642323109950453386564064371586016185725626559880382473737554197585061546246293493167634560227066774979325905824795423597340335807543482966556650524027916552337248913655334582848400194865625433197217659139744048008660784891648295362317534368966540367556257664315817218667753912031419219957445864035494815289170028018060010090886309497125779748781535161186881373946309221841739136422309875783319610890787618429827053739093682341133261673397169186359727242140312709355066083883472390885276817471878970242641884510224279467882186855949843174077788666784625898476546102399194407366466962331153085006548710451615609834533261521725121269112179015581555707403259856828359091957735994791694882807029939736339880401341640334590998021384016727321276912276534894482515332528762020873138092764225783031844072556913327518081664894970806554251828640338546125605059060229673911017133836080842536777754761679286350984126717381814942268144490400407585461954492363535355883446281151709939018922799134759764881019940955998050329755738571883941705469706425660303325706200942133377858068280574683346241670754949305230528140731412309131010758006371642995752897944238479623451849670433289406248475226745771871912738912101923988433724015855322813581292301610690508169342717606359942101476732312517424921908910148008873129917101254401804051184785278326775247528246497724007930442636962993021090418098058634982522567540678887305211766244516658632799298846846408422396580058468705718804463483019708350975934216229026894727644557056402978289814288086897108195692527515415677281626062915135269365618033259631243754753616154522116007607808329246556315627779564097175438719053906420559315101721336741446064441259324513080489090232034723261874191315500124113942646137079247742243037804819896509150281497193094825199361302649818563782646238285800614975881712735372277514612995579790554939914625575227308812201528902685000461202705344770863495918875850006303301407775814831555486548674986063941165503737346609135187274028194304523837880266232332062333359800298256133845359767830095851182120797582027240790683486435081594249634999438920839628727186773734003347582743665618745397534032277069173870378048937615190684937604613991179878186789370098832992912425051132953700235861204420564723356123284689839850581535824090322668682595054205187388777660296262142675031626015017118954103880224126276814776710608242140448949525829475679313667751363731205205470329892462537796577815286900708090696420924019363091584511112406857379540675048165542882490133170536638424571306622462217967519938760075888588427804743828515085054812755830911686465578785929073323659805513189597565353337933219512772619290768860700333561065088829907536765548770396727571279632698237495792312281290964738517720035671475412492851448660848475154616615582636161052113467738299094881937106208923040666447261148652850863938191659533597064222687713853560815311196577136391701056386783484900798284844654888488498493800374569164017865506198962730935652023107027278822156896145816578028992826163469785269300498096896007639635552930058411998850435218978265193012223199372685131290253619914681168936569956606874371312032681719136917109403677231162046781058832819489680910484459922564353328774111900878665857153560146378243826522795112781376705607021174613176116364084489526688996902300561190981186993209027221819933062891993641787198460702656386123459352789255659812862551363426631461657031016550520495733237912790382233402642262110207275941028954121140226243560551173118259737951942916618373576121591327796967077314181971782389667889625176834911806171720091444779357016078533969390358269293711124652774278625473467758884128853605003695208156076401578444666825117861155896146105207558569234440816353769114143304668002240279046909908643586394461342871858828910780951612182100816535297938869213566590108213123146956261668224753712019613983185032766182719144723779185126923635615950391051676891550957627588479566752600738217110882136860337804561272807859776899862378138079692344756355233711246620902492305606494710393162436722277201203927344910766668292883978112111746855241210985899347020790890211649480303526128893782355727274055452259838064244490661534578693820216107412979819508787917387909133203170077428889831553315380814523797852958221954733067207373672360347811151241786599425554667925791157692695454254636633351575355013660629984032001123849773386395671281697738948178871825718982760661079682616008787800194133066443431848128992077213192774344573129141519063657699542657597954786099244582790192307322671246232712794780535573679767392434325458534187729800565430328686270826311835136763444520917887531618980033940297173164179877513959935478451520527086551363008990914766715997412217879497288432076310021907355121369453711891311637309445200747004133451611543281427899524168325634347641950916746699404313048615416710025265896576384821313180555864476267073437182119593123426498757256701379546922070242308748796960048758787117762485741236371102514588942180675695191873526908729365265027395574377769775287413907346790158775359995750228623600774077892463280046586963215283714763687682406000987749592330186268509379207091700307637684710251423098494180487730900542592515259252555395190286493039739056543343006617271210007776490966041726454238357545562477690563731478247206705816212182241225932571360167391905386885145796683263636628615580623444223738259824119712148756146242458359011448816672552089045942647012173659870888181230551029661771557275630804948983614508576339250728041310077819171116855755721264881058150064712890011820156313434853059350452308118447581897044769641656176622953486540228522370506050147848790714156984766205682680258015085025503026462473586157896946051271437377924136522791309965987939369924547321886327940738930416952650800845475833087956673838609224932402511593959307004586875037804471777985997324599327658846152236271799518885084355007733582310689274546735534528516729765860285629186251626948909518603702183824339209057409042974811640556666252644918726601631612822235797203532904050996928880076859627951928862412274579404552862567446057829707774090433875680507879420439090119265145356274949533073248987202583311736683636251833227134099634026882426459659397465167828264734226270008672121208336482956119964628883259997371413062552635123295930082765253396917625800807141953706736902236953805519457771867776539711730156056562944285713513306329758716321166561299770963364700169046280709369671523112719641177066752622702003413832775132026307228994011367615812975799460387493449478067904498537376481618161135233154067150609011255200769046937374395248170992425382041676211634552287629278544116059066360681409834598736041369475212760100629267611490096966421510340626075819987294045264244022482910440873702062231897420556946140529071189486757040079752581102465266017145683060887660840281340290226758563705799546275860988898810927141159075675796188422843028748016349540580236311603365855130581717826288255887095828317404296702750845265905002173855862571771272951216564216179401813870316218566619735710994971723194813260591058923182510354939535938985187703022055852233455040289582842172335031359871981323135535732527492306187510077025842030874266407271599592478850463294271830603098277767198273224029104894481649312471294990812497229300391343138411988461561930950212068773373969999891126287127100701770819053825073516115416091134666827898615151161111532274782495683971842946576540742747449510878415691360525075363428018051439513380459437564433525603856498972123051830550980941985394432237888716665198384933554694483344624593513338634912799238434768209141386140031427423537932436140449274159522607400610136016481443384354262196305740192309161004013524530146695235640644054056308421031161114267406799315165471420902114794796185486126797117270441621012937542475587932325219622450683732006401009672221165691072895963235286611133527398273364028232187842356338264324463202789417265072535650994473101062332460533685560759024475135086859350782350097877539918073282128061046855115952472733328723273403072942066159981589873470547714730887758857066447750220303152273184225496179251433626934075215482543980534692176669607579864880275135987229576478126355800061877163355481165847413124578462596163407363722528815746721578436846838105494498545046843954499763964192733938627902691390327795307818425043826154046929153117327451509697659177910141840902350007949449548529624579903654070639224108992850240084382185731516421552347313465141292557843756203261808380805274034964036866604211488919272391441126862125947850526454351459663741525066329714554506630187627882973891134192092476726927064503377132748953939361158273747295549275700708924694738765309085018378207885890624118431587212658954017121634227483207544787692086659687292720476421420269204920826115647363931503668245623658906524956128935838905947168968954571283516239794469136784568072270810443765197311005992801202514509797414673641064725813266534552955875431222760926028823377684405413009310247582282390006944685089536689536740158365000145443564252075331877704917123449223491628975088735905822405463291914837034442218271905151940468404865080000479751425598539661894819076952283452410635452167722775579669161674542378115274682363521705834173451804516741599572515524070776223868750018895252454546713761959388556374055415998615070497833650347248683087740623832112754470234239485119773221305534816320011604186299207739687117437482003939593185400421833833733833922751773122728515633749618995735599693784362764172069299271398104759550669098610332236123560302932422743938051338749573594012839669007562264182526714987158763746640310571489791399156771628570919572727233012780102775656146325854528229186988903858757069798622704009784434539714225798338955524295326401070982012102755707856756681927460509453450961740236372126143551166311687954356843360186364502934772248360355470646124792563314172239869735445716409095442801456611349744612143467372820656493181532267960529752081473937549957518444483949097734145460873178028488508225893431303695948269303187931091875360442445377553874605917643728400321503859163172004212972383587312458293512743647769089509323380811327043682633337586720913951221567181956744709736762309623772374824256108370753823728448612157492822568223852596602083894900039479292170855763892363021987746145745716754226149094284085567439092298422323465996689628132047146853058532052236250463006478477833143034297686638597677245580389516312527813541655915270476194986134779829714669628523840910205351325034981160458336946188960326509370468058374143576161429912301920638733402612069090539680476581880590322507645859398569960343437949522107878405743531235259532927599251571428872996036844807522677595521496740933539547925403705366844930293686383350484690507129973914274954802528086644134341983645100786401828041749149291955117868257620756032172776549953519114730822762429578231638343335813985311670754408735319063901498505883774723787865688151621888260042901016757618362900639947443091374189309326095400746128795058790378518045367576951824060671521939161423150944604002748153667931865224590605182279424136279183745264519981202009265866467144390089587757788674897530144488700662960278512168042135398310302538100355316041287014021704306836685666844668835799085879872369262323126418584046947742451793807302948623555662108844431399366445077288728351816516012680379500941548578115278294794382845815789907376038913307888206410220769363806747900845708758494514451591539705313102707158576883569064725910569205054557986286290977919237631232695644935436605239586617666167644539347745628468793767159638708492683359214804502457189904761808738746876628475603099883785779161062062699003682543763290158295740368486766510410384090072325395579480886366302536999275370195473049590479604023578532332681106880867957606111951354465413783591182056087496120356937834061938051264030465942055690719723935215336322567993216301968285893622016299609947444619107051364691824721543003114511122862424399723428025497964298947547438456949690202521998604716179890418444316068097053398625863601467457755625909044648457905989232156781815563569697575611063483332349991733864629976389754280987751138533320360811604381755965995898960674519488356665468435446645216259034214155870451908941652910924135439154096459959938518388694335106749177484379300002344246283124905286698017886297908503599201632844050149986392462560249118161749447405793043293467104733357380922392640772403604417798645351423742918035817367133425531735550587373783506468196638473793487226639816610431827524201161192966924790797388147502286282407842187563878283921562878333920030015149644474276859583402156704240159291171497175600526748464743728856796076432397489906045320137558978667271415986151075545775013492944973413684456821570787928902924308609741764104743265072263317138595499901227516238835418161317990380277540810014555025004058321978499121185276724212497199935059111316860433130687063269209198282449192887832659130861425497700173811334592798938721850539948498890317548498706350973705891092514845832326575487287314916161192422388104220975369387070505978524095835060865583422542793097510803269873425440983762013946694822941060326917155808904063052112580392205820826290485755812988873166054076355063161576624302287599553198005793993621839615535955922255758730254355307745181010132375295090411848338514764116173438731487081312946884679207453407223446339637731916771705007614479901005426682086675637682918405660204375082717037355413272729820300133414294595730248381816869044281454439819487894227352429158972579767717495161146677775175025046797602902709646627559562088781184442419219715147252115047864156710585324423873422501397385687512389856884993579809531611013977075271234770870536522862244468809585873178565650135128891808023124243811371991800576741494202277152263107559286599826817636142105070935218704952116011539515690191270854929068212199230837632168490179179324442529725203188871041254627402864240024445796058778050490692918494337355955203585244821289607890277636626176335972330522785476618333702962684044544071207172275001827605982080810497329478083875985261802786091404383632603026797149066557105530484935643167533973270688960416824722055308614532628489730500086220704476681946816008247668199199036038895257471062780916297153917068079653588066476269977687256733778631398691427432587798162723659091421799438543815544346651407952946532063582459311998736707834494860699706125730088526038402921291621439569149249348148669061508876291208881906928028007448823440672316486661900365152133005954883949932052610478763275737344083670600434386797529145126762025773954042677547970890077309889662595884513019924205678890414173484560868703738601667305234825294688389330323102973886654201239155495522139834032224043045262095070822578003502991807456568123362128705128968563133212166170916543735833903318253579918646442292309312988742543040566396092890642635486864364969176748309919780407544256421235922990887354545395168692192717038821374788714160122326341475659031180535044031401681410431064529232967578498226560208316290733217753485632396211112519575373832754874981081144050288723899935141844266088830505928303664515094874402176706894732081102677787825299345715789060792537288826434922864437105918470436365414472120519644998691148726770392267333551391816287296165713465215794014502786059439207189411780291065358750842504472620619891706330604058544661443338786325334439788599684098112194931369340132230452669995392703980479396938366892715476762106252507558185898997698627862534156116750876929314594016920191004276151889669774319412909928414638945846445771655517784442808277928551786711845094317365495329492806603727792183944057326994365670330320016782131349973413122428539144092371675257608646477942464977561365167993958474237071608361695735548860968646213475974796619073187568142591048078636735826080262892072475906943987751854355296622256668529973456526207126866374424179053313904685000763509229689006811334382407894140174596280549470104294471059378190421123974338560537347808883415114831614575503201019385625874849716432902008197088437777224301643381625569924369024793228668719272620525022705277515954053464286063254841504026146696113629760325182339740873039187193733620231214291462750707483274905050074534777359492520145674433290292550065785572620835873378439380078901836225250473696478638257921402181831138902066578304909730627754446663048852395219089246012982201895725521562312818469791268538339300473281077952761054344332616879401177057946196882603539038748148497834261811343801931011080994833360455052905937683385662246009372629851558624486219450614753535855675542223612241988425224962847325951074623546205757767442056886207162274029381820796539650308053658544411391827174013026820682471870501091733373358165832111751207364681004543208825892423877992506761974135388937465503102073023546580877593518559611018451183558753894318454093271946014411694728986137882268728114319662459255014389092511894681998000903486276049770901881150791505131065871213574772690006110746724506583451646195651342343465031014161138547087842680403415796720443334968265640533873981418264093939880275683697429726769633827237679973003141224172421260267804007296951342168002704667746386641750288079280494612439791974169958615798768996844229729500710046765530524694174023931500595455382844868263349723789205260671265152642992453818687959461959672877809056640160270549008166268801760698770819122643229453651677196505715054782637665181356049083665265844728411195994210604352218995316801985464233950341141115276261687164310917983022527928074097253648759378227401937391241947376896843291821694969670081092932847498502711203029182867900931383804053151347494949948229410802087667805046078579579708825039069033256875491324097344938601191519031916449211749761395929611648730689200856420219618084586764278959078945241162488439796586759252889260857109531019557203715196619959659163662254077554395166161571138403055093808185307178202847417326552508796309249955209886568224139466743471961438672328772913063005898932706020015911616781675308327722301287680322096266202497453899867393669105957184274139468740155297750468448675222883023477109187797579780248544162085717106828803034753662058798971526666852865342379338572338099932108672724464029612535386122018727242987043697135164194569946434779261267492875875751223357578918911200215114256754488855220957726904270172562425448419088448715004016651092608986960628539332310591553872609004947045838895678273170711897343206387817581229045908036363409083284222788369719784094889163103620379116369142516640201018914743257211869997305282535620017468269692519893471693913441345670670766623387068669144209786118259936040249807790049237702697928328057523619862699554199035999978138936020429025563019653381654595073932720489057886697324797066927844649493064676393332881704736628552313895524270119418070683016604417074467858487630878891673232079388235602671574289218611172968709737240256396369188383437258009261525944892038372030695666084859039363995746169791303197004995517039149506693399180428436184349548098322001132000066074247540669163652936342507640926766986406522998448920832732045316725320599620436526519882552117412398967913925447559601142338585202104312560577750956936172981472085281585198053865601203108643972438316271267747117778685235011933792091337658993294901357622986453420903847890224245620067370548855266283189601918858027953297092127258532691112030798982398176809241565303370317134504111961429333169202339514432645919517378152184105240184133586971731982041445020616197915334072068181849659277885840762965406077955642459201139208051425961481689741518903094879930861178850274290488490959967026119548311835617203430965861036520862992147096108487151269364811016926076808105004250905709144810938440252409392313151346660512687719758413779864758891318026428771177901704430025549353197103018466416605249570780141687717724878648454768863854790705007272893183555184075729576653557629720022879737462895660490081579800423234443958965638113713372999975664770593498127040345950393845397950803439006162900310000489218087188246693060716621207822732332510361158374714705105436856968013178260630838137705070880812643597777761572876218708288656515219193101912731856046554961592029338407772800060991159701591212294235370107953201624041158731488642070176394662417670497477078872755943467283262108206516715359574121448136401006170775758839250434476211812902420717643246397761533833534010870066908495167412913394169104407628132489830810795364708228587843059431746462365877467999352372276119612591897470521379460858367775787230433946487567079840994007647535551699056449711723882443332749794865853498258964172886397673664247264693953457686982181424704826170645920020671227214437247332390340749051395579825149002761129466959387638766401955544431671811294931067229211430078191299120885899567686763879337136355687396208235719355797807765142661714361140466158356038403687714096815225471317228469142767560541696283590677003798476710356821610015697488576846717018344621986206486055237481525283094521149108635389778855633712928314060952780796139802223705832398489554590149989195242154723170616425928357007395992384950943395455886303265160655620711433704082859426872281732412123501857154380595589098743647074247962816435817195901264051931763387267387376423028487615062848006024775764478223700332811194857899905728482476937490480574291366122490513185551622713179279805971721428507048577585183326599438560278519037276271824591346945927401669247428259952531430249545506511000830617266129774880242290723274483533069403397731539120079426915362764234071779300737124238987642154961596954203070767726736361484496897724084875169518045543717557960116668088598405455072986756379071087984084975755111163097286165207506104076032699300662839906909517937176154704930697945033877307409809459650106629273162968499168317776131315159094006640535336094388237262260075940940106089659217001172651537475371094252778859462114478533434957909301834525835530451180120280626843361783943959838665733449391884914500366797018121415744542175447949185753832781156397608726806881395987256240972889064193131883751850540735130839377293622257331732711354968632614484053604549169792893129242439118459872948278025965643895211519405843554264583319281685692778218757415533766499828471841176862356427392097843911954784779095202746135623565149696394930518331251505488319504111193111396173168443586139602937619272135419502559800607940814817426790035094778725418978203613665246554110960827801944670245568971930795229712965701653194723997811840943424129452356620838313089802170928994769082276872129471310037128500353283063410667826683789733286788083332237224600187675987105637787628602418223109570218081209984870476615440809206900626016341525914856503180079248350345852110497822297885387612060797438585728122599165075372285551015456123607236747390578867001312846848288265629396695362238601335162195667234968005622050753555880629653665397339659374166471861885425201624614783439686985519857139824520204477936122834850026451199730288045583677703340315174111462182576536854270540576541375764079486734232940203179179511819441511054128533301774476125692789203084814811898080461184392495631902464220639722419768977088706853822819741417776260946720812591887557073703371651703886001109585352346847439992947755826410454258385532500776398306228803751699539032313007297802499064521859232758963454558439984368335893035535411629894193739325467796111288351422514384789211707611710382410523160847826546926277995016641739269856452697589150541524221912551055302770590400413570536340903488143490964292390843800205154673841896703858643460845562152645991014713016489484413044943857127610705350050337978241489226087635207986661017935522093535934894201953956391235974594957292262434783422426767862126581475861029989584408791849107506352854745709525547630182420128296162414950526290277721590714890299859797962762184144324969546382803529547988043996815167698735008629634480993486688850334683454398793098337238807332337238333476900353387310307752251604038335404549741792941698908906545218660694167484766991263997719514906230870182118352245371664475015728081163540904644982385976389890229169401076670813716671359737079861761013947729976754208699410807871016895790570788649787972340165151291677895615615866863796328266811031753740880962074579899370709167864423443163880643219384886518915267353756620122774059253609043066837752022998223778066727729520039460062404283024914000054305391415615745154305614579196897719679860006517728094454216215665307064981854643353191851084782470133942055924175253697061189568244300840410482350664320796794106966993717088066650097481544580541264547798293891746824358771169043677420167132953185407981604987872673148494683235670251997941974494473311938836372346631885198461691319081496563515528690580762890573696662122141857934487856552862650268529032518472721051956137144385683301556005889472330278579375212650472163172462713821776512970711634797972735511307707180106924679141308029920931968367095041346629930701459061597564593920657041621263221379036624186527553495178634441366294772060452400330625489706016570985307367391319754683513826858539757240958423054727677977027050557118421972841110201896181238166453713578425517081771089384936183058112093137178920816474429247977729090607262803917883005766579822229094500417924680368495516859886959729971355420777517500671148164198548653493174346097715296430762851688128910333758995509621655358024326443230892273215797153097802833366826993379165771192856383614054658993606619260068857498446704617212451664214173031040564571571874072687846867474258814310995230701878397405187683873140793695016836960443669648785478836899031521375391725383803524962355267644427795685153078515787986076687569795357487896820086091335686054554986254951789004340873831804624680685662251544726609652678777920486343603887493557371147662227925998765888230070003912174210585458066163129468821406320181116158342141101533642450486919550229004007767032188001252971853474514780574785532223612495728496688276306178823028508447854767084182894623131659096911919834296392180034077447750889611012674646347684974319077302733582385505687704077117751374112341062265298691390137613382689791343567769963656968996146495809856005223022286872709543583251624435186418149038351608621134425220610544282591314573314849439194404988340742801007812371598843364151144375604795344468749850893694065994966364940296048177128633568263525987998661694150980314069682705586483992974752665465412992613016006360786932196345883022905887401706481376953267772145789421817284578086356055778409430632941091510832776265416750968616597197039961866530094642813686620006609465496751363015066978610983589441511342837830126427167347139620581248040980029674466524022787816639275125501695828252240456094150715619280299319288017590994499393491548769001595306103598386672355681959573449946707795217858228002924276546798181052883003644340059043853877486828031733110122791996392491564386732989075214772978752974745573781011406764245370679569014199849432545401337475851366915404023603016962891063599498359982058953700197827033651896953378771005386443482890544243193267863315724595797819828109827882339933432137746750130240543619132810415215960124268889535369005513630223835548402426707090384575609535600803093998479025955827733975160466510528831858482618138843496918346934072437013391334993910224880834638129388754160387352700731869207002131242405649845304163863028700488641385813490130253448469178893274603421583245379233701293761289079240293401519045889156418838267398015665887329718659438995195276204338650095128146964758687137096004806408868466508538454480191666385147887821385368957111132404641011206403743762164085953861559644334966861539842807158118985442444837003900808114717266022330398218123099576059070599286389036891792827597364916049281394351896765592290234380959090330363017265674546606397476020792754630757708231240083978378522976126829146924133159910809921443560486263761340372471251409130935763268992115396884227828830273498557209479460632836788609352023409319564972979062554843328500090177145197674070103431510864325007643331559401560971355219355127043866154521706307149964315659231717817370902433564205442081723883251903959679910196389009805236966234663299559921218016577504839081620229464519593699843941055413534527092395469366887178656061053564033298917401586837869265547711817338745612766915533439877168417770379355095131063264027246092967129336369121570161934467938959658552321503414523856010553222274289441412969834322237133287784088347813347957216942943426995841084064663348486063655712363837147984418787139911155200671761185714940238317482666072814431794982693323688618475043725186184845052222501848279623387595704800543178989457786912108942319778997683761093270137607353091304796950273632111680507336162954492148602141685771023045711442169308044329907495267737633188253731521590749337142464912055678856784260516995687816574491784983948461686786942263893467248055922162621006222882831923275653875602309436185066552708399242888146033461818198445730200218000604984300268225725476030056180405294017761360974912902521179686958283631907024949541409532001369839460137069007918926476193032473256351991031783250746612684444373168081567804867465411317662700139438011519678379373681232293375084510267921489966018330566542850796698736777259600947525235709808868100814804393808561642748170484865979931945048849858149521729223773077296072419683798935714957443585079893162958283959507024698435114192133025248661566423545039273817850255368600311919732297144941161585916800679712426900832141444166439598152230300437871105459674050096576118000826891556396419154121472069042773417187580663307813328423249200182999922010496166565544348887274555789148671819847614437456002142398517608570262417930407501263390747363078743975483226880496561429322722508181792604002955815936431537074515426322578158582808854177010913474396904550984509565328054416994787841138794156493790092723661299109980038342904518034891221692043025534926465660433053228918344778439850226570461505200197286050156560616417225668865278872378611285834909538062029897002152932256884350880616120269125936149255017587922729218461529917915091936685947536678144561392570369127088128398583226933872102724853024100346544679717891921506957246069051814349634344066292706070230520342808360711505454005168374928465647416291672765346227639885019173006471826323867631698238464665322567050718631688927249396022883039828380489231015951141923720834880153302867539127038525679540250808658374405894166490416311365862168708021304289501022912359173273800643058059488502066536916250528264936774039074227113287315377631153599797906349105751815268675771314321195210420766762955535762713539652124961398697679858942188268855054508992105395393228821024700905463461043030980487364388711644572916297871104124779307815174206727861263721490328238543489736414627474993046848214136247454023502823022437889872773733680017950490842570878747307544058624601264599962672544684886454655097296457280251179459280852895714757141784119824108453157443174407992963826850398750945772970333157104466601873357254382103115572015595130137676390289947231849749921175305969517754659907007941602326137299906078212239373289572033034063455949870926462304092559683744625626475374087151603423318866394846098226313515513064810437563942743166544784071476858775394909594453889454054299243551940492949210520605391676836521831631971036753410546497758681086925466448716126511651581085765059895717116695935903162600634377925199583053644961455999703777558618179330815838701704519585614611775023476410401471872620919098979181562555171119797553900600501614472590147789968724804956160885229305179420400064346850520255381261901965363008292196646811947314351440489525727747467746428755180154456070368121806614119936301861819005977211081477670719773877057142776368198321003492426747422243244172340162118140966471711573417364057214728126058077526814666166493302853373266068655229352857778151126732719467379963506160738844803864728892183414950157624231690467444537209450599575706012756806910318364282445740132767360567861562505075117618782789966301458017794533618128329631662352192088921192669134394979938515809592795300355818894765232772665055836179450385873205404911709982817377489776489112987999049219924671846559491476243011010782900256282990378345043556962583327525915231802214710752309759447001794935127598280075990682768737202977486216340770156135013947197447823721763406694680647853625417861776258518050813619459375419904523944540951935941709729863820399599516295900129165005963160066311816024797558588139225485946362697785803551206183054053740731066508950469495924190824994062238988750772433061256878112408717632675684843214120262929536651656968527264593397085248964649690797315132406990169309195636069569235952400713616176284692202718878894103756121570321641843723998213177486634238896860742947123281169980468797617273191973972043403900859379945514133224140383888457959098427801977762204413935920955448474358648127807524019900480972197327843714783461922545389794841653515918767017320861907962624952366803604003887665445308677478948486230631322437173695381781167008976729225476400524503644546222622959235844800201199325187542250712512845037032855010491261807708126022400926165914981711183083939311542414258004849350882057121565966982739898720178930481059156980750598407292328055931611909187513902075372504148999084851016460105391800348472056248996078773406673272579745669690714353906049311287170116069652924750054157365592001348434733734744938130819441480488315308605720525481469092227118276640875225767251363490369026133403402224270188187521093279181511177111886404823387498112876300649533862600063919155739562850751418152326474344152075709446022626421105958717984356227473839833340748552214200031953248361917355539548198420467446127211513069614463173585092633930045862334789505958442314738303603313852952385186153737432310100368328839783510510937613575879037708813478245400291648559780984385695478126787722050590354428188463352750725521236407280101397882196682406994961473067111992494678799600186476556320758473787319411407958937004382595097977547628588894390964426716049143380217996598117251375466426500272245945461998386192954021272705563292321357938327837634752242638902880426808079839675613361732717955362717305165971347624495625006919073341292016431073431692078486383429049816370114983563628428285299391086744042043761596506634911445103122552232810618134184120232650867092801186194722832418704258316414575142849368942411515143552065490002809301897840124317862011604312689168410552911671275390887888002081636007480276040278091833570854117331428183470164255453873083931547621367397707237315937124673762503712107915474082656441408857846832089416443584810019719060644980738158093447230854097782719367433417980107561130649751637245511197377837610240684670132989340171641498279559014619695972365075357659569112357955571910882360783645218797551227131770889768104056159962295255659894150631239141382220219753019609334730292320063900525262375695002735122505820599191099257126249900420669979365470550386414433785129488974856863674868357279127092858404884637064666392015731575611739757484378699894291114112398328893618905457198255809760995418007203221047182106292917991991345297512059197324238428007231960201613611751771984143815745083068991861043984256336461598888066709049973933398657317319368791139140974713445023335676742502363725849435030306545667034625122421620943951224164139077670384673230263990072824880895378622223109782071023380128298443482226023018401297627880879738240274196686318346546784054250292605931940588443538566194620855754102922671324789810781215150515634785701057550536776307492907610407708693348670766456650530976833172620084549562561811107304741759225367100023811420614314459291589465429107921337822586446587190896610408093131970413416683273455089197975310774151882008465104449117639619780567676126776122857827737998756280539773083079916917461818112540662982411645072864758740599565415651855965902538323856747818817102491406676810901855989646677142661353233504752323039523560491639970377145259158781494337149620402464597561809462487187363109149090686015847937277323681478183606581089010983456723229779237433705304293016951942237146412050035969384796684298426525358131919446918778365061200007117359145388376205634394391351262101144002899631368135182763015826509504174527406638213171422599679670096084315848014050221462517032971083000560275302557018607923118517582155950668969305598476687862893037963389882436541420885781838948911745870362219850870103017041551460774322069736683381100426691811330429327744106702993221804985927974598372827527976683424185029677610832171269851993361729889265277087569078354037439357851693805110077633354905049442849697413627932734001740732926692867495127994562959209315127409912436269315970099080432222234470561336458142200949357049209922893797592401857228470826046903405837545210575168878021823343623791011793447506898822757468647227831642852897302240002025692081472410717255405393044220381276585610325580477396887236178184021626411598049168146239400204565886330129039036234012423711148863321840854309321089341838846935484952225135325697747273850994336869650368198473743635308335601566529665416124073588298762900618514358503267654512012022274932967022725882149558656223630987072682238171815063985569109957560042644010631660543861479454653581948758010073452339778586444889457044215242493552373771927200480642764925517013569303764819871458625237592011840235757794247516170748491621227195447710291997941484940715284515001510159222375587640356536454961923440557372650800419332381836386152693034896270746680807047118824110446069465172174326065221866154821313692676351730650358115969922506434431024077145649538239463222358563591177201038801954484273692865165120496022184560614325855569974469158802245786891561458381691405718265380579201691822383481527153472025870602583995323662618592509426552286249790113811870131468957151535750450695147632688389679328373521680678558290267253854942240691901316270669241632776344932843939815552543782750115865375270632668218435931741305086716455790788247669505713541043881707902840163960938747379349634443534431622714835332615106539286310516217299448229791726525762514804517207702802578827365490774328309376932728730176238922720666875955124209663224186781420663633664507096757493207570385263194894506531589207008999389473893616338678318320208948453609462810506497881122709816691121137486400816331740949626316318871981725497824943297406695006748446160440357184816130479936315861744528894328742271722253114189375047447763428209363743699882024028452527344021673579496128143986652678736485758269721643633327086760127411006587605619497852490373259697879993377382772039288478931728158393552119181782664800488259436134711840772595715920613307762300486260661642723859223958154298020894557237332813065333710903767998239714060105268451347402385913981606947173147368684522678764918230141514173762220792579025225468990745092026218480701352476012054231056282355400443617837549577665893475548879604956561956231356831095800847925790850832432058641279428670124448154056996418555546142664720356275266418129416129712674348259692522927309580951699676469385551533453430284843821462525710335806522470801267162543231801626342685934165060675733732964864744149009627263608887105768583261782974253008894214623480109257403751660428058653849679986155342662594495249952095636962877205896687622560815917809460747605255365946598785125664320817878489592669684440758043430888400343583998483949345279388099970269436702416852961182739075043868454154354649331674529976712514052982987233901771443311050017591710719325600394434860314216719496992999694307054746205785027639359823337462882733889100345896026854280238424338469245610827477486175516033181279574814300721153642662647640438802597655695637861628103076163265374912674065522588046805888700989466460702389651010732381112027729378081844271418737979731318765314792422253524342961847304199640854413544028516909570242068803249495950943459706172737560350166004291112534162263505874077975884696059467444056058772579898535972545206806590925810580401654399421891975459851334500174924110962245715831535576518288194827314925518309846329145397093551059301438554106239640600400907611950976944153975652400652532303080649496560274768433517912935295959206682456907143772393580731942414769343197698892042029363337045733872903068385441276165929029066374990062269177978284734647373906880661056449714579567614179729356550590295820173538892708652964430391499271018747095358213173922260306512220962496486436892391953727373197022562327501201066571414784858959926514816900736708061827755430612836062082293219516278826455163600293013496161392434070972012746813876183817908695460326306823135459061697601752170539141728502988047184884103155301171222517133216603172729272661996295922516618558871224390729732329451971143935042039982802721668835910657494880471876254587046686263040674127103463851940212566513223449736184552910040802840652726182272657389118124117038447690846473529374616892890694210953506424181835919106684028632856666837213418142648311384017550779763462633520937009199765250836278312440291472365474976716570453476919722238169026087450342877593306880637157870529967925232770067543669926128452524684906274160870800597611161797969228630528664561604050644253393906869005795597840493504954928243329610282015213723088013429992286860188511930705259222109275694261796177165219896471210236682887867103796480768130358718743915286931181668448978251294189584854329071023361381204081445063766030318181399766813064390150102766881849435831490511815466074855334099792459637273972572970363824815032454442089225358217794585773798783993508770569849041306505129310782185648017146687512098096666520086445725715125237117683184542517423137694423933427446721294769843798234046244777529277743464555716280482849589390858746233558472091555471758084953789449822213304395089848118988207709407444151634638608804627025595982728994087728573335282690422144682811896731354430285500821946138106316151659404810836042641287642805226196742077621079866881430228437027302387713829399446224892287729329580491468025076973538348848918215096393079071212135125700059529784278105492725052923123029892640683068674198929816943946951797493324208611055291247650522443875134470450587112295255513365353809915054371862058513562146927389323162027833783258306398534209575325797029790155196018352457643800383649504733351842309497485898130032557401740305227239949857802897539463165270709400164765132264177520205627740118796635117052793541880143501627416510454470040326003577076069362895722569040684899390198246817305112471144760639709475312919259045287554764094476397512815352504047498543023952175218714503814444636758834263511147772490177270163387969489460237709193803786727604728046999535581634326426767431476982640443616052443485809383070387307673097464848426028161061923768768585557892379564872551389906776302591118521237407651521159600970380069736314132857855526239530214328039514415468189677314562448996650270057716479007800902128563214013391619264636028313905976071258632185378478799521715009782556759050102826239834819147452813730091871509835949023379066126437039390882420537508048526006712951874656667243241439401082260775886077781569885151567853880441189288048102442094538101952396702974224413020984695951043921079397146024074103847454247744739252021230659046368393479272325342779221316325748805209753115417525338971694249364894085702034277878647980015159115358852461599602675371284105159492269726375456766727823311710482739035518212402825899662706294758046311713959326105048270450359346036623732973085239754563674885686299381536329224062754710895861160882102780502778598935218027410345041116447307187862605822030712015791390994765432363702289028578789674213985659692916801686004747014102749965774103421907148480922549383535108100330575949069821040610895416719772242835275562872508994961659577371460063623554655170615885923605000520047448906870598809063423135631903639889430301165636401941055275749658705619275440791242142618368571666947729612097141242366133006687629701926144549990933796878481041830907662605463676658952180443981885554196559393396421639542029899506266412837883781428492844853571473755113047065476484016506055431603822510114452836943135966016778837733980364504210226405835936466016115529187370440965792024831266721221466781083745362805966381468164500177108334489813900443645555413176466067086395719869375454269211112008518545747183162639242707154094737008454194300397335017441885100025441956808724911123130461417131297191532164400461062130618635256814350680725927457868902831910027710329194013208573233193877717493863971154404902035411275370034629511696782873485946159105711803009498868301021516199644619825442713428863115812949735239006606076693212620853013650961260878915714934616598611283336550980245439633764550909848105396109744644555524850090094877377412924471087405101705611322499757482097856287615740666154851160635335118609620023751590060594253814702810149455227423460912258068973633357614420953373678127454893862211736983602557664969849796764721225586016827104054435933682902780713311481046295843323111260986338599743901807701219568421477597013451828927705916105682558411227823787076680375597156165604572281171152601781787658375975886152294433989815352315028260726189191889707793587744554850887590574401163455998360935644326245565068244698741424970582765794690641233987563496186846039632178237736513996526155904543406290156758022360774168841581618223867615756060955516295799469534170088362977366450212393547591253339984704119388405626892153143145355043871631555238482155626591406967828416846601223545926347676668510284851269029527624692090251783932334071058093144035459900234122229683032078673671163707636894223421130166772799143106957641094254417403886659281747922480078914329918211255816197677890874596572102604630153338779593233737846598243515653320790971131065564478615649238137925096104513983992343790791343439248089024178780682637680363899366339628704669062510868105723494331838134250441572419004749437184525255322162993168341441213692572700589943800204578832906977485271686984473148129558615963983067391152183471263790369534192937353997640766945670124541529631843282917683107750333123322931161564838131971605228677808843321559816847675864792000220141405290825889454497375219529279024666955185373748513365890573769374066506461064504450473674822278800966486475387528069970452917509625016743093015742738520609550751385583295993576796604810796266378991301400821665242566054108558546443211912921586962986195781851624286956840322334159608664789955886751761159903209922796237811626051767607431017839297640975208435725870326268633098629888763701705920895083704429783907026601805679255585650961271653951592099894842072018070682579110056644728154758635437236839445908690985725065820240028815561530303975421415618111819182293183169392041264839866542071339880232147232215145601011929801173686650316268560380353041815660734892801798999397727118396365243277768072908924928250485672206315970525082265955850972862257089457655277664582073908143118333803575763338839528762306890723559313899177842144301092923282442952873861778898427981873061064905518347354804265331869809106826528912102457068347262615994256901174194382347905551684183059613539601730331697832178347445474024658109626637527165011434792508844901511897301910246215957824485406909282691350256485999674725579203111602177820391304598260352315510555622537477865837689046703323078123491825496328743385166482380148711115334935802826093999828071980293294000480684723299290955856907756214897996160702882783319642672879588968623347390722526494023726092760849745906800632963963546675198400991080322185695901141471656030631736791554047808566741412531582000317341056935181155592589680815087370297466629919390726581510761135046122895613208750772588992088518184371091410391642443835104105820998516120483132750870825106808737166510281206949958290554212557484309146615950495364977430740028037404881559855338129519637675600042265702567776364656867910224927745834103449688160689522192664581049901409194321927647938783437947454771555273688826948226419002983674819898606194156383641717679031440834848467486576013878203224038911821642102692634536312049182445064993093292947430019205753726255621815829832223195186060092543263737956111276751484570736211431776688276146796278626487389226469314844136653638962779837320451926889513940115443848027785347586834344770235623379068050845007119726947790470656935510288169612318274592822618976730368033220120218063419516769362921430050928207210791172985445448946248938064559771140030812358932072218912373728819666673608689873940105243052887457464706324491422852349478649947865876898849256154556188042800895810690666352902638588609452700135613642596964143853506309496570182504426343274543400521989861534835860207786141863427704849987217973165029783513683248181679203953455970377335518939989314876016026414244820852667303702625482995899745797272951931247061239966776139634999902482536438333493102583285444154208992065348657722984637265842735675452486073339381667322205772988022709849259553512977065561993076198345152203463655299521012155096583290531406287654821299625600423301808338305507052398583811966076797993567883327162828065269605728656710488771572998113687069927534540740241674395387238180206740386147019127498815088189692873082093199718120679819135008328434008216614357237902710954983500172889299374147934728208114552256233884783428121764419322212706872495856124604466350172980686486592586779954471927248872685498321674510453248450937647354789715327004320310178937007571122053286077526217413095950670793944337723889460714879053063357768052313809524602924473423243746016211895221315668674851859207966714541034715003263236747904182881223300952815060782414428501205055248049611077743009133993896727101115405365187452214443377385503618083701660110752956617054718095619244893092954701721894664149388305639059771226958635656710452410204928021524994193309261707508233681414971362889517850215469182333572771514290609381719354273339573463825822377362944317526649526172715561630498481686578983323004483830019463425402682768466375315638997977440917276868224922523424507991115798575700153581191576105039398166072699362623618942488735710440232262883215805500317402310732449834809446926475061884080417505547603199885404890712131042630401686684829589254250029517104354363362208019807285838234463067100664390679818942504177623569169150137566000764209680849814991761166195094166221539665930395699197627381260889054980341198823020183417641727840114126434187935397082681375581967762371662417570583240805570363807903577985092161833904492523613004887016674122432637396704119258430444713090582165814079730489595579306526001862001973293151136091804488554006919235305773348454190375767988601860703136025449822323977045838679289100841133416789405792944098020852473981952476836275303338800700949435718397164741069934122023814131515190829866995600042476112841150077656560672868516188712109470200861357821403158433373846246371540018503668625654440522395017207017734563238732270087745568693371026883766906193608723811902849660787455406099435996304127548658158458591250779161082923032634330406454207610538267425019695793874029129971927022098277055796666666077426176753879166640373103956479832601991144748495803869384151378649557336767090037879843366194292128123785021940542665869735821427623193097153846806303694522042850990890499474511618906745983809689886064534583425144903271965932379347432167270806050554398582873188278138158947070666199294548966070918345538558427876346747644760778927100555488942865108708713784948988732038806996646155137848468320440662079219858310820012394889224248449996695475192385444534049461590082131247154779692939110549700505296749942849781603321326860828942684253580440833225138522658895402610242573776207421555821089835833202669288378091016787826646505524584543793755235529198421516857706779916722868774985446563070538802683841768163401847380278816285547403142462761414567175555870062024621822512992272513360187986527788353790986875331356491722207907504851122837937591748946228876506175041068719844591812705151317194195048380145898184745199949237201770161895357913064428234155829448648522543554608240507537188747158423696736944048715775647915413490795919164007989134550556954787709162622870796916464676827528159493674073592549121631116259046818540337985218468844265399424545518542697742301159729224693367916665482355476309476567382511533035915443030612662865517555975124030312616791004038309848119205996980086590366800528548549389172544201456151401436715914834167654851458372868453315050487329731399243521074508773471542656570359177732142267371662868459459551325507953918957534185734897761361943554768433685031415257654620018719641049747184280210672793043071861372349500167887359734654101349551099173913347935337981164551694415666013038650712540269182138002615915331878700202639747588764548479710076238753797433475274235737898832697362763410376165666190863847067297317204686011488674814817908291906320246555918763777977474417959907809273131405028140492581807197237356132216227428189498855904477437124219895131793396701427995121844228436311315240668460498038128967075162670150346666048386995865304875315881867359022023140782050856504464963690517867943463050264229708843371254014697124786846399357878326816540506395255096940765848110446406819714578309562565980094978514875673193234766238367489075119705159002348406730849412617445048198967738674292284414899994693513326736980320470346191731538730640309137643200460071681686025578706249450666504516249457045461148998646593569484341922808559304681264140472612481184222338614504652874973667591660161996408167546006148835655860146028427481171896498675536270258030082259014377494543736911726733306301731612586681089596167600755559286039444517605700426117834589228237571144221460876149295638848323828203781388286868509233004286955440280583031416602364002619361511705760044006578597939336838117437983649648951010596015868945693408165779964682831799447487265352636152590258735647468428580850949832020546972652928459426279859329394739790945396631530315960681934141796039970030437640598750273564424100673166292013247856276995665711804800695965627657854386512405837023011478300764234069129673969338332038264888085363386157571032210969172718622371212822860054951334379216722986659350230946197591900607121734066861910722984655361088242787357546013057129388552715882805709434639304179163320945573303458980182793138682536137340658083778921442154407013265485074036095016024090876333817890530533991962220770897632195012661334105945141862126298749499683671264507132513202614762608292055292237536503818282832255208051718202199174075470025887966436352177529527116338269944748766558949204256359199666778240871180523428965049414372600055011760881481321044868737907299729800649072183477940245900619735511981774226593613187651689636112216014966820871966806075774160353242781056048616449093351811810899274357447167033417123822178248547103228567443574495160541227894842970006354352421340990006816754439731601704788029478593839080421913099416108841874575935481234409229571849161749367855813897456657075810133196073711710416252461860192091762054838107419073681524783671724423674744620272626568518568820250841165943623600440378575908669829604600975110186467646295800161721274832709677523481775731596111598504470219181746072909525401217512972984801145876508482424704984431748036284374857532995511463116889456605460423986293236544910690581843124668671447872459730114009365887072226758511930947674278416996028735517868805315002036250814277609194581127418474146843522546299050874466730452275634489677766037474997051754881856275138408390544301548170304807300141142479278370243168960464449228196573350058374953690071644824612737079977110782803430117862349494801932637918903460242549754446459259171334257545012259906213590567654081230216488615180387059198487900879925964950252067239964666749562727975011554990893689047160641589263804421405844182904568228044448094314060480446371618405104864611828343153079051515510795581050594354136122389128392771325065699237281364406746166371953087770068868215917705401665933644259431737233397234746008282251448488804658664685865331024296838693172486548347498359601937419395826914753460080870102463971331626593525257159468031104625767191913825331509929607897259590225765575077353675478138199068883981349169018268407524748046578695551073305010721307608101299161370850649382473744397718687709807440140056084069077596182561984540459426352587262159461626598327299675930008198487178224107205506031701642816242691242947785402015211203068313557713010343687169102888370572739504733267442946685972344847229738410895855926622583753615622932910496524780778139453214561822025284579672067095856181852273317093821551179179062626329431038341490949975296512491826189908535885687692595724685628598579165742119953134250647239844691643572782700976431334740376401653298552926876828156023287533256687093084339071059778096306270062109512282809117328429773992468234099414127982199854320590119340625345241528580705993520681818605841516937765846233535553732444648730444271596753102766283596141874812186077768017772904604665290150996735691548395820304671865942604010678426177816458120493590925331699872322650860477753452187761496585065286653600932883777151833701972262713810449096667811450866556147396362272716846961230839289519454283744457293373942087345782237995005526866814224051626793752900132311186166545535714922083023443119226384293523692575175252803147240026180416416865190759524833917600872477316239299940678663272790308544321902861330866155916301287652828103178962697825559513872677620724254527818565494235626714098333216184880917917659720553695216037993078088180593822794227635731543327668927811801523064250408837124414095040370065481503338747835485397849083857846644536554777819044022410550382061203585574982025767569425200652058119450941172126641275658217628958290292393840315382741932933132649588971692777900904154547787784373990104148076230078252949972461287004101890574262227136343272770191044281071714702359597914634507189005540209969555879975246534445367071917091110209733409494718918244288602733904885208066062378635664622636833466331588029413119274465957674152143494253574319385484519403649240238472747497826037877364893198197366503330298870878743293956226626256508888264088283787615556332833426008143142011289462653685585272629308664998487942549019938049771344695401957876026348200687835272089381328320726653495447214889306799468077163120373440294839689748576755216523477877430534874320024246190258282932512496543266840525811262983016637141773178582785432394069314028694366233803473187622038826127935443024712956001528401903019768007384981492229320841404158632109672323985612612559816570373722642165526868142760191193611571340334851071426995595201233996686430475580429594845981376380390601552135984348547793544617668255652905392840850768090526926185951178562617598964472958917801496335550744432385266691683313939749155361499934335289761961097771936133194543480386334140676993331912727533124929562469470625353351360042133651114929354475461017607801365188769772897898780012351227552549145515976493725148058870644931516504729056976076428987131308766229119613850113894147842847809132654044493071952567720407069559318235720622463123068696681889031326895360240523477287480525399315156112991142535026809264941450351352164932665348035595157356115094959327196580426067369067080815120476464165497407208248972338846384041631097918449023968253401049299718837830329216644426063665676800600445917065274429073287062935673641257936366815180892123280279433002938393106358819930934654052370442642915227159408100346082974974492720092612892575818665245242287425994527326938744674066382019521808541194135840830324804453510159475595105070238314141698196782618065239612398967485539261537971440672439423437397212121720118501829536036192067252117723366210314769608330325556181212881233726196975792963798240395401424112963940047269104438078818809453867635276304721180921002365409166666542551047235462155468577076034574428400150551271865252018259227791668628856780481031038000388594477048819744089750162031721770346790061035540593679889990358698225424613889419242961161664527289002507989886396995766139240648536431309484811215654809503218628947520459483586675365034948601889624878425454439768104578667943201787007452133374720050786094000674960397292984884098178302023585697174605576876174102615388830180595989480947811257819893417090639796310037218588498724070410280762044777908453500793804144017664701608823686576791608022127442638158390688135584383760712726477671555874118164217943014452470679805556013765047555074124619126035971724425741831584924546700510955082968014532091594619473930950660858789091321781462556089168568227211050507989016277216356031206645363676866812288988674877104115050358860617140718931808462429463187524861261783926308414839723526865817201213008903402866475218447788628960398438502080570632235408811819560450769559593237294504639470491051232924408560251335933579697682471853845768735537473627379828396611310097479136670252588824945370935607143393901433632569741175748228801347474618457821908581494469547009646972338631501950629193388306213177270248197891249228277280226632368887755048449493317571167118128535437094809154070566552566322799716941710697223212915318507847698082909604734792488331923615127234349031305611745839375141372605385975065458537314654964373665323961355071155740891087006668733842079957708391038801196216527849776055395789372631382174157686488768910710454080795094572596639657044154837073424135041292720433525554539198609463935112805396226404479134183060876408494330339162132492970743446855083539228593993920041226868953487934555949833903805972093995850270104605141539324458087423425030203586762442171789535484908330559105986889295122108179321281463567890489241407131178654718777601931731382736828169304486587778659195008939493425898339583395477428757297853025070752501847473123037165358402172432136371042428284178363072257701496750725342038213356997285226736892970107091141262252732862374671010927110431506710125770711754352138084494238245116512136781925004868735996437558792279950663605374777606592714757256445478470860221203363795503044172867901307679203402453529193625927210516170378432777420302573915167095422147694530942841240484419770946737176219655703349221874736843586053837747308241388714853953681166409642985613309926772329558283656982174418710243034060927016648111034256663125680751072800148336698851848203885241048845716811442402843401877893663750370453309860430714674078296083419458739786398914193484453358146257446634404612231934872702045742203094889046555106581120513911022475794665451486829713488625385486896151673364649129630889815216514533921021139948969912076070535014767852366451005741657157562788928839637733177290888543363112458805073461872253733753440138645478559267242706519540152321748122221752686530331210458283160815206597874541415190121588312661349493528036602232499549152275506102928100112415124338576796209413164875955580256328070610242558346641524177408237964838208723494590430128397002457710001266564582242880450348987701794899587677143667157564838215547590236041512772636856306703888884408815398627898300512322165584045171776869188907416745168777075248217563376689718165135267472735466411239503297483795684854354460481091885154348763501053096126301345619301413554488439186592537658827734918765885894361471356449811465482696256945438838728529158935869774380273521167272238067896501963647217905128508091050323386459366899509193819761952602785828335138106073412083346656316023018306555822185783424315498502260358059377051650809322952887631260333016795277906314243758240594386857941834723343654240893817167551949272067468704096960327144609030619866549176411493824843812764620953962384808384447293288389157098870116427812668696271934056069493401534034764319803945567230366977117726766277668675158958163060248791471828367158855005567027041039706322450962897926008156055962403234566739453016379347379535024159595428874914469319991746375130471409662047012900948528774433305513245952695091136384960911635002240465682331571831963745996815479412021650346340425310376661792146432940785458404094832934179344594064861249229956717288013931300009301329573373467074353019058382157988892464366329444151332365532588667406762225633063972987229773198572048028637670975034689131756078484477533155603503547429411502699132472171208231794631819354072180780658198992169236864119730398557363157730039314516666565652327701252774193783327079042467061278451488741498427321638332947718916746696119999952326303132518545572033118571066594622587324046314424306376496901046368594917992089797700786078167090869290869115012585254358289986189531279987159860695225027377517109202732756134447311233363219619950615572502716011369530186018164886743986599445236327897383382692657310185462344455948921172415304453733033381872310640246230483416777594718400346677441748150079224729401386230120529787869182321293282870646373664457031905180097692001355405830516757957834026959436980938837455949757513654997834265406019923151566134095259521682404001088345640931785176761940283700523391228044927333471357388919253978582404003328989073011523117207698843474909759914649324576105955625081209074440652694490223866666664740096561177282505174180576973220628557795170320496627818411619631741968560480286956057199631480128728430794949734040937233221720882976513904669155222501649593024894927518915313101814739222021380508263667508519047397460733389115674843567917684665533096725341711414849805364705016403210109809508959421546882937580817826685304820849683980261973428892466173123718643404664029895634796709986205821491527237724080710475339071350872149446599208624410300122117391491979391856040558873342250131816579568343725898649273723842544237948457278750648598541067821028307704003020066201695833818714936296242660458474169772110091414468711678467108441698463637869625668903628251465691567747747596274534110389642472453025319923806896531981981691853479209196529873658178908640981378858788499753439998100129332678053562716197236340381692501272199722118375964496831505187084934110265745455350573994275966994285572427543046339259913698919344239613151196597592201450878463086797967465841983839317138156470379384145418841432568257013304671179292139373280746164275416116843651368830315369888032814874229637938016675130410765290450625820751325552673411578128118778336190447617894368277515946786163208026897770651015712979316330816116006193195387962078631431010546834112527061260682791790277515982383586315949877664164266105600058125818409375154422817144999481757901503108583239410885833772708728515481277031796673486313955862107195734480195420974135010042821284413426392938234311285456772135037677208098044737202928529965268657815611184742868503674291962295577776439563076247264897516926247309329559405171629529540292275360125305103909762611099882122577953396311334984999526745709320024904781754229832050551314754999005212269510632312856563730264097908655904617042652562081681869021715361278826027893852626265433835388492837229165903707206504456273204911098110874876818339191017271612257931842465927101810027053619633447897558976728634850960034476927498647094638248357708070694636472030262614709595743678154531461415645923946257528252842927449269552158525222453522264417724416242719406293027333217708415373440219123517952264740143491162730793160002358067418773499088602417563126750768312575531398240316496635795492575993109833776995635828352792550092476893377077637390277332986052020084572208630486449893627993420254546936943495574629431180911864492896569763656672629233182094139482799441181355039917909896748181201389429341573378321269325819909120458486479834948834366093046232716846804195854449284675119494799251286216566010444627144621175254773103361349606649730571279618532894953031994482049585377614697627323327881237878145158246196972027958183228249807942744447946238710175225064352324106232111291660138412194247904546033501822051120687896455247018683340414186196655410134753090329703192648691383115584631032134739493954290465504092063713028618611976504241839938950682510889685272319331463040911542930549317070750417845702478438739780378850876795056355033616962568872352023801706350548697277878324167618129965432916099393273531737135803727640620750509326277452215146634302811383059391614524983947413843511891866614606027301878671281173349654154785618747884816073267495931529839406125328421190022645255607517958392404008328070852186048001525674621692901434166793763945356420817027760917171675333552266589613554500041200009477266610990258025713555128335739344523583791181109455731606582150440148073854596465056034014221693026775852557651456129692077283989403504078023043539459521055582704155630186848901672586846965562697093073415278350119866036672466123272696481830449053100770449965075753357143263898995447713501327594113342551826262128454182124576282423010488459731429270456759667618525015621459005894440009451118221335859944552400523940163005452110876084676619722223205594911599856551678210543768587867572034026972690664883229778415049545611164910731306500734826249411073844603867636375458959285432128020262550324712048919328990840507387245866325196984016111036971858998739199193583873248119293383668510030380436099378716808219067944545825184209026225742085064037701995965789061100954839777228561903442310101785729805307957631888602128581418656708191635487341432539300787566055030569559776366378512539319375494278736550323256641088188679041032330244080255848711940100993945690050510735336180317412808026622241286357491758679962904112337045089604672726432006526754387142780977480221564631839563652731357374775893258171093391877090433384359839379707487531597508439290583675270527786838207200942340823824872058311269065712749556395607186338377633133210929612562584291388548254384647959667357892455767336863428984455029664378471767907619017308250105288714740842610159142490803380474973869895629179889118845070132979716420419325020236964762385224106738504349580760091673283676933629338464523765957396743111134948784093335479962953017271588887423400707970515693683932009979389116582274725369726319001852045693624730397578941448606157056433696274331652422405354892930038898880601289005808817581191746629375342287920955220247677250155069256284781745588663913527698814146440063419364849628780285830773189917916346031737079066388420512539839168899215196990739503570683080007194277161621572592964873162045167423911053563912860180405163755892771592592702096502797927265294757379281162060515475540092039051206926186556358068113643108324417364520137421428323030156221920932841378176982291288194549161808070190496728899591276891422867268985705432539610636525075651426006828819051374919326079043637391391682593522895276148701252020553732025850610211978153784338235220427347974630809962311768263595975986897846839284419918690206480264610931621790755846660655542172512045154946526323555012917977313142124581856087680928034999398531339391989138498494994117494020828418407686661206451266295738131156670183678432532328503964871047612427959188940792489668950571577790214669343455451497595925903436269862317388310114174959197479845243096009952924775258746865363847372874757049295247449175564232338522891995195422228403149651778711896653240924266439653798607297733207005500953736742768967200236608500676262338392253735280539007086804295630376514596045118266447712498759092319910701990197071235329743926415005228962806195435592302751758720369112592307331770040052407110773152929970227200684854242428633752624284296200621798056702615490880841857271337033676976661272534032894978934241510928012599609352252251677586679531903178266069157176593628909497307058620799715333741116267931955913672222824019467282441349013379406550939867270263031376977446687181542938822554540511132617353193193005030569245305044789728919955452991400688442736986749264874679548060541277795750003123086090673041040907288265657000780723992415874175904082096610545629101494826620416937724026942365938443345438025133213679966883293628369814008552307150103828571894756041449911681124058079194489933325443017990110274107068602845281462385102723272077062636240836649615874310869411212834905124718004606950414904988024695879771081306050086524603998800083720536494957577185085317767114259146915462192922657201959357441273492017173741158946003263012324452623681669271666962900541069036592972260175878343284825824285233892211863699789603346120894511310102296121122413730809053863727785879733815763722658042741298018724652453712821581537324244578094328765866458983184179380952195404218871073092327057434672833263213168347949373334096931944022414126455421529430309954998346272786382620005086557113495204732005151781475314056566176541040958547300113524066855752268246729787363005990454626574893787277508716853031837474446526538124481199217318047906607253898445453517103225667157766530364667221755583869192848152983802055360113841383003270080500685099177768183212506028171135152544339693183841916661006801350976025197083355202994253605523464157085280274926777026856075477563033545282932025779755093385550135913802569465018744307669290249017751543519015718229792147575466863689810869913569867846219367823082897875840604544958573356807604801145289539102741965427481207376230204594802288409277406203936129406865325443175244554599314554240543410405378977340256564219231976902009488606337616278753157109676647411684991044293930721364089120473591768014763315734710984541969924343000599540972658999822685154874032225844723922350029897636944927651442640777337370781986582904249663058828867005087907331870080900969383250289197024672691209644835962070295350590282102777876696437372000258186106898599229309151318650719717025655420766208043868153633011233562970290061118951631917142937493338945057743991676332516241463771134970269641602445086727262356128033193705750794741809955937741292279108165458155860413387342199134720222964744344574221230723779628574504153058338995931344437495385337113564471015437994332291648690265203499080641675905573664836479150752932265068653178696883084651872341323871043428404314717422370297141241370063029069600644078521553686982931969023365330180798020940447638280465549065475261857185814599587048866473202708689852765188016804971964893251125954908900291591326433082935590527150456992354705691993133496849390680469920871776006004252087372227999123728747020018965735289268861042601651657692439984734055262029863918286622950035636821273469436768670513118173375677683519572233870636547931801339463102494103335211818218802515486406723814543053573855142337805981468169036830096401423392512089213884445798638024884171994735207154035998000066030775307681019292439783694907894104436327824442049275858988626390931980890451253473291882120140521274618603088458652110845800054102274028661443551473060025489279295022156151741927810946713830778652907582687078094892160019353121409157615586841795554832561683028507236069911093601254165294996638532295959270806399715167773909821127949077695779002645513876777564897026474274062112764176037192901331410485163130369020946203834227521692762377129625631515997291178753359733884699783269601977552014946056757168259988403073846691896486039311785748599554713857011472930739747477842107620827038387152599552975780294998726637043594273200092187333646560231199054986805503012516199731363614243489765564596839993013845229500827367985378208280929158347194647556600218332964796580051492358578875542000279668331015127224160273237461922066349593070142828036121876011145570243448755683757168093215770880669149153100778301372481296258207162210542171006788905423443563991364788781920668178610528745141575961939521916852422807789776311942196009057342752595461058992427778510613639255962028172060565655277311291320121217356911307635383511799945066502205492945018156116800162162842505375626221651831898432993910904218270602304012458656141524455936373609874655292075964847314946493133560678452178025870139856073265748456132391258450200174348813228903256715484986522912437224541188731821482520416027169889555871561733432236572486957924814209532820962640042684368861283462167706759174918504246276811129036892538073365040694894240197472147804554701989125015233289926031366263553456947735402743443780097550015145633179183882061832132034775504513507480188252600540297908546093189637287738707159084473936851866247153809161206835474271514724663810851469773301124926610104139420429964087023494253596915864189491696121736750805664394598285154157449506554497053039975020129101052982764890573918613364885061510329548359323320116303287100806460645019700518534081763236049028633672154534713658366469336684026574478388602644043166276930501734060906086960907234905625865556157807088303826303748427242520662419144983627717402365853322381242135929897376192931248457563703031722710006662823483566754776966342544958940970154497395593309342951215871421659408783135139264039121563692540106952480064995806637671486902312814801464890715461576378757173850482585688991616512055706756406626438061281377838234977367647741382098106730183190215886575861172728993488878673816214384693794243605362728103917925003281359768999638050566917583156447813259821469216657005860255282218207438190083472966632830322988368265425506689905224745247367659594094057712070436857714430354898463235969679676727589855290638748836053118490066337501354862766272930650631688114286297170189874167429787742865450155256451420432718181382375678101240914888449428398484339087229335901484681931514159192861676369080162430265327642564664175325348046979962625844661462851475124862166845809381590330513425876985102920284013515225617147758261288375812067141835969425626957139740492782127164691601094280837432376238669025142578195203670669560990460766577840509632433073893163589853590653651045750526396316375918948523004759084166800432826787326636559370816988421054368911815299280007675422428968631778979504183390064761486895158480123560631313975017111217004649086001428808953349743868857537882893086076920676855902245908591053028102644778040190164410643125081028167489777036378944506487912635444158702242854269329277193045795169595231918885636649691808726765337752357526361406187337476253152238393997136881505851880085510492551666746079421085806914055359657871060897140417209155859440636724301206858579470090736026436030716270856615192121484175676907675778280320848681228706935260905595097783359193491400013135191976720071674514955233946516565166024426315227848345802822487238046705472598146689829450321141061519640916396443051108942269173623745629795678751788079645277452782950404064585674358133967306615411020522590617805351514496897448749915429990885684639465713078457756955176810327134504782631845378474871083794976735342815193572614374794253632624392008890068372589104953200114214194242892693836746024552445993934960027209253134466062558975964958055033567476671618469787359749031483080987948194273723230257594987974297708323336445921677952796990202488518232715985421466212138454626109040417196591782052344823043341725610786692409059300274506759123862701672162887159704107646265945383247711881756003375495755197297199614780350495111095531604424008152664195407280356650443499117040862160557427030690336967564409001460854427606700502095313076822456636545700582035485926337133092575139220978837247017612458884684359309904850378265507514291971606258905988653546207101453722980252832138942959395031199606414356365065110728283648822186194648794377407321698082849806545821238478019592332143468970888088239728146953915893934377687948088027901963757238800527012208896530928692583007842332646205592369186443762596217408013319344232183225672982726173030142035239849491622254031483864212605406870351482894611064044357854284335316783687255022121032459512333292353258009009823957443126813887140370966303825936636187808125698720536138487817452939369778447870857224827683928856656053710222523996757459587695415403765329309293258508926239519091788472310989697752051551783551177214637497459745912546531618285076359725392224528465131802308535548427008725103291596626723009948718358999763222013045732476086440886268471943744124847760981621879882658683689326264247462081666597431903491054435465194218922321575995787332615681352723468320758785962547148957576678678949970437765718826864293320850945146818672250714574110278190421531583196057048847173345520126315998229494658433365828997770020977289247202750124710132235346798990949789765510581567005210932060824592439478871784577162172612119976202601243642629427628482917324328386432163121714508972201451103052114262173948544927045339681987781772990298306777250400345116350213777646866354300137831547573837408397086838037566274543552836409537115068749551679712930181706764821000767678104860978583936090814347799731049118634799711464854625351424310022751002008604412417152644506333728218120447687058771718704729067263457155363917948288400589227863066319004656638431072254100446608219541545994799282407479353212923430942022827456787535659801465535484718276241802733048814686047409048795504119415377161466185598937150733437773577900628184274758112183146898128940243422721638028374449854448641201728592717358660894959575876583609513519126952787862259573943255252559101870236146380347505702182730812898953579087026868486471294238476933197214994722427003932601282948958191323630567295233033238167081061440998416830653442950450922251974804089635633543171769617816104023368463815297479117064142687964866587091338944457312495550466741950369380463435946440227301717398322648287579262286405902427701068500478390325831110401258507978449694257846724873880907630879648043269464469175252660717991682445546231781359441533863896367027303852709241664134246557482510292860737411423053170626149025775334277899426317248901839319959704757045729782362615119523044026587356342793848455566675327751592677312935658263990059976600867067790730146731856266852019383295813565029801615928369230573695438226199245801932058848077757385905036254412460199437851790190441496026433525077998049435604210688391222765322846446973774014217083605091228382156993363127578656383682711335360956345509551817916395028242553015932437331877684854629304405321323948205005230318812911502901574722569063176537822232692181394480728386942230878342372435861572558545457433002362938258974695343597736020527130803842940007126763126442854515735989795963323431523539227146828701699493868007060826468622087775448002725410468762254364018121851798024270473311000544425318948747962701935959508198223643088268790325940987925348640314791236930233728018055264324503425297198327349083672483415934204104695665342315132664165921915691818873870363905495046721009480713613232643296124741711359887032571683871221934225794471904208775885870266518212978607238374863929684340922566157354773897423276490981898036068553320572553654792730827481914152911659017767062081566434513796695998978930417242289442436452737945693556195479817367190734848203084896447984077476954168351005492608161604649272984034428291878482107365101478411873801300443632571631355306379026453245406758505662919452783608600812984035785569845360192318904696414624318260723766678914612349334065122073207942378171361389861553821384715379196477054222975767289634595414687364948487411170861948052723054054087448060123813554572624810291472947727068537601847302980997639028875912901790219611518787889100616264706350139807653189052481837870752502913701206463592918274533950788876620116323419993634793875646175512420590521281547403697993909767876972454544550833301789447022191819571396240975307309337111624680124669257335836265572370230599329230942430553194711440785013321242690634664028479934670349559314418461560071573841695634553305570832576180056277997838049230523610458046105273609006066042252015196024631232235176336716748486417562544117680785162712768143900506281524324853898927926455062515810377048292803238738574165174021005578980482246778091025347069170126744517750226283972130053251125364069685331652954240501485472238596922798765238293799032236910641088056745026868994959962614943192015857567508777641869538329050242001375843242099163122873408282522190593571225086427121298027806770138075214691970325430457649876774127654098411427325322986139222116612403199372604573364049491826418241687812520688964121722082075146083328298334952125119731573993434920816663891970242281375940373043070855748026392842853312514711002659723560986104881560618104293351307285635879587134846508566059089634540433059606882006275335467405977242974563501713384626996901173321060125596722567087389092708093426884470767986373648672961382579226577926467408008534876229971906662558840621124041220853691486328438214577824850474566594254110436059670797461831137182177906866527074997040413488741605679414720988757602969221709944429542961983862639543223233298623233120643149054715726707630488464791823474652873828480411228277892252741682274103991210945241777439969840291079631840891991955563931817140305865140739204567381509689221243203796073099557405453263211103176071127260173887866980729196110009068498401606774602450387028595763372904911649602529148237398824709390037629476597052280123398074566097072621016969069691099208712288212327463339995213207165032886951324156340816368633025606431313843576166542825690957465543049374769670612215663292579699341326644880747367492994920957303614982760540812093838222117503124402766172407794020965411873072510439507581760557558145692035425027397100536778238156647961364129579526914942752415397546444228731759481287959669205112528288112145340945523375560557738362179245742484642864682068481226186012495647225763436040009919555220424176845179273782897507112802801283078339480007164784885704329299950223052285061768881185080981199364321383757062289067150103808232570747706062710415403897312553966172216722479334481013511147966940206944686115280049183513401038530212845780564047495086400948417866522430700092704281565747317167606187235474750443027363825968570794059541728093482721978869834989406790282229621645976920123907179475317922764284156488114039139667780388048760229214249928656086794072940062768051655377152716342232388146216174134388287850797626613066255207297754205632660820146975678787907404944688456704605612754266777890240233025687212366339031115452234111492236525201569660992834811738862250650171918716588559360769302600663939288071891270646284691425767685192590646265363466904926962906659823301503471297633167041534528359423497268122928628891528469624194804730844723881016403929672031794586142254022442017646386645678601684081057533465064935991372176995511305228591175822264163175889794796336987730221102151461290810682463547711605752023002452620138729454830973828067395390860531008068858688877358398712594961173975458017407903169305509249299039444175039364870561080456750830482862136531989244006823632222901437754560442844069702938119680988151989786060451361174514445722704711992115923728490395343301733446229972180841298532361374089422044872194575141611818036675022253928982632414654126684440820398566609161515679322707114121683839972608524054014023986875946833271237076030493206851663628017884477308059111933192674510975614881629132015234432474002300528146192537244717624497498909043189618957691996160831714047437858041819197982475620169751962583503315363792228698147476613746219423922348988717857727470609959248154892077916219330051487627559586812996472399886440362380499145845608788359202300439255117636249702061625020469838547491692862426041687294096895632431567634837176570298648406003594891468429090248668008313194569673088997230116224336006098456494480334029749621439302724449736352976373109230426261295598683636144760351066541713941737271965209320740527542820906308637929748732033452694592935380126308688228369109684406925079562605646461645828002540771091853459639949793096024172675156674617106229655961317837684882625253900077009976316334966969801959578779606010399040928029280776638688710722353511573987021357457968747427719752202801727191260354939310796852183423291789942665723333727247022288542947435376622058064809507397670240383025610295540195827043720358809074473806883086226371888786838747723138645939213522386728485309664625646003792341241850556988937294763340317020232803507789081016184376632212319913291743416123396927077984934806461340574589005369771420166823796512959443565463288173155841020196431261267423375548944878380343655895969463599554754197951335444810863519064470417933198811727896535153977057515385663196140741142508439334205101040484461897187179454693591455099059059507066497307638523862941224949094644289227549699488953455965794638746106426453241194915315556454250478688112804685971391314788087364130025750580884933457101591272697661175905766479261909099549481064733197419356045931362764168075099342043815688955899196119675651731567348930690217333170413840777631920875751090255889837259906704165783827751046793778076302058946071220667887985065461738129279597090007262435442064754340953943308840690330802032881485746588925120649131436301921072671904634933228607413434580495663910403165172777617102363617400917300793405817073119913487249650473369267287370892568905231714520760008179503446547792027439119924160513389517661583384714924501560162829550351464650550621313247828014417871778712794832748089902949774792155507161489904091240682074290572898064348657623094968082056850555620512792780703074944119172230363054898577050276882708385809464659168455473526247950530912351939789439014140951108423028861763883130944324743610933714304777925535577156368940631301000273090419619744152293417159610317738957950478520748632868873916139379589380175420893484406415029347635735629839232173962332990170736239201389664762557130551613411450648712626382439484732504529239150043289103584372505794782320670757958610666506579513101941440823504676854692174053310279386134186758475465430977130904161235034976253379787614951559158316146974539577468266048951736044735699704298147691248158044582967425496064784965229172209845803385898543148347620585385380743365826348770555946427822271073777121465135547192388605970221251558078782386683554811325728888760895609876824818161494124755204853307915812589253713430466140881339912018166641339149350590681509726152224847536076811031508308485882834811833959844526071154259489943345825547684016733810229584170055548176213788257901563287504828687455903164248360143665273479993873286634488698612811901219448710882557646493434303843988476646973411292156914041949045004190138220609699946176374761410535374877333383686308905186387040801617429373743376443927434170394601183207762916987186485086692788644281261034656708089643860458376596901798191645654836924321071307330062676042614108790472313025756919627635611216321569363492766381533826714934577337402164356581101684817512311603567691443131080221542081404794498863957679705610233204952984451867759510948052638075504808748014862795198731060628157471599059438159241177974671721522761425219917813005198728701944154208769960768484618528057555916937652231210451381414626113189742976714750097549757369448595083318058088248277406579773746015430006439767806663260177048095867328074956313035295376598113365126591170441934126795476838306737941744877452666216525275803853979795353128412939707849039780847618034879862364309139152605710619248324519573230954028286456056648965728578694441953856135242171741130858528210889788897112491542853624298119632805750989817395914584211402448286275812594727159460377678881743745868482052207049714244651636348973294146947964955234049226080031142933330739730370550843572222715433600276979698095036147577686831853072712046153715109263855431548295317393353073785695956867576380771122990007585661014831998723298805542247598536748795905045358818614501041559833008065386345577127988907449224219705903992826297592515116696362076359682852889799150909061627656917418240085726092644362699453929424056079862585557730403579727116238695251903946277196539672552673507823560663156187773705777294788940323003636919625700556652000220317278467128073648955922922425647674191842879993705911649260009451113475239883902106806422257626777088184030324221209586751375377705429870849416933821551517298900218590389483593596322487947051388791990511808265146655299523412975140065769371973723505979787856565769174499548856688698053973449632876573251429001686375652919261852622648267135139156608321194477533642791313814275677417519265556048036843197066043657594225266805078626585416698874569219409937199584924903427551459507259165491861216368207134731165458240059204565894242401149209650129163632997422854403912618810874914796483909543984244032801024765361589681280357985037920386215116541283152114783486225726797145070206688807881733455814260128379206043537905349452524525753400878671658047588755813780306076514758458860822522635957483845458788256282093777776163791280054020651649608954517311886008764597220293324931295258429066044856468063767181569668064223891835946143941412542460166354088580279079538606690652939877216776081077073199584307365827438349340877151129977232936159221809824508852839147866913925820352436787733212706308922394329625604165709010917181002679541371645754000451409024345697234664347267402967260950907892926109506412081390597865615464371601663884423627151418160413799511572480059462800777135278688239530069507663428298315883995809410832624877915683695884108084439766762874741765197660588928197504918029499376926302770373875908785204991246691155902986787497421812474558148632592076372500383233611268763949476353049523460381864147515898405053320274508735175087017858136496834000930567077252879921084204303780691202145185632719486264987108863052430038704472462485088250456729160248182402745514352442766084001343643880371010469781753806401706052648124206337953625802265590553124063040101582062483917026036845426552554614848545253771414032681440000647772833939510426238628227707774389585512323618548119751350767886430722259823244977478532057692442157152394346353621866550119787253012718236551428264500065561996856305675175950997935825007947542229563328879928124565597778854416230505463725413880429501369811565705105505396031171899944114895381929232130891526798978648081790288046745812622119406077763072121054076688552476741462936658083673679649096557757154659108943849880679807144576209850331535386014984410113498978943725296412140168526947916904825743867959056748459989543818682373911433404535503368269029422623496903072907134441829797316050190028672294119996384072529684352135081215890747897543732475850885536418364225436019917352344114230266442915257372813442555809538824151856625966582108522563279494407743342438469631965905650537559216451915383039322814213190581757806124638419184989027186646970581237643981088291531887168888437584912402499609280870559018501076704746112908488995734661695086042150731421560458620709262686478628666100724092161656397180865967612673830064824872626192626469090570585698502194229671697419388218697995981154909547676791324594286958931817694326652689023444255820157189113587716738274437190209904562000503567820848522214084753800806050647143378852579374800645480569984021468352834165103053357416607680477970566722938838552529490664476606684165467776673492353232761553870094057966476800830841816962964167957586548185973359848381773094416814581382436802359357614201546871189498281157052683715455754508614186174882544766605611596043268926665039516070616762798040333565814348686218647698434132192974084316480939256970398251414734498196837542035780240133195676145690301219590386056142775024079272331506051504547721920635986696396919990853517189626806145743302571686039629084118042986122210575185813479873960658417384342400171746900821963892696674180006122204917142433954778740059037243998390827566092351627025973837621439821350561089582927061850244185651774779560914502599306172756078045252918828392163586512062616541751644038994931265511899582906047120530623759956066501256280503553591242441613638941119256958173709556298710306828132656076323608249127923740222985316619831140998084944508228258844402597155710756778528356526590160095055697522941369445241087862837366732441715694510917328554239658155628737464669260244261739480114731855915575157947861627045458598209411412467667985303438176298993464293914119662739348513606808791953346840353926062002855404097579208975391664956843992876299273586112129512090331477704632995288711618686725001212449960294482949669231772518623476618570146493815376383660570515498222822416975677363909833044104561929795488499948192269937683324173414754793987285019648493522842852000049568431591005207604378890209983411112587644768117152912476682326979549800920375012252846595870961078830275765085236582503744152802106281362841196061591633365908025229481274385893351328441006812037705339790239557673063056321046786913892503063242869599711807711286583460458774543065666144598910896624919268450867962925856270068263045052318691130615313780451960760323715522640774938142070516081133925833178861448355031170273655267592200118417203914654370185413083774396931277622481946779197803943735794407302973356649140749886594883297909721119651233045408578136877821766708668172218251563479172497786150616157671848239612001399060951018012600559743196637503436346608068881449030653514985076677275218627247301615420052640145954730245691850707192752502814735954282867982870181357012013168493021432290636731707120018999544072726943308904258115985268967334522261713855116911371948008230378203907787881533770397812141423818914756571492754179995049287422347088661008923354348539731089067642244074334247153227098370064895585316146726247583091891316886148561636958645925338901095871372274334739550456970191191000313090840170266082830615173782687329513178822277817931733555612789063281308862473240099100727955917020682880932983339066636204358687147220917259498419510102666837825439195827559663686733684868684656227890041417588520259405260337141870744256512383927953673819393324581947241753172155706643386291518691051783583455213782771859456835060101384165998720324298187933480067921024772378410984192511162415143105090020220518577348376722971678319325517683447219189331921212879230283131475998612304874444826823927305506690261517621459466665273850909518303374445583642067537993756473035801224106440422227754608318785721953269504183605625941358368847963300838706433909444209258516533195325054615869757257676290441646306641846846107417417348264058509493281818461147773710528413214049533606418874979156650695755816045627035654192542367013944290330297600634303445969074529550660442137144763370613139402552241564064002404189342756863844287064387218090652740609031776529099670086377766662885729402762791410139086976068381244569232565344141342010010150551653616032038817981481529807326247262684957669030739698776039213254035823226115886312979578016374094612850102282659146519791666245342028056752473809860989072346391802842717189012149053243496771595453422992096567318182180450260163496446063275094201108681965601463029435068543775289506223688764551482492239563337175791475812259269252188081576630303183758020588727006027575828048752425263180901545824056216518260574378729176669566433205419647973105163095981336891686444082455867623870958142388428744090295836528697978544789556152795323028477331166782730748785297816497227281755750717715338590541864731974011107101439826014686239225638365249076330595453379812084291559527008000323076316819808315993336361044052125493759349764660351549844572322325023756773774225613645299868991758551497624327372070557474617734794404340067441000707086861285059994129341671908154226378035291701609804403641088616129995791592462025422179986980376278274182176635538439309591531502548520650823098019926261038863112549339691647080636108156302587857696133748213612245759658062749674930262499019320817509157223150315323432751678277470438663035808539714386150406103323679379783890130993792163522431467859852694148497237711295000169154926937196437057504876011577430710127651893714613834610043305282981414128806473101578041554808024476773527577450623238422712748951523485152635669054717650819358379073004845720263324472995300411589536521709566032160841874991252409127228973984948377639259734968632639164990269840479343225249847406404102689895037525995379239658263526730701247870026790568830823721817936124704995029350770522791263446831102138868631596494261116838689647969764408191900965046512789721276542570220659425842659809400973561654514029459383626579279996046390634185505284963463532586519166298585247913859346619908365835166702012950459352867859493142678928037663959589178692938084540619126364392591288169017757430377418374147052809102885357409372604951278211888300405677498378423564709805293384596880761318479708788268403371314873964408864100007602769131411115257955265018483796675625584403155773246993620009044442994564191313000436481606226614116098989962230028493054768487549209817356057250357957238414601052200917970332900483461897323351031169448375468759936971620433601972737072790350391675669722919583516024655024138751528142835835130642670657920186871399445588791595345891535152262763520621634966114834518699290871376394290097538384414774963838705145706418881863935354383801071497892023143213397178383877417204643586889982169102194337440685148030426753015960868845741555756596126851652837199462380696792206808629333644326257754366178765782604551920319975651541585494552946447075028168039948157998242699920047411486920783857555082378427123602411593388408819209492945171763325365052303413486100577131572386045103465571059318038384280751238744242882390337267356586318330787616236313328562877385053010537918915994720305335956829353926559081005959344491126995883315793634459276806152718311061745584864305291217898952123598509613516137194552185973287421975655372053510561252635049904826963824325414032286806233463907818017479289985524655398984502264668832497476732824272866488824847606128116625753427410627529739557278731957348663430702583290805581105734134935560767463982734540224480238015286665060345346505043987212046303704422113263298850458586887948867417179993844766884181174348143317488334324622498684666707716099860030852668928024921307635085802119278296839375920483060236459874082104941071236426763735022142977189137793493604660941606448912836971074043651236163465986822917138465854743767493148892997866493794003641782369084762954071545300183218264856488059346479572886115947111839684601770337567660049916249040526504630110231090556090810449069081398329931368152557720128690344281480254622102913139296838430239936816130502933096474865920357849234175179939672088603592526462047594507228274509732436693249239015672143521257322809033881328656371141565448783520704472955564276820874859389300952969307214551798106802846677666258991033630901185133438663733532796446163201632952095930258537905986737485795908667749892151634552200730553483565363803381628759365510906478873466787201665925327095517439495545906971434358837847137461130549690687073256093997794296258430665903460598839911374251787766564163745071048301747925693435901798242428538546756105819671881965117780729785265944506266431902173965521442661956807259834550716192188776462544189848937643324984046204495416490178334971004127029290270182277651141723438867100326906441679083151827722555175467175332578922545584928571443381883341944477948711117814311336089760583108136021500885039212531903606232784504496597870866532544774989402900506162285564007372352366658603400865401892902840572264104696001870804875766428954920786720573228478817781367781021432965310425246618795520496417300415974352969152424586536445194805612461653688324880804970951341542126700768042197100914139272832932188278148968061110352945445992916808078056106298021420928668194139269189216759967093953844174434649421665572041535117112213805344870826051441749736329626315177640627247230081161483061304871627448169853957976013864436103525400757259665978887000891736161671443205033786569543871375002559543734807787747209256099314092191080039045437796968277360220332305355142072560046754556176480093857527231015807098958528442365069084658101344613004984256137279755446021295835187237378195650153017908218604133237192736363883527614886628626904712130456646289006385937840806891493354285525712433065040823144483937987589441227631763811078912021647680098421206139938215216390178980593871656386675481998908867909326762433394504260139597010059277952652946928079651326221000138836618667265887310063500995942280435822359534783458076273051435935579588891298205873889077763380285044836184053911983281406475717400390862150473706311290181485845143757096625408939041890115668435981854592066995019322052324138281031343318369529267121419948375520417561190968858329074500440090976272027374129775897348338105773052460970835019798391875127002950684945283803814361715260414372028708846189777496031816020366648425902228686121114016635921985105011159299270552547718629303574484577019894152678312285311267619735982599816757858974471177067181431820322125985766173382314003422245784296572731318121231887366724519994847893589020719715884919365973165959074147820609705985428284501177579217628901011772821142737168233050904343250524526824660946740071232510297371484096043193960625702348869141222863137513787796699985783566895763134245629158684085478566215394264130718330736328101145738764111732804556311500985989994969434800404201187083605486749421767233929277946436133400840045552491713291863965112516220448512483753171899039343119443186473754250471552376258507769433859609317829432958540111460276724440741216503596628162076471339619380258959277228639060899307774821000982966141295448890209442221515453858043209290195669177853685929308818309404418261174831905130956057329296959781367507855963660862636229144975711040184569097280618928643414186575992559998931881269957382550334059038198287356751709656536772016544196815301827095853933414589811275591169751346246118004514380396641129446686954734612173990989062211591156693867409249769539223406594504637900016430454327269647295511412301255127824818176206523255871863754273486892488331789005009514157940380068088818361464652473161186252788910360384288831519914590137952586865315203507553511972769146258394660119977240195394550228611717927004936629923238006387309118068463612280804364447758497831519655284282875139984838320616230928566116431055882073522018208212584163744987909316028566426468672194219001136264158920110459872542156678528721145056759385938742869941451492733264331161593319267878540257868937019280839895690687681074744267772296968563642930697470760971030008554853219915823158325352837008658938047384939102983648446964930422579691782215111185524963336531047367001299802950302413023669135247483114410799241364112510164092536577604599814940139472656168019561291882258366970300894446361096104692292248535203504960925587338562188337107190373529794987840470529118517451812568377915088561591661111516952047440085360749937084268705596521980772492017780575680013822783859358344629783615968445819144693048593981384656768935620599688876107277770835174272868166662124154914120737896544635232505710181889171428315979339581060128799504941661858139329479029031928090428743824038450090111332340719458347199701333177354514558884109495205012877649284517519081935108686290425483301168020483711506856057160329476886026276252324164704618756339524863547120077138740943351891041115698949098412010969019464933311884286368434389621897841965947143032597660471376438848385709693216705364919875484417761078782275390616030238377582150936518524272066668117324544169965590890060431417617160971912949959962587081550793171639198954715851169298927022324115475805097741417389670719987144724109504857145741868108105597191129867804802341079678676037954397334663496049327095080346323165517134465903760136639159077528922155843348270073214667918396803473920743792695682963916288594070369159177239923641204789197351207141649764347596802600472114030396007080779282239953304611758163080946690351708809823973118064532329119468986136471560940670268842186824978194193804994844430371430366224695580085009558815046138373980559458846997186415713620578492616693464921154588017136650896346335791157872740993767215858728552273645084069726724262243120534965593928516917580142469284011105297876702934800458666225481414335430924826999246855011582939824954512197866559450680985583307928207234282201985312434517084905741364527939591601928547392715635726883362830034441232337434292431891827019557102569440077064827276079918393148087457589431408532146403773194863961950392494437405512798473548012342044950438642882662570603633797451388059498313131326820885354527773456991516485707738156620800122161279575809055819923844527633467320098684553975980273322866661767411502444401311905185245736490752432097871299244765038221890011106491534902127608204223699455828698627661122425488700996983939045874689546340001729265852710268603702503488920597021242912260216741202502194019439654460151847785258115697564671806630795558005509560179031116639882356402355008607217192781367848208638766857517805649372070315478885397019677964297264480254950246447617634133454195979829948342123697118558373042094567868841748541426107319203074659498101348770756584995152173970918705285306501203915373868865819955177095444530410609944398738223719866991327520268497570812611310055768171722415488649647899521354365736929612445445177710106822302899224396328898389604293090240996876423915008187327163190843191609912469698065748498680126062413952447825718219958192161272157104592970849758751635317723263573877028457442641164511748223468459329982653858047959007316454140660089387325102660733321046761689018409508393818598527337646350444093590738967705629600409104770957035951079029168646064769165647817918437750510924224121846557504813794744308591899144826282697119806717697638666431171808063087312336871866220993423794115292334971384746537001941488244589034672877829158480976767248765800016315491709000097165958173372151286272220356029865102835633524981068755299980579832644134346168186233655532928434534595694004045669265966131870872460377423628263920887111805429013297596450182913430177999287433619935738278968945414168692365949978660252918425785527676681381523919657232900798931271623417890124563403383302185987914056928087793576531035489246759227972233220321315988517971645574866218455127232398739030167778761926063132180551974992175095697172474304482408170791828685719395125359278233252700771847474468523100883739781138220535576718690950380359560922432818515337463970445093660778960529040400340625842161766681506181289240930072651951297932904740970539007412076196089923249754106298182950268131765052442835650099709155241289607423515989000963035203021734476745989374618729539474862306480644461572433285659296206404714710180080511013167172082480317738312274493083880029008879129553056585854227376234730516637284966085917570717690443940675379471779389086305092625292578229209544249923053392375874623791364977805207031393959418720855807266444220911488540964027576873136127727242891066254262537549792668282251161302599192524171631076653650885086706262571435056389053998957402071640932921061398552078796132337888173328710343983815489129773015000617490940226641060333301493799956966622344994390959312387905942427016121316585610131716342115949009740281697354376375658890344063897757364362330682400705945853275457182180638758048024690225327080256032576354829747898027379847844504557837293922551601774572483176944266650934016712999656197998526720621150646011106103786235894522296044049632882859542571328209542559623772170656244892458701754284884498158582005605549784674999670049880445513175039830111608966521565803680704369209535128393109833642953046020043521310304960416202693930160421716736199296686009496611274522298490421104897504167446805196114201512106279585440434284514310786135850484674174973492240975947865158948178502913280880383220167215187815639091903886429992300139001604143852236899389984675362529217215587502097870335361346179304575129546611361621774321909544005742823855498035977525512687327798031645384556451637380668439610437466585665798848578424773543440207758547160144213550011878823757794368822191579646719084055403949624142491224844137703013502269505683734916106313148539166129940816121785423448437713189126748028194206200442404947704880261439252410364201684834235898819350446035589516334846245763004767650360392711698373684316131971728317410842559528317507524621857987148786078153961119389973012371755274530182981318733800994774452945557472526409577379727595070979727981972466221969549859785319854054188415822815501637222020177112556706987833185060486934783552214025341253279075179699880624844531091878707363016433709536968158589040637868056709266656547765275606021814733532570949108629284583681696150347399324438593618037747822194552290134396469852611121064930595938372286837907950397590796181679445192884731739470363643647471793038680327664234891092461976719650790423688065084532925841557708777194405029439010300248952641129419577605396110746256294789133217118324025517492142296700251605473954331042042711474061471811344847337378747386916592490949084183434783389084684211125931924567877675365473591085681238337911251503351330372578763783676448733429846952305405949015019572675988583702394858621819215714162837726344529611646834524750931557207173435775433126166626655409730890586163246255191502358395569415923475921529389200259226622637515121052065783701884201509090658424259651742863047848743705826802486956819294841215785478934513020474408646119121670363912032012260570436300976614247331910288776904760959363006307564536496349736846002908190359497110782719757547946767482710230000612393043715930717846549223147809304390621360935149382754918743056657604824706717881185819043154376691173964661423641158382452834327670610403417040159075621930257244201619552473270295954786247416636504771959541957734431996957091658754293979376101376123954137811263919952438412135833013559788159477092395858607112175392924558943664152074091947126635294936851722300851146308301491164689943366186919569816909147184236074752924190245177080795872623966005044860712248347525508024233439158720435191282669699229434274403255019534483975482644593484046530684078178146396131703098349273056949152536807948475565419205892592565008214613503265606378743310459750856109190964297610530702470435573565246981751681257048991609997959430619364265873980168480892317973596729463838777058412985148592811465999784538161297183286553637802471305827824422899526719898027578399030985038798647559077400033774038923498826025623094648259778386614810627002667750956589399460654939512473128621072599144763841067789390127489008727148607933332909833049082448689428721369146939088022619560699517195210361541233181993522399572203352164621997592151030835742243464057719267576220315137338936467988200559304404896542187203649290568540195492290864458395985969642962366281994511712441963935449792505951538071667554176600766552838403969947756079296322442653181057426946291411722042403347098452864911168678752579558986693393708993052099899273770999031016382543729780382321016335798428903513197362035000589476221950718217694021552677272244662289966518583688592912041360072949418409615944006889875057245537530831347532530471068877893129905303734947486493062688670756732450317433932241121163830240174392940159751327328356943082565330657112064679217173051788642106821552665612617679153718723483465305307992111847714368475627596267503231866147769592683206744802566441321788196597100526122521674080448140040437659280401723981918577918226135827487351739876731151332200994219613821961637873969635802097169253211771065066400488354949172963548722349871874436322581808654103730099108615293988737272392206248670153608776199318325934230507644712695210736018910885499715961891321368128833136347674059131160582990182896066480919426216847546115521445921314543132907356048428950421184611359436531099680914482839669773504347916300542138666922580707162948512643806745490574123327682395481326831266694105777144326114668377664936008649353082719312790074746945300505179174454082166918145495297129571530433189221416056203813414458747971209261823977422145581751823051576056839668482546532896217326584347397055172103599286486111276969886060723681478041992630265480340111878521084714585243912580941306289500659392989135293271086323957135906246686371851206359481786559779705625435651422904324833744872978424660010635977896931056548663798432304888540395389283655413371855285088186500722680901442234901800157335309983628364420331059556829715789946261203432354284173968097342845379497240450159300083307749722068916316246346352112159626443693731640736619605234321346697575752409233041593053649215857170876447263464380702092805900197117461130113831257618234474581954427240352137368668955798993609220764411045246286846812304701192408543953184158669504358604540749407139648065943972273614330111933200258220686348387338628100310025105514200285905625883703775511660875709248596077504867647254040904135177078515253810927832308155738295515535447743918874203058517334402390176161705052359308384339430612779042794538393380856490935054288175812286410757881592595400696244676867877826556487380293055532163793032821472662845874761949465083491027474288810043560529706585592290491857618078613831623551858675957755670234574938730200121621962241561592696745905470253370572874766227281560783958934944806665514408392711049788823071979680747172316903656500424367252976818817357865851458955225670673355956636985044084791941089136899199766936571110625482446312613659452175669367744839195601452955233243741375123487044819638645402209686059617317940298764876589092377960249332050648262067455456560107459205857227114301614117749936296582779422909553598782790304127798533240024276387509714175169550470473014265959020043687423025734923590119566662468548032881344205291041482784554316040589659586841448114097591922446847545467105615602983069114351064641300281104911742867321764598549168482560538075490007823119957886914455079594958818141792238014181800022912839930611237092172507221430435099350151360905373646354411766655361360303448974689887174624920304028958298464364882220500197011919310127145639810766229629781080672776768949016420886371242620042606995388061059472356242393175117507865144519928453177334351845797204950197521308483675421634350162732265312998650895035994590803355802974537453959359209851181512321184698918335291163073445260386148788102299847047561061081748884899858052109355763114672496240873099284389381242310371497477829802216087828931040909139240079905772680837890474608401193971508225341761281999586465139948324699546520958044768076733012970544740470487642187923096261140771118333746685094427527933285065689528045549794902621863649953208822737703771249546512010418416713978673809381502120971542519631911295928274991780486961202851705259151750858938358286186099104651177843831051634326342471355369999747788636618023316432779548840056767047828279329016654265514085045296367260630280786765424157811221581704629368449764193867150880662392633066122635210979031272819465161912464665151527957456841870894175214595458778495761729676920874210908916092029986173710589069661236771842332653490739158778613612676117055340061905279772494284560811723679168426697112152313486321401705635519109082313770115146462303996613824328181028774704653600447433919428328634033906941583316269275340678644378376782736249194934537528539165101078658015504133988168728771182170281077295871386810846469809083899987832951526123094753404254175308414888073275765614038871439343867276817360408516442009370773485340615516430336615614934666973109188778848757337041267224323979268929848694476668102632462641263526032534350170452045102996943660654627427198778377793925865204018777062052121875975043441322294930215546404099343457822349043218624089408870531814817285146345095000849849298504191271625185731327562626525335233131723305019814325221681230848778742838258089456383548470819039665060515249503633535850946551103821447763617427688917865199486002680334178612279614946440923186548685059271007783324890940804622999411605174184322833045824689293322353381817791735242909018044166101271320042135028850812142918429237625011286572966106057725881674790365925456656403301645784914154390958063090091275259953425998225426636455389156297553697811631368487088630912903573536394097914172461570515783219376604572496692876585190248620723348659364597772909508109051420820547393465178554165858062679525337797634228867821456961809831133408125556742686309556597939809247241172747001590545388822135574790280566768261758949370308785879548801299420097720780878490182649568781914086620606170004913547572892579826144574715392672549994410986031026564560442441096542850460074631051984568911745379103060326363212533772377706896367424958509186384974968335054276710898552962344742435412626191224660313336467938910679469076619754589428943255866746586864400673527168793893917870395876581649363762241501602886236349548883042454093872577339464532813088227872385161416231955617358759277524514674564994821832126827895614901588080973325876402588281123758940816434422055335551872276924059305947126851283062841171010477691740431402262294701139579912737866521694957208635643354429369436692537046915660560872339123371211187091202619284899504449977494556528601435263430676467356993310611893564938673486399101667439511907019931804975748514276718316908937217232749062804920663325256324261896564971970379943931178632850414347432331023090460597406102388929420391395858159202928441752860989088663833198975637602378882251153434409626283267177641527913477136606015690888354501953535160623306237193432990551315717355924779935011715963854228348047798139098878884108668689967937618896590280826053617198560954324309190201045496968524353380438065253621163212304491505652459036257546108769297695854580192931365471568118381629704878552657645769118886890211114349566361989181913625907574602393424848344426336353018937050182112549826736137745446827080870170457446443239392624266701345600446056971284418352374583860939466858773837686559462757173119908398131759159822080428333107680604645233013936313413706565092319439638665916368169927977076715475998974377458335625874216166531774776858285205364676360270645372034400836666368768443125987603175726753092135590766010978900367599383013682217729044724272567697745109093647483850520887446789223079765656861124013212292761031013220811197872906691962948133792480771286397075496321207791484478652498576237251190423144873316559805268979867883204609677114002220703337180686028888850959208047850640416046121652110017657445989387076321737672109591349403431191346521287201898972819280307291044909713560934434799414449985634008323065086205076750719762771324660059074167403509220426106626649782643339284749992696188731968458087051457349448719213530817556272792736882328465915583285616511005058066038014424777261396582193414080225633956107917375272038268905482170088925589152532466394476509962483129760824356957199731461837510458266924012834612677578856261942363528374839046055934526106866995884721077836749405251538372879482687980781652324085336485800811852506580207760673316053958368808172169656520614417609156430601116705277914938690113113815742215810956050308575751425376534300862909615124976194499603391522307514970190266043899606935925868425713695357858769572168959706886634390623590678351105818444030193736727378931006762827795752875089406753710810241731839540388309421934698523171825791768185828223290530833006702254541862060591413064144522068221792589198931435032245813234547893302288227640270730371985338268940192667436206736285844788599326959438948746628754451737113476572641028910629541943555549641807874001116736482028133325773299947881736447392872213893032265156698772218763275627740715199573918917328715811163935877876349105654150761140092826433035696696580561630602105926326877980013694645894832004556615326212906434300674878991578855048847206306241527918504442368901510159226801163226482763778849508632362613323715587927518141608989855024862532576671995797344401019291898289111151600817295294615700275142581820690524888658052540528257657971812374862693908625188370368873690327880303666027220856294381599482063788292597500868721801408969029672081352069553097300124983815527737116516969473914836987054068821847859597533076470575202746776714300878861794305863136612584094477759492484612992411930161584360592794266147571954967883108352328448125493828195527471367747026949746226984855112811662209284224620472429767738668306155790581501753538731249425619464203938244920556052573585723960136216304364412461320222617127151312499105500982151795991519263573837109168841221255118227118977035955101821916062932547879589617727764936775713624798969381172780689638393725389221573891165212805165988768464087960197093357608370423333136918155395757592026057600136103108290059503575249716213277084091001113227891885220516133406567599219390028009215077773079270979771283607681047208979841112302756735671850426838399437106664548677213957423580796268549884208211162729356353138544862018035296034320054148046766807645081736586527987666769470319776956130470223138397617945800279155441850118479543195206350025848654925334364969904431135088494173464759835080434923532008947303236914155181213113720648290182268587624698075604002344572296979631340599946893407625082273240835250038912629487026896347757777665630743078450826427139028813814100631774366143126273473753706820067360395234523135691788585835143624760417492072052908563713896301323546370203499368240019479458639797105598385759362777565233825825736565907205661222935609214381570696817648978916407004013864955752833173210324327494792377181459814367479981124597394177204628545374881205268000585654098778788834672294415350950137356223524392726155123454905378253325342903736356375205627545639255231568231808482036596753885984131202783962211292168893099731773121274897597088560818772835227682230121185760645615886087000491871068609276745312313227101898186230720395093745456467051939547718254390300048673130719875579647548295020779332017591563760811015017087266562539626960671211377104969966320229605120920570138734023713721071527114391530524370826891995496740116976771835376109714357611372937447252278524246811167705650439360816390257139863352645889432917935349327438029872236061643348638756820823095294953367571118104163209208417562635100997631510551392157269144666062501856625842250371705328694427903906193130671601024646834441323591535145906332956424728995928868395098697514344819219840242853787405222673158072735706359939237007801681980481844196390884516770596125924449106172498179124024051986126688528343285357565047816226855206533275335030615121452251926064062553557627294533421497738168162679466899280170897735393657448807295680829857033752888702614336095371006132208732321918906254869054243794079107570983836627968153824588019148324249795264313935766867440095815616900989285885231765176455157128315380383627469971987356404111462140198188857066945781624530634423618580746813974840131655511000170652953486647277161677961607099007592094470614125046599060760297888586538978225628310025076617344922232619175983962918419482154815742044265890416852271142150912684354836737224899752013131114432503680245629746393943180893079983550551740083166436987545355101943407900599016652814353494032830711207406265386201359068881772727551276984827930922899069986024832805146861882864860043286600953097651691640407782275406947679506820845404152787039760430483614531514527163644664166857599084584315172558541497635587869152607172570002320729337909725848276851750897075003589493562846784445258047806818740387937175710114315895438282639039291519782290037175878838470268909332870327002632001540847688501495665717906410685678670498610406522399586494429796124238862430163925593128405498368334140991905499389240055228457500684420900245983538727029116630488117589474262046506704929521219767047432624887050481355939242913361123662274212288723094837957696856338587197376886166411464246042912819813347162460307779780851745653764730914551722063539396072812642457244956144324144515057090229310302894173349950666104323842130798708384047989349171847720478062259765993026328110239270166475759582885767847839229411314043433081394190349579581124615027112856234735046610977515929338717988335840775964668230442057983417659602930104920141511809988850862309052695645712419088245679730431056090101717074406184821707064494814559006273181880469101760775822039243316674929478950041306476221657712159562631198417795570438748382004638115988429536448639122144586602706253143999418992722666207753520805833109408470907245902401132208394978022243653482684858497438559349829014636504296545661004964921375606900654626029333437842957103122038830497323069166337499352576727689435904390923931391919697086694724091826216709566095720781442075288470216041150091830258182699028010819097125700623061892847352455642262765556717561625409236547214136713882367584758418323332930464911039662275769209363327435577732530532587574820029260238506222942327338630744655119723155338691573139698582680776936921234085855959954754856094315124124071957863557909951840796861492729169840643622842903563152663160365143165166591640930458703756132165965026734370664316376207301154362464078780035731249469128736343109661918067064068097963824002140405828772025866297675155827599887736423614447143139971552855262636337045393466636406799420973439883133122264157660534127170819079189398031653937355464342083890944320099224303347215700566659341027550384828435412404885811076822711331024229283967141489692071008833564897401962050572502493309109631142780509293292157694380154275954404692606984534083121966783748249422295144612255691784336120176862705114199299991288501206120833383656762814629420848147414327549752800829988993364895937198496408652992990277992867361010938185642791066179834038594572518625565785423520151674203432165489464724865124273688353912800479846721204433270097108758244291597400878327012021725656879043196993168893994680597392590343342535234910838232659486465475148880361623206439470358143927216902515854872746957525537285296701985894243691814774696656592597491527801704737892002254788052063119145206753562643317468758571463545286514689414690265371198698174570739156124969444273005786711598346995165827880609587742844346718342865283281248749306236767326740975501753375518429274149782443403007884818401463488517763045187558448843616437302531305414780907182732761588171342476605073274702699212769901381153314872187761028193363693943928724277736633534227296438049820402368884520017869231892828149086543774166390652527627769085509299334756072862217731539463304593320211350965138563717461028649570265882942851650642633254545832191706278456977883876114094601062559668924683933308989447255157216216363626103054914371097419600996711212721270102610270203268796852548392576631206177691902530928094011878353275147040914526683712361108479526476159593314324629045094288301879731208016315701137154292282924313767850322646456868887416036388654954625847962747614415661122734895049494752356972151451928253091869222482078813708218615594237397212074701259611339809837907451332312409848106815079659532553278027307782732743714242796317666006406697505133151575735137618513190947058760644589541390563589759258599207360904143238509420284666926330210395028509462130776760532567723513884010584150086020159510850339266649348647725365136146356416961423945426518525320590142355079008915924120923379590489944327220672433092794952974452972012462031455873768217874007929004894315311088277604469800775313822202455292530558082188035265299818125867620491814274908305449898745782895685510575180923969322106140650064755536393014930796436423390507913609821638592559049890588665787760840283167328874006501639886967280738582133032242905875011894776113524497131635408203908081760820417057902056362249245738243399282125888355227508779802705649451199707190429401436917942103455129205746033262760111605563920992571693243722116055506461379969386672563370978209471472436368433010699106656036050463490489493652653128971053894236131969961534681410523954035340771371254417910071837208595439592709842176613209088984271424053234507431862479957751311158713732403105352816353221157310157308379713665568094050736072880500733127241343199044695110820783781680942102099927592879686661872872901841137618367255450388261569494442791182225017578893087485414144088132231230112477048633873832852327132715314684687356690520045618482779542177332110100513460134260968072149862269919379265908120600404915702266804700429427151522520490797672743470755906152403171418412938458350425490771029709779514196142004430783517389577314266211822283716183080137588930392545781200174687770367168148099471402803051752064488256015118287023672026768505870089879890057081843374139635179514106657765574730787246374240082205424137077820861606420014399536588308937193315210393065521395984504729806387888574874040201938651114607888426642345211053225968664642217710559300743458690500547624297587611293352162288186218689525296407520341479218679354421407005522980334956377047857505010996014280601676702827203583380995147231553508405962357670892700748243380820325647879135083467493245570024875700213766443565928028042174030934037874219608905205260195980973576977611521134884854706793858725904237109986739976569231380140715953209467472867541063217587482328713900496108025504502867794698607015226699644800937371462136863633870836896057466130384706618355264774477885900072209711588941729141225157442949292410866916126560019427174251992805676395902627975144326199679237331732241024477082123679319847705224818193252698802394475783929584042161487363218723914597358141312641992883203331643482016008120756306592391413334478679453494441543443811002457476118048661461084809649947538380031369409258729181725146127275144766872628998694398900662990600062705416448076175318884820842496280565694735691801454757238083086945903462601334959167497167817890946071069737354601184069205337874126194610508914416543033635210677957589877673894205392061671416487726497574093756415254595825704233796506051007182004422732376678922355633583493640173751379840863529881899007537369476914078130073081095101525226627379075854364747291133669321555721277386876799668734569645277382562997400488616414158463631621960723150491852766987391830486636148704227796293615836538828269824516971655809772365641050246555349845742290860757048922864655879228806660293500238028738684381667037294479326444222583217958708444146664856127109514561406638508866657604467963483669311251808002908509107964928494565116235787458388893883062292707050130380482551444410542112759229653152553825265930510965088974954445252498831794763784738314747266263118914697057702305049170382884709062809108519822567453357448355144140096455468447897535130501324209408436812934220565931542339970955572425469609446390474415650674873018178183033923619128273684754122930392980396181108686515872602586656808907597680084616018329925230421151960061008742497118581827122221144876057906469401195266306224898313424593996351202149471996359506070754360324479247449678427273077021065501316504601768817288466277607335289682224804247417458324480060205143034956552846591344771231433607835340729107397699070764516263724032631825469880217974779296987320526597688085492381421161671972295395211523606244782438929259365271318078496604158236986522178950335323236647510891978330223508402174520601964910989759851449785195885050464790149112092577121229055861605003631934779996095850754299534146644289956444334362627164132874885567160288699864486331470829340438722549901384556245375505233299734283419071318222488276147872517256472894241887536073836546340526621243343286886899256784805397159935049316786067808648389572917627147766789464667200179357709202437514629514726100836740113932466226979639270310291150419580867180598923516278187107344452517000943601106765348664710441036321593192980569376792932679783373611071849281308876745539521319911832009282955984424867471432933429749711529401111909779467134502352653269880510952881885384983543633229142691583076378332001693653165321427718104510184411429623365316374714956959821157259962008329517505016473826952406528448139257311263826633499351714216051055841501178799988894299007506014730532181287159519415942756665170766896685487750496272782761594442591789840531512355810690731607176513347705575873349931065035094192186290829969251308906199794809682212754637721322899731391487906173998778142814445779918434683908171481821873037871906788065495096097626167901507329878509930741630391661159551523455490041875341345708819069915957833074963773201927019338448290686907724325343343084650086465954881403853710898196461290360364033565034938849314107983947152133420784270026283199529440746666482467946068260880352104267382282392527654067974175061773970730222218966061372681697344313003060927734821010010263145667830511101607665462579337368888704095626272327063351121828788002630847162087537228509730190291263047521655859242347023271356573683768139450853140925330092021879551113275712675261960695303104928308116067413310553986526924002907100125627653323762685856480208013186570705352565782131717634431328428030113373106943042267416665654193605067369656732632205907402995557967000783095268039081138461612592872534736407026764625120555245294143708599306854611262185434437196567724041006243049842815108707413005794683652368248123453522756883217713761348557684596862850350480824664688472463792407493964197050047623470245590803547410230492585282760988233571960881418708065316073734149303207752022149794355288744844521858437068743021629834411771162231459870817162380209162151937053405834438774613070538722993687439023947683976216885590035564573596881262185363506009326950942086541647921978482448534189053086569414807031091980000331596909322883670840506821645107365279375335610285032220391546166945666536886912980360408921895540891761787743353610492125449267303575576004532379563693170424514173660238911974736361690133509352302382004414104626076071158547514771181721769303904246917067262460521873924652868741444338671057101440181290027381784127998885713801745630143916286189028705578182450132535975165234264912327006252346786460168290372504867676957366343680309958545861813230087460717357087418137759539333785646391472545136931022643492495560101171914816454158892701332919797154051575790644671158953871421541936531529441148271101690756595808125590214144425848962743018370420931834933408116313849473413474508173214434497861303608438392214707906086575463144598148833572823159014861466711698670643594278206397591593948002661415418452177920317341683303917637341874125541738514398587647629159284756375797652766988392755514890897087228038961972458983029473119358237347782948789630967137287171492645947647181724609328753313092959838718559456228161368181261691521524785611506703279116567090515417150519242891734937674321598196246832256822110262731712194749799973663413841424048423218806014222765339919537143686161323053415919684729600331288399911402877507206147961119247517513144674205600884821630318599929358485259611711272612626194034960541887987869692220894631292259630262529019812968499440632760144644398075987113923408974655520645050892097728082813786968252775696194744347983650677276523065864164637968527986017163810895301443523677956270335969537983556003746647039920593358709896258541909005195163149373816997707376143912413811878701113564273372481583859066339044569806959986518038824853746085762319614159045999224072034877838303303726055993391347350870399131160102752013289061148839229140274221595841786397216904098670123526437319156125128684175205196508599665504125306383958288039356324643784819085027969200839285837746241960700360793200593890955213397141035207702443578853732246228590639201885672571736853011973548981968291889397946661682834724287599629632712643175835146181577861220923072837647325149389083221377952086955373898888963719716775520399779908784184014260604341160761681761231331864880559412387503285716391814035517665844370126165682527055556624969169332932099831780566737364366482121378823000350128179862064852670054960957262021992688944088987874848946462600712619293068181294778956929719976296992441107084046120606832722140903101394690067168081298876561878356610465627358022709940309242343139867353877187524397538551170029111858709411006528208649553578708587203616200172689587218337009619615646901231119622614099154227063774594282706982715982746265620899011918696028189840373596769674608569083164583185067429354586786375602674891962128870934472843838016743971336558766430356248028424098396267841014829518669178564076351359029147958191753557183381937435063513428101961736250265973435756784469649778997028104256732996456895234395246456839818724301473743688691854387401914443358010588491878479478587749771952148780337919428774597350802803150254931579834474216254164093166419417562879436443810815886398541053288934345889764834682109167263905397680180403202736329796853209408031489638721072818598243796870703636433951880869872337824500333579385052181430991261779106664617062602511589499997090201537221094298807489620628790526883231852785864424583182249228164529472432733965663992656409855013449597370491356238435417712934453988796188959067282714837211778346625706030993547832614378312598500230194891173205476569746569088717071171660108900956729066394804469485575869688945102978882351873041636164741437684033761557372603739655944087010059455435565274261837271581995154826552925658067704934470628021041793831214005937414039919470770252486005876895555804521007412915623734303361450473487741811170831772839810251226202655187066068373585160111993636898879858949260937282110376044962146175560351755167662844025345201561450766712318701959594444803570546090112400086222819882547002495059927306066237780709368313966982112401501757186286423038339812363159541644926709146039966466514072436156444953408530141408714382088859145043118710935191023670149396065993779657822020684497060356213412768505236417697753361252785399270615168689446011438647114797694753996530651679067417891148988999530999738522917005442025834202999778317372233324113473216460344260529164644602658273220807676527351712381998015330276002588893451270655462778048533948945871334622529202863545137834434183425160812479728101898732291398161677625592558136232103088051873425550479280293566012208477156288400563186680385423711192234301448872108863672453073664567542176055815636105786020578534019589186621120405993560326145562958882915014356137310425937088462386824722122783956387725358714777200641366536764055869152118426938107812048837245148883878149212997738874841912854677349533776388129590826391182617260195025951552880634660888822532808517479770528216152063769305545211930527070216554220306836827956258112136579485162654708052285469659871226594897472634550361996763354528473340510687914843093835282173185786108011376794438597579838417007554779051929194435260440499854246987289554666572985225396889701089892499871675618986667816501396774286778920715902208751762356985324507197005839115025530289874509755286453845332548361562180229602352673305787591357790027147479096598110625305576354651474339780081560561856490131288447826150016685852460889464533324191246617801796001397789252652129105646627768067660109064340378791543129207116880117903525208080335013866642995207818651561178778503554986976705556930567130293051025128136865165823079078314294761788514813323570848136634144056251010808031350497187906712924842147611745068913293515636488455706518853116989087675300667050039711723380871343463310111949324183649233507075701659550103957094068089050955369787176428313382796770550118556777555864502132234867570469389689907408505880399074895411215624626158333553021127013051512416892652899228931958799006680995313627808105313453256632146593333030126894722582957817317302327090211320299710564060150659492719367146024132018847519856720503832663726429947295115504406824095515989544563558206516354735147370358558139429630233942923313965983453303779101836703710569081369409439329839761865981521715485065059841121597498947246341922586334686784758571916821391400048283384107757665788131967603139275596307764819813387613261958332982134341593763841431583996223374200115664281337558471033056474174479746696772029777135231490813869165354117461460697915247642931600904717129346343591672538501517009067508643696113981842463267831443273335130794506977663354002447392302325433240685359734455915441125511345149685463211877636832932925443724706996949932437287578591556100264422425392019458191042780577118992827709948479918919144484585649142094093282123154293858173749027776597830015056762482119314464388272195797511782978423901429485465645653306411201192464941611573647852994869329633516345769348213203610129828305660865983056254672434596527747848047062703804423320949271073287395832377425682566653766222104168267385091322418904392822553030063999261902845950864604486248177276604338350666944713980324072562893119164123640381772151556182411601466422945616882841023127727096595384041204580326240871812283868616280734490763623726243936355189930642899531702132277160020217817683342434565867781578472812394151568339466428527984173661319494637881394201752479182799511143766955966903419970975062496041402388373970832282693028996090823256558219309370313983931965967917787263027208989080993811227393882898113281091212367591195585490146612539438367033218761645242973940795396744537642572383231700655466887372809261652646527311922462822859428317863659929431417998752728086970140107063693343457244352221211128669938750209063410405315124198263713132474492523806717285620919059979397122945933849260591402221049329582925160305953928472306799887876212446616496251100577368549824555900991951335962750933148499239357572035659208371880329127713757025411049021206444103087758401378408733659277147880411241135364870728011358514459953187442555225071017390662886666989161708363237523044354269131954301949655273741798971240934313927286106397027195351630232187158767795882836020591263749526757857102957482921665174537759775604942241124529671774667878214482383486894109315006128635973445907458887930059599246361432887372175686898903156259868416959338063489282904035954145651796696554411882204364416738113788519670249031624234096384771762346603805397443301177835835046873549251025551768538832558602505585265108553869226886728567648878916772561664008044654935824885612872571715782069476709986088153614164930908366854837812869955457193436352547860631859082582165865394814759708273021736608793825377164362449930769315747116389773306094446101792443587050036677468515164000623143813416611551791922994209158232079617168464080154123486730297659943688403370995868831756585883887746957964888582073384652043012540029549062391891006749805648552664410895653495266496965357698845619215974301331759909278300092316977359769471640122930067354120832371093550078423039721146081652062911900292724514909699096947242316906341045392103507936021689725887151251913960402067906963504384629177445769870262554341192055115255118995307108612991487888786547643938577341903344890427899115203193876796863201002689150153978417004029496844006490982220510598497858003253056234416252122668862259648464775092837456355525492302647057342264727571963339575872782082372661344362091422153843349728824178596210646007652283891806291848946989109653264380367466826057329060274489843039378349865728309813678611120392148098174820992932251819637545372778540275907651372579109406944895404917357468137670422964640864704298592535169472496287146636940731503316067296200072886292034440399424030004779151157104844351841181707342128549822647579074012564201948025918128759222165727301032476258169667704071440628867989760139338239599190255711366948630424564328144729762427870625940742027968827749090651351597710828147024796751270553745556645774610416883258791333178018406757441344889133225319179284946026063765389709548129325082479016751268613081940067272862359160421959359233450027582653251607393115444976115787677897518365169990182967535227917366459176632552910300746244041390207998485312391107051176101591434944665918885235753672047046317486264209660045035019247061487063509380759219897190396336424581645974689988834745753708423554697617799176961214753185759242627893377785466531507216144178968476660574436471428582041247741859145530214740280817931475384784710866271489532193623026947345865336963632328192967303014315597598948140672363041685045725072737966722902263751617485081605900865729854315609589985403314620364390737231074968349487364781033791876655705748712113022076082298974593282403127940030524240508681570283749568324954387499521033780209160136006394084070973798126515574239120419872536913134259028388054941170249754461778557508821230588610665142045825782864107615572231653086770050530625747138412942770441024951663391471511062060935977749676224733310051256509368307339697672368026253610388958329152022646297117404858410669566060016834677588927909158004626141413224114965917129214166583860804706110507078984569690066113827507282554527945891189990825333798783742194648946519798482117055254848504910698905902983358064856550047760607059959545335311205743402293381135585356664453900580288937772191738481104717967441692883990606143255275131202779756666422176416112264497444508058000464377256674338967032048849030998327211316442921325661126536549799751422249481528580841914599536991000157412156265484450523708953643528635750474725570684601639792467404670718443869191946848855722740530054997212223912433798058974491595905850680141495524486398304086963962694537233420282133949284337091220584732961202907783512733038395077920958818380428732352289915334509163467912637781141444430329542297337734012869646379743957116983694009295351491817542915185432456128494429441436069325076512091397620211557729437369728700265130500861325321258937211786895617849979807753036268222963532778939920141416430340973529985920132791729582682376518019080556084565923350074647493121546849654703703237799902496996270108651745314632077431439110518416297504088369468785099281309774822517975864888127031187336871610479554876320271073784176123828830265333477953441646526155337213068557828735460652762868132526402461257460328889954599376840486964346527776408766631352033108645080881062347181128555441100065350298365604917467766857045227089697419944250777651236053192852739513811847332812478526540799705743888571804001606311120237267681152968597445234917445918688772584541184477531216143192989287682998978375676945530321318902901356036887685825474181288813371268026891505733071966534977213834764324817248589857267309926600089687938527426718831168182658440213385951722125615270678765822729604093316595623548584905708964539497143541387973855625184102576294623423789951393125834270736047367568287622365119818897928615872975541262791329004124373832727813888515031480272143657961678620131230081549522255812275848576002520052303618641367380205640126919692317675207290613930332528371593755783149063833529218134320597983604613638854460182999647064167574471285025084284024486890943001785104416832753571048698881367801076338254330072670535281552695946889786724060145016604674844849908427132519786710190106784839352488003029341071608885623637250713516890684972828122128553001411347848510967840213513387469421013657946721110538643744217259348697053630777226644800457783110095906952246774896940417214991897194469852966954196565889467168694448839607639521216618602975481119783726864191145650393495098798515990870717540652041819194918648078246265355608235982201499895135374269102074762400142425996029013946831242451106252812134601642196663339601351526683101859380788588909119827805721046275247350061045330242797153158899002081287094705506762025940188700687351771956767548472881213190456911374305451684315679469251329953435543192488924116029801477950892192914396824203318371018841628720685886867326993051815008234635280270741135807539314522842718420685892696051702238949204521608340899610697375956231725821295388432118694620521575658455368223941675535347668343648637399675510539227476404195504548338028429792849335854511192452326980966676285109690652653989703403860176033778296435257573268429183760794511474119800843804504628605105793043757306534571642675783156579550577492264298973018136554413842451412113097160174349414717085490091288404801556057773878400442825776068471353890116778085184280702539282799487458424207899017174359116124359675479739921224583646158089821448280481821632432000634563739833660629149316691446425937428739798096696798906862733355000851130646861761740032125986632560776944855737272662046464340631709497042296194987628622497319989973827825919522057195516039835566318605550974791688231847605699284126609598951707195266162973633894635977023580565771995481801677283122970474745041733382318810356322500173725364617085172637492754688564736977405998099686366460784208732686032286220529418031596261769586353333660382310359330633528939161169224750223115492454860443760804896226197770530779948247457846775787124727363975626199810835973906367482052375865663367606116874651295099999875128437559509070531241927266880247067666952692629696080399627296749745666021625086852387632710737077244633057688037671208219358265375862715018159380797087824110578578836126698982820950115621926926711347197023335959551860789218374736506154889398531285372970466634950947929766539027676774967851859501295001671193668918480732770372974329207779416198796719822214654970181538809920138316819860350867839766938281218277858041828768186083240720272364109251100691539723239812758872050946645312475324435607643503432382969875351510506605881733582159687886129613452434291690578279666576302199768207155599047935015055511225341196856696270878851008623743192374109266661792566671161313386288826897225710269409565418199381150402758053650781600943202910047902080471644760703615539023176732719724627857361136701949862648679638451583468154981472274157733652751654822405410873240714768737074689297457158127989232122236668634295604522826668190022616798552604914329032244557456207254101174008547368520024157150070118523494413612081356890654488088460299105638451130729149272019506576995967816474439889903624157457471751612647098598144889569851555238411154153297542623600509970184878475107078814347521374019601749278059814017885315882696117745068573531895228261876175055127983224774587739064366524544957867164958105720369130466039406542912189783230259022444981295422129630980562403123050838037637553513465326080132210241308545691874659744563731638727054351739847851173925098321622298611854510426907856313697387425221822310124949121318231040367116141776613058662094212976687496462590793104935064864496078035826294987763727392418680331793810180142492683050968063653407235495184041761349979523737543974251336240455094979580616401845297877112913253929381822967274245611138577649642878973013065358084777024017569982325428795740742654587540582174622992653663413556370500180722002521626287740456998489130906992500454812513880109218402128850525550066493423959845226428354343398347909637233483266529818567359868074302409646678199814291875258645579720268444396500937919251653310953207865544650102578909705207673459130353308458471065964466673539107613774419369352076702958014042858683603511251730521923656540674496411320302964283633908796613744908652967160521074150631443752748457167087323414032988639589630712576816204144227206032538377789508788335066830745632280442011056199934701893945878348382087360981767466781553755106103076611472631186806496070303820610176456197871592989132734076475233034814388087979494811554442386724990735213287897446129206614202961705801247068189087651987632563237534876722023738109431143268296564716188100806841160718373569477820981757951360139825557226326772137484794682974578184788081864082346507178851589792094504487509106534577975015018813240161103439241476664245110741531282535387808305855390756318107471790528539426341962115611526044976743712854363046439413583581530889054456820918470724551945644718448670218776805345154067413468071826933575029971361312665016402160780108285253416399384108875297641852082452839556318793774617915817299277405295958641283154753556653538809391861778927839284825906663934029280366329192965069916753771377759203929649215407392696164550320087044536173722151156336725486748563241380778557824141364974899718279035611763096724486187771080695145178055872439279027996816362437952697111529956400803719606428631359479243589663229929110035683329640845436678080845602239486861118041117629534730747173681056678532595993230620025689875431053173479715074315541985681113962602019001001005023898524104924878222093584451433076882064591407684358609900187266699688518437973274695143800253982372896740749235291132179606869177091031479991689535816463674491246848649388834451357382519066656611352930315583027822647562760081457223397518051694311594703391054788787436189250700692803175398577089445273846863554173759763839283257695552200481586834678767042191421672247370463765859617564465353902151037925112141858666383207081666101213036366580877965165342234019600252639681186297110226767911269289330675481788546196622994753111602587486366201533367202275193111482615055804098798256373835820529364320369732499873805888812258209451016409740570284425852542821886791065034650619635217996662273061187533711967566987465942361484060794017033840425676725944555769018613508789734139634195701823180932887120165393339293001082643845181937299797338557711707136913864703986599535665524264799440904966255194138275615544136059495125021344906978347431803285775754500261721693686885077606789745974101957738641781428897573048743252806897884409843953103900875557412776540153968717802223261237509669949067616178029887674589542079109735379929865770485531693330673097937387357921184328204328977323668644067492436710350364739444270176334488410850974368979199124857986107265562365583389805226817045791281910983485898426563787062257278527558335334057725866765452782692987032279529743294864928871009907728553860812840948659880138727512468915731225269179448521358565052032101926128101221765819983515227083618856430631974190618142393540036923663751594779004954459483453294730838352409745455415962187354899659014360570968577484391256697380622706772595617438702490101655675856906836521272491109189674768289911847651780701472565601747311531034401303077683351395071592252241177585473981406207200726747540869972007846399751251308520388795761187978020609727774488404568313712487990320289814648286458075923222041453430101324330973830728235676904840256111562298212810769191011733547787925170319867492915115753769894019310782107436575105871768976115718934846125400206552896331331696826846104353001847876106077561178678432068250161350187085621088443648668431035846882792818476415448214013630790215556626422123509219675493892412209449236210862846608259520374260256067346495291188626957446096145526841181377706475407912391322544550901255166130213668640794069241747604603518768263947473547660860803617194378711802211647531146915749796117457530976165218270719803961068315937048050722180019826686493280985999750275028331005204160499801539145770046839732854228158644494363808263844391600628766539251959270317933916331429836108300580250199943269928126960419474564905350820280362738723576303671453552382582180325578583002963036143948739506900864648750884607266311424202386824552617485431943459609702258440573712175674930220294852638367588428091267255732658469429447929390812486687491161587427740652439203423577298806964323843622456411942289319231549383648958154982763645604635134799035574403631411047779836540042206624902240792923732492857447760130315876835392644861328776981571810212799465525011282736365699535145424604441419167623894756401235678108239019000837250230897405615461142015865040286209092549946525011496425520591527826918317729353454203425715686883041019910669181192170983502380417413667549933391674162290305401145146568268748666746547102437060378905776565426760202909270558347627608722951348953707977885828063913117862879407464406735252480822261396113209934229011061091652400883381621188928592562220611078332415350582492144670263054620825169043604284261306484019595589713868085194427057299259274117165802982382091976669576530957317862235038698339435015632844698655831506561507386767850812585628090583055403714259524996582793931583508327017358300064540605609944088351751515630333873906754531905999586935153622932910282280404836711707675744114966763790170089434302273130061944823862614888324127719779162005023766577807394936719599642505246189733665886688477899806158303838839426326418689935660625277172645049938124441850400525805503027667684081925827770532280163679213149922493994041061179558848700690014051247076808648930304084713966329714262714415025012389825488681452610964292107150626332152208670822534677129646750182127285018844594285378581251623667629628837931169729377594183510973245026380964454480833207517467391999338475153165194372049814705226243920524392993753396277160794424128838757430453173349134212774956704445467487598255249005541553623142011486788081645200279174148697531621598469408850889679116764439874790580729767262563377157185340157475836321631359773612990121734726958027731221226796354495079181137593436382272888930341581928358903888483712800976194557561272591587146880849612581446605112940946171406652245568357112554756810149781832090380055137085006260446273945242516239521962847584481301927674785273718365514393085135642570583564450570641373446301848905465657646597205259312399723854222024457016381146276948241832053740096242687945824114339113168868519365720789755481928886687971500114939905235030110297558974131863703975470925150332467550279496307116298202227323110454452329046747388600820900977600898108409222185671508069187770704483031691707605758844184589036931353160066118031055912705570863121642632353885376841782317283915588673327621402193746770184988563315066974982999141364002874398930639542813307911164922719073964731418238718874790065860083757265996747699043803317268426552020334399281324088359851617245363400473931527814667997486015416783579561950535348517770571258850269402773017298110873263883448278771107227803188039260421330272814342952408192839796686779410255460848373542160145028548451253576331144931933837948326223946082392012777865044326187958174739501858063681344496541533726767156299975172675613326458113037283919891701187385166239544784210104469879664773091884954672635013616256126089842054728472027433310782131748982936752978181421626054935279995488491677675391054326352200964155433713858641510699776324116476081646814825041339579302046232641276300251889077418274215188282363822527576085610587634848850288987778840026458426937724411340825125894577606357999040303293366469295600527663868056306565089813232591043998695464265464294191114972008899498586541124070716828671468570529264431729861864173143809686198938530330906012962768193006242815062202137790668360068885132811438092372546223660617673200245208129177939001706447669665798900715293175493260608380439103222804202705243112290834991264817164604492734380672364420111625887948738676066415034289447853511056438906926620492432365894398485753809536799529954186061472884200996630554411140520805104135233180344467948811058184764776572297033459881099118565651599680907078340362677742746051993795067405489815459619399878887409781272170671932753013893612368868343266767933530768970362209677645176231695186230622542233847880845177491776003828058900681785208509167261141800120171262283896338487485472854819534893741826319909708020492766324778984183873968397803336799108330960541766104577676090174249064779426573369852746902768737885217471660850157616708156012867079220041943621639741656026760968018958971189581438162143416030441012459924898433342094822227129259131355584306821423755278619935747305981893697955071209147122570130961513856218963583358009737872506865459462440609249208019937321464532450946045852981149935632135944091164746541495625409593944793553911404110644125722137603954516807362901050225367434091845980482941998504600650375011764871918371363866642479951646601938762462374991339374595167246075489544364509069025408273200994879573382290825574923969335601068112363911748596018750319801285638748389390169391234340236521746506155335377049746958134453584255636521834918226951511957144596576522341854807595986166576006571264054614063840322821735245371802114326857895543735467963937411082726247028287221745097237133488780073446706923458773648140634043605564011798495309021187030560337974648156129148124102342553902008254353786368257499674466435560720885581500220848227258811861184803914388690460876092163319372943547741305448954317749828316536198864293943337783083404374927174819517259311423228136498309042113763717722398564744432498939865757552380163196437754327159253657359039680224837810948560587159642434344322969019241786044832569822396155300618626591011382965061086796390159109859098548745513868544103857589327796864196105091146623463302756890736748808164393456113534470555440984976651287038840646335508807735911437273594668249893419879211671104748855702886694704371534162354385620518474310782913143991281464903608383027534414417733564464929787783916415112301795200662560207751544600518093776575864465836038261741017505085143360923648770836074193210960013166834002932950744942487732121796240247588829329319745471870684700009162447177392943304219836076585543942823372836466186491273077181141496624738036727480037926009821224813551450114244550209114249884133999700821939072894458081134897720237266947558761233048293513325689722642844365714741661460718232336952553940579232046417189404010441322519338937378685743271858472626585742069861915219303020646849241779664391583339547581466359472243866478927295506762948432831988405674208240871070084895391333804947332473224407453165354180141121434223747884943475680922492464228741314729794492401795157045701099479871002834631559305711631190806472897291225488998645863891392098757790784275241348063475288712478526253742335470292256067150391207694893727700115647218734439877568641261148827029810945210588504985217101123610346314406120234752215630038932211951481595606927938323307207114753343116335536390953439686251022420094570053653094812590984866376623708451411600919271705556708530513020439147589413555380654733317929342316044748874395633956322348996591809025430111864432266224217173325305057097806454124608245294267703474567059529722527915691133893810178482980651754575306899187958391320988097973220408290247902274784414927188168454142837510755111806145352139499688984736223531762703682902772999644474814338921915991789646073010924866005274080094572073141415832162893985420570950877841060151499437967043281796908506786408996732906697667442292933003178129240914709804218890082894074148199646926006967426138307852696376916560352082332073423108812986430626399987307538124053261380595961045203231503806620720034368293319776059171115515461909476453232088280622081082742271585496274160090738040592814276040224289041915851450107546140475674231684353362427400755639870363797432410225638185071318062148870774547025741538592875895253698374741907750337113682664362473197880273660122121459097194930322341523266857052350272357300348438586615710896359275423716693636901278041340373616433194706939878513204854872347462628136615689380026125841055078807414740200319924583531800568175191503896545931240415573163230688741517204098039001023202471215197474753772477356016658331433769945720818918149527101338569416487991120829071400002983659028990873881059777338226498229141455886825966371324219250415037667382408215308237061851263501335164482101551341665217419703143229179275606026928333572486820612609764213937059386813578262829128310983408402007221767759683098340357492949956528667698474777750958824557990360309980750998698433793134264403715036424812944240670532045860337348740730183576765789795904573961172584420472875700974607202668295670328438357637717462572096244634924424147709197226041061321334687399916939037788657429178691409259580503168653833582418424531805660424386230281280468531137106782560291237886626630628335697431185598937390907263015396243939833215314497550082934210297312243687450231090730844735648893769816617304817850140710961978955926914223623235449411417743231678269269732121892814565674269960317001712061557634012703251741343183928063129186029203567039161245343296501051391377801450701967393317571196256654744299572316041866970357221482952060585545966218453197807028876113400805381827646729692970874531776547688877070487513949167592817596445193378145996854966767861993581700908440640411477623899881735121178718424162246110803172138007693999291839829627005835367665013397056594299788400605964521823345097014161718658050583508891002270018934711793907428224727490815436834129131002735944979010179065660327026885388579565032985627153643799401516639568550742822354158350529940036315727193058935765382813891882263160584556760669971751023207786745769904787741244763603210129352920832067377905275793251211096918817556299126627516303166016898856615103584240228879974255669013095552560613510801030867683999790058018223455780652450549097782730946822661385130596494961540575652691790393944021427277402592610772646386821894968451278790821855488745147656123784049734608099019323908719283957335915056016446390523108335890907903570742214069221649474192328821813849176959282527676810035299575598375642983218692955964693966694594827360446167978092028454880446196704256910101105179545939590818107737763655870758415740128746823242999741895367903397148310566611937189858527565417279903832654970649486636028124309565868121719862686399812739785674847533908316606262373864801051126868603469128571855525217472208906930553061002105774823820385290716907977091312249465417437392277349336143731367463761172225126306606933224479885635424633483228093301702650040410406314880902079866063965244070954275797845112272777196051114621834709818876974260644660900695954843742614865337346911071754843704694738543104764554002330320404668440171264644639148169097732394766309331980667599219706633946656869105121703754003795043900008195529457956842916329734805996179646438630344610138661287028285901622176313109975871335774191011630757378073322384587260453668244354386702292533438981687878626578426068217341653494961689593461171843642470961234830567569283555826177902004028114421017590907270686953097555174589023959962669732763260437999920406864113366686159017777167933916949318755242978364464079375142471784599274992690662039099289641947856205728169041797262828827986000990371073866592745754557827023527074815438631767928128869650388058424700599007112123450834319921915825295271684474848173244885565614612484807343574587515370303328836597537146499945504956351288537334883459724518327351919101969575753519210118942943133121119203711039985403971097871974910633535245051980545607340801160168724979100138683002311847431315141271911358285189551752923652375160534492700720405494584140267906280017413506791143278865802216735866563583299070175711088485289347430556613337543469847924952514939749565675455160270144237388478509853980152625508060616690983824994906593660931925323843593901577765031191655538936776170975732967396808821604723788042699484968986047926601365066463926090039911598189203717359702405547684122946581650909774337003100362305215183374125912518930608004533169839068294705412983409019934009639336780043418261788601143237586395025218592975016941198938192034140270743431407923765946395868506804990865466675704730937003621921118020081046939215590493053314358165142700463356807801840629921856111259332491646458885835924456551852472428612820366076560265261624417027480994185429337441626495336511933948598977095459387534867716410195654627317613838258182512860621515305384054926262559419595195974202142776148660572556058163782614865029473561205273674801156148110959638959922021937765726686873738257220396860824694191383270886697122476360330875440269955451599732026595117436557586487334453255991342943553047297083821789131438760751497821733279063025140349400077007822046503304164069219624643120693919142277695616906212324078818827516403730951858013563435905275241008452169552749445449074819275582521075199414049983101404739952121318639523570674170599273577677879449061003664477512560110060358186217969320413997965243926915179546232279439639843947044383423802541735134526517225384480858483666323338603410265431525159486642850338266869467372061186355708605228072382079927513752098418317834550688319495178314988322411933130912627367430261716331010193439151473859548298819210289826659401399943893121017093812632817533274443748663311664023232761518604868245862596357106648504099356914149684419975416040651727285321710941169155351050100776216188276529177093042655844802794722116577686573108797648857955483142449286610920079391370813355698058983083538320599658377674890437974182020021991929004949945870247513724803877105487470250867127434000035740584462424732697152696890038526258863198843002333925280910323914552518879275160285401994638303296799536375580495380471929899766440114319625767895788200272591505326258085461637282155782627291143967549737382064109908438852804266089105190652428269147710467673178459147083299746296376887378066125261806101597017877945857273952113413214587271391032720907698703010940483738858014636084411687277771103848248609872820457516782912169769257663078407321218299314941322075280569193241048364011197093913866860363350667819164852763199145378877475784270224618237830399648798888570341065438198264557794245964504885752693863180932719271689071882468937761069298392842735496854614076012194591838898975399118269214392840251004418460549162017977310549642300782450997516049478984992721307372423557885181182211857699576644827992011951874254523960867030476293346128181288230148264322868109291939398082305625390944783984248769059314654755280365261594868193330064804298411188842433932742135391316415901080326423392583886956915439484768591516756894549203887752001318357163130948298589714996554085876555723752606359171902396674403235843417946043116392441281806207754431566130621686455768995091758518709361619035994288446054098387461868467288436065494552240064088679217354736246998792152260780682729148352857470397129993664205275822246020064899733769608793995584263618511968383742669309769268983334625937669783899055637840555043247516023826297627049049994663610456229669248050731047639781505931347490268399045104099063083969386721054370415485733272339654430633578988968075246847621145201061792545069350704917613781476878042683132005843038928310777609537748547770703847109541209477276639613430654946382241319968523500555674286659782472253742879270505235768137049063251390537177061165080056581093502604299932099879881230725826851207062566062444316413963893580797924037456869409891586929863942404739258642242272540342566804972798980000031270559148702349254928580964255578717853727338829270974728112135060632696059144527078480480795801573963746792907569663084704330308312202748157039150047601061532377567530775029739694619426563750430319236094987396154271271488072446407603957596471944655603740590292622696054980691590163879677620777818063472293544218923149571447190890892872990016302919914794302506092801074948926555766502082586113366213123917250837182450353313490982283547506347031025857809943453763233716225845058485195738204778418998060724208577181091010437516799094392006154947269403758152170711643123930632623644247610223756167338333053093619128114953749696800781808143886698843256785127575024088575716380732591049957001114798544638381636263292438914185596133604021203637863865974048174525811170246938097601730028416413545021144421725843213980917907500556802265434686204005267737699307302719456815863295584291537402007412229238118910251338070063793470843677824071116479229316080159646115964961096809860578955234143192803669215556449462967727865814554306104554450109452585996949368027736862433470818736516509857970627184082978954289463957513674916865522707153600602269602207657811455532077460483355576725874095523907006337101747328373640830974228805258688377480222631597500195633070488237089795187540933050686646361762882010037501299588715548774022804895163489700237143677089814755911995628734203764177089497281019782634827683268859614713298616706367091306503664122715820170220916281129515900775626092223903486620758489439279425082471106136459849054370815439098833307302144849519888471406785458648807047024769782500180435251760289336569287667530029872373461378712026067671947828745202657991685333958425235967059105353217642522240451475247289360539142392529643619079907559504524812376273432473939282331907399733138779312610578104386469379689179892275013896035542752679937217560723029572045898407406230772328034785997392179983253917715877337059605443506436649487193320379140973959175007374775450423539218259997722200414755476888162149411613909123494843374844784209929140160419136170814206705737787455846537880288134887422354099516837149758075639417318279053817399600554413616323509600879446408798102836612062936053694191442107985868911954914472841229761831896235452071764105029529402521185842675470505134448035274796431511881396887552458678397031344656659285276210579262784117967429448885069276882671924313340106521178674628130806869436988621376061247643616093013459452904263016974292826133100319042838239718111534974597415096929135679794111398997947984659413555524089179952313108472631227919604166024379038717864597401064656554739798908414049042950673012856101599788972025633983348956253530506459500505231072071623877375722447254139308807880920563845052539245759811253325387535937057899677442629324091086960788153273160001927885766370007332474147884554756781488535872927178985955976042822614497924507877254086162187091866104777033450549582516737110856484178278912338686913763170499620221956817457448262831193272874229539840325483879526807349203526658823313500688967898124262996068549857337107933141877732964135102153490501573855457987023924195806962541209779728350093037830049375528712887476671865807833653278714088443120746090967978741521723611800503458754067968683356809231363081355279589944717111867256295111769583129223662248607299020852039095533852875537247033277905116561478216752892133174487140163270086476114181724165383918285984746735725237666062571566184504783957825503163720825938106687407239846670182982742023463455064286867297312440815696948627165291925527362807210183291106516846737102834410242620118241558722277316132536650726456020525902740976331240829814418959131398360477461604988284135600870768830502249377780562070744055556832175227958232578135998047713591102326378451115880634251246309247374815984984311251814433303005634995336843817045933046641295867538257724149819156929012400369351639819973161839972903592833621387721176991337128276292421036072657276354836203522859691028175034692596238971730201002131342386128736967430995463825830044169433805506740003799584492120441592760674097890343309204082179060902189006259047970166937875070582288208643054581865452239929931248415911791994106075235525577849573646055979956426434021489222186328956789227090651819968640454381220804608791623099190697603532584117900033310491406863458950221014239574412861309240971176663503983443100826147873918443277225206021338565138807942778821100016247576520013578021567704917969975316763302090770037602232923471381547800772248690159530336640888157026025961864670928531902054337128200569736120939506729157786274856415008400173571337114919359263012680446247089258231094906949014068409633907932604102880961258330502306706225948164962359090715695511355965643359820902940807066333771976898498962056926099774892859178610994713833015732722116220494146863383738899668932329237122069410460159289607904021624232880596120428810685990959094875574575941018777333270779858575799932451808614741386287999252543703676778459354241155172294598651766160962290526592787732600171323578318661010040978889425066465866168295553054055379710299571398496963745222967279794841165536246568728244787425656331170941777837548928040118669864731160272617327370192924369836312401352224360133197417156265482855499379716102103509302795338368999667999009337056199820553163740079223407753856091633826500410565133926841274512838093598616408654584383936151085514022511994144200776823303449202150466008352689252782011401894890847093517249080787973034278770115194074107876124274990773301310667185759620022697009850893494858461306971542114666364457502031054235475007605025296357523731920108260183032168987101054907064224817406605597070936804108380606748317910382552747957439492847441867699853373669011574020121601559437342787576696421494997163937964732615384687637891545154762468569142139336448633933151719331144895972744086305635511920396715278720466581512178090486818666559695841180408495438333165738826197005420709275382396128574262296069693861738398121121381984869048998572937537067389889661025894254029671274081228429761084365075466875273845798036039183391410584297089092333293942483724444027580054606665224163087504083489908412950004324306328995628192981867729602497574293910990863320864318668850153048599136379174054123136924010109692004834275858567062586931165771568010630196950940528896306685396184049036684928533406593171902598481530334307527043911005190682911805602486491688560056682092501151904360953511018858211871843520187384888107427745389222493079879890219343679610153777251574819379728805553604332770860082052857278938950035737620859972365714594516474823372929787503292593224190815426148480343036807160454908705279343617341672838661350160921310227839456083586777180545122948208162159309510334864003374029553041886792296311817292450127905970192069583094508587985892124174563459251138607005728043793376055517741570443657240281143665994198176697006806221756926625671763505041002495253383617727254240663071637457015870603069230330611345006140337741974937759874944328080291803229190691123454440350676751226152314552973097160337825121051597115756879870729327006880776231637269589613160759694441221454113357903951498387945792705933839461838425840243430470983098639746617425521415774049971507801779231274466059789209005587875433510715043847508528295940982606877523634720505075040616336438817612716386681448946256329908779170083602699123642362829182491842898506829503914163864552469635288365742225087469161346164828220961534424536138288759357158964079321253037702342433066472298984155004767238003270973995650956125405706997708147748900272802362222627683018921444456879969695500205441636044081059580114922321637397308782655849873550801212862214413251259115260061632798818845719828011763411975470898392747345881660868997344858564034166188260049282219225398005139379208144324060066754003653466237802572533130652925264464949029657156808469863176377742029808955570154440630071126639150338512747141069019873414818916828569941301501954111869300013028540196046290088898884950262894650464582963784899364094390867345756292441460982947858808580532465580440867086182363258197301568399444842374290721950126498336560579705468754324291971363718555166492308724476453853357489841056672886601698763437218355595093665055597380489342683420939233837984438780767439239757574584360996251377269318097002396194499003522679649773769554665569490627378910757050044982249746195058889906308498591931416172776553987490734208521388824769951390539767270020505761742023213242774555839816224009924675985220485175215629683120846981520584948399196445643830674173210745497172851782717005072367405088624987041857253862864939873582537733921614834950555785502226106772150045282749736016119652791867864408990582888646574941539248632596974729032498883724353948519814145035853514217208567867947868723100343086650057060372794241321439264941787193414322401010250652109189853389197867760198971529055688500450504420305661232524246467477932971521701319536135390508544648371310343377693716385738756960291705068975472659627982712678322801675255739253964370783890344832946708261584885554339383678150694791186954670014982281620140532460487091775289932137439142307777492973531062560998622800707923124978044595017581025367392822836581256351384407963975663634221761689896004550500907273206929727451393341013340478610601936739876067447240770999720933035630142128695897128456338780937194835217471790440784978483918423107823155479102445185324563599936951386924164667441264143808615302282373074042994483593177453112835526435881953638368952490493362702670734878599346949780582275722430851636471030514174017961619380830262389724529421016156934410479846527485534576877304319723506131060278358493201464347416552668777309216702492843766190053673228177082168787965002055612373991807548829111268003365917427479979177981469390899003543255722782058954972334006810794179160594085697433026513631020718751763254856324285724169887643664669566197395412358298618406527185547729562832915672032285716705957814496677655740423167452554932667729237936063830917822469364464324944011738265783592780550973612215201026888076839917954446251719245642795483286067907018301779879324981077224126684616387814370886170120515705833806285799136074690214400782667983422930867121876995303277964894856354078614992400162871817614989600872855865165413327444533922006023684123839076139066944942722585753116390275981656655238509778270380122853432566388544046045340993201655464025278126898776054419053105319270033454775260847796821439154266079306373911592178484819202727246892271356935024503585619304581474848740953306273551449779579559193152837759825533079888784678139207681338527541933625078100985976487613848241115189655305502589307510195723018848780756663552067915065272806852696662884044405983752013880743605507117022447603596193604488115124928268528896416076213648837068036269756433643484097383752714860913844577038398429253880828008122376359205654258468673989719317930179785781015632601839216592615727487463036407982282740223703694744475590419723448892940021965039106647649409890060477535593977418804122283611071743821494235744940328848208231258248033946458082961765023178721001672610391836744414212960003376374037233276995633203695957279889918741146201866306862113886744909736658557469557063311472683624777781046313800407451110108300071461642919734875520909700117647634430220594318762906085843953768434006103879278943586845993040120489807622521026783461379075630834922255456641500581159239599075808087219157886318326857751017781283288708571851910944410092115938066464689639545669038423619521235665374479861952813223371823619648296939075073447231151677324188441136425393414688870546583389659953467214564935628736197996677315817801055285866903181124044350659750211889324168293114105410847633297539510036266736481596006951548459559538292355645025011309432005002141847511953297477548154489612737360364760616107064648598642209146440446642258064495033842023539547662517377135331114992708091253119173752659898521187260353030871274115250895194846217570717262026465767038833043528541028976493582297562942835779707727759202058949584874945951309665327188676927406771886815202013424075981317058065569465582612272938821155791228748760558161812504440811076429421532030658131395371978759020908161540858420807199399655627739776011893026765745000064587874579517938561515385112650235518159104635473980691454089376798214529382573051025381788202989203315728241557612215829565988658241282719877083225567721153570554390482859787162473647687556663020763934558620389370302908253716240346500176546016657374200006616412612333304958682990512710123023343904313823130031695111068654316434868286998169134323462776018121330668009009918751291107551288164409565797282963445244699259699321235735077443449944888312711898466016342363190634240142316225491677408194660276331580014770644646527861289957052409796201804473787218615377383393619345395887691304700065571062590747431421317029194693739749143087790009966950294990084808444864189143517343407020060005059399819234261707451805949679348825714059081213987994582941854958955833898404406942436569831611150960467196729642201339536725649233818542068482888813733582111800113141691967621147904904415247061126774824722498456708274166116310761163735057298106490655567507713672502926575728502905974652789043581923000876218730049728177156616803497431112178478496504788117602220453648482391903607335266760712466650255906055127630221688516245224331162895618212908120188571573702857305172326436766167590402745385994891856944300612496882496156069007371601168849357151051685710813200692925190791195359241110013226176383304932705388328848325142104625781301959107821023983324661762584430209822663209978001925176484961885226702133140237212119218030429729036874395168097014838368140397169093422596686070859445265723766177426020792279334070441904701022450887029286666649098193326734100164104928492085028106541015066801012098312329819430440622315934974455275864722501179117736263099295369300260892103873650577474487797948172681510217901877028407964537988764876754906233400346817536762375418990088448243174813753612791742031311869030489355699772225847445083882117756890194071245263621163210907013170832061539019107814371238991622274018413075480578210938313596198307759487159111777085922237652131227229094481733253767483740146888100749954807144815983476009097255459171828128226729024189953783357322392282844786080222051987686841454072712707797906294927835450535629582560518615342047008062919375350789614355544353427088668559370717429683440736822861177172470209398154138062345562848345154763447277094249042787847568820875765557344613825263522027135066420400275588962026680907973221183424095107564384487285665196010703492729562517041153543213657591252061546411444252600652258667654884984498495414377573394841137272985270469367767903441844945310328737113847711160427209287779353870657649142033094768712121932001715018526666004394138907940485480152215295811294642430481371857983091517856023764145545003596608959469169653507961839107111173564033064746460814295728652137995160402429956303199281947444437576631828095564289293599792153859842553158361247271097164439096853406373009940963518849357827611672028336204111371480537686299303137653204246949747209934230236470115427390585349820723264102536149168211129092810421378293482640772247287774296979144923320151527045526767144820148816684075019776098639113992779494807976021805136082993637722260613236245521550710911090901704557708774512075512229594878462628904445577685411461671270021373790517892088388148411505915207301991073126841343513287153554536518012079278440360841153011711711100975615245693108138109959413384138015943480121027898613799413854397753188165189805766725468339679053071330203590359014591130066676179522436242050549132169467447409580078249240927041654778443721551353684656884120540347944199223437266959819810279890928376739944322267338953719402203287349660417218819560038806192049711159325161420707038693661492899873559476258139994285873137930829850902558754908946449583558907534934705782256320538178151786972412879462123866402667175442467162425059368664939348762354218661706942384605316832325987458705356503486499287434050544895119682758396833420093590910601603060438820673067551693211883571998661933176556483524861798910364602693656276139673004979690631823419760952132390147428506509372749326688362581933996858604348648755261580431917942304851666165857031540831647325996265586932171298425585968085365650025482252987839950410551878023120106783510667654731718878895874430528581481865547220051031080580126799853509989428732419069914572266656566408716668705695507811641464859936508963641852647820527496524562121721025126869817848939012836511232228701604325959757027839723805501478026197982732010116046290872706181656728691049258808953306440131819629493650612163372146111461877651456805864811630916445575724788919136723338152371957340264385999786507944392165407571063454000702920601668979562943418743803222652319726731011393271793460751066081094172373481848407338616838866331272667636007733718155857528764868289716326119958064151896588236983202053904556501223987372022455697732907297800474291772628207912050794515783845200466865386313075036875940198195855725352609758630802211078369386240776733090548748449166003192809053049506128203949825462943852476483074397345287607805850622707511298850730925362240623589979048692427321600673949470457851960351425200240217266603860922415749387076744860863258384394459330109286992900060082447285040899945186188375376037075095565189010767503801528260121293145543197164273595612223720002645822922278413623599154051778950168810232798767958881112636707366754050817203133503399966078834929576063002575414562488146294389430467376940980228312145907384967259384647719682072983997185225727170213937149840588037658953869049832883054829107765082559493131739047294571619884169761825817779823578104744998700832015769470604018008638393985500296402894008298056311515068963021254272556536319071836679225686617628121683566823493319980681918646779626877432376411489716408527082805429342138787890990240111113331400441920646504756494410925162694614173224812225400380515960501755711306710161385383677125327863030818539880942197264389044958531749904406722036918166171026374371967471391539248781592201448928817281502182610568295424001204372325431898209622226516790392349262724081354994988864759796598210652148072667359684834890501043027914875908138278278607275157782144361206293702441096934643076401724714105097749365150484225294314021358186413221179183037942543471363008063217855981258848202892412086676262820989807641069848169623412661902684757662668428288768596510078568266082155153038718218511338359117952477761307778480868822187240690430704952911474921165269214353609803254620978154686225006925170813047741776826230676168597502411641502964158449310187373799954909415431236472046407320594547387560254136822216633208968247695872683315055252090527319597261441607016022241703307584762447253996388502376358948513276325648290012120952501647039413471438048254100478217486478478522896653578067579759130831577938747854901839492554169097700786943276061320186077695547560287046129049635675203348791676920409168140878486296558275165334840902979991328877825164963027189636032584082044870658428955545284708708799111253984451996635097785028967135147772168168349106029590654817798228950326959620415672653046621071310758796273952143201280638898009856817357649399670999175517448548406007403925192111728642985167289858785821123820175805358990722344078645101182721486203869805836766607949267225666073961405438663583053476154610821310246558862028968682902580321625787907490931664028101452244173938920661526376670866123697369797619318948346960813697742705306036961420698012326699076560553456580638778599803852535387517681945840161783005594457458849636429038396953809306077325874531897235065680073968159855027196511102311541601282292995811825179343031980642318997261757273529414813476285830900354873509795455273688337124491752695216551158106167149883001892138668227265605770139809234811750224317238719228631437044212171033955405977202103652654535627486799307501938913654272392052484330559070771278417359130624134366360563290014595883061059667380917199022403200253860850840878540284948393688707284222246577593532025006354952134566104115850166664865271611001091344294653026286696186290300654956110304732593661277796715763036911178102695344980288265744082930871756116886518957851954615076357906310743955788908492250988813698735881722726399600558874150022908313871820701639509465430563721023605370861723677379107395848297698406092186323180353601132508051921045909203480398231395741213302633367356933017726946612878897100544667980140396347655498015317110397210561616835034272065722693754182016827512513578307848886426232420627193177833977197164435323521784205492286282546461919883523272394886975548946054507362300557175856092941521315863697132289386441839640175668265008358801967098601107527332075449531697652445333027142802318888580719369771091024569319000142115361796392451590994739137845896139173414354886002005456844946325960157172445255250846624339089160633981203469665818824547357839071604575396020833376815253115651937829906901270918712980010954146711617253259288433088331461045548435781276478490259512365412136775749462428032772094207522553939520802479250762431930134100757632691595678822457205307386757064658335218513171879468419522459669341871126191278239667738040643826915183655121780182381991041134018894891915867249480912614660387254209371422521096159267202563403893015711049282793127283926588473036785298909152135569029386798889033358580339019327924348729369539297762942682551359179981320764955600850164648843118275687833325716100466602971108168078526242163531436353569227216818010187211613620080921943288453587389337785424395332026750710219765084696000522302551066892139696163998814320695216525374325891789478177648014462337816970120180141316908312844565339077294597854898303357695795729438779218293849970350220348733244165648265023320545234063455447203075894084738781644136920904063825814979332435945922222167930011941996680407002712177128521428416183679906006075050117982690796568597948018920191300792914258149623784046497524250525959440256131857511637179022593632764872315925666338442734310365142601687485776046767898213273681657650586442765741620898234328758025260941970980983750531199987175608247316856539201740419338980778021016760441342189847590406838781952915649329247805950736333818021610466829677899605971721071783402963142010442584562815800463430068341699227278032254082959244547760037098019169965811208319788043222115258472594337483004181411000633228596662031296447514757974525086151936614612000895616812069482151545917502414346113244129933997481030365361001668525555038664231259377107471824400414404451792509464693620184925481248478126585923515522297675939904398218492440988561861039713434298988936099982222431400574502357972195050506920987195094235497597494025760767958449440649351104145141058066255304489049679068084464514478944410540838033243476453104382661812106649927259974408254545533959370706891442747123895522960562587748021952405070524756631726552500641734353485995116127213272421733520378542410128121890521077983377650353557515914841847427619215703672656718582739351328517646267666182829793468266970349856460982807021641462855521793220172434459314391193792929042106557653111743859369462801488215517985679000371982294390120228055953839861503387325007983317180632707126967233499654542882242944600216785001090451178296005476948343040401005433945207001679120560938052242704394697088228848261511746156416750658007849722376093060601620522186426821361557917898946612679153933554224336932953710099030693283989183729758837168912506814386321505378030469806788735451100260794368446280327372148513368788352563635493564597620606520138562847059703885797861938635444311556500661274411291979212447008000654859447510197522290453401772159480855501203857978819211116657000088221605734233188353935129233061106985074889585824657810863231544687272441454551518963924200887371822861362210117321908719316359148658553857881543005868480235768209394963074336461069978521405150410986751206109819113803951420598577158875451755513245755452063526323526015192321500333518523032374207438022188393550664955078767130694418927125283503925010900023196866653058283325320614537545830914105703973071449787901734268192866231025068242191825042165731775832869563052161367570287223131315339341022975949296218378272750700064389796332116007783841872219426553201228949768653268053936152517530508699277615451694617779921394170351283728093307764689196049343987915950248116958810100420665754637080751409516716347125313259430109984251777638770506347142902265371504005590731043708259172628402011013774484365028249833268823233294014310400358178030545910253112410389364901120830204666782352777290381509590333413787731119472427873799420049579903052064997419358832124228321463957894086599409949338478646537983073646789413617031452292279261458192318082139508430799392205727700465252219571875907862729064756827559774418840059493482648568452248354674701515784586474513065771589353441792357436056986084464646884578568943842202311557912531652622393196625217734497086487104715417715420268173188011961490020989547235673358952719859812363735880159257907478898112730677075487598550088559170551021742565304136807601136584441261428910210528019831043336877789471045350013526920952255582942368879087968802014857698935785130758584240451337070696243502491480244458218872133872155363981856850314455027178070753424037573910232464505374793483538382238789646994921654095782166584874672945038542346447479169903065558389680668716586767968895167627831228671893330362564559040544130529632580150302447081517844591595046190275452659416894243399225948480044290202084340615798991192661366906271647604657643900083877243192018923460658088129805797995790166859174933825664607170210905560689162478950398752221300687728216739467307768830315304137112767968426414517740352281276595667036269453013049728925715756068035145502213252760916012442479897334283715173614368932528921809681663869626075347271039216372366135622778012940147714461375164186546962866898276469562565200203114046050865683095354895216678438795742153340747038328540428563959709703282278889352241428330380250808257202332141158199914762849993243645182486713497300925277629457112094445923028044423664891360226996056696631878986229050509751233981487175574879535157112226236273604088361157142023892675169200833916382059731869745301299767612711881184108990518508866368027236741722169445088321091007207443257283348730296954470029162147313763913654501585844032883248496566419457215517960123096856686313307084725117637103106320615063769902501060815364582506033783376297686124710024709646340221109981412684223470043880115807745663273888888144858542544563150536969463053317343061594293670368011034741929253916318654462209185986577909638468031938320472550708744516402076462197770955950092348329126395122630304509987912093370679709834507997694047469683624914760870098991973451469097752689688045316590905063088722231128789699362153472771066529737341558110548907400640697376403946576609711274498864813197359935653851496230235038915547402792798131638284132883167921688184725159157985769420344787064026799770382127967758338829083764187563072780642005363473151481281896478252758781462870192202755276824328434411787455709148633318763737436809986680330523236591540974395618380234132305541958698026283454079112970495871925778177956951629969242763778617232201061231976405139168788677889845441661367264998315853478939277275503813440967859510501338776762168890370904594744505105958145152714284361472196825273344750663924755659149534000494567565002982170584213670349945675565472562897541572796896959660071302080565994609167407620707543405264737516374886126143212212278198816036730804727943328335603575366907223401739951588698664866119934664805972617801155154797256894900419120495067217585625009962599320178023252494568182545933881114260861035556719572831295634210840240543865184130061692649714873610081307841127932717352346121132123709915548575056618402239157204176081195213108206771236441472665588691520768847895924047948198984922745829469839563055290085674704235121936305989423880211309996297178888267115360632406381407473547496139307181660230586237808529541715002501404527023526013067472283813054441101205069300510003427430812242111827830825850609738047080397297878000373638552244219356981441997789160755983456862582126912156185450342637933770543819489944729941681232662977799318660737814670515439712035562523522948011248488164715234396494709004833389775495616098809434910574684958253591696629420226968998966391794675254695345468645983962681656338628732812146382582545293517494651492760094212224259966226207596986247406265514311348644030827499544157798973725297472963185597927958602827319376057361594178126319478104326477306497430233391581302554616847620674760529284787443800223797203174082821474548016819772849548129222862701825102678919111402116878019093543842092242949333756877621934151018794551542147681152168111841485949947515410489823310870027454070406716789825843303026658335649779114341145668842722607554859260135763326379369760416207884603499531131027707480072145054574685642290653779963791757636007362926423429201583319100394935112967610936704840951153704839823632179223091648557049903747118022267306765920214010053800911262575085850394874732519455574820920106237198370488054285320089522293474417717632034998359709459754408484108627706201844074293950422217059448043806620090779685844248488760704945469179977143710374687270079307184613230603367157690195490690828664192333810677151079016386980439262601475026419859985586015290482491545028240607007737001024776192735881711397893360529752191644666235456434632488541094964285498923514783729686574222874185036881262426097852011015779082027791070824898940375931049462951619537948280231727375451292462267764018270629303180225751364052231424842161855645242016720825853762490040674074556603307536914330010217739584911244674164784130840030786208742296327198180891814629818234506851021175404406210738557029930939400362515060979157755175425845587835929074983106703491610583627537048171051733690917507199059234018061349761402626276992236417359627508560299741318436187483501393777500231788732615206119071184886551583078481786691650814356499297623802824133867571841100311372852662626457826909260882783185208105303877265408858659650509719325434686117619020264114307224509383841012362088723873339759680541390321113690582533035147418466286160486278014876170613025224830159306593281729679840609784741059957625708792141353224747960248097049496184442454408771613280992955365762233305993907827306041531287140829125181990643565089109523622990504495691073499908537428657137110888469177801025281352896758039877076378923096517445761559892148906740445772032532859162495734450079677633479552666235974366566707456692455462964592569720231130816634851751308549330594362982357591900010805455086538214158202327902297923791203336854340530093528871844929877150198261193997400748470350248797121234736512658825643573333256621295245048495727281236389304210763041233640680875773878279272259722323832921052881732739059886373383356903982736847118704206080971935364341317161676479838746983858650362558014244030043430252746129997666386949025214686983080430119853898730967094148933955874123823952472139844838602225057887502309981016187707753260489161300938126982479936172354663576158245166240651912305763673983152658119970373587744054737454136276279475282799666851171678614814809496665397136329533427993115355788567961196375694418854250394824884339015273243438726397938357278047711537437456233432679533168876088005992563480013591863412275888685615717248266774889657993064624159408707680859403759672159060226846470698528721318595600781122052579099820446677282071184812125748456342494743178550806404177924976434277188543482106375704721313178603069885147977363672576175715779932615029134987122383952102848174113824940970009098108890265876510924173822963066717485869640662991647078051297048545088156256638472613088761276658741511370179029995773508107896049963878816819810165286599845598783937403150938094034121795833294918112613528682815430716373298066132074568177949839510273653162139763218370745147147892860694107307171564010291028367963595374722707720492051829292177893530758000766665859512960759965736675545661412942528357576346929110598788030199022443829515046009580152570327219603452974238169419004122976262856026345331163463172858407391488820495579013314333297715638943162034821882387562161847444764560912062860172369369930075642872853260219673562077434113097127443234837113076810250461740332257542307808403521968113335052925593132346671339144593143581085035988501479683696886722343197296631199000831790644678551508844703320489457885290699230508692542507698190141597430531302588453875152784806874809676437741473369798149629083157938683872972102084778651999155098040423896432796413838912845662544767686770300528813222471761434204399969567296968480411471426948445185807393881490360773708792782377097691253058365937478755230430053460548385213837961242395907659217732230599032778981758546328680537610363597527510585870518972845758988089803691626602970835690656191168775218575234570112431792208088153365278708436566965583664722964916987398331995459574312198644762035898853752863826180587857828773692069756002660057862543669881862019413330793743331830092788636019053970455725536857534207192364725953880859744404038173525458007754761185690402980396161973607936743429951631849742467371782761861210667109777332421468886624245840498488063022166476853271548937877792123831147415782449598670553746654866832589056537727547992390578970428710967418794999221651945933595683464088305537547108347942399288315793479286838749242434181335542827091957942994516341664046393668834404508547152940295546984998480719783727480320985931973338850022710609483259793622380430758452275908233138467667846284432703447703262118420728121020684042551317174716108164358079050796382408509945316858675394512426542722907644935259095567267107537244031015688659907695206715985912947940609254010602540337052555948699093472455821187760686602297601935803513632887344441146769242947763367731483884015412600445369436668466448474370796586039629582884616085800685061824542362625055257776536806183122201111404259554740176482712505112677113464493491754519891632580737818309589851585658103251412569161074401172981146652408619186863646876678203129798402152855087538883448327808057229100171165513473599903229041561513297856808686097788269576478990123429785586864860932223721814176322375565466262562700804202361009771544961289364558456140552964506264659538506824777447164164381525129482080234270141396050045810243775370373455028661782118489114942218085858961550644421718710765773972617720370387283010615794900081950029571727705242153263566633649474215661844379878869696755100760648403174265015796743778838838865965095330524777615935668276277690041061898095009130758055829874115445511386500359385902388901479629054691197492590936852910553354692104740846717302114050742711044216416850927123772416922391297414572622627926312017999229719881627944136107192088932021470200853101752609583616735732231821829104319737509799749234479248838504726575598013547758681746410263694389865416905299227542244105503627375141784154503897235492244974862455805390178643356110120448826545603497164420557148977438337120535555073003039893106315165414953747159332242862349276555067760330179307701390793125114840411104086551048127674425858362338423438409745540160770920573462889195120625114994702088250057977003911636149180787263113464428797983702949941036305203746184477093393572700508651704079491692850969431247683222879636657728504959943837482835335214197004280131976773784160367786247541641337872103256016605066891112110704999584529563432327574880746351692047460283714195191489180527766661715358495490570105342921753497146322629632963801775722071278189198523359261486826660720904359517641381188410004459009231013139383818922768150207232066049734375905166612660850347161927698483383615660212798332045642238713296624703737678667820327149652926852247715358798834057594014019898633135967652325343618113795510787654176069345500592971062163572568531595774535994855278287736061816394196875536404154401916572284199638915762870491194133007307348580498398556800572555392172833514976795205229706754644217393254544875914830725174828470018557048315101233640015686020876130698717321797026421933911347415908345984197906840000027356946923847262244303503635116351805896855639181644049692058763200308236777068245699525180191013803258630614667099328584419298362863116611937882766963759239033887072478147185857049276535909607297130370496205015691362010823825928728252581862745510416344480716386774197790264621111245315846263954669535798403899648069471398481035510318676228055502692146904156320757871268391698287513006178107720499838968056919011677251201031653801022789239998978230284860873841073387661447058295669448057862659507105101105298360867677851951101082803651644433098350566179299609072606749368325243918002706528381357635044070422033320340411874872323170475316559522924238780524936513965801991316033997331325167511906851266013677522155054442491793352472175269387631383022581156574712447506084901735839604427389343875917063682744863666475903836947874882055967011767157468515221401933597143682412619447147286229645452687321748268952459784595028938437390692523838866339583255941637990536609561587168046831246118208712256817989582961079590088545249745457100924520312178938879193178867994497108789391129062218099352177157688624869489806439162149923613758570344556526423821289286430090804436031054318135625922623688593534623692752579757147723599918283013572506220572956059989960216061988264140826191399186660993213754767299095436315567330626219236512489561470944143768092886514675390618378611434913859943035493836127366293219373562307737102049535148394682836780976050107101073547023972061419317196859322687454719002312952051597270707073948111554845828855536183627945023065167638569682431435049445964615070049829004556253626050642547580761757839503719181868224525668328236830300438494190944773834734149893106377763139922192534677972195939079480873691166391268270160450966019682606279483279132529795158380423041733390359905660728354604674739491229118980596796923961166376695065528017308880814357072923727256119358786526203192153539776794504711173545351790731576473656474265169162298631894445918533558551807460332570412696489125309660711390651842719556829101851083816873990047308568675573766464317244137466148426959140013031594025947564260058995316974369942266387606062118699757930913893240257261479004967698064811204181281479241951065643760005407886254018135511534294056923062798708932766123187644592561170979739194699935073929856135371396958771788648055694997942888502710009876567291616321142413179629567257681080666252467883517548105974297742611146761789201819604168280510097847543408487451806035412778684841321129728059882674698684936298244446854855380069039210496821278160519034663042599161568555392894442809743873407274114587680262915263399390200460704625072377261630542792918618897634185618641753619468292635274272184014839426643548521313866337781281830924727867460160335221878524990473788492279904097751604651012156064342477031607158966263089576573468277881142253606703060857996709651496350056626866328471064214516229370430147142657773128260006485840655609515829908880207271954498825785780844932599010977537807685807513798791772829933305223459194355730581452592013375456661372121797594300925596915786976084504935529598661890236009316108948605951390398322686764622700642178247331565575986600790798172567687204103322891390603295005529774543365405069866718691856462554066410189904921767010402005715200227824820221948565653893663655002863473474654198129029081416567502389390969183555622306548989203258240221893365909264466136210232593091731805596659109254923489863880154755838333139367182632365181002513394843280934254973546427643983121002309972899021013045876908903218160798455794920187449206851874391757375576442763643227089505995231958566672068291705298018817540082628044924881715643368182288720136447957538319146628412070196111439533589739895594820577631949720113776491635755461717179759100344776195935692692969377920936153072480659796816864014173258470050879627800029418056498815665121811253248952515713870047914589863717234117684849941480249205823921878258387263478760195224313300263666284748928221106406038649792400797917532205147011604041995816362375034018833741099359413960913424081800490882129568468632306180715815610547047326996275972265824658354360246575972112046001499708075086048655836853096042746195507506966153169913729029596454600330889623589009568439648443076839591066945154665974147341948617079397129025690416938187460675767966650125124750051314518963953321050425738844665252124756138379343309358484951832545671825616658635892228043349370459687624088340981465306769641864925669458019121995682320718335899220576458765785116037614011671390213329471390061367912834085972988552925209305002338660674128028763955371737624707581408685351065912772971615864137935785840378407317992722710810759405391241416997320834031768939989325117433347574698671443865484692765849835723591415074055152462178492085168133207613862457303032740564971891292736515657205986460001000745143881587821810558419555784175109674166357563312108564669344023205260255496973879832578365652717154460088238044763157587385639601197967408930208838972210480744143398682037835183721186905052468163557633598334268230180994165149531025622753486377045145551792095778742575093575568823460847437328282214256679520279301031565861011979713514379232236438127520709124011896968689910059203146341578624421331883813486746150379007696838989167183095090055967635306687999991439999225895220140403716995822746168175177622292232292093405227171732911904981166181414325168847386507429397161133443761244036019464893407740476482207754068252139578955027975814332460982745741969500313110656253692448144646093699648505076820539398932589094326892506984361841067817316059318873128251046020604873668272782738577495300765588906948727849100129417728320415471459040209897588334427867186742132980470383865036331815907192523950881560565468266104687555531740983846265545806376559132838706597306023173010392987613294624611939842705837526117659345596569123269907294511075357698122256482096787456112888554132986743683980514854794311375225478499832447906062352527104595099487070635765883214778391307771507618354895168899341369229507748104074972992047951904228060716233768292007505523297525201737704451018317892780200390912562013552898786305051326230667671518944777205651550550754847009702140971436992652613920800812337021555570621398104889081551830027462779588852699115835897774710010187484840175519468776356620219789191350879077663668477770338134836124327161458892863905247829918620218710365058168203083051746483790799979247235295120609699598959089965962493195828236723021323623929751777067926471235836323258030581365558684767726181141711536467158113175168127874046348764583559677773492265212529660467358058784376456313451216369726472548057686532372872595603020714786848662490355055103924821359476862562336642130815623335560951095818624517013990656315709903024144146231065300834438777088098409375253147307533988692246788438772016013220765166462437412930623687632182265460798131992643121801624205093653555940206753733342065488783869040262859298762367673790852824668766678209485934743733584141271814004296456569538704446515467509688037081681680957157088485363215148553060659633474953441962612248534068123276991118006226331007421587291212000704694820265025439363385484312224505084616955063901297901177929228093534763346894309171190734220918260859878704233778570747118054310880649492518827892183021114308303621328047656454857870169104906656451207079237271607876587876396897261618303472700071194481457093535799232704739720954442244714156782415717660637568199976469869886849687030579988904250378772128863029831807596371127636647691268732352853380457518372146269035797853719355615840931578365914289700914820388524594410107009253476865922590084654624572465882644442230165780222721109995234404870372915683010295403729316368269392426363501895884440323111901199204507205854806747943099934814466904331328708531903543697007876454496507455767312444378659530652727533319055889647835055724898835015220350160639355188984671402949782982953632724382367548088113395950902833042081976050082966581602390596531699633501695804155141764048629141718549808726532320530528130602965753051206225459262292552524855910502036380298840938040203379040748763100435037029668559880478555760622444865758907079535067294330866880922569281565196915856242148294579469182433032110081175271748337289811590364940984033864460322074586796278539500607449258900875691252852936193343086765845578194082660289651534353786150340225639014770288178568927452115047189793154411996858963242573535284362613724581485864914362891406848853837728192311920339332094880872815979504738034118729030671204625745834421334792687285472751703391806829789051217583123166018182060429001277513754633497682009339183003992002511954821254046925601032996707194902941259076309817782598910535242040598480607898282804963909079732908235811775846422895130861803270724804013390605508419613501461722503785912444715725620961562172629591131133689593265878174220439719381777661141835970828655473622421342653487240189610793867939773519699280909665721503168738250254455586112658557584217041696040908507195306344965836891599634313561705953815130092758980645380912754582746183427654997749598469031122179333174953316848027309707584114915629127273736877141816550875472042391377047359087803672352118476367130231571038771121614342074572388104528073739018456824409703169726583746077322362919846026155502524990702813814594465904737652960516618482267168339557813163160666778660495425886433606710426230822243119187007314092240109876132151611516628258618863382674197078226599973109493624660418342179801796281703060692962509975722651887884084490689015510754731494138486439646971837206359969432732214493698330296989813837748068747744121518835354219999010743261785553937618252811751215213431152828035573123774011043197629322244568453840867893231493776786805799304290453096829507446084869063534391857670033625898034632744265363566609981498584661211290961669622793832450953608527255084498256402267743758258617938038552814813738538925519404470997803067820911355993901178488381548564917362998191663402867550567860127393245800868227447372370471588521444374743900003614759766616820061752728187102800726625257389120164366329041090720853284132589402478701289679886351533863885867151340796658568438022343943895974455943628187154371114839444263375978630133208306875328320669942968230908201368337467709852781022700271402005634439469790636884501251601910237987083539199388860253445221507715257694570131610254660070091949533886043230116003710616695891502878773990483916483497144978627630089483138354898691845113659181591551386642885605034983486680473508800858525538168176344963849197359025498051661631816163473116753941524902399736571837130579576371702937348928974085539707386582149822987866671002726959590185751225733567862046247429130159335157354999849482467319468829347043587041220545917249878055830885101032409305011800907991028460598324271653581185373709331353563952752711832468036728170707808447032961791274809355244453154735477126179494296029867187455447315392763663688787258194115434780483806554381704877397429599820884159275259626397935865243435823070194009717621286775288247483650500209542169236148126685223823608564083016915752852707003478297733280745893220117329356382615626764158759776538755813311612877650727013061175381632410876496407964141252723294807627207753815745558754809699011531064274590034093576265311715554376715974252221246872931844124812129119253868152996919836010330808620789902255989859170455010182318241213242179843092211520321638580468870855465299251300290382150827947065246408136010353074722711398834400438959261361889699198146563437443788290827956206532654375823268682288361877019050351884074747809124073289473509415992556368229912211477804857744565720521307396868622898391127752261317072832660187129195573980748932963722808562580581015951224991012782892831954747352164758720550365621976200370279914913106409275757024422941192588565425952625347770841068362511347577602954564995903765803682312732264266898632348269087262189139800357322273192014549973939396800799480556243192749561936447801826610894272787162488948235237943130511862667127258981566158376478003477500021562517178642875605764447599364670243648702552803295151137402585893723143298726609846262682510769417538090548457812775810820851580746387407007628550943900533521148795566595940679109027969293071716261489803382903791586869683617218183046425550138910424595469942714728008770755978727952686413997723950226326537474279461923782979576184997513861205573403320655728843601811012415839211278074839886648171003582689600835641507326097664692454449270439448131131394615459967557027119238008775560839713251695274236602712334058885365903198061956091026709823901581627428763973775894376044051440669685425569526907536257307172420963915779539247228920999215275492147748501066313404274045848801792524241174245128289466448258147852170634607195193863096511303171817552722623837918422566361919468357060196440732011954647368889138409347599418524375552470627887165832979866177965907371823557737924000622003592418987765454155603064336525553024674439453362775237943080822654829095912896656204790042247880265671242781599751485744299800696554668551326914471026746474177287475914975163375507478321166838499253244391111131326583226824744214944353044345570404248265156933821343196021350234959948913970132637760548065689834221567909009275898536584848593484631371014090548895937716357480752136134761192769589004806005810173455168819059537935125911349002464714501214447754296183534278512378844390289299279260786390779428081042709695478335956629388632274588800621602453351779177776418496404449208059061628880767530393114423327486465582925544513135710054157338213210095897663204837551513364476393740864658455464332185536120939452321801113787325345262431007770821657573748640582651374377942054909428598017028632834062034124445208576940252917069732230401646452408685070365194591563134113048927716465594899954995583727899169690724067541444520731050342408927515031527085377422757430748362006872357613706099173525404282152342616856227994976178384356459904656273941157305070914144851299080878867728684699997795298752515677434062489894251692495541604880484731194217060919679393476319025296836897193203195269266801188417356607740572448263753312368173022913380317433992241984282667274008157036642501563206017992444030249215160447965084131482420062089186509800313214138516546320771495594051852612593140758290910983005990718085612047063268569663338680827738394830456994233613309833193405667430917514400381457614356567102664949894986897336623097380290554073543938059024965394057576883446946347857464136990923091725772600748948566733118306015716101916497411722866259238935947859993525926113683727591974430377688151879829906935141441591426023917485044282284199807801688991931110647246451815782853007673574808849628879698338837163213600316877026923082794871770770918323605291952361729498360528058440602089584125171686654468224256459652089217068790839560823631835099194020487907336390311655266820644262175206054576602022209006037301591491609194588103824717075432594374888041790644654128726928742995311472039040508606041787372149601611099837094758322634269350582958639303353173106540762150723979746100602322504355261508108957012661533695517502483477833445823336884130514154446157555412849710558330549331674955662463346788170371069468185171405060842635284455007396373324930300852661259278269734379507454238969546498234195719189234290376918907847264140093469788253650959701574158683846960521203820289575051638754839168643866434844167172372633631226257448206846508390649196570116134735207846976656986681454827586234447210820752913341769628066166645773715305664668141085777273303772657303875775256680254032363010401734110540538997822398728119489139156441997541608588185518100655171071712033260779764509091448943728356134660163440918533796547417723524304979247515987821386402082359786300872104110826209362362509184523127683118565667548590365248966780107190209727046070924651794398366995093304758882480825103023365862609595271966903530473283244884006708543144443596064234065456867446178839098558120361753959601893580735124398907361811554040259696775613807095153621707245500694182180544286654715621763736271227313129149377845211878729620159114481782046660089387000870051231657469559754090703271580773661266268478415638854156485342036234662375400992316827234680435028555313530638197690926311804464911187336097090193484237581037992448912806152280222424117766218288297375664905285020355981095964107977928511064434119321795519977726923332592022397679501246960907095406337327990032119450812760349083124892602170718479398692131875595879238725963982520933001166348233573131054877816574088556389228632735574797375518651311960841277425216085838050636633005397075738183030535726948198493627623242896825211951258853256212145145525284471274817222184177208491858099393024074766653451334989472509316950247675513466660538912716132551999626930696857626848596838514493120686348918772442725170895294996797603044806520067543813516500659855438989583471316598406407752790563384345658694013806568199577897859501550005540688040100172126491990263154169070615072248991071363303666653079960223331213747813668387958822458855329593733662997980666758128301443405915848439661954833785953410504018687974495778506230366893791947904831988066138831277837674471726982263243767461870096461623424758222214151614022181970001461973985774627320167271468071549914924629874975334897850515864281713795111237190215537183959015096493174623157310873436163437575413028901982775500080132021933894582175110821103117060427833333426495788239669741110134737565233743601025838889644646552368491363109056439850862520831674594096691466306373257439164222659866853029773018697169442291443958225092372575924134203983054167908307448700048049271936254091490125630153722232863720401007045454951519503035952467295764535777686642836159019105485156825950997756839882783190194919246619565684763996163834242928653361797444050605974510942074698529979924299653872704058462349040377865921891302933302294951759211012654741599041042293361869733202026430389395820953765720579796009968553110840478339810075285212358031066664826767453955361695308268315853476520961668066765587692862320973765525631128798197086130402204426630521570032615286918684871070816374510453796694310960772292551679834428267068120929400737913472912712289138960065418884690607722508867432680658903262732517932600598564252890116350755587283427619981935029573714803363080617300836622750133215703468107129879912151460845869276264272142019792752021892657839509439548403077085913312464043873665313600404185268687587554236723686264040922254155266645932483979059046803684867096424584163835659311769685437087858162569459990389782419026600423923065113917517110437182680009674331733974330811760456108877444267765348063911571899986028618571964611172707150136775089285424080256459596313130912255742746609313916799208762276164316759837123263542195234132163468992957106271182804476275570641229173827912780312403291497170078988920476569090081523724399044642353980252050991331602702840355937154761202346261749679243154554764903737746301493617914217282796686698024740223883666368862684600704077168902577322566599699119034642979856473736953388023802341688346838589010994003784263352047016496752638908872962854470570989374426197335016840012267164597546428696637969992300353596680168303435435344822336763391055492609316962460474619221083614268729260728421077293446466252274797836670934825398432314393584517366964421646934655747856313040928437039591459643269536071731338780668840862928993102659758392999667883776870753148846937217645499171327947273123134233898725108367341841828062278344411687545452287802206837752369647987931082371334922822300488256169882520182820264263312199902422169494538179911183598069111554410391962337497972223290893644347486672977963303115954407985975663667268248266167765476565743502113441937747418202481849918038995133501212807539449137450619908674740564174833920474239742264688899930161155545656021759125411663107960422771618419868631316416542223422262487643209790707101953947928647981206562573019529823728627337461111531284129539620982796359903341586591350778273612566400606152781547368800009947132885649362102024324578412109777004853738933706591009954113007699749787365716328019792620089087178954086883131891573048138044420587553509915193883428625056203569897904345227237059820963717917425648602119422938751334881168338135722366352607930448393120478268157016862598731416971081308107829731586796558289083160677642650821393779334439910483291100171540078884504945550225414549551110910630464893618613914701299018885688881373689280309298397979919400167024189522115367174695571618258837697713354774691553270181173928976394054344523906879219021375905072867599801230109639926685918879106160294870854203992059075462649863866300068193810946937433861804037348274479766708552870704630794041249863839416225379570575792101129758138760980103391518936437861264744377542935608416659417835396306569286542706796837592100955894245052799841902603938129818315718946752913480801721578668176847531012179640213448685747768593237578551448977923119016561384207546771389316737877493660370374816460371190979185111448004343085834808880620293183379035204210800713178930973532363444948384808525400603821501037147455064635067824437944292636559034182293484682862248955967191536536172520742861353089953561798926951662311847705164872795274599278872863616106933126900395929116587099370994415566203275588009929852338095375431447413499369222037635886245464689596069189580655353267164093624414783157638319779715850582220879512732578551477007761190214922835847763988422363292933706956660264568332388656757210128568560164051255663969063082649475527796163246992475356940593401027721127673643216751695537703450233283258661585097639305531348870401291346294548609509373123058881001369479672962446573345298587060495628287828962295360276591396573449784508313899059136185029378323629920494836440523464326372476951175653194444323328584479482115971181415043482841377701957015970017701977724784861929341550508246238652594966661474039348891156525488250903628095813023725410868587042649915395957875953721462923007107990799985099405070567714588340379176755973063799049425576203936906880697810238600745941109818202791128176964395405927804501793255834141833699697685589394047003918760254242762184459204276961373521531441587135257296608564178880174934931700401878264990909390060436148982827414982355908938527255962740802168006211255474308198795678932679443750749813688792859437867424546944189850595787170922115884275885349744181231136800187165601130975932592817369450570291317471489378011021193362283102165622212312876576919570412019922160268655565073706413684455560548814655767610117276210730284153537410388630057138681796926914329651270222908416333622625103973638386895585207000746282508201998683497939473356062458329586848201046147908541342270208166184939278038840532778428381117592388131318006006639148021293149771737884400639995267269807381624341943382506379406798883388481737691420715283664333650895388876848302710590329177952666534656688034279422166200640566846244775759523088749084759587879467518376328309295060322934148502727736580199105871032981710886615285393092526248521086629669763667112334994387080402529524892580137757841921198614108284983975918046339495660331332244500439513989576145546796182867589437832815137772237046640046183941322093574471441385981708199497827828347738761427560557086170707950006198296537167269924998085238957893662056746426645759887329996193357478750461256413563165297029414214434170847248236117737791395786038991234210552627801677341301474669243928194869621565966098624711383696875880393196860934010919566023863790809958196318330892895338706369229622987545585569631772197776790796210632016126365644541263547304865143855590354919549740922844114496883951409867326294259037170161791125483477760278158672855829791343543295690904578202989468915678459603031468287951287922052608168329733297695742315440816417581587769785545720204679714871445318218231578737488155642405654861506234159549891028795668348151839148675331965237933340514747324408558185539917514108446467961391823930254453308675385634106493352516918812321342913803761452855229356898439047314972247660940658541240734991877090334768981621283320545621229294186510835428730335981249231391973818414487410800332108176350224881156058038098160106780064957518934492380237969287995036009253357358129063701937077332086054343581353294076193204345148597455908135073631065351136351201499455714288815309594316050271091983515569560085600175461188666010849255659915035948255246083257380683487038411419660853364391357755622119579334819177719651012382582559671458033404278317133647712062966277445454058539882373845059445799547246372726819650660750617816453508305980278922375332862177118828862570781469274867597570801123726880641416652709028656513507053303624888781506900031173926092436021035107782550042455540925890480662746764077893063995899923632255275981009576035672582448976263873516547891302667099632173247879608540039493358953293380921458332320850454909679707012620020294701489857195632399973421779369520265937471007001953507642669975330258976637262959757012601730987873838700773937093951120613983207693399643698187090283829933520034638852706305771238571922483206510173849122257811655974157616893769678899413823971084177376332406664539194654466006677144887989694479600045630006455082153118988811047182527788595962607665711250526020598855928146893847480723898118944201944079773648888923712094019532610786283837847818171699997728166223655578225343477909669230506432215093402639759294775577224016707751018418533425475536214670655271402270175509368029258771075900033588200509917592377488005866605269805102822971670082457582998953394487733224188608023772830430202251761372436856664646404426120533608017770383100816683234869926215286502629927450608278422200548616506206099757258816699755039121315705607096009866001715462618976749057746520479972607401533870806570117365985051219083924954135962815700129468542319031718195710275153174208716610320785887362379358479176661642390952881810697671069949126465317623300708356051128469194976965625092591998931715711844642552200043670386498259339966992312250875981166980949076240622924090844082378638845236242649441405181293132881669329198485086239569465849672004453887759873794112190625316342192573888996310359695517307655013706708529998101271101099023090993787514367743660702382319228276947457485089427612347590036843084279492921065468393177138109082812778566405979705153044308596405718616951819929198730939940806459948645705221228902963081717386377088308748732189760488002402616949873781948852307076728389573318505211853284123555273462766113306342827733265388666673708443127067600847909808022540849528273361538512106727688148650343709040200099591332793197661503601514132284816760649164307510166009429188210917356752670470032651718801322808641977878082821531309494973289346464371430644380106323066226802806174264608360109973008887432491355227080422179535019289024825078125174332534602387863666905116046220663394496451776539437768101443118032304398738015424244959047288640120757849379390619191232357052111542563005170223214062521811662688743122100599767889527726277257926932395998821973302651752200642760562502323548758061583188540116235145034379343050790664852775707917791120098018180785868722986165734882399600500596339714157091573733829741800928650818308301836978388092330204480572645667009798728533887752542138020889357689603775113242189337272584348745345923967738264097204251589123560345176126073670988123386708199335724029453045039904883975785627403678014275799329102097652919121317011890361333004409905836398530983692761999276238474168894227611369920391265963801595169358844551138953598793470542733123076703545003236865500009104007141815082687993608762278419245906438282276121408806209477804240512232642393838759255690133035671263230307973102988896920417213288676183856029437447510704513573711842442300026687230337728238378118495390153224177285116239858186006584055465293111504805791302012586701871497834132493428725328676443469791077872181783722877563082804933317603874678048045576937136392262744810158273383431524586225566823476370339681020368607641579545048239814188711587948326296907675845077943263968477904196405996803471485726714188069210992358355872271473026050452352188508689964853186497184415695293226069800885679499785343101103108954591907035493386694536369095254547020234314480691970237489311110571163939293655586612022304929354441716057129478570988786110897443322446999178083004966754731137863809807803268316223517007366404516537930448896490844136334176005735778964727733459500030405625845303382829323561136144496710157890970434765167937859383398376965138792288099277044269991097554022316585101924235116164189333461117483096128901461915498287976779391595237146253674012956222742678025593383121289334007918980945335049906516590512683243430221661724660792278068899945973769316156011394556923194189695781237964713017465147165096089234184934316374886964439862794165181431305745564359066300642241793185799704200403208307612153503771697095637555854564385275621231802418835927211534767735394704409202378100883229151872184996499482097134139457553528700537039744292042366558882419934064158960721173652232700416673913223939924316087289345048956588653883743979549347797373036058468339118203467443594886545900411310158417969432587661786275665688213943214006703023951772545640613367812768886700926547564347458033829256497534260566780758138395934987019651088756620421334180327622411713742083832936026559316311060641628364139047986721628963614158211330949628096583619958603612191770976879321865458442940521101194188273761494001194339686516909368376305451704192477962916781302769148962945350583791082855119230757748243057596819561901863866573106411735536052332469165696902357513227144394009299661323135383813545911071621463033547350013020046056056783475956185908460692851100784824641673235919290316080653115298245526422119852012967386360322964433967042495128557579819551038578064504291409222788812221548230050411555663190724773744603598261777083784953258137678036265413531109520301820806522662715597024409053526056667130069644118932447143682426547237672711554203327864891495069833743698453022447754297656528608856324425713159925067142995334793977392929111085909732866279653466301128809438113816318105371471767372235862965276752857060811798202112896353162487066709520957654117884056269599884712223898367779543929831092968629616945205664859493976747805101291428223199369735734036895044333990953223485113054707761983853954368325045602681162870526060149750809041591920968852758408266098846044773436514232356956743552121028582301545281507275910001164010578013960584801492154400713052335793410208414793352797716616011947914721950984656737448595792449759956199897457041077791558902280618535368283871732496290600403004863079491630446931724534763945489938324381296120058657349871042521915137613521811935636468984125028368453359886235983567433794409649812353478454735172928535960831605267694078933778049527794954184551855298685668592331835598696246620581770633206615428330527172998574832000856406617173262997373501469745215831198364895870346126809816782782113040252041548530179496244794418149294085151935481252766176253296113468214895140751262228052126355511157246512481880747766301740895155322185292406665494836844721279543850156766711405902623979671409575035011339401052202246858563652109701083927981509702586786623579488517700408570214925135889831122158462628276991425262067809866351548719223598051781592478241121281801541260666482026956478266204010823802978844219536469848638972509790330921962868119951912513974367195837269940160033741863148409811516690092839297063508936919977075806656964490566676501200245694734285882456636530158078742527253594474118766117799490937900400832901130613225002625649020002863358900594848496728294490041596518597374855121972677038281594774362443215733791661643147174122707610295389896461130456019631390123219989877316881112625936689130652861577682425731002814834836785199478438089119588446110440446226926634194912014271374964560547620139524634091526857538954131530851872582949653094488253991217774031458209270437160098164897852057495708249287950097523359335266544048544835056480159756953315762567488368028143428646690946285233519193141322325134774273859414943204480680468523493507865026125176791472208245386555949520230786043298760503769190425330306905181522387691682737532934193484649834551403135405075561365768754907010777501625371624949502571151334018011875569976867868665621357503999606415552813253776026532615682678419367164764489825003820663213024016003760729128690600309793916401658212211311734228268479456438236373454403473852529619167612989042586958560633562534309375961495351917277544316800525529831357537979660394859533436781879325701159441581953959403588041280000698040114882725450582093155397610707266556073471330889972119727852454964892340351369921316029124549754314534567054634570712642904977200772655427191822267664598294280160750018858229440656059881070759623578853419967137656528604066619754599030861556843778228572148015652565334265614384946542806195175027440786478831311552910128582284902200645154340990678609560886310238924863550283588352750298377971301576649617129594776068658561088106148149128693922237353106847428316515431780508901123641714775805971093908890631895375032900416426096361782054246658627347687214308528704600413962350313731198776247267478997734683207751039952324116369817860346610995436434740529093526024560091758494074778434838414639713399705122778705345799166368570463985022817740746852414689715148632075495418909026641733099181592267792516838236951070708292567458900093138695917403107289895447512274234851220454115295444592851006713949761900619917373461856259908688594527692285309644930365002525958665725599001497308539185013879686667561344070026893447139754473681152358463534588167169815415377224074231386222929219054516110209743735032968063633801005787191664344295059452987320537597925641946380556261313430435692219867022542950983583881801536981263682365622818659487424626745742841775983046269342398595947367202226512164527056254863126758398098701654522898348363100871161870880719841085226544892849368996659594531987458058270927429089822313803462321794179999812342914687215040108681994642427754265466568982007058961630203643044002115332533159693998720791107823231319417543890158656079538127969000580623895710855070363059647601799820856083418110491971762628663315083195034858932674058473971585329615374247357372579155939989632208326209982055010897986856093638808265291849964042608220257622109558166456929260995431516701593402570582116376060640602465259919919524857108334822813917137244282879078130291931915959284470210570660736611441225488231358518180366605016309212513552577144365095492308373491069089488588728589560390400266856698572649301822674068121990614149578779552814165675492766843081047821028169993410553959069879229531157794496318726926025056119464597892081148465139251406754070975887265959354571621490057871828446620336650191224086058761510300396925412514155640384526579469338109668512690496192664635709499962291617935923192109809424383792150401345121338060167947762108262357999428916640065427281149369773268210222166786874421163769208039295655871520799652990730290189931106422878863767141048929677342785571308508854673830341314048683144961878550057697179744123356737467511729926536138313713232506353682578343474186448504463520421100599330800562090962554235778684391047323988292572532784131921847173409464378837829687820537282055783934866285746491126979760275422766109565655188245278155069786169970144229081497081349539560620875220510400627478148305886626801126874586724560449905502823163431381120746308536919121827821951525514855166112000981978495446337985306656722685629121850391741875787380806040824864753248277448179758680780890649991100371769875980931560506477843903111961326870387315499507752828985646709451547807678493952692842835696542842276825692151687014024568248634361684399005086185827955299307159117451509154642892835207638324058709392068881026267305547741871682013335205828838146926885844990023801190204780531124425617341045759279781597168690493147297391743882755406794754307987003645815394044319724978411860692685392590325825653024603130261495896840742573190144041091922058373490411493485049915971191145162759988566074975679563157662278861408384628726017536557839999524531080332207112186710331380417911267406378941842373599834702673971013736823649382298519478611349400474886714428718818086331810069674584284722473095903093717907425159610164421389721116488380543774408075772116471054435792383870340165519205066596457593156724620268926004074616179429574749939844166076447006449697219668196121459990379097553373170639763710077470012584448813205176430784394834318270454580254870850948033101234401995850766969057954614785563060574245649216741559796662704961999685326649915629068961106035224255128189523588192365175637403854898995473452952272283489041978162737788819320096460584009234805024142803835392891816597397779524328831800503334310970896291185319787625549536255773386323416173397872621719315927368581838508576119052542377912767813955571210391095258324350115792384067604632126317948309794531556901964045979090405820127060737016192869251218351485102333937145758131687408038864670706973557344875836017109349942160132813059071178837180433245205867795993356740280169470344370669693643225196806850011672555381978031780327214505252664848603540951640480301622449943523529834588649061250269214652946421571868516671526441676835935256196502010184339630464911203884205059484538067377292420293920366313667988861173625471686638822734224944844105203450797943925111551244349935665295370751593514154241907940787608890219979492257721006890146758481680391515313680480668244629692664299185887829748232754992691278956767313710940899230382741752654351998559541871889913903301612229805099532555553241884824290211531380585033824161380716930607042242945300590043357333048834054254945038285711658434342711577893604378081393427422227346230253723130309869239267092427896021724995471612626874039425125848615478046336653078949590472442754650580270005786992060750893512284991719443373909707372843826253252404386445630081414695640648077958103471753721382638494833575058022749358680263315474353376805386758260141937843310435166474446422470230898936585367206702599600879743466376063397414214550785665914751835349771224928738636261796687522009505712924951982649586348193260647622036611676462497958507647514635527911287640053055880297485439771525639777348129141875065916365174093116170447359211548131616841282295041474482107617205482775127007588414346060308909483977572463213864955509113982982643599257645010369987743329934383790307944427501945368467554236645204466690104683692988466818386043174385870700020034999804512555172915663828791938341902975121976868747776090188143131670651051823207653956760547906184999453360891744331188534005642005405499890564716083319747910629956551596799572555456829435537886170595060871606934876784579390064546973722180331930014667769801963356074118021355839583667007779944480605708434563573020499448607133394711832115977301241327502480380370409107867379756362241766204850257461509363617501446000773433581616705777784843193498780714992616134794088909524214558217892618144573483972996476588024387514904958734815391460252366990829913284048188009134760963350989547989830579886298354592553452559866040657409521546693403152606086701079704111032099731238009906460805720565459477789108745474748217173044542269831666836744951646073402258659428418749220106639361083538297671207252455086878744633265475673318256098985070752332189414573464549370193721932206213377482621425864733315155883566652753620630272803472099805489869568055778745291886454446188437412136987454370669616830484641481163624145869121313590512421708980249686914213985566713359948617554452587516941155847257790112735287259534362605999060423443544598945152275958217922281152956072229729433343854370290061726123525341853687748734989975360717598951772264212354582915101360025235970992682335224155212826480478882861800442886523744239397965073981307445082554396280705466558901827338429523721414909735710725225873978581231926538954813606102919965936457151928834970219930951341701524786385027869092113303891454181115254617022453143712240807759988396503869727874103944424048569859159930569557249859564564032729574573908825916275820878121104727548544350329849270961097394731036556029524316802957560640708208323771936319196587412807704122950047290012427272378230779074119878084848564696281748434843907499034084781137648980670561772456990963886270224914490795310662870940730675031251801684137187939567516849287689443945625384201068445183323399250413857801926914375269296634787492681060527515550214697464553930247441190971943924436006001527431558407554545404278038928293333312327644958781604806087889456611350629307487360154708514837326138785922334561725316591948323454015348377770847881667540501078064115903349921476155554426148224727305823583007961147030836790791792846697826550232829467960747952900063939908802691896304413412326394368394995378830427912507559049521134626933864785924805189956799997753966576791771072941588731972102138144490650959390620084293788713715970795722697816943811154980166052885020010620534943248223976331564847469009531869953813882907565478188474017012334265121998818790512596934917777978917757033089572122523142149789038043374444882856568113571367651758954074090080912777280764871847206978620107421241954163349168278488127585988860489580823038750177169357682278577897620554222278276399171822298753784214649288327740536043564133687839246344060665037770466943898490022214234716672078229802180936529489118597535830845135810830598404053773502328253201971428706960050782624152789057337121759324078853878496865618464868806400254354029287595855421966864224916927378568740712892354839718996167912491617844004394140637957787104827776619976932259613132186272123029942170702882309650304591718275728895696743870249170220810080019546812219642674600872445550853822411086530477605308324826626602118332408845081149137951167326637634006454511277544798541648610223432457090066877448469497135523565855378792346244110760487776148412437563116583518907333088484229367096574815071482101062084488775491363748966821472652928417244576795340660590130674087911714471092508451811330808011574740453169486458037329857869386445071276663275929470442419073165480555842213189713498585228064379931522863159341071646824217721585508570486792328086891407756027509887046427133851200347966909480607220864890274285089866128516414842877897091055873362177719563639254402659435322967294085894724943112169899948611078006781178659435975893958298645634916391358804755201996718628826430887306482099142779743195276263909856537456491454385309278984984575773761484249556002342169287574810446532855225007953557603050125703443803187810980371678276463911023474577489929033608406128076814743579513443492412630486887587831453699340109959211547654223311088573682781257791368568503702385716825197738790266660543609304994366664237077675318056051912429343536215698156696480393540212258775442214428134450855723900300331388633342690932089662574875244694011695224621211399864225618221971004607726457638763376564979075483911446274308846887987027696621404934277131875783260870312016747412084956520786554928577171021372843526770268084833795356414358051364659430418158683674459755425785092548708099059668342830208882225790295253650925298225418018264167473159303106992211706042689464512689717259927518144583364304034267402208089499368205015037215235026163572442363751729985412465094621654843861591179344710718784243753507317192231038268133418386250654189617846381803655523782245101036355711040879375602546295585807425595321150197697583718049282446922166648883978956261225986561632813655573665179750765193264445539502212138096909280827489552213822778408692308437372004611825798961598691511288293142608184230248140609954224980535666502137819255419366217494715897474759406689635537514892171436478570988087595646505569091161848173661490790099068736187569090592246706698115180414815643522802258926915049806751652358224032117007719382509431769705047694338462221564690127889286787116567907312922861376919360118855707513866414791367215316302394697935285083885847702312321285837891617419781361690695145644076353104093898520813138702382236335021119144003580231855857815910558865321787806484204037407883784756268222063974155144610483022569687825465350608805749218555477201826546491161731024611969538280530126259138914665566338103182197514335340055725070571813230942377018389157124682445721752252686005763732011670873741953161007181715517513325902962283288436929161770587498056106545516654048722072419932991546055455875124437974456403770600847042072667738879754209619155120508041576608702067376228826788647119861525695379049548838316128450464855133990398386280505366732115775805625894823612385909179281997779345374503064392535958048557965827011236378247918787792122037877958560238661898446992637096034508659131838251163884378962222995111171629236457164270169445463626682671121735698852454001196466549805047051489511051908355413418306429035892241433660513907358699141267789406497513638340867227715838137915366968129940155236254492962133915622668431493232572341958796070798797039012044478335942989179287597614921946394797931791135812408541479742340202130005559576402852186557658697547697912950661488370515252832669020070675262855993836396603646220690110335205525823600400150587697151863034745143949811424812008507119437732823431698269495774705439901827484677916580027002849905316449593432562740340873612611983769819016414871986798399278834283806668638458462163527117645753082863358129467435728177054145717114547518807336829959519571267992524091975290690774247553621976982836340114640687850785057622574900706207585099600701362675324320436882663445726133064750012800571811251151787501934389929296615968951620188598585004630695311787368471610318547083994809673163799835573784243319050352347742489093195427084742217602026861604772084984037734093032188957858315268575823815945401117748168079563914147138998453438321943882570329780267956473717094206927955017557883216905440557216903368149916950591902618114979818446157598530090574951099389738281149305178175752633384158007738421727761745260996515771828863216160587619307325631716526553004369835523523105395261290785718177683915094249438679840160831615525646410456057902809517509766838072322227783221440850425955533138536550429548326898123882712963875396509646675636689686717421745273451248088093193030082808989774022912979938438168316882508678908868931232902085796018981053333634904658677851249701502648454449409209419787188908036041892570402812564458487931798536068996149748935461330624117253514732489830612494225782893389464760505640898702437470059678100080895416911067963757743001019704332942226092906496169870007946448187360395916603912402440048300841656397693287101287145524354101659055232591550245971857857211131063403806642291894006996816904344389760539548627668317367299936462151717008006054363127381440240454243648962827279596221433562209965406292535552240200468477576208950594015428232643456824071723726997059319796957946932691357692095673854117913690001853881988061810384517728997551750929349969186829752471016589163219765146284152050200005214648711894779702729216300017572411520096063430492736320284161717569633156940804323538854032489627190045129816336927184258977272834842430116973467803883446171221959824763900604017739123249533700634993176481011501815802489672663069981895076821070177271901858084901576053983017080796409885965779167172976084101913363776571871816399812108118427126080197385345551279467640085757307959808237823588593720813227765286943260892315678737176894067234458055229567728336076842341764041631476165541220214996428298709180229246378269377565009545027879626964045292395846479775152864288345983210193032956919285078972880022476484771866775060617391228109011428679377600367691317507167874912766422329216072834146897405205712269476529193198793012163567346980307584233527464083581821331355199795644777262596714805685126382095397969154450318402033196277461827470612636466399834902197830192876585764225741294669126785214372404008414234916700330746110628481387707691336603264477297294001097115225691509904973472320932764841788242316101786671495971927188604980962541552319332458552395688606620894216299302473266290173209125457132235016927541532289194170935328188518000932186071603234938972351859133082761998927526240353477613315518240854186005940784934931097037658501026983762773217048617689696262827785589133301527476453564186411492885078047497751092614922353269268416356065695931309453196849224716006271005784797588576175760462473676841770499958319912264558417698537997117973418695125812742759719508714361726689767442118349365388133310381754418372242044439777725090490618210898049976407279670671035995999837843252725148066665606690095943843888266422528598685865260165914307944840660298981801111011592063327816961938314852873291659763155668208072119430591725464927928895788990477513428363171333358864903329991976014668719897395036340214471436827395153368780339542770657667712869898665056619238749024165232706245012145807451552961702889750287042859087510113200422641039107973751846592524087351767527157152726841310511004631531933057631852820470945671307718857685932995084643844326902120607048362522505716750563336109326136569935740205570713688584262625988676106658977964162575095176690298066409710245278406220915627387794673580422334033551158648369815420415907057062725971791830526690030053507815912201134567154508727209955234747847438275657031573789783790545937003179366237068305229135986804282941333746086155176331764991335735393659259645657719435721745530273902488961189097718965766566530192703748673844874934501566802823422302513804907629609753178646566517932514615669407651563362675746739530223291978387297569419049142499762627148021065141635483864496213965738913118186918307725147444581791955180351912133549393266337089777731965834991585415347036662514926065995501456432765676392830156986955261287908929176863482564539622367833441584808624803802590438695649453781025822026735560896274486045337136593234644801069888737455599523019437805082672497174951356980254585371035534923963647561971253790528053332272314205808472945684735856040887597775061194220077802895584242934127607629005199316125243207706237812198904129592642016694454720658992286007442091988202110774628477853970857239933983049337410682432116455647321368403878664422947194274158691806888090090677330148172307127039234792867141336940124117706963790632230948030212036880418587803673996053582114590786183654757830503453130154216818348833905303100483519150130220364662134463193615143845200774506840119118460545545341973208920897157552318953370253993016971706684330375581476633556324740988848619233006686611138429131452029459368432709906070274041095284715370925569391649782140288853381588307675593635677364928227840036700351323130339511174338835353046972521620170073303764855507243849254410416872553870226609013336372086581735862902055986014645611959291996659387123274413767769072067117562964499062960970817840535009253858574168861253478597130364204762256904029566441326730328038539591381979403680167145608852589520674055790939299138933380206914925514025687413540257731284039927858707411802747205931856929791080584581408674484860540890139165290283818873652788811089285388160987791485852562340783730806215818734257157641619536366022510390879818504495489665836192064779206113733987236912611982000399414265157669299465234395957734968325141358407998983022536921929861669384958933666849678374309057936346702874048306803057457813416107028411802826342152113351762971562825183530251921288229333259747290797346677593949560066252446401992403090632164701314696487682751006921577655126938304537380358434838602806852149884631968247178436585057474258484999355656852153911236484370730992365106591276654583919866246841185177644626569348285530397127579092372802542610401526777678672393678400072230505617048856289298876634031524336156774691870258671544606425879108747497309717060698090326863220022089513644947875861978343460995063110628293506770841733760090949397002971494767245944060010493484734176425381124225771172804439220047803007279999240688713841260434019444828434878446017877686301358900859056668668858568917552697332054159063993923722404100622282017051277731795685581633681427136491276176873876554219004848502425512077912540235516130176856155205887815386470845956192473544943414098729053064127608337510662726116077524029588774217283612731244716409205326791092570720437496337031100341306018215330506814799500215131371693625606229725586741889421567987554986981452130033865424961338010263162932415377785498201872645105798772021202912525971487913874406587649677473467225654394496117304261958677160243201344974050111774810180005117635879063302901206453064264328629265898852930654567542606240504369632555971809462242869095648204812984462677841587949844629699166153847848128518816700766168179308168553061385447813774761579131515405760060888810487429072874276849677588904186514377059204709232002067642886520591518521357228032053196860682525603179876197655001001537858871183068276321581610560482813070528001517670291632885464167074213127041131549226143529524834390617992398277503947192782529090926704571247228514590709852005073607677899683174709726762676714600274536701291683982013240999787618490429767149881055884583249672735543820338079450373900960958901927393600047757248418272354924423033651808754700560891241031256884695473601114780176916599395842386596024216255231224879128391491672191441546801222639875196932404664209398550260500915520759540799286856672003525142190809731100952372718350016379248872640694460154908663456922328490269996408092010613653706889339206077444880796826012647880701700899463530700364882426319995308866320615088417523022592643807976594881855043839955533675664768838835499192421484334853154418946177512405465538828878201468403539672499288756179408564165682548222071876734086126122586818418185799663617075543785903204550353980158651994666143032268597712237143113340333465684764599045358014091417430537834314974178795020247927378279097200398295620568652566788014815061156543244741786396996135978943433070711039993979728165522787054840413732114547689843377174789117910581317056359793645494536530455064963332455144755218572745379607409259927443422062035795716359659951574608911782099013204421615117232742714557295330695271079120739567873315779904983993248992654739802553843536889979949390900361300574333140759642276393656095508251297998861903222184987164849486090932657212160408238608223001020764036903072682183828588408860602633880917457043815706674526354710746822402331935397923764996464670525037339172594759193786748153078098824614130166853460555498813458324823601688218325543716329729656592065391940781647631615816884316294350282246138264923921128885040213200828242210192457552960619804094964174164706207751412883394797411775722984856374002809711609647421085835695706118802891558059243967818476030316734622186801834778937527243973427847966549500576381916084798774736879699073894961794202559059978021941724571088059738029219660816515028253061211624759632897006613884247624047139372185124044882671992158179915238106685550937721558318133699904789306378318826418917066823355249205007594630715012350700816299089252168108356609728361754011071050082458817670633699949926223144324981057402245569826240236086589513142260481755798556002156288542765055724733645810931924884775117446738396368792557146596453737165656686224291802174902303744474234909299562711931484830692827660702490003660905511915312078623841724945246005205128646833417603063518516627738134573694269264253520514878133934557389809742771391959443047536117586561002975282565231431359884268406799521462414280221946788785115827973638444671332601198219204531422787383863215354274076519615252826218877865818870727902696464211031669056068097900462392872575515170442609932953086270180682055715060642135896671999466119750797380281373440880159705479002693065278596024254408323311898870078892085846919839829285294283950535285780915762321609261535570421054251856799149328369422477266478709953494969056748330254880702643459687124950304492798036832710543001126994423836395583888652702327403404479762054062022477760639144483995964782167197095442926868068371370324163368784434016034354657613030727805339933051166599554962551644442630774519622142657790224769108467916317604376486054827005623145252186049535571122124354471286889593056709099346949427835036902121715162318491838022966467980450336993619623430485379870902531149706278361380070934774719696442075675302739071509850378103112824250811978367377410548481030432459041301599840194444276695409755598351613020727203891910776032120596300809286076328433729063342459207826106904212530382660217242020651021127537749839763255270369907813970955308251669476818156225992601747040667666255482804792102287979258279207694249224134088925883437849450450195706727250775434786388676275173680065408155080885989675418407630160578297086449185341697829542707772338836157488026663202729861248637032467086506845232402501454124322602185687436211184194381155955269670774041867138853253043085900279603550103410534548574003314848842194062926212130880410177547813201393126713099721257794889604648250965103072567006050338229733207556810273667702313960434346218681670209436148426139955635445552035807316345296387934207887150918819033331297204251666026778124993548152079921845704715761075694384330906051570347052490333520516519100528786705751343224657827140339844681480154017952206307014835558120817066925751946882290693222755508646592910120733474914598479692226643899905752504423429903369714370533363958450178391957321201412473254419938558207435850639194581578858819246101311205920219094668549977846721168559506115156521889107003401872853629427131716253192609802592812980503366705139757407268509973759281025490064867629547100772269828024304896886643392787879191838719718672554597365651453493439602022786623117349766170187787421059948944261253199968923263055798751415521783198818519873748355740525962550690518045317046842784219997159483963195903302778942395928051298269471447152592848210420831804334567342012656945760240485699984685608071740718732925734752324194297481991837465807584204039567540924124420011813325329092144882111860239807139430262471392310877664423587426921312478495643699867028254448754319041149619267971524548985948021011297747694694101639580535854616357220945838594206542636078118524798750089648998169414542955944001903504461308143395421049616734498026645569168449081630960905903981093990130120476037713412673400977270400018870108794860412655788595872510561784188788263341968384021441248912383632687589386611484306664703075262118953901517030668878780386371817695121404274325361756552009831281382357818926767915235008923623663673930103778526977960169073675400412574720717926748250488839167010556061027046096162099074404900384207100546113068802435668623405091924865506668082753163990238775637430281248736927136746766183318681778359758693176734664117818843049849405932366956513969338975509597642870622697208078649857131592746312549608649883404469448675461351569080303159234745185962795612785070845943222191585927940985336189938867456422949878737116602578672496262827227014852434550839133835028543632489236115810897700710165065268811480995693269252306839799737767527288055569645216582057652239867127066391476757419210935585829657982653853245319208334999352057874275453305725124674976625268951899492882028363604269308157793354158406315496779324280923820899389422146022705542265289914998244763892951870892573071585555455228599841952485255461888952828244295787030980640805396207455909052123267814679756063753941876220467533257175706308662382241298855689621952126303826388223029509928915806837626982863466523437646383852123278823188524560566690603159646448336055268247249392957840802816327157427001404617777766587441778712403609085810121256806398394823548947695645811925277654613992539893510635651062001524623256886857890017361467962515471966807202617206221380632478305080051055448907955074950819769631693681815882394508333468566804086175800457329824365853904099883621952384510068175458555137552597899792703327226790003646538843640149258215509030849843689476669164977277003698987537998123015501745997324946100953778308439185769798466030297176828514261592880244933291490582355345616548116514710509137216835885897971636434414849160442821549785474826746911141855926685533009466681154893357918799285090753042518800657073843723009036794085446929943437333046953625919476179222896360924740855646730964824326938825058794479060986844045165981595620021316534017514671347599157165237405560651779698221834103014418614221092976194830458086995935733715154358221875787542754422347736232752097956719096552603239373775911832213138401937708966623521415747761983714133775989401253751144449650361778144078586048841369706499355044413182381253971571627264698144559743507171790842035563439236955388309111407840396588168211144845242367839169070909579145600257853390277601445419727249201017029240503699683992484172859707193605488143693925909445570805451951968359313991790071208155064505591262577775401444308932728144881239104437914074238558125848777296643147196628646382497267524816916798025160479892117113875572051416224878721761890483178507436842066458251286208383218135434461440979018281364544247435574979902441196364475792270508036571601389293763632795999258594222802329986353862661119946809333906065476960112450695106085349832042583946993765106757412999865902447996736082156457753223147618357892912693301449852961073687735155457110847383308540465566245284435131497973430735426367535236033311882318411037752157234694283149758834792634449543782883051574192681244565985290701786832078663623948773438507408022002261492671389253669119231927451828271326630503519026631335111755287640167091339306638301274248238544326304052042522133589005142469462788632259751015066919181351228202735770320270395679499240833643308616728698132647726511680563148185363698848225036040758094044939432750829365872328126079058663674898999440621017765769114097088084657664913988396480928236049534930979788896367888800500536916170283627932576025167536437366912434298001965474586277574846832955576495473475176753916216931851763802804989963995444573001491690615527710770041381761647025629214408545504202884479563006627101571095503665353556122537086294797841958918987514732214480610395762137828286860628285619131276582160534556740142319962602157115498336561879301669180633933140505313913301111708253676686862222924028796111474543729105422615772794234619470826188221405221906797631886210396657785689105849386626581702627327776390081546361818108757027132370030811125421035277267171746777909102239819362047157998915405216767459969075293726933786278226158957236931910956524848607930892127438914692849350004023449271234347303075962675938873323433559619504098939184675370407184759006073135490907542498741676033475541601509526061043547356316376544283412101645412351023357920885444680475080541713976587352807158259928416727769610782482420027878091831291809854314536360244629074101290155681579808557445544128657186728554854915247470749348858495777097330778978909358362052913372177637495206963187279244613763264173250005485500428005989802186367403903272116832288649269383235290856421073243704679807168522515991807567313071297864087850094708112182308876159456575496799462388249325445073194750866639955589927562705327049987104528689051680212217576586101097216056997537339360645648567747073493605124022899806593659107119556104297618076359293536095487353417765060291646258695001365464607406569099863411963239501646184167859933026867449586630493776282745946822731537719123372186911317884954012962953428098627366090607590846237615536393247964494619580147308803495980680605118593178393481158099813186098350999430418316365961467574464084844506971114945713007861381402144297277102905992163923433522669376709806825920145298768003629442519537409347493301406625615919422315332292163471647916364758112734219177627550985524968393166481305111129379037792636174788566249780884693781727085741421342855184562928983179758040645290044112066751235763518086113798787992314038323268101669021758427064128684636219851500087671735486788476800601697537873284439321864253541535491579344151789003996690701082875815251874522228439405570012247070137144983085685962454889762878190455464012328440977755147618421368826029487145198206019603845135156580124573132282416291637646050374624990254137048563210819407187344336657808701953646152216602239637108937313861364670432725165801892964231833451146935511133607402742118517969872385587541063160804272571053486316642515773249819484351255275321122002949065890349768281018782281626529770171478665933253090332440975265167751535956526970857974847340180247503409690294143498753812507412970096338937698462844435733879608125107831491279058617622600436129406376440367870763591931921515883960193349883043182484827000591157811054876769266820911717282102664625047250388921587326213510069363893132468186927356812468225628404691705013736815546871372115029835101262133869792067075401999684832089282592510543300206343065447866573777137663973814468078018957928958112381558901986193525443259897413187625999444987800093091946134708592846416034248300096700532473631652069845400625895019277068540866942267445656301658866189696633226438656774347784164166809265223586929664903133293145041047539804954426206739100816320152112486178997341331993907433420351802812616432268525865073188473436391222288162404500380557975271401948126878303277905865504717625040121157794883256361277128316481989961692515042272774714679694515942819521912883348376881362690735545076483397271171676335165856801382442834968655460713249401362680080819012514450475904677760529224815777914625977903175070306695860188328783473815809214780666411645378525053927083521265566740090479130088808102777973574576013129307115946602730176799718147332678696455526833954684935302604930969591151940592359050659082637187986208933091148321789309171605767073402153805657073049780521018289520517305297724097361358142147369193516270852264820972182412810319298953881805909178453027859744138743524127804226403176665507838546606526719483859155895187459266466975708191110106405571182903105848028334879226695647174999053537270437792333863067110665554865356763440990391192968446211691309701407400783246220847538240188073475295692095711836806977589877284626831323015288342224059561096849596967145324974544961899865647272954024506552937964472570757387933339005743835885104887660603481933416021199404622830632124058681379003715584125993093278513033438619723864601563725442420388211110649989694867873897106819624230880250764695643401046973418858245508734568809455159464820384438797818921517518276598115255867718878768191017617185988816838584933657410577669212192317898967816794471454137008518364818973494158952450265537655269699501895355050409102251167470476858458871687305669525674322261139685788964530617335916619812812381378022690666083402914988166273356503656450402123637461156891121370053582334917098808110025997110504918893759939939872945605682022955957477968393739887111154001319023165697057160350194462677469331954730086799327481344639867422559169687364616491840754918987876091821238546243389239461041007255796031934492658941422376889678177898015889991166886368303402897844323057107500474200531669129468457025966313940687426159008596841485050225383260526435877348923927349777525335724028360009471172429506952827778108539985309037915177263529868102202278006351860883202351455879276193439309732226588122765129979337063073249582115377348712793490344184899740319053915264249276283727249699867605982102153707115968537591113901461729023572165029393585072304175194342750920866823036695517179749420507775325789746637593826483429922546257140008542896911369265428997402838745608649862224100759150650622829255970738135833654135459225943021366307720676816616944724834700650771045170049786622399992188582134171402429846374658450556959363965454064424263342640982787884943494920541458266845335299729973508828307442875513335531348110145784099948513327328818694074992294334183618615730756346430125437155401518301895786072977442759216976243138129831276831032440336871005191832312079318798257591329854454518483995112255826915422315715812249984361039904293660939546215802861920165319301492006281659610191483348182385029959647182733557741142766450206386746077753204430084367070137146411695215734665564802296808234879862584854878239636733699351172984868511766118655685811544590427176784041652815741836385819027308110986050827660741094725458202152859738357186811661285884954117356390121675568499272542056952955188090153135120836233811095481882329802208671013354836127071024944911531445276998566757636708719303991826554363425016883384697275684696579900501568522425616264035300054795516271279995308954162365048944333138838933578088067646569607092438125751932152254973932582215282451552783679269351860673041958057306250293239527950733275580742622174590140081939386751042708142925071457221462700107635672150754525748392855845422000584523073812712689655272175496746800305039229040313895823855761607782476060343372676787939161976524111188405672069109389627189848065089597326515193273933851000558959397329235751677255764749350909391190321596163602458221651437422852807637588597978607608577421908065800749114581572597065258788498301974964592116305013723844552939358212368759786909887677387017103473209329305014554194972614234355249639740419081842681500512122902082014791017816647580992230730568674961155672770655105321803585081965865458883185644509706773409725084084587512039242861695855320248549082521020457663468986989762768711721013899537266038214652950743691891066573632453021544986406449921577915155310298410695781380082272888874245773821954433467739184541059824864638035910405787905969608027914653718696987336981295180551057732534304212034644618808763410050483484189174715129699435256892692079556038765213007857526089340002901378535523707047278035741548372401302280657269543118345299867944685851638163620271307172111076766916217348392243584695448135305881709091268361912253033172989958841673255044911834356653509963764567295735707658867503169500863183743988971369287269714759423700716660220539061347443830031502271943156910487532295327582392781394993352660464232334676566926648623738646784870467890526133983258501862444653407891453261029691846160084901128356842890860785950367630316664657490031521430247201036002209724877366268843292352411780291170368310600707379935548969344420059451504120350349526826147865449023594145808478411637627249340270293641451374897271772354210444319531358936872357528285074236475433799637042641923435015875097028981606271954103467381723486005340702542691531172459413706592344212120706723036337516254876247115357109327182798482925790901449926540218443783568995071406481827911714898827246808938603786183140788652279555624910650054119050935982153821696703693070926199803941651426975219391820953511386075693478142981018877246937295584049582423438547780277590716928042957552888045703942844864004391365507371494919071470758699615302970244446916948891080043696310191817193965231620202661403422271713365526909728427427608501916838420462572565365950240472240085497124275616136866611227662709506311782017800528448160619096907650635183337433569129231241658111759411838501711199304218509368166730362504470432813286469400082554657606093840057198370914601479579881184487626023295808886419560319641354563684550624111941566940954421916901374089814010450551741063310072979483997894283165340430749682547222877042477425053641684248351008228457716688648875569234787534847015112636093695791683837401873301916425384046130413092814114278307526520247115925126634131530017746107339572370175265469855344426759430443455981505337237856066096447317113920549761366452394050859200959109395574318809168072809341868602352574259943962533558962125389086153466426010947012069962692814766791373524912490391722204489064100948875915725745188332388242007487765760349749098654479389004571356142848060472521289769524860330925453274249152578217332131343353640105370585777821044535183751501725463949087213661884089555236483020172129255426190036861224957113017042777083817786367136419414825754711433652057814951697801447874547724621514430364527719987952270059689942759584624331295056848617162116429941304266266913960321904471704264556648209708146152433281642361998561603999844109831076609727992983234664142872868153530428460817544300919600199897400671480336503373427149739479738164271272505249879707692159549781278129636880103924746770429352653550688236410891959344229095641960798279749432995710881709014237546578593221449382359716173777740741562742212238227731562911214633286244698292354682652908411810527796153972740005331648511764159539021589873343059227128545069387857723149766065922531853650761317338678185946580600597721894584005025059821415661965519184531482176121186116447952151619907819682101084726582768785564527396116393594521933442921811959543316438285859874571895715661334476144693484988935027223832845118242901109640272142249986776034208695418722697640375283303373687344725978446889509608759114214036021972118975154573194576689437293293133598416742530356308314230083078506098179201836143513016908867512187493506202544843387423349736723958576683690828679078795167016338892827198061164887654122959742103107965842568580189170611883023485747583568049447210538282174255700083073964437300788027175346314124810361157960049591713384306152935267861828479101573294722983495548367063676332995528727133990425200690772647894240781343837455117683775215396333512425882110934031319916011960027419504266471732192107019660779511451824552021933366218473899053283125130593349026392448143665831483738940877280852275727010712962836997782800140218773216223731449665019225662984202411182752553321298300481386524192369747111678021749094758060678559320863912837246541492506910469589646018530969952349958363960983284979362097493809752012265632962691198571887007127497365856300893878690184640444197413771192326249704137891053815456020854102967889742096876399457453980346288364164685290989445464733247075518825998794725418754681354016691465027525566822143123633484007882907217928433453847854659890546842966797257945612391023301925145895076556281471167139004485261858873102186145660022177182503041857605115336724934641959624573209089502257057325121648854067426038515889602735949629394123290124081682234539859392875482172677139251462375622354439187493244755783827515809017682539951463964188383105876172322315030104566966825766081563026554591466193519454154090555566069557558906974298546358293951839519951096095950246229874183283400345629335782156334014447005857169023658716098666585225986565855669915465131242224574823565072950848786722412240237484028715826491589738446785772260172055629002457013902417021282141910966875937622504710071864158986986480269551252826494725016517231939699211393464126263912002399001105005185200768103121075221834315208540744177035338240781752768192639555772067462106834343225526926466848646526796288336265514451990812722178068824334990975458760448267496941759058553732638879031749234686189083248335771943479940292305560521839737159219871827387086710886851247630437964654045791067046883056143845507519727809237579202452371360168178223639848697251835851830957645501461230129231003108402662059982592413383922974899751929913146686585635215379082226842434040971187684778095713731730312122856687684921871609352739422835771924648025145010761017226346246107610587652657980256772906550402349887995972294335073899755449691822972240982367759144028478316154883904370526869107190562718878105421465508343587421984844992116420342099366227555649257992747067177929042823464858176906210472041551013538570737928919659553136111368549851817344165750752002635199431278591487715273824266021076019900776250726738976876837254191582329972126583478515861092111986296623769871183158156427300139996439823390257701897624014096747196957946194069630662588478512490131876368287820143051456545660202461933482388508187868195655938255857123302443483590382750739834015112270103520196146905479694763129208011167551244853253508383363320678827314115660295263010237564893137903032995023828421501504525806603361279618259457176575349955399628486602092994750590604555391055572811822023823731344070070674748526014474671268707035418583768312526515974941662177546725205772293659234591847562738092543323385555129241885028341437672257305812611212619492838525707751972127508024704038225463999924263977999330738276678328615410921605163413379602008220983376253491551090491024742854254370069078979032223285499064507000323622972691581469441875281911822386399163637537059687966044057831519081485758357137330825365462630775009713586194597836002218927449952602192361220588456570231502506112845906880364649452788610224606983039003925893960489211918832830715303277750567242983811873803198110260606014284412278608394567868840069578663620815684424647891896053307001023351601596896622145791929413004473443759584479183757812874317608825469656523507933712187803960689516921395592847214767903322983479565799861684350042412468242457878006172783474457873164394191149037069593813838566087915041967816355931456727401325265936729685055780420722409152974142022621649840634955100145434012614207300639005978051222037893145775667249784456534777174266282436515464577055599764003155674764296994034123999221156007715539949947122554064013257336985973929461387108018570679639650305620571052623763316416660742446878789087752474841081141070840247925322468794375303250443892132379792984473103725085974362773632805905068235424245825881928708453750827413597238570212791234346459531870659986444967781688908544492203744263509422338821191944592280179223812078693360190008837499712257451653490601516494691233218530770557980947411708034743485565445550339122638759878030915313843758858337511527242711624389712183592867116198101227885428343871797836756406583237260244769124368081801770526745310089552373627802522021641903843124149062608276764034694506823985092777778916318861401436844157290845172104048087668350115080790199348582702359924991119561480652059309203698440898300440867760885038690951982473516134852950796951922949924789467735228880413661299300349128407424502795129776445383561929858049300269490248868932198599378083934248603037093734066648615411591710237459277202259703089684462675840059066159622341015291597239006269131320860602123495194894956390987868125984272511711225062401349970348412676506172711155065233238928595795119325712160644897300712370080092060418660812737298230642799222964081216420778153919714192489200870576405420927068024859415427253889160151971774781743157968220662508489826548498760918384304992013850548720339553366259903911352082313236705071256146335980176054915931087249788730367229687511871672970054397770251225648415018345950846809521181644300324293860143982335258807160587976882323429190503313146571769247365538804094789222397908725606860496540405855811005351102304155624790394413549834597443750807738475025984412389812944145497286025676312338924399484177386740260350036025537123572690623498299493768873085729773542241461300478974619995194865139089572595297021204140282939214907456102541474199750087952463377435453833047016426015197999445262336327502463294651801559658194374948207711558824854080955384681016752042466415638254193969912382055075969934101144096247891388023232700415460359722002374026512039429500205913794109392278498892722304744458504134316396949082983498163344677615311254165265074021203427400705601091114581029386372977078066845490417099046014090059434751211488698202095208571181974636267315238512076372332760434460282351085457732124770116951630307537407896042126428020797794212161294084200149777779722964062079871029234961731929603778414143985751798850738511895206046603486683981520246409465340701776854020071311492759548270536855016456943252754857588615598265964190039838720903532806776994662290995394294728001945051724535657624833229114045595484337269799308441361177768985516326878837921412578622213409989186325204749896853137100524170797437069376059486772791390846132059200720205754665127280794315556295471729322280508276726419926403609157598877437662827318785282044657975433440296609269687908987359139414993572257474287506443140265426336605494776285067682114387902203502816003179171371380323051171566028389663442283188238938279318598967618892610145978979487370903369872429892651455306186024458318321132536150935493772280993665043725031738533929301198674670770794964228505736383041030688889024829701505670238537442979566655261027425966064783009459034720145560419496635377179677169609389489097046565714341649294818363559366981318809074826334673059747516447121891477540593001111589852070344000251973236284255526765177749923195053303368682211698416956660584247350475638954520116065003204624548218124758745797486313094416157116870014385092613410311475753714990802611808426840230008275081083922454799094216406394042377668024892314536920693338024317211355243909505356770021838592272311328129944529243201608715877071776506138002217561757515959187301386147524002769860284402546218370004953277986456109795172478685689673766357932969758376076265950215172973942407273836789177969150954862887964752111772884503748577923601782726404076465585501703635219493559845435311039381352687085057852521437248468073325086885396306794253726248319149741063926850259954886509239219411240881697030354521448296602358242791984492276425758370761436272594327731680864712805696379971723607911048374114680426959370863048342595555144293736591679555981673058515643073217185722640545396267739174968546485107158925178610749283619855733705371195041258687208153642100196432709592071216125050425759085525739949173241252278777010097364138534464543137403602115211671414291616430535067684851408060644901648081470649690185273520945713652858660457123404429197128126894561728601131620536859970090761461950879872511652253660449087036867235212246514325392614648784878376808121948859343682963782317907993146056882481083736678772761062305745493999086999673819575827494420840503337168386812144598031183393107279868805872579030737783797206766911544697228742315244522363897995438074904637924104257564476619475992339130805852032861942289970420330313844655909527306901494350157105300147184752591683964046440083673623772774406358566953553770259833574677918455072321477228388502255651136534266446171002996910631615373189073597011693894385314739989008986497362570460897380853887447451136253101807976139887946865783988327014820295445851770149689132904269819383394218245194577034660307185198991499179421070920621377948870075317222738910861414206927130971972301792602075479401610715403918908059847103972010189510521037328122558079961442232629726633738459971317929302967483893744074959103541847689693432287206446728455767728835908386265171949691918898467212203611276998255751531988638365584139555772691133838134179826294408874048667891368186743109985871704244068376853353989942118801790120530313498267176956956945811752848158419888872531042704699344480048689239270796486166109195157013467970390639738557241060437116200833769827606807350086149564365316159923133372079386414192510354230135942556673590189574973164076107627763064976764311592850296638943616558572355253655478918956385218285473287422117797705534844270651552305640507569344674323114111494632331886654478752422782879611801059868951531867613589734544637972230287017221412126470929973250948481798598682753840524828067536328778395515099491097690610046659049584368151928040587350347389511853721730979429168720208198622427614260873903708433314741821613231259487239991198963316570332223820540587775968864227269075100174569174445212414570071628871728137132957655437385649197683544710894346988566507425294405984934628183349521110517379623160852842402241437418909975007937897262713859773892991057470525799742815604651649118561437710471342313204368335603452413126738039024950694484527592615424287073330212399465751758661655298213156465631792380075190024043880147308774551328118165454654780536496116611801599620993977061617379296286925399330556452159211060185924230327888696016609694465098515661476499604334891467453802412433607928587957247858795541974354116409989467826847564711780253376524589208944077213124947496438964972510561010599486384674402048866455405426017388134580058804558051324589973661685350118434727299337707793491378119822867517064803500683107872677345391040356639254811575990781888246965344949114003309347140323208770137160324990892762223083260174884215385466052948304807588627500642204396226040068806328528392730910787608517969477770661392715403551013259177041040579003237104427996533359426013648034620780103761333091005940532382548739357435522693187414294505429801658488013224009207659999500824751926179723926128620549969087290856374109754382825760487882338983285613517389293136778047929922792133496916144351692418534954383249414326165431941465025175092181180583815575360001424722173538815894746857043798291721475832905622896616346227771391352815924039129143892215566630886534987139907907678034602059947590429460838024366051200889360310582086204772720796032143193302981831979601600532725683555269354750021005367274207004527174482701042800336510145873471758069010238464224104403860695189616266159890151175346828012818322350370663104398712228646288046009711460951498814001906058786161145563849312695737184196191216751925649459868227986264750625333009576587963201361520415137607040700063076921116997302927534279157337126279848870393793732936072101871172472573329624560069537701337842676931082039447660816125007793150535152939689076670667596509239305365069924635365174028291393081975778292090959100144527753045847507609668357792572757286444751795407302081997572235622707431110902058301945872223851914296551112825719918738013509765769817629718899065877393460896231825393361328067512163150071354988068475273157238216667656804380797087351594283798935856921151694579017990010054216246883740977131228894346107458862318456680544783115041119084676864949797099178897968849712965798487029563512432359357733521658837695572773873100244528929783724473464700298564544135159265039469693516354955843692425336038227190424844180747669286662387862531814588605848522902915467899626524971033154706729117862797925266455074781141345758375438250558770245609404754196822933343056364882450153628408967539052327913962138320345410815017200627883301970221988752003247521695307627746197836571618801428696092017071640094924953158723566615141446030021298537901091535116838950051365065279763285843540339703861192898510171575529804820589721082408823116638986592475005699562929933812978768372872965747451635744378274203581405508137559574828759576824832679978884000603534700633140541254257648806728718626008818387400354002936178301644566390112387889172250980193922420673598300570991016911065981215009406514437303118587312967123492221910740719009221684708085862102905460326586901920739089658432286850739747530510346419036440229243842746937517673732243058497773234250449424580976741096466482619385247191575546650262649110482843530182000591185395035419416499264459965926008195852171483896213787215797984199484059560593533141909789954215638142621679665171781446614874320855014506750133625048872413221182336084831543875331425180435935848772415941515787426533042522693225151809524605796381536925894662712954141984301884793020932878822461316527125591703945613529672983371655164671248790523218549194579096913894497410210656651235395109788205438319398066368621557791948472169991703271353809141003101771453555932961606412205830321285001187682602119570153220811957129831321113518655996318756173421062480919105929050977888223904058022357042460132428818803066573289159265339005283765498373945732459179323660924936387279557949750810648904503012044153904907443818547782498300830987753871579740714432620160410874451485271035964005863925279886429748562745633981811806254231082767995693259496835191576610829573153728992693602657569730064877198484679709109136681224220628906483270958508641563864760896592107831075944042012882558104820407536032538465044111024291410141871454349457994049879535493967893746920680242656213293310204036930329758551755692632546176456530170810793554814933383346694145359417051935891462461600604363462735996512207101709597445738684695233480302727433609549549373958094269282836264988702104064599109107775368959429741324478634663072816113302938561490882698532522497840373915573825298646438474145036468683452300122410517477968777914104289385087297683418393423539353573221010059225912406731224471144571880906903655238487281644441885011347744397381210304135266374740727943951330028231764315269428005281176790744719572818305430708643633718342280271039601887813090896537561202513500926610174820057249573884256396854939150684945948462189668340586498545900574293708669396147413387450169701328977967556957806274586599194422570819651291531381993205120489604812260903126491297682047724950319489917317744840808934169488943031390859189021385895309294676177712845279922111396225559358873181016917230899643327546823540671513797173282989180775059147360301370033623885444340618857888085747230356689271256291767034017446909007058587160332221871576453874743269932920906806561098112203585646759721529669458160756599463906383746362085103690593750012891706865411328393707014977719081831931499809176079296887410414290917560311062313112006861934544055691960131424546172127663463240371500020178560359801216362209817630516854267961847328835412465283976192699357060003286619317901561401163910112927445128521173098493106318829011830906106496945356733616975704011238857667863640844400712184999048833143200879690564807763483461549772767419704312314586306432577646562186754354679307120220222180051641421376358224571299834428639386564259523633053370588148850439958118420479192332722063111187190274179072308623339295482829234895741472397596210514393259826715621998795845421571213003767394392217271585279863569770848340887339861774000445786666003675253407601914901474707104475823720176519409028679617951450311148673298391602933146523618505940099251357041940809898651186386220012648380203639257702580166523458271210790821183164757109504427387324056568833513798244700061607294251058400251266644465666418041768262056320938602145144491229450727161777264745299255455912087264913419340001194662449700028919610359164331899252463725017708301143227593939794464333343394763882050979500581194087659244687829383900336208348629591093008415695223809694968066050069666563085182291628667550708228928040248332400486301732752780180342206996713161548588181400384840118471558836387395109976430236963978683908685099405029380145738619279119749692884728571036524055440629302081206992891547420792562343992474091581082239635292722926636620715856918230830374538883901134092645511818819637658750180939343746626932103626323422545020866312047979745544095292054576242964096718610154683903297434339045253115235688425090921692926037862724175066161406321042926298658038122176097523753611641807641847641507260264012477864001581074990966227385425618821120393305977734021457226222201638426467769410743292598700546969141174536632714726846841716311292894743107531956362092965287589094655600520915874640374337756028181976784999161808062661626011545929814289253342364252414247185053788955332193085607474749137314601236027330636095894790487448068557171755416843038722835203277318107377564045742930490219820401678469352460718751869178843306080392047789445659860497796298932073275484056304344395319229094231063358977840134307030856149499847925917210002034060518461424525331030930865038359040034027552677275988871085900811538617713961901929445965692130650834455521985353885948886972011143218191553209528401676596713334229560791138274383193057424689074170474434103591014295534365242143268528225138880686008606767575513264254483493613148302985567922122097805605076588006724671878779368101873466296333183837655844158557323744525439120058439600864339347010091641017350371641560388802398889694616293483230577709864547475927069274130871392524719194104365465671306492687855971730330528986367829288640249343862720457804218568217209373073406013147194163694138971536441328800827886313949916237272584584248685752877205771663454639790241161322246904562913873898238575581002355616778600254804844945485352853365219928187939977675699111047271948426357998362437172484014580187899895982541079340248953295886552052761260237522862006046687397599793770747601140857056414544026114885394664192316892152107321474222892297837578745492748791746914939905545871162374356028132854680894625735426103093937737971876478620999520025314579273785594531059417841426463066553529008162253492157422759892398342788319386804215432019406943899374576312097101608861777507519596986688808725675461618617003279822383993582391593017413718229561364557518438936872889661268928907318699408093277277858162042769177195122558150620018515340567829977239202704353089140433672561059373916096736269966994225903778117152414670546941866415777728541875313028636024856635553374466379748639681030420980652290835208558248916510563864784004388253733144223459117491132671985168848102505422370003115844857328272399892955917846898437483182594390842434415876178420943730130115144718329442928250965146295675639826897940442726260052144128983819718061217959134623282720122574262836418350418265655506701607989564768178934111914161862533551833337073089282447230695381977059773646831505199113673603166485779543992800139764724713190065944221307731703496467101965137417440808944061749839119891269975294244085249169167605841257469646462453376587488120699401361149732065403262041777524257769447653095203618294259017833072471207004781247880692127526755678556704572790612852941602710308149217278350967916143228285935139113978133416153701706893966138207756419214372947844966584628226244579436308847527076572468954306379517276346165249252628693224931550980357897189717473616108069953671789780480492186509325740433679503587638049623952267392678857906253843315666513701240397617313751841977742241153399342442743044686417411523708804627002743369465947826016453816733245892205639606445116754630678171698696600570144574075323616053612562147968177400987109835586851934817595805112082869732863359509350936003547846113748123916208219069788368047435886526157712007201561766285873006207908798551621209233001052330771572082049380619988770311945162120212447229739527163360652358691428523052997715381912667926847674520307187393788749900367362858754186177496173545527195402787536562655605316238575825239585932223333987715261353173119995199365693514513336585323478227870366109682968146655760765232267886622049944590489298264690249773398854119044678176268276510403832437032470361539522697171646491176041879555554991041794043786532606277387437753242252088195451993215861930070053448758740483658789490638029986071563995224225130650871018120458256282666082915084263726137560952026922031411512215734908994196247813293431901492816565054648457497099023408663738091872962189461643325003583580084057186361880985397561094509696628080901902505610702320062730519409390436251487830569839162264427874001407598396172667866301221328267953458797999395828843239431944401220975565188949410888659823809642751805521221474331711951143670401366208353341664307662087090409615900137368890868877626344729019026097873377349256950054036033806361215396797291216371948274619909856075002570640313505381543082659871800174722970447950112264997413141319679439011669578139113228142922016298908798137689911701441747365626036790055018691829252620676081831174079051526440051323816095878975933884893411961441273816362477992758910713693388301559548956335637949034195292737005650462799181686332533175713047587264498272399674441952224608713959049289580681849393030317571570462337375429442848943366521704425389460988515402378929576257432484972761357640052763592925429555699968204970621188917183210130902914563070158382649716922220328883287405093291426739083273224972370388624619819074934865313981224544412500693266030435445738935509109403914893236705943456493222837668270024197345271524903819974452350702314393882591173344887808602929485035794673403347779491286488180719955522547542449506139969217609241896250835968406372361215984888353254556670575158649657809012779050113554039871401013275326302872198954263225902225630482595097286910628911510735829731145078910857820718816796904569584498047886545014595705000733182920059725586814967197199860672620105957478467980272911722471859086556544259462033539696127302759527221147757328885265263299442835669218764316757917999501875735006040145270796477577378276070229772577575810707437938653738385005733271839974386472561820688511979844206668955038836124965409939391797530790952205271679634911918567912028419357185564102714969545193624410160018744007068221043651416785744547151813711447797907590146312498488984542875942388210654832113131634796058224696255437270226031073528911140246731258629661851100377825907618216916864153873533948262033964694738446918311829473824389909707801758835362029838317493076519118925226699725576565881316209822456981947365135659593978434713389486502577941527167070893748401737004355288436450291856718192752501978741672059394341737012290815068973778397784801414959792635662628285619184464939654931409536945959539176206358406603532776426355995415356774897612532830915504279327486934909063697135636482386045470634130187545264778885394775794945155585170145185108612245278198365264938591222309652158629524496325769563350637538115326177000968538345443969138396121483633911039917404888040653854336743259694156620369906566912388503876801282345101927796638187344021827473234496785487285166448446672521320138244903993881778127238426024456824345892842540314934194950823293811308057011032082561881514519735362858354190063145946029191294204282558521043807202903430858853810838301414608927618660485862099967535606026764317275127285346914281840342825576076579210208092564925704140186783501187966537935401249146012783441791916299311975072327351897420225980585510873174851977582406742758120638904460834329609497345876441160313761308327342781677672190661601205891319801602286037951298878629367861921754772715883627746548655062833347314648898012674734095416427608077155427180033254039379781850496347593114543610944158620431229875760310454149514107767877788391860746897103384053782553024558206599938699265159082784645985373567019867891519925829356980358998476426790050192894818700734045006580637040667298496400499997268586364506093725126008130608410967441545738636428161654392359212007735073189322300232629553827475669390055446746840071215045571453653159076779475659627772334849704525084743273376089484884820107121840311431228235715607792495388829965825806891586278267723147585520775669031976398023795705231784956370792939508351749489515671779334604848343228835789599689193029519956808277093671811989014623912883056421244924384577508219535697889878036932590057148147840787999979763481523900750945528471985867684095801872876213340495808729642757165065070309133040721962387921349994281308325728100323159920411657328239829807830670220387306828148566607080574438339095279809705736674422371000294115740660281703401906250504501760574253867697664286132477667042949457315605262214817323524619032325493119345493091876141366892040247536873741232082576758861239072384581441207465579251093867640386052201559338625804299927831121486373774553809375372171722648779021204853276273958771871377927289920491032717005651579944843605694475717230758762421563452554157429217074843579434373919886123859039098728092238094764852757284248224130266687417825484579832109591624841690955479818531967237003219134387730128154905308181725324116047759558470766814476815063638558936198891653329709947464528262130857083529312503282480892273050498616503958236128410586033250252760289023755152998912948100428890103229932257173487721617917367325976550870011232132229737590869051278396035450240766244466078662119483639048647483616932449442294242020996745909682175918889007594498295667531248635336696984195236072750504584358519383916351878454688509622238990960099842466272564528761476690339971195022387486339674774950920661857880350342592853062244211854678325863496040217909384303531995402870286791708216645981733102846598259134398915527277174225801010343928223345356843452235103998607048504559724362321162169340949575871712471521886849528371297837209005065594230600844261130298841358986140438494228503249824432677992535468563830685113840626932995317571917798212761609212756835112812761641148643530169064200179933306398971429665517632300720831408471723329412341452304141114565826055096359990390508486332959746102930001006573841395821371844028011964234964358302773061376212673098809098455901116719641139307408507367795572407761501943756650738157370272176108799612114938471218050329950286258174016587285760973629082316554540520164875115219905108342017040560395118740724064452370708889988039548349475355564825055040352491671004652116737023390709489218144480700056413407103556566674836235169353782005184221038502002628718091951565609316917758693238862349063321134617623558298924340613573205172526151360557663094780833730487166437472209166808139151540769147831790211197080494761971924482770895187541225619687711523806740720974362539562862264373429220326587114805036983829053470448805503449491717393557690670436545150924111480269987898923845303851751171189875691966147085822726639495134947699407325633717408553180599580318893460045365153800234512462892859310369758423538030188093922169919377479698484944602121626476857771728556963701781514602108213917368340449875937739235536022651785767558163067326842359225200090619831589730426153463364430238285246276135860165188749398153913312861006480911335425111356956133173147995021397633506210561039606306775606771387400053991988027015007717751916029060218066332283858999367637639276610509144686158980339251782702970781171303699997352172662005849340009179158622131908938453754672882222223184595085203912451179230907274667543423189672914022444226509494574104926775609537601387046173119236113741153447547072901448234342942751200193938293923052537443029384747647824064003572997171727920469685087956375992221173244172412485958118023392634092285923182100592759268248092386329148296905339925447306082162959457518670120361523447930696365558025403855144541029800701725811104460532987126835626463645859490560069931178174156770012949145156688500622910650690116425225771248896196275183141511757975011038372978493942465119052515156197505949868195741465763886340297885434662547396433959535439561638842477639077335726823532166165470541603137178053050108283175226561355376466992910308564599646228175753731809506598978108051513309864718574435946847005454136689861306568184273931065204245109780414067989889898054305804518495248235609534282412031078124610336114986385513518394217054512333735072903471277259841591003146152413783395887367469025182706432408691641248043387451757296061958189143413498535567386213173246606261364419592722540149812041140989909926805864420680034181084882288050508302214817668468843305001943237483807309630771374466242448451928758452911970139775793061479176571575665699304601379587538060654793848490871775396891016918389706804016349720272781478876413632541140975424681634370528373890825737349926949010956387772529951387845140518461080775485592922747324672061147220813280255754241296536577990613461072128960915275397001966369969974595369733660190122428763003068293804752076788744705856550022897558646505200219279649171851272787737797864360782500612750062010084025695336393944372533429006619976523838588346355933343554286296169278304081232102780915090366701454158709525608283811555245634552006795929057231625943461866421363332466377917577662028759377785168322538828621482105162934033941466047287601378156565709216597251140921954725592493758503995238262044524190946333514249559881667713513084264443159028483816785191020527702865370014470197286345501283098516517805768890232212925230597237320279259566443253389149048488833274319164740666315700562610783882909161023836966287585383409224680003801950554573910126235241781449091825049602652511858724231129296352776443961922437524223234317640215763803341293069934718627022791827731002188334483524262072940179206996748123003437538039917281917455220207916695493171359724471534752657717833800207771074565642172642354850781949101494411465260455345730001536596401643213597769591758013569122624609842870926484635481828320464141092726378594353167858565736734569991325393474441757359145535858564019883590895009896440253047615654689043745036074686358952992603064040611527820155774583186403490644997684662966072725779955601648161823977896781929191879953613985767631619204800560382643231473281235268595760487601148367922569136515868919322623240481425903162307315804519801814990386477861298349332411191865420729994043459532311571248100706756574636517302956823617552325942708561499595990374580715997795973859647853612536137494530426633181427612005601474647744656028604377487072470542419657309999847513554282985729234241821553780313709647465976359343312953905673682268915603870188163417757470664031690772083613362015403805235897263657183736794525290499510372659715634436962021159364348660155485197347086477986468224139927542872483796027543838321385009159666531371987942155132353478888964011658516833169851694886268943035523925941498129425687014052044539016612893368216588954327619098275259614276771058730833782391487488185301854220872644766448923814206160194147555377681838226750711383290326533706027246759822162290527738102263919062956625917834315033934291486344592162019858823182716330222403652284897255905458511966778271375261324883318010387480302986797544780659468906956253597226598955412068170805521998570340922788314252900668430457792464276702917265818765068257804461578470201438859503000194957485242780012986552678655649810023139996979220223867396421477612085338310109394608922866488306535685798975427868381744822216364093596535871206990361963829843897033401652754022064845359926792502135209635774088257103129822634081596961205550989045367109837706310776529567281544257412077257788979525260156970723739460348123930992469549894802439732975725982176440530760784443227181396122560621987337217137042292055048303747500072996240139892376873877746386333611175512956138515136015857725588021199177074744219036348404228681269143002307222283192988053952258604882113028203119191511996098467319928565661848072019701796425426775764791652229923581482700362862702796203663872957435021087432792678027470393969457760052658773009795728721332606850788232675635431939245554100719470102191555339904167016820853752263657210969608482686992981939222141371873872257436066037312102374800993012981816512751674385633319198493196887307860115886688345283788824712433629822805485696012278592391444637221434921535047080120012579449650280500604216608492998760754416075171890793050248629982781421935624655382282027943127957255786678123168159989601323285027073144226088748632371881061895146561146046382738574538281472075266580272779210094153297485068514035044265693783112813579965785096719054418397970732473641959723171598835055775187703384551758827960946237653446707476713527888229329145024195140031833161685624925828058995397719001586778580507036728976424388583514593118618739765860906029026841962553909072400578479246511324319664285184832450449360058901961352809784335430020364380293582620927329153105397614447908607509401942766073298382968182252630178289755260240565593827346841059762393431831589733234729935585384525745788952344648219983079980289217291928268065672941318355039866705541592194659410604322359434311602564841490879707083826364304524602097269159247274367533953165549957600821948211059948216860028897256505161967488286190035042519106006252220261692593475295238983035853962127406647478500064994202399603224927743633144857418786607161033206652390772077410095222430520585956562552510714560448874106999087660034994158859780313741782689478511066255644748107082108140031571956617652894754664577595131606071946290647401952519835630932282217628199128247552817179759193503676603602085942148368916615090395481216928409384552104314607260888341160584348564721832457136219197403094752860698873496820423781341905028509075862895647472109439481986837734356845951255356471455536040573746591621354875229695119867401907960928372645159917143700454516122955014100576653458604105414851360935609759949605427938257186469264311733969443810112146347401381148636006449596408411188203076386636347136018325621571528913461783512912800981106751146151991927614970791620626378448117050429935447865228456468742544000322202066479440408361781508055089821213582199094976826668830229627244622706516564226906408077382234003532344318281620615810694599752016249969952619465297322902506949037167962313375177573412492268338998734848911818541588596070146406668661846293915586065246675602709528760318228181212050345582037613314275411236950466644966365988658744208683031111425950763022815686902317328538049031701523996625107695160618851591355147689221612866702893239608748458236072683045210858224985478592711278976732525554788897047669402988242604560043944683922706465502181035044016641188548320198848558903384123332886808132046775508247600697470973735562974104677029598799381721854844399309568326284592413023780375890073699105627515083241012553015721793354486489999430908831059047458433623755164030551810430668791747939452720169291830780965015417652498715877266640746140423506387117958399484025123987989270125163411407275840603236940596488882776319942374649543672900693961727375944935082854797860460291587898000584489263384777412005897460504057404488182880353823365733599505530941706944502749192712983882131669551876325273753017803450678270041762836303635916832962154401477961489900615977503330577172784360578209373197586135726852586262275438541534760899219279901031377829037947236577435515472010476507053630627301237333553789037440255697524265187362174254301264455934824167028189033787841071665536029516285198997770604412195486284208363238608998068183889457835198449846671669236204702787649339552630136600846330291354979461691171413709478708851982121657379978528087150208784315139238047040250662202798955084085469465163265660816825654747936636867801203136329116108241769930417831453328318901989222654670653301286083884490650944750362021110894439072783500831356568484513088440221959084633117791788510647702429751004070336949039016607844680079434505296714472329334125432343253786730540579446932711697742192187218751446813012108958860462258046598249794526782120876793839682710017608894102013382893463433967495992553286733335563576542690579005204263494474700742251792503281527901668767803991099021963686906509391087003158364214859667258202311101315799823347946104610302674730334834569986908314203875135417977756950469842671340625134038091624906840997641665181831629485969280223502293482412357115377938757594738299976766044741556353659705820984311784901698272082032934696497184820295515042125419673205309640779774722997364392067177380183594366500521224897457419351468997627762647399352252854835380392853967479649535657083996303953322452439049535191844815637377483454006912628024260647557023768438354471301190991772805456324243654168712784882970434916814465245853093761713555845055262749555588710463521701774080668254686284610072755270333775812687003019372748566781477950444414997639106416204514787551772744069629115973162095156381942959561172658615328409994552118682126293313291702706705974323391676862127401980081139107516235481828570618575360503893976318054248143378639372934953385945150004092478909522067833712765152052443036018462183590549262935489943138507749222499548091825653506130876765497696163393862351872571222836491681737658295536559064531060388601833245819192543536625585599694854255065917025350212366912248824426096180734015124059007284277904916983753607179181873056934883661856376208945944632895346672666572880669883149939062945306447453351510039302603619089362716240914751103247799223945317090999666410716687366981915091436633323934857696832144548620993937914706664697408874397486230611258811714115418676325143583523350817281941016059707311095477293841256317771680268789134231667283620631368375024936136035287005472790734165422751218705291869123793642641050489841813598394817736350829942236726400133354761943925560057016084741247038674378330784092478681283750236132368005576663724635094509134953009951611052883236729015848343370520461284219558074243408048463737876052838954997544929550537466803309862054523719787386418261571333935037196419717792748839952417023879481196754766401937639779504608545061849745743054342583385277639341546199761789003148468359134337029556042916592855572799549160315991442833744605830702028046972818882423819571880533594588811824838880938742788781282994850492816618086884459407401362266633694146696182572364500975813270455269515598562907577650439321614684188522778987220982859663349370684682420875359710420332660488803934564820823163222292394477572303006080056057721932745120868572875147414712874256817026175182012524622778669833587936831554586693039990702022724524610830173334609819375767879652940187117575921901717449422124342063375870450505229979344843994234307711037615780642117052585541865297639066772866824119519745414938131717088264809652972156845640396365138906092625334762983965405126816363334378054532730084828125246047484007806630401445717275901815347935209579360374030753847936365881193373447329412134193303588946799976979918895478835610736480395137063125346930171582901782048881049881411697082638555781130934173313559653936457844058564874664885305586649090081275296796230641689507948052276110433856335116533484589657370760172574483676305172515922719833527124280775065743280704700010367666142196310147037005271950319106126391562200935721442593601766723139414958794714336851941560373351701491593076239719977229389011152449679385406047263909590681633582793590408761211925023967674698658010291135483876862174938142104352394727661775085057278293747579422216590299328469633850749144985187279447244198215610469341876780507507335403663370893701886370882779718860820240435188549597934616413383543357530903243576137497759322109548682433000781402089296553382798371396519081023387744413209510541484390969119725005353459674472725175479510718021884278813230601296783318455806793381371726372185921517043187017380558312902516639757649006872791900485153427165499428638389529481258323384343460906251732406155798986353850296759131541403636978570040121896406820172594830951003602933273953456127632099837358860063183198280921417486250603866838157797575853593628480683821084068281464690989298376623275055872209090218293731732542451261005278921409810523556052208306972781344790544004747485132180789111487712654849205856045931666861427665964632366617352838370486735829393096918554946356534850450542846929866504387687755406721046921420961409126324175140694357847761885152618064698387963792285650722478641978124233662183271196452373139855843519092678218562995180108075826277313316999110854686368233129350817791958746137698273378596560873621941713877840337279040769631336010955442619855568306864379360327096210404350415970953460671590415148515196938515888758432519032086581616838257894346559429323061931534113192802225264772859589136195195031371250410054085170818546148636040400427168867175956644165377120405408481940643543894075352413902666070579410909496863266242784438460966013063025916109571502830308550964467813648334492754660245407424802814927300790133797564564942200972518516504755609184635857493951253319472665734721124216071717312477727229425271926980152417392871731541156015397743674356858438681310771454083224553691039823017159482002181457859989005611294931813605428527424021420268031333280529259224353455105480158787915399095859145001214863548771341384179538578117175578272496224476656515368199358288722912118226996783062402162171054523981081749473880518639376335819216455381318213032080429905515305323863912653843248368541666224012874763389580998733338317344568330591511398020009289239772478994752637260270643175985411621728365448746405513842408129370696084266249017777517979512316585091704775883348427069768592025271776830038125864682945119861169980207561540373343221946543077849821222724965957609321975181113252330555969072506570573905532095180211768208683436244743884459242023009158103021562731179032106241326688544819080757677683298954965373037618439974609987590535639722623445960161732685530050050769740739527030880138109517864057102709948723719780326959540495755764602161134274994699342136566597536301801569996086552691113807325913570281151908234007941221291538571762768929335789746249228034655012514055543543629233685815523538870079405081754675269526417100153118167040876957789340322939077588471388157438140061903483304066247650396809329900425451351189951733755567212667174563090225900150466217585303299650470952105837532891435273168942764245750324188516367994948892982432468630904229319392109365485296564056691029930630483545407774365101707848966212996686630891141103682415221327949936038053815331323228084934028919916946579204293322202953107245111558671431307241634344722504484319758247540954480168387043348494072462793244281596338686104302667369048968268126318490345348663307546960970601887043211007807777449302257816024079328489352548210143027003512509190280594554526664679974708437721579258352474730885316449038480863245211486304677369157279192297545171184483794765135003142468724603883753628626450842531778116209960147419648150219136426613294292676084678750381690173320688243583948113205800134001139973235573190408050935116539119403831676737333420334305654136851636492561252479010876924167394668559935206732739413676295157238998208892507547484473168676797967999943324715730831539453283393218692321877922371997805576648735191633308060984498647144886332291770799072713230685554141837904482163573964933827722923375046688370136578367579945579699218881800084611828150537350747663821858443326362467725064108384578952281305796995268984381080863653065547896553207891269269879167723680661222747645056606396058094700121532612134970214420159568319073494391601372708763977602382360776374270164276383940570008074001554889900435152088758950390692787884260314464143025774473896104553097522793391686754018041041977650932709546906062568160479500573162486512116940833450498919095528891108946793717845456170139056556196205839594189316454497794133347103897696587652368911920512562164289778313001846793601978666340914707779361002254359566658939722731533250761158383018541797669506370722199676823158732352686945626948431766690238171101462210503592387779757525636461488972052729247653325631209410218265780426049399185255448645212162740664677981002236963882965293535327639267243509227795444372559722389861724558020882736575290918289273012802735830207484667195624267645206239613481632588954745634272897821886838213710539862046970256764377472070322725514177513984775411323485009820303131273784207181541949637304212504624440249846524681408026008402927138352243092013806997100404427283621520163653246229444233947343205068885867540298409143699404112014113341685359042258078392096667619679613227786155298387962092718973310041225740909625261704078934944878755301991793003336961404924772181287331134340312044371992419403793395689797644173882214010580030319519578863542084255365093765026502694322560575145971863810297487155573138235506731976133671977020730082479961027024924074907114948585726983080468768108060621061789767022491854285000224343343661725835294344678693408360054023426392467397812644858514927732569768140671804943665484157252858664500126498816589336806040787457663510015836608195206455858471765935818709195974772206258299725630181232350359467543170216229031698905597597778008124042456154911355693045789808164045702563808353224992117808587293068440317888900028152733489747511541414748923287907745866509266439054170839368867244981394484114453292843877626736639886537767002157887524860666040850323612522838706739604373835527672768417347686822470777961952856620890330869419223141954654747677966324660653981830632310226527115401509554313128397665899136712878229036245448200225322008581175169089441043280456624940317919695560019757581668126026945499401995635613254894941718618836359664322071466605393440502468953355959650041181688971635930304529183209347604123834133972739870910716420054139952982750557849523914522555093667853720694080242401717240459362601413906816088638043612324569076334927835909582836063110950633284686087856031216323013155136841296368164586518580843759408581357211834258548145975615058435152666858601163078881068773507108364957494230528017791850041792690143372414602093881416134600597377076745852595020852302775535798604656477126349268440338631843254950287446984642159558990803207935545384840711312618056932769730910433119675839546806145285896454134288484823476410525550923000232680923529638259220722331920286595216690844520600812467509294093022552286861393531386230206302715660964296560990796227523116857376212508157313813823819746201994967234291528877495692771726596543199342482828108503132215078466846771861682573125748025987692735878568172285612663582627853279160000785901431699063800653137372574558912607883530903124472101388806020260402937470218464098064988073336402377231237360379559737986791875134304340357881301930376812960286347997761682413636391973643858645308857255293006810290296953352658927905179083018236523284808166603107335826359010904317233421567467646606687963591815564827645138781899292196188787449583872542487488998850570957848197460032531503974344923312770974839865614708926719087414678428761834936323373629592150510657229965812798527652079948254827467208479008763484778748160207843038164752971160031986910128008078778226687625734511318945605341907444740288242405104302969374896853252409707463576737122022070706038444966091341235022400547925619817285213632177257203831189545741201093553996350188926117018660314974514382239720618244721728372807989898751388196647945194446420566632630047558437041873108169721678799184810834431592384473935172641100188862282580148688266702940463762087214916300866196756909017198069196472002443552474756493002214269189376960847398266499361143803057650315304444201905696808594526672602771155855687144679796458641253017527810922123206071032532100390324515593947836872463365255747786823870193792260171411119820453500175481402668815340308028852722793907387159576688820924687118009185486043241475198814245959923990284240378227824287906270649193429988535395531951777087286899631745412389662857470802913566852310186149237871263049069940388379752366062951139334078763040167871605998480666567759192565195441432704806534411869877093724354851197383825953435127470313699858233978662064078703228134208940499086349026489118596341459018642345834376975424111935419082809442662426293598837898427666465411384384616004039554278255603032150865730124470898795198613515686418475574474686263870692762782240416411991248869993610608912112615239031696987378695767705200192117009090971065125692922207260539695166614013781082119143155785153705550979626537477844212950730068175754104248948684353452705093897145713631791940522514597455504330526892668088378675877541954054221409962499537098317480950904372244120081423920839866446122258684097616642634323098531804020149050705645766113347649112694655322183143947053910593987491086929906687863960797383320589807099483958657818598910976215496348462321765937250415819467876656291845325901428249435576829974985978115195768604430642152525621051698102918277306844492925179192972579278051679562424960107179865501313503521572870907185753425986741252987937474971077744684919149203285254513651452884052761816802506769555855426654742969004911575136453666177490352154619749278925542974143997584056058487321733950830250782589605156882900243838747419264176092229321939181423982840910017662919319724636966014181332373961684811153730972578857308719163748367391983162471585666811803543544887831173253477902341267658178247843126841773219853657635381953378463109189671632452018191626021944145989764836935440456480738233439248548060710306426050149017597352526811298546940528107800764441099245110208176223833869908535315957092498796022207225525636289212337875999336623757200654504656372159361840135158054281001681520744548485916773528940960913793882096030465145568620314292433705121647491646405165029239691403945723139742356574090570955988301435414619097651255438856791479500496027502949266488831486430964414339568976438900379808056733432962614965280827633777059556159475919404850211971261475648936645233871563514144789363523273606774425746371074595654131452007948119196711540640626564644681179178437244931929159142886504362147351509310795844984716725348799986862578717049222019429192330954991640602020910168802560360239572288910896772004557456763200046779171180358535556068633500467904435427570705709623938422170370102597067228735565658377905948978518424744971923714894852823605001037241768200250268708298750495783183589000106672490530128010501949055586472016064823106415282525518880340472764720862038086555462474805641243876995020269762044793721147751985433073958347386027169530698695267260074029757929207997618720221564645488697880756057833908184744198054343405155428498255683580509032555460407395257641882646872001341235921274521374186029715502475348638726143506294735924446845616902688396312826661056700881022124012360684366232365726835556297017540008753644976790812167870890314140983693755796810367382960176932945126687292249991849562579656543500252691779521551147737180412633169045689325074851806920328817986923388044873735616957902456014049116691279110646876162314819763765117439679044082536809612743400860525299375373273575901972786623587687071146037913334865488204939180322750365848916327468585095781621118574325961729945588935522158379492522541708732742795933134702663883076185663047219080462827407701301833799031839351035074093814482947004560022267515558264070438774512857989775088579354166145375819774858178227168604600272884975335778431786698062825666886612014619353746116514948460268559126288723453018071257818880666505493338489492642183064318601117455955653715340091419697067510177600161771418732284359635207306059411085766900074547158176368716583851529174008377271517438196735589513715818933513540094681238580182333842535372666258496205817957006236284471824576589871581229655481451714320509902845717859629463628487455555201591818084612357637858506880637345202444390178813514110947541861350480038709834200995418390565314747534998572962975270723307680801853164342311045059043547894068469630524185233640433790301109871697048582600190390770830526280948023748382360241026857808879378554061882024313770153365929761291457174244396734749934309654689382510129434965622258236234779042278800484348088248014432516847118650216792361506135751080339663064779122932493251890273897895088744753121507370781888959403385513513043595407006874363979211410160657132697119448821953428384817061542340239960017737548709690375835234803816610555846879844633993416533558324512659214806775245399148586785039311159290170015978566206593377048620586616139923500386623227818130262980788978156792372912538240614451602948113494006898674335293904914950894897561607554270135648249379047574394319519974805706292994073658656979085162499276679170732707175267696272606683723990100320841580280935460729197404479822119605921625291625477349466589437426887649589658618493324757822874069684476524634640048425678448467796883708693937299104992016029088301902294022869612085000751309747239105435218547519617119770498387240040209264572521370889478812827499925109745717379946587799536847825771844958701388679322043440767941798136752313244649124844422471541835892891094347000735776507953111045802459559954141222799277051820799398931950533423220788603794831425135902253474402231123029211728281631496743215120253140790133568510382897232706989854416309992911608830788623020631431041118836828181730859944168516674570489328162601366934341327286542466008393649123375320022595985742968441081387920284177858132865556365015364960794114039351442082521092561169352352223306168499788299512733444651320464291848610785505146278312883804961969461788072954821378970077447454529964202708162745359030828004463662013120649891327925208580945120730292780576568772573287970316369230515237007359570393951301735942794204319397789242239095990271342187024384602549805955567787065461361537974913152656739887488328538393021186438796921854473912664695176595183201857669511467452908916336872469099048679166281094440215152548377192613737318915142084077032668880843010511165984538067181646192032019042954040344046335225998645649966025968415900581136939318780277499724030515051801697604521962087670970378524594439277614243659055944465843127280306495119149016857629456103433529387141891308898926243406179820862218270930521617439549099232148122645093796344319859179990090471724568324746501999758939442468742045977926343289081617642903892538107199719210217715941780067402188440503913893471520422766536134050048932376858162480032433312144228297200363725269746354315794652550682314449383281141615655328769738373882827558027262990194171913746145882784895503543825006509447309974306122321592997194348991837095334419133331919167136180059014087054732467834081544101995601424690829186717785517346445455763801534198056136791675709556089695602512692933458437715960832443570777309777427994355159152563035510321161245516239551596044512238326231993796936407576722376240897537229427281194988398593093519293970422912270149196821823395167105929723268038481312763630838820719260730680794067338693863793981725693777696730853160078178365619862329714712952183679048050202325793608194980179982337328058873189422217823193065461372079699818964977132765846230536027177136037296064126817040467703526951041112728683333897146101064096563480770805191106993407748105049110287169115392037743448695203528146468737201305591990004462684702473380454230943622960686815853939023263384439745611071851792648017140568848182071638518271182099586468402385707909423464000420472357791784647538828518202396605451930458421469476571194075963991508935507481025520995995152549318363880069299910608869712360693394168884794530533351461318374960201254794039885847603364685170948220848192343066898294082863830446631878350975592501223747227888648711631614053071516671461210577502709205598243115272854709392407162514935562985898642149756987676913593135214923263782412355699150622575641794794530884253683539395259908477271608168785004589311489777971184034672259192805736202754493975216618430332427659991035230042922623271203515213932742194013711251052472818134939137927731092520655286519742247217847789071075874217534081309016689855689212596596705107308561607594989774991941786271305609193877211559846297917418766909020265579932369067897026886515613218728173777985320690194958597362675839295750265274708949336272514056205212246719445767288997370688355939361001806654290793385321906617117693110479991880005131378506785058322878097520909945616414066037542001426296722049626401191737804460151677516530517146044138281614280059942606910809275432966196778013473316961268594686999563766394677511790607239400060690542371094441234353349543301419222955915034854857647122436356636673205236792551879175484122578831997857238828120110699126728682067087284750916703783984612146367409073142508748802265831708388452158829265613541541780591074217996652372961187703314669515310471404264509884729829876185770022588230033426994770816576033574656518715724762647382870089118877136310700479579080751642037770185933570947117179978267842118408885732170209640804145174850131816339436333002596813943593623589468738991002863261600343948907251947537326832908269141106729769335701565996550165359813192652307642105077828317390921886391315028419676106084911969878899182332540039956905924374490006999728798298001695633653356365097130667543598318887452611608090094337469078075982931854097957620991965438988412525498651404284110677888371313251445997683662685402979280594774054999329444564903668248031767263115564773957929560846070526241480121634207825432511083322456003624104641774232433677386790211279848845298820396055966001125717286030542460400315344981185207490381344127210824766851798177204837237586082268407947518315451809256231954122512642272056970421515621743111088845523602451190385302226751108434471255612787282211640019613021828184912353691199400110678003142668884043486613470293161535246592948356271650920127699950403235130376914561080334234947233995392728896986755608164436543023951312646860477448584085137353887313385775975820764450332688719912556116621118222560177225963574397687255429182910108534629257787342908302227658403889157335731735442286379920668266199434593285835556585630717026441979384926537959190096562493020037363442225190711176935988169295643554803580258893290482298670287461523115791490033739134087005488674637700339505324812197234057434086981238688308616611502854452975572408434331403566712837746983899914129844055320215742031488382345527812364222746292537558988592196166130328022197027168317042068257435152774499030911566009761235201161215704665595364174916492778806870072330301055958674573260638762898442874023101424888529307065100703592324018771227021853671048403622960768344787499875733717297874690698388601424228622638657548218869737266341932863812665383485186260123596858682201780338336381569312656869855800354929358949813337384715362820131245585398009615452579397484532010460199440874922096164224214430642632658670829376942724356646651799411665371355391653387176411519687899402777215341891854468750557669994952382059936124156099114105148837959914560948077695802000493509109101817565047035509148603666856822498887568890963357617204652066178181726239361879301267772641039311460953468049258015337373513847454005979015108357576837055686860388784664699422160120137775331059518427593181965076779362756037445726161799673014151482735457252583239245810775497879890252624224121265135729384985960693921624555559925060335926683883002225121269682310866199495281407000861599885540921793496667151470648292967037350319644407855672367804135609967789984392038051650623455618250047731367195474902043904828788858669384120532197473730984368886794776209620006344046856537498024227026143936677093837829083340922577906422479490733506175970465205228169511159226793796688326212440959020379865299031919711482973146770607535032720552216879344206924954372077472828365285748047950627962284271223150799108907571570342743791219044235028760356773754564932979035174909094789851620813601549074591904986196058875934777394900948494989165133159034926368939465873735920727835592737358641317415997345707502085833392389096455867414735928715006215093051364853179928918636124769398285091607543773466347684747470574971845012436032554784796394799165779413337214931569219891506616051870526272346938312295711781610097587618012291144808077901490929960569803776265168548293430263499862114716968394910172460326071499323359134897380220389450330987066048572300098833823450198462597285742626094165392021345415129191424281915789064277580262194632560127691120432686650775044393281158185487994561702341627595068901935762477282378013348325461853230227637318483727875379362089924811556750587753071485160891198461428746494867487043275862415089189235556605064014583175943402959526815735814784821084462366156049172810275091702643000140672720812132081506858569228484831840397667210493484578591149284544510608622338363559917827701498218124002192677178804900738811907722529459703672575663656116874934915755354062963466061192020210654608772420295216127724656668698437077699716914346445000629797657223785422054396843251077074500022089132302257372970256609131351967050870037611591261984741503287261031841469204977958329566044772898790833049361559606590703001578505468335509379493459685205926181060351599992219483598542226534115238241921937233583779078667846643745320953786582111415821255131134544914389000655942158000618292501580313581332633436271800511375309591589952293248127864115819085035786961802145934452586952903753305415402560918600577467131429752596666315954062474897147435882031699463470926951621726813269075543116660701557008591228340373776598930040150643112776153218298544385975227470932615473202329893312680723791625063325514765695089554259107255893046345826252644888904102075847639296814117616097149184454166216053489863344361562863887145124866404116973475300971175792789181170486307692616245931128318089554603018001908814370169478522490279502256218683395192927967035619573608248502036260973132366497540205631396633942945854213840887657419619628818326493547729762384379601593137302974399988939276399533766319777186486643208939763355456551740540240466111764044405628708985295746545378270274270533199568511543333867950733816150572167459164462475193223199851566872390962580764155319672971557741039133996142045553464273493290670734326501026812261205122224755667664299532423168180329856099959677311454302134888552687213444075175390648388199632352626786260515292963608816820098376208723707004281563881940563488750980232259785025268024510766418419851087093932355449756706733689085822116966011608161486219311225150288408087095617562659628109453206331994185898975808987389666701138384442242475856494475777879100641500546213988282044401600149317806078842386030595664375387661436935795868719758339113173694218413814267416032826918484325932402898893233311463506938699451468516270113598345963085046116179507444558651914330540594457530385169150178990519244468017519813254327297631833261234014020918211497376848366389456508700320319312647399577329191536592226259756312004838022924679444274896665532748013723079438654359421302103218788167878901035943277586524155934858350809394663391867355111273570678961333778519177862148005229303205322309600419540752115761312031276776196296759292714943122403167206917880522648839381289056438114204628884398544534009052059969767605370948999648235556743832450639420827129269512225929955886092427690355579593676614598553774946570190404118785557934524667954907794603785672489832524955636030201383044593480232245514086182115225811293684442530198910658400698302205114995533844601761062612630635794445700581959109814960140399584969283985969971905438884884366620002264288250819019862204948960922884332245599556664229503571660064866978608761905406218139124417575828051973335557672304059143185121368786656088973272635284042113070692823531457531007654960700129968612200369959139002067774703748745215890498210941932976664251124107770180308140110273975589682362450124770918963925063497715451895476649448088579132423720734301095779829293823863489886845752205776073848606990224151698994118310488359037436035242913403605973966378058054221151805672578923450037083151276638311318376226430905602646082473937180929708106646640741307861193031946014686544490699891095719902657198085295801496212962988784441306814115352265799103793507379086834897254846639101805129384797776219513744645564523772388861705796677682142701755615515440639243205062524043982459571138203486728458810374162680171495602760510978885522470585612219375116471232574179739255576485466774845879614440114327986160478748551518439610362698744677266887365007518826233675767447986750073341023032541713628612303805504463343382893985647016191906088675835551616802372742824549553369726381095744486847306362180913429356664718226079427559332155921285224639697398368210519099708228185348352850239943858749814606273744704507597404608910452924636292931109028120536046169913133208789175624465792843399712065389726902567552308897823762761886378194590100574908889619179063665625559834758752797779687694625039395463430175392853894061683902377852672615735172558440154058073958177185037794867620633909597633839074216396731018561889498990167797323462422110125538097660062963194076422770098272669316424034895229456554281484301373093480543583217342222209885131044758716549633783378824451483094646593663539590806384016540519549822359090257099428589113921649748853447905782331553911285929301919312789397177399511593883280222003843274084353514581629213213410054644084205595433891820234993640302969879363610225614118844362455009338697994324003281876621735697182599821963569281882916525770010303693850159757959081233019669853878514908464479284543112792856918927076310410920548347560203029833344605507971729801832144737374545491823878630573066757421978123479178902572668786936237509236496685543783845082175247908529852872980181075185857560727058499925636490680493909996112865687791586144176131209339612579590557150351402538037473422340975694161309733994591072950358595824776995438348201211490269942249502460639318087208581651220255426940982034102609841981097135434521777596159652735595838268462028846480857510639383529591565003424864970006349399936463468013947642983136679076199220526325764625032044466574823243899165553062065185573601176858812520666518118408102358125022770245601679233612624602090549875866478189883234929607446351060331562514017467890874736632502943861386284390409934961475333015482867770369572719802432729435022318458749818211873694554599687766149713302209243319981000442390484824131800466419145572717846076043255908007002275423350187291675200179223511176543161481480199306621164738909192049698556759032133234337060050239768221031241287590505111235548330576879803360178317820758492360700579885765868230990406422264647490969772203977809790883981389198762717686315182983658090703695717694956559042796197306145827467193358427244580938273504418599106577948573096161094124338250812310794754987549838027496638373266076718554736403091801559024297608414052832772424255616655986743337881831357621998108065737754870067896121940656593464727516840244567708922625828334783817052929005256097142259916404648351070953591861142739987371693186442891459771628789643948470543206194841010551945361388809533158647191809045087072428765534605280654544047082703300718298823149514858942953665874971400988468459770039936214030753364395873970296805075447907957086299666592248040832219595402205805066122383044246414589851023678952700885076213574652456828220086092329354203441603807266967402729443746672345752541902504161333722053826742244067751789071421996539847726569726553723698187411016663311244566800224317495213368730816803017838074995222770816756589729818133367769013467711203499228060277913662390303896761217637062878770509734918365659374230181499226030467204692010765973266329401835835610820189452951015080077063580831699278300170522101515988233545139702529040806540790034659659144256554703706507544148709951778533740705144483437283405080981634433491599190670453335645560316821536602046848639578411576348576165237888927877968331676050383685150588279012126651998567275406077309169957184593345023001155328211740661211168093590859590399150064656580687879299788918540649446516083080656940082523599147768404674894110619749844843025759676929774367301333534309800922542955214641551240427913670646869088744618560906144720712737091738970778063977962338763344618943448377327507258611327286935934090620809024291184042688492320431316172929772462355817793549508230273667434103705911197412228407754149684967085714540231957766368616271062980818479479510027672623417401793545626885556648320237639222905942716048539919143028652412775239733207545174418443151311001929515638475633558382243514524972413873723202858534905413953736980218590789331111109416162757851138351652986326643788954944457359353456953607012975642901800338342444385493004449269545271873698550936434353027620611701250470745716646088255833363367348548612466148584162940078477464419081852174110552928310518122909847043897596470306194806159611884921555506822772875208535164065394003796244056472770018674547456126080917344003972958671389042178346036329124056124900972141923047693289014298273493093782413730896005436711782929645129666768158297578487930199366250119867785289596633298985643350911937408263343665715292975742839499658345641348417411074766879497004587964524188651655906148615169842447194648246915918851343707319592932962342250980809711735287462314095581346174441816558685932811983229642831471844015812081121950052894540956614859708387211948429289768023389550037592040002361864408289827799907627769401573462573334303434410946305696083400346410739852011168344334354520985196744167003930097372314098365813227551115962005417721756507567816499121810347905703010551811534918358106707117161471658298884978379179475555161840145633134932509479230670266867928339611713634684978968450316141871040084927784164079410203956224862115324478027548770138766098164313022043587185840908996684735985825788220874096842759385416636977376663353032834625119508912472378158648585069998540225112679042103026780700501698555602811723545857729790054318483194907188493160115157346467389322278170746970567429693443362185246308957969230721126542914954487236979651117705317002643472900151988798780344276470476084928485306204692956598553185155577656283973351124479139558277967381427611718637400586834348263477781727684813623587050023322293297464212446192970166915996433725541193270719519237005448392131451037174007351224661532744648704508085555268217008795692421478500080668267709747097621317943353856612362197229053580959193821976185760512526163136858288178258579455814107741448539271011741003843561894596513404999794078473000103756280863924592411119813732946638244237239528886344103040710753591184454352488650874158262437297394923554766206654099129988931253193286006455561144001400838872514393319195405591910656736474337517374730669471376326336320563648074521154333861728674107431839085552784900363034399456447282449892853277417787078621210005511092293143864284146947769023259203293177180444918229623754344280610962653008328454254820585461887023225070243410846592840012440006844488087113042594959650748637926961333353714628089780827256269207503932220034970999279674588642772399802907461965745332582576190756118059456180365577659733962664675366679478736370586897578514815494287963384950865785255282915417061101017872236835024562516541904326911255788744699420325322789600972889996025764575869749056101495281035213575186749358458418698984926733476539344561848233592940479370321586804536647581636071729488622167046972051572945589339451732166460992608377739825408583627777745871164656236402990717136023082973733205508513516143389432302436971529094737245699514364820473084093328620103634493751088487251858249008218071246544719097256845655508693582444936248848436943822707132160936014394228327569760912720275605323802335745574517647709529615195319785185834316090635217699787842496126478596857637520250701474299251811302546580943891467533673676247035014718080837116412399750404646263215596297928227533265342118949956170721898576968154289642743028758716908258678516171685929338777013307269604600108545184092073877398156640803149195499326084921999059578461324255107515567891557496839033525327028101339084158260631149035033979418483343211732180363762360215215592468905940707177969897273135900764836883945034381870746654902931293164279646516847726751202555525416018346146769976438428255407645699478848419944376296352803567455881105375721831935321264848324910262546060173025420092349835604824050900458839675682036089853000525042181871631339882869911427119622865044717269693841070535454284517686888716802198760552121177504402488118560524604344148577636065671368191376417079165693782027137631046431686349821448516996465455324525368911538619964039421400602023509651278331990442124101126705171446031984879900730705214166871915740621637348729775412793150841392719639748627742886442083903702978264315366365564060569042133674984504483600473479414461056058507196590209042777309567779620196915455467266719701822744877512914903300500916851355014296870603242806886479872793456227071501367812145608165719282636845258331188114525519353220361328021556273604406918855846751158614200777863575161391881416982429086196790287898359400790548010159250831403428492277533963473016688145076312392614807833812572677460945450892099381086082411910350636812679579872399172801211217882738287473734476256850588758545600189342617677584512926838546380525306149175077793006282413053275992922406721756830566466602215110405498516992926572813820262845286526439882701593012437416100516056331337420288879235237180302476419811731961947551922792997543408896947328779990919731622065052635724944935244748779765919261687541773426732021789826720941108022931332573944740627433201995316952513212635600272568726088721358172051123490330883569636967015868548979089268313538668075685210451980983117745590574916940754274279109701875866064468865223057240549481198192881952381064740977254198660804996580200689174026642385600693045586399548488553719142661843223221049603384139063327790451641270787355671134758481417983455702125600725553052742688811514532108003087267410264488015797028218221727498698529831721943497056083575334862982343198119025062134175682000042271235181042508781946455257642173850855848944605841587054413238241447361250427191179800706969046658309985498333162990191834266816187821709645220701829877938090510799291453943635968642269784432135362386243910725294034119681363526176931015471716711145559102982083895430792174598787158846425871860241929851070041900493373544525566716919163301931566740263773398936044545426236245749776326063655065094995419880707362020922432199918415877370027623492537661105238747765597501533551953822251423179559981804885169859601976223365210721244098228748067592145617875188460337661566468338747482663763566632159357580996226257277174223580023821530921231830015786331264842219192983728692102475683447035020848582869535083027850189463732377754293190694462629972763278834076406391232797188203228347110810263197459123015261170581958987876928086298329519215868255976654778225942741664152333332886014139589224820847799671588305743493326696535463342426171019144184248424790616709943152980389466311462294481802796252211247834544288457256248118938646533449952504961284411962621135883698771543523292578876858036899545118260291688422789940337179206142338534636465700023664891502334258857509147997010387926553374963932672222676845719687707573009879373950499776661524563884346350098808848010753769691000599330609797791283709663370288855277175122735511430977138733790680278262557659558273404739526173276915411332103067972773219869795137607437775326108742361825528471593165619163855042026068335421158933930243688683725727002824313847792459783284987214395414865977483897901449322682044359966993432520667030681471027173024712290258998521498130740169296314042717709693291753027494841041212217900266575144508551131464645919898981278271146725523914200187770066451305774997697450651119157469300392508560492775306403661980902042644415365658423995069435554331862552336156489775467063193588505551964967346897709457909101209403969072605145197425411676499127177868937134077305040686330275110942486967157925066789088176327137986846777770144249871290403294468680280093029688731379657636834579156511256710806794946556914883581485720601638212358665832608090972704534167133072011455254237209499349637434378406340319516743960244551668812386848477003219127572539155605432329080337311105419425752058242351212296542709253885974349432680740666587096064090009149482733671901046508499751914209844381058654318714167006785470103041434109318017941150383691765161145573309728846306485377205562436222780376306642553743089231236387114992065771110829751135481593886414157811981474022352024048341558676440020129772070418698465737308767173562915390652578060386535198349778801228712366418175820902559325599091583613457247152998652682673044291664025142139335131884457904188880548414691550427640341323989607342468625232997943292950080482020255204977038011239500457628229778159145154113862138837442882628048263426671290301942256198335130674861854196912612440339236270550977372226673261152516317686671923964454512207829141095605302340046656859448955377920676938310294482569866727451382709875532494160295064317652460545884812972846298473747362006749284196454844979071925976391308704225965278670024201556985259236307713689130090054854887153567613552104405386600641685202252500009216451309587922678279934763989149955228002050708181598919714029798990106796622488558820842250100889136832241557060580023454281290835853979574016048242021398803618328439982059955494684555418481559241924781946888455403556264665323863316138911047741548041907115647537159476510008237946542311159091704742889148096701185325728753199697940333432720207914222852300615988438668905606341971648492714611838000761844358996036891411181027559578660139573737458186701854657780763172001678208071352045805879628365514928103914967051736961670954977932266152165718159470740512158813474088268741402370566800789528227269641960903854475225569824472653127563687818105612137805828320717626504604330998338594352869891480286829777333480394511798130352637154018008367918896668321157518116559038191431820339252809381664444864566574083769702770790181830044786438071619438198219060534748267036432792887111810331291352974445325434395289937115571950170293654698320702441608806641276102023147432306079185369362923488278408525223040494793934103076256446648642041436098523927585283950893411478969880980524934424163692301117701519383627429504264746303282028198967353892460897905362747349056253465683585828163399024633588192455319287745798360030875178891702590855482750883153061913547137209023595753629474435908706676374386307431508755765260906052744089745114114787586675151590192361421468089700282135751786918317272577016387438791733057679431739940000845326112947466450380031484361884321936693569378076191234796119757162878317808742953418178892267974026535245683059858701068773647862470958107036336551325429805409029753170004828033709543766401916627213947828748697142982230784860692186777951017627644056190522012833575361624808694651648075633646147336582396558658355587078262775448967293224385831919383895712176944244012158448903260375415233661517956416178507204759591693850055272282666909799913929797497423504614620654973967378891706158597442075132972938669329957830483428714516128363151893170585204064180818532213303524716565687796204023612768266317469849017728878204195125678344738345622943165610396881126614631047832263024976088421864528150089501545653110946240068376662034061090681120414034158720443875247470225470029001912360110030184980443545479953612857630574231450137257191439117372865341414298442947980408295793877525534199889373381449669648196704675517994929436191652504487014379214700708663740022952967051533714802038377373853396573349858879799458570705311089175036183019975177756771488407621385675491706410656126047023883682054058769892775022657188798591005941282057814473628594841871096707397884579790583505860129778558789628353143171149296601020458299309355713265084806240270124579606912157601748947384675428110873589798325506642241483089812886005036674680182927961199062411307535778420729885518280534914383634566301043547725087252538611291099177675251964395349803901047494587719172514103733594813883441540079579845310781118204565511196821839490865624760549978523060354542254665172793313018941023368817253182352808749086978241168942926300785048506817155375064118298519358338296058983667886825127577541159190365999361442957917870197861129805773808848213546223214171901444327272984114742248881510095182227226711593488037048417365480210660909108803251658146808679164565919404012989319380826682562198927523455956414000146433808938571091063334286939129673232759729684163021816263084369623581300644674790018152615971761661510118658821949172847271913236424332236947318000670903965916158534794487524622967953277121522170773493262279702507271970506852605390025420647021641287797875717870182504531360014171430660950050187071823345189316020941467306196512686018098053422623543911634358076889201762867787004029228262221908288050013779067209153087314025981648963140632292446464290299039821351632392605888791922358356951698285256248201453074229583715341916247899804401056834608360600002023579709014866028974586743265932747099137476085013487541589569258349190414231606029069631052646739753807949842229220841875572161895344390938913962558498688619685755854615034851346080351176877189180788982058984958093153373003655529470452861342736792142776218930740436793369690971250122410299832355360481106709263005685281106455309081578164505414055976076176401611054797008204419611053436910648926832063118226426084827246072941809299085365597240503783264233536790659666230494188072212016354220303595181612451125521436593081771687491542901836535279970577357738122505777089149802763740183113087092092432124126060718540150791389682610924462078467043226013696940577797383367080747156284772958897535264336534464647999001119385984237289417239931238548639406021291792368607087463087507979597293523600093302993562375035717741954410491956402741169006713796491480538660692646939960040997459677641579536557015671477537567286247210403674050497680498622893006446115263515151001539030816003982344578401066931193812315991601957189472600481152347688131603308956922984263747036696105570974544319166140082537704869440310919027147280118528375652333377867127709138704553845028149043069918065029016725545038258086110299987282709457072863196915458354690621484920891164144345266688410344273166262829177849389604296678995809413154771963303313402199812577006563605644744215239443313797836938576453738182074257426939245497659609091056846326275860605609788335799751488854961336074043617323527750698398976299168345790955124047608974026118149348894980758366480127932113900103776636798896760582101643720550937559092257845283301074349226235274521553494473586856600636924462665288001781686687839714874238532018711643204055841608501393294223026222940995108266075831396926924720013857453981696873526271100839682752006758676548279017507130612529041286169414865255036405446054692906061156876464430094135254742748283478706085396779377347962094670350501381544035788673240212478034034215822296257223732023201286218745044334245516406605753386328292874363471975232074728312686558739528789835040939022914594735373457712031118727313493122039934667193929547354663847572818039851463489880726439289816408692400807832156042140195030952900073044437337757121613166895928704275254459928020591644106508768357079337314018555161440186772573987431604019730369507700970402087722384350788549249150040132136365259464416204612793294588747857795678573812862977581307553859305802288756454151029645864742081964695263967624442934548947343283844533034066063941089394337520004609766021887027368914436951547329060548540165744514376216711148107488627727436411599578404394360391174216578606320368907945634636633463570516813235206704230340787795355565584478796022979127502500104562455349732547887085341831583699560268814881653328094075402847194230253181465746447582025388304188016775729879049253114098952173406062154850853148878661324159488504883821145355544831619300180748961541019733610034588439861883030915619414231129282500405850235196923373595604601210281427616588491514123608161802896674446035190436664859795506158215559462241084642716956293846663316993069728887256926299280595475078366495467986838975943237594716266707501857201449761183852331445055615196188168414621509739001606972294900682665397334174830064360829845667849623960071972545662410178807222362347597290051209247022117872542265556141060085738411921483881416545274876041576571205381868895454695804818912641582700371302655534311396949546241222852980105309316017842145736126956874018479821016263375828118222888383720219288025921721298319681776302941771144678366065822246784209682653913903837715112237563563320118441745729091062122833559979838195956091032305878938039251117245056758034856733483511617415951575791705819623748255260965310765511171428125698752742350188534544863518930268497430914602380686844504333254387770431408186655270061636771806907747357559061352013275089930354092061128120603699109053287327611561861575088095124503871410776543628501092033811522989138025544345764045421418141497601739843863576327670718000138407510553825077848128888952379848621365632052762251339992846058825319988589093877297927568933132422945726833500094364607620230385796592667229471513375132935449630559848468784147925822813955158649642265292812674524975433413902713317548280842288982979718995320220012709254611812145244328988951787480155748215101891752467490877774564893540669755815128420035114457555992073013785820746177217327748141023275126882842736170845825723113465829384540633491456607064519262432282934802618687592118654595278243852086161376976028688239560294463249768527301851497434615162265410008827365136592833714802921184450109772814292748198966143514087705438461084449639828056191053495308051507349148701569257307283645689367343119194263256689355205913515162830565821342198066013586293705823271721363192444549466178219932689458960133829917918378539472973138221073792255761268517920938928391362243668614771875649304821180112174185295768936263712469608432754412242923138196977522721957782963221362835671083624845610690333314592304669761434525975538475138847756413711844240712317925838917646774406671123726321647220602606347758382489880122015371040182384629470075056700812528736840968371384520332883589229817625114288858572592599966787398945253568500536480639089813970004473546835466044341440116836806790321365488081571910182467149944424200758523903183635491917945213335877601732205565960273926074758545498832123953286137387575092387644492001134540459993317295796557666714684375351813136735462570150440200712366512219089557222909965157351587693492078352930319413585283888546119524991727507541977169505975737964133453875240694456989171602927604797908403836082017290987205369226288685804789676121855883988075627765338524514096475622571743267473685279522634565509781293851738976919075416644882398277730210907864636163790299004119664180456590014287336295990744326083064966286376627951114125518317037133578110920820267373402468774888889596252522600049976123434996481366838166576487485941224581866688509176364371525886861925101138112660456241714854284898947671763104795061981315552222173022921728919506866429010873993782033045162098422998811276951016256857937309439027521535193082003343894676208481012351235338179255836657223758875203750760798517686023073065867867753682351838723079091178928567321425088461725739810100867104712044690224854614826021385984102865155715564104005872253823819746420794810868573191184165606268108676750514654952358760654156650785498014323905430020954865408817551280425578622106270621364062186426273890309334704681134181581244851603376212987290830720249422219637862029587226070523608477598809686856012421466671962933172555802860372721816862362017241409600371155121777423050199267956417002871961504820489602959560805186125818391868501686143282278289422394040233017853949353887592239230322797449027966835572983026676797138582863876185849805021005228462764123249675114986783232483823914884132123842581695954625107462878384463026209526737876600833957929825898241377940674530496666895625078831550422461197152902251951195590980699147196338051561317482474200592815930900063627504562447744818856739443249800950509843774230222394483669149902379453768722930483521870163016802054379367409339008958053780395568003027207494868382449769787435693801504691371813968588471999259918427247647753705231547707970742496960673739681230760131496055587874386332337864396881917460618984611110690584191230336523883903958717510152988309013093186785822974135373574602960936785189972140731406282260370896529786785110789606954680686458095424134275581594491921847947217643481835574425851574564028766616842987704431032468138332838793180983908013082479958455462470789455725560679439796304684202612768586363739923976758787884994116774059229671746410922974948087185364365006529122035999293555252618520866301773928532152570076988947253336250222700701955108562729044569791962836852053225796140239000525398232254868974531207172975276862293481664116050999115918363086678523703064025394982828250636049416892011591226317090265640277654638474457723915522538439450547973618657980923844744687290678172643516433769386488830231475590437509555128430825102781551641119292726591053820617236471311079616695254486983524772703156589794721623322305580546982913941761354553850084111187969455382936693470235682677786461953357387732177109581817016859923215901392280130419949545861872513306263131703233878778892857623861366831657237281080056668034602893345666093377550615950234607761008394950577418326395957306374039792012122969276711868605915511201764446936787681020123930439123473206361557545174116245653410161025200449050951988925419893620318753797920680579737667478775071871075883010549510158008468915017541530287225444055289671282467384279389090446324983932962912063612795718511731800479694313738155472375510293193979122739178077632835950856247200363357539250311859318710280516011675942440528053138909913729033860657253169465852479115934704878198155348692368409926249067482525884657064542839723541424400375340167409330165972058848653768355173650649316885322613092058962402097161917210869122486406864124602501615902855359903379311476205241022436498343880278060731292452071338447439901693201684554525064824915859015452095226092257507970575061131416301133823459420114064126251275678311819605254403088780258316514257022729652806929569448088912757924984041918942283177043759498218681107772648437523779815535311260863030841093731107171329846880701525365834753830652664464182554041683069670664744526373978859948134648346371622852540552819394092187631376536071586590305159148252959828599331811522788073692871386912370809438150485434865014235345253305861165612011988576288021354989489025531333321054337348093705552116560754591072066080344422325676540526375564485057772093389538155023805895954084568437665249690624837811875216643898562686773142443608386224476732304325998214688579689133159423230392468436263260103627185431732955178540113331791567539899676373377241059136691079799014916859307390239824057351872288342115134958523249068450193265949184567785978566255472164874491703276655575661368005666326943250514926170366163089452396405699424033735852066908876715880701795160263162568468519231728235401255884991413046453487185760510178382966889972817529086168256623249838858721152259092319567209027389885233812575635467219329356551500748919876966460144051171855797137163380242989879249473168607707474669752507209985734380570592786615867982477276421380678659052947268358732214750759468006939303979760128582914103525294559152256035065022321392158229909494475093506444333716950931714342305678852072179826639995073168224252501068605633473013958043806309579771636716546530023400797907370508472059165013978558343262098270916024009391102467553501427966125466086458579374229040409137162380672338608019195081933377517518713877460015288968536882136068728885796674699998647729054578751849873936037700265894616141831777554423655248982492437815860705349382211079961672679770790169513697493387572531811562359519034184693901860905137554368776280796687757430870682080048414973675168764340667987907825788457095486285473737815560456656332780043380692851579407721998200093287067392506712099375090904084594107190244472951020435679258946555110458525791471844220948788293026319551178829488326500088697773384096910816587193094915195310009645109148501609132013954370968020208757639188924722807402287887990935692010194739196149094787054562635181301530301260879961447701157172895032505528706912604848758504676670075775667613551423743030963305601191024230832715505639577157199849577464140738303242947951861294932570127843693700639072868994192347012723680195782516052880411728560870951352598743359242976207169110443513989236514922240900414294657903433121038902151046859128195298556464921959975672984345475727425095127655636137897371507130777238919378025621950442025833256209684058258061757035819416326924662217061560677583900918730633034933762297882362789639399375835777020625417792777494435858709929299350989708780367516701078834844049944245169515233679056233016768166581994893141835939148603095064444814365932158472370758435955280772598198375309760338662254874435067704750328606907611598451028728294445320982454647145970119062132373511179683739845574069412897946676797018535115995895888377992999201094848333286236558357525595073324958538284552017507353736912883949688968042123380683972427541017591460088361466432309537247408596350710124275531729466630774095059268120540030522316766235758831020979746289489889961627746637336868594454358048223813160384139856010267219085089518447388991474050317053974065403725082517331453727521668573073931107047145767900507362079008374144227459726501171510171776155565895473827759080946232981912209837764540043618929254226887657250453509543371728110500724785376940863494933765685931891035866356903295693915702725420510869620261365545908117740131669408788993041916078863803147549079363071869574883749189093111366564906041285386829395049693376159744645395690455695348505761342542290893409336540997324607631041064269097126360959892045043407203441205952620959995929455700368724600895973886094485565865512506865239858871840295648038831434724868913101956182721608228232595111976955686657824250708429529745876624988546497283411985699290789096063172625220653188385051510479919305696259065643497674690384345887314470204595583075711757073854293623912612481803217230166697817967197853108907640498289592325042880829711459789883688286801719416694468718701296319149909812128313133465027721333844870602780537616743954722166773504232237460278128696296780849367068805753539391890960018268805379542026679928122497105976033782092269711572987884257260353898587011179449177593334874999491429306051167270601188126233716435795710901645191628654412749922710958188372982118611523805622543613469146501575633260976447146701615858672208450540446205570118886614512843394246330312312376825194717497131567978042636437200963515017357364470801526582215074627640355974213233912545579745092889933051290245091010371644475983391410925816949038062653626365342910228025101482931357490641136571169638505558959472080642171121725571857745462611691965531698937861444656709296016275415866924411903906045052741416924664405887004915541951651339130967626709341943234602703804105335926656883895272051834440905958118672579240820343919740926880486414010287348446868469972459957035336558334767035887539489055002771220706193458335799717168329075861688482627404138325470771434935030352114122652021781542833898876149825135701456233069263950321359763815750902819101774139245062297929173186974506476766802608070754443482205337397594095550526776563718364798372776687353188062625691883540348202099121314039119950574408154315881937528329965649332322098181310917742541949300422237424936798222546247306878451191305842085150338794831276887492255998907111392657082920369675147004323641127796251921224199016474012422218933536514804536747088693483034013243852419654861533896333818342950583482443362928051628179021327173203594471007798947757589787507425458033958485881464713913950851765855121145342829561157135524911548697214165442909450135953175370504983567781393674931377880427724751337148793153559862984428697076003160736065090738557759628405244802463440288591644359132812800285349805541249325083961067943609531967070587804132735259601232974692086575821668763553901835137177795629247323946168165579671013145300179905055446311371065277520237035277962266781371219489005011283828707239333587211953355148451078691010551435345421596851608343371801772017720972227174356057853700977032237697113704849311181410056474102875921416900402604248632400977919853456452972776106359246018215892420202049245997588440269650986594380823147218816189013800733100527916818956492590517933921095562429550075852434046467665611869337355713845783142845021397661290405802259688752403210534199142839526114336013648312668308858376723055048958684470331761897422894386708145675741721679128354310284184006614711888710742654642856542641901556084858363306939840147333087487262757338570676921398678248936007001914917736856051620087000366979390703006164334627214187003495681794388284683877453881753613911006984068857683858046285526984940672088551435033452327035555040679523350671033489786480686506472400490826558994164577009643667864722305189056609536617746844017195200823354015227456714077897441085872827591579187336512062411566054582895992275488443851046182241509202713728341619548791073178316758025109409660023182795594214841711536331196055474381260649841008102483050085860016299383307130910399155621611787738217499176197679849590394961115658029307049326657371346715709842453645826470129701804675057215990116808083527172584741100814822819511835628793171939980412150162997111404805565904976054398443184105127166201645093953109558491909846244693756958167680777460948346365427060745891969709070746093911882446011069577758822058346457598528590522749373217813544551697392629023709768614337222315620555964871107453595475805210125936612906028346275969913244838531561966516704523582334628738823100503054865419843430809212688552933994647733662266563715268038150827851150708802438161420828927601983431135884775425412238950320851899538562647433335946765160396267286357486072410225712711421048235147072972116229583836129638352471675099751460379819646104237429419482512284240177323684938589052816004123817855137121316473871368086504678947861559097149967329401269534178038575835501162393809995522936680949546012167530819572274343759387152892280498248143063261447947614683512219539586496882762982598566807351155761698539909809092227539454661216794121808009083411737901109497162750504495521509702431133146938236835370623588102467545264317202223514520052269774449321625503682100244359815976050596801906475461739071489846977208344162827381662027375069460014899261078355685850214255896042730766704745014305632941952206466460105483952820597072490008237330393989959658098097833049327145398878367509994429561923789600969197035113737039795768912551544971671717903780332732625443713561035288263519302372473525019025121806872542705288852075696285988408617107925156267729614086909781948851128602693325106335075350287079824783343821290763712553235376760578921684536921267059895011832992619438177909974768441685110503031660874879393606549410408505556904383916411614647814952412141426913359718562882074808838931513150131885805766279128651031016940285449538535255284013794026348465490855170817600836716652227753038618581093587058296880656742566378865103621155686789370797297919014933618382350247590717784085794127064459540525687416259502775523480963031115860749872668355197026385309783223787504164629769240182619516538249503349951583762662460124629314531450624085428048147024161988490386148115144771769501723539059294323428324091382784989090293882365251511825288016093778162200298330291399340028371761484562159447332897492737745925247250303358614385678696359576626808776539935647702537626416672863072628516832080369308657977492419149185797946261946056874535597074925466504587198261060538651995427526312635417808016650884714378772369315749044704957484462377069091220454819945618992563624978151465910795185823849005214240321866700112287425585884446700730851104457685023522110349193994134411246386882271444870195546103792613051506036346359494061481613860772697502398065271898470408434529868443076785531579482240645344923298327831081059389075687155683556742532003416234796185405849143637990866080314286886019510721299451618008087227191435366346516774620982781218925338047883867520757837659807813465024485524678946332602642440366615241547962384389059318269298169816178063627940729810207877873811766209885756269181092713052302317576924016444390437369868140825569609155738530775696208705745014696386610039546860136972786321764962118667471543719204104667869450666890618650694667507166709365727084979594767024716968631996867154099313642433949759049650448353883700314964057312478277494046765763287529120036780797060899769563695081577678592006512337283799398743322880318390570724769847899727065335366261866165461247401956629227085071791487009884611058218744162783028216376064621054470211196989030101487439806949910028033518552381413395664278675326691526102213345273435732814859032006068958101317779394592764617508229324698972909896021981512606788906134928926302845154021469629273611537865796003717130797309042787177639850854596104458204171012840961493701489829574716048944463579550597986865330832031855401334555784842065724479136353188169606066108138756923693030218703404003047341901029698272636905674193930475366474052145583020712120474974318481745934635464200192562527602426540938870971620286204360705366594083925602063581439759982188340011058847137415889558661839424831597215818659957560660321952370113769281084873752889205536979803413794545715190874842935956883725150225150338260058398613082518104385755115725133029255468900536839394995221089265214837612217220496166011342409357380571964906983189320842174305910009544232309671742727550612150831343091752030721998730848620364300962205977471403550249381669445051566823325312193744199072273762125684769067646247775954461042492917454651732594228917897748411990455923655556466325718215508835162783946500373697945175507413376234066108731146229106255216985340693706174260689254263954433077965399306192344679561388876704133322608962456080792624445017471348479624748408579325129892665778880167771686686761756118683260076187563229346432617316047377532170453168202917458308417742600712167467909630223032122965838821035165967427857966862661756455001439134232622597342412073425874688613671310390092774134135799386652983484334821530050549255699358259345826491159362699732159653077453585643629778489571481380382728646169135662865420492185343089141794456881499757629444432147690316408639856165316482431534495519900218965885231824983533763955405654967107682649665164600155060403043423377102872656278089704621170476731282368291608710591428167877058340901285475784828526517765343266971440432607612797651372917322078277239624066931177434423767284886882807573615283927541956185280966976859476968874626021175547590861557636188280758533866278707952692432023040531825128012175318410126190245212555635329673476067491528335167548433591494660132518278724065981655680722408334784142888112672098771342999640481729189404986984656094069466666983145909012656701937235039385487050682092501808433145809208761844702459204504425384259122853827325748320250910211859616902188421374728620992013000905694096409224342223774648925852731950202435871800658729217835558157670713717681018431322850916923635131755062700107019825596299488639500949474332277858597529872540585212186066392833243479927347795802828867220435211988143622513259327221158886228113798305856546863253615117694309470685762715256742828806357253350711377824426999442898823684710262369544716000347738313617229081697117821279836738763134913527906646937257479804809747292510869379355027995719846871017131033983004798965826612409603598086721013775483777685258066979209061381651951705991148518220706160515552112664201426264595596586327633321684311000206190591613939164669400558059816289139306284108424110037521894803487109976732749599888230832581389484018777198132920495118092257239528796760605494391268471340234589935716906203326177134289266476868555669876736272694729301591187485802130353196746733331263035584689847812627411183156967550254071468446410097996535714384362025268678971910621690258737501152576532775816223834570392312559622589175074839625512685025377977713428635471872744750177099934869026642565902793648832587942114390703504347958376658432128897122106510366377535597129996684662961384164615009674921454727768569031862634096158122703601642818137366437682076440208450044959077097579420782737581510898137677646449251700628997470555849918966826606486395050898764901664887913289333258393985852142533975504721969707059792942780804859512609018063928831136058529939425973054246277037798976503546721899470931887033373777826033727112520425811219477080885255711889969753006338235923225819063284088316774642703074816463721886263000803994868220720493749296466764093206727680298244718655405101349056687008275587580389726336804533606389171288263507951487997621277336239263213936080433408711630521866092709879295187856347310850775854141846119872592748800976451310435946932438512532746631318799885951430511703109783683037904314766938443731965634389647170323112649464825352047711070803421000411732732798221186546247976693720763001194762343893548201521473919768757106837424363922846618521475005010558278042344901439174321767675326938657584550810708567586070697558778571687670812861557037165145824084844135270390930863744997088213607139182996510690788224272730980524670773232335048392372598823609875270717488173360675404917377166443379468389378358754394822297817780124614493201263220164153764378764131323548659614066988484708655259046227287805537880700817525637065202641209701423523935786744114693257488208875723719725908695078895233343416143292319190793823301976309379649612196221440706958534247358187904757962076315952771374511833913813995106896285942963231480357672354769596398908123237530568700183609778567374386797995188336869827845828414209855365545579539019572916272862977643039106046419014828554809991688705141218928324867018728606412067016589256133126941183507099724005696219276978561233795723560853488670172701627431231242796169105342716944783557761176606743942319958714638396098316551110697746246233643366854565733295799167113546711781205619726250531443498604228409279057361585405372966391540731605371344641702988868905543923350704063716661032904748156248846559636989662369393476875349962439880784631660910360704685817948027388409495752821812150135202965799154452511244238602985180694061819770194368762138649018256761168640290183411628045413440199025020815015844869758445382549263764647183333516065324503279529562645594783530543509857750432709250793050400323115084077853086010600838502410740009082358076282161212003282226757872473646146320673826861943671733974339599661189388508381921771698237528081718221678611363245614493293511367384648950045441366145983247450954957417492983991384143718054231937266817656560639665326241688831227897168978186716529717302669339590114779885858073828642162863848061302849137976566230010231031277161872389351743254754733176119187433678807149734780715239078137920912854908710313468791893217847922884943370343995980674310893399365260527304875958372313100005577655768228057547143684623683544951101336255677254197992298216700275394785917853787474625031478831056929831334793269577627164054009004738205026128992856214665436186611095175000334015137984681396442333720292502403712832562766294167892025860707586844541700624281767367125871192612391719000539128062961179866774028042912780479790034040879221978004148058415845328770667984414264928065093337844917047010187087461846566874324694692123384653050886214868094402607653380940698471430683228471898673136514622590159335051775047730068281361978593376055498261957692599180033016013493944681626202091415708518116052978112367118527433405035667880078859096194067594473461862548114096752948176571529141327106209362887650985321344296884215124716748332851164417407209763418985540751465155533250417229914807626961179493146043801209370162637625800936874767984140937044197614046669984119548744664326608893996971715159667335799315066366397200433353812798634933140776747042171307534865779827973933444101440573788781158355140420007506616136107386139153714478627161022397416795062163149167481690535453440456603741595434970858857902821957896843780097084516836921217640766338430831858663244669296670593155445537866806655074625089225868821357212108162173067057997350398374983768913556141561040136698060991377097000416675558704314070741331485259871537351555466188329147708689305399594872428039670349048787262307689602258849484116360731997956143832647812152609716814682273021121859788525871824117522430398787387819918466619204083353938056786504806119660550446285695153198125506747713662120457111442346322749872671504989222939855457809696695394843977562073373295315981671361492912341322926946717006075537368355614554337286908298012685048524837823026108583027514988293955398450797583653114130619475603119355368416719169558202316617539326164191871295225556875278564451631694060791149867903014814325141959107135611268947200292316167743217017749323186945364441012294554722351099219770275901441837649111169750990232200855077825969293269657267548074520652003288061511369451480982363555433761068110156429287903043739550965745671138754470977585532734755268717876732483135777893876644835039545743633021512382818285382905918203649444064567723654886046799434998283431692959009772048045065202514727374500773986749397396849335638511515594191123496538763644888316046828722854317461808890109786245395624267421646154798644053351670948138033475454559986840008345537390161541238252196981123235886138024917301733626062628463947794659472755434572468881439587318163330612004493655292450504522536917608120892861966284216650515455882828952183615263139528739070093622153990766108148973498153372251027818168552628980937084170648926176466424218886407853576779436033104393538664829644112355354471296831335288702177395598794799374216515190579662797787767547668450147415363763912991762015170316776125249606182422698453601070575475473089040037830002195977115353940687313460486226613164473437648011901328516129972497714594694156727261258718342506698683481573479211709398785237753480215052897854418364548598784321599967022091360709518520214170878582374485748193311317080574019455011785599115764506064536420942234074283590007151629335286314904459179545416728305766777562932329302707723179073049802138217753055010735194210466745150069930953655984870209456743898444348442389909644433090213724330710693625394052550260818556054115291420992327959712881783791664751911009572463588525565354531632140481321487057863508208339134254198049620880578604148344134234049655505578559879841113595368578031977437385746185141073760209099264489030485530655884050500182855471741960694752496094282222371096739913262622740628395755268599794046234301048283811177569312585663834133101124696243035203051212408094121590994154727363570430033104121037577275538905379141234992321793669719021218960970486294828122863326671387668302478789115517559458342217602756260269257308936024059357822882695360210416170370671655491544812419249717607997241669846986546963856978441100935730135349491615159796384624413434860004522481218459451322232953137874785480170488997456644559328274402130386512041565793850230688986443541369297100959490057142171743208024501275091001731174024919962751037313071020106151468375862205136800085533531726623140207981769915794914808609787815992421802702706303960039447821592242642101679422311565240945170065380053046169308753342086989583648989153424925722737244135697674863752156899711209111173435918807661249658954998836332279966424043469409766913853638265595762323673032735025809070529835238251605832714727208222924978088609497308121255842269320694689619250617954968808496767621743731034788466933844441042522005390309619094545933721220417111429384340130986624580713585877395989949100838415348891585709923486837870439031941481299062951923866307751221598954901042997545774867490660405431343305607069710759164723192427497124314856880320790674008280952001725131704711199610759616926147373392910633869162692811326565675196033994793988529782678981704405791459099760390589256266058788308041504511970074670447934912634131518664969056002314434573427402209665453976745440285766393968998100822673939367837564629549849765007611519725813518576298466197690750631422100646478684782576172500667286711621714085270832640081827838986255115663446314326373815684035412822462808275071468245833725427435967478405452612977397031665165198440649191171994638887587759709481029179059503358689988173241054202950986556050741325165526068379092138976363348344292790884939283767182615532601786024000181641848341882148819081325998058792869036266948006077106713427086824477934212786276186488781911140856284901589432656708500931172646689414580915462935824659377950308659144377053822592254859760016173380642875095025497777156283218514770667851048618252265584647838630849483578353924419470159582054638551977483443893355971613762395046159599527978144776897239576147945600477122302081614746838687730081340736280070990195133358409694193940718722342815264797005474744478341258790136241668216252983618900964569301580052428498978271306010393238106806283570588005016535064757700905301000773739052469386822925599392959698566959158207311294762632621019635686196137833391270830393195997653101050794828387944574896143655178932299037488777573858293051448359663546920337120172076816032954526292148242690515803251204477259516927229812582860167229692743084612144678523144444201587701861788213743208720916431984928621948883125736428977641182444402039043725149197153242494951274252929887310607617430582588488586060112697150457873036840774708633798016649119696963005157471801189779950499535095182748561319717047353344675076977408056431348393579963720737408692391335256598789322407808417350115504038304922168517967355644749413951340988479829720661991848898985052477842094688947830558808938342395369118561436234673715972253205209348355988377137963769452956404450710948157995723429493958015096376261017306675610428328700429735955067928169108053534425091213356849172689450842344608762172379404709400838618949702453813583593826098620662513517913566681367477132450049758328989198795912182600656407135619008113821206030174813056315293229372783545262471424427163730344812507377694555153807260106835660427041774103218503673235159934235121974240599933223470684948934303169999565734868217380614750200438475417831142406918978900810422873594522768226057321622756380555777243887250834481782507284445882584589508982624153084339617977059277030926196405051475634222560595824670306271546794706542982146697675414751725669699595877707464849042737034178943738752513972861180754997716804984597442000057185127419965434934413913156051883088924794784520652300215397257948321229665085468182325899344955447662249785766032695539833700344356248582640080547755584289086381798987110381240902110297944927696353586664740156249684163757822455796734387710911208524403107919558975297091598262924313059317292378165931260455406916954915270067315885541925013621221614213737980541499701241938877312308938040639781228348566854981750261002064984197512593202192717648069606561225972746979990629559943123288805418053743985793518151521496960955680539813699781965455348991687910727356749597079977888858323414980663244640847304467140274349446611769126759715147516466833525456761931762557562889904131327666570881965116085709159302015367382488982209441480851014892868024306583269420102742533021432173068018331551595892646066702169167011643157781657797279546477040341613348153705958141248626311932997491774230797538081206261578631219760145910992615578465776124885354411563499353502277336692647581287282276580045045306550446283843345767064277023691826206759191711474429612445388667163947254045168130563235417500232707166320480001143639286751580875270536793234055979529510246701672226793136399830249486626919458594860513180953772147226090276411314163899759852059338060099308990916858186592114167026900107545247300254466308945568032275253581583849338263387713903519020821838859030132189051448509631673149072126981283563490234762555212611651031006066970655866228963179464165268622625846423752404491162580823934476406401286548650245587054171622701260368434974671098555514808895498329651454223653759127523386907582565162855570321978895066308648042562400639254802618582215274045335011573732064563322421183680624987303978670380384728568157574026214452566545258997449520419991660496816955053657785700125236585322524424476738570322585267283321524167293522953135703181230670682015965226409300372651754767931137777431372582421471009904348013581183728636226100010281387620719596355137382318414160062722162442062808736859869986022561440514662617657854983752693712693396111230974213913598785448659380909269252345227020340451640250464311194443094545122590470429030497475865411152364854377842823826393335422895860249801212223949704156922627262201325121807806586450073744599528572388864874851802366189555203522182169948594864541700447870777110613399855143715230383109014478360738066489402148150969547521581148780315028664203807054463084328158379838718903011596774981783677974567214238785279165007975227630470815633567993550859193075776749519305053134869040653810858677308722364855666205182721906606998700941131854823079366579966199899280141848977411931669808876735454894741019202147919598277207309405083100892840516086114343924875729951829141652713089278676980250943752567941879317951170120656748167503158137145500535567371635124566334165515547014642976291090930671133740833870146345024229688508658164039252962281863403805920528775998577628124809015084105724930066517737028653022718883429788783550136328278009481571131853521706547701560718136192505039021694027112532084865970324056159110398285402794804102293029207718176733195627136734266654558306661101941357050056969100255989048876431911279008574434138558247135118277844725311346531586427526653057614119262234572136811752264396428776229273961533275766577574028817252148956805688973133295215917810859934265687688657148525176466548896049599008445242601145254296521108585363347636125277510962135733410482041717318066761917608997576488850894586354038503306403235537145589291168737143465499374121769721744251496519153310977306843816747131697378073415151349797893831290170387838019099829853928431592525713352636860381745317088330094261460339524125440159264479883308042677702817651151497138044770414546491715467645783932704123950068707346540381459734768486130765814251203667615800807546405953945917324270707627877443255381541211276045798962572991317765178232533413752015105374900584138492920705867975785108755527891144017894410299426048000841220228503101065662056777968291228666626052762014160325325309996925136915906195266908891335144336871067689037642380059463117800807292209163109464254956611372396169156685864533338548909207579706793169934771847934398136760731213831437456847425403867471996139058657770156558192598802647424550468332882883269840982459360250330800624643439400661141113244754581798666238504251810292100168300821506455930849148630196948889423177483881244484011325238980002678600600602997920046977829654334136415666264307894070073803905456453668164960800020205979123349921586884917029402791741773538334052357555482127914838026830723526159615417717682480211169992411075400943805145391863101517935041046950431359495448709329631928452259147118961976053096150418993854632839079368732805332951981531161375517268567737807980256530358879066756995864351398316875893628729440739583032595498921884904932635896865382265196451058462455827309082329126546644832578691254301792303226228399327815527032213686705848486819943166704161127028406769709049349965069949833268306704393719632827210070526005298112209629591188845505925819459230511297369025155391322693159365362760736384277032779797995106455435768555892768273593580052612376023677330055465257472900237150330610306188040885541261413962497809261484618456835981339526065545387355993731922369607393414616339830663381294605068550536240280797948915821758396378189152903748824834359764038517955214126784565812323782737436247388026205318413023958071656709283811340238992948972571294433549239625702562984616067295512100957725128494889732850531608535528588368735425550725458820762530452926493581897720776876867849217963183991573670953553294256479514925849030292289518196743903712686031716616255655857000494557264610523730210373326797247595497202588113282927423510548121400902014492258283925772146257074736577597452408402581035118883635999589798175566235734469406239869103434035221736569720560817213640056640180947563777228521310786837692051817527101068453512001703792045570620435103905408538814315205012069853152545254708396747850491025365586002423549146353778132067654950641014012449484444875657402340932217938724181465242604169822745992605912250342270185971115847090296360392526076948565266183985807113739525531502009444409654035002323451317846321663175344810829815577810301416263269838430387715648556734934917688432733146688425936271051266562299731736596240418739375587529585348706499015191046400376007260008155895943150879628084376415668803323399507245773744859545554636594341529146545337678474857995722347308110151744778972100382269549279905952324850433489154960047118264729050597582594252336402559724519507263098903614790921932583826623161350332683366401598497070718138703566105817860279996477763030027078700585104780647056533848876357450173985905588962526133104266090476236405025675709070006964586199988829265860603056929283249435628782341234149270625226533393016036887683683464708394953776347342431784700562134321436225282531107432613304221456198193957920510163656461419971412927577239151562555379632356404326456581548254721854475650904977614652299456075369831666417103350527572656815472151169865687091849253407568580276345444424050046189754300047595122786485134689559147853171720761710716121657613061533309470487760129226141094088126916675134831843767823333449353360559649130211583889795981903099986963657039574070081165794913239110615614216358856436043372399885838075588955482322034189662823179306191847993716402269954674887474053122122884364039868915998857371089508700826523334655533165228261947750871022329469031448493550845218592193426550371321790053659697738044663080258549545114704669291249460287016931752314001102841429430016985202435982043499649611905367194768310709470782575948969509241036166066529610303024508591568223081651639307313151185419899957741145633563452529356784263510233738123388132573881186052434048957956394943409361372499068077251764341728906379351082261602401137755387319963762572457178609067826319058406159141468361438158651166755934200981914524806911372779310462397318489532843135137713058486655504981584194534014886201015640637575500046399979622008719258090021301924103155260910615199575486164173252099604063161520151674835430808121642515954347560710780546899604552168254030711012759679336357540791256115040408224830571339825197029673724857346628541059453615642820739989857266890793655341609991802663866628917138821668520185177631735918561150300714657294930341218914678113569340177844990324340030231948546452349538204644937602610345308481639916008585472437408714979891151040219396682519625792401420817416990870392964556710565276580923404561190390418841572408561533352384510621444833856662410613912759872177184427289247108760632048845360845894637042389386915555014500160889752273343740229157990112924659245222525137913485824033202141917944064841050505911424775441592380483541772952067525549855921836537083478047025141089420310982452201344634123094973264802897742617671847614569051001161555611888740276393334656549230402737867659818086272346653399265156290845125363262000777300781849965190678257752522705884529011028271059805157433602493550062423839001381549867557360051000274029252996718017138075172109330430079779275804683654376036882264789034442879587982289219246617582431526326130621547094397639079026774492893289489340292113187797074048340139347323295702545775737983861538527556983130989083879743039799199820474427923238516004562764061965007228768163769432773593264303545770870569065580833540336205087523852061373152817948087931497592977259384948382190533550220878710785291429225035524915446238598988574272154728831569762297045414136637316242001111036199156578673079788092236841792477565355916899823655379784964311719272113597775179119099598452288299808376228104509209540544867976281191669916729250731619232816598641048081205183422686695954536492409527434439915095187020314025477839774715446436535876384525026892367472465178043450875714835927513259328620093297941759447516179635969613152064939556775979437925837439957869579476023317671013309481443609171304865455267237194182436711989396226669083256638173714710123059136392134122833108678084675176697241859856359938305038151351885799362078008737081171265444726691788602546679739557249370487120048477149708888588623505748194038992011795745217122206284693013305901220100131320097803198329403033181592822976901599734653348291581456373071049558623624108700873710034764843621207711937502983831742406101201419190914932950234563876940769169898771418374124513705193950556035324606516116193979564914399361838626262666242653369655889418412049837208619902759624302051203010703155289134395406615782977745777367170845980102718691467662092541374881436492961093071514976478230860308750617912338489438180557408238701984931888412128287680287748067981080588665522832335664611773382040784680256764727405402728520005175893386255567012518237019514808744200035524013612271123139807089942061282706024508083703846856600151000847597323055877149016829100410633033112847984811143418416619777744231916260340796688650462896500901474469501161746871003316817120206550057161177474707556255033453079936650481025091529278146967007420159799841154322961223114008191104259340911217491016954509710953549457514662817257464680482111503407176882428983979932428746002243084812277872464334761189514483970058532060276050656288760004108705874791055798692063099114787592296980134425105520226704815760852282764817233957101860559541436706198680889319634967893054606026379504505347906410609884095026999496925576933269792020030432051234043752126189513072090068204186327496315640605257994989589736380277642512980448993982485843760718229826138272070462214931101483603663684700262974412222477183879111263365710812700621660006264646224955472486843917910409866211188505626004889980269278530764910373007711307600895973054032500032715962539315250195243545593597630339907738915662217989200408917020254542559621221851019159061216034936739235905542825151954494189184284873916165899586900380494684761687406743801524744232495315616511370204036160526986529020933116239910452515199305130151268822141438303376566297212502107130879216442977933280385514257664713258502303516230458036735885485573645114781180095390046875960609531961788147849891053742531265395644775323489728721396543897505912862648367787004623936983826333232716063657723550663693470159293510114085853387964943916749725358088161456549456866693541024451549089755541877253577452008805327411530399802012078579853929443779599763470956043859755051230161171806549477922186011007489187802949729274388751026816307289261941262484577954199561918016765348164739791675799042715402937778910160384944038170006020875680425113433834256420780098945156769345670001251111266698465577534459262641518012620441224260963992738404733596333710667801968494465046551036499075712213958532243442138428166079599322090010774818665991593188503163510229745196095854390034361928471792694627600130771365281315777197223111397449267854844379708401872971448034114553979771839258389917800427940938009648799834807329925151529270901177324566279940338639836701060393994870005510838486418826618780926387700077571337119044979127928907014706542284060290252052923082573618263050902435830604421511939501773437290731079291107692126744849271298862209709360738019157569722786423006501273512069493451421082029844809150897762214237589324316344223095457976624675237861670469426792872620747589168643122684105355507393313680226454451698565048450370377684638702174920309776650117795098677893925048543672057731681506808174806047449602943741429083249151295654187642015929424292282080831032883638141452907559810999761693082087036420896667499968022886740072539211673942847069253075143306959075348853375741603747970602544887752162552288918319053114261756820198958451904239544341195206942550146012457057868928489813727982087402473811648691667051785737225602726675601562779929641876857506411145514259719894150170149040185601502087868023659220195645540629513914158675035294469612251936746559999094334319504043592482864844535969709101176291351185751764647885103124934198780302422473423996946789033184072700196481581105949411965742972850263601481082048634706095008410375262892243456946036689070839144456165136687465129114500662536493198679619943656888624148867639032797042719005630253180130300104233909594852794757524833052988991166129442386124670601322127469410625643312161305772420154812152458214670568747122821129568333845267674165090328958653283087820083442902996120918414745656174010978822499676056446231014430668616406783411956846840618907070190014143349192844856140091389786816183687371990576777216968106193887843177604485172029689894536604444175659999069100861293265182527276306321912581382420939753238228293163058163667736254468714217485614922002681481796042125528052090378385542809742196306735541606776381901279023766031923102882675065855291895680348094705083081849719787023422011891359182769074031214279644466841220406066085961940114069072282108910397337326688183870143136795974195894174453495574755885327128822514354094518727061115990208477103721443091029812815441777523357485111087942130776133662417529145959366611927327330831072744790591994651608688884963478271588803890850273243200394640622617676386942432366211450227526924665655624308676408317830172572487218244440920919830573191959000228349266406586306990346669357579718425125174943130238463887832868965497756307546497161059278613521733244123455923004368144468976740724725367010645061319878845285873420082616341241496517428108414450508784083308961505476774027702670783464756099359429921103971420737735041375337179108399646105668454472086392064159415125624176700437858905098039849643838107159669536888583462723921630651419874615788926134822384418093163332311571437006228027609875395448679051764298136781915326211760103466972087430644098781136601406747506632668146783669345244922094939713273966773828169311446796993844995102745054099579320743001633233744563938164346523903957616472191269568417458208573479718450300978630702414272735139007721255148348471475055733955636158361116753116909014364148480573205437516786408502884192659639818603793069655251995329675571751936128924522421973552988853897914482054832676522074172478373707074449518646373350577954863261639157203367940640936488349596509054495539208584597509677552272607216542121241464425275802311817651857550903554321368408070855853617504928319180552711269299852025819759679785267346497639387356732521606716186089325066739587531073227518305416266291675625458290313799899325830394527458211255655315396465600548731061808694737914666969557035789030011520555058611345670273553468490627916727769557639471985440655309143136825173226518607521060934668129044490606455286435449494245541024234867854125853973653422070019062701040246489064410383601367227602761766689029420567074747099771918273088329837991265108737041495178055831667733701562408915849753947889610586838775542235685297274675011668209136268890519762417960596636798683896180359443626292395514792186476129196124434346791119109013453748550969288246525330762140299685673513649122958556758176376114884898532520986523575502212216814909038577007515841586690218192587634343940143845777374571954560038064363512690267369898473639598119229994508483709411142798436105830820912138575287076090083731842558976240996632113946897497502125528005862512970014791203812815128722238421254796022153309099836972146931810747757589125998011108929727266761868604819190459666672891653957045480686280011319152601745116469979749086543445156580923151648124244503132111249203623177952582846418296682476412741196093016381410480884647863747556988789419316614088455858623899138899614268062930478806654607096609887269358093382030296341973139589012459297494427664285657622273871106845064128728003130816257424237087176421985212790889891212541575930779501027549366762170360409177433589818871122657825818996130800756814642479908381935707903793469078030461191709271793658264279969400614486489565721996066644461047685136471673283727968703251500835376746226775891920139598837624798495754346342547237185212330530483097960568433290360759744242982103260029178538402530429160658152662042378666889312810111429517488097748138958511930825688016318867121428838055143708295986133567253182130192752662573223962616631608818388536843167115106331778501359810559399585666754819533052646392792427004009165458823208165962150494396184656008729219120472500793117877312167145744217481180527228239693806440825951100222836979669897847763956051134442683134176528279048531824627789230395744901550017534344316044292862456318207347471260117557416254500130079758101024510493889117822544556083681980330024544585640699694825489243062958663132487701049190784281993438302413425349807529026689312585667143077802114199783280452636003669570461070592875322604597713185933606113784478115637738321499969592776756928083181877915375360672164777203605414201082260324857615557732592017865473594255713665426202888294971781601250046774236921823438889416495184430813375700417747798054450193534549794538208661809745686798550174789313654553035795740432897130483225222914273660008402607388402258439224971772985693633253465035510732815964783214789328500029888830742984819576194061078974767527831171562326965476912170328214672684210418304063295206810398682799676147127269431039813969236181418741516604759598838331097934949263420141543211688543918476245052468741108268453573203397078039492511121901664960656467296406919819934587362023970308405682304265149710274971987815866569340547757511742517770095023568673795278707065765146291422535547206615734972185466854239281303421331357616696120808516179537370698245424193697456256881867306528356563871694426069228273317530215609118392703765488310322795435427327501422965261140414174186105173061563382149949570434261848664374574764107431799303429416716636984378283245569417987629967082911517968691217066766769658516482200828875542977388453027674722646309212098444449992948455498178594188750083556494500596216397977245656540063333765848401594770010303736485957946622469429089485265100379468102163129262063698774588891260132305476413905245395516377279334522327035605908184124849552795970257132062956514569969472155880228356712955906608638606700864543517693685950245347434327431121393791252936639122138608190691812291439372051959832753770987945682373556811142180180698512414021927127822570587495986106986849349646372014175998341247346122795289401665479375269754379990236149465336422054710490942312120538511556749228656498077247740731189073104033973330808467278131256914481035111593709317623247920026755941757175513559658372869622211100836308127912333327690120355058670970087399687994809708729008961865736744170697724643934430328081515181053351730827911750511882517335253875143961184627430871535359266527347249793313162740032041446410809903016054158309314911663058195938299363953779868099042236025675320539495687519138219793463223452959490792071072616863458136872833786552842053549397591026812820628854001564721575476875576057833158409499727410932299479421716164724367550468582492939866487746954595043457846915545926678592672332897883691284221804114405589652672778212545905471095564023654369116912255605812407936175374895877755418528120727834919512999253560366438967932701038217413484568650352217108342624390754833214523472459191840297903883974519042534761360360011635541434824217168630821601661373893634539720193552254346634304283332576095439823556751253846437300446106792637481453650627181763270335817172564655989541413215504692078265099396465031917339632713320196048734266882689580369292267338530084544433333451603012976047099577321416517746033221624069190214750853952415842076280725251299322174540107669183468984074969890367490477708565350152762922059699844604930996575836024733806617140360277134423585123548623243384110362153620890724925304361798626449788270244701436849970083700172151526419083400313860853091006806539631457567724317171403426213593361861621721446498864529680869503601550349344679630566697067375533545896016783764615716347773290155991035857675666932040108680555254640319837639596090380268529520388861520772167978128648915561708990624861036403400312321790713618387909904485090037215920979069676595367841330381689876395841099412673253542186896802672304207002836319237748519591616230836720972390618105335245285389018747376127512718604499995434858001368375503858860689503693105722141720279844716904291983493079303908622981397080127423519136305647565230134906104525100872224511074124407703708854249611404463863453691591112696609669799655971928678622407762918667049304333164863737011862042754183376395828550001193140035957338488201643664347078659569184087530633625104532472839855814882377090764148979788689310176140409196109595351396370295644092650892991971268855644799847631762004508395089339839730583467933979792779035659222847597879543400475580684110777951360217881499786749744020854890248390352736831007811358173684756436272772734279705126668009271879944317245166351160266892815023415467383709440833914174057444720578068555199865888318865216964489473211995405573385429316789295082455660458714419150968548366602635808357762808755387683335898029135346518983096226335149368575603336433337734210904985732200234823627907571262846838131667541727721776190869804481204784991196857669124201193152803537172507386529565293366423028100449992682434777207388184828988916215543796230448614840234721182045304222043321928820269752087839206308779009335272084931293791967554088360675709898639705109064510690673551127094859649131956012906736186759107184483407795369846119182111803272561412786028369073545034756421063165859305092192564885925521040617167460336065209017699954778185503880874315752236652238135581761148638959913021865896482318888478160352635665924334604269727972583892786446701392502274466621951869269095520616563248898873052851508772203444501186308825949914142781020861766546632046138070394316906113675412498868597254081541278153161160671263500195213368182720783883677575590016849246589397750049230782600243996713289624800475112847790453224928788350277557261609895644513014520040301437493467389450948632190118372937670821617196218580943002234105362614063338151172367603021268869998935969315426584412465727851440767799446037103656896015143128698120659928613766205683124483420853388398275525683669051492939408878612102906253446487867127188311549106537999614518571025553733554901650326996214725037839840894919143280227343238093533075348753884339221644762854235127547536048605055450754182595793948747584202730455209092360777652562743001749694741890339668600116040272363057263182404985706872572767399752949556598931210994749305627731212178406997560806705113154536452994235129117365957861180655053639970559611524374839606272573187314062763750317004227957466005290453654536425576913598917379228185139259080822392311632144771887578119478490076482217959834177985270388445881072021001769408795086091686147865298817432170549428340911703763142687554614916528604357992292146620312492973202940479509155393897438164153498964881412218227190260757965833992867707125709074824636817888832845169602799982632919479967018400458353155567926600890404202934526750854724088454779314264265365872580233985793548699483392520278809722873293048079159093359618339492390420708981051164423635094812678273747060301852045982426934451641181401548783911440472205579108904027907318565292484226677810457988192589511618715987352082051147766750680112806720754974980410749362761297925857444789961697955517516453984844458594385798499742120083628455201843295085434203196380649650845333440011342608271584788862688194500892535215654121075738423682256588397592521593149471846130278643409713325284280253136584814586072785550986884622484694324850689500536737660135744458318399287335949076383890873463558918728256206660819571270480710419314189194704224144315808842763912838835161293737703227357130156552176285381992025982659490853661868000875857198817996807732817649054931325057995685090985914398175125623818816152443202806036372600630139252090694823010767550348213504417871227596616050947200371648213341025148732640684672302837700362582297141643276946699699596298581282068158094180198359722846520910423314597753410828334944710108632824834858376414578897028448290499027574753863997295455947165413562615167336488800667956374717336870521108513046339419644085909386484087066736014778120086730067395869328413070673286948806815538399994495633188015036834119752483809199515632370138789670957235361426816661788801946578007272909215838680709065791336638344219990970882871891592687358086672811513373944356045196061448677402666152434836184758727718782732481143804028543932915003448896357522438497593294343907391345228944777149540323362008001045563110567338311625532068413243963002604916368641510175535564061693161951767523861043991148020693284341748900477664696958270253875715662687020381799911818617935178016255896647314493077444328653605721436685478385369573985247875559298997642698999618869644066966425428700960443940853831164839726629755618347526853975957174148763818535227995948653070889632980529288762907352974212151300914876681643136247041028091064646844789083631206932198458389369197794291229626156127773867013714127907807933717766323339949267378329117946234842503322050645060365506412705483976482142647712128241050241121559242491025181277751230671419806917402512210371207034534768779304648375335632388239269824526554683709340252540085725883640322157781158759706639833232736952657058566366998752526518632382000971209790923789186286922647671268391053802730180877920697329517204391879863943642506287320120340369828467213568449868343825624681675775195566731078921709413249109998089302532613828135472760171576484161495244402257912491109803906541028858146271392373189786559604548875298531029008210335115814708873426657583739563333004731306600850506376715704019755299246058394531251300693881550110183265978519711025276771374693611162103197039132438167355611576621570429313432682310461536294067840216920889514949798012941720791922765570899269012781974627095357162982509757328705916860932786098774259173316824288694557703011862179367674489364472224961957292565863059317953583694573788509539761235325499989535306521244028700375557273169840739309769548499545384095918699892537140153330931781522053525273609933354982177689872652713284034516495294583184536449813244928073759398965359164458887555033559697240996260858695336689434095716626356130239960061463592158797246810420442432104484583812826819556367309374152206804054621813267214573400891546039314165887706299415082637905243475005227885694974151952217961936758444792936070311142035099315565435763738862723199752472430948239350274951466701873898336990587959007741823006020384445690332358244780590252488039542973803650530396085565338533260388776151032785063537843268706791494635690178797363963540402421371981450634675846806427303967410681113171228363255507424046660777806599982131964268294041761581731554991671994332611213489969970125057353520460421919211479161561177635800092034263035240197753874450321751049001777351425843556364036811879504873448306978628107131163063267557610752898311616303267398620449340028299070572887961865372633725957352538575551549307402691592695635198417439942048950070252744001718499547923667133476619042637989526609904375424350697800144942328515470798032824865615921238251646366324062196377957554107239197226820061266852826248793386760548307294641181763846289982693835082750228811750240237886711930165796237105905594820257756820514750881325063721379106895035427165939930814887752133603598885579231569593434455215413786311534955716309459960956219048983366242560540113770239746822593916274904544052394018579939813149651271921205885354895699122834608249520307447255694286448799821343533475959290352083288008881589122162028302649210660965171834412009924204080687129126566805581624706039032699495951186555756558074787273393316848994122234380801370789860796146463449879327393437685439804468529047411799414280141485841659041093932253701152823348679067760545375255498211295548081100018621580965692694219888211806686036810227377535718844616407638640651685606786281723509229983981079024887202749627021771917786244851311519352045678945787026360484238173558269367749494158122438006802915052622268838219342254724532910187695666832975683406901061847619882736631025221217448838988871273270154412548894400333905112828965354434156842345650498637206262049196483222494716243908573195397241734503853982212886589437204562185097160609842244454744800906562182018449159668028842134629773777595579260916752523917265497559942094458233272675092364679571208362999613771159842785556584122892440729906500473452283688823244138786504906252896541605928072958196445511883936244880510187448559168765381801298997814713610936631268333892686170152356658685975425665997474386793713463146682433725145116704747780346006224604503771757807632311344499148162553362932197032826135632402476867220288991653850662641836969573535393053936119338273438660072698671266249428718636670144464877332851603802424868195123242983733291176978736844570907128072112859718558313770863066324976095771858348770959924805279528521092863171835142907806767703830214414286794162460985094601411749094237364463906945170049286873074126462982946458912088497517042981209328127372825226094403789674948768161769094937366731096353544695655059047863298045820438741670341796636470279234661345609679987600659779806891201512805252300965979920011894229035922395068875418632918413998047786855595023240135803267649893059221780193342456123352687148799213714943601474531039489262326686446393039390873006177455684779018253570666868742117346984504123872066853429997950788465911631002408398394749750345886070879946375085826171563534664887757813150419350511273909610713442832426545712038011260276555053185888259451835835792092486106224137969059403613061424809494517817755547861092380897633986714647261851568356635105736562951346058427061129894439584029803842754299699651076917030533602347244131395866223577823428131254982300257880931414725807159067019144559618796370298179255867939161821800497701256440276174496193897904318778958169549619010475073146948075020334346838170796421027458325176616199426407956075380108712899653733316597509461639833306920282903609458827935212776393793332547091159846503435728349382140192540282922517194384920469406297155996142106728532588395374437690062259331100892478517350556813943537244624701837058697785526032255517146205784946063739480008688505682236194998957273680276738149438905414321933144729123613248559164261439045638652318977756001035087241534177065873023831655002391934483346756906377800741470408749328582597258041307636687467239162605101970427934782447473392928112372090457682038427251435818092779689256685772096785657828622957092359487074602957337782774668796023976102116332919803705036598316071459391750152792858349651173125845782048986811952143099641060460755939849029268615207620867600159523310967463009298663778889959340331640193895213642920228624334613308119029448336878210784325816085457080682382485119241360858610739284908712505763929193626629122032384189014930210862936333068695537687243989657858448051948967496424878317634419734705341894563452109073849718783835508306175864938646565734308209067858763004650227821737042071123627458893838573262498525895660713916191848810523304237022551822324977679382510852273805641889336761808100349685673606550138167705391594072253412846124195766112323835999258962506562329161908966878637937677441246794771091955627552848866664615508490092076648253987966214278424479744929838411976700926514244985846053558712837068667315136351838442785166202202024863279186311929678875714107068809557614598062641260207935953016766338823219999476982131163164460140024154842646334576553218404441817237424134832260114859038814443095911746500869550328701837740888181209807936385360605714596851318812868526055569780730460955613230025874275621570702988907173323442759748962523344970053205381494718075995523991852989289229809379545062898941248059615281692590534851675197413330798271709089391308066452791349358323341749741491067590107842708761576499827598769410141413146537032295155347107912130031455295716120294509077923922764672626622458280613958746426321812286742659295614602636617106518930719888019669002739020177215335720794276860135266902571935137264733406113247736660412217329093948464930854567160080186087098803991057308052590336013667623450636467315263996160501116646381036586019155555742558138326903469591454088338308047965499278414564849658072118427887825008069927528052394202236024320801731198781934954748067808245421991057249809756460036630249673976297345433111253623492601030143715219128324425442070609725768898955291241438647985644618280510644691043026524289207233856315138910345732927129014498829570650839655976960030169269881089423202063340327366981991415702925004031364503948736578106820967802055625330464391933947847729952141215116177733166659751258355385608051728824784510013965379948008347468340256369338623453505207639206916622024798985904623854073622778989736889708290235220549404948333776768271382238968563869214095671522006081143189873541791012132401134253930510065432461281319175564824314409781900855150902856418775360066262260156807955403095440536454427861258563153633127001902211978722537759177478661951651056447880380336601927531076715705478567948292029057526654872444956818103767589941183024002729975859435960318837875703660016568123315176424620858904426413449047124640890984209189655307250092756935939809791069380637964813835740806914662798155561895850035619005446663423018740159116939737998709966614395177871261163966831964162199189286111410706352331576284806422393804156044434844552426101838365844713674105534698776437457454219216331189968952070326460087502241795439924445468953872097004780925297905334992163432162334211716228160167293992411745960145782713289741806788143404900432793533202614877186576456243445731921308747364252554568095747863848728659877294372127929514582659704148450559011388989868468647149586835523504056795421068670720380213083392994304774832891292141208868265562095333545057255684190834579494225776683625937868822081818671263076155958070213710402981216316780981181802211553478587011965916131027378172463490296892264276032671032953285166217073345190447516976181173863822849515215295759294762226133902997514676577715035153354014050777697222942878997662121924578243032951797775820113917751005702418268225821037619022005271006910920385194581204263716144878843909086735258729079455074872009421271987074564961890493201450213958858813242545100581840317625839707187711994362502048978396779352448142002451422488361902419492203011260142845153395124135136217737992871346876556230625083033586217060934054172144420545774907013771177741728651789071466059032375471067742237909862097634419489790709604799796393044084522167931056055425664182043744527323659097718192808646795587031361851888420551189942818149095694151013804517571670756612181530322120815589969181308532946911350113786457903171221368849982012530753156274240001090599974166728982214699969511549414359632777646121333455166083758979355636417556471549430139325313947547831886767277902107713597568600278598319946050195277428687920368395656074263873627049824721915454624475106721533126626934721936617884885773238427373863458991249861832468813875685947220679323888540761296901170316605519623542226758885153990899638300799400445902246086130656070880574949006347617772286382842351535983281577212535134221423846418765688279161568103980083545745965275013729475158023458564239713396839470593121948333582980121178834368921725050216080406860508051994639895333420634289728818374714215992990436169783524169186153539904704101427620787019757891966864524668139174768137779581392045983075015732563210280052793433741525609646311585625182725182469158747861840787261778735291960243263284350644204398609835370041250438721192262426413909187722084863492703385872845837843083720597753739619480515567145549528581207695428066771444715422804668727044566582984256151715675185379050544860085356135401905676561170593966942332422991951300979299375849151582234323590900034365730637322320349434996690449237745151122924183915264969740617483478232769285131758287981631407788271027108008919620694180149533371552283843640479729860789849208951179060686066955827797411327247238095861478035345870454995422373696127740515110714728948986828967655668240671899701310125431393024098856362387576113602694972034774671323230402174610264692635635486918167242221639022933553803594405803758290277373397992452715003536407770746198446424146581008577111191791452043132459309409624863459143650096123895487250802432115083014799756272186120199582580778507608326114792337563465266835557892953089004299973138195538165191641816792745245099246528872212804301650570923037085666913164668132415289173110324557523126294374947433359184378904167703188440833939316740427111072907164603816320601584874933772970424324731774415442220852891357549794845555490200317616317942413555460819043310681188137323714200166369021275584526053560098310345073210891544416182866606319745453073068613873160464050525300976429288044920225024507009316629241772494377512244075155881162771837863939562944781731876342963830826834973906715452235906549064797018788133844230408299186408050223590692548828509903735244596481042542238647307006859968762658552840766145503861454762792257184849239331313416189428779554512318163693537175837394764930450875307455847259510898461328672028314528836503048983549176641191815030469673026268330945745562534005953566604740439680955395075509890881099117751266217420170066212157206863867734433446101954189847179457490568440549290380229335527621590658249004967455753141897072660433797028809643966196772498123049508102490708456632982544248687988691502671119087540783823132948991818448877955164774226910082728136396267846113003471962515782600837949980918227951839611130698672786496404696135431425877100186369703494669666157897030765712362044457015441859191951624494693767719622226354247618708362585120119670512457009591205063116764176797231698951706866588743172692376704798701309760725705371161626852526555492595011644665730565348079194711419088274648052604469335525934561745050483822552619563303538297375736361512019815646706353188849038840333057154255997075325330185422594666738118896704102917473172384785611406176969285833560635359074199683201811032766902054824285672814236763983859083549141594768912980635868001559840573648988771887015136934525894780839294949589628467036499899875966923350766419295937448459775275427082580748311245447006171815636621458366974102910890719552586751314455522911313616245287890259634058176878578634035853073369283031502134736567143291674335783187160765776602882382718456535574729666033412279725391671653214886967784444472832132888681363187509394668355508204003542620101412169136270262061603370598748270167797274831228616805120780878645199444498666661232365960996097859933238809042353783835963594210444335144309634706970774571184391230903735356326602256921106129928041175205418820588282565209945497939651786852700398756285954002384739962968514650742971921995074051146135289623913099663291992578119365360049748765912116912986325199974813028163605291392998402356626287048298622808253986057634421028237542681653996686703367180020275068331886472311923621678331639354132951637096386541804210922305498628148222812185964803078892204621054583057707024589158512668737291323676903155092968917828825725461533125080709407747605831249025316643080445726852754117936902336949139340609002203992641758113392122346165617221988774682573006271136350645793653400209289568841731258814966927956606680891711977962387505776405766271415581407236500827108377645351283930161995157147589956807467897012481745445929614988086485008526468730876009445357141174587500036181799938798600884626530818987877479790652667364134330500537393969535851902319580326216222359252122388050460968828473967534761403313454568398005636771174461161567330237427163677351291990873402389175007177639775530411269661682687176520204662518501459909793432612044750547204015819880189200560799802455697319637805904923988276577072596543636357288844528507674173295279064987626045366840924692939539615129405441078600079831157939579143392188967815290611036223162529166968810013201876052047473125298036306769051423045507077795821067354324709537848214652210091377769167700638430751888211554531230938105635457016555260123862039099238914882993468140750234796090856069368336863281820917571340588886894570735029660013159204345296976085805863114932909973521140137975369459967300226171043629685047210122192489890525114103866814364399605753346354094864798958042999277593376790329068164053639398400758580317139383306246956997034053740299536460059011895354476309324103996904871208078737566814569462188142491563122324080781964482322719550586812726899839624229544815457799293796995310703667815310688606577218105627784182428884981657515793271664994670243832274126147059656756394927385152409086669830185894582922382655517415114848689122961176538016661750788412489032426744290011123386337332900919544178932944354007079345034836102302151651465385543090586216534978479396839683197092188848145507974061749825639256802435222477581919638060480193222018376205180258524588584084146878563870781958741217741802001060476831232530036904108801721900561339805593894401866852876291496600269386552033982007307455336618477254830124276021301042762614185898589686106345217032569396582281798317827522833101787168860756403509814083479687508020455489615981030272391349164469852943118369973121005312826764360054308073573622312221828028355384744691288718567704113391095066731944457487205155596591626837982091814396509845369999097259885510568907759504130350847569663799780396167810526312726696908464814393857140432116108152220220162720725350647173344673440269374837120576669315328647080870190562934709178763638375151362039081792604971936833124384625889566143004632324597603106449601830511887230875694872710225796868673821263210854228032318678441023325702669926936229845592601261299363014535149011911736626249044859696815904294786239117082705756044149721009047145844300277025161175065107881045455115754173482093663255657141754139573467828627924331287041939831327617013318401831096085322356480886371208239899728629231216894678718543765007139639797707486260828751074334367225135850803152390536261138021944299151048569714967187145028258227936604947293976756012022438389752644525258336273636540369218539474081940557977546212413586729370435884750877104648959343028176930807270439707835823973187363329362928563853792118092244861758806547078935989597194875471872339618395483638249949748213404082456321446334759395532739421774551801537866924352128182212185788517283065443424179184497571597208756440817103012585472034171004192082729567302655644353794754726155270907561674344065218251784999479677042569711722137058638125127891469372751552627214529311043102142757261594910775441697070811581598721948805395097783179036432370492408550101902123836641843968078071409409734045002471676710995274553655617517340766166689700390627858252586949117902147973974082134475621101591359785671413417796028486930607045017372847100378963252195037201739305868348935994059920131728501781458025283034027118685170844206911707902676607634354976192087976272457263995753190665852357845709971952043506599191343953327692973756881282415196227020950630897933473544254957680207348165158978828993558718313649781828393030240792324689252116188543439480151934978639117919219838171777127032670880919720941782060612692601398291845393101531573403703043475871324251242700490791800939403944858021067638569544469633717301935925233878724704864835653875522868832606774151188814874832873938784802739276071413719856725434784653633951793253676622837052154277550516255054793147655354198281696272822498679188819263221907952404768132799433674173012753393951631145147045998723010812251402098855769873504769382820657459195736141202268613152174185735441779431672945625331174721481378682132327416642807118731509811628463852399715149793250725322821400643509295176438975717280093251248254263547604025014718436630903741531569903714223048996594187766965232590020996309114651136368846391852547216732832350998981960241553116044496275842789876742615393716651528771148841507423561391202068598785894879141104793122713835316907843941535962305891349933038405328229836817554308899875341443938372238225671203573525083609358925461121690001202153009954714017446478068933444729854713692801491446560930244436726361169858407846605445704519035571088684996341872513797346810493774795465330210348423472383290018025774880930238089628875776156096968175498042911605240231417657628042782041888313184333908508141079687646602059895046213914475570333172503186329078987375954635138050606332584686958724935156736450600490499088901131814589471457999009942249356893308663741053978406717641669279491128315018124822324255918418133003645837495740595017134323593718022323673910642569032052743144972184845001670063488469425917486852773644578103951597661167250980430283579579396523253904153403492387702883339180839191622182368434722818836550058482858740207317154309572871677962290042272144644878485280275847470830452470960029123504902327990330868369257124748431826210626572080369164058563555526564465755773354431265653826615443056529826470355888498025498165816035265190361646189553050615109372069982721699515445770758606806447090894666829034565843190845076631257404055050561437623176714673547730766940413879240170494081548061431754860331533221050253342590929205259391494883804596638596318754802712132681466039408792782498772342186855925346995727211661641693326394165710961357246443707562948838142707421184785896625426413716382147480276501657870199259843053537150053112552224203159959330511948240075664896621286837092831983170246908654363717936469551506634758813990952041650525491941138606295255007279777704835774367609369786100663812260915333856984962804058574180123362045056193607292957184664300922259845510598381975612575641321249716727203426417508369008356744864880116550513043847795584966663113678831765885377815408927478071137614487625781847454972139804138075233015021063147646489788078982874082348180792193981381467752735668362885555035776885150330037846618029355918544531445367012895951957171292982926683073422270336109597937375973074276282638581861835996952345508396903486229140238849000975654286241299271330245205015573308156845481841770686480554518683653172958827227532395927732910259468608657294480390384703083841163906286073618274380536808071651001121700641263760510787979154599572212106379462433077883922789828109235190817037761193636152549926802353684268958056874281706435095858758675441825092808037696737177798960181340049286879635550031293341668241036060631049132327638336743209554693349488731913139827151496214838155861471071493416424302477176868549584804381652311789564666735355501922835818266736025905933700370806100950136927686975911652103884328885831063791478292173964956352639569971580300521699564354212664225179016724361113778125876391340250793336530867887456546321205761499623404125093569938740242928806675204340482674519669095787594459153548353761342743965095756925270074488103882422462755571657166514582895554232887847092245517611791568339527830299116046170532020476548638618522994144229809316697285586616040231776810429106746537091355413497843109932396572406864636812481027687410701781311419300211740762581021482831488534693871474552086788268242185427977431957256968441089489401404006541969113737597252083824104518746788386673578461081715180480852102746567471826235529639044397939077812279577926237350823807444367073914359042298138923921870297921730400640653395558905725721531550591712369908296126208272693667912140041349219039406266371127684563242094058137027088773156663237863047343982091220757256356966988103211021391522263654794330332461907147424471744864350631866470241713175276976276498067880030623070788389272740993235163394911754899442116676838956996613485239018315571918025939601139554963381132054023724371598867535222284123896322535179546216317810374996957736472285677539520106771125813967530492257401535780477814213134770780684614219473561626644563735500676830589680755517809671618341866160404471803549904440676415667133565938870787260689655689868141657181650627447038945633279543761873508267146319635815824471901608068899766482661260061096103706121568796441842912735980472405009889354853652771213791081360271514406272532512814174096692079138820853215505492605795778742324496773968648450760708486727966319162022619404737433337527499689141512142511388675935437419670904093809224357341335708925881851025909476054808572166344704774260407516198591264998901450949059436846626237896228107614706285694861587894844613520935387967260920609096792157439945976941915556505845443862838129464170527878017462416598461501221381519901821636146223855580282291884057575163527622127780764034100578151250428083946452999579709914163092911494459531503936960912712027990675699187497133180027404263283639421461074115855804091491858545222055821963970102560937674584930971100037439801667700955055461119144109065380222383395617778302467672936825964257841421279453314122039676277659583411054046680210916676597975322551170470126637828444960326895299523062250736965029218505058330223281827800189682314464108858450205004458798749501471689565984934740299431462526616554994859950844050306819582190160689820227451755288653257979943219839276627264623665861601724691548910417272400777057460238729931458753855756661774006046748041649062258365171210818798460739316593400908867780015070872164610335486533197621032638206751164674733212787761662631837707594099549833803906076400730429616639368822267726543704774459235436707412346440452088935026359988189450224174374232326646551180810617736311726163645050794590204989977726045616546208410385379629549626793196677578134229624029818499460189585565897232182177484593093298004533581023222124117844952848880221162119083920113415321206682913289758771966202403417316090248244448354919795508466147943897230493679324053718460459979789218809456993380476441376023939694555752053210621902684765490376843203844080896882533868974624212542033805671914447072973422700258931718248079790488513705604776404515353195432820931219571352884563867180941287825893220594441626174431423777843260468687978436865205820685728708009357944359324206355637034156709791012507713280531608665828290428713753907786202266840621080570833988955675171232344564704619633069580202508480948517561391429380523504294975636418722083365166973521737684681154056806686931489065615730363108692090786313287895479450737680402356803925074991420792491713545384102554605644086092759195165923969020531197026813945952699168728435680494136992439536565214566340179917237580236188224907212286415942311195500523319561644568117237610298675066243558755315082487158065840737261179154099491123184563445177779949935442822815288257754172475374420608619408095372255893817443744040007061729818601238876826520646305259277307195946005498382566777696245188342364178464770116543935801801690378048147535937586417916690975943468050912497659714275537457127224923513540134920469482231356531935158424643348053961463654165150942396307361771258220024518934716653598658300052567606233080201724694126014022741025922687424776993090626151730182369840708050108354445586422031495223599927659340405267482667314317346122665735185388669451049420073994173473474328469010927317567975557925863922806946028850915742769695798323206465570988731503413062382641630794580748579496514718238651457264564814377226137495694978223109596396589030595434720751888628403728075832238609884478248203257883240838211803212662308097474401685938366810898170625242783393472151392760509754549796921324716533833345171552100228412369943753966462872824927942299748296522066311625275571145588721025195092075715525420173292621864378755804161625572071356385961296979381934715534195978673607327089926285631447289870371899340778395989788891238613258128619231810145371818743105509229377209803186940412646013788771953185058041797986830086785659990909535492718034261758987532891450226992278747011505377891645514987539168149828600653997034520332737879129247752504777221514620329425125468900928558706257207603921157170046547585194377175839061920804636890827284305401836215233669942588430443716843623174280814030857464224102633996083970317884134369169323802566802075085955165369732890606142793246389505579652875180531738241184084043609778029842619857460954292509223357358054221281516577846740432262696785784615348735191510700405218956274180931045919509708102335110796652880253983499454035429436148542738099447394774956356194695716483007600088640264638804621867829138104245009176300655865852908576130036926035918115926813392034548437216911621802056053098887878376696969532494962644020073310894828368594839505441358242710268767044585275250950658472818086612015600449563205930379376614720205838934479551372696823216126999516833220874792565449850337176692520051408347448124704766985455238993623592578338782954926541403167527616811563334799588848960367672232166219529082110195038552788251760490919854677487573861961180581628684742193806102540667443608576541327962179049513729407593045532587208379081458727684218878902594038891706131149637574911331376664510458867559631313412076198035087008621010270403922239225795735956965371323080736886060397278623834569321556082566036933911519627481764340785521042310677081074240041540217901983229585732310606793724636939422806468120894419823318200570834636635180372090180813169714809875688465162400282451056861136481186903440824390250147384871801449369144421225127706794098532101548666524063233989237722375580705939911312449662814602446694907643479975231755735198062184762754531493400123378841343137041187531468103468325834498265586131512397627002644154921951994877837077643040606601553779942154853340914252771177129138059177939232405157443167433171309557857222694221199722942991256015137562898815751604152605826264892753173930828097526007993516187133458010329545979304777985184814993593135207318879140847683477363911159082411922511506835840324020700823331668624168433860924142529541290642380189793148443769571003311993272668033299986905045819540321910018565408338254198473751318079727438021270232923556085817589223702653412707348344350561561061396559488630365601834321384180518263346811224012528123476196051157104621545048724655407509762846953035901490168807450105626693216435590548519088411343352077358080399250267186446265903318855006241765527667293503240873145525708811818471153705989845529530548316884847763279053940812121950941231619736100520733440367674906019391629007891142537897696215642039219943688817845350734347350773959042080949209947841107225778059796460657060914687678855873876003125189869578013406209642729430961083689318059974960364083408793550378952366405978445407316769768604270988464464849594509478314077164681013053945389758554609533051656392045062999073002040547734846632618578166772628627775928788902998592927619039126452113991381016410809215267929322977548206477085991933640588815870271869073386065695297113971992975830977425813057815885845060421086682151619517662745635883695888006096846842334447043880415287740519516586615949679333101731848901169391696125108063585732895770677206086891263926357411531225050196496659535580439780924078269292749687361228434676139471527075607863755348657820031519769825048678000556397908840202577359761789019000214287539791758731018742163518352070167946254162240270858471892574395572304471867100894342882343470794696311712325396476312338162357037691557076427149031781745964516475575689970718927228684186019730346907315037996202418628703212740620667997581576953815532150273063693850077302750156280910531108380749686739624087385281110121384791860939641273707787242211478627285864478032743282602286045573394542297778736358374098755562760532861649880995623936856168152129588915390024060953836274848312275423745577755948878887936941245243916665151255404881636103912234834844796311933220843510976668293234297465115380838610650955485204113748445038479121606276811293238778032152505059193253032402167214895657918973001681089965219404177626828120090506983024904103037899948912107029052406639125591795445154812833421660249661198429375186782313349914308883582723815939336519112750418779171047967502324863953398507633814361063534997966065983558983376651515490103755330898768595148589091322097837142713959960283237831435259142148508271995095987712924252030788585713714650220112973068319293841767385381113112237816393179112622278067940305795955784148419236773801756931246797397084620137253371612361985200306219709080589870310090193755735051854413627303519632629566438726689481596430693329620961899816715598939024409185759861932261158942875342696036794497942844417383587228891127539918897684656372486990374507530290479109727016783971688434315002566466206344897294927942804178162322522066647057765205972603254317606826301278252071525906383989288122170226798670892652463014301338107558791407732401310725019694053498403706397340315313630584423108080740186195324737498599262812095692162349707698822948884511660429242076717490552589759263962616859320749998199225643102349564305619003321855204840184219788806428931061596298138700798868503384658332739117239209672009426766853641279858254002825362922967668980660983570302065138701325149381968155097614842431176317757543587292339129977843251372552215016995024329646767984938953055507784258887563415469838384469145304410985312208537593448500351989253972116637976393285544256388911970133578443666186835354673220926719528505806634379176150440575801106337005353173712569774951187221244818896823483939256904514733530127119354410435227826825449253646483905268145662091180504957955994114881510521779626189851803163393659280516057980656830699098729379798396926327415815684324325625370463830519818011975570954026610635096636910476359331492680397692534822449205093975955521434574733827900151032411023595390211043061033249908965139029240181043900435753049852992583100131697104805331092106724000423389897142247954374376370720394495608561029565366589250087647273241195708476148717949009877747676280698688492022418760419549697348514211192971415506612877039990596819891506489474531214523867140580956723216371709539033752405439716395544274084026712939570842079634846268685892870363287809430015853541686224149618708071607190705556518753804437381271017995691396591968615942855953470248578779906866372059760351389569614755138509597108741028363719718217241791207369971304702108306602375548041061420352773855978375117402106691847470824744841963580307230078778452173213636824804094391704805155149769379700648151724453336037144134515812944787777427946900780888040837029426469186836093185754933146847946193219017214299384063147741158489544078959705216889977846628171388458089376169638062724761473209756388288220130015301670911533638585910531712617453914290220762663781569741736691227037611121152235841604279428896962979306969405057256354410126253749381295966677349404234199464426587527635148699353352744082248753641731502770522369762030170241921868800498041324920995460062877591437335315389965456609847023526816794068210903287872516659741219092490962813240311347755701858947183778277583889862610605487150205566768852145266317091012123707228603595613792724658504987924992564938858920713051356483113691649580619146377563908703416327500738992296181805054569142826115298847422296149400234464306089226123424984763937917366217366054539639622131132707370996845966709174549637723914551285521276100168515820549503973141105029780721747921839825420527595619937693902585116745495437074484207886928393935773792697721161979316211470417613258517958835996837201679720688683984144099606411633828886626487773486162900391175012426500353022676579810045953520209848357546418745165314492736152128238775549280925890187109057049591650156451697480412556782522514365730734975980021629633030288413029234089745659533526033991002799098180390106078823430567401417385613541728485612111192355160087678484084126958992713963437092006434677625729677838214265101132091846669904264702712960726820895287589658223155553587261840299033465179633705298749075526277411075725323028077329888475971047198796095579348251169224232777600157339797138514189434893531221861589309283441979984380499049898396948575115808764770877029036298570587787395741777703832669356703548217118717569943508831519121808658450658371862596451524713391448543570381936715424361427668199783726650477530982087722719901012316224224692516745500162669843480895190211230404593568185905076370048934397152141014579827623563389587575511472594248704646105635719612486309827934219432840109173881661831806799450640669329385674995630702449591200071571018666650471136315688452403313713138076613502352201186984638212006636347030302495963655996584722262236356235750304581018000282300443553661753768718570047818637454696833360557948171567721733634710624508459727155514264955263803198794023037974331744342533016483735432563067587001832703849005957582101771971951688671879320920382249172140421517866890525599877790155231120583158642144137226629741740334557243003317499944750251959972824695939884357129991631696403720085117709544612752890242008879355444542932289243403393256118821007746313386091020986123975117860939499482613434726480751411953390777073860046810251065442036971314683999467031524249511856572212867766503602802541503002618706244648768142867919416278376773368382744793956573480385780065755803305696563086470538259949773182298193440198698388957644063617138695082745917368610410128449077311336137830307145447687391364143028151634875678201609163384390455907038203856835643689382490644875678140053398983732653568084786835745917529442963034737144432619832427957241821467145184160878827175746649432675504009181080277935887019300751055602074449352264897238466393982029258185620590671643997458645686251957132849392757961566251701642658968427868225504106962177461708911302560392775063521621454734580329099545334659657143790645168737091428258146782970343914116911811952502571664924631565374874187337626191164464080282546738290602106396005342174980078686328471105455033555349339748506182448761051968723510721587422143684002487432937020580441380360903046314685671811581048459192998597325245347920507678489511689136222446826600483578263757418905170603684685393766206308733113329757967126811217621267792777326863350781874671667243436549978310122553468170938225324461495941347771606391419599488220941113949933184576196701946119223291689634075884944056798110482059253791919118681488825398125681923152873394924787927957652323377824681286953789406092769910028988713858773961215432524951722418856553868714061493346287389073309636270205123860123026903673101623050321767459627985913747249396152088604937832846417931520722542239707478822120017423238377481525581616114158428016056795739196552276922934722471061879284994269731011169995328515235058620579872482572602450968459220392798333382707121106684113007545983078759506518550851847329490845537608240590244653693854927274104679381625200297180490918169807514034361181836314014746325240918306567510759552927612122635166282004211484469392869360532197230086525197822681842312063372465906058415775223989145026142568650172417289632024133054866972932047153263901559299060570493493795118202579711472372226211039110342966570734419781474965128248089353594679881327480724013566958516589799897529764644961973229036528494115251511440416209291788059304960445811941415641551376835705684213017841681974029219576403049366781482731636765081637964737130057818882683526565426810758986389726521667659259304662547743376638100596036730201448106036764402126052983104067974081078437660400265025780953909655679804667855981624051400826382866461585461125694242713035661139272866544714048611345694289418672717195108347952128820963985555215728826017784349471472701994930596124152779817945107821432007605133494886159782191322359940054540869125367995126476858865101918015011494928371525102515844530189020965620473985039386525034283907673933117350471411859868074239835391640533970907448957309124929437527200634768163664876520602311106277665171634086414447228744376120382761504325035100565248982221400597215964050771507064561665924586865133930545961065199621246173866645658238050973940432911482753275975328665804056461485242232946958500007492024879234412468804047841234778590825100300272798036440166491016457380003850502429431017256893543373874218135934147897694724393571501666984003114650726549042455548557626932111766091357885458707269761711631154833808130125502127087296122999716019755377135276051187171408766202053162942736827641110932438988478022662745768459108570720583179704402696626884690782604670978878472901971046510399944271283068088090639060682022237260564822275205278569446729274475264862437966109062379054526039265591592138464500668066716884106874299925633727086548334995625398932986759858588611061580984580097978673538206549742685601745692520830066459608155908980666119693761125548429934247318491828416705661039776369197450745779587424977207565565309776296609807305225335671095499730509649778227789294032667981611489572201214881204299872114892293626599228869472218988657177189270159259288071912855668118720940474573854974441048448977617307412876451223742366286774539536353278779413807242491407244221171414086732937710944696024207250692341835433368681267308589833986718711230937600246087446881471770063814951769421493245787677693195206797513885813902452352844360592209467890649338497193342230855977963068433493854343524599557005089923535995146179652302737098502550826643038261293047855767846412186786645297131879520013606777374273526978200562046048113206598703999499688580338232881370300562048631486796666775696270188260303404676986224453290175074254184534555465433170412846671808958560493054792702957220943594594426327510493723628065323748670561669702147232567798831492463000518309730591271873424978744242279016933995114399021034844868596540500150836196803090879254851333849606083065145858741622828033415652258886410201201465227384379216206603216166194737966509242570846706641415288976927695563056842241271590238357593962200676868550789145466875184810226195670305334110426654427975580378813093070061411863418217388276675155331017779940189245948076840217211045712368390542802698687240497446392188908902459767655878491741387471900843655312110545900417750411208117620928350332324583706180817246592081043086489961300167026135727117136131869718100789705512133003062100892841273553233538088410392297803594596006029568753532429927541802682622758834949908142855822349241664159356636465504098690687258390861551508895388773624775526984341880962195329771416157696111563101947598574662289357825009842870663939909359201884815326596754406618539858173347580811016413292393353934802187911645395730330163573904692261045248083370694726755812291832373258351697055910287355320327779053131330947720934785711730781310265902972835752813175322487284726857736319762510516111562580278650880085054721449481884578652797713045329004247111026075764899309553917403075004515414588125510877394559512039411445592598328026839661590285340666890664707020688351206292414671164165908475982424576614112830953254315261906579924462022786355948804414868110987747927264707397323429713842489782745213086993572214833170407403023639015835130197476880348070536200360698522303492655882792449280453589104390311606289654788637043671440507243864235866953840097666635083831586345281563844645272796871540329015093740881311668374143468771297679718143159723594932166650249203079762332733081953414672895488190457397636543877488686385737723594080012591837808426107486519825908582525602201127862186471048980894499732115535800349046123320448056347825656771711593403571904612914294649541058194858471151701648192458135488356791121810031771353140376415045188437323060801873596850905314701182497740710212622633783460496778212640735604042453177916695068816861185396234301844429453630737711875884312689392628122653958200569638890165041418096144558676520988203250455126307729826043330893763153413366094402429364265399557442183049992240073834752139225825731002604881452819045069355662475617057724345078483774382289473073936501983185016009498524520783135402764278527131145364232212496697336235171593514499930104351393862955188624751551937141461406613816236662598655796841950998943445700511885009935606297022879261845882659868934855401859823698844822361283501423564024503458965742954076384092245331924457190209853025519263806912885500952142312144775203496023128067555366426796805726744989344448182310523467854048541353677972540994933865791455988471400030325669202179885155214583434122431690741191473626864254524788015552701671531872523669554411259072780973616952612112726279287531040052908147778371324535938357625953932183774745224959118612720573257482557237924511085892387513452330179742912640469869053591153100189326521640001946139149060426288669560702658013644271162412432905877635052700661042456565236141794846259836582527732709585252743994427154576412408461474801832161574843487170464723976610042887225590732074155378640327323726516931082984277161390804818395234276690251180511916890199153456679895013244912909546596338427462813242940402385209042514879379465526281639592915932884465601038371734227766525713906189084963862157000005449563730869527338797290100704709742691313190995770576143916652591742246384602606864770812324500536825435030639762113343487308677296115721652000030933137538335534999390424438338977950030466995028307416927911423925190866006594972522232288347188602243340674266458328857502505450646244125395219520389301133520285348620864472207084711279328242569420555215799185391759814173115654247607760485828818395688127778218768898985368602531381922070990736608745662305618186518089174004862653265636283113241170751066943331980813771523640363044595801382664605852106086194762610902060361314815959338666936211910329799231051529051689602919585302829812715995355658250557207077800301782460299718370549782841595308933713825567468975510619417125185105171007810147271841549700546622488754506188945633317641575786063867719646693779689713072744932868917727278832604752933561411840247498581992943208123122370403465821941779156415359025895097501005134522582864817190993226280638944233342478461631104835335798483694225172092520061198851432755966411294803162018729806790426223981150866986220751567997837234129218325125794800727755013902333542030700838667342267081548361088848466824127535448412715463387771368340277099086627956327933407768798342783780004047266927369191079935400991270862604478578863125311501900943003288126288444340930325978092266742122722115710200124756011814704796001115773401391460157453802254746991027384796307166405683491579591800454976992896723350848929123774325626404111329586593450474323358839709505389934517615715766541672429207639263845220895150574512055793965471284090783713104351953399007982247030137592226660344447403214448726442828813702905358174019574239308998098030564181618827198947069752324129501720775283739530016278597483892090649764565672274551357839103839802465339552822198922308730118325363278453009976987785245544287790178966895442175775414579244666977339927204401648841236204123208694148650482339921673877373215125652228877311216195607700736708233930302773360709607875051275374364096941405092752684617180637677343822400495753908250383732611729058528546255497552851956398403662594111417834938837655513935488518278940198405323046716877462173099606923237162231362723867902311838906338937386246980042438137489421902859699725944190876167726946930912269989062021141230533742378663415851429946711064102439776479161213423243203971536759612422446293011938201017174747905345122378170895257844165185782405208865649831294108031184745328731704695924071781636444320064408396183780311909891405605872386131000953744681829814700296835719420477727222935079414504365890946344266077778062541309893569036650799152780584119585880581763629670089659362084402489569648472196280977433435218966763386654270620029298423656191633739611944588788421598074500552582723687870664114291720038044230498576180599894554203764254751763818609427115341729535574505503849261502497379731213264470358784057717040027468508836687366518878352611235941186026103214138578570633055130983380008265939241205112411647972269657296272834220749306098931867415108559541681430947602075458954934856931570621547880096629474375447085845102540798083053488349809530761914274846287844036900744193166002724704702299461720363124906990122138037649879011344323146129645978572719225209429251458674729040315883781222391669127192869100252961068370803026109224492167826636631829842254928222083056468916206280201537918386190080908015015181245929510653507490860301565740139614818207905078688920529308408762193078339858647536479634327864182049454678517604783858773736857756728749542148837642413342475572066965351436744508346863399385601799843934516933155732194335183067389149786237705336328103794642842171820595006987874202216554076116496893005921311686493583436108202178758699293301135373756870961874505427876101938088353763167156337553344072977090357355485698621687960899315507760782614746413589129119412264940223849561769582678422542408119175992666840239951414021552505622683381868553071307193568235460976817241455442747358479541278656008561343794048417391648949833966749294851109693559453559657643848912391828626432613823505666273631723229740392402282960397808832148310230840341559858891653595926122356865397579199309285143832937536629687605253765155644269168942006397499713924612960204142533174997631132850471550558720949922098438062802562647863878675329630668535872329579761317957372631328438716293388266978024469118888388786084456082669943358433524858836101027188209902650541045333811690257076566810615512965714210734192588424567135684090864359629894999188319738366802854473345247131707980459243973984277499256565551331924827893377255569572173929072042700420564838620914873228464512684323535823467871112893479550921076388900393529554055818104085225582381178143106051691008661460412480220238754829942313554777741929864036728389403632769616390673058376345558167622800782557905141709469643302968162529483767842933695760851515633280899976779096858700995531045883368616316075530970446388752911852485062288837715420989256071358284510516617611067982968935441873151941732222836211317744068793010753698932344639289856363968302215324944744182439452606690330359289765656709107484110921766620761647277831899505884394563290381076327168078262428060526430441142998342497367885116949464141133645580439336109477787166869036757735323891323634559169427301879937155847264389957738444162314578856655611993485620397891238345714157623460554770039517499952190239870626731870798683762601548841037784009897534265621116420355034918834711627790344226489884352702079113322912865645169741939325289474541367523010855270309546944597752093492241676643435318523667164825351745381954563541289615173646164950443701319625450227751990349669452270652036039321798896814895085847863086831397871147963964647479292890071855970140148667219927140117777781293931536118856330021090952113167119099025440952620894929023941051817061742559243041966760652243221202357605533810979211741089914630484683734168341819280020830451828111210051707551724524452650864347907379642755659657293054144977090991762700442212721243275175775897763060133187338935835878462558739135675366849870292915170541070628549392765052922394242043659773080460505938768111512328574244500899313046505419385063503688365794820535837677325918577843987043441015956375550782276707888151740536163829371993339705489176524493690430460153596654570558511465897869425510097354648661092453812201454484092329012958932665875143598415224928400820701621098546289327530614425233788477706852867305938716960921117998351506294221488893779101668351438863762236222119711218087259362815683680056996686598959283319562883327503384506934114318952591229798483179245366190077475493618031521276712065216175510838647260014332286449179704751859758015353984527621167533932623241573901104194738393449404539123310982935364613949861122362783335490955562234080850316702577621407126310730065585711561146564700991289767652442278110883167290043186601061722275353255540364484492736448414719286462044109020457106805491521435515999464781839235633590452337016966967537146246447325766767043531085572307362719267175702628218589315727284416160780078932463685583222287588367850871904521948659460454660291347912008391767424029468354927231320326803504301776851281773625880064555765954904631158110672603750982083326302990742532920972969482930504357168103244270269731220777004259718209351559835498695646754585522013836068367242008496754313727746353722193319840868092948573422567290416071024833417020544796827422425457171286047360776982588526229232622929294492657980955600557496654939157664701630258896576315401194741647218558401136516038215576603168784573243191448922591074594052746638612413550789625763642799377860812148498704876182509580775481691543455226212241771999796891478589832008465364875291247521264033552252397007229057554426561569581985969577751997666200665935532772737555800283055811327587786358413471674104898703783797491883453554304336352903710571264791910593948176516512042671589545955721547454806125298643003204204156458474622327283906042128791296835740128492083391362256932399966114578575128734106163247583683273107480054888491543390279320910770181360248816391286923161810908637536502899454335780766586360390971205276110849933708295427780373801955144488720947801798841126548535303781953959192897381618512688206762136298313740770447127771714122045616596461548094415939771614697699233631147422516923581229876452878104511645586946665713679536872747995940724887848660483291091564894714941956612766587389484990286497333871812525777804535698910175864341108848887684340866192320767817869463927367478195437923982924342296711738731300666614729093103933941439669378586757130115049891904407563331106233011853601729298681805744938239779301044694935047982205552909032207663055341089745452209335481672729358348052501024433966347895817241642711344718598424377715550574159779658942085314521761998444531570978553841110220212101517197944160471389678947637862845613201234999611610020357616370373361590189732176131260541023669663640656121109242236080384987518864001476852406149496265286015283357793935050538386250186314496096516614183862722797222071059399563574850749990309075185616947725941982286293940032948800857328680190320268545999053771076732912674330103460823193276522761195146125504546027068985208076697393009296390488075953699229887891366579004954298413859885996433321723146930769472595172477610720271099600978677621063140275217251390456101088143012228275001992539149670366966487646289103244055183665819196560185570083703788719162374497631705564675596299823933196189956164695233878525688255624642528900914920919185881404004314818459257810817189121639007255031223750886674661681725007545968136268050872955801443664370584637249773629714163477375540465754352269988859676385225238591038342874867753069418784923611347956181524029418514464012688455576711553276830126906887800930444120093117721752688621489995488069391604023342046610621979716426346974135370308586440536724633970192708918744930868370411573811743572133743838500685183396386618637071178126546566960182466031197470098301262247388983664935919226608376479456889442705825291112617133680772667904250444090605142403500254105415944715865013163246105535449111374938631001567330545046586891517034410245095398497746562286735209912797286460749726819295526229504368244624974797664083753171799922930569189181842097622277708726189311450476788811390866930266820835207843350435885447692760722630890086548628631197995053095291865664610452904922458751946469613043291327016371047184964018284964013482566981557418616127927555752522144564720888505801299304173149738647683392124532435096150594367014161284070460256351934051881604276860009292222947677344532497767374636652726072582097368754578995100580154945093159493893351270335792713010642420774003118041005833674862415648658650369288221054377003528767269936549468653109401304366004374597983198460053873048584353729194888553756073385421938857826057910282533316048432732951654143617924431526103065476658091758764475632806638587118305540273080984970249035964118290552520199958432613928943005914802917996777693117501080520063163747188782530837074965696468744823325577015522787945751630228813164125575929050032092013921203480813810609397666806512689256595158660211714244477447478379230891837392705066857487985585922179441634498893713584125381226952409066433599331575785009478618122595745119305561890111859693662357261259287216713229716914116699942179080674750297022367821780224782607950375200401188530086836885210776151346614699005431822221113502762893773630359296924714099371759261832666774091726660136986550350404298871124789427742765697416022464269943454295749086109273213892588803806713937473884039099829845524603077173118413364984192726147499040397978620031728445175437351326566624657041794477178942827937499104646449617451804140520764479675663479066475942907607294669314585598626904509024992541813246750951244910001626935571104337935163095219410842031865909544901059818819954109384565421083733512891497629875376982379889768053841620559281999454355850663339874886313747138774686258943974034541106503801074089412617570340496919700629700230996875247519238851858442787153408250613159701679109050142802867709977399540579727973189756469368843524633135071812711149280102197046412562542332875870257604505089733304425578225032113414389918752999642070478581312868416464176806309177544768284559081386675598050104618167887777289122274079723606103372145829079966407440706529005774422013972689213233807144350657554791186492342535112606630960017646062696329923664053804995152863687464738248927811886219865421785623190444276347277019507361534577329325721045644624152132593276554170061984214134114979610083746560839896408662476657799223477120235518134588888410694788754258672391099625439419943179072628633984800357502624307724465854030287082708642649820813314300244032271437385882060260277837903413045301587214989453734683889310440530832160386420025639728437680965691396761711195977181936937373062213400665145256618213419094739984955877079069089934019640782262310145659381824087818150543381616101624499504387787227588771105019380451558588642666218003996663612647295467956648320235921481761999027335340627319903330941329875450377492110127263284925485746228401417005599256039482696239462494973694088042597272297128931719962195852902431302485426198658644317543256803767709284739224920631421387863635780312848715156138220672803350781172507134335060613869386325583186952609161610133732407338592573014586061693489998464235788835635181910278078913337380279773444825590597898944130337401603837575207928033942778112422780202147412689943437205071125470604891677706839215819095643637254815283191144527438455769058722633685411092093878224677427842016769869991238298565117442902484403622162939313220758478502117275318667872164891472677432051692954961744844883664426103528570984438031971526225204754405470700591429857320873041958248832491181023309967171760850446810112796484382008669747628093005511710883368635552297975542523218770769686813820670173902750533519632881697180361872087854109416958873582618815421282173461555349897492024111712204703219322259595897262793383218454498193947170241710067549150884929893654687219368572962629320176226501953916885504491401570393719494413945996730942836312481345008558800565861649114725585365392531295995561888275857326240287252727077899969863562014441403864430941767517884359091608101100065916260084003336403526326840028573175036174327822418103306822213116751492464113620776306862215977759554002771921163373326125595486606450866273392061205071852909276598262399731891584165558410631772923126689969040497690064721684815865657557852423227711634357594873423777886364834126512798748927433994561593973350129757037888525539489054748680013111399733022223167587520096881412814840192132235213787345026341385440501027291040942568193815568343901364462133049168743258316298998275368516718421105341864828094453993376626983246109049498509740923879585769027239321972855736679182168779565864369499126567842791101980731262478797818492812218371674752300212726457346457677018025823390528501127597292415343046344410452023244408994084028648400560558055973815440821791272947603678203610088560193720529807465818647538040970664184556891674041545203596371242571463983433221737957271396480336583771118637186155026197894763031826512363444417702307253335208611272841965865080772038196149011956022021823621325568306709804582652330859118730302038125568932055889222812455320790597559342972999494601062040684095251836318790233714232906216702860288315846090386567301571095490772714483680673878370972827511218097132935088058273760752345610051575287586945299132979615926222934492919278611094636959416410301010041191545137530335976143137161636229430976046115243374498791889937556150959496757054059989238024067762730442807730975664898513887641677122231202699200997613540544810315967062384204873172091868123540815561372823388250532314455384651654160835479122287410134957891008706031771813840860774688664792449299545140585797607511631350974898997802111100569952685064143682480258243217600043425560954625103502070667796612946957942910366675075610499403590116908447683744384403830390293831879897649491539786528165013908563485545442234336193950631562980445407917205295983648734474115034318324300110802327700189643323393997289698584682830310355129208862001999007288758181313833639905758130916372560567676554183495346811920246460448488384354788816374989992515318953962537965053013452498411801652441016486716851900301077042134264563934491186602491635034948318826061728262572340447308920620782139908348665772560099091958793857699936797277986864418350107958295146180807873621006156712208167782533310367205785434156830650843606611960324910573859971992239127126635580498172992901122908318998820983526767483912330933894497876356704219369533474754797315694480433215491288543260049531100902276897605945479587120837206334233604744904932179959579877948024458602476292814166598736413078845743990590988559994904428733129609278170476850640451917446895193646664079403058097513281324971427837204266921793153520440713946582742637545660477694805576022828010603972790493985737779204452651329038784245027263403371164053211878490601449062211505879170900333147243140546068468107536941987381689166578742567138490277247218631422139023276963654762662023391505878942131930428714426240358300386838319736732716128961967417392835323362523888050457700451229186381706955046443163694965735118362442578137807242578867735731998157176831805704073994413054616285325811213495506218289192753049347066305384438853422369943798815371481413926462978670747363058049329372388359075254140805517414536755579051388534954637884968142444792629676749940586855268392043481912168663145573924768510725888647745711370817366834527832357024113089983952391929644275506024489009977692719245305743445782576206824494212528260507819906454840982635529076095413163373818909584479866853767814545809388308681040833519829143070950976226800558706176958299255262098929986391702266718423576066357252860799546227101399734353306916543968442487890210882099340558171617000380161618979580568256495317170245018796090123874738983272245676816151659903335493197108867206903023790549055262962586658286649298233349525888897131284652977973862351305071070059337895414214049056740069041337294111197696339588574021703808950731046628422100730480144549040497674465441969659651053223721732844428154984530670611724103261258278197659062719481662882920556207285447364417940238409992519125029516387420980258180233822962575702071036998448631907712683440488195039702024027894990783552061810255180634244225070118369549089998375980092143426763123685211206959191705618671894180753924573965622136798337713921710279479188442971151049648225476383352861446301290975090093668276988854059597535066924055992345818282021176980314612739775787000465917134371905148270656514348061357850391496150944988694107103931682851342105569547334707734162011482981387600440544262413005158583666184505800927208733374849527785319654867743580045528351738574742001150100454483489781567528338985887943983307442505364816155095215164889800338298055338719177915577042667746138405372024540845086971666522177686274496538375219898196892535439095058628000697264712744196509157369139809625895013913488146986268980449783101421213323268249624047937321494603223990921260615041749993552912762738017064274492851488694835118868023836078475766721553999648567039028244595495245532240543107694038639559018284378973405340322132608129280493584593960573579043416445058649183441506312998709812083380234308421140796590922983027153188331333045751929828582926501962214411573523822006240880944117655370759128266294632306952293846817662808642731809814776563863084990693978618656639145708164937192384180604438868688443413655025472221339819495557428053111354872033818482561940965936608632189606943466924365978761858991921190889935812912442934854598275019344753779754137609174474371095879446000860787887019645355551899796247558032424069386412482386575802947688435191964110073715300715412406336268760353457297595740684620909866916768797362436681690261941751556802011602329802005595614889262148875282225055375125040691648913582837770622847793082072665358224626771904057992308490756214317708480722683952088328094717758698752859820815464970052700146856752520185279997966054813711669664316070857804991302241990526699805457827908356393503307776868903154396956926878148031117904583448292758938999668810187060834166213606923617952148382612604451671084759942111224156539970634678120679785529409210392645909666038288859469465202649873404615063588280397355669009789436080395768183320116498436574891378101379918957986612758659462502547710330014023856450168071356083445711809114366270956111951400548259823161006328698775171346133429555385125561675050766341456054838801003403105754667003196621784604428420789738429143371107742305364043127723650523193982314526708759399253717619307731341886117504821208710796225102263279747716689421703555665729323299509369008900334823252216911393607938692176053597581911762136540626317702028650663120506359238762420384948805976074051980849512168268113019708407247386157118461569103303893061272759452261404487073007403021051996941796283028303387172423151507570410995758700867712333357803957115251086668482570739848399353728739360838526431326410549856055701400775550796185317531207300939518955917301962619355519709172089014566308659021123828815179267593857159086969239419520465135481684586541894015648353399241633295350343856457153398427282944854586115931054138006217614954484189586738480549812853646158904891937660689865706776739826580960677985666749367888010001224604965936726794860290166678559558573642965229796575052255264677648652096163942504474256517897938710681830398911446360803293408230085310488266056966333689554025868243262053502635546844308244930992825970053533287464611934370632408269646859339488592857395006951712782089142532187714394334337251895560414827088087835568028639789195985117273072367428784207230936868193720567455270939252864633578041841902141761193780209596912885805771041780711323794048423057952272596145152827243363963951832261458622327672190202980608179710295864981440550485170133788783495275870747907789771655198839542204495701577923260191861902386970371666894726634571689026269727180925335638091286899817183796318409579797436847120536825781967161006932943791524207029736277205267851286733289135021357903316930511376013555473501686206367187686862050271973774119675915277004277518423129863819771389042423714296720511880959145766734497990040044412487540766221830298302084334005099204375502821600332088075644389367351482813465620312758634601917212949508124840477499230797375155102645001442811969041995894803397801372852218426497014757305953063450733578858336708402503703158537192026390833763418431735657729806163683215314879922626027972652167210550000717792140102301618317937327022065253388199649996484356107771228426143783431502846345763414152124404497961816013599725134568502096860426463811299088643309541673019615189926663952849952228760322889488023734521900915066611423489745947259455021945839974010361329628710382700906162524957732786888042342246496451162875247083547689991847126309498198887523689590094843979581658909504168418594348417455860586957083342597364258238958138046434116218189904876346820161431076344052204861004361378510831909768173793036708787654865700347515141189755079669291076898076344676832487794805942090697755287790793248038249010479089596155301634375387068052864933337064614249135292071393806659256101186905300946006508886404880249731208022019896584418798764728063361587804402333811714730550761325749985216083560883802105477458667969023511144058365595597212153896459288276577131843184632840860324343115584191099972347823895677569947730846543749928551652335889263296494181812261407482935412867691328959600999486437992282227860169238586864004873798309900650087735408941267727728185449071565839646694295424100134011008199762205136116437768036762539779243448349047364488024006517332236199812748317697258838718163170592519852523397618716731667432205264428051670248656102127157694547967949248656428578041001360409971985885130896050396764858591315405245650671320618339162028980195492365309982980606972788800511381947359163936294838318592962599504517044289124639080713918319313363500865968547555539973675202011333752982934323310233433504004130334412625840864643676491923044000449129311793070201266198691969895753042070230764657537024492944628802977084898586681121452794516512509774109647481302862128143934068711933080909039466642786415241432525045615666132115018509633042908086583582045160922373375222357490619746124839227997937758922653497841490973305203428804881017173084844541871976119616436487212232131674419583757167450275021507532122730908937590836877881893887006666705098691706471238321542126557902694739547178499569923826828535767130875954206422174516321251917180333525440337913694730854245784313650996178996327932450256742357531983356435454266020171580413819167788542235929273140813955901389697035248747957679696964871267393875997437017949576359055732626279191374994869821596170804572050610303539993044453889463167506101581498604166172601341564414272581613918812703226989217205186182372802223909199786681496359515730655486973820554224089086800636036964536369450548581459505378977105375371558344353907508578938204142819493066915435688122179013024237867047720751606801345255701006302493652347039691704082769942241031236017035462237219411558303741530467708938830107325609087104997736538777121497422451691124378701428154622231815240440263466372053493655325660717248683911508131020773017232718209186062778522320753518919158612147358683806678240813235081179479672624368281356221665030828148602298874372515475916886915059140192277871698620653918129198736213848318704053634758040341389206564634727755861874069483865591731395085142875079900564131743665536386723043959863202223118293260010463466360621403954294356425193612350212611222175523759097365744942820951464944545114523839748456033213398523992039744801070493488030030139374271600602182957141690966681310034434559682029384738404760102533657893093716966409188224620637442110160007816569621834351462407199298645989115990696482001295139591068868878937190845739571291300598213404864876746023214604594567874693968838254962405118306913408626439123428266366633377134253771880442007570503667833930537836249124396598652458280627312271921004847941525338868784885736050980871749615433949820088516325552107596963063467749798294519163585303304772035865953536671807042106440871494102834062348946544625918169381837547804342741732874025216711608122567905883429799571359468750659439319216656222966174479612133437694333660583963802779931648497005201061157791503999955737288042761402132212053050184475915280295035892081709242085054876986093774319168015753835798628337785075687385577215060187818551152101020356573329356882864497390777185955828157832438408004821883825795431037744276918631495006440252570562176630511312576508497165797443591432582359131696092397468728808717858705123266091841329111510279784143349844934671113379195051251582552822136086565719362991391513813134828763197602705984063658432291287072077078994286229758580855565296356043618723440305428062276310791279818659482653705234386113029762841196227341972866542073915229852659491867078940841190934105332638123276135681675176269849202570311180198184895623607216913806709492308753998338678351977255467445446425388628576322082613431738157039697127596391948287297422395467896211399213852203807479618238489330236368181345725392118862297738135212799895015800497109737836127413340400281857481127898787414366987796951271947127831472796420986880110663884269073560838318970552585368075450960498281933443905011486163127550367308802725760558173876739477070524913769423002675136973585454474616446779897412509280272817543581970423380862529258383547332590997332897018622386294247295657346175373801263078703230164606077980329509231930766825133067163534543237748668017861565516434387633269951819829729190781130092065883746924900770820175784944470988554379943356420509684914356386299115046772672088657223850751037987719379275073698916381142735982336189359686732554054203502388537304165164044294902106042376303874194391685259913515378376147392931160346031639030906955094734322802134720410988355949132305296931011747366696853252472736029237299602356090765131313603980502743003088677682316275049082313955024258710558811070541950097973466631472509239098743015019313840135857578932917108723084855470912962149862289271768000850389460696336892772178571551380554832510436463882159870153409135940979191511594434373486019318360720405982674476331837460430781254545316155807088215030185630363397047211033526389673501328667982474247885426953674895522987913752752220328291186123507923511972148307477855452885050448406395266297026588170194767504485768356962221674793361110821281650849546247916057731061322973055083266517470512345560182811584168113966264299083920673507941912111577335827755374789137484808877374380377449807439930677412153992228214409061953762154855481801816504233814537314304389324999696092077867412189401454704757656865881351451221520604886766916592175699857116383968263705324266378772063202706550611698585243585802186373415431362957411936838295149341948892936606169018740203214762948266220125298642029730017054948815603029851265713833372174912834355771196030895994131068901751874872014583154700794973978301035711690461698502462696870254302497754821984316194403473904249736704473630786884816220985349901053840053285421877076993695255764737034921409715501698778293613190633303320771382882757893634777079018477449901725168173488329312147085831857903601530076804455089375592321583791914864408610355588458873516539593478141098718094691100325575414676740361131963638990705203558182928522487732586163601264105489087146295221650793903492366793169394990938281946173919464261070543073861918371964233147084388251317377906680245613858916499839506868373625467203298545431757467472148741162614979827383492259914289227433889989793621581515443399627371853528206376517993061433273574733939800012719266713372128416370253432182916911475347923255739634974338248777817134578901093306497282808358305235700191648941115584281665552260744557981315506964147829200628512617060389399574916513716381834860401450908827449771996654367491975608289938955723207036700792663897157837755457850471102427193108608225093827453652977314650842980842017798266037219646120808726483175847774562673740451107255467534722294015247150916531551151183627762201540479724604601484581657065921494109442843682066342634291233370536931382997162945236519084249318148714110569679337786068425605939614655612438260247149892454363695947729161987391815227720549688568158556895373613095113950161206737494849450289888886963453227746753156884942632504474540567680360537954737776939666324828752443319915893484590067431901961280385718870871606845724701551610994073368509336651908797954985213980473097737392640726169212121456601143535334558843808261265346259844115142312162064209382696577634342953434190920551879047537835931827399911051111315249640429443082854396471222917101488354445065501221589606019840527365378168193382300667640353375231136752498534067298917793156271384272061552632913379024770543304928163809083258547011800474052941954954465199539891799405667554712091857630946439866834223738150173195869564508902320397887845522664190966686772842413239989848865581964444628981929592830780387044022326131038720457132781173774347223982055434782008590031853237884454445803754498759059626357746904216952936595953826840786985385514310811708873503574133356480058248898800257756143342058753704418081999942823751599262027961248189876510994087154290148237221896617833439322707201385168123206995372751820941080096417338139792475547180978331786398834719162351999606866435736647377174888771997157437438915648359410789207803152043506632578104598077400652899584335942745258522135512450105984030892072891491142917928647387011280076278807421759131210768141831543149255605906273494282105135503396717753344891781500175542127585373597592840534275330382826394958127135288329671927116619627807605436174733749487460313944857371546819200362807467480360658141600867694134293017186665387648436166134816114632070055965572621701248746036798039512159563190278664287092349100184171551803700931503490064336120784054422972038356930616244863612835292232061864736647221912807611252765988025040109849982054624107384369255386137020964418654480568857750737859554675992437715513775049973535963257466330385946956800014462747594985356382040759767519138814446617516981200361591006741278730137457300148086907795545131782439689837195310161361896077655174410888356537824268684276016922732510791704466666062443276829878574196191910472465775969671181695166104434722088406690253939161293164531267714892885354649213411938281855053513257097336918476599100248267699918046080311017506715634640519746538529190293888564069660413980064918879922828052795633135285081714208849827833519721844171121586323515844227916993029328807110274919247596197699158800789693201400859032949825820800637008664494227943650850256333229977772445435452148953780208466747137731098769452994107749731056821487129333308789527527544767226839216368499052123428957838252169149471902096437257425107958415309783599625333712139559597745461343225753214435304049895445220391556030449124145905199285182965503658479874089626940035027216336217214725257380134553023331289618694176147108629807437324566855154656153917985908267206547147301279420401830190316513268220845280972754806026377945996302141438844072599457428439896252090195124556608679153684797635308086573727581332379075732167453133287731907006724383031163654778743957412398455027016039784274627580252895516250348901026762297376269392005204757166434272143969943117944542799687207989566032231388180747171484773615536577341510787056570003112085196894411804648578142373771479262923106320358961477696493229914485622624164840442777378552914482238516625224724588963607472034858861044637830885629745155819579228169814375598979146305547212367041993083372440051712191862430381477382155658404329030122115945242992053862124486297868519652244909497135291881247965050272699517109571900038595627879342180475153540795204833739317993195899073064154720004387908905306007493053281302332659908690957514237507040607197746751480747565569118532127278427761212352408594325748900817313500366000264463941441655762466879388259015879824882092601921198423250146411475002547888687270843533521725193774754914882048178477764373738494863631542403628711559804045688165281534703452828538768615901232277238388605832620191341547219572831856360683331539567891997685168190911404068518754820875694885389816516745275317916864917880458547264554407901294952161861408642381641704917405343306151495718000162156927815552080102939868910650066649743165158765203845444983777880747237860071001485598829344007006573785946431209525867022289545292416414606240686405614485650853607784229034361046448103972017538469658320060559507560824164286503157311190816960497577528010820905529390336700569557524756861349312495916602350987343259828326566375180962722752295514054514039210029333887351721618124951582140153399400806425038968250066869980105495228813160034030716510517460942754960095701086867754428853443438585980487173967279597882065328385303871629305445725120185512693344904276882537734685147128666070465924373194153933299481355454724201039434169971352825762247165268837681908672856546005773003798988390024932833675239058012984541469286133095411388063219041512068181139797229632182699111176523780060270322207211990990001199486318751891751867438312589054931813647882434379130835379101565331206815636269431106635072455634375990940816927275569126125880235915536764920275246589058504890001381558483638540506145491808931366919822846163007610224527054610585086136698284681775309071324565891306018816211010186312146201686837900688759716631497956368662053529579080146358424878347850251131040585121096225812953446215838963395778073295603131101511999334389027739980499911339949413968200156138221853824872995995181072313141846908018781525902494277794360653441149194714480990453159259951460166243813349503934656378575894894193438204094324219800957938865265177014457034418507972830639602959836877086887421092242676999802378258761954265908782240608736216172483446940439575314267679143336486434167714257013914584074371891417814511924143753084558035144832890006959407043699248288459706925918459045834087247988370065005487262218250356031569115345149992917943153345558531692995876465439866449988873701500270321587860715437444001492371874403742223168591102157769123362740955845152620923979309696225928533545385328464136575445251247723688980880282013002502199249425402565813258621231566899862742942043816351417644689951600844172804441720923912935357967015992193477392316304166515442470779397201417160095847947937843196055752191048104965793391764433072097015999207771018460483018636024939590011379624276290653985175003603676723569601434484650776296853321202459667564150082423918407162941468102235594635389795349844092267820863922116278620317687624296507883254190806084622321466230752994963824403745535960691054035406570036645058555045533307911718322725652264059559124203498671455939590921142591119361251944285274261272658233815284734688531168371398824413761112900180065863425387990883434035056308760836757733041826917887004901102379020716643743691279309906865487413762134055331201015366251998332844395558917784699790866324027438260388373370306802239103979800841730116136716075752976085259319757129826968977448634627284395403545531814666792324942185700391115717285016645914428939899246193813804688756073573614574877871498262390730365621732760356446838678984871927491877308433505489371192753733160094890847439084044262874881952920202129009206263138948120560855862954331364837264114876975667829005927742807511436472879554571364187152080588685891242331493671047023170246154624836601936859553998273748618081014988133656134962938747982134200087940743388591028616574056234937293617062755540206417666395372943198471428728433768887770722469461734832556242176957574280596768512096923863198454452065484447544772713535041352765223991415713243751777443195732969045172805342307254636357822635676517131996326113237139662128280117402754245321272518161391687787811956682514147149439132859945921961803743406684162726402413010469996662549480231360182626477825670771997998859831443796492708245639771400032376442743223624499542497802274388999107513174298983409392588941243622509105206429165304348357882679100028154502402627516885364551593040317844663734014884217849437269914825766055518139204603302761143475966257197028919557583577465526464441478866110196097373086758929190958007883217218563381271177082906911376079330595819133571979001758015871824511825863230648750070349007583931759422701589264717360564847108231304894554084971910115643973960361600769768451525272828249358298355471427300599320604795843130721751263966774386116988078545873767653762062088304204419510968783140007225675557459883992318912664808551258567175349020578552066983933892907574325545624135121718052829525301204227865869203092420047829358767432494762855040704396183206264044739688461542267081160335387091840965111641426514637720470460343477696466558144538736668119057020767233367196700451748063161728319649920572445874978012853627020832733118616295483479362376040674266260285600574239356347646350183920748897614817038264252171950840063650376626753288529648345874400268670952729495235178622677048120133107290759663879985904383876125736075623714804836497694700681542797826981351958899359255237060440372768553221278689690512350580175629269854853619981141813527723085694537762364122449389527162202610949208606666875431457953190728549761825422817471167711157521093209326563797411240496258808665458936795354553864085888414323803326345697531236117627109358476793871753870584220327064271840808394617393101725694923897004131970554407075768615151216359537339207099793136777418467269367162859881606570068437371963983316717320876887301542835047070666150523868887188199838928709024433148866322300858617013048352174036705895190273453342579988886649721693216855539558003573421489406183513880896050063492930161755394610393177345188019646697542879781257620301144341003300659662327018372073840602631437026287210011136275267938345372286857640198059156434542977974117942425437777533467113917277078237044418977395176300572233981091460319217967816415534806263431676644769884505029479054894743701206613129162862066895920779420602191275639983088026423507558947402356698854343193505144869738424238180584515132341840690490480251621102829132577452579182552251730845116118039191208659793511391658472684155096308149833213276374294086697546346667368778270947206693919722472513139715701979351076648937716383817193553607381424255960651343334707113650119020370528309755832014630827366263861328540448229704567922062108599737512994510016093021302836792517895078228352358647463943552384896191994846189612864858210607885180957673617709042318168245851277357999090556091260255637158856286861088678032012794221857115628142629137310927305883753239498627312008518241273264941185529211602255970949555154896398147449420076217844092317485311818737092548571956926542953449415786105385153894054079357245564772821686842985301939118639587428442906083058835914633345735259861158455069662005086034233954534922226434145011002272374922571947301595707852509727804540452796205584758457377523458784452153805550303389894979288270330116749090377383573100404703202268471095445705570225903174901886883791054633969595185765350308488057752677687728521125060188858308240738203244033094812673426828762919723153106764079899116136523820457267049246691738437123377416651101192676812477908468128753953177745813878801188641542103372512692983247954574761642288392721778082757846399646538032991098358497943945511098690166484436478217361090695598322662527576548682083425158909772186349471608069673357484270286547270170451422002705492209904949470294742987139199333008932912424871411496026513741714185168466968138227118499208573776958935042203423114428753049075760826007400204473571326224062706574491860855948803281082043354526263427426308325683822623040866844872910362269812924908522955535864164853736784981816887018471666613372067755593900635198360504563657844471983852293177166996654763423316126182790015315043018242920745786745460888605772926933979439446798894605600721380440269492158526321610576455694371980081068692241550962931287795149971690890144412244433440215109091356424722976021902531501348797437086012672466540190697643591296415203530323822588722052783024527657417397064339338445100714087552434751311731460606534397908887713076725309636287229752661527660162564548232299441614470048416613100139846769615315235747025792061169340554595226616739316557604145865559273375460713281813697810334442115979383476537060623103176002000109125228391539221948026300168411777282465228219039936688299897592396587716251799443761044015860418506633396497467335410431347902089981528567103143294264740836716417745617065504040686055461586265166587824408557788912731625258608429354056493277357625716516158516982164014731462191803372754390760470550063079815903001063406470816660770159200254614086476188553141052774698662668857260385021979878306817434385799195259910401068261679980735595663151645888163265956970232834477759267466397602792665773165698029265768117078954482223337550522280500672802403206416438075563232334851292093000459324261495588754826278992474870648587748578072902664956853604020853639923967203573377365217301115698058085586515072047064086622540267038161950441753476784916994931852585316256131518139549078284667903785488002771742201493006612794186881700039656846181221479692462973038546328353401171649147397191684377716070799003214915572437086370426148834160323727940782928747564484395841857255818330467451795746467340411921994870350578353510279960674595460910786304718377475600974574044703534609197089673425201374762706083415445197622865435258711579357568972912175547979368017165858237617649635638548602803109963429676577325095816912214546567176064384822737074769333304371700510861163733170969675593742766905030357438524518833747316032408767773678200928027377430379930031983456493549251896949390997784340062020474613191427390883962912774319979437908866310200817023135443142242847832158634133552143717777927605820557104264089409151475706248771005478994996852669934084261504568473547310916830324555305620471469096115259334107962507188929257791407628246902913826740763249488347139461738150745130618371698502084380965296525076808797271098385815909186086074926612826481538297483482769507934805518658892279786975072690388777576148225185085799726451422733375065400929597118681625972061228994648685893186116484629120855506699786554138554002590894033597236905118716922540521716708634153252470560965894589826664188891617227240948444758924944746183612047623738559753462252605075090686137120298810009311606686086683096933237390492662343680981105821239026387650909130262491667993904715667721668788927056785194726573656745336117198327819792037274876581005325158994013051390415809777503018352539228561360345023201689568041579075178269852487454449329595222910882974118397232145900722697750477118091135158255848690975466356860266080840701612571165991428628607425389396208111782099205505288798190219750742250353619821031858732885146049248238562596134186310127002007985301915313519541016788390612566748112043049056081879682773819256170506716195781342621181356765115883127138623303826758249759248169142982909375419525495931608032299329255196973872273496391577268969256987235700974573816102462902993035455306821017467683544338543854737251832921270458404630277200493706944280644735061827276189149837229094747697971014184887532089021725194680461190126066734614049635560030968730683591425595027970698017728259911422918914170362984212007737053268132447014102748191568901702542717907538358796097072255166026985790068406190392361670007993619566044788557150800109170278607157824953172033012324997409542005250021781913768766275021130573018034979350051985404688696531858988813284244767025691388789747391740572316374756048629904733568141444028453116195758877674045415633980603341195643676845203494974808532500447176891447953868490849281793669757107278607809969170898871384561220413085972517918029446865140827190264830212644049887592331991975542092554897313657421047119163256472632987256168455500672988376067353062882616383796118474913748934682772831072030177820706588628626305632720633950834171317042133741752517973126688269133990196100855105828221931355884325021189280908796222726781192247766227021684644690244549762386256412557125400139386681013308694036142938299498302212564895075152960358322540627153438119001083163578029494614890691551193691350997692116391596327543897025707830972247777342802370573266403486371035421864196760098134559396124106255363246326148111301092186015006707578240638044141303199350406539694806103608141934833976646602524425735967109334976595354050833928042200464175613265457530973104930363005645324928594782446293914838907657592268713778827640813972317159560934779300151155887820723403921790053548030613214815700199820854258982065348838149566006649954704403844353514596238286479845021411725639754670526081394204233097312874149133811422481925700151604007906432730256017594680298405456735774369210664021193187181861916324203471206863786077513956003359458157427223596165133926010142317758905962317663954781474849438630733750147774363026284119364437438118212996673831887932679638994611555821710561771290538922586797198626448556263239638965548787316835492194483605639288992185338216924732957783784946295589023093965399772830174541555519512142205893390112462210195111591849252294978853874073384099381683333622806240756210953747611641709353916932914982952933353966708184168756222672523521629591766460916338199201169964592375459249912615549186110400618595479755786145417628979343297424668610076964752948305415507320687217995714741660976322514337674938168935128806755424219415020369895551139370742037255918350004589547772199214813574342675907510721387593917154007037391150430838878170053806568057817430889770553214070361950867219988586963405486893779722411022384478867214276573368933021386418461374491676561471624303614560850802292814639385396140519775183460989937419955261566436423295938135549229947710069007259237412949410126174080910562197213533977049529020330599807243908400789417467508028407053297066071159221350230913449566454897522728840974720392788914167186632140393739893025486699711637466732737673516214415357233766824107789912653873814176952906640988462860515144049502795744998411659374624040750936057419146132426185895867380158975042564211125909688255473704705399875596770066310585556853040130147881986267207632875581341345133203356855088372856685327531539773462777005971681096557175920508480106934175472645331763459317123776413296517826733265581161688453575113865049457264095787228405321978998017419850138335770965198138693786840744936449636795453790629081833588817814332141272529525507756334517241727706212829838891901910092133283839502910973324857421510502134384258019632656579920481382567854904332907707092207746606295798368555566268136852546540488014289911410834880025634146719462113273218507632894615326560598579920915068219139961323895625560544087284822319272279664863290106071604276464747856008085513943938143757980160279088733971202154690873974334810345313102333487926749787030082937836160183084566874025735511571970368139539049175151973602052384247226924558651697270579985231016448376754985084167111094005980831277106694040553039453384670622266965574556971124151713583280755354451944161203220978517482753071242492019313865688041848489492571544788484491623229793833306054338891134037828246939633376364966563594617877151071314777282305050132154500813015551260522667537596514493276791161309715014999181094971255245643940023876647322734557114231919930116566194841070829546318807530153505582509268646458589208673370523126808468267703863113996470417259800006756295042206174238694243269527070406772891545014506237088608047642952777254435832371047296867548112767068056297506017367157115539985049158608267468431647464013603806460110423538362247462151807945593302013131498279989269599722179615899196352989229343227527319049589459859954778351827554927434050922393977430773534656979868297339736207104786078337203490760071547705744607094149058515352053500469160618141929433378234702878396820480082776823855318316291526356597904055048040449122328222258943960094496507971138840786227411420719455206595235873977343684448879949991181137678120467277272383580157928714604586917821828798693102190891861527517894374414098979235868312252870134543305991873296596452634456473361759435343802963310443163750089065564571891704761075612976887558394132994811690871564549320425445580040024394669252288360838318192982841419476078244490676834158500776610370436105780451087067017153476349559652017288554884971416403220023569009298110816441288769711053931579858255895802435372355380112305221950993994710809128133111348906842258245984657183316479048854890791383390495733516478344276910001167613328846014939514152246076032078830125031129089077968490330303299159970914686760683599559700134526051645365292258246798283741944952134292173872113002780244780253405538656711740523100244176138919876422452023806856065332989637363025479782580451868386317513187221874125776666516729358611371037383103440569485246105235509495914143712651037913446264004296460333560218611843294167920473410590035547680302177074878934707710572041705271379285375754776719860469426938229027995975293357543184312846957048833838574215862815173518065223348576711484609240907742759080217076472559474631902713534028288907488648822327049419704020638368413211064606546888352384265763944086813881630685329947936341380125173711449038751597458898582978156312329146890459180700952071693777956997416143094638789691057891268592142492590366522907301815121460183810647592951069605042964012300075217747292557603720757324982504117262166733472040506661726205532368472626976918142846670726859725999260590699980376703307545590610211337896837427336552793895606918275332957897148698563751570748934240438268850495184481591500998225884233502267461061825300798487088967481593514563517848789997986569413547059002242718555640840178321731800030316788935512478051706232842192944600472471915441061749146719165379699282013117606864982885425087185768781664716864475807738244360610116462989491944545758181071773956313316585171321797166643442448331991948473947754827373062056325291130517794585736191769892697801773030913815016914865124374332709504624169368813354363176056102620464471076493497462016092381044223372195901745536189225752552863884752448088231129460273853284779295830232642001086679345314896587256616021549578697909807144086689651875843668392185476710181088844690990397855830598984303362018987122205654666822791915072574137232713367980169252188949901535339374395775529946866382226552496301055523789761843402378958886868729233264004604234551847395975929186665215206601151346897695431710415844646197546149788306981155233637044543593895721058501697066843567032603357372203571710619290400621462185298770362831699104200434530886144984395319176394287816154936811093315014758592272856136666208233123281616155222662264764921485964658142639701426369230478042296788384541911221582277249801644058081628778058866065181252853698360844432929857673724844516088666113308595251498529711435959667291004421134693747150770720741808772197414091186855194474419991904992025133381184282323657343820300818191909272295681625166296705066930016722246586674349490218063077422694169670314365624948860168141987935561063752578489810319439742255948637310206649059923162149834258802914223662062762040064405842839127590439391055395515294363018686669502105938783514950171942723447018989200493490516398378541315957633178374125035561104948524536040058373237282169459346463539594954902781131608962564970678357491755190815594082383092247084659705226190465472541909847654334336408288878591181543884389272077500169327870718716776850710065124003439517769195949165835994159835901741414451063584199599442670437496998893670008798606536409020610835728336783990087181669124482968210452000128679417235484212689807557340355992630789310156415382624892156413944022481848851870486010678209115634817270183723108140949653742798240697438472427558746996166583100184309176695926980932631738740352161526763080646464723034444923106204234775501291799305557816945388101682244007996223990482491521131811931241763314281358980485208547725281048666196367025713267606435972570909829051802625508283599324981893949973874463315649344736151294133813445311306095120450384550286854632796991469411702859266819164931649189033946198292592654671996979514567431052553446160664509110281911710074490678140809610431982706982599841976872125021438334052281249157085424244455222378647245585148026425362923462824009477242097731178097913380681347394876582011321852062560307353397677756447452542523807993952565670624062326820535973282566837996396329808345034957247401714058731502298168503380453093000047145653208258800670982254130278845090403514857484320920519565900146755865817400688566020947530961334774156961955762418448718986874004571911401534721426708154740475029717883854049317561821025633348624260246684834214787208357186660002266364815394027261756330351616449432681226059246348934224604908862584357903447463505074001311703198919157664209784316631221207715919442487862644370311877412639149651473441604819744572476992158326180303949082790583668647255543736754530796734094470333879187968264365571609915913021218397347204605927882684443709048391860743024181407265828719347135579477381512897973964372880443075838227805187034601291090462134456023090911915354563810590697372135425136447428280836057615389218641476171901103450970038054480270848627292225484909549229825343766592057742830454322698024525042330106094542953614857442402730340333584351969861642289034841492711715078222936079025282007260234193996672105628801848853110545658988460733365265008264503418972679551188115007505239905174117132326477614843164100750203411230669313962465807107912545991421218385087887455736002264333633668322604635817051348762631714302494876392072933554687126828839415368148180488486841009830264263284173331887834329486960179770411773733969027558390582312481575797013693649842543216186561066444577069729918119268567591377400441722684707221243306207679330336754381597719369247479450119929620094125406077879779188995027654112006426274172431262281083400211040876523060941197430496108291264765290494267930636905908635655131998905932028128874704653364118688049738382054034988743590116632592286300214902742246107391408273574365783275826976649110573511152254506118455521582432605425430070656220738923725275307801283854796120625827737190628444458116948752248259131076209321540588806029516155266116716783051080212249746523130408698167685447840090366477503170154387674788179958375892189972978602865011476768690454549816339271099219223495122465363262213320641715221974302154104564886756520720747550190597607107466662227501518815541167362236847925889518446753352594234410696235708959641625373213320320904908857598672219168727789490847401145248244543385681607064615620311191015026966058203180877513812146148950606356645408134020295752732430859592501575441028990024969210419462728253504742126881805012762934451170993686852908721622774759893382315023533994743922961693018311112225426976996539236241772045842669839953542567455420407746444352454646040367042889832457732456474708352722155079763824002023995280793556093088325110049585063478649192401088922269725353347699058003290844366401284328224011690141491217457635329751474545687265829018980154692726968769770485002822237679703017952586211962072756514631130437018133626559443060094452836391550649681477906340427404608481457504965189079989705676252074706589276410286497793350530751448259740211265895270505647752383993160926686732412103947796970085886918193493811359265158058487168400694347638144082690727615709524722453276506963017673012112165946572981159921792823052866724020881561651933442031166544667688986292278054498991199379614832715822921476740963995383189933817737612892639145968575089480462777575398864558541615280682939646094138672895148843436861177697069764501310012855932047225570454428588088580512207547542585771106351041090829327729400797992490875463458830072666942040259500971136816608899758430863325817604835482493075907700331988016019880306842439889325028577659039055034371703064386621727869220672051599733526058798426349702577497723947503183310200892042673016765850921528226562267422458849278286700543182722398362129466546025164550220472627115863367696145010589853916002845581041835142878336265170575321666723457949188777396231652523632937507556821679318146733893331927364994170667368925720548166878034510886924061730931338605411300644069557519444568510880633797456677691725852711057021333448363307116845554126372724887175659289962829198328159174768670191353045433566784162661437102244340208828195271188933927294278265908877498771980297196742343431868101590222263372022278394710291769598166571625576335983644416110218309938357944197887874066771086558262058777996176083647675304193635389563437147215111579972023587928849480315279748433373100479560717072794431387888144362096007034605429791955987641443500584961578815922034116383005250918862805535788386034112859142940728610679665128378928453640395590231468764275551969374616737836534997325038168694861103898383623339676811979611891915521147866721305864670440654759984254897293643116380973147099089039633783036500284540733590881880091906530181308655817589820208738198258068950365567202981381114732880477008604302255561305662865598672514966229657711897536478869168507782200607867536460891134568719675626389485700677272207293488280761716137658711521563831591227589193226578041371191074084358439509066631511706849980167435955726370690988357669846318758337144115205383550689438561623413652168675949564440189168532240043590763277254426270504306902272529247775296145135957373912230984835704276576119978151322655853137360509723495299439214652900224793206109742927657566928546796380697044754393514979717337890188640567382290475038512671633486897042529378598534018861799672287109926177065996142572682435193122082929811379740680882645830477877921749428608383870945152093414049347038168511980980353638819959019625098051285614537536384075561367535353189334648225702421858798814670952216381214557168751189481327452111938674178769903643290950834280506299599208358305996225075880791021066048114711883649563477822730359319893056015340581618630233615628387727556920224016928927883362395964883049942539515579544994979830997089586463008768655955515907165532842582119102888599785012322284327713227847817313245555083658390734335231160773571148121678778314683481594126950190987288751557677915889097237517361329258670479176003685072996753269312018630901085302944159044567201701246967066840203709931373138774612700307049824158421100486309637314946009310983442703560137179051705217086927150829741631733765134517633358242312029530556938617587811064595404276803584754015072991009349902425466977724667533257636779796499594452165695346300892584942266693110044607948442582584014024415191268796084556361022362568213862115540934752321929863270974443827805656436791671219263942521741941684473182044472134192912883984635823820967499097548054011758840710111494351048044476870423976629377554499817955035002551746848216002766325698667967968520964282136350437970729084404311989710866647371356684176484522374937784193897032952241536520942674932042349847187458260741914541409885272371314278731319421997758706761689452193493864491382949693920372774622709080281706371086466626748737583067462181578953607652466844573849686353698579210553564496136390850966721142843291560921073836889740636256876759820123930781120900232567312864580949795069366223963654737690891292125213035313715648789181969748425933449007293653355736292871708936727347024137268605668810292858192689679156101512457807345268874265843241223744517445436028490926413098765383548881312742874338745055954896838727827493236630231428007324344526465001637772170354757902436798369489406205918680963270554370029574495254662698633253949869811655442180643390912071448332503525829965798931242795988571471197238935859320480141845720734263946147599241298135484535834506218995078074770484703278491626375879447529280342822053578592502415504765973645575866178063455551946106956750760670628325457764114707432156107388364563424075365414262058067684145400743264536361869315635409552640326782876125674008319612521552945650373840416660688492388423312279942882083774243844127628190848891917913197757223529215872752079413661857329686293401910499223207945211840627526746870502022663555687451991354842599499429524453417084626309634258438918044680015481625032708360339229179453513923476363339667137804591899744589332057408214826680647279379365564464649043716450843883539465291621150481854377397415224454319440391115756655889751523538144158289348222481735288210826146429975499369013509095901237245418988387595368936275758272380329071446972361159764707154759832625811377994530198434945949413317104557710280069500701787194725932008138463319743636617569714765331258647980697742697701593064690965321393859830918141050892950311542812788577827838558015909752547731744283002263691386916991864972152982132899242299151274656581203629919999221010018221848869750071385591533593414747124567805496172097044625620994380523044248020076008852425980532179840024058293190655674004493275850422266014758438409809452389730637324965256234831814398026777851417224497649170709996971403345218294636195046437116354372918840698661319067735888852655879331351096589437096185004148623895699293452092706451900768967459030101883680752786704978389655109545557459926738563236698739261110607016225092559669807018564762893913744266669569818501825647020698889466860184264802611365092862850913455794685450300564307963965637028771936628263224621887680614721532227356762812230199814148641584512941936024788660203002204909243892599860297024642243982605197336290302270014556159511612527653074232866463527870762088273046763675230430631099769074796825144099167600032569287165167403173254672957971868914930430476489541732730775927711040575027470480295390652312399978845603398671842683459811078553978731666225710513095810304740830750814970840481212564404541011546177916940690056241414864268061919034432237392459865366493823637364672769441997900700725636910688922899654245293185123760825147533515084280221708228765362887976465573975846982396180965921178285602114205755997641578827339958315179476073019269669971329479425139107610701031657994992183390068337594144510798444486526506270705718109391620464397913358920471629398122191858235930967172423291379317913898352747469343973172874134939963360782976164039493487086774889225517424498979295162591332915486213171857761462962196938522934123102334951731556868351424898574773885732763310122627648893923637980139312309365696376876152567941497746184396494467228622131256097631201516087352748660286782572045594984689926899011403531619993940602252700068086724095997233794792757129007780350737390021988805348235025940214680310105341602009743021432144338307213819213883856181766312333015859565059685434492822876445180835502021617418874496779699790387523087840838363424253168914129365790287885522331771007315666267325484918263364498460166958358190372643605476494752056938260539184392081018714656090119828270725740566795254237186386680308342175859222211266495559389559227928876150154758577671632177243310429722858467351023808076212797972585893444475514803055141763523695311435371298105118264732761520248006637285182897897659966769604014980603356116143188783890199137850990728801342207052153199480428474330839578453134776662705107105814356515753790872949421604841837713817706827570776532845372147018947474172102736517516410977243272993896632894525509732949302081664110717880095604156069873196896851034320289931309243071891094876268315537227382229242641951139685799203125998031165724403112169458577875221814098139796923284355433985555980991310905464051503509491806632236604488263607177560050211318521254528605537049646604022754323397106424576866975451753707093681090464045042272496693581625607080415300197850064905225594749176583538798859021711361547254943807659992087840915556503136611108386649482158946850426554626717169729582772066669850814574171987747500590637939272087121613797481463547738916612584435856979720450612308376723400990956929013906939090853014656418547691465736431732582333008559512524915228679527996768434504482211082573361879615908546015211122858869167386451296912560783988767057189029193629253793319825389413767651547204094888961249587047049191529435691266167466642782433144890968887652635263710473083769475891476465016168819297256106261771415117160332907470040000841965806785128194136069934468578922977027465604519221292701254158724494889040694843363258537862557867047234478187480929534697635953204543107320468787071398749996363550512037685680258309797546811981199210049974268621281104531635278716663941337048211341674416178212252235354251610386138197547318519554543348800553262361353388988175955081333577867975139887262227099423077908279454291581845432977836902125890326988857933563417947897637022202258821392827832236935431341638998997032366232473992187646871302919325810149356542978514503921298854660934269398538763789481338157251315672895845581278908061220308132884342985911478615909041335868940198766250170936906785793636352888717422962336105976634933891211878629093393155701155224494767792485707771323778822457463402005257550816492988672648668088816375201371694131251314138125176428657497188587176467202805522273992377406136711691715331655248935846290898092517378815357404226744390729605879230411824075447210963103896899184940000498693699590467557417196794100018365675355318538855875440542316260658436185736786766399850052832464351770604554749033103118939622295513697229960727914204443890898624374749774046030203198397645947589805425770499919531614476877078439632481260279604945334357531147622149430279037997996606988046919281465683933330288935088411057015494378789257105357220035937438675992847788818977145142257236150565960684936278058835467922785903771403676234416589609646869868687437690964998949838255875660696131097765519029234276230682126073494782371801419315366140220212899534015400105510050720723626100816811430289411277608847647737319831779408739193368779567777956849104594446976460965405671533335640047309043241289740727766549555992264897241803967697231471915552413410319892072655693424646348573858640500167928427279064865475387440334278234179110340032596878822735726710193366143394595031654399882232408700279924225705497998284059210883780296453615080149075360661389342893112581355186568096620941383462253219365635319013270138208736562615778550622702623850441302158319629196875062488101369686134922327497778892749692109435862505718311603028869641685591636803816645374176894627035415864373375457341023046681473052125771661641375532720836266379397197822187808365412879441290307782439574362839981979737197894891561480187487443495161246507820357924371718543313406403548041167063072960300957055476772086559532739743232599467449116023815615003761946742058123944737627428674753187493786651127273767844041143732070800105454408675950755586748174481157061407227931085331521821806872449790093864991705203298641807898871326019524875131215859179211585447063552581359895007550064466642152025704550861392790613327524685823588689423025802850822861352835293233796379611474766147560234770698460783107835885690226561548271389892964124116738914182030058303964914775011101932718492022500652633313510495257235216024426277139664580433080885731614939181732908595023020902638380387519389800889388501670389456638239245382929900397373502787280758877959248610076171791981746384287770123073448867670714949994690611384746184143865851917301114640971873043733452003878714211429514840296311603791086506905485184354849727314417726091210443473871823752512945939342273147040293718140549710930393037709391158156226189295409518129762271357274717530763690835986769908781042215011079036834580340341018771935914653089889054649705906090574223582681500808702107869209189024997893137126139636959998709980390065917507425211210802447098965481503546223774405385052151325775696796796077542478103084130594865004281220600818988335818127794437189551617058175309785097176816006358752475988534971277018326996308481601087702863050135024012492356009975887259629371279144285957738241462278583767340988426566563226159680513961896262357254431349064174995082708368129281104253861142610121670338602789043195593056534480096710226684912690004467189518955749886724873450914115807549697548411637517025586745133072124548336013804675972899714223738256002152839753889605183508493405600818970921600088330212834251880045463894971876849420886097248141790525338770685376528635452113711871428075518532330905251202532057609497595041691391196464926143611225648335774190809853595958237503586453725714668480315712625858338094774894841227729277593431533673189088821466398300846285214654328434333994832191593517168258001340239458702801398780902748162430676418079967001195044030340001539975127391310523887137310618599389462278774550218842996483156089464049014323053557941355172846566437638147242392210195012590606621820190183041188176877890044043110692024401429986316436662662336699144237407746143327653560472478708678019925190537053999229186010188290622957922117081894771905785878760521943888511972142792205746430099307920097762523699732563902726691436327305768806492033090950398171756343314975779899729721467789050810620118721505825725733529030609013529314750728192298108861581205444978154053643350704100432753676087640976497991849489083086103842511167868180221217229048561742589348337343098907251695535795061865042843614192632527156834404643864793200269297743230860035488475171863480031260679494795187762773191300937349167571972807194428834330938989147371653262542637031227923381171829736434677076428169691553797447894759252543327880047497441859325388779927361370798730392087188843008221848495056947956792186092899350231049307414307980800354961278095304147286836941174937585751149859881955184991284074398212555750972569014490924302622920487477302431242511326322323405559362756221546340665111212077625935188597767939851244218574016968463511062673761477605349029729635087573855609300655901939753700477292891416133123844877122269639442182350031056190718425636645604292762018182963248815540057064296037180070123079257169866867106903581850198533402285025637242258386865397076707706024112183927718661963587215512057166041615898810251052996068284810438476418071170559166544775179254735040855630006683392471659977348483707790435447987401609935899253865161605887242042694615827645790360821488712643233582709471240777137309607959592587905595486943954990964196980072908945820843844977917164512630047810274415203804196354327851741435180063057887438711824873709355034450328982665370073169876806937211748723953002836280928704758980379803471593010419579404055652946358492475965003718602858377464893699531466473186629541354235359379492667405497920090833220196848213541640319353594751364606803929552999488901533383328743944642861501382251722001241565302032016337820793531576753481361790669979237124444643907533393138535454599572813623831246728242196630832058112079765152543538410411668038473563328273376713515098272721354774159578004470249857779755919553808373595899795764738428154196831181920630747253108184476738162726463073972355553592936254673704201000975423019784357899866165578344374232784335977720947111127428674025094287285805403801672302485096743378307625683157013835546423987030581556512946915717646513224187661929875180499509556970543559629750171292830200982600055538103962050073617097783230938684909395601654833791316919739455034371639458174944006729537937490875545419883049279728914564521009563054419944570301824857881973634012171038968009314204746188526075490951774849230137005716166733225069451011724117841355923205752046211824286699285813541421414143833289848961885051502560657470261652675719210860259119238175528048363680847734442247898293470045559598321510761547163957368750882469446508862110331570029399239893318369956471900716418575139400388344704002246406965644434119565450827311543638485384765409160133885558644115337633872157027884818885110428453495856263297184965773350150031239649527941722302182082945305173127878474492702185361129795783906842896393601539447276553498790612992871467576584909179415603808643735887246167846180907730589327743528481557346698320727032916497287857557108934624706189270030407103130682763313280748941927360855305203960042202035831903637570703239202849845579548997298980040109543655517756093861277839606064629358877487241188954293154573200954193444992704624069003755422985878358467793049355641855791431031050370119533975925421906986486314704162553835090296782833823534343555335224258256759685212289651819257742080414765231701013057649225445943161207734709010204685841301548423017992231570718461804169916367493683394152812960434104677358637744125507550323669558648156154587880143109307425496043286065734591888804997153439267646128380386467981951933816412329631393536386894255034067383320368819465326968301185354579807496721929802785302011565990310781929630943369598614588626777346750067965281337395762051258088700255949068403870832772787819900878933726895962595116326478507705106042993331395108307194545405605615234638415369184220865037701212330465085422293426111500088261466429373066794679941217652235670112360202237239111015307512223910644094528936508913665036761374799523398928627372797932669283818515308629778546104835757043009353791890121048346497833095554343029100828366480429698246040302762860278313340912922589993987601071161231305160256865012866407649168377682923626951954504229114670401923850467279639316117612540919294961616037233471963074390341283367969263139698554726505870596871701403652760577017874130906264275810725327318860358690129114781940921041348299260469345446041078805023102837862432201354603749326790618617257761584220821810962445810917787812874465275962826769891324372085615933074034247808560690949158775694789490065132035599735858431669889463811276443361360464274039629669667705619870765538874612026584010324025901876800028162404000604262037155723924794302577725159574353559346298754264925157826110288107492893733728164936484450995976961005738366971807992608552522350191401953302070052493161872151911143848888373464352120265176411370749533747257517757919471436791911237681758439955148309483292942359329692122874117268083983219329121271355467485959014818188817263934432146752922695870902923785172281472211294089733108410403325422480319430654431393385664067964054026878933249926519528804446740398515287599271672557082463266713643889661942157272891171333135866063442513076479211060876474424790227298212818709603782411716951278780798465554339748905754229937423558534245838321454094285005890673059650050136827422076724929661855467606645564464356830877202238419984392446588039027775360620811054907862792389721975326401592366914790183946353951645025383292081751580002989267241611659654566744801392062047295609955871647962467679015430320236838804670805693903946880176417742719673785016698912702416800708554217649833802979222470511097823008231158819382710905206604114894964447797859978542699379116423861744366048759284518246042524867661321233302422196923940563188506057491021168337888686559944313442013555899515887854194881710928975325638758409777863724634474617419867184859776012205207648873256411117230727326949642558978053686918741763133549323170360193166986016620966179726960381239023683721925635410896378385311119981022390624221648751952361577104675824407167752906955501549660170723488134843297855532358744519065346896168673044885953947002523288975721155668311236978533348145496074747200364599858069902415576966281006404653389232177413209018687652470645231609224605800892671059263780232954569206032051115209304046719051809881610680705146464589846762655299566631577636768382831504926491920988458006895841050712861680782047064110044592847233671281193707669339857050465461255889419680094767740568508710051268893715888044033998798454651714987341452361925540374152844089176948196412257657807077231063131032853305108571698269293167734638116750510069898899994668224974425879728866736618290158396253513717424629067814186622362452520466686933599027175178963263417767148825074362186295236781556923807085848139694084856445116134721571922662245454017700158780709835143263681720165309668761089687596772775141918591905574039983254639755664756669218013527080196918718556763743862094655230204990613203920276058623034687335146062499669722819256282322160147331559743646270153414812494750566108905000721324428809210689201354079022870639041696722247045768019082771880248118539774001480084622488542924266262332621278275854020837369305810013819471978821940960663523672728022486772729596678992004955221133661629842661334407398681044244301123176411034393359989112492019424592071675286266240947388875634546137667647455531286073229279981479616274162931218616997135863359964561012868140106399277661794040110018365038140493376825067605393881546712490691294143293686960275584643455427639404185631268022058799037275207059388309803126448159279960725611868495404832855904535140148170750203573022959031790767119728267768433660113104636091607532747934785012321623030472984429289667994868133516419224543954576407232101221343985946968204797833813316362709905758049820258945213376440013917707880076311669798480150168088602584519350913408039587834256180327631152406225965001829078885430104275029563346930717439342513506316938652762101707144908656636719412809596537286568282804046013030775150479319997841418854762505513493242016660651703062899365642332596204218017647916068250851836108658923365710790679750710722323553715629121456586874285466588432090313838307835218016284763304312915704446616032801616339865811758073854698712838992843261154992584498677791197089761820891052143297138927652784399918622391648161920046178606187146971851561851457482158986768061624268148495158529826606029751526396451573433831167680195049066188847342026405834803278803656439281269696337390435445438666877869952595950217942280733639762256112542080898908913120259554359504903111925810812599239641356193711894171591029493217985098521316529374768506748249777612657198247230245539920257107534584771100897576071754469574402781299663290704743745598643520633124637801100260006893076297085883512877693522013009753560986897739854460910361503561317504478217551249720261782331908346686872755292042458836339181431465301675341374703761950861560278887336164311089075624196411041693463229454108463101302519995731413868139099767515091127086935513748830074635772155864778565312501315698169531901728117442864288542372386964763596712443252087993357087569438433510807699477224410085042128533425430358977526955164870381108747613668532818863719536616189512242690096102844769767247709656007892533321359927937405525086970554637027264722612909155471730556011299071015377878532453702111101006589256280474393749887702779869527291113375920200334039694330422503804798417594581812428893382365784814598353232962293742557300833000858092599988064551687799624136911855498191319327297187591535499788693583560247623134328827983434548468206958842330228309379430985703886253150498436700091890667091013755675524807802275123555718136356850120447491915718488814429445848586529832877949335969776746111926381689653208031785892024411797887754011503394702787125520886091138986520180030715417729818443590086443967760737295533282276762102380205576401206387551572321021389862736000517355905850155234706041844842854536419090143156171626506936880686358687412807408979382114429866292327914927748230559924999173374968337502888529245868673460888293942865011202779807019523255552845522395111353119451358019742833371204852813628156877749857201911574138728668058651450735805591418317381210502734066936153811426442290622909012108243768023720480537004657447841396118728116737096864800798223776332622260872133615770234025483296616952493564438766808247568394007760487705226264889264590876074323121533106886543580703850210867289980139769323412309570456418344940489602632857477062969001677626986870903312160617236792020252746009714921115769004111635280649330257419230181446547458864750340338915779418530133617428284811087161043717735934016226677780035997455169684064203214472956555361330746595884053187202300476913518863766554124640110630129514747225057824019117794069391172286166134346531185102995467492561265568779668536718338693641158103404714479117822867435837078192158339635858226553711087281467271245863058169258408491157582872375144346937879584385060136956676173412593132638269998683458134329010764861192771746668518160006669903883625854950230584450039355488157530534707694380764833539451468476457938345547645827322055429642989678977065145240771771041048324022753571493193424666591703328304747407883093782912507579391333333489323798039255085883294401765712526279851007087771701060471765087797941574145997103901387173010802385215680054643034052060226714166900683862213777644467311070631496231496590240233005244403282043948960729695195950234719079394606464567582640864203365141153092695281697284051777236289205609741534226117972540373282071382801366736623020616857033942787124175025854896473947274582271752160033892699963089782048648342575375171316649253523154083824973246635917284213927793610413750656168802112529301827943978594023680616991411177723870116087251738000800880337931310856995230913318288718506039046842921521450041548171721306231657912350881682804479980106894171897301455776013683155577003228500935133218445169264547810951473130619489490497562693733642202529501906924010796718842004258919617076502990316995220180643714246573909957122080836526391001087958834581041038191314832405828840516813727533935112245808921613302732624886923241896134057900123707496975517751552803713543581793634044334167260306528771398980896194314503933658458479708230093037946205044700518230127399818738342328248175871355200033730809257305553026915033355304990601514593931567955831801087150178727950019448345708457453723524732194339818357765157769342396172762308193206370153553238346136180299738006684893752200332437884946514051936632419680169651055623093685399809788796804795794666301405550304999343924840525683871796535126916276695448357948463930983739672810097234035287815397782974171127810071593656354876089129695313861093201905407987669997968903294545381721550221463737820281185383994446616589121697872920811160145493457473009845009681540534969479372945473523083085375559764816555320509832776881360505749963378449367262372235352663865013657098002656606766587150866225649109529032129247368509982869523739925701176368775486939436705613246064656224707630654880324930981816162532580933063787258450409190473096574462024670385166271081066420092688557035673534198676650284776950695040609814355171332471883097171472247766100881827497122293174044347440248696673000352955411755700207793686512332365775383914506654020628619523221582805362719313467287763784594227693750491695212200609021743410079116952694307087926731653325199200720442263866479558766758388084462275834123508266221977661876414785532932013183220411681864655288452376601022346998190315719356922316633197107002054922731532251484364879797991010334472272178474789223764359217359845595250861677666510006875159731224615991373728001458259287966955882070069661237295825869883522409971464859697740937941828496368634581315493431644401007141000856266459183137520044510068613416317382920717077065180454994841100447672538606135455703550817279915947218823875575008996959254252363986591656711124417236493419932130701103263519397871920644102419147892250851141974664097959025489138938693016281758295759795700793201279479844142598540167266004917275147489697554979610924633870003299756077101964774436424469270686631873289826361036042825592283256154031555328018335950096108326965344337206770953375058297169428108400923808148851097053450815313087107639570685586294119699779240991443683891707608792851260009100689875650475011685168167866880186047728634031242479236002477379234648674435050091453068442246527051841681497739633382199383384740686827869988341684597897957781519169219139809623428139421602804864076994465186170989326528398323692461600468822682330183657683516413802644735045834372499936700284567222677315025359903643683689053540464977978063055239890223997237989315623670978482580190920236448448956957544538138278618232508043525782662834354340230027444155428981808588500394777735695985022927797499315611113977763131868411038406111832163203206511577043761482895243160664374524176668405009888992261030378816753152333794028595055745662968059812360886815779982027354605539800109027054729227549395816072235464075201716557123035296867300044567540147365580581841752006076255387627171422795482321814817031027510739016221931692746968510731215152700403429826157498499272204798752585912123614105004659966207433481871815039352111476027719437913165864936289277317124530175183867702095267325527035628104394758696388623020193443237243277932802748976697931224439566267067871684659686611821904603726625779738215968258666306938892534382803330976385163431356835494157134117766979085280410652510491431801253193617041651566859004830944042002132148001339978193985091401163126560199559364523920708292266798895823920384802150830396047124937591275454204122527874471237394247596644662096952884219640127058368457055921976005171301597398011264692768601215741916810489173095672478407049913283284559553991908343501281462798840275261708056432859153519857511520276219306132265387540604304564856552914174338337589295670661787735455825850435314004875412217623071104711889298038655178443231818487869600594613726767670623690550207234038947136652876195210336849289133331931888910566905124939835617547543549233302363674539212416416710796191826808787683526962908275737302298698752654014774079189087527403009487252142328710326309387436952598053949228876749545049674579860134302226469593101289922388725062023409187775092166708299770317434667807527205076132345567764465791234925704005424344056787949381010968042002640987251964999325615917293901641564272072544649346148501625034199121404594282734665081489734173240023428287581915906688302251871834037970131427426788411439259282219976974643308252678132319897881436153077639108120432137629487794065643274608370965922473529383324124555020834878171087002948301913728831570692445430808055566577276614958250327896242637330172147507385160221890812066000570421121665037431766874446309058814575740364395002499082956576516865373881981628342053870879120654680428799410779770804501544190273323566395249499323256625179975194173779452204191145194270391903263014272501092777549772313993291138716981694608755451209210723768064146518047036163747562192259270068574913189626315815209575462225530511977565634566488161354224144516349284911942972392522909125005195675763934447348860494951712908970456343734146302611716627604484011941923974120337018182363898461413932730808777694023605372388726896123409118326240689016574178085829167399494964403057271379543855277736541719960490751287365836826046042482201359397027025408962621123645511546647480992037517358100731754147313400372669753689269553990342576604534624933776149108528314719108014553594316311943812632138804280639780329792708601165206715978189443295255949502159567492709380046307753169674040396609185194676991132356306062298134332537271762571698253540415092749222039687253928318713091803839226905170792086163696871159916812747277301641814521144826056352446410964486645962777782123646310242818377324552915392515474022233474198513434564634748990185541423997368177573858012137223095207076316746306799868211853750101154217283969130636463852749514842298884157529823542333087383538140336204598552225453302127570822667745884513170486639651932856078974397605134738379674202481433840740818169237385080553679723732466963563631027876341741791762760869692993400920811886615814293630314582451735192644518428070571533627882848454358650594392917780214664182917803347367064059102412758563698118408722781603639532844587785125146233620317665400431325958773250497280235715940746438686648443648330917418108839227778871199509403086234440380360720829429497829461106642339736306111085386332962824677966966961938881031844396757569256788490666835476840437667845853385818335994552022579644736191902202605118611190680270610442574251606005581870152933822255739336510761154889025579192402327141836155003134209757324466193629894845374978915233820019918233429739335146335187181280654494376516728886547383421474267602288786718165746951262788250482609024229438323543951185855436149029280468823436642574346316566599007871545537765959925913322913956285589210565762713261380327572292408955709843334824759567173871430496514216679019201268075588697763681748202883890194315479113834725785298158905628013667800557090790606304678493670472791043076811967594256407600263992006885242134487630732087077817796480544798747834594803261699283282558192354221668296329728667000534738785496522110376058544494802485550123340494993727808492004688985946603570982756257122091025380620167980300280445924864220725999783381464174519536537771494048544275460682333328797748076354122669567674347278189306249125300179155224303786985673778543014095298900083010864142464229819439507064114112635810804197458855222849506451167281373710880429555656161194703412064018809735902610628744564966931676809105911752022668515352851953688491137195091659668775340599424771099485138871066930382859044150233800729497587259143364349054326138047863329556076439502237933054917768772741810496809350168332799165698059036072165514636507846469727264069689913075789217096821487901208788225290425266594777746145975798613465084581634770385813295018965665589826072095288401311363791731547681783113878864243030466482946981834919353344262591584030489684642403420465113632358332021190962535135043737410740666566174666020018768275743379563330456550250098977941268617382964398399143762380443956895950868383241879778226051568967591194048615744968207256625737664359933984694875825425563312126702691403807242680849148980453744415775926430564398118489071350779936137090263495085134134324695355773363265213510652125067754463423088402878782087736768285352787746149214560581889449836047378867750516861310384584953416731005439424643812069501422465856182017006114671068491662231024953491325693117031862762870827962867194531514285566791059658021587924532268087636115772853770476204082151795928679746138119337259802214879555461880189492316358171976178968981177121184925584119639054902986602538668519174239849920938079733983891973198037200719193752149145174558035318569722759804990479064082770230550710536604517349770716338447200290206483621258272759597395166749683081691556367502246226244837512125204406383085516138428174773273333707435232861377632895663569458230057098281469984696262904758341062401217402320605304568205926195865018944199686074590893765459717127339566625162073524803645616679788376054169445525741404551224159752925578576088252643368829166071279743385945464500468872040874665915635021795807187828341819192949252670788889906651027804295670494690419320032845075521754656335579775572023007356142215823655846683994370636708893594723170543078109826359582542018807236523937394949154169762051248466580799648479459503478840343051133240831043956873808991510141295949280420469398501507569610207937489090890636822228248930401282561355718876297929650809130450769506043594184908832135118725987920142580662787786256084749522295770635942578493399012212540075214143707498498207224054851666566657389546777289043775689771632876326788468092346757495801067814328172761526078806292799750669061623403205175369820782251228845224485060605407448079211138509968083392980611523290470342577896072963314681647824116003224873407322397730237594857087314239885071290185275618761310809347864964040684927641953689167080615951082288995000737125043827501839214892832054438737614198310068892720411251053982000590210189739123541897579983176390922326051462016117283581933902852784571975688620078819463386788743042123497090696011846969645369467605408930356225912568891412647722858089646438098271779951098257081004571831371677283103405798457149231280480004415537744173198990345607988268780539818809847567538276478037011038527931263811555863012248950095205301248992856179233305734445056606854993963223128100573057496938806636609766187678456778186388442120718766458079819344710775354749949612397058904749896452485330250966728832289015934933345433546951350909784768231110914986223502955756670625203431107911687612705402660177630470466680663885267908178094428148006686868492495515251047208021967606132367098542376270134404683237130255616319386775541193962237400290897157441679588663839307203682081843956314580621093941343399003257977326653239267660185140212552840370363727557699492527612750255451839451804346422181776955579035565033864756464065106839439205092283047204135473104680652588426474622209746744101654701818222906673681347138980550858571391073266729361520375106692296220264659444280380849167262301161111810366004061345063636714121780516278964058975834017837383548524831494725197196013834195051578597088630657983924484516113532833363545502933924478261248153556484198103972524076028866732756215190665218874492242737960188795964292380563319556983257021994771608957620422264410045403433808356601738467365210080635123715200459294759723641323550188609413640421535365542739851620955535345783011359467606483479577603917897923298890865472887096629085959899108958008808135290673775591062163690492902575170520312037988420053812365553346926115356002006987637864966266484778430486585789234393797523090497432940710944299189865359048737883933841820787492837528416984536425696135096593107704939021562128044741660682703373787739259998470864792414156544813125908931990807723627591205782460744411372962498046727981973302813663337182250196730518008318435594561825663936237201713460809417151567142023737214587096546043926453957529633310942175108386146328714422058430639848394475994944196134534420126843386247318751815932304676001541955526612968166686283593619631991134470012243548284343971767114956316522012417582744583740512403305014499875993260788310384876193031547851853140783554828724061432470232066649650886109186831766536386877839194161576308988277486467965301901107103586539340075220402835961507446503925882303603536587694727045745711091531452662789051422294628994600110048687875638124283337500128690038194348472715182827041422711654731200838899102639477779221165237593807825847314268271806070831824395795745959477985208343087940544825355025285256623378792843033707011313892519135722527472330791242165664594731582139926201270092530734673056987007799343627783457823195258932055311429049659350207412387367887882978685642971962053084919000104451470371078882985630102488458530017064166534967815053837794260140823326935207627978548325211867922152445458726755847600196011830130887949170848410319886270911034331845483989942694870428619715887742648470173556259819636938394769776804514504130926010282463559369422427495510859259168081801106316851589725258114381984073514314535266726336681249180751525938181630055125525956324175714290141092136005049598905946163450087658058298184374450687710970415931476924064521104081942448929448991317685220010914267941771153868146007715161985423026965903293451424520763970715694447836822206487666828152313099675350804339604806984311582441064142810171370904386107305210196707538277820887777512858793840901015037644247226337812446377967475534619553980373809690936929842612069610212080346979295956779141957920078823402351588980683016334325035624778027484805333410982375977861723000019793584581338970372044604148040047261819816657282619053040385169709585037073036970672081333450038258172711626689450124034947425476422579057851801498338237720456953447608475231242971045912249946974069103329867403458240948233807997488844265854546123674471357876389919576565512911652317865353693878491273945213859214444576419338335251425770772392796484954956587311550720804424798862812954164590606725791408175613568003338564812684829413039357434808475003251990697463500501298705530751925602507873699969286940078192199642230561342775986066764829204342200148658167138769708459589269757347782524284971107102144229434118378548308647458475027569085442528342526376617057931466997664997868666153168062966662448490194515844767250323420180087800726474038871773086685902491293019608378325300465207222864683572695202634973434972277973618226831825740965302257022001156029027399072144087342622859171019943506544139704661067938435112826725926770010359331311133114162028045803186948495660189157665684130264727277973605567483595032837984486136976840822731879624023595515134635280084541506996402158220769756538614711305841103308246198723830312764652436630489343831444372708686996430269642104236874328511817777668580788394402456811597933142967923045630387576193234319157320433582688743616857055248061856724953463038216425261121476833969013732445657822261460105412190651860404511603914239014310152311295839189605842235461987831708779702507418797954886700014181202848788535476537490157573456050604979495553396999822334000175001026106708626099596968676088916685734572697375165054396114527444785455220116058426706052644225971699016818356246609052287996543783204065819141792391075353365408882991695987588874657553912064305482961470773816940765180807046019275223643719990737445650548143088830615763363255721775877637181561121612368910172745429041775788784609452811069764798378863774865058592538162732720963722136809258252562149743805357499945038877626341017834414697867086484433090819156001792957873808595178879361471493724564090348568167431639609462294340232465042746217938298666811737727745924872081127314793491857118370938022549058106184321613632360900148971641518317532196454749049833717515578849000221801090164227018311015322773354462753871922660390793339171708889037115545757866042504083243663020414718774744669943234033592374587977010774560906890289034566508567020724566772725242404559050756333960429838696724381919562650900760650155491535020650890726390857038541094390349363384063841848546609165388527894051236174799879687346254896152205226209078643356330945117399279222806092086973269586764089541342339814398935920701345397292752391489567837865158246271040730419322583380239719939481609039019710141622790342389785270778897552927562305777999164607222587230360770441636970250713397275878031859399477819220101539373494654948337410497545862653482373539244987483931195020349136354872681001322962360376060491243159128980671509312662019857558443512867625824662352125160688100011718981801268133129552997385361537684932992820186196850577327595456067335842109897048744764384882919167022381366439268091435420964714299871605336683780106069168005716735935029643363110110244253509143126933081478424719076031810565480223091031767144250918926500265071936801628411794725610542603359495159472547908264563591966915842909857802925338709484482390535465339410836390212214780350040928089291994619740911067322756030741529775767860748800262301878654537607566285619661082763707857176692999440296144817414679129932261777363954189872868701499273065915338761390654916548564189867781762159339599099117182237659611512064261380100857845462165674037752177472961621266108258729569256912639177866324628061807191582562758880811710002444155054805038644926397986433581428872782887733004974999603499588200609821337935159414774740508021810120757447415886051271618800341107333222942357659193802625930190488305736515523864969054423247727716888115879286388921844268844142273091465580687770370471820835744566023260540721233527101555626541128930530766733437107973055206883023037323089698885114768055803383125705859122514800821714170720656176072183210726407066526529622025297439578801796747144999463586541133984059642050444646570009806073092436044773146894007868026883491256802481041864915099301797406128091354359182273099152704846207131602934728822598793103881470823875031641928037603939887008040642259564664478771052727237075458092442557280999510753052123483087711521811670589501781136225365239481170076992165855262245533208647153448573854471152912715412347816063220656663056088263416169274994472706416954010295292724711898727439552037428140347756593030312014435825274580795185767694112584893190888196134324700533106861690398859543071913502514513110003807708175193582655272536653551455644372096877507718578415519369401332017142688136771607487374611356792063043289148642442687781623200456830262888063161240353287720352666153066096081556682150718878519879135531166628676393839882584438312831487137784245193900699672247178443252775693143546096237396892414014573911582201713475219352565640159076208897720056882780139621495043369071871370247765545874363598450443413799777249808836128615791986500099211519234224424444753777001299417813231955615071580938638638909111907385825879965713339223421932507937743569580897097686505354718343220552704029987949875531215580416197360712821666544217871791104276688309485851467553070798630809250025446708394749569941663439487376343172244088195327563370258520829803225899304751279051980350676791811290888543349850679735763631058784297790917383345396577180454219663478837894613648367038046550397220214985954164745585953994526328282280423024241873000415926319482422779708861102379999585992383091407134479554624524662367453268034097898256152963764812315968719627152723102329555626855502251477481955962485020715258322399681431440915190401335696631733326615921175120458736351264113145280575784395593787415070362987652346488077520641319657486597026702693935076285000050564602159943719980494931555935275541036586547296889409456615060844552856422009777440024362562815084295664347519749176003099411185254066715598238865510864829641237659435858277813902610378426774078650364059625966541733460498280681227279371221254810448594650286544819867519576322084705257545552056431124667136548219151178337759404943709670554316882339761028419743407788249447502449885522890579369111683506556052567552772474605294155450067085865646301713009282915933152706943788223497506675591844612112755442983061644156326879344575775278531940312906004184471447360796915146543397954098782841519812290707798456281414827377279779939190429706187612966868654562143567215324962089685098654059051657637315732166193431555458184512328399995612975317703833850700664348089064648886796536392953540680937302501959260106059094601911030504505986063647691972838888494509361910204878210229248362425141584588411672547347468267797839027990009067666906835623328751892265398934983644495059604356497475824082939007710131974987025699636365519064656472030732271719777503445599168837962898969639708360624174824793469566913021537419693340106357782866008530072819389361761346206442924288555952264891736852325790809164274481403919902818305118031678241016900231868226537355292452912074275325419153729479082114477597876843433897816660735706580546531085328270252081559348290565481415028802810370816015788565814286295933395529327538257811772406044031026529534703328991049862696492159366896375890195019703316597837844741123398566737640264088155762545441433882109153286318523497268702456728836857100784375397176098633082639524426995910494392797640579584693786721414195033251991380486372297184559346986862972121433950894572352570357982220339817941296656748122668485676908434414907541763077090005264409057764810113176684693157437925389262534447237675746494175471066128585579518023467350350574415394072805297734158138835978384416685234980022728195914091953555877085315240310678223713913179517007536303666703986563126896952679603717620208144322427133828546444056165609005444241231578248366392964070967450370600693450340388145405502643688151680149586687446650168245948116031734530419923291163435007295012125953602917118565767300915511455087241972739249323883966847499707569753822853587288245018822269867509035893022334102502167782732676287690945308905849455717994848221071829966369833857325446924359185684340227357418754004806678401568179600934102984839626399463928389921137173014804240203029774878202011802147373827228243896004779964120514246485208239947391696923382815399120918246888009189210899845010041053957006034378262507105029437229087508830497820204662326435110944446952341318357271896142786116758590703309877224579822359237294573229272400104335520366096197554256415472539742933783061984827908059984263011829854159585807534753680809024494879016095129093997965721245223643008326539832961572034941802133390747594494820414537126973410728400052251503447398941982031038369272342501175612253110377207445838334487042132612389681186460728064135361563175205832877181884856547292865537594561966955087033276021023646014480982514203472725984234213325476864880816133739507421969405813713009599542062971136274943979926809732746212880031011472178280613941130362516033621560847322539470116954613038276280908605315507940735499402126547904569783234262223504761610995278375564164340509919913147767954919425352336182430751064385406837478069114549065837005068243819864372827990197973863242002800721532050027458506943382834325408227781137539738806078273145972200684846264442223470194239863090442481304530615209641866363661112470076193100545807785015224381108076762009181111036139800133271450464622865751848638757724579824443021126758902136104368810781449130968555421275757307080800253206460499819637052355836645730926305913513942800328597220812912320107698488648390536850443453445105938400335928858452373616126190406598412000046991512930009797689217851958798168002344548663059812891178603149675161339896526171668217587971511501611142765106722274547553436575164410629714287793428509291596036515290686198823127221117962152636601848909390625690500614961846421084749050878439544198263758122620216992370801529702644202959513282801647233852553900733724053244374721227187977174405274557877580882796564022157095287844498108119864827140766847578040493063631869444546912784106804596125969902674928776851113523558613087665620277449492955988597612239183061339194506046267865423315715672295515026200880680156605882332354264295791862810037241336808660872610129292968778469660639975393117322327201272255164623363089864610220925511146994639850044341626270814846405717860431445451703353708431544688022638234475083032363154267402996151745900888082874816103884735204514231310326517032231502887257628432833201669044950619502881054124611182913095781743500847264768749511194429590757908194717033140353525061835692290843049665622360201374469207454627425677399783153566221070188440312821978587839719252049387392118412439848908116867419426551073390356662719860088049426942016144220808164486161842048574664985818047861503429498238601578145726653683294532896915445266887088430820531051309992891934247759586834486142068537235666553980165254946246534685744962870754779914071489414819219732471792043548128065074462434763291567482341594110477616076919384148015160407453296012090857568405901500689734356616721489110906471433146193928392642635035203265877396290134801330395948688957058258814160047368456930826881143547585822408596974199593126269750672611391266600867148701168979599434851784357230204750239683882368817517649827522138706210487480520312994180698425944386786171583366976589329766501412731360625678968965194677404850306562534824391198746437457738779051299748041818265492702370971018425629263624000122672081476849894005036807809615669371766680834980414469723461818249703114457498371443628835252978985691264408087595410999465491359578780212433855238967497589493724697497742298331470296810500114198914809917071315689846727094289814081791998144116205954863883487713095511446015020929133755065188968345525812007568115147649589261724411611968428600058560877163122602033344062083716420238285788356164210462410166935162702143548054819225069009691743468382550178267908581580159162803819703086655243241934286956749402415615713430389005678709980347759707165036278834505041467784089149295938442781619141490456867678588631383079018412518062654199486784458260364804683088359353171342417602162239332156066506156960126758665188886395072666152051269768636133103490309046883544554258065033545886609405238435891494045841196486587011679944339189970200199795350690383950875585119089802300992368886320894502789627877816683759679760123791587329971738401437505275144585836139786487888239903820306433822108039748465610892755266576644826836532926402063838031668672553544090917182807271858629504870901117332110600931900149918972826863948088462335416115460782382886906615778900578540888716835191037461780277078795611367161665264643788300013883905853438565163904489115103416434682221710126213555938647402791546337117157136656396244927649232613468426112957908406334363787226884051624366680212834694463679250856626512091570369099066224158554736602227921445249186981415600984362394628801208462646717090344008384043572779174265969906679600142318479192762024036003340177609228648793726139356489716586906637457193647486987015655377011742604010262200069675304730623253335930544892933388498404282789643929346662716859814656636401720847089638571876874208499636228703694571712768030081869275508604829703264784787143212261106419311553654607254816974696121061329050982986230864707899377303944050274313738548068828924166368688541285866303647667839690420919757001523958085535556485449414608147344768395309149100312107054521584271999247628069206094917541716764018296169559965272838200342843355021857919643745621724909192743512161328410353626399258576989988044009660593912345415268467513274707375955845097615090900164683761001901927809272248033714936968346199369565220742718608449352120768280634630136535546778041385659301930717564101643148978697250269161254862019621460648418141018689770754455154310014690133608642509724561173697718468315754146717953414934414717473658940613727626675354932974807011995836546480701102512045437182438421398914560760338402554804746718892346843246555618399015254479972329507027134762215954853800406162161255948783720429148244548481097152210739543762703405772794524087802105803764440449124422436470346016777249286185217663883449864164468782581387758833648619508737371724077159306857016325386521211166352426601684459054551765202275906680471523294624548585925806902349619356078248067907201422372535179620842975995844771039519103038267433053407539575168146265476950783285315764781822452567305242905723943651478966160253160704173928931061139679067343676531608633178181386895767371299070164714555831843346981268163422492667688251532618646247355219007735134619358118636592674719476226531441064394182858525368316631887399022279289003000334575504687743049260476822419531750429489939468974719040184673643328189846854178048997185261160091009588421634282606110290167864063458782864048994558633115538299913521317100454895707469499177093841904129971690344100438919044587020621726506707427815854682222961526994524086243858636576739589487302520865401235607053255089122590121190947690722522666609215391410924599771452678130550947703858463480086811478734632511055349419366759148458298074748464917905304143088288797791086374302843722547917432576840996162315635700185788623704263510217053243327929188099384626613624927820402044462028120030233085741784624538780378992735343326774526162959368953189773496058124780932900388599084901257449099148445244224398900603968919854551772022247424601816183385637522018473076662397404918450322819989135867472556908330720557910576895188560233657535721202107506159747231691840232245833908948051794302089610408085624552051562420896906887806612408640237314256876670306898600166346264905109291692621106221176469704974940423267859237423687340118159242739870124644019509487652011151594869055755250180141586029579889595773650176615514250390237401989801847630574556920099925792699303027873649154235252797116645811262564989003346494178355065854221417867006919525287867293880686861075358945027070284751230444665828268271001423824430110196459506967372543303049538399864851245333095589961294771391469264513240317198184956501905506941133113053662027096465983710347998665576383272220016068159055992740860710138479623980572567474981825473901197910178611607368814296828398852754853257459962080348774720484851649689342922670534217828727423209383784152592263674779168872012556987445494768089903761422559264614244666168530674364232727489307445075201462604200976443485787272164445009473399162357939026652648895963214796086833461383786560742442597007026274941819923368017782045696309278163641230454358546874004247651879645024174661127477706756404081233763425841267062236901906427037288277606463088594779053804738492121419586741372927044441104348203973941616412318168911479189837833573016201138002510076316422821397717332102036613958068659713224739897975362519309122273884552034211468016117002988719792145326067664127053959800884202882981092512521819908040432226661987609701536061542502668839850099931470643146973792014197227438983822984998570093381344886358954202578248567869144761691998530409240422959158703957917032399132976563957831105154730615891509679787203650821003750765893947347535511014176959295330715258849054903835746987780665499462788261504813431872273459069131603571865419120566385671010480768730187961366128825313711868960728233707938386526867270763691611528053089547854431347906474050992803793858374813432937256869175123564216741954228194658493774553977422981152205501321472907964493909349458396141330073607098677527683574801379735392900009871883134266597126234844932210658433312659752986576826229804416391871096911718092069036186585662347701856524087613217780710114031386509493064990461007079168376612570682522992655767685624232756422451236267641710947472672814179546861817147564898303738028597628136685802060558451943145708601939373077351532682692965197507853592142217011993443583197004710151234511290962188168483775620351234799832636977073675672541561484418435705801353099536089762315877808583867886733551957605023935429245861407842378831307750244039078115488540466141101587860084824084270679554418976714737797339140321140004766116474333292394491210137714094657463503959760730664309462776675772070332218831667733990648748618408123667350530365379615092431987037529042451422843173531824254805782151160977868865691033601283393154519199160749333689675274304247428706273168583204550528229020138816223249189660342228745480626821441544928877584137746784113087285451415043733477218637103898159113747939242874530904351467146608829345729362157148774768678923425628122176465205813661217399671364148906788662545907554517841827268680587903807279956115698262206740736569123002835229914503205450039506180202591991420585397339586099715547898069572785790250862594809921706183550911118058921531582225545782552694881788980306462785433522201152732929608155556874971462732198224922336666999230164741458288715802564110620471887790956757615838339322927694720522944657249566903539073946237627831706892670790623838012017242422884414218836224655129067993970876490865959499230643702512567986316793051626531348749783738091558844622856371072537000168748412259993675802221051314160369419144175955639566321227324802350299842039714801398878639223608400333949999235089407845832494030135104190866239887869752224490071443628817722002180012491112411440983614441488461866810530098412199277677221878454383122720287155959688841804739849076197801530976305409223138976149296517778872019080324265278555189539051710934003101824486168601060535801418581467057740859482395806892672694402488922365729793788188551815964686876244358459369175797987296832469063849534204492834239930935584503735367970661509565618777898504857621502995824820313412912408642486319394679985388836153785685659659240303177296670974214606610287360208040133163431798100034685288232767539190400519463336967228684612090561154262761679872550747418192171456528368720049984735697083393004210008953211644268708372195265220322994544788742593269383116157748490190705091222518118867948635455074454688021115313676152890063080807169503904288750598963907605132476171889945979105855913320088454826266824985796052665680828538110032640107803452620221641315791124461612052754606508600115426599215600451182268768283054302186558221321192587791986637718411399249856495461090666272526669957743984251613854169281963370794513327310367419504172643966920983264004973019794901107990794090659990284601438406738069589333931031480448560607289624679669450690095200244693145882214783846169550500154487295094857122104133966980769263030094208775709462128036489989649277219384727073431505402617062324430053519304464126287649218427809364708077995151497176760575504384550451980234612637493909546165409988396545493411986057902731507009526192433015839205954674304153081950670326266495715528510410998944823496971002846784209209159396661980258721503978473424098096861492068243137117459251114913557223216154670311989011895248178931655257705922677920091256971862760212350487689721423322871971051588372721916765750207875498689938909468190498098394407682942473065355454840181895193445446344104820478014592464232900991836800523759272227467588313722362664543465458284753970761308629332995313482491209859125568420398891373070074944088188736958422814787063108971624465813760828274792634610020798421079022422057394548608531049940980310586799935736764923761644604662561398976410727085108327707380189642660162382724906533238871512355657437961492133639103695692230804797812822213264957765973104335486307107100850371715689706118163524549591650963693528402402356665526800380894009128582659590771473225570383937312442249539771412578703328146172424628646490829119811129747835229552672478957540581179555676925010142917920184381664948197111112821967417442020165779412364180605566546542671880026157846906609706926721821821838904808486556845300057721856700275684912090967392515867317164751793180635476754395844949978725570032015001543034113686815841535715593585674988109222626793600787015787377062885403595743760044868971330559667048229683118759331273504878680918220750624268293293636851215958118100822527722565703329218059029783328635643557724381470563862027078254211333019976627584246552467433570080405796203587100826661485387456424223525361292512688262205383171554750296746379673901851029497950308479600534564764513455007219198823808741674104186508845827067546661265792441815043395619164022724700511865993599243068936399298152550551584982795194227320832762594892630878472259967746588199226954255035070989205204438438725995326462770098892984263258174253108077891197106784727599789594556583895957016357103368344231109407271783267100321173767549445981240661900918680888209547028413770405604846225555835421462726881192181916839430980550075640305658059194525210998933478009268895089110915474130459190877316387508604577975707102511095542805224722397461783904240666453111427910165659296409164765062547603948028540246155199734525339104402655794954044166097942119634692643709586165522888357171504799473897009052623766051662911468805591408936579238479796383580837789338898977773472513775429799234863269600004675527342380857192128189612660371103928831574892671005108331477816260525488300753512568602820650422319454518288277623261568909854528110117582030381971549128237200569637556884612198663184069211780861898085185593233166625760048148211491747975982386372005488214470664146164521344169340621996118427429040565382975150585002678162712258416591488457613990977021969406525945043452547868909025934534875184942410060749788304492687863782639209850263465473317746206964295446310708632072594777816875733605234133198729816050211400803132668040545902379423846087441226143712528335363722723842081745677576185634962662835161650878943674942949945675177545054968711961881425328766531162651936527220618374193563225876448144369403461499901893571844654530374931233089310330407876609327158758269644735093582690374420220371459203742452541786583842142027530465129298080628231668237246813802727084179372768568344116077900613088978008274459028387986320579710019542051205546135647122580902100798114594113264104220527334693481408118751699460180878516804554311537274439750563884168224673807286795679437601035319519246809973180091941355262385169818540672151241021380104193133888714160334290597380960441414713888705343311986459808300947943869535043812999869105313399844543750067836059465505935288722909490539432455658730890197671804853560955354925185935497061565377246198220802673125097695166792270352933037527807371132808487851817591713321653824484682359877168896921637399949194544456077388833839129156755645947640091759766713977195454245752801296884805627315110061728635380676349016248923950896596139126852528363863460437883614300802494865733532626112720129074641035394466274676270724419545694445194241715050859709413909094636488803026435486799222756253499522681228727312224961561599827384159226933855509486688257854589985143102857435603802546615632397598125078002645569335700363343933413895438962092687118421671968317581238764695445848802641733928263823850614020655889657562487401789838580433132983533722499762346277365243599503836157567379781654096112100439698184282426615943228860747785696159641851711012142849205326968376765389799010130997043685691103187386656191603001667280624676591274762795343089455384917381095698243626410676099886155636604693977758568920152377822293823685834204523178088278124694155137643508507817005019574049830056386500417427066668690211541767740397699028678310297648152989895585207460100927051857687607947718633120985884876971087755394292917007550179633059416444777178543129462463683411992739769124160179911534318116965981034698779145681440774794644033649015702184405589555435509288516588894478696957782099729362317140740759481645188114696888686215197971838689577382552359765140547638954536377620907341581230838782126441089368112065488554229813675765750130846569283999213672012669800383801000921784379388502395874574741489388900670082106268946132481861229122639141542883451167872541204123832573174456398827953845272535624674308372281569867249052793379224860192072235236705644916888168314210934222538193437240772371092676516020370767702738675768435278049142053716103817296502722977337659812696016048427925381958227361132810465394455874649318529475386170538880810254717703250609132705706126610305912182693525243758592690552023675746026916204428655447250134870560407372901680885245134641869482373776999652964564412117215364648186665456445688751793179636220315941148838950755118538091670761443130110422985402590259502070870097714812849732220407567671439004887233123672292884066332953043014276520893805117558655396428307766550477184137964788960346943711558709655923045722834110311700035044567140488289541654665235615441538492628380795522828214190773585099537159914978959698112098678870451176195611228430692135804576997196637690615011737052433473153693826537569401276559301623343798005106479426147683354715163961480902362476136507532182246570441968217795628595421575740241462034186178005064537814401858578122171005851062681580371799955344164190093582990454868265385115166832096859081331111356761998590111225790111714934730128736639807271674530745217596025817533784628995975617381744420998377474244230438003396798478375138144736202385510341502729480916182326803236129918505990183285522468929992565062240896535204323637169842781433144736647619184506786410443972321630572751153056447304930109443258501361712238415896559266291021332233352744417668536062082702360133702822050981978332682037981017618827862668887067191653105556304728122671655160148226243576854086218653379615627966622625976170159440436588234387644114570302633292971091336704931715044438898576496600028259022364358641660955679486289878654881570325710204699836573739073196949407580125690001941054501681951868452304820459539085992954868215849616378540499500587170387808345754460290144000345677437249723647160117072589578922093347694775432159893591456739680580716714166530549262367043561353001147208493782204849509902818461291048622726592191937353527856657525606141988187911900182469148813399519800554180081317670213429262203396571888452139973664125682250064766095381269363367575463477226788658996596562744454821970902873571641915370113080264592229602466415345572201651965457353784766011163190045536864290429730140652565878106419193130551397917040284398271426121980061491510567156966868491250046974177730209643336861015082318235728240576829237312219380376481166354514507940128627433256271069453534996888867461888862661973195986867444440483857417606533235416094188574939062401063685995905469603563643242841702105625946083063078342623196880029721453677629057683533311476999667420318747890465647981122699759319536699127383487985442942218712153171831740294102188374783303149260972539344270904488659413667422591764084860160693057977945100241748402106329153192748036051002506113844382606635618193497918143310640261779744721630137638893456030878873108854932007071486563922147697064465923489084955379355972443817841288343197476150166574764006897300661546944237637244193910696249071954321468324928258970376277992809418569967682844411044493381393782306501411166057117901548746990912459770553557391685027625767040423082731567156846961439569537235839190132236416869852728941743846285957490030446017409924363801323834254504204038289118008563633454211810760798304981126366051651451869237790345151004460660947363204273019350757493671977073446719465937563283142331266354902430306216743506251445378087358142454273993368854292951758149970589276822086932890208794219179791571214964156320255417324238751430904487999239568098630515444570893607641933216214035743875109550394834279388802821947734656700849892460466727380136663123853530946974612393167144903546539493877627201848747095722086884011491824505988641242267959504583562033477934720115604347976304957396412746472642427165680087487017104563900545575208548145659649952314073835514746975666601941649884845516608891430096813594957419969972256285753029530014391910000256508676253078235489599366841297046012170145475610322487478893774460465512403593789482190346833559253723433659498319501399156516286169308679373984495291422635219201897406803305734900946281901973001936134671891155746972794311195726760396438161378399182185492472484922820242288645641357255230556494497063924203975637249086108156610717817198195150824385518312643371354838723483196702068153449222522791378634099729339253608312387455096448403599297092424646883551312989213619595570335379240411435038196194255717045686015797371368241944336964127838333524377289275993828634037736115811339036377096553315740002810660776460111224182209740624362766750941310373065691358451558592098269430846182591426777401139292469398839435220362814402780057985027983745853076898437277512947286200911547774419554064787424019856653725815821908001359232859710177268448174648338131768568159433626533675773714256419582302587626344424041312047478174266990885798750300933316197504542056993764387124539009267753183893434919333806629368583524592730304258622648378416751624971565829762964699360093263316869772901060705489580799204594801409260935055316206690360592176704547455773897033352341236214830337355271197737632201419556109254372876886553066899199663029058432569993538596945169399049271793077504265129008194279168238401831025428249920292246440508875329121509235528728803913612130044179587475074629049084461857856038578978276577594605583042973611769007185653229174027302343760716546891570219461684534315902050334484065830586151374909470599498937010439932556177546866964246340473377654141809251387356029953531320357927438365222763760597344718026722090251501884860536301884011787298945865457069891749394492073503493377014763420577849339370054420396912013222452821668897858937755156022410018437944975381162852921737726421131361902622752668076292858761600047711482587128050155806261499768744723597917979271321582161586213016833228519626639279201242952202909802693184373450228179566953162642206626739977538450143653474777211593601798327923604255920613777549386972424017728937516017277667414933357054878733706570625508421047685363064274303134885638729252975380467909798288941581053262429055565663133335442143178623873232929424405559812786673793434063218035941927224915697246043163627590092116060884968837926678110701941586026890502671241825290220113036783415326431119791737103767003744495365747814901337410568422690107235637920630510247839560568574425437915583826228696757577215702443404343966344499963880220794278067875066988082272848185192698068360374662170356584419448485961018019497365630852447433290510624321363487114386720241791751149371771143920408733893971862204258596211894983851078390727928219046033332337163620834799678217840665014670397187497244781355407389962458703179413163712243547197089129369001858813134025240031374737999524834967446441009109982370701471043281850471864322733418613678250431515848283648196862427592773305325300716472789893161019018539652886934761541645588541037695946435682474078856817429058274827772495473498347497304254330205814692407662094952532286021682918736514399444544214086650688261264572459324475706921169385123284420408192639105984629129849580183542888442691551802453429638714034260111779612139997100032259957853476009202860515199002560150451756813683979614791802976283953509209998065383178961591745790726670896136045513362502670041858379801870744929543793294518677002206161685835666978213130016107338818358907036729676286877653510192310348903917734311713409542465951259720429788407530779887080597455550122430490354474652881872981397984436345331150703403176539434848171218770705940470209630302481136919818526486336519761731239522165734722225793011833840202071622709247425188158148467892080211553156339230251714977969736107446186094981052908066588080889699342186851653373563785562039691306526401363393629268429825124600942662526818636403803765255266390121047051416985153243734587974096539920872617636364416765738836891239667933584087857404258066052057477017920195540291320433020495384339781566562824428853768200123272301876802138307487933398840403385273569322841638093656681669987685131742259513985366965799219170856142268189893398148600856819828162378185761104214996452846685830893826836036508520667650082359670083660804625772008499027322539827523006445009205281950346638294021832990725280539616080884403840454176381135725552974015383252206574756354873227438092040171034253441740155559195299245865924311772513042895168159052208947896021145877108799410365076714341460147095158117433705481827086219923947661752296895561553015894806096515342086272456489695844738902948028214688505823556429127612813580396827464729491210598340601907750198118603312332577772112892537937124205475094363642002320084826396679548344097973440563693138457634079173705297562654288946193590752836197034384752163226164859470448618958063826337391528888557166165853594233779206188391851013047652636235479685967396985661436484363475226760406778692837025751265389965489976726378592783411178550694523978067739340035896278791588852736745929804147194752849154752218050932116845769887432586341309732340560718022071945693099058203916444925919812517228396051922075844846374127741195985402339361199244135257303745660221555934572536153899101484319569933310293510824498936729762466400435136008428002595030487424653821420748638191000303580772113270756321112999657466730535426163667266344462525273812159970578876031543454947146578812393045375736938375794175512840209766140183364773759334017574301099121581695452413248889638294651249510192837425901478441596546703477188467144718608540240181286463191443753637544438262550876500595705123225198253421443870010188237587895036075495133980386543313079963864150691318579940213613506073646768091338520287323479921274619772819109884024702111471224743343081395386975900014830966905082074839324053073973750305911069210969474401220586661284225730929647231816073464616388499366243290344165181909501639910525244314854701481768272260668421005337060289041776289870023815767314032226737794689009295050227301637459619874607265902353689650228521273610712935118682147743709980744615524052820371525797847295918998850086112207084380981179394185242284253172938754663746215334275130497253476720944638702263288037939265148995527060306824171585804973160331957239844341470682959239866958328222139075782176693964310890125968789733017163815997864516664762224699313526421731001728250020742977365476724739776965379432541346513701608140013384364426605990859761427737010935786605820569399670563935400723006543488335755039868012009282871322373038618246894186044668299838804221661177859849134272100409511910362381721695115133680681850292032900106314236529663356324894803878087651634694035596268940710093681905093116333773532249362300521122317109901705456344068142452808023923960981664399486643501687948094478743163822220061712603048612544855650926403954211698345117377005279333354896919040810910917822318749194243799189251897171659299137535654629345087432107868639521009530390785788493327807548736240995172664990850788616410544293640746398161471529385484461417575691420464447512678499676788399634591588383601050356832937888475891241896229010548663289595195262612544832433168160144937448078980720662808728645970894447843119433979385310069172360037427222439088129915621884187449818652139964026307806598116168508520102117343631550775793730927268192772771556534923033334528132309105157808244318430944669570174107734879229094244863692804538342720561117521382671152433629765025185219523081383447884235409136349668956675166639178448445185079189238014464859958690886886518542527109922044528027967450215718330815384437852723861480455944045745764582479072118336478697414638591572726320756494471525450121647955980415011825408298117368114772613229668922633120701928541676998648404489236235666316021898083831405077264985448379649299802541548348357713498271552582745683313127833447612743380907542597644394731829044373671724864207164722656835112663066111448245302689118909019821369574803263952794021555227908915098510598395950871247904178502166056255436427395056174075122470261105156144137819434755340990081996776218931600631878454880581204209504260824100315114105795942261649019878878134026466728510360640584408856938250435465247990019159506418630271824389884056696421213902435176253978973663377599360920520466953797630498833061645586700440536252112199809058730727582496898895186482443433850513734099736731759807149147130739802372426371115616946976771909861068191048988894918843369758782667779878762014215642203534916332131600345817938342398355596724634410040626703497614796668671779995970816232538674487632692523735667833653025576171734580646228523949410915350172868358491588376325908442299593331744854383345430723826868558239672768080614423288786419487024226326801529521025438887552234919190529940667427388187737002284947362981101216078855539129692456743805750609267092246670113213292963579013021972690458725742290532937515092054310337954940260003840704020615767184590761871442406107507789731889598018194805207083224853425604523796108006577615545234355188300796474207814693531081240140978987989237412287736544117817140761841656032914582040108465964823968226703041828735157309140091682510726025369642943925708690280678965094217103923455193538591779488743619365639518763827949069898510491196606755072373382558596698740855678047566322598919026972839955444223566181457003160592376360541222512671875681908028816588587079402343533324484349505926773628894295142849865641389548825271519964931975059597415836419135578070664029721355396163731428865481124510702317334360662649402282495633855650258979100126327593843435123328540440249606724173072027024397270572313865726804704370926193927652498536403953208440482999639428361134199650344270955087534095583035880272263077646635711810670977687578770199440939155300150238402087875004560671737192358416179257468473043926799775268661829588975695359481597760870653272907118650342116107955944824704308234171462157516452750662787276136823289866584945219156816040282002505709286060073117864844341765963630770663111836443831083591165036914573270720371851381031630283561040897054702481555970007327392123331314291758167960752328722349110485392829177366119735569865918152065243313137968834539208234448660613354930522543066958109245771600307653051943700778094333773472872129148707332455668041759075214611832762929011005937693293528713907329923748685514857447417655354081246699325807194027737048153374557287824957601471564001811123143913089691800739995718824316853733337819331364190651205070060122715524639568958049935932090867392156153441300626752840227044035793232923745661281595058028965150689939476822662479188713157675030563616451807170694814658745925255183786829812641154650880085157570806693762146650629500551281150677659493283654504840808617143848385835880963145948314153996612517372628894486207533979877520145775606621752025409056981085464702720796658184441334885805833896155095332914733521870267925180929466540631450399813997039946640639192934362247977563562546912384360942543181130318445783908822665231503473816894429009704656366232596955535447613153565506719005699068394150593906291610674478164776948367564302730693298829901264130376816325480530233986549016730016342544208740686832740031181997341009903734184479503028215900808976396332818483523893373824436650201874992209593510275926422026700046809922150828664298162896719901235865888064885990106259295503958237722491193366144349208522228089869947035135962082490420896996771453806462873541689072817656966602441985262287811893628991156180287036415811879389731196973743241403524179416674793371165095031520297596733493264259718301004803144066758853341995169217376965820448862067013025022734765677213153057195163872287489015057185647862225371458673082594748632732468474853812116982684401307784909485289925181710712328581913015125372392428048720237666422708937681177937902981894984685318130566040428391355236843111408844205774156587137490237861854280882226476631772481758813179760037438805933845778374320399403225983600432487876984495043449982304042817872666021914407732484898874410859052391083054443881428619916841957729348368711836835134439958397665514423447740526996861594801960825170254980463512362125855090625155646495567896093599736168659370614234344325946445555243788656112155972421333013885566661256717427168314727227770621203929801849759598634420688955561529597767244745416374788127599521532822447828524888735276779075991478224365152896000664638346811221301235742931720455140643432370380124406351646670857433897052210726043845329561151622879727619053179210301511946257629804404779339705780495598382433138970985880535051959497973806113552040222073717463054005814529054744581306304177868085767169923241529341294546744588787147720405452594088688569436775053026296119196443812349619926198050351872381061544454637008095082092583530095829108598378479416212219985685545218768796218549631013176159284695662412397481150357220357388864254972663894876786939991110550031209592999811781528916778237272569106368031019914417024941193504740136337268889999590731188565194380893867793512615286868858993956745980269223531441321152576589676757431932165164942309998892476168246728957917129444228418031631796509353365887922178191077581122170368547686613819965690337548551665866327083216349804209820006658411845171892053884174542687237627412764467283761981890466183277780631599177126538106300128449143199214665724780880065228408572894535463491335014048178298963807763999179061173009796018090777827611759537365603408516289533810567284486639641075512779332954303702916112647546477862084241610591480337184127730159967812924701242191518177482296258374312505483408575096120700375255078100382278599379231402570752087816296928422089995341223464034144536566709666076934247361499780673996864202098003792646178278142517424869911062983120267922308996680653999909956934852584908105568987479782613930202863813456339870187854657632751725303065292830072322184460670963164692954454436978668018458817865380099487669330020280366956892968154350588714315845798552178666213363472067237945208956402153372260886024443671196471874182151897406340199311417407671879195690785585724747590056116865132748528896362739336207236559390284517128798203375272167351302223765718121302549191458389044809073296917168948422764736818316575375111421459472208901395434627668949222099439948113835548904071605266094789427232544080225482551704487436823492483652878298738894751860937927254765696506790948038454932749659139046889105455366906867886269285027768638703354095674701007670863227750854366113830949569528392031496975883352002788777532474760898117407617167980454779866429099622287952513834007098151416344954198010371379326699303653340394445266816210782577391597590933834887710130847189187503713310476803186332086904347690656558834251847947745482004138872396251506783990509894727267968552556334372215687573472183049088163376212922757191867934572411883396098369130706034638113966240872842121148655663963546304401139677161030679192370059779199868405211523407459523698548291249396495252380060699432637740763647737828401811201305786615120128760122777141753709587936721822970593661509114158906448251675148799192470004928829680034221014945272164165768824745362878774594260998277440641061310571037632094416233140546531347712676176855593385475657229625665282066917950506788460756438325408845543640001552125365496391490128274198442900888711142591572254520413607097987582729402237855594157285643763131218002310179938748010466860827582860523186158179221789820308253015645338792651049476790793072497666836336068196240834626865774431142370890817996136939064180019492521583823838272344944298012722562424753186277563311736099999346962455070678462060108056424371707903016968152033488862841995192670294220391898568464362146303343187774438162566372085660151392072511953034191856872707164280833809286665460818726957905487626364342700833643179438957349267138318129673054903624339388080977646083088176496242145727725438446262730369985587285049581043255162168977753270292219506326183561749443580780992166682587638137149266234888848999963762145211333157764144133387439289766375625604527018429809979442086570952914090834608212398053776920766014198410325580576815383339629240622053424889056604556036294568484469246608209201479795715505197245910423259849324727918743182334201957511618977961866916531346331754855371256721756145106268653221531491754165824753405353479108379929854224556018151522831552976155000210842941395910681225410005073715386356336360789714586762352880526731161302892023112628865220387546597316840693775340088209679981281336651307953771517548020020342964133306499662098829453690581822140342193174346416851398293751588035431113021624550398243530512703913076361165052756320442844526815070571152852169903142074067508058933121666307785625260366714255955201143870909356274209903806341002966862548462557312040550031056843658426655686144924006972860573262182861727125904301859112621480433489041581784884476783798502620171050414402616714687906656859494859737780041314390902712335265507528039486416961725145774400561310794065252241346453351601798214814900006220623089997715272968558485320959157814624574876226796227543887048462264159001219453831589362860770820847547876984640643237328243808707662530393905674079303236355845301278984005954643347261925869271689866207635865612753198820487598804347690026105936021689674470342016767890968593759181699774923506540893483863778420980928536846604148546166203275117995012295372452526784464034950077119119497945190230182713996827594176587953690259427304805954674630675881063279152420362259826941275244631281694433722791329927458448560591509931657598935812982636701952156349209340355839899003873510644064351285620728647353956709320962919522286828633612946958393032806283110705876628993899566694598531327273139594108275416624295331718506172697719533188864436976612263103808129095648665097694815080213902753149240178201655180887032137955336216275317277400794581667761209228803841448682904961032252922272983567066548941141114934231440233219867015054432663255761055493434467071654291694981731188971348386555489717371370152390486295518133727891335183979547457743972714072208153479538414809615099227567874405675138355882614749949776803901606925535331310689530871095682463344346217785374346821430338673810187882849579835154335239933857925421806251277789993119371448775385282984653937945446028368643389250576984096435336671468975371737314587690240818884999195452397446423332782917538906752634359330334086232866393398720293717461006230898904195440627412156114082155892435978507637335033934040636598170685291940574080328657419526785807511054381606744045160678990132177566346010570064796404581917875846437267354031600890179057492055863424409362628915730362759704367578583724945196251490641461402834241816091155049265920790515826090798417469853689932004312454917222251040009885548892997906558966096391191372188427529394578407059722974533685282311689679765948843031803313270862675588909874709907125588774611469357486809124550810277890480152913998485191041829040909402652321171504428874023077848214207197730157734312109511251568822039313248558950799584304660216270832625786316115286927281685339872831596667006227787802527977344024344149757912091198500829053822739520085606950060700621050742212025160843396381462901246689365554892265795382965259064706610389277476821559842590276410190572787297717995213166907599146768774388751497707133310796423587523745112727809627921008430473233528288129686188145961934718346477774749632118462274002551717233986963399832259606416647470612410522035415270916757207991924137670555080499683925879021325278500476393670410683221188430679632683468868727948411935642098930438485464230098705138386819583678221066506519794646581996586702932338287221598372879638351950923518923359933448147078816630035933501456100289652172300388079630844521287976814889875415079351626047812030285039096598331247241105493818708643649068754897478987058804447362564050382307075225796321315009313744479789422477219976009080241834131825458199921484914803718279180698715438826773219139070104946936582861484278172557554268880162389616889277722069795178623181012044142974477616737354036856636742918541051224383188312355454167562128016966041485748883767800002147352495144624109304391617950385697882433461059994898708646992612437308413330190793405748840938824704039903391295708364428125772371083522147171185139206738022865961865117002521402194577351891478070997052951033798754532555361741990239967661307634023315440608765743529381825877433995328680013887647504049499468453267711574131080322171874886379637413018858714319876377110502191213622962852523993666028546796875045675552052229587858831863972067817467953812348455206904016667231988686889674773988040202242633525399230451180076771326734381531773768660517695004411642619387708744438158629325661561097546062585111665936583704600384203957768426730631062708394873941377701084095536043089855751608311436432767937803061188298641030335031554008225813033183447617434585837268584543079662901094157978229320206411410154211608824001398264055634672688696012054499811940722823604291482309960227172559684339305436130245628046717301207316119854403996620314868545465683629537127814789273760948878041034552725133723657747848380466733250061163809093475285427700044848297816460594256304593178203776678744629380278590974002512611474735093661080939826088744642978147776230987464374064500080869853276175806561704998598547784732889865637201454705803422793165167298353002099613297127952145177497637678216549818027518985358619364331702397606546393125174107126560185469148495362077919766030877668316885653524162894335726481949804413292059885188040634396550183724055702572120645724181432577848615453011856195510769813780775127651384225640754546220241091258348932866999365738467318211016768469298969496612892995177004267297390817935639225254881239976023557381570212490710072553949031715323380813569215819469905122139069369895537048433398418933222319935263495616245869893502787003440164420170076826645167036556122795952944796734963279087597121450069572674275824564780510980369570061492873605102077700524480338510636809000518315669117111806236185224807887486868673083824708452687125870318842080238945026293230977348767560203599501074294301956561033267807742371362677186946156490067808498899025805246245278257442850516017776875803073179097485790348985348065714582432969435895103726987482773201402868132522218255383100972794927885828232678731937839092373292823835760135868851298881550252987034540571736534670573885828504687961676033610344702707569812956377458969934234210103812081162442538617876101597505225070221404502161298652003508694386848205513636883066052133405856304444835315556449054249389274171212433262445668780881482022381707951301729458195630254381094565161438168219630216064725599715406517323157194436150095418477542924761558573263653588055315756725529033293045497194580736165185183760395042815588973304995614677703710199169237558199541644910083603677639214900536716878540513406137840394566292549752800646385672696401526785312375949507172522272940468357008777930396329870677872299426469682014778971057847587204296155399756501618990898655178424930538113982489467758866441446625571641601769820668001602011413561115939193213982955343912502328926556757385352913952838147241373908559801158175002014996557670605048634747495964420723922442567227860853912776847690720561029890064123016279017380617019115246795096750058382007158737870810941018155282600559337345422372300864065032633932949026396044546418119077637456075775361539673927746669282996334816931769508683306541211699944461878858151698314653517250593796042170772572858671916351225876833829829946685245534449784111439988630161842105155760619926888111923320071544646507432212020151050134170791713527401090725799481481791302155435342467077418329974599309309909921495146231885816464450873204092154824609943644694987130632007460398393322456043242542597796083428582182693470102686985256591050494055753370130581045641289089958616542585382879301413914874110837107887853764378218552815853172872294939899276755067029476062486550287857301743626383478179666067998700556833679462090020320172337553027781357924073919374824842383256467228991972786152909577309999490736649824628654921104231026622092225195934613774801697796976135709091433927155516896727929792347760183420538004482069306757686353240324808841288855457949670410904750999368638559907430785583068419956068025432497682602055048261504420299024120291323941039363889449517799736095186549303841006873425863667941666115116665357281584309849156317911449712826954187843897295417539379102265888804334746129592836681304298656256632491985077036083102319131194369045040480969220694993185117397670265196070393155718767994783278265243910618060010630372976792149894339711911159422048494433837763754333349559459148375636814639910008061317995956719149300672457700003737002339479096788363288210750666582794352735044637049805743490599583499500540539214517907892404801634121027012102174632540605529049722766589298312419644510429242803818904294999330444785295964780326764404283025610611818172349556628630379274893344431533244093342311815313019165426673131832804152413276199760086733303731492794474606103222095496840118623282115521489508552856569988152802481885811498366601990429293560129715613935849199508472967664068828566752310504811342224119047807756443912698118681504513867549468649841660270869435717759149360657982525384999372189195806814223023954883997826617957499524614185649720301728944231079942826545900047421641846335433715904481042713028505455454959373428585348739645063498550939348479162016120497376831435317660549453829647045081426635163695154573716713077830406259767932629649543201468704536353509441606650892909533680422634577578601687287326188552303153530789733066043373290427450891264508624226996908463642550599431875191561982157741717090427220255276200346533228608410597680028086640274930121145312834780326348720204477777833105596079086379160107712269395915950835573338248348966578812561028851181359915246924599023928820587455327085870449031753753363605105893528852223552692675730432090932777415694704893041646048527499570754115150243513397609286298759627226223444991382314596309169441704475923886344669435770353522612389200451661092555396618969102773799158882039047349233649674150113443935359957998055045676998217939617951763975997251452037938978303545373259827832842348627010762967826833386892452213086344930008138430498009907358857033173095865953343927105949301232649640896013114323647071695541257185892766906660893760015560609871592355584356740289746374862418906696790772383155166478266529467059609101576115812234562493893880475997827606739024528423693680091293869041673277451087179896396207504684361615262156284354652612785247066259740146905226309974288900618529480837043737760335034941652674912199139927649906070959086307406466210962933808290891470513906917307794035720276902470603447795480080142156798081060872913504162683812937966443650563000155812707103304467526982416390964302512712613766909531697129840989429704990663245407376885518250689913261889658645068860633066020290503796338222239595524858641257275802254776862200895846946347901209874933388735254430313735587144859240242135644680321331617327505765315212815408030956344910338341130157825329247944020934488769604169997797645967023047438273331370507582304342180845242732128559913515308179073608374770832226556335921861696656038211310283740086041226688757065766880473672053411402600372124135833277224530088045088204810324720755281487902820231897044829626590552946984553641897073133926614901122325587138749694318499373405897566168395418234535256618806171981949623447286781719058502055258878149618732815962041495810212497194729918064321325400287506155557746727088622923423746015734637786396628899482086841800327759519120230160198321715005177283270897492812962425417375907199189899406302819682000028087416625049376747990398219860660997216568707425190314586985857717147470747814458566264976562166491294605483487351915074535139658079535476151909026014296349653077310021245957621660931434167121015444820159143112728889091230180586297695821165837367241578625157496647248606242224662933898292022290439888588507743861377082856186195659397306792975027506925814086035406833346748439896836415306231602891336995398359036195898612188683708430259722753164070740906608013106709486880030529326889883707912806425347460814371582203622580361227334695190592677430186864999258574206205080969254489285961666889193619773444499586542782850283900123991639770058878959399213320771228633494485578506267449313197169507370760455572692406336377326736574005032666036042879376258875790887627598967546660281987185188371576174619992733490432841184245307081603025963310012004211481410359730021570281855123139034386889256398561201041877427081200134718485086630657903149100309948920662210044071464187276464867208160178624596093709163916883117499383825175574117580335517070265868406842578257888643715076389678164400433265527563614449734847427338998610523330582448896122249468217133432123948657125545325823938554493844476999178574955776638420396966503798625884114448002607928969261254340914016891230856740312379193152518065085321506471700415746439363477906864529880928039652087509368163792204903706603873241141605838449928463249555355829003179520825463529004882923770611164185331622121921872224742733834617895125724590323407033505427241706642746443454146874421159195211415474058398484380352024853619903688556288296512437594987364595325161466164773407615942938437811418717832683791699506688611641211245443137583974110165308241474210335569190290891507916694024632532179740114008043165368741251302579760105039760336847636500272048998677919584148910955424952824451533724227647351207292757366125615938008491992827013611768630391315745488035334136705119356990062527395456679010023985188793031528840047119297369428651372176512168794490554522639664186568544474471676694806066179003966156373237331982258648134778441689490634151825041162282085356196648415365027928966893792624764216520987102246908439557620763269500316445374866723877323170789972444745338876687705146547842569162995367715527965287161964496088773370798017112199146063638877711903556134335691897951874951272647435857672353852035908325592530335448605079508826549240023220602620874141915176901993161863564089521451167341667364156196150213572872278298497041730165159983106754076094692459270990291209847035395072380979557305052560399905929243370701003774869941030616246396169187990047989485069647886932577770880306790546476241779402898544303152459649258812263948990096125048409289316189472286534918705711857410496981851350701138997612938351252615260815532866129517048382934958721720295094940496704647243459988636675407024941615613748356405020424569615935603946044327087925953544225195672497146064525849434545668774987572357656078759975569522174507540495168414809732296605889569999673659578059374386175605101127533161380134531476769783625671900525239683917095768247667779428441652520539370634885526854381509000025569930850740648676653585650207649807925865300980544274376411148286799385829175238512050700591048557230972489404621420431872233326948175024730748626579173997601156086477212930316968033839995940136844410804423963347115389480021523846585861301999305084522836594076951634382635909699366220634615841321763480749936998233918993371970446486682198235476963714650345045428496605635380609873624989794798057332558224881725631254758369837646023932345163254866832396722208435141159633247026692550785198069869469880570627447475772578180775809540085999974673794719149214028044224063701034177271853817778472235747624536873830737249951913235698631220403623087216745356608315679944040240791870824806489998096266281382124998048489559274910914837992900867303510307699168937566756011088107336667773067847704359982956891572084912868435286473835302840163328851315427385659090320612836481625244477557065797409842563932583654965504006120581309282620277622759592317995580794896267327202382518246224173982403525123212925049036420453430674988360014450502439208689917995661070058996898155910839915578886807276265653927032003535759192657744348438383280240080910833552196475208977835055379444616646575447772956414258486690212953769404388759020763014827148458175224750824645619494028274373966850486799231578807872790354258546349640660866114099328824379834473168773706738879533044181624957913541236351169608659698796136241882246915744872352245809612887391288051486635518352047350345686964481635163823067706890672426255785339747007435064434334507816450932804692925091012722470536988816019283264164586992907293737093130036430222280199572056519943423653213673694505405205818216212362994108302235941807350853250163817062765198115253711064288751408593802851387454608738622757800746132007851509203715944122922765132140432214344354804259971377567837289036270024155647844985016642644184107665959284539387292666928758141361069453842512997740917488782726250976006147330065665584381571406851907394046346962146044036015220954896858485987809565324656029874154315166878964627098832281943029157023735890584439946000108185686921168677402008975858441492506578069277484341692921025426393752841967483280836848457152133812512284608876335455652529106289753850003720230599618627697924275327104692646511339013477835234078265143953253044415438005249019745971876470898264591086943508672394712495084759008731038165498832955245572762836503517584194914055828472729806241026187244348957686038780175328062130287454323433722874380490201730053113242634149505095951628344803450112887622424793519691867688647803652326834496239310937415531572485042037624299985517074159707410137395310338947407849361425176959249487530405111387450700612620778497248078006265081921752604479276883551771140935406207221864147370477408339793928266536139360295572311887898175869641047847035735523576471537173395161621670725642537510497474594354608597838157888986864465541991360055793128674819755294982127194889304269730494320994981224117223027682758048526358998906223879985678557200068766174739018210661214547028812486942820019209127180828851806218938467952161883809435057880919362268290975240962380677020399200739777167050220384899109767795612384561281451836114761094227950625177584428592026789558692582624902818445582550211503929083120415200434939880765144223041151842341032736315623914236910597929794492794941082773814674048367610067785755912493131648649559666825769057918217527257762771599448902482441154427909186481653772686772525054115258805037002175244798208456535279146632583267153307626089969557217876601824175553883233227683973051135022274400245020504763464734739584707098501387732371886865057872606843431536528923572366569049620082003521573322195666251161242747843846846927778033306433545068909075694386789993042064186785894771049533412190534385689101095000437050176534154780084970840623641244422074578481021272732959206930722880764687853093044617146051590652127365425611058769272644501715217147648862315993094514382101890774329483684612864442542786183826713011044661963482019589569931202124591325878838072232757835318528856043351000683369586716379276622744858255030342311980136076473793530688998246298390037054072866542764246078891749943003457404063767340378798146503254959717193536125076787891325183952878244097261357223286781210776599296294866483033579825160178883318620078494223037289867800321720830895236453895875528735247010013800603862476008442726790939085626961776811607934137847462425785509105835663402326200209271259068443687565700122632745463312794994933077504478555005084298720438296206438102503057075153209505498847824226552905892431123791485284508836753103414707781738941087926888559494495097568619971409371335267815815686178705142061337668656595692852853912196715246014538767436047570160785305402065861578818032352176558553652448056857166181849744342166309342069079588261773845923012990212072423435225396316500320434313275852894292477614680773184896704892670075599494749744409187611674772530786641165613248550269755657243477356045281140205956238092438414646365264724615577860938858052910981566532105643275129373543833602973281023063256864870528420381407336819760370667614831181755114042141894423143794517940113891101013396815504420322319359833870269525606726116980047268363872541476160109966059580406862664314898617957174628291051760619757525725621386447366839444021730359676219744432944716270554248812574477780341571682207096752439804225735940815310127036048546559220836096772090403555158445042620343636403884391681388478996417388718234063543154470266449853739636253155086414016284323445842117303882662033127712264743170313655995803461710934621359070047500047446356432679361372870289208869548836170175741758178806149618135969221736295808795494332766098128449484929884606173341875208886526053415666375539200494517525714750051092836315521974936019162808441894288781246063536410547090507169577224246181325714073407457728344415064232748564959726317035308311683764036533718806961354069328393648027424254730003303041114403931342958576295765190976100635603225622029175946973916214121684084994471289447689449656765748828865063576195895568145519794146103531689534103424134697026463800808056632631541280323965684400197011388672731334476810870852735657389794660000830289712553302649419688415407250346404081306214959629103665468203364129613626059297022350004954051369985384482800843013585156412490124692004917378699763063429949002777725715915532171364659936539943876937579880886067136355810608293005236132861905047636306727062470015781126283596506422493368504226068585396617926582866889725264903951217506269755962623034408078362390952490638389757134496183251056853053630756711903020220317235668425240856577260945098023227323167713933178003123438694881748494156174985540675578598398322973873438304619390100996876154812575710043856353349078916024298773866333229826776432101021270439989366472463190734178246899389812974649807615677078179351395964697956347269818932025282630455630266877667027528771103367072911294593270037857192072798375069568030516413710168393861179197071497278529469882047718228564367234163592229249202033777110091247275068215810980450714142371140972695918173919218642796044262544039266216356480517392393761043861076984230403356846055630906463709791833888018078977143546138752627672856748691084258931145254498224165591503241780594013891057728988473126301810293677377173314910441438949250930855111015611825214800976976808510816583824603250383718800835260579900959218718784807180479480611564403178494221014018137648526716724554705405128397823281301954333489381133002224336540704564957645518671180330171911801208332370388527937757462937018353252278241201028139149874977880785073862434962205389723262115453780913302082047024302923738459960120465829990076010497199599636455113762152591915060636143702719328419582216606855988425236259763304955211050825701149715228525935835159218365577577170676014077380161836706277734109126142355562753301797094648328353845788435302542538065079705164261333334023966956119056049216272102231775762170369323419773808492576804150784509110957516856367813739967125649234325755308253492966350652186410546771534208559901548305425100073351048161886513033588971408314437467461122148423777699667533067999132201713499034413982352262527201980347048162626489894123722894437710345755466988739727309461819981684707398516715100684136133698739920263679179287431006038526436478176358375781366107580775933465445853169928785550463698910614702331460544036837499145437033374674819562218417515469390992877074753502078078250623872003005675682120524261825913268355383221854261657046006635714888327743393070076518333728618553629028607161941085252824160089027951192465454418795259438805697239812090704360527674480376820405545108659920781153837127235867769373363215880452365012647151920176249971018863949442255565590317376508045121972199325926255716953242157652257452041512776101723032392512613075303781132948935861307484039388482311486220260418198959516608584799901983988422853960546697397138259544945094032295120879514704663713156490310954761988626984241035544687069580287495307865573223758902464703666875635430882279632871922558244544176277958852238803242177133177352693817862811733731356334623221292061711631884107598107549754106552944912479770008696963418412596466239443819999761656158642069822221925169597384615440472890587160775117363255006774406895745266294269075835103108274181415151538716935444979476572859933171816328755870535524021678535608431663604852321750011058351872487881486880611961329417829581610275352107991335966930472481748263319215554594189991981119419727749044936476413092191958919100752115430518514315456328435695204188281149799195399746211337850873447584700175891842465611107911536722399899814012364214531418028238633526755420600808701634316424407958995105232340266641578614857938702445208269526293441913285746911012421602104561525505768364097967893414131252936249272410918371436954228338002280582701609224745518095037721703773468286769772720205675668344961163973339181492748060303167399930817590995195211892006296049528754372833846718295266059110941393245183638108453435087955666529280772462895483427970891625924012839603988380792195774677338666227945630803338242359928699595200649873592947540000811767735825639421473286049830108600461347418394653305720428418458427885592443703794971474050235836434216503249976543593086590096423475420262056342698278241904505846804199883215439101448399114331636377510118299208114732311975505710542114085309481965132910303110839746193816711712318122928110872413276416643638278680858019133827401188778519489242423760748450622538169876486492328955403610107770844041727298800172868311381841596167354934049060546703531350666919504027087464962880401392068406712565491810502998046534079079101549477718424249599159535303020118516635635432808156197408637236537654150944468122478719367795135302794638788598380386579904607693834724184437728181057233527730328072216617952941342705553516922592763296230910392666546349505258616769045052750203837284079085250547857196813451566451432987392110732292771483962619332826006786656634506371449322278001606430140235988931678583514670684339635715691075815615175460621428380366803933414301247569391548953653781494351322876290274474191780378713615214138501068474096153692369067227484963359575621640827054138309210523894721865989172026500461005789709604665301752502675206060880351604193485212179167357694999841603966241110332748791629493416467197330983955246969840767237782233860107228549452383424030358103501034533852649266799032830584889012325880718858223121704009115391789521953683336138354455580706409765890022203459975787064615656698412161754257627810208279535284628470785816371806082536379052152864432314148673519510647731674985038609132611982298517780584067574999068455282555392541714370335725233292539123839507416603604240372832594976668968703462585795623134632115151647744153166203265231379194985803630473543925789296965278318926398597652033867321988914476581740465866716558138462226607508772232779135097559085430078723565303605936686451686250480428970098684538773546932212133445800521692198901736495202040017106534847839027831363170285265371773732194813376620829908915817118722689715267905578251280684888957851141039128569239536761616079721368591816110750458484266852781352150113261806533047341608872662369945863337674939292611585235696556363653996060751379542850940201176809408146727006551472530516815615969364188284858684334785825490970370883590967227774508203190551138469973186631558986875720993954373511778747281442619625980736220412684659406329547963363851322361568366719718054181865921948958909768005557722582834525225358845692169797442457520469170893701267874474741630056981981010280380133444278976926632698410111573427488002683619856489357848741098507385098523096106647006119711410649839205436034007115326749011982803435088923814790986145265817662662124273873421568393946847374811058709628902960829290354641968098581966745728520406559017153920837558016347492914321348089762642927814558289937762294622291348333602388911260057130058666052796965267243159605104608376534789799656499162980784054332012535415893292721280399959793211633945459894206673398890402243911839354364939165329797995486326749077104912093952326404150033922087849387738157191830168204255151827547623406470697435558698893560060460819652843210083852748728745033378687466679479984172951748457745443723516458571602448391885744810888056312823464254058767410039595737506203373696969783629298591567624715867397915026783442709212878251208489819027052384539217885788651155581285373638362794590784437944202675638090233776337855477256369749208735121602311770655363626777949784817159896511781459739659820665475815328677055235704611091201312520471420659139741947624026185146897103675494453581660569084574103564521963204378282281775754062166209295914804898263204292238943702886257484078317618328338273427944221659520398705557804367986403480348321747626626872956000288759275708498289480536181301538775342465999666680097495344272353310345157777765605924294475221162740238155586666581220237988901001938932049642636109197508748461202442661589896650298642212356714121522969705093633742157836382671790048228957664270269749926888364301168471084861181431094698468346858367170736557085508092511869314519536777956481331032945760674665501789518127465400759594081932422969336309629783999702310542512347795686742347052421658031984231029508481152581935160648477421673637225452361365601588514615281200112081459394772877848630062122034948014223126696031034542047206377079140281862753446477169587034554754681359025236489341786706838539721079450698244578224602953413830005122927313623786551644060019428677481511110633157895512818650800953577495841435811013568662384461019867209452904223895512850679987527745615355806259836405854404783610119559736911099337838667466147114722403410044175608376952014956825537559454408202201524430656420871005480773764606589108212608243652361153297328724371240532169728185763243039249144792714132154673069484240239865740676315497729813850950254485025898914090210251434213448116828704369444022493424082833385534860608331248924185049565139739969687678305504847262670818061246688522795659579796486418704274348077809603502642950749629863586232295594451211228701461236869578225653588807384917393988241048060931567655143686938017151450420918518961436038691920063692536896635234138916857172928470628174632428077190708700175451571915043280690505370920377638316028428764594208203964590392263999739946762502715524196528788314289196393496147526296731642949823436911225309576844375005287550387633530146189981441027163097058009543146055978267298615013435317538112373148839052230791950834505837759424708651299643069716284319574844411795740178935077052467505442199287373319627074096627475275109173225219257017445198992380953868112285123266651278690350059904153957252727127479567865678039688296466099355173485157481112213927492559744058892574630392225130275069644377370496035475257140655878180308194914853910571722642969419428613990896555480505008905062250015895229896866592640801545880746465924364500764494538176531772799991586467108204282813856021262389922408804803780289927552350777940366621938520239761986335282894828810168990047703375390875208515497143948979257337069519365167803406015280086803715509692593575781246891317470141860239980742989439596950254915454592804420807576928201650893431892282235818374169695843053520799698517940451879203676190538101399422530640725141025429658117763618273298232667875776623835221153279209100258920966701117752884699401647973125987178143457010836202834712632953976618045287601700334396238091628421730822275412430400556202739361915947048299778598942288644292189651308020201518424026045778174959543436215124135769751498545366122170325289002512176338391706653349972799728424959669461551201847176338016401633266392050373936972147600548969218611509185799784712912890594840244746945271942716344834618407607444427008301599278535253933578039070006357439786591909965696412090112277687855819285613133559706955178458382273074065882783779401844722682743036865971063726471971471780250197279020430355136253592864922797610183158499117032784182756248147766709749150522734528579342622099909046501291877520547925816549934846300658653061571071117831180381898321941733034263766251474858431661498784849858062808140859841975977612234544560033999729810159478521769158591693432046225749058662563595104448705116386725496321000467736006059708657807167411262663485631294818421056379470199012759107784847380168619832359211218386686141749531717815316562897364354618897588591710817441525551102027070975930164057357784557707513062492657455073632235810709759611845048611500266234784615142160511751722882147351709588401990659094084919497424031314487808738928554966329038290660176035479740761138872956078199933874295010990533720822388843240655046656121547552764340764989482395390770423662483102160138689667411404679454593237908170279135781450514925825580265855336006138285769751441902990492999781739483098001949759605660139875051691387087415245297556510223457733871938655937854501448499687628101911416052073847297250757591649586374185967033669928980405921173966036371233002433719537810476663984071651601271579891696891807398279758378793679718367771533208834948688789617523006977115996929591181333249993580916423974004333935870325615379171852072671299751940480089595739068982018810670264663849057125229070087810639590482054253400814931177114856618397465860657236237941201948853392993989254497502130732572530731931674282644015854384246888731775959848913332694734153028029748255367195506400485319712788940114758169642770639076277096379470260838459857048640891555706225459550701433869835075650315950375473814625658235044877540285030199115758415347711427807771909362423849006000977274666142437114563340962661196796215192289791896867879763467058591504360146459098803230465206368662056981199768861071288785749953953179015830165139151975772126259113059957046408091591273277137479326152214155306321137288081443654882781642771777733406995450498216904611936851587965613916740204114453664481325289332396805965952592039700712067941671365177355232492363028944167389004877395470913497764513259018228727731409486288861258222254588926835354396079748737008711639540703940189206181887149865120094464023659883770601242020934054648522525769932809363616880985697012614482340328472247359357557039449190651610681352953395436407899353799126974380365023009672502905564909768092440972069501042548809622627773568712532239997928499222905751110276941625224675358120437739104464069204668368638761894724638589447293198866819219026280349007067953578361134634618056115522151702928749140859611247301326077407083972435633892109587088725119179100725432889200329062022477808954034375258695805968910717304758033717230774574627836054236036864593894261627171768244676110439753955278064845812339094076569780827339030926898429228831909965604860084833536680638592328235425344151123979463021454549423612950896243557033810314623319980342545920459433860660518896117840731286765631195029828255539273140127696874447178173804867758212352349595024301255318509642538816976747500390221700638400949326921850765400949653492655091385599877030826111928673759548808449560556332690274576510868614818778347938293749153044899844125949060863974157295505562790887663419481101355684189740261530225876784493096062089953801686075575662740832522545323673197766424797865913012062418957863106046254590293191281047995798372677367738788400656845116030889430381978279592593017742756531388568099447487047510290138869026084914505312281629728115930129311516058633517464955884369948981376760280575049717451665032158080021711010370948767196465406626489156333854407785731834853050727031668916365781532512454257226009568163927156948693558997912491580238382069390633509916642957430222033662397201406522702762798307406806565954802479131965183621148381594039060710613794220983732676612574439625903064164516740225676311883970648581693644852969500433028932775553676273467590261256590033852567681079255325539600867820697609615000479512532800968895551947278088022120799463223950190168437767019682543759161576267031744774448473900738692275097158407170813514890600927989742015622263012524175920701181689376359897931224403915165433489544790213081957203193422727040514074274271908842492523132539009466794742263675256191053943953493931209187152682618508793216615465549472078744426989329519270364419773906336041284083321388249426055574478799082474228972968109257672351861491099885463897821630727221223698154795531969366840455752612999486758452576844941738164320427610321766526171132619617822619777732261001432595676756221640986303811164989718295152952511785485343819102544476259993740120844602986468350741428162429715026645357417583861941114096193951955747969083300881672273093441820790951397059531789375860759463842786367725503487274642788910840333247042719138172794031124229789919050392030190510436668068232791649109617929246067730403165651674534133752546047373529335289928720042678572380158251356168145723288153369313176703068286759745135582288624491731454639580114907454629856155111353325844047917242454551600912819289771207981071083480018228608441625158033149199308315555787264223452265835432512017848063854554739141359731838517307915147929991472000439706615254476454890308890548483880573195409582085044845477204440494987677011678370160914271082610361730597448037717883303958403543974954695498020331779757642557978473522831017867349338441327015639031972881360270296772360547355313319689706244370986896325466158188158826328913526788388873218547177687784337367334368488585121975663028225503301824605192954231531865573642062328010655475646236256328136019260582234516753871049065051274177659954940096224790586434210695878884249936473523163852432569684803696463148950870135206630666092450441360275282052867562313420046165112383843794977719321433747416638929954643397751643239270053436569161273836898891106209386447910102192969893997788431793026888088578757855774986730256090999568198955662897892649577041443379085571369591582425876708383541166837632214203462258635823338287709081609284383894245644836996254386039250806990796642915034505757873297425095416701724599169689057895596591738722496288818498190244871233772785337272449896469183440350551619150377312147164850720933566314360930990600848493574051870657613049737701132951888564512538015148517063834926747324455877993720236445104523325656064596124882275384296392755521832724824389183163941383715764383846635658886714644681549015899779382584308758572999851205867714033140576841032039392491960719497707121819405501233157503157440445577592354915686010202907300744301551944755769480156774260326999533196250897734908115460369477365113878811064966217577350135315087150053256440939117992692337005240730522789882740182227423304465138970233064564246460449038178684433384434722063851290259727901426384458695082282609004698370903218550650884044149453637197930298163201020205061120165687921561137483620447456873599663633646390064672893012779910135152182817440412039506028522454770965430097893489078137981409203397277801002480794734423321352997803515393942174021333455672622086957411529236414467397869390382343155454535231005737238617003082150779322482687753570807175239226723059494775361722037752530385342443505221545219460638507921899849447819325165474359740876675422805832255459150553931892782980100648620116283593472475224500619930122641146707304352419602147956165358382792383873638075607016632642124691845021581221743930936949949902133475301098323423427052219870049203071772688346274591387004449494762069483617472927713657324899870381253672524123591526456486641361119000875628192036749480605268267460711033850749650486453761926717656403837454160188285723140651789892410184892473590812695670185856517237847109960589728880976890099038476320549459573241377789384056678191353510587861894913868704335349340178876406253303148585991231858553466601605090529443294321395421946099997326756749055796247227218910891514091463428743544477526171998650323837207501282320522557862909517478874334506443399791690406796934922975266969920338341698655671392038549021317337010310515073246375623046888530025317041722269027999116885673731598879630718172188513903310387114564104487313948595364188878402012934829337683238818608126676459485336138670345033607834166897620566442628852460744091237843783393945550509170709439210798725194727628325140053583903702326880731594222671898330402197131476511978699283252413377677957259302215385730162724139089123693281802059838712492086783835188362645741583322401999837958780450708560990452012742210474138576149220472311205862650957402905755762921390581994543256911722898985818722858211018060101497423508096817205807463403004175245493534420496937517902372264792616708155420776310306993968241660954528194870777606331271317206611503466870193644998272201665953560327751703270071196008771539860986773532920936303509246501800870612620420979039936893728090110095205177608469974256891468312898287616784093167179925097083862874551599330128351611370120727844312407715958844628952595302889200619144430345339547474423542075902573933279824942729652272109252783157630932469930461638243835347532025537930158343129108072691127392029624191218087478873340939506170569642166932180227972553287064158752132007069194835583090409069479052964462413953116497393153638242421435081404947728002038602536443071124224362703366216502886128751625542390664181966166066869588336424743622020019189345476868397609544246582342624535940190431005383095285542595943551833232401910459386787395872037827445155791591833177526258239132473975686807880825062520062707138228767570430589147291919655939338534737432900098549013570441443639545495711834484591884138845814596772331287191976124159396068110464000807662885345412912244386272439914392877344954607454985155346225383693285209366063857455268720290316185728827497033830147237216902184797318475809368277818570977298876367652566287356004889043878660914207594080263082606362150747167923074019893316583844347500483633959941970518685806804051899179600726475181110733711157461172023153722744232849317070980211080652689080449919095110599903464186103613951997060819005737093475906362613618655642477373104704674792611462028115305589868423857677747595295066040843182753268459586011049992561614695323121477628640560790088019399574732405898345135964890844232635203041128329591588293359850392869688230672326320259481525825753449948796441022983471830895645966609730258886846254085810996011988613437465693049267157338091521274833951412164653407608976823350209930684607742984018470355817997306273532755022898463583397049400552104619549475765047264434160592807411380802021197395354009637455980171170380247915277471593632711558104047226238485172345413382193770907532050224864452051408752564022481800826858420295348193469874627143828732914696007663452014491992168840735128132550140671549192418330587370377579366908985349504214985041751750718270157514687788272500479644009559391633980097153001146009460389095862068779502454741459096941803554257235575886879401734889174083693915037927505887913337169109975553147883230522964797119958032912809297528912493761101769336103653088270170059267980739535872764299217810817375215567190961490386663660822227125736334679632721163524310371074789654402089539226687056423776441521638095591807060557443317592204901551154961777231361197884882861225251222115850117853345921598292227678253076936916310784685217376714314132947856690790176952524926319966944659603063940619833637806900409729196167650612739496369855535601032196391838703963737708992913783611073619186094746563234836231607076319753697797833483614899234490256667642660561213609107339727232971548121994199956054758466896998504141202060326955257247603150221955204819206564714805620380969394231590442977736370836410319779641494991230136626657689355727982712368804354733900751188413552528580139782444067487678556209594718395350714442789572455085791324080159595615118313951376294136202608218326714570016419604438610514975449655892679240653631370060700332043935906089446885938039178598056157271772472661060294273233732353820969919787085886103029256026924901874304934800333483046018075468614018685312197270269385982341734126182315934703103450656037900347329673274217534917357130836714868424680791898016167880170890756708472445711770693226788335028865922221264030375092727327637133345171935491979849785677158454079448951441946470031452944435045773522334202396316596879755786672162252192953393141174246839061767897467150106010526156837044888776423299422450670539898956955551118583422598802387571196604349020708056829661728963754217401187158182320769955744635411819767765900547162575795090752057256020559421650804734962031518625625608655581120607321772095481113484590190375296058845100476205776395551908577860753156691743638551219543195231643642874952199438017979192784498787807133682436547323442956139413213286641065818035711361493701757870789908948648364125480860869553361891239536849224861635294093191858755665815099901844590049063024511526270282561565599282052062591247520106759888826673370786983143981676692520461381209149893761209095983991373293599539186645752647263445449159332654357206105331017295275334535609279924809415624451129397640680663912399122525145201340480443081090029274081375636492367726869360574379675194913003558993208413564896366412685651532175101256062842466302924842192632719619298863525255433404478439813062867501093734481946675659124865629954488183939736569591399094420110545662431911547088095674940961572693812305905703152924796887231029476061571525764378971558804582954327576521953737732081727740180999566873727697056704383442218099727069434703886911463800846088281928912360401877665633564535552498621862924976355383735633818873635009069052651690423033130297411775155512353530103835536356815101267301793498935458704445172369468380528571796919996690492174998475384721108995409532269097266821032017855764960785433504336358763091821597393666585676135020267962493615338894731154828960029317247994080130916290630037903649738756232282064661799058182583617533026299556409728814102044713457607587620975269914531072889879401001820966456900822994713413635034226545897370464018325696568153265766308276623761517457800575584947651772374355835497068253074847299382017741435121859782677171320511526042218176396837655983760065466473871211022055744565740961167108893582715214044592918459629303731045887393759622009945116667735510869634820991281689823454477815534048963462196851873038759433462129872790979162974279060487334414521162681388398525081421632997197156337910741097792405284433889487658663868250908703867794800897663355187391552448937976742372268092065951106075387361716734773360920167502358772177600673260135851982216783754162456594540111818773650758814782411264686175528830471833121237549394659305260356554203183868219130201961874327993616513475642046618462527187183546009342902336787982081003423547579154926137091882051649915619658239837025618519891703801380183211578470919109104839885448459380488928198101727026185578988039458146579006986074619956110648470271810956417599648565018366967222937126190622981919211202990159224542412978548770038848774238274916920464130884979927170445924257681195514922890519699900613893164004856315147910351806714542109486307302484756773218433847713911633535572652753968739675171545342971133266320903562071211338150834475881890955869086773697769813722941996294035134059418360910032633418306226461764306697647250418911303186690607333662866067103336220266103555237723243119016182546029100669447842329666143409848296564761912517902883356628752274767292847072546547661083536296098355125876163831819725195924071068262646419923710224925439485835926402185179187516174530683253526200051688044954019180129036435894357507650372287715668004181642635301328738481584740468136160731701966308346827122140311642219342032725700205730055978755976977235341449150649536315735004428665815376363686221849352890494723454006441722758453218706055562832392200572677910871344442754798425205362891059253255056851047553034954204042142184648568115916851644951929640575716900786303321116206416251978041157847745423420109013344314695257435258128259510169189955089826403331980512765562854542918709395605408059756091065773931707408777781223128611235080721261840330911884639889252344854432960245688299387553974146050237314765286465601986462456238907636545759331928544031794625218250892858806871228594581696269089063208506810142212130189296389908697446404053668012845334048352110147732368718099096329583873531138207077143357719158140663822702666651176336519180081065893463634844293257805073164860931260154534294693286243039003830443060039847303754396994236272140657296487815910760205396823429494449854549449364111854661773506916682419290134771525396535632758508658792927557649673368161519413773689555095906118618370312402410239991217487226739521721270733531828983856465869536408571585162335505241235056643501820066031318084141214943962951947814439059275855041735114183996815253495643276775369051392096530264828866918649293618820977941615274667081983842373490437165577880094258949387853532588103089856739971218120612454112032265104952206765540322538565352606363829028833385459030042679799678224573552409909639345297477725879477346568103808535492381721745975457164447677172836600534081028861826520243798209329664495525813127049694267667475987901969829689010355469541074138008073427978376849472189870613604520710691227770495600961487905056924627484080681846913207314494818403477794921650405758695022126619442809520973914642515976634009209704270235860836467331881703375782174276604983431219477223321436498698985763060253696685155789347348249696410092301659017080321716542182768574788180725695946432652180595512939202189887506367532967826761987122621713921623497863353613012515670270015453845609498520773628036060958280434235378769242864319645666662993993981445016934057918358199759423437149826226186321275197645267484674130546724053043351043007859909133429861370626302028893825128998473828882510097631240732378206327177207858957186246956120730095303513717608775740837312798654100366482588853656218489561390353278141207695216245674548787678975704049783870802461059280841898465388847684345296822565466443992316270970736400890941695509837192132187950246327339483821649494124177817851648523353516956287391910112718510390247028537949199059178384801214236906821084064681049094968662517020791732972029591619130224555685031901541803273147679261161635036061676911726377964462590287993838112020241936757988728027638586000217125209567938073486818088299438503961202895627916416174200737686589303595356971763805562859310612026853098075132777100354833735445898423045570969833523445563365810800846070841514096597980447406499599544990276355816677553676080518160852994519906173946184931929836712737643811653622665987660694639669504668622352713147977635122993713084364609435845940917145836588742827254323822350696788455516912266695524402251379227377465596640234930901933696262616828539995337185080686584251081477565624850234329411912402805703901858703076942873779698870374525655145061249996389822244799288432686021100976497237679331435755699346427806587284238448498150977196814582552546647147055971199155535066378694599880121964334842745582095450068808023906644278123965252265305601074960761416592753433422157103683269893658370175340350939300261503137176882340179746012574605023452888447464557867785835655308276361397177109227388649276791797997440198405342490554315446761376753951619523097967097221962903752105097314066877469520760493764392704198256688380070106398851216382714309402579635019495590985610147999217052510036352391484067246083151429372622955258017701890556224752694136460560623762161637928302359193041052422706047230241588316438890822256846583225344309967895873765026006706416225880447926934327893735610736875386695184276379082476920306377745571755561317067427258356873086876074775342834479647228151063612706383335387423457147580284000997356548789314733244945161364291396011615153257126901741827088735767789590692197094070492526595330758998155441991914386136800120671395780799330409238353639735919474845303591555709742003017779651830996528685248640715118785185706869353264060258152599088902559501479981473392951491437274460419224729021096245573004073507163948675858218541433765677601658282150322172641946929215695172385017014059808157565854470660309838521439678253591296188483991641301905230904188488219743088293178998408548655561450908424482667879222679281569052801668413123246931917089547661480659666518261579671372247926533789961144809431389772294593272628742909058454939730951347318402813480428853686108760426228388084837281834294212507155022355475619695761947705213999687943361940622762915126752767286891390793887619883057247386177261832623742084224027383989534919469016058039074332622875836664054827634220155854823730145984736444186958844151822602833482282501182311234199609787661695310673329295471946428596431070254446463037445319740074034923255772806665825494250015667462698642222691745393912277133727303603256248982897163918438490083554637080983357859672036064952251985371393015253279776970832701058513553792533726591387722713805847308437445793654557412626536462556925104187798450772788933338948550814125554827309910811507575335609330226578423054871873909808844533254320571507844984489029950076090179450828083986957398090407282681263826982390208349127621990948581762023214602879088198545032335752678190046774291439491987261451755847152225095361369270876288570283057427207113287573616395409018241835487311510608927697787554989098116083424782851213715661035899016604237632002474171203859161331288224103402273088017433231246084807047067096713331948153238049097513846970439188012668919756686220991518378197136915380775739421894075706748672959248636628105433337323691426782795412459994104434031325714644722429513122040081067628629456365206033003638612270196023066247841645997132972432380839822465200019410008045299970429814921312372142145831973832510252040953497685355152364833151523350866249189930532044917797967387882848566974890911702928050935068463645663340662287878114127353518389915400190920296926882751630494128442232740516114317599232625135492147851587966456711416145239371572540373020101070986313780032075855165091923595460087636903533000882605303644937290890322043595751374191260576569265445334193190312454682948762626201827731782587856886414931539439053877261895673814179555276371842997017673020402136913391404553669294355376882428552006895465929462888268716777994208620989251060958746094083671212893000161051547571808495563086662431398989135925242626846659950402207318239836170706075523174640549200018135927474927403947967194297123136227937291288058455172207427396858655102484447102186900111945335508066530132632424291107195108549723205936503993532763114910038792818412339089165786169550842846265695799924202193322810885516541185590919482173534235002896651453276951250256822590996575374379427185036782153805794593169018199092427524084244484595609098226316715881929145884765094891359700205380174595336177446737710631308848640179460170427568219866480634158726186786021821163227095227942739703909975947967863274363643954698872390009803143858309328118424933804974148110572516252924979405629615810162316015210050808865602278571166931995349961811701780999898562045630041143830546298593508820006385640591513136237168182736091864673078261923637746488880259677334837527332014025712256349832351721107550381192116357035452336600604498354856733436381695087490908692800296496827105896320213197879974684893284872637815455590620343587397215351483118834919823193372281109653924857413046396738161768520156529129095695152556213136843791825358035228977966986670730899904320216083311672757431749945138411927527499770141519180580966355159045339051225625396744430319442980624644661575908745741165884483018153175419951715008084787308113057345932076525104754707365719933071450093544928681655244121344954287458352569715127375597388514563584055567825276468610046968480570700224518221893691145114030217668562374029249054939719312107402177478647114230465557529290545367714359546269839037927988921317135961287659425089359955509380457832918195005433489253148760852537529778243650750503886557477157845643983575816012267921756315404927766389485242145841967938618725209397881676850249094604635492115113213840003872376557042479899340284696050134234618952994969007623720256604308377061094612240858488657331997800313825733887820994678188183183725754037496581532092398491200618389340633372648981228617532036009914961003791461964420609217236323767123621432695031838441833316843385318901722163461712330700154438757485797664306233946038717587458070674163010433464004729120935697846985899919943052894586306339532847119163405715975817357196772472672112174123863937688509183941479135632252195550428786257557928655014139989309703295336994545388849152774511948976335584839136155454551563885293265713166533536274235153169794487069176949196887036127229320415092893554234629629656241182695077411307552081441122269788321278626037371618713266864413831982287194532497607744814938924667748865172045421883519643517641818026735510331324233985093182918293683663104219498664483067810995362917229999477277753442723952423421839766057891414381348044895697256979710153045932357414958234755595065744781184417663062927462500889965819943950200462811887124894005822822900104968207253945126289355709043737279046662805109414369538076358674534904595382739415480822047936734163675111544606914139808170583317754691567385135785943103452448834028742265051723424659375701516559425248831173591237937624281701603538726149193276413440994578046855890351745857528696504370374738798681785475998368829474914748916659500179255132502149047941300149864492529777573843142437045487789263800929305578118200560740656243310353015605744088531919263963112384241115278226579512323147988046318241771492712908543171671242760547229851130628947004624911381987734807915058539582943535497812317606772235362695591796013301929324392316636624519335336796589700041221307647748541419916474095824594456534796092459215202209747169107842125657371980155486488819169162194357591344465169459290749455584964645116386528886871352035832168478308782213729865911554759178222778231340007690714670800128665780400113910279014456291939556410152555082429256925548854210317916641944050907781130770467684601973336189069243843691813245859634326334039107137118637528762312531870718326143506296010945183286176520808022593125132752888551083056156884657498477450038888557316447520038705139084783357829214750413247686290113902510386189831588682354402500821996301611260039202570407813205892841686935769090520313982928128395846654589391389380787786696751539184827648894354354319636428213748023845114282478143199671106840669669447740057555046904968384026038967860872549028298093346794776096478280547848924593777184105900878047584511788112899464191615117629711376339012688008386379804690955425124632458015690579140506847014890084093558676410744144983242409712841884109951213041383317119864064481389033564216818401906959861035682900261519692323630605979653271929761003705369741869971023866773140817096206070736414027650995607147639540978240660876881562506720166639018972452074939179360945102459194395532995869598789776042971874314879860482504479213835666181890329267626987809262669765872381771555153071804701330481812059561628688379272217997856967469776906760860127796579710049314359524245433846001041565385545734190238251768910745898336763096572408976246714500680206383065771603674973611540491857941123926354952084599215488257326392240516163412371000266400513679825180016576875836985587627303372202135329671383343456651727529506190475274833016015494020573054290980914098445662166615137318259969238513872215258605123694205329102071414809025535835026219022686773956016906347086213810629345957987272546572445661809914538943291331167320418264625526219214787786252252102156952561103100706181116631603464132079273781511476314308859973641986143439751753145804729943236660943396045558541692634517247609254010217727975363699398403291949740386174687131819826591277649786088016635880783215435585323406260727287409673880483878047862242461885192154181979723039714058605235512155546096407037727853645299750597003870790036451415361010500226657502571837871542430130047691425775762166404802071831229322318582501745606207156544841407753522491084060732304335895338501798772344918403271676410517603826273629556319925617043764601236772613318308531326014422414883535482639047024803082373635669431682834753014409779392228297611712178540828024114512589792218890945604037943327923537254997578812858498174974851798665553192308929204760146526816412597887944340657529713442310375762525829830733443236959801934875201575296611306223551932621101617369989755205067330149316261744505522487323278766615035870621171755584009086550734899276896842015705513937933879859168968828154348680125815872933257063675626116635574353021362063480540356962026208462843470681994468126158475148140084552110704775728785623616180177766283980117059588774956197544368191367631450396384063341494371063650959711334806482196295915528401428225195240351724737484088937750490364662910745959696372364943988735472700869772160173978087150871924870144104622618122054870644079320708619683414414718711821997751813245786835941180851357762501144877016833430835549326084494584714559539695783749945894861553355671300023113945212297849946337933639493790403009284334155962144144573921659076458882142080948260542690156375983811732930874511335847916104349384236496770001299045799776086139104245043287059055459056947624531490449400509844426578919990754409190906471027294836111471456776148059837027372163196360510254043081472885404043898401218226190970001599721834817694480311608636889141799723529707478460907855646604652228832995254465373016028422819511335588365727934437355936287392794579407633269139648800908246212077296104716572360705749182865484166097200189783722270227386306471816182493275064870159602300552735752318642995024165900770494416321362952353991886069385156282178293601050374616686440031636822015820728435164854470849956571019239633911292328126527001153354612761050962164247128550463549406268900242123712614725566796565151065613557958438935658994278617456864201657089937179281286513833536128149229427801392576384563652808933258979378951852771528286599920906486898426800856328093875635959622547286648934603818948204569414558710521109481629151218046363137280250188106558262894127298591795717319955567857804940421000049322639361571296770927827438787785994655187158562324925162476715362788105755253189641305196142522148968322285784823852153506296947349323045450350242318339492898519067050540950374286549072105667951291527044360156405756826617394809300483186964344060156426370323115551372771602407084828675620676258579621516768226599025917301567498232630014690397103755013108863463826826304382097993851964752877859567849916276694281950487993370386866067446621693669403478529655621861647733168729985684624534278711174441762432369839685161699357022808587753447174795769855753544430289741833894679824475301744891023338353961717480175888271203067400437862651877177441724739044538858693581389994826789999858761247265415891139005152737489862841000156606196255236129691601993575664096145496761760733141027781341020188713795556495288666841479059898478840977830679225582843259292201032588954747505331885017021406372191176258776152191192459119732103450623819395239008057579339098764296657512789687193741559071927813513252065456565404825267709396836413621556317476443429569910650257509028426637688467629503105715031629675639511839541497877007561350398225410964545174662730802929828997156794139325620106533271517688816553754512555142617148962605723263640577669342310267451755097638685915631602241923159211559385952651477735763514882959680605056710531858137763836003418713846449450942502071953443508876664002256407910033235401551167990139635159167634449246507913469779374181754176601093659404295388287019228700022760465139386876463827953440234548686184787426836032531121404076345227864399717894691549817836735012538423675257963288050439194653870292932624309608556947357133813204695411599472646850520720257129154789841573042156547048636537270744612395909234822326415739518800995022493454948892177084780418516742332302258516488409669014949522286993255742615517136457221925930210651684473680472763973749448184799899373906424133764019062471565008353728359182469640795700268022299231458291863824282955621242604856245342964601640190422140254726088130234767230651294816225898581916310521004018875802595715893043865103746044829539096611458204849736815612809968308581523801822587229258391854549761952094681038990427888181716495470341402943849280144412332689022688261685174155882215617659143720005570285022450335096829952895233487033704462692422301283506833639388321403461860295766458415077021114856806359850443991386014503062564293844533327052376199879705520248318126735543055793010233364784206356767653854324621245214554234805150696953023307930440277408559398248388791071077548237039955796616388281860529591340791501993355847489888964165453799480947519833023428735110148858253775812617658657303046009603354842418022230502763754958567966816438460455531018299603404594822984989854690309681123155964562312675565876882356067365090326071622378023008242671536727877317591249546106739286820664712625439165291871044513922944018300466896961589055551254212024062981732874021705418940195486414314685458521724482621449047537188954831349857547399138202584934137063857220682970875606634148610541268782235822253808637350798861261488149025525421549707723687485727147510012471070197991920815976441639955423161474867050679996563082630186374152458787122886780783354793913417617032297141725657317788306112624753109878556270776896630334812327442311245907904668204480721852355074813249483194233522873943821551411786994452502538331452386544648951158707288670367987686935881310136272111491406062440975650722769117451774586515566002874721721780059686247075209075790859587729202053646950857613503915695198329269306903845147839937057471525043712101128912625792372243095950374929331304129822558257310973354071873240262266632902806553951101954269589080237248112789034832705285854466795800055409218305865282936759163828650924422799425249850578745534313422406375493422419711319692757751296407909388051156824335903169275506372645864955925666136899137821613446587886517146432199110170523557991677353776684085696834694233243809793794967915900386057167128738535079831780051394941789065702310699287284987883399379293676538209651328127293675164916837570853847531354151977004318555028766635669038543311422672944207786309564624803226238370745462548224697453427323627239150381311859754604127481491364825398719531013676054087568475552717772010095026383756631928448808130145153791310863120872066330417528737147064143047133490449691632365348137438546778438563478540391949830633382951690695429312506312947260828036759683173823172512603427761158856005329867945143374160836417387000109626316866889885594325233974098216892766622763489343863032248822468478011638424065106239199086383415329007259128868907743883143723332317441929037406224800918813686961782454203958866933885690062832598141688154283053382279821083469656829780984796678473711148113740644006429390708270716989151881042074532778230046390544240509595132917031159306865561471978935883644228990718421929029070233179770518842643731878887014714356930863890835096937220394123851128452309297532920949265433874141840269273356977352721891040114458366800760797855455806011601008263041293309755018630770381802770374339070564802883959535069019061049181385033790776714101351453987790824426778664091087656886100015012706728364484245378531232717518879682097087838945245942856362526382787767882451835787868267022842608318499494992676272667703352855427851235135777129000389536223321850230196230298000968336383635733262068160500568617855553363245874869524360780769185052543464250922382115470404470279907570238523785007747886000407456753283805806192365400698395139818559977483669333531355228342415872314409345362537041480797752832631238166822608094830887471914000150022283942017650706028316087710557400683911893746746646116777480251513389938488067380751561814333216417314288060383724276185408437570913143137284310923067809851393918605909496659564523669923490902812457817911748978323959607187132219011933104696665537469372449585377171503497697380389989842428044060637003032530703060694114554858293611620034198922101666534770760461087414613897755014598496694638952595262197558428198870427189232325126091894091719821343636885570298284056994326780869789465500466937062583926466661956274221341590747907316902014526743667205651068614317614946499472312428654061693272452139758409411490053305398250249963192456755048463735655249054352419186334853584152769578570701414799033592625283209866690939486725900341833289283695988769628580166597727204513464688055679821168797516452098672862572429201622990825449807006175159806049960490272336665972300300170379499444046473172088896867347068696781851460848583492945014865309041307920197662625656294143088784367033309604277140225196546930567457597271862426202874821999094822241204533935988009588630529225473491265902643969055705922509477341755346474865779101964930359692827176721438961969305300164695674661539401310368115130900611328061651612061698850645195057129930592905139802024330745603300926513689397399887661200590417673235161932301322315082323843621234927262403186414200216666406695031568890111827547368557528607981094729871758599769437611936504150575981404711147381001683806230989705158732509091725957032816295067917339242381508804624827031476369554638911411862741463090094834908236195747814832252626076678977128475403318360461230590741001698790941310602677343463657819277382210610177079535471241291503893624493271870361829592136210217005457579007766381123826047494855093314028171712938168170707963298123034004155943013073595846343076786383074757820610378021412453658686241608195532224863458783879628461545017875941191457228919521793893552114867498737179797446508716144761737783660444901780723583610441447331307596704470735913306316541219212531776627812392679543361014790609247671862891417624590491066981760189182807301866939756636009576882588540653825851350524358280828282103223042231101135706958078416241629349723074413709410518372962425144697394652174098660736754392901067271819236724336682320217400457383468744674890446241260866622341411118982798655911103209407964123820409967131638723307751715346218859759090854954150325989258923022731427057834230261779478234216953811163603174166506068261510937220306715124125913258641754249002734441822632370511199247361301694445531223821142514175060198079727459889339442601988455509335041414702261176844142343652019757869485187432885318510030606824614169145622262954482913762252680219747055888806371632265748444603858363086636491792255206180628375503696346428708550224177583958077119758646905037829469428065934805034936627110460951562357542239301779530610403572656916570495563063525736918968824894061792705626311939451318271744942164580194827136882445615618681078941539306982167846769812450259342455868612391580371288281387140495229250353389030054041638152114759782864225631172995767445170227027139678700640914238559708143409873611847777469421028901636259058369823635995363545511092924056235593973265641679409552884799624335682449417475207479523579025095833409493816903523230676382228730855310441672344642179644807306705275605002584335131084406923507843438503968791787471161228355574117035772988088967479425613506658468528448501763288528972556695509973261321064068499661933661084911023635900769269223301725826065090270336426552986329832506477568120365470903702728331369208774292233172448969545509965584412335906019467080258159661601255516835414051231427361237662000539853789560077644406486333702858370514448832553352420462571077400221098153930777281620132984494204166569528178147706790041810862346882090514077344647945499545496692019493187125586105011171054810780769800865599543328745898459089500175922638460745870602312946532152151718849480574259805082743951342805883003664173901228242454162750076612581947470604852578580287694774146987165828769121033615702011496173227916249857021185063021049643064619157294620642654162583154837159279724194446756845511045074877421989788595529173137673017477054488859987119988995079663285445823284638959701581722535071040903864972408339654887324750568666852130774074618215051340317252157286325190424701259051747478193179957919785464455274023329017370509869332142485768053387051837801006017373570642652199260076202870273005442257187836941260210276952777688799763282925698729809518249869288517019065817988971539190418893978698582926814434456222435451392703020655546218627878446054500868792564373912384579398268778593075764733454915767388303458572786518845375865529427765427315396314895318666493078144497591276421141770813879978949457318434222708365537748737979407555687217766267180021740900364362806294816155492100128690474378925525860760367574122452580382813252022874845652253525469248140957067054480373346275260916408187975268450639947971254641535549188790429515398969536641635948215637396913437276304821296028893446506813268223602036889082791523857423291058909266636286333826273680674370389201129372488729142795162390272342990552460405454923970943807747160837384695754823054970743775698438500022153553337416926543116610843904853228893455359106156678387150239956061539982190194671882235799312434411798019974412804965506398789683498194596731994874465705551426554709738811243184175010380894626592771840097135966507188297646042098104583292793172379859087478450111168755210522018162379000347635572345285238743778160358000899639141552450182087625857951686341498764709234980954673066045323912239693721317289972936549986589613628125630752259771947239657398363271080182482502538415461720255033156319869490229625994163129774233965894097296301071917269430653693753145357494085254768878155670369437377243766995010255907629009986422468112903243161783844078278229518407262546595760581763750987482870178399996664407941579375604997177912247243917353010827323165227296941728191860789817967157656458075328920478100859597341436630811082561072462315178148987060172819251221096593278059860805112014001157733618767753521326792958578017703287807305878350267445814407701422732708728018043980559888389060441877402646915735383814334967161226608350872756733027545840849792397912262796930327322966316796040933243211357897944724452026539333104241822484682168130920819534868495208059928494298278360214392845603024273327542917581111242138756631637783251191246485224778553769983946598263077362020409055877617918579920690657945267428565491563080133088606691800720262568688568078376817547840543769708854729882891978582607678937314158146099050339330733450784302532511081247931651835305679874775833216842368842735492417051936884260144048308993709418923839337246488140157773049348327975775653180868234536651874611661982910401103086994992411216042979465366180691195159764800664967581497392563153406751324199102457405512013150319579351078713323672662677127227701038395336638793821718532186621054761351970658436735343672833478220974606291289427813433743914972261688229823713268100281634698260206375653738445153132536555221109685059223001983315554066813542581157818788296479901622409048608315442914788532782205790869700092643981881790054871163415828111472315416415165413356878135288159076628680159008507752678231522965583807054310081380492176815928555984317236923913296285974175872598036161952637509388256965344078709444404530060271577642502344491082964677749209451897795561183500360290041227255945883541145747079833092808656641080853081623347628775809815309885724044152482250429231966982380217168944532192956261671226296983109609129468860808361309480682670960855056832479761552819972029309196775861217827191848367429378851343662959351844455244298324230669725955412981854139567559451254643855381941448818175535463722995687328318068843232394786149055594531147578761234955771610677559641013184067094241454173750753795308340395681023193592646680124281668752766469008307432425743615297301564498716170300319710678391407040500828729417643665267492947371257146013537404885550945780561036594736386828763358214972827031871187017311304618542367870349583392821304194156218751755700642271796297523363582261097471590067555236832334541871962661967989285932904170386991168573641584971030432503057118176432206592321163013062887049558557475192147408955990494746850612805480098977473437653722963864371557918762297818799153500267711475637554089329285780781051940803418309050074031156066073406235278888766047547983874385774632863289320135645622922041937158734426597142507367102560143525595508659096153424823577591678060235442659935499161413666466274437751669919574793639393927770367926123679648826926232827406145403714593035468587381878604617052955547970422193462696590072729136253546960565272484077042378968401985095100274391851722021793644563151998245647703338679348720097589821102200855047238633807851862351366271061347231280541670163105132129334855461911634063527550285837831539809947950906581325694789323180494113238710651612700876221662645144727433651906875932954957265259382812467311261975923340631760855249423027927896650813826975496652298336555597788065142199131001354980687252071420496549442335539353677595676336182190603420512216639107030401028759760759448721428002363903698183341991908221778897355630999982935530896716900656005265720928604871956263660087013819540506227766581980697122751408363345903570257828325344775014685982247711650317858682650087444097366395899459673703075070168250341076872790927928209543673617129337366444984449500076162259429131743140152219843806371318791605855700187731146401789053834158056001603870641007219775057189447481349255070263711152323802020445270497643826869500798192283031861904271635298886294982181963918590066663766049655957890861507406716706850508032295370836461458836745779693907762866448728158497703880946902935492760879673082454669765818910452002328491458213707650736791820491499386635356176523710096421791243343390966014094632907391552829786896209095405129291057220356388506942229313202635593977639380542866888312648872010810334294292487875100436442037374148824720666354680464643722178566646503890697501593157628944191790448399578112367838339880911444361236685821395768206376005941338234493940784267768275953717117643575022625913869577977802432077868931649499733791012394998822010754188871911453994785103940377772981010323408253082870572283593776330649918389102689659034976777163249305510868557065988770079213579579558560515039716853613865533961573793647984204668538129191653112100419367348821206964920486525025489822728689948521023027059275014109652210479352591076562505821923718533241759751258860952544494530151003979301112735599512595646345502025430307804182945399452138680388513101792522362080864625599203700086569608888602109211632163632647878599503682838198354136164446470842744375953623940913473366031643024596050163604845011386842221133815034532691111631938415936688054630417134727114398404237086807970222235762641079842407447168220398597988520826753972780832301340706433076832814657848187078655202734689930067948861266084037013758526732684403884645017354841811709286345651343379560296284345445535197537578263773375400836077361607838427050181920185272472880180813265086352734467718534119963738915001144343920164355061736025445447538396347450158183206618018559434498621791610567468254050520640065259083168190661834122298561948655312148918955941165852710934763789956297299836307583018427857056902235956499667386935732430364503673130518458472331809261973576708467103475874209372276777733322964742164269842990227658621876887639307301600469715107835406724226435262252894342252970120476422760371900315557641422241166391552101791548123987506348042941446151936924987680026118066329953621324036970440582556273407185816030839403546692798430216626991285405237998151617022696014649714544536064332075162181949483835622721333278857697020108145343028422165397751386532360232899520818511090262325250681604741536112720854669991850128006245097700431104082392200054756881770939835215335614900484139588330562399886613243295584347741747858025608637048422181215350342168703116406469640616294280800702540180925440621227098524481994368224727482080853654622295605040980888523577089569231105374454926030887951694750463936402046333431680762469254052263197904471530068220783126698734420406543775220174421277957261550875090198468814199068344763060807182963797126548417777251310990996183635697912789900730651881173364894366117807149650642062099174549510452635562707748407273230336893968001960115981403074880702079484999901190273418649771877605147429618197841077857465902855847376546012510079225327744789879798225601244550853580968938747585284827432076958243671434293610475379104449784686490380261966103780361538851951951303684319880500979395141444556129988915364763842169959012725929002753227619841528846891582490273977087925556823059636631452181760941779657634432325694512046261814496810571524544263855193449629556809746633508113308606374662060957186014524614142721827635896423319889335693734210096321581295506323873920158427983233721895182009059739090145091331810458884301413592352247446029056458484167655039609409625319707515068984752593918179798515227913200734454259336767168803516615899132770950802405266803564099592363779326643879152232720408227440594894975959811491004791466339364176140374507114133076009763596213457516015731050332657562515478009249260032067134493255102394030352792786374744387552537702777286888108468348198581274850499275837442705512674956502581234055990508316529367430461066657743901582639189738223100449414740070982150441733807741382513493599724699359159119519322095478619130976619586869339190346547906551362842053642062667717041714918496623095408070540075022027763148378756509108958576733544447156745806123475183827822922108049542119152980432573197333833951880659433611089721181630319926852976463371536688947886611189252655042777401173837725894926005615131608363909514608824910115941129894641570951257252447282365730968564855353673163782201998494979584624554034256659858489936389001790208762711635186783638642497261444700059475172297383148756792006816861635397724934712743340586410867389666273610964691715845136360802169349662722400604834855930881349924477376898162667643170862820401326539766288689787204413995852452744105123227300811241999994398924835940203241027382567551301990005537223519717689748813013895002732925021238618554005822570979160449630680724208958192645317882728905666938555489231005797644940507528490403424437524086064706943021619597494909135167354466009853153729567744655345267663343347145148012218535051478318159446079673804839858095856358074100062211119662721451952852962261652225051608942547136649077076041623620895341380424700874556818428005753789446076465203862120255196701670978108871812802428286986128547869426327597718010291601625652597412282794861853660651340253141209441970473062532453151544691439086913739701180296331316877856554762571479446011888523784904779886950411918127115673835740892750297486724063642629291663047153441664370898200605605102068476652718409318074726217737362997069168067198290788037234027485137050807167710579424636134437797643469031643540150475563156028869615193938498841492789659631645705254132192421574937803443497421398861384663278722744501417219809927860708663285747029944780564199843625760615182984625165717026809317147918670065939690539332746304637428504230679116307103463644514258317813448583150883410029842244401276208078635680013347208901763407566281559719059363471210995824073034836783464519398589922226956121580767171861869089049245819102736609463741728885426152518338135963476766225708424224103853965722833785516679541057711279440741681422470375775086550360729831050427394634224030526202845885200331192565722017083594173722089562692228371940716517911311915678426678504036773593229076838958311074101188993241218550577246397987072357380072035467774683988354492494241411249971852634533118957662346291762627278149325860452552077006567625844461210214897171854055574895810519065307776596657026952635564919414753856548739303035238585424605537917264509327773903702774857798718493444584810465657873927464346033479814329382830349471405654624530194821756053259037924930241903146210377075429030238520953819533641284815105115281004339087400268933481730145304695608445739700891876391016871024543725693352714495808690741657716797160521499663811930483326889493320002698843162368410275297733314015202259828915367638509475856231565836670628013672294623614831465549601287153105394348896113477876918850595133252525682535555211334700468062433781478986924200635142059645795200669430415590224506959472027126923088506005665435895730673090035528060568464385967787029734559567013952725073754268811134334689058018744672743703399323458453617693870290577186227046375378271849014603700517681527965475792795837857298152687380487993925317256556900646402880671632743706945842264400480968972970568925150511723665973734514695233589212219249073332794428044030770404934710786609492310759611110393513821574594343504026814634295699079373553180510342070803152281965829862015261299835003115377358325143323365810717136233052968169368424591213839066355104207483498664833746835072031417575025210373042395203992132462307891619362281766198618131736247207862090218697403576198234000060800750367702473306986029913778680194710414636124651534634720788965369471191838004161952008488845737316672287958254431942920348131331938203486891814139963020803461524835756233896233653706241627166242892318738814821825311275140838859444273996341485414249448073310606487868356200253845005771504141981526735392018754071698458096415626922304755047369323394960429637707845773663073549508021874330472205056373000492528560157291529053495587614340567868702328478113021324106432051180233186897974263103908195112508915163140238539933855785568758616352161561091982162645375766889319835647897284131672570284910076508091359800992250258871109111047086397451325177231452264148231701295175010086173379229303379403196298682769583545585374014431302752692101095006607266534653827133510756521586437889534973418475851084704351510926373884162557968485370171929439325605663723522617318841486950393414926352961238902769742406806671100328160757881721783259961775525462568580295968594413238649260312889046141962423852681722787376386704068402862073257733799223353642379391963600270068062506313266563255846066673835985212945339142239206936729283579261672578942514307720214988214087537118164097736524974697681644295872261926728953905652766678154796551099635194826031400640636022519012049593944106006198884222800889018508941047783185032687883059895311930356985233872018071815007005562766472569759254549167906254381629757948669834032163508165627192007214217685210030150929484743869839831626818155183141877852851805108960085568730732558146040176825346545359499391119737472091299674469005099390087323673258380568752096802414211274615462685111236407549178627145208579463952452260382360845620626825074703715037572979054043191116237932880369429878572097434286981857737840423171472443398737946390117218564301346119167571960265741066823747850115529144049031993635307534228371172571698640113426620117140110522088037451393671120473464000666212582522598091731127527985112518989703350134906770465750317597514515004052319735183003747117458459349683823666695023129316586241262505448508362910251205332873098865407902339499773041715049589232698861590861062547001897254163490175295570315967151524947861553637121044292908569168216021206834903834891186783740211005925532912763750129643518149942876678264161211666821467677998197059228441207982463596165919286675866827918246784893676175722679460889065757921948824616947246381099226098515684632343116713724205446462321780321347048100688572119800144256713156610216927709352434143081731959652989864912972245024916353303422213807616709966004909476114859216167656483720229782282171368617483984073654174231204946543160679954117118910699593115227896510086620600495958350126619318206589498753866988198193455757456036290752937175547820889149288811369056936976008925497126517295555168151366668144708415833953778939473752963044133185630822947025310673605456598347184487012638529250395240696164036322152539789657153812015251856458246081345509679503615053535070386682829570011318212621529008415321528888732986095251176149428058312752294905187961516698658078095803084190554683580159658936258927073600408157288435718796152490477297311226941492881599908467546390381946809492633348270996099060292217843882883562041419895244329664509143766431497153924900782593458567154712059128276750361365967571358924132278928746007244208738789694646141490843335372925340326506617677252112177984957394285307074369367823422255200656650955684671859119300578061357379671261984791785330357569968914855963479794840092415648094293733154969607137386003384896335968334242297164406254205809307328630604421274701187462069478896556975171739562884245564026831055632514412726209089008872838449324525650248861195991397772398510425224402998763800911593851613100498450030561001268484607611730463006631473479343199185928000444701150323767493462433588321550710727036500331760233394632289210171639553685123736215016388569709714544830986187276167518076145063297351063875629556444502752145164967335728483388777439985384029922937335462392219120265999618790469526926288060124357248551337674491792947225641000800619905969158291681029232579865353504733585402174010997389432932780220586675926050656652403936430921000127493378201066956981755321098089776772376096841129725676519670653950023823940941043088306530831672006648550386928489479560166648672289931546206855262090570453453034035360272432261370289969124145716946592313433275174705156621378291068295478673903106960992588218482560456858489667940515118857465966731427863103688182008078515227743100596118801310943418867504039739105504603758391727264035001128193130432727398866027641270572379982527816935907888598103512776769525766201671790567794099053775103105017176222181236186895803978798084563542726360508884264783770273239883382350225637465550721080363313743342534144106142506276374021521573719091017028453521284321839229097492142844702123150887913055559823373553315527517293451852164690769702668747329931258124910973969335424736220399184138086678286184562840793261019361846837790540087137066210888994845145947458982360336446951775969332199399257860263182011892145583535660501064595259928910665236663760201288070354965746139955160418676415200196503226181105362070793522855320974829605366910003184524688343962086319538076968415487439947685079320778972982115438883284407358278285091795323333122900601551465499470904121710798011942589808483991678870628705879007971105878112309219458078853199288025667257394907364052662301252454590908979943759443382896436673396876028654704133755761703197170888876220727663421218963527432866377520108274450766358850864009040109910995227232924534889743619050840065838239687471152527987149154199264358824025469049512277506311649219413023326711908767072111438555106498525382024024603788305237136697350355265686575979919394953038920625230229436746631254137162128659889300219262693400029997894844863848073613475896681608607741461465136696456613736343236775359988522740439495184293117529036809310501497299067730473637357889652637509147733061046001949036599693332764953057566076664139754547379429546650331155089807991875612833603836204025237196326232663691615194382320061836094198601565423157764576353897340701459317316734729108551011828500008675459656005291065400502536198193050275580438174296653740678508410689412942629506545204603995018253326530046208042737932432856272649529385383820388200103419064257588023043312945775316633162119263426143891899029620949937065224271475921497467767057508974443893044539406829582296445356399404761051075003761338430981175003831364925581160175984457931795187520612920974154418186196514540280551891753536815098568181842479689727977867834428426373164551928616319800349533450019628610168812521127590629342427778639005177729550455759545141132837072620690978171887770951592751084103607590781663274831277250170538210058127899046968324360716361630785097524449933647683075134995993860066888272553546951034183716255039816229043700461716780174898021913066524926402777910754736992574075125948427615309333044682363569898008867560544849876158222718410618166966876342106664606187771267587850447038035850723414711425948882406898155191380936627019882559701139116232261632320302252736682222114407254038327224857179100467595844514042832771470711416377447778785627159360091127013568334341508997834655798817851688625614790550243022679522151338030157424921749115101820510813632727102870754306228788870757723607096725423097376749962310417138409002457870006328312640943902481395579632651017826266193643177670081719427918123267469171411002263660959744371218976743533190243249145552122464418629486888191590322266747789169264963598607029168306331983004765969161822970275382545144083674499184168772320859448286011238253075762871930924931574440854479028877511489674527195348089871284390945198824648708845570388947164617229662233420963863030531637416448806481734775359033347976113894025647287843589286090227296558978104487682995666839840990301635879438139540657843849389577134083574741278976656841619825209652580157601449777034950828571279759681863885505322311447950255349537551386372871756960010022859400491149568079229442252251634865341259565818009624979637128629518566013879595396022427908976843510114841422281837093608235927786979084326149139341759337483527200662248675305083920108121973076302039933764447726862901948270360297393956113030937734774203302350345513379447519696343252812152740333246599633464110938762516821912877787229244541608673899178182260271001969592602463713734186004202804887265410529880659239624286231919257442745126038913019475097941445798144753850062248465873136970855442458416832539612652957035474359387583959872455135793091886004929817416046778788667745640656899725931102425146777673628640996091666961321771851375957978620275397183813961570861471118838824784577918675175395302344983062288068508926040011737502457738151286255536758132912459690893476278756007406060499261489431225366913142839547911147203989503357714571987822247397624802123868846972289464459449455402573729917178328001432687008008676659555693347977397911447589189473488521130985784378515982378347769073801689866553798516857199559401960980613683047747789054925909472418936329810067486619747607811183049354892394065103667058714673216564260245084033980217684153004036695887005189182624712952414212728539237853598641413554138654536300722714325781935551930774828171964434838130022382507064937878121039764607816758447749188932637594084223951920288119230176208202554212976778210869282759526040910602214481818096854611152373354401147766935082341517618227635849729637748891613008481638388051320456170485823570366104288480337038410900769712166151445703991455368605454081353577327679485069788108820578522070705810211765293007747245501937635617689103620297025469051342435867067138490541633074803317383527197424675021239691701423318600608387492515495826548396710250671049312196292131154590364700024902229474097052983160240052212754543932916923899648926669546388711220094549032618435737682920210276492938893294298479670878300425215094769804146651119316871102518338312218399832343764898884859460278901711352340482008183906327593818053788213676186073594865175524093285120901547851104921807201032054904704185092168971057770344802917916281247526179823543971672339936065765335623505610718491406219956029768506892236781597746094577835852738728782436379262594956395731123342929436937045464701276163442690478283682458716182618985032468539208107863832431274858640156290749763966567639728969283752153437977563661726140796885618951305588816729699272452809593601055385302340761230153292771313519164987332182232703028359327879686692453816891348557782659233149026075160418088716275116573038286229317337684412650117100636109379839234284521934494224115512718831879001651938690911122829285573949410545348282862166422605306458172157968984101932571684653772120675694598889875508573823612101045563447115106135489370998828261874168289348835884980151935346354074832460672103834012332071265894575433905377571096108602950416767747178454308055392815774679758933023427349668595589956277262027617355660529419011941359353543694758825816395250599546144456670250110428790916170695520556398220696134697705992587332817281128868541990865207778554246067232993021577974191149290968285934272588793593084169076422984668856175310175929644240082530455653330607121112213536744570232504014542066729954212547676120528475124397776879800170831959157230348625704520572035991214354011331979694764600752546602652608507683158636633753096866162316347075765357959767850912869421526213515857464985103939382854928173795862104441375114637708917531772701754135535076049603900658631014400477083812673681089092988965552790262337961306423864739300932970487443212497851685541528161318642858999561853004042996892658834528757113336225639591515809775622806894634719429281835238226495564997143677548663131102680333227933950452415705996833456717676160174910223332596160286622633310917623133950952667955475733146859863188932406126852601651671263694414419909007388092449963209242766477989001626302875089672948350483914549421823532449403063755611664486077482769158784445070484221887858364712070506914083387511753713403012110245506173612722825130046342792069771681640516479752042623759794057288318070263949239830806242438564418371644020138700601303797705924868047070673995482611695378508867947364214038782765143641165026902663179406039442455826160145856431672203719637553021579725388429589507225621982913140986980029657555162157636708275300805122304067389555762941838597050469870980203715635799072605493991789836330024245649746230150117908433001605385482774979975175387266541561851444323011305693485868645719286712292837765862015779020798982208651192632470316460032074711316564549232104831032889560791121053748472521772004300518938259482690283347611970094789347758028119526068929989350063988623393246546376223203106919867589057940082586584735417389446519667178190501641369303539770753770417012729416051714479916460110644197884995370542075046290852367979493700812532681627613066604571463259680673260432826103548660652388983763198038972908650506737941377983642253075558587648490109892480347792230049388482678334413891902477014183855575167227630038623999029565312768538999460985007281874558566181686596397988592620687350927103491839536158013932984364415333782086975902949588050716680795803884767930306893284006605728295322736509683066658735822262895279166151588657276712012026547426521695963165317234808884321038726839325545376213559103156102804776211209950421222299362566360755866759822898049225348078305979850830859588273406627979491251227661719078482099916734010505106867014013924791387510013324235832788175595154352738167408648109530652459987627586299771993258310674549376934799152576720642620678952824195545267555852584761339404609282757644363328178066191763821494264650493066291559093022781900895264458421679878285272785588940259640276390420991543827397594687121099330034347366226133180392935700919024287126488722355190358857307922975566820393404156520719617370976241017022078535656617125240008277992322942512781133842516317877734401963467579820151149231273547236620672231058406003827859677354496917921643357282705419876328542337767011478128387380038971475654268059726751610968329099669583982856736699259536195781204312290408211291327813791580585351106196394556342681873095487676129325625185777734433756147692223840164955834401622154072840264076689398544082431389926230030714097951284182367883501439679611535806375263544247404467547382412142280798730105620814160487825974335987274423449854063240724949640882580013378526968354375212159531522141016259548887859836863990658738750606114363766230187562299567721923793116198349752737360703205883447967968940272788745448970950617211918091936899723868967511049674054472430778084567643572432634609234810355276875922891783576495201424100691114896275405835238262191253856617588147017708693421786540412185921627519277622020686687033835378904068082287853617697160425386027779851138544054532349608096263174659596787245760194829170176650324860139343216145135943934167207816284269498882579734604312053953859053889613860069068046944885884518273948722522722157706828289244649354411681484551193146694567851400140881123042839105204752455798112831867776525194611246606154162381772223808820439438473316067495166414800639199684540801174658173321817512447433982068864260262877179407164214929624836312472264140964121915262043035490260402004475666344055098423689595193948176787115914270883705547987648080228484382889004712189172169867509620785586880201795084358677912316391679524077071240340136277599718316276633728140436310159513426080033069352752333080547511471767984162822732146733738530487036209136416070980874730752010188446306354751597818118730291719295052512866845089249399630587371405635082915874550379919005626139221330474446467764865675527500434176070440603385693121853910173701805390616842072405551842079824626421588565441050713369789944549293604349522294633796829561739081858400946808006927997816879614463160155818252287092118614115122493807189536780510928822914305296979330725758049743599667485438380798274931951350372726223111333884848491319535909553124072636414463672801382247877355492907684110276280650673947334161781316469956217005987002588032213476824067456443893242915982597775639955206623680170589964759422077693764835873408648025853016916027553101185779106487512337088705068824411948390012772013340766594511682876934160956169908100089334995538246421468374635111696610059985439042042105789466506461608415162912098465224851716084749563441407901517168383285059662555136181010060854446989035954678940549706408320328811598375022492994485783946009705909038288113774149139089703360568930654113070422510238575524908051904182782852658726860544488312997693541917338050705418968274104138882164391578694721369494082626196255647780588041454778221660557747863512563866296556992144643478533462672050173551613082769333139865409549122952248183209289974492627721524226958148775619717477866353033544991967264778198683595395736405139311644157846853714875448133623608158536686138825067443686016233707932612394228956799421153184817353888737250248485980062552924184823210062591251974938013451462647443969808424234120219408375937303732163835829743381745912014226828801671256510352445562754786832576525220604450670875008764901471299361178433874167382311423859516415341416570608748480943900118760723160042995207326926837282101727294877158922230840978388432551106233824825091777385952650425781888684574441517637219901489607977491205533478221611908171241403315288780700163824810982689578279595528727444697642861083727550825582302210891070834276090204772776109782326155755780347367658943387089077900254470334206574281022028058697377605754124250022097468486933238053617231213238357708784865308292939014893924065621472782211021538158327828360503771637302459409389779289113153167125675764706776873861246736545405510785506789304268213300022990118233399487747634095086102400358964901354639102979243702266781782730431366418477073065999795423146540007792355733917454661799145680309100361605831634442958822573342773229837378751341291069551621888857962508567422860837145324220358714889563681083476685627970682278691490489617723117618618167004593445301115691703507348760462987663606046095903430303130469486190641699114983395268746485743206275901423392032977617950177277961344145131759150242898397960104669792915556602163730818748426639374520763196428774260444934002733030076864135159583981704472168855827167827198951209234196905272419575472361934915244682646998660352375096223174592080853358345172789156456498801193895961415717755466589801925750598775600455027769127772348680683238158605154903532075586434563722253632094165140615066386959343061631464244864417824223368601824828951847761268561735001483787054997870225348634831382311464749856804235067583034891768715433848281219895377017239902034877406689107787656012220736798520230239817854596578127973395271554917013442805899035485953178074376973482055851314302228462493175310983596950196869839708193012844353690111820587186664947046927743215816285231791346394286188331203776811932180293648296481549297872839601035774055816011970198009978947480342653269400170384424719129182018513987641723582872709585922452518357328004840559811653763338641785926899310521860323734948579294179152229869275285649936631316706465928734311140376179995498057434065667042936300248777472017343987131377402083669995189537492416477446949103620477238269675281777712864040633789475599757882981385487881719792052320556485151115306524461903409636679898213620950155053132652736635748451735862629445085760691862072814279307752446747597072294391205199726452562616205192423183533937186323886713722981696285915485958469855280423943043573256660512703695532106944294749132902090031608995380593086196051545389007196192175228834840054147217555416561771612415846285494223026089886070291880678038066821607432247401921247951453368696158454041669291965271525002705250688057578548785213772725369871289819806545667782309318151343773593296276619781090263089162205580625620247212140422189961198324625095970409732884579257926742253373856929504875585517975662014468079449085492334275305400344189682270614369789151864766782586886546569742883247089026527031771054732594031831977423665066053637290680773271913055418570140455380071659534440094401309513238356748936804394892449966077120631450545869345024791684505991948994921718124383089869420535611948789915206245941325906956921210703667707784393731950697500792246939361737898627256907189632312718689951803474119470600887643151633339335251653819835540930564090803590326865591873323074495822832839253022523783510628990859305979776969284991035130824393607594298015815329129996040898839708550524670287571385500628721371864037523791587819900964599448832300674736881440492293065115069415107704971455879724624550039186430862351940995188839665261413088693424844176973090553479853102702679722759341325779421200715903031505246828319785987277642533703926550371329034361623196523282212738892881060912767140103516105359593212364731639784939732119824563114141747569137667698634665934245847325442139776846478870752691454505250345116644209943073150521980701540101644561154464661361639264187327005894519027682978592579239745116793282962360154525227923181016979749798703037047056729820143531768758603205970566191080124409835097267952895184045949520404099407833723891560701509034897148174880687655532534343437972976275441793788041396577072188579817565420816106026781456858386577323930356028457508958287377471035217996434668085204082165327024819792505355184711015416627654987271783527124093467744458944277571412139186099430474188957078943112253238537813402849739819494323406238676942030621244628202797452584811328447804898738324283125206930792762079814851849033005298478861286491794727784406112131485056383572452226454817130522791184752500089587039241840755433502292032390463872790617103358393237046114871637732511609388383576794329990340397863343783495141984457272366498814558242111897802412798359035215365117262435558294336473754144726184709433706150608842756590538501887418179341232863702462857044082465639138841631328514853830096670778303322043096778760787930671649510144098868050650662409492044682332335062487604016313520990160785135893043694928998701462189391885602607544623437877277463415035512491302417402059097328087167572340763594461773793067662819522622567793021375029292713201058688653422359088366990570626052966226410622225496289099548712599727807013879323772652090623833399611548292705383804282329768393096382754817285297698887197513673755684909241109157786368330253937809617871709537209219846960025564203260640699354257004804637967313740185316420931554994374085141332737015248988304806533381019639381017806618369244107174292251526617949026114756462068579493126319559052900284529978396944646128821060990387841126390154738340362225567290930879750027201393629435251080429068147539435248368285832592008284216883386058272786097836511628505916905751046258115770562311233170079738925326795910202218655045605462763350746522901826733550783514367824691677989258732640511029426295975865380131309442525170187825116861303338064151828039487368169824289752075386698575384502947607588854798284279746288742544192401402916853011529941285276578895842253439134377530785819816733845269023087069556030462197191699441284848048943431141702806662293990380165228402117321891586372257941869970047764700653803778329166161709110264759306712825356420825378325747843084189226042718778248719673033749631385809259065270315893473453096094018995875548892815969162537624043187230903844399663013973220701257150087370194068236653776757521159151302637639058552921661100638463328079743043152082172226839627960776926662618835872482779013842912725114539940363483682982167444155656224335983597461719232364738408437726425844070687233267342945437787841509306704082726281601707134238100828642629511466085768133385180973021008713800985368066737712080321283338266332640561734426333552421512820204673870161615792686267916728843016203920984435987882947768885115165147997209500108413766761145017369286322302547911968874890456924246500358490245433181601231255055002114435337354263956827469406900934165145607790850474430215904912587854932390901089587667591395381781697259134531688505888511924222998011490239624829980379159959519343469069434995799538411793439239047379143961571680075011935630930320685439261738272677289005649884975581876147743239726017661872131528647707892609600438288210760057056637840902670407452736501978932677237937608561155123072553922801782369410130237074382073941295524659551138309294577967713807715339956907018944543873083318575091493831926778297463325856999069550418414589205815350904461197269272119874237039215926493101050159794629552957859524513267188420194451672110655339084804556000368286156304679330514970542793026080549654492051662304907301070273760638696778484655796946997331141401553694448263430083496057518698526924588252951011246560461237649166190401008847958735918766577782064690344582009721390356623457034031755018179454662959659499611776618223357469836902141886539500477533059451329324173257907308615217182650569785478573248862266400099142841348214018956600431933658886960654869034031361707063590292476213906576334229088578037144535227005793617295746447639702510752693335626586792982863068125013169738546648030040191344037094540907426308523976514674708399743760464560825727892189781746603867382551785355374514223268999861965605953735812441561187474300633064004402011362356890334728144820350922377372861633354606371952985578056087617492086761323220886320311482937045716782185356270265777577795951221569952372937807579921145798506125525946225289285605523456490210092967408542807347851437250867640713823091070791781567634562789680982540225014455514180576161285525667720583721524754581471856448472445242604227331145073724897820775172481645449170505834652853073293837700812195645001112336376365698753900877902534348907916412922902165385656832980537495728469955919715011072073550710280590524548564008542771006298912702162393117078511871925828546860629923281715390360371946878084653523939452399572652686821880645150392639290871029826241871650429421480841596278637476217076982875163249816148779295686423720891762221022194905482662514460469449964465670442253161433978073934947916919691173610700417798837946852362278103409824248022908287560371607944528871000446714201987316692960805686609837188325695701367970630785874686070908572420993687751853782057135074791356649933008034236472251683163391871064312181527044604182354951254891955431236534202580622491435056260872859887339018488970547332709983990425906919093183646306321155204199728942369625585679294793155236240241011104768466898314439797572227834406674680449973967323039088375978940984107027741972868021706650696698780428521069055744195813242588956619695838458915009780860477932161115264351286210908206359182868233699977585351710629245082573279615904424593243228048007248802115529210151010733142844471098196565300563433308349883905786403406798125291825760200730251456291507987141995533418117641478630258036746797261404342706150830356634607098425483856701987133562808177914815822601399962043347994742114432093813467073546019986771327570135459851940967581028694097710915554353718604465319082668758614176359593585135097198785562543876815776416708572469390921370698627838107872541099480603841139751919873859696586505512005953509054392449679128993810905137608584731736046016932653797089309115697324373756912480145502946478561376131926663753656624851579049090361575816446234866233672996508889099302111299889633340625585005797159225683376095421252346513641698991903753500382918993655931597712238870455924254922696969393886540265876328128785706224876694107040308940324378993570477571941626129989821334694616241185500795988837215408276886758716704061168481590444217313931845542541456385965582869314163623590971242409759946550715790700668630238915280890689310980842760824053075061676413637058198966436987525612740824687341284069501510822522305242987502852415068200996134963808651089799153578454398841706560213523107643346928650635973971347390017518177517411609668085784290938856241306339538374016245771501575298043857256831928111873239348107177289521571512401305850727556550400613709922541926209997848362578607065074790376556319989450262978566209495286894368384174255582869517283976153531298138810914275799404989846950346292075331471508241660286311526471726683550603633711886035114291965631106677188965712204998728810705034924996718193740444675469983975211838128813937313281750156028061468049660051301305143400767335581860115818390367332626783046966453751425689871353190211674447388095468698772060728978769453512796073540545630905647839774746612077526500035300539366352573721452081359962510601781207035496309151999167277118275579187471551335791649570935305431315794068830187294350618889929161835633523006697224201511920087230956872651811182036508658436727536460637105850968269999284833746756404556788453963929032890213067924871846561574500262738240203938438321751859706125628121452195067871802983136370261158695330560429216421659153468110669911169361504607139245145531008997561540156127708737672466883476907079425737469180180008304695703996437644255889365185625643070531388843386891553832873781106490215460879293770378103128605877429503857783856376349447671313919581912957174391922530248145318778631445610660298892366470823849706639315548650355340645080118279113569457086263737203012794249355414927999286483474432033597499446694124481344622369828592488012506448441974370482262601012289727237134741365230095902414299804945839009890127110811726558585750233477899920748043173661230762510192072554348775354877453728085109255832151275625465857698456729415806432463689609562691855915611942987856193285093426402608270046873846951009392613396519739174508662544756886307884681545675836188436578568929912273733279383086751314952132405469106879258667060108208002253252265118278910622978616566385095272557756497082110299188854478716519679365064276549499682200524775677867034521360126144257345631829915478697592956619968443567884012918435458912855271765145307684608047990744247246362859266674081441236687093858414219642820766293355632568125739087455740708192694938518694366427010776760314416654089138609811439952548642315167273882891214072563924295633702591229222549071743873030754511215663215996262020471367675897169017851805848980328544779324110385482012869044824985644042147069765886485048146052559991148817206059617163889081505049657429531500220614041729916437102415950703946950262347738133148694479585325798597320904464916832597051888196441425384681726117139522707677214165918002232609092656714712268078235746096677012570885895739971442395753447100919501232844531879992942336790592522704183272431575945161321510391597080060373602761641308500128550966487591764594877582369523660751275135750637012456196606491253698112312109382484392655511794358894330011547909393311969805206879786188596518531761294746100367928894906665301817141594068420076638290025191186098503916054330443987122908229049669883482074672345312619748046882491667392129741185275340807098004759281830202236635753127316977397099246852278002442538637052440586473322419208317684691822944494017870748632450891899758467774099322132615705709051289587444606426592322537323512130185629934710766571992913050862919312340686591582653050812971950419367158706985699051809519179899201635916751616105300426310046374940068764074410001275020835433377193118592144442843717371458447216986794305725043759188918470391210294240198207398715386723578606736395028432673631060092473477346673197329438714823685221786004438613719244646260563529361670306028188616515337969138431025477055271884209387512055326415912331830889279265003436624392870256112576104279956440782411971108164929945324824945804828305375834245724616289727064554306736973665753544283659558611555356710804869785520828058684960180579779626617204829290421120715887821598927422340662114881007017986576204858686446549673297918389262976742632557986564532152331467944686728140101980614858027797323945229092814978925107011749487409471883742172503554495731219796161356609981877999779026904396664566992463159837325205014394818028386919299276540747539077458928306409235132415138406856031680444251942359952698583624319258874150736274322321378233601459253778791985748177880090527662618475450594469723010429969859288798395866194280215591530480412174656929416114848477507986503113739633858365272033251250355913900724937980126997228133949905124648095103390985709344302361298741451699058828370699039233995493762393666931439999553355836680523495466835067089464947445445357264925416442255227830484913259508623278619064203889259027496500530918745998634916335777080166360644794245219889909270165815346573190338202447492172459912838330988806407363161605196770329684726156144899950894490313535222554683453569863132984453451541220099498477584165070559830379909630713451307312720090490230973773100866637318331368187405151615620164640535603032678092974932997892734548911196331577420430806933403650847158671248839875018736002620936192040198044603199283995024674986570634513563546899725657576579259914867625544656547967547550973562110507336158071593314426543778007001626772861728891334181828792915733844263136125122041876276481895011702127520343532611920916723331665329869479395370382753919153786599782092728704709692973879440789577783068905556284965036108244168991047207176107165345235871520095194430701821872821667814424927867523901607743236691914051007172832733729220899303035620377127913152191245801035979020176157566212679916187639855909492738136681068988624577973833328503263292912823720722451530114084747796969850399536831075828334597742849315438081319547997009453806176655038184010055700086189733708847117957556399152400113419851756390693658824285009826362231169537282204251835690491340725782087950953602097635232340821060957095353439337229227295871870311399083111780417853671657904198106593498914046212177756520079225794598751101923232974574619708232014602789841874614109970414161270174555300581519939523438308425191788540155810232393129395775186267392659183121510703401662531180130786020256728558596844461278245144495085231137730099482197724094428006558557140964350620762346774039978311376155520996256435352886421346394801580829654171115167336181987232787925198499118311597878014867083561415158423374017260533233156993965843970372511036729180006892010330273543444616534569434277689223311736705314360653540307732041794163983431160873510118982517507415002695694849523369618018756220747914899651977468662905902380397336324389127696759877060861165984185799214841558145236468379767183945304562879671280383413456203726007159219168277977816245356451971368794704046062790341422181489479686852159886801066225439010278369807034622716660407973591016501873874864722975775517694237046833857932472357259691717569747495497077207740866397850580401449854938367872667738803726052267246934698031998646388809777866564790779926357825689519009377684784932585612351992456524974799950158817083312169323280571816706480909650531940886581244531600122394035632464846404932191037676841945303515386145575297004732033918130113655775050111230768552119337577589114204372835410624799477279312312076883876142798386929855263576059100071094000400458479751525163290510918570960126858849123407944366660795138808658681077758417175607291832393679405209271197839900679168195127235145495995287040180042687360887021033026524398589342669832018234980724264897562341714510288208132880543792040803507549776555287761376928191586323207736448560798595317100653206758359342478851449798242196346029154232699625961408456631646368032003999766585562006012236791819855996816724844546398740177230957336557483735712915105592391355812064590136520678994019365922677374215353921932705127881759924638137547134654164340103021232828563766964856263626281707856021569452338307956089424216615997548224132144649998098749112569127171643804115170652425668726088018494747722611542294553402769313916026345758888559518849931991535401852973562780295664243587713166684356147166114217433631361872978745608773752315207733354182428865972998639949470439271129177325693834497081168890725264339218852627510422790435481565933492187519001923545894956924674443197233966427388276903079601032638350339012658751317608586191387140482466021866603845551547904211873349615158447384113647215886971432271025506324203510711204601894734128747555542887897351399627557317381925390790866379185057815014863779550785041538929175457917039055058098398008026159772292272935750084356314582519701958676668389185282418806296206602171420962624752253214438130245835529429055663462535268048831116700466973554509089154709604827754399773358758762179076876948406780074122686008304783482093508211271580278789673937975447226996458646973096326048852387747929207979923410317527272001136873977158855253112016844657460712067482732296124320503125191485177399240128023928316374243286985237471812012567159147626968388097390172072328499282191450368460852093065097999118403912467173953696023550498560918197895893105765728703621929866804563290119914094624176737894293936557319350422464433637411014831436056023668780232448916361374532468770112367063303793650176986765771111788769890168368762655849782531691663272919996655960246103147389846452911264503029803055234472540946199092022200056761894018208523067477809927207939268008843673567730610831739198711252464511882142901383279027883920431694128789303927517772362310496088768235117261533323846879160869990497462444097800065561088999569435390201512354120414751269129729287086491447312406445278090327261103676747078819894904313602727159970351522879372300736770955579829073942966702645161857785499012955934096333598235879714815010115103031359508744069166150622584755457491109250643078629575937473889490285278679341069673861198887805231444002676284577044509559300515094040999443370031479670299606834738183982533711428472759048539835726042923532587804651267979105239627993202747132868925613406219716278950164270289191011650079116015596428984871443713580626702719754051698927238596293779448456992288186114272563113482322191812140742705930697730902171758530469128934943758943230080059976822584766496191296255959586420723578138435082050360407221468240033543868357883323729470249417898085481788457084499746570348326515679526468160545136528562631990584210158962644054677551734674868192589618422551710903832763264482489661480980902086553810902828991411874268199171306470745121779930577943479541473893238091698262496343128321422683766690469969492050336882454614165262696714090774163066738752224225836796774475358634535127996573004397643899876819934486828721866209113746589612361915543163806435253366520651928136007943476650470929294858098190498106260270238632240395666432753208842462298772599911038343685978517158718816254479316177455869089016995562661081854200546597968217571198293124130787163986664257561284186556187397009649562908805534766772523110830621251728236173719169433607259902993550231485421887160612920009010691026594597194682542835872940231566163780081023692777285039800686778229422172513228362483235227733979689890849727275282847257866947651131863139679990934180286527460741708977399326472703375036707904834244332173623824926963209965670718200623129161609749958311011169981781485041724079791337511311077497761569307274756595209048417273896519711403032396800235738099494258991714187382410865891198275285024350236867846804215578040216410538486849324962668489492038184768504610049358501670264495544032804738588613659514913320358457299118451746858640812079641877485963470111814857988717280594371177403188388216597270381679581640285300305786502730014527725127118771218716650943684276944206841769429983657922542449410348887526867308562170278698342456664981681448916730625598988083363740685154737753117267642011088997019650200184756341727837893334575948192668440477723220325620270815765588883051658253477988213918281067948708421073536033178279451006876082777686673097546232928304281353749419074405043470767535481461683600408073622681445878739248920672999901395090513969824447691086126573166130435754347610480859011917289414570448866069467165466009436312619411465498947771218271065789279802072749181462457504840621049107237907337298832681697287327318808858463404945911012764791200652797975615775278309498013383606059757493283568510791478607049291277362024522110773393672852057764544753711871912505771746249955230145763043086928910198781199052257182409849771005316854856015669119062095653458152825326212632479109168790168092487406510394987605746819761310305488492486713987072322275191807728884358656710085079902360933758791459633250203425313286095428400559812268858426169391922918231212714930051228433336288398677699218770677703589420519748239913781856558074993204411427062142144548478989880931726285306310010814927762811896397042017865681787375045899362173980709240850766774289995773598994229825295782062160202826433567146521634526740101212710034294635932359369340928242810494333019820846995149181298203845649381543191533989739166806964056544821954758180461114999026547660457366686469867906506862187847867783565065685840607708629133336546756922700925051927592144181076651831783400434818236086964424971598007831680970078024464066086744362881057702584461569063615292892773678752144917800848482338577896880085204166451307028563561869190459629881669560798366680014874538957533914841509329072566619574694893749168204626551706151952228550954651012041732926373065719277387421761649359452747922676443910963990491091041281306601708310317757315335830376238509924926203990549263550655926539287458401267728644457974961967206627331512153687621938602070566500415080883926093332102888838320561626976317737158354878587505537702419838468790288825588407024915538984104485002253301786825225034567029573308381553304723902745711739282891978392325341006320087105469209857603034161436414358487976849674248680741803019028284485150433900628601609724501396142780265219957364911787259682648201648766223806479091737452030216096888669241733425729604498639723502492753574336176649680099694115915150118213300105339079234069354379436002428501094271817683834361920234166818821620154716120542052183955920106326609788099248038422360356263757181969180487027158296467132814517475974152327728017778459831683324378005463473087504036316728679890978691676014912608986991329729903765736922977375497183716079240175445326607344505680136002979737955297214512036207862816798890590708145382438021260337378762051126085961520095884446766368848520934670073868753251369004339154265778416921176581178748704402915397257877033840894506882927028579163969442638511210949488682569762174081557115159235845933616776194495565819594735749590004449743120151590222794735402419094939037357390017938861837970382654117903618509716943554661406191032947926136232682964683800615372501630769933944819451644033752316401327411848781359581148095330009289601921951978001115175206858518036359671222135301689724922072349887092630214725123053293011876431110706118611994714363009829045005132434128962634428155605976904285470001684612549427879627717187565483788487179355064355690276143677041542196448695046989090531213805506056059827549386442323787997150794332455494704623665584122060241387348277950854089104504912728935689509738474275983558277286831070226314995556468947360816650198510830860581589926088251043058368744736685474623264174178093863357362572210134131485140124944598700736272126176422697583724372226059718595141440873514491692092084294758620194239700656355791534362992960330581562515935387985680630026463519825631694565867193137082818366163440449602405071507501833454115658200537690440207730616222419670045071060820195088631181964452567975003316842428360982709735759374849664412358432950020989853156897535872199022996188888666263625477268878985106121875034450332454375676858717605621404087259190520851266614421917112180925346470721052691958108858016298536132647724223633207028125605710211778070117896008809897538016268979114048231551025583199830920948942990904595663853007036546273829959883744836333656591617299678492170971310087350529554715866352624638110052380507499303803301332254875176216596927880698743784635471565575918002415478998573929630993261274330610627525336673729376257917233598500779530041456684237640716660112738150749056780488822544043828919662106096343767132374584797993877873797545169137662243090776562830212689205915231068109991224779741769768774748374913206538820385682726423254566173120074472288247061618851533747546381289416240180915147506735451937020601736128280990912291534184625177444608253343580127958063566071102274776877903065525462367042437556783129404213068853049589363184773831061516297277933029187101177977074163693042997964460057607520451673440311027991807835491121436683541639598062831777294356918741248352700351627900695279857434112477851504035428190500202798390077104488750906562514354117608179044717914750757156087889343830707829460169904638257767939306096530791180698917197686111293184933095195299474707060926897950898216147696643882382581752494012740955905882593126154031629956441373990990169213501425345424922481105893941544827295717640000299181268837752128040368256622124713342985480622766995054584326339434458424252508830059397440254039445645234695877715135816823871628575433493927509182655757899993426612460899031296766383565000732729433231179026152547568584319546819725925755077089920801686153233409078249703790660912496165178454277769627285169775678996755130628843639435784292367955109610048901480469200288665313833888943847711291539127465331933359206573646073950891424743201384531799212389301018992820556133146290969805687450058012601567743307310983765460374258969050857048230053254036766716855885668496971095272500719622028854679875464777479262783612697618488871256108030660710973353979938428445806275036342326712252798198376321389337842131681821883381659255817194445355344892642110349402610850290421969536607631288442312266846305172969630009330589509215982006855456349236964084109073498532953407618316777380891602364022829962200400635681527509794508642132465530832335093034008542700295756969212351487921068158617719011865364240169831746694748338393156293476594011953335809998398654297737735850549789349490633430645345021451431053724443811954451921143511085539973956456140047027415814465055191144720490246027485141879953477929273310862806271037923798893638398090969776322512676668714807645499373310013050454922194705578208442615968430928260797856524897410386380143149280895983022000756122225779284915846460180926314067887907882778043446072334155111507239927331045470137024180704068720808066324185907785325231450749996902614401973826953110095972752504236650935875846590023561076411435046825636800914965256553881933527836587626409163061698254753433967863777617385374449049486487192316076556550441033795624383641960158443020365949627551560300255562246600584490646726662762124706068313537145191324137210694762475864810493108093048148235549102762737719544209878645694351143982488106238880131494845689156697020259330540521635509359704811083398097736956110369873298863917345698268664820283520265874933589570219813816954216144517817947618169698654981068276559966625769813121829004227376757284493056748241101663273862488728832058706080272609742090612481537935045218957990749252992868646679184509156757519857161680435521061302234376934075581199437022500028638289718916061017070644600066850038569130874760807548190090171585921303284284546899552088063480705447744431971207896465397374445598395627708482013059702803383625219028883353638344214019430275675101629822988644396274795255561084348158216470141664989139728698210819036598339227652767574381739137667810513294693405389346263344578313856212345670804216817207580906962495663482505704769675374288389064704646229228397578524490062750677906486816676294417697296842466988716976002304711600647053516875709387457918532908050795570521984034850544513945448396170033741834622200557951250147190544989324719350016749441868179507996642181366525432164852142278894552140808458103886178829325946010269309215779272138025493160988986940262276488424975602333761589250419946313988106274735708501699894955564613620105620546607087873775656117796025290535056778530581843517156784223174191983609225079671406649968833136607826718422680406497286744820171995370132851147373093953030907524093352849405562521313598680355087392298327825064396505292690055437149726493466955693006482530267516563296706241259341969723432140698511480482549434824777401616894564888050573240729065289402497873829616196818704297102781213177591420823908898108657735968506070457206403121140899991385164296252898372141211214609409945363961765576029360858117809135950011784098293492350598947974774750058403712654941738449472749870232802909544784996618586458321910976259522074367319522072483181261757740127630263579948350312164013612885508115592757361034882352401810691546047110585424479001697453319929088003561549421774365074640459217342944767055825007792193344270468129275816046586118154667432110521770175190876069016074624158665788992469684709513118535595950641809913150002692565330324500193344849323749144255119778319024308344077749908283904816954385602312754231700016958779726457862573282680151417161718173702425106944590246731531957249166894460178337945677205301911258290603518225171725133870722336442953323697396342512812600075102237897500891860711758699589031357782809883601616200838376265113832778502409741332287941600095141093210973265764411460646926126968284776308531214884074500115395269482314668859664089759208730489149544241620043194035219075376821982296218555399485425726849315868180532539108430970964376521761167584722588891618772496836848022630223599711208434351116790699683466737552872478177243551554665501459344867631900170877055483017310740316970832042283491289819786277238274460552678867303943243313676297518937163715285875568817296076179956207776602434478405158031467278017992749127889487890158527910111776123777186579068022007922348063285953545885880640449414904385522241156599195824610202995837252739933114209214215426389446605338115122110848848705412418181881826548635821746889664785470806705366867451655245607131405693614018995084076712615744704919878007402855930465239411415123673564985728802412329278653674103232631179897841286845109279446773737152263196267858499142515036396316033954231587854636720573750144896000913342693220043408780802773566293196690359905258339070708814050995237633514982837750502551198662848821379491247249162972913843560085317901672223373847155344975494679539588133103193505453439272981621331878512314140768914852760764593892161265341530810608564922345397395965284630392944133353070838680101810181856457177251929835444236004107304242412904121178413867109650007233958444336223456342094974822566114787794128450775850936229996066326186081102880508442643831202879930624692874388646684395172234192573044929209008038059287383142543120787908916326043842138734960702262766279389887443125519206809861106124510902160955740025728117675025484189846886059982654926515802280623511473548663308208839146265306661514598749706499462974210906513067737650863429824634461212978562465058978675967502057357982690032370365685104297890331038497499065618293211124355853891544795007501436264559924828285637321298015230877159893149135538266542200596868030134984406981219954006012164705265340765915163463832561442647779255769020308921679021925347906924297568089666440802836684309778180814927816965532390242641704456162075584411286151859879012895555824189091427313719538638734628819716131343888308801878477909774669711887391948325098378087984344497128641027701582322775701717581436297071256954352195843685129420074894690926845619057650893274346533194755432981611126001488718413825792773675192368792480777821765452701637873607781287853085985464828760973121527024123758837468969941714236937694570535407357091189220203782537848889821421784791678558681997221331742886309743662559265731413890422148780989566111672804038562362482731759471427914213227675858678770598829084082013467441615622642527285855231857526852030965729937808850738395854571994138924347214290574576552348105738126869762038802766395772292669484074093398611490137134322640513676862492216232487986041388146946510079293989288066406515035342381094822197609772983915184404454312228256144189207985248673882389182646043820994692127068608360014025235368883614665532634311524177108587689582837922303882219586169212854300950674523431146748041422437101566537945912875787500814626271451833825403393984420443310272207420463656519851743212391208678577258494829455918077565817912412434171307235872849502585977217608258464305017027024968076911905013275414889122000715445508261028837684740638744738555647752535776679229510027170574333466398165489856608179009744550151763654047014492682448819317198057977965041362494293968438616920176379420156652103644042891073551332168716786975238240752461220864965302394964956206691583267263711805339819154116248217345896207377707280868467488513021426719796106220496875021226799310411049293933495577947174549027476583685630524582725724660768937118942809452231894438485064136770115346585197273439973219463675269929705429048039164449694678571199603696721366635653051650576619060838919910060423161492366332845563057001933904292354653400305515189668820928215376514259769791036789114724390899771344105326159797463693056691665445005184735792522681173426160646888590444185372420824067541620752080989301066060497954033914225713616606897811331025469771774527881451088186838608955733794615900010901495283849888156050276991135358699342455119479442732432653471411223523478464710587748037753917879953687282433982076542206879717784002098983422548128855950912813996296698661301116669130312970664062164073949776051409040383632259299304348444876331212187702533437929706171637806435142547807429828084910691241256373108957813714340821469021258240780098500753538872759182108390986627486756332112545581932971439700080679089409635373266839265739471847788520855803646766205690414352827099244646576391328803833821860809579360033094647712197573009376331424584798633193535704726917960794845529357870154402295300340158274051440613655119008337236111548053413966407539826026564273017849648385749688870336251664435917524688294974756888894231772039113524625176684579435559252750248634818254855687058292074510309595876661020267819220980086616325036585894953828439326430740486427555561252559236528272733054668382873539452382313230702610910607675280301024737135503517027496729260294442366355460787513343433289189209455800336705597031921568882094627268770014969414737912946462905628574245845304813930943960394047671406574678888774272907794496938870518280683531461734015287534724033975097989523225707650649314404589823212873946704256365586142622076409147647991010952075392423420546423393196994477778665040940084233193545568440892620614199089278073700975521436682688592073778995660767977311546853075720143815206185984381268364916404168471373590980565664264743691103441703023590222205164402883120392819772902103562212492688497088372444506061517832129981807796386385068968152781315011523501666982138663950045032934124444384759881714142791419564430160864023912900777614345468871055894429040005861789543477964824222189914426966612130387506522162801653859154683584480544106021919753054572118483302835501901613180759685867146823050298837714078807358940281871525917861142328128730364873889560169128767708621381652705679675978201883433687539914238700927173796767931894935931013882905451079647328091736361110334712823609170728451526284378733750970565475252924181791351571430795806744236077577618642643042062498847027107277751208620941079724566105523127293527015418978246850381478067928855998510838899695929890602786997263244791491654202607434306802660987509609975058565251320757854897739966616770316701309012718689960746716879812060858007524133483077216092911316087596530158553868555589949362306517673124558579481804128428851539088725977796319346152010739628917924830602273525010119364951741297750508846037166670164456113130654346937998965083690848483356905633193784135197125426959999723433921255261364779340138857611385014293584807823629288434616373850866157448193224081245394949071719650733535579811707290897955787436211317447020184331609438999429673924442976161008056083984263963140456108835091741617078596288963158987911893842349433118059622893078150745897142087665034426222285916924266241645819534948607739525676917352052694236399763440736992374305013827568577001197101268549975746867668593513067935832765928165006904118422735387140548991341362825825124092807906732224829653153660793916378010333675351649866434334866993178567259568901295896230356586131894585755652685335779119938198330972111957615924661916001740746802869817689352239899646203991332316633397026641989684162119802268803138134902982602647171447195440892128766330232887714414029755194938622099999374747946612309704864054925338771806087935254605926206639346101099667855112687307324461907300079284579130755043585007403140704146797119570138901987941697298480504314353871964832333261054117698412413092050884454513553842109765106225182054919024900118995303202209913823787983251607914554506620619865227287044289223887370511236822286302937196276828531021203828394490155359674203215183897034198626323436343975581241721853044025980853636828924069513970481715093402401158624830159266461378383489584295313186391223981846070702414627277215355966690645080551472383420654377827324644086188216248589415313064511038910012099274914252994670648843826824823662749459601409677338446704215025586396956817456212095479617468585265793382956733755092820352395836951417001730036540109305522520591714124711193227815173797415794506289671209001637436721967242399270330355141561530048762431029707344184063661646367390310083849307759404085049435262335065919842853533152110199232763010607237467292966300488273057196554528382672998293980810474799535977519265200707674637819670880043511406335706526024250648314938655609458817820504951940560617601130308630556387311114289211665515438603678540362012288124039567037796428988522583353258493858318488336359066190797323377351807581729707692499055624394190276879184510515786759678365435744270081043948378177406458359161416019151690162372330238796194414968428292583327440770673357552677895595660060641498267180344860137756421957027208633843124757072302572902891745340138000137490778324785536436367743239845519091896546706517888541732848929824417488411128626225303838794780684007936031031322172474465492542984033528814391440136869950374552099011795920120307721426600398323947570929928014542691389011155649093598662243992947300802134909607429389669085997531115711408030298939441550257344332817703515976178583389084259698116011292657509867878863706914121562327231580328192767576206703563425669267364563499243050595516153305678534853666715395388580337024788309228844849791687271166237270334451080313526384412567580657190428677461873517143631716796290233983693939671054103115975637120073838305281256304471205817056087420779355312062456329739828229265370754010002925966566227295372328677502027139599796692402596314170471944341414341042025657876215337241438109361113699106825080273256513144267508151082137628925756525767000970542758521892241248771138375330906418657969522368409755253949600331687976920200704945773624476384268338709557453098455079428988728803826015285683964820299479634184031799981563140214669212322963078967697493081777648601165512788074269085521280866573894224052275246325109336905956041577588518626821622473379600144239560246289831999060086165321622693286334472971653401527797944534137112213159322944932809405583358663589025778505610336289025258451023693565857008478388140158582086486887853966566943628752273722538488303289068443391042108816571524053851846109040346072788941857876728735885418474507530755253534716663453555156197260351728098128393635815686709370567401102173818459888588902909646086941602816654291609314884883341786719691020777119901632869744692808128511648452351809082598797126241319089507513726959659985284973652755801645470637125607770895994995508453461063791017949088154148212289283379273488696045728207291205781472714380434566895580477998180931593465213985443477646475637381939109166771784987327946480406288617169397525621438463738177187507070083220838859480320774931496291969356469477879605313898142107844101403658136405264109863963075637952764685773466253944690834316845789742069407441041264563415125292471889241752861994623591083347342818147058723181150483078855859379961238498981546698910367806049821741149436646681948632384064190659370201464563690513577503605374680119818118101765929176538894454305161669996582653773009712985395504517046653715377105448305865149689637574275521894360762639085838787124276208089548538814653038933665493649553456656456601121291908599193947183744205829419512720488209132654358089631509301980496959769323556811313990275315871344274740260922561541437759217889329066427386101748036601963822466406402479005141384062659589963851274632728411851447796067562198864811151327473733619866642273242897042296963074736104674495285470060165961597813041067533764651923559115881575770800340616435172862330502650054062202876188341405148553002327520702297112634352700958652566671656220154521870764548310813394575015763295190380341651653050345577033632125165952629685064430404839111783699844248393828073811613144222727585189929758963794269489028072105570303402116828334958994678816970347322784510407971796316814398323753083161007704911107294738258800183996287923244771546434218676412197354772665249468312321049589295841214317232946797302030272236445659973901734814731586949128715552948245227951550284248835234999747258697669996181457490764821120871078739665895499553258176290634862305070913961046429513749604943969793959186759988077087800729952755455853821646104724987768173537285375332038006256119333680407767469108841535350902417663645978224300438627904576939941889475157015705855358464462465410914680486888719661591412614023621557101338091212538527932579149541601625230209806887008100171077717095952822267709739173254865346762127060238147160759572691796084005842891974414111599843451171031251558856078496609873912932710820403257068454612198422550248124420288528404807744020661395383501830970853119277469252452603544735573007813517475326572452643868818865093569524692248185868521163135814469153533999509308995991747472445724875431601252597287857754094774726934114627842781824795381698829832436907202125799615256680982593070587798513112262887020732704848885466087249401265694788591829171490412768093286481078011869861896552987065462896805923111154713073751655413882627885588733647880648977134090835805561323445430243569898933859510917876248524838556419704279886138837691368767734240535102029172226510148071724497526283545008937126613339416681651491745520778578493498170986237811077790789835211624568518236496517879497439254701401304556563418562432390566381778723364947041989261270773308867497936917501132450410424929173861509967398777436785540230953252324439385560874037809910308513605211616164223658084315723902682290553034585580236635433929583416752816662329347460418131560037074829837526251380889200124901206341619406480405986789164809565939247347176206947223825099762935329304098881565217721988622412881520903879891382135661881930820280264608542372616956412164593971623323957454250294869168994571677441785431671769265494088606017746262123634667131640128051639095936034764356314988351463483226781843620667046156950068014308512233426205176866663512863483534455252631279420037100835994008560886765323659682041254223190806043975378699747366661253706858069981969180486073018107339114994933209381212454526414748101942270604525160147965756276098179854783501240126154933339213455382095642021338658453774482887893243547673159643620652612488625934384312451069902543334239390409139736391791653573644588421182098202369827059628454077064426656189052000068820436057679028869026915871949429206619432864939282431647330755887178087161996827691138211464695456468341766416586928671516320867100516395189748709156722466274648064461948338222409005174715029557450278250784001998928540568679064014414460582291487764600127205009270957733636075122541782568700321151688616070340872843520985072000919899377113945948256751319598961406862745421003425371380362603135881495313892911624959089046336222169217556219309523494338220397444855040281744576292054315209052168299741606984459200990138182502906571003461572667747447845392164074719840637055948116066968923543455374826357291609436712088296967342301728503049266728700620338073196807024782221953795095443711938866632428310476101261549382598907631413667769507023606736151539145604621697099422672157207458528077895643879280542663238822137632332210148335050934708545188944174962719220337488311781657252947091333763778621566465164222684799962930694029005487137543513231535127047951443403657378245383134517234173000713503462260870524735467880403048312872551774269710219722053584984022801870380890520324058716717429304004362642026572922283604361733907032005971309291644471252530285393213420212881104734964003890920756396847383797396636192517792079306198584014814678845462977249485130466088022194903868988084542875122865318459643332091648574233651145596776796415474717355701696532609667243405117122815155571266967503208721774056716818508669803338036024752417784397413791926950545734141998774516585369295091034085913398711280089619253665808583916653904140310254702386339493930298992149749522009037892604672741880913888543746798340338533944172283259412671270957995975299273083246673902580788321553814760341428721524674291651110443570838930256043963814668710921231703196784559588666916924978443782219486393106710503229404334716672993842313686259651614848826645235168641412722774355177276836163258420779567043141596556713095013820851052830530065177145971367810467111787308410541774943540286480216730553251310859515569330715492118460290263471794808806539569768019917348651299772324779225063527267496387699281138180051032350668007452322882866907362710708613912301812555163202734948936621079200569246216473753906544244445032248676131180871907348825647030245940109204295514414282860237862466396184911885413099297834282131477898575918385587521973366389447484313109531454835236712716224591564702861369162718884642024246725177888038622643809791060150302588054938567808735081138382809464314577985680759206906987985550184366955327744202714255054151452649768988779242546434736695809304865731390152144294023169594671413538003266131012047905678786989863103253841754403934353056516193813623375980476888987908156257064391867195323615090321022998612616765924780685949297229936825579840415703834458359495345068952114581194349998812222078707983656325406211798033505206864943661226285876177707567403776974706282608402046792585082620517910161066800469133451029297171139754119880661335218076990463964657744221274592741287622395540248087971075361683629461764002399557948073827056991531262319164536435815480285514701011479424370029619522634218418930105254446280762730479865900700292102240644220345173130625336361185512729579000242131748884965848959971898852429389313410039275622794546364434215880200332210827351352760927925193950534952734302981679228135511441050471472784824664671831978992357388912986613406979798346678364527853629988112407145291729828769988874310495556299541279738067913526430371141165315943198697729417772344165447385792583907605927292239430798564311692716348886394086639258794682858276978404927267366647499820392239654825734205560173643629263029587937885784100075151470554863867617055976816446370078826956477122774085737638581644424040888394652653703293363395600195420438440944222752991704441486658934297535310033489724278495620388154759749010187880385911647118511757410781458130688897026757101412935073387706840767575013161889251856391597387477780416491152139489970976200524804615787640025514530754043411847612808392345216759348714259373043295324676492220029788980871319659640172651394294111448823814588402127605842805275941364346024870623179700889885390525719015623862981387826298058769352287662649939616237616578902113266501952506175332695908238824837301700305285013143059587455513136999367600478914126368100887057621990491351422879172171477593319382784312498333787814175329388152694972241275279415422109463560613335398904036546689431828333840502531703157447658654223803855249293026855259163000036324783128160074026307264981912966067342466362176291490296017001140447831658300920311921275121480561417244844246602161915161407668653434273884837058445423159305934350315829185859517902911268873926148160318545192797212197799635064751641188738911294449117884269796847939966094242593507306478905502718171877452502489526504279610748913636778521731317774027780265348288926787179354540490456297670912890686934859490399496457533930923258461494939616618727995477698896093214084261428420522655052848145162732698493909780022615061645110114534016862615736241532498660870875653240521009725249958176355191796271325952899709091705909259563313751745136943456570013631546906023217046490553770339134722075181835157763715566625865276257156928879278899061302112373213709975886300482596423062347637153333084094395428425072976971114574000194549458722477353844495390943017732170912995842654962910519437553263789222283852002860510571832365374456930588125831011162077890157608617948016959267256151855213616956077174097313456115573470665875720524660837139709312192828154164729120901306445518552711864477719024848333441994930754936079210079238322810570588904852678445902019616125529571307214880070319125487380725213256261215566280789562387835154592678305728693534302597751219298777017903791117858122398065628574232761861336844556073747934053823376916575144745114917915867579162624963684336923985426558136043186975287453638987551691557943181060895192244180098499556759034089209636061157035210167812937107943750802566602324223388975718293769345017087489613982384885509398905643270218285437018641534647854011341164348542748761731016306595096290672212454208132924789568838249061654757863411223703244647171148630460930217317392985247624991486990322396923787323200528696087736280221319328198185991399095859077521411552996340225726009878310941216778814988924230262637371441331837667855884914017744714096090007897547463045950181607813595362416620526829983064829649403185931779536414000332651097764761774084699652134349065815669034808416376147842836497209847631967350057365636067261908602746174500137058102449626983386900188302425234874589093078060554182148091441996862033192696716514225768981336478425033060353286369210106158718592779435807105302081382948383514102343622959193418265191326554604622309691875780354691526003518189903529713189691016979305348966866336423714394731233581536114342757611668137075634533446271006432359508626027374428316158531313890090752302998473634805950911997709473939977500331480015389359187537776889233983624513033688840218971574614769230277193748634276187082532185929851089310799899696377893336369493052689784157102652283584488740747869994841422793079498157233584286854462092973206210092369431988165312853951179588726744839054070763850402370878140001643278745283826089295237725790360132181862177204843116721632005776531975815415034827960900974579458575583423663672770620724539621758366803146562213820635583618931241584428690757545132492501234464582222155935170435561762587197744407787436391102782415330558111823566820595609312886386497062247292086028763169646539624166969734407339740258722551695732377446513701244041938407843492632296730107461378043281660130089490664612938910356267097477212242002007176227114725415794435120774989813519887697576267242426666762979791454383703325084940105605848079387826237691218915352982979133911790342265464233761377890730606501837228700902687162743627618559724273901329392359387548355251432763269726927483678773212925235186496509957684194867289742906749000781730453372068982725777848975033363079546625442101164976187440268289323021687642336369527439858188622654198022722862365662626307352142247491331421202818905509738304896376867447941467452838865479015136005322709077940210378116828812299906159981455182950197046239032286590795071001439851602040931875168786916048766816877103807474751128450020982088851667188106626021312766693455555363648044589711803448747478318099019291362525774898156386588184719413428307762399533399762225656295922551603181943071388374293339229528842294071850659274535479513366440345271031232145583069224811883091957624414557759616207240323595148674461578870893743990727379636563327667578311134762508129140283633023104735240678275916576709069486501594545244097843267804437968435468249328247923333541979906061940217239535383459286885608592677379564094833205516230450784336805363244955641787420150116692159382423410321577928848377573571610324761955836365484676132127311873108752451069858988812237750502016975348117967462411247772417591928069181152820532587992477215644331908097738052044628097816008906748308216870327456075565732414306528045898918780831760350968456584095108890557259913046525254176039808132475027630699446671346923963533374752228473503485766013348704716498833929676952343700218549473278146362395110940063275464023456218155059105828058860099940861406600445987457476098274013564491659674838637814831216696354413588590855265323177492152799815261125823158321756361550103951452222516697815415393323765460035576679658154796294996675853636714171037001560598476285006053256192135260152168599731805940250548285571911117472716674834760171147200684139977053485947198297774424524741669495403079776469018216241220967417146216992175932346768132440665734326128171073918527757281419322307371321835677126691212257223905438545783129148056029859015607176594730927706850251683694703367459521614919462780426873747443523503709551605884870649177288077309411569243547681522602394127284386355309955611254928378959969186921495643960969382930877848648127270972489226056909388799208155670874883535557027486070977644111365109707923233538253200420270041321872487357659040815198323179107839122384190739151229327413899526353260962913304351160891009473832917416532924603494451766504253044897387124805484919013270829885449655269380310366594739464521926052102745952948189441895019473855255954806759535921705073523244003818756149501593696393079255505850671161501910672490048891438014469132233699951805033592536311351685621920464417858484168420069407311797301746601664131295869169650365250317424715600980473676963468793778980240555532538064762611983520578058813440395470320457587773805202592083341568233841667787213672779894995061619040677694763500807799734377805704779759724601424899629231808620049017683939046650676208496127480917078031878392484198267197942587123931717277980895363599770750037416920380748908879482994037680687348730544519171577423092005339608482662128303987140542727731352065389410782585232418245937636610330483239191674953582967904764238076703763274667167030828199871044786225452809685627863564440116970194345036652512520628182445394618146400616288063901392610580041132774308260140198779863664592804546610083400247315280717268124345551879647784548023318758789333685961224244565297534823918027873526311924624403407707837558563838270681431723154597687645556302513233326740544613334823640567426226979258989823058268215854364586143253978881563188856059241002536157815437932967546140642524174137642380325890137629544095242859456709383841462122114665684977157605110075627697667264948860313473763686402439589282303973938940636191443619284581705361079276196816626913469353190378786586757531566252147305857577959484201402971393790805194267908714446822804507731784876045397947205669723473737682638281499046723171992429843569529264398660133299141478137046182266579384776081051273195048812161517278593533204121536979422315813955764701802466860713195116250964183386768364844069111325378404936425571136682998335061204600824551569809832078577067070377620513130005146256918062739827026247054264872905833046098020116785192039655763760052796464632616133113360306617653614104319428108024208241352331563990757778209989279387951800541190758794705329305357770418441641028619342003556133024136521440705936328314234707698244559144928701165711617767661330457586437286305139460553429468417951566620761292409654504705175726991329537893671237633148880256772638002877968232531141998465595224204894612536895566785798110991152214873371886586151718127326907794398602447462199126179576918967223491667767229606385788850953577739470059703914753554124713767271544534881757519403454379259425012087360073776389083170747504705403091648635401171590776181055967972462689932134985632376528462149739794590461830037145105314097411058552794504788166080587859702739334230634848688999213143261965082155346668760660749046225858904487124704472031779042882700993808981077584644730160347282674665990995315020848470331388235114052204251127890574103223460882473105538746400600324068941806109273157045080397051785407551807030893664272555022376288173796111717549753464067306757703700294682382930907750904592220002370682305612472379160956478722152502801539504575689583862864913501044784721901497044668656137941501326608577321643332587204454551817792539193905065819420059881581857112096449721038470479476804347762453775533726654755510335508740897460628411383124356716460944520014437012988873880401312564707741169759985868647296535241781249106211367859171734667632359692436778514127940141862586265314532486331220246506294333980300925304193939855005245176654870395155539351941736450203350794791382369327179963527868528320505441965301500695763514646703440883637943175359037134058399784163471864634153385107900735877214973647151287824403260167983701448759108869351791629078475067319277279234209365279277546287403283327531605865540891650711889768507888375944878222479366731110202145851739256393760290413338881093595109897120445490023870045481235641588499549241353556776348546145145294773099778333854261231260365975173942744199540571321184610130332588027020440112493399072013632564760112119488160431028259248068456860436813925840691186447473380703891268887154866027354793579189409762170595165138522285972210727267810263519402781232404853168727449875757665072915933772331993726315537756159025634489836260433896682675514608663293375540024526391315930939694183306633335405593225074095422323704502376958335603060001018832233553843872903348055813981993915798460984853311595264271058516311843789849556584993887112294691130714045627083905039490141366457560642850904421517999593372132494160343618583052756266972712546639503417165543500982740103149401351294756440987915080016270589850462892237895953738409435866931847272451712883538885259135309517277007979907929505560647925631234428071341819850502867181354428697146601004630283987997164567639224072919147428364857263680864413036044723740213790876515270507630521543170313396706886077130067563882420172913654885240420353002938506793126333928076645778925712485381062316764299759050280817638806476483276541333303240722322241355068905691399576350239042450988848109988124247176601821693642058722825772810845502371028644921719155658788732684063670882508573704126592044397948805762000624219312164458157060605303967632171582521004521400519860344756874509453919437608200523667312021113186297812869623839343814881142126855677088364581632207800407441551873142736794997587680262105423336365960074190859464349776242413998312495237116155489378840225952771683859249258054792489489391865888693208856381809871005948789297103264920867688356205767155741579327249284475950108933812451525083441293199898968954002194425662188927640051823022216135457461111304828994021337754470299879630887740509644257581677966420559868580142466448041618116513251756835053746682223574574322919685716859285515723341157681973243395330078379944230711004372150163802849552223855433199307329255347694098986551693461560820473381357918538116472197849504527155998219929222488579130978585112000539929286429885755359800253563961158832134552292844564111879581633482483132023860075364399614550775956166847374753646501802834355263871555850791350698318021028458867470554367041893222429523554030936519138901542882240011520588397644748923002708021736610695320950307732060977806594401979417811010314574569515372198666336984958637136548256891160262779588630093625727685753743554047359352563476280552040499224438698442907492334267287127303360679921756941857702628304514888582520333078419821770823923217797232711671675645359043355992569302857756718110513720983597065175838477061322407930974973424718089884318010325318284184891298830177056249438483798016799051843277757586265677267184000270180330075011335268066067896703543318272398393713262006661870892283754477473574668120973099172247250581873158144968779454546876620476197138414983496209971178834103192249718890883990847361594541810487576899126338445899823059381537302567808335485332251871915880431651467846302690043767776237041476458731371830725102236978891666747740939739134453258294481829062995279840849929543218699870406803274236858493733945421633448857163667166098576108691018237494942426762900483440149587892620241146979858684974966545288872189880117428349473977461056024712666158767469919811439322244670600611288749077969485489946716979375138878262891456198074666352309000496323615374280930927095372940816910390518506043856229278214332566889798552804446894094142389437439974957842892239085985755705112593626851430068533824622690232640573554411132664354305759754461190783589227448995180319638207099256346204355094930297367901817179530529059275105552195520443600700507867347507148055683129807249370510608918635511969021145326130983473437795058297638866107524128279346257291183100062705176799535598913018671031367442119093515454912952560423747123774555707067422365947092712431974774893097827497654555851562630860017145527676389185872031107630729569778719073569522417636124516929677263697990198551327229104208534438644526181313932353749014921340460647829223090478121916116127671466689196774819407024787062399760613025271288846408860755900125974547566038507354438781076992696048277051265208737466328556092352439277374166935742275798882405881618193199521032995137146363189312911873537822239480791796732470794510226872153126357288411413223596690875074165114482629869366451658554605553523587557492109589958311026896425571008558276304382524021155692187443358989109107549317742321815119489640953681067932531485900776291996383541853913281159133214940405394384979437507034684380512783514210448741983378594223384674010681059353821937834712469265226262145102752757178239324332040014966411126177794634451901710513315452347638433358554309528510001747104281195708053876602511126606379443485337293175700120228290384592930133547449644070502497357044458468461078498952751191855596562519492972590057374810262052577905660694069776919461794600118664125274945345438185679459971431374845846404201276080756005770303298272862876201667484723968568816584825852885262404989290455199975844247512756554447281350338337130202680495765741455296301482600826697733635170611323446298289499793398138059111387407439507170033429314170747063296138418625568817421275097352752479096596743003769695624749731438645506598706123976268615776995587628166498526677457311534807802990603299867468047710714847012402759984204684709494511370350675959081669054193020605760754337547886351845834034110657248683529083567819773470852264768514646176063690998561972709351870257435818209899074430409365141280324212664158942422371366890428771144845610073484837263112563228480127528643889659668228842432954023226122902897394354188563909220744093360717158636193720594609947115531049019329341337861444393095390365972976211558589247271282779539289128639971971348823485351715311183088603834515735494546543905827476167029768324965316879558078900507366402517471349727125682011739878107725373962299480701795979582979783049727918004795155286836228433769946003833624108270527854199943061447097101199607235418628919916543512634501318179186017073629544112226901578465609150779847919123166616984610869146686222236951494746212882444191403748273217302043187403632636541635783533274367636137356406581330118889735597756529878626701519182118416694517803591945216641059551605476090586228304470504053700093902204098931622350580697797743279627687861478029964950512231376115985335897993951730720716614198637143264329576467402577258933334337872589288501717201283778632268614125774170660859510327782704847514560431817637484687559507246405622997866994943376471144252862731390705303169471616370417833880363109260382662884113860740197089070570799732083624879657455182905080598337374518650153002478407465188729648841692483466291042294557405131890416398043924376178019793598681003205619977554899941655316030338569908261567979246422642834157785315385808573785207589748755905700434176913646260766858720098636352263046392363657159402104323679958422801667050458243405249933247655211965577867963047694580709783931130244355771332410593051228690355984253875761067388262357284391280425960889085755706218092513111746703987494900785904371340264730009453975287054726079497933136067975882575890468646052332641247687398588488596481652455609387065255048747906510041140558051200240854503796847366549669190860188600736770861485276931651137771114909128081589546339708148354633997251560568852001761445431442564998644252029827529709193833763290337667902718196355786507785667715913352527219246895644166031281504888555918060347335120186469482958663196273103513627896069519623680830483094416701598381068088921774100524734771473386546033891580834098971031740933533820497518068997113509434718728362602362318139429645755626575616021927215485831394048836201566329980137342385979976134900627756025103938343811700293439291132521693646672410627559371020777603943586617556828998881112643776875435218705325595107959995748785302575022451737374295051911689108260394099409875251949107624786980925349561453386277956848325874313022116132235851032528437802585621627770054720767530499077755141424627677997180526841824216226764636167412806917563136756749944814396746563992884338207426808961099653871304872060120405897421664466206585019205145770497518220949115927211260611283218318847768197262734156345883535715324474063117699194319140717244310326272689888950836302110067944531079791208691821806324019900871575992737951885708635189146141580837127478646184212313467089614709444342616307457723504112160118846897269986892608008765502465158248177415405765288450474818296521423564378400781153118475118230843248555532126934378322233321313354055590500142439852541245294523698001423897143288220368497407884167718544539025657498519101606432009442343690327678838275226241216159723616300985746126049506643171314028953574994435863722813095817810015451187085934756370164972172366918567859411484355449038587225292258478929119810022413178947483096030395688538934559803914788668545693220017437190248956919992210707356177861984071473287427864769051680662905049340674899796918544223442915698699606190570428780537584668747644030958067554390826419647957932721533661990225526150706593229113774633016714123519230923955958720019795498721853442300820453315976097686774842409954731579902317949822409381395207747221131119361433935639788657479943758037856994876251070104024861052127157273923835816281835041509264332357886013343205509180192949826015906148135250687747715713818217522192999539603429409974112996965391292684477313294317494452601499058507281571871641112946024512526601796183346953735231349367336796978816864536489074598963531724797701502051667526497005368685226678047384410051398624661485703555513478577320942670605263339459126080289239525176305838943763130304178728657938532808056814684736093772093361280394185979442383117592669552085249438270376649605289511999302716050435311793399244471008384501487288076252241196988426569099467580750174860580448973292320651051507385292865042878917404474498095626928314580665650128858918994913205625070773640657974010064809551121356779195424237502158937102765614598483284141620849536538269043648975029642558903148496834998835651193090051432152582613860240527864802149533290115817935898902621593317752976177436358562344636192626587943161713263588191124351276767391943557860950615177433923822335350573161052414245283440960621857952632363024286666666020799800525468358029351052742929810517012833662192068830206039718079270743119857960738890831539053265470446639300853402689797169848798574322373998450062020840819139688516170708801167959601113190864829118716461383423082440563145725602186963328748994064965573496317102011982525139663256965763747315900256437476613251911301258626520014950133354368519321784818993298658938897307859499560646182712010715618364672380494244402984328930079047771197281131945205707632871732588554144129123037794648385378605400501550222216156348688858566571005743048638086069801438165908699651385645347554921507795374522303321846298431420972338663668498619134623178598546691911840231945238648815578986839505578209973403946812243067146337819765746963288937060783487906088568176295853759988873525436946000971397101270721046074947782681646816485542010342333942638152768493956149978497395979601491133979210857319697354741826216105333070625052106567023965896147377501935879000325149441300742948570209313713457045526387966817075807936657829549534886111058951151611553228906152731121471258180745229715234621722363445798180851660400327635160759591912552244340322562923449384096704994924145201595483492030167400885420943713031386097385686017098126297259955385539713253118505549642769915642841355743904474977478824146891444872690999876430230937791917663437983029035311891116190045440558708940976549190175514073987236029603057326560174699794194611225352299344245175339031437397857894242035371780916175253544898070006427758172693308857549313205702357481518231899451431103166074773051185807470924768176034780248112561978671747205778084469331233306056322055509310274330163149401133808942001859883997844969166834580971771954911076940219967033707347974429674303930882971531725462675114835101466332934375688164001140552124789696277083093992080618589675610361057935535432344635555226201740654136038459648072392203962789554214469410913040418639536571776555347695185116439821975166395329657842813214273805428810071059749300401274988536049308398584446581426959092825694010051352223731111623125627613290239679989357737528822119724378643568199671640068093182226539161872293525944369813371365997868478875803233163166069569709923630680869665403454098898287224714414692762094638958248825224053472216132186595442616985914868168975114137301822218153013056722305449769211654933441696083157578143461286914334412001026464424635793121946052203450060368887409191324514778457356821607075379885067124684919627865926565203863798367966402689541353048369371663062100101750415920970605788379598424665425286250813512016525917042269182680004841508202189112973998101006939629639207650752526400063599233299194676080080741462335219866843769502822238968947576161590076428109191104004233507179156475103557713402336371310263366867542192055191637238589091547588594624989711465440487099271125054763915014559061230196322595191760092023939001625806082150676959979298516759596177812665538391224874154548433115243081358630721421890441369917094889702419939354204271211038823785961836438152368409961511421625110559764932010083205701958162799816739837778935648233756602828612458462988972127707221730933942344295873890249543484732634933597395540331577664644583562827868424082488494043349569011420786196459130055892748804336237864116355259538165709525218167705373601102953877963614125324913777365281873275152548336063150360811431330291503837374624615951061371773403212084425547272990578038993888512700529473650427065840794126808066026766509283910073942706029275812886522321892450817565900119941338294508009578151035186539849313969686889689012333836927514513216086060085488655102716909497994869007038759697725992891610191336547745463754810889626877325266371555851174291324918344489376473308327586907248885237269765312614515964847530182796377912756855164255200544263555843670185069190430482859349912813307364941419115648207444192614911229625383247588647794549737630274627493163627605607793852772906876849832522450727009183789493129889498908364074261482636245939179952254245252591377972153444698799525191628845336814615228017287417819136229754955304811127984280939355854539771247410941282894085375006318288708124184083192649909791628443167465579406684778433715244829550552527867972937285797994539272163851688867206020669286476967803661227703255428958472741379599831318346103884694409816663608136669390930607792092880691424021046476472595229158609855618385884748158846532423298979647260145735550990565011649878705630973002557776221709753878232699550589456445015563098903427486807855317603443043227057036385779772562459736677872875630600475103404220196005597714322176059873882287412223958040142950815718420408892195405606804588257165709091307158349166459426613494345299273828934552994226186175830720598612673373773210447085235323577796242966336251791513142391162666662012193189478698768179398482046682313770944829294473255709727175707258665021017973911905465404667303833061122656256058613569501986991658551652318202975208879767096174172916733373691440751219014068372322417886917775054574834656396239209335333342436449542219789693615707380501582236978580530969852507921675489632922692078793401367488853864387084422839485455385872163369318938871435525216391174645976016346696764780637583088600210186164143995591711718865855755451039047636830435527948712570076451691564350188002336810613248413312503842304641701974758408087514652822814214937018763816547714183182232898327290216166509371804380289068388265680426666811266182045935682442649888549717345548693836939142452388522683647746971114151182496689545755081655278352637247963067795153294430996796149021365249716752472642151546278472886978388957033460015494026548699278639108235629277366205932381597080929800252568859853901450189849269884492472031989258691678801756450537050979234104055085997378167281420141025489146672080822623106984732647210166775849581183927630009899626872345972428089521411891443829289298671956200183837713626859817928755379624036565453462231013628817207689373503532165284746956133070342820832184787519090859951421619172711866382230174935511214608219045194823247079433443141861073237551984408623657733755006476558117749927007011481248018709372854682905903218292707526107356669780207785278301998728015103805707189950708440786395242228298437655219554055667895539777568778083224669748510717098898834108572538853873722152555047553451958107598184081071746087915450989023488750162076619070734254200503963080380282449468830983088551289313239789206611930748555112762360021106311783477252638662813851554742497331231341304715062289296695836824837865345275453143569220605761680455849827926043783616723886286110028034650280459179484891708909813444585255367204975333801945613388316673728084187774986510157870105794707830382202591562470714159256174548928487509883796591279403772977819111890989377901143100546492141671807264944419963592975096449289015699585329426576963016207988337205706436383722203908098307949005848567887814754077352914537462748790721136567247009867719682943218083382695239524139511909078653773459960381467055751632891550061807717294674419005279554182695585027955662188012580974656983619479267404382200608930280227782074039720071517862278474623990320455203306386575058469024851969460969351917136157628761290188839890405411891803277334445822916117937943133253501760042462384158466071592201605168465435471341659699990427831108802141830929086062164200872556199847939638748573371745141406430132157422678563203811367842384956256693537578960898272831699847620895026764617438285704587856225262569942117121226279914109875441601098414979038501294909064962788195071020485000487733189845317605586582119196499733103414367033635975424419725386035530318376797223747885353770579403893282686333012036864909106477858776252897122183274947183722212419762553356498547633122372390124385100984459830925727983391972727568571935462117625294852930615545778784106834580880672500152579976058557624300845568585648041757244388748000162481294994154829732457465066315175129168113840381008519087810855955959412313811337471060962172757090782077407116199513913425719703764897086167499394712269300616348952995090604721385748823824621512458418151388329161425051490487297971999039316968824370871285408671369359517104490804525265853689648419067761191501781032730312536615213971814191655503163489316427198375333492054726277920993920527092237405010565783031587458177242031884546603450572515821263591514818517812130877499127301054904719624114290212028067763087417981992775134953468742029601773638738352231964771885694138756754354861158779016218194520617938334065828685818391915670937309111292377114903624480836664332543201459116315333869697391720252995609659217092473245225269602557616975657337598213188980375836067103087270773367887376278420851763643980315380715704922135170199900144468864605762664144134127952291972965939501824517580094673809993335782118944802663601190133939057703898318355272425394677212780517337420901788077474347770596304844279970973316418383725253377383986083828912195234726368833494399879913465249858616461450083525067660459445789434866490661386285339935572737013750731510677426193644668004593058925142741527622108295311407664192225015980579921585795110886900049381815494259563344300450380316238428750554770384192034747489751408999333514916970972697176971616403215086354623245501552800793999828499928047323928344118573561545699582925161041039864251820272887262547205850646905789374298684720203585232669163478940602605485785254099817704437347680451438262759219307980772117507296567980930704040330262583836740776295761988599544816527902600912077498320543570353480975002353291647166369765506647325385216776247013108311782383070388636099470828764199850928043926521228863978887134561541573867673087095325219802514947107714704837283807935059811759121180123766483431136232908239925935553771802738186046170864628748706104367688002912370566814556547259691458682480121577215411287121251609033470999295280301890172553782522271542499931050036969667771691966452576656660681251581089172604353907103958017593921847156512049097220881168740489432358475097487716620191370778187017666617176501042907187127782008657413485521667601553920266878432596063414884336725918757815902193643260579126795450591713576447995444245769150186945281963514445952078147792601125040094458486421591593795910269895561195966031969649003560677064971781681010997755487108312773158258794878405805291317031767552958211203361320370121094429710249939853597534353376869664424614327210849234345548896213161052302825688546397971595250600105027140846664023861208116204949588943023020341099274283167024797963047245693448275820438118877448264301019487157738728525618030614428079314243520106415884278202122664536248585053240393004955136554247777312686958294892075882181351198674478362147691068543872851763905466724653829204395588750264477980894566532200765805719702992418571663587643972333191882268928522039529476712823505641861782837285268840979045032773152676426248808499422246905550056216015495241510393962222899487310964480766707860586567953142115102676206470330371846337331400621061374267913196334147511478755694993380842053882658313128801259569808694668590494233056867025471445280678959013303488297065794880416537160315021905804369362909502222931385444462091994388229351732966447971088563843926017629837253343092631276616626598829501379140892749649284145894410621610439668903539310195075922499782823562694776039777466853335948426515636630897395718864031585042455677372413699061432973802936346254521130952339739517572579491406867834631690156242280712356647773732740462293150655177465031130571780484976936284727217173529398383179997804929499472394736904248922360747625863222274210184248103684771982961251995559104370079239700664594779273408070101647705116801848285123200905205536408786916605162993667073854560159444759876412882615166114411573886810456471237989958552490421505304286672807206924104818516040945016226035078946336179372127001206824429263389270026120394535665761755134183481288513395336610835153252731972798629731031207586254938093712940265186686343398337244554422450358076112884149763040665239382119444541074398240960836946698927061150375781131852120801104156586559380550268677577722812013818854404384604972446456407016339587866402629677728332735440608230677320662183235109564877429579074327508067786198646763969494516369097565828386983810355357935059499994952231952075420769345179159929775438629292368380190473453982847460012274099948905312324399621235487150451864411523694033794868494176752025267900824076209063938159585729591796681947938399812702409108923940497767371577953904572931158835387797130628729116461604962571962158273473286068961168540575641648385591717289462030680967465275217260530262180230439108614099243949952616473003112474758099046504665947111308032360711725256119457765713297102437249265176818409621508942634155904303874776352978162926284552864542899873017493836294698490712935131106244435146754175147192936805908811310349378834667504267237337948610145616318610321804374081588189842852540686739593827160093547018734008167131940087303683984762672796034513403796065289322253339489532787362328857521227311847294296894252620581877097093943637234020597431164090895874998995999291200946800840456777013898878536658822534264869207436187722491017205959650738843404728804910174953020010262031696183415322769266980696157395125546288043439749641506284361083541569354720851721084367477306291194602203652441432705441732075538666844128631962842829871273629701679448771341304076602930434050313766671015447430571114984883179133975371647887195824249130380444348763862426932224157873198774958818952976562687842572823052071469903109360375301503656052759379214906597220056283275800037362347265877896469709561312959467988296223062531087683525959955411200354320841638698658937210114309451063305237234777991758300336873187838635910108023813181273352020745072780715614073983380324010721217481924712490830089336720740272625597410173080916200161373410065875002443209897603203872293337402333615507409895453903055600876390731075982005480114137338380577525990691882840422988071915125248465265501388593123250686634273333399513880950028240899058450067076464464278374443472570898250864932468052300016997621884140637153446115753327563512688603102373433613426807054781026481123655237557593520339360137061964329974616743334527515498104610920971116344893791932706669714017001708698737437319824792425772735787754776934262962229467371203905104851595523325677703366102733506648767000745109851388801975909357812338203347153316227314706974049969097814444486362587752342179315754703615964130002197286980287602098822273747215432031795700636152252750210360609287758995530441595685202687312636592525942470942395900164748622657198984452352154180702315133942552612430077690807300530851304887844163636488357296007557225325334048804363104942110075535039525963665403343937176140538645161564499070627001949893219667594679480231727226437744374566903756160094736544734012541781120837324445307406628427409158322412739034758440924441091396022626914069640000867268324173185002142113005711959397598740922855572860973592661579624012541947978846998476451500925422808108384461817684470808527388434639235673834886014236623283253878899605033421726143970995910038501518671587319882771044461090329037817095904781612131032194580679044418578154504642357950201767531528857306995315653899589033263727030501095339840578703387992094310770198918911657759479791488299661836246005071445453917916344826437547207884336084047882922605133142244790693611785191057378051957753731839663286212382399323870636474275243785569071317509965986503115406838358097347799482274727248691179258339653279864282432016299515390716077218828633796334695881318112073688046984292730971803823622563114545527324954318504268710832720089550292009543626849043351692603672253394423474762891398977979606623707738974610055141226927193968071494000091351815008748732255562023252753506953336871766188265919106478725405598265692002410876034911061243463873392039799142298303076919353537299891389257642267951772302444819210690862392386854399497215446908929056690672777525940719091686399154790981610675363296646291719642816917475367992802997636753268411753381102860141738706976379201583430494479771343309153076444969870882832144530553237508916311563944791257255757212995153172350929888699970645502513243657257097766160672094662617024641041991772328018268041129415730223188990653331383410877545091507077569386923639261240855554235781785705065221524496488710448885453683723390448322851268358243944276540910740424502078188001372089608936324137627003257327073255478177325222082741976718240685385408280187950483923886462668351436244242883102766787903452363005700073015126903686797500779734239566016727048324285662925987335129557841318218184987300042758405805314935163561032727889595757686784174298592323165071106857250148234998994479290734210702159970578849386409965390062161496020141914257418735788864291726121952091325240013928810033672165106611896536881943952557829219504045409466564735453261721755154255549185155292622749067016904523415980247967749397329421813122363834926497336245934003838575457739354703379431769417441057379782115601864558049463824813672683069146148053951859311856813084352808406200575469783418213623746350601368706128348652541598350434864741331461742649640897821070406196502089445693619892368843935898194234856958585575265354900868909332508323000298811596134805512315400295189154602046920130233225427490381274829684699809426671455316356236241536718519653518257152978077689339746226375203434712307409933335406230280396504917258333990273166369490012129417350759859775153798731522773726777363195793649505450197590738061673846858207256732192056565642811594340260675873114325689619714371931116959535442093047886009421702607473276998177792775968000484255128298327235051852411389540546029504280333784785775894545455770935311569766819824235850754991917840567178630882133813084181260463192715816888130909524147532565363501905135437289352256392864141377457211638298791669546082730258679604688124857223577637434124000306143120403012439713419884264407198808858324594427150305591963508963514417173776361797944946840486869686118584400164699097136653855745572654071341306635463343233752305887732011526385781183058733966578369112023029137493210764267424892582402859616766794395663443381623246633273859512213320628031085512382422663699993082318376515445893240091852723291439283956626035992702148146449376094537690252848285693900990569530839904117828871376100250458767598202849307032726899643045419610884053517609810214439358363176695159882221100253629800078842386815754704209347837923504749926355016140064693540986215470447542046515682053400247280987808037087059652109842772189570471220033295724523113746085801965128858647018634728411557553305355966673999953301797082528280307715844246577499380520528925107757767991532930120962688266320824364078380155317975198172918547282212391244866953701982656234627313541866904069214003208233249847919376402074179071341900497236612969700909826544746838354628972653357753160289951555266410264815506738104673339881593922075076245419765687500277926320593425895812096183830530092150264663060481771177151173625038199435955572439520734759216393880882637345053893321811690720210233321509210628443563092901143015263320236786542930016321606573825977838433632410546844641168636181950038076554008552282757993445359647176729957332678355519124057934515600305811081716268224175948070227450676429071197740992223441319394560635974314693472019853597441213238228028197349786776346210073699407116600095038245765063549428673377580996028630610555103803913352620342419125259956495624217476636587057826619082777908523206095986786047524933777154512469969639964972301243187491297615632122822469284221086282977754214408865412793577063475732022923671843721594561509523251311099022081162628506550354636552568326981797882542336590465251236691020282426694261300348799372298226470211915799697208054611680508165797200540210183564599417328637595598225627372751360433948546649227152203049836252763764280045823152589847998577995466219792368661860478657309128174491472919659319746974543983054004061810363389974602755437626386553339790472331267697646956490608662562346482670903135036214577880291213858210954184315326155287639821839427677317394990365139095665757801018234500901706143245577075956477202160096934328094035760891272724871980918037630189568245582637093347884093364563279188837306651629550749440962200083001379558054120587613753491200518139197426881882729267400976192696712509575119180165672251997189586352756074571459354332907544840162066330396460554002986309543254617968903816286319054386365444375263408642412539182633216255324744875687458093480276374116901168428717366797660680320650749801360245292322584736602635919848768404952077058215524063886374586657624699131342242330259380509081818625260594590434174156757601860997617369241227389436347808688547291866949303855151987373069877918670953917673831769718632872631666666186114067749971864449558174469906778449197620050813638218840761866515675399295498197107382539469239814176019252178242646755449454631978051623732176175893027503100130385692543793345366335658721566871375289255162183193174919645484869752439488592807103738919472433798695082298740046871618221545711503855479149085887308595194254768670576300691763161576691998354704009186093833585905289166789667760763774552099974035915130907438313864709092847586914103075611453440326167772207666267515442673944581751752780277509653690971296018478107481051264631982094292213812238002759240721176955588565886430022566703493769216909535212452434795906867145049322983222616302135686738325065155635644329742083607071231282499468163048288157301499357271374759344867327285808377288852138986468972880424346262741417236435641278157456534530054938141075449977873331625072301940957800050567102715975805609910455313253650760204112694328263790809625334652532367312059986429562767308240621856325242895426328948895893074172433644569067720230305828309368293336569968530785495605252276370731841806186454814377578927115246972487678495341598414489887898084667759288174166476603945493606454405399701146715858299031890100838245853999855969244081340702110127975409521385421033780283159599599368424004833456617482192971986053787209221819821090357660181470296061464259204667525824468921411813317423835833204099562575280597631344020011108308988031391839258572498989065604872806454681351478204316655681149214213156651313634242605756591814811917064454949583309866815144081350560761080616361892277532110098465946120160144618979954757198772478981284494075744264786783486612447972991883010179567988601776075638058521577628245322440862808986217086866777574864365010217530156577564925541080374856466829687560078359845738824223780412196663771477146670963445184003383632383566546023889208099901912899477066022927291733992877773476275200699372842847275597466137363245923612246736056972136038061761741458940372555244129886468190801449349803438981283813901086222170491591506263564415812716744028978600578796066185254296121475515321783622534442391235108725603469406268968026817490534436162779969568371870172432604650900247446342529716545627918618062745300505690492610165713745301895277472875535053259850443166273094803787734913797450123362306766234324961825986151759890231615664515548758705377346347089783086553706168424952751163063628202833012174612701584040262879236539233711862213422122304109120683147853764358702590365776620350545790478294938651593834484498497194956188593991637738195999853712697646982177349524616421194010008426575919083232947586781191141995873619801654685508587928551957971152421595764733227720839825284032264438954848023792895083464296806329827707507582931790100199463214863930840688739940361502387486068971784682991916487168562241651813163722248054902054364801646157650032989952330346127563901866253065554045315093046131340795961947444256513284262617002436403576336644110333191541043744985915275938797647233298828212703703998456633367380972361335839437567908677604646147365963201979185184285080489875143952553316365992887862175658294698740458362654092932543653803854601777952243616712680092123607039143057879279769835622776260804911297545762890422864905648809740677704749627807283172752235069674357136856386507660998973504314692763837438476872393963403101922181648787296969409696089150642662025245976373527140172616066182067438378322195882697872912600798925093390463340835132449467625824000428398121773811852340916198347517750976904856179454449254605852190247774552039052004061999186487528766735041609496367023252234897875506869638578761968153198279996815048891579817889666193742985189788883553016722088935865275433987556840046802781279126543057659199421954380309642556195042001400953082701452134807947932323697513158609271985001608436015172694756698832387606697521109233422436091482677435421968450989237591148689069496996910948225599732669434870906332744589373181664023233569907678145815007778931645189775900395225128997569775765207144931306774836434468566000499329933918303477218092775116776834633547161347902277936326390977548180064726656577835547456722241072628874820605370875961988241253274482785645319256359920908237599709789110163791768457239292831308978639820607271293252350124755311705092397007512192056911180788516499134447786495560831330029381385486245645124019527535420803947695155573252412585672137705935891960192811604087150088369933829541429710545439678667172677715270388689181035944801002876295551237607245812650321316895810336624194093788944321894334219474126079124039666843748226297116077318119442097723297796139901025568538428266503135063790605447966199117598685634004863583923452002689001916806437498004568996789752828779860173533529306009514678215974257451492349496210090693624744589921383402062079268308941687684458675556631605559610898597095177173632603194467286395974548262236920771701253795748865570021737036953072844564102734112952240717972667094474935527286099667723915005951854792891680937226102984783384897415405984277519726158226322041400797339654880408084139192269388036018576477189513659377222987105056274273322929178137824003530536290220663830599896791861496556382107063177960582408038624233296738606318391728594140230611302075341144050391241235118707360597155554374858167039347837708729410031530588835790362730748196949382199949387462144344966940484129435608498123801561965518664248627535260548868692037633974149618163323462975472010032929198658197151642902296329532586621428873990021893681226448142557856655763124561482376866197181208008955634463866085826891768009687420987580249817314163740243123686460345840815016531868483918556856477270676742207107144614580006629099881009958999656144237505690359968720346957049465660076911981887201763089108241889797035712800650740097389503992785717133860270324912813922268570503932758999520272603600953099020913098628364400152942713812737726679427068596276125232768898315103181423325242669197247546373817037693671373114738618466593500830161991100266762164048616383469672455595186530257191466226939500331668456211243875752920999838329405986155835788879875089347300270132952729945678866182957041795061301664475624534244406707357731117702854692347049620948159879756354619538265936463012840462691274665283631278988945038612141407805287992141432976117087935461647043383086488556229748886059095864528232481302773455723857611073257585527504698914945912226134305946315813939023229986997830878551848315829464260933078636322456396597433847019180184215769387828545680908341085041127233263819145857146256215112060901345118834322975478758923220965682191107812727680262590806417603765128332186390018977503799986223620521442448726018862170428610255510190604749120275237977456029761669965674633554180760114321883595470364974763250902383594452675257549460069416907224218128573234159888656684935055629100207633860195130018739729688238070127029772301252851816011298270417004413135895539403844423222933567088017515864185194593641695394327129590292652144824712282666389445370076695318970799861057115506487626927503324380020628849706216681876933951657496117996784256122687672481755501211919112578226600454357109692551168099490751465301290628042459757157356085729643243302624917741575730290463001559307539746024336938160481027533937777792336053958919480185884502805812514562078339881251868797710922106230141635003464881702314000394751860495101135163055569982161164461410816014541982467852759438220788912128760740802482751178771654323701719943017179222984076388202490190760572271177841752573171163362433919197134725196249898507911420659724264278258007898429376904380049444629902258406044902111549207389370279577239663858992379262984445362291506654670632343559164294869231801525885751760358500659939929222753471994657970468024975498931531325305432246072762155824263099851319585794148022069061402649012908049364699978568370995464892766881362680417257636473242033391395199266805098509843943051597456234267314990477398625185117025047119981253910842541645297630697470628079473882710824080556073624416796248961233436868181848563532659497018674024493704240275043171644636712578460155706065763238374304850708817144431110412364666110852417981343404635679624918651590545904281382334560459365379573734933077178391730831315837978222623092315846660007740733617743911175732740002780474649603026590206047960371934284710614787473932421381103981219338026408733992594933080570687872789073992535824434839688710256308249270387492169737496898928545048810323432503032362889739801020675633519369852098230347414300886625147873794765376703751790605302294758546470673739851558767581398131909597922525178456543119684572201422875146137852650755857185112627069310700124497524425279344433396780507714332065857967111925291916146577766413619030189264180247378448640241368197919325566018466712749272423329742322529331295423964752314688085967296081487304785828034807631893261642185884141987015488969310784505324731832191870670021529691309917884964732151430908897161393205869557814967951481008157006991458624844575211682184229495713609094071721419123049557467256500287560792791298564361570829481929342558818114504380524742565688499530875437783193499600117472818905236826007444448758720492169188631452634337645208311874138218296144855786055889916704055361273867052434609680137873636755047367587702104696237417137586724758083362521003990958762213266117133155700432080994189074032082524812692573998899482373264283470589104281094587744883246635233316214697268916717774767067342644565318770380584573971862767356936751673326455022564837562184796620038400410851173848407276591778840515945969737153293743029084773961732181700903349195903692534439598580485966032123550165409315792744431759923920246794897835690937730813961599096109740164301796987413578681689326728495490157611329235257957174708250233516879085645844362876146077058902428484636728991970127454201894448919120025106509752464246769411198903872186812829968941415969755989340615839325120009934534069008938816022126174317230129869429055347710221634421795873259162109918584053567761779379467035565667962922320253847375388262299577021002163704665528425784665878445929533227414987819738898481902813271268049726816979808574765832661093405265503510692660172993094859400069973594735006218299855093448255072367154399866091114370261242297502642039467719360194722972439123624369132891260146262096120261332067315907363105850531616776904123012034234422751714707594731312284856513758775846739864479256377783661396527338423584264463915256194734585159813932860116482588734537688145400511771760681540873157543145082120962117230869109164428707560957252199727365902157996996912145862489662295565543246280881912118265345349691941192853121865522873056574028106991953044127061857381463541636984365483816455721021152928222514453654537865086615613291618389976074925698705550057289659949465544747529840223495703331043541772332020064075285799779010661431530184606735984938982500929725314690993697026423910341312219543923501519813843114383802392319864848222431587735854800050213746910345422956716674658565239509646621295763070556201310022013942041833377752388541565723221298976667062420425667051659713291310902027725605646896317176164541994123583292818609589512645756356177101315603385671493222340778703380550405697471665145357459387338887514596746141752692849920215070491966085156295043854008193073484921771434574512287091062414323485932468750792926049837571638321486311465337892102000832096642098954047169660427008347957868780672766432722560167428434508628151832047510078106364729059503741319840030897682423856000044222187050665084549102266771772369365666739507198221811382834475438472880215888199246689584468035590661393361000347072081758946977572648548249347961813172737662063236684850598475521371252276388109524001838718199957134861125947681526268446793176891851815708080944098254075360153711463548896280875938214693704100531533405859078496120880258481167813908333030361375879961875233516947636271312290018872993413977426717688158460070039033357596747481041219196150519883596098026591908112108970947523054060011048730558909982338916109227996500482643036393137853872452941506723593527724255155656497779040392536126662551095111466259898701754527706553966944618999568181979574865231265601382134925212695896270398518274515215210607377225768939989177937481245823466546228392675571564499727478067319953147903168838096783671522670809002746650123637329771874218508749956408960957953928257463349793178023024712166262408852147828707150092862055875759677422353708204776613977148186694103164030612766608926622773762988974746745758386733953664997744907493317443484705873001104716781287862847430572643067464410389765567988202312257297205532117000245957560623544294078906783516737361412011140970915883103647857772220981076862931056083779072270303370700425616098557233094627320799287480918924528820759255516686518134351155729369521950469270174866879719780671112157834279408219205849280167199676982122557085390556644815099855710214461694542287959098756332561497837683391794374364819493693010977424113207176745957687576057536187605191483112079559716640384412415425435630541900589206962308840556140576318490953731127021450316339507758459564919489559834233877104530435821737075841108764755856064426196697001738751406178458045340278294033927643006318300136792752456044179155942168147854708573115854629749658876599900469939085580244276976924142591987363419326126297402024997536137835803919809262103389455721645252321341759847368850011834677653278822950297915104298048276042299121478200213720048795946866677909325386707331388519450695726608173096488769613856369854092412503329608706568236984192930445120184554929445992107964741551124165620706047105444769860940677876710592666382653449498215554202567463455840728268964745841182315903215226462569612890412734259013130914627020945029749830603020541465774690680914676314780056802077862568095554588583659340554398083116609095699431597205917145549331334289887226116819093452809023255526701632135371707211493040301485325233348556073702605014824746780481107016613002562911486711573640890829677472210886027266662294391835967789668143344205071545328611740634923269115021149515868514729922015940209252922496232542853223599719438591748563078269169146107950516843753108697831421102487813627053809306226122566883320891142685996858103774528717313519749043493152635635784996909483604594209831878077132659964469731049236387301187580874740658332640442744987205185205917310428377732500351795226447521595744692210297197869593476026903381873236100254514137051875280668100379052240864751887784239807908653858690966406338720829543329280482342826726943752066738284192915514342367687697823506212383787297149934740897487302063254932660887701564129771945600988757168455560846238110199935881541624840872460396744854662388043586567247856079417372717262031758830357085120156269432271064585636451880498244267571664916086566228032348231000743819669758992416701864069391366848772598410008105731405204494921886869129860988562219032040556588962968503393006788429512724888588143147467181312583046662757057464524611420707680856332937542556877642294592361392781571884037621794575516957214136945681040614018794365333881655428557033609405074073090634520589482886726223305086149061841932790776598068764335227827323278043640933598988935376724453186374705673022509667887950345076569536321376977008322984160506765368895568218018870759256227056302386948430545879257329791034422156723439005685509754037387793246769889627764909728808150397392554306913260140802338215144851371894986655798196288764039723335918338642623825882686163083512649756266901635340380806004406118779864040556451131187302350334397651014646584233870393326607218818192300231779576495675130566455712060220412912832552069586019284677596449099159400078414025919189504935955312878001232082415065770534356577139202382441581959799936294100790937044583143203046035046280729064606386673098768650648001613176401414071103661087182841979627053058086448749110355101568287978892149719418968458549692841653292804025534845781597234341310330935767592129153619218957202498540748790013493587592774623615305334770915492521928185483889262925856334253978812840938577482400167436298299234047379929736558104360985648231348575452808393790172213156507036218242756873030885401311033045998019034193729756741120343577344902160315812315422964532530118134157888710234698776845188445014019187184319436658156039198686771971575907875149747601735470578319084947325130560903341496431907869667339586762575080827542780849866891886712296494595009763306473656758789242614208615275669959682376237097661220135346241330557882311791828792004414982054241019878908491089630925790252564068784210736590844881698623013355949031670735316184076737283060737397906451259279055911045020478668961140493723679228303738480589605474324359567983178602222181820783623089423411225097664062822774515427291378801460050085646109793149219780419409398028724536993008152222734053144302521281933398155673548589869090381622635165161836694176185126307747415435398379384334717756588354443219463607624433544127266308233153006625779840884723605558528053461778661699468918336471033487566625864723769127256454157123659614472710760743855352581670884675932792384992869209898489803751657461492085884478016328678153152386313208892266706512490356976366844824215402898350159208495607289235698625244758219197353388761132484197786546222833366868142424551389756050815289628411694633671693517189980101082297086108164835049903813304836825740649960662900983381649626842554261100041746658314284433984721940081417834520640405964158089895335141481619310501552126325129426911986960650047588144950298496590810559325112817622263586804047151308062517084539939087126473404176062469983023978185932333954264409698135213434002733907588773177947162684793417057897493457669401068480978392090263543666881997995573505410427612279286653775283034726198954322031036773917156882382255316852061687850282374144179622334320203022396498226985251457291812178519732896863144184825845784173153546683319299969541604185067824089109045283840079266660378666580568972070056575914569528171127899700153003812723284720880603680698920717372755305511356231151228332728387528907437727524655053721145514253456173686460491904375361393445122909469056911658381212808191827444836144973477096278379722375884500547241202860403378214343136414850605102654857189558078964420070735787351248732672372518561164667284648758268362914990562603000836782618757071585529607567263096818539863519526324665711526715873776006147125137931724530897805915346970453865714402865692926777049497584612859057286099437537253634529198408502044075857153417883067701056322608320131636805619164759522435648413198736487319647017469927328808301630413894693950432584440756730514399186715026944060374787108488984890053943789667468283880227536477905735343924176584655607034588406704475855346425075628109608621500216288808840372421794778196735369504397084919169448480031152235807947184740293881850156550467932335059764318834944982630677704751856609953293338967347521038301849619101504457087508234153788996337750552111015359061458321575687510795428453989984996253211189382880367201432560275241609150036812418535915900498333203471998538536827706758081234188643489362205766540352797249886846856665517387399951279488916445152784878143248527153195164593563972526784433506585937395721222569704903481027356145146180362555164850264921168098282993663454418137127652687510106461303919377259883708674570057817089927179394517551213177053647572954767418574752094017040066213468964255922603818957030185382098051426597637822780425326484481570226596453394547861900296434664889033061324536028562023055085677406308448149032482577796201947774202796911802323065263338726166418968470112115212570796483556729218611291406688971034827154410533641848054019831545499090216033938221116690854250957907333355362475260264483805892547052825720061406371334845148117864864813528100823917189450535542855450379699977533324020651232312009814241485255587357192460457978341702381329235777891469185641487247997384411412742908354324354574590228715974926826158480469331406896032583594699663682039586911069066588492663076355503650861856171698725903429080406834969860913586325814933700882577395672264519644945729333056227101843835589287887697604824699197805858929319027930091619386161768823660046963172832694097575857279178881232346757998809422100002081817291861147962835779093768789320987787227143707852178034889107436178105830031085566995612945546436278784860464013920254913363351563694737455879375448656083249987062572537978401595396839038802014051310979999629250128505489457058034528190775301940867350343441476172025984211966683249942564632619205970772317629393857687437380645694142382238986072699594462221071029652907579009320540187161465725777899138429415084736278852284224982074796930195872321960015657235361282169524383152467672443874335384982554754935115790885373197401005539956763061538351060139901404728988512698841691846061855243332412523578417759006648306831858502463699354953889535386975780950218987295065605374724209706013116050750952814335901720125131747476895729033653006556403929197269824545850477907913392981559896490984040003071067605305185717843378706340345261467138813683284198321751678994319713937080112953680648411694858118259273880728037027078919953137992438875181724693355956822324787763620943264775487188316419329265552063163790556837701169288766044001488378289909317469425140279618192310515321390364733426811699681354466929104505738428103575262782576149067250457234986947558022576678208528013374635033575359652539344933463719426893239964669643186025775579704388876189454645510757647654732585205894650560491788089870057746297630739747415303108725123441210053189215141248108152463024919041795994785593812151310306784948778503585448066231839410252596202533148640910519594565870320288584375050555398455863943660336938104699624857192706317010721430092773195067361197524841919952926593904803785828664733032726374883259675539286794275713224440149360135494217042181036044351565203166303104392000810648357579678392637663032862921326980588466244155746497261292013477953915590470144726875953766044365031936370072046144308861029272141688226379348198958831517158698015499014246193106946875950907272548531623236177589040306273847242889466371242574635237914107631110084675329878587036549330310886489750631446040702608410995441128939117131816529107639056897507580463378260723168664040446717817594483961006017616173570812143149878965495919799816148612778684824528141245071961918156463025676005842331636699194459116892007440984984766554287640663051112542899513783254857616632050242388590588054392575966242669823013206600812689921346707114750794008803861359474627541832852476865240438646514804394116720431843406627329091067263855779863301201825757027265103491112640892846496141793362422267411757216829102732729916298863721863516248276346718093294913627941256774441068850748098392933830500567410557506928977403070924574349702516563643827201901198829848423483899061214128569048258593832317041534474169487480977829146264641843638207820144382251436844949924352658704892651963124814925288631103020198513767904573147368949072445128509946753348620678920315646339879657707194028487669091274829897813796401271369633024933782715388434453992566150956867876150678714382987116743058871416424296749477263684153411000387951777804267608812433600303465463404143405052754631800450420289983247104957350086366891495704701923234788739280743319714591722128097911697396141686421838091457621800655587917551702922251028104520642311691692774217416869462896618453939391585319632623907330138546095559280608914429220858588554766700098796230814079473903084881419678782771583097889751418753777309615562299888904388988632891263461705144721740471275779228371375507206180770167948845633119344010651832276129057171288680392846887152452401427721935346493381258483702124459046125459169833145332687424064031667662626300870198436715368107941833787834160320987553459696441158951977063249341594662657384588881313527580374488376663387252398905055151495240617682339695808548128211996694831234280645772455483258488703664089191474018690038595399293700342016029841667104104511365053551727307118768736658597781004003332938521642751438466661844053767740229322654716593955369998987312213978902858525285658152051935411700054222678739238139400686800859728073151448550724823440959236269072632105332492953015046926663732345785157578991652650913529435255305050315253194489003878479989090702981861792706606987557375669920640838293617458124764452456851627965726144727515943861846155077774138575601545096149552389411131154879908709673214082163216807057789124911690561239426024639603926498811303167586225235446144030754482456312347359321776553713008790744558237423192031473151639814276422920400777795038450087753155444924413305505472452809064707659588446239123718714558105448429448901924676794974144523258223022599892490817175545137068084729403342461826961898137637751156418747048268262442858210387729118596628969605970730405621761641053243159250797050917181477810332670814293725901875884827942249536227863407756059092661864465019930864443894500009258599838318572049212742797358500701695624395884548585884222363702092186175762235577269612460091037079927116031002077663992233397121539386989747522264068735951735785187494599687534466172334071042334815505532386235394832678129840781852038536659453443736879745132538910449931078207531126389630944417485624836749139631934404954848401756975732788513125660979353371645892959119702196789852154120476115084291758269705133522540310101131818645414855014103671234517819034690794905710779136537198826792670104653442071664183025201718637484586856639157283426592351359158674532294587389189271695321034438128232169026824717698868388736190374073960871924513467887487316076857467168989074825193653191703448902917285052713815464072867317762799817956607342245982425838564130787357132392515700780014401897293723076163378305070152549378072319415838946190439440445884114303963645972098703076029515771231290116195878721365274356728313934024518743171758856542653857955721572521508436138970057284434876244056417175753170164579072923797823159579927576017674114507743081744571645106799067292271345171884552627049967891590938955083098581121082404226727403816972474772882283486116890444238771786264341072256727733800274790221295839001275929234467089991689458784839443644902724834674409527973276899544985281162752951309249684550232272487238580888018670065158524674377620714969849927831030891156371928708376430898428727703283250386480880978271976107714848170989348958780297032903409894366711983477836018545079324468407351668967555221516709711028180431767925505807285995695976975846037855174085683336096080510429939960771548292669579349398649364843657959073893274377570867174196348005538641367848208079706901565422012591258135692412019321165857928272847279630944975924753871388582077014681634085631679545723948702595077280440277063468054606386620035998421591494249948634269694257892163516587490639674347726205901454221294175952656289375890490866044255725985658417650354304286174226608462305975933332009564137209116132344041838406403060465694267514137792737468446379396763860178712954975599690857539777117724851561679076130973302531336564453728298025024778952048583632733128038624569296686461609164658169689818735692616267764615448552722489516116730356968736084430306396313801686931642793200964473782785752392005446144457420069886673259196036419186371462573811208040241470922083816095678052639693790397099473456206274688391771334635122850314831059302827526910495960414024532371386778510539331510983021789391640711316677257285146694032889642271856969594800358965620868414324803801525072645633827825655096212917932298743780095897740187885457894811205916663305675156241120518966957565062646866748408266041672671148467920088909684376396014137743566526887773240625969642279239967310514272849697293335423296561515378317504645846652359436592669426980067705388215396257935076392830124395418690686146062685768507016557880755634475555663659805822777930271707450974982052301986483105214206634408831276960902860578751705052337976885560679604957326433677600317463038862264373611470216178844667104121109028209148132567467132682857266167346829007303186565678183552777663906205527406580172284628495088222612796729072691374273120696045546245656756526127805371972434289151706113423767479696172480963489826676208550466857700146442961647740290085764566774935146750970899837034484352702352274284500053768973465728877141562125030629002781792533492698711297543945873250350049244715781888146229909403714290686336211091295198790063047418192236746555955648748560080219849886834998998112960073185126998148135290751569439302731408276819144027117092862920169559205189510826382912689964521362158217429698833543867070140242999470180707058438344681556673188049193497878384163818681743476985033113079274026256668596420242725622703335551772196536283522410890482723188281147057691234555663576386967582236872269432082653944337358706262838361506227252201576433787492540959843640703514523837254332770451710188082005735682280711032666929237747210777047988140844538781133158694018898258600734612069733687376528878952920679897515578542711230680625410784836392753490884150981018686049975307238714050387703909671906133093026132873118196347122011610978187408049383451682320126624744425827967574685794535668888403028260773941374400611744752078045495841592753952634519290673734457785752655981009390132051708418464729147025590202889320760921134493255678557385782263507419369316736916691635454200509681318074016653167472952593997634219701986267891776140929113128226051771021769792276240135826732818499541229160133662613602174808016156702502039106817433336622894688553848932703275597520335583556225659320482550293307189292534695871112937186573512009599313132610053551410996861575344988917422355190556928309638454996273677742822913193412330697734442970934289450337003779863696192488472447908791012981705259850020726452060025373947569005884120649996594613005499050954549206930202421439480664476398414486857824821321575842243688562805617505972039424153524010969027980969599539893066656843167554318454544042355689968268474073039780567599972694443370624314208481481060496262626020725353903470356800094298197067723522073719424230495932667494230318455039035290230686048972666168948302837810597823819167613834662861058054431200170834628562691416723367647808194076119896331303283479874351575153108760897120984785936943420842236251468801924775233517109238347120695330673825776941736026537994498746364414096812416572334685464773845724538024581443544942341787743653830622577676422639704598520663948880834355552887023946762019187550689417533222252926568680332485777906944410182171079780129462386264701713886624190084903571965509179448035728751445457497831126440788658118226743541687042774768283020909983231946926417793091339760705118156996624737077353149907521506181073350857242718157439457764191947007954132448605099830583397958443704105986386746942929962431686232351928470716742358346240101731132116237552037947189535134350928807866388101992734695617660416906015589372021992525695341688638721045763134269758518138288100571907742250503776952043008569852875316972358125643350411864598463713787348739734674022305971070523120389054291526878339112375351152796561382776446256758944945358517241731941916347180291084938803428754615031171354069022096039429679625542317301243294037832360569523560304452933351351289894803285361839223704580699259582209302258711663090544035005225709480347037703219384095398068751472853168116400879662815696264751590936165135337394282198118868259523524197605923837786365337326769042290794247009499212465857652975545713934327807418819538395879884424093449113594602164363838193491474792200918267263932028200253774387646168525346163998362193822910933282947677531505066886631758427082284938128409797643470602878613972604403034710744136953169381487615733829485652014299285621212199706409855769817087019772010559418448236630749798920770776811300412915042130404239005821239352918718204172871012718057439091806209628337678589611037207448414052300733963900191462454680350539262304459706947464396309821283242495878528660081785959046475159461405013770604653576404289007816712957760643318000651121864077022188654869952247340277188782506863985511954543801546158317517475915042726509874315445556899740644692272100756981089782529059831463744946826786587616444650541450471693238221223344078543499619116392628627278968949217517711945969682808366642953916162179177837206183722880465739344222313874952273612163946766654640216523648000797799559512072983722821011549942549458810780358549794949828072247374379084973897258177726811595070589511833629432389434399437811052067092400578475059739432350316685708681730287665846233866230380066010794864731516834247163456848900459038819646480261808891537605377425626629578798005650474164788954867231730452262778512393649903840291508772932188345175169651600258817090840071791753300959408388066748733427348861090463646724707287134535912111472144077071193704859251873004968753260378182578563064664235484193547976030905286328537104115654628486351659238043009803933894814648350436189394920979755509141119209471459292264409133017785809291975415842566492954946735220033233610493643914691004945094363743751560952118447380299792595910849374972237011030054081826869158925823988351534536791958377402161657846387633341460085615637005151268481723592090423357037360932844008981446364359266319597259240837725521690702534518586095789908338313460632941908249284500893112858279488116022342870405900515035267633564619851801459606048008920937644823516736716816310573472455772296061710546917337002359612495553173617144822853618891924458642385107113544515122379424317485716459314321622435586301651840006324508791324703985705469305668709941136194039243600569859704362836744393767380561270050880057912081816097730016967430315270682326750958011306746713769460443155845138895940786131260107445104211493744267029242331672838041799401363689625417805791227559928693793316963821524496413220489351096207758737853792029202226653771266227858358677473100580622778951371204128436036787170933072735481499932493866359569203487719985620457284506574846784816980930569445245401741927113193246163897041782658349414406599758442747898899120564037050474044536290941430498868094215360291614579749285453209867988757207551147755695949728059164401000643088774681446095577194360613150536690889621519302787229911485305202916872391851615591807297388362464415648421592080561147673279377911872789335407930549095997451633859933856153471280837707852143204933145884394073437326055091653791223348260521567082182370961916115595333134434967957181951318744866910183050963325141557118448964003184819694929838935926380035613532568224994027542289123694957421288825725702685407555265473185260696579255466356535891348394476633429616372708576568413825023257139362232190127425681258260654038768165416018714300522689160202995873432693044596361813227883387352686776682674888482912820074546081652056179494088499461277480947159661000074861313966921624876327041238357917627784082251891267260535065625362183760943953278672209287302726528885381416929151028465155293231645634934595327414232111382204433572665528233602469349929164945534375264722411971464901573816232012838205280735188999472017162236391104526526779874426950393817274474091352422865822676649038587401009618075483389746448348321886215078177704239928585170686763933457672633705137732530689510105277323237563808593921526956682380572320728348453994181161781266502749126127925865296298423494293998435764271701345693640923643492660867169721875076025118287720288288458796354090548041956976435172912282225928093591154953684917389903313115343780380558266650154826412558495683669351402583522166814903876904682983959345471675598734025779487182447288609530210494921085825572837624097580477455699040467530475319774199677382597361968688055409203212315981448001690186414875441153891659379009644137626213047280220961466552395591056209200243501599865104794073865122092493913195991597472979801259215874837005050216077367210904970907479833468841981009566051466741928829094767347528347344069596481167194480243733411557621228212236852353630402768271410675430165104027597367991341815726253408088867564283696607531103483939949348283247701662504952345014745984162857428232842249148320559543411365895976282935462518685184405224376889673538129489999655398602718540483872498174108434710625557279028965216372421531207948432245214096943594439079387934197970695088164928679599259454681792638315528087397422711693789608994847358156509711493890799568367437175902017580439267612064433747608100787577441584487947567378389034618684542960731723274927653251070939043949010870287132430730414780889129895888910557937955869225136528493247455555494076777312365033915316735707777068831022461342544887048322218609393627654562667025793032291932031257000573535618177054621166397466849104485776333769000298682611581159270111469598339316894623187627823745476693808421540244640737792642408048919989518586312829425718246701349814619506807950779941563649637122973935432000160041857495122635446993188750211568792755416630928995654682848900273968554010638848579105553938371644710270191823102625349372851285885011379817172528324855331429020727206028614828851273895191146052423396690732425715444037984932965351081907567578176528061616326453578824886256740817332467288881746506180463381570935454347914232976373910325561648642912750853253054310383194019837390576739553951986746930521167999182774213243713300136503874348817235831238122813932603239248812321022800962862224519497616955954661864294269698042866007946087809260971523136342458913116178481299179180661353588190473880915370471728030799004154590615838841867070644815778477318063811646742613555497854011360364493876780342758980525121026633135517082293812582658464143103455805885867970091555459658347517215284459373202905981024298695729070235502451256550886338735052116375682231483474882269671786273621142450898278147381642517587039153563324199263437021063257215917236620768095466751157424655991345146316049413997638393730571879002188637487926538020869832267040693141315109314558028330361072212077273622861869121709033410635527458104825291523237493822904657406011216591820087649277629904939010488151558482343970730047215722481170788919586452310184171136877573224167871240186614343503143636318156533627551662804398085027264072821048245457046526730497041401431882747357569564065091732248348095513828049031436902996944154540677986817184428477036415474338274987417029669806932084048080151211609803776145788153459103165638219545043737225244717541529985845644028975678122611342992163487992966000354312189807484739272714519113290172002329924256855782980589070150962631267165947081617161610637476024907071495998939412960544710676210340665772728409852915065336867286615101750314505171654123490549453290525793239130300565785054635165813913997449119076145592165934030374620725173799945701349335224944741410701192279395464916668630926212243343053793960524345586349648018224878115134407913824697878909276284364883361755619589546561984653928407334891731510215649835702739916965645514491773128817931557814445482078078263108709776570980898050605792244954695661293357341947948600051369061616132888866217199481571426597740197628941670769984408265375757301277820039610226369693664431243307589558764057865063771520879600078597504488022518256180235473409046998814709467698186955083019997778789308111032399542855733787300253237799780370543811906827789820912390718723702166740445198133680444106877679657245353614543302077037751931806404713050467321192020208615507693013443208945370278950693716352832633034876181705205392968181857696538819978404234108078341321361516803019248318107057766155343834395827606762493624082423243921257841568747185060133451929905098799493385147603820405469450299576616892581041113925296307836751654635636183078887596503565854209545584248197693366984885762474800411447687456085188792064954544395941588161036564633140525356695989370472034150256290349178718426627527063497176817197061625344825096212956696020448490512748367379036907228954215500578823360594672817854128057293469459550037500222796884207502575695215660463082045643302548417295002471339886404068967500388859703878658108728735201499700195439256160134862917767763207933484685109346240241371489623705096420629869829112930234820993276730858211404369825114826766613723399329223097614652659893435180085979975298238475490067637073528939468849711506078082955101083848765063786038150856403108238894705353804733823842189821301101236793642368638483269712380401408671458074815963915116848286536899947928244826814795374504816661929626649855180777180372251503895449355642981409276719843671172865610493375022865518052332315310980153210704168597871674430687477962339741964148021239273321635261086419906046782875724225582248690042099866866862171293635153798907020440134459421191079320613811722237527599546386030355666341465635617812924648614561247669996583683772777642069027672657189875365700023151896215468231638149050186640711895427791219004745152979690965609006505883469317428944612612403424878068445153901204250779819275919564973581132028933038811879293574028898018323623616648174674889259289535004690066395198757456644856588448988707758364844580868637084713576617635081227836048216378383699118941892428360974818148192533572271478116060019232994951592168776958697324431710950480743216842326916659098399754296211986933819728089180060724786805451312540133539029415282649701959125745541947679405101803677694046657066926274411890817885418925279382238174498783949172174242472701492399523988542632607476000160511967697189111771681138959078206929915810915183973985004179702799618354964557717879872509807768688458666571820129119710634528013047800971576015020448367171402062774145769826926236216395582514819743200082720533655224460933998880433277212301127606168157972619657742139522831389524815144122104709168844646442229825634639908154005425140903431669335152553095721344249639155677133385841872147409722394999748360807131020411537562630530023260500264923620269306954688230588565938940406624909898427716469754767020973033205402127616959690954367334186489582707396214710636296115413369056242864571687114236145227621278941001315857241305251305127279844790154127733489410139062627024788883831044072604449613938477022101987327583540492831408456616994964590652092641683799165526011567681467020395747488962216005315475586660095624101828309002716743737808568837973068847714656397812340203516669074138350366332538899286104853900771985475757485730384831870003552301520814894594909454744864069410489320596619098040380239589930289156110369726050430580038827228270423771785452281413971480167955440782832109166812663075132054306363792160537848562782305755770310034893739976846042207933572063646093485628613322804187965180593967787638649797688331432785397852129627039938662059627494540328003848487976584385043114563125033720149403257694802406637005385483815579126634723589235469838759112824353226455141453982831943394203707001095245512882436731300154459222870476849393773399372323020227731908946176920823367608299819591448279998819256214262303683306422299062115901173410616793092811334214245571657645652909516703444995971889430610076299114191460253440822647249308614332630498880688160449869262632078879387749703467740626040637014387155176578896825974101389734718503784720488478295883177479790998637541641061763381475968205934149693107054448025231018983098526400688818528272949120573842418595482968750330332350644363959917545431164735123121495143809295164540616032420227277798938751940488731057400206103705944697839066842739324329646059501909138954785035919963706327259866842212788068402115043943756028508924935172984467550820376370391887617918851037412125840940921701016968794792828267218815149387029015109060997280658978577485755688025631970566949146322118278492526686760339412558418362045002430830974154824083290336871328876687890318379798851634219758188695640399101806976298381620083578942189601806171248066893379485670400722294235065240406229193519977239425278048810636133034514501508421948815663970316853389528363257191047917469677552488829437941524502171066637918354943437543018909114473365725486731226236317126273790618146005912806301196046260661984388318736056030663082005823399634387962986591530838690619760749496909121583481527107102663968955514288845383856065299566130408515928742360997427659926095913131429268920179545166363451985688245246997188750805045290973364771644278346045441176134870369771116405991585024402718204649590771166215411383116100259942428371276586022694467220777625108358518917564134689597782733877439573100250345562589803563750421243640313845888093794577741536059877123561872212403646278947012089682873043851638742123606880048822967383606237336399005497492287735083821065920122710714422501785509256660712233365648617369840123668725616441101939210793398114251492226992703733136206697034335978617374689478717751963430503242513640262319019387883876374098006512234010537204713983698944171588538915020147380037633196969067348607199237633080522587178289071900555099913387131820419651581871454059786763693047931468973406661245632458977283481671174750726724292359979538143289811830076902292128205727487145465401749654152866800183450337051391918235385320649389189331080517902915096841959268569581476020752160497492825652133398146421404324141322807019745222215013067316837154749742526680304434613569892264171883489972929401960153393508977550062018495474674651803269256747499861205760381252592743203610696800959221746342522536340585698356825267266339097041044026547043415405714208818336601926278866444076079397083016884944554756869733117052511526919746998553740356269213451703439799394423911795980374661073993016166196775720552563031299853279384390262761483078440702888320361427026675091863484192414285360107334090330866845313087081917969543983072777233327577785175249648751024241978310645022389098771759883445695264699885901373695228013099210411367994533229008941414724506413324622711405082129828017332553730356224695382634168800864918488420207007883224149517151981322464660150006498683690152753366569440535615849633445064620437672684401764727675824633786776308483072926542858241920398029817333257839665778246991153018000763333620212602494389733114015894931865486105738958254988371581106064737294868716345365798834765344064356182484104232303766091316490466350787001109203454229581506881210079651209853779605810546104440260968621408123468432275528594997761952507483422033064605692880739736949984959423593338330625421132873763460784751071155943664197178621732985434285418616106267741171583774429914410409465319553511460394262325087599021594147818940773240325643403124025185422158483737593471598236733577360547431676109009055955704651170416963400258726859864872296141286270922210110364207552953190527006339341364228003804966761670396501738681796650044569091363448811401424808151923619711326814858972249421590914047146613870015393640263272489366026250715790733783696796743800216217069519049582218105790478812384972778182925743003276702643396020162044139712842221920917505456879395424917000230246421014056142797491809121426173847701616595221035058629484684004702872806326125199091240299660402731248649343039775508779272884698563229476217085939928083888108789928637428367413101966713462442603720359648504606668042493131467048026841297415703953009505720673423144139446277630465197505085458849481930520693653161461659967028905619273784748431492401283063754777667285847360725410465528514580969550439262461236792428477131867052974979247123767546491552929739017591034114388184726143065927468817281098754683591445849247314178911212830071198170979876501250697388977112635362985008618460380002123171741619231504072990067908899991811240145575298883990185641769888246563917736395334260873152768620931769977718925827351643059145431862763453288904469271577101044753891630819198651104974471843941103559186807428640642138939013221687647304660739554462604581486145544494131891179092874324098248232436893021174829717718794734504160947685078341479289458746020946656176425809023124087593713554450052557655195086280601775408721732336966396811711520339464780906830935272160076809733860652150409632528868562387895620771316412279701557426740968970780490670018980502798272062756603334458524051557651252772577991205324326802492949851492722881595205831573429477999060690742344564259747906399996313638868163709557123571477202842727591774150503453110214828817375925732567616003911075746032265510844084526567529470221761504410642699033988365477353900100829696148670482758710339584789077688730771249345534927121752890414446866976890151600347267186582476872647271040601155228510247917616643201731079373038725051067622949187115826649394616997380324235716778068459477245279283732430169929712470143708895169792469344431498432107330854465113470274835829072694392182140339437941293599996955701643988894711988733058592652117679421850991709930353337081441593467620449771056985056904782472792489137030910581280386923879569751758256745565294681542980571564180033476229554914068689811039980614450348458013669000893269624751865439189891725727311158633224941072202925727439475470750342667823891884964897661769631909265134604488631542276656640877423515409288724224751079482449116808771627412432863513982625197543567384881699593455197619867798006262712371309954461945645525597718726860946862270928309030627152864982537883293623577066511249919764285019280943028492002883865197937192963417453192811571425568069826039224313779397971557269593462191612788052525967110735887640793539150298854897309561124718646700544833936184210671293160893101182356557438761468973622463140333719930229451791237175672795688925642455651100577335660554121067787825640712093610377865766468160374365237141599583317928771402593011420174103573448709382263285489086717298268995886371121309171817667337332559749387741891917770332032877895853771646362784775728533373709535423244084108425804257325340085622947200040747233932388988753162894333442586820057893008570389517792495580827980621329823180534811085309959105040074546903003973240062540589355239437825181241892016920186043318480418675476274481883110217247264922241090971580766713513701799976306523213863376916172700772815320120392593704550528403563474257629989875588748097755176861433141539461248051197918628280986308837280051378158994549519575075480290780895048917468687363642079105279086336251701087268681111044516759208617072131671113216847132666515870505808190956953249095017748919396739818521894494540201808685794120354164208468308277711980535448704741105621110723059012865347568174015648258346578666493805833967770467502697337366362832221236216983038815747949321846269627552785597217686244873815328687853794796155045274283379522784436170303647359078207063839580012838182326092093550803319540891738845184423199448753627737762800204031300546105127784465994857901936450343091971351849770563538708731841939469346020269458758510531921711798535130977868343155240948024085847053876284544648353952489075172821383982813968900014108263070917187882913990019814143983199273085452247687286877240176538999240970053300828879102435213685135022136660102489015448240515882504353122583602956953979179264466273051721594239349861811023285622955558587303405447174013483184466391124349029061072540596108736608031516461705993229073218894874685275902919571246961121894820706095386062991696839523623626018718111379896381092782286046356230821978738300617559903538862816247217459895667315617227263215553191064785395059309120310002652567817246099302545839409631873257099450391461534287616645569387839582501800034608442905824348550156228078307859291113361240945553675924207255989594443204953179510725867703615889537827846957069479951814596274102834001045382362304263625957771935651101527459099326963808999207259091242057048560180140237077510421592761224085730342961590460635218790805610843367852227983818919882013309620849068178081359811167934328808047882830029251603082175200360220274430684109410229666547824663111466677605013891407222103862290815815569289050886306592955666473207919090595603590360370566519760667642849660359099698914487985054941383550566710958103541781650358506801585241733826217144086334449867687984709844747099238421518582938631149497051384565198292258334371119575421111301371735901934412172301510701393688199723559658258353905941610035428485030529223706292759235642857599928131870890858984471631605198216225839367614056883885051833583275123847656269413136678673077466394547426825546259791943665189786675761632772194677967077224573018096911617967294261121052015400804175858275667895574846864682191410668328370931681129163359742782076711978843590254563517579239070071487829646716291443369550190959054406880910792332087910881935767571433117975804193919624166167904575208275556165498624358936852771330287450304608315350990945577710662658459782095683388496442229471049585464276206347327380286586156874238937544400944960682246043178039965016752777321993579061477036624120748035025721052464930746713462230640457060655610827086646238926400117506885462257936892431030290003893213964044538777821654238512775559655532849597378851482617885368899105412266225447326396112689446184558876959613930825142043956428998634188440911697085566180466260261731723187272426064233701763211242741175466745112639138347827224381365406986215097907787380448339192562058107986993053410246788030465424540061219248509101095938106826550982828018103177380057395675121336296507224643198984002194281508044455975551201348996952657880889852210982846516013928607032019979140664850242107641183171222588641960260013819569358580189373003406181791983542888919973215795574308189962487157386267844300161681333684499340652041790458800274251732524766966581625108487276614017550846427638926329268856755230638940877953035861913496570691498090069267460743691074439340129844361659750703258139367944695168933834322039395921901459577838429567127574500007856585290619351714189379385607478123176725787039263535203362551184625790786799098607877257980948953652066526500410170278902752868794250593952076626679986347262305563564042980386931346310577986587805144386504252751156229506632557167743151846306516179477914422563968752840752399931754469241235749331119176587019290868939485505495018862323370875623603162200821459138475801794738699976291141039778973693134847155032338825883391012229144518258127268369378994170563166766470629378112559256821811785325743297327685650162234630978668831009441459092869788668615326557816365057759698375021827295964053687167515427297891643907622877932919917807361773446229713654078247803609508267223957278478378230686581969571925817921452453783347332353184780300162667018924256737013282141036308621914755928315775961089927440012150797549809920616734974663342777024101133822986193194709449092901338565612676673678628228463616361733542534240055700902098117659350169557308553110301143362014106262568687299490832724930553349057944760583758768364596933767098108835245194245043552299417538529110539678972037838106687742550329975500066670258115046841020867718058743808691147730980707193633548829387724166968263154139309080943808562164860197763403032991199115151433620886366975368978295642658755398494578385094159784134891260232231017063040764725342705350934017150922559422882477003600496185785631390986166585291674522117704262364698545302302595239873021818651843874612389740056567254055914824031270879965810923530899575571977746923563317330153003660941478529253864412980878119444379288161660247289306984405448819187843136934436821108466455612547873559806562307891327668055545292763700287253453497885164911110984803310993199887417589531074640766675861760661261909798038285238872051813617747245470423437652298540076013644157799019230709389483310221473172530543607309114818060277963587194348203531081850897679990765908222526513825730479275586316954344985558102247008758777774472860464752132614374903336837198344345203036957209708354121563262606307441798558836907152190076552213614270367426198186110086087935827496809042477559755700148574135986231385542159250661411396154749989001378620844699941383565382626113376727724592144919372344840385691892713028735555941391282207062684562021037824920455578600581672517619126533522367647938368788685488292053672493518011916282328799955445967418882235321288364065470006425646330018251412582250059201308523637729650797988995571276760729432418353959474481966118659110078265784143632384820260149930662217595892349732097391908628706695195355117887464529572054553101151087044535494602638905119091027111113652209682845811960379788131951760292251047442672728787687747091605175568198460748775843645292058839156296017340057046303727231584531084611962771922217060422232947181523904364478987271605316471770948215644502465947450814018664604898185900025470617839949641668904568316672192429102898791212500708561387195572906395733361212270242128973754898683534130652483967665284074407681588447939831170161847279073765789857713966915199612956450419897024525755801610282671050222087896345556305113742572779480219810651133402729977743084390298630318868898086336879882844958240768428651562295830718256093694636630793896530503048213650911947728702523982048723144361844824074763523679098506715592772051637864017168036967060966450055428714692454779565226748710222496483044934513059273049511471369612957897600842536277348204346808873054586655914976785103790609491909888059964752951623267790128298940673902130278282201868743680033970123864904929381875316526557494693459641432757497216400513340289940012964324853359732149545900752410991276540919249312726492567442971146081707178771165688426398590237431392534388140420783732405408271280053387165103995156580897316571373664375173865379442977480963954253390655560911842947273753821602428657845404330061603415618605673401688972870591729539930580398024165824410853344015267952734571417003494220471224562310934682990917770175500805619729662702431509534124156479129257052122369882975411024564187476081238999426180870550678975678155650979283383122883475524530453318096625371977683007769143886103080112076270550426207612526339739274654709540605242104252840003691577317496198962536488686648736776204088616941993197624293280762508845766234402767875338291792305919269286800436314760913787762882802280452468424114824255020308102800188692912834251139115466143758837332213412366779397091623127365678315458714662431615060000491098261387820870758066583650352020329173763586303139019171719113419346316074722816861990798873938319860666817876319486747134028765925551086067039781035708666230510722947284256754987003691627484725300494017683388338545077801963685779297553721175132352850109577385387713261703595786743939169922041699170980168432159055877661515339733290675834503801450845604167001240575296915872582066597637298818223625376127951776766819606425464142272193719859168988675941671953218245543675859682377775032063836046651209974080822273566347470175406451398421206472456982112028836565879196275070619013427018956009810654605663473639115845495285937830018586525896638835598023530549345354292982108209560550582921892779390663317088946094464215870655937690280735901330733864797348682652432880717113377795819091186392782263528475565025505351370369450908764614718943490784841837241654441653366710940731519208300109151698144357061252531181738508410429652488873374753376125265197023914632760835432590249321917885842994240040085694719643229208258204386556796672868776130967236052579398165827982782998307615908563237704615020366806307544486490400337814328679453111577595394792963799638060107544619584498839589837372467482821076269264222824641158646222351009164687061658730758551449207769434626750053267887386968442024126529367435002536599486242246260455808429244553966190674028828365022778739044537898045975633022792986716108855541553222290350968568573665561739287008704628001890766206453209027053715829403003066712252177177816322333438746056906263335111477148998067298747276181854016652282232705742743354417954576414625481879805145654321044326902200627907994280738311381711618598950666631746234859522935568256311717660819614315106898046260572071843545515648584114049214212999021639704869516380772063902719615465504392525372518955540844994862312607380990513268918531228151734654627167934129568980786045439060132091747708548879357657446288832783441625127273558517659785618750507950732420713158585913270762073827426559571256198811628665153734664996919189663640805831535259603773333512169823887985534680753399107141603670905490426299831866367080448833663523439979581419863771190493608840341379436272924275573824237223949905152661330403474689907516226612154324476144224308152545251674436314914770732031320850369820711292411713790400823464725556252683646549943564703254390520734183782372127393529489015691891381523511049761341338442832620723002970870838203015281461725949345519789983005127902755412306150084079138399172999273526443531955101059506518586830346206022932445150478842722025667120753014910672604653827319283960374030712938378874000085286463229271787312759503040733948695671650136077156969505971300409008447647785177969711179248817550485493297050678482047949528068796642818076087761218646595574666898728340796483867194586755765708885667332186407296164562391025016774701608841390573336542917970824368775147981468706530646857726681411198446060733468180225466992380121273726988720298125338486549868499547175744765812561862205518092061541990505508855160805583673150611671850315583666233973368325850334560199007737361940801085009067701858835540213119822605186049872303581777660935156321859832055574504676226669464330111131380293984742445638017125592035877980550047740287871612250549789313328661336059004452957998016223805529665535448490509824803876458041777886018057962123848004199124362987287911687958199724065449752727813032267330392357245937017644433573185985957578031536174985055444756759072095075416170349439211068121306412118491672071095749932725505416446048595095352099433164295166265898995117510347041715079803484104241983766245880261073403124261647668599427589777810138917695027620295622647731492742463169336447856409572216057911315892753575608204175039975549598058424390581077953863183856406426472200571279203174794832590155503991362799203166354660705553063951650921607134890974334544310177783656039218409451354504424962178337685296496697534360075186472929986892161040625558951462837108540208073709980857686824303354187912676946083345960474465062292294180667498528525464494180599166520260448413725950146506282639765903725600607483039835863528368663419772771006896798267709756263362921434274588724319979756475350073710752008235084124956393857758743727741702020595588665025275361822481011070424484051227732838630472696013482640974138354466513132537902945868639534924284005805614427103439315120466978289200814067172551042137896871050094234014699338803537299113974603562081324530614106512943777916799773086670185894955432241823537243713869361234717110753444513006493013100472599304552845865086624305341866160443097823526819093103344948830682463822699721673424784077869096211776199382116442781227609133889221723800866001149955873275721109545342106443545972819463745427004211003424197238060117248475842669314315904276809835240779200922610971299101091512559432541286554365912943552822812706815047556311677936793564267067078216035160877644904517236744764370267915051672827217327281799556085440199405827118494446415558008187282776598830705009906490477077127996515641548112611359276992677792094327098095980513417630537046198235055160268016157496571520123720681622687586641635876955462779256658264418704920457717225794790658894598208326038787979832258614134246255725607412693838711632786859047408763578224132278729637987074795010432457316044730879440414499572387893932595191403017414698005164619032749189926481479157131515030269246080786921034742962647727068081551171199303670105807812406712098137674991550156173850643553687277394578389622675282299682346225456433413085201026188322479296210310968228050478428088428110374912574523873032580988578605417271987116511852094588153503358801622772964509603978843697834707171860020261874825765681299957875973031619955259049661326192993265392463675393394308326938596153490860576333990760309589083310803645373415210056633896225336642134501052389288495304474240191994894014780519096898615135452158627322107508598014820241841453694374685050867718080011582697680851795570073523909705587994324641918280003532196187872684482528658701599823617493223472286533452262759181186473188205409821464972866688654280579424064646841887160403669484269861986781843344438014717103921394783753898782027098746688752611854186668027149475422042569173113267257029328399531836832282369830807913072822798359715163039088816742037802535001255697531250346954536018789602270362565038040296578733240836325318877045955130182380628669806927855497102452933135853853594346561191938442404103260931294394841533712445987076696575710697833594053635329004599866772967887486034377279441253963390635182204675756728563928648779237636184912462825073538101888734693112732451023743483290945841996656110350925409668306518870871419231554240376722067496138333974204263261610836227947610417322963411843162519825774670003700677208371853521817757308958753065980147093808242211012059584626870753132190658038163156450186754828638904015504798834880461607415165551219884791424292418333903015487634339188435124160156808843208350304195462912311198809614666184294473169856650501665220902332821991075970220440256823926110372402355917762588288889887689874631389683208099351596706334132769258158242054160970037078044246704728060223690529180856473191163414876745276356506775628375578804180755270127526178721952162778686538678711300517688302429264701007192620187603438210180975741486216559755947330786521588250355570392275382041852156493793408591183402447229868688508255706920014252521988289645105156232027423521484843662405833651614871342812710421548609057745369097760446363633353787085103477616052369236132300607415100351505450481265230864027104830618975954113962394405905905216882821644331979731935919116311661712507714738938438214961848260606671752816792224763968525515414064388979288827484305860593878633914656847399779580457243223577544732662825021177568633633363055317570221162629011089412498325390393522369269722874303920015788005238972013869488633372195247470724202138735353346581597526499439928599591713203819777753713979734104653788537773439406896452316688485249391284860825848797866336960055533481217381686591915469206421444392542976027584626605315981649280496283272520735133678691366601507530353131722575878843478848198209306483126314818989490420684336598816100250851764668578712572364724596409569524920052459287509251679404098759309046070084987739057762934771973270576485923948487393411470471172625891664827794385948463329606373274105676620504238616675347711857891757267084431519943460177519047862041549685837078672920793782171963824691491432149335545980731114440483932193680282338467572552064612791219467426084157417112806291077807426938578717496367604647923077064093243510985660688346734613746700138727902416066923761476824658776902209958340523458409479426971996040909775805971279763507470059973360553537933647281866134744940181779640294323890566506210024795550880155798252615817465404116231188740456060115144852610994312464510519013598182503793961181393905119437672421629544077310298143955375238786542315895814231419702115660572653398100069963697117542380618321790342554198208756708683532772254484923214878245743008338807064029772165840690742937080368379615573167588352548198248689239308130311036199536671939144960182143360364306188502870001170080115301329213407989366738323806979007266500520376380820455364147882846137368250447782445233489154093087831380617321286928575598900343957622539689609385585734200039656011139622660255115518065069632160718237729986754482654413765035510325489455418045884727719280837072047437302982779835787970302106561351176475734664933290315639014400002463163891568854191192720946095125905911132825785087990065434908700647015520953950758637259336900922615389280603286939680594837325897697471907784824295383853046920728700037327370630377298099809381559641081686467584977088074819810073879583359341451852242342332348074375113758258276868084276014352635015003284311459615805940678332251862772239592172165052589923860647867066464124314066782704189020033294044324355266594952772433012158839527105709242357235987946824125282407366060588584527377015008612233493220338812176662458752512425843339110946396837750274605608610832201969963129804679683538781515658600982306765683669159213441679169994199717809050238608092156245788912586653028337232439474764792113180698350911629469367387576348076257433741066896887336401120275004687212039803089748616154334249692614024594002626479716246602357286709246790809275850398384577758284315158867162818916742652521435669332297445036682063652465204003957213454972416398643917918991598896233684668692632073799850294400397270990579218297358127672542804737456814112696733304301328071740671000438408686989581607094769234746321863818463625666947658144156705056294565933292205414464482198155648580249818147442472006372066181136068028731828238620038147761380705365298432661315808928914200604887838476144306032136958045333027162398133241549897853525198241974226341258987599757281096612318195734849629288487956764988675122746994119477880993192372270743367001636855225864881993996183877709790809810621008109545665273310241465579074753253172123596089614251898173911781810797731948905104698036226473377930390259942573101727406607058760745480539178276282405566826051646752430871650380077102714295064606644392652562124279764808490361909552517926920751999325288544478885652255884998634707967530433060825235380625310618379309454133215649766026576406289155980172997185888123997957094515419778218198119362668081427097443357325848955300392640318769592727943894445747779472076820617983694098420306545272946447493065499505312549657791872880850329961430309401996350255735129448482042878542318519959480843444544924485023580822531496732336799900261598832328003354826170545013531319764943697827246770323806423530302985814006588791140096244395925904246871239077997671389557077233475095465051255979823715001835636551612340424193607312788647081032413605122035405473560352849473201285305044485801448651616012928127901220316127049827094404291826496389415411002250042846035591077944859789575986851258525014924161976907904387030987074074490905980324180423105509011632149726454314116253116166447462848363801139363963348924796529888612392931638438470437548363456606851233833170135343608924251685497203462024541846671475132824827246631883706397559056863351625220896034521257709513275871931232801537633437657523191539555039001791377721407134471128455947083325610432490275914965678693323625310570805288964580157167542862421135164480854105930173053237391198732653106554064972461169787715434617401713891999358624960173777419353703342095799616306628301194455656228155505467553678695968691576340565287856980981810841394372524362202949095187562364988278946096113282072037174183593085910787694754746828247372606868102266050555901216633928656623374336671070593934527559994299079255436120991034156951629816597899852449299780672930666303099859288094982628030430392176181189474336897360517815063950496209577728263806960844571553387825800530921273785783459718790249630521930546361926144718140874560046966375946957585426841597154626187177475059993051688565302645457251080624161666950924258262924293903420110629012997153791598397545349518138129859303491021164186055996210012685242352515623424701157946903527860661018435430086460999852745222003263078549448920972792801875408019559239252480901770204833345505231911514158814808214667182471364969819670920914891877497869201489112077636080564135530495729059004541594524075279021171081789887560493404215740926771644131140178677370928582781918479274651658359011733383823944080335493725240652284086487369613457496950970432389740842141410222807924626410726748553697162448065609503507515633501345529659226818958914952982541873374941506261540409244068078848148525992892351057864280286690804181462034101181022265451398352660939173286809832698143278887030678477959349261449244300585779355282380629369155769731009698725813482638742796291419331323507293585266870399849405132318158756312868440523248542885989549345856482323523644201350793720553416422835585342543723117421929998797099333401385229772282044000296674163016769716361416080258549473787880776914241443249571606838112451700876459568064524041283883725696958696526555143520437321345690040135404365440482636667440780109636897267818467714035635172525252187729218688581708260068643523518676569589025426289121593135548773828062173074887926351754977102504790601881994437211521117857129415601959880086323611135527942992096753859434122109590386791638146676741694076837960286293331465900857513568124370790563043069747561843661259019878912573118681715389859778045917726056067144625722951279277278152360132975694832618914253170172772241171806486567469108010781816036917902159347027939320079523821966026755877351887208911174102857938729679547465438260020455351319884473284171082014638316283402924047065013442276877652383461031876153388747677872618139725350534791597225029439994281204319457580178339224695525287519352487001737699526090279222192170362890908223302532747307700002199516532007045456116161145173532732899946004524548362877525704806544596680838249726821677191167128861790166389039732388064148720170656326901092267032113842131876088523793965048867360193544728986887109209644191721931934676015705800449500345770660982832603393793528088664919040345788626945344486823327974083307899452376549374724522480102435698955493107663988595371002547349886522999094395382657744873572152241470669149532133083024323787452636836394744567989117567669482910828441903723233912691593213051319217804310050549404731814994168644855769134263183798202257489536883263551299133772918251197100324899543139838710618767318078107407737857038795304289015189611612226916996912549307095408488941839412660474346394741068191183880783719003295946536237892000490069103789489679107601470798652098991558485261181239744246188050081844143617703784036793047679230189501083431428639790264485484088218249478066478444556508145707389315973833866331822081108475615490995969142348244219663400337084889109040987279932598862151713639194354757363794221306857002171763096506926555729751824576548577108728963294092185609274437699808155704776856053956329110578428241210130452112300202212665804876126301973118573403792477108760177423486653647101869527900300279554661897965553985652008898908220377170851561265032213928295579011512885174536246950530832081996669143755674816972022251245261563576631542302517821593697085347768230749986197137676824631032408794635072144984450875305830120332863988745285348822978094926583027517172017651779744511556437313218024794192551969505417094195219247132895455895264680229617955692979067158214153425059554726536743668541145628149865308112226293261655532492878855429868063702668795050520780195888538685402411418057597699927284838655677127942747406388511131170962319926490424186935413410599797662618208334339951491862753983118068311858377403227432139404329291530668808177025094066071142632155189010994354913547898082569870583877475458400060333494945670913822573548718804351350203300428552096485449057941584441107094857245632001803819485625786453706783322163284770865502787633169935482431573603060320811807799447714999497238741307227432145799694282647664926746370371113164552557499167908973598696416547285727113522096998293674107084807483752641747355034959262615756117563843444116392073460178280892909747771715071067823814940590766829008521532040780022325295638222355809219224668884014615423686585027549660059006460102053401034228874749830735668383426502865379952977391899223248380425638016427650958940362406706192438318199431845858812822658195756116824162722387537803027079583252648673480064682370171835037164712693234483849044948862202206361573848802723437522052378677715763278164106592439584248514098594209956732849667454945691262789890904376145201577906750421632143086134215513941433386325789161925135229214298962804913096348498879461451100787692973830095669901549189061697803839199842896865733152307149931325119690747073622008134277829429973886573526561096477025081738221877288349666085798317071991624211280740452281310141377599060354757436693660831128153635881085533197184276304902956053747373367788495128167616788792770845875392606836631534145782650856101632463518436494717454239570160185273920214652898823942275373713412542449086439427112969415875776223525318278253318271414716973792923661021360815774808661931923939847312102232801917066736697305374588977542349149295107831789029601986145417829913222846565414437382730939121703498795812426142002776210028016685746199387123581364529378447454736437641656741263604574406063006511663168056153343244673854703043117792225738731910708864683792391999671885520243960328116197445679204916213458631599218298357746072562633725909694125647796023676180596577290534548761792525803920109784711032974316946329638634450249459791568618023657527801983491518476903776404161488181015280199673714084486793292961055124632128390635579949487107527011406160547467682656249143629837993542385290781760914321185738889494406616287668559660345534133224729851333500699973702911861846558963052706739737713242491632467151784977586858347404629213743430319776821359887454864760005928110418020291652164327744767572265993745025772143934486070114362870578136514318002407031730808894769274505389809410217695880545652010161429212388007465506701794714459709287206185012960286099135539097252351949269357422287090262314499820515945502761543087857542903250132953979587398697014100367609260026652804660921481476809404413094406644190866716056279134615145523239178395930143008531673115937622534765838382056159778152511873702591199959969064861022388247108083907604273997329113438908234554402346665798330279782142806565421227322955231312242831503631167263446093269407614616746524592274180041197579800377975159225345667768654580062939064016569981801683818708067146795814913338895434295348551243200690737542707743168366614429561310608944233606722871329796349157280414633544179696781708046928448915879901844226199595647750311288883062404257197892580032009966660828578232261617571819352032789308529661944047392863648176438800476151975981458059536457216948602035965129412158488557173889853393788696228566615141160155211410968577621227833292652412934860924011741477596829334695321392046149592176807276971007706020275642871220885560985313950042917675919567351350431417774919399231696986084757087053371998482114405307112345108698583971630820406073223826402819685554062918562529232912965687578077844084235965144010265827062677134605963279519437806817580564440841700954871558858660934890580896441080063202685382020369041443699063658202859100548458999981498371381753308619684334559148513423390758225671294743949345794950540938818412023722330391591694613050905192514851469029031355309095980921857560786218871153986152370988050911756595312204194280644515286436836240553864601586987528844748932361995491461400709212666063651900792584749975510700354389639265092970451419446272767827237387741719173023577953717013718158975229039916518208099439769991808426209815821809785586637142382056934431302092451413695469651929375118676859122825427985639994915112809489963363564125265056451374045920189263488312218257468850822293733065215899244695352649819824709356881982205287192967712897935161553989700625944859802039692931274453288119386781898061677784766137586914678710543003728625876291471157629782434414856454813474898617547585209435715988373003409233341512453359887520497528514760886282263232854463946654945320737218416692276987255397909464260076114591112666055857596772530319532238493547012842536738158477834773735282275160958365607832540218661161627483146806018618733356811286600406203258375515782687870330604559347053189107089433221739989401571679125956967391555339559560706026028233861448540013668597055690542160519529345915088616248008610941875233662592919361962453035820675254362978768467274280101005731144580642476660063157889485686177993662945329107236210204769791426241213327634603997793192015739089615098259330976609134197167294371413714432307053503966246994893826973182713042331084354197252542347464076597336741229017079904074282395021849884020745120228903397786120168887506584264422859226533294160308653856917972103899871337542450516929790763139995763293192322523937507308849988237954766240357609467750859139008080906987679350815950419896264745414219751087941025534780522900430588831357666784589799304212093165522618943948797373418810057466144953350686488782161212533726993580689031442761255702665886811992481129092740474347690166049735880862436812440433341082465590502116085345943568536161708976281513416441318449289091274823492928631040359587290166893881101165292550877271629659737204964300215425217813802524159960782057812147476715743449090429420602155886382162145777238673093505625239380903754657705384470999594306491598550770681190384722784183063697726354512380879117207542938185866301920279860923427946169496706707299868744837875669287957599875686435246195471540058328171078252561268475928271106652720135118434158413796284673466959715649899637890159328839683452344861584146679351817940765285508391211810088634317438642226860992054906670814457370727912748219896534195437581275166777562125859428222330436274826499581463961707016948383516286784270527316720746829124777245362063008372693338751386303985271976298928137990658752747140731330666047574508213758377566042452141116034151250231883197389369917614608042221543842289489848643543822943328676335611139276605808356197972579814763278243925582575359237458823793593758839701838855529395006486498426198958774272362809590773861323781859768628151047342151065312299629779264251550968947541511233284085460392507616386723862607539878110781889521108558161603966095907219435359006670243310861809043956790673197850199452170374692235332451961614231215252079510417144413348937184923006202766826442581808502565163454639891836201403394399917724351656023602338811268392701644257820834595452706782697431911869649931990280018839015562375041080094486877747656277346256609410286563153954363553075705420864045260267355589244413335344102585938975226800640099099602053356746542098853677092555716254162355729301373736122742889511280624259368906642337127893166711106566976493355299893658876106549330383575365134321838357412504612769789888022046821783005749387000953136646750267228359167180288340147137383768020409462857540063402347074446612476492689787626435740964723574037698381661707402709482001698928537764019232123068856953017581693291467552082077281995776734706628078526477430714796503506932107348010064015385065626717755692663089567860165009055584260746145670878416599855076046373520069346113250974670812328349004910100313638779990816361307855601511789914414501007995807469074396316494541355527091761333073295621161564819112486363869705797416957981023235324935532950582992431386479678046351408317440047156823456813369653018834746488801265366551605531112976683988307876071724259879091727030659084915627289269578288154611193138987783444072552091316941634979705216990291849027755167269833062371590706286424160573329813910548608010416161467052998135556873830943335129393340582264887146704369785856130210942197088251550167471517126124373339378681598760871420139058239227284757407804587702021100620558283009516859131338016557996350562092688066364278657069536692943822972799341450895079619674790602170325562531870089370104398514802694959357731891986538540498128203457952779747669346818038795861849090356962831970948652929511230427653447598513542393761685848499697569874388535033534331313657014179616940833219170781288760499838600462174295175702476121672172766715299857008611998574358253222760343171550095988166920409435035581852939976844952569060686702124926211850510233320857745602797978984974193742770775257727600808498201292977040403426310146054704482617328383238859247236877314658388749369392809557176731271573735968915746765215848534476102248179215419647376814691482598807702022455824610472647041668400174391886894939111751395453498442117215078052656539324708683734775611050656146315997992874544169642223295148145579560906771973474086500414537928450636714952926228530442858535021537074702318152727902848969160699017125969156756273706080976465311943464421353993861552685861200339477032145127757765522391055776886203062100763532274567003449683607396565740231821394733186204907796892899745520744880221849188717365965550495252249648633384872226946854328938025259637376459552645553547005783095534620290556364908554496638328802163872921521300139183721509145330019450768717852325528110563285687240279510053842098640682599317422247430288678830504051815653482524339897992942487035585361447478444587072489600815841844150874844874502816801377605094995665129349421793234311679732645094957855820056330950725595604876040370849130736370696809662120252989516549150430763797871170624485630240114246578103857920566776560940677728386137352505486502099837231501052748900699055723057093433734811898615775365151403493958443299868131006081231558843947314513856593249113076597580695296867009557384132820081584121851358557784867719066873192342609581204575472928297589800671110269921619154153340666015928653080945801628195740314832759896730476461634891047048297163203127508913861363526961155389339724322958481892285890886225556266923143991640500190524540102061831764637612916693861216857609358531995143697895098660851356475099732665360191552267412549202854489689218602081067899124132848359699929963391950638807521289158894263633167200827073321088718429239969233385461472861115963639806463792951439900436275587619837271817981012876525549578250489057966532400302820957147955549686617918695608965218629930384044123185861245021055057548001020588251435858710840335386606963959006981076426302548148004961655279616924645811007673874327280122991484365883968664577179717915795715250308058323330929006837997189067650722086579257477107553387442719316813840187960636560516380661557977028779592211683112507771650847450449413159895678903871200174394775300209708837606264179925116715798517036939400273710565126150542340288130321390292446906674157362591103884377095470528138767801835228610133596425389916430131223045237233501917472319775572723989334182349252313011978848631321214815884161185728884966129366708093755438077747361555995201841706328484313095884626498729496477694509077557734655842369474569085709281768673389226739327092260034111038016097619947619804861783267115233738068047301391545977115161370530942119717890435170777167361109127499804170845968577550064779180292411719967959070817095852714326509111552448196832107491081340344980098977480334854858837533147873974125060738129973650453109808298928306399335249989565677707161943027995593948754021524563099751123275778043776219572259443162326334576112586699707250661531483338986840357790319685099099634569963174272127164095779381639440715726309231905815333906609307393707587358959967367758061091864323510630825272704360902469877693159489713826694492086326998769273330518550118738263221332604872776110429289018038092408870833360971577753101950815166978177643183270386438945983258606106814577701309039836311897621479694327490348373863937935225119995929943160325717435526627691186505482317122588970386472779902713086172901419177997254152659989716040515258346092451539729225374460218978178327336836646042560797292356539347622971919551703122981839538878943129290644407962997029476959658318135055412711200971788861941715356432487010732763023591545287611911764048119687914085571150236264978107044863958955193967473824202245377413193021812055403972377886935452422768436016667207063477161214683444374411544557225732874147670174098277335653016185238708513129919955463099166962895973086190928270245822733364519636410221903766125953529865343724641724002436111668896071552381839088470830827518452292599937135247296505252132015066219025385993709479383840512016635134359848861219729453108442809575797050184437072564473298640197885973329216650484079824457130064025022363836040344050275691121127371024915300092405277319669345263364343878888441246922214035969187062112009614654612547318246911960289995739269536590489982019421053958764948393709379850519302164916816036179842485704142820066619815880564725364516247048179934122360440471685522295652339330865037839495248470480846228038903189502880050885600164638183473225882493797617395850119708165969712942022208662190537081672744518374701737683639405754190264151139711109417872120507285626935929070485871171974150227365290684949814112417067127763170916452464785878279949242205174405183620072895745353452880127666751394113080658455698628887890914869519923628864795052540799045877921931816231609263776448177518482502926985722178105049747845006186532524378741595187158763660166859666810275331927179503625922365217141122566074169025290318325997097031740086595742328717101715481952573126323257496530208757091270860606360895965999968098155104611450054090843672019156920409628690237943963854996862286952884630557920361216041532321894132188633589059402643421520843987065256087776071249490261025089828851653121569893195687680739413182731814332112342523728695577009071259614208246050001589247062457027271458679850624645803793867745318751847433284575736286934786283156820046427182077617837496771588138079135692458952764102982475076194989108000976537546518753401319548260762400736312301827114278710230044862746469532171528715239496428153437478686749417363319549965311985328398583859812776848954978978445087936225494047559392615410104586040709188230326565712418289542159077648714156061304475178927666443935321745831716367512155630825940827115433878579840652917987534273797026367867347398382893158042099125652665885165764441339697248292880154880244841511955712615754891935824685973549934470816878840293430581469958966099036351465161450307792363963235449456871063498733542746966022541796085877193993913423868437482196566601809733686680183437399284672340108184113800719247260864777560856158334823908377252617276483090798802617171449488495903250817087868127001402450398536797870013432282211013058536349400283330279861436445901591019522134121517313926731823252719121405447768501939445691032511774604524986867340506474058211663840651485496888611459925946352093474244115544581701677498430341374021892913647813601154327951023260229246295038076416974147610684365670130545398376332916865456140450820086555898645230700201463154296346786049771242350093184704125846770281284880373908923413294663230612149162737223010251897545041852075903389521175024275270200119440182624632915805014842436191875040803101213462850023981347963247270694958798756613960291380599202477105580755020140267041610721526301533098571620478942898151844533542869155619820467528069815918264278345517990405493707513559558968240153778219865340560589035238898191358897400588726267546063230881922094795079236650479070772358280702355399237323966571844721159593082596133462706307254503136803732998853070923285681892001866192642927551700603612360995972164565386357675819465577838140816493816095452505711437388459459408666820284251471325119796111749995104842290718092138211420722480249101665734960316891421177049847229405884632674974555066726455859948582625904671147691687969135488747235321205287377710611191250572652990930702089250523859599172636042177685207540340973515089124740896487495062599231087974064651099328594471842792227644616814404767261422850226444508285038797789556973008185995778596135509635717954772964993683318175650404091814996870453362698187481336431454639254272917757754130405394179032264963619490049731445345249737208609387385438255732199264471913947097796693976818698918290433842756600072017246552204941814161731407561593392977614568598193686142440915163136972739585078358740661330859625378407030313119113226679100134104934743338112338718721398544356931245482570493679662571013979705092831361519828501941239572704607190060300856476008336575564755279420024654791485753192919376279738664514495016437197427564495670746254141909680643794343991095093308645183239957980254057948154866017041715415548572604462807080481416940201974916901724019346026356567473932079443827081030109493773103966037502310297105516691470438518811641017180809073120661359841019578745384764206563466381260054899432815067839496764644670891165385279248247498706618185709058883811897123760144753132199109760659984920520533921963042407495975047450079230948491089236873300892919577129539399074058851847398249973908152440294340074749083580650051840829460443170454108628210680917001061074525167693690003115862236876590078600891503989833050559844810883357516159928857311121024873801437705991020971774087001359065709457005323410727981486057664005530861671007752781906950805736786534242358156044249895512167456343760849579950653248196807741987629909806994797562245777464003918059022586951731090472904590549829292953057448291233775422696393192478158805657320234792408257788275352368529647251597954894981161765166080803722804804486026988702112691513908386294195168334115280474086100730000433846822748712283990431712385349419608621829930187597133425877582789485300799142013992111291720187966696394841349583167607080057312982010908961392717507987616318235372127817058972222754356873660047401249837844281395738427659574940088333621599183886858570852007579147615672474198862269359814527492474802211568282654933545542130070193345613040997154217073912275560855086147328880437939244424998573356686864323194566435810000177386052129433011188508971775331173046158792960761351522169676502382408060324072594037112753119290167820350469603259223417444850976246802146855287053301276206045938640755292198024220017448964613997508893240041529152813126525139295605198489682528698256445324197377996691491584508859759418836114619791097867119262886651189575445629410609603428951011117072500893256298589914450481183073030518387449889102116868360398530123926069502033672411112796884243884532375741755539074110928511669547493245847275651715367709120605639774082794724195186599991908757162809302411092244736758267202184612377611285402939500490656445082481372229607850090497361742767728103421450262469989988384432135336654042186997856487124508164707988690968976705505285140374321306366871104162300296923587681815727703237101290437751263868737288073180225971478122066218276277487933569928838607399044071361935295148744183162130227517480788771695695660565776974874917249470058693808501591324188707376485609493200123928954402088740477175005011632708043532343282012484423356836606808136659318400588727796292999102378488723512879681843437926110206505201610830552243767647163022391832495354989885010074192580817362019686355675290842643962239380380200754087354838948951232752328609836612011399614668742349226413646947873672196566654121412721928422608644472902846397205629306166997490155309943990143662678896579335461231110510453530311496033628057023067777693744341674622459931633165489248756404417850787996197215853270413760380526260304854224042436552207542790436161577319986144870379561948556962491079082631743126019953562173169587491463173193052974958850910283721145068073451103226252276169119676305059726244872868761807701255931511772073589194686367516047495174837346186643939801979283538178302343175447286335156765231100016303517261609122294110088468297264967758022838745086065099889403327120588852985375091939406742289569546940009331010302674527519807882172710760193399785331583938123607841105278634713532581360668937368714140482145203842194017979153169543874787061733014064364908459814537976929073086274645350062147510459963347223449290493738612487279252298531943703786027730071245652515249995808941791733239482223759591366289778674849307921095257867459408437500633924740416547488058713452384340461370807890992033400993982645832805152810241798960071260505076462698647497410573933568395454801736359113549913921467417548331281408551176287476903397280058650909249043356834013071094092397935603966347485525072591630637584891804422423431290729561312430907232307774721322444633564614855350012892010274694131357274721648720645327323032955890458244776200407195572832518971696052127298689094694900148630979093789482360129703506404158675158597421096154531315359388623622201625463000300426539587417940461541441848341281087676948375616089654091541501851657591638910527024099135736629560223385554193181155487659051070967563518234426541617208438529939797931874036733117314122370759280405810745236047704731978976277537700351216036311429536481122446044380151001815846705994531714410179023480027236647670282805140332935828033554394639719374404897923761502229038717422481312259599221501351898753351581073243349037184535250212094720035971192203319575948424352040075206209452303746647613412346445427953803870186080112351191621752614467347920222361021150134762904781771179468371160484475578296491271107290843362881635485742877921968120308398121506318370755615735295017045050055296965488021868127815207971886940079057107857674251809713517108390814071704071549443518335716921629074649005163460092956030365513685757687958472582754397813630578527483056969562000749032083792221257006256896219781600235952489354178072576342736982500724727577829465593172508564653883613433729170010457778493218607592089659445253098148307444922673314286447303327801340991663189952147942216511257201037828887011803662170382705786408235338555803360315819728045287728918441276747872133903447894999988279867287453660050465738641054351719887617597638063889385074000788787715280414764580444414566704418708983109618208851305342977771973935670789454929948911649024961610106040292831291128702520985709817009087066148284127092662015894768051845748523778158037428585283816311637316072144888334785215450079226237801777075229347535956757099197131731376912287260490990327734141086833036229192036830899277690077195408101016966013376889602120728798575918878520433962069140817285754009179792082752450117039030546470754228541783512247617611846179384884844578940039352340611142297606610789320544716032609594125509354629615788889148065950069225737293447432146251796470886948958450315178964157604039989973358398195102891111460556589276381866418055668914837328250204284859834353306480294818809209233695131086437734407137004562442758580430571068377522091585397148071864743920906724279799262256053363622268150142560650637271623215146773214298969375146953945090686236071500859999671932544867716674324991972228450769271652592336918277371870716340219257489701634118526356406731785028061057549945488949925321839141544177271496098641574842541232541551555324404663413918849085305589155832873913092716064162465623603324737982973726944754466126276053228266547651174381536346066319712158553175882291550038477186041731171455619508238835588689177881134940876319515966991855071143379563699094153620965477807353891429685100002629438071993950969049743066367352980585581644710293287242098462272401966428179027432616302727711032915849418684738436413270001792346626498013924082214922040231914218920221928997965372918334669609830395662423344982851178475158092034866319342694634478873727095089671108584835156381305922123985388850993125817901635652572429193577220680947976398354673587190966618172670790731707370470260933758305438438321451834388205652182625937188106096649478880533889009624094613700699166564128110714011782827095253970855335819334700758023538629989687380560902665165905611468955646180528113740882260162548218185304458003815008330492910323549698964743591107839876429972285690091995897164801288402391341249351716108414146257123514450678172139971713988007217575899838992962139735971989906352367042815526116962167362180705410780279783428359464621640492653174883352887738956419032084135349334273642482702430105531151680963776568076819946130021836686090112593427765981864440383698939268190191655281786731368385799558817257888840149308047300968019070531998592779015406017282912957678212102622000765515672568259726997268400361275716091452010041691822172037735912705835813710118919507837335988881711252519320263070915301793982806860571382692084557143093602950616415577427556896059129245729154791722547656566254005901112509335855686591967224217632952042441966001049578822066362426416869597506281085508114900244433896183930020222286142466380897303830371204674881039021572024392672772303490136428791594345212243165062453737488292479293974890194030050763979337360733948668922979415779810082309799593799070809214134300961416041076713813179959790012676343005242846385594305496203601728115119924890469494515397184878533805671018849668532852782298190705751218077687519963417257251913726253423879348406770970452717800381247466789473701999637040379034395121853228763009830665964528131954515603398334037461250161859243015810360714887529066316754134312753565833454845123496359981620402672484445018359762682800677501696888662899539690431909951323609609483828688038456230029917068391226349647083541413902345903579290545821442927846557371800693928352000884187912533559666917601883599695988829534932184387131345992256620661304266699627103731149077289344567883194870651285263384959837044168428050376478259423146458386285898036457593092595212200914342601841016542994980858910453345062813926446218826202973343712788208055297352688300442487699657604221656221330214609849362828380701472042715375072729693749285688905891083501011124946967378374887011064129155729181048477032689607775994978188038308112321809216741941764162355964451930001262146928733003457937584112708203911211100164016204694743008255092265934590494637946771979605051366413304876820638103475925389745255935683858864389344513330768531191503476126141118728507505042035284691502428516530047132250423067618769498352119220810727246563134027755589320683311003918716139388056816847589962628590128188200824287971109850749862399523438622861183455582617901109505834164710002555177994943679530366939362287136817519817699659615346705069853889359329698488638539593885897931489783102109290275810996461489198039652037980525657899158042086033680527096096227347190109225396412969772590891573711366101028476886668996861783274819522679003509651733575819820110983598509754685240677206638672376997643312033155245166785539493656587250890337556675789746941396872959418626087468206325455955401923855601736500101026229661643576830898236285145183316903885584313557881403870969123015102730792821953878990381715418802016179722787645362003643341239536267347281684310080419694993127933209792261146811986359002042350816272438132022988859270148434847888304523097700142646037775623133932000679136362730876466854283713186220719228304602794719586846618247355980557859701821972457824984301374016799990135244043240348088160705851815810795286230812113726610129035090945568244942256798403989357484966866911313203579479315296125108910798672851359360532536953958476119588749865737207529088184506993041316784312090708811659636727419261418444972636000236154951985068917039788431857504592911262155806245321795882566783498900269579277734285120087008208832708471101963543277943698237438345553246069282340842404273254687418910224492873791760146797557736768037464430852599568671382432156038823983138046549416153937637572470608062064857602117545952903130275590838497897282971775822511443914204736805240605341398506167876955022155541358087443235069032112787817667224664015911157216945325358756164292283896032441830190164174642101252609651561813043456046454484026393117156873346786983002353094031849286608422319799463302621413327944392912230148201397440114728496108901783610169121141345153580832336584178104399586257344358234665272459614014014445444090492709012659572666216284894439638696418292976671019327014111328903985535380606826172883181594673130062440988360212550530403145954657168874186468505971094039567192351306900326112163496593379904375828393101504546031633550024868072934828514078092784944362790028146559898879223566557557113313745607552434051592808077778897161770191548197970121754720031512777931761992263257200755761344106936780589512474073875900269789183666004936997893068034033148422472818760578762858567521463249639251015780267491032397349829368129724683630463274617959913820116271607730388961609105697026446779353173344315437155072406368248733419600656437495893755960915609360185013817295675856702265701183354287725760109814355552567679620146790728175785377735509847966914816516469419677706029091096741254608464728691437335713898341039503077101744123695116078420362858008737993286824178158839493208565193791503682385807222097215113922962032747824231279105226023798985107400537689767125748884692025296755714167030435754030748055732546821179894188139214505084192238293195209843634912982215867075525171442654943686836742553725625060875412964970131473777860257103713660481183987397966391045038858853237177170750713854248454224465872256522841016659507958666879302503081074665966662977233839109465839208049306734059655659734324121289215327223260308054932561601058624155099499261543366651517274671399184982009836390123375749244963434244896475054853759199691414181951116690871470666833931427693738787715521632611933647376291857570949845373440273314707404634741018658087160779777422710020715466878199713972660753017780227275101065572875626221075476679950594773736753752997496147810815710222438320028609084430776326158175470910297337070365872352558905767885060385474867543310273054410815162281104016697506336182966923668129984244585754784266805317742070285854265392726557016789553518002802992446637107778455917195128002477174697891102599395888401036822347745560829639619811842641067590941736407992609264164031689018996632551568113605216343724695932794692988227087422076804877577979778199372364786841927694286763192308620863692248985585529250516226553596472327722871542732568758321286668327684052576542013495471578339583541274283531223445401026399883705027244021568529641879677033402445623052810961099678858135511914183239533391214984813402306070351289630279734251964677220113509041206918900854492885540216989595956999818988229255704185765264286710957800360424645187598956680852391816353956945199633360432863688674701979235012876375938146020462834358364946852970113900627047435894450813231469437166406463398866349231290371768530918084568786679838469638607856693641658502039883423343361924136068935855739605314549125703149826184295434567615605718875512520188637829777764319780896895994385922876034776081487700861654585291562650540172335824507327627432181336408724110860065416478458301113964483126269070265956205431665588725284112846797749331035925335811629692049123580322116078718927558120023492008386666710381262600159366594516756158860281666602240544969707215126681070797547948597995261925255611737219221989671515775371415317442161976382775068013332830794496409725989344689257129809839266958509458922541314984497848688269820031720974653415903240998925173590736207472925745411013843070239687731055531937962158567677597277190720718461315246789239385319768321771613800329885472180608646449531315385552272093815372029737320851871280855443791546247827465008773189817986183363738679077350082003295500179535883287837983154590185195823679755765918552997055868120907155233241951102514282553911073344080736224499356564649531698146304946339009782183951604430984336558944048101157379925012760764853745104652712923778649960844104607962598762185426487261499452592157985357482163175846014260640313519868441367010496933096350507390682473893014279896934415470356984292035313324303432986187216360154866970738393939570784722581944715748140800268814243609630359758747582414098673552851117411329200919053719924779235926191662490936069348937205423485851589234662641769085464535844641699883854953135924060575589585735051680336092443652390808438604765700075593064576800740263199867447388479587010762472572318422625607070341021002259612136126514139774130117906945692017385818131106662900397470503329250401331440808551022237355866265243350053472846873974798949790706169014843469208112010216404777917403837857420862549219910696818602936657265718612239398557102363496992090139138733376038044380419947555596950836162965242213331343326633379411949989884383723217242059208382473313607337050472450663351165990496401820894490278643060510433801594148972284786934224409878541894820833171373204369977387784295075236396556936480152953392848203201938362437090573130890632527747035189137361678075066846783858498078835478003307250513291539097974194759222227319478482103375631551518409811575411076836381477078063106443161347588175705603852030805828214845038265007478782070449326981147192923706157565314359118880954691346369666905565859637638566658793368598341565573592533600528899058763056881683675997086813364053083745463079684347501906920934057135202867057328316364535634715009953142704804647679409130281062061307697025847617835130502692751719224044011497909965473792991904217619669144273928528204057033905818402746489418790384812484321788882853566881490460285875040121869164394478402360730725548724710618584129273172347339992099016254149188338690874950321834280347629834130528503484085644093751266138874165995570084564946783752459150685665016113850884505751786189247738511178221563795670647221445341259445955010348362537556417781577636443457136277180391204341681397776631289542553974969914369933500969344417124159049915184823186382969662761141164937929975321303394704885224693339392537292689186088387892588708671088009608065983744085511847631826395091206538100450042639052309510270299587390586599093187286633819019334915174657594814810501064459713930891620546399049073122264136751381633471067570383249537295846488720438892115121125708138298280106705431453326494327778353854086929618170555859695375089099287545760646212484636276760328314582058388773648737478264712649381139633594992413309329817344575927833078699074492432883233402556586822931145869762306253552503714927814977975467592778643468320942852440630380747469730136956085220693029107447891364940758952357167210746274635015205957354668446738098368424723734867111348389913477154342543989691683645027494781441426934053443914548596615865048675940548895298837382732725965811792636273788319601079260512383158123582680094742784711189336164888679453513794740586873241840556207560399880111418783852084662024731434282457824395279601056910316793508418267885030425547591201656214836311003058101983821374301464487018618810670790580108922472029171814887174580202073336522738575571292391173388777865452231202344965704413506037685227022811316375097989845442491327156565930736367991790976977300006685645145426064720694587107694928191001251129438968664220021324736312976230472990781632670987161826273892238498048380978817904272299333228321476135292403536574666250857148187513282758404804537390325866201744623396480859119101693844459271841916911376772829829327024299349794838685165004624871933980128303541497911079178722317156512212800044494280344462214219643246885579615450669692231169079645879272212052796537967424917299891649680760983952721203189435149132608643020722314995152282725517417844762960673935961934601180436167074076537803336748891574701635861174485678558834729609429118881759655742292557980400071886190857338042030879003993112806691264163770291912650769569091629977476134583144793630576568480110896572227235510572369898086224213034776887112589144536669282481522423121198945755176842883398644081455416766681646888000662273051806954243698332033203578632818366397568573418077513336198631314316422433336942625498485152766510959039349867707714889374079076192409089681141864303039845349798119774566180470873503517756206602304751184993829346643550048581927372496343500895421440902153556220271323386263900516288059823996818757108082251154882087147998195104275558826099054100982927114517052518003433011226168006873790627112334894819301006388302528103175231814247897987741889618466382421154029244930868276940190315726701688327073481197770649137326578009723726177469212880834889926771226621533109441689401300666339083581223395696308448216958841357173004427966504420876942227662231864074795058302411645044149814674572500555575935393143490263249498894191384570714111539992853928270644128219298817811421957682256809161044387160923418437223361006191275753769206062376064645836468113011648953061431853743126575509796983765240058814946222705469620071059699268937292209520202526508388491071987486485165030342578702281380079955387437189545557433144676620497653976507220816593515892220433663830433123617992089270944771677003698116972371348335732800410372047048128387044966607103946551788112163194206064020655730597887487939709519331598612138475853549123311107899184575988325076921076200331250017609448473897423829364869983620370621570807793110941325707199791806334078849210808563323104381916237998368654231424989512247581158039177789238923387632197561715478317755654579979304679400626320387081736181680644781592123328344373269525802277206137934991498171087026593444014435810731256114057380103656817615197510971457549744734835083733592576800855634945852502019097332703415570726137222990721492573665517274650888855995609313947979948071750124095647068917878846757360610181036614738825752716302277617113358803592842983773776124499624567462987302684989688062297719496621524996481257912974950274644694773069780625468508664129546150656933363821997675316718629128284527077558649071568105348309942992500287741078905573744746716709206064176878515710195711124180798843522632628597206012368992917762339688551851001778875284070394958409475235562444737590105173673897352629982470308844381172384609952375601061574681544998347491344894515000028440094534609549324747806094235025433085288406083115246345795024178514152484077934889614227200309279494070071822665681448325487693419682522198528476975098405165662126487268408654270013920657320875458254891748633257663108799663430333743497685935708047271992281290530172963844947784443140772138729827532165548247143535423393181497187858570709081804185345730767816950244601540846153489524661134348998839230531762540992568877256244920144106149499826455917293553648202563425804264761761863929581805832508754122746939232456981462630573775211651531208886684650979271492602231071509948492121027380058609390613306025624379088000409697546182175569474927771631274198254633087810559479343058403151609853269463489502723533369626573949336782237952861515036280492549999541144362202625578723482996619639471847993575041220940863647804995598010255404829438788864028346549229766697565275031493759417368348090458278178152570577799374563588555283300224253489437131941929656151991134674191354400210915857797415329033270902895863025663502223481144345250316668867970083197683881765210897964697245686029054056369150533401544114576486333678014213033975259565671637786282283970639297114753961799721777438269367812142317478439143326498795691917833423950369032741226180183677260071527128363700462171050605714874730255775019305032220609319505583234610634263282784997463574350707283523236849712570399007425808435129382677966411850809534258301811111338795876842900553466336884896536767628329807451890482455710984355910903203636791802071215462181106567113760719200285580035642776837510321159852103872325433173889925306262089290654768173983438368527773540952480720878729260108235822266803236151172142704128120910369108114868561609029672551222445126740171105855865087690739193369719542912566158389247297137253356935121010241337778168184137246442450872046950898165478114916217609575943464264850014427594388494697705083307770240173006330846440138189237317529609467822056310120958113718299726612613691680754919402548686486987628508269923215220262345708578720792122823397733648519078039934834145195065220719095515942505611001851203394263256467241593653418574424183268746165218683830528106201419962608044059095055402273459589639484179003831851705408593347310219835158248147336985854928148212758970541682660486357368065749634952488169675011696588171852409726095104327424844276713469531073575105934806302456477065112953452195844879002121037985243163983156013382648474614800201848247820808534809550217019719179123430479451842408637194684843002002783201466535433635997863039365375105384946302882733750599170583272390848624981025371372338977422329202543267714307417573244320321434373198123963731727445780431900866860303561270080205082130197164201120291924917207329435436242966600822683805052320999664185400391891337747461641261331175002246854864954740449515981386511737182676492419711058923978579361183807032611315457011964280513973894184798273397467886653045338444793228460117187907913864676763991325812702842301757362974367858940504082978984848357968227843565185284783855956776253673562808882998812744886365193718087813228882702905061590971865861039654016196233383147229285121061611234390779516337769072169898973528672625592223419741366469632443871439535012810342259843305872878944289508657392556956017199242778322466456481203233419741835574545900798165137543175077682301270893633919090807405756599231375877773102017800270424858612099280562250560715922109524189332950211934695992890132401318599496218207029258298130712007252921733992853953283508491295806695225332596064632511108101374068265245203426876606037515726127928443804504029184134394748309454788543450964145591579512772184601366136886294237844471673003851838095918982204289228302012990589479849425542215687773046003426974260492437686885332074289982398808131305173214187053650364488688302704244733644911212800937391010539965691132547626034896239006049511228574764736180060497268310096024509634386927969840023385042188404698013544528744565669353846638307065543737995162174585073213163702001639249130954270351958943798664907941772900888279190912011702613592896416160223955668894231024422986418615598010112850094187147601098248145486256204385211862252006449987141283481309214449500826034939993780858620323194682678178273967543806560034633221561257096748718742171635447171002085805591896090559833700780314872106877948745878050739783939830238411420491572563319946419801490312104859103428307165130758321870305042493309657013344353321485014688268822325878136012141322088551522129284269107319228991825284548526988223116313533019243347752065144614068192192328767387622746697317743141039714216549174307712567666475161169818137449375303832847058044938494810871231416238925064537469637149936595090497675398855772276855421618831397875857699365213469800046887638396511005694940972661802357882832346545462701607914106857972911485002847853870541314754757898024540919309084432027775521109695978112454915679191634140411256391674658872241529797343790180944457570829329764596654998889607840500757627683820367910500011712394321868804287916745612149588965565394098517253554862024674956070670527912854155411597422566707901517207554529646632788579675442321461274419682477166929451647829380734269621128502963133306609760656537842155071562190763082353934778535883784617030988920086924935055297201785911914246104604565861895665304078364062746326386953093384554395644023403245499022030974228561692087057161426631095240586573905238735833892539900597474051874038625343815769146932440014132109979298057410365132375519199618489409519114237751612185361031473083794406274234668021324611248702787663896038923868552031830783825175871997362673827637307203939578182681349694249988707072925692657663973613940891874960170917194694451765893848765560082903421171914238038552133137439140616006613609399636819581045421791047656863658723495584571806489770606447059090149073349761155173039030598743031486803156927071358736285896040080124413534967231434144290007508572220504168853884934723257966022906179104879413169528549077084720375209832723555088602560732156932350949076756592196967638769122343079694951133069109867943826225233220668625837690858215129287573265316453873851787455944202661698851868134953770504135121199379222972603442823834700514942355837631043971380662189889802426104626059133080025050571650093099106209339553362812085768392436552154560724328478381670957067866208974031241718658806460400281636999635091130509091233634204406133460033947956674408263254746341645090562459779768190821738371408635237688137246603323424798806788044910061787693626947953228456256348162456718561150849858343737910206283801999654842190399825735824957406384683336664205495943694548236040053213218908324465070094498620207138183023377057306857160010480094390481465381419433801024408735724861151359743704528611518767330880494033314813736424589685480063142685225963676835596948980499673417746710229032491345464959606114587582237849849271222983669343691559736105434077319426741176598124874698235941493514556984521436474438050618002442893672874337015754215960216082913084087766085632262568075415096214336549362957917801741371416219457210622878373675290718659642744071413120763024698758548084542855475019787739217564709892329350589483448976881968010725808028189659033802122021445058802068531638098189830836422486423968194890842400561156386009975019363485572082203447078667481601597807271036175315771597464684193265837125057094811378689684140907587200176100764862324509154381210615591779797788190820011417529023434282552818846015728849173107875861168854657635948803813059442544026630717124661445551913688682557334034153827352480422669654860454684596979855503065299350534496213312103936211211605617908924489211937529317968327134147852997095897931737161642754328818192932809032031603377551503852356401806195034499748707910517852071093982487656172687078140745451902148969828332792063833014426451965304872306870222851119321479195653818017243018220962617666075269783079286316047392158103647227088767917992118807767704004549866114888458506368801266072666451288880418452329180929554195099722853445839222728268241205871818253014403231893584655783710198323708410907550313168789390438849545051616525649879408849965412680769606875393613976878247161587760836758107379250912811794013355372038616958156399456826154818711792913200567114704248511900327295127493109731019304928307481895971839829659655264299289774684809918628731823936459303320905195270646688276260359480116311771351392095929347874373854956876927614214683366942931107342046194299369378146728587375023561787115864671352707663747362444950953774716466120936231844514004583606122459050422381756517635493904383500916796549912028315222226021889107607206558753084434304562456172569513667213844830371933709147088982183611789896453481287334452552108495609866872988431746956150526566545956333611888537542763695160146665557528916906586568323265902154851941768774750556596390899214924659485574438797964488962586721451594187890927747488630428037823940829042561090231684215782800380094301696951938624212733640567553368163786074408379614792317212532132079390350171526839237854170698426710928272120246318557055050737296587749776532027206528884145649533339360794008166032791128913654498274204807522054375690092857647797256411899522410413615859915428451085339570408784440801889517435245322150993580936047269619669774709290242228756809054188018818106935443259295633645566494870626478350031174456913561306602938185150491034129525539676237781773799699160708965986927331656188441722326238615735125713685300319104754010449489510052303342679261962803465696961617746852671627180582195471926600574988600372046048813068114620337994625143677853543174116210016177794459655106165441482980804914058538397960900202760499192649104212623047009658438435350907578054586400570969823017379265525403083448419351051245425962481008773957684502016419715404461484829087385341267841965362003383203358974506182062690850681140742499304444149541304592312887266485889490672290545920855084584065545036351202122706538788614219519110695820008989398619746956861801697585506209197400171028550242876231712420845236405734372951133536620411853977249500235325969298670081709485871910766612969162782282428794963910847893860158521090720957894654085211534275354297666009840760388096071880148982714426961381126512112865510385514206805474228029588431726557558464104799422187907093025466064192403688406468532888602729271576522978638956645329894626107775495698714265483819087257587890948945621469740970894092472123261835320165643427371915093738042711625035118335068561673492685547674804390979074285472450915646710932498502523849270112526693208354984368401104287882164122884615636773956041691457837777994511817379304365888674987687726073153701540804491059100867623848354459033356977613883482106434664608525669433359882718342935362544205285045486533209522810947792709533230814925539078571542422009533366042629319287739898086976061008397436899825860983428952637636816519109185164726121382971379540004007017322215088223389293728380935516989902437521653126330193830257380933512187019438403543932669003603310927468091428558732316957397521178066357065339322439041412462656726418358500538956129235763755605224132582861506230369217687152924198129642030948472121505796354852543142634997899800334268654068470507923726416201502274272344783148610043741602532172445035076605504639112340423113673714293271599953824379738250995391908426530357040330567327097064625921688588925708847652638499268424211326879411625453532575787439424007572977676484142367994277213944594424441799936338353273797904990647229643665464721310465882435256102874673640577554666857881866717420627757971873646137490057591940455927048370974310105036221206808168938495007770940329490940817205745321697250162696018378699609072829856309024886606432173702827869462996864093580323359230877967665949262422766949177812962944771770596454053873447250436888642309643568523214987817695384966254411136363534435040073021487254331336711314592888614134613821872355443054004289983571409252907634485092779068964472762042126468812372466309522470050006542464490353451171006662362703259948826364265959204891262178078349129537384363446194511607404145282607421827966605454123511342663312476658213691155233294247881979911413525412288805456887915043761076495731759793851575935063423526885015698704340322110014785038286742694378283424808060519645393927964996756462068763206699912934719448489692493364269408008349750904522905560017069057148771808137896813443423156431835136049623263003037157514925340909394889285803621060301846616126892919665058348457459409053166331602542408874338258253717301590797519319582569313954529632721010021662866185157743683064240618332847091305040785218354508092126960625904952818650243255135047154001857833030054589973753216184194021431430553447867098308374378104400510913749023160194683577487096495589783670417745459127540110482943993515185482431754254446108099465873617385069373078538394229598655689192313643289932255012063561457758278423691981672276277430030561820388389897332575968939339079817599838687042643824549279182527281202476527152413141401854228505273206156933722682955108176634658232509567735331022794198667141130926442201607094147254083063938652915077616661825624800941622696587626012253420770614382877545629938940914373382771241120780318583551859920866922839568576572675811596513924375352929643295035078791334037460862412435861598238838240615091239092695955489553752120839144790660251687946842537048553288195684776863468518426702355332424024248604254456314045779754119203625875465091606359944344929675381781797975821813558353336628946980744547161573360494287265448097679119279732819733992121600229358374786438026442982053724911559432170482346337619648098986302611262098896548102655710803579795207507633243490777565653812832881103194795556703147390679659783325968332798230715340984270770432997486154062918991958737170058030679928757629664276878981662204354571202429649372959874553988774386495986463750042655147875749830295224889868121531858439067556838366110035004705733144739676933598959162055038338276674094700160565255979836590850424645081140512256960333087075604709963861960303102400843537059185615498285088536077486868597648234066679087153320199889472553615681599829099359449762646003491856929339716827339213988189923353864160805487376928274435231932263501820317566745849585176711458098100941729261401613421583623611277646046452484517066282109499121754741509470806643815583663700328669483496066397052411917883697768350675508018913817520796886180534956958273633958606570159199718739485643327165112333827083283828871621191644849562481366278310005825119651500712072780634775237006165964360405041139594467017138863789499392690409555669823314758985624819789520857950139607511688545636426544753491960969022558424282009357443699066953904967340631849772359170318423486988807139116659647985163664467960617061771922691819152678589542076235005861166297572424176660066832599543068565871170196316342528581506034292253521350856095541102798302016127319997896227127162504904032198534954162238971357756874854278441382133126536137309005732140182291376084567858446458426965037268621928950742718667964545180575902526306338155741711179180030503733932272703283432915507669700869606361500866962589535709426029511011592387166723070673402565193332808235810155838918110022852244856379555928384393101460189935198121011049224301776786155008849975810249285126859819460460721782094906084795014687960158323029895569624641994214240397903512934863223282472063049526667228508269984347445036793426487083077558070615595177666605572444792232330298608529029422223557752646483270624399538435214705305205173491721945437556653203422512903939865645750733922741422750318324352976089198727362631381822438917114125387617019269248552520883428505526963812228964177868459899471244276903471806583062744712029038352278501939090339646482363976866090414788156984081715722557835443027064059249794005540275246565233555849715562730808430125267461381993430346916167436110228203949179788043838642836047948028581477594099014413653056130948152612216951573628187975570641952708249217422537219756782924336049805884637798158952516961670852159667982111453248762361663287110722056620981908060874842522068821196726698175447341171577209801560672829845370927478403665870055955450482104822527648696959014990247826616997397221932028518665057993748235395361476770741370914659138591308527531772113782973114402418711826205984160876487702858066596975150745090268927547942074937582971811663547823022278247702914052752301510133534285598034781664643964032412376036003967045843961420322238672311697993739680775664887175130513957205294051318691269033002186492588948663450843200751780153622664627540829872260686554957646809493391032844639580916372429208014011843036433852300748319288448966908124795709621705531132960939569647710780896615347740478823136163174005150837249065623946549967856477664780934875301460069752081663409390475440099146717058019711211737400756677726368630090528312599929003571432552033799297673242466738052416084139836401629588755219003907867665227771599672248169744880014178366733938002526989600932246845191215300731476810326102397822493660201317926635022706793278387512468130036866039779454252473004520851553549610117533761579885665849069384336845906231937848888381973433582023657405469146912433048914017856883375093427504976205664418632219253102747923619391959790406858775335470435410442516519819710306388750985017756619636049524853364922339682846013606929801417884438961907668217093612911343024233978369001447105744321151895741268431464763921737036146478768457851291199816127354538092358909845224212170409552640424910192278348817589780293585059040088457878477689827179223769158654138513500928406311029241604131658703134389267487345017110118440594686218137980201755802810417002565355972595844523594239498419618076024853309870083856699085899351586340642348703232016724403000838322608493819977537224779738970455233215768121508461844158605025967224989510390118032445938998178843348687192542853321668581658898062674445081502703240447837809667576177093703831054097558227311361211897326022426909936276471458609013764098765372970136055270467307004422825692617850487367368173412841769831728440619561467610617487836127607442140586692319073474820751625151262093440998197184619180313622055708678636976342854388301860141489102203997110495400619632631636567042882966667699158098091846603601594202360096613254935989855859654427267616295573713707176806066795707414188327180388561989221871669544001902523786067620336450347672305763411563687154130121374857547323605509213622819453177036529162748292286027474709769975716345294037941243506135682538595381962369151725888453415188894820780165246715593351562185763991737326794684330449973779407342607087038143971680583852136591341771988113197978188856710930472565510308914462061948326755704043748694724413864664727034867372641323186899862110298788064595427221222328987570265007407549724147628268557792497499656932211196187478137350470100354043723869206056140205145199036365518176241713935319300943969015080625950470191608372871543658437634714032132439553196577358431766917649679901714082294229333049543123487484932012606423444312922343938658374029218650427371690964883676350787113350692672606619420130910753880230697328921901962238364691137132015184765771985709202493912369791797693210917250143389638907736730534546577815064611908472542579209663069919441284571823377308468398325158947844078346476771475125407283304398895100062171480475645686255092267244730075100916950443594538039062103840537531632206672107476416069808493051639258809845219807397843646323254840854280868423881688232170308508331445005199749175543646182868353175672162404639134491230298507707998456438817053920635684204451634573056964942851547049130912745924727583834992047611787077835612941116676668952652917370337224158050618541294168194071565866791066996574175857681398834524001282210408978738443573245007185160893089755613306042050331992657024919912984166961359392740454295310293398989570000236903904635802454683297205082456025061143325237975863002354751135718578795684626140144778725173955747105255195058055212249323230490588525310666220664929604261728575481142288781806829020493471853084321112721625034193377479506862032992829372453712023461486309460716949224651456042615541522423021822331059236607022727562553834816419023338672138511369769286045904523879177699464039138456362317032476629928051853019824542966534481553902784117368147708009666509411819268990169449813275455490093024412752006858207568701715741740387329418328728616964479446410718046882849042790473050428333561949358178357918186723430789180931021298245488808319929303153415581255834091831508905072144014986745530651339269451408146774937843471367438320467084066315929090621762902644825115100182902535649867583863889113251369505791791418892044671443541189946068808185151601953099771980237863505568804788584128422214622096887732789957551076028460673164259830358126170042805385276495757647349202270537690260555404533093934988539582643621238077192066860662155555980353117597505055457889758511880085762839208207591371376562322914388303059998279304658468747294700487237915960876277387115387583985048687481219247669611914627039890604325175316212234824378079174720230471321366483017043904650523949991790221098080116046709287645427298852298719140557904392366592551214727750098385525327984913586245938063594439562177540229653809866722770172632875844356474815859524730202108451202650139561349650393399801036578489526353702025781097958224561451240500791840724658942202574050685331183009337651161183246343775021532433946697303008920434151703968597540284938395399007171154231248584112633136802146012736755204359451221194460855532962546367672915522933805263903989849544484011529027509482456909183417083752672149008844216295682575393365396851324123068353510007533188741003987616912940198329362103824859667365287175960929123285521995689081865281542439331050933524295261827173115362586393939665604229069038257066164561846210775724532769144550135953212642683253250566807143430014854022455762874388474499201806054983784397911575992850890579277933808323683492046904510684981451708841043830982572688979532796397656997655567741501320237209289335460307610365324463294066131221517091982517775215200076227593160936838827102117353487479815073439942805973981500515471102453775357007515898009452232288871498136639715464381842662187569505765898939896924706052615261092176921455285049757139794831838465296652152877216055999962452995150725689825227813571815325598658394070218934701338272859177153702090378270015601157070038692900291641013173888864555050894150762988094673771241326650490503074489076795271653997483639588264668717000612568128574984875056871471829109156281507597550707225701514397548121308699140804201421676490895972432992770597486021637719976755753161366548756696537946487529004495695331814152078513111277408695719348142588436826301663083773875114817695574821776001720177798460392925533262669702405171719891146656547770343150751034576635345643382606621451413290991505547668506445331226069631124249800183622687420808586678814707244708424288335826011254323025206589491925475822952230706561683752763741990906480182660143770183424859518369148117712186284660098565000660717281718292259406884686670173755169409833251541979301637018359624248334758366288598532268894946135415723102851823967212906504664391847531596447056832904000648770260962783678487215497546508900224740054244657793111603324748347852455026413527223068547355470006387443351238822687520426785180601597905431034999216339507778631578163753476774969371435282944451498086687444183211371971092483832073544852937647794556872904120719669638370557811459644189174485954901050124059697275380659490263156347227270998754030135556777328942589989915287408895579530916608721161284006467025477180440042230749920879036418611798075985711380174899548131542519980198280553866582481723008509443904887623607544828739553529196154085414042719843351979862752162650757390688095886907959985106331753399843883636327440757014729634304099007134217061729128801797356497134025177819704554402527653493931119733516971794218253649064359741596278153735939465445390758562139148197213466099652270259059200014066930014464462659908173445233061959530172884062302541764677766698706683989923853030261042094694949667651433654885364544284260248513012894763461768759050728367059886632803506828513886555567003417685734538939507123626909352930547996210421121513484095234509933988516143198854721615670544883685704960494321108737079112704401330282043060429399637813038567907727962140247751549530173053028263820116671966776170931991192485346729468521191989790187362022372576089307168515825178841711904729615131475064459298118518985178273769538227201485985567160928156041671471724580189027165348453372941182126993777176849652005185232410238471070363161845613541758814011978583599141129743922262808040026011685941878459002544678345532743969026542898717735164636995632457780797676944404470665824317951239364844978299310780724291510699410119936954369772064861984972513484300293447157027150456002516418137969266992176206728188983639849647931321325947176520223735678149693645098911387456893393635683312166367002527573318726908529906639931699606475309684957702374893911161694739938669185904349852210079458533049010362499290459979876417651604614945062843177894910350878087949652837389041758822125158612025284153769016026347262808864907437178485363854008276736456058145111570755469249726397115423755367905288147916285886014751383084182078197981768420034590946500345299091144424828399731347270416170063311550822462583427390328323358943970999673685234184151241842761728832468577040587176442254600294331532960019968149525329084360403853727132970300749122798501159010046214508630814978545698585033771858158789001550805596055890291734076407346729466083416393759271151390652308674885158254775393419305892567975883545110556264861434879131795000514820790579298627889811455836419500772777309597228688922739298112961277041758246156247774141356263942600949812777621307202756033827587968802810827146275789895295278145032748251376909005392123657861472015977500748905841721312978299880556919973854259242422148884083367089978791804625036541105610553691874110271801832378213058130981983455505291962575933691481302642573397171427002179040918539050931338894202504209770575831677690296992200563025962464990303188021753637420235361032869899288801472845729229599537291584349996330304586995099500270356161778445891522214287030841336837174198138645537629441150149888658534822543919306158218097214551322739590560810893904890387770320541851313350107895957217977264468938486005113952192052322906583231133229798679548064558364753847442825050385035951009075245548021832820767440671919180473930885866097115590686139308046791794642437464546415534766052367773062322729266811287619455410781690277322175216162059493558050627229955334257212808992441287248217215053056014086128744398542286988184714768310661101703055573122640670055002865979372273964721578629385214100643568596759340380789108972319116881013041010873686033755736916618062107321959493724678902639553735109142519933397927646446407054894700275852535431091091227421549064697284314840708974734949212652721292369139379018534989917981545967439888677482660946962464262679112633462635244415240715432860387766826580250784347183575758569397726470114337044249802883949965643080077363737320130409501162777085396536327814442615291923005353125369673285727005476146734362983095488023302970276410724862770599944541747656432987322657120882348448118818257279108521890193314511559440753082554792913102348287975371747206654754089412773691563771882358154812769156005934090934059664100479240885667973486549824315715755316933592440337327522139749289556403574224727800053521335737393736177800373269781257957169350045604081964574117957065831103913654719814512691330141885854587032454699598082315767434753325570908264242926674333198278828417317003455366855568909632178192125478579287427306762497273124906753004872848344043059222386953134063785062514877307058517013973357442065290968554683256788179483806229175962438134509439901695391118189317927956938277300243507677152968379316022228998667977709453215336870264461280324209778168823983835010214827399079292723481131366035074656934586988064413928534778534489280742692577561000015104001286344028221399917947986980279591636602687905229076081729825992178738970194406928632905378004117801673862289364423633233263964564908135391089850940315298470516378184135339584648807050814167098133779704211566474262592107758275234153108299344583032121252138355331732467818996231715590333041161615009680372049598814242639261498290545986698130084884330198828729698548281091338091843504587848343163544951457639749085085319731816015676651526878716100324881670593066956556423098941679016901479851934558356774412219061870507825396543792087027663538303974471401400993227139676883165928385012601076116245744874909003274443647988435605453936026276942381204779801497900448786588423375938567491780021732290299889135035458278490683504075306821713133109096651169913411784340577549053071404736660062845784998156827739396266511539963930784773098243503723256017225090765372340378623461270287468302354499661663989118421161135630265044198349865567023989880202408962710324870155917242878383828142740998540266966240272509882416517026402479073334943564697322859785916823737299475842566342782677743047965162122858235973208716983833986104043704891343071827913365341259828107247697212435286968198817364635377523353688136658484849287675338211573806406031420874714321936710776008268458130529078316285330490122288191613141704383799515131660190747981152152499473915403598324128164110301265563234391585928877305215985978701987488613878810165519723655636707793584037668821863932093518629320352387248448998605032747853739208593829471340671444039884470148322365198459445262403443267022522481944607284313435195578469676088883809567293318332779381409366316791160919379667305983374104037014896141326559796373035738665583390073283259379217794393913622057898109978865804773360220435125794124607594862822833781360540848281332337638641421777083432310779884928260358073139181648153128656307152893806190771180314067672630193664384398880728372995988600285090776231128707570402326491076140259958208578757794360758831184809300266792551611537845885608012900852556105168773233907488975645631142971274104157737740655273067593334959692925495836506654946624005287458927427410242847708294639419243018417984577509910446948321795974090066464999473997555809328292378844602997538151975909502041581156169213125968125078364313318925019693379875096583884874032802024008256131226010493988455708940513297133959984186077217417730191830076625879292347125179609165839489135275814842944493354395225483250904719124777438102782304587161467107911931334141870865340263472283374748472409628758117597508098113767077737477611704577798022115355884101595016249872261749668503262053537012998257048169907257324782151699210556904821006612965224255989032456847405565120280957360532296651260865454609491746873818462053213611334984018617415858147615794385173166114166285687935629987034187134804255177980992771888894562766487340207675093520315723817790257459356694482387075239000392337093142549871741818392969679571540577966143735716545163367233236779222160752807089830164841703424126100291660124211466830281134238985973838355585975878764501847101245285604815188265972594456121540120282015714672084727686260493151999577002024121837309270858540411190222794450453304156891125149994135460135050318267935383767820036124491025671663227977194248975050747982776879911892611308809451220558229572605036717743421288933068569039535804511654532181796762701741352497691131741554283519853414732658539250206941941189486006676483966468433598963856951760453551658531709319683255106783666042140148366452262600221681371763279240316317236580348628735502587934374318283535286594296108233201421096876130924289417963664101867144944750459456449082176989145119173189780399776487187932112375333706125888474869775881706525902001431350660371477484320270642509410351460147090909219467959427437292224607309640550573811822605896127811788284885152181900592850438041118784002296184313795327910783277504461599721143630784657246708123562287266134686727066136285576502448309399164755746082067539102156287516751616306180029671254755492085572185924037158406237692584999035332184930678529127096979756429752400018786424939952060947041303140136843512134211617177631967878198639529299035979437544871590255784522223351157054441886319310960969460886329913986304219736675182094314930493101778478609195987167541556877306077042539465396444322875604387757110662119635644006706761452215520327716117469940675092851458216675175333142061903898913063173218246817825533932519650545262545037894479519654892548990797957180717474140694834709432144197167297966541788382609241113704954216669145082700797154672489061582563100962656598390351285626691617837987966922116598334046390358305278360192747343493280498968586847952927919857248391934968381312006139634196348044150770952624418775188391895211349020122600440781627656918854506141353426709633872636401064056095991283791825596110764265667561197838425782727153956833522837662953940974386572795511390782486787284102337355723832008492461509615538272623148681967679343665063865149054671954706651078459577845887322156594560442154275717791770098164157083485410509155730463400946825664215804560514887287835485418011240081441038380222428599481842813626987655527537353552468394159716746223275218658636695812865669154990722495639317288576653742512417065096199349508095517801756072162270553144888184141761907584167521221073703753845280681518319612562091494483038386481068859334636384985457640437559687951267021733479395597896425720652100172842107686547408951953282720567596470356004131444222681477987257237584891722247461164292986516547162735307280705988160826190448415431314055492879726999797134418488443679934065603972814164314137447158871241609593069744712515801011366206788016026342641930475734956742443245759989158278496627936467087298234603533552870722127598820631717950390661824414051442662874974278915630913780531165826706442317439642975999775634825764521989393279205336776263662881829601918525408415593082682836969376749652021626644969786398597006125623389250636507602067451969602746570300077536270188293237487252263834399976125818609395190355881558119217833577538576574806373992068088478309986424247852139328802083272838140189072310953696908326931035764883742075934024738340172898664737240595746079538884308371664619796239285813287454579811356639468922504449635797751968437539175458739297844802679109406028565223403322688236311233978983771595795811944499288796224828540172164037677520789905804910507841235507631632962571546412472063291589296969867542013601722965261132515135489620948763880361154592611836953917064837481181559643644034942488712887172677033307465394163241521858269337837608378915475596804135816281062188573732445785383502897425748379112852625754655916051042119290707383499539403037799136797621193280723629885042676279355006175046068337843341468879463171405094403932440126914720865271259180426029173418899737313846556681254948396408881935973343991981145944790511331256299141253740650713955158321897973069070179926772312043078749162674242711240083858024497053215339966136544885081453458732955944786386649953497336707979497711532738325590523897445291845576990793133069677452333750996812214439844394275884797164164349371456776025541197764949107423563591058790868054812363490051453857809441076167156575624587607175348892467877744747920917853130520226328854828728530101859161905015939096400109559175637371552071731197663348723451611782141575062139037743345022540114339458973657870436798622992160426600336830087270892445298581093370273647735463039191326876875479599320255151817421377408735073897361576373259825638869073010742503942239462252210288473927367441996809011270459110282915491715310701611016019106036196218523245477870838553284619038219005802366867062481634705104860249708866342835867934793029034259033251270881037836105973984821573962459911603908805954614348588644770183961168598664041447290063632578136709277409648637381453024356324798349338325750729633303680277788205527399871706552647545209752967686575753965019516463797982382098986446707571602170018273940524218541685084383004002539931520208781097117441300725894241398297244907848840920574899499342680649575689200330105224445363570346605156994666965575758954846352479091407573907936820089630693484073829454519893742680936368782387020244560590441659309833433596124792421081875134494063490510715501209288290790518118904723408398352643487049778782328481120742815445328186617609483383082666511771374664667150740607315047957211312032318472647714488576397016609747075852547563610106244977135955681913617786388313054109998633497135847598806366295009909233099005491359980003127774740468624639919060255371896844398837573366337389553361569886207969602523748005583231708920812867541820593607104764141366604411097201124534622205108595603205525301435259753911494383280581090739508104254028371546868725285681302535160358536616733784365773402381926843114689559159876902784537349380712506645769118550674450918300933393607890871932838063643614197329053543728838376470566043919358538984115583455907783856409998091345792491385614492951476124760513684037371343746205675517610262040839650445671103658841581320961298548294056883558633946533447078557392478500268693675995479174206798047733865689486307868186126930562949529772554809482356073528698399018933371744179998927924654995851625143490796143574996975887243832021941200531483204183392782695201642099458386252110329372207929780473359284496941046326541022321548488453439643964717233649599805191018686993811836394689540301958944128268961011238273636087688805998462886691016260217591590680202117003325207424107983512470819734282153864308103584992522430083779254058172294769776467070267050622991453311168291458992355776833420130052838032985126392053657753634284442737703714884400594842790223774438867528578761389339601218306419634884287624508466290646202542958558429199322474604352644530923765372363137321244803739680433456799541395274140550154787685189602425356746250351689779955528719829790432485153815524562025857513732544582082017413923111154446668997816238406100667006325911319901520551514181398940478966391863680195591426881429186393653780854334285302473119801921481609054837852992082323298127911876963662561105986130889380399499352381422311287897292545091098793173014064188032251001115590946022024093676370149248249830955532394532981025724008759115892111705346242849262711619775936652740034377840317479629456504414269127006164311639211766705413279246363746889625042949717820719488709420268324186662200687405655345504085961722158577748093276512834097541084474077828911222217542364854718411328857590458710981316201346261834863850990789824171930688614024903459841174191804481080134244163635093149977433666213492018258202790126400618324856450497082722484499773653835474247077611195280784197066890614618821348316309594746787111071964392326513929562182609615696263906654100630605600173765056918622487203681285098141717764144470490888436907336907649645642472059216696385249753329803018075180689359624252856841703798557066804761070082008101041507184533258783762792316205243603820742898015227249816501739543448034161405353457140688055147054197317483031402832117332441995136504828467127146128913308195078530871463264845160573243884644235610216271498789320435471469743297998847029192213953490026815782821074011738759914667838122243396978254571711080078922656428785187817114298516556028284470148193920374926879929622513878645914443620291830709241045913767837141341178610295791872913295104566148470574954210821811916381749189792061881898021959476764930678045733939335071424886869164543223963506106301276418169771414444389348775086921532265942865618753665377257261248690436442842486614055301971727251219923336992653581033240952885146801639392042678790320851079059547913976867860665257950081983836836377173877250364372654735553339183117264880552350833260347525078299075736340279690316145645585104352116793295604856590283878402276168343479195423509072841456678285588819586935279687742346082261141255208237836598490388531606817033676815284617631207587252590461312732016561538338439478090208633711633496100358790552193568564573892942178915713090897950005675006567027484160816439776665254341749259176689456389050057480423954893239014111760048285299452634347399462522308647222212996471677241748933222447937922291979086914731389285809492228337272724407665474745478565078117322514705447313448620407823401909602153721573276898648811912112999809484084832551602061873592614484562856132048754828308598926115597183853228262445733197093325443332254735431102169041830887899504280945647519369352929381787516372388823281309464043733437458797954066835620090949745290446074517841783264816313400221142241226224018336693549642848890673173779741432171676317031048488648710785872175683587468581184654714836491043879280592292169332569882055122755890080291720947184053870849330456085070779202517989975652089389688016746429915432785271844369392321490861189379605686761084156673458649749325946531502739545284941286018011228513827950821769230455524462484368771283690858684420333562651097960083015144804321247630908746409036227187449837006120822712863728806783722076661566151075203781225985746758148902281460863585219182260375463720588168965666252329398747669155933888305670039152059755574281938923137018589563579873534359121535367860756608883559865297128029562047470520447762327891882011505915202263925264429224997821024807838264150678939320889011849135504229133023203692582421518258723181148008255645157556611625686393349750284251670338064487591184227426287821790311920871330469005135899059403050725155262803811494378455361172144791244895768472662823439787490246496782640985042324827423116435838084770708716835329351184473057179395371725391231868686165282501352388807675455067186400889251084164652612737964934966150395649501897907430307655581100556421605648672995767547337365866522935838116667526036181212593736384870302209138681917896221271261984821956879040517826604752573372200256679978069406410549258567390929987430059582442672954499508586630608528570896397981099111111071506754960306077514405412298548170096790816331469047703271579089563700382290600212971253039301971162062393856786987425282527474090990535577032875525720645651360375794027385647029901069020985523099229727317192189695365588572119920664500964739378689144505771744728967432637306502794032910947720182404368044092458254754283752500352157958900408309433109242136259522096182745576109807889968943040932216478408594334206215268648105852128065361832247660172500597462002497630338089522670962183922964555479209029342109748752025094765470668790772937433994522813670283186837507830876730521462393261288606102233113567732568091849993798295347388185206508005658518521889985385740792198318385368379814046251986760832024552369698226259776448995202389475150485942740879515278434227257472168714738848445452402151404230168896884823644148546207548701738667645942615582403275806657186331287704050065678114151298175631631049151294473015877215243914107431059764221321608730791684128279170096556867701867706739292549759546765898449577601439058933829497997049394732028956731356504176328843153124872661874154883734051861927341417383311185180535587935928427879313197581682517357501316128704865206557681892245950069919701550959680912397635156709282245955467537560449798419714099722850116901239240940864702098216350877235180155582227417280214356296664093946160058822118784251393945008460474676320505671172647248040123818315662282085065384539129585940660225222920775370049887359426330351932250716484440103485727395291167720892854688495861293461361300627670781002533558851530595751343360639926463061103309624990399602500836355808081436567668720926001981011215337701488097852747602678949017241065472034637057606066872781989973052722136617771604368772905571735179972206913390490245908430396466603616554054827605141150725852740701404335893644430538483894523841424568432571984938133142030429483608851103787563124426692838238361983477526960080520833480601947228605817228137544902573970565268477670211124444424689735796136962372802453267473772110233480851546017076390138366536201901286102409797154369868157840329118314387822411918595603952351224462425819590635541878934720328580169871377428796140640020281547250728641444951282036029547752854867318228024754096913833166786894223242193293593422831742489381715979430938018727510946539142944740729413468495496579771753954207479370227733189475695243854796555212519448490370345887850337439569726890717863808828357654469415587027204100276986282511908140166728383321385402782592106075379395149817402924504768088845561011574660015352995176931661203477561514363176362918517720311064969351074978039271936587773871698860460723238095487121338753677296536522779397603970866782781066299932039490787418209200758102015208169700818463750210587055214449969438551323268400057223248621330928225355200778583513543743746651679075909408481244975474029940396037480946147214498083148372219641863636553823928820012418354575244549601723956405555602368249512943611943488589955248160149435354222157749854550382750853516262042497770079649436953646655850333447416553380407460165813142535179386309152674119727580867273678331377355607709603283985675906181968062806472793548932567946897363493919369156698108828499359917958571284757303774419291036949081863329585662610281706617560193393603596491923417946964530804276361275579846530313149652969798535482550490141251551554257906020401502635652020106043243554347412620813228911817725542479555120881730274317806754893465670151601646144719793234651871948556614713210401506686888384917009230856856940350353286831700417324976670475630305938790274113030471195083454957454942499811163596523513821706826644036089852132561808307182604864233182506177020489742481722128529765325371551667982580293447466798652834842638462220428633141927107291715365981675418646669728725411487983037146878896268695376225514511180226623765976525955321525274225125740095221030000108539628667083709231933830355302265950023747402321866555023398623804363652205112441988980976354936670581465207103963510844753490572511380697996109606934356299358350348488864847264648489266189975442019958884386069449164831829567098702082959674620743867751786029700224566244230091004915062164169047104021386074887706850060797226786692022364856620694718614751659910039918944658722666572434440645302919013799753309306091600888945506399457080865098302850053764375615068438238624875033675109057005813066151452173162670976287354286182234240271333508747185536524820664824395245891630411744975099121689818425862873772247370435144376703109803834034594180821013684577880062663975956555445691688555023534382954178294050969620097746108586359917804010275205668605518905465295042521792181651913918819028234233866564464442491796883911710732998556931297398297636997629567171631168133541716902640145220743587898229668692529513621791747888549080938375263889723002855264885128970257474230990643723500840245146854462355031691708356132536143464382946191948037913402744829882052455498187520477471595403414775734386179224859941313667931271533745726162198349098499892824589807679095333774814096923576377536570070134755253171261094598451561549874393347149480487293655809810234145838864886976001093685179807852200163015965623177560957210987559348470325695235196247917213005858002322770074657284617224316803384328227582590732016871240909996084812104883982292832589332682895648816068940184108952500900190426441288234304318214170569582477116013339652101784475846968831597332796817430366911074536950206858055576205292209698644768408452562245245117912623122796497196869718191663950860246240948005852372191285112979278827699570856846228401813375634729948155758413791446661243585312928573113699864418781760276340989384605095472292988753164113484905889247472614194591461844021550424451284028965586970309382463160289011101634778032096846647470095088865472610015016334446249606287832350011601767273399280535739229893926401910204067812048313105255894425032816408433966634928187452077394174495284952854985306708337890049078760353675773013437958141441966608657155328224975433488882190379017396876245181669818717442574241849645790995267116452572229241566509672855942322005976743177189481692153426116421821842318334758065730523078323557255401921463122442802115693961311888218720097540853634165375483075724215910607522048728651664313417773775864578323205996141666940404428393428172201685133198821265128616268272415840842694426105347898449995008412623552459275738868205533823777932517085548199875343656216353703797378957789732406832708261750496230702813248277992900066247088025570070647098099490148089009899352054802772231959572567576430691537611280561668842039241303461867550763021466733657266426220606227179433574235752825396005805231818633165806720573287378816116924275787387979088729479113738796263860975019306793148693322459759010895464467540910481783152287428270895178298822007833154354127799432615121686685898699954532853109405005865269917046683410909457599386583999069731901895892652256361884643324659115462560041933375308125921001396252807471173929649912010413592478227851465875250959955471657880740996275101941208591112044378104534662421757458721110651102068759832611058502278712825044062587566117609693449303594697471438955281867938547455371444738657546561659420910725066331705464183380039621589155765728650427500880381241100019367105065496254687655121657522725172774729793407988940992576413112269986014047499218795551679790437086593689434835742056373166989387384719419071116621318641458014620579541682905278094332457002547495485922851780693749756859803800722125434860560905509618050532977286033888391314225796070774152130868572788519349606565694081309530148963744503832607663446430769645378794567727453181894222419699272851100006841720310429684671462347931135675628367595444384796306645002195066006359470830370517060768148259978664237154157307847058237235579231471755532738238305094030490316968308609242675690497274219611503957865200474445990567234079302004222223276863310064733110021709336947046981567541838945466388170701079163239587576157796200843123908952228128797545433582285618919814989533406984309078103682629766776036333022155652945678794234274513463012385908670207123494806883263761574782562617774703067128417548659679208150761121733332296752146677445858395817011461514977329248091878810696093362129979772531851324791613994063257184763879469701843428243424749177943696246027815581181213565805156105461123150591580727650353154511191499101908080030174681830156821516268836429393803465091626541333802673997880461956436203698998278343825980205299135263160429347274591924361838305065159168061142690589310593817996717713576048956090465548085754214960210133052067464195596891110363483931284358299796465207452621428663226257043879219967826702257990461916660040300277318449279127600441438894938982823348314256897422613746130318229610506927783631651455015072044842577079648852015150942703229519644174671685622852654246209348345456065759560651583356406109234711704535588634563328171142176772139366780122358581728499921631730375550387464896935974540387644474419633401560324771101292713347500404949926320326909187429268738976692319470556614572844566465687268600511540063587557925189680711103166575411324985584216921172334220829570986335015910949481247344384894196989827378217346363109439582742515986482278860132674445997963968442037086840354154315775992558194032012615300089980971482874358731247249017556898965029358957915241138524536574045563053907492225183051753922938049365361203542241732183421531485072097821207867464501806653183906598649620774714381503754819502798736891977756912119896235475811387411580781256674018904287476153173538809407976128983762188707596352620927840757569451533191299778015368888603810682240898736875279823890120081287540279226761050073816339759684986404990011452508865458654606059346804033237480937193896866531438204534225131180766605732449798894422017048360180019805928788982361541616760600799471622988000381523052533903979207014810127423046161888527551330439101578736731316681296659947782648246266547327807234812503553610200011272602577570845222409491693934731990047562666301964874628469268808703283315837368542117251487831105277867420279897705496468572443794486155591518364678352190716331787595562747414521593558600032033707308790902366240683320423712797474869358041655626795085882921785545924715994922422781516265095978442468524435902097777685607103444937941543861733630116756861993584124060920879054084722200199216656461795814207225331168131318328334613224295522589233091727241040738349114159205229578985690323855172205055182423221969007422673312009935341446238105504316744328442280683349950099689317412918773162665554605300825377669106912489433239006731029655632213519947201168880962792898021517502684522017530240646026389213266344591694901938044145904500908844273285166056360601168320954438441709227311547541374003828075805382558264028626387480346276144361379183092978979568124319180814126140139915658551937423180088922267895913720364114612828346142469358710587119815874722526304562984373838993060302981870191808825183756806848181688793001746852508653633809954254085559396751832440220980264259186950896646116720360042990215602096941943053140246863302917268161761272944382843264350280112416287171145494517375018121491162478794541441045148360491301812851455220399082098725499234707365378400305769675101538988435428313936399258205719744490687251862399146550841656476149221739446652616275398228669950847057387485104953338705769292859722247374085868534894996627500850477759533430386799924270313865187698844631539989247459889119619667079428901071434488842996216286050225873435003381225974974395217667909251528903486682912313705004169094442402164223852981077179877735778650206192291487527416707887801948986889235340146757877674604161142415765786579159762179601257615792037875643916672952537459364780090606178008841296834235671721257759687786390245641400367456298960784244966371193373380104433657955989994863319599491953597862747848093885696034151995104970479036861631906457620765272032967023805272079260327890286533711960238403592938895527285284989512041440878676753173522810542069349790966517310313333893981489214429343531125869228729479045019593697968886778840130330732447802802260087922131348635235910525283087710704952877250922966250900299935339691140174829406037456415785774885423744422040040300701919748954056387176184073696414526922862122303252920364780781532851834501716181016922083664465403453292687345143025098422244589666011126214186716578554721877733822672419299258405098779037120473559886525450467568798261210645584722585048239305412023381587142636996129770244643349547058211019539201672099936806763453787178077216454843316950675062588139558192485919454904538439776342884932580259075437699851436354629260120453320876658373841287967425851687485039645360516302284973553658542990102855927654259341612421328709271905861617599781989056953141026732873949818980535371904110589724211337776408434675392607693005362384538908358708516456974825923029098976662942197046500402243142834795066356512403103023877201400950041935780290165806694512198282309352394651276388505986696713723886084136825148917466317186685556593106462557991580516806066011652826277178540423378620603179642819786632101684076597334779363673432356514196031298688603082819477993434073104815197681489844089385051852592646099867916224830483659545869983442484778451408302987460105773299686079604292531376619960418195132733236829795745762013124655532509828925485922965855441798670577175932314864041242520625079061924111455201196428659714439483661894598463469822452602240642652224466332268306525833907260556518994711300124177000923607139192127668745743042304589078786196026787734779176667041084113436135614748088400301398633420381193644158395946978747927214153302858921421746121892668651698826887335212530765086064209344303742566162643238076358499682979845335548651615604319348322269065751585245879795740655637200135117269793947891514450358862702983169381393201238316873029778926697146715330309597359178698852846929751524738986724520338947884848596178294584954920443823405131573350178850041093059114588387566986289351047471372310479920105211145931871111187304323556955848009718058568648339771244882947050867419371995554240849269763256992054116251778426436881553594369271050303725867391218156293500331125946748356345429632391694608429137121480610072649806313381511870683198429873354834356376908432304868702021730184607589201008632189587039199437565604726143058354077362236489497853199350273489479758607162288692391563333534368811091709730398645686839405524813903487646485297278927762553559233508769335159478840750674859079107335066131958391632690508132170915117210968409030332213932002043820651017039201481335382534097476975219627196758180838833158857781798247298126708966326096855069875386574620536394347705047792024407696917415628747477139927768122104033095604169013208037981312639962764708158286315725257736541075249636189062003772079721959560473233289002166328263974656384815543856357777354591414470477995970116169768125738319095982367842667888383051201887374130004098015705208265698797835057685239431200426217407195152633968140777994174317909256203866227801142454705716446425929739097501811304074404722853471618680824188820070613743550986629488195772602628259469277406283313064070748169926193028257957778854687968640518238841437111520911939970354916549919395611727743638497332861010323223661460292433907960144676467484702824815553955360251788878347301391244647596986561180169535690091870780013123721089260741845306111595370341653236267319795866031462188034306959951329125493908913156556323114600013582032247771084963042059744190048486195009083533574409436824348480818038498862263583478192761221334662994711417653762369127573013971051188473441541531469886807227154625038608918093946478878601673647696415173739786531964026738940017977342733475533872995631868196695754391546020189148914684815663696807018381204292453750973899808296453733893354319796219157838154401407457887149077181848671298727773167744265068923798269589860876751076798664553913214606265205503537040239044213654243390864978802718892136067364060335269404400540065040810105299619227337315364323790265664999842256983488945616892349856188871711087651328958431012978501569814111368180499059580574645414306038418158614910664746331210799621889370966868443059437380240526394769756878634259007414941998186596801355001991029939665292810294286636594490579734713847880274735304314704221596620045451113145627457086752086708380444015562034994868485485891723031595207755812480732203917400636095925322635727856122558886329932555282834199184879497757135868911237306917701810709023770379687878826714317394019684277736213939254847195809279950883689084079710719342930933016560878243343391823672776513519906191280573876902047884989404858863895257356059717925609831462111558023824399593293418910956390717299497901665887991368900669971140103549286033436530896305942355327568390553040545289092140231173621879285794294165833714035661586859951789748290092167379260521416094710138419111015880602741280453311206675951341781185541351728582342587894776500262411006958820599788627569725506144284350777035287877901096278926623030680379604135784542446796181174276417731317818429989098360010522069247039835622406922159939830038131094171862675397070039954390873901510065007790040184064721948345109549423905926438648993418908755827102095579234784886542214992959770905442297795263111156597057967363251905328717956362207288851490022321585990693228778645690874457839569160148059216906266999279373642337259591994082047585370659081811775496954105701705491711142961671622549427671020701918927201936858720565873427884497655906803737082859821343933717091350123461917480367519219607738740873584314882305804395597805753531309892109144717181945401463718622236642524898913951890629881882587043354367044930724343035535298925876024035673711758657001679408075916999439145558743545264044116393254997135831009202071996074500440915356614126511061777459174159163198440411279305060815671551618440028702699135745448626976782036600370194323224682289710571526796326095931919248225359112720968218040218339901341019117781664902943330026861972753277893217096925894554929739312988946807436810351824924987832277009083351510544361087481913358880977738840980431200676143700621606319631857287950058083403235663169827442622682994089936331303645490389714678582177657961318033271849610621324353703217116992585691434305238294820197687430363134838248082001586834911858971469064284179336500388268631963457308064200197206172749180244042599518763307681554269994514122778135104381483149219405698471410293962190363430953192697102136402231219679483056639937744976141001236253069119665123742145041977797790775109049403406384174468712943984621716463221145268314892090306142070947911804262842738398046736399533431461116622261811314595382118432093481282267307428708353384990382426103369785517020763308825838696733373900389545389904641525056278436299814203821912254410691089586424138632390894265079670693173202106820567161046314928957813639417131280769664701201674574990542079790603786003145102945569211665647698492358791210144550671165731551009371568416348108615598379916023953927849704243505899124139548649045639841945396422270098285141017394730188297617735189455105294108322729497274687973826783258966545908022759074883113706840444418659712129386869848248311965333893917058811187613728314084094871330724243068489229787782764633686850484680545810908678629994334314827358682610794000574843908624136854795786235690008287204228997582596595993683058421561699289924145444677129709561689313462872784890827987359069444054102312899086862782398184306042542954760804318230482088335263634683263912417293086326782145264117817051689600960450267844157425180301151300593985979806606096096297785926339680433195606270458339759104341388670959347750763279254390198039547390079578076457123106578153106580427032825543672429443915808594787754241074432416977263662666923277416989948338147843039533444874206147668922169669840906437714125333068277601731781563730599439275521828222683301650740725482440015930633045069830948568539057243358497416954226860582922836554507337251873259512040771876873121259386577618531774471966450701119769370329966192368867506767770088003971615017678674462311373218878266379436543455627093795690386333609846119197380134321325267335205289176045572784839333677886612838147069780155491993809879327179954369713936218341239030847647177701974662456336661288149930415404927021482152453759206604006497170049139831675484094803184459913403473911654617461481475090775421174632809984741118979272881827889887363316553151525395976038503465136520628412803894284327884403089017639771401187316629194705293747457415869876627206936355647020016189578232314872432587657531978839248940314890833250658249791205260265067701776900459687983892083209019661716553773294181664002824763263672253923162065156428772725764684242109845938938892478284923634620089760162968328007296736955940601371198041338755863248139633753741547146180777542550790416698118173512038818654179705919872533025202951719114023206253995296816874927266489518147153893408445520457654054385936021102694752070382021019193367268688570815519439432981121740780360781418656614580131839555305334696293683542415862599063163711556539769515389326132887347962101984107473215890642050189424905565499579622473501351436059101314201168469490676189454499016156267490284448748745109559682071944394610020298230854071286260783197469805578198720419249150519183375125170939217824590482968635607068180239588511424787218850510804834249206872799816084017185243634574206205041002095457740805927296793741874139465357162748310516231289814855150791051643993655638750829444074949849692219011991431600426021390835256943922003802788741437669770733532396643084071785692148016549374183382809594625951539867376737039178154182372110335349012609393652648982743804781554142149619712058071150818420583049266351512344787704530711699604098106047334381979728345896477013002423056630288408368568579324196173273034627130370014494577454053794801989238898342232620280201710909621993776033456785977930225038334927688422327249848559334694779051662454450247125265554673758479949115237455598220123877644550452718458060172884337304869726029109110967417429519355196546781346855846529095472379792311158253094363172287897410202957800792397772126305593526684562465007457509309810988866847973263800909748565401217441895422920354144525547208243359688813304122344066303515555862148868276819017686557843269615678061824027417899672957199162603224088483401932894319028908891317771209235655913747347754359458888997337043614250888932213442482062916242784828233253168523520899726826760191209699207706999161193518397821549103016545101574369153828822651551419994864967280870268311608778708975519451814458944889796306716228372307973073054037707605126254346083800278781064509597046655534032404408049783340297595160325045179644294611169850447910603131618136734787265867061929756764428889072738310291110135832074342185305254630790353562297727715914121582229967023778896861054805573496188331809393336689566855159415433919326695607296495568259364110642146316925895247083583702221801422654655588205496820903819873730542849694968962698523143595663771820891722234474314871209649440343923819473462628123080927716122790549077435358076299882038522438501961374774531911740765233597697386429324093152324290084113012249336056695555958766749829076467587355811669841423489066508373986964398286265767112997357701132549021167431022766378497670915212214190486048025530261665983029923957703937294864205006341086978885701884241609331717924638050054781428063866971884669662967792118401333512637167354127695351376851474301850805866402827576726926678761710862960646862445431395555004222691735876315395760264468835660603672032144150410775984096651308406164436062598523659963142376267328065980699476835357680877209075518794724207758082704313698889494085717760434333999633508854065504533262719797088801245902595388954662733701995169951530657992800950279279993710469864605988247363916777289033839803148306611124054843645814530848421249525582384518498070548501688580375528447319163149632810539633386824485849442593189818216162617399481077650586162549032306873200342152760911190616606523264377520081102336898869676121203879081861591063229995935684119658364445141296553589045094094556059701037036039949406587908604981080732502855317331000115407801976730433417110584932413420704641963680914910549509926828657643378189999201284807941370488007315403136388520920754860832750501619445934001936617848655096198882304985205711798607273722765042951152378152557775596687135346425193429276371260351787835822117775602718304917310318835819602332043056562752007286213938322370514988271336798894364761166141344849384418174680600181609854967895166484683107693690984950103860502806306868483522178412414856613075132472132292309825365400470637003453729687454047083849406564783815212572021408118072280936859007285624465709488911630793313644634690531775776987461717402387750006883524723155366118472627633158620090888992176019846813961439858225739786524565340598967907473644288264633606488403251119020461292157710108732322661508346821805437247376325977083180307449960514613057150885525158846506467360366743533792903917153536002528810905581272308539665007274965262722936442396854210712411501235994063316835414988325718429762387582063335897383716068479016629714928671170087587111833059693029862394469820310706285024215267684501985543032782243526524628172573458873989012848050592183425906006254925790085784067525515376105727131464083941013005463752857502469796202968494358699567911269331957671532444736714843875568343047797950395443758174644569528226880346153330425922982683987060479134554721012285678091506937611585614572323171632790673204130530336231092500320428790062178535427824383677949701394812148298728375194953556807870242862332602062782347404650283331972407350593625958632704194119642132126177764717884952602778900691513650625127944173867574427868003997904132046924486714776421779242281803377795808016940490873405219078926871858548933087820120565397118523136679734067656284173399494792451382780246613285281279973015000360405152533134646376095011161142175296858237282247367102881283168153598918775314372021742282274716662756182474484290477809416489277986786607877157490655248437256464369380223187066855047212076253764151990986036643253562168552632019264082814653933828945846297915790310313732304084321400772332889672373619273890460205862450909513705617075235341744789787632733949516711725098595769469421299383330891480425695164650617141296556480229209623070048521011319078117274535219896532868780697859838340097497284422911158726940258009673370532465305110728007089881085647532124653464118636095317436041848532134439616919173551675245404896666563580649149429254328003266282019512452170438106477034173232175070893234284424882511506353305834951991138595680900748921876628088976427493439734114694318175349564100627502250407034663994036149021894689662210398608009129541432438633955152408736418470684995188151548266134030288156661814057065248065487429868117372415534593023861265872997932236088076092082274550203410894471590843726285024571962534583111095398481949903815166414538691009629493954048630911051279511284134312980319690512177751446016470495945178097607278670186007773302994046572653174581750363002048595299458979858164997550060440769611377225297416437583238516970818103277446166067148362608454568695438177714278453548095294912702114085710357438640093603713246075358386398588738433211343351717226487274152269694860656991468341132205910724301761175153598313406244356891929685643646124060665606712876451250426049935385554394905576487121724317681006803138584760935495250742255415286955514074344994025119650317046837896954978993415350972763462184012901048581447023463860260436421468941005509877202519129847962103901890108644817881437101500686004721584105014413096588496920140572414549245702939730186876693014640807483173283845716970068270835476996934338871142274788517722802557577327111828088288608044800231127900991787809132892826039838921437096436826393337606806934844426521176956228844824695993616134100956063851338866062546042551842082951884082883943709918894029689537234602207090040502438516798439859499465108086116099147308324856607587375125862358674163421650164325680728529965411764512779751711215010519753311558721966467819935406700660735382982842645713222185158727520874962346402751652913381902184018774782015353456911978106591150066415569624151073086322348828578870229521153285496049281684727939171577961416944034790899856631286487531762909967429512062444870665824876220366488087783804658421709443988948181903492361980298220929287766364696372482598109363741202242327571023541527003540462771340960209735251694617031677437571123589006930501745321352456106658763263337955887848823490221835116546631373355429335908504959680748115728967588308438330732554928355410928020044163558788416074144489314912009301621769617366549180862785253611613594795237780583637189285222490763090378456690784586665834672943431520054168844385191395045325754358369580336243294769168540359091201557341942068216767178108244273483601546307842909494984654050338310583308278658770278222311580715453525055095818789327308381879011107450213273763895882619487633373812611048849813644467091166876935343796947173504486091734884863383824144078873543529505369189792545144018183614180069824321818065398190839490922017569996784124349107685493119661005296249872913707823184112903179795202588647515711741199975127998531246551485352201893453467891108707953896043648309918219203111482195492968981826422228412342228861827942008202524363783637128266798973050759537236851082494934390918923091044277101287181049151536521418444808906504382324012313943663076853357533394206675047071913548579151550602453633989372239368993066912727087278025631800188090551093876714650189606722962391002514755477742794783636934555750311786323489176308980743139155987574808482509787651141689132227614343082337223442500569576165293553176205675653439284782923007180955260494771644877507202196946221879411762147393321750007193311284822119131349446731289866309020816025756583855967569089046348995440834404915428403200820294776663168312447490458611762240794408021586128886920787865423880290232406548736504591252212847110752064707797402805436736003219151439132290333585728892917348188670489858057523830027447385619996888932151565422309956566235620101273731773407778323517330306939065023970922941571775280071368673549581609541267315965565140813826624723894135177487180469457731624393885707559936054387851722301220274241465092486416016784109412183610988036212868772867450018942797741537116527164548951029575816097338868056556031620104063221309682779815043286112250259341462128090647419619193736066936211700229607068991863722008547890030944132296975127426033527608361702211407412718470050010111334459550211955726952569915714309574911117585090962689567282351706050014083760690393663834401019415332954033813791563343257620109551848821719872704608235944479011476850244118354382596531476054921272438186772115430352784619689636718859784917398243546730623795357331111843180359648437006907221723410155090260757860270113686144338646561556445889563487378459803562809266978918266174761200426352360796454582151448984744599115784781034941819310757191613157673504727845823619961462184896702263255745514385152116378365825360749892479975390860619447376555892924883205061879422373990725632718494163232612956767783776240042549550999492487154037678961307932705104983294394844618008311032236479350669470833000952131131962274264298688795773613379952216023348181424454230318107865023480136076851240024188251794489849914125155652412327078250170916777141944805742922967609876852346731676245542931311565943361964803801763457002722097841382962147529619385513843220861971280159173666372842155341001137663318324083615801060743007383530873456291598726208815262906369618267312037845855576982879675946293556421339493057121196886754472004607564166055907408458303904675321173834806747909442419572028845296498647637717505675969805671329995140371275374835979472487571367480514179487533568914943217395046105000263582086304975040452169969018775649078831094033391019327047580918446353100159475737659679308123531866224047221957382293681044406510873142197350819618988235500236651887927415203077837246516590860054465141102382834343246391370407181225504928506846700841239811710812119821170105308032729314986730957618329760342429506078316698781548088468184318735958302084292609770143444473186155746166204440368851552652780840657418496900727183392690485968821681441132968684951528296129989979096986556689469092234796462045908357748148831361623176109831264164232593037347351243067316429231941762787294435367619864491434336271423773638920191516389240897389483699125900633549657064299044076547265619014449354597513431174085620224026184420961613060497018084224439780331331739375216066075724733734903985224256475940500642261317462323125939258524628564828532698875890329549968125754236101933753949342875100072042303986064133626864545756432567795532721881712209237772171060661518409198097807289545843759775434545729622783714159674398220883957870679961924867122192881254441058479020962264159491040224644159415021955433860284683518146402472358837193401281149466884673554985258341806879615964680359985281030598098766587107278964267904917681074128766597334562550761611289617194388118746043378015682196137975397281333622510894872324344763296564761978097464087469193969895641878182650904776782159695822555789612704183456513435740885847120516220121003049678632263825414971508015353967244146056236423445795468584955850652091073167120606287918013774141106005641413345617000469341255100605296055837759066844790194247365425347192035319999483102950547077280808314894719450910883284676602479645106560315698746134193470206134264777637542038571677178356827525798655125968175821955004926550447534922125373398011088688993970595045673784893655742050261445735641071887568085785680988490384862307720351495037379868728924261497112735400210130159621773038336014008512816364922817965560719248769461089892382921244119281583910459314067502491366678658255572351046492794428785669806540265869190800926920778186002967987200797122760125934787120587392377626846122866848636903679706732231818342319733991729010799413503321637021905899892798457850012216183733539621571027867317439845676392084062787044927326746585026198818829359804586095153661743740344039787187523071822643373094021789650611648211845068483505580089184997511574654681769238506159762939778050492285214685053346310470770511977839307457239109876378425131647741322308870778224830944301169311089082267732974415973991513267788357697011837010500984038973297790689851950510193890294510585920694624871150032374600043087704222824280912347657193035434489391791225320445225336432133888066962500907634480879516739257749056478150322766315150688791499333247501179500183198446395848955101519883292369700758972534463606102577072027417296556136250453374605653829060946931192707653858210046337498949074478586679307513672211325973448536755308948066360684985489522166714357795606414145628570752489086441604833084071029310383002650093153180079735650228698624690665903996124873973521852052798324727944935800971660932686136240081218727139538425704130085776862924496027920494849654916129003425584701486138982838721521268329004251032039032888169314079601382871631718542466468776158243620667686888091506014815480349616925586012090452752306284313796507743450243570306713241692438318970905199169300154713402911815754439660607581409406029082951519603454789473248878999379053481849421249447511819139389864707694829645620025646900061890409721822783842150358368795398734583082043471206220088856104416798236859277504942419434740004784931581885570594430584991623990978871937894914677611591841724931218051860120559726831260165515208302520906370299269145772337233160021347884608765996600517433830649628914030881170345657921050878480151199928430919476356073207415445953964093369879271471079007873527610292464200869839403317815547375361884715149824910432221293369273776135457035542809243996554557837107691590713794942158361215543346640655114779118948097955903233655157298670334444817373975867443255312463816264591329457213729028685058092972416299927132042852537183415418888700230275764474228554601689869383547629713742825476539772376129575130329152539006487192599497764793090803829509339160829380004717218585847931323533544571508548143802461263237587115396234256673596981991076554613149250685885423694763629953985943815762716819682445595776624650146620701138386329319702398398634556782160727154587137505126247734407179981292367562870424991954786080282041248079673702767569078734000242616424867401893678107764058212686486020127231104279132559423690365023840713235899255509946922143929031776527954388260393481830100752153849222116485094398950227847012588639519219004897948039112457720965740893208768491732683250318182928319033542279675286892267370081849008315837746776823100821734645328241622135413510567885866656232872366183406279102376075399667153598609205670071707736957784598190235452487509304615419316397058930271889308642914262055660849308949596528164200056811227326817893777263812108191732999726568916610378504895309259755157364848769836984592896663499043386897013601253075540530218323367649631191045091444273539074299863393303905375817918469166757069250791721675161008665516388720354562654006028627672151471930953372598812782946881978736715910175105391557541201910659903350607782301932249743276506783295847728566447966211813863259270020629616477030343721433556249499931684716877420122513584976155290052193705477644643074168361999490242075694120750774100413745219633658557758464373527503376164511945271610935365580498077474895660025947422421205678261701705647446086065600902953147891735783650555425937535865338901789632842903400224179501783335685904502074135792081146514730989610705794507640309599014221296226987403669478668109451485874930643500548333592245840741099530772792180376908961396304917412901196991642965240584912227147988724420219965769278440463381007376957269840651965847362568148582111912226547186890231623559755230304372654138048799999578782970039644515930379583294893215421947953589416555327705117504124377983596155334908007185633491434435422003745672020009727681175244567352368904740958156541419843779618667930154516118451874539752893196969169518977309210952067003417081718368006533614315436782001296390091637711449567336512998965820474132598859375457714820681420573591953516489421292806162205047842588352562547595848823192107861129528037645089771233409301342462513919218373683828751285051982503555808732990243731398583702751220300272260270291907184543441672887301685661155419174450323512091460243528670689726028467356734915345349100242388255366444647326636698275552754099369014745147889023422730771087259073399252151147090537988938995602123629611123283207500682044627486323685270524598418397235523492542791660448115462004425761232650211375188000620045524422427788160585235263879813503866052922406045600827971109225333010790513886072671283902888705186794456185506299096160133795941363068660071083874059704842690220573080517581055767462577964254201755874953241936056713050834590792859748009494510918568440266930710628224084183186280245721556692076815929052591412749342266627123085823639063939638595986990561795912369860498811710100315521582252602244347562151725257683101729428075073007786031407096429506602080884463414923468877329572206801639014960539587667201017881800697111767703040047386474271361070174630883024053829616965689577916427760106503656147377660964779462067692356210285228584737964956247820507178351727426029604341358103239572565102392985302457114837918391212439530316113639731636167343917633528015515128034909298497320554717566130708303355899248140375125877490179671364562602778188583245240811387088744413534313569176641197801967221827745831897931985798693191152417432481390434781530530725533451951687465647348378838748203520342467114826123799099796185639917560989259940262984942468430741733127892176697071739200293046989708492342245046892384238399274229401734375961137024789601819844160680094817605053179103447416666122517583546514659020433439977191795979427963622345610438291994282159349107439866710772635750551139225807772319428005223023448122986847203647309930036803999081964510451119126574677029620678273471224358121463243647324983927967845265177886577317950419428949071012526665502616346665281429112522118975910635426635070282253147022001592330026991689525693902632358256380923670264556829639984645910808798958376605844239004775597895370381090103190481072589159521716316448768379662192792023121310855480074637538637866032142642374201695113653445684548443384680400219618379806589083689289789613233733490374459744706482651477025124798923899361837396759225336955934861965928534870446335175573036078204098641195494847428326372888128636227898481546955476984485103680699529563105235070627707982876714271477433160291825383595256516072791117158613022287583920331216229049288720717468934264781133291543462388409611716057445382401723913238156328654245995900938654100382555372587894441997860212436118466345742460063342520290731730063232663997987540366721436221187441868428600998893891086278497745117932651207626063441275642518934741258412681756089477690760751915118710196153245168039310387730537327644811030152840899948122291661544106818583182425461114653058187577926200131773010376750818253530066869607960384271159897704473552241846110860786857593451681853700220315345176538130514565106661986439358456609164413987954254393694566212749462411974265019936145849273537524351273047107564197944398447989506620400270805952873992086058536053465001801910503272146023924717968661804550704326198713469990037016533961613563504293318180229588000914523939706495659274009499271663857217573074372402592746857272580578685375418388932763771773067943508754084887078197249898109998721170095764981295590973507435134550314195407044298120402173917814385501520894660844467369246582981160560274578295462447880956974041769079650412858503315076506401879415517279905501306505777589233944742242074251232311356537056115869681083923116385633621470864901799634433232144137347767954749629283001821458690837525360675082752663123137954384123306994095155936764925691338706225532249596974313578918984772720105802897007032042272099417144927512507098337988187224876376118426696154022554160458097001427640397454035830662322431021732153774412225079128123155519085602634523146001885958470875236256131202160962325263112529947450642502132599970778904976802086997544689853563716031781467136613833906264918246606920039249563992392087253250258151790080811572051156980921204498813161342803124242169250797401971621592343045509903973776625998701405682798943863106991855660245589730081214954675936720391250127162524641967740809559630918714845850217924318489710112889222153570676422009172884249279028271622387164555930553543458557203795915253191425484665602618659841375992356469541109792053787005718357311664023976485859694984268628242685254371219678856411075385259715021430344628119462973690613413502394628449428037358316682357791875481764545822551223533017470699306226903265308406711359899974283866997993289346469138743552158924825847387585160631121159230147314719528533523934632921896506321843893077391231384225079342706662203078532741186434979878746180077965900676082352468456460395468309508716852478444263399567736273557438798492128608573253272742696492159663690051448858316474637556686573890178542959800579912062875875513682632533773517169596017581875331793341547587410756924960271182040430578298310277750940563111657992991129978040468852258312968991764301328354316296804855921223783369207969463040487337200825607513090202140621555559869132536791220877191369598295016383453281506069016323892495694477007748450680671096094390152996672253207589162562464989324167462783539217006248092543455238835083731496308305958703450195428313447968786398741601936200399896893123107794980669880449577723092697691199500174906202090494860361332827105910559316829854283764049977378901517543399083474677656381228412882892229021104073675479530379000624423548066345250327654818713026488707085750391348672548551129427179981001170118142412940439474257086711991956708141944976491473567519750651256688848164034967669250513447636938663393015672619544756745892654412715290213210930446479619982196092723837595539918349326364907823129543622882355487753189247045939595539444009964544324423862751454031053062794780089035139924005786238168409498920783049284167929042971248926129424865678409162803753311291472481974344944475863232679997115344392232770899617913117169421488836277766485624654440841558261684830711353775340913333302419545498254020825424070638628935284650246589737914834589586784210297515318062055279297808413905706500850024367607136210796638754900937832054598444081981114779909799960813535884825283558327400321928412175778558273358312581860875900585700977667398542934343677539067644271921895845805522986435654329850830155444839266426473082350068553969409904436441512131426292902621255837502505340391125333329583897443701632343287594129407382233287239959038904418463044768315460211539901399655650150713324772395500810311002444054465503567178398137298640516322837212056551376602515811517345843184071787096401924385202962999380055977269689400372488259442236391349116932682084069664377923973128241031110482775544142714792267194336182000847327029802994615721317276421827159209148921627876181782973394491033894539388935343461380932158818338596696183108804970498980435880573870934469140909318132974654684151532599565126047345427145575073672988231866778036659229947190749943141553403196411365563470040467570119479729615763608010390523350638873733705050110966536016293693304584765352059143939775447562390925936602680985311145765622834187530303285968294970087205835499685162734448822394080438788607490135457860260110206530481004141961130797339171495468529001468526887849896288433470386205327421400735623444041020190402414436971802285745606226121684364723583676261351818085873963419382330749117883341121049892137186801284290506271257180917319015043072200056186693581916816365089843288497745504167022468004234850798867992914714775263528071262015938130281481367953125318789991829888882229894712769321927521926040276032529522366931327391559287032638541212638796115927830965630912154462690183908791007989329630392933121760566976060471376323144327614117242911083004354019020904781035820996941341506754833744269575623984698298708696185711503248125543655618924019691110974179226110763531162115583725755100960847204083822495737087004569174803906187200403573214517511900695063105787195357113105686837112664850541841468156778193701197853783872609570563733285304409257593365872173526558764289845000409210787097118377859474757957783852170192107977358241035000431035770225291860398914029354152035869277413964237571532276015141875556308785084473373221739221449268783824350468421641134460903480807400910182083557828848148059718362982895461383028541839752714521108939278902424421328816170318252007581729934308705930832889638001067014092057033933928154745945441143978075896353335080852312324512468710434934841390452899585035307927100454278472388841776940512434055890801108991754579663665880068926355182294996093867884295554558284588628381804906884707813251447998356501917478626989807165982457326710486102360187767898274405760246055474832924262414916254541532710294697537636747485581860624968662365081673198092415705395081232019959580063569346717898287741965942825846272044628439866805418871875713650532703385631702621181942706638940038978928702810990911190148554808865521433321881755434554495404916464360614370370137278598346960866386219214465026844736332452742241487314718032280635015191587300523561146329100985705668042551818406701614265675942944909002095472165255781961160090343611808862524380187972630705092770039521120236634948143485632454713981862890063277561392095695627048940874875678305741941722708799460409259734094552643512916593573094850381035184149959850342190807309051882528930723931266715807458872398519935065315488433676402775147293682096805703312415168828364479205590062007428643619514179290915929007117924545163739437739304468375958829401812318211881187780117813554165289627630568072841112799043072905112498974121856822271159482781638657053981169795189775737871127836178055825010965115708713476696409553228600533980000596849857499886011414293609811539482939921899094550296875411645433386685921212790356735708572972633483047067250923994078870483512319162876597724283353647604351446351683076094942497627471839799910001822756055054008413334472241521781921518512671576577927816780863394804460676054771405446651833368877180560381807791318667667931597094381498497771763513351353277826959699248647796147713638753726520363362648595648292670088181309324835145782598822861467439227037776873796265944325349743603077535705731032109614313375138980190082090819221927771627849295895411919919393770292939610068597191839803742116720310229642948691231133224259196434132005851129602443278210080432965533064958590121441159123883684929749227593724183912349713839450624753199221369829520601443377211293544871470812589383302405234640639610157344181793484587144364774704266227904841097466158727894219109758770076111546274544401956922580788120484038741081891962073248340653425105799028180947393004310211330468480727713267007142189264719080112589863360810871571257254698907732807665282908050719891464252338817380102164253033996552189383894493785689082976275302803277172464235079893967988431417169499947039299038836249416170195579427933643318850309976972672382854971538676420717657399228417184729858652747977089631632716319474935767981830073413404481161184956021193400503017771851974041948931378676059654740051615670595703100515864067309572274361151596964829659855019073176274060667631162241304147146666695567286295407224778483753691532007202638745755896783371114233108800892898259878942872149862617237678777609980639043563567503287543348352180732709805330267147520882440203878877724563567753192141923546979384046848637389131954777860355094085293520425258529604013309809742211027173728655329863173632104855953330057476522267766762484615766511677649937854471826398289807866859297189975831257098095477098569651803743606016031235358615201925451508064957922975583514921732288563133221626161609791389609395657879776023295192089580208818220982384817677668489816047394179593181820429905221455376710875344840828768556896939396526612760976043071923681070964096986534195580205985371653292844069131602770225338733450725188786749864513879199572477731207135074836149604751038484698147342638871886783207241789591499230117546830368503792379097171595057952409576347819666358838489827129172593658838764627018900097035635718012048610939532716228083261663433989919546520347405300888410927338203710894716969391035758547369430201012176746836607359285033627600824631081209937184770617196712713585320963479775840493699738965084386238651512174770048092599710308633440762645839932698361025249902434510593069949800665161672961786102413717391666397752890317232184710684509010581965925799553019591712752461166469097840379354657119138289364955118250411518996609032249670335074013291263965137719531085076091287500417543156018528975822806369744090284527954433934255768599070204564660575134270662559583821156008006456616079336534726980698926541878912545104766929341546958146413726974628351511071801177917553955757126957174576285761876149462888911072822757705158501795838192128452720209420935809016110096077839282735076981760556647159167882538731335697944496896294579978047572219873051875623013756791610578626168295089546979808904400583261735653832668401708596364175775064294587539598362649566141035938092065212188332700835249965250173317150611784763503178084651056497183051710627512192657286399830251370188843043061993552302952131325989839025162033817310900861059433298805349079103371287248648361225490819935948893433502059979699691497278305769659376718890664170039594682280949816120984904906104547733642213139094148544314097942439697698679486240296057383208436899122307100817515287178640290824367004879943181054986308245968653331638485531272672442073080257192187702654836095754033356878643078000619767729812983965815192498898530666660262959172792197314724338897905684753550876178772935394983758423734944482695035577473515915958962039722592296755163768827641219674788993254452721910295292987506846709361285672862964922364100190682328763531976461112209381562187337592899964499401211870681504012611367563763154127977067031569182255047326812657198451897163526511647374561147516983799421001027203251729456375487728200627585243173886970622575318210945608341084842400636978438841027632315829031882876662437850914453033113118962666398615572999874920839798002593714410783599194690504382431191048176658858448242077803533826595850057616240146069813566309449078030239316157623828178877456907560648253650926335433833938553108652249051289256706323012301774177681105702631716370207195854871919999600253144674505559067507749107398676079230831636117297151229838760532570987142529990388749729298083588587200040614859732008622308985197033777047825498377001693660107074355068520242670566540675281133631007750640460685370728876500135527591783045408553263123956923943408999359634288690263449864647606897258711707062883722498992822546996882087882411744608614040643462909101479379192915796488668610093729393919646459389853432644668942823194249828350159717343118313236940341172663033400379137905644239457585165591677250986920781949318439485564587327502403542651646062493929610557536656977169932513891503295879265900864995967043690745526574713168973528418174542878968344317044476180918587076245406345393495525849425555132792983022847500653976339971507628188563701971170488403321587911252568732236357147073945996964542878681032144021472702807280247630792975568598788195041489991306096806276880970268673719126911905241136484488537764680930349117937347089777860868838038248527846078938130532820382086930951890627487578128553949283748437081531851240486545254036291547107378356931693450379589139256653089707747417821239831430454333904688193383745481078475972833631133986071589175208551205660322243386895471203837455495628258146138038405368577290449713522652368134615870968904313678932137077445571567473852705359499047902155467077833208550617958416435732169556849437443383244489442380510874876150682735650991904252859050557188923128446421659461321202368177285264034202347153300570857906724280781670995392161949555839821548751247109313453375658953864566513303239586408877906723346920195416277081421715010196954629283024601397512428198989801482800171691029744372590023502887581209375238998332349613984419365440006170643241759209228289515585602193133659474842149258179691935433868962434784868434995793602324019380743494900943547812116139375848003625736784840464816138940345838656840892916173574076284099528098556623145689961732299998940036399067887221804485324547083955548352326093258541969025100145789917310480205472393845154672694763970353395020814196762896185730816391813877119116064540240060735322724952581183804242620012216416662238936602881724743545511345465751510496407994328921929185663057039587143183164741923484035605289150594354925040240126801560111340175270016804300772674415595098537653969866448949233784865429758394367758116936916272238856770161761908511314349136662343217972948062082812669326824689253252310495804354328284973693701689209088432768131185897898993314822660002008254580691471553130601410467990370663391479837778950228653564474515929849076448140019873318110570000232124314254771371575714976029129286669177773110367062282255771444212057010037711699245727746832176203378614504804420146034615275434908928288557899910699386006013366936677306286833536713291262796767219464929135422396672851683930175266494252882457775696424237561839737922040832282209242224013829379596453220102662684106763027007187671613379156933053737664846420624619357768686626924199648364622093435489483656085857844951397283838020562655654054782710018229293067566385996028058227086968737998195840040090324421243061680492421435536803876286500504978772760543328679332180487719477869317855201079847460283637222149798048273391313205436511409002944389893011613680472321707256595608698916731777090552535097815522476771766484992073646400825231186871983923648350832954042386753642750136154692187773175296151709654502965722738830984764480854092902470930736359511305053447818682100247718535058626818989629003603157404924603357283519350892622417620924116932859324201932687425160696500870798204881410351812297236258246637973376238520781188787768695550158488497753136939910317323939428164336738505082810786510967737938097853116771778723372958405870588467862587082449075280679692237719492813572449886206628850876598462295677930044901835384533803712099079962378085951433537828292979685163517055835344640693643030589339599385969796237707857869452318570765275075654878609501016260428773434888406745473541087379422014128876583305353425457317497358485228800544261792109456508253690836911907893954771966305673716763552246403770144406175899016201929014240729666824575031246793059741705488228944865152361989032045678028921152427484544623998512891361865821883337362829214560383539816410374005365241216929251092253201446913876333749903254746335034005037258780600865684194743913861703909055417731198324694835279355510279373703105241157505591606477900947596717460510010715198207468086768347916503350205446699309797404987589501882810610135091632659632148317686071141774047574984077056879067500806939979720360903958194892528910571423676056017014871203681896549499745515498382787606454667721745508048342866397216828486682954544446407804855153832652263770491128353888989800160263916065042353961583525544925895430728689440777593865290054763708168904649353559421966930329737656718958082591188276741357416149133987454077155628741015056399778629586940208465541382387856085260166648088425078816963966643172706812687783392706440182877408659654637932788372665426482771081293855426480965124586525533784870552900563512755225472584117055772356227580190976323289777981038753347690130480365718210428737300409994230221952872311976139171375543489101951597479909336700939332346228474107232558547432537916666763521921474998238951458170571213183331484732589001660726883551508525730214245797611715866830641140378313623943474486773383630144312051210478528028067149123992996495125031942392309113679188438795837082466530854834150477865686309825774970281367007315997304901684430519583813384551227787059213035415941740015362146879116489116517455208666805588428863218919571645956302606385508595297568950641833933701847793959668884908053092277196233851182690154875203442857233933466968022769259409072334348723946137972666454512681898688854193967997820425851707538456266606991459903074441165301029716087096219641029654977988585998567473392940158906826475240355843245423360294097406698903824869015074853724117671788304775783781449119408075635769193264193620213549942241767172916091757767189646206642950219809895211035629830022756948265250854841245926752628165581782452792880437896175257427453503858158954668918112827460844912211809775982750289847197809368449602386747800690497507094403314521742947810029857983850177316747880979099334798530073869902154883609280438614163445923665307732558942328088677519658777709708845093750092923977086954229176941505950477576019251176730116919589669243809069271067605783734633387136853839735565490791528817532448309007923953322792956087468783121162070439008418108273467846039991330951803257136370988497121556601194446099056635984201643363755275430984406286740081362595086284465257863357326419745158026900601170454926969081215807291564191494986259169106056115917060574768849104031831984248403901179742329096286700891218706926692312474678269911954508527307283582347342649004669327998679622913799975091047177137260208714828396602335490498396285624383876947547917077427465164914424118966462857356980710876836206559829762048254103053991166053822626144694134810704103197971313853252820526825478555018573682284285496150151290984096578900428643690005415866568388141796717094540650853956836329771035286713820444875715094694057006891852917003990478775145956825502066318611096045739361217609888720302838199752996193816080572220573216865435328093499166411256716123371650521619537064833215588495117158031289018581935412689990327851815297967896374401508997101651759820063112929741727467044321075487098409426262933579210580093735969509162562870027870281078339821452864009823528557215825816510034387394073720836776999633600124908642761037916922767032959067674499389189872666037081311619808458364682623904101921568898321218310157907703633084856204649305973912555032550009255360578286399725063022737119619508746810500673786107348094934568489644710779970628068323872421560977087985741402581140953603988053149158051956548804598444238776749876936667431594042039310656472681414418015566977790929519771757415088770331497529694686647516929068359229052651155944653034248860579394617758570433450976595039939454921600614888523237525489063562464404159800807564237239629311634158028416401553943636989860122314909451246085475908191877082836492404766670293665518178356666091081158657475023719276525534942100415405730302226576916591140255274726270702933346313072852294564913545862431734218785937306964911201101864319918061680052817133101280506533200136360745213354115036910618346167995868476425690539292913653190364564465733617736928027339950356094361899141012728752064413634838054263101227690854218075863654881611086715231428625859221563982550799518546420589645747970737737123228535809559086155476534625497219959284325769825452588783482620899224276648608037256796855152301777125218310173222887893753579602416707746332630181523875434462893375729791324607857879523957726661797896375489216784550578908589856794073115594580887664857049982536314399670974169972946658514911382608618978550264876278896905301220816500452524503528739672772277840163438917884590417585217109079217835307538664834946502882083137380647004050078829100534761842285269465017119256277022872413213052654869143748289811110716775476950913111788517750316215407524678753053266925316375338271114003699797891423988038504662261393163476460022407643621787315614457521915565794786791500227246438819620821566273352711386979613495439224845611515887398068207579959876814684770643414094742860164575202230279689561406783091608307951281327867556488328315902814372998213207170219283260742939011348885256561221714175329161276710557991816631505591090773426415494666291690810561742206961919258915328365659550712537987858332575190456055719587833616014345792500022380462047189727868142403361779524788328107866192723817529319730607648812955312009178901335129824392087666886432684648980329957488240074569344836636577661937682918864431277434153974764993374456035921865066409153969984107972230770624555806708453567139366800389220505213750588798445756091525967320412485768081330582943862428705932872559592048404289834461968920608604790906310456483142022460509812066474729140601494351169237854153873393952202154314482222000089693307576621597374249084750589414492498139997625004578024487846312188047652601548703623651073046665407106602778313718216450754339578353317576407102138276069612689193322826269620742907421445704236835290591114983598696084542804042889657282405456695331366487222891775718209921060808324658934823518575176017389596785498432629771494192794203167284451739830399070517861052597605466545920312686763321360689538362307378042001996145316107642180410565017455507001035781109084167333164929368414891137111205143030448607250874233891187831423067489027395932285426275338499142639915739560998910299394150818388462948117300392290903225995702739840066697002286962040093547215349828531460842023411289524317284757185032462689030565626261566600346038249198792678851416523726305048342869443132279731044636016858879587429671984114722315919465749431567826018014269459355162223631222977576402667904107111119007778879946587903319554076400864244662568203127119090350984755924474109234695394463661387019682848753514912956840655032985406825390809114871804852706430438937439706217663019845234724909932889095787113511041381869773300200607230341883716067678801115615703472787645321048693004348583944368277799929295914399213121427196852213380362551734779428677113759877366430482536722533009383309763677087047309684573358324006841461399923765152607439993392861594015767204096056801433589353375126541991154994782376739291381402342528966043550815194305055296618827306723977908153264976214082261955516556026512046767323980540468726159097010361985673051202253777231737615092151981942365983985571846590766172105038736486634418254341690271171971147526891732980559787856033489922407214343300154599755548109302828539147061225535232448209513018042187768936842806760664135571615667717082584115707659121259169016282054918246763934705659276927436969417720583110125977447966604142701547489346154080933540961462755973470224983141859048187866286472754491980125232881275092753828057719319165521342173606823195148288158790224096434612019929737350544919104614115118746794596386602607868160201939320584161502996971485247487743639800455629141412729372614295403543103317353105604608330844367400339728211906760382837655798845828773118244469257075435612641777085762568720527154758476611707439802909795185665178674655522378991366537012244101282692762168044877606282662094223298304134874421549539482217772771403964321660735419179330237762187945245564723401571413508476885731492926175052340794079405632131713039961754662001287795251200574402018530741809164754084921447016658284363792283379093989763851033809375929661537452633719419457094230786524447515436107782239560566907490059636658807124926740708351419511964416666348918674043940066021357617155358129902613409850469921418612212010216321266808869061183702652101258784734621420375381415771110906468340346021637134840608711272522010548346393909783207329073359943824095201393189249645591035532927844148616942702638088881145243418866811146867195211833137997620450007980309997341673803497314903796804719080763039770134686353875781923217553586807774347787872145115855932157068514611149117974578561615446908081602435437672987599710679266045006396701426796976810728341419030784927313398317411287453285988802632637322863270663631742787709563698678718678495954104769868678892333007328539390238675287139657879338446511499733505150363718069461886543525879723840205173081579506128034314846059184578936686258916508047170372225508580499297736303721924632329815427184583246743558443108650965369287098273358337204156122139024327008551201686384932285466270910460227744569260208250196928155039935070017972916106184207391600301116078599823448028433762889600561823036827784908672503736727447419241953220286513770214561901786771614392271318898315942979946273783419873436099966817330764756421392373003498502586881563161550475566857479265957603399474481048764423949024920817896792026221203728165744225406764216899944087062349642338561698993497483989422384749596771351607139467035171570149432645026805572093122677614516088501698930313732985018311882462516951397351893961118851088248140123590232508433539774810678094360809200760567818929780789375393048946183042116535033059612720594415021882493012884411835637307202907889145255009732442275346859552985270788338876912041695702229142707947551046680956892129197608906158669394382911035045119536096548712617795999663133006338733840279748835607350924954615336202057735207288466259521399694002595525678751461762067651945410445063839047416002369274474936076654538611488952718252963617708154603343945300691880153647326687011389577559005565808020421720405065843046758638326056330582472434555862604219064203625263388820834058711952979831452918480664017322727686331051482439049168101106578433416206012239145588109779314159803536840716998251964622870757539442299336624351459583191814280593261880706056338394520538973545663604630017632490451882518637945886790039445293834407511084096478432063253276250480392669041369766778656787937913375095228833909465956570138846320425617197822992958309360426094431852761224655986774004985144935311353730848791478464588858784675861028292044875321109763380087133776510225281454304510104988915171606534533457107776465433344425765964385851883982259459630857650288549845584984829638157599773466733711506394219851161683422078458185475596203455011198699241059083295775694742830505331064057573919273064316671460191747229744442529600144357248442574028369712857812272122136455310018209242903343831676539703831337758471618943430664993811782273873993298377509161844915412899942398848061486205908192437102099850842171671346807477445862306001217210635451071129843190531891191991826531157544782460915108571148021956518424888619858924897842446162255252609920724232370380370524546318468560679912843520957056216136889951963116056005040877643894144810592678420348694886385232892828755218217874711798674088026242874815666577090849821968876312658958157537525191095186919482149334984655854781403135219467854362401644044279119000929216682425233258892925952638164849392473441068667546011028600011829655532665819815315952877004957065236083828003722160859613720952893615816729809264066951394510071642494702365714548532944900802309049142227096154074205703505534742175157503353373091994625283607891085547833546817058080474659348338554964703146841972269394303946661056941609983956209989590724313409798089222358381973034576008666292414628671055578571458126190072869069602928906360119568856733133848940805688468818414729377474052513955961906804087764175707671520247586495206461409694905980175625423700897167501802729266022316040710972381289414453086356096995892621861254991112794657101181268999894471730630248413580822573322295489315451058807117237226796882083862299098330107142362038077107450424410067870861746004585669736565136493320865755423506951398771158710319407145094682744372686336990558282695270599296845849020359685653899830404886758081084321326962542849164182199014085532495605574831365157752354658831516401133593154942262050721902611121423345722066986291134003205917847435602660847554330128358100865317644279846038826145410347402580675536331758728867768772017230195204505133279287824185934675305550768702950107528979745008947447247597328061152159133837070496179788059329010086382813803521548034471647875495350567117097913074703946194946930681869242498133461502571125518490338284991911346512052039189523236809712762774983584744213620700191422888607484837906616582968940626521087289036172063432476793604308915947822176171175949847742774829861333587574021377244836735068966973052086488947361947464946717643324604953299067271901019947877120288785834200305962772199081779685523540772822181177507018019792362420248794509737755959720956842608954408504633178223096612352956129678019145781840000733575931611170685030172643385062468749864123544266641283190263109191286984821678777986718321421469659370408020634340629566257326619476537001225375292019715774564515797642523652459169023797649420086531067574855488461406484442257310215989966929387275500606716978837675555528999653455039044585917048447312170240655013604234352723694935399364741769950520411671319349685462281456341258479183734959388567186059565949086379578713664410768196195201702984854893873145517262481629435140740263967734139962801593719303368483842984084803492098598731278421264059870787769130178602836655486763003493212392252379603447355653485861315056876561107340694634813174930005754708314167007994586339463738351603050193769557966833748859397137396655741456286023404091646350271282180731709507942769661649101161964421630204424790208305887606014855187322016714759926170702511339680485325737273352134070347182778709730168261902109598854018527328862282356013581787353840881354575088642680591802458097341559189304765004144398945698056623509213099639568261024798222334239560599907246820301099490976394622505101084806262835930157155161235080447554279386405503805573525603842851463530329677962522925311714689759249644423405251145658370891143068598965059281367181714090610584176176314020473026951967534950408771607654913263619631853530130127603148410529502110682854889580491550239954814074151486318098728583763548282101743483630507173318142147885446808562945299517786120119846654040996472270785386767463291210314147215308684207130887800970232507420195961485560751392462859600179695133549486552786064768985109399822207579684023653859429118912471319477725228397816643429348018492705188593024144893666670090942950187756636589387488144570105811763235298169199799035141786177930334385561187829026147409585474617326575103976370503493940894947218906880601799949601786399112296683982250958530633178599196206839078222424663392850527733654650014040903703301424793722148887363128067711584912919105463483998522512116740961507263286432065937449840549352537167491453328174273049921722108549664830833595616814117301672583905106441088230339576022573089021076013326770646460054759523451870816758841266893079166429873978009644337939723492262370772501133838821100574338014555036271985521293239210410045307195752960379670737041978541384500260479835401345869225403016223049211622348828321942849509007747374593219268214315827279793506181810856113551606660992862865878099626737467890693260703186464700019768581572683314440012107057835129107801870528887557324953565199979203694674034275535831758317369760951427990804134062850394563570712403153712226008494252158000794468079776809860843840211547150208460177059057301315472063008494108830941045927426179305270291439860019435407811083582153316123137304145615465035763370531381621954919770740881252486694218521182011086961937497999368399298959588780810433420641634541792543451865293214539240600746299875553844537326703134746680578000470980254756695402481045775793668286210948542114175743846095300756590199879603913837401872632922725024234436987833694444433251986720711674132760805532173893206687245477934443039984439908663931103591040759632314691171605792770155833796103626065320570057242223872137230692053427268051176393438411688574574356991449049687005467984614604190856196456419094871356569444993070870008732693760971809828093311853626197815483971467100781180376863196951959524460426427061519022277410809811815790186044946408227629475544189082787680803777889131051591573745927561217013767802633380748133446787654978251575947749943947218692010071541972711380222955267142104633525095766054711694442114789921258959976185281667946238006899839253861444947110784096783716644108335298650136658271567720851815671136587665534774463620023463202708800865486455962743260520614848447454025589143411544629482989139029855022155729005870551054424889945892583667620805057705053736263008031684555023604107587024931201732034936793127155155177784270375149454686851566972438986999898993843941275198962438018389390571768695026007190731276190789484371995953996326895522271574558874909097549574771888656068291865954420562589112153070226129610840057550666658566099537556400104584606902989294095413525705712841212498676865271709807177065924016930692816289806114237063561598550353960968951375818028341682131347921055542396180062960051752416953916973762961546758645932333602457992730117406835913406507250463192498202231434479234808680692925484190668933253236116464139000921841009644026579994574750157895848162471024043536744447113859111332135851705426340634550450731439461494877199310658691245089765605072526270195039938575993953620576753723341964872169695413386959174364880229847299663302541564380219968654918726530493267886896731700282646157598811388294822897810505312608814721574813865029465444432378517555224916764966960151482719944698171328858659171915159395999518713696788941711945052754265056921859629511829765544304327095250926980937275352620072835353050689571119786942890590279503243910109692895355999715539094662103366459800055744243099744364566971865661063526816189773392376339534418858001755905864435076086910076008699448647582348017806302947811460095314688969595101010318084649118216391947078086323089341345922479104136667404060571890564997877943415363981742403749447238252901191443543835551632536043726642400442736236644537472640154070078429172767990333938487967974970295704025342097744151327090484722687248570442472354704919364087957409234551217030292714721286203268749532137406660347487554003719928990153451676595882644049822143771088920637227863818441057216459695337747210038289882501019764395679878445018944790249566978819336754527725451047355921452251477554766060809351493806079581907208593082074977403448700855516831024856932041194497472573581493736412454816688487686248639522973283137025570024171233775327631421748644173828167685858655649558997260191317399014384450891493203713038402366020256097801976557674020719827385072323321597460776407207343969736839443770589408001288124850581780975524933118099220484030438805027006002106267127320835223557337051637856941672467616111512619306292067544918809070271132669399624541773438402564363829975272529351155848576648378516432776831948884763640826341505409862698297965422391151004192923307919538156320886573534134318731346586118908193342476485353295027375786478705858946096636489945674614973594442645688030029137217706971860582303976062257326402041325376058145678776022633361475083935842238743072323219537260136102554955123425429600546835282876914334483460134598279901512170624069006179538905679688317197757023739746056419846226307552528010893124947444825038873522852762191004770267586870566750476149692038785849393809353576495423610440066203029159984039340595598533496847455028967878844443462234881851664215054551784902531047995720984344037071498436551544127976775104776174429093545473670397516841078654437727449658441841999810545961030913189673152235546292684884958119568259587431711043034898753902323724065340147984400414880760000993225317307738609290909203942179618713938400433670992104515304259023607212096412066857948491119834407045846725430982985450372659241837242909704096415474851930144085084524005113928591978564420832420453974584376426815155204359570010392027400764668932863274871564201666355775925400208171280145625221172109282010440824022476110584484249190289529655060019918339552832100918458789331210189929154881139406596763896558672061915768180762623717574899779001998955377982837176016012237507394533451152751229632727280583748442062676503287567487136423743951000804250382472743603265075684048863637031479729031967158854589057109575480062651200775400046375314011910798684531652485266005916937466341067907005373011218211426226768938186864432024511164583055352392525258499397583287694444340999249493084205675679450345405267294910867308434181513887712487650978352694770682722912856332772055389800830157933361488689567914118840991314741045599346572200473906739074638378048922004644452664802516800988286871592404345827212670032619082004520703027008711295593724218725003931277084968686439920979304254538342922101956748994467241472438204823618414961804389038630116770876108417840775232290317349441947196428978105948162524459340666454137016371214976016718306740409406083122495095969789719826381556520584146026282011375579149759073604892348358724965749573410808062541873061794083836473418576481001184426485789103349260972342233436296285673565605780247055324311820049008136817450960031485353865269146140658234227674999613285897238177470140599787403676167721850231446337066109903554971557890973143989930870030036368631599513261067545315369228323791218368362719640168758319745126041263434659644294392771167708266936131842935471723620819591454250624361390644104042726828993660640257877228897029027662360427337996211822190095783167250915766125494246669003874763345033687232923732020901033368517264282219771188743122778438454492862715465835583866616366031269821262804291821752596120247800406629179182546735380548277354895299876886190812118183592978304361395084342565990719679599850697637014231223081091076903233150838762750381495234279501841369795504982185116950501641134046300714725058381943325571755442840302825193395525530582705817644239280225882864387954294761614572096326743593499852734642001790366848566500359281073706346999657691514750315647672043006331696352777460508031424364688607148156129285389579867485238737634821799059148190039363879731869058982266616212553985042728056115530922048086347003190242562064846693896774588439567785541301915565563071876873868906339849062012916534418228646673215367743195603906814811565878755619267995669335690370624305801812303281928717520582380972065906591525693082011294709256242229127380020132051326882679613892486230213004469376188601549173323280464029877543781265266604549581692245850229375701209419640097689709504257247909085634875390629233229371957757839137706498493759299860293831553020298299899901952862826177696459022697894498858444166312317245193855723291172574969392205185909307903712851824902268105486012012141112367600489355469245005755602372189248682862488407894563695044392982418346022705749026760812756474449452299147651066107821472749426764748044095779483085767174929983534493675542388689042082183775912912166782574813332287947520546096875601984481153200801450380256039244120938496849103155210630532111859289298536989261985622001250088426405536670421565599883314855533171580600368107581680523014487745162477647227096520148322127854243529238386478109157966913815790661726555258056770266894893390246674540756457839837668765904863421429085525656510680844111691212667533645158623367309499623697854175596041098652225263363501023079357263816261314166693126645103654984096944871901803589850927656222978873522217794409515747635415686200651321567365117359157873316069117224697446615195211414839699005794567123992993167892583751834957711430794526100160397136824312079453005358641617392292065242552875138904177386779809472492935783982872595080709370348666573216053664267675865768567723561366494773480769953468729076048300376314891494857804312029885330419906280607815869680551669883336829576482725418663381537802902146977734457002686069276575819529002879739008453426846967097751849856403724350296420646891530857621151914632274942818371333287282417499372070186481313972770286898355520064625314862804658683175916747096865902124215330622247063159668596127024960322368649121283218717536775674253660830457061618439083152845405490460486648036268441706290313191326323967662287913117832804106674082049020552502735851317157926108420858741694098062675122493913498027440001611289555268944832256380491984187996239696034548461518811331382712497923674414519086662748627465107285518277698322492540123953351306411897149193248735416243410149391456324380661757252224826736123116468171907976896934197565753304943220523707972395737275097124403641592177038586780581334632101313795658846395185967621712879666488195506182623645820291733283468536672632580521669493691357606813247726751755125262718363968773276779632825657774983589734096603756938722667214096622525941290327764682268476009314669245997146344553712777701245593941609914880731750498537680489140389716170590200486811908882512351452715028327653108655089498023934717622839475091200846459287709884905833188683460014829614224296069378991973562274640551185326806278983294907905634337123961831059207802497938371310156960883427773252268191466105369943793950535116478580040084189295960132104178062435397539105708872850705750487548038605606526768614374242528546277944233411760596605398071026849765320135138526525960082769344072515920379612923918322003798409723281623111403502438739941327315003212733321448525792502198556806187895510870455848411228408432345680776715751561098831615143618523840575426850058869853256051512452527338488593468594428623272431228717064821773364845068333239115971786978491619163161425869363332269805698912750854807073237374868863029032852669836518808844549549766872104832693770553091870134730430713057739544168657240501803911521971547707753707725390999044334398958536133922295723727948486255133754691494886784570772382856954768975153332618104098571985699865325879243375415917057977970325815259401771821199779997226923761040180613274991489563429949692023864408965196754017589751439544363166422055290274513184028082727690665386088267572554723284166864303103188071718719068610962447645452666249321583603078152531644763311251042879402075418230309054240736689234289458065503254257843718979150458601391382104548584246861217421113792041993808492590496180761232710212730234602815535054369902943584923959479396998348043683638354205810403427174228908020826339463421798761882189138096747190114455380557572270466099783459944001725848302615117556758765627683931509631573940243427770382100932315971755923063284685028771385360917004113907832500075155783831644143629987661793180355604100542937806058727833537379217546530788353140160437454401892638143200502696554206597502707030026574840015110086974929762884354500454969557157370947954336633299399191537184386350020666547708599943088183165075951884249236888124210418029925721080964533633243301722296726693947377001088079395379603553977670136748579624958368567357440821528801465397142002543943398297798378666510219878345233548662063065637760950022876602625926702768162089998302193843863852289742084013605439192031955685758790981142459170631080813807454935880736490436326843723190066293014864273848464026826931113124930454658196286721602157148380020043778025950133169088105983864072398565918393278502835512604925708074187214284524387959748148304659283369146424755077496537859593732278481980538326029011586288416753465484400646658251962870129413322686752137823164526411888507764976104105383157136903803859968589666356763240312693886135911792968198482582845281972770735326002472030280257696804354905322514098038949414397141576131896580654702211799206302849137051310298077931247652016975073428047736679231886758162832417550062385354223737555611716267306710854509364971731002497916596760266968578771186972072717888698044062127089514260359528764471680012045105134546513282304867770062312528170448567200588564972886369307052785853803788514001776930264093218234514450637921805614339236523043892956751369171917560660736786567508131852294290463405330044407131931631897779858852672475016470631946581422639153554361965260223028773619928589666749811254124859323520425834625587968336279605294521469650119441598776758124116641611611150229506576229482854730985577265275556887292379663410350992659414793199997066740521004113847887346651276563513440022342171105003718362675938876734475312087100760510178711043175310666561609703765720004798169338812872466381215164079716939022061889674633012769259475954029102794767049836773542746879227770838694822953790473583924809115255226590525077035338101387964314857261555847368790477060275261753199687259399131550119176379317534336561749316722520308227188859030393919434499681273985939102980524665689343559878281294241622580322484980684690200545574014118603677163073618974494730619842035442698246044759493941071533715558369059051457835478256300592973678897392038542410457351626718449787035841647318463017219319501431448488250192977348252702628693213085772484463321307273646394219450302081038198624317274884837614590306723862177859612383701923897648945298603205411883182974173297971509223698103908775919988606848498534018098346854103981150550844484066964601314191847232944301829489062663680765854339200226917604676808325212097643534749135894183896965042838965090685206789921093425845380457201203818131589912835824599406049730955830489356220807572775389077072373252351646285913690686740982722321585336730248552717404714101763503109462345602592261735977861060060276974596674606796130231857882998937090370282148834784833205346354180938894641986141302376909566326523827915027979209362053063387961701952147970189352837411972363314417424970644895317653239929313406079380618182303140503573657310802491539381107221719969260145182267559886471613052742875980709831732664221081788665781085233438488762823752858575644276879514306469544232645714556381125190526124065798776570049525746915881834838262013573955688978226397823654366815808652500185914993292463685399891507341999495348017067429875865054663453834387403933767930090585377268741121252689764744015173304269669713364228448290437575836457405212222448123773822012930559856323445189675748348295859519447609147841384061366345464455532327741066492851157395485565438124134243205333674117897594026265116586876775595706223559173416491369351144098750397917179152838980077929884604568725153780397790174010094528262184508258272573490224920729395295809710889557033919071076825827379792607643024476363850677146821545505132196115540081150217864888232566628155927052339926194036437483370214704039644826001266949529513619548780673899945733990566048335930331797476530700485626465995551114111364943142547381640004948076285956426069148416733372263436593210360940007004532667941066506387763933748976076330921613976375780511264487876907802300884238829060638273979723525908616829795222460469680213789870539075427720461656158422162049906549976927312570335153903356084154820127564397720602641531963521000284879786159955650867564159864972125819054561479054218721840805018652700090715383191400592130101483706405225746730506961181829623062377104097585337891553418465051754995774511172381831276218753659443124662191839106411185204169819936028103558970709602303387394276523563693780516552382286939578965697330424805674136290248198631607608358339287557369710236838464134429658647687502341534127997095491035864274793968588434972129862929312253557350787953145964456244879556564705373566278651253470252113278416577551945556438012109878916465816350177501436182119462017196323238342793558259789513321264577351642226221973280662513409612188640991831096456855488514518843769110937972707972289008369687781080217712111074780892978401795576797614038731775061975024408674100871235864525973060521981682402150000479538660661102027458825016845837500363602021068747897517264217548861915637099230723077985452391227723566914740251422946952287789170702692409328349747565292067845844293295616427417499460336705265006814493039352185453386726719371631892481176956948203761106845773807991036895837979688139708473686323537536504467828223977312768172307383260644769963921347197370335050447036184307111257565764779474195452954082253487614523433896205185025278174244595215036133873507899820261673936604732290777255206818660616697729447134698655143555828667885101883921296229985779550321670514834219979034220462338998040586737316569697012910941519774964088500370966190032124777728536596361043261351690401931838575456084189747304986102138943443037262417403091650752898170665713880733178787440195886061257425340513446850714011676966678576663679386877774397606453378980480690573560224316172935672810175235832003082056820376669406539217194898891025014920731460837766779435977989398559582431688508099064508375776418494978412066564231823200788107034713733378596621908286892318277979026690321959386977613720587041728356858326006247486804056066296097774195516602799317125319317246731231040142776628546109944392552157523324988396072855422072187794153747464814629871594072668080889993410984805799869429467173601759462578163847919109187165221231291471096534923444073554383431075301112294794326891166137576495165402122217739886047649816557876528035640605521649407298334729927848963509318810444410046104492692780660052290890161657487247330829623078180621463326816244698938360632670236694462655720127381788732325598907810448108413973651210128213184443021981099879700073911319367091363765972668918144398404178794879682957303318768677560203199347795192852598054155493892587456005505859554586170414035263279348424366147220099421952493534046565909058770072864274255839486593849025260267570257638345301199543345834956484075599211619306416216007903060030964888927397450546370365766774770804791536994357231244070054902875447756159925100283198947935794559120681762063890061899553181866237688226609902844319456007542050615016609316827250843895034229569339704554728931238382330588794428056231829003864274623753422582877365262140328981517403216024767605322948605762917678839176503999630584930327855373121466009122871534546967059619644945873021160388040145291401347975244420989081654240674178255716707164393479328673874348018375948745216868944429138919711345393303218829698201905303160830201400565192854006278429032089350675388201447574623260755268908649464126807272996179238173991528312965965670937714147651541360956298952387974488947225117911992782566067256042604244920560286889579733192315015847512170004631826449968141762863993679823773614860724444845798001005941568535320311295200491840065905500614793373645926067022512685992569418176717960505982888145516486238064337081605330807875868514803857459700518126856245915134440239219734534228523243165046698384932284813469941329823116656293797737190517487034659633322813879179183281409604277807855063454413314739082148201915170820035630989384509274592815459374240424565199631553896548843650943321237969895409280023089460828865402470280800869577516581677800845724378117787187465593741758991729621844465572209726441895190648256689945356447978672538186562983869400404645940359540142736595742937963610689965348966436923904894376930309403986798764191293046469059793350543161151724742800809339970033109396255233773122255184266410382834811165501068349811737416186938462924772371434716569572568583598753388709255928730611780431398787973002497842345040490045499331755172806145359314546404123456635838932903107942003213827655245852080443587831780848661881429465665120894730715149866594494299967846429982818427375530527619199335514536680892726919279844112478691415049921130660479710711370133384482550062163194750018114109987082923245551832828304102469846631003686933091989477352815867883842283694773690488938977600930471481249250953798265131792788781453980424637608844502390616934899687707362053973703010307016461741743055628208129537479016025731954257485415428772553302919538716279453485066404187853443567335366210626559965058397425002798668032020530287074700083230272796975313893026376744345507062563932249971180478198073661883674607401924832038178971500500008056802203667707557209760681194454098508747415250681396561217211164467859143187021627486241223444708205624972316573984190104653496383775939591173579650062564694466609215116893812241692464293123621255473142950696558886343600962993563324905848070787392324815827783741783048684674142477213378762172555580880257946932942736149997717669867087243485115207103716952884595288919647672783928504996350933532051911973464861538466890461993993880755751687092207959665384794107149305100455768633966151630188681956079767155254633892461031985654028060665734921780801477705414900480292797342552318382704056243444972962525938823204496838114513259457850722669753609603581568163997396280717050362674769578037981373254443453067205408418782565549661405640283461009820585577405745145936649328160905571356524826596987732291355857982136892516376079940051260699534355371103587531128924464740801434066547782941785436036261506385886944259070803797141451490248496773312468354077874350699226110863638368197687760672691691074468723944700028087751627174058431590950907982031532589004003117984904547445500422838033481280077834046146189602298929675207762736336848529875919245577391012462653790295499790274950617945240501579155945885158380355659897564251061519602557118472863419769810062099236235329046320421409054841943579112630655848721363848482481896045673158837809078334473543767805086684831895569014893577838988183825037097531245684285181571444459527347570964099404082792926618884298578875374818280550727110900172474044505447418606570869721801729797310812065379027015194420174321759276233570066815954832239227681931599222102912438610307337590183776397210165723768090431467455861829382748576199047579099583725793090117772961156905392543967853858652089104938390309686169479253758866923617863340136289492087312558414217465698724458266537000476715984751659252727051236774807301231931537673507335889177259380089076055067933820326968376568544262040177099691059481597327287920936550924806254358911234263394214118645012082440053045014849338257646263214497948274239429425898250809353057963373381936491596836441556379280469055710768085773058617027802054569580365455444481979817412035713601920638404006198666992103832315736223164638697247804712219623204787845938132708537303956154544322054624651000881405426112004404551627894262073228278488131121307300263333328078544795189952200016688168141350974505956938333468650180209409335829776638931302611109173860395947404235371761613604580687515296308194532031607195660087556679907475612991051528307228453363329459851268325414809883597301589565684923350841999784332172398959429930196343850980058570860093432457590408361129091742768616691080723374640677045572607536521486539445562276466831731094843429049512592188937483264460182705593479271346745480555893604180937765590756154607585007485996669726844458406200149302309984966750057071058788779547688125123656389251099543032452008226201521654654788306790586750610587066546082051001098070403956491566085584933334640685394320427633582925219898710944884555244052619290440869180072816408382777644648687863001006271611726726428032390480608519654897167601111892718776302540102336085263915667886698427987954160775109519347599495814134553966038480887618526731051046707792607196520452690703246225502934946154383018844540960170047904978187268432660878650999300429486731095265678700472744710267570435223999196227784262929324492337040790075695067387288250728670029843028243681782335975448506610153895461231006212206893017719349289688365770847534212184671232060123086744346583622927839086185549473058974912537806448525276516688434501720651248997329103740808584339921088566404852985220744492458569954698733192869441019528560602446690259925442669866417766009349472209988131328682664038913136768339700997324729170415511391825597664973535984768484097414675043865655312755528040142271323997614970319381603736589908343527294289891588630436643866949719636333871369270442008113776621544363558489195312028387870622078557925528130238965878113625244291974521000946827901764229228121892568581374320513294298086956993760554477464906621282047710503871335995548062987626189560665884339841689633098214258477750008140557880405756853245076842551085443517554649488523774154368600822234228813581732339726398879958342273825014340362105376986352084068760514302453781091891956527774698043069272856785470489857222998288107780416435144808043601317430779257246655178912920229257125043362149492666263893894504447967469793515398947932707130049590236539458097327580548579044538983195596837462867119353507256634194570483568241717528881098019096926447366019088928305813700214279664541055857733056346892699413339210808241125422498784394453222202572293806346234209550523585514114439967065233353105733003175799966136504798550808417302675771197992426642594525814837459113960925663672802097107714272248308232772100083201879784601482236727795887010774220992384625636042553834730324959962249261881735448440454555458830958367152760539135194399557378505352627401015211726391644517467810797923569243964640550261010923865712381948731740997520552976899135096407981779937326818523255037238014038513121466309744875962662900897455608274840777141430638049096325686544443202489827760329169387254170183455081488524787179994946030888997947469639656362404876407827067954024210745927521989013734791859424540730435423810339746416668332995951167248352331155332835595159527823889403561850697655745380040372522628272685956128965295124387286584334440413285062678086721082279240870810080299950252384113053821143339038981779938653741634901463236631467357971782475454492186401481411545463906457299160463850102018121621783112700685465899204310465189661067229243147699818922697437081012844002426478516566643383539112293122609798543254426788982872282033745102074555617832861858551024330527095095907906208451505969681588461834665427023689320673695902543762644100095286611567069015159096064494515609434044276003592362937187054332240361437069692749577323047033686281510801389237928414950411337020102900908001169826011928889112903134324522156593825378205762534133878034853470441568708600920203067232858549398795420734243609878999652475509787213179639742462959434038155152907572465566105405792801842774235064811754810229122289548013822159769495743589174789125696651815349369407134321945176636831122893862085603711867526603517303048894712533152047884828576358743318539854151486165500954456061129293536678777949642178703268517574960734318936719129445238115563912153651643225368995771764231686869942245023505026335155556498862848792398824206676672984503381207580606139431832629157439765425176062829504733602928175606324352966406869465179532820079483051008049534314718521248187502336300254183591484468398668121312177990493914042353683429105360249297836745130678973715230125467824610262917492922006530078969230051345965772146835690349313528155992877719306297052145625585214639214079975928839595399678612120383872124161162218160910200435687382675844695647895482833665981820000856150304603842382886356812113454179896424012564450836548626365084676754751746009021034037749879574265513671424604081606983521576711530006533166050557136748898224634678259383961162728486501798960642840268830743970050361392215679046400772379113128086876462638357806023602392485372413990369976558499538033125726375577117419015542503579516454811516581992428943929025099129060519262866540709732897751500114163037195396406131231105717705799779240145233259648304894511990717006719814798865627811727483519677872401171797721558038888074938965653584936629569036052753510289695568090205152054461120962663444727043924708124555890210173478208917414760074582499022538424324866078312050765876447256613054030880397571233882295101024665511607360322007246415804512203356301175414432545747186129190937161307074257299641870331056494312853614354206535503604595489008243307584549138846039952356978791117582834189393993250924295482993603595347197197727324792213021827547420600620306191593542422011517112009949083306007569027580500075007148961288363916267003668455624526752898283388547329611076145305940658582266922287535797922562020021297323883169683505169210923397684189469608609538297756932568017622625713451545921680066290241571503594847023460058124869895585742022363970448477306901271847216429979937637407914933566884893658959544081682921655623248094350139100156515052832706742951661573875914672862440159441310046855284858570679527022851717181453142140215104646389014409473650630031405164933794502810775068227229601442702927827742100186914058476236770361408914743877180553750260686188799915478288400981288294860513090972513483029165832103446812120599106862622459688724074586512457801818604383471412080060699754889233742445873735488708636940305546407878275311750084123251239579920984002567134523625125017763770585387149033058439231609144437081335344438422330771393606274972464438715999284419296439916369715608396366684321053812622351491453808098112689032775750712471292585680987510400332624258592526344061073738671282851420125184696771973307955644572720653022861428009862860756792118386701204855461813053945128185843837784302464604337522118515507005187686264715712061244990445088570789481369573565232746048708352054404071175556486021109123071464529316551161565124787577626261139725092272909762226692872768840149281289556559187216754011475650993373249701241492791384816899944451806385486920604221761461625862250734175982329892149085632709575098798550528195482859939889331665952858590099857816835144739742675836239336460461040630365144380413876643458521869845894464762319330530207852418298367531488707583529858211590961358361236170853590430585890783784982127727505833065701035549107908827343141473712944309380083368344640243112505167180053125491572835710137114537149270741371984333107071064486172782855302427403320945301485165817628407157269153576339634184143655214336018551087422735166071767389699590114616397633079861924848754545105116003828717331955603569179318724229023016235777330867834820072789969530403413914147553398710816575340649396362487600390180119209518985920113993081551337193517570940134255314891082398197932877583089863272801054796394113312945905288425207830495115450127351909588788427452634771957765007951520096582285627434489802181014438279685244800441020757793381743983161068206794499184378862021085330569075400672453100389659365780424634191390561641584628774926638856355007709945042079891835826569089446896361671531618643251034743089696180936732426608782622833175814925281379296717238566219885291865923799895505587024696185225963451630307264553572805686725596040886930417336678731134183032860983637021013413280077250710588525638699087555412022181361154527433864936110156530040696281736584856264490890813937367540369358656012212452400025516365808258783470632379716450308006270810458162874678973878225028512301294649633105812971193742918194541393465035998746909368168207533386230092976011975187460712935922008942360747641457967436836631077404872328116854929585014741808203900025352075539293423832615487194916670438772551517384359233090762818569174749625685000654894919245612895511369164341474460030071384753054446331270388418967340389639542450457942535088849535565427138633591955163994954827341732190795110693650856075048436981745023808301587265501632626985013151632739028218816670289675845337242982546304436578798944410767277563903069333933646175148838490168529828303077893221519055824081588351448560722939225154410597583701018695393948162079884305383214762894235266175150431747254645522956344061617089670004265922180678003935392180851292739727396617299401850184192460214614556463644443271663966045623726201584101974569103239255516909203537442694094889284421697115792704673050589713839906190550298586771399124088579859123989198301861308625096835295573937279838207517022613275593400611074928041894585576005927973381340431259942304605709753421870524980155237412915276823223649012574412786182620067893009785140054090509233194692159672865763129771366558932322713855262648847089991169094193116917443876443467973117513617567218259497413440806028327740654877022880382957508787779240221028376919364407180002297816046059273307674649370044452583989872420777504317054927176599189325433488148563473046467308859925683908001806518221489684643649791436902277354242625904153311481943891565527705612666650204252442548303934482429737086029784268740501294239163223408310746739125061059434921881824491308395587048266259433991857159687594847525584657766114272466366747243018429402714462947242413900488673647040812854432771294637341693148510455355562501895897843322753415496404900450507509263306304993674562191594559637781117137391379853063952944562575400855761889025461535864223035220459941929448830099202735936356550281327390714732919100606092115798087361130132813556642203885098543808817175975730423728290370876203403036913710764284451857218311709101149137962944992744501396462248857787652062232392907062389190851890750123005239146014936982307256468696675202221643605128359418923704141337388937864044514140563137838507454032868240913778681836771887833253704872786617922589536680827781717407218337632968296003543749896997204705780876651014220984327309051116454823854342372334926837970936756964765285007100682529643510746520135020459390689769764799545587737920295632960435640660455809957518268417169491684808740061125076103151404767934876326352708564163503532906166141973654330057707460181663228477016826061123971411950828817217706287648124815831934227950407600725811621094311058018242046094258501382459505269195181871732817434789280063492285128361148743002151850154699374206476623010143922080543783752730131522867857077189209802779861893918060799735244717452716866084053984011658460923933932280339225558797737876092148005175384152973043186526823845471257744467923214403479360297869807172666711648255019591832422824549238593112629451979318593166171386119529888116335610762426883728318509412368045449190251566573543176343292490178668969623387508327384022596203479075416383105453077892854169578220293386856236691131137970156931300583571390540167275412763687246710515303454829502017758344331308720930164541335341858663695710519201223600013481537140605006598256037702553140986470705496161839364846367302807282436080578647538591788429958155288818068865492552246969691179404852640079023559802730699867128001571166580146988849210146617082996860692988219441134113535902271167982315709852541904414553003541269448797316668605995870674700607222598831416918816243304575731271976703974050852710239264350919631989330118022730157606481400420276112361182628228561767612237287535825491049187987880113098195514916203320529644004104059015255100726298713697954530817884879784391390225026100996150500170477947653350815811427314524382329760425286549613212419526696314906649045198541694035543529287909034435041610883628894045121840690167776904304928191841998326357312172530123695653793314258711483120476961372791054709268754983817833901514746829363497417208533728901532178489536009823437944844350191710175233735979543075037114515247483604189066181279438715784498114262762275613459110050959041560706612673317534120718488373321345903821186142280847070402556806060052332890641237367491696670298041190397745110506488174867169467704240142520596700232813833058422510221328466443306979420834106920546198903264636108576633880257741390849488669686783112467233179091513064414017796503933517534776247444486981217960795702519137038155028609022847954788282628709639154193903602169364524977170277094583300766786945871479724795374211320517071962145224662885576411151140567164624750188847477533327781015593540878416959111812721526311516089122025169837493909431325696648863771942843770828443733090441052622151139973116619233808388868720633098470628041063055231707720371596207177678069286356672736846577582056313249128643008935800189165505562265937077544234046745305307046237251635512407821828870870222648626483316991962927351818927903702703044229826811318147813802092342859308062536612312093351065864166755826530719098526077866735414827623771143916781310384533394070956600623369250384835905753122930876509539047724687882098665812593361386563836328305089589587550884801885262523879928057632212405430731812985343789885729354832092031195641103237612043889104837485979583096893759372990594099338389210763731456703264240078921891137259239199418855299238325045582481574024713067680152459902886713695733713465557416656173251943068649189255865078851349617883634041066211199755276499277989258130051090643664830849961149951905895127760056098828137847842113658582624089543323294808586630881477184772149561560411917540779142216632985037928750961786293540222455294226484208600296085847451591698935001299182768308619585137686478364550802391830727430126465413217643759914589808101874003221608638805323298360253871148163227715196746384187754851230109483150549247567623091731307676134385336972895208602639326603597677942174119081269824781811757025360568762962850390664415523474023612757456315542613603444794645297544302180546849789428591641348642874872867563654602845774858074304834747476488135789677054404378282979877268929757897691906328365100264378709046036183966419622674453973553455874032660925327857141951427653118217178840200270302807276387081430276126147148694931879562174026009906035775871785891841249113484067972843539712830815579915015949711461163643451031566523452430814462168734822235746534378089838495892584820726000066421470325626749752873505425144227742343172520689542849939923890431339038799262519463527923347785456677921501412649592440262250364930675619024475247621057003196924644322961054178894883496008409725666075073202793652903754687866747184582520111855760572411739976684925108112825334992815590311658364841575274490530543062412359448378559253055534558277690125500929728096251590987800124316400380610513432135706881464058134982127270146083374436130700936509801072925956629038629660234023768649855823913983592889625676174063668592506762000158784694708342139114319870912832333313218472711683171489216915207368475217902336222053478745008003938148919528845642609828092866299092300821845537579641841588008893133131168981519747210452174652145447554784130531879536476986271283177435491440681514102166739180365803565847243703108841880352994760173676448218119210395760231413204429369609318225683669877138792267090770503786318445812209677138279849589624072512811220571131172211383009313992954778060863848525304186240027591755451937120355114302861061215568994178283435961710646340107100778626978270245788876018285181147357800716324588393125233845266180721445364509182817483563377147036462045394939467323499627371058165337345780088707431904735612049391075966092724508389024425053260990043769776529612058970728907049687871126156255602119085907577226707342038806099974582444331650555024720832082846156575664969162209226125675420105643716796682925644781506636611268450273210541012827678242265688279126245979923964242970746190936199099903392187064436711446724580694776932475899259363808374614954141830493903917834750421957807901742047480729925281445572513517537996131398997480001187900649842589820519112882453863039567996060483381320682301186840198129308610938884682459219129312594970948451138402674373522806148352062571372308458422063900216803443599046470677161620265638899313238001247005804450659626830825616380029940953085726367342215219106678075528994104555355015329951041253450269799282701649906292757109235963911535038633552465460200798154648053920551332720213426650517155520109848609165043677463940053736772984211825027677308344711563040723426342886809263894362777862862546626071146815515940551022540634097992670376906962308604099708639026473006812650762924502656924133618575840184467772259024441283481694209181216646267275238642433819265299993225941399058984256569691130104230404916196380987235285201791439204315646205769972271916790433324479298577774254934361067837670361499637289120122215532086458646762465286776070399945181640256350153691234731753755412284026999968574860785649315405837136940581994132621360878345301745771038061774581839981633027169150414710732789254520631877504885787244446492239514639282165109297469866090991663615065698832336837492629686748579578284557990647075920808299546856473093439060175072541055212910637862668755149353919406970345376498845375153494090479181333034898149498899648508557805458212027483215975792759659357979997629630827982653948878926772083152181423512030127148628203917087003518275266245389722600220190187246857895170751151837814805370141442257729045180375987650456590117503870324094737840626723560134569674428519301051027816705122838038114964895397349539647227858957549871391728756415686308657129177170045000405493263062784928247862814313997425042983626120568200094852467139849708996809713946143978719675086299824974507198123344279825044786510355749705327284177930990817924910051623109844623731745104943492572059796271802822366986363114622841306780102002065640551393548817583156939720010358443028463408068323330683419870522012733969721676148703196458134571623100630263580603191750460269916957225321852593375976325286453639955645006227201872487614151010605455680641284350158376855641694005018989519058569128678566461146121072509889126226206483249615842517560837994056852845779617623602613694124141044425290162783557342721221673500072153286696879181399223143459654754735976177992671657032168851820345913431534951132672841577129523166654903262883651986515648013218053750774951011815355902031358769996329928987078925710593310284541152102131005478532657678679722013751385507948819506419626139861386451351870216130082337850245973956200947740631990142618687301356498397731953065253393241747772933476415861931709112740931920937720864999037930671922525139524533108940953929073603859681338917170862228954178928646633605180769244422085850596333814770208553051173263063259755881633081798296144707426465051456809511961461269108835431078708436647405839421918623119395736798681283996222913170076396926758924737043251035123797555257008759709441881757055105919876064573507998535971833694465006365229922678794288606503340566431863183295388123900078636708483920776856957443045604075735008681969640706727191247392059972460061666574721967755909927011565339966870999535244463933528979239211634892805402268580670153907265645436198342359435370234436780472323068438255688517412067176172715690343652815347307273552653893298626182485492803721518264094430424133189278629496239580356870989130017886692463405374307216116041239791869951975061921057814305979687282604700632045231453576784314086673802077921864182988607563827657924290768364616668111791910012163072462872860274759005942001429084498629089659331347741598494578891873095809243574456086955291691168111871153652708854076054665509615208363391212010210353355533307795189957608349142380589167655626484557692602754107505020056521450665605163399744741047335156516318291707037648832554825348874818863895474590743397175811112170893228833679217245767115118796802142645243553193194291814178141414555843196247216983284382495566683754471287939074617679323058386717084581231336585110896055884930320927759395265069900298142329824437456925775864592524730259091008560932559331634530008221041666056644717940931427894478357223292600487174085424185874754193221007830072615934115464912941847643168244884394868749504066565969660908850153763797252024128198844913984201833962974762440546407581455884758833445940270007237928003205148022719708197730828323434528773062407239880640968095004227767982495526853175339949786552684431281163789096899891711759756661343083682141321039222766018321064183533638742260722587638248157892279836667356215255179236203187314339825160851987415450616024507176174384922712389157114833454398976704245832037170641854980031482078572846166333263119591889997381056048564247849422906285781862858311921152283610864949768731130296848493019136112554987767499870640737014687768501908057367950691129866906321998305878349577449788468382519356460327573446572402844163408242557930228826645591076277054075555596863553842918907607476639521209105372699783190200650714059907151281402654092629631873459783273992073597226005246048781626922160450388362180199850627357642285682497767486589798370788016257137928267747787254656413142069847362973909815046512729440448894127163062187939998389579124623987053268512519180208699594382972095685892052999372962663291958699665430486170580559769549288601048821303514639804624836312776973859308002425186514545038126987612229052103362154512531991517714893559510649010322469311011711524075802364839151440098836857238857419028119808596331444783934647262648388857359773446527415685277708270854108694597046849628479326651517833418949029048713526002358973769695709689301188975964406549132481600780417526377583669889366196627613895052365999228282575456406245239848152163719876970206841371076980350672336516026659054404784345668593497823414374013422544582742847899017998253229053763303130646023181937431113915834405673690624128019085798577795794821362753288699163986195769787128013157839439484892886828342739084501296848237089729410662401564904089203662116699830990596109673130186499370481142366383288647244449413399761251426377736563311226382388989461600926603699238836986906268205558344525443765686842176671859789302217333460897731589321010476319414374862301036232384694497560772983449649000912188950019581686939976462205021887354629626352867056220845534074588361685971041615384869105216750802291111480372861825117060031119560842557024395628472034737836131803544871517208792237003621439238997010374080858377424500922027015414183601936910674102406086410965150692264534097292008737660448117357670166623456755178249817974556120128029865143060993012812376021939495083201232614216956674939815747394110711100150940598883145132692453901257781261127941920362469171376407765203165811523286154304780751203052231005354389833918821818694693040064698437826112506785457625454755347415239621374690439273705361986225865163137507611523371644248995105760631499995914445858895436577629048725635411832373117530145999160469485837736197301357798482230295853594404695486050364593907530450611859141944694712091133797126980863715847794317478985887324870878416647045178218143574271258773748170812797190782783424659903672515544011197908294014393706432555808599470220207058439414539701839797012267382978115863035549465382715340867405288890875505868496458090056840327153093596694156578444676339290669595058660324774776704076083329193583848125776736837075788962898729179889767336162865679604419535389719762203771498391830216998752752000677125661220006322501595215243265615404654180587859071471911056889123726954697218387443908958800869526004498106254040614699246931772910828752713194255714801308271713657772544075923147687517229677250534165824090998733101974494119689660572749034958773453382068222643623939706505070532329902961160824790781690241090643068063772248948508464601185021305597358875900394448644817418424482869610046015263757647573044872523129832461616897364065907752705570766983303252018418809463027315294159004953619739614101864145629521172765812363070458484452560439283808771443588632511522585819005504572208883549134179930714683221742923249533216330171465549401306266221691391341766179201654072636068460284482914587485944168499723174622274051129701323798828181527832366928547096165065412611727698036475408327318389172055041450383655633101250206342367753361544329685981564499967231420415461702332392062754793340108819837016664582732853100902411158496976501112250543144541552490972695010675208411240058794616306278345078431507140136907864855597543721438471646721493004662314863728478808005743283310018456804359522702621243048807601752468941828441538813390942053413296409037971423098675866543749894156459013694098749480539945690178492810691345141128197400091927824319268229474458291535683314179092937008496648463981506798384845125374153198238472817903447659098904042939439453722685273087939822826501745614439380286157791266128870985334184261557767774519860852641661327166210165457625286161851326070360621020871922571777283098825274626333809342138225816236743563335293282897852868342531182568144687458690265784593910856294079683049917836426821881667693050429941626616666187922859803137942342575612759624822514735360068509762369726440755661539586454551065211681677473225009706285158828843665920309162327049125745452690589248902990608781061231774406499764533833795040809623117373341028455007238117373092020956614116417340584527809418205834755237653794681556644109772761774210265753177001135430013378459012333667678698812287983065429902600167936445717810024396209012118151661986366523577216292329619763826093293961401024397026401654433348269255820253331451553776689681605119896728347163311383430943659168534852312776307743765831201502256541747281202839791864048116833017250959200887053720743520247418275810181488694287178207915877690061983244158992089272108555644857007296723720776570617412053746418391597173938300341762019076427991942140162065483881363427615413294443603541360486211749624977244026532063757448475779282948675036122072641177798793116296225212591062660401055241869095557667087895245911735707454507209095131759282033365044754160526665676530821457934186021724839306384204419189161911219802760125038121132807967792073396809395898383944734453736516736496626777342587271706390790231280774868510217606630712527334085076234474607095780076115428903249494992686046070289035541497472993405643704165018804071689567380049908773159053531933503526110207353804537294157427452042247541663847675824641329046860423175221041112648219067531243753355957340466422444559699589735963101559295080528826524953452542396993748456592764394285559470627780429552097817630319628247408540862791760410209244259071481671403319791786598638076552209315650551235612698632043081364570118859697561318231915168686842439774967316937457337404821153953040625028893093262655036517412978330299990426795132994498569836846226989580885939450897991458253422905813212511345750684303354364865944397065128690979367218011362251259926148205454476311941349828442585393853967800229609237277497887843408703416131058742142778168697538161242680951794063998238149168325120181339172510914502245880255803849358432912192282820655125735944246766073160510109059893516200814310417171486000571887477944226366499263584985667181943614151232168693702959050590982634289355312194491008507986065503553033547454774093951798685322839157029577773923819118662685145468657675999449210533921500914585352103797921166749279546464304040442763710445284367147392554926687388674281011312888887232729933482081708068369789530180995431815016732100453258744446569866199045971861234520018281568017153841136956005039950266223564456794496664489637232359406829242535368848658104966121057182588439670987785393323966707773440796185770126335006718829274828052102220644684884643812368902272085167236081476639541172695753633010723632735656133288334237744962927818763006570720305829335731482980227359032511229203687933708870103240267948850268196522130600898511825095382098617434065591747390129104160740783931732802154284745851221392192111375199797163698748809893781154703627318114762198264206721595334048723521015725544824359216747419008831830798842739087205773432191665060247475659788984286368414117977646920752266538174116718968239565377616243330836356641242959631527851194233170705709504011441900220449436058351899767941423362278712442499977578860214755408720902281217216304633880459482756545955520767959136597075261740574804720741091460395050677610348877484133202629739768006849298001637383937883751443355311140944424597270724256664486869078629353669829546501131456768068381943158014889372687194757285171701710103388769410747060665039689223143667390722096312835290370778802197943699388600874962843131323689532770810134044388658658130340830702126810638251114703575795366602047841826103568805132711736814443363071433529944643470319471690277734761145638055162132945497897250666010862240108353457376548311961394074422045083541498786909944390480019533939248475339742213172384457434888892183257258657406419239482571979204529981443537027554702360451957671077739202756303983601040946958057245390697940569388879626162402845114233946119766390332250348667807594030912163323493842568988984702320286402506295208210656639397038548024395526454537908327146269345874484615735162945690005047740352066988722647476279305773017436294912898544370601133008716482509750719967643455579833610538679528558682833156868176217881207891120907275442592739626026355718062970969213906033574563071575778815490068333118621721702703494543769212318501139514859030403997595515207228840887418977407743431750783606164399421891673926595264069719674977509027759037838478020237593747733981651194026386546826984449359804917366600449641404089361875360239108882528152380628204018103234028453423634619005696781345765672121697571101095497680830084484549671801338908013904947944354301988928308483466268992963909781480950846308015766018988686852086083668819943557341673313278721917543838820322628323816688102200302511003121157654469838362312471926368733026266693399368553210678793038433071450972362362640802475195479291257413187167505998512437488094296563641799683219569800686760945116873732762216026256457840966672021332684808841662408452336004826812336674737747803970814949921340813225419668311553571944715863631210186658161394497862828352011654263354768518354900943217818471819262430832737894766346581087050858430906538849373571018070763434760903102775766600085958207375205658568995338761870107919343943429326779778214251670029548701337104045409579150179334220462867777419228741763140260472675935972275222498539930546756749037535567061120188157332421691094104323276547328386333282078420665857998288127166277311651550128106159205799260800995668558093654947010774855586522141984792277628140607278354107432126684833750131227423763196617898105317379757183722183024511695065131950317104143369931494441342996232232926834029524272106645611510181817520488967587342220720206827367134195628290141750469276438369205524173405540411562487858489099793838607530065183892212609463414715704257161158074967170409761204312757299524331415339813871903475379669665726456885297567313453627011989352778877355581398005825215313576540127655839668357046598246076244391985053930401949749774292346297922586305116038286373485894159024184780706011056396114085672804851157867274982125681729115235866793569130637228133460753333595339458187643705471026495254326964458598027088517935620061508067419182289036903358767229466029715806671338288221360748185301054775873665555229070049481083512570802899844496902445157964608067008291136381556975381408996813864665044549502141783858927860386165327678160605318208992131830404472628433360592385983887349776195954190414560082446625016635334105341469544346595614329573811677878825315356427838850407432248672854763926238958761987189582641863318367344094878178298745212214110667976026873799265749452393904389968900707531567086574936345828143553241187909924980408264500649255944382252451140561922714041617461478044845935049552216088768804671868183995819031517716927026463821086788583488771005836671796433788057131352882737379397679388401140616050060463944171146439705467320407241555031071237495708415628347123500327497560109136235202614112482770371812736880115529763586040739431109275061664032879252989021092853202952089843004859453520085412628567793334364044517763705256696116516620782486758188099247931395811427769663532700225791243222268495209372570311943956812225779243143013259161894454176552086653993272445179916085380566214114730612003220584383344352074375701073787548361827029136458922387688331038676558243976679210892920826628429245213732798385847196308621430786805697351766306456143089295530945353412174015298831535866604714082165396919235140401851775340853670124832268046686903755295932704935467755690564614890030130105719766518563693520264507494218268040137482131824027507727572473636342469565999206033163427127690514303030046465888060876084785638063018589133109107452769110912354810865335873090003318977590045751989349184891516326231695455478575560859178474685637559949177586258492945415507790390547051076395384343229352010432013437891540848710541799595524170925492616853040304791848021932121999296796354027572287971435239422195625275610971954528620992561453584574917574920812530670164143257075808946340873337615233426996974084414864429509432346029218473212987325801992574629237066992436677754512585546500298513280426836903573645173354559905368075633948128879451775065250525630108685214837821458185071614419667247389648197462445517868360865135516278752158268464739634767377956481189150905362117530072728536240878352005883538862327757285990147275630192723500748960589135752349455513725931604626254551595116931116525020556765475517252071971580452419680192769476326803755988488123254893737708819244293265832141944814058312843550168950898748503769573861208575897469604347252134410531299147473509272524651694063416385326241845901576480943995781391754395952087670648432733641192523689834007898121192073629412632151159048206504570697950999943992867152381867920704870982106943550511781635858634911925399907696598810899799624218343179609241960568018343794258832150714248200853255365967364163930701963974418463086987018138151988311846657882488973651640231994897966622023761039289834987939610856266029691167373897680305064988345646316750497943932413519747095117050692621477397451462247607119258167617540127982606234919016601754591035546406209078283085293722637066108034486724397513564974133781445035440752425013211887963645510427228881991887500059062402221480783996048661721574109991736694770525145107204722055402281494110887503827978660097242759136377216265694790786844490035344589436646690682102123143689801699935080404322574056809826624434268939062983981103004402806623177143316020259638187393609479273176400367159199685774867588887675540357594676336781852154981233248231554634665665709821854078028733472411984463505972524437901664724300012992796894343947950175332401658460279220770340183756466458331117410578637095739507058448590676107615108481228047042995476865779672511764354109840041449627784669224300474930277407285349201137800292918615960210821782130910651014441947998303296599272808564911184177980613755438201759661816614677582921968577056859701858205313290985072855890188226982958084953673787863886241834258105062337343253311466659935001542622734942542322902838021041092447843092532295655737006805128246217893531882441493980165582129653443088841523093938274137442765548770291705578135675998870510158146781356018619856934040666362277428936868354285509733465175039804208945362570090460017877321712397062785622502553820933947651116716136972788184415398361395745758725827039757374319052034599842904557588514698225361775644774125513182508483279276741165790097856340142735723474531130924642611471221062472416315684250209188591682197368206193600656420639350200141693118320235495137487657545376928841223341667311870329682846025313843816458003925432250093703354968736759690620526152117787030439538104166446574758289859381738898044040812147906577890386606781816783811904941489404942488046297461254303365106359855612716200013799627789989003483243490764947710871179149750080495927332139301175864511089584026050853720474692620199130180621903959147681048090308388671294886818185212944399846064663967816762461510408072358476844571565212903904905161201275173956186915567684336666877249942102626743891727230346751498621859486648296083038279803290227709620604396631185696559993882171745792096544254807101762496470004264088316058166929969164573545025622178181778844881027260717508021188949329076221989035692644087181921956948607749115854482754983181777411504755827725589540486885559008272399256054534140268037530842894814951387881982325118814464616706343746886008862530358124406268302159637296888005528126111751324552456515636660666802342967927762949212573759728637541630137526086772578604435789748315948629676948117667493596817128157715734986247083330604428196989333088892837816531821462082469351326655967117542808123202712687153074523092499390829163687466270818515850977473284572998156024888880402751323915154864617969701943185270160046006692230314516363332475069418255284411787405504938552230459866965823605981914800674531836348254061008419640019250545549716805826330930138640978484145136298636416447422324478751324540984378314668656283554501435463386021861878958728441317157443796533159280152214967166706125192878571184931783050473771949646742971057977472994026570928872478194707778375952004502648548754406396864072791184970878531181329816489136268994976797032986411479253969409790824356375369782933538212921486897124442083920911816176828632136222450135082273713699999949253901932096250260821592899584698764470789546461884546586985620434087352473525103337025608371215344424728798816777309338664671411049454709272519431586929262233998855108643245556048587351386604172254909434112916236581385556030786671337374555039326851321366961742071831734146011317961852529496220531675491818830966621733348567336103132699668521608200385301806240725777624887903022403823545924389597167448215933571478923042304574229195420437024923388161701616522679187119321874153413698372840140932806003031554366774510567516826409080576982367088879064827505396246980120664967983685369131653019018530699441756939707290871832323777757353055563675421595715708345680427102891401700128090804208162606850450032571662556730945746648474618068884116540292302588968009758863021675123806577601100598153753771717018543499351149257189353304428964842699668735039794942652985633433192872255677891016131624535352497758578338355930059869046979240631892567469083620044802881897122464029959801229398163137345175171696531016534393670087468709562140649958264294530411077808552382502225479564432111300883528852610526803900431390382382082196962624007501152395452972137276783654836915253973655455839344934718680203828931215692115369627846484495409391395999999903610409640191744378159476444732329327156329615545357227570916259595007993336290438033357359355997991721975470830942851045458718152382255991325370267305662780625897281339280012983771485551552106721283854177186330686119139062490662148212053452085875451949473281172265574532352981451505489206910408999615722584663411437471792983006712582067421402959694959740123191291982068483830544136306279430584657309849737978170324405002615152481479941059326857918123183495443978545001252906947298921339275840631305691645524845405785920690224277437398538960870917533341417512947850669435362815398710236776373553133681637258681470434290480382235128294046873027506011217781313075053464124954960273755252489314406760453183695619654165647369504676729265544658454245650197250144453307646114444153255485288018089611839466055399305565575064817048500872367919147808628454897531869937033286890962818209137341077195539339657015608192008193992958447079982823374956589623080477522766993997003778066221487393096499682290871414926970253883105819750307950276745936960508429200075517322808894451523924176574792485980717669140560810281983772630639410660417627028576505550965655877677800810932898280145637259122419801906758956391764650659949965827295099764727710353441071375090158528991661835002534667922379013131783907637739033037579022652779310167272163982181448626035202818407445961240913306816809783607102677280000393654020778642536092574620721299165944365729809502755822899170088084575948079127672053339819012240412997952636531241384781570424037956115245747184775382592411537073912516816801158634774326977831224093016422397783357223521876736994734548954196117990330410868009275338129148090044239876106568851613502898212313031908503077650238936442204264828870956842566201200813119276929015978037657382325273466134578378887232965204845311894436781499188602212232345753905856732092029180342827665929536620749283832210028850286801650336925516733973110273953083191908282317536806897634644304481007136553467399490415452137116526956649444732601908317106716221750852314302794935437644651796072299723767829988196561445192974439331521774482907126864394494458485529063982865108223015794144183546608597760978551790062314665208170595035888497530973215104990939856569966170260239552039652261898268567224624907682022848681955334058318991859617571155753716746481077765045152091189641269110631256500404722705174166062539397199038696939096170740741775155414298897450063897017273823839872522732559712851265452855818541938554385164869125049460456194564839089983965245400710811922877298069287112807048928584254312163974478969454122973451244466365887522378692255215741304930803606916370236302132512153590276054321784608048080978920354796633232633887896898639793138319945070335725906287050973478465532021299460879073587717190523057175549062286236497059205878132477346626058534393660745278072664260320476145661688219960501565148584356924159445605481639412008306696468543941579293740409774049937112513201627066845846529366670034188289993562702933864897261759541347088542524715394542885296242368117567408619813570861043690197260496919000573038091978250330005542232342317394196732517389990275252412761617188371874398590368980102868317935335611509617950900325147748329939003511127154905364354273853761793591785215214907430575579014489063030590495238103828326337975495104393646072053088966254023771846190374663128450150675792577039734738133015423432850285434006419269283310328507202095397944128288928102010617222060306394188014565476903453870235401752827886379649416557078828062319853286167178015940390793835387476424300234359821814107150610341798239741571445919326089908543573939850333028376032911516243700464690771091062554037505928769135896571811665529664916938848581426608652917130776988044880846691406392747360536341186236600545913450887381005898519631298393617508383381902680252524130722917020076910307145568586010645095735287288002728196919269789221873751208211608904151970440829629438927764378410086077224644633601816587958834313097541380422881480753002658378149465669095179907864878961003623639018817778877404588905428348303054984111653317343339525128068592627581736121316744682811850431317592167932303296601880841616876739210352694752161418527702922479136789352590752699571271972653463499862320552785097200040622858337960750949427113989971556383326420051261740441359505644422427628841412079397289247907880333037395618849352526030076131815634977900754967348208090152059931282889415969552914538615998919325400029348780723553140091391414423228511573958260300413618079729707764514138036421449534954244865757031802961981976672151948281818845680204196323142853366782344607774043912034485918736315455381323249695604885274385858886818147231981701180745497969617501723268773441615650052624175216011872643192554033548774736123058188868450341096676786107741920602550325984344309967913133024564475418931766075836801148829362871663461331176462044956946212577147976643200952015797435564556618477795230650537976979588367144814942176640921977595674973573959497800028782418055312562605187882010111089505222337801067257069872196745559300075914574087245891938437474882939454063314320438984560593322381782062442409768278761138276164772229777152264715105234196403764622327837830764968623280430512239438361853919470750337517711249778345948576420690740573207413031054312512557696173361994774603433384604263396221707120912548303022135907956266208416643773741947604524996876801471267072660988810693253782912884245780983213703754595081655466367168754305854788306989471821206520121072066467048580370348887942389351564827123383235042143561089330828126396584478758198748958379872871257744134194282150753539832964504037126380777998222038573876802607895421483861772492575360177326368007136711333962783685222372274809976403370031332301994126164580554308931779646067877240334028728394409939409366080215786823969959639229611597906862584161744277550965761333794864935545860730032257532524638407890818048196436920982530221897498051486982048370544083393930867608338905791761929420646905040203331391685146387119578589424965977445143132433523598655602653473820044535465907490894759297457284007198903934032218911838422782072656455917844597255019615910527711801243666688792061899135601911625445354180512487112450057157087505795121372544376453582076019893828750592401555916111202739162817043889733642053285384182965430498008555917808215972911646634071151407690638311007608942864771227881160622968896041288247415453093166532492830242501203252639225848683832902882778789396742875783028003965209089806167532514677003332859634424834708498291089319327275739485222050913395769954631309421896017941098908353974825856967382340733665582380552021938324266775838506478653452041572336265298842525784735249347319896647334563119172318492474645985273377906201693023433419614942139339481669195314329096179171032010393928538828519007888667639531120178965257224749972146711863055207590771355606614007826515062836692996735248272511781335050243355690702117530103032991513128540788980459867365308798749704459063900391378041681807557146821220615920671555513695181109660571075989409235156114246315675989351781469312353833231008354053072989183453900316559770831360582129552092514796133416794159400639600285604621668263957456310142607065426556167188474965492257395097086516500011667642349184524819093627711748319656744335166409447563613867388605561638248936801184927243556310668839851607248019276288345683739504779530574676513940326933376197961798477787497288615664861272505578146292999121388816772697196796319488150426031449748482288371724749466142043204716658320864033125190485591556352250785993000955044632550543386908470456398870939725604392589402141787186147684719745211087544458160131584150447565290660347329838057401238052166485967745413271264348954637976922922095077275568032157181265143729149343513883822866899099542477751294223841874586373771821443498312462297069282825201031228885608518912981637004028190167664747446594036257924111744311279938539263136114747538156617227689872871451730971702012557954413187352170139429840993069728541572689293309569343561134706250826508177665266152303169595088110758460191049836793605136584459915831624686284805828132370987850250063778370261111180823903305115265405298570824643106371077265864051813707642865032891333790260564372973723577351215473131573754573102187862844035682194842719219086268405467129453332017768810128709412056256335496227452150515289701636685991806590913054039396014480551778597298601385210771348126930827230425500654578878714052168580737207109437050725862173650189606195142908289505490135999630476357441367494589825372464079328736360444572183242550537685477278342171838250665760647868581499361644218905625421189768030040468356056684429791569565934995909264400623728820688673972885393343584836395890835197666855798010090382084102099612908882537458675759850325796536136652924268217466248736640273616506461284000719310673045184512299191392273432094280177283142546818105326838741837857138436234638379366440305223288914529254198905369212234653834372335298228952161773274868146594790262313291092200633195525759823227949488977118203117003991871519221177208814563034250897815278462349605428707610304528427890215884641656847154234444652416721607229893232892693301894889517509073333640902316983429705219009032409589669690109394297178249415134945692199701330262886574949980989509608975171858325894553926712195175259201669954876000055635017118840129741883346443609814741794642061503809771871203128577069035225850580531022520345772592148415352055524486292698986577217010234900204157470766238130663410055842129909257086829928151336449296351053005417297189184409876901083524816860441302801287657878391958958416421033347539422382653896184737938517673960233079049162580502962927008032742102262297433759958384522931364386389399500605043404378026067167784021846123860759292596433932182528958543210631054419946597369959291324130701258123875090281685967265966232955221169201067844154118429228323324767161314419169556204519138153402876308230257196285465042573832465645006502292023509896708011715491945587797915114269934934697640932989598444284269672964711793679407818496595633060229039617481512411223301475777976197745290033914962463657184557174201903175574715018688202551436942415208774373042717202465160081155089091556426968076672693725891726749200874248069172825268611632183184016075363304133246315940263752417205292018912880035945382749868465819100347816994255324369752864393624077828421768323532807553435539550711112353268301747776895805976315927466749351109166916327328368736149677227421716592345280622457296033139673803287589006406994320589127173926753209673366157343371724910692926910206246897728934323421217641009717012100582139356109703541233309249328827387463550571628303369310420005681994199451675237033041350727378837124149580910891715290959663674990815678775807290867020031417892852814349467028097154246357550633488005088795446417042164786440794562966581945070773306920212521147862053564144204598283042824195569591900518183065572170107017422530248697538161088089141012000374777713383890204109741014695997859317048088143436884271996596065577462422833783819384088408836336383363798026517259920398416150970068292689093696986711679750854749884428726523544595092651819717849003169746953206049561828328482788158800158184372305632715291414651272059723726744804051098605712976714349411793728309172215892196933350102668863320969326356696206409218677890773742036021644073869399051260668637113787239595874216224294839710142136375796723730910930355028250679361184375975485284185679149798268319411573770293884163768865120977555567674902133179081245296751147369968375947849667209108062572924485868750625712418466335211935708150013476893150809689212632918717283118460502643230367991588674101519955146747003502233150029850656089979422268360625090279830230119543581278087297811313648873436861559074697382388533110892041959902637535888420826070901138576957348032010077598325670977002793140371422908068020077458155564221385377939567675709043362948452229179602476291423404222267387502643598551487375219130809447642828959702058849116781795474851663707435378302864271388620367901167297619706375571872921185896375262973315958995711043783329018035194061515844247242988254397597961596836336662746085909165556700968661518455170897163317612843964558117476907772097399281719633427956294162600625765542160899396235641176293314175647967062444567053838356508259843640604485005973073360670322476096448167578923017740218377598571106140032745870758689377212404823357344169135051653207372532445340554564718574448720919000201110074151582749098812345185035368896971802979096231736662738986883817888701546841365185684976774721285542378986889869118810918457811540560797995191443272043262232364086834687092236401353561389391105820053708521859743506604392995585054577873706666304032503686349928673597961405118121874885585785916958935279091092232338951345009689613986587356213048657335486181531023060948767048909199992554315724733794869542399119101194677976463036773054490819832589862530548216179002663628324682027252612922361316332166225689326019115545976072065587087518435034387820327225877031592967569221767701344888921333269937373678062821506324859461090220460759952458683074768483458859858973454456099523902360840279253518425905716602408715054645773524749527207310535450715342733647400090751634616330863433010961300024307798413336480673119888340031142401155064748595173763091858655042538731468544721181735309499132134883209084677076654896259280188477807703571502519769570281408428105546447912765016704949104140918952025186270077952379954191919031889181524974146096817996129869774556400742429526559637710192322034344375670630608080665551811886072366000641678341753416549393588936754055581008781724688395437504444416935782753997461273594670543429024165294103438910036650141826991136729635122391351357481716389297003809662183081997517272409651935390855379778389777251630938749880978862693093390802589034287291451650826061221413008903183813253923144478670240523645755055719191073466669723723861367226122572151193755211579556136613279042921573951021357720606374643338405168493879264402882869485517053251315656251966141412784878347561425501940498081854317579829184688504656947899975203780511620348026729278515558649795009176845869139220968663484632653362695072372148985357930140693555866258556307721282409893873325689397073017916727997777253140916270134467351017350461725834049838374270125820646231830720666554315276480041063479460693720454712057057621021892238276752141050912213435199111757202029782027880907682311918485057135331768218154113260056491530430091902329376864527451433099537876011777158526088723484411470450272880017849715175417408696204203636583752144600217167329159653713660441093393921257017106650951538520220350638936413170428170541856718739829823459062032354562321577286654552036500575565202990850978850790886569065060400059147514795498260868426277157960419833058669782435965958121046184573343907103269941805155815350005515925634975005334468573046858191575447057110223838453951249469808229664944949762050639035351254569364122323745818053736363452711132701572058991350150251965421471716472082779955720052401292625266621080612996163260754155939848058940336623883923254737210370502445319696001931240046674813184174772836394430205930613035432030272566283556014757866610790262282497392784425042524304633328585807545498536305117630046912890101879580985821710703595263219509380311919638706219723353104456822697605295813560179894461539042810090846929831443711278252470748797581580742305208700927712465927772582139052836239246997823413703019754616684980805341764407991267237147753651285837411425950795741257860929961649207456248906367303697813617489581811951015913929937543566614691277949173144815765645904826773362046606322381554148343240002698303622136369646630847664234889398622154546582490088155806647444794259167643464861307430446917015531017143288409502694463449920632515810550139844606609488221456327985889412466655661707602111334070589954587960454068762503676452215191871503820850640762814700170194276513175138033487526153372951853300112021521176536485161976271493884580791207143727705734605616845094935219127198919742275279620206924202199068864065490685405275416365694517412014992400924618589882757075682672466589973182950964183646518209449723529059429548978254263158959468191708596781139089602458237395498866838542168650463153452563106600433163244624289302711783605562957791342727277011665533787407333941430033570876974132855426007629910517851196925545487559634860446909107931911876380520455803479839000348071395177029347490930245415654213225446264463413660586507651548853290979406116622728604746820040145269452000505191707025479433188041754847380868768018911830293682597349462624690837536829383847465254289767109692824147131210285975954896498775948967070645003601533559171349540698426950531421252323357083215698526154603338716479588873073632000938614685801374009160655109925154427941064844726787208670304706899820223962384080342659448557748172659929182286623312989607016717959648486310535637306375017946133595673430050383042467179306929272242359544268379474980132207786899721752509634992821208877810400483652020839223544732290773567761319911786493496685158912366309680782174123092532946271062769509482894279833858591227860943920768620290175636909894933185203973048842496533734305239842361467304835003536951639935341455186896002626660233179403589753623392186482597099357784535852230773347250012363654649958773585537576561629902260742868068410028389959157218494425373646763912687942275092060333625785417718339727301798947060156645002765805881404882629141181684814935789167969204978842061432615244125648242421258594034431185771134251343743335215219582515536289731256405074268857402134854760358938379075591024606095996202333912703631355373612252153547023855914498787881489656669155280613896973762095386943199207242484729328554077186423877950338152331411238473886555000202046010179790978078657271099842316877581163177756858544944494734605049919546034406674626329884644104111779013051127265746712139817066978936722793523722610557114684384491840042725066117256515227071030309064508604521811956516025933043840491784238971366054342395777072365896283289530165556398897086441604298513682165145464959923613097402240869844828425528767440388809517091965703386330565363551843457015079598751812207714501992462181645438472902666436852371923182768033438059720137726888263455529107953165151425944869966474382828884675149339452364554449416354687897232129084606524170214007077861560451139963419794840923072037196818032552844698140580988153371656317692290882668943485847983435187487081252898618585826114414201813211503350163648068681986301163330443346474307648906910321057893654159404718570008051596484529972348472684383806020462134006598311089686557511071023112291611428449690022913122504425593587013439356899559390518264412195953976988365214947994488908442735066499024126105399430545746729032293045897072518447847628454155966031739653313284605219552575137536680586823701533135858148547217513413649406134425903308669082796479787376050975588696821917495746401839547779066420726221392410111270440742968902993582223570355699552848755797742718996567792939233055196449723473001467991972081745384635036226654167064730913047957527679566421171215068484372521458267411729398988366870331568842190575458598913046903286591543691400331300459293255849996560901225753309492971280445553547523420615951028533564507062839454995807546461276609387567196409765772705361455195159684784833834509779411275368093758996751548460132865341661713554342966466896144074796203023611581536431217806162001396790116188176644013445912603570418678685797347859676690813599855101300812533431545398882419832773539210397824378304118817102231045419753005291684981055304368776075855144326371426237566755484767369042029704152575617929467609769606631880971331661597248296429496373394488612431792892101700171470350056011161843636531688101614882452524022734863991806333568677978603026988888821663309073233152743132893844752796438460557829043551287627246834195250554204086965787118875470827101140546736692648280367013318197255390948774756044158131726071178920871599219961084824801189665536816036162152139452018407298895477185184379284267668003535046758583538264570268305661283375199966563375022872726313461659769960094397654968710809066880154539238970377320382137864572888295511250221327106484027279215263568474614381411209565543760755234962633477170687044161710070914966756138132587904079045150100778712963844801639268723461525981800052607306012537458312613942132815962440633764921070825442215641484330644916472832778807844214288470068431845483667848740362292547895744911802550650472757655270307624133043443565083935846256581765189315428171206924027981745973081142160505964678400594984900461686034870570872318616941613698409173686779422071428867940051227824806494675398113880921778145890642778837098748024977940309480296273102172378871393262741870069465936199660796527618907244963225388855661086037365722343010541610312360673159552325551976221959986182859872871302143771190996741630607908329039285002706585702684798438890057617413636929426616840221110787037247741744600895058804795315528493434906260206332702156499279308470159823206992828660482327236958589483004552016672415708333451000926122860349712614198256978495341425168221383441517025546344781895856669098170244346099445243572557601330581239835821778928673131765170770541241976283720599371037161771771203987973092853724961380076722064365834885295073137919681728092413089166998291615037917953756680471690336868537704806752557123317042900337811004784997511828785944807342991478985599537890556112070378409749859985547064776580246773334705656112788458959514318038385612404180012293342594999772694873812172889598120059729290598877446787862302188992548448558161733623084434175799603642423126417733710615278377981340343842668520318882415274708025508362706772991398972256123525153823449756462887006770825624248383672757713541697119176935151226406784192016056088200137636117203953399992590153814315794507294382319231007226970276950269447100967037621842928593019517187115198058832379746747247870936790659750393658488858360578050196854601380694154886742296596438988586172792555219228233940553630065403288718059512540593158270455296361207597473551875164330343154193205362338947374884375640270858706874432226838703638079215372908538923969486525881741698545473175212899302988797960150530331355182447242130576729094233320526910890793796363873421598287013841207213740995182596507850631576257155152978782093700184225172612186464189905833452556586914669948410749849993317161975818681888819422555432911228629350029195207048845693193662672562856003596610538032223653724250557485789472563284051405695244381005248709901949832093712572003358850100244578820831870886944683705914427909361636365429758996935094060075110069977714060966399736682502349740976882253371944721434067078712416946496201465448954599487419064004556963049980529637941341111329723781464829914917026040291698261084947586937924561412178300528805645738431421898355502975296637699481306847668061140914182302747860421555166103002518605155717646514840105655026345681397592000232355525098317561491685094303926678907003848036070942027599969145422660445299737591896752687203608818771863867302178428625846143779702507253935781273157894072254529531139627248036673901926719069380867815236307155661397256978391588641797725155369554367874795381811525015516980506319243018313827228553178421363930500254944638613810542744614578851167462149895261414996637297980144182103781430993262385225821797342421761568555648061996217180071692750096423041276832217459717019206164322991575124536883028258296236422866961265659477084737478859171684205100135247276008668984293069731882169679561301763177391803494396008840024679932811749184495106779354163047791977237430779050541111148442354216256169415048810890821274838195109771725717753563995242625589445213915196414640909294406169292325886744281510018512426558020529802863613029966118584991054117718258852107713204932983504416602351626500620664026870072752835126062318236205670981319894503487916951231073397227519108226297995767064792835790287747670863653807769668649039023428433058049284530302538478380654132762409394313496688315219563093667258140954561986837448351808947628826493466554348035524008741189292044338184533918774132130873562022478259596587178340545384150264958281803323595504143138506748171209954817880650139423198494400688860211149557084070310834263664445806436774428475933028077954488306107443184063928365232842273407242023788151869798295520415263037132152983719211744500278424771851869674642751137229048282604198160852436383634126990857011585086616826980597565649134941659298493495583689156546679339138119227784283351900771739166892648017901489372986726577350007330361575745257836297165148208242584665746245795433809574489660639550409782982446444496790628164122422418278492392709379933406649066811634952356964011672941651726275668442519118699403912370309054036498120367349124647420809124257749034967672586825117481543428336595662992087047086735318018009423100413606860858661643606055836088450058237350635389848932457048540515140803170442261470750603880221675616383743735545847890280948896339465714789644036010921761460125327576182036605228549367988339082295104503825242140272819548958160221268125550614290077587326681174241884411891724398949953542448416174371491201197684232325850716620238417164345039652905476167879855886925876983876457833769970960453793669063081898515817989673809829659528925035498491766965326058981957481064786790349201747532658060207279627997486692054182620643804950329532978090633750088004849363120983458838303727623708906385519235100975049964624909286971862174497415911763060862331860593464627345905896662406381373884292278250741315690461659361677409171680825328248229039038475724590009248298045909531688094444793715404623207018165752266556998183480804270154138946701042365543656706722733755312978091288474679215434703972911093118218984691737214499010429209963799936550189661238336190639947543325332174927201438559866085548108628185668731379263964822738463851133394938184183218092368235918666726944759572140006587193959029845098134546180400095882334566425038406453922827383713573411453869128976414997696609488756002207491169056005977616385063991347199720527361432037688065901792188482203395078572712971867949615487245587808141439233830093320559889778883957688472444707979684981558590076583242963754637821134205033227420552746984376374713269671915911579654810165471512167757252152636541393556048219306399372648173188024154443860199495230587131499658089459632375420939093415301617788176632352225537697629884632207471354698808463450156910301213893693002228622416468008315764419981944192007675976553341979984542026069794617881792404939718587046498534131775319386818728428475317264953052877461854225118957376927260020097781033023838204640586497653785190591126243596912474804138176611969609556783861583827345381092459945581762873285632150256862109353176464940583668776650235667177452310449825311711050334337915936962675433939553549698466796755279397377243631052581494637916657660178222092708055529618101251475284042817601583981593869170898282565177462466289910518347748563212354321231221167949657195880342487179455598943616872019359864632747429568483027420678166219004310004343277343624807670550484038787483383930992843835754304321937462900549417781163566082237420544736324862946940121953493065646949344541026304109553489633456726649067366032759483806785548117702682430417881012777460647472228364062738736465902894165101308354743058488121419051837791533676295831762212812691127290943880454344394474514299891196070362271360931205007211066559259384746932415638491253746151680159964910429605723321848433387259574292620977189162647150177704971358570388058728395764454071715039635340733209308028304637215845949087502608762134383997237213106637028440553574520955688229632674331964322723139439980512318766569869328686431931848825609999737902252695935007986973930355780701510806654490381655063452248331224610084447637882950500944585669756127501969934220633980175403134876597869827503085494750068225608841413436864099920096758200411566696175627000655837276296690242310624260866496406685006905229595243363356884491735643172753365046274050880405173453598946641725777148066626428363734703207708545121350482239224416924342659762003403128392883807309171732442437222787554645138670409580572250169633834791291608550913135848488821279055387110677513452535044981817164668213094651594567193111953890747588634139636701495477277657278683481572088685634389728317327183952258796773761376263234743145891610385484521687582817043301335546974173968658195120173644799069572550475315506120886193463101273919289132962164631830920951930587727651946282349669153935803574251152294015723014390727329804380834311383409344834113777933996219421756279758387779496641584190320966862152570025949978441053782152504384146390192924807523226814632870738934348620336787607211244240700876232297675460625207268866022012633624652630816676206154327222249809514637075313894370662413904903980174958795803404383970980050927535093478169633004221312710143302649829920872611046219056822529782855580631961958235863328010912832866552788694582325429636714626517568359480715364335038160601812650193207595325902638616446783846676828982943840089071509813506989296955302595199450075895601945340954998755866576043445771911307958663838196664065843536058349458451863781640902845868007314992786350761642600806912591864932242732904249298839816078140077555583704669333652878193874265871318483401187963728211484963905912594813600735358680375938742920068786234710077258544798140843024155098539158073034808160907202232505882056099440244243506893613839304473866490053269624916154011519096868190914124431071445178174061449080707723801464829353729719172287457887285099512988456832650469563837351560197038553458810638683943672025760592377043949381991800770546008746465489652821145644826241602806955171400226816531070015230790223190189827738766115282873240906113276442766826432249589395114345096103085518968601754209798282254847173266829449572907611133115684615051447763843780872990025451495094569674142494040900861459749053781868923228682938422511056821970899668702764550587487832133120092920430107293315373371695596414095411444516491876191643605839737638044930820500977511346464835742208842639254802398540758252549979447984720130359626225585544836421033780783446903058464250180151571846834938584131269806822107324403680856041070357857863322889080942138693184389586317969422416246668919939093531824277477907374868135576076531438235138020535984675895502494901776382535805931950340519364580638544632760457691684839386393885680883959227543134707499354256842796051279234136669266533063977126193284783728644143192513647432418576122712024241703722812952384437873708520259342569002732013462845473223796404250302895168832771628735571151285935109555012323087380542303865506312560370363134996120776432327835663613601699440414269701790163186315740281023619790295195944162933483620346240511584322255905051428733148348112785683385211261998032082828903695314475194973703710651973540601864346648465344451908596278561726107589836481630173925627944546721922512782560059022179072958536343380158528825548995908794047559434171815977805912638145589893069030689929768063726627436305266083831903113390438003827868144193450698119253237706221459852462287450658336071623798325364949096089454637557443277855792950649551967107141251011376387035770977569794024181204412000394173699180097592920076364959663362235593352235882860425682910114198511057578028496254605171911821434776715069050489071452724797591295130241798636787551716410383801628393372826778150642719491113030632117660403624254323445519023233647582740632866009962394937221834343389723572635021854268227576749707253113828062964337717732032895508193835372271031705184912591806542360414621801062462868661272960022069897000007639645288567343783623755730121698228578053206962886873744562169652983406018473389788004291265107052169248306917340660520194539697437915574222865652272085130055632112228619821703132056244608357170387634184864605156358349636248745226418790706739943891582631006798536265822853197792943514932726499791935508594342736394987063082883768214777725034897679196138403786851921386740023163195507019245678563740484819447255723841223613810018086425693605382322217116241270302467040263901535384822241335111152798468055388394778611793374874498507804381218256365297357334310301819689063259770144968947781184838494156223270762337782348835958025140948991996793349481391983010488528920766362253629361591127716103521084429445276185857588701374791198972249106543665801975674148274438992520667318515965646075982853412528491085582918589072180359499921884613102562235141388352429186010672699021950291534334874654800372019141193577495274898539982775768357383870341554799992559521112038983793770860315454480907153553821905857638666161200100302403634098978749558990106634549698269521539024609886645940639654554986139276263237170979168342444185326471219980385683994031343648049642514567433028649835690921311215055637122108638595865481035114757779913059712618991856707597338378864082600545170547856690614391012310098738439199181638076538332553158202861915480301159685315059442477481018881650261741847061483896023405508735155923468013370359548488700916091536386594229900233109585136944409057676368061351525506413448431074300447086022877107764017009881456292836386275047709284752670789016118088565083956088799543325609465993698130353259590433008345114357387818677066992071900937632311466056580807491864010358529977534873942443278960917076470465242421583088910106064742384067550811877742934339759805748638739970979854488635907235748847601470682193239318838089090836510714123609595802264151154810235523658404635062704086541100320680908975072238480149779368785469867265184454837903365139356197450169023900908161344930114843626244760978038533384149509519467051262915032038721574063043376600976158887174442850968379789945647263757833474536703613108165009742521516886238718978678155866825187838053279983932733928085638815767031149025903541948111853370855724211182572474223052438904997908845882120530151587731859917106595882498469969778880685882550071556843168860401568464819757240850392726887110420577567534503017843352399111145104485062922103383716659474457280023827912737552984179601331957799566612638636105351891324881122254077363501782685094719426249475953983867813411169112355232738598480736076228958722806516827655201114904312237177030342405585439723722895656246688446684180395582311239182475010865981270407047082447763888050784982078943548537590466424323130945678873878833838865974842606710806069307101804129191795267067901022800217614360701579382449945634884067748151599704070273843829887328990864664441174913803113417438818031342578742086401909852974416881248099183565374572440286326722068414915409260264165049489670278780709790048523275482594804285267002002407413130094004879830768141888873703552835115903033207739211168586255669218843013108158182276684101856466156484082538073956826162943814435585119076858319054455407609416691303366194273764422205091267944968043835889072784283107604083302319759771933042989911458346603869507860821559700782256848385936819704186099860521250837883244545527535072453021453016734841269464603219413367381670928898092044295285529878618291535063394175855368119047786179692518448704756010518258661034941713087923982133947566866819598675622375974673267354591737577838163635788832005675958382282399475836708178568935563622100110053598032410829011255389625696659371294162524614934566993626514391139413180757771006810581963172103202165097448041305380350740767164315939008627913292497168129015196204661107577997222984789711780662279752670983103425662508047522864993337377846680440962122597579195551574476982390131005654782418914926766586588313171564550376775277663392341444619607151556860987163117503914537009126810405086227649469123933070894353204169958808490453560882755820947703930083593696641573939578184144047008246464517141080205111205059718183486075350937891923801327204218919148094187309411556987554341053626168262968890088295422760722428899530143268059406802580027301447774210648781761477205647441190282748325363220542199076687091321442152344626910652363041845787377157301836775589306179738177955635701653711986213460396044881852864521079808234260227721524793211828788910430439959322074657044048970014118024262248417462423943513609639467230191079439600943131457676526896300696292346179404332963644705078398823095415692898989438661093613659773154468598215719314053570006935424884870747927770378093716740163359282185652227841319438601944644342369402646486866055694311212187875163298362267184683440619398567209572469459389649283252767654512638745930401965716011932556910588377446782455903800559981227877276553755602787092023810704856735449242539357863413096337101652730165517133852657910454389843720080246984958184402510721172535758376922030024189233239326547563131371002119128847907628174969549730336337211946876897332389458026095949094208917804721706054803676812830243305670887958001570303763312364692287040325353453136159180009261549778934927568449119030672216483456035360481130846264127058859016915407937041762421527946952998381184938897492410684267056032438394923572787376631610846411844488243544918771236325001801524554667702909141612569550847682309946580167700187757502102222505818932645749721114878797523339276306271988168294744375357107308874126859720468642606354191446848575269324654727942583549856420894109835001750454191863913265454975053783380129660748408145672383103825278412706701397104532546328299841800421429339616634698993986184078021289731132567600759345055514237434703705359447608775571401361622820256422165988701460478482337010142326384184690701628581103409436177938723087470469452868824674115507148151321473661054143750639195997876811317509929046385702951386151362677668396520512000292738106838829341282756717757635014431836761505661771937705940912982702909693387023493436879984329832074981498407589609916922910675525490321000051961895584744439902552873901861929285642486881947275339921797545819204223048105708736822927300391798759471309182901254527666470430885511398573231420472065294775965805565094713366657288757422917356456514627360871270882028786466626032955564678824148041002979209946304661490278139125859955668016941088838998486690097146248726807788943462837348909830980551562885573171732349500031484796877595422459888775493352881936757308787100250618332152171797472144298802672715705051045413370755435342382336418866653840682629211428188674388506206338349793418985331653251596758423998621359482194772854397323457391566372905096782722486260728138452764784586813775303659362147321729246552215863802708234376696454537768412227223563422554214742438947498286054765697989306040993293754264267782937775098451355635508572958023656854076568892402612550575055677693061591154491528980050843334983738775322053629660897423402415797382026424822238398388429077911942210553937816034860203689695395887642213012562403441407642067034440881498866056867785855451451867014490240296283557992758606621114424987339008518327984057152545900985854408729749097787827456648867288380087880880449150432777659964165505551964656493143233843001406167539363224156098032124746483972239018755415485204652665535254134550722843600803666853457292508057278482194873311652967450275282463943364076144245057237515627831683069326752026377667326858433654978217332392805454330819866746328363310771658180736391504447523036998992862534181968416837486072191844607752795615267522529162056232981417077810560249127529918011668267713438207146942442787453407982988077777672094401029070120372276295051825476052859048118416207920038567017122338028806090149314539727985363182351899995696357278689415182434147532823877443247647364667455788615212600626098638626767839950520432204771576878227539258909606725955378833219931147558540837508619510050750123659821423377885422040012271688450351410358551758244059293970258985981526398185689581557165593275367484261604338251103621172116290185925005122677353173667408935120157098696798747000887438170921303736268816368723707014866126756109145082990567152247477866947636091369734281025377012453182339836955508416191411624582640554393790580646412256457738005289383545402678741285964982393009443760332051905415318025980171329718024925979267981809089474594139760678510690487569170939370066071012359051033179871835266927789043748305575009367891566499050151558177548846717320679904839880073712119029392106165775436423944655889910174658330191028847848344745206268367599619422527340640177763676063583512028462937862432600075310569281166907982241229016315441898385406658521962534373029442126647163453248103886267106099139421218696875557925763039381910857818176869426267522918667348068370401542995816066734342100504993392444962366877383340382943509328302942007216109076408434494781459633642720348248118932845371378419624883455963519833666769353895464399452112186817744621342674656007374569127035244633397364372634020449025572060055166848034298148649733220693646461924575474126520270708196999186185236721161694407744195178534187338517843727710064893972896921089547188524336626039573933648872946486974931552647207516764844184573243760825055333153302636556820764235795439546384319902117584490065966847772186108676479263137313974519357699986640682279467658243794337909974556993602394316883948372078665573302992898906986110840403155462104357242460774754588325401557538129535993884798147350125423645631503880438702346964758428409003429234472365260051787008291940842633111282808535265868479574506044966104805276705929486769423490839911381121138385263089891041744545462168783741401733040505207003350876657799332104367262760666082559001890917590090776440080995353045399400849660443926159290521000430504862831853334738461587873303309083663754667586362238091505965126634488393389431150141605708584377576638897744434657206975793593233309260077775024158222277997422683815664508129726809303598466860191667778597739617220050963342509152120235209045741313185252886335018771950007906867390063302378348935778640552538626009878473812200051788849500393934348276666848876627716741354283222430443187308606823232729370707279916903833326821895907068643012141801845095799662468292831684974236322021905457607726325994662078816618260127907377879594915367494686135694469909499385372556730030712112502861812040716713856580554284071240974623114361864804317865928725872636553602972909953603986076840904541629403924098266419979993597925805915333944285257399570660136889805678205600464510207155796822394540935716826623632973463539371845344032794827769978043413083022840909856360096139758388835736916475950003213864008854874770868938645052078973587143614098542361747553424307351363996376145950177888771836377441656542092634077313642338924603153108559347930933123646945680466789945194282680646498294021588904958467647914466403057202766451315163041175395888664556855885890286737038305475292109320606049212797733832930742067739204780505835974595638978698382601878683234824444360326383661945319205186112146239739837645018310013122068182264246999678797187010089728838717612656936208598441825066761850020404698075585348732306817036550479782920556463000625453846822693197259737670537961368420948055094087555687683945634643428037082827291830803871362090650123449455540930793997219122312370909808666374172066434615220308188114376738756899384489003969499889800863363442162958438500769433485856687155221734887982524423416486587072992651677377881972281441054284490987193747522993379885834528894237662537678809571924493698736930647870656362617591918976042622047887475273916449400455002530786717878555128048873800543683628771310878194998949291359119000899315103480194066096865624788435687209054152925724229515847512546262832009034486801724298539417020037081883561931127328977654538450104721132014948228344522602520611002954632058907825376084364873157836027967146821749913994217639306864306967529931592363312797539545412445831937947835175617606996411326581779692568532154410006597166011395958569968577421271702786062472159435070288920601324823210835781937895473734883157007900682841397228961054116856418023073895735218888153653777299655240248402079390414639673488054240229669258700526877974096360162303121499800832903472354288524126403590680695560049689426055624746726227901936855311526415696374080617552208950372817800094053430044464518279187447098769643126878421279350639933177000539689594325910579315829895057052849643511240656603597125986845019615019591551628096323144415736093718713003393427715379037173978515755716519743710677201375318652960992882348992687232487003513075063655759961498614979826571615861410982204966579346527603434449702602426256992838964650912194165871793571667707457101230948211074517620050165232976363838385820190951425277228748490109027457846427115235710409849158058694296660353334726327365252568704970456002388842122712637304438802309029417903805619341438294548923682212239040411600191567463526190148768185967434911030590006856916225918965407298955210273791989294866460599403230501968774753539178603169385769334102187546841212369106769405880971861755492949886823153052425467372179271185544304173674183617773603792484515732793699006928532820616661680768570106370478100300898249177683402998372758175113304264405064259907040086496890987292973191466266343142473177997105038033159971403469499568354522989000230810634975406151363456984459148803009946006987772473209645825574551785656745784363822953091057238860733204848563097105903369798734539403795332735544776083576689281827402286815755113784316934015667940897797635935145287665688637501497005906540757235447833593343509486594033354632050942972420153324498004469842154557929869763775323647914625482022623993561645385479636796989462940085608814932849919803273320386406265489646220440616798908869075459650494843128083192245165048646729903552820664407495346800819270319193157246368155972397590179037598673056897924499623534558907154201953858556141324011796350262318272712643083550365355716420637840329596871287327396620431185338256882162433253094441549159129407031413158852472248979897408452596265654175950227264818799181320668329764999606275065662897564151539850958716462050360793390649072524686587153209266352051577807253202776816222929529207995537419465199550508075510946124773532836546230692594484510164855181081620654022917222119320821481126506439886099557852938723092916603095228064702372751467475181357717654032392849063144292227637581316125584293142519621035734240309632476698419212616420449348866718767638902441649617555044760344811132894773721361985666704204844559761841131948298206067356519688304775979598682954117252929486856688080669194178053262309782836036970847676286126493111664361208487564302718805868555612996198341591209688078696931204765559189784667863685944273121254138206514213174032042180076129588033566036529590749709332415558895023205269301727748353835727079752108740985582636115437402915947164997595558605022067218359334483876308190342841625394977097010946860289138601488032933544682029247085953092603868264524852443296137296975984806727029398382375607824440051581640680813986105438421891578441692167354168337436216939420361741886427867349421418358015955040651850743725426833741556005178145067646706752217127185301070235862729029782438744961716941848615120003696697506042359938971238282928606016318079983785248513609198474991203004364552055171573657808680531677510084886672276226500067224062077058422138083847710114253063448203644386955123461440441228965657004275764351410431574860296302633818287425727991667075612445285944636275302625139302480627853568218309082075842937380842182510444121254433770559605694440700388357135415015446032656319051854199252886738689879552605952127732205515805275532451719937103382423927991740798669133228266880518346909750544614441571263335567419431373533188362147031157159008668526132710936442824553624744166778487441345350503901717217954679157713392886442104484438774052314917349277519560210583345822609612759555615410564219388284463565276213024762044285728793210552011019756311486758720135750982868551336215269034559527148067151916193983605715061700947909945678768177497254226757051118759174727209897843783646227127242531709423317168439485532465035000327251819353991914063344353117051125736108939669324763493908171172809061090337111143765768222581006190468715966155756035768317281963559397895882587671618291493354081656562941434051008776739131233321531694643570982642180456011472139154416140008198858712773591833456517155100673008038441004145420227248849721154083731203119347690956548629468446278975362939457958337991092049138538385983583598101923317601632208336473712032611531211507244134129451657599612007241153554298972575532769851170181617314560931859413344694464962441143235553330848786750383277287062363381064792081034361841856220763909936107986479392872033071776131701335021644905002696587623927652105757724383496669256126596488464807403955442653393217681996593402146047399586592774216638027961809187077532396505055580194649324389076055299147492313372479032801921159498561955088551902812377660367176944479819993121106706423899576319263369842898844601842541379500168386036151437766586076141469098954089071060624007933773148400508011013823259830567740177235759993332998382387649427253696941537084834816329027430915030780438471915155562169892676843430239527856952351812354208743984779638315775959456829723628243158901961534291117071089101819510511612296389450290577207582107100639241806736839896426418455145914781642088419937173322527430521977936429901348663557156656286088826592441635904786454085673475440950518662946976889680631753357662853330204004453113283304236211326034095418301200054595258636981614206525307897115281352509248480097533334085390122773396463291956988853007366571655311465718425800953504130216439936885285584216362427689127406666583666845568563780393699111009499007135126347582145104409402053143044153727580062952928128144900653463062293219336070646036437135332714920391182695947452494224101706102486523475861474069063455369028709986613375106402576187327272423198286865077605053282508263347030954136759921310625992463517855518812418633307552830892075087013814391448486732204605810268628647189366978635437860036414899560664380319790647121339600052776526245792006603125974130426376280673780074754205593261844303438944401565713120107568350563784559639976953295898899879018291645982125293761591952103001166531131378359977754289019017397457110539170336989866769452864770691830264986399371332397677704916902162864776662377379037720699473131814302441733457681071056804657583412376154158386753465079212030728651628541608205235892894593280732290890603137942329185415197240672291919016195226047836134613303186191996634244528630085557200101023772657541089203345420079282554525830931946645826113227133129308413322693177408695738897224397778352276534421532322932333400679532746453211418168995782936546966212248655933012449672605095707488660659142796562996008943868080399464635216397408528892929536311976094674593035815940793234347438789436802655647326173553243543490469458497193967703535583694046250817207283448623074620382305063987925367290301691680437841854343357467097781290027845945947297802863119731012295302217834272328620296046310833415463224015321161294372336758963628304432700522117708277313792957617602346218852959938970642996557124299340048945789154672764623346118499143664445065088186420048020844731641259527214957067131455313337528566191724111707077447387255390619893821698816412378920043094919889617351947077892899826501066722824890328835367776790649207963845535739286950979592848289286583354345822918677353190676954075813473559179852219302300372834612238717239845612090190883193160288256432452403599120992728668156727999008180738664692406477338126080754505965829466791869383559661047070954356867930452490538286563361252000210843539023808523248420019755757117389879405826566663481889985979262642996725856475661662634853477802455890231778511559848880885073306070840422459754895000692012783390395455140612325356081568976018161971676049799119825165921365692237855182316341112083227681659770520485475202058508581806637576942284036582461120927863749366194160415120438482949472966633602076671523642919431800100444533384279804172372377666654540056481527883731879400574784938980106937093995065793245012828838680698953876523750941792478468878543689082238861961344170177628758065536082449244894223127416342880928335468174843895974052081859526218358079991670914111090786765183188132014405739803459661240443584260074886906499782359598877954740565563750619669597848665840322599310581486267925506647249735543320110757914624681233194792355551213380897100380666580054593907032675036399795698320237552838341537227417363109456679761782088115970928995437348438790192034562695530821669741025256867264029999205779305174587203883445733872186744068256847353099919548848651811846664592166578470188589139254051568997811897231636841898540585212083829441675281306601338125201037938989619630190716580428929286284676729586354199117572232435609347145085115205795222938871028434978844838151143939697627984718034152508247635761662010952388911676651510469424736642848897681206693419736271317209943045917007248144679049091673072956545384057988029413704231902637287035081369064481514816322786516671406890556815376589382902914516915497652964382926020418869379599955674838452618062568957334950007864548920085267841087255814181103815827445216907039368958770610376315668305776845987219572137492774774519283012151386274134214395700731277535438873374924792034790873460563029955252012937501261475467470573728221140096590832125224673389057121362204327070349668917613657420220440707834427147026980647968419299211541396437821934234436752930085905193137170313380584313103097196412727732653019189978182436622622904100951301985497179849551469272247163243119097356015054235492870367220794366581820380020374126919587113225078342608395829759345112119110093712188458396826117382162875445088796303648950863831711102844778429144115874781027544283995034312643039228806552695607404804491130781839951615070419108717867682656259678863692965754667534738030404112006568516520843172573524077113364751512330070606865334742217426426798689587634110583080717239155406750336997985942016130234630247743308443796195658162560730444387378053846884668115958053209907663802235957565445127923905462365332655842876664753104526311294284650988397641458040698297633074773182480108204035863619975469743886343296685179047825178991038268876271100670919302935203364549669120703242767823650713173149903356517656896750540397691434828937782315577253468335725114731854629038856212360015894545440103782319919089944851831615707128575361086196024378378412483642629704893309533778788678084332345431040327396002437013795181135751103285722249383807251058902120043836007639291013832888078850488425296737652048346232104507940387031081385295207333365485261866849104028080987967192434299552239367295781451608596772151061411895931323428527645797868611270993247951221244403421902525218135944334471105724470848621985434888887641951509553068415028314764523078089981645357942105523736569718119774952423497322099671665163928170170569765546843126469281289358119547883840080268213306298606773000499026955247599530115291471594896830424961743724995904768634712318065250445897792236111905564434646233716987229679742442207054604748747257962215097840487400540407533385190974855141647672042548443218603055576580254962483162434369377016387165841640245185845287789502353918957671849175224804423563665315572398391869287505141674221481542443355964541066466866384334332616530316224440065997977551783259740446597199587784583167801137801700613745903785350376991681891228500067246064779288194916205779687752943555917126162545268863585804237073761052439376723504136092338538388249962803217342759536156899834854581467238420078514526158652044373547247257012714298634917977466743634635901164861400723590894454801278181245581142921562757161895310595431180990313016265338931534824211869113162204416531560279258837454439781677391094879454270574024862374923354533215102486582366634560919845469557186045827356025484904904668721265853433546552956736481278117557005916006880838366765414210194610701370434045011481074111663670501109482586234366338871233706875408720928826609847240103626860964425027895130457032720408855567142064180053793955423478551008644304613471083954116114001670219090229787771526829096424437146746781115254010613827491289428448921695931102018096207787377461598939826951741150431865092673595841373277762419639357214430046687966519956807717517498419006839559048352237915929633042688734477156550144767366115526381978464566953369012599963592878111942983765888445947506372699050030479172848479997151367508387038617804876759734591696776637134641755019616811343206130089522441368186883119811557344582711265196210283400467199610519248368468606146329590847300326140881205574317291516288701916066395206507382270071717248279875864292584577467302464023196988043593598073133544706284047937508653631491878390580788184235545636401952578017526166316209177277624248563954726462669224060105373339749588115416875446313260426863007685919715706328236489210966779740309701530523889928479645124156445667729330370348446388162182444694059690037044340941955555709824375116383419085545409918837806342979345852191009854119671783067454049925522848733313152413647857236749419623260354658983898018795789476522652846171726959287447145159154472292470321919481496667099558154981540596275834386440069840269824373488530640490938262794247719948460735377568405248440976758061570418469999774579027094816906573620493649692329938065777922601669365546211155717041411387921072970410701059950347764460966094842400214130634937982309885020636851972436491506369157911054290996255682325737533134613463799166081952862112621102480119684721027992631180474277324676675929762802956019326292214011404741403706092802537322667392889021467811122663722624137379572835864058578687389400657022431981474016119331185047046284589309809364096233334351138578461164902257631110849643970511602814212571151435651571619463284489469241835078562742006654738421526281617100330628104160302921109885779899230782805698939012242269288681961141177475733825793458257299336122603392225113768823221000982337314906832328563390383573057557051214670532501223949805102303078443389151442264797899503022556302057593472513736876014162668520358590138311678081623847893137202945181426736320084041477380125563467690293853413092958989870817957805865513751851118632814140887962997784006390246901098279105968765055410069757074495842976007351164372082959009981192331615045445670722052074660570444210212874331911798421553833960580457248772402676145167906857797374641431876454762666050784878200198089341493713913826751495592881198696534448170717443498135569146760660007435852899948304360693328119147785751774092620476819514599982444735519429002220200518100851722342736258299058590595050002782129879145242949442947149832439844570832787715716774694276035841198804448621677635546954357802792036704981671388207261844562788022060394915827302558570615924707770741263476992203240729122924670515244725020753508942213900090027172568271688603278601101262816928152068203502517862773972606091288528970115655012068720669957705948415760914460146811442559745353310765266389828201208080581620921604554502845017647994498709955306477787541929741918720371771122113359538409420733460506187556803547711258411947361547154988732934571630122620093380283235184802346295945579528351478419408249264456893199234378462657672162073010954844832287798569711441516212522386085896137506452574621372493877359656365024080637527383216417651473617182965996703549196274298015553602324793839804979102338243199441087903941408388033470902710550894282824609102733991394541502036010859506569481245780585085861120072333635442525487262943657923714523308491557049709724881603449381483931836375495465616736998710927775936347155908831707956031337353617910074235495310879914700184014129275445487174943842959145571114446723549040391576665207590359248995861222493991472072243566009194039366596057476556132259370548831034111995193967291767738970736066028241981133500013836121726980578190565952057696535960981504142942461575182386626294308431084752897051356333953658182851188695719617815860320995835831352879147907242289159550985834861188467772113664008100679461741310179435678558426188864643962865663187868051375490459197987573532265003958514150920173332590691073032766437126469287751833881377787285500135144431408438910405962665028901204252244956811404339406889981920896929620190507053590393749715495975029139683074537669363916890030152641254773652124006946625329129876274889913907297294828478384319942254958372309929935236233564382849254443323432496935385841253019706734213517246478810533199496442101401574572365262344189105921708155787607661841991888704090491504775038484124547424829548721437510017589200133942764728009123913167853231453459058013603665575434766126032899864276866023070603280265316283164670013073052528299948011445763245342219818343295849114869673615486627550972216374780942942358311426347355115081653523512964725245393619658437587624976830610832059282666126688173538900067450622220083128096866766393307246882328281863573008601472906979715677421401200659726247473862261188714508115415585191209833469511671719481583122750661711957155664666034598832167638717681552420418008206287575284925512504751019920101117364942401623008536024298451742661882993039395811576440073382983516328072196553913639361319024320439517631373268975348132633383337136489118252986004243811888370609421332701147287290335166227472518954855475955563878107698300073895652059890318815776033819405324564185445227522727911898584666985981771995593846350743958097881419049826729240592062211784042068465846062915975634065106635786154536245803758582992833014432957867743181749032522358903623166749394269050595739972193581618088092839009964180659671924267116848319451446974983713777987729411067355496413424083538673031658877985069685407655001357161924913818067105888177799044936715373674232037422858091859560359582059246744417408999792039480703847904329487236470754943186270014619254151950743343775301994233144819967050000792891084324244279111045594819434051742423389281643558425028041686288559198468317701753989547958406770044800198910274151485812306787811375070190162608750347604055974827745046243681250294818514413560385111265536263907806671393596134557826403734511890695740910854149203453256779928256008145540183555652256340946019934550561711356733863649992388161372987315981626147346333845412448142236094286248737034773779172398582786235723088972386198652410621888520738474248720129854706144603094312361643050310174226006959503870065844533893532735837438351614788719312935670981673396807672052946800715727638119816320745420196492812882389171705184005632037447226570846938164971571786639943298658786912675273085001063336133140080828655472166646792949242875398475672733605640178943541471867934474485438313330291470283515682966170040475444913216955648727201683379532811327031083714177645295869932572470186527973213119545058926978390390016442006622608045132817627949769848683276104769803450739644014636214686914194154484814017737188872763197899678168848191090477762044083635358233113470615972922214066233383009845111808238484260414094723309442900488801092978301615543445095337098478910774848585688081613514211592238284568433640254865590910529143230034105070296880006349284338600006980965246506930053463882973487900952485706895283497607039696635325471770756174953868717288418063213362457505028775831651258999571411595706360835093336913334667496255907076402443109568770525182075612567280600813313259722461821169683064068080208552566151786443778229675644760876027593046632612782228430993244524257305966788012022212857001592990742492780646322778387248488570746804629858027995955357113457801316159499126798397910061869265477852977952443287548320596120095780189696942347763913468963008313295070240892231245262886337404463821163899113834602793887862109665137873846063437481030497402056831866254062233936964962431215850793945560538261423212346530864774342946837196455944247695165574811018184129222278148324389646589499957458781012957809853238592401236452617810170423130928447416978353353081963837723572784514329201964838646873949288721940556519322563063617104417570200494968029651609603424978336545325957901912811260187677635477877162777236375659967152881806479787521513608520224388220489800817564449432335930751714656556731651871502754031643434746086516513189593825524396973017377235950783383106401037570763450723943540368780732584659599864665069722382313316540008189906510052097230372622817356435294365172542283550060581304689068182276753642494393556432429974380473678944153224506568069832672317467189672288620500658902556964215258117306845924385175081773047172800781929148229111151175722278627837251888462077881165028092501564746765778119451694674998745186922168628169318705894005791639716168377762322773503538140504479226809525095820808005678491092667929619481425609345779965442218274132073381177467972242442243098027869631960247214640737229110132060962443347109563181007197328703032133464421424638176779107396297214149000985106790783083785564799880432470069930042297164507239190330590187035910589706206425189000684300399668765177974853291539914064652746807828159237842755779474690240885653582926441110502845938188942869578426990317218730226939980337333326490979351496962988902052874572080087344184976216525653969675657707516648247911496036024824212125407053300742654010196434849506633227696772507248540726811292810698968568484265259131805778173706009485643832850985143964592881589286828029222509379827251606221020367497058562857610499116339343212339030315055192030166866117531565858385997269837149752718617238225208643850310568872957530960375612029876553942492297068196328909046371529573972121438696214056682312246760506143347252566916711424619940274077701375805940780701301952124730250465907639855053584970055691684918523129167694075387689104291461577673378513389154210531623015342160960429661072256052216420271673333562464783058592699913333821012755512744833840103757495226627032738720787073768951464515818868044065684616342920076528632372464058959279272221653147802695432413522351829109240283134831047375802205380863158186387390171526145696898937493693715678955944468477729057556256413083377218628137088919638337602484986602057504755655194033935529711590996808910146695415434107564400172267267274072038391451350839942355842892635449860411474952071591185091012725372367106729966037790328641547296741297240070358498791395342375201496064451747894057993951496572242519008137050668406970316324435376231551576750133613160418937290697581215820121515810806166400844012310518038107540440616987177855148634369922153356263374300955632804912990439645881460439147767913762962429672980594305958471701919590076964135370438279262320844880118204113320403466896028886059088906077324661887124568682246826370088962992813379991202437245960950697862907383843143967457530176780969345876311837694730524291559933904004810709835590090887988432317981595084124638962061377590966932673593151719726156281516862917441207642240995566471740777286226762949834307640221438092929341361035089156494395603916467946422136255813630106624294050887572894294858664130070274075331649195437519591274001257669065440399472634627631775636943574182652258939740534706904922488258900590707094999901981889619083046230083209662877708276882976239044576915804522226525377569657479061319899280055132459065770097327256149714685153107075851800368158156065417330868337669653533835266893328042178236937557040089249431872704640047730668708848071211596449622988035495390063749223282742036881441432447791463186888157814191756958659640411038920380817967141675831230013496192764355046944000447090484643925627768698079429427495980886860907802126526905442831506734803090663574561613274936575274662768754791940730919104699130083138073425600789253015206182893953811171538303000148665464043431516401023470277288867619213230081334535654766206838067042573973693820921012659978905404951644724394634960021337434395153482368244618224152488195668257533621646482472341967397976866552316136516020285301678625375404519506176524881044867017609251876747249769841510311794045335411336079146828981291179044719344423820027985858536082737454657784052657907104565623841277542900485373225134782648755394481930226290818569051521406579312553877454910623680045317915014653508130366289484088349672853566724982539523221068111301176608704116013955976187644807025785901825961583734702867976578287189026524924305470277023127135912061829311348672799815167828402090900370694705701285498992338720367942590043268372675801977555352333945334158471458120573247871830175715952294640237359070192770855016626534862913431881442470092704519184192440093922070108695604394834902221049222802647664067897405593074835330480808695134829613413088060357481029214390935209279165893857446718671318650845311458793775700730206614123930909292382565432041122729367069295715977546927767740431478895866379389606564724448205964656614627554122517105860224956504458265911087410233232403254543498491947514957542382575036620403043301494471173434930621893790296935021201010147662062307960614187797254524461934406663307028874799359161598086291680469221722104205326924579076436015455253879657876067640293745318491198201260387079937635671279415757513483444011295775937103244190920709048952467627046503787355447415242024827870221359130189908583310515345378751731034355430805373014309021250903291763061556576378491112893769319447399386068178677319667519770921450500924469016206631700063925901596047838714639295569398067599039668648235953631220528747643980855256978467617527364856591825084111036874290723859330997302758071928845439404142037495883681307387172686761631400450709669978552080199706552994400657523556048761497223140796363557519283457491722731899420295606289675168990990870074039491059151276393491847808047140249630449777438530190610464593569674530493830446249346332779976728135937913076604351803019151401677332419679532798133681131187304990031066924480238250420645594689261099974755421308565193321579798058955371275203910538209561884489288402607059601019910483110620121114555992740241583881557763317734155265136733662231116882150700728383443048022850921281380800436601281609679690843063884649588471400592060227048259223651407765497944473780830350460099855922892311002913638157975890593276965377949767026489901973374682700146756549011186366055173267346283385356860954414305427101320502669560949240316134620818997205073032539723684218153050544174959252420074859639913091012744803892320777669184617821324586481289734767233047883253493102968429387818156403735373895384669965748890263283460190078496398469288119122580388797336567274392114733242899057211177376842290400805823343287994760177994573913936767383201400894115956874833399311538693927609588691158852871317265544412960180589981078268133555689956848598618298927901680878363863721211658816619477963109117767304689314451133482156666663569571905469573526300228958439345564607042973600477157968019841530916420052290508291358093324383970799547293817314112396191744007611663904188720395553387082376206545693330557492151391969185138611817537857085087195119732884099455124643132743347386917482372553861138155462227894718038635335079216543974477447147152478256764570082326945956148665800124741891945825727480161717360649510329470453300311425928597717862018197945731620318995781324275748916402766837117996618783692395201663614748241913675573669500758334023867646727517235291665590474369602647503947489419843328702506809414260835042787754834241509689427671008808237484554972233581641998293793728807211324092591223270501660997561285838911136380908216752693201256578374264746145685168045529788883970147301277591783222773023142265606835775143069677866188969061924616387212348264596146927098956281466936672548129723165247637299261915840273219117773539806030088023008879002125261843384954162360505450929131966481132661516543993742111832708345115371838324476586613105333714138706507789488140038849482378657870195397204050546226795246611793922894972866669957540154505732966686152288392581730077679455008921293997448914636512141608512575812508713686859427262693276494900913275534266557279081279138412865482361537110251632308791423878928769666550363092497220190918641689201671970360509849727114587555291103439508116779299359704903154909481718664194012887811018482078426617845364528310664703158935839271808546509908172008079080712426153687547044117995863531031157312825620838216051564825577531276345363529623544499315329459043301915770431823665855695967405862223479378070623961746100881789884561313872147994872975226851912605037967250385800103301508519351916355765994304384118019699107027949021991051031263120922783936428150738499101421264989081297745004582332884049140698885714165192370609648558332642718111903761297218069136149839058178067500035262706196150649837389228744354117714952793020345862117818818134834411149122146513645640278541903109669101826515027940982496066546937134339811775306693468710852284708877634668651250709812524420729545320145762093827929956049429353239836110558941040643645915995961047571417244592594224154058042955063205509928656075786226917142413095163775500152523746285099771922892451192132022214405540335041643915081996994061720615971030586808296068627809016761326705986340309485727957758870441981151306945167463107452001163739543614753083113199581889293691765200832620141294519303496718736192149211807291100411754116110317904976346974176877494127544100780229989375333341397189213619459211425856160862674474809294900123535982984136550445759453451990227358747670526158700773382540431123922207330868190806822130017636273324345040530829737660411231779346259164856059854113535027299995663203462714449192377458894789665692180016669964084344835343536757475424703087303649838694695733163641022701487669971420465430387715881864741297475884719402329587509803220960979133893193970906274811684666896364993431405843361568309939911184831820980299006046524159943560915134689627277551715469907867982399422393991915240126689344534568345328542288417582124442499132822983610587556618082945730050787387859080785168501475208164254331278328394885698394958567535549940941686111539436017552450897488654604213727379215105012456830899959312399070882268557282861302552673038869467634209169737027938792841909011608791078348322235117724787895988870721672920072938000205815877160161917049293074244726906613499223763344229332949937098749309824801384579511911752689196790406062426651952265551294450641499244662939731020609405248102448217617221751166794372946917202812387023804505302558203443643356826195743945500929433361760577830834932032777104218158926173409759792570089712265831286787714832566752595741698382836560992800808033901338854314697724927200548703968955387905097532898024791427395863467447316216453404661054408026197885437646589193647512451151350340512531798514752270189056451530373424835984298494119684984112330455623561250442859108610090200201989020568486117146896485347032839086772523357545825945216908569456317291115960770342285911146056270321866026769887644893853700512267467428888448801610863851078636496067772921000883990883279997928193784835071637101607400688028798005186992773062268511160825809027984446070195505274978922786087595980296773346461065822471008975186687190163844364413170251806825786625886537614837732576685470578476952649601166222241511382999416561867774772260167730543813381383894902276991284322155759688823302356151900274774858745942253460901982759579181503092219207636127207749988156694308680377645132456433212007616341490748728107514680472209958724394418709044392671259217074183069794473317547228582611103306695708791435575966911928169169553899056044913370227199002233031451384965341043496121199541331060204191816233293251288071041679873002780277783479064914703035647902646661636379263953418079712596010716216927049078953071482362689003475352474708995807546278243326334597621074951422071178359936097470378103070128014162128553881623767449139140306309153546698373866087868135042316016620701960053873941414566565197992732041073564702592447454699063436062543138854986514676343100055883903719343521572466298985716979525839580078012856922656498182652798914518075489973826211130229232598926858607681976262425025084923114198388464123884797150207787556867098114913138157784875793026424601958210682683343966335899834346440764564694788349989065836563159768136675734857692627423940432429819813609930777055650800062183687738033069275473647761703510125484817762987043099120406914186947522464628716537290108795356741719462372977329686825813040020357032656089098908855402411241173616865028722699431547344240555351471075855062411518233525215578245479003652331924710495974824371325638931719030022866737157412618456355068758217204559537705422809183031837438095460155719540431663399937352925877445673257162063063887506471512046662298052370972863493180633525217084146096923168186245590186557207542543730806382716554117439541907836844424066533769375371050785282865542024100184627321073661305674413379266257134234123008487368477973389947552891078578815476430624430512990550550914534186401589057884694337914880772906188074581805763457072228126838114075273765474066339181648235322555816182315997406100541401668896197365821335616818423879115588923114547056013574680142091042028477686988662123623113035944013839788054947158805019208294356910157977986461910135030715729685533872862659654978021038298069007527604836165434239776826299621302933524734627919565697508531346021955468181170325310707910979940390035004172789986346630969440038464923317751990204301853877759031639687895604459871897622849718262143063636967696003705157419580240895812338356449428719210497599117281385679496630601870201010477660457223853445715737551019279613325737316652450710302491221639370780390588607081166500004593853665267973303777597324312509271941787661730802157103729128226328616039911341532906194666972718688562142173138705669927869156557866565592317129749213258394764928633894315192104018385868932064462757792636352550716921265366879282604625411667107523236616266564108934831621460643196783936532704178750967060773663968757054644320631609236560141912637511106822538890799278433800999532438951074955360990366886553317481550105952901315087249784549677768623042347969134267660128560363779950141175182089379160464453493553591477972973511660616555564786280617375687766638488594061105937297391231057160361433491762291717455543008264769781657122256702569565971765207338078887638502716927868855231740859023737963357656420067596051456692668969244731812237039633160323684077490473264597118166611443092453490974454772409558368109087001246747491522415858203129962284960771928492758292387568546675582184259850670929492495427138074559814592431222260428721497813195078244541292766520971130055655337350030456493746564471801127481178671540648880327450851365438127551944695987580920105030276085217317734372657808996941919412474821498166960585253532620262855418867272318989667818362105001298684131847892913992302392703575658231682069745901339648699018942011984341844242934275353653061017779964792313069586581695310002502593325996229766780318148332484485212838308837385369538873908081276186016109180948005123241195232534028217612029090137764439721157862332903582618106362673905589199698125141584865547385183954512712701122634523244481233864145570676634594083399475991257980733741536586909165973117894173138868438509794353285117212360205186004276811831913712281776313381038045637693225826085273895657788319734935880681464474953115838366585196151832444422488586355638080785070008341440197968803413808042634653919121181335925958024801952986869684257155000538778903742389149055728550434089585603877836811938036547435236240557852631879413301458109000681968460703865107704211875938761793900451081842172222783887972480613788780870310766271390359084654698270459744268066130366536022344332127337507556861181857421436690165591288053375872908622634202020293618669791060505861583437993932865323026964249362156408649236405363099877150311457264631023489385924155847066043322029665110338551965629138362421389756304113788491188819269745637585682662778634531265491438417386439237396877949327162807881981429957473483309678920378830271115974869912001235597631421175333434486347728630702441522150773397466087691988837342732351351604155897523746924956904765688314006686151049200252653965600837055467963422401587951043345734585076377734156405428079340111150069644219069714871914918598192107461329752564658832367546110701357329116391301852938028378271683942966243411958057380330169436385067156471738019046963746192750574425542621601471537882598702077747924170931619053337401799556757862704388441082527083864462607515531178374150992049692543869178651068329063605643317644421932926764769993427644453370698490611270112668534550889108875883231409740928304811551645070042262794609130350312429698963596623482803270147641067941840317463324038090634050764600199607011605561451479937864282298171248017613436027776226335949205105794205723191306944654753647941386136796553751782320804812463122590050207233167103799210697318112304604393262464049078254072363634926364663538140481021088649837063443384739762675022388611643664028209118001661006281905647779811627039923550691785694220753196854988958888659432790609433204992330433487340398485917072300294334165314134250856823509731441582258204183088786853770334582959388396194588238531031636904626789376357866955164639844932291436267556241701533729195534812212086536228463076052870806140796120773014905592411803333898821239384210757508888026032644774487279090201578191579097912502486648500811294644870616173500310463867437761187012164426995454588924917992946903786765080587816043078454098006360220003544208660722911482647017214617796500406217686040139237584572192831821801589292989776557688803867641885436692555959293197950566384835079109589610024545920932733263579818129572192168899578142008749173509703850130106022339510985852158546272992370229826128526529916851222653994643188266048350020859054110142603347719844708087561541318078175136081849110800528854030558602110138562655042768483151399833063492322525279832708332859767477744150294487649161496486721144189141243139783561262164856835279404866065117865552067507737016488275868760453386118835684377285196878797676781023631476860735380758935779397732114150645383097613729432382269829889637925864390014257262954175933289061420219379481040429858587760784303264571201780616708964877153961864812980290664792086249172057048830780611756625555126680934433961205658628094948202443022843870307437108531453159544628760181086525763471811606371511168420582775812137238910406159854442269279004717187602292586465626330645243599199196398229427617226764192015454909081862311722429378108989892532588902293564043180640835017711742096575970119234400077169951008262330173466933260357343616717770722259368884849344770164736300701446071501523500013935463616269572525111083367867522739286868136260960553419816351962929307584038838066039575007714835547238491209945594428066227203081241739132091225828088037572800610571560358386429542876367439414357655544988181782579665928246685703737458952800825593396591464113519183820581862050920553153557016204572884120293642802724297194115354283479441783502885540008747499526471166063922797891780913745140370308322561775697345483036580527062278383049266572650049856535203930336953749983893283090432991064034564209808067235760203227053937497690786037081525520478723101329023911854910467319675467413940882474758860626198369468536929404726936231337128745797648675536939446840293974026673971560193386398160167727497318134434309932024160986030187280783579670440742561686643210082226420306662515031854277872344166528815243038475786173370440849063739051330670537600887833247796614131889400507266126255374883937874278751939067148309455309872445722633020509710691555225004100381224755006916126457557607212387981240194589706220115192254521660889917463690671915118875695884200781615233399731898055947870433922582812313477375334743566556370731632863383498323552288259802626514252859633212677591575673182973307347689954377512205805909087812848280833197773159595489596439469364853177544126869840569480097205347993805477497374925837776083164656588368254478817636745560036464432008526347731074892516119382533131927717984664758238068510366466496281303324455109285967174198736231598680125929991983383570683997803929718510144835149593087599579519055738239089032230454902575393370139835239167285684198171021776128088301345224155062277701889868461272159004062579435866198242428336691753600195589566658599217396906293812262118257745271153559394363833409636789980653883193966580709529163994499028755697760401733231642828314266185040040584602417420881743130369080554114012058492966736193574916737460563120073606218349908508788770145684601426762301479140964607717795404096091762767193262810526056160136895591296047356416242806640855663711734923825385425704155517463343467763290358421081800932909024184557531860093892326639478634995606939093803071548910872644164173948014315340863714428336297654744011264286976313551843739070577053343620702318597175410328114628514041220617913046131087013625871289494328207644634999542263871738671092436637064756646356020627302000705121376900398568080289179035830759832730373342388651069331362005961927754940883630910096590614472998069162796778972573018371251135913526574974170363097312907705499255485536046061728210446088131163049460800804312389476542384760885051005695188970028084708700435887372282008914711560001093954946478241224338998606565657813882340336018591020977892186237845368185436129803464157851310543045047518626069026466145469707393678395324410434899377413841832291295353160549694020596567898182227030393410143588150171921593819889333570907668863865298390046736832498830476375537445839757819762318885793384305511802526950410448592700349777546058060811328634911905183963145115461910391963405170697237514260474133216489555225227804873855984667041860000926548394651391826635740525684679329570659553819155605518814682607934378328126686618675273014317203846986366989509603042177468011968148125279465379056613061508261963833602707349145581136660178477384915396297798204455675876225568261328570106522551060044542463488847853094926581214873217599039919178622719097252314967388450528692585801732808542705242068372293479436590358724644946048063727074530640488544886164227867666453138988234453245526980827966649826656883383241217008075869887929598594715102878756255672638796332153067913052912279735689892357227182566194849010187846162377286743433996960673991007629171242817848629452666928802143424201027263303775431379904538350202022743352951415973543548140316216305302869074537404551593393827363934119598826437856584839453206884996887613425254645840076240056211332490065461433550025199947074362873604844186343034504977468165093260600176740172300352583995232852814370210434930163191720381789776438482174845003728522125736383279353348518871433172433249051641610321478315232615824931219755222737745262942008505759657029015555000811906855768431183672840227859778058540094000841139612128554477262405495272898613747271698652658400491914670600174756951713519802876870882963557976860573040368058764385432193879864338494000916774061590088820464486410061387226222221597816482041186554947595941329195942844873835997613999615668971248119606485273547231537530419007034079997357195983135508317534015781071643427559156984956959085334676191424201948441051391903878983522057180101735411450629917427961760629444108833145059046540751482157400021081531468152534347641320280846786353534859964310568737758211863962127652352225001305230088808379240707070211899491500722060461084130122875006635386285838043419086439116023380389440093588041058002956571702775441424994981196246161646431623263689135997178462985871538387785399390548232667890637614182549094485237700911320825901023966540586564406377208426255090241740380292016576443889117938280555684823065543834216432686430620692091416797425883474242071165702873129061868563286735566064266699459027765561022235600892587049197393627706323299565940325144303654503540554948323081163637732569905758093839224391764753879517360277055258845056700764271442792022147039183505729910871586615741175197272299097959855713894964103944818675688717553129685373163338017262057372810517687999630355709533998182850916397877666662033506723115394399186146575800821362282844654793140430301338658256147431467745528268379392646122385466323904640273649450366637209787980815394849521583716485814761697717700611302706532075058513684358561997085125444471909650443561891385806034622186508492862694722261127109903651676857389858057003281737329316804239484982825104879886689496045036423930644662005861977727736778492103941337152513830752974560233127875938226670447726139829010583287054400988556014530814793920555575490290293563850936466626476210726446314776922072657223700304056612097959234280001679967567938240857486612596242458483787536286894572599490224951309383534755946614737952143301770055341679216353165546257655735878798123945023764614751869335209374113624426731283758272764527897202091771705248470342059366453097449506359225106113131840429234607289901907527957009757691534320748241410378250881487174054777949045231254155547366463729949929119921277828270565426840768193646312803719341122946883054759351604391737665073907429946033494553620127870534674932879963448155269902185794822952899738306858021667297380312602441350815412134291616395489437341945494523804525726268797918303646207055527304251615452808425053719397328097115147662536191014692377973007946127789741539633671310494253754006844444401760526742359137620102208486937770066441696566524508579497511931018357727844689755496024742512084197404760420635348618422151653228861605310930856127970041496489534193979453913833864161273491499144930324729169287320355648623051561947517787638660688054329759116513664400714481051775306124286778240183684220775430262299141092541571670206522273322959837520109686423119084597498266081228464483129819308334654131496808470926880067234233718738403448635987022343142693759530143987133771767416864995646068498923243212647233296635472891238037399343705332319884242637463988775982072034270718776963588583898147053557825318955544074655922460433654882883013684105221882757335447758707789906917569326079848129653627372591473560769988249830541862043529882830796542880509421403810714368027596379704698279495940584236383455224596760565504328374495196194909738981515741765112670846629686525776117253792464165800151386321608791391936731940866119218062485081751012397959214808053002898695620353888727225510147486111603599063288238930310757527699353271179918177673410788341287817716766602501002882757956460629357321746640286141136700669006717832540703942017644242545077510342131314549380901799593176650585867056551665272095089947846817139515843098001127068977851778165880393171284210370459799919463648498373118091747014974107391187560895037112263536523388263582791161177711383339461701541978161723042599213333527418301276887032368756118534524465754186984540618103548430892420906021930827893803752225126009532408321271480816994170628866674314640117807229684982211610665777438127055959897873994594358490296450655580664690349215190472491928468856264450701859716941282352474440279025174916088842338891676598907515701574427053001497759653457781968540968100428370207507638754733780648578092111056989350590818124060727407059917955679982026795068464220709554292370428793525305947106167731599681167450606296251790419111039758691358439396334065415246428400896005422530339590842612543807207100393527715062735013373102413882829358984482420868446242537082158545034282815010041240226621356962781113706901556335907030138041257677904984437755448071264662746446093492422522583997871939855478533848306624586334344723734442902135805125748697045311332129221290645696193607265005682276267532255862106072936451646464452993829075185940544223357035340714890532027969167013041442562328320016391522633308037889832980229921215730392853960867686027798393030929125477547977145684674891622834783730554452276246537543108835725595975080826422657692167514899799837937536502897413606979621761534267755026135662632886044566084576557817420450410042638122903565799702106166489598123308225099325460708220012043560799955868054185878567511373535782065278612890501439616424478814987645782407459053050921346403114065369822390265119240608412429137703153981632582045203684975014865259842423013548508619249158182873716307889892888951196359067552513500576449423484922281285443209790900823389521945506062441691910623645851690515597364865127989161619391601183110922800677865404564618795363447578737625807708420649739924244552024778477109162440837678901462726934523239314549390608378133493914568867409570089590315496424248652425692473387443438114191594600882271212933806590103638742292192623104544039086375539536697407290180396410740803266724908939746681266886966248690141984189912327981726963174997981287037656242396949586344052897838830582535833253238442456573767079032780152247860503488637230090129293721096045713757465098291753192649451610128943367127485299733073757102919169449167779904113839594295511724673743877038683418685890455543287370524185213028095826987676241807989486899197913796324305695217404678982709386271706316800285194763584770995025489619015598988162388315883537062405965874257775060739129569886294193370413737650799628820701075964086677621574519174387310470600878506232888239218728509737163016082779094570932981972057465433599173119778973552113421872723122452803682177594525728898506008568448367123344511724196063230927636442106399989783147993955128596539839004987571329284854921487482784457334571377205787955033711013189842464465182649002660484382299275021140957518642370971668019501971020435086257563730190519404395427750512133552801454146339627092837273772747723669922517002783847019067706706114056739500475329700020189343036548962050439386554899229147351120546669597138267888112308331031122520634801279673009705733711914949098614521840013212319330527753632917263715873649993138345181279442375229291721169329679849267293722469586639506036673563946175169115618871145100233231652503958334709805693283458157553006268552217263192838510362342800288057908393452654685360066152120226573522488879199482035030759158072649063238011882431501577709336640491143503080535488699516257392785197080521016151468434448031253289724124929054164124501681383135059967608351317965899156818727756944187398553109649327640852110355580402557364974062124884539165559454967521052270396892895357218405810261845841057152463176397260378061766095864324917427364720180497016473186123180290847853849369624443693853836480330039696259853841051892412373966324982844640375527723453225325548222175733722760604935097791583421988781492623134503319604445564445108869840326047877045060033421302779510773253609480408542523782739360493711223323513149747487038420245571912406110075377169052448828277606541155642162985065553042316557830277935809981580095789191029247639397140158266136990667217497945278195459549352913960538448292716214622082534168168071443653802450038928507078615042950630394305635419512955894494476364143066534200956366315986577666497318945027792687615341869814552267658565132651883991989902136596045170158543130476327922824937921949252923060491576642393402717694117646818937089199051009135776961507522626433587428147963731599561525257305116085671900941912516423284878438124631521956797892118800245923629034753971167466923203838574042612575832970737111528995458454795788379588354596430986107371879086248789660427563474221899454171350401060235371608586714386361769100389858450158029067111211772034802468087787942005118014050373847407390117430273541769107284780034204645082448080479669657028780910395173011379862131952520928392475803864917842220472710148255036183808764605356224175233457329087021893515488133316577845639875105226264014205082471638975687396279343897827261015892864048011022838754044811951062954485717640563865023667018016006735208120901882066305362407878993725863605729516070528664111182541105433861205700355064571246211204051135139109325635848057440509381393931747223664059080718177827394652222492790130905344468591244006316627476348951724050936190782976127963491956285256462621276685612297652292830241411317960930721493495246820955204200786213566528112561114964737880011856138000618155113631832886780957113579541465061081409087476836003518263403498582883414392568311583986793795642566000607641449065575529975303176239931017791298532031960679333873424192958295579795732936205994525203180205987597989031009320575790942756601472451011687849304009454631607183053321394512148574153539267822018380988265557257113724757868800570380433435021182774345600618555025377924253361340567734990654250808109002826610313751510919844253677456739961933022241946329579635212081152190836733603774982723874784081360690077672103352702053377389831096029461007485940058673668409394337927281354676171008135135132830163890636413870576953334446989605950687988756504284266637008114946499464339453128624279909042080710063053000935519022556750716823230886529435627610878829929318795085000341932228998938157173153821161001991692148829191200969378855619417468543832422225686081807545776633025767128087643505758693502300216094592393908828545593202592095251764954688818099399276562183378527145496803488428649745217876944184793297765182432370263431816994806011819205151447809651890283109422523663787489752532813250922027749069105846963602483799286944503472937559288341068634067919909971253608376376379286086404324641139956588409631196203010213671569319675056915993362886894045024431222234656501654584608276130159996932877466562231758734129799533672601384809681516373364250986134518795027984699359888811993000472478762149436483506976731624261390362442962830286295189435336287653161850032797423976744608307649247519192489176942521146079785757084258912245167782556843267369061628431386109286875675610248729358076654067499022998710634951312182087454591757394794829329797710378588051374983402454889201574412222886548893944573210535081977111966092555544515422506263919726054095005962061018505408511749770522590992308674289088884405375725155973687953870300603487533002250523876396828678056975702807017526237216059863483181728257074403925455979569632022137608256753284723369567772975963406109383016403517637684892391110854297930994239940577633446481220517873811712749103002962159025681776521257998137695709708865264057658290263758312326902827913832842291383427379319050690647996967018781787089736900909680244924248441454700590585794352733495459792438005999167146296149246560432865544049151496388188727707679962072987190859008362723185133248608241554864428603967588182300631309233475091673715646966465787162421250015158012995759114798471720606080992724557564509812213103750153532380036568124097670015395619331850776025712214417687780213606779644887905106498542503743260600259043778831377513444067388973231577219416524070389011902574555809241554741971386174544145566755837321740635749863739419813403488397027807216127237864814017965371122496838709365777056888735614467779377121292388801091545639554075018564523582737744124713546123948805751500396535274829575876520996588832848992336858954699776226438040272545591227651010477732221419168473871194086984975715847164340333761801065209969560099599162904702709666218543134251262994388641251985585094040590951578987691048302304812018641768101529590446163091879168483741340257305683372872891269466356558104046314017034952211428458063730951013317555113562281518118109923092454581939997543970896146800510853970311747636495712988143985601529453239930635898106401195458745540238175223990133871191834978669889610742954617936660887286862402936146479571611619788106778986114685839134626424485701913333247453326492074287705645644572506588767093072359544956975183933882268277259209608622446050638173101178086952688965569047841852700323154535916614551435204547178559232688268422070497179847457873999757864116514503051613713134262411237005715582242239875252521657520654171053471143813264407605215015413252463974190508859866040377345830082312470232177406288327334669743586047538406631455602311286712694144726158993598439055967376488350084224358249709238958391545342724061181269076898366914609391698584339826874418209477327783304245218934592292757310180168654336529787707436270986313741637332258623706974034308574844565011999032958829170571410687967034881703355701115587705215482310583611761008829688638027684664153947458486996181213875400395619286187965697885311290965569380767943976818220981064693280901908706904784033996085756366043702571174788202905222493583583535925366631761846844090908242486675759403255803659507691397407600895083589346181605218827400268023069703143863251753843963136418286885434488827614512721882928853810949364131556842256364260200919289489030973511221425164102699822288012950424709834648694239097648939391024031353256024442877141981825520728093547425198492523067121598483411354006143490309991378755142420315397900333470957346262677484470162442330517521291129760609809030901513473883712543505655577671250684796570106252752568151366640999366885389503617560618937515559962031048036317188330511858003518381612950432977776025671641139931848086034917325259669707561141206832480944191392632965630118310667566535010435290946064851911966406122911501425244680522306431420331811661358663948316195125101069264785811473748631619785692856131268221208355954816845489800818058396489463379343746786429075073887502604211706997800661631832424064111159804245677493885190428614726173024129679337374380238865370504227329595333405814388713868961759463993168381251060833791490195058617549448995077877936875341300271339489284510508325152794320570728431603406176119537594206379290048365288006861478641836486742791884609760081439050956073326259335772859368512739513749119979811750426327578632118280115785092940348195392392688976788741463286309747625572811080072186587964718795372022121308247838750653793443082353757038896007950292181314084367155399419272094218940234019364810048526432507512277159791631562350941257976173750198912824008348165253118995448902859196994876783179464169242135145227820047265732966773631557375886672791493754119410330017350018283154304729144254578072444010588074724971429558928313516875579339389857522939270770143066657080147468926700282711635111610042257757896119948587876338764646953165306927597381026161423290974319994363667174896898670357192997346767326739278617863399349202644973333791432248536169385677371677671408965661167043980781379822160057076306911458336619031466671789962636148229903519939547076689962019187572485720105160622650707790683411795409886319831629236281830618527358159991577525155234705259218520428668404511683747546706912017501935184619196151713039857575944109612934134226815866182584685895189515592685767822247276844074243763301286355024742341895064495084348463483570204369779870942422821092099912491306836570688265112485242964873363633186147339755322490672538031251460793027333259260396966527023460350796561027593392851186710125999520964898508400227114409194274959028468053512937242014192001051685278702652712533324208724296746366613906001333914043011652633256677387948973181657502350554228519251589453555368335929143108973282205601738075506114820466949279805337816641887084202822244806512175544190244821556571837818145358132082117053912647782141093187933077220594795072363722646160568346416010125731283243358316986361571132726229135737197951735142015482935375134344362476416697511960808464706624804481170395151609832724504669631222886817401541206879834139833557290835239818498959648510073990840820375307076423477478585944967557999401275625143188431546452319286360906673995509991543015645270254525273430316686677070676324696576252137428162021954814353230429783149354689562974215343630637740144677547154164070792350922991894552422910245255908179863534967096465459063397572509579921555165353009827519389112391351285762917521266472033648945533673997888733560732700459873124791271924787792596540783119138983824543838645653897524527921901812045471716907636442942362717289399781640633253627686399812144166581214734507235186214244975903428022397806928655016246401980228446869474790968767892919795087295388464244875684312024098187322958562468321211432106875088530719965030505807700476170045715537218783708703308016326383092185093885919421895073875527115927933173294700332662119970275503197943429842034960040798663032715565133599781912231003327761384429683042630071766886524544610000832970548028525600457974526789034442776949376021691720977032930619665411893156802742408884982661922774234286323990844279725234641667782626013721634942303114729505801036988617500690396303186497563945354274559981680612965600232017896889588593456816330395126604389236452338055167074633814581854411064262625570190946090808004367480086747137290271388362219778213689277314722115300575946536842946249071569809265406551603602027646831920071888690339359195313491857997536020828732070675915071684660040350081443274974681281069377548223873144443690119039670015831705882190048419602890337891486385573603233498682681238369511918931921250620593890149830330768868468668797330631541685266743066813463978377661624293331400958203598748277292438536266947271602260668836467081741095043776961124119677679859994275409410886519785670938020212717364282289441018815072972096699028666744419135880793422099392901602477768116879257909472633219172548958115922146325352098603915479163845151507431906822943665316705065027201402676885493300769942959835421478771659378385118226519569696832442909510737153234638270218087029499688085905578903386219253839998917491512216275506456495163545013121478557642803785820732930310485438446028202114458962201521132444027823514688848371181213178292161078595950046205695995130140929736430675740102535725599034014293870750790483013009561221805725067848734357471502159521123394735478012108450948581496779128853286365752519273168742135695369986465503474809368017279760205051959720666621385951023144537078481398381582056930935927154617380264144025341734709565270799355201304380398071422934718267841472117165587883894550278170666098948533279243808050622499923586131449600464323945693426994742709645033466716810332754308431238754540195392073265872541072025071532300871232405916475801934164517283270488500041841209702331475664975726953554299307112475140066809635639397737198500242508531536065552219380346686081112893149816390661583443121867889432287741662791003795027173573415245379913402634781781998426313469692391044559078434509481682562442958050787929711162872914122320660556466336533444650142393581477947161456196227783444601976047862701986935619181350162205458436746533301547914855007690789399053267455960017734512908085651868399120637237555133908084634806841728739509694450998428877358855942758127636770840803184718904427741147983739921903785769663451443128644970393660057673167113336358255716252065470310821547280421457177916979565234633010738674747633442426651364722937363573987479125287003256019361768686832511096643459209792784486284962786653313640724509539114028001577748701996934784442178728574286471845551957378015508001545593284499095147114454503766609330654574203608961665805650740039835871224820602425247677810795494474025399796449276353916517266714579843169732303921959616561523178035099667630470394997804924637972129955027763770561670447126433724699055890919976165774307499281246090255458164606553594107580182305729109333040506064716223870733945336473107309198227157110821316335084163152097585697058746552534364231729380446768237894377944310163739880095205945226091072961790612062997029143191211557071576895340553172088511772499913578156727493996759520071641203107045255057323078084711288889246030750768599295293304998922559345893804499121211804719327124652109587306634016345805046704024905013420814760931290490928515838567935380191122373468641786371543462339709946542328540543436711202895061773470012524785373278154232161699804973181582942767034395134252703081780529141357568862088760422641785862473556286263817676234859446090565298313063362875587401298138398643027930644470727195047799260325949331627728288703212054703837530990835791650133824240527489806313072199037475676673354633753716331134798232663635239414887436560610740776672118350202769620746672820871644083979815185547689266973500466924459799760503054303047017885354511133532361359356242131198495803567095072600986749516424491910127013453528110439509815711776308457998820398597742949151712660876087258631398515528574974610342466964646408902097733432089070804835932216761276961236461144276951107345505475870163965585618675731214015994348173311760710275957620699086452843515608266218090103800506641884167897957350254682835462835434199620726509168016208600587087806966689625654218947104489182993590250904320228015148933000818973846442024060853978204826687382372539959785412847170593705164763065962502073649105754417672474746362517556622634241490667299006367340098252249868480709694987683783429342839238906987958264366553062125303197919883880584115769202674033195640347082453445572952957021131930635015602047840849262636114086038067081980678949722367792750903455288627359030643949000671811057327907938695593271501409250395755178525934242808561606818488331520481397245544068794948687943400968891933644679904498450696263449188386578147038618692930361643247015390695233902645813640102627393634930815822634463649306159140654799027710450177473030861859796772281128961778835316525419074944455673392892310029993783217421457450650911544092531910210558152245416073678586330391117559793125305637327235042864073127070127125253392829726246840421089005010697411811337849462038603974151776173654298367103245628024042299950509412321330137551787459394156495475585593462235525590245877360233424743127992912667595931168699036001679368823002921466312389849242005954627910655777455749717984040108118378676905452134723540814219871544566202152345822540030522570677305850672485953870191094601250401132542641216160606065725370917650175595845309071766799392803065085392405335973645304880398978509945302532334790843396928929240822122478030667150881270915155035366525581946294926829564947825555945327610277777932787223357754369173558348470320068237966386321409009616047516214138004172666680578205225772485450244730428115050738509680713618860458136369353635737192408089198446857112796117626650229605609141641681825648345898495052508586275739419549842562999527981976293697985928270359419582764444283354951060256407145239279044247865366183380800028269810569836505576738568035970205920365166442088158092811512958132554177165272517590039437445949785737197963909938548726598717369177646758900895968723897239808598529426727220529364358909893194933103467436716810036522204535112073837386836982530870236993913010570427398750963307413795699837395700925911121639589184975371575913958152873461135597786312129836545873777622413695315496061549926993332230298769692333769154246164445704508764793638594671662089419587541721554096514890386105714921336742550961170916219001495985959311115963772283076182295265188011601864483279601372905656722161416060365378550156919156760673481962417072673706663263727258367833281696718392695534920096428740440075490603083015932651437836870970146680593600915363215808666120590215084298846292856403257250809151702292822497178499991912246393333393858708350151754181398315569551178860893448450464254798658782118240477917531631469665548665272809215804402440278664253438056675607346523069728701809281037567671409308729651655062351696681430849538521397942680367298838406715273910232987200657295958811993905098190363170807967005271550422347284659777429947454894083398313809186827179491129019530463837070732286613796303656248174835851620792899891798074942280600274933333299121709675344078634866376896408286225035165378680734703359358407856683476739538472834851721027268703064736118562563533425668267791223835686014246730574576561134934306955903372097940231525370528871346923383557734903739034635429410307060258401493960769910698316315607979821236648845865475442042980874958944681147508193135587906983289680574026762876515146332898623014238858491869638238164531543446812209510277888868177279355199677402165859715184099596724957746479756313528348181376274248275612027499106678139381270625231536867229520744366274850809418283451439361501513294225002499864811943734878843545848534304760590299244173921349859841058668185666445662738495769854862943600592536318121261803828016550098711736645134018365692439473694090250796045260857538930932266710083605285343653964908782522841817236800848089443790002881426634641087898857410626727917971329280030493674727756557007874394241961725705943639899293584186608772794280291339646705086751200482046253135878323372807689755926241126915381289844494390315901060025939527244824742181133727344503492917932469207300020932804140003450284925898389597480775777895287920161545547327805437957553667784810928728184043336360690869901400353761105177654994455834325374206862391005514980705515685263805554439576825120172987155732761284769456227149587538508097673133445891649316387787234477609460896286096427516097554096183352650790795875774165572199896443833634861262242790349810218570425615239354867631017604337881795383038693415887539119005399262082315252615933475210158263338450489607101164257019313152970649973323630605537819348817773938150232630366308301005087948045460828366998888383397176755682904584935472592397592148363782517572975458481233397695688618617414906444880405335121974594636222717854949579660184837764762133391213532834394219694202282074963794775435259000603855105325332323090341390350672490423894985920960233650661272966969974826163847880044071635504625762233357815919136976747859334428646085640838573452965535604836703233189692502609898726186992910380577913946905094200607427958264649704911636244740043002230727974008090183467563940272396675722415074843528098576702350382579490999024794930428143408898150476462135773888427508746424260624428676356047509911218145522900529004430028910484900795022509506163366038123789959509749442232658741782315942922398500436005489719228265827250081670523636978138593904744683367519700895853053054181557500694222468194845652018707618636417281209321081154305403127126471418320494455996250354621339116373321733096451788218133150954796793607957882355791222693708190602336977055456457254302396076127744927303951545505621884967552451118039371388150633736489168946954144448145251663918896276778220776634617718522973438504574371115674868703956147824767878470684838539825798289163982037148200470268227636051833440553595573130395522959860962124544979776157227014044564187623490094860239656760162274375286075216395280514800826187678173928468226203778026329219498227246007945859442453416415632282560533975267069636365643683823809219785972651819556934393015355672310327900876433777711864315903157359218931803911501222195573222874417622948943330572262659014661792029921426154486844008489303369309147910308954749643725752121387298582678846450088317521117127609897596194078857678949330997291251762351974512731793830730397912370437823206584802629244409381397773026673601711368808866641241341038137554171298580331158016691395034346509798101413939892942042318113714095289864617285048469144978611167810714773037430551957738280743040718477181120724678980302631020650843893184200002871204065197669899301678461239569644092982986851659723356014146635622499089595514230539732446921892614861743100919521140952932663482997571723014269711436763536245667509671657131356406784649371077267416852836643285520269358941710488474778238598485333418281997565969502004862457732294728879318641663001943892846507557074203511251489369050354120447590098974925025799615003131487671635332067428936197204079580630132653019540964341079960623646355966209564088092367444464935721645192235923772507570439459715143821628648077579534300586367550236785057708398522397020582235903814161052355365215782890552648838208110119391471703965467201198470016061698246644474691973524696376505208750908663953282612388448694039197504424784734119633468411622728218900161837954766859080828365043991040493264413348501784050567713453361415340031097500924002862597106345760593618185152584172334133496286255785960674611914628329940757759804063167560894753080507926802509439434360147110076123310043925017887358790167567200923447502129256592145537658931645477871656806172122136894909188984290932746794579062082961206226255207690328753282601589689634081758137398061033449977945859950600954167924012953566018896940038860907005525067077794280056248397597702166975213347805480959627796768973291898826089320727557780117203258052950369520004625763785871945534615001572522021363731940155997292604671956300275969700522152957387782886902977152641147877784995664532662296619624544549502484998878753476247513712601868262091148011602251979026801292931838518105712433430704450723488081323679545260622321692607516098476429651832491077942146215528874078590494906005676674514833174732447007260011635344912863521790379164136038518454375039299469407048324164480264852436745997382055308197619573901857775604270096535106194503297623141812354407672517240874513049449099796539238655968781877739699832554633212927701272073255251543987079404000388339793716541352382871787553750190116621506592868734931186108289620378374249345335477573756029777068663582463303430270652176607666469301369151437951697558865565538180804586985982493866730925959152404476721242120205116352898079432880589891573096369403289885487763912434728500321982838873176711597135552063735279076450114360557705056032833017836128237983441162158420840259891123805132655231988655327084389919755718886768984275600119499494108520441956693605614379355537496113835459138944407594650190394795418566703651525286253049857057584153465919786602785261580742929899117537198915897105753093693230068289694489351333178583329595225725669208679839817204824142373838219527935333099092372173755727685566638306774568709176132501591037678520023207240734062966065900280674782925809760292069712673546201426935966061711782116464131365365144098278974802394877449683838367062486732569130943904175681377973794394363529003604291265950006627809657872358338672627279305426463063202710423982860654149738771562906666247343073211851613845611578160161824610489853105944475872893236036248591549043737436935900509912382618990291514233068519578173131528379778259347392816694948728534917121733109501761169046998737177977100852195328332213958247060060469633486757753243472487811756726414779623078017230166346223626862112564913631435719172320758569759333381843543860519744363166987193958330850690717537941958014634064070090137702943757651513917700993603532867641207666566423741213807197019323653894662074273678284390313453788704506877049308210802305170219136593390810308312208262785846013503080105813645723785294054944231012423105564611531258997081169136360848702924013874274839376093457003514472294176740491195703674995380131134799459765935479025706656920355643808025421564044032066423434991989002364109931813905213219006575220537567547410773123747673648931014362894346405152225623551957703755081169767725769582754944961844478807891076392011417705367178948965370764843929875181194522014407467163715616045504003659028590693033515105316666002054215359300471300859107837916239639405580560978561533083967170563750375459084540144488491067649967825808438934504972532636105348714278725158716079485966421851225118391371704201131447353546036962949894392260850477539859620589097533614058799792612663506609729419390699880322632510310131144067406760181591392215150740704435033253995506260804677708376665837313336566063080112154451099152268616943384287290824162428582500782994784347643280969786493017210535282127906827668216933002167366264868284830324453655192967862286937171472949365898517075859787659721973336914359601521225871011562005993064430970244663886430947070779776258414834669798533229140794764613899521895007465202938568307877765494420225222530910920682640947374688561575778938402101416720799661296445420438096161618609575301184501300766352815967335148701131707900030581812262258551685124419663338701436997890029878360341974327049319537830329959122787226112532721453146796186825389954293571329138772240902068901053140353225533276976200404419057017849342351669111417548914990018510096890103106403776019745922409890021424858690946420619621027495463426881823364401760296290758987895764111247215915712159179728982839309269245138002801727692279966453955065983411063237160934442376428014107591463438945758673101227224392405252836006033380818790415406652317113685603353369939984828653674331361969460505383348836016672597350015457449360323994008259694830235901670925097032695666654476849593384896340486084793826479998535459960659996734907627174406053980797473900142692993057552789358296563278481877369823679150797053830728921324168218008608043057041184550200663128243702703221713395510728576700966894388831869065943673017654635470017286356294887210659298500707120520712777495359630840902259598898103424124298985341911224053581911177832788873789092442779302933108392393882481369605515354896798185371523728537584939929108000186751293499789680784213366575440741358270976751334262350466874815175311091549915747377042915014846093357117336203528483408464735821641236163956534945727652389563218948885317894697004097933398171489251366807776053974025255479849307968441346227695801881552355930597195536320365247048221553965357045561501208277507184169693819054683217641980477691191165670522708074800988501846895796756007795944199678517578853778121126782244713191432269638450251347096243883464010777088270180966023262968925801444934175231796767180308474924944828275322082112513834027623147381557672347359891182788705726623296257436045527256513375912989154065848801730146469848317326871709276498099427991663129393642591072544991720552722566326976371334847234848550621737019635488983656891505940972582297938993916875320837098738871862031039919541309086329003365124688969679447108296380925389046733608288084061695724620609399684252288142521147328927282276195736693850863925866865541568862810993308046817335686488619938474676165443325590553205632299478969332062011451875475243476079251858429813728633908055809330736873197952322876610756968384648927131577145087107045961540484644831799536796453078838530048381858001059123159223315823521284352200982102541328372516222218414058940006080973857220384578156199653152967495067131447602792365064325113701749318095527617712400680059403622998644128067442096804088354701979394696306420550068565083216231209702608378873282480515299673072637847893412670260639785802962003299705999962833255360647437333104558872271378395350376647101643897689458641397994077024067679006556919060366974405450959378584502619061054265162184097408685748167570417667078309076575508926782604415759115570517073785737721599773766910326476103760939542071841250181099221334493974952236876280471282703277436024297461091282884227228471634630366080556780169092013197412972655311779302634662840129334923615693665627828304131980190547484108814037275696829313520549151647124456665603306619467180640527486485650250965938502414551883066253559565407221747385685911248930240251254073324530336334457583081106567127643727544491304067943993554917795020761607075413275117484525368915069481942888654058326644669715412193056702581001991938065829810261420320381859331110229098313193738237392354742670036278683620226348481367471149922399550229184925043589197077885090564684968860325878605523822432499614926867604311190013341454108658913096538932742616869945788931792397402995687389170010790095051443755720047837790884862274444953670905679707001821771428274864639318849282052798968020283359257912592622499661248018983442084952122415558918322685682722127348328723540686115055725827971539974677686758760644978881144825844623678769663873806616279279698498318437438419842750117136413267402099996629325925537699075587312864889525895787409951330221034606794471544279606815034853922864253907007679943074627997640288641242623873833014549635501937456623921191133563810448964513541623121013908138050080020806903335114579585441935501814322358626087209578532474158311852726073308315548091437044569259560640358667066528058499488639671050583345067799595734489966789029658206227283688904051523435556916828599606655146776980602428143812158810134188321444602516867856142721512710902572004049825797988313970648923518316381762843835297693296498622164430760994095289524453652722442066475209832408638070226603038113479570735292795726608561930673038669298415265202513445176207162714929458068022155545109418141307755323440469711211304670519039680513265795160326177792782681411058843117559309069080667453200059231785641864469438526421489412125234249020058719988204644554155894164114480907330454117562674128503158074256571750225814041906516875587144820687488461610817466874594888138405553879597395218071492453354599146190895557795541745877862634571959918638619882825136302866775938148949415550055810478433569303462443025813079920353038316275330151398328327090002267823667035907215273639259477391363168948770022353332742163863086937409918478082224333224730248664709211849542731722452209375222658824613074028920349941845842580949085013619985278572083889946968188419848337522821122766602107577523031789504277206675306854811098310359334589163134582899141357884623022681400586252134055560400711969629359965641648888937095589032935656126479184818808408445606424747974252397995582717602051822236724344984097513996637754460677137147218489295202576449760877249039799703446898286469978692732903347194094957551874163777589947469928682748022148937890839133393945566754153148182680106476078972556178071716971201599118087016914935496522456798055672740311607941117974640129578013400149788589008181986297985303762251093559509296022736824283072981800087232220243787594457313438054872438324504985809385719733174123959742195516880859801999660868363563962835124993177015008105910423110039428632420949317640919488586468626760163905936175974600576917797803502613317045149774297875597476095147972622753275105488109416362633153731347070981626363701807760228224519867824628482931027490490005478850905839992194670354179808885991217440151335207086233046110438884231312346477359102305719471771203478859970204717320462448127907347932562585547373728975281892790073625057121080904686435404054242535041046014400909617219849515625661618529658348107431542558426679789341685975901581634967944909263788944381608717191455828652184992921500090230532437191408157131495033581042431530539920118891248153575287319797710720610303255401744124779995152550131019481127804989212660011358035666963085572969815305003301323149789671218518282538161807869696942096023235512012056513622086884056287201174000546225913126427484656884230920588365516701543607813470212658997634993023594407052292116699189139052649835799911761040190773553986642470847091365337557331836835223894793142591969388512189298138118549855347511312610214216564466590361290979698990272474156475452456337168852089675770906483863443747694184102838910946467728840897564240728497800613164288343346277746926894812539313506867242569255131915631435585918393946014107268959665278837311754427066068138329594197738864731747907919992622575443831932861311000930939798051423853233231041276488487293411929435655484866552698053900221179077719575002724358097110909212788457967359136495017136637318162740568523482204977343115513379114975318952932737926728230982894023318090841683894017811047907739718517783380729359715066907839151348977620309869287413954755053897229934591684531551027027999204697614258916602138088448110762311791885281995327492704412716281199528808519580311587917270161013674508676324201139223181858412843154434444282149175673169950847923183363864244625420857548592939577983898783209405112749297039168681412603932877394100039803626252701056700938118746425800976992328532210689789687401527899457845381113695989219465668511257101313649793653303858702048126690595224621042334761855455727585481207874704607574376289612233066921282448486640372990737076935704701910216555170769784812332011080416618157474846110253832902272222137045121295206003535125636567913063407940241350894653206105127819149785609407834296634501594569986111339642772450924752843434241704867385340964276383138654545172608666000204260535962623361428291480151852706561225532813894318095064514249085744550666580197809977491125507272103907742397803399321866444064191716287646876160158604700093611925517054191397540126048366887033845862923818325647697736738408556794903957482254407054824397077462358086926906610647471692457761484630099038974693537586319836110005968532866094214527256237056170987315022103364699799237857434729682139719937552558936483786074266576751066333762360029918208503574368401457943520631935234413558746623553908667122346988672023030333619287884956023062167789681908935814684734652423290208609316313970964936044034419821921418468166374558809195056291402406828833853383677074012395824706886265776501624864283349912378116674449731637695314062871885021026574586582764749679619352717343916610609696212070842187995677365626297452894036876463662966927841685961217054242765920576286121034336191571888385622642021948627051133817076487941090038600207940950583167565624598793331350524575157026906089239349591986638535851729851225440174127099481483508981611123444413501332749717775665110674381280758942925607386142937613832340796618599296744530431589433279257547612607952842781045818269116592818501727645805831699994984215730870159616416574420123343368927369439460877741894866792912318890020919655817536377249717068065225814564629101461175542328898401046294225389220179871111272165988361702326024727954995608094257337154738532010677462123383525701134962561471175228694793649843953974816132438173661189227668837606833216606648639402680588588718195822070971741281931806174635346040590018952785387150076078695689282919732421249596501986283444042091485377106657252457113615317709472767778169610254420547913904806837798913689621398316636481519313932779262215792578252335527782599781671083697209532621609505170215251217285157772331204231546301505073583233417047857185045044227522415406696440655337481841424700206486668877435674320126251492632904124859380617772371538396138157285873419470651370975811294287016990772911685404089518356037139463121653732805111006932227926399692216764861011955845891489944663848664486768486252919242091253331689895988318847158206967418244197964730755829234673075229424820875880565971839766744448887771329054517106349080723307590785408690236761320900334184515036875920938572848647508345355639597404244437656067892534875083759215450596811886201319083199918006511398012891425327726571460471767177511306660744287285209838533923956072016353665849678153713191715094255274798632432868643108405062922829837086367517641447243453025887666373055698701429690526851649046184061129790443906474153053890351722855467608767326091848642336015528534839318992382125533709240423522101740453264769008262840045522272512241056507589784240434657869819069109390827437193459357458012949625841698565446650547744898025559366024856860059932998669469472058880762432640862709536840089611444195912796521380446404718829904557429600499597509881050015342271906876591172918668271773588311158264601025785311466950022617644242167818430479785016391537712361281661627661192757362572894501296247640731119278533092621032495052147559845348380668997616804840993159646220953206173405972795790610832175602385139507472578501325576988296291289184564975850142076754903998631560464655785949262963928019419833107259214710928998285466036538245443662606993092481508859004601766153328222650492036931553237124967392178232563359152072165883566098357405581976234183340367912076608136064269441411630640807809509732698161527327019177353817823757576233504570446202905298967679739481250911040681915103297365946212071478549823141596503057132172778735610826164887989277230415479691154196069953953579985785525562142329726177787152692814832667697745107261637672079379912798388436483681328875844898264446002867665519930688902686705843974883085014431455776006898455365030329958934640199645841848435853359679363553845447479727806033988867375296476098423119832513897466775057630012656023303205381674315789033078794535843497121588839038333150215708982838661592974671174276609869747047634668937810651951819604965346414480214837895081498021150087134928275164495514656082203928895407822964486407786906379903543520656889724807433983916728615005784341182698194392131288345808811646867541565954665279463378707866074058621610961661614873612613539499750401137817264377421546180621433280546582124825054106823820961680769261577808081234918981228377745153003937116177800179188746902006608940443409842111372701507668923128506307110998864709801383419369490092738999805722088336671131300135049979186674895673356361709573382794388602646926974196838087304013381959783879551677633908399658431754878642381672808809733591896860192374811687238786950251423469858904511359245341553753490164502362666873087956230179130763733961545292503154429214831758786389010894750151757381566184329965971389514442917028632053384499499783793319038285606162072266673006102754046263676745530379340454187524800584947345305318768079143094740812430709677521334052055503741496908751128835878690945123627223106549916891739381693946214612631060337003337436282397166881098419904829976119306771656753101622147836125233949747451975277443509232246124937637063997220277560640605331722051773979322947610944112101940301379715467951362851087544183746025810727496152515184227751920703005627937610493217458545176124947033649976241552638531897549695601823894193807617508686552686059707966051124492023275124901280488042773164726244284809004643363709861091986946280257151326156527179978289661921400541157361095387397747572767819892727341369101417750901844353979530050803622760655300233647162799200992830003703870852951737106425633996060048594323807091472408538862954379126511674353469124975849333774705678479685123285850345059049972929212937283875772320955283538468942640309327669837354260194963781644189759023582789972125158030285637904963049335585622529623245719556477746477668227359692921966771730219286384440355559387236005168181203545187829654914939184809214068550954184973550118259522511594679815671501115246722485716639016221633899423988001191214495896195165752512870206474648529204368785163864259058583612644802185395741708414660082136877715842276602533458036427692789360084247990817615881687120661016709615334904083162515504084723609179519001848975923974049076563800183721854767154159104680813275880142462659483615103940611425007003923666524836996491091319834731037599603948997644263707644618991697855961992644637368039181487515956193578135600022300762835150811554565124895167918865777979346840676997825057388567538144905024174397454376876701526668346733500945736479645113887728039209054633399307631135650873669270054875212606557979388596184719538224581315653411669074257309558700632577449536252374867803938901426887778391346573949655060410619605651630532116163223436760511430189890275435196418438958415247735718675731336844092960811477770031355491874182769790653056701789149213466547536780698990426304919589129559524994568009656763110910241819586815860089175574567445267885093372843030911828403506888947138000555408165429635434132939997703684220943881598870560390626442329937360540017319990789956949721962466932350392613874493556901501391700850394643014128383038278864433209152815244102057450359103454344232526675499661112493523569326666521957184699961155182896573086747662527939054402303814515032393445992694389774761321849764885443096294607500691242592284652508473493724604825079546917000291924699784841531453265650558575457860549022901692785172738148807159409472068632193036837391898210650667467795416073541146746392006171949118796545540111341303055235832075696721286604333361898765501447215287017685522989570919700825258605324319197878246338115195360140571594524735842004827582254611354181959045720029193469309160907939682655691825557115614529852455582520609053701666816375183310237852276083751921017176118923850038591170896714393096056346860632540513982499804551174318806881076922732859212850735368378546840821052270144125040019397990993243700362797425297940223263220872426781821425125194283201948169491222327712718891199124680674127115074544665245073481763718174050985582918487011689790581925006333167696161485399653475089333629322297034026740603701951320250738168258922806499196174299429179981926817456802878846176843859625010062860707184989486681312741104329448047912408273519181685542457158039725740682298646761707330569615137449165297429713768899598500069917309859631374686677689948272803362119929070347311899901726157234581434230726478280091428494622386013994670068401910903530211250433430243021360281308518748063181711369808109297859542044372876017915983563230920182427739273271586642928172120371371155154525300450677636251149459534827494576470383386579563488472080606843921695536591484068875538271683820447992678044987351743925389647680495127349650824211452641515408953334539066605570803588995350037252543289138954798208558612400232807128011543211880641009902627298101164451176406707673477718729551410939055057136640419839277981130845584169678950049570463355082626343145144381758194585635613570126094135526484785048298449183762543952124449504359792780904958171571884391135163850430419279560000323248564920396659029530285681503452449021405186616425983767183727281194333730281251491259586872132296537143323898018759454102543006441388505729547849254140959391071191913138277552402613175254103269165574371112000988083930009193329194854326393072910765397016109304999176171710474855475283937604715231688809564152926559357235319297284476131258922008704131336067057958177661538202511622417454603695754820379052532765956485094275419494044225477191970137216119918229564895289768237648884742066423467648162190851061761516945146931495732007057200253363858523438865917006824599687316524270245692974095730271787222655893433959104651439307551567675694329811375150643257827728629702062722455508281286787699034089916791511632757651527478534822391497505404997403899050158077039136364080118136049872245949418437545673081478389690784198932298957493342680707348144699491577102896393704572472175837178881953245029078332759056683652867746749094211734514917073097343747176095905054140293301674967525309967061951328006732860286669454042771269012778759507675717291153400935495813723084012331679747404007516493758316956646537856571279562121180403840117847212816273992940236947085417879716507697956890733560865388374766159001997819058161648000754049424013981221466611300954425582857094161061659187733153240026460169069985013760984158364115859231386175058409179209191931954275058172686787980543709099576533016356947972771020557327806711702893486601423596258130087176497747072161411710360689083846575046865396636627331140990632487533534149544110404680440787860618149080355263447280034629652730295071648134488725585791802259533836772591641599571271931295475945656416131609809870539450880442930793341976887373346319247272451070205319913458977766874275865103288144150973021175627380940362476764944773347673393857160799324405920310030027387689827875290422810669923087835354112474879488400044024606688348494627829852998590352858395174671121872462714679946384908109417164515668328178049279677038459779276202692412017551636785179635109288104278827930600416411671627223208805311980076673905551817885576131632196031104339790282432133961564350144347438755644447766817969588094955452333232974604465631753598558240560800545275467801780450618262217092635091734656813585611249702013363506046828449937114324602717340025972204729401429769157369731752835762463666697340505227115652279277163618718725012743197166287962340789053474282432362048480099505476925949571972302495448768030433195684688782006553339808138137255139853426951812371265820257850825196328331048899271411887537908274669909662621794137554413530587927396599074524941119415691361932147967166765033854047350962735086592184244609566741202929435978656469011130755362452172166481946066637938678139455094843620158385624287725319830063651164850971548584799787367039823644972074282631516105908111494292685359723292066914612235539708550420325822515069317391349602301306399136222655567862259032438280242254507675816606627099945738051241079347845380325004652373682642262193803454991763022551568187665512276213924465672979449258986018548895759125659639500958759076299231895735682728477117466854994155056702346103172744216429143784365023088841475992580271867670856436104208417555026248991509762523933882785778494236544545098973168056110178798198677565264656858522192949164046017554939159378966607322044121785454766898523510787284334928896987773153817900699202598205276483799348951414726526550898281470557932922928120207489731580332421646950821544887800126144281905108561621051427702762871399289499635432437924103876596859781142157910972753137778494701267294070646862290317627086084534555130558117381865265419350151868145137933342176112434740645920662728147598630301080847094702172879637686004009387895144509308080694608941841217364663973710009791717195296296098828489520228924128063404267217410564939337401702701636802447148445984498296660646913011212922292703653797508284793278558986910780493930769489469052983719934496771938073700465358786746861708020057343761246476574047430493612766751261472507215922853562000685878542175890394286245424117186533542244753935786127153562226156185557889342745645216736698301494514369808787988392346683048163339191449925061952591190640136404263828840643855828736995017559091115033821855291375941191097223751429654596823495004610556459298479485758271464832551288397644640058587571204317774037286154252555206259521190462772462501018853084169483718980970810346473122577935193882798299462503732177279380742058389549744051305733751290724123392049921322954359408480040487958608944766448074722380556666645292581244722062176674687446647638576781223725762078824839588958789067738007977006794850268071560172356520887780017376695632389959687157546898939115181622788302323290331519670916482502864674910795484029824659837174981109997266584227516223562537110791667728704089461175194519586841217353411676359851545253562981727707561243930176613807184570419526635606651619081135903177193874366831980871238989856178350900357939380336727383945446702175526153758337247850415906811462604962888254670037011589560387385917608193319675250572579749870156640987364453890237774216271321337670378090507191976466599602048635974556062390076955516789298985227556412290317135247185873521612636817338132128458438583181636453350240681151023982227887532285823714320995535222957407610861483846117010096071226510991559770316192552728573596671346721747792860473664402964695138237768831598537481433573912745391032439548033913301189731459983035991691829972272097030519356776755258836660103211139571441729054348966993030203969022015379275303996586593995427780578922043116935499308659429177245554010961481761905722283379016087040246338674041834432744077001072974326284298951755375117232288052245061539901199637843150128373416024480205455068276020201727597588956026566291821121142618290723040050572940762105916237865072567763485315778715606835212747461403749603355255352584982261916675058894723998024697333523876263319462268182939352307531038413505336178863199124211722718088595252412005556256022796688800301491217723830705358619794483742103898381800405168026987882061986339596354510409259620183240989917940919562339187072828882880215342539440589449858291107275903350789890120633207818828254267280474431502265878454309892597210222763006525753601164761124479336759674399938169687339837818297205902938807572619616986890975575402385694230701616531987624502473072814051823140662684635168558262290133871799985560659305576379406852501159017343252101772027585637875569103908732231814436262569125113806803017256231306116005478697790925717431965454895454074185912702988877204238700602480534481574770713211774795011718571071941999481290752211304630784398125412726535228816772682008387329828826670647090674334152569766694113705904864777159531135150854004905700744617575299008181497391968673905203966697734694414133480843335316067744385914885710287987812018865557402513080356000610086172114373808660524567789894118306623421799769411581826726903371686651598146230302660424826468255916447419584096268444133649858308816309097321405576741943126871962714858819097898442135843432215625334159593671235349067882302208914361570955908537320756649027419922061595553240283040489961760767863887556722881557434711241286068004607714336682288997327348310531768493323763318230343842234740658711339549279226490228039399499156298830099226763837057630941031042853002910195059899366341733680727738509545484405320611789976789479526454710510174199312203677006267852798838017878493240659447122835761659720157135799489814649678457226441412903786953870550120161778989177270669234274369719468403422176909295009354251395661733343758755272455728939491121998293502150848232671575269004776109299430246674241241520103718086453917606586988371430749429811042760926283612167775750537454807129735765196569954293902834883054756926530254306979340286669485246609629291529943776362044268930232442969980004526173988472994308997951839743231912229302552532887535806646148954478288498415772341346473051687786451815800916449758673914680768947885695578508136524154343897620195253732241197226933310483223345234224220756579009966693004508851626837202295207006534595222451851911408644567570691075933298235167579576487167564147383032808744668259344580054285830212187272244715495315675865957741127034967629241256733005447750272611085842545015797792431128057661534620531075723501825028010212896993549385563879586245427528357407833895590790046105744933366974224479847138070629016000535948192407881637253499444368415530575503732017858159301500156835383964560715046764357486561473108211111596865011574069348208538958554442449443732036239551815398951013994534737972775882859226307389178691532741324175598137484306893880624219902766869892812246862431479583832660318184968762662822981216579349150840986845461799357199558224779370546464507365420489381812722008039583015065465093640031525568753535617130224339497883365322163427823008252108802716496327742789289608580606250347661815913519592160238505390477738140282003759272689128865676356774374265996526344363894585692279259101275998419932526427108961600051115325289145978319969119637587991504205479628170201816659752418879686634273345316602377684694895969352093844590464430939950406680343546161130571370206950834234147764704982778760149823426515778197273738770990651040855643731956616901715610857251466897121602192336692259106639957191568684016794720156130530672881797237913703103160324167539950808685291664130842170545390571095918350890581751139737041865069983253796807370715739944607420788158547901253730991184354436587469931138734438513874021465257076115217937448130427924855385808608665534244623458764734447619046480710128969695619728322177564234157653512773464023440706650991177560267953240410220240328902494517965236543059506261159768582917364474749943512073539197292832168926721740651222332156681421583940815142395978329020027953232027062400675794119229974921896888908490092175128750967016146065976612765863964510056535425934065992928694286157790550536187649507775346168744188305779415110780303851543950581799426410898762012645506791081241010454108201230356925375504581779758037599920037837228130983172676057494548617934365932981432196118410669410032660848878723136961476484769321419480108462089477373281992004183272421850540480714304908908552191392961195943615795799941167679563747012232075257889702461930537697919804183505636516091051223473585879594502837672306320437115671677635423217227257213326577953503506104609162249303836628207492199385664250412931395044646382483440680963928347897777616976130696588028879489052769088015707543625073953581341900969918236301985485999256641784492108307941157093744014031916472318124946726801643505637270836168859566111862428111348983222982957665671122603765623526320324805265817144586770128805104520244859059898010761801963175811380251253609178945234179726804507562095554037303553221647639252478604187082400298101634829194678067949825928761658942744011308293332116431906098296358526274331520959782060470992861544307331903712276173315160915416653430190338256743538104230333869389892797442195989050310981210410149899696483093170217876158729191606426083998602721253756470857000215038600819653403682674729270101508614572052912408315334165292478236007574190944918011938422488725474523955130503212297227071637359862952255868334638997220173136075147102333411295021449994858948469633642934462110861150395245723975550508787051534806353128823587684672789934313292638260914644242843669713836141301830563880767479161744077674172972471955506857272457911049733877669639383540986188367743861099094934610015256693214365644354701139509307960042685939717104862186980255215672324009175931728249269987867846751171205210501921441464866636693636059226469495683767066878959734549117587039862647306293402244839347241814027272105938986390391146372820623686673242633547969176809336344506006288849867486692897047126250567402122334439555733358529893571685212032490024599105545757694211608380555898242421822968858127278837401375139859479750388435582167036254137822942978589496903418124399951268567246873464227019978216611739836513580611369554358755085668257661143483612325890689163902459162219867908484348046825659317780869106513079453919881236169055637607486155277898042670393739655889564202221121437258315121338946705623752602690917852105601642460025515866390943611660668683819257664438222663385684415220738037347305061289668425477576057833264424081829158496819003717063951656809811388779108750005466651882678682270558817807178826266939026792725744547918803312895051053585604414076708370464009135082706956344768475265050197326018420934704652529005346758893544586582895386275937198557620230024561236940011985072052840879351595698595351231807537492243559068956095006603898284813450458917293437111700486214363158316315614399454599715078017286098966478695382335086183882437195467769389677265311492279154027805925833561566156429482408770258701166428582628549370124012181453070486375863478964717737964483454971509126538926256271926199805266276642323445007512430554766548733040013252653885624046106717115993814473279129305764276272298886777069049555732798503135601027620723630215357686946424140487523643423868198004742472394412832435753813328473593959693956913249485365374183607145638614032358497464888155079238833280459370777490974776621002002617103284252331427303210286160720592778915793428443854621046648433233044206396188820831067363921056210288891076274121158970041946756436349094527069468648483089493010728998561248400961260419390808341856564721592215297821507878479956777799704705115238300026636568149478171525205415482920869368924521895188479448881842010235921553670802621112206188151931876159775900159002921814217488162757088854757413287757907276739115070095755573929233459296212150786255578198280850476032172861351688174284839399609688184030475938091279510906834673329000587056254391357081271369611380540415686968538162136725432111594999154118885801834472500496475007608029116798191211145580462093901959179197071726842326498510277184108324666716490842695778580412758921119432934447538993054880399348106652345888458609155846351090290328100102856571425216310699986227540749093247180086330414609789596146180922954982076154097024689252961817767587635331196838392107527318798037610780300664947219305501622708590591441950145891121225957430154644373307437141592053249843370578944803501157250249219839571187840033041861671089220916025326903167407476967402835977141568426657091310028424493766724468403150548955822505065336871145927373300567347057503223472230854581697375277757522073115338773494538809407070212701991454818041538447673948650836813542513915435919710659235098623047035842641230424201368052089033793087348760820256347735248270525868628063086173871444362805769729447973869610068597200695277733202240654012560249153526388859561260723493292959529786952573578304312190126577025298591091634232814163162924930579385381312100433740389780314674131194043382779794466422400430968095970057812920789283449369258302635189353766067311814836080883951661410630984414349013488179943826046385484214829798738680426733031322590967213870510771849971657994446030739050338194637910454433658105786400151587518325037751915950950228386247626087215478897966488475783223592135903280091854981587048750757081377480120641180517744357094477348189703422819563585694419434994587550671568822483869297289321140603340194220491922379769007419434725005160677536712128803818657142661221417221756694783359273883286313373985379262394646694649157895299977085875265344724437051541531542138281728733915643435706166469612664865838291164544480205454423905074308740178008253757466320379429232664327856341526336650205622334319767996041447353227365574094659282435207314920589208064116268313117790238966296076757243661952790056234769772950024462627895491200708362903943502752713068626610146621560816802645904154220854093285054036456895838202942510800132097428792105208942486144927153455590126376299970968035784937852552955262747043398163036375702826253256698589763349421357874862650433469954138210447292460416051645783798166523704530854244786721025690338388786408061700833246484388489379532094760975899157640457304938486826540203714432474182059079943762941057560153694232839404027594805321306642286700886807359161768451971990295733478915148117909281161129605892751216319864753355837583832786039940530811967350130629648014131950255887332676879580427287476236207748894240162404610192954787697939157895673759746543848631406983742875939567473023234573085600759098371796937484650497704595970258700650116096085270794434022841148284474242128392553777998343914493099071935733794698642120099992974522304457632570772006185259587807473302664719665252351637393726355557231879355501165223571541568140085252969361198944548406063016256479011757413263762884659598199816285459845401524685403315777442084891951814724294599205907574274962083489370576482395044785313019434158026844298189720207238716747894890111633319875690175793575539288939910633179107734228549606918627973618115210397253263209611175679854303957113263082288505535641267216200201661475429501204278531759238070182261493637842102216834412365831083744081217777108185670855942879571890231712168872379053479045852147637287197039430904937351702559170983113788658270261410992469792780848894952152097801957539268748330936961409691723814378432259187553996561581485168495008380908570569260403555443315494833549034951593893357799236054844462916715416274961707991495772475987402621037774547224522400555103049376327395526057434397425812972862884418383690142876825501307119141881910122598692492079934707955311905794260789613860396148490023558875848853972890850841327775897477939932021851673136566759507112467247718823198763525701917259061597700678869012054815491012286656184058638438329622411866452886956666366358698666703247210393295571727761942153684954350165016950917374780501317704531377823113805096794919303027751871061870828320148498042894041144748944201950296849564494644684367229234266514236800058784790350294978414164624353938892392579359323886893833027670096997729580935340472292381903382092975356478232532767201628871898073451129421008833489376747675866141035295339080472824408992941850703988629394042498571505552720936270034514386506727497847593922655423817439087889573178062182375900593194173948278765489729016512783504908333609716342386074792910567925416720670477418564354854133364972514643743972964297189708661982700190883342266660882506626695916556960812232990108517975038598216390422188100958025308146901495460460777706130950457262062686160436356853111744638474914621879227697368924933825449707895498515817002136625097224927455920046554795825058847019323022624286296148926032674720764035407549497655899471409613031915390373756708654096489593671539905199886743294376792450663694248298671252659165644069533105379152174533086097852180579946524776724840636515081044220472051361675601144894120821003923405172928605175838430946289462375558310828538613633505532557224473104948488541702850695292965642315290867128228858591151111257471483753465394633235451401384476227716995109369969390564540398705662861185097680256135759241296975193537548950420930501827957965053418666123987108425659707801666333879712935467436892425990776389246056675713869224322054037060466614212729911299438514958673533489979287224542370630503360624106062392175766539311308685206418668450608571266534472368263522061179004955098777111667378057516842187524567678277332048166142567590484891730440862570025238857387427182043292117265874518782507990868942846623915717873274509653251057526452899952784465996881854623926326888425208264434427830844459922081181012950717630200448298429060004600268885844266831263605691324122885921932262765035072969951857779055387134099565184521975864499171625327008040066748585975507687185419579686565033217357586836737955419204034863904016979639645191210179469726753896366096331723969914942679563322877350829321861641900521869009864872604523115363315810079532861549742069307930661671558883692402166268208298560765534864772006571705135411736039701839921508157965946273252046287764542826613266638807720903014973638295950385236501408671144816645056053963842816009223930027019159705368096819418484297322111678437132585258980963484083215254190019582137589783074352526053795834999879715430142214779049735856917676812339519817775821356405536622125925254042050270866470380789255131702801540834133364737563159088360697380384626957747592532635304955549138655278147741522291807070607454668648229692847831777599547554320720250313958567994308643556789615556444429762593920364847454327749473430945633516998371101099476889947864304604350629762858158386253502027277799810616676957626474449266426257481566291017736562089320406754773113587766815968793885153479625318498872289644576173296119313797381139488219531012554911330587938926707000081297304920589796147501911374894875865726630650846307365463635771993963619177329704986958137124131304012010028199354926287293027174447276695376606985054662896176330729407945308656371139584921724776451564557868403522083775817783833758630482791717778964897160958527051231550077309906059824897649308888407156959932173903385026984317696771789212059569426207275660332723319795500697137923259875140341320142720954882744556166237283619909097511840356022010366689748259678194675979968137608936923834165363002446307653298145135846756099414294350541620938478906200838949756566973040328081885199111336243944286789771748859950184295384704501850255460883266014692505459556714577248468963107244519015307687074752058857692308278658169526453477345470560337065762371989269122401303065626643324357664023982189119942580507474976424649324660570989568109590679454605468130837059740689386320041823326167526390140548372580186823292940979212630737591362038097872790904053417841032434878565628157783786987752392641243542851421954424563701362460520606858250374024104541430118022910973301375650072155954148773471593624237731753126227083506604029550030632079259013252447068048958002519781456345478734798539870384071432614463583875494138578967615040851821692299045447463625890640372194717943605972595574267923065394448772774554437691406964723365588371904607275345082467233737546771424364245136084356621678929954118419892756706811419533225879123269129961578008388027479639341522057473956002914381275387320221060806593137115680269883843867832182013765067652330511792916616846381016393349174222377500570114551078092207971537421703171480141366661012956987181765842421419476492511988560553436960044501091413553935458599743412368526896004845653994704687313941770368951630672582583556235469463089409755871361962464979869926356341387423120141500598457672331785359050063368627479955921790219621969335146059883478130743042519688267229500044215735234216856704760115643019748461557174090901505369235817979999006400003601241388641445383027149514354444500726144460592412517803559556099938445092220056164415912366428473473042766173004874024552887779238958158796363462303430224110628685197265830763607422324782283583262353740846151335327089305411163333067956250861931427162934756485765190934235574773055662371928467188614901640085629081584831199644487900669856829817407479899133775955830136385827520253175392881722492700446007670039070596500016857323524759292203589706825042882181781967578973118838823663756895955702077001527645856051934788573684158978158609882168918761187480549729943120096530404633726743828711093400335845128907849522565756737198023045954929724235818319318689140859117979732587072577486479910408071471936165542629511060893751823234092292359340599754269648708407458851630221212085624125115956840216123717456460665421436995691386423844000404340978869013027236876965773537695196128462233121222936867965448321173859210027128563928190544583366081597829528547674340738019687571880643243407244609077934713621705669240720448586757765226692791989406235939147653766392492782426134372164663175749334812043351370826946479532594541251912195221157632010045680278288755239863624667520979361402892469107049699725858545715038154086308889347967757866693522700749523476477386952989483136293977436516053039679579683601497376512112984914072181495511564443523500229916602049894940074197872548866360373596424760140762867638091305879764891820298587645360988528717296123808774801564591126571311228849753609785748603236498854890020904247232351792599537527846965949489537354273516662980779752516060117967511193638033738876173307099342289068967979510654425283047814304639998850024683842655892758668803728188356862399042561062346601280235799255886788124097334886820599152733327076808152779724361730275117837222427147319503323295757013473336344957207158298196914081283398640240671667569309293090030228027842388324657175552932612564549806876419390289535367042949740891753156588284373703732201186323263951705318710016786918097628848794301942909961398041502612896212576836299913094345320909444619001333347159493456598859794321996581457384962192040384148194756072643176883904003353517352352531367977706263847526303121506206110250868387767266850207470397883806240876448147451204947092513456021055245650370253771436648858840649097217944957108553913369942254243941291855628078032634163966834182827634944217507912314946981359167253374439486029093340918040201526190306399099205898091039281730470874085721160053661607867893913604658711856257646383679112932394061504686521600061531820753805558408288363379609663908988381893755825547886360455315702714174887828702168284782016572641458824868344692472929743964515124615046625433021568323441641310882047391189381153352739901120016495758157946304709429086733446088993406721561412460181957140347944716864971244840634906350630762408129115072011612109847227893349894331863331710794374553718518896236918437256333388872647868486187303700930575672873728335749828565537145119505990511789963508498720830145987824460076998234867238186401759530640211864914186419608870316275004582380795341628381279642187313617545518502855164571318356157801646430135365643138428505460194211848896932645748193240148500286684026702218676929209826026767593406520812485768478535900216518456687665334358494734766879026633340895079934056691998381997271396003754468579016317898521847170344698948605705553998517281392619786027207473643045778930298062975246078392662509902669635295742873252577451710938513118802830437426757578401237673317973422047498990497899475771987012221658920972078315200780904146752807473930473653809297630972355094045239391360893060791208889659322448312163162096425499378433075462210973252479445557625094223473172905560064228486903011617805129305132881505207987483833643385198203441027339048963120044217203135518301032805842582738695973962225080499993012713044133171358238098188998207763934536613886103934647116683463124249131071750456684070339724564762569486418842237364337957735593523272178555792518396892988094204684540190558475194475462734852034357210734571554925605430971599489915653349207984114300476090209406984610012633669173084031957361924976455931366835903352086084550389194340067102723493131197025444877083325442399638207013502752091338795835985851578171962358601325409360414772473145492845839409639314125326603544197252750373835020932463753275638224668630598096720457249968130023931049231642948965053374959639242461664923478473772473365880863992000892513124406121024001511880772885662509028741636449288822498425793246025696494598384976822263570489115529509501161704288223400656466493300669615024584866787927169640720892280544271109262191441168527327556551921503324276442514883566389146579012707466076367720865179214155085003249436214808374988450964739550056189439158393758316211449675704738790801662216927858255356315163744774772888424074139810068533788007407411581496114651444652696321740862104762480235992021133477214383855540855952106269309964976395316655632405412348513882676952335754238084590131846971960887297238410122686183907796554721788090220806163669333842911964058185238454919894166495914568601933843931648902310875864005703830618526602323429985496786961999052422114402080517377837198519374700765826476224648333397972998465163849886434306743166165682656849567566063301048099456235581208710293127017641086148055054797762117168498796528045713904328297632112852780675244378835679008504737834056565257824104947290439616479333868703721108717140511901098325374147884588572758667896079441810386662719319613812366682167338680413946382319588594644423260971672378682751883604909673714966529577024985711044847822184274649854744525179086693824963585221297615472497744394418254121262244863949633443695805268906024100022022696302948731878495317943052297416977757829212913908657077400296805970856757937217134859623111639899891130523254129721046425275631220034315955291637748250613439074312394938024866254225880115277697562889478112833276605841278230926585590643980378184607625158165683017599368921440391219881030450019377587691325085734228475764140533537230437197595060622978293366266494231222878558104202295883756491057653582692022728809317947719976483687594532782230621136799622492764179483978029316638314474890658859856235230175310120310361438616506219811454140681235706344188557134142558485525742953407450687776208584827257733388861154367191358660352012063270682865731837977830410374219261176501310426396535200213274682720834524429050694291111604583751858426982577105724709099464682326301606005716236497049106483756226842252177282664624060457499552522532553097584371339550883440634087610063393678194664988874962542242886258074127748359277142591430052363130610117379576466885560933771086425373977187569595229383752928079214927200399815148594044376136921254698233166193663805133419930253631010615952274480484068443804585163667461770744550239889235398124446943521255697427575320436393203458552219359606422754695776675437989044783305686222909572298640775789862642210527797517750588310304513460565792282424623104665952010148321439669492066631286906656603001770355161446252417414363767037437086459691798112788045509693529082341612748684453659985860223816504603940588815532877489049588849223972644644289468776434527124381452108035994383646044152562231928601841547988188137392615754143273326729773448863924424176418846507410034047303177114594296334983200893956837467059529594759626725823965318228753609512316123162866686002748751012308220260851481932219714020718736472680583841323463256465817996403499789143604442682834515289920116282026801915764122378903916868091811175673064956062953058004071392263980968825886246597993490221978212077279040081439941291047358857108300555074520443012273323311267632947490450065358617601633818344580480719608870634803687522895905725130967347590135186472451475545710895660492656895136450428019752817676141956182748465903433388686855602107559318124525217943716809591034936058908959782738847208093450747584413812348020808412527928427363194457935867052888377884532687408959101138644697143439874494225544864029824571750001328031021164168610070867057163139973095503322855019599130886764605107754298365065256876556460634498343610638460076204954549802133797900007260683362428938314321514603492930778043237081554366778262814184288811189623411921284812053481315166816299795331916123197736752195244566490812322032456092356496070260150886445695250326235906662456131460785531947815145586003190865884596166333197496368230432791762504817918643587947983392301380735720886854033941017731900952511290161080370920983699731980595227860963548864512417240156810415570895307252838274734104020303494859174148209344629879292592783976332479268204500401615985830502846329779413995122024257466735240817818952786622038961341031084756549943820464971572555443262073391483964978347485761026927689352000926850679699504117565067335427491688496232673480427286176924315479702209916738948009409112584242589938964776917416676330827863001636788293356174249348190256368127289660765591331779392264474216116272411723579639211521505109364062998881564506988282469387697101587812919950042030997330367283966204242426922737572440834384625954658727928794220934492290861698998992632094702578700613363109912430446848242487868061341192819860151807072709544739665866393149560066418395366981042967942829114107839772329692368114080992678469566717946786438343362274996843617716562109717983086252099642550711602308031215548126658438972479992073378734256276060445437472694093381907634687474687660868994367558388784134262220346482957206129131686096760461948631371968358341034750918241386890226559765087651125914587622225409663704233071265429107129069828445080987702087767953293830012427386842785454792513503197666743525299907895578054437424735217700709148079574486275434049781644253268038440557259321561412453381496761562411729336999739536113432293204944445454968557365716798265232526045716079046120295430185012046350988392743138039027583364144381674783218396600587036464838999195518267959192582742191464011315797498038681589770365835376967514883629733177351081437046412608545100643072101309680255767060236329637542489233231056486128498908791953837417142886449434065045626904523541812759936413605202038232634266336357810773932387825903510672132747438064999520682726622833690610484701321198584940204112562617380947966429994556765908042631535073366708799089516373409858304941790055716768715096092888877135852237666564780854134511177367047160442224631658150712666936633545692318623610559007795515523577672041553544279653998786886485036403954037684631436026487483554979030078198830693684426671587433084473486582822077263586710019281107686035752237727228989440203021711913985415856360452793785929421654154323457260141916553057239903550235741001588576749482125827101596047743838352638333501099957443532497719673080621747183900443783284324725999863743588152004090544687334229140069446535756857684327793443234557663234014424295285155993092503287585773131989281750193153979856302899659967589700888041470192001883994009929322995938977284149665867414699851168823316821237151701415815530644889574312652593604827416358585896663831404947448988677723937286898974883930119098732001601688526338941595484865665362706944979229391566328533807449293856541830155518866685918613068048251016539863018733565479420672319335280340532670992185247044395101436501376234904066985807437391647453990647941485142148832561740411014316443712550770706153040875011280402140532052873810906609578958964703150972594259877826284338904418393501996145074605339137835931351927769554979514419620780498041896643293200121569120599053200938908319961027468054236437389743863974061521734222574000972977333853041399984366442564882262895291316463357601915302358984797847057881023439004876475167953100433223217474343462672668710706366319657969561883886568485709559671568808269020367834385167987347694549045522550686381744427405305030912387935185696658480867932686158989823610153185581508354127843626210399870358746531193872459744334168450119197811554482429865557185942565527307093586953630847733094132430148724650067419680523597534798723914074575757372063384813075450820628591862808223691802346177392928538130808476580322501928129548496729266442069015325096621836764829074375448602641632378926333699533186617544074928829719585743975469594824460101183802846859756754603386280655959735793715272164126479726982631742740407864771127533999604324458347252131681535662169883106281883057863865230729608392368402338396999475690157127549659658275218485942273364447982839078016666843495938707625469434201944157856013956745027359071613959359889572065944071046979734669226385126154739827854948886638012953586228036271614512150400138713974519537798944837934972858736065057349588974614349233092888758143563960584933733907158886397023038796018790952760743062165010521400526900200956672484198649501536882590519935862266972721219325247354110393656663804435070298883071261696428351169305998486726381871503949767777779977663792211169632342871153502216399348904689396520196813282272410687694187962342401080413335507312741533388176919395758465148648189694414796403270883156344059472437661935092401133546724784253815097755535926296315014083409329306745850709104184256949298902111359904918194348406559912992498044040571076084428996018998615173982886573195389984885318250335253147164847115962673385586431834577972862107433812812086299864265365672066470210202957827328078680200287238038989525681544410283760307903722957606542706943918627955271945925222968714001101081635898456305194465127666111564627179134621003760642652179946129607539919132266862357526930105317547698143597104773816549324076586240947899087486460627357425715246652064880335708497177725542318923818483012477612842379454960866356959344606743244112511375872524093141985342257788306963505814651743445835146925362752972934331522073289443445835281527332536401415594224838100760916416782351600665735046591333487194552308537787465819440643284351818098326254210232793925377994820486677180010607535413408496412568694331043695759150707228276200518053158465643937878558385719096464856740218531995369366023330913241682791071217039558673639929905875280703097867597957842176378378028624953192165812784257578766880889491506746679807714981501748096363129526302996584053869564270038728628427990473225424956350792207095635409003786320201216675487139312946919797038000153586779506097013909355931651190614187464178411320755712852070078740173930682696865080278424065541622036434089398883390861331714829325310104863173857360434277972804632653462543959560661001815654379773022667600849333441692019977131353372284652403242494349984718156080504921085562190847510692418876897834588356117679988921604911642429305763008721843662118726054657348927498322060803374022435534106179721517107122893563765299041271049593604267587042355758313755608326503884809721173702323001828403561313085669589727693401475416198285432715983934781572242185888172760781184530766177303534394958933197072089310049660201167958596346392381748245073001152466302340678775080266658569773648809542287815860405032826934340397285428985616773788672921803968680515171027091875101470280602134095798099000802499545308684408562763665251253534091606482471887861901182895047753466542404588396099571577375736962237065947959017030889579912013252126866751290369318808959668773384832959865322075592752790494701865582793239047055891249320113323905971208764909777647638296946620942303165936531129163231742215046425621692344466926405070565706854690601744244712676560851374103882010590445573739980725268132024810612484097441856536266600594560603244393281550301910024570953624664424819317835239934714304373965346211284673150606274492603065142720015583999055701263817809104215852044340308682268778059279922713682855131195566523467945508670930405649515545354440444644558086747997374312638275675625208592350793177415241660051062417835679733582077389611136936697935552550651798457362484664434794600357478727616783571009979088127890199796462764616039581284754279814646932945438520003938495944006023928485460489216698559799557370665193525995171262439586247678506789146996767251181685329085182566574286522181464401752457235246763331720716893576189747911196351321282407052089060922186461108729605825244321829224344624007038983689200816259177650666185450748553385265072096236431522501336274233274461976476356486435348632270712385310632100349718835960158302832695433219675808275518948194590704718317738791663221031104759759943743527495716288510011264592004519038975442286189872922836662517834938422152862179408837721978149724727028803717206729732493226624863810463044431553577365050176384090035619123104680056601705095258858344262393933611777515104026444310138029616411648727934230273841943434180124187025645122697092625466100762942544701057827038830419003995616222649807193232454559755076956277640158096235600050211784531282930008744095724136533749469662714965822691665321687415386412561722116134768589344978039974721755281200586723027149411067669912342305429853370886293770340116876267004157463887125594963620652066588270660781306550226351032059756452883145785113193409935152267521116293128502205870170411238324206428243076944098426623691845048595520789376318133923680987476763431339104541288666838841687221441584574508000786926594922974311488447099464112043896397555119233528749589701243423395161137389267746992665316512654271168217929073486211466043614935111002452894676348709303004278892558349611051257512452947490185017264233201287931898681105138004966212271136165638972957458925295314064487609650494123159960911211714219690669735246450753188489440162787856098748200810223533068145609704821029206615761515739676254428978101558909783813219161032856846372593659205875929355970475206278372013659625531502192451084331330525795951862128342133166218102267584485389235906954131356388664686320611706208922029559096289592229989332952481208523934917147234207662265106544959074279741160776694039739014309773642812871842813726929271963237408332758679012508562974230595721401031603888599543305584798085401531147246184600697929057440287475669750480499989625575305759054167504403743052655314699963649842174133440514421158580402581175325699497826190614153801278457345428979241036636912180836854473118293246512791578165401271096395161072471662773176741027544940023692042006689199082253300131342470136333321240263855750621684610743753958107125276636707717152046616225169963598794170525442313624185361133009472318340810008824700923023114542751989126409921492444287311556399768950835509857750208945843123811475820105370853051081250677546360643060636451206603352632529380091926143775689489976160714663546683553362016613668495630708687963297458451688374888277634306686095178464508149441836183443907280348571052134650209995112748303612149755980969529944985485985524312930817118728906998255664991414642783926803398936152663588412461199165001246850928710837389906070548507755828528544869197740595726317030403133800270325478235681434157995128436077785682246512142830305808980183008148163079467579998368608695755539497709829407021701260581302711131003322385499284547868110182160413128621494376044536402164070110555904948594051991321145555102232855031258397850470735974529678088971619618757413695510809370476942297686907296769785849935591810177333959773823494765426906572071887261648829153910753629322801080429733918445826074704545777976163058031603611442314215167509110102260579384112509017253583921635322290955278002546125891532247189520580265558159416386180521117799356887615207971394379680707702411872513794020778073712444096113907933398631158125544990956249888110234845562416540649003278524116891849857358420425896346263702849416180372095475247808580768072730213934965347708364387659779171167350558360724295854640549854744811357862874510189975006109595394256795835030145467733754853865528513180797036398668073419498433590796585505753699454815941288694024724610603913902566828036743960533549430733895124051160086884857864746980268341400314162791680849752282250328574507862951712775149050079324881227170768492014423647154956109919073684954352749839527087096808368973999270592941063727924612036782709413286918136496209251209658926495742387426118880414363361852187531986836471777249709231875235485416980958663969293620360623023557223876634833333332660928503139087456486649850067834884098361536063826936821927662934569855355514837054215115057348512451039216352162388320197155662481986497181206958750479987605093505097015843745645440203766786181857611239072372049928814396172937262329016541714863885094123477893542513272052983545118988536957509113825482168163652501219567172084201678142230371924337921237866819328354652980689062214214798896334322533908487692870866201843375458648080291439326422480648027201836263726814947838207264219427242601128011849706046270660472027969544553297405217960636991724989633096753449879784826638692501948718762802806906748704654559975475803195272430545189295054331057598253893834857092312396094038009400956626864095235194919515255471682865511892089701310015696208517965283439076711485429638911516584337249128719197580945075235061008969056165672102876252457825928328948300730235535625584429841776074023415295348562053766939198384983182649656319411661471208882101807670623640952937620988792309561601672316254780472543236746363717839450672701385822219605665437724037475524210580293841887702636957942936147581474336992381418261233150687858744221677265080004231827653052366811813418276813008342416399368086674619199152115940909576366237267374668723007725684908538497923888102782139275140259197012684852196327444000550249962311661442539777524935541515488860505187439115909888927243221510838377784267722297469727413645154751033177815238940461213854079236211557631702176177047190110299747563704206704562309028450807992713750707356521796355319131900102193954325934224222304791785551632362575634761244252540731541543926602486192146384445369660493175491187469908692265652930685867391809213886251055474909986866602971984602341269129026439159310873915708985684302530974527150651234133680707235896862706082278679707102709924187074707133935328038680583243541209472887225996983400276113129489182527233571913723147906887322144592433341639783157431649434419181511975722504558506629885755037775858889854215921332655708313113406657171264371862807835408525885371008097555383616636994647108656050296518491472513847863154672825654138125822963761695328934535301093959795392588923155116831147563149604145541034228347928383089082459952218322757188775916535033996141408511627228239205227933803423696978109669822311901130960566921152365876480661258799303327162078283835712765221222004663918551786316150672004039540177290330028538509799756989413275201790836330425812246223242549153111346754129349955857791502109425289356039636617741862014983474970875820395437530030131861604516026158318509800469898858278218878425576068544141724093285028665898508344746758100001883277870884281965872932558013748449376797820557693595400261942937271394677935688805041235082868727239194107016269218511005359617553857567879196012901960790489979827006895051439606512508693673671542149668675009873312568444770558419797352971306898070679531208312249137308383010395226856718047143326525180472502452828567253682529781787247818980096313518551407378856889289538513457517379723394902211606726371603133077061400404744249083033980663055389473402036597057174152960172975050292021224227208548715472247779875882571894818852621085927012798531639488202043897467707661707646418896047775063656911058046460717198909744206875370049431553033723142412570625241051218176720367208210367716476460439862032162141072263112666916692140256451291821255116269922541971202535086827384303186867299759923958552485044168954847027995311953652811166881737426782287885839985856805574215320939648547088785839152526837459174249484462833959179955995339381397440705064988343987661730844192935997396503953624266400902769527516074179669124634876461046086200087271312351073653488841858719951532844355747329721041400398946707181389314653342441851794611123920201211750330992246349061271600541997329527894003247264614774269465378672016805381341704670740807100898110598450419581162260287163397649527818200933871598765374389303005585502672816181279270913745776636669657004630245246048819785272114142137935983621058605024940540174721498021339648921219767011127738779886128030731325056491242740068493245812265911821357383342517808011732642543263112285321963152260402646963441437093455495916374192300547268601431107983977668951835335845876135754253745414138788838867023225190308002543059653927425106908186259162038142718326645716413393714972069385255623318310809268821971317793944584077950528838923663082261129991411879226340902282273547791305002331653940096754240682707681278164122632759972074701636326112271842608617392447087474951002317147018353281782492737047040583409330186952094376370886809263046737871670666379327274988207938235535970024976281404931602532161925824850048519420356100315856599203065479551234493640624803494811014987146118697633004415712208997916669017175325165139376291982768577104272011986141766104021814373068101445696313988081666230378624721342753491093031090719638126380798686970618298026562028580882576802268180032515664867770867210114299265246808357420334411257149283385945160773579150693638645088874896432693466612142643095501647329442634350172883549579765202192489623203536492016738140236249626341836119897757916937149808331835537006730010970728557984032857608631470708903072014662841272671982008472968794362424990382570153890151726320460968494520196874141180841348051045546345302873213278440680682154253491521633662455855079580601350035579969079795005633528292567019207121409349346350152356152733532695846783556603743089325119748131812120444294397904791178419484744692680055767607902446013270086758452806610500093957125858885138858343737927132612242886134667755273413484088637397307714692804744938726146214737979060009932457938102489316940616838394230786896598849611097100948474591181448286822898095857239031426117027953539642873043855765565243480512267943213026052730444199141045720451699051690490721561645958707625756215061976825023397898780965812907384047018659634054696911094687771769164597596971938042381899523189449617096953529345009632616809262902390601976471888541865227054542624206179049879328024851856561810262849717439855574556385922828261828015111063354152544764558109115815924841164766028374664171294321925447431115492152295941196889998680430064306152469379053475929096629116191103836543372073210941642549133173363045111282847107582997538575891788445368271982490447743309276854792046479623635382476640209634726050547004183868053188145265148033025120348686321922103956625487988798818888378185219235941533203262068021449772247916203260405411034214808803507262990303925567526874205749846544477111406289347178955945277963152450403944464605442188669439798529201501663552034279961540825300360638045326195358910180364835347317576424490476311344814853406809845480420011669395671174367961175059193793167626162400062172338016595291345566448696806018827448497362438461397291207719078330555786629997612755887935126764866414124408645529848474354372201601571772853371784821901677171755346899888328198515507269439220804622516511421938761097977600916720473530200149274266970343920141294779062369274229003565310113229554470891682618896876869484277587533307669670344534062187441563118998981338701412861118392245215352531916868111633018589992915829141682479868636030334591805095776123290290054719970119605224884754091621703354100300694148968223725032450795050096767891505096080514298384716154191548899472755658526759668242081801022262947733580667733136171965553790070253270085701414811429056782504230895603703527267839547563718921362477680358312185194551613495580485554717384168487659767127249505559749786202899118359464513546034526698580801114628735337347950000455617613263040597559438092405455800050999191355699831891659558927289578890560392566079546033763788618768262762383863331224900689752719591150828625783987771479745230557708073653257880536405752743508949182376136952131192771940170021394702346116340577874953286752819038524547824214060581746677006605431388594930707024997983858972841603982371703657969333437568851423451803796933455563205754358681319383143513999182033628615409660797608907301343792660741007478141614331807651287652295047780068789875824086788165524154689054705069348926310149514169018438222153749955612093185317561828068429150126488479981579580546513884219602927329042943240158080074236063092440003335150120279792511455625539825777675486311784245454322894241004273980488355085086452513652713737768827430989291173492162484333860545998462628261933410475809316824474642297235177369048306278216855687923388288995856769393727155741943593635241739367735440319895484524987600208662426219179574167299350517787376990466552887658480234468149312367183759495073730380210159809601645140951770921314606691441220343126684919574950043948640124243500094351272696359804586118062446440880607180679818871592724770721440610696065079193476500619138330535542437693397330590035378504706171175493151445244941258895220352453479394872274926914377931005096996821561676496381255304520717891311816643628584973065251854003972911311003408176491166557562985553974196503570577373123340250277552762915379364552965717423471287357661783663151126185131628991827542173091119570643236715903542071381443009778342749827192643000992469462563922209439797602921753853118970642480130573770822527989537962948205883154384805043774062749036399743060261471943727671838125342892150338745243766009563010222138010793306893139452751285975723726037439500867437607335260053658205619209555869531424077430499150702272829534522423752506452920376517834781868317276695526876906443590649149730820749658219293392196204729629765312438635934765852717166462583532086516845127094812084654900820242513433199685427332990730353462780054198647410155736831918894396685090801440080082750806724554259584407034590051418080874283825181970485008626150742657540599858086689699073338114928799640393593807318089242847892652221568202601139603919979121026243137257927136702548183096267006172239219075810684016035466140541845609712916552860163000243087681862458991946979700747929348732831375979336522991456844955343153267824559410131390441596552809645637256977441338265052200422561126194058930125480513062972237385464365599807274177012480763718803467099381997754479074337658484241099408975753774450076029403852105393854440324606095737585938899163600502854776059740326517472590917302658212613022518866504245272433069626068166431251499621318936383450901133402770266721320129561046033870032796838714651289937927382090674512939573269754564635132968104527008076865111492884274985581379802604571842460021542188088326663739927548926073832707230297179007669328237215443230414423598516128254877430025024469309973644166817996015740930619693523330496136811041072281318048698080866524573981832257129349370169988734989145762495035326352849715204482298174384866055489512929279280568275282192272400315115452749959882258733854495387117716710126820740871862566191160261293342415528725603597388882027928243118428555518266747778977787514432053043396721932864475567336977082236390225525118053260259558653223222924505847702152614997382169387691373654506828485091166373603698031972213791720489285473669906140492564029085044374755620144362101447169357416100155338737626773607489900899389604138473154464757188295794214191904119661911447771695481449551633304097810704850438530153187594954250389539836102107680882344447303633965182099806685942361228729362714553229247674631067654404288597576263067711750606080486584239875994905730571998668673912444930879612695396768532693688343184362713177857982596844189410062851587429498621022862034537833652826694129696031078955095311790745115548878555244023183955982743846881296342189853486306622972536160948985788885111414119552839435339220664694708163144477041607318736430033178482405476139021192752209187605665418232630743393056308426849930160208457223738769105673499129807108707854345115279767845103957572471391280789694473685235359454928664243017909036851598663414679809379611597147566649675387195708975324769613619471745395566400981103021198678693341325159366357736536867669391805397964321991449469936416925815942070753342530846035744914536697984374229742362082429040573103054596953093313214542247048110514906517726155249639999030182374707151736759820007160004319238806372314316193012495714880442664652585941337758148939309172230960126180347413973555300805595201807067521891559744362852166128197993379170492851911873063248945571133544779863533927556477070483746307465648111025338617469423118925307098496608927640356413082990259238157324066317257133962101232824461177286138994895653856747736149182392365364383128264194828564476393530097584912152764592786912614237961334004689256504483340986323189557131251948164997155359071460335232128478752106039211849682820246427625554421942995524871124446045392794818379620329323893152132915489555183892678273394534480328195301805173294088608882685201788800349099128970157753176045494589450786307662707721863342426007158963038703718771851856289891245425017869753629313325872319731736533790698624859817719603395559193004945179492251731188143202574220248068772402729232625892235409660037727932494654720586821195786050943030588270561900151947892833978781096383479673950043092703929211419135201555151329771192496007741794909290932280243624473289535826238000136424969189455485435539604986350630261313824414929699764470970887955543663019188100528158597964539183992936697432866888385756848477581735431094902774139515500782423915354423519454110119628326907167349951359361678109976839039002854343426394172370796302623377867718027951356360227398080107509029100578772203111045654272409040537045422782625234564532708330509990632295796650770097785411083527670097309731094844747248940873694996367242790044435914658922561403175255571421979257998511805718543536391652315069000498032896730913005398983607180566016698316685880524696802619130110021117647459940610691819770161844001205670594694682952297216515361951672126855498622175809269161756415638732082272881549946244213553066993062215462779775968674990068763467941081361439978772640118558012237600942084977162005197365190684075590525092861597604830753099488151685456948912051829743250542537867075476375980232390463156717133753665113612853878751946085190605055063066327953618311426196477317697408559837193786415800134556011649332983898172152702043138939912383230123062950775707746962136596839798917699302762082488362999437459830214551088834684994664003269113656161986502296040294249629673301599050679551063945295259914831653646581848421845651369652684286804702955740353437697467603549659698557558305204878105367262023401605855698052412397406814259457517776446858235944840795226756066015417571839665754773962905638986884075448242572800827352723860511928241091191127337894293704986437152686308990667097224528325858505029600833005480072102755421956010839525959506551214656248636566201271222105023920259867885236903392142402373074430830927731339376703435689374386706942473756826114682824718870645415192570892733735406336063356416139043015824060413327135854948204600027211866667035069049123350775102253797562470396904960142262071873440302988571950088815615702082749668243197449875145627335335576297787377017974811048262340092867305916572942180627329028359620461393117735765378624274008977015865173318490947226094021532801643477490872091310279746211549880194595901090980013089140997429304185244810961550976572391976963385183498918805227219039688317357018187488669918266574292011702752888209667921125782374839267826583051872499296603595783665572476398106809234057406701697076761540599689416735071335462330282522273222546942956569570642636212978524391584035822347409714596102027856165408924436816972671648071840968295320936221200894721430348160335258109538576351400357511195602458452325725612498857467517563358196432923298871848658970297309261917686363655552664503465753444267030333359932349401213740343789609528310801498847147007043524445419039518272133911452489949544911113977403490538245859423414262909631776921079958364707226839719633186591089680263461494120019863133094034901066544392028837027007030670727908184903131624562389451459492249617518594711344797615629808700723892751179437276988600793235672587416532801276478909796011900396997395092531648418771358122367365852206901992075366956731726243819895579099659263685755758285683695128934993802167352218982840779427359591331112820581967319595933620419987510207688345112498547779939285991156475082978661726495131989921632073372193926570554459143852633342981939214580886844551382165467579976733459487817303178520504661792273330130557859293967597697026624587744393162984492064594592439547205394924705820829874165652494086471057071892290528141901425322991192832854364959615908287819972476104287349302659248332284535020106343604233981409129890858806548296051435108416779806398054106737635148818636381022970056135972992873550239974014901525197456247383843815792997321941812763432293498455832845392926619587696615588450893340926164040591191178427719321883245917402445537024702669050538709214710999958425894050374944870645980906453071807895866092625554090482496550921219401449895561044413150635940127710856641250972538359001573885935164360816344024994340352239707783160595814058596948903759183777708878023947928088884043316223356658531846369751723622069859803288285343883101613056781234183642807172122406774384254125590720831335540133522513484495962235487264350122496669124992619937927639660921099042670379651557790306864329718743483495636970706006456012880473538938852134137959433866033952405141518322662324641257001551382714796723643977347324363445230195325348252831111914275790173239015190027274831052083565058465827451729155758044085042804537584258532659109163221179315828131940507387490435640845946378582890987344346374955995306208376691503053381912569378206763636202557800910469681151652610152108479067407542322291935964497854556687806839244942358092434618356248345004209842285947773508064235216577079690069939765259526040272721715160898550874917375942513732301211257560712973724101317962833624215899528963444032291887442256306441709655513058315043064003285855159213409455804709183460677904502228851124595868898713182634451014307867116349492020111561862138772313096031398231427595900663302491419440841390817599292870905732496538506470229885577180207193450979880666997611483836168676865135188081436597591865810332514541359134340143274818897425870495687525130170894475302367779940637149580970481323261717887139396072158268628394071390045639840716329393471205155065871645398824340200396383238276620957032446457190947942752732247824981521587674530585634596702166349337285399988109444130640075852515476010441370095984767189359197115466660259867282191313698722924425004490175988944629499931896098451188579835631795512337612539437764144929155303345575173422145029025701575357835131597997001196133518619749492959005083457753914572659136599850250819370525133745663366641062744154654941902263325153452173581345282550534618176289885147240337657965465420823263286936337843390553625641397040195107386845207202690847825468905515195812438406777966054426001024494013536266647076292544987978684062726955510810052135360605630222462325812167115244193834399243528669311841873416379645514447384417425647447555193714030502510754952032647844529507975670276309642811176412726206483696522555847392928036027095778258991712518661097973443154041179601321461895824131451924543672857267423036325109307502749025046475955965020319042200587886201970559383232893904399157942104236635453059715732119254215770812573620863804153208317902921533837964439592446944770948353971803114751257113058837412873598000626732906669752553872011043511048620426190358708582250794440976366752923994257722387852717100323423859164241612963692300005015402676021577117879171258959765704822790832720814280728527087412166715809435543779542909904557366328534593617676362638572358314578536344060747113119302537160170151129743012346156520870705487985038682356215785224509704467698146428178330406152966434650997247414775795389458527174284449772325211646954096145628386559258625170012347995544606909566273583640740387754699525658830642770588498949030912357541389332109625388717017635781496168023571441366403281300769705238015613249463038243002970031812864607635767576800605018889940010803291278466196289586677311689389278492920588373346976274654477032240734616394633136851350096168414096155905966611874051626780197722008333249498271819396239789081654376630584629304448666551960778040844542404006834401365300394583923506004105145858825440840694403523752761579396128589006551533437698572477306293516511512540933150306200959804224213533794357598769521479270259316160905027384582524407341035139653916856596826257175119181458856468933021065252095829030882569786747004539725931216803205886064749413024425914089048561862300197047614227795290329034837173478848458967952252319828877163283202435164058630976514814434518479717113060829093610331490706994483907533645927346953121350227127653606944156658425586321042614790514719451100199639212550018825816666431409296991642533002506738797740008593869613898093237283287548819391549619009893365242216545944346860011756793848271008152152429073620449465925254950493026258151078569768787935197613524930711556739806248406900470940593893578008582748574139944159762642427078435488156743593887672560431863404386052082798096106575777688811296106947888784980377181882851394971425446017367607418384559644042059212792733191871829430665374466847098223060031639812503816704332664074615071763112884483467703515030626608329251274502900076582354890030716456372339685462419296956989505921469091350531108530799734847413394678166908544235498874917976666321575254345596488065567865952573623468583715834994967844402151040213105159329202414475888133437395239226743861474058268222321591226721395835345575801860922560192087138056504476453303573965019241944241306527472921169212991291030621913872974115380261589607196768720801163410838244065021643552198041060529311346575467058635227362032292890622425340236323074976550455701265151008586988778049200071380701846814246442691448346893668290589153429254550388456993341819246338302624683231256904270039468949284293967979394626010441865075572163742317600134630219877393562282371159223604948242164674483182897823174188440094506401083975411764598538211218926562517438723487428186291362337936804468851618672855166282280595183942172977196991846940850190802671720689195000769484550857260053980240966565417959238098200416423635983003925895393880832650008696201947006214192273170022072525154666737020658936144412906185521865992587679097374968577202145514987256535520081624811017054586804971808063709192734265088708972611647288706376828970745858998599692889340183573571076240306270972000152354658761543240225736577576859416782714142182072533488628759591693947074293149152480953664687370558316816718818306344299989187901052057380135204621260485241218945040443307221804195917990800868122317488393343513258489892873046462642969930520749401206266322377130733898343616218486972006538040634925874215627671957969470608807850299820345946039620064473049671585233212393186941527603404633097412934882112321725270706269543358244398632961657640084708507884046097076244564428646377010616870299508456058347039595243649675394260404017251988983268717830610733076218514087962332401804133269405259865072554456936735224479890933170178653632513856381411866189145416739327892655722498155072331548108282036723522901056974266587465498162318944038840394061094255975236300586323048055646332784920782243185598723266253012256803554932204209092529347942402275223221941070316801014356162772048867638322244301866793251710975896862984724518616217944495259871910634563631974814774693517490506445242984278723659086997367131160722401539873907826285864229708055035786599487273041305888741680924197374047267876448183189022112723594395700662571003288136592391545240670096919301966493767680064208924076336357022461135431496898842060258762887647250585493578686577730043935638901936277640119301567231982257487642409964286272849765070348542226023427014654790302432856686406466258867683871377528175841935044626451772408628817574378977836704669683834909246046899795896303706788303293405318870611623723809116502854671959431799055273765567031979119495873900939603916716919318289064921866767345399951359522180715282586370664301534292860351585983401011134002185243506133885713974065219753545383786123787935204892885184467641679656083498554006005840189212045475522524907986138515770150047226045503000239539950450951967852544006181591300589116079703961929927915698205714302797535827813915978331002462121215334680312675871072588528233903201676322824395907607036418654803138946813342036023862459990097012140192274037582380286416080988617764351353565995897340480072534408032901591740557392655587492081258587839090405786536981803930599414158427226040900918399162291297429714377960360135208601982562640516296622039412963467362476919477152117670177475818059043353215373177584459888098640432373281815761369091166886417982736875785827944460689581294762895930704775329446751877390107032689579210887147913561132276629050541156025654474838850956968559209471941140004929655030355455815027483646518243135393063646630875644968397140824628025240723413981230663216894152501119421009836203846806801648004236967579717170586612503900421556187041238701098865256344907069886341004734143944270872324653648291945425469686336505894880904878541023292647776942493277259616030031480367362135043191068578582393262646072602484466699827937312401362745253222794834734694392660448611339171766321798975952534741484022229736679048991334786824356247960368545227329401222033830268507280402937285193370116493400791691565582162785332511263957495497252862306942424884258562868637427407285415992517146355074057259636301575748920380479193303266771322638407134242642174111919271946846438480547385588934490251393602818729333984953683082903813304570816336618177108072677012612812128612584486197739966947579312397467415532030628667131686286718810095548818159121838565927796808806686305021259616162164351483444990921977675527475481424929891565720029138721566586237930408276051513020228321688103935386449164876122556595389269182578956386479706013866678515078801061076819054029691717637120645028030626398288775337513192906041465867428362875187814618211168731156136085340975211142655696193730392211867052377543349556178456065695047836086410430174716422668994068841077644537565790470006827041796454987628888922875523809828101497144232686899145020609717860410406561961801930444698516751703262760522200641490909976770727504552961770998481908810010917018296868375688038855878046939637219283159851484785271503036456025310665246330860183091156472800914597351617783727798993041572556723730348521723216548125892802485059745647113371649337572847471501120989258048200916857431070825079715823985466286302696936182801586272252487904582546066635300866624674965961115579264821697568973387124828456242537040064286920115646374589625432066851714111417208210244456420623424280190253849819084060309746346148026000494140345218125861091688875300528734007352627705342646891397077399060904236238743994422282232176946541673397204308405201903737933898405889987512109337227368145229462125582281533688972012767459424360477695163926692677387011142874032607330757391210471684473051831939663397581657690532453292811937926862767826027881809788219957802805421232324113844844013420137727799822609752342284080483687818175730182494907940918061769963079645883160318478150933709012264222338788115209377602577237368488597046437764642005647364586497258243855878833460605310331307404889263841459891786602116355882181608933587314040761013958143245199033119293475603292941563963270340758416367093457671587835592680346646912182043138948327347647923869410869019237612387023276151049193276360844204740471645839748407497807707319235615584118423445875997177923629227724689565266834036472450246517051309854788270119532126583763311121576324836451502259639812932750128536362321088669821577981355694478610572767361320742097729122746467686246269891348783668232782318477121018809390857087564643471551895258261102812649805303354665643333282536345266778367901718456974194564176610325214681490035010521026793420597079981354237209714982744009174063490434591199681524303598192771791202317445602623918614514651173608383001201162893763466277807837012846399079009837187569834178816828636859842710409976767465590044839506582011545461512620690982791053667102762055173047017810076195171332460197691892674566606431953498196506021028872377362493826356183876598954630197733246385774048524834597551021828562789300044142835399170576349129150469491250566397730896174418737404325638005856763383599138558476898448386749648515601270100454988488294204439272983669610343593659078509381267857265922470692848347019751018090722495223927990737298786123858426495101195731815365091386792664392000241628921276378885410399191783740522558352461326007632716426539965133232174850028017492503340994328507032094743646096578432114127004830065062956181522329952130042505079479501233979512117256996948481733062672079131765258432634890803459735045502354047458603102358550740288294271072861295069294058676136836079988422998075483953804810096735513346060473445290144232432642014342115836466758100843304535865569635273424261884911286775333368641057987811102337993625378265384925285295566025042020689260946669849873068774586199699993330100738748636806054297631764503171979332354960132688514406696970467454939487809155434231847357328362304701061207623694844522020435089308337417792610517604510809012653554842783094688139604400962669874442017852853667600784191817849020993143742995081382691019762521544900942494795557927066509719946331135756343349238434380308451858036885205952495530335226999345802469578922064323334704111897744044349470342042023916249595125934223709030200620975143967696628149411184482169269958892689285198314365416905936695225505797899188622833903383168654173284878653443935553173857190630499482764616982709315246985571677556485014722368315070758227568325959509125624265760041428700509960365260787444721688658536200091567004262048098046138953711528653947302623260578745592502963603333706214989992152517245966664664498122286314810161862015174232847753617775829326058593602806809043600975858518483403388508669280180877239882521982841336668928118693883867908300613299877488024420832956615818994589182674963728738122545706176458417827227086411382038761419286785226767905112604069813665973162494542933678918821087041291600504792870728558003402627532080349787913270506116519867216120951109028392512950853905703237208757195172212935247868485900995653784850482110681098516964313224674527529111090767334682906946772189762605152291928080636624625613909026539240994655239660758012806267454211026354904969245878590468620392254728702909689916533117179584167214313937105960023181977577434813161103819637457596277442702925321429372716614989169923335984179040386694944673279469583653740051978801008073650314242261908601068782023298598537650531891154155784735267901302079184046494530616713473008977618166340154435493031106843233255408754279553788229702220687038069341590990518468269942885617999247632554296157247978799619787443859341723198551982896112400150245752801018875155407664529675398079464079771157004952737900126873130631904128856147379940536237376137912185180977369552111027031658761750680624272028516380730875576915937943311590316230448720876967955811664118739710387292146800306013000446284875588389043519486299346145913557506526099428160790605663108440821232163119663799171829781357668967439979285032117173576462804887634579350798379988234322499123873089232520532043423538977629348872202327259903217677266546218357676987736996709920438442891156727487538173224681390121117292280546685072911238129762441090574124948396825830992536792652318998851918203164015976911476398676767361992614959038956555180538417871129804824474750358022239016500231665907968686156228562754946287266290103680395912854906208594688614485916019528886696001615238111570088461143960394863420466291216309278166593136781702121760832223157053564554984952637411426664772441246240677443971381642902897524232129870470839378031468125823896825707429966808091900929895939824462968713776522551300236572830844360391933042882464515553443535753440598161869234068140711649100199494723441727617556750416709938792959016987994884505792570332076939468068740067999543694356058939652581779703402387086997730960777013024401995776797411110093942027940652617026375528211016223792942004240072140904911677069868678584876487610717852498252612313227719056786027558394489460269781667606674171793895973646906668364665067257574140190289444959033400524386882868735762592689255136008965653956299200345652527891324641776592869399331963667384916292149447535118632100370495063754872944026054157502137128759470351803696544814022459565273661662232837601963811844682903237052319658239678956133682873719498169011839093055806284513543177159413045368479253085215841360815088926122289382342856437376874527698154618381217446931000047699234913168800220205101417268137416000680041481875107471149792063899722080891504826428617482755036488924410502184053214851304458651153532790381874610682762951163673817645941370910817399271677759961447158325804758054150726586574024207518010090471298671183256839156571223614475634266808576042777168417333687069074421338317666055064652169219267240227004143032846206096445573816965349403568949921594715702920543126728498633155553477761633189210245880399186280000862959970624146834325694127403897916068854696865090801692773003341976817909895709334669203495967756356615747521175741676398979449532191981574890706083326414289843769333103500933158818314852759765510794647782160661137774259502990382339480679285782910236952608518567039275552138030143754914054608501295433985411747526578834044867010079639348578687110574467228352120370859539619414855227169940465695740040932342916891704417191651704788918728412165089679676300082560897475437274515893670484072742989118766552090401350445436155234236904083992204552728381464540130521478613744141184839306329858391452453407321434520757806616423424774559760773926074239207247316202959957712486617039407506432834328423727157462915870599596385418946764044688927151669045847936986820857566056908606563358153520781373260035860812378040908737652965466086073887819063703010746243638740668400237076393213344946650779390854803607918270787849492752205076194396487800674669208678965786587386716583746495573596242744473330575287687194764013448490079370473510881115775663303382198353986399653009262162534210042231783564184983988192600752304903593090614282623473979569044304808802173508473188701118320949650347738776712343809045866134062485666122421764785421736568370908240384728498389127865233186106892557189736346622055168916577976855498674848998887023705025658057578440679646520986269643475343247304045469804957013500114351346790081271594808043341280885702689318314819085260022292385642190871793113675868497617200888928154316924368822897249361996310273403477256100942026147446662148263062005056116692410620405400735818729304681216019513790002883032792223406536102792514369012731178104088178359559157571125832428480655637516304020305958897190993522394318002653664352165935975590859830122079497477786974899946890475041837325789694267886582328521687875701276403579291127195158938614698023950431213371224003846028922832855214951397138443385845335032086119079438987648577213969283116755891260916866989131744560847238442518850841982392297983364930099822815546602910004389460950321215880714392553021807148913281499701210283168184368699518037009952020954625818792229448783993093913649362391842187348531214247825427079845668985784052095284138064779100690213800530191777453895014488436061967506200308834412303574733959789781413204958902861129160330103462728372406524357658449705583013285158934396523612381678981749510632601814091057402512361745167939815611784423056662762207518848366826489069333845397172471069451717369352671761305593350438194390863195366167567915779607701248142159061828886364060812156871528153265265384221653635226509652665707831829226336207733439099262450337052408441952532630517864825378380287918360681716087782734579278001375804050220602179452066365851735526516372524439367483580116672846269922049060538816011430019325444231918542141392140992304915219173486251180324472432006845499381674321820063931635749690457541480616647394560886585432738460470826795869007080023142113114199263875233026315059844869371051614322320347051686621553025241421713704458459864872426335545782796509060959098664034260510659426246345555409794838412701603797341371134677279396932718023426748127664242145709428683922124345315005248544947151869855365399484090162978720445381969959263791366185246755972025439271225790476561627771307583405039135750893824107369172963970142002610361651233054117489703794392259059505219872228707966991848229693274384549978705973224199540814652213106826872221333184364424559555467176446118729243496404231869263585274761076108565828125741163093042033718451913928171800863789240959909812767816246179487560363914551244271708749804826415029150082209898661173807742903866834596210211378482241731253315829514425934957305454526640224786041635200532299688323566814582954657931585860453997256386517954871578687332281682879799427167201144124669633575903880084985942760678141020343535273432744212473587569362071933690017706907346395403055909930075476497484424525456347027388220352448173266101606088531548880390411959602823139961853447844677703322002404062581331072927778019228786253716684701839388312594155211470928109166810289434114143312186436396904372237878286471643814802143336886140389889187356187353132832298678708717579532548514111365107096961635887155120274064521368888436264687982187342660492273428742947862333836983220799705873813228616775846009712586318012941488349374085319195178060867307204053539453991145645193002142261898286366851595118997612679154081498816905817569236516243961952406774260654197773251061834825984967100056916265227919707204899449195578757527519058419341062602080312863398697569889433277558882757131312569966460806314196120192718177200907417781771522911536794027319753585783338068192648269541836274115883521828294283735728295767320404829414463907642068502014996237344335335326818815362439303815678177887083188122161763762474738297517574797078397295244167026331540355355429651116768901419971042443363636612997296936903711379113595388612498162258220252441343025778347722591638969545379518124762509166111421088745413018421435602293856273668588047432282246423227748075593398523096092739420889446466957289527067334094901689195325876969687250562528186592166026819386052541244177820206756461106271065206218678381714527315442420985595127452192490194607586692691771402862483888589493241598675926450440839074136482581272677641493879534900275524556239859401744232844264218413395334684977009521397712142368467449878243716526249187138032529956172707534772056815319103614313732692189295266338310782168322347464036972626032808414924466048042382595901042360414545570770585510059078863516233523685151781985946656978150458384594753444608293297820443617082025725051036073351505979108049267159729575032629265266020789643925275419667252395182778846608039963359966606332678426648545396939294886416816402778570080536097680010545072341751055461689399228383748786352879491275482064471445221637679517217537808456478339607805068485595526620736738743849770977123217880737481368584127372272926963382190136473986653442761408854631235076172139534923945982116365267876063077049283030327890399122727367878126548133994510972626027694992392559835284348421720895450777739169916371545074550366906504527993155626947626759142266114772270097244669386782796449700323061123336651958621718445242175190698072258416993808275222483257186175227213819198762898105409842146436715075786465762916173705251532362982766993639791336134522352993848431466755082166485459041572402263088047165004470651212458496370652281977452246115495772071082465929272624041620402051625790991207327784617591058770417789997716988888196348743951319133607765384751250523387689370636766563118834591139407343440963937897102836521003846294951605167327631632569059458557406534247765736683823226898896813614290680995142170395332889042006469796872911313992538012092917959300047171678776668455222352655007790432612879773519767639742452785859862961274069456044380642515737382335857941789371288769015428763688921212245873502644380816122028397165000703704403701578942290745651625300803829483569393427561065256557004121515514947398678688827081665693262369380397309679023259378072300993838424878142680795858682247580207262033713647029754218912833703666041486916579042586259658436192993840265652876606511238492887104870329459397350715314388579205766945048445750560091151102256399494774619175589100549207880912743021898161490724831521421584694245784743357199057224958760763546829923980653822292351191115133560534326954176522714886174531159586494745123136697882298031573523405570387846666984152787179457035767417891765199262944439525027658767861931298493516314590696768183562881664950832713844379739249650247317145476282823912218549132578982885744389577620256273626449170897085170083402328037771106376505305776589266128296927576131695602096190994333228760868936240280425224169666650368371732462860782163899261613715831753954987328133920667873510797680634627754434510877081814328470016491087712831102679947576440510549747799662530365266082173624678528444709059908111432220170241335893339356996006184636700037984563242061504905981216406980421133264244981026397942830087385146576676156253999693953191965673527724440303395957543215072445308529059639337546553208996261202731037260945464842390864407192476933271393652728776363898836601657389531335477314496027096738490574188952680954822900024042681940269229509053885461442509511007456953251818667649782277442522038606668227054153821997035686904186577741727811395457435614839129269753314466310542630072910110352314989628372063250526499173884145681466946462439176509966360873167976890552116232929501596699812684657747714289734435862299513724593051494975537395481064617070602960151216083210103546619760370753173115218407115047664835555547360691876986373279245199164827033044070165626275997847098175496825975775330846722123021176990418388878316162946558939653558046403658166101171595532068342457029338264282396273444212653984247178316150571330854609361484967012580558189590829263062985847567153078581907379711785028130232054954588561073634194636084512136700966323215315594120783815083827768519539976349391835912563339645418975950696966703908301101343605963198223774066808975508516802630966092314440954145022954239312887986820886665683043661468116219203496350520527836532266676711972170598648052357965624921939156894924385700938350584730990012472050451426895856356759311784581765411263216797281570720897820536809800553141133345468872621358396627550570961798936876360389770586322941427199096991308671258501762744912442073032932108529280757636077868438892987836112549794068319695535690055422810317879454001845687918448239123272700489918410047172957576123449361173871626991412802958131889569485042118363849093560886564972907992796424228516790721859653543796363568547677276016518619841719634536365509884004456192912257979963508304387827557377980553744903439093101928067901475511063085272974312475941225461144973881380368251807877888298021399402069475800028679414647274582286860716797777119511216488478798003353773075479206433319683203462694030921285770497364214126703069613471082451418728578128876391143197935801320725433144068530263519685283397188120205026671731865910928033197289408164088184477434371383477687124983731086505090388847143153966170608701979774150983610513660131125640256653654608872132403219797774730340368295234977541839420548380632585666893207387056157945272337495751271011669441609900681070454890184028987141115039131485779869835823455144874592819274518574644346444529618228283040745939990307152017636993004001523275239623796008676605412919085116391963424041897232623649723293629364716166435331872102156756853657826449778219789708995683220804753653041427408250700085196372793390507775132997334877815334268254042079743561175718042829410392755791093848406643121981327125567576288029950193791993803316515151981731296946267974138252496117441200010891438567935094829512153205153174456862414892929110433206449281618597756432863376998315253706511307110885628515516287464208352830397235318887892451025003925246988767571681246647144091020054633459295740916634644570046393166526993569190170736909896424520351638148974452071930278337832531922608556640048515370152541097948754140270143486967545295653964962220111364885813398685409921774779900406276314316620897839625383470392644479280490471329920370255726778712276057899838462030712454066692560335623461963238290423669336163426208276768967897710705835738331652760337361624496695864354660164735259117446311768092457526559050649866846254186063461104532442735035859582380221752022309162060355655535850539425409688775615621648965167382087071742488147095409532390532135763531434727471209110079495790346546483603731756266531416285990435828300532933157269621323651075020077454164561309800288412397424078803278778050765640558814883252340176371251713418033849598826513967994324531409507303727563901233466659492742862889431167989506550663778032713263739370200064142608908692874722925648062169394852305886978033013681431513041966566104074189767574861918912442567051580266141009226561651831570160559101451772320297055260529435720504500561340629730192016054502305622769693847709867939901080769587096432425511404295224659131069285232460443870256730909450016765918672855425951460335894084546277566149252615869528943907440816115944919610821710610561308458107189601717178951879712421010338235424890443323011588406893932479115508290454535915414001220210402058979019545502628934053960842421689690858840152359943059805405781683970255390492727850753263767841940443331964249707772888092371673987579410553490666342890163926720948495655865787873036663392399607608575985758026295505725478160465427250252617768142588951020960672532587907229017957619611202287930953096136068480825457760824571966028987981578242423496278445268655054288595179560036747182988272853669697007712765471936388993391860547460803186850816603272859596836177327227220644073482351612364511394078391033464342830310297070375091446127961847060077292434572692803342793721899800952200190143494569967419433131649091160195296451059119466079492397831077840313000207998862288641289347808096533088194776533291068301004624647147828520026750262922182854848150361093697546324513575460720498034283249810316335993031709580715620980845782094019057750093942207610217028856584334138018346365887128175481934607166013672401968847999510115606544313480627470641767254788615181291279968548249666233646452229126497812169032139847952435399932476565300399995173918210838127110327315844973922730892035432361146209252041936493961612792211479353929650211303963994960622017871388434557456100628936394962878314740875404002145232854221472270734851448883722598557112783765928608882396468241370567312217925700456879898006798414426860835431781306606809883698377474192842957930814055831630819187806025749495030462703326051114244183380893704975068735848022529984378864853160114152071505629619260154847698094851419221516002295633229523533367357421673967833782938973303600661760656370932131353452415871029113051163060584582400613238783939800587466809491268045423283536843247552655089696717520738837249877092735628477118389331308897566131340317032026876422881780295605608852936764420923373308256616630086472571515570993284327389569979082657041978866274075884886871561916908819301867039219512244817871725157692572878402516088607800654217108036524054453018349637065128138923602539869574772116865647227934508585453015245807560863380825233358404935416885788189100506523963497881492522210142723015228199812501047354063164228036046071502519748771335444457937366375781949441448346912519611400782109353924259107673283861575022128483215420333841530805609632752302860797984259039715578932603922962236696139148965626126607485610037388011363582949850949205495129806945358448755973819627821834375991757429180956876405358757319936867901051356693872340217763683596293861846233918194247150585469506858987298171384744891341028669860874429272231237529644365122406502291085412923861052519877273685885898690012264804698268572338221013061342429156094013929331829170874375428652313341467437960929460060524865934910649268029321710461673783524736298498729916826720305404286784850483015265212092367720126786206945110290208491346340252007279662668031146602384750549476460973890693472746280863460501712657596868669829445438753062967746984974376893975467750065040969632553566096285316972289705821269634829729913895104249274678450207801688260454630127149210852654323282269084183712395645728165990859537005312143609222789871138348760078858542987102455690000573229426172220605870689953239637471070427388347193563276325884452426665102499492801301528048864275911115755580107080466751283141652366939492333951483289500488340488618034961586296117367989738714268955905921921457492838517542896413389251403924959064515155017910910486764355660563720312013338926035954628097452405786636260860672358414948236468685343871423264183509817072213909577336262446988601422003588014257397491005646612100614686333884000545809939551717745639821350654885703426119633588000608962227726681986886771380864297220020330368623565363525350084340450819542881879039872759542311195856602360048814970197717574708535900504407340495131569388883771460443560959157257055885771026050950725376164688883511788216577407958748677229760235938482619227411042472105784491757630254118738439744679055600788312675365206316983454378212555411839829219095080318878176047878655076195617378116611074723083200682930199062226952928238745978907408350369938121452996927091734527171393635844206283776977835156354145866295270876510600933466169522807604276130552873919297977121863114945399190154729682055189225974818650778186711934384233959327279472453810247132688721097224613155218231417203512457645410752895557977581568875195984858079929697955428667476841209889362111614702765291956900807868104350019913611991149653536632258537299988078830193046355395351979969164585736887790451896054647474367320364788890780372704555933675955611120408244419077236543411287621003055999828031564610142979972311686218332821962788519753102889913019120638490989422944058978515022866579623834266988603173227219365456214980248521361890292745547089998812824091894392652535982810649501757071515208313147270114735902668668527058009982416050387809077123311778341547851336744180291017451133857643683006394773353803824826540490334956129246329225951640651543173396088433395675379442988751267190946411751669956197862379013250572927873012705969974599790498862891645982744599263707316881775549207321283975195815070547292980349717688072684660740655027236408807924545006218307664173633213531904543438828154883118834432302837763948830584229220110737861875869932573434870128145721234520088459026932981585777023980007836187102687588611114789222879814037604166109205249907294360126647144687208236557848330350722471800913972511214561477790626837555752262645330945691682963810533281553984148389395477724353185006819384970671501467575009364695593610633632186933646437144283650926799008038294742320112175683923544521858379060396918031363897225305770169803803332147221844641040669766252468785748539199327698042128342037622463227311091054384392154193599524434068800139663548812545774348615739509538215116431634907285853705396806024275791839046869193497043594190744620531769203370758410430743187767063601187994259470234433156181490099952125527775948963396788573345454827078931941596767561032960918490996177255658275435428890570988604485289359401431336864866939475625908195435314796663575854866518952340997448145885159644941796121760687465594215474691786034084804274607976564026554742404714003423579074955505289182282744558332327824867559330152934232675034610174412428183429140766403508981637933263651169477528637878285306620769469910223197268211039634182540107431709170666119048170612158571860672430183023710807777058577036537715704111670368135886943715520791366583850108080663908095079361882846532457009445416309145699286394978538880567725033909382827259218661072364771395609918150843139932790251015072556671612298658006989438579343278317081282079420640479589154853557107541431423315758937087282936174901476106867171296787663400495451690991557608734760213861468007167865322412006508929971049421815609453699706509117695582020429620874040286087041335327273685751195789697982040508688467305952469739186748999251657108592156543480778579654755283992110881780850240519903302114699734461230446281138023703235936004541609064319733201978728007727977256238834651943471403577333405178320819140894428269751368476295196190027047779699335497796454979406488406337177883830697591776632120235285591762686753677950389841616339650757369114440072891324833938565085008914878260002132454234135051556261871048208436734106491297683916504655422793108045115075032565818434973989510407366413577935816020162699065559779809381345963097667757689271523932764512149898571674417717312281998906380212899540529300114542809097811393217077826448457535390615599299409433501411951804211570433100146668352367297829843881567335143677069546229130204856549934196255485325109395623703686901604911015296400941581472806224222299465662674840169470456481741464926234402144355862369703619333889459133202133650969304452104232664401389051052126772290925839758729226291573117657681558545272997964794895596160157404511369844708231084720758742756855640636469822477101174896761354236736380550561231798148039118170607706415661582234002496029816972270354655513893687896610994825313799145539989134130100883102359293386117870758348476443996580745306711772661275025408924803578861688321598375601608787368712809370760511097724431855264013200210787342756331101568844555779140061953386882276231925877405828988328180435441707167368967885440308492309381435391772224697543817159130763974319821670966002311653738834023898821436815950273984501934073904073902326166760668245930676109320980115451027710485533073050094913962542633403834023619799987178099921931554244811727837983909984590461431228115659865429861167122219353107512495210841524543457460682083770809972260969350907330404498521678586981445387242627908483313730331381248026162233791231759204054941681224534061452020212908087928453137939474647121730736786029138239647587949937926622128277385804216859360377519038834484513735267432651312947325807918756100662408470393535019443739397693851737106052990965489348556286283629211895145064811367721915151716266070381755199046412805009207856225420138225138082940583903689931715062530242074452658609386177696645759107648473510186099871672427683705349413481341981035598757346713640176623239839603830930021585210076155044317605376536995530707567452243994125621861395614295761095174516851524187449992891179385213454660459019150018605421190334371813962540185193237131444038420443048688146057177663224008305414366821642777779869129031185073410956405853936826075806907004728692892801414047961206059339733108621968763368261619548296226449227461639274324359684871171765718528833266455527618508536749002502978103005474702328298911887687444775800952075913875904258233558027566280723615901322753119729574667213834933876779976337851040609621499415825368205474086986748844968548769382251728936948831923517680023383145673052793564170664383202827309623293374896784403589940541879953669575912898008464375668161128048095145736031195156864110903550663735564435751354349811755985092248587782542140147153023745303703938101743098360799901450377371415510410385260892656453268588559630903159059204773755412229308218393398247361429031419682869193221761192761018886863238593566877386747343879400535185274678453996341502246006730024977244199202467405175157919880734111484195669623080530337924975990483613463109882806798180139036335792148294333089708122073170370798954003680896219830845963745876513969897800778695128706958932852573375673835020912775288180044839071720754269187653953379879002839570318596241580987062272048927271418570181226521726745118194174635594658654146509835050393842036306949856536198516895400967221591913507438166913710433449384011939390588573808262789516664022938298220974509506306040530652777778012643991310910877951871830350807024322323812940000162449862682370101702694313836940660183219051448787019583379564649925911745929154695479025866464170869738265093581920643148410421172830061981603251749319685123957054890208378138928748326711902137078114261051522753436687285958448027991434782940174202596812738004795514904174126488924512394512184686430878703896776590696686411841244766819447990773337327181998375093412462991365750762233450749873452344281365915120049103055153576194539985265085322691561516022599344033757387906404323835158077199841830612955266635650360194104542729249187805083085866681653298381978020237860288431742667676050749342373228833004963121721926957280351442032994129456904361995513617808562523015961783535333260847106129211281511303436254542398957228115796386708554718643807428023667646303906262203289254612508284802933208935748047341835867390835943153471073420043697359977302699513194151188822584861536233652841818233492120289697572463568437479717137238753844374933456448822627997949440309150472652094908889920334622238766852675174585137087326997115342049602461597070471135600855427101561068337567725763376117012553836362724846149991597275085106955721792913456747087499547567075759698281459277234917148185857210125816767754105327510931493354121670927984112090020792449343652763676678046386660794934520969927945674559141333938901514378240262135030210663537044678533393149079342266518050861018012925949061080419958905245192876231883937407149911465881140015944795318697952100444197959935390319549961366142533485952423987046211386006097308266169613701850332848274742779441660426706723766674131825756720186645256450688639975697780332022508259785288925890165377452551336047981313789582431757245440228131430606892049588713474333154981690179244024318961810904805116222938317981161104666364716323534036126256950779305715741870218740614941829565065124331616359090027288640355346682899558704018864681859285121961144415867574990510219868367198472512830792146685656875905360746872654521105748908302238502124112476479609451543354896502313149432657752145175210140196273913809320962503961415235322663286415460384163423314013839947470190721824619343693065208544941734601323343281276785184070718218556031278159374990868913669715926720667237887128152158429783138367114234176319378822578036050431285041426338893705980023567178457654876692649007518903654727539817849677838252153680467534144049701807860505443956053939574971491658109741194522850993462570434094111626179268410506639168641857503463414335211434307366433816430149755617105584187561111520163704214276949002392826044782350548618881622310058146258846481453796506452726267412398637532362733029292545468413997533283866780281601159034978271735923611022777674226430973151513733886882439366787372089955251687855463306735234042057774042231169798599545854443070007533408860199217347165593771504459329473742735193080383764587331487708267750917132933246596051923572841223731279818961456024779016704729303110858570451152599020807296578477492499219850316170064123396686520577571794288714842213062233912214230894524050805152910106847002048305131403709209099473147052760203531939624162444239841489845994213119757378720025869836951687047687393984594078248471808129684414471018765276846949643678020610577239568262633682500381452623700255181421695682630281290939178100591307471432506026450456804267367424336975259983668090985067907357447349021984544677492576995506665260598097791287496358053045624035460563647595687144222686067823807226669941273295620629526905397714987210514731368141330521980360556636366623119698336453500570314691019226182802779099466085052791195093314703281316280696008655732569021051693921724752056298595242849043656868321600585104964873244974414670210833471056502244045988306904450707902931348158003464692381595308102251114155985060056469826016482797019957674280020332780470958727765645156747665368572305873253295108541156111480362352350656736861429956950915582249926697971918710819944171032169593779160117406707280773603968530392155247648825832946802509207014036566739636515125235718200730140078545186785867370256356666477496530132359204177384119929274456728183701528217577021962956878963690758548392108653440969177903523487726534395505357820522837685987184500020749353582206595990818571413457625643995114782230023221629824844265749273705302390694622294359342219221363190415564476015664026389608450054435435474637492253812448075238814903999228233396136763094598318220213791804393573426721507189743244628183589543596691736687948474374798569471756504052331204284660389062324373748296692856285897380797850364761121605606325009472580133597467122204729916612651283526498485790888648933235405206750048551875448540024169747608396593209965238746113900439485042144288370412846777015118364853842345868739036844458613324497541402144213014623715594337687103973491503208964083689264670470263456876997726047431059897819705048881298327450250354902634510535291235331689008681355791737782482657175003779029659826020162214001105991485782746941342406589607690054938073926623735975473798687621528489841910221799444545258614626224151712187837843748526875851146407038896525487405035551441729568080395626060322871993913372615510548851951618398067480673378736063323449460902814938732160483640119321695731095731460418516705685674383495141827769682050276925992058318489885881260376383071642470582355508321655502108671223045778596103165997759577939983706599515987254053858991337870149442141051194261017025285669872537342061733662701536701007135681103980048279870025614285540588358544273888750963274534624606790198183912198929270785612197438318414668704949141599977504816878736760633056611066488430749232222003922399486538559260209646092105742324782826141764448970069156294996539404157139643091896624483292452827993087447869043738779780956373187830789237464893748895003044659477452661759411120951994044545480191208711049386614679284286554519944443958077028056359820930534674234617473230283709668315156312314066841808470671982042172774970561673799450575834555572645407806597209399545816243679421073685406470140598727811343240516897978767142019044931781274808689158028612664189818266980668489067824875594028104100536742769367832685153605729087368738081600085068679182383642836427426214635471854853597842153742022104677262886836147598322726445714442625492576185261033327367806431008573613609475916794176389053892680681823049520331317938372018058947495370075327813539186810964301148693730268549962619877035555391172452909002582920322076504573373183492938137296579853675891090104980193074941213191920491888680837109524662586947017517213583292849413213203078883768018006026704869030620868446064405814563107741422832821648204412020936282070902031479130595482526335869132090770609548537940439844317512528099805837040258490840948019793422852411633982038842345762542751833309846430746214054311059681368089554536478379906011944005767753455405489196803820215803508442789296592346953703581554263124550242410206170663636163808165256221178669049350686094880800345131745379730501963929499066032661246326904458731748855782783164025820078701069406310158653538463243504119150806597621276471177551317165366708989078664235971015610757386696411575300374827463515170653993466431404866295859867604740146707910126341141978882547755895553300043750051546421801809593479357925482712823527852229985468380866061550126166330212244257610583731623706424665421371921047691322834453189484170715864704820403258599446571387356460077927883482440535781478066710621965659778554356039138772654811779512782552522269026524637985455456244395334670828474741248436238579303022627623966834931632575253326642565978526293934433341074907717760978747638978981739724641236247366633110064731932816701548530134470541423701904622763397140722761925286819400605680169283860768804100740213631549504026681742643463388211874783246463738881717924164666893313770700545770179373456979390957037466984388773551349454019639862798514562279280504072591231692108251163927832957520176903353837480192970135513800119064010194459624973151901368519862629725322584033236901157442914971197494423117898895254198378345487048712313748667743754698891039133563332600043956137938597083379281749130797277991257589262451927821567104836203263999858591388346127289390399401856801575798204039429603798705210366923869941675462494571662688688094063366184324983880435277124314572269205743394807644920532151868954834723657099431752446122336513539069426332397476064209567564785735174761141820785462388678061242969831975669673094808633065519016548267227282416468300776690467266430493705473403106050005399491662583180295528261970603428083175897499388499031987293021350601870556585684941725956375559983595380938874556246259430501479698142236936690971704199556337814091553745191398082522281754623630852008314648151911403384911327248026009303878171561755575648443446802004508120433971879445721129784714637728471841688697299795804377533215083777885413041548806693778421488915591612693766916179027716689882012242609093370900688669846666891045897749920430584922771620525207683711143491249415938490429451563321128454599805488487790250950043960121097996649198480585653415895442273603603147171093264387682079149452293166619316701814085137047907092174424322525598486619255365338776301608910289519413678318643439521939335978434291708254704495744070944059858859963226092854552259755687513098695423360546752694874140249157331844549076226762528678869161968284783267803390074554314372017482816063269875400417232659707175483513447983546374816970631518661540858805596989375783180627766115556183737618537365520938377266803354756208092298679290630777841513250279619277620015874540166790807106735930310183439289568894495385481781489760967651106693871529308590059972364734135463326887167958127671279346519181446439078190133173719711886566816431407947935357092616910029759846994524505402662801802946324619437495547093028202268015001102525898997303322511113495325322837955073834513751301473723244279602707077015205596406573339869792606640483076877920133762977852541289407569154136398526545278960033140105890179796915105164701536899857506890438940890542193506207893272965907802064608680503112244456817178691327945150170933759553738854573012683020543878153924555264916343343060460140595850554963449016522352754936163857656845374124535902710647433867118716179530148743511027390778596069265819085387120073386088487165467112662536795516463506697865096917173259001156741365183654128704852201206709667089270757031565301933699996686448582932654654205608967610569196269529982703257833715717399214252597278599424588073441236137876951759897885926585266176276364913480042925125851090525145440589892608051551946019103233096222497667078581891326420432509090468793138200528580838656735629211114073012294368399699795604578510474613769606258771271428861686442107263145737480658406929541332378772966104086189579231041088802093346707776707265484702991516233183553815503846287305196942055467581176677867251784163097730613773329404115811037160220462976347394902149801573391620503225623217956279354716028673892277964857981192249515320413480367681417912805848106977535057922802001601916729937906178054103582870331070015964149788845913237487073823284269007757555945444305154166088256926486047177776136281417609960692801085396130569290708119832384552444305489672971267422158981572638487827660991646573753915803597639658619051705332721925956570898630334418164660820428015405303981084636936134737924220646064805801771809819889492446248052384954243880769911745576585691022852760133572744148976722177628147174153907059072886028722931947918813981407011400605992146235606182103150587414382120191809128794503955326359419667252866540110517846979634670551917953601782806695133763076213573540606055413343913546439174772194909795212514093121628981262451282556764375551587677239899295614617228244087520087885778077117241286614466978806757194175747583670740136453028212024077681185107773852240103504890437497091352027797580706161146225161624962586014997299457004420211129020026499910048994053320819735645530715579106137470000984409682799111677069075376667859884758230093781731975524804846632202953606153568646987084352401495071961188157143995674878659278897353303225256369701194513804768766529608627098506433094110029801043717320482865651679250529711892497258953401381494454059218697582162590983952026804835767989906288217078688455851640680259450899731534423593935922155947405630940361626183774118433492516833266988503732280477036788999176463563597489862986249232094692055054830639522147851397837399715581397348187701168065725323320062510025474321229353282900945352434832758586961168125764459373023842106542124036064326107743380612738393958249373741176340643923366277927159602576634353563882453027326193549529549348478811598295713805662108983386131940509656601493097386435106831631318206440065724122444374565096481864635777868706844261302324549951910803172791632854169330836670296725969685472681889970861875902957578913770935350503123103858052271720742716862296373302923244577795740207715431623291040061559584217219101688331636778334416946010321696224941312648182312729183983650916574339429488015238493036924047318947630080896727827852311918008509552930236057304008733180364954450676516975533312234268169246864430857719797439140592696343382008964832977682337953693321601618470547345706022336442194576171902990551655684041769511694706621785265699882178230637324776033601439185991630669153628311854197175757211446308781116819977285607109589287830694657644600876362491070025575054204071274553061929350562694625536815278627385276950540664099020236257282855834951236311912899627875265314070331937087580104130744113986925335252188532971889831756358907761664802810478620296575420453728767799203307125211306033857347879082989882418149007580873238234611827418212969122266753027010517034874883314750558607567857506450447597324436486107744968488018462381779648813788791033274655948417723308980662238051512168344115522208559830377045271816077724766708297933080895702741245006018926337360230924500529052923854950871110596492884436439472195683900094014287390903068846828662965443299718366119263270264279203961183066347938692112573750229928038817236492853824144543808676522594245808541768915640945583898895709442015897409068738676171839405162857341619157002304194969778501648656833306263867814496130110625369044451122942129223896073605973063145071326918072383879028426877101364404689389099676960929778519370308468668608609091794255266888209775057929187988464563725263782793312277903175410536003911907608144479620431240842695778201047294060233459615661926994590347256850715871869645212134521125703086896525535990474785302501289529765444745961191886477394669292110643504044828392983214100158896082247170496901969617872349413875161447911506303874069748942371367024930546607707304048393892880295211503949185170910375967896473209472791434298710739091552267248819588476297159852426036253956345533964460906452857531102688000634427131415522902480016823245886251683950567221528933382866437667157224747374502947461964778753634681018391308623771704284235810590665173545938250542020355644033369773160628114370265851731568953829758770933028869968219486396254816119243691985105524592558623125133872796633107688539457324476311502216020602761602415517663715056229029306062203401549303180872061042530444459135428725405044980914668246537790479871420225765173338565744143240714632909117011146974976700934924425279104889636487761670987006722709638515705915818671801644934838067715203841362119277822512815916827498704498769780292684404293082300209715112163468802502721298753764926709425667340641549415059593105195563149115723195095469392654795463154180604983562822603991848638269364883075331235622372899931526922232956288136548784978805154972842585806459860822554787708519244466239415272711547812032544490837769987452972178564116396108090336557018468894799249244451148866598858849270338296103364883974508674386905394193820544883874709407595110864536229464808492537527301766127945583844680160689781047705569368144775365367213036184288514404257098602832411160937668835555956586426702981831924489102460624251945462257883197541875588966547802861699155148742832198315726519908696804795287581869536998443236723586612459555751780649732135570944894226699732839129214634163815845770516775543277961732717611211060029164176201235608030747080216370520404013652558688604436413311842820856160881174075313850246271710162545643781355660473961648920944984277489151733381123000565322870342375215627084940841917365559334514092494535885514601518162895083845664307336726996853008109819491895841418343590310129226253191702457680128396025254300772330622654851652219916260481021782536326091336697780089236859534184636777476774461010150351598474721685198128994577692826559302837983042357362818623249413470081373358710804756803324026430078067656998488014373890336285333607571470980687512068644254875064633093922442553843395133281565135565333546104124234227267621130041969878268152968067772612149978669854539606502477278553024191072117665188712207905173024302567891810319323436513084095665197089499572190655101339293526401721378996895874609387158045452924219104661245839282613452346155555520223667096721224517114766489089131811086358310579941226708007480170401569888448665384923097832628331236068137431424529273958127283165276883665214200750570721854025441897467370948314216338328922830416782107483413154588716275999687170478611933677254457537325507948475362049633201279473139814730890247867030739349513466187671016348938825042765957864783104716755595519326368064397304691700892831484854865265923899581500601408914151146706214475899640523791502403075312579955209452406101583340670517927596485614547253937646202631715610121094262006673860706911140496573898973464564604229951793513151337394441421027336095925021029465475199272531713286811118270178175278284391977902919283604027394640645963086375436370354538362576393163290083764036794759472972620170435124376123695590116733370941222342932053660622730961930807725584456337152301148740520508576765563010191290533100385610422255962185668454451084379456920093051407765474495537931797586474237188512114177448101362457633092466201040639132209570359328463068683286587957473566243549994841251900389899245922224727451152636844583849888824920937124912466444769266924899052135039925432674930506254708135592280079153662457387495930473410732773447425506643648598507008491890577050750032219316701697230811297821839804900121214610104233794506113279655210095159207748566289458337920632007221475510918602396054299592784799275713954558673621746403029005059395746271776350328614523125616796753520697983381172105689172819737179633989937202019989661770767975955516089534659782733953774467491726588063977320939883869858886614925138120196473951420946947965514350074864660475053010665740749417723475378263551848035932051618337865585766203713611032004770346477083855199779994892365749452437797801266217975056860715499616634118528377435996993800915488914159631188793732857015241689668628369567149752464815381746535544073899519585698466526410027149806132049832554192660994687938646982836783081211367061817208373990736381348026639511121392718341780939335145057089575971289225557675441293091786182674385077850999119036250871272818175728320409966626845416228562499221215371156748356806893361810427060938224594419360997466229730386841962670594430699344046834793902891834961741122788696200829541746127330200769293987153251031630310181000321691262952261577144752923211742678614003747269618060147671714698041603849388596153557486968807422766894475942244961452892253211782652238896377415564114874177996147630559287322060823207207944989174471250685333916312790782146259973080974306349547088934623397358786658967836859212752208490825520021863429550411511892014036970916135135934014100120152110986014654357210195254253715147403768435526622643573573174936217938676530541436454744821364175627583945860686192881535287507581152810406406586618398799773353004382409098087807998267585579100605731504511025940020518387654571235104814473955357929447996429937946690512807864838719212135658772711195063648659420666498429559165081513051079806506196924986948310825150549953783928810212868687253854775045884192483259594265316225379069831432632985185330653721441239567135555888893140488081700405101976458025801427468342712303710886238057918157639754706589183975992198349316653366534753608846179613504107133293636175675258426233868393694731390512209270648915435186043384815738470666624395581712770940097581864873256014299451598368340158728256464336973306351730831127459275840713165851002232785212676560817247070612269258946349725211791537105017886734913045156296725799767252601811387294633604880401459823451101295883290305810551820664332705152754152481697345456798237770172588487237916511603709569988501134582186483196712568358258859298085213987353014176247046859628341210297369831952453221708385002912727907553612293674178803768043384727240591111968869761037301368583895834764430349031643627390494815428647532526125363414466543021405015053652937338392060240798080450824132574684579593718785068982537138960180209243315826631836483517700003099600360646056455307583064501664192307906001577826560470824104597417346528335534939265091120488665592354390587593053042518855470615996711221333312652332171104342589849306900568947059604797712668897646100170068384534132224342746987845734980351300314473779229328440946534416861141686411007359808663103466914808278601712309372533880367190794160449533103908593005069064751861516229294424703207593902679779344468823608573052448657145964729853263267343812007597746263596567160350954149150765452651423543584157387076949862938130944045151766561201123608531304879203868507673895586082008345164225632984627304973294446729722087492805798908710966218197343842582542585196037497988143609556533647453191403219089402915434531137350250807813549520559413856505802317164290521783736922862266402622741015934496888540714631259436977734296324845849356410500700003399629644316806829002719893527702941849778704864062314033965768188898808701848795846807495669334921120437603618460783911978733877358073205020050080797342580932543377184971378853759951558789516452932511230267206224106881759166815290339608227514446459417661447777997129213504819289930104708920664324645207394678335769366255633671344126074957173311766633360728831810346514668719500158455538785460026574731761491610589786335686763334690104894670565499414653140122470911113003018494028298539658712027470247399319856451075118338491315716136615369149559039581640418728764290840294017776553028005482184383718788412822544180085520788956175671072353519519566244309686249050226617464702711919780559237608218110505105550162773165174192010771578257331341813125313480339892031497572782874661666446557119721601559652999969364655676038715041508898801699448040274596117633119489458807015900948328509838410724233016162117656399949666072585737589154599267072877579079707773444247047786942483561965940422845640371543912512394657301365898170598823463304428991318028877840210715874543456038487434100837904404759066997757156486704315286313085116779614915673343545347547226883959006674622114637932767281763864661830712061286354255980458415909637366011090614778557284271072184265755025878320115241048867511641716371929831178004769821814203587479683540034422694161424163967298849916020774780598094441414233548071739611625454360317800388015727505133528803532324171119456520714583534826470430407855604682028733681613694651642131496719693665954046774951381687584879444853707928891733061045397861068108782078914836028192884947255982014606470868535189936977353715681235589023201265013594849294020678156063462360173623979595944327792385490437537692372748827730092900079351189826898994735316404578184505149641197524824602462446471348063606537528162043693266194371068036765700802204482854310826905486524349332010216628801435264916105301869349792532456117201598949245309053013864453417040772674934497789064991264032805389428603872540181308707200635924636675543191904149175754294429312646815530088228877391609548502476615030286965879609807699942115523440691237793902942765174125799850011177084455453424590131568806935314189087271891358646665862499546648667085915008116863750193707559883749658793191511696587478100135276037494693886448672833491219586941275688697760867816668265850569828456221150000734472227562875183853212300756856769970139088268617519991401989600130927801233817973164223985785492046789143048901268904692914706714174972116797747150143924161241347276928742669032661298610458964342861009231319857372333346384346623578008976309130696352215593163669165936938984585987930774925626381865999961847841656763805309436854002920120004992433434539362066676180439124328757518624550753198986181830346000642622080351175428362175612019276266899412750908986030803829116592747010972705360659079318061837547075462500750765532463157858471714116684831084878274812748618649341480370817233198720231392747875722966063943412108378029325884025587485523078422055718919246192161329474083220808284911214437457238503207314933785267825410020113153920493283916768921224581229448391890625446888409234740360547312779764552641752929303835645622761666718534838586067132377069211196022943690420637411613211659584803412423301501590567402764764336052962455983421058598399968677469176341921895416453449138529049927472760861789642107986355334327751756588760692776192474272987174342324541595192874070085147160633608855627398793673109359012128867699875411652354714860933304854290555376583112759230133959980297223662935451641594480173245711045586562754677345076449986846737091090851741553506829152094330897646891535468396112996176053743018534578322231454252188761769476480646129302226876936625108551897586767163791829953095415021646794215442837619497016591111483578384797086091463531488151078899149751394696039006102757363361684347153794743623940041102189933836714597528258900636633547988797755930828308415286906292661737071900753730620810244334996892413124265766940343323444491305689516505709793960374700727888145205521856924205131708943985009463841414641222351381919370084699441067129514529074100928590149766238548732483869542482616186334992786431130668751314629513202487802364981541473364954809307219804226646689128641316307705329083281063673912416815064413187467959927677687372886595696179801644395140900192986932998222458958341900158947580946756100653583667605105625902181649291902839015585138052847456404745532657070380206553920348074657841441281595803919487989567933400755382490833184658245250925458543722269723856650773747578771764836292092527514628736383087587645959802516753302074759160333069184695503346854337442302501265828267154275301016304136098024084251605776642486360172458464230918892902447007126635959664803040495198368716155088644229343260115272617864829197368111073385723418497157959415320143339983664875011688703160129937978791631629143891961605295803201156383859347508212886576174026247656510539657196329663899259897227107666631572717884569995428231815059677187614868399761777814474074826014868971373067128298206829245008057764693273040252759209480230037407741588516413728704439443675842288291545748893179911828962390947447946245987371617261334370790161083345426411883544812261419561881763233762584886345820383989834676290345830007631148752745511004253364124933393582722014862860737185469480665347332242888150635128625708664172764479474088713684372208251995257219270822791328299062285635525293645386772209211998179384870444397332182526112469566048953446112368482301742945077522610483669125087151897544462762257293119902166899764961414354169638479869981978249846140322392756509098963455742471873852053742574980571168195615806314409419411499959711394651524187019504762847767001730255196272801268943297612788235003913021011240296523143723857370805580783941450063695577669286654034501647178193247258111103840029152982117674735801200027548030649821648759170564472307966121260813667042910527716033812437426156175854952405191284941773887091164242826918263543626246015865569451823549142406753576786241642960410175722530463226163406123949078872501872806524095484283854596192376401833234717309592759478870773305001912775383685150516030123436287869630206760165514056751380617494121142690131560313440085794982449929439284639957076605393868084100001293919916695678210783567005131457047752071659503818788482742627425088800681067082512335060271138183311030217064809326793573039533033194375193242238288834177416912493886514211568630087441747106504409043687729582745012088444840036622370698294698431825292080686843669514553077852985631404409410991204613628667541975964839052176347982602348074660047406737188596740998762244483899732747838882655360602747098023894760598517863105165877148793452048989147864602800489054892204484954373438036946270909148999254100493303398800149748915689713128075647557949749100567396514338934075505759632840703499626001071169416762443925336308742017846408671112621956873351994278256883132709711290950291842985835124478267363090579860578731986513474411004343415691368539904063654914896604316737953784351895838175656201682482585298928904726134775798639419871622074358479236689677072406252260308512396895704071221859939147541763063776602832915703102799949191048124064411364614744127203168795833459249424710895130292848966464084495975781330693704720715008237357979954618206368091263101964122241936258824752490636122829362387893342545839446596703316876706955594129651002231105643327274191384669572393041228927100780502665511407384058075790988330281501635252176511713052513646262507080936480927322941177495788759197199127194216603624523214832034963613296728322589717437848711495043095305086844369377726440048633720575806067208379704778216559134287190128868810281674146036915990503078361493964077603721386082242927747818794392347996031390678625513010386020585895781849665789904619741564932541426611980853171532908950295473729790954926056680599990001411318505263665283873574872565743208326530076870004869009817759674085723619622385916705006303323001844459130415707044202818928913350608811465715684074651988020686746703354619479073390663026001003207008788283066131112873815718200298983703623984142183103901843075482820508885469501315059290367735310803230080675659435606503333960083406165074658991118233909249349104651170120367290290208746082181226042091101777774661062966963284862032121142267648498158843985287007551712681958278849969204437055556714645847167656351996324535145876596769174543505309996832489752779370343233947909391934194439837196902175297106558212967761130487599382963572494131262868866571172559404497491515016151443207134337370279083814594545969679203213070124549738929007029780126740148409856292022940352482872980177155259020220026248180130995034961143212908624925335867189098623197473146980200431153177737201696227663922541653129868898982369700087676880523127551307850658116967198689003912790977761333004203640650391518316015881204174887957811326861758910544772652757721295589929391902042632292852990810750472760658821957402940764924916508066954163266573954660993126385077795812403008997795843860016156898346358198123677866874447895521753897635393178056933211191842102826385708004231881215409957633316138238686631935111024734434167823343811165521903152596775815611874949188456611843760672602606966157913742245733721154008989630849745414481731835552249901212930283153893108862645957289539189108713362050619272602205559724645413773467342113080127606504645568474956956739966733505552277339471580210129135767396495978521505701918186468944217446235979576252825234499091725278597420430474827188538223623588259075790634321483964405441080158117363884834526799160102991116003998224393184761795245274265692021116820635726074396720770408523568317992816618018613491031420020371011942630648274953096912270755703524540681632443280846469807850272389996749847449627026536924404955058012527350094354415208823109741485873046571819495030628047993574576804189588196623526193314522589701208706529354166919379392737250748183816405847740680265350960545427973242101814061119603884465430653859524630695369647448446298128927999257820018761082241084437160922244286194355991583315408295306444542566907817203830610012079862365817388999513025652208876014170114199717114384200039897742171064092838324923345216390005581971024253650673234880758101826561899575475092617630701220830118691055169522758000035882844408615529801453269946463886802341356348006090617803782461203101193296923347683620760876948321972230988418824481852305037677325983137272122773441239955719208491480215450078858174887829201222987961560030118332963550298160420211787451075696353107984579836152072065791788283973758165195268414201677568364296306988557897422160056592462543261303832774625103705506121217937315727585015316897080509822707226173112473258696498850351685291418238538949013560509233513192747052389957079641436975417674850452685737627139152184768515644009942228721368901288764100502138372479047607925503239545351404909331423200810854123613963057669079245504190992487976804540512042676669378025947132923338282229195146679335082267900264560500930242714115186223180024610834012585757227364336076130882672578563042442253915729912055348204957189639225867379471216454882286446544245748381627010188363725613089591729532896173261400138579266470141444612086258489132282104456263575909890328877127247417135056548026200435803752644886196078063643494345682307313411766931726490000571263619070747249710652737751569151189895030393433559436907756416694975403839050942391391283847196433452060918082041122366729687496916163461878597614596560743697725105231257750671119961339738039853882516098231851976555348987722501420393462629187069300832769776592061205151008774009380422153495263113260177564128885658356153124557204230276575617093240472625799517338817949999315032000096633945063842000358187655048346827815532319467355593420275488977262060960038050395080954896793419623265764630550585946001164939014230578492275412569006854983692179100366548786667532141026423644519843414695899477375867898304780422532804187844913113470218782070357725107906512782468045759665627810352426981757617667126749906222776307017066937864149872543900644994644330359285364253841859081215933417999267990627128688520231366607925915483076609808463683980167021020435578671450453340335377731796630864359018982822365950417016799960688778858596169502866570276757166340708230682448703436644122718673671188749210843541493321447683871566263560482688547194137108100835628114012715041177332065606886538747139487644826297478298898267051002263704978527044683797581584022496120995071959177045737722833461175368089547841771823851674989278398931448242219813000233424831223200549358116280061853642510082235806674546790173589643429133641662336035196894198296300882669092730414436335229925562971172335297465646693688733693537938276491025402222340906548525919950189189538867301588270680948263506969258386815734194503679902746288325155952988662425515729478245534880722655499204255821255780873318681796672924385634560817045715000514138529706435820604832405945883121391247571858254219682779479608190251774941599995195113478468300086528524475331168890689461998017473607776180082268929037084944033909950247357562248573888967067109233626521881116285573932376676043590480255992724057241671330145731166216122821881705078788635382233106047601329992744184874719310308372328817835401978402313126114976895538975223271545423105558130246575355707523908763765296224325846798304125203032113086074117671261945369806949696623351996090746323958993663620200795539317051163528469414347845386750271670134335273145190191672547594748093339957482550637642323039655932700268313535615509325207418457152393800264744372044743470220071410679911542026861595963567080023495919453037342972308534334897791951393358289398721693587153052173476805933242552193309450635808552300685287992140719371254225711568774639907664729643960980098766431345587835472721697945644626496470186070658979893799946307860177083643909541319422283446675318506288552332127436498963282981613898634429972606069040512778811852155265369946238815519785768639310710526312335498320490197381329395546698850738159106568711983218289085508213967621707603452379900331282894983862531071672083308022415303473730414593198526166513560035313004482938721160145317448142249346329032621920874058699105910878908757166209307502721618932610819104333914602288791808681104726394432659645231159038869025360865629610006417385424085501919063575409673336782034207897596380338922672004429216261403164513605875616832276128059372523644155066811589298044975628431350785681322794501420889334171504945103053448371211852409737280436666918856737963519878775576889667114145810446807806701532986465212997344683435720869102402561561488493905446212920687559089821078488153840810610672952680943338328002009816868563453743440274954824292698604775200753467437773669839377774083543155924550951063154766106985470066745817589436084534083019304262927417140146099738410241364455813837554889018544040453540323707477036975218526547814875917273084392774011251957273935793724974701946344957241541205121870875948135243291646598781099715046231910894598748434788647563332764499974385533179423855346117430324545494612098433358896174816251579872784554760072551958744762941626174269690119438564434050845161430596163538470073729567641074662659520019921628175359235135996368818748044580209249920034299479037765884476787172531351456478431724728385775609389509087220628964891481745848875730458829927759702637292616453639322723177532492041513258155255549321473125605164701408114907275009426815253082536199148578634170645146020834077645244882818196791190493453356164543401092270519503727475956940132702849595441665314718257275205546224682045440967559817587317875059588574461633720886703046975999950111729192834076379661415723053197490266154845441476467075530760759680287553017123666935163903303862243347096211915979166370713516800167373651983523118250333926081716666876183878608539729030081862757913622614678667207164737942094455200776313308322865150693052683118813798088323315270149849361145291186726599382043236465238662560823459283749076385453654661806512909568610986710299524094430908408944482792016692297816065090368541677371233724490200694273252074170306354941724423404148266545431294092600089962908546995478542462847298003044140780850260203113070552457462079487456700103328459288453923248309058831288837983753878812585891178800791387756518146295202538430866032047205007216120052163439538111086359174724561326419254848376906224053466939850109266819065460848423902260722460787944217041862843174715417489365288214586626309741330015585831172061899467780856315741956373138160194137959317025673086137758418128114055352788712097345093388700667565283674044045421150049324669652347450724134989347555558379315021630243633081689396278337279767915657431205698116110174040548216634993560360880657952515179081081278828149505754870904875989850155166748315830539621552917189729024933631219612243557595945583693703971992752608605375844428042831083958051992566726469196119495778973095956331804025202369370896893334133967766230202329625833581080096751805113679547941622888826453907390966288628236761635570891290644374447167319753615485379929337805472603037755792439482157515817500643966698886231348958066260551192222613137384379378903101818462850249109342378127429685703114265362605059812327460432644166300703526207640115934125504938858305101877119101044420887913330960441785953701471230177867423990110468898644079554520248819704894631885905246749772443036129440938336386660198520057376028569117820154374423214628178944153692384222553139085570171607268854143297396951909307892572992988587043711944439114930240434968802849470514221850144599868123727586741690541925360455974926278042793860804898498033669369614325862098753045195866734233732953198638090665313457605728489771098711175195422660771486718016561255571335944163414255252848699564354542447135716446911396617320078425657084960051308016607592275800231405677656970781608557254737898890773206070216828313627983177821317610227264103749995953471620486323718071644429368659145144300802629581652699454493257124555002900218458751783523423075423265830112681412781238031762800446956101455404366947771195633591303631475601931675944217683316239361121427098374827178908781830245691416328183659198272774686996667054707546152332532413519792758452959182594064706200500675074709533061492891444672500886110558930755979307077731040054720093309103868372599940669724426106543490136729324637010972738304117131696436789156821827481930468585492425339132861148598239332733233212637110539884361133185858271811635282193706732441001847265820906106961487119335442972381587716966707178413157572603101219635936071043632441352503077390753803786369113503969261337388247810267439179138012410191831775883583081214462847669653795459274915518899768337599172817616088128535990672963824973897782797348612944684175698522186908263979553426592016068866461084260400909227232765391176800374622717789331990021563147598840396309664371367252025714009118306752653470764508407255488021163945667841578120509973664850051050871681890439680657922274075568118677430566136731950167334387426116374865088686117478515289663865269815751737824993152400740895754268895036202687575296120012581412913851236689794952688320789711397268972913238166642757479936372467581794502699390179129548200018514889627283864335688443064895440435453780530162045080155436254231670896067447070745926892406274645366307754830742193652406232834834688550213087008387790759325874651441059117480810380124440660645904308019458049611743264761177223522664820561463582624925747379601498177355855896889013246358464933670181561099493677508909680416980546152624653877857175951504053077724999921902211164713012574801558035872136026704626491750272952830999915369736489110662125996827495166796792542143066542370474783690031004755073221209862024891217059059338021550588592237107610453081942618073139514037944199534127041053999408500416611508298206359932423978094967676181555101626885376025897724672362559477072372213909424465151876363951204595269593812371636738098018083739744830027591281579895888437690253740379991754445646083596036639617729492872860403379542360335151637217890211318072322026831469361514910584390139656499843631740423098899690623722880308795341669737005597352653850681923505420867723494327859164360785031108502208219836433590220763461558238148056136478515301174148281966600716163405819532577806462660900322638213542105522788972828123615812095664724282078029543419161129099105767304020647526356326158972689470114919143488564387490716926279918554051213651329973949217509593141364711019789093667336494152922958400495711109126369739609150456508382092916160265092492497975612556505628239791329893665800900990074671821540364864904050561481831020538238514696876294105412917961314164343304377179962419573835181021005130742407615324637846002110553934784376930506180879107428880910817222264982355417862371680249656403088872356047158685111406584076435751962391649192335188858456469168247267363636676077366623588698891856015033138420041400019167243292681299369598590634201087462747974753412521429786904746485591180300648446314500300153891263743587255105103729920762508741421249743983513426907376357125087855536326162191353855821079026176271946063654849283989981060231956474386619527936143432646891994098404681213109614112992349195531072989877566504336724527865368241339362853550888926828699730776948207991135778027204767336836931552191305445821735275106892752232011285737301593913937804864886175276830143536468623811000556841267184926253164090301897813243610914297545634425146395280168174354122798098983872164200551488558642615050927670373566585023542086521682459365744290241487454677624037057301775151627076285641656289455941828922807277709373790526784175018697713226322391903115216808919997049696111122647753331058938549294630163153066172993921445680921316365476647739526431707258761262709996637984086919636386857838479609819496621932703489712099960065869431146945138457752193170780779807932809732132079274030307720461768860352405788795205188854460457975824502940376273730212677582759028784129076647517808897099296048294504544929580490570583608948197464944926690049202162404191638596018103315825273682512049664474001064875422470891841694248429366532456379552858385591108433948903681953327291874067616476317568442457215644665404715484234661189127045624201283838409266471100377676096993842075890979604466548222439790854294341564756310906377920545986053699727862415803603840361332363955089759132071195914035565877660195811568153284111964319266109169034110563491783744975398079593663184852218983224537779874051955445114112605055426533891982613874156479851141160726672149162237910318286875804576297649176457888426076375980098171554601644824180873884651078638752787034434878293802535715299983280679449966836879905404399294053996611906178086238247073966408247850451524102984467055849256528349671385358763235488173685365413993529070753938518826564914241972813069513731765771765208823323755361506099148349790985040144403753314339253094592604693277031582410824569501949052640191594670563395821350391367649352529511521233004670351899002427550143666304314054102482718001601088134919277564038159642180368110492397864251271068161589134044539951711225801836165248908447503489172444386610459695634278570295711777714098200200551214805413897092981063899480852111471267932906467732003025195582940552950964679918434768397853537146323913424217122008553749273337668726588805601401870067611181663919296215308130869829843306303416254384837785744615545872927199338953839840353079895447030026256098389690792736468184168781825734208965630737404177065124327350420060452787675016367573332672318185082135964258241214331579225494650779626826862037896991695331457430728697333702460083124183457528771641793881384860947410098637241649277947040045722575905642554679395338072097962568411481600626753944792861795559806046193102052109926980973076412569535494824611900080043635724809373490570287588050912369005865628507167540569240854786655609493468948011684196781890477446744367503126932150007606753390558024879882493347365331924592234275900305343420563680440844088319541420464075963944970393545397853323983895899371042363052423120440548738454989473726030947230254958203358666298589211072252930365283570698988337041141271246569303130461663058120094430406728945922036992650085819772580943462411031246431528808568394900289797440440407874180279692982688714102689212276613930028783353141510936614423873325610795879678763560445829232272611339252566324103829469639180735361213030741736007599428335193064711668286644418799112689186285047082258097746356621182133295061814753781394712338155642451712770996498055946642924166776884266339970168263403916155704037044872586912121785404839330775939335536375968444367510655964793944711968386696009146553687726889637321147135819440872678617696915633139938366996125091779910828156892525009850751316646109359643483812196976887170568412183221917490133738321221600932074103250693244880560993681466482984008674140924642199565001969616620826926355603976210138739369291855575693736891856578845952372869691906009273770016514536784178566784672737198700457327509520142897193120739001865773311969991649137390519192885652124749866563185478763769209893827245297873591735538314333971098549912409331377018358358624099428984796988506135387671400827445088138187367762648354321446776104764562639815271571617329388763120434854468221640184998652153701211624497040144031271524129688091794558206404215240952808557587718554648024755588731585293330508400580768109628231561033001224053703346130112131470612261036576923411278143470574578194389150828292851644174641673297760228147732047653422136251907361810866468661338708121821468769791857619081997575965039754186140084755636770239241480860953820651003095423544357278815446722596938833126329096962612449055734181486404082180887199715341635241798521318774078849039318882033238915584586530278400896016640791960664054676192731533722317196360036376467603392746320934642086236735443713367606138408397070183828330424161307678892436966700381666751021656081922431758500509280179849171960696046961941061833256776728746481808506460948010170574689966807677588717224992561740655519647533711026625082200614643975928491180788439929829614080616367947137663897570189176217371950292737740966127963226543852140241975957674573623896858025756373191244220514439490317798408302216122885979141152649589754910028136490484439916334437885029010484925682635840378550138101949967889216221153914284212779444010154313180307014944156885942456901965273162092818118671411468818853730258374666427673071879997721743252391942774041214558775678681965345763603971365701808451195001821185805738871416612138151539492733689522262585112978982009571285108855003855706099248641916132519881730284709164707601406606893545297429294717970541720105373075273391511625327169157797653375484665929751887639725974149394597442731214287139143798269510482567766458878683287134934115952264730664127866311965946821564361404650325061262019188438295353268102259732255845591903520070836308757981859705018031944202631587573850760306672933339142219924544126119236743071988775624412010451834722377628518701554846862604702012766836936603317233604843048053115451484359677011230694170406655288659795837855561790634448787381464765928510848723800727926584434438747955645500445912274094789593115465328881464842795398512319564668434237378328277506151939231174108146088369779175385240867643991199057391441480633951159945741518227385684319196218164204510512578682133715541535291881815278494197360521814987408236796722685170419152950398035554078946668750525761592907567266358246487073539169165210004703614801419183005054749610771033617373342765771898629407797248033294908149913875772126427324324549741041953901557366269286056243861774580470268983859198056712622214769957205655545847120094926719398075685559895518565763364834992863525466968524472660456522739978245156753993452703473413733657306156241757984512926455295733250466945894052827216038899607068855768054010123137001500655667932944946351127526616196890082130396175204789760810285176132012825526002422015186692580252408776015263373212523379007747216981972611099406763592587943241272928141679144717657486704996705564221670937934323721250529128740331728106585468190041229465506848060975166378580995777194975078863043369884641410413948294961424294615778767671922568427898226547529211300011013322925455280976655944025449029835848782056337763203540579121325564020418396296814633731433620262182560062887474600534894414420509880117378244808063940948981483953711912230401575657607998143236465347385131099749345298139853373236532881326768232064168802276370396178760029514721512831031911477344428722601810943875224047439901866540071852847026248323087188151237124235134483950837350792232582797104316113763942997636532339312640216459521090624098110320953602736487353077730973879921138322232390473224216826762533198149928528325810685345392785365807266937166431804600574784336299669149625370193019416340779989835711505530272566917861267256079170293299348302018885271005495337893104764515201450834103241681692745088607562950956731297987921341427822214299132589812060283173740373402708837517771179321111711515722636236571375681364206952888477802111168858466635627191539234449893584183156994212196452064909716696672454463927395494900229725847620373333548263850249624368785122540695518973861940417395385959868175757813996227558911415886892672976744611659195442873267331179844806686552840511866127483198852256773816671446976821290978961750774978974862575805611258768337998727868064461384644519350778486687037233723218481126691864606605148997907927923571968452386590521970301881005702173013198475723250743939452549076957864622678888673917180966486575679050497785002300051018987359583863599958320982973041691539204596463075581606590560020535980973503967793002802411288340728134402452089210003630304605108210217464048721413935136252269183058767571693787684312508206829628736699819354125840512883989054108062182382946533675874030854749826078577146010805677745414792594888042540899632772419777570484122993076040073515263343922260905239178645833216728693014153081281536074665004876038752172333768577997956235264083704530461774544066290645197538761728006240486421875586230412520526210526070704480975184912207152322488283467211590202716012175736758015492221055759567197142429824737402270374350996879376911799970329698834217607237407598492311786507903882945999464517262162230765111482913777736739347979438752777415668810363828040805984045578934601764772900584735190001848316076188293411318471772139617025670767687041800637299280003442869198822518224897569729106785392316811172120916778100640221627106330967969802824027879266132313484697764273701597092502381350980513425294813135671691984041324830405401669232778820733419565528050044489898333408486705632208763523246867119690435171695584475011800507387702526805692216712422163138728818508257825729583124533395091885776292769378892709690938087822089105098780029761666800384727205112867972386591458434587843600920004538711780043919767329197782606009795879922005109222160992298502573068748125484283280756560342323698883627983623149835979177334793602194599639778710907210877454207575169301806888788490174614300974265079531751340914246491399235138702789514849239198360322413803588284917367625580157823975958006178522659770374624688520622251148348939804940429435245775432351006908724223802369834930361256607646192909644684537833858408756967064678125362816104977588042044855770724961170133810233197812513301394487149959986117087497003659578459375760858015629324569385396233512717231573888756627389124538730159720928147174204949600053517649247681534460163467439002257239782774429564117580410465361781849216668600625974572918910512875916676378335447901094615914522790618061237844308967469545957355581276209726260416636319486952001685235514276550996361223930770438270040820714690908812859016203975648043755552910313148918813734372608870028464347555427093376116558220360383931896858612207223569813792419247217397532102713236960604296907728736731597514851843431456336485072139626580293463021362792019029046190898395941844878416274014219779025543513582098518464870528870641078632599002634006294126827528490565559489428724921503129629115123223876230261559544069713693948187099348407798176774574314104476947505256336005212511741565523725415948522828796310693647470157732425093636452805520971557260503560561824633407717358061047889865683589251463101658893674047437828277872658958937240058065360968953716145432016411500654549423784366725514693783547813718813913644524297000763975411245189802343733174771557066041762342528611132776949488145481175117103553493076332418161813167059503284215670136996040571036134895792934989507232073660658849301843091920015449216340169826835780553384539849691038007053307527547226672208176244627285939469066742229738941036909475670314296828559692716529778590523548362680401402642044235531651257979336477163363354751908830285578567004115928839653639815177276105132733597982919685055955425786249550801769909206885111358948097269147566327822420497591839221146470325868711125822947106851388905569663947845468682771855332235067241821357790883120581592829552060235250806652001897755022252177870429121598827312959557638125345523366141278462244182303366787922882925904901546159414825261834590826236317401493110381497141013363388194458307855795139053487902347525851095802294111351954305558532795831954728336059399013976220898737754974156306489443421826428148837453177091927866275939882916414940835437286956763841148714190620062718592498309632017216732564423174415492875809548868005438416712585043110757950966865327768614862288590700871130408588714364388633110711045014990588711654218301718068023520334887436996956037999490378128422852142537352812698138997465483838383710233150922775876187790181866875207761911157568429750770037139102876649772808317340465240179191306646107400322200813024966253514418421731008650149838291221063835305223608705591839162377067298542825284177803956536676921175827115780625413954801515142988339856334062974505520145324363929947435394355455888085527898937718073906884536609754030732689431995519427964608129389113005108284291608201767315037938535584680153166453720910828349154231254048594357537730767565206123280161330870180702029667378820476182569769405539671553766700875709101976237176532396749811931094804840528212933699800158721600591904681173986216917596216548417654478135491134873079471572262650777205047379918744227923066846896135200093072543897057049250665837105457046888089844536019786149106470234015623537976031782427955490529623672447830334664193065565561750396505533189861706875282718326391529661066661547046043998171301483687123958313323943275144681119338038029201873833655529812184604291907086431754899790050922084184210621922596326834823456255191687909921130144158879210562395446644705892459787547599034067851952285730763504502310541195511876968123251897062217512633428462436905214418956279221347064894977903084752670518831539777238595603109974496387867559483161310399632168306436949758529875371367858525062177284447035488758746999221821019268484997676315724086651804385706380913216204902794614737002944448073471433297619143831916766933416280274181763005758795278491791562601573451291813212431705359712872455924169738088500028076849327306575780445487704805752264297626597425131568153756278725135486002867979412170572221548463523218079252563645170958492670055057591380042723240650167424196013442405916200765811057972815049104995550559969667230343464666380841340060778811536653395592214064752941361299864870958930047445626861303436911222404704405909964853368793753935394630921834293453561601544055628339276620929160346059538023160603617178703311264243309822004687213195944083067482825184544440526318917833165800968354594030752880062447777284373344666917593380105432523474307042157191938114344475141435103415103794389650686027042422524753101714996978783233981294551427549341050695356549316877465856618374118033538784386248065934052024972582174173804851049788595808410121029538932140861802877883734312297630405675945578140357151897363914122949758564238254124003544171549648744910987338674907148962833699665119887495078389839231191567080930025991938485721360462653893075197017782406920762562726721502480324301078374995262606085143015861043048097201559152015939232503881912716456170027045598708717184965813083726589904272699042745915225424615811940103446276704153216177958377646051034773189834183559162784190343089036414043377004620586437719894200962924045583392633210864489972933367980656406550327928724441710619798374196351446949545402123087606743112730269982951801463834496785403895379754006901499174332241584148174903247434727385624788578143378475659079884545205962159538345676373579206769553536883895864962520653686345636894439597285382666169428173360301675804119996084547297380289107290248206437299729903100987720559794214898130360317023645244983143549211153405350005602550797135307689952622384952765328424670742973263536843829322166249730137001396529043746578141892043743364989607990529959205611688072034177377705256702887642829843763951965752343727936726978267131560007577175190025900659065251013861443619482828717007837387301273035191811602955820999514524414757573231804648844575592651098582260357237330830086489872355625678533407660372198251588748759293355551550952132116995247236510244432280174686139244376744353795186122078691093191910957130264296658265182360465532556643688381907123001616282377156472998617796652478721080040714769732126827080325356527967427128690996536417835948377851704698934519765269234124564702022868355925364499490857328625240781080840589735221449420464248080984841885009876530041438543271031408545812028630706202457736341157380314935904652912690287615707823328843065551374901843386820210316931511541138750834492159790492678125194885909732679968074327945889634290045137769488562648410808022831728110744738775468400346738117089586985272557735328574282061126878940087452221056392142328720241176822252482155930260363212183948994932878559553095980172254144141115822258520058860451467189272328348832840873719267434747114813484761194119524307246616928066803136607315801019142488694962237174865805494040872672911180624851993105958994175112903081985232288734655406308211572835565045918715307405990628068427058209789512078057222520876797015176328813989222437464886789485908166689637486204702195891864454787950048544672983022392463624246793711087326630967680180521392653744282959119133203885342168804516242999294917426876904565283554526734063346352153261911309638361832823651524352956479124791855755253742799719333528631999180457986895301095982757397145373344412300188810098254543849164430990612545198975286075025216627537281917590444629234400368836493594821930335710891017413077342195901048071969466323338574170400872659329928240057585973420395272446235615139424694508005202975293705551274859014327920783223910728461531560994551304809302835968378570697102357783450756116509762465476091620363162656984277571655486231340247069427916580288867815360897865012664792631602586561198156797519552650065127512916939212830068205670149173150388314463346060562564096878808497066430525216813068582236869769039638433817263504229264285668010134884997737220561775055679431969188434379097233711134196776370897938152767506419041936100914051840806700274355749033107204500284627204221372627777588360162231881594354196643193262873583315654205374806298689318885955411034712531263274679104534985848432357845880730832373968095628177273302442028960701446603123468045534854250024332465842329424282368360825751520305489289042685058187528430497362176497579604812645351165806646545726066748273620452075891237199353119761732964871297740598968148379181525380688272930963834574397752824596052762465319762194260078387349302550050632096299196446301671040191520770067613950173417728488670844803683453478922658642813308383068777589895822264105659059093916851606806650380111544775124682735926725964803391734595861233962236502467614970474203329680532371991220946357287719722376578352253777809206164377502575065302971712111425320416884220775618691650459014545909435335973571057510662293621213644220304299547280495794219674578724410734549066183144001816691876859648992185084873406394907761081687935942998779385134811351496045821631163267319676437375633158801345709975469239829059527939161360565441766053077477717845096099953396671009540082240836138600919956448722711494993367537146143056862383691299516876748246919433237667851523948267282336127172290823852593792357414532624465252652411881173942450998503074288294830577813033784673306334641036566903197398608179104818169858393356335168975992411625495083635957042539837580495824935595005790011578973071163100953863669572567258313411720073752404232549434927148717095651343799265955241635884992078066582803464303797278011128046777325166715889990872851267011005960241887648645904562810644557102040445826875041043343413325903935813881161757769103383273432322243247997602722378605131771438648853321924144185026294489668099981531232805933317788529503271443128619701555276339334846919609638307670330058859340257473155575149975528611007874889644259767973906951905728181300004591818684117680403181513409784053722885523272281095147960474204791515875894658751178444306044325680863859093902240354002687754056951380823020084297129285034443427877053582523612152508011082110589014586136767342999037685292776647454705912080395445302827597986526932245998593970531480192591956875728037238601667319474846675231049885514763862101896175395355720385735503181523369781597734359820784463215392217535970473834881897366678987721723874253719141402614743260792940545842769724907487177601955296249411289058596993806289647192379255013015611764329745152837237778896662943932244656292806903988933608148386147181112579959721715471507195497211700920908656117159431486376829392775556044443552221633110365114778163996154196176606149491595065797136809407357346939372805567099022460494503471678602448469183737718638592370116780174208100103836813812088850208244371214534231242275482812098567577372900737742770885454447520189021753223548233432785390087890214206903673958284694297491223167154341352462315568535265205151654959463106290785223017838643436571482665408543818447545245271588918266183664998640854418000299764364083297860354389762128456938108997344396919307164108560779054566804881165837690646690346541747368556215437473661962566529739587310372278463141741220539943541523433225850205142778038153740496558628483682478497053532762893207388379597446031171530482963301018418243582390480495691347453370416882960980181455032255491260283291093005811101879337110460155545227442267527152130019468727994065903252932025151182592424644337657758310408757262181721814541843359042539270421237475599953372949736144057531445388514750768699655413197833997555880935116911316499828660264518171915219412855362932982439948991460759789317965176768857416662851833565850779466320995881401417319717284367034149372541430393807373015673641355494688673281644994791220603541515521981233152305907318761513405268505757932915433206603545801370257083015480902684959187187126085512971484858802623705967488062518262941513837773147410320147115984808794414961776284371893233029914902523537422867020348766340885131481822013404661737368487108313624535519358975245740479273028121470039753382127051059204524342377124894113242569151854986843002584396544011131356907760203668271631388624081537563364584056531694020700372977469066104702589728215755376434491080290301921423441260326000140744093331167107721412592570981486922226818514245456085274038979276717472266716970215532873364137913789821017827019138886728151499733731114223032861780902512542803173543161596402449060054665256047077605411788300794422497331131856772874561837450919129844668084276642963330757422985345062420222596987292700566947182215471979981136876953479448096580404323428868848388286053916479113993296090558648085889947447488012893099818366307398411760573476549945746259319375423232911902943136388856023886028965498883172871234533706377106528095965104327568744689469506364233970521997014079383967773518295062071905044986203743167170211853754645679694159060374357812360403244108204219885642906413994833910482859949948733781284633687572276534547609163596374127227379063116366114917879998542297988008117630388220954814462718288605864382338737336024469476734116799103675095466925799142430444203767102398582451916522310130801093811997988030284913908995670126106879164820020100765249670040441921014815735634047002840420057899996248408767310195088175617920218467924133610413299522693815896767553872250324146991228734059156117235650444025711390006586841600655034646039764089313846371828250225607778481525770622071844871984100895690086770248894311535037516721666841716220507301906575239972320065492577903016848763487241800043369806718535169924135901653607860747915267636969769796990278208277863504020310694210862413071316341352390016809314280665300484986892491074596116619856538036345017716619148516157741690372198009750238566258275756766120535939586639097141284573191578860248315694137970922012699478838064379900739217727222913890602493461111286400088923172596205039629570281382133362246049310799871376669963143147164091802077593899279523150558659284546342783082099761517152320737221011577942440159340711719679132605790248910064771377815694546270029635685884300422272672206920206568910148430561925288079670693231618193998167688123847377530348322715719857666392278381783511815903191990474330581594838321844515312759792593105492588209219158198467764510969672543211471492041165632128260178199455272634601576870485676375507273980903386332265738626819062408344737952017011051176348077735469865214243901454520489237556509388038435370257286332873303928317088298590404017379368023947888869692491664249919874144902506093431402911154721489425193867770809757291303124407632116461489194720079531092014847313714783715344127210277963993139033759575947767095058561930465395093920983774658523633410111980674664201281581723345782449351048262727920700915413867140871997976927248312183144232016546022401903671412712181200128307674319013211846918130038442109454972795889374224187656388478794373785857831218759810928879888961599995629714683575851519622671227211558077907616002465044424027751856968173055734285761936205091523810381271638742392965915508547977780532563617030915353951312263572276901281941125303492837622256744454152140470662322763101681287536370261340378097157843066636766602505782664762107026347651801839591778284610398047118111463635438359470074390729481344803238163261293800027211581525691700923443536568609121986564915163459972096494765325799489817505915937156524178247950689118767092589260855128142391027041429759181025358606581590458080364069505821827354248146511590386499469594375594598320958444562044745617972094203157772742620307906251752535280780354412907491328785028201368906183449406581691063906027388202016706718355694488165336575214394443660695172019932846650398143448637496336575680004769709444806604297560564410746586555637147705313014154827847756945649831504496444907263615494884860815277061682493097052731418200305565348543643596853921685641135859794203599977457175006254696034746548746730777428270929897500759031214976795500320650813127134442695196995434912006383657141041327073781733342876455251159752261734339182166509571344070368716447262049352053954612515427129464244987923271657088205984830498392264963431706636396736879919436387615607771420543443667635848314990397884398613096314999474505981499128568601102938360153426078622226674799533530764421378953443896915980657861629996677387266713495675766786254089153903136081428596954468462152174924807952429601939396511030384064043928208902536728228807327027547090575368316705883931790899009310584166482427815835542676184275997720275456129429580104881867874019682522647892576856442503549443803217499055525351819788539697985929127915526691629505984336800811202521423514157507760535458312574343243509047042540232198336468300364520682963053410879454213280553629037292944915510909175614968429071887583282813646466925203007796311912389877688862070478279038091012007821754454643351178988535819042891556105652270327385258122983219954692022045167679100917992538545198453977703127465407959764983229369090745398792677154006860845636762167352700956456998740504460424067775584088079511893828510259269356597274753356505423412938613896568097704608411217044890955643860917687110388771711665501903528119707281930948937466461284288194071295082748905350860427433294051696194400645279831271801497722791784363492392895497427636871566014375833011632833544545458574318740169872167836690308364204917687038347341703980857001021532847458213827256142384921120076446922755672165173425908189979835685901749222043295148200693918803894420630678637780989745370277835771322081323512232803944571393769332350006297435329324111972180628353974720087580043596276499029006750741297064946216252236416339562769662023675832024327489699891145737596651646721947171746245697605105136355270253236785032507844771053430512277823547803726361952096249346090221634867602074032202498939562336428927221941874121720986447471162463784891096778206761937229334684204148468515129054864375399504413566721845484458597370636994924189921238448998214921792538989210639224371802299978264054784749027873321190670433585409028277414501645774937727790213844462942697182853526952984777401289557591558944479672709091571975957481389152899679014758303727122011014424512667570927689649592201419943078834649822860472473167496709597383307817460550506244192758444524805145491930577267920915796730365629862033346318371894917531209232120594413704530138435772189405753881046108656131797696823286763902213797700338431284900965585364236850002336384987573097301451763652619017528902815494891855492055380359432468621113553583209398761780628718282570831347238129643265712652003301638204821465742339222283252698084381459006003271071856324006579201951385052462323644382308376726261121033557585867669609828492891624033773908977977858622177466250471289700834469590280126879819734364501685303486275775267802531349645546045431545300144893968774774233687510790759049320635445993504951368914839114370755540742460209351770821796927578479060384932037249702772588386878816134901074304003299138781471048001221140176507495787043839328354441665760251608268785180137378249648875462779656678593019303884417677690579888466707130879562137796765856761677136634955973283840978586431478566343340072969577968165391276786293300395506861404474554106634639012251065852528343999842933569632473484257485494203966544318806961695044025234086028335900374260248381918278309338800221517334049578431277506850013607269510075264020666532092742766623375548093477499024132307600439282784864860060186123431659452309015805294497448693615781052916012342782915903073042920017693909549509034668616933174925500097259532547712485513980575571211723645877512650026122528775924387318886087185777551861643995683103129139542575941357068578404135624960571714315361861476165346592682152634124249495763860406063827463320247491480198428840733767480060575063014948344672661990381014719284594846785806201803735637370082174794696250975836278707824575826825240072910776603772137218288489917234513761139755161718305224711906952348214013593870394533436283591246181404300586870823870067134484608988160185029431398392355337756081682395206203217118438733772449145116393258749917855149169571987754268533575232306456525079605944890856980143793635425762777287137009803930093651842529536785522615675555787501066890887670498137597058835832250943716761041726930240080728655127783341744355966752941667243369132564281982472553751390316578736172914009509232205138182575164440402975999844229385604200459318373848790052797855137375282178283202958651465718219666629279411004029556386865029038469389322297617803508229933857617303866345455290041613077440368968999468177878714482291007580418278860335039021046887640808782333326353165270809936489077128851624030149956458999834565469169440332867909417003640347906093852075825625065991732669048449787783686087813727860632515442241097324031773082511089344463650740489810573163030070246423026968182114536908999879381188436766746014979842055287426123628487585881173820892081081774964752945024124392587069408032633131185700202251187810939734953851360707450784683931784894170065300141159524175187982669454562544675124969196476197180550413911991980839762450797779238001963083887575331663228123680634660863725894012233368869939224244089464592067532084826237806500129871500246032646975913473415962861356223222412919600721011402060197294039984925697496559214514777675052074492047201786397458812105893965008438078791171865938326127021625456314097914645845496559165458090179193034697802166891605560181186563691967676399276021390961956298212336447340972639247988043460901834199247275184973886574385805959261528821165324720353912797135095685890311870722175132283494284440852411845913547499370338101150150394874304825848856374480161661899059675299398117540270431688652566705227311467924653135112476482732602756691489066878097024881453674938670874940108626671596158421724661911244564543485315540688890305714530999031718473662661584467447914655569637098023515233323137227510458138123884987275603277691146515826471717214611017302130765949921519015376093774324223413275520411412272688387630570596471439629819496644061646065331256679045492286363445108682959686578584588013406658284429087872722096091524091886363028183414632206635928994593517475048573250414080448568472400303048101227334911395547280977019787109425967564843645727308158279089658634364608135133515875760826614970257875593496806201497627956428696749500310109421658407113788070746289337935464817815143708605245465009068804460276392482720557390730557498052914503041546545920564962886583302647171023966971833617709365090971606416957465762639823081337770958222630900785550012737822676837162141525987676501100544073451930589587417410259654210251899517392220747003941139831183812376464028874228680550534680422962014125679949763040083180928457522202633235657240779627079720037589408722767736970933333513430684802176742116224971325138607374892821172926458372911533344344360698615343439072274810439237551165003775432712077624539203251473134656693455977603948494807057257845421775506454169657506696004871587060330400298200824672747877915951663458190550363930986303933594902849990315600413181950452986661964513200236927282541789860871846783136445175984132507646288477584061792038468220964048734041595336559859194083552887053156370574378704161667369961633170604257541050195681669917010239096948619256668286913975624299367328308090229727578216825196270347962119592073562655259670762134742647268178323495353415323052148127112190006670377511153633222859135067256409047317281388229466171747868957433031899884988774207928653267958358794300900356551843652741274675397560260533505361416210948601265837533129657251599224801211488634352657561795323371505166196071414671101192435798602865125893444542903023226227335581727373847753350913527144081907558500438177544960932738902923021337098116139407992161795016792601403444799686031726126688289758006337376062326964157338333635697393758167734446668819892907622560384567891416902809444959500802657410691207153777201442435785268713012305785351506795021344451536589018310715583597056701777882783742986975991440792788688020707560048139979978580635892747780067920379221433745197521013001251356141820302602796178678718544614836738861397257640864549646327666918057638034435010115190691073637650374327438246161375538155154132920240119452317926631829505792903078042674009433063575791231816218247095334027628810299165652813393661273269353077756136552461476388355754954033478203801015345753815281359000302288003399867814600526335810978866536818182155915644769182412741334080972603117657002097886861047675506741364341868833163626231894309261596948738638881134930799762249091769079242844925644649405795330273503582485243749165504309831977024703717180320105553628316646452790872124578060411205772217676848968539180978590264244998621513408140983593772006111968005541637141579513173705085447423146149609766731784125920471416289219039252565558180909282606049932884730490673839744950760015315914977526166962860824306531340855514902410685249625860356262028879469284388906452923889165667979853944384374646340638430981167937998418079227249887577264624633294391075784438515282005493662156759218031757635884496021801942782333277088081585130264366937219802192462669342121236824431965599655586786031328331724315370850549225918519062403978604199887927377605036100336749560659920709230389123943467256424384530409343317368614750820497602339923612573156573586104790284212643814964977792899447601604865664725855161199951472551823568627943970954799326614875146538027016448786406290755849420248581654965369710819534919050857634543066377970911334120458261966344419775286872650347248267272639222158117479275152565318029264093166379367122544241734010252194748285870637264604319532495028571697323739018411081085921449250794439562727919025769983371903151945701497751499396045036461978664931877097056185020923013983211311980803778660896478992891860003804152247065357533059635033480465247831150644435623652443756722535044072598181354637102819367288514166646644496307954347652603168772041597810167551570104727675945792451912953519714113054961923749310286869092730932860517122773303879411407981763746046155114270839544924591016931584649513494618805062287610723970334631427663826982058040500012674727707676833146528924108557282947604722846664927474144600227716541882106351904995057098333434203688410770741615976181253032795546470437323176939041757786952304292011387180945319106731505828096278449028510675444711562818566093107247099244044285470749199590316833617692792754504112993576445456474108530835650708322554219735513648982986345933583853378571226905579964392528333623212736298245395031437741356203911530116075959969711172677001764271641286114374321267085172911467653258481632881653189248887453690063630266205859318415362989871416101077004695669106003898198231851349761865453801297471408931401097432843340747757509552763250737771162702256228349863176063994156735401496618776961592796682689011509077786954642445574690160575231337309196341065887045088392900649259436619694586150138343560473735035646190199698260845713946529557004594238778729553812923404785533326294921565658942823848959007857105213993675409368957664804726319446827253935269748354628763168004470050600556967816125302103177784249653847778825022499893517785314390781812774453749924737435461448263173880541370637172749580636689547378911166483468346092563990106651280436348018246596648155842305140038342021097452830001503772132044145863322425964391703812814358443940519815534338393161221459509222727305844499388824987349426530290236018287014612491308309198871752224748046147068240351101304311132546218715346714842455354018262011577413572270603234446897237333756389353092092984863056144983840346508729843404976543850248824531877005706240929868238448044768615964631783669248249434225683625701547366325153799969218317086415386344621567753615745501132203862059423389958851009158867425700844950311200585626569324944600537827195491061516506058823976822743807532838471914674619228829802975885100017314374411732775762163788671407448349359502853247903801854094520767133622150847845098690853053627919504600034350157158572345501398704268234155537805872370273381883191709959499945750795866639603100102140783266405772751655618599755031139125118240777713543933980235000325259529564739189655942662572838818585512715793806242814397457675986753392247777153773343478980811202966710169629658366579523114270582997731236022467787171597236711949780890644485698891185694208247019929382549218044985103443962464574555106684659243889859673035663010352731402937918268359408661924504036414193880626201308806264873487480742660823756442133152011812212723550214837987910617984553294187793495490878910482103176052069742122619607960162531805565124139851067500280718751821104652227553768806120719782621397973669091109186236453263024017566957071205992297892685017562931345183031659888312179656160289626618785415293026902344780990232289323874966319303534028102285396410955877777507333228082285603715363494970669157407821028211176369164347067556290921721687628684486036810888670695903397067897763826241112438857893702679118736271376418109005938473906918580764811169009992710037305413649310426973777932355305488005903109685215444958181875837480673396252994483607926049823192632166342294581282962701671642155289900171795892724282407900272940079888873306094112727457531979929811312948700581215310117623827305203455282820803253605774587090526949335774471781945016977257112499895390001816965815158779264168209200615697399231173277561484076852322273528491967390107956982696366636575082411344960870492050089789511348403708816883824629187883227957382333468396589463118291500717110843815081236245505376543694841800173911975297275305515782331133003157233639787374001349164331841829916123705753680185236467755886573840745920585314900255576580291514907996568230771991880689828101305001668806198838496103993726944549058798116930965842157115299088270926709503523644743020569846822426402172566536151544432757907800060670246464627499489714626195529867624304878121669705947008989676612707097766953602552167011850727708256248386923098054119537616315528031877206312373379866264421020345289988182723949432856762200064554936805651221179288559524943344402452960009029996396017537787342074790321528293231645097161444340726040283539128310866785865948205526594093263438745701306282540887834805187163504391960795330496012393492947186612002432239794208874521804851031866089359428847338321861410487570782382715155290330819675288977827495065317630514185219473508001305988911523266338260098729172036921870960756208588377014042828884854230838959288830771822162971587921113859905239882577047208744657190756108690828593790282366064922358124793391385903203035888974492583856159579232802525859177541909696978538410113491134627761894230659010836781736477713928056443521727860896320910994595433804235651261358564182294666458113138524204654887758257017320946081655793936898430150010824906795755316118499938862722522115634957901223341822930078067473153030333919735451771019291625443455467396262918803198846735224122491495459313262408017608578711576014185892348466368691183533243014182370442400392642065874076773161952723804525952036476526624730980097129273657635272789322884466497793301223428581001593612517640781287012027648237163695625003523687676167792254101237482207584042629250255421417701546207843196897288751020151083261621961079836911412513928866575212757882572397625713261935814140235575919415346836952627882152250286488823801097423947496018053117066234993460187639763753742615240148250281838549634451593001893709126251113862281451281326211448198275213080438191237242172137194132387441755193272888181873804089524495833663738701748612351556797398365418279637975788790911434026656864071476540363558584323761357058729649863175405544415291360456945796726448719890453554860530292936696555033090331321881794312120546569625484238386922900916167647177056763541398013406523267861786223594232401420319506076975544784003077587005712783205541034682228163400294833695213210264204130018108798755132617562458073811755513211469365196322608129573268144065508336495047366879766202018244598999173046402919316279116120013339360051732264302395781211998902098468612027699398643621226497298125718620324480800680282665956450990046861609419039357720993103263750853364995896530203559711735881073528344086515840121968671179337663376624516979908234959668231930032309333757326809963721908652746382434525756026307625315162700279900446154653291571203600644856524916095975005382376546695387016368680485451158916870714637629367557602267447395814575180985721820281664136514162537861735760639178661765161874081701936624863495344514067310931679704635598425443192756387295155485939551388633999173942596910313646929026592429086503363346245207837961197175344349771468347407394056564942080977588246457301922033790117959689712760074512123878289940039610615506352653850053322438451578269112792553715757311541352489434051554153193153779596243286407903998637135921804640332744529988234844034049365252673476284835500709786333100101099942284335998437919368701326931044202093240092168567010019759134888879433374443670293226315761195530245054013424801588249529056897772492467952899253143841143320107757666388012096206854502743678144823866422676421286466312943168813844412333355649902684427627439285755119174619469720441277602094931879679074279109902996668265737543824482559503018275085704921519801667406121141420284272235386161976131919025892098342116795001935953360314124983203004481517789458664825823116387668815678528310279459367679979494469025748195728301909602068463167058021770860020154498273005076275724143526974295864672694387400413481250331601420493495549948206359968135373101425070542436035838758695933931677881255338696521773922949669809911694881337861355136561197709658177800910582970675079488062247631444935717563801270147823501972998364249524523811861790445486153497903535103723775547088254984692631839548500786364800672348403521087057870333742747603403884946876310104778688946489564901295939676474687804988855504219682374360511148743868273510363523635671338128474467344965534059419586724863624768534446639482627573211641742601581263003014337393270504887640600654729286022490811938603549012304860651681070524423928151189587602707981017942957528850583191278733737921348221551307608126803726963771676192586949960999569852151577721043406778976289300707202885213433948876322552219912064954297023745795502510879785776295106509798363982481488959254030333347629512403827710574711163092331050915122598204870023293334727587129642070527423546184710565498770120279488890300535674708059724622843900824210609629681433475352025868089341404099877776476075420717927917809454734877347344766185233953607720133507341876997741613635446100325464879545640482250114054460434731923085276191169407750260557691750665322771372484745541536459894624555412380817871233405907704415333388097899196290127103337671899450216410885236733591973269177638616746784214682202627404792066227328995549314727787520230313331835051399577794580512084999852701365094566006308535539467280291776391712626138187198676241586643973904834834597828142706367590114777129951199023636882864735920076479975134105667484443364480605382434562645239615796341880971115844744810490010852314871989265809654096975227505973525554050675251006446756703621660248033386889044727813643262381830715582722834638230163935166646680622984334527007752119793183581676305762766621281187790758391608361025034861917227899270925794879224122587271921625717654000574298491968701430096197449694527713682318563311139272202041661936825213133234586248781255156879402553156495813397401912410115054345541377033695548383906789804546065484270656563239407235517800399193227661205773796234616333397953187435780792195958738719678629147627827002971598650108946587131512497062533745239922345588852899930721816841984759147450860147978608554974228060090020461888244541958063444517138286864406890412881420960446506101486328821396144130308139990362069480611507339070248797694101094022663695314599830161703868191441271543627178685075342543167489063724934697135858445818496082996593102775624682958534023574484703637428250128895825359874027247578684743829210587023526070414673586714691853609287591890175679568930298856330925868404787142800458131023027856837992816668217193154494854375905444219978004090635016667771510834351856071881172059732579974720247573178942655401886696437971531390382561966655692847525897615125296823881641542344898286803901358047603319928697638099952530846624579635845898682239220851074487939225667191765850833339777479366619924411559988468895350001001745957787018320520227739208993050651539729959049490882799152984894123747553619374429353298686931957668510441389396878374866700657826519840104834579359121819618337908009323309718050219120233385557243939903996577781069523153457691263978066036335681629253966571786816557619654567454045094767459354317924725481203206976005644894217245975426105529386052930920459701972801941782108709396738889998706223492668624071761963364438733648003837724746736305292661236559420884650675356303228557148139140831213912769281804507398293632132190186253461592227409760478066846102908768466953152965676654924760540231369390078889379810699046163185441632601110108507401613310904905326174528227494581047266128148562495674302402896105511257212728345931718304794337400838644245978998774231897659309146482796601791585381297373251296975526495808164436169132889823785840877824019800653872283046956011632706103169994059695095561596938565728359811907481915957261869923559825669021468454851896015714419773684567778595899191159780130288784570611486130584994442386573892373590887764297031005830100070298936497578599348353250017702034120242704672613448823148157845040927339682202544581790449815245978074791064683398929356621165622884322035439166617917193381838748732720016183388942021078273100743211501049733252642651303911252001323828427081616030225082994577591152820234178601112997062668499784864206824436485787261426878247693197502175172042783598845429690883889284784240374349677917523150644413837685685337738960839611649031720036768779517126137561100857113339290691638170373397287489268744366412488115467495908316438147492448199749196659677206092888650403895680885187838519170844452939240902899368810545653640853579474985961133326561609059055903297979577303825917718179604804079604696657977607378014967142326825313958406050964216993469607833357175777807282780748447076648561115861358651192790660003311705547144801688544278533635140945567726716684536656262566195332402829094943309722153384860295247037518623735028369516382192997364546899643957277598916511040557712392439386971127343393347730679066672481896459167005046056893149376757109591371529122265861667761879295830767700164013163110858846350123391861988104625952510711694069481431002576270172908701369972463840752749106135661070708538080943921699896718036363143899452531824408223395468540102711374221292222497517606293441633832609693618646633213536459054642504145654787693976385102709815763095612993574664850361524375444368960396903789099224190505095621037811331934124543146361733871832822590971568025357132657838304657014396698535379237672978233965035383236683707898302883800765365076345035670740037980671703935014566708958597526576613729261860520089667857027130049340530703288035126696864791113245113785739035482485357639693931373413950586875542214042774687391504695360749184669746981428897909218734265071455704443691890724701708074691661803142919904455155962689795715896214256010265118854072167515632888234317649287006206229925705186695867709932248924109144383190412330019284581949697758718080568121790978532401910749045085482592202849354140138036540882089224128454166896202408543995286069833916721282441971413781824174089563775931441088306891818775975802418457646494392036404564422624607807436507109203510680387176521810183279149907590834175945437473330777949467623224294187687173385949934754944092750776676031697474845941193750966463774612180179466824189055275798893450893436922623769231886508459455218319549906025166559148374294421493839404592400859524118372709741749940952126627042020935448531566470859905183118381084405970479866089067803248938886562010093357723901714851248727339547945510211125725512013427093789062284307710086899927803480842517196549826081390471353862512706046240220010282639493346148942969485284694897988947693295864843979173870744014079817107951211788644657177015770492944125582186111792331894890381663595019636978070679372652426160669767629860640744458509885759864689927729894089679245057804542145119152313151709338316671803536721978444476588805798635484961026736695787588786282361578922283879164382170858524421424004414271927586550684380749069108635206376698348440785596743662864238647313376676346230666226197387909761618939379273774491823031215015848972859720428001726528235454623644101723260476171707156596372689718990643358043240760601837781722137731131743433752353352165036821317318873464168976828211745153397335057971793089317330385581260663407514598376465592672818083258426147892710499147797055876325576996331963965189208871092704219835012008601650897161946999373918828520702445613129155204092453144489711335962806745793386763717958076875661230837606461431961826323619902708670309173888436039677168222274286049463319059666408756341255767745054461568757990935684766964719098296139884897928837533367883219823898343511216091941051825249037499843459771487014890546114511973318285356041903797048328776597489797907619379367152651808412260030071670336206741416600872630791494146666540208607693157392414473831763341684323762313967838436701518079346246575509048719421862703925217043397127658128840894265713415330421884918097372948086287664548641058171542091388241608302981371829521270784833437335881946247620037543479769648736224792163862391923258088476241987538091705119306543386800926058287695239508515355067085660522394851746648982779620261694895911627239728522334064024881766182211307785731889633380268094660161985253798396514170824683940403147852515624561208540049222094500577750012070594302794303252279519344813848716803166626469468092453759369592996354227242158370836785653406091067883705436697951485928625710580575149154015249685652094660081587486995709760370420012354259134971784983650300627768371264617264650155013657896171455201964993981483806535670881173825041707295007325732007411639876661865066461592341110007982814508933025945122116330053070201872632393345804488047495412128790928969206224003689613296360629388977171833249108309985598904454481496356241317232591587233400399532886011033769928368014735305799215076756843640327151068565639373633611525698179892154480845260481351803821439812375533915211515389728834023809191159556184170371212109944258413258869508850375568297351418247795641585425577588138839000523385278692999282129258279136253136491997445102211153651632754688207757768332678155930741698494661250840280197036446067185922165956294266277734464788841968514535283589401972495048346029712697116216087631499270259625411502518652752926673356009812039933018177136235156301793820955708116727356015024253633739987468166553128380039676898742384187420201073181188265211564262856078490520828672956443707365764226980937768689334294192100177649805945029342594624134047456184179999008646730759291482585575138718413118608513067823624079000359388987968864731405399767055574701057790078385408121762420720649143466468205157109393856975246088919623293087206824515608757503365816913106026851663869791547744375238955182753665860808142071347800858638719277873704139200147663504100735976633994257790067564356570378972841779586412826652640616940058808566394569949490990128421465881392114713389881537483432300498625305549943640992158256284402147714259047418754661302326022348296783280420862716255784312035294736756020129753545654523253301419699981305796488982898755043400849297054286355533046228124336745496907510160334968462136998918811115015223554824054515954902352787931943251915194443795437212184977845373861610886250341234670296759921473760850512131119492839660396278194369584839652628280086320013164987574302661827225912137295164778650559041570675503446025430871828970201118579823477835646770504896931509788759531639692348451458681776107075027372191602220475648927954927312064965812889063723379630682542682067968201369607463524719336896635549198386502659338765679336575014533400974661469042708105814266218069427254665842713398271168867276759845280891840846766359168416457660198576407232844163631681721906480288280382769757242084892722231772804699354706085872078755236915990554310535037123859892489984517228427337618958038250404724976394621974508081146284585445131226907481979518696457378996590539171664324333805412049732045122186990524108309582468312438955441108398153079331302542448962596200165300965417967058309974334441055532155525223169453033560969398740972808022936603717261415699817021256760831586776255114122997131186507699297961941283518309971211677193909068450591120765818610588724367034702246050245742143329356574497159744930502727367200316011459614079985551634127586128652625392197764080000491827012810594393111206759015869051331173854358676463583868199588880873651453944893549731290661328552206197097005872451047512784499391086828276753426109061068756219690476071193035164585296017768266409128662243445136433993317071996089709190632819451424621323911590457085584551287991318946642288018798707398910224547809652252326287735358178379834219900140498988926770116934582385858886310716740534780331995660725408588974946468992178219838621574730886139765738886131688608820544393997697031689169055331339929580301684098493681489488898128337219187736485565860966592634872383698752106985187153045503246398096947984898586332890294449795824112301344501685454933965073793707283122903075684882319256115426834564122293659007082512561204520389076138562978935470107464403291660728204709083662210576783269729456379508426631192499711701636501600028147594037517534704233907936650243926527763365840233765454626440921169430703439118475662283432890108515378004740532256943019636475798083731448163140168969387438298625787249089064006383145869654674948987175350439567696202887028606650199965338250282852853571719618316966080699206190950193663407582340596030161527356090749557944588156116257179933283333004343853944705145219599185802209015678422258167335900584956607146341560976805857401363500705227825225552694915051759465364495497750207717952382575605322280521062701872808020323936345445991212031297469420493693416548794787462062129298524812060585803772413178184501022021055707426793851652500718665558548792737364108372844180603545550572971410885879675489062176297479496036879071902398730535681614042289182224306784797266678595566355437885361867765562558009163514204827523908830909817531961523366231437149623515667249829488650825228543556532121353484918931920596226215533193182591254052501690071021267529066886590096573807206276180468148317492078155511007467697374797025607279141122099472601588897470686537299013699950468170776363793688053631032424508644109664409261682637076348055378953878703146351417970402189466433258069077919570920839087828287895223068780494389969994515181412347023591567956193325855113542929031242497212929852894493208114335996670238042369817338623770907276885985919497501222141797674148083768593131161455911472898832539124824915801982524168612956698456379967649678458639533484596995634266998043344588556877945223357141136574945759565669122838654564491536959150258927416591109593211694131177193952450837581627270230151487976540533114980740880673452108836864427142105360158413959781838795587305025427710928103550340169373919431579926084548069111040895051136063733648319197391823256748720901216636767767577915476202982382604040115143994315124461327114218895528679579705443956116462589754729748080484622585384971228163620541854014879629248196578444394400931983467854739104950846826864487272166822981031933277402212193846315332837047059103913749407966020336702974092576747364089949539832449214535916976833535635612508822970715482583250070029439999250347930041787326061678273656208182703168564607106836393997910961616720730038142267469213949053553609888434851579883761276823756416736567740023200143151779282131898610764059277240730537812485211921816160692825231703312981900001753805382383931329290433489096786683951744706442949106594345278962222221384132483054496620219152165851778646629875774611076820123709996813498511451451308517488784678381282940776564824617191718362642867030029458309487935413176623873210606827130690656596496221838448996015809641627608692212445511958753451002869831325815114578898398029077711718521360774893347610753752833809346302732035717853041189162292093331658284737663836652528253379849668709231821285584467875827195652818140211594586835602641910051889740172163144864626954905931905473975043219699014260891614973193945794670525438828244174714728709392395967854925854252029387515810709124024981435498015710860324281065883464927140517501619598586838091472096359743971758559762333357561496434876134172092909003790479391764118690807821973594020335843090727755718069022660067458007303536704622307347838754064630203236399999799520913447110921457630943278769126895351231886296913068925479105406191826549365613972224990000381901646370016928037157536021378046876247354497610944271913298250671951078093571549911064173586814113826661398802631624914287657548789370623292945663150152362157666555223548040893871002239771053628881132733875146753819331425462671842496940908927029534745739191523793501903531257589460116247436647188328663416817573867975232658088457350264217707844916294743090515853057049949099274023192138969164604440838423437580107590262409098236487798248584106627292167485562399898478429144110844306136773412042573884629061317518965392959313753342257230291493482366621143857251838607559201835864513899628501817932600052414004676866768624772068583576041895867341273269231509597552077587385487394014479747816795592226578739497439120896471580561277994056115321192164051473216793116893153784828100380688272795164204690824619353061043473064286840720278508983719911923045910404643817050751393324771607354969759744413788820112871194138589815597372628666293266534230538523706123390072559070002342802543538473160838180997039044540118112928102223056734278778805100434005977773923182006045173020881902686485145282950117320866952554859237363096807276018649209909299023033993724103886775527924390996249481460943748214923352283900797729106356466969742361335388548670984359031859312972867211473050587217513885431825085224042895463604698278767283663221751539979491589747741654902604963084966837737155232040330966002523108038082181351105335110575625835746114472241346219743258293590255595927632740040749564195369617564742886856671502559295247452690758200389041817634363355362103760918449888086348368283093883325341496167829889883956925840411204733613584479294994660166632649729504126426317885671559885623865377658481064993206878120323996131018186122025997466431800165282405768724532491492206077583042955084731261248138566649962838196293519196077953188595717292046439158013133542636403520202307488010359792533990933184722543099078664335637385711969792872879928215815313880512328517699143407279883967875468237365016490915806178905776693549739382081090171242877972470422718154910811759276493257321228557090107285778426441163512507440099976939601980290642830808239714927082541494090263885475670810292635094994501856111103946865510718063762263990683361990658772656053994782416454444886813440949452288345112459841074462330516588508713425294270256532345124694766973596358343296523909684376774516950990313984487112989330928244054910204907550134699714898286196700976385277080144913213354672700851519472869649170910443933091311205282752163631018646775905264788136800160539670241870703290538115357149950987972569173451027756248058401139259779943132347061544210153661114837055703114866803343309995782631097498423578365067298513367126956322847980963426419054591857655082392785111555132425734759893436824925785653674414760838070992394514944412259985529660584423381501133110872080801779911275807599112584978742801904399523320510123332987566232273806888008070758401786206482804442915688974044538694622970934147520354726146374422747474156809421993875816521013760291896961589782375229245692889677285139464619017086699760915961864704452885149236061956306308553097960478936845914609241730888872968535750650477881376536926642149083835159178722480570419751494740781059160194226887406432411058129908079785438411518270380011987969460236655372700041666460047196050069453614210096417106201938466936830900372867858335313284299746703107775994645758050856121595924723341204434364141237354627257795121806830604259033250191305262348984215390518213156909740229759218959510194356138545013901521619547584275908500811697077861463850785476725150489764124607509000950227343435286788272502982649943473363708021323940365828938664773961155553605884625443780609838495562748089775432135960185252897793875809694404883133673323110509408135195848166923561144071541088308683929104357938922756282297306614350206051026738299254103859134248931867331760658340159899316423854575662817042381742636886917625203507203446487218157355754628987485104894175076562803318567657141110222087554945921514610234634917309364406050069953365255970922768161959320177127485032934735016719784957217295307511995663078727743072592811637182281479350054951961915459687776985370596995900848378030409496460689060286455179710379671202387022283357423887772232532111286994692446868175143134242954367401066213885039388913004370455017478812097584691183850670279447750723915139892982082461044331717151345202017975462662492714353993090801804101773857932247042062392397720798429596641330135079077002545913080396844356230819543901983949823793524784207598452086880024472998105368297390012323024864258608879490809650605714613254849918072690823081895277785612687680873813729730104429734843844084314544848405285495048303439852668166113732098257156444780509532289929005012616044889352983554351736250913416463824983170533129933414854514278613371790890905398765951214442628788483858624448395900278845027070267159083145795288425158171215932418133243467536378477372177314355431313522526540163523933711326362999997126001753654534502645851169335309551044345606725243428974362135822378612506989784611167874029475671086788692116784358688047601699106724252430715832742571137637369288852406247496688970527272887979553794342514303983001136576289808993880086999988823976966078222464718111572198826875448230847505309603167616955090306215157420883842555185004622863825942288453613859298388412250538910098603503820220761793871591721147472302086519540761038207320826037324025422617290825897540592290862858279500250406198659645051862084287619274675412683676672649551447597797637784365198523050794429490009237907604602056504763192645019828269499328450466414943034340490648339681387088043224168451607924783476368271549691707753509847083233227255060861925475314028647609447621343450211708981951657983944145813899159331021104465146704564998827087970086003120485593160247925796349797847802233043984644084648663562245432546807630659897453276448987866112874196206906264964139081325396072820848698832851266689173777652741240589243098796196536544918811561268318989012882929585701556321448510652103738374786434049477318281349261171299994620510882562738622900799472319656176630980285643734749075781220859232523556381524749792926826966650234811116607464467682349916014460420440233841885579561297601147129112379083572616940784932932303257242115799374840896967875893833077164564332267276832413060753067303815890679385795643675881909243005757816110401736187733247419568903577146204299033655834509321459385464700673245371302108657038153816368963303879523203314917043701835605151447326448412263724039980867612895526829285361545569434723484517680154260324438895939945676396275246196912055311253758753469383347277272176134673339287170831871628834688715644810774251628764500021877788166840459172627352494786692967180567610399371515969812348431329718457060235278328930374286603440145944935292616743570915108573318834451964572596185931391651272222728526827626047771959600745446332166308093238140477462387185384243464781537079613958336242676453571876285736327546115813899767853732605348956813794684412436436756618256674888037724658749894597150356126667826371524217068648196732286583318144477855837534587169176155285289021878189358176953087313700221500240542587711188054811509717546364695196354571540427673908366265771594166917087877873405034556092907587527873232260502964887330618536044181923108023309788975903992423774094892659537660176196103491267596671626885496293466526577894860199223044430617295393814997631167376118260746203638680791528922768774993525956404978294501776081452067820142394335940293918791141187396590078663269736062399827406632418287860259443890770729709705389302941683572313337883304042569938350103584531326698724425115068316371109770170969952631316848999321482699317583881386922900762976114408958732467006344057541656762771621940164247168627625062880958229671486607097795546578546654543249873004204680926692977354563107116969830382604408252470206292684590821541093657767828275946804353859902453119371431997226450861791671443273619626350583688244579174474678780295088942243676264196226331459449955488308181021521796301613902275560523756163849151312450687991142424860125297739058155361580670416348050557935104408485446903193506200071200696805611774719797926892333311220079633659033586867734131386625390664035011341304794763508622161935049988386553209807857185142062360287666706121477919095892121365735983351286458637403528962464926537679125154019572813749026961526761365023385079814894218807680300731551896603582574447177863161915611377148895919999978369640188688821560093356106109395647161944804395842262288058296036890002909459019111161064179099558463813388201784617085728093448931302897904572907397640189178394961648466634532326503958085161217638204398632474077378234716693261373628018872944059546114079003686554792659874176490108426533725999884326484654293109769483408807751348490440681109608207128587871911646252069937449583995266962303579745426679627734901607828378169289807553223560211734991231506792861685352758250775200824758567188995653867047820307744826049306419278095028300417194164792893898423040468874148944045444665043560788487303283243188412078953485532970937664700490015532366239832469023413477845032586568190684346907767208892001325798925423195479244831072268991057910336865862345921076613875292621365211125778996605665080021240998646933428737304111227523825502491707423769440651442187521156269493984757980808931127392290255284638837826878460623930515800093141471999106977443158704355283697132722544995201156419675495660577234458991892239620269205206236378554243478707944307215296105313867488601872361335627479002972664871866086869725058802093551445266286347187314439647342705405959377239185225738654417908677564608056233168953150990465075650376755630663192042446173847157406880889825768523308111732076955842047874736508470511912363742103568968001020482778929982055746065316663511413651287167342037767738655783431484472113358639276689993497015480869454015276856557630364186492916164982785104330422822854604675546228138765780798265343230033931844197834205249736474836104689534375829876574580249653176296362077812215949565214378715749437965753761478865186162724071905508103640708236951626103112655926804587504458571254954674451363652203208729781498593615442975535864952196566363009728619882161694951764939371666852027140883227351311572513476371828572656670348354615403217875662588144773811754119502189039304610647220031406316740093983034895028425516813456874288245554428070386741560149786027733086971101410615368008563412369428570812321447234270902969108760236279166292000519665229983482516137422268017006448725304060141558801539731166722297898032451845172413251198833311854850869462162649938000050599097360477933723591617089772654665186825666851043435248336632612892059754016331283853407651923354890753780658346939088722456296847647062907161106539976277339768822048864143873113428938813259900199800581174852213962912220533037206147778119334937684451184666706273784156267081562216671112714909680136233909864989504792306652303884918766243543926823448199418281585631564919165999031393240186339050328257781472977453847811694509847604483445933048221779956005353232704985426788087902746078925502135357187637711866654800361723409156591643660398266232185579636970496494071619227240727045066566050815851224229973423028662716143704314820110982495046274008831017053457415673575272688531264987324377572582467409007769840273056301757372591122515877190822386114532313551482946905861915590361492976171197131106831785525267125085029608372299046772141152877485829731410658161508297632615796839162996749620928865612431712977952082168384544791392683662000634228891581955205367614765967889267684806363325724453085665557923918598385574726983930163485245691072707724269727148497958411023330985755083611661487809727818890306505779134070205892644880388274223376609056564028822485443315311959743984651493639650668667658954064196848508719836590249966628453907811544873036098401470313749843942530307927128592444524359020115588223040434657049381472747634531924188792087925181512619351315837890827927510401104595418175304695372419941067435495816459357929384718462547815401554953318390028092101268747456227637887208843924982706551052275439001846283557897175622131391542680019040685803543327326661172392491974942884227187486988700027218166729737039219525239832565500518182361842446903525889790421113457452357995777826636171449346747398094971102525140611798300152155117198785038068069663847657002944965882808089835003310974927840704970074989691093233251752192336816751418466957212227331125327464014096052493835588899242966735567697009343937009532826773494336310595362344342355917470008971512296768137098736010963753043745176580834145803864157253447527596017760798254202630800161242464578716897441994854984593050170455031488016296469486429984640299994725027539904562452164568774236496468563999444883986495376462951752551161840027064998447733833349520480643487698287872541459482921059367063312198950484461782156381497741724314159109202020263693079722911233817452893998700968142914337447719305687472318965758603715741149503407910551732831665487785887175229788493870990933889578345491901818906921714810418738323406755552093873773613610240825067759196433340263652519667861417167288953576555128713526471696995563248643880294685368291488682790869895072441459300321428316340338924284919427686244907437792257263569712297761491373409657729953834844340053119412192733033397216591775495911668213846645853466616423997946302585697771254675296516183671389866319315557986826657259444614842661556944197745889103005660787098506323687981435790002460770161508151481478939092922856775181468405852893567350444309087028220388412657578356127941369963985772594510477102822967913772346592616695089041412647991563432980061497444271263701120683640352122525950663555086473881743358946116209422452550230194082040056231485703151871718973347214234237255670733808868550183561067636188822466750312528627194534992326949861045492507965130464859751833627362402149954352365542090920873699888298043649434696511652007317476642671951556174986331902629998484042588596109350777822953360241739930372137477221368358575774476728760951577557824838953930384901335821920142891262651699228335793050532833803653754446143083707724577069934732990852544210247673739380949949846602685704533140801598166419564598009626909877364953953906279254895458219121912993527125451796196328311059714530398663690757126674063052275416090514522900942806002901313437776093576123098508450349778424902825675945789528989558596556229827214262577392583152941336843401473255303309360041393352328885437135908251666113164235138761928640766480122856221199398312962714991876848898934215374390766834462047834549308385720633115032424415476335885925341723544629412810250573515063756887352151153856767213699504410455180818039761979923778649007344482613312034757189423882782700078840929217433071396055493423946270735414885052188799468990236216093499276545874428325690721171393939915076941285634582259867515131904444528731789050034582669988318691154866253161550985997616643732565305323394568089947411422488935966433065118808386588087063889486714803507643433912763790001644779676168108590246445755288418182227459996250165418446376179819036144591140738055556893490859677260771404728694906117610897511625773189835536919893717188531459041996737512417259276203102536856714219224952039752478544000469666231589147993468929124674359760937614115721408879431548435151968701654468338038522054421220164272750155452843418644620145929176306677666223163072813336529555731032804827280017864320205056091239299303356920402024956036894076094646221842852855324413110431413274881656513119317336754031382976344901548833210916148487388109617567539338872032849746105388807420638307121987234414739291460096726416074272267180370257903193649490459846243789756690122910316711425007668806732533420078286345554215364651009995598646304532560506188527055834671607547965754900728515011714338316579417557717931266263466072426082195494793318214472188714897978059987813651978902220538189630263716983131127691489685787839005050254594613073927212486958229233966828436684607666886509664462573837808341740284295375663789785162564644455517489686083373539706368484403725419473441979493590046721636600127714376955768888784741180477647892653235496636610625370421852178581820010692322384591949367713412210644076104908644397529536176273705522423457177110177115922195912766778545189723729535376372135309414860984394473021776632885977573243085162159523742102889207139832921024950854729882961574441540246763057284747735781440709688105435353807115300902351772853381196074448167267162196399274725471835005700943193500165139855229286653642309242448981112271297015522777162494014858046503202248267292357311743496679745888014744328381293731118006922059168521996310685092955152426818839828170013731717657379378731879799099348423204513384294270350494768043372202849113433849108137162585288970576902815565493814755432360487509913653341977416709462605818383205492698902701095586342542326936078724142279822431440916492520161261804930127967986172791591491091255509062201645463858278110894253581477521072514527882740961874690053429255591742581809655465007642913993762108940148459271711816657344309148985808059174533414370605253262342230641441519542237221409600413670924308791616714108795350617912346139261812631999873031517335016903967744817501556444288942777859432163306172527615425761938983118093858430493234405094802263147104253805760427736242495797458352624551045252463862108261473778197932164202897276128113815240873911103614873035560168668815452307050882201507539844626256419058487967862965272802418044322858136039607899745198976458582532633098515832806104128843256588550304746019817913464785365131337634733396972660624771049560552442088141421486470085091423240075393702680343169984987416404474296257202769496347837609085627944417078364028629182166475232787343687835088066660704840733906114515946375379374981052320445300172871277479524857568685222493524021019353438073349984018354592769429289000966850556477517111948397890489074084665024808649861172089549478096320131371097858573622024139970754170512075835506110260787932962064932703891610997656469396528666518458385433840132308060353803593255342919346955641293705684079212509935157281218497903636053571555019175079727841254424502251165832761231751764344617770360631445198439164306911273274564641763512075063262646327465285060343955314410079394974914818752942997719387402064779369067189042209562962337994478711345554045976758700673976387861039793436922943927410353549843959799874253351500556471948528955074503018506217385856378100965124004595506668914714149338496964586733053694277662792578204331745622904522599829404539061813863102288001679776644659474212243110210993876641597512511906102235807784151991845042904600393359081886920668514352902378611316468637966938660230943336478570521077922075801114968106466298121624003656394723552117744160589722368321170672639362378012080076194889344306938991282133067274536739301087943016841760666170967226224590161500417882935300084185176496373518036325837008019949981194157403935114106852199255761659203436395355299935268543779413993863557243377324499247702663342142117629141112126437646845937014650851741269680469032175762655543851484670651031605162398206269348027759690791310702778414069117265349195524119312141158912094364129202071322035145739500235016530471598959372374699809517621920911619961626919624047587105465173445812052382077887740026122206603012146551925248619178833053052651328814466450366175269424599739267592904641667415514076998390639498894737511007938733552094582740857364891835962540724399453496727258066664765157766445480508622596117540727198194138945865756749957181672233272664605814393901807812983634199358864737878254163810315906666228409161409173555841827157731030605684027485200018447615415411825355007882103476150795133522815799749109971975826060822114042671890558822431371564547278160643313677236072727865984280721744857260004848138393085013229718454657615024576133075648001691279274979494909407804368007022834549802205637110989281070750475514732429329801586128105453443328677610159820942986704820254398358599381973017554106097634922251392683856274473753634271384113768666498213608685572408969353468994308157213929118045870583756253112911423749200174561088761816934924127048801686910675475439554683879769744689368849670165226232176349985781472159169055684764419746367788928845907570479241256580367161789430896198959067815739716939473912622026255415964943597816439400223611875389382719578826158441670870294409327320473525753028581377924292939661793801156332568304321668874388150096479032930321444705664049956800034233760026760918823457546455270885408160722209352134674316931070021288060007971209412024470803505316637990314111046468427160340824419891812606708316095992356787010356971978747234870998930159436728360514784924895562846010085699814119699010365193303926977210475732084163183834663560263947032242334735278935972168236293141766562281880882640979112536135982048262685520811742534149976569099689461016965228952951479409445399068893294207130795588831471910400163385615836983228120964017278805683586270560480140646785048097406675658465656891584643526429751059403718471849582952191616511619261805089879509872229388765899319823380775648759030225718375568153818084532848831802197481438924874946497858921431746704861741699640140466921695030828358334657138309059455476313003133868764105311004429509496298712676253739594002873508031241834263962383536601153639893060535968300702648712852569068431941762387437020952574734031851213834589051935076165561654698450348572183952420611416334020229889321913044931269943305248438953673592414483224271155950305213770237129816249078837714771413291801509811009934123251369005532427206769781972370862695444837888939023623650871579532989056302714563825088099556856822419384184998242516419290046654460460499848753153732837185983030268768353124714055890011372180336846605838028453698183015901984041219752260523727565144707023349632877174909560189591684882888411608731166354366180435531960565072308014122938567152183887238397839042524917080274412276898291634097525649947671141288662121011945221175261871413996768523605570308512978292758124784132364314401195367373612803731753355387134915429406506809863691786997142561017757699961723644408268453086858096259428867113204341703620103858338881378914221377394005714818545038344219483487098890031304911417436327955021734432048456987725323674972747738265909529673193333937263751436199829030870962850124145225104660813476850811859344710569205314824015617648979151275848111541301286175071161493739892074066158281385468089744472171524792456705783442333148369881041401389772585719715143680986849481705212409850817392131616129893336092225139503203812753133652267196230352718935067364285564306138806523465603883699883912966524751395774209665994849082722891901870851447199759643154125417583356011309456057848557928366223771577829174936846841573290070738813717168177479370865465222843934536896685812627569613975805213483907435825619923205548886495760854002496443760287636754363501665608940232216343486429518563251066716031757682277077859899535264094388694052368359565236870220274885797542764588632023031768989114865929299238291944229313912986454895386816715848767353551631762286066231545817682962978712682552101962357858624371862590783150406704801769083439169685120677661288722056467515030805335058353138553968069759891620766138558519690590227320646035085496147944157290128102116320946727798572727108241312656770326609299957050809878705117972966642636753413872095742391156741898329484435972081352239888802026137632075232853481964074030697604912148941313646973771584380593631785339833030907121475955868231356656212794935170702673742644918210434808891283218066354614680100773743971223040786782135129889100396611278970310443775351181429841859694230272884977193751101680035195110259038544190646110568727321708471557718166691609905876918023354472029312809616659079549508242184493731953921384424518966595350078226881032142931478639319223676288607710956020021656818972171575854328879869789880134093479856678147847355770406542096365011690095089839393327092775003482531763064519575842039656975308174946309723185703522086370009156102898476370047616507165492323122504620784038302631655647709101585004822159207675890125814231805757312607889386533865652280667206664611069334892496115241973503557939644997215193779813935847550020359049858439865422621663583552973408675679377595909048364751872291500510644317418616030953373798153525173098140968655690053999797286470219297913009966932761032014368792607314171662797407424903434497018286150967446831963684212529660560554489017177684387959180863157319139823572783369333740936523711091445770536141570146310076490508422044576784820862676280835660166091610312238244999387701125136931415991073545273034086882377524347457093513224610976082129387348576133307669633225002990406832706931101716573584994015260293580371267149452807775107118066674197328390935178022447933160324318436999194912303535260251114943184104805686202310530980240470880867413276829063165572187677911753494610889251817426458263832293646121316372322158071604363905862497028483362349925524074807583752121231879078354347401543921046187309726587461549519280806942370935705591674964940754958451469366556912069989292811561735176856832155539931050702635401443168546505388658147731373326193227410152550634653440247801037200395752552037537199462231059657725594500414292115083038949323584198996695127075553266566868359749409312544094500597511899234324085439001764311891447828441966925730110485209994344951180719419758654959903385978237572886742140724773395766997110521788105578944222982963334724835799289572838103205937912480945624882135087696601872277923646205822251746182178959587372011869038369769401736530972510303572831110279108413433015848079548497532582451746855672493901649327030842128047585236297581038025538555286727971329978333470372166962851214727200133776199688036298570075014448208183550453148640105566949611999386606262222550946688006811009815342287140574298908357975287081318341906387463382037179639577429554597077846751424141041658437786895214375226776494199518169169437000851962207598852724197217998306682243394309412738681990056061692873825941762265630566297329909385767756613425068358325425373479678927620670263501253558825520502446266017529123515753914370757470547340346354948818707897504404445997398278922537489973291381870406656529434805325428916517795654239249818435912566817286928778940456704177627469589270556865526921785964584302471745468525112874385396988412034746197680923242465774719498982143000664317583988520655654303386525534817386065412130435826614928854601663593446673337729377096767101283263399770893612618943860299331612266810168110827166452022015532534937589337345693268849730501656687107797125657230140819930694278462849275074940554862090569583087229513634745261451169301655271722698698336095684173155471015812067882475754471247095527451972201428470684483316045075811522799404876992903555783308695293711349615424214657027958594002013437039096376130614746532942036290625635661614416516367264652158802422596719727924387444018702921349311269799645352173614981455043388724161008818774646666205596139633379606995416917138631168527607782687954219584242484855712031135434259339509288588233341708329884326260478004406334483166556298551247260392017927397802876354148860855028020112793939340296766291625960811649415928739170096816473609989331100765101614613987142333419021718894758741156260536181284421731199522594223805995817714988403763567562667272648685612386690990245395413153959586216824434530817225903213542740728473289786463791615517044902190639827392290422357991044087255339401189134275659227234070468997061640532013633876131935562872069388062293743119851336210440093320767979477635239420487984923654329226525082882121091026902372105069966247985456373327639668743962899243766391057651661903692620889453770424478368330744914391748623804657692398806558797706157243658925987232439475314983340227205369591608206669200489261266324969077801367823690352876708003308818316982813527418166133658350144672216677218414451257359389092277631882965532219971552645249208513107008913894055175715609098072600184615346465351284450914309961498929023086192754937078400946966867234695363618416934481416723142006444102251146620541858134801888615772187133064810440687038930989442094855948275129482672084281300314604779038999278487230312750378291479646871502514372992690376152505391714005021354635017876852966941192597184767334786161448956629600149602077884712020823090504416887670315894097966032023595876763023441571354444894703450396780077312908965424288449825159955970694938274820877449008064698518086335693936950955472831853424377699371941462323568941338568282368047328201546504864864927361777368186964464788641442035920399053251665450420273927431720502831228231718601657746767341184922880009513854645536704091401618725206554716813945008607523067989532896478388002179058097704372353958715732607217072255893352378905399635192928787537315455363064957884523220104867892146861534811126305886141367606026017448827838350140753691003383028978982903604568835504977415991253154107427048738584668100259475706739978535523859777393463017870994625118624049239929678089014934295409504607856426127736123967015838387748993386331844918484322692453433749860761263432923650718120597332434121718782446890709187294668908410339819628499213858200878213072752614016289054077749571489477444380936141881672320062424290769910713842393793508873471259729600001246862440921651755151502946264826683489405704158830920532377529137019373364929125566727728982854989284982361990339405959248529630596857565618436832211077216784770131209156688016455830641570725789459352485166226514826226287854758184826840590714018949326374274920001641039684478247178156652636837181093404844737799856935702475282679422436739805766397717935135137072659418384075725730044623129938412121973915091206819583434217452011454315842930484828660447753401982852354887281737063939470632403825745856866886645102129806422678708630344959739314657621204846163539888758221803677895078448426727823994390143749221019584414542559896494123264626572510832986307729020729048377027280856820803384368369232109712871010648363565064760774745434627186405664503757557283348593500187377129299064773694497295692624924586759459721605904610498054815777669325608311187616282245442180035124310693442122882198385415672535636229199884405795329318371053001015310639624756358816095096098085854943291786091592873203514161271160706444679365301787772002804073374114372992423588307032817591843744651970243710130110421861525237240685546880820130715812309475677060218892246576279779803530985772882487718173922519425375942385630686045422135648258992309017694545966253445121545362048643868678632362645343297127624710894519379757171470551169407809279977948408485173496153658950348954629497926062846741758353486821196774168048940959990778345474588671637261299894104232723786421081492025425987663245608262713448530950233450576603803665282446203134223178648749480437494149443071282428472519009451768790908830316931678129451260755309886252686931996428728960325014175462608775411383867125664873873468812701052480318309348001124535491507013321199293651013590460462845920035924853546997302996743989738330500345802899147542566360042119395543564591136701392249699724057341471152704405702866815043285738762154944997277133851070681002720062991357001624392472512459041435406825829366970704719611337866972158018101263125308468161203525852749396143975027279473882114197089442180577999208351792073782265261983333090986831555376429400853810244866188655448578419782512995862399703183170518939965156388549512352695634055269125769009856785964376629376916231827809169751635424582601387821306139163852005664548756114001688614718436533201643515919206820449863413598404922943559196374861239003489253252988100173732828131720573282143571457309619344029896531255152430365793498103450372516210107339432721095996546910997354530644826276215626441345124069810854583425112011507796799903339606219078963378244800131905730288465509102609569440722831785301768749794867367431236970166912283965775485813927663089880983009552734586437829535890049033386688766596852678949706999616622086170051811071080965778398429978315815905853148482906254331196334019182272228006854842632290925405084672253629052884141702790187020544580500642911066574445944107819417236206396538952962046320804181230072826219683290056881728218940835451571602402876928656403345521473568167763892526081309143178464993250410409085590274976001232415860338534592815625764620208477696637586347810157165958655593484439602695531696173250267566894349778987176921521729900641099450556198927246237034982367317497056975736486420145537848600489719596876467154541355463994916171652308093492928711405730418182169377594939410580676979451563918409941029701242032410557593227013250159542083902488420052753818106929394010073616800208674772030104400330941248260124783698223963241233809076140541259543202658751666856982165384531496537369522322484227644825638062551038122313032526336509412420882078594297909603075350989136400860820934834445963075488588056440969540530068625930268782138305013579464891887026616222555574482271697501889925909826538239196138357105830701986951075935134446693987790407638923070861780412684845769509643826757724273080324975497208436964681534441468917768945906111147228955081517049958684658607791757244151377499410734770894460445841583915599046579897589618332594752422831139072162089188567700186978202657318943313054236244170652945296124256264522746749124308727116019118478614722706929238438428558713983695538442576241653953493637068343529410576181054041880365393182079086936918023605624861919566453941187510279572132512124477881796895033379617978869157009051681247281697117254565202920276634599551375611431158870192904668675886603717519322914298098482273606557724781635599566330082888840243834090726666495333322298141774566428708888986647785874612669677353376475910968765291795765995196363733011719304868575306687581859249878976704157891750276989409340348330819929710150327332012070280805724118248263121965331733375240836129459334246421384294433466563062991175392947727624162848487927934677538325225208099294353835690894384325162649641742967516144847182721318609512127775564017754762298755667013097029451954318299581837253869792274877471154323320775377533541904213612493370473701505235955919225717477552174096232106720018039488033018008548148636125849888825513328634486777023586177737193558826460962646373877298120636625917615744006986812030933897492431144713629154381282874195530192148816518098880410456603529143977298935270102841347740722013180885782607119472796525338799382591210332778402070361237765067978003451053232463281052490738807235320927396198193245767603024298277634604775963303004057742816399842810933581756194920076240621189656875202916759452037817875183179389754085746770066211680569756733863849975522840568087813516835142448287056343184157662284404878126478421841427523717844129541539250171904602711980758260264635367856625157550031615207113004381460507624363662042169630693469184709360882069910578610949308365942726825656051431195387876474544900142049436941172450534509394732705434012700520119723760063475810839319281009546423122716024913581374723875406948644060805292395035649946090446200744704088823900237250984108202597582428391707687973059970601190412427174337917876282197071768721792617189714119245762976273705836206239783419397983900799796929331079364166120597647962797669959842561425922865166086577097192825992913689631906554090969787271858187600869993334080464100360208091659259528964949564449986420030205282992269717176963906211200991801666850192091220429333313791671059215151587918459154515999999449469961347070881983699569595497853056283482941566112309546479150353720223171450272343977275486459281727290167954724812426363907064708328758726308310909695670340542129571225576168453408241621930883499784912612714902144221917809362796775576337909163341310153748307081339629048983205080461811469586912826847782190067164908661683882882224357719600934316568956821138341254009605815475859012044141583112320840294619067703512951966528244960508444354900749435887942590297455081469799227350055930319336430808889302376734044854200971975997588958104594217108712167414491263580157677633999555996911638526815898887890194699626417486262990707186354319781445419726568913420269605089567177555539836675032458678943190741914156866202340133690952849076289928355298029075350165965051460418149485630006881676480266713242116630747158399832086870915649522187945512139212516460524971497698397213565366589656820794114162487354427390650308694314177720930639804426644501087070958130183560105908359687282037442850569916661735466928810558578431727345827454682494820678802845354149376739043239820031730951252343153778380795460332864535245224760135191871077949122478501230134341507839178536916012768040031520515024404378224047733479684541629616548827571617996609187712712731749074013369406836167436051502751856519555253481071729118684716590469322159152184602754150782336095893133365189120781840634681970372402684843045628269183957351086343867327440855526559381344444845347625805180255929204131680009706261298290679313146059052172038674693219056750598118624878036386567455069294710066199732325897963454567790264396173639601006232235862260819282498382093558611090676671712892063926857833448644137111553272021615395518015797181768628116801456718456121360760863921570707989074047069951483328692207245874625217013660498358117836128250664719651790199524438681066631428099433307894843985924616529832325219797002616551239813370503735178568344237535988816013087585045485140970259865439776327598522920389831590798800359000927045106676955594324405260432829872173648637091611046830405073801710073523957417033231799152371641074900674956821209958782556646312022173949375351838820956618913932890866303311513057657621430820569319304927389315461248814131930177140106867114926257989878539405905971209908349474647123752337851489009260870607820329008502505938709431631510141577203728959269724380989677626548819300196624184682825383815225806588769677142588957636728651342829226364499383361690119892863158050143798816909514927557688164295247497768671295723341976237569679550170892146494441606972496298516906011359417111111067204643699723800521817750665122340548197107771842052107210454211738497124918932752929272943236457633309608659882291731071502351528139190341413970411822549686880386187882656606731146145187584971031399194369381796894643924433295470784858125049224711141816894793358378309251956226780237250821461986425106117986705663187284786111377206312797048632514022882367703151416337325901563328303500041224779349474781400318892875938447832635474849674361136655741433861447043591717947401519514961113958584782744544174700698989781919682620468922622680303286130429263174616459765744366121123676492728071555813077661185151445188243223856269759777040525837060747650260115310613920149135358194314059649869547024092387702700563445911891141557442344395271454397126479242087162633483986243971675744717943520917811568039582451790631729722758861636728527384442959312721609601479531798161432112565496726164443265860945896013904109827718299039118366134735982762552574635688490035588484884064016897691677495593670954201016128466804771887661898070773097826062638623052826463714626168933357954623238535184410444590689898163699741169845819088492397993417270166733467206767282990057508850987930230705545820338191350275016412866809997274722321893454405382382837679369745721411186717510773657341394947787249025665666349204020711267470925964957137589505662229383213466002970528367043067076266146547139796316822563487800432331885614035439847848738306129284071629145422546232647797598652382923101153496338239797275800148209416149323925204072043817341355082668482433221362059160749244644479825965120102780178790955649465381900774874531762942673769663797118880162434415726365366975945165929387619768031499521666320142779075613630865044027850987102838621716290511650350521732819889672250416613476704803136462094796738065188502919589082067019736093822090396128477383161287678687140830985191773917574867117402520917095163343484318158028169316190269110512648362774307895468948902599567777953932366704523370216130448883889656063900688455683041362340698773828855009967003434586668240135461787623509336723796204472764167154488580524719988762964760007061327476522903854667735453916947471731297024782023974176018786344794904564787237773696295990951425769762633225884140001461609128829514543832800757228089744701933057792615099356672138401439787705026764952122593692100894441081745655872792860805226922426072875416690072276056560371097949663251761528779362255450858150592794084115247517902298095192161230668755123366885993120677892752734341415844480537509456637133368602893774916599431012335282902591683108434336863667832137652578684378691843515695061515027008780044450928263235301546447302563654858507917629715794897827738315187332946486978522018815988324195969367313349298907679784083404116122501943034238923409466885773306514918838621472819341352921899180381197217702574092563116997935013000480466685279093421685489221194064278853263488444992019319769226811659842234387862269366385694621264484264190368830149253183210390460682530605179358550500679198573891532975925571667653922124357541572991016004681463627437989687534621005943656647934991300435443252616273990767058011899854687346111900437608385001168586615049696326256423534187869875446616531675266649250265808930905904056081839613243724001063198986959806010350378321539094957847902000866301997422658639329770300670449141367435681404349601717798890625734568015463672559355773147384535302536771484654283666582332898987089756665434787385839846852602294098162092981802984198267776536908346260446324023395531560319430809209129087915132141987691920478057006645068233715522607826555011338817219106735760371825241805142694952837319227183151393546136414689505208651866652399056505971393694663718814572254340024623351355781217439998777595778290294420179661400712359906039913140985018680861842378137441463971835568155585724937051204510068966791774010226786642445987799373255162186436121941169335482680827314979222188998643295161444722220109276121629287189854948692553839708434032422998673306060282294231436140842773585463784941461921644935975194665176157357085266725217273821750276731375097741981953578993223898897038890937587269918829528905414485914961665532579194871344973798202927816561811445867926100950811171887814627909750115710209349496525104357113113247875200326462091194503775901927245356958925701461425251760541191351028990758460264549528886436124495463911960558805991215415244737297370811376007151658786293534114676943179230812417413393089586213200818399211932823453983292855548478523356433004036505539993642337359764328761216871290949154191018992865518247389471914584434725947698954500491814449044360117650372569171539905221992670374878369511394690364343882911085389020541490154922081303010897906803430408113775280231496059623255767803704717427262774365665128025573513594245645205236535441210249453711911798765978692427204854823106610015387234065856795289971996993180160537206420843343668927150709268267919078648155416721995514969641312522372460347604387576531355773262845538720694595211077806961302598839325477893365233923108190121592685124704424807184837545439532322192427075113156684425319641368034563515715974855206406384687672736111966514806387672772768558852027435137977782804038749060487848702616354212881878007376578954638598752283709624863892320916032535074486924545085161565902925306032893583310257408854966669239879906848038204316750188967022277766194959111455828106146543711648451131135263447084230276619264671825384258450198662098453159167620160237357161898328945067584408870094193974241356633788768818161591160849553149338992784743035875995648142980059183402254586658961287662094910219176931045805588925906475433544179749068022463755558094027054899034796287726721302878317235988877339033392586914318362648628112394748432373750879233502030094627757326692673660493141197127307360692087954212969524187580457736391779479445248969729916546916144250019213928711787265262489144846483128838851321258335507729365656725470256869708286693096868299210841632575891655782621245051023718748004484530400059637334270542479086209401248098199421027279006147028549284292704438949732641620083942330643044214464580781380068039424382611075353498813030933783597381301687116056525123285450135631460276314037182844633397442002163748645925736923233776716252762876178871360128930642774600256347836893845296692307381846351841644010568116382603861646399841413952746613892483017088739933834182192753439047696248181796144530002601286400336957820642701699857646671809679096100935815422832503706309281434083165086086404249467368167127046774875674203081436049541021015959451937342591973453874278486708975439193931756305199692561441358935606368924347258977688455903227535638435459373322960099599827602381639218420597120701379446975766731013161072363111568345010086575404553613162462285268884087593118674858882048096525773128327853521610495185373985785810029997820464006932321651262047785894023075572104570583490885531975842113796254769966753502899573044444024590591367276852362659163678056511206711731474401377969702995392800496376599685057387682760697902470526376827112351452235989476663170050452353967838872822532519419140632145521733189332545420282005814328435872673734575007719642626352799687476903265743846569911492276117007785018646516148421944587340891960419764637400365555087541907572111388703813895307627153470616050905786455458548234578195206706741396127411699781477618091722898155852385823114259460769641284677280979526693007540605973406090889393020997503542981940092931196076934417066295515388606546148891300255953542856654563102395882150431701850700003624285315493190618890386745457845782316240398203358019801006156107319815493546737274715744781674799037150036501079642555718306137319712400545527784402392851662847809477876372945739789070399756627572823312252479062626410735532056983885144858151136991050558435057906720148957674409744122608955790840493316132625631036107886870895429547267161750222993789814022619890804659181546198250148611843730508197234970071721718764939261611234880282564501925242171477483989058083370559480233223529737010274301795591914902001687496254282876284724925131041355218213672176461808543960801032523580371283200862367495120728371857466085626393959736375947211570562917259150339133162816166058452643636544949075856567857560111474138046243244593115195490931755464555759460765500049892573239284866245258220897476074501777419699281033366626268554104789260618855296516148916872120848611342038266228572586156159328500095260811752656786667897861576556440455880462794376491643535439991270554828834532996785486696849156448574091782459000454267081997412825463929474450290261168808392240179246965663702368338576002884452945432448482950244813791794768502518230759646986741190680955662090477015426133532998336169056523729552713512859469563725873637532343906897944206300655957992358945184967820986811557807590747263296461204609410612118632835220917363464593940925157072869815165938237692313003643575638658881342704723018420469975242329936681092290620828259957406583746545456618218446994631449053141700420791841069195818442264372650765215389551795683125195497655315587251776381974420574919908543593697905824165104656874587906309721746338599990228132470470135812188606556909545603260504152146807223098352892167278726069550999728709061407366019217871607933150985157240136936410747089581344840536609513608993299988853240509988910042998194764371999728214118470697798203729974494136769383905521682179863343130875711437907238635479361048963549512636383798163442907434914247629732196015905011173769127071783225941554591416456511317989315798843855094953394817503056004104581095197098439988954487177604892485179963980424377921211573172419904838734901856506442993584110179534848220616940072585632562060523854579010220663402636080959950450833089392125327545001092967385424623715300277348696108172393650082519186311857082335230825110931882569943230536002936937524057780471633253580077312564473577487050841440233562564976437423177570204513907275433384446208440813173753568295144120607247566549419060747438012550545429311765091209157230156514714086356739281922162722154286057962191906816127603903544095564496342234405503160887854579472094196619029906325141767025906040474692015917417812953308984698762460901385543272949564831326698389755920904413613293920808028301905278693660416742509244412409803219867484129769487953260146398710425297855898241845740814132781171866787704892082500530126170536879619409814716505251119461436012027621550791974469722341719749112160282092750839916816633079896157627188753267595042452670737821219446982776645745650287699465337691983308152506789397624710528596236724223529485991043464265575572988324066294229002431416804121078587543751166544398553514285676238573420113520205948918728033169300425547595554475020445939617673609682042064547890796144802510901882948274689337538589834448299817049240198232042629559506218803640125539074068196779715035524941749134708415464943591746090023149294647696931636054898052325458880102670436980674192403834629968563600694140390258564980747887208159950198666459323718191791089515180408204105701538702705221383773273850877867883989043331317968195095656093297668969476814294696764444144974134971794548529730770322570745378581814677131233436321374453313977522029507007062534012576930371850452423833632773713174464761371877323200090308447781756606731508213185056486096536991963455753377449165362322201179323317351753456022146702481373366995799428181800997059483963765407456788386273991378488752154950692973659667136255295960592828901360751936762539699016698694317029746682507894400583589230002661438370828191043406472758951844010042064659442625701775696760283184490381244926642865607674283444826752608479220121497255887220053370870372577784291126769663708469248931490005047527078294124853042927557849780202515403636201210623172229115590883165917648021973576619396837654665932117181788628815335625155618361482421242835177452869895670714144889946382976840387045469137457092794587847687569901923977878203824505808363516085185432353570636097430308587540191283542403365009288703217869338138671710920690415381139724372523139465435911841153456292575196862169989804954948135806866341529840428134519998281140272773226874633443822205567475860349100975645410080302260292715134149187988575570414638254397730622024759984910228229591204702903884521804628757941447263637626097881782355498857594560731526870696676610012617506264309201389894274233938055141342703404225810821540176350027035786588995435448933375645611795531594968669794276443117328930141163700257658140581262077372763293512407068879682410340703284882184190202121072116719116375464698434539263076379908588558353048303067570753115297504447889759044758659349909675830635340538618362869004535133180231213953165668233412964877894855360177419701068920018840131765784758251117474526720546010225781808727486477344212179389771514810059962255255606292876332089962088217747726595453785133860956101713262183526324123037813916010824185424444290766136622945652711576318430802687898621047310063849814253521252549352879519193606061079774048831191816761577296419751521520625652930813028164073945572687195154514620950935859434834679650489677617949809565427616778689506727927693818870363748388021245180747215715513080896082956456420194363501127601851480259141236243908025890388100867576949857054586954398432781356422947628346791348152714885633303959385748438654490789065892910606393408679075103857031484387753113445482474798535732538453973008887689839378101317212336882978645968252839238898134707043584712755669964116804054222634792521832356794337585357973010681170772242297815862216797041662851983893513866923305485774926913159023723454420963607019642918917318691463083054602112763226114494128967607013268831750637776642317943745859855584409222544942887039430741840019678710884581791314964321882213312799867056103719039018841237203161902392764500422058930078526260815341709025096294632352072086783069183475099102108650899898174286210506028034811560980089625826678209149523171562941390383505084914984308325321877868900258923112955324870442777659714957956061595370163899969069043624277649035064002263214641227118492078657867929471333666877763526177393187432195110671022101808016303347454023456580170497095865123675651729259298379011660787046643260489812051894622152954331816183773988144957546719642186406841027912406232560505298164183200826502089546987969359662571107049814452757553123053817349783282968508308850684012957478369156898736545585205867902529500388245809513419952314127352176480643218389571850364070292872663115879473793042425707981572306836434821916938534527806662035640288209259789296533755347088132970322804221578045059266755081282162597519164316902004638345563695996724013923620260579174944726963091217336592101062586574302536012345714904076801539604899469167727986122415590143341097328977937463561395917072897447281217159554551580071761928684625812579219642757552882310668504821312144355876043030689443584674695584010370142847145163408266884515535717153999274241856823961699032373294772267130884838344515063750357173252007571285404131589434142175161925430543227309516940492963150629220925605280939874766946509150157318722034299572361187270586382432430170427282458951137955206728246327482604018471215774293877707978298168275902927956045473794016623685861330529050462156613136891833735581827754198291236164622892559165942741527836486541196678569103963731145623160694743062903834245111056315698491663462626791605855153187139761706773749086330086184016350523326885262347825978858174796516208388333600132204289212120623527311217286050516653961583618561023460854272224262028034447359177243533230159848695221820293978722530939227810891222001760875780627703175507495111630182312112204647647801922398364177192032368958676698260617825617311557866492827923589464415447602451847384458641301788102323520226734319842643568217822552907787395065134390667224034977542776269486543531828884088031873502851628094411063770288286420421706667292302179663807688039033715535293540777804539819726005163996088666996703496011168709560242278225869311513692496192354245471744108920321378166199017450741858787746811861921155616765726430703450868073081276966909251308295789444978499916205593873725747924171281203630182907967905452400011624791098817051092985235203003187499251534547884623414435384616311550188048607648245405732767415198446400158304534855167243061050475894628265928070527484726818824671117665280062397475277201147900470934065288855681059287501280836629158256561559421096193712827056720627282745148049784927321633791941460818172352556316662308924547197739760374169718163595625938392047913231611496992514738211429759684395310642712759429637285159661633895041274886977012009688011025099177011178910793400827851179450381662724855892745698630437459356574704200781893338241514376426971582392228354844727118758391461976662226703250788517743370560634594481115619610971847660334188804785937764433925513641097823076039501068861684474125682028984926343956583592510121805198913581915683951809370328488719611244819617173282715308978566476673621435404935263766546288807505308971977864634153791922698330001448981023688863728437262959392743619441989214022323476746529591970234944672496294750575382730004180390774187891943530305442672095994626624778300494720978532787231769769563449251372749059577761242404856899627699107336806166071380543430658881320535659310182236393697069861800649398348633019445335963185709831904414420257954980273080825430107888753546272753942003457749721952458438311116115710968544754484434148894999198095414828463874531106935071663771325391605196693375154258144594423954087686631778068267744277969612207528681138271992871844025779554970739173802431236475383633806863336224735113174318846628940946001762614475491542693753257528775494762074470668663075212688542904586032017039896745524112331535484880774696168223447228448817478516174651249528777515807566215188502676358437738926991246565775793792442919764953873239741321733789937353546329211751684776653848718236541031267246208052533757115807639187618203752687446427388624485037097310387206157754007171432148888929155150821906990877629671891844629134061097494228730944808376147938812836657701017388762074484871861072513127861814709003735133413800243206584903691266919818403478541595451304554707466019129052449564486508053830795986936232528422603743169663581720824307914072946469973074503068578214720501989788271606539892462140054617180181144596809349463496709299036273126669261448209286432339332611529114779908962007393043974999190955638062347138774897784630367174861999225886411559821126494690291506756441364702205087857237266080626232126113704521382076019183981318026765478942257337576414742606356274477553043416465001175994304690731073895113051931862472319755907520186995919080576335890709567795622571538802723901281526620441841698071309010462352925638233177328926268872469614276691280126002004819538818731166894897897974910744834796106258327475031191569298966210587113952834090648395654647741419310298308554739473902473298087709355828180125114172636572113200368785784575137129481091971062678177975201334485527905218064580563312603319426618921593714469046900165659572775197952021473579597625913118773934490532100139024280687729790630835427482467169277333245495970130494984243077331628555209417492345480325335148894616669461422563745439619370840332445693193038477302108073548551125794062550067848873002309716351113148177132435802040061445226899975182362234314681446591729086737478808234866060649147962090980810166180730858081673476289850727790017129506684880451587843234735647362624806389371422077777582160847752707008438815535850620997409126092660347533385014794415049131493681943929426533201235910405606258570035941549268825865687501137491747492019035948364820055965985676711771190799560387230451887123786523984219090267773406206697413038325076367348000445960750039351649685109831177075753610418158284700645717770247309998807520279588042644011724730280565519151414729775519640483558071147312161015667441181467745654938550005111511410861729520424113930040322656832696043588953477691022202755980394892013379256047024523547537581965907640186889685627957616918363721620708661912504736617611582596571115054682285429954954915003670963768004419295007263988670197996226382959741141596386468853742330691854139306694763207518806286931542142264267577351609914949549375720924475745405196476502861750010905086279672901818289991022114938850298659179058137570415166295475721625235622263219482052641499382054787565685630517357120699720930540949277195892320922373066319269399152318128468049591287621091748403149489439112923641639988120889817352883887950798459021359496991933170757294749464902739381054511036244517446812440786266340915124752371853626663066199821105515783347916250654562329295555586214029099594076261416391096640898449376852399498864006441794179986287915489893248489425388276114448141314842156216463444953347515434114464379603533057374273752371059426659578078263320899526067154701002804857295181106382165296474600265463999201394008160638750894007619152684017819773271255994576250486899075144718225708136958133241638269936159129496570613596711184107086382221964185091898082177014720230297530143375832001720651722485390766115834051261592972722403448500252844176754391737025775170707724931969366120038642157937380118198584324491188437801595801606308423448391563477214464732767231132137309633235963603139452023406132831969973186928467262345131917791331316393149667876087097709779847680046320613345139684702240308497084150376318321001016278994798589212005994383600970158444455654781639052976030358657754401646896964964199723363638780931726420401292226057544496843176790433106767989130567685975894093699774545689301415373709874840183724557060776650280304583441258850459545177684438905310779081641629875765597354559381002191640423543195256229240877936291690781509036889874235358326546803846970723349487665008437967395900185306598100142563037341978550486913775404988947581239778672896034729112657216800247977205659866970434909468259529599410768017853811498052684444293823374959153201397535061499721144782031878504850087690796849870310674786262491079318307245798973883517222777141172725475417365714393635968447186780773054286627163767106772422591843556565832681004842242814234708110352790860602359466234345125763909128257534691344350056192326795971231738696532174550914803662582351132095544007943559223830187077278997461548212050694336319890737402462344348938763572435236731231322414294535856503101542751472190599386043071657686000292920305855591076134538394215677355803706681206987313279453598560516830903537152633600394499194639419306697729083693783883549214239169752356974668585080224916254989110976390258004381681101164773879055890181127934092774274172249410239472255395082297959243133732766459222092258239104248431678492764726699135312579132753722474534874404863680031313719650278832484069621742540644943032110487361279270855731812569175890813245174953298389731729618807630314734100454727664432273531579696224352094833611978394757604795158335432646765786420558298335551781687492724387736458469302902158159925115295355134079368472632448252033429605368789130020682745734568476850248777522293265997984944407437819906212113520554486307856439554766022481436944394159876602784996286112796294604899169826219040486244393944868678937400786312491423684381269823217902233180956392598094974043853213340765179191172135797353606631758197936790327395345904574808239360564379293483161989604336879398305590881040986255641986022118781539334238274266235976120518729238015985235164956255687834889589691370946411302709970299523765995668841286008755418519902718975304721877158460889668007097082468445428236891523722397633533462657434121010922770368259770571707913444443888550570867163526289452136453199739036458686027289322818478562512425290045805896556462090817967159034940682584833999370873859880244412713072913343725456335301530432554140752440404613221764020309593230550888943780033787128510552367960582380060911058631238427890969897492099150828255705524499886719047509746759843525622411276157919015629197335036400259119399051924465069841527893845491979153706780331597026928443132987413208126743063335137791073205069989718283250543883801919288231572595814202788323726729451825169754081426768055120928282167048628159618375719631901749771215227915375434175058320239557339395994417816504226271202671734553911938838170621148774636476943657251561855214076678619168617347611001463206767178729112224799857023907979320710000748182369795344130221006759169524289032547888555741277735281471754395562434351975383950929554951003402027236106604352176102668816598746516652682579899472478481431800603789823323165021070296329462717984796965260188702615056916759664769528406565905901643498607514095872540762599571976718327094166618939920214929219314617174990568692426699972945683817134151476681922507608045666114400576242660179611866270620825054313559046412106013256051765632726263055660064447342016380933288233367875857909623776073154691218802999192634962115842309259642446888490175162229989165498607227093521847481735020534862077766897009089688766291877694402562677346633588608442318664289458486283942112635933786372715497830918043139859456297416189312692999437121769472036463429566811355332950278425626328653662858298586846462843944796458149679266655895251896312176658558188130742308769601421139838086086285655257801024739683351746809227035388200221140433538966694655475387695168448831473253243777481067452342627415020151372408438972122584277638633321240419389901927669483927708214510194511714428409244941157173168185096327609061418202931147759337967476753250617214160045971254460578811136661107370918903243795642611485632152427970599241501518758709572077644943464191244292961119399569396886415371525594965735766754009803911579205711145421605719982008401346561418097796613724947304648652961084219467117995642471853730735003978720922547448468296643828735731956632748852735835531292394024263587667275912788679683857558194106072251507838190422123556109337743422108249353998072094268368232829315588206306988213577809538664604772625509324277607403964098364193761412453051216685356100584764544401873537485795333208257315678409546395650888182111508931710989237550502135357655195741514623625567531700174429359122785117624000472300313935980696133587123708867828706517641825366374941031820677509903242596880744772567893284038146127774401302256617071727613772565086204472220628860012834295812244011389387363672576630095430042589353064132576281582993792976225471236737917029287413061225888173933688447302194314222428365903442807907477713346899014153451611789459554170890015553617284491681721320968651000927890719360794911648575061015023254393513805100108741743159846830819458280151464267385741490117585137710360195817810365116325896392422420541074345423664341129663625618915339639268197310010509075155432231158419032293023205657037320753532283973670085247071722621435252175370954230171450650577710988709564889899099312587995266303108113439326606184069734482344801543855726410696864966650102753612368620086233794854951901051885177263111020614667905254265928223331427502150810660610120660906807693946270541786613084152427981613870246117687840500442876901724775974905524456418260129018046840504838683299347774537227473802145994380294976056143490853349899135308605559791908195250916653966387835923738438278843934087833177022527872135395119967608331164786309236880431040441504720557845488237957977327746651340767239380453212227493801743677766773755737711735543839347999990124665650768135529113557379828263224607514528792986554461416597790696939803769192197824972645757694495880184794018878612348172792439675596190233368390984447487825746850570492333490744697923400401820029428854461529218181587728185167678066550707439345574647141405893501917627325383210184448125379146829063503613856593676408172496400324108557664225333483026421188494408918673496116110649290112613134088982676566923481722970297202792884590893357326689499378820372831998601439110744076559731313587192568051446259407916689436443008619931564459014170247680669268448768132019977795849062162969807323641785762147419103148159321805765488472794658401635185613710626739260016783153234131683431008036723145786782162186597370247843766319384637907510206573807976121278117428298185289941093367749536472061286502719384670467623457646618526922014341294068670592937226540758226384660794996365621015908133697804572391277799902191145247045144119967833950063351794602552001521000662185649276130998109152581095314667265567135578950753973252665179187557519394160420497441532867923567127367382247385807766779570021970516347206132554951760280760188033145594575461980640892289500163540205631015219037542211576819537247139159876603658653790350554723071661259690666976510036593820698566843787162038268525809689063887906364141654034429089521866067924128776930463258514897851263495730353100397456738800846394497631528014927746545093242334223119349661544223766695345359102984694758461933611957431258511974405670850310742340893780818335584155321314090360492371080220160312641433612429586452312060484118492080278638408637489799234175905775384030742096707640601516387640480686087576384865067582220348570344601951037435880276790509330887182358665311655272612795332776030155436091113276072951285903771279563789247355869634749636373940220372242994402319061420204252688934365246562310811306215394496516609572826957275434660808148931194615960184984796748188039076487606525249171596892491426284484179091023924765918186697681893373273872570881414197704473049831724537462931551703934932324602813370992790514828264741891664192037071548707316026972516269371691810879884365059719061066569609227229755652682015286582320254703109598407605362692540337115000734206246318932259122701373042368834610162356172816814363120602417276334914510915376351939613429994151438825547551545313557464713681208654390862937966274017978898281321817873183596756618710344344313595559468731545310506251621845350431491002381111348947452457661366865146754248571137005917277929247511393282931793789371443239558015731324736180425835696509483706531700810719490442962635363808515617121924828036425161475641233148988411131269790519661582623604203992058671125841808191571017025209393072118184580033676204032587209828103958570463641909686993254261053118298001661686581169738695893206757725529356146296663979585165351628794670608475600139913783748886678366521775375805231286054635916253142530997156220300968438327169811847791684376873193537469113681611391911418481183399538381463360230989924659921336955041680169821658831546318502681377331362939349314902462790767708946072805529397807610982560841486553607097561906141155189272242644899145790330545155151468493738067264016672549762237453761777213507807707599534978586680673426480665743187409613781194737769280458973480506284717365968573937757844075422143434831579058556049443616400963658092634036909220962026839573892922903200884548892221641253294567415671233901010192201722008791544903696514290699746725431257309472030454611560813822873316186213272834063306858679372316106991673598925576185758309037975236433549863221624808620324326574579787072581931348391429995949555025662003382473731195247768818160215926178024679259881280791333676597613527032337971593370537731848269597802731179121132797438955309772709880933278283189928240716771614260717562249618272949192320289303777925525809245588461754603669150252142211118641948063807997742779769535158036524089715666600778654639158881784166575713107820364747783815115276988269869569250938860421525181224112367366622171891254524173814447760759167821874987107706006391985697333684865953736983348358612156996495675345899175606405822086165856571734543689840453494137268363508943734878909866069858312804154961090914724249580168172893337521387676428178119030997018228183574705264711872372948453522107769638098585595893959160973822094788535379012029736947823845645957753704460831619986931756878012042779372832311694127902352012838337851686987008411387069242771817964153392882624217201508432107766999674278683504856121537163576903280394891818879848145387663845753656214083668782014695147889618301502926692914355680700587513771142222266617176850423389751160462288010009512406949202688632846211197660943848213386529352521344217649193598394982730390268842437139373573033208956993449196209509780027135228754814389165883522504284661636711822474027009316535469946288397645598041120109075154374039114021951375837413054970466146830348806266931652937300287043101913138706901713923276787085736384233467736010743524011959778492063151972001515051664653355885238611160524108513896621465064426607519274616822803160251014152121963971969753705095793207621669241971001209676323401104095006395802390221647720870687001442244085817052606394941619980883459709562204279239353361860822646221583199774858067804664892979261269930349347426008632446394628360817556481904100357025960924533046359828976218647539932429668457861914983957341996818839430530029819515500935898208789011807101973957065958262133456292808992899819027618276408535337248348256694726732567471316978005334317565673663423877324550707649533197824041660773488659284846652951132716937613897036351298833762561265948129244809657232401930500438750438306860934511413448807262300670860362380215815043674186446363498684779473961865097103452350682334105093907708520026725584257247209484552362624292856420862142526234885305256288867836561691548807296969552118508005116247954486250435373057317536995651325471514243197100599688783182122387135745202485390443966068932585680293942766032966239310383893703450396980358956718905877351894538575718293409071941221866148192549540747909941021652815473130649586183796649688195698273944970658682526541684719207286357116367522100344274186469323662948458828075221813504453199702599943910653935979524558499231923616431487625381372174696194467421852889616262168583129515443538029714435870326690117770529167984009976910705916749511182816979096426852574078088622890364813659930690763212330824074058419684552804459751436268743809522456729782014413886551134051221376414269131564653074239648038373955160979593608399790287199405758274015671339879643668352987022112989731897397456339271073853853422621610196660472314791189304085690190967932774284163760366019219992904349126575289280555578716696647331212746998431834294296273652805213424497800785196444892765985744674386662987130347013562249738678698457862876720057846285025945968647138564383706220024690192216070308531919299993469252918749095510726350985653121810448974244652000260533115890464563831849100961709120910309366758730887677563649618717085267249969651452907619158360166939570511574068492649762062470693221979459043334632354525396786040921897802599542713479857860730223600307522675187013964924519835304546581495654442908949648255352262147650658977985308184607679113309371644829348236410451376343229419762094343639784900549518540985320046129445135038694565669999209655604924306968332423539817311589773790382119967522452292750767513253593280802165856232396998194516005434193204300348402847118156658576727636891174302892870801434759023233945066838862486942208371528413788917923417895292791442804377601878017193759242405188479199866017542434648863808133660624468020764499501863510545487094195352846541521114027846255663990210328298040010128293273741921296556922902752883444618704627709710798361740802458164152586984715122898463643441957780586458406151162542138542987362279865577231756672532651632264669011327612218045009506470763597586987327747639014022962399329614161905013403084009664760700493680847800202886047976608047480088161961703140212919051861158378906483760055392835787436838528850899349513266065933625483597643875403355335864391605922768929710699254065136889322680087250206470667141470236799159649224065929892966603234256043660825459176804331342259303047955508050550122127738607566274218500173964769558235136670261543259863736191807804348207057917816915984157631434672165471066897170126824851324523716249800039122630703707074077166952245224264623896226126079828244209694564447699852278607285203340809346849476538092912575434448969920668696576159495692568095677310737680472720316389865094316142896167562559403203563070825334963657402358335202530369146922328992597979315773386711098355090975272330251149455907830011963620408958945734076970575168761935486822242011440339471179436806286390635732531579173312107720093384907866758449410730409825115173913049982052936378874545987556562541241629906819765420142424230997460992614942907503079181616043715123731688567420209935188029443508682621889932625576377140636340516726746645141476420320450368470517645665871589628753061012733705709571020117058723608795634951550488377027818042110842462364815857865691403564397894475794267269077934473600451299756396649822388056837424055864136401436689625692261501185552365310401752967896492510576536292628691420393377632247893233971649747750335920634208915580392736009949179489604031553442607859804210642309932796186229735356251372650005043514732837833724515418411579398754695088826243313592478844360152514035639358574356459671523738025456134479004240598660227722956752993232356116979538353404131460929484220221200676250788083604820076950198281405672270573034009375799531546329083908057427678017467757915449433412338768904773178015683309099958820478764674671588483844999202828818518705855609238458873190074782515135408496677277350849009986571780222593412764740763601519486121333315021819840296661874482755522287359969109452181677066808699571930629961473974019263268643074508300853574254807129990547834126602394364187861113427226392800273251200856192011827983834451830792699836593991790970467805678610066292474479362597237205728681731243036981782871659027701016670028222128646753425670976416926484088515079092535982810089110672170174071675518633098326093221504819036851639993087486007136988312046513230344003516564861439616236981193580221596213253102980210095729443944745630203775948084971534846622616026573871458993326951453232352966277303647504571122000294882758203158480302064131190984018289419333823108540403438771223215486495064181484233718175512059124701293113305208141825189811999036825937684105224355617905017586048214649913577955511254021539947527466761718064619961279567435620809251887011082017092043904647954818690726809526014779867987672342046350236371108379176446365903363215439930298775203797694074652797133088234444047839906454954598428407360290100515883067977229661271443668997466463711041958455132782646693988973657774971835335125464338623021778039735814394793839740980007585732601848419532399748388650993468471108910587187217696583131229304349387220270383673360770629949895717031510888224376742075713507524199998985572158828028689828489780542485965320383115388711972910367541321894496584312615188213649727965552961834387475589574778759609624326126032126888088089334406744616434290154425380187847669605486491680183387506073798449301676041636604202823893881162768092652323090845522871237392027960899644986820804949117239408006907830842840030711629604413486396183042636713722350305796931564852772882434897637623370661952193177946986905655475133667158139157964567424375383750513795286726603365548737269860627976357647642559892950754723411892311638432529727073237262732629179194199802133947347774774216976243301796975967303336685454337938998587314763792688360950489289807303209766422570654579498415599002652232809898409959742907260736102979831835935752149950082489953476486909221868952742333104778026254963190035438469287187059476347864283594603324538521836292509040416848250709360998150684129751661703111028264872302569433097947306745322170083277868840068289100858184427467467474702904121908990208649263531965306994581443399987872163838531780115683833405059319580635070237458385494906777358904742519415435895162354549939781742132412287789907695706013070389924401769068082910637693124583491464626258554362031165909631307134918094573962566920949801864427789209750444295080025894552969805700924802421637301842489138415217175873083202197833332865691497891007247902002816800044620495745750372149335940422522266631582539883781254028479605043227755087584800195936176896233095011176158444673354465424473383022825603531929695219698381171466068590298523809715561678522710335791072917658795181375439757877448443340241470852639372922363081643291459129529068430476907559039496263319033233774089296387554445209403832885934472397263182361510993418914448746828490602135639242784994814067066175549427892952334811275128732007804582670918252186494782305890835348528604638392080122461039579970381542667980458495098001790145106009320559996927739693964753231816789606532823074857374608798468858235492785168588700898644593130416657236769996053858421348990252391455174415103596043055594339802721342294242597350213287413839753239391168829033450122155222800098678968901725767667033195880181729486895164221856021209674631410058228546657854338065395878758706638019720475943952676080087469824925603541882206448015671262707020295886347870860503389703215570098324793222831803416880819220184026879277046287568575847478346628163746105248416590394276210487417633511825842108451393783258275573197336406616439151309487701683485720463932774780656168244006157159467982382521391396102528546133952173464467514228109855461392949901941848358687392942372947779661168630078837070835530857931485384496545395067176665019780858949317388012282270895377426472242285347348002363195458409658670744589890383431381656495073307861422702190534014989420135933592055512020012113562533319046196340145078628932992873382047856888550924651320395983578380115330658768386265068942610654583629716297992588854518561225039766972413916227576779013036093365261989121741497926428000598324899854648795719625531642969845431998233322307283777692012853818868080109960798889742136927002735383027538248165959399489277477007407993933788686220662481369053390462439479013954505781791570253638856602838090728116349026429568952597063013189745156192210794897431815170062556832984353969296931617548432166477016651162361630485750020713956310181644780078605478733600655507442188961931490732293024780039753479404986720944645924102229423282391328559844296371897984564372100348812876146931530548417669991741564411094575987782676527374617917395050247596175904961331331760895862265639563063775347294349180027335018814232754731090715773120646720698897233193414611234202086080513634914902163044602239770690115709930359187482277437951403166184867621021690834622406511608576415675099380270888421774022505087805616382294980368312580438226456277359034515116284994337418073349883336663416675997026567078074095018832808395464092661527314052004399344333546937198175571282819429154187683073600876792941429944365832767694420382390079911711491944695301095743807255538033786943104985676076541995625458567373947042548892881296243707472177542583520201764280839925087219107025445558335951585053374014084083384700158373643333366556305512070986141004640067393663662636425848973915067990047324008798992659945196825320140904317207548337244915983094814960617443361395681201941451306746722850420161735226120662261247713994688281137999062634502519760176774458682715606303506526178923098933771748878897241670594865241589610047925710158204676039236689020067303229757800706383102838952295336416127191017068534282203270719058953756891104491447708590674946877132434264595764839239810302106962230237095599731222258502525073964713098040223425834624419146635727837811205631826634411297044168531458663342026924970702211472318730680795945820848934872608486129758663333347195410396655081967342073495831224505312906247991829811101048895071127620950859730177093277303477802380575756780355896231461662255435724484123925522936846011231704882875427137529912561822471118932716358464896005956864184661558670446718993530751465258100747267051823796483013100539898926898973806150474815037688763614025844209336308809294041685557736685736251446517845851741394023240462811301876932188373209605463819650318143729089678871269032357332165217128347150347360715083350627773544435322524277068340091067951710689228352159664744701011134748804053399996384680374051755545477650397600382591421358388967742534861713071614086662256029735824643778800087222970561614530821067424863432889120259703156558645778295444356980206867990436988383993743151818419836599502720844758465893444113035556696800256261039914299924556643875901293828140897222988288139215362498352360542104505920535654090902218388540870143201749873928782028753528699345128572890774596195696591911755797450310573586831453968699750376926053709481327020727780889503943515248812752986801466174002980040667848768174237383592112933960658425299211918793662382146036565469628137203986873607648901176645749407817418715738070834330169539395701239134338543201470969767802740442398531268459208969843460053070840982092680176307034702981507337470360735907116243812908428868809025516196284867096584238795642639894341359576394589463251023114421225280263507345930765638364670167371703047374178547011521966599226275408359096746238810307321959167707062952907239371043561040294563596227812230271980559242341078528362759328529150179250427967440266177951070991092198658075674037115375242203782830968974502380510709988313467358456076444080178563299035882608049168224978788424166871210884993498842608333288829052351698578860534525836092401952665215338567376494820666043708857011454518918470495804380466511442957790387231437879366528546068004721827122320747044618876878315070298391583700182072107760003598990822322934811718135167190494969328586622600467138698309598872203343019028996088188472255566376121078235063291985208610706356267716292816960999224382880397573721207206197704016705757435615506181399543271173042265527851928280098023657305687272023689950767784103309880003077216949417207842858704538311805639807476983682427151693169131139179914305455031886657864930628374058224682504595281297862753030141636182952825123355553207204150132125449201566325488477273949474344337578607152382501868708942573303450356952993542981874901359471944599212521702878800904522617360533570639685525766847485201013648018176005685235135685839723828346255749446271097669889087553322070870066443062742570072544024955616565472078818158257122929378490502373634350988889730410487841202477909003055914376529485974283546569595092511661877215469845562262475415983020008814931437267347719636690924732789267579163792370392687021751693301924516968526544764537670487481471181195896271461840089479438587780155464682266451810543167361795716204252676899208093411168764862427758790560939141860831837704016388201515055117060347844043876747725270172143691444586043135441476977415716304932437300566224780664145447226584533580360170492078196974667058715572291797937853667199474787552542733133389542045744833145979877760031167326605414914728306444076593790112195935160171515604606397488620505563524743361292677490916897204824177331491537951773339981070817451237316524183441057271196319856755569202782036220377565111537077899196389966745847986837574638431566523476652059974832920871134643455818064739828549221838919996573178987688469177616586802792730050151990201396041222337221467477058936209086413901487810252071215936784418031805944177291194943523821459164429075018821325234571686921032781158120311731225512918712507827258820609430040720645076337918307936095074493600818683864275540130136003896551745341244664563694177458319568422726774915158143100106099430270642638278187343868435138273483771541474772139034438990315309304373433045981337463361531037753189547444621814050586629513115013720008206968710993259707044407120605464302151396874669446890516076813551620610777869713893923892963061016559641148331500673317735281285694485419455222221136474191058414875328793742651649141085467814501395818094695655253540176498619213447938131368715944644173389565967578676015415420761927756072924540029755704839131938078528133731788843649473985782624509256743898369053786512754857600225852102134600641054784509883509093221287224151158878476949198877154371283423563865626978231610637535360909013475494389148965291796156350514596881985674161694841117939594752225634680117521164838897621146834878126693208571016241809253856392321186399291433958630449068566475004127756437512953255652862666693671320357340956411715961842131690099418276632922967519054442783684367077777083008593895447410365854872096177286709385098393180572551024262973168243500092417240968579401638533471626302182934339126622052198588284655469111527063123032778087405201841774364783463895465395777955707564863553400954503673021659652136125110848500171781130672291307741914942327430156794131047309565431019276586878872295364553119640383414416695573620603142747323064736315146475058604695052562958491267219666493339467897907141436189271954767591530296966317643905608668936012983032635919411075337945933933701974275514097101659775418092528385723171473914347224114621285947614164912452097066550277192087354902153164908059122645477198349669144445331915937357696709316070003468062304899514445670340690238150739423994918236835408446855054505375889946412045311846231357917696449838661008103361066697352019681548955631966258561607499988735745713170687174824081907652431024752017781423411454367862656008938433793933675878943532605105780755629548019155420737023597547815999239771530841595401745799773160942360123398554305288294181415348112847086051452973677160955048540173902684107925893929030609546997138066434419952690242817455394767042518933116681160231428741754561809995742567957549273834371931824522337989911133724072043046587972040063859352450194219197800584955105008488923556459814949399979800225414990819838802341021130407011472657964004123672915819809024154166969657043038993950119494067640142107198635557327156504344410851173143039469430253715693029911036057519325342109839223075129780288736550053025226635742544398615470812605033414727812188085218705463094466087470033222279893298525897310882201137372091220039182242212503844360934018676052486699159976572831059694902678344569452829735391976363607614871712254025128494259620183368195202737724382290693480517711388280226890932003440991175313553403193944949335112678190270513429293349598045558359082269688338877568838782859227638281137191426164810298689639423140146179382781791381194961097963204694423143596047615911061147764010314623503600353892075541240912702318481199222719642678387877728495364475121036200180423984134591825203200105611325570614077843467760850863094943904799499407011575652752322234796639953537678760099241385329031308048465918442781892358249443302503150287221209178797728831605924087527823550673596945208554972033197526154443312047516884475646334422874537469209899866520263187343819266139124900304047151403511664762778394191347605494869097804134108051156817634059965658666162650860059039551319720394977688645707615751853557837984417227444035715495367461768416458311726233097858363782465280015611679320256724739897781031538425001286101484174067835521673891526656113288603371056830818890666884979226950622823715993446456196415669950799372879724113304411814941811200169995108119007722574587657211106732515363850990130479767604015828591003347563064909101434741887891085918836088200201122523672970289464811958079109436339514726791350988698702041040027340915652544624967263732300156250567216607810373611417338150282404531855600709278572128745847397699836772139594097951011036631277789124195474639258326038028538843888038037732490497285936431243056582369769229336138032972597754627805145789105328824597483102837299549523983074248127017387814483729952978865490087695216437857922928577401235597495920067058473379618361970375928662790009662488433803351943923514043594597320431684272192189344293446299438398610260022225044629446746669952669639000808914617263703093614484045256750123646295237871787307698375533197264942820334998627967954432497260901696170239234997512781666221097343072221961617709099794236155922864141369553309787172999955412458494564650895160801248460260580472061481189787012022473914845269841614181686837806095152944024981284270567883138236928717654270217003953314770054989493830768667501937642568684311960352197176255743215636821205945672805197020397158169556666559294083759152310381279967002899139835716083316955386486980740929359263705967289720188239550401953608796199039801307279967019706812446276174872904315299490368060040049106710996875025240593681310630761250554893294301139515602362557010418415870634043467917549271529096875546818104240246850702509041845493778425443419077771621032574807460753662698022158323556577887584267045636047817581596947905915624786954822628959931099856764333133396559494465909231787515813668924611191456061314986330867485880366190844263787655442855961331465964806804585613015940838123024082825988378247291650777724676021216242304469333232066668592503270116185991976243803191567529622278920190991984307941884240210852759769428170125006934439617428305416002760014041638342898335039409196699897148131769283882231298666416607273388467587249051996196517596158202023244083572746245679252716147194235650097782770174255113100126940891860926253710074584280070793961313332489810653989139044822438235838723462483569440049560565718254999607686128881407554322788759705986690181298311247091392852673473529234131608810192791411431630915791164456899877801276829665916095991838272711807238970427649267970469864901531722993375960315415200323025557959695580820054193957792015020221580904352825483801953957477396264789597408990613614975823304322484533331514889236080542644748100285229618815128435516272791085592418677068358995461089663636276722963953368541352922240713330926145626096513609041281748755390989847362324659759528274901062496220370921807546141755794150566177829213304011196671269781675423458393626022600084358978711300503879237695277203681709907319399283884371898884755295130708272311041779072514034895164300570515974682376445678668193368322578490292014947090915387507392830505582956920899598729376314074353006797831003469912142614214883303501859758970020896846602864609565058761027317895957053366780706269656360834215408128561858888387707924001703980855454700214462221519843490451878830943560987268770404440318368966803829321807818596924925333297794198191472507372071478605045280879672163048673346517499890621376621902945446282646356394191338559125285667407965013982599825655324188524477942473067371102447254741606563144928737341323645669509509727086875997756906366452235378200239000534430547653710472319513915686799780470773090240263523155313725273917544971913639844342170708304298141690929076210844339111635811044924498924046511203984645356969036130900540932294607025646425763231929868512936122860524031996392001711656835519207440234289718992727021807537458841653797426618776524204417115014083228504809676386489037267474150744576050449803589795012658619323941963957787170001108510443916850762630625536730772249136731330427624095031151537113184069874933755417900320017011603448807137097472722258297248357843277126511497637836302734384087562046014303796310087106717750270536757490383734313236356286239423882219343935640288120389021314178222255857447719341684162379306951901826664791482412796950393650646444572052567248525828259753032003084443392450265982118650437773344011187369087446248738582306883688531466774395489952183077049549458129733977032973842476024162681393665352315193346121891515213138523962183347576953737660884731808458232583107410796820949716525739296298454386302280822777315347182387682312474048838516583368377834386214882539653385256009332337016934403817804878358828067619815496461804794021258886239788038825871027689066418063110983579276965292882335681947376739304722381290489407642486841550788988295002123829025288011216728407691728741737722681741491833271667311917809275731753032123539304318325555796753631331426872205172922253292346750496693861909328625203773167051099694335274460629404780790802302010014696317449711224306741693577375177202071448298509987340662724043063974234849185876225559901369562369415124750068992926111246782273111198948650284430283741113708504131253774148165527064384036900778556602474419982066427436442652855861802927208167700367227415956623268927221884832170811437812062403852269217527813189682212213497745630949083326047459644763064096735153448432560534293631383253038246670477043646276409242598769683350356020828940439884599180465073266410020953506960294718962362533173560952141793652699645472395316823159750649973755554649088174583384825292814726328030291817535519891984018487202322206832174515537645806649506234712765334215597264088979913245212885870031991059994958211147408360317942445188272425872059197331013590715788294463040630298777900948431586897499704227487239639661742564698971648057058487555023349325292796925653882291914594881238986818767593281910962432747462265711766953564234948266021233143000724424076555222718401884826298936461718404161956890921006240832516030040023080162139230042362263321752804069167076296314375407716524498803769869819885419183910286198467863729102677606076906310526550900078084092601874132165865927099874796676792054903644290429288655054390867004436943813517198748260536301824391178127104107524487533454448898850245478699231819375911095482902429960040714193323576971057096324929270399680171688731015559728137939863488781392095590013200868123372985587082208118318803056256659895003490631269683384301132802246567151392032216596064498609636640971210387179976659989669516184433591689420787297481215475560924843992288930555222328446308368057012454781195185639576890435780084477644266134961730778894574557700256306437064253566369933924721870575105213924006038761695374285527340336599571395708158909035314610128210756545030663270681277399258417642161711757218126775698539053157636613387046278431039917449773513368341819526243600589097494190788939172616917704364682856468457709902542825870632521965183504174945208732806995842199983279602849145989263658908111264407624633520662302554155954272618016445099877351159762881368221437425743588089604813114472233602480335336732368623966876309928141901893755176796168619633587552333969454921692831328355610745392407261706605513595552510497343028491309820862750479847255223257020073497860076416678440104798222378436766530459384286988446381308704885902029227630548742666024742796846040880643480898261052611134149101086241322038498353464597844354425163095975013134097275408549614975979745878684124000723146517152644281183877661234515239155867373486571112635025046645937819557397836927130030261655403244930982166054843895620944668775098008917878690927330293258535461454497190723622527588936338704118000854223304401331903977192409156093866014512716715296412996757358895459484686335606515835144505304367642861667452352863373050673426338157214227590389183008261497859966376603739677746599039230556147244033340128139731850697134322843017418179688463379141519651756875088463206485935964721744363780149944511889498593308170273995670427808399597600874611962013051375488777800147805506607265342666544174417838802908550629155803212385022007365561011129480859922979589377157153516609373593782686926383207081733028734376928862990548487186567814377074595830912205996880592106261151202416990981299874236258074966844969690220162020694514150877773448372194405169068522866033759369649540729180236234772325232075233866836703986977053067915313670141288372020695211289492332924870306334158973457000813008742417533529050822657341182615808820869888293847089643728004772317441472719719677927755874649313165395407436677102429189151356774952668394046346707992080973167467928951189846265414533153776100264864794381288035340700701463497935875480625977846237749303350159545901664426298613996772537436952777269448060686518174015902908592574991907148999655613199953695867812158075860436504105761183058221496619242726390590654955446899397453932233026406372832111341540491975654247707129151271311025852279831457901350253146450105515014382062096347111784923585293041410724320559064710321737318652391105667774812930521663427142616823774795453469312773393337644975285889996355133438918581464993406526902739687577594948987277814113627359204168504710024819155874581376442183496901197311430777667963290656458656023271341816114415380868683427178446969712932768560796640577454943035423523569586814630224387399148550612941532480186207235207859739370787758193382365060269258067696882851296944300378859438998680233834498469819638021631266839767773005499896603350036368461482523438804785211531970208417625063432904782891950993581734054458529949494544086956856296472418685593332813223360185135515974692278356215591301540725322227650465912838442939167441991703579930449513098594863579127336684338742163244150624406229085471448602766154112841701075739831436899643890522655929471236706310948297074828726515513643005886272301387985015840655828277287621555761739242593091456754032174763988979418020472587281154773029746937042540866835953339325680411986583771056433780577394246534553985811480218555342730288464569753184014138397545881677126206682569395134177442584189029081389846922828256999894374175869096449291512839425022761398203884582230648877820139515698315657090213141732449806721875660957234978870268194013944007046877898472402973180715499739166378722056839829525605604547269166339457967806452876153297812075914601815373372863095518766772887555024067062137503353831297185945279116488233866611028585257681240485384659885972282796916685778266076672787831242377805122345427374966886646993583322661094303614884970794435161228269935585165585136173422744704434987651900823968593634892532971297864348831434851159692149638440528301234919755572753804391834077946142866428440452739353247799906779655086632681435038810968465514047838519501136120463885958399204174381113712907890089888014831480563549298476332507937351273625742711210715581033763423377018698701398474444930503808880091070024590218210246714657367737614204110122090890112163726091978570207165521441958499933974491764814671620697935759878325230329807617519972680120353500553198760140935141351760023127565809623161284752321676387490723990699780281890571540802389794002211305355739991693110666633397628199483673314126587445232769047634724735539748193204356594417008485228242506939870761581366120772780689829346802332937322715477194091771059763820489597712082831984138894719134387398114717773765545912146712612411795408040097623761680920774168539634278332476495008977980366012485733154959870850337544591851431488803837076971115798837229432473061732124785578488456861515823455916179584033023469034100839892616203707113525943770317006400710111119478164164220642307160298202638490824886479562687501087127562689204883539211586785768209684962733760659108666326992346132074948272370437667396789035203052500887520226345929630583867953242176413325771380973897698349363949396126102686140152608115238310152375551467119092960422261145723171579096100437755596858625050693735533280893442516772017282799265536276049700099430863412109547349476721048950365362958714213651752962066781492264325202998232409631084196329904225500951827297579926518896138919505835179639476389156109121124968814976141990208424883280601190252898134856104566364724446060308750778032766778896495441333825505673528937161140419643879470244816743216801000467909977135736818105622971700135853316938310324313406768762186473345066648353667806616533775265973752816886224081932899017652813150745736838184983506005119464338083537380860842345524713301259172310826567845846796631087311989648246272193203539049546711771376204435629945383448135306672956621682662333827861022895771680943008455621004017700046211934357420718264666914472242765771348283878886309743718377814815887539412321091495327543349150543713595307210215421325848970296558190355624403803195591642923459092769531982923763284058971845821108270395290653348438963278601735795909995928523874877951426731471157215731557398466027360096061720373372081900535376511336878470711561341685169496004023791676262363678911205177106191016944749020754977065094915754036546478712193750028287779716961462752830164244693561051966733600116805591493805201657239339783503431964460304757234192662777651028005407641518777054638401898448625035115595702226166691360306195315491978005190721100810407030871125235848726608136085054517907576014027281055080238879896062185783135989943857177014197008716956494988249207756678548919059751608953519079568775771637098798876338664909769859020964826253261947321648286893192482065969809477016183724557618558011466907506270944179887114113175673416074450728169407049878414122404061826749047578029836650434438437514440801310463597712117589703031778722681108608978725314523385073915113791665420219047160548925816698113014244080448769647011435401118745786020691097824855835489756251530194279846460237002874298192818735157328936798953274202018941661717145392259827009947419026933279196276587980766520680130660445727537883066744771765516007305381881247530333670621252452175570255611643034487205440597686931550704420639453796149434600598378469807431604871441734670557353067790035128595794719803318382583267344921970665192808212327674963202271604295868571258399738616617530374945208799896885285988227222829243452659581771670601130313550073780121611866214954448705935090070639919368865792688595464971863673228215604836420236748393211671387208665702191079054255433325635733380901691644173425630427429049759816764618393910710885688087830329569572239399890196972652559091570474353004931153462292916282330763102500125674574011747388190431774148575563159142726709629183184271276612836325214662757027677184703136232186819913158970825589125265263258083357301278755816592659742047894491899514384292498392579998679776583926606836164333354974340551593607913355706540767073606476506825279207362372589035967722192179905669023522393883319334958383144731886081276904875122793172991464779845689938004393105998919648035679620676449848832297838778508010413973894215809488878709216979756533242344081940631043737473874181418372731502500257840175731358770078987200713793846453428848424394773376917886073939010062238482032212100984664409407061035992155648056914221649474562744395148619823738849691260578934107164548257421773811482796379011094423934140897910683098477747554052711875896760678353772085633665054652222396233725834925266050118513489697522258314281805544099189553478407499894017381276046754562684783675709039081906647806293047114297660301270593600067256596364485372543034385057145186309795031904077155523626455551072589610151913660047142376722486555367414024213330915549119285541429905847504574222659204190778780857013462404898731999082420153048087510735890600830331413458368248487749924027498149434601130260820759814409396076026473170862811925869581316701436776970127215813112656047396791152303310591934211670773380667417620943830522584883617190352346837975347520873718811316408351303531861009721811895647629931074439351938827517006432364193301815536005625989003344553163994221719478965331883576094138507574515164567826277903736151807062756054430821267858545384511981894098209438083787654677780886261691750522712613228830433570077257974550419773030163790015228118293338250513733059288712433366225276078050956830043994995595140352265056153825767847167729907702329423595476567626521816493973298826933298000643718589239503587516086895729105180191957893049393968405538258346363019115941990281623557837457472059026026405064314019122747586529738437542395001314412042822141010784203997273005455147348744617639761349032134594775204992350671553341152318001044755236294915645044767882543621280816999051160275871386220571869528927787076757338100182567114460615685135152028817779546211736129478694640177210380192416887876368377008070844337292242640860043785541083646793699579192165959023841134514918753986280398052735595548874072403387714444078765416529568226262103530685154708908786587822314257449636661140968330014089887301589605503501794635391281546494230956050251375851892446949480629286935620114933903534908963224615291778576175530622796664909663018201353082241491575036830701120051804177941190174063434291498518985133247276511244737762140000934456017858864572377003867326352483134606497443556984844457027809182689637041727682554274650733653653439162783907387022410542718584646189266318618053082843555609991705620001456551293129433883827767181682207400637302308559645294580156293274542113728684522693837352774806686397538108856829160565133519405427449177158513766413902600296293802560886089769144812915112093087541062207487010890145711496737465863008704987752784865777353693271435645165411919497337536874964887462838219244803612656717566141716249298972451869946449720050289805620131936332393900770210802106856936560334956771821714817928783974069871933810180556170991041232141431163035601003127907929619209972664500022045580105844232487015043932400253887994740982602234729407796833584335339282842799930578925903712581870515310657750418587763728883193762011865619211078902997456905607981143950388772473663655427108670973412338639871944613590115420200955983795571158326641032599127593647453774001963954489641737044230723531393796376586495122299600212950472365694770062092835791912874043178927224068090899445319772497772498121231682494900394582612913410311931127012473967682854185165964639535049748362589286661901015095140928266717727941989554791389205837591048465910692935621807838951378573172000279352488005258223272128548056638144098234567204138480950420923286480304917536465611709299558703303001863569339555996250887053762113160328018507777646341916880904191272719446298200844126288489584830683980315087576538472633189946214041429904619876308996570652218176239675919052616069268555958582914024226829873715914069974448983683562551506368419124238598027147917205465592972893241903966375826694698790302936501000379184882462046362166105309617722533079185732219326520544933683913193815374243731001115165590143356506275606680025898235857152637606992989411057492794993811278949480289846763139537283743985442326201297037806521435671827051733369382319011369372882805155502186523744901450091168241373790177888062103724346310554864143473297047404393796188117032320078953853333376525783666426889426288983143777753661569837292053669187121372831616580263090541332622142634345804844586730225101644594663393668401032074382088752868393869508627338847571141843912668221453782602961068576545034065064832241674284199943136762940266346475040445951647485201004775778525556856768900528796227279108532342087176926445082376685347829678274647604813757566756797120736622886600941376965224384459983603507280405501695684873101994869750449243426501009795440318321124598623510872589260466672322843539391709468506856290624024173447433614363920639090723647980130740599301342916544762617601754587167161199307226299409177256362121151019836216886076952561831038672321133671514953495863687807026328856681441355185571522479976199420495309198435372269595534512470436935729171730832931220273489829606216404231197441460893193052417142132989643353196122537978511468665767050316293812594976160419260886641302979769727137095504287978116112451474036782245761720600181029562678632781870965810525883438601627736698162379726901617223713468382576524865062817110470541125284484112278143114681012900347750218426230460039946044400483110464486848659753601754338017972672325261266612567811249340999552751525759589360113800132801624872015694398378509827182713881621713355921845738378840533213641139774554174745814227571383889917094583516817151303640361929322757387373917714126443368085388918225824445837748863816655223263366725111952152483498566143232341967873310612756350107742036539373116824069530014100312489003606143008042554357495832031255211290643399174336213270062730881983137202533324793676519558753913190001982364000809966750481866329223345308728696546624377234306215169252809332176316085020377511133662138207987572689137641245562979292329330298732909157308368342978091973928191258693796352748258645851041480075249440376590449244851177933062773969606896816494022816792178508919627467005607149418143080791450959400816207368055617950588623630317603302936927612901953746603573231485770224985806946384933519130131741534722311488769039982145465593975075400103543260676997385795141889474757485396686784673761202221356426361432491823962762198804086224423255537223491117464351605528774921300174612982606722048604488547660353840093809390167326481663534248758630243690121187731701384599041410423810265554703071703653536157699640691557859784056207313355353952066667504444177213887888344055875873745960157168387725861200814785015013431754815870894201554638876279898867978299101903983794444382541633406597050742391682417254693943291992194847067652536217159595261520554785295212278279564207390335263860194215846515226009496634185107795376541086035942481330467652553391074874249032390198779310999226609051379608766244077233860926564436119136627048753807678317753186305074185114198309211531177420035429452854690998812378448725797744568432937568304429789445260449237554297658621289808575400477011490202600512123254206897223336234581763242680160743181071849110288225857226198229846111328565777706309267185786937329707343349659231368585978918967903553137860574398548815307178835451821109298706308848544857935141493571680319512414386681754597017885782950197594336337357157188065644040568335813660570293530300855331945730617931754073001746357363602588294318168889224589092755215901497960022585214270327270442325861002485734699888244113322711655617191914757231540073104415435840200174812064475146455128488125888013855226962638093244097961861898217079469862951794535891397742652533432754088292026156235538051335367768684335791006539187668311296925209324699488906060097587546991681848242015538569914187459567804116708818464183383013916072632186257647520171909788828128363764194860832568901542015207551388406169042708300183623279061684010600216272011221859363060588556116433626453365077599363057365974915698389758531442397431498472403434939648330868297614749504320496518992471262111228371708090504951198392096120120465943629511275505642336946964553388709459745980517167056605262188844580641680470096461840508209454344113966361920309429563956651196162351566588361270151444321814339855032119552769054773386462754216384922057939607076351087321744168221020156072153812870840467202784450379926935696815964718261789126175121886433858602622512488856438574097316924043203908639838996220418097601575424473293953145226396684295758979370509232637567353896064745235076860510815447324706441963200941556358856739159340574962601195961711146162943858155089419908371962782535255227222403252757871128116793540053290540348056619049630116171382901519916676780834940475996819749511441367630078642422013929479168924086285863786221471696025654033086502159280817404943340208110440937502336277438402407833577828606082186882897553014922482680037033629655688032777403974889420086669474578420679357180399298422812535846241387353953823274916085343215042048526976392158349342899727051816139484706778808531132640446435421050732408531711252349664546350776903575033832574300849272592995180552276517019485297981917935794072919923714126874457080336242611389672735854843985372980662811736289826992307355236204136987450560306212750644159103592297305903968306959132919711844519395802587646662674447579676476281880657203025131944067475761290208476417089612914904822236356075299180840395321733310378980291828205945639282314202978953107700079072567216200355205904211410267874273742942982792005761589896510685545319228055072995845279393443447422288998033564916481738904153850736421093813621600352824661324594251721110889927916889987105355105182489078556571038970941836550780412462162415064126023954356992107712406634808263451290871329751904519595052644445751799502777001474741386030697008743966428830292901317742930823476259387428598474747030215850386263334784606447533178166624902037020115317818163315167232759310997949798163919584285541929156138704874055229885095606015995686527066836644800678910727062820552244341120287459936164549115925553551224968450059579711534957493278289372643791317629321074892598428509842989350998709196635611766810963371499616232327718502258145971237348877555084678113293979359343987548860670056317934734923420061305325568210951604905182267554742813673939297010666227036628968669407754626792881261252986450766526949908030481899224593997967234401132445920401781187078053956093772160961067883478098939894155769020930761253121026315737114721525855206213404438954902967545185320636816708800649247038389874128528647646841234755043914910290936721136788181181554199842285838931975444973030373372246537289942309116299951403130091356363377645476811543501390883095254221533177737947896701273230998612742875233376547632483511912974391328210440449322898839720445721471460632050417573562216509807486985577834290042232442469834326189375508930237586921456108457869736357462415798610681612655014400773056173339125238193524323010226989478447180894832752721413596400276989892614375082067647101673449465951261160868543981544870119506850962208060104346164748017955257938870302910527023753770893220989317192308585395470891565174389291187267042424062808457618293384549662981594181269982013843434644955477542075877255225509822951572298961305616483756618927775832509110241988210306516845230724802186185871399505860672209841461286106903621002758642170927691534187291732258032501250448205241291130567383904518669267947476167329901213246685823004045243627025094802672488620455737078453518901625194708630804091905453643517895477691545847444507646756076786185411496933134424364999471421828957181181310190667716651073948775714851610153088823308401849885923235709985556287538281521771461650737666892517110186142781462531846317539472516963481847322085462215178407196368633622589722082891784006392859973231177071751812982688661395353166340757135601511016596291382125985954790594231377169317417224365299311931983503707255969761388662156727469651343976887036199279590071581608423214053359891984187048616852253318703897957421733725662984606379635609185244140480475205835811973601349385634065750594047723049813935376336402936300563526461688890343067744966189714128060693720567213176465487030628947081939336198646399923761126167282102029251703193959638837963857864008998670338666411367548147016371280351851471477419311525984310934888054962131434537090504577416797586122686738159499777137756576896972939910387491497421685909274699088604801524486510124490373651193341786967611191682516938762144232271282410421597244440152657605904297241344179712974067196537609061336236001033186928390794311094523676475355749835683628530266594396288523979505373256564897912612238199293046341155506038133231825304136150729583995342794499152850455932557443902488618938576953468824218975045280349647460138295475412186910920615910894469861808469656025800081441781933887240190328493770810595487578577253206222736917432269494225195910413439911300214250180042136705855900631231059244375227059184408791794056235982810221689244989080657640406105518640501689551628045036255467552549041093839294743334437000124040492643999258516582877372486304438337949658184978187356884478795118274201927907982844875585515192671826954102361096314258292756824686354035482362203909650481213201722527002039597948513169459051854804706897899454287259909249026460018671000601931138602915859303960376067383556830185833765060779086255873453876265068344797250832654021851934287867023620621878028762916862622168716972100804824573434861723154351742321511090770664352914164644573629660885071026180883954077559676732927629130596798360606803667449770094749736388887434842748700337472052466574676295314442473967238319589122754769388336437011655367437475155314046328352798157243865266143341500900157924413298973129217822766429513350963205530367261063241607483798650769295402469567589308258770092604498905525294565966714468314072218201763945502802564957151231407745381091962545071967759991228368885885148370929738571698990665113923529074819280898154585654773729563128053674660186044030844159075709816196175324118682325735948516786493200790729891929695983813043428199090125321488510957025455017374938622714258855976342894067888667398917608442973918389498877864291698361308573910284625796495096812336539192408209878345086997425580376557332016558610322719772905254024713962715338524318940175846819375873700219457785115997789063128002152795506786339889648284184714093470526364128912722766823142101159093113761599980308689446213359368870214322217683756122321950685390488441690103425494769505921926374367906875564118566227564861566060168519360670598007941057818635817049705721450812881145803893014689370403855532180520100682804523323772429035593249601204822646058597179961243211629202521121348946396185941599659430783728731987517539354040677359107515272917051609801354524026571536639460325873003280192718578537546193626228520109627006556921453708145152530145240708456596427539340849316095113626411763873041542520368959940902756406148684237890784380375379422640734151661448388431361314946921016001401838980352931075913267956910451828790257546652997160662970580550077871427235033080960982354309627491578402203181032580121241240205544466798263914401240404549235969069995041778023352243756206545540629374753607474699330869752521886845824500200489124560579036448861585299119475705448436960441036757445392395696721519219000261521086906164230456050399298815431784086064521454735695534644563032870294753463986742373331921185597705265485735483444799004501219011695834183708575928510608268115041141308789660940482445496410155265964127332260544573051917146200252411682145005690924579959905536368506613219009878380752757347626555090658155694225095614772443473423663306838688038682194002091179514557695524664123094856155881117495779962952707407528286070472526748299153147925188985256871969273736738799207529020769374001925078253713808860440638965934997254346302311167933864361108314628567801698012462945819194381156257216075396927738906668324697354126931570953206529371565876374287211445143689275459165884866054814194189588980349321650243343644871097287381701132732710378461080081699972147064086956252394048237318925333629194871410366820331822941553600221703441137981458741150415731158806431245564587965705186549088397583718284212956945113848548943478348055466088593079477923056360051836910704924104013122864250820255434399550405341642821740650330261103155275902093184029509807776672063718076295699092758627551538298211798964270068889048868472529780587306922837873880228919071835380868226958037692748652152612320020001028888356003453488842812438490436051621201601471965446451037103778360131685072219992708055382167985012236608767180859543700392774081122726205091986230727313702563859968919442735043357630171897513981673367603815627467688856446300017999618304162018544884711540873149363781683207829595528897656420565427991077614900599519579447564346087928734415467859395287692598858648669698044331222455208701351358588613697833753869626320050780137213006879229084320710866856538702978950930589775921511837614152419619333715340640183739062741758986562020337098699203415338047868109019652325401198223391908607676926287202041038105398923345895255073264489405705715558822695919384178660715302952712922961179336294543217893117817428293412706212298628142798735505589891395438033472957672932414921967926446408287117963492556385423595916590154533402659282005098006321544039537993217572378953814881997752589718398922923383021439635635849611086892343846038052283782509458189329941921965650120785613623315381154358005270075695623719508734258973293348520901001553319722628685858077880959921847544643742268473401191961093246416718092185256808819951288924398368296323212782231805814663054227854260002037840422771778965473927631436793103693934209599910210342087222548896067650987334017764986219576536812278233580434379759431209655813954851361707809456729784575542776069513688122490539585224194989877774561393105911930804096198990150380848429231987976196557300700884251126267624953623774926516504062763318285672225799860366875217863447590448849903732571566755675468523442713699297163748511526188619585500592956313212037874373876469857895826829710464182751064632927359410208115686909525338494736552864879316885081231046524237946816257680711535214533565190150032774738968798672746454472871009069793575277626920818698546249455654692453049105469140257647563791798602565396817189646521994747177019254659703294696613988301413694890293280033537509688147186650102145819845941577637148379714717978926278282274292745653930591562697413723703584935375035103519274179477528561697954709325103591156528052367957968266902702757496390279779836835012554796476557716809608513677608950948112588449060300707137604407178948123600401101151118716283792668506383671566873965152281412854072301318685245488298025497043692061495478688935924873778116865909373335549588409996679627139136184040712645075228670357340283913532283927216573621640167662864442256436675169823932245721435899238976157402254308676238890274633951752038508811107695955771821778760487184791343683267598339159025292802516474667472243045783370097142139452149829302199272459303144632901126621601387425793593155399189063953517665043256230052637467086495814668752756661413290153747769392626881367261379486445235001656169693820351356267243017051250563140845321876287647617718017421355563426021855004392617524449594151766118457093280544583568596459344663789847581188151976813910045973750224777555579157887191721560861559432462994527674417681996373203747125383753595916837702677607389183652991562872563891159433645771959610783302091816132020532138670597393821846893597266734027120546776985544843237685523528176125463862446396379419343997565182800725314319666831282388005256362787325037706877781550676594050761467772970368714906595815719053692124391119947559070320348150005875573348211555464125157934016601449513750448954845855990002790475479626255890600088147658040781899440482807811807616658228033552655855901466747915855718977391797337912309969001433115743743116665386390436160607321276552001354869243123266164099649294552086774420629072014156502307820991182780958403758233399875647491768502545895630622871001482450154445796844352491328724760875907056353593012546045516731112318421931039253541240457968505927745275566121897986855765343623441186582983794395485277757077832513098168378837532716900430524264798840274805495301663936370005392001251750867589648176036506238142537475866001268656216550481739351829838082406149065633664103391341750683172616818729392791497811389549106487974917089273037159771950606500558197141199548308820897737239060847299442392501951278211446495708243371695878950536270746985323262769430606312186602891722901179569869380917703151157582666423403953995074196005614602157589112911482739387298823692721047013332647174300150110174986682296517481868685913086162559176776980458092011780108625382255137594338777014565020309435998825007304373719936941368836756477025544415148900528067502909083553914479109084604394191405354544555668060303237532079842684335712979924348543984347539226873264677484686920282858812333581108257202367380773812675459387044971899998156109814418615220246320568750936335837185709525138267327556638184762840966463137873228744454295716425176842654735300223307989008312672590708527911421641507184423509278334579231034261717780765791085604827388094236719303375227615558004163101805909547715430054224860892927035539685608545253965962049419388586803610035303570877831332019144001971837544614906024942271886859114571427059220062629947983608855952121399539146165133976574591220814563281224117909653264755174252152408474242100335852074414922566581511949185355746833302319913098396700428153826927468747365882440651186155775558692520002493699611548407851354580845711560746897544439125925016606694484809814101259282130461198802814483061541147101251401028563590289035795937298097938687767618974915061259521571205680275922565853116999236010801066393180867595490107956591985989709641566212016894232706846098309415820311779264647103936607545503316505399079884851200463939839091836699179321974015993378139402828312973318037493347314608722404651741205924387382848733504567760510632205043922527070481321740937928776737439436865187475614942573576936861933145184596638822647775872751979365205754287805794943366309537261935377313902816934486203911483710112274959194710947963767237863260567578919137440741383854023609234481362912598872098770218525494274520798498244959580809533361323244401756656569366103151995895909938031836219033297408766692888997677085834856802457884576397312787873944870227947591369026553544033630292904196138560254533035397595425127110330196669839927146850884139516231317901643352225668419476568911171299001525143582665943849504068982792669252909051501790777076124705323356387077814933073597629944643623847181861063089518605973677657168410003129898993652460745600682787889422949586722561673125834516733374773601258019301848879583771277231118650407714355801557271828528645711047418094523741388407834022997934357404030011485338320065128478721017724849583980229587377099901507562379789096403279096112769740938940387235558981912481840079188853231927430937276543145226857282959579676304816609714797292617244362358443097567842649599805026539275662663943909566705195050421750689934793280884931183317516571251984799907842511520931623127160869428113376499935739189800911817607295235168503966130829964371937479695937737944843626286699981098665361767088070151729360294312943619038735136285251875065331241002391228745225076011106639928042420168485882638456213049157307879998171808234235239752948490897004790366067820201064865468428957005242151884087603606568575024616025722613971066071215915233588836886577514812270729296602082895206716494486941958106175076521292976751058134216777570624138606858932874148408548868204558687858398139810088311496457342959053500310526832968915906419314732206835319449953245718236093927384708584397587902684837750302655902144812631777767841101976816230392530491089843731400208802314189410477878028125532451608126750923732157361801324656128316079899819488797525169519776365685325593349279108660196529263406554744199291829799604028219316304857485572170073446610354782883198859248889234458719128004528163149917541176502222847778076759000964873982757888800174324182749509325274685547545515570355970918433349128284559524799380693965927227967065493237913226947284621699978536247319353771984018257824347455361747817450224622577682649614213807640482562506105879424821880046631193773372052064367553300768103784694006866186817927735715729021960281572265892317428325915739523180351132263001670250525520602127139525129374609741688281616767021562457259594508899043702613492717916850192582485701648091294680461041918343460627399831244211885981381942292632859047406635285759629787000015030628393186718671019283078633683017731705838922007941946376838300676116535940278855778138733675649899411150751990287499495552746090885669260381014649908681840672126932174108885593728740153077850975334770650672707816719186469619019465562516272827546096633093913790257746670250526580413440376746114579743803102028137545595855517714908662190056036089245486170292568997328244162840066975416281665348980265190532903445773218248813365643818937706749071350314040769333766394381914432777539929542868043382386155611012842483388192028148536677598754241608945776434313671969989270547612897022838546243522347957944834277659490066929159349727194531923155724966560596002462024748418197450829904553652904304436374183992502365802393936998017004576221870442897426729108693572080325565549737564264648151482083381050141730772872400388975725535958974092340823422461559816411168532920130358312849800071300716530548609726872496121177527801709172686717782962657417953872842471099122355283817261018440590265431431752423198798145514052579158482841856737697166656755963970283723136870932570932294712315254839590981835827131962547694782333171057847712882266049644644430348759158395238625066562133304420024888022734126403095891411788887005764807142569363329248052381917751625643075035244812992884911024972494878638280262488857782581182521615848293166294413497006711969127320313098974713217854266241246730685989284251297499193103972800486630426982692420223998155875988045191228306497543622733301308001839228707962104806647475325931796056661121641305604984553165286991364563046735681539070556262219696308144465467695740676351447285704029626045653657910776043808515628060700645780944877040775040550333240673490845976724460101869420589917622455195506898974426169631445275256041538308894704462526770588141160582044768404215103249947966772969204552914206780646783726842664770642133875273873760533302868414239231979232794003931285893933588993324283139841058356055968742471379249267436591061711928925196716145803912354008560453613005677584060656854509760427038523615402750223849403978876184702043616280429758556616208694323947869448081864761600975693582390621848381846870194545667190598749081192326236473837506514941213367188386922418489136817545369858685635222922426395030354342331030391342320952981064728069295610038770208513145062689360050997154010974904228324493852072355352560161520388247163912124897530893480460359727333832037574774839821613775600937773142856775530655955452363315569432992629124905786084124043964024662101108734460537501541621146288325111407340840976972765072795010217314683743686975848629041653383469374182744335170407367690791931926173803171062366109086308962982742201000345963957731259051369209265992034564463574836571889792233138848358865478315268920695884349356492846659637582827868331461876528736766993012871610668428864188661164924724506107557721960753587309998388017251191844237097824519026263568214896405228034065589035748574261422284138912309096485314526351260228192811110651589303964641626289645402009296449916725095925707758752861188747980764762463776636137983472695303981389081101142065970463373451154308668441790141220622422371206988700568216813726452545600425136740830217276598887402241975278278658414727169260336955638711661767609004968755311747015381639264541364015657803497547683128413732664371385151404752258795368433862952429503872652752623946738051469564481538243184175317418786043019619876481879448646732460532437418613810648848464516702815444485618124092087089734884528177402988117486263541596535646563500468884884654309110231314926789587383543840809738430265495033496695113752335756825965288128709233954985211700764557630059974652950926139112939397936861094055063297891888334058535150475414727441061722158693599135956829283687635937172639281528294001620920655056696977218978346832748187527132597275575992665232343648702009430218046529021409991594067664276854129647841300983598667296611495688461256779525273244340019859049407976183253552514563758507713742678661407179855645909486882876837759815404034887211679585040480531764639426219578802063756867487809505563746239596834855075731296991082606222407323895262058964070189375719634656611283917361001868029464817888733670636497933249422531292244385479996393476383984892068072806381855452446398331187883575479170010918423059181705618424590945475750065952880253228667441214315822154239131789811705800600449128235380569819462420768521035490957154486349799755277498376962078672487309049177509303177146279579468459075794190511977640600300586533171431466811231742502812576601783136233843583089791180858941147268393526354972276018263311461695499112765842163657850504980561379731446354625795007642623286865804770509423936246021128526684318232892140288733982744891983181574849121689491087275331452589269050552153061542230181408842065233896489833367873973184462861474163960878949066472502197758907652248773186268405851650446060929623876006277846732375653524923768536419571739478494011556068995674395432556727303913286755912576592779730094791336790242750178347491137504239018418726459416673118951316365880548895634178159018903653366263256000013789244141255541004436511386229431602690872256147364550847128081913651591795821569953060985025403411341269989750709715929812010820174059610789895812876830687494197531986934912263660041874031003687724471351741832093292901953380184019870129682844418493389461990425445940544051383491618149672920629219067358014391692336316144523850763909205135681767557634019316643598139917070848382353164030330869142442108352601970457781863241524144576729339475146829585853336338844469571876859785591362949375776228737315254981643494980643190494466973122306596339255187125745085928555971113272223045036599526259249876512361911969885643119398683816498442226145496483104004475063142554561013111252438320233916874888095378346745845828462797999769201458259794606269694661952211142486006409629499060555624919115492992683908478819346874576163858262732004526507668859598069478523654528111486370440752882977975567304283121305436297633180098891751088010322224139860881161321577798534610387896552091425790929995251481189964897547331405815725733288434630202443379036894497178154155112917702566348513926661052420793252637466025408668735832284685777999082082635586515395369009254814077982875272257571460145667534745734510799385290243808197355458612299087523218085914223312625244518077507951205453314905182909619959979660567991318192844324969674498522230206224460799810320680770999550108536254479460490479127719279939592798031352846789641443732136276032131388949703818107161325916016027992498063955015176936987456999705360315785449946124876107192443683212447247882272387134845668719085762145265355903520388333172589475124374734371390330876575828853584092486699961797915502355804130017266188114195855548810631789962268064286882547852995510396922356895650351207551642548038908311447423203578567538694091310882581316454718276365769808393521610426148959121256057970753276814821521814066717973994743462262209095514036647421316611118183626500193927455810786523074907593057519887275369852852940065197309185079966977906502000201945412375652270622154721787411640446031248363142350666251133421625495084984392028719469283854996777730466034915978440657748170295215254464368026392469871524859530392331947644306441426989256623943807047484162568508122554403758751654932141778374352288385664580683284451652009239764108429180296461785347483497932451420071271654933711481935446989518856272878643420744114453028306741184821463595766920672177595853957706939849311373464793441858826632724689786326198248022886491651906981358677549475525311831606314562750280639572912044039277026653480330584294950267866962524291845552966421992274444921809699508238613435112629955213721189036255572498105498686401287390940013691021320524712325249760648067405841171060235348884696408006178275651344505358930236887256575146515782753766977636943545277892199656789312637986959693888549719156316423672756600953674219786344380608240643254433174152516290441038239186156152315110482303696501219141298600609112666361411020802075328710141836937678321117520638898638532718942697173569471838829990172003952217200371545385589216054039135639057910488167880671880750041763348833347693788771754114922124674705938850504319345074778476241003940526474649166793469188580608297066418211098178161578018311392295978906355902908158165056054596623723663174792547451615534066804988333857763063298925061696979014786889892366608699065186401682659120977503137376347990917397508246469670008651453527582654921110043354235300149018431891948011538661062272800743224721547401311541464014026808407915782585277011589227925524165686088444586323589081074012665600242919254660871968782450983875965973996663953873629543400054343422029064269186099829575181590531039545887997431280704112202863224108182520874347864602493180314312739320036596342591239023280819475313961821597192396435527984807175216337042500149628827923444676267117644469658878240507211221937466150372686221611392498238597804499128884266211287061946124390319833843667052778230537555158152471482153869569334718860306916106805059175505417923437174425982805709580644630711598599790341748462128518897640299791071073849750844259357214347702892318981789752968311543020633725747411706460370323774438109530768439484653156543286575109000586924617539344071970733458302797654663464234188996006894491841765240952131090739894406227853424151014621377890631284316018727590398180068464540031181494842436890334860324008066716323450907195463901845301951738948584444343213346357358918383095579776652875413951234411776470005003342216198187991999422436247088158123307427640270540974336123860220352772078607921544629513541475597986300295835866926857500538809907209168206731942764138017204634918401046392788137254272948261323743286201620579213164728606000740375102444813718088762852482568946598651880399445188827385657868896085076154298270823854760699070629115926553508473092674847064636725886492091335744283692094013547827427197391538617841891381187141760234115506770304843549885623866405501816441832094769818236261800428138580159194127430815159719702782670632129990006366831116962337450746445690828116507064393535013214936150594092483574510681572976829271464885115059430029737627364495159200563897178715759274425333634752025546316676642938530129862548259317897232089161953830138393761457802080247126511606872423213421123636018544922101843563373591802139823271683647055360120126851074804667496121075879283683681912910441941712470805125424289151625999833513254740553154481018994339934031955544762697701801722027761409140579322360002351209025626837866758175167893245637095533927197669683042596099122321506704955034574598789381743752435451601278514373491705058529884675184501029789581243619490481780563528031914518418102771875829997537066882170134101550774845416780805630400887667778950167243931177101763751703853625596349710862271849724359850166582231333986624688785291769639094434265093184071626612075059372478474031844358472172851026365058022372719943506403617530440132771004422278839420485571920193347319853041814172979173348269277126412281213260055283450357857775211713692870127355717479339780905977675945315314422511006788959779674424319327564803730951042783912767436743790460541533298246885504308490611428646246258963262666964390367091711398689123288201459484028781893359574009699678588408512778565592613829390007019016710146639150565378591201562165170863624735149662635075199979667998557714653382999227981965894162638844123245322000760540041432752323792067194933952242333518822107742069286944077047139749910221709029281987114774493324347168306107102265941428431750101597045623611390922635650826820063234293323573515388382300640812539372586173518527967669760190325541852095461208507647963187744783423081591599457776250994208094327256982083448424309650229492869503605319904264728162323337465806739966796488458238608340731219236313118454349192067732823244712746670932295761850331182546173156621040248034433830146019773506849131329208497370225391913507780313274306673309953792846678966549997590266529278155110737611939045430401613172368110221948867602940761951142380944951205993138517414819362597394534696118616527226270603824791784012854739129759636473401947451694169280521364305691262526614820080939693596549274691260831111390337512450098145709552376543691641478361851987853173851093758881225003985108834987287998283710212555056116240688115287098224791587257512077552812001738072295577189309386141569918127129566113255335234857899863785997813432558293504954078798134715791512178984794520677413011060324992569414397947608731091704369284443333711976644157842025788375475722365772809726701294590764873401050188286192323889629095671353141619451305886158626517677377107257720626033097279394752182629761029005789876956681920397892743447551612712804299455486757199494915751384473393132034202450956000072081519536710405743428367476913823000545451221944484077260687090019876307509139163418723355283607975177935994192931216784599545276095998323902726823251921435295433658217984268466042468079831741787658013182086071750301760209649339741104537403503970660300575550104438994873275019414251086816446185161067764560934445032247192759901634276495039395123125703946340055383038192707587252346531336522266939353507504893795310871573022772018785103247245648621122579853578890683321965054006687305550176313460332408084280179904757478649430730921556871146557826370578710148093925285671749305167149621881259309088053380116428132008795070608101071453787209088238700672849081574400996361680375768229767480602554596909107539571924299290539681321341237552236707847006324670716750814407657800081848781995122049824361268098979792985509708350573100091783552200975437590369136475566366924925334198777692223465434834819556225396665814517038506344609137557444127043298328582296036231807818860419206890193830521271897962511592895000771892806896094032998259245394378552204123651017642416339843018408331274083014050572358405847530346320210549291592685551287044673128447966727955035961800471602986746723474190022981184610970305475211364050249342649697824775704057896428102079534076242573211063723508177344635648565491928719165489798904960518322231858269769934191591361784565132343109663189914596622739332208640450772317649246692591692400733538684419477132247894814145470196252204881235926979264274775372392966263053771821085385857854693439019457361864586890080309905569671563223016499125002516488621191568220787317779036090949022031663528246019954070731460859655701814982137827986971810361018440940570230257993266115172485303261034278145172615166183464348138554228282263165357049894884335932714605546608655051941275030834025230799115862646980785754013951984257182097697158546631692941604686714763614325801309896113458228343888747496393739115207902404358388974669027140289240306953592167398084004851494135490895629096219772808892091551856654080437481095413249892128167456948851707949348053143224845217932500061193756567254788946082646173375739761308317037429111314569448818294840570779173346552035577229712386478091099904458874227551419862827003137411757098289059644021098105130294996112532996405549840515425659733784287789799390556527668202456875607959037782097456972084816280328422621941260228770726745667759258822383922725241670621409134465250026460379277882041364380127276508472144218110353006703799340048996220415898241296439752682744077825556831333076908837065262972737117900961715928682845468266100681910436650407015565612663151924705657413117240479611018534552944988575342197055331430802050331565968813095143432800461005030785872970606752949314114812023853477144388723559533472454678784810348759364091788654621532531250051870710231020224550763033888616893125104124178980680490728055664414964337323881806322158018307875392786327125880406827167458709816539683484283126806973985968006060378711137012146624682853137889146727677276537707964520433175134282300054931214152609133875756353197771463113186459842883317563290387426857624148563108679080289180496984855251944813200183300677048124762068131958469871425787165484343874596190201810283344811452288505381573342955832626110656839711501641631165204422646386744088366539941299480978339683112072606056459096950265353111329827571049571622158082200420581056690558760269931885334251824380777893611009675864616572334816512718053823237555540390565229166498784645970032207162945896531174474968843453385688513443802953635107493757463222022963918842705801040993148809985049988134001084594711748039810440413116626627659590897979523158692427039230997720406852677425532517381780673971940087776490523751890268837444614900737981885218137002264277401811993432989421679498753623738079859689555093915265528467247276336433879110006921031643801403154555529788932023894428559870264179370325958784432202140687754384994643811843080743422382155989896825546854052335681218749028277675573269893155915196497968875765674156832587278981544086953306446732326979197882180535896106171506939640162999841474146764872165675416452091297194435157328554622204832608260280360121218252529921762083229724342562707848780991524907392923754293885637575649092890047247557916441153139434858191489359183711503687548504885711383081434186259477163148877645833138743970428433733874549137597267765460636949746535272652188110398736526395865016910691413104527519538447602461206949003417965865667430040459759526715294957605779862459166451270863711496960270164308361974748148705134567763361075214680594727419151598853651917788100372786316590505508878826437648598188003995693162145604276615163883682310678085407458105571595801659921233430363543897632571161975612105700376308916843644566003639299389279275967082688004516327241589849980319915612802977756780169926811839323952490556988314073010608535602138440347865347201289429337250757261359047955079348273744584787858712979759684296546265674877611083647181255004466860190484357487027459758001173129527062089653202676463782622374067639943178331970535400579702591489259442020275197892654745259787426734702905866392479536938249885275422511949068924230994717204659358599156912580011628512985344537395646604207130926339471385650177521743715719651861156980763457082545848029574683458123788163672573672259839098182751418258102373033658082213474502549286111354512742823155863602426837228530449202866118340522207486277295044237295743335502920024785556339223460301287446615240170321906840568277684293353208118523974341274778461029794423606763976671248409959225025808891651293676933114173230737776084083760079205453166028847186405913332309530117849063663256655802523165594600575532424477411241836591649356601823038653688148747576412057227812155024154706771850687500298229560148922624645713841773661734613456259717277843717310391628992969878923868509105041396456368817338431957058747831100124417765264941903512590670055951131702888859750564549805415402177972941226560394409248663679863336214995615641255473819374042005859000245797941539193632396775691401893917169895589261453491414503527864133857928870083819564115077821193542411503711324890272168656898079964155285445463724827593323793929885106714899723118617614513648981216167023169058131397501918214120260930705234549551857511576442993589643985460552962863370106761693677926307131679976336314525985713179084221978256324820236225755840039813304494554567628047518761172607858385821496553590681876189823816448790959453572443646468534650491430678661536625962861381254175675775418801177671608065910314272973879431142486027149412728105467638745755311978036618935777450243686290781129122867058528261287620101155002551905739726213810093148892071803827213872420639655419667408877491722624726599886099622282356241252360583065266978779840389640306739412391349469778835520475301608288712239579663174225904347135165133018628091072284405531301622959475575663766688776405300356770289395458827981523396596999095317063234537553132002374721573560594932437763090348313807943577385190427275560983190614126424686108983101933049631020877621435039042638847778100717116576180535328520297629018456290309192648117026818937415879106133705809384898634694738220024702866183642933775777152839400232170109106292712523818389502323213313838534049780517464826590722606996413031762933041486598254215885101602352688472300937477053921576970076810030831946621215317346522436755618142144763762480480728988310083378630565814168798178910480864628968063350294428957184870882268122429587912650381476430650785292079049811015414978683153396614327224241229833502163156093428773160610538688140948950536752240634255957155072010836112423393669168195139791887206739336652514263805290226960374449047056401747857406593596603258023500762928896923279648110701080075280331380217005449897830588175098850644370630299391844331166955377783269342258264894282260771672870353571735229499562112248452108309303152188273169904281281883639314776718356538433310390803635056343458633529541518460786381584715760402553754295607669964211310799599173968318517661517320556201688169286837332817552941512052431744285382815918953003345536365916833910272157344112752310036188738684481352573681416949173206880701860154097305963976547777622090566408898587929407305589853501556686930613877811502893719874864378711145759653520016719375034591170331176622344169565142067775608033820674400825914286480158195010129086505035680333301363825574301899693137968319957707100038000551348894372668235573225092321075967793216713873963092403229278131493635455110222410509917182508345719186053399130153952977973632864327263216012993736437195089682575177533324403974879204769965426347627393520122653612783368540859634143414768102162329299780027551032336968737315099751982987789091414620195072609060279424878936832911121280190778037219508721073529680490061794109643216838046517432342231622893078831394108648668036932112114834718704019796656483564630247688983342843755592196776785296389655460182787645939981286646648518523762255536986321057111693231812697608086106080901687990776371792921147696952615708275318374322928871747344386512686291467939618413461131449856790893124377165354626014424825553608439708306527667841660091572370050245710193036462272073477236897688399574675810590734164936596381077824362136487117749067156482260464220402558759154104538588814945929929970835685300110984459438655780068616900643837725189276032446641199619775005584872361188485210415743866691421038900019722447749856588784343632729119476927257034695524460630401925382851545506242599667791317700242244725540722705628277557977782006900762697947358181451934283256852574104004748551194657809680245173596605919656317377868139718076937523209858294995657829369617554400763211826150786441096207007013001031811557944759068029630051824321465750884786027402460765116820092972325667480244321191979236488939475617801310730596130542513817136169575147970983668889293320420162899684512942149410426077000398903296489271314928433713119668199859218603334211730605434135869467417455523478735295165963357478321745677815157564969338340080721589842363943858628353852545774311562920732388345241343348957887829536851536726068653346316221393180023813173948344821629983659381053705688706209107967942974578601877285263862587491956466572026066657689424036138111253102352836929183420065968383501968250901937390661720307060361677821483758224385591845438053039942924218490982363133301460994581130030793689627130086116658946783228482552684873793502515313849613702483274288924086465348943216662866895474354131350151521381118885094112994044069115630732441938649494921146157403092503707007794778843222974341926826719101158220121868364576523088496819532201692179057739641955774143924681230609524334146241090505155546661862769740982887953281809208490178330426096394297294806604407948653955280796960493653360647313811757151970789480374597238801072417211153422334732661300421616776906634647698311932699596306626546098259948806287077186283188041679312395686472839935519127940297687223649728566822384309479861944278784947551476789134206605720872647697209804494082132584169399723209871501833836015246517653002161461119986407197461150093833752620505058409315146823144302014688709065771640266710986428840781349020167413876070580911419552518866572496689977587214414465003043893889851538565436985179781205617503573866527058101919062867511955820977841524412995862280890805678120019771377414386103422479626016345359780391722790378342213354791374426965023500790651946499923518834808095361198182157063349788772351273395174409174698269140465379271895333886132258774453220829340593695002758834419927030874206467020040868398678823308562972368411723459121253399698960655649230659205258896164001058583509311155709833984748706898563204666477968731987483580262229786409755673598648613060845819596423068409106289586083609228553879917419252020906734512348147685492907488527495108182306875724723891228585658349835141814197956000953886967661246346538384010962370711380171549526076096956415661270303719723247959276851494412496130267068021374006401786732367873102765701821676347518652380039260784223330498807742156955453656604625598001905529759146166988831439865723219519389139949146171579051167553907066743009652202752274197319754866649549996417440196877580453212119344997020985507446055042905798363841382566470867349225347496112616721307997663935886390820285968445838570270883728904623793968952488685543681944329303604346115458658459984416493879234368334351811034587570621691043569074963616571592531733798831168951956565666121869901191962452918606615769245308755009995789665484842827600161673011858606490461913321453971950479479617037101071982123348133562830368140588475311652021035975371997498964689705540045043473010014152091980526938680685639680256429343480505874628031091615256267539070553056044212661569150466224442008992091387037923219567021752453805308392538251067472491166563036581899596275885233670080749060432020079032894381427985104158739641013649669480967011139627678166544446317485992466893457193401145031890876343101486870506389853603461579807718410373182181268479648779158987361482225329723417974786352197624226437737920416521641735563594862657734465756048216685012549852623746189708725204795430401554311178467968861699192283418488366647369531835697932127955704154970524821723334840141351793746604545772731521044070950432687671038605138010645448817635265667167983099495276786989415269393505921724942080742791546641187163904643647509090102793573217781946477650019262763839212635455778242261230448692188620555562381475261458072014831917724577020761131527125742483500483840971114309847627391586845722504520824761113877998033615854190178178947657033930021215278402924288713381396937095094516309957834360915251324252596740774956515688032468974440121267116219251547782234383049419033723516033028236644166467041295443027748013094099126753183194343870915554043923432471277024611472438356613944886543460479233512106677735068704704031008882073156246376162658965510173350605613410116161581928657116162988156812476059129691550854345975771322293455085662280804101059209432399458641100900594274698743281257559818162457991242582364614842131358222847580749525383188366405345134536055876150609466645894727075932584378486414518406390545787073951035709927170429144323988897236118134340805546946948336666298941957758897305908647039755781803816105692402136843663885311352651467589684008477817204059851977000973633817129939546290596524631886062473341351240000115674661297560395679141779675591861775891270633365293960712878265414221234834874901956401899239996160681464948678913555370450436801173980486102708205251255931006183599095547857733530357862550444031448672187514361249989264732891379963001377287861551957009363358886373466524713629935277728472505960081023026046287486422938834489549516302254399160252116037818536836687832897997881294441823588827057136645927310912763454953214320804267317363612045248190655573538710885862813501412239468309357916351257566337624955728031863671412893759945385591650176300812167006621805326624979911045617161897727268730118790248584702824359765642885657000161264282978418820100645277901587853794944309922833218938730675687833281978448946716909509651453812379808442626431710643958456917261262202984623028760771603412606721182885429440240826604480577655786130286203348321508618238251908005639949978032874995889201813618533580757468399288085155965165495959948889139890699611157259707823712017236069146052270048029809399545567003584953493666370897842718270603993812444517207998262669761745195578143373289868437976877325382769390173101476070650899106332312831970664706743094639234136345346207173213763263825340122510535686896569306231155247662208738616596577502038672524439068637866873733106431762448318555128836553980893144636008743316449257256526811971794349544307834429126952238476132170675330441481844084330019782246555595561760466137484675521599911414201453266185326324407501997213905100766691441824539622110966516711208043706035395989180500033366379010987323740864402115324951629670308593244396302291441779899936251056062343696557731220110236674986155419770478912389822607175833117129418969623297828970503584175282278575591307720937394170056033346243409234235605909445522977002900167177928594551867307045981452557342815357861933305451655705818778789009706009761369260636103437276718755486474107089359133012528361982168323270748429855484593466500987937113939217188971418712948041424471382845089364185613722785639357325476057452327799994561887905324433321841131973229665494981832110658052816649201986141539059266901733090718020534207392752629493188405111150429638726469387320997516975469912877709231101370952154720546738063050188284537045880021003705487633314917216460401777760964463298025288802787126476713443972775523905563115820459662717645153865041083988604089125422039175506114651751930697836484007017025031999696764860468876158128025951381506493426338167449499289341970511685170646851383278793146046463128601243418515628423222011636299486920842349482189263748122719762319140997000279646599171754245605635208295965797709792744595827445021626428205480717864410035832716160337372725079884866867029499047648184897595868726916377797346677291010757052619283506413192024468721388532089619076252658404861092271975643161128297175732552915315776090809727196235114545078222774163198540810876389285684600917523920192660695849248408030708588650538176183972163585582527196106429132927603581010261889578009476249036845004507598993381490136406994901810794703883163864195023552484521745119478951871437939591535313335431688602399599020095551475363362316197551032291953996505769166366521106291786422851632797445259916803477740897205977501846011357418981664320300022254310547792457316048624635164110774811280600161868538180378849066212557180392742496277612738410376212891451655015037101677324048175253683037487702612007594133425683865101879347853741419541194029428802069454039114582947739900593947934615337060435640717097154147129279751770370506910121012133038649855874800563276805330382197114677702431933699831981061760394115025167033294003115021304734442813583231126011052056784879649618016214570276993279448093974268726395971468669548569874099332335826642177143089569979675721065627346090963337218976635649020742285106876665318915168538046815491114456604659401891956354516922016047311521435833972646054805487943014341627807865149467625825076443194895082368404828457515744060072747113274143106294807101147030945081081952949350776277935802430586068482641678608899076304967106071016210224705612688382010003947564165901896150960084318930846956265430074142618133502787425690005518672766362524548458340052868930988892126016800734935766707527541706733584321348254768049161777794742747217654406972786770261786753950554651134996297929845231360771576798588964479456092798701030016725212008959356373865585758318401643157395282772334583157124437017166265067544687014966323725731198143840181563528937047854982178510883133037542859454841363976726190846041799508511626352263190710683664552389917894643634010747435027894008092809900518147520381333297454863050075477385407064949392164841039701338266876259065507558970101523794132830773761284795224269740911027277378553025205723543588751859442189422679585441417250489621392263758624386161764953395585783862746952837307098140057273644149339543469013049040614433741342161606217881545524472917076478134209884854719588985966548083314088972784226534060849589569706592535296024529124485815619766069294980204047584534409705486126865824365123108179302526269337591061753135444334473588177211780054516817794207538508355707481664134162093509452794489983089078164140869343028227973384019002235116307439560184753172962950036893177802191949633854688602466380157033199154164043582193883729913159826448979023534710156536369814828139085090511507683121477610331873538734204521490978223108069487699029273788481679259085260082332463743825129138810349519993006101876278146868592995652201650273083343745316821758886112480565300547482564601244919603938061381431037216202136342608846191847979515843148694555153461589523620386464660767781932300876198221956312967300091536068975031227470927842099895219922206854391157152345046666684069586943011844641518783574001678166772824410448604589108199286226222040770695848097370464765481138383793784688840680003740889508088727284392913439346383021742104141175416999718511191725695074339977244391014243436247417253132393814028320469204059913293532732154355682759856172012562370811976486539317319970929100606056210971858869856238443371197432147367920803015423634372618524820107379839063486855776145189019958839833336004472913366438791853991809359539851439009198610389994719729453580443504464517597457027556076825799956033075072974648499244505438049632438096424708837580113914550608137279552881667153484743841349048665019112537416977160440606621367543677048828433573020581784467639561362278828457967397667805981400412350038139617007694905922687551282722270385570523231173875386887092065359125549815539530411524186553994575526968636037276845116600233071981270388350746814928703965702305571362266031678017498601706425376691527522064263216776766351548296511405329158238383813291801165024877075959665004464908731273348697787460429160394124257440527478655106235467219112791176343968827915563346888853411336796887160049295190271689217046727157419061541432043752611576374906545643846860189588976350479207886765735941051792842152899594974141004530910846164609023890904308581360025266145315194192922753505515648742814923084037072909669560388384670269876284311475826984279208752342894295573871029610617466700010195695929000273803412406443194711476901100555032005187920580036339536115471259290767685842042862976809318432497231299861531437277925043788878178557456925252206531371867544152991601217231132706930960923704263886143721666833995895526821328446505198309685486469690179523242776545142284566237038476396727048058133030703156760988942745127958471202729301513148244685945265318270052212418158733466463245258401252665339780400465068155912068470631177982005694062165005259240170727799018494665325419274461633149672964315951704233095162189248742601674964392588050058901547308342099889713880683446059014112718017086909920051576084133029416056328411256336945140348244540132822868112219492906356725470253888008860040577677317597864553758163184735080998880601586896813361812157453866528114281392597142129909683828558779132673410843868648247265321905298726897819519120445931394820835261259570471104031980940970010283292526951341376620162061507630911453702480959365782515143122037009522552449857197229205040943142170884251455260425665836857926087967441183638255976105145769718803965558337023573459156742357668454519091971826305153335831452111191663477433407650070202408726751252916792657933507957605537133830431009507188413727357969780728145059671599664376674093946624864057154053867053475154849831505115104349903296165425749103196986608735391463167568555996451444997195143295852206954666787568332684360278478333912295962637593320733180151470119910522174850326652533992542301671716597833403462299519180676891503769063783806385785974468902094706632715382336090000926902275563092306789053892061587709983801668638810888157417229274766546691869293979237898874423663991318983995913440732639344331967658385887173740652220268693687532652496087501989540465909601851501561336333202668183838932465651010810305376820649392164184121675636436397178891329506184745294376729918554719118953581418109038020329661045365081499773755219717577761690597930816972154957308305028511165139421981504729723985063669736473521650120052486717754215305200962501875089090657864152394930765845844230194080013665234166779600255002081561302489441190609642356038813565081740374377430096842460748373725654014734169427504242786332619497498163911107117211748408080701328671404051863472478055874886905314465803493025778891568784957903337813258764524375891283696022119022685302138930875237604144683183952186354137238992121312331846412583654416680701055823767716191330212530959372816840965901283256706913766161359545781125930836741471953517733115874820864121180459824728185823406053500324676112601164581493896487158755524735228501431860451857252229564950285168263685642369139692484025217973211179015925526261854496808596753460918884743392521509988227408245280703776785653771334622543201548118439839496862201483797468561116393780549238444640047603551987483355947726269137410644144605721731232261009961484050015744215976378883093041950742527753502863173797149756600798732716352266685544965052148470269562284438545283893843635657993728298829612657709112713509774774747426791284265255108536121676985683601447175571992916053137978372667381241355160520922934956852815770806924208768517098878464281766539926231213562083339260292693921200002537108820610874747538839023416722947670464390203233002742155125410327578734939809792069471035835349507386641237834290422046540846675684783128969831517735887679249085251238503958226533386389330536852347061735298530684466258836207371998497542337538790089586184426194725329365839447094701379899866165085987807034190277882027521413179146645382700167126874217388351920255506449280509867958563191836964588257959432284398045737702297180778058039459278767362411817886468183980221546950921747055092419936623819786457046182533557331817781348202391551415648333925276651472150142710070842024382915180810907389530625202174483245946384141494485310923819713925811920131765859046734698755246292529943685315931023332631314258229901404220073130144823287073731526615132334918267879637815745624207338823158991565120661452380876759353652602017433724325481957049890181317190981470857886629057743100574251782118256903747848808692558774149659675778984973176193948593973646291775884866112039034306786464989739685347750317955841244964119485108560743798470046785885996156539898072144009937717664844503600152921193645353578047977284148880211390062551955890828814255708538449641753842368686387053611827107180888655051637586500490971080517865034643006647969919547151212662594569548044838969990329035357557431672186696007311529589816159806224293812462955923065831334923475425345469656769749043043175591237509222579560363957607689032953597974995406899688893126758565488143170053193164416992196746989182011562470165713186381458686016465692909122941688175437741613469602375752551516664778476026083257700811963429240481214542329462335143495394935094448275959858670543494128862407056450219111905303636750749341519866940570557466627024955917954575361257775964466851357544206152137972907295507761088681716478821580164853230097260066401435541473967600345911418966041861352513687827995009116511697955496352852424113911555771571257814298923579453897827061194156601353033126105336454148266078202565925584200592357899270360281324714267566902056458199224074298943861316857126200731171296301559108185341033070167662637530078728311514026427556528463270807360132380352579189515440988691643773156422088534640097699745403652494865485655212486344805043740857300836236826777834845223466334539940740659803311291759208144120026567606945164214735770263537249949780977871402094505891767036544391211025019588343382280134346818436258567310751995699406347764295876782553302934112765538716833776837655891160433906898643817334794409285959523122917929260181444131844757895231013910621935715219714968778565585364501094726118059501181188229264805986354489336338908903065677572139881298275186535099108024582396154756226900194558916166905113594506462205240799110433165824975828108935402360021210141021371650311679381311332859327941908747708891439839558784763476433431414874321009561122265273814068638428905915857976773769907576974612487197802777845722315062188394690660717960211050489448666089661370617463163212967873201926170371358237115329033057262156752740036325043007835554352323251263318579000761371626712394059092881347839934395048542714177469830041813184118482957976684424754947474523915124700733318129676401754510953372024406233676446820702637184546182318742370233780084229723788349471525945423870669749893298845596219714505126291550913946334257924270626449064354673563817979642154050412667063546726858049675990791510769933475343960113394227955493530868411787394537519561537758402418118137410506738415053160420673969347305926307250343019313603709071820642719551532768009809017391483759843072975246560769433070121108286034308445352898825450669390161831738416875891032421613915225412267613180389485484688992439864161178628987038648925672982967625509789304396499388122000887313373674269688027458099185411101262613373089349345063585414395578756546527876647118929695674008864459347377585410007990827996340369559102146880698218104255463218538817427926896130339990498594227630847992276804285036375239605654119231009955783743589692721043607480584135095869513977293614559987252580260680084021583026346010564218397995931275527951676275709172567614031543667682713264756742255159327679491194590781049160398880925192546161393282183593726319411534644806985289455224440018133195150399583312537505386097157609815530356413155571895102768118580412078999479207563928963879356525791767932745061789677156628811619542610249444538301919002800854542174965467374375928708501453011615417504474009096901139759695593324867452926618338615172306236414344971757444196389636427823107029363606807792343082299983903062670186210696314608111946579939193797934301576126264173619133468198444032995475082308989035472758457450274988973016587372736465895097638726252751314880859216320707779015826411469836078395396400611546478096209242708708211662169404886099299688357506623676063585178833326723253861950234989573603217723538261975458656679783549423297756354095357610603559813671417257129867678205682552528175670910304393977641886306417367411418258382435841735077981541175303045069680669768216408935130521351516203899356603295038946726030900339629481659918357672474517420481740641429714933634230972705622938001227674035505586583912648136382110236544603557579692791208128372752946275417065273131235074886155037980836024726977637195049404913417572043340698961110547486737261623260622832780738740773489005377282597500832236860001691219661812993355066756508975972706818065765961415745220699976156273036501888691171429750211697493934618747983890619240920436072979599946711825739279355255526661850206869516559138030411199183506442527206519589643172212233159263288746390365901474883941277009203631853003246672576944452696179716762805458758014863686554104650773283888219431420751827491334365172192281707354041198241612621118683807921295003999680943321720618383972727176753642401947320712583519521076088866242199839029162410444981507758973402978560157206115655893009481776814880372217569346689855159714294338880405045214228108903819549037153917370240812547742527927336537993650802867875450798291407868675731481449421446617350919228300303219101025074821410385887704202482629537425639630345591700306084262246408673005793767510343440283891419774718191080148840615267448495748522091178585576779079998265951027378288695635990528061230494818489827502368108303021802979487974382242979467583534518133551349849338982075890095796882925292467076983830431264500069063962610896045455444011218793984574505168538053604301761733883853503413222425941936979789664992631168114721229489200854431728193574842506137332328807747839838435487392884495864827829735527733897633376171701171888919423851321338115298936653342349777044716802292347831045333419172459081614621974952316058941901259351762362272138349849145010718690837937910072653054078994265620214321390002022224688020289589453827066956375761587493670552970900348106475986087168402967785643863032458000402557943374715955038126190662840955421186510077134496534516185559047614334584134177021890815206481474883942247239752261753989412940858979186890010863681307736995675952633385298492670246305054515671714470958823968527614499959494549560577513515405877726286512766955901684338174286725164046979310017698278144889933187869299295596775456923817854467693224478656060870748809020987547262762869947266002986961093260644019638784655952361107435501659048530101266604935598461482493184233752035499772049996695823651412825459126736539373438091273350232503480891081721753092646563787196271705826004938120094187400960839083281702242385781046289849640831858239991586412724294671648358708408733832467868652233691190592126586237571153101992285181415378152626118480703695368061559146875562578868124862737747152169605757174802038405203612778687614528506420357311432441087567395793963943159319170207078000691580104025268284947849150822477886687902560909020224549908452707390936357896177161599323896181765256812118728957053098449387791483915271101894326971788659261057081176031728204530741876852480257782262862686077989818639693909482619303056565311204319813415484429069775843737260045668260170076774124813803715391370911422144793252992829416104928166731353214072303515696418309253380638233917461875765364236056321454372492513418251608444938670717142414406012363406364769719791370452349467948504045608903406349061199170473823906454519763786592096782928807345642252449531976232793294219439491508316199776702637408506884576633614269912787360427063267275106133814743515123639930900713095500101551221831029828528952943556911537516299588673926861367755596001368891313093336935394493630581445966769071249885470276800072943289226275063140598963230942969393977542134538423126077748478887421100015945695782046429088192880996076068388414846620602615288245793443308769347183521449465435078308633272423894445085918182196363534140291975213774972008250474175555440794749205928001584290273264773245742546418145958457870036383812869592926800563621456700213785798479863054074802554576411559864181704339021559302237413409166968688455384326359192974922557769872551076418143371234152625886748104229142463763137286482858150655617672799388278106512097078678853471200704992300765136032716376189061535307669888917069622446156397959719625338157325491815470256752993044511375885078045041351972061179772077071038884806641703639080590424531351599218410943229251441618036242084755106224199435869729842809797528440827221744878901686218634625292122436768851459124668268176613450684040199859515499725766033275173441807857438631750745199379664393448146375087130993753684178849369089771707067271178193495918899774835177428938384566738212003425860281104052184380045594133304565264554254924921638292233518907189729693195897784056105467852749800986813013435488364658009535236793711282853438933175715823353416363458939735002870875980830648663448418980789386333078029946031299535322413054529622085154904163285097994094067964145391340099118024980998453979317828978016375648585016495229717827949251606203256812148741757578147891876355272778619315527736193120652248705310628016831600437211677299732165585223221772970371769428176790397921044297736601393529410437609615556266329541806984811688083937943852818082710588898663470180249366915766505245579896874846985731019114716162807357759919398582097406324037382860589159412250471745090990385149944017862836436414559092201288510727376468260633144276998357877089400054551948194446377372933057620765841670323899735129198501139820490107684758907040212886394073183110879970087837790417856097327753592991337787476665122264679785863397545888244142387823498932307307784611106396174192179812881855623707257534413727913020303654995921037132804491197864408277884491523826191633164326508535004421594313233415813665678223488919546001995609392474304467553157271016576316931650557878612767535457688063342638059020023820627205337158172989657923536345556950962868467353317609931060162432380640008488312037173427710844176974872443869454150614408950310532509948240397110022444204068532090179461579832640883426217147021545989285820676068617550541063875886040003512309997344877146108187400015983212114908339773728019149841184141413224881067920332898597465159461982221683958140664461446647932250727648370700533989288426904108979617201229106586398037810267878728731616392151498751626874470281363174969451679342616673722423921429379635938889834252015366218060320511770292048513171490160174677314197506068217579507646652557892170986161318228581580174656633090329537792925880226189374622640766586187043560994769341788701655651105380833596449195265708195485504527758264888285553972980077021504698092371892174544745059873619093563900163481752271315414086213587738807374324206055331387297946781119585387219828960890350694051886857485137145264970869629287285299608410974807243121103064842995486969343732327038333081574418843576503887421274004335780893922959791811463401282452210896874609495071628128079488287595698082114138949421727975530413082568406711545301007519787320328893723053432869516971862416090729253722666968231880234238489840736363040189274864667601491522660827405648626591487423958510997340340489681965308426158636145760061000142614944431693163214701648345258860900349192172573290975784968709053527575804362746967828067523724292810927479553031573886585000663252688594949552813609113023127344082729833624651800390522340748574618798542592116256112473363441956799197213277598329588300047980908237600623057343697058266101260236891200297468434492340360686421383149111366347229843376489110034370698647711964645607344702481907126427324815191035823410961230023337109712889871398600833665712911016110289136675957274850366061280662866884901250454637833398344780314783929505153107809761249165314901546221944290359438046353234753190755615812773518602950375206706424914965403942085410179156783865475958266779857914608946620779458018833838516519878545130058486411719828149718206506253513747629554286406149696576501074952980543353393675770819090196833751718452606235162357440080428265568456718892522154544138156410570142435385233044182158472682973877668315107899363729285931847489656689632593105647056320882080959181897058248792685787957323116355796028004614171563133621524185144262399623032655776112196583229392181056746863370083483959169453229407105019444941291792500739015519152797686487401924216301822890146872683567493331253919093636357597867718397330499607704869026572414375275529199158985870052793480183041268688654641697128944322428747348848105672060057746679126697936577648525539163108601751464919805379440042154156962987332854166022233360245016818076744432105951704973583345226999571636944078270470279635152832561966418840945209691315749375751177183677533591923482540211490054900686320964915171230787911025111175208189953223582574281767797110455147344189000817044119253853036911656031095771356145876943485012642743143921221510096470487758957535751917450939788856573188154039248696113195516760700080623777237370811681162109116570085249049682053070111544676309837115066675453355369951753555528051422071632392934048195989929457239722465793008366118963985792211116961940735075823295832222939732913756577077099800964596353434900530338061062982036259971856521132453007430132832407341976971364627953047219193688054165735426059856969818418936194477230021800614236267943427882351799455790842268895816130772787760119638909559364874074994386571102064836877735885045080972953252559263163440292997512899378835010820767738699501297126720129870562909697181071359763625983794917977337859871962951948040585418062827155909293219061342588938656316172408395582275164771251549202572367011069150250749952560305667692462591952352998893985790248816605813463625808762735282191428129641772951295040973385773681434216115621275335535394266944448469996117357441863062291129461645349989698538711870010151881546951197764273031932090943972765606854464338836723363493916950764391582701845563045453627270819141258414691752517672394085026410255599073799493592208268612248975507314084289514577200330914028542193867382428507761432149968850551979923461651283167774459480176489232642339580134998331681433201524763726799010514376747344068123086114804350254065787851518233829697840842151788459041292173736705822271069172579763413997876209775212780647719573122470459786557044634733170804582773852898278569701203743478605875725067390063633527077298702695038569192581094072330898126724499790738509539494822054405262420004577240075541778604838648631408819586369301585227363101299762482658558748332970913799253680031416802946795150205294715216627869918270075371273564248377009055288561980911923838407727424569844725608276088086776171783475178796841834640696710044473068723222592659609270097221697226634350886190315041631606488441280991431429134187251324280277823137138982237940988892354170696823027297484924172427437133543050477797709535101568978438218350898966047931051807696098700754435280415124796812465691025739754919989200765777736723190929898643194789934686100896815145812825561378468942293656343130027419288584347286914391052020708176535605427326676483113740159978316191912404640668422835829234616734261435553806582818396526841334822545650472507088323036191492624709157730429959669530347126173850944864752344328826444027027772648559383765602006908014753965910596263292016423124257604928020463683643792096120866671791335633077183224365868585769933617140959273396195470988016372736793766383365321942494064684818661764989921352352775768710250824738960304171240264809209552669524969211311143752363217224691703475570791320903945742047959470512693415017936944201098132595546199306137464514002044605284629010748070705163180251310001713187682399985371542975173859019345403044789924144659450134307564721601953551476036823692766777755128328623935459560983013231812503540538639005348127388813689723806191788198644963781265433941819353377979880356398471122667177367247051318126007469124245589468973639895746989396370844330739742870573884343558171638356043997313993790528222500521547490493520212184329146295194998567764060712357952577034186427573934146556168316794860434648818327996492386762742621898839281337198943357455620124531452198556845390146165853300856978297818655833481656897987609567773017655307316422654177807731897270840861874579646968615276516565298400728473750559982090686346271483587045467789906404648321578070079924066439816460518862742418790458615006739493619126157321694809252040647084315237271129595889936746959774735599994584600761993791840645017576108308525385915976883318733957449367698868780298191500691170961705693040097979891690360601037512209822833842936095715453520252103727914011157173008797194526422277833220127286356440225941015574275387675170890954782501916244920247181062158372908885428595143979783115014374393137161976343921465660814711090348063714338104666620180159446526946746675239710605990843902524457817530293037176617670974558107341381301400275126869723726205689440042364306369616098944154774207620722571573564188039156651363356978183452895700447739491793522172629459266026668821874458347777729673722648962571021574003244976234104731672677661272813171682913315380528861212591321950919125543248496297640543650980867009142632277374619260007199381915233607966171284311276983714868738103721899682406281031911967283824642700338622187363858617879099086579580101041935419271966412464369593660843698352827385338060211960574285801843680024073816183843211492274709259553080322591348328778075630792936452498477304307618420778002084177409093462202578903576292451979092710930636984269430937022959904132740164845774438112461957667127847694467822205521526386632430381978534878494838302272254432816015463491107328248440189056630680711967771089014775484170887486505366175482344750039462801133336381686539690978825677146521627211740151398394529135060458326988528273624307345149873028468274718098679445127664075393071615274776303238273343614132773103574677615556925106742169470938271865564480892443523977528965606130867531385095394417349395346958603930733649204400507128160349285062392702144628124121106337359859272869311244317820318128999856603486711654716935388255341403767021292609664857767392766997493086661136887030929961845532715960298853594975496925553622208332772525961039282937622035368111188773838488802931402157088217072084426737862824554493446147424660011766424872007738266890741967500530723230709086967700474476570735816250813622150777184734870512443439536138937435798607654730603992878992390224088563477245542198499614734206584854319128064571158292433963941245233994469336517681215235360250196318300077984944410859071814505300371505977266766365779929920356540038947503075268158524482075128161261112690477798456807219207964307789004290712818260371506025971955816918652393049537326031021496114507633666911005721297230234608017087782276436458444352025956048442203298421242227219788367839457810317220838273134774766890642565665332738260733743869110586397318286779557074106066148861201127869979572837113738745646320568404733012098645474287153168629959392714865999860579554338645828005132782956729965717303867523390433789853201230705514978815915132835992587382752666452104761967294477141405527139422554914261626088139008388713505730988321200309600202873754272678146836496757211144469665804711890946666183606139253033960766895401247838691158763137005066962879865185640913339567209602635821254636097055586601407522416858833119470818240588219061236246284394668663141621805470611906120115129677913597709006044684684279613989504774344036208254608613574215189134806652056497150575785595345407817878154442266470366656327017482403327739808218055528977853210195209338303798527967270440968190603976944794953702059466427691810731479592546361748890760909769684426611289729797881611299605907442248705412905492798479990943331653056975373422466534643127276307287129956317628090501336427576733595970370228171872395320247023239980173758657326476273291670684766945205049055823433122452986595999943351688351929254452407457237859213074845863312254096425931931969707919661713468886871479093109513761551628094302179683664029495557663920123387998469973110350265239408962791990059851424094108655223085620022172034300851286547209283718148008096658692143099685986926699891713529563066118982578919542299810233786131819527663260929550401632719620695268725205736654742284322130563980711826653801787555676627750128143464304773699598353153650319906360223019695101082752059250892820000861189461201081791055687976689320841786677809440837456617899496561833891520062404255461141451062559327748279587627907567369673089170387138793332543471724707938787716739876543491804326475621547142254528018878583113132721713045933444923404999532569425214996916261187880678939416077019105431562470597692289584105421162096492519462410719274303308267956690423707523978967035650596879806514165872707225014477045607684904454645151301794125365919524357867185158026406099874487002103458247838739796681923069040884689974735935324753502143936380548727944857196284807033492505226567008741622281592411083851622969986876271644786607447788390478921861811412596949404393614218190143473469218803164099040116171526438090357376484259895690717205604459695427356103334803280679218163435602780808674879823850711239902559920258947675552872168505250953177914521316131642912890469074255888018829465604496246010071096615699322584038967273023765350537856755909164142408055788940353367209959681725875473203717472367884246062944953225416277462742536143470048769852306411598603543695682096119173380894812820481491752621809739518670010964835586791858077459598311061063095495464267037751968161105520223714202307377203590586732178575510003954116165601642142027198596358536260813555537201819812990472470892391811650530635959995572920484435936016928632643103130494787499646340264945068079063361918189659007852525287586027069922333820628601472157160773202310031315975174918503042282357560072259156760187866645980012512388068716222024467167831790874120810033391520002390549098861962175624132905988769844077908190566210276248795348337687155764106743100850333222609159133927359986419532370103948754531622570082704311919282491227416633805681373627264016281003124492091947757007203086343960768823189667064035359095591659082208841526321856839069191398995927350188591991036880888452706067834697221765234077415503711754791668653260535558952787492844334259448998739751738133885789333329480481031859972851906694795849341364149142422561993544943217978907606897688618126495889508852844502320213504057989251475508977432903978745337271716089166751367659534095572910110221754414203980732068157458955593840956938573584376273637947741545547293274839368900931002196972692011666007847857744034663869497777758754897517823275866126649108236105029474883780305852753878327571507770740405395850557470506897515214819119156017245310640316955359657605272478225066012008542963793049179669452210685899169070001137820835675650688375314170103270468649318184486303791265476766477508692492253398634937325506771089632596780684897382844909190890285038957394274185018670593705103422659248477253368287602285262772844659646428376457360267062060666133410095223551988859508010602202964118531940654644461039499400433302236931196141345695530962942477445539402195722246773111711225462603991031678243475853461414204939171675264018201318798549402146514247070472594819972865167692610214227146057875503155266686325621567217497637962381451963271824123132465218906175011649244437151850858062917738453380883401571568746032245778432742560711171282186030000707637190673120007033473006865874394190785189076346452579053929859226019523460799245208619915168172837992302289499737801004768894858017606639941354940015387722420281980421670120626930520024985639208292108204166681270402518282569625257589531022448495796465683141202929639114428119629055967464017144190583739206071009744775459254664089904083856362033296955344462189504184678802310727658031914465215060771045503792580397999630985684362593712084563284034917715826869677938797181679878364788169672163749448049681601266280848177630628338204387618945273389490483157379896226624990004449451227696465609944874220814003705676172833998593847969062282351503305673707151720271658920491271203539623436671544472139511993296919012900864840723388170833915006501152138285576322132935923190482929452069996060504725112648976215876199579944823018755369594043098322576717859876921414077012037934322220249823787727571260888067673410570411006254782494413917202989728607091499653359341620516690969654041096832680160381569546429190626349591319395539332345906713622496368099668506766509333777328477730547467585824646206515666822237799496489245936444833954186344284481010215067107794489877316614073704781777621737858791750773345069505976142086667410886085475103118950094493915198356884727159881207747138279199322644121210867322268484712470863759587136546336788246044967980977436927184515051871346024077242332370593047949956805140687566570800294557526634403526159751105155229813772189219961743598332219695980776092519369543435323120573371918129181143340187667922756599729579800178680960518473438524416853117851025863190167200779742603507215203418244798255908704111540953717484292157521171689051581635843029934355988912600554477246606183252371401642217072115015321542639540579010386951537772547054873749981354791856907933999399147924552060310977081512436438853673455207637760271043545625617991010849134267371730838096728610799432596968208420203301786233828548652659208229123973961376054455853372736622293950298446247560743063092972907327949265012192508659623605948864303725260400083780186096918890421689214898581627367075055467779385901458749572467959322021316718452747228044909043595769770955125835944205814428466277555072357043335390130971669767142631014288807094411680553635187517479166424016591377832737548777912460923050448830866417714691021807162610728998943310314438634071450678516547359932087979023266112675300293683507946382326943938692015937786420328279090923972383851213247221488736455462000326215900492417538869409244291409393837603764312581399435630585260928033299491855856411892089383699974582143795641606134563152493727695889891503621857218801818974607985387342819429872753898082991509385689698275486022861470617311437219414384760645312523715446862325672942654812146692093583226465945683330378091776141550942125775282607292654815376359413683578658181601061515302312829138289027160538253208613121745021597148775129958741234106308079185425880306786100430768924218588258330277801373700629703389622345535875755177555045544274501305155019934583059052748300527690786695487483492753025411089952416115096079001210196179992084448573143787587112839379151739213652021533847981312470326820302449470285652958450307828607733775673891144721628630588808215354998998654766808160175758002625219447985807872898968291494705781866672633288387013546444901652160803277803750633489880051421561304782566582796335360525280220701892444208626981263388036507770557467677600258674202250616243081759400949171396299391534064875541373042905261746795180923855892887889493192886186372701467578238214471259322207766979478686929507167600880348349262000689089902480754693203036998615381215446458879342095754661968733298802046526195908727823285324638649590419227632870133090720454709457781700639150658871948855649451925721169043437883050250619920045164220246705477308898292740304862954677116081433488431013892097405831516297270823494934012592268989160486885097729344234514206735495272007557864295514569575433710909292875889629197746056185959206104464666815818847236762116486054644761915280649100028870330756033047524242804644295368380924857537854122750319136849790171077216802186247149450753851380815058153810106570440711848894696739015823940061754450763443028093740276603764931797327731398470482917417213326673200623881478652528506210785279687930301701964118557094734397634902593864573516151395799241600516861646762659752093946008690660134173870547267344225983829214592516147172010863801338581133426639633090278946850366898433488240438756390620843516220395253788385088991610046816773320194427092694355745936702475225745994087455744700856900904702588775060885100882821833802496660744238141174018809877749152840358249386601419519879848203049991240387745386623183486015793014212083415820214547544579825979780702750484948247016678844422948811803241654207334145159285570415940498809469563491213292233261139172291009837717061518314033231550797505135672026927315502313861398704107096969378566999962390099894871023349601499851640843032481185121999823372000227566186626081304407151191314858329179671041207376222445822255032638409845174449499831412767647033731516271534131373054238289695812178428894490263144152692949634548790845763308394572412404139918899135968403305399950690497545877714413322654645404070513787667031059138315154948952731002304256960300881587151940429726133201980338420618380689595078730790527814899707521171284340024748576311293369123870579102689876794051328826817657529454471870989678323690921807905276852305250863499169679550701620915835590809326593309762645169101580330586892591949496942276832667392297688853740377418504247227066972463150014652919546981968051109752146698329840271085129974975757115157926719995147141077409049133846899884013874327613479784710735576566066783932345539409176398386911125008412190034384627030686255032809793234719911694774093556604630716707116279663841734874649648876907461695891277941054092026932719694230408235316653682401420422208497123664559392800250701915489355788666779152328927725218024840121711999959900600276186783637116571900825942854205849667217791034694480820937144932790254088119065689398734150942033350198561356640519105682698289689695124232075230262398466161253290793835599412041167318280849888945577008917006008239768216395136877173387899638273834884749275748318179512019131592973767943853067746382258655029057237628332757451845648395033763154862865712141378102130813090893355364783341984864564039009001028972516096436367082178602568203390345385036632045652588780396444174750787883894424918872158342391622008966926673284952068569617797864617201378545947022937081679693830837035816604426264528354495991772526034850903010564889427011951320542758643084956433711485372870914964404414287237976069663462753419154105205369013132291613759028543192965737840471493946897856055051990725742181002978475507975713943759759699506388735395753528764323789928308112188344662583018441130216873266716694195995791384024479303944289441427636187526704425590539193588832200337534394492546525177041791448190539705314966547723616149441891264730862908559560420370867054066009790817826884103729171204505676253122263106277399057860498253069944358201944919312444263639859871268214517888166191900639748144954324285617555261023485554401228625633284339373131045821256741239709997201694307030842719467649633483727815279279844007721643316408980292294366138415045347832863931797015264009105261778960081435650946660366818262175411166332426074785977889441915308614851393223762963731822047031752391336443858579905939749141520628106308064147649034467642799071358394391991442687817817582043998930989945974419975257117789498674817944886030091545037266153196656551133398662176004013496255798973103664256080776310863924351306127688333719002380270823573711889982778664010590026550135758926994492809598368243492267860235470103262303282606672997995948862633469345669258477490146438896750732139751101909637548605720847891390532456484898353462233951974928129138625912718214740154891621186286183108478951567197336624591593952622003664051906650362887759736053721696386829390183409815411694272283056879830895257527826902369342647344692999604550889360705104758138902005676819549360580965631359327802190049409086920654280450882114987936870126792270802633851277204485599228135765677916112477403288938192992900607310100574895451676176665814770679134762526274031978322162641369157722058022344016190703084228424491307670267720362617459819308448552144174615419533959822590882995671496167800377702538972837848656030716877078342141830404166845576778090654270888508090947392039761555852247579108083427926678393672408173784424159082376349981965087103977659027448659569722630911606200814054798773428271763706676202270540144603445893174524876466918378633510860178372346591542478414215039862660964287805417350532753841559259481796396205676563701489641134470046390650525602967705621711569464604887797466383606671718618238314508121721265943534431482401055229312283408562639398826022847855080084274814266627845161897774942042855782888655455040862206274761015154658255937630336675326594674876241280839958251625319113797127753586827994413649018288957788098745958446911624799523933884230763712736341648593774754414612724439380296603743959932927891136275480837291852235802110578675960742350738964053279201590132363349228635718032640608332648653237216183218460692565951083916988028080107374805541037810518511563235475792593152729101724953552350000213387587911532211530276469523953667447107535005676546773182568442158805791699203808423630858534575396354310923199945222973196168169863245297130869245413870041369568804444163044838208012502774326184647862200195437984540778974610835572024770660612697593577365213720414323336883024582169550451847452442990055600154128422040174141990374947209977692101835718001284156088237193038825401704376990324048841632234708339828038174242376169295791481362108986976824737706395897571635778505015818823825237430817108591054797420790066058801587525745175025528450383630072250491125111047876016546531438689683454545013709080881393956580466469783406870925546165753031385297734064709881597948928350059982502192458633220169048032570517949028917574173526974677664742269433850440816612472490225026124334533079526508060619351445080532163700304677260006186467222755030687106975400133377439669691469748041249893005137900714590466221996552371155500218612463193187655836432756828837878381988587605302719056477528941400298522707853503271760325156008090185023491948285043312927670951994916926024810578908779392041212170747965966445570276036906334191429687813279436792119717581756278745164776519261095340748510420870977981331203184160524883748298163491146754956622584518342189036747566816625328734186999436071615440171459168182033646087866074925202436018481730370339989378707297541330793648807824319289058827560552016886633092952104921154003388807251532749089495363915562225753670003386360028726582402384127531023738602504629033921773219861994028789204787861905771874506468083661327661824589975039500884965337720637613514901979232326889621439498633542833869574917871477737050274015321065728333989874005826713403362689879265573042279716537395616993750012102049238883794683999993011791215179802863700700353216128555176418762261551359987405222792890884001526048864504341415945189655087562871135375795309621620575976832612142741455896752448636937747574861051548866101580355190445797032919722741879895762203561031591302589390193080407668788707510649779170723666605485985223100674862009063795321560463629290979203009374567533526128351895946627307672444904139420796677218186330552350035530631122756145299365525123951886084788726695124278914159343712067333317777029789693814832281540562161895229790229340451127884590198993537683783535586424161072917523508503075713751891438324418918262325417495994931346637153223128167074716368164280807203867170874183744398876424024598490199882534957363799907626320797718452095718644127084558849142463324697326673267671683380944491973759534995263107187856231771122945674654366030602894849793962236272223782024903128950958640856865586443066082618472492741039599224195009499202142401546169219543173185889130390339235094467468463622175662972147156765301282478001269688726946170871844728409736114226332704298074667042024559893106630733017060288330421056030148431213910471389847904344797867905814750952431011957384906824982821292753810235875477156205262215974408240768256535527508010547412592696834850677096115143913156324660893197755917940554703655882241204085054292702174993786634438032571907249868187882382012471178628767759742060379170629884930622913419050240872217227284830180545582503091446734258296027574444650987081221833533491007542794855492569724729281899469598225915760434457625382845196780236646103811238369882447478356641384325382128243680836975456091859174159556976074334873593560976339624063977101875770982566647824168456553351772044500197035423155929290760095929828750633497276308216764046820802814039333542659698246638423946387843815415153570801668018085833258139106244306580131765449761578941947496109779749132215395942788588589472897961430103066382362601631418708622178280567216207212855722346554059655792709251593666482063561437941319039582873398781230713941494254524481111065089824094444535734599982905751069444246023041936882403270953888520864992204777299928426404398968919897999805845666900174221749371823349598771098437365614150512046667451835949451786465136448444846293583679326442311942867059155787164819665228927280906833145718678936314852848144851595146895955096362914806632815721450155856672976190461361075465750566813679926565232831140710593029286219410950213843130456671823725151029274994683928394715211414919835500289088694121907481525813969204890755332660886025464297644380061275293538701490924439797616289220996959725886113957093189953987122145402284511762406213499793811334109766239716538544176277307855429902889391799685564255130288335491656661500785989443351431777889445361161175633070886630647467172880175593191321616080961696270465371212279866870455692821087709700998601672537576050198441660210809328594421436031086139138810999552595349815894691718608987912731279783939055561459699322217209132256905296182711023809335222577015777854246377888951219316156165477985230453565619160105783143173329820531871582601275874295511557099860440924329530739098753004453437639511342681212167985970249157367663091181905767898894341805607642627290735815217615523118520880698693096720546313952629386239043307779479406526702922228132148483642228736478015481743731226883733952531982061013315372751530835639832992413451040311003732084976985762371581004064640490913147402700200593927117661570024100429248822919340143788088963924419492995972905515065498955516742233139449797484192983397528568981996829689385596772629917909779989616282120445832156150322306047793252525813153805098978231501065772661063551396565415606586499409262512629000381540324056399281898250158199712843585562376019156653656465452583011952590151659126930277086720476248160686424738016931466667390224171738429454852407859495913906822918601108130046124699048893550912175010310802923147539493786275102360345853908799525549632432500174333715045123022421833694842854207342050029047129264100046190113189371716651636281910377995837220203706503424816373400655692395582986393113653572247676172491100984547095017096305864675405843534502955546592893552393789634734552086960271563184147924277796353519096267134505782998125098484782274647172092976645674293040266017920256883544567032548358392891812399202986200314768433323103274230128425203728314453373346246133075028800626972349307016266526940969507116481908612982830255956639988290653584183127730895220635566228655388118869833228141659543584472461072061977139072166480630166295852558111422605203798271986963891100769007293790964373790298615964848966206416777395075891602977255992208706345560954878006264995037507388533295114179288098350829849078844173386318610684615651544860985875974696072179935296790080208197721096450214918134047023103102019182795527114752619130482944083068752000815928594800976946607813650639579031877461607647200191880339254867216401264999260942457021812188572900336851529427890498748869163901621812767857570656213048839498294231780787940982817001787210335993924761583684759647321067824158716076192735321076535629477377802265788968225793910974743164756807860383261475306106241911518840879727233592587904234140560116506353655516964076778206270563913360891550523747323415561314056463828384530143738759557745710261399431328683792109223497131092376874193766900239199516612211892335908427505288039846304376198572254748602074374991875482017164309311706108438792981542781915517474049093034225369825837232750340487130812331089353800667564226513514653883806292783450299901622579684292872982161071764842188732854036651428550541924724297437919305883222748738505038479974876748958477605175208699805082860542153845443005706828684592887760180871835609912197658174914082307878271409579129227249590424788909084419535180111996251051262811766404233336751681365111589778389984937505791870290532298438265379359369919856245487646169141769553842209490348360225660129877474714247327673842971706033831558607503401977867626692958174127161512624055504708985700976034541353264663194809104064484790864700504315786153553923157926045341686639379859605513404669585134913555174818884771849986740326165992524517020216324858324994471326160917895823856221015618989180415234255901730868251243007131921632089279430092205685494899846810346883364919957469022962108972867292557613878788232130261731643624162524487845454869232871033211410922657934551244310030949747452550599992705177244355557433072689674913630916011179379244528318295485052575348836635302604310665096088453064213923019800308598651864087749122283457794301930170884225354437322540427126189903694804554067316662117028620410834293401889932137616463692262381724053429112657528303588318634499369860975205923811908881220162194119100672496401298714109449795543613565725601436084735519366598739256184058628135008317490636412755570923872771230770817842863294139349473961163359835571941636537962680936062671666401710037078135121033274883229780367648302001856888229265337655284161351399488830281503929612835575016373521824402373565039921304349454702516686907110281420632747145763676845433104316288877707096459755731971517244122033923520726170877749526925481607098417246702313843227109829341137632224854842535973179444759809837124757464960240012034385775764287883806600985656291642337099196321509559618987060340915525995219535329684421096327995118254165809482140522809520921822976789727404715941187014487321313174358055409456396329568555982371022524380994255549018411798275822297507422128411723421163946539799164936933168894562861701642469913182939839570117650840222531860079554062687779384294142644030350842532710503644836350064812772207543849001423165430126751368567298939595429187787068633025381199456148963981229129408672854687914422468039859012943374091554552586853649884594922482632532267379243992281677951948005828640952337558002119145913882028804134966442506499095956863098449248899509486520587697678887709729896984350609824962703330436466153567998161571729836398297159371289475316547756734165948115003956788893478315111786298244744642082681295916174835724748207669944303384295162019010502030197440233379044929814715960925083875964313709939810589379626038272779366504433802466635469894974933592817539337682080817740744679675540259073362478832740874782805757477571224809711955854561550671643153726457078994035227520693196829819442881013639040589108823581801137553469729555895398416218664239426259072872993577112921883491684148729409790323542943946449433298937870215282868777961725252271750061497367439299902001075045994071277703081599463973125687064812047683456781910373618097987564489418697273148595770833884660176631209570634260300865214753145791226627404549255614679308841478232565632507808252745799018675461043861581037791809353899395643003703928347856142983642476681406369665539820144717899534339417644852819794308953916591649709331343202723403474250755987299490509496059328381493112995482200169070040811726797277303837857679538166520397947935552470122159929181846597733560098855015245916582775733707835256997109132963364898791936568896874882982962702117722951594900951034450990827187150786522565266525944051773293949985694333846669604401307291930510289797864632840642189148833994989813453690525121706556348519322711652045042326624857597597196672109265633568743150726739576925523098469669286666315558923515973542186581662697069296490123750551429971575798836221731917281591047711313674590361314779906551065448503776395369771963579041624774878639598815227848881532445433809196186838278075699735414191574946161411981471586723108724795665551459340752134916391686274111704167395838694545531070998654441764322736017159834090864701297252780198428883760595268399863235973934585183666623335158425447851028556211178971520958613117470148202011846401081772565247339210030053089981561316987923215572763073399897659768466668466697745802142075555733804394563806659154338710635008385710972474413472190979946886004626396172281121017342825934768510725265721075379727735039552343074016372409688272439913016295809198540529024376282001053586832705420107551979944779591739028905409686343013108294663359347263430428466577376609269429914126090399827622398011105035948173420530305739019988368705948496468394681340771424174211964176089180330007592205414198600762723970105488860714229943986106888933422377964188749770549264882029031807710373749414085671514222374756352711076266486391508135147144900392174552906122934786433026346222693930822195313778754677561877455635750835867781307519448710406488535014292155369269894021654303402472139679072677174110754414090297229167033217884696244638525379145847014541293770359231715887700414886284988989039853834196922218012978878701181932193918671568564451139556009309592112951138466450527174279916202420988160963407743296607463422661851858161036591388460373601629061283471892273051902227692401708643649798115704129085573473861970578388340399733672249621459785190432142115668127921434675690615070003014437558564137471760187257969668013609487954677383765580606726113498027104016010709588778314706009715205853584126564220410754882191668032746906898695011377754586501753411636526785020909352460439114997434774117551775169670294197925278586705644584849311009312651802138231722773123768599498155022587295760353420855809068836860788205317657234802499965916469523550131620050794462323574367206755198670853871936267255373858471985948747233929064732504903039026793963730526155934846087808462273765499025198694732333251768559191230057789974366968815736993679601750983134382656543201102012645821456000101907603904234207671763065966054145264451003326532698986231354324778388508767440307508562329426607981566451595650384263790714420280478969540597880247433646437427896276183109946425389721433999990196457717208914184281994759297203242727387905866484878914664093782266842874804807521310742112027061346987001054344149983654703868785789198879774850600165034849706955725818141320578762371094159866501737508000017995726489859118112651024624061167865535661992154791936600707302199624702155922076893966117824452468794765229779262537779628345413199597030194823100823309650708309080573317675623297608207622741763799206364068982780074285646517997866593781563068922646813449659434516867161757345934309529570554016658607868984560751374924410785620426704417904214582429628262860905514913600227728330344081259330094774540987819056678795339122997791668516423796169846767085014261555802510579408844883911853616852891994663587181067819482525262991844923103546815187837544053688497893214408184467436341406747397783104098139541759023144005409633290089132734352947300773695997907585257392494684332653878088124993881180776308445511352181680916945330759044811021000894116704529867830925296327778791464171925113718230413791821983323823336872999646323539647595925767010956202101490810055817062318268296944114001853378740979578976211116937196551546461061257860491547097255940513154892610971241555666608067490792470047960737977100898195720485950960933947519720240870692090060774692114613463365963901373905311349867814428851720856749462562163177139214600605980722598748566045091353604207908814910016582656781811496434377858912086163894748977785020511286627919227057661859887516080517665511408350089561479270328540095694841663178890953048689747762774338227640803077684524401743325991608816975049720896134341145073833440272795160719609521876365695603260478534861952251546222927446951467583025559423274179389017947881936307519358140043484735271422437777445783262969035312004653886442371253978583094829821145266884263279429020708332424038637448234468687752810720487504448565668756571675007744073792496214380416272184233389858784007044751009069142385521259258918251271303393775193830310084424798033051617060771039714599776571852512879818996990633571113639176292850156082563175768147564001302384104071296171646668434450737732271741707055551372938395368758917678164396177158083966480123444946883909732695418749078890223289700604528247656721731404881245364612357205372540975214484355589252653546006712087324530480254349318886655220032738490235008338132035997617067920962194791887465399788118529181640229623024369135749884608312942169920153142344780389560296191522869883816097691081783773092338893338663798386551929670410312034721347525897824383752011374702219358644056577849503059587588118201748974197281833229328054580672767845071468744383833514985247716526758398730603815035788975349748125561963989129637715666768413383328411977498470670996420493528061088302578310402406404020733899092605805240661546244763751715679754004286250801373441715028440018484176443528805404515562122682423834036468927071295041791949277904419009721067689208491050843668600205967151285231479516408859769348896450019132826440729228873560759873671718355965998936421311054960805669551113761456452304718338247766094590493097770261734156093324097012569495361763868734537899978811397876648927089448178151780819338772817098799886690933141688165174525450702915626809487698174450729177694351519670766184589196637582059003744571148756820794337342196010597425360480529044774441545313804079700689701627611743902440804340157950794336615796939386028190493972576718451062807366421125622856040946338868334476364796977097292252728719582212977757214580304741825392876917970490795190817144877974198646643792253635451309107700841640943302034892783186058772152367784335402330304955741988208387871842649074812636787929623805684268429446796284776510009687279922815306845592488839288971017032460563014132160290588207166881617671078785581562064336259220443001000282125658260397254362880445700638948282639762255759283952493644938866527963973767996157973268427497826109877361151291085616326636033556704645427971854500705399998767985547024146092287978678417880725323816060080635468177028660541203740847359968418144001730163116553539450423794596572184462622443764613240964319112541600205250688020817400650473272028563138161204547276557672746127655128787727919197670288801648039678765692533427275886729886100928221944399004793748957021261724681721344141346730074244114235175129267314139212446767419817133723488048956058800837145996707564649659279172748838551001869081482544443103226743592207154434018225409335199573602083652557439936813569640965363396946847049787046740086537397279922978910581806539828118563363379154315158857873809928042565523624717164203924463080109430196748738059241835272273153334143378579093899836120989974307500202041543997103369349948406646701134240092309589523225975873940838213108393657500740737855533146391500040698700207619614146025850261985218718070462440871916052495052177004363662611234413519029707349092737664766266083258021677899746416930871846028945406298842380661425866528667011313472920006604403272570998602044114717911319979192748694459506972567188075749695195109929336482475808615971480595427746372381466119115154862534580336760166313046930902502055896147785363077932096939006284901481139021838518001015569444740955859939763601665035520040813437198585083286538302703639895043642121930505999985608867376070587360700722176698345288140589735542840734243632809819143503892106536579606965751924783311128925735221589810210295822746005235819950678530742428678660314694393551951133709270193635297604585051741339005111430664668579632019106377169614895535735545623967153676585454832549687150484264723150595121200803271594513526311095408901222170658612068931141244273059770819583698040496131214605442380398298496220078238739109560806184283498850486598395574193772490280890607885753462831766820764569043909582295357006865749097431174520654364860251572773180053745143956096315275979760652610401906569944202819640494743526705432442409012505992196560767083209804244253480100295739608807673714107901524277770790765229161465020949152327484702976736442958995197824645762565354556282588988362022239667302564065746958971647172581728784841904017466475631607995623860399108039754890442086100010592780383411626901091757990005252608223618523014638613207550795237236018104098158275631895561658131320886529989282270194909031165622162181839799266395501515796265420792723355295640649374675639594507382664614286002735172890003147358350940262638235941671532817436291804058774330428936310270867866621297574664998914563371652261876579285161356184488853103682716198485242383799604196483952981134014950101856295591564836123808809417208044200789120757474505212417217982869325829182809303560684129174698561350055084116955258196028436773399621610743354026529836594895629827785627887933407793437926675076114732655111131996079701734731487144698367118405610033644646442893561879442156318086453193227315333997983474923207803172414828105323664353092869164210422918237163142044291917779221082813340709537405429716981080683920106082399682442743899894846640846488588445216942511301842116391013270672176055191544037425037824484471086887445731118840083017685887792237801839057887778645141559880503135253916587380340779745049385673191291281946515022098039367999834661346434675165907865751240202372826790191501739092247735736898664455875902369025840035772596607006453870264715848663340702273997788057397568432713813197557682798790553583632214714601891704958847489393156934544356381289937930294317295324747127466910501547694931028282681089244488172635838659465203555947284620632920199883106003943437044705032828679831433560075916263011251961659625272277596060832422917663588575525712927631373410733235833213875381165770241106138468604710442316194404820763257795657009005118124666553026796996535003182642843498777278733280500476370562950705530600196100862445486280740734358565698081039395194897578733073000655101595327404526061891819903461535938695064818998200354816469134120962762827752929016866286453449845408629386723832441760106259379842818919816725213392842969166298786658746008840190414099490403418761276627486785424322623351488101775168917742371405714093471530337491930452179231341424804498959463733128245062353570227632263980980444946529007369959922685254669565688430119804153037520758618451421152317606297328978356830468179624793439845096120183864788744545408059296483657394692547255482081724224770708850569326808086610365087650994719279004756966520423623071468743927103303708606165631264677420071448383065366306251016789896356104968621302159931064631315873593136242923603589218907517734721770050122432862337509971033163808665404934322875765659506093464368414210366550080284954329399571496922089484168290913050705171620549267932838309947359943191948201169458647967314975928685012980824661173148205547145659095652866346738537766251737537015350809595656067616892573277496763234839942663818933396527287958290841396954624709275895163908980682986576379060117908002351889185899342659163899372812599175481835299826407441296122808605077594954126790440097926000443099556055971845280736390142896641807048664423918672997946506912310442858387295453540304103210983733571749293532271940085037857362121730434372564544615533517254212997684517566435614630266523338988306971324086897462025578613104422857001855271139302133167721014915915479603523999301823553552771199960213399878945648056143041295423186874969256892956260261347195193096665388577607055772540963840512514789244232123620192351855693613623988532675156032940536073370654141187844457842621355040814910404326269132975330467927189170267228975084904547580490320812767743859870560803482639296460287489791128876490905744617913275347904418295050353234216641202878653399260842794174335495845041792511475040316835310122636613889473286191848721599632095573934027953530612687097074124311279308597405069608470064511024596021581792947512273123472946564193505160125828744850006442086453440905668209114299178201559223166904960151884746521545066207325760412332543628886804811783739583415364247940759925426346827259221596246243256922914344810801969322716893726775475179073369065307194340338115360652191281979731660911855479297499486398180926858563422655342006384870625807234292519661263295468304232987285558544906659219271966358866642564001085657381720771461797848781842338168035071813643696724232253560284286112886647434786594630866123923427285765584023974182037259702420226741679599389574889188211094239757335397848707192456767758387017156837609119579843463697903542190968655684726439110377342862500657559830169804153045361507443927956148905101224707282053162553120060962461626249099195364171416615985177828240981958161101880260221484873750632640677097434503650409176725768686258510945477930318329899129647787641711587687613119339486968472793597811632600290424648820645704177000134730620969979150608389225413385968335661561263952812099114178271674144287670832740539905132322284165728159366928359636788505271877567110584031911612833647907417473904708832225430264297176245679857173677148303332243647124710155942627574620506333807958395001722674461736141723544081290519988681079355039349057514094948024386430734303306441541551821332171960611047637199487878539332987373784337758073782239937234564800410487566749769809832517734133301041651457719163195533051430982176272881549800604320101798950584451645512709891535882817615189641727265999567818152911402979017994121756736162980842491210748791558045783265026265651556524281040575280969531353478096482448065873458823423031669478445580479046459109153043930420812182792149653258342283833421962688806519698870101369772735833707519140925594556304270954408891657674958980585152305894694266230134937367036499033685545205568600071715071851232537988541110686851450188863968641898151619884364850914226799097176726972285441636435547097981115892427580099272057412254664251034437125196800769458279294472494183468297741783165651830990466678775048045437220263460654991994369105585222676415712765057549582300612950149038445672940340315712770318968987333116320773382471837597319748105255527908932779563036753298323456997130587433889051994660049499697759310267090251733941161295658322135375484028167886691567109057712459138109794219298433586341952708654301616379141943052883291896743279346829654736085452649117366461033472572644246733539598126774188786961392590231809687980927159840174630762664854372959072523859645030912338290453611000305522530188306108170582798023056426996240373630525852205035837328293269189803855997964732650488520773597896914315959418917719771163374945990060650499472984811636210150763978409546202849101795550667879406716637533237153078845465676166151766513059820706779990304053010486055176324957491497500724320577028604892112973463544663083727755475556477166402798796536803437623202314107247922803721252318977610387670309343092089652123356532267837033161932411006661876928116523720830775174668512066491421655522675489755577719546244891933125203580676873914236620419309421905337801621004791369247569956189895200320970632346400203415910000752866002283554810573477016412340226488812156769098118973814119713214238516954559863030846937217759997253149342042947267777307185614089011092260996907898113465291219541568379432887788301993560727455974206120723996123931459378963083679057987562386263396838300214233534697309986368839736879262625640436130980587591241468264495181467549158487992789529926492940544318426020518303755035359248107432116750077194280215108624927465681629308559447192130803291573869103304943272389561787793735905006188315277898987082447510391758532539699293889315841188973932612248760184183597437882209102417900501488184603818933266247109821187008186162603771331170152758681804061914060930855488613622375075557772342522680685815325395794137297246481825001919272926146598647962060913934138478232841933217058951103707228530217659633713848180978543706985913864983764290493713849822421579760419319920879007737051095419827852586325009171449823507823803234204915475041993584564434734223753465863785937295812571329303114828211767765844083550645534284974328157665440299690862675997702803672933795753556051327097630478856762688642806125003160714965488513350840604346871235828079746357604039996245811068094637399449262070856171087235232705496110225506611210823035657794234085217751394119237986183387116762392599846112519438988949820695384167431493392519277996978409026970648250574977358092226335266139949649059627523515318854428399645355454698637124723496393651784088231092125856625110146775668889741509844148931888617164103977289150680237783836730154906594785867804751946994399784028230630407711837302460925986596749378064252879929931839405851302170192938398494382942289159685645906396185009117027885094894151227557479914565283119800423855354032003484478111069271866111503273119350059441652436719327766458280488096292406770341909751190121837858832743025309830492898666832365788000885916845420475104414510060423882754572687898075346566554721202391002645958239298660535372164151949665923187377599367194822387118388580217007335969729690329131608564808952630494745616321271533484332541297769974209785667988643064026478561592868727314160904683485608712880115489131285802740869726785127938579488991174989553329066561251121350483846721858753171508532810994065200280688179651599470586265491021291704486059502730298473535536937377732031765138849167163480368376166210552790834176164890646276769137584392929046171498778145844053438315880091148488414079626701813202621582692728701861136666923528966979231732313526510731550226708881166077280394242613981451040526251970845896857263302913293524250054243097585745826659000326177820247329523695308768947261153381758721796171952904323385745060396902961434604822049134524540771139871756586149900216141162740589891830519454784474066774021180057815790957051877965492168045901558441273247482191476437581888676433495732292404300890286630093408831471846722254108902558529824991027412311534715982464822939569920568828040037068510845071900275009826113952386259447668116505000844699046520256033435577357961600885866246272776934024860986319222371033854217456029033452833688115256065853349902621594066367925686884950059310579085546230639840355073264033712804062458260528683025871386835336121118880135982193413679377737048624960903869795802533527820745548874505332725326938532177507971971413187825293844294181257907438564501886201225570154241182681681251274205957658534243713445854771820059475325612850228101902958129549915637182453989321754501647716608510099545146066635795524285769174226464323389465225361641535987287638277463806237117654257415914079935078276831197025308011731667779265059877691348734634431679241737484302772899848916777758779319679458461082397784016377669501287375070635768965885686120580872972522558617114783557784751840764559788054290361701875040959093549404030460137435469137005013091005426152255089945426247447361659625781541294159268959488809445725014853813500242236305881689502832690239345669676541994247272249377377060237944787183177663901829680651014328016636036767501419544744608124444629397821425227692964881490636059606786772745520142175636746754173977555537118414704054025169872481717817037814421661225909687402480908211442377952212031363390969634612247603880862292072395833553543533320668471554609994151482170251213806468207362643572755587585915244229604489580981500105493404875367499833365670307239146265516076022948162681906395962662697089010598831975551130330330539034610194105135331946179726491860112447203358664869472516817682053446492642393408814107186906976901222971228826923237707502791525853386724763881585876808440553123601443071443696667543311681272874457510026216425267725542384256560202761369157785078836661070584743044618461313301306030711357822673027459231002270690327901768475845107088936280939906536373429618061843402867612642356853066533205640163709114423477226846920353556402617395134317225213665755907381958679026820037489197774707260437885523435219656714988944410853243721444328992123512982320689713492415477470495162986751740794097503662033284819613496857236427294730886923638607947645950321351525545713406455688267144719217888890726779657603304680365578300002132927004728880528295335539345855859332674492453618110581772863229552383349028058152338413287838086776263409563556120769692636633437393113240949847224759026083803532201001279486926758217192922269074866566735462305443301453830904439215649997596261920772081847075921354501027791142919978744864851190179211052296846657994560439215908826154003084939956898039585626671969287695369653501822256909261983999369833735714468486769333091713748670564605505995536767412221725918456041787702815746094275748914699332540026448053753785331083089423660849906104863973265995889934834172505005761289586013375738097439194601915736979540958597826219598865767686256342126067609052588908286087507517496991518539601043195832446446760852829309450144981713415544600887344085171633386896970351878451125209968305377700340547362851997627880786794189825128099627752656698234176734700672393358972637242137227969522563978939451301214289295461636056287547675660096992292911503225558982181879053308451099905060111715530222493051590050863859052861317949434434998885673818319908712073650788526806170643820223954527799867691959596247370775164470695576703280433527458274688949225544729232508017624555120093300089921018587176661873959994603040971251036073950938953571827863654960817902813110407102645057640885841258252035395740869346601654227104787812446356342581015414148703635921688144218349952274057382258806765338275990812698487824253887005193455812738898985934945539455329790308536750288125690154028643695660770338487593395317309129410123875629446629826159640830332647836214506007796398187631799526410067693683041176387756961421837153597809370227045131220731374973708850874706160910635285987700274431181662489437329482168851280904086660351565911778444831300388024225279185847033195164695855353169589730595519034853755097961525028769533613384427221902344251890267792217297227179480110230001471765745138707097572884367942171281309937718626286079151469805177242507900752809442147941525321992789844926570616323978821745025355809600858149252486380292928201478306537691217064589276477312453669689301334636282909480473784835014319659274847314168924656036899924333224460101001174299638660188403306596452792154107004896429688327210590335342959153529716077129345676535831232861409503981114661453058598305431704219415104386724429157721973061411358199946029193399353647104008848048527176009174978163925767684047060049045821294006059097400568268072684264776393608904245054712168340600325780656904529340197960693375528654321937533158071522509003444982340258383888990939289650014880143233203865305847114166015868640115605603570499374225949161841832622089104101204158623762578842388006313594430312164522086755755209786467600015342767532292850111071847796059249300369664344963354540917016581046245113929828344015004372939370411552373984086146969226158417182123158758271299081810732826132820553830136112652113321884443589536132236809004398983213911721540753629250919348753622390493836537992277597218620812111566594357716187700109983193279973712899605222269611751275039093585521347997441313490561375430022087138344532739931971534331932258289052175010235807578678022770533555200201977515302530354579169340988014629754236359393004708265542383413687281222274843619021728158119287378108294229271206131885174106774993259323188942024224139173035881028055896982498893186489536284562679999545979580644918569677832732399872733156300028366975161048256132425673947908458185711534150032673587928709720372091962941505317538305109425545014378067370123426315426434163992489086370573317041035138467682582927930254367754805631867736130195805001096164371853543644433516941030799947732306638409027667018016869662288227779607509839694857645462765632263607741302574925465996985294502505663710456442866034154212108126740839679309940147866289921873514935108287960532974017772639973388429007365052817714688130670051766179673783371056854892274860660822143299073854817149353340270277851625183414188400182189272318767584825767609953303736618816492247375018940214376575948202206035816116548988312880796253634015988561316963080479597625950751113691287598849996339941013647667861975578014224224039020136611942041109140173986461507074469350082560429543031117225084998256458811174122170622247395816526260508993120541543693857815538079118566590886454617923555339803477770733997169106006230626270511992167548014919841246506382739229414115018790180342143012268158454399986341555486991696677469286684776146185374810240838215973690355820219153965912227543418247551494882251564803694036998164575483948000751672996662759987755684793465201868904537025309650894455857024580330803104590609395415071880167147852817547695771106965809825246563861401760170474582247748285419235951949499739714768447448475481822674800438386888932414842649642595495611836358553985309370653477884693545031711699845287937225382026137845030486708409470121235724301774569023360816048880134776185580412274067144378553777358800812641152524207791318628539214208359350942610051207378973003308110721686891457715362738067367314231591819451195281008150139359988750522618990568209536929385216443211995868104851745464949607727879858545628539434908891308143063433871598237415090228844999559496789913347835545841463293899492108912491709425269273458492639398633143762492501210395646982563726726031171094836707522152239104970289008506567669696160749150268444789789525120806698132877591806227898959053281324036246767851938775906654808328655140159309121281557653380048333624605874908604965522146028570428335794879970889858398721551641970524472472189976130124511805015762783254357215554730557108365595296286244890955641095213346424592883656183957742784703669195979697370554871630449525297392899297121236188331816548811013395375827628264858999974341789814907343356558516115109560501072687049038198313807991868025328578150775013043512595081482362330738830365104238518553148116397914078088796046468117816859559252976918154587281902673336236231506656674608085161550411959179815427261666632034597541040822974828197406955379597551218996534402531520445521388317554075292678319431343134673841877359922301611756701562996887743312593598831594875850919961743559384808499096610289674633737712164284437584686285227292115131728983910473192609368930059363999720241564054033777998145924074430523539392677847551864445494926396828646315907331310085972179213642667640469971420227285198626103313305270354094873079752374846768774012372387886020853292778563253898105938763811928596151643116987173637399814382801211790046976686752835524249095782742271984536890978421969408328898945893793872069801878754005363882238080329189237046107585432709066184779058963306833990396869383587017726190937571722971453637550053378663255541317359083886716316336613208217579465183436943798090989684387432463196743252192926859700560035737939339062725988313931196393356885307716308178189646081875638564976923527408829023523473137502284513358375258576135816867922930007808460968259718640937712969066032852659012739669543477761835690759380249392157079018290188890514428607246983916419764467977109434567057446239137184647790476334095708426459278905538382345862684049906573022772534467695807236519707542795516396339068103287494339926827629601629947814120378534893223110511621810684957193181627770328367623131673071142032813857909639379569785612646990107497747581585022721369325542064636344038041183832857308492111461226888356469955162684476598643691017703918774910847202021767924864996066189861953294508363190848297399542741012292003895687300797905734286603467385058287088442591061605170193322275220692619207215449255994764958575048837816570142679498021957792896675024375533096845079142804778460383634663286144998861185179638998353665108039751514633531743770012780078043187334956272735724887363809725274460545696092528345253158495073804859752842743110806072545704633392637621550815981070789443309172437237805306320056547594893122981264679482493737001510912837318082072794228675269116398968244930454966957703750413307644037191523261458908185185690413063957000369262312426645293766542156007533345185535704740799781189343806108727875653741730204289930259844168997976009272304453722421921032422540017031209834421051145678594914422527225886594902723747749258521338315751724563680622686538465343344143378691157859713269553953828084566606049669100481822776558052997258986641165553298048674239781937816716147273893951107911054640961035337930049991577866164181350218112702917268577907436267296061660504648997061335660570031650321787669296237763789819806458738952291692565844285640449883614177954666071263763702599748410234395826199060852137403774647644072803425793043671984032768109715336130974966178844023324962136237426298507088556063742665428945642424159990093139981272042007660991245041858464263884550647880491472484896549804423319608120865171399207421877274455926703070546684820604380827962157021845464071491334686889939202845161109517056831063998511059734598522949887181077846936796432822287986575476923929662151237218699783608516823489162987466604077540272453948249126302083413033329419565735687675945593651009203346527330692392062553563656908781442487898604938613023107974464173707596060186843604135279934704737030318969534329632975813477250342090058641977111222369061585534755719663292517135280189057976963831694615761091323526500853343740775138414254389454188363252236604930569086114002221144326904462540145910741183445155361313265643139225520678513888691967923554819082443914035265986680705276963615199388187915168217963375162193536754074913460657616689293812601934241607649652479374437554478727538976251453187305762209912027834195008225461193508777027939051381791130434543920755584117050564519616877717232737959022283494900362565473577381028733759899072052740686412719385097556524698332183259665585511992084206897241528569111460489494870407096177307130605791348592746791885367161353373280431459256943301418120260288149101623635686486514706070450063868546375465260680661507100239818862254749360596480891553525911579753070913551875621099689005070359690232296916085514198446968829141803965027387102222485584768130816128032449330828976018093220099654897563926160602957038824263675966469903701199645681089635716248741340836675609201256289584197572411353732638806020154244742918475482990333696491076866949976386005147337874625012605072521163038119832677964679574598717991747820399424574917324402031863079971828262909502752060916228779924165666682491187618809977433290449806407387245437016853906192521214893853531732221162415729069073165052150042971093123588667734451044875285922331886693890594830022710620006362700798036836383748520660154301119183591370752850474210125367717207470165623668558748277451232379225607954142931525572379970643568083083312695295453021057435723694999632452430841644726601960916515196762533675746565680251177276359024213393892976238286597124146510164871263552279563126127139830989095053062930022372286228248227012645928883978980893051830356821746617765787776442294514070050645796504193031450521401801934090384785078675278502615323363473134800003499076935018774344978676760458886429562537824248574304265870840551664820679013129181343514295096166419315960022211181227798439440121901305197939179016713028366518397429891268166697457876903230862058269965208749520677279852099763403066081499423548559313251647846835707559943038806427012381460719166581036871697601237813385240516410613138374399080493023399190083057300882847006065753779790333715070077494930161037947236128101960653319732941073827358215872739865430338556562393376134461863653488961466027393453388333061266308459806334854261228680231505042232640881956119859353205645482552397476096667880582832387259116794106085364299563458022800097116127423714758647778401860020610363786199610612851823915214707206120666081767855157408407578968741471158285470852578671011011307742902188854539031824849604491496269636528464309783497941598212886654671235879808226745622747616765495007371168117562951595183432377974161714193161154528322978155004756847234354349852527291575160829402745193597608407644298768825490450516226261419266217410496180679679862064283242640976292032309893325812037277780236482667586525236083209348361866914108766667971886775370661685459069916244203711420612455745699845913429776472063541394881093843005564698549478003318968008196981711831174141521871553139938101336621805481049962691630043027189011654158118197772543774334842817858995535501468700797655256322325851427756778365321447928966720867342336097769598565439512945233754461235111668612369588434588706603722299125998790816027424119745333696789065502019911074717418907497785655543383596545649991365702835617219371012411255768367602446038598209754438179352155411987027532903264136985136593720929494170031961492294444600004464691436282857507070229881201690685482096369698282641383451898199147720533447149446085068200622102158975522974739012970887278809413713221193679103865787587940654837850618045938224189195912075604460664612566781316644937379248010189819960629609832357794213214149754601468459464623371248345465567213482911413951981677031751236272520145280297261176213104116302532009870611759274218965194574245020581016805596648918879480415445328245458606170399859537042316618096705447037038278740812108753894127656241218248651968634149920577041469066667599873940863866131156153635864141454264183667900382595617644687886989436435960991460666428370547455859180071130135013282710911703482381534844446398640549494706365381966486187396841419558378288462968926410435789698608642126383245518103887305562337477187401048631018621902305339411591837078014950295324398739595418860151680712782009322042664781455810265320243428373320850864918410584144369104336629063801651763354235794365099356257272345185165926801634181328048012750618579319947465857671890158516111982612603526313302668386922448963837311130792671580647472561951677597146438416929321863637936929739996549643248359628621951230009998835906389334232035621967978623093583053890321351198222036173097775180096014677250214463312040707146433314729552455989927800256264515121296310822297210266669094030857327651793905483032506854961959502373691975254274366798916765202207724807542562158556579369291683487691204173856740412449682432969131476881754902214099039190642074485122487554945062182883942829045060510317220666471400562386365791123563361541154392443366964808946766854989723983399299029701069674185442632212254922254394445026405081466143244515686157215121332546911228892080291021138263704835078423760271882877527576553891289049383255507804626180808483371985529970017265005933133699644348994819163276310782580453017907111513164782718169029507429644638996147288115336266415942877441530753357475200514644565196782627409632718943188493464808073957314702928927961399947109493430713600261398149083986313571043007565293527940765019125133154529606629535308890282434013358409577942506155138162877600282439420396161334996534785461080436784886300461806156643463489283666477760939437948693278703287931086154484523523131930197151694831894570198446693543397650024649183415278509192900456165412985047199993758002662633224665587242682261128191153493533297817893296476074951688292852630778839944936255747986563643596237830538852494086124403370488057060905674052161158751926780872097443967074917105206171114998253214709048660595375697152242924673440206013756997236024771317914403706359990976179931384314209920925485836623385627688582630642592467516114447958250500137562110546442538095143553989755901796929229301757714140866431209322362804373753476127275891273928846290075521617124407101419153470874799857080367528065322567429813417567502170642729196788726068366063326563671860279062913333269122443527853758994040517083867828520013094604859325165280782825498862647472003019543273191737454692178872247705731643872055575617099910198588840149062141357957751966199519649375881910962876400740731402085574671297545815197129868624862126157901844363169332035025433120051486449232325488892522784462106114140580089113008950728328328652676141337236620466684075279153927658789989289073155376863336805180406821121277063012170903358632723445110013954373437799195777662997450060617961207127584111795707223432541675230267129373609966294805736744962251391465178529155945390723116903716595835648052167978582260401158151360183775075393462273962566425928032887091355369392939580045847848463613543787458269029870313662125265860688687886235191573632911661702848530998123167122438368599096079757748277427830210566505264251192492203213872634980684600284188144958095626793252971533406445884076229887727851543987326804287175706663069968907959711151144113716882341713505853765519440212269782773773444379851340292199640375116534435398405676661361803903669482579140229316677648072166579906375905106632008053963687650148011186901766034012850380318482290576517979388685763494864466350567919044561153375225427755221705189562734076774290227047164131500371583616701335741178181270236969705939185301058194578496143207254535915623535513559552068887685005653305898749602216377345968753070059687108309128696477923352335810292492570940144061128739647752651478411234131938352920267892265494688209833920389401690743409046112029267407439055307238186187843255380292950140250882950003343735534064323990669286869410954948575439588290389241367972534169360138631462721981475796399110529725622314092201957010586595092035045681491755127209659698994454136052231645534139049086800564942725804430562785951850870631182786528115441016349196044209632403056184622039767096907395614281879159553306188389823049735005191328402547194103814207922483387211320740086387185396498151629291200012145023481088633220714791570121145207642698723328970353797217068577871961627872915371339810692164471597685680815119191740874814280212418412590028138694276533525963529391914637839625288938866193400383689490067002728276541656878134994609051260321111827758564967837360949249719882191330752608716470609558869920762446648125420762782561588100729131568612707006388583275622002007408950051110474304761807812202494579116376295703108267835190093812558491878059345622344855845588175493774598904711966014689208129909231041367129167956912242800109317807242256152479602393150520792385714645341873089529625029954861003904414664237831638817087098616359432616704326932189877564323370875871146661084778304714049229247596147101376591887208031994867147051630228756136596157482359065708921081632806589360616991236691140042889228461888149499197585971710893125267530409982839186626750011931161981112996928171169347856240923487080358642674292759195852458919192547940167919400085315661705486700221788905901271884674714442381590524144848356066548543401860190514832815331080200518608060778274747135386082012345655262271886949702029640459097833786740336462828541758303161436189575334384628144342149171014755862361768472193670188037921273527784544249191821202283930479299002470639259929984865193801036825505513796022536924903621424813196170021365504167016747431616420844889369772272011481410439584519707873235803915679486506468865303481461489707030228643900978272317402326646298702597220185361480002832978859711929586440593752345077787839172862860032682186937392865252055742724586659393972014306924449922224797413447970424917925411744041892510845869801983523766624953166409695130198635034134937873740753467375324486198639850253719858658926205024051389457671615443910656514901661270828744543742291182213623253663081030780987329676006020396601485395892051111522437458600575637714504599705549631159465860043835433174130699167550523038066527438745723461721956779970858933890368767475605396158162790678425501819928126578501348179483964387151281808447873639953901496389844065800737720290357688347769664004036339805278416831409802008656423665626471730903692381855486143131168519469667259462048051107518369971790320599990445851795358249016825423645431422543831842915103575963096938909369866084918971031095175868433355940264644184445105159596728372904616422292724045662437796249692741310693858935898927694571311975142593142908915795071975685077917566070902326746687966890235493026421095568166534160138609487642689413651137475294162829439359900456746548879916099509077447900597168784464301901141271926976405463355010419194620250614723379705673052936760238203787003941709251353321231938722878815016806009219587793841611450970889684036921855614423692054615301670239752397479362244988431975473570195652086776576706313280902924960456872712744151884341960328044988659527146739861222170110056366369037591279522767038096224486222317337422210504570614240079174640995829517731926162127465928763408534506506741994146286068020390357806928029650517826812887615476051756948342000603364384541272256125967690076920825902771480305630552318889847419153348089048521806395216617546341745241769462483957693778333891067545789481568409884481999119971735498205157765699029516267215528359569696651286711939084161064324743230551702380956854923872964501479620970022489227358994714704250565814059851409923300591252068370107901211458694300378769827853247994599956040730007210035102348035318347289518597791590860963307110835942181960694508068620776812001577869383685640569062680461732155126445649904482214500378168593059237938227511128873255598517312213336249667908791620415459559615244171864321660408349998155727391275781276229296713479429438520905651960269717124106885530488091389322045488309688175372027393927418061956887608386273917101486071918190125222060441675330121045556327537637729373963346000444204894512608993391916598400732543834902330165630713782404641632059155274410542758842239567684411491345772566621385223831999955644383542514494861870322484287683148070660772366684888383125580053384338379883028700298585247325386956471099290359393496195447547330897714645341789092925664001139966716760463567654263031004747730737148303259995023156108784202592068222749197506033750212211649534995922228212291331269498542932577017061166247311690209517679137396311221166920096165291090240767790522824535034803688301996780029445796129293145547158039911738118652901500557422764387349868710780689611966241728835690678007540277012882174358716379416233101607334116665385149226837907717325748634318906605389487510573613215142280070953897900561043399598735885166754051233223125155921736739369958922275303516321635254096731361458458271225004601209619054554503306376127056507724259450217482538242832386204560304322408208037151475668405902434154599545322325168623621442595312612752417057684270645379806478273179939653037909040443051501551996526878624618199636788505461821623571458645031539870130452663089608922009647589624063808132898083526546735524794618296556783127525205493185816947050222345780367367232902591013907787166693061292315601039985177219131135122090518539481901142582226298458910770316577295784906170300358703616956990401439324665169442987970425703416823872617373675790366555222860288990337018136161570271987410828285356947018249104753765567829570410963777642488386797450938349432524859785512305608636331263994556121489344666453835042445705946381435707188593145386428173104618193172171466982086250832934604019961194942562712705812111799933187327798855982323229467575949124688554053557527475053148543672580907918142944988355729508056814160380276079788138241670422826376225156851458638190935497440393736776403789888646359013545420886936920604130416164433963808592039384117085471625427412029135833462490770925349612737153354953723592796997824645300243014380139244540365235327583747767464498992456003442578529176142953059488692571906687869589042543128757374814296260657470551456633155601371411840155328031433333639347332186071387789186630226408050125126950722000842748207822519519908249939276188246187167892566539423395165328172710169024787062579388798300727834304205108139500795480338090269482477150672516493681289456370386343009736967293337006332402960496669970521150003625351104720510472720275970731157034954328620651607274277286188838552040565121898961566460112404228893112957475641199415001580381847195778732064614235249661414243361672245507806812587811141115127085326693276803122869405854642135780968787569535773849207484852562843978103524021338339823720695392353136073459379417863433988575338630212373767172530402381363777366164552630959075771636219891197687800626728839270960205274096500833675606762614868981421605644172101975425507644373490224169120085175870334269073716388518440269297036480723215534606381101109397251636705868013679070174556663215275443652734279508075845714419889256891885953862073437261377972821757764410132012244179269843693174339291066304260364713552763952744426252510509921596754081177329161279843480250442474275746117891705705860347600437669989062946058229430995306582593390434008033886376161357041663259712741414351948508230162042018112473332235967520213668613005049471068264718469920352316105577388699631273211314280884406936730169172198161047405769407061423213499562991645461463408200513811344202444364326034462941963013005463378835751687871867043224020825088489712438697150173753368519343389456925955015502675573596725550328618168683752269265325853788774566415903547622623544458830430913438450089820300892465461090295679682124135693955450725035931138337959910832116266122305830906805494338169831363872657368537157731092901318322078461321502227228774993930735216586581929864123351007448315676699631499836747518792860506788941133331946188367649163721646226301970799355860316144316960592870246792017900549572989804865488890046545979614388222137983627061024168428933171080667922542494438432036300569413764523913393157212771814628615824790447809684579689261853489873201540046192891615134029218689923506961457691078069415782506679405368970573675122590362730292859833296479227431892567661067066273389278842772796459063647027696728844369781879693604563897149928759812686709312564919705807743790808595434652570758418436567459059167266854565549529920619249597296221412676503756817779339514188238328090791589110178637045330917567538306747562937810281861459247599022289859858908100445839703495641494674278841916518342544437719471025237181869366859860967766706566526129857962317596072284256318326068911783169765397845923096581392262768968906445651106552347982197245854487280399324133469504035983229987287899996119403169984499825201037049656509684217274397499610444379935823799254888669446614961604355410621275627963917556921195877394815994170913884803378778643752562817197060444018633216486034035626775925772714678580637952382455858730106936784565865015949951166381322666333080743112733782234461982145095558104709204067311510700776705322023356529434204332056641494591161322406185916980565097295944060962480310224911652080072081953241210799330052054402969339948343155824230736120843677312758982770883168197703205652624441583843939292197059131642423796003708512048830850574178165343294944753407745959840977347647170631662064726328983841238568776678300674191937452807545389194246089200228106419592261847847332289968263071795895022345217822594143949220488862212698861139785986009063753110935313806402534697051242432289128687618918949192691482602639220004941660747366222981146873970540827999715905198488260728566214793981519102817902649949054748478001425282391074911074819822662715310766343860853622127672233601912714295705273282212190328010458525402668776918424917165840993186179341440569907327585332547911958424083552030988232332419377537657076367830847415677764864167013497443827359086136535970790898561660152083935134275307554272670196573109972182395911536475676625786040846551290143100244265588138055751893776079144345154429622713357339907098755393250425104840447927314950696659695532286141077613676274576624459598410882390554767367059747088805099250713817945891839063077715354445066611099083434235361146029305616811036493316588019071976137919693950046091565967322732172602338262539029329839105973868197557754506387802270398723639532785782836589317822938311758539831670636007755273660891241805503808805362142815295455829229435797037726332524232542071720271092804302576470513519958218005961162969724250081530380082433525999226561730705661459087775050209158144519673051078670190062271269086013706393622504606638933698436689014062203118539907320158159635231030756656768783030331320505713616733687615670032548337651298913777323492166261989491063439170921245599454658037783837687000231257849525735948471193763523978492289914371518327608219720820423881785770828086408300623215955078742528688276886331484933039762298629014372764523432832256475674892489955243511690242280205408511395373712610333566383982438190384117572048612127826226914633471458321694157968312297538390959630052359333795417460514745254661147896249692210480368573508971103529015783466076618419697914598574429751434113775540481998027439349869098235049947050965227496155139693556315396125299785937167183278052205641297561849296316239793913054310223288342249122285639171867566958353785221361171123023398115146729757233511459234300031747759815037249735215003202736740230073912310818099599932080359696263677749589777071650488092137228786898608708963416866032231845798799977006308478886052190524337888521927996201319816916299655640873459430591334890193799778799570115019742137557629124753762584776743229187470262919496570574335758303947179051492319073779440378954310717540575208350750561593389596770038196033805418822805660314971473102208128886842129093656733251834434495862162685139766305518517129637875409924162310058589826054939030957903338796179865800602330955054335982817722581945351685954003900710744878181772696480447520166351329744821355519326207363694590948467413082641806489998220288515885733799962174248486080743141354083516272667390809709981544456021839049097619143643502628773338937282576835655999523430058441682480410560825291975385387842936732544625649361843162257333240227981798089719923634060655017772733921191581540869779296657041106559546560639383938350956915869321384066542679677018463263482587403259535082740072213723620934263237560559755217444939580666495115265592643865761535002516872795328767841362301673960703093272149350857876601514606231699795238018864391487996390895226105723011693282524431703239657954188356529731938119847134593846395606041562125027476161896189449112308783959126357925802331884611301531396160598243086173546199820041669496108657020893433650697402276863142035761671559460588613549418531750581767582442949391474084843246738717124890070940380619310459416310688603901950306464999493642415625399389143462970069595782822418533358280653576377230479709508325487301815359983441349360450595032990058810042124796378254103706824056786440847208491733863485860491774165768565349479974021592932208204106923074156046858392587001613639777578269675941273795941190299859180164969655073152962495336135974153244413202769077382713211397981685122026548796432742861066194713715442876624171403600910567779118450051387358604528464009606657829301660732081841391720606589271630510350863452006870094415511672496630999222117449061922707985286092330610744530960363597906191067684188834627543411731587420802078453441941887475139148232077160526127395473031022104480904400521167541484749299401048077851745109403136854315906898304587893446877501475302045870459591959023980944061308777950469067339908418796716081162605928122646395632648975637321106497278943953231662850840303374814096766042430028264569079841237227405982479174196187321717230870367388538834741532215363636663184279549113882089749552472804208455336562320817303623053224893993650925986699471359316737620798639001527329134181820573839644654517513680620699236319026131420953201866825142210930483310104837739858611131380331080407913742743795098419044189382968521882169508629885238208740829732120864960442095075000140665012485534309984575949807906686894252824017035292740346469255657683773274713339414185059294885356539668159830562492603795364391930130839111170657005983546195058836659622584870498164779625106395653360554411942092260948781384779230238655583024659731705747875067991659690888362616605204960890845416642938102145201621691485568658606882213437932207742285399916670621844452028281945823228768553271869971180930494486850427489575168675723067296069709824826724601701738027799705312365621149256575048406670228357435522654293850586784146182909801819885812183276710173807513901688850150820469139884564895327002957626967183252051235197797823435054314190023775104424501774109538652029265578817410886675187366453057172730043695573081834901806220179426746000029568330116152889364243051820045484562661162735377859567308757859955120782952114994423136684997760204031701968081735233391408009445093648778674981411177308727514197770095118130870125903278569968814764955745972922052035307719171074368744390397124564623461224701918582126271713587285250246626160354368038962819327303636301111077266844622002771124897183352969665749656414181116592524494188203662623663349847206142680868685418369162306185817568811477351121062073552192375475173240134046779604565895156940106126785828253597534391704277576975867925268724316566022511790411175363859009447474103797090194002273148605891794372215929860864751074408635998193581784779534650274436306134633593315722014592953880535356628361741345671049493940218946944296167253072719916106736066857699891084385920296660192139984277551276939875090023437904556145154719338231675498539401973131271980912665866562907170008833663640842970859420731881421056143281789372415224226862658754353767054382751465373918490546836560877969496923364014136041039833197764166571155133210325273364731954312318370074112379821240952322351553467137978727313480950236195836376739123206516315004357586592131654489423674932309019423709494652577040704692603117919111364299985023155399971852828536307072353958469566786960370010385112111478278459937181397998382610529836165296899991605511489261411448084340140531184329314729780031028056906687733796111630095804571251069351407512028059874324385721480130651432553794675577706063580107234142558752621370357376804909590760364896701090831827075572021539071969929026350267560873430145758337055547385977709206500153395655125222855782266855191612329757940114778270362146726812878860868657857863676698480330471112381670124915578584215225362537385345996319668690912878511498156357799755633460049679629120541407586000165274128981657900470980252312535384474065948568160004397744653319700968901227873983701120849938440287945230520449694777696116419417046380466408755676444141414114026330459167693644776136449256259905329171954903804285223489600311286858083786612197635673274528240489201129355238060450096483724393275856240042520283349942263377538879614710065060886149342615339129169969336574910712221918715002950067066442640888126795249267739298011303970370704782609589454481536104899085971609665612642289666198538124436493142961717844213440470181221565490614774922380248932991518312894559290277918685164900254158462085029257359041333268936661861380647751440797571518672856510011472949163027064063378126348971035125652279768474701934366069881653056999998646716189386391241368770288034053841152567289833777094407069011415138770075318825506801282703742859520316776829603798593227070786101212922884312146285667594508790088934049344154303301311499797695305677434223269443336268450194704754807636589911555991533372813797883361614279867271539319790742489910648868402464951718984581726418556173305053356704544708514559562514223065940779953814833923136957008963325829720993932792509289214881810149944335888142542660092519774432819361558091686367411736089045491566973638272190214413947106579101087265352552418011709162519521156465877388891811497767771092290719346324705328060104236646838369989221534980941938385165142513698576825418436552387996276800452808797141799422644262660884835426322076932458316779750695558044905461228476750042978944695464651399938531261756073544323578027535369615048309905768643434793982880879075863491884353648330985505978152821025330033215939591161921110678701130081178348711767642274351582441765230717050542940117874338690440267416226678336542138312545861437963818694524096090404889676568079324696916900172022453380770000471902533558308025337812528568458636595163331228496010356927259727421450009519518318849080841896652653768958097045781541810575496866063556852781660506410401382827147364675631218772261502355131966974239157558462802717127399604496110637690356316866633229914194675947502023113512373142815756977511001678901629087010512538321099198731035126868474755218139252446438110505748936615173783665433500151944341875503568422445691022177394905960407358224714413133532251825341539740201385802997209143759779089596116240577873508212703109911407843358375764455215140750326075406945185401462402095818465015788221801211104489582191750179686472174339542218525601754665196089921414248781295578654708476438063051401873661959732330681492052364354520696996867309380769447432634054214757133299746542119590339757512760384079004945126905396791759025718865607290758784525576778093745088170998719951924304827562607670150275086179994398808133403473971736686041111207701228402410936225988648357420313953114877298590003086334302256566655132588850183574956131453828857051629060332862980475385706659400849432682504034460428420541002794448603701556567412259416386343063359856427574338887514115785175770079207943019923961175380839132354351916659545939924734214603798705578186030067280652677302108169404443337780355498432106987240680400228088656553634213250371199732241556549402585594298293280991039483901916702329862675900364393057801871816760043520182623934755180787731515159448851129138835412366432329665924477768316233726920248013379948102041009164321740919714636184908787342727497171841719103602093842772234529005424189171655302620320244269153290381792753296804019443010716031053305934309690654225718201186913575186442651225283329691401291105835256713068414266462446396656639400516206619760235818249677381336971351456184759251652760637204699668317521525858398673179763128637059413445826435398409005137146363900023753506992786564502824917022382363227232286259094847250157628766626575612254691805017362040750646879458466387098885095116661425992124977766667401305281111218977431369322628569167167210797496719057888288165704097582642311633548967970645440318884382802506967040199053851009130865703833249623818210485617291616936327136910584713409750334564564364798997651384455879988693890190361275937563353525918196542194780272959074652629508499046639142413643451358525520564364192199357571305491181234361678706786044298320307546480790538925149138561006897021698239126634649781404629565878637997934381383572824076139856554940008786365057209945951533826550488811398367127537936295481980613536304721139530718309993959414747206976406850810380625361554592097739084465118808560008573981909661276979385424054461911598873637204779096416933584459058541034250286646964497456220028678484243272329960624781500422702761432329407487541401022960541049519435542091327100165485678255920072536967090153662618314541334446173552713479666970540487336426739595525659293419695197452269388116623301078131587261412658343617987131783369261638768367822617272995261945362113206860061491607769984519715126852384672029726078109918205355158151951730323154324945612369580563356985460803382612081856824842608556937176590714868206263809412291332781916886860936926665663015424628399880308105038409298695747438140039620591149236518002617732557894011133338782904092175798058951058555670913341379281043971805135048614936975173690302135028412071192918903814065651896954235404353945448989869110800814751335546313369851862669108566330866066999451349726603628551702401948785080714712734030346627933896715090478969869349851623172095552655441787942763128394597493386264449185527908581063828578667983691228016088387617640616801174876638146144751220506406318364551524783644720225725741803904509017103909617508442995915103192250221681232423039655270283389078289702533995923787704883356188018571056769975962050735907542399634308860450163780478776042768985834840016823946913320432889644411110152375653762401692161667812315922633667132134777833518080575601357819401385541651406051102825279713117765985650189631665210507961659273093908119080366231272470950448485164376786299157678530853518573180590029066978209521398545611368714357079986294414419253800377525263376763623025220633995752685386201295456367113390452537192829355336906744963194069237207328008302286609530828058026381182028240533810726931867684991434477309621382424609943761318485633922760849424195543179096468778888288085755567640557702551740852053296309907954353298624717804961733491275474216716158898685731253793913125188628391317926605199645984952947265787951207766920713893719982263531045629282028799004512515910025270301037772488216235533442162558364019720659242435509658000904909240899792981627092216962066856101479316677213381461982111685400269673990074550034578695145360441440471772844525586183681503932852214902949744976955549460942846645775725092948488517986203303438977899775873186517339144366464739778371716593211994683222321090667285416797961847232326017496747629439401893737796711720464167102258761205640183217744904807359814882476410799620233171262444834381811658374014451076373487688472694132097341753292366631687394919279356271841375354728511070785933820152344900074624001559565280821133770956250976233617725234694329964899303568122232051944632684102587796354062246511754963568930291986625182062927653373572236723626722068907535053345326730196700291393905042488148670279618670324920367260941352490004119144282740210018380004009930594200536274817022447831411268235964103664720697262733723634969678214888733933392045532351583717749894362084571446163071659268773782897647944266247881198180056302583684650005411567077395001709011009039669812301579188345020024578153630505825558427365373749556071835357368039287106440752349992377346098676962464525881651815877632220718441936352992024473682324808176437471029902356268895750580398852311116113865785883481289616557314929576715331548655011070434015308336465725413115232504936795325639547141512850905424991068766199583669476869010793445447008082201679208650762352579895428159270321011246844709277506064028532157157001437528959756695043070705243143768580573762737273604547268875497208312655110031070560255850477022757545582875391983224141360955156602538948602069431245526012646103699048028928249779602098948264118892896125462110633621819084307774889549983290839359719118071642495723979234260260034143057803821090132781455795469873704769621470633358419721478714029114343992670577693018154305385534496678722885934637733907192730108383694601810997172561339671008523512134502120260752920033985656968224160248359520411755356803007637916466230053100920202914496160047351702250334358012575590335152058636825284062651953193173710836540275734377661536514968835590863308433358727194815435433136612550456251865166384893410110447141698042794440397766408420691551331049512449170993287032857844944345123599783564567672876427392361254215864181877128315422451612984992278656127852126764727167397455077231699346524351672057198754920685548230290200497729442190570176577142479141227107149209933335664336753061956407595327445550754179158833530388473519280133200999360965791726000041066493454321291495810067226206614346080629688534103575933054087368438400544239044307736930888898527363629859056378727039652225139268062591174292306717762539720300016583550871769878913281027951788338160891223792205771063142871488792948656680972020020158838639208549419737385810794000361042293300832002677326710335886965536200015904151313742696781962444296323824354195178129686875987003081674758348229135978004698661869716922181595844964767950183232650383848088734849347249349813231529452346011619534703769081568156983962390519670557735480310335967752594817152566749113702823810042512313592355521751751552899424441258254040881628302799682300902350740867339800582477691823400350604576113635873744755417138107302846897039489376849379517448365555214221562423907195165169193671426975735042651954527192243906564318447580512537202960546750091801202608732545633485514073624055759574193586031688907813142538721125749583661124387607885888209969220251659598531323957078899899510163876363444372285029782076597512995652425875767869179715788321188641813015945138860621596729109357003987001595105144691479416073168373919285633662164452485175356173127245665391995257386743552494859867342851585846450209189733923476034177530274098315489133618713999136436240063735506259246614890722724043588785317653725682718694104026529621365536170642342415613840074961661912124034933444245342922314349151643988252424215282164472351333863962475908878454643403751750745874509231876210066603691192075973400594808777410555229864758768141918350419310303762744270581489436784170052292482579202437013578283823737477545417048307841010954722394342394714948396319300668324074537223413519676163376199138200660866608949308070879185618350896811918198386391365902542385298920131369977839238030813647898968579805939005063190492752156175796860103812963656648098939928890144790354076642706136904466357333253104821545141139245911787435932178041993561242069419549601295372805152933698850570405644074156316345248680794697003458768231912630687919812697121941716728393586008018282592997799930284345365495370066674257991121649994088758036680223221588811156993404499764039391718625672844574645996512953768843817725676093564956139935714738752495100627348842604078127896586243580564950271413152333814072919479892067295085585306816891675337431689565099089208618612361894895896267074020190032111196641991839662684766035334291750888719616295522213941486556078415965800584358211910372225625263652388741995103947700837428609331148219839960771321672550614839211168608542047986014032108929230101403252895704593662742280431593798949572636398731204498124688810541266402455908754987257067633364037402505452452487206092845772070297494601432592054878070652258038972538661997481651560358849861394774988415579891073078657800561854489393484505158251703868893348980970734965214296665218768082358738423775294212580971181373379735157091776769686698194298826431484162355178781103482919903273478097708030366173340407007569500197858822929066709602963502853317095687088484818924259925665580189172816082655167692210156702325550386427023952159363837059607746259640260490422035892048967577693542844566008145120171782958855232447592505130402330562066451729509532606431491013186859808234852997316753032922929895563269189742644315903331280908402884502893951915563403059371558548799556584864099386826009485304856552972798034506109118792592661496670685506809230848366936026097445099804081901583449177783681461993029759448808613328792071307066499198023963783922532650232156607089994609474414400742902029080833531108864611924175850551030938161066516695661380225616781774247995540368716207964221205685045123580837872464176499195416471906220132163059411662234788132283399717313826384249997984269634000107596570025261853560071432574186675317500742133782135752637968991228081132220690486333311805415878882922500859893062443121679636437059708337439501354122015883501950187791269759353446803353727205799047635977817874410113069461277959996174124170723416848690029616819436325121261745447873172614243478743627323634270839123544302828967548306474265395942834563396736094693794241177364035997862792156078128617608580918271381241366557794424699951779255203949776864376742799515653563903619404013047287861730330054597263325502495635860379621459728077240513369011067322656968518206521534750223088551770017853569633919520429061218567229667191369579715399137278594900527950663380314481413449516397643041559796750691244187293491886902526329479616315161758581592040677958820046351351249394503172847647257138361123453605240265948530974356629652349195777632861644018303616348222111079394377760585756937296466776683793738333606412220052660471685667706991687540570007296519318206713085268131515810293855029728272727905824670080829042043957685304405313864474432650269438287559829700257730348077879485113408114939964901378509101555543865097937239789799009887707170240611598284689914060129265210279654115244320817478995704003586634239826404524902940065772355357860293238514518523681676537504161698936250699717112831876702146148828419318802750468924557826884128239625882165062287375827410853153368410137205591546783558326885959408667840740604445908864534040092926511703289473430799520169937585333391930448652502320443787856790466391901434136911065992138344250325693753734928768895114921182557486253009620939564368799801603934680447165916920021202269168388950466012588882705729733727418162776820079233759518420628929202045037837969870382032237282895848871653053677721371942703874894515774350690977394232537719619371247888370580362629773258375770566404403374061170183790714123149950468664677327786878269732757013453238580126103086233409799854714056130214243311971520316159321914632341059546086042927072272129838400787875683894363797447706902694342533131633737363591687993637154523494969316026750000415612490402444931432542980063303009409783832949207175889669321234837217266660309387874446427331840367393408569868523905379160935685765621301570861934659885595862861747966518058488857233234336672907165316296190728239769008412128547109009009034822129220641509865957698471850390703052547979408349929474195138540275533501007953514462033224308655166913900854273810019749588324887065734588804456444044986350695022265925142476380085353175372761855191542061926309985680925127987327242875898431332413962031523397560090540869283326426425645853866897567173815056501968883380067797745813501985353283158142834767437761646767706524333334256768579793589315878410984195212950490820271301661287247096745972532719680109788680021710878207204128488866907523205570782966610637472701032071310373762433517777461190243585425008893778149878279409890440114486441301982734930024102582857352699467530258349284826901742611268120677005457439967050094734950225088431173250142712039503871444954237401156752897891486042714478292320703611521507356120849121991917393481035814812513804941497681489693725493559914031661961225904195048443596895145750302898234402450231325395408880102172874148355435986766220715681289220464137749106026483619883522862417550519977108858678319881255824642683089005802083011128033876905796708448205435604268597971569785046649522432237029072059123362260885981067087616839999500612070757662106537063237462144202429833369648632188509383849599841093631242292453533399852884483134372739681636158748921512489427113623764360067214483097509053185532358745435463720950019617725068479474090350023375577244459136752014902018331739086349463087649910599036163911305691371951813993269049802130566884374511409870443772746237019893113905306963506110402457953664674179193357269539837971598000321369599952806136210191620345810013166384774816008779112268915855189349528545019114499563852670139208025462005368903835060369406370020715016183624221148545838333820174673696134209315345705834575369618919718152936036618515964380751146590173193659759404811789679711247452433532084435820896812994271778355037870903390180148184014542995361566289221178397066613158871574215554654760862048798922984604971799744427047081043690317898558639296415216527623713178746003459830229604096751359879679190893258343084955619852427468819809808986580793678568944909985688858014796669839281170662059434724323222664531583694215875461912189104377464824638211792572766885523283664860685154168670444625727169744454803758567193084877978959006924636524522423012449598705815417295375461782797599390130453895097360893072603024607761678912367885028839694334867422996020971913353957748362700687709816127916838047298276932700647905887600260676208716832320210303461818013291834146435261318897586097973650347467259087573812738954046830635540557563294878462032732379925302091461702571024812389664234826105947942680718084387804214804248498859746843422037197889680206914198351758944827618068592469850762518847547461860846303209345843602744007020307226304461250498041592151304196640728680156195811619598420813640195397160512550368535302596505550525034930695803865062456795533087315298502281928262055396307218853128488432460903149146809678362230772298550782957209657556037647425601429992844221533936358581707073743856753669997853198297168734668033407480417324587262536239683190838289859134733896745982937838771126225671784539562175936789816179467330854955277624974257550493371561739023636151087237754686120583096582153731267827666982312761304442838005037243579537406400647709572246051615542196542713773725636218383066239810510641411117342569837059440705414848019841841933029831613855980261203202676493651531631770433648797335596331978948699998825090902154630377747888975206857182609291722025330404873348856138423599696171737798542621640735856309127614603029113159029502942115149401942559869481736074924743937248205715586634970167106970954779436754065718318880669810670612990639322046355976196244721464237356848921776302999954002157368276688238606703793649476386595022330354021452095880389742367002565779611128672720727715224906757124141185888287489784763212349931166656825896949949186109530119398792301601237200341557450578759382651103116038564908779470063692720911549235812325478334343355188084651586963434012174366507166729103846673770073929409464426072220638185272780907641625420863790725653694586777634431799823145078082232095462836013774473544846830743981117886170931279551995085378481652040972488372933667254698933322674763954772727269784363651404065388562814172298969191098993261641415664437442104262153196571951320194269912103840024179629267881293262878804312480048064477459903733779401103548572205902256381607675953829437669560102002932654015480284696750353880967898151744902157551552312921371656786390814596308839399857351237107223309154176116476503233008303152592668735656445742644036779728669440316143260995806969865840786779263201189340476828712388135505716380009929575538877506077086708998209917644048105093388269225238941224857526956213866018230689243395006325420716542908991599152294721882076570324740169637036992482914228891171548136539250298814777892821386881764342033741959718042969112298290803718791448783934202903728978623099592172819762485353364998285201449028707824935458362856256539172790362024269873370112310629436523696074486635977676700285465573597961658881781051325435175654297743956471368355751063319149933797215766445505920899506573191772337046170117342070049187471433355428109147257810884287626961620542092639004400795327972775944241184631572326659753328468418612054358312960165801209788535503268070058739005235272303397595838513192148455425972375458509216890193175314984078993016566549415408361973724593704165494202666821463707299514840631281917576251399821616187432445374951338022674682296470274155218749982681493976304601017806154189747287549476313560042172900040155965281971894929249871838003466139375765092358192536651907392037245363417703216377267911401039505832919420991910254134184581812065273819811576988959329883290020198694447069238866154807837577765371585019087723145640210413194044733918594040997084849073325790601355246886112544844034332805394255715479438207843572170410235586470235480264011781062103886502691168851185725643412843700274825602163378663580787434759756890849698769355680863169068903801256097358902571504056894711433961911867718320587201769370890451916073311396298003892946416193381921419184735201485205797099149589635295702106190206587085609563773102841570821851282727676324208215511175251108111547838316453757217010081402962193423887630479041600679234080246330491627239006755976018255568570372404330798607862225907321830879927475040645572140570024074698104209544575563348871507288135155640681236604003361580814138686059104417812672594287702744659730049353498802353358529807022509520123971772941651751818046905989919484910020575998689166524168215542666952533285064174385156511615605977097541110123435330336619629934398249187796698838885079948437131217500052119119737646617002233502529632161259059484389133223605542087412154775397603874574365916401558718790704516687714928202536134709945240333927584915324607470180160198613462282912230505359672427079106272782149885476247010811485801773366756325755751553704755782477918957658577787804688985724889475425573157475040478704796844818671049193330895723384551144367108248412739844835934869426731014429599218180057326625376085293468736005335137346374032947810204749770532653541655748471379978080083266602935674903223830989703272997584821155248022027406810773040690985284440959266209425941996292802525186707670143641019037170670031106504510928667819552532870817670254179424146332246876947115674401980851184017818572067391907261997146823065866567726741827037391993874399951092081628639486068264571242933317231531748548819402410200930214394111727343965278572585014887627900545273673815020812818876782665222563914122441591952622971365158285619890799000708762119980436500577813739411586449067345775028672194470960728519871859105959731232968748466547531251343405540519810478022740919281014927487201995859981422633297575203390759495933070931195054056727344204085990570159903165228928469342342583040783048397950075615570653697097882590271006970741400932756973364574454753796726112374520806711519390946967502061677229349021543504456557677566426770957050888950271709593290024480706474425062373287596857656322881636485353226723404459186036878513724143332826815749409976848341797233760810455934468850205745577011577429054757371381792210758544359184629271060848066479519803594817133547821107904804107205690263898765173879076145658144151882360385395004786792767671660507429464881924112316022688020345340504817533606802873650936766548355492028609186543644084836462497567245920588197998182631442332153508641011773411763917842818918938274741442304429923523263119203184510055914157993468849994135093265445283825076995735934594158776403148642216274089544917161392924835445470100720655541480626871686782742375545697235000712167100831428462951948442426789316686699166234977490882713328476872322510894174346571664412882093085546535255246060179824381374797309037922392738365687098173407344032345625743114862160382983065266691907052065480755468884748923936234866548461778053202039663811030826762528171010835272596738670641779633152077224962371818754592081770269692023198759446832034715743817096408086360257238061866365273620066705424341209175045478269332617096802445328546868029991660609316575954728182760631446802933512698305750619118222262892186991898277248860780878772171560551451521501282855179273051811993032379676795418819234522220332901036215886035531325622034279816176242745163142641464407099055998110232021585769583828261089403173049922220511664091838745983611554196340761434341197656339696611454990441121451867411237467916604554485084697048456387835332376603476816280242429373563966305040224471947089729695969158424216983585048146237906573683356965671459291206583954445580431271349647251085247063758415189063123691593936724464307576288411805098965567600993787837193595601933454565499500625100027672642070715469605729592822761421119364013699652210669825625143508227166921807229109883567603773993959193261731238421523826378625391066307999365066129680925635652372034221353142693135747116947751784630272131042670082155274211956216262217934331743648437293470352961940660154199010351200865068505978222380083098456093253686523094530582062665162833558948248809307203359306479369133114819982185415385356370875067456818396553879331002697602064420916640751375325692844703298557964512591790205026785575722104288960888834799580214801875932796611979135297142124531370124819631396243086957528108772313890299005120155082862291915672906716115497747921731618583559415908849133192648367054155427092270654703592586410381563358221659268985128487816091368636275608076745152103754461268266042590350090773224313027473353260820774510711884198912909933265776051584092590192641127729831837371140392801944528051838097777364027360675801759829475081368680409603251936566249551576690303339526785862821493218541575118240702309341913915572147684785745053808472208393491869191020619314966757756221078048491756985951485635841683324617364875503903572916168626581376387324886534978748750200287990361038051031747683112277060636866621522891433057877284552660342283166846697069285897494650181189568560219159094274035426795578678747417097386263692571516454936877818759349276000211908940190978483176451045670906614819092998456105917965373680418003720175303558340444657177144579132058088338970090449623327228650207131017801738139435375731139262665705057665312207362289925604718480838473535061115400993263734032910519006675072919309303517781345456133886019237416532464128093104175754201190025017465357359068357723999877241262051474254134243704371963506390852288564840063571168126157167910194235936008009679158794807667997989995926416722978099615347449216673426320602613031950779538852846858815452440479810404584870179143895215910291366618127350070383448604164765750680663627945325956268238808243123497522235743809180869201691175865370592493463740664546791723927480648519526430933510565563871458133901476236288450103592884592860691093981282171427962476118518254920856361942902434792089400403641182511400746682031635314995646900950530377081401096604721432529527349736011494307061714685706057627675943873645635500521303076462169152933394662980672004230284047708391211589531675668376477328023331338927632171697284707714543537150692190218023868179944975660208467808819278299066439997959430381998851333836213322010089801613752870054050866240561399207539792668253060074303133868545193883968201648013868771692367123767829404369025686068751645381301969544385601211266223159646623740946819855139359308155921820770021613956201961696918669127835033802565708514505251505334704641815865349829881834055220328148574869644574924118933632526009261229543227975249296364412098820071507121011663398727575671028973188772718741956006108337211629848558447198062281282324620971472411717884481342112017379482917598604066082511274914201876967598848629970677724637133779036123699015390774737500765138673658311163427560755874192235246887307642355720232902555577353040068197728293787862426956081894216136429457309294043594121243436676635091728635018876557799976190782068759297039682745738100590840976717055887738069169698946873467123464142606672333473667315226671589195233415165056712175086833268016246385396391692752408200551846510619810171779059634594219218666885937839937036471099878586696070422960167310019123761808470200802429891749514094068505647778393059742858301551621557511664944665305538955215331161998509126850621542579794226307937558699201200651284990412901937682866350478888859208158038020935019161385485674608256487966218320874930133326451382909750747748998848301988973340522809907044553208877563850993028212141284412676492002104399325182920909816648850545801607873643701913398625523231239971754772447827720583419204069572328521414415987890842418623789666995588418427585190223279207298795536642664618967247289834201602466393938310684726055536022600800756861673803598061943032531230463085126536673935925842318533501754747280821312123639728407658743062820178568779054467069026990603938260314573868116133899445635023084095893515053261024359095207090303631425822308865194712703942872095929716853105239901741247199208561006465815179009743024039110361512071636949246116700606150465418486018363277484265333327106339184143806949942715161452822972478236532616607154701166955918169108220676762214738924823191507315632380054939040957118771532658395594304361792613918311056805649166308179101428889378532454374779964167979772951482630328614255421491076096117821871716617990178533700343631163470645586976558854077391895309945614041450652855182457758473703224421375179255529894320160747941403122688074057337443767259397266334609974390430501330134008715719980971218765946611350344863229620703596499269959214528594948484764653897487762167673193641674192623442950047545222623136453302566353282781402755209986006502465278925593082775132806117390632908750254319813715292455864849056066512048002690348863601557734207155480384235701039500138232244255068193836943319935858944547140577695613201768005642069442728261595679761749440831517485491281663949199380091001275637194218873848777979122413805279728962073848602273856883003196976745321963430836491726937710046132701457964347855368325346730415340849076377193155737099160331596297316768289569076520719840617622294974797195482973422080238165113850947614243950301604627051674693466021837981611332940581285084716768630118668945136306278606844694540100548557332173603528359732017096658239925115646939920173653495038466061821937162592574942986936857426197313770532381849549875675200026194204819356667735347616901716490386907839397856368796254596991496357243458135238797755893903721613679274946809929161917499302027474365479922644457138465455722873590925646535782079057659372991631508625655555656889921343455343728099979255459616409682524488945843652561807573331329850646600455476692232859187311646980512774362614419711962681664767663384559534989915609544886380518186856739478790993642031199733456698479937948094106878923027356159373382226709498245538533839286928507043876181357748902118008033982238010382187462948095744097979490267639962957660016873001996575334058495395941822408604584521423647221092792805870282025333201364794876247024463523709083579890123422317371648166744390979053302715630903480988072867393139050904672744806780202215839417210196003501089476105970127002424277816957728876256303497292770765449647545724730710376387192974682383128458416941546772904593619946280651438258494380995165283965353997720582070873609544338447876858543830504891199649426358131047835493513184688984026179665529485634262904916055249398449560716345725153623493451664686653398922054387648782120184915212349021270522882869180999314041986081501369741026249915534276996425766550604781336542096420981490893343424174012015250334864632100001615859694454468637377614735322998234060883999870343283220997255360083527943707264652471408203584179694632879161027380827820808899760968135047763890691223790941543424257333718871342594158745574053645022613773058261746532260801729326403297556411394817464044189469393039161450751436202319734073585223984664247090023171093293790086316921174574654603919030517017692576431820679793128698324209990091887240078652153291697775508012825016126574993250352729301698285508205082178680854571157715278290704540772107079333354415289500326052532553960467188219855097608842782311927393389114839333843089787890273911630348373489433377452239581626363313319334797153624690291800898358992131895230132354996968477237568532165214651230375069334889939204918374254993200831415823751104390961124170675395471006314301561761712872277399499809259081657381636339025870084030019976968076904443676497263661429379711480532341073636606939642039157609467342132064886431077227781762717580353556815846415803521713096930060152340858149415594792403138666129742279053016580692440415017133751348863950315693604710607952944086083967486006132848286509820014791063875175386582892542261520120764204170412907462738417765158078699987176963621430037599519198373273936046184166091470352196697320235830213837283127922002469300014166577256463441275907868663092744138618262434882458212894878477316941291835228469467755682946093904309096751592008288483801397561576027657327400208718511345360171403885392180281120483416608857801472818156795410205301389368471892756917074616532976319426196371396484849644489933025393095603292565629499756376319148401993864891335975571498591977981877475177237688204838684902091697155452320827928636140904031128839382882882193632390782755089959594598647062696808346810282841007607028090779157652947712776720105942168562344730255442325940799544433086721992243498393490793761378402461328417248698876360882446785470030209650113977153184971084459228822172252171807876161915600257632288206076657945533752043354230678461889358633674611774256447243840779820785468880588982307282473391522900462742912846736514935328076668139937833474797510336763642547419622651005503601469837667964288134406858775329650375778451392778449478260081109590057115839823546208471053799167872993960245542145533546070157242475216786128371892487525132524428881349964435326574996239348849758928366833207631413155676540639247884923336659133182726858159164452155042986184481793745241414102105996527715825144762615924291009210060209635278326313341928634053810172656506399262492354204180440517720585491022165526694461615206913480334450434214010132941305681372251878326733142988855933340784517606622085026326236409830179625183332612876327058298990432218706956391216481773707811024404318224935731400356901317231701668230627060957199755376636086187521039015383397855875038879294476567275729091157205004851148131203180097796589348511598767631703107056766007002719434526927409455328080370089738267977492677153323531805610104094669866157982394952599106470686359228139928665934517036734586234811901368565884639678973658905693928882207272266263877396944064500232071028305258146354697486699771753749410550643200182553025312282499601724046611595817225702532896335566750689637170338360678493907884281342226200887558490564828108740992139778199725668540832280239653661506058778455089403982609530664037237982626462268483103646935828099401581932172914810681498411045433300804844933307062525788921946053665042614027396205166088042058213577260614263819228425998499006261958680257588328229162769626157603548991859963316570540230905606848346687542905998731691107140028940640703351369351804857773679777958412543285862515619315503395800486471127296397105274579851256377400385796257547333136810794153720552867423449825828886763814752696712266550247989401823187826071873991334353609169875858509778092654590201315875096426824830884762986083471798305407695256358629624894687556930015226642699571193177731018863221836132551871235864623796810479183205277480900808134253666344530507964906921956481281104665970018733372895905104400354219033662221747753521083257887112813894892346730447527521508611168104083077214588694232392355456471185112370708673845529878013257052468285672269477746967274629339928430792932674486533520565389462965567956424796384382371870315352484661034008577976843106679050347523535903952193523314353467249657564164861441278329476177813623836824234732058229204277648643191160584615526422831592112978635767897131854439021024843084271643908067164633126668742249018293943990673615981538288810207766948312560059528951177596214018392047754561702717620525830516835436828608691400328172581478664236160441053532453097495919638928759488773751381461092783817095115366085966034345265885244830349434890166177256087703278882833278141880544235477009180088191171769086100577770046942661671233893762505833126286219843413550631052504835304642445262545610187407885972522439092866491058082384014297763687177393608533016927717337996792000782136816474950457076388937090098989001276557277922644244800157180714164573058723043612286278347055709673392179768641239006153910801848789954389777996214690632164376834873756632546225030477208040160290578455167538740805601210785172707162480231131106056737952713334578157230413673810380232313085522664156771150850259565785581403369349365123107261103933395579851206222847890584448359100337581501300185433254660005086947162580014757489216141353419725620493658280996591405082722515448760974501534445830178749609115883158666969743028182641974589143685188012167019935943018753253971204385159188633199413041306279052873821067795223426872203955078247048471924228003568635712036039214973855527919555929493886449257314309244810741217654127685434690648718040174044821841681713954976767444566137396951173440090382838625235326568899910295889436353374517026875125054895939156621850594729946449951074452433293341470445451287088170491428952672047421528325498166679967724699633399971514311226249192077868593731968613875422683551795748516224939987753645791505286275438630004516186597190863894544655566806630724230599234013805347160491894463370666509186943142062397392825797485901370461786238473373155128986969371065618414734637693970039443109587389921991403134536116961270819174018900058023963688725157065800905179012170808880517150687536383581583558191779514697187318451873020500558953600086378711057355027798181599790165506529392827888922521196510547886911258335600281318849688593245718869625051082939814071861615475258070440654526412273476888769002869710753279205318957163653926081512015444173203555951250594117867652365277879957197969963938892080675716839744520539962950039555833010250090188558039684678611112685812605074202355669585340747508715305589937001645273798839125208956555415731858645450446706921982959810297289237348239574291507335975993589480214638697600145117692095091303852197421005679458290528731142592193492146046322079294967447546339539162812408034087701834870232047148338977324867418727744092791229474557779411482609063779078674085213134313255594967915131659897446802035931326898493014707126438443020047819182426842342328798506970294962381365832571785838281687984756844476805707653883750120267927055981851113271067578087635966863606973209273558663298365591845283414153121840346749956116293574157406522729072883445664688621238809848338735877866183409237996893326256528770766144590589853190834300746229130946618084311417063236913658191144788212232369426275892714475960276856309385534367928162777658913912892993764674966252948250427855095349655957091196174354536255361794605983010140056385238921681938825518851727778383184265746613208083865299686227711197297423814031558172068497520692967845528293289752676078397024449400086443134851749826802779467854935502784706712670571400628047930057087675252721213317106490417358286061974999637167618285574027232695096208645021455184060821139826060293097099977503117232953918425394390592775791388701173352456396646788939031755829987590772711116183732930689573085045369505636324541244296782689810989165202228856886629214253866036722871225292261571577186054725183264212138055521492304262890283557844970635899070484547418425101225721878739279536024169006479310160581343178282282205283003272086986679193927869009120365760938886992349756259154798602728342756891192972617322216286723299604596751821989869193154694561042013370835357501255363010853838587044309969996605706651282463394974417194137705943471607457464184383513567063930564233012884211623514087622036535703977540285310523343691433104158022449962398469524824230002822099996093815499140313499617192658933021299241404700476796853569272244686914323704392956870749240897281239606292561275007093836453936865834612583695551090704446694670476216302151019741832107550983599444668236290957283028050545408446746710799774803272912160667163899402488047247194294779696511891001761830490365320591659315927054333699270414704759873200493034705304321832028138582649580377717520159011730658071623376772500439588559183214505614754714949415068112084202518568305943262398163896336924113288525151288543382053644296499922091339806739409554910535046999693036134720614893261953330184352903736886622349945823359247817391074903765463628920048923086799569658554037713430277967359162577012947934572950584045017776360127046512117516322244732435106563626404684282828611863583838596192981384311725408378356932847555599654264707978496841118678576860082294371636692042244475679438109725738225112199338713982748779414449237814864768107752640868070832103972289802024729551438144433734437944917508283352856739086546966384103767163291929486423108326986115415468396689278503394221486105015866641755177253779512743701174414144605877657970853010308312401031703838883629031197567818003795341364366076800124939078943050589795576337622368287100462138567123651892157057036199297999506639478224700652030288427995927682644700148823677427632775760449008630570627705776811726411794264072687748806726377591293771909836920547087645567189551472499190903455409926781829624097159307208496330275944352473796489576129173712274342714087700792181793397569246460534798569793640191716509093669641991723346281645590126131194529311742358823664897835724722448919418978800603872027911394356964591460828954198532051731460145518155827036583727906134592291178417674639294443284540152905437238621365103635964108458561001077770200659608322952335173075233976081689628494287130636672155276199515308209762661276633060880563234348738050608302447076922758185389521357498833215885403699156665289043188739613040682471089245562434647984482497991542235074997363374379287300289654527448182950530644967401609507968307590407598905958738463813222173568882958335311099474200152459951108051673282835274721110863384960389367858630563206953639989128851424560124793671703849276762369280507829056324941875299934482922137990090812808120327273776135274328045692556966596864313390285393554861005203342650109744025523374347252470615860561150192095417561802312251477111540909554394086227767677883684160697094942344841766579250046578016593705084434816736716810907533480246611014867775915726117272378336634698016232602734130487264832276312362483713215037248967795360825223157509247049049049876539784998401584752096504213763895921892367540573122111019151192840488153257367672645833930768300287027220750534339805516479590982991954660044292150711690156510838098955559221705464409893923966861221967081137676884660637914620330020800134992112465857013076388255504406765027543979404225856236755627432116735988270481614823277129955420196488131242973597143111189966667876394684402698499959473170242528840994532548510571472959935498312658413683702083103398745280443560382290686139621105258723745218960595194846610989608006723296875103938257222189313466719728408497490831591130571101915254778616746801479230872694765125807671159502466353714103678827249533727959247958080687975909722049887722356383674830164379758915019270047313054797361355253463642789271455272673701070244835798865935544386108844463751336068669578493548456907848416365416516039490586477941542794494329357632282052981791352974317070177745703075375167336305559369389809268773128030407208835740181847934302293010558256814102056629699201258661968918328990923247961266687220236121882726565588689171573056048441854587685132143909881097982679694142891312069664859676246910797695527977889699673912057735536021255929789092458472392424842832910080940788600122595535039395136263221564500770127426872088884643097909862342509792291750872564507746575859618406913503229129150052687044939799992950839342733309432759990824351341891426338461099116358478602114620715585180728743342245079518417889146408070826251163241113312275620135316772183112927503179815361118657573429489442953414533792348658505920411104933974740495881001438602564427395334700506419225669957897092195144801665613444401035933248600228240881241032348262438293586490225176835962132684716982048105225914274583308617534962587900250561264349829118226595235625508734869022404625242591810059299194468089846249067532731013383255065671483795029761186266125458137554352714740285683284827096958672188384806665547935447552929831429464136965894390873751903775737540356993312463101423369951954427919643987866206525063773795865312632069144175124377093079576431457205833501587047646338354405521844592509573094196715028461246738568560813817937460525972629381231338154879401919539725895554448518716274917360982139629421972666691959570897312892356337345586434167226276286032734255764996857189129352531648640782567217129180353127165011034922364363626428944232060884572857897867680128490575132484831405645877008688932811952440394545074459346245967040835318639730604672574957834029786633218969540414366845521393854914189120030551888535033651706885779416552946677200775633776638594034486066752506709734646657145667327186152212293935251103737085402051532632527275912533467734841783793803829388293047937485805091021836285420157245359274121603788945454801467898728556423858061244034536449497599406262001928986433702282914107668118191945382465071626283500886045308971789278528410462419571585478094954925200982934915984598614459478191260384055057023055980759196631641583117333380830056579469101140232689275348564493739662186084114805292671698894535933511312053040105702610793191960212410758397976178214664161571035497414510738734610924909353601050273556632473376536592555493557625978674964436319084211479133978590825726831270868417198238291329185280251277904646495335598479865818338420963648019977489617440448485153790457750240132902098701539232642259488691347730698718306610140190117028660321924197278874766526601902157666343222066559656721913273737316186663775559962571725377205180859242393111582307471028654235755402288251416559656962460479616195224456641449763970036318845586173157008274728900538754249555329116995872353771949403487584073558030513658907126670551547686976495392022481285501579867489111077261028748695155781713188152602063485297090779151393101071883827975092352413321879963131849199518216150114130158121279176452712582479001922282781601498503868402889374269044413050821438380648997620567462197207840991237757254360286411804247478030663300259735701690862217531853756795014115498030199121684494493462071681259008424379137402462912885084465809073659670316557855188026656100932499509353875684688871659935310787097161883535006704771696825482569547213690298981283098145978457328342197962573167191448827552457280903379465402597239014146657808240675639032485246206874305825292693914518962679998084565565280926725492154041460034479496524597658957264559378370592808091316298529896371379578222025137437374359021602023625122695161514555645572623325931406070964610364083769162113312017260562300630267057241968466184098085246845282439886825026323903672899521523874859221606682529547789848097510825712655839483885397525148683538699618344687687380575574667426733256926936735858324651375980136341474015057301344591074233476148707719754062176264335028610219475125403340856128049963018243539396152191557656234309808267258416974332942693673069290422620907392438530942914652608188329020249838882857426113572523967394090361631974756031667500769726578680793529980399087072102224301493412239384072128228815807344771300482507286228419174198947547307603906448100342881586690854050641410432296695403674817400911806423356055036109716767150411842375838839871705381140971010540608977578572917860742566574699513995761789353727915074274170196980190408193502817987457620375834717845928413810861438355680603802147692542854348551511496371447292900446032283040192482946847338367226998656700829748863043889614387879746959210603952780692204408251342445757095811105448949025165785557723361303346286509019467890730439797340379567368003174139238931045656148950549443047564270773925625339189807121615470478626139309282972459637743003169391275550982064132065569833255307000476908928836340593089883668362788400089994939082120761040315347904783705326877235082543851120170736315081363167886209514216363309111379425011478820876251946621122807909843635874206510647792283869373951389685561325156495247023292741783216932758517545513390604054808743551878116133599064980875647770448009078980474097269966518280141505405927440761001555676928232033088312248807834331738259776135584705699095134944555198846282160017809813597854624500233179591799080884789520897686558016008069826948857170024087465675387086486489038596068324190773453344476278752743354258719347366213047625887661613670638070821281884344831640876839484248498636565345919295124478841478294286288962565554011023127854579426127632016883733307254673157599825863349799896818482571098440985646905849483804375176590836590090109032010533041228533602758844634195623460083121293862655888958970493487221884562689191572539870545043035472721616514295382308266076141252849255937894196030230230346002444187727816981954824804272736943321085319538396136237954156263090780216066061349536245643085813997092592002479635901531232839448899805844477099912074215360303513192842854390101453850376100729148859845156510938262968408580959535794879018654175290702704809514413686271549073923984114294668044668840104951120242022238466005008107606812695384463164017022821200690484296762308168188870380689447469813105579774703634086639853692160128532190039902054427270850364651735833313817672823562837264646250303037863272180695141284508099379662310409801697897158348034150462486701134720406049863478041188716674301861866037594785673294623618996632147610563662702479439776016071658478031485222872856867984462554033107753591537172950380257410971430165929682744597356879553774691959828216537465293619479122008296776202886005664209180761729295616139903176156197908139672681174850949079926091437150425910069179991310292026459635626492088281927244889649927965012953586427880056726332594940904441653785923877183200683913684037031690033699005027887863606964669217899769954924593800092514872300295424196021108201846846627238401437550430900884542367592471393593497437143535854058742146665603210894934241600818520898748850429165697831181491391438460449923811407377860895469791377963618157485486933146182985239565776773254922915281794863987272374306882896874104504046721330796935464398258256290280105285029465777438071937028896952952459886858867438841674507995041538793883515710365625041790768524820902524061442713295843769513189629773697382199705816856616158171162281484229250848450565680372782873517500141923373687409081711344217289741556569616176257420551490658261485142296641492148338793453396655456132008784901386276699120997445218774653407204169480166000409898130511973751345142589825349944334436821318628452494561486426484143554663624234021429812106269759231466144293086383732429282099851282070640467151249458505687021692026932039411507039204303223916977747901541393753202852973653230485747916390367156057737572229364364261813619378579950598695423670348317013684344004004897453882581538300311035693834103824434517985444078233382079487599674178969187899281077260653064610453257601339083349971411144383451957100079252883543135238412978429080142646388342651782987396501746606149552542189889853264944244642366615310651569369490412844786470623104882587257746703248258032861529866035162931027003136925002717966354416919583824437760431013898062916812909130211537166557622054533557956243508439775254562020797881338166086746522687780208967482680321029557329145446895975556940649509706305177711131036363636875215574040932075846115340188702178031322388768219370434688346803495025368189946348481320355431977882920063251475739245491630634856643792367447163645783266315473331111054241776050541908551743652706999537947667022140951772001589167599644059454525513723758249918135256929588981058941111169783553742249971441193853866224379622518974710680746593134633325086060842607900341681116929057980814455639078351555181936014325316131794288497167529820817802992512321691472849262751952953141734264381637666913556699641190509342990933629522182858480825742313710158039703583218398322285324955574049874143260778175233621617116271078412759285791249179762574237290719022154715390615043017963326954269717108590817172849962442605612049342921405036142813261753656419895051064161191737456408788307205910706143237196383753550013488071356938852904455883610923506524647613721988104670436369973672261191577849640304557868862111302755223801702234784798848656746772031772594034565265268231775471083438143288443455908790169231341519805985502022084860268951341370611088076855476860678885699631273553255346613669648979206205959437427291128216061174732055015077819135074311171671533703634967807039072800539288473781611787927476582421275536780906604663534759655225341318620796875254160773485731730891181595141491656802274934883155620066021705964881968027931494199866176885520932743017166150005098879281408530114219396745984026869029375143036496587905779802929087427405902156569241391930508326415566497661217257042188188153268597833823168188956218176888349062851665746986019684236040936575887369107585108808867445339417512666982909970514746071534392588290733652558406880005792900206788263835975510138255203320326779679272382371195471960065321061867761689495399108476943263065107438414167759860833866670342711223871191104776727863024788389275496019961684912605272998266581931240336711327520147124237787017935368013740276211187455833081789330991940985785551926690186716615817116265496712592780527677772586415904494188969875228509380228779662957457123137157327016678113442091655870265574107817795042647502346754886433397052667663661924894155767982729948469055016514802365128866548140725566372289806208600463663504515581661193816216461403715581346727969308940073343897506575027992567063544220270435779958594771969724971676516268606144485201595423019407969990586910280811553091509957566367497380340614186235094730762785004363817545080385224472716519819821774366248423620544268533736714391961547512790734275259272949773404051468642750839328353013532088822644180126425697998985263072307274707420195935811819220995150144434443463182992328792800460688746652810090480495940764238216821991635505686042457126481034592603897838971029210893346578379311811603096831909568303847702822951191036221629464746473479257717007573045348135135266796639814879353095360476039377805673676427411867979180928606578142007852363196965112678388784990145230628915076484176365213328426298942974040705146276174984444724258061890103386703215643062052090553272938660814822229585416595908145997507307858135706503701072970136336938426324167611343075763591531802999289071759656207102682430037694668580785461868784963549576335091997073243054269150382219664231180698768667586186826374753993898065249678853617915803292905683876680312200965154000671391774257264952615431050946206242395809650267259193232718280972348862506728842873991593941572680805200729237230129720639929456534113591386057689034710014471462829497613363680301615260050078628974668341654225318465377245099515968148763393071748912045912927887759430595361466803901433501396346861194501207911724920349138266609807421672270370160339476218550235625418536718803835517281190280091000810777024351588025673452512556241433988575471932115005376876060767620865106336961457638502141085873876108635992084963364627109424203723775486032967817888271806707595550178847983101867217176110128527301004406190938947405098306948073281463724266732162173150078495835778701739676689201365004751114653493549851505717304108910129774430398543513313701193332811394769491499750286761437141999734148735861320591127553283645965647560684802354345570268378451314473015755717997691384466840568834255687452006049109332517699812167326882076162958184276832433650035692479987708933347399102004426406907868958925006522168950833256679936077640483142387229462584886189717566248185371355422060015317666336703092661066428121417559071277113950270097055421204957061069519360119323586485707661641569114295290156620609933003279813031585791961314889946534609016536640288124979821203057523313069867078937028228426820738783556492299250250928042164938675487894421420516719017664015890445260241298722879680031298503064205297701862497680804829479976212563228372210016359032378860280709643481124732172946757337331202238704402252833763739030749007116451849155036033326499846067118955698085357378512176875898551802882645978398965735216216439160772568521235871732631264684335074659719284887884758518242681505650745284692345523950286358917539570351196215752772722007909813024149428031503045896729028065975055757540252695187415546585686454261789395613842815348737236242906466195156322457617001550583972475370871461909469350590280047177572467700630606168106526358260804566554267338278634114506448470226040023191329503901115493477615451018048759435689040467879478854599550667177037396695293439628194578820621120697913263523170570231210214684352720405619092275817312962033034665902078425839334925496108174124464487070388312679886442998313974787366563491617368359585732777919739175856958429122855718072871067497831947066617232852232286244403373906087546954508874392893657885203823474110443278854008084729209702405577208680038803489409098696029902475536062151810785845959411669633133605435197367302995221367839914625836093863081523147383282825437085540595169367262432010457161122773814686572290495606714540702868457243963747163856817074756228124974038264514543423500881392556065850206012477702597192723484006331932031969513361306483907591925085832777114066295369109834659362066881314157087178008679925462925507970117036435758539901195898707073687146071719526891333761875146659512034329553163003428895731687737363948385223044402648043875147330558280820638642865219294178293190356660281443982527518175920789479086799128075317996742403082656260279043006974532161358203954329627434348588919711025899212341826101214274644034652609768334969790261313755195389133250124396138180645288335022054685704869076987753209374434043715344733853360725427876823535787597123052408207940554916918751427270117069971501271039527444847187657789250024250664926279872408161123669210051261564215205626019240012446035135288398038984249786310572588391122992838605556485609690939183772461804516630727393131789701565947500067693965584666801793365799367835409325186660301987842369460765400698161869677381443769814747679514650245503301383149280686561258223828837641796094554742278314631215190773424717884115812773803919603096183787315113097393284048211932780648150071062282520822493797906008590770646134931273974764194554195404582719761557560842152567463582793206234720759837317052814772749857766126020413506197897061573649044174598112792130959273323229415027991798697369781367527158181088499065464470101008244187506251380851131489088910498863690944265230451596515865416814532638774440766643754072439930734389893085275790361173620173462004120882536153397112252511538795970049868810480336732923822461235282200387360681160580471355752328961168983919937126000496320890553031622542457066134100013177408551915113516183299216905863956095708612954145242013446643281543820340888876962827121734049128528562578853250990847084944078633892579075199416809197107174393272874349489767001206225762087382360967262081673024876717825001366686326824678481953101363324369203511121348156061235737564823662816620011938968847254896760962424363992093155262523518744792870826494638339190226770979631614414163054994638170514644411739890989948234196190071797925135115027806198270018746201768911860799385150522097677606900326054245892062903953329911175115978897138706976157427217019236048453921817870673191816795465923336749100520173002556476141742813645688218793385995510761606185522981094031049210159197216136871236286748576089597309089255676993267779673310919593920601779021827974282591976210853239260108900976314142332671528805087830857023947574592695533115978527153706016968693551482595613170866996697590637945219882982947008780740607416923766065682887342066203813139607177376860376509278336118043510102326248332820652644492960015196107713707845244437298216983756246725712781121601332035736138847829969973206323046520141679832479861537269747047347952342641011081167232560958243953292905169642785472022682956044743221081197562180215662689292769378954939362620681154218715019550533895874535641999090245575452287036370429315525759380691364291087826369210058555993165353707953051418871949543069730599828990915577363650831838846500873036503205296363761258068933766661195989618263450028570908753017643372125200585317953438192789629322098373751154536981196735348553656600895831723400500862347442519099210008794680394255782884661134296570084778148961137030508187429758301089163819178251932965231776888678727358954371755087675146786127512827066614431207186717479000141630372659361091123366787135016767999848610677094286183148212790516368438472750579059632677446049885681335071789135207742471073662012522146237936861270100262258660301165426848273809521342028198945598826033231672097202436164584712211915989703493849191851437218812656213183390814566301297305284550190732918879401459991401299652624343068386367021622638353990881339704799972598151598159469557876877815536361699854772633911478103707310608111022160538638552392973824698408681882536076908186447255459558206710196302672050116793869433463610952286330840338124826173003522049972281639470875151144950384830712419588020677211169084397429948619703859461448608529196402372122830404317217437054895471165616994350053781096222243725602961015006992420817977151144392710564364387617775916302193277630463365831773144314713160606020587286151262549832114451644200937764463538277067423263879366728023335131773912385445946344263997082117458463855500339443858862206488973136969460907790246080779458925836520860326745385764030309677810331676241455716640073599012899760142121669533112170529275696187251134822080908716622332100040960891272323572155197299401016324687162434282505854475783493939622907548960830985303630854977846213261917251327736871801143848300186840942617188734697389372937270915809877038850000052822018070245570955741552948207920181622631963211512660661030006857050976432573966451319845534165276850495151159789296311236449373066485597979327954319026958589013937953440578797605092542228618177085662165852450145396607943075202719643490012384089221622747916823881589901275270666395335363841462172838874629012997604464739120540845173409011622197014895882056048889829964457733801942305631226447962887238342803268300951367415783090273143568047082262506188957299326296462463457740957021171546991227955210205146798877262058430288949131008721904334855088525280738593495731832866780002833602968724088983318134721557969640411815056637278012734006561399252128035587517534303624320252476263963954154666819855991216647459757111448340694772576357641254118263479976244616910987396805771646414566524726559762433085601682591116832175585774794577236303061508459167599516658292880658320884795777856356119825284988884534049859320949430725329193348534509439790766076026655266843029120610607315127324733052023540613278802408938856011628363812797359905156139951249967783740516329692911302127610738651118172150202711746292891732093267027619193062601882812463949597876728834651179155942463457874161949092162412235200773264488357452298409953846004103064944073768479932969089216384175517954537159629332106891512848046339088165143457664320144710224871871794472505462930477721972598111206247493643823671667987905077890323585896058580933582244019086955991988895869987138268021864985139468237079770190268704793299446424424533254263704290059364265034940976761299788679710117275088921985308603228477214044141724984784288503005169236077618899082356286116318117284233146803513332147018978529943993643780822322222185802889689794997464395849112496040872177819256779601110818840973337785225744633241386384221110174188288800007437947719237484928804310126119348686838301170456367311007721598639049045239822145564088621564633847997411704390065092118832154718745853044119962635507337300763452262195129323759202568162561789070524800023097098848395881157783181638959436780338675553872120313366086766967998256122785860321026195481959094836720611694208446250039044379752041729163142460757739886643508179093269771615338398132389269318569754825040687073862966285772393521178016494205933875801727154898568427372196863624094094354668987186647295746517944656622412331770058465716206432552388436435523415695245753141753031614480487026910188782796456306707490506865230495388522194271587847468968762551371270880135407979591270039913982548108338628318354190050618501357971307952570387975519280848048820546760631289067139796611842049538003570568033235490064983382693883847313710035618162844602838730722046385076338887059639181329162137516477863384673569714350339271545300737171935707480438991322597007775078692661504098646462270924182003903346628718606227487757665277411848627810395273584460928524432518201126169915587655050946882466608663253019423095407577939898750491044455314913366250467764967444072331928686543285803891746877493935631335304773028299978966618858748366971900941193800442182733356107329621655481242773439465048409238072698546196223418896567352996227852575593808634336947456366627271019360313877836692292629627879595508098252802654487332809018636347072437176701740953153965681824706010427893044461475888036090399242807619821715345999602537220782159632890739116589736131161459129139316054558842628156964950318249730810762002960294041926346546289691838041372596523136660392910382090581319851323615618859201297406685554432448417157585792692812729311047623370077950341092358301239876635506827716712318184844827222792780452433073214334064680916367448765910222693744431353455473516759203773563068942543512909216442361677042008655078044975854596468255698479564925654775297532084291841063526382343996539869803292216730926673643176442334761388730851510266962385072881240096515653863782393570381206694686385300974549431247987782135146250795259352753051189940525668944096111832038888168334019133601353162470638864370291079560136517122889762324096436708409932751393511106329079765212870324140856289879697488193690686811043274305324388561367662055943256269082212908021304456774946617898487775230661921791083224437640295634223482516520683084585700729913120113607099188587484182205718166827080403486436992296322790301470845951742089285958960230336018648823884612333043911930050366837761925019156201676917051783846736547198428639421867563578082189611318815524547984217897268710981783086596536815531015992491415386440806708481967388822572771092540727353828534154885146449950266135070906199165688277558214866412565143955854893511087907613801551679277571431717562578553130940226925791298806806049385788395026943526151749744985318789467432883535453996452094539683286117592039230473646578876629778853131216513137861526638996040208533604178936863468725473540171963787076616738927202997975369638979959610514323285563806215039278817106834406118499528436476420598387525238599751461911165350427675888293087463191042455220371405506641198780392298632410970637677908462209910229375252042312738193880388633151562228401246822951002296822068744605244722860520682690159141636143929251772760351500537908476177864425017070873319041211886436208439843934185614015641354386411904481639285258164391227449500602319919032934093615402250293020195219447369370427795455957857743413093864621026066947611374157258403206940960048205088087940250777939984605405212425984373165695929928003402992419005985039126160895703977431345853530815765430325498541818883515351115804574404139411055040971320982499742305486662362002664201292627632068422219534811718831775457487148896717111223118868572149842872196402358242607776615281860111165266182071234734885017760214258007802418902833359525678036818299055949759007060103783380460495912775918749937699325115181076968309526691803290171182029147972691376437553103717443923047984609847512052741816616657881271851360586385891117671648826403745694985613215444961800499541553280467624822026295144514502311780699855997363799501775485639963320063787595953484742848833256510120176591337325715914099325436055181804087715031214499089921136186849641379513421656209715353137915890663303915500694732039072359566539737048920639939351216221568216568700706756125740191178205105995164773010864730141402676352603033329384181096789448693094923312876301820227020419246130376952108663219952130806906256794340681119940369115631629578115633533024265248081232877652882506367268486273618847148352464165007802829455697094617173905699945066009007302128471303457151269919477823647715481342136195982151864834277621228376562176190523538591198543637465689422097100304273903494291842832723932234187252124560916050769561337746421832725462758343283816517565882804767595590796942679376574692831470567798334207808672678998354641211144539443616552590137202937245531133664491278859511849515287541140622546164555649338375638733014675779754154278794305587513615522766283953399601281014214188777795758688494824297493340965389866278606259221361759978117912527869443033576921471229747374588094053209208467686990931532814342161151148487662774000803566680847327734269879057639792187926629635952937980219389441183542878610839521432815944461904533804330736069254559483693143140605160836182931510148321014779173443302694716470281250775388658189892675375254205138396340083048351812028597720893801330354095210571758917684885359550594166117022364924020102170535167052549911872718522758919843974672654487509883753428057567542802011205050367083862617864619888310697827942475014919434326961592006764002680477978369134316081952417489169046833065312528434789764823943446848988748731974384733400974273791643393600864759382247445237923636921351182500219319776744607332155512448993303860537561480545506912189024075984206636003368862775115842680038444016830054771841875028660887053280626702091425898665124115316137652565231040862408509561142784379761212372479689639664714383700098704406256366230241544923023428488519508198045013712386624032628311176439501759130993234604277007893562008041405898221654242527434713223487476507852360455493285712776260208308843375911245997919412740285141196853192916935222784958083502311094251606500480376072028270944130735476468268611434338199921357485301167138338689964480199539277206970931543421764317112075487553662906799042452550903922886491041980418739466211260405369222747868373742840106055726323978821895101062353914963368719572006779739982321916125557014136235172569364254792813513473493039329291912581297206250978411504777772840805133778055591595939693480351125303773126224350991801864141893635064223919808331591808803810870132131272679361110549663124214395188514232698652136308265812476650225808043513831615351105107947861700254123329988448258442441326511084966400181438210848576435537623481867278265669129444691353224934193448485918722256217435710207753926284038023577861005279494499844517624302724059730798253199764587648268621958541383422624778312996847080517691454325460151105184670306432732378758819850830683139459303598331556171448981643962012770825173478809082133872122465486649349884886260669777222086040810637726035747246291209890884154121954419033572577805657248637905604717330367188538828575599064100358634275846162637811456619876950525202148053293280308333679287996180980469490345471162005165050751991746092112242694756840974275759541997070351791058831588702871398305798937612047533189343343820400776051993639516723905581345882289868229125451556476951799882749388952118553596896630700288112269219271061824663065271100154901004701807108657695545118322525076158105031023588108601438624032675661397718575388875376718256762940911350415220320057819282315324466581013544061402415536151639461070756335848755238875079597511196929902871544337510260118155410277843404646724665775398124468975282978683767171899137314117232771030040474952480283077612547276144614956898399347800289716723320848214417520596275650632825898548635468511039417051965076801380206911041819591917901212175230073409089026991144015061229635555246478842261230232026828757252146249581746447146193390548476142993746184826085057354930545530687330041191918910775047594877964511084688112509930656335903087944170935982293231033841433876966283939911385589848138315718021458804288516388206886463312485238889788629341090816651699526190646772847928211546393102776942078291308424404972568242802989683459299759839157001928358422172984259805182881001629778235702232084504166695637696289181138952802794238936713171276612323216275563891447243113401789553382887514352347928910876418952859096275221612138537563161206408488073850688965266772125380733288166171255791400837291351107806900666337681282869129926131146074371805711056072750520142147995599676948526424574188710385719449021672991849398446498501092159676513295963038903114697281213607767538388143728973931293682535043184074736298153090914392363385496379362876829779451230675718480531775463808250100370108896771233669365562538641203095457749823888710339191536701898294281633836176388701419618571384494421675449757926127704554702981864213344541290632135809193371329493648286949164592331689325972105128495006256575631848228952455575479219655860193299780035991897438643212474451030235342442044012819077218459949240211070665997207884971064950321693459811517690510956053365402426163576948226510934755262715770909803495364319361304659180713964937297613568877094074476733087986350436092277979494914693263878078470444444249959341478825847521910081731217282086636166776841232268020587675963180079481209158915578956850973506797895588220510901699894086566913641299438585859401691723481565666100336247588927177833003481765761343074244917870231918373470695819652992641581672887076120974669293571592235934953547679389932753568001895857947581769403165937852639444792955510635266326450764365132850478970217134610237952033490520743379889809447819284668570292679085458007690100365452580427549027790430560961851597794944807793899004803900738992282469087540458234096962796527653149747024864670026361438017102930690768172209723838954917468988665739763798462188340601033774589529869742372698556226548859801220909589103055256233089809503082616101226998673957934247412771430700452204127394680091178855808669141915787347028988260320741140931428759250181201795296250918677938990293030917781916864136081258421613987625029914063389910276599767591797182033543117992292882314637684070734385270671965648658532826358915781863118339781167437938723134636928710612241677151267786264465326088251266287003342795239441333218280746420780742619846737838118231111696376801050058271783772901596137351350364048981530032717356809399014265390599279824684840137678679506915637078590760729112547241536965479879852629849058056118827011606869683172180187608190430227373762623658908537718598075882076601498301454473431462143647047317775872278600453868674261974033349668271267649090379468754848366266640626056855119497937065077443576286473030684273254545538845614720186250667205195249032924068391921988631009690843772318769041756103806028445025598805868467371138669160626143573343640596297994438554339329113243165942547490788438035109161595310509075580818132211318746100056360167976233421556706223933136475158460517180573236168932892215225618906375761858021387937936153690530721997388445712788568943051826266675714745681563320709515197002241686518454285289130907729941456256684236663858493039511659771643020853349358362704530504058461027721548506443487818046157326721069508345872986666853609356050574226722432362868822330571395434597025311324174420200780308229522022035812487840535707354302014331854141289341880020236050969063246618192266686717524871507303188898729135653805369477618172187190292528094237308993743561690447745548071630401407522583545485765023893834585230815322633525402569348476958995162269047519191128833928586044575071713351172193546890383339863543215218508408454315532419220448744195586088719684671694183309169731740775064858387616515235052061421647921415224744383348033693911360014255491243767351866044052163446474816488936262893520154387075467442799228762976639560636087683999980467466138856826492142627485005306809956975682797095419285218090507643920588306814953523393797505871455584402095424754070704471061954218778492304095658372292034955652428687565859880504411406667949538005918173170602162962976513827043975129818820638901049308297464864403376671708341215552868709529789582715969456653114479582946610615953029996485024422670317120104522546845440464938910611681089923529333123688335141848220861649816855236439922797444775727998798886314236990894811934685941751438297186575871196039510486073609549337368385774636047252550060879996697618420899018129005844518078949982213095434459921030330658478888767767826356102451938658015251179390546660362969404401704252829102761476700881445558325806782739145957765358597550542246453264838050362852499793261558241118740819718155485630695446607468245902100236823222378661537442156065079553557982022679378322283531847140225829005667317091065287649724109330277802607355314690889643577023495160483539337592423208503305880196283756175895697865139804002817399112580594394251774369251661549944517295505635140204178389866950219653315714222570607654711864008839316417053286187658588750275206740379070167700456159731779724978900283530919986021806273450781080283283312634391451959093172679073387311847241696025254690989887883417506144189395699816619356433597116879220315066971055294283192206515676970249416076226950645535274876680786860095051105608570225360876423380058396821342800788152434158138961376986782713818068843094271968720601155073452541399699513120194403722940086650807276302740535281443078262037577407787054781688217398891144687746798916403353363672805649637297052020872933594807393149298852695226093255072494849639801923320552790558563428827817002014975002073301745065784264858307546984847425945552695353200264162130213839317068334794606036720701257210364115389700603792965322324139219877023177904383595482800961198537965375899941437886543868600021595664532495467378131881691077372083961548258106386522221178538812884828645623486824649423062297087789965550932457244193181729205330043433901092437887559241622887201751669994170354921352987141445509146959893594015214296081784801490458388600994714656788018981442094382059571727500063372896022376674024765175962355201191124519571652741427279333332171968456241757516322824845108168748515261941926431535481228701613103221423367073104399641461805417157557958309720082256199702899134241848389163181897360330294666377390362420176911330115213265728328606480711273446362844398078384827104187550859034910985740420943464464050128486794408950166490508518646754538039504320933147501964576852338911236437312313133102976675030324222810117599717822583935694955772017284967456203507751801012016255681373193257333145906020881123349481490081945343177225975051395172771589858443938534338938619278187011020105115870326247376917673217484346912744408809144218748045567927334067773881983903990914422802800938646457166666781233458121885689860672574141182014777595160774087695594297032277467980752052525614156142754194435588826631916659490623888442023224926672165689357606441178506749992895685775753154236204792610194118034456035480811214241372839581160287809749762772343017243641873322947793580555703522680599071383678755761072672091663904286746843533395253517904397914455535197919436610230751072465572864377894797138602191397523689876387492829788645923754679791011536230434496792827402588940009005937302086427390310500353725424640927626632893441571482220568408470181628714989873476981107853853987521641231229385812601225634147292371506409220693251091967227478921437072366930694336768527862885921659792476876833138731262513050259149476526139710921534628336063626943593656592866405166707812876496367122574824235848525904509846976109400882891886810164432962720095269792831854013555150893132464987892228384015082375504105162372818628075642384467463813375528909368342406918460106202768935984631962310365671023687509502983119687374946884524305793872256734496725422557189466007514242721255701209345594671308571658093253157452055363432321684659568941875675026675942804286670594593715511804381343006621225511016622761370874804491624742032554694854614745016247311039466720908416526087429466806118010421545712195001025705474523847989994624376335799640678110653338806229702185733152843524554047001331177644339966195313925571521884847384044996083730145871847397802435145292643302319647756299045138251287821011406099459430123004648215330966463928575749576223143130450888068354659344038830013411125263064748905026750514208802403039394854336304063808285894524172856086800949266893642324772853892683189194229475243507626523211725388504464538652859876080690830577133947177835135392841142472092809721606519884141505603142755096794748692651626055786564542102695902255263008092759235874443704001836411892655940244831317019801988605535227835094143304302641174957496976794049633445441575312295324005763933880223530704272924959036297406564614293133471199705625827178831743556047578904171220194792946280735338888139588894356604540519148697387791999312711705468693979752201556278349932426889518531587780841740559232582632541310175225859548745239473491247924127685249212437569854236381013988417359132491897336107406929358637346120494746103084701380778650619437676606488691650127753474138455666762966182488285655318785374867578488442498517843992898397176459654663321314862789563900026100585576200315079391626814918233855050251640898358326292864562849178412472162719762052813243161702506001610407510090355487067358416324207176573131228651657037258483898243283022613788384318940779936543946664463393878524048350160296435226891193893024526094593282897751316157643212567383146183435399391672363515252680661284070016900660254075789442055537430187509895883844891304900939835131302175058466623821144474135945000177032773593313012403292465513286028941231124368418143407927842604063569160017627359876626350060684608259465115994723237759315357361643675229362496718164432525899994812788582071661894369817458611292867711645905991583394340225060362361655368183153798771018531020373689736936218941660401666811465535851489071866407903715116362956728442785388601419876967921097872317832945208748815011785921089130818935054490799782868814000957796661379444844804205221892917993638859577222032186336598770035144841148946461964268274208665853171142263952233645826627519665961662484452708730197126624823216426509556960996173767386826769130728481837408015751949447038048590957036545786749915632245569896476546587627676313708423966584466831843477968783039469686682501148852679037912156154060844197279450620835635284256611103216869174164367936457812159928969851065032026575729153637548847369105047261618825610674300217452614940851977346230461590989387149124313601696004795166610948375517072398650265022666904616543162412816271441271416925597940638546462515273059202877952556492126243658368847786350514002017077968524624393170946432968192565193835083234322540109060417931985792319276538780492697675595932292889793171771086537238945644013804744285810266365307574867487348706913337617569909359997629956906025386626403869818872174686903651314174269011454213475680676321402802120934167586742982189470735757725127142878333832858003193179675223233588771032332012197243076470423040010145216631823044008657165595279759753376479928056248578249665895932977720718098935697044371835031002242520423625697759721767975207930809197488839351077984694253527668282406543278636176497936602635810301041160237552985310054066030369643944362981986461004407684550090817993133630498053276830240350193634730914044349989940348323326479853727468565430718148417538140549849336504496487213197404871909717534692134049758597329501914517193526190632098704953321193431284975700835093407813254296648306866586294865437245916567987401877334169389521835575500274277300598310931246356451581278132180013179463464572435252130650376847106781400340307042077635068851450663504833310993389819762550315727175232285841623730361045044778882000727238347651401182275258293021443840941350990384775055853787480978674529824193483087254700928879196541104695777386680098866294626712195997613415624857568659214807143277518034113415935435868169800658117967660386325950481439150808285412248939550691535461332130796117462235712471389977479096606682764215709539409343506670066441397269016865974745196613156143389634131191782288612744687406910965124971784860121126314327672805239045856517139067083479499524960522747598375388004928622338699211143175822655180500941382148235346537004092858446318396669571090794524190415853351161760471306055035436034215950122559772665865562665938499503046570179097651443155286300445371398523817166905651458212840117883298536010918497612527518601481791157567849765484589873995576667277732303168124157065995608290086808566105457980225058749950170118995380207952715337138760161422510139815752846723625292689775950761154651013509514206638443220310712779635553133186554687897695157338458034487159025361282605135645222384069481738622311115287187609649013823941016428254658468598292611738496604097962674451918134122006537010545110297499965204101905452522730469683200180371926076944338769172092652513810189296364991602430402633423222592931472815974405427496359204232117011142478924785172026758252854497500711539591827483979813638178599988248813418048594497840108732566208073441565262034026525846606472637907137454318892769427503294435214102939333808662571644856222408305072453826860443956963398955133260419878251703307409688457396827888866664298800838686063192590009812595182883638751024734948935920171270159086753291187362501221560536611381043281266418176085547469790890429620036545247385153311798608700469117441615371725831423848259826259445326900250815605433838857281248428619154414095761746802520318234608596199635275035549876464289772955500373872773186843816837910162803455634031786111610418603642112416566741860326192595746812532239691849288380226592141711343587352330847991111172539544338848858436901927217477208669644680335540762102511709414876650127703819616405359432142087323717698489879120625005241361474211911766954484278105970610358736920695446117919112560625210896527703654942743770477198579007003848933388449867419955337214622253578656059778465009261157709626877268076028445312002702667810921370142167602074991678615016474074168902303082218853990961797291340544200769003185001860014783448472530941729528208511526402007281138861952108491944760676304067912416826326858325510800382765651627816480267092755721603367505649110838032094275124705012567648964975418050197509360769407295626252394975635779945739873903966227231275491978258586301448951796936576747611273706340244503546018583972033707334606536420409101497687563336902119628296070234584843423448003476709074243382643961792575719477261141975141923428013203084491471543060917417474316380190164553778636516206249666127357461706863592046681405439608451043374198861887447802651120247862609610522946166728922705908131556508339539012186873919879930240064508758416892045033802892736063620443708280140087026481131509814627839132242373195339707071653150789757643115527839239471080963602057540959848922392336003249374996829220039300580158252039023076802454117292143720742855386519743998304681548659139415650803026293663452242146783690905888460576909352048418027596511558315858783285052155395673865598520748079215456770975571503996528552128557564816834941999510437283272547092189576645471018069168714428999092848117950624109138562527868824302460285577362124136876737507592935696249424545403244028703750351010308470567835088458535561522147502869300922568827984205417013122416309236915175290412022689337625797801634956359628830145615024121149905254179189513111099834693588411316087555284383504585763892904867676078799144822482256805524100473258068464049368818354523994639696642240413263703488531360292452552741124295398871168955360144014614992626664786245899603543677747442707705169245363536550398518959028830726800516021752104501481349219041482214524961492613501354890005574978291928959622192255154393132198523869626405890346804224480633778606184665560104926770284705350755516492969183562079361902438250154083341363174796669583588941098953345763565555693762590114465534675960011077450611323467030444576080101190799474909055220496223694626831028723421869332871488184419885224826567940067654993664411007786960441893092628235886847419962028103142490097328725946873231617813043539179858489681315213231999164843519284345045793127871520437721490191678651492313057046741153439906015504648164383109787469931777493513624746404569108347719355836095426890893928189944663215951915065415552357404209027149781697051021722820806519347733525545933555932626268861294650705210485519172021299790220741958253701183678300597665415826737954020728877529865627892772666647047413722139355151608743831247325948406703433662674406613214690559440224579427902600050575638559153849042456715302155522295929159110347593335744947676617114137768604174506796341244975125448856806876796151045739342091125022602478697288369238427916966067959698455461779427601477633468030839129437914326219262311928786573734207861056345286604283864232456710828534096323961511877022202327977922489913087507258212144235250903334498209159762442154178100388018513369272759091772878016661272288844571326063492271317284712256450277099508279012428922205990745507509956859564006208905493403201480712143256545763121662950594073959212267257965573229323935188644388820392000827080999098746149374022418903894875638313786896688078120571357058540428523236264929643132971596690505163234449634135160861251462852734045588559318982357960196115693907021675970047872335387742044253861530804780562113249250714931332820271286064595707851723988276147048503104720759281607518292381962283728865284414504693571639574692851648569456589053691356547156073703614100819751483961666370051986919647901900665991821626605347373400469656062479580333123895232370658415178013520281834507323539198672106128407155529133302794104624778704959821706224725954877864832867977740178584103956050097518931799294332030661054912645715644530625010805408845684361426055333030338498975104193483679795000397499477406563720946634788308930319272960660542447416075332542299931592503207433031996656125467492855698394559219652355539653163874637572773079489319043731082495004529720377785369408742606821510228841929720223046828122928456769624958335626760390434877970476857500512390113226884798188667140063767626701052225857423967004037427187152297852780848028935522460132083671096529756208575027171114443615741792401107716061685162099202743263709483257934913931448368204663192821644536887154378995601297762233557912722509105426529454704098846394662882817080892003928979272588989713811482453929587383484725473528607497263658636206581657172658003360636481566633708018422890670248901578632625501155425658800633109969507181116658523205280808161237639461710293283648624447685267994119424417506766075897763577710151975870573072864557872048723149380033370313881981605615128576874006548554715193648530261457856361762568374944146577321849421651652941561327072239703380609560500551947513797745785088519867527217863296050202062039975947682587886190637012818639699861597279847861722246282217847116383655765815738608028607883112936628341343540837137864065680660458837003205917833226437859879974001743867630986603026142316394481214917369632617437344155898697211328526823548085109935795989407217208306168371387629690599874636673835719099627730078494540400070394049112688651244973465645670582526702954275193404373850630627620812581948431721162276413722898699914238143253874020496142515254116333086007672329014978788790304907523411636606982139070892874629387700754110099398224739803552076855158028896178928594071191591525414309798320158316987308471487979333578796264386031593724039599048951313117433962276414650036348809078411940028271473187346644178383092401953134113397667491178436805380960679370565822195974460259908646511509335567705302033115551740172696246584094561436016703109117488316199929484848871985947698849433501007166516896667692176923485223880385381269566800807053995492222688556986168709066233917496138191373921396807808069167927525018447943482078451969756416789356019919935117772971165471773228042191328874264088612019679942786600618490231480541584743756921593293805644375626969987261633510470471475370212634960311592649916991187359375138863358298320056232906865328784020352196969620844548765253669145470080353606400960421085294565802282075086831956932741943481474144625142483669653010969169543022798045381520036827470696340173299273782879747306912467060656117745806842522856237088624163191539279507944807321177824274716798043166920906108462764460008045270703647406723625493682075034494784473094842289700111621954145470048957428391581361154408733680856260668572030422257603299585420126927153594501152324415826893933976763248578371937938750777053229242317086744337200721421641644184522151435953740827823320416488748478690700679882563918754318690088154034996962449677400262448435815956412963093160475632467960559103543916041123689123655191781832668412111266528647032287951835150495556744901029344092848107468634094702847300534720240474439094075095119637959394415658575768485926337086346450203609269087491461342086786823207329559754815987781310489271754577724266126062781851447670995700514818750482732838285117190464722901135468784666849698232370618999613500761985617534795295546701570356038771321669773378274456512629746520711494336573397450593462927572683276810247554153062344737401189556854165135648059774955374294948566537261441825360216259706599687022805068759438398681653223626927619880197039411487568772023994321904999226027494930990781424921771671961550563575841209758971521690942506533521016323516222079326507789470284357040563989085604371282937244717408999691624698266676857080245583444885982092223558590718363743555678150064219362896489634394806864638280921828502300381447273021207907228219311190650781617627324210320608331524815391594273850983106163504467459913320618119467320149265508577589948690345515041194797052010319779060721931084321664206801998298542750851902272482913363181480557661067672149936582009236415768035763184916930463945453272999709610664476278425160584162949220428148296850969723386953303575868269209202134288192941227783455679398321313984627982889742133880818641723846730442045474198989950528255371906297421653999717724942822887712002661991995847035722859720508450203542209478380314738574019435045226891055512130122206838071989121054897228874366875316355118044272835964874872909222879004841243974084586261903558136518958773275197378828538420145363581774964666997343457125877206459388906291639775178989430209692143321893812606409918133583404630399230151094591910162442563214900869691586032615736334137421090551001703901288539024568250546580197891434529382235292488833864369205275222075553908680474804356005543567694762267430318283819527067753860440122489981934057944097852863831904637266010237542515112476261538308571302526671928238695885438751227427038885716246110796578424727787395777323851438095801386140570157565870946399468626545232151165001072165139152927948633773458496397550075577627631867013977928365144530867888417261054531281122847042521999629949445990830536095720733538363001651568892250495611271814740520037741073980391813743419104935415797206266251413749163757138540515519900954037958340840069945802891006394260353693877924327163363573356647738233250331410539154206852009964942470336727578237458119668122935163765999611024658209302710558457907112572330067918718592937499893014238925465862049662277904433850257890361836483986682101452843704844110374641859566659221202676157666067006798166767485705996760533255571989249646000170028191590827613692470209177883909247842202132741023445868132592351371809632564680918341833499677991329452897088665025091822802993407728408781816195259290750002793467125973254614030650392083692703932158504233361251933461186042808847209711995347266902491372358544793164462542406170636628077362595689063548643487413593935883707862053183391608741314638259799944945064931734940222623817685206594437540058196636256843527630963838885893677863298235484013151612223134410108218170228452996015324911830539548552487851649070026734886874629003194277537803850654803074975665885034868888772709801579160953361612633962986698258784326014193621812707664582535993682141675721058923299502490368857608345449038323688921649707753180476860465687511767765368032926690692761297690068320690500408459645849889048722436919564933373654806092438355930556190515426949840618274226654814400893110099986834247670700292717000701357571965025870407429118831394825045281988634805541096480170603608440745162185433776071951734484672118730712280117881008538002490600041934996844671301493709602914151449671439082483797077249792322906920963706189887105487675731742095208650196513544253562503482861526584520415228522573502069054205102373784571915830835744961495604051557463240275762607198512890677140355444214478229686284902643410429834598934407137323784870275053769884141969006140349666946776312390966194536287119622870692606968986579299377881111238880127187800096824800464667575532277043566984517070271208764748461626767151641273135077030174301060613032389897311053232369332758811019654977628606576366364938602388508021516126715158436036369003254731903019179474222575026695542153996142312935738840206473504672575587102608994223807944504340068974235189905748398214290290161903534876079685019583449735746402749413373949328171279656308766343478887189697751484739478070340435392703679972513320598227019788020559906580074442797187223554952304159339381637715747652064281859624044925703300984693865245944445001124566898484151252081859496127326743154655186169635616559886546330703820395453934152656730172247469531659551348766968010335068440342690620834472531761642025169650530119898567500013087200501254025852162968530999627001196193388685483064273456265749170984988240032974362858285427989093642413073500894156386299592661093177275424478505526364301035610155353419378973193235232487515024794663021100725661844645297733548121211578289903728995395364185075482846432422712495801058957713637067861636709905357438204994727045044382325604641710064447922524983252102834488640474218520621990831568810521459512686134891847534655054024468217551867135429209691701553134139019971521594845686350168738839586368240988342966152649059153789774575395121080629475816841674442733213517966809760565005617360679596440381245544459870445341378190686648183620682798361275240492021250061878669439237223626601503138967909722417055940865696194617592840081917979354998602094995970272060702646028843654561903670354017477858072074634106222597750569401620453736535792791332066208980746094668562079709794358778111557789373577204431875100039637689077975315838722312311968834699077303730406261821877230220664519213289005832318374670390395385964613151289941170679976718397137740043896061475225199554249210169411294793584333938565227107417603259637655289204543184693330757388201442298319521096960560735765836332662005566721598499437122613381518862709238389490773265406517588385508307912736789437377488591659175939424570538633866064366133677463775449315729884258787420391218195351017745097948488217272899236674514666295979688973409521504567342028712820756766069778266734771468060695038645720613802474303203161215270355975899096107117495369109344397719758666634860687867198670032830387803780947605787759669993109794352236159134324956501807823608359296201439059776132717670697367936297631916039846891704519381855696931163827915219949457793010701722195853959457620048431300845177157944915167906295967852328407798646483978012166907828167992824802000568290079189760120371272327911725858912812973209856535519191533507742864480807932835584812214942618382060147277707054007884824904792601873553037485002214166529164995587111772024289524837229872939189881221650762325685862510106676032163512059260370890349937833378239922067770726563494698341772085313153985603370441506017783509157887080016292262616370048542600226855788660095974451046932329378569015488059019343866308568233620639841186867485530923094753783650924277571053834302805835255338019758047375197361672515987430984395514840854079278427913615675792796733805585712652471272951364348366387275558529382596411207975673454539568093079005679441904148851562593980358230612737837346589902998978275412938797299149874687583635156621076651839551074782794520094463687824057237802999514713935015832016907780064181872450288647978860568901299771992229368938932108739765026406476711276849940233214392748844090721218155003955833834779766598511947931287690564578458123697368062361947405951644413625690095031497673239259977298831166704778002583464960903059199459305087101005550673542745012624507992132040178942451856698276454808940958497196858516408000310796042953907867147137159752676437135686929323557597744634971716226316770365035457549758764442291716738553699950208769344259232681135266159694717100557663450432170693384901243467339444148772770935840200491976468477490559908498876415497107407510770004819720350363372683835052248349530354224306930050317839734459705237034958726259681744119189054105259630178149323078786633898972776887405689847907458878086219966517074785538946900702657194279934300593059761946699797097240662509488173710651740586797092568810675888439078565438214791128335978972275688929103027228581731709984700536680454671698382004375357330872333981714185606904299012636656917662897949430268109621967229993233850390541211890380354930143798503689689415973854809466722453154708749575464712783484407821979281448231857697807226080055934367306001306118014254900483248351143360859917596727257966567431216552634238742690395619451237914006804015403642662424855822617162292678500849132918139198230837324416812523396603738450567398966740971854689637046741331561270648140863879785903814654987887874833376637363125096882376384547608330202199645493214666439090925666713397887595459522667754465192663361721477108419743090940682718877749339044617702203713455636584594087162201804308325210802566249641062795572288532177300430536381370647564244994887646729866481123127132387511739458363837659455683550419536053175398487010211563866352836791039679285194149025563722030559517867176947639942560763121336164169137460939084327570251922450811781036804131951030565991771052512514022410771468893789255420689618379521798954926449866770553785913651033807991692436850408620142919662533290911495420010890616537602899546557830127367062666139022684360207047260613703808412701347781257600227896656557971695258212525506073394033453677886285170636268994698008401093641415717901091410538066295524951995663436848539977674294477694766617276809297830353337439803169881380740049332622004448478175643638889726515800079586028286668455867226416447083275526485027884601488235543616624632229542425621796645985636792457328299092103571954737897405093012297411114400735008867910821138944558434296765655689222993624739501689991595343319580970711402460515454483179000398628706534543405542283409139288222327080844505061571730770479514983581834342853951830534536534847902645405638094688894206507976785220231217613436908507807211759551856075123407191717362828887149022148732691006299378686418450755427291751017143229511862705578029598689981525906038426581415186874524858531087127413496054554857358705822983104283448735522550148331181805715863523381339478644027667480134741192967915415899847643339817102669669827023206157084303128178702421390619298426043910994769510851712144753098746421244523559133477905865518911260169325892142510420246915738658694144073803249620684430635254132098576752368768074512827324861970538362601359877387294195597340182471881823588939992976979491092964847359538176984184248397472055307847881974102872476314015920164463096059174558035418381424874863254279537796888697843275728401594449863850719861176666604572120599398173170232378445123977328650666516151793845731598522224406269375111582611838350811487913988444263401116508543460399416509599032034329521821191274540376460460222248131893528572629086297123507318891089743918683237096568396421612348974552320200352320646405588456138455774375384873658536832335428160699543791742442491921249397671075856357279499809945659504435551602751815308403368648198878852822780831758035573032180635630831613944632859160765520245469377381564331353536736383272943382453005328023014327829922861527125095300545172384365493925913162528705180936450666161388650380272693990597316199352421065173520589725957189818623351753664647630100491047220518456928654184005759690784000228902805975337803980622685770027981676457925149905489945524781520181407474920256143765180495692579625586016105062333696699226695172783270887248558086184535530682767414577855928621470156445322794405953572348472593928174498198436078269417138899310578324664593791315668825037923152803622729805881580901479828617418924811921324297336494968706061312906134155258998858401245836541959620259413432295704032376266487017456218815265224980126298442040086689411308768238821098696480207935917771065264826913314425984103629046366889476306951316438386802604129869456018161268898096196066784050050277034425629643121762469779165799578747374604374323054640083627458333595429791827174605002681855038213316875270736044233090101972471973844559121002674133728596766369192576674277083197640621389998825930924750367182495097757262941827256085253818888249301014362676875690760703186970835453359248450727641737234602924005419842717430156768660306251491165242290553929791527496392206499584173932657013717034255221478235818184717247450727246578001716090678613510104494173034083100236304269808509300914793692258648052215336750240928602623259091660748544691188264766404233549041995639855110882974076876785008648093025985785324749831605734918128021795085340845882829951363390939096611352979514212524475670705143102157222434637779974568554273051322738634176805615204920341379752906023385839741703917738276812047763823468172731156207488614909524174651815802260952510441175178756615581650815428481440013324983334950774186905214085526051107281448585948798012477967758991310867863683277693451720302851121466116485322944495136779786216554180003589010340694222947064949193387856042435599253276024642834276835762111248825793778961857123004836193165994638802624782258074056080077497170556055599192473412899313705751044964551035558192714277743153222884434545272274906275571806075860871572064200061514204421924944539008718067431134432899677872869341214610805713888788136809833825594574921830115308505618119805653621215756082060933107948819913084669439438901566636615608231716656452111240793978384220232977433118286396203425931563671091027345097069182425318466898757360315811111150716191526197185552021895859969469156783650460899005743992419239885907609770988757680260507641778863900123301726148872486633372800984250210805522431671831262714401238582802999445249075336100018169896709375875163730543862156623485008134894764503779235080975731660049122611110162514243186774794683780159409480014539263765912476102793943272664259539379262587459357645650401107710623353299411929761654089541453388596114139539806159377425669726397104207963452587179381061578332605446248325369538545603426530588588762867492420887704579044238287819081167676542363813980763480668825641970607559836591611652540419423916875578098294591506535346927661804863584268429577828626321264257502668660672730374639790094944294477338911779357501411424705596956837318740330031397596224729403578793739538255064875719706636144648595208187069140638411919948506271945897466820304653793802283818999348339594227306752646273249926551332484412639567316578008301099363407911949681156138695969452098845746817821939528277672981334804935593190741147507045807955781448428596086446549692095319063916593060630160593203888593155952569228232092250732466105308643964394695502582819269319394832019887671741684231113091235939532458987594279794344836358918516718377585876463636553073180290199754031118096764475454443707540186496650147208656380770311957406204195496845552980326071362543850039658231429739070312683703011558013452519763240378166509014681639597219430497905652966147813581367387602729864021314917385911253771075013246085715004394141764735609930545750070845703163392434540642728175485613237874196498863313637137572137546255537489022160544257882939371048303288726790540216946552708746782866005449336489297724213791976532148021481042195233696783277264343817121323104017698181868959338672266273652466136021033307082718951213406812648252198715619820987126818608252431868314255526200236477210809366833149852456463240881757788933673805960379324456813664227429916919983993479760504432035184595508605488483301329792244399352613353569315753463429679889103254184723213293936889164895200266144856061352213906284213780389000427080289648297708901377575259779878077561152412746820210463781751903632363508134576984240009435868091319513800337159874022619427119060501193815164776877260808731882857227995871987057106068599342602156113819366303044846982693870876731699020137898979324239389066060660073860993566116591038892600712621618953081365080581371155332989400712331326099083010167156226300513144509710256794340440803524675595833076335455778052190020676420942591988519172742415751720866299098510567054746454776687801721610646209071181181293717541611762275081367047793010843436859621841007283779395955398302613209897556868601186956966222460979418391208438296566473972593296267845033571774345366700138338620671540615035639981822700070739472166865652476979363546792406904328550814398864535245657474924351415885351797259750405847494374159653937653875599115044045114716951334671562170288269061933990516161258527432448914436086886053150356389300480969473665423750619975899463212934722598977423830606101365387147380977826006165126909006174143396474466616266480740990554226014309932513673726452544200785646201021357395913345973026689073618072847198941872950249447771196079490985662539932487227942658407823965550579540293365424425737757295339850093374833604587882124659829123798132371914471916479306543164787861164447081014242823937300056703704208903677276182425504459714326645617058162704562809956336222901301364190286853561600899377315559203254420774252387150009538173487137068148693420067003351452871811234580208819691815909329595290120660820671177863844168934379743278976850101158547190850917542861319831946147133777828860540684495277060245273302759041395330605779159699633121760406532856065782759193405818015537218190582535028529247350208115405697858858984570871134850521583155622671575547471086622328644044743316589271395362996398031256610760522328458776978497690821536148832292833873493597264771298993441995888824929656554766849061849750957847414935352201472969182722375179931343437375740176679062614509673581222430399192618754837457480384795445526495932119842974674844299406337303992464453510892296891751700719033862679849250516919811554982482866741662731886023256520159839965068612499267939280190225655184316691686011219475527647817660038142373005241704024607663642763049571535882351999421113623170437672032758210614964052419916929743480211954813464073631169101130522023509557709067344970547264288008445917139703252533715501563039944343109577878779589292443570009793427222566542661113634151221544978504283943204955580069179828379918165880709301611260942431875122827652056012746867021160076123197170803907129881254754787465257383227397755839545148399488334678198657642342329639354210233668448765458534941510223005939327485372051087446180858107205917050556467014423121124209704011888277965278873039311959896256550210480813061693638880750297214258028251797385623393325800310864783569442885095891249722236436888327087673978224799015561210220248395098341435401949594350189779403681965328187699495754478219543356256517896711789725419555967420492446482429801558322297784833492036299552792337524739554012479460586417091705036075925289156181999905705263932780098997257354824289811987245512468748980369017641343289694972282165907812843978091471987653625142330525517521638808216497859436541083067539028096287665141485968469616229642331657825161413627293713522729874829077247147205588767027092182330992454464041346213989524450645299103669739557554970176005109288698085832816597963324973413716049588991405751418906141632663572364025374444915349828974210780094796601802482207759647465245330549504082535160184080256179371952930168180699710845608666151525401617135078039156194811619093698405936107131077396761296578925801495448216080652809682616884825463592220215113388302082163401076243656445909593079778175474896799903859742102893596778340180938080594267131367083633548195850623678124447138340488488720599260282217124627817555939874303033680552213669620168540264642657966343518134439717451278663873491724846548442554968019358310014754000257571694438048683978073190271807483238675342706552253403227519278325021005225239646321698886097535884165401378708079724309140945286969298062497121262233282424499754753371801724398029483873766677963665415046001693040569896325551402172707185531973135929035384330267328235397780750865565752229940122545742309390121705191530066398259441697713036531424624240448937189298691800850582220111565760464010096767368720394285036321755854000859068629342086831655266801589918130025086478795771203589224169694548190048048106346506076056505401247399689652036544772609036892121385775482305120176657911324503186927685138802586641825827147345000296551522413434465920228398105158466245317952986614543321566373468361878096874466976453161578516199560823636098613282535217847182138915889289641331390466161034276739960049505525155098278070778172124027893868919960778706602198963432571503014843896692526279153568625108042999085348988672969005137463904426091824128292932352818031736198404393992749052414499892854521129724224914510770959508025894452504719148772777939569875188148921064098220025723080365555982605697995595853637824700746345690381750791313926589196595337188229256133093024420743065109367197739254328206636588517544837476451511188925353816037322576014211106536431199585659970528993113365319025956869203171160256030774563372303135469372202110174529651185589357160406278127030003874449610464556695249307253816724217142109093185423753726178949081836383763547835141243008909540139849718241944439711473712663685153973558900352232577191285661739150481379027793417673015627888918448632372482730138867393866302415705227814169204988687457300492311561750549655187220444175463607182482331965781219779090964515503723865034637815363424228494567799553387084294703206149896257063011956641777834275783747123172543435278983864744455225521363389599063934264093986709217555450648400914412356440672126519749684324136767927254159460442414459755319694697544795222763530168650573333054921047098996774098850222138009251819962319097231084766657371348131410584457747865807273117874092359247462234621847438168198094639331492885911016591110877714451880148989016189496155469893954786933449252264147620864941098543322331968375985753623050574138362506895427103117384655689346542642608744232789244890386214052785997738671352837339404996542795206135507585200013788909930623106486070252337682041046657678922358034022211266708606576456919772943143774308855472448235826216998915770270647165051533274804077593540516454106512480559114501050714618584834886771239812733363175281275700086419115219173552320173277471970905607459864583118477260465891640650851795500765055281214094149834138671097308184756250994982430719759517844990362456044861003253386208995960145563600778557855667920032503399071353932938126805240849190104013409845534698011681658145098559564049077152069826189275420807825594966064738582375099185008331096069702146238770194285416740405706069159984679303094076016104262329388285414859385235155446933143890648152438937283520645529413044794046944938362015956546338255929797901588395404193376930412486012690433108745858910272069613042919577227671209240261014063427920780686523032985416414981081454771979158628909438780002334651214295919360337535565067096653291802279528514072985159292072510375480890632292220057502597212371505623773045479057073979638679832770630754451026294464076087861238965198975893124023701313027629261235671419354130796990698911367528502707571887055971312857536733642105259732381573636370796571579775794899253918266448719369235684853721535913074196980577649479918841578389991798778765711006108001438168461576907457705911858745428800193959393879442843871428686024316478186936236671263208183933950217457440021859944756621330259520969060172455602987931768502406564972872782240354975558998254961251012628537870033404994255546696997157323248599083875730484507526251814995849833425690877984709521311773969638874036867926902652075028467698697700786976581395563248871579359434765328917914471127578724836906605771171554657012655771293731620337421692639077652211251064405592529722150415540341394496405243515830372175604895453527005521802111206727127756141922892361862585414594825864791264494903948686001391985344675915829743250371354470784696856261352937344974057062863725116459969164893673729200146559236600569441791975260274353808871270898124632371965891601661035731762941294404206630026824099526460388925985384355271769494988258944318099418716436203551377796246152674595246780598713364032878808626917403979721348754670845557493296903598262865280088986400185681542771995059595894304219924791533167512132104105773421401617250119199541937139009012802518685417883322478860086586874907606120707487659002875427287688960370636873743180092335362791100304221666048444304054608058488188282146892918110001551465966312393567078581956981426507752314199764394419944392091693115466616344161378366343724555080935750181215652770558448158660105208478118360254289376363992601012526351338540904740196680019444969565295716445361040984490942979611363033788705533799627168164057202372994990425066547713622480759789973804184369332569786289488194624746183628127502217644559811091787924157409160611164881884458539738037287671026006024963841558619867171131102809704459184860261412108714946556328197185348835331740944951947222951391592894366196218111776413120084914364208220387936463309640199631793150717698185209033523352401989008994243444579427159241071276558927807909427555885439093016561582164288738159482817935053664524786092695240874209355067196600335270417645571000021387285397011091933006201801359881969731161494221059992925579907700128971514456077979375778188992013119619967907655637279180554249482829182859837726986910866498179670665509072575175826397208546627905364503118105283420109331602861044061254363220884318475390983026627980622547899671058143031883535720580995264611368428970436041739610988368781398407319496809135316204676903865646204361232375409255318719967399253697597461654350995141177095356127935412257087072064382509163098741334901372367436809814439594341378005380683841894613416127180526776433958660790084012849666912562011447300702901559826373926709547640594827507811054319642228179930594095858394874825177210492425460704207031841024869612391447644742887832669048342327697550756887763802845666869406315577091507586525740808632072295785835099181029749152342837021350360410416372748967192895833526231686519399186046580972389447396913991940325779504926293664812035718946360454347939028023551844173462508856514835047374776142658915239862289989151692687802053957275872540501605959807384244286381468833779862550394659048792735064608172739958528146612731501238590485993732667065782155700679455233252454086133966631905487963230240521367962861471311270931781337193929540679478726888571917555086648211076536048738192533264152825869331707558150660348881333325495334841314467950038505157959501135551415933043130747498533568128186658798534037020403506037062162727119932818246639918010986241773323409705434737950040827745484166968108604345805806851779751349508361791242472073512034403003992140914111712845085376129608884087253139175336598946741447203163150428015181146940780003154157852352623257722807351950713047545644511444981128640877071138238087151767228071585257128526578874437800673041261197540516673918800020135517198105879246685568166922492223121530947690000340800288833977178404230037532303433075711838298711921372816902795821653920349178590085198592987020298667590750068052678881572586800412884054869276971038906814797172508428238230586525334395426026827965927268739651993842735789028845692432383191275600786352940626576400986746825227816769085231852738952645392600486475601471565877560624324345873251318434399739409080380527533944672291929606772522393040433040400358404296205263850612791113858818060522685186971161969612177230496360570067229726098032450394929562044641433440472758476552882163928612565090594660852277107843035934743375562780160909612722627113702151175478071552047966933708962436464141646022120342659238443891649223866130176737230605383303406337595725620913364719388384696110749018373848610324009109210814035669411400477432938487824619791760187231868596781273828143474352651669140589107334275640051151542249719216151777468552940067817207318080612539596702114318087361035014234607648912430198565199323453996117686174676997438094042260657208453927251230112035973716766612199866018902709355566681680601452649217391610511198954880000700949601470310195352390360798699998832137917676214372262722515410210395506083443641899130806108665181257832547844929662105979185586498954970464129122641273219850590118289228676417675949977712565966916187054312736203806379550956843323858555101356524039023401070351013302956000416651420445707515883137861011989733835816158224255284458895014392500742823350313800343182962232829707521742992541274516618883374311824100810864962307183954998994213100441492347029136514382983221535574948989231740796780848552372362317136536237283949456313546090750227451501879550738813062860744840823149535873234351328300278873390725029013710461293387502437871324153742642516136864096445872758956889035609878519734278384082381860827609085392044033003392166337997312486795419284736981233990226208535504361396831310434543753013563166254666691887550230669790722629883891761412083871764951721320881915583881557032538211839064548429869691186212033959886037568631301048146768403153459056372259161241289083613012701536454033321465155965462038725776569550743301318492912413471878905598571512116091018434676285356234493179313966610313367674707892491280352887755023964389072546780643440921155239383790117793308001132332143682023538684426226390535818093493856240262927827801753829144951276976683415918747036121541277501888212120168232474681141424481924280447884157334489691263248817972266556477586906599073697520915302397784475837895813382331048192109831917804388723209143851004989448265573433126573303481125723279197534410636802411687537065835990385820738760448083344909196753250484782187702447926526233028508397620232664447728466502811257188120588730917360826974405073162591722899490605353772837183330137295922319993458229034840351590682009900630368709048066941926708864471626115586008823790990209358045925272147024906935500423816301101398778124841347935853966021173451678515740637518524718251921983590525390955580786007616885125579184944925798019339480581569794364333420917985459900714889793907329038467841326565604711734813285671749745431768385979045797788321145243035632935219802162032496624254070201872993513324364145682930108217208314909140580132595465394466729773949716855847048179663514642224964873881223768254205510218273488923987637078242459761843289211130266571523484091782421350358793256106387133696014795414347316163068159823159760580255318024962281368214549090193538043539485249675421472070947399196497650534131901480734519350295480765627175790392962535691550566472220925159580117594685631173967840234118285096554270318460124585040451178108258937001005529636635129734929212883927719880821192962950278608559014574448991670247313133907039133879159782598267961250214128357645542223329681728931672507970735666777369938523061519139901902609462255825341942449000444899249122279599060651751720541428497262094353346065927546481004741419942949077078644297400559979990171824031435887207571001235742324037109747028212489593134415740758686531849135674318645720605388138229394274347155889355791349844140021086062211770675344638628833717819976319298482506524040117201003821498919493696526105137811061169905176179060902797350250828746816088697175923402818872638788110897074552880608416540365418644753873297535352308183465574076037337678472958305871598755466416919237224549125661086327219041632381865134823422850202225452951071005456252963876499795782828206815085130225097280758019464988439632756918153728604208504946924017707942450843845222655780409078727322475559318757619495143144158196201271122107076151693581795066966833513801146068358536089866003101032216139322834903027065234419819355376165677192523347828025127398240378410920826952170284759833867379129274752351648718264778827132399277274495350102003702789320278186551974444841615116268684845773318657360858639183448499148809765984521300457153673724424255533736540400617435674781783922717353758425834326671763929239015340779241792823498146962020156480113091380434951909554615647149153272142857121566167868073971086019525662793750808361916558177883883072296550962937544148492229626328742975976042236871317772519337848974487761942733675195597608678191832259888600574730839930337890293506906401883379378376937644353589556537505746908833839939151047056527508898129082356145585515223852407775876186034966217766335395929852427256615006380588297697739045079134628150192978720921601607851044691236579377584114401694151855520250339868493497757009230389442999837406713484706038835432506003468830659309929352859002574852867574001543466442719213480005635181532127479448145192894507379447449500908845778381226561553942367948860659454717236121661159937413402899502128811570098229871535426995929048897011470842780594028403170572236396787618740097662385485736394854608028284897329000035300792613787407924538770130248235527119268291154957368887183784178495942392634367023098705765600405328459167566237815741698152534621491012109821429470038560360021140977679789352896862247689906837760661424555605631030956551358619080423303826721033802959645150749552567174513825382585452455522622759459226128956167447900467121937589652478768042363084120135115873928025167981696478619614288809063094123193868765332969691519306191169993815734055869233068900235769463194573091398122198566119024580326535137912826730552037178744216763935346301541780566621448908773843108868098207796038471166281333429602525365453523286775207957911496460676211641207606432154387748156120460419069134887295804437673952869133996792050629742022645638410782232761023011222141832160603730101350839233677815022545606328886501183241538196615139599557515001421866685885479676458008797930253020367218212814206257388415703869076558070045074921594041645939874145954277332451007425001787325294577986667714154567349268962346596758346644702508920293669973179135925736133879584534135687142917809705342644388434114486742475182142640874091816647270066230418740193579777451421395433227722952119835479444297836635977136022834111641363315047330357154038369429085973780657021532433363880923126884733743199045850001482016189534381667830780787980491836243775551902612652293379740087071327487173722218327825258054023398990326856922023754908167872834884479946097292909924831515443896459648740509003590666400041310208465254026153906352230932382242511867154035966600219002260854579302373218998036626771431051842662925937575139898954636149811125261820440801636346959355700114257571928469678762671113324324130636844302187207410002471973669544949902322351908862566945624238714580165226450001223980856028276774926313343844178585568979083868255278396549114219530349110101541763499391173215037528940099680848687082384040777857610179008745278427795112336213575078024303482005340592131411111092175502592917986970172401779655195996369729300584026556420535895713489556253430182231147752862240927717363402357369415276719416164441074833436636248133358403647178675085537830013330050201117220331172734736494339462551932483694218808031347302104996174672610872483242086842231397647952527252961335662237655815652006601773218445433610128625510146469073184791768469705515952485974533687276006263507285804815790454069098733673305324781989394209864013479018477538423966007715183513624782752940457730290909400951303060652120004542163647330955361389121013360428629407543069833694114766940691861649923703314442493674758505676149316841220479661596089618190974643414611986782815397871502128123534121626577897456980758598971666785046491405951529682103690167788934644357054666440753815030812970084241909213468403838525612657493767330064997754617047275310075956088097595279556108370121762921410501094567213729944726591634567207521965431818030966395822846360373164118335175465062046092906993882113524555767135040390921696888018796328244152661719053570443492992891069772999881274321108024274396015308439006342946650705654262820395892191999846575529868066826117764010746573023508736701795910078570973554499482110367058786355741652738400209795667190951171499368678363296904883399436376651815334689406830871907696524889211807723723475094009626507467233199745083456386087791245575145534738738638642987814066154728957987597192285604905745122352603181284929407115127443385631437994239068848360024804125041149667048941793879230161915683632276692179387675065687468131543989847842231117156832379031867117316781797453931423006671113477217795293137196843157133802803098911231209415636249258986988880003022464836014226671868412738644980588637893218495054781769204724597724194727301536185601005277618888949518122118831412744981501793959534340072823122755739962223385728448399109754366446091185458306869568282965798481627917417373985256907859916968605928957600260898729997093945506958961959194096683291281713002370703629819803552782523265671742464773044453862415824135707221393912379146348146012197892097460161786539225471417961726164203706679735357597423202594929784519352239572578376079095726241610822591596209824894648641615309357517196978437066691414508654110472799669322288721665517741243637795521872192295742046621272544209222599839024219892071160985034668695198797626550564429878477295229073032586072019054922479878922122672754746917281889550083932497306228062792341490275730722844411054740118759484459726885686694519847897821487328626560153927001634210734638071656760516047104569882669985006461602259203819589283579815870286597707321274335439226437997835095738602139127284177317590298537540133216784822672857123944906618049940595741681166597313565863887109050512750751511634190675276830265779235831690523014108214131607344362133789910852676626145485162469954086788302844736246860151289046676169587439299922207629891315776362425632552068061098894550404282544128666332285543888418200721744405239238149550742824144735398406839941415815145089429445411212399070675349043310375366515321721490953073643386896001933272268329051376985700327453970513294968935816114074058186114385622244603862415313428426235207342838781962732288373982403725367505178088519921060220186042666787368552669841223155611611867600394905982098197433667435811372738980879959858975025916638553098603244914324142986409354239373123887596413267511947655759742574241895906645156575513363518449097081556828664406812006752836779080132065016482088973927705700414619705097777372014374695121384707840494846592427029796749384664565495848127278511755481075442628975002685424678901770891625058323247094507161722782661402770785488467769323604146997146949617892117385255177307623168130563256503769175279156943581303828983993429375961447774869782624955184755354834726972717022150839805303576066294385127510433861237108126344914322104014641116221029036553741371826783086474486058657502930740156421685664815116850621493473768480675858746677700198759323836743285317991920509956934439491989121755627139417563308267161768942596055333093254873355627281655978248977074274074236115954322919876567962557537773671724431036242159831751665030590086420180540410115122029256740653720833193059711710589249522747334388135861328685383218663596690254602367662616470440281841080963169711780507224706612660808446820611506580963176822556805339455539745361879897206949291781084139932805220493540490802228052127531927122680372484084766850307213152000754631151125975800565666747467982350202434932972236105859749282369098640808674361752451945532459738444972498230001019785853043852894603773131434830060348558870035234439915130022790899548492575870400482588566842829307024958080276265970922539132695569540137927957677911162383083116388809093226963380363395872742384027250246625442041229097896371635722805939442070219513009025495502356260321572155075093232640649758063779773874995106888537405619859502797767325548371928006467164553807519687224827636355856607473857654461987477796464922704190689353883867265897100346403419726371849955907229184059133830863906039986282785698385598864898041415977427861550724648224083284107777708452070173473821625532802864481622932321967205925079172369098556476760004379382939630161774310437258015430907257114325536387127859252396934578634665995380389003863437321308809012679187181859749625336365111726240157621989543157606561536322292798548813064248588983746628181398792126343236601482436266411381919127363572924299992747240773468846094481949513453741594908692143865243293315411161035971207870281433488991351988499095669139197827864502162595097026029563748703435586732894428689398365128995936884364400084574937373449585670868459629115355978857659197525530334058563647470754431411030139578195908540192246045052974197937220773971937376853622544527062340027864488598888304619250259777895763598306013829035686489662123122879378121877431440042849987509757043277899810258338173254285119880461539037677665004726894212495884688064555840177203565083106840610572121067419834332333091143946286566615475476045810055214937992087152830358291220393641863840806877441639940759697790507309823830066974103816907650151634346934392706026963818981652064693836245887015693876616229771177733882275308291727353830253125224780970906334367652470188200949565887704474636189902302208056863904015053511617331638165998602724241193386055522629223637851340812985966250360220514667698788067666022774926278036534738220462626118699719910186359122058885205120602716555639295625381884365524301341799575481161110200906511565412569993847947652680436420262754464630563793024707296272986818695357986251399987018117050032574923361537457765836793009523610400394292959280566371436490022009920109397629379801216862886385794314742700911807605609241516423418470752725879903125122222047087069326794460371022639280332226352790747512842490787806805178469582916686352455507779395690597826614216360661898277574448907292425771308462094640337252717223370884761184172915809630219242843562963132060006090984928163325935959650209688558462914582173473850034308888407044338143776555379286126184337012185467414508513829448307150694440144825277012331256532541761847943191850910945770108457733157870635648301451157707778397551342490901701305376849196870852927987715464403234844817499453113065119300426480548681626524289407143267288800227268356592586210911782121659822971969985928524158190543499588931219920818867981893954961595256561391204567541397691855864593884144650840622583315862602746271852160243468552456277183077172840986381289650494362604023890338234166048657229447374115871608106321783183009471067947638269110754829895640963810270448621220759883899353354006450656625370932967776918746473302147668283971603101537900599534346438691677508500883255157035572714529416145513367186192832152799254033818653437592038596415814791483448866497196676679250362721391201273854212524331991120933614050871748329907336842612807081100962919489212026828103227334035170663785662899699853462755589225265412231602594997069135637295807541963684712764353452983629155942820318104223230016286666427216072342572456047733803317663917714734899749385072562549691409006710034526620500278850226516063130359647066642406412572229143125843412789753539346286358957078909520542963350551209470135600666012197374033040551739948399208382391818136856053124493079081821519000081049222912966568819156736834456364221973512625862293548597066528687003539416723931817324599704876064426002503771590790803845150183176422568223981755656640024034168297053270127061863369639268300193364243962981402143693888842932685829179002557997994991097923105756423365880928116541908079466395342936503423545730394230217159121960339777335832885207836323207433543297201892424940165444477114459667203243716040821862368476510767379567285224873239816098038777519768720298150017760724502871677424558864393447887379222995849817734118506930974309715983451268046816314726152530530198663103074999705048443164219322944629575753205839225880613876148178197365327105280718000895100730951441318686928282460284175254386638638157453433954011214788564517727244675464774444264856133396941066502095872488472095780307328665781516024326300058032931336465047228918974862122601666593268713154378014954889703215482853351015012031844292318294832472694467147572435978485161493458514926304700225815187641313736019133990763661846936663665511017699438263322196579626548363835317169737374247610757895008206883272289792869494956692200659578973565928387356992954714056846264081262885320954444724044992475135868257156031103514984284698675978517012228000024146185570975536709772658746586205770203244451395034005267425764626548325838957646563882422450581435155983224771703956882086133298707456146547063860901515777909119893097025283418770033907534325719439358729142928308196537286247450132151567336328123222921390855935807009529428131671927404255919125187469833019598335763718842431364460843048767768704307513539525986343848568833078561333605411767136303890606475185324423731316825635916086745318910372806312381173152682084038755602078565287131936982445335786000436510815141926807408275165427499172707467080770458918930837118489073173725280563664792653323096202861187062031102584264435886009870086448154832655671611750337851624106416129571424559930538736909878685912796019611109116245986389068141022455701179627322055577440330519486683966818248416493838643918117927629341565308892575642893446713005154580611042455933268712351978309330037202072347035881987640909811931390389387598021220474386887788150294565624298644938232887871907920500287607688446196184523193849575118086720560934359334497280936542165071381908662404102681529745753167248934934439586118320417453803635504991298047072154859206520060273000755621902831468812088681851594117088190803654372129884144653130444463267108310917984889960586746293544017041617685673309164151930522864417115172320736725670276328155610447337303033007936173131140387329176177920483362404466176099557571883173954264501554621762252810708501424468299721426981569739643938777839288950017388704549420196469025374107526320394121339670613218291287906453880010247339403600495212788859188135776030709210923746595947802896688924924646869618608652228218827135030766646190237038860806343441682094410976382594408193170677303053266862825179800263180097876919791919656326343359231332012278845706258524995884766333947073640737418782002770386939616621261813780272291882156175226104503881349276359954533838204771408087912477783432679894990899947715759225680595206195285625041206730427223480809859515337562499624292167493224840507191218332340166173868852098763705627527970827122078261963251026873948027961697710825959842635453887365552769544609678746551435191203451968546449908372216350313459641898439673304284449129418364824085023087117360995979917833404161362460525564434081273883926619047944901688951555097667888132103496033807733749627168849323596412435598479841831867203544959784390194745391130834572318745195203560626207173469500725937993362278350043644552292698748926979220536519680767702612404222243447409700779232407198707132516525977936230445250682110123911505820900210801604997825938988631546745942628414092810785328612781756073863615676299589872695863771523022008546788305889148473369329317171955237936592293522970250151665574379498299716996815353102892407911318545271328076782700693272079983902280319812904579638005937697613409859391410612585160336101021381230040972431297428607247635924161415412727421772070516643993545622607764747382402270463802687279769322844237382027019893519466924922798211074860966855236199809547813659734648451578900630484055358053108021860473772495911030190711857957005988895990774861306664796872064506406774078393823756528764420801641933669215473826133789999240539541647376710254441216066552444885207902084735557202710642727905978935522914901295418529565627322257293107044312584792988538732382326822993810381884205685807054842047382508142870730747144851854442363683146850684971572709206005162864236837194577341426540331188440558758409085597064868451264018567785435050662674148488004064799345205367286645203465157942982042158152804487003682185860370811542513046515333990692671713925833458186787644062028139459438445465962552921893083180857290508911089371048737568836578335623915033419785154388559026804262249299792676783247920256389595627217693770618605410959459460428266207006854168386993406100933608285171650416076876615811794859887704529321222612535575894250172385103542508489330874326972878388543177282030448735460068800488122545876685703111194510295280122283845256902951090149797984272959786429544818200749930360874481304501096615424198290061725843676105136904940701431605800908032632556893318565420545536269061650518384654031219335244539548348924975920874656423488035484528636663020511177741000907999543175699120459518712524549923957677604878387302563419819496122063836535071625059000406122804509855628450122658913060747732991827787311512421100455111180707896738375979695138355721961775011162904802666736149178803044995398899143040524674122497500557382575875149383092935855937193827062897096947925293359119188457089073057353641679427123395014495752271588165461879272267687674044262607164953314202149599006557885226758266564507343994095497699798532860655855010843909241417616724955591341984773871030932981341969537638930946185908385296465316851970806145926267726099495291895939815970145012739148674161352535920608636914520314724245062286586295428865966093477438639902878022745330313953952749859483869194030717263677751388104851376882477268417031298140996849153865553680833587877015410822998501754269048727450222249650715112730134219276170094459907639254851543058031398264230220433103071903650244256214455469652434208139874777063463263128559671236798351729707507181071762683590093755634724163650344978192169939327482017891800566373242958532588100498936328108639702762999319968833235550202063934622752051188847146146603142204028982098355069202953688620567604732941813774592597805953877669294124676670197444217158295366936418427699018007065397068513081369740114526456349391664049837182195271353926065525424040665670251392707895711594041152541363044820517804599054875240259646251932980616540766061394620976219046952989182834478148324924678954724500189160470704776674777630547165468909965941648540587537733338313779288247702985964267838392558643836850281152327377767831106305347931988838843907235964905888534357826144204747804710742575763970075405844346774817329264788708697945368422091873413345738453356449390258361106660363485919222650770187981271871513388804951651236858949843963180414362194753717600891544497438543340945319460972503451748634356238583518516331050777770074012137921116003423003436726363984893754610370807150473295522406677407817774104873403408023545971130550845331763302355648766932839042264371900604913052786610633170557976133326255150524450731132271247795586733933810505247633195472919378605034102021399537374662837730134587712162797771189706417574480318901276758443426007761139851461021581923729787121484870382994057541805827631151590936031888663269145651139523681370745280074901158285983533704164138327879458997392646303636758440772492406618779883990588649750766124287090996414394768731036332872247670035387874964970250220697172765329717184871862296414743209804277464955384079198128073988454108463715308257700060299577411695586985055913722199302455442027550378536356023583728712629242108500073972659860966437650514554378806626292892493835353059652098992210245381321758180326820691301990940990751674227437488013609105279745296061926553027298257008832276617342752023317913715198430966309747592333037781555673273675965302072294310509304602921734538286282256477123486728565043788629705108207408035647642363581624137200802595868396824774476983098859218361287709020396838396274796609905639063724645018730379828726341770566398162584487230741684022339374482050722486038337254854100852250484466675465284386012280980234455246343985819602903529315619314807896041159176056224773790457863566152014874655350128129022328557121778942248222162047756282968100860190738259034129254787165832890029085140590794119226818026676993570659105729095128239692981692453113316505183869009013618149666901945567250184001782401154066052096888526962891767726517470996912496904177998350810555513440338894824693368585647641800254907524031607910155896821292596566306617647035613260061818956954827904913578178050740992760468977453986254153660179537078989321815843383399333826934673336151293270038046098137303231720437416084428873961246696801723441387178494115222287275579401226458739361759858752205759783316196282798706154372099310041873043584087709966327770071165338682292899387016732574644395640620843335023114869619975598722279434333915554686481089896529609479460105606400724144159387011710047076923065081227026821410620414669046416915868882297088069508726885104509572702254366732658457733665182376521982010648966757910892581190520376410035748847491617036602934190998590639246564895693935991660335543605532385941095127084784158099101171790842660064221222861171447136285661402964405989059307850489970826591002578180847972582779270397963180133408629898634958717702911959472346386453142013511930315242674896599692557523636566258528424708166668419403954764943785398124341607329270379084959602641846932094751013654148165580876448106351307822098905022174861522215753628169661627033601418240606925851849425609020276924188791556988599883773898098827207137594764718621342122546747442448799529744614927094630133057744932401248796282848424957014748569141961134298080310574277942081668715325937195657022631961866575126765805627138524199027131321657660800567998567698203484339770422042949805287939972995056014412808346170514662011502370025912964237354978133674482538746917729646640925322302964319874118496866952478715025535965309368995733648242419972429158566723780551189234351259333896381847751296382275488044234876212212674620473533504750645614057298200895658105625380424153003308253796991597630209749883232404110818127156422660287299475403279336933612476784984007916373227410308271906281509703860021281406922336196371336076972769046929785992836958625979493626612959873498828272351993917787542901659427150280123797644745203721049655602711021457717023337340047549576482042885923470860189903641748460056521090961539176176101949915436275679455016211601399043130910940249569724647558356984887959163060500095537289097855779398966896035962893594938493413346925999310281593886142816146544792493147916836407414001705128668641543461870083443667543110536731640969272051993918852239196108108533797155233237520312439083649269596828253922367438178950745191542322750669816950431367118201472351369548618031545027856911485936672464862018629955591057972386936101692183312664498327410401361422703909621573297225172554437053853092898764871461581338199083912963618505586189927069403612920190819113796230449518645032102953430177713449073964306071065350099252090173357812305974120621538417250746570542745137279774086312597720113559735681629718826677452757161598086298464223343891204373749745108074789571046000529596901656328230767297535283375200374772505433284221656078256459893573453411425836831542580672094066072668501761109961155113650398023332454131898875788306588703726102788978452269121233480653114574960698837096742987607852000489400339711551954860838464934812037280502337942417163091171378575808000707200673838413782119559694824499097872356642851199019986371397125539313609785704543972936484349347660415119825536557346207059914792052086086201206831437718990029082422242250934584250430378922108041032081467805601536545117074151991883858170559297682539688638704974032822871939227039931437927739056005050585424383699275557987302168592413982747591666340047987840564906486561270032011628325861092833689283200069412055627509094784159666488861230266085398799751916203023854116312698790738023865227684430955718095563494093921678040567896258669889510687832319357919271204841490802055139649788908731882275608323484774546595739149193023865636487172548739813710757695230147157559275247638423677369927636338485394411095259732525370057376499595899664605557268941245242469266476598598951290465755020069829444716109919214025852444569554043784430369188331614693149851357620977186676593049331748654504560738153805813320159426680722214886507392320092618676883525655011392723183008810384684651997215135961882625674454557159695256658507432718660525007930700762106669544753943235132730399046299314151056781216233687031193356698906864907718076457335723421285657866724549244552137191882341071598223785478751647966346766776987067344647117587443613397184546048526556321670636747100767972536686274215393198120507415036045982842611395494184967254566558182991426464962649456100473647003051619752692018263193071843520862683814294863853305849360967656004305335009409360762218557553421852170009597119794228978608363005344691906942278954965974990779401220968110048628701915919817516942657550618392907670811566168291731015936258817920803417970358568675554833461152192136565972746745194757497454036974254159400572669254751407708560313596410750023990648859386860160146918952371463296080872640527678753237979762482343576507420000354320820279678776089419559956247950182820995521356936532588040106042904008760627616161364430287413688906693244179413698883146481918601279989309316134842244425921687322230475790724352560150199063597980452000702085977367431779695831071934736536053942946754291195731937292338873114070977205551647169243314037017310400107655782369579093238682439964872116495588207137126657528541794588889839304717786221805645765070848110560347992801660694331661012500876424622918643091829982358363073059602209585292064876635049753300239724694756531539498558341873129756096260352034538727966485743102071374758707574275240067721200592028283803541882115214290191368706858278754342095814411771440187177956786002019797993699745310628327219584468568045853057686899910703814419718494277273737109269078748452952009683136901653145942317817818822871046910017352166062883547889388401554895768089100456143378912560588714843508657126230030014227231824093143725664558318006776506069145749935307844138177208638149081327118048670065861715265407580861822881476636497032115132701790723333041224657038651374180707195694530216227414082764855964785515381706865429126683451791828729127045630219544793783629930956604041985722454993157342672821603890621591342228720302897942074816068735921453576014537796780494136132035149710636295520599952744761673569190317008724914886199315679863438975052415976445859126405747905786296178011710701989509693427195307924708637360071834285541043335988958686309072604588465332884780631952431792884438386578592302385637991859131407038862838063251368367365287798490380491134065858426880261151162919823115590943370388084848474168888411965117168045082636583685880599177609325175261436638669499392756117796137117144390334368565332704923578340981426223011354008176036198371411113053140571053987509150584868173997693691589567601708213111796587381711491797287936649869612995845377954982052094280080654223845891625882369560041563347796321136116924117745666311056245940405040826657071265264433204050062924386868439160965838282486407418711670924139158218203559121562910060360019910401354723830791725308008967362932592224227342625157912048133970225736649486648763101926780134784071110553038947705169703116143053111100378572864738950055735934156840515937377030835214540418708162647388153575601032050035085387674550224657503303873555843884122239528464393334819466936603115212761072048956764499027676916965872427888065064581654529546765839941731710196209369337942044999726410489709352673967166276292504557259861805325274861250745306638411891546015307230505567138845027186274586811097704296894498632891840197465308631884921337126432925975445993509700695805779271849683503931201039012219794871887097925263157167923595391447388656645687631804333602819422105460416598830536516014934621499864306376124312419322427798346234149862794489162701334780537065609387666010364547297061607906121646771481677847996658326114513598227238648294103148496218414451226517865876135434680372395322742564039582561648388441032804340264377790800351874500270961905351878754222938215805329054701425052808282749903842187197486586889549876158461489407836454266998251808696267143091302709267210203717142275673140716218614952501945566904873398347784790788346464928458364850562154032836850256833333592667730248391088937445277507235130423712145160538560674767983379863686298172520767694836025177128608499902414233447820170970329319869013847399640097340874997895379005801530999016764004981048840076905693037487952438798083564249991204543408374940834741628585981208051753444712235342473489357593643502928446337970003710075678608824048980540896146147929589556102501475593706680320968319328582592456862004103162433210334144624700560119972033031337609369080823120087203306356958916606895038554109794429696464713200098342832354490600655893671204349753580940502491967370691577742791013848311264154614647873411369822903032962358434163293940098550314748027383594188204535052955347180641210844853941833996662216845760557821892954303813187855194844883650753344462786769262294136032916987673032647088914814135390187106626677252606676568180832459984456238426833250348631090897305583840192199990495677756277509368725393162747923870566685947397499729955208847132084015752347369598681852091489175087041852367697966883626935431166006524825897590717123389214542958622435848213721108724586826349066570008420862790369622968760285399984729554102505067336872320628153592236521849948757874141935993489369352888585674826123583274141526412286352849268384336832427962639455936193294870000495913490979556394698429083876468815233809733207305659542858354428802209068220420737454050094158610609263023950873468925685203577511739998066221191184291132556242739914617609986373874517731248375918150210405041044845530961070179166543446083971179472615189255542424499012060064874566180213892844799920726580655738987839163444160704249388097349969200485694113645242486444103654830279524300165531423368148744202493557559742696558674745754332486259478771250511694697361241577618226754258032854210218212892368723088091913213170909902639093873198946128551204887183268994173238542405485990670269178380780736401680737962531137430242442924378356356033293779120427724828105888707855649980415613051279874480884222340726646835104164659570488685808742121923707772958170879150149653265523115507731227944826026755551129962898216004268221132021223914029653806351369404681814677332114188124347872193325448094889309596727904668804677778341094928484079406871243250313363697821991529428794492454494972949106647053773055275388878266575422058535504442350979959217766967902005166329792610210120148852195294244455004777329490136611024935414783049903739234661960696748931229073103828994655273064266106545366702789179940388046306298657206678610032964826260061507169955499245403591171767334825020275849691604176581257580627151899075677722491500336197476240192483450047780738177566378794406669631882943130519173540882885148554306932305083474808845294369502219778634062296549241634009079514615296520552293046115696546478022361711125029080459868371355946405068268447270849762329596885267949405092502690578631634359228837250420044949528899452679804831972231897514438836820886177857300221061090081880201436441378032668316081358937175893109393022077446877895439804218607515341033726133699912529392606264930211545206962095393752834954180799021571462494295460653833485033322738042627784989178331886425835682384642168719785368286045402307853636229201936403311272915971871399320371406220308820445372284387363429072044030571069423749487328129059305962583062717654633991329418687390550498681262365574785905178234578656781571258266661029683755654518576158985348776432267926016823865271796360003301005967916468844775414420361028468820436088757710963474570815530776826411461444567814603295978520920551640504948243673383962001562969214033755612747857083704529936519524755456910648347045355224721002916393393756664840237464153309706188697930332541686976861315330416026135331936340574170051747962166353322238561667170268408000362100368207315874280330095747810865921634214889278820688816034120245072496363423799353540941321048117572449016046802886263333672379358856413148715730532219369062515514984270010200746165853156243756700577871407456426672798837892929538569975487556151939493033647616301654505922271199613485314577105643178577108267637584959855663226794896834052483190535590670303522514790071517586254978762203025430462814938760248870312114130963467541375706062076566283729561451029768734178918482082603315603790175985056375461693602630305211377072894265437950002743500606501476625337761364422962537184833560215715462848287230739944627615427739579839242942376580793641866854833589335067884662673190786508591125853136837738994355213930424645140075559640904110999496484458115267056747865358627088476314585934411715894178117792696193818447467080301683198631373545948217640120094078378541328715803963564695631741405451993823739392618266024792896764236611794971174095089293878776819554800425729006326258617651622317059296715436416411997335159343105129647421663280058699246418209028089046933278448095174825390248280803658839543592294206809691151736091173795113786293052659852190430838142416556539742142355427937688503999237793920272652304245381792721054583187260006956387972123028367777729787421450687707161459854363072389985295930841918023930196612813602441656697376991048017890646830643629092487849025808298344658574261799254777993944566507799088489685293343895092683408397395729081600699054015661245770355209624824533144120046244147313290101885306177571026710934652141743271220705202902987653268773501064165771476843743129759123070250650514119786478858520519628314986374937747677930008962038913419968971757187943976650168769954843218873695487912151508581689147940197965402352444991745209595386452798766698065006583519002116057015192082477198316109658606256178869286586284172328921686676857204940240448823927602410143353038444026960917784474896958381470625863823603712327692719812464845296334341701618145899528541434467275950076134389374844170665627067558938669944398949670911957167395734189649462529987637167759045484220385944009926975322057261058928172336940059580829112468911262136531227372963191654572519271976053650947432318184584938523725257137688552912642977769694961114478697148212714792905353321679727587848210955065701832986764602531050844490038892958010642091322368801227898832641284804043448133604881780637555399015205430004290785941396959488827780033917726356716769149127524795370207566745402687249609927404390898135607587636851231485252302397538049885906290315901965253725613303776315267328823840640636676992662058013360492745574877683921555768267352063767120010731918917106134816653041672611528299301307989197892823704295488893541930828947662245211697686515453118758959815696536211892053521050107602970699333215114131795109300993656333654305039688716373973801666575890842387523502683375061937773342093752021178287464915500580579328567732689297798667946711415450698592894525646243908205740009555959169488776627116777260124109395006176191657540733777032649973225059227393836937990765454852941318319670868795538843545217493133970271063416358241277820122845141472070674947863130492109127730522339948010758189080366924788605431907455555290542773869790827399551533470258391103920919086920215281335603797937328760558933500430679371529114054422723180972845830835652235392682803303457634866171619553953164515799006805383180606132884847834990695270827909151331713717706382706665850818451168127443300033454083590071942690312764139617940294470829305899465144298625017515988110676709414617352805570582750564798541286845665424845462892302512864748188199659512681586659425974703346802215084819099188576962525517069164415681481875792441431118594797270542988548766230268199206995971310528840835080130427466222282023687238491584537499412425919752860147209874670636861779269996234515310333913716753544431181345046506949264013378828437344319888385253481581292254664026026916296846312407727480039487960703790035855155738270544964718792435573439266570470954613293750109293790005121615508319414879692568755943971618535361814657746190702644861632446942373422907625583281881854098734495463015540611475870072322302217192585047800954910833579110706067027604593877649891116486214383545416750741766421920627768853425010007370757233804373755793127586038959060648527758282495349791617980774171162456935100069752045867650705816877560145079525166394731561300022881893330018524992418177280924851112292352638177306067289519586586676141419393746535379288477460071516170828715080143173458673479930311902245476368145811159723913271295101233150902582856959888177174522743581896285996280619333488850015925839509731043500152786822090882816443975192486132939535112410416064332764106584882709680032629758734270727869698431561181138587995689940577735954599736786916416189018656167797010443387659196715660774416362976504844337463022643641106966332912280610840903574276080400725218137832979625660254603208566554136608339003049008483642603015912334495592151115643737581706389472295485271328607078876118602634865823508878649796941060578284582655300828924710162044743379339958462448492326398973118884238936888041814496702321662206998745357022602758366449382858595533846939328650994174544872809590129409965316365433238493525847011196493132346784284214121695702721510553076127420860646716436271891761924514859865244871129163280777772418736312351256685372327924541751678744092085425169894158428721070605354884767751319220106833542721105968160360043255932356975086392921306303402283847832464874586705831284092321202192247340936132326422144544320359080683677759956595498633561466008786058153423979352302179834516551074855902201857294090440126721249409504580373612427241795709597266383781087260117292511071502276714009222363697375662507436255969908773119226701808340092023147092346921541575543481407249626801801354342030638861606337626193726990307163891540577861546872562743664124691146509250005658016917723351116284226386726977662832224788166268809930451844552311421563199159850265422984430047128929923674658842720638245378198353267672339631382471387624021489666328261965827742580697639367332728964279802166040056929505610527683287203011569069810532456415159764465075638836025252620780065338413746509309484328698874420120527245587664182943727492347929686492156932942379717854613156634211901590179653802127363299746709552288739517401955548317641334562634486396254043446003193258721094960040567763579141430319031986909054913088060644511623731601798363303915847000011826490204487362881609991394242171088427122083321481670405370604483205952306714409484178352030282189186047822531473435350722769032659439124828625078044924874225393056103025235379159185465937069161179633041533735761947061055370028100186334369992607913015800820354892724080009841764483886039501570319866404577830386008319471359762398543607913338200544672557470549145954429423199070984591571814114916008602908669496470890959236534542746229704742731046062100954815828044397052178354600646444397715743097409438444087569756520179576861863412515116968983986422114767487743898223503066620735299186862743849762931884105490925603269034701001115110919257891592992478952783401965161956159072767572531690008562360100156147121529505089876333399817724452992248604829921158475194630227647729387709910937953984231772594907734602330506693531822573884086373153811571010062251193707493635166688394548451402498546145368126920292420169731923183362631539575623686244324687941546836408600214406385791054646847843665059263606163202557102220354404005920834846299844025832760091329797635418650015601405903017052773383538379791379270335251763767295952820502932046980922968410999637646582190235724471347328611595834486308895600702851134608558381670254200834614322928916212716434242581740479143070858734774597155587988955012927225501047215332947355836419491535233652516287291745109937858107417592995302482825116046943999685625104249311627936838862266698205016638634426125751245807550845937060886491947654566867156865192974571402834842685488552883753877468155879543843672940139275877835754331336541936046280075965029810805231887485086055277667265171314675807191132608163714019218109118268968593822505984602437736627821828009818418359780060733944884995407461904942699646155762624547402673429254748919551931343884887150221053924127803804901817086194865230353921080771936585617961931643684646084700975112620492971142346830550076528251220781331283782764903737731245343898959904412784589835500279113535635545056088084579596626479169842335684087369136161578492645558631315617634184580659169698653804567895326774193772227732419569188069979473624637672626439294514598289648855849304465707012416245456718488895802844481187811127289965052521369810870884608482301219267967811086425228124455243784436917202496058066846960598376333441289962333291255323748585202012420946664024281509564243032920240033036761870711236792335958712924662807325530084689836169190247186095510004308178908485749073903059432580972250235910161867605957580247436733613070438124805058808635480175933708665216425110353838287016898898074982125962292954510485266054198624491368751546475046247017081528820202298658969374963799661800766239561271219990361686845154846757221559203220253034803982991350376076893023809001900861833761614371573195971906341891424487902151474365310544763129964904888365042866252594575843206401720362967618042429399452177673229966254884036840429344009889266478677949704239017047849326568680657228295329893835282459421312396773853534000647377461021112544316271692324390845922836398188596823448312223484623351103255890948377005193132272668730909143286973276606503192579560705915629132806907957783689077227935990522024907274001024371319111751850835473405569128330397607888053565319886691567768871219623376474530183766873182394388808560730729521232610624476757407811701370298222256557210036683421618261188218383420830880174323101069441685070931647067839453111304624539694174201794785181391051874491720639417812678374951985672531770798819938373416834950748331079197559873116090918686260297466994184441927199471655438427956007540466290405498275620083020062234743241057261503845236871258744859991312968925016664875577186629357366164934886690785001282964661284277354508073108936412313817533452617942608187084018137040176713883337725530377918214505321591656054129672227473981911888881736095324093982239443135950995186201521428366591130351210309530152428083754019186903338651112251851725676659179186448933054145393604517806843689674605322966707518494742406045583647568917602242321140294052537319258374329679730026134268164486876329440867394599014337726320339133152833717265976524135913778128569344425819629256269098400401138555961481365991721618785483244154265927515135796056075838044946685409904222990573874953527565696714392603305708446511856983593408319184577883572904812152978479870970936082437806665532362220854253742376590211265042126426019877127817239006351061459463764394712624034273737100777436040066557652361716444540000666722307586538294683035741927683874221013809253132354359653957144885966584345183180765143040913040857774110501887552832213661775413999091792879120396639657475165683508592067734671602343151784825017810397722498966362982323896128470436808258124429650141437072731971049623573160644812234312529608178508825556058394409816065642807644732251853698476002101004160687889932920824797180743950057276108677821167291473776829098006628793539131805306533186374581705486651871911347963514786278912716141793179492627359022747650050237046654637485599364572147367496437049901143603114730104912099340799318191303809007925706018929073243600667764861146325481456252127866998187237975432439809202021217827902800549221001546190473536940174398546600787995200177304366350044800133769034123342874727507034553837211685537114141253379569501248814254935027915607707774503231766428950884645558796640605468279487017431659567382201918482458928826741550450135760857648488399550034164465107843832972489687734689249969654501489671696738492311408616561840617709947596847762979093731055504793490247120182126412954848448987165196475923213556997641983238048914530848501351354723842636720176998002190314985599426931029253833367662305351718276732631488830009531429202436948671396412499030392408374110346516628559367201817932682691327392349018212504344013202594466104910539067910414823435607178388339359036171041005619810254662974011537275862884744307895606468970436475575237463904114646559673052882026059372580173844096015488501707713364103862372811437556647748375293017982276957752361707470123463433818837951185494987475974788438288943422520528167459813435502478378848505070416651583451655482785798583355552948435667111690298305092485273785392959559715936845446795861507075890087478123359971810042658197315908430244047475716433153474233911851798065572633901721391514362985088886243541211704135758596132169354809727764562648081551809940075385987008109703957688391116280755996804445390296022882063349283665832157340404523327590901906370501013446236504851644400870146563846722647311695471516971257391124889706838455649498292837643306572789669292960119230005313919707130546578246269033706956083046192295618655065061086563279004940519462644781979000548978656421736144531705988759242360743497937288209689312310865271295657625947613139574685556332661514077636864732920104571559501203539909614884243448038445320612538745915092831946945582113159427483622516763131614573609342764356060804416709950084398712284714443648814183532310510227878629517069991841328929270697739282780049493752733436994293338945567067687401897574908620904557538732664598592958820039642345346764588036845248159215718601761815559046183916104580563152064975548666765896538936213279005601675157726128659245064796317184756853834997987622834659405358000236324294429870498514531237923797563797873242044484017122083615797140430833589635738090171404512090017875323897554384174185215370267387227912937619756549591538745860188008509692400653055503261494178361587729951456420430109615622374151661501089886062207370732884212534162395157662602522422679329277835447841584830006898967005232128631877534531099124013122576657128213999117363243748320933799105356648506244053702663303779574181134159232096717083651533937993345235599795673787791929834731377396792483538130374508954433630328091531432709084875229516262796508589001337512988540989268693807776540604438886036968876399875832142634660312559575735806022287325971010817668850202070164539687991158668243844570438022403853607439691424153249610196094786014913119137100137954548467213365795614349724171838787309088714256859013406439212029266255064091739632982995987610713558270458736808109191223362043380328886121024042066225845535108832286508346315034435708578714981342819516075503078733744383891415374382072546727335593691841048832820869548126245674464771005992568407677886889397813654472117660763827196287174989841237493138547369156151577355402306076762028291915789645032675180875687287000912157120909738396973376468196463268102486917173957993322001460053505591202177495549195304449665008482644267504842420895761407737345223601915078695706230955112013121941981808299321216674584635693885000750771624090020662662761858190148743880189407489359383364099157412660728616162140259048983257207780869326016497718018711024911373996904941950716347985554995772918268975918015710425960419954321520378632582224791178598609515445145559065970990694825387531671283980177186694740107777263230133483407104486937276917772738015316154227524136330560258935522698552760378908900541002402431279407999439813370236934046653526743432118948094065512427419258619677200957022082983528222682547420770078759430943211336080736404203434429072253188050944331160586974450650828324321034221760915021187762839755694701179145658698664791232561861866397357944766900577763777361999990946249391022828525306062057135793332347550722965865375117371882680537850971936280027776983427117413646111022208432179670280633764934315722081340010774493415990107115283425809146077066127154573653462799144109208672636071861930260857530823536634574803487070153115611575392718871019705771564916622372130161169279214992617579689414368638418403776572568503405861321662307168736003136148276134535114691749137726509885307844692950720016741011592768233138802099735723858918008422446623297298048787619147669104121658050125760533346706221553250204005894518940015018786972276744921456119730399207628900512739150791489210900028086866166038042911861036451186117488852950774965266401003147358829851270523640481294021024238831550592617575444029388434206727569128146776876164447777643091354691547464831169001697543628638740855193319393339530497665471699490759688206474789012223544834408387294152554768433072712560107875955493483330103462387239893640056656268536263856860357655627454574246763856216299513814198061748558292446517888893015236051607146680372648819444291877742934727033162208687254970445629323878108570506713778989656093759424166291608055872867731841478035865699182904413511096382035340026360023437650789999650660191478779514538641215613718392302413011708211442830195355319300502326661034528548801568678584111366895339341864574224343016450683312982626913524096367852734924943534763211617108341671747194952271451713182301272279580682081077966010307219708866889120297257991300519904398019613631779357953217391955205459435966002514387597177874486694568010514812728632330986163870773273026346068691138057173016438849459662452525587382841848107611783083523962874255514638964317057367482802274627182481119888378560207840382112675491788804017578058197384897803352443348859576773416620488102989725401813023380821220220846966525990402540913155228063398437380279644564544115441380842273333505407269120442477320001363309980279830894462020022305249595275113631562301585356920343911302200839675207872127448661416768087693461057758792903645788486645573745204831956516871350260326549630859988301635804172033136504644930078389958315042722349340118708500242837500900741064889299300700447295229805134834902305750011330121056026417647941884124460431927542616705604290298576283210725612278426047292057098104336000132735437271127749217802380996980053711504759995878526297618508141976585368277167802791937264253226160952857456993424669635524577403817187857962738611899761090393571444955719372365672000096471571276593824388409590902283236730078185868234546406765095423819348383973773776562850471070137785706332843653115458606247467867668423562166644973162061438909238672354828202898443107015015987132908009107970769387763878583654043562303349653890204749849404415125531682195770785598050917450478466966306942771370454911644288539756270398754592622269754526688219367181383160052925040263369263739097908693259683000096542419153296701130629144913344971808790834772175171687510392532024485031331084279718316058276621392113786114376133522528269091809010069945818350117687427042554298174036535466344826686257901688958160914872935370739191795307404719697042181834425148491881891254880161475853510430253986951228112101402724784902038012137808612371710342758681406803897146976393401140457899368058741266722675706418759670255819781821221528462831218204882229200200001169630337566928371345357919487781196427989210445000906287033286102131001126766124950766164270571634297821616279048653466755847022907489881344694972562894978918050146010744883288768637609615734666048002505439295970558889036692845983252030159110635181562798888857951993188191891097190491287676192489339226582912763248957494349122869768565826490518459414514321540647962232859572413472388912058207760764311153734267894913300631115971555333488731925199515165458746645416959058760428735029884734924216057493927261904157872636933195092009368635558467859413615342737285908590854740794789455563836492763181597561640840743062550543498346441449847426278094155458095734935761669778364684826983926260086994253273536171619979012075595027809042859766189840119614020959031945360594905938673227165587107293779331873037205580165701481517681182319817476457460339034654391175475782916621978038938447060970779799023875721752179725268526099071429920012387268031459385647275670887964150150321911535232497791848359562689983914479940880866112413020667525417031648332181648803693152689922817387146936257645733968778526032106952054333994783991811831612822383706701134611594117490429767001819987399880469789238408421251794371588106601354450943939797061316097723771681806533940422979571204598760163537079348903718223776913682999142956891998341520972617782768874893867348216664082336366649054667870951382004020092166674068406111966029975079154367904292765148676244985219043160785195949508211477793444754989883902404975163685866877589299062084702318011172432872547230353072289229299797067872568743933900604815785067583866708361232724392245922619181313124080222451216831628653420738976540045003389282060909609161921899225181674386885230039689762292800496366983081952178795761251635923924404140824262313752845726362462278279565088378911166511585929660659084612277042124018369459494290938002109844211071728357099662291005845871165143313828508115270769580815977075455664500815019120705079754774034064116666644305991520176524989189682431775206550942627927306922409669677919219147242031581289782244301832908509684326190394410404633911330617675389503060297722881947520023512137559396936517611021176392939258488404144855924638616948619889991885450516227235094754731979084188308729159592939265219596034452820997843639678698972001017767635192019132149897094891988599320214779954713952831697268108928426654783080014205715637634473278194392815510270268873936991472424541835370241653802203371106568980325459729841271812583500315747062381747154816395087968066275453967758830741267381402609038219150978302994653767605612663809997662356476377968936600967890330739749529128635166161664979415880440182093754441631600296390520166506423417843356811996863601179715330382470377090089984414381296141617992936912062885464545104196406937403920439989499039979685338889738266797143266995558346708615439004191442917722727803017891768595505422166822520721220168444383576249704172333674926924113758541188617682084332586708745224784587360450588412011566140187812537991416470859498413788459385710381754402128529497289949192773197454748906412445481727420486464367398747655841387420491280614972204455835883187857304431026309617668275929102122984141829422968919933944846955687312530705690863875515146752637862997101104414280639833206336216924064056495087103655936557605123363459576782997331562345284939886948544226324656681843581893806764005303456501759074190616862717770265018092389138663427926885019152730658858152334108868024618487229106654261788416408226487060658350325805115283526198893075927006032554827507997991951817906503017354747083318158162193893633016056061140274863229625064274863162759243247725808134636056931465522729043281119173100177972548750138706059526943996257728459727141734288414122987619949874593690820886576817247648237465075163443695827360259813167774353661801277049007920191678200789250483493484452801401207814946558767979611094140292857807435300123485047736659873313227298129177705615345077984730179047818480274114983278247046815569265147869197576509148441869703479586472847920690906696823623990346599034490111456244537579680291706354162997687374782911370049935911228444790545137140655674465531363070248024582804571387586280950170230439373938030278021068784091315983404783471670633446520350940152488649882546311113047917226892693700911604497698900700261750775393503518423599400063470039566382366853630852075310259873063843189287618536546684135204187456759600521861326502446924386592443626612984924634471300175507528119396013327510447378636314358324207916606006147186394991830636556723798905277862812236713704385664386284232724626095855863357305760097779424857854160355733072996589245597651217097971323358854100133029728157990056127691934143029342446602810085661134486818790282096723323484538291807438214621661548033050242403120016984059608820255938584742485770278323171857238509262700154852207210850035332846574583328725239830996935547385518548625153373998667505066010794744114382653548029378201098237592818283403941694175229658282592857749876742365008286540960873907280671238939562865643705111031879129430202432539138116020513445072665742147968846616111196513572744218136683791104239882198536690864368638823424257053127140800377820677868106378661762825114098965237775176659693996482480279381517765021322694796714993935656332767556305973507139460352676621475982896114172132963076683433353451042634726070562999036229881861556718641970488543188005892801995449966410394418036231605218083968834589917670149722977467767322308050127393641926491955167955673532213615048105504208534520860760868650408780284022696240391228394008628260634447655205280068036351388647913774656729347049162319968020084816857072360566475423837452475798968301447492807551026685517308601673379752194934506390425671498890293455045884692851332138385352007687995968622248545623783866546957558886201239002985377047474601602040009854740304026971149605860104930014075393839865036028064977209523272505360450994097168972051175438629854523558194872386597229237763802816219310405227489565160047818773638163965933579687343717299163056734659835577831825886162976028622636078679155016163371630291202039608357049653583421236282115619042666605986585755571129825907967440170964327700441843305531388889180841908508100620757608745748492361873509069708738300268779665676444944895068384991356088818285223134007355917647007390768863965102468639819663262890515525868741746196884072242480364353409904621253827326330562837000593308413833764760131188950091880111804670146359469221025613619434722169891284294812888767947466436422936704030750671070508719085318714457512448807323092470816865235818985582680626517330520285650838484540522989961212928096963007944222633359346328986014072767934373889600563523725750996018162544757616477613923421290368744407045561533553839640384353222616322637230074207021504561623967052132844552542836335486593687788142600893159083354398681283453240862585104617039104181065314853199383769697214824403103014546917820814800080420571291412808074973989436538522766698635638819622031326673973764582631944201615936104003557508095284928934401359892190521304527116166543454184034792554927075270888795843077796636640624375982135793145863379045963790518893960641382484107363048079410741661239380118647331009082141761406260671415222813988341189784352699853772539432239142479415602813440537233130839313413886251795161555682688213835852645818159463182989773604863118122179080137738167880741524656488859288970403432156307378694982434404457678816981259817172545026669257145779481555503230577405556444964539658766889032386335628335934433363936592096333841696927384575535983440682724295824394472122729951221935722816559705172282965574254534423117352876457807516712416006364969153917389180278274349066374899022649835026248128267379176924623967614123117997715903464276054850802177715377543727478859905164886934787362528825673881872455606148833851078708197584911101483384764968850003147718372189978158540517914866455532983732577033432644799847601581962345417252971211403512409113197262034310296717803230459714351290090105301574382372540892440207608139658307706582045965728293262389747479009657007018793049569549792995472908810560486824643937508775259869583635725186801655881637717229626088747151592472315286082268892606863167997132214305944846284061743628853910477376503173407086821654916690908119628403492951875912994017592197190096382386396674947188352564552332848524435741705463131405504949298942385680096422903972628373690398949504468775912130173418540134842046561082170882466285330502911191842754612661443111506090682157502857186326707094923701431268488100806047475905215823063090058721541877906109839217787945174479622906216419116516305536606347301285692155306099973194628438657222189113892854873425375431056805995768382695121066915702163074643019213810973636499252989574269107409552478134276656712978378054308374432318134765815078406858385836077084882660426493483988547350365403868759998437654977969496229243434106524407602335013815933967267963342392011750500208443205210730958138807672918807967524955503149945970022343265289212322433573813018748875250576198169097124616649981070640211268768311224552484381209606576667208068159647605988718930162604307244457408411170930174745472925857800799626375838108252347002985560784011468294302300110738597478722666263212131271749154434288739421496464600827057382353558677171618746726371889686835571293199493813515173367425136824201307618078926613823558186735640895064264348432343500991600651661724939486328130863708269385561323005967121960967088700250057425419659587313694206360730040372613594104116504746046408929541874286455293217691659126983058752477193822202617570037227517456141632477001504380685603651666269463869034978804401944518131534435863008102067663630747319472000594510885030404522726142160454589081468689795214294667841883085018756638357698561599037925550673135168211698724154191505181999203395456428817231721298659839358676037265118484511530360218438619610762479149062169708008109840714437836002951100077755385971371646890039228194989793037887142621081757309787778181763268994882768389593571616359521580358970454281484141353750859984455397652271115539827701324350083464240793007316161377962334088811016081109124502682876642780714420246003044919634664357965338961892598037476847488078359535248780539216822912216617515143409816962629453714036659772570419887979405686639438959432461106140353621576056911908982717047884688695470866301001667077317804862841769108668559447499572872623955753297994086468141731689360754269238219308372131763028019467037490280710693525164538571465390040885101839727400562771027672519131951266216871321446452190783215185335815440897713281629508207977906962048108711415081583941827627189996613589473779476338893822992781285404614802154457272223974366327747218519653866702863963881816146960069007456326565717279320623104943616881433031542252464555751606952806543423550724008822247297461133187825422987540979164013385274362064369768192982220772631037711926960220033756654818385312584799710317188358688355479070111839416857566427095078067352820746000999067665346574951316768726908828306036598150157533631223776809691175735922806832793102084042954934753596556711228687991014987674341521039276353553357960147023677183608481280617730595182303878319672109690425262530885966526659333832091479772311478204233437467448948849326977314651385848277774226983512297503070722631602721110922783876086116274824090531442429344107509912400118643160147552043087119186471682328827525127989492390517240603075419543903615292294068207192066371063919301731024493635299250462881219890558989859099093142556825573744168931397169602418891665824543246184190385897625915057214243291089613622911956779477953728179974358907830280585075939280818465539683386120973663088976689811305955950655086513733318455376108318613341667355161675735966263574021831422761903993450188179577623692964622350957516476339762600108913472139886074107933825220480791309441311288059832835843475574555124699134090214156803700610409552323550653326716852146785001245767244608430780903147735564570427602581917969762268110927517014494900009112608448696982537689698083904837512335458286158900297581535840130916825285840895720451655825325733678154214756927305575159877770996847253575208452617557851353232822453234015078632535783922696463717525838965077169045839104503833514022618047280495095129319226976983854822718901391737570558647237184916545301089617320210553550952894783524349159339600540608839278791429709525683700469170168118214571277559847350484423304478402234626675528438433164067312521653364027147879285913700970692884586433396338090520365797899134608143981587642795586051578779601711895216140643024646842493320671255942642932828099412862606382152284643522990200569807532095074737612653375928559618734816885240937452878275976352397118805436021506040382480910438078283157278441942080361557391090083057142836839147334132328945627748825341315861420898715290986972031944980198934417533471675421970481711362257262483398277775569767185407815720125518423246855883778383265900928619003056494624467263194192238788672547740567475888491914152529482936213375396889368574555052628966631058470858029081788099677724786538637270130238126964714605663680661731354527626242871874216609682714899339126695228891670167608486986361224516790568052522738775051915441996622599726704212697664207477937386767892028788297479943021800402005779801516780303364432677899582532420285314751349948853621363978700087724836370227837121869197021935432842456590509001797041826330657468641063533617663931636078420432440893487296829441103904892171320205659963127449119912449182379224744747489088506448249047876606368178044766017592400362036158777432728310881166955295375880233645154691177370604611657186221851215866111407079985643024520667624189851114187594907171701141268357074269483810143916270971092097409572802002837634748174602177818484928303803013037479171998764738373207596062242124307952253638252065750334520097172773658787340449755966118147752458869902872898272434004548234838723720647158679124185929116889367951859356863017094555242043698635447685562091126099598095133064585408216490667661893810529351637245863573431223174425956432028991920635989752562051272670806887270878828278935023714227331620437345328624399421178284509175718697807423813776829698332824737582233602885965926643868791202297213361831112841629008412155704905551830035349730195217116478707586831674948798929652630364533994882166571858267917917737494915715676579721165177714528977847840121888380452289302655175394028553777523409107750748840201469690385726361845412066838657263970917365096870904150148726315422867160129869996764303114167302144690221950586169815475016154038048018925235830056906144966826977153710857595198211303204423725508524748360692587002457899555637137873621427930239874721406830965868416001709972251209993928255156074238569124471876745511718112650647332024222533912611442205429274762477399448915740102736318518044780466934747628000923761509776351593396906481628322904366300061831210928809482637211255048997559237023158293194765625569103798175532666418798922553002949059964222251185737788657851660208815744992186495189360506034218122043207117840474315483773893893241808215885125523037517456992368005102879888914020367386090802666955687184037945684514952085586976635371764093226684499369942435518724403582411054819585776379444645510844692429976969119716154625265254870017201737680110399181841664602322280836493873547838586117779300715146906188978358349871900778929545050014879168250167245917776963272529198671234506998662835519612371732475459710298593887358409415598584617753641602475684772605303690001631050833075957133178182337423008108201927677231273057392474222180723492588866601762615181213352551173047046013074671396315201061579139188629272825171593346003921945625780303542474805680909783562626889946713667877170109649387570810776777697848766197183946549004109183788988858627864013641268238610448375999968877984886270787133570943897195384037608042954894896278519615973198667563196511603709800428712542050764216773381069210130436604031718351704440529633961726744566567467913213993402067109685581342480078041931100960377736403241698215148055058508503232353526012876172444979947299442979829129199805512667828777740988686586477009868534840992219622525732257974983456970536490553446246450899234192026213558958212224814946830497048509095928326647368085912706515494393770304731838552036683041038398218362459263882261547288908183752356123788963650902216988734526194824444566475930727943906708499521456919051749368050692275618050111848693208934080989908830595124723951659716291359293190962570527237256029991929147684519920770250992863737956992150656633129710460955733653673745997475689261114174768050466337539162568184901431805138269692613589602714178061404417160632256166548079586802413258348758687644971298613267968705522466649852564162965187228764010141232565344940605641124787057323548185354226784594796242600504278103143636411569936355380388075417104848779877199721961508694816407907791457772055618329314827059580629958345939158821671849859742483063068208669979975134115984010820168566429516541029104974594516481618156504571870468525885121322880472713406874826747198067891101513618503285073650644939653284162358164937571955458098843894208191859555949279159772237355880499475241037087419285649018169636126982174423561995934745952952161457542322709136620427993552512175415627764286242108987916345015081876759732032267971168496029717599252935499023538885507758355931376702362347305216749936685293044838037620969030119587616386366230921572424717055069993302179345912497547247636801993748672623017467096131814176397341272143055523916154649044613755321006831821124456555856862899466854853410549723515344261613798851296754232377078293084341452129924449067329041285013964333823423334450436559932406597225397925974372618839780719552101616544374049954952653052166425582856026831223451118386436795543313094795587110573370624669484720516747263582152695545600540088730317531402756388279316545297896864482524162257250271974532725232156642051618402805786336053979472078112038815111549263758356916921240355524507024042503233765795089382162430409789513391686471355416608037283971315908644958493416594034337358732069505722570889898395273308585372085530097334598658675208807261426645861934880091428622887089131025622637132204594459594117740495965794459381370059421237005673877684680169700340599784921631305213652221578569051822528001867626509994008678071752175347871990618233895199443288094210367359271088327685173265630342319618698749867955353011843068712596365969572039465379500960110228097684909840355178849034931400113903668002996228068324805665090031514295953931995069285112180746056825561002764603685755126084797259621033810741106799633793059069862186961640553854083129309348914630818662768763747934982307880351784277007986432963511909057063160963743646637351815998370789942842973892097271670729057818992122280492319359310831524588329317846293673333140634742912659802585148448164260408404033077509490364753677334927852670338216393093949393716290169528167322449276897022746349411752585589196893233139063858001822134647094981274051278759346931165829199552387275834280371018008432936303077846710309640893986550745811581979368916043502224510890160501661779472954967897512568602378810545395212325726352934131867145636704952226892143193626720070103934600651026094080985813595057066906994901417672548675366599283165894206936523023647144025795615966713155413093832430148823487295643307425676895985516729495367561054195544903309908189216816085521974116535768043774674413097642869618864151573087969208031485888446894137498060618996564535556023903246018346940094996064257230363185386185901742271302994850949763969652935094508348620818399446080907406333607652411147689201109538119536241322008723548734436390426827731309394079373718756730653574546136384674360431394364763730881512469154095433304040316086675083982174006903339199525155704108517501284104596960381589337629295649186718879286158843737655658191351256993022591773916742475533196208006615229278961777616092617533715131064163883509515231348191514830559343321147633316465274553618965629864545754025539027070131413288425570396569244651329287039362937837835859531827913159200329501947850712541827438520644646465531013189942915176982601213096194358165008769243220032368191171334753006695999397207835032791520076823792200885669140079848949924860019552152873780114187639836232765997801643597582139636235375207226537174681980051757435876389238290828359943081533103414718598456710822282476596407072564865003953344168983664143212614290481701428668494147870514421477948775060121237311739526246838844446816802707570911841107475345997453565109591864683059447931038717801169927519470585890691645292385941755958272749632658345861734630900981468645799017244522718647218497604025676656796300073290849120156557406765100504237054225916595925903789287037539247001599691145098476765389549698082203265864882550590507300845327860598221326510611339739062374419399911799991463969920459060512044444716580336208611496437917990319154666571071235001257189278107521171953280126750949115807856089052371783623967423334244536574807492440782990678464325783672620832112271410318307147022860044162454970041933171817907560503178341266102687254293777125793848246747212902481464447392696353973850783474239192282561378199669677694250651881848194473338805070202049302145116716952722437343260853878282728295203461602287295910542709218808464345458405666389970690820269860802302211416365814314286829756259749951936837017792906204341819490148743951011837782443667896852990587372218784802760147848832877141239704200398579393267766310630084419426080638483879563083234737717875082412109568491710131956152402515615380094936245307061029449568365301677333586963191448147973737376387935799670225288444150953631803522509560668984416587870817955327937626910000909299068263132202914997690789403081184070022577889859680337575553526737633098606650402317541287295596313571529571735790316097876012752500885944619301524090353746331352967061681493837012573677611889175440525978888499395238302296239932218931132022925624208274458105974629641190470484311750018005275487782011877836054469107850434259528097121537249589603621976044357903616632180508627087805688470628084469964039492881497469368743619730969857927231264519327577943265543327734024501600656508564368420882251960689829167817861301707640715363278305815948208353805898179355750629412623215209770861477831639500370826808500447523518322753278631711122773428731016559271373581646796577937259042402946430714043001428067996260618806835239910284269952396793460952385997647349407714254457610986239607109480441338939682772226514956194499666323911293729169076593839325276103584388853667929242046670860460300556835462667322040569482715422532176276571409110127114340340115903855220013518092150801214628552910105169513843927762415372841213264122975329129332999225683313522501357750908071726491364757444715004687903458703059438042232101173243906844026106610627950581224639334277105482586584082419758591760122999189846524939966534571087602328753976742244410106792487027083953064831068695085736616537934203808811831066813836460776563307721976183985055765305436846015205408725807695961909628783805840517018486825511663083694776308847581078839742015772621915140304856587141795057554734205353117033136416723641722241380750540720946466366319794996784331693968285243306758352365606527839331546615101439079629614567673357973028345096513910376653878238955219588228550812002475610306425617817658676927720081867120135897651489896454565800849880547480502650285489768074223523574897363004981818121244504544910982492994778688655151942031745674084065937021414800013677520590786086843746066814504905131768863059973887240361469748099276324940264042190744186717702895441163335489047956203004252148928141624806577106732259569111269929009130738622460954441010988157966120264035070907139973586629179686915587357020794583787505222781678465295927018588442494647965060499636594157005792901200953362877825834490704174464770801278402004557562600569047179035599820546311964870653593000553680503790287582819530571448724449195759993495798620190236372313376580105390011846998867852745950233572025418068914547134634523670713345044911281715595740657446864641078987749003621762205673864905723997201278458600483718304391420749570946703507273142129750180125312306745052598446431239746756037039552017776119000294790785415666678296975059679343930409836489566903992800820892935067794804968250936747000437841206162579035690649418257176784030720655888424283199669956778276176792452433243531522776670095382090711209373408919232195511491640570987846243136455281302951674402786467184519575300669840475147755890601680738450210296443393672744637929251083894723880621443611236091022027017381275850526309874805107394248317953536937812985501731711814620771662455609097004390555268964749165899420670007962102236948365490965825528978385953771015093103320923730107625953051064537001554747683775256501817198385165774454934695059807911865489119349778624557053897041436066796019432200780898223062077475338900714079133773012763111241864967739848057887455249412504424594664874400021932020594214233912621518760141081833247311747730827608825241631335744119900678650914502869380483986315812672193163576498139939637668700191165299774627676789036427263265550439640161581774141296178064131194305448001198944460763174980600354339753719856425376021907013788562286539880182527677316721746686353377544076137494021767430703495877684221169566127607194599549225482982889930700263201420987057753907910536710107467226314724608940000405169311710080258834604096730378461068071811759353851562681578231884181187857837310617732367885142239647394043528831761427617266991286668514962139504265541636145192628297761019052645518287670249648414836271139891844058796749635825362912339489694198479903159695580214607595265407301951609726745687466713357227506293793394421009457636334066257788372231383524132863465870637149226180260098622271580533616825652352467603244168408064089608620453179657452979972726536437908881478909087002196741518822531493432203191229862541851663544461183478738696138749365619438739094950598112629545797136381190232681350889269208285066946677954550913989960179250930892276652864394616279190103689693527269835977426493902001344408950203326720408837322994700818440242630679932510128886558450116764368570227464281409825954874105536665127304775026858864883857367452399018832081645143345296631794637025330978650933241062060666754072426942696738877599204276582232829543116834691681419207230831045860295543818952725711445159517705993929601275288048209027400767447662210582728405252590631919292773190217038480640913722419032757807945187831542740736944631827902542966189460274477356079566807076470183524249473062211322690575712563954240660749427093637795165864659496924994033918174389020643114878265310862813701063378855146862304443117629984120663709907503313238285766278875459182443954701249608084089274002651964813083175145929452665158195486372697928497329963391146970534547564431781849372387618693816101065187527316306325326016456613900011186013490587324712584843784818434042772623723413403484743194909312544375235026760346226841316613043273171620843275208892112487068478304967980301894204768959543425046738717034169555944215538995166830827655642264498809522146094026113572967360169894804921911151087763761933368169733114713321112692531910860150709866115844058334187000726758685593605032587117532428307568991496562144238610040906613895870696160331435815375545154944981188583860983000395917717181450683790540058329012712209970481491006346141474608839661028649488095577508850751845474245763721484692298815973310625894578662608189119376285705651059288326811450468311962672787587911030253874518707633791708487039506749313297049911830295826862493093351092263090878165483226071408074186385487749802815374990595264128780893715292160156660733755681810106965042397894256858154929400417172277542917328094746862952352193393213461048944359467265358108886081736878818488430112000309417910578705173528680205728127779261382464695094575918467798856946736610976693671401272331780311152552485731515200557405670204915394569359862261180167179025129170682342622884189128402127176604185735077621150878672840169297133436584654441067441549309815697084499760770468503364265428261451546736222017565179448010524655030373030879971932224359909412920243296827821127828374698647264288460592041445648229536913834617102771857423618634253091255292311516578144070825036515065207208960920069292291496359307595633813508461233322652590982790662436130300049198109987814636741833463723498967439600637316932174482601468060179443245030143562194394922677700707148739717150632797138026704082247175643342828301952576054433463440805669483782251362127517395619971367326811793564489281543675221874435533476283398804867067725163691917133720870650940754695983152001420611998152606898992397207323753628362330225926646355259412531536698454806900383677279529980556950820172393963684459422350717427307661879086524321425690490928361937403766837628962104194521085829598633495996618960780331836160099876152962359463996658512142481898949677182609817054806755649979592497246804315675601945911550374725811931466092432513633139477712762877073755610023504091387344227342950927963024635105849036480244561589002071119524803604096120673107296224580898043761984434503021641149657427309807268576377580707426570464965283477840777528273418072824729268301919545833690660292608664790944829279731847931020029258323912790285581337338101038125479543391870757692942465068711831990630096631692658024056089713204007607716210275930883579905811491856410237587542089231258015880746170501848259076839453639807209966233064598487900156945008042000888610236318417498596895204246273097342718020002139853247134550996733888031879422341813826479089370654325825668536828281539027042673207065844298960740439215061002327893539974932240213455242891711453414252257371380495451373524862862609593348238618091620735009208072669224482726734958847621111038862357910630702461221055165110568261596400986446411382564905484042052224166088236911228236395008605944010271970181709787162738018873428169691085371473837513929351156704066954934133812451614357523661950464455792772210700235602796748947232745198372356750390471216142440243544565373353703721461988054708275099436309635408723473093005072801337515903080152947293257976034449946859360090704101077830932204315845309982564502223951161150899833206932484485770166567116778445744930046954803843493405088134532945458262417876115446064709193681817541428555925754097805968648581749454527746198524967746234113167105935683366679469547541345459466012008787283745539015525393691617425264574992879007318880418983797394281184550618607402372019911418365171140131434620029918160937335681568467314550787658323868915391661263759915307000331873793252361535053196912958370566717329941586343454020675584469862224186831018383284752235663978012443375397115850328469238987330611291983277113115977081153243095513592343986323342240204016287772567421438316156993846167457208869302665604346888917002965740579092337030153818590906972558756044820121304752978046482975415820566159979347588759276292435500158934558108446697009999108846786629398758060642034416400137784566591536703018140245965169852541641547825211526262290887548346719587305944323812644231793696267918631977616438904297807741301449377014543074599850357851233892422681440864585818560506024449189061507410309457933573940670076896290217333584311945210933895363940123196848048427787574486231889732531653192621163827717413952740839740965920511639462338917165586069863005230332290747341979108292948830377234803454263845006958871985129280643730815528997277168509618764323281134340332325290439705893190759660465039543170772228843386789124960989735755066158039414855035022075643234798065260675661931655458588789461240698875610536347159382985867936541290255492716880683170912280994478510755989203757017360477867263958958891618486742625376322637256631034726799295428157379357168411980407874922800440525136515823457786840047337452047057914908533002429220601195064990407290557177567888338743599722923477147172826408335924698921114231674580154134502401927356348276443242835450460611612869106941196050759679311750063582673639243808779427701171570762297991456195152786644986009925424670504117231268261203504230825160131375271043416489612100729211267156454103860483820571562063323555448635466101443310134395360852119522420779154324416830723720743239264897543829910963855446332760472145905045545524638075344069096723428876514397178853718310310904871021469832269987553770278868510194329613865529775123375815865323890480345391451781177784826464548087891857235469541248258597621880131780231227781166593327326466230560964322847332959233267650703963744669814708686879452674857000548391414762348493119731142533910232185456125460353327352625739099456259034482102199392760269279685141930657831845104601634933712053127900976383444161557456811286031092601710272376299430531103056883976778995653945685309152299987646521910587142634835326854118349662845154281835210402881292694553791063171218361156151781410398643553743038973957971271006746727618511394736486080331678685345653148234518898545403894159467880547004583008403910602712499874024225604375238729578735450777541965804708254365188519180213448576004624628082722691722602469957424577879064182169511430384135834420223787366312169548823964145825327416483248721596581997744026199790446458434453972464335302968569580287713854745428270223273515562283865507834209658827679262106165085786194400532656470434944811231776758461941401954901968137039000065424535342867213529195350556065976841664936817736690095171920368174707135564018909046229979925403836999635505250394725577830098164079457299058122348211423569555295234070778569235013392620024447178169040256071674391595281190394212231933679052141531642155312226628697719484466442011231839560597165397281857630661499239690597501655126522667049022498323992925175824793683586917929561149967992582108157342172145414333923107677428626981219329733385284887357059833946970975191470000315160178275309859647323335924313744112945681585089285203678585868005320795225790355694130007517488816135652053070017852664074787573189950509849011068976384195843001708023312273298948341129437828542183658876587800706571064629325948387873668221447036533604659726804539644634338905319355419797855268774160789408638402967587250376830783368574484962620514812118512136247567701506663722848620192229391561550289009802077281515673779619735802026638592817372467827960610666329385488975243977404483301158450990749116908018602166943942153671955248154810028390047431981593729739165872606791837794540446708643013949481343953890481989533986953661970553262301708565857003540014911748163477431900864792915885342042080349509582247926858597798453804800253676169716139442481311942250427777542588930992768198709012350947855013829553696918958449377801867900293972025048641170554491968931381720259669147302334272468857437178467917091054300574362204756400233018346451108784885072102429418530722238463213901546082509467377669880371356766970144152040390359611075626506471535377599457127097690378007340482383318278150524578964714677494952674184442011328298053039281548519507817333954723814338641186598526759684441871998152468773722364130552882573919129484924677068346240399457289209906629091725902069144637497040132632110136472138206311996968912313301812270628271953259167172901733929103576593405748019842358400780619967650506694317458727001304959975602220092760898451160997775023606010031208896493642908685215903131611658821161274543426778386640093309613207673217085719331474966681879472292899190876912214550578281000102385224542150207560770008725176358869834915158447051176931282985717180277627708201561912347940817957544311461299400339698213683097663661504249494145466656584039579653379452323479543406480231692648448138340881319955040834196349345432646556010779730901592712037431106150919659531650537939949184266437887128696232410896820080369163850308541628988591310923899150646131679753881165834205389721677315072442985471042015216897434690034712322338035539322334889565086632709561152929639713057690985949211160226541925783855823768084631512538495007084873402194903734811921811407164201272158493511838894681156724604588442966013138242065014820341724501527789149327555860470430051717872314150207555992855678403794069038103987920039852766837101925832406312879571822070973164577610877059657907517564755030199235837314368597794048831630665780224496826801301171323803492350200211333120522792831510117758717538614774136997278102126186346822311404763529019894341135323536848279805452527904209925265742965610815924748135895224288851724578388331118914779834114481070079153053659464034988076878814275982210530899965652660433327673019062707867417085541188438058447668780987620115166645691608290043850549452828442726033917409650921629903982092462684001732299448995789950390669407965911978127607579283598925797439702053966666248658921921872662965110765930370971172886241676961446439286135400320257677006904794095922038657890321426339515829941111935693366478790402087364956306992992616322962272885799414283325895458256145707820137817783077988243973822095845817333802221182208405582448928312392361762106649737484727955411544046828749134883853884589792456498381977073262459332463336821527257334058723063957787594003387508776242208099893293911000423457703334001395645498250209654831623131145503053431056523078919214990357461395355933782470197130209467483004344722405111441425297028857913068438807635108402784787557837421715596378482007200278323452597121416375235793821464855291926911731016495668070613058830593604892574009787550904933971667966325480232897245018779736000776921935178567136842157943492116309376272650693110711591547898561428905503036426820160805059666954166293343794338993557430235356567002615476301573211684925490420171444055198207476199593949116616042422521524841181918935245763796751943257727512896975895611073383886465287190364601667935596382209314679295132250385444050006594026737004381620521291374105687616255222754772615252737512831159974864936837811696730869673669976589027055389332786195318811091064618891755375438598922026449629009671661182936642934649003965627714213464154703688865334862501818148362311606014178050190575794617379795703314166358599919314664380830466359957377263939948828943175957010090869445533696093975364782037825702958270107265796942543364567159912251475302855799307968495616063414308957872295447643314222029458973734317600002002736477506764785729397931063999348900667929312028539616305074799979533634513257195114086577066158906746312243651506386931096748076905420885144129905199879862459784358014271934635381162400802257403247883762137836717135801824396457390049628139895249932707170355480419803307874919684672288177388764752071888597311444698856631224674142979726855088001757595134723548711652024955721078050567103736338388171167675107632540931787566811539272398761343994987221507764057818779447933197503503607325990337253100155417824612373051208645666114474645401493879083151843153325708243186193260314444720478086594141643980425786651002470573250870412688174112836353735279131864146640515702054892973465579345341640259893465785767051409747094945065778094480393978381688174477979534953733131803609693123917408470207725191876943338222114020251601386269918217301300719711269877837412206643579267762393780702755778213465935827748052675503758054581019978411385695184143827279897017915188917493064928955732440932350389367990181480648175426219734299255141017958819822122477732528781532467159683281670881327095931584138117545185573206780278397934427528548632543101611487902909035258912339921147560218342605785250995701825964982859645606910529909385150631250722424153410392626358875892229878553923242251842498758629180594661930726055321382544175046500708757848192695897934388165443292438093266662753068434962916447344256884082076189246938800183498625066289363522274674051360980232514228469165663671008585164879484529868480948820499072114813051258093228956185681817833098320086490885661891734697121048686422973911610124403318919659461222377230526037430625007534444821875600266406232994815057201789535096099103957420525502446522008903597863403916031779535799887750984187284030733675177407370006029727316445904376332038790023274019002937685141277728583144011346327321226381968323499873328521298810354056968005632352881450867825353523889051700618806106909191708144979056884978834344850420270912533253823701505841519868165223099110877313116231310536668628092786483253529988663359106925724395471525600511994900036725664471745505396929965902199711623027635646016144740916684365094059966935285405153743829087546548811925059401692068921156811592968139747461051711676214764905780511348403278271586426660568799581144125992013663618067572912417926417444334008512705158191773932264534304180504412673646010388480683881341626297069564198160260314219483191117201571867327478067566733859456126602527648873964456358064699923897704964587835745975055673477801228834535884028331383156978508831170266697452502195548342344982931770752634779362563013936127767589198401171922814639893572470260666708393266468595714716277319554018558836232963463060087906356624233988875868920344529436915524382345086433308916259264289954311136680402797084943303242729116722209523005718719399172838470587713304357052631389073202807951521387370274002185719504764082676179337943504119141955287672595121995506516293748829449111794262044997096485966108712747555164818045761974298121327476386064305318230426081172613971180107440262680991723502845489165554099127793594302324540040912844832988219097445448801077280611726633759871306265724168503972015784417249118310443822614354172822029106096445949657109252547927172872563083323412035763717170457271314253376276879067683628873661061167827820537221109483060872735051633403444990901333591123111011593209076928957960884214649996948038025190001092731897844316691529057730089875435903498250303446796129559720043123441094981056419673403687539632431848172252115025939657760160083257685607187718793137410875231030976748083895024100895006068899630316113299603807626225437449542381765323683932518863228619110194846686120674845412429240366719715000768469163361451693818662481508461432433155521272612977497626424975499482680708564837426939922341061915727063422165068857483129352088625748082704472513487246213176900225684079059323035944527752017045947422494694475897005654907361231833858636814250552805315668411170939703177711252435530539994901130873597995451775476054774997055571665999227202084096468837375281636673734190703064592576611730853723666024998235734549862226253529281637960352789137721598462941632469150800085855836747247789737266179571050497061567703262112783843095399442644258646013222947190242349925013141098084517289800371371372746347176380990807006547812557300590933810496873099303717285927213624689419691193111777863342697681426347491227598540945986848303428550901997314980777349808325786711450338896055174910451235390240270297576224314032660292314764392407736650189063912398928182503952321636002026031290725594583904357204929148012120465660432430741209354830769131335505995390527211215040016628956967177784104075705334357212591631486438087514370288528181912836132357353765266254632293159353478011660826065051973381678610105317786403711330888603620294965582899183304719761749426492199625568813648378449778791610059970492315399443124230062948869732233695007748621525090235038332781553136579704322073194700529517836240565322973565414148774378750692276991410546339506087335515484630160469763906592287627117308696364638260178302670165259333705471685527663616212539931793261816962061552565357896656269956268274664713380038380013763829081849037321722726138906467754564263842737350969118026717754016523957772023354531074876648489660660365823676660203121990850290241702448273157694206505581038973890493980640370528932400323109902593964618807574573354072606746035256843673071767531004098737938493810838251063450554024501274412677287976794183955423622882176369193554122723122893856892602706808983152622029347629493996115890701478155897517600410765445611386406287906531204518088112568424418071546406242227704332814401380409398482799276586805948737830513380240812753283003182530322988165140923698675496541381176959726718052406245430324628834880520284042751202464842946470999279374230577382119596029943782695965461439818255159938439481275428297239169333400935296863638051903751192472305551884193022328026359803788475205946396197846506662553767510857339585981954420486370356894855865173143578329880388870401781499638030338397978484957543862205599383420482766132775322993838031387769023430203783193653663655865717584645347736058489604098473771416588990853804155445236339348379950015320342542316271716259162084057819345983477920578591234696727392495875278092744325133346980730673498374407606320480854511035472149622946332122952118725441203646508912414786928230947004686719161587688083198855149790185642891695406404778103345171841713977357643577095455977568197890326954339197434809805627299413403594766631808680420093016452881217172103848048637095426946632800785827367020872065519449353418237304355415260895107302883648515641867813988565008512228380256355629104199495044014485892468800028861869324702785553159546308376745667330669104394724877125517994034554112347459048607980880138593642088461560748855751708678266638535524621491413940883845849918114141860802694938895529607970934788705164479454425060281850079411722372804536752973109221779715643775888741594525078663724563365400902943476655218246271266190061207459342982561443100495395261733370491583938925042325585699325280173196453580088633942401143896725544801881671928332324504047092279855742232931234353288308217848182401702994934837529582382254408367744493259587481579916653494692980053736324147589875116552446150678043556170318809235421087790047668828004515364641912954809420288095256180896099171882525713325088468149028228126990153983925781237232217685910923700240205535432862144411512819287065170337252352060498926053725221037963257963883221146610991422198322529819055568693888358079160636683353651333861644799841666925513750511978889233822800067583642628849734067412157096264552859133444352641879396213870333045699520810198366405908859796551166395306104299852073502268791495692238146369375946359718899420589144952195920655512789932863914399968941969965203262704814479596396879554318005260500344268124724110706891238094352421549322092501562340188927876499260628105785877569681184151851140752272140290960730394200438769511117670287292475741046222702466329707055643554226410390852416706079109368196514419708535518362203844840892089310119496576275406692943632156287097736380214681576466495353793946264588364752934307904918180099039250891541965344507940632197168573345463525368299388966481358858582551625506308005882808279322407975904696805617647434014558393273088894530136908163005155264719179371991371064919747128875525392144200194914998720559916341885008756922843501972762613799824433098111381571021106622530347749277696342006370537533839798635376516223795333246926135939796474807037781290337366679903203764755694976149171636114975332297171334938613532738411024031605762657607068068149460678101075251036204954489142493926719296356408566491895987380319259003066444900796987409527192315622432576205949658626233103885220393398707801128197523965161467097067576041717348087219864263278697999932489026550055648635594758501615976122124400968055274633244105497226661936361039555286148323246718207335862110276967700848473552265861404930023709004659902194742877162960821582692750144938237085776958606684642389808749421083464223432151484206776782718603870736386585984510455414532747951973717303304521300789263973445248119284720421856592890200950813602928494348239231150824018983030323244869583842068175032466879962165603390917750165976798817475282504880870145489689258518678058262216939572545738627617682227793037859591079736211888731839599150285572919041993819065370341717702343375041396172168208609596024257423663799933104930135289019005374473956046702756188964385311458460380314268069774988697862453175324238572564321345026175266570768708616949831871896855867750275344937601611907254286555868577737540470325528494303537108063614903028866263076422815592635174811914270459756819307120437153335781932578457945003279724089355195039275237732956136538762710846510643342581947585891199540925381007298074050299370047228200344195014705467820041246918039224084473023972846634395602708309579839938117346581252217603879893034859454976823206284214829054718011480797513122583745727653078752221936163252520925941485828958594368327993834413788827834015067796760791240726975503534056276474249445976352742301782060894784137175546345207045493998939015626002392892686601241232221044858193926762985342117345521762362228358106005481193739757891484945000737348071921623861637047712266968390125951097736324446391805944528087530839248813005398535671195412489834408568237241244604412593308342425591782008441271209530286934679893287443708900927568655012678431819379135396957549026625429303527474086418696586685045988782731065375290350623514619171054240276652015287700398380483359470221148628101496456696883827024598034397225704244820677177449084365473835235438735214081623854912359099966841461952471545818981806185240976004225091838795489320934305583534566865157420851002090250589417170715814054585771523787703321339408799843823513671658507698066150898123127856211877151321859728993196001921230398617447826832145280937794159208059777731086347887968164863683448711988715899046576565098356420720621242762431915081794762706773346096222941168400872561611436892089342589593167937222262902026856765205055404988657994327516086017246052751931736545377563433703140422587764659399810201279268442140530597911791137507727876102586837150847141430809951550307997955892106878231954797726539881534911954278182561777398242255819008765456223665490403539529150564578339506142434359589266216746958979573551253672193254536828733897796940991673941496789575824036488345636347032677091034150723699296428065262135382787899956140473081059508771999747794361766447696966872049584077243312804193813791975666931597643299465338176618035677477085998712858693242002621417768678921017888330435344998654256903326976469950704422796194281278417280701334136681626257571198252509831864747579434716190799539911300999775686500468909794338212000142632014366404104785318596364883918841952356720356719421789280185112258976083087576551228141119804297115751631371189456803178612627187449223185425117583381614439035495016389128300116242912678763769276355697249675064297980101915438367426963372485407812843828775605775371912357483369464132667640538486692064769123887816511692258543424703106723106157459919056511635576249862022473041503678246696337195389545939391470193648151007955864351610740907353705744327568146184578869781535549771303133404415130025854034305078097953653436159189379727401429187511885001183280214759515540314222441260413760527190780971003298399183907626373475836223700707787436887848856241998831949314864341027308925684962480451744759109142581544560844719722980579957259656163276301125258205111508508568361998626854832690369904147118224175888369697569510380983221643036291710664048479874922416958901010355248020864061634818146612963900534848821065150695032377394370667916756030566199846437407137782338089251118239996913907338291793227790460805384896431424575943131811715945159357410438770598883956616547291693690346734583326880123379831586137271016247124808096031521782674932273116919324178732428247346742377956612162371334272337541153574048908332280516818114808822408863084355500216048889022043696545356956386073277419755448527153182437693258042214494306473275810842650967781702977314361243035060643804788616321616981152312106687556232826546581874836813946571727866273385358895142714495784144604412083429489572736078158580324413525779656250960284724922805169241157035810934496837369407898026327419764684607908252030577917783101200739978385758874881507855573720669942938550101896283873029936811520648453718949095326730303285821380006917753568511195069856971737368159419318740703579453894214243053539682699382869960658135225518884291794697945453978186765938488413110898374803449568731660598852710471035692144789940462767740310791541001379583936340686693433993071209860591757186273647171720204134433284443623818625344141418668118603339871554324396036736419915379520240721722676736733816567285675335637437607081296430547803233988450699417436182045695692762348437078443996780290629066575886851325722779750581974223250876609469875746178154585657668437434215672904082244743201305617127881672793579498580449129272080840018766357644310447818726369273587675256792787703214427823857007810176659787837335894382724188343553374712866010437665318514565102378069111425978118416426838349777471290113926449371437168660497860155767276497789656754241395656387759359857755281817256284541862013694543090221891094489402819718379314045110354107897360652158485034987149922319660539292722953769338072276579777392945248059214087813099836627787280590040613146487850978819221182083350303753236746817657062204218935021313150379043485522999353357843717602006609305918860510292633255496915137519810085084491674276059536649529943976157032378135669761854338581784197258214508822023513602905173045602151487156850439374821562549650268419933284694381078137629613601325277410679712241414151546209272182508964164397662342394691209894206667313211476912708864315576751606980374382832489660262396716041789273692937905814811350312127697984653311529510394061682315194295529438405254761925842370307623537484511261078524859151146924940237449810450177701158316031063596801751217275649673922042686329540017642483921209576856840268798091499934993405666748210990450867962429120603206084309616336316939154247385099477019507407299650348805193556433686491859037622646066332069346938745635565556075020043229441899504977494926515380255401909170745246690087033096282060769099564699932571216924013741614720077366683978950746166725537486762657171015930113213828189046959636239190549671062111012672643573744420557162647937603994621611409706872247961787973903752010386803629510170039793192390805412471211165397890438080277739397299155079273605524650801424544673322615336750791811153301670462681929028843620533940045695195187912696902688630919374293994273616106031977949004833018796798850901700691767817403774110691953091535457172429855025274533109343665796655485337044537891000936017873358686124641903084843919101485078027125445965589695785241350336071087339465163867983758652081713944754555917162118616254579399918227582250931039082117908924334865126637727829677919103038245948690191244224726170968363341973744088159773917757192343140156804640881724094949427567032194157659790773972729620649828882133193687910826108608873325195880977275468322734082371674729337675068062302240554316046193769010977802999371224278979322178672256738966933157948330403976673150571604225460579660075090595380917272188543166989602864487434375953739810969733224455577547093680748568491179460547899151009599061167051612093081976328778362325495750286632347503367732882907488851724298974293816038601157417700309511758182459232465339813487300888045051249174153105139286384841904172702020409422989664620799490018920297353532768394392556939058286533030043327481895625323944629553555491563428925402473620417692341511512327659739831447234131400023831538129247065165533567914079161896914819931394618279568560757587381230731417017803240387172362187842076177202208661459358954528128458490397033179603909832116929553634753597841521828025496986751889285735585132705050885199413805884613500730177924422886734327636935104604393774078784163292603956680647749053116174208220953732448803257888834898415215973773541128362882717745412534028191497948710602722838149061058590898913206301670673905490913346856878037245756963056898153470873440052753469273477315305759148655491635837586561192464364509975008531123042713595652017482948057101474208544835342250342429162299832543213863862333974291498702626504340021533545872474350253674739118707527551071482461380958730085151156250640175852327997131332779284196943608836693165543076740301838922481793492820479699021131596953098214323110244491716100369297123527832003183345534564989645989893919628531623220788849501095144077804995867589974383542999533640979154485299875708918842944332482179559804160387703048120816412413192471442974252070006676569833426900931052661290358849052218656542858996112098877140950823995193982247246594144102538599562237083407007035189421796134219735386154038476656308949750429024372320763691396231650141344202090689139617921577703738283638904358527801041598093509775472408008264468653573965873753696188706047493428789116251648451434128515293542923205757967621310757825473435759782329378276836869766634611016571495582527856561214373421094884344803309878667534657523589128234887804553137185915797431767163573405383153229127736632612780689878982760974476845624197485513835865224022565065244338653425816401413289747862086994007538188964529894593307710061259965754534397594970342237944652073385601553923863567416547482315269148517017851611433157058871747190091969360046047096731102525556901086385960995555358934342623002903300762454984820279627906774897910105192913776172390459021698106530799187239318526211356284034636240586251521677800190943390524903434875390245686630468650302462093869757675387116281301152878938371444048505000431872845180856157838079944168957830540110300600115232126740995951627027212603041273408516728956171139155225544187818748842984409845017519685476015858213569862419532757447721327697516203615592076614778948764551008621329625097893737120151111134604987296862516694201633827759768503252539918006401879979842942107876019554262664594217691689061831787881173456238099475773908393451811163429591183748210150898985080769319649688202868057224642667968645823472277491835783635117360488862767120579288835446779301856650298204490690972471022009413482003675810297537071898899920867838315458543887601176728056955330639394808936985398154588783467629024854424980516338062861568204809329475072493741426425362299061185432807220457516450352724402832870493175304655046358953415968226386756735932266169400280958205101137746925539548875564813040536114346204616805826213824280410285773485426978607617698987254272141199092348258589754090240055596237034935285280364737737565466068892090560077134668214610582552296791353829773440313585367940328123362083387241498213890778827212763764910225719440085706569732892080675975833794191525198205114904224924279921161348844506666727599562607543012973414909380826986656748546321893899927817492041968167119572204083318745341086859454058684637199766186209672429835427897639413542401127413750342887157401758499263746923253335905790296576133338984800967494280349315139880915611396240987340184460962309732489875148111931356753345796801108944368640034976828221145992253789985440733107648972356299376736165129696463393235635610125706769726400572406790409383728275403874386740750928802872747997742491426217844585653300347576656888316981590935149554531436992172218000489980594435804204732505317702130170994262927565199951619711893284986244659747708761027211434590657404868268028731123673839663357989398980574414919272899770015617521588006744990379473191529629035965422457594046412907830807745418437921149227643352070171373593420331241420332751011282461072739004939775562453430771837979914093588065904970212641373062876940775636959737294075931011774189434258221738684992663612509825021150146360506554527649449693025274469552302990130733813402002714203741915643210053186626322044063247313267591696919436928085998708550589218803413013934049169038193362864045764298036402808904500449785135887840785381793406678755998789228390843426023842242801268649065297825597458315803410122844390635588468628121512709800278804989041573955699634081023982384796672908067182374827322943854568718510023621006969860324363603552987068080391366522502776337772594277549660585533164663209644608733152182736824431215308969390563428805637788412592191686577347272319483831084690074349808724408433389987345894880051729355856926872879121233714423358353743541963805893237601864489409509191501544275109284824354298958005616237460381694065726869623264291438947516871841184586530343410078001353556990434434232649539983653603690330671525686751528424801158568696538599280950737941915314750584311431553016844780756416687251152438460919644801781482167245236813934146023847522545898423650484186040421926023690451592226439437409733653922646995947233281976599542146609002914489427406254004099182596532501897284465230335556801459663123476005172184981409915936256408991486263197184302750387918109170612859092765182163950055262525490662767999770921434252900342463516406966128349038425590452558833512133814609577814894663202450291159729703510714529859484531394794853938318900098404700957726781495265526936050802705212055807986226198366699426201863726372369579554573796111294065723795948913642976413219630445395584675844595827064537060474417444878704241285431663806407810806527324012727001786781501754373955764714650929387619354740166730216717540886228196332172034537204869162085630570543709726917993330347710234993697469482615299349192204879951789899693176487573658464184658033432360866768930232168626690927885125373294372633755945067551316546049734667559433511321303769890889267287971282737389705863794721935778422725011591576029513699306143223821313667062591652833618421178525224919105862072311721904931947000227615447826982006426360643264856557734674829181872466022338623632777057011871494249415203130654787528501901021099980893253718561102511960594618230615104288661090429904895066909620372282876104853478597216185414878380025690920440414792773522700222384494947371007846550324272851705978781383671307419761643072208960782941749804973486059435972881744194065801020562300890991010423390755117921034229251888419992103671237997557119077207840334668484447772318408130581896997516434793346170251191127732151332732750782719580986670322709179340731870535559583932257588709280546385847341155737333151124520389275627383619723413409497581455053974974758053476503287818143144643339389205970040798434924339635497533179246254373248302850222121251611822368195114002687909524320563440268460924084846544203574154503713016894767131186196534057900076232303663990385532375751470446988322431858841156305532305646849009223664526819282278396707914270497771978430641796525711155331767072668452016849842176813842521670261961715791271583961904164737327288897150717386082800349589786701896176169294067459306581155529242469687011926235482859818654362478056533844571805679866247010997665427473138504563268416008949805398548585721030562847386848337922396125906944675801153901534359648619960042935800398262637029037092815125871345099029842705929268201765933347140547007515048767448641079848309837877583463720131895041629828119820045271979853786834706047302153760692746293681063090285461813306612529509219095196186404140947924103693424457662198286270890596295134887979511145624183006737452640085221766642388382158588199626590003133165771275179518497354279975976024610646959431218581346833328889556076530979951116589384610517316708975006427367197024456117649840150296944485905189448280120234678644752669102155373833592276806781673081631512926150428762774745639517507485074991576093861472947602435578305045335302072511173557844842162611573583372614077272128408674253958017793658580310665816580658614092357984105023418605572497566146356200741000065574284475326876712525945536293491193749703428016403660093052849643041477182058037160620270680141358624337706710671666562858385509919793068841909836816174447586080591362464988502416924947180654467913281147377606574265456380061169641326691866079405799559528901221315398558380430423579898386755942532117419708007751823928443475114172770046668627180638546770611663823192571350222498466141834129317214115341343821798666513448210703578440202543745391837261699073040492233047770032211794479570056702931104824394427956394325213208436376973441790032410324666798552795484900610667803737432591480391625833549600759587496431192557330702861625762861154031306473069793237901173001689081181870634535805466427988031266614831157159234571641172900819646092713374395575590418730808392747117029839415236726972524035749211839755215575334168496621504645705005914512561091107918151342278434629196232759247560189980302837511468484351027280802446705581106921090789722540164969236244798561459038984538822491164248823567007533898391280655028768587198111434831265251009171550586117355708038771227542648205929301441685001743042201531715659602549842973890646474573075398364106540451655775483620779707684317423054656424994096220036861127479469526630221122294036542405454442054343297366918235359006891967238857557300508604616281934675446942848226900381386992003820213384569234822834343535834903299337024145608039364100832355891275330003540284826101909803879501310419760816139471409743983460321979179709326134986397969121035241851797126502842151486933711129049064146999339421216967949482744271089646782371234527092980584506617895970250289238610389884687725265354420414447476647288137194796276605365666570170362426825979050315217280668107940932984392575578569000953339347357533852212325358369708660483820555530108694965948812734811294979513655971333055234519915983266139269885375035591517970599078413368719529042198097827630402512882572361659409090720133277516388145727505525937549261524100596788021438279638087085602944526781796176860800535235800702296318596031447277539431601791722192029010849049886594446103875988525649153687395771299907015666965806833133478478824768241025135392255287804617829983320559850932812090385765858901001442176827525115738779782780882274629983977546262422815934836509052119938089821493960236289346821451104179218119545642830606987156124580764851441459740585861449222230247501538420998859286723961157467053661102648347365307813905048301403055248402950276644650481174097526185224776315878695486133330712961957408107585792810140985890630759343316116062180394553419360463889568782305349631250895886958897705949040128879669654456046391215415002999125760194701717936579648262211536196244230132843878975343849006951306242645041415397880335477102469104912685220751969882296931709995259284889700619068363165827458291652919341364184617967488490817031030895124933484467664012648557907321705770118788217480813129545560385504351684926583432539506858747804832740402378775467136412473964554626447738992918332829106901411513334780734696327649114110043117823643898800611618137877521309501521773011550259317221363988775448174367609904358471618339691904504088634046833290345592277538611578595926539889242421217534767983753407798830401160550363546538900815218506665003184759655258012213878801138635170689275311032885076560760227728304502247306796997815826890914498959655563349402416764250286859087120482565466398346724266342621186518175448149276598607955034924302389381596611041916945613906234096274758088050080707538166413340454306256684752647398125920939186708880057352732291497047776754144920238864335522429039528668925696429257800209306816170896205656762794346713380679429114557967727133954255556839643199543106842769681438525726817082836444475474775154426517915225138110843197927917832317992657721391897071737356028783294106037282226659869504194509193087809461045092317133571534226691851220890611525012208529485794481803475154744565093685581710817008385797554019271026985103117925199930415902063740700714885335613829034554036997754228799140559114713543935685614435629428530114435102793174251068328333879609993815301716597669819585544076725638559368787950708148734189244203440774643941657066018342110857244441549523351021442800805126563014183170531761689238152006356857039847550393438714350875781793405983866416608798008367858102416097879428798068581678555554131813635411739292991458009150167398396333515651634987332223782246918909985287051982534872265157895197115080653985273657888206784157121620737782882944649379425363769835290291193668319592154210658472260614607411261311879111170766622794350649667803147149926344455697506057061371125057697460956668630366902698881233996143217721830872190807335199221625232440908552686245907095068680215796980399761446579025439555759166713254431552868358905397264223614659382600860508538770512812972438489331773356571983594808869310598164561854831393822119736011872775157116166774205885200606412183349313564055429254833431275511228016632048829674823418726056963074758800894143531577570467111160071776675081675686292035351998474112289430863021569170372689238578728939915090006054156650000903462841222106706263097101920973233324709677837635021514957076639316731872889095478843743239839931840232857157276655416760538219085984918826805889944616826975593245647255097408055807557028297862472599684169466821949577546013776937669349684413500841791888128541164317453731379589788400585012933631912826218272349669895145208154929039403179937701248018522154120137347651425139373759261086401648850842825379374770996588434170270773538977880224324751513968808280237029182560837024949520905106446955901138588353759046944949476327904781481942864553274210528760070511083072595677690495101067468260050743788363319549570759426805753561989495033578908404912073016320976234432057320916551866626449118756460675436655170453560480076271781559585888592979595909963359904847278035428344856571408535080333131866048870634875119053656704683331073679568398316673986485282273244534215724459794581267137735275617004531305272838938300106467818574917412714317607379164528759226771227644130292774396141291581509704188613839037708821790983013837461969964570482720200882142945318949389759215925275756157109531241153134561019478235129034468239796598051488818617608032743883347710653307981076246612373177823065598205336423441938844560103839619409016523040953829008913942983563587182762181449924811328988957863908791900524175391614413886606190247246747299242381880061377825088379206782855309199076976518346198671950638304271164427730981233371909741219955048055005508765544766823606178925347355308426251669487390203858097794100582165800042385584308692070010973470146059026062631118092767749748356999929855833756755682419520384986991130757499167599113655364112888609707898260622109801467529391699027549220538165518937810722414894437014310325907139011512790804730917445479962822399683830956041174206413980169485908482884794862708973117296574537538950945005618667584564721010784867035749015151911507634703230199905717315463867631232327174639600420071886499714452532958437507978593172523923360749147405768494110956141062420723094738335048302249888038855431500733477111635324248982174596221043403073807704607689481289416136410303219081095929427034648879029625318874385774944298924584353050930401386262321025134617025358188304993625873065707033061853858025451895764569408709862893037974500285552454693200868075237869855481051402348643295102072163194343418663919075195128000941815178092101753132082179949068935810720481421458024319657258541877452271444733419300558181226605011785417871169429612919922939784548013491328176648637374609882161113338449204385672736801590854469259536486450771339034674985212686788804263043068159568054103889186467940016615087188096190661992204848550098538509285119801522623180996461104920249218882683296485221319218185722672976232293847027760124156112885007626230880060392589330795203350006418567011139265111405176320769455251869642925548555657005375757895360513705901671208943485937798902913927544067999571761610146862237884973866616492195109202559827290626112933158811226888629574933706233668410637869014977634682562452564245087404263637022770901374834585961622244473787527039057394813974175497802322355940241734491213675323845264041553261504548679356782406748497591798730492476345391828079365401949358489328350931570154229474373123342640978495139245669052245161807261309334087306792239110384397408552639488897967517745460145299107180719316562136494926028679967010471695244954064492077703262925476935882303908692708441514547796472094090416815413981749110794412890386566254977615321045083167356056231861574681609115819860714060152350664315410119832369807654622315736279702821594123754364447280058357490381329689344241393813793725203905098206108038072059244215327160569269086466564504220261227774259792883015006936417839397704687155271441137517579609481303654929969473940771633712254564775574612059181826902059421848747374263993681234385270755206771588968112601633376358734067834830825560930154189407562715786227275988755130356021845998212002959343158139182286386892606211808871010510964948834727438566015566950712525802226631701500228032414838889229676267844092087082220123057000287259628928561883599010361043329281799315161554752887320290332915825287377102195891609057113191175019099628891972050942266038567639892512283860240937803796951594255565451105528011142150633009057792291479906554238958898973186980072640731480112609666733438901339716736363144819556919530602320845182509677158855739873792730767592251160861203060217790056279524253553902823467309054669388524776464456623946803815735565088015741148066494170941100938044684071188423815140285904635331851286381716558879017503364039966071552190058862072450485746922763436205081944564086911683863848566632518529673556847347312479828596629883949541539810972801707744660092466110269058656636421736668040280719181255780854746166998671552321832400827747837987109867044146605308117084661099829941449560228939889599383610345521069655436952632340084970362601445194902749801726619298397599770306088467866503734131535772538187632505365617749131111394256835869032578671997760879455606200691602733383345578345324967323805435432145356772664460112091914203336767487141028030967223892373887615829580191237271798021918430008968945679936683302399945376087530085852075049275907608117230724040326809678232374840500820379278064083335130391377890368637390629739647052534837780580975158655641598685945880531647851194618529944287587163392481387481032936683922420252478599647116720156988255890814678718939044916397921501163727842262648655795163852778605689602830779092061979603605919186743931916920455079469828902985686453015683050181154323575555116363303796390190570710908177834298077030968501355407946140886596124661438700906927630561494340619999838524436272135027661392271989678704257156833972445621562747577826057625593464793497605120686496517919638123023179576883075462170056263263480827914641822431809882538365578631716469504508366482789773133165097725306191615221350433104871659120517614549837300285606835727198220153844014462071456902373232901291057527959190356320871692103416676090448747727428650989589968612448308087303753942727325025589140787764221401161375901021385373369194714291757778619263472944481167704451266865863233012360128400308047919415316288959356462114024920397092798161201258182560005334154143714074336707851057674266967648966147922830510727584061162288848263603528396395213951811904248993598259641852922276498476754762075942873555619949153005477130386720606136741114572204285976350579180208828580198312034403611800579102532782828280831564622823495752206481240347780304752725612604295369050926513657900057925264443953893559475355218770359355668143799461137500052197877714391613880235801363959664132311108508757324918038235596367444959968755377919008223197996659902410548478127369290565458845148309482379063975204164768373831753192379613836267101453853820831166583864105965983414225854410849791908646102248357320281667500658139381583703604988669992292042110586735672994415449357186232462514482058795328446745302870644883499944668526331605225352185039140151509150286988469086260352082227981941067600321064826904359107533222450064174209411085716589229704471811085376063761835676217099598511008097710198385785098473774451998883711975064594314891923205085714763468409202648322564099824382742791779205920723940940026434987258024445098947690739329802105874104993377836375834522975801569421615686489451960887015090169880894864843338988730682642145940688193872234893975157410093111321124265022700241203681618017699383056376921387285513049491540505663776181621451479162202763658733060730197220176608228143095868485320354635621282059436979483569846364034511520625687389710745145633292138921875713978100714589149520443730622905372383829210074681384017078088906395735408487302125448607985181735178043340949299877305828306765845451706850051738701178561218998498083993153452555463902602040553306066930920739764832628261017206265007541380186507168756851797965502524353718672289917921371054027090862850361340727075991056260473344300552945737933460553559009076440826393392802135778479953345876338539015242351103203105781147911072274729451776589754721521116429347134667229947342750024438860062156933446463451021594906047046710450731216363626643669371354199025069900019435884274900282142764764234805830251948291284328273396664541544139878907308324989699071078580489768811135579003545625374695322282385996452990069987423212582657783440607769686650671481386251435108094778634443084463267760758331188095997666695791715455194448449394337541500687378260220092717913669365960885555991973761890794394360051619919484190708384990715780104913795367687531209457767272057611627288508929864394821686634584075649310949852192108861662313289002840347740873530698371743744633908638928329102747536818144710784131413581224760244808893106165815539941871405639807883550440290061968932392417920388371710787575297431812855011622233877585640931825598073831767485052258780082362005841411571681775955455533141599551740826582312333669793334271303411684081391904323074601968407220550407468079025009136929344818851822599597665469750731895682368885417546820441066141432222755744328955289721639328827493180911837735138234275710183157999101228705060693582304394812619886809335185596202840383408524222575100476626668174081471737209360142211310995103246632114883106448571016663978221060002754671166659713993689407779565046374271690629777801305719247847204086217765024726023647960646192283301497079879145870301144822930602075422069979178234374920587683064476454804535312246335104227457391153482142244241096574703058887647981863366402129387814817294033049328761006762454047211070623191117698266214335263589286537331119519399087887099346871291792953621126406365326596661318140285137644772472918212754751694719349466308185536910028402555036641905700965837939918153563662641929286513691797984769430224968811775423489839891830895167009303583936874660505282059064545374239667326780902597446397649647858284863315995505618720563884370833816048703314427229668259296724503419054645694387363850569530859730138856968258699289493850501323648023213249548895486422414733289100865605101302764397887407227443142802642097013037015222303377304922437176780475329548046123563721769082300045923456014139304825505507646830682228350232974833606796108478237348755351225167872630486316638904222332100178682336895428725837418625509593173466515607896979537062807345453678047137404008016197665705019885485280545531281504767138714535204077158537492792224410556115975090684458631076634227306222710665955529342033811028028819851470596362199295136098707483137627645272730038462897588336671426571557674070740239416804624554759100752748483191928533410804966900370496930067895441052566818000500136601369215622118119455777397763772972446319698877399828685037682656511436042434730290211486854472188787964131485042497498065487200408758921205265092240651645641658182246688320016854793655062153884589023684599807597365239042702937572989083159477314238190300308038477100186290174278575963791515820068310515958364372535601884868503456050009305526154733619232522624439411156846110886647302868479900237390790698381300610997794245997651189287865254254260705591147042318137805748787505947042533319514475651257948138746994149082136157200949929987626739531045471614483382195433676010600167425731013059033670862236159842958959835216206389328020363619123045577040979197923266956573735186900100432267969321821136089312195222047946277586750344213546942612938034596078236894442251280165016537211340465728217252856567440243083331266143894822706778601056123564726506438275510572506358743060320103775331011547050827185972018003921713083205818164967465598662704309097212411402873660101025059861833453485723034204079564286190311368904051743091506074372511525207320584107156139529415825975786612442349296951513973121486054871713032860314200852898213487074127943811045945868350064147348159788059308607151733714701758787020550506046100684554116152831236407505695279306645524369277082623920199663095634775935587283879940559114926346808352571200927378463404841882491022410890838608883810872766623092670033533536230544818382210454842255445909570744899563373458817272974116600343916989600164562490013237097384413399884527447426202451078874867260657153720569602121049385465314414624863123327423377558468726408760074852884518159907402784704232667056084620102801854297448105791576682455152229234878680682966653119947433141750225306359662317212636983340458111913469063341961674969923699014373442031353716985404127377157903199581453433254804203987670592267151223023740956896641735022742997328537147995496645612502858253998381207531044812651026401340714592044177415556835465862802759150988381268626522096305178024917636690721590561913754075746364184950441015235879968005532137585472483043057798621416803420802869072635325756633110427287208249323596854306551025547218133539458638915360071779065359518607454715559056108922745174681296954460976326699791419347265365270491859931955133447534655631919678722214458179450490314471281469341835880505598345153910466377002823638243145428091602909967962972032098736947991408807074709105548674842081750028937066896200706992696723608448554131300545361741248466004921897689182690066627787872355501712632784273685690495947552303747578288779598592995602254556771269655741566008835179285382850904099401995753692961373780939222930255487386844800576696813493500964045592167245878382281482605988597540074609686761002846973451680193018142483496892937014290733812557593942128531228528265868203308933160902165038198152789910697586396067081684123839419455375760275419321299894811113396419868429486892156502915891240955457623293848441920747155267875729569243428054362033777754048886767172109413493078237903129390941471161887466563034499119367574545945246289246592054422998447088839091947069717878094656143291280215464137709442014961627040372136907208245787357717033395690687829899007456600490875911148038369669994650325471834670680736135965939260757292844642043893672432289110292020140296341302177093154245103884375978323837109418838337135432357839455942198960036024445721477275310062422502047669281819556214370088686590027589670090244021968351247252056982722896397941611822401344054213261738609522400505990161892835475042627197808797721562831332432670636840006820375323639088011215587980364576278566129965015783286444171212497898884790916450683809542000457849114541221345619881878887140699307171831165429567087211064778285965922858903160174469702026384734629274608174395945975180846944825668285111749661505613411382072767166216920697371561953966740227260676830647510970923885991121162146044815713182657406573716346024786225012028851634471844255551355127304664578928132588769051288019672544876298004008258585682346345847198916591042714545495864206730796934626279940394763646673953461743820885462418080086919638358931186898096513673499412401792535795317769804398120887664125559376808529720212975174792046556429322716859253106427863227204494926122380504695630840861887540442876399966176433440345178079332576668390797314016308158604455299720812579382914827780785142020767311536677707789808984477965404748888756340837557608629153000883391850058761020801331080295221952127064571439771522228269430586787727238940253443693114948455142795671925425019321195004085311833035545137067556989642526341943890584333832923298417867364704676973612727866497038131614612196501283712612843840812388449755386026644996550626566322209346965633010536146038716266182351439246342667257064673831778120909603911851620289408122699866535790347267060238947202126708479969671327155037702080720081157531930034176525451426023021464252369396022756628751948353176815048803701980516923189407740717115145092274129943685790425423491717667224123258130308774402652568395801116207229974589114268038520943913996392557704952783456035743977703320802989534488462992131974192242163326572975883455858543213256417032979329504494983433079303394969078252228472071355981477092616808354741793472410113578976224413883394078504645762430632325288850960999903843530148021266568793548177263677189439777076461982972350475420716111483595036935257320338979877493272600792165444400079862455350409197257232701463699207501070261177120410074358963947355724435204769939078736378756292095493437262578560128737937987847709301510702310125742778365645568851577298893926933820495396329505763715273075773838266744001288766772276097082713490143444042523361880609167298126719084285572336379231468350819253256212414286845698296065915205328408626210158542433434986428076353691004939672681180648082491163645699598331032751752246616081251868440927504392021765115428064192926862934861401480973798297848788273318266969875260506527265572864389323858367489948357511455651545622137864598568534227933338036010229813033325249728307494642281075304270609405622998965457355761104580107477458520581899606223705224590470675819892524935802138416438002592341530417851605963670232280888067345340988451683132281841150070652241379108495981975557684839158534366579069753282979528283897988076608929112332330541198121060907688685799169426682712353530980905109493369212360613747417118090477275498168124044444885458391964098752340752688530015411335406995585789774585738493592080707798110061360855334820935288102841466069002493677811772752070873835457172916756203821403491259522556186739461553526540973914448050984296719031717566110863600841694384106670926024296729486971311973246698008997622577874253335579301253214584811643237879802258387971963237795418941551987795002290245855093615675598093349126444971442538665222883059532221340663098284336394149873628396824604815157479641195920559069049182760873994313664973128723072447132192307575402944301354166488821016238361132677946885174360812573392168419101340531515093891628681716420200489664391890139365383888300260966902218217481676940218723039287917544701179777341403782467087554269129827505673423830504612089149753032936525862739577613277025326039653602561606575164723854580759834410301590970792698402863120376790714682596040943043444967586308855172607568479305464938235025013523046061278361512468308814021985242384618333881430964844743624238511609429010292323667642776624565124779281799503495988299063791041167816920172102851274553634657051184575932085826359633283173932706416460931241590993331221471037254637656282661082990894912400568223884047849903822367826351734218435750191595325178391899001384413572084792382347391481808988059390215262970697640030220264455254059984723522518680134333883253900359523216159519941291794107063548339456337928006445426975679596328813348606761844403772734474657331480935518185185453376327976326203275305845318622851908409238968110818720063898978235609940137217545181656421605355416120921418715088768530929422807986027732008673519088161781430274657360216572988358441009081315016757436033451847433482784472074390807676924834323064034684824844367070336207383895788715891749759600187893903473566427597337701495725884726235753394245049081227211258921445279046933568137725644271819883170813738342471511968326950501055152059283857408952013646705661601185887604301662036661309477487461547211758241829705469168443251580979746357767721456387904215197297924586884489432832105006810960593740304858887973513951242409042489124270512087630355787776934750151104572283647671165919764805649757441963960369069507688775022736070561647602976883946571218905667757021414135541993092068751839045743845397638028372065092105952905060969030200444094716499453570096186229717987968782640271364871298625043278647598558196918009367941994250820782041013762335797895653213169409934302331678563560276538818170529096864791795453165535520762143235085295510200942226860836175646382128388838776251195568831220691404401903348693081340478704337882416512503640925065528810401196767937094105281594778797951046638596854714329797637591935578215033658815683382097663204220558978014922710801980740665048187800902005015757701547576929577384283268449787069389810081906516717691871601016204607122741532357547186228860892912542768157713614642269873335824724186562716632608097185365058620328475444986300208672306483269678250058051372192366881453924684304464143847043242108356525968011161134901017321180360958728066519402749369256241172979969242275830566300756657521923992760708570773975666213190607618946663732087619073482118870419251325410007751573624926515951383231519053167547782861767109555450285042478105458040526586136196829996476513801675705423666072932576815262339650345509199852501177708133145725725451547704067688406647679541635632518812064644162257443072996987163535273384393130611583648330378522223057629321311013904879885033394893406738918592230316787169313143693974286879663621503085602954068679565267212541674352981708439823136399367652117412445281334004234128369697294811080961249835889553237961475359490377807422208434128256026611587887341024218912670358654675399890448129326904724461899128811688285136147292057106102129785230922218285725506871628592584485499812061871922629097353034258011096196839654269783251385564819765995889166240897621190790018164496130574319098915888990231451809852542753315789989819481716590976130618996497312346000155663152778225797429776880362211887917675817788442221361248023690972365780084085329057628291088551374637178556657803911892240484320801071944049676209241896179960098877509602444259910681415954658575172246897025023111527129373349065754887083229356397924314667185469362940002124306754712684896692186337120994101212743897189454986000147751224988183037717379246298329857495960256653579809384759900971070519334401754351027399677556001624945686399524023806861800515397247455146066083025074577122708082555910418707939683550885584494043366489379899407604868936471267018680861825579884289432763673225816209443789500269160387461347030135708181606108079039599752908780831553862021561961718343207245245865071406138957814798462279274495722373179641002229768619578740377554475305016870358358533720484540832734766443875451537181046492143812437084128354279269771329239346289674597720669910764340085158180024804478287626922573130242374543971860657798153552286077824214647043121448300931306367529765410734135647776821878746101886142729800006887035426946504916129237240365350503911904880731849927106893937284653278341290162015991551554335689775943878675663066890895762009844830949001299267716005724600670351205492875250514703674386090199330235228781491291024782877567814870469064770249926865438135260084703799000436288563499922988427416213169118717581143135989320165872368698626813629571033247582183747881904756170847268099511980349878566834532821709793402768727447083721781173974477822111382159590655546323062939359233586511865721371225422248543691635007651118632910200151020651981517397025794923539302855746954255709788928997238414601386699365029499233003624227550166077684370343890681532516837869551598469587150055837206581585260374675421534871682254441481375643319344490079130708115866115953430283294462522154436375600406234075931449158055488956039762855905934036314507175539544538899345868087928178138064065632864626341202484866731402727667182967640657479322414253562214371819002544054866466082403178274121383218509807997591384644940280561253917670331541895432369302688087078856216047512349877329748950168000062534600339266048375007158814120535286332949280286215722273962289760632410119159369520346457892297120641338074547747041185611242719315364442808648429966080032874539479061823765602366672224700706290251482138227256601187260549063932162286878650965225832630045866812108367712886720974470049745257654432307315855556195212807672836364291401518583739241990609941399090725085836919706816629118274713427273262989559340413939059376172016334596282775422442364365690716175586482488865172556198867178641265290996793590226063797396841708030649083075788122303543063083977677579625826543433319599028295126920252984391467222837109166655284100969605086627100833685805086815857326887905860870004077392605471003236893183468836682262664391244549388903970636843080724153018088254079271178794798529348692006147760770335846405516732939942417032089129209903432806652846372134768189840265402142855655461573807960349095764341447916997262478533314169618975685072827227213543809695550805572359655314869942909387786836494482901964792360096119685571589450876178705130800701635315462636818040620578500041854236589324168287319277331615975313843630472727648671258292299711858056668140143054527662630902289949555248235013739789233818856460530488373332387725369667429477062160697615053548215664830758722659793192008451908995080319909470795227972813261083144808479258451031541039845974448112529019127712001348925972663054796064186905634098364031039493696798391622788860573384583835989720764775838952888829915196415049305773400847666610937656734646613168315536531648190519884392118224560209899640561313505192999853920912041888343751342967271080264159518311806488149969461111733169969941234889754447885324864117503983450976194671854635804795928698604804221556439189016578604303062362191583176501892603505574947118995348631754013328761331163711364276836534202521993423655885789082707799557809431119698498818952136508380628594422533331436459806956660231433245894994129708565944526054275825746478317285705663182462973284806826822746359186367947264951075403564438433457358170109556656304682068251310135275613645401528093911629643286591904406435886525276688846325608972845071675769678164089622243001199304577356998728793151333949790136270065030959064198862003147810417507075928244808399447022105160457682408851561109616276154699159534517481579519931233220104966203946165639649822740257482632734875070797395358728878649843051393878690903257289297017191823868395186325961443480347795916079839656633862781757109945101923216518586053071078655249560289025307297039465383693685577921798014771369680082039523093106291839302107166505445063544537221080556435965846413618994664344832808720593261412778141215856375441999528366706139749059653118299550179564959170001074876802659913088894868627721835948130252837616366120494170802072724881035166683088122031904555578577105501869500852515941283245577793225348623551420955552351971887539867187761160695201925429435795904812763356437016044351284681916155198425092866775038597254874123382474058664096398651654193254502754897059015103504302950924607588182724158870677213397467334609593190303744269361819887570456685180212625452294016086257422227487989312911450106476100071698456814017458190752134290249706317339508905220019821719421304908782144397011882735087335580814546310199798457615753498115986782423409903484290745469665135437061215501538049667017730499941684343179343634200691485046669471858076417077830517200681097839510707862546597504043371000589865447448128416918148211098087898741048484412142427870271507977944752967866919852453615708975514393318876893311239932840906718055599653199784206536633954247219899174562571335583103354284029502578341575796339639208828782491178039209597787981506840009295562601155161211435416035403399131869898761853152614141867179829399983206602847585644877148475430209754641818171453364639584741247645083970301829972386068628999141246519157225065396660417316146026707945429023085965162035851362870942560483045440637709390003841316827418230473439280231020225751502904370240380796812058543864224826077948571085365647556960795220693012624569617874476623402082547483890188790894744395584969797784008247379078043031808323097135255442203806264319972349566917915343997478076445386881099575040893776424532148716378846222758422799430039629354175803835112800739040042892553058530479472921095976311456226872976267716201337921277138832567691715329228155657345095598601773024283919098068390485540227874945963835671985470892229659203155469088088953238587557147125878199607445403277665391940742021519636295284459716983493552279757946776650640646520196145975131352970082160447777437893412788294872086394261919438028099799166255434894989559363858392236136079393112152992456627417182422197635085157379341248570395423541766261930740219555223949745393913667028273913240841618004342575776283172010627614669377120734948832008997976744896520187022770683125458226559633738446542218375441090762287351832298948116368979594584980142203025915746748766681627866515727972726492690473015146265442120130563825465223320011182456396459311217200377682470432297128700577213132592374989697035626475999463775672958289459439266578491152570633039811635614994878660523948670983626910761395270858951632644035479410621256037483771933981109574560792711382701211494340113743833888876748154432193749988625739240063811248036433661142947257198504691109019005807493131413919479966716585936599382366818768270998869932524714916729824253489074905379695935466599268740721541283591637460549315952958887352851393261872923445250464334787586409778545143474983406856594269654442217172554979490072963671021357262743019972325769565959129066565739213433542311146824688398345752648060644357177024349458942022025411460139990420723095616055685130235036714891901356812925411620826104428569656339345046956858508416357180117042307472643798276053127901244407818778183027011689018915270734803687564522760886516385359830541585026997569551141055260546578471743957833447728997798718584667516613559532846263486529455496185572351729925918691640079056043300525844257220318910055691201624787374107331080994531483769936041314119249779599214276547686017419742925640573748997582225247268502035117082060632525053398180240756514029397814136401217534619157773528955410498298401425180200757004749647359365631460012478683572251349194983343074779926060654847467479091852838577833815270664013859175620700817228403641148288691759988102158695481823177675379832293450799136135568179975815701643667645854433837680400006019904559231279485809152868494084544947296667580399096853886177815352454980663338186332231504011210750161772684317296678899270162424988555749014731443509937121919288468179984144240887655227784433831351792354612864975859278073105740884360778189913547566438292400427227993992481548020951594962238907037471362894907659015274416045286946883886928299220333106724200172282702634768174629854988508310596385826208095525132541403547117900633737579343019570474197687619138943574332288194463277953310195493319744320099872785347496617560489217563215055358446629956082944682232784321567529760291388892351274007408751416702200189625342073746992381417958151402113836421019353042720030965991418078998772584771776422783836168767749649480222229312269167651262600273783089463747690325866978346319897593633246068302316937947527487565045555442715399524122032068585071542137444399628389546747071119408248227694259941234318683752186679636102358205519054445371040921788929658568899163532801234742379330656841105313172241617787687631808995997547041851341320779957053075071834695659190547643039510269057484798156736146404324776602491995687857842364241008937497767508163303160160093542315500810935585375121958637249515805552480215449015944955815247960458890463099713072962791524033043910984030611455997286749918427221467308598830626353656478843276190040940450112515957594067159443251995425595013209240479225466999763487390786984352101150719706592279323201275366916276998741718350138596581955311019805147655816532630373591138143587240248525337889780107890668227007892472036850897335752790154972899670549849912592012787857243129358183203884732276774839775965789651806709872787759419524349912881288912637224454813341207622285177889088302580003996360898329562055989628754569266857705573440229758785896248739367526843590401631556933414598254924620726053961703626691859933438886319449161445016062386263965659956904713156560793498413419525267772083623776433504046714943878774754398475389253631354202453159377003211938338390703649548070537147874403376353770907836900058160227692016745029713040031209670244860740330351779732626751674233302926085165048754800251824631995003764296036873208134813308672107527419415977697190393727563455447250429728184045801501523050563949440198525001149743741375571629705173734345728193037450645721167287078303619067975452151595987469856366653028842732618240029570346837756132081561272061544270736478385060111531515765620577222296552564246471541211008786892757202391239290166442353449021543212883855308497917596909103086158406982047689170251278140077845139783890258894815363683772357399033732573554870979897512110399353881236782102953222538112332797007706730421032366036866224732790409043772468242028537913963450354522310418356461132884315555303849865560279616899329368283530570779291926917435640068951910689791690194046983874890173658054562159685034266132279953068532240189648826324200799470755573674764143038519044464991843110503574420368105354300004817164020105453648426405018340503135620913723152799982331506441843046416510612135941758942224634605482761939089093363189120323919541876113330743213613219644917334472003153836219542966020703491344266004369851529175835118574185065223545562070159002151283869892844129166025295955789934180492595015174067680506329840155594758326251400385380546437620018143738801191152088575919689843279482574216000357437107946297233402229546957182470101975681053052920843257171631149165990664189146071446195433344455810153451687855583925037891415654099676690549198731844285163121371888067613166508783667224396945220818542320332823429467934407930241448709813078103427662448956037435867705614344043296207599533518309558643010290914382843037998880741747153616309462841071503471906123983556817315124546002382553834259383411212000196968638557264195147416066009961020915869294732435174107983209219324996545701448194731862373664550403746348798637636384610124053125629176318618592007873581668598590532928121931700499723418201037149401228033596316339298415264253865361571576218949240920872756632488315268553426893881130164724024350726812022209677190604192056682889552067992306077832877834987102065956667412328368891820951924123396216267500466419000929151359147440945371890191420890764527927853150218451426299735029216592953283250654234181320288971069405384680345463199466300917251507048711659426893317645002875626396232683258321257941336980921751853758130700731892995904571157380586114880711637468137917572334585702088712174139616874789645762266779559888956291526934350269205781838374532457256172361151706262849293779873336059628472421932090394307887944647517975156203389504700904812605709159916879851008796537235188155954705468382207889369854032239336005907232429278799667450461073691839029801794935330748339548263206004433050108703474046959730138829070261177406814070064882355102322104890843655663423648001418083427754611237527280725418343381924101796942520038354154796615956269566841841364700281503966626456410451911549536898913498254871010515851985292354815811459763842795984670330402456799649950147888010258237773776902073191337109895922686994641298060387307067036202996064710611131749508891839609650078734467517841232178508013492464238253186298768981778185675314439153315174861506674591433453265364313390293893063912578931971966899572534868144121225966835043287299355192199237629571064401617821654696436455100863587298315909285684395478406447960647260092018644024522199105807216738520009056438081593516515130898123631861417991154328033895436531243500385878432509241543907124272654467600556768058511825705808248889582036622041132930300448131341964865390191532681236683241262443300784246729216369622512778319819410680505047193988160572230139388836792458016477302040207475033771603422325910321066837492228888469806835038233809055699177395588742832823692520598949904712540694948576748038249945775812167080609900129302796382354705123667203939136750708546972816475646891279528073640591356051851223186408156149585396180772692233313219745782671011749913854849833656390808545444581872575293243972283561640974650737947322271145502532279388719879813693871902791442606284784362676288932586600137055089117114859304096152375086640768563775733819966333701884533309333881075195203719704291338192411099525370603365353917894148390195851839110069618789265206812120936879142693214547803680657357307995814686286977184018395870717347832240537357402590210821186458535960108769560828379667629693166145682557263080582146100364521856178758740197687815062580888425870541539882699267770305458268843228002620906118906250725965012177188706444064259444028696287955862991079108116430569588985900565692271518222666130600580683471938211677487255538408449338603661380999522090472011076755005231998614633373487804004553854410583814027304322602428469678410641712064130602412981709025457294247310265474997880185471991990566771745641415442572230750242995928364293458059572823246960805325720947213543098834845338623092678869117880034860660770168839719107124037623494296667715074312607077452771984461016713526412769666428595316668658719176349533262481594754696043810773534158667042148935033564259271760036378579062863609313121846432869514712767842815667717443302310455544001341548868545575356574252618621335037788165229461274687783480328136727122255136888161876513817394529147861674522979028271580547474235877022970124895331942518384089733260186047273965945571567131712869621850076657469013129758861694917843170132821016644034979042277144661967571721425607781204699225733446010173614384714934333058530762247735946414515131878662933720078782788215914564919284877621724453697947557876596824217697038415863021965808924985272830393315387084773522483339653534722340933251343822215026576148599536132364061191955646186048026114596896767569181358969714726240249330711646426563181587613243545297135778960283064569509677545696440918265828948231039976190776154111952087296026381156264592357940535732155257311004760265369221068344025205832706806053828438218346452239174888978834392293305374627237508990044720365060387581235798720271544861422702988766612755250418667072553656608072668122327389656693801035066141008935459731307870677726221251566555089042326646643761873080134245586420745248903218545847825051961822327177238297156669502814518997398924226699979095373421319520919413668841093909680416611807973743061074505273559543547873890549087389504346674521825671741115150838395713082975745611397580221530654436845884308772277014848066041538989061131064260739457352948538059331577512429275309776151701575467472243816181021756212481108128187823818656207487164106342652219514153719213882609464819814067569412388630177475269372886666810420372385303722298658198717489949096752008813360412588045147690269150794489937738858205353625693076500758598211016250082273683519725844857813861137250452921947219555119772571849946802906903774240384258706498438568597631941206574230325432161165861737112311382500225220170803391641723914233717990798684112721551935920087709251564781137416968592766135993386243228060690182817405644019880583228020227783517797750476291535101315925370830601391310685327193623478749841684468029420142501707320013239305087928215538166488919756613134004179512967811914912325590593033088811864707479376820885719846960120073088069892599014175051870901726554496314697952974333924860660634471167623204257798401428247555675986233555193146998129861625941902007664626975092777523105096807360831787589324761633255093757976598048382332581832133113376511582986664630015496832698163139313929069908226169903874005329362693392857559734360757668437612104399588018853536822571685039264496529242042015927485595046618395074482495261798997560646780711024447557450329978155320497605949509474356248758644251805449944824287109518308395338720867013893140426849623630913068325866403564388030683263340333328819720626958131695998942153320259531012817084594485520574849848495943591600049383303803834128780617034492354671844882802039246164568123923684802999023632200038915835544385794971255306404340296119030805341511855677510571271587616861498499687864820574756565495718442987469847036166129728715835404057286237995296391121340581716922370179598212562180200575882804631862328435290894511666034566706932455934800728063245762192753210009868881689448595096032698083069178729216135372805593183897331429679807438144529776835258200992470173050027840663216129599014474850950580825478179895696329192103116390564283163444347424857549418786372200076039116768976506381952776530247025419016413195933247674198620883068134112943151060444252483606274790432373292706685997599307188734676227046107050006467568692553478467269919820021313793469730384926503664007766695744152674860053483250336003491586636464345186006181071702745175599038066045618184790591169984792935349047130131150525519397201088057423376979323335299756535889959291875908705541586096358622164631319450024233689928770740572923176439608735770279789656877978729490887835146690148481977148957204895964746755935276386193106296201818326726602300628605547855260972190085523225306552429961956377885767405970568971902661301464395043847676722753812902889296232042815269105090064428831231960872345413159288654240215355201547128071776708722413498822817560048097727712807971479945954358205812579348502353162481245687001308824946967388745154500283086726658446613977936096529860465098212762179507781598899794456675066554014487174397454422138224742276068690776055127274155643623882807204345425305072807925349226815008445308820263235154595438040352416550641238623242713099998069426164808476080859625174156669756698772859590365520162060990274911895334219016921275174497482709283049248717876031330805381696430829254611812038584508996120554589473048774015333095033215518691435121986535147686312883888978261517537831554705020662024629093445504190091781652422878593767689036635012986751795528580258857509984052417497257903611759221348198552154222632766621087823781260498405137747418446836301812662025462036170838867371370838302283413169349826798819427496274180196682741977019325432269362093822959463605035488084222201664608880478048392565827627798599261977219609135480333764963320132983978269375760710130298013278407611291319333481648202047027707913131897702862635177883841148859033573565528257290722755994910990533495264729752540460219037360452353677266912031731067035307336630765875924709870920287231727875651530102939821867173359276932821486342526395047121655630676459744538292470457410351443368802311066934254991281618765098791989269828441799660976622189210321649590612965337668830869413694632338208261524155372060632148852441706274961037449900508020525466657737617058189119456861370514269784825288300162541389282690853401666624813821421849559049329114683755859118972865860419005969038985942775864475525997054378606855243227799909286144507492262418815959618810328398900733452119002042455468633989590529313845677343873113297989846977008453209687660645043481233611443073339399352915145439562692256957531699763302918491442491295529767391849552427666450885073022473639702158765014622330536708057254536743128598853760768398726788060023284789339569157147668621723526876731342531275422289119152946888896466320097997381660696322471446242699839322415011046318597325952191196930208991316851252137424087751101209010062697578643922170657655111200124409550624234904017684694840365607799492829267149803035813570211165541512340781711389556924807721304839893291226887248579453052764623047814491134854429890895633560248868493153747606166116881166781586310017021615816078370447306292115616799950221273445937397753685262000015371460890680846043539568909357124811074914255958746161718797523557522053995995840719382330673745959632943111098665589048337897070760511632650506726958999393446792125161225083296030664356149739278671171808631468176767552567260235121809086914495525364715403312903317243445820588203170109491482332273341496435328204922130447432523977604287876167944459891334421448007799648166359783009058366452445187121681301854222582977852546013432398172660351337740625382504816983853642248202716403034463476953400828361956000685070212582201701519183982600113651332565773173138374427506176492577672196094030477236293761420511135559231486076487035831799116859795501976035230737397097344822985435689579125170553589437015087739851698399824970253461354785191659633129483643446184369985220737983320184256808920763410198755359728196480500648859501424693064410126179846003726732441443185107305396024221147543049669094060311035944558323242356899576235551329871204345107271889423478116629577899538048216582536965463533368163798449553384551486788444026955544464509963065223351763218847859099874862624959848008194352717509770238394621754080326652896880967420677858265878041456572994896449093960147739661176144271892887744592000818456279730520470634347401097836106468772719669788170319539306649205476375980838011879922162940191414125775000368892595871521629125891161617124621052715132084719802035093089499111903643781084333099567030740188226266596389348274859536648245814240294446716336747019839555991592606970644542818219989677017708282815938795602874707606428332916877446740069474711546904483058172851449461562501140539832028526836262207655774304431321991182017464634814904043737037248309748874198152296852830731572400696072590132925068730480014749504755217233828801286975199066595639186431424621134878706713327334397821330517786582437677689432587852550863622915213498527656213701247738536790979013917269092916584518127889078937985191299304868668572703598459792139942127163126646054511092269730001397400633226304664381730957132039548751912743880210845873499138521947509373982294886335615287489212968008089185873119718340073502339930442723541761936518251168432357842068628950959300948054683233272258523116050445021066991936821449964774755227210134808140746586005313243732914717097358322969710417641779095254867191919256788671141806569310205145589024139304418347176637110245613102263145192714870317706820966838907347083184970977443184757607729414739733748210799616490956153536290278330227415394252892482477151991458174035760597382050553091494765751310540341686523764202236517912990827633577395929988981183897548124133715297568841618648187545508909101047125793610558307175874129520003833950467105907905335515520202143533147189435876696069163554577419619184632243153227301344271174767406519197739797085713310642787639851592357715658760375154977756617359793188740343348327369935892945645759398097862833201205594115368339218163594173352393611004999715689141410701200593423784528446158657868102502026521501797025134003307315260276911019885531925008771339042236259480898264361416836340895610776139623221703338816034533281235318832956643849014784558864246965328506722575259054895445888773405049240115330752953299928572125941611139571544345167383538353084296372438517681397349538768166980790392986233663751945193773273315080939932532870315412103987826278425342654075095670604661053004474766010512096313406121361108757821598650372977438482668779087828369625074983907103620013212764004906896651998375655632471314794405071600209920985645474841547260438422063282806267346507976587802873739330249246885966716055597318554411471919386738733119840573877750797074242601581452228532180292660303936405826890135612039884322133301572563152409705534832632052932731761694048982287199319195038446749753944618303686694428576827042942661239179880588877275133208247724311450911112791776857235885020646727081107298756802779314487974059868077295319437416762691285694980964158060871167805167981147536480073814467749126607741660319602441896355306853956441633031485213536766519613718909780526155845015213262292050429804236587889994419289884014375032366316142133632790022713088764186649315195884527156227495856515281143814905959735605998696522365104796467374458452623498766018133621881920718796915125120247862011236292237899961179580747672046703689958069823767235251213058963481489593197093457532710026472391794185706383472185173161067376775836572719447309998214216743154237609060820767205576928244399208356132325281222092920031524813942525356466110233799722781010123582642351683796631315289704046810861298583898649956764116692986100850564930063025406624058408875826057136304752072425342473659050586734451544043117033866483763276139482340322092008492149706420456494089557706819154037568781573869266377452877185496245888544637322593636733502107056407180314071495046108808271892044647552920206450036953681937005428799870486151211820385243537039709664182889780460172070659789326300454535674753085833955432898271643898812600475058845417284734894668529612546563771859051679910531175513678709540482277622792178513318051080683268901105686497254740173579889931532445301441926214945257876061032520559116229409473758820609560631638248318172002915404217639879994325112476034682506057964673631055250522062974338386989950764835226733791781341856659601931401446583065768245295726281074984604181643755824025435221798967547257358671260218283162016481952430677916625382248740438076799700460892487353680093419131073422784519359161885352938958680197620577920373854498643896264132464505202159596125469533604244243040074123133074876110014586324710991516568787540486991110595958550124630071744640586545458697920025754781420383161388005119785913394590408174730460299194705211955749474907842361083984040141010277874343717484468971587742448242392295161584512139083504186296201283325026060165801848309389085059833874879407748270416732966867452400681800441783290730231209762497195246525025479144250633205086738198359172445453415018431156098502426960707699444624430972229989674900167375000878783604723632443072897074674420304705059451147957265867940061043899643513958354667474280348324641048742794590457221769431621723483692273194272421120849170362247188149617781614390497397203045140071027165880944360463358948358756851635766003342500071830882784042998583215010986222093889653514550577316636002471889785189134383003533471672027123758771006027437417465305103053963344551718722590137754155515689605343670955366690881179620782654355652727018176452888303180437900135115706987145745484510598152029651629862242848955827200188513089360164422482952263236536011987175306272974447465396804570223283629137140123370759059528311700274906007589633916145593461968319297502562014994996554841637971068209587926654637691018900601445443113517796498736133567963648510578886215206639518983184699656700581676084630324386659601315330511866810380656182278613898851627788301880380741825208369268584911441387732940156187438086974284114382438941641342436735100216979345291983349314422786849034315575730213905636929101922059874978077209281360683083710011063783695667284715570370447050414324805408292609773260212169581904396720554206601333975563608721735310446243248735109228200712610007759404690526966379182798959235987596126245123711106775437870245062372820489459782207410951923965226786123402933051049605190191983536753036826115592283178537919858765715834777467123691479356556009138014273571811083622648591371329390213462629906384757995341626616578255718145641952482933238492828688831598772545890918827497265709532123485351845185080856052558031047055480702623827716511324384673057324348373733720261157720007744949149868327413887306404254684420781363146519630246148342725718698847346966617814929848420898110445354647352932694205137900313651745786686118814901129201768013354155571036889123597714391775289812136400001069242280437198071415113778550219163431580261369870881078191439953697963033253542905838986598921962193055345278621812825324901352742509582431835808996027399716752320213412253037062796892392457204498640123980595302846461199847871529482253547092137357974739708078433217309845600925825799999801730306623751502579994173236943795582187816280323361302643350138326070950703755947465744483796559342582566988394803450845192876334040685301833180635853244910234467590347376250309748411294152666441308526015462335061246049268457158659244137362134920095929946642192204463107785049989975118686848191972087537354351926990901324130209967683200417501905030993622527374259922196618913039902019480639865515365725548970099570268307132382097823658723906278333701765998736628208575538645297818707329774613804124579905585301359307737353084713296306381798363884059280872065518687078047110519677921898649931374201974075223679745069058229912810383728756435565125163347117296704484830160830137526114180825198455506453787478611140172965147002371463368020158055701514730707734930793199770087959452907937845373465809253326672326813091417755215773431262260482346348424122496804691059127436204893374812189848559816660533469079721638891285669610476708135630265381437888967601091838371796127393570512548562819724343395435676781618554710749876578202977735725762571323442180310085955520664757640518726731800648994217152521817992336012353086091250947626868006371950048343583152190944883764845235469807290930604630833593986552060874170541555797555585005648100268110884049018334741597028720683933320526780605656574037819394200303047169452001360277699593829609057403934038428804537235716896129181028318588899360814105554054138551760290170889822899457742287437671739744429107528061133730166225156620181893122198303082000768821616756967584858769707194335507838249212980528466547481095829318584481558983424820080655943104560531039755906219655772658866625765899718546766635483307398179195985612145884920455322949150349401103656276625950661255709605527432282325042251584959180211249874395040109049258058147183058053060372696952411390418798559832407585197272880251029535924018923028617654143897252984545980000545681156250605284280952559865076197265512319553171451780767041428751612315023265455283402003438928502287429362288161454632390910872290984895425101178255577542991712439842243239030999869798903114998596343468068218732287668931690610031776252808216160371813024428096390341787789546115443450642326587975641642642686803481188837916112744295802925456499765246245992473468364896704839821698040173366457425582387715301380507638312249625848782526793647151891663100401255446614870032546741138961865367137787462050131549853596063260362943686456922323630360991247589138551003533054888027619114470760928150724523146850167974635170554299023322246603150449145087511648740992199338586710246408962870840550658262678117062077914184341576371141242857398768693956262061552329580965818271257684712178964903406382493516693968026128946847917739466260267801939892269779300515363150584569578503888429828289030928990682460872663419177635238683456464970585759953755975353970178286052927817579611796317978459723360984824601492952020000796896827246016564762425170309832215444812298799686597335845218726511365631358874621160402007411413918241941559620033640439315714091185869390658027003104722058582930770847775186386908796760685036134157513933974281019207088081693221889851776427834568958963644753786490692425284294342473560755946970830508949235298288900970898446275810748763591635635572899086593612089402178679255183509952072215389535925845281629436834732388390628734208852298108980504107201639497119942514045221628218531954809976891342873512168469592235379069125830658371275342364782915618289426236660854977364913899577503725542079493486175553923219988752732328793303013102224020360769417757812880766616223062501308383714380301260099810072478461915148833389418480417347854520359561209146962814257167985649386779834720202217625398485758183428970836612559800895484580362474223367573284662478855046767473350009468655691194488070651381637819328229458712244270206141124603985863057589338104324960550835638599586843641198767026931149595706434573553137795789889058587856041013087260730137238963686067877224760738630505900856336977955046212522859549429400068649415233991831538807922383363614491671557040659979686589473288994819562671030189938066212002317347736655016110233679631671439467890608438827664230192635837096827898463537260468636763216870001007688755282960504836631464996851594907297064317074001965437648191114633486798270844073963946697868283608518205082483607926744220734156911998661336835449478809960996926388232537739054344199558922127183492353723287408157609133659557672615422234780407438929620023984768110096127068410959704842473531111488372428028235175635359424407730230554015644376142992510645356136185936757839297779600846526276324434650202077985964430060748682120249100992196296413063916719625620943465939741935759144290246354003155117058911902659727341535824312835515923174252246192897087711940443484606143089185885275784504084942343714871076022986249239402621428118604580700645646753147420232698806913438136948245134874794834338485140488133497450369495843966969417038744631825186542555736590463680075779872744668035720059681642256168670822082968400653409173759861227745050052494233322235274179375279958005254457453991501182515450038088309377746880897103562871350080478012030593294267851694539481498042370539644790432708113778699788890841667879167488277937175417326070644669129866355740934308713824643043446386661861923154130496039548958868170697969515866352017410401000513215054024078212972775680079976728590468513510458717560832156163190037342702473496838894462809137002402883024166297264711289170268856143489913790364884425557468764450512290619072933675980371106309483872356383528687329787164652463487598543597607042634698799868034623620874643605782182263970847103193775454474965777527692815902791367463450942809721673886797635435205100402843917086424057617416967308873677393324297647937928206307857002009651525202954678273039261794562901069035253994252872613972461869766771257459659883058693280219664667906746067414141911982198826794964506236328497658154501147239212914282670846204093925418973796332781400980225564272489795163871622507772980630068797132119670595120078107904317817405251393796760035827006663613528817612959957516094969710030722393630178111974794976380421987070980878835676682407948962497984658021954212213073697268968632514606200985703581966659432486553125610424133211830928842290189605823261861210484810162262073467340145913028438913408458901343268392946399086867957455459247541895554857389433554475514050523231541475301273198981979063436727647371347859451655556132439382161609696110070678307995780043601759597398512143660320936686171371563581993965182099487010946634997302580161629290191300267027389708960519099055023602918745698997044996822964297457343065285192325681588745310201523075262024935588838181848713637220358012083588522627953447044511814862514372316263248056910379777188939473517863933102026072931507566408149431598869823414778185328536506711989717377849134205586049379675613409021065463886004620021987410512903274927957126667304886896541228813511176689438917849029291865570611007171714876136431548231151118870757430054678807712299841556675967794532995110415326702019290332886362803803369437074360570421058665838529902401584969065094434108095712052212081042438960117177408070697329071628482621742184859012762478653803188096493672419560436378659569801254407837271282976821558113227467970579736203650592477472062636988787374914026412448066176664659404223845736282280019348476292804763358848913010549902490182662419380898235206737931163228763064696058759450714640367313621120637653688811547352643647200977046513100122465278849703993221328713639074837386760640432934518523230371633140195259528278855874541302160023229267109045253885138451387574337212483985847671716161517698520318935383709966118832439991901409985146722215942476066484115806230756478904622757967797518817240037755372564591620709896221585231021309789921597383124483450329928484740727344920240671510707919886241275823239586733295434151272512784826628324988735776759584048607706811640252173784893613121967171989557050571413200069294535155077835888184217395446211511943001960789925901904852506852285154981766507358229168663591493369208882089298678408425824618542602276925715798108404381220838243385578523887125185786795290541770999383753226562786888986081921999496579294623287865026573173004065977013966075696920285750787844770933218209583728481641171380460344355913804270106251710087119602735827032476924528720500520025443894141150026069079184607244763984833832190876768134616498730649693331624799306708412153536618844490897165719438571160589105730469226718688604720921883528679141294762740283633306917820166339689246658274715172967251246791486980617251059749917060340414037561001798078681841313756523525484751378514660656047886866068198067694643344344733095902545960236826982582823234531122367217572104231464956936643999444702898858916609667025346537327740045959215880323475656735740532552971899842175721644842677862335734327213671112897069064953943524506831339346197578364070149493991029122653678050014880995472000221706400147802992246806255716174670440136000978820982190557398360815818303348143249788955355854741024068971022024975056562319188210285856287610896999700413565695596110964858395818915391030876940735224346615225442562635138621765627283011661911965632703468676289275467689523773263724102847552597811690860708187285655054025472642913379556799083996643594960689219053206051845177485054278428342057310331126155612806662811989216860769081430329028653146223144224159079532477462734623106907767057926814376345036344880196776588588468029922841977738232581928958773466861200136753637794620761003812993403466634921558376808984861961038008678773788514946795158392254549347020129658393042289761856689434274874166827209973838678917599008176441634304859402970704271267698471192941549050425338070588920525341138277138065889331463583723946045427005547803815499512570045562133462708576962717069676844125827116104773013857064823253443312094268872735028415592720250642547136633221547656604453008190221672809253410906256918052002319516249455183862138570402768442639415765182189804341664094218716604361887496539577466328482101592011825014810390852163111490199528695424984211239236519355541200319244843095567538055678312546312606763352641396738654510027891330596303830375225266614233829397225939422680324120685484133509571546605612992491108801970969455077156226864810087618895107762066931282544646973494569630169601864888885334191302700617368846702380169198383590036390162116106505698529623267084241270227669499531762297441239465744401959194121678946250071207948976851228324301816246489171063633634220797937067637379993822566369054727609392917717801676641611631421065187745326014686187737684602782312166012282161640095158950941562815456886028459220352420935020072985994403563220587865242595651278920940345147019385432735690040608775764914719227735284536096528807345635031659372705082028743860438928004934588209876280521059803748021359233878046491207911000075939429210840984744332415899927248886193910079600010486817430774398550805824065096713845838085537025360535546684820763518914715396921677244584093186449475357966205427032016785987090548175895992812209699778043767743125484701486009816115535828645694598182524235064737263123496156953755126566835072311608160466252528473521684508380763498647447362383097543765411831006388644970722765306105967313798316858752887020435623692433521595266236600545713963267132427155884150584286150478585985256086948787607405501336237917232431816131433446968418744521266024309522310978872469287366126954181166557407246037596873243259879989508438763617012654902587127351159389056026943219049030073883895835572069042759436198636186399315400071618803120274376925531186910249970584337301589281220637388593831375675178639440484633123039147596605762176591013645646624526865721995203713211322856812986612078089270257398465908401904763850471571547569781190330049046823878374841179823403529350292955646265808365004580106944477224297453277632319048397888255971595428958848923161584417517983599739029609185931494794181318967670175916786907925537991371932002600934664187154878131415589471730887724857211825138070286738913825988238655456744638253391885172081514570307613916247154306623886788527520331101588403387949306840210216502779047173086456380417440543605568159495741394276391148547706555919188196615631094226538210762233454013880190098570292415104025366356055012764147767371870190723548371243215028938839293082378898267373908430853606830125838724540929586096378504165637872149158387540257777264362230643966516342539420517957231271998600792682869719535026460232491592307802324942347076218036931199665680317786643088394001252111730267041620702343810441923161743196117670480184559051167796927247160038937206355195222663144420495487784263930035411369058720104350925032778670762931039625992982921040883899578724459939719942120732173791078418116355902360887145495280756240042130868608718782895887718038687974277847495107046182960967607504482476338258545808321758759936449753672184707895076116651208231251710326968051160934941256838987092622963326590773139720850623319833722841610339922879935501930315369919269809509452432983131163397814527817512263443344725773902945873412913519724046555239840092826148529961064224234424231381762926009342164158855686151512705555575925594437721866251670045749812911715978065883475537995813952775606016726805182265566430056727812960440016518333752028690823453080375630623736413034623771386208912013638163879444009397723194916252018245425364356370901528770875634084636865097873693479280348246158378440758817471756743354155706372015254505684829443013877944981593167632619673326553133073002424296476996036525440225711624322596252737452325161844455526753000145369446533887191251148736960205968554890652708383278263079252949178136036300737020332276954130247490072054072598333816672632170820167584264915288421838936997048683409881507325070154256466511076366456308184029309780942981778611692825392713391879181015308078265320014955514764929284970345575963608930234996893438624398928402401073315935254190558714788697499809134651175983600587804413972223770588413818687310207398366073548099504124694959002582508072821361813639346978886681203895588608439640241782522527904027559121421209711732796443464372900980093856206111846712229190818414270912530501491400085181470035001535678503919213803360180033311610648940731525527538146006348671288494831849054986261342548762695554977977056988457270053797902104093388029777712882326702921919442703756742215183005320736002355771317391529118697857521968744811066138172727269057508221394577520214415215359562324844984525736317704011072204541511038428261834172921589126131238083980352589210901953874683678230546374342012912012413211480226068222673343801943832154579010217376668121261692671198984848722211937892041732629923331373728000227251612287490927455455753343245206933811854067694942276320721434367177442423295884044602423695527774993440250982486111393749018569334729970276134457008104154993873403241991779978847793254059491538099124793236148525904724805057489127668360896667766662141225173981227721926894856127332730861090991891050423973470246408288364989295572936117601984548928037856215618873047450622405467253796425754667486736085390475898355942201596927535614013794634791819948740892511759576451621532269996889143805809789057684711556845541827697256157432386466892967496402884029412748545219771359653369005799744768036033696702966908911027141429570621663376046755995158584739904407723599811262732712728380230572621483983074983484156712378485604680591756007059809429697016687618569571343400020988396031122276777548221771179577684098779347320391500513985504029788123013498568360657273972334750429396367381944724477843577748895738411936866865370052593214269442744634215079526065221406812374410762643534624831450055968315326737748524430406204690897081479263451003409133016501546847810105036621842650548732422791143217187600551376270570323151202493859098344582572519949572923919384966520995433050297152082278849796968915712563927686177999683223458321796793684840382954804242220713681364156673410403098341296403735897738526059776447339355217230439129212491077665013355126960454391520959199112101834990886342980469985600581023333195563228062732147255403287149515556128966439642536743077128900677115344314874701950444534162027730055615299443176042443352988562792448226730061760340189689610980334944405425937394724377281331129930701273718155299857822536811384377491060092883882334506594529362334414612936038987706834483048877088506301958749683510096880856888534014913640985980315185139224901787010679716770926975632546598700018676745586605981255659835636055592718662395484223679963204116450884555147856312855715583684028452238339316369745831969145761256195142853022194075866292870624596248471333314814166886253494740468184106845088023266705618790353310623382491141942848389707911727949049237022451941697122497127284793472314232982639358291006439666024102068107456708520692656385833102066932503964719539163809969640772642110729533609693006678826903751429675020688023443036235998094770331448432738489130585447481633058637592429594820509587153875377599170342409542667093372420120821646316738451454883909677414990392201519057125990585728427075984619011943704867159720918744844859511669299300250465292764667615911887390329133047381646579087267792921015912490069821763743182855071497165840210774084451583704484889173793242145523803693878685404546708296727001600883401033715856591169143306152715545793470605552515172720539423193270172841141226840646886281188382398984391264703949468139719107133590749182214372341321000365952136936237787478772297004374405559697011485954153319263470446287570049301553845657690608956532034159115563738883816527949405469095971940701252192646394219911960730577166248638888991467039395006351965112970663286036388469700940412371658223609679659007619004961992637588691421990407532355756772156505075243274196978351128048773263341261479996603327653768127698507432376550762827425724988736384903353923666367046853428040909021840709450520380423417697999523472516568697391756815703139881890516502949858077442872274603321002537507843745033279336646450272956729095225816811440241300038435686077108431473450669489581261537067487910105569900207555550522935223614875186434406018458496685869064712778732433273434664161099423095986255418546288410382205446799815148134047517437096701891878047881840169050098312633460586817158805829771771580595314580972396460826765599048911295976338546196669299207180173730303533406620477651215374969732927983170914394867856653417749205596389519656368135273687137226161535952521855718318378541480468598101539713297754725491385819389868379540752729701187639459617450475547013111965162466351768737177405415420833501374718589621376334611623339397277755118031840316952919766009527048037320768837542690625457589714229151737353502540555583807958518892755737319491850214176667283631964587532484245156793661794735956227744408131007720344242178526367366987060007171648948298145253881253266810217434388247664435292697434237838074434788230407664605614330796147838241014031976025164407585413083112344005525351517017599669560328449499388443789661162789035283488768505318416530830495264724129757638674293873706123434512484090496813192276920623466818361770732262647093372005891887908378621255163741785071375451130980824525545744465425780036152677180143401133266655335569460431367361331588448106065435262017036970987180139060599369951451233939743459432242612526747365265411918317272166616689581343866518437996456888623462269647860150154740622128584433703120290675196837320838194305365271430052911271752251162742481003937332397380404143466721227904331382323288830611305575762957994943849120422117819139847272274001848235599642898508560102602231609274254894218103276342718348090109176098896762922037895372140621913415486479523462932341845771836443230083814361305483028230577862133966844697804894828032092012173116357255590825003434642555038254790395765333728527023046388274781319696857604121163007815407156475887760111232947582925391949192834183402982789007247932066718258870268705920485891895004248903614571609479981115738151920817879739091047697887420047816431408186461979571226162223373724248306656949799306642051545739079255506535377324422201979781729735881886469110695010475658199446356510007847379855359517125195453361163414050519979281054644363582241100083304283577923249059853196933640358103267685839427088924605167072835421545706926365191207279118522551919123447637271537698295375487998048139357220351624405996353770043244893805389548086394803437081491239266547864837215234141940301612790593468759244315990601264782461752424056479118299902124803066232799846073259081600588507072397737652816524888893617245547096686151205076773905240726875295816008417065185436752258407378881440926058872324304298546496048348854022107009762615169962571455555083160501984648096252280069308067042293841114981015548802016449708882940008627142039300618934425335460076762440143188200508718907561772990744452783655960916639551592115682960759836702665183685312851232343648025341303211672696773037762821980487607136741468781809321024738763717540171683949212285264185221479383236660455892338302973454383175175680153976875462680926396608952561748517984305007287475859372085391573463328384307765313357798620306962608441662966627376579157537703087948930023868451213909233415106636061306531117900873029160068625521829673216134386742024524309665711110816673108442654649920909053549771386712950468007437843268218251661457594580499445539517229314741322006482378350532004705025742813184595278863142341106312095734004054149547006358379944588179642086525470442194162096085339202772595095926951652772031366710339565831689625152953963658658834856058528651191928657935008475925370106527919381585324599766625526341617719648382863412942090217305774312269449043401238762671489030734331865626854998305184410183730125678470978435302316808771124853571541549474274585995598120889561235359008226084183561867475327817895656989968257850559348980002384455272860806943963363116159926414180194440351973628211647547863323581593892101997589261928567467438616420872075544038025122776810372338787723247134377515611108488900438383583139894245770427975067182253014221859589326380102960786232865585641468184162170226782846629570070254990398094594692955298266557935031882841331618388378070692279513882109353414089376926428640024117591007640646282709078213613807790623263106644720352239595581171256704504014701176447956675119382848314675457758754770712836481632468381386650718739031339526080740816034498148173938807871487439082662277924396714750154890823924324085793646675522291261721810088659171663207370373968832317616397189201156400871870688845668847785296081362822487256420183222661246063878275012023306834682686621926795948935564797386973166192902105104609453858327978418117458288653798109295073868251198855089188247713163606839335716783645175576892492989302163399797233752306314655803249948729130137238291037156387170462250638983880956062366066303249835734426309321176507831205642673991749756984841741527520034047457861184495723815960826546870162754927477887668375086904408533508450602406902209973048200564702598900275815952503110486119737925480132543313197458068278576801103575292454720789280076734108855869361445525961087279045914095160335387277174248178336089319968601667176076917618787896922769615351903594344884523937050377379316705049151373824863220355010265352167555737147012399793240440045132987451762222498237947612455166052924542888026391268825332800385900909399595826598860358486751594964767090725449332248128296586601281305085909366311672736730656257297889475679204725003851364729494873153756478571660109599771815462878315230661635507779459133508841658791328116341096427829592274361324456827342998872327940407127659691905142618903299355301799031551822173682484455859321992513204863652557945595922772878705594151465439458430626549913964994465171606731348011504922765371992364076914742553377097296733858072876397926988796437136400628684763264632147346434322724309086722984814331198760199985703928557525786335065564142237933104654552860077570588492383410089634104166515681788094031829901073300081781539939233893509666505512427465445928419511919798913593292271900625627029696844993078216109794011043102925800541503436682968123489398017872817787088209641175513682736863883056025286797823589495359476465325766046274217464925201435309127758753659858072640285601879999231363861943543457546893384084861519491889266560353262561082421206925576640809716358298699163995356498991031560253075661534945096734381814573741878493218191567503905380980737089438480231889897532265643876851676178877017633101500530526578300740625825774487952267589789310345227217089445161787691556849492945111999910072701602114471527224641231858878014271986800237229655083929763713600906952102867328285935605124045040755748622528731920533458714854160764890774976055530437597493829212377636366333140822101882064976282417049873879135019766897846800437516511992574888053798280251006229570994482560248254552520019693261743291057554731714939100204508541762440418939554027272138795168926984434045184798335681693161469377872473813121724039344037356418316947688996286476854282095630723391132040768680323321035263610854510742881385971099180012494623410060574083937477186510670495588631282165321863319356067108279946299483581882882413635773814561155874786301710303063371477550357685302235720073376390795756158724965975858557921403388640026796602125403727648808845763535351952959261679652135373742640595193650612049198290793275449718489183827046222867595165268345255544737153337717396259965785808895587585794686627370409979273142918222516623304984099453880277767201266811851238364004060008310236368608613573814859025588999856832750528567764742783485285658947620822918167304926556434499226127338360367657883272436209007179505955399024308038144156603582974107734807280765354016052892460279488988625931582431160346745563442528122962109545340421640892872963001013974228583000457828035358682560144160847057150156716149429475593455650116668794192097695273356652822545829788007961008257011269997607582789965255841045237284726562858937366343952452846161661891337606258736448453154001792096978172622865426685163287895350687666242544973256328162750801436418954137061034055429476060158913420224464018283042801252298675413887843848025056522517631327649955771956561046792093410172320092415566195139936097910624086583651353757096192803870338620513112222118047561831040496892700785118102671795015938415097973187965315171813381181387119344291329060895606036850717697796732343632162612039141893751437366296325469047313376293188537203038485515889738419081854055448851887764805768472065661948747908636004638381864429649364388030542146228019068019236093173142847281545809938000384714688612250400771725742192586079602101978838091419195779574967934753192603141062158775459086250233390599120622244430232864129834639605286987871432485281944099221546393957120531114635537690823827642793112200826574839201048263571926418666627682806820969882562483893691699941718504255462913267340994000957036233506985458620935736120252667355870080222387240890678690970530493473344624102342851171853234143488815762928979355720119836426819617923762519175866097463609428593821813053932276143606979821110182721323662269753049868522631340117921254206754828214183716308196447681014415761793036155449859727925335954637321992108801048892538099513061635929796883735884644103854189001205495460900633894251072945355468044786589223687735022322620462992850570407081336503311049702521937248228236865731612644806750414438614345727041462612824320559004155482203363902964704859180250971803636918243381096173150580323756834373330848328385957295577827471506748749695300859560393844896624319962343115238252808428403223749450905491584184688604356900804934325930570340130059575835256776630014208024167582423073587171092982061674024977770961066430764603553864031111963697383442853135656101261249979878239381739305813548999314787279009958740720631823525155903251004531100697867090639549887552552125418212140934025448494827563070587939621907788972805088508003171507271601416018509367885162448443995388805152603728384644308230551145278245585732232736447452879204803124712484772834502974357589431413865585641918490611210661849686591023736325798033002699356660097132797512096454389519386200808132295808669591373335300018945749254344873911654321814834493441742858675483671998129196563594935317537495095730861907985312494868271552613795945727491084511126224251981132846733641442477158263463727677041299676495754295629142639444431477760138932583348075433581782646873850062309875523971228722148676388258336870502531356912317368869418558846461585444529272091541616839962831236496675423206918495719293694504037053024662866294416997303321323232530059563169585837478210120978660679198889581908784791429539825275277055820435001323938080083477466205198420499527016332280996856433397798463441138237784186888586305355403613062788853931074766650681694207327946612352428396553294525841673097882422473713031004961945200282400242011984214163150392862880402895855015048555521918277284054552615102058394631637589288639867180673520317015140757153722441926080493832049428473254235088198093181673484658959927017353480924023779468527858741342043101580385320320414976926296017628831866904266227393166088626275750771667625835514473116017448469404854150120184321221735887486387008121716507986201224915597624539891829609303114580846849586146923885858156762273419786482801803314377304971785003909816708813273247738540033864251237241432382388000630224875583177009916913971068066476499157981784560982429914366968001393617812630132612970005360172199970746495620035519432104698814668562243814988559936898506183953238552551243025370552685252027714460095650202026239146007914905047540449991343802492152114711798004954098040720326025894392568122170363788280294023977108303818724737879631959739990050881410797660158072953978222127603601724893696857843389983239966891576567228643054592846494870561626683318360839020031064205734524975725661178131983656045352238926692209463553152201716167341090988945260705230466271760325819420366050062568207892574938588211924861541123509293699250088172406038642132192026087279491932918125738302096889596964215413742632311164771852700697323041651946414278871433899155138461779070748906984629364146884162288382203192168434076846404934258605957435355599456947288976814172574217570495470051385294227948892865174752742032425629027580656999245033239816173742946153476117337511717621654549271238889478368000259240474629978977299305003060691862209215551208950033162552040631002748760709956925786147500247012984469598130144708042773845961982858576953254590109418350216359914749922527266891973533163060469833630751812305666592466857045106155807406421360648439004476992218866158135336551668756704740368089019114506170039925312281822190015279202155654915881453094125240362195213031917067419678953192880361905565205040961813888230398203663806712669887449518202027465377727712251439779094456368398903218629967581297056830277256941316101137719954085443285514496621709841962484811414759065494070087401817128767989054460762552577175039572149020658737415403853747544555195404676117383477399639378787570512449142388917194173863413354899767245732775261743633600680358923644325895332124135362576228514866211125823526097615022244686277595552144519526418848772868663996634485078699299339890466595323633009831966412915198119800231666742290620037749146951315219792839411554383059231120467264350401768476251906971673385595172337801959973196102422169031279513504413836184215153655773462415668846844108831333748836373825772607571313265952636039097085175437112925145765400840612507518710885883424349269580355367787809079457413865628268578498558156685935565619207486223805396926556857283748911871149444179313035259984428847527092444000282251363563337901489922328680215133397303235072257776746648465288485829703234331916419694929276648899583152956582407133376219429086185636188188666772092768083285175083510526618732420218233160872222103270946043519193662127416643402404130985653319056792783326588764252020933791802373680307223466030907869666226751412429488118884533192685401870156727397125898260284888688396402142009694919910828549151521568361023632860860306742008195890071712929630346794836836382917543038142556148932910744141439405069848738020145758413692211749858758608211449075194608964234293342770702454317748935257076762587185693379560226633540200676379943454621833142106311941328398770591880189999563829964410255923541729455599136766167255511896705388604424367372665479280234181742305108754207133175360915111431861124485030334022347492198863001401392081161555074378364751850711652237749229618469666456276106825414078555765453212928191507788300423024416126028239481126018605357607167893542484759137554606789963802831657586503512966424302438640355090762000504192152055179887188276796765227393838560681954003464262775077348212862170794143677710677494079970579604425038321954827647809063768181433173396593759924865408147893986677716965462521486080106012706550553549241446964514507047913049486631228071768117326761637915866652976244739749945006857657204879230269971016761362277476610541281603516584392956251922631933988476167159319910017524557320320429485897780510174853985767538229192295552338074097537599166057570786542916422930907885728489865684897853657536520405349485012073123785690980358325434581514851707183202760370120838529535248127988260129411029820669636095471176531269103433292516641511005390111828482812694510732518140546782837477075336374693145042987721165239512098858978098552322448472027259049165505594492438301957867727985827256462718893516992004877459324062021640623256932199429856705993412117482100363685109397371307897705762760422143625292525798554220764910410764737494725945552655823004912772951987955208449374294463965708917076780211025181539976729976133044587624694899344790123441039862265706859640552624403255235990167011566621580181294804276972889395821053476823318049927408686455979911416353151375317378998033952000244318151772262387192770893649555151671471365357005156258924091685472267324966164051299131760851629568718886924002339465845477713105002325629416958361700559838288990659448657798484836255909645940089642008851385761393145780201053868349423098539143400085155129317299698210497390320576035045578447027237627139210794389786808555092723109365683758265752060034637884759047021775198262316953242853408247474188901140866934566980203174842314390048801392130487123441830705510759815138665958065563660501706098931072527834826361341053933629625171579013486154457741500764879397198064617107631795286998420710118212436064624622581466065550116975695951674568125905059238481849604426972701508762778757600937105514049739136260018835877321533732995145357271776761928833501924278231556631756133411476307867849198517949868603004033222631103288390235017796718133060196507944619494781285358259084657873576083545146793480447748173599398650884987672867841761296269641417051843368594728965206749222892266821117646942989018832103960570112347340609209307114896794476979781887302349314231573234855084066199506237108519369634780588715233194253861445661870132258431083779475667218034355530659121252238859409312030339771572003464377157039049028439057809390145371779495936167144358425689698433229779520669921966320305485858006954178220170731995118155993412774362266949141790277405130022391643410459676864069279969415595522892819930368207496790660907038532080909569332200057608189316232881778438924611021347730079425730310925850404991594931839291283163466984881724325850142249158342444094935961879424319158150148526658077080122078471739427020837640105164402263289063780134209807650472410236289364795980841601602041332375330085834512761140118580367962892796520156064837560916684960266960122528411443692801678792764094239173448599099236093030260428708608432187135814855467770671355116998516319169163807401860402148028156100389563299249136855040163702132590215448011503183968046040276431314996245442488043325674152789771585611639777139624988378976353358724898221105604048324480475537031146973808988396460814556285089660884127851411175702101944571119229288894720665760917975638540029179603199524509004234416951315371199188489040653266510105784922838256954591949374707976558513487631119210357732234849389976585952331977016604919784930503400274441134166182087853828536605416851367490987481762333288654473226855563609816814240979246300050612171174208090125245394869974633241115647102322811601223510472849392548150828308940973757922649244993182931184913950183663719968379459592140699538570883610165376498568878276239416772457107386252366572078283186474541711018014363828949022381909464976249934012162781968244871925824930866099219838610697504813963842124709582250626070620682046084432364766621402634013513539119377322777662655110281899782808199801156033405047068712611155915626889161945940532277816468465300856031235385883293134980990825263792636987450509997394447396186443367839779205363801635396088347082475188257441253825651494151852129114930832481594720944618159058931959587737850473118894357801956325619841982977355636502267300944440521764981880838342034316241261964768455042797733897681011062564739805971409339795314264925133435555719655768257073309460941830358250475977699737087436946534847974103366619910695476584097546813199453082114490018056843798167206005198714515191609664428846418876238812294683610379766491818215388455703457368279869508571664583521821893381442926253529496188908971315145798199879362276010117741681032708547788298458088123827887206379509165333347689361335245740683029038322992520740589479301521168568195229006620209034197110445805720603144914722863957353407582379939889984916082286408977335062165750805135645226814689753671995427441437818576861244576989214388501705492843040039536975676450349809117413111155831822153624754621874896747445305482353369394312997514819407257155290094260767652218978969924372677800738569540792702079909280044219411065946338093548706389980606955091968339060968544988785212420193020816251239843674363542311120609079844819289753947956789226542831818128870884115765243016067618199142657047522677925564915152317864219862672289578516432228878287124151053524718175639290493081139398913849880187675481284303519685771303488043160172933716248947065438224432330316548231420029396814004586924780193059297117232032309318817391550408387564315474861021048663171775861524549187029889770044573082848331913829117144378434423696949715149224529240353527495549205968109754926466358456665862768238272641742871904114420013886607451805679598751937169913632794339591534879072215506629415887941215153702339135264638001482299470519733656769243804074949447712914495659127572425399821917049498197019413822246067047267784849294873780412095463076250973822657946032120704885291324833095903965977868169872284913329414890721610578481842074769799651084058751663648675594987552405860157746680365615249847120805063407373243985025444673068535127319588754773163244882942609971160672115637088259204859883161234106766532425093212533316573354009000339027106313239566310676672164370473922261100640009295020659638355578576000585025545314033828997191392182423283558759989394566544089766978914543434618028220580365379785071236870469971697790579071196120328934907457675636297156752328088830036717910285579614346496400511727138189025567639865425785306253508869921691461575588013961412118459293109065696298782617076330269040978638808642495017276778618585878988470539047935476729741943773334713193772760886594317238248372354582071388967912416648095173241349385791411930241919294281506722418290861910961028821143027780583522004257527153082490488275512380236551766632363608442863179759427064002810366111872861656137597805788644860115013064788686538799315195489951754955722134291465392787079770862499497209243114173465898655343069719849339157483616879339681697325583545979845072845407753016662729898413576928739412319588058005738880232767101046295436851928173243443033689873485482205031107414422085971744108187109862649550174076123766674777208073468960781685087532550491669414668019726078669600559664523016112830051094098603183788637900234283256579961454549859965494516187627089195049984724746937474430453478786983686071433927511108464765904432832917597143213925381796266484986582253259115238198751314093946175087511761844296423990424641897498233421533393267364738508476687406866300885607056022935778125095015161544776271571613558778135220738067213132997079269705514481020233589709066309344666127076310095187878872820126146768560246839657851135353436197254676431288258418513676977797734548054386688052063910055830251800040356970134818129184475294183649619125671006746932885773881225582890949601096596520785653932992166679661074521945717451551204176335557040639369685787366895013004612074542503446537650927256858036211832930592424071996165334484442783912819668589588370940136945581368899941966108562529703964972908186125888645128821850954686966151672082718718888198998104256081667388732610171334694860383481632876740528518770379987687111418035922610422151946784185201102348389417215574072075884815263439132400397181065082176492823006341208277173248794929511843666278648533264304284750497111726947364645886424011540880500147145380407651410519165978097890477152611614912834712451331970337955439334315000277128530102926209524584291736914030264619465341085272395575085468771330196478993724684715900913709357836005238216335828039790367255921566162816550742627562019643700313596537035539259551201423565424366893157975081180946521574114544176883788456640532222726897346752093587591229256533887778423706204584884583706666821191291185379190924943038857075146216860270864449669875088475832809222308583119031419866923181335077751461198322597441430163103895556458227417206696347548634497173721104182325261039706351225438208686961555984024174148281976997720217274903359465194955911392646327867954743078698259011450609191621284909835392482773534851724052809226297966905961325340009705718350937699904278039885559600117045605167845372674523551396292903482093739657177855800178712959937243771600043488318546100775101033389269956744255033267287241069645267373090923503845737071517552297434268057536329432669950610289048103716063963786147482310280760821169902943086987549845844093412851940516981616352053895821056982676036243001128690981811806639133840086362059173100723546287619247712911524158899415847496900764211121307322955853633616414635250454401774822123063081985929986365501162414549629863123229553457602545275841084862763171194751160747098811112739079467493348662346339166846392234789992263985328559562816755402104990383396636929215157513295226041732022532016717567917516173436521619200318591095982819552398838044343772323145863855686064762131047847879109425395818633890360076442497587407490871479043543461213588131351666977866048349349606285032330279695421153987817480850976026839989666030175794397129034729923261295018296165391789791817617965256555462018988224580240233326153993963709854973793078615301518437529667439322791056039496604172588250554473812531677497212223785418675672898086806691716974636606502608637368748687015728664587475058436178584494375223302373986353805327388655459319730550514299149931572520844149061480467039064927578570935411927004308990205202312866398879071469187055373092757617251162637685458153668847380575194468528233265876968548541153840603032233168018352205819974932064111870152548738179850676490636532854856717913976958938635306568600094737397765458714369375879961295376490320424054894936327464314771789880037740043507449304224107484803729032087822461947078338902951530447210951352015342209243344107327455576268026210564009484601734875977881927186453516207248656928262482259059870061771576370234488197875643170443269972862182443918274118823798511089021347810685857541692814765650141107397205911128559810193862320875013108940268132840394452218565212661974657250836331128722511247499319859841636652836484430156900456697024305088816499694509103945604971360889004050453021996113731187413111315669847732117053914584154045758244079210280418958788469437241731086614912213054674661013576345522235770811029412845691996858434200239613607170914674389489171646654027177955709751728621226937099249209547654106789405515578411578414028196316634702620937959376062463745793502896155391256407284903499900451915830762138626233893897691083842786926004586064440839207036744379003317094360850823052046250651104402718098320722029486998183315406197782744448198007731796218557380178044040792142313320960613785287812755518436074281852921851812573004053291811661197375248358709116507652467435611537923246907936457989552663688028855351826364238183172933562703138935064295822743823867414795108465798555649855832280785103226332496982809043178149677667165937408906914091117919437698018350872408248987594186714275999282512765199991018390261033055932580685651214355093410174342030749993807487633555437103533722633447738372938929984957582754970094375323972184186895372288033551161358254530832015614664790572974004420129731735731408585398350260939989707286796090005161210749929954457763427113516419325075620130122767780569507280929361324907436708246838491735805046297457071104582294339378670815898150637025473415317277340549331003057459203509875553733543197385567820208693061363224101486211501663091116168362662221935691460378935245824799771853875980186512822886928313044219126922159573749708425660661292708592715941144166766861212467993425166489127734112377438697616373285187819958502158923378157256237409671079303618719574107865722402162703211947121785293406588175041607809443196060481877684902430387777064393585138533150788855238288430390952934801940214455739014312167446130612470892447375245224981751720417160863864039674770465221877634941378260968733565335780325968994272778402098182174134142060902404176631267025623754256029561955073484015852305766498162096301135322359951172528757923045252743294505744780315794262130467022804589728853637096656067736532958440808680434795579104607477944745343606133169568099673408970558181217274879890648752626387664892452583328821965248866911366220066208833470782428974432805220409337243000879581864470056131115733330656847587624501445903706425853679624713717585213049520574876933963350317163644708714371801464578630269532706157543040777956331454789260637323681341397156604250606626027447947142252551462037566325599829521227303087874700885134534388813661497857909189473662302114789664863331971348444530955224644113228144934509930588727990795915842844297212974144698058777742260136206310231381705430492450798221969968482218049998627963781738290502840869246287945835663175603779227515313864054066903957554913128607384409056440135278376222024589223118818842518474007694167007989991313880404688869037725205821378962378750313579046615033670445168404675387578528498238856646802109349536846933008374464674197971707946002487971038053775722795388370127416333784424712540896283032124759742777357870113629608571964748529326099832831520347155409179617133417781523063465253620842013388977864162389935414726234131142010733421378457557638896205321091087769662052429307776982082545502280188627842776062241381110346867056646225869059410440088844803698438248029906296315637427538903520348263154393531057116133911752099349610224532403877244287000410528971670373360675519608071747546231636614495618538453677428021224793346178785766981237255815780891507560729569232258462524841358080694994737390258078228376755582135927668901444682131387135305671505993735415403790606075405321529240708015600667377067077933556983387212778558270436023058388031278160894825023615067546880020981899630996281424275973951081746365501087641824065667014790848455954741539268136291069643166492988519584912731847028164228739804479583859560655737051419405055959168471859222166560796392632329918584870273865372183120413479750350018956320179683519536687540126490354478542922481915771974456539511823823598994063777868498970591127127985416806081847740742899380391700688680127887084538656755674999439565445176906130584368237026676153781801021143569361077148633631550481846920254040771652082276726906057744469807756652948259020311434724280561560404246363813452323744094197167153179811845571934627723012294957700132031051945353581883816701482913442899488201695078303249229485504441767877470178720806011845601551638175060141814708038781212148552741256791115176788601119194480128655231504571862159744171608038937587272959758194967650435744316445250141585290571823941289046555317765806244904512981276998993733998462430584941676347192891259532980922492434603426456779095121252529987739836145405908083478204788658817615551779736425048976570574589643832881779882485901047096063877031643095013131949198603498529946503970302893246539807241829812828308004231542892095768624287346352669924061737281371391558791244147632200335113805762083928043998621173329619673906635092233552961978066671308970682272796558593121238794415534160178389542203530555882364289768830599330775862686481280778513888109537620672414301545453536913683005407600554656458805622273182794457388123588588508137298764220103391197040029317935845448666912542240396050226803267304311578598291185241666781450041326489727123363796394829296888105586810021507663530023627048701755492257139045081517894523153250922423069881737826810792460539918104672766375698543153788456709827028619986770176441094262424017264273397553740440404134647999470001957386435236073738688092870963221639616069676329664489017098797107953357429350337755795466187360691148951597055473425177379763474211285187720559192050544881765019338575453238451863760364489552142729741961507548466603422340788053730085914971696177122045069244362757735101703406427632252524493921442126163264521867751191456196590909153536379910191856360551811198308208464837742619912036557202604652330231523760925683676812803325345478548218000698030866570273890278830971947893150399840216100260844752454570087017396106827754967808948779143126922155244943170949266410412360830315377764676301411866146215074440887688718853596904068997494651493054805065300471412455089253228554439251747668987308369408577724695953826727567693038780993512328392600777216501140377583195620396628826185500423002906997771365881411618712385081277385826527091411867507487684056694653904145003402438472249813352120035354274051801158737897153704944220901940814862258876085865186958900699123423072784568871241628901094867752419366621001627125623345500878473537396454196443055103927577751366046179922833050149003267591885541117190726650230166265209810646537886913230669611943914277310503132165488964698056611938748625392051857577953508006047006010865718556685856587283649782769982286191691307913933854048106460273962900355340229182384525842930930439558159913862072818025405088579485803686129036076164338236194986215184916696518318693962003225537886050798784820670093158070339883481132980649567448661299912622188158163368719220755538257147514786663886236132240843299313646271345188023967340983055541127742716558800445325067375361409968128244631668894118408837476205297779860408698646371492324553894690118356803115804302958922350866780938949155017341763972169821389052499996972181350012230530600675392544531451880626078446743645448156050181125679190168468693624132821794459267046778150444685252646533565661905862804352555851056922391282760497183079054018117529880544088448538169479049727240882533907685067600872723811763011253235985197922229374482340452380424619445217660716484363450166470700362088689899012795065284390727963070095011031123466389853470630309475628433783149363302984414172593775224713507993648939783992618101358474616892449111601648782667630387766240553670311365577445665598296984989806308157442895846250872932321916714789433918708693197978182405072624230530994607313257686189094055156922200024601447719767212786075021669147764928410264440626608222058017548344854525070079836060667384978545921084290694959766693969713210849064242136498821659899375115668919344237050087578999464935138514090271850315624334115993600632320325864066179385691016594441854917908150627355979710399916675613519603935058650828933593034868822794427780765064320990893980903501921921401181078108184670345474733762450448587562547075443340249795931459956505180658871434347962136128619348339708194136467962505117703832160950820581529448561756995955425149650539895925109045320078589783105827481050851624733807544606471645412419580370603053482215062517371349147521239557118122357161331166029753433769947897339425048586322793068147259748335690744076794911923594896238310723259021611325972955318609530832725892147318063925584550444181733282822161429450470754053928302936666774923221588568716611821001990606607394837724315432106651144147965074923158224439468742335288218485710701869595269336495809883644945501549831569753579548234023683718765403263560335262612324702817942761512287913984699920071412120848005552008427337429276227379419867172111829225560264521337366540918364123192014625410588259447658742585870762510651166549586925140377712829678118340847898150267533202375911947440353375908250466191515754215297101371312519939878717674911331596770512471084566347852715311349014154205022817499937358979317028835889170971633011643494996214097993651449477359588453712578312332960635733779320797791192386892359069853740431394985071729838559988969279634417091639323122543771736271313100738655901132723151827505487129511234973552464662699539984492622222535821931425487499759961220513220302443741965714843896531012126965375550110548504578601105426966670944770467682515653962899837721369210205796174744802333328153388365033713045839413576171881985554984810820844372671081671049741351219982129188164873327692300105012949405403828459031687713650477909505789653099899933355260604230203251762479021740486485711133296670878388114510525710422514706801767548445065065335425284257042648198566262827394665207093205374610566447434646283939934133762899629469049237523966185590366774645943520123057712426055784996435830215304662395866823693825259983256718432596587250758717299274298998860494784824372156933907739398324702963100835107093651861369189928746367468435266087610307704548481598461380863902775556282690381889090591640605867885864969199871354682188084396162347169757058351238384677172413350794882010304375755348451092124461704942418101644979774650110341827227564341980247290649964476050371483510899318527878366735071954022158247806259708806018910044971093080306155770956948198843178065431039300082844543541407893205550133088458754333947228511814444195416953490534900997188159635419966812483721062534496225200538561104699418802502088478307346068672254220429631752365802407584574879276924701726172803911371730485806295637036769454764332952007645832049151643014709365087048812280159100826322772454608533937648330001771708754495874966367168341311377916988702353793618356651366529149997457327964361394803144618684459113960365543662198170037561142263953022940368469171460002419414427038391097760514433067967951498117549601989202620681984939528002413596519641080374459091204627592563748263179861693839646548487886440691211888922586375152502673484315050251775418632317519953622421099816481632220192258743100821838203685823813170289376280108929947052573382510326673502201180709380493314240577607957679794221758971035759091488259172400380843984850392688023993124150483872126924321426753275458820901600661312542890886586036831339771869632404905752230647512326265819172814500826451035832793491221549382256234403342898910773115729540090840756992282224169973792334870901577628410624046910293582192435720156166232889049850892730434321595184239994486605823620329746381026132646440944298877458127505736850089663336433298020164538852804732918115136443976210218803758784777854940677481736365352021380501875917963205800210384011296064340786648902880166109677265806631269382634551714163620806164528270959116164088097334281185757746174462560049289500199876649046543388067241955423937377296511904004217914914908922672309249754135420579085402015001698219171031700769105596949218967843335586778715227378675397840997970580973620118673674025991158368107604670606650901730794610257476453072618353410421554443983917257204465413933705988728344671088459367170018108937924148105777612583281617712072239823659353307530299235857508252177099626324098908400095541815860378197701259307449679081210476702027982647565383542269632926005768604919155151258166957917436833672111473380886961944725828495866680426544914683450758836787021219171013619399475518057679693529216497305315764921092172858149091882278039411183688146076354408595990751334815957493244510960770313520769812163962564339138264001752110299579651906920691511977436374396921069573883550413863554051924475874186737877705288854640709363549819229675112504737047208905713292753568742243936074638180932443138733292323095276822459458242572688942703486974335088762001651914640253589307089044791919637464982325663083752309803233090851013116507049272613641745723945663864506721484344511990972967470935060493413152492221481136578841559485446337537100404116832612508796127723064582530963170807541378138461518997306594407542408465559971701558343970565903371110531153588065852536687126643050242392908273246116973916394914292637673223997026650468708727550927586186495613978433657850852581898860045759220411063386482775112556599457752419457434447546782703083839894983852607786927918450686660558004142197128077697241007443094782616225919430285626122470947673049020569238350517188969497328599327073274794153062944853339831915954475024384533135546837172289407605301543143527929082531970334959940738676805678571112059910906161594242493585377460767545732695141163066496718249575931581084733506552406993420209342410889279405609316613030903721249521158706599926800861999609180757660922105659801616351436362364711008928826831973879538951027375827549506178934842526978871716953730842692882168533947225276702461236758586271169408275413642736094336279696366585931853932201460807544238147868821764500870162089404686613425974990912223817820131432363052283302343639993671004173856590776440784662007676400172454797526973996703300423597769057524101122674984722533413323544016152142751607231865979787901049746522836032677835973372392876665608192966420772050706365046686931725172019687377729514813740360572960378503051467233002345399859277762278595393119012322524209302519312942585299926721663550671304480630493711888889069633183668123472823231033459484973171143344273705006556008983918501194345617141659640620419036287040588657504599710867726624629177948570414123440188880321462341452752609253885101360044033677391711062111508657122616317286017542021448166594741080753503748469040085460398157054204453947295082535679462856098535085419261619763666602644959727253266820847479430735706361808219131781744674018171647929572942535148874718405025772300266392036968206362327456445968132946224821852145626765792034800879508031109858102575701663319692131282620524663838823296894732146574092807287230144382378332934747508614076459880174596005176413245217998773676640252441294525551952738914124571043332123960007480306743394802189348195732278714656289886872163128005703933022714925751108955392275334795952030734239913346640656626059540913900827774555548278728371850773023734644379903353233075884595893907310115705740329421361874693742764881063638811456403771579240302553464103526880808564791554503279105897920811445962121908202689542096019981699759413396052709173061193436129984913816469223896107036008043030868580118714987572597674598592591870787209080765798330862984741568707144789650045443260544879395558207832525925381510973715161307881157333596499185139016740342915258982744053502529186730876802238395338665121367054081832910584339674842825462555281358041802251866534304687471030650959533207439949685767769834413948132159018547251080490365607581771324682970018626600462586701042431447894624522660124503344285305214600940610879974060886692985213015922041000775294297589057699148094328313475446577792349279994864664415383324160577862245613682464965310019758979810601998059784946591957345039435593388424769261936123802781123501610242754315043374809343324787443640061347298176496346383554685395169917492805563643616116861930036461744270525090331815259934563576071013048112398398401555440859648515893425033366934706259203672248398935860991148733769844941315631157543682669596125003917895463640832760889074644418416289602189827723327488370139734164297155059296350116411615687810329183959101488678959292632384527085187961680143663000578206298316619898478572418647136799219589935042592197816732978390384928213463813263302830692896824841584198467236380022572036725850696055202839118711380428166467166385793261653659259450538016148177411100838249585973813873204880762830487905527734911210556945120762349538526622097635824136621755961423964552873682987396929936385938989109000239785308344675508684388076516021669372173368150954709094425059507915578752433396699185339535260228766525575115917508516285368208163963471370284869124366953800936641794722817281712919663709452006571667175114908935844649069194780767802050268862885666816954756663422599440363714323446850511363169665692277335037840690594327520598683796440804871519182672120878132185092429145679657282226512986922378734443096115353179464072044089839685000142933104518045109488919885136506173762876518103143197294623763028428397888287147057610101721270942833577077167747689546916084517950482215029672312478549601659628913097805119375792584757575641340018048707711495972311073776503574199610662065214109799030569524288828530605637036530279217375215263563841400336816609944717973188806310832384633553726564091134487478448526107225457357274424104102248103104870840969740286092306415770773296081433250053814723125887463471100614497311753396760715880598625391099642738117293446651119327140262620035644344681306447892882999321293687732725908856052572446469710681870757050126979166667830255829109022059258446708916299726591435720349887316654142752591018979808929268869484762524969120463297566118924337313591238613363178738717226871324772491307285000125573534029088577891769387507871393643824174184422556346064051871945356240454636706297955116511800431428695966505873714456041287974208470173658640643996159848568897036560059305079771949472753455568016220942945153705599277895827002513179468453839763058638176002162091394830953040276430658270934866553406503438036126502607502081502213457741608485909079846728710368662445743565713354737949910931117307737392590295142538246327756215055771110387453365595252028794252609098948592644973290785853281946265191197135505345645326986038537269048344459878172039487253054590108616841536716514064789921629022986020869978071492652212341598475455541948700874967484335732845919521672454104326470604829455791908729855432663812878559583507324769035655453711084262877110830379690990057472058298244904704279095376690917458349446049906870451746305194511263566923689902734098903223072486197257994571225405398931612526130049636224523336225526205356917357953355520929361869152973669621362783484031198806351350330120805449274933465956625494970244659437292201541692162826376679150968371596161448992858752046335223850047517105078142043297502862307245518510630663155643285531052026128621499503475343733598707960885623436901164334295116750370369966751464241781814008689268601016341790938455947133532176368002034372774067515372123221483313158089758343085640808485966760355793869268032987776378854708160613660438576732350804577231051245752775048915862402107909043136384339745310019458391804450371427442007646211405890457786817893286220658801391104414855585789084506834172274650529394542070448373266950050120154051842740713866526201638286934402205281817158797594452674269034145554554994582412268230146379483577208534995901351807188950194071323320118824623624643382492550167085629177081294520155147008210228675762538686620147087713697164721067625362269344410294038705704272674066518322645443962500809939569663701490239187239902622566294559489383785240123216580506422337432701350354583714026814144900993846853072919951237079642777555944209447237636968745784060041205092621979084956851951651998558459898406185934947032994262032992909132844414193195105400354388203134486779841812858100732523539638707167838339061463021572306597627635059389881255341783340663477114549835752378063994216868261199979173582032994531510143832857517411544881741077641542813741383769369575674087528143156504853910679833390142249735043060874578244313700021202269398272059972811527628880614703219475424640056832229617668048694731736903740802650150988403339372946335081144192314629675897072704475591692059434688684351389736788963608350111664290285400601680737345039795087730853526184829591011346561974699945063723940501043751450133916230574785727633537103118058919096145355703780339524281901459306280761839433664146862733193536989054960892443876050360631182165372714024564843913144707607424611526224819962349365739031185589802606568391646282971270617517711766506542699646612252612393507343457086519220896552979956897360068760743806405832496006102269824532680275244426728526059675057844555595879317661452943204119371153020318281216207193849189772819679014989289723719067357902308319925224336230584366161605207692177006228628667043221546342815519923079095378708080099190583094543326449049869937896131389171685580156313071646788684460622055636625202100214105295132182852658299654462102792189614234470958360804377886357923773074022868630548683941055112803047142235789806517299670286982314246164092408507248615432584597392281721318993255918058259484775754947848596996573520708587158284368736180324524825256011521335046722751185963751069524127961004687462856972789745892867353244336473702724151764510052439350575081528487298744589014901948114367140165346287007409596155502621650306444204614020965672397219308234612565889282406621701050332644055255588359181511542631933819115829008767971652452735062444467239132770230499981424196028924724490948376502808293152149286821867547941189476807652848521159375088649511505043941300460744662852329213620340363341848280509119950611234420849509319843776556277549563884476749955544447394545339013009244613055764764826620881369440314323059144415145924119181310922007393122617748204154267248733267555203494992723540357977239626758475845923437581615646617624205381455579970623604135665081600360856513790463604417755402756274827005170270709585046278102296805722284577133304128512363372934797680854749784014891842785348451671157924764195440885233199849555746599481922165711156413164636097540308876666104013198239041599542724608183048070247325100420060368203328086347243224612644934855694123100688048904914961307256461356541311975791129908178387113761249918692109833071359219284496062009478864498131131145855615422052152557454213192163120194098181327922348420446137656758382774341388849674278459704784103041955331030894017086187359620515918093988621302682584960915911275634641463059833165720897812312386613520306801088382270403807290201385333035394200309773468464887413395986571153801088289541204073532365688877885832197582362168326399799928372907322495315033593593948230671203495636309311397310599435974092786687246467968241367942383309565914243231188041843754869500643378509554371107941119876344692430743274386311972771482036987348247327831596363208442356465997817767808806509386317786724466192496067518355429714669013611287369563161391436270246273607511676662099393454186123427072441157561691262099606848394991862144579392497460088292832588883331739582123891291452905038001730327394459778162339413577355663181644956357465938112407681177936027577150965907015657142278990216823504609305619544723957075225081700559450436107200429032527225415615019685035270138859129390525220730046800829383942296998076946801213446891454163288736003379922101363855439555331231266497712137562793450072209764734120145095742817853281162638100001884746066114825162755078517067899244249493933661607423781400225656454142454323427712700459675520639088792387718287074274453576831787334687863193364043780613274484547615660530475673251602973246695262492870829262749299507028146396586649803191697054460729081574342310889811526611433788333516000057507434111597920308071958621105272098725524386476631290995500805097557275050765905368387513765374609900438027533659493238348642376935379903413820436313377033527678546657598661201539065219051914810688243781872530208531925019364789127787144998612415892781749310079286888074984350286706372219041882698182721830239012301102489608305207143146159017027706569752884711524152424278741131167384902526957767106749639184830442784102972383986281908164422032790566861060323348017041649498322124047874341937388548699582737913041619133985379938469147022944273550170335503866953679341607110108425184924343250764008413095781142877105433194435953731050395710265898400219232081439391061538526534096726484462087899704120038326388680702418352307770162277561444999315254418675007340748235134860153546322949613641609318272683804850028750538178601255407840833611569883719306120275819447288644527443239482181462901548810913156749288111888726719036553381812643824537944078013379092890529925978723876944356077931392161338484706604709159045209582695074109133579296003768494933382286284596632539502560745858718117841876699577951954233379490395420074849094312029721128974304140582634610060539093827604699810642699695239857411097102676280281894766730112541588113876890866979053145197697710527920730624791243613092764273184705802149919324252802508544871613007219999566028950024830623514897699787426507426574538316626960573272900968527816513527203802821337283641730392168232115001095191352923744968571659858528876241032903566599984949941054088447509893481737846586061223313044482813212632656757898700386718038131650438493747803592793198634151540039036124906364122770971490802930442089532444581445437824615664815761892606575015076856271603205149497613548101763476560082848592864642400382580752718541274975071225724330468613807500344185949634148864121535246997523765580904262741073338467367876175030920434905888870400976713799257204879741456701063362273321926852070459795915807949351705241506535384208000962699784700186558876605575306983782530364609275828160249659116094379490618565384013425629201875474941610277701366047739102246405468770922765880861957077948501058690568010015484769753113280017722852294605735942131406195782908620653349331893906843551454033271393153623270646808953200784425271025592087444258475334190440837238585614343360640696794548688788409430338727205646426453728595813653732454995348922075492811287327724836543245131719062875616346668752420550213928108442821111495290688670264189791959087373427848189680609657857788834062633074539471556087666899586869514282150989368506790535138693557314446738431534773258978485054754711842733698267718982902149355620788659535206570554679891872321918489611854641085755460291795935938251195984479327956289654570399977544173003596745804829435877725235226362402526159143407006211631606518002921449423999325918752402098399891883337806006859700770301250734671245246373926125986070513582515242861981167832705304905965217209532392918675406548710685252633034777760781690034175041781086909689046376990440894226602852424304061011397019960472732571823281081505574609964509015416486323978566391963977770288511368740673468082944124227768812170149927481827041245726510184695064551604004454452318437659706078623906789875219304060821365273161017088480711015325048425205561059759620661309232053133311485138503189397858495011489687494913087169175400026952316164727665021885363458231890104708944988365515747926692189866741653253135806697176709951577703085579067655369286213655015754877877193017728965373613493231216257252572032531373074122091969438902887879499427426787832919665541398020933681984801739376195851186897501492828079476552044109640539180202540830579052394266271980121068835933869376130901958988090217061179185181241921199774919495006211205084018915407996518439680619465759778284565151758664724668846169645555414067672093924876849863933806369657956383260164026575573241530016814537370234938349246569667989502927873130183471244675433666618050232808575490088855026479685600859644560601942780458212282026492879741919374059127153590381035012810375219884251287911935795511552310290094871241191129302673797583466081475802662118335700133664803195311201759922834267503315917121987996467764588706647183290987873478073803502381348327345988425859863980783750723717930750119245080455768528371755796417517196402137539324406969887600331558370765905688736113136689933488111227801117822595843894869835136434939573156649007379512094793482736410853672535058948007769872744268972518061502269330999716703529577615809745090907529991714020192662090968221307844289881590852996823534978851863392638820796325026350213691354593958847937995781780720984275933333162926580614668221164988828257555170881068809017476664397628860689034389977731075071561810477739602761228307263251902088668585860257389538354437526387040498986723919029651731617139083805236568633618956067946524585591563084846965174212121558531236963107845686662847346392971537702955714098749281309028153726058175805578128824264499404542310342414816806122126541302512794578809026406619244951259956657210002536853806486800399060961059600385490674778035089607913322316119720887232751360983479032124806039317065025875635007722045875702392988531962805961038843642569813427188283012567847417729461100770392092891551553433635324669547410713764865970801568991340613825617002113962109755633588072206969005801896084792583951403409706647297818735079247129202860120998708336595723346826205833865357101451828469842520688332041745627799784225899792870862212390071390212787543489813773839421812101747529539971760213387014201957576267565851453139078468950561319031621946984470390140076330015369499118393941836180742307667056784902623555611826297771871581089272275912962109761165517583280557239499400028867499473430759969271887964762255544646345804477328081467532130809909784888599236410104673228902707416005468986805262456399243570586978468091412636081567953200155896588703445329327573564880099856874495848373303362307059706314402880166313110410078109071746574212250511193508505029128523758325146701991096195202212679360305662377690998081578886778072624667029744568991035053431545113350344445055155671511065326878762530968874598829945945755514394808590541183486706868610708529429502727946323631120018665690142553602815976105479065465971527509080866891054172676562042784718413339636991787731988075162544480040650415211495535946133901218255396126784893127243116004141820779969696610874531510717956923953350651485030226009700314320130687131521885717546484847244262926559612373202275664192414761042713801448173241384663807385726419582957241599071718969042640411474614913480840800829106872205654717039900088403619449050564363576616007319281288888048161858094544109520873824243456018532097984480598933178660919415293149177067165715418886120639170468289547277100398770337272007952660865452490773198631001696767198037228681936936751796624647562370458716800271438162743653967876970790978456248026663872977948802969725441432293744868427717446505946604867702067933464856050883235726383512949881853096442365194521148185500011474648900829942611549870611733730616472166076311577019132718083243668051069831856398022121722369166896363993235903455157397298587725092589282096852017072181367256823474409510725019555003888400775634130981013551901318474911993121617046413613171933277045251768800200176538533918975718279544390830842211702698277030560664952214982335386853073948259751198042684198389622495153396015190973105697857461791793369427004002972560113861203715172074865523112563494912860767220386021445986810604013139428807388515620709175634763368578063036388891554803378534465968764140035410160363457399851818125772922010566584546581983463118069312568773249624927429977401428781348334778292469940282859807111629453987657965831882163936572324920470078911950621799501068260187339706194300699971190293850051299309993154240128871305115008718402763809135149347505301403045322389968579085827855193911583915087829567803315708656011349954765695174593542199492082800770288327668072956153287344168888652933334956021188711756312160143126856526070347741871055191118837642099020500173428546735617205427171664700431757232102226388018890961906510802091447294516542175583923945938876584417186320253975956221115849355947165488874657962288606351900971297808802531718599949369958728916237170652379429081515345126263713610170702804456217327843436688694278901332227389443331705694110591523909716978331200875419832878134255285109674663592380683144435002405799069819241585831799611550289761037363836896680560066207916786813976958996366200504565046227819636305475933829188983739606611276524395217781676701104408536902933900491647800409622173696414655786798040719380535155629721626180931038701453060919052332730295081643110531336822803832005356094314339217261695415359030073195689072430339781691906767418067476874549077168747574486254596739415722383273285762551992063703626048811172047995740863307280829734316259695188885929174063232108147052362116763893200009835802239321540071586349022314524079560555092315721090552073277466370423181046984446923161115433922477873798428159935108440113422308697915353205681252709625333430140889847454513797321749480263234639561991826757811755642012478573757202831266940984334115413189646527181144572734397211845947792927735575135378575665023572816687561853446045050959621632312123191460961922587904957456797341073019458055201689164918993048927749890518845480836692125074124724891912927947981537382436927766619142261429791201213327346494864249456772523970640401053761663451960720798555377648955379515787481182477979385648373988636178359266236238177910062311435974421574146609588392118761572762691480642983789967367717075913586190766893979634198563457931767149565660677987458993930631797899028335861758629100912823129583705702368187284576322160901443582250147025417093147757379917983604538323044158535970725266321051246050336040882698917874379189013706728841188447777336552371656953607040239629947762291991958074998541504326540877833365811083941482462704352559644225938695191502552312396129916769288604382163565065475765802930010307065519730512553427964051943111525630969684643404925424621601846144257631558431713216862994532616621160075287478074045795959930944984010775038655668121467255850110067069139703689720312116799782447347508804490151770236476856296860021443589750560119531785774199190404282585486579111203326206677341565015058787090989737420018481073846944953754383854146606839287380961773356975528900849491735553922483700037840588358684917769227036947371708827269019460307410189403822495786897744825374664941232918328058872732368733747539167904040088066649400409820282108008506392947542795704884795013823351497500543625500770132113679534379836355202966141007085580694354777478945198753533445769862600864829371126348251092767399622125761921235381264710467159347732787559917723388189467414634667109721769635860807821375119453667626243951246517492858462679603369144897260111294782205057558805105381077278593765518432106676708453302171679777402454332268664471504712261022068049949376149246905185540418767587721959327509041745690475100626746266280128973271415077271822803752619138088697273130191574402637456538888076235552830401506636911267418080234553388434011312043177498755945746581198261302792130620680909116897399077187442292418786095224308464289963581747578817548941230050724246274612273798417508242743697442087511804889645189373067090508374210540515300937134193713617936137889448259460581136642687092636844677216884725374326547469269601267920421472357689193330227337207268352194512633080796396113988503547017454201261051351675518928259270937079100513652079450548986644405075453096474351171409897233186321600636528892658896706484614845359224194687423142097401248458984039250594041340925090295572333361483275214748133934057168695172779885687855455892820918735145977272935013871206991650073026172640876111396672071774510866616282501066964557504860575489117571143449540025740054856212413391551191761433176194352988546829799278499162755229333056248061277249160310806668956212969873398199166621245584479588320921281977333814128385874795605089715069767640721434499630774393454032995553683555821615913448169241508121756458833720147314804213102069222628964278568624302213502674729041095166247674677429825545493882307669710872850411806484008477862122667599398294500799991809205626232048213628191247715282548857564110316690095797782656360660307265533758176376042527533381136097937693845251773655839002512066636186418306169748796266326194016481246133583331434034358704645820194514076197402620625295460505974729671613569171564830357605738205320909507112315406495064518294844633271956709984670607418479161938678996030369947765114764526839489638164996519516063170848538728713880671568158729537564396041238058990476075338232221153798225020717902499593197783995351656429515189615419087123404828328415302583088677046500346890769141313549488045314600409488718673401318004054836807307381375342595621416954305872595899714493408171775735508504376617513402382521904280408419635263930258810778172604708753796740360978397731094141448712594011357194882345987494531170201214607848990679110813507448230724147771235102092811198164758867936639130945435546511098859520365109772364029743308747336025830101044048982772971450497489867549629150651154986537282866105963493829428564343621502788797206687824388663598920344582810363306835942687181896848263852606721563474164567020671603137932031285098481134082632889083975800612881289263892173963975983303276652642788853450340653627687212987294750703593994650340779350564913951933747066062443748459710589057282386359195895297452909181189051823637094911337847462963178538530765730781095667479503627043422677273342304552091184607021937749290566390527515112352997025394756197792856463905752252169636319139239242935924799246554437984871365952099994011034681503264760060669727757088689984316310069757103265864276293853836470316246588962115952977881385969826431446365781121779046469266084379495193728288015935720218754137480011084639896878338420925745649938591149147510698506192269143264650559250322321385381745400820290247949961222395224688828045648203341306346396248103795727549240495646399262005443612195933274605840776163874968869593044816016553133710429467882517131443918111782180300682383446777849533569179641453479212078642758924209467542672908806928465241978710280865493859396306711394921373456068160910921238000249614028768100248139718104723878351879654480437735993013671293169959243354695811855051860409887709705394587894797075484951402619830266759104066594679201208690287983340768708492324779026340398025727589873024390662520526205510812916484062337632092993010903170855769640107361393185772058090914783544304225884297481415345114908975916553257544381595055969420616844248476446879470055016179061715617659080718279021902498533828918389738736863913965356190563826168416606950663205679068530406481371065925440635270709723023334426939621741711279664087440345069633366069909225963610526861712914743561314834216124385719879075095829001942595674305967654606522388749320076709059079301704887644477965389331970381122889118241688666393798735665035839341326288167775675800274090668277090118460978631330254784167035808565246283285878167432148141426103066408272905276593527616188951636911481055237067676818162350547728846034076520111002457861800558069825416118582269417901747540542326529362772461562016476619726463075666699753212379659326022708483425232471753885180714735298316606971113943215431169170672614652684741656789245371818387667736876163609043884475348836484829174085860003471855707367011520133434073506615845547801364551021418432864568413567522490059197832892425288954214106685890495352211021852508029988394032429128434625603292186075127010867678516955508365624778702727962591670867402058299190467568168801210704743499648159363840175941604029720179229301209033259181927132286131531557140808474762141822957213897087518579045662740821549345412397760858133787169581630020823072723040221562656355677041973959817538095857087068745036138076564292856120598418710095629306566357956674087483989087930032338941109280854631722820092533991885864525615636867914535445643930501217509430624563912838049975008006266118425286069464565112557470355505143676441477822895545114735559403479867190069577016331359340241699866160996047547788444563335235465335145519944233871175328499325673941587446268492692709141502984702889882100184891111153393751875836844767792977351875113650961612832921764672890833255901692524423126500128008806877240534348535912364302440711214161574091413852900929097086123025116030681334646294649561962746741241273601491479821100917338838810433989856209741549819889934752038636493030912784818378925702933118670610583736546585282813484207878123375723262090974651392153885455297736077045387169527837311261620156635022390203558766296584042340138020318221682311427342296881730508652014758472257178364411919793619474583135933150633313590708355320470056847699759784364131494621875200168203707305481605944934751369472398325633637841833484527709935645130060925901350569945742453800475729348376519895215927302979004643431827707940334486824469564790057139118696827572932256977923707339672835192326815893159535136608144023750233073277548793967382408233155743372635297866331888445772076131065892173642844498479061470542113512358106679763283738957300505908440393870410765364624966672306526291213069101260519132803367602478565160196759377109899030589540041677727035296633902056822250337510712089315217377209139701337192773978543774798330568683965646989276565546608835383911664652890468576638360085579424347418959555518869213792338478752681169251403161691508048380313678246074357840045174060715085387081391628644036814333720372670963636566338031057132726743069258447433785982045747038213576661387874383681416909106529507964295576619402020747280455780128763566073427226906306003427314850301405840315807597241360488226446697605371342679386893346065142576308441470171073822768482954396776012377492023083504123453024919709297629498661630699584031107350431575107582322092137606774698380165984107918534606143975941633020327056703991099044814290196689601324986896406565075440913053249797372565837620130845172488736282224904486322777125107443121727739425659133582897171554193755792976845062030141497455130473624423527435785686024776045731833324951789201256682977655275033968371627459887562928702881566734726342759949240040679717212829502872210391638551860166613865603638121244629262530149739208500382868999651546567697926344621059219556931061800901645396907621127941460966813865792649862703060030490364638135944200676080618481284430467940241883868056098050838845866566439546793652001918865916435420599769210613848920554827712167141446630216372859238232978350822384149994918336770937012949170848498355872821840704665789231071447006171544583953462060148914296840599479003819517339637866321210047569470520961104361084364856276093973613860842318449036044349967775298988807434096596571301882087080504257091021871579520327090344836496483739726588934747379781520729098280063152413992467530899072494209278565759721589208124754585502320730091704588751489490669089529532795114154275442492666991138238427753961221648027837430621096386745364286599298310474493079497494189970802324134350206608512852725375972350542294817169093878309254502256774921331537548047368955463170979933925238807196760909111897422457417917849831270335312017545982107783655686497788331355306753318435733115434636955191766238648852370631014138585893361651169519135476624249876635630772936065715634766292085454004960771950277156987271952871653184097948363115655003158107670433190472338528428751937638989169075520005722628010624825070713420888952532078623852618444055591763680144845482739723521456087672811178661159554420253109885661743221017834845996603915891514959542959844969871623911160324989677362069409515567282940818474633250412001371830914731157212621789241528335441882473420361782472704614535981084584922087039019685365566048798386547253777228510036042526778695863946419638385378452239693525852207341470078322860740036022750293209652704567200131479950368199278298673002001732341846806911167989359483911066802795914807445598048827340801242360673723805122191066418376683849516660195693594099271313488067349354890604858630269428624452286869762607974014925001719078846487819463247950435843510409551705294617661538227254758898752809617647672666572129158766343167370175083372456798480463212675238652279948285932570919908734257303628229088006183907923129774739900183158170718624498676695171362762037574827644102129531126210322603981418791490434183615563103156398453713794158116719656333419628896511485497932540979014228983034397457730178311397836641936519127369771573413970502113921894218762603184549884606219371180855408873008193590957705533440917135524660855503354752973903442633270047511942533321866309768568973490506391319319546855307169687677493478687159452079965842646926737255109539713521026718935638501952517872532054341034520279460934307291805853265718470672019309478800708837548143425106740068871936790639720273628530338926742328621783667850228286450515743977565811273753992153824084958100483118787921080372236772344429532834415005395479114920881927077127098007777206033827209537708669834665022829100458546653892610322020389259236986250838683021373399453909834518043379280268938928765824037666742796431269256275996339882982473489572582005125590805775441695640364440986426833545533458058212352461118114369942792186350962214942351847586532879379488647834746312945371887209257360148860643477379103088006923098040938148116716656142189352951482227970258648711335823035726283933926411571965860963247883426123250516431663687283318938561171951104328959899214830132562696229330963667733112083551808378251732227674544729710909870225399587849932343830153977760765378466097621711384356834315167361323932929537072980381385785200595544987216433381056689639225378506567448826232031956070151421904926568902410379980190123649616081236792250824856328154056288663945049484139247030890784792628719012376922653684868244087468098423209558169878167431585364884177256818502344090607674204638013393654930235209353633271262864696956272582498175177349612897285269207009472426499437428386496092569573878416155148803994055357200179095600141312141580879421837677118844338706285357828201637950295359973348174568486619578961740143145262443377999181847876872364244191857330685280895040955210027975538172019857301226070477342258711837742177584058098547079927289654676914684379831432640879777405904848162613578921018244557011853369758797451294289550411571374653595004949956442829984338374588505356583204811309543032705994904958673757822277647248458759369304226975055942902743835202927337608532776696025525761577942546964828109495973182768758023301640470078602387723655879647196522720817353583735038939665070445468109728953129718890391917713999104424417318570012944352820962733391718066712283282485354393650967666989257876103855549646598686568171928594558871466160471889389489715856418068491535267504585287312191626542903749013429591702594965233898123159856595413145968258638247464736983858979197092211204314445473538357464818456735607579163515058780440912835353781523793720939765274517911483812362133534445458325387281218023716057567695250172602492559871598539090104452668239989003950484031136340079191177896564589098102054933303812881046920721367374634036514956827284045484922838441411158786834229756014682000350754361078291836149776541345116389018296870092763132742955461461788392799330936410076635460631246410780863051469445515487734175879236439316872753215277733902581068380602533294772982179663467583611331305319022208765011281417143693272493004425027723838591389734568626180185581515941792989479250535415996102095360286131730552223401167949844166855724630780440109785869747970379466908125804605084776423946713081410514938349318118256341101198273212213811073271688454800688645789371677400575671664958877334127424192538931490383836898509945141059860270725094991891530779414187537223668869313727433716494565086651839099810282325037380984371451834286662816934437849567067834862282909300059697638636718128362881126251675599418021242507436095386581849306919400998172851732984990550267294501388258716867705744609243796247418543301446008975574016392195764672786542472894746639290612809082133592275303297474407167072115710551732150355406403204959279183027812817173116364976712435726587226685433299206613692328754185084211687053892080614172324499549145283454142148429321125452460289162721107193628238231314381000368813044801569301309993784163005863970460486971986889329507623577696393767539059270804485040567326756006131359755764704087703265554061022879736597516625985799640456936742426756038123761966892377851766167970496046288425015692735854005257837701382109224129621208905224427599726441633967485871768399081739015885825266464539444988544917420607163267285172493971189890473291217309108492770194824992413770123599742887672591324813990412247598301031151092464853357006404232123985112756861968983693354947566327370982593074102003269955561732298753523759801135609669280975289262942784047276767973146883007839892892299557903148488305600530606094507901168956365411349329272034873928676885900818502852142394988370618957314650800468840990913124724159806808369044791947803347617029304134914404744721150064633092947713136669180960655038043947753108579697012065806360275418943598102867900584781818092338103615068632094163214539275248169158036615209572704846236910633909521387713190045774085146882991010997591481528843122330471904101840540188825924222340502216499410188358229967111942182337088862596121298967682060875320488773505883506209984729172305216290711506420612314405420494778909281571492351424976117748069076633826781196031166827488983571823097969876757631073683125710563340283988252824556134770828171405350609529411656870763692855631849802629555571343032173257395720388966939784654705061936400750483012513474690820477962275021387671749882290230302575013624123258264529139632352694637369878468397034134168440318274798852638568957957915832432089056848604951899417602973087947552085095938728387584016640739314928473075314129653558494460607038768397364821001744793671796603793720468185629106377317888859195570906451902277984946385655999564221317341058080026653982497669863799062224465683049152345232192803398225716842759983664322910066368789793138652347056506886049117278855528531283197188183575694674014339600598682817302879066544269751492401080426596562136640102501234421404452556534282182001355690276582647258329641334223928463609545006445556245461240957889718270713408969977602792402189407812133990110579319729996033706601746469031847607125792560284145980501034516085958465170477824388126852920547377860830743262965978385694374414566500462883699974175971176754488718762367558198877320752916677917159842071235037858848060265698166272450060150949165010463788526322061311209773310270513248405937757469224555006707488388737432139170528081282719977137721365011969691546762786171658325504106991804351065635999756345634816752170523051616990481128677835487022288048671747787150843643172777409205105663785255875341328947246460152920395275983409857868915750992216698586293814988452903025226939114917624009654353580415785853265862899568512093673905289967610388462010658744272789736328344694550586762356555450269042881209916524428171138330407693238530018104627004953266839678983931266441206121422102533105697121437869060919553778517263976689737752290486535353042227105866340991199345155871343296890126040319062655030689203052466497369108594542940780894391212955508899435272690578085348706961719742578427444060017759250344128778383811155252572114714350857810986421961219036224163626193254214480194555196951279486281597754203103938242649495938142806238909961014843190564232452314865695543633111978506009100318115565114127076677513487314482039563103208543785836506865236537956251770213044213980560706052306218847403531127330767015616702901122569359143776472857913982702373603157447896946155292357297916120777469124297117528136809676074448449359628133677174930129106318476480100869124601019038970701023429660324096070671205358807777347190176109045777654510323877808201133070225637659641836568610436020402180062593554946308448515735203132484894336897602260801617427335948796446900617905045598928675835254977147673253889402866148287030995210404118974613492436251800431761399842724979977633905117401917417328181830171342114827821291261714434469472995059419886337570214803981630126593631052973798028426001801685651233618268902795256470105216608693234834017421024081468149153949972589276810049641256589486070370462333967164981920970732537014747816603062435895376752427256970163805936684439016166725470015755488853009006418435933698379793182776066746358621791969363710544821760949023006349662010812500592461119939850583927828733000167687308270438320048233908650509183551109036206971383118973721288114788347851999435204386717938272227063164141837357972756312192778405524493550790387465695125617067476030310726371999503562926746972423870577703562467161289586648259156759266251917148707368516373756487215153333755473830688188015110775329817894818890671475702583127265495291219696933703260092936770192030066471796277824782366896920871026157547685816578497548003738937116214325828821494524884901172842253417828174016859742981542545165355979132251283229798956745651923033235356730092975143113879816325933927640183491361320562538559438475116876630411719362999090234400510254829485762968783392297708898023772332772626896901472037843787426250854654984170415196708261896697358412979251144530968617856523346805337932765701584895054381747796209104791914809814165206075298297491584978041972369467788418635962970916020010213900167376595976623208260663494223099392615285245640085369778202474293060815648364704306866029473376479530649818048422368397891577960299143727607737347356962863890274874603603512150374437810592812784600319366551753730184935052312225387929036764270078969535572174466378364053311962449683564629373016536283361690813953508314351678452594616275973107478509572332231227609463792809488016652427524782271697304629950058089676041229123176135742615065367592012170267865538769802674119546209630252917098385446774160721867863848168884727206540954294321351236609900185430474843093671995671478560262613021263439394911075496846179140249333673940766388925115687920987538144288636677041448821959018551000675269439714927684774724641681218499834685624851142785615169878468235961386515848094814350829678255265973944345252531042967338400670667485312813945928270820113763154242237140841040357556299886437858367511133414491072336092671706576992736589511996325722511482088727733912169127941337950596684244815082396324502753392140748623137536470039962185930884699112994902380888707651698375760217081784840798978669631271195195456932345959791605097670262212778858853444059256574975844902348420143887648976764515662688264328948046031282941515257800304757748399318033577801512592392360229151566138349736450111653759889545162410665577249548363238518861736587748399701466646473941613848138942121896654016725700392840040400018951651540517554601600402298463294579202363547643461329965795661309484714299229732209427437466979313381225598495598473482790604955977915068997640057030266383425003757138088914321055782434252091421136410963052218732000919693073200334936995905384727566825895656247851888330518780524547640048442697807223596432746318561893527807570369099225179509891775875567836075575711091054276111297144893444997009157612265685962812309099603344409417820287782466193099597979273668838590511656371923298604156321799197651162508952895975459630402214974342653924672830682653005492437950380740612652605882356674876728391455457814362809268598742533351143177899083380356182861852551040242131679612322510514965158573429532015331099036939262200703185325665527200475680373833161844353621528302424714833418220709508111557854139380557922105692656251399519969911060809659309237364384962786179442929878280604625274570763077370959558426178547271812860561380946315817023690120774682675180362256869534053255058210013092460073284046204198817867127681090204140360116633712364582432303499017145244754714430586649949271727853795619004589363371599373902404329961032644796667738712485658780478662963404647599478869977928010791816733919871205942693357900056353748545975884240914862102723116692506295288126206430765099354312694402005579332364553359719504700088748906478476005853976322623086012403869644279951596023057489996286154264816889182278259061688615600155624935753087936307068817920341270042287109168868799225435831657551412381206025550329042266079304405131297178132742520746714400354078657894017991666069469505505747885543937852765445766383058097543457335843055084962748051394526277368665614562894832022574625315935394394168484836453191026297021907835072045372465246177215811299734755307956317228219067186960170138126086691581057659258375899479051972675663162291509866324482256910736947757059642024716222540924541166034613548602596963257446268690903976288326655587795085317080993182754532690122438537413360072884805107781221094146960465170716646168252340170752209138611566566045475380973855457747343144588509040132844912307673607392965827647695008063680003509139237639041508363691061118506145771646290632232386535210218698882862790869323939069955733431456473782972557060466070924193911857843655813914539858741615072955131941372580326265569409769398295079198465196103601547406169685467998732998296625956570464379215863770200617425187595724550813912462407142551927903915789451125584200409478657660340684336423185282078623597934136134455572613687898197646336873835232526763832882453050914110806377645259972318173998991728838494248140278652425118610313113150450747786609922540730267226313988137173673464687934436054823339311029157466901968837897545899791588346140647952806123216451630521872468278000556447563031470987684231652162507087268696951452638691249022875657900118464093845007371959398382950509375662016873711333942659796300448022455996237970199410128582240508893394990973628591513462680072002839867824779599055582677658537033134855224091348005608480765482699731013634057072832112864985544495549184824637095778861689477783605121505284035972148489087377853845223046354948769530199150084185610000220431968902902358878250297543557142586660785328460484896235996381046538939304001804740748610363028733368017122023488160962213273167723299585952083478188950368119853032292362791602972678547832402057288135695250655801175587939509447874853321546396771790786259937197183050708526136456419600630318304387011366960595711966454031961443027005474157300858234621990561152922997383882225462099264835228015109691517013286215623446570466914228104816069797590738574995389778564546448507095096602968710958554916764372311925534682427360112074965356034624999173215703690324782371055551581774808215262001031810692662647846355651589300649146723961047977778762724212300870710141198610701387414677090822899353096039325869319376997156976561450885065394631358336624203552706702397905597082532228966953105444992546537972415329533006767101950250777185996734847030220268455946084779744619781076057967393133949458416715067976139351904465011865924637068778827396729793297169951309683671923130910360196860826668824169802367538179568419908082533724736938205730846814701865090048353931725040584875858054197982105548912446940759155780927511737142142495319305633324386985420821078340981758258338849954695343661312258310902647720629472032328739673801983982266471259898789073722826899449710337655972218886362810461560534970159089062131991021862233534542318402110012127442128351756222594826845835551057355267115944935959267265617358315752154876456008032897288044179125004491870044461935180399200550761869144297243502263613435157048692487011754554590870497452511816933666990102293451268541452425371945815122041052058477572964581097572468422526933015751227477118738493652871000618523643126680829120387294760588767127953473358688852381043481382408729218011421604631615138999358326067709923346407725915874573265263842535820081421815068491173150321895210427581083758343369374646145063827305902465729691621492006461707028071506791290616796321974931442470323914280744409017500014785901433346738886509275030193834026963232304333056757676528953472728658327134203511678543492034699161178374239618290825537710696053018942061800045940960451984925080361996423107727907695466757138220338926252077625918111604416861082628353099305284390203848538088036835506449261650351950297433740584305260661579058097440237543220216647887867322706570671469328780769236378555868972317429336717069592385763472562035709599141594275401846184543393980029851128593675475474205530397000006293974298225989516436811538815098504868840552723690164991928943551082276799437006486306665468899630863901933865657030019197112549940506996235850832186189803617036036354931854414988854864629021437404203443571030423064734061999311232765028473015379883293006057545108820093655423588135216949845133441771331437948340480811807840340900571544885695569289582998977740863893587763283125149726643096761653348725216772343375045088244703896498608280615835145109480647213538837411852344673625897481404918573473893084336546578243294709998243273011105584465814630442654657502780576453476651084851489109573863049878919079007404186578328311169594433680642516524555281995633220958458494250693128039091340559693424969693280242733876090821254858830803333503603012535231780136802580246277591857604326920349056613116303147999777824187371956785850520882925782172762819487833054467475254003555658830660286064570977443033906746011074645202724044866213408091704516757757328305639609514128133187755166410386461575579956922567738332287019831811241087630435837198426031233547142801553197091408894716796163349113989380617045220950307901207833027974918555894303258819063138500238777489642009859289964461282680288879636137829859514577255082901251083993186646684507022559053357256738184402012274077352936662733297255582285322280975860318375858793052834884368121960178087342343315239390200459290059774458008667017490873370234061597919524656966353440422861333724418785229394130497219324259656896677735744433832710570877833676606132221783927381708278082003051135018892115629465725843227440064870290551492019524228032779848247931121738179155173066842813479295343305146872618048879268368832933322899842231739648924172724056767838784667272500657569634256388930391128204950205423840002799972030995012181587813291682993954328291711730948653403876826361079172838814316537760521695265928718126993706903056450535733247284016491072013642421532402011026668065254561030639502172714629090390246413285747922319677574439724916017492070338309785030441256802508940762213219181933749318654964466244378006685092286421344243541528534100969187652527214685034783409517509924293938351741204985998727005817444586845652737337424748378186431006188059453749337215612084692842299181232427070636977710420969777363541687103229914080298494804640209986781158288035624083812007433297414109332841578548129703222492543492202726010947178779277316318542252296513001808336974654427373493730052727237308005255325668497838323958575523694314284894619699041857095907409729756050167751862190030278672223446614363344141565920540712464225086855417566538859889207987278342281493465177592556828896818811643892135962183319305524935952920097005481100001952518019486071768717742743530268043194658439971272472028923357312504382590164310642548685513374592922083300389018410790157602695570657282323863404481514417509957210315793035206546591915554607380395927108009902960384782091777710323493640378545541549511386129315813570984939592715207052303077395090634396231913842315915215283195504959536049191881631844457317787071363447261867139658764523904526091070650864245344658363347958396772015772435123361586149511064143228160094222783065291727452607140951029647447703725228609380906472921904320145910821837141015040168921224300609287252324349606557898721411047704550446666024991034517202103717664163764872233672228160443041425531703961993918188091779229985256167141760090761064572245500359463470214886591216099594375524365878428449476820547496335213478445835230039975633618838585173387771233172282469428961756916333540844203916072865395190791124693764509556774896470523708097779533283619685653586550107366309392890192928728207380001580683334296154341302074009084675301199023393352118052165817476764519136815801499747618294216061452522407192904282384368032327329728771870335606943915885169519421815391976403790068728057812957181226440212284986643073021038776136416109621927760015918199991594475726640895314411406015011642584313886360204333468536621291530147454768927596960759056656309471373903731831275463494096788324116410226818314101687964511498659777570283852662219854732939108989158579542855914815567300192126081952874848055614305266872708182044433432440691516296239287959130837414191035121409256806350877882773747039820996498076265478065930442201889340604735806424217147695082729241896055864118096324795616211038278112472763379906033837373092478243928310219022713729006972935936405491469203048025619737196645007033016577639519769332073525117737616195162392324919277637096177704153000862468239058401070828426915827653348853067974989459738887882282699907912586627812816769053174873939881935853515109286741072006240630986866230900397457852647822200721901287053012079381626587501737376613004356493563314197780259899899758154265244773626236546137306717082287467160529560700284328121084429004468095565984631654100434102672017581679795621819855135980799261816966263824112022202662425726007919837563008145913441294702416712938269026869442800722366367177377325457703139680982644750646716936182812991916861892928498903531011868815767457872310762023375309650440362406067598369075786497828455013773297078064334285024695496154628686297248698517263494214395036338527670413685975289608485487626717932635422264648748445658147944706025802521048759178406578041529416417288719898210721589614825953471974583023987001717080527406968838388442175801252115806022914278138812258442915759990723133099284873726430512625907726095891051262548187060332887624644097536549844173506036719858027411390691481956017379890682742099031455441572529338108733074080666044382075448260047799686370440819329858297995778196023481354966336575850910882610323987756253938887163618219164039980988046769920809491150759453087433207819725944079929297465522516270724654211522602968142909986047293810087862141770589704745824471561820776508349740912043377818106385045573825057209736436798806127041129952360425348787681061456420238077614873029379595378713731661928790947758467837958550333703592310674511492622183923514739223670457686613852604189707466847511934124758841171943430873843169245870619267424331978231981905026587642361526134423243925266530575929159279902034887279844209693688568197109024814858733924992553708355212038604162810774078124915882535604673577959011258645290838752401682530070089779670069863309348694972655132564988633469509807462057473805877211440300511814473361978433218385533027826243137873911057588354128185651915643479919215096658930209707471943593983680192840946312924757966698628847691855074932098171205995758331011496901694344949226610830308122757866260727759971644780577869347237063993663565295708715958459436707141566181588454395797638594987639503304645343827700511170638504589464283578613453158837163046997204966978147005744004666199027544200080894466913145186102758131697473856743467689806809044314202578290121385703097239272741810498605701381576063158071375703238187452348564767508161835664786505900334068743164078225675744310071852299049348492389486081783083789090480665090579080412827750864565898147908430318194205755131205809661183792416715650187702835081813064329446598174740840394803048860154669349613091635941382737824702862601714443299994448095780194934882790636673398334264241396677700250610994090261308667708359837193818785880694834383542786196920857457994823750081393733640341509992563317111032544631972774177686308311922352246501354500704225210988342140667137135086583688615541200917672297598573773071396872406066001089480811348992636170534813124352784788314053894237974688404569104805192874156572736152173622561555096605175202956946457015608055597431875968159199582201598354075155786236352302385296365216996221064240814650040478980923306149099892047893451306436347853386679919387726069793760520831850801053227451322510976828314701246854392753208200409745516723451042322583595377835141386469884499498518003763345322662495492445580706646873631723223972335090583469083203341435533013638258874003359865244189319711205093365900518673261923447999722526851552017780647840625126968301321269188244351019337589034721116262232375208379108258177143052112027124033939015475227286398018619772208873719236563705093220912932296870263979949165385795431647639264256956195792034526099287423843348670408902403883647216876503268893412938947910963102538294684535413178792034856781804847734952467606688040003393623561636320604190141588952085766466168251183005533011484843551385859217377879767266917523047666277450720555297472436831297798458548189770021964984350240875981590286398537200593307821226713381999403286122934420032187486060270380499203734515978702004111309586434807613204483874271254780385664911576201458530156693224869427127546283363389549992702331781754099873436809616969449509429608390445012325220507888294394231842096330914849756430249664058174216799266935596789710846183621437523388401303179545192450501640379569637795761889360275284029598548848416844964013630701060215289031604507200873680443424398217864792529430506445436414907479135676616731856759918980788435470175404563376619105652028746158381316981259963306030000829693149695170488109360586024180511830694931875909677784297943826480029466202260676357107930790525303936153039787894070800532046678793703306262868235339639172713994249737320359217192099906084498277974441936024747998831498072060608106543857613124842314764688616247673560412874794478479281086686091667878297479333768419550907978659053033633543563162353694391884502044926546008181229805518854890169694889183596455006908668304285917255114061103228535090217958173689674894880192444556834557882924095204816509239030100578075543752249553004479652280745911109572076523281930274584974578519121322542634357156789450574922699615506047436396311085767969191453062311615937173312239152296252926068649845873695020815807318073179242447764515224709515668071460061035511709815178844538753335627163317412667613063618262691083242417205858162787712123729168077938681446440596474281072884675472360116137770024386254073463879794618203782615409504052339698720991342010577386664339683786439172350717865767476268742217987993069013852773015567403921566031524309223365433934485001860939223070130043593632303461419805505425778799638059817968032130631030288822057579642080544238890475924052983187379468256385397370691462152597701609608512985714306738713004786932674397422735543347549201553316238647781420765444795842084164498374641029668362051153692178252842054241842344742505389860707815884675118372953848595950195023060724653476585365915326222031853624232386165543432554283283025484338379750037790672222084949247305312687476579898734925565181807460351425556491673995781225129070465391940750462489781473747259483734147650406301882823450412779504810456912931207992438295742536822716373183385591022290710359759175197451002542720286651828899543253511521882169108380550159578115293241775965807398237215247167313063837018364039333421441336777191264489411244155460423256611405188083306147002267173502346364981841747826257097058838391828788993576653716371319494083096122263448318623843940158593222928874552576292269489413419992785590401221471820801837471191939873876465149514484977473094097864428973035749598511564101059243275041845665277079266481276549997195501551018783465741247434880986787773903180920030737660170123408582958422975536111271778530848294476829337983163632470318250462033004375509461969346294600154065127447505406427917532806112229266151325744099453279393803526529394762883152552212823457491258844179563727479135989876073741457662920966104400511946041634675636015747511249219533598669451394081351725118658876433129249027797205324630376004057197070744897823867368260608035987076829986501644310016852130959455692437790228615781456423355481167214605251763949323627240161055497647346979257738300145366316943091690209807066174747742903934273632716120410346274006405172062855711634781820095674822223531752383491741854500723164485457685336925237451555065703690640601572071180304080060952031360838285073732906171820523848673758508071616795178499385835069331591282673089680308713586583853685596191204674860116938248241523393584037746408096345869361483289318295463854566118754784323163679547501703356253146172467125007905110223731144694962610552456355834048178254888639497348109242866210647161274195958316590991229305607544384397469111399165748505237939054874430131514253897468962669600432454340396322956755752851757972331326903278616492205515839874317405383245121103874284832535976325221311990348158868118907626250858114870798184270115310410082348042836040188476819760244018026658521579505486927538171492732535005007232897475256437946146452982082286489680575746156836597723642598014489927528498926229963400413778498048849928969001175569595963467244372934057118568714783021635552829158493305195303082575920078647311915967315773532498856810767302436493732981255311626443590758059608165554447250071383640273380016751488118145496385466913342781143569975702162200737900065687358948217254909155835236248130906915432764969471590768828311850282474976446702158540025757618934287299849993782462364045810702342968653620712454875617061221656920560812679852990991663711355450750417174176878231878348934316152746214976504466704427363123218217481417066997823848366914816049184479548077827646695519164463262063043857111217919965270205857951029929516810222677276902684837944552845865580924305142194424817419676779715184897355857025745978162059459966585814621069566159632864951981884173308661408999264068310190527649427397644538235690400666080381181624608689713630032897303480285274854334990630117734142904498347624078088427051161150948659602337380617685822090675971256802737500620125788069580193278167567276001158528453412936880999989616952457455556005167323327329173561267849836303845131312191708469763884836285336212427451250973567696472916455318961365973491482563829543616592058241952840440290971979904040577197021886680190741139578003045563415915142073690768082529019155357608483234793341096439130351412187634221126493154542972283462153583268578173579435894101893465987071490638463146624805354028880833441500130649952724293868719915874062586410080270386496665450494445954200751245552237119968645472315339480317957399488002634838231441509152833836583328357049937331351085172619390323080757580175151771850233024855441308201131483092435584345649511824597648027490358535830400943483013910132700950772213107609721832246458958752100157591073078616624777682306340382955130186160956912971579483064164154959811833539273066861866905394221764534600688259837424518485355996651377403039138418760912810261978883639984811758054827314894670610220070277091551853965393741433306250436969791229597592842104810229824066564192823399693126833890566850834266142508057778660728492800519050131840534645435480857976199954915194044610214750001678965525157246979514133526965968678279199919996130093034067325154239887379157622996152509877917915395992488840196400880208692310689936393161388828751394169130716896075106059109715920129921833886750597910936262872460137109726679075112905976907830433498095818583900983702325024829232340140300954395714869501363723102197213826959464469679497619111559192933899114813453179023468823902849284718015615704587892926127473435272788705670977647184765715794511075703120952821692211435831818312740495052703238247518719333910007472714288302385522009388505326544516170923844454016597574125807414480843446013420602369885298319058512384099462894920820393511094571710708614570073616017434540305678650554208365018380860577155247716428079769580502524307325529116746404404619615950965044590357029487633610836107149720778892178620828676252066833373778969723430868570284841172369804208447529925061825844985349397501640633356437609491713278420657387883688129627867441182086158880247316899442058215896561431892240359492102948418011685352359434504801183933745813593315375476209136157109396826024398936002378476119190547412106571593406013254616478658399300373749603362603368056028130783711037963713241652191441452447424568526487928580965739633053546776638205226296683652814914817440695254727979852468123293892693022100665046469953044465556966360165064887863650439313218828589770928489584044436649764918310798267899321883989519286297623102137296209755166123088084668213662140750931354140545261192894449718657868000099533120812914545964047360528291793086926320040645288190734622216476749518002717036314020140746328113859474391107453664397177669124556363819138641980326965368974916712797539349668012211580400073579893897703663180953368950689606713462100758121545428851027386552328941569756911325319797122913885346716356103204257661261938852231051795552897063549702064620566504000412689684567015613321253101904612438630808601144558705259469775473088540307183099041921947999279234090132521552542862546022903144452599321810670532252533133551154702437005592503920118161555293973588128882524357329459754075558800605927473964929811592373970228746581068292519376911001782363246601078718118567284872034014674536127632684413289870963253689615733941147989842712597464134234237777668966919300438941468445147536110330188224922263306994867697845267871129385888778718022781210341992485363649165023605617910521455869392029445241146800622058684702647338613151669639712433412952568066858897774793803650037097706896199798100207330316855864057888614875792546837680630258060016992653094466348566834360092321277059169139535523094735299722008695505513339445069805270782718674757373148404618752740158958701746033391129352298522606114920085266738494075873890789097297056039083033221945787630383671166933111144711030971060952390910628613661011307663895949401672741492656018849702934455935283846444423845622784607552418485257762434437222572628968975084024537072582201083270880788329322801375160287548582276461097538630839414634227810966219104733320233498923633341285947019446224519280045204592008891067789616869942290089448176554121340274564442488772590642028697162353907337285000654543585784125424190444770911431062374145970635387586545077604136258935636701292413070696397188427147705046418779120121002916658223103025266296654032977278899626323255976237954942461632192183265398508170319208432536503826326342814789809794956132466181081284127815442497601361909375167642717839167413439910079156792744920517450672918723277335709179051405929338268222464941624567206481542559351177862211767025234552004356868401767116459501838435974384896921730195639551418448607956031373144039511756005457647028001835026512714370918405104758496272832170871443879189189609330518083570213201754352618016504018161529321668883408800699051575170864825104546573928699147702781815230753825211556012797330774862091112961371339910257032717934140589590392234922988505220024720357266594166796299016112375411131947152257556895199547518686027629602844095847120545860369275035052049709635735330461085701281819824037534098417670125758392161386947646816515877003288346004159683696269922362321185411469951457582435212479843236914726084904755476717139920500826597852706886751636043470365534989161822007019387148269180391652845339345769531424805852663307263614791484648967243441567498828979550714760402413787890067793814500763891985815043094225173967112946520520152145152644423247244059407268958127156390864203507818535650657013022847665877907467199678150200034130214764652243889511016515934959763971222979262384876624695960699590088958027578469463727123475577696332431202016170556563762609977895287315353369457290992496059953295221783852898994667610150517236481730206163443809847524003465128541666943822885559467584111835847729704760797996242019508699979120821731904353474614472898786867501044474854215786969119068339662828402999895525792716000779635511407312067390354844371641219190093007056009049388034878315531479218197646047295095526443048035942304338465444009423155779141337326794312801552965681005796985436991271399669117838222580637297042424732396294232218151925489627004483450083954427199506985385340538660356990975298829439364373417472349924764892131031320697925749403417074596262157516500198812115486261096546367923070740804907911408655647250714617612217887955032965519155853133267024301527655747589770348233539289328878707957785710521087697523220360651191933627841397189137839762004493159158141168206045335984040232612242172658105339858827753315423327659600013704720652804983386746343879956733234686429649209981773371529264055236973140170903855289022742757975679762956812466539874636985003391377355194470876361784603500968293668790731989995786444381250352079247177956544595272544303671229613364601746738040242430013645834788107992616055846151937734329105347028189402565098123254395800762185347729334379418864503724752387526525907497589197405591863075372436847373478473160450218273447137995551907642825696046079614536983349467903166571854851551859816666770870023430006113015079710735756669563842902557284984262874988822936855099288032204744893976430295172904133620043509877378536023436479082268183609267126177128482599308870939484737013324074945173833138388276150646709445465601010174333613192834084641200919705992317781806800451592209775586565186215830153998612496786066515375001881430277973147425766067692074004401246663452282609006741470451293789396990361949897984963172309381528089956991097222020015352808072010291162786341610653720401469459854444644078813703984938193893874284458707186677623126742099990323992338327101118099228872763986719885474241794664894791447962583559929409626726415603361387476713045101674431117845350736837591583380012830420563472129576250150360148351219834471341167488244990677941719078282247183365707445063632087232481766168273326494571724177319952237003973693351474561937266405367789593456302738997284806983161119682176893916701801724939973774436366491771439653117748612529790109661205809319334689079107877100350519686623205324054991395001455288467281056803864632734794250718135327272966035198832474943922100857960009188121136335763280300004401738189491212473205278619579756064342061608675421322935796831877307106865036508619264889332204093194978569777696952204555804374562232984828739139421948053976769674562610832120480621391330128216669654074221368236130144435393523981050881504750264113915599999290505067770651566252713407509666557536523269736184103804955789880750269808284758969426987530087822015656117277780589286851787775820520649055180955108592786276570641928355681262815282223940940065446949508970992349145555920120547646111555039159663143619018518856956162262726442366972458031151080039278214915093621473229681748737357414090397246000482139783107989327758009036581691992796201042499740926235339046245755946241028202329451180277862392220403410655809425977004074262527685087574462102099308835842939281957673967364548242057405558130491323842199747349597500243887700809221830983971242180721165560555031961506364035155468997852202758947190543072605321607321226085165660489166816548660712578663853488273291523304542859039732569528322231771230342539323780615321248052694288033017226421252228377445537353554667984054636987054246615694282002936107872053730698768608059061825748052950339461684481823492816137647308557562207045471807553150420270452150329641120294403062268462414539732932553942007716030829684682151673677970305819351622459227225696978219379372924148457607241399846137556308675241149719761781603446777198244868041978754071654779964814502174881151749224549978127453839244856154390835871746375449090663946719890387270140273854696953926410651402427139000560034205566870054543376202936396925952159451027272340138870366834894309824291187341328982747812519936715315418902187736789263227652025473807720143277874609443732898302998329440830055845321112000663401261219912417153832269755979197378597714678609425841637342299985509653393342222816418560258983572496552249329511132849330425334530568783909691372898923341624994541904421347153866828972622224716221460582784845467174897460557262226293362730804675222295053322440570668794335996398375968498215259733148503608932387297814933677006381223065818283159116217738127477705442114464246262480579358029729768539372704298921458459609805246027121617668930817839523825403042048913229883732631383635526734115937436357842881425571779487578284062527226218331611911153749800549667579555961138278104601331221991042180106058630261387335020857498546866954460301551782561693263804669947492951875641578915428127857818941966682390826174403793318924885327000591516754578709912132445105890509008868278275808706597142205650520772249186016440934522983855591256233138085630842702376027567041477551725455745435811004843730150852562160854076764988833527608742129791701818057723087523255505894460979982430102111386002700800698229353377204722675998920672302628975976464576281972508490048995690025382768950678935763453257785298713808726464846352249991315477205059214761273722611859888599778070069072285112723628354968291573602267394953149327248876610857783028535179964304892952983309117866600489068462452424599413051808640646055436311603186450812545216753949126750505947053176937026001401244856193710714883463921228633427090193689301022560086279685694525496972904354823145588822540008086629645978105409946510686793117631957946733555321574192345444991325778905771171449306136995692468365276057044036377267422970158403624807341928389914315340498963142069361920291250426664000281942385910732347253267533479315017475983164722581733721056407094656457238248878955635597284970178867195730466317554174690689090046323961394393447423565529075423975145987794213207026725535882140481714867379485804927800157645370763895927955599211543555888689914889771749672693473576017856417782890241196937745751432050145679788422463023846007809408182673575166104288372188347819926621281734826402562519868074062204642894344483205750241137343658618429504600906106419783292435344373588107600824765503671210856408731429018949679990946212865692825118260343309914118876997321574009820998822244200181697544204631975101650807338383166638259178541878109856269914846362809992109474364521864001270074468812496901808639357096351533139257416912442217052962621054723668058999837939927216298109088865558581093105671984084800571790913620938493960876176361331539704585305986458087063500644420491950409455729001265589953654570031628620672230853873534779624350541317442870820833680130244319906846913238326490708307889972771072672930723210545003925160134826518475602860039829782973280053568452057338915786877270176734626576816096827257227019445044754443974130199635155291173569125513941768926406148304437419814131203489379310009562158008345393264526366664990398549520637705966490808430073900422564011474016926684268944867498335626054369703477899538910840055268037482863832286798777128890032183033293059178976585226904078632165257788933411990848267031961394667467198269923240132740641809551698993801017692876930823958694038932937343816369608325868620512382373333901300111353996400272459366870515785052151990560668158273361759433321756253911385608482782676740258513699566063662837336182498650726942220536813291442260738428414515622743344701674049853390835694391208504691342774841366205787401406982297770452590679570400126439877611371342667705821068424092444680820371694800390525815107671597008677750676287893516111604478903937500664125130226564770473572622971646933658461078095437130873951440899661799241969250255987901448192764047369561000063610676866706292604930504765163527772275963422869533538124842531549768335213816866076842103221561039421305225303490553081498905238720120678545452546307733609427924581246403755543850362003020758711137921134951370655028181477954377553685856777930119340962113769774078252810015859766523597509266121680992319775479317473188458886005352698164732018952532603585932254367307413513684671822298994300910502017661571076352924754306346403601795219942331509442582410316583099021280194923376060795309746237859136519300573913369302765643751274553576664324712536644137891283572163931419564837717987691145120495950373564253014465582106268601611371666509331626954862491777830762803167443093210954094155701162213811133983920116561195428888982519809677257420260538756015578792240267211091546707851817935566362361904410588423261997219314071427473332037429626146383574655923598023884493974716790167119264330602565467386142862388758942567188278503738506779639310172096762071367407306109165481657204831814015958969935494895857747618076155920329367216828672277993621398321215723589450153113941136612392062916573795784603638575971862742976704080411885513228608714274184979675942048076625160829680587977986952323843530137854461839875041957810006631359777284202137355223654884741318883483849022905000115080387109714710807280840048209246967437471316726165733107286605611966960651351261068367739359794608045801766014400397923254346992708671453357550882887792245008074876792699433377257323956361296936131479275050885291650797543337528542980517687349712297176863360487999391288309904972307172455046501437653341198840816526057801784205656670748560440716988465471070432975489962769002121979033641762444347500355614622927248277368260635269679269880397039774203870573396272766917005114806563669181864469351293079900614550561654622762093024890055738612572398148047369104042063858642573729520975359122211486820133048649715604864624796537611598531450947042343817112709158554117843303915626791836846378855336838143633159699158870416551678433532913601683285797217404245064375254497984671148729631741250538216440593982926581870262578311976064155352606647519547604637639936945185205529136893147112991137132747269028069238327128122603764365755283447393393559864510555895929929757287367368942144928898804592517206721447479552754178265949842236304349113932604596175538008150819984944317835938750350493699120126770394938305020279637831215459802962452561796528358624904364814339021218218295492589944910866721543879509444532767413368604001232985522889288160126170396369052191184068321822670582884342035881406463722075798106626483434005541206757848417731497461518512404824473972410996612155776341300095618771859032870914172301687187859599444505486664751641466685574129909638420093069180108364964464549249941351156070696822160235842739740871953596046796903605202989772029717527662179092594396917965514959829216075873614564960858751809332509085563837568285717880277746464499988588641662079290204470147629426461170493433126621563875045758670982749992490948348497168309767382256790055070878202950540762347729013813735788284194785979758485216314441825400300825171326810649512493808399845889458556232750547564106045219986341301770541613396032780431574314387171959878616266784283890453099564535562860656818337162877099056517305623304677531286104978479614848723751505671321959223105176109888285896674778763739683384054112377330155816651705893204618186871271567510574576361411364307094703057925115687415108601823272419026387826134617840268927117971987238244610863362591225801806670772508904895108329834020596144188989559173492552531894503783775643527075549977776322074099242302514457674215796791799277780241630928136891451488875745728223302395589932848577769578715304808046863294129870662746107095832718103471058878218944894299165857239291343644133823234298596056735616530653719312984546546932256577569163672682449079980178925144848804014906633967346091599298162029201812774943166787683872886980104657300823330709158232350513821797016877695810208221272852253252124474147447941119892779980164081872294097863867538827862071555932676181034355133832473695604986052539992194510512038436991449409051246956312921770336540583719667776325386723586023405452179053548595925730408434392141595289715675090509520748144025243663089605521457342750942332500075204368481647950575722896374440058131621587766149067633665385325731496342883397348750689956356815779586639119695840214590583475551754011797780103373145425725084926112593672827563753449815459289119663850270270944236865753592468297559271466732727151833671998941195652769155471623167372943856003895584178601700627177394789920655417033944829234486000926080743573704151229194559579962097940619632518208606362751354106353428802352350059525853015016986031673320494814356212270118051853116197034604305793124539208688948456953332183310584743653372749886650221242017693420291531364469712703267404534688287941209351363123026744577957886012113104102983487844972924455959869535235992188861501412036569419051012331284030160526944392955667987111902558234325608420139154548381903123858668126142424057014229610745857129033880251830913129898024584729012210018648776096345967935789459979698625195844013382815194470773336726348918318557040370278619103065578604037129756320726770876748346302027231680204318628022694651728821537581917855452373149129467517733295356706787197374268909510764112453577934026423225661614166146070430571465811014985698180313443695106892524585681167905230053132430443406626546151257207810514743187454368167234184559762566995645617540513181698677627779302730081249240424365417076625198331758326831909103750593114671157608148856916996068815445237589523416677661618402271580963196505110314362340113352621623834772211304962324216388265872410757128957938300283206832254739353514113952042240517805680464270924438372304974342980566761460119786377204106863799155785734808510071422962504234129224303783149055305805120056356088337017175584895052778919502484894342327395568173760496414660010224779386632453266731888447506772268817998008281540864478262969432870943721273354183472980430964372017700413454391277694219731062685430611465412886625117804801829015020822023403050456244885826497375641413236878032886626191960098473253994350956201830954646083540208397571099971207833335556525004134652195052285799279928973455938471255545420965509203191301425723825991228593192802045714648238797758454803753352352650146573369830649422274546740597153485396495327397493311677676295153763054533963763147930577147242511000045832614900610413500926938670083654301752718627946509651863707372848995427389132571205574583896721361077937886896452184453446833409443382355685407195535274857455011480666042927504620563402176522113323999252984467212410240428567414159177121626664781810402743874640402940454894169878247126941922030514268478275703845390236017404208349705052963550450698206938003263757868172771182091627804853908386358479126109524733539234648580860326122819774562974093816516238902580406058339314828314783663902534623576754017123129684855358624536516220117821175670926626234274677187660798683943417954270449586730800524171575222134194445863944345706857418342259617565610553492357090510798318346781870866476392788517618765145126579419327699438676112419510042743568871383598788708524681448259183140242103855487706003376498785213455176246168681388769662086187187812342696455944765063337416757120957080475500376206967485840665919904823336483908251317144088018183689832583909906358136755759267009122401260887105234656676027711949067492278331254842139169133929889003819085933907449100450496587222274282075575860706429900485193557989836239730573485612785096211246271328396461587251846896732577596138993170994377434440293883053409091240676155199233943017787430312099183579181861206154228234539011471937588091053348957975661281816068040986209163858226018796191944787573523415281922271221944199139957741991812393058781196676565765235545244822198080812980820600804456489023019843241859351549505986622887631636584772713759949135763719197872761372253199724175211735237669853033385403862944983188318863422425078469252853493750933363986641484761407019279859448628842758244588539884985584598362092144684702088493551013665815042696166206580989932445254788517689033214312977713952693157326659755617584570508078627951549448495584623506203846646365865800973788948400069157326240072536642400429646370312755577321076616283841779679290034384009767229041433971058102498162979360566840616106266657719471037711389644873398299529562932083117757234999297382169654618645383481339068562666471827221257396491405045377315914141599060760195769915500017631100511786550436798544811854134437658190939937635940159606047533334527300638113567184464661394462787722662735770196112406361583735044985766274024919584093347895120304090444215750504550279861551343788173416173518417334100090404885400918914119627854852975371909389564034455906597568448006655824457157288783193602735368317640724588588393978167536015098114517047688551599961684391109107289127160503101602014695849732689437233866875787908590456456433463841548936309862176747684556067034282178176338375793230843307559656447564876637977847472358150765004931802748487096428812574998989016389306648608317985599044924741687332804078506346580181155587654394269859826143214783033436352048902411245687125598017633892619144748014145483637390108389833557158598900090370575950524427421932857252125983055264619946195172095918603274768185868250262157371437489361040548863376586321798788327208249666402328200123704858242839083160879325593336375116352079908090159262751978550882881706829509438632180300392763296311996079387400888322309628942063686441219699741198253843943666150331957164015082040311566695897059541722435808444832323441870884871311582220513585091466718737526180456095853826103291793862795558289276239204600213032911354005383224690506360053351366827982626894190280802118175894463265051225825515938125418898669473549072026716974308754421748949326734192743264892133684278337683354156293086460679824297303698274402110983162563171852921453490544130870725398681182498882048442498325252282982567070709531448241964637197030377638321346827375709997706709415114946157687281822977744212505588826083562620381935802009548818498694604004824074531208149733088201016871365046188224756652668219771507942702904878376006045501211613037611436908255775416735485040088379630118754782652810645332799486409482619674805315799673576082311230275502451783921272468748643020880016794938612439363107027534422623762632500810399607385407716725291210859753026537121599536629025723371469387003588365534805141587333154245899334134196191409701606374608014560812821419054403902313144491086450491520822798078149832659292114424481038423622379770338674647759412740231798354602659428682097013717296223854936694425817406649776284436822613420049796114022115084535748932651588346072611509529631939014134879599563756935800420313206383494980744568231268773322250177334721861979857455888668241202341566150517226006046147768171036242539357477652421838888146879347034211382031163458340316167774150968931380869176011896543903251618110720797764202363482570629774622437779615949057965308137989251634421341244282351875246721356061316636311092955807064616274442111108789811250807174547358552381392600719133581236477229998780531436943288139498937419991041544047873695283279985852870765431896858027704599097996967703534396453324210157161677752037559022772626224378047739817643752329680542053481530677538355299872464554572155411108140390479553794556965645379028392713855773142310009073186692363074227364339909048668691936381771645940923246002029777380448107656117021086011485836896944530566872896020949434326479247249832119558224671709922741633960703225716799970315886083444369789479748930530606556221192926135539630696375024013496865127000538322410430683336998144093518583502264109906937785772272309550884420962829662250033930980190453220780288833278726532214997658695769790446369976779633944858182334662117793724630644615293579085128622257630949043968728502756541889519310852248682282321499228331921920749739770891076298784512085974933388482418529765636417124542362328288638217679398816820220205091168724434117633210156016950178626483426760713374380439990268200555532194371739853433968022887414020074846631591685419326830247629633745394427549101878383337236018857997314993051520013918985824096666689698858666017394593481741355344589738973937272813527695926749375922772035876348400519124563522893775495051775291889007551975442269817699312022559189470694828363046495404473968435425639133818187867617988235708581377017807504841508304575450457892900611368130497972581544646161409029987238909771624376010778427243600806824634926044406327347495956888980750248547530181190893451894546352299983883064213928749968663870036106035308834237892470474405777991097976362657072098885005540338829076776880691475200122837006428644100691436870796857206937999329186556588836344875883907560259237047957621164244560949066682671846786503052556120916594564145405848161208519431655249372305233302029601706140980867245499031429415394277097250674371785742804407008526588503385035692989423697506562650976478306347730449352304282138160570114091556831298505183866852037463565543505217591216834171154938778008935818404495474029772547352913068357111398890050537942606071904690627893731020477024814586732692887130185730563687214259930882787899648741178086573379808910180917681701811892049677929994764009860872182914479511796948363279071676528894344682548328838664367205707810766650736617049288515835284843978644978073279515872603280126465858928479354025546813191216567532749723406503442392447951163937718660206139158968680035923728878267512658918787188607317941451341912390054511791363580870238769604613253822458024375025585592495955947404391508205308128187826585455587027504598590338256468102574051441994414179020101871179521397149870868205937863173725601923133546570815179569200045636203085376763747086602129862419651108332451808805529179147762042875406873088457069085022303948869924958096994399068631112814912230738021407327660810972788573469813077533939899140034073281842786134914432892497095615995702746971466537566122007095089335070254291212842810115504635931061031620859707747439981695079190066016147947695970946595485129912742233861198620092171873399993581062041153110160019500116506426442560770264083885998835355019179526378274624602155703269213581137704566747078751886361943376201722185636661896452075648888355321217848168252094601360740176153302390517493751723273901090048193932606314330729712255511087105205835216190061526123880551209144306054896883939291806305704900472413088459502672036731149800221031037363054476229755509259579513595393032433882142843348731708250864295848327524441026016300044693335102343831989070080995721738655571404698157504831916319650706651819995897875446026613698185223527229979869198113019250935236923151103293187616384547597134815308996847217988448445517658067309328390605094749007129925780843666259326388000524707287090164476381045765728695115005643209969336314422490317536395720105071320671551047308330549679235115564226366730968396111574214140586131058247123425514819812969464693948319570710459192561458391910406388563574095478394413305141378466256713731541036753729812808678313122118143198823612088614471929043255079087605524062305565760295085487098191510849730484614486218298318584831434131451069462326937351268872528933926480727105906942551522871096378746246444462510104643703163446904641607644116676643609818571565621954349892995093337024232738390001567880417746902741192286136769286868859025249226874933801562833540294429462896375895515832842239350528017817251207925057677214741395858213647045047150794310998349422789101552040670178348900732792923017083656727463680616147891293892267964336361156376751501248166947795009728962877443680904811834234810803796800653558005069291849869011717168622270860045756648396003993425219620418119659388039222894878279783216443356212960687983121617460770737004026418075780185532229637398509153710464370854868286423193775957553929619108868621782721860252552334854185268919888646681457953223693495122722293015327766347659738111933056704736657107185350623874146583927855453502801395443592743221449642381413880738966008220563967421825465299009244712819924306813052922657038187760655055249902907061975608470181026664023887389202973732103704120894608728937554618618774825642456710699949627177169343137044292090704136958822365570100167064134386486817266047402948370890034407276448819462098000977855462751905378479863634705273428902073258137089874021224753586253761806074795856160452087247947090209530023351501921895640238847437902641657955995790493459441716016178894916319030308218469701637656196868142452679985682391613752666680350910624999150412209400319102254152762719225160445885056752190110167213994970557013603515651254337074072074246277309602419979962628242598712443423757589664931569567402388762761603054705514582729341726769879430394235670936521973054764223240959469385702502706162530355779601110138580733736053182439684659154633795542960889526818567894304130183693119919912087904287908520500886981140787137472710027808436297317172418993053387979031144924559167709252884420836706697873568373521454202118821604753927405779112004527760652986523493818557920373689808904530077182519496806824338891893236028409155054209859199297346958650441773008742919203880959197067512634031557388276483113492139302440028852391846706533869308110388319833656348463316251657215705778936275220243526564545488164070892480450809483491053600545159767765295001274450337886440136005344148405039846119735264486578780995184401522953753198738652607750873795643333382416398367582802536646671882983039447629800172954576111603510465667265939954241937986027014811939837443545543312707135071631975715940379662422261488093172393171482363333176787712230975110986886718631698038053391027883769723907542392744361831889393337577960586713888989274306755415338561197767756871360498563115950053516632864127707607871620035790542859330966964774792176776390603294769967176029857016860189766307394874277577143205737461082995945314236914924150644596870621765241380546599802286747942574180644693644827904802344139120388402279244258832048772989887649365448565589428582573836086409352667946991592830890793156836961099762833280406860684881903450780026209571308487899177788438718291103774318280254243474333879274935874102373956438908085457019389771385449674309024355209016553729598733241033554947834607383153289668454919739062139391043892727918751080045173193706588467701496830178773027618867702397667559569786922781977202295277508054729633088804374595171193842051592351611377439077477512517083987265504194400135521507344301643195461207432999258842656132158869173872896961211709007554595267584607055126364637370058340152859629984888832466755388375050976489650572379528581993323844342322097276465388323761847188878016456387148473882618018374119652863682171582075575564240971736104832984552260152854544067336326304016716230881467129495706401303837459432116464966662672968261961150824528423873538173373979587374120817306536204950255139148475519851289625141301730308067161697727869024851872102820067178034524738503912515001998877118873551739652105091786744684931595560004841805310386691166987316338947290231295034019167631580039765455802503930923404310590027982331050958376532712930607566203978734839513437423532322757380076784305730264487083330179068585159768297762417723680095692228490472395084316118045967408608049844123224763169164631853501547863638653189045023785318315258032965554267484564665799203619816077558724102704265734579660639241409530265658716894908272966665655732849522018240971279041208282205069857087759503073922906858268838128642763712795643036228610071118484123373491593405001366697767056597336549680775340696599233764346759474389252372262142605483265387233247515627271080989833641798060663324431311241512249827368983736266481661717319310162809975462974433110078025211342480281759674413241188095453926923561252959113559680163731548465790684552514366187533306304035744540677506669025571803477221027330376507951050387661947119301309528014505648575903919127616901247614768731398683845734632034771581636916086626456667412187959095180351617996645410618855545466807020557823017394764071983609070812806146841753853409269160308930506464087473966109127796616964396395272448652732236171724532705796565383464403316579309133664257295616029757589099672716512066819138970794420437066854735795355166414102153391451464082969741125881171899221166068222806024796325572027047009444886106669351666367479108697056945477674767564573511470308139635840585363440035614836611182214862315562535962513201518974011932818774654640501864995233486394065255246514335838471987799650991913500891182519839427007172514315553389241634341406412197243236807679995031632261148560747634243315905946458326727673230355746310839218587312074353705259257440311767640103036159935603653123926565601721103550762883338726056564880739329643238778507653634491637002903237443891405615245197201151577131383967536774151132096590572143745547810958730968180864126462685429481232020130731398875389685646794456022024901982510240306449670048085822203210164670511226007609153035067119248604269450815186903153217811597963125191504713804957711182049088529978529509058423449970895356067759650057608359304482547967971663680146857774123590546636751210981706237625673554155575331165815775019925513692888655673034215578375557938144562823833326132141306897177301250428635237668570239218572096141962593081071610203200862758722640274291585730785680964106932680524261623267264815316642226952960289120143886723079595279972396607089390098074025282005412116373800071535712260586093189174261698861621223313790502793281169199026639372271716666430152563906972119231269716411067763195962187241808927543632464339318205403143404243154798378859404283178361642488256523443588501224963333681531278008494230328714652409122023828925126152616715189840256681421032767084762892640593142838936765394071084981384903821352078437118898586991747992313870066232106576198965308279009520753426200232075608024961060480139772211112283303697557002254189068149561502900078932706713017275112462245196906306935799130391030185723896829117176276784291058779060326428112346273074616239188684490050417254787034251504001669799527045179771334761218223527977146634399487661006819683292549341695269198197655449116318395032397928467089325918387729846456088272248486196540308323238600037595276434854040431454988859735523212845748637464913586805797375225382682458910061327804658418931784609854103311983099862077261151918917586204883081352197040926011049741095388336772275165255391829902205115528328475842413621040794910975838041019661527752741197434614029336955719414019822854361440486131682600323884862878025593298402736580776706148562462173937940713025980246474220496750778205094220424756675286156849660386267273693122463459970131012181780287106778974419012591504081278209873147918571597400251984179298210532546944150880229869216813486044219234902725413652359711149234579135355038363659261594934464284215555164581612406767774042499725069025355107410426845582053793076743491711594366836815833205661378459873834907366025312687925024682677108569105276864170305701478596802791738125622281016345005773326557696573546035831035809164013440619569554701954006293473322977051720535182468632279116362303996971050615771275685247189408352241780294514994212377275840448536225233608462141359325077135670761640838883341496363969159536111220883109955172351771412206967552431242546403398632493560599815852698905065364814701986651021580689013785057773036639454604065679354987355872374857561661409526109466412676706865141140310267145926983109474658357037422650091878881478836342496717698455008912842691839927264643648964798941002143721229622738625948773295208911249804210285936972328996111308127743894144567649635678575373842129993331705876236611610852454382504150941894311771951033714819851982213340469275180736037577087513269901470538517296850234348183061784183292388821760554523878472185389307147726202831307221190454572397392385327038539902001950399897938961296353206444900138487717380893036662943260637253027937242638762401587615520406448410668842270917827203463601508898841951027778696223453692125278651639160831005213011813156032730549717286013656108558029388593469283155765655605774911526317796972803277163181226316797717441499746225484440872997485042661468020043958397682892594132084804314209830185927923597470758531091757233130517917203819677988596521380828435560044676229032233325080349092840569368264635110764347080916718065772322691268209752715323845133160714861771668013245734152296938293070228004966541201346216513392192593382205014861771613229548369714243216897979902821179503849175623893225035178738162299738860852966424663305318469404799914579832010110206233123021767920866575571653323067375285295660815490174330452619299719966862562074248160099187274156037930258926815511701282135906800712935804031259168152759859392862585597659354022573869073775496455773625798344011784636939849220589813550257860918374975937196329613927820118038738454158370771217671022554045133972643217150688646274941131135812863896696081473789296668527537240010334017099826037330155687352099311457918040558511181562514133161622142929822726642393277648060721034340543740573228086381168368815796031749739594888970294151545996986852036190284563381139982233505421347998829230694838161599436776826496961532158518407815242503920697777665302593616108414565682761138288876442906938845292294467426988095120463125807559440667909418214560948866734470627848258436882072105358174460856505519202998106436356936196162431592695355225529177929941021503736225318646196863310204611761453503618329347210580210363930412525533938035703033712610229136929397848789677230880338454855676366092187797372116706791420949990627991754596491769477140018691746338939965515339563141781913102948661407101956580224717638015574522097485162765075991218133464585358576114836989800175678336914616998056881893143086425508846756560282044029176533540746648851850104054564205683084086319360645001215932001107512541139932110032977669909961704024007170711527501264849801741155219919948667402605449681224142796140876343815235037091412229835065065460817444317727687406471677863197203127394141634988971912518695618039871570197805560872616111593389689178688151147974585032200476363297922675904906369164404299214167756406015587996611381526502339369162378957851985418019317150701641382974274361303080032832728167088484022230519759592037426262639607324692195921502691967045388445884800240563678703480642664871573531004201282914398416158858731909035477648053812490356638112415226278028869622551662405086349190516712017832975254056855512231314871290562161931336033488747567572086885113017428390975578040851352935598137559553138695354178349250948206726049094960566922008382579755191287612051704013640555550303484394423603286320204207380388145244403739311737182636696371304983031937258907241534325693106527973102827099822497107795448701751973489782377952888521532781846471538215154738733763305444729592734043884918557561817322627318165137771802837192239341931811971402237877235866745380628472031742442671072510007223410262068022153105703144440730563891042007260162330560382282052329746944563630889959409290544636359246585392967108978626562566251444775230611918640042332347197769552933413008013874110895359115521936841052174025529725882252602542882800228330635976482519665459591972608406784142955065497670513792385154505454033723536560163861880726015376940702465721407371802944382062980913396986326873900384833384952221647041142019642678762138583878784605243721754309462971361734224103689930207324683404801894691975531882043611902463083713254248591560083983654972371552182395742300923485765269954286225983302412520907353203012141518215448992428045602359792299505321341066172757267350692780808448480902776718066755498114392500784860119371770850438626553636915885281143861265828594404021934677280394225311968887375172317053393559469527821505226962294916154323716891237091722399636232892641881691204736550751041515574947889583723714859523821812016253572995285729698278534034290737462257201696627804167807272518577779185808773073471893726317889199605498542986048240844389383492891860996163180449282602356949436312038520253267100241983831133213980229798061041566818043636101067519510715610728640600080737658362440247557314054328089198958022639997700087245348734286049086112866034462705430440988878650023902037544339607180558515646212712865010239031421084107374556167477374133517276888457107935103243127041384287786948267999135478601000005807232869875840885801578440542573840788104299451701004016763842283141530804028093670367531992111387818673595014711919142353825700635691153050374628303172909498189076126476853792457327746979688054920765075567457404628723477248120667492909811691762096723171580730136418684374681415483694229056188713897869677872029719535090699593809493583054094518461287189759831227562560842505459309958573381910598215776850660273236517817490369945580072428277957740483970700117258100372654479452741547606506061072050534863591218731252824668544069952229818962088423180219716662044420359001416638665310171691965538734931951484528515941239930575380333115344756645397990263449021513049158622632348363196529809459227313929475676893072922268143135356646383373862572751027347802046160429345661909859516029112485478386692697394501715735798465368650735859854440955700067391827639727134749386779119927093635265653835459446331225557026220775391556663431577237206099596384425001851995936955112888354606613179356014004170850279708953765148167526706117413286336576988751382755747459946861919551178258736257934766145046315045876090501786209189066889598024619868319543202428675906742802731628234615901887475204816757793798409086996715438923757925213494691869113600810844887752866927391027241207526296661696662885147991163430778866481894343607710651183954329347275601413308960198437483174899191014298254076799404916997196669760943798331647567640756204829223227246235303236169066171773145852434526212675895128175979944133447234547996134117815523855460697971912186251830517658552021969814489231173176191751010522940807932339735511080410438408507718855947063840255344340689145928622461626481490711222014922190358344202703374168675069029911018100084423828356827797551184388867122750614832544487928873928522346904347073028178579109548574073545364248073451650409108974634920534936563468922276972127413098239653770924598908034397665199599074340025409721655361858120401336564201675435329814349099593650326646733705617628554326665944126270528717783286170803895166025424668893296522072931636150568561703361641381141571774937279757480804968701362282796601403742587195890226648598544936124988707218651974207226019775922680301816609321531030371100564891312852294098157015508730737457446248497082356843533973380741446208954022862591824856299617823909700816998121697264430507533797911217613463245026897735718967998725017848572817578405545138661635342799914898888808220944671327643895615811895126212144086240302154191469633041390490878235703578500412164532930140263649776343659648951804262511407589784700020213120632754600119092928416690436759707959447515064814399385338851380660863639108323511186757393426461137345097069035191574816316796287995409045391311704132701702338583788904886017021527839415662739672440695629504707087827761639908498706964301288494641896784825857728550910269586552316664742434667382169655135469922716846175902129129768599124906379263161467480701516960997120998677227787003064637355757211617493695584014657814826923394332020387062666545615331882340445912795059316171557582987585990655432018467892135574583038350505065785251706330217280852153981689251383763387894154186411714768963933739953720509977594329550658941322168657832798180025119412827033971160732101162840523374549793419015372492086443065267503004865566376877547075909133339055629610998024287502350970823864243509486782456810691630576663079658235631236290550038044015940081293861495885448775471453012214786333521815396928446680517588736082843261068192200655175002585250300731446944756951637447160930816495391614219999086437115417400166264940560909984446323588383644436561442623807442311200514680161254210270387915402027853002773680028285301298724360574626521490722344853178162146874083328826463717068490556592683298900597606629649818988351142991322236168397600286659045466489600186315396336221411784433952190364066968337460375537092874771938303443009061343378272943436761710954740469560345763979019829783152719373476884662706145681631759009209470412554367685602394948174360246782239680029792374964507924316615981515156584165964002389403698574237756047471234613431290594498390758365108932514654752444305497467220643428667408364437390302518757135897215131282355695117876135491363227350135412226135922233385548734714421367075252933630371234715906014217685558331677647159101754574227460138603406871381885685858786445507234624013385362652446010112606323235128039720461851679911753881605718761404735737369933784200250860391931220074358265609189729948361507489387929685761871779628055289659770095757537078962680160748717844885937892554000608588027660051554646375397848666542602546143794432454924909994672787541428755558851636781931582087949093861796420239105160257760905655326321051538366056845121228490927265563320877150437295704600081547327349436969639564348998712485992531420087324013832473025223629495734576586677788479395362823974835867629063094005889582034703353423686327024965460565164423308998281291938670960227888014003703980742476849772183786762855020774805237003297848981660013901208911186101787188963086903148283928413772097654478826516286297829656233100219772299733459562374131487070152524489718720720235419521302346185366463911300319563962192822269081794508393707567799583161057523661394128855647790287421789615452517529735408611013413903499739953061331530905874198823887521975284716339545909104331329811329893023077627606872164818910591780020600811364421704689822309114316770565357340656677900076035322948846722573670231819762117518177280019503926790662555383986267605031962227555730173891469928687702059618066166463042308022992886559920281729492420966945850622686654689633251444653259031815421587528214716804846383687383363742606655376186143417685113910741360002923035378639451491036611996510920612514432839721656212951868563499212117069262680661180238604091879266384750725432955702804648329167356494321573852459775608509079405348376538451370939781206514762286491940917932982444097036029933999367855456022003066483813513021936485120463090050877453942049523878543414315159633562137014974643279718756451862517476454581201219265294339850131553899679676378829136062327438565210085427115182650746314342901898003358181501444468223618084470201278078077441837934025819651651294058460797260928284958041138301707245570845297648686107572345403482490561421828184304203879426581674880508140695368044293723262930877615939881833592035769974843307353833377960551986307743936577902904269552113045886149384140282445985420313775933220334495660853320192637335685061897601521253986932517053615990936659044359278887618836820278406566675003960273526500875463494620620155088350589469666075465072157256007271816735575770825435201102199452157210853568502240002181713266721857675767498350987871582936761490035610665056077455904159043810758205567075070201891607431464870095679796472051775294912691698192272539968317737186629219431726155864352974525274364703421238637230522548396316539027092868264454899384601512146728176537001589291848054826167063763166976789457705907924201789649428856438125926583051226125248258911186059654834664279873327360010425059067799596910113652078962757807170631287280932462068858255404610118346456034156378987315704786742584185670192123745432755239247124940253781812780249125227208952771390868738188388338283269998096245349810408740345840681957735020706664085768205035628100520335800636035761795712785418033734592605091182895556212096713818550443902121787956132537663815881536756138794427628654301934138429678186029144545059691110185286538978065677432890123856432056601879301140026194930120201544569390057805347930383016096706741293738431599370760576868421137900678712608383959330356234218262355479091820434226253007287243111209020133181936060836128029362606813966962602420756986012842091197844784440118664189543985979847248214998204293403171926373137989433445185169328793911856339382860972190820263516724239414495686311420205958416226764057873097289413249770582660446850805212175248137985889988078686503935922955026733447769388389418795347086519399338487352739894555422723440208962734698650351499894267684036478987010726750833387538423687979893927073151180703449942564919482569354680718985764504453164158432952562208845348341853671586936846012323508945659534638694008703665987365290762930236708785274050075978422957438593931651737449310854176035238565689556394132115245758937059341713357607967947235684370620886874654153767350987141377161143880377100845209362718417081479274056665618694514791444357972872079340499170045356884825532079749997749119905558789615862731590898023240502798365787070248285221014219367942718418752337731474705974477091979876821413801311754562676158528111191460258791098697635628387386828634687303526576022679280509147042010960870110887461197670242580207547634102787203831755178173072145851021826835081815905858688529667547828578754419572500963970808839236634836358433003891989330664492111594850667328097891492309828271756870178803735079899520263549992958128731751018540365533922948141188928763772286492897497909556103949560481515316721313886670591818202481178348200264599771379561488637839002499246431039615718683426876947172103145262962176641417131871965197344797602134470690317756481458554825353240208682175067232867430976215105043230690800791367133056596181250950504703931017775006669304040427287766596658543505231586089888416589427493996062418085490859285722705064756566936000552115546102184066645075552207597237510416430027661346728497822005334410214143304372291399554871260310227123481703791501917766476990695206015107288599649695129803727500066022190991079664434462527607062562782736679008795246245022855340758548873554903913616746208667201749488923386764984660094180218946618955323766630881497915916550130922832751633285034007944700005351942150852188735083691549936889263587985002658148378479774833840658174848182006264640467307849531665603325082490233701956390472436508671006255114555507486751649864704955903001208080493218011828499055931147602912251615318230352802475782878667049975378040836760058546050962754286877374497979349758797191478312947022005839874403784129576959125282392379787166241107266378096244908797771033908148635953713857107161436426807621056471660193263602082228714515075782129960987620335219097352552906196245833451874057520274953575326427578341033363602181536434202035862976929821706910739961643285697464082846410131912691620386334642200035722150741446964823052982947516676137740754123557029122449932861132029448144432535801134199953302113667919984336303014196142503589658875701150038868798440675855796295200709497756108981139714801400669448732095363908080768141969391042647536317277774925225712651679628842930281438647839441792036080931519533134662065465635207295273014655041133898671083129425122988477205630766880095231891883931833166409495943492871057039235751674873796008817108365726250240616964556107565518924663973383695184667936365048834476901401173767548850156974491366239454885583601571365142315782577684219337349333739105546672049273855722570446386844828044182900790818431162093525329927882449998910308070936047430030577620536929417027469291877709697190986990753026201914448822771565704354881301488149759125282735899733125487520280677362473805391756098896486914620081028903971311351505828261091705854630534854684381880265581296902368228199528579479630541475879055502863846859310777566783987130417008602193086500740482417799071864546269631134349031487996697447132622041331879875661008933501120590671101659407569465356760120785491861105610003353732676216965492278240077290145958866345180839667524836956244958463319306933349478587162858073525745981596317614531174249652630275648339931485843364740051457973252430693215151893442714098378348650169981461268312718028973288223527571513875313637360068826538674472990054198430670811838709406225741260919149841981591154812921526135156376431907734557680608807064881446262728657685684028992662342257718882234434097749826758240325553143789787819988073619738591836845007461665861818216730782885360663061334201889308741359956457463941326547046879082427744099780480422671294700156441862995694441989204434186495820154051566806826121269316624982880631797207565719877234224957874134067666545456793770398186866211345002493432596636444513589192974459731846348309280680498033577736686652633297410949504484091891091027461817105270995170888890224663448711795051082906109290245530755780391695651883688332118951708306219779987256638204945566374824236576677236597985456872954363239108711319235096344781284168758306034131863841967514383363733210294292129044696412911887642860812407532459475963614705613436968597712013771656988465222028227896812866877921520081287320636321541469758544810598225665380356286072637462921634910855671614930418826425546991953949025538360402153261123761512378358579358941021185598290695914071445149261217649036950349782785057696776548347007570824445680324077956152204157865365796368587012634054891976393219701710662596831681271131970775017485814642158016316913511967404821676780395295350262421141951582360964395081997747029889959853299680881717985193793734822285805540263678524469661190948485726761738058346990864387232343679026886010320074286228690420647343802324931309446712222637395124020115476179781911666024917032202024240832511251018722497584418479242425906703019408724606883765553608210756586784267740045656015112003544357663157621707579641726194118674623815975600176981265511810100348315987473418677628558457004583857797531501364360689389712751980151068558891875069152826405374318394551271736470952725316827153550283253808722544912120058192534807033287303962040526615633383899872729200744434378064584249178828914026260186379647098186850818652476358690769806627847114024953384284030621684530287290866702288873212910433497101174419279557693881588187308276192135667820560466151083692797478765272042318099418019386680924842137132771599853483299844930483816473911875790760142607328280378822588041638855503883291641528378033550556761778150653070814136516546855452938954871610813988937557088642253443441853461425484103820164697670171834656570152216384204904713616846084193613736956083015375818747903395136325652832499473822773236063080756996167632648672244019569466630719799110344349729505179345219294027039021070807397184374259782871097184196656517609977249804599662113115696843300122581060840433646179904322113203232275755410218955183861099056639245166126301898778640499319509236716333825808843603713976105546925359751462673260581129707005261633234132493440668309857623385151636891050151248459180167449413804064343933427935849537330305780400780911145735094878376661295400888568782426274950505151370045708698006245020888279210078085935296792763002593087650470289552850197962605601859821101845831014565798889877804269882137424915697884706891800009544798378076998311563909053219533489182393514340190933804608781290135636749867374887874293772108319497066473852279138077676709847044467816271833197802970653090726369292287101659067409303931949375062569612955078321650892136710147484818177139256590200651636782496021319059784946056550972733978852413783361722689758349731040138407161782188913633089332187799509584075863283795971831923815219428913550452244399493168205973311761663615706983213748245068595472348212757171862256728990881050305698414013659678808932604519699570050244592478929191599071805338239994097193160781016269763116889416600269009579896146247996893588840922183496105318428272177145766245292163775678547114452896547470406979221377575684316504631516092955156218400928726910127777245149029506763369697398793218869320293595379691314058936819076137237705020377376549687971497917169689460841666806818051055080959471076852838378552530318765671893242043980368849121746472102986337439214348264317537882124336811509048000234448895396259843452387943809323672514112962327826478543733032883972682326971794409589499371595368661945849910307331400300709243942651263974334944892538868291590718028205800980584382750882107295524742238513900049820424003517584325708095979190763970187419324960400136622338338106893576426266585622750888455758894382487067807301800256999987169131575152710390569040411144395680211416031702226454378625289706135200925529986291462877271861670346213131604861283019274645276227451510750828030076267135804852906428975314325461360866362316537681329170675185137782008260595891701262220831155631207609051978282868348893725622069568327711912940551856301037026136840309302285833768201869027004915411548675614802873596356201864509529322443004569581641635733110560765486377113851997796249150823153902587319247265452999768520131873467258956063473734134706545074905395520679707417876046261608583956369917468310385576887024647038061891462539735092462542823476488179755702297910179880388419673980235100270804537150268004862406798662095527900824611028705634648109303130690936673757360965718078062216971736275925965456861370855717701961891617071355707806285911780813055936383969591110908799495423343524480929174760445522964718282872741097665603013690738630523413218653108960652671441753071367552440328539264441482052780715638492617376920129111684964818598226836746330008768156443625513438166345156743089393625231183132500476217925326722964481171491569932911001154955453698542083254684056068850379899474187009383935271814570116783658729502179048170126891802121728690917575370322608902144187985268427530413046537564765817989272273683771362540395927288871468866679864326051921308530439730631714231286683775034932878816421971382541688262734987213033347213816654652298631039687524468791574497469550024777093070361041720807433456808927284029220608511803661857867237723560144251680241823746330964604452986261647773460155277527432237550974906796262692958714573482003461103343291022115863205096280430901265564769684837810483269758509708881644434267977207312013587772167721497327026582453035799269874200580774418222873886392992334534636345050208581383807134563577925342211418186316040423062334954572844428114789023931771778630302694364221013948000661700520553621849421632238071946208147873017325706749484169596228584648606619642806475308087359111407236999729743641190768165406466384770580293095123807422594556995063830601132181334573183491007568011022891278173015645466132690915300707684078917707959643552315511108362447770009773992819417283520668334536633471610225223322289325357150428238105130877820303972284046838469735578214830336098412462549713421287918172281382081200526603019518988971905138087466713192663053196455139120529647869420367976311893046781907157077357780603172957148022199255352982276112467845739150463662472783430081768604973386149393141145063798888166950415610675356045064678719864258495488835506530589886052742295092519779487353619205768954796650389612928840976008169318430458991092114240343533400082830716736076842866611076257057312650775118077138518267826129648970071742409496047100883680424850333739654137911705306464462410704328265590198402368070457393852157132606676783326254083788026431792856807813644833008599626647432564869164813656398147114541764825404810625449860896778966016735089339656736914395983540583115792781576841381299379223739650256208265712047357077043130964486330516734881548396403556978853187306942515765245325382700611938451392947020387464752235200911238034843405717091716525860564046428572508884392583561490779282898042370553171721440601321926320296409443866620841715985248097706177563055533993739348230880690391808114863607404772053005380086870961852285078102501920762504582023598903442725795312997062920122565282756361836310493676796780713218086872304526330056574420804400295878346876526895193637152078169685218954199036365350530881559231577921996224091884424093434328799234857199256930704310465608289291899047662694616870157662955831266122126056140014206979715119753925941651344503164485414257004677838777484292308318086161217671137154136287276257162658702170829067998555051883869442113460080483150595194250722021561835850376598036519993178240577094627302175674376095101707149428626910902961381023412720475261918290457878039780843235794269960841259193604641788091240899476124572260348632346516664621421320899286042752527697961225261713928433319030664951726794707509798655818998604341827798472320286365005800314086219123600385940971721359858730193898862980709980223376787058193559045349424817242267274880257269584424642698288288769843370409791458988291297793680700990160804149212308168239799361876569564847667801829450436270194330995859041308599962793873942896827868933338888150364943125069218587317527894676970100173247468408911442402724641420560081946865872536585601035471863148012533642516023243668763960770884387302626407452432557644132902441848111980105643584881562408244644451994282482438199768516365663322072806399965246121992230521079708304165714258698424783708459213047639304307700650411526348871325237894950155108463707928932814361214713130374183224145319962212742636705509542105845681531651677884112317615388183347574016582336394366373551758800665988115163959843000791764071151191942535948214342826440546233862024514620194842439139765081685492882947234315536260358851774144790841668951779556960788609572858987326835519485459233749404009554157549867017190073971244114099930941680145635872487385875795987035119117469284311889780456024095264713531398597303726444376006051868523352379235272066346947970172975098744575627331160119926723800280562590223912788168608956566193270856675159818589560501995473698236423839030885652621101110696651406372994693949612685668897631624857797644954090222847478114254076474392904155865801957784009490743058018271109978813437444843623709663973484290077323799381580282830338684152263779242963493038828543601994126106329516538513831143095389251509787516492482927667031296756668536993525454821499566942845478083736170703514761595535943281784585171773150741898937589837098513456488528126122205954975910858117559891559882822222247463999288640717300942227827279182462061198980575409813380079340861775979058409708467777832854086692756459661032300465902961726466693905031982788210402230120980285116558834644759550326748057888931509737511902664451410800645327509855481630819245464868604725879251055818465101174617306209884862707029090267525721793764187278507323170377662655013649183859422962821445960872526638933985898053267708582319496341180832823296706440984498649969006782399627482842613628005113786751711443787688108981130792861203448596454414304097576658237275341810060882125017945650006740918173676808285149183384244197815683965695012756782398614309398487292679805895411916567563169134826101266461220028586041527459585143220964248702423797647491039666268487837161531934739696946223792848106778418230076500811670191920400096868939808807566597972386980125560984704775738550218555642441432114998640884617652333700571350778378479481023320454127402054951124317114148732669559687395038794427516753515239435511874510316603150501396231222021910276386054761036496768888342088730826038559762980652934339223298660581668393379166736458606670701807660576174058194000401586104119696534786601921220902420022234558158849368363977140866834231691980845186142552690717198162609079391267929855079719504617051367070088336430978378195609915781798562836040812268436159913221530411998509144295964714144553063172495200825718187486006211280254317158708486055348132847916224404984088672933369681856875780221159375612577537051492279844072580722928926892764376392350005525742495864314282059453026049325658600674700825756329135458160818496981653478828215234013324903197808910473441864418817612268717640878757243360177526030486642286212113994509657877942634446136985107199886189277095570020668585354779682679559529762963930517688792171871988125774578250810449918026446191557877695055250947941140269322156895707571443126127009284818486398702525180634422696064267864269904449458908917863447052200007251349559052761483398889977243127552552817314631182381701220026404349218835576600935839798851536864494240357197552371986926134796863223497919018178049005026045407735861404460308350470865095143448716034886483501792173332781769143943368491420583684284456480288021152246995424847325173498971772815708337016017310466411199527527186024489709731259502240891076124434517303310269831703902087294595882080802210385550988696701931831658668210971656068754377568482115506241972960018174998202828076537226680450427709923674928941640554988424735891426251499119406149121964252473286958847991689069966819629274171816958049597833881913385928594385224327379119940887594753904084810762893901967703601375497564936842131628581563606680160189184482065510466222716560124050879520624935016603089400056134455410395993924397627984728086389499076643074034234598714506945322388624436517113193616294665186240200682759009853554711392715669612899396663024854610011744547392318061300352561350349958837941542360579886714483236943051032786152593397460031989048885428607705237720162828826832277624279389080280614392164073260571930080860780837881410086969615645379807670335028957496570399673905311863783948655859729268034528088738892996842134297407259856659723612310567001497593881920625411374538010495319288141660575396346442530522660457960479217931107360706945969554262903413136913000964363110025120583975200400920441521742317047690760771802690326240113152815316888671166332588037630777772793321563370971998156385691336072702174506073410100963299942873448486706970387075003016164755322812927892723853821682987999071408531181652580426279987445833738803433161386415976081136543537544265595091528244859002415621026808566743054425325504582461241302141940150746168194468775651900534914184634581831116247467763683142070134132455309172235583677999534475784004237184536858366012930086738447797077106705058403256951628700095545221973143434165197720110126508807746951279127415615228755850947175873359404254833570269528570193757892103605182133547010243486470617340027612116160421943762438802564949259744228257795234871573691857656105178371813833148937720946314416489432647208316141460326668169222408978239643479982623042745289566832064445390811857795770037796357742224629139935386116364742909414619965752044723272251054541420701550415605669458927128375467658487344709663029439785176147305400301598684400458406803432698309271849972993510547513987152974926359589201350209436594505970842112287596969568058809127053332228547459878232115164858053257238189135854250813056347715814824668748585088572819365982062182257513866859539918100498688685918073871759845838607283810217631636665717497512443981803974347786131182713316861077975960356696717670279632142344383814497033667347901382759104754160111275587863424898268007521254211032648297771072787832706706720316931146126150858384794483154564233750233744525441615389376403313193932113308237006509468306549803044298942516753123452820641184293374940784873874303199510267880768109001916165809875125966222129997263692664441621972866790950523907813669930393148550310882225584924782932228360131297961427814360191373574531672307635368145914217892419607130610033298640195487748174660007257598259045695951299541217607054120229473593374931572974397323415445896481191299440199212151937224205312265531289692313520049342614380994341587742468770350210384999128696954263524731393212515155560391435102298122426139463301671369702600991599708037537541530637448014516099033089904891504391149790532453056443703838453720993319425712237184306618712326378407861605956834251690534455571715097860203409713740796650559518191118713064109760950536729604662579829284043703134744482754492647197636019598047750109895238339925721359607365555032163842785103430146612882860579957996225231125239130813953511269232979788349263893564244067114755487020873555938277998053208312346723438739137861310931364670481037919993247707921553417974543467323079412547935556291212256286927704096070058628726971406197254755476386558977737877605889823164066311799471176347520799057675174474335581250531507902387192560517542763551637150957094480620103086636699985308077236735767604748067119204819536780695934363588484420296877344069141146342033452613193840290245356803683098789911446166497395055202168058617894592742019282941173304621142795939369304698920332664988907359087178979255624914088985616035346702627554449119711034313105241708760122735049947741008004544159182137392336017884119213384025529023015774769858209103410432829155384651924493461508378906409486723235487260977128201441875304307272391863448046073919645517016829964524051531928410133953679744977218554588851745413105947214552478073478628293804657591603885956803893969597456535014355786026696684324473884428616386842166290198671129305823386766908766970041437963843760485034686626417654121354943285943323925130586339966377747606112127281390219957724217255884074445953489872917822634492565308722146095690628302190109731150203159748463340051173181480447335694122754906585433226069600997789769070480954637160347231512404048134796459994069483158723365247566544689219582996506396095736847674063593282380083561260942216549389301633986689037246721095363586774349901654781723594651896625406754784929453715613489345182640001895556926011979645522016722366912835597768500042653138497346361532027654325707164284499817055073483113405822423666109432935702452281977064453200471046074910157595610349124917811365676516655750264871895496284472848322215353911107714458576023872520353335880224994666857651532978890986627604172671171155493071202835266722608037691082525322107515071147614763751077975714025870841177530045946567439599627572704635306347415976122955143003884878479708928063319852234508353811914572378899171258392425716914120672836529442967598772292224333323284088641295346645051674429270008196759766673530649127043874800055784163071241159757104686953296116834521582409775017458428877518243900013218272471322359576747469371649190080288882268241360961749038769405395266143268423052667421699402077133926801245569640044877270699473127896227359331473446410358392866627864878226923300937515670070726300933853846116252345722612296011616024662057421208063058315553136078046321668390845627536976505004025352946496133502033641874210224574589663109195548000232167003343288135794616139588567723082331236745509229746227851890002261699876246652976720074376553458442331298931226963868603096832631906078764860435207750266776765469703244776241507758296929673376843837504307568610346445182386447462098932458555094118006004365744621745982130555392394003542078181192557900850768573227985274676417708051148494495113754998268694095840323634228846952239733886611013849666210468572144727007162072853900127078564303206492050858742087850106362559120624062055612822442194207584598840713538082001939470261793040338770642089487188782972794278043523436724121677162236905936566051140246497426487383926394318486011464700998393475143244019915440114905942206258978233352550270832772298353042725760599367867687779704252409249669271661434211992886838958072476250339198442988657777055728182163505288966379142158296924050743076683017500525955616152116197672659600193159484447728821102139757407216910560676067742121347431611216798268325821545934517719526571512011367512230248347920553049016441899308862385470069308772542093866603930999503207088049161804222397052783239831655673741541689130563123351655847032475864264689112145017438307287091992857567145914910033203170796508636348183242989244541949102279516998438067661907009164360232397809474906067296607466011998207643258203093565943098496976255583911934751480841446787612236200259144731966896821414195312395433069708143120686470606208804497237093676600977744185372651497919831048614478350819790705524824908982262013073392651273923197547094601706184103257891380602839606263589986884888873705849003349561924547986785566886310205008798643695300490494885726678420336089314880043574900321648350616994348824698194074432643960607660215716960430642841110111300210729256286335098410238218793239517717070196106669596635792280314065297629064694204927480850944649014576854293021998462195224914047661223335449202085848688144558094069299105748923838193555740893588511824726538592170251655783172478225247217605333585807880559536585299691298640558608153351331652303324048119481507130285158362712671191310123790955043238408089767891751321897951879667738243431350474484857512995210577281222781564206179496357905249773066594472495679964247793552808680995661866876392671142101952769378153321882787359027688798044823013378660992693342439255577644503948216857789417739998490996105348961310611099299363537197337709004757000508026490441297784112496618155993132157144838480522222589025079436874186613017319021203075369748079175279857004950834515550041056326491516502331181824191457524215112174740178273841984490571243379101375635563781707173276095386757471674256782212394742807438499234819603045120492115513717878284838511381021921654167810912968611911173481377410990507763515927594950470270592279777695192361545262903688324391572659570894871418297278496829630362740139972966256465128509752318331646800241161709228540679586341969368492025731810505689782921130726246631290075259759402525169808337435220639170591972272440330555165128144339644320799707704404969026242915879725380081809941177869237934228467221795468459195276253969501464725412413986013416988767451356691086966538350256123712968565459958746833025938713625367402966720060845526492878825193497879878074029966874379402725279549602638306711268999218311002853023703470225633845519308287025645578448645928521102943437682230402112544325169500293452083456314457905131861482608790088338815050789624173390805547235483191313160211290899222162741239796509431359706021272621801929943695960865059259899548935868384435121140360907857625215073457209027368492059919155371820577093326377121489331016668842105388955384863259719969100231422731788885140365007593879397532529307201560794587609323050111423187504062947967559550878212932043583889699624718619008696071172554547669534034765262821304216643393582982085732442620561952378588205711721560536931185670646225090416206884502454173278491962566277733739374845301607124144225924976537634211787086809041238763815658501298890070382265271057365521883276437606247584047781261213122172739050876859209317268036174568358605455695927842468657040381119519859488187583726815469290729669449511240333619845168866384322761188022805052276261421400517897533240961706720632485026457662582483753544655124561385505496057084908500472937411072408478585271796385694121161612610613379823663131592986389207308868602127651103710574446469636024265681499239590151448266146184423364904196851901420202448756891577974541843555501020427782902989799660097104764204149837260676670874910199377256232298829910172828761491283979960212537504603503530514918367251208190982460077225535177763997133787173453125778496836332364384214888157659379108223595515617246350759818742611783156768597981596054888700889836356444610146612182329299811699098273638769332755082427131335698557387109225106556965792740322388756425858481867429858616609021694755789003771273968890755695177286355170706816136050269295192954925257730219871487277550812829663143965128360141299644521859994982454265947111983174027131748321827218282165871611340128867220260067751635743793666880555778455708471893144224619468468262687251012206393715832206827469397890942787642073633363734062169923489565424747390854627995102772801219101759871305353229507580255656605826682511375928169268185086560418424186231528030597718416835469528831196751104648179431539016088792403366908645116262034610566304129797807993871780174740879714741664031798550978440567009024299601851697695162171246660564922322523226236976896662336939932713397847352143304578332829143781985384393818040182311875036201511686507559207279765658299287503416147783938666724657099279816508149421734441140507383207795200883309207740242992311526091484834805174222398831101952373519598882499906288431079938768204738768569980581703108959621570560832719350511816516225862056410403718209046931240798588501156248977222320189011210518664833683801953765926260241026398176396712191012452718085006849881369492173306551395333323312352332692002394280923483035072318855210859530634125512066169598817129951760626367840158817533023852689821234396819846750999263658493829524751808334756682523724489305201656521487979564840742173794516130578526323831196148906993320926314533751347309130724871184194767527802073896472710663736506987912653988518492487601454748992907583839005675688039013404604013313436224899188099792921341494830365952180022627561737502380950046976878684570034945458422596573632393319084285466761815132956891205066319152536812777179751380004280565040823807255629945895726258795934176079229818846214546037866479236237670675916433654764490497734932311773488886939455099961446620429998932983492464967973278000629736539669786734919720164231485460278729303035527666892777593578204597294865962730180618693690624877575168952439584939297528730125713057418629313748003929177198195982688838612141545996263294407066621658103958334079574691982766490909166270087416458328245853909595664973811474824625197925892388230697023647747346342904232998916203774371322118596905566808109989352810583788574448565378699355183569656192015670341547147153178063029499606794466335581249040273098882383110204752457258832568602055495584584900536450512772958966376349073567498403574984608295213625405843637783094153133871129778166279409069518032661803655436109890442200010592291660199890967588415286479080703565751269198149484970253238378593171552634830970803906393785462332454609933036157210730878419591330204910782780851596914362527592257729190611374568156273857119680431914942000640121556788025749869229335919871574604090451988945409958812763979488004355413266424545844230565140084189914544097137454733209873499098017193063872088720832062918599882525852048123518283296999848797752020948552924320920806471474984789952675213477558950352633818753172593718100510649439378226079744613335393021853201653096830048195092294713346495133576874480535530284779286690157775318770037313390468565927261037706364091748817059457999339557164867055149404080720890367259886219415232119966046622504981702047254407358303591928972218820809298098176618895361470658225318862465752224780045135576777373698350731655695071543582683482575407899620019537815033000125267542865380140835420320957981201449975901006011443190538842826288519031572833478058530685897573428688716597967961115720588966177714580966938902207980928662690710904417599458926011650461732195963436447685191216725348040297061376450960596248895191322935150333195952641713133640802437637332664759568876295545105401326242984046804847455543496570945105893471708774549078029335627311250097318251942034181249075262111535038256419829664302536918060295976473487029244692742682822852674271242511943061057864435154253826226206311374894684224796084068739190296335682767139295136430821616947246905311583441866960757352986670506024306676424720520853786841699304279704883472428917853195967201601846172936173953406247556841100759125035773515675815308339795937591264540843192833221365114726698037291170106916198933392800909080586290512315416654268011465637281002790848446841954162438335969913513800097019944503015454417230181426522652922558117285087090302369548136212723723134950829068334763700897315103674117040727961875393756065796112505442607190563278889185360557971138297535843855739328548862763888050335555749271165735324761522211035614717242351856801118736852174507176241479317699724116232553143347561363177485506407881622348522535501480191902737665763376046956616088258856960240591979180992177105185772968738449537560623170080427664127997247636532596621401548785668986152840453482132686602985136823548911696571020194856435134789884240006255430523868059670314010269861226955154140079355070377611070383078866840881757586286021182563127843118514753892159253912224787239523910353291976901032181727327785619030223021749788193816031102833201475794827724265228448799395245327748420187893783039954599270183298389440468070768033922304338692870712851023743877490525332780230080635565157648642692950935480811929178148386332065889431679333709676111585274180994207100105637131665611607890296720565622143182174387723601799659744396743362099564583205274550924357810582612663751183444232836077694253730336584010497362154909348750858202328665244003913654645955099347664753191407114306853448924914131671718005033147618992698689952456253049984179504931603976200513934034952461028008238022832592567621020894080518552225948035174887929091001746484230669533900304052664193690528995868138216278486964230667022490867575098397890925842416492151258790874596356119215192620526760603169867257015074836478287461876516654045325774012177392336943944772808844229468617741851031894399452389748775317410742225093159709787697516363855248297195411853197384905858828833792177265296199174535512987393106034626978624633969173982841965719560820227727942180189322512649204711347902156523644705683607259520506750170194754047810459638646753481872659932424984134693947373484331399745897764529384387606956992242545156594585064919501152709951570359524685075045135204432014165171007409148623680015310554833633008849562510366293224454305242895672961537580714448134738937593507526330724293943092501328454660368008333303004341808653458890250222109391325945499057830771780744231150133456679975902267942860806061207599794443483981551841369450899787611057911576644073118041110391154579441226996231601489095391399829711209808826499934305925129899654530333316853399674724187834994691487634526461154547734704001097625388732447293540934131763247229125393401877762904617450632202262201627572423180403015959957374418286165044500972251079555127088457371569753202017152953565125246160600141809355023303339028787097097757773067575148237111581630949541827347456943111992088205874791391140104396234003670016970390777108233512031595960603335534608575110924746441272351762516120407035055510145754448254544845448343694003587372183797844485078962785351165889225076440405924112515524759834030302563276262786165590511015809543173268453201161714781332011697793838441157311359068966215499867795630601707565206729772226509568405737524473988948363568943507135163480048846709698875831561954427251002121902754791583176588422716832292357178525583382012569313295550745320326823348986899948325329038734502709560598686465455851221759867790353119174152955640906518248451451802355571777405841682903284076261831762078006854883976741834012287993069424241913341346668704533452876170092308726346956850344386382585801530666958928330697896246558641468758986178999130195854665990821130798865275792028320029769589360290465402567219491230076251433739231107941592756533513252578905026501779352869970010487668119083034626281764913654138438135453734358638664806551609683335929880964381200325912530753157372260574376193095286072432448871371631068079417924495985104286359775158511742390251883244661837789356491889402604480127321923587791405134948872091072586592942691705571595252254231992397464715140544648609141641402862432693688097521581915426725921796737299914821219363864439730079862438770664992321063633682211460629680744279060950955168239067190522865031671230725273319589817485283390336516840929360931349603115308867587655025857320852426239397563367160628223619165455515337236434661694350966499070608312208815216336850032541730645291433857177247757144955365639084756276727778016689866712935774778435626303386466162095374008263812720535210097005950992489090732298862322651246657444452734983317051605531166475478633914529981484250615919126772224665035276229802383976005870116186687030970320472030381823893335763713822063098788421738644639086219032661174646597276336979935725178408035870967295384414538336591956979146380703361287529219019903846039104503614710920785205061021910140175250224662857129990757637317283340637179389652583674438390144944725368431989701154506301134615738300783427022508812237084236940896268259830583759965707435887905748758064182971446247479974138921665032532369634526103663768130308381041441541522840566774085528848018360450038978278780013357583674936124780219793703854779376358384407189440198782088388646569452778446019430408944058465734622051464003610463968343153195498507664798485805614430801545823906804335766292765504743435308074968751426106901785914644838721330850980777251034217289940582033704443848372494481162274746364161284553813538347178780833927943302978444654965704320964037095715821954508523904497376179653477974824728005088046441979809158164903168055462961436925818011526868019563696983114425983804037725476671234932131193934453675106982040255652903155234431104696437629171021798702273034600377035579277057907446932428124356708219225468561597245940625278033493882086918130844552416775593362343261500244792333019328947228093543970755136535756248235172181741052520103603002661533273158679950269122574321552217370206495255260884417077458593652535116757855972147661459542535975501220903512376473959962161559889313317896275310589083480801302410201621342728304388844864892579917590926545258507546244169263506280638242600498495909721817585854744471700386418813929808434464557816185417864245244606758677029963461749089182767570938996816813089124093210223478860904650116390286966050241689506073074096417241249167729620483462070740232972101381246886179363123460105201680963082595299736669347617818297936016585923560224051969749714752457546940953378452657849156610951642927248019515823077443918847769149094558731664147705604553439064431187344380260727595130651090877342904687701171936478165510123952495761637833349632843015902634886246296000619012520799106843558340118832832784728674028575951355033231634064092440832453537124114058014972003673890504626519243328708293434108183207580223525840193283639930980961302031829817575205219915349421277464280301051496648465412081501897702358490045590663200004716206596270493998514015173615370197259077489548886071000577619767994184740764606726761168277088337686803054643818905982579450571933945839076326026326098464609459602693971929636104351287127743253078249575887029448408744151713005576807649699425650190816716218660973364838918266566547247171776728194228530213557970617542099536584818454310742758687590770400030589549300259199361538902963525956428725282120223663109237144860757266215391110079763515200036242249029738546699180894472484948964708737744326736898842221119708224240164528123748740813178427520649282589907575401325991924665529760261114923122045481607706641114341584062493375694278805653302614374135262923070044989691655240672970275895562572635758131234174180571480334745948156068537192632015984101247597741425814955192144081842757177073060744118246515306885495172369232671519279893205181605233750333229456270663751513916455077383446593751445413761542568068835328274255882950554163222473058355497623688125223919958135038396082659803093400453228895952878570322042122059986996705062282126579605092548274495628041080372886976235747276877546514477803371148524415410364463920644489504684075750966046769858464996555463093660150501414274317091849594365846073957811202122095907412895801530421602826680745439966843072811044351173276902263666093222488097319941420122579688107102712857904994924932617456791671787186792330037550203243456184375206836934787224798296534304992636960784661435036340804762873614629624172958409566047967165316545260878172650757500052956301257196855624773052435589502631856443611287113237345895722563691428105107891522789961280827119063931328221563332256739170454445307882749182159732798112033595359571231336529484650908050337360294088960678425250545060604303429707651317950163971873965283725020879328536702410028550614890892822234587388782140526291958978110844737691007703175634465619175806577516823514953934626555079743021083509611371811607920244279082066245522131041334636057627746497235860554668790796063101352297488508952174404350904139904615895190444862491695947827311147408831617185082830318161846952133393953141955657118914134929048150555541851520449912756715987708543522220808005327037746605822885854797706856964939860765185374899579435709642695405833953848300668817758230775041418797252363635057756625726522586146413493761203907513924852912340234527435039178048920513197000153053483502369470279023777118204189476276246169687412395119609714593137448909279550194014966164880941958311209492569074488315203301904295523221171855066153449581457793213790373001709324090883022591896620093815539507794001259248380626127125063952810329151669366721590806862769051890002318019838183083060387464900693186792615293062056104247216363791163980814249970380238540921761896225535628180385584759713930260318829496730595403596120914583475844983889420057332716831980269001106397369253078861201629576230590117442165470036612006113734240175625295675451323395312296362207039821214576275854015157055752025897183842997292729452566518092890529560462205619293677614636764814558940996865432374820265484987248787499440611998585300122563863227659816936536812972918665194194824225483888655871675213055752158554168495766361293123005394994700124095004104162828962462599313687594013603244113976127960437005505698331216893345270870365322498662977856405795027486917502199776458380113252892735542647244548964862039094100057368606734081718016677550344849393850205271784060512544402208618730954600565099488472069594877567270296032997686006331976785794907242448478358070254475471092736721196935797521786476048916756368649931803106067650439380370788127978929546642946981964848561856908133856376725158795187726267575408734736565245129420008869522366655388114802870695945894754692767747941807871752191425365375929548622176529771639156514605490979497885487829251611854496363910773248450862683973279730150554572803439285611314172048916890679768990595983179164343173498474322117244312945131993624651534532912499034973213266005419777346190536805762611760045156686543157511646295461968447568509433660382269157052474683158465014883723256234367496021082677967300206059798084984414551609353944193145553049242236904519622563091581626454901703019279314248687298344801364397165524900768977232800781321150634389392329524053255055974935624489875812241754297287234246812899625289443371699522610526528736206355867088829524261381996449890716499902944886224971959278216230949874505569445699486217541583033144188777456512874543381808545041216214793734032689934402659195953736283501997734360540246958916655020680411135070129961599770344047190793483493600788071402750887856271794674947826071839793932033430735936730281687525234207313458721859946692592982579731530887200775044982409485661740189999087656682315170368885340855660309173076800819058832946592253710355261115148946281513277037086380325813761072704137921843499086656855031863876391308842060668967922947119646046109495707980696594590557320220300963688296778978586479276588655488377343804816190950876414029106585316065886996732112709169760645445240279952616406790912905854814164162752039236260653339764641733260748607072482107272821674449672902589877428387618448025830997640244483593669936331438057883392523874309993603171406666189749455708503167418319151842341489416601861060824665248661272133153149472994686971525740741214907364917319210809683057721193016427627535206844838761387596685740242832960536444330171860454539428279330584335957644751817849283059706212212394746984870980363048434093499398955667723314703490651592371536836713603755880081225225009559998919859630586168065482112465968226313690732505861745117169784753785110501741897243458045528307132622494191566332866658965105806711290438302236104354215352316880251083154885207989461330553081161385641072937485461098475849095466605600314132911789443483693513706833067454718154185484986316434197809348485438402767995068954752842884454980998187441295098068629710591144979718009410708644115153862703932961310996993708420907798127605071217558294950920910867716320013335392398651689673458088374502862858882576520182613294169806318165337790644557205723354437444868216877261585316289702600895856191291061410970843707190138939898623488043119149914197536414238038968771440820366524321593485084160713500537980345571968094329732124301017886988957865797817919559651306327633825687659107478731557405118686527939944752997556855442750446228840526673809442643350099646447594701794386905928088118882214310221725381871558584215880815461957709409126351091603326266497378349150492730334936110984773872863087550169292672120769660482088299129836100155449428997639375386238294235080561858186847468481574259928050576112472837655441255332164418635364578601153958736959769630224490247544752919061629437312352100086988124922068936286390152065709546670685648002346796056853884608412947024237207854897119904057587543234978047656048148527409770569826432159152390812949559164057272319980669236174927523626884396072850251626192111535570351951798731768907003720260460462905443701308447313905248922165745380448019660703610187028723403777089888949459958081188955833181112733497402284768335117096655392169511334503350198884644872972657886940423957817617201444426615804238217835685504564279912431415979438637609467292961450126953644925158385194858596073649639386995524845448397181544171809493463180377338967662697173530645954589468025933091251101495109496220892466534831865150631986533220361809711790330304151083491453682881369555902333837712587562262257191625534991577173204811597851076882018411996881447920207607281220297020068792936060896166703134785115139549653330450282970315542843862256476485304005868623409220797140081421279295744145826710705091554084260836183503373967425951442728305016541218725215647395700129532153720368176434871842139801629441803257987460297141282111310769298553927247565453848428539411713341777610703781073181436350218822981848348025010290323587002056359117902941714235186587572200976387777636886696011069178240319864285198396088897303617409887031603700539665235583945618117262930963444905746318713560653029738906195830462436874104564342508485748129881588914339306401108785293511251483392545861025547959600171859907898413294567961030298309973285951644232415191863762421924890367369354026687703522229183338133582141191158874346564032803616464078552990263731601654198794053401452567040096366956022781396170361692065133172203645036490792382480321648736242777828380943464011848512448024728356562716215856884435457781259079159643709206558228651584073268264931669529913721175890242369474209346440494432102847691761015964365487947098727339654184930190990210357916987638423192084928533993085477889503041914051800012233806987729885558189347977823864042654278752182831251578185391681299750949958165939693417369260845464176189539437942638186171094843018215519402883408909991773252531407859966531556239006258017919459736080426389932363071835655378921282205973509377816279148209324085263611486751424516420093085355819286708906754397493393439854345006162125466869331138066397241829721633341781748062849388858114164709432878756160377851441656788157699073193816377240220952708497372713559402624361061977056217087306504735174269897354200375050524488707057353144039929569868914060380965859301080155545890371645314975116073174517813027989339161389189923190940806499408905934684031518399277736556247469965798090312701786726887657624587493385416613878824737323354399281016002075064108906605444052573158363602942852969176371313480455380726596243043780434519646012742102423034759649229518620682735141560683727289055520570809113638072603217729195971096949150942241275460710450360237198967165322435358507859474821279426959938475831116853420049556903219448811086253519595388687299306839300724551809766393014269046711428361643480528590716092000836260998211223526214122505114345992595663282657008931851786320899243991828586553900992602665433062049275625029395986681425353474979890384265025731539387325337492912531907360196636925743574679538971105491502120065298988334642594645138727931020674132378818244452199908985245541802420906283296159070758039036258677801284502219138809264647464801255961798909720229650962800997272821297573000754961221330758220335549179963588940494370565667269497695742462300700693961966069419724357367516687694142643904315509114971827415579879835426044729429640453345248929390749725629452423920568427105227972975221084149734476720810128707938412848549284206715127649940383723217541315840134973597966057253695591667569683473492753492461536046727778414116888160073089488470801896731166491983788438483102250842071323392668512316636346734911958572529975737351529465817599480809590340845917425606756530585524610126621647761295214406752395552544252072185782437763894578980452942476759402610171462629071484051774085660516072832259430556765313779513164932582058999487287154397961447488738310826019622837084238487677674337406138798795249514494518885362311508422249254920063191740675413469311448768013073819395926452792210114890672779021562733910036173014929271903386394249975946785570165076982384885886552834886551785413429980989607426600652272792590233675345492570965553029189581062660418578268086801713380170177254076693991648592367191426335028391071744777590336243339162816162055412007007501230436639574597722558942627466242766732424398631430862625585652359956201673836665469547147755540422411360643595895861185715256122164822154909493812424294041802893151298072066490963757138951624118229280297363506055565117328172351959021872311629106479703871232467070580470246355457378354195327509630063712432549191867568251636862819688014924388060983865996531637824410459514621046829137756911191145966364989800566958249609524552780640931195456608790314002083948018169968670354392041049865977436908765553112651684527888254247104838672560927416622177399650498021286049096203650576045137388275223095569151223665482402390454626978490316612045158454792723441861317231961029694150349838809305001563822207196272212536477065550002651846801250153056614988048541124396397158548129882812282704223807085293756605806431351865455885042412162367299203464335325667629420620606186957191710894674864774045153394910204949863146236066372678581028668285823955768037481623103408885785269377774019730849175466407412132244884509399858209867448330214619556319224608170593617087956695320315902150819550013061084871409135517150619889443504026842963657901376896811311947243935793380154697740217018969638811967979467482136742672985789961252535406900199688964058306593697231344718888381568991674235571814389676634298907864374159982077076082870528596178179200864378328162576816651710521928841315659875305837779381480972461262434064756407527104645834652290011947384775576349741593197796410384436587715345906444154661995812528729529008503364847184261544036573164218596828313689229396354613024176286265435637785821985583438661450289939208349889068209336998059706526324186491675773066627765937624264224691779943962438340711931405444159452393307871785826250554526407867304592987401865507336792200076441688953970289161736284037250255962940225170713253894232726383080869978569741198773470696478937380556715082948423511981024175257033365381172468442395741759622035918297508110170224099311315464352664102248881267642217469371573366189950460592479764565709967911087220021674429891455992585113073871058720813883652692878781345762874430356599621139439623339294858091517375279988529819501203917252848941501597565642828141465753343196791060643602767878943014694515595435054204381567946978653455263493086482661597314586989056231739737439110528828888983143615864573441197607809297696759173430479279065457346069941026442998689845068504416864216561653928606581720073935210958401807649988262566121066798789514709730966146164791018802826159835349064352320389778082948134902630096155140922195759793101283632160564882444508225361468439084815293115844174702614969097695506741291656630157159286718412371845512122853970720673249417321708728821724078800723251231409252756345738456778371150134180205833182308520525623006694681629097519003077402982021194606486032190155998287140486443823806387426031350323399146802987876131078967631532600227327107328539406894374794520817969526971292879159132263541821074208285279485841113674681055972206922742397719081944627653052145255816882667589603920059849938343265221013931832323636003681291736556640081037552299199090703200198905381745572847908667968268983218398898268177464071828965994860499864376763458454582246310443428596895719550048796186103387993778261082170216789595640557932818179237960509397030043653091476624306995347223695292738944135216916611579009561798231560360454593177873053165649031952546023976168478448923929036105424169322533314681027286093582312812382027352376172974034256258765449163191005779897372477988318859848196348258114059655911068668775394914929013924721218822607001296685095325298416286685254114557286575479399399543716016009306939195778573676485518091783429390581434449668807584229374420304474921278289342011376231946163564772502712924936691180665510929970366932885264461998414818234284533628572969801602902420245019586465060775249870460922955473313637690964905248807504673572968635680238812753736026886940542736511623771525647559565545097907651671050038562374036989409834448517958920294034067177383723484622871418478970537385709510611611344782822428491426728404640402949511725533470675745024953241437538799067306678187398913830792156372510830479038905281875532304037625817642318252126119821744027618903858592197632948233924554947382609447347913618336357873084783569597418684872623268908330581857912225782092535351048273507211846351541385822253972640620389197787803222969041183714514790178607869433872944339969726916702841275781937365957029485398323466720625217307735622836175048984977062324312475584843264876764442445012177115628029223836791517076454956759371584329180038095623605357716080026719740437138515722522817884783358194055741224709696245825532993015558101299785303483075415558706829732125328780690985909750823720936745198566184459482771089399538500193870991415103144083623902579132871433194310349053627191143087553474723838343602497075815351919334371149725611509654478402660091622670748685117646640144678881925848238877449285538813049668105598065980170822879119484494437982488148970192567732793524270261694783075177314039838506831811616356901916217285406241749752423338187491286640690655319840200117412897192111241108127183731672438433083393228675329612576392382525935897207074080600156606705042073585483996224662541273355531819531387346953415943801086631735123047109225128454481297088803918357829865020233425466386669419074033763079290342500416929298459707130694514709348383095693217883108353131102359369502114801032622275908204152376578764953811922899852274106975792409096031842240950572610146666430268481475085768292378585539691191367907516554999040773487554822845275618868489394321942671755075204179526767128830424273230708087695946954193698589407332485095356656003799845092267791697746630111171239169985570758681872247480612671679822176693714102624489027946674407189772489481802352410936864614037973641346733453220245456160903757171403331415018407625753629545813893895113781398957224609053425897899236309175138152298937724416874523849448816045342045335534814232173394978656724660876687218128045047289453491669747294854020710770765823257252501576886925721404789203636516032577814891950448540947615288909399547591081867264015904389446502545578118945748701272461309182259390560469217598603731015265014336262692362152910256509224258659174737808162399488862151110634200944683601076885231646464950282421618217249294730795624699008569671228096777397059822107483198602663761295797831430233841633415415758689867717255785930754534350579243448501673347247801593741165981397186842824077593965517860125121241923261368933195493164090265765824099788257220266701450653457986923016181641005428103140685406052517746199501073633902180840199526248353686215724014868669480836074317584504535801268771172332946875607008083203342433807706304077869014040803242237678262214496192721147869423108890154352394150990583067105230175449559329265265704133585532052461349696056516837364361661604672114450702185745938941038578616129080260072836902774944886511351956520500067107976958928007488840418372387619937264817411283974500296309677076327734514482488961883133401220683611743832972574731527616932389874087392523970482571358759822187480954089630214487007009972805615278438929732887133702225204520602139223126753767655072913700772811967569366832488876544770676639851437774114400225250149204047095182070757347530302056654252963122951646031946780306647949008161641783269091462586649611976258722545620711714438902844199502735068428163559254644309619940764016258184792512975634758266378017693095915341184802719530711987387915159643521247673306354118364293326955126049262084812513446098850589037342088799740328377521742460718965517472526297611348572466191278265253743530626506967652543569569597452831399513805924722756213217236735849123493104565408188118456857049821062113682819977477398783025543431422852066065155293825898019015763556396066311291240897787794215795262420860230105924465436584127566156674810078915325123200445102314012155835038039326853416928587201638057322075850954777990258006430588597542702558262982226757806458288931522989939339356821504352599534725579567610161474767232591344129596754815892132518671662632562092535700641181695319772664917663986245668096066199262120251189335555524121593680686947907719447518586576394809602468085195719521355284520759251963418258763816473834543082961668574722418836932141332097530713218802409296897497249940695716741741169274719748695487702321178564984558431094570847728137650996227324802772276798406402595598067341746731070459760116123842676983025597880074471839176385914914731888340732214489214891967287883425609410544579676453350037476481788392067841277702892387209901520870249674306190597461352523106550956248717796303988370373645358034279595517226082344092575074044833673676328782699279780393460561277932826142290895908162361971690883158976140265728308727678590788040721470477448161411544634938648118312146356434392655007588267626810254267523937062648279728508987651203132952373419616879217267566194484789546905098484176622620296642790360906324155340495856178514115837743002281095962203554723414742840752169354341836865881588370666374330020432124482033234932630818785640340082745675237224381483636909767062599760814088030947521441341146489902105310973063729859711805417358493364329403880348435567261873777109480125005496919257662662430506346114000407556524711005943675496798875254251234993667635962748251071527722650837809291045031821348032392681873239887035326491633813459494497804800847682135574222717855113823900920578567833408927285884759207896590210771811659727554303023833604168905879548792467731434608245139221288833549833263224510710629011337677978111743571429158138828023443377865965967882280685643286595537911614663701539616760301380000806709377530796397634239808667711757646967401278556097765016782551862923677189081183222672841472810600802099323331871622931236182610359739126913562950176823147704188399844513166503155832667484593168364950202277001196359270825803868361785019844727298911524652669945848294670443850866705914866017140961122481795302983991177730539476770182875799190335034430722614872007963384902531530835612013531698130261480041404082984027133647758007809392630597987538785875085755301819806444747980817873426770797553269784618125784172167453895128452669993728010982994876306235748605097747421373739986647126769929193767347813398770912313284371974938398418585401894812187217862579561019935315515756930313226621987430023830455102798464750494684306149625529297790189301539605998551724480928778950556474377576248857542871040258298640314963762297918950733475793681312537304973893221958131458706729169707845206619234603074253453848435868266835534066482279202216874580722766542072639494329940640500705696196374239619941334938640943643996822906402464854882843691721325597559791742306304418610501520017545663234917967184604868703274904712741151060115826635271621272237571123479450118608529004728828976281082011055324289211012259357346634597439749788376327838826930439414733075843402593077608323754898556420157021706069847011663389061277118352366164788756366690223700136750407885776974666571498816665737732420701591870100650058457477442157122019293982614131925714826170365055845032647292124575872637932518253766017784007170043095541388751411665231710236062064569745803726628634299817644091456985767617889890492924275919804346581270672336894909358645977931541674669809929468039527870329631403425655333405996507094459549635756708960707552638749332242707780778219623752337056826017241087180024285045092618427025623854634783354847123244542047892637343443293034510620594089323481707652143540197368381485843384178422359032108869174011845375385716579776660933131367112264771178557868886614843629259879806328485017077283379375342911087173814988837768221430885525576545456229933089828741801346353141135261976269477384393555536052091388743260612544915744256422585011617853390507851561470382069553016162526113881888513430319589159990051375631588474509244415690623925530938116257841378179534411015285741253046151751321740380525723901713782319849269202881301033687885058761773557671126099126329230214516987241627933921304221219139986420072637225086416461289211658566807229931622914784489018572647713809156532370858146273453994240327403316682557894239360596232381031546292603005102221879152983208626681994491069150965858290122120999504901864144270202551197422097695233791851615808511924237001644307480680465833232108383676792685228916356272995749502690844301687466510407761219107162517577130174748209517423479945588666385828033912077063068751996319767792305813006196109685485399657262487914100236533914410613901309296935692377570659775196894060458916691441210571481679481392247257323171199979884856704012504483919243634210274606855987037640590511806882501992414628636390924996530020599627032009214932319285786846549554127235699210943400748792536366165619909853173105139224269967229652422733939330060129233573760198019394053231041049655616179103196911926049205160002295289470369498771441081989557325779873272890270049367600260405957004734510523037251598957157985697479933093585507928672797932950516268610938226960191868630638734850349233198117584545608602063368730039568245593801591756310726276578775525382473918185618999964908257390583772860731573428723957326937699311089020611957617440525399694514449578509468097030628052198083338485997291428632476153134354634612079212128525663665839379177019898575795501495115021176507425586481018986154559310249877633671143667742067331069012356317322171033960034942992152618580676361849871424974553104382480289557019499445136173504286773850693921830026560235119712900132175663159750755279463723340336667268754673649784346665085054652537631226868924436723959815792753278269419940967376448757210612014832859783420875467544075420385106693452141291321100576048550518185341502794039780881651729343786220229093614785059941665601494726273971876766145180300850599281133066461973114152921393563089576889391749858799664444271254011297388501119400124535480402598570220503481127236945339756153371203089989853604281566916855589004418341756615638278430261511324480929150924224662150257307023426012452682597730803189524558598133617407055875073617519946341353185443141931615442704377020613816764754555601401058364261846463598058082948525011037380370413456087481251716001758836511690105592630017144869600015266750569503346229083834256221766410376781092044275379890960801520841486586453698688440243976894391329980723575759975157665811176153269936045378129122963785348113099247706602539331407113331464826611116022480588080540335643371881925584712390950227448180284101750077141533919382830957648804529953100876293023956639088989688800153799148834254213093432325611572586162917452958167146689798332285273356259552670080809779407599815776477304446415688053180025144165357497179572133862518682447564864951531165340268865762617898756127405491450402086237223807996528852299803066269859877104153557052445814224308178587065386389368381039478698254648197281139941110196445945436264891836184101796889061926151926708873488496792743728885985877435100651388595652253673250750903542920014209549871119821425174421877085844171119811715329324296820221688220943646033910540914218809458009729890191439603710757305610633877811283865036953823140647961594131989111989120954487673103062792644797743515112974821339258778764708434143798733661464590712561499330992589904337038805023350661606621305951021625495087963649211495480365125584184678221779083706258569075228835815897295642993286591815591878136164424427641060664419938979244996154201015600682941056414856078014093074688559575858749503527392430047161705844638652807188910131730414465510051938715110255454169872848047842806143648558237399616697746839636884678730992288022237935275696662638950631930522133759067786995441639624244945826922384889298756278072708269110066963125864451403504187866332007848484719889526386849661178446366101323935140789363616590756141626721233401312111592906115907855955696166571066643402017199427740231069145715270963036135747410435593346776841726614955795261397102997755049073531182660133573827241233253596247764145018010031395158607213212210058456770382190497415593305113250695810707075934827345931478299902096850853564767879849328168689465636982912180293356238387117322917410983351773614081110618450922454086791588086923187857439844503935964712112108936134662041471786566245980865447314975586153139871102588623190618933654977122481188770082952796834151287862949530231813168972389171765048987860076609652780103282914076951515304391678011404077210561574171503910166907725676282566774509306353117663833875430623679707152298690262439883250206739436885606891176225227135031826453166615160844544634054215925506439101293805470919621738840082443657316511963100354843220924041891974376786271536037985308238793111151440642840770594993241226129889772471530768039113244611546710080404993483383400202709750956764572961532374180593654304101633816436721139044378282244976497234653246691110107269434226955011917222658655850104582546581275306358568719346392008742237580363867771753561110548820911206276987273284765352719401573746499724055998446288885801988959124123876888544426531186201266600539835807403605883758173064115164855004239497045744702115085138451786834326821250914693989467352955122026965010364006316651592998775605045318721002002610340366115996483718565411635428077385435385901499662473324449977221179329150843745072207949344734089569876790162075020886791523710767767823930418089540315205638200204817755219499653623507919681702387714548532076628570392235140408095472331403166777708793395672943985519429410520544304386075698512447792256035449016301982091934489622300548506229886116342938422701886067084684124437928140191184259787993709019452098280603313187307405127090734262326242234646901919407213389316066568952677740939247076172904933529446578827386645315620983096661154885332205195732370202966727919008010987036736870450376680711122574866844807614899020517870664011126509984707560919664335293643737770388719796420446779388419895188378273456259214853615004120455526908804320602897388727914924482588452530805056471888169332402690418699042997689249500123966941197842317250433895072922257267909928314006458082094687092404003462353761883493510411815768621284957649609569741973730548225078299599555266814209993230265413765965677225995097158752979493046850155308310140007442220095980640461921178553358637991825866323999091907381633634665336658968829853216272866325410863931914266300805833678917854401416398546260705301969332604342045521564399508152602568815767873699592085565442540590858842819571541226687282620146038426555219032195454198784266980608416857169280889643840533267862492767436297366041903739657930160639213013778671536783108033978249951179120614777400350085842354912219189940524188222961734085028726211510737518219775528954763689594897126432842114273512944723614200876194111983670940360374082930330128442485568556521904947554966442032431455476032794675086496229366245186259695457918479189841241516092419273184799695676493819843333945361861150062937267765603744387725461840662999560606265515694007451215949530484712314136758749770738483251367447294901147859204710770530819268777040466873455733143634510937225091227087382617256753082279306591356769857440304323357791756672547735238323546868909860384446624365445847839185633176253029217152551277428756886866278880886401347451282214561215412263104998919122108560761563376208161711842649763762810190116384708799555018120805304010352350075289467287344453137127816861500885554029812646691208615265902262577134705749004441865623649332511976117629114265143185085909262925419537589657665695904367395626456621865766066693396517098934357200372550777650317342117416454705104678449837279416532172943762983762865558908662768419591030099617416893085388517270662814527505773046279847931697083151517264798069289040853744129506462034378220455925149068888205678504116185714808668604302440279310894763576842108851235748196900902821918219474317601419464037651998953050072013458258536308387336844054275654341815651882243955507547262763997188831421312297979164985952314018239701647835244426797643467524875767908513430112010499485757361511731908391196933491008447171828641646110071392675074830051467417719484290597725679539062572679096640433038811664913331433734728900471717960464997837781950096538348581946551215234285996921901394928026609773057026313075769323717375883440753910124336182748877801565750932951005476136823646148524779835154469492109473907654014484261224648588637906595176460915623657152358413665857386473970428888298007587903943955829828132651886443626965109055626293021763312393830457791430835447921896647520680998990827975338393960562544017734653466523927274364534393581845303138545294029220701605944687783460799122851746476030989249791992258653782165425245997045363053628416416059247453016999332452897304044413142842703291866448585590415908555835303757999961282949836446344955281005597773592141584264927587932758367100006195331380117361762238279378578632665874175562190617032241216070769995177660119295263455348669443584463449248685718579463821952612262985613180839274163673198214065166126078305781099898844666959207554714690749413957870331832730364169666328326735607196355903066156689394598270732823935004539483510356355741629542488665974002392458398390760685325894889174109665901064202564785504441310721907339924232074437411644471926264214097840589965347431223247020798120114818354648744310291079666603807185551298744841903462842352552956869802752356609770966740975996957584841718203338433316402255936409477386324189189683639942208668240239120364521700565213660245198186498775584481204978199248277340732375409240388085776140013778970848111502221849428030187292151981044564478858643746645211793461013663729494238795080236940508193381612775810291982255164239228397125277498051310828540637642143558581291750054055822406056481970300499760014605117989489491494906721379259690606030403288182296908456225042915287574807122076483806137485135516687409225367975282163699264100187961623683939503765928115921127113317902810435527326921817577914687722177917902756669934701439478830642273401434235053568370249980653735771393454039121928404795752943672565203312915738686622119458585648534101535377789697791251187668290784711790577394894642575386638821431993708498278697963134881028112841505794159713517475808414487584656001006245473037491839600570003372798359847144353789866409553651818534410475790204478950746570810592218267652044284869972782864060352551059485226180325920129665660944209675846631290563515689256149803944879913493476457833516551708662011062386948433847328384096643488795809866388244135804255690836853038116235058855511615007122145094962602144696371162885009049173980247434713374155287988894944557292569475490152359771682723347773557566937893308160684080167775040439722641448125591530048162009491699171038447204218313665420546019362704751833614863466340470742691533001723367754295330341360864190281538213968353661298558586085909523590538435840238337342793713511735011416229408251746293924310813157439776284743591054581309290173481523342041784293251702303135832289727838788359204684671875562081409118309438449086522106675995213502534519216413748082619099197356635109284022264625791153573518302034650855305330565961615794931805026401365049886035918398594493508549619040088851246348192773511686975712662687517379692223338133901170857551319805568736721021750316270162124349298791998270065314363501189793614735201471630382920507670163921240794760174149047986011831072218294741639419049395083185651654279590921292854480051204629400727140473211277162545048926417933448506121752731294976903200737952372996682934363390340927256128691046470354211642671176595038141563320283109195527596493542349584921353616500393471347515113178918451313390840906265777675458842288259884014898293207872905170730845622721575297814532879852814954780034024700744324124379202724526009851171633647585711982516628512152801329102859187357715807449524514417340718389255355218175929068846020333420489788921827124529790145803320050537468858376328538270134554186292441265080682442517918443671373938576398908236328327924562235468076856849272030789836503790016341874452451003482985225259204771430217419271441311364466982615491356843430545130087318962711016637185565170581924112500860120802746654988017012241369268424978789161078271615458418047000341282954269226973572938310656409683104552809811065925540554191842279177498196580483800538751683717067836440188231796844217963800076829971523265228537112794414324625230909600892514000050508765672580277845083688366230019032638342471764951704453740223189387273200892079841064978918312692931531509252396071264733852159698525386663854322922870266996328736609271259571285066044912362766730111545868770502728431121094219895712994344616764820219412950906622024379839475064314780773020777891948213970842725427296050274457249076777283340010808018732770102348264603880988825346852649508424151598820353721453852142051431129207573432363849251924375952717677744655943450298153544815368414871077211300060379121980727698260485234920760472562953431767430213394533989118676623963850242400214220757225707235527730528304528430763532830473981714341203113560760065022893867131498561071488543653137577305777310673177201020125850203605900638727606706977111490757846636215652629354031999733847368984430812338854410693897097393703450898581206559925097292380393102338630229998460215931777679976330469301081287610094156537659759625772634632523603813246488081835615819705405754252771031587949845957695166055612527136430159746256407898248564035093338797038851110597848758132854030792399285863965030438581783287050183033772394767594916300388578785709553141964060511394633001292699824417774738820185393913914082518125835083426468679687636702686153602285228392686160464804151094405498722453288477241300784472389689463725737542689532877112487092692231088210119165470064906251593368402171291111226455149091652548641902872710911222903856979021139746363678196514355153200855051481278398368627972987578702027214693338187142529382636021618048774535791900016459272036322495650109748504043071580581918444397339046965853038260840472790949469354301777293525150632832461658402179101441720558006094983251070722204081750250476144481354654080630332730673127489669567002930362569471780872315943137856831690651876867133553156408179935122266129679313024371415872766329702696937879647052813499256329337962037921869317692625526135493039146466373831373515212604784683819451108947508947117756305367199482173251243903155619325029701558764300493693328168430694273286850276170529718593726828829085995427429885268031930290888187574837156173765072062864574325067882188889046550297825383087470870566075571411106335050380677739415810907355022562255894715663487865937596707971643883159251190481377745109052940881258701270897266918383283983734932374936041041227024324977068735296486611690432787858374935463284438519513031498281613296290384507722218899240043453670010907707825958275233684504051280983580971511483999584265272574471363181915739563589988553112206438670072594156067735818585415880961704704502606839617681483463671297507548082862213212250550917398334194338688607109799344834612320396921539356125151354904316147526335183528341654014136819461717591607454749640402076380155560911558711999410167575490777831941273293007060162060248822478602254230804590409114522669989983983930424148598387193408995830529372072772998177685744165242300920450037603392258719793403931235397077624602113625665467799475054796409551287917939087274947794929779430850872083734770249639298632722476307228057878383809272922628944660224082364921305091550417693437734541889460966606347765714532119595889264179894211185368261888143801694845281715307211412005754981115388913392086317797514520386029904741153532456089768609387777931896693447562388683708914907223405613129294781445794752217793084978727941443093538026512893178660360546769014506242996936349438656964068933981730126136933791105961429352670539555976406536906386949517453804360689632799573169316055081750179699049698385019450017320829748703196398764134212418016247743253803752532710685414324953193645388748428592891472493768985100636956185659132027769270645534029680709338355481467034116307431714408543724720654458984152123074191862667597289724745190267861385466654495585282419800187647399586912231296891930182684753371097094778672229585846279110236669603255913022429339133503786621194403084314522776133934428630286695607891058218783961581765591503678080155186338004551577466183011117808732418273110285017556323703965054772891868023630990653261240850596730667319968644554353766656323704816878725206572840307233921125314682932419129098252632502182483477239794469281486795163175929689174735873768051169899577535735435228561531188239212516805327412898118329587424862871497719372921629649491029744050878795947361701413825915438455824001136610758287387034771283950587762814258356319556919247607075823346357420961724250922603376446679761817078888206852569040486969641414904932265239201258606536731640205035857968778708384062240649740731285037316390782475620290586758834993446845411137650418183251683986608186153351987859158882660740562300659544607390708285978313917266226710249434551927543495097429670241289131640945068809232185145217041483128926377929900381134611620521656290705900953883425591763035043879495734678935008063878140798198568206304529242120024078163816772162102674181270157739451815962674173713788219768449919382665851887106955818510891619624440928611631081080522949664343656017840316258232732853750647960675113668709899433090700640709150833829200556687115787166305365594382029046277503857071567074738431282508677445952735605012113274917189305131698034065217217410856981306974759208606400479757613942587923600843408878498061822708477252414966555605607698358428780993427271391172441895133427962453857478757937213521976624259697606951125719296573194408388297148149808465040948095550626897541050830538531940618979666567153145795139166454359971074746652636108703454617429856228458237179013081141650890409795958304795827224499602748519583763923140905658611832298055550117489565120163139973033898790737538882126391934393880840377017305468785464836964288163217426783918144859051558797669100722749562168236141980253182987242978215498546045361461343185828859732673662483409231391209523938636305447414282422834014490820301701945457213814233142908571117420794898707842500116472472132028567378785345170816789104592971402386262075156085046761744868220168826385456852594594532813466561324777363786247508408575451754149281956491501427039478953790977626982257541292491735539907779260915067159575140083919759215906988406355539935914764892242165422620889660760596564432896212178865663469607520668262817538295436525208642530143343405868547185186366090480922751878944489160771622392969613130787360348309460100796875202848856005573052713095835923770551510797723131217206487637524380643008122533335377926126435748715204524339092034831940375860412233985874816727052179304918492936038005376354394772842339347010055532069403477279034942948426156378151429198725021612863193532614852356042825597976587861419760256054483786316347693689907620219311243656228406338754550564723971596575141311366795303504676098432583375818512870725508224716033686683020493818330755557527938516180803887054658209356437741714874583116338308105135768151488601484692793158535727799222236143090240053946222419827977564611846806947228803261514081368766485906242787959204669819781299702257818341198184440356524831420653014705897582069799786272571321595389569412575214110087172686132654083141640149771538641451202637649760955526101612448499936873630156373192946945790548827528390799535168212964830050914570674220974939398854528013555689846460972709227290441741170097235798028490833784437825605702160131078233729640678836621930606140485047500884862242576817489479736015004481371652570981060111424602305897922608143796864801306469754794547968481388466018615047100448377075112590246273568418078848722947367191167212241387453423562334120465783973865413998458148085347530329485421262822593130959225372215951374140069201973140898482543516707378396044857248647338324181965731419090446414545004358462588066072215839250329235333167648002245258048201960522498463800097915025922492866242673592224460818375553409162842995954919270950528242353939961466427917753323012208665388731496837218624550737834482493260781557278523165060941623586858448371954504122977004217448018394660706621690589463482647002711390900307864343715375307442703880708851499383965657103926286711837621159421694738733567400237256994000931977404551962550208025705075121076550855967901029224054033476272507056238198856453872900498628218959490295071041686326903936225902136809239453372909364817007586467449825730622940937801174739710187733741545968066472456545085780234889540678439663336287160911380001659276702233792840730441226055647307658951760982672333886933490777858553893279654934557893830365853366838634873046881992106822348662171010357904971041705575643362429092261556365718434195679717581198964861300157380026851497451145540349136464719622377290627257674282603187680672806121849405180649403642443745929335434326152650107713271506996808147747726788971291466737225778051418003014765706470169444716695761186036709398576443733919950187251534791756318428408179189411515620055933579204613010726127782514043853606443155650702899612660285000800194879107981910991355555455431505512054673068421009614943552033543824961916495424921464246112460854027220275552332257134301981754712849341265501249629926183549333180561017693551580092487068895016842488394039780408919526591588029183931907831693200182457062481348225019403286981415268659555752435518024644671442270659336230525279935908557088630747615683133030409357385341250685882636424390274338856541293262807216279667659659978329543818052747204489054259774380749898649462450241985203803454176613305772313849036587446100782946445102467858193675691609686808230102226670396505376729240298627570843540400952717362527019187150075141457107435411550089037121981822229972120940603172908353350727386173200839007465543888109954562995621846862535997161676833739442094171907285753107666181364189429107308931181785466836503236501941395449519076268161892054864899051558327909617370036652659732625341468427727291841808785341981608980589289717782776353678471167557184233860391554183695015998041435343937087835768473383524074826765716864303260274993316270530877826425620649119487303698018435950716683133119353300444802253870677999718490074416304663197545783043328247510671315411874256797567457601000939207282932012806972931879919689733499789389406115456553544928929905803711896126527797010502307346958384378075195711390687562094384141074181112435346976795513608723451938443127548782535446697356461975578064379461710967822621919843969193587856066364614862912545930123168026031906134391377259556377866672490835425091715805409261894746277229395634484676882666622775786391017324636109609078263938664944377576234656294309988108003031359388604709676918172341034418971125026714495703178731729699559154194141531864767380329771455905880002891540458138267075500239120746445790031335466885505815364957634444477540027549495511262208656894731085555563202590687648579969622364683655941882185518122164658980385034626453938331334819863083335144767264819393939251503005024268800726736336853517674606637954003674533391075842009014044151041700119694638336995369680449110053523007212794960317946922837672794996290362177779689186017221833500863461494251412090064504675396014748501550978347696952653853503087617740496849210171020555401839481769093333425213442829961591084191071938348852463138029094632758838676859036680420085350279932996180347948443580533588037165586571310803294944941323982885341149469905696528047954688027003887128512543658821641670623280030185657352514432415223999054844675550103866080673564248155030701108981747175367118468694537048926358303364868921764404975953481075192182954131433020600393256107367958874396979066230476923824768971423261110432620042462564829350572184710886826807593966099810272939793469720227859369151210585037611467737679046644140884935315291777993494469146411753384597212213952891177169122948668438504732292707180594140358537545208543867659387573132158597495967552261423858184683001819860381112030332702176085397883868902523735010131324338695617028466822678178177425445616132010312252212426635652154833330985407844957217653022509737252710133031357421150865973788719383223545640426937406476209457699862236246330242266591037456384741666895553329129306652994382259538565757182194255795412416410567408079131784613990801966371991905718801613722786976262713352578674644818882320436148262944633931319560337098557076388195918665646233618870867682635423134924003606593802962937040304369111260213837706829360698115749909525888415289715252852430399681344420854518801324733715290607999574788162538221189049897011020700018421622217395715623611327678699714922502904842307156029377162501364066100485428116858552644437879936126093180020299530610661796120996666528393030745155221475406874965023234889958834631698110930858821212806939546919316947172931393040372331006969904331726078643117139029213562187658734030603930130237182343578569541513999906898966015045930274443560263480486142810709169983774484393441906743113528658298068415538351696908147590051358869837054200745363717779255317305411103777930080997538339977710346994965543766648489835947822040334129389606877112854505001929295944956368329426866064933697751785151359600518527804864318910584390571475545409970346801981905353873096948465404005728400315466356641170574179502508700627246028862316348492220499222272318242511260597220331370658314467372102122520031272270848063940762062470281199227638881591472877083795894034153312814346403450506941716065773218757271115706542158817167854240126373192564699039005801525887742750098932796594134295517932789068216576116184545548705378322994489404957488686950417215776962419283513544851301230789801145248609779175977237455954024353637792790156269312036964974981890505915426151728060745548449635320655795932688735366935679940745396264669685927493185395875058284057503382679211982791330244701408170592654900084907687946429336627027826025741859186163534355018108387533839260424993611553911402620779715734894318871349229437564535783573151703357087743497507093855628187013647892931563548344824715699515623742848363158559104921958228819488473448468070213762293974758769088170182179755530402971955800479345130884143705261672122914255709196636430221575549518362561942023745867136152413220279856832209880957312249255843005545985353547055762047408773754902375634996333767339554871707142293549612705223567202959706434028717153712694745543330321367503632408580847694811767242644467418887320992345947705980197358702582390787384028110091531199137751024889539859026275584938745434768803839290250570010685360613463487794947829917092022413522981351149439992090723429300358062394736650429739413399277507074578163536180603861592350800331619041663708987524996856516388887298673014054819028956058213501282010610723332910888165643849205093104031122920920594319031817586210090384878009930073539013676202371765111224639345500139748542715039324844524447509666375330049244111962702104158410041379645177791214773061463093691747895482715235991656690617827002593887308772572470523576173747497248714597964246399854007724034465921765020783180634256926913842794250601646037997340889350690049716820962274170282166890873757142731335555177790103288397993648839203171400477181801699628309020623557634114979855997094536289659309866130203095346954526727380430810520121791775950610699000640085445860073078348921468003252359151681060276294535065611682776325793191885937939002406808965232259153478421773872970248007788596312045756276060104228882403376030096540892605917387424294764729788897666397629140484178981495707167442589067296293617468392889774030009329905972253163981708269412199942458280565996591571696430139636496428959717814442490600624585797957377218179238693529860712417446996975390619649046019781015083989002325896344223944066763966257975618394206668971271432685516289812550100845904331200472044618055771896057929208108322704727445771909242456687473635810926226690509189993896930882732162476096134829565531883860207112161791751284589376457390723663682029122097568369445923367377386432394133488799344205340243312878820055794538666762928575462932336745644676848703495491572044037800627862406029944997990591679973725521231622955454841853049924496281643315730164638303380379264165766626277959469789553108876041830590569181222574745810134581142318920941829440893192948291889449152568134204020782812691437362975989918851881364442718451982797628545243577815582003826729541019135390963468403651424821859643054473962461429181525668815492086201896996574782817953747608954728722414237359939485847052599672990646407327172001895148339261200753855051725361044850559077960901709520831149171264696525764228855558237555096978049582252876428726483795338997953723816029546034405002701280849146813128018722789768412711774067816927217995054492371650173811320301224994599318421240855121633363152778764825338133012766114044181569784290928147393702988581131634500324225574691309636468161992946737443092040167874359423228024106347562505085915440680782413704127968997847195325265493059298743697366755783132798360233066001459618450354089094511977884844321542785979545854537430255165492890129996774476328672477484407693045981001840366558203584654590793686865893108129108522978685587184251415998348497778876249636387296455722022928471967834040771006507965659851458542918082529987876919588535136456762043737290422086260935123168677928683560482600753169912489394795975848152615152396108611458569454669903518382683669689427270346901865547599627643959430946958863965476585778924964887076224129415745424541676175645739848373325903495554453003168639565165169576209827954100001471080131099633357593323186657084960878572177714688833265615052275030799275182053377864066588124440324066029541271119009817288399331743557714271558307966391779777218500836835189635531563563132684952537784683624061788501259197524348238460935360258068279283319167012588015392190552101177473769601430251800029952848655844232769305163266283078798231493053050673346002448396079084857093292835949935248586575337361388500667461206215794532113445077802447239160976532920101795126586511643735536510505992100463215750722109111927097314775462386052440975775723787565965906147404332816194189636755217796988113715282773669352604988773565228997639654609385026779871678719057713187030674961272976488687082327440506037529440094490897112310866908882243289441261477975651267930383866468821275134808080774644451522465440168335345149065406511304842324005814513810997310011807004123651435021780638368102015375880305278134005103376874502531675663365577067597744190259161613320222251967770084864385246939680365346520031952155148807667799486181590704673032995925809667105233928669120676958778970180721362539246173004538869783788967243019624513231405865782782552242940953403459313575794786076576220297319842727639431495924948969926471665777399156866187446379582496290776289450406758955300969808218854149118187834334597359869093363531581113548422664614253449390866305201150690835523901064477771457854231896964374816345141384568897440458471854956407432801375778745822161529913063188774180075021263391288680083082407162757540975505214329268436958447259766473093055469824121224261074420751818192569498032936412544750437900917053286873209110849494986191827210165921567098891054671476736296736277102167885205249621842069037206256576526903950146805225521318510458138136756826180614062686573108288342525381210585506570518980052510837817794056892764375807076607527801605467773666609554267421818036445413238298004428107499365892305128939605745808289045627107426144296503584249617575178461249746908233184686611823593963077423392124549522556472113433405602954427228437669382948147861196387564098576008981434005233424262962359851152146206308315229607888253869282440817960712254807811686408678943653607099490329471416991035078423860503516899170067528703511766055471125705948282641396755984475102051815051392254642369933523703350884775671155171164040603856501252785098533587811538992921158622947112411811235828423527231417526653091143566834827041647342489202117754623657569755035934772804648902533818294114773744574174966633049847073803634101645583279007430021848515839082239878932180866748385500719775690948165629824571194450225632601869403133047915292322724767136752336247912488591314387799158530588730294467505396076623629725214995501869700316051695418566233909450001816887815950271369952790090274976995667057116524733058837425446359382387318752616154610478194744006775160251506574374743245983036310835289635647088957727649076654277374768105325061504235518776752896539630827305052411202610774431662846382915624584159229632285749279692135268358200185072197241049037833527787279166812190267710891475011566223303421841869463396326344458868202872285291187864710494125692889268384973233775732087944613668662141165570550809353761877012288849421527736473537825674691752945286233921770929282795683471690377236149719391398475984454021402487846960940888411763865668270357245829219808009340424527161608572443814634518834249269814274162553850830507420773221041047512718544338697878236874627783711390736643888961709356276630730200967699472795484276716064145292645158956268893260404191411807152839075061649300848276565785595372794108648932123470244922217121548279644969777846867863297289555901589397788474984986087657384228697655853309434078741093479251238178651805566275112870034184083704545914810648961137194137172448713641361756784118164007113463990770258773952310116103754069507153259816515665959182305778287084031505584359047624745383499199625056877538904145509269600528925345017611546309992738298965490401048457811194056811630658500037320801928683170547790038881971693135925327103226462466084560570740432710004662009038324953329956568779184765444160794956800608618251438155785754159344730654704286219404780148538991517388121350797985886002354367660569221192507929247963571131386802195253685985521328480670971019579153492777149317452693946792068254099915663621239203483934978935645528600958126392787981308308330405245256395243513226672251964229972902981785982890425087370149768253623385634376143902183115289474987874346112082448937394280682885572706028974030045061018490228563616790136714616852012517175436997195286864573218390315644056204901490439926817740920205233679505405763120940438499682308142585130579107252477418914001378666172763042668805157491484881933897225601569016797648456754636353584004340196711930743460884268124678889725816147071325725653626160237459521841168142236128254059860141337540778669558402776607973516365568147589957838593616550921398580742200933478195071095860191954387092865667862897335818738798462581796032843874412993444830775296160116527296586496286979842750324949213693281200538388948339601701823806528169418219872111605818298530871763248968969362453037040317480131741627033125741305490089286827593698192075378612630310525166759846100379154538096376695170361333872733131955726519398551047041144174327064551452213772972890666066411368456990603660431453599894309912961943992975452870436856937849373205286600127092096326755579958506105596761765331372554443577822388769165873868336916542634576109594281780007292290285447554696915106123490488816176073697135390284411359750769554237227182253999440966997224333433363271196892026285542548599695632205791996691184715412940787444103109506855539332001965492548735671315068836173520689440237228001438872587471699445424830255734489990665021044289526831412235909158390586098396643587998218956038122154119776678202119006119760081823903360238234207243429853718269369300414471858272353848126536112826190305695145226898470742535286438888006909322376815843705306065086602473504421632381944611321369082185375011817972897801622253981110415737702479850593956269948668560026561623299171494166388485897267241283255416870249922780064635315892194084311049497967101442026930412820095935885950837459655981433430683050738104245421036438925808583497777666577854514044524176466851765207962801871249681182106697031536390503859191064021997737485872439947425271848514704767628218852315104975992396286966263655939240934898194315241062938415782310458442276720102914721099522892028966617247730592104108173493303273986931918375461629628957841734442858342256824843606591223198095346276656353183852277991333384665796236802764702651862435139015695281798638581220251295035699082373382378927462604501838374033448856358509801551185260222498244281273173065746798089103146460115015160557252501494747036548216075491452035819008225097587711486990716453686606008975523745830170662526638316425928020080381027055192484314260557285607579110908768092135116661555724957296345783934389639319151148530750268954793603204949907560712363169512319755916339622618493180434357023389846426554023076550909225293349552415620226676121916338492332961526921007555646228083908689345110867915828260604916599306690483093941470243859522424155932726980000689217354627929189669172089060010344993785844057107819828246951357110660961320336600402935114109613701761651138154436579310567852499801922628617787824833833483168930259223135853105126073187490901953657660951738181694208721333628250993956887123613370343455236285394775101809633536070986350727790241239851374532226024625725947322517550419023430615238473988514629861065232554707185246717857886578611456275209137852767718986956169388112114978002879959929251924534650294662779204292176908207795414523904896408210708081940368766755807021910938719996205712632780245484127734022351597259103377006344245135584030887725832712509029417541770174816356179389921437062078030909842718072773884090397815781688101038211158609878459389176692341248436420306106255970583320024181229815477733310431669018234669912340871130384616275642964581711887474023219783826034086519364788101461895383151786385690718252001342826041905072119974621700097144156375354882153036442074433411051179739718366434902869034797494185713465159863459082284939414992676125843169086086546677841500323153121048170024801484775094106592958636956948071537974591217315219961365773536137510640288600299635258914393837899226592618041211905898437749321266599014906999812424597226708878439605976382349254541121173931552737004137079702625428562305960322747051691756962256644678652339187530490525776485804660812052761674714034218459144543855308744960464942704907998383236102430413189071495353472578067506196978958872819290380431030666815580704760643996483383971962841620551315722562909525177816525494555138264608897155519453548842300820175874557814624225228179014038301723260203380922770120082518772360349143051238629402712454168659641467084109527377472232876507370796353687913989144694059611883349317693445518556224265579108706620045905558135130610432267087015977172466284882838604640102694034856662899686287991106084313534732373796828922655108554198864240990788570122812170097907493264108904631203108600551586877695696251460702849544464670116413600244405295680244975597580062538824510709315792241216154087223777071279888342161589595163109776488073720002012125506370152860218344621873218560853049611454291661889585772463394146766875076216272692568804390314263606712108003275180875219702876183717598162186972132575289145789333899808202236404944428949596816567981531789343336735147241417383397455708901776312110670214819419268436138684342735045304291697172134374921712574544868718727320684938745645710886320610296750879301060967075740005288454632925165233418332589349317342835381518732800679420161313020683446856775198361016962665448031741996450057559825879498313416488466755972676669273584366435723067623313872359029572681798637809517911138710561964108735247470458365164217181162065482216972863475434627748667590976506418389150279576050909864709206330402391813765140790370402649620716884662356353172733993048691065789266329532056336932537904399169578254877860695282114853334411145303301354429948932155944760440245136324879054231289805446178295536934602733276604681784148688997352743100379875576074933912065585458829845176236157985844216693222502966669460198332131950572143566024547424078177385260785595732437348404292585820182877646010019565174508274059476464505346328594841430806089338438830800906201726747914976360343662262141352591436604941033518976084871471955515322309941316923248433952901982401416953670253260968654191454145126243903472232737555446771187973930922241241664129960897913654198625858216385754250307106319062146294010449030715670169425044433353372174865734833649161526625278676717898035744413984326032726116800312011802174067508459315900327331136658379969272243813693289135545922220118176415251827770003607121088001703261872016021699967117557529526915424674341551441419978755556406957806534006342320155598338139632864871188477904166507584695420359134556318404898454221871656732751356418388083995719460950714401652645825214159617790744519374453307031044412354803456926503634945691876655327551590035478922653165682864056212759630878348928962227322311011654103324442978198060521311013962155830337193613528925380733439595282364330894089839856614571994764268091433273968701366189016817559723481768319197613516124817285673237129256663578644167239145432878838665965842375126783801187676930797092990348393653421294668786355243779643678972442794936372960484912146487058597674421931095594444204704847836720169354216124962852702221016445442439510118891939972144796119334218547478124195537474708574348069688407165481289169516840359413345704745845134926492730202763447068205377043284638434796800150698042295795659232774440434868956635492222207488500900210846103536145904278084620233817903337263475558258484253641467392840625330828012584771849924046523787562451192922110266531205513344020874269825435872105753475827062282087468347244953482108878181089780755414854944479106774920839536687186280566068278082487158212428807631206665604483525276097408840877883876514609014252933317286008343896363886315509147668290695765239752822961012382266207194590022516658798786747231260012237974464497965855760395283609454647782338995847165029013499934435350744421996901590328108980080282884405049765791964555050055988713203763929180477474533305595045505934441028953505476959833831050080580528802237628356299633961293057868224812595124272875133160498256310934612971442920947127192098858438140689708663507591128846092535530618201578336703877611497897844098979414069649970846277352461056417863695058989487930518318747556412395286694215076031499254372111389108227062831835313418029494942934081751720299747853814948006233490161666634575804798548047474708066072238012771498461453742587813686766074091620070390392291423073345679807985345760120729842512989867435660810306766914973941652283867305018663094385427271569646554069040598187092608372229900354575636484775890361257933410050901566704023293640981925451669183879028951278131862420241463159276389611666859628855155839157061144596568117735083685619879788941267737600073296326669677951976365164921139995283305140792875288325007125985539960153743080781708769320016162392920556736216391309019018572644054950050991427064095824623464959197748962862477980171694111394919472988761311441325899052260265085772919354103650665181373489902910470346246039486151721909917579150300653841794827116600903596025834311645072159922565843967401868910046171033689981736937501410516632508739047486204945783539284106905550386820070466898302829519387304232496214588589296600588430763591398781578870314955433226542309438990858514941639833804578243029778702353580554722504702746850342326847210076297788532224348662506798532161218965816441830565938015218629136228802069594217104153013317321458543888854427471563310552519896920252361637567797012823618013125386023205818636771482100192988480690804501198914303956819756117421035509278432227228351434254021964090161092315821789168420630837540260420665665889381554018796705942496550969669404410257270891339255380725177793609873575453368069468189730140895099671769742294295954434747553960608276549597050494159870553027455590614095220181629210461475203160949174008520298011873006788319292848357318723169811742683809588104734384242634143998034175700315716493693076139354285904028252874956473508678534460932599531269007954763761070650731022385454722026904380006521947054747619395735241259279077954334292219397540577360677260985936990596325667041501671624954170574035587416004728402597861555082782169586308346275395496617647737372014243308745264574385326617572188417542457005259533363141404135209786886824072859461834975453307903144771315997913265749814607273051371591851483433063248800584905119690926796521659329087107517065515164143150025649223349418320694647751291859438694298655315588178728135237823812767369782345823036072181998706547879715178882697822329891308372533360443683931023531252982553237811379179222232889753189939506150900961655774542902311886011351291580504866077177858738931137310991686948585220407288943034681692982081027538767404535120490987559262543374792831877764674142411282270449137555642842291596843445540788344658514151124663645403448652746557669027483366407033230896433177387942098467694411421452520832278460973053655033377526714421235328608860834200780145624417824045709048481318626830003945121389682131597825280861285170400652960934045700288230107455598274192338712156303104452658621865986127400214910158748797269252140518450051613579375827129263885413329473941211631048916754962302492372792105956031253924638424147274892620811353911071092204736382047561836760136303225131394952734702237032840653824708825660498028665432918983818285000118221402437471093310953239220939603678766446118084282467840154192657441105961016686551722578239868066180709412740913630210335338115498736263768456872860414970259334193088296128137727272021625002966643347921650518966165050690992387918939446663007198369895535174477768996876380061075932892727443149439718567333604890556318940383909849784313469099908883199449582109599803246094758767208756996107973912831201067620029200813956059759306649699415496588266760925578820926143623104123783604415200222515933251970535743879882887765198203191111661403997233121358517312811168103011055573645576207058922971771775033310967573812880934364764331540824994360672830339859861902197951388798561262387015428787464693722285232601336746442653866230091354471538926986981087882066812593809748573643570222226954065287891774176154374211242830321665706793551095176870115208180784407670633715981968185959889976494882377661876499028946503633624892745531617867612741182082392591060697466404015477742988994584287161222774390744679222125737994729618596930738352259251150033279501816225742514240409558880887232893747199558163823981353761765242464021562909701161665762223591277043415390631864349128541106754927949914120388547951234247692791051268968049784222307407222812839893044066232676202310694436437840784614461706678678354647675995425423975103751093883528566586961941408580248246752846651677790095281931848470363364151546052874418376069054974449669449010511133527431675802942586058131299103496769966164689754250094509363094545291460531543619683629288044651294015701776511166828665767938277586084519067785306703023126099455881726264178004499842258615218019939407224172906153563738038814350748063098553972835167520912451116172952371574031631338181727372157789050205505042200336603773937302769746706945203803517165404715526408243129086854291620771262308054762681318258608489096878522996691048832306569027116301435939813059641815744916363402785818004326801087358437049159107236697300784604068036858500964567306942840763193096204600503323774936248545145481729865787401792854894873075411964190177108827378946737624637549181457227094861711594365146465950303405218818655890693964905975294561787726122010599118519056679895375449710298241748067552200883198862788832560091662870008528991370570845672404805245046892603842558905768425710462848805021537490096972187603404694764602261805858384306419938026956280848652119849982539191565790479556902635197228585266224092073907668892024246652179065872465693428543597583281788184167725717293789310870650893277641864736874738056383438695457359543003644312808296743781777945859855360019919994437168029885217244529713223392720302304391948164358091728784827461839526719733887406853631120514873987981870098743836582808101111265254179585941785590115847259373293855788493713529822727496754432704094558619318788647578596572350544463411348378080731716767690005717053307948263625510774586277739601292108786181786823150372062966763916360533641758434946159186003381034349425037278761622537309343264492118985229396579195754783332619872009018751273453213759267038533073499160678609598658689402079113329679214655621130158224056197003915208154905269592241487180526152503437483429131267959797453896737005246998637669649696156189479758199977806006528232025750956751482382997835496898973828981255402591143602622491756286183186806867613492753003159745868446524989774703778385370962930008202314663613280830092761740543088067794391829725168265946156521847580540394461272259632791247295034630365505362260146156912282425840313141482117266703799554729808077877023162065451655406865659357442106474647345757188459843492724587866414634388874061932007383279424051131739845240585101814219945194955174868421742391860094546229266459888499480680635306596503948537541076519911795855543563682236812931245266344870532276789744739706932650571046806192286683061424908826799848159181254721750213865828978434782538668116357079483978758104650429031172222683062138211149164561284199064948700280307798694404535568495114722827855612222113709781070953375318977561999038812643564751721569247592961531569970915846279696501214151253604129986022776692083491939775997341397541840574211522759154142820436307499905526272042551701392146506554448337094964296651270898948735926988244921620350332422949622158350725723774293181035771520679516128952269225161089729396656281555778239741576124040585561515789573987709403998811376853554093398167540604208354593487647997333846790702616812996466749178103004652275547429293792493071714476096545296108942909964287853584858716080539980020818328176355516118221834624853194796430146822515879468893997464512495809508181508745425813828857851808049556233442265101026220208889355024038042081475108279393831139169691462397381426404746646550545933152389752953079081631724949937404988094429901667128413634307695709332266045445366852522681577376368766934214004658288220253524250707171218006460166726732448965592119517585765814691881887391054412526576007988946632416572798324037466662653836106372614083208512079865199288679174683818647520263949618774794230652387964275080743380221426297706326598771827190739128412584985846540496489756298813036240698674069736936845525001683930964723360827660917188227742828629988455691489262135587021505988589520026398307593416621964946943634412473004332626546894942205800069283076888027839398490118111686622218167543698433564786586142083828778649050718290290967995364991314914837753454166070748490739660679353456429326594654458081521739647233862703480772481923741440486756415746357571709080031907608491064277907045786214837339933342448417174392568105941043601808194627095192569612280788172824560708576537779461525878714102372017349124672178938921097506813041762266773397976845237008033050585046404788534471003663159865425510807527998455354885471141537919263567452083973728541293198160041665674342614138817807686632954417718584035324693552094732198386279753063477492541311576852804040688755945824514250918453579354534515375450078291795325206396832463782968278254457966897058323139523746311892334781543264706861288689927127617275986799870482912021851827218272750453216961702636615717432764457745517452114256556310464705835487550458875245234564116300125544870624835943627326957367854928393939634945813622214260333388197097643627909046240821134488589723540496300456290708616815054474176227570906645135097777440099570527257812041142054798232943629117297704687895109527951091141978680850117338177088571357548171847135836198309372100058841115467493869355679375974767441769960537757225141874783393741427409556616395673081273839312621414207246567475798570168651894779859893754405784165712316337175401338216592953169264678413437521893761792351834945597729303742171173945392377480845900254773946816815883390909620009144587032314057942507027514061667535247592474507150838798379738055202735599816965749317951869226243013959786181275266456000601232878952767580946340616012495328753839658438086111741293367872627714374440894348649458424802019179210414307673422888056434259900184316502550991478674250247550393123958124171316112888937850943729990666866107136702404613656475708267842328581267756839748401862982092399592155316351568220199244676455889939296750407516245731673730449723660730334436482373336956407108944821622798415418282508368995035033138748670637299311369285753265048075667680539092875626338061974099015697002784835121184410952630920841271434765404489492099278067336076121532635839774306251006480869742737911119663952560254666442752026511288406335448583698428220440687531449643526758206850636443099433412357648751216827727415907414458228082337276156812839450757648105164693200857938352342667052448289979528600477588615850160259676639880653934216823906900988001652506867311768884185935785481406340732871015976368897873638816119472981778984125149970776186717123666368943712207844971623892274559348588528517543914419584374668555276672513448965499889073721206381493174117280375954649140652829896987258522378016106810581047032937035581597117983861640294478569425775263389551672238047069823505086333230785811745338987105336593411715245433938806935962500572482139436102968205575900099543720795521637152693039549105902480206861915633473594364556237748219340274572553311920737396022093343127247214037114791593312016764680976791829756399400462604069407645703001159196728051953204007834200719294663765706430498802214181778042132956178546939693769275787428204165652584117339060184066376629345021643884497392136319960466718054452709028854339949050142138390244562926372907442812242045538684146869679062063471433981807855268636412403238563530925035569087903189851158811426394485771308835801918350015296916038906880677106528988611726177329031299428177753568232880930005493059940009925356710869386712398554638053559034559922492860980267580219114509285612779037010068099795886980784306240249566755117802133705436477714851601757750302078703880579135073475554812824344398858820979209994845488565821080132660301775445468661906263685354768201249840258409509687736027671980074292535590930462555390858888212403834681187018208354649001986360778142890787812948361944434514921703825377418914980911659544304562161316924628599784449527436277847343674992500945550876045103548922819110773207282077582697062034965180301510901128737984854455255294365025769155343359007315841091611559399858723591009093853653376790554541644753394610538135937038041404431435365802790676160236977441325758600215889293190016753714246912409211586509622648500242416056521745133478052924621434209830922063842342166419296772099727020282872601693508279541389772766825045939313489871307054362353975216546349187608831939086572084664642224080527825733254358799908977884965135802200411281052924662377617606873136781424829913472615768272748794965835376591530391789672451506904530198119620431769634190231818875853720519148575579088305503787781089219646540112460762973069058738298031256472722134459418294785017075178083092892847105036926716910429012800670032026568763390192334088002397952909605062953459874433150860323852160996132480677459295370717678909423564615329860986966836186036908233301531976842340895550212366612033617904167150898778953149458814634296246965659322820601940099212658430603582441750648123915502214016065767728324028608117652765326082493794818019984919388269114589306197534566158955616718112678894110693191505874540113159351929669070672538404191313109474207565823636957154846838603116695832271357001963544553225988305308848371511067430566192493445284213046171893993513526356569298418207141495934841814368475759962302476900382117317359839123515136402944378167410525048971729819366560723493689543583061842138587054254679736136518485740099651390686358123445856772541750965173262001736466832035186147291524203857531985931072038257464185286572993742463704873738230792959904344532351145660955862303600770074329720408026047283243828283043518111037137739897044975204821473113737051079763479543779261474610773164551325653181043922373405490858144613910685793793106558618509282297267314476932413209351592333538304775402926315014694934785696913995262185813040773968387307301871493755279409483845572954604936810482080490898144501386256644709655449074741589752831872660848859709831100740604656686016806477616689355013862933706818931776915908010878259682651430938383466820414585557409335313428735041116138182867171384584663124186108782494859884030052340308529125626111797975722865064353009847200413181891126103078276052711853003434633706972833967193659298324975007159452672500442036742425612188073256542261427532935216006419257414398610409150814831511655837104027438346927219303836870218269897024833607130842638330751308976416898558110410279134631341601175214123523482931594856905041590381075259175460439401006706911896471898874836874188510273895564747870469056434534377687457176527102668789597605890300338887409299590153691600680401829819712725290339290244141452973551632638072197938831293683814041006477513132231970751173388039538134210111648251020874239779015278701339125111312248920708648650343207852464934219606187706940831548224478544783802586588353022973471644659278252972548541315755661201452119877996888193680814106767302183038038909008723327874385668513800206991281870667570799198474185683536421999635716131206187938730967907652029876385442305503909398540081594742624544004072497101502749890769959945988529924927043855184035943284552850813574610835470527277812857972034156649481175323335557528367087891442231298478353322424569654261421516919491443042383688160499212174496024500505142735398753851594275269273976662886249779552858635937629983438675528822723811679874217612064101995730909008842830779082584733120034960611790538617877364414701012845635512688351523172685865071438681989254283300796541077660484901650609655009574724092885980170739141891443623622080526115431932286143772549176816865749184795768755103443669418320857048216797082307164006771660458802782543912554859425945549399953759357991879644594267549733957876909969050675215608795707167885123970932515427440063059248432930631405915289957659388129725446989834292810774223086450049437021826147583656255539482487326933808819474490982798331985238988328266726575592866539374066999986967996699240031252663460122671505500230161648089465761334362782106137597362284140526588280071860764669385872842230655938934725102273350857483935479147418109673843126706031263759078658371493329117016223710120427805831242998354452130546705927179184733827020897860695892658905327065267188116174624346502061852174790443777614980584440118181577046888318167397543997163639457045100183970318374369218832116374916560668077128037618935276893127095438016694362709152856908104840979583194025864760436408611937304829856974745972646483479026090628308764846574446562454414144178127423911146310627921989966489117466821076476163020702282374218830976837112826231477343352634186527455549431495291308657207961757444547245717224279860843124002639021101311390691491964071552630627085841615660886452098741348085976622437701598906271652574469491871984021717174389861208818604040570761704399701624939013049741078180468839836391869768393587810044773238898059915190338405465975836286640674618380062054676187338896411345237197296341698942227728543323123474639535053699996943014102197396430037491067009557677846513337489256521533244626799455754506474749419250517370792050977099585385457510027840188056811105469667598538778701029299996273162229086478689345557942345384570581730654648402624812727294132598715402305480660233849047990247721979920811081793782386812539061203098910014766506373904988428190253603159609221445221151902919081463912377917907450677892375802298273895411861747570976680716468753242530064316305518570031120105909288345563310745928557444537018638089169719736591682384405835219707995308472509339906682103020138958660766039120907236703864111376129286995996872715540746346505774447437737225260375859287068320537432695971610515689040404659500042221958189237635045781305077360836032076529673141587849637788860830031586936235180900283320661938639394655462294780372266839929159362910514560030306280775067910572340907502957705795232624322823418322621383320257656709111314676498667289993963209804375006803105482564987321826938305456194968271419357776309686456086459665362658946698956704788843075659768796860834663881729413180106281665738218557288319219790113600185692566359526139483026440078670798813713443529880142724389577867577980276078087538488337325456048613604303303056706817839935488027969781123270605682897653457253582665030609586399240603894704908761303357690924923272166959652863815363059267130397196129021971438110948395300819295223053664079439231780880065643742843946006509972215472587121738760214527685798966455412057479891446250561697866788839205437469909153211107000603615907784629161562949807918181924340649032218880305310814596561344013994540819494472744930206452495039555003802927803094973437678098972861480937041430173596241978794018237132791342296856141982250412902272839146392257396245806408818706188580963330276791385675456727937405629525029205076600432924493642757589874431080983795237699968022208981352019595868354775109967004462712614753918626960848459505917055439837737795274775034260075094733374779027923757197984374955922476317032033566398858846127080720671375246733805099046961026110297258961870286799049888582968434129456704571771066714154850644071672600748481211619172945164927311865445872894196362228190144830393007146595742090642096560923726670611842511192118286509435897198974946357367001474600398270282435671772313643330577637960115395654466054850254132197010824366681747720360651263964112634324780167597750396589023672934274931347507574857839180367452909074911898767784459155826348555450444305614191212395240017264780476624976684837452002250945683361554589757825234355800097954199459500272852370092473469674905683342848436968606404699781879297340529626830113534106441641082398953671087364491943029202560809961151596970748515810377008497331308230609646122456779908979797523057535079400417488882177246392174657338636247115638124270870319167468796567842534658689244549259824395901698590950025057779773422450311166685392296471380910647122049765177322516208542049438172384078746603769722981634913948283748205710589076116085049288438335315228299670678230068757680625246059577924764756926822855423591056848168556504628946017755432196821170788308773013583140765605188659481751643085840661437172237668266405650844556370408382607832612557187340486378880933082947342883892684435067901918605320680633621907788944995331904444500732077460854979396580909547465185151673904192969298394630778386573624135927443405875964864114242384845604542201273432047259052361156814459333604537223731658162767279964453497142518410975351498558269332971183955918460511747362165624590344518313510099514094463655582159283445191997357120154170843528324834554051471253708266006581675236527538502399911662554314950633426672793044167505611723685589012533063250291397367584052115572083514526268479612130432813446034552817150839241004195506222578486085483638582654817470798766126479538374476460183438476068896021040359911780986050780119161208234315263335977131571524934269852997936696531207840116396504056991788085340984486860422098652835841364437451520716898277319160788560124875805923149642690749253763141899457221352829181928058245377595352770308459696985564380418786849742498669700170375671913510136399578282431244136926708964791850573211146311148713169084440844758323184387252786642660292446933801872296160280832524458232547840069721742296931501461381189229070530994813285752860438647350871016191009200165363689391503799565651598754410970058758790442777076737093860967818821995985401508295921430019066222532890910462092717933363017474445918961019012224150710111533548388251348352829930432723052913581736258744623146204126533461440738662372415674738152191198843598579087864713388559555507980469960568612786951122945517246444477213246169848506794818561108441945720002245654456035881092173979780008183173902501073869497718116820114890673730284592375331817285220003303293722306849034641369314654222395176368591533630223063437062064498619294053245630061088480760622588991712653459493881924872249529132294893457149534696842537143334761469991275242897048679658278568841198937765676978375452382925460640430186103809310785365537885013562195996933463697280430461892642175869145355983438208793394055582209816949438141775370256486362921306438899648589372867863338609569736841493119557841166200690302419729184773032636931168309288075103339486066313814810673200758526722120985300218137009764177002992460700001330838335017431214333124601709085152388947243474644217462355513828918062545808819838325906994434945715445667158020272925691488772378901662812961943961736780406572113745769664477487037987585214280823348296108353028304016028603588898045110811253788422408047517136205704032076342784555995776446608218223540381387995288842371727235834894572752098447808685306780286090144370878506212571943296258273166594625356490133690732804491837580462866865610706417993954385219356868435881633674398540453654582386487036490165393246191249158326347770189466374822054916055851649082432974805664070828452446751927965419627212745267437517348293482103653040080090323527917898024884331211035579120125305163030099077305324220981434289294536466147575415021894174830537894016516411926851707567043025099826857887309168723634105906165456098220935254414602208849253324652931346029749341133954498205896027193357460709960257674966538518796414185972645263358944113079709458427604185969727834168805292871686675494556333180027772796242254892784630511895220545154742305599790934591158197300740816777166345630619915152623158093675126107344884029853589355027314656630441640104704564165019519500834096141184097815300135434551885789101530267395532706936545992805089758902453424050264446551885218967311883459393419639179941849575193770799338605468762666085177140784674780041882180814590775559888451087938591020083136043687051851850125555643182276612634486393423740940927977389716229704028396397392202336085673184460542482478078717349662770360953470494901342588805540932005758483902020679353204021216381039618072828338368533215116278783366059564297757825656467255383448134274966750647900089959333506157549351812952140994499165549619526895418115873749484803872200154886568502119163271793999619949657205298997578265554743751283597169910350327001510245961742847785012322573016036493396170759541475026444735560510881821729833320627510956617710525869413730935250299847136954435518749184343024200503811329824655151322078460085552705492514639273432271937107374136176622848641961809555824377573672757277813851766658949778321729527070768986625534600740251291001201290259488492063975063137811354379035749967743529541790005548690070962061706433692651186056005701818634530069956679297302528926384990612322165236522192309214237966476924513640109239198860341192764187595164569330636169236275192530722661170440212293151615909619731517769226250551040750712572413421858340456002065118705686523050122105259898047672105555752506079751118337851606435971565888113052391854925587237878936921501414891520709533790167690754495304588392274682783588833145810579555181148035677665785875851207282836753341425368348428977346480528760622286733523537711179451568197667628007152510818716924322436613430295599117392040844537928846633886820295121851882099905656354716470606968735653790833971608807354664633071518286106364787868961066278249657196116875781979392789837511502863220170514983313982479935662871795909022005956803991161381847355987092792760873478111568413605187625165303708244996086932119976674339831948280329349741128011484160292356565888462342562339847957427070241682555911796907777573474887823840870678638476181589676680369563356184574708028223580534295877063775070279897775888236330437126473116928407096233022344266578476084316963295350014477797772398556804214620389464567854837604697639637509295186976174300154329473039281376198104141731147344153315335879638813045054081241584319982258732348776754856029129403673899686865368662669824373797877191233949734412223656076424135371141082557427312264081311089560867150643858091616294125705291321890513178281890049401525910668829753045285606559467664421471763850301088490971199153937157780688406526182825260007440021498783860797290912249680465600832149955517771882196320161371500131617555017949266251486972346976532574366654233251539481562949729124124525940229149165670175763078546070790547121244376032961791200109077286631821425643101671542001703132935161361489669026862704690176993981943776269444014582458064814801017700641978242673479743589477749248474841830224128796324138358648228968086198015746487587000514329342363318631708443039624553398252202171479409762457488593112193301566106233428303297823676942550947136660780658911960150516368434932271642163207015755421747692980078886116978256148449978164421890487551235916011263805084813845380915652444920815051546847976190132334271143946322752697886571618423082859803002854246875870451072395191376966792822093956837238454955361243949811222806936153835494385551100576407233667554941886700477861093720559810470463910947101950189849176159901075758814681693325821062116205753315335512588906593669418574232365084475426879032586667246697843038437890575443785927884190256923340277076776713571200210982627343177337361104459820334047777492504353053233695265646590409048013385493755155163070367797793334697130225251759155618669178475188619033340895956665506843255235608970167542983891266701128290176949070903457469996032723176999475147052125400992698218110252342987644727770746818321213033043046265916658715057410663484750808348245180676907613208378040327825495024015054326886004304531624093849741066836215384387707912146253417904429495304516022849407597460814915332939013759915266911830019945902665877122084442283005144985431124675173409105838155503518548117473857635296065988629348374055872834827572316672861907538665722772178941666862978478758778795996397784931079511647431786546835536844375082451314162347958795305006107895061734293964251488582503856939573768405325613329943938560044439689769076871009775783978152932790542288037306858690431858152088079214391837825049731931696406740973322689570415303449000860984130560739341778486507938019585857917718081702551955136102056377011464929531637193711328690434641093017642838492466148236677785538138024946046235389481835774957602007985618087529846706469564121652308647682639787888841974097961631829492872972895054550047606949564512561461742982291607843901528811080663284803509291296685240679538349631891314613904748024325495713762029103596041334886764922207764099956488978422234393994812979412839239358681824914131463752039188909910145752758130462241748677631922607289338221768194722932413789582259621589606294605209493596786875727707428470573771760916515278294913769847769432793892921561513056418073825209062777489809216912901721404248081980303631763981151700165800182493259387316370938222358737484611724991143486244447926986660820128746977026218445548800787480273756832772306138981590168705179829689131596405926070613976336242036308140794316450537849447550885078528095482849029814126034031107658685313970021205013506035026591582990436546206623160918124493181447473098695970389764108100974345424894923130235143738166617215453634071999339076454769133138240261436393741660490721283270225016599561346841449024195792358654488422661282046270451532795606168205334888494905531119331726968874100561502124808630519906905004910491724926470806943606727394344027739994567572765997952342361487921232115934029997599292319879647652499239504212238903007468002593721824501570852246915086616450703675908526484019225779393333578284213027440282801676187452211546115726149388490285833766162950671524464778832215125603587549550807731151323883311567606447751427557454327324561025633635376164393579266612845250596860418207848813694618914942316671156246500358830572922498653887496371988629134569642711010453528639274464544961148091067609776649458702418579684684310188135085508717399981869134658463596424170397067865127263629341355980702124100476201281247744471284227690614706205880765534379828285025055649268402282900643409335567758147213762310254132539459670901134406672869218422677325568101817271368105091568948476911295932904692703869654911513059809694938229220005068014321781748821818785799374037075530188048142484733603475377346091069315994300349090899999569937028838326204822469371631857836411855358708733045853157072755299822733327625520126967043670754438256264647430865609028299200404786965969346188478343885168396736378148210908380927420473452954261573245441791853541419016938828382913054985765899317990970948974374180326251208509843366928934394773731512109890824249205329577233331870997423747825713097858884512899473235970821455234512733545968217763624129396448723834044506237024780076276557205065467120519101236594277851775093405658986529949317004178483691559328503133863937689840399262822009255247542672759178392092044985470124438120423329034227390345332920359887557130599613964723771039715309306351966123073471929857344168516528756526214014111827027395670500895806715029256113084305684948392306684165064304827732047831934827360076768503649987076386391347254102625069469568201309887497309190355169760868979285253635570811986719349965605663679908517796458949251795902050022477925294095857339926398861571920518565113614758802326192451067531747115116564993606516572020780677539002966996236459352560720920859679873022618353061218783467043397841035178437021735720544473450624560961382259215193932925576650905082778394349059809844450430089781534845263915201935830360663332829985771626501763240003318119686162507175578558829845961118435938560274565143189346593360669655779804349685744900801360041216634181298564836747286430406989416930280375783652414699212417717343508426298132297638013897446421826724112271155178185763306752965396295526714797960573245179536968833802424558787088390084597384649908413834792145123412128004287602686163645618906851194618739103411718596972664707399130054426657242359132736926684857843459591326275936924618050979086311855666145367919712265568698709157600920147505616895348670467109263479665448962667256356434236618091707157715999517688487578698455243857799443126787985691095620678289303906054647202340109617261269646368096195491758334206652277473585949576229398985096283000738161894708188729103424054700854161175191270261145480481110347385357478194819935102183570412242635101113687495708389226252620207537929488700685817177345979118071532642136956613213393597771306528332942859946817705470479624089794103750005774176000657335278570255892247540783010636584895224087762689354481774870689814486054553865854661714617435027452869568301640871716697874282452657879809783928986101329239168373091979540739355240271988802663681393124606405005573514873971460911277096860565715664941407969978955289155750922540503899680868893328372448557009742211241916538134577438886815058212560831592808504214513604874999834529775338578346444180454646436268361113993236089574615131638599704342319209396472898160528802391260875384579381770283027559984392542698068309589429261328507356190677773458359509770438193055882894409605358404683666729770833922994942626416790442767138204029037058416989909505121716223834022079368687229786103644013313698026341195409753716999878739574561514382710088621728189859253817013950928962679583106897502863831191260715680665701178922458366913804306200068093251117963908388923055492675253015198729412929212997268620987071940356242537647269633333736129352218432342279232571574891768509924763037017750853359844784131067732530823295767579414919185938580665281741383709627321226496114402361693714679620412773530803755839995398944941277202656996125780735886580032506221376643866845482004706999560486597663145541807091902200235120991650408414505870452642453211539566133879623026063229700855170986367668797255978292166408858950049782566312257257240523270088054873894756356137814205070040302063745903494578641802027097870994658700909110435450297804775718558011373840073318921549964282586080574974043250416907685997405130315290419970216723889245086761883733065288922328544590321680427316540435793260100815899052757098044985548905412509297607551665031343332191835765904975990593126542016762899550332518812735344679501221709638144257454572281319868165261541114153330453856638431267020828855257219981470994013389690731212731850499910450888197945355272413278911219564091713507849868409345042447694182892659474997882529485889437705179713664799916365137362357998349294397396341969011280385668016551026300952110954856077234726811593476468548426818654798916634213047620609524808567887979686996855625744791758228129592125460398613331859116992513724429395749786665837066003161420695950113054574778858185438290554872047785559550417490415019753861963760117413240637012580286743619530723684297983636638621063737798430477813419750965514197834584249082228875288893302784365426684954731879300665466650645855846049538199967956843393816004543991885694858752403102219567982819677456700445993037788377608987212878318083285559444494988944411326937598868074210160799167704477618602862848623465006797559871456169266640967554635065850293912403485826610196412894672963887166946123677720261972382609986392250695137593084705230313544168501653211830297267832727256778541733565447307614294202531443996547058531851518035102134355989540753578820371466949255091412389266564747871323169352981769953805526627366197691415549886790554076565376646272417365714421211323466556062909230516479528057583171119797883747086229591526405576832200587054777730026824120856929760842520288338300550725286520755683941741946866875728966604751576088732250936525112601240136854496638645536440553299744033535169638708094054405067499818409513810167346664699180274607926339742131674498725966357993620662803413164660942787183471576571129322226781610720309742540038298853394252297833301643844810057400964892073021365932294674715944916906181546341307114922789829747809373338034285499319320238523246662338887522457362824333896446721183876844832055236255981134578472696273327356006974466378161773153398471083581232926346983819038490946071141596834246917931872481970465810806040822815417879056910701429638040920409193137403499795631811509403931249661674822196347613784866668326568568192875971324299601720941127311457429056667794688572611198622049971517367838887078645893932621900264526797987096389304081708194672729723340740641977944706309645568099603231470928937323228517632483829632366349012993899323086076734400818066190592394453181197621691693886134190393849749495225045734268817946635780184127631489518931310061630018609186804265762938157069349088986571914487055011625880114239249000530131242554097272125145592313684941381879878485915719876500044408114114727707677704219695450949114899382393857581366194171817834706490833927033507079071614221451324984510246937480384818054257421482345153626546660466536959676124423251758202236743819720664787979719070833196625841074757579694149876334474868788279222400578528859352784939246324823447154660257226227010219809168273959970752635703402300744549027238703812305412933769211135947983004818822937745709317643348744451229331628867027972186754861663941107488423995473533173491289855038634630921699141679147140434899966334896709294475162913455821147440705499474572642813698461956162459271334684230264665610925666200779348165158461556254735513595042706810866777621339210889788370444001793361021674499831691519536101895562832283125813812857319509057762035900893767228442295367353859858859964283228063378159657605524136073532324932805565731060540991416208815879497336907652634712462154889380062532865577485273988762543102395180982290561068143602781125026154862814005588531070489930292129942466879333821382888037784102978688239982940264532941824812719452181992158136939151844539978086582806372518158721263721755222151118799589024740406302523927838125592677342467909942628631316566013449190814527879513381451277314523823959742653564804634569650210400188533518516846693907391300028218295533337691331450270839602911503774650515902642782965064250668557915428429428774913225691404739647793963417292043427004370824071856788278645535070703266403811625944674077210514431425944447542188473814005193764503645758352865911866757381846857753128049515320173564444755973166525919989048604998909144909854134290151221167911439717439515976412860755420906273521492302521464309986872121912712275869599422747062672645857906394832580657109272884072301275917483417309572293922584623619341618473913021257052121780900125084266508424673065575397317286006780080895662999836154036578776940462367102918060921095000115221103489020276051207058504992212456998845855735464651332401484659575663809982202981921404892716600144763352726789047205574458120042690697929096444509756972739925499039223181318487709908992329359808344149591485717490891482096307619289924365658152377384176580528077465382022746999529463271497417146063664403428119604489623822982037267946220666999059094993542209368526990284650595984949279343424795156829977177006878231056326402690626715027397291543387780072088432331880845276548741247598763839990377050864756974601385134223882984334167895160686159690164929611061774104710267435538507144130899737034354730784637705284890683784157251960588693233092378053635289879300376429119729791046913687674636995021633859706124097034812601609850473501886785929343008079333357653335187867272731954013865779632103863593611835762553210064230856298014122438833932207396703032162759468606613136077342052850486482304507210189853038211521013851004279187065835355107318242240075520319815190498004545357539181439149237790420243279543577595891528489727226785976946433777773080247646072733351056335488831227852409907646582939826983936276010589729197510019623749813331580790744984907467936863125801693077921274188001957749365041397012008017311706596233094676131116509894253347906563519228215187763444407488414868329803554402537195650677407731217091060366073989287700334984020560179098734610634078679686232783442804282282122611654642655411739850671657991477196498843272483445360209480078488239034763271335464216086616874944296990192198735467502204972520414291482800180242003323250197491317421008676116808077895534236509613738282205720495662183427163324590820933585459083221734759423904213885499614867778010159317758221053005167758128831445733072869438944767046309013494104249786751069696731805172621273045510558037191987163550500625773670872011332604590778767256073576285344246754264911117475844767396222487929317593706964119400780839777633046040250010258124987891788160461898925196073255943169390100987203324960994038704662678641975105175856987120381455920703814883496490384197651926781344501188918150577674256938826290369815564827621813150755709311128120586561757960875615217623056459351610776079372850505049695277785543324492355968296855114909927377641632934532523098972862570922139561263651169020718712587746745516410971965434446119018653769602493910913836831015280264457803747408718344853108250044813067109970466283655469058576732732591739772814563251588895828913554075883718441942479274076541325331048995840035704711306283610939181972311845807238051669666535134810319130572019314669421632712346503343624316327256193436620289663552957227123785949190193993635911996339500231057290296273107967829842056983579985005764921007980392566981123751571295998922202428127161511610719009437442588511068659335403370047933709746076060874077316432153285507871181141585815152208762588821415652648075847938422129205990335113674051596520656690555163715338155442407091714217143937269817268878679513378571838142147408558945108295537862411615578297480012997810236629712169538615967497663057374683397184810874045067890342437938875840967561622972385244431486323929728316493653951967894062186957964873729477546670926147036133615298567144713589070174519933462987532153919936810008481443457319039236217323728278503271586787752092063817246770374645424347380958645692374459932894389292514846790751995349510662989799284058440170239870991773604193978481668278052911574444819124733617167332313315559815995398000567216548017985632847625126091918986001633886398033219884128968308326446746765936595225177222794298836834912840754442235860362328354739291868475237630669685088032577190829600758717457045377787886514191477876724690737956678777930672757056946053620900252574316746589989126743955454779035986989657698923746730150647699348103262669086795962678995846742616845908834821054438433778702753151276379608200299535310045638477008525706864815375041410400586751187844180615954055338596663186280103629180503895181987554942997937489020056823616084144702713780101152083580496824783916131592135538561517799169774885867769795500398295994315461276684985112877232011135009403835303703481115588271980836489534089122259236581689873926171036015724981056827542222614458425670597953191143625959934613989153963748098084085573397823595087280565965056504838022033445796577950582436364713410433658911964870755754758816343937941428550688969944015769047831490031020380087460345061781606996127972674133651658118057443207361847591557141596913146066973977269901814959776547322608763827224033109117910891483091047170672799899736579435180046018351677304810425393874268678707542737563473910229211782983804985608871652819489337840260160398914182755310842149717307435995363732812962483611524211380145757457289614467630510776863801065342144750746825966482746388216642848653143208045158951739461975466088885722544614229038540681491559633900191947574839494540191359781246646583013657429839284183929274263382719065881347692603024148573307675533600452829501256633980317801952403425398846058300456937730362972634569547515699336496194998177151961941416973362306754465060126299382174027287835067065662277409215219397113780936582575972261172939207730183401687350826094121217638621391285024127353136870542653213655125306782605438233200006452660642404719484776382521844431154166559347632320417511129244410147632281488307513030866643638030724256365190034857113356560403603502818188074089527097427827547420829722572668180702449863060672853574487855379074743019123820244718394206497678939718277232310448661096148187269951976364908640918244262409301572815975188863974742639265944414219950235635850626278827510193115818999207936908740074174612483914908381549589430067751036244201440732374676870742201558282643175771518350799318418130334230394843917662239939326257395633920995145195108155130118361094734085841544160131698709624882853739347513639939977523773981313255880775914499401921929236871091532064470548252452356123092520868049350671276110637590985723263038800522520807429776814202682896037567065085616027937287051852714286157632866184969867733617301312479076217891069843296022984560044021568337646126710915449493266527369422959959883417423216845261719859148062840077957493629064459870735029770473150218616391364282289061887655430317903188668469721824322343998756557210460960600259781897823787192007372329568787732817763212257479601236303281100443811806356276513873685061371428529066112004280520111756090340978221320603127388807463785501330928483789507096566892219275348556079752182759426742415874284357428927171344027272095796981181129259912866760057010179403325941776731811581442211097114871579230133267427422594715809783368332158357913097462726712360103738993629559399397919687809871173905255317598659955628411390415208852362386143162199913998363933069649758791895895549466192088191433192609965462238237920216692571614531844350407015518264398312237989031444480978570464824539594686274602660290247871699407786186571874013100314199882743414848120155685170638967224681856049178879918199968146339183918403394521513225060956124779360896769741343065780633433083841624300090398092008193538308495885143727596049913845903926318215844540967869207000268782350207790211158396592106830015945716409376798379703691969707835016839660334192034698774876443699321941571289695030827093675300665729627734320505519649185586133614217334301004531504749019027073743840364192999049641467377031078416722592925880597204421143997600503180268502763198808016709832080851965546734758580235769467285711289991277593313063077907631337380758817931849995841967518967228281902387306125896834439968675978674373277003232736480818019381293306881229977625222410924035217746442107764507100972575517381839551968774833929488708276997082070787720054550453701873525644260872078260654660756102139377524930272074205724166362789805364056930936240531009721161789459592655170406570083532991676750429355218594324515703921074332262708028593238121040749615387449449196839604045577452911780778729511107751358837613316423025329099865439253014772460623470694882227034249054565025473376132104339302520010803666397871792221836116517336246661950310861632754045918061588676156673549705068809477740274388555931481409448293229973742100259920414257664291644934996942432491065738462609211310168038064572589899762605726523300022796921416577283134312388950795348204701225509193737639952442330968562433744977461988738215149546301358965643946164671274919054597485733787877223397453871488625572527248601315291345191176280216680436316015342312896712830708343931091488174990630376975256943901220250356263876705562736930316345560593649627907610665299727848048580839765073043373481097527102779320228796535607756884562200322108633351270797191704180160194674725018014998017329999849876064826737570216057802781787478567497743733938717364966167664721721117853401737147877267725869404513290234781869777966770273723015461510501083652743144809936679747533463063369322144339724384516536144436986313279824774374618988601093566048187616126533816712326119190932398499413283510190538414813203771896070081813621745451489855668323901851858712698375328156971528256328920424653596251020048933355990652898894084942817510350593064253128438343506687184208330819939563752242030785132879591479199295761122881011700596110896096723901763864496909191966284286278745655613693235987442713617296886784280129209811039908445624614670386183165321482496311915688142848179454954803912693616890092473113953477052266433052187280829213992744662909469443017342806545420582380795749227278764820493801738844869663110698742050661992153952311337768190139754150673230810585234516298032080961274807961216261644683329366741288639704414489778201481691994734412110971410030446289245966545823715073914701633659030332542530195566865057296221274470224798269872651501634462998615392078929210127912027218907446165626779258751644297410409865732183560235684256872056521309080202854842294831922877368804742784848765865785826313200571871381284779252813275916759271598651045092812617119175980317043936088446672302207150844696872558123643155934448618579025337719699777278124254963469885934832284321808542082693567119061675838393792764552171510764719835132490127708167474417877531250841457733283380325544472507483486938580147634390536351368674647719654795540901306986330048283701102823550737631596501575686911722705690068394709992962155716983983650550982475128354597653504855330654590645433515883634080940122031690921420251353914155483395922552510772389808820580844269692417923941967167034505118168185164304075361224360075191721965838099946590549989289905582072658653634124638233887494398142333966412869648866033778114525472854398536922210202676662441821741312055520962875475527096433878291991667589031227876332884324050825548945707139986375602155994212031967045705567953408195420660745992236023431862112201090051055810210904213797814673311315473637735363487481016895888765587673298507516697474673329116344138059426223960700874013295566928251977054075383276512229377780042720288181028999783365943627453706344319056289972260435126731669555373536434416767775393180722879847479932843609805880090199610811739735664285094334151298973122685181553065868602152822726308109840295191373245601058645210955351285217682548476550056708638637598804659281215452407413844141767086812679219037820960044331053441245547553765501447195294702581529799692628474262907297384327091056003756915016118915963933889734027613863253403559218566899027491920179066405694428520387120294626417216655576260436266342205772360440547558362589958009539035910842124004433415363475336940745495467907493436865734816517021560005776856088893520993102894582935791028691273889839357211870796459714449722816856776684157009566739561604680319508210164315341352053791447565970250965771765584920426645077036362706350985895938344236124625825137382810192289118862708170756782503306046947510417041895455190371738626857658815973505519768710868545633994958705722795356078362738676319523933323129431370309117342744657103229073503226337408391916396390965844660670031176119742000107479653466333938328320410766538318765377632734301328877318560868092891874463205840658641772439200790698307303419217588679910765241180251844796575800516487464153972824433994942640443986305829007571297964045177504410173666435275292168532148637201336049986055441376408164129133910131539041379431390562395714063074918192236393314996901774417694507944822974953458011336132546702584260948226916094768912876080538305315737986066082661649117506714776735102110603833989434758402285570974615550300758870771996585886423417026344836970659414834246166676378333582480604083052827206194062864689378342050366957100336995298630888612974550145026102521168412932963577562104037128667488925083540866775355590993853322371760320193685146214151518052882568896465867560524806168252484649343430261535488193442792908318054124527582400257143555285654922782916257195473467303550657141557060228558433227607198501474733354190150298961996188849027476830076953317131974516299225328099620612812623579826813650955748074737699773110874937100518175611231511183815594576628117665231552364319999360098288322491627684358392642848915719583379844573814818958491605416427968913252436232239446159413400788959006133029792320809873020540185609590593393797209673024644187085909773363498617232163493605610859695024710117073585720615798943707355169393448732863889433956886196656312511740281420974000582859606226510424294914764452895520524891691049648901661248312076168105004620957778529410651421550694198292671922950702132095384880829908671400227312716880238244317532776317796439576693636848055447958884790819802628133955782731506538120247326480326008818752153376600030406807345773615904363506581361811448412187494161785827988088509788707519380257659136613666326604048268570619429314578104700939088219682356877512837358207983040721389235668405382024373359081326390106595774126661425602839967459891549279468586172645255359038338154640146025314338218754899105834950848198157836359246868736234058169157462197344600850151386311897801667405360739588145681835361988076609374783009016881180179010417358436807008928638490744516761144648452099009472113725944249267549686462345246281507299122571109431701216827119173569733008723015826455773147584085661858607259124254151319698400440138580716805137821720987864587960409217363617342332258056167814499401644270129838119562044766647565277875491729681872642985850262167663396182391197266881078606019528719798628669144142585392112597664699262841310263179325718687261671940727952219042054832742995353948323989429933123743921346049752928313806470751227370945783264941223562379962929521093518343704413127613471947893323607800720313201965357969924516581596702733691494938216908163725221510177563786272748926483678024345507352094406161083810522980865054021868533850987532138468385813228211724399321162849964155694695698432794334295187922404326088787998631003269326398919512880714052786193736760573273705507594223528710287217481290152474953971165239758494906013956246965070285947876829662361862235505958204679108311758391095844875394476080860812855698003211125526048014164822603692116227013145479878561735613741909461998913933612817698977953894763807030202978279620787354148135857508161183968894674606376538369410080438513521609450258919674465909246770708544169280625932127012043058067564748025735065562715434534501033709478114137849685185959888430568515116391148613664687759749578083615135165426698271468668449322701835479853779663120648127232485658206600365804554016386831106072131641549287115007361468571216728548923269160488365939652114888202238644459313743900599056302390334801725241427697121069689843869065875901576618165018152415388402957875415152232360871302436396503301029458386362502739216735120541604615076862780094505191247839042101901707960972622324482397554564076556162790493397737035610091659477006743941613808024128232303097799204662456481366770967313048996554117663127194840562504358184517675028379259929669303234238737530055312321525828646600723047014301353138316304986031545419355819998231334325885175720433287414417181649950123745733308962465246920527036473609842540000235826274996669970290048170270363512186744499263612761459399730136088266437150184986392792737467512099107803024178950670468423941222883250907162996392835223148015707724293813388954476208078972421391225986754887941495960330077063129940601933415894244223382751746896644722926423315212409157490109147316004809122158000770329320741461406506379962411672913941929354963111260626288919318261583757269549816386243042007515425250774156342998422036743186412999933561832012879372219683346583402947627590797236030475170268224520340821991091856695092202123649672421030914720391912881635510960691640427077443771532594313946856789227772045113983370310615992838255266289148828707331325689738257931545515755041577458186725476775431639834950434160427430198038545267311556627360516090423438968949009508120577050299348667661907406419530305211320030283688131499709086463348542656659132374976536689846725114526635937922563525178526409374698012088470088413199514946174777826735648525713827021861482747902227035106750652099670480200937449802767132022227564251430912719933429499221601513498476956348024251162285453612950595170590124826412351345744853166746111831346614113501730145586106799589887645638015108711131340597052026105389940353292210459235982060250605770212479411111878371471958478688958805089583894216397951755751652806646579047215268944961102626310350442955090447648519345748038892032505225391200516557097257370098196078780737084712324949148292276010315138033145677455223935837427481706019616865525473890758391476146462061802662974498700147426966461637742855147416166301774147489731079134433452670684671999730010431117038898249304027101914782534118942880852417847436222856130485473806004625710872850827907222185042521917396223620683360160869557989239394742355236349388240279943789951823885832995849787741063977017534801197925352463778633822366665240126583323704851605894849149929660762744959836669367708817449650576714161547078253582306045628784378098380659124376119304463593288431112849359671200885181337239322946796236570434404186581182815933511031622121418752930342066156204864913251849635979105879415087555216025980234720388658885305277316669143585438038028713918932334986982808712457593776375644105653512104034550749471434397336230786936813103913195112761991975430914063070312960142947561809715076492139409763253162179173400043384783813982818209250495694754669354319314374701981094888029349995743374514909896018473391082888308811751711507605348027292299888681600124300258390480697802196139021784641755683875848103551149841780009142140569946462254081116351283465688983250763745335954312285135801885905595144771567158970329065453033194351130519279196906571250687512826527337281316236203547717544506288865158588990115016571762885938958958970364322095755633379957002779595995956893801185267204577077602961908729590010621465124058845089297906212599075001708665336567917115337387828290026472633053726737985919243445017791243153449693515174633898111797078593008344312484533056957776475160190870848913897116920488880610426865770374905703503844346229935523374206707848564653821981188220585409582281568822300363741177692906976472876409572142111769868984363693320606848960638384016194021436543831530854142881870954569844061180301438538130840046863614904168757990191107764434927337876523344922274078446841284154966099298934064291866524348609288267819606005877872607926120275986732191601081930643269357166932973275328436653396199454082396245530252426766452276250686902456758872117596583966849665098411025347528184599670774416655688340332577148291498087084271908808268462764425096202651650306347631894010971089840205286283322030968220328752342082482262924940767643085849714958692651178268307999524394757042183987360322123761384208360114720885874920230373629416266505515913262381836229241376242986871467412235810502160037256277278573081719810018532304740844410938740443811218245782732577669282954956514059173103896771195487759935600868871214240129056049073377883996764531582174833354932934159838436996471763469731251479562716652616225909218620771563008078295733975003840322822948574228578208340870307362107337028730078663628278750304841549852737982098802971205630221375483484843576631797357975639270151948067223166490595630185134204368313920363093906596281402326353392775749876774109603472165227255348551497519505249576343264138589462362850586768300732329808466103661755702758050567694063441462570346321796376195449642546942881000631507183244606448050408634480003369054375502130660363709040710182893344382051925166097931343879363168997970882428095665633080184464527052458723162931659976212788768557178106593953556562831835359829291287657758395394964200240042466426009543359484323862084285985617469695422528050125951623132061559962690024546015459807722435479708347873348700835494254447171029268710238141221845074779090823753373543418261243363514848586602393753231682770365510144352877636324105007565782102434619263953111144055364406068090304704097299048024813281781387385173793795995136228475908734289893308670351777978186290884493997989587854707233269282086553192335292409467936785652230726779879798893017605669921682252828336729561245682911917955259300391875769303963898420599238168636720764814879822249675032746407300689487532178545868458509374010719502040473982634006507598681768329129954747852837931588158082085160552644753992908953398745429532340813659597299545100329522239905524021197090915496008482622008715892431782880104454817246639039998187048602103293829604768438616122699960824074493097614984993343791214929007969365488015580706461393516346442228977537127251085527546923008667353010173464562649836402543347022116822807370952434470260163908283535021346652724100795623769990508326714669137894605388525909903830890924802173992979419496599729875214316729789428646190130111851601794781873648627305683522835339708665863843069980022901821433066729294524104676228128710569649704798650472841506165760084785319039437944680496306991201018795397059827474915284265453813735117771537285308920057246173030708255580229630243799938386782533063057795177457722650802227561350356803754397213103027766034094598282574955957202360992281417267510504334034273631412617608779957690523527002979165857744071327994299754524346414036837578928918690973414989310762832611937191679101437984105920860605357794442460121926412442383494507146176695242017676388468339484578467825058997876717484013151227723720951511558318351697814719617422980960025292193566423192747913199338209049560140903254236959664056887603529057710660095999744554723252511614188878545899958765055491487266736759998739934422316414282102014490189543016302182714961248978709768434407589847296322418185145657313723405438732101209611899125278428781297712380740589050208509216294657366045124939063840813541758606588618226877593288977584412105602544075236966429183759610022550378815764370213143976872879470824858938108143287628811332666992515922873360895633235979231561868120527070143754564073281407112430062784930515635180203741636961069015352102735132117988090856398790350632189114800448826469041708615893500772870025121812299088610397254353858953178834603083832625512178872246524916596415816126981206972333017687671160839404933579646898550435091526027355120037327560094436779517522297491610730293728001854174756469700153785349931322471359967314186499008116235088732358368091756730785848146333946054330534299961038157109266046258179438772170776304789121053077769268880720435694911482999095206663790615246209231708804464914729578076214936552209957677840162271147435998166662763456500832034730681480805318660382863267142983454088698718821937381614004794088878472886851314654316126324335165989189090724674514823967897912828622397629772479473839487584907685244452956482132390782203769572725187273088565187210586247328856879683036565061677709157679483037781497403026664390851619763129727513780724825228620541758539123026897286684936285323080301331566850403754802245317931788502867551299174446525603584899468204071188448497273670265696320012986180592280174610302015722425954911137241427619438732129522075335389368811914354836091669693334471826091745805346726658803768584222750583339591486696467867388907352882216941177745726460093252911605341355288986296463762690694758393821167869530656142453462580318966462055961708883682479360789158352685325390781509723089853701685486409598574506867935101279059613880362327167452019021541309235456565361510494430575633422697912502859884995128942219014581096853048055668385236053089928641014035038807421568860998027089098184096341992272496429523679643722433540849461238445689779199935457810237793685933228653518934934268598469840398282174992514993471990182242780485895736767969002198711792842893213174861828600015905977452162542056141712259540154416165049038757044112981001764888766981976943027483393655586792260278377593052764387818548485717815993360828011660257451468597897815714982534053564975899187023020762007154359840103147561138067779824405440617058725459103703610395904540914441576361420888741368740659993513996392286857372738413132475680327542392433060951810420850028006730358297941158149331908170308271789593694868037734841075248984230086716967128944575839840179680148596594501416206958481935614590312665847724196206067350712306278384378769338126920129463477105190746187754558537120605787180635970076112268363571968868077215045872624354801452467285257172665991395336741200794784672075695715803566694386081152342967398845966872210945832410319441527438796406214721527195986987511990152547663620534597346323059260347774734101530148443701407459781775174212964318899605838243756123555786443113086946569538701082141992065546733246592260776587756764999177040206787745035327540296779481978936277602145607623504116069176790936368615010632052111357522797181535710867746451667284109887264725367732656281702032450548219324602494222903084129841171652917242951810219326392641133003589757757843579395332653066466520260053972231744069580424607979283609702334794321168460546703344876367033331102519513297224145843875032082548627554965866147608542097498233624438026965626877955318755792090398179230147402253352714577842313770560115646690186219636281379187577424285487885051667046943962966202681178822262369774678452239472684946494814711225087391295330713185170772523351441250098325050368992403293786516484395377823880823689148971419263737131242398161662284640847300432344750507873242472898759565340353916179425872499960800636201429773242325774514142483602239428332880174854145804456834571021060336849704773357242802086165331756002934074430329548106316268875119816030647204430658793072119500069468167536546563233367519712710938129575467400672229327916730345483535761066702199957737028832070957263915795569329164387114329956717440756106788334738524033466729989221782289378833534617248593869212069080519511551871664069701160102368525881086332627048746238247915189934682938088219766482421388629995585142726476763930509019025632398561248346773047872022358715425560915582435421800307168001324949203687115292360183036330680482981945345324649288773679173330826137060167924343783807122515701958990338354269711438430748787000713031984172739122077823177281545676814147855889940810646320856744682698150076323655688972102460989498153837183317012618846237955894301813405975876491455904937067180478046413153313926866845184199394018956476164047010045555621385790137230723382263361007571264508831701423817408734487904273722221582559202117288111257745047528683034178505426547469468470883384450678987942211473056989566892621934016916067377634173379540573711700035485961629461491746608996266464107447996019720700824831182507220046278276366497554507135771609432769512526627086372877030536152268478272404000032683324317027313926457864520845497764853787045489196449352162105612830261800099288169390140953195484685310442321362105586659441095527802224871218907458497644903789541180181951069076740217364754180306683861416761969057938066860833193903211558323948719794912481111182932048330331500161692360957197546329109070721620410041008789755627573891828962936499092005394848047354886685245746108283310161710827043315563873657139687031805248343825401481932339375914977044562853212816351926955227601736617401262834471111406789206980686279169240961980820166126875494399875345676987517138120923352546749720454250469486786624051896940293928350936817469714107434436397577834773043043948903951950716919556188005338887030889572377615301819516671126049580037006213408011118018567810901501586270977954128058069480598398158673745275809383570045320548085088599140244187189190544833582110548018462993778787614932768665627042594703808873676957867785179982999980255443541758679898354397241677141078270192074720228278114313072556613037993052361463749439029239043475963890083193416007692859329354167936418212179713289694774755062614843509883036221107937116977208080293223124976978771584968464251217426231263826526838950455036799108637128008794362866181227619791784485716735636759185040771335413511643775309033292833882190969123346871933027910771939907068314167963666271611791584907227781998849545112892169376600077161873023681352831685821651439295072645687666455190681931492284082847941022368824928869123545446791828259451558959581625415878008998617927949487794972581148547402384355893319634523470972731585143173357851300105702090147774518580468781321713122156535335746093743923302247236344358945465662838502910707613735305639041008286254699089303941281581659868378191829786394515870367046959131033792785449518107582860720053129075678536400283956039880050900996641719620190992033809839447855835959967907483040328296774657506417291780428193482186566864704825308089858632542979212594081928942155785169622105144658486705709605330433266449665335542637996027265506339630369306940227577186098894132633843212891846355659416211881857999852908090676616685201002329575890501722217260068188224154779446182990780251552571124311408213901140169428114489464092736015510904029555958249467623498677138662152166016411245526805544190502654705017886330967605241460947255560245303449208786165091497260392330263374798803122497872854028102171210446365718504228620961629954194531633282189777407046387763124698066839022902248773077030561348900836353102515819910701645923815894609011428542849355333590301217661894022846527963659016657172602979961795638346435732056708851899400956947029881182534393522757271064573320270171107990873475172672590199004793059228527530977754201644896045552662186518109543720852036939805269892038384516084456657478822281477745594065808572546147624546493761545434970089149484051538173277350938467422757630757965155780930636316585950566091945963000693691893834248628523212488542306468877457640503227633548747627509872241962768447838241971579137723095367222793124546681743929945641626009520909968338434444586782161500493874980294781692414536966479817388315677758736911178471839220942754501267264946306378124116842580356932855810650309217644907760293420569635979834277038730037884691567860160875164966287667378427180755637842309687155191597791149096561616659427737763588560893734479760399423454555031488759345122719750801488409897011388374767875178836289426710447127663556656337792429536072199578565633119014698073288689996230750787699201541579685594791290831128839218172250951374322310072599689200423580751002046328395770518131491858160041033507812899594924533906151261266254659486443614573756802238532777522977553533558336427374521492825799942004683000165226373041733058093872880917785132826253081296646761836175870412589372509142907073368040292769682822019043223820392050702517829775526137243086124189003959814414568249153705440373047595092701371532010751173438174432197718475549977408580064636828203542680351025409374782814381371000929487249179767046237222468454205422505607299897945337931683673790959106764366384363691481350441841600559327592510892319405194771492797446688342442717931549148468972172942020802529572027497795726741941290795510116212395979536424387808825062823629658727571481645591530450199449773454547868792474133146979225394485365733048641697369230015788775203344929788089751338958421639504954313181718649983481543971554196208860861132719744681525941697220012160990450201982791665685735756214503799327107161850368395955760498112839520682910167085461217490928854667267166757712699563941535840432741264600394229876423011610423141797650636139215673559066851998983781883181785208222780273108783248296219105217853538274182516115031828378391996446770931818841743424123998453102264676341081257570205227503590039982562989123849903029094182008786009004884328973780333285986968429239609764541496954226874372645015508240167004947351761061557385372015997836488169844334604502530118019749047644452435746688417657476805162545063617900326971072639956502289287632035245527086202344577665332446071526559115910565795784718727489731799557766283791452859527721789261560566103203006681640117290494031253238722410147985952011299547711135132742912602619957327773227483140601565499977562897198904925422386801534675613299067717108264893824048202931884002701059256556436084041130273950880913684804441545438286349689205361682917812176628876038683409938878095623170523561505623621761047485501193825409006266193053106250533557442045460617625214552533979978610404147084522822108741292958098603141423164818956641017939595682384260318976893466246099518730194524047615112893541083702754669785913757192668686774165190043149019899777341817643335388253603145896350166190958450890553914438003275044633152361755633265549957864705118813031342565632195681962918296445794158998180997995474503375627069171411660492826784181458926309001837101260750995816131131329965650428999651772572858819812799664122322387018426756128594237982686249605951039139975784041877542589272265525091204303734380077778867021195146713023185162959705746121368205495531992786700655675040390970225382216584483393957595618067284567998320495863839833028904328820211756673592348617261165877140469529224438649351696681338107463895723510778355785982083114260666684519585918481933994633579064882682418174417849034821672380682644360405822078722523527966288847338914822270777853025687280072979524745036489147413292721279720341265419400866814399235725642818884494778301784612975802275235335081385259656213997341349901938387733392988215619826906592492851593004580038453693596057736017196661669614564371280346869873118142710157578156632372755788009984940434037364165186272868557989274575466383801472005526991936264667007251648523955415847227252947318634063987439208497673131901453102872584333726677562011962759754559088107334129878431917390592451350961522227240805095099437361138861978382536810387077615558871782876240866089997176698249765668718440504548871912413431324018937889030266839049130945707153825183352234845657484223362427473772323166847066722350563567478687230610408729329591418056563192812246361401238208943279029468497238846865750254415093291321975080423254274364563685495886551973083012091263957787243057225515577697578365625314811502942686358300311487233914118007770790733436681937695574647549930806864149466301791884266136919975750686483582427150144085312499202113152221294957649975643747328834657851206107978244902975276831058927899896592886832493963544538250827269798982995333493588824468873681157241505271494618004708911414328005049851506308024264573459586712399404576196724123208891741050391404351795151464303498333642873163749847198935036337000514181235788614617815638022709292283139178870129256527848073325500291983249737492272527348445466298957137022304923143622282106217208216735439655416745037925571942998588231816798843001281099498015328506818058544631472669387862814577874010947381403779041801672419773057249478939910620575464945802821955937635881457678334863244744877889576859439716092440226162323683894883109092438352667783676684089852703131165961160716801287261952779433385523818408828854679923942232779599090702654275943289557775622602419065496682976691918961472099101621428445803442642856525878286985626707112232601346252756013661017009361289282465114247377108269348144584101097521601987594553720347868341414286304961301162594591614330131542738448752483628061153785443388006839069917622860337504167124716901461097048781335461631924086212184519183816408339174708544611629764413553011778030807009355664951648649471619314895942678859200254035298527583520573736505263436142570409537831355801668690630284136931632455065379489433584436732153978352696646203676636094785399494758517632993241860825572847902695137011952970322664541603372666856892904691528799975693218454447016575378442565869440494310381816653861671689894559848063639965944610095592253441021503805082065935337209440725875697423262146528965531206111810365737076585516784742323424530001826302125168951001090870926818747722469364695477727244946578063963099072273275838998601120880574481025506086372151692310803454521822364065000727828213774534856476324756211336395013403862673183000122234936354809631501139987796132348159593897479781968377891170598995902499123495564789312235214664645681882941596900770132026053840356286996779918785455519136382009216889750087813910078208406091706693508511171326037693832366497333625511833812815256078434372827970502839644637427895481546387618078400846967957156066574870577998851970534592110476172092801764460525276609466276609783235649861687808386020743529660756092387140963346104873594691257900949180465418390261637606431984091128964929294960540641390580709660419352613322109310151953628200103862812080743971576866486927807644946819436919521322397398969337554721374870610316911502570871743379705547893481097790265632951405028525737127086774802776492034097303696722566282579562766607939550370522896020292260545111122182287822151672104814178561883540224712294530826704049667860597643932397170560081547555830322449660013283123446858325820692046786583863324553310940083678735924644828001615619630212911598731390315136147599722092583520746495119767213916129812323032084883801061680117312899145379243108174057418770791690764706266072960222762513444761786723607166913649116492439835074298809352705300786917528150955303422192570863050707398686613630522542363182407947452773960250204804916017401907158834194531193768163074246155549424837793706488048007744433094958028798026026332587849308421497706317430029773491667101336249332421570693897249127215874220617423785612829903148179487088819151171548938845879703731928113503163815332239071304223094763443547855204326990009784085642978584894258407482991094252410273405119880456942721137432866133538196985584555437204691193169382244273089463546104989976737238043989769760894394642156766950449650058644380784423259905195169886484409819572830871714370522348591118540957462648475620493349084814618530401690409085802471204565739204245731444800680255906628523113769942165183010044167674085717003147209861599986663666016580650702168085551227762095697162555374458881104007608839182335340467602741496236060166540636020713513316292795126668768568282753080677899791089251196003363348100187984366314045828250954079512628625261829510768822360449794989087418292874937531429193190167966731046099011206936988681199743924102298221836192414633878613536736769209660099457748856683145021053335989319280428816814743206873831978138717581329447794468005461476402987193516054786528697097342620883561073137752589029664454613093089036109277056490549429790067577224774271853261459320506288500755268133274593069672297056565340229606512442238018922614695524968532416954280290565155426772728653563921236481682926970999924634031285326522020185907754241376145107779973304665780415412022607608272289135205293662803397480739923827394378548452188088943742224613143433573601645304810550925245535757805262478834624747591511101682646619662496954963327700008396000608703704370939618566938025409462422271088040048174103858925413924344658248929122458679564632352627647395559522114601300730231242129924926672088998620062597075292405711220200776309574072276754617156837255889349391325953633254414681943378566811489376373989741842931674285608354714940832891276463822759237750508440519664511118524177174662379449113480326937316871413639330945260116437285908222998770987649963720045437950814790743796924135511165410165828298895905170978758414101657209526723097917010565061214193250236155347340818050788868507156590394257826934402017733380119874871109521646174939640875213645368141182925418618841208558238594415546489165272819085613077587937687134352596595945950518341192355851471543464094161909005763599589195825978033364058733588413615411925282838123991428900330452261604552437302433156027755439757232448267794514779476676986667570870905596520637376453643662756280411895957561111540615668801605722527565883516946896811649833625429155058192260016410421142243660273737065641621323187405288988162551872842333297189953657555800007644261217102158696373480231276515132425364532110939176143102825134892223049037677491798770523006226889946487964436239123391943786647630470545478477881067856996646439140919905932517789792138475113580049028266654858701837803124132380193369959098923136989429535256071467735509153903530181594798050725353946090763234780743221461644279612150489061175244448249070312479556094427802673184375723998120366965845949529166045588772388847280564310515482126774319411883563451190253605725135754784873970294010191148724525881373903080563933457934306700972668439661792401935302398577335578388706347972317361358367420666148138613787688966025541999885934211261621707834956058971299360552511104708079113145352482220781030930602796681339404927037238971827996975522318515818281829068024261254165719009446299957448238762376486622413864373494079133916960136183212014741261012639972394433245741980844190742131344636371962448626308608793849049918936118867335264260001009345516661223895337944142994727161901461396884087874205494004711356222122386058905183016370128728852823769510168957465309750735357600519099460810301960382685082236142444884272044282308779011355611702074737146038023404318363440042932620863884116173658920765515357122672813929025922589179175345101191736311395883873410850081391868405308045087186973336641278015515755563376172724405618296911799080835966268385399196250416612532994685285534428708717090220528164141101864128903793047805078648183369500888222797289624591747139005218088584080575282116637529813389169423099485529706834887761983016564971068222047805164806102410627419912496726224750633947347511360902567277098645316520003096246769521648224069905240419866467595262577380408681838479113629341253866227291892176080628749718029642063427068427521188597849724245779341971433485601927531312020865943463063642658145549934521919804863499616227132645524273450235276241803292176059769203400268950478643835501880483956896030447901487870784562098804483106757094465729996748924137885412484399387555136373178625548079168559459961149035690584513598229079737346068597430465883353634764055882420772555390889894164042806909247162082646759673190890606041078642607258969982069378783965087943550735040851522820123928711266309299508359370032171150688683613662151405355859327334045071342743224328690883374821900847244445013603851981869792930936858105166981101173263474631453613324286171730628275054858561682989708194763228343651821991860875206835231701186142059767689148446245477132189880480098969833888719510063864338097163166969753900363728302323980398081472841366576854534166191369171949749607934945556694374717365571588156618674754399469684627123694593900170830388828721940801811414393100981951379486376167733393685183559091884502396379466858927635897621716571855799744040280005386022151363964365483912997154732845460459561144636307760846964973605760648877946232474675059858195956215911897138268368730130686241103460921568410117834950856578961754358511180206935992839247584731015788498481703131726118997649253288595316855193288464643831891968651251069698591155566971011271118028736231740480033155842906735614990152647882496356118396250085107639414972701970911917352772156910174013332518958281757861853432420061882197082475709482684665125813295802814803927327790132328410231133331009520818433897564699794680900435986273625996338868369585068267873573380008899855720279192192461482031465162866182982207882040370113214029443864685525598875659843856420820887892331841735059026892225205878630023685231342494701031768838118717891773973451599604465810818783677125488637902339545673695596401453265397597420809166135959542975414375417677202704550766389539065034868167395431967098857629802098772226255735587125732931123977983645544234862332370194103064989446728638777114450296336857131515005743938909374697504373688095759096151142272783964183735317475233774147267454950605567517308261772018292950553886563346033495945431288179146029760698964145078642727923345179078129712424044254771416515161809100819336193093378386895527030306900927849563329433273132515822931559411399223565180161286764402832845498317916526510045043877095658949297650088396729442588396107292570138065130180270826738008578751350289498143053764540817064110748645779265333510532595973704993917428921551196713395058200521224130293186501601109663839092186745242185513970002830161442172421314805100336883730851485184047127975445915656320934537277399161234123992492797715188938777974414897647336908556850482553191056604780762751172386161305937348477231809167953322246770478588722184045165028364690773230875533850647066530456785473707459492108632231809999804016380306712203792019735920299334126240978980054875182656533188375496392922996403891988477727037206674769643837590210263601697309411885715735947275390371743428882789953910458687003528301855986522159995629361948247074245688054990840717623879284385281832969566552880890833594740448579946077241655413220607603526671221036291830600521729389481549518019351006527243845137949651082411837360834216580769659094326762063279266587960968654254654017230096131103133844928234685532970937394258422958374783376329983969821953115265353729641261728785051515839030464400475062684366378589794077735725891787056162788527142286559227334273181091131918544187005443155319116689936641681187350342162457039248672787105913029993497198768918999302431295777579055864140355534775882834095101342963505880810499174308776631523368239797466017781930002369531043407591955291782792118107975080474758968049968541929605524490175623948429706437118985055296314467077718301457954749724489172169530186293449738650418893202932828494712630138877464733501824806941311003728258181593818913086740930892248511118566018749715203131587300079105679669730539288918427100425436023827069058457387653074557872945982934538996849565100664835864822687282280245714430980651828016207383623964747383101796105557630736850124994267254137869455496382691817068123284495216044876818280842109431614308309876668967889371579851003704554169854709686281749544687274764217554182754714603420449864885874091421779406369361123723445895508348794000292942673487390933013400061594588301950527639848981698729898553763073915550826000359283280018599970882976103714301050937783212185865561749419865370375613381949590407459634659814463505510491924682119426292255070810493327546830779355777736497544287544891070345484559990561405197071011494341393621968518498197542468675547179411030901891854331374970388714574987787711694713721915485501885611425564676114659602706225122185769418703115957202201125024072686125560546937710634955918907885939626136144025488719164558129583454279010991429239195112845787696582509690170672886433397681495811554969949100119167278116633901774734313474144225103705790161774902794385625259552434737430574447913025930295060841534425084550760161228957615411748013378977441684747349047728394165125951563937412173808220982886429400919382221453389997552794090949760292919455815768196615242318191466951701342518764296587715223032470038352840433675150767380027018594947117259130632381492118532978597325073592200111861826090379520210933659042203615186820069474297897213804574880063283030771783648910883457747749910162376130056478652024273149160208617525334710534564024529232589365924334192354839341431409294668292240210072488468737114285918520618507853904092222709563106701712643596191592040581437761665042056060340393449085126234602891099601768412057881569661224393022255827084221962249848339459029283570573228202943950091508669245969836355261890782230284800334072927131867745078215194154720436226973203622689198534188261924504000295026463610331453291569191813769175050357831935950775797473837023701295433288528680178397393773117863146659608351794603202213221534196947717821679122508766443825450604783084104164506523740191247118486541071473205073579798893702853497646024625096468133340346516978235028645367996493247477936056198172210847790633296223060393501031504343645250967098238332495592815097294534588895449092745250757364436415578600639299828236865155538495205021845057333035014104872016352723300686260652316043713046289080343449811190027677095002691347288006955143111770283452216493173428160010174142294503860409324242373320614302700319012535432267818068191102281666083686320600573815218261651274032714871348228645234449409859952425912108241085446280356219179731192138603838308852325810722841026903624159122375419679987198235557087700153362309286215287088902986050260664250840436769218273494621306804254504922245517389950845977382667850554964467946315228256584420124223199666358136871006427857707762176828232936844030921065184675378655134150952335855012246094274314888298761318025294124370659718287587462786867064681018927034740380303635662375708007378575358785889559834500724518098545359188817398670904946305105681767944674866805650424434843012451618034220980392049219991903232838417049186253527527513934404955591105135222270964602073473608926863856819777753151473250930911647333145442489545810407957267575106498750824381964749585848983385637607096337174117169664230359752842698095016945393194968850460339683642768240365912487925779476141549784740556017289519325082595559150964416373369262087940349678101789860426311233608046047663082659841113356563852739028367422727533947980562558108483909526683819841410192305608699222693758554365263384404634974346082339914923236112509557103062064976586001761238024200202237592516059021270620716907814728308471911942358688243256285745327805910870045515182505256009121772815216969469624173449853240220915676581191089940984860683683092728805643013451846652172246189839435826271640718206374773857374219773817175842237243934087053506584603876484698646767992159591494256495643760816937714498105590278580409583247357960850078459617602273402928637292336059087213952289718126930639273903505957945075223794098769731090017214167425470589740144444459057323505231613682104987448513018356092321120453237470202971425264854736897064399469082204251992629761717259678649812250107605019842104675599266189457531038154804812510315338253161591692357280705948679453401589729332379254966572985884632688642347879578621055745232613242937816458524448126333348947864354249947749387824972868735364427512926189622700077390519018553820828159114615989899512706643755180021007343238431998342007773099669245594504558348506227656842879157278454717339162699801232996948257160677740365827561702684182550404963800293698237349914906399011359070650521429434886044055762097936205286662066721218331451117075311838924845896836664498392389426030633715270165015795126141019177544612679990848210036865086163540076479307403017795194583322669157108124768066357992973101773234593646403282491427032738527828194696205789324753173201169473544200102256898463961796063549687980980211451330793078729606937792766999567193671347676088915501021676193525869255228643761757928160981620411083227146493934829284130260339177027453893930263683035768337970453786727878834063699862864107124428832674637135787637733361898496770951144872165741410047288497359615678748800105269636638239379562652038175150412081402436644979390139815124399749252087202552803560179374352996186543145159339755142452051372912102064258171578302908580657675741921938419070702489315841358563480931052884167737445059981548119775630022255474050599298360923145366372257669447746154476525569693268152345667632212811721719813873367397091038594995598474368634441441242774435726573695324883193565456172952365373123478340288091045693620662746617929520792194628268564639154569007708594896812691189121389265599256294294348560480285965310557127302961098421976190204285692189447706195749544352333955893567208470326040999349381734635701459459898249733782130963106426132168124155083505405046174696989354790023289690554157526789406488723847888852910994298879082778590511952189390465663794762412759364183258805366734480932962550199563087233367778214798956431840779372357169668506791140891986142928246335893925325971613285053824163677062068867248711035055238695765979554140496869375679967492642792326080905315663300693913130099674174918794679143794414814751398460863848764964300033505400825196065157850134805394974315994925733632692449905266542441075921611989442740650964076427774358397205138467731686399216021324016757773449874948460537813329460733070592769498881142144407184340990608158752649162634033133056449976144874362696025978244568062367871296274942584303086471092443879988283735962666345204094673739361716842355593041958318098865580575189700183678925199577856647585630091672893322845093484834746503943302300883095797362564820413877520690974723110013039864567922861408578001012011949054745144866217550129128457918926992429250319329175600146997986912142275713292484353557441695230767004776332723466048846891277587489472066383539916853650764839798118397478144154786839647961189972908080974091426482728561771604592902200549296623154855005869670974739902743048036426332344608887540967041384750641067958644922789510124571486014289389942055459330641848524245732654294899057794697274177172576221163413581509213511784889685785099321531681462947597737687317238151379962394618122848495085066323797542947529939119237999099205148562905291869454124887502887588800191651556745624747240222892920853693012946580362790668314610266633565045701524390601089885861781494836758596147727145108528627721242575863448163405836686544674120257600198470517291886783795517663436411173787037262292587119813855494147512262755266224651524844825475033764588937873319553443776611536686006427840887331981802561322502473781303971385452357479368619034204514787304674056899976760260002632038087830130436704699883936337389318119481280537523526230824827760574816280634971694551989781562087138845382046990691886801533783716187442216670619301363621540892065247936460033034390303802076822266758881941919817608051931219238202541735957105915514330558832201241879782969656740320383045952049073983578778104277767053122283880015872927160340147616581733154644533790441804238496550264548348553224163057336852361627646919484541500742844174986892910306753602458047520722488238091535133333240117579825803453663978028659532050937103900784126217829022264872960524561336239585756777619734421686156097203084049476268915443754274297651669402570463624686320217681839351045390779788763402239303719765699329131171835050876649925102153226843386939799573980844257463024126888705766198211618414645108483842366137889926162481577559261084553893673535225158142597310723764644725471552192142189120372067967850386856111864458421953161226535887422551520346328007482896237459915567042821660253946255273319868218511275726092625912720363634135806646604756643536499738813719964080652638283801188576070300737857161079446851637295259396848991419729994089487586160521197615671870723226747834341897704686720177279419986370897775864709131882870584511492870184180604256369461796303818111654512053019647939135813302417945290718212836399691737853285271346504639822429010475368163218146962779557574418898038750060900836128209630606540039539822156482427983605593728928995275344212947062374202967235464733252109864966518123389733778446833661249387363180902123081685880452612114272415425929153694314476122036034105432827575858794677549041917382834290585924298988919243880246733921430886312598591294090017876781559910807785456731192702715262107033809101023489618679102753735376074669587024144593636981773427683373073450816393000930440453085098717432982853477155164818998389884365284305387932713831509346952354116987647275615373132578485096357566457607916269008220454713235816474967422619791972327398777678804173092742860205186544671805714061702410437522962092799204568078742002344467832550236177362581995070600841377394020265423518446862018677333834795150917783685343693455576724253626028978776611327030791696683122822662740962987285356619669013718800227896122058597174893777892009807094624581760867627655303644210041950940524386571450298056209790664213434474928441184430278580505411777551629470014663654061481705247266349499451014433761578551864811610838087189510960246568411975839846368156443333760260778702835348253835107577557585081397212718758257475024936106862234115638266679592908967446780149369209593420261951911843116781468894640535631118424601543442954017793710549561877143541969238731591760051019931404809096866828683575830056630964812095690203293413877281606735249562690939434110854358266337739471683202918188253394887891755809914972638146965934517430445237635821023373693978113575163043863213760052945500976116491477479513199992558829055265271063255219134448696585272812070234294104039909356725934320362370215229869013099872979281712668122192813577462335692301100622044654533188130949997024557476661574727645781158992631261533833897230089008213467844731906356201420266285414313364584161495468721113159645374540393451759933833454407758353869833978787125985357608899037284774692537471411365544220540107034501838118613674431134658285286273249633483603521911063758434246420508831323035503584783825109231078857681183769165803125793863249645679081278348014729281829264478954266583142957188908276453163197311794780674386864345560353670192219546017068108453098564066646104669169404048581456468006486675369842121659081182287185474822219085369355642288532868322708355775066762832794147737185720561444621372294969181438028934806584155060684041916693790963290744381719443988235708310113465226600208306813744968290642354265033133375366188913372211088823844073742761616169012463944328131394160694253644069049588971099497693972388430015971656503778499408083662265255458496635192087694557591582697183697246509980541085029724004004447259011770247341850505189547633950084395659081694694420472721938749008921227440752939058543636518034073435639760773483195849725973494107607156925562574373828886262325164671456571433968270644717895598297763104827251534433001177776587055007149096690541827560346562937748775579609702788569454363165151014602988908370688925472637803522560878477676014434703127295203083062372289668648180330382109836806700322044562404480368965520386268516484387249240828275963455708721744387102353156153147968049450509463262180331670598214601154829781607783062724779416295323912390863100320714211624592380144471426739467756227940463992719378390711598840852407828993204719256544023157279637445718457346821124629930688915984714287121016054109971408131750599264049492545109782343534817605116975379283009224265469623113776686831554936214791378630220918426416255444434152999246657341553507697725368326469415061257961475618490847437561308969648333651214184554855507418911820590402459223362807594677680117916165934426865158240520565517380321782218478433076959982008988701404853413106126052567167637741945037204962584209759603508674898300885185674476054533541453419406052429058432053269384115002193556966867874297648043929028803944873193841392260939979955458112448038397746844044382518533781853397077813504135808535224762506836976766809399657173853064401536283664522489359892871862870810000222497478252433498706523849825812398494195012672519179754918558807227759682106626407808710384744368056198804042978921406166052660038923083042849259671880529756219980182047243454150859489961294181180269318963984842892405982117560876192157001884127626236006781549129821709022262395468268005213716450696466225205875945946100089053219307268867841556880729794345227180661533998824869368150687903917489693396125996089787956439971726569228426593412859018958761423591241018507059121059368074696291079762699705770459911465438799142070855550238364179846740340567655945413359659715216944673338994700948056738425896179522347931102063148441338974335805751679600016832796642835188585245360277517713620520713792149214475046437597575727868769390606082437340041498884874652929783676760377314659252328706816556396280611114413963389599355633762180547272518613845150839965978278733584572970023654184580939189419382911084354436536655452901445768059953984040817108155488502036317848387919487205894086611965353991065190537389354408765071415920582420963342762363767106748447860098008562636672987627078019621780452928422850567136245651101071152283718217885309536714904956084112521451328452395180604651686786927181039252296555042761099985407182643036789534457872743205438026070376324567550635157121706939174856118788685524893917616946113155502658734878080794533307181730116275007027482267146416685129055760576859685713904014149774818062008564482153449592737818298042001512352307150170611796648739362407584264042525888386386655416241714890695061851444635631501691947058334977855403849683431097194593452103150585559242307884206213702602248684244663140349896381048557307010073549785438031749318744688732102423212145134954676804668755120490482442775674911679337421660240673267689657414751281298808322413096456818953147470740308373976037434944417194746147905376495408820461106048595618689402819099492019483278507072515035301952615734344425745225837621315865290148289473638040296136567737934665072494888591919238971995596861904197168817514796664149376453529819035397975173565326515214814959152209753302966711845846901209034974662901610899159527053430583226731227530402205096168486634180998176558529296581507293279317289593718689024637437078546901606780842337643060134427869668840066273576115239714243702633082712559313650156853228133752273755895918861138628633131939091614580103173779787019722466179138473316036320421747680158222893293599025076706888720656810471105020786408514282664368886343294273161892040038921900351191208517130490601459787330734364446947924853447783491231720062781976842685182305760397583422238700797059531487634044915243979272147351670158241072628275335336422038002337704700487911357333517424630941924230201622957473960690065568102177203063457628130248040136436438377391407306467420968987486139344182048342743935146677597427018086924551873824701811215210281134451264624911027065654334628704196006639776738369338017810503884798664995369348005017004678928917601758681972750896124966809073453863978675290971594252775548598853314429122075450372503550593342311713641116264423545905735056667099115674845019671885215528004572343603674927964085561495021924223300894234108751988100578590291091910118478921742832336757436293616925108249020841241669997442686477247186845179686302156995873969735593662752288492153133379504485043752055487286320242037995003583241683904116281630240239626917092668891804759922199542814909307164414121730868803677256962367621527724454973860676243788776953141963031960368976166786194138178610936743648138993720487668990427094134010231802650327460839306482646072221353224685122229623847147265125499649477041994977521605338468114582358370440484121878529741988938310838485618850396684426514225783343085810086300188041439812765165799766751118155117135033411885580250954461736864274061036815779323553217994000261503702982643871330485008678572304436556968400341334662175316551401319548453206501134447829699701018918535443051347979657538667590936550905852397343633827220665616176758178765585535417318074016840690575983741484746525368902665914385291599725307712836318890393761536554849926748568181630273157106265117622532005512903960758088269720404470452862715400399820159738658715370731229500362484424064104094778143266989046209627843579982554894055206383097720646677132999446869057759514024699935870191041527111019292384750118116249034050228191728545812866455177688836459540001492014305694519155494006277354506638174148997134618572735455333812660655977494244767041099504294441173606832131062744962801854435846853265350861226954112874652435243009520030977469712999929287125763081270648568913504913254869752685148844391956818818560784536728743217481469329635523395717878643588190776377369772743245528338271247356639034271092984377939038619237905002504177574660708390249569240983937388102189483340332138708011331947338274402454785645230806171152317195833726330565993980839525772903677903360962022104473243018679564402820539614581138557837206787878396437973475711933638766064242960539193985303349071007432935143482659723803095612089581070922811264505289263855074808879666285069342016772744337403360789908104901925223828583456200466092097446064656868631019449545245081047569647252382661582270702336484987980877250060420114232751724655640795180222484223131659025282995971288209215392401500387333786100400087118823812855382523256986909890089029263607233469413112912425617450875320093736786650447831083788208760805691519900696637749628041347419890326441160877589279007045952923131512492537097637298031918003276853530769451905303582033847252163490396805601802800235902626907188787495274630605756346224019555178036635210825497451510534127547059794982886075263435414441845505750572993693589892348326782509478122539723327657073051388568558194823299509344605747023522172130722096120769773479983219509495194398527880825598157796534153958408705904423215669688137202661350286063015179882666715195181299571668679862162238318879843935307391851966044540061298259965003436541193352297584924296022533776373558134699432516537283423814253475713316518521625818679826820827808280220115934909132067511061426540360285638879833174954638951649810875579783807673789738418407929312767342744587790842816603996554771864003573640530142504077513225822246752956624664987592826485416944623616619488261358519005460579180126618001285259974165206972937591142873865722342748868879758565997290549913718938911332508783563819264573335133301049127708173186961780515691566038284665054087726684723264118863835967600640404798883474099840330499157407810796310740909909279906280822300005307800124495608095830023182190134572617831791445926989665045501504766723978767772612297369269491447894489959216177213935896807116708887221193092575551870558621103457193786625057270636467680050004983199266448475005256168952949766915849279180697419670019316409923666563831906125637867473636118948092613302558982977725252843859974508311143594988759309404404493664633396440404145674633206696631802317206461506278278339916116285862368887426982666755012626428026664846414390801920158615109642348527962125568798391226893507780369223758097191910022973943346429130192377424652136405632979459251573026834490072135526298732277387602825504503577212137347729461316451837580937617698372224994284181144222203899344161504625415143641941946197313262869588349491442014602437966672094607922775202177936013763538020849066443494482512922778850014588249417356300019347341241205559169902219850746910073155243161653361800473508266577125302612983663178353684678860308454970632570653778419323265721373513662728934619731656299174038019830023456161876332115708330373931376753541793000644721312350380794790689507414194900718535168905649337203336789388051500445836227962736373417021016744514613867953416461964201094194287098238757807885884672620030047541209528959098642416635730358307982500072500656642197807633600767374379502757190177233578813560993534431439085331142266227421975299317068134421070291441582377341758490815131164703420018183223684247938675417137692408508825176688613168699762244347744634556943853226930955699149484730324903215219065241564233385778002308661199540829607920927603035588425660728777471980556672890115145829464785855442800744376073576375795955148679688557929947490757541402943699025681260575463992444769908933453373708292995303179197295585168464308922079103878112504213804823664918336536964885435641108582434414681964516717791589033474090291394547853439559377650016458188136484090442073079737643659763546743372966645172826061204199564948012497498467708915535758345290124611055863974471944346013370622652488347682439105215366548815231571354813170147284130487619679418799952258575264580428117229030243377076047981669911405563647739090431104301350937540167774016318117886990933419964237876112509862699686945756577646874288949646866439337769019494164530855731828919562241147598286265513316298924608993247367146157410683850276854423893514132805045737367743700641348391219948756118555620467370310161761571218174240806924586911922536422044121566846880944598272042355620364066224146088564799058048322430827321900362844084203810441674148706224870879223517574642236291680039475081861477355591096457272985110523968893611460259435528154894925316948368352200064812889519403122982720454479724949969090905347100576360003592615341935538255025499726063090169202038023755420396745588140849668882196817148257144239474801744305850078500742428923182449463096623891870562144180471932236586987016424616389539703389365802638152793093415553658122170059051497572668033440570083654214257400348573161730504154627729036712767985329480849659407635138788548172188733985960919768332782138333917368794100698784125940170586162054658173566075243637626356641919948285024632289584631732315743625851169962283152264344476841439719721085855114483479906324294685540496085558531801492766796800198617755640991873620973047725815488271488482156545835783486897673871327774265589859874663525452082861596539206578650236286538291056865455802678303588789559318943489211399060397451543344460302811239751619223117455203879105906298281161963453102010433139152842571666308309077517969422225617401400741591026623389573950395114585469751234525077899422605772828882397826079897653192830812780003161343035740398073271439815378375180682436279701584635053671925989927646084937793527133739648541176812969484920295435673800046662190205191683122276478709639867419389177237956891111401807610776183789969207626292658667041541324542916406756958316920701803647367904324067649580782445600471604428638967409696369162195870262002910397305890716916912498604443978773322609360993880752167643898196516877133429373645298243958992096285033852833032640158383931507450397849307898370093826387004738141620184663977832982643817958948179021558515505821955513512796810822528326641906887044333990346215933676862271664526395163235809409822905754469989588970253624481246531389388111062514364250561904189817961335125645401768965080722910290473958997447663787014887962882409579435605665409979522340734958274024845239091312286876825148018024518193101283566664341818826236819146303453690163771045485539388663365900067786123434315677659598694065403238922438891621552397213332513888868380516640966343017598987208194941300935805149617449077152126548076898597086969010820090353942870246760080029389509936319318918412163067069180415091098980931840997941437045100207377943387483086439429984336245191046969298780765668802838452425448080482263744515085442320817945222817532342433556171704248774547825549485710017641079445013859086893901121800399128056177897935061926006481381817979074759293263008445524755065542279468794621536514905660986107827816680665181555813063390682678696911705383581507519226597221184721688797805063897518950232940438944863079746356732763747615898420126239134781024216651365758321723914748551622224573075926510900676902763791846376834796435367321138181820569366394364741981082054277668323838878812695618665240211248505272507600105152670154468038218306541990010806968398224043855986476527282007742055524252920375722125087889116846499306985744948954076022021657491972030663795853700521057861289661869513925459677255439456208263642771147381462053996559759206878808153397405826567156285832889845469578447450515933596757237285310954843067071279852760080821316777581287514328173382257606844102745531521230259407607498799964074622215699956113442883971213256409146370525717214497739693427415076017877508017042978534178494971094425480391124370981098279016796926315273150811067228158599743224677612458813552108423599326636615431504860269145674405593071649130376525679800959072422695450800329288143392865887085290573811165158236740242667971520703429969156859575479288375342730485862362279945732347276997258246784649325179035068540450114901539919299225525993689737454889903928877091447818427950760153610207702307881635450347764901921401687858854522788624297296181881075692051485537293211854362869099944014494732170861680948198569238273177799253252241256326908652300179360209878108954359529992422693565121354482651945986871322072560292187722940430321306071726862299619147537833458881331502284673979739831928469690876587510895194884567958373876786609490887587669675319634713568723522073837149497719000807536656799649101069346517683217259031336272956182942085936711630579319524964473023322815767015891475310992585900510051048594063239726625576519801857971718712476373247742979201611953582060626047888505179779333273703384443630131314158688310497058675761849168503082475722940647796815784398199805779753418062468497669543865712762147817649298439109668613848714461929912313977098101013597137918488515134935221050270776931171104470529623626579747002036423381410615555096697123349941016458928746982346667705501218151493832305729779353194017693316290554705847652276149115398638461794885828106646970799839017317501010130610407103842148353750670609534485908284172854420991953698396475969381787587984898833546173653377138065851454022729146909869805747204814258191235892072244394373341082026433645605320395561830439614605509224112886742283568738726269751393936369707701048150934194510867968733061831648139343042692552722235371813390123366125083719609245970009311495336491312205062055468536106684849173796890161581975718218233999223710448564126205109551171820133099369774296227689326204483930721802803259615770608038651043504511241501201939093762770626288712897233667489247186551474870931663496845471648018501120425789097216094176133137870837170247129919129467855954371084078798174870146849258955848489725879641860526677058519534755459223607225107567287542952898984466429435118062835006150156216129838724106048178427812735836210272556780648544921719988920842924020702612074680142666837375303195222341269762585435583331748617339464120348596263804893023786319550698164085412638572989704043760532005990490804652115688619175164968462903179187378511909839157799999972095909405118331767861337040355190030774102777813598094382816308986031841812694395460196531832331697252600518900246936160000707479104585377928698080637402494272918988561048320179465965831357780276809494401362547427844946614363740225393808533373315617721158227723301479450200966026991120270227954177451240615660332030888502571436806669072372972219313978985487947775047717566835653563297628920023066839059920745921866246428763489132514190368551947306223501377282011646909985706883435974383749910793181818159539513670570739585610442365754493774505128797481680665011433413075400890712745676847736439137014679187157982784189352762819543181925137106432421306354850507970373070288160732157518991048953801496829563570967888686538836017418187105373140016084850959913485991203501715194519985365422293601423075931808840826185958635520059450409014635394445336231194541492217603027093233614522381373946583334647077184004781110398945787880609470566148437064746764632489132283261925734407233084349531071579915674959640361699815099000332885113783622882281363730776710135787212464040345132074942681272245504739415609062999985683326577140048119220341519317491861844087276253534483485335121586418399514202062957726618011844693254874672984600905513419711797659426432476082080877907220989148890545967121846098884630899930899359477922387500855300683297060010214014628151015497314258204447913839516122105646084030245028058625400025490945730438842986554248542085729732111494858273895124746637594142245568923384843376668945903152958661377242177484044511784307837029570568913389706319643164361081208802378804387787385221165885856682711623118804439870441045354931556930441478879231434252005093914237198119839998870155242934667854650984448862279187420092786297739467066484380246877256471144521769370471682300723176773335733881663839747685737569354006468142694980588540931895282635067303021191104929228381711231636114461180854878899405833652480523317059894185494486917707592383091072638760910717284032717367044058203943996428643593547249502860265899806486583688260035284417253343086453797167367300311481116688446621138797402979393635279645038665202598329064905668649550421894084237961596727138706243813961665259561183248206048482869607788697502779267197186821650448054440122988049771502243280762331343006157458316954561825515648479923171483172324302051903224225838276873996894459053676308096632996793289299843958397019439470587130145186251047424847449732888923364282292223248675993247417226468478550013561301651191710925481663791515722793742221942147530513760398820264500901783592326366259836473482446291411110492870070695196871222397749857344352484130216227087313595613712611484318236524396646938257723138179132593003466556412649667909109549379729116366006235751607119640881258355461076806704500275705832309305744545425654666154882927671265140461493925148090159789024752646106919057653038799597364945644578834252710615490296666934737965581160023178499054665345330428175652951034010755578697015142279229287874186226192795019382358476326660684718047631493889990207362213727013622824902651573347488651396265371412334690664082762948213882781656285667223988545399963639165250715780618931915304566039206654275933742500383606689469659289875885915570719188802908329001219715739070673392938514704011521333143983035486489980011887486865266450685470887141401499835113476521139139967792429741903874254324671314826652658803709072457749251132326192848786158273277279718945305772081042892852269256342599337731630330091983244036415104173258333123233739166453642792517581076421725351299533799548703579877230468812998127317512584194750858173519376590284739125777704047598128479646687124804585513011065219899855765818311374435371284659139209226025758070397584356983583501066085097406605024084260413046378858219780169995947916338938459314231492567826556283330547979261461299805731091986736773613561445291375303057988302703233626341505447569928880787819860433091996384471662323107936577344534278944999645660068799119106143536902857690764775859368387403602933843152464566911939568430863196612334767450641800646823581541962235486771619981087424249993181674133722750983382274117467348984856720542055221448536740454661827648176583155038374879758496070474126443286748517345608403767179857913637360123268857569721132897973108580934634263299032795269141824713265863050977639035667801056398287967985261382384055570622828461382067348523282502600043083109632237648497754720033627816308850093655838698105113638919215214649219785195337261794221053654675852645054820356597551016787359592549273619515583755919193184987247122484280287114285037524855955620709234214860340496307895838926742856266614437751705368387132087055704439046834480404343119176091765105204945273556548975578873399264203775417669486582677763246171208247324302238151557277312783141671280657731735327069205371301143506765977299279768276990635692517820603516056174319787289357302777269443203486375939348308874546702721888464057540465545387476073045821410631929505595560547066034459365451536823453245237059563558480426428514405377879298362490370358850398761950158446162549032270666366866320048771626323643746138666033823751729164137899399264219226378626348691443291959027240055283216650392394440710435681505453703621615609764199423903101123066308564913468564935089881441664992235598427008323844749029039893577509384664130354807915591073240634791708658948525670637478391402238435386766897778337028710150112342648094284676559991111572102835691363838411215738088193009421611090120254145050135323748301454118877209560689688893640483707124449382647349432191249176212001700383168806020887302267533351131737675123442894737629354063051989955163806595590352225155982023934487374962562805478332721808698299025634822866349580629701624086893606468180418255058937828685605197807040874820377970905747795857759862767958725926831047033529697237448488581488818449131989190654114048435513898984569928889962576873776038182863595225160418590146238873241881498023382981584079194405479291222540053555540688746088618983759948950498812490095040702680450453545837623118773846188680993079082220174564344558708105003559150237567164121143694362826494413793179857070315612283747576786767834910139170207047766771346450233803761655577455179736193409925246472617491340068593148984345247056330301638846900992827463520195413126128220969480328958726159467945239579979262950533559891809457502473947335964714480985562816443575955254969206895654700088252096557819004346325864938032727968465639503170357388200684942539882350950364575875504325016875852500767686448729136135624550009429863524494063852459364948268710287628891792760338650520825680473570817209365312657488838180847599440833686277335554558063726893546257786575343536159587262962564937860624123617670567770788976990591829891996674735590846604040142075335745398650845558000504147080351144025384892939157025005601235984579806393423712503029917129473099790724090592961806723677493702538180765110434256979384729077899675645803786035651150588894911146318461984089244620764724098022928066000183190785727905008184935801222078295877495423428094306008459687143776049298736616235355707117301974244524896586438245096316242885606938195215424331371956676040389531659461644954172889171218274720410124942602854971933031181947362890677762666690182504857160442222922842637196903580394489194901989079936371973525690155401618620534241142353863779577643453456478236343213068489365316119948660998808955347486692287638517479605549394649915395801305731100653362635088935827345028563460801257808919547609365476110605295243896611592571140370723576556866979413610616279804741018881293709781950903037906715544417279500569737330993012999716954127801663421243570810099103540378091308470796907711883400063447325702430050183926147434476074530395556239649117558305389738954898806198305834640181472323094906050157014113283614491974997910999947058992087718113048562321135076431411799510422788094646551670018443930176080993645450619604180355665349596288098275697867567864569923714415820154068812657855673087083166016903994794932724292203965238845902782161342917362445438645316053018401967640935650414750839615775454243879246039634715523156964320131369282113506795922274663920176174979247564837968627646112750528599219039555995055848621371653888090781779805025908068553891628863552815526982466839839839027783500658549909466491712820687430748000205722506162482085872453298604767128073942609889026680286884775472403314476521571566987485260539492569288828881876786173924761104475631972777662267134698150634551676230216860635035028819826207352248053412886651296736612758825926371926540279790754352736181273919673160325906061220227295523723918917073658726521026026413987332806576653058748451558138577912845506754179141437146834436435530599626345900506245061396821070165133623000511052336761384168493503668652504043166573289490147995128338746396429572123596917671133654603854159755955679573995422473602484249659727891457671863780071599688892685844554995830634914202042784019765882600308624260563586016879821622579134216181200987611538541512284060993366629191820043032981726186144613649245782647788543439743378343973107614415272583424630883183533431342950591011667675394303582235919573256655577297113529424563032255515310378781411131819417082143157825729231073881504442295247389580004445933935633395381694026124095382348897298020086720742346086267016145679134290457904450415790350108502840353322883116589758169281833155810637776674816609578134950608145728274175523435208779610789944362299362034235816832548539489438858947685653478612371757044245095736878297667850904533578610994397258785092134491613742235998324458561785682931209704397965823945351232105831511604856652111475920711695901111129220317079710629014006065677294079243193045943243371716276208461677706585069152409853647804860256295909791845420007459046373043272654775644881658351489880743083937793197837937096085337186488137373054323054724127752205923547644628637925698828531260843236329596326652500935121861000540950307732416838549447138294777793247631955003201924196202416963961972623269542438803438464244676173737077350272449303622629873085539837941176073715733886005711446291758063493801040916979524992706071834624340210925740786432346738561281853373320620315515656627125801298538180261179193098297904097418221680537892246212936604271221408662226736012632885282363334579914091902876163710013019663578257639616407360664131541378920782394722665765948453947180582040490722454507652546199444377580829470167271503619813365837019735544373661071046399257665219769883325207610494813171657065067048372257718439577189095662488915586225500304093808993788571360054465774986739649063381625127222381305253237715584478187094653796604275598336261592483390628589526174493636799084366011830660936058498342042549509073495657504001053628123048608771546896088829839436942619722137190768388359881768231662797823625727309610946905156905938123644435732414104923580764808027011356460480969749457769211289410791487947281647344558547788589890823236625550582187039604795296678948987016475242149101455956899289686864398756818013929467096657765647888189975958963784865918506028779201018910979559008162599660531562758163717457662004866837944659688695403261932176655611628165489457699513158967489636344961145342661424657575884020859460830075488363387670852392563508276159820636782309230966725582520135925370442500704505795325956604954830487891844861513956239936870139918285683151556005570634424474655139239925302141316751933700137897934788066821106305016017381664405161623806468208939718059635870025658467196951085174437284468309356463115957805141007497294592963289888575954389364777297695264865475415356941395273684407301303220680007292777002994830469416941289312187550816632764592533980885265831572288740695854346050077103919806421130744002795746262836739070934841749357678975359567385321464811599292148604391798415115441880610440474327725146694025424158249348784268110673507967855664206755468735402266414497628081817777478445793463728504000961960254101721856628064934863979752232909848741890820752034414808593242289452234199686028438088188165377654422534532919320588558214981294224573842710076600199382326180295141437039833644730968954563838611448464952273545219058457367357836336074409411110269371147049536369997383398347799660047977755122174452263089455706482351684328538577885851386329706563963397344187339941677894768526345181979983814566752378250500709231364145964018223878113079458424867721503005797647589448881532452275145600873616570909095062622087916149470231904142183365418669793876972036722557120635933155392077107775617516180383314330811150637944030450472310362594632245200235082746325986862791714048609179271015493484401635343868987919189898988939293104741522090486434140424085525617442101454124184788728500574898583411141321345498023479008786683663847090087465390016711994836047464630441884234247074794637404695043330326872844535903492919357039609604116686561893624826901362045527780741862747703920741612922503046753299627153586900147794458362330227318210126158885482440133311366916096778528649198026217361910728723797792180686052892545203890895346215757881275064932747337553711557801068044890706588280335032798956644914682127516891757279622201186176937523672800108675485372085969802408273819905233249337222028314945215921994957676121846096211919300242923231339008341946686105415181052444742470977525668378985497819382154024419005936681728427680701431744864185772568219302818441436203753589726921284220424464978381123528342698067259425325641312179075898039990220900723335292761105319416338697126745942891067213892270755481994127685597287236939362781785167837291496637961552688581423741903158977758626382640464929208158906855861966130253599043750864756258226666742178843251800220158356009659898105001791067915037711410796243028099802595711613116043195495905849050151851912056976425289102600880889713253229850684825415810151530280835525646332033774881090807723844214640545591319331210372778504892694984304007317227137448073296841655082488205234598259046320777742282935794675424368774581018947488210653001048618659080360879806194099544131992093680359139186283501173726362200817132614324096129778282641620083288990037489457359391717268195908802095973206858300060112850114590849725367954772219739833588911469089049919355004057146115524338114529903728774959077248631011024091051656322494203123580625063090419340516335422180620323892395865754205046726660406528682849635614936001050211674409306604189939935702177525962756143763183694684221125622584382667403907396861841049653674402748049521693290766982207456173618375137199774171349268337067571378049276666317117206658809013231333654246085725787830132112682448387640734984026042745168497791655825718170380167654433492740728276535163442726620396048676953854815260749345026981693509023241141521914563715413275427974639774679328925110457316872267112492515067441925051950139458465714353203060044690720235803841174623215697843029968808014090300271923554997449892610541976841905181866746563525174301012984087791223359689979119747627540354242832359959483821467441365130216977741499831742519933033144650105999087473457235896828029647362061689867376402404939164249786586667264926827658341180053964783456787607462982347069428142634812114502610935481725199904109574138065771711933518242057016301188490033216098159382948021621372020358162762210517344429722600684539948259562673078893775132882071880368034709266265335488496269140622880849848298165027248552071406545815212398875421132534501318471159756418103191779295625660888447771764943246646809864895087816888772700216523336433736282454748823738612345745024772045447616961199788570780366380627810130317451571032868253568026730514164492525433849330749674033302674699114540124611370203002802072025030822282121578299419868634029831046593959998047830128869348237258847279047444207589565645062924091909626364192355658837041683349502503478925077670345921603583013735607395826143493287769763953535831692536818907505237862590693374782644480875138537259617691856736163697329703129963785016629970171331085274473409219587878292364844807476777495306760363877419508456324416002640530062181293581556896314246654420216617737331118963463995994970775151852451814841224763526304848932132155289943777226163638591030446241496508790254278355992688995272887306276370986640237323122499837864080973380722079996036119270610502617965118496237345009591424734754739071727921068653864888963904802725319837086949210387111416235723640055127863047049454757951534019906872238223390076994738170967134911639530515225581672669611122017708712678001404703030291387314547181977621625927531529945289671439035088894894630633055076060898159153602288664315974208517880905884973775388983120306752279692926834987695527748917437240957066461568799813696100983193854797194364903399059178730125763001421493326521757738855448210157246610716446091768602197999997619368150336586542378181001615102796152345783180702231269677557788994861241658791053224291123805026550960202607404721823094051217675737434957754548572590424109615151074768958057868248934630177270504981990866741796031134272232525199539342990002715559824026749435148071158055551489736807007871470936299864702164304230301528351132286695470339889745755336898717133405714675896457794281350074688740055030718714270217492277940582809671652410733134221499520541890045144896794737177904939053570578411988420274486061876679520698677852672935762214568810228679586593457574845128828210666440436579958720113544618553209838328744632865334734548610751360214481407041274508430372777885751933156877446727319989966152353139616407979718100985641460689536229918028751522232301902574829127949666055150590365371774803352538996598661502015769613789696743092730116899483410547899466280063540492777735137335990792443684226519589768781223082553103726497050853963017525248203335004362935677461468498186772843394344881211650227860278851625450688870005321629943290207708284521254525450760199818218293777262589825061605456391923048582493855279667551080067387752903773589316395272685152435933116258614596361960277877702299055643417022095032644418055654841284542266974169898275441277056328433274390272891774174357345677512655877062154289876390828806667252980220513298001446196195598069673849951362151705898939917749417262575696041687272882423743889519576464386954213184360390336573125690032335633640808934280672041911710953082644416233469800300847691576541559611305387246071817050241556694668898340818469777766030702409085011259550223351819222034563855282590399139161397141893666938246629389818942665324321408878905597012832124670656699619347216288304441977930767248584426969803042561526496061777053212687272430253971907718931970876936021785911706566285644969699998781378514328569546811217213040113904731512973428367295892064359013358009924036333777035091571811009466531131347560973284725844780341173531083398827071254348721485040162093815070646672601892548765774342301962761981903771282628852434127205081088626066419785005073268527237753227016975548385817293315821142398409625846593220851402709267020049504485200909861387739216885781131771992120110124048859354651650536120525456823447090395554034247742325435643439784662065624229556365286367232101334672900346431974242065264558742257399474533222163963839643330277935033352101818151524905185350270501912172905617909596309063578080808956252581992393153189174309309600875675672101529464569614785683150200321425120510162138238489362365461149159231892927734461575168720507388938762365898991171413002126484089218841769358891408237007144139216832084711275913621378805791685203325736430503943964708821753884413909583987988834231659578197904302483627021654183741345874929854710849427865625372925590051955833396218933403595344608455291233681377558888750238696211763879078317048793429433901727367684116099435749792347549261536251679320973889170257509971904662352316755248073531836948180744831791519386947134085357004143805386248616231926643932806674491954529383447997303568834123053843804129043073539710321263747336984286528624584625092940326075577712538513937107078353207757994640595512517015044676476286762609336955548178672778697084481724787965329133276541195704553299810080141855155341512971001206831096131353663613356089895672659387284700534691268310277486569832611244874762706833862319504519506744451055514410464799776303070425842709216359565253250814619742661842891495963094785731029689534048108873454957013966835301461591622125193439213038409064952699741961309369038346042591348963600770808761545731091260270962817431332378770801951088832969674078315029431755183427289761365866530159542486273363002688133899328263515293101072617733543624904238782510726329478320752051644105237224224415461903293906754262070781201064729862767732112076782975976288755452311046161788266154292473658996906012594368868332270223092120278402326650669286611216620834864545451330222075196297658575857154709139709883992323089752623823749453537404271049213704829608362404982156022838525706667850684381132494535724665382554784934078171716194199501137688657949791667769350265857826641189122600982528186347255118540262818363351743623473514405833034119454870285781771449796805414480195396089152277636513699728774325389178256400436299768535349831053415803541472214660036381835660325976756767348402312826365323111410062596473319650687471975213482385979592210607233377376381704730221503883330427044007578849896306626013489642667175073116064694072507629723660334864710665449802428845543620516514271310635996775276901466307668235339905266672196799574956098947680783475333090371250369259951233394778466159872809306841694894617989475826696104410671536129242040072076849791711860805226532540907976437471884350378536655262863679591390427375521873399897634742893820127657737384455447291075204740040171466218091794359168265385543097040978476909524453194103310351720781341803925533619673533305792695545625719032781610710638442072286316705407902649520154580965697157617586932865006599426472631261971056437928001780246551862073562661483678221972873783642330774963373874171733694777992722507153921242914013955699402308457846974801253330371817072952474511356868009458843816438663246444231414922189943613825918110630595968590537961126562417339131359600976184726228989975349773657244416384240529958025273021171808849157302416259750511275740668422914463392081492240760253796116405605480075274565870984161846570852738729831467010416652367195960469677512767006870280479447370885408508596196689239185436806127738501050523527911183994712940390380313135846267743639148314471883609062978032719494297274769324294105314461940307209446692615218720198252066104159077361086777990176385256511155999756284671539082443428349192634133951806172508219399874948947449863075689940536392511679629990153043499633451097543639384854053340526015241810307603807996821820981291157513732205032682725924472950340510645238201854858310518801512561014388512631554821081739121378208951414409417159132974379027478416902899350399934455285325587471635860276408280852793891595989424168468698394097804519847206775674400741057570001622472261642004611580109436972053152913750923914976214912313210385249789800941725393599399797306037894898672136538767050614380574542903663687526495531344039824254662131334636448813963797925850067342407497448216689990986771942422021173864007611429116766241705262798505456580302816731620185129122767865043578201241931959693222444790232156041370234075756735128390062822520777002083507876150523832153226618827235879945478682524429684378496058851466440339830692643180646722162575057921807173251795668086989259058579835749053996111659692997691224504508985149079522137831001600693926389874185379917701874605768770263659257104616565997630421493373622131817074273423630847789185776654675298844022582941877577413548385399740134131124091599609363768878887668315007939673881486309245643725227454608387141714218351262228492576395278920526778219070740206177870545164059275487276981301543755027496465246832784575625120094026097785189668925553663549220774692014159589320685598484198875020581826326451896620901216074903108326065251301829982721764921654020464421263411010824732299565042678221222274588193095446173968383314551355752919818150174081954732725103362729655807445141661969562939748672347253244764698182255720313364274550257734665079919544735795154598886458296594888324750194985728370909205401303085142915204565467437398467322343783820668695179155063433967019869937691458002835871497432400010019162126557858314373292288190675740155604364986599927647101734775122823185255217675460584502836680548465519755245183860736309151280020005259016928275106125192528978763747057683584286474869078479151570941771218641091089076409415092456305556158600950485503329495231133073561304698075677214670299659200967645053064724066802379510077622203551324255475783758794219265555373540324005112436748335861093302333287900268809997993782505753426328697848371914571090337781959038004487627324932357594048208574657727077522130078608695640776692664518821576809189156340713991275635593646870696688566296333535383981254632436055014033823983542979822201476031540289099074458229545905952189580061460368269918544291976773324899359807133130558065650444636010778019443926232685799864041808439132907674432785512730066740313553842250746927313964532115932360886453906764610471474410878300754377866424001709846991944131637928663665656107262786076912020766456080859914145431017140794110383566313401778269399796422843481307670035026622863688782394361157696263585904541424296973760857269045822261752347019555437101796663141700694386861383727644406481645991491856449264047439466587950708640112218738341940503086005145881070587741561579835815871545091906714011374641200489521918275879867286702191923342878932319765751512477368037235943866047460131555958809532166251882149458279919029663260508670011232471850572817490120161480710929770448826668493998026285588459946371866396182802548123838020797791667210333382066165116998623175561225525201428289472442417044884734166192869717714820740781172502910758567060766357769069768739704550537295590967232983284664677995718876444506375311300292609737985568092230578312176027025497966758215147124495474022241729511688897198963744029950054379142025090653238770148698292676494843751709909735912666242073650296495011174614669941902629419346910854609279368549923365170712607987442630889720563269547884094086887477264180990970991656789684483917411565346049024899067692303046652958017890030152240584247292207899227876824970428286332313808726913058739586418846407334643400853575790050199404661760477418923134218968172203278623372496611806664122029194606948436943079888982150357031501262926733749854486096101638272666928875118942683661059434912455037726906391731114329652196836970615587127692687568120771751719883143225569941081459834931180624495207049946867079771953442702138058608638226234502732618754236966148804908765095366205546708382601889964527231996613608740337552574210322234327687783491011693164745204085578759326100586681739253727962845066147752562436442882002862850835546139031502830893820383874027577685772992944043922150035529208460347652019379738962699252196921495336453137025729043120881926929240265085233823021530054838647424787051062115863317109933032137648046601329723768604560013724117908386152055028191880057775369203136838056940614938578902616514040923360761948857529482715924054103933025739005975737973166031027267845771558778873188043847981332716927867656004670984872840675802087405585817853608786018311307342055905945130232425671353074160177304394254944486573211217564694801893696597303850979122823772113940913111368883727223891381880324540565217920817597641220419878798576339682996779490147390017909727953731541018929913637578798138655199282890381672543077672893897307118074645186305471616095819154896633467272475268773046508573457901080905397630829134010959422812556734481911325751417801937094633724631421475608350021058946638421771067709379504681395523329772778917883741963236877170351127787660138563083733095595751677774444569331627893471482987407502719837822183575831583221266736973332237369668735746221296571640742752169775504088977607082590071262677306929964528280733088154868235292503186973493370423359752814906426809504936062104459438299466523738742265190520171941755029814331187095866116214451603058917311866484718305401095582545304319706238224230504722023859710573765060643443437454749664109754038660108375109203064468110072660717360060097547755351046001062051280377243379516952875982283627131173507133012290553231434558648620869198694114409742541786050952704435728225918425386506432824065755289490697023315883911324128891587447354289296386512780909067322458667880084498240889262878458772296855296471954698437738404324027113605142141466802292203172999989278685720293238716454989597909595529616048078295436630872342244196921815013950118106514254679348272569565268826756514201369904108291669349402359368523261188130035381819228189090841141845766187604048990712613092305099759517739299169880033707534111444143045894762840957811859211516645823362680958758507908951315307986706657456483380102866207096295351623411339937034766385995863496496245043030805076994543521098422023703700676484274818369518624800196766179296794760796516205127680557723626277779684659081499499180536639800938199568134151502738735942093380924196082625828268423774180992552573750555152103652883661322040170400850527471191756024453368311935793526331241744169684342563112663301982638260504999360171747470553714733422932244930726959907619226356136784959356407473082830743669430897276680979744396801549284772828035194284485846120146095495220227315883937726611538032274543129681882698517577370027952785935010983405143423431483379233629456094401284494720337857861625128630699414104124174656694323173146074046370062272847241765218492703182281022539980954510685634873742933326142749144627381553597309340881701714512490634672138431901480376781830249349188881993717542852679940505981610676198971443751451893114269918442246588987776265586690212317360800415227248812131474299468313191049957608737198879238868715811305215431475446705003862336775123498474495422369038138948283259580980145578424347670238626421722476824439385557288905795905468910098620684611918853325067335377692340710313433647971389427818527263435802824792211770309190052391940401086311246432848689520053608592121213064018353244846564196783553742400147739032814068188977623642279882801522532338997610941572325174346053402537778234574957268202959847522625828410699310904391612188552612067436572653858775324762580217478405329592504964779664721426620380318360777515227259750577703032213816942531598104809941142570648425286540341388283980091329827803132894152736086484706387704187251499125098132782267531815069616205946557354369150754816565171681095730420123870645507502020475156308982198179715771152841047556294193553970083894269670510880764861289340545217918599122221422915598773232250706447052715230211519557784247016236183330998835585100226909766107734696063021867851529112736598139055743959802913505589612471633703010388238286181473351342085553227090716378947568242451336722737237869804740839406673824789798134463064969700943344402814857055232672122709038769447174982322317923196114496806593041679227685581154768755714993667472236603882569394731006176693523652969603518642831499784518699026724064438617076927479647539289527106237406029105919974546867474230843288617444361303385432564369111620194203853897301047291893606014550733494995812211272033773315986232275628558061297273139440902811490785119991545207785264895640530047485711621631810249422382808689260367714524120776547801025865585639940112480365275939133481260083369888590615452745094740213795362804774448869556277357579480794605086033878539270217864318187871812448682711274365411608240481292845967045254040197056045758175543209967375931684912814563097046267026520296966234561358531148539118382341386564863840829628484108617180083758246787632298978011538780283722981255785048350580042031328848725822446706478947961023511226320697096289088595768325876340258730504568337949307257230006818094055470940630312792103015658777000102676154672930943581261059190701400952244593072194723599484990255968952296856726226249304338570279999098024554091419850072383298707428267128525415636283609409717979148172302230951435166827015669497774203577277562320413954797632926296069903846818098262987440318985124033971124909195942049451411016972621911274050764617054840413720052982442995062056357200675964918786457175913942415781906271416774514147370873861952131196974264550674181385417920877105672102785451306118759696865877294889236043796748367838595634581922491382190034283837895922264093723303577814563899951764221288295830147116551381434084717846128078885124073975011384003097261796410592853540026158527475599484107639236740413250948128326687685681390665057565980352094307868049922273725006498491834168716162192598972525503795699886952825363497293314231383330442965275434575162031846448059097692973936801517311743814332492071903166966831907245366836500777485645256565466704701544705718171603517234903014448607666726419028534464620277723258190377556554455693222047625527606682797241457763274476835687755512317795834600866132665105953055882893170749431955036601968449418367044511624654215039452482833452865316269612035362410065814662813179347553256704967846097931707860867876015727469315667091167675696854125724391753035513769277860841284631515085529598221234060615889818021941677171912751834058714892322483721713989474872302994902205792744967941344734004954201738991286111364587579193967132258474840040836206686152173227434364206625163207431926526111407398693730025501026799791014055912117539340135200042105332616604438936375918434366451290341297720671705783979452169126585318580628880965595798603520022952390013086543079086732796945503644574452211132887023420777000700925079747132269633961095256648384210119451888695374090070927355120606585012003020173872645784693340151922694515165072002884281541565438509250301623580326013980215340554535918876772390049396883187456909736826368051305064689242112647383558125547560769319884988446220443036732087898456711392440594250237007710727622658858908278022670578908260759981732700731773266552791536603032118482352372155832082447885114526712967498813151515986600725150774728320639505777054707521331904120017190391974348041568948854180936700812747425374805223615257593681091559070755488271063782653943019605418340384078960355203341838216314566954052009973420323613083237155349403686274951478950615347994184183773624181454149208438554165777570226005114613864775777046463790956536677650484385891013241376063803253619938752742056112579078597763238176973537696460910951557609440764855719619639792679948066906716819734184467544153773082015734662518719710404120159520374411436894440207812779679818980484535591315278604721364931008092521229955034420370156511484115754046052235364350389254622553048756166799228529728932266757300250836061887401866144074215037291587586463978693887068004646589142836651146074015348903544563006006695601060541122433654187211656108991337046216213551733599261655815462320612257270161856586394610961801363649720063969472589532402734097115985479235164319824870766919268845001916123775044644080739446139109721952860943987414863866832462403766634717392739590859786338422941548121092005411824928002670517056071842578257248914356151495711823617711709621448550521377607645278835252823008861545850290013059616706539434970292888361931941649123835908862841918597561272368785503949886149314559973949382116888599735712271487839372488324449755369743683024606022943469458865333394378782817990112465367171277950000935312006939289818943848655336227887650866074894180892179303698108120231333807218668487525556248443886471311968693980321223231057898346838688072913952468193198746480272214855282441306290957613919788235247513021613422402391261630359297966760483088522706698197373824749162601011203417990105325865201093651986633409933914281514013784951024388373090586322275447879898481574264118805808320038811118786827163940678944898498673715945984634227838578513021585677812843689426355524330180945369465512843711976447504688776103768112392759052006706156024657850363792472755758322402014461466904926891781908888100489632415092119631518845340834559722591222474562226512316035155940833652458793841092396532475036595180915634997493827115854592342744619669413038853565942681244196472609255979520527775670282175965907856086034514964663595917573009438608724943561184348345528847866144505205034373219773794195781056630562014670145862020760292036965025983854696804078442466505627459839133921491390141905451478756052904846293947907735649767389564728518120601527226910734582955180793461370476148764139445535443884212730008147200144823535984340337603078337817885412385766118157991603365563012721646244184206729783699427219003780815462524830208916428231033846699130643495029339869279594015219898885417977673517318059011634053489719242431010736372614552697714195368928141432290159264297566750623199962532343796744637317764260969970612308364473946518861254297456969753768208816064446470951206898119834907967251488754742888542134083896786713858253974881314710830975217033160020773414781404592256747350274283583837570612579335195317058649858558743387132443291351997951138900037775294176767764914350872437405643280183668068841433450377152282669337397755721728159476121067932382527991644177978426049491781124326158284853798636628676708700095457160292446322719689730229532086107975023977593459453882265504956556683781336665400891642395459860257867537956529688496091301795246845656307550396827692299264510000727280206136379499597005030932801804387408373476840299226888006125126580861654197731668845722324107665251084218898160108806423398954975828303519297214198942643582334088833957344876223101038804745507154490655962538375454264567961394293596338067596895466602688077752019519289209188461679408936892152619447243742027025280118309092773924007058380352792681446890481144074055423936289671827436646767550461811506131251370043312283145969879831465575432024383988197188996847049295458573355050538003014345991480895365365866490917326578854715539209836969848908630971721668516979838529194149615060146852469874321576760663468539600488009700512884521503316917883160335413243140482110319637231306750127954752717482464786934581118713262188033676243848038022966200971900634864807046927089530520720818150693561812359814480188762101837589789837004649663202838899274271050067823815361103177354471399243994205379250365271317762890820020523028997303375210382391042318017619271955571638466752844570974400427141027567452466727409745525424605056070996885335332408412292030760040005474035577676170420247365750861838097280762117779045469102389023928757577479797059426193654540999123802025008165908232224113981038270822503821146071234266104351178946942996407629095549144509673995236200726550099748265907320248770848283051484267158344892739015874607600226452194757133628599645835284748751181650877278307949797671374883761466637389482285214157294868019235299641604906101389608701705452378868211491421416761493926342199381357869183603345930755239065631494007981870728355717025570773619632604655243735377451396723367819763512752547310992245434531801675989147448052135199061332086746740571807752410625265959855262713641218433194369161284859093765813947704487326813404236862214758951441590648482421981814523432085069893062297334105286736292176405335436213941819248529538715233050128730308547000559940968817144305536552643574030991331624494334177731753392735440206243833380023444468775670108591661349563765057770850842350355949538366936973410741179223774209617515452268144272461216481538390804134948037480323374903425424441849641334375092860053827187624304643454847598775482508478044129084367362769385973838370994807568169899345995666406106461295265341144987333511050924826963313707340412743897498218225231067137641294946018444127433536327961661695723722580262213795100207537559918280119485455100418173916751151944145766517535324840371342372069870329261394460821973998527423772241317375050868871381988670388107005517688345022343507055347441256919142720901939426898739651938376639657575830159261232158774079066315683868346807021705651958225456053303133195394475192362598681973888658222312035481924334912283568214106356679207299983434105243376847694242026706481983050364934138752069434911079375475806407726293775322380414376752853897205149318425027518041171742407260067743120828696911503408969472494389073642166858681870553718295026082389100856673595873108994151849888570092892790659905139627545651510878498104338114070691613030325916096899120974519957053066117094315428456369150208025213432578986788059257595210921485009735142071345083070664122676439754632566036654650628770108165634540562067304499490805625068174920260929659131976980289060871662396232611956143147439632892578420144745257630463982508315255416180977529356160653293237292559825627656736895557747043231185080779722058929079434291782664192775927060706949867418978682135507070323158404173695226339906262831988878866907248711005881347852833576940433547168660664712482959622215972485233386159161560547237035377279529730653445170934216427556507610236355057526468516319545144951717219945614846072738051236262723692504834161201445478376852693037202556451001120083474710890016691818427221542388539860203487850224070028575978423697448149257815144349526307461405925194357031883103185412406245677449684383587024855666359086351109645352255737349994335112879300438502354538276209853481609963037088659963660422372258749296058087402945369471241367976203953043260973000488296240583425205153602396497861094547841517642921881248315014987717153209326575169407120906486681158787634904001610974407210804059944261713928242722069513342459000758935629403353204383788428175213034581362204641220951723600215445473321377618193738878037212318250889904275157014062710862468463373618339219488671852810165276345814034911286181445298564212789467370101733766058934951319571846868236179846313841036758427784671338039103681733117399697802150376765376910639221534857001105509659223236144558438190847682317332927670406823222868420175600164051523577718955492772827359683133498349710942045724909875928007653929799637452138241147426995977848603316433152870633104134088668917145159254769972502125096071966097436200544435589377487737040055029205894688563702227732973980767923206885546905854231273195696665465471759065544926329208994509569030008792589698398439530416073672052478887038684675012085839815826036405336683354054294285669604525716576678462158665483112385133382883674337916589795134335149661110176198010286796011507383388202642095415928017090800428729109273869675252127290715292417369266227482315079597806827255889971016773632981620978952411142069288110898703418233765152352907977160391803713870201497542907382443031311702184112978053446418904478613624970138597395804122354227211442835222790891448765556190192800576533362336865565000622256077044461444240896011817529985343858191993718326459938438152589431822525337340379274543916476398119196300934986647325661703441897674624239301274180883129900597909308643837403603000126227616881960108271534482312231237789683840882457215509121151234323103541505714628733205693610748102948515676878149717252852111832685688787710476201581404551760544261153675958181592660774481192346741098901554882987361024203257142078545877902083976490580172295008921601094364750517394297949739814309431033972498930836162741462204513501150472684037064068872032156916817028655093659017117706167449851357482370055696049676977278197346225372126126873546586868919377383068611558746790739851080546459982582524321867181349041633197372995062022779802185824074986338040234574740211370614225177471776295055877236249677708933337785242994118808081205327274296586328061931571741466655017688431198171253466911739957685458773287954841424265078616316283533214570376131056755655839191022015282924091245085677579342854208723611875523247388863735906014661499392625658666362340158840499387165583642449790692321105268900418647717200901437914146757882036576447040653154464230472255604362722644046746279492018957891298252944473945498845542682738731735347304587065428171008306841255634946107678311112693076444184449816276186829221974734082187262067478354459008547644375765421113966734611432759944673436388948515888486918153204824482474515657944256906513390183687448589827203237194236193885287644592605780177413671037799892282662388047628307899329792196299528364819330029653902801057264452282860656274465653751484894042475774890016085890361726768193985474700038159176245520284731379977391525016045288811843040705876036211155338237327416962727980476807044497360917775356530510942698901733033764098256030857539929904467561288159095024227008997410971221695637968093252408926207634158260452590737842198730673109797614846688181095392001410333651892139690591423268917780920905225214288829277898447355474426147808911525996524292644133573772928641171882875759673288726315414875822548564281470503908093323392320930764006335618972370580955580070577845696642381225014832088169668282061204939305115520234669764727924191206310558950814092697169900059555006892240879892700716429802051520165359292530119771579975292377814469185544181721938412233923505846574886275373984815240954689494991393062970818308703392329790099351674442425021059387838719383365132456603776161200639745521674920175454200247794280670825573139936614353281368323765168887141645869118245333047529514913588314710118718191024422478485462805501357500351921820646472741575279129537641986789823958544366438526902693930598243342079212644813191025273779805042417976322718006460474816342424765958875571251911725382344181633908347092556504454656448643755604617842671588601895878745189632796480760812342187614917516596065735033607462115399911621786066979559135006784967846991108037885635068293555853485470886001001323475682963839754031523320671177118468908313250020802501125045930042795896883690458716879852542171144516105514428816566366935688073080073314953331535542759223012370565234183091615540448059927798293764188170256849123239082067313590374060204888195887076547640614872874647045216548147572300141155728120740597806897697658264881548923491622416649328253980936808282751244292150584811804171433291428312997447309963104312419643460545816443116275345322496449575397265451328869924639955448356628927045288631916241361533103608733275766744364480906734286202510864041026471555066204474239100489028467646774153066866084571278912821158092715547722971712978491774088501145582821623315018465937922722295332994613055089345852402548008503712890671419724062875848951026630199715175708868184393982267770614505086218565581694985121078473135061269845274074880765048391601796234766150622213598945801391693604467510156411184890431528201600589303454877061569302776688021753272574017818090043915601722400695709794546030547390265133010300109067968778252689359247691993377141976896010036096342760089828421689250800540938393895061283854275270315962366805445331067839957475791124919889986714232380117700164322430908588323512083219714808151023066684445036100516722310733903438688058198672280776548459561145213849919847933599880991947529491093998250052123640802452900289692764179188583568867591876457909870241109997913729946824060330186962161462659033304083483634904657399977676479429833692016683418471923171497283447820525288937108106111875726590891631085500227669869100832373078376822233465734541459922043321019742143602569845488360758691696713728679735006351412694172087230514546852305501101869807738274765487770132356844422369981741565014563998130258516053486598465913110163793681807082301898140840180432486830121387064692882312798300665379748703509230963142569693405245794084694223467081287270377169164339131157789149801013328137403401053718517650814051769697244892400237629161986436862036775111380918547921747334069649067261904278755529032757186529937409158993406980341655120334158250857692935257015370210055465166543988690542270678966698678487591016922476651350222886911350918948394056032499282399545688011582531889977939101987108781273785441251032465133340806366370979380795234089142322069917471856339483972405411335227377454521020289010831216760293787395555142880611365192007354589217025934951504453044120281031177492351661622106824898134040320366717637974488830970128380910521876687014596917544238721886006264702827457072418010578635261106614216549651413994227135562240049510892992193292367599634269046228737808651802692321887980364537912018650468226141116720562573860470758350644434075040404668136521330314371097095450312133076745878373263034071724286875067915434780545544140676490360838437664898977379794868209127328188229723581572101205888026480731634561251745362016202998565412672513890014838085164377458050890301247251925070804197807264795658373248901794420354988734120248841450828239730017748500507095534218646197285796861933068082276928690193833286326794689453246641119610629024931226386513930215730069358613234464122018894082908929248881671567791445301468296144318420041246183077579418644488465988807720912021901399792768031152749330567112743802545928849716064894374078621148871888737779836133544697324635794203732354630990980047029758172737906910976750127692082682582322503916073515861577942862924285503856426344557967577062169971278869777046660982280760993316772604060634736331471162846611664406887392544101379343260340997764721916686761214484349373832161388849274513518202491508901751955456513361639517682821946758987870452324214499183930626584356761030538477668481895816994008265773865349364852535204606155998576679858076757118407037708743300764105311811694285861193487872272591152855989070910213288993881944068642586435083171567984529995816205338308505744224429651995654581936808179459813437147281949814664999434194649979296744942560339376930504959150825464820029702177423553701064309344490788834047358348009630174641950039850606393059862961161600135174980395534207937080982847673483217587337726194254591789838705661041958458357721073664845403175591284904355844466303816816547281440540302303361059756408546395596424969019953089966581580287142363733488391905732554009970583268132954485453574665595763966023731624581702126111967695867905563964771227717470102269704797256438525638248325658581401542011955986725466941623329435036494238421739085257108014421583643606042989235050723626214417051272858061789766077114027097114791186818550940246626455308282435479160616730532985290152923713417157975187596566656336829784403874692095433736660244274364635534395263476203911492616675766096763665450201664538686419240586250821112310724991519691722282677858705804858967549326380816053817047376501339615980102825379751328470774626799985319022589867429061732347754764789763766604996764838948438682716708466146315142020480963223891886941395641367779379619913162967433876552850068528354501706273114516508109284256680803420136180786368058576162245138678010817503641610658231803648495998801113901224011984592465840799378520134412217298427626797933783856609300740143546035188018305718249385087796442368076496291994063938150779070520479590313202015999211376373459300609296819185449056397691388554512576429330092357452721607067246343222041673069247656820354768137921804986101619387089119180632104495150998747158742885207506948120409254219221557469874220985695307200125396562094243225222640413038971490576481265129529850915677987026957362949007136446426580256859932442231665707770118396260180740769686943909584946466526272280273233712087800078877902025550263221939446241830612642668744753790644651831367708727002053957100484461271800054527799536440443975409036356242328369647111746921859004685313119424835967262258822219623588787820809868416660608417280234056740693358322648510133191351696311799408070429401176870717693548777115725999762715611895007330864094321790578891963474474857810205667204165761793860819815183888265076702290576311523376407566975583395155152669711873170461194927222893961641449526717664228573910843578620216151710266517918713472304896252270748263602016424719395014970824609101964759026827103334579653781223379670125529720155791032806852159291347648896087290886261485034342750690233620327521685941512549389989951120504638820427422393771176206069951482491899874465036066059465662610113146080691855046285388093260779620102863144875017618295059157799154779434345482088161122791493456919237503009564774161381689997756247740253941198809687852391579222673476723769235879540034331435678000206202341707172304775935846088017610662560138173301038961082502049595746847156623561912415127180207493262424498788225321335281652508726676417898849971812756907687499773064034614231514959812126806951883278993668799696019864726129799441514851328369816247108800947401192544560355534081223955827202350082785296754556024484134497001947288275605125315652164639781473055512199888589113114330006300089269943188880169006075353321146236527044422515603760057365298538343451208495350307750969032585729960213498821628165957914534755712121120742305477395832281220806990363495233045358650207962728227655203378168159947184882864186645299615419103244646030044244412781008720902775307368313985732390465904373043289862374030443267940115511189385653440877595259521581312122623834112764974055700064135564109211775450702328465462601850347234638472123285721217944564354701797309561043380869812717696568507851339358691595012151547145936015828201109487822292191112692152514157889258645775542405645864341410590664131723639934200343770314481588262426427909150236410916070384871101001849172911947782037779763062082934587058718817642995038658982997243300362492887103758697315941774248073122758253672640626153147947190610699274744112946267808421471521224762094150123645269629323684890203066449625204622792480909311967954751730038017918312907262830888073807948707842965168874537108125182125141013017846292250616202411477034487891243392780857008406415215927977925493679145747378931948693347691119753391612715126747871824995422343189406209471267360658545393927315139304694331331203244968729736800402840550676347436270914811467332511850681675767764118305747634992830701591847183273648418175583750684691071648107044299623792609845664779719722365967094508559731622148560928119815402746056447951325403344006606861466556284223956611742974365800630301918073939931594612183345415187689591180238607873555866275423100111898273301576060475681348850811038034857825402728487234886772464401557074947518740244152708318627616629027042891555198075691157717117068565015946813900943257494488684388272611035445831864102814010726819345789613426967156725371448959078400335483816144052212674047770912941724005540470392854624755385742554197306264487944502630773574247210757125161178546301555080335914657923965633128716863864224183575897435933925498030991189834268488202438291723579349474825815780716840731249372281534546292840240890994853740020557470670252636432740325099427381014948356241765457971179349518664825369723573417940900864642845647641370924063319866914506409422502575902522264711269344780143624365939094744793291368121855589597176615796460389690558069108657801508289237483724288298044330611061877115406548138498311419230688219586025372015778111753396024545362392174333834104625130827169024947322468249310055794051395809904866271553143716002992361124772761671351399085134746129960473397241707675332109993515245732356273729076092745329954518284301176918977335054781548103700403917975897743203784899964299471248959943424281185220506970229634674591564496906187255937576104458280848898978999244095930525964148732449781734563386569766380055485226179993047142357073863672118533295288211775761481684002671884574562704582599028103378734976065055297985476180616037085147321601745224946974694246686973304765819603769409968998318923013796523266302492130702391358611199296474197634200951209451142342694796249467132727518256662299624717988912694601066890212575699253729551083044491250806808053944293778250056963493244864559424367707909415606128494718151317111899720654319735349676158798933047204417893981076512347958342108409882468088976833707395009839940787369399574032846346220927201775362759093247052286409982340981242638896780960862361088974077762817872843490326032191553057194922808980566459719670947783340719788065911088327035987200306497838919662288769053795113209662723444540252646160905667785939768497273174052845962314224135196278685250109477167023965911848822035356066402403506554825508857520518534161842193459204803418026683007489181681774525835831286747125795226051559989183967028970506302409052831551278950998266974763638802090438844942671995775796146902426984953440475497370391534016738115395380490546304912188402915003604832920857842938268250262176059705077814164307730432813831237387990465543305738810451536045437141400829980107275394356108621576638018758212667017040131780929919618217398611575647515466661934063226347307257367017768841761691337525644074979775681938730712679544938914736700326464741575777287869185601242796839362746027074170269509139376654688287901293336977524449510010099446058970827444266684942087509163051317069347710590234611600487981581690191253079617707216709499543646939784648058018408693586705350306282237876281888239719042345506440341666435155177084951045918866191438321079972859479408733896404271869498903460120825018329609870709294923262875623601665852414837612123316796564130545576830532537163178812908365116247835255111621529667053861544815954047666060385502481527934699713464267090727988327712521657854368540351831113513286652918072499092824438819811804175006587537882244357278767570003090113262242758012720479158373564218009701797114975086564712964968962202784115606848796120233786588631619258600349333861352337481476907767932741444939238896448695420182634003789520016155849156311339614966333112772949825587641798582382304214021477435913865128248463845462183158198381917643909553473726327969038875861008748233264790065117665326103692241138500750476506690895326177756620513532048729409704948639719780448232632824186035489828737360866173418894412555386971573783652651770707992811138452308696311587434412489272231164764256132619272719666808239326041374239986933086727165857016179906993166802776710724474497212811732940635907515357452296288173004563843246986871493904382049086105002020636243515898738678293328577665936728226967278514860859355778744419114685067673621557645894297670481330627738708069088722413517320773807265078883223329208884594399106866626074298679361750725022526833195251074997241379184043920864086533834311530890879120548513860594437507895169357545285960228031806177761253042023335405249660592371429680341008456987014687644820731499424534219773362937124965151064324071912860657447156199229880555401292987870845547480088092916522764283158168592814729696831026277018563411089205890103668759741488659928938017304286535602092532349852187436971890216151006603436836414630346512228215009988592972570228848317498575694636002110605117971772309527060175420946575408228019667454319602947844057569663240402410925231126784613656129870720495766505010675535130311507294973635001938444195523351258214515691354877538573329711815121661201450884184694237316735031573625739739323489594347165516281213054062013357822236764598021995177199887802287413484877738677176823595161286313257538022643902290959525384884941502205753525374674081930507173775583025969401093809985985967905263685363112128753760092082631626470374138457473802182519667119080657522075804805431378864242129037643773211815573746964523274307885770712619207485739308125021599992786202077347642049422441334220233059970033426214234878442098924758884608538932864436221892024670999030936804570254214617625075882790854337939846308851866249895499322061493853481964928719586059258529832694052753056026206459183785037307320052244816296910398482439932890938825746215390032767409169036225085569331440742240624681087593985183528440144982185658727090686080567892090815594804767978602465412724412438861944057730379221357437050320044768865493341329904808935468369077954119235858938853614043327582029025038030068887986281943803796393371157956447457404179277538956672420723514755989879575345691023039691492304870830211365792444860146666250180962188386647968638977255407205502956972776324585643906770637049117902713599467026888796164826908950953155213304978140839003034420208990786049746653152492647785591364625327183665698341086394385040162940226168209279062439821333244614056458224608166483083459484557842770273327383684399738333208045155891445515273702048906810981804665773473957174269483016542849970524844107439466090671304983347795102676710018805503802484325566894908644955484218779275423778092694921397170024241987916542689951770503968931410400086060001848997523638951642534438050261811442905213557554139184377634349224529320603764240304746411152252907033522849733017582926721895046953454313643199574567709239403806942391664300421919714659499700206637284583415438473288358139318024343904326115979627453615170154302132199090762231468264938664649692895234811194175433410654764654189809855349649673982488745937383242419594516229640927784468407768881157062049948039551587203409720987947820039443196343973067411154025916386061829609493610546252958314420310203428486861618131216484641896887288187426853145915390036664549330455674520289407255753063130606613593627488966225228607641034284107030544705702529831628238595100299006309238825444485510247388128651493583805447659170845135495872541504177180311402548379738966583797941933213933162413668013109892506284196543819380114521774013609348367330216284051964733076206375494090959452736799830114141173118932126700611416625537471303806551416602485854728568101929436887371606532516858570109258851146551197585718209306146267414311215199998550423163902519267907591239754987562686708345826693609576299242268483304353447820683294386974069995668171357487610376365684608602259471443120702525629983838577809321386668523478190307294505650700782517736949261402281486780658180300033338747340315887429311860420198484720315271965699036392307799052993920964658624412919038324612099238021620317070717513606219975751183832249223585450832824404701185455784048518526530530943794935510813550333697374641091571097059995815089765992170075904514544638066994151585596494472162811921342322863579162315757623954188945090477728601577329641003196618819033800991232916817545483938331134778372134858863993240067027791026778189929462145382000113612756080144325293327268536794001686259465190833967180050914066075438101351729828704294305928254284414349127498611621597299830503560609271321891585373503165749135590570856696556951179730295195072067957684887392976595609546004918785389601708152933724491958753928457373461512995182080740228007918433768465941980390517618015320818590064745449322420948046803207668877904799087262375737295031054613445513217419509559657862180179513868938070520854808431908428607756140195734710488147201699550395207822507071739410807359148669656872130097236598365113202320463851333133068279064743960075522203129333297022246542790886935228990895072915133372755505838623544903290616197645470660354286276595594113948054032738959933540467747951199304169854068926586908002326635300021406557895939576418055298095503874799002246828404320985303908379150925136534667610471938806088479070969527183810354012665720287986400132451712988969467702102359515591628674391325363997125455471802207360018574300101297374549255584357060249955404529802887836093357417248529071209096224491542614684821635245775524935370719244875932127703688604140665380581364031730897575363934011623396856271131533298518156864634704343502468748586729585773283231206392677581024300263771641025326143797986781848744147892568077648065897370225362281951133271926842158462409272616362508857289898978627381466943600809054652124212385455706461565727322507476558204735539331274335219429742294004097587403978971800644293725812675427548649897698923145149477222221796416361559016237615368961307285023952414824816960505013882828538857982319007681485741826831562273434335557922198298693455695699383782487559289378552770626690099076785730891975279491490587868696509814227235808775208722173386800760221084348853269415503464920110832029546186954773422358548134111717553958791141372504332798113185043299149613240085176536113589929822493018934291469543959384663652284158362615614674336558889233312356951662374395379043275245433356672118964153813484830135876720827344371259319385348515425675038866467429865613559760821892910961548705259147954584598467011718024529635611685514651178799222918254725507036026485965823184513910057731902462474928221396946902414314611451533009496174150471440161000349835618667927486494164147433742624464529621843031779937485387533957981085135806987425508171818552258193931404706186612673268256242669597196964127413649304560287339615866281282554893374078804191320627514793745683327411439502700091740224311573477936150705216782901502348738824743893167096223342928684541238131244378854266555935602225470234261717267765910960407625838088101461117154878577572173545596178211625101069761475196283720103099839897068277156252734600759090130401404247543822609136618931871674276797256644607364292174934200873615322337775319729362598051430988049422730017589907271573819713975423840731045955216623849879329214766940769852952683629156243662941351728807926223148928262090023421709481228561049572102134719088061300788014397983881652642619339020551872525890947263741736971268268159113027318781937821197762703527585772578762926141252278609930800159455672868554602098488557889970794774399219574283143949588630511471534254548235298912502500079702228022990238700958631401857140426865745636136378412388327644759018224319777071490338318720763889394385384279080884139505842063102342248064977902078653418830358274085106600780709046473550606377852079519397005791718776044376211930615392023595873381387139939036005467021149450420805608624528921296513935610131127730320854239641920342309158743078257533838195106661648968284111364893300993846045320365309129718050071972777654625172123442803945847512288335687407063378981277104907077413736163059973869558583301011873626945806121162033126024801624842174783498912727791823394450484602396482795494769938301855095959030023009451121663332783500960868452635871832799418198273193772587673111703601637283423799039002472505748661534771001075645999611677620081622789843391273257082241387603212626511041248029231298856524663512747782458513182426624043897516248487807876614336606437388456945566887883661963265435736509520335208831207687882834014842567811770375265973454223244878556859866096387881018287928317788400989760694072404866922786937480293129224376455083839993990731292996153444735364009112491988037412698305385899612399050547671658357205998766636411451283705872891535157438686821892119428746944412174480207682600041167582263017918494506981561906187318948663608383813511128555911754603047419227431679653558775541249672647830359366536744482529670466096450086941754369042213934499255653456979480559471951275113195042298298565873875542428378440664647714163482956558439368315923890884998897241667876364209656013810353423955540911709790344622641041381323791935439023878512984006416603379320022443136232951715454262719255161678050210277451705620985321990051108083211425876770892500435843758074846226120650813712821458381077471977499503438542393016767377568082690886377752033789845187146637472825047897844531743665868654869882917052271765096670860362227307532452690482666575869066420573925431986443497235488697918365847374178144328784382432037070831447407120303595826851649214384712533590849243152737831203253522727869744784455241754724686571846024946047961311739735402113773081825043437890461142412095257613824439152297843994757851340860728719672200899202925527344879114472500798301764599343876145013618843481383345303734074212711383418261310790712305051798297174374777314197084314851553437991816712551652932237395758625303108477773702348403534379128015403946031610671160660229202607257124107446819832292563820862665020026765415290500218026932908265780072913772052846967538750678070499208059098821796695559633398256177025801150885013646655806884882138791227964830070494802605768089204754843612213896861701502062595823473384394118657403051888062460682604404380011494666573964627625392088224069289114220904946657701118732250018688825638785515137462471779981716478139370757573848066667556475612705546129962772759876997373922787103966826524240838904246584662596264069084159012025022200438151306910087605476244878985237015636794892126931259630297705161717857241638480338691832859969274470861009382964687388741906921576202138533109831617696778469443544152398965170452980629459026443514618232690412375388023065421005019720239067395799683250137339858516000619619595142925462951131076050704308207085219317406866694847263950316994289406650045569912138804502027458091694745960367376657628851148382749470751099034906604837418451712131161013914433460554384732037971373666623087325988234628072766568221065253892835734070416518166832957105922231385431463520480466841649960589330025247312920298661243132462533196387882509085601012270320549020644298377793726968567115465532052836138594335390679902370770591313427075590421911004311730940983737561764596250452846588361145063006197406495979246652694140895905417867099871571682988926033218473983429085214916152267716742614974578634764700137455005641103719673149371501404276607351888771346405192632207759330562257883563715754057575781854837260413620355593186659286047952097888541856343951545488756777158099676035552910745599866860973924408469273911675491113412326602488252733417634230536673435604118901968784955169561623034661458901288715311594326364348188893535585386883745560050302457257440019188545797493033081015697202102557550901557311049956484764646324968847231753289549014769918710428712329953012335332556300936581888268553783321605771149513181612416542191778601742813170225460686132952167611387921791830553309217809349350791594309512615799429636266305630995523736557857949564222281725684482173502148003357019773634796214140489625790288051459735619885397930525336762548423162176079417406720310064255023157291238635696463566182491528565377427061693595017657560153485716782804624273959477958908918066833458565222515585652845991539523572994741168869043139052706188467092857279062190167188983157007442008016402513974213973842875354257404904385574746868373161802900930835500286538105741588308020209859893851482705863406080534932554447762424219041891390558844191762486988213067239223471754823446064331337088078551457780206707211922151424148763955514616329725767047635228127821086728061281430468504953980876057508796169695107517533881446426728574136622724148398532214481877334589309073126653746787940214244124307707759530845538517330515239703568068026761255880815856918832955597932795170034725708069658809683580374735794901255647718839722347187190739376685698899535765280857122610266930736056423610602737107236553866740956301970866035375355067913152797206209866606501710870499984970177984777748052913575854860306124229821780903490006294564154279333073709137442595943853951730555284891751058454600486898033415343929459119454704029879123091448785721610117394801423232872177360364833916310175934587877067655637230927135530973312077285798266185674262721669221003449071415274377926564884652759166201324600699022295217117786100120458551090928511022265780263612276747884879536571200770581937248496079695216559551891442729840580406754097514420068940520961018897819797546126372618565375857887002383946968176721721317230814545303927668855078729313626876962391908963715131208408442922252218322687429312492350518653902563133858491577085811444615810709554821278066949127258593578848474451548200476372564263330056456492887716267206811623322981038916950222069432652282631655520885777981521755787544097354680410070492167926079339583972443159533446087900391108783538051240592922554695507198022138140681739627386681769474635874038084566452930793523363351769087061392265086430013094240880173144112780248517408677833514749199491772887849013684221483231264232616364842927344368203222420539550467388678804089257317501248288605300026543006268184667298072201260055329797220637793982973486371426603619744163635878274481528343224983368196166943731583283233739329869106090780444331530821732076804127176681749262908619279339773552492137347279392453944828635921958114703119036366386049236541259596576827398764723662884303857727272984190502415671850604568656442121836079053947149756835315312539836787828340375019509475931825987111264349800850186803814153750185755920392349450370986585847279599123000347725296363139538476824228981348854285146764731377040775388629156668392331342846590958646184460832517518548147803937295322740437966703892531107231468984848072739499252942364376112081704248752472037071974811449425737042568342192721104867268638994195459889250003929893575785301617111114814993241736941491901033519889732959985792365083009788015161358410938354986203756205243574839802596789710471301309498258612972984424179312883330398731935529333391507879461571788705796906376265073457086282915655882836706682045779763792249073682615585967871208098176761553074280068646200089305259585822460742222542735862935250718466011373717716890808841559085206637273260752572505384970887132776901077009228321164771974037358415220394667342893380083850431755567147307320957371215683571480467533022831976042449030111257746574402651752933162533011949507781521375023883681555612884927953368121824097241615962592224293011279019143595794115770556193642549283340362995040829569014851363595291240842067036417007021889546897219260899003899147925315093606523694566782035358442689521937224319002218593310537441040913385613532747832389307512860539262718839344265002489161451119065029669965426259016358415494684440729237179394683750731350474151562201648536265906948262786000720948637908287268743413818257172000636021717312008584956127237779631790616790998936885557856530591769192404735471730523964984660374724520995844147290618345551658646225093523787181026229036042812341531680969886236565974444067975148003308339100994618877745022475173163219854444056105315782682734372227584677041702511016143024518876104341020266877199810115611751007821105719933102637212393718337587607068116390508841133086938252369213008783873945193235000130220834751225772969570415103140026971554276822038877973940717517944024534115043323209874493522837847154054748158215510969974025056774997401644261353961412390203346582296172742971376960740521332398240661483654163254318105372569933960460022129766554891976010091922233508584271424614722704528433458054421161574017746933072569513952229582649264922216559828598492656978809530233347785015776822886311288670510037704434195639722470440608231370185429864172995813575672574069489742816754587896861881465945219740415319494167069755127610946169585327728158281058076691583413097444634240022547208120572902172045679184661247574596500603951347395992968128084086528965503499632998994489323679294199161581045448450663818246670807667757164183432451282493080373072286847027314303813768918420093032640311364245755576538903318024469743479863858927019090409473776008125862499735049695677786921518315330370831398456728224830063060346272182922521810184198552834946889292823445278253524184138814271302251837399116326812922867224082518294233295705922424810133562641096051827578595811774835096536966785172307402886521730889689614325054640778679236708292405474426372005211969479726784349229154923210382849094160809840607949467929200724885926384591094269012898630184912351865109136400439553165003847188856052991921001068372728380816104847880822814584224179149801682076897799701759575857975359138906240769970212167349511655917998767761858250746844939736857493368265499404984970377482162205029470210355857498256555819574802525184843866089189573085957727763336372385949038351109393404110964216918718371190333373633916275057578745821164082799234809073855908394601731293550872003037596854046714257141664475637226743061244411269649355185845628415504045884090589115013280201453956356781498150922473011764916816780647586156813014352747415530495475625486860044031743055593935428297844287590152517126318250277179753862440039841565090146332703767924426309145897153089242394132586619817448277406885236097041104418892315555729267509858135531940648897429528060931490004244048532456929875327669659022693229186055121476882295281673746959068633052482919300517730419912064896484549201115195626803516005069338545814857711821145877528854951775434416151406191064675886919146560786530820986764327955200173689361587775839668801242902135960705804735089292842577551155720408122540759135302805300090813406749474289814043971418597990347777530932521053597214949032419587022050207973421645434649748449710418281906703505147180006200368041943357190760224934283011584195049022318122567970756584185317165863563204487089052406285065441393918251240670692035359966120166589536588312112138125772658620616395394423381808925898920149908396380178862781723140513927035387748889866053768875271462015975555544874286016525693471340915918218503564971595691897252382628583426095540459750615193436057376997050813886062552729267973877412561490206624190393173443025372316368592944830910532525089633757481264641443435802562069916663371465156229573558953115536108631327076479328772714312078107336295648719529252990733273942786563502667177637023213512221281672217548625902902735523380313462370827389860542027217290445338134513365871198534423720338591739812951037031474839461188675354502718590448712613241340886248553756502273879773308313758007286349919886226371873286257648570494216285502930507504906299502327838345080303233163985270671987032855102886375568560597139266304562764967508157561064534696866168457438233815941883424626271274837425442516666686315788143603223448728490215014538028181686452617192441671138638624599488505452377331301449068320934726191744872429018026167866164987895464945122089822640351115585919364143735336669534551445941996462857711482283643410370921824091273831017092177495110630480831330251458548271523901940141937189882875279499557551338301861206562935274312506940489176005989775998765726131764071148631702640204836075744284295809509614449377881912449724790467681658596354841506504920208420605446452587043099206893407931338708490429791392579466065371930668458964820731723429342230332487121087501568439652948602217441529699338067882811952618313626947311748703763812844772326405488924206777380149939632630953651032493143776740015336771473210867422696273545559168112790042704925750728638182018707951239756802714196239447409252580610641113489347656354786825599481491160830023881790438949478766677475882118368950717052939107643309180506015971044253349876868090220437310540402364982129224856214636055062148551001696528436724846297784187205625726007013506030904788483392868166544721626056607676977009473051557673048548703056589659317697530132794731935839283609175381973819992591604342774420486264471352056820039556538143357483887514025458176147688801201738874029371879177569716361572825481086500784794088860095638913899037624570610574058686882129036194496741554897844356522823231215048330918483089402278600425973554277977114215672402785048214421070631554661407600328374677132047802894556484479395988799999746310090405900681380667807941789540222580956850954351202405768320977488755491856254512820074727826177238361517418889868404557769901560251325594434083471997514814885520005761865686095027644961371300215735896546807730850660918879767336740854834833732819845013832307251930854176793263454290465689756409590353769215276616777189764867941458490316667075177273431179921971339049749784441582722242015068109545116181959446231343807145257055781304313477329846184526783234957540593610279204867731328125122403163617587745612695155017355821370976090090671809326784194682816921890155410490490630396787627618152419856428712344060055845057535747055034642451698260024752166132039088651610077640018609672580122813693501131776317091115315673475792126916870997579093282650630314896316876697028861528548878487060233931140108375513049639836284066401124411222071183739593120518796113165750199159722738505703299931542141827956805581912821349567884227954339188065296073044041309133198128730826419952491185330406585825144817264021477251216027511899838298567593623812485850180243621847542046612277280103796312320119883226931322543314754728019299566373836779108861975842411569227357857464866524319489054945598783483152851658499516939168114636351794294594034077430416517532063880791084368739849171305481303661047443903032793961266027286993852366311675355637814346447957160177293491221737706933469411155924610653568663387388942123846696936499189838180755498396258102869641803718148311622487273975063234400500389819936460078769453761553573176593124033371629133421915794732617155367764271909712124843139460214936860042296621558367350744264989952814900232576305884548436739677777563537293663455671167035744214729198669512638367859619542663691411217338489672600244745963024949009796106911898697243243989337993757744732871902982346584866552440685703557112604747280264615713502369662598401183970447457055063169534242603042003427151846970174134696549722924556992024508339359630798675880532570275221947111215157922975185134221807405453761268351456232814693845635165950681014836855654197915635423610986341779351686631636545645348234916735535664782492475687413987118612934936812407205474497131061816713396638881178428198437098342373322074659607892097042282228735919379122492987727575782832531656112752978566793824037388531009536391847386399050976652423490385853915677358422326958459883454849134989965828454240808563751448333854926630692520271988205094211171996623768549455645858546312636766169896791792650922751988479299164755905702923694764597356144066061097025646986037165555840687105229489006603722644468261235791740881553236954912935414862763270094488191052078164466481881588853084174149014085713680204478185878993265686341611760792179880272260597839686440853699092321730575270081572200768873275285929351595663137735685887478441705276202078371075647250918281008232244300251029610427420412822497029848446914239212938595711435272670474092244192333231297383344675414873584330524245283594695008053940545228737714373632534093354394707036045262886430102732767574666240257795418516061978005494554599294117929974636945389649400968003046535292880729504745413346636106669489721285572637049028830388897509754038156899570845136689584611864949490856517872333172564249195874838357892940188454584549598674843620644392315469505295491282451915346462378378938770653376163339747027003157066163445631939041204739577776863075016596772846774662583015978482951361851096212125463797351637394563611364063835547938035943082676138999942561535215631589045268638654159085044259645421624313726872425041144285643881992267179480461125441660233840244141781414126507502414960670546481029073115623305424867131283446903309734367613472158898995115407369067503917632988827518641342867486217473746005385506956749452043258082786708545671632763580387506503714864226405158908027349130943606015179854349524921538676773183084081534207164138863467143738293114234291587740899718285378484660802817574439377392361116467241139840757742556615591986846247730112031370334468086604836415639538984383615480756896632707288235175794475192816122911705924974955686525557284804715681373251952326978645778552925650384120945550496295827218651092822144332101336234380083453551695963594728588450700296485226138965814404936506459746849018181310277675102561258209702655872990492436204829947469793652082690880736811640749956544361920266548234098437228628615031307959038091824358972827515182344103431012933130585223639713413301003965367224934337879909080333049480855994481099978994202146079850343008913977671605465992328455941571955813900006884704580153560652907378761044981069953137741832958746917043292221960083630270071699101415220641963473152873135992508477389281576186050690113943774167592733546487208632712549639315275591942902046622463747940243511341824128238434488445786244767538349403801542780573577533120454796447335281943653020852996540967919798509426300783616409501660064053965032231504743356810458722403460815139647261144079884344580144870946590475578487864135186286722492475570616710095360801413805976054442157666932048227786264630775561368185174394580603965180167715155142041621540748866599022723593348895425128495102305235508305766146736766623276498031050640851720127692462437036271504898578432668620272392633600173206316431355098675596111298080121886593440195745716868007183931566010873154068124219300646598012430796283944480608780608163926401495761669892112309351153965157784703126996152177702947675352532813391654633910332352118966806922820209263283482970638605689511013096165064920148214759017971187830126564292776531719530860505148641749827848292297961240542506455947401345335217728670946470841343868675089755907021349865978877005011522452973832010973335735981109729240534172251130630316996341470179709421069505230774470782095246431356437677973350478793535232617185458733788956804207371638524189384251743424816203663314176112577124061387327861534408696142491821875271007431856278054916757741567326251015390489893603324585493896568333759638537345359591947094199980670567546308586590667668269582668680057155006567467519674921268992174103697250327815902194136257269189298312095507143355717064879701902186022705946137383708361237620176838431964353206152750669304803150179526371820117921229525874705099084831451342495999406589786152295769966577954490067319327493126942719108634614520551967454992837675972232754350367638824956048587050709490058988874504343325506079297773955653712681855632617061751353145702179230671796786016379013808458772441996728785670096397001665444194231153709814383422564008764522415696667647055727466011836353431789664544472650492499607262043542672312530737937435086778626531980744336569934917760519310197108938041293297660771112701053676896021839219983277941440064721838198492088190707418806682437281796686651872988863902149950014458315498134520314783133231760356070782907359314861174982940677592536155415581843473027712475686959992904037409549657573289583804518094084428109962431539693594616803906898671302226210065668176239745211555016873161852122861978385311905042306081653187743260226125696849801574132695984649610679396963718044321276439030132824416402740226954032580937062956369898110982389444083303830358007411341309035127689646924234600791234657316600809076519530866226331341459594656511350179231434146051347776597307518667435920579783104254824030798201398758356209708705778848929724183177228295816150893434566801840812274111646523246192883331483748062548159494129175901851914586885265580355942123224780931656757767082118253729307471721258039336454075734013792739520524136332442817617375955193907287817030227963986083075073943608919941568732146796229748047102473461640675774770277319711459134048405819485360528111932484265371984813981895738353571270726459272556108639623036117086712376470280197943322350549587104326475616729411696831606005093964381504960487468660660195694849255163666552612306482623645495378331135435373821925975210235254452757577569872098900117047525103338170239201682538782513685467587555077551508775577768256689930011509146964454601553243862225012545853424093793457228380317243523161335150385126753698159704675158161591235052016250340556046546724189620847613501234725814386557378472954052498428709207698467666119956083560843808967951203410484112534859492567714109232435171433735060851801219502425531272672204627714606279964724925493772014649028909375860470092106920778638580319051074885899851852447367372235920718645648378914108108412608960782105732295069078683477146334628273086449904396301292120730532911940309886503958373863514094567841166890135822148308057584326344454180080592487729062234487031921903243642023159503745237073748970496326547640289614571496712168484036107456844683288442738500707825051076065128233229394050335168818007100090370734597280415988972199717752684099928581507716301740600088355577156018885622823221740528412234756567417528211589270737207969049788038143593591236859459783083115405180575278134412845949443714140991588183026375832929031582087673037923355850907154253345509269324550913243151746569375318620853781037376087050612356512829659824564608409119999861916427735318402405407016277112394800827651033601074527097621121871588499237857354895459434521490611571983703278817951620761360198315078333844390236451998961934648212883887716540149413022383218695444099920086333680025844940286943586086985361548953166941814798777533782361702212133074836146977860740254295031761970534571005415163243244652594396833687174487965905700563807201514096552725948424919592344703501635162863976111969610189381969533751515356924101489372650563714324422854150002301482064828375944987204776234764603922893647282546450426979100866752040867271894947751157195150533447703441915187976589903878511528311995670459962577121362578246568423556910373339440029714452857411255065785915161454718071283855906860293400424513951596726451964090926710479042199679156114499347663411094700703416423999376421619349292984034297995118231620234942346030806355435638043772594671458832893129900364897910323858865957631979157224102465142746344990561003011947446038432504645705819404345754524501747719310748071668498938669900759227923818862344745197363544108090260889070219367500537112086152936764494033466618540189235486638060350492060583258840371914386255399948522205529423335277411767699617221979142139989933700195412161755553796578480714214907517186132710664905008886129380809647970204402886021953906686284367527986201915123238418542772779931418331899681050120868117658933556056593862618719751145369646466188367538552908184643040284432972216967431082472907438286412190066206759159447906014042463046425706839688856118802427225152616649214063137574729756983474567986523820066645958568145571222380222090194665015835321498734751360125950822707758383316470667565855174387581291654185109992446957200316103219608091947241315446853465982820727485803697417152556197642761128711848172579005245201478674468090847048558850580083924009298340984510573452156655064934706729567815553851270924683236022037896685239027223209836028141096763899441715607923172445077888187246366717845033674926846402396014244830334015707241524371781395076915671847103853752242748675739147490477803147213747541187861283623123618410054019475015607521530388759726231552271385921581851000448110834928473088316034679362186507294047632895658358815354813382795256758360626440901837139533180750356400463255005532872184578542028404864764294766902658192759751356922145778561085734209823839989168416683095962311894586234587697343745135574063221118535115572734998004642144780078789060000015987692333432114853492384074129871816956673492273159147603280220946789448168650535515084355885849431286034931089123006035060208830382325509551264196763544968806137198808003328509866351916676161315988187415565158661815807899277368233013332785037632085944035230307213554617677439348664063169016680856969725367252955500948863375655223038966332622053473036935497876909972287780274666705442521180854899319676846676546132500877767299041201798218929016627134374530195441169983860649616301607151022123901691819531416632261161690587109868890887636657742362608906958046975465044851845886077671005594714896749418311227841721400382488293118385421388817046691623385341799745439193652479900592098136916056354997896256106574955111163083014480281586332346176228015492891959640997626128686614922294100990904520527338438039676484850633479471550039137134722517402214374785272799024647548698960071484920283154616013822210542902970608013342836924193928522256578531973739825946262783028492198196107450762651033515561900792627021443507308190489712822101781890723278418787193851259517490450050320930487534509439370143995070083162680309251123924903669691890063422563188394700271312617932305419036415603187275556351949100387511943387182883926380971012254126989863225541857651805287527953633712603674760781967570437955486479653585644928398777651283158835274127085102652601987272684102412122459130543828478462921148794673980139386894103680031434809524102456646084311600092146507725820776898841450615477784465718772713740782758454782106079376886916799295279931144557364551669925244434348944104018583480026668179845663023025162295985724413324923856457465762228192285461932167516852430943623318030711625682460257434203905735236940022256340205232070783453853658646874285925181707647532444315489553966969043763250556411197042526992449012208698551344852390104194126010324116506643901969564198136428418412903499664577340565164138541048108778547782989042800557262051551106042866793484459000179993660023037471516442558271440144465984907398337603971044524437471042214312704237079048612365874431540126336793802526085480419180497153454916150903364956871486648714942111592584450378895199028995269111686767346718107075493621260302521680613689819843802874011503620784445902561131020414533953095327879749646567892409283813380501652266992462496467229731246009955807857629463316761387445924231597758485869236835276115486159545119880205966261063579363016985855172165051019791692157697634163012293361214251988491220982190687928805252209010924911960628680691342835204356199958184740866707475107188296642124888222588959582623928502996598219884161291713071549326321288043565972987383399594224021432170593198793930401515361330949921155101044360453956115553482983709920325214632746188729474278908769558530255974591926230549934262631351032121251580728623857644308363363946094483526616555283674186603853003425364170273773350322880926502728322900373121055603170234673684360661618435466647383182606773212636453908271138033735598582105349930579504808847897288181256454075647864099317388941591186311264299690001581388156425442797432681961440401986038691128169778758426286548545663115729720688022420311692798181496785514311933401467332798891027613530238790914180772637712415063964878825461486741306138972739821651990886579983679271901112972690706175675593775372020915482788349164880842325855226838597109299022945398517437856567914096432761026901905784153964780739959646281073704297794916808824624682732819401653309823649612333123123237087098662461297027785306905563044779583499866920273358414899896415929356315196184409091066798285389090451808232491544610130194303935652083286060774453162664999770221729190593320122573627400271658698388523346474616642987266922708803363434852019627509219062001386107994062968517711197091354262489086739877797646088349547174394479960576219887276627711934319964486185025500587689378535566676622791868675710979733074981978993869251718601063839797805674921511918472264939776979944211287784102260011955013111491825875403989046057141772462893669847964124833526967629121674943807505054396071528986232938030882131738651931782686726568286586068389632251303070163766349864881001032202175098005530073228465235405163395750057811972712304133832815602792458517981268103541379576837038433736282899786818927516656596527776999998317046054945254577102238912550328057108987775935664694041314305208150946392013282575143765773704360668123064460017011505664669691553518800440081019692457938116727576781380674036900491051922577756544775265547556222514256595256978873580944129315835370949594305661944485478498047066318589185171285485761962509660044110635752429993197479945469935500037189953758542230287731301225106266031675134420725014139744716505756697707006525865576752490956742384808185690988513137244775407188548509477625448158895228808956669373818226190798516735421482619307064540502819989353853172519508377999228686653156014125343162087222090172242331877701616254479287831354249071085866746160345346824271255040602150257058374436409730743667997260349380542881309548631565424531942077678195768924862025512618169026610615171964970245085914923676941465145333926816264477116116061006551988741016869719170413500274107446948833015058092183090882891774643471630731133230980958541837285862848126658494712640948053737902866012643502046340362178495548001851644011164793783527219709133829157292921245278129006619788151438367373119332152549373033261453363855391398663000697377926220008927920056452982731656367620487489107519694307128699203606426308859697184538117417086661732231414255054236017901880217415699596482199281882179858280590391302982708296497270444664561959780262160008623987204916664336363528236271879890683305642469040158548652371561701206339308560831582885345542664979400392244393342340690032748744167833979655570046569653338647051784356167451829524303754463738236255225784788005821651226179235384445340053616968144893320564429251513794601271359826376538143771867336451092362434328696746345045957335692098123999453279054901795343401122152508221362524840877574288108150873325563853608572298041395505017475007396988257817245752985975190656818944421770818460099306842615721297779376942451058487373949800715241235347746632100736751953950578868323098358273950373400348445648343134932053878062445789049844230015423644838065161259462063753890020758589468339712015033463156760562823485539312377867588100011002968036551282125774197684115823186025874217941530143040932457207541276562764916277837699076221756956657365748354618792461882235618844669774788864851574597903761434214420564506013933769513527747828884121184319931902271127968769591481693603493202152674566099213124528613337129782379219357838152830678348292570926425400101930279435580744181153863806088505651850153352649650232258029336058530036331922390966866710225863363141933760257701774799093147997593275293141068793282171829528013203086094607576859742159065018565195864225406872455085790199769372690489144982162254695302768612120072388249372178461409219151829982943471917623666030261764355691522039710985503397722556863048714175534512333596936281797418460639652145799847943787428456058138419074054584344923075193507204494948458629476168007582764940377192210004813497122038754152490478606768278819810188186935708142255154750748215972842616706020118879030302118563772429407489345573682572022995939196788882334317424825239914037091197779474255816058659830989803000674867283481934361467586471262704594395727019681886812631353240767100613473221944737657181786321033205943843600062735467721072911133192249089461234042195268000037326593241297411392423998118688831170953908169594119765382449795428855216924302113682609607982329673667171259261880514774211415327555450084766424727078564075506465217689754234088419961324711592392575960981935001156764159990184731760089581137468867637264911782988221144601809773762851635042980846191861098101517592666662729798954087720189084442217219356623006939994557130236310319399869536675394633663529247680741382548093149281218523961435922637342196476796914164038414958024284836843677444074232249153874443039644475876998590466726481682041267690521482799328412312166529094560007007037272998692464069745313197585684666212989452982575396963033754876771071335149442174381989910778312627133725273090698777948849420443226215739351227330122379568361392111207223691042618190906464637345268531510547581604726356231554377146012646507535887972591029894401090781675779598060232084090189073547103533504430387918906562199838857845932020944790806818456837747249414025655212478797824224137266068691089687264294233512296319032118460018565898519419677921748222202392630009256765666098762060060556394318619754280050585180481824512919003564300344271318305254948296323855483265784742453407426629611829356832016476184607269198117036418637741093462399322235955563627115200470403464363868770954234852333542342541084734158567124577910733063773550757568677798269356209730132676903457595045544751174535508759566957162718567386404411381805403229950090156888420176196953188951530966535345796120719304753773615866344894433775836799643570595559778292963111408883444111208287129015044825671087276114623907058202299468772426296398098693092466993191745456038779296656813776010139815870562126574397412309955416196740196044804642717777734838694630990862634339106982411856513991084181363887650152773974653426577800934069859048682122648266959353493151238876863692322648451963261365999465362958023145893012555457430394924346305633521810542714844560706935215215496145820469872157963100534496535806559336772377916203947686176545525591850611719198665739156075037886130856385663986491511941536381305353401605715100246082125793485025928249548777449386262378006189693332380720069507725395635432302804767463116781113750364206074829947335385139118737741240685515447199349649659067977265887912923456960556260305403742654796888125288069113291061461619882125746565332617957694765628091016739772022806954947624816902335756647864621641430402542557288554670696708610329700830979589090628414780730953993558612375928467548168365977909793602655724026358540890308596040503674238389244673485874314451856215759700023603504653728780139144512960162074901752865373332392715489413923994100290380542450245661577331810931044357202423659919720454710114103463300671821041865377608316209581740683221470596495417176085841754930555557541205963941376568475665481247834461013288252071828409233724939815441343060300588258365820867846243040281847714095076114875051330841913789276455088157177517827452052491144446379030402359073775241985034253378743003689002071687567552532440248843763435158988210125006642884672197856038712705988550954351684028899176983040012435706213989941024146910142211392698272224635459143413512882300671907209890302429075404637855783183568047529159545783164041030225936126583215773912483135913022822420325099610148917879218757981093429344495997033513513893739514480615909736962813679590050324374507603750224376574860093701789684830959161139520233662814137882924968648821777598237654763002224197408184429355606750540500576053500390430997265661612358442992926319084862514844021388992539297766646586591655459068418787894861057663118180579566019241322784566597906416098466349262682242400255072760208348218388919308284391697755349572957170011366016187721486173767372486683737891501018150050956590149535088758633614348023551216421452937142216398453382662890585596305865278915895722722688241926389098155948389309458052593698991821680059326059857911452569588067741205959137531187226884175511615576074911373971839581934151478806723560426302683770484765579341735305642646447697107179956498927114693030373364148234352673027449294136783324888754447314011999265496576137581471836752041734149004061882130895987166794188990515331954960439822497346592751596138535682475045484547925407402197819125235138132061051073234736150166008695102830286967801957093579222689201028964055160782513375336585449789796197017482953757580951386892627661914661513798014834943380433358196343336976999925328614421783174130332324040102109756486082665721092920045919421299334678191582644816050515146940853796892030584800558314032107950020131610060572757973674596593386722884465874276563371185582797172852162576690520040969276924507252067773054989731711715588932791116996029800765851488711016482799989365137790511204378227624520156463522833685705096814190168727604463742578725305414502899009967103706366399503269160693597809770940657499357812968339509971840917903511868587925725631697902657339854477721258233847132660107044724031623728766033072280502557151505190650029840626442422270740258865677452838009378801771697870971740613968157037533960042419691828615813418386359259100841664303230200481787419368963334768421224931477900450465130197244819014590815943755314961786089197124414249967307893156860466942872613728288557343765616787679261539097808523790200670977588842446953871485386484304994501747756514059973480529764619055899210754414538740495178480835420077676408281288139262407131713445964395433669129776661508555239675314548786044640825036417921310292283956697500863153052096471556105226476679376668746235089304056730390937014894682791800469569239755463220927397790973131509321818742310187267562490064030537447368880702383544509547396325946631992717207255501336524409813506377287866768779467684840532104927244406145530283400508536274749780521034312508367158541690839170169730088987267805735798531519514426745052999666912165506773634110301373390202467403445273233560756321239996869407120561197739835128081784180581626221035429331654604817988682547827514406216625407624717803813570249160963519128684337039853737197137007008605722810678452149777547400394173534708073163165309063040651598608440195572999688479245682413389595320981774276851027303924916246438314649045116032254418878554580175562337088241592210699530775503053529038002020174572124753330650461213662205912598430680672446750533731091483450676931964749155736467041288958579312138991547258509133509569755125080517319178744968017427280048697239098223096822005294562566491830011240522064587733734851959949613977321100392325475672747457410152924433718448964406344706479511210211365593276490914222655227358891462480418928674105550943527334389991354343838794400688586373141059681743699847390995811914533645013353700702759064782477626915270534625458408173900708425926993091286776855004382403327776485286477414061085080542967837083205113693828487214512356097059717629971845534431191257387576327282548098110761123657273271293741835968928589209539567213707733536077970014962561961010106398850375177931772833075246440298763682518418404701667629683164812492455829050244097191220855510075980531341082960048861908608659238787032546484703767084660814080697256063164700863222394964707034866047352439819946465746361584301750136579813371661669329143662481147228905048128419992244408930292392344157101244139213086556426899697789746724868744140966303590749042484286554099343140860286448996721498011281268889201878310819677280721339921582493690534837683286926831274519283588556998478045254630812748728277507487633034098871933023118752472463981444766012741972185801316334593700019022620632987295539728283634673197884622025009205330201560509781020595376979655910557394784451505293218713456080632034229189202326045630241576396768592721663603449327089076675314245633718986091845958645871607716293732347174512011327471103640733810459382185781100394338139341550866526209700231521718865105102632324351608855756235769150285227723418660985131549074675645049328320296201899522708078083346173348861903112119103923016220320891705172488776711745345203951418764634061508794080462825671278036991612902898613441591394175155647891418101215739989265893025900476308964582063138065545665938505527670117330859522175309879036771121064336432158654426259655722551121692916841140902424959812208482306519052531627257395305545392983410340373941935406563953615900615191727089623203540746093577548658388301827503537589440800915236554863332545893756791997928464185514891113578685395617224057792854945659915425638354239540735521926651074530656181595112455176278411108648455900865972612863548185570744117114646943606081601274782439895071574884296770763265553578979428128415243525207107268661137085356030135967096149906750995006886473230719131623959153280620112879509515053881695619643402909041453498104054586909470556885285018070128847976265611603622289010552353168724904418896114111055771543052872610875845826741297143606438026763033440782597334872771516156217258239649564836212270489716068656542108902004442621776424331166257965710504377601005438279059843165572980987323277101982025528278225735058685761024078044267617567719910223850228724888160788151523566546516120877828171081897663638549774711587627084294156595973745120424809652494025979792706217852899623058033968124649939441797764549071283698009475249934959398066623630026206799120314623447693364153544779135159469930819793344137335179488924362898895018214400151811227598958605742364452574076076177906930079403007714377910148258321576696657809475999921692778179211267037051556155807074372004302549102363539493294553963732414346093315498424669594152039229308545921903242934432828376497967185677262441429025421011012310722830274385884561628203225957842996229082668161870647718113160572882071443832982669526755428179121192053534554631259151549586988176649659806503586096215295367289592187307222164501974832961930033235855098535955761445602621588716380840733828376845305308732956755659483535381181417374325988255425316415479771060764439147871455060644137839314021209820976282369474406222309647526610226243973993419991334296241751365446660550693164296504869804589071956948778081430604872250371562834348235435324160983079997006637762961061317181617363988976265666625879240462905591026881298717035213292640603273890732718924669591713798835430374814953926685695257014341911632643012186319826270500354405689153680158728832617142222092116644360167214412034219615432287038244166797403942596823298793926932207085964340468911093125479219787394014720025623893260833059470706997633029033682312589330460070295042084957954802682014457804701897559477442041075823098514096465438423687175143949590060199678964071149369329630031068573218411314163409440268756503610614181001016986288797574212274445847932727965138429331463134850810727618875063759054641653292802826835778664261340759917344782253319001966221519599314898380972158253429238338769130269996153278074923292088322744952829293927429705635555364723679381271137568583990890306723656114293465740606328564714144528531613698647657060018294769992189031060137418355702486636623058750950488931123076624030791344358876966327438669830444281236071008347407319737544160827020355538423669265224038862545367098540149555939293704396481961772947875180830191671182313598479425663764623329064150362364894975951819100543171349482705092048198187968384932814018802625312125871465551758413307484340986640392543106659887850417394803173473143728358666890940983178109708353138426576656578208796104089969753664985319542189728819347307610754593442919333235963885510103754827702852802279008598966293854001317816398071470626020435526764053902473294645825526300056151566011199798459148451233769696959646634682901708408199675613431521958877311622130196387544851475056164047251866957504477627701946609273256564319997949373854835758385330645947455752571989394617098806553102621383096315576476143066731852363981318388712865630146961856340510207211064687003220509849493157015422558641034220991278725339656777936921091736497467265057185086221464133008527800113237382460891007435300153834153692229780253145527525400537426934885313405409613341988277341602412104762151746852856012170821451741283644091340993995261598276692367429488689821548850561599036114419647621766115294307739007186991913126778898916341139145693365870909621115285370903186479415234055255946899702063091268996511702309287625469945162957259835297964799127040473057423703075667017540211404467134506019094487346236025687471140827713034781306742501680313272538834545796507390900728030762584566813861308231429297624069157126264880558431048071588430441333705303717903639592873218723413972134083056398350532747977968132640394642181121635716586023468226319057612470707946833892204101640532895012320198576521171900090858150837878633501922933469954774990173767498739358390462579517502847182874481707324524916305285596967552841504918256908424131213325463255414420221270780673194006037747263482264045245373862717808606153750536387599565413717902225429616175219204101348525069750540788844900404901700593163612935931553975251273874419377455117801436752073086061738362709855806060739926530893260759995943725553856628749746784154489625466083358860875762359906419868445781743277817064074592447376276553490189690516977389532296945941954316764400563297188223421591797238993817825849925654376506622257035809705975537623077544800996285957855395020845607455242616232277112425028860853842780390051779433705978053089854257471274202537477859420210406694931299992133907324844760894585041894680542765703512160545401968479206631857014410620163165992269199669604555248630528708003325182433303962749184312666421198132331014415689593010900894998033375921999346719361071283340874630288436665585104114733911617948332038346331918854509025657221597199404301945278669550789130631680611202333831614610490475619214567893255127813113207736246367076431293977421495062685056233945373456208640028025260726037483861361299167319669473662383045649219345599653405451424593582347813923136441438047202948364925315612877874046230099849772102026657984279478922660434097492808380499983742482512440372748281097569183134802862890125683861375701670273265993104308517502357003629599566862725346007834276599398860766053199757957298851212902198103842779176233699430431741214453411476381577587668855098896631521403441915262422370943535206545948642956547727738556568589275154140547555609510452058151239519804016755437054510820101861429663469195565591362969673613878558577917334686075610227617071528198874601929000109745589502771117403963587494930431035158693342974630611897195017915824907639188062420467163961756416248147859745393110454937447473010613427921294984169584156835813837326400290743532523386508594975238667112801857510235007570260405629968688520285143637322763512849636732571283009891273361659978889728845639042449704118121225091691202675844038115944174795507573680746819886843065711187286044618161603521987303266698730671687161469411925157918166480419126470013751935455763280948325476001616563779567676386988485739289095568366716067010342551174583991039863802647346536842940761171684744097956289304080957648016169914431327954621780245687438649194112510351261713312267612419931171896652332590362342259659648602318585585812333955919654509282000229873680702316638863447748139138804160671742616047431498182254186803596019232371643976143672578274647776911487576329554344720288874094951308204195892793982637624310045742565155941232805153821973149863541721830263437266643064204747052113172383519466801557658041545755860504149475016942366350031951791624048377634782615696608877833739056194580562248874438540209222567996150104261735132155370124505039490786956338166444012188192827354782289959787749921925364986924370430836545933787307277305095456781042747829644132966408390553183310902838342828368384906551801890825105316273670560100732010904988946381757962311960346597225497293175488758117963952995174346129937027075311372629446374828090494513252907669509119906900837754786032509042780070280976402638430671296185786255688878195729559480018409534120223423146642968570317594079904507237842829647034202342785584702366130813776737521155717584414701683448653110383011850163937352883922926953229884511550153512690268654346220336854348679840035774249483220437421689169899004815310623470462708967914388913013238558914789546198665974857197393634020470370021183737736144501833292037604947437975866757138649410161806246641853089586973645162863487820402029455322077859487960006647840276924474717549331222513285249275274213504335740066586119327843808231632675498788876352198625644612075300917606241447956983385080432445846238336247610138405092766734350137241789820435786208277551715984641171157896124739823509455176280114200629129843321517305237571845287303103423373351074245075416727997114991621473843761927127178213489463582278860751038203294935194048517234078432348465359784875186857288912167121106408119048851976567710805966929744870890663240593757033203344611645645853159621003856318567764395539749054895485030440427256590090317057222215926646743679095369489887366858822083077851239200497685358967418757001897652273999616352698650976303802107892923300687967777832696897732946344726742854125078646444644032452370360717157591532549529323657814734490235228093588470628989275222748040592792760086256333184816938430939777096785286659040935333342168155597448418003127389249071618905066171157662035282515319820978022471934854754185945554268962854006184858168636401047369990371324178594191823090684912713607696732738570430149870220403645517349133429897501923819445654891839953692562956715224445066281345194220832675386158230817409245030972891800903433651380862831812871158705183633920485184414847111024811175644258828201588999387766782056548044173359917081878733366999488486258865389783216182397615442906764659918366719908645451217532845972185366015722481013760181602986453969263513216640163436757378622481734623799325094329566165878842317914862061119774121286254501301008340476606922785917666501769405956145074337159583455039606065103335591295694089846907046917445993944619411685220477958090957546601997000709024667076336763970780154245056680131085925784922963422474973325740096775072333300859923581891902947612219360193489215266792222421913311584266480889601473561539744950298640718907942162158352713704929414987872931067562967411441489641755335532519295984560015481840647833997757469069421083776109523129531542531623130846262732950252192400698209033052423457338629156809734469462316736435645677117113271440267393046376305531146682682541555699688687318450383753036622538096476571696684319416163433616155940108455587860319510231864156341640536849598193095674980821338580327572053598267740616109589748587034397090698855170119509400683796791786215548198747537372745857973478252762123851957338742980079930323296374659697273673237469497841772465746613264813022989605388018423661139833252761164038664365755929646937567214440421575988081341932340932710965940785801836280869297429546258057545115637513812232033197702298951417207014534589137551922886312649852091547010597840761599871218968133016526039222176809315990636140706780458137856498021872156347526543660574471155231128452735297689701329448673683091702425121717200908719719342664019346859647239699320647253288383466433379833216288459290916397651391781236350282154872157261653955743993068738818638717367396730641329225369286212577079280908214620035386778088243812471163449657806824444031756362284448014406486476919044681469952300057785470373950953120841473167225773872805891252386096695878204707931434388420881836344962630645456417676251817942870867196638374691902506591608271769592951792966523327018360764188278679954259564432049828081642305805546779862675582949097205334660073739438724508639428056956799839472253289250112350017432033732560600166667147844200943225915579452892776156889625421515698421537986434251949682907872227402500290817940448827492118481866952792430346698877210402661521295959048140972994270946964142020730398022853111678263703177511898625082169635421371894495341076324017972643793946267912040242719169564914874597635442842631953959524455380958802618395951094090933442549780613961427204861971544815034470652612394316042388810371546945646966547059746899264955753085207638527637369116158737001641845996139109626907853492020940065526803166694659293120778265840747271914218691858880662195780787080895179229952031528490324014095676987219523065159299289153957257293184624879832909472566349388394573198897812700807919676262768770361513047829243683812459327218050707354690606893179610210961237297454844722594756712221062861424695437586893929122580904957764226468378483341284051882208422325672431143178629256324849590906027862266403353248639571866614109806856906888459630249668082364252793944795558276628418832167517985830825174931227093899356557443886236924592304055900384519752112300348650041088325263041488958631007454049934666751840007732586108310770653774630227873595416454007063580246138452319586775147001371014527064093760896055341779636353010448343069244526524306425303246283036291058119722235267661669945412271591926846241036287919445268929483770232642066739463048947203394074651182578199757120012257106073741370283003096973395329941654170227163281791627954098990945390439338837912375593102566596337384449364521623292321225215042130065651188421661701628268979215687829141886361770662860871995731985697163258875311980841117918052108705004131446673760776590385740060935565724484720062354252071469813525463851617041088184928978943510282254989530097013473256732186842476100072776572672855804847326306331935659833133398812231462032182459133908795508910786205845155726283793738207531454032342006696613168723793023417256644377483828052767988100010143218963395918759176932057520656273926133452958937600886046447890466513047782647450813648498289937604042698839412978384393731535975791434835713180662144451646764890772991812790921259116698558812609486579955293506571835814300265975650123950594554266418161449108174762597437681487510443471417491735176468150466825054275455267797704324232780977164039397758701316441977651401790737083259016902529914822574098092465104069222717116268895716536629897304684009217518198080533965451290236894121076584705171892672172734997550742630871577022429539656689552238534635826040552549186858412999861961449567174769486873519605958078388267456139464669328504004009680562443849629257799787265729963327859229834897488978637093180522464269816875594012171874841365145888176649412122549288496709101295143979135381590745545234901597978286448080364541889427069791394218343297487712663641433016761493284612139295577863966176946798062305256441433201332675625206441751726015216344471558321761478009084383065115541637208368202642827081563621401842497191566186938271408873864929765940481688084199137794752596318519469581817808833702298466515013674451311886632327742408711675215694364527682682312122116508549902020017220946854364819851356690986131450237528095035690999398872285752517409000293961036184738296960147478501644156227481900520276002041260343390629430608277963287814514923462490014432892703065689607205481167588440230890697027798654359628986513493314554467296378584994064227075244753414929619351451322447098238508542865672029787286756484410406534490108123438830200645943399546740595960284365244641149797236224648406067761424576647981549577614080938041268923421105396975082953114040240477596066311992977687509595409697971384978761417699634871863218493694216533675270908492284594583233493563794121210813308792788616842365251215628692511063408353285163586013697393540984955287782321668723032781299577626814532130242575567427232755841858078901979225189369163357457474151314473068481137730573986250131135257762007428485616269378452884196246318620697536894347599451761570700091655353897193304727466830725033054974316515565035885841359577257614941227362001905342763901422956750344740556380528016292277359365447184352387812902321900910306877333363623591767896873125818917492976875153763963750372030854092110460803470801281153323695010585584779017149356389642245290109348782633694420996106785609330380001016021168661489115369440224317964374595750986181899957344954795368692771427477369271320907094478197305155320859740311948941696370497749381225962245908325212878067910239871937869389304393376144897235698553969204310205042315388841139879880836434809651718864485421047315269216841599775888344166822232860153275848158782953765469551158938388621941885086143410358352348549436760281425303207900197149584992788683786235479993956491571996233523036514996794116827198366070381555269944909412068509763739023043094294449062517503788460739537077569056573755700375806541138649391777284409254431469626188767415027129745972911195848429735561806809170199639088619788519224104249659097185439074796172141701441352958574494167646250860299958317402536879709165270315561988918220196012969459491023270436212315155718506846400075299488619329746642218904334312342537124039830234269094040421690769356466735418249438438788629413326539928826472250240639219476083532322192357462868223159580027509312254306521418667862627598731905728110905102857382388172042167127416913174847363016782529383212579878721413124160894581619768460943021929899852821459628963063233723620759860281225494198284673147151340368128903683532476428961379944013564835808063455049990564914737602218859218362159976776533270365939545358549204981979977967081334701901777450412178462921189173246785825805468668710903896814609980379948983478274566812427680026570107554355501104328529799861966079020090553066754835979464143222348998334383946514729992110712228875861819583154171797395628419458818159176260031283839108816255637060359964001541118343915875257471410227243756980380446251205686514737172734995821121189242837866413699398932671994221088367390762253140031724349207934010964344412853239231303139194923030812031097709186853108550062508233209342176655086662519934661160315877700813725125166847153152602443693333063995514726879184578791991633213679465146374663148886011514580494769520972893651967554525857364755396034611585671492635576692641113863025603190903661422703986739430315794913930136862430931847507335315610083461130495176574970217410983962287189865840970303549828771480491725478042764254471526204307142206784847384311268126680499489309664071731592784519820615921221882688751900499289542098430360977400855561445259357549271607200314432499606664670744612821264968233153402022192638445437969834892979492665165814404707903456228860412453041734063696168527039017156758340822626840329150409911620268888356161437609301027104616213627593854755330849459965161746832735926262617587415810550349607620516955007993219535071743995111985860955701318901572770783450300898283987412858857895014225921976848420362092967381718247069470635839429532875834366364899745285364364172910701155801312961578686029906604150236874474879734229886391225125668597516303018830677533854733509613964693213059056586574311038533265096181499528756848307903092389697349503938550792996755423947606256891674589772003297405312790109235957124986625159175928854956597702189348525945575644739148619090537019247271549937313253500935688819047717551553711694945757239950163544184675062792585455721838962538538199703775063876409327926590171307817506557642665553455940585626885918387824403637001208578757828364229541066519723905962173205732362639433090206389208223606151453860777198360777044369690791041790813332804334606112873344186977848636356551510847747620825430590733887732274498609190169935622454697643088041630580696996239377840703324714757835280133000969992963655016298353217464266482209660855562950162396130505194976793629364020559077510154642273647251541681256728112990714339083958640786786141090694992298728412581904427537916045150530018578806187450810853046147152128888684473648884482182644555536845899451942593994914404751219200727332586064845593191156302979427532446298223641150452382713078671847558828177521371032756919363220098187965496816099200461915174708593811261686370502327650870708521328885678843700240097283147771914654843107294057696333555273311541117388942745022381876099649797592440353978511674870551614126359994447698414714568019728992010744113822477965804773651269569273606296116980773841763914956938246818465386241386235773145234891480879377401497631206619939588470955846206420712356338155484133988614736827598317469795681651897760890057902566333243439905532192165869438273907899596730056947558663628373459098871497661585182995636906798123105229460234783080665069995843115864178794093235846915923643527500700896994839915269918557846820115333209270799197209389804822647866253418180647327388909835858624260544504350082828851945602275669755417493048999495027490159902114811224247960733427145096654690442608639844700873251659816845016637601415253565170619693166215709860017862175903385645916928917242112643968361626926290809039882976921888474814484891422105466411554675547174218361154943186141927647721909902225074933793563763958764603728831954590900082133856298192212913889624096976333871451591086173782404174314428321191148288144221722718669092111787311293822796563793084581173350999836753237118580076619145168668458339473598787692254991027455402689336217649222003724151033939591953734362955394478640888194099917443688436059893476735895346937330501161252775348824900463187063683117073520072274871925413222068081070055092137341567268548953567809027257930685718643164437209916991169156087623641149980793383382949564024332948002647809377838742739200997225157104470135975406618959315919610150335127437380267149124756750886815245849000719805056496869224237640654577563940442572397164955935563562286652831812007212472505553805763571919628350360274121967495349950510569216897792975881054250340224421234254102779430760055868548745343466598893621788723216363281649201769126280632463963041739705257340506806294605688783298649527844625325157626457594300938988277187571327048146691915458686678592614675401175303801489500670933589240368311565026207335966130425580693429105387715783065501503029458795685706293233466150491940338143176368753797085192105012576476389169729773933723452273515167612857233270448597576239136540657569940766579861873404744340765917651557368568050157723929204459512118668160005798783823083527220085706389857039321211069457920474310323266705491078755028339306163197347741058600983120839130224092129345832717649360521545745699663980866995009214931840889898380924927275319128745944931410448780552030055092155561539620240090154651515596218182218596213412842411933498149304480183030353020051093518033555046867046028560038850828500862593677944039027813205180501173507447289863096883404389538274335025759423640137412026304257934205859483578148355015013345739565107066558450933405798820426794518749156161689650927070300044058990593153991545450928035932281362555201175633865422273092901626165900557763921483123735821975319769376103714840785626832243325873458908942952549383885332399314767323374311409236767430436478583438407414040738730257751300849457590990984115709111586570884915721069498563698307836506503109329551158353526830817653002655133764123003494995506001283543811270699195720140754509560043549093079832203792935356204731226607697729478203931863854201340147088666641248113544662336771450437603478690658177461759643715389467228293291816786254647020764521541117181107343908449848599990580268897965793450464445762644230706155617224133241409709847872922564587539392480368713694399719730752994488784892181852137862701028897294669854565701136656646691802212024629840326533548840064255857522048252797692216149155830390331486882890833314894153438253136997564387382713645541881597620464256870379441985754823192254041858920169320148645204137895230637934164949088017087686069610057338777106943625429841573795305341629622735494376937907295130952380266233825457147862884619544983595212962924978443615315469230383830237574150856731160880193645986804728779619725923556829548637382397352729741167451441730831513299121367808246535508906912711361777947644256267361280338955057081885059858168178590331874254512924797770296768638587188586651119161162082730236231188423929713154007138391130846260316663399333366914951677452466209874936702093208745207817109163643619734222133143518230304359578838646140186960944774654527208591609642873053348309369868281103648426946810732342025761228065112296041723981301213345860740957353741040092053991399998832496878340894497636196551418119358852914686288819720165783332955306036664738170409722981816149786555004376562366927252780258414441117389924870291554941051491833586068787398663373829616753654561068506421029055075891561581112552430215654734449288120081122514178506565540451667151770886666897115238634293943844642036323084249639065506206189637554182472130645623163502643075574687813016988718305904457049563328251298322942918002708114219345149857956247167459188859240176539950887214692077467965761629165971860930271588601057212118700909698157970669606842134784973833459147655578897174385124646967716087794165842392787747073853897253363299063692541743788887859044955601350478595255976217794047635602415528054726575655607738240203063406174573810785570592530925043405889904581183242834881049689903641828453764085439265104457597328800384143234482649836470835952852887683800801770528430867523158649631712528327011832482020524401135237575393796810991082975440116607157939799115368197001966718239817300305018860317460873086531715230113969556877905194348443786150369183620018161924388620682263263618926658439384643878996657479785838112638251244400578918418387851775095421922359542024665908474945646612218795626986557067460041444647208971390823521940018421048073872602426924489869100175942845460452324325790174714694384139712537374281609551721917026665300875916228889382199875312822105699515062945381736910457527335397322314220585596456806540779337935933850352985726168578709706649934642588509412830907069047910323299994446880494625515716266780805441811273688641630784841444526416349340732184693648193097381651160700064467944171285326899222857160341497674659015984427114858675173769745834478294398432195342118365918811497206244081686639095037486764776496287191913911756176250267016457771696459506712461113649191844391739137530854325892424767593937000400705073442997738615785735516078378595396689427700136088539069079596231533016694930676845856166750929464767228749190013236234308448839424693601798414810502953181821964238100391901799983584620006932734695981216633991017782676982455194107295438839201416301719543176719418846389634700611477577794551476019121544912215267272407993805198180457297972089682889407527471603375813426548325870927646279883641139364911851454398972378771170752217155102493262214048789933689005772423874134049003485174580788060625577088199917551162461360454798322307045333343490727167017223721975536642325953896690268573390939109450046868230955253752120756116749483860770097152807131619767449357004636519215267059605234346536224869460976594539318426340281410777035312436315407962885346921311419909926817995606657210682600069507526952028875467747174739137348146337485624276864970634527239428623174667074196703898562438175977933889949430007565012326364165832438389643781065465968771496092709156965003644143685249105291005141171063401240090570377926402987794835674599893404138849776210501851801843404366176907411799618190160381826550815433952938497654262579729416312711965309965832399691581638010017399662491125794337787767118681093587579698073589739760247656017970938326594431048800149677390521932188993414470457239350340469586514005530214329154644195690429340664441629315457046423782050882403514812465789601580983375169420883659149244674539013980040294676966003278995727280116433811385397433714924465076316929618940448719046275932260443700964026021212378942488918963682808176671327053031424679248684230415574096512807619045005197201570732147599653517621317526488089753505646659733716969179231607398081640500564129886727450127227510265884988317961067091680004675386033132319291467673593117731467973091399629187238823243399673873978693491644305197615113669322018735021106291046883765490095346902266920775307014102989441637989023974017098405255756533187603938321644051477953879624740687059742473951912127302457363488965527424877511173515792828645756260263158151539190183464453434739837605953949690271819141813016094368517990058877706640519508131838072713546021315997342755015655576201263534575514358978279326734649993923340673629523016152390093918417506751450891559517636037440206370343949316083011622711245390113665050479781510266762252094825723981270257142461045955696792904957204374237660290708805888386848841033804356382586792962745243618597344436148297420676692479033556693077539012722690732021020033793490512053057158385994381933054131741016756168800312150235270399279391192530533329023929671176290824124047169212597554727770002999864375833415608015052667791340991435778990979054271238922723835131725980400718016828995202661299714059520418525973821715689232250898776777822176084953197080477091457247555743846005010848629184974964293852764706254240343727719970028587613710463231119826986735313242350748400296882886843721473376996451620997645983838275557593711010766822220809378625696244762314410054789871553333315976559287657715763733718784401843304110031683627344903407908522921690442437081421671717104529051136528021003081472746531577532187928934706629861911122529963957882184932909527218366628426639435990885941867827830346763566940151289326994172540827286090372117659018259742028138588379707537844819546525555237430610025228172344422520649854354101871445863902130814165350580498222592018824087843878761220149969323901670215183674886241514397703074910998113624576805561567039777950190163554793755733173734299072857211518741051800363494832248270505657966883408649135686135319790242883287139180551719831222194630913810950924153675629882410120055174856053452816137539800804751728134389885351472311110530268285685161139538927270804420093855835460985056042118307293365269329747561577791867882815301240890168805968637973906768171219954240170558123996627547232707788198708321936319602360645314098229288089342184183758953825927167410925237707178085481445514798994908092870635075691875656883121381213474695394544460877741290060763973295745576127114257119892072417910227160805033398302284321949411243862292119950401810889926800730901096496986146067283941065934219593105504757388172919702063416000162959679450564946191364192083240979069162113891723841729028271020117637804201305382979677890707862815341918733366543369086759102739535085720158901858914715488985728346133196792936228403279822116764899863172078265757162408711035277324062774074709564863741930095013922492890602258531512267804455217811585489703519187663736454343885027104214310299731664038643837009045105660212096217241182296574946582901381894935214931475296683190699621361113190721167556467492511086040588460517901889297448368103584463143126728691590802033032089617687828103830933919532148459335210159702480436967414266911996130043581481902383204053820807562106488328690264588266159499818070202652103208534106298889495602427982576969340497531077458221644292108854991597170469265762217178994488376767589117678078935752103127432773423582299379934509757976874416166363242861285828840141816969276552482152331471979110187194203080778741376974924847125220745017364130771806192507578092979776207446953525848998786176934381453503487740612601279362183686636547760039129056173702360477215516494513459151203642499395886728223697136441858404812418860350745823172133209630414795538611871777015069927714534634452513047211600555368235217900914084462477936895782977812371575714775012142969741855171925633578709100134457986380661935910217500767397477381531821582302146793141482969991394172358609926953055678198428644315493323950966212482157565326852020922730078531150945205048108783419271332632137123253638523081223647964564731089874388076825760816696317114019131742110156033002269323664783546890821872971240046672363896268138510915660319757340014218660764071942587753046172276021710846952387661894702226420553064747113666696028175766488107037688604141919719738728767547534372089419942114379937195491215362896695750579179009582794811798631997660140822849994436374728730634175275588641692944960546350686282230021544874957905571314079736713999139230313007461083662182762598810133016581053036122553503801703769849854602026823811136849023521966089268466217059710411862346817733222604574944867775611653131276493412047144766050602288846464110038212829995347966371646031699256879358536564188931538151108195470323979979503318743102314953120488081498116754887140570958409273008131207399056351838581231200507836216964574148761643472123655657016835423584402699653041939076584091125351261647475837101399050542202928295681545355396051055081446894074187439883655496280078358335864446458215237287903872699590942557763282901527938097159615760555594630329079487702243544744921805390576973486364633319023535618217331565074317460435551365431045906902219730027313881696408714509850209542999121382136832046689299869809863456214409289384095465878752862295011393723561033639656091678614579106717522076253398512350318859427209945848004474778778483555691109313614733949251582814673965060020107702251015275770041467605137274053534719042039108378004362906795227245975924473667361568272748764143583722138908124831716198941992381208188010744728898472663880281769022729133216554332221431813200078063658258216320166859588078729374202528568725142411903860626869185400568005712618854800190184641477673794507160395301804621423946263664797932056199156010847579848943009062418360996977228386526914342997780763732344596787969784747227919744724984452975773601317325182171376576657866065122529213953919414321825566612812042174500954886907005924967367191507806858289012672162939941265688222708108840339813077657203782774750518462358526306667218642911237822428569591011493927850173360686792938084689049971864353180305394448893332023124945977203505586424318385436212560842961849860677046421477778309262943548621254502913280760633766510224204389141977983309221766764002425881422477896901013648475432213760607995327701905986678879371872664818852565432491096484025978894941039290721569108504672016037676499390932563071519744399548478779592736149579110103676039613383483947525878441353579904674996419787671832481353712058256242509253583172459690463935223165626849794613106032342998070383728530681282810080965761044149045048756031080938941818770687938955657111281063936950904786349682667209830866727672798881424942516809875502266408414565376995205993799540858775135888047561274685488593958320831114840861372574749859481537539436759545085494722018569775786218840169873675607530626176329973727865199666979940889964267962366728311035716428136215128438768488455706287180383590353100950275659348735510078898161039211562889890605042592244957733218907967373628338229105398436048453815196566822967621481567428313071882814376345733953063279634309183504455847530450130612090325630050651180371627926468904827260002289689510460088709467753035551876741754695215304082091889897612402352512001114159876306472242469281338763395906010784668417993635228499368558652144548190070432719564337919987494278558533277414778873686223508266022986726736471076796683204912382497616924868378927281700633289257413017011552690943760944620629919815238184300587161647484080842292873902115376368686906624603472842124561848506796149564667021107903664588986969355131922030613295157029151147990521418629701331479929215809236975790786429464129272451553143748772186576990122478211217447172752222504921105839683158434337920515380576161528697093730338099055887445820930740687397132710104511731384886581991487268371441556869707677816280411846858230665325711544489102752043056529745193094272463641429777655700786879658515852381471996083157398610972547053269296947362594200481140994573242100072111422056635146850150601344817025168048352550025621899734013608779676688631279190553371290030068141304773031040644280773835043826016881483789764124812338160090613718890527758895814226879220117043667673799060394298501764562219871702041439673956440648830572605549243244946577880454059879613604304550108254349385063278196646888294226895775198950952314269513595959741480046536508435449989190536650829639209493463984849335859074713991381106104078147100034926661398083995092327622797865940732041945008877108355717063696478530837804112454972527211609993867201513698606004303766467252676463679736706824253634788509006404895940242712743457336719261018505266777710914537844314883093022043288766247557027881348935908251836719558955708784720000472133982902532643119611696399828134622564186533154981950075601655608468731974583180373724972862532710669915729672665363022185179443938480030916288671628562637458492590090170210909050867403794082030893357965314679800481030128776250443803634696528891806021804646538881161819306122538021069512860438328093951861734770153236351240774725628225465088788193891232873456540844710346732827447029884123648911177221036833614985448676765648579142064256306983502070991518634270921821105696933019307892653163028416296974371997631969861405226696733017077973941136061081073127103199458002721030028595741048359207643139808821267210881347624687499975325682136292527891616709889306409362741059852648751156415402789143684681700998798760058805936841010783984071790142933613179192051242258495000339654633190925486527168768039871747578458801475024797289542421373979918329261385100551337770685066555811772308593358011786551249573403765480983165119928337762280434267115653965231597939452716115634994908934706307744049156994949555932917615683697624548644461780617588395489539368707658003732911648053699421101109973578024215038827352091341461941486260846868741832211144260939447329305039289992015736128341037202199554655438252369681684786104291249188033914796895467932329036936086356605173928853379675937865699080527361784676083008157799324841472338197938429181648317010370456317011233777490737372621160057355496767706527051797187629730877340579352457629700401355835512163947749066300150311637036827913473503989171177232911102654388770871770256490238261174766701694422711540345194916692841894024026213021278616405575138710898653095144690625815977524205036146634005495155269068934181372498292165814910983431545622973599375410861836625346991718931612224009050725570486265622644825992862889881766403777366581186378334338791387895239085633833037862887161056856545211040872554062641943191066890080894779904559561875811952248767506863740801236668306067495936387904798807170455008465874638751873813706261607324660584766778089981811538287770545244468725142073778904533251061510953224236691579088457184530893186979889755845108716813675243215724404683848696837135049355933847351098220979870516943740180999205223453218607431127604173123643219010382892078118176922232799930488029238636797997990067623099387080753283034074749955342174172479937328657085645280831308170163933532313059230754410745884553174940871357735057505396516139157803248948823685344460452333907072393045469284704298434825462236605498223349196014040299333513018252700083651876982413662665102344331160971771352123722565799943627898310804254441601799907766119647453837973698491529532250025651274498529805882064973355974643027266569985186396240364716265789411420091262103477571142341991889263951191183693146326091909761834578287655608369171756527195026082169889673838787059993341593075718905560932884280819283343877695975527577469810035887791584568885436270675527404380716996887523762725030022675067532914478558276674867290891697019048902698966555537110921026168038099786809030053335525030610360714909281880454105676455693282719208626755906516773161130340176977253554254893077955405036449191648040128690334873199721402525680392571021276283041847742854080073884739974844977150352504287310143766256567433650500295942034860763126564426442370096136926702601610848962941860665318283760034993020947614983311504255684695751907147746427587663734281425060132537832485472409181262673071219762054196497064216805089619051635413669760451426811891735022284001453974291758047652871193222785712220293549614645488562090470131096270277329491665732325958933156584817295107088612465799962786776764150971058750136553749036038367972160190972673282621715493633794972890823900766778387599976852588164395194654059546010098893015495080183289169417234287860331164564209050743127245566781883391926869835180512995197224992832537996930999054503756083001376761527872642122911001265650894501049939289274011949593516823197439031096935852159154237252853297288667537457920827356050657838494296801766568694193621335621391787720369793313553031783619303766773907728362852586599766586203565468208752749925321884973939075944991432479635408393201611392268629748550020046174751947755165076984555124998977946029524644878753326458344566685795175603208753007983274832194032069257497789591988293402996373504318319507447006548603970405079334434312484082023662341049432707901785071230349412179672284075044070502343028757602275795659989230014744461319020292991679219863006339386312368549447114333450414947335125645790811581991154557354807954962984637872852289985661429392219137568959751190403652795058025764192032212406977881288493896525461180317884845759592212586061625733925310150431229693047945723707721380757672017565353759322249981771417862828661801964551101454230215291825052741435284584652367057705708519689671832241312028319068189686365685673646677838088121041952765345089451134120221802275825791765532525673376980728663782105312547787863941712701622905430205928562847376509196359413655111543578439104437782448672969581347499439331717959139136848786692067187663059264763525737641886655043140149976687958572310458329591591960598575817349129895522041567423240538745922066750924385791599928006279134793169754008678146304203461718708774053281567701291837019098091305149661598381054611838822636757447229213878580319232890277467473977759411719821688914832527261783428826722669848988181079694766826956791921588621085645204391767374050944319373492347539976283854142705131606158422535347961295586612855285540406512320894759988455211899191040197604242906623598174032693121701024725243689478304992570098660876062239393799664814568184684303094752488719965291384162779218722223828599621577469572997877590062622481940287148486972331353883481855582475879475827874842053768766425576242549144520373120553623043989560243764263387007505311908985679070227881272071022992501606733215898808838319081097001206073334462490081953879035120657699392667663195711801415948117186756996756687231501263121106614181212055857210890475530739293834213651885355600466560949925811088078045052891796341830664046714830465728161951234645802053287425081283442844088339307901369355600710065564195841489515911230888459201280770994659412585079459516088938597573125514693915127562945209615401365523019737809083746509065810383844214425022755567667374347223832596449700602524548739721414765257159345446977498730427054490205589973806362048261396798140508373955689167606553018331408189480597411122680013182951610599876795569328204829380977693145002432696782061937725994500509143441081089610407225057264608797472371361807254858514652055255284826883552042035038856925781021036302032937748875207023999802614737862649843271541159136751212295800080474276506430838830492724167446447712241566021552441779818189766837779740986671186009986937437932424785213171392707789431404117132266904831552092058237837929305176982140521157729909112018750764575030473386089839748083657723202348778664607029918250524139960542015663533964632998704784115387107290159085776619429751442488540564680769247927053264080466599607913877489485526628947673648046243104663229235699596496695773784250449146001860022762518971361278448319005914471751528241173823879071855581122425721173654701326678296725237086548504584710528724631009083349285681018044084784095182743477832824266133859452621699289463034349529550475379002936986314400888171336136925782306077333784592714867848017622295963653858811287945650225092847660054906724566220978925055088544509223818222205034127300141158614421556063184891172063937163736205518782470383064336423656179453788974465396962202582807745085260089892376041389866400429929999843133191571285992923409882173860061632768097887078819528201248741743374862406442555179753597323439306582219858152524565273437883106289093944718770070714300599566864602758608357619958574544260447285919460765374348281544054953351270336341345958518335379187228700425737554955358816843880667590065762206352712837385295064191601999417964306048995355203488492604259074421594451163983393813806103962264807291839974312048050085009458754400186916826131253207693084857600742362576296187309794902407154643368975805915033156541263230637608168699730004918574270953631990425705767734879049962542293993856609082495711076172063715183498165458391492741201098071220315290700831550384811720080404817426644736078972120764244793964603661681779984607261034030387538243904164992736018823491549334857026670687277875347985507094940092775885553798534132919591831853368687459183953574560952838838998735992725129722259308805572703771368583695566477437232653674775023134995402261851335970752507098189512790148760734469528679294272774340323514782146093305628751914710431989725420315520112346370794329549466107137802858410038104442310230355906848994653949689837134848944961360214236475657422992581864566276746406013106349392941540655577633627514167291236053186206563588867901919458537128352741101618763985928710638481571654200659980717633914025151784410112024140830232798777943103812183031868414901583684401145986848416590601879674435669765913164392291593430847208351811430224968654252702349259137989159899560862324085273563299401117521421214665232463984108550782568013457515098914378826683104194613172525537032273552045448242678448227984693703812631058917433273753156268449166079851055219105509759762977399587860003927808943616510634118349072424377765863781353502585897426691125989678217478476558125329696982216515255677310125448152508551562113291839775699151923408013774496169380728180723446962360741441642789054758897702622938063383107912403296024234722361854996529434051765375593995118608023038591216951090820360229389007134099443101536360949875880260118963785915093440820704196232263964033134975141956725469505556422608702659276419337015042005289776595327573216167043380977624320712974280239443024722591217514420043751037521241918414641922905280896516710389568688299723623516238612418281628232996299537048522777795287677979810504637622352541235807224268912864267570566492401306664263861129993376102568059242056584131140061994712799266417825646785022878757719010408048650538565279562878456911302341201970274858062784454994836839120020390433836969286652344718130322201151199970260906804578918157013734901309591727149057980226756815531806688781419335021996178878739350889029766945225607319048312336325594869434545862832602820427258873015821965800173305585537673745102168114865165149390306090750412410148576122264531336005372924828579692524938609953462337414448086129972294810075350802287875748545906147234766000458385984614219918736964095530338336269096019596003704227622830166004945379110649880750489097596611946037271912440973714827649188590374524433220944850237488743682624650286755222145076225661400200489157288179981902008196797008355603776438476968080651350830587234284040512985167282959066830138442706410530952754770957200318950420131766809837287953289657732185034250460801042581719626278591046995422082448089016145975177315722101752690647961499838405324967140071802141548689156489909422804039604035790889951032398057781641434031968649798804885707347020105374410980057733335443182291430372876386890149788774710185993882313816181212637292407342046709308820886694603285146048753749194444529508362027227029763040322792824921926371672370388497635258639400419449499008680155527651540809607184716460398088635307592120579779526531073098178692296230688451629293593274226379038281977187864201170258294347457029385450367087643510491065459506709217994148107537077314688689843977675571804542350990185671537973933948747464338357314958391932532823408207139369019709397040364022749695529547101355555795447190651916119516097208626201331194405176686964860839159081891065375098490452918041022069768836927885402325013573498011868507272085844730718630654449775559517824327963780510061298099161869085465626697048417848292953665752137517122374908562753664519962896868461920885086182966346650293568484525486901099209443559563159268700037822785770509046157491770249573420318985372761136801289069446109097195013266421552694048508116931276824263086946995086155029451755577357758021417733225573115784980176542252014896609018886538351456676608964142001709306383926839788067762210842682526024691293745298727765685965306034329391973932115909967932839960297469520714987158888129931571575473535589492126111713609648185570497776551389058107178651953724264581803572211044704542058840437006021735057505171953109783929965237513260762951833844848397334302663477053087012513578395961187985037398800228111018738882650893930580237561902010162719474448927283032249132597873004988294504200144395116947012227349492068165696667448055468232691736050763593501774166575093793971019657329761375096608420866158310032050540200256927090612124789792707837638545468654335575389618394286461326525060226390432365917466128181980256412338180141119182321582650335331941695245619580389822317847480416384619702570744186833387171262457385443189742229428431740184003840285745815016780568396066748035331848387320029886300870509605475581813982949555733491577565595235187938478975126569978202265094334821787167221776305874869193220101716409720462901195386999058336771405902529202918870754888595394783323915710458531310396078554195491238661858145240895155726721178364949360680588020407632697310445780397898266977168667518016868037236656547764174900272179706899839859570963870951308522053915348447192564296154725232967344945194326096303028853123276493991166886418169538028962508517012856900828589136943907667174228473206214402764316331681705480224124618048794201476250280985535195073414060244445705437407896972817638108917572487342460488728400230942046829095737428541902089271052243775163341816524165010219909101046837583408021354138562280345298705694884337498896727656812904639764814133451486526196322789991641942282806701836278991070660576320910423109230738589945688376569546053506370405591586481358502924092799090795100077281802805450149390818428632158921507416698776201493954091011470130471121792666033861131217515852285980071836113425048268643690067691723348017204792252991730145128920085470580230310630797105958836501123049778628248224542514657686906820867800680133401238994366095636788226682486351914087175342497704783342711980559254399261202458042745800783867835652417202838201244667758066160789684572500367762505092581538519333214569613225859017314137096739249057121381254257526359514138566407525237033246858979126013648480076823525509538872148110047675564061392100093323091849417696654866246698351051992555825506707378836918393198049755391410813413535698686764263275821275509550219363716047384282084641516269049263610146525307657524901929229692075237688343710998630100902024776782142817242569974926755735881221060877529149239758067441025231478336789697983681296612953630766952411447350798579338876617484632470599087619912398700690885290759082926310639012347676413574742504067546244518824662092768402878902693451466471482993124427168287797129624681296883438344572668908096741105453362358856510213792285247344165292430196264545300633113456870296690194091876289726168453369735385709857262900682190075009438396074935180912248503475722824446810959036710582778918134080063622746832304937568648766031554234859630764227794738068213257473090289217623652878209081962371237134737219182401341320866752117269670966498231792067115948491665558265151192240044352765122957018556619944814393727678296344430417079517180170216673130451222715105200234243348093309319116000546530971479942722233217437447498438188339356554153671252370964243792904790623496767028589276712378361137083383659315577427998586716650599965580455051398037078163071637673239433251653341393332603873970052744638950499503978083203359976848230064790673007209774370376455819716617320505917788966041179005718065514023782695349012683613345720129510797726413309224721857239512444501307201085888824396754964305114907329990035189716844278177816994466833556002527306581545224087649231970472352961446413633721645885057107931570841663093870343589553769096976575417998793352284595163147518740113273290356239532824253815346742770838072853606706335974140487916091213205124952601528493367406130013267115758638944732191671838941982645323950134233137765615171595466168422845237262508415946012339669626208950953317234403093103455386087137733579803338633451514794598640191116804683218846500197390453433677156470758782086270212460113830946703191895977989226448777562534097095860852359188167327597784266096433965292227401534625234942436221657219523267701622895089275079580569329701179886764515487471763316271686529947541292995106916530131250466639049096508036259514554783932261417362173238727790367610945967920772052419468054704715051239669252656686610705934841970000737733244057046790643070630701971984008236091568198059503980476734105144409084411115372177710050945027229911142324027663832907539881808695360596956610432007269020844888505813732514014372675829673391707237724613729230300242529884980933190254993293056104698446801402036754751312122276072206402526032832309889364876746638100231480766085625353139187090605769903012256382668598395940769512721924729433017656686216584475704497883949450952017771270339731338181298539363907823117725339161950346763003640247672574053900905546940411143790668331586861414701628066466425834605447483201997019863315229605781332827397899960729722810515590202305189968375782572617774376144756428861280427415222655590852060440025573772541648407260976753499328740453194021649719407692140091998259319995321466043597715758301723703642127744579838051326357589273634253512014187300469639560722791646853353697412057205619133526145566389363027130939730490994665321483015329304389923847619575211337950174577345044617539298213569712879154340580362133233980157428058805061239644241775193596899152016091934624774764241359146367221826442810854181897207732143687055325079209272537872261768501054440892562714245456452162341251686700610941393749455006106752628704269666821602367348786262164474801641350490385301731078821043420945484627077812196944426577778642771677736054195703602181920468861343188832479865575250669242920196641264082155249966224993761705733419395821820277342244800705361543326549487099388081794123942326296982809108399242050238571348468092438589251440713221068605646761561251321361261866909041122642996183514719135344441893139506831676903185903800630292128961916590794384962131189760290537619459752451636632315414942497333250706151749850709186380951447356166658081704441188473504242999050523284477008403987387955241735812774133967866528586166667861167751957191686784641523858212805620895132135811203588832421476252466060957228819690812085389437250539489171362902797407535720280184190457686727125052490809288444586927911488294448822841429262071545387364640337837315008829556846730540175092402052473969224247983038268400543484209647677067856652949592415213291092454161890086613942997598980083305721525153735405465464226809210482237262154728381360438428172649829102903148525164466010925413612549370080254220448447175414480147830005539628089548204127768297080007298767811616624572104810859694279584399030526878485012748800734832165204528709259083995531746200340852321788415020079496477886542974273332622958475737329420952436952247622351834698384723043967424494196810449869725383068052783456485944859258929740036994240138487125394661925828955209668276426673407970875788431216298048051212674031332132801002281129123120471467869817578052208293035882635777189348297650061204306940502851789821731494443091553313363080195354498356594043388552487392127242637324646186214038450774274578925075477805878176184231370950067054354425355857365793860720378824847788122558178204966324011877600852007681305301748707848775508676143035190953455899782073028387174426263549466270103137932674792286887255676939289555540063347428096520441925718537335395337668348785982905844874091339830289713831728840347001663098178340356376094397740315294673362707982663130703992476879864559533913389758237387306108962299130483843131019521197668095944003276765399331103004887580487501631164763735423504970123613478687294416369873104549332112824027213121021033870907008674194685670152409909109815287915453624329969943225748138490115448917977145822153413246502248650523423342252729833023304453878621152688286495463779308085515118579495333860386493074788469323423852851796834723331377016093946794624904118761957195681648790396631856483858503113265958255328400553233960105037635632908215991454512785626055376830009255422268590834803322846582400435236660060996352442755642543256290621196805041171513065580195434990625319116786213079737246457504037056930451553180343504226791982926157256613722927029284603216106222938496952345318950895434668007661031833324103147661241718821663052242836849058557111291355195584972403360486384503361888765756328186948904947098985482806026732072804627983809748680429654023359633225154259187360456562108606822700286979633912992382410905809049519892135363956955263792141736244682394124950815094109931246878093767960776344457901008832999081193402364336512029349125712092852147284861378772008887065020445370390195398563588234110715167884026681551346618560768528006928791492273843452320706922194380444453406427173108214339880053075137115885246548916255149821674546536399975480206234044798581898722326230182982467911450518691913272880224936844264323237098697213478144236111245990171606270911924442797721543793206539230309039104301071532774864070432248257566749264306212987287763156840104454771622605964172053117951716910071526969736250952553424446775276106592885564499321048999001844759272873073464324269086310627028486879293808136004016092264922504926842428041907649979090491061274013026671631165426520285884856794956752263322083276407491381417548117098667269998808357028925349449718093585455200952225441543266892130037017482982420294050794406371825719033581502686123328675436215432306085485032917036176173390638926296173637496950799591882690584893874052017708851807567149927333421080615310993546074220968125217547558730998675181964432758847454956946127903677208039715689444484915513812053208516656372000505399489192062278366858618547295221212025711053390649006354874397084248049724881867770702132218682724012741038080839814680811629619623137446246031038341509849792970744301921804775475135161567932492248484211469952149238777183262731256012744669907590373582226629893882928807296798403649517298475403935633376741122736090258925359446189137586161640879454345787249409147543121022442235121292506891977808454790495553466498142346084805011068092937282559898155446405901024623482560809979032438099411103268179347977190024892810799883128087122305151138470616179436721998687876836155141552110729464307755149324598008506212770059951665224987029626175562903631229314539709069719721505570835400759725555647390514896882884237001699294197746245171561065294170987025057114747554782907133633938208479690906150783550915766821187263583339062730064031287629343714407299725367486643653924433561421593779602498566370920277042426791618810457376986807057280478214942938561919221968672844779221843227321597810052931568923756531280110053057875350126182722705524998529883769002641774679169976213344683917849628366897552957856832088909278256016278383193713239898445261078235013256700570399994359535551447555125907120510444304273902214097311736510615720998174060447189856335590988486006613306520893157269437319161776528620820858508866171070337358100053381973102934340600016080609225403672639232988833200832407842137902883959658797753608029045746032209044569147476825260432747696565746203693262290114427656164326567682717030659960015889771854285799323876425614170301605107749388308565710742092227828218251004660765806587436614702813037256873846980385690986137545338760397403798519886505150978203898194008071265872134952975416743314424795494210143281766230770051806063085061826005360347773140875511715805408012313624746582145272223988866049983637798372675283804246715185514524377500131218131496792941852527267753600491858024750956274352225852473398115376298915516991582616462401504782714491763812139815327634580993017998649255987803649221494502561341141657527119428780247737599722518304842408226198970797871959074803093253072628973082869962988243991869760258398959482261840905389172221687413792285328717721942891861188577137914656863065321998007927898403777612570615295795202080452540933744227936063210805228537562338377456496958761971988100937908668325007474460463438167133432393663825140890538391336565261539954948757838095202084830207084267419737314700387562477411510169898026560294841134408030312924091336794002504616900470154937240229413903285997899854935715052396881038037684103030809956178019510515188110417433171936599776817009028202097992971374005824907850454729397682373937372681443994103098266491946181184429324031152037712373920999523265604646322616155711857610678788680524750277410518830898928538549606417691678541554884769966310276890942928986457858622501150570101089943063495423621608456630128437996835291907359553645343569603168691110225523652590992722377508343530091116394183077358101168270009461121779237991995753557935357066217630435485091383115821400759506302518430038878578828735046367190409437240379075255181640513478794841594967480237391732116902673518038501327065341511159927680951324075305579420175935207426107068246989659119419072609767848029424555921052469095806399081939852437208102719981900763734769008639335431441460399396292207474753942587031153983225484292012931864218887473665859491256941687775897261888226947366615469638391534876692408475591306333192663818771310703670023342283176901201659139178427127677740771264474058374648943303521743932267538264450058192586118845671455720618748863842312107955806874864255663761845902779250085771633558849547496342570103526214422980050526951779434713250053124492452416510435404364366635372015879168302694516087347189262476459692246904838308665168254368996680194240736765692999376808964817171114420456570628562239960741767583564040036047291839447859061299575991186166699395600612514533370464684524414456701026354918475861187844749377134894430443031732952672607689284530292161001966293263788141982095881764845802190140895000103573443125162249772695848490647324006238857305559650456650609913342741420390371997648831962037934636780297756540073291760929197934257171022945787874184855201455302177548001150768378174147915192673557429569974611349387494374118228139200475080363560307675191614312764999612178892149953921807735690493871380385530705744087909198165632041180512323161746652316894663145987956123210065893061531623997510573733526168820176687697652454094365384023011123957221314413687949163485159908199595017998701568673360514495556064713006400217115947081605142441452343940521032036231578144820888260661364557563360048333274748597142740852234535752861153898571221780594386276086273711694254348061900234845316334505337818511010851252082442385023919317537818612534325725494143465348733883705978427912678500607436324315571913422774995943245186035322038258118431348501247621641724135894064310174539426839706090629845610882281604090521301503899868814407712642369201471478292514694440319582503812505829233753000137181979437157655179813227189610899806542980165931631083431737528501756197919530410919082928755402700137780476622254214496543724306899537487770937249448100167312089443984763124935131543243637632282620345446728976691834923877947012614132680703833001021804397245745957071115473652817429366179242381267013838706145430060486702717375162170074458435838700710584599702636001988421886085433813600050085739639926640259658422881604115683300983322835243636734141188831616704894657276104724569563028187757934051695066835938693537970344878817115149481917566776541861858195718979380781592085035934503039464941556331017009303687447175501497783339808166943489426290784140281838316025180920842915844093996006210014771444192279220600538180005113458448966454045514538463061242292435354172433734321414517095179443350347463214148159874332105012144692667391768426755539197588620382917226006177927243993494620366132644159121763136395792399223409922432091592315920180872691888137823116050636955097716140915377231712683028012077587784477072560432181393613214022293582685784118121976536516095001762880853319509819338208480572215489680264963199436750494006905613481765755443721031710639062022178158016397317843295918267484430809183865734938802921598663184206909332609781352238144346525530080449751075552661087245244051277414525148211296343281056659318565410845064575760418662683044266979904156960300402531150449139768191910007927162203760032792386458313675740746312411055536152690770173522673256700113721610844266191191736130034275194575503074546759085469341967375797167193681220316029509489061603368186767960050097115624831413070159327163081333692518613036897716107936706161853275324517003813896605351901334233209424425995377841575284011535142223602102130076739397568272484208987436592522050194541327351694150166394951513807446778921416898082539775700314100990574584128680514790644409088402965263152834096115782015581129876224344659551060229531465098862401063951993893807976386458531208333539831564332744116169418254379707679807857723282583943986885558378435027308621614811358576662348988726730679398543059345230285135702465952036812953333139755635853871792162081619455335491602363866567839270240045268886007390676756157642300090535047049834167191832075223673055234367072326145534793013241557510502964152432414394579190520953148163394482290822355967018601301848724356096012558999005355683085360541003525277958693356720616519743425911702032667014635571807641258540104448147148803164989484498717233368421250343654727260549952245238293865234080528235047172192296002386764440104607019948476313265224094498504058785723578082341895292467464248543379944646836392284211998914840407507798213085630436588558456964613360782506036693047615924980337611223075080077247294294082307838816704195132665085834956902024813257223122742483429386631064167021315126490372936787504054400278108017780239568725700580776583522394088975562997650498762104579130456764317710300245093932612730653249172383346666103695240475183786950383433206447293221311644840434182080683266646701757704849928266331895341413073238882716049728221826591687487844797734512056633827827187958574137910265334580954569214772304545171070342295633049967958040486679601484040868426405142889020494434303319377133770080452878700201065495375094086024550795008097168768253798160110753963645721220332302140928857889447533634459694144402298972699284265934685981196188047912944806707748758778264261303078289803732546884693932619437999016326384544334183570645653952581269841035125679972982477210822456402156750215238318495632519332228788062722486211185045447734420863100628878955583593522489033290520285879427414827117521272983811834059519504789135830766008538439642368696838991692703837518426231993977934853245262044856301066906958481404850310463908839346215278234388344302717327390921810504471760938037707363954396197826446853413955025074671733635285959600225618060963719044375536028276629722292238024669308842609124180804931406811793349112819752314028349077972548738890098162050115990951448516188450231770857259809184772896981443117526208362573565731106503142855999629312737301849421486369810238658711387774842535913984089510534480873703957082159864643987981368894375384198578317012426908641038814050752378835004748371525783376588783681225426320426715159994509513535223812077806332232369950843708108571926283444325076993935346738160255288487347951666132858157630104923046072033599916602598223694933050123142653086906310286093994444790560906474090098965189765658449853855318269983524794047522726744607153148373961133544857310255787360894411604627963839396902705460320700606029210696977324863996391494433754886225174196878779748801830261764096260752960387789139392537603944681687658061278920737956620937970846959804286117525898588881116704761090197125307156811169246205754870516302173753341555243724372179926213806778924512373150785140266598885243212486989939767436613824152610093157238400554697635512917810124651597347291380575700395646392961466174350578784127084182270608826154729802888522920865046435070857837960666088072368025291767211620974820555750251165126148420659281113471688698982805175018333589810848906831788957094786986948807038870715805263485920088772857443961955242666942018296256371366659195788393704529755941783103715674479013000669345807845354557336692841563858750170923081407866835478724721648773265940868025331408666671584201238639038815642242662990273818129326192237873849920884933626697954422026026824572847009696658006556462912592503466138038937188184722763073559961611306762149226479258859223042795554929567666251812648637499798836654454325607583443624392746702592069360931856754159309728266355748875382803633467840055008354126573112147011977856044098248265648115322040157091242652582970337148872060143613241568481009868227388885991468763094198471562427964336510075001594921924448979713730874216330300783981645198280656853696317862885671154580466435427610731925622096413091557286411154014463887327954975577106340223432876387129919021273190282206728490801009261163924206974626472591778706795176861340465476747809219973960667557072678267909359505937827844301764136541517806614167685439550371945876093619469618818566582764466080888797377634258707582701869844518415130525318693980147245212254158419173649350934248824647224695308903543165529136726899746546853687919768754542600456774808146606124423215999847237983430878797790244511906417413557320720689994663027424183661386642334542417301710925494093290684743865147283855064563854056604257617723753655679499937250982171661115912670069751061073876818755014916415010273737431372211149148355982860503061635046058457407002756728100554129328949656612493486154881422445197440638492499038494129922429299135577571634757009124322098410205695892424859083202953049211443462492112318607664073378854780774894733397189935692043139049090569553653846608224347777861569565625896648288118886654197550614651318032776353862484044240339930745327724741069379958024965782697660121159073083517932636557865213469241679541512301654626748862869515537815200127699209346097978088794974272981510015505216737211812524488579721228988771048940481292928968686062056230630152034218732225986453498171754122653682395967392713394022088180579706925550501020579182773150608279220066762031436414380559997209523587776928541518428521209232602019920737697830048852188986804901341169747062234483587868312427626017134262055341262663411132653530752475143385961261959527719712543862377083199355557993013809245755498879399691790876306523860450981306433845935184018368338644136697930171395129018047241696658192938973606687589403854720951502393521741409989017901570790207848014104943425104940088039302834396609787951273110206488154561987045330179814674135141758439813397876124405475738110982586021528883636413725200007483912141361857693007601703145929417097374377992100517121152097680035041712888874852869504748231160877054392936302349471258924434351741844549360877405358541264061494589529667847011066517018387748799788595214158620508236900959055089033438533112719011152374250973836557024332211380676979918071187483620247756096709592638519510048596320963414264211106604204270082826329754538324832683995760193324033452475777063261870896201915311393591445349154655280026469384212822494417498194703780298758572152984823874943616140295774360774027878276074239678265647918994933212752738241531241005639792389201063045655017712672156119110106026589264668023366006123745149562127807002159026761123003759126610723110802967870402453942138622094982765512373194203987835783816141479609200031381844812564479697535820685968800923082066600970751093381272633110667521058382366105505067039506048157636825058606803406471207742976329906406932815371740284387947332385347185339830011429550369379033595371987527563381222832407392529209535048060336665754695345117006630603129271563946551618888666856591823724568644289523831180568970845023070973856033602868783267158998939532152436489028700591046928020102855900684226903729451299690144498327177203739677359933718942837453168685321231920295283387913033676763225892181520353882804864139519811653401584147103777253825729630256945592020427640603097457144772151941657989418411202477644355708098860807099724536497430280200520408916405945575864391278545182377346508530540695937908085143649937310272664793631388760203069447358945190574813169201324950555083922097103203853172049858587294006128260782124507574129965951362448021712442262336945727441477295097051188076342817532031602820407424320446672749041299702671941376715897980455275384607833994189762223509295408865329155852566048627064595048186348429855260386132210592518080196568579519948115525359071400634036237354259415430459591038422612713339017719067158107500586403420671510956389708123442327267200618515270538169403385685039863435772182096560639089874246176219245817866692790310999286043126090743462478596409041205810625403004290998746212222380956842254648360515127940783523632222234587371208834311779451637903582140241245000635615613156215685276657050412918433486794512734619842390483141025827409406534857984812955656251219692123177947124621002891921399894600108890017019349090304364386417121025527159935677923592503084632634365168088875744831025493014001635180130706610207179279132280754250737479737532781528952207631887051125560572218259381610754613801392946806165980216672744617726464870874208000977554694658439721242379028233204989858411996431381834607973490421913467544097994682360860749331828588813873373374959989932462668271642308898040784755164497892904786769134369680785404626540677411386475148796556332249278425564040992708871256789160724819743127910499937993360894381338774860910075087273269763087608658634904006153928197017772354260305384922528631600478638825801103932763803272165278265113665496322132408786459517209862373619064798407518266515248442936534774730413913483549099980812811303525944265211267875870850093274416064626723770080161044942372526089706637608952565007933280652421559822833212473909267371285627106963696850323497036682680096266222135789051036066384429502300821923921938926066032722222532776968720168002740576106912507115945638753308862342786988944733589285171188736029027922276783296263561445738191994429838082239633370851726443031924907425638094232478036773393137737840367120326175470713380097950214063724587948922088126504028522632659003703065242520065892165632928980100532970632034594045705522265421717722976341998957415088534736235142984303849902489145282674564846101282651818394098796210157304030515321703815146893359279835260037513747208132902752847673252365000643936525572699598392373445087960262251313128555490740370307732684107532508078606107295781651234143170139697118710003748784089538466876967605585266876139276579527078249149909538724050461310810637838784278436406720016607049609471435958265768144597836148360292600931260358701458008126723208838925961218827353350086176170902685216753947245845800096859101384156894875426661857947025783134371345155948583606002288225621345710776285135010899567339191199449080287793299836592884848576967192253967287419590785478665513717295064361646685244049549494472993279462441011649059417023316151461634379805608541709083548736103872909465075527829666927115314242418623272329383163820520153862020512151693073010005896354920362589555767349624015046362461941508613993777332923340213781689718996479919517209808017344944846740366210901355784412107196842594197357934083851534391609434291084073720544964689331375296155668184879208597199708517752101732495469028008287710682212168931846402593189955774131864937150539439137158684239410691869818453169603259230590348631551320870401376032736982464430396852361915660990936326026223594064163136607196352209218638476959234277644899713197470214293541974696696206481375168084598218690250354851053589043367283828021831951478686426694784834216202701837002977366879179198304970652126093325708941723537817631802618396522677414997289422820160917038778619270929926319122681692464648245546765661197621877483628806665063068618164476782023118101770819678975332126549604991371689837424665399375519430221813101784187864869097776807290727628695350052090267205468253633874992828526111438585584024644170005057609209226541385937323864661323352435550886637425513016580215406966471133683512873304348375310441714735037187395144997574712026659902508243475082072415328212071503635928268666040473360870797553040829354839372150893773879527546760905207484842544600757761215996110976798360790812913399126274112336608042064559651414528817918728667716997292939824263980880370463524044742000043178838568660727329751771260409426014253918782024974399309272886585260034171723765804031874347643317884740946154488470369335877907883332175480693784648932971750253095946399091809274297485501850475658056822439981253349143729731363032541996460269423268442702271559491114634767607172877425573013552468141703415973681587749706269308291369756488868536997018330785362226477065280352372006756448473835531893635735520571406687418631461655227210291643002460008308680218385915023448508401413135738170309368316433910205958769810397048504783942105990383717520474249234006805352530862479760272423445041564151440787906707983908048533477579462390054027245631354231031817724190901690360738442032478710079434844334452851747135799816904671383600326238680757626958543290904022717597950786931431534677813188781027531294132025443528677878391620991075260726151508165066028296343510681526539132425668600957016540798585529100572884456497542917845088473114598681452424276321439872155619438519714375933267581010230450914676481902781499667716853668767560141212236863713042003743483050573240696417345758605960452055292414820394048419733279225114278972671654799768579067739953323254137398030809974702620108637342912800568483063526969174982457279817424246723459609327534992872394512659981568740668197983518595937934011108715034748811351101237485849980930344490236629053927971223599627783327033170224024680440492802840794627142238162712260636836963987487527145835593110365583584784617796573948661121181272822339379425957515059922339030665542403672122829104893833099803934317076182937100043489428538464237032375333502097340694489784731197249276646775845111858492360300917388959383011334587668856038142585451172107769207988232800773523445444678545841996832014679832710829209838337157775329862877272820162888266769294612968901576235723671240839114955118864315453901483015350541137415423329461542343781646091004351572059824617903128848025267387505449740274061361489850006675393516568788704013753904458452669258858749893597067946172296963034407954887812082176656383715357293113356698367860988257221009395775273461484916550425446175598231674668694430471532952512522477624040202489395193226717143174409549109790513475122490850264625891061602534085487735360278446762304151180661917381026517539184422112639234585048057481825833900987973668948586173374990359619194677905676876517260526599445770791335720083867604303692518945028741843265721838721946347227511384258265080015535031996743138574327554762562215421182027993409140385675619643040062476148601077098434021850568331587100782999856393121334691301494222216019513684520685081234580702789618870674798807463704450122163733415686536400716370953460044475450927378176791413892633405122499914177609496238516604646471117599763805409921501518891292423388227563238911345515767720563648394665188882889296082213446681147236175751725937945661752683151807226082861333723817197974243196176754982548154528587374794573176940072860294854574795519995205352657939322793260370611051520218555382803727800689244323855117957158763713241677443031135138246261223158924936431800394637511949529894826763627959644901735152402470892045411612868751879650409356719680968753640985067788915442335777137084778546621795952246665519222202719925107385763168014219535943572386283164367212071777937983895564649909674267566285125951896436319276392212135391943560012519441335066795034548254630870027638356327796787604117302576036688280346407800876919591119990421188595588325011935722105476057693363048071566043668695631692327776840481540299609361399646101083878942766566621977596987269518063247605582756951499004291673547682713571898968354521603553627377873041348125409640117359562627511664583253722083847665651260853473090073655295262422362852425835982422154427720995981849161703150469632552722005196207371993251167202192834098269769512016836561581818948895791640123800086807908957074778502317628016888986593071273792587992766176112640176297393999040500541813774781806759548502588255041606465029573726943253382856316507886176585806760945293349170647870939491919244960565005810737399615136726234361405458701618181997457232770805185006826751529553754356655233679623091172571534173931673700775617664587192124084348632046402568705035359259144641289400620333698705039287792139440553078587676856732784682495873951123379689625459065109709407988400212488730638504531241480513641444813358145556312881161855777808676062837215116247004315227946197739254138789077899712315592195188407201071023647222484461404475629586596782909799815620022119148933332584778943456580612495939681598690164394909193698772463500424102142007517126030187878234609235252956413480514102351436577191509725318206784349002177075409355428962637578688700890655185131335830792495363682455133545453171178742677548216849909725399522059035949618921641273475894652034649519116798214890695377127105226437016506502798903247931422087775287384844958987178380781056481104525827197848455731111190032017008907250825750148170695207978169241813379204359189459218254706450857591036035002176420382699890796563316816232709690263540538369888305136925347374063094643883006112175984064525069741426917767419235174490430310066869840685184647142697109378912184590245280217783806189887003279427942739358719736484433675798810948551993556564859026787861977582118342219273635918605213002069389507692334852795618473367226671355246966021581023183225454556427715647976543784492154148424617438305318010483646436428088981670683727279421985347852226150037690521994225391905495305653747170512361040924183374563954696656175416525006832053170802671755080408894724514220811858366451083158380474856882415751773987575879644417047486948422739479033106103472181974626807007056439991191613254195281370759745954151496274574805414910845971981473157304277475651653762380986039980502180534172936154837168499126313244241684408091988955225824680438012680602071288982545432635094688175113181805347715107352993965683039154219968342692523615966348075417929899705427365788004579832642572472923966549957280720639407080332969251528415752902663177914838006043388539407424054015051555526095705886646708990140046992248731529679890691802431079450204759690107701163046846225427484121473447683407702248200844057846732652577839760569271110585216953583420611855201850503641099791472177851713768494831932890653400706224649733316233573864185761798179718150920113588267650320827524397867913697891109918719391074204005450084829788856021749233954765646013361183346555304568945293431691693886902743552199000239118312709449837493037417358262006796173391096879000884199387715239876185646878008450375788036428053563855878151840731925924363092246462611626179935037741984910408857186668573511375255013721765463080565499830954913755185711481421845890582265606965950912520285489353354565413181728482234026105345839364519504787118239398729439532323935985081614227695003793539545196447005835623108050931665303230887274129383505375057065946866570624459361935691032163751770778679648120441530333690099037108273759085515545081975700791728703602944078276634629768969891081363057098436963082952153981037038275506698221496209308491078943109469132726990435560519559981565550102933197683507473459689307094470413594380676609187696522499215613869284600872358617747943693107954839156596896756919105426913668820820403590806408122175712077825826786664954259351219618325597895169655636050131190777650526632226271646196977020272040271257187043356435609977301491548593320238420236900135482112289386200289064701379894743362993496340679003881949757626563683067973644486452837702470502715540309872325030418475027349652433379499118016688742706615266666768979151151115962498082154899855684671302274028512784081740412452694826334197878898589448787056335843278195577139792781387613905671052921658349519682568963795035262592262671524584281404637569065592442202381216738399895457660976100215015679313055795031816513673525202242863467073297699085416076685350176672123192157633720663491910645384511445649674082572610677744418248285982338489694898752535199224629434579796440191403246903770495499661812003470972147616760718985757302081007043314310951612164240764268237372408338369292869790459456742793210615977232203544595970238078847084132456482897448536588224708364614151292069412571139775989553658884648365544726760914678068864450761457902656130949660418748352760829188642627032829771757162339681704738340603181155856103791915100810139626447263339119590272444705324087646918012458539957669863097238507625315342427748933325616909212281835943293571249290612867473215700581303167736138935410555610284942342160244314284946289728794800102679986247928824630391249261152901378302361406817540311270078856002705317990919613881501626464850652951215841899384274617262758037449243389943798529234930033478182097227721862981803688563753040736459372029250172679158910576549904541468436896198203237973918319370477868834713304321493375055793522285486050592873518348418711195745217501919346111123379380365115651917978220303559024371019084103760815212740618075794683093629134406017706615770682135280108711895249051857866785802390437602157530577738740517038785799789396027478405553976711620988421412205444773592068007339186221296122258928026940136895475787572550231510971491244669354527659839776082335957459665243216232036500353956322506151313286542804431989555251131360893104345388142039470781103723910427989263737098192982043950083499254326357282668858935811326106596701628230015694696752490852023818797286002677894069105914231878375932289702714216574905685896875193869900491835574930339030155316978262201507551147865197496066194766032788435620780905502335239892191795336201442181544275931572448385379247588334980029433319421215589036529373992172994481268586395194241395688226623548419899322270121742730528441785590835842203295671033423030408890287790240219304881559749939796469618119282723225358506717853185410415186420346401762108964581970317855884429699101606691994645902111242102844458672109356482263123519857785819561947094720857035258437052708369281456400418953850795726636742161145246124411548868464048468317490073387241692212956464513248706376329307878112376541680817851504122597154674565713444473685464694770773205296448622258629076672384020148138988340438996677891273730634082143931067474275554818528731196559574688361522527705290941173583644769601578466647413589042915147260801132569765086946464045393110837869235955026241419437328631071923811068878276862262304626772305544283034992547750611782185123691067568096482440560021040836738875871190852439431027855120195141339162930396932682717702426326710066922144026156450873960356980566952013523679673046278649231463967570879546757352099928993207218376735685696885569755529697172915255625858639052569515384367557282260376822803993505813961354808670676643225875406648884326965101096071917116213407850424951206683344127282056469630941358304665220597583680133981142412097778517912751629210720477865011826637223343481321560303680194795820243969193559486177487067379484652295696663910490711775154326153611931949948854256283279110224781860826893859708834170395860088790475671144590824540220326764698911658897296905346378638416345704130092707286348993208440092727132618850720425240634955337619178186153053956062322420269364613325933287737503401337599258709580025630767885308058115047998087605010001047985851222210185480152495020346890917827359953074478733832558001262693538947987834015232954768949695434217697572415970374633449482419805786330383073155404640427868883811009234893195691411020914234072820595947023638391474684383931637877791467277162383982311289852074176127082621465523537651356680665618424938132214413820736920579528116764371128269853647253788396461465976366918371476735397186661539496700785167530891039044686615134515870420614786338411744779801247297818366965999417181371441872836299414231986585887286128039771518118723845280287196019877983252503911760944047307990440286822070118327528273117255185985606832726948788416956483677332278817782642227258618768249162226014504439249847610082863996975257634681504770775459696219898752502612307224972172355508217912503499937878725502047328642389518664798952541394611498416913433908343621680072930029456683978121153523866928845676251384995498381879159095291105736326673505078369887033147075219553813704444733508177579047941830812396300071596086448265818946669370443922666954610380269771834984808548446283453082822595955442738948325354591418776213147281427884292677030400005039233277115898220719777283279087724884771290738456260636389366588410810886745493618918996254453412919949618985535810887530109663245251043407516777828208484249106369000249928357218010142557065920705505331180145381181870747957759615445048759728065188969033102113690388332124570442663702432690015837047294636807847970257225364749061518325120866912918553550825973255300255976374506995644639992532034737967845019909211166120529323638240146144218693889093962383883032318552027418448278943813391470030683243105407867006457037193426504953953805768900213971905463976200961889382761026258317224306007372956788135602222156881434229856848788338235259282248709289973951102918953872129943140014431588915932790623343843294617400279026331665138011601305750008537134341483930368759599897092630029212277896422210482809761593050453614881921891658667168893709338875618307003761422323428972904270970013044044355547031791839267722849819067982224820643566692035074749943945592825501955112618994663678787314942991692247570240451188119672166873985476426809829846188559325399091426290358997178484525573624258864673593051653609973201404147794367584579976406024669240122986066229223394331252633766794420364063236545779797625005020437652891585968119156808748931451351532816893742558108336076125968112857704439755179700112398768548503895809555015498202313522673163594297657467823360413956920592450794375855698923879682158561515809791390910805731014538341202714174953770636174643496642612959141404428030104625598001441465966164105324586951511994329723980889531740909286678443476528783820333242206405852641873939092162288318271033594116483868235387892509364749890032849864414125980960335380147137028906814749492194686864912304162240492376544906607476726959221874866716806198636697320705850107160818049226983667974992072758912457730879940525589520690505810301345251471732508948158505016922100670645556054579799103743329855341676999695845209879417521750140902100509718395898576668835612212182396654346212240111257258395768262781191440407036819192952739375591073329358779941428205160447200065314663077851127232967102916881644118334171039419218304532033498081682645964453934386260278829402024075761537046861085235191193217497472998999998768038612535881633934289747752127201624323866065877821653685867129742980088619407723953273076824007429338123712041036097322321151109152926884170332009440918552954070744077263353798728408807939426494103900821067272381395121891899406380290437801832300386774265286402243404528799788191868989589597278226644414712827926842069384747784943891049424244729443371522718913485731530504747601060695581985836309301643056068605932339798351780534909154284127532506150012577695203991187228533508733998572046881539693420837025606883136854362384340649044380663133576352110042642685308413131358927375834592507243217778416841978465351631451216781076179003855080300996819998264334019111444273171869352253690883083830460869893565401667664009517088330551622604170742409939031846814090557480531124562297311556020596032952391023959238320446502016253781579390270979246189537592053985748711105222727324457356187997749874605631807735425852840733675789155454404615516944376104052812322764234976550844615523633064187572381723566265102207599633409897588485451467356531524584179933872248361718294616993142901391391189650739600386621877441449043609003492265616392206248916478903056194691245795406668354390188787807238382144533916000616206804012451274341169153654965073277145504679287784309112379194405695005135123969429999432680630070379642990821369331894321779244092874839763638783998022243247392167047702805208588729166507971290848063859703203486897389419495000322526720288807119201577203707533309039080687019802086161514344384690792839362826500339621447581571118802755720532912717881511881961649292955567414807452343523535419482324415871677122974608330294220137773048856620963147754477509836337507453768547306043906033372815078690049956558712044395560498615881229445519069067914839359686620204607552319356765724177793997413499747576661515891010710573059831361174242050723714827979765244751300356071648906477343681764177636132968237095505661335469058189000210599449135573301030988159883603091551403067819989522234259149742492085623572453835494264708265734584868769806853797812994057451136471990960478430019007433277341325938037185288278223030121949020093925307248731329157158284343387201783914050714001742994249293098315195685980893453403407685484640717438697148892912019297723097100171600934500361098295415003367727729683680221256821330006168973015810091317071455913293760070502990803811705769900423617236806868498174366957311225247480039765361923878090289092782478924348468089093506212259606007504845166226730778741287032235656998478163642751672170049429160335797182551711765938106260145578871883068344754569895284679737856259926555450471396075945429596873358140641543250002326418751924240670896685918995912646114799542851757759038842618410740728620290633850558818156298727936203755670365572715344521424955230040958094257686242805589873301850891154720079340847952890663425602683698922828599405895570156401832473939218542063859416692889078792222404102885398025239495522229604319123160208424342753067178710184096429136709501822855234379874640972776357498654172447455420081751536648076294804776318552143270155504346266243728795275060677175994833721789416692567651805758013424290393607170177091745021149322529252969895540046497432225517462721644687429641726851016517918743230710069067226222369264444470013100522841714257297182309300870110662697898392700384829823847960530563716398118378194910604065188764016566538050454945861847112451482417207421830249769730861285672774775201766579500463777248455993923291294231475129543932352023787127417856154175656214388690405836052624689048690602530925401145864034514994903831969553789490359978185760777254935837851916107727613624585540676871105225126917352187095380029892613871928423933120208776036467783866522655367147762889304242325723673150085749560032099767566157371072683268334190091055156340400420000750056794614640093795931621084273419630610434941818013861287105078113579319173824126446829301215179421631580977672257456634684617756074115432835762892126073497904443757758876384525756317979232515189376186354877669108657703441966276776977738974870957711581077484553486035015268615371882294867881440282329899927994505368799684264368812577270313565681602385115964753594593728156097655402728192150002962537156438603415384035450762903239719943757342452365926852929504618829506553659317449637462405050050559003447837354560987003895314682004793648185440145969137871666328283899542478180985634779120145028741970652864014202680179630543631183808182545681711546703924375710048527382614913188089421354292085497061052443316754273825057161273065466602805877614593723941198730806380741996405403290846793232938658949723185236002878364266178974546110810798448278756080846003453826840154062048534156697068424093557172643055031601953007049899465588023999317853702184050090492989567450089753326743203769280811693260398404204905437682747023466150544344621904884944342086290805589449773174586914106042656579127364136346388487060833282691603696492406861065734937920117362799208311735026593645551269621831447672124838686943119023420300485227607875519226800427303916726267932969227931672020436495689114314686752662507183786735117279765191767992269291262626845555648962519227004543604410216723474899609215310308548385979468360729508756376935616280678315238294267280645314473191004948335106605217658264875365248622101227196086769820385548055796605960723021207098017736075185880083410810175903559491451307745259573394090091620457067587195661297036894656296026562552109005482537595772362508095111678478306998276122272613320438880141916405425077719730636124242374438559807749212345642471299256914455475227726783378475216341623345166890080967659300460040748746644636654326718930454687218973386148637372689068579279523975007495431886479678582674647523440925782376429761348412658354897852968713113696455710909633198233931019876670712352539217932814508831906867173351430120883910339915530994669349709866345844699589420856061953990676912372432825281805847104013414924033744452873954050334391651188878918620704051345929297677342536347757727272053197762951908398345403620247680969280913418289470527879011975378093048640723914522780779836654251350675181295559166550239498798315924936350254414004812317027902942003529479657508391652264457273281524378672995050640768501573308011987409796102063305938251730025092205461790437471814098699859033105233377142039154237513202995763768152697721456212090375471666798701873425981629563989870268623965398596994646111469384534448350660657402033537481682409010679859540821580680816702687858662218390535951396062254002439136372618461425077693095477635152217989095149815111953663474768965416185467125714519614192804293229448803476407524547780339379023034897048250939030874678994335734280752852853561412415255123624215547996324249872057146072662746428452845145911731907720628241532500326840615343249379541990317115527938887319641768608207853163209219036839000284919135573903392367553998339999240085296748207652866519727573057501030163207563322337270808141354244727155485904989374073127105474738878895709520403174417051576008695707736404236566072802027927092086335950363566959835898305766252622146710307427471596354088492627824579117422971199340060085403139334040588305629007786017983813982207086390518638308158663464167456345192331007517718556957553912584946043823340391496034163339906245407822365081184665413084388532138021958736536322411562692647707376363449554924196830086709035140491589108655214680692458256684523575485474241216884841889239186405628277621266208517469341964037885440209808145595213846300987488609052485719003773170060016524721038026384352794649181249019698796151287939367941940867878145384153778616964924968302418356318905541843518157806957731635969303468347984292935819415790246316983237290052983924917900983892757257007441696567063222313306115276832962539679012767148567952533384158633415388853002249067476061307785813883434245878195760961816247075885155269321602476239942028120047465675418518643217972063084421503536760949479908994196761862067500323754367646827231759441014838039803876978545987042378010531781753818908829341127295349384816005381590834036948223552892290289672173566030658289313985378017013605139769137430935709309939232258513393568006614562314186606175796980196623614023569772545520362947400961473733940451806470736573709582003494080401448972799659214850998799180211446681677099915052921856928142962571971484789422443753740211332263824484500503034058381565541351361875990334662752660843476766080469819287752690957868559911112251183720995895305631793620224365063490832493321132948815969550345416339351956267299173228918506932113130673064615193070936090809827299089705033582668388274071502897270508510448736146447278845252201218869912993003631651033547802851870179734857733764633567967788545954619736695453070204366042641597602311991698184513289669226359491641208440309938408257527423748812546847320767161659127021819990243473598777391619469913058982616123510698045864001970031477170136007736310221997084151096307948646601522633725121340467266513759130367589852760404836686728056834721590985858124696009737327791031843024149321787510366169402792076219697151265571518842087413744556940451686366513086031032696467900784886883507844449201007985143899320750718251266602927182189734628973004798793934979325561511858508300937149206177665870759802958249930456923117143100832929166009936309203442256623184540134199175534493017816605094117805488751944926456056730721038378176146924323137406732868645309024084111459436547810448785229174222842956082906839250534797687571544725731045394715834802013063723200368149000500022687903037129337145973645368741714320532970108766529931640101132022028550987532182824859589460760806042497097060536401852895423967899539192613975125028311727574558775961057530747455740944040406924976067700984744165595081597204857667408577519930023532399634340665632691439430130470531700641020422788486335680169559471117054144855453595618824458716890282111452452458157019386369649502041945418495760381753668283945646030676000212989149197269518219071677528622044062877798820195617357386315075989750094421409126558352404499356722686721482423961918186775858295144046674893150607730067072364537812477608056499365356168557909250191005126479545515947946343845946048199429893224912074446566399139655078289034043424438339322141616652555000813301372598135955578533193512328338659946020194998707190681514534125894856469747991315298153608118022721046322880259784741453680273866268960106329566817246988367660352909710165977243909616502212136019365174503533420303096027020131656231626281404110760895389367521343797259464864688895707200999876577393138434993820226323267717605490474264367195049829148878364674887108634316048150675823275271176481772042286946698617816853009968423570945239380021436747303186617824337151139591472301702959274853933994406234326628932593554410441043022113775861743507992808128088530348862785944815100966550066119883764484681231528660709856942721703544295922437490193011599959023120103452421491834759807288787385986857809741762957946807267950332681212189089542963614260531342818033838429249360114814982812599289190585001802575747343661997898125639811836255236070538448579016721820415278789132989855457669257693562383457029625593412482447400810827099400643064591102998412384747244241678924031154940410143072785929085586527381654811700058827819673194857305443856889455432464015342141503612340876012047959129916863501337444728095320069542557225638891215280657517570080563456075515423883982192631428340973318502024964619210746249490590473638974293653631601976672100858833908466180062854040471155826828001570876738401896982472331206192606765873680343448540879192102887825015175588051938403720687141069711160978406209941875672092506929528926415605353040756296652132834458473477050045241985577293468655996441458490856908327860345380000243329050946200854263205155115324912685100521629001337501960478049406295657801635248128034174412341493129651834955763803854404956303437081348067381189595945321990930661966616817472959201136592719717588747299924886586922718297621043693426727453088867638881635896881839424728320841527535167065795798948159604709981093090079756606056994505064075539201008591360314316690085858098526450935913762146339264647902465663283082921122601251962844387086761190319507264020106487031922341859983858398664354478147379149943736096163790136920624295601194506643351000151649881582292823353799634146490640687434088243490111670831900299142630027940154341992037314838139855514961100781479772984869050277415271925853504959245750227125104134413621932406715178557778126002215501948732549771489617369802344032547646094614609891096874736628831501772766421441926149955625729251507813609384744107624903192749548257615967711318954480016776699561170643055640535543826918090978322124792041071941232384651801300644134246617233983012182688184443038820672864644231998936224007543042278523359760253419722969898816601329911918744050013984510372374722157014621245843619188204128089259307780227476230335076915217086612868571295442026678235706283351747625551490730353248130325378781380760180884806562207340540692041737735034152071128180991589052730780577453121388469073512580063053080660508929461555635466047111826249287259097414448276163708157073813906591203104271510865403685931686074859225808757649842660800286822922138058875900671019348079948958725821295436155632775206140568147820485238603244792659126081558456970248808984571665744554560470629448796418952300084237502887117846511456169764445181917564521958235562380702739877662728458364073745556445283294890165797474048554318359344998485862312396630814536930438352283995532469202748260620041817566889497331613035913591890238441631548631869453396302029398646461069058497309725096132698808705119464811140674029306212373714102783391185483059698471814978691660301444535117348079340770935110455773203007251528689799887598389762041201000322571519205021653940090549636520510849510146304126594260926516585030056086039644647534611315843486380333199288085955863652694178672977859835281454866708238985512934284986370654848452796434856646613521105453263152760434272854992011438598338714383598640280588018720074793669551769821436909215746584294819980110150174433224857928911963476174014722945225747425694115854036230884268987047909333250780937366629840263611223663047739590373491371472502793190514394661101023704382180926320033859903139990892718397200437922940706502953464316423331371853707031056781271780787764104643412313246428005628243688705488240850017956596755081508482739723714652703167967907586745892508621161114018590833175458438672234220002886937887195918366670021351464858634392188913219277561703922115630864960712759828930305151217424649802472412870944956799107368779636721637198468826551829404866346162453114317080326722044792820883719738648782658871215570075338283410921937369016109337740773281703319405768651963132049327321049759382508316570957385949950913854065038779855700594088721200734005836002108734832714643107109187259080954725480624062891281864204801069021627196202224429710635570245949994690304828336308167619066410893794065211132700617607817692662158748247362813496941722483413890998985225944017269165011517476070375294441019987283837740185117888239224553851876520220705848462551555284014705413601040649759395915084671059237474643488698401517230940822029482268319274079143885471973965632394569555249500192201026768718513567542648464014633151256457554190193729914796947935326202195300705710633381921148779379205925418841587700609732866418391356424039885764582500107981465010868819638986846032558831476274522539465978881137045320613026018644363914448978584688624292198553685738205811035549345508676164692542843454618870651451927248093626271915581150265999890274252867927764898185999212205745646018603710838668638711265512351379330092401792562394746584779894247133385070168461952860777037336725045562386639112376731100184905719329219247010465526559817892613261640256541032000229500385003026902486329433290806996898283422209482052241914755032237301549802274759079542853033515059089422926889953491755489913130025548344555215679242260911801001363952086000896199238165783740430703551147843335141592660583914270740510274486972791190742228971066051167963104756198060694958557357776817568423091115257049987051929753920720437755582977765235466861659505968581968631437475833402751880091333787658752159702905814749333845995527077591094158293663606370453434263356912124518098671263398607497099744193059234446452978355937916722021522485428868821458096911789524310726250310806515398622567617081838963255216983973202281700396246111424627261654948950428485957311805774187024000306072565023647854689087131325684141484565873454644038400635151177251668520690323609448762160107965423195332714920265177692626612452920035191558647775947935488073690588981715932083020414013213066572828456037538845906627219011152825056396012898800528268526959905558116095303538417080660377500993294941900061708218858562142105577429592816764456613837065465086487130703131928641909737732927604733048234140195274760725663295423443934138441412878774102959139972023080636705485870496237981313200760509886027770277363495433105023840757039586447999891808757288666195483335678259834909610417951595946144468480640659202343571962792039062947731474994174099165900741814681657403692911303138712329384169673423155967346948037397368156253190910943798745815201680454365639431562638280471464347372925346817905758715732533403177061213630820216216063981178436626635399058877552983547822038771170069551298427174164263796863521734246244719839493130456677505049230104837418292942386686805960346928809650087236337842169732543866359310410977951577413413831260790807019314633219645329252010307979760263306426831294460643729881985356784941747790873904865763859245503536611355397696842854605501914856399552484832978718798105598863551059029794633148320529257220724720439121969898071152323531889994707892901361957328051057353711661914232165283108453632728259074448283045207874488495173919982857323337506522148727082652693022215542082507848606275954586086962062089520942235204503898792395184936534682975582284593531159940428061255807117715563093289338909174327987757809986990994057569178684631738361013259552651467966911310095979942163794591356050593742399650310537190697864470837333306623789160173107422886411818350678502546317695785793654101158226052945963166612836282807244828172786511735389519051812249641537802988507819477146163272819318331018075209295400435523186182931954704984719257620742957489476910877667584162853514566805710663676388842407821277438504089947161402515120175665391192623049297515692919852831135621262042278134693361976557811770036843295416848187699222543183190126280577390061366343685072647259825764042904691199668426145892355909782466667401864308730730939283937263492969998852075368427338353713067878606269489412144783502269217353825122345717242119792763737158969386057632274173094843832073799066276881201075177006526324391478469012544045723262006617520087079693241113685563323950456344781260779838220614146745721770693294665998276334590576994783782316573084830556734346280157221477898197354173334609801027355339446696227105696606418771468497562528484566547289522290200585556488258552221652497599721279558135852243986615258969378804092432435606522802972691134533768091668224336004853631744574602663929735062584037487630287327325849078118054719292915741822029442659477115596684079510789520775873023635173123907231357773683963518352726866030223685027168271937491029982816087625673797478944317136215758833322579366278812913244412850539935003393388342958053887229987977678481094082128799465295192040039159573948538684250801957353698089984001789748307862575056033210508996118797305051950866027399900438837500396661297829616261240438628915433904938599354074239355272079325527995561575711280703444872016110481354170206529391311157727924437074153484864213142893622870368096606611033926422406744445586083811105038403751741062998710640301867524372712179706225332659469616976808161798396154780712591073771724116409022297893428119620681653771719976898256006561517253595475271931104674518942549683162010467498447902944157149203947075673758110654921699242904330371372901893586865885019806804009191331232275296645604855587335167706193477865393027032961394632924697496726300649971070159696089916920926423499028820028681724925855007530236993332390885673842722540094463925499155436649203548091042130946588584423678379637948554482769571636660210241514749877834567336761515302089040134549112858859739700038070908640440187171808195757151405524198950746707309292398356925366277188970187329284646570009071227219191397602082343757159799779466714659595485793557314825706122590625194467436450129083438293690594936431079871013331940002290949091314381922918767787775432899624973636921208284162092930544903364933948360203483325596017368363927275227431205607740205177320918784738404636931820297338079102498672716575940302012942734311687842231660156165247478076079916654606617178862347642765902200125222621062524765116535845766388777709651197163072327648700644960999418792023374046111807294648368559378332272546674036715141654816316715942863206801442861354534263250398353499471560532657002302615038233685177415768820008882339807941813027207238826472949288034009640226864201034051927573973718549533936140059036872594207326709365857578475135594352014243317314112957046668336087380443486450616284665391947953238579056087817108106153048279846746224559765940433724886824468098260209435505221095974917993354288674216913638406756647589739482418408495367550140366331977880006071286958386518554672622635195595601837969557710936470568685767250926908824196863249768785902743417704987234067077163074993550753571711960158472791449865329214610296375818127110534682869954388708616103752791034663095558895544861468967106794365911221524328798689641746063055561999743944369708328294752288722037470698312708891733878054952146493682535605124673865084239960742159003615229290269896509363605628789237508601112254369743217815325101161989346812422168368129330205211440046339602153235318639186240821920833997218022624042955736994848305614266876340687541145237329299595027383739782134449769565790778385498753191932843004463278878535248121506500305656762099681062079801965059905794535877354855218446127216848138677496520480662157298219240675507055397149177637726372360529798885748351867246998292877450722932565887698523353194108218574342878587140182522282838239944488905543302948342477513658176455243879076724761694055335025276293707669084810471510851262138348040753302432047941287357882096860777442068265224068078301927915459825185222492913711934885388914328179650195249598112834282094332182531650463674139915383937633523398675926130174584510887511133683374084065165457716409846329890510424047350816097457230750813875686331741770949144648234840899463633920317632365596771870086980301727687893181195254123998725668951202282916715306855777800114078588340275919865093164593404519287579192042715538180891891608836611286720972212258496863077252901876480978422365453704586268999315127152107942766155091488521591176439211994050564969286604863041010787853824377907941143496793067577437589724037076893440749950974551594612117568781832340590030181128589659543655577576106746591226372708586110894707075158636460915509440670371597137050386894069537686395556543862558402489125884208823706512506296934762307215495133650918311590244102232422373977800243963143540062526921995290100450985326614462316448756587418112817228942238375489487063983857753624044329338665755456395363104986536001962755153293849111260139772955489019421017009949501934330701826150610004425242309941162851593559793678248532600940539503762557557039854418815410618863496000296285232072529918509150399973450176041998631483099758487682310830760562672852248401862435446437810815895065725679504633407838967898989726430668636142041571132225187379363727955285761006857519688773136666020937449345205714320849481790214000168009538783891933430586113254849964713982204770479290034563011474454430037077946595187134025681821652439921669390304903511314050864264683859307801273203442318997924771980459509432559436502418215662263349537174685721596944501327046729767902085239637620396792595359101028419409214909658035136537074281386670229711921549893756906863189224187581658886264020170706942611932730649110480100499699201360089220592081150788223263632896564591001089236924436213830394830779950620474074163300207108989625108091509670219465453475088780679252720988163774570568217912984915263815203792450577956324570375593992809245864363049633177115479108409025337036355096426123154092796123511065838009450090501037837510125332926109792174262179625271347693643901209322837571843347955324786576635297272656196487305430194325263252743272314559864200697875352738378798130418309398957771155501694880844490332126106344995434546190454129799433898987218911034612418445784004549585148777477643749522656856174234860480286006441241743792615181845532010839456583407195682880926085760549033842022346589181212814754032326271675574154516050824136818641917564917370425730168984674706398583051359538372259551382207425669054651781713820892026794135213054682899779970943703564069179188244950547401115229224845463246706610324594982001567380195899907342800097866837515586233373964683926476700980388924437234718420351757105776718986781022901350247021563364721887115270276079069544097000491566251562393447903830676977330796182044916696546245547960694714056512661791275321297457966403460977260641994683035131259204180466821606118306712280450876990199885840961632194412663766089743100435772268202283816786367647848142005471079805450174304299164958995654445300556188961734083911472470347821123423521843012705762291526724710942115608954199647810654232045618981980552300182567617280489415607892223886667898017552865026995138390243752993322535789802444188000315639039201427474893980995839398685487264716578106757739970240414102498893008628469537442293008469413553137723978070968107221842959713843668458973226010386008162477129856913329181909247642466137854153859057834334336155303986117143556046819572440086167119096620138043551631232212824144061679272895369928586486017703994733401431971478545323765432239349402846010966556660655743990248436751282213921962883286357779410754980301273430886436770914733884323524504909456434257211280853831199090146293697741024645192434750770939173208495302615590903420973575171263129608126590734863319668979540994796338784350325369510235244079239015363632807612091815132562747250793699541860963861144035103964613662326397968030080593987033989365877492455686867801639813407081043109578117455480402070462474740334957809516678139193515753327916057585190659919124302703467452157001871244015492951762590507151574224567812514634172047916985738126961810351528581698962640031999368551396659398308762357459633758488720542178792835923662054665238858115204815476622023423474349954288215493465524826329571262424567916293823120152157617015651834118084443366414869217934977212762392172815386047470914696249209848222807353752225842641050276962368386457696823734827343885576769593591166340874170938868548682203030919879826253835636910706423164324974639447376918008624489440892248061407333396731955433566939154094999901307263416975735617026827633648464077956706521634977981508752367107471821729328372519309170761583720378045794451630042132129004012921626541471221829534806589513654028470409883545123294849373942725587596823971964439040361135986241879867536801286907907570720098437303653109010322022190898757115742448685784319922043317331013778814472653596137577520713646255681442534973399017837005315947724158009988925355335440028047000435796943717987078320724442517136004297889740283838489975648386587031357578471282654410747379506463664840563296237828843987358151624241581728110990944411602201233968939508262845784799919344351713555056449253993605441861394316077148008629233818417984428523800971514032703734507494250667865653121538907757806260843742204228874431028341413989699584414704223688480606326247441024783104578026150280873768429862122256033889562950319753405874826717812264668407081923668007705122409421210974851712937865816360680794066007683852197122693827488118714963120890479985367131098961682435238203776444192542549363610493780109549196909904797401170444542101725112679365509742537034014250315480397176612036668676852235039442252322497748689252327405785464287975639096030207229159795343721237748854772528527261283299371920748659908044680756677333252469936666619786974949206833564474509183743251458896806672145790776243377234265710903048126561806279953489108459504158570307217227002198737347705027222846790284406496101407079591063008218336331257396691526722455927577016097392485311731166861114523013750610784967324426360849617799031429728960365417047899924545766875267560863458848170646704079408803155501573898065262429849002654028829659847528726902328049470294615091569585154369456999552221717519800678699998378434153578140654542005637139765051641565373784582301955777599847210550216541139451322834861612603632342436964354651642611954653234393514673189210625780705275502716521200690549195504686643930533742511399868411220138274304458024599758695657846264870535574690514361429334647208752049054635202773186960935341895206978964268981689890127783803412212240940745120964868578737810044268102450931951402840040620129746703095459945031298440976349012184917566291175854377006013777838544213145936828824468379014828074574463990426821897695857250721782828175241772459410777570384204588035201374980416152229198004534067431640730761052473757698435689331757134387466172280391429438981242010627356061784923331117476764851026156235535362793609051947373894030500432927536174028511019945077765321098311116079401166644023148641855968955880091684920460255511219091500035051634553141889378751287636031527782046897074413269000360956938254304842940090285409573904572444350950781847285108818585817543405896052287923418713407903070302856524427999826446284521045329475982771648153703787327103957335625855517557158416946893104225298419124356411077507246922444609181980447419286319004905495995787484781449699805732065086679349844160987277861928199624233909033434232085731274458969987045740411731450294777507195056524197199650323128288775650910595457508593573568049102716579053580128115709253587611048456502807263502752661133280691090837324059719385515637189729856070340487559769343307688208319356738389044355658202429334106274766855786205491329714106653872179513846562597774310492222614693642177816267853219931748649066019444692587167653531293732160767392248806234980799584567460306010132287284531732964969383808090709966017909425453641800841475233592252019994278458880949834645058474314631303570233751931098647803531431553080576456988556730566104759621908548837728928702676500820852442386502473891998852000481580769435195413408905629329393647635881107049228791795766783812593639821270425320288943671943270413163929435179707550247913456139235122287521706588870830905390397371506349072327571498251250320676732959446580446583376483551215718441060619380932203711714556814107929594023262575836911969790359054908534456121122631276583571477666787904528295914091307956655308941593460075856939259090710167676406687897493962673196003911584686215580777128842566705765846880424941544772387255295536837702939112707283152484541132026141247976161231409679053235603470989631768875591772049221887980874534584734316356368426373567322517041023951429547429060442788998573274274206710063966035675199546529627121041296578406780631659477930014545265037939219566585672978273510202690435969442852357634297390942898842167815150092486100559166511776772310305874387150586064618280809565426833653281949515571166609810393984079108628623000405868591887858360381348453120144333402168144095950773084572046680777935499538124442221849026487095622337168237916829529809733489048394861525230941952270995900420469412838130924317062758792645497316751054876427446176973051209933286228105200343775038492903903384979960342400388737204790751238576145360601743643571203717221249884960486453181055533379398267632509247834478976284976173556982925722976013669833862230827724722712710647441791943657217295650936025817121223692011420447367745396049645033905969649367457896655493806324706935882524920131732950122924916443619630695475310718161364856212939101060600380437245390515544348651692917396334044318641567565228189793544116609568235288329706985128550640744628166937800012945477387265991565697168885694306206969138478708423114184158627287129742355170941429656286231015632426437616371255266120737832884911384179246559356779008276604924322923825565961208204446490065703921386658390132302340719684669275498718514184254570148977865986639385170413547768088925840178536766274613804055042620389412423123710516979200253681887648281906330223977836649192967870807498105357598897350980423290140343498575137431984103937788746707999933996732013948900229750897018258555230687292568734822434241940532814713845354784249267935910983843845952638927975435977219335376677690878913313232005155800834715700378920929600940835603852274999930131724289978014853180760179851383075824388174661948418278841714554293295547205897282808168339357547591957235820330100471747597345713188144033968981894423442984919783738289557944275538753113250421164844443641238057187676188481682651629107866098268381117962353899967064051239327094372632412103676749309627801804168356090111968170938687685038940557715418013945384542748225759933393915220006357406954586555403128341554781991288649367470398737827942087750035625126140447001603751836729605971499023816808759398495510630109870409794153557668570540350020684620771776462442680421905571382217795646030698986147318305934034600213872599052684089505644041768787571903635243706700715310074169657249428451731028313488640389291118083608587732904842726924641154740188620521182430232841858054751691083474198142454113430498245488066969582219428776614602647934428809004135497760741071165960714428770302349736583835641858163483213754426950349657127689381665423648234370556137642471056931858851253259641382332062138921209023913347007798834566862713919515790346314750612114498548465506456719344895834106725813679580560309648552172461917839461430615893427749126820236425450146586397991333377163728582009174510929269160570171647363378044417151021678363300641231643594435349112687075303642367273477635575843026592846257908105121509407657318205653654147093353360333648454375196200724762953913801035345582790363686812928897225407124903124586689227028092646116444138707326107923101956432602054798773859070270858657968329375631395141281712661361722230387089859846339882926575164185171871740995527749269636151532360405088248492170684574690453510607022791388373041624179371580098294675706580434915614911038120215362138387074572440606135332712753539046768525133211077062657828921712200967110072162650825494299335691854148611565592615407188031098132358917010026068337895101402372176966801554693102354229608890884200149603956626560234822501618960076803532777504132759290771354850570158706301732451458085320412014972506223277079816481150687457571861180921234105659005394459041168810669627964905221491239407524232967028073496489239478743010629035563747373428893140872664744769708587173590874844824632030484843866711430688576089384566367514931782212366947313032212888562849271368908327423793367464952370448559224422759148543145405900744181767097104280728508491950002990396724029424972513959613471023297546436230491840577500198703238010356007397706538966672498165487594747369751908995651798186636069403908862185742514973909551506926683540860858152077477707700304658274254958222945503231436526375946381867752013305154743518603288474409711020839329560622654136577070431985309709192193434525321896580165540733960373412697420277090018905112631481267283851602922172778773263451619447148426206118810547008151197787847379248533390618220297833146634879792617636852464717364251421064740490718329732456545186022094676330139959339732907849279324320665354292162413510644472255422175811857713691093974854032174252245100993126609348371529560136787877975625081445152985656139737420204099389167808132920268019390064506388427591426930203208063178412342734661676780349369653444605313122671643573307479583993914900593483462226628301728351295020627058195321452723386597556922785613389631770214855296738190327485590997608621531362702543731838653344734391163207616361579362685164087152332452679561807673607980797493033854374585568224685930505888891278908193938806083890857080748721397060184181183316558579477527590073844900490594130086745270867322004885784115733172151295567462008512837576750661990231430636076063517253524421934279471365380201684409181117272299652921826522537764140397881073018770783212300216774835770170519967428856546343366854743465780393884606497414655947073405950965534419973840518962332088799193405234286528516749918082305522339405400157385790127238156206775391342411458487859229898566622420441367495280932345588413805559473261108296183743320163672878578240021409824862426131161207672839564298620249530185046218378967620611314160685362260128012556882524220446821167026246354861090181896217470257998418469480732474947815031858885485533059157504205752923329457279944916754377136273539385482911400652958101521799997917594798926045077187013042357707001979511044133340386380280094488577328857048794284367966654487014787947750005314824757905161825881636490864646334148846185802813298662864275150691184879929464986903149479583996836269913354510075493798048627591175724475261018918032150628113974457814672367845966966042387370550704775543237472439410222170151549776926437698536013083793466060600489481818070816374762462524545093080743625154489141879552227894589741784529171917745879598749536988638656803757999429577330977179288969476120120772149735499080677044917035975435342808549644546999397475107860596517014293535921292531901269165171255774247426838436772275831938397134955415407112281020797503067562445145060501730129641605572490897656823419302483252409125813462068778487806527271319533851607510737387093149458888377274123599894125004313775376360403664942023361085656547195663868725085885007333798138083261077529210766043237328281646127269686407756148423240315233558202342724764573453903833483018288377634979066184444086249518061197420873682762603364654426342821944448768385788646390620315857057029526326326897227948633995645581798567992236610860356119907349541908842724754419674132902964350909198104518617956829744478589640434799007096855503757025631462407961860508397769337355227719223036419978447327903741082683577783252281812902387680804922667843692883773498223155811437857116898061194826706231725350078199825183408654500865307730708773843666066724500649877832728926408781320035943980313054633514902586012825437366765317391847981983931612767626989583155151649148646926656905275605293012949399114748108956801281961780697031480965683541608415590926509580734033435348663410783932187052730113222538544190305066146789923834767081874528569043495448683915582806181922997924173706962738895385317253105773312857019119332648943106325504359273889102903389288192445628650490730096005274595094294267096398299394086896294045822867293054723243027614646061985873174721717439942935479275288253211822059213011794850355029527736029420765219082455700265676538801410004652273520331272682123034005081119267733992296903973428361116984027660675163419086017596533626860673639364428283871526415816971864426345548572401431705876349149213302378835581082777299522298811735053920154359134740602321820141758430145100388091591399078401009775652375159292575239750946853677287320937638820431046572823742889799032073121330646802395290950677587591823590027049815313507268518023849457967698478770864869786732195419220086768785043971652874037787469747654130620150307947289932313617305947734963285467878243277047175727255570950505392035430327421167095452694485830978622510054837103039208228935441420499519402838916509358360479550693457120037610055771669463924413116328210535639813446413002218692788932372716725824655012612692408713952773790318998654222806518660065342064799922404230677563259385675221705069214740104537426256622048767452381275621215262634195821858222491155261961992796348669817936091652238948201513336368043327586618774284709494150743942493785685423453621462610190861905163122414931844366435283170392711932197489463065028886748365444797299011242239162182089812058169949745649599445035072615587183153901607703750557460203942927365077507144799726697352578125242585751306670655205638614595232690006265659384653536791804543849077136312446489791972346205311447626520473798415004470392739123157978690255475512837612754951332849946562394879519168960374874935753893840782531574949444542160481066716127853946744087580748337361899854844809837181561860524606461720330270754217756142033540522024496354241433302157240284491693064336329702432087162430196782901193003498140960219945253082897767976591897734803517933690984220049620443050987874652869830706972063287532024960165199195572574435039935978743125977117088975238144534499104969713871251935983387069825132687180744042140925942780735961187413486105005977341983397813609600943984703849510141303068405965914199961320828239072062528774064251347784930146916531473283265097364848043872118717903360056070606297148994583149210662820625043007148691092139474817148286779457429615496319703617047771118063976859571089694561064503456796841069486439405154175328548690701075402194263055370101975587015319705959832282420593815048718010036952191696998462241042351703201715091497207471858954027453070445231000035375174329931323008790110906218800470078660383429596942988289814825994000896676713107995657191277451309545827852912404172433151978032756472765713916168981302421334749172522930144928076611382189603910038569022400277554600393498272375530935498207436145033843113519186580075966826051575865612499721128335234123888345835264567553874572820818027176845627776606625565289565790667216262705249986471938312743171313497784930926987548243523305340181094768802702338863734107885355649241033099237329995900494507157954589071226182316783280586745276757873723025557072998310240273283861217497996518144522630329580580882015344671337201286525021560098108408495530677299965709533311404411126101751036930316076142142269143277510364759190671886062885147683045070474105391343491505779360061960083721070265972270100958975493544542931583962842596428887081905644628236790345398765198627756511793538353092746662725330871166234643665114308776793095244509680663839712194711864014372239596142301652643671416887067719215249931344408963843892789912838955394168747410271014328319729779467945418938662879294767655458182730193100830017794485548290203228861089784426046832862686967895266946171760698029275283513820181030769121372508106617192451286762168846390562280224157109931855888281695688470409029311026466239630534234775494788742594761467826614897963908140109931260140882122904524559813700269610862837658183360130907979986411346242159672726876225109260887437921100111439450826858478314464020739845455248049947612540231079032303671312236814652785526388957622108200594895505854569238661049486939970803427137413311053207182534445737111699975806369702643134657848074159088652472672132904852438993906831540686088465712297000254032716958312125383391379411506758733677393114273964800385030471851205820977198017032705268098261778124301841887973889907183037923823409712663086820983586492026348795126789913754328228419730200445980966546579456215885116856174534181469462810712173752708637775014396542155738799473006240758995247770883520236714332376166952158387820084946632908105138473701056500604591475261991299036815259702720084916707014740347576312838271836427305921022860391680989084206550056023528628947907609321553008681261832154474037173194670123777058095918512542236438327076576669814583946034795078345679493304701630007113047936832576002072969953392980310395908826200719651051295483117238494347323194734092738251155542305473682755032974473761275725389644660858005229302768088011177601970083336434783515654920993971829915211128254231655344865766294538890541009963155597352375575207479953210673591774132983029680624357840933701415313616970337355857463747578305876245063593100539623235980027161313362343689417936681071491798652176300206871144367832071558581495271264840116780770292836086763297309889158216381741220958805502825200818084421920908681386138127013317182400920231041792553295229442380182234793099753945835310160018822160953078562267520917491539850010512952413339496758323778006680187407418556424081877635512196183625935893680454476558292032994286507520165048457508301598256330659782728089541219830208316464072756212423718448591262979417224968375896903873158810768276798965264229319256037649353570390628316991010152117518711469308220570848700983226625951932583219159915430861809386043048396987192795466831560262757499650682553635093960616628528600460787113676645590194284128046861584644253064766981292474194523110517090004601716400640615057374404887339303402533419983703938597562022504736520943453146080485839581223957012926492119033444039652479798555140529203350721666852774434623124147150653063635839642333631795852538067698002160272222904590519699409324818750624840530473234737240314920914417089974606612499380803225430314467550860868972904410437580699056239360038064879160727193694951395355243171938248314447573485670763629251738578708852884681675560271833893746641327718139111209157176234885640144312932958161400233831934421470353154673158489107798636594779819938004942341981644269837503806885722067365850546055751532241747316258793921223679674814537563893721963716784054743403581928759261794887236562774470265224323357089440663714754422743082432030284447821192431013120155000017481819241982580881127997642162260605065057255072544804761517151403724630381344830256214367852189980946022139238167323604931231837538103759531982788818558839490641741371737637313764449403497176432801287611051392509090863503398542305941564778536744812373633920991057743194550879477506640865736419314617424336096258110981962677613133339991899728588550968563203569944498907425875002778118283075339992300145713738501980965076001211826604975456353252729133216786634543723275332747124804618851236056639893474868302032125115085421201490503042565749582285784305632188361377029356633312172393883634812897771812613356585078813078155331536346907580465974469290790427357928603565809198338865575823935962297318824662310243893414531748519489708359485447142448660297639421888062920959099799066626123093712418531124362005960178673519706658365459287051531926315521747017796023744372389712331854193290749126247021657554807349625956638843985807426615989242332184576781151553714944124177252399915210883758523002262658287184104931849794904832799950707219267670030602870236613349436217184085300752776831423531450263138617684472346243529687906030416904219638685240208415116250012845175387534350474627708508828119144886866637949998511883621099732343494240368883381442245896069102435522492599876761005570685737758321157920653188713856136077108936330139838715085266979972226834340007637579032615724760360226453307921456658149843972940946928900627400143585115796823246654605916232901460733327684893288717609800386783244223210616557786429507000774208860250286489796825606345902642355425713654502728346948989042085386870260525137122930827108751319550037312474825461791592280992816510460884540536253436440107508827111990312078111215473013971606820660174492187049300704625297132671006881931220819433201144835638722011305635176188950001303618497000113623482780078402112868065433521007839788464784462753195077136397541297141557611706598791292551287527551551442456426641343189100919098650059057016430045816622046975108382806114533797522226311146906760481657648802201080898119606308423773688392817423515816986860126136816751458904566079031103410668878176254133106060364565916203343170696018302080149319459002768918084246963047810160411285365583571135305389919563541168924573363598741406312821311781716897077469610196228990851188909996449513670839481323991445135850144957749386561907979181554558523421958670023184385625842372745658714164253670298568858789697865604255038359787737580759065115970987214758212668033713186703523297950653854361204685353078798057916485715438639718158157672909394874762249574190315296136745263461170433767303556361144910030372317918694405364605087722955689424179110088593573294411136264942707858312986774710915478417346549057798997131156270945478664219904416418101035951685021757984678588643779734143009346158300518062088490316785189222525890551859767462073234156149353197802101925202459960348406182058427448807230089635255909148936508763870660366925907136264583714607863609574084130832136351179527885467430940781918349594644274956422512715618559004785044848110329463871965582655094756431158730917825028237275235583358893544783512436899076085406289659142256405708549201110666214999599994389052325609782455105418420733727316496387396758236919095823688921928010597310519526113876906021851970530004905725852379933520465138155156758765098077875764193868595209591679370654450290700067098567231136398622528772159481781694592791691886918370494307132343155576976480633891419290159093731813048480385634087679758789250362932590787796536796900403828935568743327128766788452211489054177531598631664239364872485369704641327693824663383207716245022425797003241234784222903444239332839596351248659358752250921445908607833775748435729774721380425738016996233145726238727257614287555201431571608507163494348989988139929356893292730755920211479915155880900042885701288037236042155377751935003419208804908422015296988776358838913599649482663214217489144248503061623968725995048436927910536734429207189759828628220598307691199688910994294251301929200455573944411895423807973024660022268351691224829047606386429276075126932951901721754242990180957136959747731217124051733360183259712851298630790976527767385212680994899523561735362081945629559767010634360222890815386797361740079656526614788726614800804075514043825823611028390095957909580816441066286643995285207190107740698148531857798560213815913392344682489712433772350647305081689533224600852517043814598352514699533309015783396783146209052579978150725845282067581089297378773674205977653161888378106151027596156145404035090624770629297371257405503678946450117161220736931235167716557245989696603715700195757603797732668966252614173723076449653621659568504624873642584364750178356290605318810287861108700084336956889427031772151658590921535517153316371201077363590367903775928362448779101759740864009152764319552799993512876763670508553670893511784946924647513274055410019485084776450935527897534638751432043622818676472728092186116345559923034094643897816212740769953643243777305810755288004852141725758288722070830650112477841000355027512455258063782267354427736733847953949913581256956890837754376156504603760015687968893107839326156381853736927441664521917579231974671007520103043350527937751811510655955151055147384349181898728746961484375799627488708190935735804577159486733337599241264804252307126611757261738551515866957849081946743290661249188462671440584182796141025883505526621772408965518250305232032566963703345930130567833867976551422487976007474684345722771218964686129501342393262032326961483826417908204465068268603343071966170767636494894195808215408044388852460130003060284843447848748869729854785358135009486405205071834483487005004387367709933095233617306374622796951739595842319298545444064836456335866392240174137008224169787863368302942885004272652446429187555836575964103663275287064262926431291254002295546002674108667961664371541916437908192638274555556154177286108577965640839136620407090793859829532232822485625269892104379454570912732351804303295396215583951888312732833491711925039752477558645116495410698794739168381740733583409936887144803924518239263200983903924262601276400622722400862496045844657303807307472606036961234589519980365429196153379240174612518468709808948324521205862641560757290603509852182943438021252491183643240748512631873068878406175283289680432962889827739764733678660656447616626591719779760900781957324171900994730019053127586659021038076731677935286914963219566625670161768358609258206788228425890273656601413833163704262773669725414639323516794394630227967331406676758560808042160477496974122760429747111511729559957073540782002255134146807916156095870430985354958240772354133704491285941262823097619315668577600546757390396960489189743609132768235123264611746154160130746516115607081286072459739604503754068433604272399872169114405862862581028947290320033147123430320537003347280602896483049578924230105008129422097859654026846278182501065950134736318420143120171808687309635654810115909554582930227924406583205621917834700447677884120542134792406935248104544308299464359519362703395254677355396474114792474510827408913471375232827414384400646869776602621653505087544204973219260293260708987264451505551576267031752125452900423585102249509854710443732562755819726725575601676488147947085415218561162534254127739283975499025192041655677082878036495324112096591627135147384846622420859271231275335614953249168750715792397336893449789299784065840260017427179088000362557693322742622704902756662148232431837249375993983829003059077820166129455051172365566089929298647437422528994790093214157190964139101864285285857992665305321262632678097881047347848852606416399220099458135836044302546731336237131512436322669910021187319597681065986784732992026184664637108249214212362075933716325465187417687524108066945282022023609156021836958438322419073181485149310641667293768979248038527892825426445596719573693968717879113772909132278012598768782314888142018248534728263627131811352904298764761113711797502256578624700278299266167614551061019357754053528204542436138343727832176982590818433550247330618388479262834145000087169170079486079804284625404294692909627487755037456476504220434923670768711955303109712492043726404248782681623039052174667463308162827005008623655346408558363386632491090305069009637371460996064304461053740801914532440037674196214950802619171067654569505735397586819575687894365035760084001315886632466398877820092981674318312007711879365606322135809007870409214496424457606085864198542413265418768175597411983006787328447685835646984765686188643901456961358000053386106803306604178810552324114214605689880830280199727221298435213516987808525334913077514168861516828008586857847942123896054860893726067116578615402299500461713865235965366181953977483581999012738924644712615964804884521754031644723103021589686489314430375584833313446814123447200715001139800899954695763707469660621796362331711991542214901166931100811279221077560932792684367914483001611754989595500399606724033095007373415284628134451169304472028549313897568391352331090845496660220628194420100009250803765227072227732829439605958451295262024946699066842134745774230987653269730606878361772610375283581854289540149995683351424351512665580311781418315790992447919042779470694170536490551969376530565718949790967977132369253610553830038597061903996045295390656307655421939998792681732029872976208490244471929251261851942990584950756683672799323170401254471339286474165736787641179943111053587195286946837248781706532579211868436342473577990670131212135753633752961846167250235705163960810645248382926809873272409073873833038479223163212177621763269925408002913530341115640411032056597260783873704380840864820929139863743892811129383975204481745548668934358585234184155864299178440446000745359192051217985780592263236043952451012428484809658140615637528537124604358376220764419513151664989393872593816091151963632873791642807593328816419354308233994071933081796661391674230303825527403977047165959295378812561881815875559801798254233140200870068580040183575104762346953767439240543768662482143812798106103277853188425690014507776890105448590129513774410462922124769145521313603571463050413869301035476261478892747415912373457624024182638535114943630429129639063259000791839062708288955057440648940230804675531898894840965940110202108043607943128857836753597240785263208281030412974076502925921318946046930412997484622230941224223464633383479685797896797693347290567310483712490963276139993518256789870218694795525924589386526823979724515408058250308391694857396217136509538167447427880793002289055329000062217692970445661101550334800400727194602725766494544181724749808278322164003642684761429640013745097027820813190390436334050530666317305777019957805280878284109512200267689076624519401202489994125682307212336465028321006216740613822552617671126304954488027039016891362867495133703740974285409935669508402872187305542947820143956603974002515766592823620749053179877580603841339801704056580497658734952592261169057480020891551900862269685016771399829523497520977776932387322101093751526941571358234758976776348015269011177746086649716120333889325547692767868750896847856761955215476803000820560762720679215744538250481120415134707673210313448262507254990769115302102088219754595735341465996178734846927176789606183958851306720065600870215124834465509212417985227758934539756507902346480819507224191968475014722831704616632295416428568592738544213868573862373900378000210774508610016867810779685795547600757227574115264994786090819406758128766909910899231693307485974144824326717958566194879481105382395387073818336241951648653363855100374608929758236432528534244403863931645493373559175498531220823634585642783300651481368049109096518266858504552734660392283392608077252511780325294057351442230760097783872444772243158816145346642501426385450655841315268657039058675073257483655477217846509769028793637701565097458534861944611826830455018563611803194548035906235345225086807604232018858526922494181814565473150012990187512218426602574694287094747631348827530507012608027982456450532541895671167186227006809056685853712790573617046577585095855590374016326567747174662470546239759989437971489152213123391944836944317673501070284677025688073601983159025664223723637573670755256543711948202826801601224125839221754418580496012430739127889689042157772070226049826300820782844623192644509672583030486217531353143069014994244718898879871798969152787172764119975441046979561588931660489897770766347599074502739317452974439194295756753462335754646333107156313497015332719554817122527050903661412152733289744956260941386079181116623434502918648961345096987866267128516087248982817775896268749090228427516150587475542925614997894593071984231802513445613345473565041448307900105281181561380400669149489057874493171403242204527531146989173554994673876069938354077298717477440932981372595515596444656842369988232582838527523814628143684301134388439359022943867459968543489459186616981482781607056460118375750861539562369295922682198129567295791099274197771850228195600136658676344684607566723963586287670394310705083127850100174279450730512360356493753519637214203941370561454845795663859811223053868348532652260403381481789882707570783258734827020669519981008290096401375356311180824508914569274972574598736766233769283343782792649015078915781809070139365410173466977693178941181551706095719839060144643807409190768853977378550098276792565631782166624585339746150436532829174340576607786145345462808518369628980636222994753080962346532506517739571556275837181035599475554296449223249115565931002119084141840769802357186342324292494797872580416737239637058838609648598995357671998673193739415506212525812276116152512156290856630070378676502744772092168709059832753147175062650377959121028966947795883402391702562798165400695074966555641245883758882492092015705460905250431658573602961820804688183828247813788327327863073909077968472453123868477057893640476157891846860686532052563998653745293737188002309406689664134986103556756696807907888519800658417499346308125998637216901030393015932028383008728327803152151194182599000572799718837980800552395198880120883040758447890398983959653775070832249577068066318854803434737945378586289704084868737932291431502409945237549868544843497601481546446766334320042255132433401570248180992783902999361448909200437624993499719464324030642070192322066213112275000355645485063348999038493527331253131731916705747471630359177273955739311805433239497648224662580264414220714398519496834172834841492735291767725987068635138652961910815922206100153410506288625554720986174813214794221114915638945990024757819624709819687378770361468144570035638164762250605244371499513580424804599379095275862683090070988036152683207609551404969492667394955429965060506129888766394018993155758213929209978915205070878181527201478459672263543905476897182007499949361537575906703704735923897870819745926640597905863033806491920356809230947083377093811529255447494203702975068757031002474247500966517664045150076067788114718533320099486974265952308373928677570014207718198557141264195167176723448531575811116807395208152181519919070522612885698616657218293659101078528201666910548462935511323020843329069282773462606212828401022841037541420719806963737412508319264814052814631592122434875743712933322347132530713968247995399377482246562188713117249887134630266197297386092800633728314002278009877623265467326523079588006897752850532713847204266488373295409494751323907959877664596921628369819334294915889115421652241155704258109155157787568113638057017889721541869492207240991045128859991346020670690257495945681791065599888871702762900143628501739305267287192092930124450603104190395229614415888174553773664621187632448776146344617086083053444189462536404116602160438556594718646173568820879424142469081994782277328307634755762903337366650861328856392872926296441538361557944515713164235967905574703117978342563004840702464608358546988450024692794657481737382181823044386324826034858552581005639978293202485718604050033787052926927291461101559838410739597638552317716404911987683997283790861708087065163774499135757541186437507064411813319286850026280072303858562075457120454379226747844567581530448566500992143494701691339652390158791274079456021386436193269987470397445500385057711827757665453815211595761858091964099336041857180520702130762254378110739570805514377592971957121325952711681951702891863105693532098858566606940116561137901736572541604583605078049432300544330797819141217708222559981421540249885353955794415285608558338643023017064668048834007282768680985892894618783615465124266623224926920909735519856817700709452903113923330700434100691651775109701385372332048087080496976731662572670615273227424965314072886348169704341286983642065361437924042058885248327487606941240228100132106835741652149214448257413250334174143731013572687947081598625868941689611588116673830643557626160983620221093073224435758621414552184731788077406745543590727837167797600047995275788427506900532162476355272695857087651030039422446250865291126116786159990654251062829215140818468183076341752667598381673646792928692452844350691205701800070444013235098092716372733481379343732141575171055699257156798470518750530992645907284467581128693926077322064282571320891854306923007440204349554710064953802845889712765494137845932847625993236954822801933343985520084172057837109793961335165372007621149611459892707454843728133146245023379121658826905532529513530634173545693155020192684961726540057645462171845653909416223002607339557542349550641534661116201316469133170475258702046624736231942104497203594633994130858743743670683516361420539959562790912974299127017544067350984562344472599896863288921431692127015137843417969489306470074359164241689729271975594441564008634377504661088417650341291080843977946266164272990756709664333303366083820833062929154707205715235840116719137775128695878289626687797455115030743815284584588264100171439009977217956563735997971021740957017476910036843243793648417816914534868072853035524773030108265488588746493354955488578576743922576750834940829927379727992017908439691855977156890616279556342467550373495158454372215465603894656459344711786812531317406752280075537847954457626839257386798587294618156810963657175593378344292057985794376054912454785177500445722939397192273469300603248735821491051861642475161418015703182370923460128433606597135048358827797913369938271260360280403719462970323551494814054965740759201368495344893564851880899840217997086310755069138225873249544027485070694503434007421041699940182731422938893765502545302782765541272328707706782022570082966488826744082845003317630742076392719047033032653379806363677466043574701432899225466554495356314981171867891434401627374600041468919749590646241504896583971363632164363353064478569228103721317457843606000493210556332075126188525934612608352105119911757662035871715185018156599112119711146465581853350199434309746356090431518383255765176722689496976065531836728182651068955995261701903156671444107852279114159901691377858833870758213949333259752451468006732382189108115473745743939100353468297111172288018335814961521503045561838118705768572437811300346631550738997335873507284160303977927413634884729358400040178937157027867789904825552885232465647707987421574169288669430662311419466966444849266377304097140028902241350716544461016014945531862532875700764797613270052666111869674225118935267815866569200404798628965935958417223806268160759096327981465427387324189226225630973803819824925146007231181443154333675190442125492256383980821125558001456808959266700102925777346465644695409438487839212497646756394735558169649917349365128883591416706346511853972055204324465672932262637213006365716587581058120354687104345444421491294056486918239252429812839279490518748985821107640027772113119904252812509497076684391375173436680076289681219341199229334132915661855524832062224613295948172324565573636493900263106681630260593828348023832940737909233896095008709211653520509889477386873863427473438010994122648591702658868989272660640857323778745874378595946240911651127312828288301484673918420351769048580134947007541644457166586837189113594067223226650534543858059462200631416540932729967821926308168367882326169575442389740151081115234037722804992383096821743049634734024396484013626118231735290313032304578068020866012758910423182925968056621340162462837765390356011818938753844199370038442872124120361444091297941813712556116481970962495102741275551908062998671008975416607716051656035930535538810561433050659291040366700827460905243003321033093269077819391945499279218909746755114396441620200158948049586806030480904777168960155739119376125658072733998156180415523871553164127902973678302972931797479157570554704019978453129808123572736958879086512199264933610133357726564274806070586376618632802278984643566207150264691217244181567548437683939926866926209784440438574171378504763576014862529509388405402061039325696499831434623601825324957160852086201079602915962035330332266195544132198518964660707648674715307959138691298172544323801153705363432783463246771931827065775328159340603923462248561478862031782745970399650324298643919725031351438918811487086429227665421853364768876405037599732112389896359187610326278355854715717573163847171652637888328292892994912197345427577858804982962577497049196758848079199898309620810597878853839772690313945142866308538485158334406190120062642094938901797840435683064230429979545568852871691824704783581486840834250446248331344260529547562413866294783466887006195055925154489852292356113827958828165951473726331688977752108033749907525632404634345313902234990981848203667373278069882927017001405415398386054885413564220063404123338257120662965561072996129229896039354190336998520685758955466537097002329645372096675106261398290365239904823285057168060716370309422458327487926356777077394876906588245213060835303126193222043985458822692504896846766852481979063217368145062573468389289308657826316178071571007013246051936293957099102588732496208027801795581193589298252051405010534027584428700753651061507365815261846456314151525525069664424901079108633075157590737435942671091884242811837412894974878349458959387235799227984404681577992179982427615032596669854072368316458339736115596093568914445695474758944165367674505474212528827900721870305454276115657356582958837502902006550002240550359122136809284002330558791091175599767936119277117263208472761308443381516554539219549559248869258759168599333755524740622909562316564647407683318194317124743132548003531205315868853162885461199890407495558546687383505464374527171496701981310361376988785057902340902355195310469499209860794596745691541173526207683664225243704944615802070064720720210638709415303561422168898885697180176269220790099135873548549571838641506153285124011956964331815945361124428751341268994295692019453708070064335164433079846717925230114560674557205020128489182519713471042121280909300173261703676272987127085529763820067501010830066468704230905364895750194199023326542081327562340907666952917910669627252907589379228044825871779061189141281585673555712968214070982905989694826789568052551068981763488935117643917983690366677639666686473066363353999522859771305307070526888862883391432318409805886180886773913836824772994091272966513732785322700123159909127745890355773205204449912047206239242140613231765327423096945618379277803643847638722866026421475633204647539653219053788943351776389242877721913472784652489419043616954938969925699144099274865121000925270671070301400128082482569581232018811993056045336381390697120831490805498072342452315756934918666842971813392440662542696786243435445721133610123271627894322579424862442528546946829520742243775736235890086915842991466239001387157977254115192444916366549912553090390568453224580677870913302978670191599923276021647018081887486886924978059413828251878014112155288021598174130440938215779112066493277817936772298513531668047294618866726830714175211108927880717119311344620535534484357708461195119510065854387703224376333839139546979712368592591459383262355651096379432830792817843959437694410611147004572711509516875076097754615846445037037146763275398722858221053854790335245653303643029011667524073232526749864559936691308546724410963882798725018576500555644704661387749186677025203689251378588191794527863832407879572835791980753121506008578070695274209556293419013326997629488685440838819389772398806835849975876703928807303989327454422209809708204339199621041710605783919420094332543721503230099235203761945214223182522037293491249775696210669146267705681333402298581568400750868009328151141775209813515485401226342238299603583644157611274178322639487617651686643477188300121532790157798895094625389376529207513665345876222980253629462856274561351277282470020186530110634585682272525324134697564879569236794670470253375986638920373126917635074899037260954818880274438886796103023347805404230195799970568040730979627641393161098301239267822207927368389480880177970847148224637953647320951047692816763496633060618408883997257202511633357545669182636079894103599043058527135302786377671097030439151276978767368578612038925574114367272901663256509054327136195266743336284722627514281972436583095958288492119920128781789686256642047051053979325347182556359475600599601284645607481628105935920841039644310510378809427031409242271760247620571501497629492890865570509911370884842455721275459852769354238336532180138543447171099405370482597920389838793240610943762780977677340226336371181932974046671739579790983621048021999815656327108761808375893719916743136820807671179534257263997019000995651594561758783075552990294968327538793491840949104806095846201574459332246246439819797423853597269840920056595219632142709303047463825852940299237824363887855145955594070469284487111293371649622359500859737731301537896106712367885228971251315464059852628808611887751924242002614758186081534500616533111147508453730719359758913860760783552367573819605422865173687778220015947239159347811636472115049788933105714633426161334050241555414312186552948698526238570601849756647454852954648799352484639484403099189308981411639058030388246161828962179232217442773995769388263067324655099035509641306403176554012288646072963447199829016303702410804774003656980527530562897800307002394995171520110902292787722544396024842961094114447345326358810404385761304651660919789371996839044150590015472029252251324194154789771851579453330496376117950343882804620823706485956574427870343139816144444475250035546625159103725710492126826313546655595977864220733649426778733032274190221178732313869805730068763499108680355710942994870928404788670104232296932266934996349053555635148464583250649252682624603400898437163617903600323231737250079964296428465397440190130395398662828212657524683667959607403032840379421335818103531321549694077814610539413744547853456952810237684405532586816799424196937811493240565847517405772339338582265199860136413228238177762855998935548032110935293622701808499782170166922379287519274760538643095685337205439676516403065905636437245619642999105021390387323594804158279721208141970243147634630674468373161372819338756188159688522358150357597841841117902941619777869068010340389510225488569943881965790494387662124494322975129738755781660893030479096101565976459894841230595250246557512235302786525775759149256798949087874081292553945944760788628069147801828055430758461736022494591404178790543306260228351455192154189056987542218394559245706316603889227160741085864051473672323473170285541292609572243081430724118955578053478515289751774280446952298854460910562258569679256276853282222110322028793144715835162065962139171611566547987068875793721813315782480294138247328362580307900991667102551671144367453070016066372588609607230566161658313518644642875410115871922074423743030994123824102155216137062217688394846921916065028576999537543821364789918196126916178402593624387251086255238007900010783176326994625718736861338840515670239547373853868696290087002255393357729948803924551551691773005588699641551623771999942395120209078188808806902651682333206482887341495062416612381415769028130367219642141046509579347517047194024000157190107254053677695703188838687407112400800304646143004125498114005294855253644461252277217508456457905527609339050497363842814785426209758459049059696073284933956808133447554489095692911085584450208413728974158913755464378447446111081441031634490415371305128003459108953715698039971338443827199845516143441521456007487090962637210047871688153220379988938132257449164055319126780412249899778870041779946646539674501950549704029205998189441130336290376954931020830083217408899444787114553542923521968492458755154941967826899366571882341394362616818422501751924926034581954176544371249140771018284474325158948826998515114989034126282476035826097242861273798653608487090367463768005541201425751931197435384180732921041333152758738582324879450622538959182516582296429334243896186822125899174434224314474554552005926269446202153549052117481434063570214618682422822483404090513234038230655256159935511256905688282142938333300850209426996520348231026618921638857005102018862134976663434485940784589480286109524678381411084946524095405254443204964612929922199622647273315014683371427180623601760162271939955344109962936828209789929128126681149854254895962918027608097792355713444621314256600328064859351182398029736249901221013903799917746223715887530731261971835781849848022771846041518308197481553263227146836413613095545859017274062734336223902256448368347362418350520475791089836292512030995357495552641381240633772715791518579046787210666878339864660547326409953019780571250866818421783950263587826913527561639235169615685699589514070377482324926405949336386795597865113882701862159124718562154076720196929644072982800149671463938634603825315314771649886376228035046558791187542802769572190861237902871797594354119875988525325244641954783389140642645750573746779685502412638357655901998476349069946809561900677341172955868667939287840738182980767107451975128105732810128511032214812891404813702150814446341637959168089809652866957555837719157744197065337881160541836129666275772671045347887327669809142106139884873745314590247111962623870875768141747314686368811265283684479485517204783096222326299658087072113937684434473407052913433183617414974391005752503624245092903746657879205365187862473618567357084946725405468082040021210613023207799910912593439665035655880956943043986488198083986503087250157685651759091408320088007544960351110368778252612625948339123959476888020360504787123536672007544383258150052038699035054858020729586103773187107255294280651145187401709430247332200001351069801175614991102566713325268984160553561748110830861688625848604885252392414792035933366212459773514098647085402074892809204871862008465275411738870888567625748926405485856859977896244924319959632256651215212270541968403662945726108632542600009654873457883828554242412983790749569272817134237369856940653152208013911469913528754162455632612845554717832107773048249541923171813844246999161141453435417983652579826111500137839815762148379281298987667905993157781165717333666071700131767392212008709762891587640106500187115557793535011569942908933124701347202632079792921007262782850149303709956715650010803971778708140077766722277821880736864015153747336440334981894867124357669497212375465008035024689636541527855944227146880892248561624393200450750102364361041761471178343322060630629113914954461110700484424429302205612210306487119851762552148836822651818164087732474897788494830795905419713770841465868345995412494926010399137676484558719662698093063591494104273569147594011392516943236023965115283223989323237788605260089530360065195368757359267444335272245171957980864080206438404407633485151217487678072011789145123185299031621579981187731268813432650118115482032754186665822541142600917619498666882679469069555746154473215361705436902840046724917585088066692356713044356581136997255475078868028354792593912976284730054943415776725197121667049874601630360409786487656145617850799997323555547111433641556707001110369127858193715496963868664704629326166945274786536367187703713755005064203282720551405712525927607280328612647445350813985141675577863101774937004887740091143501131172813705643718511697150682005803601846683546776497939247892513289090391161232358955470168029434331478012586807781894080609679774539329960128367381008733769527414065579425575717353668970565038424908585262954537791595449245402310845684401790263400061495027853561955769106622783275034375737936407554390344479628083648503340853180907800653756349119685244516269738905433467018866873339738953888101938006801331975592036679560643708507137555157150076873747102333482448174058824790387572012001406359114447464590790111656050543618357147445013712376377327592370984544158034582321889927084705445469696529251126477994325186345137500342323988515677877776226708741717811588473716571494423005490189895066565527910758468949457692992421579569839120791449565146189357835971078910142474914737644965843762618399577846638251375205502729813981552109889935450398216882759724075346250909065316223887413177387399538361912303734940759280245627316845274569737570903888500996169629375718760177401691794820240348905964831835028950742570729076054194653044894999056958097311573346533615902670228064209784411002252223738556705361962463696087890131576793650303884561853864474666616912066688108449060397795100448409042784519676273999868090608130394155297132285380439876689483315434573958267667991525822485343022873004609475297290991577594124731558118991552266317727349676186861572140049946094017477836683332609118268517039954598376837311863832837956074323910023477302291316701075388834100034416698948055585278332673307625610561828957785608719901212719235714789337553035197994076827338275156437040801696742062135021199310981720067697988359911909301393955118078447421872871019229337418092366779978957704754174934099644593543464966254319825217769066321493726957093337580452900963935385598899641977934324829502576209823897597475173160341992174649822608717192447750027309184314578086084052952151285497142014563281678171737122864125823260511466085431809368218477294252633558738763400676355253858149485510233740066544159680687109488470353906466073137194835283206478044043255366166105150135541831174115173073525627977308141797380357591723451754032587146217092382032563457586102022810296931045363950481099233842671310636835812481601820111306596471749253530569031523870019468397398970572975229652778574857977682553699506605466484173724768778979579147134231774610070623783252331720325283193108640903671029997371727647038637514993711616167186609163917861314962580476024975784096074498313580244901910081721271506133023249273379171764468118077284640905755102835771620434344115096887581070158167250991681441364529886807642894366386340890090374829802228339283974404604423517465125299963024798727667205489732203809590058839598337164282784334226327294631144631196670624075237027265995842735150731055835420228196456351702108131508324923910815713434393917089181909497322024621268414780380460151245634498077252575155540618999150260578033500449220179542453564272116292647629949403754886865730791069615386128946376985280912758474367512243719711301807096415968995070812187153248296057773179551872794357213382499210118941377674415639967762799948101191588976598192588551724101039913058107546110633493549282854932870660721494643489521206400584815485594196471267947264903735769115655811289019063126420415606197198136545158142694846209999565341883061073824260511312334337891531679160218134706187870472208264074266925900281436277589278098826689477479261031656931913263054503055780144759037814366719842221854745521609477798707162791814874463780298304205852908455061221898162014761541439384821906728248583706570450670269513375607969748175216801465905206310984881006877785798870607397595814720943029320878509879097177303718805446242892991567668112306899098939869108164254211090912447731028848979220836400896667855521272995407617843499148895346915662179201114805129323004684367152222344821590256083937128391172758781425527635738947441846235593692480765641253124133555300319178815440316006370535290541307748526742599475296631564119572713487692890444729284960056248887455957024741991138109916733146887543661107062208211598682818655569540261878859794657518229070872189309306685670325217143751611615151129093168769773500750455780086453882084136295059853444189312310795330606077334312825824635305691127773453709338512176134357291402855477909663211469379042478728382788298621925383005328117345080247091650615336241135007805382107655722109014785293838028688152405377478734680379000128346804244796989743290155487131969391983258576080165680179419199550813384399562690722561651307926796628143758518393041686346096504900050520226450020863913280500313191123568307271527520925656841189664684111711427329455871980787150525010853820933301486000264962887904817361081908885431321755217363639841762808083488372391984377436864484660030105552936935778980529228570538667278591073373320201574837400462708200562614509144498879119751318061524089651507220977037857858859393836846370432817871583549669567995484381932372026640165791144740579980806039075089577489266807698160644578394784604696934063460695726923453012965318762041131173531164738237835579376534781227531788782889466247213946823393151734039112041630512604802540232009040201118374742231276969554888648934705299575319586685933294315046404314671629652698646217495552247071817934484741922462843889377021874016123808868803041683968565858765654399869308992531883203316106630636298834371531206119510588741937947270387979055286229532762591666976462319490320065541571889060149692447203916081660752907668671483127457495602813154763812352461907906128115335102715071905646714274624632008741820103880582365851029157363234210616008153146711692544021868160983485632593471440301723471395938282778865001841857754474392318999287783213287686174808294925988839695501081739722216928719625631468940006147999908486816025092925896557737019125709387932316647922573062412977750282338518162360665039842751128015538478039742382425555635969555242723428672068066294677182386857734795476769968542578808579911655363968876328506150929036326335355842616417094829055628365710301088498079238557064496745168739618784690245375766310594009536619049805489856906528517108733200200100248475241576737960839409932193951584571156723526175012141482670564279407243928739075018799738683747865359420967050938278532675825510296667643960595272310933284392508342167908511002687526168358881239204617615798599698093630719338836957555847623588437787098092177259997810523165752860819001581854782622414233951113791441512425245507992051302342849822182657844591276628787584145812599699893713755413624035672025536715574380809919195597066159159365842593832857382730689560138221425054413113774818234909360356743955839838174191127114656050814449250981416859746706536875202490876515488763967872691159849468203900534048174625144134472834149494781896661981480061547923277015828897199177180410976665168857179179517134280615804954949318403177813827886741244208534511251785226429760521772348800339058925824720414695753404851824274649885965307678778835888165929635246390011994225199309443902489383922105714630275943629811965321006663419921595187559987166123918081901941630140769823156938569263799822788506451130630219352191195712983708435258348457467251492318843847824546026369104012124090724531004576404920485896663674471138235998676576689755001835114112976465528937713659569602489018202795756506302013313490781396026238530650810130293479782808382538783763872660904628945957724118848986329649712950852927603480921980351294447379060262048629397752934265780273741881926220936028313039756098456800766226178574629363806905224705213654081671039612567913172022187069583026801406082093147369344999569173165643031514867289568352748438033993323579353229979038683223302881510104890449142781264152201294292216725536481893321832688772140106579875552999201847407099884244692970731419125391748725176065032034019426269433359527731451578302761556378783449816829184675235293628567753693191458941851128580201587234668333909705553725151129160186291059346354983537236823796487542996689493166798505106562646478342017357995787124124929477755446665053696543233188821863829682451444661750372664390167072654871047747684285075692751795031302158829745950722202303595179027825235616741081813711324779761696995209456034974052271802670585119129510954091149740133233045985038063699339103278595610565038181283880136344262801543369647416356152019005124458516283162393214362207812564727905064371012302320027337947198541252040602840825225587765781064935178599866165082133137415823362587674413223564326026498658528700859850219152161445334950363721341485541343690806084557543209610106331233645451016276978161630759557765779822013854600103556127163420164824980998524046538798849297667385251619649975644446519412663046819515134937505247210679808053457666034218626187379151810279354305392466793588751693354455338709797453960203716761531644489013460164934822794956405372608253585517732521049798492140107008140795239901962135369839797031963313383879288254659258739777452165933515109967668123507034046383892454040374696442200223740733525635191502751184319601936982094258133923660192347390931493828253068056221459316608751221428027009753538101747050206485972231207368084482452503124255473599741949775000985417658913132729554275419243402899421460344150846884208190270587342124661315893974539433702000578042433735024258060924824718529940814895591374879261254998705118994470499935421349918948087788311439535195202745221563798989830386699122167213902600872578185142264399318781583954851075785287880626378004984902597521258669223658430862791143696950639664291483286387525437842802411053002512042379569975085205147684098671391762109321600217095791951957974154269980393030433752221891624268823007978835970685549057582620520508376443852972088479148348466418006713234078345426014307931353366500573562001116611617222018405092600058162932326737778846913607585458302691798472701502361470881182423017158145613201781074591613811013509572088900814213710721645157282299244912786918172824847497911156274430835146855918474666377941919427658647804096680628074222511235721766272274370029112666250615575671692184506095783536118731933325672204405442543222172881941817895419506997245014933136009711038504156196362020556753975067653785823434113188635671003659888905763141371082422425077734684172273084867502653264735715005739537940345958237717906772265697574161840507198516812310250007547180648325201109578900178064507523123532546445762519354344603070704430789639551796402225147433902227561521515011965703549498929194851051687164165433580356104095136594205771710879984837848631846468575040976434168748769633717156191472245418442646530202241082227757737413197217096594257807991098227047245579602473488645578353293146070498244077038706827115496749299655934690414459234517052200977743957893664026272446060802096162764089227293650799633857645383942556904315722568704606809937140487531462129894502008805410976251760187932182892273876365894390050027043755063873305736856457931521063013693989058871374094685582172845263248775143810759902097431650348570267256213365365037881907683619141225888549510883875859866215819024575656185013816968416534319554835609354823255053907146976560132097202715205604161617570880875697855667670760294847578304254453294266412647288116665972756110358301963233618018161541608284017805294781772908712139652365436308087950053049262570761125318380561112665545800816346408972639526582684607149276738963020780911344622847583236720383233771671835969429939586807816550961364634675662686089969707130350477867042432031340336587287849872749508684895428628623225028839497757676262971046259634670769746418144527068453576794834021690379582940897637299498549881699799372538159978638047149534194912170433707966825118464562633284036453429864180517009166026296458361128573595600550504802231716134831531228405511221100994674504457370807016171258585739548731492074735523003631920804392313289885588349671473197666241719875657327628199418201318937791238454612239370095620382682957554924576438173368831911982323217680194919525438469649184290147185165158893388453230454933840633461630288456905081855169841035689533296536132538073323620909799067593181587895261262140514049176326007207750187428278742014985666706228475548373631896868800403167411178569746889660386007826890224921833536941748266529638581966324262662301727443548364844694613682808770965087399669498655608631034647926630028166066584047908805346299751985795242616280573717404945045272591046310055441613776298032824279489115824130085901902789413539814667968999707420813803372501063492365238518208236081054320552668107757864075289838159733268155578722804512956464138710314022553761798525799024554153435643169671320488863803638835788836670674185275284041452746696939386549513458171151080752821267024504584194741562496434623308409854920248825382233391409058819418374631163172945386709801317632965852348615742963447981939969038271263822546680430949879034359593036194740719359402771497667676220593506783686892830069195508261860051117043526046722374069059619396838471445879191385338947197587531490914611410502758383519507076387188243095135540869855601524295772677267983138673993118372765466157667851679295547322752176206273340085021156730387966431898950037151845700018654076080286745520174770042602212818658775368688003077780357823034225989951557656728450332027880050721222407290235256435653515730297763734343500762790703237158385511675633566392249088733305563336075394862119382057147610376019874670454410116335141414564564975037990259983371634611165660557570388996864522572666153458984358405337236123374043680024117336814681893218632727863279747592198481776304521496110236113978051120607973754220341060842203313784905569927760073182867679790291270919227151475319879248151883780819681032174341844853503759871682266108775831148188178911386527164669653848927209776026752191721018170897495087637767334782925901258987800824325231305872738298705373430806738887770186525582836233338399947119597364553731900845489962174199952663585125330104222884308497053012633398844386519148348011054572989475024103468466452622799531515961042844845018198925397883225418528976521025427116298419745174900650526551741885343070761249549782130811195364087813918846562193013088324787222168783767015384170949321198737431218627865995837933451938420210519768346981657664063804961138361436026861263304974620345212524448460824010712146729504245922475216751013611821835131012506333732467188739920301507906207422367767400251471465996999755153961845736258632916055702683348690945302947364810585968795061794704245927420408218601651748040545761875537910633619383923109209286277274947174486171555235792505136371406847691445021052923422097177119015243515414990681190740061949321162062664191064323406304849857327942037224863214713634129148035727912599887113854988667308297476235713483157169054656045986654132491108505440584783258435845883974732475958412657935951003647762215918525639166236707794827741091521312088455589985989863505238275952531123592666806390963898248550028037657895772405188070551234687563543440912396323404438856559610431127055400084775681452181135907721056669988583275947278967950294029700580386810218078890241841989625690904411508630865919165277610015550314084872160285545044992006241790389093951739629731025775736358315786768248123096134910747116496189948869463029603459547093996184201227804727353825078328640528745941874074677881782366436418318179021874093078049364075564779375294605383223311750626754510811184735964135516789724643780977349111968467152594220875156293279787393340114352689645397908021375639602461659993316099252986075497725336541816923800698517172237817079568140095402040604711758386662860090406241051823110236411075542498784880553982555965771917779552136499533469929972173153510049999184418036668429963121836492079193302452436235951121749824283427852300326359800601452992493710536654812707334935454688451081251261220430490092805795448577987674619072794718256806804014913722353914111981169306790602249323884598485254229119522027397126411908702591189475006726432849347990660777888779420858956229676735194982692326454652368725191074188572078677114640360433085195610404335919923921401633831517141014547342654488498781944754888462692291603716905551784730482254137838552105746223016000581305737061839119818678246782831881191668305287182058500329617569356154745348834810277542498451584502192929657088283779525110734947183307736826326646462658369532843878643195796232160714887622537123046520373251987172690434383910324277959856901022685349773763666974492373173335803914374745864476174920641769719093548067533877430187661929496515302632724988830021537499406936322364593778073625079437035944839022997862442834447476433919055387186424381429810692371416278205227263761461976131244930044031695224229341767806343638458951585239932681296629811072914051598650342480968747372232853075903343916063860176046611070679162762445069080810300684200718225315112916737300798378781611776997803016527490939771931166302420416376622463280284423380532583419768844778149609094543357246931103704435653965140041232793166628082957710122202337044625053652786970023270995877475583568463248554723419710097824923635067679976696547520090588719152802659630497307434401146288903554560689895243288641250015276104523065787646523144694062174343008709647755001091133833717067675453766092160410459009453443861673414128224448857230260269776165792152640282859115389775276214154656019961954284348759596925189412088838554591548725056563044680062173246932770596153397869677705122628294244097569844351182639430903857165611107586926874232067749684471748882037597370479286757869723324771587522311161785331382285083026082420627004340285588509170951039366227987385898050097636987278328231609449843592623977955086629687245296812788720464098344519730536411288572806345940783515580553062228247966129819987876270984185482288707373421357566112776174733453901248131124618553533672427982257454823082498509783857128997891651682952410393202900791320527561471038954685463114042166801211912924441223908569917365694897256072868754046345544155423510262637320491398379283594889179470586491711462867468550243759492677675009304647762827261346560041066190161409658654390275088132136910875325673057609537496484235127245717106118901685098584146103430671044418423888920295889088797543673162306521732297748657713218320532558811956066049541686317879442054503543502870277012775523041559210396551102127173873017425163807673050236680745277810293804492084370528178836254725152815920911868599237715008200274367720926193524493722130438956177065037426073758262111031799167991917667759890278355077197070794862151537281270216233689814788309462745535763108341569562121727627949498142169567114765731048191540402546627973052275754655982580608919477754490174720607677989412183096610758493213022875395628080934805622900868638571758849379262925972244387382847871438080272039197519971163939385528355282488729959551688922540626564847457456710865342685326096475232498643889320169359400397651136295593535437007007810588706489548490394761429439349981270333436646493940873149891893604786929790526126807462030614732556199613975892781266119402064806353478142485738248330480589323400533916610073818924468781381374868939109044569070575811043330945742868484039706587177206990625132186613294177174520166532965136999615889264309776622763818865384460497247257688748272737006560430524169668428837358065852009156114152013742480084161441491894453772076070021367208020667581125884304799883206978841850921617242817775092812289444202949288704220989218359907824849583112015356226011040325366004564050151937958241834712428514015018050937359478862286840943179062035182575007906601666244697735697883298398728365570764862769829776363781764831387629730770111167651984264597152730898164891846066489996681552538405045700644925578779746663450251183370428728061329976870344610138591180075960810637356972326398739326163745524186701555347431566847228784010087773818219693839299148858213177347851023373394146030467719134622100967511919265817161884767726011185371214500235193099923531968403116537876427410295194780499036103957886623710681725901721021656737466895945731008771706255808095839562017423993611850459478196136655287499998146846404215277896395855809333409070029506397583950649363832851393459628121879533054173825003202545688988319629903171917508601265737608266916068880773366520659429461911036464001459124814283677925864199784457102899584310951429147063467596321560266722179457168081839685806789633058129912471712302833613784971591189552327672873344520760363816627951888419825290778690990670709365211816829483879552299457892044435286356202008193490925758246922706054126501281979128228454575203060382803225717604044606616014932221221843508190871910173694139585274784007808940826459248311805196849448509224906081116033556244537493521593469339956056653530273630940348554763349759308565290690863161957995525326608516394786897838060574560769095251047026616652296584963254044138988275944955932731780620207662370734530426872237579226121804778581801255028505975762685751819456112626191030867264864397606567764482371256222231976863284044470163034029408458900470058328600729378375128748084758888466316068778002946136897925966636091483717273794569676678503749927635314634066648796209229409999307044199524259111709506605587234872651409172348490741351317152396199739786958953231460763781228057759962702955752052333652261751405376140228718637964574997321664564330582523043226852385297937429611615984920955991693448004357314209093401175107916384051829696689426066253353429889783810911730435223268599707139730217682925788362987734094821152442968457686822999790980926822542333317954846151133978724810237816632760213661693981517631502775570286353967663924139511039252034408534816536250486044907376593708070366149616630128156068178393507421167941512766364165822129581409127908645806376361405012359253703796022969234237506177521940384223041682674207562311814795862916689432819202399736236515486178718380815716938723380853140221153849321935182023423956269447768454310245520899193913289924778357059198608966444941605159244347370990636049190781715192648712325613827427520174863755614518305308863623813021840321933900326852808289486253140057678253812613431182488814173848759335193158464911067311315953396166927702288016698066811468066052557011864150039338077760599486906583431028089732366341626844666530064113689796385458317537538331153913678998222627421284023334695647488067815198912227745759984850651777119369728573718989112062042399262240628199394267390548615741174728979465368344609406140823211432034242673201212480968284319010224746895586088648284433276054556082006010223842533855489411574681966312496227057123524947330554408705948826300992778317518380315391451503635159331148645091038698312243226380899431885888693912376047900489708036368320724650267720425598504262040779043813306582336249855868099256256706121152293586751922125759762832293624686817479378146364470035536821599562137666774890444674724971732713344285677381629224249911073315325623489997699496469071849865079147207617196549018829763548748340780689925557885262603984741638650305243156477666130327468761184757567408902113541498858138180448998952835368294555667403359816313504255131931207620307398759540773625392834327155649309302978262158821171275870579498981858021900257562488699856437107240365182442858929671943137518365824718107805025249080226151372356883944460815690596800631913842770913141942085606085845076081754217927731770190758295706642959065518893833357132258876128771032966854960114005029114402419087362243808644420521919727733611154922179282596313818349936278209709978030406787224725340673333193802051030015308143643588232196371100386370928381855278018614254291759783787051495171443814501230374684991392383998843167895756151161436590237993517510228144230219379972087582100051014894584553455577910143868722749341318381866486300794759915190696772808592422034533990364108938230231564651683532437165904289930401544929965259842697898863203642617602396713489845147153926882838710921205288149258358228462268212461869912488720226715685445814759141164551397148595389230865056512398677154215646756192704602614406997107986987361255039751507578092441264445360023062603522433011497274637769029048689496913525731190156354231785770960738269522941367845146056238842446715812385317788439346981410411457309116062306507716628985708067093721693629984084652330577392756406926448663741777430004833165739894964599510706696378032644592378070775469348483272011164304280492951032609559394546634306961295459750071689701834108356867465239526150780448288885441918970711412891018280332600805767360581793859924715627440908882080079564697976090943473525929645229070172765829647447965799487004429319706798547997859204213060237968741522152835501460515598566126197447053204905558640355515024304000930094323362206754359736316131152336828967238812160788636762944626567976377357479073041088278357125690949345722674903123806761026859356698862956891647865338506117263906037186287733055045477032545830619189785704433245522493220067803716017358179462687070205077469784863289434104901924537565390728648329964035425815837679560200008247183782275818986470551466352191143882592625740275447897093812842302857120467548189694466840162763304504253065027696307225699216064260080906641277580358103570962848237276793855413706386507365392171146033604674141336870973317750532323188465991405155571539854810366182994677525886371709488790184574746302795565499219027071014326502076519923320866022344660490904475065604145806122905171994662902945035867185857637933781556100062602238951506510718101283356321836643325702158145470579373585939167244831246729287175978831225021769343633029633386996887695241806568883676433454071995972613759055311030186680566184090341726046911695876403636225115242117039254425492518463659045057523060852008206724214865598414037324907021278734177022248015871611171254657370472447411894595529161680047049964247466179123967374946287546374569361421509238221154561286456169688434820109868347678661752827824163332122169928437921340146612822441057386701020673143416085667299099458690307804376133378280117340553597599474095394586376721415071994251383440537606127834228623342816210871998328242743509466434369271482102659734293748986659357532410297651188716160637469211702597606759159107818837878577970145857068639985380944272951873241138025270460009514970689675454314192151016370314933060492763408945443462036402677761200179243702145628590606517247569650765332287095349015586672450824899022295585872049148075138807994916574859326431547509827533353030297811876594278463656811559951452593030968884022879259301750227273208407527982915022063523021761528683902318858062818747044527084048381172024147738620807257570150111291781835299387992982424345599200454505871386720888649760211399597329218537415282139120016225010039652050300228499900225787517270489207949428133322135003176553994185378588121327899361405389162843047699864344293357672093815668477032043979501581297718411181697862013504058993713741299128164726636426127167805450912908368370379931982892572016438228729634394950550029960904506252852092867999345427676204769819256125290503298900137459682398645103183557482907451966741612307650922274791626914742944733226180683784255767666793860292706509740975563310005567719260400660837110353393910589029643052265771950208940632459761422814817822581230675479606177508523081403981195760073467946138084307472950828177739217658968052974245265612921680843531949657881491598555970329170322154250129089035243271967476236265934404361149549496814186399638478315322309976791897665670495374369266891285693487933814156187726055732222246987754170620092521795325275903685855901680887683391241016084748625463492992144652219597245713979279901691523053145453224700904321968194124541997945622065284322439710994612386035186801153373097262020474185043418025004457800693656218678316768061235262133658915598188554798202548504482584056480127375814548318964040545935125607683666971341674104572746922668697196517430070890528707575459361447331312620132758306964691633371435362808926651240876008241903863840376980752314770957807045966641336589454113503148571468452773900926865800553644132530976617885574377518840568378671571319858727741869098902236232387722455343863766068806236839558633783863078142318063843974145974263153096909028241593827007644882945680538812945462865727818380335939086536438671958568734111320776165273979571094784373766225501518393044200625983854319778541156865712093736976618751702410212697866497276801748966970769702513248894089757945003737057765287016897861674819731158937797919636691173705877167316126229801665747919662756427197679513264510282182051185432688797585086993328922334326175304327480474640699618196898405643136415401267990508517514503751836490779678085528167720108273680639417304956117399202982077618477000303471540620029590059840193339976417132363945356830190462781641580007454787508667558938284127854229505701246575489396730252796367978631391958263262658601681749380109484131420359341620845553195175587722850006969405720381992115371553666923885065187374250962556382214848082681038450585147643061569503794657523649933566807175617346462360343082590295312778236611048580717303967956590974601151686068983729379528394208704922288577035139200738453328349112364256944676394366831289633531626466039018717779019190426715607793892239848531457871282032298908993277374812510768384350384792111031527472242488339929210440942515710419392326833719804454690920288871829767147384400194039966762932265898996056479648916144490432696021924273196490478139940681961961067500121670108835810957420088463944433571738077758179363248185328504557587749138142519207951414563778217566150455848594811304172488397407278180698103367485197350075144445269816643741022883528863692282997057387211115935630954731108303592783836193747176056099268740061050101761816796039688715825664911841568860491654301833064418103508213273902741884609563828730278438212019305940156892999780051338498740020836700765583721017431376810105220588754109399041557401506772088459709308654553568482636780097385163954750312820272794935147194379604513734346176004632720060007623737113967984088968845342430759124551047965746701832192136619024344645387795396643635688793997519220605284656481086801572557602437134379603217008409668158609803697634144501746461191162759719860034403898723496343753013159913900373303096257691809939246162425223946955652443140781744113746572418140689518513477675675916935367831710207067898529291150320971207503852300053190414875460008894789560795351830505923288656445502427674736793662812397127869472335327488254119269386386129948543924115494482685995909117882561425616126011118036038989149588048638524704220388758877244120213481022832758024181521556829898280106898403166496402892292344399491850296667936667247921561399867729338927617147618790486259617431728445410285900230226278535423815524667149413008022446491532947356075968822024083722251688367751039923314095874289477220566104328843182174405249535670086004094571842370693136486750631361288774189679282983102405427604151277041265053315427877043916661756893857027318276383415428730305943100577995928197783590660130915824961546915567252275384378110627748304762382572864318934260775193341129032338561936612249854467915619355810630124422460676320626534847381824043233408313844442180294000343117990551116634813165864424190186682847901167989260593984548278795370930972965947701495463251880231968463088389430882858541186923142724874829960816630173617428383562655424017972561312914645296543385618856646547037553170678027043511728699174321637441218681682910171612927812246055375921326180773961098885249895938479066573625275893736111871887195766037199939338232877374913698998018866371901526330269502736927644990553591245269375789075773681911366587582457521165435462840213111405154486665429606487657058820192526800297423109489630658543847710633539401691977859620630126048299372282852606523034150104492807593242543477304274528985272290227571195578346739179783004391235358908136204091773879000392860662809030732972142772694335496030508396682868239124649072232656544508184986154676473058458808749524301194390131408628545742691866559968607745271820326649073280833845687857096847338410297967598490975623513804505151444827205897803575941561688218433831395889686040322635090830198654011024453237386128407499223933836758774683437579277688364408698721839891554656387711038196432288352537983404452793193879088984147902375048842233592321728469764293055517916219088412093311583953688380927720673993260640247338262134386383822608450492360164268757807860088729608344042808452135925961016653547752241851892194223030292670219066063159155947956027198787538571906154175718485729434513643266301510908031185689977578032760209057905434548463335219780814524828868536793896805932527547311563579574217448355319110024583070348908523488015358781872988165804797688454846828242716465412973217318628662535063254687134409810480416785877473657771641636125863998021826364650620275100303685732261001904630401890487760847283105735284941243462120337510849936156144437280783322662928477169239550772754002871718359814394496327054616880384048572652119180435475742262679457164252594473654028836064370600537949961972323979919960522139010039088188306058691107142950599697483459547696551053565655979185253386341954711836868182076654882854282016791116726324968774597202152497700254005965733254156392590479901029783447223468223345105929030236564497731706325159160002982213330473451158555331725623939791743375811774346108737356513513239430789898883540324624517575841671859907935310790697022165806711148517682809766314061629060527599214301056441464437120114116279234530842000634361214023614577990714754033419179547802000399408639386156851000805848578555873524909531996116865565361975796133579618811870692625196176039665701399147624556824699808311662458145940929073036807245549199246226619389695360632600408218453757281469501864521736531837057186826147134100203536053870153735464517695832194265233319910787661323926010181213914369584355270620026109637135303209503583013391924111164496403639681155216669304896169913407320473673494430751031581801843053399356271205871497001307155198065583132351881199012673074908062019300336664695965646587942269086807772964685067207258613601534404020287158790156861724412830505210414264655402369708938647083997311170745103235890924241738149416878396311634908708256368487238568624423656472077179653805011308662115312785987863599773582180744751075662786333207637173579784944254275205786765790172778950430530539451220742631544275307385253555655449059470235868273892939899111716192889763842983445556781460023978633409514161961541863658548186745120866401602954732514239167052656521390378317529430540742849682985770270231063221820335444085583105831302393048538375148956360015607521515406580320057804144526966553573002579409060685619060016584856431541077676326571477409982214439288994689866132080548927135967986904191251387541261425127505209086901757305252718736659797189018522738221652160781318398556986309347927125975505342287573661503461330780681376908977558233641869359362863184991612028421031115738711331558712398259771992960277016543669178034897608840447531891056658934521291765073766139332123755678702306487364798886209259987207268888462073172904859587469684378627366171305001541288991834515834715698582056133098667083854408843832528308496443853278502642389527686773115828003418333169467797027135330304377278387105352512018950005750056564731018953597934295722040461003787240516403868672738519837030482484052497748907533972157558574404807004418055508416287340528545640532416744087922714573414905479818736840507479134555347881673434953819866919469370925838388504581107762839552878333930399319186890454468716470267478583691532836690086245246420256779355681989237170717788299431734635290001896758750011870748321318954275889870828907025085913925396933974211097765918354070241327421018553226601213345025133349777134904396599960488446370159203897580626721853753318177405336424864345957740619324190264872348415735694364567482318234586799626916483549820758218940432315861534629328578683313379803060417276851166500884942954180834189394101338172327079066194566327720191745381570534864746902325560520889668962234537770962580747682249429493319306825205054802842860443853360390308497678760107255048754986463989352741213115198805885856380847972236570676155940625057200310707860075664860400492117026152091625951439832936664019456297592278363914089643739539272858391282530052211690289923783785920842054303576755538137147848671540702868263759063011302732284301369551859321004870535728963612634159029536448390471933096832642656816680683352711001483407342718083598970443109495647318720983074363499114140800353874705268759515054421751814651401495862634533400178800039442867989983596066616599878687626680534519620581474168598612637378233031367784757881232502063193472757656985580472806908113190753668803309320213394088184340461155865940474492816751520614213535315315923655555590387064952800237765862758898836592851036584911824974545449570434928138148593967384282027326681142846002003382644193601259957701955646484842393816005129751169454261482985416421467223537099432142650606014147352130884525943774597665271442495853389595424453086438019793396915805323352572393470129296389649933636536623623683860282755391044152043557393381310416893141133568516471929913819101583520490835675963472705684054712685286027789102935004626541270059717517385359848594206664796386108927962113398026014767249027931196215802000733899560289416853156443686207711630346602480795036493600228227298984631324573880358684260248526923208798634747028838498893971682215508689061912504206761732103238144381724343449265765153741061263565569273673357597958866627686342117210268441436213776969405980617089287503974507152319558216415084087544796126634728838282465563602368758448877733678396187138474503871633805838377463185358797776862684165213340215459140911481658771473738316727887672046015608173923881897241616933625743295959644308206894684718110341455128370306310101798287848454261147485662724446270438812319037770755813950811767687671690777905541325725370060229270887793130575626818676463889048085993685185507621317064966617893762732218035555761678384383027426131597142213125644787782269424846498734357358325301812736056767105250216210124210278832364178788888706074213468766835873902149199157613015720917144141872097229824774641148527154257089693481742419838221270534191382224158939812645859995320925245593774909023089554112839170325662683537353098599241145450329582806679781494778910015308101410537366978830747255520887550537296835951886453381976969368188737206107041641361113213899925482801963205725130353832758155598122141512159634388720494553731650661287833448505452030258518465205829516015291878922144872211596477309244348114698910678006685539107043127904121957732712407398977047121890292007845265534292279074502452419823051297855971071091893078871958740216882635660240084568576312852075308586211151903700180630985488049247002749040337638970401670325324359708100018061823662104600770379161955844073816265371061539447385084549969336987024500071594264988497966170677225405233613033960270975962633122298707907174000427709211869370903118756538325188794176825691660156443193816420260641296113839657662348151027199445266606491562954285540671836575606099819610188701986027752138641777252189758265956777299558275224931830631177670936132381654301926413529804310419552774131488917883298045112847193209041470453528066669139227621577673165159127290844873413513084337499717857187882603130767955033678606467386257427262206030191569932585812261588369086676586926683397129622453544040923917808089292005682674686369143635303043237933783550596543337908666920952628756190320213272561929205779547250087704859688408524919071022169190066907618057873070888299965881564201950171728953512427469567709264022210841620525205041992233211177171636747840896339845284056987293809978245054682036354538756073983816614811354328454182359825263522706336608204743328453448790143839618626388620771058234906551447336121928257208660692149298295773481512090945828325086538277408143921534349871629091222777842508787854556571950806297902709372366569984267219279697974672502731154613857398561615813655840601294362090927751391767160524325110226702871579372326637456913857825897843960331667102137303526504930272817841589564960409908972237535007578063113264642167989962225505062298894782680282263565493330554307844073421296668843914830590988719828396071561082101365935392573245437489879603368142717824865236704035921955502318983057654875549348731062464324338063734531160904032421844566208480307916654696256061107094299353494002181850216436539887368044496653800255571914728500206727081656556411480177921995988980488049800313058666776631940261137671730947280376754527235841004309835606637542163744859897516792658913610904264524051476296321984571339161998427648237586223494982639095905311748547038120218644634614561673022197130297512493551441724985128681312879251018592718224746843411843975947263540389745399763042865700462298543019308743680438265679596922259349200201924203027038698194286604946986218013456835844689458882311798928382802451812488965524832300583617515642812142766162362165995312160616591332832144518461315511128243565193787152614630621998690485478788413663852014375065301676186674066161473036280310699095679029785420435521985268486160334217550672806919179839470639753638844947757183596414660461340574387261652469646906230693267893825629545402295131522144175255040600909976717789791717038966558405375326065449492073895467819111886808477296016661029391446322399801388746194286082367507955073732882088670439111838183689796276868977089023976537855654855521053000992238515331160073609697301011652771585164195410468016779172885386325690307380458894366823379693418194295717170575827867347384278998714497972537740074502131169709997366422022510470554453956145244721810034412267180816467405461663296255440822527187488947843088647963289754438157268132061076050833704098636631141277581076374887567195702446968432176492618524419551767908516100131667592525073427376519766256816419972501637987785622562610841844686928745742176937151868268486405541718261673029110097770965381787564357744510394019062236842798123864122118018886940103252385030638097062327901766828005950871733227783525512380716660368325845942104205931249513340130682665819553897332944968808458096953932115731460715517581807928657614105669205883078195976288743675115052312205558482666637401216743755831223036990438409439881451942180809478927848122900177596214252468626750823729042041778661911990249392270200911738901107771287384344015621869933579856530645217802007027065806273174243444152576843757233275442671795363664451063150619881608960109080096339968128464348694322159250428470226510675995015065653736122967772763397753808630552473847976747130280050756428542889881466307169099514331293025307480931880056449156089812183479326402010707136628477322164551297130462202828566597163440155488692866364624416674055801837385065723972646679015572499933001362324951215647612553618396232090629579711511989696912014578729678133201169968129161801574062011734553771853453938078227391545113140984772422359286348196197750006532713651315042043897075755501066406504825724581193530319457297010258078169749847624341094090172183251767375436213395349306021599784518337155045679932063205526348770358393213443074790355066687410903330215893292635636504612720068503859509880399032512350131461540662285183052147547348532702906034109693652010733569489174543515370036194875822071358373150257546669820283720615572400664638338323171555519350275322522977993097139531278165205194784589746708543949045420644293285400484361553893912068454844716047295629583196659455605141362732578341478921311697755720568448188681117014976085776113751652589917648975717853644912805018518941596240615812256750900354654565577929672078165411485361037203394583685198461324508321405102381628714320341632599317933412884248938081117207613031331195513385060678767462469304202536141514259673820646770854510223802287838735661522372891766743225693367252210639595496433874984876518643592876437009015652371810179039633605147650955956184541570152974205717530893623785337175507743849185456239271911372101973010452272757998625255830127955907760777469961290525466591096668530115449855162783641606702330749550171175944435219463558842958493399547463923525279887453633790307102785990306482360988040400894304774690161487534109232852657152880768787056067460168471228459841456647658484668862248206804297111117777864100428920197982509789708465226352534923662052736783081286363469702917173441886582630779949932395873967115521347220270714098224751825874611454260793577400957530712425588233306036916092818686949776700037617573374630347413100992858151042927488036541766111888204583659543555369179870097378102887617840556384625719436233748934714999608001975325272956521055161979808249076399102887128972900776668134548349278909188527783414970898117607551903174705884272247578847403583996737898312852830162733700823032701739530821603779737246089390313361978317048778152886732648278158481385339070399723702911606268587898165322326027661186249610674784087746564988247417881538226973361319393318258391182184838337203689493361204762271079483657744254754348226503239095391108488183682855468776464407926612102404621284563950359283925199362962687091603009584834628212705604961144378470302204085086345276772711278363257978592985358187639037221895620188964465392114470022598501225917944853427001205203322780864410162402917319281597922629905961569228707350368649595929038752481864916132313146962250290130986533090893260420609399229650444361674773638076362834599430628165258810235504438256730720921479554219370947440756686940601961706393356891541431601679789794846824236884413184580084691444648879971871988315178041937222852013513896177305051981004432691510475953636018059014716048042111872630511623841863870229014612247460775283261038911938346841839277553201833102431772602590299457684957598304954433240199773621098524038449020710557685132333488609492838947713431739591663377387010922981123865320504322342571082554485877451552150666428926119629626340763889634824600009106375626606683794488951952690415051301810373180538563021300876051563201459768699833797193912583577750884227008064008313674173871071094480640109787042097359178736206619501560269115617952962540903935246477509164218162138414657969042266968089771684358502333551010169410021258618212970830318639897953798485437885047338309476747161418303055781076152602595228956239515527148366510524614946781147913139433293036613662838314482071872587548572442709132003086481900364105829672006390149103199584704471776555638322807818926470161248037020023811097040421088383201515978337530914596107643595254680764984765981189208182416773911699402362181104855744847485212746251812642645945097197822990446566853014788375539419040639720918942766399454729362164000561717668765268647480652690336534963775299847717629912970885141570995470248174268866568882036115663813713388910950653276459162794413843632988741478410798821950180631959913036438217299147994515076406438912642884163616921980457786291165028211504841923805762384128971577318777594479157861784284091415731297674802436953647381567537262811531451327818955196841743379455330849662224628278161253652200232914456143289159233113550373280674892459779128081706764823424158380548165641999375522312615199076280702993143472012797332654629341640568388934655305403384261583163787898080412597699979267936276062945371573152021812921428088055930616908096694075575542389602128075963068910916792509606049204414234066640487099749132713468818440936592907716932744623799912840956651838772350554578729683640629645403590719011384344534004390204584064553148011715578433315661751523941402133819509394048943772457569736819004531153023176451670093237500230990021887180526085251779379460127022205331435883299663385818733359435005632190632557251616106652298153847765870087123407121844407512094433775554294579404598757300981156389464842213331648276867175640678696851921496428363702311421330072366946330886069619899448685698935876168668589183972921403970721297971091618724659610496814992619852738464653985718084970886060282027385349548207757297921706066547552505452696323029875034878676481160362350133077897795392699232092199357888574376645012266208502978906596213317065301490034609417145203030635476609642294973455741086111204197665098175659360754530824190014402072254505655506276614357270133426261620926618803496148551449221433914092181441309973252256436223987197383910564733451068595254705839012068987104329049855868227634780795565466663188891384930511988637589775743823625184660952982696515849676528585891410276811879389066046601324236893278385152930136245265264440892247877582003589258359860918521541196817082309626839324666228830046618813066240576305707655303662055190684661728698432220881269289598482800610415897120217592707028975241048146432321556085087044277939245594750436145445878218574067857844582172579391097241043256041365711542227641495163054563101203943126553424907992382255746007330491754689583337216127105282739839304266192070908829886543583238822904372704699535513008942744467436646301244641871857549489335218972168191388670422667333520867451699576912806966640619859309961562638359268456779763238669547067126956594131496969561661106125465733679090988684428235812946886787708504423910662598508181454810838795162110545296316737140807528529598649892837030078525654974895709242505038241150245194404538154633892028628625054471448306356340128885574939852371522209538289480427190003817860597342238979796577638140768582962265951623560963689105350635564286260261554008991414311572796541479955001654121297981330459435601896303676781156144410512984693474175439089438456206942963766049055552957791779254419762095187744089705305024879356450132940147970963969528797038780539676650722556759870246092338709556174003739317511922291965049991323418060174503586542561361234841928035020898615825044687587779549337715844980313185731783284468169344331638881338337221474269585064135633608970500872400613182436462956339400617644117708703789428278079223350627491605086022469893471793247111540847586481660339485155657760002535690211291068574862010476805645096773775425926992459329009983130170961464402809282387551200460644039778361827835583489528517984950431914221209654542741132918526421707294565899065212959761882379308747952538208467496233366451841721134739930324798987814235739568643488033228999900942126069126005168232154184848461020580734947809321298551117548361934366712598751572116154184861368281863112174306404854180378404680481524610221105980435631912259704301300434674035967994208781510485542484469227758561154185387632536341496567779120087950820274504287633461764755718127514740685782474029122903886411678412920696195023438174479405155786037828057278851259431470138094003931670637343939493281746132818261589970003214910185712921843820006961998717475421102793295695053869698622707641349023316054524131607477325956605830569097605757198243530054686086501755946166991449641006684177813793588895369042081469199414601124656014322291582898273567787574530513547987790732180036036410003612340667719825015849958503452530558153989040299841582300762149897833754961966727218794860194676126861551453273285513776295164891598092191863221990699031803799433341153981698356853836432162548195795826194524680233380053497135366514794856474773373899445214573570446491151057189890927193294231860861931907887089365378923877959972984351258224911956842664388934335281318028459318049046864653708385746384782817416638523526256436183705547116649204044428805519257586222368880949593245223967084639102577882282664556658675825030164620116572116582940553415278602023798110763716657610734604200745860384013972907477281170331304554226895370963946229863307530793290036763621569244386349287341272523340546874315631629513364801979350506576985059803716232184646728369137743873657733444536542022438362844835306347317622083228660795723280345499742795020092506230734206952196206873050877261339786760555890448057495259615410736028617734959054254110831507121971460257312662029761436132316537181572950920764699281485539686020647939928579897407275078505433489264415278806603124842150381057347871828477276114444426799872374018475559806746896560887815289661982106270741432190165944816527627075601806893478030879978847075443153553337007082088800675288952508039131352140452015777928880087318341004106898113086633440900034641231748077113650059253173943066861662954053383981239070534669911330242347511881568329219058658158181074660667925759724459925880728556547481526938980576145852579683542326819104094730557604940869893410965454186080954236650667402976661998683865159265690060117753908301075677286214740342622163723677976513475671412156566520700825043619834985512913695385249953405959019263785313371727833214841101491777844096777418910188385006004641667380046034544251677956408218087405059840584388168801341119405946552460178684049882596526135641263769730323948173640126218078403567253767853665601046610209178934291391942174739992446138269022855437516021513197084736924196177911126133725304738195058016164463029751683696868115184453863821632495736775247510064494347157619938601323001411557577045518767479969015835162159992361443686202325753817932044799818529478389150745150917063402345045210771130681731962325021993232676176723804812059504818318783873768152034233940359928141096116036261536022331076720930013285572870507768410571143141506391829784780100422632405302235038161850354162492919446340130045063519782053542747021041870587084442955244535228426610096069057929584272641937527230371499356679801743566717610433829731103536251167254792930644431176786906518262493355803408637829508687926812020796840692501816246943530989543101152400675736185954777309477786001535261293147594121870122028468712268102761195803490544673238614058308508604370234894494831099305677045634330904594156737350207991619372570690300138600356665687418000104743833717925083003350059109893881746251997465276966203505729098547070520023890153643977128272680782441917851116687270370230225000519465875546124116231308630462519136779044920922599367948891939361826090230810934664159147681056248338651579198827769217743250904494353064015254972815174189132886440777425983966312862850287665257738338012844541954161199197739132492527772187751647134355310060155325020676525089912698571102778359930601246110484156169708780033012227744588935537828272270782095470049695715423604356139790883453796453398830885396012653108112668107078332205071916757142049988978982497496330914541225250519497343326046037088997219971407733102894262540748990237837295629440950141577191474896455853406899648958183764023390749303030331142602811449657376648993926755803764214416605537747047636422064639469067106686143870412385940274605339154988494757362399425408702632945209711662090527772930518158100552912544972448327302623616392497444525051971608896683563775658186174447175028737294969735587104506767147723609317519692021665847249104404668874785556181876241119634167828491063262344903268047475345002339361815130810685474234197810722414338241289778297578205139443740597831761595769190762802528032435578685420130467133493632327088057145695799861849072805088445180238902042234551889714103254132774632033906858186417180511411657434740387962548559969137253060658478438673938960266311479827034713879787103341561516817790550474856548791816612339408589290297700004271156507754120343325378388557517338120295924032722801054868517467484941227385755053551514932864460345218360978462349405857188806382795418190481840421630498433545106506873924943553878818648389913682796554047068765541803776544326922038789365732340478830866780229888929004659148583404124388846426810935141153043803478558637894440105394662007503336431321386936300845575180011423368929077235310409367971663008145319628843495340048218119201348422838612212562695520976473195771986015008697803858884965879251949096485822900353969134308261082542014071427370837705701227990359470338198052633960513020842967614096430901851344383705598460864607292843231266490564525802805882987006129436072026382573129917208165459226259627901620432488632150963261948384116867387025450229632169576323625728392805045682299989852609467659801337821114594741708170690849105821032134881973856895409779548206649356171217567198394313878171193830702886429661525044423137464441669449257421630510074679288293923324223363772752170316292692238040336081272858376626673621542401254978961263709738113700667870934790124379435316673752985435834161504724813539714411007996672550109908592747528274794141195753856698610029319294120217107649375765215493906412160320347664385056816790921140415636919820191015283102358869539430070788270291178703287960656207977390540081223412791621966191552736277854787912561042707232128994376037385334955563199315969443586243066029178873223922884883009553743612722314184708340754742335189635784972519703702914585950880248067075541934685978940703819740274602678834597989913099126781112419925750111156568116268343582683023455281380288680983661101488185018126506893558927710678201815915468476246574050374840118191704515178287624722788440571501872793567794062505716953029790614467433302151953052558273645740553378412217881851882068571313256699362119236387041250292788726871456964001305738044929277449287137553855614034219870004227879591999261555122755644932206068591041097194663553311971610125190514482936338966071611720968380282206553254481246916023929231989973684475414781080261306820452304798223857306950308633415731346369845479041993491193694317376840663897828857782008980236931141042514953391958145492761038302613390255400437711035408818241536626579704857057066250007004344262019985484272144451509590389441953976121164987638392168607620684110497507164650688089859552460602638910524082930780033578197338406342972679137948968004088657899789518776941596969696101659453190988262251715160998520709073548370703483574027327497014757740756148172121678876123657859890156484221219167663213735437170914648606934915749209859814975008755509722736762417657841250381885216766181318697747620674933787763480861377600050656625622048884528753250718742562463095436561162513421733907466663885570783475976527006628468863542991769207744949670957033897539693704306104168885775195509257621653089959057853984454347504096368727736046750416926525936020062502059953787750527921061259476413790903136973461817580687522106051599210308274566661553277329855653003766371878419583279107683951267519424735473016495159523005030073297542730989170287360176293155147123368075802610575105670269618334641373886544724595252518030331965485414557266014195407210925722608349366850434598469246370825314930803441246574545049839590951570338911047409037287109404724929699630433448063491610837069163458661327908110006368726182614395168545577961555419127319433753298658813057162393282867960056171528480807714349978535852824186947248025283280834719676565396810576465366147982831722341544655550842090705394819318245828654458968030983087162050428947346496637915210096742724383761756825443380116318124399041652498439632813103607776487732976455258296336266716988010278459223163910567388893953753257434071912315369757283106127621484676586737107533441416837113066102483239402353323901039341831430658258059758891732623962107772979059843735311094148858966133568333809827782822627034318813545064858203841256223530070803321336879901011337621343507875053703452774146224824643804841619037667713203236170113047460613437056148297563143300895441238082690161124408443429930603644903209015324745753093049644844573616480071840712474468726182983388537738720637262179464174375154081813833404898918101861741047496280776803914081662766213837737768660046936104642098091565413730172725266080525496025842510950319589429508783324740617664575110982991899908612331997497912176170469998862617396006274615427527754586976668243325140305585423528683460661274162453584043874774959717104239876631173214401968797758061774209615103167352895484218471801789678552020537570235361858812811167870842839457962203197682850999748126813259728611181847760864770592899496646849304154766490314748615457527445324026419729862467595128897900640331117061482456913480138073238419474593455974544912274334707904748720233362034040971925859330859586623836234044274507068525565063296393795728875835470793744010657288166078340971323774390425445977175411752339350903915322847806518046327501122040760602859359021300805130785804748771770849053387255844427553633359830389687674243629219979741917828306419766261229603306209911364802552097351005377526261769054122652863046598318249170815282237411376920562576214664970728020871860675308982307356463663774318937327908737468379545813888787000586052685694578945149767967256765570382426314925494055665441844377386535519188708028310563603094816303956785560321710506936781441614364283384562077945000874385532961096040227582740147607480990851131336550275576214797313982938489123603639417533786468804345450416015330149359742265416432780103746687664551193740855443080776728341403899449933821467597485716876041131205415328868438280993972430000115528296301226620499734685157773918522531317106750412970334395775399019599023197828274360896919289604078239300329427573756617200215719133407933609211554608801841500721428678963758187772969100441361537628152201152696986334398676683208910706448611349617654290647069285172201440198919166720058132221673099265558864844100936680878018928934710501151238244348441481841962282158726751961709934592923048122395072904120783997778711845168989164851348637328755514049038347634533925943175663778035240759879340869749484120630154172808741050985837947031252826416209320087422948382703160317432006220100487814499027244718408838716877390440121186018277784195124913201863998285356440315779705340417577536986526202326038590019597001583871999838654387319319173062605703960071978062982532614435137732427431567724875218189282882118843033913817992171692811340381111224026317926488769309857884454145616479351566609547244772110324016546337049741310940853477438627585494897200385760994722762090804013519518885732130801948065225321682522643682494696557299900746651748264448931156933285774246228818809013217022539111175457805754059732216842224995377710365818471681789771152697865237847759121602372472968113478082373554120230513537762218471305050082925618229879519393704660719084479895744651489889910738529069980703751751500123820890760697369461600596441187506685157015346506173803527219044329019135730923329291836049427454574165496013763248146920693190320070145261069159336222349292756033617894556063127091971906035142003292264106873536885880607426938236607150285110489794317228904466662277440274700218684353997316766195184051031272022849090120531622067147536530904506220514499053695597472672404117888799209115625045056404277247658220181887600586767382305964483381409057220587444556669617048157899312481821099923575290073435322094484328341998274941656339485512991847228193334201051619586056922791038757393226482172486975373587070797799828470955998747381403825515973429979434231974381698005182974340888636650789619610966716369973697541435990788080144907574824746422559536182181674595055410383657564958086925163968426232784503815452675589132159496157583620548198309118227163485104490855284933807178609028171778011087573139187504766666536065090742014036751745960112251151727975509360649127108550483328323464386858914849029060564844231887686401451161497461499017426954534022999559329318951298677231353088728873403632052202990116314518850093744167080911877135213567958863717507327105863311553852987516866367290280247288310389294863944571816580031848041170527549797110917848329578262689864607290031898313764233970168093469443291098430538672764803142679806482619653141378988084133085929597634302403847442464824647263466862096847463807063984024303702713883708468712093351224452143297937527278461706254422968106389165582753216002329680566391726192580871564752189709243371524915894723708737760349430043502386006940437140066080037213926333699130460710612173299692538699554486724058030045793604680236003526975701913629847527881722107534194668054038612797610241430438484366664703324769809974602582632905026688959566250549370769477796503624269183936823467798848131201317201666127640074982502122296304991304664844881227153461911113433275001531280809346277157222416844344476594457180723887288588324362895089308109004320594998094642642509276824666113897963727521904407660250093939436043655824386513327211204352511543232790779111465938070015205361202854478649711452361479871889924652914465229230088356561163352150226242796570129015217706837394339316790312009690449449548469817365993602518988767848919802040348799545301633301446973925637061719949239326448148657418590927298666376131698866857509023902879532429039984512042956745083662058879251754687841033896809221711717864781953340269249920832289413901461628357001085310076634780611262171600757464896483480451243095018246957970912372966006314435696704363012463813462474114296813238516592063080048085529535127818050405633896999089081741410049079998274796299722571782384502679701793873930935909949253599699374112248059225273415168091266172072822059368520781748820377113181221215695359579387184283284720751554390010013968447420965148214231080498816167351693232995884756645809558517122510986132984430074875536080121475368994452698308627465887716835472936368175666475573090530316580357050829229567059285114862245574173686664863233966300782966215548811407698555190834996945240311835998246586803380123468786167978036974920479297797901901054554273045769970435947007619337535816691041060633279782555679107333110344265901255358213376555768826213980715056661933992568985333724791810692683754939165168987541328942206337792139100344209894825721782596705191809504518871195028365419310522349512040634954997607698659294830197761783995831987636780532621040267765079929251073925742740187577273734459589114432048204371240394555094005332790171936341772020319143938483805097368970437840898642017971440592595621571880575964642342791906481895568877313103046993733851021519987072958006767198285133337028742359887452132149917727611813776691785173173029177745011442638037657105708330536511793857513051954874080658739284597722545420383281581960810648594728533813326350587197952826820145252665974797857123838752756077428031427082984456177132115752399636232101036942702268153421651194818841439444212650362502213930814700134768811074148781827095537806959335991871205775274416260412533879390875892687609399840527362268934739171545386720220995361126295060447325122256524285020055414481790674568976668184761771541173075004215311218799942087053717158526606706140794440623959017983091671909404401516318223259709103590837726412928933585257049111219902873590563205120821532084809137554834994450583108075253124706526607057318693338040094060518958375846676185733732960909826929803521327642354102448274426336881632884349778140205879808377115552492637501593497232208694245356287292507313255711377541886362226689788544266744818333277551318276005376578031746148409385380089341422116774658177630939043951163442074522191415646446833230772350648880348948743096613467471571025696603166857520297251951279710101554860883575386168849429258799408949232095286040053767367263200780940112857026198719901796950212231747533211249261002809170444466547879632893676243138120743430871401218802070482628839234584230192813840029551750759611755708513065853594568016487366217208646156078834042939452978134574171753702650344346949469826136651851250426770665001082910371303559757603001037778333039090529336327787233837983236883832968333069395803735567036195965148410071065764597129900752328325453045593412705417719654869499758562908146213260504578418393967035867640769802470065520845809605464018993356355726803241182183728694562781102056654128832047903622404212183678515150466141302552894484031182511438310154950193599895716322276589671180947292464422216974107904320585875982138817449769969446860748847790517829957305372187421872918363236497036837674975217472727530181009473288157243722911509222615876241515793549541654334153726230517345388548151708041328721148431419819573929427907534344423617073540716830269905693130076881176682302012831003919195769786666320855125052707277489269602116874676632645936120947319347889325726366764816122709624797185351610753324321749197215562976302750294631506530730317411410995546275546826224186933227306617343308192670317368439214363455233076866361120095207244678703461433053589840872391386620087591206852937906082035540624991063340419537859477836402000881045520995816534096500129162412512959307247646659828134883031341172125173513236114586028628155240251059738900951306731611298273116799337309440933145550287349646568944353644843249452796928997435681656559053651804327550398986954743023502231652686323868172774320307048004691293425692418644951355370767561325768799952049592239560342312673530525115682816309870523859193630158617936927548278096055092584410348167014236221941179621767879576714740826158697160223156881855075092914974703457107716200535471229717792191562150787205707903518489881485551921580927001809916874686229283540323957579265844231509701649524962138750844435185464067544714999565131189639494670537723214031531684444747727737628904451918046140214955788549432843388223897900571062721471633223848282790676328142015778662245859468465574415605218889450254484974450705390141802505990230121336468763530942860358243524209200839732626230301783417734138900098876429048353364899189624834622313156317963885184653209165200410783653363690095909065861511837474945440058712716385068504647036530583755299577300396056707468059067505499096586901114204529414665721259282544239938720631483153738496157620894953116839859680592804371564425337355408115368183191779386722720838553594595612608197649948775912870630100038021934477504200601868368195704918059458261610890684742002119377230997668650702893807456657979276930764628407384057712100931842623397839875663142979148334413077096601014218056806828734743098278383807760823566641118656478629180237149528610007768355520578963954034328398672034852863347663444623598210123721851493273155578857521613553971290862711293791979534900704006725283064239843473656361684460394541789441991119471226669840555759743997233033550760527924582659732161672901156177225259722221520241013455322292005976358454845316744701968479618220070344614478200295957554851449305991243145675164901765334436877639824842092512532994725975724169700065968959365695621237965304190445879079970576228202063385361267272896606030637364021143620209139199580653545457136718534304788861102209843172724063861636987227351124852864203966621198505046275752541412127797570167396817031622605680292036323698746478780503439437577925349204528859647012936200648400161741662250736921655736126110865754137798249690357876975112835053079568103447731328320415201412435969489982743836334049161543273051862091538430924361494527176889646139470035056103279641230915758236603711645468370962631299065500008430561525613164465216605471166194825470055357952524407965730952633634211712488506523057811730965741833274178571395856678223192537311413861206700565352692096634913380523020618604764799597610197099849663030380353697510610441029111824361768506459370352857000738603253222545775906728000602471713832898196828752050693352329107930923337481927857563852630398344547866591445897585740343403268309180441863311013153620197872668661662028958819829867980458433802406746007780929302299152362140373368906313040660033993145761160194377936887562901857821915593380705763580971133158239141827005583450838046901233899065901470063610663790902001496144839954396581200312726489878667096688707903996712843431557957178435628360857162150583638940569017335169764066151134539341990180071243641332206335676960053422985055850319578115351713229227233553817903936266988972758849086130826414494358670535581643045598652871933826916174871983960939208048725459438037894801532874326754990816704870626685567519439223230139304638503497906457894944081847155649582705294680830794091471546097225054458069051024010482185067932015933602234564792219864722752526406579022673355056273372792586450353006629382729215729285957291824535360363675293624620025583188986060385786816491063495223545743748181255615039425091998488206596490268895468640425224365997286331962581528575354802818322818078021237615681993617737687155283137050451223335732779990246518759558828600093283341346730980811791881505819827222463605922710091600438277331621877125204142822994794924747568852367754466320602421212416599568621522260462580461613601027388319312985707607417721366034069323662046636905446663277767109961992769213868294774724595521722728283441020938857983982307524111388435276906275950244273396153957616229572327466211512579534029031679410549207282144103251767176427596157813046436411167331309807690142878701583699098613930897405933641965060642957731074813477140574546642849955902482605161301097529348547413967887396515078158851013520169457421847730235126830659363622027937080520982420382393165087119449962736703982637801756218381847248792019168286309896412934654868802253481731906068616234078158749343771356290008140484749142446711584376735202261973529153839823553839074008138173828205662189737331430278656234378209809130514960137884125971649072771318799469106187711658597457386044810692138614343939928200407317486205676047674326645274885513556941062352887280810792024115199608754911821367478004299359473318308611117383929617540273671818970835082288425269749147386803591796584837135967011655626936942549032325900053981110887397026129096206722116714447268715262899606999661620629530114714689104828494018403903830322778028729281595273446271551317938790933208618304445894391647204217343093545383712582691135906151751298253016466593824954701895284101897880049772287169251716120278689839454115774573149971757145948513607751082086355494366494025988093187708421371340296944582991840379514033007201871742153644394744222768864416859173643517826177266983219781961685315173026632739456488686398008395782183196024108341591250453579645373801374463131044229438690745061921095963974273780805494433628140608811499101139486998617229656233949229385008842432824136353378368559357195216069458007235090757124639415414283729212424331895367777412042010497732511184175202558407457898227142297045407303931319544442182397306804895155413967440727916442598736946556198464527491720463483702280317949377405914387611147874704732301987270319933360352736258456792612200574657152443436428063395206153140568633330887892921007183633838747674626496899803800297445824799061500445273565710598263100491091262169327722252667480360815060784168084699823619332197568923716936720042585697802399231062784255887730653724379145550239149014932061699774862051072629129772770400185644925395059952099293614372096071224625058615493889697993324468300108024896365246741179900839561675200349554026957425345191620550757350900784819498788869835148016959826209522347088133750454425293185499623382886505771384806958631369587796677369372495438901665413813242246546342973698510479926928083983037385024532368584797764566238362538742440489280059668505793175353125603634073794557611412722435864542623713142311908441204094658600113555413454627314770149391264328935987424513217726237591124614930277017626170625828266739413839764021707051261451228767625733642486240276309746344675973439817691616748067428285754242404609001919648683290499591688886462832376736496836565464400316225895363970164676196603669525640949033855644327515312599208657940720540771826864472784304616562109564067270639401167805260437253434306926843112870261999493428563882053611901196854317783482944485005609764006512620332063176789317221812122916418222797652850680791168849405518697752981112015092866174610569773298515082524780702692823951175846493770378541542863921376890317137994315055155154516354538637093093019725863631731108102740881521803741668072406497546080139677871015081283494792757549575528352120211665652568182769375385602241802019709191700362076092258437214967454879573694571190003672583551405803147015273496530832656556470913800098624974245034550278871396078845681668313260720871851186417013710208235031080184703306051726896203557751638615134249595030966742889864794496929663909952981669874858962077772316090140551793865020506960553387165282143513772082311579889704338161631368678067870054708151816803191452497940559631980120926497065835101588404546969660518783624453766402779210612416567272015609253411682140053762986793328899299277895155050552837597787143051803565054425182774395552468009397673280593519535949566426975352621795042323510847655908501809767953462075645999287686478560570910902980484163617509467103962263752769478186928473159376218118397305483855883132630495221834201819524505193520366288014637121337938489360641709336894908344058383918088216224912814500067531466388939003240511052374616547878673307713453552817024637160078416103186635371987128958235168132306261014535034706808058226694540229227241363231798693274885932182309941055319785304874304029711471920760839464929240116130601168034464455922167897087183620478751725738629958995317892073923080978938707461798837718127759262190146025112633238563393693894221984568332242639289645840305023446494306315596967828166585471158695958361091512521612607017115540257447182147694076241689508040775818453225663423889916295007305983157053342892229890740803294045587319482371511096565241513179857150024223711368418721691676063577250530498248502840056002764953923878028572864173927727943299515110789826741682246415914721111274038237765117355249808168001730609210786226713161943318023952725867507096594348070957863826817792299707910072137767123532031991461610051833087894177437375622123345720738201195859503658846270676132115300549436931145284261320043419961759308771689317556466405548971312776612718428645017864760204080980620768076393957249690747737395675816727788550381563296400119216560411899202828809020436800932269001458469181193541982769392669841341728465379862292209650983496893399392754582265394553209402549905241638131767221595364024041912771985254714508536998191221149098234156706044661861910557113629498764224804777670150103362222692540612239246942884003659384449479410279459506289190783234503433513149110615516669392681916146107376228104741620123200358596174351869001171817900617028433164567412440595466782185592337133546612334849628428220479558970805031918238165164207457777289380882538373113569036249317731897204308386527420483121255623063970650926979708244575226653088365120631651927424185491582991366969979485050712909476186248280372648408184357464786831859762116865534477601570811518757360343962462522596896542054092050258170832249082137232794304875852067552311891305094943546656903553335666217096642099585926281774277564228750961701381616639185182113790447403010031305139583190300694303295747533102861474902602071480019777015389084469797153131452624843561601944910228641066936223496405531037930419519891792797581382916064237591751427603981751104149432344656484151171914996506322870957570761076096964968040351015957822773411213128148458730711427190543960748874244897934320699581732857671830199120624810037222833684513428517111688234342871424488479539856114739649136520125854490014923024165687397917947786585376343359103916076079346927517448147567732028242967922881230484809467565050132031064060384141020137420694566520227079733190045112331375098633264370992007926038570809102787128852357622208759231830164919954944588964884892154854499409499981763892539485838569876394173317984961227866496993505369179664710429196329143319308710462485333968758059305581010960357122724246900756809950563104926729837460921459949160181487890176732939470103302526811603687561924644437277047944988892969716524867913131035327615163094612285091989553186444272203567789915230507653869157305598598096093744808803615504638125469502547235431389222532619416026754582938492664962334768954125594081021991454023911531677283081298871294913292658580926582520170210287517382600329284155546824463765223447048806993814612774295801566854709981957715552675516395875368876265328688274054522185542287160795203210131351883643894349799862610479912353313339061299890129045686118321417168289426806546795158280318006886750105461319807786762808072460187065413128751201020575261599484421211268207481222063384669752279456018739846850231487844140137813940943494770850447086676831145716047668047770420831262704172379243585401716833101941525383129847536899307447066716905003679542115073157003457674719769482200339306608880487534429791334658542134070650893127944539324481942589504702034597492335179331108523897123121003906345502801563772450880612970807600039650544458500366070091199320556438014054336500062892325193065575063335404031791823261543010816048852915233831627319896674233153884910151239494797190018186898842431349673983047047274893001492004081371673432267450835974366175537461510276418242845032356025570343372968185793993898763392632191062830841597680627439117888957557474211027004680531012943360065814465804875519144766242762967136182145544130427801470720026027464095169719855295764619475010139238350829537161900983664615108095077431366804169517918526023499492815569858868189479968042623654120149799749281915827473488309981189304423789776820431354838754878966644442862473157337599838717217260889407303790454156634537304520076802856625680721439304819450409004052188201950223945107795770590216121435426372083355242582774856253147127776820860460059187707471583066832694955567279173801507387025396481520925903094073792942780143029882091676719457048422904157959539289060763341996217730187299906606033648217328278133869695978414576261291260300213584911179710917098903395860260192243057339027174157156072411709073851609476381716395743362512815808834912670833701971481613282195365970589659675231883266569804389196618208724985689327180623595475137851197999706269935356990866795769636345392868780351253722772911472710979938167916244673084785235852967389780767166824418213668119999845368075665325638142156777577497044329685757849728636479290877742684208382208516274494524169448864411551769254205163620826700113980583071319618183293098558985513016496983079096086169790762923195924672659581368064422464071461105233516820051428057679614232396115238702809213388372534091688531967868843834016560614712790055181946361596881600743126117182308161825003408867469377404250443008138131983370214109710590837724167525282598790026938528577270074336324421207021458187712687851528203423546842121023490454455999779562765282359726787112017550795562012932375681552083207087831929707669040082536583529248469568062684100573445881878764751574874039051602428852584490605915379290876290998813509436722608965378484528611537637676464595801894919127683816118669753076635586866023317991042274102480251928281311298558267298014461382614906151378232513353676643704835769895038103200740870282364759172992789024206810903105398090491839752890151112887688048050708326575672084546385826788587068004072310113122948526804746588794322880909840670366432703084084292906107265028337433094590508850856347302142303038101543203556499708836368279071460508424707243277076024417227721477721894367891869718069092975889135463613662055324092921833400278527511982010667276094518589716258801778486177429821711104876176823624864856256970057224879571643814017612517435376698188256837656292071699405455777716914058355509681618599813466086412826462479509525999802947770020678163734238273790940085301726043450960447270738399472037062951144667450673398464535132905269787497247253632662373721562419947170495269886717347556377265459480093616139637260952138420728797860368576618627737704698079051679103494913800790953062585335277480663344357648460424089443430941105433972234584352440414763681435868695768149637051694293031042002899249894532690485189042092522885959781571561132403447683340200370427415852418037153471613656287159966930218819999186566412326976816235758077950760622878019222824615566231992642434430747922281052249690661334551932071022040453602826896717791717343080056701854906050078042977923366223637522160417771629479174160320289039268337100259950824976954827321408801422584643825598499107939515820407606847159587832705157813654603730131090098019770008098401439780694508136490609573624686303291906150322233829442089119448096662819616103357048983257253341079117470283791256083387164124451613019483416405407494608580064671116172786353366651491094708079662905230277532635796287088835508170831350079637360041413317368596599869629105295772087515257725266284501659552604645824323582227906045884308860936646989325213431142333556949226640889191286216112556519962019422462687871957245168485322734886582942488598738899359595468559466579477554762259484851336957731687694762083898200114674715820928021330862548146707873493964104474068871467365881624268486188471642929760179241306492396282967457551791319976638278372519599775991087859313851900253697996905065297506403310027004134562243054412052370333042625610103963891393554908700312562220276821339328818587464353113371145404664541858367980032384191104286510416769775058851802195007833454344481689798872147300821871391277870140971085903600800691162213467804716625514373324832362506474868022761166796662259024561514468449423804033796763224595532160583662157798501929226670354021953707131903483230681539242845748102635800297362978960604163914133274127564542208105370301139484765198694339362648887251805632683821799768006468920622848587521183595355134882255243976119705327181872963294091249750364685550962610448973071900081484320008994167732967882955599948573219257577955084229408089480658053506815964899406660632525340882190584741351884770475519192593930252911908369692694323955190275962927115863170331452614899477134207069005829378120417708801684150701957663626829773909482530601652798511919918506039803540672636134026179415301696527762310093263949313713132457154504509538489492507709998790502958231024335271393396829345534955850492278376015859949669562334838806308115527145089704980054120074820254136385003858151255217827601143461550411025104009635181388889756752128289470487676883324037823276564020691068108398818324885885294576181887597439511015947423367902142483259775351720513550767047316380501643585460871546207046299521365359618643306932572244771413255009308770820303745551342911623512479810305653883374839992224458680809329658365749376387326478134563174821944966355510464226233318688605387408937852105647703694575208954821124551291086977075567768363421093550489462884326708014272094842068404551319878952513730213009794867604688806494459111618263008192372675683189682279130518201936243835816202152118789057852878310509300111005290453076096028777305893611457560668717617785539894724123632873581018902690889469416162870564512150365810356673577271627012355850773349627149426456129380139970863521858469969156191169097987259223141776879469939811907063091092504064551737220489456213822787857832521839453500877474341735424146259706878711494721634792174107263821898128869901914278033928525680763527589933633766832322070378278031696898170718315651164320625624562508912549397061373143872218291471897343611350830106898431625043700795481452173006805402377973744207460804041655194944504116864190703485690439916972043054500385208144565150705442580656771004773276456639937976798451585416992923804824903953627556922829353841250041249565977067800757707270894379062470894986807766609188784151276435284095506753610809191871757577960119779177594917454636409549962468487264609848787684849644716674457127253867322800781825191102273947775352056348025372042500886456026956768131449187746124932770705853738745986897371243218377146612288562556100150658996081785433475126390259570769960304582059024714643143754717676322006860058048706278826729194862838542643877566584557921725422561231508054175476593688001570267385340221309231972649057062684206979166333259413515927832607014324884116584504538353253377610258183525277209539915432140889092854502838248527257032384686413232409637405010987926627241908210571189284443697255382527719460899088910738881877523657380105329096505865436391377040924758843721897604585125235298769660574331382501819921058927828819390771146630606711300106631467862179803513561560180121481525627473321906867371189671785409136279584957768931982533917921044309533701748002691232027519473656101075903019083231909710027798713198778403611715169768662396736614034141502876495922989633184643815965361443770381817394942828460032603301463069080349897485847116805282984822376610345897903822587774961129280598773797969325051047845696426490298211988618980783136650260996608532523965988873779002191580541854416383795105131605855919494143229869630192659378473032222497560658260748692263546706494929626738808602298520083233712785622470233687680772927270413444604072577627356737700006163977100560912269399408949671616134687053282554450042562432766584292600176469975225046424555378945897315464163003436192043203650133723622289280130721545148062209706203124538384029115773107923509777499396134143277532822947303820050198703634409589519388690602803006487528830044110376802296692485627032197914269332828571878588417456501864162844126862044590741906505795784003864425720967971103278898887561154561991274450474803251598267425085142224503921574048541115578952292143719997978540730607132516450335665299918651403911477352337816272176966813546698879970815845622847163315569528082779396453526783072561406837002646195777042845391398189338962959555665151739628401259306997096926105335224444920228691785010442810351381204146017023760330624644517669905073082249196101316007145736883194326952790387100879648520705829038891932483851936061261123027260002383501323244046673414933330833251659326061410956779842691674002110580179210653766806243637686758413178994231725957348917061331333349673688945362516516292140357091095691554973048835442195837759566447598807271710732571011874576022213488384437454821643846947964525731999107654435676009066782199600562736379729412221162588327554573355264920902360054294859021914699034457448337377667036547732544359731607974230666491605803215106112826177426103758717464476522818764268578827733819878434866535246531954607690509639243728185551065029003380622462144397185442329618295553969998621032245414493068963182957312536245285775479685517865362082278334590012798754175835121980530608969265797911014267053446065619968482471501943588920350535954292614439177853664749313035799298946595028355376576502873982824097011527886314640068341652471994580637327236684047519522525754056922464149203378987589368983723865797703569034050707435574982497903387786860237313915540406318981617952167550510067817756093336607432759418018248689696987869589026246820822841369843791584283696597279827357417137727221371332958250821335423159547635834472242830409127923256819365018251846410189680114972781095615345838911919812021134995907329345540982285846466811142213572782208074039031726611424696564511524281779655232423229007295800033778163080293645979135135414859535940785960076944408585647463472749466479297871638833540229655795708347703189026543454513937165684750957666719926390240031057591540897074333449558441569716010442160532718938935622581774097577151545759174129359183249434116322920801519154384803804520334239829996167046016383930954584192894650396259621914465789902690734985689190811871741302732078820620236303313533500156308727653133602177691566708096244451653159723222410550186080944108285308220081465624210469522393804477788715569396835302969783865066781002799173221951351536781257559450453768716034602388816590589391166964561794230134227378799711231285845614056346444457006138579758462184985360303083468947523856011571829098154517583257784468607442960178960878814628935589872677866324220857557145626990578474981773912548565101103057397053665596266754760008861402754682941126273048201456944642727556065250501288479886242833288250548932541884377035962154581755246259519704861768763661306090564065093476687886407648209322747791571444152946504055686212321185176237940297430453355267208135294959939286138885463969707216839779680011257498286918221646777110170099568217170478743207331610256125928121583776779467443530755047990034333684719449534860178541947794807730504760012065267821158528670412237444882505350644552101579938052625525666087281402622256005259358418688382311807997680003938886869585915487022671918242385902448097645832666597521529286018818591533791619713555757637147267632259176543339192753818973233591312516413608428599463709873450362020224225354369896463674832519817157859224998310171876579550411008139687228662364122614221291296267133037318846642741182472120730802975329197605885737688777714277723470631001433719397471902174843167673048445230647520324194916871363418094789290022753769233345621711941691474276943126394345066376504928251858181981589687408295417998817473886251063590721789260949153081920871662598155458161838473168229956815342865135605822323201731820004990187848069178716092068622729353223505554388666211480073883779112363692104590980616251164244327889429693236097399587549636353337998685793880125846367043207584335985684931849873840500752780250545970358902883227610315613244830149447674583813357352196737239833980532140195938378851163801817332000742215531416090738877672264089895681586187859820169292279116492663802096524336632090671549109559540660994960332456516474358797234152919910041104870307448891797248723622265358729306190483087065948919033186029282908277467516407240367100960627960336242754205319220309254457763705000894228371732694464892252664554971145534717359324567309008772048115622881839470723792627798881067067028720893823007623637484780567454726944665592275060341359779055767858556184244536501005737615366638829529957660251572870287740870741410403073295558169234028093017408504968420141728353616921952537705603554939458618996751970851098103416428946870172297940230829471857425774814316691846087885049347679809835032073732465460567190101511361331316545164369123381545154053632881793972925755885327921519743550493374123190604488370208624611685942964657433680592236944917881469251386289800425319764743016130316110443957529425632291093998157727119698534674236677363669744300411247238965102001910846220791928117856114597018926097046617657413299944979791092595589832256865331419251017453487738672865438481495282290798904096891871406823489072650123776187872762855950496275841857307685143890893042219773933341110926598919808428631271581920975747278478963794830943334719930542190003778705565580748675177981185223835053453767433966638424058130879613701843219824755780857207670995960081916897584987221062699704232245449384996234853807590121919867512123589788209006478098030941179571665358279470472507747170082029116947444127593172736165672350738171179008006551602060450407658799936707611947470342091395842660698891910019566490812110582199382628952843430213036937184753815531409787795552394035807703892199932248060794203100508528955295652999693876102127916779484618577788396871271605233106112439767395289280831335468178015597309102762083423549900681710149745302591174805547036494011328028072393036052707746998498351551384643757537054529282029498311565520505022837052313000671626165281234145752298945653528114093198875237851750873532184230053184236926165848236776072153413242852511530632267606660415890029930776682114110177285256442895285333213447489355994186487260496490841236631780346911872483136062438922344757656845775726744176621602181953309826394460719850418046940947286979910451062277544090296997846430099777672415775472908643906113816558622219494009352394113863820635731261742160538531066749114228418151859688235977910225748097983830879648769526807582479363532214986221337338178706098575152471884389315582561698962580326556050878995991074059149009398208556086480486311536597188559669815562834118233896759434872433188456690310622619957880696752929394810746791054201272742377035528167119748004586368099245702986419964902169595705044816575085645326019826497043036486691729085670779564098625993853279866245732459981909321732567376628116835586100330806232133290781148827885729541080768331786763649460134467176010147571812411775440357748356201270163852477624650333025446884566796156849828155551086226482425828370838253697472465816900452252990789939982144802576418955960526157075287809572380352320426257936627804662823107577116545760620293751577213642941217687998680627742191009916457466517594205875687639510396114579002957746836778087817061398181431739119436834231853147857682295589663260714747865093230275416802032553059476707829184408574298869527479493010877638693342248912939939911112984958336383688761740717998195872567079864194015520643746136039384601305191902185368667908186725526099254524320845934055103167762835532678321900591264503979832899649932822347649867809340997912199186709697897475448428925287781198792559533016676113832751796246208058076322810155603520215775290829024236476375388633080999628140653235495380001040956310615839138629301908539904130179315330531921183973285926800475754469581835832732501935759853924764856520231925036973874366210854901973328203731082406524827522088529379548256651728787819093256487665484661886178353928290183396050055132741338290221896780859834327256144018556478727405238967908657728124902583089634034751921220677727736606509719373537389998369949309892172029030652033241053424612611591420753971000693967072904464252429748033605223517816537007968147246840063277024918464747751304911155385100555584294366748750035959303916037464459273328540639599400125356514502336085847848291645055468450971134987603510664866201731185852603443382707066701708455223252550762416825591850336441909009787935007491022936441609682313862094150760137410023511184843956224224818294027398153339708971016347024486818066428579751818127602147504727085826202449440396296683201446268425548179767518093514925838544685256359253173606345381046512241491651018363102074303574468002375493826081789717153813908289455656646427337524694910440275947862973637619844387074366605046149309229455252577042420877797447008603700726037929875221928887096206302612617442367709555679582379165279595637757635479885915394666854763382594565759834683248237193487685762929332903469622953294618674577844813130439053054880385402671487809518341605905254906212817282849272728384236065493073732772046202697131396275713115327754816505356094106710997350018153701731238462035627128028599442494887162599847192827254901175535229773688286406332562229037576200157066049524619700722934838649439604041756155295811558539835814199813352009466227880351458367944379774705751002602257361218161855601412964901099812474166326660230650543367901979754795782665548574050767422356507527680001896851094774200383099356142578987743874924065891528897281039084093203649758400927846839469690793217792258633220926106930815225056079879138871396802485631940936577447784983116067396084732370975642893972238474047538865948791996845407515680330216252163280351178585628306592564137316653559734203690870603620024014971244493853910150164832970566573289938702978223748896973000000815724594208044294768182042343946217726756983796142005137857270479975919567602413736552134873238717527221472183654870178197100539082363437712037020857031298435853959319083772965834617607125588545385026167955798687225213096868543835813394562104698027784638533315660845854050196978242362502908653470104780802467334649851213978088622264104105431734808101630115060352554344993324326571635698821945507162409878851591930554142994260762565109431862062542547711337021052343613994512704107359611671239140230371203953771897645008928461215083669542815156310299324562157907300312755802370093328229743208286366663013952151189498996407229717309177150998584343973603695116472440480870140551772387839152225658223903936380339318788521827638016276753805731328749844197238137367261494764783970437776174153884139255727340813591139236837115304011837016278841759308580552804691260154711032647545874942823904558248994297640445574172198108401139645679616920691106254444948728101367519602258166032475825481987290188206906592391430001526498482869155231606769060664736774675587515472809940779775074901378680722148674352958682097730413849891116039418903204481690546984889900773759452307487584571047585171637716993954426688988403520494446927831287553732177789203512177321110578691697324182915359150845889290995777584742944808973903879996661295587335099319205149488315120234504707454884249194215209081045564281912657000635358231311074665016249717962102686404793392003976621341501918964108534191526302437591127718122384975901263792439263933953569414091581240790001104094279645116597744982115221914455572024512221056679937186900266876288672678616757615041914776735698453997563725715742276092088325244644029084969572964816354835064215053338557102396318706219176007951143314214478830562332260280838277370786639679968699034914218200951856527891279834227323242578099276018132593489719626939479194444822561479544473866723365597554641727059039741512135306225604046469186635128889168641296545908786046365095524643576910983734044115955976216078419367261145968221575239641311698801339436686026505692441069133632941997430170022418062128209381355003806449416818070221183480036052564745543432914014386581570054333973745587810144975972496221149521022619873258083153021650357718612053368591570538446649595040100115753751071218369041614948908600236637147984586370080393992005914956329141876782754314686947741553319842358449932936965878105176273362439685193730795685522766003415873795151086355214730640701713283860392719501371287121216900615695973143343116605485302789741645848904819198926857553510913923240190452063384170166476444592545609078300453194830872547011852125103144788516650815057404865532337769030635930151687920196432889495159029978974711707383363900256728254350871143037004455363988679636109250422465546439539478596830349706386670743489693997870431086526512684586636281840085359781894337904831257877036138648635463107093600508486210978040303547033303086293921839122239031294022632167500542176183587405243786974143286587919952416520813572556485708823312841347440768030579603797691779130566281616089089929227913517627083718487165964493246611992069791397817995156767589240245983558374786030091811330985891252582463795856066824650613132095844220173096038735198373279704619267737225999007188833737721411058973794764834238063220030786835900191820097710749402469577965428054480013314230424817990632032986413756873401755902144224678850391422436284441875660324804082751038260657780243293462838537209956898719514808227831749162404202011492131465956223139132492006080641357714347130991338833210629912234199919985281726048461071879031386493504614530721242633655416991417070808994587097644663623152005835251350996761017856716662244139953343444010820568847258064485558484098616548749287497759742290306480448007030443242940685771259890587110732403654473225462745479567042469974838680894117350915261925285965358033045922397591754194976407889528599207381212874790138196661184746482475512063086384311544243394136967843479262025983248033644071153707728754806461397980595395022096658589451238177103511998695306300726668139515988415722065550924386010397597222364854841893504831152952859939757353689475445504244268434440771665908644769459524989620404141314600274419969236146809124880476850163711988279731925245752151666336007317154808513491251440999534502192426323962143176483795081465949936504708844746791273145132981347292423586602579070713647752154529619452866727516422856074308786900528482410052438111193050532998821315725778146194914036438340023143154585938784935309731997357171452923250239889790623661629745947370343492115424193384116879635597570742993719858542881249165744213673914223331541940137229447959609968233172890671536571049393684247379533914844584587761132306752321265799353723628228204098104570217544308373960635615295597257178477635607110451609524800788987825734596416958329065029632896021729785125812551780018783568075364280735093198197767933524051854884711580544975456089126457132846879783309369591856595493422104826458838048335205312415053416458231849750540645778285893643961429949163159269218221388729392074120721225391733456706667509875316960290367090090084376727557478977964270584336267556896779089335835396066186914226386565772648563720921515349852616241929480327263624573668912335468736432088970898987589700446096658332009082479575062557438522895561527524535216326385823188858938273141086101195600465551310361333999135090654068546819400294474383322446096516332336185055838861523717222490653023440379659589795257124335671507344244232481679083047464003239057630896375015712710910322061152591145703875898625750117748579987190125205183541458397063349782345656512470677227096565605907613582638583131926754361134345966343415062913562646266988016979666590240305889050230620675473579730860694566440873309775872839040973595676112644289410860202628468479343953314350640098189926061861861078577482320539103353718482953208419101878217855846459621813781190475529216911241017759981166888811286728559093562771630892479724950274756106530602335489467635250040088063706697316383697269436665952801494266618776386098205866890042578434878473104570500699242754313147445686542622380602307436715977554000723824292502497334201322770240520432920638337002029196732298965072084850010824125644870709167372846670345782862915533952638460424438035979762827364969571313957760210380929197459082437628659234510206401932778899927780105105281594358089954285648218928277831094265453611383237844334852314364858194897430463617971634038799257195682425742426488692340962092603531722435033812531081327549221334118840671331788879175734179013966745205478085706906089677409052716417431775020228376675749754477101669635956694179391075970625244226017312514722908308537643674562558098098054600158722018289145393528582389706574992874148802409220613361082956005334323260910213707008806346000808469403449160289039146812039486578197295692030638976304295726510405449188404988017264601295625536583507416324607389858566594060495970333074190905710319313345737906214012220276429206378466181553363565466866521839244318717457276045559238667684000466026923836675734941129448554605120123126095002346063520633935890225442768685879542985495813992952994667818231930461405113514513126129841879339802249131195265996738640987089029629035456757593808658877943520225140380941385004276706980922497297840254911567949519802229749382370564232805758327050514069049340226121403296787485239857063953980713550237533673169899206549643631990057026861537104881473047997643040372554669584254324623898041434699213926896143312715360992002091975084965925119272247821872662938422201739333946660759116454502814287472680994603041166094423359160873414702471071468483400585723167400199013971689084431252955314318321583496343086630070705374949991395323795277605597990614785794275801158743784716556001624985611130687284753411054264735659325088370181497984443817987477007032286702862802177052220903302663426892099879820055894399892412253600706885711769201308434388874482586978936410139989193185891641281923438194565255667001677205856441525993867863088580624643598275656393063353552590743578964171937264875895804756128836611405287456796558285778232880336454385764099488482944732336015349658390064816995001423868603936960373016996508477147311601218550290851935528908739768158663697335235237859172283236362831506690050722548438791124118272617338296751687453082398799293925702740779875945924431657212967101206585782301112866688799748073044694134790899215354658035740782136877132863174099943036112740065490059222428711322398174575308878582665483952915907541418664956906384024637609852629399249950910707310925402667848188999445748788830310244735066356834788269636356027562014867388953939046514295698577579331203834931772943496463615263005756839050416651136253624271627069666025034701656977263674478533410986648669850348005982382223172925973847597506025497372236296051987085542227941362280586312153361580445610961992154233968986771271324584806393960579472454997632673849980911972683607658528948674316562083543758843307751906041129192370568489907719239031068305155191755261574348434432565350914131403934662596632642131293055292375901757342681938866140469940728378272638085076128030211124863884979115773436728322114284572486217472229210907409228145454729811846964492195114998282619684243838022950947095564502543980450169037148608104248400788340632384160346415145761331982411665401934373310589904194689787170026754663482737662721807964618055469717634310413226714246803837639476999602949140055521620181582039246583419607063554663015144380171375805621089713744119505006794396750338341602633521477770587849638396421465480102480756202419008542984872004543106416858881440067328350198255490445724311525452291036821157127425499223852456404658248307767366454296260347242371633085505192928685873221199306761009943414003737470290380593600708750849366331796398202770950261389507345553180763549441752819599823405385190387663652453191333574501586210796823340499883323107819431620982117371348408700060066836518833557063296781374249160000831370100593332859776836497795727337872876884578873707606632143761909385446482199879554210000612602342868242177634044169371915873462803389097620890310180670965076423955677157875265194094163395187850038876921633331019012526202563054617491643546646180328454740211140935765748481742576792748676669231995227812282900079189985562654188409101907385883464758533157995548727205397490907479039207331692663377540920323453622376705464324372537603568955551201144672002381972574788874682717251255523385309595319355488517239891305120891614923714827948634154365337981414618014612003984066860472462132077679405260623366944053332096603735069106299113015120385979552308800145613335890938396923678173275374192124379938936297464110234219378810274759655855131801258056773141493838355316683481147415883650274671558345545687348478959376493188996417099527698403846779081374031028336285885822691632914230361199650956539941015943070984920356410790998268905128457037560426464922365466226829710924284294996484740532305307124180232278453928541871356392047651520708701746232538444432064016907969310885663183413867231670627332774686228718128548655263075163940444477402547168194568550990330973550437912553477458688553038835674231239740659342865430314121586517428912414503984379385466726099524706175366107768913397002726619402433830766787482425126370036013719728237879944079980082043490288005625293853119250212304758192280254293515332648335363270474796881445280067365597076292581666163072750811535333341209720901280402510481875583072832375586332653582525235952322527921253741425012107605639289532283321979903479721101488045174606614260370436031766744002585886550173453348212573979485403456262278821501618208522415559907198204207546421703812569181300943115604626091988910189517531838378177852197994799177001256939839437615874998615422057912996075886608813898545412741930829930321322927092929114947708062301169148758249163729762344921435491960570113072628867052041469958024781502028822499345142962178477244468437711795555791077232993378965937816276157559367082613902343751181123396705315122208004143017405211922277219399236494253525948220474082637896152131743265109825830286700671418952478746526073310119860340969130637874654167208754415168981470312661157360041486669240235246949046168221606223740681036381201612387219005363212585689044469363201887745261784687908237244338214505617749578669564364585135026683589575903505608298139986877282112102811975876237107481949750928139079656542573748605543967470850037457414708355955076216369285442492301650085813105965281691879680270276967273033312382480229243830495982108745508681704670763219505475979222229241346680147958311344372516378059632328548562420739613155324201385526925570206862304684039543612154874601849057890854130781729197236443656312912550711176862665391225282554928996595031910177095646912267827286628019092393011427953509295339005763580016062876032043952431089579250706339223941210924009444719983916501356705986357411501524716963514394740197386220959180516774750112853716079408968241815593117405608405991946745540851775300510394792882759444647193462774427423272488122528656928190688183423423084082453205948031768648807194210498403894623465347116667408690409215199855308966020029849756491318767792043892574756648686902294190224065582886731920412945261636843763927602781069469866163844632097564680118579466250437248286366383938936615757781157257765921300646090588275214167084983321241685221737170897490659783752801062977148707510786647375142958741197704437225852517793734567740432914888140016948619226731381140233343187353405914000754087077838612136804473840857265335000572220066265744783439769056585090244941990365880511043972261176710899564612594852769814460850361461802955505936560699604332681725132082544591758387058983721479381687824192311884721255440681879454431048730015580979998457757403423639511085729919756057455768717906910419891309780358077792756494855874832247655873268539982841677046256951629509693607433011711021827782747558393700832112026379231761370401768131258180606554156661910578165606986791509177854087286410564826327737655010594421630688163455970682271097510720102998987593088897383183828047519915754018215808743235163649048324831606025411122111626762868313187649525811578554193442244174669635378456358050078797190963009049455564616379956049590899050558621291630927074906486397957994339518565253819078898274256861642003078952197582922719818863054363921358916984357147315248131541791275576396524432061241343033580843574389602132360353310444922370550301470162412599590663088564206726956464435319802829101737240585892513401450544184700489581317487763630363113813506768767703215227974103299236225998160790077630392697936517369452905472775606600007150460066658722829313278241743041379989331246783170027306740511992210872872994971470377013131302430334024058956541964025568120100749163752658484338765470165516221219315696987941498938168710649454389800945239253275730387003615370368598150442572415689081243456460862523158835430340351069820368713747966711600853865709455665202957173759718027494412512059225703845542358581375253021522716604465006031113339558423103753835419606529000624465075855629363874727845229657736184759601456251037224997334075056305583063026855514512786227243730382964046376428585842845938107720069484215960677498430857555982868475885022547892412637012041820506423505661858053184861520752648290185202156495928099469005621504886382185244304124181651757765855326205952135231056381981637636375400935563893399118049638800777659550871724386281706628694189826411548765579485283387653013001299873470914895518765381146646795628357872656083484477776568003065858185972046703867909197899573201881552434566745813745864320937047315497642503881957660275084697985434436870754124604594806260593091480691201249687915887797879204143503429293311912109534872518470316233155007365188333114545209532060234329046621814651839086877124696398075840817262281356830830602120568691507987045480329723149847164383818579910625451302546111766169739874243856750543419152002316527357802592745260585652866065672265011474631743149925910236792456123187048501903262509715442802650407773726720353141455065963297366633217454879522352135719980917738783944866377696678593473942221141945213683894507241248753941533899212015199387703224697528248922309475356182231188842603582191417810712310867856395893910283741720532885461105834109771027930513938476885149055274037655063869508580925197620197496266827368245416707643752296580491976405762399111607631777352361346711997381931584542916799651828427359096012779902630372051870564259282768325365549965574235264984986373142668334895968495720219373669111086274841051584102300702113749791067598358282650648881225093880759118044653515916804410600152114769925291397889413552022912092620774107259760277361600715160228894036372023308061684186996767173937593741537582253700642538336736566842693961747236202933048835192935815984870000775848283453516986699390474373612756009233240292376071963646857855370008950006783142916533080161511314914221218987912409081831213686678984737482118873678467325836853241206131619258515444917616810209814479978234883029052770765920928465714189676501079764324185261639363179352841423587354304582363087509782888916134754366874855100844474211044458009929370538319655952703887814385922696707826648206559312925221364467904619103352830638283206145751549227608956489453137543686150058286286876651944883807933823667569596681496993205554129038599182582160443511450313876213746248014228134294504253618594624992564341409674946465545537791516889582477378817499440848181604615261093739419463981703860833186023916901332923197790771539133164222973785845729232994213891626116598212524487110773354431485934670195507279789527780846975495896931862844514514908138393056855677290931019885719726090551473225413159825803729529824184420222770297272277479222159154832343635031079851809883719845317443533488940332089162630596377367664234288035804382020067824371515250959128587004605580311402302457634230735270880045414451835509105964008578917734969898399540749364378593400840667378165700399299032366758180434140962760824318463655757236644378995472669287868653925847049209737683198072094679516755654182323567767597789080240619858034913005067369509057089705086172590246933495129805544497788017159660672480858178090259561605012366392588321210533594751612320605956251272337822156024255993449080295794252572188725125299317501572798937388136969174738878173474916229601027015771239839751400347178485174063920401498024071019868682326604969580875526169101248287784699744797503798549579681830057346190995130736167837430331218759248240575564521233625581110456444926537548795661115243231504162376637513524060877467797178803178077348626616644105613732993929212756002804406924426308022352224453540350427078675289925895079334631181816854157326739017032814982949222187025947668239065011141829395367365592697927113139055829920261128118391236351106271951975713161684769997631667479036247946429577034873548900641024336398316418103224681455299010964294850260012214091114288707923057169490188481057781969021309977249446291009964092469130066503974777205673039572460408867027581573919479816372120357155104459192021680959857420719741933187218813032880157017357356454224981022696640125435997963675950033281207161018399351955662982001202781630892753974200610396275373057783556000255520447791293564208209616578006681824187992768824911603986733147044918819220972076679429690036894234004057689892143497020310115691394847108581601468552189755013530160099419652967359872193214055556593191885180502735445943848189211488829027752102782703180080131716685671688375686666332205966134566796363495848456833638214296574346505166479120395853499752222327198684429447435398974710331205712699731957369613690306660950060296744045829052785309465612275836258149785447945895491272380346163527494931345772702155206852046134517849008149726010292237371950837878260665035616610742240657846932165449432567709154137893666502712806691727968685294774562751919096513934046198540423129573155054854883111755906826373972488113212986305477904887544407697291553668420023614022016450350939400236600219920598721937563703513746092494367677010885237938354209579917125446168602351642733737161581968760140633915287714802236779551390498902379005571440245774554492286937306113294160246645733483439978270183195023480470997612061245076867010098129770465944158918761586298490436752945586520808021640662908183421941136750221657718903703336816139550042984418607161246729860186558320324868761556422426004728885945786323985833485319310176969183572852207350817951151356319703007511974026082430063636008660850420793519940395287431778285768427138908290000846168009701486622624983039156369040534293309942965187220979656430225016729784026951169471875910281371971148283493219552937299352459330567979776169477873255188646588137201322226126932361705331982013170497578693453507454454178710265519982412312623066693832693759988190818363372529290962290673359573676168490557892287976252328345892766046118097889082626011633340603732490668608137846279876037125283704893921935443748198861635786506741382259634601564260869468453449400067841057218854031783444614866876482011865540668560259197940218350654017141372009227246776516737643256972236189448665183711005473119731952624801871694442276830857235265893054324467434831378036197264637519471156557941676110227679959089924146099433580196798921456135455985559047219295226157609095595509744930380839902455004872182439926347043686694845787999308412351051543325161346447213231765160279218236388370566229645021529325769116783715656740704738201549951314986149262573456940670445359052353829842628659680031567852232527112404353190414127941787605193426002565288608877194936217949285136941310271985311829956377642480120281630663607233523908989583668146818958769326371579550837117916025975239965964490163156066232647292397312754656698247503395416077295353463421734528353526891664720971388759096188544806446364577646386714727446558456430546982920689387315045653831388187910034063926868215703732642653978958654767840252610543647649588770445782801165459442885145765670346377916350614417731781157742173984906626186846136158805330040710385723597088433941658783454901545626093607854486373298429164698755011181531974089124863589111236438625565881743388937173035991619831505842462316540677358064743238545894844982075749849010553375134305771953254931902021649941482249800781136454883695711975333327278669258732337685843768294911899531986477987971644581536790578108942103875087703309322402149079352198728577412934802104422732177636083669883931317053132941013607935223797172510957269245020453490681700670367237170682839004109294594010558305252114605671146984539394005160549556546130611703226558421585230335541825741080700751269051195626126089253044823262312945626316859779163125986831371986695232472755194588913563563764304004188514033943504344413947992850968984959681536561522061827523022610024791710995870158073550869321676437606385050297476698424185830418157686692819614177458509509668989902209141905590267329411528951947841036430543392851316694178206559021774066289844319613818442851161587755236928423756449218280861677655641108790467402558021245871940466348781445571789176140286451245713320456120131141323747932778849747086431656255641894150639380259233884599764313285438018790194295476018255785234846883485056791308176905259706135828181975409586299253728498706261477725053908695476566828986928041310552387211678975973217524079394141307228314652463439924678475747207807738795689126589791868705815470408039574929464089589171626909705983933173382764942145580887276645448220001366931148328260922910403028501310490149497472590285500479770735063783032004118132122815114413611898145183199417241228304948766189883327436420761640824094753003799534315030591037026646601052172092138517379799270753504426228156510521751672284211271495954081152996605176921287866482013709030214397402760637676857063706244744141696121724968045936340046743688757715289489594542865804502345615654266959403393448781910019496843256259789734558613249150507011686992960558278026750994835538884691693167384699829645034210685162148396373615481726486031815349621381687466723020688034374682773868614483259379749867708562560536797614158067516456642039705385144678358894043887209482516784326205370119932815466826352251564869059437079955235457248239031680874610344109458030924063637191482544979063243153903513305486671242296481498296969201530384735085608060306573250085221596086148143116270616668008359342225798481473146843468860989605608506297761221524865675617682303512884827007356493546286528617052017910520883309912361742795725342977739210557651543951909693007548214796698979595362853765537071677449002913444537375265852132051158643043412684870857251891374899010652705710190226045294502215461478592328410481797504398917297477312763440262106345357328471092154508320815339842048207479877013930091183632909379797755574343436955743891764366779159938817761388492213979465757523264583939288922496782547614585757130675067590370387055146161107425339896955905104827549945092378359764027053475604982623706573237428440032332240208952690491457129279898777501060950843242016716609907392442446397451216213627255405082125511853512650995260789688424265913266535709974680282512930210203559758237360292822176553748783736623829185497004290938378780931557695585428058175270993259866252160706393003136550607678114562229500132725433044108028240602358471392164309241108670543833891891377831948060066963554060703928387991094547245177519869502944000142929887539865373954651812582297507699261565468755544188578908743042169227655234069319351919511798192706455691806184783526525710752535309027162075866481710377791273947131118274424995010095141755662088170483917752329684406056733937244521915032426236989480003729111019871476101220762793098015175023718743283094646443406051926942174526914434170723175484313005259525265859027587912774478103379152344044735105287672787902703794208248903952517733085882226567884534210292601720754435862490347777888703550797446432132134169966860982754217254814842180075649947618446701207498737633348576804932633541788930841968342971119164743479877855306604119530621652227465805517745246493492706928103931303023783251832235674258923586984457479727882843909153380958850306913978130102050168164767636216341412090279351553716386930016376585123114450993114599222942389040878504780676238906248595184847756240796949927010301956814673213794918252637872112980757123115675791941768339443119480133052182410255439894727189548750147878520761833697101459560703215237433545822675212063089740147285615839478025613569648507749496180808633270863532356194834414374743357353699402523406578651635729387870265110035553800541091792489581224408110269141691910845003006240514658141180872925227714707540127979211063894130910381765799701271660910699339586779269619522930282673218841076056288763747072861438691119301788377594825413876273859573534498096027775232393624671623031708588977667420479750001940607373989436183259410884729455934187638384400148130300607381660324676223391807933754035014110238428131408613184828930916074555316205177263951637215581451156515944684883543230023974425554948019298044536389405568365505071854241543753025562850420982053680100574072111573382200983787746775978095696749468143375847464371374268050138010078578378725756606063323834775243097902409620118842778899882932810245609702214752218694843013083632007859661768322600153945845223782733636347232430609104074052216552528976618929312267270101349086963395232018332818664507828159798876115331114773816818394845169923765022673522322906468808380327250341855368913768769541787497435621481895682767626051008670060818934287795495452710647599772374322323564749730747304849426530213413087914631281998926492413155875316611456512618741084985166708202568168454070999142739468594008546878865719841492591184927859066961975242577917300001529876551637074607825791288986344426006877587993984559572394919488591266919439544416536660434206784353309442098871957680704381803666346118819662681070681695082599582717186996551630278158146586475016108607570813936740336889158690054396883872827149283627764175666322762592971019308652185286771254593131787786675353787367381124297862146848294992151432028844249958081458309972350281821978915960569757210075877839788116473220141557366315091919055743107904643296842535091009056903796773308699972072696322047453286300697276030859157062956527209064432381904708175137035287268716870385854404165857757926505335966958288646693704160472091914084902790513900046100675577926978689771101361822277176368195968650788958661422508799663418005026691637747405760419937863762534790055059806337997095844344124991737052642562353241050875622126310655317354612016523327595220748282058501431050824821330817932456481458800654681677643170579239202928152147693470995390413845183667935093833618709365648266900731387517365170844030041114044073431289261651779973764139043498213271955444594443531631090898029194094649028111129308806832480215401505557587135229082610880247347804680034491297344067234493920540419261514294783280029843911004157904233236786409320248588479744000865047462651774190157159216914634990713415340444831629171451996249539543740064290940146361035815514773048227349810489069488114877844146442435325303334863208059461057420846718606462926759390857148774415585634994849109830008835566495241769881953690157693244574211032765653041955819916090936245479125188132993355423611431685880975785485699351094384030475410210296935053258879864298548818268669118901511672188628077737801847590509571510966823484296219102356408595871540086732777752027370596770902762509607502574478656066769397239807520483978411967446341036416436555841430299657118707578789413186544285139085030314198506180774757715705470848715582263130075575730240528960223512743318406857853104723988433309427364854691526659647116254831290698681098322035207985258974317922032950384527744183688931782304078483795945600507896752961341386979551028280633868894383988729697358745220868341126442448817767571941152152947384709821997469500584696112246327193061052312687668224634995494883999927757526612988403602462707300328282960200645327038819498665727588937703161193336539086858807044253555947463849680543981845868274598151137410305270995695173084958110859606463248419264749553059311182246328615444094992421077618751372333862935297886576025715390277110384225681342645823493321951855383584166197046729896649848560286861064361612145471978576953421195104461740157390525029832207200147632821220077465619202143445113647480762329715993913838085220712240087771236434661718722522794343430644941077858027336229306912231113992457359972727115871111606243401630482277000711524292698031292001014627600968181621082982310459129503879237267137937093638315390943268496093301519235958903497272766434483530359339597643542923301793149762826538807157841938524431760223241056928050549261179757329047017057781817670892459942985125320655273184234364187299174729819671907110122775607230724959683256999090898102128840383883235246156082111938089894257903597191971931711496675644653012324431876486476892450908429740484828282063130627327113893922285862343348215929269859443412146308938279822689982377732303734786276795483133651967809701786154099609146529731800024281979797644480157563120804848292444607088122502539191926843482766587124111783923142489792677607730297402007883261357400766855735231414537847281779698025247948215441397539987098787018445496463249012785542585451714497995604719375668582894370001307227371756801773018729155386409500111065981480789061395346394426961141923487911273966553194954335415237703885706355391251357668910362322817437942415093200932003040572276586333585016276291415735360372632426434610094083153191720679995078065553167266486531120774566743385734610621523133371490480244847014422852702371568981855067304651875927918181416433169172126525688325074642025315860250828711003470052294251450157420246856815475210116814918798906274867977178949097980002552033767383035906042575321692423244654780271778633925987925424655240526479636992211101176951603889699926083303602776358033224268706703152394068727434425607840947276197326515085798542126353702021451971245482930750408079846679604590529657970774884049994839548242213885957570429297905909766692968657160533410069508303401987020458284361763588533321918734152998463114015969643843916355155521364803443167355615540484592765464463406884639315861232223426854700852081934931007474352574797327791043456635282821286496585960386251930683441998875616222557742499280374205907277701123823089763009651969666641076081765590476134584527624927868438502374246317912795506908052467039639969674827695668887375323929189512177446629786950928043055083723203922229688575056625973235373687787994371205966806318520344941189518157933718433570133085591016981664333410926923740691213808843860276043893613965639057342364403732986091377481152578674352201267784323033398905064770165199470783843644635365907836851009562160045412212303427142737495613230939984821756839132839941375835630001197774696467233688369051758264309871590651872224017625666238651822451909006487169241378213523710917612561190900853418058358168736732629734482761782728779562568595665891275179723135484862484353522538413356408574841074272291107291691709844490740164364331698109703703692526088271212882439571754550337781568676805039435788048158895978243346974226676956385907403566187142781812647358822096238824856632783509241135055909651052154134949323972347673972959682988355025246264965119002934457416156728036782711666821450688883937392271740568215422586023579321238825053985645643123000597050207910694221860314214583709900836936932881729505673631507786191942191219477591572336942936686315199869835288914924189626642954773483918840317969176369623918021610097069573462883135164885419774169124061916842055075822183040427899086649463096161689171575578037379119369119257496493403993906901529724096238348712693353779724363760455426914330243080956093155020459872915131230774812251827688095352958040391330483353857659500960259251193132772635784946053121572516463034281091145493021598966347347179978350816110799286503381078069807230830715446428177487355664453583712390468139647480617296863056144091879114721476744087439483137542189530840587281433307556195629779775323006808517028521214966136179909787196353046961844308356626982353132767325051142097195070752983076875751934497056902917219295353419375610270393208772349304486697253549117134676348728420556905105562999326837722943572484335541464328189759398298823345563528544444551695876340240671307660274489947842339800660647877560568828353021371322199499530255582654978180957601432346423639969176338424808775528308885483372684148281719526018148132296403989792758421387080739472452971725508516832359067080162866741417677378923090826465699293012989740993617595150848386006610939048560598176933105691729885115947657979109351281285288661063102560324169638020462568097495752263618469396374814089373910338295612020622236819330804553065285139202139248109567079177830955267656945561035921532292268616013629859776426498905461166627993401800389762622637250553309968236929806292557332269808916821215813952181980486986085181223604225573182874521903463764394017896881357946192028469260354247620225825773848517952898218349359958193421069381667826098954463254418717699916694878818812280864395067957628163954758831748047396230909915166039523436588451400764769752986197410366914924609878460075418611579743510394932420045759809796733303853020513449670396031596248022117967147271833113540817628350506772800926489286452327887016408339716310645884832380957701398389581905145018111473304280896306251638983667154900011251127363713378667049457325149110401019148409249495405144529442592022834367412686194003499256983011558035441206946976813522736360209664862008054087401537910000636018882145452039841485470848066489481700469022677600711846585658613997911855459412795490448147007142618922641058531156467925553847817069542803324215721398996613885160287533979721617897243560101587219291934759745874352661681993831596620969224917219118803431935062366877991650808081945743464256219306133095646382539335108902788642060802617528086906694612777716559526545763886095382320248553201988750479080019446688289483796423101298172092587349532898135701672845042321915348835462767596651693286725037276055641076411973355478579557894307746504279829929756960530617674309757145321902678400737249166637575556333853655022999209457547777005522678127011658612585737617532121290457157856717607556594889426117851707638314563331886399356324541513949190109432193585587305775221872174322661808333874875446555795014519869445465473800777397571357435877569467318505351749685369586526111550924786528800325163321931403785146396952514644879712369170610687096550710694518865695690448633800385059784068893044498515376547815716614192913483287876382103316704758451638045588437216777843903549054992469675854157372186430518157645562637351947222605910969034113075556409856094556044564583693655802948659824664721743357882939653604834871126308839626254792158741646304457042883925903793765856281195753491930331772148666516789191441491335084353003632541314231460284408179048762194691373408054873582253351063906457590384116171463939815970377664834654867240556078976740725480252751849590657250408419459497532191824232412701835951414356486479528743440916674756953105490509819322842222247494678336895792844224420374755249830360479925447956815898107199431015958387887295938321464135321136162130946604042880391064635349887454789249050770938946095416097338453834693300641763676455154672429041305098553255475002450740573349303533951284865721248587268159762867257702457294532969232176641909455513493355095322806047811829516071082357195629375663009311803863975957951916186682240228045269652329439408876811231360549470375741513604116918151599980389099515695419608120735896976822646960669486338946090845579305067312241800679247983610404313105777612605802856458680576883042092636170739740618471501141048276810281118272470960651458701789134474239617305239159034661698109111132829149337640973290226117238035161403696301670838337000124130761038819401542808102236881550868975375428935842852360634031617222755872436945581165234147790072101392488607739306904090946984174621862414963262896747720414690242803829944453129771942732313609891131957416488653801584950417878270882274650796025851270639108846036406711403214370319202930446045744977315082362178455382801998172493059343465659172164814513657890074738034576956232998712876546826508889462496314638177924437901386943279196822010821090749338768432006517026058835595627835434640011596146041832855367610002540009328837457483499747825193438756059503913856813000250914678121799016192100199325337456976959289910390432471350916820222386916237876410694737022940853331768631597563111517171579591632053001317114511461049527430282142587971574682706427883153936508101827538612257373801169450889164342495654513445223300561204184523455748464479056185563375591593732445365460305690968985927377678560677093487089919852915604908749054103314206657711587214407291724692781427949148559566349442486610042168116862344669131601987983645167944906916653055425060352235880494806857844688573321595475900250348098188336520700011569738547950845514561733190938722864588086677344291381897670352961059483223210198724486352145471027232472477482622870709126733188257229837176957751310559593449087710605023441394677059846367700378587439136353043793547556691580323893021545114136262386686595061820546983594017963146232608415182762939386263769859819540617880043978723219082711167264074638422688319292974663620104919267116549975413669318518314912888132136073965678243612222467715942136302660909896857393326469090309430688183492517150776662472659958648975177313954752298182893758046841887360742837426314191697443093963713396051914275132720965096151644478259943019917462929470715825395325608636337126488464170195518223756179927646370580890683679227322908787173085457321508290913985044382908393419992077335863378301136109929197139730310389538727335605166439814693523544669016562287741293270397158184005947102010872356673995927761388794738903668076546197400633651054495360052005986299532166240281367660630343300435032750446781871607255568095709964892399108407253307443293894963490559328359756832293997998066787461361394921728412972694495777976212442095361639854076012501217577663995851278876574346842311150237594411934789009838573315230590679766601054468065907909128858152686628082006448339383830856560483490245949349566202513098197116919753350506125912122125594051813399735079021844753102295434449285888153308003735535123261068356007319023770501232961702865904235283645997179322931615355566546354978051798065255860926144710898412906502058590428125160923213629800249346080064810196919878832372501102640908607566282464527254875707810177027915372309446099156546587553949720209084056166268961917062959040106997977581673948317301024334363715656831045953973004524290960006252994149838131622630811827741988439148483106401994733547144504910342921308635804713135530238496827216763911575060020826441906353238812860120074728964353326530779109040556321673233329817357331542100559107699148924781702993908898297817002880970485803520825373579046507260341943783008220262659748809763569937275828815296945917081185287773227205352972721840684567514687299265050685571532369176615855655683058865123782988642054792164204816043002055258332949963766535786976880942414823592400318488680353107241638443426925055493637811529379373301079102519263200682225722821596741289459122228500137282514487640305025601012812346463183513744648565837061013529931038951874198029469424207382206883122066776571869276094289080801525835020345443239234246255484271820601607586191836488139472173916923878711548094499887762675530331530976990145883685973125899668236897529748868350338704828247780799574591386997622644416067205819523732323905232359611085267493505502084811904258372752077807618861356415968405381116794477161830534417087938704898884830353061146113062209107220114228432591224335104022536697348429068077396033655521340003157851841066536100943064743779302333889780664460709199267818635883734071190592967134520432877867905508818942101634895475703462333911327212072498890641212867096529142283940875632024893175507135177011240041054851609614967061125830582492621908367219460715778467541727370011913378183558936070108123032474045474897363685833200196450840570603995226199558700501887442199980142185821312535662955762508990139673100535601234735605068066606988490123398204768665767009870195748379478408149689934524749624043559635916045736440871581238123934022924951725561139552435550004202879434126042168571538207273439094818639159281914930326168687063250914199823662967807261595178324535820429444608914016575578045480085273389533304220553687029093127849135630797429616698357764257390515254969066914226348572933882207567459626455216227448473092571654242056829009368549050710160141924728318440693947326502139975746446751742053481564279382727131390622770335200537513850561020754024156538306084245499905853910358486090893877905680946355590019563022519036173029309212786201068507291522222007332886356368824849210561346485485166216104631166624292889643740533587527874283486086026996732448725853271971563079922106757156206226349169284193556598571978254077603655678357675193650161388241304833573063819534817253753641350263680475426689690124602558163809103805384812931468363985047320875992080213932956345078395705880336337896632342689334114673140251449844078323419881831561468264754671419966134544798764450081040085075606629153912598389819036335312565477831442096499820387759702715627513733308646394982591652978941293040044696758871843517292156831310111507288907396026232558818253165099061085912600062207609884330674233654024582521921826431124563119939358333941856674752753745323818071284273426894958301903586743705958083252620628988531396845274546154578124813938560959536245010840273490139004224883335897730512134956554602324940930015850004763591813104296180395303930104724512439732825617227768432199001016890120450494033162223055394840168604055298349832875237072061404176526603230537950838677679831104428452032149622920552183542214298863746118216899782617941747902696741979741099767068391321788689164132505540170790739661744495570400262473773835760519563471413349347407162710108271980856174353668225744102982500539976250440469156671427722456517574170200613082546183929528760973049378570835242771953028821160316189155509029406153449536007207167327050559854857046628025668274578568787552546907773995852764815747784237628826571197259801137676846166833302146709843492572566200358438090005216677994804569061344322369460397995188171824112283487257728312682353745195257656600806432024924947889521271393399273088303429486429917968672541545056404419516354643575835185017622830331289742892003955406802316143121354782148045211134456136353427818028945891991117084513340099517754188993399630155973958637094454237282115040609988521273874636575823394203966465674466024133113396264534368301328719871073004066194006497560721740028305930464161958333327468317429796176671753733989103353732064277091862983437977598583233732068211953492346151041999419680404588794008789230480323173171884718669153682819496018742048181461656607761141759506078736272324133519075013954547343281755352395832269134380573601718606377157882834978821816335284973563938230939667351468297270188252310065690639341400916095243564463866219462584053061438336046811524876788093013159632697198068029131901008661390237224869649564099467588710385984174610592817888697335996108448250728014128068981613950126982674550663973407708031821149269665027972852883288843667266742492128541084252842391462913595474227469376923745610324130243229801741723115154264426936950496271855903268165069874126080902460697879738359088482435061445571076552150096041216696044365239194589329969077528413299965636956642032324510909151519855268697164222046885579956159635226141014651523980331913314391282124175582312736925757713991986505606537444367279898876838010794684603146435119449120038952540211801576693100095504943916374009585000583011360093878526400598930372417474505415743631515795215594571810302433316653397513394394618939341229784926476746738364553336391642631015635422606865420326960973868303313902616490505934145573170839999738560258756165803683591901184004142747334291715231281447294394396380659093564771106133339968092866104481153168954864130904823386702082078260490591206857002844937314037057167092123212815577106942253045556764128556817975478979097394123100184663112341569534583785653453896845890867541712417742877733726218261104110173389398951764388225904488064865367262402237818508693829281647464410440336862158030864521118385609094346366568696367227716853204919934031866448679156958443263128439535293369396045272466883353116366245092086105456469604584718383226402042909947797617393801506294978336855564345108198879769044983981084854226012122492190687136034512216983551569329368307783302816574415588428578594754769299316194928175468611534068614525217886222018088180008837252820404250482218101644583411792439710111234417433679133221152991299773642173041849437458353019122627277397748867158152281676018594060630952861188295782213911661720894819730353990622989938969127970454799521423477578026316707239676637559643769261456815929763373341292263943456210620538941446071291267464527221145609940022433584666927369392414967726055596389401542131259953807987161810128481808665074451603970490922993063957383507302531261606192084640421877208238720862736353205235763310115976857227553533705838997178847471109030013704634063765269518616017530657946588353814626245412934082037547868639281616110471542698245426996419208646538080295674875266135548136327830997639192483261092477281304050966154104149863320503363755517353161156838244925735028447101011858969057797652460535477351572249856885508764055310734396278795983360490369607146453071712381323016771095973464466816759073565331691611953981595788807183180205429616108449250269775280325287943418176701893921941425310363132410728389752495008574500681376143036475580077901636924776513050751250375860745129375045908530953861841098300270950086605415332380199593171601155945593806267116539793069530998307485667036891006342959237457333953754815120897251962082183511932902535693567643076307074817772961540966295971946235694486248196105109102822852761976490601810367266471911936368094422462601113014229976067073849379649389206055576609600890338176534546716511404505310010279090990267791804564867296715393388541705586426601578431198525969641172147388694199080468019139362406278873923053228707612331118510113646561520205831762318086326768753147690070470733792430505873205222126502537694990846220391847875822501686595686894448621818412196213491151554483847130432671794648551818604504270744427522602912853377804051405847594329746329597933725150563113663105199639425000178564719969049413328792940518038165307993484129903840927454444969170340193520080443297920821872284236563678907652211551003216783684961557364390020490572602310237995751541000299370454970998624952181573282716232615595138216709555063953054523777431533269060473287456333989510411065103336114159926134711940747426933773365536073995730089694964563095907121169794330368896114619253381725824055346493769281110654578804195353845764257662677058843353205877711468046605320558527238558653436655010608310011284274711540420980209482753711980756088103791957412604049543493648180906713141845583518672356531791067210224692615898088508690399654658486943668165725608890148609200327000209016389544175527379753430273028282319128521932075901861405810891651270900179126466958432543748928823847154034761983772826434458317644261960064768752682004496725764496187016101058288070438686520792022431178342627863765098965647818220574105585148720007558126822694228898920930130662101609913528461196580343907462145632611025502948729412199534515538162868813075967712883881045813255848354228193234007253685476837962551750490324353303012975492578023804388238556352029677596095456627811338555023769873039847551101797482438802304816552338156238074904532057747911003884545209435908916825369385925829232281179165443636437322115344657990023364796727571194370762785630465740108663911265562252452788474170916104593888905492046131213468854864811661332234049563288983583582443900595616261875515153950677219050419455010138331242102379745105015083111024700328941052263169847745649535042956908940475421991438394436726366617442611977374650887488779892834248552735114894558095429326470737180810725649681454891357671081155730866620644357376636389134007612045304912375528115854305882141815701934814580916552732213335911730823820931377837681714531594060620931325847664363264312682817358459498393615433365187287166491166334903562280007328973406330088261485411559808930456015812932427447808394466150584236961540345450999819924937640552968390603392000346326834212528781628896133826780700666120475050735414988394473728165141257307999041948278769855117187935019594027997258400272110501916687567123371202161188784282973041044057654357997610955765952928176539069439171981364959695383657498592359699098158713685746802452535752890733583514948804718083663640060749027729618432103277051650788977543587475009357947664249807526381637802206010615656663855294193088297569635446618553925145279926239357397553659626606454548729971268336763277152126610456292789885166958447811261259084632653317036680029448801494343923968395101318221635396779761070646008987764050155148751053900467786620989960618165437387709249088283350116377316226371609101541191009207758931953357958400191384686548738982104866824532545746769998565250541115993489423730161944287500512700254999715781220110864591555777455299060255623783546397509831864308148692132043947030599251416010391448823591407396479260258142887193867631248803632676140427128412703926992056461546200532825435322600968140686625493051584521416845999832261192097247328728589796918657425696590226957925901929800845277313276119828077286303394949754384698027413041558526860067721007610145120261582918167468905123411542201940694753631353872235255991696800866916229736678776043627495915965468291022598637669558428282660610661022932871660730192266473802528833984095333382636283357043834720908203775176936830744742273058655796324667758334899203483843858985881748239040714708142364733222733627254411836638376906638540983743863630182045721667875638801623995774108855609691655847296190461265589199178925578585091948374423252801813476922571865842115517151000401539440913101298258289452069313752677342195076654160404950881578246009783415486185752187074191790767907281590622483286544605929043274727314917486444208279675089251623416244942083087362441964330974433197334351916178858895701516731210342871826697281874172308259222917025837314873447328150080649556499577190526863683779410659911671368720833292733889603115440003660076111734793351135954865262415409612954965166382207885860749862442040787511602453864284691411015859522014528364753570890809543508007954949276732145832996474407190292770166667429856879174274336895336744092499190710911863330300762959253658082283505257094862503294635394882357017758080489889634033763611398015622843434661833653060986260107741473829146652093334452656773965413901657152792082832585198690136404889800968877131665114611908712228929392810154909931080675436316667960308492391424914936615573171587162168411867409356903750474824816129420261461262982437567331446699229468744101668296407184557241175714482182215474646725671536401875950344551974795780200367574100280813335467666380472481441840630694534847705058863878585348494383056827457206093094679288694414231432853209116972667370899097625865693111311038636420529812053006185186051641979068462972703094705713462398524326364798009128374653830726526053525250021616401664908615466947048087094754140792821470771519424348001700059404947820841781139313058855138442118302635687153641238831474333644342132668261442100092003942032229243755594046989481922046721760550885446490257514215127835049941950280129520913667486829362392536694030950889869791313156394986861146537833499628021888825407091997723858759596067477157603067159797094097809795023549584334461077122891557996490042232689094864935284525422146603157747896532341739091606668710757764762083987045106882660277938979331772233995530236149707915843595772239971058351193436732146155309502663392243123793844654991511729046708621667806337757813418218980084065270830679147620514489494086327162484158780551669573618754006137327286572017642231588360710328290862890050955869747930329162445821462725535180923422568937569946857637573399337031227962918669747439512667121613201841315935795997630999203659670118007960544651915342779534368770151697556604793427472780261326387594109289727487995225989498718684734314004836563232734287583428771058909846271598087892566065762391408124914310951175082820851219363140654306031326604889466855328633505778487009126798319320283936640620044407224804785561376304983000525200977534096190442736727872864874284354570961374374303187058536380176722604671102983305029557900800960937266606845223958293050941671938385225584794963464889776192273360184275664776115852571880867321064563519325149961554421906787267335485114658605602332558137962260217545722293695803488555145883281532243091243991296478414545073369954728521825046004103257139581911403817007114925052358575528923861453932689663617539990439370584990381436965838289856129168463803565228452217749754054816788815057928154040528666726787354218371339378425793620367507933829879899832708345496692304691818705717468283316615670453434610603095754528771708971319179619475229074731429156418186312968138219103857327930580156804857723400837454816021248144805285405046264191603111612363279476699747978889942700495935998817917456323780143565473429564378754032103627391623316714458855029496509897030708127988967565662678049968400099224783559480786472974638310764163799238381037081629622404155961999826097610814167659025900349828217450619806668792202769598816158886178151590505438644103386130392388679677831820558456106348564704112390836154469843945382326961810172154397901377801921397992338458911669876106915174434875651463257648354372378172661801585017246384270472914417131390560609604868582170130927041310753062943952001601278059461215369478505274614728308423823597595429632664676744881516113007938857836081233850631605877192022856388046852187071265954356069015925934306415431030525706990226779080954628001615142562894504237002687699868891762257499876355035188936949088968545935139013458395507333165040727055112332071032021582699627855437654361239041823732940853610724266653268143820330958207793992416196646264412607580131439404963550874605990095204372013259981344700374386014816035204056448429804902164973042431431319276576703442023711418711265596021833389194398701855031805171729400717430819751435131425047616171359440078306873017059836479378379432539932390109542091951355646250422263041980833584059366949577665135443586969384487443765705475590469355217544155807026428826606244255620482292238205640725429269782396526791251202487824565551702965358898944910733776845512874350768246953142732303766979772352808877315615514109725443500828975101367270015234377849531547794425758385281098380135865136223107573217650690211385720103553228091200602327675733793640799436911122376476035031665489105983837311109980643205650355756145600816202029514297804595393826880051526349073683589051907515944657085974885196961612836001924276922221866305057626972585803258087408379048752266836582202928144767563341148917837033618113964540554646939396710252791393569237386040102015910352314645610760043028723328564952618980716549647192653013173236854633187916936905915452530310995371638497582845002978158897100518142306604526931158110123603490288147731442704914268321246846064540166440733420738708541332437898612295431373770560019155556806742261438057776194617883183436927202111463525815318916424292407346283605728873213080591538233210730090664419417345294324395644499842250145307131069168246454674300718356106171255798787824403623168054646685387388827432936011228921928087356029971135312955618664828946761448313592353967112576973348292185398508711374959354102601417690951734571850065403088183028274419719181604636206879489429021756322709347235125524425896125406856694753264087677151616456536791152844587517452172965092185934409773498737546871590744990403627458652339236161751806838597846220068428211771531655388509616107372982293675759261447453414844977333870395485146224330365951874230744730093653113591346483115363699599945291559544442409300855795618445675146386134029076641389431339500229302098958144960201335268383347646699519921243407087184964873746496313058937637548658583943564706816445320270527016198793044253046752625400409294276186749510330436040277666691342278124195335184153178336461195738068951301936763648320867147210405875591582781427956309243353634204525347766522013756232098570270108690654094866715993346427271840057377084356633455179386034887444168355256502931582807487422562301151683734326944830634425874227410723516326039579258891308912811123074434425844074284126533347254743886630249586400293623201964294104449992678006916447938836745652300794593524912673323606158947777235890315697606207879785305134933228685719484509618083370719522416272806787932973138872446386441227547850463643378779244942893981311290452325054607310444882990170830973803262823757059801558342466330445331937605196738119546051455014710674373655515326383417809160889878438712484553144539783874072764995917727259595931611813366236588248421118288880259041129124800793469843989349745789531423707186807421769940236934557170195768294036667563302284103021928025199600529689349543006272303188377667553294552622973463944363034984125125421709770263537616379076212471223061120677219193300491549912361451855382162689170084456883803557541202462068301920988631796788217890242241017981650786698067762889238088377666536827820344255696599898072887679698206893471059822770133954665627498958733862362844475822622207413707599024983150083005771195785212951189681713302647660316900498973896773720291962720208237790749945821339007629033354343206786146709403371941038157762715864160429783423978564877662710164935837969111997797853639194113633600974913998257580255179657810155418890670623368026823369797513186132851403633412979273616205873159309844786271638812993882956029980928121918691294912433627617014593201649418925971934694163660001398478729566766916297981779041854977259034798339811606931773158255676196699312514586132820311971140503565600763675357750081570166206852682923966019434748435496060889625349600237054220689572243425501812619310657199787536733621284374339031626765239618441565465957772342892488730890898382426859756892451613015152411251056805209756410400882241315486029525324903066145212489075492071900210945468950659391444541412243698153765396401922167029776500498942610579392448246757517543625356856719394507949015160051840191497588889106135176823716243610941518111283436152598421096739281675791719614070426908488740466518938346013636249894095655794010555949455780362422669396322099404537717342715790807055455223064402991188035170020543873543380821225162317051183359828900859534497879063790234660626349016870503266112655698062745769123943013180304603868923585715543669355744651845126203266020957870806914868501404659275586150995926796133614861560428996385573708412204225362015889225747072325193437747552650913819802354012270256581065574513731657257967207316241416638929351724621909322612793545076129058703376302462229538607373592800384710977897363624771673389415646271669690233779708736734914814925781923959384195493511890063801101075231249057825041545351177860625947013808387435927851247245070486625925921734222270915967445214725866916799248449664551085086149781196770765796544214308925963195511780510395021490653104053065006695574981378202650264363628343791937308755528100181103487214769410175694816271586401985270194934756791722663096744408039460001103769114786543548207380438966233278492371304257787933033414914613558286678933604041316103021387584350136402962478335733999479557337270725702957592748744117500717634542832353359124660498629471464427917744818175734954664648628258239593898773681998660669392145643072736882766505007775683408685199719118276330470563914459422096791011470628136301692550736590022804377967532346425068805433473296164395851869213716524085296692178372087409422354722254265228295608010555166412670079836900922372397239859791692445781384577535576593588324634205739094063227552810892808778054313786773290742404498833108803888223418537705829201782025401576907374943639474294107971789523056409849326712778701087129675513158896616056218945619203815385512720545001054335220038549868943446845440038209277474202695897916834874632560349792735202875012931796230836001288658767843403971528748403366404451753080548379137978410910217431268061618713079380367352766146015751065646225315549473743008251416452526592116571027572979860372340513937793276360266776439697215248503955810602500619884751090816950587840432343484154142376770756828347841593249273332336085176117690107053777824548370472839710696438274235367002561580587293045652952446699568388556173355730753998957803436806302257726776237173954276418836328721816300314847209679468525205837029017043613821488112146103072682010185465588708076820080745837008482948512595938689446268989050829044667335818870402534567011277390985683339719544293950459457599689535442708305807608194921987338812457467170909366082253211380876611584720078279651606699923108239865899687069358855507919664810482231733157918601528445280521287156086601777522859430361157425863771550579912679039789659677138737765368766074875073315039463743843242411880068586683358874510589433465690067081331304951841350472092384773613718555627792044673219289862432133241457681513087164625784764748737100268705845181485978304617741983143607572585302335420775274759631629035099238809641775462620502769627503381140032689494542989754447241820754585080623101095951197832666585738854047528424109010709975714074224723576838597398769734508470728792239267666321333005582961030405815218730852705523833757848965088698023202580031329560178356279011103610759808880502729827540545394610377967628893017694700017956244245919717668576376311417569763594802871045212404171646422600641155528360340573631586639914096979075769484803451140106371379297121926455105479244936017343985007451510417536794154632189437607165371252496558629985245930178488719690201517080586827405794071922432291708311315196644832634007687008766725224702665944075096670447195248358685287078586102075056786606010868345823360827570635034880842022449936207159243440623712807771475006916535483943586383644831383429595969673427130518928505549786639411209927933919958042432409951868234963952941429047989884462558084366957417758272018980002740906529873709763274999312177200902715085218599750456664248246893938239632029736210744446738325197957467182886970515143698859031269048909455425802863841066997735482875885392676417482051538842259976910554491383217078457895133056901642461415999751168200421827175857921072611603052050625976102491097667877435936404534945302781246183774119627707106429286955659603202815961247526575358947448372910646935342121392536710170842590070362719907943747957604815675195304180905506023452750049783683020093225746427318321065503432636102591130758367019248707923107657677410987740671225024152861284158985839812620252216950000244114318191605982793368133507982042584017813877492593674195602080127842475172502506879322585564755556615721949439902991189617443642242032704019390616188090179808218236934251907311134703603885763505389105392097907632494348413204168484197948458562384415175379231672394764109493690097100521365453875725194583394253456135799269004628996897325996952300240460070564422619373596731512670270405339268058718721235656491970910616497875448383612044989574376704322254011677430186911542445268000897286409269837721093285422650942358314041436478723101730112489093379318265569706618503945494177325251897425576297636767651127739541400812936813817554196146177700152420724278749289258482576861788386086937786620508796480333453619724456693114400834729534047993238447182822846793684598078317678998627526393751070934116480351822380008815301988043962481192488963902661820066897233553985594927153825785866175033550160422541956295430848905951775027962736047323075481332291003116436373169669058917091295391532758883984670160186364698263517269208733553377237008672006989096808758905196318519935101672680689900986365843186551939865889841661218011349907062898711773508717114254734922878410797256849967174110456454386266610862130056600018512254377176006847672787449658053892174138117036277359522492431411079577927905112460409562265707724288265644870147181579489010318088594816715665742309232340920585487594718861220626270249992350703961922941987343515506626105299744491117905076722091295743953372408107890826836079661881031464137576646991482964656330111132193110232647381217683722275199655352950482821077938116822722803259815425864000523076948451657587995210253305221839083897846569404722129932769381267283250774398791552065675330316871123526640347502076340350293305680231744172697123312277468844951287246367066822040219624020865098441506097590633074999333956506004548828138500749530726311393887511699117948206919682369225800882633681953093523413781104640991034569917344816780587149189513803505638367413244772054561723059568225165549671721276022155543902618403589787826836303130953090701447336471421278367423076434134812054276140651088727680468542266761837794246051566708410447243426616194673840870665590795251648613300911031269974554805597728135647638358575120775524678455067129188818382668974726093870262768366894558779296825580937190809005635147499196489407927685861199845479313001522330786388728748906304302973950963950519937240031291056104409306203569906702628925112297515362341677376789345645131120340556175980099817345412796809296181893317709466337839773924450724353675002445601333721801401003893848794064089335972840245348437850493820850478662924681536180285931209621493551422320625593258211713902559650196394508936727467572091213038372245353530947725285604809021088566368443510215546128837414206258831322443774455549333663270239114883462066162556822444618481020522282043603470462517826883048062212660324834666050139736054058549591428881444533150487461033196044605056128901288346927532936831158278756921818479758525203836524828506391174351756031107289364030465131129269893317337561663680552316170379569099379816062383095512066053589046363217551234530275063198619893967511967895976191196837114629815943262086146088686295814963257135055742486468543960616900020121381240921150084239069920088754337219197915113817159909270825825177177773922260983722029927231759522826896870026448049591498532614865368519200452236495545505214603119836372774571892886144744603794578186408376665991838807265223795901553481331824102634322803947587569861022517385176432619932489758902141191723277676922620009755346325129262008767895945360275066367548159637783892363952819286042224914139626480290679865138350010173902841940317411106417930498322598476645060158957063844323582886407949378300852182809889775462661585158467798828946683746332046886808357309120526267710853310725389626034158821180676526513473782855709414749247177777029272959333663252442930673168165272292815324572862887153505739215471381251264396505735541483225318715075164896329788920950078312956324157590244606649139914018137175183320156952036347202834766001729619935631112675918071723470668550043457700438343689570679980116446037635725697496487711519371929016769191679086421106157051286016070301650638339536495634877625604357316330606192882695019712319198654287818024200506746445752705465072688901057417071243779760999299885123213199709164154869413757596163095634857357455845333764998001826360916431100774338187814074463775752454646562701570016005110319502508026886807799455070434308535367581212341331999922954177085373002054971108757079335215234587870663631243800942987841638498287760308964622568651662552446883228184001843058600136851946973948981983094184602588866119334675219683056092422482411705431827070832618626805155359822929510809146605124927380700023058116172976842423877849279352806944731937069018374859850217738784507198847118809725016256130211800303455557228745785870993923865727305231862066832538601468499671059868815283731692247570268321817021404313973256962831130890289943492799096866747936704968318837758471602196737025554061153640514435644943626925746365310582948983348851335150058207594164667816297212711042259784529766164132090727851145519590947181697935015068432488885598922702136923996919725959030469986592499861658448577757907773662564717590950274507949096280479166903095597430062756987007645522737750350042809485651995363487633203347510946048869979655301941191785310273484898108581061553350394445373142457871973831147128578899774679780584911865271852298346061363787778874247554159644711028059345121803729191407622947435339957359883209908085600797556024169775548390977727586547640522079023638147703667905486303079546296921509250779771174889511038716010253975190167109926951762256836430409515159679010839663379556172017853045013231603064010833430649899633188679500304230875033132049218328866042375881017872929649991143530938125765574911495008356499403608658072205365639609125757404545966966934280311045348517989120610123577195508852197579844541874952367381963244142581451531785678547556519992906631306371687775031231875734986413805072552120670909585071494642677497950960692843142865612264132979515797077122652937631822808280993204052561355708697394157059986057055894446561386662532783888938503348708634530027108190282741388356435611027305164662124301297490896562395847722798953995379246596942104839608676621570019568662246479088080317722716162206417114600645389080789116832269667652308687740047643461290597222163503333487623965422815657971953694230616209465206735882010057762385688017769738607763241863068967190765490908114590554736479054526609064676341806363045816345950801615575569280636278880765429128827908438616561763512873995592886870871731609497479692867186745752680201999023670646125220911182531051439281680827224080441392752185027642491583455955014939290885056290002789337790720436202992417349297007247697224130359070302341974105392711867087971551857597877665597243740988245641722348428764296678368125169468355914216076597449392175105479560205363875673695696740904415211688747321796190940866424028879243669073686969804240936352178312664065001957090478024909185739419715650265077270451903412393036895793567995607340585180214596504705467940601680484735645362569845247623975647056723533861140083316483587725729890544546200290191495050057303331247983072572557878086450708492633822949797418620888890847488885337641506814022063767080120135170296528138223143188511097404744340356259638071597417510211621374102635926562092201816434606912881810090588081685858928242685010612599662093930441143493550981887825000192293324048370609290552398866743627141669703814961269780939569729604274642124603645667812371582195175920276865875540774540048495628764536084749459280254323324832065230841925973255990172068769149626082639296542892245618306061016290844836391893103840589494060673254231491147981126336588038058371885509998230785709589346120190034301902317181985517920038664324597693444581441553422103951294700793690827033382610032135290330430513087031176035847892029731279329267580062747849731097696660055646410347766951870987599910153983878860105267410618503353277390611552554724401538108556179724492988256397579425430323395027685386041653295421339572203748222807890276861130598007567605262589541938628547276680026796702487634939075083597625079970313640322032263044600434877411471335417576816883825583486180845097480531643386893778687549862205320184613320404738294359833303465875615554983374721592550851732833177442005526794472864741560360374614609248247730856219005620197228534288923239451210086412880195303204339597756985541527711194524155509199322061109718191635122232678571555577305206254424803215834678371192574985229786596872345602128173429416387498203774990457159052881873214259467492411211475464628329574824672039424819014121541848184228464047358435694526131046547952530737801637245564607911352245878941867467905417957396293706447001382335841926885180845314212592659050585384397796868194168335014035095379540787462420283183043185878618545818530031120926582453271323569509817191636325118586119324473184112866293701013197202028548783053143652419483789858499864918980490113352790602559983264303886912445146799493006217909983966977215171767907607597821338023192978933574708456234138965763791093417880221081836188477243932594040856457900567103964333908676892789733553576646123396913504134721713523126286325244249656313354739344117273122527449396853740066639283681013301751560172548045369568241664725815519954512835954061466898626858017690093341904864104906520671498822419693740847718976259000630296107190810310454498812003309948671572763661618401193052481590117621043589867867286812270993446875352620293967344571085308307303188973726181831791443012608463670413714031167037028176651283178186115270103101903404105340645455302185646984557042009781661018272174302549471664132561630932613048500499738455774561753761808697451175915093234430947106818819141445598421310415384948397296972985126207515049078238521699472309747774460251842351114339529520689163569255785019238068546603342056642873744194803264636135131357251426987981742246634482632127817764510120370987063546585762771198583740159727648177625525968098043516223018044316755449571000995485824372152654108657995339914143895519309950794198365069770454863684345861742017054590127314296388717527271621765937786093193399791907103340957142037577492292828129441825553372342202395713341620745339326680110650006556002004653654183278324363178305594875548102005832468229629941983847742337908598242455699992105929696382830169714520334676382100636877845548834684623272133449054215049407756216633163629536615382429996963504852694114930954454988046026171801826698018446134164224245393192998511986156563422917372009685178280013792866173443908118387603019845143226248980358416630892633731668895348260346968760190186529398309678775607759392467812995044172227663395634831275215556278903355772086539119848970220001383697303687854327302290531838250565436455599812785285336465446584892442037806967410659014120034278020170078935444142469529997913883766681722439394671118839849602978568607065497536431484600369041611242865799813944740805901615251016382923011368173576542073793785684807907360889862409746931056849721857888783255062899322821265094729059911955212329610804388148901486128634838488258669092161667907917965785711288887610907444066756242443729275773480732242091524605487429454270301629390924584124802843156749264003143088851125091004595764773900185657808810167109996850676567941694927377763536882615540080966916059127752119294657041501931364778295095868594250897832511750606642905946043846317466099641666916905035170104197576244319749940570724115428010125152280993438493320337869693721440585862348870274227386562365844547959350093756071936568521662081805032327333575194970735942864571945741165993175443164309344908801091761567458151607668646290833515283480454575085781398850663728928667373661282411371354411531049384668575911962242812829730589308772150385367051344183138434112718437884578010534482510652002096645393098395436570155255134112789481544649739419650708237524090949183661844871663215038272847507733425781599846686135054364285227308184425615461143128787236080123635413188719059710495566491316149554976189114579419268918033548788292759580610323400653117647141514816142369682070547258722415381503516602247021609154452664819250988242305021834413523206050095311826195512819995986344523271817191396077419520578953716823119712010013142169873274292244760434093730158696099964019084338617228306184817294098229157603835006316209240733441819687960772476680904876844480858056018200219293893848261587323487261745388489816244042872775128373347101678356476836677532609398313693587826251768849780193819242004465227549170592212760667056124160968149153464766571931526731694501640105182792134216790236369009376167895625485311880481650492390787843365442124949205040404095269483212345318599455651622425397381511396012118188474010399887808083403272749471618729600693622232161924378417421379621869152805734817904240370368992703236925729839896568126898046221192844553190266329965278927225532122015125886473867621724199798307051015257761331404467207619826383712474096452847932746306890247202362434435312781913224219905075759474635049978533420023142299612159700528127391639881762736627967150977829353536279830433135877275293168744787657957145046159583407431979652353114362086294513780886503163954037001167358899863840139978494702757734377860910314440976640305215608912524054259852558932060232210022059203583174842901185537989221679089022934894137191134448413136297123494697331710124334504466818887999833228714028279944697967797432677315485407496773771518238361324058447602424841905901337177428559291617157978175834611201773740275843050950694167383588232759217979993385022895384028039250150157211881176166114836280019118731117356647021898764651401163732413122724130141788184053002254649340889250098590789699801146626602305050732962912060502946088254569950135636150186875156022111781728173321000988262654522029023539276469534445719349743663847413138007831951984500757945453523599646722832154163091702532326795209894598537727194766598283107635562727725445181909451759525106761243423959107471518485154536382603801059494580777470794679985952933453000476035128713025088682521253853473854797075709086572824446085108223148087177130900678922613306413320285371962037844356058352800677918919422198282011677568277469753398510375568786549013794481426831328180697437896410793773886149697055817816085560884718009134371369088269917866007196479055240146435032673129697508183460279451627792914016191238749099323135505292212621644029131483039431518000142883335048624679828866067821121331869658918939176071599099123151517914511565104444865008632115729916445577382805188853757492690541852422661772321844377525950593657930348327300759016078941262209580994082044028870787054772525569136430430178758213385482779088574774430043018340151900013809984380086478260444466620869481030685447581700037427777993402428709769997407162327211047775500343983774471858191906417263707948615977219263545687693709725167170326744199229893170458959986480192768045228205423599626059792358742732168632269987207674490202168069885363672361151198910989184414716624273212218932465000839681291432830840639973513681800109229739486843253187318684559146156027544901287143219732066475835066496956541191447380650238925393295778241686133098534867230896829360327618332997219246626201639925569965431224729022172484724955176731158989840540501289201231499400127518821084131532581844448222871784257573099750689291003171043224761915877386450444654326903284133046634015429730749203704562286439357101111563719032469510263850329085494417538565908783396761515754985003692668462955692703452328643434838258126088679423635297259451812456723646927571243120277147259436132274801629473714407038136249000155120221606115944445998054153010427599692974216911867301556370756805288103274041439511472139986571965666924699565475657094124868456780948183111506469748362113580023606488617608373145950553053061703526549026095988033206627884586134359925227200089675044474431893988463103148221607288702380410939709332401759817767960558604620043550020918132855406923742097509113506812672135936917259558701891655024819043749280480254036485698769714503922669111426006586249907697679928216546962403690478823489128570618111261653048506867481449493354254965893280474888938377102986549183794602638064876531898639337686058662192937735595694840145065987340870873166027887366663150613848792635638325660587438385888288512042549104256283158954913163340161604203408212300966704030238140487686616588748448938726059811179357238079856320900720693410593756059120281978818029240261976606770826672841770674356713206837569721471715498244508220137051802510391523513566406465748843671928157264824001754940417040650969496635054586501880566555869382032653509206901408942055514396453564932947558678980354084962155056594687264107160656832715904026779210944993631375871514853060597538250965362159092126523082335275367685099244782910193445052443709924119160057088999390180735413466576581121223119753359720946141353448184842435845909881862644110479017293028438467368877446299745698609564170257515918159793069630256390712292966723187486225634480671020286527618280172178297470713129599768335295524877224993622964081945365686387698662880993031333060417169291425807956505717241819695672512475738008765041180787257856883874254358822499646200703894532573913077349503678364849773952421304487798272947362783174968334999673214456308414289221852652361017117504315350839158989386501487151063168680385972217631601193286667136613136732297610385680527844228791857581998044714009896630106823371017193975531771792129183226673196411715263864668438735632296247746186124262474405552479522535193600617614328933652156155916022766315994897215256187579114502457953651415882122640551716449465801492460348416934490002672709695722427649794207151964364275286186462478398609022678014673421244002197795874483101933297053620041542198456462038955580799555421394482915934639837459395876636176074940434039488305655025681047623977959971991498387459174206877521862872796204557935739436267996084387996482565165024846025939871340647280344065679031769059882344035587876834682584154058758168374559839486356120520042469481790824763359597897346322700975327326114890497250372547916039861568682619274271683489826573162021857342047422050017414652106411870502077959364474939269832851032294832862742306692494248014911128471721291788472101747024940629722143063437693616161202440944979079662438644572427568460710988718781651605919648363748940380352866715983657260227596936286698375987692432007556386704181117510607597314456038609000822616163610559507099013535308013583559802284282395883801873850526302771485933034804101447849161725420450702731264265744168709150344318884663771698643683401017415771939166232590170040660961377755012935388219329334270855342258130294395031251309253063012580848871311852911846940623336540184443114730719662084385815431500012021128660383812156108248416009943083999266614406664076819719472442643891535447805302533650455971406466239103041519561307708677259663697577815311360513290815799001111552731214854413425673129795050008720953591082489310705415625744701637695213591964199762551703728342902473459403516317688530745443558670995958250034259883029260094350873619564661687508713951541761325196463859900327389466337656683602737093197988741746830437407334430484361658981565476818389999539266379585445587920440382704104978302488634136927653256271539114349308844066214736002863134107285284194391635264161865669248062527641350425957848408625422576948532874828058253771934502648996504122502799621043812298099286949444229068286291500664873590899964486276376498224592676349939947827848558965757762164480491167816208006332033687591896456341405575122510106160579016304486685825949860027626119601322933539733742458079372180743518794060414940869768120354984166175295793540254121973423119846148658376034376921407224516141375897508304058459109011112657368374278768325774392250715719984243467853956662798670476949979608186617115665751816397910647605766324601101955543257623316823736629348438000467853720957620307943234054789338351452012722212190645085194864457629792676985283050215828863694181986013890614477588064571334007088635213281313456315794324010251516653233609791193515622246057609803609967672746150493578880811318579049465560868613461543306107423202593864802550683349078648364225112168306674624287867529639792512062256103826574887472656566056224755586707236598866078165261669102285354762459127410407159740855053165207460038780263139332761198711221906122217966732838713236886489778882177277584649764936467605759341958021400989868885172933195212468547151216264353865568623051627982891343148755701687435863941191223940186086404986161574183434463984233461840619795451737804048345987943337567411883355588630061597448570168914274057761151733578222411767043736035071546806137831358788495514080233940099683840390911189135068384114590025560961630995895236744024645729988086335624767643945722385484211283888686662967612286959315218902847512375062500265892062181399704511327057059251267565784488790608067173307760749246278105067374854993691541290525583256498230229483190482471299878519472998216085607663875109400653297380663646066675006068315944872782237794778204055006120925616627677762125177756520855736235269522107142660370174323939747239343438882566492766917609818079080447321774065384789075543504591413560170671055090923030318420298264079150552653270407711470864346949366754920263822033862138058297817146796792854965851073255518871937532567494442264592923558143101087688704270548768961725663003719685771951159009864622597551163913945144632137131519664696043520735625691770567813398782952857948196294760643429870709203310515208430800723559892284007007732610274211803097871220179651957143961379156392136386441535799643361840190409638918491153780525596874473057348926684978019038736118492656494818750838222151369137612450776923519033092734814480563473760853399277984115518074871949525280748139680940242305046268532027961096631817185041275061031384151290948581666043652005961330217706715770785980822731978756579340400691454262503534119594076612379849342905966585143423114053300117573839667404406835125603965439755325001036361540527604647397195706583957484518376194138142981222032016462795993340441213498949432011495541290127803104196783453628337459045926887569463078369183775263288925228407095520353445021284909252516427757292512254447272075625744625504257062049156168985211484848832277022420261137796493725182795500705896758820517142925155974146018696528566508251040646840980608588932789430603162715614939047006270759793693692115485754919016771651262389667595390367823505629924838865705394546489057017622038714170301606468465776979333403080387052154220985334620106737473104832551370480118537133426092952705632933249621273988124517456690795341465319130185445046319955193850681331510788894463816238775564745259070921660976931357201860905345442343576672867832537059562805391539185011615335287487916687653839637152458974551114796289069751888985958813678416471815189382554378002441949275953393214882697018469267359665447474496806873264523218011653485634283220808299798662318973092892600711298386764022815369635596222840625145137305244308014399998369709963352582815815564901065421555881688054033975891631288343442373606679018353878539362269637440763499736005827841211131211074487672609759915553191312899827216160239755946119742703228917435864464990248051033769588749902425182194990431046067606070249786611157464028753094664674266760036014504609909255664092244860758816998865337988600487852953897266422113626853628786725087839779589503783779311408610115977062146193779682747145192973638299191150450032605215584134819858430923409186580945145200655549665015239102801979568448009751387735622848058050897471157229510639004719397209600451564934380093692501003207724226633325466258594249672095491717990057099418743127706985523938823184898007781522226894824096142368921042076795741305016195175703514939736007054455765855700556270796913151677327812301738779002005723538652095186268121965135321970123405227512710091735769946933282838169831652998457237998056665075948083190342122211777728561311417490397032329686452418928976587407095751232860530013225227901866955045914680006384490815669378869744932008522630952987215156021989171637779983026501617142311719403905664020874296797398337199918347548977538321537300508996466837779946665637209134219874820765224936872442486988221258740572514752574746982483950925225428682158370626678304049530272315660141214579197803478206151810858405518557829372250292885786443975144053024001221340997654227730182023668848813453635276589338622298140525650974624260919961455650827823819735863521903339048154616388188152416057407484684213138302417721887085921228415345529592214064039919055816027418348872025542523231087627069697497419557104715214783601302279332057059197386432936575015975561338759048322722654149201190027606273149975276044755162830857204020736918868461235717362613118440351616694149170438376809350277183063120983002593306735848260053006764556719594334391255570094581386503523677870537090120988113459719839330642364183989536938104048964593530139656725210384145914138299642487998703800073373918078842386427273001445639413512934738662042280960876639611762264307871656517003774941318876584326993003813829114013305305704997700763164626575005711537020809915724480780992366342245157659111118971929612898942730623787557851354750494539063638891668268465458388446160912942754570580493409398668352225509831730319457375114263827086930369033023579656911834207747748234465742818372448855594596666877688902953981275491281014058214005970207738734449867389911559452728045834161930084346237175081693314210294794818969430560506488681420876661239506322565608932747701750652588892733120161961199280524668007055282499680619293673642443639919177843029916184437197775749216320235676150598970535796236726944993834399160683544666142729878222795213283299454922742451219013469697543553680231304524322960568001598287296277308358259088886603013200796836997057948579868012684181459266074848686934434544741784481191016981149035386954834616080021930407539666414850768397217434335308692082584213151676287335160496711599435387092641259341985493800633880147589435054579401073248928223479946649305785291591639017501448276283805573854029795374816276566776046266259950348238798701300860105092814767342218701835720409861864853786759099659966043661083286733424955332767097130056839988369688166243794003620197507126081037919758747987303738657069216892824004265938270526106123400082487856698893275815362707117051864926340884891370463213431496251981884897223952336926759856780814094300372372087228486331105144218623544436040682735248779507581674471545192550451929706193537370280504710850262958733444080496572666643156089098354212914395590204834537181567534392984233044099386706222778141575488690807635132754238270038793728480086119401072963357021394694874845131407302251370142243958752365463021350665773369810488278349429340907251559807633541270848730108025678496879153366092090215033203061094372260015224005233350675313705221030250332277183171114711067477528899718136738479793839609131611958245979359518552668140476317250871016144902783811255021338197822745762277047064387853488658360728442897936396773723903469031542289491919325579134503512538337074045584348465289261685453402149167702467101529994470070511005813390818598287549172159927412643737937517371200569380744426482087235381256488954293594790645192572331956859458760672218888681219972066241400344153658039499342631602934093819558765786553311001417136768308012161650357936381480150723407372301575549696281853970046692081344040333535393924918482679734597443508646684231234496698100758981238659744535657283025860741218294111309457618810605870569221977428473544846660781067570408037411584873348822866789431676305257494241146665103562143656184723138055972239859032952096421292342230123944786719620476272139456786788079366759040928766657039278516636866276542475182252849535396904597727648947593616375571358383878759087929722792743781834121613465823179918840717868321255868181129293652419588152765384403976543448045106975594328575528708751525095122907647922242262811786980559192099626924152892505396937319981310966284113422987098016272744422169918344069636751794220303937013244442913947302139668948474160964045897816040092504877006047882708056610905756184626986675877362507787067970232677011947948853470684215140604280781863945979867179238198880966281922167843324200504482128729536993680642069726608264675855971021085257362129540568281584871803770650817972343094333863742718630654376023906273139212540572195249129472882150800828086789839644432522684537548296234993785607982969539485281184934966449911173777044934372228429463795657299121831383576089130599209971604986133552676534294562141770255872828576619204354041785159049108014345940328466518428829988715560169609311892917858945947205619880473908829813562679180175923369942614460840305211428365133534563175702123915151769602394639086837898496049620620435750318449824312680341876911050272725555678263405274606491888943684685886974556611406786385321848810297658369527746060936582638346960687638989916695078750913629743914886619734506745726228651318577441631200767569626259965795265228526523556826417378979753210683858889927095053554284492863944126063299422440015221473245156652622091429932776252001907359431382083000999795171699207614675264780327154330928067995194387865170350612789658209687524273318424388138240206710406047934969682465803185002283882864232747884555961835030726831585520560527540693729606321655964604936854024181233652501742998387132349089615347939814288171144658784391378917308955809932013671858778357149209432226068675111709755880411830334746861078626820172407730748182461722066922784787885007277145139752736096121721916404453245612024413461172927792585751375006823314766034992168091664329319504421364105411082889056446742505494789545918564298831370260796977060504460553395312326581149893568367478735511290786842177028386609190012134003993147385335892281180666987112407712483883330224814964039665591466921410414797112615048554351800824780442288288159896456288244527453422960757861871961951650823834987356754706435876617428768318624828368571823372955984544516827906053015161431201905612045171421614540180414026035177321823662428876542627263243486780806414154121120439008033837578937625992128298120974492111699822641548318128599482750135592753878028581548822330932817169364825016067887066902473638857531013291140013459736830149361637118248912086231191082305277623856983960807905580053368071809182107133366975951056727205465539303127861637543087300641544284345471393746936654753392942120123960186386020498438396144970641196942117626754857102161548553306821146725561638208945850561801398489420316099649368044341808836317659581494023232716625993496762513427216867020357380708404638845383031788917904051933372405417887287064299374720118807114986896566567742659194265029384445451556441314637524197160206734873516583949272747185548770496930399754352654112347509944441515043130754223885836671950820035820917762863230526387408497690054436257681282236886313102827257325107386344738813087025390611039342672407132030588352014740548873057357732509439133131717834661361753198851545579485785856499288564611996351097060027191290253235392740975716707070194169084268345037078691350011902780594287627085738425188787864602684162834931144472006685436093172396096230932935209749892774166532790572669062813584830071977478468638085989701508871117319261559091021516281221592175923989985239191141472426123933790029301842517816156972403163004143066511554823242923417971361432288757992333590478559857719219017189329159260426151246195089994165470216297861581241212678502624458734057371951368402382076133124686681131179006618918883817938082882202872008635394048866948574375141380474085684933096294539153458519936966924663420374414092002919098279149186327479436066241566708058124297880512835445282129274141835498900974112940552261923992391521365664105295803627711454213063100184699084767560897492079819244718709583987865911753615912774623920929756419357376896060954979287709996628146671980210009808461066865853944544711921753550684356155258170157954056060108263835800880099001638135267831758665437016210438252613765572955318002191904360852463874381753932089407374769996526829205050017282450409417696395054803116366865834929628166508457396132368734064526411067698630689928015326378580891936055322394572849021580567686454230699802159716773174399898980835191989355844861580518418983929311691410918350780475611426864787154387745107429254208027335032726260294346238187028509928874981994041659479997219513596625493791477546965938978208458042234003798744702569077542150587594845585764694790837049124495073934957337397920581185203541549992195409043516006232806670523602464130986200113669984898056653790997176380350927843718000358715884122389515391770744518934730754525769832739413444261265659592965073424595375745367693673628911535495383143877157439838581207302069999959914069422889601549570721987746436322838251583090542151997487572505117716292003556052271723646195547182419843202300700645749338405376423088761991537522233236274481701156397331209594571622325314166121871328560022712140788557053119429350306520192229985968071912222117371304168647206471894933348033648650732555012346736049283657437457793071253418742222845977029387124027594783852763030236685784598393999434265605592129479676114072647754851147299772616974248776311982265884579022644052541449294502552826443975096037058119803093588076777669985234788623454496656145892664167202671288190252905337528879527320243409781883857415501159909404352152845148679780121582027601686783868850851513951628174829395475685113713872164648478653375730149224631985927853697178855697871556887322604162930192800209209473905022815464663022294242654232291198806442046620426024327564307024838651123806495650482184221821289345448117178529939672747777037792040576572591280906888962558082802038962924640053208752362766820724378399356112868072750046180149755578851789832761328042330838577652622211854272333170874102924232173896646042555242386066176829761580918360823476505191086880181906243427041866128229050931675874302121563990470622301271069886608497456722736477570120418378717124532493161717428439668986570120850534884935121606037851094659761498276998115494620629246256963808480896117819209728336548390870371845447592860041897675011925603103185424044814198607993135948313441658192078947729837532075109460819345510288366852195472790796400085866214759141629749025667688202527785460199588657069680853936560632334670431714889658596765081647614575175571019522417489275717945781749411577066744314382483726905433023448617407252231723088250357558850056596503639138308285862676420011846439717074103945952789183741601913359391828099834834635455271276138803911208236724100858604572526473796156147843630841448508329323893582062331204489907012021984237393890497718337527263699974126823422297920799817708517874208221730620660073870778378802612606117198988198233707557511009172745447090176846638454740932393483068455075322446316267417896754008785760785324705115364629221291167875334476183188526424669343940293314880156521749061407481040171306701998911620740627250542545994445379592082467865609194141309987059699338557292566025725440866753696462767921733688652607741586371928746383946173261923036797233899139483209864399402516981280119374595920633685189745260827643612525066579788195162952797855011251493922014471103372753583615161892860477120291328650198853637400936063851308308087791971391159963404104656791845764417265990704881995499846104835322016294555481934182300363773682198038950156224319151680998629827138553992418626683298869907173969200193970905236852142229065653638779582900482326856683705538460121734141131299635802641962551045668572693265641948090072977145293235525713002738936907035436513779237798838359741035411612419171644628929777329164181280491055497566090972330163013643944869486068185822879463911376189392374664032418469191326933837589428584205208650861542423725073790804180805147527888061199745682172199776762755320067706399249380073390871828318500032637811661347610372441826382152745095853806326018849898570689370734390616312672456907791798226604466244286314746001268183443029013213291743579230712747396622144997795311560087194734163382148735655512875476945586024009166119729151417513459926331691006604922490237554199775317268182362515012295103847914971233558670486196484663803108462880576373289952310519176561044583753401356661128860204827600032332340967182848572446575881543850936136820541269254167420920711603166384327409099265494688681955523855173189166501927010396537561596125749221138126464973735022960556679964689455608032938604418657929581031172447637681997371156579095507792902107930603959166470004291635587622297368073857090782282533940825700292632319267954814825798786351282502372400317736727148449834419941549562755191911799866889329780735891195710398964405120458085063661303752427053364984606085054324366114587773641038737319196176411723766751190610944473570481616934284837855950464906395843945112037202069435494547027047730195704268835133099627497353663655880858056476925279561121008956604966451222807408722214740634768428391589464951601962202651780225177616080772918642801500581038204071332353902990586873313604017141653754300919450990301604526189351408301890713007640662725736544274970494539288627697925852888831770318823647089684135656367128063891203441687881405135476957961085547772344790210126294931907331519525397586007337450947111788036034705668034913712810797913205357612222131443806158222200672739512253076790609552581264391261699491481064987126976466379154777430368287034343501506205203006384814458513369535306033740997907616934891388771086849515740759203694074623891231793011166261978128098707484171033821096588219673187039221966776554590814503984367289950823452660881159290349003786557920011621144929443566759871788973944837822915152815161906959692292735947529520939125072671768292767025140345176684672043380678406866539406643750575153630875549141511792315295192254951182638418454282064635186793380096365798308366282542240653231757680622570759415432145295559675245681216476992726923849395363877960832845188070535793943332551307768378253591742294566720581602682126962810110283431398480749731166798820069489161570747995416768874295469564026704936630957621430041126945393353608964761701967569405143954833069843532059922302749901042159628453810582798910673178192728940874612713607986601485536490712026096059800162810923396891346156254920492124588324512617776046515370775321872088951325795848338494152402915594510168278503832583693739638656022640128174677186414757651722421330895317950925640723185781287412191300231164276264216414437851801871298259576467076060185364059963414718084169673878201766336332161217268808699121433325592485143594493007621477922098517043061239934552741221715960951513917418868189059743591367168116564139284493282415925127408511218182371675077871893433177520979466766068245872660829922599609612168137096007639258191490762185465016245540555125900886453748946239571281959698480854393006948268126180777798972693461354586985637506310187113377813795294068162458451629110200402982205553512227090845456260262641929016448060096814975793680328371798159818970582448565302567846564889628661680627573079399278979456928658789462435657732198632040830731409262045651785570830247764688549002533541397786280059242084581796628342681414481829475386828938320445981018353621379928098900192635274490013788868976388341298302247833454574825898493253747802796015163113123969523659500694942343347406452496038217974149676299189261226518642944706903591780080562871105316452506110751776911611312181792830027803621134565007715507455428313869685358113349862512807475916000414333399772452247741126323394242150937253721818101147820891238127990886735255418772731574919289028833870624533040044007152175345615358285047137975133797887699697386062031790811480151804151543730670268251317709273650235192927434729869655756641020554095876464108713615849293550374086482711511225527842139084568447011246878967138698174319445632957133719193824691106357869661435187512221760861022041855119472041173608487325256536463100891636699246501307738992331531803219720961653691259192240303502283235040777248129162024442382300897679851457924302773430940837952864768883519268668809928097795157349587287724512227355794546338509778675508949180748212399809756763694555087708852583346512081281094385160078698362195084914316816046623399394956357257527473371865945836075391371189459664825951037053635320417791690300265076726325039195599740240689263672011586389801226777393569672172283986115719483659597638852317556190390230476578815912021264663267156873627956090242947256681902619526535659965753696475417020038199968603426573627590539519276383978081352086608855737788072116339547873553147669392908508081953135869837399177211792178229021140897067259871061166381041827123341804529337852676663533682852719094383087198311746704979655649581047186150814304299902581299070245169898184811564669926978147452115384389967004309843392210483052602452121287544031372974709953231019345031180170754728630508053053640068321359634623244368631317087772662796005194166141351276446223737464248551753023830823643853098737165455995499562612702076252601168555690084032200987294098680240226695795662355933533632823719227934874428144713616630597520457490223487186830361386412841896379702832965690217548921541127204628557159569208255643387477382805663610215536749758814259966632952726268149348089045993788293111822722344926581365648049545426761702261810674924277490908027453462814529922319464000734711189238614578475372588025522731007243203450563504266643669254717051503119427145060393325756746604948007787931225147439397781716964302151399535884799453571731348860864375462889871794668678062613051857084521704415307052692108851126136176098162721902424757570134735022401127404722458951461747363126204718324186427908136179909506928183058185213234835693204732957741888092922559656606270975765788541866012609109157360153365343277410955177802100325009329381563902002738746540504318744244783013180474396411809510196904308019291671825778304616696133588475499881718272043534760863420162636344373392119026621801769975682639401642421510606993625940583149980523436750834219895366592588451039710717850439007663039059126052060975959035112108463628730403695761743786697320293160520403380625495831522573328405539299838446238084913448249490551005848243755306495209587725245601091632727426587522971294418018977293009923144419222718114113555589882109266355640590130434188450302303922106096746443761614346280298265330206740741934343343171276554047714654859092440131898664152501085584605572854763466830575594804422493132427666282294857530564669598255665808890744828584234846252347628405519941560913457755783792709654778116654080487840183381596532056193395345482033676604982170969098177449902417481587576746213405539818811057348907088558756569866257383559419700582779082837838805461052616120536556598992011348679115032605985831611387893713942996768200539344099876634721284460396156732648892853262377359033397019487772219364125219449335059299152413154382809140053096820611248104151881567954213304059175331092494251488773564889412443946121599091612925179816475404194134546940898002687737544645011036066913907195164445350585989126275898035478930655323566400854892548314414452206801099769578685331896139130764964102530547893251945316620781186997522930731636477962089086174747788743025159682759221917150966499081781323448898695012357950131289765799789460615647381686664104207428261339534459164163502345764971906061605631495922713331901857417494702257865146447563425454861412845321809035387524154262663391255853450287273400272340691458578826415019443859171209276476303691476167352418311874177258195577296897124592353220134312304242953036768348585878693189395557568582336787885526059389979333925316592080930275518857783290872555907921418714541159828786652187674740940851556935375748274474420781701285620490114820322854644500875971076365151004486859050139216379672626599297178866440288247522593064183123833847719263472783152716297696040227620060139010593345534328178521091248973900762781248931788783906535046014028469313332475533003549874832048238730815518970662436171052011066797690388013801026576260549463090149900929165098176115101182082120119168297308356233161662981449622975126400219515016227524883865054745569022268573473684027038814328624220351597232715769070632336359089736859921657952297846842409705541399315252465095471597722337925439317351407669851012057756661738098423654069443793348793748944314018284556469156120909222786930768005575005228480532731506769388076458952159271058040635111319633734044074490772564971073365958212072586422266468432401263907773131297885666046758335919555330213129618237253065769570880541999579947889029140368190292308598002233239955836044487862988838462346308876258844173049456443674984915962252921643530627773745323777093541010857745828124074265248493567033759939970737900229552196376182198301911748075924084012115788140393099805629559100253258182796431822892217005574160655204667319170874198563433677242782855448550545206354978294516428824381465216738507567702412742622875150455533671686779191653792432560049200011651835248324907484688949259746086349536983162874600965409604480783000721685477661443936471894927042039584506454085599408109023655831685956029063825587081576171320960499979930634475565403248680129550380301233972723780934494655154147923249106980155816595741281678460043597782041191909322952765151358496919523517344070411221574466951160910983722026018219784961145769020197567393758723018512478374812974607535030511243598190110272041798046831389179151447121186915314631363226151409365570400201870161656777326888138690419025014391780944021144715658575520051623704453012452578953957389881355505123344851298455577224923155939749323273278150686569090369455951241735244148245636501246875137524202463990159385167101178158756659906731667371551913776743968359809701331212984763144340812820010829270929661337384095935011235194009654028701120123067070114679167964519773583394926904783863226955793835138757597273620015261576794325810335186204002502626956723913335783092158823781767773143853807487577681982079829336583541770027505353606886183611675188511829641760512417718663579117824444839235093090900482085040980024067115648346338817661802189371338058232910712114238987210059083747593251940081438117906145908168796712741032439159579748606576302868445097993474146238867736399180437526987630246573044328157439994775518207582914228985507027130029381824551709477245380135288510523226776501726491925991790776827759319791201338837216822388334850726334007305490446133408130316686290689419006315307832452658955418929697816769200824557970561288708287456626865507220407550996593725944997273259666955708665846186882320159029936614429908495283751572542218551862363685284366061851873166702683049130630133963459577728296954402727938572835335348460749515655702599244547311244719846077903474699472508602249713318983099331542325813813557975883408293468653291905799162114397492826439491811253162073221160813540824659762380292026632846071865317535519735143147057815982516063381056860416698900427199562091400686009585707960470706148838757843340359451113432690319008734959980830168910879065713482144818241627139789488861398767112337436744318917670926113735245563270503099910664753933764676184473078620640159344986821687412903644848213797843862033628578058778283619369433665936799195455700577993152637776796968803697039061208006770480480469524928507202625132223509755800650596650280397111396765445159288659011235938911626617828789081394868371528919512088633476096024132808054431590948892293647737482859614374488297105178685476562436804662837975701618842216968849549427908697851584169038793065115207528611564274627826566941917573402990759722633023282127869369099722349463958654059992231349488306396975649113585721044454182422563694474688891939114023721307693241443200501821565258792029237137170793456116329963485059660825714197345471507325931401030298564463672100517282116320906807191666294543061552430932141600984521741767475775987485460488228535380231145209022739230988109119209980942901235551367184139956937188618696488248169099352620425013887494478863373109048761788671241246908313370993846003567179727994905384521319432626279244844728117724077957566988156861179663896341181662569066769435499999842985964950032213032828220673412298897897144155272389810904819865622682192302984674076317149209356285597705984945382498039998461811565506651758549824217609275757683492036608686110437355738441588357365067211246224216744620400186029871061570887048892312882577967659188649659653318311313900004721083064099841116320846998030602709381044518063441260248061117068005212825597405553578327383633366598296311707213354776772163565118650825317643195048473048903393803370867720731569789995692577276543947700631303885778818891677121161251955051800858194623558048437546784676048045007592066515240064532828271053057546097908799054350935298276225044453040307908897771298260285285704467113187627831152233293204003251651683172791488998483465159012640026212923323695818911184336549399561411728509139427694833769321006106781249893589929357527313470188839640908657329883092146516652648517052488710971290023427015773282126479233729718505600268807223493620755071358998117512028529025377393096757586316237479256375984933941258411937789118878133624888737052953983767612975428494859137422701279452290396077141576293384653795924268929365748405762192127130961142747247409758014427985861868621917035434375196520267886181983160817602907822027448455533000352452420671031091621611802249553681200797402106459086284979294475236341240196573397209371612610221535097986886146775709457071596453521824635056299557416547161758577384719705053157108716188991671318297710602603043377531979685306549046981619404225247051668302337825729720374960586799084335162075282307253477270805852471927790208968669158029047724594146077230541152600621056092743954641717632991490062504734493253173428294261547066064718350502587551790531792097719389421280139134975583157753144580320436572155399553052125947737883607197953386329831140552801825328327028478180842193735013799747272767947516381326824460549504558137211075882283118842723376016781233939197797898065992284350796102577992566259548842008867330933992726434638673760443875049483194496431247462605661657586018189400438296786929353716362302585727030605325491688083094596291025203171529600530340729492638354425982123443249415318685286258171234960355487807357482803538224567383785867594209469247651830513037581262554795101051572091738055373089544218545706683912661541074475359494459755097257213995928059320022928193858502040586883219795060566208487717233008974090859022354343633385575921380496515825796511599394765171526454677158883039528397599734425027260467541502207200988318021614304325273196153060405404718028633834677729145535731170014568311180014638134920450690829516892893986150858439654827784963101547436304875127906292555660495999244301598076719268116262372793514025276419389146687674118113125716165796238342832328054393273104643135654134679472862370871329012768044816166585304128903750976082734207703059898109387269070345385295172393068609966443721351783821404806840844541543062767773168825264894497879700439987598832918147671040514564871219609665877093929588834777315053446463836300822196101576086263869776638696890875828626239938510401722687855487559464418191964314326139643834221334767999157833188700013051734652267117579489957515177070856302859337769213185463011337306198213532744474338226616435684726956215668148457484562692596790662749176421603215787011680334188851138267683260809697740782737270446065060305146164010157645951571538530825752714084438405694833853376259979348405082455463223991263840138949247360426325432229860684601077821911672938684655078750690994255951805542108922790766001365376114845243395695571732941105334258655799216553955577602916048858818476024297484576296684593291742004633604068517335214868948029407921869495882650129381160118101089931180825395838433368275584897871683953504509255874894792748191098950446302960663572784333111617073984577992809727587679586422302780455469706227408274954807274711826917584742941308636591128143088020438349947108598770287557138620143934855780609498831797538799585229739933044496879993375247106792235823953128146335287657250886300792362209191100130033681698827526663384971397989956970373897588852491933451564294736220029924011999068153768978917108294654233695230454010228969176805964614539040549932509601792098621090034553148537451859874032210571183899903902913303805756135233429660673311692498052518810307400408713216861223499625018564883477373036324433761746033877559854233588472314893781925405827947657283271597649891930952076496408477112008892860930246987295538499992387252640052250568172089745785012692379164937802349150396902604335444636709152498197738387939183021729933377277155255027350885673786888076730014085037348454845778790937589797370601372554680162406830047394241340505906384320223469504126339466636235694174624301446764749466900196556831527211769176075674213267883316300009546776941363972847674956446129828740680089963497651919684772283186075938822048026249403461102214300554616375631293212695136674820450991753335601433460954961603965444404133976763612242549277635834745361344697804154264315387258252971688482365027510935546776867716286597346461574971550883036672183879371169946156736931083292351859203611003833527437932348732573506484133599005815464907036115713091671250460669451627056448464075684249915131529419162429405639131742224967741491071019025720549773945785587916904872429918230115459604108694294809529009642251421035288398025097371055882621086195205249637758791038156540159828704702358237650460378903554738135789845328592575224715818933998330085979703350943169649950161538950355350798839473588069246586710037893923631976541817397989291678812322689481868287441596143489351454567048927898586535912001006786966944548265494371208955330336090829664925700260978694535510714968351593807119714628436957227647847250917498775446195856100816491384910712958319383089991171253684438457544201956043277089741306302344229644075912834774802079533727667597231887243435572691614783105862335577436200379931160592450466966165840737540651379832661661935326971132185964459837332915761029851848979266307985517710964779328471779690910830297288309312381546850327430942123172411173595483869397984982588596878215696215543599130516786522894959105371645656195395975820240904428512541135424871747062144056565070852934049270594156663658610403898199324489281319989621328182285582721985816452674774323747207116167656523007606029416988976243277592687319351108055481006605982047657275558591433839966035439807882557993344686797283677390884371082800470598866579876703882765486016696851218337797750336575143125122210195611877654343205528400948445315671950076173432415801579138609634577261696575524423754009465206418267670272239486387863206436976365618722449591257718874629546942482931715762397013317290218269103944552184742067091203444501244893609957942668049826252630384832910630102248240661498014685026250936906211557534083295481326597175478328277512277373247302651929706675219349523793599878726260007717104938375193811986817524159605151249490915053756810692935361088852010972806094984437771864801738178187971678821135488754762980749246386067002428767203452705617303332459184548979462100852781596451643228852163226243458796707288702227446974807204722826675725419281943895649339496726971035547451309106233769182454318388759173764927892995057040316098012457202707705351999828825092801205956117219419473303654572063352521799406502333336048562306209118940191712591093389234218510175067628076059705178110367084003846854513382756935554993357617675063108559979940684859247117297849317892271159466380421251525150378165174960353371642864341338781137392469839813391593192964153940487626071881688360034641841744334361330474294367799631338799653555839929030916458291252141278497860721224754391843573552806990714875295224813686393131271242763709208623498035361141018105013190528143957278425702907828102129598762816821304641600110879345883449010994820880852155564694617965936598625898426115187886789229837728528066363193947033656028295351134322891673235079953065272577460432240043330317797902345050088337678333722579642917567643194150348393364826365883275919946607584466711197969367318175879394366156746763424147689612039688219857334318384424870379043140950317561393896820282788369692141011292251847197441344869932375698065071772357646066844882852280108066671466419355906502360044301546663362590622514801491964651904682635326161183838938015529816115502514518570665602152820196263686429175248981079256695994324625868126856813396385535126414569042218884163827187278866563642912453349251464078767586607207364030962352615723689413360778377988121930865076630561295100968700085049489448441176141167622300645254252013768492829703163325807071421598582802669938104214003059676819863247016455220690097694895948110591708562493714342600553845571521860602874556794551836726260941520812691288183706591862892712513614488812671938123452315099886604969154627780855096843303509841541330295442041496624781485288207226756330350095201896530261140345593164490103106830439739699739837785505605184534696935344721151570408106698045410756430458690506185448955567379500613407714033276513103007630033028725594023522864196781190416108713569777715884967653011403255662886007597838221930344969405362658450463429566339106785141590288475514212418636534164452885818849219154612265946048505432180582561196844074086273709746123189296825876929346776416851458777721604602364631402622359727451690290728341575897398430564594929662104663251333771755201807739182975765998607204394299544075858343431276197502466600193397755194025299453156964262282443062919910290339390805499500940441441295158802559307919774583097993827630584309209239756831445741692413958955307902336949352449795738274487039757000248700861727773438857578659753518732445752189938488825953106223738046837493326396847179840682445506933738474304349636186835872615728841980572989761312397220828958933398146860347966488993679745883916550453978419326850095433867929732360238497750819615045963760865613478429931888046496122834853868852596320850125055927927640160739339730131208604753110010087033781820838562590338446323449211314843027642727962876996188613110138853140253394423773525594906995067694049101333120946202110597131300374198015600450719318835217771459345007758579955396287830119039780937305782139197568881831552892890584962293950731013939408875763700950026687333265663855887557345226405921762289297598121738000621883586891358405005068651532193547398836033043986871498185746052503320865476580697954614427989120008172330364205361132372275375850674443145740392617335586762230287255870378882523488847623825585102289740795674952073199121225615061819878530345281617427461291594755970740099063151779365992238675899909618589613195284174973610744366148470529813784759896905186194550710557473813047353825558002383069904931782378956152060829352075500937753640695605101346699415724515867355207076236827737020193524849451264214503597277196519426446997781719955778562844146137776793246399764288274764376283286396169342271852244113616273757598472275758969325508145774659151732281774288896498245689113863266581887923114035902756656625432568066470613334528750369846527059511465081675095350825430950326395112563372526969183093117440613931506138900956695153993184696588087558372064381953726270130157297501526593480537072591353214730701522218311476770236308887806275064508589562355189697031666843061545669864875700475357729024324415335029445283367545685903694662033866529767271354691916196175198374000977622920976772458756382330480227533272335876018778890491585988127282210983767876563748471266464199605450940336405103324956308465984661209271468746540472325326083261530982075443259339654759087630816358984627182467500058554583460272858398456939889957495363138730116902965002726989525714319164246799672372256230276866004842418143375016592933786911405532332110115876654784132548935666279347638208481861429632418245350689400910213222805011712804786032179446472444930553638976882343931471172784211635085664108750449808468244747638613872826354324382367364488269244808327795630087180654762873283131821135502578722057642439227315628602723737912058619656606372744286695537374457610749816632589054338469045196861326281345997153597398299275569981278668658308152310963142058617009853158368242920138689083984253656995236219799550359313656782956781465405716257102051586821747940369186129169471235370665139770560365392572771790656304604124612454968874722460178996143994861488741517593937756219537710393812792153485252078232906934800492150401691505724211055534351709139309058916039217060346298486641487666813175354565152798280142530487571656892643185508187479695861161192659868682215629795746701213867915593471915211059634011894952280256617280688128518514790755950141586933406400322285733133330283075798364035937170353808570550513489215779294795115291711881936192186649665562258146954301310777167428464276730807854296004655010739781182585364246862001094576041887213518198688338119940808191284282233525928651378933563933172394912689211763325829029121819041675659045273096704053950210753123547604178382786822239709786482132777440510650337756654062443230849182212011310989024210517839314481272613766062987003033625870162948362362861054357896525253938765197072870017691559097979186154207865238631381085522893480920673568004247230371828516060485219635902875362801175259920113174102938565218594019227867255963510786346436422819873488204318235567697552719488214446369414207522078333027401010626736331061444482019508888228460428377102023511193083814272967057769267025348104042753418544094700720955546862256829582081351644916917948662882587065938790708680412120316971312223149483458418838990934370495476068381669640558330260999307773254968743524384122566804806921186883162362239111866582008137682399495806017732779825398368166516278098994541703997700646296933912455665151189464803754076434063414818368388368690559742346638147628012972897836340038705224846518930939710806622694366992292973710500213279683344285757670384378520505898795745377422305983724775365904270469315147905810787125398284832614337329627372652012906116092535753686761083211619993828653380270532948986316863187163734692460178902094401111027824112958568962062657562205416149032735430985202550984332783069207404165617532600480263833165683182822473456753711194509492357862822702032245132970909824833129464892570151184447615160186388469261452050888443397904709965862494572195580482741591393918955392399842859910761288037215571154419057283320118707515011554060002677373991434146753704188164188782984279113207041898928374703097760580189074604063866539438727803501042918695847741106625546809249478945449207614041513117106889281435761873203781819083194689513994850683546251019195350466048034654652868134107144898496207990214114404782266057371923568852630024686775085905034445309165321042244761383935339976374013199016855947944979599118087273049006180671692590236062721323579052059825960399028542099348777955464655716521501713271826703834651237711821598440070771962463721157527341120235920680116588173185711310000226640927842811027985240706720045651258455130687451620751307504946513720182213765117890504116381923242480632939793146645783881777297522820620772507958170337160263491010642447626353825731329154473951613461407976384005136579470027518234585704855882493670814451409111200054897799395058387946071692150807912165173784601026694302579533107278139714991925207315241463911240823043013020783730318656324719873301168883822239019772375511347172534168565480769259043746613555702694623429545223027261639151634348735815799742777457851564808845668731320281770575954263050272882894579032791445387207741637525186531346212308556122517533213453059942858765118781606919007881001516204029642073425431539829601877312232857952308015590687670317354982906141040701699250092799972794099496891304818684419118961455080324253095378980342467302854026137428121978654313152558501077870714660992719641158592796574411371754630303774884246550050396166748941561728843085671394249096818461253373282871271397969710050432745039719694463245384426466303090137927759606031779490813330332003449854387708769415541935666565675531781820551523819360966084534304126913579977412702574559697712542186892247024865390019546963155167538782186417859062606219673172329770515927105757042628179452535980594211130358281141093248762076249500364928794887064839617552249147691284053032489642946051001703011417878626901908334360414624983868293857516270339227367970959726080239702343145599373636785350092056503386406541183960974343687447286418108352484134628049667232039539678081644501145197892208916794860706522175241814498271775205706807463767396651976187781801062771525655919762117480074618545563437715058780921370176934137185786865583991561542248937892272520982672726634532019869654885766113193032764950858610977927350153653643879041049932125442834841478728742351341819165424541125394842499146094946114353883456359429896575300395345638788282599672759758569574105941131305164148380676533073741588511508189092057571106036016727627659682747119934219242155180160462316760950431711697002988128176551386746457613417039760698748987808812559467303413925725218682197511845894462575581760586225289387737235495292201880810513198495346974266706542839534587816052908534948753358414606076026223128917838076198865555540273380468199246681182639203153664659636159647589502097643852361471342277573501838582670158599982391217396535351476863577189041711690148110649438480636554169638346701245500441815627046243823964270471004737839378108343619840938630051346208847073257408824985279258983158132361357901668348178577043545121139335118517951312955593230481627930135273434451847225601237953232315698891872126771587838134864489898855946155625191058462424877623309337672725423019946002409228617325669051287921197796763501085180231314352805635048269954893015768186181631094901389290278377931396419360490125481119631612579438784286225755212188043346979151411103761289457271823744012597553305255858859488924375338811559781743759397446915661560886737964600784872271656155714178385121156137395333952452474187579942301485273756063878686298840875099334602140934944941884850299113019452414263419386463140301618308242836380454242486086481589943268919401098196507677649266119311113717676392740268203907855509444234521421380118958838584909252355148988825625483416042974978765487199118959974036997178564117423349645060130135937224899338766762505222216432811958426815138871458869343428102347639172273508121688810397885681288330063278927444362907680254381841641610507890175399704282557849473998013407336103622546548613825740871995182591602869312802441645331896987340739598565446247324647312691490400130353917605142858979679441170983627689427874234435593064455607852901673881564745574045605523383685711131519624163671920635874292376073214105982643088177046414255716247302103322664688863037152821337692657392514990051211426055880489509062171117905300962175632721818510622367497394619439370792727626670699786704315310180557330199068173423186971391036563463358168023941664083229501102799155206935295713234501541652553339945181643781248713405473640672714528643225126005194815900693646869094977056601459808865532813122055259135165937704816146836532826942366213648625164909439543408195638445763935331981334276607986608840997278355733053802540534140494315273421137385977424475106166169242045295169218031696147595722265265146761755755806394606832815412810192755547628114343301331021393525298378385587157040673395042561984226785790855788999096678645928866823885018742725152276729139992592985245991539921568980271242028449528244567351638868129641787380671999695229832148240895203552256937283976174947106415136206998307816897766610709103676621533895143968841894181294009624521032034522563858060966261266999051714742477817005049359510246727338139807817038848267493219877327589495680225849542418893904488780664469574022588703797875952598035919615144929424379628653771439451730573210554275198211787602106290540600248251601820150962564918917451307916285396873611633458363546272426758438198305618217893436486453672909402790768913601574195959886531984316470199203187542577111752330811325223878095945719098035895462640865457638845966486253410116206440281316710053048338859620931353057819378610006790387685689027531021236554883714107157627117498950992991161916853282733193309105561673090825218752511818894961706334801818366026835965229103200729491567712271281773232975326649974380449969386258108615027408558713770764876683984243287534928620251904571380523174631092791734258987218179471224637383855457627950115001557059923251047345231192550198578270282155904989182522595042565450426262710723379419345803261656028465202200007318107296048846222538412251911561357153507367881215626194425888790136361467170845674063984284531529867059718916805214068292207699304049790010467758740975209596493493590116602954532999329199710608952925496128749439872612950324749898703444813571378411918397443553168386538155605376810378761398865239266384215779797637228662543235060981944302063515931585177708947406847689555323051727469943844603414674623915307859464245027117223580257032379909251028565701071491087602357591637986235357502942762091311518775330866206120665306515575093207492398910512098129547335474105692098728400854203320750349401938203554543363376946547151291122365543069177862357760691669608646183189873856970255152992960455207134937625516100019312080140835800677375740068094708176835279428003938947030349128294753448777011260168944550424393030272053181407341478692257560394480209439086596786534358252053428565915545548679913449049149603263814278898358606363648629497362191256044050653040648165884776106982693592798433222853170143517795424924483087952907393334630973281908577504291188231565141822842400851007246720639618032223164101985069994900081114899309495863605861280607366107034590456132055912139954458742485161588412526944854336229824466594926875821742303695552897830142719548488874521889505489410104165104468926384295159304498512025143004319080883361571673000117588057629704797728371426936308921813961316096615016159307451883231292743268934973467106178292458273353280520232728705560243363608299241706010621509088222000331750476116606891236367806470401084865345161576321462563221573892668959915455544469332637494983934917516739445859606267433162974167179166479968812064437703776539580093688190950841815193395200705746460475310681484113090015469193740651258393271591116214551274117733763467697131228765662766926995248792365667936443656814954973991539652599898493331713484557224699419711142660593235749345506905452494052221041946141108139908345295940068674871736435119155161764566825593958130652763145966970687295968920414515091731396448782167786086198764372083863079429774073315601836107008446515756700367718418018892368775436092498947712567286378617467765496458919772275277060777474344739655126556423072272918035579082995614423507960383579823135333550864651759915972124298119865939741759187717092330806949049622926673103201256996984189254665084109221887168968360385844126196923822636225552593943757574756200941041701348751320483400935685788305358110677616929538061799236847977941893345048388457146680469215982369571320828443972156205960010088912978835297825630860595866757320230286916411205049571335653796496886722641126884451941826528260635262581791141440939026811870555808872215017773748060620224471988742124239431474927656423485049416870270316647483901176075781251626179143583127709435721051811147003534050589397890062934765266275410784791826478547876081438725254159286339670282348079194454379954104380463012350852549526982827942216661469832921626106215736451695114768028667300301942281300823221535343937947336153031734153587581795484441285319677520208832685002710709208441949915997091402750296998504064251245564854349494036257661726235118647140496620024095460393828049037071018925443309596336182205950536848979426318953338806029659137133417663337657622701418407475576332660636103758306104334555766099918186789470130183297110777782182156651021306171770735330744803468257932549521241760805944016863409543888511249228701490503633703013310635541237710734385392912872859007138424139496174892845945666241335150232708255231419477742717442449190869406924644537981371363641100181105665338627880765640219872554941505198327578739094380908294118470661879942094992734100072806621671126125200523031126847432234056669122717978134027974530569558418040296564764760207391650709816099450819253060886625572490970055550897808007911398482746957922233709733920828722243951542848100644282710977944410289536451962852968838794428131866806024915872514520682565266784070356759194167251484571309413027179030068938585974783940741652238976737531295798114158473322632529428009995796454981380739009455452789139142456427821709968327098242362555945947030395890366529459980537313336226511832495438842766339221502628231343340329812020145642274647079636480593236863884256915161229326568973077003752343396937392769337303990806559169085329648765122744355788949749702952988814962749807833614315763510378329929144205652486350217718849263191238445015237204442853120345306711928346987944624341708078468740114436216362831258955807096754623225281871840519642974549730550146154964330431092345558062140510262996184974680484391498204059266396119752486563385966537233264652979404366663660006219977782309029495296330929314257068542793324141652894251391928067225106269725079543748692329398536954647077678358673674149335822370905997187797576087072704876628774940134065142584148820727483584531136768072144267884212074864055913644579026042989294257344976067500227858731618534393356935691829620745897287654918084567413950199415039492597599165962743095518293666873226925243234296007750001135398280389738139498497735378487417217856955056525755775352707094354503857389846664137894244351251545499099335063152983956070245277363675435397670894681766383774751052458220181108651593304282882894832918969727099459772246971229970749445709063599828226151252349727027276574530203792677428295389877641277015196986867193491977634899447226684687044031483393353681762266304161535020425798462829268495571022774445889472374523297946710695627597884396885068542379144565085513759443301464692546154744302095797235497556545332239600977698994888488395131893595531199720114861853811341580854799757989409888016608372874610005430405795525361537213723954092919596239802267377815809626034252921000462675704399981330646032069200071224426340771653708759391964781792716311383331619678398818257845147436000380094444266905384965638655117593151992675353611431337203238914863563222857214136676655184673851322235728940433654012612402789797710211720772586687237270317655034674688863644485150835115166322910253119161332623837621247078285052113559589632065660936320885354695717445513345313004204053140084431394522304602118456293034768028730108423864775220576736627230643329532237243552049158803872102992348239906650567846331788767937398416558254106001464581140320299371390720054488897441035208415299663720976619998375801607176541603991420390814646520589632142102333512710633915105791311212473918682076236493123673532420600122090997359084137525900270680446385635033677593982645999438827734127055065334479522217815114600877936745040772325970553908496560602205977458262948278054187519256059349106151416529733382282409739013614261159699284874835492315926508660365352511011229633179894583028759872894487094475594054999961908874748337217446346119847580612918512269483363968319213210488148705193076536895053139160928675936704265571162012206098277828096702232984020384603432363621829630059404514018144224276195748221020263286299600086145615515193462951153314687423196829893356100010169385723455776153846427020840154448142402924368215653172629338713634063147463907944385032046760368271153575771488619715529884995149547902690670333776789638572055444506099748688668048260484585173480133679182822173079510291633286433217779530346719092242262722218436960215100241330118480516663453015922222785314971998134311812579433366435633456024911594460158179365024517706599641576998683222783579862430488973854079335558397281213191660001451446599714415844730123861174923531345879549947603167791107208252581042930875940327962609949801962674905045553416489237060351576798141524057797119677488332313549520310696163942883033616496579149281251092544299227951611163853222639613915320577801497690914567643861613690809018062948266886171291897604256317977428709177579803099336463279843597004424564684608121999223396525892316999615816747241291982454724085799627310691622684627994148321157896835505113380426449642563392687773206335041749936214549991334375399409286407432627206175747307793210931782573663889779789965825220313378491514880519449526472357475569462322378641159760222259204021916516036552533599215943540493817883890266717046587992348221294504177318994482935300753871037105354669334696528289049823560958703399487343257168944226448209083868327502197347644107702591314802898960404575259294904034455383584252097348538398708690958773805605008938066670817236239555973737856819627861844194667524873155300103626619376851333239872336396670204326429747941739262182155640898850542987843192253227940061435546482097099129732281439636602168528478902118004513737744151021904584242245546079816546182495286104164323635924425545647084050521114925626104299831035946629735710803659398068201311846998912515401779319769484101633600239420257362278918619479324268645993914401423989327080563767438845672971232499126344728507909215504159657083471999685322351300618819676642772348158395867564650516211049445526103426818050889252776225800032638957633816280196408593852034479626942667228894509727217473398408328879866521575398309591500093251167607646463130618097259409764504567993884430620421651048469747818082020228916524782701418559528793592686684712613595437290746720992999129706873253081340892453144742735720399939302634077327889979007474800599483676565345996966118083702772331888268732803218080784851615541829830314214792536002938639972057817497842111095093021708015086971604164230322755926950555950207956883983171521199649976220413138326210965008119862583416405747463177599099407576464109061919266155020613667290890108829854954365447731218555704015521028785299928814634630595299825924883764914895359057819015148553269331075687768228982175040664481229245304918062403321579718323775829204619631100491369446504794576522391599632171982106855073132284763439592220507323929025957376436769189815287493524386319293490583539911905720426960575061326382064981324615133889502278781502376944611042687046165284184665201390032206243562558425169724834655033394875118864618495925704020857201156125904454807557086202916738388275063292958740076073351106517471688011251141997810235779079487402753253361650024273152574194556456141264677935950816591198889576812518056586568400767116791171474220178413518285872028453062024805088065047681311283136774313063074166913045308938188515475393503381607657267805669130007525562430858092251873565483646970640055162603950959737501365321099163361717045227700170356102591562208712264383233137949570958230985333832007011139050029657197375332494284991616515129549190070118953899379954026707776031177279379855811383152516702758791019747443262119830607196944767656598882109680266941061979387868872366662670109246556730732682869431104115311053100365784531392484822844111041963624846536990164889456388607849980502815256803003177734183218648750466122231163786048969407534829692010643200105158869163343269303404996314604501238366001081535884838672243640411221093502566934724534568182175925430488128293641579560732834119372729102989657368522437654532813701007001301616324256823736432830589491191925157123925341841284918986818666924527578133106785833339978393828682070235866503567400256166552622726181036444767360313028088418596151180455591456096160037246149276206276955967866934272914692664042093945857815784443269694419690079593691412768377564099225502953941525418181070546320990386526891248877411832840956568142021768594555616043247216013972978850893077240733783192087392322779275845287945926273121441152187220725838338402982299065467459488894416308617573049149325901418486337296228182875815263509564101793886356683758380676701045831617026515357865854474268265047957165913804667472615510366087423993977816894572259432465590581627339664340476866015078748240225551636878212024504398740989630604983708868240564334808954317249488538374243618540616829063098535149104204370914549071252482387834806131820797778805427892960607203263288550797699372797434185812591267456406708933547508055757112697719141949470758909992649823357963143951278653081297688934697360845520447806653646566880080616956499708177158152227478466458307375216423640027660001989133828346292800302396508442851218733605747576031686975339981743804902906337454233983013739697939339622730055533866488257092118885148149827544332038147152262418649606236774227405418893316697644249618562754095695581745993170698314780898041470626967690182512086764475311480230785251123777700931158941877828133021404724310380766636604492368984280176588664249191093467794283059993475350507408254169061562234704372445302876317386327380556627888362791633767355021420230886980396343618486934142317163502854608366707130238304804517783238974835083735766289944956722605227217137267781122493477832824440587380163886857653201558909089832340584290464969069994404053826459258070531521392842032039915162745970133815526440067222826853862554380437059266707455151574260927450169632518708212923842255767172742508985846969469311230017303645625262134620712417658021244951998632191611530343501944660273131560861801009265080612107879628801880888886306691361863268118874963810674118690252019168866589321841894326271617396093415221059658675991468100661431183132271158815024532688122082443014232687110639886747611958658301196642035361310450384278148222497102207095790331091422729137362174488519790509848762593346440652862938261186074424854711030550376018653768665431747055463416205596793318657235665748676181073656727469149636219880662074543265279751899733561673065318679656879484361012705603017747628578959449510729599059149705466992502642310013157766929700450160566371953829163504489832722109582332363319767456441912586534321016818396379912622735383101343896842139740012320651457881964882123454017901799930385463804977413061433237226190310936124106096919644801958032258236672301752228803008409500121172383361164348145334469841796221396898281046413038250353589038001386224399170359044232569586878336962780189134873368493466814131799098741462098453914675300904441883424164595411506677831629150918092492755782490424910031772755611311923447333784252316070831941163419405878003422516342484802655346685572840282175544611631619897702748705158675811851036357974098521053922120146844163166831744705451881937103405180547405704411550193229643739491797843281752341847672946538271392576996055087131670653709834579498109822217312603536815435848711832631245084707346310656525791252211595558724875823671546849331522343709100673886779383872934078403412586420790727492710134515596265754737411277631434986808657678697617265969615241555449630068849521675714760455883371042096619865983923050290793151833526131999198933469140945578767759861054713051896561794196017435618625104439221905154491324341318448280588069207561642965528489242419775184021745474663626632278488285259592382384365846397098123962571599660762512229993376765725107439933748859959840482174449624815990752476202627160124768091963284491298692523414507121253077594768838888417924896581898381602292510356406694262990349332007225228434837602672141158109256646314239338211436471370683691918166447196600457245676800756715811447023322602616460964245140361476647126586726007881072950974815090192202665106678872628900938630398611863099211429327564528164427223324357872051779845148625425069331114188408432949573101151120680893354235230322670379677769686456357764082432012946721615940233834414911037327814231618408710431948725731543224586801033788642362688877127407080421332195855384649927489610791780784484116022634271445120119565415344570675735569217071395244638238253064577377932924296158155204358800629912356244698758066498750520996120717661999332126950559906725174951939328684757809772883043398756915393295826216132840296033422812968128236089744244938321742186661881022923152304292668176294313775699182955329135760110337689773886359380533699804996961711267430614321995377871344656011925997951512826971647549311496019111865302720699865687766936016697735319313453804486567878815480307591854171791185827405290057921089363246855734713920757288191397668475463027187070052919675944173236842754657067991138430500019092987373831594220103185123689888031227267012751248276735614280715830840743711425710333922716230396661985897494969152285393624648572038234415319972518672766323859642750794420574476254248907563564162542743338407895905507974908574530857893669516499759881052704743147403985225766346258831414955856319923454618077345761869774949820580006441182559996289944307750430629832001703041935644742986021370812902049814253741745698839284042787229524826479331265172225880857300974153954594659601118168435551276612978685212992439257951986797281467948364787927414495087369232170260691257621827905647722235147318221727026764234993400321807384884166193475724700166018849913560823070528650575187177725522125812676141970041724918367537176266231714909567156145083323731763069089848895874889884505801465462830823555727376624655544650039590725210330270077478326863404441013260370105954734479208885575331581169178943689285846084018234166660489031371870322984243733031675927260645594424076581706555557775822799503823654763242560146873319208566961795870371502527608111141224094483625188922094708642909812759839466556004797826403779276542776869480973816255455613691428046682939748296781155050352644987598821793104560479753185645949313857463902248575966975877300914316380654444174442488759324506513567453692165274405080839858593792837820833277931478648904379561636526813574398847090446812221247613311225056978892206458963331499050268156282540522134173169108560992100347803511091172399163132922030679651323113850502784193350648940727204861369786411265789255491202597524273095318039877374887621461780929216565618078886645214002254888202883792986652708099012482309626842827023264595571088408568450692092261702478808449278225559004692312536147242304138890807330124907696686922808871810332551996621065823025965920591883045893307603076078463022055248535781612959938381998888182628014110849072219778412005679015446543938816553552949953301541871224218052931946091374781059473971818391302086113595472062412611506197270749049351855313474721244403103663009277107408085555754242812522294610753807386893275084734130071766938925715264809251359249843503656233229549321947741099205096841719888017752010117521835443353906980479177510728167341324014008637908077407474863570018356710423832144390724985303658157988642105406615666256068945216499903018865603848487209555148124142732962937202700721440089646445072673956358292845143339358026399385785579377490252051506844509597298416731931164718352729158284837333078261265793885675217446834331737768709359391378410161927823870667863788213119161450752691561874768812430538341830619417434551891727394731386370026038367356990124897025037814756884922885451727950061257140073784721789866893697159080536033770417580063684589622988628754234261357189916380640350976946198042726728885128717208452671020140654725744231741607576071513584955578736709146875043168325698633383726809802271214742089792296919723617581029316762648484452277836047177185109849306285602177483837013221258670235222732805589551956086228609693183160790341771207212429050601403383362732277275203701396935445602417791111268545768431928346300322238063090145817710837134333235360259749387707283089574755928105643445141612599442719116474078955085799168603399180166298655559631089769025031192073419452098748437090041554210920409152994849991117527952353618226398542773115158741826764568710881715719336722596560200173950446201895326085254892533925453886731108977366694434096502042432157217234148987835050918049313980809399898059499706629266037623748185350465550037393695139154237602536663399427900629628776795526438416348631611372004719201171218383355286526497889312293217786307534754184388151626568715173563920751156334047866255665581689767676203799931279874496287631746360119874306495825964767236180426105091230689122287816221513160573128304389048196007840444908036844833112810598997642272303595896541114520511261361296566596360956443658925191159729341211661640739674613696389466307012179143354064592479556479532321825305601647425220989920945294426741764934685495192996348355364809335404086926313839078595810271426838531533430159736818097449902290840048133460101435905688414318071220204494056745414793068402421264386774501988261122452120987676353305739977697248759157895714836392630409674050519565282178717093627354854688431986294420491058359374766750863221867256207173283571074461358508240041983678648910152184055793440510024382127418537116909044408752556036662821141365000846223936044785635015422809460670161158720917742576208293335236883523541868759805632925594865944706029837653005805748519779420272701238617444752504392984874287129614110047520129831937951517577244770760800633272341531293693537996457313311734061677357127908398569237782214474680466993212242131691992427626815998545189291666621611058636961228227631681196537288060968422719359825315143310647339266455786122371074320100864984017439157508223422180843442811677583723930897822309605061743632929299257136050189490065422688543088130227620071016728839071643931555879360237161275129610190512366527948352262027922264337940467876718215829029522499155555452479060764628909624399492677607250760322022723844982069772416203428314396958839185503521134974622787434149358177165824465661365357805214377078254461832604643371719956147601504366253147973523544494623783841581236739012978224917195315451298949475405867408456080777189858805521488684299711428187886619043347144275966774283787862701219550404621630001297347049988865044768118008600514029229989558196565072351289699983713981657093065668800146125121728495493300464472058827969022505034354704416613510029024625831626190338796731432237264883668482346482080149810252298606617278495027079818390932960042381445926094648463982732223298416400738751519776910529127531932277075847196960965653643874477856169315798228629965377785088440688384181760818861245782731298506851232226370533941210935818433482125654289685449432203662028350161251493670861965342896415221577794594010739114467454302538683999380964460453436941304618099900029637178897565961335244821603232539126523646346287847579238813870864329065745969953211361317556953659331280256920121818274200677172290570134119009987621969079246515187394882673096900811859116539369826200653327477698156193139928830329221551759812036305377270288568031329658716242904696904951193577437506733321608603020074086347810218052313448661933921961369767107272715945649193066785433643903514625766333425667862142242402524504116814877314855342786021801932770538665655268303413125867866313489478351625348000148885371629648787985982887859348718882930146072700957446679652784913973726078936518919011362640255245642814642133149607555684525652379248820092035711167375144705001893388408431155814538965437670923577481143875214328867013353937061865331897812666190917713928743864957165595135579057765826009509700670806812476452685926729143535008938764956790944625498892290496893610911112827872791097380645884088214450550164706047632578804134397107049014883219327482404397375215134810029289966458023201578221992226838517811399430609885353942625274593617745709422746674540494683258415052090439153234036977580030915028521462370815967765330729184653423594127254919875413259176575622622931746774603059027270821588697343777146586401513031219032129239605324086300010887613676850447669356793276779668149653422777645691177373766592683916243519698952859882635921034444576720942104552864802748057782287937415107394176173603331611134103564106892431704776859163482829149617737606038072282292663342220969198972632844559389231497087225390684766101735590765055878007317909693012651395189122667776490486073245033521216698711985224456701514764712914757776309517621713087112483280485584780868792565262292272285594359591699432088264749830627497889149288828925520611715511803750549577220568401492062762712561817834787833699041137568663395595294871431392267554689566457571710714089921890559757653289337674470581133303955895876640752585162461084221802185136054615141139104717756390589435176631262096650120776900099826857260372214272791918310397441347528832929753451469590331443778631141688730077564310434255759026349132171243931044588689527522228368531514891230913997853293736833983151549180120616618162970359009855942883823073660489418968457343870885490428671886360512703639927717470025942061704143445607182363685656062546470523657126773891785633133795095634472416399993079645769093535178181046156907717749540384250765352159680541722580807081949161855184848190803142620347549733445981017776037209301154053327083794548094912675981925279975496040641531299630052588187842556413074958180881269519137151841372426387131664124595448919780222044410508602285754689497720855283470372352841505884844322206956421592544310080806542852141039857200530095021531162289084621167921515344882866008094721392805408296664371515955614472834342688717600131041664139570019144557981430466453873882293362868489104915333897144583657265706220849261765393981097827139535168406368756387896166057865959906815382892630589210683935588627162951000377722204357968659939126461594489397460731644452123876445528693637324642418947927452607104284849561284665262681359863021266617074361561817566026451098269613802159157088403331646984187815008040156609787736364223522113831037951086612511284151156783699724362979613476015851678359508854237348186670108385298284220134350652874622297362386544162085154469199435220693370687424438459601649865655559643071364153537986315899368823181801774358311163913335407360675097050706572484379235465256618161349188101657156725339193540922822445102801984241291403911309736909772051623320846521490617073143657171288095166048080917835809613096430759411213412156184071809325601066289317503915151389274695053928490385591525756186361958910621570322704658051495914807039848187758341845135583802636003657502089080473864200569827784158839438787336764294628138142824579396568347351291360650988345420583014430239681841188211830978413812821661947917943781206228496904857032919387918937620725286129088994188849437782878410801338117072665872232105840254344174435945677732346826356283237503718680169598103951311941533298407611787194488037711002102160788012791137664282705505254257580917018070001537107176015077703379377587253821049268015152907190453894650188112410820206474091171377798712206534933160271603495793310399518411950003345551269250053068092362559499023968207063638658870239424615538637883099131310962319803020724639635861961677522444938670865149550578785274326961100841159023686174898828098460822283631937721855058655100767531972408298735070063676499194419959896730292723641631537456818712629651247958450436872335729538462480750492429155962657231077920085310557856522492186024456733081849652952089879967949432485671334523789734232459947151169587755946658087711972490509781022536444887232582736395906872038745991160321974807409893234555805106885385537422154695134585985845372303205787135632460712488815658757435094548928426189074125604531029859214707983904677337258277211387121659719416695293458056621653500875109585761817648302869744917087121891665637237254061522510610174308046765546014877446016006584657849406953613130130066459625227700054198721632704883904867846164317319230586979219910887857097554871814979793411439146203824915400386389592262647077587339309229462510696861745804859734347190527807194026941464518177260578024305103426863165583242013779357102247007827542713947970319001261680570128376547794326183434915155341544658944489543802913983428174434812696718952039626512651094734931198153575161123034045653226373337844384082474806020369009160411185251471889144813343670107432369790084770365933159875371541674582813771699572847879152700614478071869034576428906041853917850312230348944513965118438949889699405841796564909244367685455389527925353735458984252302159787176840117238878282879910798580992546919916839596073499233487500477530270040863898412014790972613543066031389899811658215217324203774786367550734721452613507005886593694067446053919922409237602510514096974385639620419749790788614012665540785021723310385084850571968025998290111095202081187529680906814842498096145256209382583077898278107891159161145879559678139475134994517196932150808385021071815539012305730093609012279865149758200286504000981903145946499746961990154679019315173411638749231454014582641556923611673380831622355191258381651969379297827527849447668865365724829132107650844619934313531299416921725854665498887017080273242793764119296714685896765457622269165891923218364660975642866137067547853202138306857026057837230420308063666908535518735581914241794519433366908155508890172355900921487150336470648779200630041517370100885533488328397094655115075950184330714990181962067367778566614738268690803709671357443496519634741827691608283748368462532775761416505191035910255820723737276815161624460667783722332753034334484439475358484210772338283575055421898052081292155834038368604416517231428140212438895282279835132531105476497655765000452124581477151153633585334551791008215365450537480702017399714022367155705402599618795493668974107984914085385671398221288065085921390211288044859935441214782356208305581325982145052148907794352751056046900191873418457435648725719669688703880715976408252907993592352183616841722104166496820765773529993142550944026509202988614882424104262446082013668345878316873706273811560147126520312455330493435435147320561023837987704773632002352316404392203024208025640955991749379899194496312110193825323376887427592480666470108815342420150971432115898323772670205539178626189524920694918859251369546474138878416044626472225886380348196083925358311909236155048220541590186723429780647779362134250537267479284661252304213337128464237576894075039350689778316172765091855556762476790806077828901788927163567624936991011791954556489252725304676952389147624818663191360242943266905109662367102149367435333474321840582487529937150333468091467461062381285850928209822966877165036271499372397769921016776142891323695997017633290008283853057290961468277403343469348033663085919464029392602736537944079935873052735270480325622564089932323670151349807523178071192456632835514578918479339339953307674826881228833043833949596560099600195397352644752064220782045717556946659894326219267291509840247645773863507619594836931955354769572278225200643836478943674860363128274641450064936872617064927440364488171770782672866417857964231953751692076698937111306332764088940572365916754950272631063124047932682030849471548256376410706483302938404818228699960193269889365716955259523064932907706049500077636059730284652917016423129278272586834118959569116612532448790690559939102884876332966912635497410038784873853652201579488476414355128379832010972004114090874077400979764902884416381869819027621398633871364842995747662659308353753292001987472124209172169488787941008353125304867499234761303057211771797141212786273490761527791119730669684362952440244210213986947227437813556187745100100340895494865854238394736864347391100058844041604807613242862056486794688972215129663715744661040025351740613150406210465626503997696607606233239841554388918190730671562579635569305941346030855504240739313618887253251331044411335721166466629618728483676551263979996872846909838305087619039164373049541181909371504665700964461526568446135597865738077603371815899271102148723070162342785341502229690110791138649572095757450250616046999940085497587387727506004438450377301877073373266943202173512438367292634628760889869831558817257407135871686700049643397723645594696146663688416795709815119992736625158810201789896540944137558146066962508684299480223700120318827645461276645842837588180366999201860273614367057036736471529146395576198237988939296664282722857910548472245247807188207157213005482785342963446343535726306362141129650174344562773127517019908997180696684381461435446319396811069589678051730284459316666762982811832198059730109511956077767506518098951276083010933740778627567374829243949975511106182642042492171551918174768175326133235673891403486663369999428399946459404676601954644726769038125220444185446676098703229873264670013668150640353821868540902766838755478891455409694253724012609462410575728583068384545969485676401397360814082209882435771179077237379773044480447564616012539268966672244601327570370759566957245293177376934147135921944933511461159065784215262623600919668886167906390093588715535893064915220069269637315465282873520846024716770653217017888646050762109013039971909589767064512462950317374909324589196332790974323311806277053443207735282408141222614595961693844885308212199691644640365079927643101616385144463822989128694377004772821703900013726802156959007562426606071699165608728217704659921926177654451301446227040871628513874328122910337504355089857349674084696628624435684687774399775799406689145611537534430090852429119333385299477478270932597736507663580259731457718089589690910744205073528605624105377585591233859048840085653101614161049415466112303975603849811631458836213774905130936258176012380818251825920812047587443100295839916605322372938788018268833286109709044662255463446642860062839727426685148893099180449629339339549761646455353157493618893306024914902498968130279814788193391092851236904477015993753476498381235683785288930470950606741703235912825836919589252129456483127881941357257612819703730102229841420027858485068096079640300249245284361301630602903206078720859129651513178562695745670624330659865201122238299813771593013735899985108064850124559409656477578154410641809031669093900124084741348549066764926485444855059124109189962258526328839556305621010347591141715744051422537520449867545485213148194909294192272855769743175261625771797385895097553928233460717214248040989988172427845971367792465243246203617546551040878568789373648406318477886815560454387257330569846986845651296553543404915826979567850940777878439510344462864058698563014864828734851139440818189748049284065172139696429901187162205583734026321922256398428736725861956553159072807200662594707967294668927561666390031824400993638588327852799896713310584064781200075424342272086959953593467996537747092354487391310298748829594665736677035468107641778871477903852916332951112578702228542312955585931652821929369130169044353280745972081347535683776330937923987876947968365391054414583332429168248060692818140806388876117921256745963846863751975914069114138743826344808926012199912730285958781899907554094881328735157865120015769623477451978442412845232291001785850057838631321966053744181867208599875336178099456034852525381223698430213829198710359708435752630865547088422939669418500174551557674422907333039541672993784196258391170176243600282418878985374582303100352957127359486537847540795204190876523609642892553037125387798942488908171146082482041099889450084793324944317702483784040682670403509724233894604999459193825660465564747879139277285832115610717742146253204078316732419064053645444897263997612383430222271883397655194408349441977838781766839954335501265323938314823517535520446345639601959678313151711117353371154123637567219793076085364716988314943553460786271971920475262709890612828188134582716851912781031860064095004016443601352054030727252020069758970917933843640563736794964818616148018502151304706888196111925510735262311066641415657915846013297777001471032370370070189916909394238530960945570765108788247309630502288624267672037423965437799465412172719334834467252583420837506094038345781955116038745481850897306835274245440636536467362409371763482847081327368804615457236817716030432443228132084934403105702003380693010213140701541037183989128131135603551508096092353630373422098771281259624266127823776824618104217320443732200379325485582581213996061952262566014876281798200528453840822854706472863240820942380636384136121476523718670894108943130416980773791591940479243790393103696707957395922408274210922438012348046574451472339993726040587885387080208421960673920666298090042184004563753373730957099712012851867498067129208788373212221489232236998198339795447220465208615095868280664765840931409344325580152117546201475068992931778943027063786814240949512071905387044478364254371789220467667843782040581030768228872811758209031278674855438281478852184451826522025544128020598822199403575276339215625887354571745609961656207459374550295034537953495357559273375212179500415487276719365744886122479060149483021348489516613306712373705112356716829885320972702847512338505892850331864893071135951273737697467122680278718830773416504250435491114579785505559299551087306512699602269821115867403916904339335911521687010560267131671491502671784898301608211210057281554094970266506070390275028190801147552539302660906252063614442378329737631242916844064295268578892905034406351970485579836188605860418606540461078644464079011083236610814957974890927434572663930430120408530272096145440675766558010633208188986514769470262396754488759827993104277789498675943065172379279764704308496957771775237990504264537934800681418264262423911991145463785355694882984915785513315652944712455147749572652483094502884675504583125867008055047043881475003835973092968804597449182913476501215030427673528898607499508399653029065212165315805205119676255362640488278898438388786659344270731192680073805498256968747092443927602727104870143910781313297928209309567863657092742098905026710145626673693318086442131812660755658164917179250165863281986561632155503569450539886249377908499713380941913936415935336540247446977664338199806299605131046841098034857192984219636648899045922227838126943999481051217582156787394249535136669206987750030490105873481075507237517086558880453113655967955963931223884129346985588443167806904485005028559840992172504453942775825146398385665819696226066020899216585630142799404053070374174428419195730936820458242872494761997834182655523670974904282897334886237678812222684286701375910370222555584275087769910891285530612102031078863293493387967284144582570391370868777316407414078955814036655180957887095002225092268072946243168463282887944182483909212333809168991440578265264226238511381090705353331850599195341952288500833884646109081547190550646352752074861368337509528536287334152560746836469058135662020038568844171163002418575956431280396482807573022138156990746914285646356013167027162953284655018484094063996929534206119690415296405234593064117517757815889084980148233068504343681381157517240926049894008472169929599511492407361148468559205239967779149874628923902086790224570903053198768318678545098614119057469060610922405291799364043061103786225521291002800697746001239518414591530937966425848071665103587385732777657619920489594083982929813780361661171827230182110327801456732726463102927674187488235824062981433948518133829053519351591241270835440623960504711138310688870196014876301109791622877572196908839011703034610366087503091099283722777694153189929755013764404831663662079375672483616161626484139532298814273681939408032725882931368468767007629541954601550618597858095173572532725330377121168865969002223060827420851197812411600473673950445708783059781212743493348564967595847588033453994646474216493776083157555530299700074819031413383832092039658014025908436937697248223172750351154010152398144022582899591978600892136658887514943800479093987613719546251932447014620104924026784198033164685612569912201835885175154766658699539658148292659524677837325941156506777857064559136419435502450307294811908698149839658515514784778777709758693682751091380036121510287221743719103727112078557405326421477155025056018474953762643841025306104584745414170810049028533139823206748222293660960190559975053292316207301578219012101184466508779689999278093038599182407699246071232168124940503633058280055431502541234087120378947247839261892544093458073223328607376719376627177998348804726381804495849228839430915221944992154203474629954425089017655306094518157183129793232809538497298656889888461325755303515177100853315916379720730242310756879382417435435431410408039503211288346594530867373595814300689814099919955881284835772104283649037493031225189884277360728895555405145529632129409352197886850474454948895790441733574095630209243281329347438313262341441246803683184870934093992155753149224508254276422281010339252819638873252185369699174080156048802488183992121095810449488509285769849753741598928565089465726448827467271331833404497533711273071512386443282925213419380942124460747920624682858624778842998701729497800663677622225114985633313331429481232290334720884394329895894278934538735630389745943271676148387860841161046409037591459200117148328047665819864109340905853691339268896607059204053748211254023253360961128163084905180148384311870568429070786061205794798487976824651626052974483330185482254961060438164629795878203490052803805855943979837266479509746354182048478653017383748610685513229389949408086082049765467098778410284745572206407405420485894586918990902467294536398549235918457858005727598388738679608413439246600276714709624623757264241164833458527642917304367455372361682131073586739157103323867415957131500321633494031756000250171043321035332373562751253147390694221837885664242134621478493592460704953546893014244996173636472621666825191387391975576478573742411840163993896558421255389532050770228299983596061005221528664996047024801397944651683919569651565403627411636711631329772925867211843513405006780056803417415246375956011197946433030875380273024629927282262336983082440236618001835169296817816271192977676992693885950852709896442942957456089331433023255392527542645756924438697260972706741440381219327719639809927507258451696109013934278326781956554426976291455297908699625548536791537932195945002923778821208908198206967087947077505619723149210606628387846341408959623096450620933300177842510183747948899044722340688971330674597732320809023067865278995739206052337610584807582487513166740452830046675191880110795453369436413793454227449288652239367703117721741745197309779096322206425082095719772770176689969793828064390340856024764131281957118257441291671620497660484962981952087442256146757834194911902661917171654632168513349127518406237085038961382038911943034364108312586303044855868803943811770591774123367616334250655992866064604523689278811803889068435529384483591033471804091189631762995732059259784073807465557540185764344891824819245336010655222410759693303604520361379589227557440014426542909667833117724857343884355107074725491503560595962597089275535251000452349312333027400470317276345645810093892411071963789992663692218349775435300725250352514891715279497716564075310053499915568859699447656190880119286342260418720957290353036094819415026693546124029767010369384078382740151842176335996583706577671755486136985963746337972600376263381144949183951051947144987769402834932856135138203697642435294282516470830566365746451306437580954892935577627607579236932848520922221465205387515271376784853481296412559557035110515902563576477794691871054794573215409186939321904315939993315895932419201623162005023835106301870628528167545727401561975387599887193837816569318790262153746665607295153925313212885381421532264753026024232448859637797419449224198460344953268670076460485277102152815233154524221528377145327236387509051502819332186978434084018656728649308366323885251668107431286747288682461605575409289927450959647323297252433162195763867876886999437488034691889766380120689254262679026325186645425148092986030093394878104781827588534003090839623708320015741733722911964960920621749334268390688625034758721153709782698111965911753327905363300897234124943446757516112564646444725749184318297882411082762891152978329293151576504089773980194605337948919509111343188502428704897006798953083342482743728751353197613053066212316658885426459606013844010430726109492812100194038497826833976438717360592803269956590705738537046884353022186075418821818663100994160857069532139609503827865713043376967457022264806028287814128563332538478598461343654053386104278410246868668064773352734963589868167233692916338304357442602053202831963599013138322775129138056776112117426276589359491407694947773591885159743763949868569018726519235147334463234811801327548144093914678701861284936283074846161599864673425193571152217177078680165752802151206068227077670658671884736491080467356978044720892961088568690758462656747459343253781671626929469492014074159752718198122451088511407801469207661415479261799184996659536753380063408807413537659400558911950333317350952759057419626121673677770151809022958308359496962831017768386263494704224453514572761566400511693937480100291046865391511332709939396114762738902517271811493279635191284958479035409548276400007511501434358013026114353867808654426784412423031553275851556007185635218183989576279841189906887017379695309925193744657305817559353157093430358901888698632166565460924883820453836190719301230894169973878834241051766171524344576395524017696780282779986991662723215810188310110628158920465178301432262236143874156488811337088028546526297943198630693381457855690115474099706518742295884243882456555610424117226234344903214553757041119500253222384543085250772258261742381758614455298023471563127953708249609891145483607982993257187167671408921219580181138360889985889148611867600278427042983006523530410883446377205554690783650964548296607373560498402959853695083294753240221883411453047877501404717822906052086033841227218172622693163930402113972953354468010260366716342792997433972885302391726390276757453040686410000271409938788595182191891488586768170009902554522750245690650070131202140656208843036601954229964566399629797658433244684735114206985687346419810987473716159198058735454013857924083188217551834471959562431613544256544046523444858924735565369863511529328882112736984090107394103122263274967945945488913656939114822512730873948232600773092030152394901918081329296516988172615869953243322456216487748041276890469919796087492244315183888127317472467511063180737134093745993167844665412510676070393846407987468232406104487026698747241069651707485428985388967361275178598021545713209018676399319711454983013958102224693110121322742301010944953679138742915080109769035952926783178537109236936230208674263454668596590546987016475477992249007486227285916635958790928173260271860139547616827070811558098949047114921839305824383017955999113020579082418222424411584163790316118329988615819964075008815109230515877290757059021694774437980248430501075869668247015810392964132000450127802486082145802629177997518129037076232902687375301289729532013742650517189236459029628688997317181193312679417304572462682811782803370188029407135296841679497524938192708520440094061043755328018029640126823898382447579174805928833968571640418333509567435117725665227399132462356047345175861661196261118613815458664806355507724780303039762457517888197063636174839720356200789930584842174712432278490506441389881647837797634107200270729478000979018763051913336207167953173224927925539151421710637437299563770201267640685280156570584246769426485552330606674893449420454949381054513827421383002786090249712347722939956735745626831637963603807292874929561540373337229721110994893682850202606895025608223884742818574971698027965620119248788055316685359804693660312080352913623911276459605722042040693206333935695078878400300919976434368231815214956109528855683034005206447902307409014627916409388979405359292930689001208402863430758182117469666782952735115324408686228332749004753471349091689274298192794477284609908736104291758456274440591826842094822717384722304362970767254991360131800851098766063928040314284947636556479831972942460847995074470057058401612318630991897027612112750736589482799045511000587025194837594356051802564709372956510970102981563313274883458050181626815696455951406975552485759252313758885473223201036139333425224374706281247915448163106330924289363733874869003252752966244188020953567127065121278455303757416630317671395017289522774829453105022047264602676622825528474262496757144991685755158279994734033934188304707380178579261598986557688443261372068591365228125747643320410571833184127796257993050634893965201244687760966379542103583986461546673811921073851004372261733110750564474698914861856607241463679087794419170111537865653933420201630516296727234275674710697329476990440292742723826220388628205544108937819879243365202765263783084698620388664634009043165041868513038140269771827797728470566301195597355834886690775312517759871189550210373911772179233664259386000815381972595010424531278774083486665069935538401292488109927619594091893063162233940501873484994474618445088003923867777553627118811311922917901421890388510285946990497453662206931373621809988634841393879845354890496918923811612082645367848525718180175153284861881237655163405696201074229563307894713958800128979236232494764842733219666522326687159557977354164317766476129524487732487697792045455823672639245432574863641317684781342737004955415524528202175928791969893483256078627391012143143736986259491319351414155683829330646959892198409015412634754300718005400476600653333225448504485703139045020848022746241402665274235436485115375609341276943390228867497184203678662563456386267764790119839010423773017340575307816166928430439374432319961406711034254369708065581628410947256037767661563963750994271085870249332919302797878818625439889687964628042183468620305418624586787877247378501990059824641223726094948632625081043537349637610044604133591237173428959286090368053466026778535772272459605413683446033749406184194277603904079980551522195562671697135100469387598358174807625159687397720457100952947187742384156848030494377469053092818507428585149371223827585889762366669203114198663748848784558633608562118885840539671729927688074184391959220611255840035518111655064601935593721989002399363399953824813826304903343693028097395546119955340165365813350036869211707193570666165416953122744589819083927137747112049210325918769768277561075616888692920402534072859190498466721414482783366697367660702124599958291905617106494883815347714567321247528860552145157249730745417115819607003444112364471019453774109711752200900690851966379717149463014044744658499507406877452878699884332257233279590919002023919513777395027043079113054599832457413686462838808529010905362846834667148638788176727189428089329651498604556334313766451967426622653942286913142598343219045089435467825757825276920912129426516938623185800110350765578415048633033767846781220212684674216952334959447531002071309079951509092093159519845014748861875317002182437646275511404562916586011900273042596534874380995183700318191453291969738088550032700312119831253821214012845107164976734311812996055096900969412040112624499326473082090604309300703788710658030037805820659759206597797459160829831122448856250604302026688631661904331427044044789621465981613636749794582105115383501370964335999971864126176012561544519036499406722447998553323100257346374446550350745582402965613264968578715966433430210135785942131565031951487910902379886233356590057514459464983879219656059748196777451450512157336019735650262039971124559386062394743109941400144862977833499007458659097380438428407245872659023139676127747052093855361824602444205884508049738683973717162457121967795023062907653036367025531442523895046840411908440034347978578801213054846781252850371179853911505832719993776964159897635225486518340870168422513949972733943758822844515551914881039032577642672242545971326700537613573971141260642047817348929104686853685537272512586302760945439423143810487530237053418538555229635159595461092195977481583667602084006517475266842977957420477741999048858027374205593654516347325639885449152577835085954667346728885338074345265826648294471575080280835536739160200038402488066684482348953715572134881589866885684806597821242460645009288407922842187220046055045938648910903314177250897346079878469749398410487072368147759402410750325052857491775388092476458930522722841322478415826635342023226067929300823588845624469119571728940529817158480368534274970727618622317796746421936689021092466533962422504829406928230342998942266375605856579977378946410085213148484972117710691226485343922924317577466011035296895287660104602321385750510336143272316196923158601323398699698978284357829098437371687120075755110663497214332910468834054307604907427957148358629795625246685473052598857512036228015031005318221447465953390588046868859009476294300058594028909887346729489158045709033756623501855277246858745451659726288275863255414113032416572473622586995809725032207851898969658859509555505138273591491910199138856725648387021977580027500234009950934250459518418740732307236100607412568294005491806674311689281225674684629215213718070064176732415219748345083447356022450691522096314272443628239630295126731142167321505928580212717663289898721492918771117097044788551808760396966059892165427850288990132784941319192161501477680129931455697803879863683441063495727733576403350881257543524028651286825487017382857173540458818939056699664483733086528667870638972811780084094249977836464025842857099852151171737969648391645060629445356489695730664802639895075412513866637699365143077241211071422677102547132307634617620111787171646382986320992453744449440774889866821959378791393333522102466102844341552614314540845760246222513775513893024991486343009447793574424009127987342419345334614511066417995701284957818126420888059812822737970913576198955670134950744305295154406959490693686216125742571763855816523041602965012500335922978527626289180433435036221602650012298919361152452308886691318669260047136505985393932621948138636953841078588522007262466697439038194617151176667081174261726652810962924886238834440659040782751231205261808306626702641746657220733443045767634391018168466958019839925175500217996077039598723428237500515441922589368744963245498536162683399021300101989502523535628992144478806843164571752632234888822198964900132342173246645182372124703978750300156095144411454778139952428475721228778456472860722045440129417964693385608209731789977994724007929158043779864619694149878398000874985530335144857529903796303991274330340013338628603735087612521287067786441975762698970330313935555166654787682762322016068252821991063799721737768173530928601812480252410334088492204761429231585819240395905456420659688523008455542313428513413000747530767603692467308585310565254562545007597713202976407590734283504236777931610602274996139487217300470542636512900103128081643055832820242392359017088068905474216892353830678783555647255504829031422667158722939027370394010412573036563352800185269369303050168018806793398104766301910046446234801076758800567361284406753554582333698725502487485355348658453856236670708281299533851507827501119865651086796222257516870792391972320615955329046523833547433112651092092232932681178049308011805701320852985436718912795146321154830190198630478920360074797965021841869678793885718551953622311395692372190524909044618091972228635037959039528210374694301343880389071515969280639110250119212726806085752796852374523668044788965698116725862231853355414521696849342343451135575452838768892571346525658628610426811539483246018417547077877724359762698292026415227592686633315655929991176127210356468133031326199721345691076458258121832777532480408618737531118963390059287857642007777333617912323362550926059570334467531453475963986235386117927147472806984104066347179345578353928751374854511968061128341431857494186736275504815982264904670162414598418994006496927862487234475702716047935784008251754602737237991336138974119805059483423500770670991489663203307413701900682589456168336215935742988319297476060544052503633587131747716917424779930498227058855267866903072371675505924366685979638469589756967841165881177243964195794610643283667428696558069413180482827303259839616231189658708382288283448354330896495375586876279731423250264536270053608169353893517579158792348670134099108932054127526354402843523356382840886717883659488326193768718392534342280301801367446499933388579460987225808606893969657707569813992523499003170642188813415135559360118560690910649972343418814310219066309481119556111759263157126763897407501567278736901714312933576760807183436701631557743409169484233611268381530760135289730512692349196314397303720599774167764808288574210854978895588187362358406282094764772936086963014182166571972219699991071019860983854510663594642678383967916963342948375903367089536124903276928110316854350126722877579956466026693010300634769353013182743127071370053318329378149600778299731118092591173068025624073739796208408506296901436980360664527143795343022330075533124656815743612304900618468071180905643638785374299050426605873260272762127454198894861542477057053000180684663245795954153567168997736729473170878057359843424404362835850738351088334248589502639543221063299198327822986353181885368545762494811657890182614717377471170777739192594511299959167180791299150525370744112281873983102371955715055804052557141219668413282102609872383630164101283758549845489644197903319678877702917626496850641702871891537226206140040217893251999611214682313885883305867067368709523407987439317626111049531530430456027737228675560650398753842971724401593292247225057949286673356340060637684597206338413448685486905824982755929282753338069814723577084471938028568538434834459045062822907307287544600528162724423537291267506673345954861648478276896479292832961689640652049712917213802705129541826326513765697052031527932845977612326795414408431147428299794713627381406418549973011943741737731559020075187003300118774740097184974109153812491674396119032417446956144663410686109274351143265450581858434790243611402361184866960894437539803682818331191901578168275355391589647374850482005107375884980450972587177804776747727944200358362122873561668568984816604880596850702101360171683752755711520947023823451705984088944910360747439222059546706572470010771688133063780766938307017755361573259277684991304974996598227511957470648451528778072189771271256951878859732333747249891608379974735336153744439069649785366507503205358003398602897287373075829564513901456963817563066505030431698295469017624017793627908729835575065182202703373579869230566381215259450020599700154410153107159527111024872019761393778865739040604040001909612361642627818824989661248456605849472050178771442287478145856170517341385753076294671154073303891204285245465541883619291127850703640460064368776773884435690965467633988454938803547959257865554653125476474350758639078127197724819853096132497176838901060955796274382281539230196005943668786235343610937457276702024438673502855745072611070141262277235123015572134605798290721514240049712032476868405296900660097075563813962945218404051671412262377667960594838975005616112980563910338070430353973483839945865134960479148861238771319705031314185223180523028514811076428865173437894622654590926428155671514722931474672440357033919029164391669761323865175934574782250257574466540306906785692010457030309371617988076296568626304988821765937853435957946737714320487046743625766303576592081348160451367829572000883755294797772019940564117692498288854448333503685353329676270162915128025288954962565632301568390883664095070697938924109266844168103897213394714791962120227430066699741680320337948610034608720377752355426944949724419857990916837752659575194442777171450426252527485227108036124385871220025306820901597980470079170437035330910934849592168132716900744468935244824223849410394970232946239836881004965701734875979367492782794543002029767399780702531267271524616601944185362019788730887046699457015780404793208301718646180834005872973315926542360853532865889252077077312137933032859474761320275828764285815430238002916815279133545997859973031349957170142056209068754517540108810999993799925050274718561065031222690713852828445488688163263107839971163678363123397055671591124693002069722654013272647646085293018752796392047536159815196590267128164249027244877707482041075599452445237415843323069377903633963188988269648192285435984046503243996394927822830767654074885522272586940412973185296736107570465865465758300962554067532926545225842996251102502925646374326510887738975163605845541732120572744723286191333697461592942947090000087704069459411717408115494505125317991380785038127573271118243091069726416800888000231819776084478200873018225761081429436733152698419121390125854650028342683066037430513522487925968020416793233766437848661419865040975564290796000579739990862119278653089511431335285091090607450717278734517305491182323706478900450534755776895350513841451474721495066477739603443240734026410005809542945725909581019141179262270657858487705988851707728341536478050803697988134058637707459935537414492245209232682338307474904092926737367117622291853766965743411419188525003092966269035435261374892647095133221416795617002911295206674433655584643989197811889353054334242716208294783575456517751017597409343895938935340806047492688277274044706480937117945918835503673047383917710545124097149126891536181310691077904875880545707300240296475105747837496914953025120609665696394713556268687258898264647947524745680677788269585015327144373399149496706066436395816987832230736443495624096842731809391810140967804633919275300630737172369799487494405982767165611353486848773312079702260071886153536744367172816802629009373577375739726340787112283598283145215593458559178038654272796971328027152006573339660664684695452043686456982994171519195150034464046814859239975141284661549326504431729817355714703390173210977919654770015335912776152400870533498888575375905059130188977717673071482213025056627965366278479351326917814134328979591426155377359658485642341443393552997747691477213207218286156385965811590945984147354161018063331801312866797914786689415050082041637177731341531877529857997661871163508802723680300287398113849122127607771229157426723196434764519550731698842529564937007131709534771310945135911206110255077213680907820995798203733723191597671972094324334272341904225823442793067185727157444419088644350699007655215493349293418182096202036951815536589389064899589585675786148971708099944520888273322636032976581094729852806812518676758941866418040046943646614605673088955774845649157688572837464595743462322804934489841487233610035344384310839632248438108642266089325758148378233882149524283132904883206704992339570650035321067336904206885273947517882468280992538402661260641905295016121730603646548992477079523286639820154638602690147677308796528999366879701233682190114553506950846455623629675099244997847351555815846721538117981064971918172965170408024231564477340281531348001852763268388817164718136701806288848609662334302153666071706666143423496956979751378241628729979089648108246724722787837237127045805554151733988136648355480603211492059415914276063458204751555076404485558159994585490335117009251446470391804326347741472674287706034827410201895502651068328030270687963357219339548559851269235780010505109347908064847899239482432212756654606769671581922252902469503958150642705137709200598938456349754351930092398636891663625611566565417852156089159594936215256889215224099224901523972705792040807541787576647906449638149268684705004794808197469131267581079611537717871473439824801818085914295127143812941002209732481077228352720713926925054086171255542486642798365565021942744615662618478203082917545541750777657926522565931531607748905591738306878758595551789659722044990297916329950801640816000899936036622019173286692156897894632488291667863992886036307303979334197760632399516862924796607577327497447234739832111052094539003183166381811479219761810935114703160789098121763853645479123358350340914903867416860306129725558406660152992563905298236394051301005984398695041449918472728778090811665819033703671432852098773516007413860431362244281149951711182530881027469984142124474249082524025236347443761600552720152137154845084697537910013509150277435815086794948374275320999318499320484445380786559191797577102651244684521984439916529738794196608530452433992815649198402853067695524821705103822285407604759707302302796109646436820910423236067385713074365406684766623604932002480880758207860030143636492086319120107214183191502837171519959670783140722247222855946750219988070542491158034122916390887066275037293595106679038518374414004136912628805464610131020842531363572101261379442138438319683661556404444729043526665659167882282427454922352339136493366516203498937522264223628633427060895407194641709071207600246509030162525917038624850189240914397622279339697883666678983165108829610411779076604323850968541686793809869398588850516024132129612268377803321099911516954127717167741082408792591607208375975444402709342938290823633403376367877781506469175465043437981999084327309693525820314404183315740929589080424703287662351521784826362343542229036742057622880781722670531409473577009037429744566898109292400523326878536616805319082185445810644779985055690156617062731639894571512786987141702507479319117095119526569892577770444841563510158185335517957690305310263585976221811298372867699284798259158167950836867495718151520220659201778543533580574523827939688658824720628712282980309177558580385737559327635012869747450649411805728354554716489270684564784974155427876700459310540430643089839937331277298135705703022426379122643452911264347622049116225419844099607649095110669541383489113440538153143218554962651933995525317496408304389874791830380464558828762730556692838138848905670923411647556383734339693971334646611575925731856741679379187713835481440544159754078775973309620133306044048804404356178593814242057881890258294337694256675693113966583645942069828296180339739141316051642153383824337068369076163080404104119894411720914065317904925116458453404525492393274631281909966108154537592320794751486468856740652531571113224357127611596283155015330798449055975108814290689907053216739242020437857798548643400341172424483774774034963962784360516891712604297495831339032401193442488450879208985478145933655929078644962398117552888628963398379453211383093379845124825363052543176675885234190442281223726548527671941890060798598258141009862732129445276711170449449367035567162891277895487669355536215932535618660477982120760086797017395365834392556032251221684747942649194672624602383308353811794105853407763333191232879279144563724750996617705612442299510478628028688392594251488118822009176127156473010128203128484164654848653342602741923269014535891853593742216512292171978979136697092357394112125269382228443106279793813326801178031763602658267387228683708503169039662774372107293349353502752259047315134649342681023168322608231354891240525182552024243358674969832711576999461990093271050722919460452079212525537079028957225691966378015607138114231257953332893845979456812615574799165792258965601761469399541038970087898819318087778392360976903121318093896008085130488338651367398777132983386974040952946699762720345686399414314225951717007374963545812991656387711864129353289589236781526047211851954900414683731444453263537267493582311661056138363010853695879772060518787715239438685103801144841425092528800181321047242900263987455688735577960936894785284787329494348233780873640037841775622835040204002544302600677964689301441903067076106375790454532298264173606529267364630102351998786941643258408931444470044421771249824527053282637700238802953453111969795210670266728115263678722976238291296709161577567518086134601792622250626872324198883475956037230464981910886489261607196184785832908586628695852302876376456564331119571442777800588378946992920078123460048571948360771701409538865802782480759062369193833735757383646577388601632971342484715850049242081686382826052339487869274278475634151404071611131947172567209748227221308793571642163751025087490784989544821679786620161516109194826451764242706823356229821582595349684112537027099828046294734063205270184986179485504411123815558900799323900968048666650933834555958039246802063479767800190161037029612439714618440238669821864212279024803996826532557966407970179359026847122072544162313734814366444768614039171506575115348350819259018417738575822252245863604382574707734820824824226200043395470695251814576431487167889848511648670074605591558490843020296517590069793501972419760550092411625275674584477574087981684100626161858295367862872256289164945850259243863464473133340750182641165447553438233450711145038984954124435931720167540452787981011558069763470744305618882822215491436549718157029079590244417758579265114855820612787759271630151607655812970667508546277295137892230717583358133992805143190709227816986835546438435098214117730061371818089520527656645711303396306855496528371660587688541306882215614381330961930629494417878807300278010620199325922900885374397507108211028515500352839827824940258818931463182159055697408191972436045965791870340613192348632984701403284708415021259535476413697105629559143623541831681054240282854196724717236892368575757506281254230371052304170456765804926929154751437983652651109332630535196440044260846156595428929300386833440797323410888208596449328092041393422307506590390118107319617917235834155988611529950424337385243098528045157102046246075581188814329756434208594852247629594505089029683370433874503961265555507216469160493090699439823467809406879312240450365391618126283696812834910690592053328567662321258285466219468730440495222595968933621362035976984026641845879320849212470610885467496414103817762446088437143325956357654111620349452243140961563167619340660937999397784838931716520307744422282814148018259276504068758298889666029752339953862739726089585758952191731956649497304036052452580531567257450667494593225235938345770090443127984648446307804423935695525904922341118549950875854354806183167550684468340878960819299300349174395946584173827933320629388596445953671974438608195608973373954368951161966451908885336420007395337097627208903268545219177448165043933025241090103464820586734463421797293012481982235458168465689173589297519989882786793374845439046088237076390812214227737601094367194834561468365726992542985513045836912528230001104971354364422734325741451358338059782793838774738456137108024632578801988821540989092038322701342901821898090718061902598981435231710576024887765665979914952862743629172943926782466011260328404422389615343605631984506985946883975352755886534731816753318133310308803771163161740014977370936297707053515534924435853928529468587860124243839295154375455622901105997676376621340966501826152676396789231182842741472578644196066855849300937898433465871317668125383238826036377582081136007516792646577384021055912273823887505133328471772562359625458177625001723579325081844830151485291564097200903105856833330494566921048228019561635996740990630192399487502512470926532084819795403823380613889464956785140512685278375568465144930536866257518554902614796544681322873308103203608285950795307031119557059273533852250281623300159398509450451256144141360642977970502351270588305961828572371385587107182104809190738383975158280187308089478500027605599872135862172890611374308105304389773122933898438000589930433069357425584491174072901105594319464666672808223088371491003913589612251296536588973407403967239748802279286644518557212838042345954108055800005318950756199516550374959195591609258247940480554842496709910136417841578270897668963522717434043430014998367635699473500667768588286980148713763058067261116690155258165311624182909722641440209341805838748713620759951339716717073131499087605002329766607123333269948339601458177390314305445484415103005777457573467195211453687715694556643619194271813065711045817092276428743020513087347949999001767421541426048175959247981403876173813114611977280026236343666242083630730081044582892606655778140581627602154770635201104653907798540988761508277605530036429157032466596947131510329571411103528412438297895236803364293783079476045786927939286697129426824244073848655633528202718829113869095686444001625778727210681219840315136188491800488515992519921687496758531662088735491811438861843815033755764337291456639771461945800266574182578865084675815345325769995248210555346115260232574118539897017298718609370701539744060703502050406585194500729750736396712664114240290811511081913397919796912710305687840137505972976721743483543535291759431414134704243420306697624405260353536391009128777511401037683421594276694410600670111605860341395719742726362114551383141644266287782917391503936134186681345554659020037523108563485068665031763729485083450995593375091265381123580649352948503475919566182188341022722047811860727147985245463252760838953451116933861284973643229683835159286054954472033107731114190337763196971107637927999456927965261737776780914068032361681895917010532211167402146598319294548042759373393483485631817614931476028820713462027468597553654060613505470428852766969092847161000148096616265247913897583125715871004528165395778547603883470094485186482500690650706061032617266179407316014877392561814314655350530383420919547561724216429575452614734934712147735682828185282211946456401843946098899406155415378351460841161631893671745787454166954557041463414906702940350740167120136345752874113693458860548791807456918931603962847536188490487452154377649324308782486523129573710219226216725632059035873022735149952040374363021142723866494771862989367633102816656040359590526684699646435672799430201488736924164188315742910352533889925214767164486263908126769583989556296567738078122923201891303149589845079197905233543620563680756352005802479961695023647530136128033635358055960908534519055567797820651691727880106571799261229071467768670482134234355742140929432747332214131444941234327178719475093455627339257088539156456011025906273210348972598888879050269719713620456533743984492565861743637303813917558011295744260056981782447243630274020396288207816985472197732363996623513029409546695541784527317803385599909917000788163641263951943290020911045672366122005070949697172889104559552297197959889643183303120821165471157954862750031926806611060672401136533356131188167160079965246653831766826313871235429028652623040955794217204007305176705086038611559308337471948437391223515618684075740181412052370870613887342473730958675306606844713441644505300663831817861474677395056908514111521298082528659688282227130916970612411382512648162500841310478312299538380794239323817719570782999926029746895364255875582874816466185220434664203102700340201927518944600702809545038683058430800266110795781983475023036747025083845489100508665404237923448694397864711451660485029798255642304501527178838243345334641804735919842444939140324197696298120475287556480890425361537087266879226764317877881872524595420568424658889290772862848497459887356159853073295974289899354503161081925401233118324433399889883058868829391227477294485379177939562750440929664075504365923703395298142121200594244090568655393632406225967526759870004539504422846546686170485823644990340757291049823122085872788834424486734848859204361316076089008941481142220501750391750991322538452720257629919149507892356751237021639939223829442406320081105826857749456226443542440088209242994117575255744957330537726095204316437089319190771558576912448479608614851568352834373138279080887151560686421976271591655442559975354457178801083203866433098692067516291691938338553671221963192199225500567093804109843431911518803393201839324163145083869308178199566848523705017754432113169230121990078410270615350461483026043905079597478718953130950140211835282180498698756705967590768772488185834484291931734238932719778566528693837492058114076011885211671249402881359898542011457366370096285175426730774907568164688711007675002321833589104922230252800064597739403844305356997353125880377462904217249974908934275736152765262604472470949366041644180111494452036875134967773376496088081608660102603872702505998246643366696231864012503530725184656482214393311424223497682247811097463399797968361920893412958242646648455726080427596717112549788672261311254616105234529684927634712640118738948663149091049852163740378304124352093964433822145541061437435867199628533065563748197470383831178538903810007868782487888994382696007756568662795381365343729212865648035345160056968965338555713922548629565982037415293445591786949711373208634254374230101407753152484060685300256808476040080172340663444873222031860139042589807847579499829706416029018143674208359117401763292214827092857829822704766957438632981788272890250576989027512742832814046947570594096747711163502068134359964196327582914702356829909734240097290117410436946458412595803064392568787592367128706780211878601033960518042511817522236615237213191391916381721070319284758383776482309209054393778679749927897767690930941513177892484670233806210372303521592297065221026939023371451860794055544538491503940269180304120019423824743913090176453458187619268182518281689326276017218806216172847209519637328428168086762713644612243503903437492478871441613133062534931544383469352683491086979630929389554230715633536299433055365762962303428438180905205424215173088695356240281486557720191822446408995959964803332121939358911910799459441455724781185553207132475227245955017789613073466327567279997280958511577247335224286252797705392088270648082639411553833820402437212413726507805483271636478741951419195414013537826596287029404372185244216543711150787103492911743608177733856021168312169845902472170803601438297387427740461956066078806836558810366388195080803739143101631884317654755807807832929622031830523125232653537307883018715321875892410922226176181505294121999212076953558920949711878948127057611751709078816545969765023376509183636678520425853367966746764259707298970493992757772254965066786254390450834232834928873297936274712104064926977710029389830960823973647790343233190139537360545161946104327362186087650035638717660751417533922622140203729105855935279735065405007274022058055701944369378934656566155052106150415155746870654492585877338367320331447093176276062106284155989656698304177437254650013242684799750789905763088566597332959872221542948204953422892235949601772636139539207220202005237416187598798700899335428303860723337959783477901824290719712802587676664336913434010747843174334083717615678957169447001627650517938240629584073721675048748339831284566601906698247550773814976106752570217540181962534125223330621667824427917715105606316767540912542214272593980730424449390213147870137069753568209841774089658769754422453809550699628426036226667958079995547104828247051902191474409277189597388801177635596346322114277047583230861844492909315817169668493492182311791111403316326144369634115318821043228838296120257070752282615954423822262686740236122866314507279307889642389681950585262094681931828957825194954070726226338160991317988428197142403055823875029396396547844726937173115833281434001720802943494967762176589656850570083579500692165439698663393082030822481161311401335144393776096665939345269594929663087322501708960811925273482973680818009892236041281134740485618492966458916674138417966642471855637495170318267905056666501043060969218437562164784434082047700370028855363253902633491315322204460885810436339003939098309071114515818735713425991685126138089922710666708127637979261722131180938422987188789112584766201840884128460680725093884806699153345364646818106703946146936647146254029909574806374575371954286645978953267109627963120560193514614066201083699236995099602230600928446146904089462568485760283572356472598671352868474689100525445275521647511966090843328647435104124013292467166868668548808751945117316939606293196934743944329012286308201230205787146172884176646301930869528908000519671442617155604500125052624190514107961765854361044779666857672096975916166040726774073286614836184597391212318202608418660231369840478572854655371865453063614069385874945535396587980126407681765302557824531179448622263608436294860588689546620746977312817888229724628378982175956727770076776883947470949679133734288827967297195559926982219798335232859861925778567277789123888659141348445633087950023918492132831977944488733687252106319628976182793538605139146534342654551005175652640100297988530744627351907681935916602375930511390144728362824491809892612069957246245925429679384320887064959709470508780269988855928840567495369489607973250102537396712185261968829515964831140630218367131914811886995838474063794799053507096728983225460009373167572114172623109467905492511771769807305375930559386155535832015334637314047458812358632577043742436879225554200106668255770123137842944304670633549207314900021922733263040587452784883364348134602742182529082131797344744266564693825581732317398795858911222859500171586715730005046068932577512308235054227437690528042597507008333467561709784743509651085752876502253095134554722638804975874372929675608930756346635525889402208532354150223306672712165741840999934029992353686010812655426067942114903851454650023799979798116653606258706588197849502039252574530728943187554920713637017089581213674719261922681868682997743305817200737678766452386867422612089284480845092867917288318140787147664287965730700173050564824348869076745519970459283502368072258743001408428074760502392963154409144639137474206965956208359182232177581008662891154698541950657514555144003833096161396795770602162147154659832571054419123620485229576586246278363503806946739623602637797258344172847863738195043367779958419720970642264206754224622217147203214064751598983346170557997200678186658830197073668018362967944250146587846160420302317951418497088273601504208705425471286091737607686744005888734326235866894887355486360358930911372520332334755542036283785384539345959138858450767660389300591546586126953619954733686474266665576158203387125948503057884285677284197636233712288628247854005698500599931724971650916064110468326673319063474531718758264921567789073343801424137965162284422763110540645647549461278823707254213507099511517762590237020230579209041991008284273027119742262406091105062288250642247041451463440079477693107162402452773650885382106838530887789610493439634255214589052918262102631219664137060000203156489757544095588613112912238575423161533596429512332896432814967876294334639658584446432427783771768920540582199291701691662683844233152599854852524143054174453249696306017951938756093560266094782335330418735993987758057709492588955725869061337732765807269077147993318958146456165193292432190565136972875584608437074977758224867734430515473957273814962917532087700538018238680772304694994760347177010374894731440442630240245393447702124833770794671854762481929081066644936656166765743243018428641889645016639553657801743727274156942562886189456971078817045055005357731460983870714788196079495740563508213693540907091498436995854123239967317443722223058328798767061710464581887801369752585695829793867168758240099501225500136064489564430420350405531028532099620100502933296701268969564996679276003340921202577596555897740155934653859990937975758273808655892552728553969024169798327314983869522059201118722937145025724081259840055310054641704807088074497939958717382437118233968776186471898320437152124260228594276376195004607954572451465615014003245549341395288158263614717676727504438457892824310079105436863637362583616758029394704563767630722595607347877391673690345284496172147731750324594824591055336518582108927176037551722630237391837236142181679424183718188138369347630483750615724850500064538497329044384101738946691256396249683083023801356522691709905496628987383166772699347573707851502381339217053903837141289106375383514747771766984197096353282849541147179289648826690584627905358548856277689497477037197672558534142818385660479765478962184184685779265909409339949289627679860929810958697060224504802116866758006252874067425221418077882037793927834598821907680284599575898486034616652519264163864257392609225022037300699319899971831727669633187039621015512855971577848404981605142664280203574486269145560695083091231391958586916181068777728930876741514246019517271835365969598756014748454914537183484433808825295014712084187625912560697509786207164041787695141757467542284124856737016832315074260229591014240141971540355069214284594581119139095244410938934871753057809781475851344325425295207856229188222702037587979689000169865675517140852878808055308588237063381746491927839927743383848273538137150953781595383739071260153530226316245497641674057909003623042142743055178485883773117688598281222652252074313897082560450541792866480490498039652222826877357414561706653731113709180508027833328312550143392974363995390926785813637295618049609346044016258902445854509330902663012174037527569761657611962890939742050301118606044776399270264578045366042162964351418420207572151740939147583106684595741484568495869031445792409756624324851523973696031851934099688004717223290376634355843499022670231474102223659571422797332029915652011127984991165373538051884531579936591648777905260500914723590642270007695140876328749681194443171287155947388967267427076176042103387388974563449008968730960748649932198912448610119262035298444396658835708859763194882913799572602661833682772668548299416370269083018743872983606198539285940969374251078955307438758391358745828502175953851079538250784485191690045144554255620056538485714868057533575237208658676173783340148036236105377300101738523936545007665763378059059008276884900084909151104582382859731929864991679008734078999098691158888645005309641882044950787984616440950126522098341601040770416249920457058478124635923614012549922289920846568204735744258637838746313937896080648145662202263343018380822383578994022813740877442393486417573607184466827359242671123495340820415263416749055515814091030900563100645600995434469561537186099803204170063014971141989818234698318666093599312938032132748589286455086549463478223505855797761306866216193348474108663279310137868168983721298420768445271713779326478694397726185527017186014711481476908958438780064912845029795776966171337545481281481018128992871399464358747192856919640672264909901595414652170190942015396413656974303949922909838425922950816017155780179643310526365196283226432710927177788426171931638218703688361009803879644869963616803961531665202739040130492454822197577388913703018482953182389104712891368914453826587908214414004026889767880208583464432772659957364079641497038106149240456666520182098294596204168258747105574490303126484494748787937053212166594275165723470189551495001974732196191776316188120141644953765244447140952410743028627387034868404034533340608630909718007066735936721436224984988551325977034301901092476536329365052470917676079857038993205048705924132027856922863343388585034814297749179733144403132832707352596479176538390824631805953983051160603754540242388693947331798951671491290421227337236962964268591824948900306129981853194173714514329800161689563138499905295865730332599639297896822067237462266538028743652217988759568461201447556754229694035549872121228768128746004890469085681535728424593655527991378531085003455806232799698198774437482283605288908525677811392148115113314814310207499202406541684744577649350912026458364472710234205190530031053317529696624183217118782660912061996666099126946209860086172017519122087878915028544848133038582225102083675466516055391222346239352578655096954058263658612105428248482605592438879972589355382236169182036002852845553941434440188962674988438285443810823077685574137587533812144018115110257465564458199437966934298812226682696989018508741975806887151910370628559549220605259562260677062165037451594322203852005218224604725485053784684729244606069873020081901543964524618338347862498380361519124611410506247890173945883031334697717445219952035672719944186235993593303222500938886391168317454651817489486763083692907086637514601951760018546397759231742906297376591388388620508455994282555262831231407826124203071582817042718695884715109949920296651442684273236001519233307967519148605217544911245994654549637192671240444418684286077356977030675298560444327305478567432278409576714237811935803917613412086813315537038329009409752072555441508498065661350529282650659769418153299844778375420871476084377553067712056491038600188722717972842477576488594710257275168586291303362521183627773294039299861786840678679977390835228715855769026801227045671479725521220015120341012166859143469155881064211121767671361130523483645826869403454467527482484156491428776070389246816707369716133977879668401377270901841698061407252398363022802775517164207424448747497452397427202639171269949985404571904718235711236982977985717600298675503497894615876615974142339236368654290448659662551630648662811601508563198751154143055968098769554071680868567161761954916448671260501695756813162720909950298080005562521856372902779326531536478726505370243340896273538702309534289337831304213657781512509190542307641921149088522507968011176032931754849859477619188459591823069606025252572766529901564499983229651300764612176175102681652844523862432389433616262405604384282085424996619545136505370265043577845484239973586974522844185780669535453462033706542407661517344397449564958640555570064841003902694709119852275798901226122715005855772834664745667491116041314934098566571875879675656144562433788483603351076205708351447626102709973136934303798405415130035772629552361978898617306063669432084159595230859245782217848442397891542881402859110976297819571167232141936282233363355345891820224402240938127150151964998582960756282936018326828162092339845873440465980427943227834106032437908176487249074403624056147789216196378877128685401302514277727806720052832119622812371990633220963524254166270288819133635487913272638376436687617808128287565908858036599856051182020714959675828705503693636397214159151699680884908839647583574430262501148878790117271247343608971765797017653400465798003030593337539029846175182258626468393993195391797446364463222579945422134689418719095007105245950752038644626800784138095175187289432758036879884703089789921698555840044840448367908567069535893163512286791886481711043765449347213844067598204902848678842327252439558688890134888521233859868148317337689621482034444614564679894870823594325610585629218407079497829153503500285977941378232046105919437274145220034776620143860282132602236585318804199505990044780207390651603854442199533740843295683731620565587571660993466593809059594926602653366118129586966984872126256504107643591615313799787911996321699506546497483521278607870947089840390818782984402103155091763356030345356429205942320918462920730525292610129531561361395319405683211475004747428935384957778671629894404604334621199263131314875504961107238158181970425023991515184745602599695321139751823904504920988822871545040989473200045204399595292825386347349006647068363039202282979848687997880232319138102927036351252545475564189426241088010047809015524149039152261959422622945070443375548478797119489908868783143443614604036765685284110225695779133920223195231427568951199753219364470898834162070294010907663435993183849608983381148616832436128917755072744943334700273439668160260080965179142443598484597157740732838537940262932737228339870817730447155660049973931688220026854015441910596992505550040997395621828191552542334046945392127684445467168945703515623039828499881213919168449257899521562289863064260322257552571232549605763721176931329618898901905663422052861627637288545864073260876279695331406003260293536521126775623439376669333751623306075279148993686707831581590443902842786204898989361618588092834130347633927836721947157025591754531644099337779040150906050910366136319489404984288652908336929212134699368064421252439691163617312420799337269530080923301971760642728280998405044027614282309544725219172758085987606720969127846916029799881122149411649015288156767356214260126220836565806129224996664902715195981647162696842367587700789521774979631651790652738125346481835451267227332240056437939088098507117610793844235150502337184645359996713381350924008180918027949861451188879809433650442627731601132063531782037818033211204335626517044533749945896892307121929263727061152563582908435928051666687203566837253316969115182909141108789924536180782051877271905290619152180464373235607804727251136076307522542182010648117037236310310064781867051143258579975124262814442220344563276038634459890235629032040509684505823437022711989319706467153602582405091347700776821670211581863854344810166543587212068850337912653136021319632775452419143700522410022222151744374762793869055356643264202875252421106312012681352086288978210943601259297652212121601195311533971489382756975765963699265057025937482062445925248137463713878410365064890869831007186279792407562620561944300654788778578710045323445639655755049921210527320203357531252004638461474603768338990850532314464322455243804726238063317572856614659405742648048024022827696184411186198698169836749171185633570304187241332049086173993969106635574020054598850587596167892690617848291412535794089981444610164983842309468511173417784862527888187080465023285258536499173801975687806972741424300940290259471402054471436787204085064814181241224245618558489947928553790208390825061446546777189243454050939412421428381759378748141706728538699220162135665586822925712440643397958394403890828284720775347680061608793633079931405525512779373910562808564570508197112771413238266563858639561224827325629355605940607009592489790183231685070936054390465575473164233352231522335231060175667141127089604075625241291874797059613787825759505383504158726798451630475653222824512241562885658814216312956702323650960876679911693089844691181158922935153762555946957542775787450987205452881453122752715029143804365382566294840965917966632321414414423426765943646852137782968258103635935440942438298769924617571106318153962644978933561149099682990909030262733063538941318085290107311640527870089291605087946339356888831218446197016090436794751008787217673835912531133021928002697375486728847862574142768621779004290914705297730011397500500836487119039434513365477268950992756949914308056939316093595542900757894119530277729198390275528947897315849327744643482237488748973628048434645049809319252063951566696509488380645603028812433063835482007263526425714377716889379158648856620155301117397452300553457429219525801269717495058934793108362495156892045441311108784035725836590949057494559074999173918763714106107757367063665837140526542408839278177517577025169016508547318159473180864657076515493572927294135194361526482848033114696999707598984991259720246602919796956714679981191995192351587162102800454352601212643764118899967654436290516078407197694267550505910599643142596833978513666149883889764562950449722462278574965412736528740155170132468302254460337813391494396800357348811643965966929803337038421855581830862485637038102708964146119143950421801694647550847632352568308985068745884187949496720450793003026765314636603420393012162043327591917812805489785509585995496153002196712796019492799750365313738287038641210511063612492562677879640020989823758075833874870450952396281974818933019063770270373152793187309016720717887044754378382904420756869345119983874211414797743762545408517377959906132166725877325169121998303223182247556537931934899968102251920688775386910708439876950903917234291055642209751592732634171461757873911704781147070499577151595371267646731305168934364458103970503937423706969408160554706395657449221237616083554665906138397928014436545813074328819019471226848181605048435905774038149472149084209036075349386647514905224448345329681360154561057120056146073685300582347346433133678624124773514118527686183556026551880819034021499337525039184451548586492311465786060029501714677618148871290776303239371074769635893937041970145468915446697529724616457739104829847862785987769880399441145940450398449692916225049505208312501819469713869570235699986093707370375396568999220518904903232609280728642826229498648870809858109486297666483820783065349272421418932774254031814135321724033597895763538467888627213610130460150517941367016807302969733930607363904646554871214091139479795448413383536573045968347967392979095422713815254428159625955847503866104695020041561620163178362778227394298851408975098920791714768819765670522918582211602481794867991090619025267681265806920082893719043157914661994792997017822182696483814416005758472251527657695624721342798416678879555774747064511979870703376611045596682801394451175120684783994924694672159797780202017655555386960952290867391984716337984434476063378256995663091658778096387194590577322403026932341366869344834528311440968654986549178388974361998303453437637986678389624415175672407889404098247196619607028229092595251522630754372830062932106235086415149735955311221008381823366836425239715663042390957415283120376555144481908208163830806187741021375808468328893837816089089733252797982063030287517955977610826354764227457613696016047427669724776779020232334024341380738964430360426087401352462565321803628101966018264704374836830412203291458908737428453938470373804107489826297183492401002168718224671140378679951803037620908148992398241317910146801671086291039944455680806795591800190090142695150299872133345809476204949056448646314156266785773225423204698562641238538952293494004314318328871263011035806444659997169288411442962484848490354615752860301160666120959166184056509322386417164823362087731353319225915711572687545897671871045592641343984512516440770749412774503453351434454833543326818199779469941076402178918141649685250931754360311414600706489116645271558868711420345470394304739818276242980498231937470341612198116353935571642931550589669019668912816280960221418601770546936210302002650344550891780249474299465801097972007457817886362267706507012360352924236409851191288464446599578993395381578125187545546388995706738755251403911548939315567111214645588631336588254037632233795837851203900688434610519557605985045655464581716890876871880983261697892293810131000064969181322327174620343328638700242031856673231379470274969251410920032354737147929046886352391104286987039339546076260375278749497363775320796312694743133556983029140837606810101226970751480012235251198237776250012367466071916144138571585357987546447281571763412932427277656151331428582543017322424171241017662727588822567492557595541157731553046050065529002582301367906967909087579806616661654665594480800547904486855944769302809024566303182155486664002297990719170601851832878241182283408543681021988607847990849778842925129696604360496171167649054824035418985799194586329802614678997509898283562440673735742209228531083669667695363547777355884925975521484799844677747398981497372351262967109241555147123761765049985606062646305678911750987324204843416642952198281941645654955437291415437908457567241552815430392309619882684480109419666316462218673774102390029782225727508665162271528067096758012933177258882118903734493223625656891933777226950780123063657364656235691883217447183807515348015242479316862580512074252014200948213134273319450627526987542254586396703134629059518850988998987141418235740407320440227959383411352798671984602187665492597907171836684020103525373595252049409676493491585995960084717458829513062033257757712984347077686751867817043685553212864820880271907853837067182794007674365809534990613612026960915112185570183473376324309280028135353075968564390077231373218831001020591286802852764430270364467418049059055496625013057114017509015410413780734284689186408632039665390175986902057738072905706583450749796403210836320164621690306263280939793530684850492629364198495693382774683483058544472509142704483364686783293228602136438761173493174872416461047392998556558482477736159708078086269947137562080846744256879084237304055955295315537609762663988253270253895982293545658927365189367993711402939373349866172256180134894030142625951937135199980297015463776412166141134315396377612635593740436442800604697904315416760041856721411115027160427050398305273959074275266605241424131641680469414117563139360598401985542395073714700259318299888798937395277078235228354254917745975164351993649340905421045029290479069152357220996468749677607936889446622042286268206110228803953882920949756795012831598792716223743132898122494580332325600288512174591407199719957048225465961953959787651426165463856950334976843983270188201020320855800494393256759399138462376286414808271738465727266463401761486347179093859108645005314909461172596173069307735293309579110903379528248505958023581723970531350586126433019813527851789128955563855803482655451163541801139382397408477839313772189643372301087493837600399839541819694270604761885010265189536623947073938354584836618788115847184491586793944008774933028807717033075306285673708148405143661090578581718850581828622779610252159673096617866684246015384626322319375875778305567621086184683884980285068237777328295252977537539988154092514832086398073126600831619609806412342462955698775262656205822189408554626839214288071511205307012209887026349173549984406484687636549648716481229077631441482138245225906645775578909015205927935850407532958311784680628400805986695027887987722436402969705087368069064704091818612709554270356811382873381842680127036530908615496409664509970277068715760134954265182005989303987398135229433443470214137209674729100598134152897755187422642141021935596310064017165006492967639295022500106152345148566815286824721048377706196476789641945404836674931472412087669268993333926750928305012828173143085176692020492366467092797751362661479406464343191288942862770799161255028792974008023938462063531305932679589355780124904555911322352345413687053880041495176753869648727181738061510168613915501291550981387616440604148270102037170388469214967497666653739388424506338323185192862213016100405530385888467776371570743281118310152199010394718130830089466722275625649428154647991609106011565139000766343615081318767462400670359839788731530406493253874428959214558764215983535138401415449979749056514514311231838460650170894390846589081585719695373328280064235924799847300435440554746641728907988885095276806799233194026812339283445457886965714461462744404113837260772874527376257773560566905367693115549374467443504182471765048958992100931405073214014653708288129183782917496327509053636059063655768883009990460432476688257657143726944499730182908747569050864707906452147536662094189841859520232412777065796466611154883838269575563512844183088847947341701300253771713172377083215414193293511323669832634314210387203229433523369834203132870876952355140723742349824507216292042882536581224914845449343221895476736541774044032010351097389016254885669280093393133052911278464789445679741820972872328006058939025024493678767392348707717310557921148210512367703193738757987949111250066690202861519025489568388235338255785372181572011232289859429809383017541119689976056023597404954647297613285102339530219597419899046279883957069752903672692587782613730305639570383903501786920714265451084384621789769060983249181961155574564166372255330180419079038474419580743834863493033019659746847837701887965862262343551798568106900394377975065016573776165036225225846924560784002705696279716077847401290083853699116863354416117509460876912342933871386691298880789258676780939582964416545018223865635557557045080088444916037097742273783227038701302901379050505015234196873075379691465553624835152079753901204653764607205156668042124671457721065703313677248254097003893183203995077480242408125961897999084502906930774560255808990965034918183940220616814517437510915788905554541650459204405150327415139228651293340508842552584913522448652285168911487141039018358221937649351537818204846465634525210225475756440051400975699743874503500735933682506347096967606231547474418967506524259824331302205173629925793036271442387188977041061830439259277501065854081448098234536292114635791373141474428513921479523364896114045613508563602776288579486316326691294639432553779045295937510359272259927723373530098158693807813537119114793015924146250662324063634017058412469345042787619434582631498512523214880415577028610840582970296793820288346165631983260892525294741540320034466037673173953652340428118859500771875335970949503972670270211792129243342156954112243638780054340723717895060992407051445511551980093567914625029201702901871367220192886440913920208838956988390147043936972523531115120393941846317242091407413368656000489528279152546421877092027987600397854072944018274248446698981483701524788900960112748806155180903318384428735744882508410543973924525663257861100932217220195140294196537695750399667653059440759053110006806368403470390145187657918716443768280448825667324004585062413628900478495784359175429591198718780295248889920400341478642759235730974292680478646557250882685698141707692209736876081336807858746740235309086352846326787694749576725376125761424111146995391922309901082684245934326658210679898524864620510359483524603534125604644037978750535989678014623501536351744877246902647829556986421429616252999888408545191809196217384659894202204997312121013673316564940069828795546148276904089575482467763966511655214616525419321971450684620670565018903805203640144401451044249288441808920168692341289279934317957144567419934985416566031002872967058545788825845001766580698940891350710792998978331848314061921530557852224090438145337384225334667589106253272365489624611775608996642455343843142518339768372340790566851149863081353087606282196403338463727189245966901274801161756065660967440084329193280045077444753949464660709406325175852772570697766636094508206172289944514620110955047689785612086887800572500190104797020252076755282344840922663694779579750449832960437193282696159197708591456480299960463017939257548544376297454046061786608691975088724631782322506190105252952752549581755306901506877501277161466585995409744868586301137133840792122629577729134473824903522195145385696818981878491343098254867316944162109445926967574497917903679338615523226333829858404502048839226840636456510969545548804188118252401614983544866134750247975619151431014782807437281312710428136883667657599033146728948428308906132338901951930186972125610139655563107074854260126217408402925127553107550863862626583824942280181518857969364989330961664523618564182586213538591886676207773278803639512859021326989785409898610064581310321799061020747626211149366146039565902063929636135141842298464499603824169171296968141395122817701233060108711351388947976814037661870301867623952578053351802325927133618498064527640727749139263624847310898838099822610597761707529434513052517140646800024017771961630715126238675681727581749729420112944162401517968248275940744832154004317305101908997746376631281080080131883015335983156783472274101900438275884451112863081663332772880149418558921178324158484994780912700385023661383620516443843470562893054595765277679172971394542202284507314453673182331006775525584366463365178100581214593219363867829286175048066744296808559503375128394632676528795788812421838368321075939571403034569799684152635563505964458192142732522683880791941627642370800463722936237667018781287733956212021195183288721218979648079745133763717088796713844535096349112605146112077582866392370738925998175786119049743060806356495251084056541000049220645614222180966279574431968257086605468889169717826404207104897983481860215582517789137443984223293126515492271909280997785034076775692138087578581603398632437593689643736450167491332030628142556704009310890901750624996894058171617093613617758723984337711318266580132020363213053545679002304870311547010626641660058827994529155008675715547847822033834925386343423052703017667800061594279900012490375170326350370126494165531723391750279112261427811072354311901220852964614072335475271019051257796263320774016894536050172811452162428914584459439302490747016875419350162536350699721841998890880059397801322953252762268887980629431783802603323779995238628126366252412008164173228135552632149872158351670526075655494362312288038974081915939566888608278345495139429357959720629145683195963118674670647646398694854443880692907248858701184079843491075906018969720506115462020624509321951024130167106453724689455903043811695591788574170934689434812739576393219718504269665140156390416938037201389176570902183587474762535550475332865756123646277823333962757206170897242345420431042667450210479189089602232609445922925291509095194758170466204033717583471228059564950185450682156377210914405013746648033962314797930223379108860137079240058771155854385664440721436985777042223566439437234202781152778822933508957879993133135233827394207943662897966493554525625935001561549360566984457205058085638293182287348357655400663447658322316760934823476802844959288922937501219065717502082507077432509165070163534790911600341382341563869753845258405226286142262646970380308573891381541094627712129606699880442949419932843290088833448197943464769272819615013484801739496679346804961372765344818542773890322306611202442006234894094787500647032470591660022649854192575225989091699165363905561875053255174409126182050141390898739912569934218242452636384931766533808607818816489688575421353548700632215875091698404816868712337413392191680139040129794958828435502699745378995358905669234045444637569010410392320093342294478220707558794082379779446517445534726127520301365584269982824542600488990284748751343075989102041296229024151016247931304252805552094779731069210740246785073093311328210345434212197645660901518099302605263266075483989456031511010159600191284186109299759297127886948348621216526403622577440187380685486889597466049729109141851530719097703996423300641536688368127694228345908081841573620542438717359783250825841262220402718254100459297098790047003660809681799067778651459976289135053200754446117482108288795823961985337386039518050208570796651889181439297881013927477288213410246820175209020559236942679810638682582938060611404499616807608001340021386752208001015124363187291347049360090170531000496284381454636999672640030756208969836382394606440958065736640065443672832551276479584675776944212184918197712158259481837292806506481168165107857850988715437623086861957103164963429585165224537369522709891423873241122264085696021131817709167251082426929433817105536962311319512106330718592927666869412479350360537154173591030628944535031766480833069265057334821643545279998883512900909022454907866617070928197045538138067708777907328262358850093674490777442367147837548301365403657456793099374732262149811847709435809548788676597351350427358816711317080012082784447466999103805830049802530124308263480518811792744971937083294860478842434048332154969341058644663035766232376924403671637505127139162193629630636420914152414913699440301884061662258517560581812191264784552209327155643335050092509486727257876780717137294931140340592274091519526993821560715951553850663522312373138632787101319845354765634561691905878997951079926980740908854600941899514070341329648371387374426396805743342507028519298251563041260823198765133022804239739812777875994788651135330145989267212030551999740112853803677351925348972952321727483448307292016511338681642047415709010886021743564226116537574450710728725080600604853560184735763690750054296215384224143746389089248353243196314068593981941075709186684752661420343840438535465387119244183133922246435202317574218186975995625810519105956580475891887144201254478767634923664128100520465930568050834167914552592078572884523227138801511455584376139274022580484124335171750575189520951640540235073108686936302320533355813129839002133857945797296860612806283755976083283068954328140944670376228223563418226177685668239875565648321834681909803558533237446123152491697575397029733859856827560365168388988928603951022296400000876791817978888318047964515564381629649877545988575211884426913617362770400033639353079782047337231689773742833049216190289125989103270647460032123206191179791993123407036099681912372129719037814457687013293696675143807743236572605138641419313418890118075765849677952458929290308737227564640615224901057190872573060391815720491678940230861768655792756726972171595845889099023111986763136871721075706750835885352433854593371392440891966327106475373130786449997691965092251630869187869875057113726006768540894222921189161889164233390569709550739571784871542397880407528091528421807268202586096317078518619694808400737930626870516133990359750290620388353334276757423457083651514616457539410072308839139710807837579706318949125908324746712966468803298402734560113725006557212255310549928884065029809010602650098967274135577134632916186822628487352430878761300398719838284484425433762489104228757598821225894914644649359088993004843526373745187932288667303113244852269025140241717429892698341889669153681022532967288999489155630409703302452547913405171156369350404970100953973296791897569070161388107962585400229442348353076977798670412065512032220160814227473664148213522336039207999395582859831079551192843318274982510628361562876152101628315004261430584248150453886877672948835856457734248257910029313883935335916037498635390153254544219638577898912588312296147452536263134339766406073787320335447304761002215574406731509022143855454790958969821695714744992238496706959337643740944895192162725770619628859643856842890445784062398340665743216756337745486256915933200912477034468127599467128414519499180851309384106280571118579457852826004252363584049021637516471592902004411989361723168107127622749035034252500734657780438326330969725544344027316916113075512649869813384941310343139676268001895552222981351616820002825726339990128537999942767040899881041192279435909207917544316734782800766681030397158049131991682423344185342103097330493462498049022373099859547790358687160614692129406896670899590811581923114619553433355263082754846408009269039250976434395384475844595436410683783777033080363034397507800081271906871153722670872124390181055997834914316921768600116978286175986001925915714546511509076489081799382437259903480823247638580965616218217077300461916729811378859748888911745887449314881852003436353744664974845630245760673595962626411660686114585703238299209431744067360118023897145748367401886241308811163709440768337743966026717310617619376709454030562414892123949903885493252929963757164477618336608441788461120164837638320847507921925268587937603843404683327855577165050719758422117836658864708543977388122436643833015836920254640359497125339837372537784270285153055735829372005379618195093639084288574031198982555643212928170762031901241794151349709590008717251754633023716820616177416477783433950832030681068909176488550240445671029639130307379389165030042833788425942734570696055746110453476176703838803415229432700494786365777202340808899745392345361461625956290943537813484642882600773457558214750450210636833366542606635388576244811075549746987695475467819290071371222214722371068690095576953332845102128733725111277916852873867236511390517460114013735997232195930304241643541271542460368155062529130005055071097283216457667732979201910769499685661802217516825309757235129005057237499889268514283180030840640826320388275079252868667059187027432888373775476488452856625216732790677479933959007581896299926725640818058596509665579932855272524791217137455023942199450090505537592408314160092435418902429853064443697592506497376400041726244238825990346822578253563233176563921553384628490251659905916279654163130950623046048521316103065642930786027846642631977721063338855503270657997778151815344161448374945176905596363590644579972002503249225992916810283421765204490081355273984390575570728966120565536459598981265082650233017474794943536041080244961878755211597025801903355428028412763129288803869275495736408341881487880225161935147921180743114730857813344857939219913440955743065222477933154247911680997616589212393231166087194519774524336883050472640448616199528071439368187544709015355784194583885552723855542099012764581561090411530536742997009990275039300584665793044565037103652119722975309852739006754752862954788163240662288079725223825756257905145657719304672564417928732772214331336116310134650700354581079003905969250140867652833879192418253048160922717900661803578279234302747602290283396559560137470062506153800177958284745681173096174901480472456019640741276864726956030543628813309672474643730361319500943131061925288846415147983617818647311452615362137364713930621400032725271189569558567364737981569308037916366841549282953839346242607252200054757969790057940046652897820348316603107241895398961762946560941582138143588777752364859218391245515811681891939226245323232825390935003752711925721920118321132159242794757339652850450195717895672483517238551788334997679217876246430921775878109617297857106628908534371070059142426095408638485504723408205486963126232229982540344741148251688957465567652753688000616992121931500560320678842756402200553440519545076993304964050597367690163203092489981563720112314782627491702648787411656667727065723959713617490091331619142558891262982320433712023745546111738329636989267855771899205203616836161996189346042796124145004774657643515762666331428830186952199055100121025028538196430027824236510087407713042117434109813787804453556770176651960491798634495742971578604372177608407061873910462391408895272478063834460562990572160869001085559129638308936845794460701308144427204354572989148484888772598807697789209552647582869544113122340932921327448246885223733425946177795064263036259129999815485360736917699785865552414268711569360892702012011570164933124346906213585152618436583422238647775674884837634572189473347869609876233096586080150808555220047647758077428299415412588761668490386461248701035771609582454837542138083400496016411521492950005991498030351641022849428260569672792841438601661745652100403209423418556402641835569181471899580711803758845149080732616532288349602108710310377047517618399960697935251017135480190029698131127445362899032565890791628550175984471216196668375004434385678250665419957208157940145066862834248798985920137402851477368653936848549291101005815684622053160537702858360362818067471068195476394240665151589243738090754205635586877676212026572414055124358576227826521183796434003548286109432759825666104816912037530051136018925629928764996505566258947835435739522855482330724626141002693293639337926892461879570786607193279882406903699565685773477342597862085033280330312337212819182711775123937843843439867279642978318563907193727500029221832764154359172372534239212386449683981385273474651562796120110985473144970744819646323937597857050517481428710987986373251196458268394465932046016711613604221676473419108080436468530048296157200016482037475311254384626011574954349774616069123191275340254208045785690578290933020378955465502696183689553130683644235925170126587209890796184995073778892990545656053360700600051571612436855301197628837588539839347929136979721521299054384545463346748771185785040433542695836861047658483041028271404641413575003245461660922545547835222458747277115443103824065450290282722183274351265562111190476673791580792335727854002739392886517959588267494783142729478075383146147077585359494798009488469547790564112964822384960622272758552343206414293798331984319528872792980023291180166188112496181003136992342378518510080346333843913250297367891988655685233086813184025722148871535475223175713899889468970043222868021137483023770418151069798666469808001493708171218805105164907721611766078395061212027581957447874212363551772380590638169412665288981570245772224783330785280728966871929405237414508567360413038628221485945052326332514266039001600255011455925780468305240898070316904938144578853098621920995735674564344631316295828382502560986318638658835517161038586919672940036386951156301577008420307227425575635727897379801512927264262751200771104665346685884662071420565154181488189171378739573976709642169308354184248975933325225466191518517801121518236905784422154008838063766413779123392515885033216822588806832647733673252559731695867351765618362847468118226447150463149064019083208179286798559491915575822036260144644021937609444396271905605063644858534899119985442667666860910265559768147287876782255765122125255170254811783884409293955117421100889319313230569835313650781610531681799275250551928969419163197721809668962905319008217827423603837695982537476821341213890768666089680683223950149904434731222109842709865226790279561807049751843141105234322768324820383053727863191475801410622288086359530672523006274624874685325162488604501221184231636675417152267255745138425360190382150059446507949689173257929475442159934004982836826237696345275424947879933097018965327819549645047388560813155256488787120841039166145547627471755116560743008577586083587407500866025993512847442889126244830873551842279919169601332910390655253936952110693593524061118762105613203687349272584005940899272425421663204483798157085686626752884617949353650138977618669455217495521288251675114901240839729229935339604717692263639189224336807563023529517178467903771503795320973380214116478269947678868110001937051808221436989503696030162487118941045882003710003348322559673829256098461682635315667189764768847054235078747272893144513657703359101085038968440882179457164923210792733271745952134426956998637293260830002509571166444436456575242842707652822770367413072394384863380576941022354007109385870604875982286109017077109635391433548913315513198449866073312568293470490084298011456516700961870934851696083848702728022117109136027030601496343454179695788512005758498466694677246600112371537018772703374944638319442868552154718805903344569872686862975748445478985447625266350182430260891005735842663043915975555772422457339938650769088478728397046549271702101095512519503948195821754242039066376872702334203256096132263775178506724678087737552930324413216591345424126738307452010566169624674299992642196209853058119085024769599627942419177096559077521298173178503523620662750268942592323700562962459538087633879217659237588887718871233759228819267001883336198756611765409039924552116661319972519212216579974954371242655466431384719411896738416454966554166358758753391619880673340222039013945915167674215993689363770316136469255813458973159066855352169157721797044919004481463473521402430527950390202707657172168989590332107711009203832514051076082391577746655719986804403267193658355671496070462144403023438045617294480750187393867141069968402369621363244644348178387919314182774478766697425009792439816582614139152581698908830748964962929967699534071303134187667605106361770724525977555257955675290320751117580292439450978896344640610772328241176310124362789335375439164860324009437419164182784162244057531113770841836620071741721146432122816492860868311359357998871924384381019436178982240499556015939269151235926067584445697694995972768196996416225736068376312273822068645840629902918344069677314553764912895043002003238886922333619954021939732837378840964684496975245048712842527338492119908277316792942241959108517452408040327139204203661703577836816304082033346434405460383822464296425136586006928505807939721015320033435669165406629796978244079189467149860329743739802576038164341250008520145635109720778340309998458023627672508038640726153653210731445114669802136885301556295765958497912337001275024605236425898778602768545283593826307660726405395645728612169126007067937063852959340991478715037885890971922724017333893081245979077739346536135868734827380979227388801311365237878730666954029401449819787228880062809835935772901083587022580749477114615247687775950376241378143283647385081468044161756965027912135224666867933660498362417135627715663287492962928780355225847666406151847208532380273821627975379831174406580021388578966440404463100707936672062758048186551789466083375868293844913688229817326888276144249181296141897765357605362455431057456004389836925592672421655759494105077860746399666413176215154034997539911252167560718343304659801594969917408040531463554557702638966662234136245565770098736860798862311017399020370167757214253000520410468207219215327885577744742797744649172208450785084858603327620511959939560428847046822369099848044753489064417862334631789672614225210506528690021206052853502406683519777431021618910492958594960948275851246348615078792630244505554247609267941924689230864488185587375957483580272996233814087122766805331551706496931409335400705594588546203411606385179161855182576123711422578470248205171370772165225058712159008686684115563838589566104284935087952430736541525691300364361226022119708180651463830143404627113557853365654708468347277839482121448618114409390824996519670714250147308503025047796228646686474312027882776685098208216481218871416806903998271610197924019618426331504712583182030421571799761493317480598318957932948856954599294528027888907773535852805746544417115790130774309847479087844614739995607464954523589078305616120097660831787726348788823449825733783961683312159375329634921758170497536752810774367531193561192009440917716915344763807805768393502575257493732344399565730105015454852133940215562622979218036810803702753506146125574865430285378668628270658352190263929411731781625124372379907339344338375547830549747885112937316810980702025179341895701465910327568523667238070598015877399105467705621597521139212540606499460408222057969930262571830176423732190284648952336065689461299407520381016470721286317233926743517713346164412462859142828142177378710806822667938778862093185334930311448484668451764727622280650831909269401152676108811710703543043902564326348254899914192255769882087769203604262146840522673896612939678726131995141955770627670896707642692774122053085290403161904100001215391717258321587435264221587721804246375694389872673028041464896714620182972057656983108363834350628118340852823021791482992357052571500198817029265729513295368376460491003105994130824936756883395909023881934623635401546581605694276850486572626710610207860909620054734001791582155098085551855764679505230280423918746207564603292692035163460464162090700822238329555938338500171799928952832805510976101912993813967376312952464750106853656763635850862086493372295738903088127985278630778882737656938204667432740043587018261724771647961300440455643102739718994559940099989250724786908847720558319970474783078095126847456812374214297585168027940667916935039589462721425597484460404354776132370802984635446028609369637292071471597158726838283369695811788864803806080096396191119723658159535198506102822283931586799997641651086571177923857397904423870290233631314577588055356255676294729346260974026537891544379681934235794632826035095339859481960225644382725750803124861271640550241695592468573419042940476341174944583002403092204832623840731274932462791099441325536401805305110013649616515685198422303339868225456620999967990832357873625025309962267848738560980764468452083173938050831218707206768961642573096512834133560146441382321831600493791751849065767465217406624999240010805964239789335022908386096300076738157794984565220401199530407651396607976730126878295723296163925158198280496375626750257844084641119694140283316586270901704349528838256394110548829040858314925616501168740291342764581259313681804251968824518475259410617079707242867637003222303662249185785693916299970174137943532644580111742016281032564770237555992649782327879638270874213698870188612333118637965784335872475791667294815064186163386998835806747351639057371042108311840548321533441505534670761495788100002583235272987247250261917307387693050617762836674654600714600022939112215682338940523660011147507756247089797885282503027419086665861151598514039557023176117175557318951500571708049045677363897523834157975645026847484262443857547914631443499918673519496215765451061094705994649514485361773673161167211415464629680640193825067941361868337395062962276381947803001816358950533068393360171701215233823981627860682940697425763130298341508758690710695622994163520504366090573271217057227460300166294400530164205540073331818988876113099185991567280292959586622224049112251490539998676943215786205108437201837753232314411002341339688552032562819203709373217664358793753291473168250228373859744306665518517424701335727213395855456607312219615021737759134602980896417092670947164003586371424229994192432016476585999571684186939226861511183325646234628863226510672500409627133808690041387162412828966477702579162113142416819553914254167048300642796743426048116729322066909762989897372800710265731133985452646196726529703195600490318451833924573313631753892633976674099392725178421324576989549503945599906261802924034657481147562575165449194375321461001169742393649563648348564171413398624998627501281429443484855329181689150046352242267465235078137299332051325766642753213826154833106835163101639198563966182247577253157451804442003686861571038163602139636157551732250688168953532747778078737171348906803914519870774296941521261213072108721001401399436270843332515438379426618615212965743827110168209964634573961377225727185529651204825731753603099849507122533111878553608891000632494293985107216416829535944010495717394841737229349392153380769408371047787189589719013786600095666351784773549884108397810376551475964401556055911439813927988628636594932408880237034560988244697646433520208345818600608907000879489533643576969545130442332833611114832802374211911420191797212148263705115215987621919004016218720682441325287064337484685739764714198033877935237713014035529937368674359076831870318238429077258055819577496843967411915641529520669386909478547155817104316173123065968359493861398851376270934114279036504740684856133948208472806838549979124410677222736990042272866555348847196363998078174048612515034892583497742001278258694379794336975824216565826201819976248068416765125086792490416854843381740721013716131690111830902637850617146413357806350374189904329494710918076247785709213996886389529864127419654121078806066816902612189287206152182666220710393887538027370723605551997033662666669152284693785426249578168648144833082768312386917463223991298746685987193718669510716078793888484499063310700086469002733232626033468636934718701540832925711197862166348373849707015666778595866338587975939314391984207642665660462752203983477288589473182362319483701361246224710952020596248863968852567087481499299181330695135256157527197938444377959268234639341572167012630824977780053063580301928025485940200469888326869231954406491279319743355972230137639115389740747363616956565894173116026524618422412024005221399847042111405614183566109130628299282556701532392675157605186572377569216373435201017098601420519054040110766734839025305166227264480635896052613341340743946291668579732650158396737604967422168736821030740428585441154539485281616465801239872318020219949489806022023825298054639081737008531403385587834602004713614948812567865526313955053968649659398574492941800839918753776331957463441427703946140242110166623325875947719307643733396445109974508034094060503878316767457293091995437219567972176842156819682417154258920338423192283538551570208794119037761090565657882377916844858261398348434575196552015806919796412245642394480838862959629479541070206171702582395516260726996031431128440890208886843122229659242825346113120293061083230614124852757413178916450450549686878423228167544860399239334169684704717454072434522082155695710128261409338644180224607376734427617930820551184973427657874311804885552669074365519206242439723133922596226338791696580102352425513899585489203816948494115461661046542587600268298026969709906106663664265356231881555230248756341992520109219476195024023194695244123036485954178391022261448869776274409137073097789260488494758918514726814395232172828699127542671218600473551144691660990912028917749067849956731333481663300991491163843306375878018212448627026176943640472657485401872850838480301061899058710518450790183743554034017997182025906913442627272040053082047105912953726634549246961149781274366259758006457746304166927672138589523698065317746930811334563944575834254408751433448888380444460347849483146719857471123887868747876966034499823756402242239145874322750314013672126591209195700921615028531015952176697531145681559928631564708212366262866510894502996321652074834677013834359211697014821487772844478421631193434293940693278713978213020422084038293075143414289894837180817129205159258979515175826277357006841870296979911828832589683022555718089929669841022338050320986644594085554263511678387060890100424628773843690350446715238064926148493405063102628218403314995369442996628373561060847319215671478471298600672905477415608547185261020199379016122941909124983457605588397842789404740291275922022312742769594211320051519058480337703539119285594323140578739514274500337102899860333736594126551729652725137414454197109217003568227914875795772313362833694493927592108120595766768057321175355038773161354290466219172390589589071700943774352056384290782087746291584349378001506763050685769969536443689466171553372239487325388505085768870514893971484510795309695684007089727228643022034908393760520071176708427630997446399704734865151141680112878702767083746212878032629594364277469132688226959748374659052854243516668893880133225611676794799790819398216149875723189703475620002991606828375577500055433900120899555955762894591135070266258066803198625075756380766411243429577030369762980678448665080347862149301453106271850021837788516529997742882161661053201051575748661239541330897644961364177147782505096662565136626331824398603706114076150058450256262043349017633677706830541653536444419203353497202000776333402594086184844542911822725270320350258101385289331679792053973938574678405225680931459478991428042723087164417918140816325244276765986003536739960725912334860944758317972425538663446454972267188160468377516340235952072886754516755666716184612627828198931309311104319589416645763223110490382689858810067248719652272812984021509568319266250535191754661175836775050074704156631434363039516061773467915639411367312388391676104937661818611785767418425712330244496031499493583342583915922753749646357110687668892372679815588941088684908381491109765042195956477298613835876623794275888695853174051535615442480399725775894726706725654853227839402529472161797546473014758335097364513126280466971077735074804466835869166805200236157872343874993246636380582162779312559256646371916848107233774323973684102561578911364682121136545213709622931205203882120471961506169728636862561216948855576689395128319387745391590228921928348665696337997712816992113157666453833467120743787068629755214131351586057773908574480156498266315919201800773553340508021014184209098971780621144542281168796685491215489576105154204044807771190614051497394301599857484147433583693521998508092623674746441417913888073761786003532146262773745780213589033915860045984099947525089110108485009553182264263329390650801239404398405230923484493207929834808788355696235762542038366528136027867777477770212031964958871983278453132075853279069294039016588311229651867484904321711640953317108754740410687404823702190935771319700728899524456417522452106444848112084228064752666982339044421888543378569316967363412770488488922297579994242580093808356724738719119366567538973412737249630794797119990954515989313118232637406502018799829393300734514513396246630945336132393193573228488601844751244970717184837597993727080690275356758519948161292846733378135668097487614266559031655504322173142865537933290759110120709946070985718448385136048472748798435195247517609234321455736679661467214141569125415582865208158504441999757053002312021335704233803914222055473274659848211702509050684973394703348929731334608060204345233455605635446219691411904220404991452440166619231148452496392644853494589202540653038339946161508278221111715594155350938784596394568068196008566389083113129989537474716422672099783022291107944301495217339397832064386690106644559465111358454943842795841303903067539694779380784452144013759338965912923503470766118685680702319272378958718874126888974363566564638236729262948003185193568042328863142231933834839508078628232571126559414246130861471199508580253642772568785426305017160843638728125928243544493831994228302944742894624989407551724363107188904860636919290225762634143549878167250919188864203174839152958833889492908329871147216504794239175168336726951685749557766126443293907313281720325412092393770792553386456728617133186744748442219507340175527441317450908631963734199487244805181195468763908706322237843421315314589667588833029300506955349365364573426607854889528696266992687538370730506227644780440541121881301598577637167152863481203813667619655863985936562989049653441400362823683171298428711726989614162992691860713625142943415896327612036414631768378157742414934176466042441856982168106204786473492552917571031576029161623496910201129183420204025598819938741207726698319518296140977461962809016985515143271257364230268908028160653203596378923031564292874511708199614815442452225108030025316903404495054707270121664362060799161598550407962433146642203138302045167682462216062938099830221473517397658424474961169717881867420622371302068765235111689008903745767379021829951308712803236481188826143407792572124295115927933519600645421571471074930215373581756199825302651147645436236485594879722107797498345471449721431930536439752590403107387914051132493969238226082861605307418612769354753456055472026045702101499297594314629114454610118120509874315397432957044328179793309108003099886535285209099164053072382567773036216307058648227363362218545883049574223598855596592430577594048324054683233858819563596637376521963428895758279297092580605547520801760173577120386898709911446325218550295451154665419795898891301281807833244529269542249090428104408312212840867172226957073989115867490417525943708487901058230819923401614945739193541573320247107836282527641371022522923341553809977121639807124567681892453548419000513048409381290274692654919830594638711484758417349167001924475996760270584863737891013331324473372039847688295044824588210789774360385426492345085859854800637193676127665242544863414207044392767287856571880962734496517461847010715241904577919001802006870314738684234390153325917579439409594817484006492332143174725861093494736341311140896151643361320210564176272136366133791001058999078094767060174346559203490265687302417350412259874559217694975230635128260701759670905611061058751138613985963026363435038124122048868673482758833794857010230355550004144331993762322959896324350504358941090233200045319044740845129144462365918907045538271148403024407771372645223567734739988246906969977339473955508148997390383649751236156184015225053939289351960652672401101628844526847989685736760096383052664448861999805156460041069332363970474277210428931455801441541244074797716638126942860513389613002826570902345567012829682814530235149462212065441508101238581356490483598495509616317289013644453224595499346298997373265251289706999044128811908700463216793093190975562496555195706728254533724681183241277968529703302105057769951693598217609139037638834274090046651289716873216081688688271234283845103250336714626995619677047671307259330183447074421896164419263777030963903176013956918430154860608737788765736368844319503245768670024352027798956797343835603617990806261413257868363223374610074435498954871338207196983086334341319553300121073336803476303209929282572678249440476514075843567597298049399234956947944069952373020865857282663494983011022114915689309727862381858644721273703773243190816770683509497598362854400704472690605895600617673993044954680010339649550996711144276593983169274849087246184371311816239208535462628618103631195730165518056633638564053713548256976793931682670241732791480361914726136820808936846314853853136073840846021878827406864348541337606366824110326080156162996234565289939120824923009700110403584036610765351007139966097273252791624329629396143931345604246029427776758617436585155732890301365351045619413884372318746326169545365972959126175606805604222047544535236550616031767942692972618621407513746603827458075887247139773764398447800943294778981366773024505885395118201966590183446477676484229669093184950996750624023790014915961380808521612196458710735490248954610950858216980457457136545246886276208676189796289477857520588895276862026709558846780097634859588203417077337961021983521956941501046927064569991681866525714091960447946986340843393371672457218568916765988244674857114893676380070157905359314518732174208794367035677913595949598170777473170735622198889669010630389400323661412899563517582905063811360157138049432811423196256443968394994241798747227202418054283786556624455171191510428792891619712523020292606007029219655487026292098143436621072287815487453126706614074970650314710252351410882698942005206549482314713424964279154408477766161923621451622944462363274309248980844267750921035793973636393155568599435771014470816031881876716959338864324054083182444161853184954038069132565846921050901110663264589529788193485611182447667612529346090525951962090493163961107247046613544984935365748572126363649196310348940518362540831755896803567620733910054203128707356774461263454760734642167704994314343808068446851725037283655493335432470073500964223567873976902977221712880346418151227938915208898805283164244606234914136720057483622334674361681130957862401903062702651962824619519623598942478120051322393582131978119668890898826227773200325931992620200111900356024381179880646880554745202896658167709766212479274307758987936619755093800794863830755172728359960163421602302728991947416123317980815277139849995135501539979565217386175819298078253815819158597485098535877081333938279251242024325700200065252292770313773149464969348348720974337205361425841158548406292562408737076071620685996748443492845597545821371800514739623090089468628659929736542048802356106772829311998511161731635555829399597512187285087302382418751800191522206312782979817078501388839778689859749434594037416457823613404842593134986498394271905193206838731522786097264965129570599452670346598141346778899635981422119637297390993484106860556516402528269062659911620024001954991805255714806905626146314128981294545656654925407428151991310862868854274963307225134110102127689249563683750281382553914144510292288804940692426446912070371698021644569205236366063136127233209618490243562778342420902778796072644181114610475591183950537658437115067163601988352549586697091106368373201348706600525530680904948810776037573097341740291653595896406072406421282746271257788420904395893365786839432183451550931837304820398749089579171691916688219607906699306786803340590076985173447249764230985620191502732175326245157491043799166717876454363382225238937809308325826175855337504467236420541550867291136449531564767889044138052700336515689768561866082320956906283267030717325671204881998309524057103464222416681674582118109177494055805762706733536621521033042787526290351726300003949961594567962321395328396944636664291755011036976180451565791240752202225420428223490911475074152383555455967295732362741466498725256082359462692773384027597852973461652753999256005715303642693109729402076391985798878373375489451663636893519903985951837131669382460165866953608544892582070680399322658519211688903882500431222440311940873086837437268369893091646957204842494637796262502632469360718832663387781707560255854903269991969652481125115863902373654581193933809731783642309359876328520789098568359066845419194772501992235644086754920451334776465210882137720915962219761557218884180314156889882832476568346499451761995479529261461634064241967017843030147763353072295397150155510017621073600798742232284931627377042228705654336885837124858981982865417403840178872361470284010495039124541914948713957009730663433289905405872564931427060146791647903942497192652844284192749371000149177660417804470720864399934091034458210480162874849985189894349411960611024774701329123940775970153177903497242465844650018415557049696055225124711595480430739838983230201011834197623331599560829578629252036481743315589480939421168696482004182743377913244102062710756916457834494570385297590894203701455469013269403252228006980156681643146967096721385446063732366872746594843872126606925475585751039916576292380595716566859492655966085587494594872757601223335188164094576851227142221247212099535195146604339644490282022429684411480750349413679892576152991509636324663173250902438802491182751390970052232110099889149003902124075081358923209477217571846764310012680938683621428610900875395079224452301407964388498291712094993828861480327319675479090934105412131631622343304053579568070601459336459289395770466666740727254443692192613533656705785494375480626292840917199944236808854447440103566896398780018357207456576563524747346433346366490469433808466831939600847382039493430202021398452528879451203825862334556264337737371587907499791946739626487085924495829341516468967647451194117809559466749396082435560220127799124225017505735784125282512416902061775956665310367985565211149568595324186123422696309919943014805053750336071704539313682148432721952241949470795554447331635995869723423310196581262108924536869853826822822676809957447498013457708421125156015868990592068561030422975074297207055216829902616544929347583401621269186978757228123099664785702362942694045652282439813370555713870415773036112996890367039696414194919207970521014708615745877916642728073910837473175785406632475905772404882000145162052055875396615813734592744607231438106545797309696900912252893782708654568993862102398027534879917131630220153430294553472752535200254968540711838105084710277632545260076898688852053021161852946392545461330067730942886806620301192817321710145694326143038960940938927727995960206675226280970089439799781607974655684384608620853921358769781040806987426545910652559476178964419005834883067639043010615035512567610987159385847288250609722830744616653946671244840563643229528122777059355215200955192925448119838155028792886150475190080942454327559514069683619506231203479169782175652756289827583170584398648527261805089886089515733844781658743158179642727799922679009369727942380985290161668820926447719855835402285838101129408006126875431314619085396409547798275371386393940772823021383473298073807342634191516125573477052903662607729520897560736898851876537735942452630963913563829527384194213579374249608977868474116400634971867270129787643857886681674241947661727582281020312193425504530755098076304988085801837294176055252913507045076935588117031566355367109935630327668155023649254803724022293853585658470472644862473190427100914449429779258978174380142410686965641264149937231572592800981981208432730242240518008584791596744885955626044532436559362575978685818420854400064568714045148123056274306773719674477978958634640328808824623994383455088496862848621290939847080823430217901059351807070985505681707641064627567632884595790313272858447206243298977040711025247982825677839231477708939135656953594526803505654117478641993991402008569710373585578057286957079276922524040769689226550047380458024942029125598126351481634537292384538222395522899897691347467971089502211640974877627019865967383085593019724092113324429334262100374695068890558242409642180872266444923575037440318461825743740710427672446306438564225737819259599739784507281689138227066052490499837535110670814695018183112175072355417371195364644286486477986574375521847024314805164439594219214723326287020830697429501248838183675057123779527923228005664099055997319966457057807313332737816442757570720815771530808399125803028479339859385372657037731167191403644470498294984890404590969473664046665351409050485611429881991304631924736103400212840199903418654577217727894452932565331895952676854868109002617957265545727801316304506280840242741988802066860255973110684638279782483560408349308833591204367924138226174409385387069272499513054318507064438007340980178920201780925185482341424569716128670275618209630916885562105956125263610707843890673422442046833761219539978767342566170521875214447571975767211870914320987265067350536867085803777999303686019631928063961745334755234035228476459964411927936897431832421464217279014339993613687112684910739491097211744908218809796291455335386144931375384497524240009392679237533516282570814883247562460747474320499938790015909881599460735752657603645134579949554383540976983535257486696832169005431073304181027492355967756888248756248742604786358645943567130006051255494822679471615053000869455931553305853088979522938741575405965240120450954836559811953837655654133254433602550228377066889491076179789775717698682458554949078563178740769744138644112362918157377428954562248192062737916772465335961037766519214014144950776269594434442268862747457634931863090063065570477798610750041823273799260218055332027652684672572276078073352348755044171736363231876634982467032043445273434339983513370273515921116512449520988214170908336186403712075766986267702934994522411018455462681691727927874358900058563057747708789806049403319117313195545686768455563327079650662551967451998472406221791768151670841720746222249305389212755465788428225039391553805047034317527552651462001184958486796083912879617443558642282785979487244417154391344264731442308124702133845661079547040299246398624715427500978244204589835081513202701298785874026082558762760797221538508132953235980934538820940670975968243890674063084597926251225784156617450818826153231856565649631572643928309081042855047170473482654060148264054659108669865689956851403686994871145395731563983377930701715011872355772997727686132200854317635648614825650489343895709363250280155619086668288572516743051586821335678187198730337815334252414627220209502537061213536318907336446679474113314591450747685002594897193236059080874676644281937575850636689796264199258697261357923576886719939911553801167603905181544643878995524334682931231608761890595463767806757588355364236682509267092121127458278205704900986995149155407511721561852119430135591813423945362679657103744360834855181367625755971914248774979568914319449731153582014082353407110676151685695671984598051716431035142201526350712906629784096578833401231431596520336046846736399487154959555575721488861245136172220615891506116802811560672782913017376057673538244963855601050667171802033342505954205516126570212300901034956365559798519100876964168066302526244944919034351982225508106008911437310611965056664145497880421430319203356199144610295285941098668142956197809112181594829885906160448924541559845091436946887844418745828825259048408486682199785573433975821392176662480365181010924974584090710340170919322744441528026439239727103375448219041943198575225938388147173121150108910735489418390183455506169252798648842374504041176410251274245126187333718047107394479859515735395566934459813881014628517874174569622412445291261743067796015179999278018866013188163400509479224773033838017656736948962089078159743576345510325185161569879939026426582207869224664623552962150499369259365538891203644075576926889071192127874793675267310372544435811621900560472352985893569177798577031743174255447673486739463844415676140289445267666521306401087496842722445099960196109596517138616368886606263612778896948616778429649623421617269773222436019894675197069761799929871985515200999735993344270549364756343046592196171927078886390805608560811589581011252646698296189323961800144922303531844339632898449484497878168885708599225952392635912556551771922233901583871048479812785050762289076957829063754054792449241326263394099084526086569784936305172896817637900819446223790380735996939453711092704505346779522238711429663372583541752372704298345494616964913580580202732032342649088611064562071330118957538991836467822196377057237428362144760257341279507612807346877174079483367771772439101312639151525328971577660256783953981602331086027868794826913980936762097115394624135994402297969058821054460289749014620260511801494346417765978758261878627640131106000852857494081002694180603624900549614043588994394128380524975216472220071696627084505759696508471919672736918761737637149032640293198107043532343885464481226777198397967195526711459030798700670883410029783999747208297809993640846786500436289127105987999723166388613284043788151304717334871160549767748856476991686351769476599418011198108739075714373128353546116904791045907558970932099517493563054825028251492959988535999352645850455367713612287870794910139435729784645874862190157187393960947826456371303601322697534407179370057939410836715861848317906916001610200571819499538262736360344157935461740512780477717262217767110571330153144557528667719014667253725770214163225203683020107274833442648822100454818114152544933940478448921325974244354303796376659495653875138579350729497607516103018824724579215990568118863136330067276815727232229685500441150112721002594680700607600705566670512436540515773687773523400432876754707837906409334441211825691724328500536189510749138941526073710472323004640809702237575763809088924837669583820931316479184530079291127259892467010035580453684012861044634308770033239478228302626043103024047285493119106895018243861704237748824941870806515964518435353153061883551457883680060998241075797310605189868757529743704926741223258560527949006917931366154546582058333249692107203136457123890192260701528474843065473637390215840143193098243526494754383200963750154650338496022066132662071352276005454862996003712040239499612882213523431479823600575489798769272969124846901997305673242250881518623005483839754599352525945286326976529719430315811989400841132842669220448617028227494748293278373555512391034750569096309841957175554836488534244927873516058164876517995231576608712790806316773833569239095760188362059788953721736721642186452216000473100484293228529266058425308827449610890908349337112567739480061241963847939246978501642273346042750567887549135889413314446788509328375402696292501497097187303199852728957550010966012885219392088002347962543146785264327589259627439748269648160758579685248921895427070203668499577065497707956552002488129631768422622057184902870975673419513765624944804325291760978896663873830054123447293253445776615499489208871166866678535375834529570310768308644520805644282838546782194680044156705189894297962257616762783530898077452623262469694179739927731300164026148260930152432838099119728806873851231477887222067896749517910283581618595553966208694609289282545044914821161191795940878104838166184723853238320292100873017759129937110622510737334090314310518621419464444399502508932025065383352231958699653778174905610210542975190009077869923299703636718926994524611984378290731713629932253277913110643599679179855774832651330467988105647968443593239552268944213299388708367256363810147140881961019462092365441452503685092273847430125147106546025858053957372215658772756260093332291219001788487849022978768620728187275080208742362962812865574146971768138842409093702169155814565210771948068028337258869978924325281400646780301061098814200284676844108718999128987673173774732619902380568398670439792933833441853445805729649966025472117745479997977961762519754262955498963826188990768823568565260673448114435160882763336079531359449954480145755298962582913266790215146150745988198349302349980626282589887166262133027530748186030835749111419054277101179239391241365681711649137320103357895622082794725256663273771310605090186875483799043938839001789872700731665194673741897854653483441464353547257178944883674788921340710125329292854589392583783044355946983362578591592994476064098105321558071677194351710379338974497759215639520270223050302949404667464727415572671917770538838427088300854722461494677944779049563311712789607659595579625960802624275541850154214993772311563207004224210751393484572115651002362676685833756638743573798028359779898860202000045351909085338610644538091692580926162513459197908468001223406299576925114122655728864076749100642829351460342920377941129531945282891905779961515037236499911876538437302417483296083066410976598830819842705228234867685235302639937442426100045749745650280563286214853914158376767869647286085395249642182199366515595605690811297131181746970440559618095184463548100544004109344653523153236645966692843261479525449932629151132333265219211095956683559616964401337943419271940660033024086471606265017855591773866473537214284165925651399515171444491604379453924673631976324376466974462540050134140827488720345409933372977186249132131760934902348581723030572805024177460292751209932710998188823949853811793102939201002333737625083495198283715392281084163413583547748615817551572917118394578083564404140891062765938666142070175714687831898978302413563442574010997962963349927764348963589780307365184399492565849617086808111139732760040868964397535436213591043782870687280695129963983284094626339134085815952242895857172836711517095470622597612018637945329366962144448308445328800251206554401973188637117753510890820488049733454278578021151450801722042447855752561025465643350421582083726214439190356295087529261638721835685638681471310780144606609859335264867910273037539697712218600066093165464558358938255172912749540518564291314563262606417910473705070644051425261329089167235610904513161445070772705435492688491881353957726438865477587630490005685804522954949198571350979997292888333603030208373332309909710196699047927716605344272837336094716473749211525940278239765268744138256438200383572825164405298560142733689971312452790999422850892559675967780555902967789510023140749158688332798598165851299325028048382779918109541048678114451548935027521928582398837353019520633014230662294223048469377606513767533842083985013049797304932327230433033984993752647240661377129412974966550161243219212977300590292844923884189466640318327614907636024598467109860952634299412676486991642270492223300067216393824418898779172602020112292112789434609522832049711949079286871270237564997045966375003712495931009690652933056889367913544023094214447201045637621400183441977793532261987361119727907520946695814477533474228426229602593233321095955784015190204966531091178310399364005485648298484539074703742175225292605705727207818357155099381524387688896000982303682413423314245655661572275841063418283328167849692583897356164621515210668762747123374215038175697033433810414428601174761452574340862496137655713908355568939084003433888359256299787159571325672934036413223772433571222225317222279905298123507362546858135082041461962023902142225480948664253849968840910489598484785880331308399345683866397795655985520842027701122436862658865340229570881099357501208417828082180115609279859182009151394499982568593299142037926935902995322376271747236427910619809129782953261246486041002157806607103555938224787562622572618070138756189503700167837420937071901523895078953021552382411579194350664862669311157661362391370548913305538376873152907029926620064181157472252106093533806483320866428140211670112403493799949768912114874675300203798449233303654533837889467096811236439035697739292106371744894144115221501551671620682618844217351441967457031482222548835706081009235205100475821260290484217025539082659563343228639667348534447807464767459090685317704901933517636029144022563527910335908595071140547198261739843030750387534364431474328144440756116147314315453072450801099370622496034165271344722759043202306783604357105927021366357943687447949784139306626567548142455941707498296487071288100416265385988887111471611121100999242309424817014541035619628979124116577191281154894288784818547868681560897633046225127817520474183324721105499370213271176817050998465369378459082082596226745844058397689905897078718081325298803243770564363143799816648527934383305255785149875345968494503460858777886822369794460299498271704401259317347498363474416701802175640750690965271177691549310435748420249067004424201797458913574222171547755079354856401758099133943011607435838706235088234419543555624554618810490905695284439378286025729709270468338751406665636910475070038857622584329072274009262772974120627745046112944560411714628310830773894670952054983430071090114230435575218263516761944978613252376329262704792277146630986919572974365439767635664810093291421822789306205982983352594962705840254102929758152761023253888365202030898040187439589561668163005141599010634340929004221386760442325446438513473737102546203841532436341694287238830033670816958987587531953470253460031655903749693594093096139404713453174232652812235678461994193547609926647835891601014081319731342139434684191222735106054379534718970934621783158687957593038318190484902802256275785045433466907873356697255952649582920426364327319577509091285387879090059674669888971942134661367894970299438191538744231361283363228210866535902868452952120630796039519691361763776480935812821412223524323567823075281273217134177777536798041700887573815627934084660430296994897474662483023914914598699576558705577162585569698721829378661707898329822871545911102658972592261872151325189387443661698297015570019061355021162416160951285768829400554134259774925368458170113737798465553005042329213038409001648364236642887892628736218368232827743662984078733205578315554542582328988834258421415710504971590313308570407064706362913351026105245039956002759924526055511981178238645700017542687949347686627076484467327555913366622884270350849169436807739151603085232013779811679945175077423294354440309784244463457217150961094633180958463864695632363898618853152687057870535894048151621070997534703338355677124379285070864899327149255644191946107454181498487632944030280114550417435847413353794549470388911791212296232176564074309323580653338187296908372903641890756397702315175573719463120186740374491017503495345886592081390714373244862326682005107268703216473708492742854082125141072386436276298779601848593568110492447017222195191251327640505976791346341831930736451195929132427441826912037103269396374588095294213864180529903460353441652357971529518600885072497846975264142650446176906025300668009355989413309656996911556078512538241329572284270322810652745184467623548189601352720248096264756441532029296270209378351446091215990089727807794220335749282919561458018128318979607145813615614205966970419994643959370730765081178611939882317998021351686277914204895749746013264241649141574979822273389264937763818462960419579414300702092076785157968408837668098703482183884170964223102816555665778895925427106237418827178627860867167936702743469513792196456483088702904559432441033929088190118638376975181100476025552815037653479456139246402081557658875287915327414624113204319913858459941130434524032183742255922780516680473769142848801522380735281981067939907868803081844448590181964555285145699833875965924278749442446081232984750718282794875536758318976016391181636203874148151217986524673670638802882597372799236231375905763641398707234823941967585013699030908283630586301034798836680238144914451890485582018035745078988975717325019856777405800906679939148619452043180394968953164440126006275756186200318686871512892795582143341699585504474483119380728734461619258756610540700454240177278975864665816157894517757273008141593607209181684803764018301844090345992959977202705871755482222847876659468783091613258742194621768404211068616226880152886664676840302250369180765273294970170632149760570268153437577043084480965008444331076582199175075428311517047713628314073228390842970669885091161781975950775425845434412917277212956662644529585036726774348293033356356989818251677779844246277024062369969934741279554810399012548798043394436059855049029605347467845608931067876708364788456004229390380580293264901630078317184482660678961923347337471627592579664777762444687333153504438891702418680948470042711059192178294386104711120923925824089366102695741518395308843359237817381541017135002723275224565329926929325658481592391213612478630366499317879869502852556044180020701505442608234730840788934142134989205708214960986020781013802387392976686200936355071560036927988351689828856521506728363188464622802346828939031396521215263429075461990993114794159145925255523964682901704238405415981387183570885981876547659664981390555991644541266870810190564572225440694141868935700300617996854285568847799958907987360430004714746933780355830823880642765201519002773191193716835420956308654721949794113832827135346713929000501310957436562556556209388213004100427704936094163508064480776747084842320522454259712989811604694170878800435507063236344369778383338569288057029091870007231903187353044230816578277091942377579225051053363175023151494849785379083741793645655571109227559416089181364028278957580232851531189244091817072464516243510033377274591846054321369896162090608106971255554076328896623625978503750063811343082287615002761907907729007314948949182924139783182666747729798676454677225660044400799162578659275102770405245777067787646979508698069705229692560000160232560552591229878788398500224440361641471917139065360799589244571934252851694406704809585156519796510116457714015865074080756013893616807715997071883309536959164514302479536625697097734217427962350104999184002564882968030401321460622901708474711046774631256514420523718201825092694836085364393830184376772216739765052601152420577681118277793492714276012775794088688713658023871576099678400061115258841639341171493239924109923360389850991468947124467542312853549613826040087419502677643129342386856828163153492607939197056034982904685008409967981690105972067765696592531525076267702470157986574951304385535612301908751568851378460694853109605482673858947233083391839398413769087002907531579102650774927413679095726713223393180697044401440806299047067667814880010916423463754023567121928778719542922916440501317548988293736796241872242558984903493942368233661518610808208294676978247687089894582997287242604568078974533063569546611555249720473366255221919293104198216870163051624441301062272268075856473033802646010943924202601813531587617712719588294592181894030436895771702297346649895768434285408329165129593600051744064382108986226827200338759311558013193039835779042770830633049216683707090506304330461288057642652525802536529115931645294666002595219279268525355002691806610894215114190781664554081700717845130603381758757587678835916658417629569307454230479053089918563289555765490947145093731898585346879926917216916066739981687495207525130848398873046706770263504805127064968134267354853960280847077156048965963864196173779846634643063853514461275985182230217836170061818744150149350447133323353082208236192676855778694521918302422386690832725069144614296207168981106444566436500810137326185001676915127144410213950052996807695620229753078603480372949641065909418381808019107601449044584741968526685465414030239661926627985245447128925362752957772391835983914151103608704916142510957882599429360204509444131017871633271191782096186723946862899736794431075250521877220326941884869064437576893661718564258090528126625930026160239049226501654264908270044299590852337963743112003649536243751323076598427561378923460865266033129571281588408920334912562133455344323914261900540805536905143317466610678452166274203795105562897682972414599667208696587491434269553056507818479883912716031766200529806476237228907064706341296850221379411298090900319417684139483706153183041804647213455996374927745826424820274021859533820457758017384201042778449778490031141570267425733128061874152864345667839595614018586615712317485576287728044285140461695607514527638797504007718630116126902551734061298666926894430888950287225521529291183804820000295991763558775730078750251310250672432788054293383712181214053221831326913677658231117428540622135896843386741715211785089514861039843197561806704454056241064563998302176239518820961102728112941148909452077127981236539346173374256419136321947868873983938380050598438474586547061200020364406392155161159447445719736612998565272189311235817897464629433118240449913776265448860934982739674565583494102596807635507503558960130146875606077922635222381500204037829725467460836958548993888493770793020286719507430911014397145961236545293260551445174346626343381642425204435640182068710948932264421892451787431382027168917665024803533032481046367319525447158002578563153855577558428021410900815158436260155444521594308735425819660902322633057150797025010478845318563699795815424826180455394088868322747077781392132137429565495845319831441678556952635088647934960456072087061138745803076585326229457229687936362560255575049078796553301117780897648113442811551869629060790460467028487599839265426247211162282602897487825671776436503285873227632861125649387491422143282955866000777196136943919864512332612654801783831011237306605663421536292970920651786825631769715676384160870592352438679471642555643121093593538807452385380509107495142142216741730702882658506067102623894300652877036078015885764758411082672260473506658369058898403001631099042666499632778021765653194474739267316168533376323388999647475383549318031880872709719749715229678838509601363067872667019510444936111080687891233000853862576513410854108139372288071557273523686810787051761644578972628893756348849419009027376697146378748675611445732021816354123957152077559004607458096758194524063115463566854864749272968686287889424985449104249209210823717446922836854403639351279297391437510006914690362694300634660992254644443630244902837772819953394082601520223101892484985501767765038529763672356291834468493018543988575064410295200111657949848205730950305843402748855819637138036077403755073175392254614129496055341159647632625349064021862222002380820282955859500896031077034696627217234935712434272885523414104134195637396469412382615566319026011594285907693501569520815929931729738994426082332732800126101958005383216385180271147730610256103176787470349761585946298533316993743768059378063319405178711803088189636763048696548972976061673513366766091715986615914370555979398496729898682187131904994832391663731620793586247975349466378525346883814171630799750819735708281346444556708743989243736386719083414860658873093400264133666848805944474231103883112801282873355831146927265494267752134935042586492425835121034769849006257889265927464217778158441583798296702009526374211819373905803199275947505404330401762830245036142499422787678561624163762995509985742308208543648452687910736354284631085496607667819021747085092324307487032234266533610347537946019089497864712605170547879348370048731368856710897694566199361286998832557588183958809187047503347834406205096723654761025782525804626399354454434048437191756085037891195867670976264375307821217929728759880275934166937617386367340058174452157242123364719481130527756328758441334185411873465370570986092087564289784625220008131673819080220198368899140621447810216153415678584271249759136868916488756614388743791665031652161858700779957651820595746785308515173032788692167851449516221147849639285151174453382291452545204097449190516853027520623332587435642135443427166228131804803591548511365704524991039152926823103026010305840649411923376133776916571286307753226886779935483497243009554221802724442133026990367053082110891082451910629990597343576627902048270070259608788725933472818732205041778489624214446698033499759370397116068979606239246076156772802401896930943384998764544073117461907238294031320371100240346812591588951840359977754096514605472333725213212375162527867073593473068983125908694285680220192285513846670986590053497008142000488399543184725226737551560928143944885007468211830311915039158683476252609973724968120362810885016116837540365898156303151461225817837131100220693310288928576671086806612501038408497504612443676009776186279598165406385655013602670854796861324787426946164882707083922572491537337875747531482990376768677209403436936208633894541310596938077524718705586067160701805494094158511229964537404153973248835117317621986367711879118763403816209616912283291421703289144930479030011120167976294274987765490057970814753904949151387466186102209072270638409994573152569639108239527046101696591785106199833318956224675130218368752551791259455856408133089644878892028359196101713501835267702213403190708603805847706190642243979255865071959304882799930963357557235735477665691231813896571955858700555337916468344888690245859610519982863855739553179033953647228031118492315723547247968239841280843008116413753772529008526659186315261171333892957548058935986689806310676676164983071515623791214931010442559121087387095574834427077943265286775461816159157979172544272634212695493670462508734745515146850173093751765214578853494276116741063734694758096208811381991295181937513480738826221709432158926500817370247427780038325031210631176803970270393531760487783388704036116789734386611646799495033069427042234613168038806139435264260738804607964145167945699077506810671126876971769752648549305042788940604764468247253402524759484215483905287490840001336001819260072695588999672017529487023429917601077383889800398974011302814320293923884058118266851754826539713669216852711927294146092742978193058271521507303572638792694835019022368367502095097192562602913482691578646481100271702982161481142084698390152567069257163003487378566538731153584919208996704684658533962577253016640613770590591035818309266360855395285148671454586647653621929581542600555329159028497961982988831114931458565345709186967253725576729222846996359944492848412222466155439605048974714029642718137804763733680417615415619553478633665862386675808868660616175191064248713730421708122452850808547763847895172373303341107644514345982430834896630625451353219520610042312944793367167141251161437672448392881776935506105586990420760942206355835068082915590631385085267505002385029963810693099593612004507451140603884809125833397640691186502845647790325937685624711007403807443634305682125843699057385659895608862764144243745031246554689273389862592206906855308669956546411785267408035619874398068565860472717063251482188271873871525754917986790706403069148894360408746374608235719204008968825064353485087821275172915001792283638323810262619003971388431963478457641788501456060300921244874248703995920846407217743404474585619327855454413200928388969734607739821297043754323820852478649230678262726223950730934193122314884168421954093854593475663252357735337449394280179959127849474623572337435004172895195629262188123357640462408720839555159827347786279266056949166274815701427691759895635021155756739253736264963482335396633196433516784338097221298334110058205466467193260282929231753171918786385115561191128413920463461352901671927125776120422985859130404203438519045258731386293166722138750549841714045409046318833558310730868941696633973247647884207242765063161601142715180361993736913582139084449366458130948562922739710921100934776369667268214384290217346751573770081784458228074407015127562627689771532965422314448764430893417421120141533977126901130669964130395522273813617217119991329335485717741309560061852671513569136238601805109576690296197064552091437896968294813433464158166208559690971139229580681898496177057805384439347285863566362439844841053884736677180806647703318097615830324806115496042833928631383829695236075345284229494793165740694683500818429716061296940311773613335840230156384064555398255357145767444583425361484578433262269618442330739973163972829231492548016522037747923689103775382397901861536051864091504708508791661780570002641908030591202449349645827292524975477629418437696768434300684143383706366627357931605057424252730975610432982078913905345648122262476089077912923597735897826942740458611637518535693365454799441191555528105745930503568789910771069060634068010765125969046198659800592706521653576435410277655730074988427008724208567402486171429995802103128450000037477125539657044509611316144547023408942084736189379276887131455800462249358996687548737348708209266188152029640284145687349976283143778724501892065061968049202988964699485340767564434573603126277402514313601418721870697460136654201529453115830699345465572781779206678339310966692242563245744637717458995596601441731456258679610304533394391049384693918664909415964173870763389863314735035359077806212901193852270309820542205447318020544642873685648595174211275446004288207683783027032395360954624020574984252319737092773146153043445761624753163717332699905961888963767260525014421488787750539538403087444187733750946107917177347035991250825487978821968417469200588317032261044900357810645801385137709615102999488204932191002029980822693818723150004507164219186648197297699102271181155549053168172524917944827688771330449479648868494148211441126880087544006091468015136906897941918912962175440282714750521205640765696273783393694844212451459387579282398276688715026583463536302437278285225710491319712866518264271803941686084359447015190281480226070130381542807350418620362308652254842655149595872921057668488479464155162112701246298776015997162616880470286206445802333129423542188807350848864480709521322767660380930415490462289544775211599642610350413361458842796762507047604244041976005116604586846251799134360145526829151037446230519026043338073441717865684018655746474610340655371107438286461608914789544832044883317124411342471276108160131783236193583741045354955910731787289764299387314378173087134695704704703890677689966035010167776207509810834536552972950736982672091481123850840106635619271609920414358632735721431584115482633894264752067902041389196896535141636361269676534495412222428464321634781827249020061766326297709951110781836371346504950144773350946354262669528456014018786048207489705861022584235458487718028212166599702632786254753581349183756469669925125804520306103717341496102902514174300768680721662242585000533476796808503035414512263522431385638599382013832745377298469078758373746002933779542244196943619658361211675320603325155357994362867546266110198712595507804216015798437242422222499263560933045056791606504835242832225392146954144180970719937740903206952552311304024854223762100946358977248898458625042333204193467604731447165851641497520719163436198724575349261501090456306898555977344845375373470975747586141520335433037059034857818214155482141703494832895018622509785093454266828181792107000471988119607561245180443424086246279242340465589276985533502835368970518535023172745100846574173616292965977606852403140764269454978227323421136794738580560178139222297322482483144334043608638957964430609803499394521872560052025948986456233687179572174461012131749321322926386483434599449480051646785126088402261452379201299046736683709207262982377093965589518000339446198378243170511704300741720441968115242689592369148259435253511862584694542082215770535441028688492840572872377910885711297255464013386630431831591913970323624846523118477101305259211179365816727685596651461251621613500419628652388967026181928147810262555141071581409428019822886177744623306905770492105172619898908275583458601504711607861093011571867099146783104136089913528328349797751456083594584045891222322024445994504785599194671019481411069218461640582043416369585507051025430582665748615456728245773760438738198360315924747323791942757794840874164206032453067114658057595341531828389636389708754845225418627816689031760348204377122090116032836477210823949613556461967397512528378600386163715286033884153292845162988418518348746073578577291488558032608015387777076803729376093281501513753858461228607192574390397593094168252685923407696115061954945400784367395130925701698064096821967454783677834374869512689865493126050853184140370368872170074889878049442507535718478695629888041426713568913621583090414032493388549194097985505660402619349421274004938361259764341341869844836984998078681998127999913722055749835622302804643782543679298952136471003355711466934541925047198613459592017919030427260638536256386404244347978231827878083906054833056721294261247467193904597757675632367498025611239146693529408117548590917348963837963522238674391431322731518526495040812229811426126424290367053407735521182838619687341262298241449433295188807934147561911156206038241384434157496066015754233048702545099966419385111385592477320837917329242172154444430564017881999185967595642248028247886142830664361091787906899919994520388360673306903416198305123340632256012256866641117150551360553318903615240899369040592656381850441633406731634918822260741448882825866869058919427279240255349817421046498364714226374507281852986399727855611210326757466563061663071443186107969177571494068026119874220070868605308711675769820230867713494871029318377507540380109026189752485979036912645465634231315364854902986443197994911426897494309262361286329329006599439745307644693310470915262231362835278764702386607869787716169438431665605928015109781009238715456784390562199116001755668748278859465594119598142418333114446588496331067427966018691681858630787876741168599844420497859108611469469025350128392794791642291245027314281266574935485475217151086943992819172059689574129355778387458123338936487069014378586444832445991920169497699530891239004873092681660982112453921778759948992927959954612899479163330462785856086590528262761105428263616062456020574519946124074452274136125451976736818552577170399617180219144720881787904717845408842011558583122312572527504336018168276131986802943676078760662181851938818287697348896002442061410225383767335288464508196825382476360199447882364873079430575194862791954172935217648009105425063276014768011897031573660419903273968469918467089791886573386364480221644975323482420267006514476477190395456409204458728407519149724219700996446648951835697759808046192769203681792571062826422233539931055774171435549125929685495755755232626454632960961068841419718370719130655190637829181128588305624293544486101239924904327441582289108520934425909261572408005819834846205158332696209768602805747888332745254753404893530877640127423624948473777166806028530919260475795972435271605056601986006729034054042595774248651345301863610288297036656633630524744965860320915874159760570622498975031753305997699931857342761521438384408381055650500104031273819292239649491266107514583939692849125057288854038742773578270508812819293388509097613640536285355154920014114004946580048578021417477115455851378017310525940755051909817209805953719689020477342420162010579965437532339025159553234278766424045843568019238761207715690338462546431110976499056478179154562392872811697798569155910084673003533978363508007643282775598198386709754374184370291241546845104918540847362695177898118345605182363349551074572807326359569135164764329858071691229693337016953880115255014443670099491988674285250640112505066873306793554037053283374680531795126111990901497666445611509914658910908828619066264431692641241734904930009319780808691478788765850657869790915268324288215080596122817670729968600784241223304381244116381753182187200726421587487258837836118161150293989963986881290152551182117389211135264711550792166817627224750826297011447726772322928074862092730220669288346893354505106732451904836066856546965418498061334988248008456041994817544745926385640993373759802479472339634040804376757971484340370778939134530458271263553257256516038973624848072385713177828598336497332381364237519857238374020641808309128592995383841313563768559983990383072188682351973968764759506519002350160162497483321168899701873973513917193175584201726279723151535451608264180771712402223190880389391469033948456818487188172924276539873309769030835892109590012036504364159159557744266379447327436070982092687745341577776513092975501539131099883830185945581839956168325104495620141601490352713448911409855851264657462855980575184005678502298664341957631777893244088182695975624722425991212522626318256340771156299156382097728375543448242138045320884493891287360360899967608730221042326205918275987417823373017662545856319084644587379138454016574820947232092193548839829409448710056251901984081086326312851551145420674282795427620026264426240501764810706046688105284022841155747889058927577255827248325223771450674642176183021195254173457501937464769076630249781393163176353163369925011887181948545814698325602271120583213574412816017527713771921038268974581150127915390940736086852542107506772971316550626053767911334672897726194931804347470285619071727623722952745245017814482152935351907117042270920438024402657536980633835276767679891101004065128192968039647040807520628449273386701467313965912641966409760272521631340028214398345176936716052898976890155432768047824021580314248274050060185624185760622790249129599299266323210617892853878791067998810395997609114313033451707583766324113097364880943357242654011577016209574138110960248231917825273154424198714074554100244783855220420455018141568304903622371303850716483353312452135751116987286566159708586666327724998231505332228168686397985535387698951140078750796711417282999780307207259759098529077714800580963360137521782500670192919528300380363180199564899528423934218528260001816618230910968149623575038997718664108347215827933030242192977416712550917145791132177926012390936559649342523480260099540814960444028057530612210248803982364814582249039065875937228605969526087911379104495400356016091885715327772847101814578828893856402732454330799806598034298602246822795209295759958239526375899068696901527229889980348703621752022168584014394313069915720924528014429224939307538575599530730679304061827006608028966506857087207735037895024286279169265111234417176998459424285252441084210607718218376868106595491815716662158953531812887375194422149294192910151608254970375149112614408470279794427867219971937868497707000378911996238508089366688379464132338673580897818984388561817815947524399495079228383253821912627083166747520591480353955801659729133529546526875595898409134089710161202199649130406139551163959047274672872112340846164862670210594001590189817329787908848254726200722160695559901978229821193463023828406533878851586134817414594245149019922420563448769662225329958640189738770094169653309155737210434292049075616404090853847492253973807675903344870832415346409800378914107293132535108884528665054089261672501252308281362966524626121262939174962213003145557515002556934650066701058486781535048234195259972598493825443761697389445010797591365376333075437813170003486937120312594081842223333854057475163176276573323112137414748827099317293205982142678740303575834425909252210454010554339107183990215601974494930268889503026268908444575030029074341572036875290539427791814181615837299323270588277799831677166171584124078855354461639099419254442086626696306886841716279275166728069610146940706750388620040000763867485994288716766207285602605879368224858651515492104214876771201825794265983421869086861878799608435575898806514933074881127981334961056586663103462736951324315247476954567222119382501007073658674198186828711402629096577563993988001995837053691737523236991854358824672590405497215082754189412430461535307927302015449141415180070017015953228805309161696938194118301204574639675189541375034579954473497616107315801054658652638296093338660037353285239042126300616411075315896325481664158536819641902349647968933339728272552535247509124927501976981950932299195237197736783822568271432162436709945537592425136846549744105047262091156651485196166845656402360855486110065843696449755752072393922094972153422265841792537524065192733458340610981118916615577312618760062786745746315374738800714426786646928718429544741547410742432530178057699305356975448530400595291888181622589421212736089194780219001540725165528313647103830035962499743460781673304619386850893126485813282236396719162664874857573220220547415664350715495720687357908056685830359257149144232409751611874814938775712852972847145287012379662499618241318131854255274454966479058676054939143850039547155360721055232773101782081793357119928042784176100531777358580609164348447563513029738378475181054177231247150171451716034544364411875404130058913480316121183447024102750183082953961504281869154423298251802918175720819826983350329897870452334967184138122925969151609829643342272211942842948553399568608681006090380138239960695561359258909484061482814915330769358881943484187583378117011558030513149277917220400849539119908397486640397538536442730234990268089986399773774222805109028941679397782228670960255308209805185476784013762545167783567114638994031699124642448973447093331547806922985649006567139010988849094756821053130318757816844165856724863945089920292557767613937638700498063884588978056767255142362619356502962610524692402642456344862887452990060922884010376829484402986414542887038910023733013768428963603754758911283663097494436773390699842563893117671399035509915945376723371032094086020991198703981353437051672984394238540551253686522952941297510710034840410443363147732320924448444009100615069345315575122429560372124261432477182107907148129260954877741980845232268253172583947384623518174240314987202069221860598858250489625004026451971829649636635765334658424131057953503460487093579490433177301358468793980364911655682035362531496632656414345683309838066569942476605194165040935375238192401840699072494341596054140718844519155736097277089872956499648622477014127350344402357775536057029422904396984015093185702576994262164693304141277177503338582974695695335041799151100529417355603795859035370015410031813861431565410673541121312965980043373621079828612390912409108096544220456022297263970312341747734587452961508461620691626553413578235036271860695247909520456678774036001477762771560122545879894306388463991278601109056968658978612293971131746883217664972202598813835198295061923071730584045754518759256744156157457421644808722797553566515807923838146810498512833416463452347899384755362378426917415988437811063364415000126899645354161539883653996031622454817494724921943350576624196423052422602979552100863010905074787428060426663803051163938683975546809021338947323868301023534986999202907573496766596527913929388091041632740066161459768251047634817223752548560737339609802374487909657321001207864970588875604740855982075539236133560128000069469082663121160330974471753721940600016098515724842175045762186915130950443696383489712153359264356809375195110675691255503168501756878908227329376618419129548591599059345333132508810721337632330342216556911183463152811993015977656977976316092174282748165058415103652555597880059824579180489106647948993655113888676836512032415519914762218301534901459546988630333989523553145963907457308975520880365072666476769675638219722820761068069325011619048053978752604739519285869157587877971650282326842078988237343584563586505176968619033922374818404512203346526139228052547428546532057523576863860673312941574661351212423040147739185310021704166110462292446328470259763068854884767800987915023367159364252976079440687462127632107778296901196247533303085260815259227965908390744892298782096565082268938425202879991429327452935997598333456462738597754361957114205173226137658689459903693066956528433345379614022054366316901122164900397416579289395669133454375816272266116342483357178791467887912678733776735181348751693161164807321601689861583505576305507367482680315851307292719874807960832903197928044863145885658352276832040132614437534391609789244155988557040319185642893964576610134105272088778286456439969552587169696687542202578106356374152524523579433174071153065992584038632859446395369289576475725364454593557424870876768964232746932864414344977841000468262866424803821120413354523816778075155425479333066446983786389454146397844457381475952028140199007497624650024104587736195428032612146180924075671665954461501448692845240327856822915897277032400903447519917150379986658682244691027172837684247909678055827183444346570143620954138720153828036904221653706554302719235634979157626704086274041400866343523214483247973336734334436842795098672463229040000216140444698645221752441618903715305874500521004217538584266636126542759105877825946081228922844304820808663793989466034764217867855891909498452588692903218458861503384693830838809625885196090283662785594395808038201626726836187636985104517332361429512305705226536696104106279153799575116226654674036239457182685180740609807223353539010067373342603559050254580141148008545291058848950319619075295764129929253014914050161319154722657752178247810832270402763099393459766244070584962742414066316367291194339115099050450570601408264377078577400694629050647442161449708318489307935841106450688259550744966828125377021426285764245146321207881297860598561458552398994002867593783101920258374352996971069039249073286514230804893720700039227838489264639374838055265495690917006703777523976547640240496205628343099754726680250779927728525106265180510899579097852385590503756257069522069908282150580223487565225524885212424576286643631547947270041193802667562705262968097868528334884065266941148901349668671974208044525466213075655636326611818013485314833258746545706647896561562505360607899592425017095380194280201524867474990597905278129641323940742540054589963131268080979349686403623897979455645964452811275158713665149956074266391262290271555024921139253701447682363534279436895718669292079108780941458734538797163076951197062648814734985182248274711221355871249540881512278793687552677099694545605175906442849185802163157666940509803761977921200740910410106609579245956377821032118695663793951695703353258083880016845980766484940589876304135337258473514836469291242937768403844238219728639858111084060546723398815132529730388202954050786285056779575537512023866590571345305025162557655231976262100830592694305992325611131295831792759043581168341099623839646180064069575686780663898434835814329403433954592535018720122906707784451793431379612920034142547038281867095452056303433788858998512486371866944187600675787781943174527695863954778691523865024675406196708649377753150301326668308783140936183574253794820048128640250921527801333314260044996466893210202047599760479946502508232251876004224287963218233495796131262740942633782090698280609916816033786362134767508067230068912270835581619997991035380324962869607669859574002193276918230781790575025438097150549085479456979509642489074892955030907804903449063815452772550427713831725559743302824946962957525080324630631597984795889643028137226461118134245502229455325217889121124672586712013493760440836489796776386560667930000330859273308819029196462457794219382222919901060876151697443002436755451134022458207281707819356524874375770130247961443916004202059316225180835677456738928733990908603829486430827392185863992297601405792050052864368116374011020928554575986242679393162333280691217866005710432008732510787941311928815348806540958146467181800776319984499299805988568596371848730689038207357733843783702203116473136435391195346591521749151977096085748953429592468286523720765690473679321565012885165698824717944523776719092858636124925647420868547404032240033511138295820132034302757115584062388358853248852798855870851568952408380368226358532613408550430343149117313895493489660067431119782907012923308051897589807500522123500048007687965680309605635816495240835233041059576651770009057225525997454574156330363366171937111481338092197168699155674204653891440348709244401065174753732412166874942058475980972865409812325580590275110867060635721626241330168038418574206129112570587597049167810904747930545392444014900626940648278936129976797471930689111669373555327347650600039582698196589109042042086966613696281489898858781303348056440079212919888513372461353190123470084071989897138328954092170110578854637771401753817519438804522888767996308746971961934412314676168959476938181167309276405077919932568915049156573017655573871590601882140768364226216811223463550820681551488961789750352387847518197880684816693655244822103539968678125026001120363463028982879623631717970916664602772533155437532745337428246770416867186569228399656250609543550277128640751723304329393487836795207388961562275539840731526342354745914592448599619672203391938001676535094534847913907791860471631050951156472438071625789565684971434588395357948344531108810936564073074834854650876686316840501019499424875068740246947402322175693653020908110921910454354420141243729182953550069898360491620524926118537256082614469444346595678818196889348955095648206298803380210147932811120232289726344238301255546256685147283253278673728789740667369795531944456349050458457167238470855533812198894633700832901424124601651002313497821840540569623315297341950783186611199774871057149377430760401495191748896853319036638034703139873665734393414183970705028765049440837121758764790438946233526704869708291231584531080953566115724088930971266376436499195965583738716507751070361832860835466469041377636917382333508911700163965844495760698020626847441667960392441876150577331315507990535722960164171490140699293901750939283276462709542568819589615624373555916618154038202240900582632572042055562678188952701031342257528750687728498005660619504416925578835101766600722754924587967476179173115763476352914366393872314607437690816819840324138095603153654508724520716532309133136519114455371938865950588445073449104083582683563462519013694191990784010951636821694347478671624635513659347022642667089387812580258680399755919953404932910911408917853519987113227076377607660841198985380412610964170573871359260399607639523691273156371716364667117835487488737236482855990362330244945110616418210562939861643768517571300117669789975816990282983021246375463613751429812240196202496673848160173726608109487570860981252912447151414300621650515983696619126016487877975153960806573707944660170093986592366845083843549968127808354583140061430277857465541381347250565853574185273672392629656823238955279532929627222651749731281068672509369582304766410235580921392162596401944919973251986172636885512918265587166227486300263386995362387612840988769914543321757826248473327545906027280647914439409941618839003993375477045322000813289542105362188186494085020307338560203491363477510802753661701506292343656815001004710986037178596626665824307782767015726701610175793249942787246208750527911206854552888270664143139270227059975809206122699487231952568733635744252776546500748223644577419005301328566129482865961088420991268862882804943147576132306044084310405126611858517472806346776445950187028387684407723492451139133518577789542786925474069734636486097198027001923067985784669307635069156051373716876282379476128805883706429143544241195445506126380190047186670494888409801864529886608180680252477056511810285499791147935415766283948880362417403203414603160903025003702510983308235976298446893882205303802031290996244778118032417602512499702570391767153437671599936286056295802805459660366364644650136737067965030530356345427931713431143901345407894335985889040046503354823094470993946114380489767253671819340522676148830636179374335169814658904000408563209999095456263425673093346114948560066007041010829021566018860555822242725821496388937423030527301683144896104636992033530346009330231698498337098666749756103798131840534457000721622142602480774676327400554027397167636228926681545807021682123244368994544238188763388748674392080040106819972958605735395363659965064368620122495090599019607265534978015240439695379961709189008018007696797412982326739895175029726253780603815149315223566458389301636950268381788246747527666329472498211856785602174672317501423100336586140838229954577039753534890757736277068557392573449602551070727112199516885060947328989423281529355170613627670804191741581333767485716726617481337000236226330915358117138891294225515859575155662593842926842296275271945708863239628451225221920564568453661033229061748951706773309913223316828841378566027701671462166257614681572495195919779945352395672363838407509663566218268931810972714555021056064047381848240667102976395256919263278150008214487724821309677696120690175064804156325080346409809649359583187779187566430087147665005118162729319327215796966553851442583012018497076940441238444689419530714174413553344844133117496612444341592581391983028598926585444627268252258634778763680829083879076859056183849594724844625098610355855981988493736309095651010769214735816591766796727059604235183715794061041529517573604632195123978734807633360624366458399841039074453731920000029393128836208585495359148658113715449965499739005224252525430098445343531022822791641855029051182100330622428012385735967456577860104997939891878460568751532531438125267995178379126963854931069104001638350421507008505887301680102745162475289334059189023243016839188767988954400100836544460656123553997833941658722139290478209544079874187512483069175074772252700652898145348301679912802689484125612848679457954491849219852625633476204245691650702166942780335203364810313225726668608673464615460765955626243556231719551405880955837778829413776339529743200087147166359920364262982059442193897196997423909258662845640556270657151446779864699773351782732287761574530960012668354341568670781202241554436004819204651118163518115744267887624307192426975330510086117796954098449981547169684471762355232089051367614169025061359820803040153643673920622567980757299402321701175655048202568718965794104143245642734407793262627359815869592363136704465541989744699148065158165200057544446582638333514625557393189755264837460838518678733744687889910429427112571067455471828141050783935007577418440944210734685244303268841363419301482379075064204371960210609728755623665943657824439998482793051555145329282174230830138891070677663508719060113659664307774851097560694608890585686503267679913175275084969230011684405915693399585604758476833617392606148868768241400093432620373218843160791552727984091975398243142852309398443001364237376463856277999869621218147153702543612367464509981248682148369856750303737465290934561255099625033638656248392500833512557110853250401962500728754971141736511799972648392437731533797975982414829011094247714018678049222861461501594185440230088730198721815591949389506710229835678159826751753796678774064804923868444147446094256123053296238415962141060053341911602360504732846649539201414120481560887859566353100667626791005372208780288101499716330496777160544796742994667483681953202861579108390199623915305223785294389248885861800227487819343885250454978710117806443453045083548006921053493082473156714320648390231574730701368311425501126656443388434592646813446314431381130261994532911303843757372010971167655484510142958246732925090114765014786829092709045351514324979879371633960324808758467699787999881930670105581449758490354745904100878572113436993552343861453581462038920316139275582579679540769037123861213923401131501550121046034821550473723557958806008692086826268257563254533366000231581246639580268442473930611051740172757130047300374879481502570398210070933904026081602068952259727804527662754558610718071724507161389132983097714155572432760767537905544175486713194511139738817303568633033990366357747112263720674852662723940767757455160920992568977577683565445900972387225294257609233571816199758974040016748894798232712958698601367396925072926759327506261580774479723182085076987477683569282946120588706953305168608154386046736174141036821697589835361629020521657079162907233235311273579454684195296922004842649729367410436813656977797857426772011890764584487455307922736895429392226186803487151998759068072291908276928949416363425621859346706007581356682701577461609166069998506225619860273679791178334252205674810999890173562444776700350615533070373845716071284986564524277894399056994954297806158691528611750900991379350439429654217564878150670069572794642040236459064369492166253162912339830771671952521744625182882167599994651639134776526740264610831831779098735703831319970500472437764347737480051675256925875330604911641203864963445027896599132126774794900251919523104138546665104019544601630152686348565660041168019377186146896475628826553982891123625422876144273873457647184324564470721223091353058556542484390083202074994027595277084271849677519143168140178156811313796404191670012339072052284232615112381437186868383722662036043520355740525452563195075440040576894619917371897367487301422668470680535246038489804282901997380345931413458515613334459056388414759850511655986099828567688740104534276892491008774075005195635809050681894425358313781478241831968026280156673084297407506406136723556277201891807829985342775538816146474244024555421677802070585796519845847171575774142603826926549698403969828604422896601962531918689672433595515584350886592469651792986562011934384102570882597364801995567762534554859954905023553100065513537644452627892653778161733561112038688999305800980726545318604779901551982292107548665830965137655205403451832680033038425351291743467085946315280438104517235869233107989699439214826798061607974946370257907798074772972115695265285589381454142389710476004071419602726539830215281098174042370195429004353118745592845134912719256044859952239705750187620166940530739551344007833968481832699397472123658780463616213736003016996609281348981818793806215054966186295557642815432859740896865140576517102022093724476738925950576871320132227207728322953825658577558232219467673913265133624735842418814135390415321733167307331301038293461870049476775663008106046486823208747783025797972240447184785750678731124713260886647809875418384568569854325692214167701297660398618380503102602163427404369140123656209875472725470490906084425261928267604371552054503926501127810527855543946813223070848845036951532270882344441277299679047872615046633042920577185450784727943588955696824667945837582811506225556424379919102594143519764895373308303766450812342143471088988015067366272444912179117593633694307441109548022972100648161335912105177964782671396395757501252587640214395629998636574094937139921771169404813358250614481950493244605771697870586516056041022185578210417809736933685244095007665917218297110958064485937762794576607780808671988233026184025889850120729670014918018213273051703637505880911121708809965383215271263602491906128081667205908627892727548414921758469014923814950552331824405966019046110924554329920198357145345834642895684616863436834944835797610360533440900280095787720261805010727760410383660206451876821883624702987028782620249515288894658712578796014782177633541334013458437576304096049487354157668588702571525980593972134149434573422950100507929653821845843515233961015973977125123289237837892575937479072815284656152235815772195746489381169072017921065939296245053506692671248882455343068667602978294291279595416776529779225739545614793216447875451511881354203126493189553840338721172535977681521135347025496148556296808078431652828548162193260059874724919951729711641662749732695422289989789374352418728685259706113041142082578421072952980615145898991459910553070283165292689043999358650431834779465378967610609812695912682716626233956178278435036025091624966661586741888922675885552724084168015628744865622198985170412719365041004268514182508702751563003292604837923094680671823317891623542221276285610984611970756943253517265925169700119384178200630700721966853837898350529061004659396096217563642969184333303312179716030022443942021073265006687961944313486991943559001840992242968338635111553006583352961453270819232657479135208016023578804221049895370066244389842045995826336420488262370910746778569605130591710989373108065949794252156139379999176592698119609929324970695614201797502309421062283615730364351809194825795545571027372051629590034778738525675950394577832562652117065603880928896957346460505068885311741270042502258739945166509462178770192521846836492796505827267267230054320422666939195633566839091802913205092917022202476047180417362468433704261426507839128025015050635819830610784045046723771483463508746124791055214863453814141758248224186679857914872363027035005300406797769575403335427271971018439178102332294408773192413282290466927636819055106893257963559894952111212127510443779632563719837963742257072675810421454980001656335278496829944412320763725091239367234492592617900452106850852114780530706481682877574013963198063827666244397193720392440510844099415619566051480562240588542193060955342478599578410296772330825259411801315788528100087325123155851543293086446611404810893798733496051961299029603680676604268229786257857741211101533928600686958754209822034736405786434576930302114090731844537492298265361238060390509093758913714082708351008517723532509069602644453401491315401440322459970659091381594614094168568221902976710136874074236507056486388057513457204693218286352210885970009382224587183011380779054142954129498826039606004773134121876900416327621040628035312543964210387132334838341803695389190960089679715565950416931493684011019624073084937705128793574137214492315133446273920824081105646382907984355166905909294360897304618140614300217082407113219491637218307856287607536927483472763390387717670672741444705719169570805373254920031510451355183469939296684250656510858588432864569822834225769628620364394111447728570273126803273420826178478712840966733361160079688062172029153160945217163845366991724417805852264516006049116564655962310333272358148078214031199242149408900957684725483036329138337840570440431223269386401483464346561179120364443211992897821674260616740437558719127094495689866961923311465769582974454224316143653834344688512639788934183169091180608180826520138013439974867701844757463391664774035192255127611005763477442784430068083803651312395052669360734868182930351805344263541616756533562435635461727924479111481110590866776968655595682808863235804197064544990635021797534676863866993695821915030793486870487997918990669116338488617634814840658498366370338427323240966207405946397604379986129857022612188531227955913677236940400826082886073598831933058355774188234107729632783187846305175078291706941811137956333885691275745869704956896790508879692393285360299651848283984152026475211070571019656963882776345213690266917610182713462920907196529377411778477460710124536933631303098043515509593509719595695130826207150675179083958215498270043890415615682529357439167203566622790337091062459778271405402359655633891935574666636577928239859373761355423672615780602614093283418905520951076081631330705426961790102176235571357206981832713128596967208350750779497369137912719829981731140275714469316279002423421877839639194874718716305999105250493773938721793088913310311423858583817023872794262410334067236947511391151288660769458012838383181407721298138620637856145890922481569881712227111093075866404288349880886476728837161170382011791034719555298352091312818027868423980315246300230850134741008990094186083950031909727128784672073955755087143216111880007246175619545934654195303673789892360430496406715630079408932626082609653801029520794592377116320572662813856675975907985017568341877383269574828284631367405091096305903192454753333030077758487947057850737100874721053846294407397613458598060739593779957297564410137888697933531047875205899384492460945025389058845040336498089281227825169769032219417388070308292276424288322142871469062879568963991195196931358117597744995652779942747815155923189556687447396823593437278308848232731969447560990738453732311113998581582200290270321928100750373448667699605485032171593941106308099461621754660394985906015843574985602992629029785440961918713893363502006774267728071950701110878802380269359997661286605354501199368385720804424226779657615520459910747658505955735884978467630841276199936797047876755503454401706746987592350884853156261752291329481221164995142055596184358309273309969316146627166059640395164770745873793010993610361337906001185243508030561425707438091238909294361316021599201724894657473466588417140212086452350084104434411844556491294789124823921552595609407520202524903495857161907903202134585087677097967006569922426277869601479102576136251391204114001882261724411768054246665442783480032557022916171754843612020124713423462900455501444850483727221009826021481884442376542396236258355137928862107055979199007929648806959176893224022343387210780492240655027867025694177204199359407646324479605174498807264561055577419741437981628230261590888133873670519423416101864817314098998894879916054469765554775835848320334519187760564702430210844879241861924186758021309012200946037532151396022224698688616110123714360503078051293603055663138143883410467482698138616956073044064996686213776313161311612057743453355120474140794266751683975997955320080766040371244941759316978485307516345874291607095901108563832459364671013374005058956296258079054954729308180287743502812433714905967090206999388228548919477016737106822260866909943010674132898369826154285805275890150738676446243297650018745988913916187836694668217968422657809016754940143993107216761422340613159264998579387178956060256074353779848893166849762130983401153713308861023134068211111556756104430075822387610508738524697616251421614115292805424329743020132405480965045971354311179765752183381744602705803024042258905271177690295672989336484771231649701562799911126096592915594838866533754291619318981783948410035513851073245200275110248523429882285022585649136351498028765497619634100009422341144130957618988414717271017824589560771806853028467574616734250078729154019743436440483508058091875890326652211318109652512672901052523500292537334357170399371274141637038098349137251236379315714107076805462673035241307126100647517477854024198452273199360770864437518483905642046771130904918719696247676978864282446276614960637865387586600824837464241896411047365842946685091529058582702005926565824031271058293832846303099952842044423128308529593386544823352729394202185953000912287934131932005710905046483014708341676316394758076797068609556789451949704085069079348462849919989784113800402214304911026578753845912475022687599593931121356263415142853404938943660174561374635976284997680594222258475290504714646156763127215176378405967017336822684318250387738056146829869967911497666398212262731151161026294714746100390873515779391394484597946285409259809235427028618170585435593483069297593804357786062572249164522568603733901523501220541984950081296510195821148649243508322631507961624647312342139867379748523036689278450025348419392692698118658367913090149091298757342481711061501822578855311201100567661283309891577412543777884788019912709062895930104953303772895123524271686478904432796743329429166001963322931375152365682091873611273405781903173591987854913673276343073914946535239256607579041725675296936903572153987186001255292806947639851780589836254854381494545536628167136175689986487320610675742411593057384371972919409045431904518836393683461508471407846881992173095390396489763015531777896704375378956239643203690867125566150286423853128475512343266992192780872902332762024977675280332045317915783807262770641610957292432997658147108758571806155028128185508123705942574841065192841234540921520576318837962303530505350709741465761904274691015850797392863703987242398683929675867378825684067146702232654564784140240523981761115112869857228672123602439977938928659908377010959718408464823619021373540578303494379681635316363807391882773121255557410020700205596791735802914227916610412044399735125625888630151699525902466829995918359182769966459988305170263109272314407147360664381863465359389227977902280279189764820665569343808111635696702141976123517142490153813084208394525456463845905246412493446208999918183390226160881338229721727304566922840938472436464811079892339688638491892664302758578666094392930335975862057682968449766890555262819471660236359093204270256368814404600283638621386360863614907922556334409313653251533246557082138306809322681374669687234671868847204579352268105703547773858640520545531081617402176834013704088495751017337635458958346831005200900702351497474382660257686853242206156244230854948721527597725391613757111705917307895372533843921784929756436975234643925808809690781243135320745235832141343723117247906466548377188913778124975846395835736872456250442454799444559060973551607206283931498444111860840461820498552711760885416215915300582054014310462616869565983294755990221275109152537766206395472932487840625481513516913160294011003550136425680911103204051591686588374783017105469864637371584488731500453976982810130556207731952841352583315572008309864653262886805581302428559129863572152787720961964752048281251423832870105901818511270536760447919760086864833355069166475356288827305118435437588988379649967377703662695070875994792776615820266329595978098089454423125893604327636002193396831726473737578834819174952721327178945342886976782033026845530220529212734614791993557663083903905231429307554533843777983155603841357710387209543438877908855425087160526742310055586915559489875651226834112311206040140833457040727235393081235460385625896026536374409238555402110970962023788049038579046827997231148304194999852751241368516541924245828616760104235456301100184153969160011247560231935520775327526865589073091993062195506410380857357018471671638983686070712534072748628333058496034583460287899933648875761452408807168533274384288633272759119093838734614108896876311015947945269257343880057473570440479872689332315879038634854248207825868303485226571139398677370747500250615640956046208896119562727336471423367880590504324496747068149486095502430449967989140816729977252111826491750899333440308057928029285603625685367592966451764350969320262147067769073207173067974698764041190517611045302670871109050341448933315031523581220598954494380341227512123902051772248005782839627530425455074680896201329198072964461663076380488441178711011805310082577457276236467722176657144282047542730385468651632139374235841538610698003508184754077320323184236713110493834132631746255625439209278641637390997492679468573875789768351707530966178834556845435322874873949092499474714209952900763153158704460643882249970935874658737916245212496352049440289580332633002171868528273671199450314406590823143013133800247478550508661435315798544641906438479123316780371998706014813521008942893855241183063397982855025952867527178624341098827089716475692412033414243884236567728998061965578041952060422639749149540705560030935792850240176813809917260734525742667991451118439627667637174672506897184819790709230352371333793040835148245614472830379474699450236600939259571024227004521759085460033707978276736372776238104495055429582027919377383043017841486186024409725587172336910476012566217575054128316753454063497248935427266432677458610021106340887627523524930811458297941483220782857774922899620993166226704904012822836104216592985824056638176849485709440624252658213302553652202307476367718105742183766213136326892683244595967125712958610025054133832596449748801185716531064695768916532615424393018860752187788381088106637824699549265400128440033837217950434564707199486464127316317007871928197563623446182887528205645030295472045101337044413521578695988652568466984744658817720818682420194382043007879155949673129240256370837187953390382491199581296120582473763750668048752746249851435243164118167245325293278824007935355760498433376819025376472318882612310613721364485353770091968256846486218210878782002307271414155892554038776654058499707811821173942554937067995311550983860991194837984036955868807405190262616303304305216407270406789359929475256244997891142979342192890546645582488640250870512886085694097406230895491464887888376285490326823228121263662752427731985770851282360186648663746508844038617707867056372094536604340963760664412049501098034783355789719837005598439546474264836471677258368110204899409116181256493207676462599103760926121135661485293013284583351716392690972976961065974957622709140756342525762851837017704748875948618736455449528398911102563609626111118099227937457213902287001516145337711860046025222985217620436795473460516585339242652299141311026433537857961220854617883036936772675605254683153730651323759815584985576405836193485843658326428663646078459216397171212547437520948544661574678400938377157678692922948783099891656310927472719118129276811626432537676770454515499528304426518165107252241015064974185732474747219428197686373664137229611945726294692994606618331710532244349493575535359103337258320549015794442023577836047014715569646092294639395419577700434901624282369520451185955364480171666735921525198001785024634852427118519370132100468534175449377616111386519153283089731598657456681438815618478460159260887355360744284895725130346748342454505144251080250313401788408348738596441036063132696216339678839077383482405381687920694553432610998097202972421433500397021835044169691958017071579054388540177399986229760929666960864358770339310547508371034633353160168933213100762970703013944661374508619870872347146348246892894961913051149838944585471571445483411464906735605592030576807121263066196270103536711703362322639305213351404293877304623640993997456831116759439396531355100130001309820801537107414506051943454688075978206529887513153028349546722045625389342318595049611185302547818708630735254861355163584928710125916434411883236141313414431729638191021137618718449163009787194220498519322749293523253168107236191410438675063016320362522675402483784547873445513921346276241452058413321965257673810468064596479310467624829832429575304267486224417882570610612272312156298092602210955247837598997200134972417968763767334647172438514949776128813302423375737788910029231987260953082487869791209031479717511671672897715760720926455720226850762259223624139231133169014587019181049351013881172336348545592854899792770496217513376331834511581546321987511685472812035264161437586903469870555754834864247012214848724014218023266967186874277869311356306596514293293492356289822221989994259641958947526783878975791349654747214253167295716882610765600866740904405310829359990583997614320118618222688359340963842448973771356375324099844014763019590458762966630983105202317079553127796135816734995472952156378753001747108972195448647913411154027857762239379012344120358361477872062254720487872222730210276847847640352094905447993173348277046540758083393257030805052316228642397350504930030578111553642703137827726244497055776160182908515230776523137441823707258172408012744301819818443323706286963325270154277140397303373003413805376731642678905793096132863477486130434314291669939340857200885788485611793381621749032849218266844527195380881313460831631034790600497166832708275870653495593578925428791832720469634548482743405856750111380791311955132415159209272007027874290681503609639083505481571065959628835548401581895369671029950604207419622700489244193716758752227326779446985293448524761477507816987885669290304219858898648853003040765091698654599399353646293921167655604645668017202939476793252321259459774418854496731524996236033554361381843388305746399963711776734841233131651926980147844664653250667139657811466757943858042248957546294044188595125497627984536044092985826588419972140478367157710289246260889362041968001036137668266036731238727022609249252432945124441620807662705220269163514428952166580565633117205463145817988518795908860334339921735975477013865685669515072352763909308407041387056242482616501001857486288721465725108825507897343240763382009327799444214689253026726418269263034213298185848090704412188500150526763745068527210785759355780329632841927475581122712255275372095857203469084875868713316247900808159490075137674290095327394329067090660786095547256159456591081047571917797068851630218914972761771080303532327019225015674905892354235726068700141847413043059877779741130769438841325179623880935960167361108712007880305181445407314112000803564616849857649545645843757834402810279429597706118335242686473991421751710336877387837221755056187756582981859470604953460688454663815590809515512024179426818281992903710207677006180055487150644137547118549699432686370329691431732453103953032881857667090772556806454108979152030211010473673199675173428220770420919163449161536480773623841519498323398101874051998650658863213186449838623847446813153721847792041343758969315720046687293712867466459260199990521651323352784569354423811957324563788734683000177011681741515226435106525788629657749658232526526469624612438800996599436489591121559053504078469088756866699611974942143450611822043123889765612638495513451434061884148717490258991588403220149201537005573370731188483086857978957656260644991381387346633659906142757362099702791832876315818790176896652818461775820728683734729199776355085866119830307290967785392334681358718338728175768157298600933033715465030628207564630141891783422649978483820587104695458076089369537740229765031897763003129486086279822975270599299255561345766290892906947580098878609734948973582689916971722779339098730647418470223920891633514971105670371042883958181033160129752240238631175233449415356575385182460080685841614070047212216446626076430632576945442360338782613501328108930084630763659296361223821891006050772880066223201697108667463558774977470951260261448720008689046940957667873856605138313015094975408715498836157103186958913547367795022522176374113796192348232905604353808550823288086942336355582464178716451002347982284557269756007382822582412154257806680238453229861382501653228482550015998354104447097115951110203385284920313600608849854375022671818569450045994112700473042473923297913352611600225284131499856790525016548698663229273887224186445908995345769680908841942447685232156981188101964005473582957643290766631752874216522022871938209973773606459815727967000324209953643494007028830780839842343016402459056092608592522112290108624532366956105612144419140572106414641633890803205496359456515520181127301598489763284150520867097478514685097049076840461187649142745986442588060834519151901586364182941587868332186792266957804013377487445807663374895274858542947690669283006425118043885574851134551028036678204869213179429361749373793113435695604202181560831745281162343223729310329717073907808009096538346387957115054231665284906538819430713390080265624940706051325832305949925128982088740645385989305846435558721161032239759379875245941190700491993123555137008451948162536243475572434459886452461201788402912585934811402724025399844147037145151813628079277678205718856477939384445868262589102815600749446979553946254257219159053545283455456146052601820282263001147005309289492981736539277253134377342304719495951612029845835424114051534639670845148525318646174628825973290215338986744492362113007394784189373637384137588552972468971444824605753980979293727224552674940594554285850712900474228700084079528621992111624176471564425223617102213823273908571138900124443664406529859036841981925643171606812591227139912348716812120298442682298681906183068441271963391272541598217167300493840589386590715050797790113168854718582852083396634260675529836423267640001083322952567480578967149045653036255038815775291055151126104144574047804972294484253503423617248201511351858878837819773630648206099314543653000560011202799121739988367080030377431523784458340554484757603304058380210621228647988540753275145509075818710988796978605844465347761621051944400948262887890032076504229438132039659570406950237299548729348907921355492502416425715191476173793740286796702257776011760578678470536691570798880416648290932297450668662847249963659662192472945029112900177979602443645943802661278186784867952028861084925334848471929021250264096733334400767919016524428365910206960840462240821828236149062208449652330117505989099023304816282731138362189975224182865786199040168529881018212545477240015733569831125355985277553817219280937005853123730469174088562233559310820037717315148817548488054626252710118245624063759071347197493417001118926593524912743639885084375412527214964559128243383051288755360497071167773107331861628171158477434666365641737589519640088468255445989093778121519124369249265109783375350324863616314351649674716375928176462421349117968222769952181479646889939916266306122262645589594216332087407256090824999673362658898077369927808866920433421154953418800943684192088370508680416255473189293331152745826090542632047872560524231044432156029448158966682137466323663802565543724498278882809846279198522937953625308825971209841610099536932886908478071818964417005421975063173698622247670512988523517134665990821262734905458675524070894546573502977397647752735585081761492305507983392788751086919059493383348508754784019614914388800520900070215273819003163887310690762276849477726153948958505308663577192910159242542252017425083773670767475593195217902653002606263832826265241144658179224733756783905439990906936378096202136988620478310480985505105664835826147501136068706576974897943049816945679041325710061674890003177174255301329867758122950830843670630034437748823570549703601423328442595676991199607231708750157773390753830039082886132766299615303501503949186739402249680035943137249065755239379030560385867220194169699744081673258976654716842231268102372496639849767119066528742190412247546871270379031002032246512808101176441169758174192865165143949622873024574149019503685854543879324317758197155042733228898743937620002996786419020829543368463337045720877099987808441132699254158943925374169758204189928211536078017376675403075439778208955388687067353938761096354038018940201164736905678047582137652041670822902305540258548559288433679166459575290798369909714693443277314068899203954992549869059787462140633425240489803387424240904233465861930190088939971563485824913277910542997313967320622316222431420579591022332399722541317176506411762525699390733178619197898072211706820754624742177924191198323628046147600444178337020590148235822214645364662828558465813318439771441675366663890330699139497083602405045750342403552991326911552682710989406328374964516397410121035676011949245921300640956258479486012386955292846672375906150744993484469026229614840831561965249499004425234937174207772811796385075007891963185197457722477495238128839049053663238117449149675100860023912938945366131494931017458501630030873220701364091705045152317905159264637129214871042080970185682784054603673371441148624985256794433737784217804394566864928983123483064330428376936484659899521586886314530719236626740112210467629005419234346134024615483437064563455501709198385429109397214705438961246550732154879202489958232836036575134463372516765559164286858916278895860825385613483105025467116802848067092651077132667970451200123298498789816321473773359344879985300983509439420027879818257210913702239577150501830517637388697487966440389405208499590987651093823130861140954617213110655192623125242036687933324600090070403003760876168773215611294971120011277245130663692416643022269589127891069714460108345043096385230445733673463636882450708422420108631684468645182223795058014202530921711621668209559658314684895498359389418225796347631483364948390546441476661203000716355652746379199664400597110243453281460372696918433293732956832405584642844537957598119047500727289856112697853766133061087040297400495238862458767687295369153029436564664486790182249152877102830144133653066401694005751041956653209558603833258966299780175882511179099569574143849723066115089911338288508268792038942380822420348909641409852726879254729030018476341129227543502745121311502422310792183313547719671870009294532488090921692190099956824190038704195173510243265257661949729656281279486664087647621452451644120529164558262084315492166974499900198452072945331742403088140410233838322498430999119160551156951251658825281284243276741320194062524020526179435855093296377730457397743891908802527963022011298997306233283890631624543156905933176457130055635839633003280535966189373244569779253037877125043867540348181995971485710696612881596091054170991572353293220006800871775686577681606434707246226041582802202051613058686424744096646352446157536842240601321928441233162061346231001990155136864445956825696613269824913329656753385744772425907478487627070201535546067666759579674290542161318452855332371037305370837290178207207802980567899429113867707858354148942316950686962518945961280951871774749768049743031971698521226811229482816913765989218975049705324839276488096125614810061434080050286522441566828676282799682842977054541653619741675474832296332185823623398130870935282588418586435931344462228642678863156725201507541067246928131688601673923969019132223366799575169205364954663599968219765865603823268856517670428715288604549595021535793191255968727601107994068758579867869746044482727473523417821628707445492701417282496376408876678237619351695270292684421094148026371139976549692149005284174913762098046445853161331777259150131733678537573424644335945710517626466325184231036846481217418494049197493151406037766797270739604287754372716193991608038424872963933174691877561940169722946490148802860716762297580137451162243434461908410382443801285734572475455229310486686938658878813441011945371330486729828426476417102532096289557717519133711922958422201432668519972974047012394457261823589520038903936805626958716461666674268097288477599795064464453985334065669717739327031064518622149214351473653854081504118150191773949417187402095364885466907204662158887033328880146602276646255240863871022243787472503176813858460095406013224469137432378353846765472650773712330440287259076979126429284276480668578246285413271750785863044991532942362693576087237124367181431257600100150668819565359167527244347669806091984843925046218136991716356295863486519700097138853621000625381500515317739689655767528539766041453166760257769942998795846942077013578127937355023884908090402732674590261706698450233103618566072538829357092508765379482993449648657182653622228294841745721432502546247151832917637507899745140930187664512217764422390510366161774505043856366101008371479658676108419651179870117479310949798545201862409252216482491475991512394603996286691166112244984084217846082903532708063576772442032196101131872242999857574773177083029253071939967576197618069567291139902084398060391405764600199494099527316516262042105186033381561153606246385437708333495626736455508398405499195763718098158679447027230990597653772850034808114382599481423524129860813406860881251548629004875936875278399159769078481193316662837839240859976322600966848413994546229702458044670172050028146131363654684385561854641092939134882398261203202765122977058755325073377409222953991753329461868543461526809231219303553491928181991297332649320621630981337166026961228468626109027459459640501573001129247375200125635655941413975595224525387042578286069572332282655715897393621413665827653525785571142348501241827641028111975845921981849026201344765006648885074679532678701174895711644672602837631614700275466732432382170452652959797472497833142004245371213189720105648834477195197254937692388319930670596113136222732398628223943719611086811460276571066087954205209201355225325061535860986155365695207399451250627830507151725161267955355611706047929406883112447440021156781238011736616295682676192349515538284815688211433092995482866387951139361381105263781282865450338940489929696308104449779332124221812309779830831517700856099876657010166125200023631070016663874091180174054095609855303762973115409123066997294102381420283548485282552229485219464402041484389287711129471678660085558755149190124343768021891359485371968541167369119070302668104739959255193328317057653125650318161645794571394422507152900946534181754612608988893066002333694632751228640600821638605571039648021551684089493176300976658689546927163283555592566281149613608718298821050226849704620045960460651847191182652922525574725143719538626783566079816908220401737753577917964817649943154205215879891537625729510869530457867859575814273526009938388694557000442833730534066220791316344203619870856100525377234801197565351040225411591247652710905256404144371341209451271320473536693615698521692996048908591155761226431672078708991211096747553527156347651358370607613139247931406015407952925909132914783089712786227483019003022232833804394295099316386650759376382784051638629062465726717317590850486076033519287940868220584706578409345523757021027721142333587434091467338777011770956449961298827887202331990203339462612112173870156787674076332936433759039162715185889320349681030623494591295596324661600492647908447739959687599914633646488658395643702472095743786027382134465272439047083176079190790002355372849167400526019142878878705597686380005835133193303972950953044814880228552774042521727725082607982062685384766107357088805742218867735177842203793647242784760826777020138065890449701599977848840450085564978084068164830418879175865904576469000040868961238354321741300983238579290467675292886333638842908257523314488847606323088177552375675916498326775075038051961198773220073625675114411452740695096365307836619027790513125253693731368346538295629582567574871429017344744944875027049321289768016708044609962307196342152081028409390257831622924423317305423644245980060309473118968413926243181600984385660381409241410233219262199902368643448094837847536639653236818308320335090069489170792591468619931646544576436300934049376103904906498801200084068212975813554689492794546175452037613947794734698548349027707061256476515963234740557276015752221794901140018904175967527083229398516732301029254102894990246688311939402893992591226033696629320747513496033340279166157209755713362106354300351155224246906115182475573647441780717227755008914502431886740907491988037825887014932116449572565532120226009294498637097032933566779006854971698300611755667869894486395686446096004800793419812524870094161099099603660643829394249647963523752734685892380582842129586277914105364760642306881770261851982323527743733220033719925374526317281489386670498972560546256102166828100366413428034783907238403075485860037249999271432780400535638101564792561315634285160487255757839869439838595455185984352828955267385627617375814081140646187170133934054505756236072999519765767084055772507865010310596629995352043610738024033601442060231425044357457288571590475218088661232394133412795178674086358943708097311806818365946031329403233321535275311421968921196126919857150330614319749416985151244102455618988792757076249506532365797254998033093555687325010552566893756838432123466179847414359675666425474363115551090891052305662997726417593152608686777481121494948267017879376571445388601263398959477443319409978678271467789263660501934610169640098182946504392295908959212917785998709880950134264093116127551684129668916755741770911625757259606624929902988784479551482953033459878396369436373107051799054869259427133837049742517081520521232471624563222424199323800637097644588090187292035324493962406845422763600436815805093305168356401584175813857499966679946675155239676416954603815023585047626290447351715224635817273951799805745330297434596560825453760417831662254378677305422395167704844222864575535464827528182703088597699561681205629658565154825304371357204823390833701683998467845613186141412365394490562929382451159523682467588618644871431270763021514364824572539467991355403065668502326298793768841325334095556619229024547453517968214915008963030907625142684875859351972438640890253181884285616008200890291401371034642527132722290958653987135458108472581834950744150601899490430243286255112678931443802033413829959328659503343520673485135967473579301752841290830876910701124795201607321036231077152095768396617719919866467844210554454921507859400104856438914993795736971965886591237620091900233750211926967200001587631730285861394310209382060922820336257718375735464529167446253972428928313923999450762726397558955172889333690139057410140287764433776465049366856220225700366948328551007954420535599221581662351284979767401060761431347904694184523640034167002438216935450514423262396573894207940500631064005612565964810441407216209759723922807470405252426262739554036868420350025286571909312871401939203383559854194484358380863383098043660187643854709842144566556387710581054294471064761850564813015368563507779089743224387762168299913840332516810354803146680866366876038910470072384306036442371518773401761131164110858786639566037691929302845698099222616059293383855048925282456940091639232451077005516293759512171155160230268641987908185643735710647913157434634965729614601317444208852998049289073761539307557347354551927442976495482072870108062222311724102696440598674469360625098314442106244998090711918107400473860240488673765955527478535603342428299507530080651798895074540468858360911253148448045133849888469491093662700130917635009556548130873294370195224213374145487669211829086431686481420339807584924581300758225433829071224412684022896147805157898938919191632168501780127686868923296208218279243400840228668649115368441252175562732260866079478230489512425744385824179538509343645240979778623614556961515342338965229789091431835299259519478933463904853124777332900119578990527536899680998502498791207118540711190603722300507538013547966577765043091224885901983882728952311921234354938150213083740473691994384237460164788830926964839398377930364411874688116197958054516159558051369574721152062483328518622471769854104825630753922619756654527951268850950380197802600258809409231928288109905036384197386861889240300488199402327140317660712812629540879320161290647234714045383542879050678722405104826290287250357883947372066696661516886604291365042999025827860772186081448607795996293983463066690760333871838364190283154765338941719780587082141644800702848584094277765976735074069543352914820326767679201108163797489402169069752344904533366779568627094212051113617712326603087462340908738014071861378951798671729255902455754802533225887086425540834099151547509220158447724815940413532013012219889948154808013155494579356177558517532341384419924518441231786471200178091781570121783367006000962501879114901911976285608548485542731242407062641104398106032090047555325333002741157739109666230107956607219349929734350330216137077903025225184513792648859368722749135637380863556454535511998625403257100837631920524651962454985217868060129320238650822456252270694368284639950935842271153961166217300155864583086169122632150904111736726823233266080162697139946417983634540209365889689176396358509299217365052888930909914934468507483218884768028042432354474265143369480586811023871883688245360992792289492566537972182725942650285954729988343551964067283648545124151244454735664006903189411223687936729763496724723546853746767329514082609333713087818108971762331716745592557035222191453077185301661427355753205291536957221900140316311758146477461173399235147717699217353972356574578541964896621409757928296012842875181540062939723962962924817562822791854996663485487232520525417298313769588411417687937182496546724291259781875011848324630720249724490098222927335764829693493587288244500982202779969689360091865002490121614946209347154652214726694980396009893128330280920459138274413076536400394789975299480067427556172340874718024264987839866358492154057394869489254848205931472644050040029029105582361933255699618181965728589426174095694637838655728463375699186470352152228918084164931984260760504800007909555022082118368182266882029729705521685735540410912134633836269787228439019550642851032660451349971269342535248310569698370032339403356890127706632474754159614013443190728457488852453018546358228547406943164778783597468882193143064668284821483520719283557517629242667345681351086107661384137694646268932236272879738834786226413612099264200294831293673326183007069463178737438037409629063165168453050954310553287454839640866735442050927510293855129493585227151641803927054300748576183340948975940331704490819969985178809240316827697626214781159291291250500228733231333621673407576563779107264660671663460278688335250027615345177019671637610475580019998721428714966902386391596019137022969000481677968420357438993931361720421989309247309937377697529287824585206348043616474424310022944537438171878924996537098021072310316126931890482499058012541155117732939647641321627186953042131822444302036280362361111167932080352833630105877048581095362889128847546541117703618894832689764962310790629082879417892960659492963067098974003504555371886692610070261512824747844260439950638250280743145038227815912186700122672820140651345327177422009554477545244279107367100104181982928507388305492145804391985594413897902958226790383656940743834526636543658832833217078754810047271376712696525274954546650050113244056956936763970178697891920916103224341532848473450881486027818850688205652306413737518867740477504611659230976978563132624166705068101618206024412361192001760369046526992751581935318046617023939625174723633386045025120985513427402480324267765757558727664817311984141366892404697462122432407994392961200499382876945033073893019882470040249313545831045522057815325105839839649937317659064462404857807487035690755161093601359844417587306209303717828246807885827850995115603207603577201654954134660504617024310953724129461878594830838048666777943426057801193789076366639672413749113158372177318295798591015079426871281152998428406470147997034183243819583856984095080756494571672572591991172447153334710240069663160620016338610897714260869492643819469504001076902934467402693335444256859244923913178703409243935991727486404691039545397426959237582813703905910206775080245048949922215060083684930634326737662331797542637200021404935476504356866356568285958706248969967673460062047375013986772255732518982125168854547761636640414511112949535106479855726193153350669456871996514125354168974559186644262838743260042249457727037608162218344197803475313519924757644743442681370925209905785100676995442349220105700146440860462861318240626844537917291119471448536935595005569331690430961795274667786040284343822905889199054976979537553630586474083829517886921076819676820608720984719300722466256869163224894172584665216220550522314493547846039519023782698346621134417819556143760671193958452998928628137221101242495249103175178458522560313621345254653129146421170902764110336054599525689977425189092240768713423021527906863108117742963573702536968546555030031124668810445319023271967792236399552191233119681539664722400105546308427103504592892382651408820752965848645582463887572921781752668264956227526849160111154201733752972750230351392673424999332746721453566949943150306241968077602451074302784970526817650847269052335305639198713945163238727567824740557040660404848786281169291942364636468503616825532599610666853532973482563582791723962612229473352870620909795909490955337127856731705445702615619403949644897089076058506924079500830730401747288339758477728711563659554279903933322804347736069972441973945294419274420106695807726799048896934176226849673617066510778722335030203325856035220269012772120009839296513454160758545895033667275341408579050742117474666880845277076473870393101413426019968133122248947247585001003142325339866698382832106972295595937819876998962269921685832268560612914442860350010280575286510237893829814755431879303894216155577535947414171903492255107747509525953869081784407626496165671136853721184440338526181648076251338737335930995641009945501425746115293015834138833729367488421978072190660000587500654226074354518885317744267574642244993364662111799576371974123268550341786564506233367129081799004275306052380066951094156235431643460164658502247290744790895006943354726250277227438464908484018528447596719945291679484418211800410102995421831411023249212183887147861507009161253162381298845672924537339162662081006034897561708400689905398935900230891054195145351118555291827915101214151270681074863817503301149275073690990876339176167800470236220767100105095939975975513726505813102216750549291315546102933133052243567323513418942866636657187123114552467517460106379609990772116793542406075194638848735071640921567728170903804015311102591172018876857828828020578375244364551190987865355595836796466616052023766042439855840853428091103753045076765961369576899836348295523603755366335335182210461679553115080802456856180771055469111189871604221119826823231710779623416409301135658298986145606640395950561105027850187716213147908067729239985882146300700419938044257602058567009216093249885906809235112754723312533242385932664081372795453577802074542116195766359051371739367344758931981451884759710736812674986326941042689855587825820110394280250026391331457470071835097821127587962309700545688561244418532469962287973328071200184241461865833884886940607409969512558780265757149609279460122717356589988241167912659831002102313408950519899538570561296009449206051719775189567329418985011165662650361516995062975938532032884419652673706629254605037321239118468415846990535295164762427821945225768507733725459892821177463277810210383181947953199591289173115970089444925484121240384512450706223772372757434635144500707161540604080504130215059654575495861989700300523530131527718237366280073872520175663844724643847689448549397360692897201570674053953214238362714137403577974086162779448647480450322658904690032970997287686012831710277632699044118473084182361817769548592621543211381010001969677587709161724469756496957205821722927715261239463512269187311723483552733221895441978373805936057703275583950001556761161744836625576541738161435981328309761576072725789120359815856927200109250134612464207913020844398695472049290106199972003852203854574808305402036376099905598820246422222886394345891407390119994745787193910080556981178600174843032241560298274575076932731014764582640016814119771562697884785655221309778241980145183094191998919778284539933485412194066514365592306486967236303869099591954808263590719653764651087209467805281291323518465684838043357825784637215398601184752421300055436431698581608738747510562478056123966741218747297026835355427896987401372674251168934593134042017281989606246375274969198215284746356576349628337033227582749500491581048369134341231731333699469497687015976015282888202801347317085309818250984954658466565793906476024034834949592048301239555849311274115701162365427310261636829073448350885714204586902078452991209626402837197549245744306097833440999507132332355689546698201657826061860562617398574293301411220529388186462941482502006747873920397749117863629381123725276107371452383207750538004567865628894600817349452807122156191352502963863585290067689872145476612023507073196296783056263148884772108560633523657897200271895629159753504629960434146422475984598559878458614925671601057980147103885059739014808867427583307857243460144949908833956340196056015702905572541284167604573421844984416173425288249677840293437718507914105002226503831566365773185674626075232010387599180486222270625328458196025030706134028070665044563877235114882749419831037880857728094952011991156366937466593817033454157312165057714156664434793347378075066787890152835394455071409751211913105623959074031458437232938984156972631750080374238874904305045795425630230500896298639310863073845773815607809931499511138162737690913631574625889817726507039565950997566930580602147577485241043810636039976878858925923489995487093719179325035485611182888262599837624449599960721618403539838598908195363471967107811320130148821785789045475633465935886190971208225856327108438270353000017068970225093870315841736951209111966849769122152001865272017808146833018232830017592949180751771242040284195347676606616514575687444001600226687130716724032567186909777834526740919035948029189373308993629171300245388831315489021134505844811680190658759761157685674098561395068309973046997980871666209345802065238537376487487848484160285476739262987308949948943097369562393349578213954457203435038101371563703733221687320889661910602103372390506151893458440876760281504485341777214934855740386334807130996442378754700313162067163521421606222187383764957707104249011208454543960683805009356804496817919877924075493898473818156534593513107664570311811513251535050374220230063973106188385540930604686107392917871630931381549849478148314806207651628917024699145142875689852950133360659746886900385218715330872848075318710966902829693740761163544636849477088767271781147840704121378622205006197415434846519707418672449385486147053171999934678542031868933492031888320721507635251691839059148722264815328446728419546024290983951182094865730183103033337344112677265631152191815669266201669450128118790856920967003055600079586726226030600664485620016521105221456339569573790028065407111395643013938038543571940381409589943514534689420824435161422897040925527954259721892568460741542449957325221755513451661062841977150768092169240096901667112968777902593436747874836620753420847998842826083619450939133777480792775876281441493342500226879647293635442894749661772059171465971086571010649407382979551025827350443443879224130263932983658357963508324641800842944480028502490968091620144549127935621559151394146022005851179912321809479068520937315706938940158013002639504432301144342921203922373807430870410785897268781686638206395493091193947361976800017563920214781121296343677765461084661883683333283105969616915482854076095889995650991012147095604836398836533939705736676018859030168266766599905155091273209967858149336646263671823963239769828568498415990931552168745498219435886726861520045130789345694915320485713674188087592172784310610874063502042090686656637281791415950404858678144520138389255557649370985317266950488327733783267791100325880604817941537004467481509711782483781350276916953996053452876223245877152136576339319078548833575847302873296162880107790782909991010320200856364596159138232715422266142859526118472842977649301579131907740632110805439592880353476751523562242180351728281045511325764401160735050069829398233395704795839670019649042414126805128474388514395085444678799470386624470949600040459209371836105552402958049676053129719118860688935517924621564933140655780664043095148011657001006630191574254232195224988121353102789884470197864683543805923966708590935655232741448682269996398852213149066943215994785126394398844417825656269758176951752038751865681223712453535831932346113962890106255945585585406138496173335028326464294997104521554855242714391485684475975382084812368287080635498246860927434754303590525230656821640325998360859480345553510766435937192120631780754170873672822823570394475123812241334286219190618183453716139559056488651780059542430118431450960608657353224247400635852815118266107457615417123917877015599088049031532905157379708151371286266324482924350543492545440996349053088475220415896682562570989034463055252346385070847227323088005009184165129167236307633468639390253466002534026999165208496648320580375019625654757359891108173310338858720681456033692279022666785688963971795915477842159890405099606259046968373807070284306459697187317846990122253570271651021799267198154840112932940555992207432439119429356043921316061234510315958301835142896247527012263673772246255070582829437207889158134249997701541994305141006687835150046737509061849439799616625043570388533989313391829182680368590212946296155728644746755044185727728395272302400530644051342122201086446928364130688213394403301712444666052728751772596844177829195526865043194976456425508212446796568091646600974356756069454677763538091291187218679067661115357605543261332769549454176438200159589048562468990746704341691845794441116164374750372985848276171893874942446754243991513045789868030246260843638800617475122683735234704077065920965460456623439730008770648053305549339955862898580554763566604641368804603038430590120523788944547807998852398774954596878104225142357544414829579525907441715004566752743886524983317316119645631060880387681619008800771516467133451248732086188311979315771629687221823675191932446544761378359580590461618768186622680375936603032846463306820795764252797108041829594436676275375149715395506057213773269719775737683792257039602816284607516939708155102556917996236229053451217237818480782593025767495263808445726472624423454305839408439848538042121471929936422906984051581506380867549217537105162483936716042165624779431956311312011918746500467558234275175215190913973280672549575176687901041715444276029064295466600689492571439537523152307455373935896739532235734380540100889114984119094298095297661470075230103714897634223105696135509666675438431652280986669385984443703269766750338662379187097460533098945013261565572072184066156741871356727295150030044505942504131560007094268651381030574318574206277995396362490584661219847672232879560070125273833856251526934757222757981482959473555692492626990939659902428017612659632677305726163815277755883303427902230660128115769772520606734016770908597172039432630635907070506355614316747442183887562362327598422007836297124562442008620229667785208044169083024485059299030325851766158901517581201616731425110716109040043611362242302734083575420927350686137974216654487757653167371938363943627408716855851238720780394583313357952267050421446100081694256338329082348615634148104074304085310014587950519484467806379557757891926973936921961226812141384179776443913123125798441723428010814994308321372607463012027276723566740511927496444679357337228724641085243618308508868944633501541062834361295286548842767291812372637459233249711705206505209030129506738075254055352343586128699582846311572797278532423399779018462227258137302984686521966682633176092954594245818762143595876468022000426781425938062984111340181047772042947726633095013462721074782612599971968077706145589892887716149245731134105335217889112675850566798858397018615579868002328283586508223118204753110958583015499552449767322152525509016193319765223032719402074007717099673309344843632306774693638245438641502033774362590074924769548496644836247863759300147364163019373579670385976815518774352681374727306711094604116614943630073203025320537679212017734351106989846765939170531994232498530609363465113451920165272921620499141700414356575745727046809839874897076992747117018957113686067222010394973020447486150537320676120211747532416411764182404731255219939444875274876104875736415647517230400912914154311404047640781120168742231885355200025554171855105457059862671175744151846127148727045450278075028502045450901488242380601734667613881000006875733574913440929033276011697632939522879960720791303955872490569498448455916594660830398035531028892499112989774329781084890275817561345459504758077002056285294215928128503247357664380660300487455547917449879886999219080862387810675556003064928900407667159623321230630108283429367431057958972355662895333652335000417707269232192563447736463950565223637740495275460577440644964997887142362383879764185402698201069171418316049741984591735727563358749036299593169002117446860935559184369471102568290600680970526287964885841985103276780313292061308594058840726933200756214495903930051127468753480423985109467181802187366214660192691447677908648990816950733502642112556294030050752080515199960781279296711719498786545030055845353839921400060915855916255760259753389165834392690346780552857939475296830171710732945907951181594989518343615093978041828361529808606179288991783432821639551519749943236506360511018379566361413794875869661619472793606215553754370702269784038582856751156011663929221834454481099943285717570790963422651568428608162421486754326871169931170345591750050578683496364779523970017348084030292624915845549170757717497780133934739380941933136003578747847565634225370771297806765994322889880476678555417399101048817798522873314643686170162411250226105720484498330568348680560439959447120024975986576098787133486334152867373126720831636532106982237601775970083943508285930743482597571773987582882855025469707632328077576582589869886895800375776338601337496534898666453171502213596207966545220453547972724556391191500126478418141050865786710832678666591421908850802758708410560476731145180598519161783422516949886141581897489503219822125646347275771446225522240966764448815559119294459325812810888977262950100477101252727380599466383542192589700388774149973656435585481334984351375914238647570742569857415817222370961001391259471087240211905046721954690474527688327566278121214799896234675612059009934119039438514463839658060122472864416477175635238458003522095140795017515289498241383890837458913302735092458490970746021993259635898213000125507548474792511921270565695356542785724123529041948870673768637547006890382382573359059220488412303583083781237471351390757688971498466649673186215617247585093080039282484321572982120073272901641293349893112047287845196385310582823029448820803132812400766212911372534202342357915168136740641632659163778505562742896398004240037665010874507799136783174040587982391260090247617071236654169846105405885233836002729910939970102356228652846401626434699867354034006394844106859571848856273698010359540318128727242493020537631658564779893562437339067669546938661900949888970528788754057073144174757255898396217933232881093493879421328052878601441971563659797153657855334075249079271428887282341290718787089841856472728041317064167590342320084522151382353211607203253120730093736775305763640702613031460124798853803823594480727916491800784295676489431027675638205516826275813191790927878244436343679774958063536259092240143191078637559645286475184454297213814044109237397948445348438217549019268173530864465756889484563514896013400312349119010360878061724955814914862961910518955063155071203511578682211275371868699247720400704332901262270398936500658651817982427125209284425753334077535166394899105699448343091339845857273407440735819057321118150545862655999831550864360619976074293704389611698506549306537487936313220774790528405649465603910595960970146950333449255132631026877313326692972912519411281380325642476451510684941683819026732715930249965388325169586386605823527269629318945995024920878159777556093025889646593053822708552333747187540108021186631102089402829460881085051177078749452096455314078011739395406762182409644700693429771914831751856955597347594231796533372338233353918709038835401094304033825964936647227756657567549944543996297650979894344990038048430839106855213044537789309953311988791478547829880871444085005837972124016478493907719825010096699133732466960919738368591625287456101016437560868772614279800033679547740411816049648653616176082656630696063957215261845404269987469815770726023802734809051785333030345063413034009470270309643763912749096976829312737425715727554535672779962809772036625088457594290143103872726728777879605936198356999596723128684984419498814380725547767974307145937885736377707035446404031374234778148899901090130742946382465380318451190466368366776387757982483370691163055925072251280726264862477031542080137779373606475558490882763139346143678181218136788112736622430970148733464348503003566536836713551438575360549509000916881259045738622198251077024208370196291775229403003066413263464640039289641082046324423841625573742816456746340973881697223036211074042463903064402511485012049776841693510512962647810418255632893823666648050298173339472752639481457370788387682129254892543852152828353813598752429088107067672356840912492358152979386321480628128687429308982304296953467714019434025438557920554257016645826866744230261202538158755602891482101520191496099224527285178631306119480963964234907095652737881328951060922091453686749056668727877549223164784382508247739352656037800930122193073612676403338686306993485965085045445751407865523560234625919594955544325177623805745439580967487224610080614440314058198630703730811080029981728377861777708892086808182900912670982614814648326389658073286494545257955940422613436058812416921391598316141745174204351603370312336423882099251192327078528759300366487324836277498183625830519337825316212180701245931303856620110678121759172249217526092489825950197841668235362899567973330563918486674303064959253933418762969410453610932289394603651958163252478196570506582583977329037458518719350459049407842712131153251590733593172160992543432689640729796268086138458327250401031275481072418278312436170665685726806092997939654750896055747740455345806568909242761476043177195143336149318612711198968665800410236410988468610505448346056109267165161181927276032460673500499473566533058806119858527468709708751018646625808302413917891463327690202813036757117365358929940736509436397675773336417972720347828660496365213452707552482353358592531744822418356392418043609433853834441681923223405719435235218981507755287999491712883162888529399390671935047062321791402142393805682857472288254902322351397181637848278163167640670770939890974153688381480431540819054519786254769524697594312041115824273233062537630419298832181390946626404670638937425834630001362340999010923139944716061367111112495193008492137406575796962042680217030222859299307942603784385767104215058633289367853389833646293052063232054004841712248551818922560925379548900923135140471281860947114405049310542881703115732523649549507350459457124045477762266277892537269744029454834169981688684976255323128326830383387064451184573216258548929337030480662378060653028494997524679877136025733698208340345874102278488355415659878556637593431266072847813264005354575728872765377172452518519539058335194106880521749310108583651361621588087349122338011457491063003212250857650111312384515405560697203900497917501660712414120738798113937666779509832679840591219998958119678118178467845502654403820683913650651751089614181102909741273506103942255996360514359827201358842926737573481988220080729598584116670398373974745213404738421335999540121605952600187200839517972604532616090561449942807804509880032577226375713234221038597483744344503690437973447207992561743725287453616806383710131026492892288566817377273326279607379141254781748073586920414957446248342686848511931822273190939865005341216454509691618036213910868316330217815286951739731983490044454712369830863507578859258977075026414378532090198591845367240909253067646670086891307822755539271342717116811711838895870852232205498477411443881909272367032009311095826012903850118230959845943952531592042676303076569941021759022288803034766942926814098596646652026656296004661095609445752763502123893289662686638409417859413847892003891651172794138535717254718853452643437048894187325139498372799970360153709315083008501495966355874022438261586960542645889760399311489411644838290246929845808744371180594254399418985735350003374419030185589780559621623145451697230079043695857404978378253970481585585625168650529849288705206191088388585311037169321167760183601295863249524872405730161588620785915758873598930071527462560838081676913924486092684099684639285832490799499778608699256504517952876402248185656381487638579947773074018125890771619809686987320376306616578941908290340599567184922967301647656754576633971013061820262166656107755133533031251768264879617927005584763805549052169011837191011556600053866543433539647740126455794339515210572408721489539134036747448536480477191635742794454253282688997835713998860616840102072208915039406355072643276699308550005514438450536031703274302093204441904982114442031197316576934740037257651707661512681653362545910247212600825047943572549428910815211209217926872323910563278634960111781023448434836048290543649263004067890933241633821569853888186292333512389365802430197571660360000989968746347436015760813405992274241355720822431933328637700844299052444979288334807799023467919699945587652799631732740073284275118582713421151307145727234438510948447903832139386481306849601486146323484145732775489794936849100370749974371084220442993762517444506916630271743892805125784448866604775398066997392795783948710396793161019613694354133337010310623174433901895529515530525064367773102722066128018221732509964483344074757613787518362615715866360641743731090636772580070517176317502240472891662387552112070314209419727768079588098929189670260313061357693955369603248341296277666807306766784691165553283450148629118244707960955970092102546106821829861678368103248723069919460859352098649735142016124421963161561778571921960702858148804101745286671597463777908854955929344548361050844727437917797506042628044319528971536648826785823301613899830999761901460427502236957876703818662484616912885631970920186451571372152845435017123574579710922675517098974951097290767956453667833775002468115778890318066836706511635590608354578913489133153706874983024871832288527333700562554540668263209957130377906757294842251268947398833705102999227857510784917886051458210052947682787538277153516804158773735736199332358469747802395213989338886231547028969814616283571749053243335587896173548378585210283830795421139169910708870220957999507407970266964754422628931155512261705528191447887810161794373265690106189516842849473742836544410177745919520867828967299881906481477947787843279536657100801381021673144271135574900107096828878030927128871258973420039260674772120813786908921198480480958453784691570587212455240081778142184176483090570416324647013361709462146638447057592168730009854123410668567774358986856819320830205421990115365161673242755228156040185119355949558838423491599023215727209433840653534901493585444439724424421999042853160625930413282380290601156361284056639934703386321665600834673935780266895453978407907833798662597826103059740271421439967558276388525202377499884662395173884188853303671558129992713585079971239771855103792911239761567612858378802242649646926856617552292055415929907947482418154813699596541630319903743996908822683748322073797725887202740378499547985250588320759367344571798679414630072439406109230458350471982822002864567330100317544960620478110744625591571644287649448315383317122102428266827639552822095999379283479173152201235011078238523733422302469013241471034402676974249487201815869141214085833383859515340246806616209393182621170739455193790476848025032730353416410447640810490363079553858263358829647593096430743546825564611010556056558386214290528725219563270264979546509657188959583262736852437398092708132298848470609149788358216454682202549741719167730834360919184886210562862013491637823401232852531586246322373215510608396943407307007275791809491213130797971192250586534966569293637693540354428997751093711791971990370876827400800107346749700664409977100221495545724621859418771975700829358073530733722163323008807430600362489355398277154686204601792342248706810774378989675955232255184940490596846320397638755447124889626577128083890360196143070198470090244021801462773832786971376828194816883196316150870262243669211356070070159399156813338543571961813651294691999657265455444310979087916966363730412382089239786521228312233035045679967675958452338476012860443575847467487933893738519545458581392357937863497016742379390213424526183155819873679117659745140879663477146739392150982425634646561130107330516596023574325172250969946789506886654223164487841280067602402502233304291655397365708971538893187045558637904914622981029097047662116708558504497737068838916081804366748458374830582684941957450228735468192938566743725349161333418465493945709759808795159168375010319941448875234498137894125164550869877204535798844992569033297939353868738228801143830273622885570757704328061844517377742467662940357380125514989327575498150692509548897456168073190940036318814437963631093100410130715008755733439259977252163846138109140665319046701572291524226200376803765558180047626159947551320269568824220171802062477111957278768611618484901369560900625104016328653461829348273338753818546575680100023495581010589678987720414339724462975230388849171610392872168595156448523286800345589551620989722832519970028463455973501743392470856735482465586092340041007203664443916091205772983870377301151334851110301183750122796543034893276989490844707165776921261010714527589959235971692589335149520211201328267170711135249595278158350999549119120750219688275560637425417095626038008447092095391299225795523606964355699601168338465856413834952929592172025750616989253613312989882235035698213144356169922121229270179932350762765696461501900750903641033157580322553590879741518119128850871610872131667929776450766806290596223687829457601201454380746334147322492334088924707137417035463832403566112830748348392914044586183885070224269412003247307567470302162141095058688082484223552234646957814611068519731191807952329240049153833339459912412667348161770763015757218431107494914037582708615552819265875227915838896493831723228820537687361862902072502223575813398982582161025697265240240840265836180885839535384852669833995898179443856092392026748590009838098939986766236657518401663376355832994782014575642931699974239849158301110298240793717631819222241754811611797886458418242395848313254502457616705885564156501311789237161301493105724979071284752519639862654100044085036474915493239051767011034295554984244289636171117411107388528421079157566446228423998415892547056567850477127569577435590260999251688242726661329775295177262496284185795377314492519131400462692867541701870548406945067939642842167500323411374866394437245062610153943284662984531069484202953228958782736011893314560894567895268556105321874666702640179998104751522301060391208612313876535945723197925291037111916331878045421819239068537178436956189487924982524301066579677560344587682160371526276437511808456274707790934629553983165491358520150534855578991358070048275507379805195594948889767368633860270054660851780935065944577049678162546090298366024228167709598316940649801942988981533195546367618369518461527309187281122039886609817310757752926894298672392564315316738043534261429168922242182952449496365613283259707811978002380463949214341342773656268028516819848464914226065402799729700511987304698041812118342548763939982684508801876422544682822821774300277602439963827978334809881425640242755309606362868116904461780607423605935044066972690123801940732398428012329017653539282899595243598705150191719866954718840869245478018312663079119080917630491818040528728153467355376673603335378334939854417198465578464600258510864313004689441569041217987136234980833003158347237958323766191242178013183272141877659382217719630733576064954802210440515218963659528975974601882787334292518101438952306370634912557524665567287316077618507088753657043727306681114729714803082017566228345687026963638341863238106311622761132673534938945256257371957903564133812696481444992899551640443802189321025776219528413060634029823493620346364077044768010740964236684774180388114886372911611611813054561942899996944594732121015478031214835353510005887861484916667973290953131375955786725687581087658457615104622636525147311717694355807486148077977594219849902102979173634802145426133067386607585248894704195063871826140355593154000640882380194710868992353872839607354799834254424293829877280314949079378591025538733287925415982899193342953397709706612549892962402200268761998229954771961625670535713198470502751240414266549765580178483581198218429471123085984582190738199482771906495318600356392584402137808369408494863592191651100887221489444053151797420041175156877314076894456998125643201896507105474839338685426725120610956790354151187875172503980588056733416671813354114635770454551881144052496578131135183318903531383415288966006015633396706889883454726197474509380658482298040798174610869991277218902285686221173800563556243833576173659465399456881013705876338474789577707082982232485802356677691958476693386561511386615037029125037688529142508415535166723968756867316982124080604363238491660263001773280688020198778964640146310764524625098665615305801806518863205672462902289172485586647220973874899261334111845638896128260397116646409092185793330640550553480129811598589858119667407208239521254614554761330703486370010112839869737227098240897310022977913063426591522742947897335602760235381437385393558020865430067441755502465610363121562356751003346110689472449016407684300371270030328694786392720007590544031296347361870136471587455337579558547284454099043585374515385201047136948603449787331886240989465617903741211240333401743051561255532570180886537761000742820619571706891290799741777902911771707874743247797142002035428686949620754278208697716610962403025869943086862281136261554889840310646047854585076783669439495195737157054144867927527026611898723204785324448184834693813344955534271746597191456028966980590184922909355583610237279655717779794912809715773841954730871188673768195473281847195206437673496145645655749970732932866565156514150512294973648621173642305817730665855158090090893500991356071020592767473475789243545478598065755688455409833309562973271361105542675818683562585434458703959990385211832428715212649428045913304325717225521634309264506595727971272037609659484601040000034680801460472016060083908033018971373095344628964003438685723246045985862564113255323242716477987666244315848331831039370232333775666053906809954126275844676799556491173783103716207409309881027654118162756394365566283608540519925986240045236655548448719948938220026208964854667778431843331636532752653657537617418203308218153001807535963665815352932315038029743815936004057873812042392919115720664032660702665793489351921786135100966835315325235140560581817381480340161009188372482929331656070051849639942940452026813644026504082548536546266076196170105241850647348641187813954928806300850187709633599431780916217379094757822606738014546213797844638389319937966300392584404382674619089504715324533736670273915373355889075602690536062606752792014212568551815944259872744574606139820441621080631141429373204163546292997168737578857425727039181470446274806310900817586542025631604642948606383145711497892702618851978529608580133414241826966569087816931898107770394178001052687701013204952519003236186116502575125806785532272198870545495861659787556470774225012825512565103368702049825964639745260626598928690174302403602863447463790303287378939619026303089107208619983071947889902647132739096905762565961680772602142301111140489408124672223222644569830955682308789618051196109300994501810039681476620481473749365513295632230405537442415231730973637612129451062762093387030582567788381014001671890863239062929392396190162453520515084087841898360882821008381946945620978034708321935130423510306610955174965214900058499540557725568000966422359115343779159503619276934838267619046617626598342359613633618942986340616235290782812350035044746020523199739230442922021530217359186267470859713162147654080196611636649148008516341099240429819160429906810640287358474908849469176758672110362273760906125197315317085900353383811828430812808397371448709137781293272624736792519510293195148260883861793883880371186528296152599819078633909346356325029710570671139143054169250205758501240169851089550048915122017569236112140780478892583499717332317260450934717583056674020934066654181513033688703240250515757412385896882646859425597125419532045028254000945824068703333377771592043898046681851232304426267054173488405233525476570392183814190947387545677067448912593910391556152777373253571739474177278639382931956853969951658700807302048629131747942921979568968886433516585168651979190913912789866175500231332416052998083636172263880774367555538334192745166907313814264453475307529491504151143251593775930103274604509223354042731191185763281441604395728507250751218560380834647540895255079345040837002385086393588906298563949913387282003164054966283054709386216965358271313973740165431034212417402598199615609865799721321987255602365096492561561043745073581388245925516707670031773732282111246607776849127609450642747487806076365760670047299730839635369285183760443287798957512554420112593148113439035980403143269833523407995880081158312886276627047187211265342516518421417571318921392007682663260111371723199910849050789774926232085203426841479005132012056532209940905556837584751640099469690313707764528190445671062897706070022158837381650033903310580386534752284054350347573496738446858165661782359472865496125274843500267576634922806246428772956916342829753624038653400694962067968983313946471049980239013745720729381469171168541144896038069044946123863681548623816409213145464282202094262082253476538223858274866815348674482028610066849242471389107235762736941145455025451584380442702644643218271946160190204139444560993947540231647655831446472112411653275051236584602968141175815820397809836597185905667361505949188105511315545635242655097943733327567888934348358505186926301102418936727973235769292238888068828261899561022621396705354858094906771698203713347878810728053803424978850124468145217480535332928745785117018791976142839982662937100213609560366110381427022312120674089571555607231265933008352165897229074810302897391270616851084506646258061119154572960570269323190965152182324240744834860642876939483102694220182057942201254939461389440280600315784155023342624956084792173552021207130577942091420812575987737424926344459295909778172208557877236382495863699444916183512332199870227395936392736655385808823988622097737860720531785768910084544559896397068714997858356555586505425920563370778795901737767999437184622222262886060761992541924969958364582649366748366580933025270732874942512189362241154037319304482288429378243887665749834380035310608955359320296067159542242263493049093354369055358729037823948630943167991045843540900993679221565319930228251504182731105690493427577664204514314281470177063229128339470580585185843525139687541220706816318172940441862387370923379394894432004318468346564029868441151884069420810157388910573775384954498837341607515955855910573634266821172500101467926279371084017000743974504027665186211400810188976075795706339165417309246954282951916090961897448359834266835428221279228413789070276831006825369533653218711279560508173315800573839060012365692850156192697131946143974785510647269599407190315613921555049059748730682065969911997923278752180255963748618022654741889861275972415924370708290156122907848933111317374402752729678222309198542254194380731883563670342044458222263049355779614342956525558783675253215241406908579406592649797360902723184354546390610157642229559298335679974960906714569965038722697409595578419343956655015651494583228478513753124406263984049217075670506084727006836382134584370751501088546190075537230567596319622843443222121246574460999776934374138770738422332020670229128065335993219283154344591695073442740927542029811075727837489228958338999248223075275604399704445821701531362304769053578093304741963685338659746632149653415193453986614852486652597466826381838704756774778666815881914863685284577161613838914297700494117636946599014032167740697436570386437592068186146095381495279132554771212971073467908494785409948824086653226146082195637031604197839882588021466721242809986181629796499727597740087713174169136812705645475180168800348145920702103506256889489215632063601809643172725273214987457464396296566622003330210846582724382568055476037379037022076806015565810613123740377544729368827602331613919521621666731391782848203017204155852789795957068580515886951860365830402770448384087864861633019391137151452758963381079668577613450362267846886827645601239092138692149441034467369479264821334534570748226845947653176999714958033284224680990767670592970473930033386800387379903225082622655328118554061248652147518110365841723258307726998889833127467830972087648140442671221344647529694133591345385924679159299796875647289696656902327084464944035764526335933874041532783279627028027333667618301063150469619128089222912888696976823233779791408499302443267873165788217415370923137593025520680084946490412951682654519382408466472791758225205497403823206485216179586861267411718379313212819429730105808827649782226944602268948321714176057748775882599272679168084642608388361065204534596297395252358782255104921063301788188512462253161838639166190365495641497853278276221909080251632900928603580102620478190452686231368485302705517663042882416355888644167124673005701537736607293289500694381149028889796634582634955320788344410989775075675219360326561583783948433638021763393541047236863485593190373535239493748619173812052009831421906832274710401251721687816915150471904063846810737340216140108163041219322074016781609551765302251629769315353439034496536688480323467411150882159094519854601454867045430665331702190233132878248553050645308890464447978704855060594190854683556948959236290761407507307793985528788177327380399800228775478161998827172251083835985257284385366887314241587579970446787825372250685775876048841870156242836750552687470265305907990822278282214385946763452354345706506657795544139722574228419968461019038638919979762706856624284273318739576476650948858244008817873393596105547267247655507351167441711581241731964218023549051871295359911930985512495618890149209423563100282992446430320147748859952576582126100286151213854358907691810205981118630112314679728828737172268883926211333916485228395777573930504398387797249853850054814163188697417797297132329953489020491457550433356183997030590211846700778613876820514496672805535808167350849879339592220057064227239388283204423322280597318027730195910423565936641478429853500846414848756598042237751543348194208602882153301411277150336289131068212579307283397019270258367983900480468230297097768693494574936651997955089753711424690300786067102101130295672538060355582342207476247560483901388764741750721478494961118735900053057754487247296285757179936370735705154753254943682480286736558968848955425369236596602274480221740491242936348380179741636383620705804703118399870180361460990543706121099540663783058480235932189679235857317316397028743791057888089131476033647663158903171110906572237734940690715277083628517866965407534621821329672089123443067452453526575202608093705529821047455255968362016861290622231580636216518966238417834819033776122533092647424677885683548807269959939680279521368536860326588838720074544564239255234934642768983413920908176692873679576761305296376754926946748894349780136137608415235233699005638287083948804216403253299637151097675593652578383532950994665450070538210763897111120197423852300243441141072075231117613140270184715344539833382623651426911240713733771734499010719498074894438481882881849773934549621070608794943201842159069982280149259074359712960752441969727402454579482256521454294738271670573480811898939231881853597516056267583388744856349089110532627688336698933960292804297387567437157377185030485151703950724205671629907893585329747490506777559821284696557195504600016023401559969475275808261615974872957035551989384750445908513506328445065420057869078269267335207268531253953784101703303012552227525520306299219218299766764329587133509592331507423055348930381925246897529848101435426715286087349452527025506514317873519323138491459482669032511411022862310333335121150419084609722266187116425968890741265238685021009580399567839246252220621234211754253415797324378488709511864376682821250559812505375925081703567419302926214020640876828939050591738825744254615872443424880111849274246700654321983854399703224719192840276763609560486786351444644279213886423036727397071896011287390820425445678699878322053035522227025910920012144961443261863981689955030448077437436369384382095321833271877007459606201908040328679784137577290168691898396422356679406855450518893945366490144587118214656762550135100551015184150028190904268233555339384252868373899881135601474084379691660778012046370197036340020116414467487015253610350259161609594856998730314049878762676962666852491757881898401846527661951250221407399629287331371929161453931394768423553518257372945964261714710914590826578094585650233951448559103365633313124106310668909853383852838256098576937449931444850845892662525740785904746087155488010734265899766692375420829625236250878769390783472423925849803270993170250621712467767105726668320077639348323346511975708158631911599838274964377992604880599386164882367596079644090732426390913535553988294550261893325747809895833306749443753820260151241440655529192541984547643220452550771261611291112730732532609369331346199077239571013789111451958377143462513385907121210955084972316066414743570552189959154437257104400902585151066429718987417904785033589793708842342304967972043606533537270317107933507198268330878863736282916136721442994349613718500632526057703671838624517099730591704271400626245625529871885408944654882139508810199709125320364779617146254727021796201012245990228055942017410928858687763925099987517360436281331858469468177289427136315998360392129181041361678137650575702992432623142576118354248163239153490194981843108707033502642126507300602942958244283818945638369193671799040428914080104872694284784870783522847261124595055971145388605827742393710643869154228893209615041838603852845152745335310840850650685463528203543020118190811532457044659853024258648693497818853524245607655380023192965069798261377541943933483916688803506673240827840632781977405125712311787111830008453041735839053064506139921238440338057425501311825760972603177900995949938793889808466474441462000913756531508410113242565767725604341922170413852777905816455046766507031107766161098157285668781858727354538116761393988664833201274965845327219279893459920124334373812586827028931235846862672716034112079522087016710087744087243467293859140003920331583525367768944266194902976085965433105869951071581744345912438590102302832444947824583154956945514159859669191256097513348682996289678425995032817443283120135745406954150568314646656453102469834991025507768693404499993112798409442308364840413068534423855866309340301784375067520170792489374011504666763044012758989502065129807139801543092019862225977633156682409990370635461008318149008311498147268276880337689617025193910191984336469276023502115611456537999227827786379954610886808336940933575286130741566859978829172381299208301928093673974155230214043666964067265632551685337334829177423758988071082682638436598884290244693544408851226644518965545056039649039620316432736126488505011386434263063007723290906062187069040012289053699237882685775095729486178039245538459542449202401945870502561400086861187030865783773184593118826145586009487598525601326070858632494171560974348975636959196900480438945262915454361172144941406143887263103554306312513378296689954800360390609011711522593056288293257495411714201292368461526379362352260557541574838246501345230029696455683196811878645025248705304944661637926014225571031006003118016678359745978657426464198660365379874329941977238046219246745637861583384319724736950076196103775983523263073358152168749230230915333277438636752694334364832737764982269111845062804074127714416174026127270951207044672851908139485401446349798461478696694542959207876776599163855871863010602581539069012610965154602864125754424067904467098284037978458728946621435499704994609341734324824712104361618163610655995605581490300633853535355840841071698147763498966901444858532051429923635607466928056787602721344673738821696051469769141242799922238980802741096846508268847576254665874164737083807385776847170038724363294250614139332317238524238921625913400361876037293626782873167632850404024201555986523024636903431381224963526730035442793961040681229569162389459361668298140071646202199329197876095216603844654839648235636643990830634934266368112741278877952408428899937211192922215532726256879689118649163041923286694143545267489694511229434396427777420254747519345476145002292065627528225369495470712900480291972747873283872177702014126211523441404836445469907348092643591489336358546277526909313533004821993679235931721623109373113712435716746484544360740416783124713999691097534376307799816639051172808081825416790634732394194449313529701412095174491062161328305825989920577988988249989353988479545066573254854195673852257277164233402335754203899736703608484372436334899510747367401108682735454322114879313567465313041490823281059981495784050971592017298327811484814721527605310917479433646309418097534313561319599055481345749239591502216799902345160930440684713969496422397524509210641684536820762440967104053679669486976903935925286309904701029927071786208776015428825079704063679144603685597256403817991369959797965757413283264140884559450320147218669344730609848404810523193426747888308111195582164727789393059595029668161083932486318506938541466935979377924553520999595074575220980829694855266403148686202257900489776239294664781701575511989937926803476588608308761371603087924585863840653146395381119418246032832730497730108402151175017847357414668228543619892116853993567283789586369634397605549461709924089906725727635207995454501226409321979093690000802626923419612780297969001606860200243561642290628907900287604201808787085438449033418026703067152073197231008903371989123103627043178303140295565730722267880247783766007704336129791014992061181470637208955660931566032233529612148445408915147487953364693026772822275576109901355375436396776748449520333999079882904913562871444876940175593850262214181982066787329445715072057958831974032014606169168922467933240314573629332925111952521079375840672631945367192361372436883588057944015116388694220318365484258650700895482420246123727304528266778178860014380899195294874497937088140943320402597708883312735104168409589795224761919213913447432754614311535433398050747913888752313217952696497358324011404836712405583722403555210316210783356766288582274171772531569163685369921696225063237030905949778212130442088330292749364197126868897067660204294270331112426769169002729818672240579100512393967552941935249771726470547211630784566627804406692792789324106339750139642033811599300092205221619618425521609289486386459444614316800464394592452389433044610989043328690491654908519922125677634335386150088704391560275769841997399396689420311483390320611654519028972130421661017148315605077986995083123852986387544083366576285216359929600701332438325989267221320100499743981501469482760449548095787949681002270938415356460498845401195360241750734767531417006938352800687939705956212697004662207294809538238767598557923831674433224738029298351577252511242941446874628974888835803202524501132881790124541978684218371668491603668639691967278915669692556898081505874454204253271378192119090566678911988722448040481725015103143297189691378328591049224588542206094091982387375871711654517881292255830904925794361149137872609396403844512986284426184245792747243613780337177585951212755722626697253017118706246573724856054040884862516841551541004630165882534985640902600037398747390004190524698739379262185531476189788260376334907938510681025261723926143714944924295041148978579482359450940419202324006524011397167478224291272937881597415051160996986029392504060037184935071127516522630235621899166814590070768360112489027443145345501837575003361754848606246149517350773272981322955231877003941470600201446757649327433151861436252651948445473657021604058004068532678572417378324615611994651492012277827957973607404558677190028177848940129233726042118558257320446486334229130371077378699076834066112954937246308165850939994149199341009299659055266011039515175175057081048957071552116886110155815936883853830997406574991183794509894403462793194312196531320575104140771826344925464645358287018863973735226192099450225583456450583537996368815652756334660797407768712343734053942160949519226715252843995895661733910786163242102627437835947611059661897587984698281487439111439919443608053964638684207045261090488900959523864118679346513551214440992817010778671657121194950479842563122383275780565992467155028346575460563490781887407743261364991257135377577914921976707174047787181148405249384561132217639658409120923193985446345836812574562263327662122804756341341503302759707498244569943716467128700792251415997269634897545487079267415755831444882626043859956163581336449930008584438661337498796475319683616922374873660444365507301646843312300357596648172932255935778817809385464222610959091309674161645279185982560229002504575669414268329236766603135452441410576052504173887222486475814231058962328365286008257139767699424153715472666452151283164373970221874086870467438149903218016967466470130515055172693083098425449540477735310626916430353837625402165039842713414258129879060895288275920084724709110892293930781181661870507180819587472799286541189634582140770374906322024207200231804082711893291089215373217807624897535502231229778967345878860909943167824031432853221662303055090388034177445968275572529647886944211469290634655547609055295727248462299529220788023219365725474003465691763020715083509942102126180169307369850752815213628447050458414705941100096579526207679681397567034366075654247084569419542665231481234390824720262771364933342285454321701307995644832384857292059679502478155075499165367328813731830609893360631557062072621494233487610996536647499564404399530871817219653265174890334252890801165852196545040535627581282025540063663435254594431717826719415107280714556400643886464527006843967807566682728285754772201584701824752091221777851915197525386832222169811562221685805700755799302678038079596706140705901461948007197291104343401934437550916713868050503613041290767990113324378045423235917822333117237658685506689382398630576506240360909776547184655577839770608495657348769041039602592348337710223126466132269178302394347255147868102335706302957071038871981200019436080184866916242377732261489665436265059883807321109215436874787043673083018259759961894510427445827113473077475767607681714024271075479097249741752386464583627560714529045889720164878922322853712598469428237134590339778729493439184854934486892407192928495318638896823271549121982915357194764840890575750766377695626121795108581530854188645279971957851199907863696019879139919452648958984207787769036524056859780250272060278363105314075318814215317663068878751141425647231253771644356415043585376580145007560509171949889018233446742914039958314517430554492820278849594443764972507704968761083204157059506373651085442752498578535500943798246050073877109273046408912201344040298465407001592610129722631231143765308324648439652622366262758162863107374360791302696251478116675273849234377130968109938660346970428504114975182934209322284884451675735062001646739773448425882148508009003191085197995267945438779989075549168840763019673073651822424997459164598688470958816542950154378242701144919649020314019682922154670255515623913741828718875198253480697008687421002986207222313240222129027679841037533896881910931308819471558522410929242173831932000742235583697434322993400468362821719902057467228108035247449115074295844194491790196341868912484125769506224957521942226138456424433842149299307561773276900850980276614482813798671606144511768022673932917742574926813286096345475941482755822776728609998924207058767910668007310347217700898112395392331415902282506129554136982561480356049344670887695198354688161143319208547616877479845505912910195891767551610290989408249946453962992396166024989133983066958359433967343959119387392851762054261514050670775654073047272833418304784755041275345169228873301375101695118675561989920160418840558172411599816590747337737225928180657086297257388156363870512769363209850988658678863369571894527036965174970107223501936877676590714713242946169660899315277862196165967674051423943636113468614781565518775598582154353140436081220757753432242448688602520503136035054886940902132371557680406324266687140277266867954762612213786001632210150305133557876049659180160043904293649356364891138683829285955147594347158478161832308476506474385488111806640427897388945933556515938187144907442136897524209656110474820299543860329473087305826553068379010598109855319967869882175656082923059682548148238084647744648455253999163199328493158230741551915890476352111147809127513525027179245014206379273300007584615603778958005443069952680170046089896686503850435963967101605225244931658602761088968277809309528855756249018450860832164114742601869068819511600485112380952160191278837711697796171531899318016229636859079107319700689417558046730113570438500253182922576593999912355516626462324977881028746314867526225119582698608246007362172071932959266961594181067940913642118461492045853822003522580261084127571354827760190325754790789228040133030264055509301476931484190563412655409924413457539567407611811859863443363551702255362826054962750384429904880165748408676058586837291642308174095511053653969338043039662114575656853433982724428431201542189619091551202599351230995366476243844377897007140327764158577731282791139168733203043294177509118061217149496235132404095214398199360981375107863126193429669215356666818300648997633029173507186544138876643566997208728344750994959512082611027254460226581612660080303826446407304719499779205673382480260292086370521648564151209232045199307141890613045695807148020552666216937489241686845329145318722233157370989951076513377167124842646258172598720490389872513022002552212332536650940171337317717661874180326664548119938088040760004813551008126172139421976743944612170870150116132642128077301242426533376076205690607868363091361257927489407118119077734480964776328924065590594934644561262379522917730860961274016681929982058877419983940560912909408659349768291425455799379865532331690374662517109868590155925905080420287103304710111359722762512294174627171960138840923584921984724851366652466205930378543275584206447940213669460254971115047831136853272448370482542916112900084994605170426139530381465498838586951061437987572870354452692437742864408412497426014580923182669103664905379926845448013159450748060666708785116503129926752307790847101231817606928499920565006699274290666655950730831966663547458870297130616014688217017557742784792220643651959917052352470474094482009521735684416404874198682171600645571409105891068329262836188523739535882708847723664971498509377639118065869894432396722314042896797055296350273201697192833045777618894583110666413875810928600655382985534238811508540930331541370850730566342972142790574930236049003799309024183308231399384254796057271165171303760014851874769490477940274694664186836589035461565871410371334168632962277248921254896501643349990148212181038774571733404297713638258029122318037211735817431388163818559636165616855438576798951758670598169865770083725839718822841481146049798035077133282892768104634493084176701976824173187363118906104862654514447453341700221185035792496209370239501149981815006610034299287547406310416249273807411369003160216793279813170319622036411660108938987494047201096209492744927386145906929073144697991421585417961258172668204292528490035511187112616702481418328809373858155584162834149006768650061784127195084504269881556478860855015357698845965995666602429252727828027721551235418704134377734553615323676390280799936269455562399264872572109299183241464002144803840523796262082951136753147833138797175283708402663796742545719666616096883516305923189228908032186263184894188388558917412968246993985976761105092557897127469271126659708833051707670160219863333936743813374364270043724486670896961363060803674483232232874183162714028326504101609436997362637097083321764331934250915788252094039074317511140695149778694779873023699109055863857520733057012403344233204006355270770245398289625302764247857443136381782843960195359835816428583397988885947599980684190294977349476186008518012668963843867641146920373229617781939261680204781064269051199866915418543069990885953409974461908223656058254551660292196533346873961553790554617352190023682611648504856519466874430814855844626454393362169469599276843702355338601900692295957740203334300111721951636999301474134809949795687961941690335716257447172048671704890562297957670449597103668302837747630206679735628126098170527739638073316749225861227854812825179721346283776572974956946242061873975651264982757200222763743011762985961857106488650032712703903299929829138428717832308115930505540089852223608373966219102935218968656122431836609504661379003556382072192254776026784285360047443352904263106723103214575189474989495003291844601341332283215415509663485477329049043539690410899791969122527665579981260840060872805240482542427790668182872800092918985775821874808258010225850461739322920889805208995255581483545900301780948717527057190352854580222160510909176822018613258262112889448122013588442654634750768307881430544316684960027275036354427503779879238060534954682710609003229004203637534944957120388844375797509802681642749389794313725319912199700083699470857319871379969494822111873714815515914486372428568927993537521613580959046276576931374236407630390987564364911809856454708762638046971916052241483622093367194772953350191024756067654947932248483503585939625448358325120840082316401801189953172209732284219367854558117307116589423106351789431424948546750703799677988863322349130668154566708960931737802274488716619159443082468652061158097507940493873164389005846778458997970923606847730458419900011020027723631347155763676492089991112856199451717566512295236984250551964859547865937778911591287014609140723995079635287754858435211339495954997805517187860051186193012675561333293285079683709011099330536102052526212839251566605256365703113361988532593468518964731162221515510089963658127351030168901807521975208600593449911448659983661771457998692966973649694967346021786319171637866646532999067076147136182837074242893448537901459073455407546810396099253613655133131834646086035388036534035455581526779010275904870144369265813762401328874301487863067161593659901086720150121439835915339122354781933558316675736983149608588338955854004398938438308381532292652424702565495490336275727533860976477286935176938884849838507327725327539783424802229436285462861767576291305659561244296293603430573207737861060225956529007616922991547354190147594097105817246299212400148479812152013677935337853304124724797761932667869696133898268447688091395253570259365939419453551719540789598734308001433957212388220373900692825489045324669337068298306797785200491137630324672208936647168040097070797793449961188553363183030937532379485748079672326387354488707845147674680608467266356402351138970902783014580548819999957965937278241967924905686141478715479297939844723505213056892741775164566921008222987891660500795851450181578097226052585885961704595642802640992139682975670395813266441412134205580441947887479378341404209361909775882436057833041101467183588427577872604675351050558927289921279262231595512069103573639464530228021872192768640556144144459385516454643726447091700021769363339220042033113215894957063327155475962423441041214560462589808503090171976152973619784813478567827712143962526336005757825530993307659028534306147223104123103961962075839793697553606423189138301205305248797259945700960368009904341531486345937262806655213371816148933227038292513843149879684819084749982405007867249546450515970698545448931886799066242033531771811711574271477361809061807975812872228069655808628922001807263090550040970017840309617835066147946033483418211707675950450655091626638891850606330090657453481396743193732392628370784707443691312392516212284177557713842638125060810755666019953203507338077969693991104147728064291232454921121353841007818002949062874910476752980513493494423639932653015017052935561406018471795911360011860465406667426552104511882359435909243486578350578089067449933828017551870253741186238216928496521673345983120412041184080665535721402697020295864089471585890435594251084644867029813466048166377201071177301753104180829168033817891220209228355747877754723471966340905008430262482386717148585988849427171745128307096130693363908235635868342814120051689250863443224312017262010787591478268263019185919026219240905905435282152485412139096315082565706614381666671470398198806904622206037114993067556792981350577078819842055694213393383055844905054870058001825009212396591233654817630606238268018118334704890087649013475184590079550812304647878738499605206189124490997452320056721024616079383152657247807184634784833957497169258884906453343865468873770395581241605106509973141336860315152712896933603049742092510787323586104108176659391421241502014012108643847090228018820902679912974432191918236829940007822077538488151599276243307892371639523132575911570196728916885654877118532153762783192720152500708696610087794539826831749379208013377722098039905784899899850662486908871443376361356635505869148300834305636769799112734672595297833301210396532622218012232492716950005878385943674645610944071142662667745599402393669061540825089555936795239307267830795670783687800637238212489684927304417874910377355438025566554598858193117540892080084468979549183007430196579637045335745822535572643366895794510145256517019163554744147011281354920920415761783902228715166604604697197317234208764427066960248375028514304671046907350902821469913056899673530755914840861737568491418448495949715363649951538231184527014611014501604052031190542862863077155914203751019961052804016941399848500677124244134927299387342054145962161565171346123561534272191446495626804598702538273017731189762656974313379542601961774477858968756549948154184179858192348319855936664064822963196419589509131931783979679263214278403109640078432862816021583119035081522393897178952609951579710762984935774481431970078561415968998630816937118247580370698559905219108710647664822199806152868065608837934253233119904423576532598400823306696138226317244485276903423737233349331407065212910729308244504322373593194928131449597771398810076292271914932970821844953779653798665547462693260624745754343189888615169919632638419356277980145700831791977381645030846692868739286484999862927937772986268239555901083264825877001512143079410824441399760170469714462170416918108173166925105745005051381407422715252058286977942914686094880805973894575354966658902497199172959028960591216833703533348365904619683368271597554632526132487673824350059815480390303742812722706146424603436551402493255002212972662736028359887105047788952671247167849493727453931667874855285907515973227993756905606310587696146066046391225592288317528207777086893846154245520481250264636705382032514575004762703556667413781479596296419427351965154468727901024263729230726174566688401686591576259164279769380216711416158923096153923924382821920168270862998554952228702512828425942115650346568098787966651860545521419081643544522128454146378501244004122833036579234295868365837786384259733118512317826153395960550901441790326148599159626555829933196759070689241621124853795445493424799706396112340153436079233123134873510376185642275295655259432159026580995249528934106551376316120408096584772143458431763141207298574952021128301723365529546375904495491114011804273894823434724542526356942858333069801619973194406641078728309899046327454294259487458142387689423890804638973299918217471158556750784557619190264197184171912126203836786760938152879057969141785227166368108592338519338782035566585425045974544350950672402942818645526566315526923105669121959884416205208576910017653501253282177897803380462908985807717897787338070776613877571621138316242261852224372251058452750183458656540278380011189145391215458726503424367284539377402786237859633268020098299066041057678148653620335088803704267019067925261439045568424138466828041955391336231538618523604618687306723306121376453724589857442744327949636718654305568178999001688295551242419632479275952996637692940307223659937915692290849345530926551967764420571587739967547098522277446509473652806192494999280524176150941675563753511005293530195607082792967713307492234245779185664551636167189808672731358873214353050008380791506070263750992417841265169672627017774331897172060302799599096224755840550719252652369697355912939131063939462347862306928997653525763751991509233567979075118981705880071955598507079105851731398744322697210662493987197912494514645682085928669241503808917682799493977431936921348817117824949535522621582791485949556798007807232568589628313154720365548349150816815622333589821512623448962005222586827491280138662764549968830124995874203099805564675885966643399616605552737912560838894123921008212491385017830152578415037492725763889424038780752511513560300349045961965913282757959879955621265191021571122591183285954030258904458209516187628544629541190619237213715853192735926569155112934366495021959581715980133555174575159317000977381979608829592240899410133112688268583666399202368060597035266443455413343747539762825687831619313341657307518217945773862276217242761780549736904689138152374361987766052610892747899277631049298807653964774065578391487022194524066057615896243802719276091306152359876859485560752906903845399170517626762889598653525075215859174545412623143631656481259817562569887182829313401508915500716375282872411211191618286107643545599140971485672175286777151988498948670975863234268422169539514549486307729995844897709580804111301866527835383688060027242344418982945736159469164877977078712330883294800139530986682607953850458767585647480020467130055363110118354831567818922144077438660274463525626601297595297899646134664331388249810213217152679928230740005904805281947250804983471265982131965065139610129447606804843901261475352604743679785416758775366930862260221138497597450402226445709210217809997319383283319215562765214092634699608118958001866798148027607765065006244944348568303939430545240797457594859279235702104123139595827539066939609994005991474139428552782786251439879161126401037379216222507516721628686298675718943920370417180961574468286663968119875312038449221966806410716174972425051349056422260527423802058932154076085311980154988595356803576507749038516488763801154097399395826277830904111788468040742064243749569261219472000323708728887956853198055432366150617912428448929396823459716621468730260509205718199048708972695640809459047452460151142957082797038165420249021772085530077861581860651971375974391477638368151084640360656990392314309777495416346735002630089550571458780957411739829466620635851923671143659071890234840302886963116842706402645895538293481691800811140677407830029960941765699413742040183867569595593258874191753811552331960733570676801232765561757501148004704331272036571113871902260848968308753269795906551443220481454811548474391672670946345888665186364401567404762560807615834008822275327299227165040253847961922892013714690169559705105933279554016106830184731776057559969818265377892946614219394781375588664093247281432990368331719682446136291196908737681830502799667845318138177675215056236820635594883426816940254349512899489485403621942308682160007640130854667494323024930684897625704749697576811956445645479854310656443411889946755369639450039724433220495041318428425034512159476931398378728201318069688795309710051344062704660719912480956988500624291604094221669153636552301339586799983132731149342597402683333310943634801435097942605681699878530329882813331538675930363203509195966207572075495542833966120199903879378980438143498967915374910512184041519657304025826995689153074020274125996746063668208453366876988812593885788385925017576296269112235318847018937710320236377213064465649376505866714136350805667352893468773375178643529427309892957316409321084620967823117059649844030803135594537797391821995417092433652863237720254210570144300658051633452078021088356584676691297865344005461426498593861679160207811048735414121992632569798745733138803925141112320474482536648230107332382577607672667345944040449139817917830225532222666102852809580569201344312419522519219623769322327308478296083540356238587088367079717580506629417177217548690429736312449439285828264254113369012425659803668418428505183662870802313701545709282329426010727504102976459635690077956420696141998898853277051967100895502539762979401527893734309064593272027347935592477762390917341577996019691421578806443701111955691044011040014331271793184358042085871134472627813508010494779978672005527343172475183500413880456347344502134812636435071226895742686056043513651314379074606717825083496956724009494841496326399767677378611619079510256867556725192744949365839938760672835307352182982964083541821254648788089747995770028413907812690529142017712046734605502034792335926327691708433554796226448024843549750599734629993704575480937227470147749281871675317468971563434013472711646463729226366190683061989600187749492054446146884295533999865855595384544251471944677951310382040690203246945100602831687051629518643227355542968289830297563393763920572056950692417881255423757420910965014105637203739649983038705933825297258827465353874614223391135807432914182742246840943434636469258666435053284366739723793196852164219472395292425276352427665028727108082788278892035411624049442263945041587400309546892217770705511681571412521155860905652169482920154261070993849479100493106073848472556684764331063625245448244546026409843990387897014228577880950478985348483301456651201443817912385136620961318311397103239754356432896820219668696532098525748251160910569797855952689012944707765561538180368692457519789344065432026403717856325490900981266458764792995042084259126858343828940372784471028219608653196550328516611791651580179272426789379055093973216459588769353190353857926439881898006194236474371783776858133639537048231436419581520389507644234023124041888172829539825228452142055855494229654517952278043943267366000514349162723609452219042460376489111334887666174100488627656208660049278598189362596782951512392523882959429253367046949500749607935161590084905198589147317292947361931195832365779959657255619089704283418216235938711818317329669126850139482945140770211539194143647210239908585011009439378751881533709807692895101429776793732263973617986651636323005959736727230047494114322004822677522155630770209429132345352951620746520647246013647260952631610328111973715069747766968187998970754712621445280584741671658685456021009049450662581447153219449374198939054138516748588653750330026722238019697875866465983524784840877311986792152001438745456072148944578390308305912998339578445674691153572506100404493380349988782010728441801518087345715744344672378874134311737341870964545303943773426142956639088905031431089640404986874668295514565285996879674458009122216921035023477567994529780751715069427420298851996638620335638086391076660035491021202925332508793694148002005221682222440225311671679846517160522922185631944595812375871084610353802377624630556033816370060540945252685303114449290141830102798307575971742523239913692879086317612948022950554784076484140089825390333170324552791973160986925872415965205300455413451051253760824242158199183274442014112834497750193262634136431525069483353931055780728026681364473868878150043855979221155139210605084962378665259687034672714047883770358336342356619294514251276455073313801750568185519460226382855170289324507810741712814598722846334426267270051098247710199451164158785937796434062810856075324945912305533275398077338011966981666760069927393390575783410730448094622776180593129101245350749579461847571747250874872932363481055505661924271814229049751108243762463426731274020492506941407716968121662649473609308482866566190274603471624753819145572306406567017749179874894349886312846982426208485601823310030300546186167827422863727508466321155325216921895277417284452516507127350266113396125561077662660914554936666373221870168916691725529164274069574213944411784208728022194038870298293529287078406909090874979076743346063109381304606375077802648552477838236707831032888254479395216455989404181797025890636125885340218657776899525685771474204616056526829267337452013857241812515841273863679649982051587064912317928667605240620071181295797751565754678450216392660466192017119611309949023343970652358185762482499626365072979299250492123922595947590776915959572279405892702631221728572686596353975125243499769035960455281361345975964446161965773234214206169862121648563962429224729432390449306387917129523443464856233696477836070724143558886441282687941411222078506149326999929873124358645395938841482464081690659513902266934639005435614766501008569674288022805824698556340541314216334612384394498671409617142119720402973021934430944842744095973903695444010466156114132707266538582888295678382710049449920460144755894191976537190056604699333793370458714613480097198374498086190202550672053979225559016650701134350158774093166060941180010822940515574661564139313236783180996059063169234651273105486844988245253207046712760996615384973879305525700292323660629122674999402355887435547188721392556178282447493519369114221947123387890213072317575639506978848495598127497222877308506938577030781048664303433609370869577047429775297531318198211013388111254424552836550542290952696108931325173572553231955361772796511452575007928208720946108181266484571092094773980783963341966425883740692105050940861557529422496771961435374698832659895911322501715810116086411164093630252686381265946041609494424762774192039611792714091086193095188689946425064592080470188944900845848164373904833841699434675373235859336351602902960665131264659257951625946471993651929254687804126375831567386574978085140375436302890575874530977014258072650519352225622719313652543774072768014693690132290033190259850564376380440174720252288138102424301194741741408070559681523314652544344197459473822749994455275076244942693889882513722385279284175337047207506296295802237402862833751464440506202646179415243483029008294728460050733582897931060719097739588799772543607317329727078405616778739513957614385200111020914204529899647071705875602889240133331590795160029579656043211245027678340492601958988011220838278947599653584572117677319027538438822090092612005891516417781464994915053271348480579135408179977224935480949115719340624344876678832792085201254883062038533118800154343464117836396688521887401869950228968007390711754880870045945292213513468170864533128791722068977868309773169243708546715656610901190253993376630203103331297609298527838761830011751324444731593736874946387916462374379237119838948184042780518002181755903586572106096366061833193747886143321576498424931380320658474366776605837950274272927209395799173868130183541723641526190134569161120778891795016405136132768122099036292478203700220452219665075741083119876090224555468318059263720448540319570412109578241428844595782946241285574506384921629572628226606689497294582634267977857337946566274069350178864575406042163983428191596050480195628732054449415200733344914848776751477171264844967196700742679092504729866707932919676309893295845755202470237781777757208455038265122015494117985411027483098293626878355664492918512991052746970487667791974867860315531189707703286900140001315754645889445199287060701262988534974809119971957968692017141810395316225243388329071495780666117922226170151403456358088354815879031846845583687730065856036218120607208114968039466233654410806889719324329948372994862628091559411035763679059572074879348446472357108355008522604943903955665048720128294466433656593287879313519849030201537050622446641907347245064182869317515445030567336835478529616320991266125090507389564598248128642046980843111211394021281723305997643044297152621094781628059627155494590408874835661603105833298860464205154481322450377759587359759717180391603818157173095350873360838780298038469313174280805289992104857520741406931174868109278183132939622230637634040549283939876257438347310444367491782736430740914409132594980917919290624911644218142603032026572995234596395922235439858159054582277085344855979449844544232057184681275349338443355762468506561011259750619749397056055490817078886269943649754694319501552124176956984767170250724614409374814326999045055761766246638946192029474495208499832950548112455050000272547222826887737599920020310999183799596376838640525882612335471022952238267375028784640826397573262703940017940625977010494141153836570189991409282679507316765088815196927274627148609969227513016956156532443373459154653892769983770560258162373301114267370113836285501154911835466340039830592879782830839047933561781200724081330129408800567761448202949954026898614614716979696078098574117331165394949135196590462465607140272417305333461396243355928955555760778338348707821394081810977241129714400283510046203565222363549517309957159860778534953936179658980518846178778985240357219794918985927802101032048527207445284000272613832290088888887706382084633266190291323944857976089337567065985890254625986759464636928922495172003351179051248849635232804457470830097533174464097843269957857262139996904906020954144085461913803261846296081626004318106472316010796456819217444932256518294349057579240693599469254852092242997452637471152941547487431063403593395834043336628243080899214465449371224134918826514597517694971369873504104958278193642636028708649909049565806944761124108701618843238128177667749090504639938300787085845905848191239751364936029719494294528183990409352327471642223492756661708338040512837998804469836687868948616593270781912383214355290054140420776524187990341476556122937466862434912747859492923249545785918944888457859321361719503360333817882708896625291813182467376304253056567519237333258839980919105773941109586865385231778920771956297158254587488007159429462232312036322722466559445032345225572468003770772493173278418422670516733527790855357499500187438455356977500840838837956286792207935859835130003334507865299130051652463056656347506879464762047839636218605058880687115122777266563533622923120259564434212956271417243579567790608678750369080285346627707233549095572304790926157480651972518506554813191442385490052387154505394475523290291088659219525815734278354076674316979427968690914078397167562921293003723296948205186903563112215905677789322474031866729051984555777558749525932822362264447172344520944948983005734090160699399318861636200681733112355302161796456553147181500377128828388478589846533273808250801807629990019806143376714705944052857135574080584570085891292480627439772000918067203945284867961204608014046275796978144763627806812169321344363934985586798333799331409574222523432871013804725364972841682815085197153495941168178715594951282846552489674318940703309363654599793204841920518158198904107589169030368445026615623999714927005005918385266565906592790326483198694966042699010778300746314291580209275619708675188278618316148519481332780034912790179071117558071377745418741321133030444738230725666673092485917608112639250028439804119919012209965251048126507361805254730788604764889194304310671821782209241166782431953673813753271896732104314655927123633917386054995719986442814271542717488991602615083244866618646262356141690646460969532461280091312432921744345319208841897072004077247272391639386495562444846435739502791275844822366740111606914399797410510561092915191665836761148400719351719310917382510731678733017523922873826154271974036701881405001897384995026233989861831977088018314346054824693141129890519321809779905174337580027381671465242359038961838125475703258514784954167498725595678883891757276361825860791169279592018978818882935203294369585385556849556786908819077070896074269493784298753902883484974636899476974973191015434262514188457240268066053647048788113930475831960511942503409700007472599922512259718146169076134483780202382480686894041054692566068071987019118232468820646508106457768151764078163947079521908059291880551218545027512113348163092815986855100088805942759697136397936143321156668488252389053327019961151437867609112393879319865982308126830305166165394319259226171348658389849605691622260862405928531456974343456269353958547492290609730495994652622548420672688262259153239069406497119439749191008181575863865752547369398436582804282425543100231419859871802238261793789259668876090973262370305022796786541179487170148917338496131447299345825440184101308720795761696750260138107624615161963622766811472004575259879923197835255163855179249247407757149015229338628633182604142387454236438214776489797227456308713884748497992386501674542512634304226275751659042305603078883812981093694241622694040880970899416994892109365852987842487411155796955621012165553603297918392184853149655733111105954117960748806877073462029771205405470042267760693466312174757237315407293141640043028590338006069333171996846547385871091986203337852869078925016641802809271769438674106177199587201541927740325957155684052279000807388571376326063388324631051380722748991574097077153179971615728872480136222896959962056942609295576545396992120957888899956563249811335779310598150264896547261531340371837492549917649692722563335754304409287464837552216159794716873796410401225967961533172243164999853088960711179383880931455618838625494841479689622558567363369776898591566365714733874400780099455799362570762006766639077092839915649472934207042256417231516296471339593543926264108987037330509703510207043872775605075268798833345675077143365105597400851345240782759921178526558377013271839992606042855287960003735219742277702787951994684717746739622638668873482693356339642127671514646338443589148391038255941243498234244411578640178794725795211730491947010142457419337637051913590251188350854393310686872686687122875823332296050556215746231270990494725551268292241515377855872849568991906320703535737082946119966581959695539802200791777241797415846638705483629778242194110369630878255585440898707121333972633651015408222414169779333231198330266220728691610712287470091388009952722049197031126485166414989585369282268053481484365743844991171527650723609323418191402895037135914535284498016011565997945171669216948156965344143978416917203137271043351685648020975287753322962960178373857082722761825873877045758368045751967214961961223931086579410852853376044597820878569448116719367034775470113656670520902642537291131368644719792451185063429052586387337905875294063887298683024983521107949368045379246903787933901606649160849845261840435522747617431405803537786674682718764378501481434205207542431534485437361243240911692529146242061198809114170503572322334588279258233679509445772212423382527163164437813502526803005956473053073188931899314225419951719158039581304591222337462826130169062232690745365537923448146510966490392840906808084648914982420952428970468200371417576632715494908985716463355918563135457773928626390817873759488456691374889071588063758726552437019143934170613625785249342391592940601554594226800755481721278114462625148116600818383835457140245044614021000184952100005959482540858148457774059999876841584958078713087748158015417746349259754916740569676302530669716543477132669408036617632384309959874888704080112062213891840146098121909276013318697573632176218235871622844222950834577058862548090748263341138305701722667144757023380549778115810403620930299414677380021880687537247060656818430350069850504957931889600828103117171248422869849470270642962171777168155693121079169210273958594653734306862823989352954247032279873864011684415745234994390811651833761389147055477581223771486012340421839314823196069769943614436692489764747452802373363691568881002000345485026314190442221432572848021389382617115515008987495033221871507286648418921342937111114607397439521317967460539540827087995557302952739476147269365039771377794046162895696491980250681178100269426655710786202399996344564875715873368622732985744196152813582350658917229580603455238382741320214078564834229302625856385712656514154760357514078110136387545628213124214723537568270335395575214431263300807851057042813562296293386026399358499403070162598404791292570335449756799783540412991446840610540126392106374305158250364077902186728060703263491056176835366839602635562158935723420214860741076543915436147930281196281399605343693266629838834367843851364076958992146415085234839606202957734967052027601851829458375379677790729280862215774211211175413282121252665786037673313774063808572849949378317085603082338324905750141475365651080826220731172916618958774232399123870631236040869951117262711038022774887874140991796954590084941729263959966808694813021885661960134387078660793781086247410691826538355721635790346528942754640623864993325401753466874790219306797766332963322426415567879916623907386220435810757634928998272754277514309995980991785430231552138266598329581747828599468717191720733113537605622567695778416709527505267084815045609878734606580147785917685443771195926942045827293872209478689948673106991031340910299520821668296683921155198105137737903714125317682857939409356152080288054241566033320421245988664918283825330837943082038904705403871692414103155834300836057279926113604957986097235978154488908468935238019206302950475680905910728599595600657162293786876818640922897572102011066614011242028519259351279231899305924706898068922472611377948877880667123090823089068114619325009817335560884822346138531007784588429568728125264739525017304228211354929446777783181677862915009903244998063966598479267393380375315609660670662555852617776317062369059439849354831744841451413644387685019812721626032862120439126075691528199772936515454462657439894019762778796496898613646604664525701379042682215222874569466842591960551153855250290616796401393173934893035913241678906080935642479820048743206108664024747796819624116927660685156662874044112196674417812905326721939879146647195002195324154408083072865500293413692571108360051293467560653588044952499632914154296181748534632969145325426606983239830679591028144367358625122695397089003332919341311752648463694214882067134222855631075168319987948203561900963729215129002460854154156314486279004392810735920320493962294342957018134795703895794329096854049354544443288519109841628028362698297548674536759514468055702839926797350107328582983456415320578038017890239168278893773047198053956660598952327491370334915816487839476709593151312320925493156143312576141536623724199183895428419776845634778064722105963852382193792155389256645740706368858701074063832359498603585115365375113255273904918187799844050735016549940638794806650248976795055767844232021038631617072559444441261629900235220654743776167481519182378408565960940891922807836152268637208197893507513783773872554145956489759706448365001829379512624844642134562278478231057220814354476487749126071957377162871784628649438650094762342734554585631201507555832319034350958980817317444970876141705205534419227368703676502011711327611316626415030210781537675362785422977009132223664008550138843989864057166454206965555085205222926901916481511146882979396214756850373952904156360404153825051917654098605183883491956956119575302075725939362010890951679310529114799347383720887654090561893566865972855957992489030122117388445560878473804369586130410189853472240249436332085891948151359872013839688870229979908163958731476085926451360393534419216663481812043159572792001830025386406952418599649881278014265252570793553368350845523434171449017052089898488677977179994701675164303344406782376036764447426399092151483876056149261201080508638672627779568333678899776999350873253748752674710826724337449970436859599721048117918602219202519459503363507971557403696012364617414414047091194316407919950429874473058993560635464863348419042718032947518164744461315838340207448564561372422131331342349163262367866394976625680311688014626886025149342901962326074086339597980849780669193313298020751973621398150085051392159229515567798410368468481741675800289567715771615680725739682485153173570418335464109347844187601604455891795935449199757999617526649982642578067877596396384275170515317405563185443675939649701956395714685461452396563526429453813332496339126826594107316797672076842889148723192421148154516075781630174336639022865445907505911520965542734215679577993744095745717177463230269109734421851892007981425643851084317882199445795572545509074868799000724700644404921472237775474020011037592748313351404002547565576882032532020907760245738969865446226143387199778948368924827054159270862018072252521370962379612400896630587691166882000281591260979371498898320264357621517783690975544222474275007817647241387335422203179946306651595659375940920856142288782635470163742191459341987392401187736874868544910386402365054894156370804443983473516435058210140225802709321264659844791554246309605342020259473998832202587383069119384458152278456262698844699354168231593760907227323459713160892290046355199858120339108493754034305337665746250825174978833647161374030906336259910569524710982715603345168766398349646114022412430687548895095848721617294992449208507770409699146283623495618645995729227394757442375856510800967844300670107923165305292490421833610827650368002299080103899848640251025934499169153649389979288789059631197593252527299207715448687673615997858494858514268600951694120996658357514056990441810754454812236562943518458036583496646796667489900836517026910995328757810503417809774097628042096190871968555885203708924131241651368761499377930363770350573244156690919931023750440198156348544337257184178266885536991165702562082075413360389387950429106209017649828746047965794456093436476159743420350113416021592556039449574504487600967765897476196034262956425750680931082824457924292556264937522230377227477520929437523478416566625274557642070245466249895678295623244307529743864456804853559936386483145213015921103423365963598869168973616877775461790386446196352416356844920504510886596610983689121329565207799428944512606547101909157601741408544204836162641518630434408840467138181834708626315960425110782317411041325001625792869476797448527972516157295958664012456582878319159918403275816979445606157415201218881241340718994309403935740510488395445154361268384388312658632355216461016036627797908472393148838001513258661407411181727246771814229385652347797543448414739709753774976740055181869597808201140711495221756346176050652783572838496179766437531719980376355728379445381871177051838225466646651239647127766979834455191292560635156680983809668328242309901917303038513019290127268185954519406272816922522202788199617883430302792138410887119426431491196291027955405167256412933963128209199251658088355656989756955562801904021799782358308695963985352320101346527062142797378764022138901241461069281351273291617903843516450753171800822917538704788776746780090476190780385648753776842170745740036555708863398487049011535290928661472018602195053236062116205675622163311193664203690862846868455111194960632917880605431001209100883824741590915464396313608875097988247594952177797049659084412960052156856745913752185704735527356778235129400997459019122310955477063323429315958251935176832823685187857434676047645484739803613409894128251971248617640236504870688794643210441989405847989666490207152604017547234319065181655363983334063777837046259302448034881669732184242211799483245025366725742945011915119259693561759232362975762057498242294869171131695900955661429550411494705737423828487796950855072295509424035417949073168250377894229127806095099421757800534909175048613414315410786577583273128867349338140815541752070401596143664772516826432855466347023691288796518611509023398359798503308074519185665189206956289507745579134834512292890411103197727276360772187855860797319318312690162473001182639433827239557121605758773439589636342579370661761830192911839985078425058203010830458436571884925185335122507945157106935390051323689360820104250112620674597069164703424436551907460516974779389212039057587350941962923976705177917005210681540455345793865291825768408642753205351228921665746733326350765078106924530102939011585172132892318372335733713632177563306115369694388765510204168466517615680758859325185417875539754580601015476131298554865907189139676931128643216688898703679517229031703728054736125441786941701483158598963498186721229186891256614070492211918562278972549258456119911437775759744674360145049136333016561630744535630716167410214575595380594202709388643311840212418214264011300512177670552235250333379108729793350938461875864724493554214868277255761736930650410222851551267714634972583706560501165740845405295434057059205076660098097286000648780927766569976348658707166852726531072052612942615544313120575579042752171075149981872495456455008799663042233728388259156047047616391667516616617282583183120386496957890168655699734967136486757024875924786316240631150234553396983910133963803157733148123541039325902091413547848817061101003467954110671770418268590976197484523168428096916432293070152381872297674809903722026905985617942780578013132364701651025231926531909438183472157964586640000020440278444856532880617155608880697507113098597912856239325725053884144321989613362637294587998377694974366285067765666283421109362005154615234949287101897649856699694599142542935411184130571748824697247516919588708797794374870944534583499448418807581584092312988371381557078495177351259520813448259904411144378093302174283526584552597253450420006055797678080628784490228665507012638701768519807185598293542338725240432673916785290299127178536030016429881734978303669477069496709522929942028315824033239651852019455139500226320913801640465404698481780837921439239045684637850621465965058888763834151457590361571925232043231245738092145001548250386866562809926095767508142842833000353949357341643288358479701641191596360421985550591218496058245830802368832109069565493215299974085208284653642148804775152625727793419083698092751849974206279305268936246961418096688590933561537987035658902138624103702040800735220839390636690887679275138648734667621471899979767081935320387705878983702606917528678889145427585180419043282602119262657665243213064193128811648603032647404891612887385510931325927132765498557081959663603710699238512457523215574273523112871254383372044804093102359258811991913020983480949167867160921537268584705784482119587434058616530293305789524238328420301220082183458689066028410314907382842754054638567134573020826834634654383248740963053781235331486527237370973192222749937901761857639598317619532433054727258934714820385029005472362915427693592188002124412220331759388092055937679118158427544921748709820526540720153942259361898572926322121969293451943956823768529197058322983449743549851214003487968473494068952516556966084661054976714032971280009786167675343039645342239193264851293074757558045594063351946259338573390533684389233237478462010569731220158494437723036259417185590775355645035988039849665567081040923590731840015581192576464975332320182341472590267146089024878970248138369688610996624778704105596523818603193681285318563822543113320823040864650450164368258759739613587856301998619183256063113434889695161095018655618412974127594775599450450021700234639399623446918806093597440019604910751117550043883354136004650690296214171551607687780528854267946049693571778591331549874831873512041384518547929817318286319395555545506182968267254475307538991501753788948270017551360499588123573750545519604093308886098561899998268853831775846226463738044431418370658409138368687269912498855497834631257036551646121801684662242007414199286163281686943114026674303571566478700217677165067914748411377086862258968028252236301833589463438259876628490249150858405427772088978321325140324824836139672879690702433189376374243881074947562523517945750312207348415226618654486002326745496178645093028543282226448979098278269001589378805197230866428164754333275892526417410204794144677722997089047049386948903466005659366137735478764428863301419048367093042816902684740713981588136542955561073375293230186631614432343896139931364323882208600390729678452433849674611115603434634392417225035867715492728575375465713850802112275291678217900091786333366591813824216457361969122799628607817158572316872595591024656685559135367220240664627907961213666786336254735603048043349028484030995421128552608321526543605156848061298380385297740618023789441216631761319374671504524528172389860755751885506042018544465544440135030689746999474190425892512800834646504488632233129152991504496182341295888326733264974215765019971392849361391841194989414767500108010556357530786263910693650514846293152142667348495104370858661618693534390318019002760036483273777827914992880441768001473081493618336314533750479874027035514974479423060315376604591231864368344130803491450286204960777354385221417926508284827357817380145742512922567698684187388226798707386317838530793165015362416422857593614735059683279290595285584775921900487753567538974512782419196277676816935916033054129818910826236953598457863613762714011901191833698635036492916405547300666122919879071439756106677044294371962242424295972630491126879672666023727801473940680844343730105326203793615044062018364244849487772794209838174479523778065265879609921586528385780459142837126565274531287311369490891771472586039501513752993857591242192992598901412275130880731155741677539318119220343600968064037854360395122983092269642883989278022880380814207190806661741750373430239604749584209663291093117483306826702258785118792367666612587304347315000862499491473827540541639578042682743924087325223228973276295330328702215317669672707221095644137701786398281980831763765245331465913767092863049242526599230231489912835110295707037459555125586023377538402597144782881055089949974534008569560986167895529408440903765538454248509591873151392965247453419950187109766524468887825244206286619149292340377972749664260349547765224890599921860191992806095499571202005232812356485147249997363920812303326189443018117621824156024742938948406056632452723512742258057535531241508091398965886702165080814483023419163193802099394594455924932443605860955445997440846044208474791660005620111212420151001490334269792908838023816897726376961588407852354980434480092732118236323938373855898862989146666012171904912942138397255168662686360034404515223920254005996947513682680430974016895460638611641890669706166686189010244978859517379233917418064139487116984284056005763238698762936609184378548299261402368958995633422241530740321741705111515373051698787910759768781867999514512320358969773494375009815136387531354236940543700084001771657033224166873103735854250915287226047017984781289443898876159073098195356988751546823347489677010077351182211059901642811377333571672713115312364496620023908404219841358604252336766842911620212900084957370592070632436207488180722793139928146809342026370267476106142613412275500636229997810867383488952945131856121604719220852248444277921178520066689805091668676636688465219265571821739582416100129711307558628888284566455862494251784910088309023283142204571249224668935036914241966786017114407918059602285366133007142098255621110072859077377340574698961308356310778636419076000191635876217932686396078041592283533588366434715574989430068691808491387571644171749989357803955130070377244705019073903814489629277355269622415400187827945546509723644264809871941788923106549009397047806378832529032236600732903558781623698336195907618631515148213024432924879065633879565775212451837645088964796553682268345691384788259905065018071513360388521300219262625177706588928606727475672754963714778583283450521679980289049254432036001146418690649167096452412017980059887529878152827065683600952438040323940459143991006901936787077962555076363567498706155166871261889160812346587577537666911377477820897211778888621261122683235461705856631917417237254636992868901617746757309694721829847307765494816581801534583546763003337331746158555744735862367930200701952805480733890947547706369590680616958901619809653243189447632936975142294535755685809185910649747173907371903854572964461253973232173107755368891129587045237511250508248205165465949224443458016087535459638288962804917755755570613305746692872671069736111795829334151787406707723917338514140605584966096080458605118068626463595306537979027785643063806727306382989933903021609638503918319090549724340503328002401149086960357050528469712853364726770873692446500187940507440206399955044936435101837121596576475681706399011605942035463703492413633177598260145913373462601564764172482106444012592509578595555275565728309185633398885526388074457831691225258121976084793234534687471722239202766505938843740382701672631824952349766255167441530125912775111029247660150367881269925540256939600468777287532725642670908870318834601744693447850723674046507803245711399534098591755191281028421744384097971671804488365652612336942689605577992096158306801600634518490971728439099490226099953372345731564964392567104015847541767781634334366445498761861253475088057647451271631145994710935803455223743898635380555006184781584326283207071613727764415367857284152380359195504381375781807914378109005579689618160267553277653668251016378636991017970973335138162230436225337398702421557551220066918005081319424585697009799171567096668248025519497345705731486679416279787814906815448812319439706605655645696077553134675190600137828992007252147899421786708106916675561830091011263164531503688890199268514225577932480043688181238734979340144024716327458951441709024453190276003026617700580850274687622535238767157796396972364051868376185638132047477490690717870537062469990561482451489992136617102592398232989003833443426988427191040250232617534591467335368861757644339832236448988202799083529152029382456054676217392826575505399055944494776579389340261260053025817865268570042952908763054697937286002552275254209681360138731017603088691046924502840205776592315842285672916837181060457810789256574416862725059024882963781956878347124247537673975803798191314308680646251845820722159684631732015293082756568093546795116582548042088748892086146637873212650089510811939148926369603191909110694470909149655383476927781684416900342188990192314877598329493004113961260693854543888497197558717709207984994946474276810948261541532712802826455751912656765210050690441910247248553188055640679078973378348837076772439619477032196068791707360797409448009665971179307365060593965277843423021767153822219973092505818192895935466190387046432301225558089354011735864697801436035593043774729482946641225558337955106282687417329665793850418294449747128961696204366924764862982700236795577103157880732822705645354421212119107654595048409695121754730965421631795828108774309653103424185485605667529502690776219573673221509097587998933376125560779341711871223582983831601050135268779112802080372319995602908075960040354605030045490564089793448882652857689029503176225702917764128610640541843456202997066184556011786545832299238672839927715085847374449727681487628551831630702730658082436012233073711819729638434528635243052315742974726313450570271058136746805201391058422522843315364925216534208017868152896712220836172847068757899301336411422697496622800985978768922514206643280978278082353255410706724387585922070063316707200270389449142154089153445330590391170791800679195977819990618955009932159742200695548688702718936639681803962092083407486181506871174389177055744511137336707301754612452947827140868386423802505484267807556175696033373609265914499153862030725686199035207264346689521724814255863864667088276251479115845462299428453718833166394661769654752465498430817650471381031108191064877581049732123740886379410671184584716216932322855356852202780554217447724523569238786076750052231963101346944337037126395616413338349658467271357337041555755887857472297536828403424806507733978647107161546767030783264437151105458373262548630553392801724030007899726599852955329659627887479386207728286183029816511668143723745938405237749469845027793679419246422507835779755327353902890460695646661076266483355070585843075793965565905782825429717297225647256781898705359797282294508056878835878349679606796651503948542292599293703621337513729192629312428746687974135517754445725157936500511328925900233793831644181330936005571643023590625981486482805360711201202907664250215236454648758688412278646540289730821319840699101417329035840476367154750386884566072481455806426465339908084567721233054156458549696691583893045359004420294349912563859610945513592969011856129108495440358451663962043908802656241917488029743313990946339084662193118344892091761819692375751109218044772001036525288360015343731705064591216838775903787380798313394263821433454647352005837948426251680607675137645854338132247908043115571156817601452294613675805816755371856915588909972768214797333423830573709246634219972038902394062400435151290100333403322938340160063904202756752745585871990569758819898792002731908095620808596151828622790518517767401971200789232030578447574601662559348205042267390915769353521549758917421687567109901318460256362603693315546154514348169496965259756673137524756674323943144640003603895623247245471100871685199397964716748586972864372465109844578593657057861325753451920554794342185476561669908211844342952589469005033847197829661428893696118677913275427785232912006575429975391576002762980981696648043238445587996372586375059779235585569026126704765717485817718905180607092155608437930097036755150512461598382283485179554229976691876649777667905766980954567802556592252165629623198847513683933316267279278714802477745759664525339061540251543217347825860406050837293378311874067930489034134489394410366964725293407120317677577366205480292471821464934856706635363231524930095821007108372922911564118164922909511949606938552169904656457046275889990783936230703398622764300670647546424286271641379570611594995546479776871086261646814066305074704284996750335817220721685533308443200464870706367245885768802424948596677651487277103919200959933636907896733692835297493027190196716132049158642288896756505471308390526864815694772267360948920211433059611060549052557324798677232043609681512823703606695748698660337809602428597329141882610148072061669140912662621336344100532081604753179827656668639660428706527090076259295280483921278862498833725641213902037047452222089364447255254592500822341604582904381875660761644222345393288215417900502086223237977865781236453040449265312576593059160381950731655011483569319011393159456813068275239982959646614575166123395694090716849114041420758490400753518385499385249233279461250930731687039773159742654279981805983558373533461841588858053747306177843948262513140117511610956889032314231071120500313939015065796752032420955535412897472284243438489137697784118375243986226417241871009528667384024439650114620006590962455190521647094987067424742813284105605858083041523946078672796023745427313501775493936068587448142111942013662338313846443966196403347116494101062744586328295364492101773685589694605548736107126101002451848789805729125371838497006783415665132351299574000168722879626531506052769363561371782020216674262765500636963667123362938329343315184940360420879114000685989337591808261095423693249063599897312563403226220055288282919816435369365438549513408174388664465615901326562151513450488380739571937012873566225743798019420205383540304057156082410653389140543120679451736213781878674161848867269594773937346017075982343897908584301164098615290761023788519110247165997291951174162269442350718052343637385606429655179477668576010189200383891406419640986638635377185752145024744769122695067671831706706430177719905409879851890467109129628420574581081909508198733435140882195343594046607928070253647159871323645425331403614183832246587513242654089781284487069773885696148487839964663753852963707048133908576285265413165355589035504852740708177798983358476146712716934904310246417200441592044462739771575461464304916857834113907054082112600482645727571101461691933978060710273413370157353340327307812898678241131036711020610505600350737902279002784600888897737479606468253099518029157675386506366277857004755849198321729931971502725446594711245468949139601312459951330191280927032810944752880052706078036132090704300811763755742140394759806776995072207145104286563285078091458014451907158785239552582842946469296699526062067069288911757347464898388511269932039368702442938364444623055604110743431296903632664800532670839944183171751225253619866145509181575474097047539159972636252047354899110542835271702319755600834179647805823766828287956987063443846019627310324840677768769224272665920604280362024566859503705924444220458600810061537240425788054447397412875756186150765460191538255536035601278920237922838626445854639292130366052935664910369330160699869794776598924015510912530210494547973594511746189933682615568127537903545168874338890543455398342488861537958192425029076649955603170061423806411047519094532765825201054505854660989913550699627694479673905457497288924998472362878778957391523140080545514261658206194844369278792763502008472184887054703199343626728439781188061386845546289686976383387482902680478832380849949668337927263320293338880876952227268249251769779999653420972246503527651376553771670093688408032807668797122209677949503855153485100662061426980782469474915395362973861475512053394044044881054194953354252572568689312157336044523990810125805045119871263825485197205003149530341820122283166232136353674058281900111954033198244625117422423404446522565725977447940302794995297859078120143088316790421581500471309268064492140266867926471201243777553914486451041444624044488387530413247991715205365893891850183011708036458230597423310413427215345464567952912770769777410834813108788635448422061917384577387874137103574124371520450394412010451514767003286127848887691954341438489958057389972160374871585415314460974356119289057501047243006275454485110028884353879559050296408440863164542375442936561492406693546561907266727804640214307377751031638676549041510822671524798679144407544532367302168674891136802435870252178558124616624357759774302523741758312929499169123342458778661867463296214183121844747288875027540228257807227610588292454180431443764474659498015188159831637949424883038260038505204857279949892632748539489450286429242004930479606416406671734370583573214991352432047399794509677836254704421728418494339633321364004366160820693076664536257605165948249949411536438117132752282718237100319411795320661465086504939027607585426792278960504779294863076891679915494570200900267774821148330044220178121641311570251843733210411047794837700387817079972507359490126842278711342876025518663408217949143532245662456286565376451477549100741754866098990122254143614089736040188407935935946851663084898803595223548389478029202575543995273385036686016474781655522502208569045814617495948586154470227440913613504959583647851616502025106673190101287881508354647160201495494045918477467814875707506889108718939998225206194954757505117187626983567304339088744391824157823007387181241079457452146955036752665633331780383720687989461150723123377724390426243358378322721557840815156715585412557955456918712292699792563211931278189923008404876392479705722510836435423751003871699646215477047864500501774860987374243669305221275173085732323056721830489591032250187429294569843725039298636533698808937572218570766385695721970060647229515455038011452414831061276177090023691512090733430243622038037333000054501139281355869481791781443854186662467809643303391335558445106693023452522866809558501384523200519651524796204161295650622948052621705298966753086587276027225497375763393588139352403446496724558060122929409082295546967046755921283568859651415277915727396894343443664014696552198165523562203829040428367881662114609864947802001767140132277368464332110087893852619847349050060269768778334732969962053312106751776069326703266824450538604955215405871744425781675602694593496722981707455366046998152827997594981260129219477373262619762483042520417573149808176191815219802883850651014663973581870141139554569182627153695135765799938235132294658032067707628268121349103319435402909180995362438386013406581570273492757261927250896376733086293544462825892291233032784777953791982563634347448993776463277968349351672517668105250178553039763853562138671712173935294244955900659865782780881213057265839099055252846472313830622174924211167969460898608511928456263128072574773407930045279473545381712337392993576751343874148406919009777698372067977273039000691472331148771643524094123957571688960274991735698518149636055835544916119260309813241465463645577670997708645627728934712219337267836699638488946702205308526395597668771779928061079294848600533471754290504428499890864616340935437015062836671849904233973660258109743517346637277078411520770272873454485555190608670094162284816874138564716733516487297030539619316988489691221184656130559648013571727194420447232639170122729139554781848446618725926769916005689194561806373578536548854197499045711147004546133396715079766289076903692476165678217342517991091458710016678409646513035193643731904455672892542391158182219068733128009535162247102627570581614437377782379878925733468346076267666415959838110166088860414425119867807242607065427143788801273036020730764495493841801606791979566677813415471336447512721531195059827872791745532561316912611815827182059915055321263736913724335715097254459448426422405681494930647067069609478992896090869193595670006487810501826677242522056595406645883041958279475655336333994995336188835957512985713889145132303643166126302975733356470345798422302935764239596889970908629939737275350802962147784589701896931624701510860259670384317249583399532258748382926727305981666236949644561165005105059950742475978038973664292114336997725994334074751308595312824906070440001572235906421848161637393845239277085913126054005771110293889124457326857152179458431247331371492926324736345771128707522224849166802684699540469648604337867487445561504882800352560843446644886711902678086720924780979464399192622080566259913850776699008153481548408995516220523049294289989871850586814711435007033043031049864993542669896386541320693304891006013557640335850067380106008741545292419465192455714204705340485815648329727767210703202320781472321394274663798296890146736356357225569905156242439093775544502165363360841887699458390535259100062851179651547643166615309879278134427846970745830367389562271513354892089293373317689934740503183056412548378699066063690286620679538138008988931496920295198684273918709842488620874985255291221072188608464225629392428312496937663019011956135166463387618417798131515401286277822632950584345097888684132737653886823855712446719653128398499271176576582817030926883683987591824126607218622515627914711269695537294920365324233212364088582675587462510082355339885401836776093041562142470843179400258664435401344742327596598856592654467190875784792216076757379705247812155302596914398069347385669815766010870848153330640127014050348500125273041717615476231003164655489346129745210526794669484886743676728760744563621843519644983411866089786987017369792682635351727354064913028482292410445981963103677419624520961728895965310130242367822094752801415806254527598498098282812463693702068879910863977626035301773649541800732493824346598027494910780677146971211528340798963338125446844442870453023257616972065970855785908928351178990370894288716715654863416734639529779485080700759245833328208447786583161124698096738769584005446788150292122307028819690569492147203268261725448383183784806863476930757915957006209236741428325646414612321463874424090870840173572651611838777623636287637735643200920803712264581418904709924745543484657192514773452544321225862535132472650910420710024525844885239237439738974046990068412517887829571647847233028863958086359710793689077533281665403923685911786562254972586668277344183193368721789237476936134646922429864006893017803631306742868277914791870047906826562054424230288224633739918810651571823032581578418579915725194184206133868958823665978268723418042492800819384174574435967444230467948004982440205759549596681950607586392094901293820809648765518585578322357481698575266220273183755215265944940704752684273211332197413284603274596598360156435991147711446748646367345465170541659488057109652935715884280600321578314962721545463000682483468470938664176306281357266014450394322577118606922687373531851877230179685449874912318443069899419579314603345483823457396588924974891063981737295441016853102158232794360865106888026472233689688000761065118802090022016776187876609876562606517239954824467446468665480482846726531389197351672068486000113641191042566066970136470294143152131983596485966879169394055163757169489057085297978110578366128393905420816316194555943290857110473940805215444296824130031801054339456654936818437702803462394762727570369470616389744222667790377561229531626633913353218461613369942019783421511369825171971885690978022257550513234248960805913870930798890921909048597973980681706808130679642384611304949459475410738850563436650451388546610786234852593357919230588248184443057808051896032456402125189571181788151243927679912622501909886579145280227089870452941790211061199801789254719873707415261056046750409806523701306048194603829873254753716726256875226540826097424142960236693866691607320331831552007856163436656136917854850167481335911329770510621743722569238273135040649648801435195149161339879322497401475824864985276140512263186860808185281569839861526097723059968778747133490540534441301909696093548968854218100603275808405757626620655714107992697306158989916585554287351674658618507700121167550326566992997755845622800266500680822569505145680812247382363118420174655712585128990321828659193494189288986520807028723102446738324430059242668296167719518719387767031807442773425948196672000821661242012615589504378233126496982734865715917673869392867577805594202944367839179007192586842898451334104020778827030334848526486645717517543598702376414850777938784743837108280542025308204668161268694849613449122593748053641276058955049761239941736231192566163344318102278564772010580031471836901942306983399876336080907703755559244472832884128642330002575537724736497007162733557910436732461317880056888962132924205765110803278999510385214801870497494778523962008350797602760475107884611216797500723258394491382885086938938127759805297019570716932096167335590216582350549364758690545908147942086662202893484938136658635890022665657873833924651816429114890374501179427706433618748878299536336962115854309609102094834240371161949289224436614110084202186484540249343179258058948160169432193290804699006918666717173270516781485033999593652841622368141085001805733202666661535836932048138874338681641340351590490508544235543627188327833116198954790635808575141706419308846660751009264312585175295216277237109501321325119695311480134750974429133850700952734122366135294425027221343322158628075774688294463578428164997281115697873577191736579359636102598928566937741369957246269617695283389013761710525540409551390387916049377579272771022868073572234106263217839013387374465148090118760160511992771805240572145524195733467789196272860321258933021604295986030047739199489054492085146887740037099787241004540763289475514317120271672073181452344930440704402468346640677022290982493923547358128594035817058915615113341084509388902948356260054111462646089712504230022309707037390352876650577901240305212648300247681785280325755771154922313437292665309190068231225879397305332073473230100342692731036083406295368888399737550905109548257529627064796806201545335134016193656987366405709750445957266564813263457541395220506230992892039811611167310028649935716605271044371287552837863011327896981359407081754195200704686283966870498745584878259814835379076740034398785862479340566526275197155997775281797033076707032615847411355221917055695588049138161793597765846128510204656557258480789207147534108567310117361657998911444510705316576093342752846132152769460429045212137717532866440197172572234441019518167266098466990707622353738716249085408361324634804603403427798639505011547120519501300887959760651918181925770213105899265252273475196522004055310202038520865611911460975055208089136123243238573385246392101136145937611709028302563171555092305403503483082860295372893983676123556634039571849383389903684695513022672670388027764884320470289003668605509878322874755893684434926674640137892680514554428395697298683169030628284588027153581998987879652655509455814252874824336130535696754903597798596440752941391356913108434294265829261400907802309235668045179609185299473690772738452123043206148760635116596949730397706713486358851806628775790865794841761349197284965019834271522750035051984738053908643200873389439523311232679907464294493305712275186640553514675843508752349465286211789837254881110533606305360741731898049756189758288980670598015485179476794474967587324168290178481423536630373038672702919663172618415938092085539180285575179704853089476438418783547333022612655600592016618473515104263744328538060410559366770695828161549792867509310457044268065174634408891258100505779285630938908673851212290138816707777804335720656806852998754209716835971122957097387742408547298421652978403188124777952250039838017211788181332162527162974454952243426154691364477844031153767327112564978730528313150079028366814556961296652660282479612766372642371713502413913522784654578423977123607099984642433576142366045621195430997468113250477515191706336353670690267071705428192769346615667802754445561883299510995412166976952833659027731020925801456712943875649268149405989997716221614647567703380021940531011911808287222973428078881466754849239511618782226911148203537461283062196872425244738224474034776255534443970921287675608423254739728629298484315359900996886104949922207178880005343171723847556159615296896159040012371403033846618706722308730507660929035540047811267538553427316898151173963395395435163191550189616863847990927194269773574745617394510869239488417954010211651622667123005079965489159520354245698425537177396735826838061141939619383969067337295587893956460476582048603425924886458900448042611248860692065147999141506887854543834445498461964612553816244483917546084689509477789108970787609540733348348102327499295805067642119396923975100052873104582775674803958423789987206544991287731638235616725421562636774020176620183759469239602970002954081125114425181558517544716523330941894113373424828498801704457399549106491839131234765619337227215041074929917405768258379478210674851442882387504710210267455054743951571511369724552381901249737059089237562436101819685823280153705733814981994625585420909349714556695353459958671883877854360669429285437879121794172316490890620651819267155532627659093679420823008521337106191690163647987244877101861015179669611168287171900322921258891027902879494299609284602049909099197521670894864615628203827875137885766498819090211421484169989584659093780365859903685547710427009502885234031129537461743246115179797215743253491809323177663359695587734734327083718905435566001671316269009798766166599070271518267384434946329984066794736610760777812558620718062058862891338921742079668480153697842701823148472199458379667701253073029007001013032299157988863347145193845218926018269487174491242336391693256527016789313725318622204548499180905419703227510929469131040709851167090428483389024307583870267029629699421895851611820069727012535474972072593708227482783589405960626531815721832188494716657856976576759740343288150967950315480436510465853267013199319425773881393264741575828315863646245221279493162725452990639536989969200241479775263282849166980814358389581557012780976886131676781657793142321280700058723753043449962624971169636239570899155818125485577158343262068879591341075522708579685089106119143760780201937850540126999651490453415506029468700767830319260057902106565264078892946007114484252330904312974489352583310157553831103704491073553164839154709935477756984761958749119945878089784273439060861023994797456489417898883792425531459096073647153378399228090364482123719972637725880004287456257089327626215027777913686731902036406834693954171673564845624215921044325319938759380041687880422793255899337260846069230803720908830485287468030422334009118130180180620276807667961392702832213883030156859850510661311974892914319284157856004608223641178820940047261547250966876765920603010510014943694144116425572688392511280657129130181699968455142130753721710272074392901787568949528521360843043954413774185774842018523952155377027480622050603597769525055792023291185286566393398880720909484264391721169577734912835942726190826229338763308694144151738626915223929433820309008673030175413902770323336864174340290175733950253711541820330776520800841943455974893745597071086183272828218946194431585049409351295638130250599204390826494184043529371935648282891951659155986008890014158263508147830190927073728227901453122167795166445099930936410246641614905154873548290519645028983766977312567792476404325427281782397167822362842996062152294480549427149956435465208695411127549363394973244982072884758684126825056340638913830492423195812293363095958920399388132360259046021599936496418643043924084517469571253203071341649060699597728881299359850162993454853902970139465742394133435637820022610085776948233082226237055037216998077108175380339394126646955343492061899831509977933112997988172322199600046807706264760197265519490581927239248333008302605947485312663117159978275005353858437040024918253837628676282836410832680808931004406945849696129139846906037532408610970170058780654451576781610420367227834005838235118382924198192886476092448721445612233223192804202333809878967672621871451003740586504302291420514366927073454359299601669261389022480372876010275722193809864016422014222677675062196023610182364265016623341263309576130643356708485613323361656536164378120362620214783051776600820858847477434708733147594595352652084982354740673068013232536783399212782096999763633881626438871767483797247043035739443382796396321270480162910884546395630091143815992852344945281698228531124995952589483274462661582231623706075120339280871640253920357407562226101440074191036903970678981277910905807533137054231047443014512372654300084990472214707404573149355606530348025194627367802842291376033603147415013576905488662280729628200346009019314070503828148281575951708785089489149671852244482480635691576137482734092167421715036168242486584138140475094321730443354922960000243015372700689094255108749313280161950884331107068440495610461233957117899628731534272808106291097549243264362450767398796017523335893053636708893545972794437830464133070222666765065599729776967508609992864687607495474808081611230580619942709235334329872140780291803693048127498684448839986559429361976808893638017156205431147690222647983040346892329079608181965358983441363576566155747740271195214192504896711847089556379975415253015220229122400076717221350983595439697012392420869915070656593605794500198528344390702554367668238598097453716273022815193373876842131003842429791782742917681460152583419526565039433247815634274405867445367681410864680615819946351233334702569230260309879812655253384086876509610126008845264059678807199434741204848081892139895129705581338248121658183537018845355893305524648722128687363391335398853860806515098096430884880824262893217179576945558290192503774778937820305314220850786950134678761222498581677394803932825104025529827457961343069143986065443522872289695378860145440117189996861776266685826145709002144580224240121122962770606139419538367222685555492426207421598274100694726737207070119393658062634047122530418501076695964929552477877698116920802425985845704671176898636071802126964950771580287908643711720584398020077743925626720943426034205867454248472862267008197669469777589521364113867452583622119116018808073722059573505889805687433047433846588504862070434011004398765412634103020897119318520252236355602884602286077266303664548606835916085457409752098633589739249975852207305586822929475923156677270592944902578761436390648086823360514728214825925682473989337121495187048408479068227452118402497258429218568819186731793586612537215516665032914374725446946866357171594661100460200670953994657285378378239289121754786015969989372848284582853308049124184711329647708962790936592651189214644022393471866118558375759491644021350035472486824167402334707343996623053866913199748434469750401090495130936179763760366796002215445881460406131549116426205530602458355862889991222259569275856157914552848140813885410627056099035159345387379472811902408860152436709065598459271856080898579242209948651017674258806234818079649056188258637650393004495594231584082925336841936367472738646236277466369455683891721238812589628585721628769653497777940273479639158390931366343790111439562561978298392325587068003248882312035117533617736763817602120274736901334955511537917304564050346116410519040540715861439167771622568547471243950985237302928091482414917257565775546278841829393298009347988472052470944342461750419020295686727719871932618222148011719470381478988762348183044902130090223322652839693760171057953365511752719108762873294034395270318808196387081371372541666037740147525817993106094064900612180529402410515212364853399976222068452176970974783155389024037081689463548344498447968451865162006483051707988117473601930708185246417166850327022262028599802171602251054482283599940397425167797235319267038162552738464603830967908752675727489026757181358287155075474070866789119015898850431955346465547683255168888722116554071950678677195615822915223576200974427517204846345363601124438124133940470292960759367154946870235349767005577773633329077593317205745774471377089191679721527834338964392728596165002780649843439044924038743702608303725059346754382983370290218451939774048711886032096542484744810321339962936516314503551293393357910419483888179446104239189274098475076646919900515439815669999873782597228902237187923479139803989999791946268402761813818839694787974202341909784953571704868773346140288648407378863594097971427257752540925807150391926749897635237297895992070547115482319402556972577825271884171937681808115162087660486174520466185546479049374352967196650278301799922349411036902035631423697801315201508947295689623424263267602714063739347063120850852196510302943808088818421401257040051151469872741815086801881662746150273270459393878148478782783075317670146732414035496237505127615855109821578333835272012880467682337936517118322850061359015264921333123228443791043379750177795107587902653896555534201817816773726964184860160707326361751586882614889114238794354936804554982353406608414634121765424422198046183403014216733650540575497601520506455111570924533316423102424436409126872798901178473077507839559155677097882777442234148561362031781528954841485586734977977560300741917083850808504821923865359203622982628387058093069432480722464287616976058615458861901271262787561312525063272383432772976942778654894484489228644641787842636832872602522031292582389455587800824486886798636920130599138829953090744352420502453154216313288675863165999994487883578745186474464111141596313755872080127616271282633017141629604790685199810178165139937197820758752369126027666226711121169101094680116627962421753240107456266739833392369490539731692165704379416574902340398307869067777920244769986236616652109710536226907663260002885775402942934917886096626889664605430659278309089381817100627739603158702741001175633290999594374838049898955107113240499882918866592228297116803420669061341340317385479921466017181245464769769658705471248740243138312016975998071548210927304892622934623098262732218443217830867518052589055040931691638232935516950819698066139885781393776881177538516919772397537255427030384072690258075861318143813839182846008666909847859939717276590379454509060968764491922489026279701285381852876398326041135195285583067902612309041105151253780757128011804642188527267980432040097337007210515059874266719312539600775082632833618274763400639877088197202917096052813574512744938474628930868007080705884653698974752314020259720832545533210254619465204740090843336721195777593854618055922485320679684102096070877473106168744164967365861089841853335285217881392098632525134392335016151706921305006441992490482358164568355736437513767437828849155566893288335096737476644283229954374634916122422668741224216452505946636433570557018325473621690011774594115731612273127876723839339478793022105464279428436569153526744979367267426363414362492510372049985470627951397568436178583629258738722366730661641712616461717647419005042878878361947273142547020101744157419131664969775743305070255458692392682048229812559280688908210812840374533589447809896666867009307560146011564404507688420946090915192026755754986999110110500175291676491080353436814439759116944931234043081361169356007990589741241366759461982952698245646059330522339034530794344568585734554630657470249112645230127290263161909272608203585960719813525262503962082683977977465279404375551564383942266387073565203439981123515733488557232100781407961269586164717074951132135291299479507358167810389419897914173932773258080529723867816606533293129329373599063787368495828412981663819042849257684358826179366292588758603213006308682947529464364872537250459984212919550114584888247716526445973988605603640508846916825995319553362671906697716091922094313826331683181424465903190390517750450076127890288014921342028543167890360387100129088457708489915877597280602686134851510750810209066239313314811376692711207335977160908679468153242873330963781022782496839603216537018681800920291662080944679783404151696106294870430656833111669365825773668878101791540922679328817847341230533806341863353432761708652307797653808614380032884146322848513337289587256477543406389274953698793235468596266229251423231228285390916580033169288572589514217458506896568896161423971870762442063255653082550575988463614672717679401844230428622088780797176796931457617589301180928529884915827866493754309390115402101928003462741595627837465123775309707922287067811205291398878188254755288396532322837575322933323656051581819280066667648621191210630069545598673898762408470330592358146206788742277290115719113062741843879156760424296636009020403328669328289093696675252022112195580407485324576043845077137426393007364021995477571650949018429178552214350234943522529805770696728838791581454895268806000191826594387676762018472329228236050544676759765480969727923536007919107474487881715844376573852620028679425121382871445924169718115196597613724098466947334332243024185665234670151917973378232340520293638943854531689377341765777598766462977993037412272567170007409879417644661385937550876430695865151111844951563351511117142311473838538210394970272870960083385643462931922258687361607122885057147975098099063729248495793954638096756787424305707477680764377971815781747345484851537134306656136887482456939226785600893417419095726523508934307270718445513803413630290247756687947366511245771419516610240889157571482190156903440666071359296259316496038010849169058823433255938560903248702577743823919542051098672062274087492088872022488410140550232384378704460590263704975135940906282848955888315081796055658209856493073078688164103333807091213707617376812248772263188780322503907455944251469470252750439935163869613998258242457509711829731271698241222802602139696810660857264479495774074890064310534992017133173735095290785244774480858627521307638904931519574655157435677662884735020612065826933072421582643404385121512733072123327580873428362321862171954680135098813361780502292601698447347823634535093375388229070837815833758988056964550821168191931184435736021557722703568825044876633298805663404415802896325476565216438948719168524963304068291608868285682599292713043097785608824414531013780511791393858584384983677935195901391461382940151100336385839684377993193435451976509502907585483675561922945890696180431694986101566460866742055112878071722968237342157037587269651506355636232924625068638520643767242982307070162859048239772863919645559339162741389821329897439024849748956947070847357250300769577694049882032786034653115279370308478417767333341614148771833182005884903562180756093676264646044199538100271893030459523170309909600818421922908266331464761690549887263240442566363768144757879365929606460152825871883528777028885285279125213121623932105917124985600378320932183443699667236664375515503329359046754180918773479145197627223502291939563346711285476249532300797372124213449977038112814471970522205713323138080116306318463795324811836996877761285742174129886216194364105099864444140713706691327220825639075866947015131256731417282017472116959831869953244635412303001202016897202218932738148575408734171028039887184763216629580133208615918178124999069228879852261920747317491672723554498472333196746949990881312676543148859323783427046940549317147582622647564975093376388325683369672743002772945266465031263550079676485081350088246436791250557304637399299940364816657426369247542415664601755910649277804967205548451865327539114411649194240916387648419245997759207126824618589464654336449899225215537185802434362085183377351190981120713605782224229852427940823743727892986594051276166535664342009856743704716488377630276581371014970667202326839629928691966997998135904762179668359236604912047911567204606879568364749479814579957712423444434926248322653938185398578085821692143159420238413824615030534965473967612355967048338499325367040259574945116890420933803730592669470437801481851772113131967031661604850402024308519284837238853758375965284739683138904227697217020849047233106890160855313708834501035670647127083614212755868276533736913874159394421306775809952442478833641351276235846352160914114396096257415863102743281183584489313793148969608279056059730159932525785588236117474735529423258954869283113072672207670391702319650354557979633380831582958931820610153410805274365962672984771059869246301337460668899743433993413029072608222659242707892908770771862692294806807851012148908430427907290960410281460887035331861339596022210859211460863102067415237197224714275931307118208279527050749025020363855373439962102847121190852087916614075429602446991529794894410766719652257783850256977613299112110784215480029259962624872924578392894231814024910230291516754887170028315109392096002742618266982825571484806797193554106465504272848073754841720941773831401257743401687180286091419580331983158039366896611970713970908078100768671219133307276974839804217730534829638088364318371785572465911575246947209638201873586685127043433519870380465817224931440866356447991760717773996772973509303634074334240717717469938317201857790729712583026337951124863328734765315025144751775972617515742976860429823020096577484601715328255572157351695302097821353472876406303524635111957933572613690181244470109464118044541987194955132633602874615349853162269056965762816229987884763908234634156967075493217141055027535244093098242015226108963613577235482233320088574017189990832474397075638648353574020862464408689868230893421467827179502604002831958182115002033633613553976754212633085567074967725305148369503451759727960528859149409906072242625682848140087288778445790844937607759121478430807005253086625311196121858876107499466438118215027493562250202837833949789740709681625324466755740938126966364457901640777471797371535111826656867455786381383983770529495185479687727411928505405176497291633189937676719637801522802062404867777382525224539070925045045679163619001937135180341057113627440638026721828225214150694638618828261280723629849142969179361348547460848082854987258963403756765309459707845269863474078810915028340966721670360326871885262210988927412800228918158375395773339663995865306177162097984860425553646720056083218257119091641353414224368113123258562140854624612949104058784532641786397108863350906541981391859013888064835317092922696815531420472799191249405613396497581065668841961215126173091877228345609179699406241733208469592863897924549785148841442228054970097699705334327341583841286549594445428720687808752290073297729377717984308760048335384833886326115983396781678296285928534186259909978052700020327262254085957073123430840784583062429729236566640634409097276261735484863779361944048907710696696047267339385023079517166425441880063316283980513795054276383720052106742647235093806192627791206144107578977397200228964629470967387095107953223052359909271591413911542960183206505892030228948150616365938232060722612738025816576474325969055624406386263208506729259656947638197619505455559815207639727671221802406233749223949108823409917617689881000010863126751832624512627275927190382970644876389132471852922656172176402972462037316279208004268155847524860787568168284368973460200171038810244250947938034974133591883468585345038403052731498691024123985497252875831386868882752015447949708724067528156456780028619610645965700343633469205572816102588637491711813729881286085316766365495991620980327611516890545272980829571135525240855000184454504497850974075258119303566005259998569564577202824969656909893435053830767953549118049385916518774046872180089527976512140890802683916489088295503494316112678867532644860903798429130385934821707786991002584867608655123557167994257937839002882039297322137892634255698924867462467036264412712548717434705580874417150842628454254026431766351770435175270665281770591447859277045981623419592033192397349030218995069761544897208519922452224172843408278214193148646401755378540000949519469212429751566695233837111728814806943819161660866943243609669390983333102416169514823353518214557594247554133598212691191401465761627681864192177387652666344181005090475546070568763143861268041294216382889880449334021366253059600264682138948720041885833423317678590729769762414815205177897999636518787850012652027246657669900485747039778312481403579846429205709414734544215447640698192270295254023504445179818865388857104428622793404424604610290391993978091287761983211513432802728095960825552156108248720154526082808810611209447357036759792262779553770517187990759326083613566663291122292591810230807703003298409068167876896868524427824413191427503105276318754476196602873712209861546488166876028579569602894634516574869233133314852584895080482749006057871136174625608595523281073839180106002624001455125377474017068381902453841144255449392981021073761937800007015773133809506531574819364218492206218115894401632853761917686949325934951753288362241272674095380643364233155605386154953170147179495394290397876017809511919843390565174468499883307389576022639934735256224771434058049425010230176007262958938312110801679655173931725702021048681466829374469617789096052473244615299526219751654705326629947093836509447350539619097503319230446698635954402983136678551180446679411625971382074331186243183941839927313039372484187154124604719601961078667401667884694917294163612858753093464679249225679331712967127960318220327800321434068330230971408601784548438782707605045746346380360071089649684728635918724556524782133249768142809366198488779790862721724725692006437420741956922013745572280545716257693418452442538873141361058635721655524173310110442137036348252314714002255078490846100612533302333584448964235458370849923653831337212342480364790383211629248202291817691850451788795893982197778370038826437567501803239927722080327483784163439888484261755111493396975736318542242401438151746238834732870826182859581622956028986880351250480209034163214464280714656127554019823060037547720040806358406417532632918677221093077693587997724489659891900919232915887405311101557861741159431255893768214514152890770564594139753274611236617858269643276113318393164554367866209838880172859045025549822606517663017266235339080113886634358646040498808711733631036895068049685810114479201076872487772060777832704265650571929957669438588029421292712555935495850747001324188424924515506390533689786023439661026488782029425025938035417065672133206641869940350970926610618945303360233002779087343766729463760614274112948988362226473689502235980224665032038383690943983857682811706030014555859175369052917072051347770484170588171611036112039437826234131412812331645122092045842718139513319891860510584874864723287714133371403316688175087273531257390129889073243053215325784819839206236104673433948339705158055075328474359320377795977226977666787540736690342180634699135238214969548242256424747583725828524388289997962087842719203940024394441968980515834475828151356605577465539010044273044113559986377036435056646688532977742032277501573883237796687794423014920648180747964332129360859993082060023861700001825367555799896355359073002705936913109188896808485646771923358065718732199269191707553818734187296933446538177299609963990781763648860046613712830777682068544537843240022666209358490629697345642173083175841355192049203823289331520968762352736457922351300191734456228759925531267820331990130538113034395501108060477723349878521427867588086145782377934485337911121776653753584195808538223250569846980622735582727218256026146349904040534705932215247563863541123122485206419427606763230200987726875941911245997896247234246758062097582345286494967668263593688826131911653952483910545353534426579108679348738011975851094216967472676059637992749979441492291012600467887126656239262488126118284523024363196040619995851435681931593645294645810457139316494358101992479901639817048281406305567663671361671289947836853107940916454714764576978652676321205910587094831974311407385605313450814377728650114223612614780469158739254358902764833983644884241925121672906580299408388501031525268021445614583198543285731701796503084186771476061095835956395186329441610187061194754693915374947078709256473455552938212490289959637708235466850995911824930970380547819276366133990176605371998897759753763304276953842423390670283700322204353774445904680369959355532612816400689355364425000831286781016448200787405257326749981021337611100759333329499323716038219317191641569327305366264445986936625040834689550244605375001205801555534533904336591742486019940858391548619888868767762899203539965209235456165127116889075213362270894044613239089337980592759575576051795464855464404906633021729769353450226766200224451487198939896919400306660306882108869444011652246844058137540752192181451312628624696192940318587550454883692609018879072245122165131999924710498778897675776986415235021935434421669787549260762461175275825741495027200396335502353861408894787184109219987514454867773649800187585648059747424094328121085125179286855003504722375474677278807341423960951774364127549943635215685956129849852936729068223569722839079066399666021010794793869487524100652776291982130960668486712662118233227753486224782409139439459876982992143549615343678083989328267147659784360834557118392827602542797650654790887171432986432175278786311798026199783999060743464739704764326209851969145924050514361596828796825608563635779015216107134211305305999278483443907212279815695386392358264894371958756541038092636423737065050171445616836004091905674100183519453255546927641256194083099834418705622667402358696361168117303732114703243849207137679008671115261334782354025823011660667607952281508391384790543527720521371421546027138462685118708510078679490937091659924877664759448063484589633386569296065626000223276859159146174601764351895235315895302100275098138620559996274556538486518671424761221243450400112298678701049730897004842812139710071450529075897541849040383853614952446117030406557733188170831084711458196880092851408255518798958177013916258345312581352551196056416584393301139864975129747820034713494865729882367337182046238624182483386692383168414638267171246408108824525105396706121285443998607000300424531590204920346100342700357124344919111540999748682880790738756253567777948079853786746437758748639841308358232759030488942521864093145163387446028022511171292603398898149279976121304311458586159508206131979836326606496834763821758297336127695588725864554198235194907035674438664953807263273565209514478779034506929672847303056381965662992597337048472607555159092141925796490929629458098960799000857875073223756533696338180070760669773566238262170152601517514259959288754890391619196748233948081813341129007898653304476282287829291887314573669184721767242098016579927579589053561737278463600692931571859984177552746374550205582344938683784789396982588523383756432319572371708475551219038274294852898609853306524203948411839533384347010140667831183509420893429745776260523281545610542738775922436846801917997040371677961275239434380930702576268171899580141365098985537332792440493805934176555664837914755905696962912731172585782086688839723964099149288112965396620153853121175972015524879640125883184055338687277222556600059157134336734918254721504622406145861904247004931283763135358386866399944300291495024083171561306268877594753648471481318132840639893391490222149285113140620138682385804117215701787871471530855364947608266063018262356153279204778966873623675250075082448796947127062037779884575359321027234825724952504530570760388036595682115154249807218647994708214740436682325897110354202136013752386138069531857952000552181429589441613098756235171432540332697258674974452115624299348769875547328567522202155228531531531189355471917408768735933843194437227414484745995610669345119172280133121884990296496897703640187674482382653120761559395600425297540399819111864308294479244134140950695199749797426167194046996851742939017851616490706167365087550535417128665341597722964971313411285287892749274972291012134317483090698884785170721829835553062756350547984684763278456058555987762624383119721932385055745093645306464312788438933247361820813301798176776199804282218595892208576395226183545248547930191133376654596021666865379006464617573689742428698392274249249037899358095571340922207692763640312394739843475129144433400266877611737630044973296872616223347041993804926543972247547637842759589276815101793876306264953902028067483765722732060732330288470183377004456141447466001545730911425558377833190105051963754530900516742050390253428980635474319565938891328921402253791796739752266131916016318401891540478906883287146767777326555732727560580725466800507667408077927503641652539660029058981068378773583942587415967607249553377597039931197297284844228051524353628539792743262983051777443957616736669654300274693372823457179652768899809487556535858659823480173236662927013666160239798016273030702871506052938110440054898405154837597088175474344881344847326098467310406216305603427335273864606989451463010099860263103137950215686312432855833149737869370683020795226620005276241096406308361194993503517345990403663028378356081334808312432825650436649988589515617737523726246983356389223041453301648376017227178002776615718270700043644609030079929486475665716314505556319758893834055336478203222207433627130567040777406811268316982637788682204621470932705160802235426012159734225017480982061240592117015729588249464258032750331383564910243262590444574087484544641430662253134556893146968014848237142364247530142400371204370678774036374127547225138735008020062413573735630739818236368265147120817373448725711707845044665204497965284816977557513498089706352721124965280264993015870406808219779925202059263765921050359771315704139618974566411665512225103468705129440871734951636762309834253899012263423078490200618957827849925606625637714590456261168275330075275798528940500003758053543315553950012814666476044357132450232321448067592721479787504749208718283524945509683567356810368529506737144483832452794082682531175929043179193939981206579132491594142053598070150019816816650670123588072533652276770780777774344686239363205791261248969292300233040805590373643902732415706348454447308507944490537478308493312868924989503300394742553392360223162340439610950350206879576353704443981635753792444679231763755953377180525005721589443728940369377739334004424299402896487956120690821054099819240136974999063660160711476895138087018855653810346791481506000764009156551218043111235689703726929696651019539723018304213531375041955010143249819607073791915444134897566398235335948959551033329721846496765720754719140405754155272074073518011704025917247119838118565911285530525232005538505135364122722026704949195632845655298900081225414006888467269488921752996250487713550586259748118557668615075787216320432134192290343716733543328088454227215758402387674546589606232834878948440225340549752560132642918226622711730804153975108066110350379648713817330480667522031915703150656255406884256198952845637291690729013387961347440411645439123756624138525678056376316164575805956770452451574549154912153861179944487416029115295434052282332813440315190532628613148991710158515970137807040960661908550003885891996281854385718366215240680912941527661208673240724078159172973327931049264685542486243377230648119874535206235844535299139971131071515875669556129953126419250298794953898998455389090922998260060140226374043302765475919857788437552367913163014446894072602142876396607895776419717625274687696223520163396868201562864391694607479704892399676362681779361137555122919441612962865413882018601538970607737119085400277954049311113842063269702891010617957859790462977778366708301764297793519115302006655407938204774327015757322034126495369203451327824534814012982784700695797788301392569012443434926776555253335276423056013134870215959021079465078224229878309207872019417546075217734767122692522880921962443224045514300689573355424575383618146615242749364176591967836049744530347278165881297108483637150641706336734925609398178238940635441406986054227260148647983159596251419099111694198105288031536673987959838639441821888342929286865135063609881996005768688761631666605130925658048171788063201035287127511014760961756044115922357340884111666476593113435544394575270908580789579303968134432131614049809196575487293175937600845710392746487100582097169849081840753443041275793474499264608819332637443035648676914576722751434511904701919604150096859920851830736292634161629287570054865019921484031034862972142329762951273758423023118314288000762943921005070037630412462590083291846205203137927088479344173922136070184719940986997551767343472349136075218794366419040050464548376711436691918003803019868296278723963712293855953859761920499538732205466464567916975067977778212638338757307475507658904064280475232387828351168448342806566760949273544314548328094511336923602134876911111571910421005905759745572053982602685950492831495070851614259385004914036858791380607209035647069020682223323874712583730907284580341441851585705198734626714975803968153180064517745327182560012927483800254766621439685082069330620962301556079961428994869754770530010881455497654846883649645030760494276583915440815159589786136617354021557278474837930175758204254888985921922393922689309549064456962951077903645603107508269049885857865378535402004489842583771065592789472062475464440022029044449839956336471294911038582738577685021329418104580315835740688147305261639483150771668347928844405118896630257789197415144803594478071742681447753216222489659836636167164812015739441638255710280867949036561948163699185300097635729806159751267931461694480315018579767354013844344285365584326309997763857667537248821347995573082147304004920982696421411899067779047616590526026939101788219126940372692459944365133765122500992145814471091613553582339917933972932327286792971641006904840352968085436019244146415706913381717041568914175658213067115892741123728929432861624130819992445477786344624228719050718569900301424217407050932393422206360554489369519457948449112689522244451993192473248254254545738862345264218956220580524694309088255747309615123636390291456061123756986361067184165691281520592475943168893300456949035507483272594559809753375364736715587041293910471137925497620067530273814002444253110260617336040191832975654417955031812814212838010053500164314266334754092279934960927258555620114952928558803001877733036247344212755063705119137033365235528340798502551808667672484481806305561843541376529384504463063179146953028922240178052937890178774060863665229319342100159968233694764789303711226876484424488521545826369475227394419124210800601433014278757319529623140909185197083234390931891107361781819551478066077301168239773285171258265722854824598325240284253860984826787964648286736947676836068655388415247571077524189319954106164400555764764747373510663738927287889669041868674382209601791169687880672554081902975039588210104442389157851079669224426128502859609218717074413375405480447404818353637004855836466610378033372756552803632147133831479627047328198079429449864791328717187983743585175517195033466244400058032607522408308779517348013723491616158588173396676515486617884552864645220312057030082665981851233544977705146540809244144630010831612780826206052137919653206926748473283217387455809190197762868351945940067850688277966449179754497013486472090989722966999600435299332905292176460140000640384986204669787269810075587740084032556437321952826239646750049703645735353889669547268955579999165954169549278186189054330860992218147063630940333768742536888897233892631505197402605383439925607590427981730200654728701285796927257095230881131350443559051007664362689547194030039697224519969492908690073955556198332926303140311751721056162924369566333846528859675563383883040906952223005913815227145287173260763867469012071251732255415506205716974233005376353994236903697684786952787129234099237942988378997599495308391637108794387921870163226086869423905019913818950487358869852052267051950071950654452352596589527282490350906125339767002443043325037396388913814510643931411780636204200279800581764302076882884227633141083669249007587656697818607306919648453248623124563901535516484229843484824059957798446203304094719881789381702449401024772133769217666001014988619460425869400854108621898662819778946860504141328948572181058124601397952007496036044366128254314561714386635728807345446101383916062287333587941157893818277879156994845757742795864475483708644009695504431773949782011836918431409513323416891130997365563449041403534423720573312440277558517886641320034286628317272957241314241691058966814562121840073049457711125844703436343591744258587167701405338890426641922348349856047537562937509595498431646287361043196762025826169004220416064570813440995699633387029176488071965107431564114452922488275465331525672956246478883555051131676185421424362498862351433478469528940145692603167541533510698584192993600146645687747978674610671476754586683676950864702279062477899127161383539920180064430317679674192790676202319827517361091968735221125789785444199945482126291520199368323814128163521956448321832931582092710228712430455955562049517699248492012074696995983921643131029877520601391988404616646819053530955032656748791135857805560996720263821424540669536616130758095974524018362822064954498174360666975698491226786374701775930166163036912589060066377775985078968199571380704990398641736819984134123119182433302204095273729607788467049345601044759454727860401147349331598106212939996967737553879881108060002281009675297998726379217349582575156895126137323951534489157356600136963850989363254791170961926471982443020257368983743518200736737053862297755263510200991290437951036049108138190703722050751898870941038531784507356295850153297294067956399691054636433822769565271717145129641342440734189897898934866100412097225458919256612877933840358649551397053567838000605528879352634533383223756362438862890217053998999167547844724007826389343079260575516667843727534658916708726768008300563539077887080823037741029782507359873905743698219613763300134835457812860678368735328942005679361259338864308081720245175781116180020734080182400407197322072600016850244506393288060353065326221577870602465466305880757365990552858688542349768495564123801567502924364252922023139834536520716777667190354162476789361023784018121538686612160113554952070439664350792983371347876055891026939909087846306335348040245711766050201496818469928184514107714034922623273687464432636451834099833690599651671479470035708090260113364648619596556634092223663965638590976410294266964984662590056350464964747485232603205352004061420602270330671362025532542531588042272837206257569592116883202538736768667771901728010032035184558310725274169536684022136903114357724312528490187094881604528417838346302469196635819878209732409255083831884893921344796763673057626396660578594437550818181667691621334544714655926202475907547368611910449633901208784964756338854748102186723389017733991909300514851507906825388857215299472047069145865282419491560411703089960155839473824950300100332570316223213279433321397411104719014331254829086442904347089354853404442920540755408642182323588643829742533567150044730328361648957339075633867721874361420845071331749173920154105873522309848616669801114243510461778581299378916596436292314105315285435815709578841532274622312295924530935720343050502320747881087187131940824274863256797627075294238831308793442214418806773373281892898157932180073782112778134363017616143562516902917423191817559765568861373857539581982252668017821311596286925548838558203067003327634472666593381909055516723660584832668324148316675162529864178771062325131921696321589309118081130980515447539832904908763908327298533694889052785737713552229396537089290935977779068703972842094562298380343005044379800345735616112679439254080309485396133524305835739262258710806334955447408634824319789593161773810214952172176155816943225738986789657652766426669446930112200784706118958675897813343629949713964125202158605948531135571032604976187074644220134971998457530319208631523795239166569193546102902309020091229656673991879637506607652820604539865170546234158074446258958253615615360221027293729989559710676176693711612225699181289788693728893806282819169273611883267215166640587191634533167006772722375062958973672959133350625408512172072216678046910896226214250732290928624897521412471391469659007240403500690102807977753001595778132939171177834822854331632480164331296898797462307641291003276678830611685524977547447123687028460858050298667123687038582577368593650608230059315746251669511570674305540762263181437197999692683038095824248537607885724200355139222595974818546425657286760332651421833774944419739611542057371007851567329030241953409849681852162791793517195080431851137720064300247635911197903527357990440948268981093761293663654874146656622644373314310808982372890819878530475486627354334740556906288152755316932468653652640612190237396727068592180591594096382680705064870698958681211676170423258447827691591103055446651580789326337147797849777561454024354267845137476872822629585483392365371531564589958165741892125684639038988149344539028286185938016575148204132724835163181341572969855818207224849220182548350951219975873543426365001901138198627032810502663388226399120775215742829633673348436395170264038102604197910401757712492577705094403337300878601642542742135434517604272779576347585573827466645945974524215104768658982854213860557938605335036655898437446882210031761941269403398599640947036381947395893074897519965687657709735071357866146978899715538365754369462726699633144401820996226112395556563174090557918152598551002199374457671449185591113896712451823382007783999427724407900101230527060161019534293694725644546290302554048921023828064328025689095376863593080555539909820851764391646441319810092873382292568371035858847930542686811032388969878657616500831267168187378738090077759940542161667377196400491798518368019645683495201044689566452255827539168749906230705803943513146889543200810744455690664073485794728169825908746711909995161745651154682604526387792506370648729909311579419722552749712084110118321153947778550644851855951432323318972851097028687360015604694591672271095072152109263624743258443340725342989282081883810314132400682304165031302179447975029298519819750976448048432573539004401966654946164649768232151959220160328219080213057379328104566984087703005951200891432279845865127725044834069642397540047103434583287748542615498101602283932337234154708210937800641381026610428376385943816804892022258672399069234456264655393191449466337100467437235686159545456599115445870260055597239626954364269830380715444121064106274369667709255831459103329115316289776769904155499691878523966849787687178394584392432322043839867186226104856813957709605735391396587423846100736390002543358058524049266895987424756161583916707958557932841635689235228193979341617308444718072375330019291091302348430613027211180959193361908991457772377712725523410428931254935896830683127131237010013545320416801751917693600034670517477457343214415346526501070007130937733787181313269485194671004545184163738701605501340210037828387594828172683280996821683289266347101907307975888045315520222597575449958079917567803929998570908962441383993518168430698105453564530482532950763234534627444603727767818727875368739526436640117126021128350635848798405561617241013361275220461008353397757661189179885474035522355162665393991767420349239494661535150439308719979789331359259393150573124362063424722227409762695142370878408242617951465931548453178791863708184981696736640856835932394590786823904189667456348380441979071055081357811450608707368178692605498158860934490922879121839361795549279418885930337222201970330045008479644388809610685403145110680619022360546275808188493248410170894973003156443103160916159610656806149432948957654424163055965864548373628836928118987015995181359151613007893732576201938620665103332889177637180845471650919410903866362179231376136151803407051874352469572122414256615779349200738132636256022483448052888704731957506521421497390565201187961695659133984857755358783623557761408126317538036345559588059917032121742282495144158760858483129471241589908412722970882098144606644398130689372672702933062327417606463089506636293602283922486204349733672856270372272815985860474538754152094492171101879997870280063989342305563062137012293240406973970989427833949149507960648053225935645696858227728711640225483285276793416990922519297616172724865728163925233137838946625207288073956146296656757107891161370078324018580173577530458934858327795623852344060329052119761386076995239547304882407536506817000183491392529759431517157847673075149172271698600517557987385941056704892908806071580783750706965907854967728374995086444597337972499676335660874537277751581907817151638955209509824226279787862268098234747840985623148869470529203808535249651687381744471050565512119986016131433425822016073847883867619534694683870822752862175928340620828506597038165607586332087793045804295390071196338147327848477073027658235931157264767226234008177369597576123679878822009182210496137330965895465487640150523226587840815767015549560018015203375496707392160998644024393483768533324949438004381312311824451080346950471936208171278787436671446773598914827358477961385611547988769953594271420993320527286323154435600643737895038247112115970936103393021701014129866143715237408157963975443670651401070076538950891956781235630766809658506173698747262686043074975973015978067332193058921770702920533355969706815648151433969806563454148912548331698664842575722122884674301166215021860378122411922453881985975828199001817831545372384198901475423919972314842956222663164841974932415398200770229812122243493691165598599037853167584768606566010663841971665261838066929937664229609928144090375569728060244030610313414268070621839702554591859106398225062984909559423695653705389578646799416946364744690977362538682909826422337640553737574587751482256062543878095707154262500678912245936241390702591761783930860973032470485823629035515487263083718465996019255796063649322240816275497179563931058387623058036926027376920623373650654176517647343801570196975305432585486124315680655107831654738407084485141097171886708101526941714397456449199711319583475252290288811275180773551758966701301366486461820226082941735352614806392254175468152443064772258803881248491018659337328513322587789834517283951502307093076603574635785141806453474421072377530695478283033667639875322124151856072584149255619594297678003777341568862272030562728883924817383913183390988432610301112528152151578531944220920508162976142278435194818296159597258438324044892850397644962335124124308470964521169831405956507493351968571388626087229731415777106211445246932925958173298545816773523185681602993830044657499625189683276310702477242175999370237066843501881872088392671735794661275390685181257464689095975112307367129250699260470936421383592109664598678999236623041331212104947038924905867501409327659391088254052099536783209471542787135921017261826611399355842035615685641409411886310295246094317712374590035501277658456796399813802710314505433155386558773081019280469023878338040614234821350762554504804144153995418377249711667021263809045941244310149856262375126354477240714917789262245756141717401514540302055585053669161633909868954342402947708957904584947817205886405083847677084897115887103021388939226978857501954096315854867099961576422301578452231410242320523973895901201260492547408886303637901434559531166702280971365890060428761737002718176305361887771839394797336240788891716232602097679634576101991607164554983935688884567439392154758972613795297476926900198208905037762228333030700683586401491973259128448933360404597679091908447430594438646211333924374013143348249460906217098140310771009792774411747790239891212771422069233792814821756822189057970864151938230182193512179446981906031847768909348042374043299654001207253065712321719783019928058652854310338459098407987320703236737817863783562407796740337106808584782826373035146664794966668979909430567486783575401335115839301179453594864266911483501217227507301807456150972243138994625086355210694149953295373038525698711565300575524000671279754386343834607343626609481437364140000260251745014273296933458914278745191186455781743069467388593274728353573778046939541232560111827696181079867635909708005996995233656677995051075334444372598300767545533305621712624022237280906907481560639822209682260603433260710082342930346170131567360151631631354219961484262436593997279121957432159146518910502525347886113574380318678364233282542944596895111552366993296677404236565427277266313421432329168787464736470401191999187173449223713909052831184913500779016003866764119424218059864486873487714631624102281421024298192391571608643935292116021926744041264465937954937728211514919557159180211864585631982509701982811414164666682984810166185325656133351743863843984818953463095522247397625939709007000284133763281218463427463066664223280239036299320790950595896130909817691036295230001835402122522867931054758087686198716368592463574555588463261418163894379359571681045298045804913630375092924866516800812859579993741392006615655974260888718772637920766581438109053114006222548778803931514612700208558097110257747083299110464955979121606269802822454406848759683755792359553538031373428339343704343146126170782385329680445239583130422297444588268196705866554092092436837600343151342374590015964928469858929632508420847726382003436069540864316510882435049496220249467265250164665556146532077683150370733202325454768011672471768127763072311602455929955530788088254841951834632042291186848496760795116079985000003761573136226976580208490676574175123743935771240133201819218532548114141879976247233266537506989474354282252302653497675116446301127087349355254783890153600717697153357681170282703728853396549145621480746054997885240978255902414075747336442937297259427352114920426669565407080335056797429464557164190578010763452984849051585690273115053500925789873282442389436886800050397499650793111831152303489826330785617496425516469309269660235259654735959893717735652112638346557872804096855247889652363835289660199681282788138745534696189771279315246179954577087605952396327231674081254765456527625143082333280576468475168187901074344746238500398930379428047973683826346162450994354149315423158673488604152129636541922883713108037482026554171494604552794570389129961787858986112523747372090538348298195516118139476261679115927959045120764591379692908173761346312752886515466679722835548915176859278884631317620299400176602299092183924683335252925242838583930654502576532997536737191619317520318688035461446082348126218624574348754983584365643744604405025803534688408210340066448253680962688247216914570297815569293229676114357408830879668410938095745219741106876884380553456768766603226203012252168278523307609206462333831438896054512429417051516055524288512185188706565878198626453562273672394366041054854439679786402849850507008211096352460819774272303583914229057086411223596832407608266073712377561352759137335400060956803326785165915177191273698341677103086617205328829187234957028794503314894877282501849809887138983989999478250014312436193567855310813082159164372028953178233120774013988041123486150145426014670858271749452134211234339744563410067873843770558480256234044651343477105577937709315748637913581039542243309758662605227965445498255150874908184730204969988829472448417865060482656663046565110007862664874838957887680351259333487831663365908398400601623966208247185043529845556305751791703124122750986794795223233613222691439831600307886766775926253940191852205322185470664861031881789834393558426209388148774999008202331383962702950516564864847875147134084112685606381324740306156657964661317207639875536462389296013379954604468876039798743824852297949557805512513616071512083638716807950045108201128542842037540355787885999619445696005309924118969544496881037432423187384828250700535843030148380933457649700717438354556756936656601284924811701406200606561530884296793256498688685202262277466129459623386963049981511700624363284976179135182565367800291290565828899001126856949559964857758344153142375995150515124762460001995259287615178532790488749198178319464871561182469706484141165266433030985826702145523921559434290046181548408182665190299922092810048734357361415985633190955445048229829824961393788752599164381135675696500705075635394995681730793804909774523029767765109311680999927168423795767705452271544907021282422283665299944920320938705680300354838644630242532594041267242779949155477084555624898321820011832562236958431797261044660142164565323695675622294951479945409381315664513442873715315424051310837130448176841831605453461888450031779929646569083305810393049974280223488747340089468198856795393980011042458180779808943812695636458775405939381418704734158901467927218035451286486059811660028001873592674479550416516431636249212127636219732859645546404246641393360924524732376735651292658404839609036141451582148725786354667905543764088356382226489528711770266352437919238292228129304366966045278229523100965311256695522894316417377442970834327303711903201107560826634157580506654611488083490900250330423145737680358926337675056533561963932128242786983854979951594932380060408691497491047819990989983580991665657760138821708020885338801713917502746347432290385643288916315472947672672570757507970097041150931821709680794300359586373811998524057032309024536272878113536500742210764653479670939374903647354951558623024576642655628415492743374130715083176303953078701410439510741158882634175738366913700017977953090108549517511468468800751619680791075664990488041245509487536941126866360925671859764273283269607554848021769181467708047871778543148398271057155271116490240991312192916902189621965318717595151931523430596406286065419194166052070767360173331353938730954498727942271675494542919044393189608686952672309327489097722924908695292739514484775587989412684775530415731577659938579051273249997482224693103801070137412055326159027881529013021677968533962544935208225685842910545443859214682949801499322564159559610416428296726449359162383997575966880232008159116918558106724617563152956073599533903635207038328127009736478973843768418983320837195099437864825477484442957798022528192989173093637093463945867948193130137114640390215153818801628373366741998105023041080540719207987863516146901464018138570211972470290039637093029108932346292464154773438200480295889436264124751759820993463199307814556769971166818624144372276783932522085245203801550621361745640022759668907385409109376259722196240750799377246358092542068409151614339293432903698648479327533374804996079594262689688807537886652993041686366832627459491095384890676955744330982962079983958888373291126293705254219066973652346226598493777093655099492849617309368307086415339967200821944877951707414335493013131819952230745794442866080298228304993621436073015911258227276727721398209077570296472232989494536899467741446474250964478278284184704351353750105949888132663444114023407442345424168529634994726956060037165678576900930272157844660011339960689005235007755000841100999600379932811364105763686554157345314417488006524500140718643035332900219937335044089816450880246658952791032669402588808367117423016618423439704688995469327883767897402233872911501494698046076624176867402094617484913151006045999743293832927405123743236134386206502140789556423307418008565515880125573230374423999955447886237192701379050986305029845043500532830691963791704789984309681730906153551505691646511005430991604151012299659875326508812727834079577250219680811328074078558545203847481063092607512875029009667988612818588680135965743619439708932021238231321996974421493963976968322600657877233164115561972750171548434230316028654512994642957166020420726086647422054616320209873217321426919830181456422752670445404348839009793952950248703975374587376118552555332318621313750402333693461764394882042160711646583377550532041052925487476724233115626137254671584050158238302524166717790227159134187996729528568628018743944751405729897477877756041388363519256060225194616894731957790219646421619790942929610054938519131965743325977849029090316649962891029817254647053608507764084805688786215893537955390774505366327617440241182343092498151363765380370909460527645684895904599513202829524952471033538216828033524308223618574786481509479170710244649088287683549587976546941367702908011841267061890689130550314203280181029227770988510374517696602840386932384377949337923874856621667535075865288463316535316039952809668203360355214763450163422938474638070383483597814597816097458032383267818180136364378845441967189523480855104111287460087634713658732245760524192051334450666907572610030714605496939279284107568213396113958882243942990822012086490118601225059600724726909400001735011906618945661624850275993331982339041172974813478614939476580148001844250284964962779857657372639506689711389376895946556248857974167555070110050832602512487656625187881099389310432544589160989929615996519647785494143172215035604088180242267455826592060010126457291955906140438715603571939155267932655676059708473947303632450548779528891993665516261930562212770470879600420587683915732963374649105376829372780514384138089533557888363891011268200696673193247111008782672627204135063493020863571244835372639096561272738292804694745356520337410097303262434814377190063187972168339192340102549209853177801033840994501622503120027830582551749730027970015507316856014316993618834063912583695901354670921556647856463490650501773156209042023799130516412789015634440515091495198898918768994046385057051550053134890888749749317887745224023545789223999119648308826754389677323041861921069481916451376018666834992401681251520852649911908887706487523997683151527515260218454724553438197795088949883280182895202303326234494565618573906480201189307592512039365160853747757738514915857532076423265218503304871602290865288730421348298792538958894630486906369901478859331028857502834568865446536696476416410612279521595722531984682152481351275203634970049503152390174527117014726062684853413039909058958013692548248288034124689884963254364109588977631942342924416563236236282354594986042215807132060592977851344411778474434268992365268540206112867937486886869232271057649234352736420780546536436152708382629787348091273659712416732768440668236559481559031025798443186291590906370575539608898046977601178209325070278447075313313921100216117301140256109209313081256844890365905777584639745940623867317954324270996945759362875427320978413609888982010015807428007132999909134785245566806436206630284699887295943485071386786430217214030018763140605458608342966077981097259907483531194611924946405118713664220761700244910637260490776076590399427957761788944884747819640734975475439055053288219276697394962513452217292369633790651456382175284878345347312273793990982493995546778862186540680809987735397137297164069868677111640100828532421766992537370096799127291637166855834805218975537864797096010272335312724576785939187420244332508014589347220936475082457370763865694415997657176069163876960035118537387710060553773387855663538015683574163692893366500792443332649276260712486638937626377887796682331012462203982656779203558993545851672538456896073061339764634341553088619466391559012209600655042710332875776779715044711409854950280709234167261004582606277381439041400309953349812510259570622852039406007713129441130504002653075714060936972307429809703351196167104370818468228743641584690325819003029760893146379577264715885628563537114603064763008442875364408112060957601423013629076595604400058798413448247790907794084155883456147412204362932963980470377485049966207354232056306821351404523199571562098709139118442155282595749099044173132815980528206402357629894819971705138615816712840025122513184812700370621633483171355774390117253763364913491539637419342994232912711070549016366648090696873877839895397150547082319736811521817530407835663435207146830514470164230360493270896150823433455136506044426944191145045502027937688166869099187271457900632431165096750673653599453112155487197357115091114956102964164370705564375809371962849022995301258769194816567641295619492801813035144908033419066455029445447510715233184518329984932120362607141362152200524923369426277567351503820670369767700479786164766728738716598294266578998859106483459631941722463504799959380264804191745609661187787835663153762002950784640375156309543419107521251365723476017689571103639143842063451785066306855772026900753352893628643305160902664097389047204261311589051520084855411554591895338673445832029830651281824483648737203786609749740856144881898274343468126803708031045692681624374727107126733458114033635218008791850084658522945788251053568874157639203359915467098272536518511630985887403472779711070805167257235491532165149445942230077484379711786910304369725423433324699358500439650808477733253265426768843640577235073794914555523932335266419791582284871887528618780299145112592499791068054635594956223554725233887900861898428688559821386223322926519046850310552042675983532781097276991477246245589178165374899105948286642088052038376034110194631413489493710264715896323376544243162373514299914881206927932457987126118122963283518109459166462689924087704842447801875234375707528093465079200742845353456527123999583013712799671425994352226910264122067593812815724626509043344020912510638078248505118379568736157899081107262024424844968764146523253291360247961660210189216745770380062345192145323811331096651157440508618472614281636408590555872776048146876199079878133014099032850535039247134673594190735391853326785772019501700322289680890507564540341313973463086136654830802496562860247932140666972217545103777308675151805695148618617365449824407045821291415995461433966857788618449635421641531438375830173040668726861472285482403783453592032543400050872947644404696700600182963679360043689449266862700323938751675539776563039383210458508579131990291829263599251598023877790447816776538486242328669208431144762039486416507664022853703798704411517355334134115359452938893860525680614646685576151696749798453213115706399076025405838696383385600383608011512955189161358224554206621605728139274890102861788505571995877783555576987984142614188313557190931632515225506237178740891493971039000048211206988695597490949259525757053548999976065009021975623158036881124243577700536742216239511666425841513825962703349718822869206714095564092866801685622682388637191589566925153536584609541690045098142328124567906379309429673003886098829030797715240215908680114767336008141881681022061257345780429610550998432495931111297715025543833527934762303709909697340830671204708010982744328634238637626170955139565611570159335822616132735020803257278600391370396029609578039129663528124905916744374893496953174933584287466477195419723621462077172682647936500797094149036772653355558862229284803165823349088988304772895307125257084473251417162433381423143992452831209619746300901477528331490454206869809202018910409124426088402053519150503508344330230256725674568445202219680387861259451908544471808754954396836871317790894297072664078645318280340467899300801100685867398897666652237241765903182508147175179196988854449511641292316848965873065409158636245458583219653036302667910236983269863611760041145848493295142360078823118379803654315715955634499113057416027282600679644382726498028396652816470702436290545629057769497859788126761879020426417875158026481466418243149545607821287233219358342518920779261452607722564756744810270582086930007532317589440880475654891213726435049877540312357630533709124747118093389219421332716537320583259469471761426409759558217019262220738299879927881180330351864560112943443666509770511085523428092758788302371445230599107337008763248072069381586676796420466502643076540357283064273333919923453842042698001874249370175817184506008018135851787628067108572167247949970349331911260420723626881702981980712525468764296059669004954692006650869033157345907931677463825331498663008458584360554221085802851294989317086892471138616971242150550958015130521510534848719471057737566564702225459558879601742639732098926618101593939175429944685351810085856124716877060611785039549647224972434942806201520402102139446953297186664592223027621243414397850710404476883890008083655077239458920346510821098619162418437148064949065316469294331064544492422078532096417201394578979306064611319701328873695642967896731036074649131078408302771187858837764367560953078544418983818134980575164256586542156316275256243741592614016605776348620701396357467087535379568278691035642199717224861222103234551713804987570486012477454512587890496832120771814769444134657899559483715599329343677078146790140947819506046252461520682570934661658819625274616637857260524589947420731484343166199690575065358878983355711170456897024077058851194478802397035071059569354983666726506617448406558308280098197848177354316126132103489613879397336175979964022645755576701683331041828374879102310619781980034378573800525620813325465320976819117937701462847278462035809915454053703803912642108435474912348091500883188611868731395838106851022425432145075207336940947799307953992738938382382026649902373938183132133476012870715237192754678739499221570562919750183075365710988147171953094077623224422573002840083991674402891620679171453343051281986214739088414905207663358575557858349831626407967824290568927481342288333798593685191688286918634399453426648797469034484092281513513863397677109804815632919504046247025153815774389510804700594956043037108221748426233099106689735574046123708863020734665286244072532058409778829084778372348936577861831696365265767081294704836075141279640325055769144875672648524504876892102230361012885669612666362758188615134815340515078287081382038044646259398809022610901351550211607392600485824282797772773221435437529576249237215074079402553931481408387765499474781238050544350505935456592080831663837061855322424840914798898884835298831550157886791826441805471827951031695171025536789091476934808318786723749723922178053328074879393551735758741419064132715273889083924309646843103240653434534319499263513359711824454416034558311828517081436963565954401482535171292238068735636836860829030501976683609902850604419892311647249818565601507328231512788099060968082505534524127794846212401537591483659402289332004105019576423266329114905604488829183331766821797101959732710587970099433782065046757742817295138414357691997722380460490546132777934637966085029876325423131946954812028548604146569890010135868367708583682102805660836257849686621193082347038595874901710035519397632956421112524894316724393652582351920379538904513446698374251899643903717677765729368003092188633897275244153082806912240040541463288159506717815849982993238358884979339751058678415252778296988895383042711062277605532702163728232429601091179800038344333335161382882443148984423590133218846500467104875026385344364952020482249089091633198577169194691975570770475637508225184295545125434779584194088619768474480791807292617536546830288994090129397398408920353749236148102790144128830548074264259324248590220870582006072186065990664458959613948610259286515594055070014331758771601935017688927628353717084364996865177138537521554867844335889767005492572957852932175140748976964175112021406720365138421037302550872420182815054189276340801969051325740260024356464413392906734839324075854915530937471855724321743455012681044545620994617108838854239053105829902718448721897562448733916080875097153904452720101754587087236844714041293909722297243037002962207627835819588821746888860537999051569414557567361784308454555372185299021246891901738775758594446479881979129655429158395388488530352914784238060943202954491302522217113008725954482130285236015746487195664616007142802989106488696539251003146118956315666437344744130274307441116859007523893310224482249540542295229048297952065536810284831702070088645630692579904226886567673498550077666520155545963292354960871604336976713202444424583817122664141547163312409955775430755818612002470986867309063200014375666467276035830916397000913594339487944173805466721917321599181666955097874910883468992228568863679672875920225421709256654141185175430426645141168301537634040208686909418454006807330545651332346012119026430881330183457406784555249957869779876977950754706983835493576806772979408666833480179476203175066560275915644161860168051723367081599894319164719084053057326101373035299588724918213510897494898888312332024622145627511360570754403412850929253151614627646576796116007893592761509372624591268757792077013826619459458858253624273886857924280595603846504695428380499548471422188314652217550126533265590322452480519471853892314908011009676760163677921341566560346052842124597358678255244316428099314673908140304961665073408217497000784916086638148757742670158877519365589914926364192933772256314719684370597133964766705860308556557089053870033642337244862723189059923173741059738838884852123885272468384178308091990642563929442811624304440566448524692149317170714240647365398616424174752160847097116135051653010266529243506974949893362225892836549284794194921789185095289835659826596776243164117891834716092684379874370221774760528934997285943883590550015890417231559548662898331264190597962432124789585739169448040082357766474680892374715178242154617239004462008181714928177612311290495347969045663824739513315756928296448147286067905496656563694291666436981427725879190027741773052550898664570436008938243483591352195402355354242369095999880485579393043647192617940149672539361213901206687320534404820098560208983034288478281311042915643529965858006770292861612603929762450411326788584834182373754367127731693669257976836665078925479473984721831313491908823836588941868452350763076741116909454186561036541338574272400199178542065175699225936133190199288619513329476689122770388529964623439228665468051809710456595341994463724782502402475259203100170050654982341344062914882401882441817034640366457752207348231651503997304371339227475628222015648657496371055991005843145589260856328931183335148230141019144058973901712468680342974133644468567341558862840050744015176332852562348529968949971701747252593430667199183780550447970900047787183452961410493909501240037268274781168181493259497612776359976165917459264152955337176080511300170609362064326468062593992733571403830558377642691134599426229219592827974068482070334280894698430320246988223547772655274603681626173837793358114776610168205554390093365531039907991229254132868621792739456397034207592496792875008376077707861367258223357972567884513752943248841303918694586146363551432945749366643364172768373622267003988204297355287805601157250574909916928059500858960988822134769374844528251722523273194010942460992076144801778459691090304509976918274593674753732203632603125858815644071229084876347077208246558610714592517181225678003207254959879961566986196297403537138924969905547344905015966351932808283810880603069000068210210361883708367139821714212658437031258736629423221903767726072686885976453571841220457965849574168854745784323751573516116212200548153671061672757825468994472370919353955190345329132031434943577642058412276541710363785631364408079097231320836526956732892021289601531015699736422929534013847335023574856934100499014947871202930094066415278781599394143515399845518518258480321393433850078520660516423791693449022738314422072377910206533146294137325642598972440494736181449155788639151684462933099353000589100768899703487253466459212709271748077908610872404516048021371989987801269970500815054918941412152149654271930407453385874580497104835089299474982366432859700045114159999208396208377761721069643945860527310629377875078027827420199740803072918914403131090891067589019441227085557202012739615616932005783847255457323966168658990617782827191965359329129486174927627972247190239587898353768443693466621430062550432597735643540166326104109451447394755876719493033217481909284728597613277569189363092686586073296158315522350422065933883744035152203033992439511770842601829606878770193396767265806709133378521580513486370302938020583195338018815239970712162794158246883133715326458964309459284046738165859810638286711364643345145687248725828428784629010400730678638579559028489392201838363745126693889113779054187987622404700030764954798294229828837200383551688474211660343475298409203791218836492334354939931560652157540462482974558740040771006162682351831488802383571517933456924752058384309470117185370123095128946228770599425328792386351347399805473739529312247944522212195879628227152615900757041891472733372456559609615485961931405239530151677741866983288838409399956072892457158151552777748785042460053536931318452017316600259553400068318097251478968904595431383403716861822377552992889670770895825268888669842033281464043856747579214461923081840693513397682219782689507048512231561004059726372013597331572078055353651020356520936391774338814810944029547216161187708589705415066302885514357911135534744066674995895599106664286887949412878012432211850407439653421891202209452296044866401167740781811243120435750773680037070240300416899083392458496693118766380010788196512161688903481767248515203552645679729100273765039916940449705538685028533244094653918339893461115269283388032948421925169551071336149296001530975486697985412129224896911585076241429199043941841650046157177167368533905718921136407366009300745001951386736793975056870660495403778388690098330193532293213422763305493335617901493372153773741648478863385840541234001388888398533178311867328667207522800837948155914246454679375652731200063156614917902367468253070334768747238523290665210233786772209266280105630768107379069686060370799796744484354878073259975363548273462684785921549658117129098550115709296040415076069781551240255123278706450160523313369417420050011217089853272551647714090824326376257857341774396420766270551211173301406624626600965745869095890427666583367860157648966264625903286795141991345064025964786775722260658215040905280706872598272783645611414268679059759762316833907996761457851722469694109680222015008993343597380393391166367573292758387383344911364472754777957213868275288694477253811047841429263616073929833081794267609642238140398618957662153565577617926399127140459769342115500491592883222245945707635139231619055596843560575530237010866997855504524092629940388135771989735945585609850179633431231860833178583461803860907909432034222556004510237888943030954085500238960029673705106663634064807288821860108415607123521003570364995513865574545359214099866028782840461963649788490613712406903482502555966179090574055932291891520847283892373868737571816912166491994388859756222165350580173373685590532203004554127503701312023922901222335983543090457365311673473854867469214958063627775015869391415460216301754570437818212587634075716153618664612600540360311833165876348653954033738380312768535626744228263072473489164722889331673001024727533647352408586920047562300354232777632525381481699977993479169468736024712751849727142225140805199803284439034287966972449834163767426847896113772327304845869543803368643164706736616248406793352461729790950708376298894352540263700646359910080247381917749263087418512854037098955360807378946557193717676524068216001806966100184676262364383610047669528611409648415901421850511748972176951441483085060200357519154309625128619493749924012059400934486026161531644743551834107013354844458038031488544928831031541905272916047580750375356207925399784941992462249809237479033861869863764025540438607103539087088109522589540445119160049033046335117624973938346846143962986388788368759715184107851927006865770135289503048434497936655309334939674668865812599348135476334950326578214790865813558998779072811412613308831868291302924459670799954829210666133738075032387119779400498767494473331213833768520410141226173559521554055285946321855358446642785954463575708533626267632307088537291673906020388448451850382963267561523358276893252468165317145884895513694196131417701796831492734162387350175108252575413144458614139377244596143947165880768197910031296087401328344136358025396238070316506265707494382051210364251285036506283437541764649181753085207901652661229957383605147523331008208700303476480770859047851024625183150341678411487282628825567873236016963281458938260619985625783242426814380031748405428367765249434308307036649392458439513551896893805924162867874552942152270229226398861305801077151640595441193663542511765565832333552351449965720519713674783507779788455004287393051317025063218563374184994526069807756625554827692265196764112647756134611702019525078080639129355507502045826574335239468451441208400380652724747420132707692110278220821993416818042261885436544840124822815974190929803493157789463026084381007871035302166860054029083912718396394154840876147998807941129115445047985646890765420151489606029761703249704264649557243831161667594276838146065400763775083430804080699675199425500125047402230458500633984648071456081776742990642486055223918694602949221898003630131541390140212921676248839787242546938229056114690066730603134183850648159023356922053745294225695950071368323825130006822722441631846162485146427562112190264428226947199206053764207446560246355178508603070810253698865246711059010645913711942010068678650638206324994626670098303218380793564322507428506867731689896475732504539283065584548328453422595677604068003189780267756328792029345490357486708801495739990668502248759553882011069304247527480705876014958152674964273661607196347031254873010590893786675726474395273186915283415257830055800818765818620566872590294334905419081878341707362228585409218580773131125436475314403247848400483653883344810242479201365546496374146631670815850573682503681011932573210311580431032848885928227073720243755045774307486788358325417907371159568960788335910180836539764553200972393887929773377330630997380829587882883235382420512368057283888970258165583338638152200559716147710534458006803861778870458078272364062677889132276633006462449757733109296512246965322756489648883788601258057281393957627756448560957268108108317302383412429938442159235435579352877791445156496373260656713286005210457048539859415084620453723730243059825676932128726233447708595871196087588064878519773220953433991623397362588370428643203217469823196120746815011271893510388952714347059716965046751311577985602015453421456110556638373739308624228817533589077688954473949041480709294528436836399724999845938947358502580473106077177734776010834093674909591791981067029234630074015351588132473631888179966092117128126836865737152176806184665139710434529013459764874712545109363327784532577119661920251761863065174314061082419059630949913146957334870633410098925549195120397080048082753713998838039596945415850306154875284260477845755820096375759121526495581085235737680606035114727382037439985443192293666755477116500748414851105775207430035685468591104233140283125538219161283606163378501228025171255128774795455137799541484698556757188470022806849856131511770585794304617380038903657651963643457979494339651574736034766858360630810849770470843337951445646854757107269097862906415872501929099766731916196423950856974599652621194814428069637178962524718521047040650668288420535148922924550575170345366275950066416522172234568312623678703115813151890857410393621867551651053735568722637851490836874207181459072547135737048707932344948074757216171149020976135299488642730629502830608463268227019557062186342371780410743042564275050456985558938117248757411366193222356655696087788763993037867570350814488565096168421649336810415032423978751838694698245152123294749834830780995422641178525901089851264526696665071424304860384247778554706188052103135279910803044033909458652751231577272049721535132651558870853276483651214805662801325944220898704583517432588619929581838584232742756448014869222121631919561815433056016110035782993341401188562404207454260717426862582481587958651755735803162764425365076662030957181446004229693788801919479447635084759485546948035533147318297427667449606999250619301996568659161496992128029785273226233126361173759619361394041247313232133046108991881477533703243591791694320259067433724364780317889746776630293618781885168801137806301318417125289679360850058893647441238839208969265188376735254702403972035289980896944148893920676174653677825125378142817647495177270512446615281202951009985904315802651512521221317309366732835123994740711965525419456931646711070329332445341020778318620956289413073829664526179329903488546356543825787425788853128055059567293130748804216721069848470791686860851473181662235407592050899373886160110681334624584860507903354421028663302467948545157658776389303488224686148044262115612662247387457276153591609807307967862312755368659352910176074731920447385252774871196137236131683009411859400427476746975076576573474618169879301321438171017885973198202377838927321434429512648806910981285858670754107073643517037989897493423476165712319968561901074977603740050208461431129658308392445907835207250025859265876239230938640625961419189339186502839023452801992671784477187556283096743321604008282129964888769390166598518768040298263953266677865103514179550140873042026319945189940840406462479729093775179218788030312776064998662541804494249978150679218965146210435962672478391829567606020424842384686335667284122510541756150614646181432654775342790311434645771400271696678591170909906176406548035320186329431981121578586793082185418247601136677017898141402621536135197816688321747586839091910925190210589180949944861274777382915483915479649757866133777426532439531186644436434167473463467738762304236898337158759803305661786532385147291839438894192494800068737675395693675091843566981458075649242089391454611278811374566573638949047926956324568865823052667045316359574428901881667826209862097457780999704917479315635055150300010596607350606636415753890337561998765598888237780478959841082993784132984219488937582088907845340500027261808826364009432643309427544339479913148898675502442459054767021668542796771943930354899391523302648845313699427871642131243682968494915819153956225600828599114621456416064472562913777278494114018117132435266681030082771624986394965009805513903233553436830484087516701192021163986114945332965804715152012660112400211860083416743464463320604737155602453741815694759403107477202319237947729943093137063211742989915179977709328590662276087736024931361204021545380627275666100157484196970916205461143989431420198056050105163385734258678608959855535328204919689949729784619665982994503654809846237911683729080674067496773896803760739346712546532613503231101217250838491072135262969715541085972186146446254510346967720824510614793182568392531919929748269506266560461807442875137710780731746030499636198312634287071893748065730342729699344126253192398295998811431442664986759806109173549306251670988162659065395876316475715474357142927958225876799286736464295891187582705849320021430454928887640333413272439763359294015849985051644250364677126054226574177847638189689801200648467670349763034908565689964380326822678696095959026727836838246149058352969730753016405206952513191155599083409742093770946250429040823012792351815015891680100601210669008964985606231872839822256981731078114431246498165218328882987961769463638571696835531207412071770785126544930838774337281702945525237523254116609250609306351646572239761024563780812980725966145640973101757297516578271034566362608823280586935557743597327187997691474104962685919631949124536282096437268858105524543627510394834997878127966800599480995522128959942083030809830464737222472979210472091688559717869777042069764376371851442782700471313466541346189750053328386216425216011275501693468663592541058613602474868100306028330853263328765647811562616817079831250341876403358249338834842414284781525998371363113951794650510949542077897176679979000050785748180433036185215504915588525024343538339902357012669315594087467888814984019161599861604062024059803744244050033980058999505018426099890886481527972038775771729746366004462354591696543831835820357407715303290587086709855524765318814987938435443313526215652363943761143458722549325489944565053223720522664506978484901991942696238572028105070131143468671311316213238530538315322267394491971966395298557127304518918990193690679800853407920894945307371579219184444310930898392172663894721279141443048363199062318963107845072865388044878556844951321065929283016942063627599826256872567847759628132846443290399848855476387837758366134684826802409031646598556086835760678968138507089142300506352585085763678652848259786667852773900559170653901012448305756206451743725892054063838541814564568590923433422779868632426920963886361930358958180250566881341922865189877696697822572254464677747504128993197516682887775628932951814194424558857767578701252457519215297958961703800257608865281778778376111977182221698538882409172566253095227645354069117601183416460198058941534193293819698268753378181524242847545660751407215053300922251172081641779828530214920707196250192443790642274152015285503639497457917601577047291844448688838836643272279790225750650087577611534651803673657124045070736344728741319927038863718726294911655618313346206095332210679907594776021781417207070746461904609340845669000239759176162535525213286611030606829435193579663175720514635078534698580341126097936643575898080033714528733883197317573426282525132022147926159429000114898558884115747862594376952937005310576006749403454579740796109987665652308629909886229827749158615065398744262486520366865247532215261335558062365674475852981681787045107637638360361042125410897395870282704624930778509171380628051422174936744549336080886427435495600788933007480163518186884416875968116183982262509025353692645364354816361035565576272479673555600490626005779459295669497443161689797769309371546379091867902253815860349566778684196446357382759340343146404806586072272976097934121538623481730811077715644980578694223663977839160503613128082381400036769670417967156396468349624032467239241317552375510039983978821902997941971045847356346721506624343433404480349437861639143219142253971159168261150992210079678271526985508851630091343154929458726470690603060335351741726129887861269791422989001137106224395147658699828373060259190383929781166054822414060465290485994789995318480484098657251578994088548938330317433103511597276806697151885631659832845494322144604383784724897293451757583575247360769995945848535131180286586805273076957924637344430301149217877373866870626518962491728014580844838934359983892287837907663495546445764904773951208781410215431186764175326995683476930617942549602720133410593517377376491806268257391550290868007913467718886298533080081816972466792638711163739840102988092882359066093298040265351706527438160259293708276060762257188099534889100313389234963564726238949151931141302578451931637504407594150033551204580817953915144148370325866797595100728758987746716319291964820734551763120346572403389326479159729302424876694849596936921385106278975711272620981629280596393068284789729715725694220803204850814037119950474803145842115469176605923683006971742143603860362389661219826910027935202848255815803866478945879870441663062446270153866326842657647147763705878511244598612191190132727335111484555140130631509629212550680304971986560673333495329500692255739618066402498382804938520138140621033715378448749078286361908443140325031848335535065583936755664020962147912032267248940971643840033699691425772874234678171692091921085685703863982832494455170620500747066643797213867789702124064738504085064376861837564506179633544622144025442898612607235831379018093222926419312320800240021832803851621444065807449492573053502454309226533300180850306880016786163924898485180650835196065860114278424572522380570766175886263424453707905103194272520701084817852641178884732468960240966384787684760775954237605728910699552376008840549642751993485268507882389254783950435401187379598314618254749486679055846865808402105452324291329179513073395924999270127057244763182222112773633778248604783624930703423408600924335484852670603476930574259181966483188982072628255710294805259431700960393443621181215946214915969407303201661888958636951053876027894997488696312393565651774081537543026988716823265635847463905883425351147526641695559259041234163525763811266143994153990438638867372653392227593984277786785207679726552952540579057030931053966978531758037667804422400163590858833760782919721747909957212103864439252890612613782597692596924237100507838760034126041187908202397421683341488342921536941145892519134205909274701109852238556624907724370151347286050931745604842301126811640459067642921790504844542583465516262542618418414171222224209093153045025429412998934964641324966628306008079571263459217954288965626099157393431085771658227090027071814185900528728154235613005162279327460873618969704499955345448585446277313067330698137655514672902885126991859211622076272743553461535642922535929689874729544314805290917944597242725959360006236108889656739671417508607168875798724545279889335092555749461944755223646619200879518848634486692663770026180225848523865657637668608724849396755056039079618097022293121973658378338616774914697239067914045580842540731790890402204871241155087532790705369487991141458346283721858202200497424929492060278109372429345882572047050251258204450964126396356031008252293943646378394849063376208630658208545315497688248844783554022636295576668173136600499222445960357616856799343481107049627856008257135697653639482444104778929722307355607437500847965688463279091211825163953126029578738091895748757257181136677171958362307851787683410764657323596834418033914142882971501360529867631714576161361677802222843034145924000403837481834395205174990866598348188994635715949876409173340882792862278557085218342363834146438648598598579082522925189857966639109387566307671854716790926840814746931472824890286915121269003445198466058348246701660505804972103184709246036844112940280850112116739731902927017902964939711002505220001463586652181663551312710320382889912546884906723989771213271747548557997209362352049822361591304322046984755930308930781621425169195949567581203098444266129545113584683762039160474409632635702258009784808421318504064951274224625596746453248614961329554118862686745405415565779413481610062328205536721128214695840734641649319587376778344042133899291107077615995795477476027938450868078365301663343384627313414576358610160230334348757961020146350309372572202451182843371438001274867217232005277139439483579055744674455101226815100930837185266861859717392769047733974345359038770320229502251467629478244999696012243822068301656496428907243690683033743242176115450617849343826139454640358053747433780731087698729096065099530398860228237203267257956807421620493009043893918445164723094361022274105712763397940433473842571104620335322952933009451664356830816893557990258150315341948091978724836713168695693524547844685920525907607831007381521280890906742221096255460356010803213799203856074851827750899423825146236664948580760166607612865788029369889623628524979238250141763039731254168657851532343041887626093047251481306539346949164564336892768509252999559668317728580072190883567234256323964894636617268680792321894772407170782506462290754142395054933144289579067345911539003618087630154196439174029228911774570904401222998838203615892912395175053163782990933877041379932805914691310490972989720281206597964824275594301417312693620878903914112822810667164434589340360999375818572031834789448362251256117938290624724767321375885867816903359522514981143164231065226067782635108047438366049628716419780744495051162502716412826306302466203136840685263099840848543842373922294904728816644558843553046793058903153521890649331417458942356113468696963094308561836528229951710226050037445370209877133765452104969109533617143704387567664203107873004438982032710827488006614015483292139719512809244802857133544602861583972554585141329964013003264986026903199788707058348525603281078067655093508090623224259811478695012439982379006657170456772625891398728416155761776450025448726085840298846050049626601556121030642615005724684449245330026514706105994816759714656612114832843051766307959585490399382766237602660430616808232168579342536309393359305440840218983593328133395349962086048490721032287889069672079619181142694276043841751055152117483640907289515794647323402741079705627339205504407449170416899283226163367552157816547564464625388247331035523143812516772841359190934465160961069034282546202867677187427840333086397643740452721477547272859366221028269871754231368059500028785248740963745134847553609161948705828548893561116537041710383889020208412422582348605724868647325595386831716047923800330050299868613628147203957163590088650423908557072158530416866174469452454308469732524208246539791274604958695634801288030839838281248549305927457870628665519348416311748289863304853642207944743478744705382519100683732958046299237533833135257881017449517664025612685095083360716086599156345152809932297582132846300423357692139285352542028869390701615137336906331044503847799271201618546914486751908910626195597677592534439230091461544232036399445938866903664698782521342421149057026140977557074185608526531554102036294357567829131777957758525711248674621913535219243951691525959667873070436068015381805901388083375801623336901405151724492798604137767802512202730419181030620444720027953740449667416340870515420708049403037404927121135513908894119629213121983296315480934009002054177888383496266382776458086425744078755309728749669993683707049325692785077208856372713975607558717526820663878032872134756109346717366035955574198474424387964090402129917528003874370367206952586347442577893174172606273585811440683473865256636215489098293889817566676151285540097459157287974364609970318042950890546361673286026742928180210352360281098004274384614525092078734432145105575775920624825349513853922149464186259452391725289995871597925017708927379156151829865588213414446658504365592678178001790343549153308101345943275385130046917649455786147180578413869530351919028294479661242569942307634168986614865279729193553023497220252914798776138917975680482987299690848813691152468201622334637259557573545717840936399760385778897908605256347811099058920185739658896293092075490288548147629962698806027311105972919874978495394128166294514890618826609923911294630611740543267275835212278472542959123838989711141015983727064802581302291030587494441683745560132550315069115178225170693312435018451182293400581198767418578320879288885286892354989399369053165615325284322149519483777222113940329918040772993657695291222389389442923793589443790101688477272369523267116985015161711260696007109102638680666396452164267611348744753627475885392314307760804263761214358022836070373588101882651417948596751125488676260246148469238094198655932326404117354451123139618516456044843004020087117286415389609248593661321189475922347695742753047414218883011804387671171901807785093594534108904884609798894190192036544504149208037650590585003464556304099966360283100345296735532109118068860968752514150580066240427075989655347907368097293001471016407935765320881540348247384444668037974790442503154377136528774432662466530543958024216150758745242498633482828170901515829235435976872342926245732410122610565930441055038582529386839345846636277119195972413765210924642063675322789903340276437442857848900270086066677710075515427181040085678230692625691627981296287456891548802450604212182810364602919983031340881565685670434505806564913956822762087757439078844242582443720130550140167615707215514470115250149088808383813801420871413665511221938896992754793496361931367451676781245950184586834097645415582855417209892694014670845399455477720752263960665596797272806962998381743394099306955623199372949773645874464629015223475435123398407091015337350872453948902014355192759541643174631044379373009035656738309703472449483271386479820797319887439914060780860920208230874719449648116195696166522653401800630040008722992717585522968348246780163899825885769324511589343956420846350035783757187130157058553575895558173768010011563652381843813925113269849123591152481258541279421589978989970902938332317034551212473703497943305795183018994703130896817307842377658019896723168018309872811031705428931154096182897057565513142683058856883787742819432590323546407740616376811369918326026018239698258147073888888721388450289799428530333795265294721121136300837660898297331025715923743511773668810727306542466669471862337761451592496950304244998120164150099555814448651674359216317467904144353131271050846938810947367665945214847886053875429833617543800466785389225634391961362672039742506372495619881303612032450139873576442090123286410063435150109733450818955545788918481720966044385159944897237371250501790685066660052856401170440595840905285943044936680359979537597849393419012499554187451432722362294472137756563650858514752512001694769743457303896297728479183898202789914876958474973564775423721786497756352524357460149407178901073825937580402868134450637983832638626886014694606786617664107759839854995891648107192597797143371348731014410273083041103143445291414978334972750738677904863314071914443679078149106542685959977225601491485553323012436062400954042481632465018853864678867168716183617949780415664121674620749314907934838446661118741654115803545245466789236900003050160999345235419691786581508166164955948565223425407169341762189796166440573056252191777247319215687684310496248257256166751134527475006133370838931737548985019390178423981591993713261709045602998241503409121011318861124234578981006629272788245419563955401237114229094492248074230481615950115920140134421600447971922312861261428815456542225889729286832842605439346469371770244682502404584441824416601808090629947078477363164537217745559986423431269163942892377194442157383688935827260682162292779269533055584550995871853416840014319047974497137144622122176304975081618232581957393226811558879174400624239077257026992634701154230189923784083618325716870318860053580930664589985302732374154533066274848268643180425841683988576739338702111722941374821561722626888238745438196041707752409048040722813329987635872387171648160130771089085871895832251564346552191566175760478227299239023870554831895358212535289973814555157748866173877709608171769129715760042063353075019555922742610611194215167682828727520189674282241579208687178560560945250895671602429822889456041639699054989021772752318168839670327706794754040284361713510521245217424365551576523251227613604078502000342284990280295523773023813041483696141751720818218095788870528370520537112970378841469428617200162004292448878100188330767101052990532177442986665781443269043109176325911338809355469626253712168605211999635402095611896872938167594188110380245569887184247001859828309306180411833981492891262681575993694177260745673716842880109489103220965700277512487199814381755338943166198503014118152326643102747382404179765481326015677974545511785390881408776468663661511708553656919019936325807352208016339669317570279998271440756832949126008679384739229980499840499890236661956810564058886853783236507991793176208295005725299898448576247818012905904665852557208058898293311792334849806767327069924433245672606796478805732876542826849432720872102114393296947075745364119434781678562516091328128308030252220897264679892462238399715757253690967837826250958573726856329911398189172021545670343334156607109530753683119059785222532999001126767097557733222233475109217671278573818263232445145794992496102853633680327094969067579235692865394803443043853362501809077383863023759706806572095145412304185127793536100979621155542051138957003851436439079905769223028494570512541355228374499981655152309683470515416437171584921589606483505852248593307093469376743304671060565407698482982521523110754426353000529948125445781809842637111526073380886399688083781733318307505670553303310895007569578721906918061004590375931928148498564906983184835180167089325398430796105155681410391517146641596501486275204144058244912648064948746419956534568742102897329461508627120906681060053932452094131475113715369529132636133795315131350977534012262996053983662406554998330558633097806554054166946945987259155266781041048347529412457708075690492547693902206675638129654686937039271769905102481414877997170398403039803346174885004010639438057552203349839764852568180469904406922897973224958958113701322325001553046659952758288525253721861963080232801833603149776884196283967389249405463786077744125477605710110151802615065690293960182675482444145431524506207907838366437424510277836807056554974367776498588295490467158042692915981976642009381447331072195715803208604686676328169797940999513641335132998737696521715379625062897399754523255693435902498698398863750742752596297031868523123331446772803959495947836445536872070005405542826908522046271940121752104934783978537515872768512422962111029381550724328345123263598609810144838939895892571769120196261362634153418522691595344360452867944982181129001432606221760036631039330343968007790221996753963384135566695801054384670326753477916872993158482410518436358230712297361363104045592947941340998609210958554193745337643917858183806403549967123254965604514509480474693437902518353181072757161617671590652840721072919887218195515466374013823912676606337001416321024999781737727020873247481596765365875064476808048903358177958768188487907279736321848991022129203832992731772279134740389561548915586134236917383264359351352186997842853040650547260627440493688456061832919553492772427661305663300340175455575954594957794331117401590003044605565900414106394027221241046442679887165393567890695566543188182275887344617638154614381851915534086314610993264204404141058092762990964909898539358295355306835063106287059158539031725641038101154051226547661048803966253055675305477911441353719051775993015681787398809554896290901219383950915954169049011878241969658136022755466564830892804443622525368369853349326471610204016314897722078636835127836954423147185982650022284969884607306814993096413344300425945882374803605237525960257298146213445684742299297810576360795042847263768036080833111929501151287856521801795941302748742757701075176473858100166869727818360474909366325645984646124848298863956022318600301300222882084134625361533605254855666713034451054558925089971784832587079381445656046269140992718989213754906139662537298873995672244920109031339933144535317374879960459696079178401827680638435253720410350589639234668353009266682530662488875982137862788346849494750765790722977297478453745841941320321268377212716826790844389652649436633019326284734628860449240806177684841127208143754378014962030922328950631765566354049365811623886631022568421664233190990839568299139434178888399035747614687719047687244275990875118749588557241811304026019583031878962581259179177060084415055406082866827475329286282820788296105327631954598470245383616183840120164577641951556854096829700411699903054815022835723534609423340113778386876251564131124545219504872617287692934953408239859066404113242678721766590256750862868805435544347795855679218221070903538006205660150324242049165035376663551369604627905768859542767133540863779055187559590226074948393352533255327039028281609173586059227422007075887190219381160056643904277255687483781805943308640133587148149410102741864116516497482978856272263190420704763534939623266374050932208865748946050943611524929406534246030739162132050248153878946354887088287739673816970251618748488895475929956840170405071278085556486168843652440580177217298514370429840609576629331929254685294011405707658875570285369043384418250610757034823622333087622692771449141828707632558424211463880303107270246531798364221228092143803755114200367589430002895808914131894885261165555557586303147707588767783499781923476356744636765937802899992821601972077754306230663938547943063777412881894506179263574191461088548865471057148621589189685726754237879287504251596416301583348005943650070687054862971860621082523151003142437105275948117190596186435879602473508320452604050821606189661844381580887606492080567275774557022946720638530827899484052018641454731943881496614567094730697999280228394088997381076288337143006040427845419685554367209119947500872238021087193385924338645818720906801865413308760991696672051522221587618337462373640163853693422274879012429571471354466014983685523381162625970825697994162008719652993995710023311416941113186531332648035105109233510929797865726329608139458620455347017336367561827531797887282061231762178061797581238663541278901877402291287674283822331657519805979055978839810038124626923162269394096182908063099266793521870481604478614351867132602850483110568198366026477578546856220333727984097728073397445220643299358045292170843921326395039251897124201945416887169825167902331382121117401608417191108779567435684953011831945335437617787555747575731640268291156292316570465002488651090095754643772312167624535871229607819214760273220378479805756556036591995242158584439939592685320607809026902968195321901771421409833310434850176125300685666660278676903188827049043402305078403510849511452817556680518801687518865630235091830563290141133661549815070442830618362459017545734806978775081914524730466407635414296466651102305426241609402238888946824637429773331828629899121943426294042285099268768121755974309461038241408384412866916574159769800419358241562547852247273554689182849773502681295833058930975849452175055764616733132086506146726502790259950514467705047982690216803622473667334626053889134425218574614415682241787776658337565658407277063111191012151235253515291844776631469966069257656070143453122005528660594442354782029476178834748598323652846685917892703418405702233269151882142443186841084273007785943500730539717071487614297980964110560871648544586605076857404639903482067148244558593485690335084413414638316360050579366390512646034457986206545907846183232333702518451763811224659314998172063019638879508844128524719915659000201833283796378728435616701329803866048166325893824724685683652047017089235182064868682765692479212121592844691788403137126609435935443307842764906450627709726536824102469293437978888355261562122367931395280212030799064239027163410894560672902864173909132069917118427092133619312453140876919638664077394575808548809862428796777386194790475332534143410947606066748735718509045516446669294473406724835075807116046560303434577359084664235767102066927353246795768680210915793715452747357424047277885716837077792716493929978345215794315881062059427704091108159164669114448864514027183662037318678412645195855044522413744319692984849878964212774197871634421922520011271241945445142812538784467039889432341208985577359275625045653653944986180550722327211248449271406992028214993866785344465844604817703306023935363436147509081423571629817904970118479695921957891975847684662021885502273942743520767294209139010520860325315802202303370458905296743530756228151667960909268978422419589312240978473685870350263280556701859764621844587270231319966175107588145728545996851124620872352618877785046814941207865653808964552619687853229713865870442685747440208731266808592198847343560863145404678588170711561692442518553055983412069135014249232644944369856844802916018851096393871155320572161731391500041043971772468745843416741178374502693992103456792379137533686024037699129567919214629455623325567532323171579723860245358025676268204873008266709376028563042832176533721866302053547473037264057400175588152542468196981693745331395133152366927141975683957610116628395863054049912881204698923589170899774367068500431795354027241094215337091513360943992245937253656755926096124714337318698611518584329018232658205329598395715572437190574967882973543981256872492519761626946616177314815069986890975104058496300665944242291169809302003224451212384306816971242810030912071148506321758382205064208386434614960020777250475983638875410501813326117040811348441936319721243812183454317997821355250400920852271511406163323293920352169754702155826088006605538497166843105429936981667066195119080356322678638225680666864959567426965288736045359710724429134840134910571091428999175529230452108308052143680922688000509126636488653691385557192960489405012128087361445275212046859656666308460145052027150890803241846510044810019441695790188550691334421995540513255025924108605009773795386284720945178747849340025347690457866528519076406672108062106083554807805987721318516969652094029308976923155528284178826164974783311748174527940912954085284146474757300033685951622234467995185776015769440521286541731680521245524015651616282768772711559614599296222349156261881254810224319472977397742090807011058101410951616309255688418773817517295281074858249469786885595033931973065903259516232183420180893472032278290339865448158424979260009846397285221329031407589845115585385931065643146409717636461020274738581989908802296131103153062501958161043594148093694899474897110509534757375771826944973814391473453500478156032338691406954542611046435049259166210009969637450478507730293440561371977145355625894222385131496064510741134574802116379300722533371334662745576126242875944614695977380372698356373170027162374687989055970343421675469549342671990607913052679115470174527987112841627541555737610799349909190375469903705107108009193605071883607495586839561093665890366825636570688397114216711248676496751144520051249340199087629963979664087874548715383835625707036872115050597419514361235962200706971215078868389965551938119807353844382824551657272728242930366226239822739676400248485943478222045530153031025686693037445819556427732109440221735319695542754474243407686400710842462290007677821496529747428679770669415471939234120920474611755933997313444077834752188179758360207247175719190254762327328851031576868960669022606064775337361965256837623306252059832065050082736900817376161520132123013435107354181003362585064535891141278457703123555793362664360216114561472669671791114521401274697924196997904876721325880897085652744780462363121841667366920015612349981878864290793245463572938027026352760256889502676480333178374217074770944021003194917641801502577998184507961051619635134003256376616203746981389052720920372321076081048547147134757362500199569241848212340061549752735206292927254785117037945294352755030350591535475899600650279449150726400286236852521754479477894881931889719122805086166857694452405613329230725397573702406838702712906448265804786245600087448226937570599248381732024272949506927398369600448739980670585004939500731477576971580997627681351474433016395415349428575220225213065625359142850059662824278232856639631707226187569515415568733647734858187693193339039638090283005606344914335070576437152655541143257776950984892299685399115862638142811298217109314880461010008793139520400270602530716437459214002314492058808231155313304628004027987774582496137653339750003167035836999533401067469023862281685234416589539716220327642997064386316948412780192971881931045089534732954963560783919964374668609655306389329700238293290679592356715898268968325866200160019286942590427522913697576242745965279692867511315934549632144706932231913371797719522392540307626740634911809366878387273692884506506509382518069857703550600254611507115476253080546642043948495562175526798882172741590872999695125036827362464168721747803115251556576337319790798982241159644867810922449898597209554060211649616146775024466927474470457478275748765487018744184846995496205053928211152168007398905976969924102946567587753415861603353733209537158535194478770945239564371395329055858996413638692640225720398177845065714525666876800765804699626733861193192467109253847541389222739249118765225274104256443306230811850963143243969786360547245798823478106702809578459379866710503822518558931063154987680801290920338807384220617826829178546938472645795401230806415364888501842019070800394957579413937813238299036330649740954699068220867380864330861830357245599203328491474437490595605150379069432643092287777107257474240811804154954336776122600868239650250828733293108503868395144395606750789944189264596660108517650578685413243506943373934838337600677508170350911164589579586966927179181556757638459107763775797073515962512207124403427477944217803330340763427602210191684865819608881917026169863551250257467968859895889391168676918420521634033462530386851954778316099253431807644883168101659644586642762456758228717564823770068558511006088394081838643355421903896769607743004255661122471832445139694553997288540048318696171796111343198361225342614964293155490313522460362763885228063141389874503589348430526851365857508994706986790993783701364528840239660491801853474567639920483669921965482946431264180838903025923582785072952992339788930382464347737563997270197899122861858818163674148047982593912342028090732433481435193872009182645707138786682611466675053549073402194866782982205588101865797649871334441820049195584307055922825021548159974788668511000488988331371001386911608008048116524624868976954996893505949897938364862658566562453822182819528691538563665705414357347828701233391797433287752325567433706533110966820527943276917273375295372318297254669140249355246489210260680587739155254422447623072306966483488787726147037231989205259519533729316870393043945570169940041805874008320008333136364344239084951872202947909931946237776832697834078039902464656482125532806535840338035597894591977108963473208457493901568837218990300436448507573063092890876441818692153661575416279565102510740454604229973736966888682405753801955919797772410968074021960835489739991506787869427023352173656538429479223469298698533848436998010433143685380742768796664658804361104170279124305189780624382746593941700625822990476394253230228998331678100670604327139750823026076555204238062586016770204094733225454964765530339691281929583056244524027794266053481282705872075594187610244363000379813151141104513676415556879412950173722847441875385838517199647780988327798466158767794476541452055015384908856089574414721875767067510929402044585573628458391338482764852862030516424778163542691639852584301805158727182267191276515296030381055187398778272953922415706523037481938409504928705546273789448902254228430902521270045068871399452206267861817459512561278286730041003644303149318138529803555492344131336574953809188943035547932494450647327514192617271526638486035593781617316282070352419010860419201438074058614421942704803834098154384309394783106802270766201537017817948766900584214696253372241135286769765688629849858014003484551404288344612969632101842255665280459994098909318206133049800974288993264817201667998931921827342036502824219720872035750825148492423097590129343417445615804373964316177707699658483532496685250580684030046170614163617557177702367789847195713921714469549752755459384020534060895763681986872404270808701135419640463651441090432910448814250771188941931223769826004642280950585038735459008412686030451021996760188262958915381982240279169690365662163025116039825737087663440134029030966509208155439425867951522824304995278136860558329884238808852481184706896918294039494415520625962085751372460111600849793255847499973135201546980352280294398009050320310854171321344631466892905231402898917623463318210024341244757990139953227016563270195144480081745325968079978635578035074253967678251523446871109576404104145200241422396178228774658672881897130542039083649916892932842877919423924977297882132664326340640660392857512653026911882403068454114929690273593355001752526475566694660723657905287317004979191438651329648225334673552425843382061778613570172080001189767883663932503743771700042148809962095789025945844356450541430700314811517933723789297107916683645947446902514592912750265932703393389852596557544909127140414286134208593856211946580961940296531720919675852658471553942570063645065997440580167078320636510321025234741220523166638525023976983217509885676453927169618334642547831212557692712423495117503766025765975772145584756833081421086432562154377249024960671870459747368527765038074649348971243457430884779368121288339871300732508048010855209830181786447220102806507520913826765754860011674010860829639238564955822038552384123589846649408134191477093654276287366885014960760568748914993427378798026242144464365670328872568539413281981058716893553299952389184698856744193092386822356994927327294951672160586219044261183023187040465866014770591435681081588735692881276729359541213681959944686996727023763691784537777085643040421295482614813265859772929007476856524143379399433587707380651713249867957097201582839203471110354752730542059852897783254793999086055912547160376113289128579208432404841839606223832452009355025285200582272035704754838624208862401580844125941616366990901055724826291403935462139580941633571718158132919931649990061458696178827581669100322465974755667483848483659679528725779891047738257954638446377742884214321845252326738768290331537157238557944511073089305604033429021826365775299090030998592447175650746833267987591176597048052067624669929476511868270188367452350348600462003196283416906188099058752971856045658406298069142520821282368714244410722385664544644990040966744470233120594891135030107610833401416181995864419231519405710485810607441397411803759088223081788758865024896941989451000630359861472080165821438062866941805841064805296750116816342140307926836158594487128125136987502626993771490760793964208248661772473091366052839511219765321616198000062113671227947078106999171612210716552919615312006164975169093028764269516073371745574584893479328701229321718273369294380686573974169353507970944468278445228694955158342097747881057246315168967248774789941359503861540558091863983103695425930243815737433577872808400137370206099081796867485073263159576577840862993957974852376892301573295231586280365355341899589253304260741320495114096112319235466502056859350396171033821219745180476887817823228027732626471702150382514868986502123179170897952463893847195706488859334415283598226307331816324899852259762822373685258434205008515380040026188746636549878448789194177155548691623172574636035838231601242505981565221541943474758834292197498276542427815865891165333342207501835134476682152510785000827212460400720679717702305484188727262811541110781776593607403222314774651125110060037431622719084217872016283231030455057145832920562032708700276990869428520738226793724789495300999400349907421526363752968639466231444675064071271486285898612371975087962950170065404683677371342194370944125292007057169123239206505490142047892703241704299881073233342337493053616267379701355050577939475908741405088771663839054467871842866464242085635276430637979396791515203168255016658812197287532464774602347630666613189340891411510024880130486107122177876573467728758196093689419934368477435409814909146854464958806094705078978821014102440584521044616889238387132139835318826424013471681951077951623844679131106544840142175613122033234015521784546720013197969993588146909352807031561596828150843462413138786261958857691208750872504747215326239529791341381848381703351191589995434839525779944464872161284416083991033291474737934389215933617180065362792505722901067539006469557106630755940996604153479763072186044879008669436306455660004765297089633921896492702438978650257061549457190595905176633926905949386219028522833715507285929129717733858599078717382737570117779353502683267545684985644332803150866683090709064176882814202237595426500426301500677582715809632882379135119478145876954363197389209935695545515367304288093655627793687802066942279846710503091074351270376556201383385605911902566264288693483138805774562466700892076368071448512182958736350327985811042995483386258145568679943913657031087032083324152593272729222968234355600152457198343836470071449183305796643641466839835538897762709084150374367425134297829779253395932658831823202736188568757683428355212651024203231404128563636260615371255356790045343174763597005201755709149237385900445544329198032245165851341606032534761807254012570893234201987719630906393549599424480864941408808912565816128615074583861122833521250816230866972392153068565488367291932980949106811338384956377112367299744456673667764090296556694119448755634330131728912842588985898324338672621195720572086930161935314125968588508343746989575539878695666686801494430058897942251252203925174457641557439864406438619097956547983522282827239019252647153132657263517427329468118267821254077923551849864730243921455800232579036890564888287588711784162880377543713058192958601714382562017024973434809174061000130124203453306360884116571913606783265170438200062739531219437215925828143039256136294893345404549793425295165754848525335865228280451301826345228329364291607916243500692455356322811593257039682721168741067668598816032246318177245292959192134527094447185505714111665771670521951004788903597645647696521092128723680951561404647696765225983834177345360145780947139996747184294130894064408257601321299745788465900239458473714792579497104167887568371241054066680301101567270545467765541999476343746717516015799738308318623618215079009042164795518879090805076540539946200522146047456084188281549462089350581579836023948660648444293403259394802819835661020840147896779007512540503983371932704307659519861498062055755178109520385210522195773520984330894763374849947037597271901964608221849477669626955018555715629805578093974671721789544587164292724351930621002432246599562270683308814505143412025950333233984411522435512991648366446247239650504284026033507945247046441259187296911168972339516792878784083627550153041873882056260654001029717278125219431269824022793832283626277907637974251316188852450765800334438612433451807810948310462355331086151875882326891729636769653797935954196014375330966316483696285623561513339365232235381862973790372084258973157488151726011399542501719027188002250814228873256192219935618314702532420748909642219055392468933619408058235426246832495958307972247867476318760587018666726117502454455312807833106588968313297463515488726062801534917731601197678313594761146270265677888437144232479896030765274441204456398755734405624705259201715780239842474232361185586546498210147408893090240486186317706087748060852815974369579701570291742300522263682147209562381428944193720568853827625860938609349705114312606311266048875956690082209326368870357238212602611021727053725387496311783605477832726922593525599146900771491808955641039299099753575633091301024660785995304527572899330537817479019713159283997939799337874930129491301406512849606424258968199671808015110585763149086471602812862685939925765818192863391425625147937808818328844002819837365823104830123150392850807756177496651840726323750307987464921367628989880310621850093664043269871928768139687251470723824022183571691042342563376699604275071922708316697599225816271221238324947235378126875506193078965712565307747694503690911316924698520639717572583255390128257481894268812128237324825048844873911825302721398470048756350287447139231711856673222742424624881065248399723283777329963198929755193050422777740755294037121030572290059595252502935083975223317005234680842081949700211065980103121040239804872845626717538686771885665488590353871525541481740309675415146988161394821051072038207106108588592291425125889532091195595267256584188200939107489301129481188045107324838442208468352677701717581999033290897018914778646757006620385534211257948329732467825715320066354730650549126012610297576973686979603234484205454406988062068634004611650140407139418722385015532858389396085462778209850738937385463545809443807558505132552779440733636052312352824741131467718944696476547996442043839451556961766947475349624738727869439865840561220264312067498903859764173869083287096850498911942093792668398801575932668449526689317091440874236207811447983601925342307758945178554303004330543185066689489779842131766332041505838276223790596392743505683754811153827037386154833305833935993372529732086618863614369729568332208275837063345350886288828883561737063134664805581506467821306207608430855775777124734285611474324751822104336884513493674089846994161381828089874369744901796459096402689697540198585749174785362398286679819240999817372221500067796553207825714993765661932010934528209252537096819695064163990291534501215846443400757828750495166563138518515880524109806455866196581043178367639546939171834808858633728234918348349539444001267347201486472326962181438037888110027665298094686414616545184497209048474357372367933826496998808975761464520467788566907439923866401477871168202948811988127949088745526934363867386555536037498426457869446962807322218839619392974343115344236322450390748351081152277091667391346111429306831714301145553685966805712468427185701741602310649417379774152630679041547405135455368363171247846486589168779801294247995190206758208735607732544287473949794973690998697391306268769574834357108550445378908784972585005303003108274108874838739017861916874021585102073188192805596417089476359479831379905138925541840975428859402030057358278578354303554020469609824401810811407832540649151070045465157403850426808971255331876459104261506207425748302098425467883364743460752826428474358915624228469069776662708445044954028430902355937222922450383575719592800263484964319718192944344479030656195762273962007401929416615868313367556491873263893066327287912631545990620184234484941921283336846605499950799135258364458337342855240311866996471403219587800792387643884691157324330628611437542735136163482459044636424154802833859548689153775669557379197968666875277609697728119607391078974340753528508859966007174967637002848786770346256099221827564851384847805759725631683878020947740441337917216542809094331738693078828459308383899884317432190029025806732265085667164551178144112561317006692616825622281284605295557015019766636001487234621370180829082105361181770089540986192014298732353917948582642007013412243157041914890154523407542193520336850326449451246732352224163207975515762942083444721362165630853507510077892096412417581552825958481359136397342615339151999875256160263493715461215069745632596688385856055515124396694263638192520057608038986652812845837548530391452571427681767711870383985144011697454032519068520515021896282874787921840019343294994644216335466851331378654182467088819267319448968212727896480212106373539907440641859270211097866455921302310495243190082695148327411633425022957589361053397682385135442660736887875075173443559975355873053378481887965641476185203087823289197609813525988513697328462262482725752589803497438998418350297467309863108013116720774745155827461390096356377079693262764209568666189724836609382752796254651882897880757596084868929632102470605111263657429959394805302057131619875574735904764563448211634227067969485626305857871286320409933507432861528035100901823787962745740288826558698144243150011025172271470888097764322097207883254505246571250324027254437157941261623718965659554586382365079848300410690437676083256346221495767203547695884721394181830988761594708784058173399086893220775921852376674176307519456758072254608226930235978922294110808544337826770333656656418378403798536513521864373915266048188418778432758613255499076913738915247856778912592525125348833546288619661268539943684617465683942669606531981257704993431343732505695157419820731339321074244815093941024131237099181157105823817863796411825774503090889198513445125496344809706263075703012574444126765863282171289139223012479459507025856595037897714641318226927864637569029626958370454693382983117679679883917717703698321688053092453744757851041284813954114788038970355902719215700295356406109299834161243238048635920762745689251358872203035235085539118895381998049506640549356741407944431251001333987245616517035879165780269235782722104726268919634580461172862895350543376030621106374049477653235545158525695903414855547224622917374515095566036822351034166919658540626704922527025083976437203096164537606481990720737058213412406199236285257810988524065904704495150841717779272662516142450159544404844984054844837862094242049488054403804409109737069006330202485701926202598831420997413156528822372656844544014699052494343251339296791748341531932524963180126350470621554427976436495044360347192836457212216320566617739964806009617270193615409343256433505684768503852491930645579691332954600771915729938221851268707206868624797432976647652185301622690105593650096824078952998542513683819376112914334895244693852429657856381646619868911837859991639389744568301213419605771617181061772327538422330489970829214753265166713168614790885341963750347541504594618865806695535432596891575149142882901515230260867249427901057798332652301823608930617943056106760297784435915352393213238286731803902019318247401953232811218936696996905675440342596909791842327182176722883683638018389534985123936113489895934754299148348175090109203639938912254048443022876392705813041777186549047196525283430979938164030004214715544960299160382024459386423376828396920812680914005489254828073166166522770655536517274448204465988566862437975894278522259180361517084684517266630534310447312592611007840514687224153128225176384454791929016030460861430493627384648664372212487801820614947010578727092421664070633327280847809376394721640441551300636775509723585099443205877393055137219450056246087068087934204381816379890413570226687761365698470179644159797032346163351761768097600541751845659572476306141395261169938345824175392027177717524009178065706056780461530795877505120979098458579776647003348294804956217143118206427146441108511507006793205553538734242159546779449227214336051689649631644873542848451409593468934849943067386897363418332359091890222872402754207658347253939767343310480745096406143576548575300003627625649479939448942233689371542093578611263608704927454678183933231010357918580338381837667291521228928899138235014436553519717923940690636746037230230246699944746913466506974635493607528486760177241418653063276673653808858037712286531208258062938194896687237691245200347897838440297037119864862433328226599783009286703179330766752607870077569564463371670446505109027647742117058837680919183291129990150066761560838950920105427218070019146961969844926719474661237733377796823637323370364284166558456451826917799948539931068834138882759024672462331197444323689134606769994592702887426458919942830010807891557637190744648087860249330048542399821186681480569367417013836215854321058399086320459964498381903725560034249568604021822431881171735252468557009207544945434183337329656206624908979058338436810149412573602781248727451269300624165977394958036709326300978022024781999601998499755541398732814319483047801256799450612569381477874311625125912382746637738708978542796870908197425805623770265934198599209942780531136729170774370260560982988124596236092677162631760899775069685966655231682601826945671077592340787925576758466474542530854945477252180085553576838881872851439658523991351449671286223297555297507266362959930576691469212378165416965317593709476334865813222590921776296840976170950816474570104616570715455979804224109161077278517844277610277500719686796995660709709385059475048828716283366933623406395545377611849792913551989662386937298012018634867275551602739278665588581587145995859423243879500571583254273810864973526480701232217692171808686539584328599989678167804894771048274015618221349505685473120081584133170270838563936686371570668398294756403619199031787707231134262187367220902011717074313547659914371491241141291851755577941463780483646069192878740886883365220421973252435377933310763152151468520837148562272963081181349343441058314540341738712906875578006147435619590434139696614206762871675331768904608080497515924151406721505739019107375787678084614686647803674346127744632615190375212305976611346949245154068331396810360540009941943641113859273098917396702302194980894939414522053612005230144499467046559393799511667643447732116603120396276828246509479024783251908305174205057741483167195942430880607609926213292487370554507891737471872458147292031605830334589448047575311482139934343758412661241994390551406806496853172275939479637599749364941358103061260799273003366943339118227803023879579963376938914168930480915979257049490985621204175659174675585098756937285401386804276845997447947529939393162292730488676879431201968962200659072797555766736258341966691224324645405050116709517523127360584101710572239858305255569241639149913809857641463889576039035872554916242475387573275777070434669673380806465463853820736329437220561112173835131886406468506054780022830447501842032750936329963223780886635685449322980463171422779761600402529853589694210656161542078876107934313594004492467524348300808357125266232640386854215706520748837334263016939152384845811035776898440658353161343166507514806657706776548397493893759313933944636921389842859889504072448756878871753000433879098097401107861080677130802778740968024814257602656276343526204802498630861640893760415650821532277610918502278466216179033176846408315731981850999633371977752358829627069574093557050975852861154935852097471889087661918215955149219963471599912557218102659432114154216211222702945965292742122489886198648707209406311167251560060906139281201036210515472228553753494252286145517365671949679297829773927551830446821258011315650056644201051742301330716132716352284857572248225476304162189865466917597681280068494441631522673597718847785619495973252896187132450880644683678696767644894412474684289107980594117740988775283667382252165302006750242402983938386292750810706875834763182835130647584607061464629932704692357761064560504981904268509306695353929563678157422646247526286748177089958498582156432906343039645974811103951796129693206690640258532010323339887119304361062616782167688370466028885550517583788387650187653736322803471834764564656575433754838756929092473927463112337070388846182277426509982715238608997276568145789196563391535431105006390028872225820343822376448728986306705293023092710003618382216103447790359386240372254607553635653223812645744814134889196215347957738140368072470139500543448322559904346271888214189872000458169031043929674665394942904940319687544957460133261403671315466797374580152414145369864186493634276630973125815501868417016781641566349799833854381697884793369224740424714619146163992080164315245425461252265021705453925845115209511947230628469762550719761689430459088620203656546111373118363298246747184939891313213368556837496448418651594007134779706515625710195545915628555843437770353739232791858853900374858704700790828434458477807260517573140451109712839906894316117976016089440215879651183776710704845050673375672849942338483705641283059301457211442834015943662963523926375392195634857965948153461408408888302545754257645887159080571208588145714300050779769035168708890746263324710031460191787124200358213672641238489347030519908057158467553495360143274756404754914636868173704660776346992281851299718749027820794126963168670571308142943268966612398571569905653107687448725870828085636156609228714788696489530656317803878405068336612265628610141760504691944058060677994766609678690635512310666662203500892319088553400070008834755342884109831805843944762316158987308770563259281562378244938980333886278458649453766871467283440145129088696781008148851406069809268809514970115757616021610500559881685476128988564429892298324305100850377597818272853477733660519028172535315888450074993998691015292147508711079436606861466868598277030469599700912327168085276570859327433857604652469225033537603398782610068633631630251448691566846122558381816973508557542537945225794043305928741323823222284774701015243169839272260805701460446976457261121041112987523729031313213852606276042903952722792767241057467234081361672597678994934592778288896956871773737502644442099144163446696827932767715699300340685140689638159211223216418782701143688474438430770946383953596844275557828642696323919601281512091453246182208658606100696151827603945602307897304944446508904535100210141693448623339977154216165046361646959343148870953943534480966126438865981844929783545264682465383399348430892482697185266547212968545670424026623709273598101236607291645515526068353334009867185494639701935844258575839730059078790939577056274357035234530668189006682095048605173932861409105368311967103419270835823402618024635815124123211505289405062998741544682941022732615758066615678170060569475936528206921105487301946968486087738859062989510267587795958970592702799284076563083798016373431987782185359379555346862582791451576097102844307462625589511391321911710646330035859383759632701674005683352550594145134780735582470001826550114921237824509395564720861543761015037380943755247216403502381842241609401668678240276940025288607046350460479275462328284918923571179540184902571809635154060291823181109705889109866296637419551765939716653605481443631353637246131287223824247292429063483755405363989412002001185459516818972582276306672757870053685161710934303668195878943923760153541108230134732200541293198583287567888458476770746031348871207693707188028346213894687925163604664791435279999680195404443344926151727840728199398131083854963937275937497550466813757447452844030850450830535918889919966651131278532125691857140654024941043030541846426070914263643357272081419765474002037201870896967551003232572590923660757612655074913674003755263039690265273028229771810864116667068896445448696032105109738522340672293610262036306526293388079246618925194593580877824765595347117553382254092327653531307048907631393959011444204764976159189253523266688027651182302735126686754414853681215357321279662971101627792896621677697504242836960599457842367427559671917466762750212676428415337825917713868857081232517393018937822397442697622650586284893517914389646952120435933735910274041094863158045530073868809259501454206223038143174874692198381482015896449076692516666128840364369180533765294376421859881872412205222263833613546599515000835544020487516391244781756969462104066961499165504370325870973715696968907223201125049184353485218969381009631430316545116054044720286340042227733193325989206685004857520541906940612620912685790511235469218313410682305420812309737358933088257277283005770581270552945822461346422890103331182124676726240395173775854156123268560128133326167450870231452809052672801800648426290058617536379729443416818915961442289260392053841863671795127211306573079577247553252434490971458804328172882657950831604175659801782118216202042773299183276697099209025355777284085872568684537146083414315078925261715780524147958451255839605125684193450096889241207725874258421212108558336407298496551328520401274732764273473516776647578991537871288261370331369059097624261405293495949750386022892049852273781529695802034888248797443609932510595764625104865999785364681264616457415949643012488013678806700681586670756356399031532307908824154414173064498801897883251061210789260905701461494205658196522825402886137208988514159329358257743397659054590429934917603903589207960441197352281853097621629365752584018966862307603933508086388584963899975258871160289325049192980677986358120043227171819276468217432013138042711986227796345630107758686700999360114001444171451421045949766899582685734484614803149316885151199844119895934403725079408746741045176722317801237814293331697191682003968995447355710014797199878473985169175043909538981364022461533283886806124989635532454562277330661722470986950953777083097837935585263147425615034332521847408206819760833979394191104740435610217095686642180498216130867059196114611114193940892552098535756178205161047079923685532024020149248199827764969295472627002500360658435650986574503454777009676589000353598836068069041517205556608038623893375398651368575608861627539278038339516543074616512465022512707434955742820209754697760230136304996877114104114744104908912127204595855154166969527577960613137433388066920979076002885692522577241029945575317240449314719787155786293135280723312917983328570115049125040615706939755273673839142038159929135485972077623978123318745575061773656675032543303305314333440952488848936028911118817248466756787823483301587270571180701325974556470025445782415795635082752910162221269657490051369007262133413159871256288121556933979845105924071616975836604189137746468999900750469581784942306929911907810933140615180869030891294263542132318337343213969236601188492454255165645908153129369392897682145600872430961824114390762814243610175452099400262934825807283904739069128746218631702646640118823579021038083449677675179424410607545757744830894262954786874120426741882187179000056350135853226841474028845343196285997864200787254425663738669831344070134347382911969222919987673107393427505347577984961708178865688985160246851237141015900754294003403305740067115361648395934008172544852577528178941718578898547098608058374454862253015422948093355215605271523050561216787833143658516492775817388050717583098338384221767703417453467588920008505751266219128596160926908046999116674992001971534851266601460904345744449504713448390721759398260286958693630906109129801144026164917578033100955213757375898404243702788900306785598285936889886847783935503359660294013830432466995991167381075363316524955329357804047019951373355326843701957115211575967295720697643594133164286207652272254404909353262020545359369441373274505658991879234733120478829405323152057937339340001638599749394603793716451813619378913509221130550999389456371813907553048009564002604291123374805675283282411576819143937292027058134476706057285621355361634654824261100990375309438996499216524449703936406605472300143411759241028759081470610428195635558208361378924723636096655974501670856838441764611459377592690702220395010562607274786535162745302024452485815782589840455190382079141287594798047658196872041345019513033069450936917908329585987228714868675427198973502932592116529743694256372342822531034148543096502862058076774359902232990258638886294629884041205473324118636044894021684588042582587977750272576914554807253665282521915536159823965205993015542082967321231797912123947485398839191404230496020271210347416339305823847541538695376608140385810921239924801815429833732208654809958353935183222940721111111744597677229463430835176236352651921601490741683850309058344226616945920560094328507959013503646402135694842796807217935460743233724387857464219641039708427154895885334471185917695457056250804589827335203980475587081579701721813211385436029117698352984324187036091355202725014863697409247921075859512430692526602078241438855205940031699645954255891619347447969419273864270611834288493050162384992050087621112637532558960077469101861741298050756856719308298990597315732614089743157903041490995117088335704557581375599569798514767496185171996937969786553539948106761384940128691450945693154678744569194419997523185916861042122799108818995503612225837090393148444808090771125259639211374457463465078115668179946531363174590962433956840282684015435732462260948091633877402817310530521955229328755451669607665382455805169973933771066248117564601459482968665386533178200732138348523917516104006542738869309980458262422074003430117466118577994006906511545544746259675069761448037401998303515509120151441459633002483375636723868907837665611692865159144408498388199504995521376184099815470975431075700069298780940966375179581140227421584577621661507664397739969643774574429874820173642529727200883611516983572286911655172193333055385106438065674758687738011101617936472507699429859105112415329874859664711261124151828327367291650357878181302427017289216384174456274285204257627229552626229547442499845174202039476579212821961434985955028071971686730038715680513901365742797148849294161290774912905232686592756353707177833081039269740428981144723103335446995775593590294653820487955523117949687891650961136648817171300624366834387029616865042886090185506515631854344252303902784820834835896240025051859486756043458138658885556158885925489606490554524076404361785957040534921664714640591164656263599276563177437497306878670533262302272178654331370384620327279750338030421557414638745272873225495402137890980894881542672714049433801839373298374701270763004477532146577795824255743360302806877210820840855833216442916199893746131901679574902571000712399897837985921894575168135312310971022137532889347915533474719089378035976012575604650782796817834320748652597164139902330815735801822757810149757658429883872859752635420844313127336523312016576764728133174748689814945093652234630474388572050362326031239775132833932167730803842257612552887061087551125753179719462832586487033679157850273903648915007360831060695171450943486197740248876639977567318565418770741738311882181985911000197213696064583768810511434282999147436951357437258749992656458456190077179856353832638561852623810488834863486526724979094858171576732293160707856743245143372995768551784945297904762260718077925449872995118255486488892485755789258087818255348482047366187910563904016513036295942094941638081057879471066256630115916280332616080615665500993932901917397404523244334890340981501593085751972556809989691478877646646181006357096719946511398527869776077681644050167148447701043996334408134950074644891766031559170340739130564697706159563287115192569331361911880174102145120079556467715122306774065873300292886814311721782693478851360771333867146899764517675419503791975600846581625479649638159234012477163292441462267689241325530847333421854744505938499426090142596697829703779963107879225373707702885134781393825179108251512365080170188273610225491771694625277186262085172122174309721163047657825016744159634172506133336397834160591680985335395183513067302980648828750852386292914016227851579635149545990252148621852022510185799871445674188338822195484833333021189437496847821200655118266154862639441653104102521488493830479863112889023837907807306870936576048092506543741220714824461354011499683543074869802376237823112916820062921520414811081366263059505910194882771429472978548326831400794612880515068902978477218407864090171986656204343976698336097409308270997442624982791947707699694397565251799075946112201665358519557514484816755797358106390079854063704589941804636896784151858685283093963681083944966567505842267485567714284737415137124392229700586796623600642051727705888300624340513414542953142534384651892545696870863413071746128832309230273254186114885904705768936621729404088302656994012244127927891160398051374946047838344710731860818948514546815821571557271196884298012516548427189772934803331227453157990386201824049133897985871157654327693117632631213815792307451923748539282502598256708125853360775709257520793915886216912139180885518543628677909856798379273490014952198026708609977559773638314582989693514342289346926231838324254556142630486934787854825696090547895904499693161151627438214642515997329107126012376376779276786764833454985987330718126576752343907456820098965214066573307657556656199544805532903330099379567596231239318502899437943542488084392732734762362928863406686225200323462753073832752767608133888614993322581544463288129569880130148313452867880858633617395762428769464324477255095967334188960112239639659528967844852584773408873562382123137427692723244131601274085702718598749765069848363318838011954299089702951497075872852449869241970214364100045314690331482787930479628877280778002864870998477351402509915715908952980991814617702235083934347147032033767012086602784658679962986925285476908858879288343770094653779369921253774271748714013461840098362254706933724755740503616903542936047994589080882897110604816811608039453177208508212387525708381396587544329969498449260191019478022616044362740086521858365591602064386857256852621782420960323965165940181811753565817266056009909407768980682869701262812575471350083475705551035583531543148983416022686718617807567729695744639302899321427216616828554846803106305988953894681609540584784559523992987603889406496980723226808196668811951053775437959813928390133171778006970962167610166716374291438352818734468140778400362916574890903767517271178647483194631576136998017877867486535718709832137785247860102343531366703394846112503606457661720695666419109092616877226021521473187710113281222254459586805611744166108706834583524236110506430267464944541919409913135102857740959087000604202227880982642952718732246381273597241273567471329675034000041617856010975890003029343242380687147522945614624370120048783392950795549590356139121541220390695952944527402199875920907804243971863260208041736502507431702868383901983424281660056466263267046191295072688538911372003811485585457008954087776848043196742108315549359127700836187180970544826540652297983101248538123952203603323350990647186653219489159205886779634794058894646886397656180121224462298850699198468483712359550470172697985246873473451707652385857465429888158611325553945949735198548904096955033812823651386787562021195618695093971886789011871660324285468237875953223931321971961488713145987857451637487150008842944088110248660968810234057298147477441390991024910995190842485940065274440522393278563028512717035945938930900391921160475531009197770869539244354615077761169790871393127856396307299754246043664635495610198088677348967818296565585744131354566056885623087269295293463911218134140799924188033958513817769518277009316241114463174739791357635718949046363939685318854743305491119630016728410170405690683057624275160237945787942209000250289987950703995760958468120992103594038792469033176796661981272889175108280191641011361582381195638220669803489482697620725342336982714732719970535064136067326479591162711399043676970881594463173738647840135584757497079952842926154356268759336590523076580553535252676436948806681224797051014300154350359143151286856734893877512794255938513264432805144527771911423367126304903095192229554776150947391785575475645526947427639787841493343334596321847862021686370857056101725912320814287649169621466238179870385822191165441580135769380517123305345856589375474693424857232974287907138454252551864989517225738891125521304364122919742033409424968990036796786511121558068152957565377600904370743142420783818040007114838154911706886740228043233494866766056625403699052099903289442635958915129385820864294376426744682018492361559416083657688974344269124640385703358913719864171339491347930753377646672354104210221181301312954615344014099747427557228659601831510636802440023499125633519602116344657911948076391934765211217106247309738498554814793503349923096275525384897176695967817476146014735384175163314035157969172682842769494126186954957128693868567361217853466086013490768889960662390624498533252753726867082577411569684489718731963821124593964887191245970532175773335429480041538386018935699793564944290113529462381884175227535996543327270557291903116887202527603803161011223204425270409464681832259591728240217659315302771180275840344176166776132183611005449342375731856696159155407600161255622626255109322136953533081765877008164028086749453867986358954496807568363149262711188034635630227637460811499570750917370776819163002206532980009554209322873099273776106194427893564587782849503362374207568335666589562166125763410199260204703701849975806884520874752286105468038749041901128028522749752154981023443343401270575953803736349183913114850553336053827517510680114572289922212973442968374365452671743422536457681316664058399376709988968963740475459089174806134341441253966818731773788874538645347320196036597423926539396506967525133513066190281234912403585674899261234168717165500031836513717583544434169984937797223254765963480645811946898870392133378392582701108375826952537932163947025735232021431260836642670057082017103905409247052396293592270703278250577123590837835131576895291232817528144945214661343729232348597842621566909112802931733423984956243233503028963700362179382418072773090464500943106498032242941978447078523769297761997446772186332098736112504263298878437513154625061343415332917659711957259315685812417092542633143511429450230948926046732171540581907256415180739676171844112371510997988670746934382389923153755808999803259246593387293400464717879772723439429266465406149373955730879034578364830526007059086121706844103034395662122499689007246992093212288338906295247057793561462341365360204949163306972459836063878040751289345571135751994928579699589094771842634677942042926143517536223411386072957569464909290035531187539354050409505835968388347191156322077882527777469161010603727788211274983445282354158332460486010650882426709600260351075139474995582861477473956439675997294817834263476601010408015845760473123230978633695467331533053312566574747265150918588398288355271859864333522348930905882714759239234787549865528719036626558100374154433487234275957515015070691743923588623090832691891743716320904180333514983989602108968150946341869818907871198566875439433230223540542846765602391520524550834879587727581710652142276415612983904209275235067200768534086045408350312885466185553466566001196418412756030755931145531499310698919341018301524743294897820781275398687691098418060385117918403688011294706689050109571626932829734222908856043815817623707292445526740296135384241285399230144396560606674172783444485728779500880877717682262347701419294814116976605684309285854165197993130572931471233326398898430773157341285389020115760485976570080985470128614629289006767389968890557301859026764906330807211736988602711667757076243398538263569838755543395080463586062098690120996168838760690081025283226617557535461795756038108231818632917016363537358419978221496509847457878078699746755477883464608492248579517438456498849407140963371180189792908426890841132614920557298910494532165934751059505738878724394917441476238150427884869691053088897213522695681482525143803294286927695006774970016811026743415794924368321619741397996699698699191438831633702653139502468770567516111998633761144339984148290537325565064201565585750567497258326115649607887247296087849455252576161320552807356922707518538027493671502031743923935338411405505362149147019755328153942224488672857087442066293540957194535410493622660417688921215733472870257221688440576474075803661081294826946223639295242102957246850322218498925113633910889302556470977931105582221588673428395611128668183978156190389998631344711414976720454610977438496609069381742461863733317223756862009248883240999880258551913623755469778586233910715794129474724064587377085195485208228507734615524833695844248692454876027739502286679907738924958644151254506059162419637775004912575891636318296632672502754787128309602130454033315367327424983041396645206223338452463953119771700796371705049449735631340440909626758336317165033623088821974457529596192247897478443460489963192992504742889576352993576460443715718317807066412314455541914582464315181085505028544711805343624285701361252670125892351558222463865858710804924708764609568475521849934004979837025403355226511209913863038645287151633058070507124469921636900773112864006834278281046754288490461106517377574501520003152756185906390117942500952919249807144445210936925044165918389357356654238796154328040059876024069113631330305435154805072446690850678499835439431364729832241239994053714404502515548747277071060590033672407032123815625329506924443693666520792122171931981909692448562367663850348623680843916993480133190930958760726180819867704912123480419219422020923475444508639159931618246712998634537529001923384507256258894585762745335800158272227051325217147745268242125764446880673352690173593711098277234797192118102655905302730012487411354002981261969716643571425796956902143739794034365194376013836842435647780888689627014301116554002113908655005298321525589274141195842428158386879819750372556879368914538635498347272796593170508684169685649495126108492902592609155648119105101399472248168371150745314507969146535880261607560306523595217942039518897574177948795988473231236209335793485858535551747464617646100760765021806707564715912469497736363830065227297492871649946348125753921866453266649813147218186961079965010083135147806843071486097904638141450502223110594561005487524098896710263058431676591408046100039298128555436359339528223857359632996079024384939609924146848197113870128986684090703681293530699886897667832011009266965852003136261014811784946500983387965084769821702992230919400836880285660519954592434764002564217874941460955371806114583760810797358399327287804833991883915852255127767692616563087684703001509311974613404109792614343602040567707313479862071391174355563735282627022113082579402144049405106287241382102772127147555569340987720421557904504732045846112365255659175944422051321600731498713302904529335465124146901193618794304030968499530948463674175075059039488837263933180919576586138116877920108283011458883159582435968697642221896727095528530709270828753882450434040141908836721753636951047980966324453339256988658858102184372183697993815592658316784389261064434890876977832703449838503708377509556258266062258629661127449286309373815886628135156021534431706784114021148124889697196985685660005517151333069333574822575341587972296320568244438186277494721176374118968299858199193493644618926239914539178536760535204354975979673767792935227246945303232755468816861238991173661230464540951847115965087711256761748245235437858905332912054328456901292056990431034063116352769858824359298943529720559968899182638303012973208969107817266737294912164823852867650176378706115898787554493640077989398722698562796524961985635833738355514097534512666928716058960019891349773506795094309070659202160516934873208975805869014750798199530745525761635877377263904696124072265687496393691366945471984033858252322102294024242797195664381846042248745925108905955563291239490537793338553004616018369308180849658208250813055720934414159830910601608335314513664736056563438363427164496510661112834190885944901227512908994656645901754312702415247076691445673923533734875461031064245957304938026080969341546727138637341925896389417564625128308461967106822242276382630323392076730383910289289616151890487177804028604000354632813436439519126179175646766164513616814561966280678596338416726117040117683574243979168068460908726011772684696897849583228300213153710304925459899489618571657422557205335575379430143155323310558006626521962260949988435918847069186031681899485168334171610752072414359038442782004653277970240894036084691108122684970433703414392642495875330525266214397196449760301546984400179300550480541873608298928624605407872260428051524958540556104211058540182711506270525873883402368134419550188339436451512765214026770843953150523525099937238964103807357516381670239831080267658169420818285503028371728897744251863798877582413120629291734261189391124386148637347438658106500506928862101070252247142412734510434009031351791829718325616905673874438225094367219394247907042053340111661289747450339376631353318360231891137372779048837547952689686557041989441264054832395925145129399809530447883013727243894734280726709305928882410917877925941894421726031971474781673890297248713706537198966163222325263621651259134709317018853848992907358306382823473131287521030029206441491692560464303654849025398398461566989620794058411624975385446105544514057556110045859146510984915510034923546979216927177929117104264142267805908481016299616114200539222925723117435379047895592507931719141513406187266129632577086416534317953621139629140212924869304400125887696064851951545402811438702355634647627991600977831593914194889572916842484232218202104844700450404652129880961727461221533216431820358260497664327972557518129652865065776429792267706620772029936398887545805621906261747433179340982670582386547612566265630775171322564300904511472604371139103221585471255018400977589276716374702844538044109184953614463028658040853668225508971915256392964959944481969900727579990693781663886820131424483179949085877601036304426759359789354094199147781643278326004590706753419523552988803477895322938058888097297629102163975415168075892469856786202483309392520522987530616508697387105573430343455198536140741190951142316161925116065372940086050633570503993319901096048650359672637655898226869253523394949521946155337144555193050017956891217641010580267726721498495102512148133350677870400883558227045995344499687137981107305646329889811057150728157218431758249932073317017935678877472607155643541828952172950932998436524504759074342941136888870065218639024914803815770641752200367340304794699795612134419843159020752186323858564737514244251036256131997014628770557452151864318545853455205635108065783897723861160205391546317759776135740818997369195967004479837664059189768460971917016268830019978293984631567473180349387391733548168107243570756650185691526817546846779616216089463688219448511994747770201257098613586744934433753719163397406061514227154333704427017893880475627826533722927380803139574066177613745232788083570991202573290134590442681362709312242954844495033920687204615577378552055963444618885908185452219642531533824582293694560282792480213340273585221336885384518158624805638380293281363042124794147106689957073029399566799818158143573912652454084605909733951441799494231670083521764836315851429213507995366639577803932519695658548766403314092159720806820650298130291415006784523590350775909721912558669750632611869653222787585708468434445081553913758392504091113494255172052175315132208312406987891898599359326376152042539447828007150667023884901744544785967250976850019780305124265422766562986820911953649820558003380168908126719334629606616402709498448685901756596220961077199212610570526444474514676653398630677708730989838284537096151323969360597697160631096818343056074290167530490144501944695563845163558971453527845348186361441422058247544647268097323238893708776949855193186540192259952339471719858658259229101268513103723552834170131441763357533191392439980008897195551652913447054447048451073198341782808481553369496022634768916250461648036149908264413615532036804673392547745022957219233387232772003049240103962721112148342990005932079300809309640939941198316868748129984929192489965948615351903780279263939936498747633954887948058405149950186582932571406437258152589262966464422926787531042207556462851982439518161643937549480133821203206539152015527162769294799920475091782253645346666291102272059124901753315027620102431360871163595281796266681984916150674518866103136053359123207628678770454644699984504666835962251274506023095664745754135959716734277947864800956664671979612029256533692492315221786713000323522944238476529749786857698089832345967281059287021772837692865646018981421219353154190365915799153765090954369133446701309121585241143378360817902771992154805090392345525033204436525214496650705068439514124898352068375067752788806758475774418316744349476111569838482392867380456750279159415617468361060253745470243079889819639702135593646372528691693408662657812761450707686995184866068305657806299503822045803006736780529743085307103456041913026289021598891104501792869980328713551522946450548015911437344392900249042052400630962803144317442549765962609710111164620245970740562041366255479910889320267260310441563084714628235635005604321208508764124564359055116557561284829372308794403415112017786725938895354610350619585161864388168917748120454070667654445549160233697116314810385348163596381690129961496043606745795426113886052991454630702938902921039304547465053640667333056209883192246079098690429537768453168644018677293143881521699363500178410355846556162635583958527659674085507634566645633666285248893501866255174493511525917822792200736236739761136945388127755746792247656968762182720101276513246274565197109900225674324308272698935395507886576344271642224596769243358155555794491182228844653539085128769887330685229742856261241914152028060613975747178953329240040262227392346235427000687391742194823013830322804850045249766243536459029559334504120462136975691756741555476064953924255354354838426369654354179019410919865523766480001785711926002695120232577827004423968767658611370413642295302513623242552379106642390728993983503073354999365351930635591746217268151467732014356796944242712563536716680687613355455207438222677229268243434466370601823277852990899934618095609625874094365124584389754948810688349354858833491489053519943514353029623278204260501320349910358867519242721557165569535890308002200377142155723270600432996123420441572659606172471834610456491196260378352159774225663379391749571921662264049026271054542639074899983333584658036384321267728987137572384613858123708930518444363382835960700477181879364494181851949834331108204759315958475887120131806239193253107857809164985306841240496205751028292385329206927953730534616576620360327433432432038745123097677417014726492113920186642930949318875002962517330095746033081303277939569601149859183526770436852262871295437802459869462550216730325384060860085447260102840822942281372004458750101355079012058350118247277151447432967512766322975313387415784786126235761741316120945312478920898045449835738397014549193759776195792587724816107931816232023856186878282975783971069530062561096452897587632983149067085811214905317456471703581084367551862216644551990043179535410535413805832456510720229603861696722786473198670570640693530217507247984130943789358638078912626621108341430185377312503380672015097362455758635574386155938545341610195151059751482898956804438827219049073848134223059393082639817592421895596406981543031554377284065935277525737268266946001956060376060801520174641797075106708486797109039379541302225730403243522628409217079704329823695945081157350141213736817194780429599455139243649149117608640067795173344547671749457925630252434275184578327302998018353710120262286257224191075387601381998153435673700585798806224007587988560739442102806527622070097928894043773645425785226159004039294297213857247871396638010095945992872057427837457833603386043955121498206798104656521774473371109530409389495144212894218703819371562490827467625737461226842367292558441869909446587596852898028044316019018335728147307968320753329493974430520149352030956401915953938864304954095962708565776133960543949763260268532278945283846894669643372288764044082789982523326208800513752111963850061525301203357429341356331607144570011026586268691676038339932017528482644489973218504095130306434436467967822536637679735084102420814199711880128899523191676464941158448300481920872682678946309993712713965406154609776817441675622478721747902299529293672967953279216846164424129025051231038549281838915435127368297234880596108507088971743721832565783593759174614137829306400510355863137828269248887946712636777417244245175863965317047326845297872649841425008567799447269905854639679553188391518866084191647370560595115373521635637216263559707106067405827881838630524036301582372287408916044245340133878841934259020207854157429488025225606641505549735170836635638575947657924111083704671134736171648991450881063192461337280516560008533541389266246437133293625982202433245561175904342735436104014919327010848399188932252051945323162804177209384411103218823017822920306562812660541707943144150902860324097481317183925700958624685166982117945964250878522930089920832188705458026152612202073621241018419695552052883200121936262267603227290912640730245420701834652758384197633903503152952798975032055521515699058671795401083556288104469069986634126486041919322053135835511576941758657778195461869928515547585729409940960705668901588234590090269830128464152122325512678976893602473891716455736392588334807484910305078512487987740820758662175141283146191832363242125444263327252646515092831125651342009523434476837442919209541946475903087730631041616953471862784481233923171167193568907210392769693773679083461015569379814263671954825973283020472221985936880487149032044557594171437461593558719001968736472255087442742810890313811285351254349279144866669623073208862800795347515914553154854255062433022339113172755376390062664477894701164666202077707972497098157865100668749761656480439792506877306518038967287680383088065110522959968702822565060522258077691994666372542234616620521536605976691837094002461700092559069799284713231112155495122693715550511557904002403419724960014461987297982390536432299278823973939646118560906297978494993719854560982048216404285779193261298568976310676478519856973053907051455380193573364771318395045867833629255014281034632640837860866783474490494730392872280976867494350552373270776141815389956566750652631886662490384654330314830093924814128989062888318452108623561345295240374177237940582181398999198508927101604530564467682483139770287222510523575583428594508651970492498299936551734858150241107354080661741114890902915899051045418727903756115745586029917959900264495366778037749109262929859529521246544657445502794641468778712009082242241824579139787416771803185288634780603437419747854963406216772687011750578144368954276183445433004862071762349607216164163224369021096284483906441997676449825408506321641910097593859274683947413236227972917492838184213902931023041271700584438742412490837067986456544847310538068426085361188306984880588395976416342729058284660097387690932281691980104055113897675414916107717511825459133007696349120441940716629217790034631461367589270230916718064625994813932893108057186731855339898763896123936206916735299203069877982366683364646045570555359355149732899374394213564997247110841979885227928686531206205243845224694461090367752258235221501237442195769881617726391900520553324250286911881619653977732319387470709082376315684661375320511710366326163341277953554111308903852357658279885540510449136893545699758086988407352343092320784198664810785371266824599353375405924606426755823409049558837479950639921408644496274400913777803536312022027187944570121763609149211259834359822142425665311271782907962551019907029572704198147145156777098484513884197663456847262651831030049105158524054823008600037875956847639128763140876691973783267003904335339236960934137554345199669314925722239758636971150064634948737074424846792593596840949261003173460968465801126707074528931388162012869527118593124809864096350043807689048729773079671392189147548753766322411298227306633342927672117907193987967319828773984972301060997339043122491057518192446249421415332071360536407741639463683163006322666185052897347053721713562153181970875410128509825876229304220408050055505469510322452775338582352302210829170711482446702254659018391534813164344042232592413944466462133761964681255117428277110182751551966215287566427614504180742199895225533892648431684765195499896377756966265672305794478597664712420848943109779985507567009003965913157282933019231987280343371480675005924308284373305408696052085996202410268589065319307231523150444817387882344146955637953767963430230275263039683788144396866937805483093677614430470508627492749787198353620703763888638660487181027015483621540633140257148675078030636416218511298493428387159503762874247582732663918863375530202631881194189788102554536678818556459886388380324535723824169801353305445394906163234924268031322897802045217295710915925926922584540574753646716881606324655501396973566708055349408301913897501931486543489811748789702456950676444860439848239643307610794844258525599970453557904143465568695013264695759724629626424380923749670344889211447481412483388112723292541101035114955480605831270060149230312805165980584483887964868364927852302460724572283253726508166712807563739667746002634794548636533290541271246331143378822704370393836913950764017465915686490702226593603446532893601810849617179948685612732316934899316886977980726905350473601139110971303139133955887615110799807421577725751783080900320164425789114965923473788925021257440168898207221262086676219275028306185602434748801210571750831477415066181807867815611863086249222785111046315794286988839039010292567099845787365426256094020739419319273178534680847163113132090123173983966916824795442568835045004311703598331968124981204181692597472368362803655733827943805535071699656166249022276213548723260724603566752750238636579032195786779647127551533217471870447390837743053789471126234298549545538356928744286379113549961765171110350792424811450203399071254069350980763233507896233063184354953055009206545277855883401514140766768087104973428527787964395752759143414548255420536596623547001439994813893136932584947598903705224560004415419248885618332937388364425379462043179913272678040003408503204142663554994357118511717358490150338382345822436092825702918093113452649286610056728986302747784581204170194685197352112452884424022498500772607332219327768245499051423334454792035172561631978643343155744922267851003621971102666614509627225110655031111591799029937970939387765546472786951063476973809463071118245630353571849525043511274561181681902788365271491919462774082934015230648058288480870003300596202138487926274565091819348089261414413120413688668789552680838588572527896400906193504105474902002498129696513196064483062599577878701657453714200480349994845942270121448442230952320489842740051271143211167004892198071384191247884652132748868847729052634698857010022640078828360189883647796932161955879257090054406711141308046708951834305389192081350512469680889328567815983712755481019070732736498229919198319470910363051253976071954996314932671341793027790572247366545356889504118210550716583742754230004392742367324023642480828485253791283328019281425472071034498048659943348552158555319602283610759113271346541138327277858489882773796829135704267136246360647986782875605150409486011424083972275530778457043201643364788725913158203659814501713309959823222224229746827158271502876740974329372375765874003659134550801463372899068114149998325744777484087582483402021222990549675111488133221445431694740122284156645602467600944951762476048364738609609864033272295152067960372501828456872594310864923824373886060289423582070544095159992098181449438701716804679203053089274033158594162795201819627005302768859182511940207025574437102088125759420939467710140239240319520526399041701696538527363541053875593596820045060717588481522186267749884090998776326750775441315414622483474192456788616676682944861870838917552485883602075076684910890326286532838880675326333127972019652166865071575301581677994820241164679838123024401698255581726881680227387264626066054413045054954380784851555557007596909642832434372070233901706710842365299042649720092600673124725851950762722453460517044512733808673821637817658756047843733744210606690380799187600355867095281759690660873088950659480097557023819338608313568055420217160824637292333223404759055278060602641056987056983213673652737079949108329860566814950737939837905147842391975497241841414173431981938924864023267208306902411930925423997157233484328610804566885602613400216704600722462389420753760512710507997854765308487693730587963350091898341152998835083442165092105222626878889874217372748528178540324297379722157793563935655509334348513486736819325143920823781525503100797053763729249399704252220147221603538970422060399103935638078749575306218071826895720025110844590580038421514281783580074285917672205224606741859331356080052066658458294023966745960547874289322443395631558872225736895228887617948215835294580057196599321380342505287769714265156357569591741961814263038740600391676428056424207885369467774572337491676523575298716897434111976525666850358961060193499321712955300809489045586348036719289982038677254077243152920200943291806133932820057918758655251318456125247799439127233995350014773920298269982189559425981572228558149568682682817026955148505233388521138027245809550548529903508653687570194520038398454116480168131544220574990009275982286262136423339231803111072562202706361920533485084297602067406203326876836887921414964322291850705802510972798275433875395511996218546464548634599779692254623092070643927731583061745938370321804307647459110780852691620915052441278776431197942024233990541347237802915478903958112028823483688841498254049775868018911538984459321303463162808531942718641211050918542316406454278597612528977666499538001892154312169757741496045602008493702642804873386245077513710841313453610236724752791626627503552843223109554961676077900334118280729427251634720986245957880045463492358366010937564664822502239278326914080161170156401963794534792293940505918416936399948263186650850643348434625405640706790910483563808187884978586188655858769555582405733028669182283926227109513102977883451732786475571596446730889564134427727483618823254238144490878346480229772358130250193458236797510595197786505969742569808708606460613948809502661770882695388272078458254857906902076693010597837835211996263994110758746876766662049799681217291181633384976956150119481476828815030147499288959948504104448330164081682251459877150254492780549531997548664832551869451680458468436501893851677614811737419382906966703538483827812794548401445740637612379065611956261854564610723835199642479052748858722457267836603407849119693254364535757242727319772755300579464468908419388059424570488275961913090582858594108607087759638432212397494533292894037803203598078527234593759045333232385253373311329632738433469807763020950487668405255412085485757388738249061511909553500263187847703258935265790824576584915306228777185677031402740728017086606073983389104228863589241498239070269244597464059184347797958693833549832791354216448837832112118530411607788839586569434224528758572303255671888456934247337142278517479711895238478433850055751335350791362969303166217404316160767322979341436550391396401587307233208225092434814412454951670568669042938062927037217147028436150066288005700772150604129352891206359553855268098307143869223646794594311225731848967125353311061370288206624896792723118199412289209163859554650488730572744102037488638722055395259647382314411160725949961125096369397250251629007911460568621398466638667176013174832078987436409602259611985826114090787871893971499187202089797157631674050874442333680589127874863128203666423817233757138914413304681616821889023702998431363649154223936308843073256331519668404902388136627776445439279189887274078286565965482652952974271736043737991608969834262346827508742024839955453293683176007317842591499508929097444881747767084847745143138051148355565766462225446472089630252113352836719767661362249168322799071469219792272304170939754196028429624656193910354819177520725502000890502762433489723096478996226073438286591345398760846228959251850402574442445396299259410494535819965511466627895671182459208625465543585604461826718067591631037203318022880130901707747710624159616957239659357429699511484763895714533261210918805927537284578991310415428279453409206381649037266892653003469050288613684797330420417307107039174784105168983023899043031156302327963851010359979875454440745331126710833787946323175541676637303160655214947067634864158984915644415821801953028112024179975192238325635954318836918054715840699763958226894560079958192395356541957297906364310827006772856178272933891684594079351517766796824883482089079248295799876962931170376952604364020611558121319233257251875083273751695956590828633968449053744479998157555882600505579105238184245353637114444941305176442942709560753262920157241627491216302605262252071318797465769822751765030030712882476801318674802391245236740696489443607647436950232915642185676305229225937956094118466242645234369762169672186061478232442513741121921950492663318695508068941571174885365120523117216392623862528211835304146647888174323079556953593023377931862829174535459583083992182432564365956618537078757497905136916002457626755691078297973671129674279469875176492230364818801474803569336424829692189538739820079603320997490764807655141229467315288181237186949449000195250008011780363373975747816231438974502582763076616120244319235405970774833179481457487352252621858345612147693798900739767919136730951116183937441292763056053291281124674047148349191843469412335499902396265451495109945982897234346696744381581143559468004448871707033948088580264005635623961638462294098080548136967147836163640834078220078906284943947597041770123328533542886602253073722760763225907729650387625173089654719053401704267385162009563307269267794781982689860978382704567618923492554106995493239367060830102315665778315393711481303542871173993969983124223114242964014278968782462973942314555260887863233821890480745345121004313046871845401227017671504453092523791897223980261407106649264251998150453965884165368056189069220057485705845176537407415171899839193298044351217583225830231870427093729787499334692561622805438308909523728833380123073878763648588255846522167626657793070075490163047218499277610073207030322289050949738052585467056598485484414018953306675979353177140179484259926888561816915219307534109793621604690224584918077406400185436718978260263950132912425220922034039471953609122726900975308455749340375740180794590806075587882352504823455348817907827567073307422516510288238892198680973803066856430747189075924995186184165785515085601362731299227432096878595104842845476900394348840425909126578655090598272532651532578639713411526811418435648090245658327708121178853451463735494350651130705540163708288149361014798408435890115538861209598832754231896006713040380092959327224360204728448274234825701245734680422607869735592505492116873325468128950502798943036395634595586973108191382552416750093940759051695242632844014503682647666378012346055472829870456726850542628128163079566070503622856866645557220514868520746762200342500190381542744329936608098753385099276357525906213712012581484065159561426508595766004803563898133134093934355283871119385934539495587773426280320440409992124115137576348129619719956577301810079075297655100883747293611967574082879872697325620895005046494005652540509296613365122442176507762903898824899026099392222499958630504169223335761402192435310082622385588431117497070388747294442943509307090964379540323138849351561682539661845621736958680395413953331280082982436974979122452773668053462661923772840413077190452182147559694601767614867618001492766800112657745681106256401103498013531075353894732586152148238886211013242135267800081061780064940224630886357509285823252411433903240017469197013608463992151155818070638743589607989479996048043337451154271092746368016113859271972312083694908751073691692456103427072388830746601774839520962385724393871923319624195604404201302678358804572926530842705750416298309523438646304033164200749539875557907883503958354086746086442139983746610760401835328680149169529404624821289355492257346379164564484676809698851124276155083478809772257165715628976529582897390133858558247221320663590651585760827012238879799299366195395389969115464818201874080077043163054386967281945931736160593104019571635299828039153366325282957490529059694063986562271362604319113791794903284568729762581864751646217093877249490616917264374454636458696133140694029613810202093708426179118300725252453374346407132846926436563193709135024614682762618094039037486751299492404709095482596515113830699398253855871986939202696748930954052439505617451393187721185095644672090787151145250392730306668935274255319162997371176660006852172770952709045798558130359018569787244692080975067453611384786270422532203446928019482664969510335411779655501964133069348240056190430794166856381815515180256541574053679672075289683420106003193717225689253560965061314367464844207569677719320446427322171670321647383748458809329268263152544927356469532297755206080762383493135612787034525227140910408040896432549872907351064503764494848807434318755683032913069101813685568361206186525937189757944638494381758858923353319563438914862714591317012627482848791823314639339638943423521878254740023175107140635994220522356948240045631819697035843193383972003510270605307403906311645358163242421378319386059428146740179176185742570310017130447820116184865183627671874459774548532173715559727947253013031129584397198808408839115165622419070947447179306632550748680967070867589352868299026081433630362109347046480043922154047286264486908163380143296215461071717944038855112701611903938369575127787006085435120371115810092021866878529091036982711083433134560486211240002807182458111195004374793798487929722314772534519179216414449322109418042265276790379676719468095790531774185452221939657516568678161116387999064471869658025664259948061067791611862419612319020690563263085110989632929448023793333161040020269220730507481866546223724711659542250772250961170449534573344004887420524786680825184863331632763604953489744817872348412784653189923598361317607759920294381487329636503736754962102343395752261513768773126377676077585013549793443144233805002277619415871179083022156905453546656307147811392250170320427969127035599460429333634740138986208979681498988502207600618258739335899069058838163288911640686056767933505561426281297874724327377528513368272453609223070442110235936426917007447836821177728372307186043982130246392774098293484444451252949467120025523751988923424305985999720645748700773999195561485537179507972465476556330539755804559688148982574648625562595910530716663446607530353307422282968728854434252735634664509809954664469718146082402442243538177061015361504959752406608831038639669597214719527899857953165142654365641220891601185799879466491381139591919617223148953228986753421720813522324137404118802541237342821799433541824509320060867777337946730127482539353081625904984232411650585447011446771860067996132724126225776918398505336127697588404180887289941491586044491182973754994462365408679424095448734425144185479491582321439450293190599238016584264678793425934182121687421015944757091142310549500803138800295379792720829584689442414731673038021597907595657018175664187568116405650522490419847389578707813693401304231339245331973525495588335104460563586873670233198211270507708716784403122446266746463874861956173962086790614814565868886773751697437217096221291782443667407665582196957577211501711294881329349551633485361696656709456440192169542902409303484465421038311345813771478979415773182835542489359458006277555248311418323826435477969992530033094637526412574761087508886644477131077530408440932351657580856222588357666031775920817743245323697407876200964231346419082358307280147491492866970193690413639574904127396930518669412879776855471969027796115300748205538818043412087761083685145112124899354669210938530339018623308516022309512327411008335195008887649362508509354201167927126407142357439553801063049082668193485881176260602152147612655574918028531821811950150443916897282232880178941325758115503233692414813703677698057006233436740095542686723995829700545824135128039425266285953170702821127773913738194435868305506713723571374010643356572089788074865905978775323333580594285780433456339210311147663966788267174588187613560771142438799587684728722855324446054315312086655525702831506087393490241391674320506633538333339465897088056320165887106805718684435884695887575055969045242743136843848793145745476344668428976118418452890400202799243538684970764587057060736151119412749152482533159042259308857973973570279950225658644610659301158547808415006455802393008477290992596623594904811758494047465523274483292538734407707389511803562902554966351286460134419033136110424872665000477902817558439176878759436178996324703262671203669105095319337374759737588936692308362863821839378289603975428650384429959723465836168281727138034084023048105090320427076140130976051477984271176473849159372916587282150142861390944993212441807989813446980061923771336466390999649281321905534657611694622700476928560102860587494269732397478168919467185179886255484833059129786173628463092824449977486291365699720079780171469946822422421727414904985918215829935645094439738098313607920185192430710936218909256861903835344915471545418247664292537784001542634935503728252975359829466382415141928454370415183954271141678277055456659106952421354923106109393725982844440941143813001356327649602294134060711661088981915717201595739478052013888277122659077717832869645519551972987189099992528017399834358257083958908266120097736730820029348804826630891128493435348711679436430243008915561621017729419424462949675750901758860115915607599255260672523028721123656008879100228898934303645084486630651911264948486746762932460853394917590428693187585472817273550438942844019174201759235977452997026355901807671192974033455466697578258654345851896771068912364982776311558693877428273856826108718221654755061525665694702054342307309932329722993220603710104404310969763415359903100618637493712616970061541144337171979435671737226937582733511294534972114098883363761126968998473992834907256874649955677887408337356702720616407759231369117846974424027893118135189200750937731267231587834545213967383381084197707488784675597739911179873762756101739124019850239835784284172073664110519664703871017637138569049935806027650086052752928319093098071316364241781204102630109846449516463428331863652231241419223458214146388408301593685995420933220991334584260767403176790494578294776320624155661809388621454028106661497044497207936458692674025962817104574873580490483415804014447818944951069153742848790459625621862935254198577609827797936862746305428423581739125502108852147281820266450467253519853423978182444991361254223228368692059010143437147045581378654256416575228413925821176017166549064116875450327253620441822749721803691253884286825597883321813502616868355205950463458153487206135186724036549997528421827687978747839666159445745903905001478821819079447235936820106890243938144507306199291896544671583573583590414160978833875206309944247270443649551070327726814241236095235171716985843265250142837428904211441853152685373896622481696880732384032250240033882990505709992322442564859267868046971271207210232593479835854374478811659199257021984585678225431950489817961166334590550434982533784431528501714265249485095814682211806289656425977598518835887969295284058924745494628712105764149882288113492840352047806957120546188384280755912844750412406809303981132053902874583411650165584767019391989827250454961514004097299379517698310534261585258916893142133124543753803775439914980981178699268327249181994270750552166721458672250387728122574179792289577920398545446251053648936683532828832584767185082821825560828856148395278265365577708172563159796119530750679236272219300650296870581887112243123920202153741298029097283106389103926788416090934023665511105532174641000659130941197267706100045776000136192269281940236944411034510207515110517654625795532415755570278571412700826155679897786332516621846703254645808740626769137767038057588471595160007116062901544301380074753184860339724494808235750274526803998755454669473343472833570241804894200457843238518771040312105011981991438802633160084693187218963388903893151672796549380114692498570140481310433549631987896824997778346934804696560815176217913120613495596502877616800213018430541108780379282339357191513790177407485587897850754441304181409741031166519602550898291149658375810186301497139802156356538987845842021954425717765170997980141154021376221210727887157308937925328843083917815044163985712883069576299321989238496696017982438727624996066986939558264843223679284916129250693217258507989131135184123009842860527223594536369626207105687314211141718080307439207536999871476199076582796723653749693035406977124139312309667625412742769546547127493247092714715544506910717067520250025144882208575967919466383302221922174432838480985642736439599025799757882203128455232897055088485671696985002695673189368014889608175582275321166484545897150216737344196253722891150866864468448828030698946243379545428917174379338940397449078412010675702674355690318324624798220224581949016318627116480086555437439871480168581127228383109008915864662421534302845069833095118359417414822390069863610650784396965449878554397472662340260432584849440736859046065154612617667982494534473327120154355477950428055743266471070250110010664603644956108322945525023752802710593773426485679192970248316383325585902162418063487944640460595986024595128983936260205356911749957205042867657177114906855216389813103310878390712941005628630457451723237693837440372094931989727388567366025639182734162431628254547829323093901327380314369018485602288784653144604543167913543212718439620960031078579650339375223742267300512012788222408095300895658859496464436247486358428843205397819845270071607221290248000987521302962664227567109428189311278802384266461236011549507456829503209495624417616779802667599348801793555730537421620265643861341583406457928168724039415974590459737633757229030365485962099633660498730327625942527015087625965375789769244425044641792498581529749215309653618569708267153247793002556117648134711960179872731475854764004927398677721979204528385906336059185252790962178933639271703311690748287956272177338949485938668313682786230243509514140161127461467750651315154675252214590114873356893394267909645451156895476856578807567277968380340124256441402671027901429883374756182911361567794386676681418077836779611886942301313090104456306803918680649459160658032629687886328110541811886397578070669124916916307811725555177787648616995949033527360933890338911739960191635252465251834094526021453612371321601762571627722481010317987303005740131733170258898811854669420664895137324240334694022958824539203751276196995211142412815584669800288558140249590668735010338150706039272822732739330717897447031012061458178112593704814259346108368066213199716120923515193122121148174146499656844849336569046981510181810093604367350202363022811339667227736002610692497406672274202650888463763133443420304406725121305485688289127098569508292199805763524791401771316589066976702224851768894272220443217188396953592756498960694177155592145892831945943052186734026378059757908194144374825912213434674826607711680063295181473727080461759519884772769365854830275583578807787154589321056254799136260125779761322859856710169430606280504355749134163817255410547980968650188426555670867402118406333942822633470873049009879221111179518133799861635819450682775487134981449276509725458081376125327249273382376030352098738954872431036786633807141989748084257853499810792094304676175173386643805314667821177433476131560238085398519015265235150619967277563306257761675062728201007471592553172855281296920086905144657080179787933045857381951898576755228729818759425579957274620616786868278892068485680347281166917857455049000712883237848633652707245471423260925020229734375444257290540219229741173373245459874152431356787181263807085735899746054777982679982025954507766083625052782005009266045218820599585199220371059675869813808547270925941321559526109291811435920683825083716199517932603989832763224429556063589857731009153661547787126099605087195728638628572076501352157842728477752237940328744267202133726251971048609929557823328515494265071865569956841253208075777352207251734514661668139640047730189601246120436932097805818131211728643523558430330212881949398578159223487368153338054475874529736453741237733129581833355520883752854403730006352609122531942648112662846893942185276317662426139926485499704591870919697647385649649727364073941774937238027863097437876740996010381397510914017416921978157037589658114595043996553699194016673372864403496340338899717934690920802132641511184248515960990883396444961453949874081377024535275323536981036071089009022169097770343949427458939309192691519169694974331197084305872755899019922402058745687124149280272996515750887104407512131427948488310732448864255977908095084863423321333307178517547371599108142459810332454853284628694798207327162941999387920731969835739363836207623141710502680435126970781865752624121263279075878997597771016568179477285239609697950534580816066060696694582827768130628691740831965392868129883367975134894144768889124923259386816872872124838125173855529937836603851125842107750655987282006570905000715967707707467503249276315175902757580578517929349214478594189871180953920963985272016696987755382108710881126554728130293969268761204679049081189059920312035034336802171939455270473241801198059448941099923220147125074198276188292155690179403613927153137244935224682463297275201268464731453973597747484207587282570726111727524397886327171414222842539265527840640455446344967998526605848965948625247247687609046837090466700639059436568647734411193464064979208841022209706986317153690354745662539709365036059245072496191031346912982826109219502781393531378055532038240339149191598722910664915556996152416548532710887672979038482933702813812194260970513442907208167554755201892150345601915413932084516323609215452733422442447651560173252218697953530944636491245164592267130349941648831842444152901466755641091406078875110077487550963636628448552031960723884542798300959329117651289097923364692833093077892874787942496825070649375789159904386621499306593552380190338416181403684820371327240662510098924400687023791689638439862307030024630698149655771819840340561293544741930854876755311190722752087784130848278335042466187147988469193080869841522343655549842848006965033136879188094444177328338655547575725949432992380955405415348809470688501923216633137854700646562889506719336508428631213674484463715344277835779006631855162885376007256341692814740238721579791341182931055398357923894031379550767548647855069562104103828051121488321857887522466163382958948488442069853738691865411462237254157530638455858309728659803249313447982218349245638482504490775152354309113220590391585391416586830199647127900649026712382400492303551002878135599947238082503330040987936586600063468025716318297013249752761764469453877482222173632579813991936392140594224458712664359930544828665181405311568728465294811782087544511729322454706163014698016264903199818951350001248754622706191290607632636663910509117024301656147809898844189476846242798537738996297758019824150020676604576486714487906369230591463218513242631007630704742542008335348793049014457876364131289079545825196782460275500944735359501421520192377086387167681045820688654026148390911400945989449218227182381351303227870696945708798257457093855313582334655494055776331716066566503658013249429156921435807704012393473014190241967210602422949396678855632780272669602973576500097690345142821240804412831090944342014408331666300014788330006208119021098635784501013613437848460793501397412675274854651784770182147546597672948192502471891787983792677146318869482815092868969499187781167005136074564861054623548108658387269743734509331636290620429420478257708666676619092038637907372839395583899441980143470511756943316165581008788276021425956509272775626078804044778868517609258904018538334834334983740608380965540034602175404332392816834681316352152496870507800602066011478282133278982231726417539874840915920933482815929649119559067728704407438579425652548254700695378127474558828082107482080730780052740453658052910542456976821751744558578525393059077283586712763496476489429529839719750666999716837198430503165540364548496991787262778245973907515850291023787734948461621602486300737407746107223753044405190530508772942542618132255384051191626079902240745130827544663220440697968481857240515919225503909860430850375796836946705314390972052646324633510569116356485031844862126061412522366534876803129225069461025643486135664345778569942866002173873641241918314344392879617025849317212301769414007832497105254855360509794766607205518461628892185475393270095536966331602546661399317326145255822569966481859639439913368399221667315564061251875843761474741810574882623438186171882432792315602056661976491697976801264814180404799512342557997610376043977521618214684411219757854189006743426253383552849472335386427772524885651159082265945621665282684818868512586385926135230861764667737394470410987752089468419078366893668406952312267192036480522266612954748463010544960984642617908476820287387564065595313976529624621538391581449563842041274732447837515658862141405078657768943766961702652858621884893598284234032068516814065023379468444594577065957536280578859633122891200751878312569117215230658265370716709044440797804103308551584349373418692887043680374977813710231956879553426985099727102303694843029278448649492715113582222862386760227100024157845367034588329975903040016260370480658652633051589148682709242053079693810810479095183201493465911541621989125515308056641192587647943450976656803726982348477481419669022047079406677002476968644336061101802971691678671901233089485322451711340067023672719021169923443909302245090166563729144050439730201270254825766364563654309579595993523263954882648973291569165402791109033462438224200751071587743579469613347849465768963382967705971781787076936275853670885867838603274116266442133609139936053915182659331719161883177208235331990793515464192883124140366593401989366198703958966830984647075010340391853270352228429652321681673588175247168130023155221779443841966735782512135162400713516624437887579054577115124014514457708604089411169560795126101810310553109517868787983175155293359369790879141243624525998139815645356752882046289497016467487581601965694107532633080656573209268690865787330838444185358621943959342665993111340527492745316078859209268063755080426618919143797842069618460843723313451151420196087728012600087249680406156095379984748547364323092947813924542819964289369840895784745498351194621853187556284899037996903602689789600979113851120948943361342928560096759275014767741076723648231489375049489443989712810610095745543697546408043064341285615570347654743980365256296088435462510224913940487794086226224478977121355010760914260091885646121431757238717348651388108080223073574544613455353424480451583970765156857549564251957974680298548941569361213164640913989264296615608508031783043453486026687191442076075437262466208041350485423369799279615180883770832510896644828554180820596110717845521413537990583651283235765827340424852816912984803376960845081128076895562659965858918234739377825888376284823227583412494569143883645240718883856667871974427762207636618055170182309208777851391643275178713828672372710906567445280198456933118792631590318530630355183082118368619649489976447847222109933607875537892032688731288524109497332162674106749769995658327753356535963761841355134978505985289397858626302549410090526297583730110455900231981545089785032205838926855371517755720161423007939121855873384805154197296157483384436703764103002144857903449531880205514026072555764406446657933016449121052564801262271094533037220575422740630630305621824546415845454882463252855958483987533988833084788387125794626708113037559497642669406586021181224555504559588924221921521518874999263938504184970517705504702405754860316721729503850814459147082848584434532617399666287066729457351980301742239864875392618669504431086249282292163889695570622398249391889338211970286172002052824504823958225978703182282257815465803583808070327683928180937716873549603151992338569642386479652429437719433549435814158460809833396568432559724420936400278873948395122254482076615241083219241608179836272862858242086310675746489433894160236233573683945372065231879661433711774784793742122420288166815141182126841281915443653187217896120988123012010089118407108311758872644081777039469115445068300120907397868605995446754981498285174385441204562171071911471221633209788617234758770569725113557628571925893264684653684990140860820990991643102092401692206236729185928372718933498671261781901851264634760627013417536704019482332120515880816077845857465883359869335689232526853626614105412948959731416029834959485660566334569541157993231491284787016593091582643770489446343247689872247593752469496002066365511477922744335728915206097793960659322906110203599194995628365516359922234605676312489017780644781630837669126483991454256137295453571763185977577941202969255161551082335923424871629936246557580029194742410135810287660396659001397952664687544448592266476270982414688882053475034211783731722612072944248448351117049362627301034210053357533492427945208002700692818182965065867050664282655142531347342510621709989905395211554683995146816571730198950582676886157680080262336445396603775763933654773203461399766758323031151225372409328446233890543155748090389298769985374989763319371384086743779845672437643079856802908264335339584229012751691772843295221101681602119328614544259147657888248094212061507387196679009715512983776435709499889818338472827820540022704656685262240626112943175741466914474131841647350503165696744504775541460576148897669752018273186091399565453271916735904393961212463974359663590670024831997032650619560804232439225017448379721895294655855993694275503631598697366656671632500508827010473170942397698969720301654114955117190714611951649140585876960608672873621646751095824878570727496159879782612935571197056706707785984482897084851319912204576828328467698382700087352998970386172170337046269507486679715139238660841851660911928872264794110190704712503016916190716963315537689922828689865973506377119386715264308657313097848624450130523876724902981282390525597277963218927426608616305069203307007529543731176901190988968167062650491889268606591056545696704878260930252294608371368123970405604232505363862475449378708047372389913601056567998178870164911081611093010678965750859800560740690706960035824835269328563576649942428946088505422517809378759093670899586257492568263067955843313071136158338274789156046538671829056148228092595769897440863170456972084918241837559253552963109233254602621528933945208530565949538223814559311981258064878899798725676583279891276050867042483185631768616971970076553268749754323606848644123799295049019561257960369864835344678814611622112875662644637641667516384382602295175735977887448000375738640083378074561210945425312883111327785002272694919986132093754955262460649116802410232725051160169590287946014751890226932376082111893290669690717841638272673465046940750821909734098937829561328245916048317576363098470545293778283526242176746411488105957864959221531610676817861467844050160747854582470916028234566040203794518097653688662657920411265833393226612379363466383752733173796344795375638200136512895764560393458989944135882035686744383816875613891482759026755472705913811438109256724166765772898013477258918389661913540585351143965403302727245849010107560216916798436615761405806242716669149076445420239904287481623193646773604022743480682829126402465206137304845072422733115845173657432480379094580391279119333931301130541124129192766401369837014162592380581671618255714234379879548353468186192112556531598205123787764548464154109167005096774914232382454965449804084605989187292152982722868235809341147594563332815820283173716599902587114498749174505436499899047110532197416489814351353554993053362481332464245994993441660971461079037592789137934243107919568124712105157800922065865069062332176422177007435916594728311752315918286535686171644280244653342669807702514988623661729813648393777892684414958837895476115427316803723147034368770992172579431416740092690855898452295637962424394596854859202782985022363964807333629268970280712803680123051219805667887308594446632965055058228047573487570820790868384319851014547783255167170497863883352094325411743653062926660515999734561953823382246260663850434427939654468068238124186953730773509836621594902370180156103608739096333139108809090325463392445868517912310071752941030797564381029411622811531172601027466296011346567828403500555867011858576531799388005684009931856139797031502880798384539464206246704157814486535169770033777687252714737295996656480994332277664826614453074350003579160344654526117861612105229523946233564725187768089315807675466913477786169636663266122273631016422202698957626029961874906461510272487821872237853570984054598839366325083507383239933560176772373103791287294891484996584632222663041392351429095368696916587632618409756300782923661985947117176408783320253925656430305051044712303221809356668691173224274832706774530095775821753639909024442306863502312309688912045332273855096045514954767690043091058680776702159365962450715387094267032486178795443758467925423655390518867412303405755938538322068275481668505294357163712024011661733797915229545635230294515896585471834235972297655764039852401047867903232220368622810151659908269652548459935155929596311501329570932659247503836374057430543525719622479353634603124283943406483364416473277848768391968755540589873801940657291960617287173297824526066127114561231780427745306647566791661453290052188524593291394056084124047147213246589369736072770508775818294585150840614595487709460837705675326267775362010916975272716389979259603934024122973500260640373373076078880643414891596939823524788836696572557833463053887003901487618572461739448194746466820261403147373867546207839824296375778375925769173851046360769302132614687334884772495240299580747259068849043526111229172520664633767506259809088478558338317582193837762732336431134261261416472433608600234875585485615489712785635945826676250988269086770599241360361457227056835476105711219668173565368697566285378588082897008020060783421350855921336862149870671315492579417409588545753649765746137793962670070466051607659294386635360817599354278373587876457916074020586886182015710880549108092496751412737310984504850571360355097657960294612293827642579650982651059322546315794214466399568295037312595698656702880903835595005439540835992991393992412839641267690441387544894655872377640332133558168427452244959883821090762187394733828972272086230571078522064004942174877380433946521067026476709605941336053666635260802198367530133104295281815445191742387010959455542322893733038388521375621133734314965994061390190715957898720243253772040040471857508740815224932781080483303324111409353865077450099968413798764691006109631358208283790605198118907551985523142772468649564419123586643884678102216544534889785664303798684795131303682051882096403628797544385428814372540999994176535519328250260347103251484225127643128514925314419453209136297279502415826457188035079161692214435262006327973778899546733823868185068968535584089315612627000052350211894321613091593260697250288838094668203900185824171130505558615326641221382915629769785786324239247437770517442952367837624405078761218158330098691431280432877338172828513684435279403121267886941706986134068283551944237414597608959193789427338091432655800641485428405365856030918367853833046112785719602166160612438125428144615811867506372421971748438713926588241664603310454027403506517213651543466677380571570713449690689392599508688871006297210001702176053523621124367905962776972425653066509890781073860386339063149074101772944778677063118298638351298308375675966199430580931558686713736178911158976438545123490462710439837849919778238680060399213105345127135004335488668824790568119716371916309159604011818843212151393558295507616980587371437237920771247126963822729630864993030757695882672928014771105483560778230858442023041873575354785592393699727744401721885370820207944274227988098285727068964160477767645696165525621221398621751345330145352011688425905724273855185388043365379271927973945601015223849764017375432170118939391453014361495867227230319623995362366801309557023650710230691749261975058168305449018267710638302898596700263413592348584024515932856924325699230362609227050340081949343863246535848295699362952569228009393784279090276999493369906099855180628430675554761735874431050466465009039973769205844790021617133235395451578672008751445543107858686283554881485231897971404587998193668189621131634379067413595376039161499876413132461838345770020738824476312883110919135562694398468400640166623060049243774848850066190800876430242871214292887693299361891597016054026815988741437143873776538710146185022745440014508816058601727030136246978592554204746397507042504909342885765793099212266810062560339912350275916916991676101237248751572340957652606043446949410844227245633356464004620325052642085675523326658609932321191963981271047710886851193862397412610365806362961384848246342277658130624710511953786236131375652863619104673174650133008007210863556719252008142483262663069482637829692933510616226828330631543655400376411430937324873791781338984472881821348776694618540401040990601929496923195528422696945675298934654492151937778788786750379135787116142331438876132511243691988847065307480512332566067011405252876669811256949528519737680008060552012973405224595862461335364617913492019930138687313033848962544017516733954888076210370833246659179509590579255081532550006735316257884265590005634841971126732861504367155964109910345166808925923039261007742574944507172011022317797312246575031467486285761244642342791971300143904932647023227094641158572749976781207835632793149590428956813291058666856526031754538916960868277596472905113906997326168155958302939708741618123585754541986659872791865724069432053112375741336203326755303023643041991344243745630720924192684103575603593297757288545739497162951863859189919481105827042619241535013144261987734853713045727008727716726030681256085313834893661209387056878953026508715164324552995249965258572339655455563888312635937177091536481669273602183166729033157910147915104220481517922537127964975695257720379190537361794943096626363479776931068204867074085340962205477864802433254765760350090101145420913210330872337943151489936658255563002254001856220773548750143776517737511396591546136938497643743055759007053151843821681629025633508541254665780762361225284742986885251547605782657388381356728744010487832735235861255902727761180603162995305399863236068284555336627920211202004154107623022921235015264218896305966550929660894738620461053053214902877646703052316486123488786769077666391541538636674966631659669045265520055525121112067805847300982425624143541151740476697453542438759834322180769397411440247556201897184320400767318358014067689938805201551478322782545238086334321315721423008985290663550689121169124135624160250132391812279667317082250535191925354860681500773776729382130338577401515871806124873579731211185805952008968447392318873966569976585882361571184046076472382132361284401354722319435972941941652604764171299567014462533173225052722727639775664393967530025155061283587356143684481335972869292769507390323681522521506092339066050457554382052985737888995732641506700326009427740412506938732277602688132110781257624287427280858856384796779093540648500692273163923590013794262055404215054749995539826192160081370265991122978366600512841271775250240505525535608439891946681189109242145395342997874903287220571864516263882939100961674103957460186965376155008718525531135780392212248312074973363409530136792018400825524601493145621196450773586088802744215518372153333050840815715938488177952911911536578026256161459777632935476637100620277221870015340055652836843858267791859937011230990029504195413535459342891893061853118984106257698395808695304493731670711494299161027252185958409107090017889032943800528401969238591336718192391628257597045930917801742954650249317172439261519327306429256042855453851155044853147743758483522144871470654218248363617923180942270698635478613771390624114046156861375780347870905626860384246914956932270039229924724432158117155514275554345786687930680580673664733788948187370570639598207238876151443817837548257364811663811248796146212752482857318133601246124607572775090933911139190448178656104885203862617951461076722814167883994614813057926855066564480407200933928089544096181864712456738274690610865694748793681366674376409663647823776691399618767252282008940022284414196423112890382800157617311424054566719046711429510630560811312203872319834944730306633556013622704761260801554617014867817295990889183276762119817950843383928195300687325134415229863601255820570251547563573450710752262167606653769171161075144605633627918667280447617231146271480080067057140179223173358958560435400018470671403863394537971788493272275914787878783583636855236498854339301944156841140293143156359917545994886408236089731015468336931957016544742473444042386145165666226907262815624920092469008873538807963864552911425541249595246583785835849593577989802550647347732448579256169695956640153988232919607521832804570612803498647059581282189695277980264404859689577672465367118749639058538096831697365245200343348991034390566714534020463408523503963567001485652009176013230839942852255798825211905500251712728168014575492659388818055141988090173827919790642154136447272332628888844508547126507160829401121019210143942613580451659659657807015867544763675302910874071394872240026025494560410357773460036057460628251673616140046132593003054808024195928591476682985176644515709140927523879460739074702361755897750499759281558575277212984202936809501620465057360132706292666872570599986207323251227716976240634426425275567497076395630922991270570602736536977636645225123726278592931455824947745459079168563511439237917522262316196906707190434681975526971179965458792854349990663742140095765637462887587602228055134564503133783619005567135633064432004721202907417348867285228007894660272436309471462189121166606844543632879865512107955099901283901198669596616690939386174890666056865922932926317744821550874399865986338930699805205630535681684945913254797122416234498500050790787533196749101873129489377076366817846380715897702055175133169532769781867620054936785135520677049679795829765108204394005145235270596980339540508950420388973768223357818622381636519200940493078300959988918466300903690965347069401309519090448618113092475568769973667097027010164206322146180755146509362139186210998817502223970501478096862719025630154069491073113226061521377866348212994084937211065467509896411680632695562800865748444000555117355347819435809292579643694928214237732855740898667631454851688402894370520833790921554251887066417254898844916636546828032832042595521473757950022407958172426842208518943619092493678471971270073996446359270638020135534663293140785492178515803216256345260010290752567081768741246418280668099752148425861142178542889930357328419328899783459735097989510566493763060832933997227099049818099199979269855148356624243350256442064992216227535984423903580037508017157427233668275787290335706459866734337330986523747649262156159856157556710074931856080090525339557956424198030261260400204148310886054072396314012369971206250961989144185281508395205374606070169526338898672170168391141804142625492051241897746778261037401113241652644280717798018965486341829593842191361177145438019641317166828741280076981896487647801360569041316863120362713718746799163352186821676924590549743288734652119401037753389174673266022019315223888187368140832341958785911549830470774508687724554776606689317295037744520987944410903304431119352793957597804309225849090390842129800594922718406257427223445570323503144398288451658941787741979314711073085705930148260902373769665165267539005310850914712150124049937316929130437606412131503992446281656087237560146252610522758148615466155247825487356421088353606962832614795572279548590379278878396936359851672851477856406651838664259972474989773343630914869632315966240708989587042584071120057157684716076199832696323890233359019837357780821306137641298972622734159388104674674938517629570290065590476249798747810218770673748081802828825342931559091534825335439122224376733870797950600608255526193730817227864881712606061541610707345094735054862962747588931084063790064355941815329072217267320145395409666886083906175121788966671336160692177553266347423954951883973403383220784891910644299552014188438623679427438234090795423286500691618940645863626997632835257690972307287635913773542713016773221397209691257359667977632352550249180677607020183006527933650131667887650886226198364620595924763143658095221434813621221890164149865496657894371613265314956327012915814773690837120254790916635390302839799141870044532115729150530098467010805273538203214461702042284228849707513400026456284416783821398093751225510314829172534653237873654766484145761920047305960900178444918480401983499955862483091482167032948394046606299740374282944828683520472177522029267540321977897361475845388103652771051587172909535859732031499733185739573215061282003217704427666034410096181087152893200142533211879885620278667873372449260799726036817315853380778984672117132333004328177756877128669484762088382414086273931392788310105675176697686511991422172554963150593498574613063631598517396812383042852964947195538611160467941932694420043881514930839250754514395489562830917859121396894554850845695340719376439745054430071347050747139203452188315491064551140816079187141703322690023016571200975790707361508012604585254586258648521817199367403771833240503229061041509417202565233442254504335134744761466968155788517907033130851563389901945866258815476123753345418864953810907637882273676277665954406166670179169192086994057080161213664680146791522941966664063256004276175997648533609754119523199428094051309215495712259771335478056098569395862956518630206273850031930623807135823653101601761423278810592217652867632716996181176657067053976769257613620628512185343224240396514133596440755872537797970021959462570577534427341996702697129414961171953826791552863951951917221930799407739252209651589591720831132452097017837675317150481136966072977780784968639687517160801174965689032461863481016127139706338336592996800476858829838789264363278943251276876279234260088312626081405072932545521687344803099717444753874881924178640959210576211537452722248210215819740436067020068235133265275815278234074386863831742113296215110580810645762978315322173252944965337294141623580479145560301200875358048646899214602436402098582847196224138813690349433200156702813045592993220078911968640872099231576390267511550546515641755492596573634944766330070224080817521879993797715328221002208868577670435875501933690140770048167744403489589579278933527177528029739253677219676341445497553840575096788871889614015113462692728137480636826682770913288892665726376613395994014190209177812650014282009161007765850696511873770509502618638239008319472682196091149527040798283935793048401647998826679631568915973382245566162254934826916138835404128775074683344156174533386437014683457837956809013216889772400793631663706220788090283423762304338843972537368231394685433776438124579371626355583323795482616780013874713566919488999427072970908149510639987659543184976402542655382671242360062679513378969146940236300694829302916239392174742477658302177202653366459172944200053331866548023512292133729501741816512626618736939195144037272305009379855283513416228155440509325937488994971402213088602365177749135773587148693066462946786676475928591251257265508393319780354349281097980641474072053267888142645557646989370465277500048365819788303404289408087282176846579056659943405669592882203604524839004306075161217059602004209486178347548218222592876315528673783700066828004678139816733995893064602181687199860316604953410246042690362719203123026254104015874603803005292357824576312004418148809594391355563217306471056660977145503451842768420592511870343301603936627661646953176236105736120725555070926807340417412124976274865783173079150670927311603291459783339893718098039416730348526078450823008558234780453420101669377112856665952877204592395904453973265061247491753982848393424010390339968451492865951489614509475415948656604902321843000874947853894035049098163884413725235429106274836882995538177692036888064330462553879490191673279038288243697476334284539278908747264622651601641729253178264326354109395436865254831953027544015759099764591511914064661036052724001807491621181816569669536083894548582367457570669213394750003266370580180732911891251062327570868003449290764762349622647958434551033539390518647496971643459953613857886753177257028504598313198736766756489646019021139857472526401271174891944712509521055307354285030746779137474792317893340485572881063638947618405163008079707966109859180910035608224652522993568001936127131129011017188339737317934614201165558831089643428371493609915108998273920348262771168026071636201590824959466749487303172006153074074683095153585991392253243299232811516406999387952797731946442658346705677786958812753773241112947892392938199884798605346478749659382519579352296875107318984540084604885086255556051438004799067616384717012549532319215105996687338009767162773264226250679890585707770065112830523464536960712421504579162783172935900756601178092991577004339944197919259839606122380456452623850238993691555575251018063819809465996362783594530109631769377870693443053254959259670356317804690138995718163024483307275835840436684066088256817315994039439428298196968836584329288119360025705436326110860425191802823847585633700967174874070504568397001546931060717371677072284932564468378144466420575055203716239277925144988019637601046882802311293168019115256122900469892171428351658151573296918603140385936740684053460439444037423652068012475176911990439600484000014794812812583317365289095096521913128442419347239790086675071760851368847674924927285327446300327190756452298726984379157007187498379407231992495439232134426722088094643842421911083789263493872550963111943315580793767470233363509979246640542640228861833421663629670709205292778602940692534849369590208301652494357919015536028403938137256254282084595435498590161051079377969158837698724182307958854099907018612912208894931754696134366757740368870969572812454463007975930050644378515877551697758562568031027633205652542987933103430988149417877329201990603643918673427530096086801163804258162613019944707643567423270891390650729842514893633231959453483342804355032656307204107748650393455313370509373332022135152657507806782895356899720466796215476158885115313433456399714962718632943057198989332767085631737761296228514536478889355524086154100999165258645773781158775723479788457840577155269640337476177629248838136663151488400374079927310245042008401676487917193559322763624798478993308201408927835117453581002475872097257564387347961878920858985702603987072123756775071860749519710848473643541115028777838465007546962716423910663352571293776087084401768384611577336092725187308856591378383560458126638531802269602521301544628688142444185396300103293386589901569110772595191216997414514511538043892479309745696151590789957098868792283149813409952018817346707700832706392123696211276322788977046355476222606539442469322088562421649489553620285326208228411523616615384113575307448679027694758627625366358719047422906812754548121595475328445934767027171514515433698546366982897458641653607534200172676426650512358151385827505717015639764424056485916820377469093122464525576760511769170427517918663993035371918150081843101339233109882228643987079479340881107061054796463871403252169279718634309658310312050036925361231175950626783537849226316090243359420427326288883414445604421426311634997164268913115890902384892228353736497460545505753300357750941254881686800210858513639957271845152736384708751691318505392650639154054530612557151830438528397112939003834413519688033456558329656245782032903545056007328657387942892243081117880849098669056443485387312822954671324115606379666490461912996823798285219075729767814766314629270892121179843131955291007172100455126519462578575314714142315486748433690740460745703168961872048466296534832930269840855695930554632637631677604834251572997170617520893626596863861316837858964748472388922078879918729766152940695243026937131479050092579201010855136020018809576229898510367062862661075206416282933887119911465149792605713708004168142033228068052027897617884583802459584803964620483804101724849223117849214677065319551738571963992668717508658638357165380276039726166209350232663114774880434416527147926179703875944011897049962518295214149355354871958334742032634139082058705937541752662715152439334546743103275879609861659423664432112262827791149948421598393675254520784972156474789017616077376803545086323550361272567693334741975194698938028860053816219198944605253654085111536354530117557689178518250145293318444024060068775616057339605753611862850586478036061046610202491906860985126550778282320489367807197870440239543383339544652972648928775135607542274892506746809524008206651319225979319186492695424753609349353526994561859814278552010938618020949075490512255615020292257176422881293385072636617465855383755334995238027525567189216393762560876288888497037602623294603921228787321226815090712121912670934780553227585992020240026645495380781421419693419650543134850456135538215753871558400735142096854157100351484673886478208530081040406545685645436864094062837164166950761249201923395669542181883444468595081505122851421543691198036520266376793458657700709322337629163416850854581425991767931909764411020396790573065959454428814321197216141839222717726706107759951955242654131807995336838319775807405733113828031996176399202100390005653176931163678339092576450183457142259405436911039634991580954956556585928447060596723805263228923338043806538315773895361204898621683443987478362768675030166864214681005643100455347576723115784073577057246323636992226381644188371004170510200275734819133366761546376454318424682757009875613605606508544475986102947909851541305143867482380790096367092712205658845706279760644773555420820322004416732345531553994958564186098170738531290363975510381094138774061322587118726378266668195110941166500361201888883947256489649687071262652905876778153204009735330276417903860493475224652763091417427796232439596315609081405290944522153052746942530167962442507944971763043516594763552987488836886770629880859534317156041256788963641672478845150390446205314427875382773770948369136245319406347637043065940678190573765590530874612994877446120110845383592648569069627460614789977245142865770118136588066003869224233427234969425809940168076579185929763710751023136630812274389856918049087136206952814881464924134779974215485720254228917394823022230700865235291825998628710785570792553410789701868777333582263061363201691269984608448367508639797383415755246575327681809966929518471000305574058624750013785766631722594231390343177083669624319006817673038260723978887497142915797207403935285152991080090258230461823607133688841140340260257389878831100771235369712907131524823421989502516259681573129983108852254634003525738358234553201159172757807343855370198533503540270356451117298200056145853322248182762092116960567985964014132530787110166053640369237173238848331565707736545883341765272433785487759289431729571040472673548959170084549686955031413829247700856570547581678032878069655655051820010555567844135861508283495300181815089217128472644927169676025550951491500150658658282134335129292178118293546734641452379803549787406799103590000559549485230003227047975167319066881347315375707518923656248655464618038171375069965615581837780306639477019736331232785463211722411747213094430285429287490192525777217860495843820800981002448871169940852999137425279369895342181873423626803216111216342339279636935386420879257568256327991049124859006793100208205592124591937930324227125246804079191905658133973266294767844399036500703576575426624551523002398047337419658929404292353885721858911787842639652190663931828893895391787672387327589309487577771504278054474127837662659713477552687943165115667882859000682833532221006101435704180628517099945968074905739551961485376092162058752864748883405565201489184302285464383123784748136943733167825115598747038738953492454983884259364548879666161767097150987612527011515419855316375767744190469550912498525222215716880739061595969807915327289941311756935955741512199115606126811350045451483662463984767217406463076250701016966945030693901460899392027586148867345078418645451212433681685876152643375079445081405627262187631829034036812270905261626835120710030469487636527796920959388749364766404098744213169923227799786074415360928056034064360135617789996108934999576989285340036582790658588408574090545107635164279734739002816396083677906166004444659596896114089574750429938370553739285003701442821107412386892068048617829598118651303203033634314892355383077660388326258810348853309330637292727499599058837195304104042395125410296491350635243686933250542130924639290691904309051875339934159102168767064101351370275893226876078723543968905012486747665635509877995650885964100886567287809580375986673571486685083762643721819431884802763462418197564204263844847717215960096309333171431756067574613228553458780088802084740196094570462058257988403755544246194121046435903805423682745784318636305080543368738614550120365492117096777823142508909578580428076040608796750792545166239894085725486808841258028250693254827910674192584071004623338065530435338564870681692117902176048575780620405684557338629656035887035502905067544069460400963705353383998624119617337307737859183158841033155366383219976508429597746482143423534124424765944453587847185774267954076379007669124416370931699057798245826912237136575746080181404772766983283805557331789244849873849422613678981394779969683048696414334472161931168226205549094242657461209991716656380521601521366080997719669069304794995717818937917943767441203610282727420337427534006953437074499010188623148918254775929074022260318887247251417208739710021571615276080023251921750191248697557462658539849949926885780119833567120783795460305921728061982754517696867066869419210953933025794354037538158726544029824526652971175839767680420901711622839308148817947451716370334409516783037303316721902016501714838099290923555246658828568168380914920714454728821338916355241601874350104376425497234322338701591487784649831606618660978617437686548707224057448310957543836466785508129846891217934091784261209794930175096266777982276689416526789665374018522626486212790385421689750704104454756718234329973770399503604245124202649765750293943474209039609923367690444055215454590395954426435275931606681583595469337994666940045685051059633200441909830363942415785185589866507551282990725034260255590773368760492014876427969730256056185007973099085549752263183446446199614708092272691992040137229620333344127746214166342507269624174213896016890475766265074559761705572586192032249995085549321297382177023801289222879736411630529860687403625088874855444447473894215999554047514707856863504973930607665619393515055499399984971066917908003183030446650688795200749151407166098292779978645444498487065924137236555311256161048802302118040317849330347738994889301943082289750404165618640707585196887375434684492593846872499097008836637475232816032744424927920938812502404461291814305517460931478361293637625864531330438030798444406133371840416227834911172601623202407555807175010257240703427406411598151631724954790276283039145047405271131715848851606959360450057237006108746132085904403553755433222520542639876612257251333625528996560260111515010240117208570399104548015453364799965981923148728009642738054864220650606862118854581466317392143091315097090323997833859708253858961404122695269682193746441300177983214125362630448063445925576418487903969827246564121299416583519747656034420231239007233830495824446779460794113514250292902798092215999197103919099995820135782732461600766755337441241219338459466420938168139535760328119204888871543289530850022461853572928686685260343712196533275207224340325193152102981268030648257095738414183120626487769004818878154598224378652502805290095780318221374939144621842941544745231497724878566389888820343543845176231883972878605794637889237004687787499316552900644459631674374355922636357368981439683055090870750893138276711885413754022656708350440531868806795897552157094682867231839957934698239256168107223602160777896802262601834582568362171081080979243073854429481284504672587654259539488542775876628158121171894461412715267549671373656775022671339047219719268138971423095488715613299095660063194430059868774470737454126847897815099892010854534363555697006586875883484276557658062651253366081798733953225004764278637587258143998548722849012156523843532232868569652096153271293560716307860315065091151635888829943240636911754593609163494359918140528856761388964641148863147026284373537914981544087457377044841062170565577611462528622584492297550457904070931292506848533236771196198245916342917266593103716218260823206518130333167320443234092080207040844180820832041515272649495653265888503460307768545330875388447462936489515208049206740523776121012964488061617116894558777932945431503757842418784800292460467157209743943521024360774880071135755211029428432218243699990688117286913881315087767312785595003789733016151987430213483531366244053444759081866393472263264017347989293182117312026300129306896902109142707228028015121185352981599644051854995194761801036879141328698544574216173486950413750454063265095741721213019330015029727570125687451930560226959194960424718658392033098396934014279861136268339438684117678141330980363309845748244971306593549296644829511179462871297718889958363685760370057628269695368638484088852606945308991112251889285970993863391114108087600312927056045936137272359328468754014052116915776288909849175256075935564307876497229047410789692461337635686293373285072402673036337528134564353770433256186322902694964776476842039313848985607697477049662418498756562929182023633141573394405391224908965649267738196040829222385211350486710945981209560006840202852802243009043043792226813651411572940189377710356457604536753462967551678803603165567096354205849970490840083327392077749135934525150668329824568374068311616747972599728112801546816728708644563330328860272349096616824325438203333655042186945533292158256822448698089916991577073238164682747781672836821241080201973718962479152873925057151192576743606594091077744995782321917456874613003000065780981243224091879872337803913610860827113144355740239290410259315707919888472507411819724571830410670473392344651169467757287203913145267867536705413557968984729893133988875081626041054385907804363188063313747746180927099945142482916649205450731189092452132540930652355050912894182666051757080340622634198741206388316040978158134558457759983902443881116010055365699058740067150573888448216742710216104379374175227947315154911867006148638207747885777543624155114340791790030981162397568273354525557786034648607659465610665716505778848046894350899627132022990484433092935850667119954695852982857841086475608921096533892107129841757705934050416867132019217461547149375038041411347177926390409061003740680757651364076239217613070516235524248774635505663534491610537029740394587156817589544704724253714729823137041885103596556147828960229938896656229148026945102420261131653635992950566551611496255338318124498901247048275370625864889371991371443844862743322266251727101091156705177212664146822136218938337298746129599853484930928177772787051675868941172072329297826494398350139883270855527032139574840901977626474217955546499973342110755318067231368538817669578868705299179456175019133825469174562958149083659712788070183393526850932366604643304621270834679107981580189213388771493230366951464717412720194757685716427835174528201825855782605216993635240093838569880350900730131780171292146591355643469793248046470010305882243822940531719248276314534021015046292526172736567162555741961242871948358827968645820700690594851636661986935736259769364226193848453952489967341433125327937347629755574364142218240513615213118844135628032556882865204035593824282249149217863832835738052162668903964325004825439376373611071841448564172866256057773125572048665066775278499752471961926085388416972486593822082431778602288302253471131293924482049580846257036066889598982814779717725458999660664212345352659108984502538790728303130046698661621851032179966029624987570590612922324514099459745288827640846586938747405445583683550529775970381043906266793493370604560763118271712411326183862861764897936822302305434792274213135844929622234930118512652409984239276076918168379074262950571577429575343551277177508182877483930862947975920154811186643123504008280329343153356629409432045887672682941366992029424678095524003302740188002245143565623738426660092269212589144326497981420897762244837871539563970628799629275546266655165938426526883329123816870853949272255724896554748734342256251457373100076687827373833894032403918939189375607793965005377934897240692772374948699336944492353798421758165376296834164261920132792387746462960114592141446983063530488202903944861650419325678694983718318220594736385114706426496597161328308837114297936273526148840264987368549076779676727903485746738306499683747797595441307648885462179684521667101157855155037133619234001383288160185179509551159535648882476350014499038038852292997108855244654415031551042889932527508988941507212036794372589853341425466112221129159391838260830777035986404511939457810824733531674817978022215241365865992493095691578591953406837427015399387882415636940860990113827458535762483724993710637500384766610615955066601846180779195124088994168664083392259898754726386012644931575172097881222008390530653054867429249453583468401132589708270825008200996570663525034774470616602616043703138288735037483151226139188086621032293646396349008619028087550524416916288000229305595154423675113974294912587341238951753451319515942899505671284623465252851865393927240873532990359996535466220375800566703469810141547481061244789143678732886513446299192851700877272350554252899889401435406548080297370743338898806809660044688578560987567145781066917141936122005667813731055341627922776663325628552873317390853616670287031064625404135802370762979513843319493462171913608529172212588209298081657246703006174961768431526463713167421304243931329235132059747646264359850358945554227940508076359690697448102358787160534254726308608135891718832325041061273291251333373558128162985605285754500625071900094451216746646718050220868761157925119618512186412767101150549917110684919391760432888270727914694788603511069319084845658113793424309527689171605980581331937955651986137164914333314329790958514111826341674979102344396144599501871769060709128841738325328594457790503287585075498100768047655395164610071730251369733693249976195194332717348655286674630756978309565950744235670229737033510375731683437535153175921024859541960530570926923044761804073227061112807235276796579929638444583563264103427381981558305351157823571140003146217484226178527247907327848378260947395092864933979427112367735951617479117961737960244398251185852256294422577015326722147349956660389585818743904568737539381682297315933928503790891866049321596123095119837730411272942768771827002573175398441948566694841597323267830433110993482194046694686224608099020626145603574321924633713330183640919219025598019365095690682884473567109854545067310872018204748049439647271309021747356016488561943638885322795860016475408107554285514264948681595486166295591069526483386468989146625960661701419754484237333774169221591144604874468711215347641733952645684799320879375512907934275925872566649754986079657823247442568877630620088376370900205070648188367927766713178225051157188658687852550815537145756407436420693465926202543508412122794196626145751513318889745062100932820566840157908614468470587985469501887630879720505558878996661079969280862722170927250321152289055808103200006245125717249839280160645715613669118629866454219249424823025948401982763753250776233994095644234621772652860436833237451394328999669699448333176970656549357277343125471541223061148411461560286344296591762820457164450992245966289085350768821922530747307054966272731251546454144216227539853410474822400882776719863329719114371100411766812436651841040034881264467103234763389794033336086420173254096282907879389589009395873672193416344401970776690490575915762861215633798673530897710078201804312460620144995946026835936453905738743169661105640885399562017344802045092670567356369143698780001969865217616963175914807820000172212645537259065958061575425548463282391759906248856764231934669452485911074736465515356057916161343565819004756411224587194574821931823327426170858053710319026230281000280977029630281984027799428711945995438941022341208506923760462552481308107233422182974579850771107343069062311474767775684676078416755533490126548515540327893682642182637832124113227484555108397128111341923023489843888661629329310567549002204075987232875553390918776546771502021016397703524160508587465971338503478790016903565576337428120100820592906752204332076429520854360972105609248655227397495066872247944047727044112754501209411502698209533654898088869343925980206003276307160279408779709249322178381967599088997521260074433695240538165016598928098111877640418710572928115792964098552419701968657620724987221360932434591745896539163035399615507188558425079912252279983044334708776545156032042743383889358141406054038426256201326060911159748543178192860882114564927416713037042483381435457999628457001063482340510162497383055458963230229634633843863844571453140142070813636416853983214260378768356019007979875516151006076707908114364892328758311600390787679023704420265965021386429475617592729162906444398853331695620663133573907199411882756355740574901677115557858433507108266100086735496886569039326445591458513550328018684207912943474459244224536054117606485551899515746460875038416272454979256707131783304884098174067000587197647587713552240477542067923568625399452459832952403922212587352755735050130910443919056036809408059976769638315744537490273125884899203662769639012794041611657906243492746259769571682133352544278291684348318898932970812252054826418060536508084575678104339745310267264094718840392936620284911856333988467798231269899053346525969563504851265836546157661035791388480768256351517915073119752873931724854434176029092185323364835793653656569189688860804625435711485119133122983240105216797195581293539920968939646129982302945968483215977019939733395399372744574269256342864542208197177369609419665065241340726861029408731781180701783021293757894711664464936402251190889910593837533407877500517171984664437183024447503363401402366485591569032177246360983253362169254430501590831482816750912377303747460985785664739562809297562090521562695972634668290455754385246482821162531571054348503071272176912975534927896766578826911549442087237185405615519763868513575554234304796381467364871083111936796838715430181496932901037666490509683307536208532265092553624528658293851890164797463393263881155199201107686447699034377991693376009499302742208882689779250159599075149177772083796100224029808914758953279560165725500742754625008470417153195334313174658351401670716789811300619139426406300034992056463920468560531535672450589419779408531036278978202541516550850430036333883948661550315545097257614424358034682678971870059376699067225837620494529881072493804372317495960963251847242105660190478239166349063064445140509980499727922325472344265198981337620354745930990551273163617151655257683793155874052229735194663855220567251238222431073483883780791768330486588995391722534597651119938574536822244404306876983377297885870285707835457062238485037711119639859200483234389837184077200141274356535193130624929556964816072065057026465116247543990388625109695069963989029061204202053681929584928574705128407190490454903660304084565694988727026026686034102879130361367127912822418891501379608012978187943247073654560123536793049515465484922376742007046534900767858438702959461816825108740465328268729771796269576649097398835467809165150289282822605723846656307978775827888468928105705891306454393851353747413021395578985278194381867255631963098296497488878519609294899059086184962266772452569908601031514514310590735348622356693679185367707253786941015915575707315021741640224812785451153254018766471959340839491424234221814984410856026708033964955752543025356754516875708138386955916043751520408030302600656876727985745852685873348377692171940855629036594913738477876920295289472712336984771607621119082149343574128282232021408923907370522707103568665399549149922630596701600504061299214763278528934769444062622978229237257508671349989212230287314436891140142095287379390447318565248712316651424070337240880245366088013387513142318951160883158486488467550968540112028127868984546541929277011043415954534061571876300679148771195103847414439450003705775202210812087691139318159323307719880973810368131700628567198470933956291678966139226405791688893679712885127257237488077883912170275770294316225145665778044133175315832904334128559501369845432326868991160959565108135429459236599768331372906592753183919454391876674757918875622420580615262343950903659298751004892327887443575387971908332230206653500801723549539387150333797307800581631171763305210695699786685662641705889878541292428477750704663854633689006819114114578008988245409329204832693218680041395802562226518441016034943427654391776794432710092620088037770274111284238767685617541428974271008201311494682834394726381221880084623313987872364194066175002500359528656190296817293963708486767606099810268182691016388815393479746787664349480168937570847309953877552470771635626546089661740961109082596727364874504950024844414785491640800571089412326719556271133948437582482707602933810095768828781151519843637865652999462846588604221710799895324674596466881276459332158013181175949295323213784871202849999573468317166341027340206273416685200202414987315256693723162461082390685553137344588251123050830232413879508194133199319938761157998405184051659423434896408164063101418904163954410186815228632940999588955553348154179511466880832452221678764806165872537665193686463127414897140915562545064243016531635126440374420074643803972869940063070501390640587875322367267045532240033030213429859306967022861594754184320858929741046735481872471701398605975712342259352911979889183298948809015058783328113800572209193433234190711342004798600318776842078812801945550008935165427757499835028546196689131726520279023284360383643837098825500115791356438382632132336002475845499297792387741000965489779455169702366627732203101521566050904414563643260327478521701329737973870254787789080049836310133550389152771809058838620383304849318632782185247021552388293311933195146745795514766012146433309359259014568947699701027969948122538895579366856655142419501104147620053544743023306886620325607416826400779631010691926035536710015621995735441127436473144566102449065629128663624611116674921305609106695746804835966171031903985223098279058644133128899831332390875651863736142468319038130443478933827810413619923018799236161435880563840118633074827964153938637000401206232947274582235582018817460907108470002517460912925801552012464705209836840555367065287360857200330969782541623692813719161828746249995539758218709053496347439591131451581847193401671360150431459390374379178610308547689247778615859494221422845687306387847489048695060031412840762309752520355672625457491387810497176570476113464969322366785901580189025317486496468989073331858681963109591491401727720027618211506384109619206255884453897612786338561729473005268525809811180606598900012998438440905654742328648928211496361807083051571476295944248433710839678516983787544917309988174681387613935924798875461318281741860010217951856125501348952549340417570746419152358267567359734196051042193098182131333680575981314874597097283770612447423220911147007268276521751907189099232878373896015369013017491229295829417323459166222136939637566155522059563224514949929231613496465049258486886247413724906685769892807564410000514718504944456643492081452640959740735364629836028315429172505296468055918028348034234909106031218309531776146458558345161602762685400775972096677639141329494911076329925396778002877468291294308696556124440858762463230918800474252676665745522987908618093775498301691086628419794583159495777119846276615562876302901760275625295291652099469439524213227752259107524447086767782873566757709978577979602584893913337325374502021497464761601174142213543299467457049601435515202827556572004306245991919778247772321873870542181958026898224669138984309048043507400659528460506359756107472354242670741275395493187975030768407990021585209551084359853374349128603186595025627793134410980316559374521685096034794758993650421355260702003232060122929941645167143319894275589983944178663335693217761761403322778950997298209721217504381005989053020531294540874768030015215187467639857753971199494904388646855067616941418135424006894562345637729404860143193919795439163727788947786546151833275179775472138945288934559300219982651066054577004324039789607973264762114507986849212093080083387221500828324350782859460796929924522391260361791248444726432602476058926160879874699016632771477056842942560824957740957313633133506090134461132192865948727516935753339824388597362826293820447209605284685665386936387957144963736872040944751826566995041386643606455566676509681834981047168253678628007837761704270476680332616816586742059264308978171723164447309080618158831154548731153293752474902254453152912731400781608540172135507562922339608221900865210852651204522032038273032235748063138036487052596707297306549002532697656062335599749016261213043438012657495985348839876234668142407994915777293695101042756662614727767801510024771778713743364066262501448824840422294276866139173211206837696560775376832163277890692271080454913025559200558860548482709111646990697737290566089472428782919424789573468478487040529447187910006640239959633770290295271092175068202306137227418119641946303768681048108103677183952102017101262414600512215480835352332886632703496638854297759516228554498932598821242039353760528166489784224515359284118044580254473343802246104826456392370346931059914628180206392754365393062067880019236498300840586526297488686599042312513285733159354018324628923016169629561737923503629892872181166335347608271484853301100978280693880781108717074450615359922146933547587005953714359975919349360483774832026587456030209038824409618285498531069738684023673306547231533781144121539483132533210663237356368501271685869856596474453200597740684828883621817009517367018792860122976613502251155703676812232713449453071293401455234253845355077849257934103549165531822315679354863122552296212248656697778828545567352508734524359544084625058646422958008783587404256310936622691476353748504929845007721105632043540402577310427045313408683537386472880817831980512714159352650127270329457218038534601622607125466900527007033602372503219253220039332209355304321721138025893659324469300770319029121277115039489958247743720063131999566239908279966785520866030324340750324341456442593231761551777665228606821268548690754069104851265630150451280960262221543470126705486830195131779210929147437837740150073823311257272836895510853836165911330426376579729169725479776952590103821446934216538453805587266145613241773798828303567058380673153429402850801498414962115269106897523516435638099457071681676486790092069574053489234456742230809253923844140126940274856915657639339761721907237400123522675499399508148074593997523631854392253595198348435583287290973336476774146655474043045992187582869288363492998754419104425575819415995388321059049320047391950183632018462114635525039259618946687801242407429653699764927166370271597513445346326041506894517514042884655281160501276304574248290764134566215090761277674826601824792989206814392024286926587155828487631759884391009405969384582044179043863116899564133716209125541865835575411723766873357429889385241876198277114152141706821836892480677150849168918124166926674533420144200759697661119601396740176698410569793584057172207343557804542670499732099029986697373034291611682137421117215315221324562509803925132932828441119286898742181573549880000711395180597884615770012096012682419539828727353946565211282143184694818158575894804385686104710484532291130586606344046371703850671075947238523223855719897963033015550036677809065553287299429757757282274192403340305858243010524297497450960721617835062133601916261488570000990521134845809629328056390525684256179063764090740079196814206080088126669853901620472970412075367163565938577800629906097199492691255930236205308436830031467343155695275142228278000550589004072724529826342034691448725906721411137840651580938906518941066273718311332466340933649979360154462745919264963861045118590532618010543719772925637552345920509760270344882435484462584686702971186648868682965532229177329882658608544631306061854458138182792669789941847676664561280862659752408816923422404258424859174277536916296741382941472845346728325980600290711596067834708166538908310847352769346348443789341292147586273523413876907009679095073255682442117481259358240922574423660191933453990487742443372336945423564650471853879795401757617652022405354376551864236101422199073314876457725939637365299382593717447702826034984132117116222872905790672471905857339150311816534674293961137843238556147222738837320668632245433672799838960702560122995268881871461980281533588112982240218057497329579660541614092944304050353570910631735272099165772785648612224484784475693323686087091072337033367438321694646998405496159975044588975546110474517006204620765766433116695602448114161221321113131410873707017944893469122685683337113259181270591676141031261865448968769195480557884908977382881200309185775955046150974710525001018358862069498260084476503506060317606517529349561093867198659496993117149664825740241194003952164347262098281043592679115809247160140091623051124694337646407157860652878739059350024877160779960160949568547687933306035015962286211534446050064291751059468062968590307234992042814248885127901628752180323188139428333740921139009021092344729906675120713315544694017989339677165865087607977143207671629646870876985098996678383257470588426050148631124012986460020261331427424533647763379297390169499780156546196218459638880601059963715024880636633206083507824661592493649972683078302661743206458103762666755939523124099162436790574737334118295895086544203394556305798308414191687316683296547448637603875654749859112033325664468457802772422492645840452442995910895587202696521273406742814141122737392046647469995165057984298558700030875750587318949148638968573046493897892671423218487363431804108520582300027674038098264967117840992623179629531620863662735502331129992710676705762560335641896117228385410377123936796442934648599597534991940673717874845623406005984603554507162987493405246880604490244336333562578908970392489342771030390497593096808572199889714066858212046980342367871893638165053011132854135342403965047714830107382159875000520868192880536593549532968163443899512287110463407884523732569553727878975298290697019285703528611943933982336262717633787129415988301156751791269414160086787406589094503301012245799861973174007077721215911558287477694969092021007272590185104438360244354882661204428262586637354744077760792793434799542398708869622289934190203298006451441168842236356039132513832907988205311731366459625444886853454262294821167432836246607775933158026535366601426493337132766815482372316162388104435659391531432448357009738513492374228655543341844143310400347746540421475730669818055028738727845698631006656525210000217282418282391663644668828035754160444393612701756397417070361753757371286871676429933369874592886060007662943078823529770324887439495847760226635873563517465078306446066229283049126053377017183352681193162505831462045323456012179094927802513221780070918704414763986979773618658593210325783298856974072040492438563733460229306280469645547845090471929219429427349285253627679931183087345067239266294797627710816616971077339113283529267595896656446513384667173105301877888797777956443931377878409327009335266990187788054962672404160976199103072329989360687122955339444216528126495247589711909163501658982080231933346616217377120388227610751515808411332268360417165865274657189973834120445827495945397639204495941629208632672540054785132399005613156788079361500459367943693509885249075753216156070369135413106931011625300444677566710841512348101347665676447321304304251039002120818138876934635303576219591456883347653895940986981960730791528993136119358936413935578458134494213108326388847319061774048615364878886715267678535992018749938440325465441866029270184063682769852046543470047876961224612496424303784676471176732074389552113230939015599845700004891323929081990144653026597764972979043121256754003388214544947826517851786510533660705130117657877962165617145403732486289307751822819599450574290836011248244864291953015707693187236066020997570330058646293671841573078881214830489587751222478328295615975730822501769479999430904434182557357396049616530862252249984562663412757212047052412860706213829686931052606481383449329489225768172172384100614676775814400738563320351279272127963060866689102212168944711140758224534532314956617602643470395452093185573377251291488615308746746397467792962553103946179110521629420040006067627209599725479527465431872200876104768689131823446943473436870092834636098876212191396073539474115263116097753478359972170094343755310583076050611630354543742868939980606054745689577862220432149310440486336958249553099758764160442407069325209623129801883646539053326186757623433556292704022775471999376028272449398121533626877391357445586772528927067988450274910728426377005895317592339512725134941302665019865260609211545748684566254205115560462634187178733994938792706327710007669140909666976049951718646172503244222055696804997172871787226985356092881946685055319681019471876926312140389636329930007899580629824171509937326837705996250612938948775354227763297635546314262919299786240832924757059709267194730167995801730995345020845860618920177135602905873914331811757150185131465818523139297457945009218099433467267948523254636617158204345852516422775221401357043848311289365658763932167450128439785474960462184395927114620755462337967763193488211658412770542914286218494995788758485462699413534292839491094556380766058185532936378988311553573087945199022445280279696116137623423187575525742577459874391979405122075453622145249181347510569812380206165367172824714144559814655492104951364435646392646130212127355983066030548172853706989506707876174653303754369198811662860766439477878797406125564531719230514432499895425386847041015725103562846131811558186206026868803196344878025289752411586706065355326321031938048095569651816584283542667168142078034747921274462347534509752344621350194755475269925367043666783088073493334160145493657701751592574785712409331000740861413769566261733520677319775251904010702417050802540110979621564393359582452096514985741995569004545607254742654564968102264841401434137153755395066487686810577010633133890397595103030095373115659081403626421352805915108854848955071063220828450616879156997774408603939869752000210540457000195674023115000100067956052111729272350733971840462444239366342274911398294366045345242488602450559511753926117562885294620522863093503667049594347148208374365347736598348649685692252775093342827504940902505807191402822580344056922680686094035410290650222395319822168902729801606429255755584550332896745068554592904008443886322592459220436622411583252355373915004543542114997373779212331024053928475890786656409860578013773210030878868857666309996711797890838532870121947619177771824634597706255808994756526230510019355708326749967500200608534782398652752635131738089218735869053919296748203869060303616426817859349726673191768379812153814102281047216873128913762287203011041173486605568030263782209929216566792462238605572335975947295536360817003329243772591924352255407864668524811118896603416426632271712016531278684342125709378124386915464107248823727912137158992537094170357454929610348476893569366953854727067890537101044973458640855310669805451419199040917387489398418992662593802638556471641460430273724193086067201275270747407570899090804734779010596814119701647608317945370248388412067594029471679605009527684103914870420569911802295728158150840765773674866413677740018174096551998332823391296094082453260034586018252118289979172200530984102549050607210475226655397377771621346921540075217570319028855539279488673909824813374966401520753444022354066770620239920367421683686414471673026407506910976728740172899959059413079680386446500482074268412449755379521800154227559165236156204244308130892668467185523847629827822571108204790294279362945204087708199179486190509884007924304929318377361941396809435865673036933277155486150503792687032965628116369853355385270861318963971786500005205410495301037120000226106243335302453048467773818115637987722085337141248048908712896813584197125770343416068889963818226451765771005265551052049568283787463981747860343562320908710797716096734765395355558545572379853130070860046200895862446490835046773519202695898614617709047865642479017564728921512061268021273935148010930032669987661351906830204995226827149610032242951903138662183045848483408304754474696270515997489683315534224257124836977342562708184158896629440742390693233914493176904751099239020976573521715901687681984473171897526924999854363519951819053467616104434090342867997852061436813910379660272530406186534091119407900818427963701705267654616056741105277722623428032024151802208870501177861744958769449852977542291902109850016106878915712558676298177565098037847813007101138645890099761730870904546012289227093168667655707287318725369136214185308231088840434938949696704734040433256091944430611857477831442266353091590549036126055360288259160241088567602679640953683262969480443167836247266451237978453676365042429131357982080248157819174387427605732414904636594090939426927007478887165096837126031079569822081953906034137321765926590039038083795703876179314087966941380440458447999982796246559267989189926629955346053223469831709963324801602703095207032327516154762520089830176410934744948467746034777139379301325201808583271319619326864321298698989482040327075944711914068407124211923939679773044093515393729666904529468876438620784069472546030527968837616326078284196214940557823930018454889489333028702727045491261450586908084453367752842254380077251797430418066485594236114304237325909935500861894400257236120106831908321186832500855303933963900588311960204920838706246635204982515748713404789735474393849985032300178194888282622458644255034580036574665432152816606986359289910311862295553954616182786109322821858358678206465067441147655953022620801772856405511830251677127677032240582618257559663667524437339354937458434024335980952508537475766262840692199318566758482246991817544896053453160133220706406391844216105054098333769614689368838133012857861386858617142267714187198268854744854711396713972377354818669367744873631835958987152248470107149732849051238677270743253854299593927960576964205270126815301832774311834709680416976831355444187448763263093513558795126390920368885465476059263542916504569207588329747998676746161879367765425993285526586492302050500373286790646075296769796559695265794651737557305005035208678279746323374814407935384704480630723199343511092341553116077533675958031457280556101115751710111566876736758293662683237839270574771263730609472411765231219600327288482199161053928806783782896608109990204716129389700966265697476067539620527916895631250527000886922077501911474715167862908442418467702427903060504316803263374081674890864451077235723342282956369147592918822214041342737600016450355488916560339782398289420114254528669794968790495422663590424208785015233615812832873466248400883978387380061641017470630682845296972691964366234576363501926846411132107108040454810126246759333627439010693181638824408860241676851890269471601072450456547579538942497639183438026794216908950516747399802711499974704390996108059997849644825092830474919804725911388587608560186946401440145379137127912992052132883709152006133097934715793305868115097227469571286953786061372357889000530744397771383547399734081196144886252365776772109782228542372458637027359956279130865546558327807805725442056511779309573650524887380684643444734588863485141405515848936110322493613294217490059612328859193036110010654696655102763006650199495639803635067006530453596223475411787849994895362895893728510752701527675192546862141198682484472447988067746263996330610757495019788467499014811492885434188365371589677145344801769345154937348974366857575769370902196154267404352303012747877895868499689270959662192796198324568584174028628452500364039509986411828004657270556027863705280622904425260636416719624041770079402741282562283614228867106693046799720888497559140521798999532735686081759195911291561013280746753954526861164362638716866067519576642374851191048266599766860485397270702700420327947236951855954073398699280896521707502972470469816922231009258198218224853908152127257325112068669407417995503139868743238143058643086362110701953321956413674649788762444128057727521940403030929898975461934794242632276504048146302746627969921922015439836683413920624690677782453357700536984772440444130595910232779219544606304910548523049698189365119825724574380868357546699099673751914648854348932689436510427280971869504450984646466173083277579346771344392218729583240803805972305217995771976428709109379473908645111886605012050792694441282888997803688687738856917942526131219229200506723336743440586833298765280960416061465546734459958924913193935070981346856632165999049533415516370951427469968148581833915412099745734415103462871947811200960738572087619967510364259910525669043651257975565533817406214447240014413699539947557926937177308487832381794472958860717519445091667847783955857215510429519641590775257428287312803094776957097597897701979344070150303083381161239827781842905822836619545633303596577834363886585544090900326393628505699923498020438030222022863949918948525029999952421641766264549769228403039812055035521797668974633901854752768254241878759637117019172759092924825306341569797758807755506283204192984711584729865248004725136067480301119988458292594240418097957230994276920179660725227468971093030718040191449603252024407117196362999137444213523311330931243281375285762844217984073745158494769876800787406904823605207857962943099766609022059188286095068108620406000704356486139283642607894604031322472300057992119455786670526124394988548430876765256716651079208751672779629340936831214025482977461408512747563668194886360825573992595111777861670167322531925627953157358861924058831456450287418802474982494129013173387416247185336731818807897638319332885592101557902308546273414018204503415305996065143499940229197902098239937370212313991587592652102844944143872563953663877383058521830233262997604743537011393362879577086572405396770393013296414172577111290843084152080379672780284742139740345401238263663171450520929822124824512295016939599098162812147301860861999256406947218279977383253194457187401869542054969045523659317997923210690689483776828688054721189638976548505600936453392508689447431200164582427586318829098651307029253782531251335851420441063717921400386386985685421664661095037409245967631240432844604891858547601195962176922833441693497446855673782283851050663990141875463311758481783899373785716805759471450761448182900012747880109716170143927342890886722370929035571250237180433076641869467484468815521359582071249803079028043761123081631521210590285721207582902437795965580523037038118294282497237155865179983357090571474073150783075169445895260374966532050843758407377703052052709200775643389445030592516230851384136844221721970079173888066832831368551201408448178996974805223305890115104853997905500360317201048708925184149082507573462072494616842305041808232703202707389030497278722571554515593736368800637724816943798838871873577873935063374343114120094916103758087313892651709800751267729481426178211477608491237820875142286680501685200911361977731728095007050362362151753667268258135292702836454058514204828911415767252744703390017351755606878429663028607059442267938466537516567832143537789824850071767618003855463325264669243958648117051045024111780778836097546331104071970255452675625789287683568816884205110257433453597355572389388541751954367415482063525799569651810838448607118993522618165097786772127789564936623242976792437305838357957637492036930508607772304868100392058102209650673458620419724996414686861713213216601280616371505582431769737706471877249942678053183687631910597694829403191853990233884794874157712298477800013925445473038394211377148506949243012848929094667114919135245980428710018038334336602417493146734110241415365701115555728817534869314467169996143032008552052522029386690754054946728000958965677925910242897383674385539230496082635725052029657653559284904337539865291279723753489008449537872646829209925422592734437634504328528806977683691434891739874486844351957968547333979224390563708218183315699221258148635398730966176812863811086076834691768730542811370341590119207509104389283660303297033958748175019871497264880280813841301002575000980785298832909379692810622771900375705678009440145492042890702035881998804301974602784175063717302724740392100931501418467691114624273360264736740488590438751676634602043306326298880112578108758178527206268549739288897163357515511646958537195253171897227262362788907477962343345595125246354100496609358926121517084117920876787390383722313035129187375998666612937228925479423931781248035421296210235232829656252404924877554484598245073060324802794734276350971759209230045631716166928367012649075633877617267623142823168542908948338428747993807104010121562291727897707267769887963013565785135942105566116065212639147039889168213085895602703453229442198630529263532099315413495896928279455606650087604614972274935001452999846531366264555156751299276661306889970313060917788559134761557945186066501403576610119134472285053645928693041281318995925836336346868586203104189598816102669900800686111773995665225342889573628851116933461562792486592746438167738973195352435708287588807757565641267974356184166571465682498542145928028583978543671353614095084128027692345924455887389030604679315240129874744956704477960982304197693261694164880492536072760952797816199751010562595139160052659655978814388500980539622654081313713564530530308348063980151263556929328092105164466291091768192922673173102925703131915294585314656832539802357611270455510754410151146394945667423213293016837236078279864597925025236878624722522889664019518887579437361460981504215073325766740694755211305910469662954712905869093385896684831010848354546373511686389073290065991153781768314222019120820478824838591761219792209660797992997790743650984153313300712819577944203413492639824780774485960706253002483587359467041469219852810591635399761749323489184584702003135719405661941172415797337037410607269994497311771177482336596804841985481891385957103076482957853931627885610267638796192345643711906346593105714350595078432897733590645954904332828249897226866353177911717721709609315042102976595668920430766766936086764111302525416325551003773337460838232191329124564442625963535228930329271734514139661844635317120349221991730497265984251882053443960790599863983806855204236222867870788119935347242229180868811288386209482603134497019037830505951070003361556933501827375082446742293474786704612577773914172527652484079865790661712896061983118655900110559513845109850064141202959080617426784606859879788421463291468743360670834605825718062680499530990097925333482805209863522536532814236473728617005083542918376929233343384629646404952578845171279820570808063483997174520952889631703189791242856326425136283986980379792348749432423865319648903325735709973062170488874266431626892721068824188737073021903926465416399527721731299221077778460798574105519375804826595896385472077742799500612006508404650991966054286965280629430898775624320984755037592436891391749280809388172899714085473650767943323850999050031032615358662945737546084864018580346143933488504588857688558757571135524346345500502691003045669867905993276253861537831087393550984658427962980444701024360277431579717733683034895999545195918346708360650396072464505763944226601564326093261299464906879409187445076010320848566712129685377610210125202141346259613468246671491900965358364077682033976163567267021409418002115386835505366499274150872203722010925936690661480385183449923794393806227756639373549997667965764693797672575735732725331795642519992553752861485817978413283836555717705164491177362996114220043077169536653577644079075008831221849315887551818781624963139631759349150231513008710088208086118224182066657283637628447346100670517009318116755845868142404467050397937760649142221094504674865237639866906870510983823136141690158230469749383287837918472166218456882953143185592442500962372357120617381564254788520432657842736404767429430430525969087128283847292462833652017161112089640472521662237942821285940094089649004823855686212832350377751139943050222137349738272841886648378194564454837775797526843392334997455842463415138407112441899547056823964791856739235422334004532549362448448762395501505135008875454974252583140594666279510683481730144958008059810250336818850529794551070891960047965884721635336416015457166772941826696843080177046282590132857554733907295336083687434008654771337233815488397140717528660935157165489611554502581940794195166812086646868961790325406091344424033025343520830778277763382841015928349044310862247467615210158391787504585031253801496747328762796279208352094881709582157312466808035195401359753915259850701268758730597688981261626502019355511435758429699983069002321942828441459568775642134199405452800339896730839364671878748631942274341323902127605340901697207253372870836530176107409337694888472888628165246011918248435072411161364154543619784780950003155611095059277889596727284167031155014934136856511753585800653163497007728980964511376487681468272804061406732226120875921014480537693207587250728332323220176567144900994963227956994717322392019611641848121562713720749785673346393761774402279390841378329679180501933966282579543973777154665726919720222158234396384547792708984917279923141586632093275111966356324019886081554288958782024200705789761623051809373119811559366674925847266745707481050622222706500775130010808018835652317008131342235979615090779822391638315682469389407982024775880865291048822048506508171534123422177813180150507662921911414037981637342108068218842087674071765191818643494620051876796912363523617570810324238558484651955958340037902378705385189750622936608809289885578160978925094195507835449387519233959209478703162893032416996764629686405762712227208378958240188126542097935661031472376069639428320848414327225078513832078380946438428366730153829313377232437141086738567641693505847249581320571458853466298928013686620044356761593621537378820500650161945697187519944041087752128345868066548368562509525000098105620663582825167857816273280001321650567196674092190310085181858444486433903054245342687653344850475182817232538059556110435703928663493403649963747279701788531081436714457245432519609830345467594335254066170565678999740677337796530641017469022724484660312480815127305498867229970884988288789520221691413392256091386457504868293927453619484805253942088349809727231384684636459002861305106103220126505241828800340375968865798076145229639113219230569930146941994984734421197066099693507849103304193631839254144793031279096414877146570423893034317615173712598207416099827970008067349763776801670138752951086499751881013725728743936198650520234723939294379395255660134748410065625148003996805109212265425145813336144223708723381040389884184952664488510009527924088134694365878620549785559478862466699710802864097432560225647598175199215371954248599829941536990873043326915874325053919013536912659880191110393286833032924020472189606873681622115297237631217412772005834352858711912323485918954684337042501414095210026257276929325115187262888369065197810312850118929188476702587478063274640698224902153207831778883813100178150116278685816143437591425323792286254277926308196422383607104169039331803613325234453954579753760812190190009791121584784077172059354319008568686931916296113531659233200418286778657427643432750276289793696979043679387010861716464768574987374351511706602627908726136927957173574972329715352609547459134897929457501482654611103345185234378339379409878552619024662545162451466926851935032111437083651690362839428051300053265972710865479501743746722994657316800820271261907362178691121211617193183397704038816049294377623915832714342048726048275633161805990463771537535729407398495436531494894201482817451826692858931800721524526900487396661312592867684877919536050916942889170576352572088782226661754385948646659188963339002581806356191804895725544173074844754437710526806637174141629225824364848951897340188143787872806538560389466117189849511057516564204171313301842915223677753587649116616538486200446187462083711211810396125298790395283797332398530141385290246538614327512984615611742741084301478696338416092963842199232645717681246633925640187038067263406715708057264191657492181978975407565201732413122831784413514236489888001036403565635940597600544986682580673293302169270637832727428886869220892542667799583293980387639397491216672377690401735589033904143840753457826583363069065415607374882206047940036182138210806121617193871351207791048282104940639124254243371728505231535265314280899792962029270136140320559358671851323116545348072678229872606527929255019385364347044152452989994446443374037119358609232592602521090906359265489799311214954901947824176848347495137772254491664621281420066844939720007229275334579370187138575728710803015076067546044789229567463276636730045229782723339241390828007147686152257369024365360648414591383310080588896748188936032263767510509666542265864446884900405321102017141742247597618680195332932439378858693321227601319272536361828982105165575283613332646898501685612565962562123962204649601820880920617762084950309795980506397921392523829162345150417092539867281512780365751542362431283663443654726094140009927301250359584805011943711603122570278628348094021783074115473748729957462466569857975094227041764493338813502628192324459772724428199223386495275612565701753045784186513647321593735636244793667586405353758643923214791432073016171022962433739329736183705285418451119449477847586221887255478882960820972859118982874007153226626335429762401429644002955729319821250546348012682534663971913410512198339047454958905576524145114009627858220129826444018582196714955217969366866957547525226765434545459943442882437223250252781534841915994760455507444783112654138229069438842943359071299627426127352725760738100320270431642992699011787747044396850233686696143383303379139359350510073543099974132577462540716638094943105386678524895134866388417821349796839307250519811660936505285311628932376250394505817468000766147632191488339351271560196310426875837340038508663069355603157309791391510883469383755685986335438648523610157369703941611740361512789626151806450457465604780121981702149396606703701642521397121696121629430014102893281288618539747350510791613360106937795364918564280914519830226869379003557121904304156511051525943747258417117818584143860635737516368221922190729777401178463851624593343096919275880048193740881573786651114122227470923180237831623289190499690277687238081711949612504158835348030381569507416108557923324194120342419122303933398454568596277156513043439380040652900232221475965397085848690647025187495792897089091271492707264164266094912996651065908302718797043182130738920037031111861404699811600388422345162624508463749723757949616557588975290101539031758811262190761467755147179157711722347902643327661966249078971353228180856424150847577498319645453430983920282329458738422437237126018983207644159520507004386080668441574867624711153542886477550944895629275273910162184968133703545281011373888779903913566142078941725074475914605889599627351488931887994801490929865853696249068687383652733608916838903327228665992808358579822868588437304534735212856234318763833692337862615089130677088305567824291590713868544057238667632798022683680266192148021811919775980798165170854231861614371477288806616339973674327726267961961200753639918293381312940329109112576160893379924190194833601590810926005305643218636082194817631662776500630836754132528958397388898777488459695481413302870019956038362341250936743779121919394062344609710652314092870327840691495259134391014907766136905432015238311367678504521597296262488144422238217350733209103809493104328287091012007671061761924439889600307819261778791829727021001518113045735979438047247599981791282535564556384040277736263490938515068432094082064937889645450764859081345142102679203451693468179708751704283271052787066081083719170886631945112039933902103358447662484951035772705015938780361304184929469955488225074561229154063688573789342961903051905256441891817941370021071949001289956196766498442374973153558653286682893384190705959337960023202926916625479951620473276145290943068752469614201546757914208110847194988392986203758087384926904218042547870997872106513933424295124624505598396141559604384661764465263156745030753234797970259588999782603514998539211460717122718960836809634385573136401771412531390329463122976931265042376595807183461609323431156855504605452565275571240433386340223700143540128843145484007653436714944284662995309970139340537117425750859361294930743079455030028959049593521526111309741924257513646946363464878686762106631429684310844882596138359862434093417057513409383845248635515476249720918640451514329207599716863830235792910590719916655230190981686970173288837153817588761646492399588166096612099167357868283822068759463380817786774225465019488787553247831719808925583645117246909596830624370331290448049646846966107196206304270632530670657242172770454023477713284888069430461751799633774666703250205871977852774207230760582408318102081606055203344562469238287378214103081781248870499100531739335116643064848198358738026998546157599783198666512981528828625081912152874387675018200021201873792845621758538379286639075109291859229939941174392051950297161161952450325873881554819879558277411522732429945170094089246937115191163735909842962377414050457649753003028045732141473079053006202030242425635273123807772807834621444199892222414297195359922098950854571144649334312172427102075019804251288750456699711402573094439611583223459342369752963275179468467585505672984837527026755684157499396627719823816056298045290666052663799710082784757930381273306635794654001817749044648594643878747154263837282381236857191065395286006994062284730817996656709471427348317303101565694878010827980943814753147916916156534931155445670674844382434323663878102561591689548302662605550866323524069964356285316452098285763773552415770888913850142333351465667400909925522069235449502672816950999848304020115696091380045975975434694092115086545933123664265373919693231939578273852570004210897039487735463980254707799928761833116190997167474466700860804391927734199330467360699471501470202920968874341434966922015431255226168422413558864055915964004018482902873009996289638289492505099226614373781386874772476366280648988450864140589406627026218213075265955344018276007843500113092371585193253687098193961509763215262492151232252830087867794748716271220929556595932034120416144469289316688487494098743646046021589454609043336069715448094607258824481690620547538375293409451257662367537727306541381881742385552623750287217751260614916110022118804299148057863524844640332287433325533445190528733870886152903851882701994060347750021612614972730616094652412178983042139332449636620123891446484210338534333880523742397960846066516341263802472453900073071900139186073160823086514602304254977629838887597009541776943341374029738599553002306357825250695936830207121617630641597644857067720621122522532539035301089818382330720194449263702912050742804742345386877989248817686409336497180398423617964669361472397087728664656522605326014907369591871753219537775800969964038177927145471593247442442384538722286030422851247436577261933343133701506522750746445271573249863576162374257730355723963599142926778994608401301022798136720102532270992549582341972354167075957012370103630953961123502320694015321140530046589867806892479138583055752516535280792504406340559476642999616255058381183950118915003656508823233625363304688251566494630817731395374931477603406195592248924384602158270482179072202250785605982526287047828622908696156843434577864627566670722894137190228663502274648713754060099025467677315134035959038699010805847052141036052299096158614428206810947618617350500632280641092310564679624636314537842754282207620075424039988677165096591696775526631068303866843095959624640939550169718216589053966477224672601364893875203215715225181715591684736091788303606133572978102404567550215398294274459169432006099727966748324905200597116253256995534516719909379207571160752246581686111353390761536912786599615856315745272698980691244518964810231600557287322615479779279468966962156180605521442166003680516077758560012289335156639738999249498327057168268389382913477975483444089531313549628996076925245853201891735222933893823364283036928079669638904848053355878195804848871912084587313337821023525909291940052956242889798200323014140722942929806371782721965494103482918852067556496309813170462071263300715226871569361533508461612199613869810204225346979273758828847979160472208155725459615689198151570067995071658598639548431936307129283629658532699433271948638035686375243670510039287633594273520700345684647985469382575912875637038849033596331765241572197298168262501453597178722768926512435289549419330261894258551398617716292151121245846710443253836993906522830191658466629064056364731781125270513298405542771667598195161913980520719228730439733095067722260591584949639098164343420062463156796696980917099408621242687133810020782577780064536858727710941099691894164954269796664561808162264329527282255550971361089019719876930899105288527468941339991419189264164107258624858588052319454877990096273337528811697777243901195225789074649689850976577860244615135091694059183670755102013619216398350533721658612852473701120998201942544997227820948294683199944631013907060639443627355419418603349018093872148100526722862402628990878149013613930562760468963881830065904953027248509250805553556765486926604413874503027318250137557146644809951907795015782041003468159665893747591935038396066635726759232803836039027396752793297016630384177796955226616157363886865676640376138297874659498656734433240847972809154249135807421970091292089968095188095843902751458935877109064407217190405648095592443843780617784509412763227035246668716419633978193081152803703566038134870695055715050016381579432207136630277512638793341920020852276253286954460544727737334687642970217618841392946941315623200281738431406898682237969527847720252742451410783918980083493262884223603628852959303455819385527031691761156112016338801903719846670918107743415707552614525506905234912399446108561531152151592024584306975081235592368587143601032806383475141578565137425480931414052669383579705861023544525925127639633977499457371869901095343704801699375013663703026152427531932938147485825633315144450304993884495878708243812086642286527966764011233057657701577068890870891592972762381997848751931552742068540661456507573619898411121802423259179482307159908466534860106844894510450364134791753848685076984391033783795752494261012406289542764541318276406423924241559780800514153728822885477833599320762128927071716450984173671146575165861563446015073257387920968960896831985226938330929264930767817241133242138327928446549909436764409213094223870546221985027741792004556084429129757794540063402181365010539950470661431560943387093145163680985117191368797585213508828950787896013700984015007983694734988379322266077780535149024893195390940589444575217378792953293950474838864701870236647728037107496131843084543472522049424139946703271264912881591562805826868659239826166924316149151670155483896239983847711416434217942928723932034417521019977792089026459811004829075486485327790550174010737944873692350317917097277017468399239885920212106228831860453231749274477490947926819443361687477001254195004604450168653336471171313019260623417687178292185667595022822038987774159270280415124555571723743231894859715708784305809794694771435664754070631942412266648959437802434262204708394564421362220062255310222751096426610930753234666822182560541676874736678479882219561965632124043280689042574118473794478525535267639859760599618588331807737159384199659571538035267898367770039213524810893411812058432683144038865328122584242120932660898711185379318901249578543672055278514219812932192472291317407498722055150998911036238393606256023829618878253129112014214607510801905224305485843389015031503363279570406966092379386585958364099093611192367477801950172035612461140618846543981219954735762498991670142107877551411767076411823958052541615765318696372949269346316148442328417128266870028801758896166627668247982918564604531322430007227247731568519455829268608082185076587269588622117010492533815494226601168804091212454031198065281963277139161686676332553691070566840768970679868872961206289006753287152607901984657836574924740676287879260765857567203304392381688676793214256755531512042029147081339481361794741732674841172083033959802633231492850084968717431054313067536313130950410407324368007138399698355854104603917779973057793562510709766654626466639373284718353219984026334892692991538953745809152451526764043414808937639975015229150198547935542475589433281955212296041244742916595813521570591728558334930681152730314927214503631253223527428955066095434223286094693926619884839730414072521851155907933802204830594564793871156856687365871281467351380628982045860961085507983486349095430499867165296179043752189470455424443752754064916797965088708076562484204264841228806161875488255822101473869727450712839399162488296288725418612429673508825625839717849674563655120041295575638663163629336847438410380862854348773890410091689913815107218756865833569645716277023553416696659715620962861076339383920360409087124373570095999310938138235117256840969290269021531590021949528204516183688810720385202088020818152211350240995361686360426579804199743724255805636509076030899875067602043693430820902674896963794545265465648809231068891800843148511456652412822758627403552856009936015650373799867609255001128376550209238758064077392888127508444417924910825498700446623653458255921809311542506559686569737928561550218393069039221050105474693245093634192027678552033816102832218572992867499821215585636292947862578381621881513659579338698144279801719012508848346517110562153181832491525267370059265393231185519974480086602679625288753398363142133799965388170003611304092318305738066405551172462976638346855343602350809094987566237426278743372925098397569510143070074516791128095752330870185683894243534856085891482991449874548800609895225428445472329642341206017905538863565267981038819587483633625115809614134881738939270834740289162619406617330446981295213363776958245257343529664037225976668881178924392773919199483529809635972321309086452748244719179285427639105089703126398926420129793675194376763292645012330346029347675312883306122359232162089445235109000556932280899867699385662561000771876926206957103048197871811513967681743527860855247993366110332195445929812332896439168868710870927561673222370355442047726988602597736822321716756580127270934571173363843331921034270502110525617385185797168804622341762619657375844948729286963374268734675886205929886532069817685698027553404287422750711917236063770430747351527445283432507011717393627268072352684827858623156503449611287139419414504724734691119555344720011852957840948435244651714652313514356016127229256629476755614884329592842083999498542894507299296211551791157274220052906563615631243858790243706501896790920741294405623478168847994631156105488415867651361097805052629695615079019850783197865606223173257537132839348352593058052046253256064589736929319239930907317718708361427717759432535729674822871710765215870543845158785298079484334462545289410934789158815328736153154952891131019143657835359539377655507170138295262082081076720558398309850002692473685168114751954153705367473020803468612894111473489354205121659370579301107987674200634036787135404876168500324087244002329110798584778077948970700359983030110783532569601427073980785040788191149545165433545207305994198605364044464361685980800615558413219185794288128715298259914829352800001767156798601750454989585220194156582205825093363127983250424477725363575568497989676386133946238325594172555620253725212184449509984876301271160880060441917575938529503126925125571976521091960542431847906457641142392395361424186461110978405378854917626001142829308670231674080858814551933450622387403241577945598859544769509469509498100249926496463076523805593171577415786065887745781226211004211775288035812375459762424015183684844958140617315088450236696416655296128889549980680637269830205938864061463279966558098540608001450716558825893241625735349305683090361909136926755689326377809003463556483224079067804620561592383330032474227474800247312232575295827419787006494307848721708513739435683923395014568668503281015698648113318727968627548857143246456501532992848650201094116133718456794689497147703719292341364885563947409633165652531213982625130395964136408010355096258635247686678731643783896046161432856073012563389683429271330489076234895118079099802969118223527849853401960852777068617925819879492978039548497672293686324631410479317636309336837901161658103998951059701183982939000003399306620762841467144479806448533185123638468206794380834777202145272621054138136411913283015779214391828275549816601820219626319238288018329120385942200752371849996034769169450501481522861972390202168387541814428050055695161544721484727225427243244815967304287942142119298381759854215469957396815081546917257326872534682798766930979417853108217370293963852388561045975529441895648429367207153045927235362337712185398715177400569303031661098535036344401048674514976516575145470033466819467869979630977403381815295121621044407557515114304090855169272101711038435772321278728296303229188047117296130287308686294472051553994043825607463046560977169301248071305718433470903284600124152387080204773199285991496381420496693800185669230520241690242431265492237803004361011407897318370530838631777702513896180088383012841605136402534342076240182454574010915124280283372914319536798458425099124925344117011088700766876985595022908711136463080151205127015100515240649123935730850087608884358472258649724770803008749540663985414530153989703933720814999189584085075617574445490673252779820561746969615083239488090525748951035849178087135942494752276956111888976444049219975780526593506981209691735763570375192050748400122487450394714165173343914239082325597288294413371231040587810020115942668882530278564954680782557852143407513614014052806144190303887407689296772715530842917930089998202505159466702752561847142403949908965924645694382320518379001504204062844686421496790976295059400722725770126129454747568430431647347279532632508404083126764802940914411257537784059030345584891258040714401009459435037691377592265816111821578879177548529540761587277608564954089394712605267802469901321492248077901828106667309852079006745896301304457451988154463335363918072941258958670652325387939463894654834527406259377129063476671079152145802913324254025305020851241830119210712622559180578113630403028776618976687224290771545788784928720488014062111184593250051880708751951538160908184366976526122710128600444399953403078425634034431426613995214670441624808142903153688241053713392359911190999084094551827120320112107758887180678305188716316640969266920845322547082910459753958359307878388757040337645604893639540870587386959038193200848677299225835904519325219512865142843365943567728998408001274139521910047109117273680550160673956087839891437041495444641537345337907807855224950657858553167812069342542607414743985921247048395462071192430268971952476723456457183092956572711727594413026700593273567122236190821235750735989560460354010195172024580715220419174689701536727152145809538506476693777948218939863605633813968403901228354234088611001443748582421913883056233032659868080922373368333667227432256227271974621684615513129170459747624076628025624327530813859952679694153594187660405935683273315192119115508598628396052484188869256862441755155930325367886368937849135963278330026444111808655130801463989158505733058536095355541328751863947418801155507385674499088577859283933409848022562164795480156931327040839757777824142844382796715642156845904523344540954758077164137300537055492490438137142358480639133773997397317254858421029733910109962556178712743643411123450689604038551443502216484340544272474682742554116631990250002801524887463330025210051027424718093268319274641135466678771568104086094557839070001507456691444810204216729398457681213315016574890359424097739383733387502521796543180738946288145003791656479392120661527965697976485341635064826570611660157706973448521085955868874675874032370071693877615379640856935503145245241769292689587006631703498321459722331342109114316005168422210785603319978514412434462981824715772008132262411177185213812330686900405916691387703522654114453790195038660572507988927090415273632471390055209074985660165673348029454248454115338540148854667738280521733998972200587488435613815086071525963798358814831800946704764722290741076861528720303346037327206119546187944028351941363812593024738161681571207110756036074463514388372686748419326395692054170889428404391905681279098367360903926460301012627631241655008490708605835240595211228501075617468336151698973787073354984286777834583608788713416117292994925844864185663262155802082630099057428560031379593525042704529719806642000502333755942808484811574825149786770869269704603204795667308663635615799204565774358377214159573260854157556399715115658853750919046122267495637756514261117598748853489350555954376319806116865468246191564732770511424640584570261520890936623706788326634252129776983311675756842071285731191461058243984360427966752062718060228962152590925967596703055217731285251656787085823291142136871797284788250570729839625573146139806800930934594721409571751098380289531222530031295660983517019187737266033632185115127386195550868349070065844561382716165015615579940854778596446034173526269854040775395349948715325608475385708161141805568443263681836124872401559473457580607970228703712537519745973040105470276480420520270312301676086697075239523313595014021982077484108030091925075867028875800759870236113075489199970278872430584565396926194538106600903798643356597238393657215685274181090464730498881799307456750614130226520884568148638169382423512332858132169984943277248227047101294077348401361439049646056463367060942933492193584982927052965311454024443545776812584599713650746702136186526158518585858097292293403664346255542767629752343446476867422456018245509448176731005599903331321026084992656062278644808733549016506659003907023942256144735590656124736832215879123137581275000830813715336464359690410133902330853777788193906545102948725886757181686120847187689899091173395990242415591979034329560796732846878760950969398145960557085993420426937163992349912614096381956121083471594712687931109195581898669410768947054798936597613313723840552491415017415032820407437233476907032913825387580481143732772294827940634192067234372084545123814475527493745194469783586506548623047134964147600919142758311289892392316970007359787352895976115307868510140203073138072010669827263190687429074635920440751396408810211558936949886226859674528036313473941831927510093200898599073442090980192064515120533049105098896120880097561507238243070641430188908170658911011321293294875726614164350028673213836311162519072368624819870731219181735526784315821684835233302731561225957538639449129672723239935973272479638918804693886198934098275416897986821131579641034687572760095308882573030751407544970380982388228124846116177077813069179310536112563339959851229807185167411941486889055906090488298187109268771915714574685690136780369683805694952065199200065856160474989082811134113299784792266929948984007654400299661678545010851381665301679809838361342867727926535728465962525421543950783167815876341086437477925843749087330767029843962342422503758867469442164653965509345251464671994034036359493232348440912916334525194295505309088858207522863554360843149802579558025371768156380632666303017812964955472493164774780985235947316467741252621174232019792074003885925424483028512163926549507060731809349827101835021450924527105503408832435257719017324996768820094847515792420778402406964914298638073140542008443948952803482456222215688360930221285945033911804059742499905346654106926433402893320659371291446254477026326210352333285761721176287629059247912933834227219271486264226720835580006911105688034604726732391536793696403004123115894544822949186608064174320584896220060023408791603918320707108686264932474636656013631464771628975303507214054068801514536058848766832770039967695365025846921605861778020588722130510447976773543015472388297152604316341558603307974381279962796401061410273990416978430809719506390322131476392726412163131125205351917835869604667629032944974875022741035435474222519129082691806750015993033617388224961826367776039980988034292127632336152792415859292897776504357917597857608928390467495890005522206163623044830742458884467102603226955978426649298907417830144780228977316585868807250825648596611669836240752325587860746051989539451429276092013880864483081883240859300758930858594879377354907886246183886072514069076458158327971985731608254458088190308305326955469973739707041511438532516247083756000998880094520777090868597965125856764843468089590921487233643988005892732082073703356059601269484508365739400652174250274339162253938379979103910922033111410011029525092463967706021856758874045697754366313639036738295370267790565218269226300408063164071304491919122937069342817449648265783048398902626031385990692358292873499356129394126611195067168003336848302239870401161520191153863377678943177011653809743319271845558731573856516597381761474919074396896340103093021308669601154391422193876773040426931035213531166678732777328804552431635638523337786617686540306760825060559640943042307365728241368697558178885658172289103575982184303897798524972419062359058772345128531053035976014624615428377094701783915186756619540807686852993826062320488284646759096278937951868413010341556751816492523613489702830035068668369255800193466721625347452411002623259870394875584894735430109678594480702951687661032670030723760592955753286767862944630757387975849378526725331010099138477404184317716764315136401428885026368095398908844620006670914467576629502532963410897149663969946725080677151342932554536384491235001718015097186241229715851774448627211484658914803421987634884575814287761292867368918336183493375811216819540961917133282874276766324971339679770465624567799098761186412238854546533982762267009341965952595302008990517805753493429249185215389997575207620493313585062402219831720991357070030328431775321561455883634038861976992392110090497087710769039670442282702348016607214159829528721696124587005827074033384071975936677559869255585425034025249895287902273712917907579404235130389459681325986170040900533132752769528157460347358734320536857567247846015052667588898701807872648478664263656889673267564682039193708393355654824132504132680906499016511567819149208701217965420124548288634450042919049858255875054999097905758169788744507546608223610254237307161700521523122636234066893209159603355830758294905900593375494283726042692067339437021295144106301514129134242938349955708640686786118999693750048310175519382325805609189600497437659392991136318095353711259802054519350928178997558282577285554440799659025068263374557278050889468204359201256442750896062586319200528089776965397885050418004927901120303523911763583922204375742228039268255513569518916193641822610608850448314730274622021231480900908227362683709068552827515265576476406474161709968890469558225190675507467267157695561647200300739817375856138623904483403821830009478390622931182505624295199098778951566046302788227583979366775956746807558471573917240448442006641956555900809279694558514465521422975246528436828568840203530095545079812012138921896381645145969930959363417294705324781917269673760968674520084982787600110839465209860621912288299879151133880775767868636876465761838938980268313551165620009312807766770044599470805530797360397211016894913894554359112169399945979925863510872236485043482586281620248165100844226943267004797977587087622591188945326184991221319017514657979402471619448472639450855985065324506312203574431888745437827373953614787495015983847024429815359564793435552836859564385614825369028946864559430067102342821059272845140044384571248139249429562371061771586410025993286165716304035769219485321754596776400916932511289263858272168795761062888898228451984377260407019632721226868236020599300267457974197890944596061437737199760043365053599087454208813559829017404716694636001213819525218206772570166581309060555889593664603327989028558204582022858498066536959789028872518012376308071970386764761059143746540830865319690722010569127507071092778626217745044438613983190884956739926783734995631439843810085046128887450390890674166443772541227155425295009455831061107025071918663266352348613471498800014885001413367384001296363553770031440145229199340455844628961180892958154807478536955094126775379577388770002877341967697344576045133495613640559795073115087243729354415810816735985334146631566497062506563549150742614572785050851227190514442223195258698672679056233576995191772991482488862262558358921123974382781946671611759378536181925824162760065683122742781115954011252049007736705906854785905028561993322950431163686753448869439367019171563272525792614739764353421087717996384334879001567537452460087447326128029010397935495333373527609424433079690954831481577273493709649865634057606798756873993496067106906588684244098735773275132182684081443319649607599889523915061908239285639324029179024529676901052050704328428175669635061403919841578306806487973213430869464866745753207793540785922767801467680615757870765310780365392955468021910822683508021851211247298467764524533047929179706590018678555323845655038166026177912291819290489923330930491994273805474434495532821438759043263324661384693040944439502716231261519009643701895569527480993519523123473667099364822059567294403388597849361062002369429140869719870146167856597725313854060441501886811225997451482665766705783375902342690871437433323877265494905295834272421877917048670960962963037807683132253240094808782982437659435575952640172160090841627702502279783801237631276064684695829919854229071942375651356567123536201276322423671630560885686752074305037373474325087595184333674006074709647365323623177858795125186480881152855818250055644968392273412949460141582480322874719834055477947782038535985069815766191145402525975264687170910357633036130651394446769581436817093730199481411537564424786488384199551250474583209377586940251475900369383226276291174390287437030296339696922983118538366697844879536632744953376403894332559967584300794008465258245426163231509805119996734112706267239740853207241903351349707791692131656586928680854180975013976826299047803478361255308837395276334713676072987040116491913696402995755263723490481751333428497889750589002759126619523457717672244308132906645845592063053433695462099598717944729244561245929342289643342502440911242299702868239603968231369531042551375685029980287498251120095334711795130376131073286852541245700042092669056508620502243251403880277559854368259858448431026694227249586335919576866853772738843053986207163159391436642690178870654175147386665071510688156843250421989953598431818354836686111294135652536802083042055786848622837915088213887637530850942023762892938693668070979691759052173933193955474707537340371013560952980360588684164878282288465392851049892361943048024868093402025165703021279958812191037526704189173517541352503406664732093965304056270414077932724724873890069177835674162312586001166838306495313329950326523745723677470279389850961937024294535817332251213775859947224609143544437005588515165048495695741739239924457245468780719513982850972546902647236797090884416456696002931661075834153824212968806055408974254269041679206384414167802833143331977644349093508436198397456484843873268391422537124264947705494432287851216367417769499277322412489679819691412219139994721099565416348412276398172982701591559580462475706721068993563032360005784333771077152923714517163880701827323520574108227677057575960281952699789910385214382818510375899044705197117659523220550113250849220742642938376373285011937659948139630334164254776727028474139983680067827647450748326415511253537820625308757266144579114644339517459718032649837039874578670625402431036727624159751424850456388327709575859076362273180121646197413998742018246199029151856912396495246743848144965171769712327032404980933946643916246268741221321200672011974404788241903891195034107871543757693811443567346490388910020125319461598459118530608356089177927638295858417211230182443671391729949981245475020012055943566128613278607992301425581589589466276621869874623169130859187058917788986417133831426722394825666852901645692743117172277862740541872984646214062681652072267905387126042262700653689725482237499608639903080265408873255671340135438483052572853800268517794870255320762136141557785942129916942931083455589755330627775456489595124236960749446488635021051762080431111364527461353445456447311526899490742917700349721331913465596534200644437516504167905267098148125095022871623639757404891457263265101432956028440749929398767317661036970733375640763119851478914153245372221017992196994332188273935504504639707177132108564289598652474472761490630990578975709039181264348514607380935824859244866611858409209031140734108633004983330515736728447393245554039148400238851579010079553788813011064961896865898088037435132780473043134812105646158723240985573710473438640634882001077045354897338803330258272588352042381233453192481628232812200936350317602377011055982576227046322952186095667949856585086886356182134953450047361431207251501029980191656813174958085777679501942978255162240131969531191831746676906152075261990130305605117956100962713520691464074377454150558532930611783017761318869248486503105258442469942023799532907918755516130544264864487739396694304015965638548374528292380481399745859676454518048849045536789402904288731877960989809308582465958514651581623592405427932409424035565586150841085079128650132410830242417157299714243456171395683590893969454097009609559886294323309208843891914676054621744772015652934440449669568949241528615035995707811590460638213017838745800769201685122194837835564970945194738146217036454087548220841967561883068845697794319013071019720058030762270594206649872250818919573537201787246420553373637210948395203503117274361186634249519500643090451158835624154010436566495042956864664643509592174274260698764795429455081646504506344139801445869363354142121269621333512994847828288038390321510702683769007869429666145703158870765133339956051560223644108912581217238178245860326347416880660480808633271335524843847707022367105504125865857544491061925722375522863454259897645254332460902258013701762970676302439006382925451326528523016135204505458439208517168342363560024226235813872634515185937649222937678644453590014193272656669309860751652263843839284009265434441001832387491780089166415314926656935339955264961332318432188316789509035465656492826321277232568095875447090028367976406842188268614552997966515847041131972994442766657107262101420857969425218139682616020911499877583250356324787676499142530725394213364709241539988224006470873904140958007178145245011339405477818172571229760000075183393408741496354244303278076452279838326013721327013278628051553180343049108229124956486156199522527665285891771604279607408407598375333627620012394968200023739250978767088131634592528104420930758189326456049013407163766970754838562964603609631876768575512064760972991531292723258860828687371656043737616433482363562199291223123435135364359428857586814393067209767735299075790223427567074110665558266323641621597286889617026058922544870836912391460292669289656453274078901124094233492038089480054275651667508927012816140708139556204753173764444640486460423663346189955975106784987029734597336325011445466084657743337556178482653356655151695233065340170167449638110340679369765430998988042175410212022914338823828600545210602215627046489778567752786318812712105656883607309074540330552453868573466591911203707690102296543696560749798363342175831006331876614750700875717262866324383515484416075074548270993978163032461652780879635589877878264492607927747602900357474128762831061571201934807361183667905124337695560568254688480354668328937945458197177603978934333294138373625074110828970683539582882935691002091506854186041371883686875552228531595748830262781321859758979647960159350431461281003327295978650817095759146493441729769908380248231061829707889112491180643104660705357240852421200089165582392867268836877281899728409628177541799770302085073941248338990699141504388678231247961841095707557646038735032583901448358354179399343276948272292992908517359515645501243879886402840406897356191483754465679214983582287800202428456908177424581385235856962520768214210784580225228751397359954664481162275565760259619221833380632504765005612362533724108803304542573634704762589130562197192196355108824429077317831297565129184493535648693514948943071351782371286154431008999563651036760394502441741973606475225279706473241146651596916018970819988491387319828424328491587088981646688099972527861961043439270073869052011386161431685407167826427183473124544501376652327056549246089219979512387307260461521115195397453300250169837961194546654758060828485586141734534093874699981009842345396193768032220761154640396727045538462570194126000800031065721939355093804156160952117086525982749309235878491868608806919273914964065924223512592761068797672196569090933242122000665493580491969193656885761805349365293570878981350002223748277181206869609245193626633250930859202842245128059583479005674831060677269906013484495958594378007535886431064144534342431322956749237425300493389872494672387819498777293601349144841089001800073061735435810113122993618759648659999842154501936873198394012441650760507277195488637069399241155549217864304363990671959699594291859330072476409544640938637758613941754422739034854469613791207802881112005405692324308007394570489214597971813780985480506343127367318838843231300173647251106511918360932662257455656929794022550233000308261707569546948212243044086203825928225064185048803029380030105982480901501218171391312826838757170500595895927729395255867388470503843691287804957300091479315502347145318707091580657465791069320589371980515803591619601676481271422090023561291324603494936693976674376011656230863386192594400168515720025178077834445145699720508312169566160668053085246975502231983522673692805729965277305992426574942854881871124265496511030131275665688500239164620885799727513792723507898680305662752602640908375570964721762832460414735556021464126957953121438140755975852354683287317795109113942256653701574065082195463619061230095560401571596676618774975630992380750733871844318220192220574235252365822172111280261779824771483971826459526668813573199870109346199061423868660035309696386270371822117969587044651626416557791639055982093012929604389637410398959399087119780382000928973594081214131517770761449164582153659344006872722381730444166556041874835969072356398461669732564042802627358346792585427211370560027284237213618168623444098082541581318234831496275830263260240018850790903502955340786359648271288195919234852292245699142177212099144039465368542881822682565894664134873901485916778234053892708676035421231286930980806944901157273162629627909164754009435985081008359450434577018662243958526689605463993955881373387574744773818686509721091721411606997537431220026802868162946379723384700433990268313651692208355892498290400272272640122793305573721877454034761803909288308411406424223908538573473579623636100109275826203306070163193824155463986488768939285024517352802020429663502832775376811346219839730701782448468212367667280752875495125302302833222129836706245472502907536005642347912792912332511163229735630620751869729636542881245300263561687455518191969273983772851950152571890097998239436453015097371300070197709780852557798630694707910202439574602923562372763383193083889219819058741229317765910302467554697834704282878976110447381179565169906451174080491950882313331215325151068199606900329308197145997743530276620343380230604803555674149710711388949831759842155383572231480375286769103827414349538290668500423947323948017732671783532459677098289896972712169173320577766687445113534782808845086520580731171484422905448737452665584071507850055600012788823203149943559222441459432591888381360520688297576492482516243689648505673196829598084164761360141519016767053903820701888622132403021472031948222320203725882019845160001893687339254026865568574745761894921706629892125055923296416784810162308443827288954547667187120098487792279869884710365780803321751294360443042965321370469913068829178308184595514779315419052455070728495885891115114814515977810952401978150934797707817244197374978248972069389143074222763537915757901508378011982913513685902039179602835790396518242110298965788117833594675909663872614630059389240346255771568068756606931566504215868358394099363267198302272376456296284230288724507309184809401614407680869256487685148850572178957486235357034885922814426802182767710310019391504064761572972839996479750160155778502374316538520757439254950532916227172218009160712923118520342205516028569862281705843975542753968534997583044507549564817347162546614416192439732393046061659766384363357881259320077174305115704242576548414230785336677429493189065340511940723592767375033513497926149304841590710421140835936605662188763394710661540003470045789020845432521301278930605673018507500403571434830729005465150334793403155212686635477983611173873933699922581243033703795601524492802623224233266802263307453343199463527139204118251454499203929705779964390384315620654505433359689177024161950318356980454013198905650327609438491807034500066687959530548851998965579903658853994669921259893720660896599255462142583840430732224656330801065754815678316954406572708362085382987566592951168351142896081808786465929162493933057346737075380703728235581166010767189650930996949164430700876612001452465837197695312376763168338151442226926743394697856416824114321157971488296644209576867084243028622520096717685365674062730479430210940757996017394132564405607099375689170350612405789859566254842216631984412655587558969943274828555100529024701400059222782941559827913990383525701111755070404087097325830278607094753428895795240229113918002409719143335073143609287483345504083816143726364507594417074497325096045815281686660889191914051322963066342419792388512310077459804691093094034033320423537300947642072322943158239802836493804659696239262404747083488214862339544237437340941466378251115421021145590013090678323202856968475251989163704383836853084451807350207979870842608114483830013662520271796188686804101767297395850355220931718665213606569562084608955377681939304711434618987402103042106729168205616157646879533939541094786685787450957293650162851480287123637375027299348263201178686147629861677026500574374540116268433031786700385987373364985708852662493542587979291004633503084942648332381765733028952242262779508037469108770472413317098061227216731791252231837025613399559261379563862873336868187508480590242758999780874740209413145405190366730140901588688100308073284353546431595026065650876271926865887658310561994655643812619690750298339976386230146500118021177156458508685094528955703279488720872584703466676777263747519180323873145319851717618320424816731932184150960234429150279084487416238651418448858818718493521966086557044628377558897053056787825771923968212873094289356187832984456911084901541006038284355906655644198477836807511413693898585599077399206927982794222719817934451142546839260175852151696610329914180004976740810809356796586829166030229243342079507155898805568787997881780320707492027987427772988591080984846486242338879410530895640134917417846493926265045997849024537987223134969330663608100796587722607312147099680435642168554312288074341744539987668867683661836486499256751713777512775689927898354490887823871331456658385574051692378186061134169763954947905893507457761167641601638408239937257853430192511059729933110367391858782661271752599814352638275758651787516805211150323182507102355623080039006801547905352597867144692020654469578568777845507578465867678745124409874060001752659699140556348510439668886904278793628950479007316278607973987755020209590492257378665056291123595649659785384811356256075806296299587860583980762816195132819196166099757593265073184203368624299668130240640258170543684792361830849327102551207534319242623143820835511454759236914753686508131554877544611176936065381870269743305766269926165013705239194286594378996802140229493620036925310017368453641307275402084260575562779781672621931381538278199672704424308935333506134118307139684930561793470390881136094828599766488149551826562951077047089368389599367561621600022270978899750978475416049872944763995441288789679047098045422992225023795168644776609663469907966259624720640896701535682293556311984749918264848188758873115725522002807985591615639687519269323989725206417852657159463182741308402966823617004238454180319041566614919651326661902920733744069692722246186927075334205062630719888778703123796717296620696662834835057687134126258117353525682839203447634566983213635835627191674941105995602877361913174292817489418096176163871904270341775460366716829138847465149172037553992102373518408678785082802029722358967882586494957602991187268326730682243396746096305020657270838039223889260137638357994782001507483740329369372587136503409859874754599254847620367803409947199514229365677710565704902004665781528628352089151595549334384039945733709332178934330736925744614007607168083224536363467331829759332124446223202482849980050283518481365653370346671433028135852561396471869176541557926647753449391504647697869649946554270258044851877064398767779130124358028458389222548385200324691341864360294432531047090123453751099415244233835152813219401260038673524190429639756747596418234822286252624395389344260452466669333548535858883143733404471753728107150426861754875767536570724931113494494462027708162646974468783238835011710202246994261558040729896646235302635608333048809896236382931021735874633808777177679283547322209716205077173416285275213742859161619839965570669439051136920593060947699740864873094243093615924856671084135796034608339862741289441229900148415206921444503062679209624587054178152181259859763448858537991630894030922608737807934739972670598388944653415890246298451761146020732309485806109768638782085272520763191749978210955105150436333597003254422865869721853833024370513329337911546523511245184510808214089098762673111694076097785710127912366222449642309633191887338069225955294331869627813997147111343492803567687647907103973516833115448101808967102979039135966081711931204779788768697209767084539838909369959727438617557289151087509544625379339138258630812511256065293236269739586245065756631530286220128784985245464792929899731532507943702699468226996856463773210151192582732496994143139879002774549130899326867230126188006529556254546338142483262151571581450008635689689464752673876554333713712156504379339977700307597231685287671911357683668608353570603370884942826130393519180092464795019557458476439535816153194004306783206668311918157308740959657722343247226383202735336514909637529428963867641706434362055005516553144613559738459570730975323776551620345803994698443495800042907448340842325197007374423249973025472646077926003383692110457940112993706846428429383081866861010746523920172524507809448107015951942991713407662304463326696396780366520296104632998696079861982243323267353695387787393483894393501572783374310133681003902181865940492229852238388193124370341007068275139252131883721044024421749415245803326424317577692484060249218341162923451742420372957543528554029743202512572918510081143053982365254895783574264778527464063525829478807830380707523638818526318484952842214642085051938157790334563380213809539097295634217753538754681050302693285256380879659543205664553898272216596967242390809475410719341822063083323140237519807522768150582149595604800434282652741908991670940647919120701056162076411179417193353835202477078885115950948010380159138579432914975111794281063188639653175536864734182320601991330879610882806508351443587818322094577870790161909057584772956553443630142969936770497555872020074134276795947116168591050148863741522451902477865975158641730822811276080628110712803999195269714046013342427946753898361357171385684990900853833063117527127541509686844192600379848377084492137594058564962969409659767056045362080221732985387345051357072301812280499554468895695786449769926519703142639293938104164453701586637372107497044543239061630224106125099766022992539764630126309577337769174034871042733409355304804460420737479697900966830985683860182751152201487566951685431276569169040565015084391362575473049030508757489045655876987884104752294369470331585626377711833786660307918900218383149417012575946772094668077490997010785533394238063125049071194732002743285040345070513005333594220102236513790893547130943847374731436665901002843319421176057609079877643592397262336161066698132141327179091587838754315842074669353589003360624676885400821218312840221161426598025691699269070409077300730415010340158874333655552985384726902628140383391083774282009719982501985854956252664119940575671186123265029199813991597246096064697605364348294168858933245912083743910545387246184159630393598183906789166947017617276918192280918232499654013413208368702952113592244240995196027847068538042773723902250468373563891051433061436816526036709705595316504873691525229084011794997740168476555017464286989210655248317218750946541766608816957206888201351934444630828873641847192580695961098556514113328568104128477666614984362219924352718664493528231493789296941446507845482590538768028847199189141102180005157633912623208941909260573534840378301719827846008557487398662642448056547558705049579971260030731847613996864117531762312423224918514484631237555022504777551232407950410687275413650029180544438451069443554839380463381432155477197963566455690154973593472031158928560916890747017808337829098032610155764369354540385579170464317383523417956167952888781378339455645916674822654484255578365868188353972359836789675079902403078275333847396861673594996752215712150996830697333945740400920957415998087235205333314931533376613633010510689069333014253476651975918417720030471399100794543440639756117491812574331641650388791637863758452409882965743537327971836853034400196104584119875883729894225527041450764723824720592986204779948129420666932114110156430023470577055892909693789648624300734269248216508621152233578994585345905090646601701886421815246237822020999118374886655888469180052999252752626293210328016223220089185099747690407116876808584935567798845308863281991037363431592077482754995694095612401124863379597273485439536769065850995230447541401968237926987862413933883706517944477461496645534161757011569341216886379198760681101853352064203107068497350454867888121354035322919281702288035241863759724630372189055560951498639726042894391471675298118254415832103237212896714334716531153862544188710707406690850703453125440790211591630795238098375530324943440690418104437947178488687947258783766327399837747284196016825696024659576668701225535256498709014297361084270964856069871436028804440384125467154339499374678206908124201799036183103594212261268206067771862346387159224204639038048342961957317653939279556183941443732054727264526835144590345178228223323643874776601179548352761570600122768022758232940000450027304563869635568273813246240413637035623868945411067610452585647237185617604308327137213802322483806929879552557068049135476425196011061917473183570491495987304888858299116102869567180656782226941288943555894406318327633543819690457374448660907378491944990605486401099605172964789183643037744355181863259102476974106239114306448041868811026749980943872225707957737247804550889763732984699089546801453335179068766164383846945181969321921631041783896138715239381318026570314083980950052457153972937853391415361124230079187288894536831536938314558270608349779738232587681487644527453757306374603684773037059124835364431484106268417239979183804742556611821286041108866708037325010251485177612604799193059251094769346978626391458061951567461406006421138869701739104176464089673742565631917266503765659657357172142723213942116968579857670954629419336239388746059910878956031582341133352705661968115112587773597694240381994859508676167957836248245549707136582011072711199637647126193656584128732224029589371771285539421797705424486403369637893772908355982533244488649898598836956905159174676528287002845136778262970914652234463387192734610014960036133917834558472748845924181637527091698138811610717894320088712099625409367297550739483485083471623156199074682010040517588610269282424004358905734898591607866959708956210850786871127570672060598082767443317234258898107432951869223684479650010055570089253736613617175713420376963105172482731196395339818069581943358122790241978158975794533270043730916622988579704410789929031967646562231185125534769585433078486403662801906760840774497364243751264828237521457419485730371569449163322163934562793167246223591648294956140472093594942818131330970168160501147166321090537888772675571539622986190916721396526150383665373263973069573274555140961147183696417388901725453721038427587802549602049793639563425935207188396412366992916286549443283231589292822010070324264428055821615570051991717900709909488772111464965322545289921491120313655347839957185178147971316269686190059916999913598891139724265764492938994262608944378420856397525422425287124187665196476057555776474517493261973388491024596067250258906371597649491809048772034676613265340635709188538804200973420192485914035318293033513960634224925318988690227986794713637750742722724602690129568673456696781970720332917056822801387884883693118185124909548903020341355674011588041322717796272201934331274195826699725053085018362207764951304500276128505604148366142918203199289881597698722887731007810381819371979618757303787697907720697680869764315152663819384996129359377933405303141665618928447180116694279128890684258292409149030920214935912347021180966016985263740059705901886460879736065162133172071028166678473024404954710916376559264098016353274609744953358505678949662202928016587708040316943653053528984552054671712460513587452665967967056408169092406214322240119483850969932613174269756948619321734197604922640217507775729778703478438825592239335475955878633695733468246066868637522183651546685675576736227587779002492842214598208350847556178840202138362666789217094199267735429567148396886002742669076811055192037661797877499369666140136978408153361786531384914329932361684749921649300483921643489950995404985143133777978371379002062581960965780593827139272519584702386965599507551813111421801162839436430562157050994601162166904848514400770551668054554944347182914677087536699646788757279677470732916369470832334247639668881648327628073099156305981961105057065346726725172182427029792081265853257179977860829812750265452544538494747567317420085874196519635831760183181491713015162342929002110993224042355813882163329095940941342248091018149823381344742070607028163316776504727366222982325667710783032383078143695214610081218992416254510163439615755421367683439582327399660317670903061360299655530005488068935948689954406949914789518127138133661172870144913389599822609815373900074980493552365009562643990253654624728903301829637227138707270774505442017050669531974117093987939854386416279694005718534156833118484363239843178792030217834072694386730934833074277396400981466985745871830624873451187932470352570643541345551514260714551638447443008647869048842480330959065021288638248510762503690925272571003254499085100318569958803028134939488762606845272396945918760645098621565997728390487920382253234373099162966128407180518302563173305188542787503208730371415982865567299128873984414339374655864798642524317881143605570935472439970095168696346814451847780316702260902985202269366616535408144673032498891380658711600443535123103162822206974353272449238143483968526810704317143264207704357873932423563201548749994731044813333215874673713668780791204658339014928038498627958576421434874133152183535479731436770145618916398519558442047845965692741334102545279386810956634576105949045107383908905356777691652215978681938735243653632693916093349806536880850374027495079835847699803073542779931037053346351541090717784336852116422198184881347915828651608867249189912389157556272223234345422719601805153888925594014992625562076908471264602658760296529254100353696683616703980593278942305786997736815823276325708264950377094015193329352625004380684031863480642314328586739976005722030608404069890144652602877020758329480728938202911490913129641856085371298231430421605385262074465098773324049765113663734625372870653977879479905586642070641224612084158903462127076254831323179219552481729276771932246762765237712281807632596671683239373419512440758551019232287238739314633554978865033339797197377264428986111493239177794805988615671075468221141273038107963742204519423164392590390299916084103778202456305627498763529317543089423713550313029646127226395685913809121619135964801045891394669297799036432313651658505200117174611439052758542508827133707634066320700060690828350581284431419702328155575880691563338117201538156739705792440308053279575623919406815934519989745786252188845004342369601969524135213657007937164924806188356573847837877292879700783486406420521248942387346719876459701351482051007251588965947236621159793700329936574015985410366442610894884697307668585674446942578487507047153421049290925719072164119179410355003162099983671078420033903322581182369162293802880045446944344062925994094367298267404001782769796090516938758139718909670689786506277725819972511914073965250475044849784852589863297823768980319592958594773634749038086972175344624397732619109112590587660535564661406279292532883062873579986449870373282568553078082436155532335865398358380405734686769267114860625706485872199088767113965588045375801935068749320991988197513705601309768836102284618719750511482491395609159707268347650236707074926863814827855966704728194353260825831240581783064151876317347963089834982739964169618882633758945862499963517231236744683754507056710737015010304246111121149554784704577245606626904381353309937933193749790693353933195076234819683910157170825152989430605118714604627339003393361504733838140234277734765092097696203403843440702655201301294005642308821552929406926087113256426839840395938785346310111209565271657062244226540982301222693136083103579177621299458243326982506886437083620336481895662658184549537071310840435346428089880125873462137363060019582822614382492369549871192824525269682978369917128884005541532047244749261540541764646539868641479080999478387309884868358234935181076203806326811384154066485804759931309487636490040473312438519938432561507706127275043161402193017035110013062254662252930628472741258815372097275850109000783593309796124973178672040198106746495595086211001186962522439203664125319772097701210540293524977152425527199323119311501729181863510283248513570457003627863779597346612944923228543616245220151540244707959561116807704463524209886813509446795783990735506063357795147668566899408069884388993681655916129603051289845848332529207718104772685514063588772649986613895769467827664312605318089084684277183698736795979073191348945205253941883407435939797837219566566471813921915649155001750054917550667695290504423314518494252923733690304730274768018628803585510384140817784480865075693114302982102441726283936919745195283633258140182737911880690201587806424512716808732877785838815000966631656391796527265450665863634051534393885495179368617651160050672733180624274013856346349716428058667628938578239985145634534603243845104927179556109943229078044369656662810513609657698017455865549009547329623867753633011998717154471758886168569996725237117321102762424543677208169106969610419224008710386395352107445086083198979314725445056130195374672588275237633660003917553991318469271072505354472019012193787359527247286270354897558639803526856524285903487676720557791356601213580321587034570926314287459097837774762545630062527715972703376326774550748996814197700122370355333912882805828705463577938431895582639000546399152115427204242659760114378331767075357216230134214557028370049554283436106953834878545486113749454480642930386907699491665386107430620807985007051660622178767252150293385704967589945725335488371977861016712187339986613430676909860765559552311762060540845783913412854921215619682627706104551269612145601209885053497568738753380849753144722587073165707094789577838686880183535367826802181124396655091937500110168273500246178890969952713617909603155784506732530125651869481008857594618357531882841688170459201845573360028931970852801122722900815799975026887170532157601548105682587515051670580289072240435454243268413986661128529919668076249786112557357859310364598021968796269848960824486869578409419421161479063974106408063013768390207057493793701680912657087618958158397295080902373031400169208572680708116644463536421646798908277606215018646159158516263284070958300537818299742449240450633548891359739826068279668494893872235773274536845588416339512009952968687322620165746851826814984177861755109559451581862945938495921803068978074656420008184965641983313333655878874857945475092563898770715005986563671277574465554051535486098540516291677981115962121624899077233059945477634223507051789717236616744592588585353588856370321747407661070033592278059842026521034955974324651367984677971771095534903695099053229008852262294223220596587511701266069864178438785967785955287472941844327432671667810157639003638036232539476808542701151844525586886401976517655506255093560793486432302506745880284256175706351136733645920335478033043657078904553465001694931169009860722799958336252712698444878910794916498347255768994572640448213678313872174779875208217343398999602365733596317560491839276626698389975235096227749598295453688714005383316292852858598869108426913911800695362291830567733130539321235796999774124553071483481068247485476857959821048237007888781630224136733341713378811838552436321422708613366649942182039834458897964994820238795848237034856921095089858923887185906071930350740064742535119292011927994797578413613171883370970126150263650647606777079171048850918455850096398594273896655246344661588976754603520958117363941446600945667265258680116001979380121986059689535277477048103973890321272573340365481757542212271037348830912088479073284412514698521304817868823765393476580626990528486038352310818133498130184975797432197550474085431391227181773548373549369865647210432152059271750940311231096301975233811428208611551384322172370896008694947581960257793530408251119197225513650941564139549479477780571385802059247878660723733949275095305493978203686565616562287406144062067064320710867346314810993021158725668913918013749088706147568935634535122661748466450105036436116674852973412800720059430295720625872434858729974860281364147743033239727095838850833737459747971252788808966776761857187799579422711263132072131997947176181570852895574252729684186121954949539909688263143363950329017663376640689065400497508329210091453317604456762528951742907292127471990450505808805132060408464666363081268691718721981323274279863767434778694207744698551423643469786203377780240361688967080092223085573454549129349106638352322212156470663892482034358492647308231564078963973106708632280782252089440374949230779037855108986016864944858402956290261339445235503708741143819195342767307078651468522773888725604630929885384891826983738049437973172491052963226312458225784842277042614547094868560936725417460013828135046199658775692085717972481899195422153990111154212535763033789456469135232149882351111907083898983907166535740592856585313791128027489412918300383955247791456880428702015229039747949936174068316544194450472368260382408929680402544565717584938274439197718866029570245485432546054720956627906657943517509178165632456446176464320930915718861172977761755567365835896264362333884112909235857882497573524795093355835777429158958941850461735278869390751611813467504289937051006564132556311410166925673586012981122100357090768799921815368598639799202124359287304957221905791188152164168097174607579884634727905713851439232809896446576595870741359443861381944450828562975944312169014244703155139007636293861085490310770651401075963518370697972535648313864921005223561817479704260407174111321861221222069347196819480535218042386720517384772403812607697942984463140276765676534351224853466772047709900273713811228714638873547947531653710992713959384388884573381238460506914268441178275255194897132416217396784983215170713928491397379392833958104352033608906254311856394726153942956095691563060665954236195062435675157790511858943483487199556836647243638531885046313156872290208629079426746219271308834565615203331595000721485281345268798345157459046839510805287323690043499758286929772259146813110036264478978559370853595442029789057387644674408255754779958470190806124689467431651449488621628111634052369340777326580480693747517979903016711347260902331459944054874469207670911545070406942195164547371557271307062734088210496276175949668861953165953688141551354473054180184835665312152481534583772893226322919166561701454585084854063553135865331447443857796410581308839283776824595928337596499987996878082622096684585785194172757668463479851312633873639040530990522591910324580964980927586336889373289204133619352794694342340069782293058027566664365670986273401883048367128950572316753831634243423692398673077471059836312176740462852260607993874898560832365526660235818120032020977930032232224769899841218514445218462574068135434669365666012979652638772015434314932394779371602612465886907502233441462001555023996190922757396581866252650887537085485541306404331128465669217832287160762319937738867386233670222760322701465951350934616017694044599907085493180415608735037748198670277515315134054925252765299702618338195040048868019502741695058822791554261062618122821808174976085293852950322414176331385639318459286916382039489374717271927478705723912547820520606883319738319849516474801455272472692105257662354968843728907737952992167045628899930938279369579084450161039024153472368920313856698794328864166399349250115209740223557422653153262408563721106117607669940584045573446906701305926429745228209182437081346460594010294304801390226969724109067078637403678383618283283746126225562564927220271504266286246184695647372978203986869019432531374831889618046228542766960043353082666038780813528579147905160864049248425139241935801848440243346318228831489794053588068553647750403623779214263848577466962918758341995933248002524099541098786202686112896064210382167875701975547222033940494420103947157737248746615467565004274452220664694085935355753405331284759791095191347132667251722804851367613758799296300864646007629135862865796520680339619757820467081061908144779457133977586858830816561745132222054453188088006100708896997352767507228608650055540304802040259243428232241316608985728485490062954028482447577213861915266568795853323962659552256015234584679974128763593232243445266130195901671147431875406968158803171586618017974297219170037431685364155340813081718727838362517004368318476574217616623789998455410952779416333152229284742467957050543719298741668325591166238701357751584907135425348199772140543274988033116387788279107535586269971919708114088665288249562894876588267108283755661557823699551485370062971351807366300131858114378381942410362390058180354868602947082326677745264569954752300026321237336387697969420002546802891264120301081457356772337092516185292207985614478839509297929733964141864902010782349542875781763323090052161579731412772709931343154752269723724918998213092452406438587964528765580640388920444836217012920016873864289557154124730568370771227832963891762412128313346802963524800951182627392386604225032176940178837567630536993782787381792246040052029150277071926863864057320253340461769103609026325197370178745219371523558351241896551433368771806787596012701998594154646520697500552013913797060591928008788845152250747892819240757029567805739423572845131838146312599439073529865643138274841615571898658068895972076783645738237411574317606586422870572606202838114484340377702052950675632844537360093830780675967604709185660437068477193831791821548213301486539984816029716124212188475314891404489775921248091629025367670075456979448467350151000022734325454175015460448118711836187925321486160444484681430044193164762828156723537216856073267744974584184997673708304851018953254527403953725711691270098112486832686836269938341194376529738112467446272947865851774489042209871019602999917944774900553370975526655847327098673595408862721453457883481528645893564605562899469491415814774407700641103862385982095919662879415628405572502195779793733372255368607525443585727052521985071933796328399287547966152389585637659563278446887790105088368889949933807520927681631125918068521611671888793981392610124456806271737449004102936325451456816602747380495096718469472961934783443995542655044746362609664643415790072964209775657556621145514265444753778794530681656185934309926830391555101423256331417687989609543784067696681297711258219790315977886464443032127562331700104688862247260059664640053754006828266634394806357367902432341310515871590121682033729113572005276112462074884136486617538625886541155367976233350262441863134549495780345861171065426514764099687353183656493611727333239982703051573430569817625297542216736323133607211891667964755978924049720873627894115920299699689872376242692923007465416253136488440364174181744180740612936209151875796592876319252182765327058981540358824651369703911970755893617184835794922921989036904544964705555939495677190168319654638680465826750170814251768839041039644710451774042601412323726668393897150067836216549321280899968664393625613656398687839779084078324984422255534641585013581028221775631919458185536019002596328085749037426344051230668137996201563617851611401193958678590287145359041003161281210491210072264278484609156043634885617368196063617646506908378355084771685039222120575503541818928643947118347719921500816758568998172810970439537064733159675057136627247381942417803273157922061870038398396056960485192628520561614370151260317494464530028104003012857664866948706336816408906766875931938518562700758264771307068528709472453521869224966513570693804963029256627700828368589184479621392477257331944348720742783693948666620966457475131204600771257385536062320227345908449596416005305635419082708083026811750032452172386399100877858038094557563810033870282147900058874314132357873702150708241127887102553187652429011743354047555974109099883375517619943134292284248738112682419619142830162433282411548294963993996936410899982383355150357215029510833224206321070379727850535907140612683157849173085955585509547660809616598484199231103947949055153909130357920754173807594076929655668147078864788637609958094715743933214555522024042851072927328490194302335229373897579084561566596662910227013865132074400128710142376560295805954132547102329785247764854915694214301171224706840934333462577232568250209442109787949623509836566925349517560422558883950872822319237919830693297298867076778586486583158126730252793824003535653441369421478579276190303890121569597316134447868324560264271544996195169923013140294311698705682021224965416341882951477316012710192737413452947358644830401944263350141941937272690730911255350683075434197958076173503432282077069256197813852756272667270598618457106378590015210520919662801143752025493024138240651247420296321863692484692173276400584166954529799661619763102214075784652080036236218782725922188863370144197219880339428533238922268406159608142310246909027581621057340169832761537057456494730914056942145902458394562920653430618823107789588509120107281381097085276633113557431340906151517631513233612543271370317122850788073611364896584876549562870788007217244569094530143852885991154305021252095267650110431047816995675863162442272953846299663177793988888296108143743181750301338118345419372119131609954279567335548884947850725250167376372112349204620413116998227068823562479803954037770114880271643422753903091921825540136218445965590546503186244527249521395981197896539969485401000115517889876609409473578252311772734919032455641222817714851139108639718164280466109974234282658268548060920428572660365958066646861369430765616765669827385351966387130433233113595393052570714140512031368099485317952241753917156800134864612844868913485209852981905424282017766952768093611480358020221780538605748425671725279419477675033788283116069036240757043297503547603870738710795513055505696878368531225630645690906835802500069270305877391659349107442656624109275056188345460732436532989218472288080044170213517762954629922994262980226329759658274151845698389653034432280315575109892078459953581137050295259542597901105341756827019186847133684473825200398335571535172591487895215914532066316622065215804877511734701255472795265573405578198131219228488731985070985783315935425957389557331530558652260804483076882412370973111894414316969882235632998858945529454567955229441409277084715678640067605417476994148895023435410390620992081172087151620466330427011692874561179466168269804739986432895965483472648380677443180866738180213519131143082050831335887544231821771952996780476042056117306543160213572302504730932191287309494429669793912085689059409698166025908460086263917783990278405618109449649424679312143476802292996465868491150378051638141591982348365600173924552401859693122254883665955824720316431048036897294737998680928702840525521708062301940434646793021946274710067796461341038738363284761755250922633532238425345957698682326802957141454839552590041627137204512793892862399092135483781442413463537966843475285558085444252216755314841140274649486599504683370443860100543243414124946970075640741213542650352396478829407668695307134836237057291914293488423316345546017769367010116936092161219486388219053258710776927377846875292431070282472765732027497273752242116023399482267570033659323611784447979063603354342308117237577229407873191437516413489432256091813668227825257574870616780492391603867581635600434467025717777157397350797494805384398825345478313446656452170546388228172339580302594539340346503303984527398065361952207126219292076289594356728864760560155524911311164482813736472525916425826301456570881885255160253274036437854903113623346090831648957923606833349152343237520987778000408782796000535837606558684107075981452688377509411000127749719524245579240842608880433043782710126360584210706439597853951193176257770006650238255146518904954264076329109152977949531539226295497972876149649160512263895420137132857085756567353158794762811700957557394077673657050785950229798997636697814919003046604750096647499093083010697366287380251089153668672303742726468972895457130410252125021371601836605179662234798510267320490780176725764790430675820608310542331584945156001518559206421731538342099324587116631895808469519425977750799610527317263859786601668219408113150091332858824196048959091836795413129017216019241736823940166762539027627616702605220517049328671336293010792722093072403317589039478929310405504115993585073948499541258628469924173648750273087417661360917540365159379823055349462273513163443681527179576180706767199301283067782344524954803024305931588689962367375636589413641974278607703733527939048181581529374915904510261655917871399188230728225544250485682874568495147196154513514072214377014607099710915361868348560956832634021363823201746207001185430709825793411804828438703600466768806757138671635472122315022808489643621684507794551107318048998704007935914456625486102382646127032995002715738845082437492129770099150730304353555990752560273179506997501685014482686170547800309860522709868689849681786935743826961245263721329981264739075526308345741092313679514756618326964765744508973188929538266109241966346965253971484068569433783492023889278206824315312776209262301390939044609576270921560013370612771835918833934384627325860832055427408162767545134177477489533908570064659032445390800157164578973443671712233610973122839969998566528721158616807535984821399160632651883549782450886764969451144371872167370711261632864611944535599180430532927728520288924914165902455515750244603338072598659940579362113278409279908834966552481933189794509844470356570999621202772152518158602589782991746489588899520431561770892164710946160685819435206622523414232654500134616110868586677452908075236378906514265725410061175239779788938398198925349731327025934824367477242648865575910281941852853013535444595772200007554206530385865576890074996725865512236119490627736266892702628862143544459753097170253194550912256618111436691564273213817150773150908263528772629482836205136321719414690133203409457888331336874701938762803143328019329668021494559487592839553767762954634339575433425030884280500384879432097735876697093522581376913676072595562153180534553269063624625356402546777780420286800560761584922326125599789067040738063971975070458832536029639364200830971898583620647616767031366097218183932435462457626249440190626130901615891801199147510027779740584839422712211560655661086827508765210743834156842668975111359193324877657531997917465988147206712691323800386531841841432609258327234107825138905676351550188377654656059178019389820472847753252154186964215785173696045725077376903786044201333320334215687163895355203509434892738917951544879840216920465493155505631019781288163018834670309377696613505603030621202435457408932696073985083556483208284526793934875869676669590806129268078718637725611998694890984915395469089344296286569489067762536498516967188758424174688387775804797644436962419675429411803159238100836208597177793277487387091628676165290615136657348609193179743055845603459920734535137874261525096830277034771028609743802029662835205693476560613771816145100496622764689031993173570511728703607678856706996244450326659797217622375584331102848026882368481332937912658196141545298853669756108278524718314041575530104160974878853007855665518378234514045999260016114839031277535931960827668583591397281905312631474814048926840498802080383432365354650194237963161472062036988010608577763903215785640719610100931487657481746476279393174372069690209035281477325574140865071330028346800841231909928386590881406304003570270072746636483583573462621826172383696170244442138557781358496529630197688432393384481730031177524164980945648035289098450990777327655598844436125407134909370163415011353811203252167945389244288260713701454091452643776987009905718394892131470851555451778616088288583712649464470165267004951749805539875528029759864616611672991239757444553108595495828370978876546686799655286111093650879838380604557958225950123433208334374088533627688181168199481037137726916999958707223057371117159690445560817816695639858793680269443167962327775450695637976842851567011627744589293064990116240067146569987413884585130636892031023009194752382186943848143101437844328847110749689481274688753926158849769144211003253047527525419019419235495926541693549673983171571873911995256364399793127430784369887314074247479557003627756968829694603831554978921480008106131003508459273220909282545764234948334974544803566185699338498075183525393531179225219528746822499780546531599663241191021664118326440012711058650824013278217487902161497601234531423907389841478972867615950220132453277049126890008159868935931224539825993160001514011236215825637804379145159203605686815542687825701728369898281289220047092899338406808538737164191314445850154834127805885793593561530104009327454067861399055605581551609717150518642671143386056857825927456794962253309883836814528098560294252699697477389682554554504919332000635299584226422655798616525605698662680429122004906546085174612406395339151452974766630676153320960548281470901287385229706110471950792815146882201365412502422111698020118282170947828223730635116182760698467278735253695828579510705585913932865005360370520108481948731117538793963496476015477368355262476672246743811855379982241334096817597582980377080599720716736615576420805755039163394518589639083871322545806324459637099971233686404371153267602323261955157097752000167481946195529181294606914073474852474983065858233460213677124030373318151166426486953520484809260042474503116059020959836683105847531368633589251170313957279105221090483411063754052404900840266477930622481874485067570581941461683827362464619432518539557542511400586264745030936536017862537857802774604800804064401293527631506810067474588333592600381210310672342062568597503760878459902881622140858850006138104204007746288135166232689897461991241186710874725803295146006195431289089694287293098823413842872933703176657270026128901758008356440712054199884606427550904173089339741434209456215146072018569701426466899650688624486017954874827158798495367539782524414440504724440067181776435373419700726973984850494753019373452330629925939066957915898117051160562348579482340214558827862706334103592658436565538616451879973138480088215786665321421049948241973809396317286649950728813453866331572667099159057156235527772631338360492667385361158951653705937125807364524765447016898805572098640339067714408762819503415215791415502111137523537010548999361091477501663847086296910368518570740994747130029860226685087458055869150379183083467835010507465045014482763750484866634239912300286785108629745149055384113898506707535054638682254528462991320125043632585385888616671519927440041269115025123446288378225711117633290890013624674405238825868958595408048984136258250079143645821313276698824246621564092311374398429334249097635794933027418778462551549675839599651985175556355233584616549565515741482496014780779692998275992473324874219801630888530458767127973780099596531645040267617641382753875554681005130185752837035526347020644969867128537955601925850820622613340612757468764533336315595461215201341644335880005943405844767495779530168602024015008291819772381760229415879832617559180729025184043115259801517842683762319119753394484075668264392594551377019908196779909165874873119166230123580117949440241995813442320846666920851098773721550463385852442282816122013755698837926284849752063595041180561224389591420983892969561135099003111546745887848012298368956323909032729691730545699620059763553132701302574251342084401951447582276724161936712624236668509161841476066883683104775480289967154201625526865967439118914901302065334462146943125895515852085865064594021720029819609363715303404813346192121825003962568934017459201579147610769550581900362439208693775740055506057515793529377988699606688189689393605455282937547496563823689208108981096236525633353872641928440187488894782188671046879131620281523791621004581114535998326595694072952999536242867517255501833334411771771621975534138821863691266130914879863421840200433236046243607245266739503014682253237136120258588967754554104490278788447212852582565273230861510306704915969830908206960917254270787910429318348700880567757663454021742454111975742102686609595857092196683914109360754597491695042377834466225210908501966222096398215006812462105011532953672903900747189515890835861892387989260507455481997670778851343043219964838996550407639762011412136355085628365628841059290647019577623485721759469268938594143637915543497072272049741975301304695798077523657922079010016322427899002219186368295640109934354885098883805743283300533995350504810167883769670178712306783654779702224631334413604748648658237496458667458769960621152593422879680489303157457807752735204568106357650130965114521775523211335040596173831775235981479201101823814731941892160235788902591651828643402636939957091624373978377657804484457095907759001248769586413311109685714479565791023177960260332547666935753750864285418683799790203041480782007876524163748277522340693722293856856595425616797196617626074013840108948606003430720920377573379000307355162204591824379251135482144893746313434160342037599773813700670901492583098708827229575377965372556536946925415227781860205689335033812077880814748752493148283062962212085454779703913379725493200123953983698530471862718996166754190050504350076241136770339571833773814222374327191014730956747216608570514232014932375406440649518148967901759777719734395498095086505715925646413888350337432015990046771929413446504811256092864482881387571404907516036643414170788414353305419025864748641739505728287913786807155165726368719602199719645365530238573015650662784007355205673565260843765058082672401421582807256214093169575429455461013619072343062151174282986158240063059411313510650384602071764939180932933226405264146294767684201590104212783753207178864625747081506644968706146949487960953515066699407322293553847480194773445520864878861105346372475365206567999716595840845513386289685226300629948367553556914802859788332023854061244281480739460193624314300359929474967564295681079429582528247006065606594342556584915719844851473795870164546646831749651915984463558149551830360162707978165789665657426367338292477374108910907923336709815102217840090056808407859331540318550987463102543970048307657617989595475117023532562353393013534774501405922100786365654688798283668062880482118065211259377932975226261176135600984917808903632830681486691669249911252291203294289042057053861274439383616045812303152088066581501025322916848325051026000049553156238265216832480356028723054656692200386124812254261099875634259647437147806945639011099177764707902930290892551565004901450258059299459384804094238276576657495228560033447204534318718439798546095578692388703806432436941363306671509095064492923468334201926308514653775897664201857771388580943523359529267031483282378860864017177099956799373975574681824931739314551734164870305623003099241570822278984676799097110064508842913386879091981787336601557595847689373249146693157775111133068081785532559044134470122109114361444832078677287072361734403713252282338851864431862183378632754399983760197564003916213695489954237763885470233479900901486926872362355512474775834713673586496279722330223234739066869644484349645687713192768497333112434376137978463098932950035931684803438053489751186495025599174906163439376079099868819411935614279861161773288602943893442763468527702719581417253273308842535862988954145871864683834536810694068572584718840868141360283190679689297701244608612661988824145809608173409384858208845441682636080193437408024519761350018719835550363060755274573373672885126834659781438121412230163270932307943917557723180141499439907407744545021217070580684448695098041656182989281980037448991618108954007598993653637649750520669847240764161118406230520698633502281773380292113454605906479825935863628388550065907686589723627397446498426420578443710112388016590005766394035684195474396393513108563113717560888119339134372630069811494409698084821942978581880845182358307114663452050994405954846621809190489468816464665327481497224569785923364838875234257750390275142025716355443847955705098650909773619932062754093057978339514413201704597663557883861379933951132712028713826725017528003230326764892712080461466599565475651010868070166974215718425086320263316231407919812512364942552434481717383131370805606305660198295334669012470917370122467392256801775887829093280806200515142961902572207875483003851501674170704292213905013827080133433955955249664307815446286332578913880067942846969962762847269623011786068793594188148479943068550860975371387572710410311114855022936306659467648432090455146720522030675172890435835940748994532035223790197457631652781510904830841893563289337713986472261035168484069763148144592619963613175771002249509342535971712466710596255430404069787731635943959150622643732465354858221497002644998367896299678921102975626133698193878437219066469563695976440132570439655819080311762689196476321382621133632409321918852594975324716538184622373723452573612076553596900748286551699907789000925578738255178936358362683217514489032918034151279360313852706034017100054044484669891179924751880913372791456709634308977198134677895497207936861985606906915816200310185042743922807705842110034854210273891679142984617796028827639390020918484613234000074577522155362018660422195863151461460729453705472820783191071825222016538031281715952564985498118113385966767526305103517361682013293715338989852625726324301467474066674638529751550485772656897185016078954829888603863531575744194012190532856425286889595878641179553302917714364656021886688640061967411151958132510853025433248817894120098521416763339530485896893015741762948227401240019988453608303329874524309532440784152669453310861617102884340866566133813755283802643977008401616660293188145745992550805554434154358082742623796276966290687189355045001576653675774029673957607682737887978363505068987140268159455686964365198386609620574954296357637921060892327057981382558830994170751957812910194888093586106139671201666393849742145794407467141430761186789960449244937206712705405418078915418322609600337051554589965051386664571997006726009196505232159350007840871420389622561511421787265256376715146819270917587386676175809632391152217540197709880079833860962785931787148174014220295885993983116498161545730451677489691970098036761594338556385602140955722699097422229592971657409701039580802503459579033220050036389697913684981210077899320050022526878429923996090514048338812394220996687176877995518100446908399507253234995269738924023716388915006018228432635432358370508793627802350278194507360962410960278507373102730077907429740716647972406346270850887284241828163156644622390797582240166073764435169626236522013746531158881976523931745272762480710567238985679454721038459478136304260537419194699566020412050619854312731830696118712573748942163247064924838556864017010912599843439604462471130288266723003553604278606958385641752878259803147324802068193739439517476640449361591208840485655173686493605909749877608178812391715438312428729696587421100307070424076860687626220979267631142223089797740296847164946774214317484860935550579299185350309984456449718560673126420204550671571693548297825261991977833928544963940577302680098145477265157068932412564241888559742998246387795096206386819621925510021988636511696323657229988948953997752541348806665328146246951386297556994676861325810793273114160693959747609687054948815291456409625187064986018658122634472551990395919291505610708861188211359688323612117778799473424604892042262072906187822184937713848963562638014901127382570774304361900294201289282288625554905985444240901290373308259339434846254314000983550673219329749732318521676615288183281998262912266525865722675926433275958719577450959427902635358918164633115292458298403726281785354479440173680415586231741864170419771883666885328782079550996766713449043387460291288505110323444551738310312056437629466536685246537085708142825674877529844647060222934514500891357086681557400079222357554939493545180976314989535457055314945085675858921995811769644506381795386364277844990505858198078889669131209603401451219173068610919768086457062496698949592905202950673673902001329423168728174549065804685335796088245601723144641768267330631806206846153351972465105687652515939541501637526698675318783483004449966889478956321484710490417151590929130340558181790615565972500576008612274886440234890699038346449164724359067259550796591517105825017340947647480829334708283959612982437709054514675615541723908513769663579601772517396904890443985497139666326495819148077115642382165809151545788815641100738870403370493981555516247448833599163702298520719786169924024093096017339716056184626265533392594498028854223303147879147390097114961014404004557797739386410251135614631577340547696581773775048563221655536907831380069078913596687507132395432340759814966323366495460601777482998539787775407369626911117365665530186343416398001091055506139107901075940625460054299834508697884302300869102522044726901407764260170921933187536711871616646942672910776880630068429773524330742660379588013552591956590251773818958580704863995154571599771195322563311530475739577890706831821960974630199966694154496519117709607348076840793745271787272672755673333355131278957285090553979124890247642408806432643701533071843207112516170666397056125562653716763421267451322963606487151168728220757785192213415480821364245336183052941977739953863070911200691617981503947117996171438641671193877888006390203505492366956844330112440674871094832435491144235776827947566823282942839277881148797919369287282673823915560425613699039721441602098459572961919273783307484284546825431110996306910334758939492661007282516598034326127106986145921849517427207491071494354778460830979498680155410510290706048149236658918850346287669509076461527326511501310458264987691787761559928669607603955716067742660372074160190182531819926792133434685037832298779036658617842756049052785697865578992972975690755813239743174118587979087519435847090586239391149335379393017664912152482977214148865555011001642142404597723044228047756757891561942171550940455768471429643772688174495828585647971592481866160129493513698000436669089147943413193703490492401998509361060920398945251698152886366514770341347247710561469497318721669899160110780767542205132500308418400169129458050287664362534174538395589174599683320390622072954238291053369346296318787142245963653338143129880161179361276601663937202866473391394401342646197530132846464426822404920328906143720404936326517278987192032849032802218540620673298115008303488199049498539602966576890413799632973756223603173898470895512713230962640157391685097397449086644925322229536395297649296248433392626314309497401723967823273520314406219323074309571754117082039827647668722858898609443170656583747198860390095529623940864489363439073179043004412259812513437547643011074159688048064074406762405457213889782173543874841168642373305000089048700514443173654302022322564164254208438937221147151065532445002922512556698101789595398032263961776884029182730214414524291498554044065441160234445954401487433556369405938213999286897755960981608097574778906241887227087254412497484542907654157278022688303141921268994746213950862268630927740543146675379190762025838015054963347996237493834041939210380970198605694795538319690685391973024841472034020824078227506117253407509287692226311922587879523736174259265981269485042802482880491039862092291757380454002017570630398748485524710698636293078603961923543206903003419310529048914026945879758222154447553762676861484735918951013190382619311150467758189826668729823917646604088566960933372721756683316579773864454814827084646528127105493560025343776250867264765968852048379097142380693001047449506129441995487151849833754333175491063626185186286489845790720412503038744197436275291056597567781457129299523882476317291817655772741361076682050694408365029425408669053288553279802076604009894802226956370332879359984897632417482844577562864395285413121019338532163840836305644312676509514327205347722044047723463028274072343202002465097625984093653908511932059472844034421864433145436853134556693790739251512812298216311576041815023240221871919916928642525935297595562249468619250006779237897642477480226850565003260286976098610593995999040091317553722187421203291711876558960092346877155074015881498373877293516252806243354273977472135127495944510518621986689822231195902439175999452643148818424655899243388995501469249705836340598722610195876226551933657123001168981311799281759247940879393635620361781455483203128610465247629164659186870216281805366789114229255647867150839235476611135759210399493366032551624612775284597045789649209240193541518337756883009138860853442872459046719826519613407122210103579482436038246914813426305880904959033271552812046289372282770949514204314667945651978911805362623414925803645416669664123888972921768606378264418731765898130485059930420375761188846200790231742265706570190119892845448774295484776530881230672275699603577858748123664372442497346698943221857627875270741543752297250246266442788493753843511180514869892791253052722752454406648361875929947465265457119788103635950004059583052260036313806945032808866241899445809668149076209203784189264068665230633379244081530474580540349514563237958092463156442577280792691403657530811890730361103396539067352462133220007840471837956008346082543170124451494322332463771952601644371099908946376702989609874096649817459728530700858136614246619101542465501621522905972006773532877297256724644903198042396698837857470600616726657387959449395337094270309135868525036290767142704863246165271657750891226750940850832433685767800963858702592087198521765390753344879094556673501924913111191405888404470540796444035153598905172216725321250625961900634219132602850536509231477054734414809120933551908184489083357898224985546433088001529120833899986629267775948363225408799042702480112116665627549886724911114262285450814389233071363812779034074794698086309828966337969560483138158587494644435014489119289917386461275631296180835044102458029265459052989405481779762971869104537809814765097060438305002690087064294348427017641382823534408786411164157538525595395818233446827328297370026159609362161901747121316905179775267338615478542502021062343019645107766949940866415775997417654160037320275634846202458786772373414106187391860671642030547354937089813371038853511674788455610232607861720660040964490795911547810821715219274162272101365649924884388368688828435267397312455697920842767882327747232069317303252804255082049042259716443003357013204090131909120003760822357687840728107386588387120754525997603677147356909615750097055348627491745520113575002133665229584604699119415654516458322757058935834826913764444740528451294420801135057314406773601742129019174276792476396547921420879086333819689651706832685921604204988511629076436115454393098922737496482752903707329398156017518129011234275801905284447136985096846791959510819819554702737907570199801474341209277558450858023157391841138234382924599768474156822645554654995387693017619837292786466231116014373019752860600392546681366224707228352301438069761123593781431077228597573960762841530553117449807337506067690755989356437505868789013968942073257583565037294121619716535215172880960542340514619673157082746910543985163243855025853833298399124288702039519694202441479124742317142412104447990672141793203540293655522967026649814941825482012745918311010014725609204063687233967768693959564230378605517814016648374064752637682340075917884682680448971520142985707546209008359287259599979821870051029769139701419887870294386184487083884298202038786814462512734739539041998333984051520831783760611957714694586048447597128403220608377663601328206135827075622536620492446427179120098481128880836841968359214356035345205283413144632475617830859931398334021328581876828685599470574347444128587522358174968540519586285868626526078466134347102764291735587195336056049899926443592845876998283195376110419757239538299673984760214362947489287062748326777377021199491296825495184079631689906428228182476533164860308669824055031589704759242799491114131856549788778368793258115959062537634658969110371378816705772237429374777508467135577608660573159991298244120092310008012345923378607978686810677358481874294938576705790741180599568292334665274614560537817121278449869798456661495702352338071415798536785704077890755489861413954560552140570855382093049130064329350702735599354594291934882192333825750278142623483148273514269835769550585829552694761108377220498135419245979010077803560174282003708505259731687312546052392437458711681873236730494701768112009947610900606984367387837136387200980314378640573752955554392264349679716162970308613172085526114310279037859062967186465639492401467280999925192095924528025148919506385867912304311033039803786868936544926639526462031629057466661987566013846657158423920540029768378767016250113343747872545740762277425115699059831426926822443404481161378299376842722846600451725241202444399094340213948161416397293158353776262121895218334735740217715607400039285890912064522565662590904182493579482821479748812569485471993424906113690527714505402389546905228149417684875831919986552674845166218645126206851933010805074141851789186490704233030231659179737195696340886450067575960722200352483937457843106623832359904733938834037858529580223914147492991759889941617472516285864645636383136152084532180965019368414085681650934262385986285241820531264120668202340237029391059863527499460199386938145966022244803233890196809461743010084609189494821938100442029962364318501476112048162578159619958989302510543379872271611848539272047690476134355503935688067733317524974299174752127714675198404381820963955929334176268915222067877487083296182315416697999047023362100666260644199175975237064236511930498227276668962780284050967959430116120235739928205953339570804553152247292654545157830166999356756009133670758206761394703527403034028947585839129924301589623703142704030950631276934095637594669159172477129741395569949301796028190929409399600509143720613217122258313768860908576161461917805463443974107727288143420590324986437934996175164012608478678277000632411092308063212594939882922251211515596123778027891220608893880545612984659640209245750953205721301182983295533556327815276684896941591286406980255371448219792871021892233077190515862209181128287535834292502491196650397730872268716177390995287482376323887147103059278616503777805517937476725879889167839860903298664889911150290572028613584144595605291731997380948019261317168940697206571907572130885615378014775325685465602010494283792830082135999191460437031149193141001978294695561979091441603575545842440081724215844461262851301766391719699060383014852875632142736244858172565540564535866818759024583250544435400050911492373976178296018272151157899885336782015540928387657888438411802593730981603418706124664073148057243455426259560051280777539208463628537170058241367640208340364452562537468975540583389536371760461182990143102591362058377032874044843757617435472794318269957823832087506881486181716937198012423241612327821495277336700780903247707707350975438248310231240324278426695369913431427718591923248905519506044316903918936582147861450074067310682642908086817778957541123645502194398986574367254689283944657305757341588297430971211742598834442017610795897872689213398848963085850455505654784700558562692058643385784988470795878383862902457585240769163246172187312686957559945059308883502601420319161236720099562529589539342569392010518145049228303371351612049233858828548676175866154605434477228693681693550731020533958248968071016975938203521084164058369271436861990560394201161107740452463657740282101718167512131027579546377619573160382918460455762917993179563435167701424655858776182604982155186197328488182736596544208769466493431054108455492231246611949557932672104190789648624748647234166626594455594353721606297007398956505329358961772100803777310684478888727697465747372504648442373248368860861815941934036465874826977541419204536648453699585918057442807870321163618250567231869456299615847476428429981121584844743654121068077054750403817236855123240206893525266305311253412358320925909592602032292593251027397620615051236978413984763793871853251343845997599311079340552470164942090090768743928866966127584986652018282685665344671109995285047868293192368298669152056761739876496274581673115132298355396990297215778133208335169877989892208583938461189014791868551390591494341618690017595661960976798869082674789775869698192052546165944332896303624556434139616218842556414162959014150117828253765313648355167424625896203661200949383510493451977618466080397439721351653088495181110001694008587634259208345310507270968203980686587267383457434697850108978507773681244679215572188727896071134409991149406735863758874171531418769517973716162981732993934550105906562546194800574617855600351670066861806359846268246362323500348498786877968402360193649608586210624033140263393457643360210898776389612645697637175097050446250748647283771654322288708267764969480534330178204866456446333075067161564250656158895145707032675831115557976066335149873657649620635711570794448564510144420743751097905030559483908867301048613815673182481473448581829066685662397104105539583858969721396446667096889302200535009924654108525610411143136557374070656522383439361758228403731526914151073721325541943080605715713882166970085155936173929645825173672820988950486455680771943692069049442341029211293746828559821281243930842745563311241326649210106198303985066184317994857183211555087870943526440865056166407954248358496606630974497629375983328313769917283889605419338617483565738113244086474449447101383539103462692638133224474619163088062824855252531178970963171213548444414476199633315562698201170846033779680825955836233485258682312534956420002494498813686193902820275227412988032090025769738171367134321029758596787599053869998666718369817671417757993903544323310791387014410340359689335159249074219125103397943102136114905722030966247357603085074325145687171834516129267556090395555267158147951298558942752043169845699677095621120357444942047226059212396574022781156605814860635153497992183799879182537646784612864635966959139791309056405922463793698018683833650071601622338267798910816972600575708985823455097861875296144782159119337819730469387038701947054035071150147105039653872228245164761519762820674357945168037238176393830516327071569846720882325352754589202426417108570811531071532645233187831024849273272273102505715965975159690644701086557130398017297029532701747995659043143125913059289788337337769377864564725035703318387659666530644236872063316976223129777871324383417233261960601813642705969121542887456927036412340963054526317478346134445203709856868362362857027070857960612968684602508809581576892373603889449834622045851842205828425239361888369481124160333349659205671055141881357019861010246567244234090041141178839099410643747422885205628664290870968681874196773660795980017480379310625955461177656512490932087637949339249324239802080588713822902471111302603166111703713270244536737939268688528204901597090170038520012435486999317758873633017598605725767255591646568652016504431056091149532000934597354873178159061885246051308661298799448629848902116623776955390237864002978613737800641574702682342254163339227205861884333215201966988816146454606311021121897297150825028457977262067578512593550488061234350463511939213073984143120944152644134762309804440717316338498755906984300171715666862115967801361669653050205308111484153294193046496142479051871428585310194387174642819472582810662584672404509817953257256042154364206087087772507364701727812847539684513920027477162053967391147299607469177524371568654842778037099378353437398046106780958342317822252224391979122076308528540529410614065979099928826594771669985904221486704938800164920131393146235086324283379438136285782755040244703178870415353266462312696296824487924955456562265253015894887593477548581349253676919518040188869706584108154348153666043629991343732263780772967412591437782228651233955971292064798519102509891582659789018294927639942833607785255352540513644387637683424098218913462614197063643956661345624809724137570857113040623559610792667460099190847306016779256653566892855146168570086535129829001792984073049140647133637489392902744630704694365379500397035112634761772033023773600488050119893584211963786178414306133864799687642072629641581854537955044278303579051351229647549909402677146163317820769519024263951077376084816609804062203157128883207582459009595751608607079835122886960836643163540062385522799946281121835844058120509511230022188770074602889728062606285078512758130205326290427119831143711978378806343527696172075094501058586289445269337493344196333534471695578682005262785377803378896232579036751632909160201819058682153094712237325324053660183980688574394549549002610872608604745652911415210715447991167951802507188773056667892867815745114570843957013688075531712397128437788709148216086428438446906940000024674334076715698897082131822686371643380182074455843889707540118276956268534124854888876456446329241290129428038148081471094078610758702834841428563904683570284156872172217450052093273180441866537779039201760321298981278082974033527447376446435834360563188655743758335409322934587654417891083729078458098049886537510055491435086761335606045210750382138775663980021822153661634783505405701338842085378885606710040940520696105804103321238210096483250538612025786059859741118252260991156702125113469012682638493066651818151833556200372147475034132970440302378994810036102286607918959153551331644125388499027131506200143103200962150084704639756279470570022105850036912259333839033867108104847901242062053681073986133101344477548583390162046847530575242569035597464699837496149925096487210464416708899979256110872384490368716523190294360897023652958162050880416711452971996996979630880375980520132881870749618568181505973815918048065499340282274098537307581547383315809346164605083180257298729185000773063715148473616385128259865144293655327892519367114801946837583815211628771841996508758395474747243400323819694778308100653684061030817655150932604889857704076251597559467310855518909868326637734992598695485542863277926732062797214264580209629496068076396897742107722158076459043408440858814306305200736525666734294239356425036790606542350338196037372045858579220579243892674824746113503330901222434819689354156766682459003960404041522773134852083101595987387646107089087795263579678612033310928500103302123189416742625742205869810791884394224592722758674943345621856352594248989632229410475655697604322187548836113117450916986490045407608728563348526153229481648208245192193894267703150727634016364110263142439679622116920935443098345671423146469165547814042800344923477222864595313775675736856409670435828261004522410977387596042158213091762191462182024137689695151952007741684010737896174781661818904129014548839346142445493624280672501583679139612142304035248256453822764023699365409506722208703042930915922765748515022884607166472242731619501517015862921381645428243876443070702953553375544652194303884130758080092757382992678965121688226371552697665387237411819571336306922273331874510513037303548511918418458106391834269795297360187170337952878402069133467512698203590591174744204902037714427448889262622026366852390025400452773271917676684566411888869616506749524309691908290788502067910960542319215479479132803124350360382754542798685402443815094869438108884632878105014054291116504216522320604649231648365707683693978833269536702457279273386458996077563167038457295260679350973611189846532110922489677638954184313451314589887794444212930729294083721360551021108174373915195836511523442498598746797378415925446943526767728485886367673142857968400626712629390037343020544236042694839344309691804168397581968189647346735278398498564205515106182962918779584227230037463100775784528742317284682073054943525106122641543132507143189543410222997051737196292445240595138424776570882049540030989287028935323860715216673332922477238402450643062202084744812007063658985087655901143892861104674233647451517833371022655784303380838474500366175805410150491285769243293340277802806610643274546712577447349657038387375410686221753297948076488566324881262389354682704953168341839681021659271645571825880348537888161846574688741590085799613269735180115527295482297471195497402119966035620162244708981384917457433790266070241001258782155400432999366894609467599254169045681750324874105078294685984482914233724995107566396943215226660685108738732452139316487328314389629119007216896601916360473354275748805591400172018644075945041982541443169829184255670854287886755028284572249272814898244536012654278115920155341806008221960189903790075161627236077173733406398205505867508707124944948657628121314038625292584444678510610110739955880130345819085923308922384752913493455009575618245221548220129108465010178720443079305908308725830523662476375411282956180847020461791451893539583860013679173866438172454722709004121024310419452032965292393365269333065783080758770086228128352325713242277563985531247072317292538656357999000782886903955582664775036377902487852085863538476711704497758738875870399988261840272822056114492514098571476682391901577561407348855956110422827448716466786427961058236172143615130829653996506043206477384421897413239771191021511806520614893207364810930799049320072849027029604932359599576722187322333828725881774427230181306262210085187705667429533015990202838402209126433785220242411393813854955773958740050394961543070571229103202651228236257271799348159632940078496129918705065665196368002192086825310122452660211933171275332531519746541600722350947732206608820502204965220598676681452126950020262830815292018296584186958664789597033853237500549287545005529961783426877729778885633863669747282072655092560908811587173984654342049342126798291363264900372204972473601007611395055566656513510394119683523498489126088163338892497678996508188802276000431880798307549454213515140919366039897644734305009611764706478918676611320130970740096152795315543609138148459602344103303503899312967008558342734330058438803346664064833386412367691277425516639515696188668019509900428719747153280706942840966700996038500032928041377021927408084070760183755492712012137857155045310023804917248831199358440307318128805785300604114485276510784812802528449877432100972099075724585662245927361912034273970818476657582583938227537765392969973284790728441692116271700073336604598762703611247064613071829815106440640529397839908098851059196130924415782518741186808776110393533701348958720225242454507843186897635912309882571529836010340046998865579354128153362085644487407188174872634532033020122665548855738541688522006639875404128671835206806918120870611484193179427398315488682487517033633675175249888899750887984150078717545586759099173503526007112174351772196394797507142211430120531030187741084575436454712167800410958517641748593264429414000852193382176634006909253963203301295744574251397514281138914391972256260564077574692273271388333172537565580030106773292768398437121544888095596148583275340532158351422980142008546648123897944361740071053734443921305542644696271743415384352439237548776348904138450469281881506039112982441345297768087579765821789582873783133580641404119447298045484964962335982678523301646429254530201261464412892589982400258384135024289255251838125929441499261444176750474080159858552302214853065911307781577927951224773342436062680174904223866953685530114353659264016823716416650212170499140359009714667769309128699640733979554233711738991546648604723279439273071882957509491350259439947467978556433394729704801264905974710889955529884510674581293611195535315602306474683676539956021511289216697181257641732389666365751869032896889598671140809896325480027373127753040073872599018549377379573808792994752316196703342599680514351235129598318605641724325271542940742454445986451873986816384716168727226289069714581369426503723991075859951085147351723556271141442180761922240792753938659860604852619468842080140503680404177709536481824392600898876211260288058630700518110703824238056324922336939876154448083564557039088278952289790974911232687879495280243940196922417567267023049772558647881953138442116247722505728725198425068086401346217625698743607140098614103647136863511361527645130551385139145538002174579502682107385218573612559882530781176375335770144906076511307873833087498319809630504291936300099405325019877964601171390105214224759172587531687538599171918904732747228727191240291143368120490159211432720383818099917385933940010416265131140779759259488556118772785327176326441064170850733956221674405872133997837542510022394504051594866140039763655597004278517609698022090017454536816763313093523153168532041423726747541004960824752144800843555949651477950770042368183858735621958499094898635095561296118662877219820176098815842996949721926129388021108632466790999605776679339508047082855707660172481753337793765521068779152504455837666772929180672676254569946569661541498534436018340592449028137849329577734203876884745745309295244804259168703742809967288192749182980402281851169136317033609715450563156941609590467508255471137335517867303340833936658892071811426876115791013688831532325114795302732809731908321545620398699365492311042145527134957563912452557658071791030200601579627803628316815969319735579859217882792190965001872691300596005553575619123713852636397878162321252871784382749140605785066464126402954718964749250125062623042182365820924833892606272351889995823204371465740365568462461850748262511460513666434573226864197517197079147404109806083515012374819996655781911783199075060000719638815832337975675398404354330575102563425181281466092578245828234319768637342767688576927746689180152646045084907594338526369950287244518945734506918326025622915511998387053321897379387841325819957912622729098020278045774951250471621223509865380337500248689028388189036985154005638200748500905147677216495812178287465489815580221476427266081207448286685098186618115617360207549713184918170085381076025112468149869912776031681293057039321689414257425011981906638144915370323007459639935344827765100844733416891834861339929530360897416660128319971059598064314898453335575753406318907630904669047211662635603425375811826305696459225899179743800084796077368613783536654219261194588085069938966666934935017223077889217330072587113266294779584552020870162780862927002879229742296345869554176556206491292798355721152085343311432939645082845010355796965339530514035185786643465542990099149754061329955869188950598626182261971419983856303304630313376735086441065775544824753533235214929469141373702634664818453648348460196791834647879279351290213403230146234227736928075295286130899684943915992562681965224741080284557629373907996572987839249540289013709144769418427622751652915413340633002462358679579566297655616631532342356556890495833427068070953862103446412000563943542693332994566593622257116577339241940736964869719176280676362412898160278883043903257086415772396982235854559296892522035653606912059654700681710332531383233300771432199449670857688082782574800763013219859828511493848956505179625193509514742881574837982113864542106285730080617720882660110118336444026102004341760823306325214876499741967222786906302021001925437473018370058798713376127675891948553350074417300631800544295553645952369918270096846086472041555153830999755802377738805615510616017891358987860529212525478868726252288226633541895636126496326570327064970942128887956233257408358245819936416984784466584641719719602616993080539280202586682823339256974410790457267806337412268894380560937116524415399801959017332289851107069394404601333183117745079641165736165361640175067996695704704189839113136382498780920406647680367044210714994474293007597356990876345281189506412024638684866297033052342239620805325905189382448950815936942397663347996220155220236121267576513131617095068693268433342193494637047812441266463637883500581845483487336021328764125746629329122333399080914866844109393258493783411300307825528589138472389882558416343294684818419017019181397239138675880001086073653555436084355288467706941396079738505243609687828166663145824002776738964601562219760941933907715597008209353680976712655107948508493613766052073163934595897532908869562543036295162592144904865424311511728755592915055568892410902993288307294372745148076810565152168803414444111933324689621537617117096417041333770803702009031156215667594548240753770877870455152469322784308109106848480047311763214428602042966545555388409406662624470953538085036587837926823987716586611971549091663525235619037306380445948181156240940529220919953475245651804186445774965093531746704861595782528423890665098283040364970745925403432218831368838183735754056576436326981706325078089432707226622705733064701712174909080671282818015256061121640869993677726786230707770396933538537129759135307197373888271146946977300012975629203955856879361734804353841449674822676066203059439025350089091504366617470831798308520827665466495337685523718128058970976452134264835030791795246008872658787618300933077455874885969432823204311789674314841459015687421211984547006882234358398308975544670714237890247393619943465546510574422107580197938168654599919046148534701824537612260178166113958823614564043464904853080792699633548193682674501961170258260338074853184444220687485070448796106918219106596506029561018965107028300577826428561173076143112492354520021414072962860789344540096310138903311097026704810397214445045040942008808451366103041112574839156309327356111005653443629902740830543168883936847135065575155006870852551627654367865622701056583630393284765371702742632533238181322249334894145728335924803554366989328690282826994651162059846400007584123889693235063428495235561032112319241618632098172376213503509917939021944882656982168833972143207739612176508936194583983736409653161597069109193093803427975599583410049488894146725863922875323217262468718813382533427911571718082520062654400793724801675071335954584799332443909916346108043909445223503723821222692198923650646732551339920631321002511464376878303669669265237153638522632579111044404547331617235804615793626185231143731197507581912236262696160449347661383820614528842882653047552872921665203099686954428182793974515239493853831327915329385833196511872432010633201558784326015560054236120765879453375837354278044476895901124588380937985630758122000643016524198858298024514126096857558257018412399009430978573116932438768605299652772334362981410719087107877455854022613590151986375890398195287537697967560343756401224075135281694619124643783891146854041549159244850768418774463342039741963449890248124573715854228914866851933643456288210502268972750875268899650415012556288282135345786724368429772077096387058542051189952263477004100866106531682523551419981199432049457955433517777870356363615144709228670316904440766561499479637281273880268631352428252262284764918657501606339395296753062917345088288750534844389441853091136410545367116011317510380315005144894434934234479897573521767907793572452038482099127714947789034580949367482080754905285997285559582619062276024260028256915691986261649490764934831426185570331100971583106544473073309607787890952650314540745858127575482660890512738055396628819025902235117657172054203656283046047278886630646318877596800422127193981119773433876507902322582236142386678720591927489901680279367893973344923248964205240747803693972548874108349778250568656155831678810119808674835293578864028648845997161837191551724155235760814751404312216884795742903517625165684424566374125800150270026832180327405355712523112401847113738279053155004506357293738006544807394081146765564497706347346112979665675578142495494988645665484125116867430123170249647990556772500647218477523921335258818682779909293850345725278645987783066479376129384000655245241847774506562970114603812300083550929191635934576354522892782480531430505213995907496428193709435618687857392203990259879203187481743062124330306499400819891958387762907307383711713172445882711087728677007340211147829665191181915609115470522856381296798568053237273440186845838204119697156986660242131776770163956964517631747882371443203491943172514536397068493920505949183955276829299034600469726411692736157688847717361734417406306850716675410331246812383053580734048644345139334954632943444369433004986457557684319822415756786726242859462158353114442136385125266384036621189022183455475472167160475922079962463362411129488461663209961275787628730279145014671992954983001619516445272042174205326859963847243791329893235793399065605214168221645862977901382501007633366459355588777017621655573487129764387516814053762669243887054363669034115147094314335056976856517764658131852073855102120592136462806144767585009066243172895246515580854849510585003316513992435284039310349960732458591463284726266884099157337315766562509291577859767964396012714034660238250341905319539661095750700337779171771280926288316931535273045647327248246835166276983804745895943078984009388458869099703400098864233069857251860823262635712108663047353249584799573337101099683938326400458032282033550836703875307737225605238841620731405859839694386873313831324459181812906546150985463986072890413840011354637376051855218866130058268997119812043674375144616044800851448881825952875594276286083076488833923599614194983860490335490734523151847857284589293674984096225285840140850993134162228907766458043213248865680743156232303042428032680317273702501574020057377254349224825045162496177768711115435439295565612860228526975476780002449512304270109513514382704185156601048945455167458532792416338062188756683388866469072210878339269914360391886971376867740416167252212807863773536081544210201580857228874217584487881201824297631009534608115619109536850788054529647494720380768983708154259883905288273612960733113027933455021425010966584283195506994757116119426204549956146852773205463210061627418743726960154244556606892740562376303409883715756632768600843128427516880053174220376140332004428754103341789978363237960938031256737852521523145890896237354628610344811272622033661746629314820460891659730516106071246617887247630231307292918268554506780343192805871818616394777550864413661703614347710613318088379860770953482764995112089648243978830364757517511396379877071022142429509463205170430899204950633238500738278489967088432189009119364656515630795040259876441601018226085589363070380973716308450179593878820651153724702594256591919340874556403589584894947757937914135585316207899206994096096584013615342586763549072461000352972537505958245086710433133920648009607184029068318421425272790652061332740679128863872765554783126130252100850385708507423672372099001333413115395743608537656143699828815803818163638040515699030257794511733810357700464066828828575822457951057383941058601587356716574493858332416418724378605693511140664207166783594852673387088817337542393472793311573874494445181615474082685886604737982445668007395475688533813667873110627406514055740360004971297776543401584290694944156579664365630085287450360573250150226625553829061399566865797751087823573974153897450538930686742956135770676245509272315871693739085196926359143043447969738618029202019420826906086397852349513702949687384281348670172346599544030142576532080940247107098513910237585378235546723779213510193876347670789527475890885640584552563037138852869397436310729601207434485475025029772832439110640004026914965186974179206305068052678369498516256937784996232724991429801174877939829673550472304365085490143946839047254374816093337201633279046918400487735654142436169077389856200676104034765424523851623638358549513275430447319874771066473320912764884655073051337031323047334240308909278204612646772246532393002347386162439469344801137463216880254168532572966775024332054319044282132823957514953484745018523163224961457550967665696929511626555726856844438074203919142986012003224394564847490606465651337483513057054712457776130699606080020044742114941858760565255499694208171992745459610258425002343575667069219739386314161736761540785597096351471985941858071962691344147633812142573089639040375718472123064883110279152483217601556527713194904932605787499477963959711118656684871377385902034441242585642133162742140968119312512898271380902510439593954894522452028093585027058168061215500438260808673744471514875774652282163900353292845413540314193234923446943161836616210714229034142876426344236243342018177753064350380763775483297476206526688248596301324838565485090114160130832971279955140498308405286864400571591871072396203018114040367097980020991422419176238796215231837491725637449105252391585581668225001050180292474684821555652100109976666710622394797355740555010919951386450108708634691496311309055154101482847101198358071401193229874446829266456564573601550332852207352993260892530776778628512923692574075086137478654660168556986043076647108712885691139067318203915571211792878281526653571701798025706283594174302425334064463134780597503922055235776266388496606701066952796766510833674766816111075659877401311212552997765238717980440012854394392014229919433405708202533828138774285684765378168081633815489289865943638446829925251454046527327653804178724168304841987174864218547082303273141448600032360860703859545951084053542895747512270701798350458363300448202243311031048708711629244871304616226847996284636906073538226753134362425505813127879510506802731116145036734298255777312391426680655404397554934933334155176396082584424900583859201150394156647286268034991753863317995189561066178675459362353288538119180177678964429732558024409710269830243059038398877943839830284792321394705659975713343891098328947273623200118325494544209771654784138958205296092054337205752001776104933164220575529420905091694573219652896169275902663880742112609899688004581442860258599359862713799480791446285306089833726895671668689164398132957309237608331412232239186712163688532441373724645231679127465686215727095643606227055651227086009923185925537189171606509652032396671812135352381999919017300282564303022182690850489273472772430846642262190674092293676056382597769046204735752378049857929630765250189554449629627399231223314216545512726446938218398466708110841840470975154005635827018210579740898515445818569014296027451807588607706210753687089816479676268744229545813438748991514328604415149942979214721574863129539754303566848902872555713113076626892027374562379392966958236018906523610778252473085753085806093315704833354332829008221780623479934450053119163004866164803334648985953846794665096367925905178842421108186087146930567269537847590704177677985507062332709821060881868619275946142080719834034328529437295625033388207679502309937661467179437534623066172594956313341970494321105089794572846067097571119806423754324325519201703038092241894146516324661246061454992280149333737524811739933894019506423504888277810401758564028142134664346044907357607370552418191037893875943011218185324065559495039121401271787071070787602526747903922626895211897604717712013925192389511148459192309898207206017612155776720664954009909058926791068021726184684341182481158366641284040278165852105088214558854673090822400053820701422148606280992211730937023506364601335060094215076629015723720612317681843468043883842237564000750606459955152728158161755317004554896830096832232690645324853045972063818594536520084398063250789471813676039394560647081594246171298348694855825148325810081889456151733450793596252381654308526347819578337379081510176534210042652845526299276496820423317977724300009259269357878803531898973319446547252774867850040494320057095624341085901086005298819181273000246588007295917454973868226705006480063112969241388066318427345214088229067876187514178753553840556457866731863772191006700620605116622726570345927928874979946680421171894207026510695979807002864435615029680227480993566807247534478484079073689742491601237752824867174462896108020581148741776548056420355712241603933094486941357327838980383404499145965591578571681395850955661763607871109027359140585461547609294270245171396125092562758502824905877587489937827210237834499694386661901227045290475517993673670479786920977080985646407122502592232174160497529769749509961490904265516519382729891939846612697509632517588386622930226918791768312098794375468537160792531887345076424187399933098794381735011575609329575342608058497954764964038865606297899418156926209609008658504845097299114367370129722740329690635485891793043128867096310813870884581931972115683597437528327491882679794612063182324590563720622252071528769131746840040663862023013949574412643209115199909820370929879859267308097127185395551790662190165665977318982754050928385414830337977200129285758837738662751425907088160846177679760624110971306903837853875372978013783288275362041466257701778861167292227660138275445873918067935175377178518350157980491289943293400023536702972253579952881684312185659019941052117327050889728538178710000403968351881290237476463143881021193333117804055629481706674627449721488181963421797184781758625140509429492257861894216847743081718054026054047056187056619701110810680156704023191965084958116009847151460930123029404016221291508295057207664505985668914654589263022825439511419367778855288996056732998724658072097012958577315564666441469040506048992111664723004856405496026269629201686514758560437188994418931081611867990754085036253997397207734339581663402871687235984842335557544602338963304600860773906475116707013374702086989127470277007098709927866686974707273165621020407611248017509069962054170683288848072887193041114410868676370709749881031886937975182403672552650742583728577708236798599570839598544119899460602031540650217982381933210907487263632953291474905451074141804514298112191179497835664689066781285910950325371963580451520482967311075382461531357245922698156806861851085813964621699254751549486085455967798816986071787707011668554303937800162192482103827378739189183650396906744777359726031863857985794634000518328544112028004779185920481618592058627418480861189270031512622770226200175670938845855176803934952402569778501104202005486172627681899010032834408335086328988168592604172911789041218076867977453402196120489768758799071487098334679998460023311679799740839396153281921815294055013534732839943364314959170778461150288130269918085799944787888906834418596581223585637913457651262039272493549458784339003588427349981882661911994280057710367487726331547846264628322508719008847033748513822811999531554327377095023691355663267633720392503564529963108989395051215089808455625115658392424071731515307659762585319904219845615896026803304032278937819816491951367679393565995232664816215711464572870276071072011044412840221900930633736887601139090414804250511365815512149035471925516491110210809078674958782725292079298766454271217448784324135147533128890112900148354202061838672933656667330565394134614619314482046858594504571113092251513240171281394336178441927802767963824354735797123105950536083798982120332111809583086101918844365492765244811689329438591927801262546155643560662504359953407662569268846155742276396110785024169513503513204222418640766227477227848788800848602122341451013503257124718381044028267411576123559642408127491807564167296153564010648377682209871740751999125054513795646969169513100048720284418541116065184728830174511979669944486372863498802415301731843360616061289780822268723657667651909500200171354044872502884791955516336804395470789824352040997508188551175940671911566869706431973947924546617020924780550654136247168387151019925695331424537454779285724006169934997727148583819639941531338156611129908871260860492940478248934845810321566187789029537192198750604744584157123809082579585705593610886743482085986367186739768036691939576697017452328212877023461812858614795882201454302176659785777456569803943248925358489678777018238294030678989301011933127843503244955265512063630157020065939144145173791459533801448647707128751522151866031513612222036549002638678133283031554268835174782211626271063619957793612800829173096852202506109066020494840057262212943947753451831473269382574235777233071670957365201727289192452090708424696423548737066045300012337380240271810605950987840635498738318704131047868911759218346711602644607213854191194788253667877958865412672492899794156681120379824805286255999265763189267168151292986884528079540012332186688758186833761480561661338328347342366849802289281215763446683589205145385526365051490637885572475761193412818632749598640143316011510856017398671518528518805389454879083360394058519448927772306215901178214715506479374625122381241741622175919139337283320505840968435519464532829684278467394665682658924720014593191484576887322997585785950112150319214587409980471382042494099377482210124807766559676231386790679904893058535579953271406014919432639974294392544135829031012176738667069490858373853116376496692809762285267378891821207810336989850783053199093777704153295381221192814333821946126561245826751970916889645025291316286675795770730858238157286236285284531784080650056939464604771767214191361496898612641438370898459879047140839405741480765007522424012162634406809476140829528584685619655062075115210375908816137316778853381911404488793652745030259317761348625860851164001037386766649727966542882438854812217188573731522642426053754876700419874179171055492954230003660889534816485293604273595717904497711113206822400320688013514362498911074698596563913082036837308852357851920252266980816484944034887051319559920433428089596999543984168719324402722435544512746788909780288929378123639940366924297692964416235940572422694129270250884297897026521146310835392114217059249285181528914039092883930825560330559170136839999759876658372850195035229789157727097423419946365759420693453549053154160307102343584433700125653233766385912181501158912186082565906519106791152000983140616980575830747012489948923590289602652771557129171545699460709288319603096838899041654929397840020281239300428167478972080501264680087848823949776987717843829952920914139649060393593183270382600628916946132819030811120639418477857067572429228180386047402903513555562142527006043253398836244972043821900179535741332694361479826246618849153828024228489238241488594787131463249802574413514183979631584273148267799364796112697289573126303415701826111079381011741461707994076398082206388283477543720762050610961507885732441984624453070906131204647697128384206728313885847502544685436663244521201723950934215944796523658531829583755268629786647959715002133327472589209763806906864250723070838079510329559908994945550253072588758653123722056677434122902349990760518495803526957364898740235014738630832382034580135431417891348040864645099312507885485997768288599670919603716172772846374956177803746130806872981286439422847322225439099800537007784395104149566829637834792256704120224596806894095596689402686619540089897628561452789340509633469721250182772170453292218174036986747667542886910862674089018549971415968513899688617293561196739178274311060582334386442422234284038136138492833863251511346797196226788734703800529909809353917586173142255879389039455894372173396554378747267885244537690723921611202913595637398482821912878757004703037150439718366814617890815237504212667790135936288949988408232645459761232594039859039231442486042286075625385762138926298095899331275587465232024519411991265612468727914319032626979855509956651070890419613060520340435948966201295722203720959035436722010745614796487052004528456363720717687472915155993890110435044918335950342416514749450505816039571930997491235211931484222398409818150534805727036143182668175592720811418501511478831609673678370172580639206267252837040973756257965161457427670207440397803877546909459181008599614992854111105315277034408551613540714912804831783301728897674330204006573877312664275527790034725552219218325205331015461873166724166268705183421926481675887207393192866596790728554025515939455377430851456920067851855143734210959194463243003863785989627783646384764982186996523685326378906603529390883244127689993164673485128001842176578974711798016548996339632989311873722766372608003204512459097533313796715115267294980181460053075191225608174169312614042875318525301620409008895614602981953653781151453875859218040124080692455221472329976191407502419203682963110820883285016395212950413512785764632424937354278286362061446230895256908314577004581870349876264121476660090824751990056057848920677643973377327227781217041876710846277709924685776693838017486658623969733013950487270788610972034902294073401462618663398788273126370673733970217399452917368690996279265708510526739432331119206597973629188149023670061389149258125276828014545937461983560003002065045970433639409641326267801432595039689431329720884995906272162721211910853590961066222986146920871251171867903216272881397227385379896491418589599459635054945349812768676974098871215315813319162814019026509116924987188014876889810487851992316493829139920349038231647583660850394681843255190583008032404902753557812748339243350096887172275788176410292724934105101148253891896233102940662712100612116299836376937885977498672669685596371525018876600072289630225498181021692988336339869597926806466955035327316280035353240600401238582279466694575979615409719435421878577033634720025699933958228365254752450091846185807597874044212558406984473184295772723254243581139922268194834594984522917453300444795664503592065620010636242558920947704241517083743663899449559884601817172172534037567566905136755263045222666296870370766111379995069126217493294733050512887280194590562754744987338301338412957320474815646003276001652128264710724158000086982325300142458663182733523442567917953963341465906738323741137504338116263027809144651406737576751247577004624175051239976712147716076807014989226171569955111378262480681837385598746135363800988358942535660278991956161259463925282226486361310979688354403175808753974544910164077568164405982039551046141708909993692364196699636559264534214072655239859964834686394199976732298945166614757077841828733946951427633418405315409868723174772354092551951933083588429697789637149777507817180902455995202055363967398426876081209515868670481541498054030267239762082908578015420439504138263758763105461044786493385603393201214754301283001126416302047043603671743139055203894808163111689089263164953530323190387929407812802025854674221376879294768210958325370325628929711913967830135323478868537638087913732722586884094069909705290218160777053956192223137277959600033421330617740856938511593072792544002254061697581704050623617796192094556454047315861932803240322055240775731419645291046778513356140227421259218000207175411366911404477150533607624775812896006327837667069584379624088929946286075738422334202107837916806926705782390012522937908429817749164202682183393859257253739808661181523259231681100125705188765616770656279250855876072692903916824135566961163385401251409428916344977203499017460408555830463843527150259088301549850555417626759883987138558266581227276277538034417298248683781996093258015453061576769302683454487306760483996100232186422672612409000354208289192031240841899446524157787776487133849832854429968005927610056421128447773032792167003262237328226302868895581262938197210808492215825667109291224606602177289938050043703958239812200460591018491394822676134427854167574690331124533005692732360332260561308645108521188139783595850334013544764434446549433095117561653755784995989261287323747545464717234040221112283362415604452940042033735560247599321394555191325385262944179849229849613874562164808318098572168763076426760515772180277224103600804027027641172996436084498619192358617070519390278967453773469465601543103266711089603467561086202788979111016047899019260494470254020556132390607222425834281819950119371047588602646042773619917441740233203337892786423371442974857495134647266610918132454220592043141340892503299152104887713865758058072790955495989464396978036598504013037978491108331420187454668494836643001368695599484306675532728127326899125885387169596625392996130964784674268739362693496271118378341164740595601463154555671036538745295734586139875239358193781850634899980096339673649142032593480542577020127133954958702774237969221703583772811876515056620250669560646766706437334593091902603395232969460445070026831257880710044272936306214298182735056695920465730680888189299466797452539277339456627096136098069330913851384887158794571875023459660072602363055670449419342233999227369975102431028485568652914315991811248628922257027422381505704136188586903628712802429720881235393907762536548345125804825745196797210711842305172776514431012834852855791162753602881256199296545918958291378753189350715909354563716838102233183771768525118197500484546614316480473466215659976720518818370769225596778182453041176221335219325124488224997263357441389548642147320765187336760230805710001502731865079106288878006268628647600873730141258169982648902074962256523609848353810919660093009500296955664359701543705178760020855492329712567819002176639632366501389435669193874164237160842267317160603008091216929524856853705537093754227348887414386886065963387229136728836149928983134924168887353785422631079554804134069493248713839517602593279657834521976780683143943098086960311603204955190492791398042579310029395786534657128894708914101264974896227108423356741919791076033323535812795007645837249783289440588472291653474439749879101311876467624830131159259485180173198736992963379449311848425930015687328196063600099939490703572691515306276587088659787953375500017390686108189442086795818581362356063351565334953733623765540937196625036735969051990798822575755902176424990473033573456252839933650327010964234090535084875857784047677160330516190230146057806382745214379942362857310718011465917442502963834580849064224831844008179819437475782433842633826001318696985311907993661998702958789732431533467176835595539003147015371708503114076090426856927178486408427998571142157929479440260492840580178114735463383266062726837152299313505113615422881992952155809090817927825382545084685636573613355045735342349582139797547848092549391747934154455898244517436590566052085852285717216010692088524192711944435748153214026050718972661319571442412327437178919939883330312405634017166755233672745915320905038299935239711691004774494365858782686298459132645159300330369750864362097113947444791037676112829639445718883896173965915195636568702576378297405759744410763430824279708174423361084630993176433707022534035822404685597360459237426130536775998513746285197516882264122126840045712866081782643497175470522874682801334954356763777325277311152024287590298791040735303412818875832350505822520202753886632354821370656250617284101228121071074964220972447676051947324500976136950015472500124341152183108238113327592222453870427930150261224829185421881167625592343619783720827506755424684963713244006917263703035343624580297002001035674966179816278945988284460879955542104518746781595393248278704130296490523501909316719232724909026509707215122025692529053555120472547846298829836787446419976921004075397387931680185501631410501502030670621566902313664419897957923981596997876349409736546500209731794028644373092780622936071861182448267635297047878858612563790034288584914521027171458286963317937031933487601903906112242834633789820214849993655879069971315984427597225671677590471691931145787415541330581847718945022923932418248611327186469908926038113642720974017045523284244564702059895679622889528586533798140124952930269741962162464251660203461432279890604241319991122292613511183493020243428830343002450709316408010132271035351365972029100648107387063594325835749241354542312779983502895044684671620234727478107934658331679476521609619407359092718430063900886049372316666206183004053196588271751513875616875749872600251403216097171614047768547358611024555355621091693247777965440066328638792937784427677753622562932253265291988611987811635116301064138523122218508154942045144213994930988275444111652828206466191685168938924233740986819608065635647196195078995974653101468887661074242733824655719746840487995517326734664937443326051802200751396017450634600196195561543611743103882375750172668473591833481970263876752074621112872840083306801063031944677677844217261070180585358413065701759797624536766555626931066920527759542316778014565406738386257681263379298718681128447921509213649818532506334499528681528434968626405033964210334879307613434194111803885027340041957642233363126941289299198685257197208033045352834426782972987199771181841051217488708287375313941734868156205484782950734825354018976778811946134350034423482189453246954956204082025112602167561194120216325195379657717042037587588899230395267140247291224126165443819404651099402782055270715156027359732173961531093489602543330212789025039383624906771828700682274260975352710670738603507776671653151417627450464437709028688793979820989415314728342655528185269046089757570500867336047609891203515983343444664208569680203022428909235541541196456826517035533762371864034683548720061873220708679534834810224790512412594242474766582656115775726067697839626417737568042772940165584018279836002214769267429042471884230107341203269521554297935770782337879495473263340566774360290708535240687421575144537903826374253429554640854165544036822468657534967885788461834598041345777927548913726067978087221460177541452084345492943539845330486444169228201345413568883460268168953976522341155625602513907295610832547911388675780782669477048088852112950749404752294342537325489928639759721484445543479344035773645492884602862292937014052095096101880091477445334728933879682242340941229514758268419849891512311504680809953179718490077102418104641878762927500078175316424118529562541045805654807604283421207804498682372162455081100708622276401331009217170659050397653142875799256216819601818304863721851393201684016407112534775432874460931542519126490328984393665955375642864711796408749827988678129271102700235943670020662532933400052264817186709883612692072399376775832338665388842301995898015776932414405616563750220685232882763362361185825228766281843331417644804791755352326406893634432342656057064503964168713918942684957024404944515063870002746821307567920855835946595173024328564965248347458280912419225629413760045394886660130075802111441755648492164165952697090177135274638635678206158072431472466855332361939978155897985654104326289543223018496608985577897850673374289237744295120416570719424329447656152078104817835785362978018309457362566365231165874400657671240138361849566454134926496001907958470024459618542518622760463850317105260034995483040015903429827524676567648168415248354230484459260288350934820960716637689736055346262087595852635941542309005988342753967139592648809343483254458333033103534061202941970311700321628776446622978476635607330443704860897756175588727452837064472073852477694661343518057885731863538080098149064020266430880550067128902303231713944711650486870479846758867042489735322059134266256344224357960757940822129990478085395815638395340799060356484080095632579855525262969286429755541756138149190976245290877257670406694653430194386222502697887325275597143158336400843571937348417898050625244694458346240661264098105943294706419361731894566358198198306439606436011735512478884643680038293714461222070249040401195117206029386706925955148620610169245703270322182871627700902636954726130967150239278474003479802869665495768970519826851045519884725083032884184442830275219082930544215759717272772129566717953909775584126718176046626222978211479902934400237812050791811152853252528333797583778318263514319665872779841037692956803743061865347108762919233843376282574166995770551463703431770793775730113128556970350224392137171932860729364474980384091231172752808444929281089419211120303721283051448556952784802831771431529579697590631683675198068124611009101962122288366966032740215217931853119717745253770849311208647545069125435516246608991173830526446947759533878086321626317913552906386421601041983149856811358932019204336063241042563144176455706487332280689926812527295826989729874665913318860721821480546149543510393231249969347703180621912673084572698516103528371605554035407880367644853351382063518458857757246384472987586494650448776250029283541210428658438516886275237023517581707931895708514403766792227102931518725348327595274416032834278776346906458702104079840521098410152181681218917203522794801594814162244579203152117521501370551145418138865413476163629448912082050096364325040995042321601681260836935946892424695294481965897520459506803713159740223788221524209726907091177009746576105547101359274758428460127637396995065130665450051730498536885123423765916947345254737691452991270580489493349073933292294913610220316497956810690166157045545235813566771424095708655539538608833165017932229129580245563860761139555286402404972163524728941885192854590820492100807256619618656387451249962386928601336111302345430215507790367710932737624218323566833973915909511011343982111418651944805459470988923429735159605694369195483619707379099718294191321946930212284229327486092457515023276942614796004060026027929042527818312761781332358682740537041810243349054316680330332001544683692725771773086997970940561113198549432648410325404059119193103960347955536190525325799743257975874847432489880080550420789936957761479223519972191405533896680283767782860735309810326901118909147320186225008669583072058703724967848121564995241905916972490625087878543185263439266338560727620822688005164003408227119593414876627699091992818224982577918435349360931237437895361481697780558390529991379008930520594714569379111196994377102967454677258941294526553720072845375780388376692540058705838630559205902660151814545868829498588524344170873021728073809671456387315431419710287175565767200559035368464923694622607621162527178098728334332390296253441823896629679048489053427526597113306169291845891901241503434575191073635101504013571089926498689787106510485991867406290488973349546793208157016265223495218554681407014486435899003069916937672946691992981436880229000535396115170718237012131027987102722552135863693670730844664331818743749756246082851023809042257320142255955317638593646853444211302905499177248469601657558651256286213746439720845523793048708911042331618712014882839839232859427961677492572795860856573356471949951003147062024027714829275385492470126099821986922595210777678252060751818778937253576412416993036637213626687394556866540689914829331733609191178476976628973178212458527544079107754483591098166934350505013792947484387369129691217111621894161364738734991254542741042614406931481296266180921542183534886778613784999225473693339537978547104289154137190327430263563239914946655023249956597104766736428744685078771419201273342908045222962959001916687485387384872159958927083110617512146151222282340873949571465826429772497185255937897241691769027602902138644672234626358669084805486736214521469124318878535560719578320568436411985299936366642573713672753296540089125988662743073374763995470159402606653194994182925221412809144748979701934091625810689091544183400818105605920452117927375436841735988917732316798220279000656425723111416032366530340267632125164982284823023714226113316293915470458300083372584064657193803309892946003019715509410801240892704874368600887623125305313263817838395251138116028291263064456558398543161292135682567863330355463555994015571184682427050987793916773037985235062835681266061405028276320504746329902327798266152737457284820184082484747579102556478559467297582543872296754401089256890535048276684343150635941970140308994547048265489038035912507898632550399788027984651414078478525926757831794327794525358484233329590590231252980490097414477836706803436491829918993582888399695965365247322186786443798428306359729338115150973391122412646439363436223510772623443886128038855029569639888740414166932706366042731699655033855208641431530154515063344694655656099527863152816231548851427295697152102494934927650435075622712053884146831361176105542719650335603830344045540412025628882722037516034464982721454338215649825947913115663314045046634618867326023906622742342052028312611824724579867195041576862492699797669035720566722783027921212759283754419293943112801949397200194481288704744200198296353971214182004612799088226769734942434536872013095589033956681800229159934160914873595197161075135597313062698965260092840801510996277268599907953249730696965708923224210473847767903491486805090976524595290693709913950117885250058437670940452591948373749409628612338993142910665496004033099377943691754466653677359065526602693175151832780675108995253517042877811084626056230928090529242373031270483668429124406598687490651625957177495753154874571291955170982991183374031642302546749912841564329495732802355226481677638484550610095863796960417291818621003957591269815512195808108377871643249945270582239933090582676645691900680392585443255520077236166470007983842619923427269065563606950727900681307300336729008712234151412384801001285028704138295375921236875611074229812730419026460562528962043824589684748920022894144848169748824584946640315949471309229947400466702178750282031108464259536510889293937170643669722963718853594536503299534385593165451195603736554416899197822562608096287620521891987900704267123756464438762139036893365398375007891450641495221050527522017401539915316034762880080827090553049855987440912727803741724925363465922219011965775145027047802293722076424896387360632956812757573515848538681632885178985318290814406461725514698511025094756053157982612446858086366776018194477928606249533588750782179791491829233644893596858440955719954864748998786987796700891491225049976196656561895600036709327675781257830454735464631336280176796430484443320404199559336116139334966001247784227526027024601459881197822257769618207024330010981031542183051156468653535893773112664318848384961087312133926680627693536615700749343078181182419174932055664456787450836843134782688524456568670364614247404387214793412479503359912457721552278202311877500989909081346352380506045525013749095710434861003797725780242253106675047603798636471607525137144592326373782022277691217865220354431801682314983643785576314897160273653143114142765902622022452389802574251688998281210727210999156131934184285269892091459770704693076596195780229875051373286889800766428386731948988451143488862268225000784268951378560868441792224421354802176208193507519094570082957962305505407395189372268113509083321510240606132521602350410014397744202276578880494545283275224728686636400672712416604590179039023585028855861327220412486147222619556468884997136418138821938856831657191973341344851785676015948917671197905596932374789753194867796435534933463416898431846623171565190120659004578392286789088406610290118105360183196732500282922592290182718707662419451233659478323360085745447695061821660876838925864717418914475022129022641621056819715111346444663047478001385556540534914423043226948979644963842788640383723480982057034699729369056486338907317285101245581538625761523303960624193064339846179223771485083916410023414669055229263700035913991749642636801167902164248779034442036290601490880356253142190101472643311138186709068635292680264495434358840479392691812217221644098340056422163030162403195276806183075177063648577550106556462445389750012466167022254689021306364745321227785359479333197568087339500752457535102594952710137609227378188324710750477698006739846263787631738751604719060609838058207546524573256848103058334173656925541548753811095155699873696288901702350063770541196680062725537345980785675019981928056453637429567876567188104235407169241599400156275728868840064252443975059127497039156352971096227061460654541092154654172577322388237160085827520185312873177032578844847449452142655453472527824569557147803129979166259784633003400457691806456240697613031732882670377494897523849321272758466775254150050662492081371568586618866734473289387771047452380302940097967121290465767209916176836766011193668086982652797206824884590299398363723620177838860563785329752606448620275060520951850145626898430770092065021719840534951629641827329005313799152223905874295803718637369540199974259816779711977633896832246639474922827346358782550032669256535104902628864625905127417979649909021190625917619381978857331273086660632824546858034703183201183195863996007091526095690937153716453135448330686263804289376393634159626192920074599774867955542401548289181923059209604134992022578771422164998102828897909218476826931034935135828367062842231574452383953557919651752474504151792851577442931638916048305603767471203776191046167615957422782882803424665807191567761849678219503165394404898649010077685145949658039963175269343120566925567374335587982264211077033857323989552334470143866351619949485433004836753419151514905854037315948230319300775915419694689697790650084260810564643004441649764005473175797748818405592942615637606566080162314026670079555655645728254554888389809235669171690714163562701775957992180416989731844029452020856026842897618319943194204044602267586592507630141577930225185826919790097916974418762403833449592296967992963719958583649035019307705120472763382409725116297914335978741393340152985819855052200905199014829933832080579153363444650687011884468095293802772630146977859432380869979915324203396620347434983416674432419414356677769936070615309303848320868948182343488004315736816343676543811174462200927801583910344794764367221462877936800960439960431417448219858616608456911494572689590852205398304781789223582701798608692225402001946514627549888910283848469877352806383407889751027334679941724073388477454073387774401335140364915509289239695975981788653847891697399247096806893395131482500993762306250262661765897462339534954706829724882400585867545957349809771468744422779173454056079637031254663206470515099138190920549326339421461016237689796836023234035940977723429062675075184141751729674831111462853250670782540848774235225468252766391500080157028864263614935000003227693523843191690305811017068672318860407379948267839336803574305856457706812288386086904337212341052232843646555244127032913258370013295286546966706720460367728258338359706883631366800067068704568684231490740466888644753870077457212013429909269701794889752494538227668810568500314507778950203949218300602713907671309531698502768371986124685942019556714997445995764115818738188559632460594418300884228043786648450367627739068610051899577512688178519920117182978396022905254382921772836415990948182485008735736748329773926418333533204056680010268661865253987350821425410012552881275163894388497720856546821894272578777608515037599358741605259845038574112401775538927267988727790899373191886048204811975454596795558179539818530652628343374695112615972143179139774004654196299542113856092571064684476793914111661855495999850261094442877098125121457682599108885458895179176470313174699418236277770540908862099993147319338863960409869612805905070055516646199955908179325549975056514519781850014137880104434378645256379124857286967510447962297958116080909990689610656284774168870433684896907505194324427474336341424700293935132740092767031803485947331128642195330536192637160885809680629229481930350635181282048054145929817993650071891146634411510473977075550021388703402973368052818311500070983308986108255179481370545752163709654920606206469762119117886290300690462386599759758699259980973031011450633807119259594129694790554776849942911432936149185004033363044301776805721102316149477244873889996965693987610186426152055381731528872125385395387953795393212778134117953929565490293551908142197802654673600095371297408375911764733300966779776623154006901568378811238113845148817630324945548912588277895578610350865223162749043409976610085551235701817805295340286031092682880305922504202067223001951542389930871635938677350726406767761093478708101577077777486790126319199301844820948324251472907828008160439525383931626566772808235594863502508417448015465551176121115544097136051886020093604266828975795505570105549132189922775725155926631076390324677039290682671904154847902806971427263727717873591502597946010903972633518048715107581926249004217805778619538690603150544396074072421588096616178210336296037376896397727468609319480516461476392197196311996791560139513102949659901306522525884381824391228815409132877313207419661247382499137868371660388422855515625399391153316209007558877722066509399679643691806416325377895497683530457327566864552549228903609345103687456257889911496229873983043615352051863920727000115314829338969283745686047150793145070086064600504179626285114161954948011268331807509751760823346942877695729497756555196175691723197415923498965584295370658728285912834671896441259170084799077031160645234247966558235031503685749282517396175238534300037096981169775337977385582406838854415376914738356393311598808631602131261576815529298759002479244506619824015912932136436322032571870226511343953392602577782499863518284154731542177124647810408460521393961103779181691933625407067696447617071690713950432154913016182625333747057211096849106644720865331675811501901125665393931516620009747679369525830292736470250976892683819678226460884318446719709874170701280326010041640656757300784761491939150485257227285394240774635256354503287197518561048103573284477242585729185739594257054321300413517745635986592217358061214369646369016791260769920823043709013860943658626248542588809143733031768127291017606913815449991941347539934984175957718858348316401524672830022831347105912757284759185028938788656958328604183645634109638144831493614521582242552128062831748901138004402260297541095930562370458596919519026633215032093352066080115500697080626101109798179659651985778059738468864907364558798621481248046995649126011996603995337812395255294264502716110032330307240197207592741110469407461748030271969417424938450310797517630861971833805596139042462084734973113091691842616517060732946957956638336668098931729344855380569851978751649641244592353911081358529550662506858754216560889583542275782693559329121253104313016310534594611209963220924994336890176521730969927922607197895430940274421952790265818968803250602269072820617138738582754615730620857206675280116061995931043229405890549029683064802047311570309714884603563076745211181375327508454579480680039179313907551739644418566051470847871609253628848906169550009766779409853394860459904817493176354844647137383969460947293863257001404455779070765258734870507824579446724741362392496674218271281052051976023778169531270889592535284730892796953626891583241399073282059039241169777104089083326061382473658237477396611967565570453507286212326339304310226684595436626253735742529840118835060402280237225638396377085734041628801727737676125104737930228740399740781980443215991821731743380102857683995349583841367169034207261723853000770440063973379912272627865093373039080192728916449040679779532201383889129889066952155608815342638772051059920181651470660787995747650627630479899058239017478947263966124954281126016818940313207038345300056191408978626205526760059438597910032056396986418875884917981715167704484179273571180436030388630177667186444263767662364744173834209361066917883096103496073736907333823813957929371096272097515532114277009930314139294714900982648552166054262248521977112236032326058757312195366214531629065045127494917514998709037900967106783438429520038414008417082630015127748891904950130717199722577560734054219493683523370848147873688389263377909677230342104918225249182925571877087777558785430472214400131424442252382438674151823032252365953202971438685958518914573968850569050462923520745871336002359388707732842886570098226298963521869900441440612761898902857108091206887450315996572739674537065521012969932201471870441890195102417235237102715522617098043635810486972863192281978784331668157665869620124278066853943602669980924152510052159909007275406241517253359539446639563561466961985348020185456253120436023381820708037173342948524088708024053227208820293178980279028010961504654084821075019796012859290449822066359354508278404988184156411951817034588316351951980526730339284363787056775295558023168568723358438648799160409277036805665550729409406795271962404334688282265322226907550457221360860230772667463262318200241219649211343535557309220396418980540658434937798655835441087254405686581346579210703590666875036887555134744856684177037594042958306095969460646989092444785381572109193901356889997176162976380050462053467208209703591407006646855818919401716032877004609238966120172479004552108174718984333196368315508561362196810353233431137226654191910626417212228023540307337903316300101946150238222304731884801126243792527909708161978545347573685005829512078449883080380644546885533251316167402253476392313604608104496771163721126143793911549540466223759978327215207051050076728990388850487590718746005493452858871370807823101851337045345840550321235530291820543802953331573752940123464291976658847689284907557864750383807430431308474744086277557706674311587811572556706284065540702586021206380201064168194093648108612552016885306351273459501602150331188506347498362209535070640863261502583673339335329765423193765515412879325056660274012174967196066159208322034478532892304409664008085317889550893373130870079334508234582303937666749673869060061939376583536777822135453940812334646524406493230679480163359019333682180762095182760547588223525035981636917941468405609076822248343738620144464514971066180840030043050734076117110613110917913829173009853951717478228226444346226612039779692867310482816079067192297002908240507859916454663233404967987872388551751008803765794999921325049579167861213149466020708393938674612301023807300381838073374641516528966783724069163898572436429426015391819264537112493092291859096950634033750442551741920480329081521022404827652386994420129124400356518547751952716890528685690821006503653156168940055099448533881940695702784027731999520796095026134634718013724838001482742890337531188283632871713916816025088414211372061933695891042801460992409827956310333961448562028156586522465024068642494497149166833184886930541084249978551193607745636809064139729354123263856564640710256503347558749285913085412051228103024483073888169614746906583765948240542666197850946219912414390771848005190903980522743348910968637707908745290122069176233758083074677176853491556117244800126006114167386421357664442941388413480074066787273346161324692234030009952275304160040533196650916157673101302433018694041075719258394476413907531537745891101637365704750731054195632964423410157327614550310486482859742690101149800053029882394722783923372550836433807762425648544260377809627435054381169598700428452236401786725128236688535885396561289729364301812790068565262258095339689551836170330055349416165747601422297361908227999945626324151666915795631716048313332105301253469053430351024886817769139284707331297601033056440319411274284140492304035904216156413956473284907459339105679599890852668462122851633751740503014673113183351680357257971420904606902866176577790332491426485201530937206963242775242383614005652397591567297931797169197644041648247403546463427738125247706953178626261783268537807613621971879218684072750297140702678171095346649785618444997922612836362735574848193010049267288878135710915540261975511254194107227094458154424031524829393308582239858475497734365793490339688837792926385510100588612250285724155502101734102086147284247229238849314271601784813537689542823837835544646682625298359480310614914961288308542342232321482485507284740733475335594848430625816663360194428863806411270866285696717639853133431640789505433571211499378776856396467294983255208386973791560201913545114056154891540344635310933014913225814080764742773129070624235298409414189573052682304267075174347870106718344157737432745713076081604132100592295399961534640899393552777568135776694276653548820122025152134798975335367105125011945481895272680317590697223373087232863773407945242858655797090336166218352019265812256999385392714828417513869662315716164249914931605096355475696544358374868902148478601939507907456341819511159064930428275218779477538205915020208437261049480393011760249867509287781825129372081160483622421488635889599045376952040616877366305657435656598121086892027755920518534246615036182947886892600074107396941328501348178932549098225966624956604375810172778303620535295367370259821864863595403687350321275144027725128136269592539251692785204369896908039032456215829406989888484147484053284430152179787515705098384582935369867364629105622024644368556206972372002374429215443649855194955267192718536465003780382913437093053688641473986564006947961420142182462696584395203086398818438131279942358799257160056224907823822544298607703794606590160584669497119930622200706566999114149566519592193953069013696970426646329784782604791562076385049110338065278501946968642388605189940145193580123621147341704592992118723755006749583398073216946063281149124992033410337273879966834833249772340580655506825667978200858825947457382024965336995133542405303684514115050201636879629064613303596703773584210017236912046004671714047025689557775925691957775322642712659189407590081783467122323371187872209329058520598763779999641837159881781446267707426090223227963005583747024854839829716351897295994238309218617879929626831763373041292431280902007663584427686361558344626840276631214580422466729254026792612967629527794034820100129705505107805317425236646847249898589941257269863277509903455138596664190248167062269161135948432818791607734339223073672015980848555444949559583902682281548028997992773229757616161203829089710401781361798284634044150678015983943996759748182140860942278365562565600059450904275241418953206241540001945075883560439551157032370062492903879713969598153604370517444481939799415452571842043441639997689159077563194797337394750879399058285826947720022926749376191250006899670885896467380317872225695970325277517449743544114523970808978652136944678566028753933046537185631473521337569552964291021229059036960361858080997015926163875375230388846225510028311128752328494378894771574621119460751435405382149562042971080963981819939242528957130027678993842674903678092644526442396644815432920822911270563251950291056101577539555553413151987385763068457532845995616244419718285268554852999011485935366934766193167461971884836623505760259838195272530677978340071713049169809169472421547433558065758532755132969651324873782628484722579053777705518207385197048329440359383791853163591109102698767003691948652048969306811632309299044696595348019695081462624599317391280597814928626772976968474807809675979700001705656369207201444511284022154900856682869944272094002207119961654140572631557552638207423812625680301159701752393167677845984367607726667379884038276391150344777935925133704476820464963961355382426343508593534799266671473441426565882729220344850966813262560495049573161102607582981695743538347060192578611013890945220440651089651507258988855305632099877066361581015892494846770634442034039417401358320182653330070186374021516829555699580759984743625448652360809203800187808801170307278768681549204015015127783231898088780476910351782703834666659234727264711973011940068323971138882771818605127715666451938079226226781071262196431736603930216028242974281473142015928888393500850204646095974740643387157813733015320389904351021603032230384809918964039277217258848317086844720469425219869761108318363140392558723901871226627158191630129396637387173821492618351885137811585984382479168979813279203222164082732330490014447472859935710868202711430400645062572933651909123669636533273459947365946386515234862543461332527228082150979470035904493412003898004566306762517741737688722174714468472541085469792492787416286277199017082163412733193806823650314428456281290439545269857348210652455506326396653365618083159511846361331789546844101177781152542830524862612105663884496761514632111441344898319024871192385445352525364318544127807076234361199058880981130008286972999948742837305229096900689620043501776898922357129899136628383746541305364990285619736008049926035350918477859865506328917753549567931803424905198514927100042894044750539018480147911615460488144390575636896060975031924008408892783970962558995998962088969252664687671837714174722577720262829603631324673902789041501313932716479769346111713999764855856780887611864076317000386927783491072525110514012263028125047604280032826652916743478513971941090477535859136531900163688003490263003751723184372847890527381818489967610148081409545938269312226008141399114277166673406299211184453098596221590300485725867022946900017157808583076562966713942669920390727081271394826495042657277843263290359665505913907974156366749379548340129884814603294550945713367158912026259991736910778914222427962762048161035358281710711196797974411420412499978082066551131798425256751565477804494246442244819968646767175006194359383590552147039152901446443735029862305670837026420378986986150208096139235047746174282740760446292066169784152333022120635881995090228743995988581084468986214711131385861766539818226584824962645392213967340441127442938058957904118601096993982357404358078422945466517872178368421872822099099522237338956720183908556764942092762238030386284157441042495301925111159924795967048402078555192965876869590813411343630224066288088612263840496179735811203661197765681140952829211426233238611290000161329083338561476714318866251325153749791479125857071150582130369029135892122689759453678447901338251970095493013379500545000535826162310487409396991475884481186445285309259118693499846887032838502775526442885894128374665732102271593639661751213220880325869070942147240220237943709267584826229874932735976166679870203438737771333702947917454625224558065941323483074973092039392509013942002700074013716525398315079032995201762807133774252291127436303538301553854539667146678554867156898199746541603281640149636142072151743557467449993623643905690969900734469332660357259386143753808739660380175084084757229030287924021006102683028965058486407563280650832872690534673882568492739183116817606648981507897211179395545946915768510787584515851129331520392812822981245762914353503328916828016622877190414314248533720333099038513471819951223530571087837473446739705060972876411399108296072499805297498883551902750919278569406885967808494595731583491148653617865236409420947175621439767844665870582811408830519794422091515505038627683204466601528971305609317546863025736527002257804292393458264935986766263677299631018630359659006199346470510317421321209448137090782331624712734098788992932490200074084366958840511941703572455903779426883556415965915642230379726907861673372477580315143577378114106155678333443408247103343541404997548041157791386089072460190695177213992111270472304037024688606560488542899550574605170221751057321917301685504981947789780182529215477727248761556308275305733525473174972808812031452986478040402379455778513352877358141107292179874334041281614681078577384272056651447646687392637579830360578275198182137882477042442679417381796883792348893424915750326114114218580598189571991410757244277330180835767220380813644415551672001955798138442886211890911599478170433464962165637603753313816488244531830392961818537101612954684145131039337022685015371504017530567248224578630759406766546527049147644410047899212878934936507892443720512918315058572566626578201919113877130183968569043143698783409428443777704707284799592201025871729219939658336778810982466845050788443435299641916094919874369458155115167111740340587874631702929669574029814908980282539376485167477531274372203538143367657833551684596465328138029776953299826400908191365247485136178016156736333236989233466107766497225772052945503545736789185825880026195439323618368883517907531049285820392670230548806511744507344174419577410288035346741549402484953316085074308664492401402175045554856801129697442495034503845500049866361498110582873125939954438149985273233383134842577558760301618201148875203623596813759235042244411009476809128347669617755778641217677682036239889887889435216973558505542638202359381614682357474485046595134074354557111507684010225515226091319594516854206612798219898018996527982632338585109980805425661213724590972633489707733621812591738248557339408793452901835529392933640391329105175086031632192692394032489468905559363560276209785068296571610890492595136982157712341506425685653012773739787522305751914328934983224100484991333537459593985966512642896328204389408950092589623257511384009338959349003105337017771470522119865317848263588263035446901286706582648796230563813576238783036781450768112419554765207438333026185640308899565834805275727753838199113870289892398981331540581217298966024986128878634842771633416478835837667247480789952192865889553099613220593627858169408283230258874207180157546886777863622298650254937080802261087754734281764153550635230665062471386251526995777867626472434593907133713021524589315803293109634869687274392480462069694290939553515073819174314833162103781543823133449006151626362462974414311659052725792396664873258088277570690811036061187888031053707625816152210839382417247664911417847707057364623467355062700909023789075399057153186819667706625651607327645837033689528422325148095552443230183146592743641525494245213251717982904121073454613119381127300745128604456625488296445873051536948882194901880436079171593400390212102448969573296097022762302023622317634165863782372251552960203908810824995862872921963397397533906268707760493403711364772945192189376478778461759109808250859497374940816147056544885131487505827740046196807219681000352564546784054765924864370831303980240157029433566534336211051302677265455851796467092185069556319471718578154444273887595391839078718818454180931876467211414992171440292718652718670761703384306243986670467973343570424169665694764559419318811667004886468152964570286768606992024541138375794321391511070571292230648961381904413604347631407851868498625208146813449670399441739602376708369013967011554767711838192949209081922835698326618161769172428190858359331638820909577507951085351946458866570689551445830709868477403695949816873694084147319971361916581778357123384335764289701233470845951063675102589504826691003042180879805439674062709988831616391542678795787488330582837078664624326408644174611980010863942137997135911679582258305655547586837305064542596173324707834709347608509391307314925564381315030805620961317628631797075415792274322122025529331590676100589363765952178630195041611671571952836030369237314493319160758062844727929595566028960733387150605134836697187633887463898332097979725395205933915204268626089679507117495894552755886345914159392766540411340094569675689387245747194084971722316778687114068838081262156815869818929723369867039316593289605682526428321122376716766835988744821068728538343759700079095057390352915734657604734624621482951397493654888800151029547358836677595946161221899303800375963848880248961261147230724229239984093463641175933905466825958188359509190806517396899123112988812635940642824615014230760549484046245578800240581225561772485703466890610593985654002507521780030023755331884692297789518610443069985106418859485852227788465082483675127308568088860221569619716010387352954769896306491632616296014582139444999115707880311629223429877293706400299688927647874296228829275146065647290819454347066245531699544816756264185410919765259532668354018036905823650330950812240673918593669933151632716811315524227270083453925481148559251556396247201843339233333736749212070500393505970605383606890280978085475579798581542742834787705757762640452323187541816751692681044432159926676403435167903565486961009603297012070167849766990689432984686802526886338650593456407849770394172515356483543787456604582937589417697175216285538013688658087126272672744405054254080440663173916629597969347113093473549218538512659724080149333647366377296455572375205762502406256973290971569427160546854543774639195021019550120436700526007493181702341810398416745556560754809110958757702868247760255477671305022006248607119102851482060967423606178788068399483798280989070879757377251121265738427897771006758213813244788679874564834958840307359003059143281417752388709921395160606433945008535770709698291382503934491073724295621070034534706394075499703164175441071180394584141519561808619761237487999466130650295586502681514865780190009839655923933025552462395215936271261577319494774901866040917607461685004952206850952742946455725201958644491458301967777446924203251200398911884971903930808058288555705663102383571633563493728913517955065871386646719737106277596970193179361315662500360245291775339262597977280209130558047635936111487458796837932959473309670757246388005839931653503954794621061270656602590839491365737079820560462649612501986655807552273970635218650753345174657017082814109184839951373550982942691264409253792006332268484246728671615273375193667818685944319205947123773548458033841113687109922829613221367672495726164085601608345240544258674228731736220614473998106966656569207676007957094508529549177869289307635051040137312824571552204577918929772331028390468775870333203807919161740531166686726858132112029016963807466916102548228973531219164184434686697758713092221567641705811144278415221267901506566155858020708587947515494763614944789575263124149399600985155695219216004484464956569016841856730364293371906405304651395410091199561242871744324157953010251241880961581990320083515030789477630348800044348976018584194351619570968734120903312966283498272973662520357284775965059580730468580176932466329035151502949397286836772900875356593322094083975415515457654661436687934159633636529974776419137887154900553838624061064836513136498988807731004811889568699278532468169624722103093758173223690978986236648764468529616272841770231317911507972533922833661932144984085326551278716940778549430065939331738651567565309447783160203651756578158801276032298404439842701589394057259378650162527092717329996663808365752179757034349599526643965746661487936344804723155145231421840357850326702065881437338401242155212634680091539530824363195933953823559244672855756470361133616939967853671238375866779925212319303369202705974738839360750571628836684947530137334773426785173907714984747431763571367259387559875341906277541615404707581104038238048060687878872406486667343836820675502543051081594447039993860830443611855421088110502810966280022309990736957438238706712874740008134235146931222010502592032883618454982185128183892934161500605092512798473951694829426546858136162538121482435957906586502658648021743199019314951624042016086332592653496339994351330347146522237234534646384236127075745611279471129657365625705430230195264554223097343018576597097636240164050864910427464104298830365710740139627238460779250381937123240520562680546333567215161323209607936157570585791426359280771764147150518279050051655468041101402242192846104797921362917743950127896205681724904448798550071965344511198390919369377261352062035331870636812096241739500185040015710447557674446901048867886480694484890499188976711387594533066369228042340539396437098908716088519608546114831344466149231038066804040161190731904200546509994164298717770616696665133105550662654463494630108526343728582032736127131294507834026773524294107033190915993466086143654067502401223649794335235492990461018215117876647097213128350252836865970942503068384134322490050718096453027445750524046949771687550688477248125820381744339393635891077060342667837760520335373861203914092133626722981078970190818563051408261497948624552359503053982734459425433287020945742467632693979822504707795733196723343330830023604844139585866263579326741936238251363150062546662218989732008398719053499054664010926974308233158461038543359125313170010699094005258921100227904498843691254258323296869239916364894085005733642998101995382582787320122347971793567722457318952390328648477257379153157374674979219994655336901512472521455967909128043321988619591279942454110346263218481624010952955321494251381459930215353724289766977595181345097352427937041949818721291604660544918506003721554994102057125093367338763064403545811974604106134783975213709060300676367847550069445586577919022324149703462378194296284165173342456450275019226483881399401857298447885604673217100614098672990259354457941710895790818777595475149788620987743538869918994408180251010789482217956532204699969599835096725892623257479740453614985117076969387988975345924461378957288478993870553984793333611819467396999638331030196250075666315689719177445838448081592843649395016963999841054680844975181640637334783536107201375049172197794303599660101149266427369178925819188230721788525877140616370736942373075962920156178045986534371294356499060988528654278009574097800317773090870117395317737830085525440550334050069654170969362991435307201297305444783768438035230235970503364726689085969214115991709653829472052180455186131874467241228036852048640820542101760949691566030272208078608369412532652635157700013010841432665172967912378984902013658048372740891937439153752218168554315276327097212999990244161861489976633851212130289838505641602162955860056021858110047951062833634222738706270716122604755671343356042883289758024624087345309533927400712715694030785825511835728639612794482255939619802193719249048377488115695505103218744098258407183564726757864207721573532408146623408091592922335920783722504334836610085278173482508405235318508384038465434208865919345451127501967853406996639751785534593418796096904463494640110874284043441799852998685215300792247705174182642461858810957182119313436344318785178676393389531088560103144176942678687473494175815144130257877208646257437083468317704980801325848322009138757476195432813472829949095334349735740010327665729792845973646652241047325330224545800571947830364323664889525950936337692534794738974548602192729610839805258084630945715409019566140451787046142432281083044329269279709044398869922507693885193661296454968185440026862561670021794659463045752243455475994610564848140379011113948598857179500031258175514257621710671494162245041402399142515325431193177180170100137322441818468410359775558731770314916410485391214546507887980594096587939227108843441418561287983552242827254927163192723089036174927576667165077590542520928099589076048918353133947813023639982997137624904948501051646391353490418464128440407757284556274496525395715667441975399610398752866346325581490196178448262966062932650820125397742285618441989863611833976273210320313242364522022944743066202018760115209037039686118032197239792108725546047661354991565642080165946404369368622019092870017191746752595602962289885428336139243163196005679571112625203538083234843570197410877977170126036480854570253330050418498045725244698938063688391055687861439152983473757155662875807195014476083989651065213950064571989664070485001895820821560034300791201275568258002223088404510549989196370904011980731833157366853702543121395571038204592644253896584883303368680165039504296843995219836403073987710204566026688447718179644251250001660869781819360504095200718153126651185585541819959005008397862648417715757240483391769997774262907657259302670539200970782785345900325416837879405384260649070143256403348427770929853031519516790616974780082420110581433545796316475186117226564878527645649674041310234844749846562928166606600413570706701317596664158476287331552632005411481323862973152191299722642917872408608850855431666397004649290145117674079240356321515392325094387632078738828985188546531222695370673689383929796787947705697692425767232195784838044625875010432435287007657076081045268230305745295948355750581452375908100125500328291727078591638954800918767757460562119362002009576271888311951756064977615260876503740552756526222424446358810281431006020830943591117277248767600798911563371587969594292503023580451879335548145781209913633450501794041920671780610024980095688269724868081102869322604280353206453657008200049046973963901758629739892140329591597391317217399137391402365182508092978081051457461120764506123089530509334352099709745751590576870003303918988598900305623698834145936419486943542699444943736162891852957308260306283272595695266154439672117614766330229286430108335811570695290792289072294830403758696008707453470634629206586760956387447138902995885220752268523148302080066759015416971527456782846753671017464037664248879891283766493407016394955741891466069871462038057346592213133301746593685342318497060534782568549645628081943127630733006356406744581306627616392543563195718000610313147601245291816462592347318391689398496931920183169318554582200156249560594875609240643141352158742140091026359909882496026996442579786438623175768438829806064091592490902142292759174467060053853837117018184302514034865230681220253059470325747615508572712628466936269615834413209523626211706898315942934299144588966446685121025848899274274146661778894018131085877659379950548143607581899964047037986743947286269664507315297683134727357876635726958619035518587568625179958892506998419134255405014718308438955215566738652554843555626893969397878396618714843615989437411193884385941294828008339428156016913045417349822437323998623622994613939881929202561038244300510691458448590083269660638859671705804756786680893851444202033030411574569389118821561894492630846115545146200997954567274773707170282291937202545470729991324340175048292139207791679022928780426409165756493385891284126455343002996345113438466534937308254636613217954580537166217278824502864269379792581429106334157237972150066547223410472651783598636039506433324652508155454193147450410999848972867772619688547663476282668084651851820135669753140705632285307035019679340534466859583784800496438892289628486719891048815356417809462346865554269998561993690809163265154639122379573878863507122629222507599092497721384524924860799750512681532267175004426948224905575185504176107964592608405212646552831972304891827660458045371817441777695286787677081809316164812510710996632002932838963431772387077459819410682396248661222230385237022592938117204711951487213126419105919141854962764154777146418219986730447100110808617377426155490764747822514799599185345880987253021463379079264717906699315926214753620324829575803681180518014867487922624295605906512841881201451423439862960993756413757373788859233970286009006216635929058201346722684497807205612421712010642732404194938147449538224788515344389849224960903473041038376662647766911113371304538778007683384639837357583650456585095627343984856403082596927481269120613121196168271161160960211827919113166128289186498966910267912324333130415496328711514600119729446147028148617534962639268848482846809293049389664976922637964080364509688827544412691124096366704542379594471277539593108869448116703521296768602283742255146568916916969710154109802704625707883456998452694040189026168768377819176108174663186351524858585759730728189286451042457154325790423034821287939548743346167232816341213546373884866947018822804506138505705297744227920755253222322274207741831836519645700151467887660779574209543922553019051619681409346559422791438420707296228032873846911416216827373580662156778072352279087143609411536982002333371261395109229077731180796798213240674335160851457017002764567669888532209066701095786156416045160277237002117049133240242538182772270305155666756777107405472249973663563322897713612294889803405144173153023750780827689344844321325930707133733684806349587194706574688983235360028010892443306438702680058900128921096358070372122569870980869652271835244559410594411230774255825148138963281339876427112809738881070597392764033839633460450434910367551131015899479582730341623835972456579622579722145737434371615802660665839354406829578664227588197947282623428344135934144982482829274403942206448167282418369794243947215374348910926366026557213169545840974210350590227243822319940066669065890217243798257294829715245682787720497790468711201001229522303636906922347616065977634096279559775685348143357132436056172719960973533759322239565125957467552102607963784847796544986759609986531840224333277728792626890731852660625538911783255502454550423365526151773974322645872545195507145886116757638130283804010816948989592960564893724816686622301496242943240732871901924368847500278846088405698559311122725018616914607923043247217638081551376915678647551645820114513294600316562937440992241383782890111273179117215421885452294846370549917221444693317069456078950456752781983295001624486874067542916954009213059964403150996194361265770823402080681437323478550157877519377973403208822033244308613052629653006566280867724007458154882898935681670057933904829317760784289864349739182495496362983196066180236815522671675431541735924938896998414644669199565548818738818986434963033021139679897863070413156254550492161892972994540141477377320737069971187049704301622486716399508616952777456596844531000736718715576640304889215906442218276274674506120941856179255184604627298881637563139513713806125432953235991709841343945430120457063020693792855603099751680148990863803883677946579493806491195627522645497173380393952704488538264435180459490181097445741146143364202818212257596328201103677945982327509735754441136354496854772025780545984038780155905907744651076030080423586788349838268018203588312597879444624475199049780865444274535204410020235832338306150883834074647635892251041883436153385680861470563596066214627165434698224045238109865371058641957209305364300469048077629673720095973624274014037896475707236607378187365644411672423465082797173818708979045803134459676338138103274233607709735094470181216310189977132734273627188066745318414618691048274573171667507208617125658358505356340808662766177543973335439212817020097909408320191278972082021119451360067815737109902908919585634028262951428768049895285404901160745906109993265104766687838271112231842650201543006361657042688897141839191232023594527461036327245278248781878199106458800854955954400491401005055011727068050469541031369669348850945191304737235600804187933349039927850348975062823774508936556630891785852202504202202292862849993443505334676085560716123537748177647569873487070631241157786791732031868815049576653063302689272797774782797067930299448143131024613371672504320111868584970506649508991669174556684546094022974870665499158088127506707405797991558314148921344824166689440045643176162817150496136337313933734519462205028606806642220419310260114894541756126824012942693095454857150565452706208882105331825203469817657630731434857454937955546819401915712757407869784115433173167305311920303926969767740564653128256507716468018974787016494027400863292799693491579612876314285399203097617566437552318019242897382517834709382181124040525655023460161622955818705589736676728974275545523380980544646882257889732085519460799614329965993219455570791288936999895829619149501182090156126353628046222990757399876582260521499068707267599241046485544578456144698692959825494983893410654456572929829215028926928897327277479548545907186969322530282369769749025639509595406078279377372078109907894364221711879225940098252417923184228553646664750602059703703742281679618826550162251052088063120671550501286788003172153101791979301732227623996476255572943710307429235560252413973649271651321815468844102153886142226243410826857834974319036845704889240872051681853767023183304646297781583332267920109521924099503403840494751449189191743905649992239431320355734213199295947750655842228797924660288223399757857366213338902408639440900772786924308271717649678513179579102487879126451682897852858278587508376795695469630511134351996630139004686788068697566605322919318281389775443263475731593130229952193277485626889655679999779691101182686407636436836174441002207167263122613527801961068828810892565475285689069444430567537697427461965421115815376120932468681699795600173650052995333853626855767012981461035695835068431632407403834528249855826220942243305818736318828322716245393450720010283669632283230860097686947892863258725635829739935753952412592085850128802446451278777516293564432098974192253097426261818764348607603361451261157793234627784561314732888016168619339113987853385584452753996945117616483668994963951538196509496818794448433718195228572360355376438794624896904078772045589328857116324979689260350802950339377726826689692038233285898799014749945101444565695771180283815292735512495280389660036127706948185660610153997919895058189425196678236635713780402004338245939561551975031613930008877930572468676268902087930447692998437705348377562528187326464422809452970786696511471264035561902047859238088494206968371338736024491919927793507643699085855238633231621258406008329630737357577511530702687241137818371019760722743937275186926730319705916919511452907310958336462920628275779065639398187200703433302616182716162808158146925121978352889289898347224091077292031732052007516309958940078756279740124189305829923837582045674564137671707582874038994932078446342143358822860151794173933036242509146823727578936448521075718459286988299294600529257053245140329977915101169571431873219922131708145333086774977817913882040569742272435967030342328130409050870655124710007134220996498476028297247916954537311675250918656229557936703600940033356932115558738772818878960115815377760297231308813288694855538982384756711393703567318282849936094751679753113774413558631559957562480864886973555695393667872156888562741319302178770901979787283479705262514372918321016736737685179164152147423200619294620737110835411154346675526797684698445955504844764686487372247679956100128921235413109050574542482083851024633577967695150862674778300590668416711146125009072355295657102460277179650159478488340895564663228403311982306331525256075779317290512743770747975264128630156083932140696458410529771426974475911987832138234175702923950274675880025738933176756289427449321722241009205334095716281477166829575824331930407904647262662548791159325162578810863302598680179993198169481573990296753842255343171595860100204326772064522144690084171882250940255292435051067799772278746217298692082055061089295065861829402679297742777184022435162824498173303985326396547962346986567623606106705942910111849905862762057904690654205932641803111207093987119454866441747911509952562848795814163799405739524870367014222292860378312071461192276364141140636511884989089867887442349540570983136320726958831604684813042049389265995694493952493036776681698061924002441626282411626341291898988150536161679571917628031422996507551207899507164162494690130665630239622639156991640790570915496294791586210660303121161991403015972476814670708623574311549907553116221016264402226376393988359356907490107885796419800845872269566079268985221530806318877150420613226762951142347737779112687521484022403446949364824356844543029684884618241877893083349416103364807162753220695084390871411262132914678661720648178462941820560865838154840794519099837425130480735257402012908840103013108628199402232178762092757736637047513504268223689890631571243409038221051415098282035129479498941334090289183700528599796836762657318940525487176331942630214534109052811754003351162120958320585651726038841886043566983317343450348465297641337250474720789718168663684175239695779137412922285801797639128437227184037676051050433244606501572165915930695177958779086662375709231761596735639613157121920485816131102827985741942428318894474451767799207235372188927180597246114316339179773099978788051098561053385030253578646646609601191129651242974193166425295981259972161636111327354489081722607887990227386196885005218375314679938532924997868277857624253156876731993297698080961251692999527430182169057383051811390446405069210028826841379984125054963062161078019496101047543818360531827700398729582518450264473188439375728856403896612814724711797964082714125755996556080213159275189602979575264620147643801283632792231783745995664683487491585154207442399023843921744725624342701103793660815127489225764837698545196806472814377947062788171237586626801716300759122364842595492543464465793926287413903723589989866198081239520105660027940650872250005683368320057299538121554812354936747462860072025884524365115004428418669173820679199783001209992730014605955493908153652267985281868521559604176033109617341751010592173761806606440957356537308572732131168430367862635196519402434827051897258879823187438309883644286390989802588825925615998707855455622688371413367441496045565019766059645589082995544336737225470702210947356690430659864314439140492426293550508973951096928099382005179065027424163833159149728470910709872317336046873173998034487776841002812610971914924133308732348705901186065046798266958803522113494467340327703944471401795155699411734571171395926823677701592221205676780655805533354274709601234135145007654734520024216579046259536265191487259594757797420395710116834052268983734070974106581760056066961599661870671394603987066225066697833066517013207585313712303804754918150760281319752221596185710372891512314687222626805122551616731245441067774940736186824533885602877437201292961400560493351842854891586017415423329365743737846101433120505308066578221165235179870657774567372956970425449765879339966579380030847618763321199292680268690265260253654719106370315658595905793159186427792251056647082321470045292243889029282047846617258777424800271045603710494753411926317340471767115932338279809335311348073838285310823765358982929693067842241170648252886320933380576614303794591345305879313977964429538150034796669917878860804539112043583803969573791204386731138128511422081306815227764484441312327873618180407504736508972783499166580677879842802385304335291681256146122672443671038914628925136609453526515499915363975261455521775909103526025167814329220457406762892042738094661048772079337119126064804363461092565894142375340655129030872938084843762719883261887813055441397299311040896482214140379491851103045028735149111450447818363690997978569934783885247129702009601804951653108544907100309621128465911425439454721752128819389205222980560603025074305411448423951057251771358802113498168225215452067818529811304713128544924406071287597823413928741583411925367681755541787032872395683749836151270584173863542266050153134680055528348353192588700553614544217044537987887597554520807287978992941662252656129358217454673243212645083279769285055339378352452014538960782860012724754614590330417847922105830578894552104261255594331884183184320557519325610786004109755550989952276869074984923955476903229034117026441589331089877092884969930316578329941924312677832410589238259846912779581962822478223918104187942574914788644136964717147058477590446925027228925470180333613242180286936801765726749352942900746116807434200998371312898191936672590594685214469281209582192050650965469975095341661246413664819476224437432886220711666557075375961053325647648239121039602458272636905679783848118138107934919847167700361178137035031635009792189490834657741993947592051819147912184033331630809658377877240089162680558361828219268895659800087085835144073287623983564910038138349377103852654720879875579362417191315743184022788273651769893899250178138235528040259141033040295810378444230902183860650946869620531669402094010810723854279468829102753402499214354144961111837799113940604022823083937923762351014748582174908159987018101286521649935654582761667102631847870873908884495877892244443741083903484630080474255636685269870184454918314339304064840947156013135829032068803335121453066991332652283214042415219277971987766947815186489431251231863583883488362720901492859742300293383128507831101879259453328616546436161895260744811612659811561351873054493407032854980582374965039262787628793888843121534190157319649076798260116129580649926161022083870888256645350452984639451029115710469807892929061078510659387737013779952836525974994989401512567404851528733858448093595644492209345031473246319240174829787645476669143154008679575492831782702824366955582201959047425227726431009994949189623694118435463966773886067383250775982588756753104030287949223909599175647536529497838981649434408501842805911036170990532189667691973823658499973708506532433107024161087362179020646271250698749556916627360914136355978368160547270704564064001631459665741573741664514094839692635114732377748044158741422314724938623240784770468894948611528804474537157954367129059484047563040644006745793928530565025162276608884904913578033827738223042870041485121472765009990534190043310306149542866205094380478170196891963296114268554772150546252236425827489552458956194363617279731987735704739980841725800296870051940827115670621974621444091411971230588532457196039181295494475074617998170782261088148307574170533590733292023649446279629560152766146881766856210079823423923306040072618184878420923553701106946634342238779890696878188919375734628411914643814775370046438271577025814775878674873548055232352195567521522739430996683957499624980994532590355617355024849543653017649888514254074051608398336414330973706842442055197728316485625132545322479553133704363370995154213856903147309674780868050148391086556633660154405461449186229411905770301351921261610406192846134638603840829865794011673366860604386075153334685737702962903516346656401828569800514132475499148287078649978916969252295176913126342579951030770137513530680684398670642499568472132488401637109363040474781668132820206226985630689477677346724288511877328777567394449815634070470409774304322719329868869816227234828579040179486248606937897283271275263921693666433136138661028937471819243785191396164430575253118247647025978104984000908580066532967740220964475969658382588132831766927462176304446394424054483669115385198288075960643329621413123677204776908492476899898093931583184938345717676608588234791576234250667638775832740874629844966406782727562176648400464084146988505332944695490324252721485856185517916135297746858310592879257281696248823508992006748841529861781621878878182752073297254716309567952821992608467143406022058788425828014720068846064109193026216265746049630435849350349958554356716960847528562854586286865086277633864024876734292415251447517539534633741794305211208135183121900634842651889256469358111178362455501076698078214511992313043463565140875118074634743095540148068008772770776864656851465290975151616254040047889473633053673924881419090809121868347555261559580274509703689496766296545356940269021048605718986468484897644097018570919780497412717810509602122663217874148425444775133579054730131942107677946309941950569857870385573737959092191148010660329098891975439643582685205666161384929240879409504351437920923941953741485146986812979316082186450615116859233219118121558529345727670416805138900360480729552561547119440954375679168966365728373695767211423282890244706160890960678073831215487967643717061631250989779708071565713799237689868134318115386271156712122522346771329539876488477738424012530230009585313668775207168976133027505636977081161117570164593603747183908725491664449559730989307222074761646319697721588499283968757900626830270659393227760726493309686269569745031606095033259010061206550937088674016427860363825952107713078600659612319488818073554800188279916629795412307576649535522632009076392350972008475659267173766276186516598663334467602970843682707172690984002833057833330223161302445017236529537856520507245357338640888661860009514377099944671428021668422494626252404229052036841088943516893078756526450001384468696054553804878521087754199880788561297411662489770748989739015699124112765829849383115448361759632469494703367697412929706544043546735005618375454924522628987162971398948415532066149420733036807333547932621360524634303819357940310996906577629358556056290333935973314101163066045903237479573838892341596010782425831923605532468437183382961357026564863213559057464305778517495889781905248084697642750039887553747525248798713825565686370090884843048432051575050604689356715072129081624167478796576510698286390077072221523615236924956700547917922270149188464503349170419970238545030215344048221620434638655610495198394377388435654767872380469086932080617160144064028742985364441604221815491028043114597867835825310403873260700391644836073691355492140595370852500654968360262436568314429365346605550393855345292841121514195240416997141155601983782195570832680581286353715853283631635790142308197887735423818900956600676128406585043650560245612856832007962057424943298082099656574129266251856701181543467148844864747607579260278679607853168126071611939778641039034690966388124062773742870865033083529728055624166579492894389099241982771062323426931122814453293077225584596841301533151944093429200717175159659766483441824513511285022991482111442680002382485275343298536234802034691670249363755160710829459917840379719499162624710951156640807381577422225853564726345523507038347271268596897003146371334702899513896677868924966382409342308162831146416257615776237824654761019614506628647670652893009680982470568193118726494125524595921649499892456935064024446558064563650934540391818011495210271056069411559346528518674734125180420185864312664130993174142484016387934868273747298695262368747271866711000300108478632695827501353065956747977383056283692949992575389733411370546050232858119432639736656982392335680950682479775800978337929620415048953271729850613399759110195871014119486796971763208040743626411502262070689651397643654962359600367912894366013772087812188265875111573566095743179659461362689846229316035806358475732534478718562464453150413362019172666415880627577317824583733028408212459832796697151949024115856638355665790733470821941040104021062934810860246294421695467666911724646378822060709730734083582240651061204757394337420381172259920633760926545319108194965865204049980348150488376262769251472363060829504356840703291787371432754032806094054588739823898922872813554377804300577085499331008835319998985166795269076810563601844476410391044215584533680559828389350399996218204049647268600470818211840804987913249862229850338085581004930183169371884614397310610181953798464732297786232773973916784971549744860247138600628634525901764877101184434060370644407450734367305075219604272966083454498332790495287228736506525104361797676521273836565466111594717394293645685906568781590781392744296628460292607341178574111209688066013737815228803922174421883945277552473713486152298683384553716093396451885051749068656532531541758200241087910658317904846628568375998215815543444333750713040136388333419874338471742417743308492490114866097838807629953618686946943133045930743902659614365624916214081028724389464891955418014933954710581902757392774444105235486967509896676948578609966573759592232090286129839860900093275239847058263391282857188741565767300522938362969308840167426797987188064396310986863830144024114867490620919665490418367421192110282681278344640497622892971430129594183371961243262367557115475074838551916875156491035888129841255104169948450433848450190213270689408613969918790621650419804429469249004454799510778408609286034452079201668343035948585074736158885757319152092825892057558854431489970632172308378189150946132337307590109532750120119429490164671819603250250312288551210615075085561315367933406420783367291369591061763772596299520477621122068649209717580059018251069695884813660604334500854914716259979159968501385699980899336355621608699072997857521780008161880112735296267141138888348743908206888610436143666351174870126805615659249232764091415520280379415256997236013205105377677886003685690504719916007089560400546037063985300288481799863936323700959197177867999956639116356381380839702232814295217176741762602482870116795490999975606722444065402700241981884852753946885082652050923154580291743885772628063008408165332709282334954893625402417665369775585325570117580179950830896773239191136040749386339601925560369655159300566770073822854229749540777324712203094631225394579381885094570062227633790961099182377109250950709447470140106824601601480876237985747995963624284579472374544178872475898455672437930892457455634478476147099983960974712037197364404271086478786570303903996941903878828675561072129278625880513943964473873197504956382705330670684206131535494698963859603822486945358549798190856595943100200775923827186725736746367881052319696230569072885718524953792115253022833539652137064073802056335499069586549484792155337872955695755151793219363971606156095055663872899424739041578630241725509640302241577091522795969898029868863077309112185937460501367007781924752126855209109035959150750053934107311384682504763897235610230574237214501138378992064617917384711828815827746391113532155451437466190849775000807498155099045132607183535516794864738580881777970225084214979380535176187563643102254584348795759485207133043988807573004832929583740555231304391718498384601364306541262785440091554265350033234973964187132583249528521580544802063861753894118886535652544087915199198279357329648094777127686151704250479455517974921810675913259139223496523787364167404288037137005782406027934089625638906247814414652187353848302174455332155278219124423804350220157108515498415083469557347188676849963291554761474042292738191444092664240766763863221209652657054543429102141058685388611155459819168487161876392320137912749353641941388275946975042996651001130944408096371985023939681064944243621404947109466738600666260073167322711193121616024991966807129473164562800478194466728650511664235725747503312450275302746452211662804704392798025664981114478812127457388478005530556790761777914361943817267573934087541246649723449553055594879924991643613815457682967869997560050954411721353045757046557580931367469899506532251661640018146599004872882178801127619093839515146834911622582556569860236950840268317083898371616734438218523316693610623976021486596426515615413373636646466633326765981774406988502977957419382766994548724308621269968765164748006561354498875107106254949014793001527155542504100051772396021372901432085778583525188800492637374078260737727276135151115054095645645844335721532579470148897211345218375613851542538648684300820430238607377675571729400110183730980736320931117270498884910614246010400596539192541608492647002472508291158480267900092611610278629283016984774225915035856777067872592187884144176694487259168276164113240555034999925068554013717055558663601634144329515634398327991077572699675156278577007352835626740882767251127127642068604565310592696629377227675124909378855007986444978371012609598705675791948690628902518606169283191075053111354771169612023447608635441615063440845575539289837803787493682306057498633466909366068694410086727771920995467669157301952574201417453369676726299484269171378082916230332395472861119085706783218446926131461451944725033658423690828300636447542130231898830575094398866336355627014012532823100661703834582399786859620994967091348188137225146047916378185237225474510326882016041219582896585436816915991866117146331689658104686766046395798276945491299376963424196937625848681239698212696801229481851146772331647361625174475826020282271039363421881689195335021925733733894142362443994081626886656133278239227789575628500515313442153887560462070910588612023367560190380406781499151501075346720337238472376500423728474541336606828765733772261610932339283334483125017674249361160646944074950209218661036910320986879460844016523881215562703891989264095891446567522205422160154777516324521332693953641106373940828887317051845460774380551099107277860891621474616148509583719999048438804052055093764624958459172325819766051207788032757999409712327299536685399268113822167535288823006757322867240526208959146747786072347032930049041270404193321216259132942360789403520505972164099203760430426727569251307646616906979306657344997490859063633108688096830544129516013077447641181350300883205061051901126929114620114007031625943822578813190380695700825960595645721545648884600258174685990196922224591473003471208082233871107596014313430908282435014148667043657153009455018010524467915517489452930075623121472272080229186280199346604016121298100404483103764502353506696294422043602964544890026960902744777720250254510426997702465567149730152547721848718930474324260072520038618976780939286897918334671653911762085100588763938935777424337158658779626651631639615349392459766086681590073166697777296373147749359190086293249005916232337867373521841220173254481653675740697199755303305793025643073635550512549024930509626211172805872543227994732541936225835454859244687445108405599790929035072816033800258016203642256086052761694861785040792501058550037921056788996347665621086960007833065324246437735769137075680550615949445639955734367499871889717746442580161456348327740176377187230257343816847855044524811248444704763061740268265499775347716817228522374054975501820201010970885526443721536201513249489666403626870056071181366480756455846712295596309855105950306462236737140796690855307660567278177836237690486711556523941264821321251930349007465066043287012228833854702969534358061550282678661088327060178126300975601817719527894765731415016404511700220566304815223105706644847098801652459206549037144038647088502757438502522187263032749964375740611540585114642119899066548940074706235313586697382562792531978490654446718861015314152241971456319801008332239706018532360558150739083545509930232690232950690496696947973933307392368899688061309296989339074502566607498103056995421506782329539086951942966735973081911023971523443990295165438701814513144165054347493834723795253253740977060735042224899569679731107715840931745921324084898293548088856338575732854781064982796128051370260503205750055573359432002040813067188824328138407492625066053380997212194008411938844356935706288574308250219531542410669688849825953967038468745898702032206778815632013765266110410950324859778878935089423996835919268633423071617572166240962024592326521837417765056264243206957400186748283972200632184325669414802469201835836471852918799963965070219058967928720148058307005557076479860676016840512195147936387294149952527040166292109393820017263593461751274101774630112510925899580770413954523330554396578947355472606034165174457034830081737241811513574341871497728929089257187093308066110860261780655101552095616794606667189939629445666627192258688203566790613609661184528677484769604017167681482375352499873085224338384027924558679043371525635451094658113259807968388415376340892518853036181395499032983467428937483797092440407517740517872018887436208693417945538338376457839077797189630551506395091015875900596074088824027605573593686392247800721145530661887624645651481229441438046848806373846147113569370179983034984797981747144454893670512042387982257309192939078708488931347826374299656785294323668657790274671841455521909757925713140897474990684383057927021934205545296550220539110329162875018632355685071630740865567633295266727189499766201746295969151178502224444814308558690941960429154395545907233197319762419118371010940818691390669633484862983628283418211304960650857101911217866563326654891615466253763878667795395104661493474996560622685171616599982132633108276315411796328439534465627157361361897520694031733172858089151232643760412781764655463472229839411969694135377723787351081788870719445545410228452473159476341300332595133519021140402562236891292320502823552746543450908550791335479208417875016789214794922245455344328259267705603166233988435930459171512366538960202192799509249269774175669102531572022542763061168299660559829281743373820129490234326430989319456976577849719555989328095714751376756260755194169707551055159261844413833348179807100409351504902376144011701773339073684232276080569400250649109469887263209772713244578661731265477128188300845349443471174025517954927044956735783800173823032207865005907815819963036631458089691532745428617105165235485026848667812626741330032775142274655208221553988019210082646485380398466898169365268424975437032549498719885872013723022689377883061032727322577241901107613840014118525864629536132039599027729874088941979985014911657482176677574135943328564883414744488821415955491258378969188249626865649686758032973976453602990387577657904235329538957834329715729998882010738318129498108303470303510617290282043308021438282566272687116216735969720730522595642381912520252375330285117182251901922975676344568979585002909589345702606422903678090033173505073134126405459033593356092582569907466659354334434290137064039642264007534495477001727752431572757074062938120715473627502691446867769771361981076590530871429361661636944189635804183316664154950638798595672314818130448087793614618120441870690271448456191936528887745998213425005717623195970102583780822686247801382912357706016589799946969837265526271890945608381606203705151314309272541340872658641484147244257956945739876692985553861495284580425414393797775350024332733224756735192628637733536157720496179191257838734924262783108920199691352049029792831896320717524596445175122324266238947005544224016677824533160421205694479736756764997095278214558723167336863826044149325171885875610873630629903434002919208616174918072680315944350972382437668952337085499945256075478606350956950076370753331376727465636990216010769228884651767357458683409140178535267361699195221791727363599974146560170268068513983194675897436037963653992053883953765965839672066471281897754196389780248205403605873668592137242370941939966413475703745551835354044928453789599783803143285779988717237112236288449812557293340883407439137627966666195190280638760844434146412820094393686497516690958912100094493435698163836100888728370796765970160154806148541983094106152802230363812509075198084934512108587438396871578002498888651083421032528008126398313430483087672687069968858252276039687479170503512944756992004903243683723814115345837754220591028613341249831045333455573454936075869558523236547044746703621574502747657650908848244657810698244905016888291831137228605336780642609576733145445608787844067633420186086633453898187219684915299206853230174973962745305591404358201726391679706871226389406191727855206634929502250598638897206642280062550913713515252987133274276216780279468697802021463572384987956064432196554088349658501938310905249226057209816089744582632098404244558822344895958664374127408836756096739351733516062366334851937782971885818271283937517814966337094287205613018142331955277801126748180094594813866016171389331875101083632608147794644569346623185621413006724914717944858690879147912380363602269643709193823465452281030142350472057040708184955919107805120772916443589932942063590006413086593512123938093504830329898364641729676886441004044659258982642721448993588363722953507817196376322528868454870496579264848096635221658485025632621447543631850254970145891674895707126450413341272255715618084808158719675677514469318425620404569836841752495338162806521723542246264252040005439295506739770147585859451865115496179811409595558871648014369339610835973930261357546349313716237793836298428933257372275368392078585242505884253765634728196129523364043276941912389869824213728690376769226199571705421830537872340704128030723599680687930955798344164466710122276541373972320514726792883665636840827577861002587293540798221425827507075340196720760661161128774415618127566743535954289164318706582664095632021426157061093993803120518270481814446879985726295663609813458130431992915172195310560449602780257341143767972144516627719371154727048293615759661470985939012696058154051423690054387044635041995353600126849909053988317905890781833035460361174469043176187309021113903372591336058868470458440061003576502535501628957595120350674126768063876430448238804573882092484393841126993118396173536098883118574687619717859749907258311397841407690918621573717039127742135565793760314572604527991087967519518891774823957268282527771729408234310236510528045971624843046948339586254692518614349378354152806970673557748657598248547087170837882526384151322955458054524127932718404579439191421695886331640633434798383161231738702687588923840919966367078850128135970985879724122015509839081939900821575244512106474880871245487388645696116561642206003072202628326865890357686858522297189763787939483570903738150431356283732912722441727133673855689146390735494737396525091282460344301872256331709778283850095855775986639552424702319293975833342418347485857093497656680647867519882381712591388262057031916857419336305031652612189954020555855618591781567072059099035974738134597612706057418026851524055053703046751683056244235037100992059405948404752103366893085135685696291809818317202548443676409921755724617062572118505442749645084329911263870092279802624458644162324581227229533859816867632828173720478238661877060642814129111237555112099806499129776376326513456482216182524237384056436494511614660521688495284547694517569340217603604973260267945293959255606098544178521102046621558847348244235193148569483343356334186155613431097692740955017011594400969408398174810211794862943278463000147413697300723560933966896171169871388516492912006063191835839661316119407612184995012509165361663154133227776676606584341672597812185107230274239364248219569889728860911307597267699699068794626792357603882065885632696396898625839922453891596661055157339397490463177520944725376398155971150802741512843282352211206781116524697679772690332032994847153227199233367484349841955628378591392091971224488306065197813202348860397077695974202083203812951813033241687526539042432051775325222680766799094609138578422198821044813822599510377710478425896153001720278132620221133264892699001063014769557392898936630983314327094276503200783552120356783219951372093994629524798439125628370123069269701756895970528331724943010172310795134806851088388145467445009113701083360048775337587498425369789621198850690083940982719492189898153427022640054461568519854604530126649910942955186927390336703065895220394698699403277941058128935949731294224558558896157197599327739344498221460075348764173604235029570554734026279714610963159499046394241063707410257881927355770403691055822797240893256380920196448092768354196737216102454390168231082787355477483034920092006977051257139578624873958920148387079688462045686908023145077360550286428624526816991761648830032349139027865348010611412495850867136158590800328467042907406221080181271293126587405968974813864580364264368186077584155820407924870156836317159222119376803857910376099754455575198225839453612439349639514823544355635175706933680490999718690617858373975549104383892194602610938223516127328260466459593573450649269841953839049959049646295682795353553241901645719832076240265892744714261245548461625066010755148416198969738643228686448498785367279052210652888474557548935691216544161522574007261926977782096673085620812401043272355692343889798823194317579258012224910894391403049227781091266999784046550379903362596702386660561976261816975587000842339974609799991754179651018086129318030836398921944162943573432956343470937694299198314750426897289099215811676287077485398532584803307164318372018778645075782732265368573639960167135382071720782433528211148754986493319206481338542031234500304326649676236665758621886290951479430328072170393807559642822544127170938596357379617924982615035264648386937828724980726904757276420017270759445290329552431617954480516432960542021676908301599204743038108107226042368427099139578076446011846741482934114935496088977333417907718367902056079544056177902312802128585833180933841027091839819919972754629634332100586201747203174209274882538259300357213368421156050039918313713340691452265031796727073465376546976345418970950720717066860533054311150897639438180764137738811695311698347863188946586673961292451071909471859790969198345082933134374983573334610799876215226347706534524788314838419196898857203445844453699598549433863239397344476018906604410210489649387231391211932532542045325100176025536457713750764701901075722375501554424598389571073284206813324734838907732463577067834067603155905908852984000397355743781357460069318524760859904522914729297101860386172466776634358835281790955736170017536288521305962636039072991658324134749801104869211677297872272607438620753895108494622462352932790854678396375516751825640245506650776203225287691702076050253164466649117157522615291482334094470656804712469518093646426765295376781759097967802165270658084453941836453507045191349343324915148769242201530651197677747047253015844097458857485981239157525236916679424175628138512417837503971269708430692233975571226143192336060047911017012205512729849337865638288592042821164309889431951743294941132370741633159643930526232668534923858487136153835843696128141108811894332146100116358992441295216675975166788122276285322738169365547637633082501709222328876244598680039787372117099513755540607589198545362881882177846514704929150204754956048790549689570081801532229859666880440083918601790564267170607785211368825333084288940621709717912771989945530142698203586958114002061690707652689306560602436102437301548302212295288576638186950155418179386711652424192128112200272887231974625512858165797897863355006846989456288041614321956298364386047102019275827991278692896851424014110870956223221845627548414998156585287331531900323010810028551179820740124923072879541389445645951542503907620131810212923287652776697210541183480935633985197568966833871491711472754373614261995654692709267775815343842762186433694404910349390415227522968451007505636218994659677642112146271966271983274579034089181927934448732529494720736910355878504928543045523219395569354178677306578956607143668422300472846148268199767469562557408996777082476049405191761993735758769946122724936645671902831367411855146242191510523981715378103930200092561282964141230067148208233520626463806839439708771285200324643248056971688000896161574378485183818845956545366784749697237001821045975755118776578244117498181212011546202382816755704930146559353472396895254451479072189257103220481164016681805626469149520124771526375482741981878411513628553247577794938491332998540603699228709781508933120276291877473753816422458299795004316654260590526999288424705379935267861071316117886061367266939635519099611602297595213186135777383663345084020667284983884848069317078390872807595255388326708416484163531403314211750142702128304658007673864409349008478514156490018556791454477508087172462162415608986387885663352908022083187136266646529346241067374760642303266283275856544880180455786815596687126337552955991504173699968515265208044554820079923777472681459077993803894299561609355652881479561980656384487750393411609226678319616318075694229696793607058902542541365068381986195722420902047773789978769971270233257052913145582294166756771960405543117422063860879430207567602158524807021935915153594220702520905005852560946343216752872088414353432104710058443580564692720104605828837496818117998440139811827726732149214504774333864344551126553973113702319266994797334895774244141051669676717961882674846001243570905409431598093172032057875266062273986276004500091034974069910109324707529797679521038215061591932759848861342538192565008105269096662988495374808140727536466195148750601525097168896880548570907003852159178022292778503603353623859372616495131075634317398850904634553487263615298621961704324681140693559728903781299333015067580707084397149585470405920263447571299758733344016561645419962322608798506143516495502408832089094347296923528372172722944166784047900280819789275196156504848680519936175702242517841587809135004063828724419021026592375250729930866422952016087011146950092476983754465586313104246489568357039621683669040887018251367832707986693385414999536677427314911006247581055664457205236637335025086272597622196137778768367879642192696772733425780849931237342854344424216248199402076309302685458206937047431875250995393401164484763722198570385392609650989025854569860323897561366253389401175109122966523608688862868673060733809059970397227614609261286351751015279369267149798520665504526422354126127941047993295379288730706798152229481418372459814856532042189111776322815715067419835572712808618453759285428419282422250490721348473242929402334931828128975370023819187974018348882599817316491841593196174171822665860807857916866932904721475706927815377510815365608770599629614075209849195976475871652035314896400327509639633005634281008816531075732238490441100563429648906235591307930670015420322388415896616902046110868315702374452134643512168995581443061653932926637281388135286247824604228716552281666589878260370830723706866424397831056089555031060882234656197699675226844235965159812229398891329253745933059703921436048459987774833607203523635020896485374345703882455014007558267760900241229789119894855521354423031525942391582438094376462449128238492070414198745881566924606216935365552114849253074536939522051734429778575780144256749788747197413636953008308490784945689590724449919291709756426962180825000191567774524432817222867141901959163600205750402946835994210182185827895018057545231068859724042109946057747122383352831332192548867432065366037175270685540751428206983222685716323019947374330549848828300086052098665882516502162075279504069294547001456792011399400414129318666662273616701061133975412548886157214348937212709884491067618235783187312706577668761502444407612964798395823840403498262702682393630263840370352653711549033524816419387956840521889654453688091273464553629297606239311949043661653947627799128668655541774265805924624773917122353864102864352377802023440757662476513451779385683776820367409958011138633243736626230407536077436280527021663007087854268171298571101083061323632922778292020568370467239764951466359160151139806084423705610733346713673027016903573213731601567152201787916880010350190378230815738524481882490317714483818674722995707249106232314343493804440325103141336404985651893476138627609027398954547681052816593975889638648498805702518472937389656515232243192638570245271983397420104199242880946529798299725965876239398881454438974619319971813781322422842852204643047991884180833525643026842600438427169787389584997311336393902629124182311794792733041032134747400278654306644257654615828791760478464479088282281897732843887291804995758269161863762042540895205184903872792908239959949461529531397081220873941463398936956364510034210937739386886528548764028882100726482595933971442895160848524562076953475668710270346551608814466512743714229671799006381326870183127418215253568396686546322894005584629402304234295799623406550642026465119648915673307793534021912858285189454329517758881228299228135557753339950493707058444265791997768877585966858968743272283678562363902992050454205889560797121450496267098054708764701410284858350563991314873725850285353561715364508191313265553152222093911446026125381473596996726125193194424946997058187915897800839292339871928810784488865365386936935928913313121097038201926529959390409669949295405394188420211545303536449960797571116811603949164622375428946368852144277701020257215186164689770683113874191458542940408338192548587652835073079648166643239335138246312171335746063506412546628886776442537431493905114860295551433155219757862151785006332178232114425849370779633998161889309206155219887392074746204759399054631465963998537655436548199878528955047383301357464476092201131186560334640045956838389489180195074234039649053579142551401680866605703580720666858688595765539380699079932933993759037326680332245250857758565365760974342124916420959966755960269417110887187398881961986993629618890771778203421952041347892022440385685597872554941086281401833565095499526205101772462470309878464471979165581165169206019100781354020895413694813581661151915669835718655688503202594630336485945079730759090162778457217061602174496331683919449826421162623518286711236053349059226533085997683073049794339326419206557413727396481995319502946064115729676329277842637559239577437129044473462676080065608909523947381598174732536218209479784608656644996123361270811017412100309629282158368308133745161680316703023543685606623648656961760257626797710616630460123945161902822818144516709145942265237943154424290443717921418545489982620314007938299437716521419530031893840478641043408848174530827463944919524604647268775768803726248987955541198151718614750763135380358698762868365619558692875936405928505528882049155267384324062683824921116364257160648585574891130517129313456010473684646716596246016402442593029603165044527349896360720343483810436927800858739935123724687170402254542747029561184776435431364744677836008335318087515408732421689043245460104854380602777435662328015179352377979792032492167561946561354155056564188145319019836747000670478127482155029673227917623217746645093566794269708171680264004496488047954474956561250656072485067942955836165062310164012508472912997447601284422105515494307466144464115818748702341780371538925375852478756303598995513139623607065986622263378693102950974616388815411850024960659714562520959339766429483455599647668765292688133541407365524663747796185619242741416198157896939759537150257157639840876573746302556277336110669423333567698152378128751213094467816210926422355474634847629966770401183504969739496515232052767697686142924972032487159191934141051841838154145523147441059348247229286344141595011473105110163759555099324048190183314669155990683679554433855664142931460873602275972760944048167330913718266981683139719990041432186292241543469187256160469761672907711452776000472124564585408417860015695039683083985774576280711328619044596912276299701590093499287561102038197228077075549361176815356959483990122347132360872306501878328357980685288676732489304294017937312628459490699059799422640595212917557476436163593716654787328712165524585836859677922155627944093063403075205226010262641303130765468380871257206012451287720637369580865397980066449202086213530173538392495567881890784255140612396256586615327432576010669711161678239649494827099509815498731270496237745958504742537770460739008041177701884004344580081812920939325059305377677922163962500919540474093976988678700612713433783483723115030404368841017188801883362324328466587876493842465597586201496822241493180634193560981704089728708710019208236578047564323802403122216408385306931020299116848735889933918865558150804148767282373539946113795136987898414560561484383786364663076710602767147312015192586491765507470075986404544733099171981538726525849875291043170561659553421265258861721185903528535655695275600666311365247045232197505607291836684073303556574601165541998158781978894444300103424508492608965257749047491862558210565264426322396318106096294250274491431005812122820767036378596790120357879588183558036329193914889574278796121603653393127578091897990456263759593867177731972876050146836050255033475023907693250166408390723540304445434949307826301364863593126699204592244487417117089112025923433246354018957262884122306614500257287499668135021358440048359938632414806894417883694138506221075234285073304279276162524263520968131321615358540474475367080420105093220441773305328314577448401243812578495717783576853911530274739672439073172403962905343176090417832165854784961199143622020844032006939684279033789752025157198746030876390508811046362714445984142562306806996996959445078793219566063589206025313062503856774088352262980289796307117673465590024741807395906127564727335319836365763570028699252890323444616135694197149891108690715790447713297794054396624715115938395723527548129024908239254168158543396238099007955545317524462991722475794802481374565736564389552626151851682119641575349077599243764249871877336552030502342998572387869326565253672279872588938694652558380218941526582589366230468354377602754865367781982705124524520980675132357332703766363973882124073541946530265423077897859192431973212735616415441859600520784484298658262594499117146773124837920109225772356102662963585913594153640320642900045653407806854184447326671289300384424015889844050614128164985515224017135988697476353265231911032558913157034529267492679466627382341797258130450160088034094821357475471975938898214209391274220224381979931158934113033761329996310091840678218018312569608695479853272630173523128425079637390461339755635467463352867426651997412577569078437848060030226128831642429175194151834487428027489977055388938877839956616144964948199541126965252364892353364124322077841863265395959100133624426760027637718059016831607868796103986272867942360337896568068525350542047480716661768292089622751059500251426953204496339838658254869039553738146310437197480560495576237162820718266932488319938829990492959669619338681723255007933988958503311786467577149492960960043304902577003945105177937208273394530436894336017155247314133309671320922062305475401598706804367137615218760933861429277447337372269783570505693884479963086718057902013841597690253990466879147842115388685342291007953555121894126867100361522952994343519971653238639682963488611472648985761297470124399251876836744019674028025539535600411897657395007107301404797612629692836624046153085500001279349885779698890669077788417782198439867939732953666214916298463524919485228386400267144517530736284173471756398253006562874870578218671706949453028253745205773687419292479998815844522348620061160289039379329117105279189313559876584086507880808890655580280026209397556301705989703562751062716506523515939302791055665664850611611858826788946257709674695763636217925338758517485679990314337085201621161954747615913644875358454595336629023847855020897445179211922693839718802981052612590534159579032262344643131259656263440800763147735996266245581967653777598652347740235947224984581908856858508542357048190011577884146210799500572911589523091430191433634110002490705036399924820813952022261256518464311303017636251130092995460208580671160128354143367307317655822344228995062039207513731884114805111477466226923303705692298030584725240410851478361945569660625461808120297689944289169690781569485032278157633166933227848487368488449763380781258497514898095344292063161081098233149489236190297109143219176297900929415244167025606672726497829123387729188731939367159175815269316685084203022239632808726278103788326496387425800721676232194027057118800905359120986926087312407774197296581485733174792568669275532266867512308066556092158154204067045734145347933552334269761971446538090831704746425672642997998721690919003173948323521549877445049453750630882381451716856954186684907361371860397951692611823890095429113437904470260491607259478950364355086991281535073136461762605345029108999349592539790076243256191553578926091386059730008538991296026624497964567250488495170657276829668878385429115348026197435186737499845834418938218392366944585207395511856591888743382913529500782381440430180468415595067790196535420645181013057274295788372810090737847280676840002748120542886312456929609433693399207347166265912091949459997776974532361164501809392042924368646244229359543305830346353319283867765801875667416292818229138831836204172031756003422572244917249470393278085504129676301270960671217160618488187176505247104747889310669791487938487513031144992308451278174092945970578308502741623233855896922209887459508323291165758167714080567758916705951153782989764885793172629152773590491373944618015445618802163512226727829711043607209188940927337217094920584351677911099126018025450002648087771959466053946324166666976185252944222676387098976548659329420894060537357250995936268636507582128690017533927364882084592383046607928084852570866473746055019881150532464287593734091890181833735773194137737629916131504385887528935688375001222808293615509914647673670900278636344308200821060785576867198968616799776053972593165025515893475277074374354730135827559144730416600539206867154614303844921564426898748625370281592282148933922859062029662424103067274550743086345703672933451449449314551848571008251395612918303499370497610265362311853453963747944497167620114415086365210831596623708757411767861711729453299188577667562171628271818907983552440053104661285196032380668440119592292517979615801684425389756951672544954683558665934181129472351471521640446896469462725222785814954508766059392942694732989022576647173159392358552928799885414052110651649591475621741285784309822020657368972084712689045037264580321049825791250319459906996730940057446586527796125387067655981172510613027617960305319468940506537176538450495959783756967831504470451325467899844943479791998153712206832276013091711408034483816998496725346069605891560716659991552753390864558735972129949398489129163194767670586056058354279056600821299533386462919641764486790745329495211374727152602791523032035998697274318637153482351961987924229743805798681383190426204936136432154564310521645197306361818795034880869757554982771528294454788345294099389348776346679024911910806359600045534477124907858534899921598124891240575164970066380647105908999622603860393928559889588837572956628331824697288344301646042051588795515955394057604482722597254561000633555874744875983993256817786345630334508423534338209053157047870509005272133014636189501393359492972761144965803035858503725269908812528360600719069274269845442828748210065475413276280319202894952857913465429841634705297917611966494783962310323947750259163137645210754092471630170340053140014306071407490641538138909808965365835063284233197774255198251521482699782907575743489325146267353644292197072134374885466238871690013108286235700715602517155372516416970265651980361108208996403580780632522393218564197286734518091374086145375056243804813962230826534425552269046770559784698771394012348486763865780780293305875679626116657483289740406199581216965129519157258955235296460144964776743343247615895812889670163514250999995075835510127550154274897036832319082692717862528011880111119532750329995186850050661293384163938563882799628310443240938101776728099379550748232925403594181568972019444906591164577070622685466482852132078430087411449052065212775603643925749924933365085478944863461799822877726506004066689536654773558018088103079148441022629108767126335451212718963759489862361560019946719599824853264701038568716827316385104633210622351534823994226443512484784106138920381508829827360286108549951610191880594643057231550313814910473580714035186730772479557613817517890529501133313892929155150895788245130315299395575115425950342678329342747979976343959647870403317111315065636150644543281268264250932745047797082922938420295404142503580550195914071275620656284605228905831574583453385319392980321111152840134910681878120368860060379920225995089351103187825316511000505816022510519041742156153188383299191621213183962995381178394786392900165420041576738789971686637383712340414538941564999707725974192211502558365504955352300014161340642913574843552309347050966582328618742740465870044966331981207125662487771450384471317904270903277518343883098343284970154574247995333075723836200401374202372972565756506433752923498774412783765424363312261718006953978460417565485088690753640727363073881595562222643179832606993953258755219584590953841567983784925390545447935810331756367369560468579997935116860790017129572647804094601899528928038761713756455745121601263491856926938034170141421356534786208638625506468220870985213377964415449686152447040796782815797212171650169933418966960763790317051033766097352668675738513900098007586584820027755507014764593260698285531677163030374098555882429065053330809051075219517060631348169813348389435081259889273842102409688869135308544240805182006484562274869300154676502150743402686372378175343836094921663413582390442616922148273053333289325569340647568449083048223450482109232740131524340166754670732845951130661553945666896894346111460087093383226637609232966408092966812275932971684564188538356856842661594381837097097753736624131088481906713037031104095209962983220247406205187769850632310938668286922509847886008832582458589773991629876701032809082845587434280717670321103439043481974576208194274456364061940317911297240793872643618902485206928595092522083734432549608852869522410515001415836518081225963409072690743986762910322632952212006271194086814474967144664610904809609717764266308076905552147278245121681734694654528024329985350134870782807797575458987912679591371702019142022261919578074482690560155236356006800943645041552457998228119665122141244663023788543491274967560244648496663004858536394959588656909334763692126222258374605596990342586273924386612557558929668513388708723141210582233039161234798327862926081416129239585546716497616498074671098615276004310674499977099793159093838893787493357175151350221640903190958720785604058618760970468479760917684429761249657617110221617827627333800018020584421260477587698952925105920182150669814052877481601543564306617362097453730444403000324318927782737350791761763572181512613920733607398620245694202975440109061689107780828378307862967392759566882001544249682888413542489242678017482130427782891690645950444445055001820474103054957379897333278577192027309366384429434625011646209486030489281119869712514344835595534550172986725155669555021047871126098696679360586393164869772987556178846078514779982900512691638741515669327882790062326216374090256580694867916162611338764464937276756496849127333537666618066842770720741883352991438912296944648887793309128102942109874232732937771898430785805007312446404576636903619926784971687263150791239815882921921981198614375844579240341205509983008032858720563846357310508403726739347533832149885384336284910989504778216782911199648340140148010114891241613911071491430037073188953493008189156745063186277962774760112665742651758379764679662364265126825515760004320358513746729915859045409055238888912597965648675320744967418898907313870952963656321549150395877048339067989157713063319313866788607086019691474174613151441009277697307147451179561486759580185817470988915038584592722851935950490554871389958705492892093025993229631304190697771024603014560748785261861150843910302083416731960454891315787661585141293169595620154551612401543120812687176668579497633024470482211809094445807868713314620380350928264257245348578391680900998666207488365586360435574716166152669658051714620787286596510695851718223369871098935643424201269265295315699060727210136814665313640127495323495693302438336632003715734496598063738446245253725259819091580971370373491388585522997169781097704693806561958706359194397677606258594869738812338870700160308302418180278499459393068845366427095161895036648951011980517349351724111717740077867259576794617768132382422417744722942708865380097505298039047265646468681859053470655793978250262279782021846895596139111732448702302251630847021783458590185892024269467026863498603510902243134825941345322870962774412196381234605391512500840732676397260315675943097279433975329305837319275504238570208183303733434487693219798124790747956909000997735893005876416069687606785821262369162539331123882353848635837016047338554558555425052824243286653716894510450031971546341507371588170497692519489556839638371175933018583252184126090885342203407660406714847389692227260286487227500026149185812114644517703672107963033547946198258819011298632504672632094602760195105110611588820560359246527668723969435766158140525383849661770300355443539182888798204808519289827095293563186782421146263645318441807698091159573227522038339974198601002549246119589006009826950320619192164896922929767553521061328158829182326488412856535020565140631222536580051859775655484831134204865698590439977126415643403630211762535469627575137124851827172560834157505485307121871098526165113963074403511665526203658890812359104246702445126387600084116256840172711938591463603155542034260253653279433869752045858710140530354548253273039303957574918530775559331376606784985184919684318185687188572579604762948726272753551174903009562454731837665165229792191855049706968960432494818510775079184270473952582198010492004561231784413412759122555161969856130029163835658093194827433864016407122522138127062421635909220738731400666309832310006627870971142263764793609264315623864995509288414907935699750783782788785868464071566851030290695968747725308357230489450147669433104436217920136477143763582362469753061531859691267296583591114885951602192207955609638005603897673754650367561695632253548851167122573380622093807396614235893898009992960437389731824323519101677466702946768054316355520360036052361323644355844138406316062730321086668149121670382482173374303840238881572616407302459836398738534200332598043227284205617096137937435542015066528968820892771138408681722017239372304623936230282168065120329569731205733654491419606563713976964785383526548081942661972564371967865364562369879901194525839390103965221981525298294235675770986890543362601813993015123406668437226290160147387147683665317508323804947143400995875909692563835023178470124807324124745563285902018036221376119125483728010736129263664031744300280330681452750284278495232797042630347707883308599873149291249753466409531544233183937226240870148483954613736400363790995903153613287430684406250974442854561870968675457365371494963870439146284153270695332414228554222356642226631250201314518747707796018848946915752179629446146663362248439718431166810151479142661927900570938472047197600897180791145789524481363123720298890118754799986474300280752153337686817811690014238259809702562764123834982941108606463937742757037077095655342535346741167571071261748829829396652639686855194874376255506445947618421424650092641455623857141123055982121992111145976327343808518734379072842071291185631560953510610054169411660557187058141919530161623994861457116718006561879675906990419971630587087425292202778632280998887552842867024548213756283486964111132868075218255660786685315190443544950560968640195140881793980489020454976777331686372490640415292242698338305275905565448196394940098670223071281818555921139557890476334867941136392225339168229864555148675653985861425645360797417454607547565160933796003023319985206666745871879023535593594476466573726583407949652587405224769647156723266615899581705016819131782909921187691899710671538949203584689147650326667544683441856588925675537358253134692903693600406896958599716080609380483136288322224137475176866934989228002702361014392966710117645163117860352194342655064173009440067861938656597746576354832479545733955553352582297952318904779066402678158087530323539834884405520462524445459070076494296125011865332679569889004377479860041990995348591399311098638277500868704788259306041499856598682143542487063179021433547339530030166873601353979761628859458617973818103989954404170017286062460024494705340492364117929297015777747213450798792901863726207018275921215393088553562297126722193911185405895093668042145820137421959320216306280841544676361652707367456481897002913772060942431848281672550023011312804396998596573999817937706733310566898979099999607207778407100814986326437342219814565432290530006118015168988549986323420206366447819658809878249832651906822320951047696900120144067960809252029204482517803340918501415869950895240953128805985943774707860961714940185329044199991661110939992502502670359867152198394381295587575015781504470859805076341858858019926693009612398303851487719916441802658947126946444771719594360858155359308965085380766365965840551216372518931126832074135074871318428597963381335158213791182498006153345158067603165649290980284459649741423927080276455876555654996881595337150732735516919255290884094361571849409182094433832932079531247760886479353223682493869699319303460591484743373239347751233891078597160777094570373144817840104497340892376074554433110823722537323799107219191444499444928498608246984167752352046031973034210112357791080558846130821053134968704392912546149053923476809283846396097424691308325583722242336064459179436594376251674612695251845549451279341503725032565082244048517370923887262713293041704530804282319239204021940443577142182186060724005602601322779070433605118393000280691995178100170733636023622332967703687069140935843733673937144128930455581713286849635513417796862347571669394410006200567596765154617265820201903016621559520164159005509945971673887969928127724037250305151942892665940934023474029938981872719377505109596440764816794832495401419932174904122105058920764138156593205170818347502721193440743512259708620676460506729684809851894475981815202603172410736532860448985543971578552067454158486268582548862587642813667085687586909058545278102727039006688229951086106628881866233970412615847966149065791831694485581284006769100007018460646024210864437506724360372543243248039528463514745964087040570771855678397568410848799702276521395293222465317962451795630688115124835195119760215501721306697702653532116014210817231773697526291036112248128442138943939415039694209489569805556099342851665516989328618151910776638431506016377065375682635598719393436653017410038296313775490795731478180923653032795772585820931314830230856398258355285392750821897597276484906917334540531378697567591206706572032940115380754443996934185320643836657419347439003113644934270990824781322759285948466525250231610082141339266538211278862156969809583612580916521303433537126194516394068251416063436223086277605322819015336060432078525880558842288547600786667638825102907134038655246636245167970045623213297244197318366212201398892760270360438912908384068459163902905035000124428664115051438559262275751349925829597064608393441684298642632934646863280280785802269513873301508461265264705662661658383038773314379029718925736322415851345081829463196998720844564349179563803410180893401516910784830760904085049266800716766450401229012895771639690484789379402287339815840964968221426523969592502894749437898086163866952649448733913503904149261021729305440774221036148709472206906184133162517065385367209691764423730093350132412789634061817254772315969975146679631540460964645568956753225794293132542960556775509109627881861604027000434525729684010201450362944014114099032053396618665466498644375191224647350744404602268447462055915927716235451829527920479530985040626855840194436320943446993714834313885230745999213838005503522148404703377242157173250612781749257787808164815235716874984560279941116181046281474395730337634830191417877753016863545406789563806077635610564867875184472254725772033800088407710275770221890184279491372055196047744082059582673749969242946062949940742490651932735238557278415044793833830333367766621261272760897218405577983557184019998630623902972513262126341135507182893065635887908870389700838343635038962343468948596374678360586794206219302523274080810659914247167115694755737996518157019713345286218184331849924689432933629190001698732977561059772400323606834768535665281858890147709880549414102204383452845772588583162119294094099639267105963538914309300883519986383908183434477549153407086154781266081097592629191191713799788858229810615844225336584376777546300764018927996523258263851326679005123234425803135045239281456894671149109649359318424121482451169754690754569372082141600795917162382003339224155528016165555179236901566977840648001861749000595908339706942543581984479723983028971362358129238273847371714194960147796705836775316536916246770827453312751448118834231209752618198918144529298364099290671380074893179875686845366434984164647285238073527740637071954430848565683095116581063533104563242210860443884030237895703021376315497505417626240985880390834316065462742556775095716787928642731992952665254919400357817259196331848507359229376997703333448459819315166122157102852891165281251577400214836157230499713074404519879839097692307184340060174029088461109031494631569578196960909897549823270018325783832173475415290893252901846768864848980459534592500512336153474063541093073488577317086032899135560050180424849835828051621418629592333189990426344766718391893892488536210234308195474151098006610197044043382983991548376984039252457337780184165524852090281180288981848622243522169878065248758996459492032371063069499034871941787824834856608886363399459501817518412874019757300275391784805080203669441896767450716678211928374899417106747216317732566981580031685208447849040124649067620657401957049741566504444262505717238101248642058808246627596641378450239513361625390091016993913156744210798269273191107902382466486857919038833996976260643061708678722848233925608957315629818244819399670925200363153427513052427323945769167974181191225180143537558555982427137382286936746132261586264181838857891686011993616325392362290043114375451587828509658555147786564907492244488832631203795952792793452509634508774532897188193604986826338211197042426219230776142417877331078874186080866278906820865696374536290984005779572914001104945765610721793934189345043272837649886867413867945828437134697080853731063845588211189316442199634478190043054318113226858963365031624489514751982874575618256173797910569412279442826833331673133727403630706774392201712647385386641097350496622926929970127176878191777757590283262248061017468057313212978526819107400039481573910444844476113942152755690978278191467321137647779281461167047116451577779796097841090486004239637997099463571577862948540833416150063822948319035068562617577458647573438354005235336358149653678084288738839557980967948092151196968670882128950548908047230066205990987159130386436808816007405863728049290391501953939309133498297945909319476471098435730450445436141410736478974738183441633399830748701992600530021236020098229693748470758189508964482316610957650735099032244793289154079559975385042794688887877275475237374130252070892279361877427371077160893539088064784425745821256476547700077853421352582294841627555660894678244427219907884402300252793871557629503762356609051672206171364677291677146334867656773622893995029139148261207044769407982375453679908760229781407214923789309983494592165749577350121449915440875346090175824925475270361162354672587739211356379746655103298085305579307137507635302807466408898541015809123871392662719602732998224922926669833098408250533193176661197718177471318384819602816995365857665970357309250723353813103639021437353870474689042705673301283048244451468229454333129855766168191202785683852134626560844040540887930384602603105361349921309531894127079695527064928708007949965589961183655632781075203205501590356928127089430819549444501116121006942155885255290849320860713125603530477993121900934720769676173460566537522571419083188387507900671869206261547659090860885954780586914756761419317358051556952496440788518567452436047875663611741027088435619274924015363567817685678565886747676134995192201076857878869442109358665602492348877992070026045877181944429389072649998610151816921328834743194104343454395200269391374451539140341822396326067445975202587030162741518669198956369554920750264937221007017115750868742624689213325582259528041497466921178925130420534227217754224528552844660527833565139746411865322948952325991657715559731380031719335981433784746729367911864794149554317978293001967637918844087059445343954696004536802625696571216158726536879382706108041112314235505490648779702004638934105808893476558269850197423799566806559514108651975940599287754396830046969708199927055424106479721559565258946709830636758034958420517677977143693066066483962060761223789267098937013212759790204017788370753111734118700522740596068121410827024118810027409465863018299166612417796533789598544580400744106983949266738514031836403996805441087400039633575293363500073298221137887733873509390832390641511850400804192475568959529132319106960160734852145069942021451096158926247464713969006412656118968817381488518301570605830557911340793711626739692763690536137270313497456254232997603996975589812625345426510269907526375747059588884361522316454250359158581866178006327519604250241659180598172585118850955885273527181720710924055811764134839811449929624267485587230185295745371522679825056572309821374039692804973822229460049051970964604032778029387945549292063646977783779273282082186618164218352231743429124805784652955018902745913427560507882372191606069861414976483450072857019417061587012637193935739630593424730972355794154950430306027066642144828328338199529707638500970778381748210062015384555322962901230908705315662813762129658016228987795860095969655492050596635528560672609918746042277704806097472522198048652581545109832853511223385594089590498704744785063490689931350522428828851912894222937545218105491200374433590176095793910032664077878486687713894383329762314503994500858148446522285861992556023133885886762861707955977408277193341734264450408853837468182241009724686752289423662493738830073344483483717383039828189054326054806548994300565698061469825466935010825217502001825078429404978210979578238046836241677027991369068417403819326924453889150356903336257198169377502380330427082321565493486366905528406315742844750439520379404545393798259275696240466715562484316035005699064459080216460539910511082674621980291382918184481715492142736730528116662812897702031846401054296370933384783388831407979905823573500182711561839003145951631652668909749196008746099461560174758530228348493220592961326182860665445634449983131793979396611145996006582240707825891862689126596443887576571020884712066428689981656523810342659963397673879510151110406197568983999419534807633103830880719975052877826023967854607956883671610527621094138689488290836516503369439088158415261615246781287737890422523998779500802486708993080634096251924973344607460333278300399153022779632385410919659038977530077997928977254779606955987761465900794405513126590922319338155278518850969406482317546434506190813708915771450301969768710271667176309479293890472745514698253976812039733320439339220778100360064051675984166090525208143784368320223933491602240962500967329174642338128239107567773938634769507451712859901958036633740098392162852070819687728326215503436223153857906720049835670702571021389743956526546946162440650382675266219810310081117051057892934082997106963125933679427771842242899948345968170887041872350360639901408677352303134212382252367394310384452584863694372479898100345435896677845240135923659354089363592801303460883251318562365150978884148941959662477934415270123145298093985333228564828831883841049070588024980868408822628031662650284773709899618305262632164853754330222688425885733695221336375097881572575004366776444399546123937680409681843855210141518223820894917800323710771037143105237278462091156310871324392462462648078208990677259706628793528588548204229949464130169610659222387141974196506019559125512532677471942901102253295235172915983053067533110005312395644099486236546346528743655863718430664180233082899553228723311358141616776580090170348312280534150440021426788992634154019298173791043190961487243265322139627125969228543812080569807834714678380040192319393120369652835952327119646308597845494955909803550218695365869883452945936107490265500016606403192507103260846949819800807217286472630825768562526298506467812658504527681392852124979993276964529128268410240749634377522626582629325091190289584383209707649019895975249207146921304152445326369682838573278087043433895462684765777292220735088585842788750042971287424783519001702790865777492505331713304029616874311554584283031026856468209876407254546212535023515091680759019558836487778640465776892636311735094342183646069655653317944788567662411224151157780485160677763923402749703084841381679776411882940299463982249729386613786572805946239679847197386265803247162305359134288110794698507478284231230524863539050718818004598406762942213061926431674488921140573226227039660103607707784691990740975242540981333394029493226840994529378595474877107061760361877520963700937262600077355193644931190942141372757217712504948222648117171179682064119993478034620811961905289036198952235392573494840624107838084248524291633499967766595358152392674060279513312595723128776492360038951530566657606004220859232055066543212197168705048337349268910872263643103974611233545905613087029491228630551698818978247950104201061993786278164666852531460208491925796755502399640601399840422464169324396291866853264958514687945844706703064950695732281039504663862365902875061327670311955090005798279054090087657317698409803711044711159836925192528353994770259140476132887724268461223536129721980086217751037399558060233173335774081476437241913512194801582157203755823006572465096690873368363660354360219421040868041088594307337620218118853594352050238708125840305134387918577443171182258757518721687367540284169229971818182566462801527534166204269270625034243658895081447210849146427024327091216092714159259357396136071683057711814914712570548466554033745674583416717256073828508888249681527647458107947449887160959443439687896092251008989963473046396942305429079393588801976840468826405155782873723341575286884268900562321104650921270221435844006990689407185780768104276263738345453183769371545463550771618124592861920747460155210360719713072088698546784697888429964838550505335856135340543507634107417426114286435609817244787117397307673848048261693823019052627613425037131281479394703352672346513974282726336206907937027932705746637766210432041965570998182160927848480510866753369449391014704205572393246504113100230207388965784492288933306553837804116301133652539295839209163575921413714790022615223624199970640052765808251681501543096054319928321779279834754592227402545314838431677744015387546003905373103070591096294079815719224872997576770684162879433168683999157607926889630941831597740224000521826682620819730546843182356319484646095448103973088336576070565304192629410226901009021738660473515668095522700413804814279206315428367741489913111134890420915700848092766057674095384099820415353871355630643668975111977193096668877125430340719430150793774017415949224335348267714322914530057679466991350351581069034465135089844172182833179572261354313242896140635549990105536405878899123735252709095949697321030963915898715967500717437673835016320830127251900111034184349645809280756279719191731190957749425533286319260676147294305004557245814720930406220840655835513059192408969158589865559249930502439505388568989635823065589493447322289454563445702732173036582253985004738293312494184352990990859731867686966815964592384933253810198001914446892501531027606168539275143238976156692352620803986926532448153853953666456847574793721011926309100053973719241833967671512144488281598971834672348504254058873226951137108358920372726818809976505157723044726476507679360801536009964487993266479040054995969840606029563816677999874005815800070833172488044350040204237023108437159768400558440954814953434653157834689698448232705098376786490261737473087443002666411035943467667893624209134796814955128691622302634504090451019520850471448917374860236336624320312962962715912190169508427691808482536319873683805921049763221773291885693070267037534567766172021377561797035238356767903655096563342747891263228289594002915506688259694931796372564832776808774329466846914021907308499181551979205554186108125466547153295222353386000535357293355223529389011043393413081576659987312988343780990334129889157539703628148638273819580248767954079188791991720669872593881071112841899489100214380491843369085474920205748882030672520262359665739951507047977681519218412851171047524699173869984725537052694646636284554610902726543651967330248287417235762430959515206503982653204850264950107504064586671857037030539609389740400939516008811177118337747806279079303594138292413151268936044321912172224763701591270982549733752239813505345511411479882850284242156834813997237258080251465210628003433323403953343360362577642855792543798473220183495563339470776255192996583411042213380747098833731801933140161203072741724469378855284978931745818545132496378809715464378198409112118871653072050526956074457159280181620179836606625896309697221946532482582396185505698415071656763219093324335852549459015524738494206225765475504838082707065057307887108133872076293854344783761335419654914117060000323914359144710777468333092967482626865521288285538003063929227784996948069890283296534959116379366181286273116835449718986110716484969284986349292574348967395944407571591046693691976431223887871295354549600507483490634666454168302671071576352672549170699731335615592992321910918971995857130117473504659182783532409008391427818211778352980418283439065147434878080872731144660086265714028808178317577889717764357801019025113686748118792169230746456178972134993161784054916022132985952567324950191032305192267984326365054522545042948885714236051813494000195352145747974015850473057772873516885675677822185622016758087273667805303187676773894359677777921049749484889313779355128715152215507017810842281171047205192604957420516103323426454852750931781223443483536740197022915946268904197353169356057784932072359693362180284937992689079306204556930644156511523715257726774056624757335248235254131954542400155843651989146762940800905380711737367443206629564536509895623026133302796149878820099161597042277825780186290145038191274319358342189828992862114534519957375276661402024634389933713623434915453133685011220216231011570576834110725645034659554146749122327365159404966320776216608374928902743757415144762042950867537965534950698598294289471345961897711879774495445711262995081018664399730806196462806263174675889636845217509309692240375386815774759338386694926698795072851594895937064642940918674348535409785354376716945947499100580927048681505625639895664297279926353543484134611903460592244227072193760251155038629916407957357330697020201040434538197815264606458057670699716876261888249805999358164050397864110279078606494537503661054269863957155168099900316895367261835963698622813868186718920993330362966099636143748210034344218229355979922811340781170149509620460238163523090543937417738517527128003318314708128981124427030314846960014866718196604692096140040944722568617782496325367626927336166410647907574917785572215021062599638599495909787807849743829978862100693616057219095565719789558411048021612294351608697029433687104917484949087667400876547357163020737973072742392604213414233484466708096133976826294314994780239586321893435251401173562309693251033591440257958790903716913204751546957583064359020450116052480058362287114857968077510355340424502140510644622207677083643065258982143610478994242288566634579328394027060159449048300943327043524954578133129646728562267072080718987427018278005590633717875957553243691283783059645715157575843265640321397750635235437032562769961777164933381135765437506807741087300405693607663523873470534098931386722636667477765031924972094177304522193656232676650880852174739767579848612087954014820475920575023565063892694841478122174139596253323173720305195397312270128824971289373398386314657706491260589674563493682663333956840949771472232708751506907246144359017121753183822053261823270412137905208891025562567500915393479280592652048333316507117936466414545189211331556222661310995160657081291351060162162131285518841705132239222715756083979139697738346943669645714563145644788864881288841869925547505776620495378964840764957468006038739229770209048707497775600668874946758779442873028823987004998340585107694798163673972352778575993507907608884353009069903048806469414379818916691110295298948638099506934692226400420827490955120292478654442712793266975139883959278809872244924956373274162554528648332873498563962997607879173361481294555542407990699092457317954040201196397938304824153353470085798490640152108705124193765404905565599699930486358249727887301267937601730145676432903371057558030186549383199240154402176347566005199150951141997547818649662174460125293477449091553397486055463389951527631326884763397903654241090922523991685621732612378756143107825975096718786035939751617173319676794375303416117207610641547604358468258238129665933331454956912162234816508464873015894013770373155514986592453062248877562115454444189673516506671958607967397957821017615202624460207030582916543937900247630134449056253827397502086448369565261819536516932591461030672127580275698668229953390194660189601895591014166491407512340168306429039809798539660844083178100802187937148258244733353031227666501979735909343824530875681026940441810294306903271096104287983994669382302756958431869706710202849772372605484733717887696872389379530404255191348865724620016458074905353282945983849084810636061065623718256205007479051639413529581366565333057080445715705684869996249772583549227993879596488719350283951910662459696424343518964937234720855930574683664265727586049845811304725749094856164275426562933169816204518867604102374404215184509318093572872164284326317957035311048324888397040825797412318993906822815475614577261640362395223737690696524708226613461426318367604322560035856072786555826627102277152003723506210887375379345946572780676183520675327443754405203281240683387535768741065748319535490052441166671821886228980317727704057018212935000349147293665805894525541359746499083600408914561154206071199082725369397913391971289904249176374180595913978627611384583857399813913848697695091947118998049826231009726577120982611624203713955884399664691070246176477329103515878654459669522329811504839969301072657645628050950251272437400844199907411658993648639339062165189554830807956731628480769878429640069094716366176896411492812304005491465839329676229229834653121862599158857944882319832153591369609932526061785633749395592154334841991450408171325803877362959549684584113839491810470126706182377025375837627905407997848494204600984406420587540241443328587048919250797390726022552723734085956775538218439096408646602251846935730627671941528197078654394924066747021123816351310057468772466881638114047834969157311214534945746950407096481458778880127909682782453572051281839082506424995201710648539720325713662393529747424314044025376062256417651638603453967912795281585785934410027838674557673948852679994678289716704677947966551060063815990870460805323421320714874959467831685804948220831122154014470760215813512245817762783559221577747297846100170979006712379675961238673406738013748384161262569993238022861064872891270314315483193964807210494328824902704918691725986017344858678480229244761937931919096539497205800158651539422159024177377358808424079799452957410083786670090464653182983335118725134049468241373143042062095031341156934476119339825681663272917683665339303601496967636460786185047571984959078293754806106308793935362880361677841649177764814087550918308202777534444888254027134111659363060532967707797125599434072134879107072588660765018066642241409082987130092245117442404945577581458836878461002599459395908488566216887319031089608008765922512792977836167861135361183087105826506147042653335927358709606623170894132913177887240877993546381935579449820368673894246860808287882697480104884248093283944678687020481364102448667418971772083445135024165726000318994369303079103173461698692445023672363866084476386997855661228716563341524082276451370514762910237523917128877399645722936689260743137694261649963696161539540344585770252678883892104293267021682548897739534494134060556790931027683545317757690415817917214858939120819787764920443279534034513427728149126257263611322821423378066906826283034961061122530189598693858839748566010560398030853841763177459436458048532508914832301903021570160953010904365056612796310800451067003934055931155241064248209307557360960063975368356019881930320913331062978499168405683788192877634857217859456693531576173137165695454977401972881779725036527265642291040138948214561516153469724731671251422904824350711456554344147238289721411821238022656839539695035980804285523295010188867405990604066872868580520622506068007773093380783083039025519168846979768089381401468248679038016482112060712674743644635177984317032223204539807180997047164042725258288622174751890302148878344315220562896655668846767369225242310179288479464076834369481313467225992639476277435086232964265674239501121167868360650332820774388083713392777277854818312688034663121238851366848331932248248107801919575742651274572635904318992707132280072030708723529204917669511592688177632728813797719192828371050064821223927283556194923577428650120473554046485710302354815942493691952538237279557301047216769217280887203909677034484459389945262603080604481140927452793970123181842953933052598975675355253031044242521466605329768862865311763893994590316170737957522952127989919933483222184452852824291590753797406211974107790037488491970438953100091426666583796995685002628392763225626496588130007539080482637166620406276546790023513212523609333024342115042862030153593664220672200019343595933856868548725214628578682852757917585588883718489372635712533226323620338196644050915068306453974050855545549896789472158797338117235274564245000392813797195093660857476317655413830942830409648674501234810845265753913959322495730370007296353770344471322794710491970735716685628870645107709690400672034371258285652768188859923870380500359850096080664547046143605690285557288190552698872411205160757655847519443949046082260662205887154075657379779850239633727467231981125050358255827562264985103978457507194646393449825197245511429805113925890497133428887348355019558029577537733790527907601329873404310254644035996959066138220048145257112255176703527256750146557184709372235075573129317673814757156734942781517493562907878285413300884481971639499574931128924639346771427402503382936103070748807626552236278020467569251220206541027910385749625208447066785391323978512991690730047188171371712209410260005174149024713830736289735039333338951999354140609433576106864462758920085438570350419894957516724905539109731607484797405474342097415718461158312733454187008078707626873212091905168289935675838201862057033002322416915979015943262552623654186561301986752280903571626110588672351837664341872423939561020479111965071964250439467773351801178447838598755617983544376768316723721172033939366252719363984982085876930575879699038490431717976415395489311090770064442234458244308108966572824044251554429688501685536665401100247179998814553695246055990601073940723790827815108355589989880511848665820905939944563780207037247543839327660757972371482309921962426688112791972418526969856172987069910953119679192718734970394619832569813361264566073689926832328657189987482959973386057689375277016071392454174680175957604644266746647363065256836325350289421785103834254602731940281923651431370261514264870337260015314577983451000603291953289800883998705239678181064755847051722147413378675911431193203932522628433774095081539646554883423098612429874067847523754156351236054610757190046675883971077077387825414831638070078258691852227567765070112194099224881025748501093951340019278210855759283604812143906551386255314581367716436963378345977484053662493647009901073612309736398710151943619926639016680876604906435858097930803232033596802955347372198529590335183275844089369350402754484506231699317662836300615705426839591481312615449105880250004674959628864458744119249404204476375016025908808177426456485916308560236493193951787748639331173069717580089726907918328837384383466565764055194703201727207852174441050421356680084551149780084050198480249955131484026689720861909466389268304973057788633738208745644714060687913878651645925475971191167720280658676626149039363472648572547353766075461481037004162339003804083760884501641806993699901204542886719954397961684817998072903577651966868544131433817865948920099061190873572312933098157522791186292860034292736861140954825233767291393795986042153690663947438288726500447744733839163215110679912282972895958384844163544586877038528860807233851323828455401321083820754185773536654292789823591338281926287644149963922038910796020138450522285627831237069359505642787698928067484262154216634214670193906769497531556885974243773338410223750733023863393078211060353715635265545650615592956186747106905068511292113600024157248461166189565446206126278326815046544037006306753330765493459619303424244740512192583696036647382954515799315393856528488465388390559090630841118950424287796372371837544306200420221933491327882836194868401090592219743418114184949398210520033841634303382094619462540940396814590903588837818423198242256221717064452544518305029992155758225269744462920459374398778162782960167969124318381377597635519932105027809934236816565358459241660588057934566353576206536973089645347845360240697842928477747717673830724157213877505456922367729741983059905784337866719096707048466566118246980173652702642486236311988223658136763852648120345537849075433568113520345834148019811028575597139881282917168270526343734711883614843092063312615252026335151000169243040684023607793839191405152085834225667484079698230449919577918836817120623127883730054556579306801212234320311452675765636410103562549012498391337376929528265119460937082172583840409878261664083636019480684768956350484517733152543643345022671516129772439470328624712995430229329447257360786371503047246502411395067292484516850402745018210717068246722331481354103725370288230112982924376635115225795999090540388711736928221439946197498309502521826773001031975437264497333230149801208033474595804681822193585062431047832259884486960964119008287732647678227127600677742281316063468586121411161803287096495423091787912845517130693711242004850646463757657155418463983689338620505594315858814201446672999619624661595498248510662678528843390749495749189299826006347890011978900158418997419702931781256014394952666342000021674527989347214576230372439660107005278585293459790266088532340487155706577444851497568792499606803607605604520586938523128368103572357505707704364500767262137785102493487455742047046644310511169846425163242552063428711980276004540283969401586263699890544912475050203809400049046123200924584199379765485628333497837448432068444645308614075614483606535049180229699884193886390969242214400915322458684652430034560821030303358890247753320115516401611531898035914714654705064469848541013116130871781645320080042483074284421687652474314489167347155867263985201738963950740846939929402605040022222945636593650888482624412476986690564910590110731560043286389751998053169961363708378198913785255781818190068131439219589685781986681661369350131617258940363511586923575742866379313143740977819351564837769254428694129170260847952318079808934307269283210478126436677783004598115638477858671069691507929905800622041879724092234059541219237565891987901584234761278675925366202417618099791707159554701462547158352369919643947292392045529360438887582721616923951658748307885950257936604183265531254751551069124073979448351161843016344924191309762599248515005332201509180019508191606251292879378262160234362998427148771155886676764024705735831099086849777106027240914597629581839260735707857678017488860611995200780369971996063317689431245319903577815338598470553402712209639362287743795867336035920895789359763253952680940304634055205870777179917569329591476314818591614396319835797853287049678441815664311550182880199457908501293522997060985967460630900569759215800706205101043434968977430098323540047464040813910819828410985621964372149175339401377984503096609577325802619421770206473939707600655279858179727491596897478403607442670176146804558721686365430393185417731424778036806291566468511502674189728189413551748028777006078284179144687557091678051321398882349590411809756426897098945289814985710049611499147702929582877755012399765373074731464006694557545416650257110403962090991511226752194784168562235842733624155394403979655726496489411507660312501042450310250772995594773767890058432785369706698337510742122586844638970539484803319734542234405960324302338863306870381417141124900362124077922114330595934580026199517322024587116428092535497689873379924433465322107629570751405391246524835739494297407106681268491327867087194507252288514850599050054185436571578008776759883188530644698790354232240613590277301513284930656176033690408851725864969336725927654250793307190177341800714635518735272756048433550376960307216583723041876264051959906738106474250584311774067057335688671342982651998636797989783672021854268915753510959838504691799658666367352102083833562585951330540596367526398240502910736442083710920381720864850516451585743915092890099271064670809732435240846789641774601978360676002279676089396115203534103795260236882753650353905738991431701172397948818345078002641817444564269349958260840983598810842761705575287126044485980001505571393852824203160466555602849634911316085564325047280630005018025862384789748688552025372852404068230227332781460101016849325544769954114163247046446706241592180931444597399428180633276705758014837325340727960456237370175947188991960826192393604400669946743706519645845229544229597170791476011857145541214200283061488717648475477111809692285855779834216000656412010643314801157016652241732952522224168832449901826211858270684379556494349062152782247536604782438401313683463949576862041795868926424655131690798266516089835173885330240443104427997254157978009738153170392542604038210801344085751213980177101847024103871887980355060394959278924559979035731632329232560379738097342453060659219293854768425816224576020300333775940241408664621159578788410904270183700060277509254797520385868935254587751234297779259962124039766214042370039489636821529901986263834278811306287614450751754715232673695013670806493966066983611616090772058428033546222325403484957515244545531522301091599290505002067977889224202445535162360077012224528513277872003847757851532823272164272909148987562112397871419381812452946604704636676517569537270991930502778113424955156033165807098810710297279475040073564978520912122763286095780713585917988258683682481960974723236775303844929970903769234113478693803421895542248124946877035070381443733602635460473464453004578722288810237006155527601806094333390449114381634656356066572728297712882240838405770055916875937582008292376699698125864583585011044315803080577559349748587941066258990931892156147067939664587032294845267847628186291984750602915654396226967010725863979626814349882642704361092381122568074080228775818721694689755131841307088002489896126435019500992489288287673496570481665824676675915848244072192562434974600505011630198985381480603512696720701466183772596902883901254761247392517989247219555959872961761358816962229685187962262471538938496430824121648081433515491933606612189867567205706423526251169595827487297267697524643055026980124754660245421102514543007499031605847890354342816024904358628769229010592115249478493183439727360589608258931888022250944554530643113626781812893434929384900166825900697368043777413059105268791715679863588630225786822397826842729278722159734676725656516237033908311925829243609825206037201053309101454540540568577116795196275773659483133782002340872326438112428603813276475625042793965581783789105167481394845794471705904200024388083931689833109128801733241985912617112736659855370077948578565422643792362641749409612467232876288164486165619948132508694724482887587921415864807268471986317439459269094943943079533740871931670570354783531801037179823083363217323875482998633074370292825655685538270605952904632075112186983134849703617186061907941150428044931411416108353292341046890508079592779439957945813577296557974119269104342851157886670311227292904350161798357697783810043112515167372236249920266548725699581225592985756098801638062168130387979335162876020968599796576073317779921004374511975205408998682767816508389638349051061601180843481768487893691645408457432368652906012747576440353184002168917846880119300117135410545336126188545480965881003445293847992869597421273778303698624581405149111302281864042309730665038256966142513851741682242442178665574837613157405206851076427516772778528422285538391973481572393105631212783002911167590357156085738439107554951155266407383711825892909781689761576615698509689259839517025485194140558047123006716554079504954386315974620416789570636450142758055482290600849838898958138420886022279449491213144079095928926436167035262149220300523476243472705968466782008785340861141126050671927828656968187468557006144235482457092807654080845936686615536445227331648168666749805800923719117793061324242642267108826930606860780736782303611335460600041522017622023048771826799234281209307043972142603082044920900511839289392863789806724548329904823186867721371728361343324099093251778106897139856106551329649412737139171176081421157926619086174930574870902928318636488339506030725011026305314732304284349085384054434799607433994614572236124798613791109775084943931347101739807483814818874752674525915662450086343375244495092324055144041273514457460775917170984468771512108195977726224661654704041954319998612545463338992928093367663809012497439794175205215188933638770113000271436617908975529545595521850942087159688041121362327035204945005212844003551402484789692786234122518516635672663392366798329479396311420074795650681632119246774469236268130767872028948629171278068998787991001812987039481664387666383613385979931005905545195467764327170411730887620476976203223367416470381649840527691488652940244862602715195731024212325864801881038289285533080955492337356718614666115858454774677068638031352440567124449278018134961336401856780080319725488062946675613369803973280228201260238307772427229343140611129726568209153589562207971925752214834838469947946560958054351218603427085624492806928849606601255773177353007983991089193115052304914166266824574960510075948619120049062156575757229669070231525824256552642561617379554609111054462480482691848841243673962243373054259011004919935080386004396264756030581629468094711056243192889212771643437374816945191997747986907156768026696719970090574119103700003838086887108211929734394833712796765430068470485091720687109314892967569871899414303339385451673498890288346771419322867294632868389339022346044262044109864290009985570338493486332652539536168496995273885741207243333999825643680953217307062604688189395476826992062042119217450617699514884221661003502819911791623548103413952126367825585105766038715629918067899947392118460184281119346513405796565538482220169796436046114280602285924029699368529728494594100271911476820657658133934492490355800528187161055145139714794578589603105045298695441483768166883283222882906313372412454916887098911647975633902702251861645655852032687340462720886833676108268053227636359247346781485365306954652685752159754419995043008765088289992722407468825541132034576790524778630306583228642781276213838958156864938432001143211595109865502190605900354530216087046413123963641017535461363458254734644039213987285595839324756545317951110381630890141939846671047344729614566327043349463304189238753807966401350755571004950164007423149785507204253209922949353251646542934820798971059700921649984106167917444236595781548141786842519723070425559543894768681196632493269471270604738705166241798337847574283493188999515409155124701730255028777553139127371890485423581244114159375198144883163526156754581378580045267244863267732382208336222941213567081649967530610837355632927476231674635732349918183290324519696564355710159879752261487009614948112004864275672733071797246128646962674766792557379680954297146253649591286306007619888244725704170537803964147588020981135376511820102934758436699558278447127319388141066050597730303448679740356682499129525608922594945547524472348987945840337656504777051096879343283134680883697536922566217251926949843556947916060961722382074872213446925602107762503915892823536133242497277498278748410954211761673947262278099964953507104436434595242227151806247163792675496699338234537191227730514819947637082812919007785779632423009604851796739742214408569058744581902722602722602973667874230381069252161753361563814155329989336972665419444743457239460838530201149798229271529626049599107659753132483573146229827586046036056410767464667471804583909468261861709324038737254242320653222194899751019405464982816707339283488781810493684755938637245174139360512446415355878007040049479925824585921295952853014790819939249549261903417582081364293541335895092414922306978186856969113945137696985551042458436491516037322166642949798262136738430367816825587366036781760192352187034990569485356891696309870888425335617545800314719121280690847659298928882059142572248604556521773542677606758632347260715376770099373568992140537896803990807987087380089419432745899009010481558100042720666133255175304856460864053406169512603424399316177288558892987615492088779876440057463477315826412983384789326880783899418165400949360825122541973196329708238891304079776418069815595798219608603332761014408497516517552642181712474494479320207116613407515487990612347718515779267178275244717831673819924069878495502312804493955122580651840745690837331670929778246395045646581435830850236237753181651206811425800066858402288083613226734779774857612215834959900552796532015338659551649912187504208659564822604991545600883458546197284669817333173281178420628440853158457358150101942390976600445117169859982060225980608799179646139423205180353368748717795897335268136282112961079746462741317148487262463435251621286215338161409933927915686392503453606603767313012565934259474649097739204678998833362099540122260425836406308986773088691479350401748395859641008724785023692444454664384630433121999903056198256061038142612350637171084987656102124114855345789726058515088509817956725469273463682121065100405206364737416202472048735282073545015906976400712498395849576739427683747997517695216849489522012612567870283277498430419902886225115438501206081514751941464206752743891724845965716523987005976839888913499998218910740765765277371878485115791384380284901400663321046244157278260384010562425501942429266709317100751738438765193303724987329546945046047426350101686578675683736195534361624165204144855341269053412157437622875593627696885555316105538604797447031024173426176317730104292762350790787727634291710281906562004585488335810284332818876216636634695210806105712701369347544710982769956161014020849740259493177826745423976408827865362996759957645804890740721780830509561736899575667646062533518185945142180898030115105654386705036767362747169624106130935374797110586605649318174086887513740932804356038202754689758982173986555510913074647246465051315003684229628227430907335043934372233375394866338116327131592275819080943093665400742247317494881390249756039039452350620615000427437957043741074972741950409226563835098745431470760063756201516633314153625896201443292835208297804487780257199272504231074511210988626665394243004492275481388544612969847735997747782167394538437924151319956042283956991438218430116223269986799646940448868151788603674897666169031361056610622319796336627114052026782739478966373230486914698167864916577292469975036983932361508568620413901377132802773693162158816546262933383941645303561323313782506771995841492423362823355604418215861944479374774454761504216345970826403188167005900324715855306762273198625537599664866380860122596884786045803650898616172191664448889383207260101841842972508124038106725738712571311830655506799111145959472529244010121010480769717027508904223661419375223658304627676765022880685140241311002948852618293394773942196967311516735589604928790262170450699337317276495327190972232255254498681759436416910037144604067417708712498082296280500657577055603559025333962469320669117827935821419501260660213182485966995760325029991817007871155143389757177580325247754965715139802140189378837990990605610197648061651057338440007237052720537170426543746415836423635793972339147448247840671744378129510883852866280597540258706408549008414786258492459798822466967841390296673541687585629622505592425861507764348100790862220719112795040782512538214067203859181563642170649534664619317643515078437321238229403650589862485372739572706754580737028820899566080882738590957053648382345696997645690076843488762938141874876810960717144585049076076417210959545438239685155655403470062768912921894347795646174583208020418061094999372926752687992237372246620617461162057406949854171717672854941511162890480896062967000324492300869909856880187619424155417001333384989530645368871730823727564065007251559726999145175358133121845651206458192039014251608296851940366926119809846646458173933251957757222530727431078645028431128122137675700742382889928540338504944153384000494010268867501008652182791715217719170128042211713636851437089998278714511338241489753324308139829095700321531006419467478159996861606212428446663709202641201310633747477779636034057020842990009009761490930447774399015417330039113033931162870332044788895181565803191539879628032846221102947758332624617356680241821101052853899413896196889167925169316283020219208302154273343848165588484720022226456798448780886130594061385638352362405743218199598019205806373083938431299821905015065228169552394390099559241670064562267370900141949242875625281598328344129302592026414193532980916666186101727255893456473309082450550281829378156216316724370324326183492478227153078264269195869922319241513722718187418720831149795161952639181209822197668805634072756202949186710514089421472693155227919324693382638419783976380430490640573942122294260969197214846115985664215195165911408798797811351797394577804251010781198207579078749241651831073172201550646072789562236714938308181333959556520021915435809363509918875527576337237033573979490601350846042698660086014979406339285747143606618239317506503075097882167666465245536220628234695447455264987432556343611984056563700287850954307189768511355910616047341121740187595290450798326584660588506556263628883549002643283310241079634554611055242658434396550944018377993330347722661841332110961273854893479820930002334045029735895309663459017252141515570416366117646110897353789751027358125220041729827787192532474289306784650933178939510480665669318469334470395676723352432438317579189356943257212875747018047033792068866209221266803109882592364858977255219370512002620422797231094841042966305810733410213440453796564955933973521232216379673714466105146141117157258514617817442641921274460832043971129189490702854235731253455722871112572397420758077334076721709272060558532113276270607458473258061074080121223385529187076645904793442989564449366585471718382145744059950953337561669435954178764166885442996556755333224168505553539945009482524302291561875872619619051104920437237312850558683348542246344735867878305146241642294638817290914353820202268616384266623263756362190117566124822865504436778533191714757567469703832881006919956159838528638931037651865985256989693742560795484330684309679654291963676075650167772982054606544335033426531043973231512926351526171014398061581823664109223140255554002577999922315488728684205665666000017964297467979726524492623135557634936031553688855810798009441571680560858561522469922968937341089955764238605891640766226358258566923336417023620583910839666008988584391774287247211053019035272932600612274472572365864115123788483492526654944155887580420616328401873169137260021328758555578787868892010553594866339861367905173118186370015311901909630086305578382266526552023910843044390528180825051237868481979098890259156993372012822556353389293411190589532700025431063488291845895502356745797693040053846543883235560920015061038265162814532358868769607406187460370009657399535766122767510744786599344213772944881102636332313956233503608815442497458986232801256660114666177200957165911542702284148040836520553737252384700123408279116165048641564390194491286897429502973342746649010359488091323793806061902826144454079741391245826853819775076414678778434189699753457762846758811576966565606807587256436423958420204187030775649292838843119791950706313875493984911105825950868324181026721453180344154354182234236244747976329785002273365604016193123320595469183884897439300643534449118556687951265408663931595755008648448375440628766351703177631866803658642998041198248436504986201088521396739951413273245588007478334745827318582547119912559697950227567765962430063737722786723698058655701059113079990544042237583693915202056801893657277553779542233283264519052329266978354952147523925143589603512661322513598569621302580985273608933204577339547824927626872724819546075848581057191087089772568594798635850680592830209800586316655048312630277614762642347458157634351208225704936744844969187639791988497646901974074701479761347750645094457498236066683774059938225149113491665722549921284617651296015561113250336983788929866195054787856926668036601101796555680812743449023011730012705252715096933469942873965568027894568699535687075089832594803569870868155438057655779028326002964426693538182017590007883558827819524005258941997963963340706520443677230730920379469206058404129771600648126641659076581833616904861419811600585274230451514205644231632651309412331937076939804520347219645373922634228816118860391504619833222380528201333654078644923050424064309239894314270854867034177537094162994231552403405493790076930382793729710150909189530212832663972060735316454159594127060572434500845562849102511315471023317737647086294631263085859354834735128418734584276752117053158889754767167413555000060562177055983423454439102165475253523965512277754168321029935238144608830407741880910869834862855283110191726435026082023696728507857755785179500824842189911087407048062436609038059066533713392984381513972460460455526554193407008781794016120728696463635158889231395203394335707310389139185019457634516568490439686508304144646267212572071822585402480050879824164455813509714968115866810973496483684925552463165258659440595396637361585612389545191858165821907655951977006691993092414557602757878352887293587667310666277098193821682348276937743608488517904300802000185759865842567576840670860281364714483482341055187931172509886340423666213978613106430895205346490910897665776573119885570104645209805750979104864782555937893211892005280312734591528736885831636673167151198081627740350673347919132886887943313541651073311264752241906600990705176482400743999842679088771976176303481490645956993379387808740297963983211843585134964047753401941774423443497967382375373999669518198584035448294480659237438046872837056918339411568222170864845395554191055594238392805562957429355495893976678623427408452254887583831638197461590773204238072077245813422815796530263100880771673950616062176095271187333238086355054310998778135980206584676579632406401412681923756472605065662948519922750850429978884108563938230058070231691379968660229621424805033411976208185563435167453277412958416148168156261262963969918044126302380074129237848672150809592983996510575369789614838414188661371217373207203612962383608418745770213005306319150531213599692288914952718662226014084282412517757964327112114493750442406119235899735477641693880608755843512024071358565598228500114173654901907929947944702106134834955475305658808405774410749578427669975828464548294398882820348229373712813971349809666457436316578730600955577011881793635623874192418362203030935000586680232977216750741764035072116286819815842395739241137373821060124201298935022715526026152313999587704263254413810689733949498121343911385334497908718402649381024529386936155812730559551665839827647649206948739175174132641689028478744262204881746052713350959713402717135513817053425230351689824301121848763440776981036756341496319543376083800586528217410450430544923653449772665023343313472851656816965314184514924226885457500355528231796106018729683501453685737373544844817787956625940723208659469526356979026901788845174586865253391460025140702681191896894241394674242984570426291104739762491092997678625213608812787543435258991359365647531573205342842221310991501876589066819948278275190309240987562096318773468918543234179335953972262069336295759136744521932752552090053251576023986689986808068299966153089103884710853827302784613499569363290005623938985083665709930340638769356228683474285806191006453172272349449117513263231050067734436184366160840723566276309276162558103858710960834046897078978150262860257563729444449796999105617032164044632732274132141350098073885879663162168090408912168642690209387191344337581646566167245148005553120530026864274442803382803758582263994354142924487371517414881993444975825608118940696436442686742682915840289167899625368183338415283516346775710024465855022091999474352817571965275184390842967466166262181108594789459190531449969703768174545687110677665477025769552914174166394143532818992641054918980034900777013501094629163651137672750183999394045377816814783358298179505086297517092062447649646675525015899421789621938516621774606775320395569749193688882651961262089422840714919090122237075679308553178119757810520442735539108311234784578692786531802704449766780088223626873789796033189618904966290793776963241724920268115984960765948724687009675348730601893957452626577415335249692696459302557980757505694424272023202053359596177338285145918310060273579963676496702200311799686520853021532116597542560532850720086915180248193987768890303637742138367341730737536285113509369709914061145959760140103916124256967693219485793554982141808024567885165037314231077570343215231808975030169903595274862751849165543236474066432278357594813638676242184522760078455745994084014144731967723067254530597312070474287929915629251382281487621958853842079939940574300487832335286823941133436842773528621874449416821340247463543577914855162652517999161065520861368437218610866168280608001425053956169594999417568024147907354273619745604735877861978819158163104568594902700607605379977759981786963653564093451363674356834085586520491353482882772429792583116321142801514980471290363436957296921296777521828123610416480055868655465226111542436972878579493768831052155503302667647764683540625081086096287327764937295817843353629498031096669770506503339203519669101381195520789380502983946987026233335997972739850527641679667958830899582724673712399135170222463590292806612624996952798124075846938921639649143442611191704629692324785200519681593777073236507070215229666382523245121841907203496956082605891845677678834902764057828376661843816033601104417478162318514309664890527708875606933107951877377304039252673660693437882556987083035786268735107323217673129531805523603547471590435125591013140521252645302054901473174394021024243519259612748910777341528057760961786165990043097840794227679508589089270848073167676159734545219557028753894638153257572296879738543336376018814664862013180902461615244583139686224322090275491222702155555922186186442484701401682410466365488467916467522389092150227533291965303247379906288317922692369357868153451375954623348160339987941644680193154022724747418269406968327918529427934693360047070555169720999803541323451506986847109467899681061129069314851614474994391821576975903771420324476613186850159446530979507723648509956984496588258470761344094885566210587859056004506929302520626142411006970710460606007832229547888240658065535559728205038665109753348460306736278253376605159566909208624353473824228493274570471495633691617610117363573030275527256681224202995595670765973493105450930327613791094356652141410771774272980874485699193547879640239744358171197155476856388321419666364449920524854529529171506130236936439736858305363691923172349291912332605557228040729547714719382616837328757874070016492705899678744224585862861046387912848748024735942391274966558301517791512527315671824555189825548420029556129483076472349195456716371959716639259918796601449096554017797520079082586342798951995460289911988788390309209310467543903806805491960340316877794104106017161374080066448048883633730747867056654226871644999630908828359315168249635569901065116468121332497155400910372717110104436519383494960505614635977710177461297204818786715473182688580524853702945219445995601193040603977972456416377493712635217637464206198665990264384378761074269864403689419875553016316623174401824739177932951894075199421790911503324862158903504635047470032231273835131675028583844841071102582445598082394933599332356486062572988849911640845567057745861351477653071322552254785204294428485244357649802142303259372595705093757663556899879993452147166607461758160520856213685639264698441574896591655980691182487885351951904201792644634362745826943557639457303414666167328345302975424886029373699218255271125019680907584453702942493216622071410132544514967908217875943047234077392440617597765852285720827223766481202591127583322255681497202755276265776449682682765711574021211277855584726770770299167884080937828255731469467439964455090581052662979656657053815188002965939253854161506428743408768333875673898452757295029743151380150506204769337498359067860088887366089602198477790074231252857637835478749594269088920566044571811801898055512087592590044397004073949796771564304033085219928201355663559048610831850881268409139144995163370727004661426033088149127667502370844914117672809413307306113643088738976098167108324552481143765461173420819793044331107027242933001890219553412889801409740180923442136115492325794766007924756957638352431383814766946082924428309048052999216228661828958672251195586864370965200037042768028771063137683688302366720440699945718084300527167632689866751569323147749206391804574787625198985592904754396098968668814883137848247072607727825364025704831719296871904790730422385498349220100744166940111499133102187054889143413987389680739525828150323126034004313123261202704963939666805477901379722522088274572998910418648524217368472728856145542612628925069338738311407262686768758602443561912960266172231323476374153176098708942631807094150498682302430813024092112067926409315787483484233118552889034210896153475242853449651696902413512012125273271805679926080558253648423366900927878504243279035024048529843931670990494770496860873095511770122248582433170233132145107903539858679664989082316470584852232241397338608847893957179793740700027634694815487430018445480784212597087511401985545248276871633005376954135283492143669790111708765170217697652101813647545140738975946342907034220892367983554395023977463246559654072645889275001322980760275363813344054276154327685861397572236898884262662294110763855431097911298813563179536823187119372610059286575372650219922532039749617935297413146184336360713537991371195160222879851984542167805353852354436739901925405190501644446983652569589579907643077470784548353906229825289984078035394792927695202359798698194286743031851753922635036848919474864944207281334807672662943015574152378675316531415916324428609674694077873574612796039598764750325182428324561484054312739755750983382633215181838440556432472046610418915536831535197967791628973665226047124676941537180459043000399786169642457385567194279885483372802212853217474019374152634088239161525874517016033260337351308440814591953449208844117852216646032254526083215378556926148280393601110386473630242212508902461220101388794142067114345515488195959704413005808030598345176464149435951557000226310654599666882625619063033679889859545035771157165211700772337384006937906957441738841588668647564129958799187574682169775545513781802644115258757395268638728054517265301240031993512146047495866210166920998712059180479739420105572890072461954855816496131034020211701184379942008616597327630127268605083615916272190803692746893498212559601154281720534855844840427633877166092176951609099818051366318445957013727439060119659092713213918487128385591155416832303533539363449397930164107513739842112972473974589907203772375963863358224311791759947653902066257950923141723457805888930682493803872560177266804296940976633149498797184877156861181962989277014573182766844617711282181217878468890061528643918834178344994840716275564790632906543921186983183501367171436006090920444583856640682163226261945154465998864973149568230444122132031465916780540603031226158010758957995842411783684943063793031699734840057966573437445653413371418699971731778864123240053933290496505120711436288077147984828124663381227682969097194769746647825216730706586935925657097956425207407235749552773505927730763539648093799939248424533580996092090840882102360115581522671705935333413747631481564008881966682173540605579222953452856901999383108704292313024416524668068497358093926845554187766388703923126415004884417201546193309084756632268119574638791751480925615533811630442418035972347148806409747276128286270962562551449660994356311305614632097409756959004463689703909953364557115307074440668668942807772686096471510712105906077680507350399895546388757563951382410130374418404271363594055945375522736858345500512069482870157482203036876102083247121259175008355070761722418253615223120790018535954244342192349928679325699237283358668574517181026927894886923884537009350473363496657247259000441945249033025962792811198178994907156880135146457631358177815007581849015340410214710454446503644134521698002883254294977686557871367448772423508534431515881445454099270826553955457178324663797038651048571126080733059300575102260305396643166688743447277132107434450450552215591990183334424087624483702694400278012494433620885782948139229794297367486404680821302734932447092332197514814706479799526049946068697752938228309024865255193344510798940096719365386872131824800522342863671374180903562616667494542742998267342705993731457258906154732354560748118484050500439548320017415722418178791070959914957550600011664428416754548784377104317446393149000913361491226356148652517924122847503072017266389678778866261279757074042961077881664625899041082691324448406608370420153201027053560056795215421043027764813302073339390612460362559851333426265826586256912766614755978740986581841485111701985585572287391814199891310143037039022436412070917225252599976809636560199144500761477015038645166435828452897166834624237187275382699876566096807356811314611167327236465089432757577381063521625390273216419180090111975122632346961282971677165828227972826492778257258620056413485173284024577280575889731188727311165373411806800311458311801994089413231354263484546848918559501397467196906688252107630066958003677583151502711888413680998388210665107633817892660373356243826630841952450341694385114210232978563792973933418173685749226110574411789676769068269086810907519614776365952113616677783302156409463686138173096258186712621779749573868849526055206577657445634561349972703369616242950051962510878404408475749661343764970225285256604087399200423979388550716594707179174003655352935718316851301439905457379613081987467718347348348663610123823978474572792838081877483336392553509091063968321670708022916707134572733915397250123592769634732015809541832987976334898066622914097715933720853084409082676357160710757654533324482743459813357396488809193478603597732600554930076028074036642102581915961575898636489409561032037093020962473525849538223671582372715744370487079805280657717023181289254539044368009785298252237203893852455212671135491241983364635216373810033020765781759883028623518581149329402983518478171337388759063809315701665899425201333174429736973986744527122713813788268466352590527382194107394215506055869724833181841605457252238764009105021236721713941027531597942234502723051316064405117085175156066658765247898191841137086936653088497020365787851157880206420026422413649176214932623314595963350388671974903722052089555574395805927259924760767542769390448543312057090006934548770374675403627878777317991975071565205911237375861414132357861361968165318934072751818924603735428420884824080910537461536601102569580405962606411132016030876281640642521084371186793812221730046984405931535498862324978932459104911074118665759078935980344510458949486852088098417477577063477481806544745833360415904712400850282621368750505489584181306030227155984979497732784765338164330892967774618580200783586956898953930126675924352985112525817147291706181465627697857472850437491996517868345770676055600948905965685057630939859563519603851537256952687164061300170474634359865853633640018151339953964064997172103421321977555324372370229339348423394410078603205351318140860937558806213937214599095223707262921721893422332185214423889509371917248045560649578736905131936741483787057167318348715757379587731218644963990272104065660957873188438135723671510610873302871662053091540956194640111907410504779707497618026102273666519889170090442562193932066693372436630664602418224596980903122134962680748453043851124721124085150625046839683749357842391453786518825222084346226954561645233659676632807365585572968087404204886681057848318790314330078915154176926759153440554053702107807543141000881830791903393220518261153470391808993148178778044802360897631536906863294907049847563042531414090306034909591451846488483460001031921414529647033045971293043252201693816297207726938972935384108518231312630491965537869749433726687173838635738169999090166254661459171670834212504142411354394220415325853247886952936935403319227728021550798361638520269116941880924802984745251742438582273670556783699469619253911179237431014451479505268669826459273150579351107739676451663400994181177824237338371978317361151882780198186756914004002919133214042326959078208528228513204494217914929013511638338835291036214235927779043861728624047801466810755291612251832796020080286068848373237792021709872274880024791946795964626890564819121234277647766372014000393895243402249646223065924745812543610771389926969027525868292845436067763468314288281220845943547363567789313527285414167950271684838273739369303744931188034452201057248660985876537658650624871129359329254983264054880240730673486264121251347304662194885732165487119336248159061254902963755737796018661880118685834010573540862910994674164194000282638624349864820925536588467943375401208840632371111821920084238843862475559133156974360706388674581008901765940337376889548050553959430452307761907183883830316326298089808942648450809498236097068697009807416132348068916757448362369370560995223678214853062476871012230933220842175227932883572166975238452709360270032403115915243792636476359004600726343197767344095179444329281903065613639438925665766322674347607390108039837525401421217854657552187659142476849681537283749991302327689329118971762629431506960556715449331139756593509944747605243355176986651904676800039890491811665813693611510526299230106805639813664748451029042032407681651750960045843020157553369000189967069681422032290133638526029868708805388892549855242192205778450961191491782191225513391296667763289892429045470493650789101437026257213360032070937520014320125608751316765770290808593213972369377455740581697702002490081068455793355085277604172943585620816817943526391007391240538830545228639391979738592633990137020219808896601124724721898305656031837559849029884462113033100298731274555556844505642714241647390542054571617878703498848774376800347967655531724262006871036984193663069877060803882633213435321069901208864996538466086200187501047115237176082643445032647110270665512004441678458138700198532582130932249164912291538339842194142028941856369668814049786215280266729775639624982317279919737471252197026540559496986280925566596959942412555211852902517571892921961685154464388045456132107737216220408832297439720494166526871380187454873928522785910639117810774392500750934406275740059434150214938820363189573914490956742639470385767837557127416963100592591132152924989277082651936973551347565186774041401453106378877876124953381343601641953443322499771601517822957428955247755829640818533200811237791655818558054422962263380627900513519266819449384938802504308464028357130386074824337254992419958341182748484156324346044230999832407811226836888751801497760335415784835250403557557045010707049206798306533715323668275531586928638789868177773659573416498788016452927757337673812160433255514739884942610824423587198346478857686310793694865150178271619044367052827719191800355301044184027809796626801666166396235178426600854307217185565360008716339735784497089371677241881830981956535747975217161190972722779067221071687598550968187704514256441422492371515520898402347158383301545145856247281591069331956998691936553413391682082937012642111206164769200221747436685925868421431579655247439108760975273756114971113121939923717316853771037064561669952427376766017528672767378992030803152687651237910038032426615935293545209399287422240295413701886724570700480022629471019183145317140924154844197554454009162422064043188098158348295230609222500883483101503486424666708769824810945998231597468835144537277162062193523560881542720571372892348957326376707418617517788321250676816333394824487392700839603256200654399975178224400362040240629333951792853297894925839215619428211878682314735695822941044338253340540026488965496220952932444946084003416074178932403970003568448157009700434053146361338525113399921651657349288122857142934908578081096874424466830502942809278129274044985170318936113709489728020726632865957715233030229914339601160973171412307716118013673114966916831783932568123109377058830255158527778241944085721945260688115050769311780654020929658668845027025634615315317914883891293076380213821138634435569404164417660524476210980958142899599975723680580428501271634795202771988239087072160675360852873930058463082027955123823598609629949256031139787495074138187690919593299380814277768596539115267037221821871202219399342914048713544220879623137224316821193920563274235656667979584367326400935739107679105209065720515518355927959051642926236239147513778222246580637221676403713750282383849442555710694415770537534165853822390436320821871404239109260754524544083690519080895551617225846002264879481551609867489394558006506248058723386125870859388831091355245745463920566520620668905048640705826165719988682405824972838799498427461260141582398396752386535208789153060000192113317587514685803614750529711233501034502918290699570098031736760755155276852807423148741879934017130708949881170228153756070471752803646295586056247547331211044658716979229574477134852105331881878796486796669807968399910741150003017509168689823021763621276253194610689585369519449106638659873532355127179403934260614015548009502934425525963612453861872264679475785064000073202826786780226503791518983182014371866136799981623949861228501102488607325702414655482445181854374484484651217768965468339522602578453163154656043101284533509844854789446193048737254872758201484331931254266054413818900328009339892807664190784135365886274510560578887276444276837525396241365113594679566699946945757174731360961757887801103171211937245288539869646486710190584951959630187930634248639100280703212543172408387674511270950537429832569152082697495876194965636815029498308356294814074137215736079746434843787549540448905986918353148721152111841276260076812719603196264865156838362959832297116318627809186564277395932987394303882979933440722294558002821293168112728735998015576775525026379862066133814375717915592289517494829951562098153796180470894797157269208099313575382669636623739898580001732511604533943788795160011736335234118792982734823016878095626716234622894000437375148065968181449393351459131530207909951559141339168100171444381385817326675351389674892076026824129506199122205464002573712380729686539792330748448472814533876890698689740936595922354116386729962720949949282913503232384721586017171640403908273181484530811649699151969789023883245061841952163486715356309645516050856366961882060688839898025730299404533644763722948332247964386605683095303897571822403977893972073243293591687398644911607461656119888689244966304797154054912775139891466655856167130725895338708180818937148506223104591751288103363759839051102385260426338153069024722813229418253340337042414609619152988876706640653704001383590398872659023521806313415153280020854306310531685538902115864171879249368417342830732896615247493854901010667188293495888902396330527168035107576838229697772694701577063345987802078842268632502743813440528554129566568013835300496639033689796032668929333276124237900047081542049025058606826749181125291177393842804133143924804535514485518674702945507875165571215389255522563067241849520592198539718260169960281390593628184476324177289239634762666137598751235590021172465665994739765550905456038109508076364306815643505602364503188166385476558920221704000371760625777116197666567147136158268524773140060661863457369484212960414945591610508588760804173438183697725785753043766529520644374754153824188792385222536463015547480956236375331901327429421861483906746529144003918584629623271874148687597063154656694631358676081998523595369633175287918289050498095688251913428135710189091672207838099460198202012700516955326263383908527794885501913340454314714246622803883560758617575000638794775670493676402163469094244899796235349008764907461746209435714798643401820961835651083917029874123669028193418258574541625874785612174540153125466185980381685358591134422122361244947094263153536623417549199399230348287568167707805388986175285434766622195136755925009445427420526095779526373025397481720784490664193176501136835719673895923495076788602518609916037675452242619608355087175169970473402979220793752109149276451131212454960959526616547873962788853853065249074153969423503311863921437997505280016234623317211094416780766912753831096301162307222186927136589838064830126734807356134343201004433359059603607235012376738809819566121503665558954261585296488949057380589099556017151372116247663179260119293469667802860900846730562255896193356195096111682928003906940242768590886885964968147355130044400387013403804768549288550915063711903339816813285917587096979770199344334808735285618954253130090317905943513862319367547450700539768266730475136597214165250131543235707321867960755442774248226035186577159661800761993453377520757323475310060791156868013803128629022512437886444636676525426993966671102234582973532785728075839197161704752979012436386477491233083161743239550785015553500252368608596838880099792316738388446924763716801283306580582576727764070015035145267939052466977054895614355551887511210365819850001156528498893604117194443182297936061109808567580244890419445339154020550333553102092931296833999654164767969064818387376012701101795139010970402389301135311917687959329226210983031708896105555313452409291110616946606604353336274115277912211163543149159537563927372237912057125006934905796113640019845369166873951006884730510673522597596442238640600990378668793920001693277862191317623819659384259000267116124474929548523683698928219289902298217017923110451687259830301251227902787524346337395084388630923187620809938257292819175478974390333160603909247873854724519590719172162076614634963591679925916653074562574929312005102636083200651943393084843826713540010703309031297044949266364173000472381633028799352722580855598074069176349343323487865608367040543207568135236041601966637057686296971373067133126648358853903816022822562436404609340239903301015206206834901711246285590652490206463448775827085768039638826666030089552082606365653198457535969408895050142224478833113468557571492660010026748885163200921750562353854216596441030759453147567773358259652190429725676889652534876212689665835966727670055150000468014428534666162025334676904258353653973375893143028047379702336310544394493948060692057167843284052675843793243629012254382987797703295148755374523675174640790102031484060879283790834297984997469204608885907915335767423395815782073553163341273197535949544508814884797670113325834841483625197020172335908109545139548975700344625785493671078772550254385574359598877660351572601342043348267882121944155813007272960796179505164751912128269820367990072110493704430766340633590119764780550408294315115106419194868514957739949682279154556519561462470419407583830013009964509714325446963131436868671204463036320437053694149529715193873362158844982204547917972575783402504224563854489398965701944628193460231391730725878670400171114975120864881316763993578610129142933257863566943140358811546164920159611615374565008405693977147791194986750129753676579120648185127534561845978182964107831946339862471855862572572927600521894215878739655949520629000298945845987350856592652769568767104473510797831372361582213058156944462621499365933816606650491806331526594871296700343684795385218859516458253048317736212965001651456658881384295215083351991444332883728921572737759418568517283057641347990253420807375221625804744869501702611227932537346173556600245681060367379337085051616303297065263088984439611396315743426754764021074151552597446252317361522043597026547961877885155185013130322474054277520330917186265465692573924154369746834123250960715925352041199731980047684353905716342941826441097372475098902587180932342847706609800664148404077483455617527589863692482579503373096352001879975808745959844786917982887880132272961806331976976432086783394495650711708717184681093118352661478608468142280792489262618984675717488165736601252863760114666466001703631961384990796665065552950703351821984962370175339387720874080239523328686284400116780293725299469678824793846492384105611476457649933838980033281469859881535432647236381308442385434523644893669561654399917249272355963964470882636370519205761099853326930970606710151096328988643843699438317881044516562252950449939501859511163874922441638678859843649905697214812235790953984268147199730394728253506900954884388313788256577641392991629185489780860569298225426657269998951339463316441503286363952807533628784145119991901690870649965608503969046621827328955296804183269358410943801381737886835326329549347988557350193145443333995145240759243523030305967492054485664614537666454075425613706118922153276193835661852703695843908864083148256133900633498273991769593728728034072503152009864866594351192243033819829916925792085301235020902699385874451620930410980705351794343466394750168827619271873100633480520357801086604933497182561260959316862158066257196739271601083279163381527311072330534507712224814763016064168835036745868994641471695208555066442589240579389237017150580958883962342395775065651928193792825144898234957188427948744396584909955899944405663690470873337825389103551044321567102486494810940418543104188586683900322020142336473963941539015598646678339550414311558585338012101494763195732727005986768769843944535882600074544701791363436255831354575922327989359012286482279678941707154075292818047416896515155510898656612206138256071014052512041851373010573676863750300010047420572660277227893772873871303805418699930291825264124998295478637443430225933516624194971601662845783237181219610775366631592979089666579070469300165944514555558058756326826706544215546060728120633779737724258195225948074619977606702846055010232490696312755944567235768370271365388895201626430695192040968920977565314923667926638439942688090586785741186687730974272764378732991597944749740591909287934241848854963244737089219645737774591129532394036065492370242289009788687221306976570304652783891805704334464666472021298478313848301182369390648698867710603974057881598244065278835589872126258374832258115337794614813479320904889406272654985899254751543716820939164661121995054397690860958826534760134577864996759586964375028071544554165139629244129759032617497430850300120191626674032801019456343611086569067199094897387164876269969072949915985843822343406657235343441837613570330199633096091040720291724589695745450626573428061362106761601473877771896251225525040024997049130648394816521664951847580406009592297911446308983693542937392826583356951820793959000431326001197529270951868111180714696792689014316489132557214842277079542911445392363877368729207198841549009068740095069804909050334005294380963011301186184061592580977208570597793675183724907058677292383320655894731528115310900026905096156930193893968810575421919544444172198126359609056323361184004171329307440354976241774643299170741400298815073877527740004290940896527854988580941904749950885847484261329136109835125322769343358749299800562660734952568067057962317989997550590363675551599833963204572954522663786290691468017760834866679185155578263319836080385728821268257647464089326447373151795074731238010121875224075056936193770192636668976594585398247346995113092960323174121580632348190069440531303709239009478441321243220189079628516688610259668290355750675882242507864396701530987597357975502968048802180211496433956290301681583384102575190325587204822967947631594324806346372662571424528250290832694630246309111978798439338221935007893377542644650034072234768175930829019525346812250610532823877444374379935219241027706138458525626584824747682595706417533739091777016433531742617594110681420122004989456452025639845552266784532819681280605359413071919464312539474265354398550985441912549885612801501959674195599845252442733169705606046274264195628160842300087082164578483959326168277191216766032257840534921343549162841993730553254638030331240242769255299114622592043184656150373435859607576910006889679833140227760288098462206112483160204698489750493006101050878965194517215404744299354346991157678806263036500806826196992373332204099542821306831848767906203880034450249081179904836407904379749193795504295945750476396954184330950476785680971018307810949362595233513997492273011819523963551107006531922495922314383131633964116042339667791921129153240092935684840174559609318781266193403384673141086013033780270700639988694055179624682980968122206310866925537314068909915382427573794179059795491439763370066130404383023322011886963096191004029048341944615979901684413460564679871000520112293818919625917229920834674819273289098594453474938948480239976228643059941743219697261302993084668927141507405448451417525205702716772389283977810350602747483120793781132525360625479243017745812492510947021047314199045965064462756163621240464360080269694019653726675736924514689880225404231882352895941800731842793908817076058290428689245513291585148901688623970123832342734907704134921102313906140510165078147098177946723594612760440599258524865516984879088717564349355461729035618501749784366002856233705397889046393314683100513223443100929384835622155216262590596384269391770396766351217596650957517083193421845105286570990838595068056938169438972712962355094557479524396555222859705236775558374185199813221449117303910618897772884114958487511904460760552160019833886152838994963830373661046427323472743816570827261923753096477672083510667047501985095582281687228672452641403492117189563393626722980485407170861139754332435530182448731679422474025813075433956793650794102099289318695025910089501772553276031111374211202037398610362929201662580720619711756227546908126696605859102653692543108751837419729612821779331412974022399047183788720455961603468040321097520000395783303126791708757165523377961908446446850276570920681578853975094064229803806573019206191112481426184092475165871573227475374321904995233542520305319508603884706212620791941454792695886100048355821519563217666075238039300380592707179949787726443040223408074929958885636680429494093707640758540822763533183299565758302957097170275615693783680420714817530912844500537309693792403369018981491081281821834040547267057310133527079340518759918147100504429633701741944344825511843616398903238998877444057713015974162097758321241571312899246744303083336712582476971751167001063171658116298721925088304239350718658962630794590353360656044995087410867945988933098275306559558500670127600542667629752021269868634775319693760640911714782881647582709935713218286009975832966502049673266947762380563239536929901927522876732400051924703770099132984296700093151825669254793876622102944507003637526375202106628254392379394860689036926963266039699803402371451691674399514560425197073357619917721136202602227709306286094087125225099550175967480875681936894466472329328248908099030117077066265866168442328065400103615999240685020729390799753814956853354659747036543264804239757553449889755278707212135971184346236231010600576940561786215481170603061514656173522312403266654757394054092448426085274757947789518097655758205541931804733733249972365283599799094547764966028750410103432823610498522112112572915988655129021385125611818808585117795973138478877228533147123874150682004641071596086860614955072817921298464941259991068150069586297093437699144007173330322939823183734682363235961936821856161403745890069551024455402793068863682569265810411995027857003207634451655457397423623160343711059554254680766262932116474708919111322309469740033451298803194560535729767772287219116460954140636437552609750480745119161614585058442399342009756473444856719415324083277527768550204425018786357710133578422831731883007886624827966379529211906737066914384683862076933150829170794275016112682047943255956975705123934920099235831894307396922469313582375997092149927994431172030540061860863357820349976862222273030453087830287331541176041671553286105802127210262715501186879897586478136605687089630578563727869344718576360460788274307444702319766679737405377192369141133124913358262711015417408435813264816255381208000146336464271283033111347838677219680409674769911570043146552427338895059963618029580196563033780981191842923321194280188335161587509854101997648147861714975121170227937136679059847521151143665962958614108154402674932978114730523418996889146417174639571586234818190957944056737105220718507130954945748114892567922488560685962253158904420042913906689434824702707212560850154312977264413870831180314376184592390529037998299442993893802430821266868367552031329293866162831185221048908414241340054608862986546898401064930461378250970814907913653602393418428817258738497857632470687987710972023754847095038015269062761874190181920161929494351405748742153405159085399737665079828475940932508215966595856610883236229453472051632707830716739329619412721299024589154423116259258313835482618845825511612403666465048001278333896729836394749936099147728542633290863921370552655360854951093421050845113269468276095713012565728649072551702776391552405554851279174024064293126404427980188976235982706757632014109883009775927442559980857780599119877959714693670022433104651158165065972123341683596203620275394155852916845407392147524011503355375640066661097846361878957403120467914421199060982328647135709698063834964574003397711834875647866434675902594144039434105086056247052650672533054047063289972891965997909268074044754912518454067480069685793300326717620272447972977302612462080918821535608210349768723497358175776079160209427168280096847682139422096058300741012548476656701548832619621511788031333135309728588761649298551028971298255013049828530189823447607191589336686150696206688341633291997577999247227999569853372161732545681161930169128301599502448962677122469653265331507575937871063369183137695801606462591298589570686903298892988452635022679224731868220856721651263825197285182813241060856822531692675074228202643387257646964307588997006047888273859576369974916111666961216353075014699019722541480653758996103388114958586094536416011620310592520681032684879961197554343232181980774781942234302936166404004060159301633812410056715730212006978465329620536820937705566498764865288484173407443210899679341711498924590177329768324083277868807214944800202411538686682958575191591832945779728855467475219079165200459715795493587989333014481229754145343731102726992138673024119036140721862148659171283972069242057706756140661530667801136170935197466074761919486713807475639515929536054723916724819396643286736577634806430498329187785565883506482176797245670713357870726032772610930131986213756141466522669655872997260028481026576953347706784213596571142296254160428307183894115669069675608035725945653172871874305355660639486879988235604434586031770139847945845672668135458711216745995716854262108691834608121988125305569816600600066852812578017429004257063320499295902811838767864512339002159714839548487000840279419378160412098346786252392696727855826858517254232774184507391936889371797871249839521344573612921724572814205023441909759999813571482615468854141745228150774629542153038273447855430312352841936910543928490019456389859863940410344709932869281009055734094652358618973397402593630735715467847669862438483423719108331529373556522846876274361593976801017897984032614459205469095451374322298052035147566355920194533197858629195843083784671065597784499092515768666142318682626062816709817953567875996766669833091367449120894444265974259769259061595123377967058154750474497497890140191940420484980877709478161802105081919098485732247061448562149400673517025791685293335737696139027155943825376574255168096042988456350477814820236699038312838644927117320679855557721084263018237103085357066885123461540889549202300710287403517939043876961712656511418358655554793762121323242346488578618879980961868225563950506261276059473524924638761335256745893611047023877570665260672915234501604252956955426947041718442667438400779427650108480964294977912653099764135560651277079290350677007253499686335863209121970591486784648020264964477470979058417408722958073234412885409048962550280967336369195129491873252907523312296498883720618344421330676598214126045632924123976463367693384390484799815903465197754181337308846520060176192664669008570452750858619322376310300109688573497726345669135300160995858089464339525993736282379293628124044768484037883707310509370637528119590750529188253729152560968094114008519382952705603016883981744677058946923811975485221130470830876110945448266275413944435906836605996176047772933838724439190865674464000993122457162700248585993614101092523693476960406837883820414130724760114963307315065346430208788116450059241138277733175849047749288803562844920576583290125991481272579878976882850109153316986067312249104707523280225547785958902625958094259263464362776129263510660506374132051083311942555304155127814012657423212502136354954235685899625918831476790881951843309985418455377148192058248090293567413087173632098790515817969827467354794089106940755257938741942584497540931554429558666114679555923466195630217140964145119569046725909197615451284440043352301274295969644661898482676140899184793209939426632631578374291789866902522408876382136347890462618871050431661071698763998595593800124452770546442550095561002845528741076610202354288451620761328725338196726580023196320974012896255687108434359931634177575137684962992845318043807845978659907281346896013113407347941581539225084518067890974320357321496690082137303403693913061330356502905334592996901130825227391463570340726997171716057582662324246452732966725441122435025120454442201083866442694656859604211414007708322912269984905385577147740529476373490789618104919478661088580746978511254815853983215109752919649485010471293416527448212523353355282308684047626254812274952891519706009482569798889473787980157252017956537670680155618490325972852485851436455351476508630504603247663229006534936224565988039684470410174109479096980866506640306232900717803992876415014095550362929793451811068477246688166725941979584300035478664090251591471115196647253028313347819287570596458629297980581528068481909596329309032807406462850336724908439876498728098909612568166009571836751462577368847997582398991384229508890369615752921714644968382745360456080879171756673618908550129916556009447028371179083351910258882955307039978236515485882652443143612910228605468513884432342721422511881269495731564137786961406174140339086896738290386259698414491544013075020226757810917449133711278838220574929237461461503485602836932034167431615981530138740480313384969513084167104352287623469738412784874348130414811400233059022121118068898388650921083004070244717312111203081105087654009233189819379717469936653134404854878451403406672535175090862033258536764968773464998659090869675282067640478735111222155416519749342992032424183861807799643970525013033714229050689199555039740350363208441717240560178266752039725984749612789552091577420357863348987400176971072311928052988245100686887397344279256999568739236674008059091692134646998710738707109520519348636940013272142940972163777169605817591985868800708176558609113586682899437071296990160539512501807236845489098227273882331928614705354825769891168335641626284154364418958011825099310501200054818827525615803934352969564589520056017604422007183051096478990204095645547337769344688375458482191943372605360434416071770938909412216391916384109373575761493751804667078790761892797473871859382834667760039854216777300615440365618280004417714532285222541274066478825348561284917574102446840406817068621316868281155943081871015753995881307422047853910877993075163064382369090056558384065821118534307297961290528682043887110732062983052464769405102777488395801405237911246646194615874352449187421278193885597973869777251593430595323166924999164312240869585545392175406646548101350691380497691246088761573890689589335352272992776802844717004010757259546931216290893017101911332829543415277623926976285165774879368207213960342014874382524625359542394995044985100912271854365884903266441928505644641660076116954006971733823848359314855759549179126376902469126551833939553403295075518227337563266567411793283535222690518207575472535539594903905367438700855906844800384131650211006238656514266797606720744792745752445956615426681043232758605639212839609860029112545937246937842705534590923545298105968654734457350976364329079908535782116431317826778327661450840598218643510343620988907528935895169045951301101823216536032724927486216823155612447967885340197035161031879469052836663093028051502212559224802435393262473711093484801454162505469570653748591767888573418584107541714425294486423065937036639082629806722982732184302156075437910066346912249068627242224590569764129636027551609312625585286093045350332420083494074554492349856784346666652746251333877497489371498224219987954662569023210264205111834502351398123129342681291191365425745849475334902654683866607755989454554651712289379768794540980813707071751062871670803005545471841877873890110737629976675180541562257957674561962833323792887835775086458007817044514664206004784373911580218192383647067643615771787772297704551466798282986776855964090470872666894627235312882599966711509937710124392796796937877555331748507382393466479197373114876195703225814506550646161687101262312135649182855765136176732152628594302437975006218610419564782337854002588103858652482317690935146984254461436277538959348040093516425004306405381986397963163813655196484581125361056821675309765449540196339845901684447863034640004267192233849886665567710646473749652956703155489247801796319703204982978932664955234583993628714846185539999913764288770735933701118368392555468373457485535343596097362622404263728969089018301963108504444962519011402185277964339991317406711519821118221001842275791689898258179727221808901143200830521980638367183552494033985394641940139514924264831888438985034911696954542063706699553451984371187252472154686772899368515258260578118306693846702907077728394656757492497709472760519632204445342460662064132357565329077222974580707501699190295343203620182401968764742518887275478741813485413803960008123321473415668106174659843145677865268942583019353388636508301740583484919944859533283855986967385148351237008369017867506363747924547778161251404384015399275625572046831876027703668372642913145940705734884586331354753786802034637850698186027440752514990599237716471166022456396953847223202986371855290659851606590267922672599160304973403303102324627803622028962076501525403594002443247667488502784819716353850206805226360254698654829834648387368762386315915187963079687716366293343631171994242330673323822356373907873324002016536605360664805243964031550123863585767671682977875475535771568134902690825406313939933678917015682735435365548178987984207789627959002581285274289476151852965285453055883897401641017187487271601856197859214812253966306621137025571507168360971967586920496791169688821334312268401958209701321374474611963111923390817298794974852789493963020647894179466251210780373208070067573989450539128963631743866058049838988179923017749690099576193154381603033698722884362027065219641393816042002596622505714712220206873274449889882299559224638449446614201906203659259520695116616543297871409602645497326982346267600881902619900491784589971615850934740504186085772245867312645586641488876351514875352885529328232965900263881836005636754677217745355153626434782075308724067345983196944602491702429368527405699641381188263455750200515252684184394529251923329120145496357331093125056387912507762289314053172559014452625604651668458912867870111718011272500495318418421256242904796564843469910171206170104383983830596488723244827469722794433422707193755450555336290554873992092305810821072072555567613829163593567204563722836682020852124903353388512089257640083463575607912807382871441854410990087033676621937294233801914929225165029514105621068750805744917237705772845257572937021749086853396854433714892324283276193645667490393120817556634324703722904067370458505752968260554418427749971513589263774756448318768869452349401715545630192416531725655884546173871280590750946693246045301062367383822742922010633321241998334077675379034733093190960961391642194342962803293202499639915932449325774104792495231531685383101639185564020913934240143312979875597244886550763903723508722285089496259764615706905076515104197028100134110318366774952177433304516136433337343721270982266459547539783113128093555333523818160146076200046561782339242013042680211512098446762680209988423235168882614906704705661994640605752549359337086238351406349991018744629598717306479798247488789223969144525707215039858023698953301206066225793719872601368121762666205607351321593881826793950638957154270533476026227741817364064118534398033662953503176873965791456847847681256061163908896452393584171645586731221624464891620448272431477869989436892681894600796514474987168476010013111907778458478925476169465417713918866570160791632318230074293705531075750925129571393245596073387734532448770403324361509507233305973769041384135549634524010435532054815158904581700934701070373439846255023372402418599384269072587418005797415983798896162499120707751077850405719165953978082428176575586171553057066725692580217446625820821754456858200654448343740916881316095863356416160635337291491866904881950906874947967198356135685775410598193170126915258778765327699553804889806625378799859871799266075800716012039947013484755009859523738917565811248040164698759149000486488772233759172961229511424623516718770875006583177089237326123059689404517366621611573555358998608721458309083768612344755644228800889926211298749313439140312150252882538842055813860674330413877885808282087597360586235761772684813349819726666473046760344651476043081212764143212061635564861107557516902467676879123486961267078217584472661567113268568423732708065676585698679337222593398431367105597262171584791855554671354547408931291760323113485140642961703663396126483600437442692019759929874418631992255332847488704149759058487969962650929601167908848355018039187583560579612468302862967504574098904760013676421566979129236354692138765649575611843444723739412840947798142827950224499421115666418638054114453841654911866360593497085451848311497204184671707295278439222702086744342949477812107790311074864854408142934271617270466602213747847205869797093556323260361196081984594825710169331166102900735791427868456987022423564298751774265759172187612304040534708825744960809202240326810115692148958501623225201444519453538870776541881603093171853594158811369674064707707500163364483577799075836323625736297866681620125324901322898103945136057398953860773599646586066300819504893732360413808570764134176122994580485709631709470011098036769566514396423156418316515334203759573367152682782254981004102947247794505662494363304859236263492208461873731027495663864793160043953668963051505733730716222874223023035618652474666676455115267460902926325732350649078177272958484671468933740787728976436859582772502645867032003877327777383892061908184249313068425236677827749749240537143800885872733078567250861622938339907992161702308289292015451015604634644799645017095431922473520551440216790301682329342536708270932738349963579532131850427044566172297073575324149667879640892235522404454055552748765824628464800870968088901865354495651237139796597636319648210465280666664962779861734532092185594710236959179956445444686328494001510543975722164421893468587688398144714920687118227980451842429406909494687734086303443573587801175551603420464333179415938677590966519386964700051838491462472537425865631766352442190414473677448906245833658501545866377057825653593865890884208585820069131961913684203106884088045285925396085632238851755534423242502366041977191573986863482230721286482434832731663799094614212201987782335447286338070487450060717039731232500617992831316539794764191399736902147448664146133585718868046452970391128573424561516679967688595679117190979054584237154618820252694365015585031524399736353905634190903281142958901426171002809876804793974667682642962965526359119169515356793293802747287857286583678411343636106081622964876717831467352608015201422622403737069119857903676748033228093528089141832456733153174556985902472564064086386262698673282871434322138016227276314291172760857760202572393751694949974984131476840653725586033119762015802953008338484851889126599661171556740359579516468580464435012669271899020130370125490122856840172096490555113765900641810536057083820949774870670103571762488009355452331756877151654996786141657316513020750762663765804785512629737379277933724714489115829815759072559247169673927659194189684885008252289947476964454579622412845139145102430661817491248712058328031037989876494986191409720781714889210138688671500892887686043891827022037322643000419278488716903673575731430928531041502262715090042010698552062939282465654654900323784573366975105675719426168531615120498046660433012542584976899238144684975304270895533481259523490241430748720090027108941991566886309038976594546381889570724508526077973535643141141337264783627067078584973299847523242480491175320477962826660470640556920058856499603800945261226777724903901009982953426467239823140208311624819909754222558673014268485315174816551462270439015277796265635260438999946703817595203966912421491859633343323129799322092207622495438527237024151825660344348524403014890798431240980085803177260961707514179940456425164265772333085726959875914381433984798894351222166570440737484227569122509581053246184821323336415108895670518593787387121151405946857663793277443077043511160824841982082853975106588990190731151852531894910226430577341699893486540690549461060559383910091985080397088953632903579992080169936532302404349089337968630344659367666620568561352062274598481299046039933549667798886438339698423736203912532999608537991047466462184018921457185720027584058861192653889386645306087697194512831976477939166016027456983255573609576034220156270532392832624878711262850958222129254949201023053611365625161995208603049755553038598040858309018042947521271915308494621584800187591066870898826708400158428628906022289426495514347560675889067200015051860957228287674993733864308394104700791021739185465340161744619785098596289913130031789161800300609228957893274583048493279264269118326542009647088644813575140485061752791286913351675768215970266678861954300879334039890564417065227935233353804520159419027144234285573879025716356252221142342341617157936641710482645321735600753546376343848489968173696916128234776597139624114627062893838184284857245886132374996320869675874925687216195000362457295096377824932996276975307879817416554666790778553061552004085651305605913327524464193425438442908499266827851996028202818957029970518767804277890119754799431107591796901759505280757203508939192015622947095568062769370427153043134982290869463216895111681345924183325428868674023673940303780461225478458437388624616562171617506682095081900186166378751109145631066805345647933331340162580696941460228800784498772296638144849321763688064507387075594382583423735668595295950762121587311100127137213702939649430551487855769233504183487694429874235037384036172714639259893236685319671242895082911421763986700705753719922937318283605566899043334754216990454706273023939425513015283198202906171332081766296201377304909981657114375842321992994558836543324349144869396795533161670176275623288517355008439036715915559179229239027799308591502630259060724633434623432186391823251942059580279556975368369119098927297158726856295538428983781669856013896678354124508036866530768468352168070526309512194489922560263393151527139866247558160915787483344331811604291471681004221950101070289848498748439400889238402089385424062458311034063190015148758533554517497248949874819917252246224115313558706667892960461274241518068108467750802902293813349111099475727666183799023475746642337350905061409062807990695424887035824627065916004789069887652695799491970491491863862850368590010955034012439097031594031461990644295557416337310064865366295755059458002854613414887455507082913911276652026419319231019200105715065852779650501504789037738820061713025744503958652693840251372718931287036096847626461316576692092078526816602672683717777838467972034526981532932045706033545271677586156824409597436833217325897512632479145869737896074503292807109555676106787218917168640371822370598975637842354854602025851947862858338471892412935803447712184982416862564213109570506725224511142870378137993408964443687330270818510852224959493771995023368325273904343142933686989928018918882057715143828029723738371200871669595402856892295674437153253873720687271283844126263813052933204400419619036383034991788216441273593616161795617130182894953956688242968453322044244685752537100744667146978896960793409408235513792670751433525010077699144164030239466740242705205253985117689238804876765292794589284312578823100850007688418256785416208164938015279453722300405448480570356361499476911925566964888199012458247935411826542710392545222128755087716203770523475066485441949486805357277791837405285557546358432642854934406050971467120717461691950546804925492213327653692020031246655222338348711233239543678520936294526465989329525324217675041024689577717212879666275191937437733201799430125884946718424561203319953862934127744826000189217602547303205196748449093934001144631013323007670637570575264855921893168485442118942179441823805694128905023903035836517799298751218550059092129018949079881335146231349140406059237538881979985464389898812730234818823950807338105425433674971801534096206711397540994015859835838548508660080859411577277586832292696452094255694278972187087416343470063054354172308217083015898264651624191127017481161299678709409646761971660499868113893492044354449481479842193786320447215280541386350100704781945115802362861944279551544059143672784893567533996576539769166988426482433038917127051583288709413492712510325209375225867256998364722620137409210515170139235402557726854414403457582796493394773997866501774932466735536394778258323193372296479919334533556804211829017510778183020289435938549668476552796943074014330028132060007766485552353202584740466621060824578452524420335165710275398033590078165524812760062087970868726535752500568485900299589318615332894260517831126594431495552666353164827023675045634360857055376402297660219037831400003844436399300224762583936714094760100200759695951174037031669262794223910431797034852046798444605414420824327807851368377829353922177135341246041308279947751878845363984856062610391007660850981408309181923789117336175603163516091217093387481794189728113254449339194489364856733993823280345204796715372073850785461078138667203376331814395638185042029865680170804175706957563987115997997950794025959306750514667287190478499098890828882600325626912538784690536668933496073612955529144803782147866330993962953595175238162238715620412203860114303679433911069340314121587251988048520503971687098983420651432653926344158751324557446920487546478085095437332157543937065873570222165561237055395909331493553311974598899750085585255659843349689541891397860640597153913704220558621315789469851484445236707548299541642565796346915575411611108889827765702373290950392767177293172570891544300527889648498407393865217239488484437033328918262269166418768624340684642837397010987794548652841393614006604830808601773354856229365211761219249502752870994021993790997039536534222435441505893581268127383701364556541661117183725276866349751074394128918471928913333591569190084710483498529919390515131070032623044827508814367691390574417281760749259538370859593280325681149004388796457612676092146209463325924311767338668825627172855644108159247014317314742596145116018869805131588552854535507216511192164642831782449190100339060353668623507902671012321026517073232473705545838721548500453179857415786269742137174863610940810173796728526815853143563608000582194085555237286471298143324340449024391810610600772312019325962050226536098533318267429543345169692182002811498406826450099498839397965513342179136986414464502972741520668305100194734306847288728351700060269360971259832683467024723869242744343869163250152158396822885975849500536400436053024847353147565517739144283927320423935507858496342111927669818901408651478613026319789031920136031179111956127947016869400769147179541270774321771199869396615307908172424158909002111007090010392206942378549584508303337954284532511121338128121306052815977943094113357982128220886205742993191302343415002402153228640889779920921382099136974580924617849731962843267672362476406177636346934563395393338342274982935544715451737772039026422761965280947451898792720830669720665570330473802935546315251123882411965448777188437016889815185666591754592023057705097204501626104359064434276776074003283838489891301177428454819962717433367319526664683336314038203156272081718249213875557512411083572977526069824918350301928810630771670479814831117310948745019908370818392885587226335364179654855704695498537911301746550664328346075926764661728145017745024834849491723042356004071668896523097838586469693627890823134459882847801559978483310476674772514055339231739232939637402308254099506455083245899676394583863626111663087120622615510395664832260794320990951639687441693921018194097495812115762597928293799405092667113749246087809448990734550551508322440276101543350974975157335555980197986308656744497533677627334001044067634746506448754123040581234919009661458629949848996116395710113002371002973841386234610128025989569763956763784937126070710773540066793513244127151665856870313176101606284351529771934843114626799373028243897168673698229781460229823394985621566725115508415260929854663020787349259493568388413867332108989787179994164067369418782065916450618546467330331600456702149723192639529731683438858098930494262252178547497697381192349167654538166080371055524126759857858694240039254446401861777660715943445483968783917671251492755577094771701296447379556692564054062187653670104860263338766996495242120744371560100477469161466471603868521658613421748649542455760475529717874290396818044440420315710851338230230501319637845272406359356938088206989685866187016700097815996180691958589765277966172569404007679416990662551932761566457675050262562730509017092960715174075943969150461446544559790195193577876524685258793548633230120137536655837240358340463692336440931709607173385031536163239624573160973531796039495575681805418196226301912968068917983231164356446203619777518663867149750639329675498332300872876286809643019610195938582861812878604978733699390636582400063378940376067378717933800124196577914023382296400522327741696022752055200129580922829355972358732104143446837202098824225567020451928012851609550801710053460412732205124732747616776262991998405885018035487604195361687803034204069285322765460890403542332570481821250642841712212938618769484502515358680328390422538828455432414811640374195098345553419395769429758193179297974112865728067969451469274064746838446691507823284720017912806107470916956960887556148590690562121980066209905464987061300393340999233543560079449812855415731129882616011769128165712739184825476433629591164532793468443148270427712062978173230957977499443154620300314605344286394256325416679224182945866808939512077255817768650058389922718439096040303030630861037764966323288049528276368465263317076591259417672965465836883118927803291435527763051646298363048791334197786758884365417817560546390127316206052619454275813380214604451739571541189018132713888717655875375407636425970893108024663053476756157432204662605849791834912302191849693643507786678458719952883745579502178625090165506192301359328034127615465929984144953277512517790690811528985551077251637022409852969911436182240683437284132076114446118891853304130758895588354798323011419824405342148628627091929822889691428422364058332386342878284021708733246783290597056518380504743954006280945662506583904456073207387858016594251899398437144604927798636498998066815620268178305818358378296860136876745255128652410445451171151609261198851320151410003744059917315686548143439036196059252338860713499972362278426327602071926596371966204377494860470795797653173124513544038112848555829269825344456106878409251438260921445954755313272439652863817552734214936103444471925341582236032015620843316302644901038733552643695974270877797008983052042911309750141704140309570105749202779594647812325148175754319964482981226577869937361950961223792326430425570104530132482213384632661256160059512591770541569462210310849960420531243370889151600178462436562990239453770218413213640853926215759241519246941067830935387067404321449387261547646354053243997822905298450518733221235107424658545993549773531905649550011542466190020774720794918760478550336895582900242191381581747042096254082687453508507935632170704241173046284777140205879701557636963028070761583632957006487966340194023313541235069174177374090964596296308196696522407082907829525785565617787437300455319583124994335127018991512364106273052201376505360381677767558675503829434543907139897532752000924937518960548472046583273533246880160222387744989183930184064113157968109732765054074047907020740769199987310848584454029665352800099216799248636462986353498121940333171373674984907084165653887350476519835824048695879893576534891484211994157139772265378387405069794121443688369350061530365781012356790717266944084247225428969801712788898132273526455379766700051728600933466104589376143300963231991078305922905317257773633594359820202098680579362436270027668886828010535023780259168907818124836443392291111599816457997202664718604689188822338182764036203186512423562056897315334408375711086108377530325907373022541026430790495007101897733391241186046783384868922388495770115453900076372501714504104277577993577391731050804580430980551453019464176881494169833630985999239908945157135771126133439049367477052429751196870343750281849263244863860177343241924394750839075994789070791490410535323410995370267250393384171007511522763758139849091397557511389951271829060842874614594254398184819671072454504732278920941502849839528201717383027861294775537736318085128353669355198575021799126846850448683834233037440742676225100771715681449668835935866055672596429348081788301366386327613837052515089273086457763925885274538716121992360303086775932174398993443412147968748536407895537264423643412880123644247917827716702863970527565804396961280599395414973701742367341375117060017921904920630883826403275251771164202803348107011193841221235837128000093812268576654766043707152758924182493437897464921326017904539528718492389524869568584657670617731285705927060381759128518563903879706316877264588215041535090997920734501997346830994894596818983918374961117613656459711029271174626834653132037954414259386095499431330559814378169476512050089402160137755003291500126839258950176264301499025428549396263715478083111198383502205182846755916484684079041317237480942769953611580877422980681367176029168348715215446981675356202371497274463686261907611827001096938648352106669517902651370464298488289642619918126315494823322217826759119307393934123778757494062311158123783537870291556806520855648524058693220742536499417603422187844014809983863733325197870894143852373835094364830995355926460687052918393303190423097654882674574694588076415295367502828631605864933041831632840099771989275956686923839799009510338527487555857928658547856388717079909518241525379557688590228412600798056013688592138446596918271540708418214439063535438235901670225382381099669602382061149477893048412774112398847196242284145825090153827803987751604604586181785504490115254980295286523266411512216462002015229501128533710059892250142327556642498689088406053475502571839765090033163671725453048059131209141332433943975999738148291742460186548024365395361197161292530482503291060592709828289200841358327687867582744422494961852640723571852760437925449188926763056889837365284793047310574282161296863654298354226371289408045967059548670732909937178965351283615401294466472728514422804857491170108059569187754212890303860022666217778027094720358300964526471595913679410024915225986087468044868130704134132189580940965009816508167420806091691514228044307698843249042140980004615833663274119228912243107898317298617390645903582773838655118873568546763790332535843615947105044885987445010919280900882832890618303809284699931441040460885655064202525399240899391177309546279906384250027978376966099680391063059626009485064788451993378991030171104016018357020209900710272307106360514336947907625203069707054425441728834982274060231297635054537159718988924558624500993113317703837686117117100658358720126763072393731049230624672994364868931974756377963103001951359133095390468492222815008160974603469520607448436958544664708968001668360567122632849970664855142836200075645310186372912956543425275015707845732920949336216465438871272431292814265223875349669389515645805559356407508759046403100776044637155288983755754855377583459569915614766169281487910440083579972093768959550254004456259427524809485304310501947269721835342841243192688488609219793750142613543997384133992436932296742572994164391313473573294544858316806480808413364216969501387724159616740922414227883136630640615267738273579797331478730216795507607764109973265174913923467970869087697849387691341258201412814092241965323429068823109801900252840082010381300496954115666077057539942315826278327287727584207826443095872869246632933428487072914173734542091165174544844975835003502540960428424732412999557611112511211109691898873797847418492745917304271023985204487638432393574424482115725981523408543148295750725708792054920331625451651875805199137966642922883131151570834974545549264475285745626664148727552192961157350536795096517890206835168877304417090794272047770428785314067592951141067757959698590540809486902819083079918838994555260070252547000786379676067705914315490728823127001070960534056219610941024383441462191032023500958550639998442261165545300884472301718278712537774800553300332471619325349613452343919200172934754516902055829049344975870646515967407146374364281672225112305595561167486074819791708216335684113486591063332826992821298375217656250419884698839833305686730190472548691020585565127532339513361517590781904550694676673022575922417740013466179814087033126960499380125995558948015284427050365155652830879809379854074140383133953622236154821142213874586313630468847691226371103023453972702894704334624186185420480415313906690182838166821168701809974927802307693132906198933257731190308537361951184655385539767385464274541124628977868325049634920048873055752407315521436586703020529123742023723952778932293482968017397756904724868506679504587161785453788646651261569585472505342703176455386623665505892715553949760186314682806384587211051729436342895425073801893995993047481029487690118273247924686636242671972912117761432557143468797414820816069618826036002176221133295110242309588805027718014173298322134527026904930507809968571842675739701428194164769499875085691331529101873336705978582433915857587238459570656473447440700615761536754902639625642273393386682247547804906859130740621991238958592285875809641099308502045197514384289950334310718623527151400735052907512247693493074407481385279493686878113494704936118408644647492046774925741763395596249375547275366027593069875788505084261571132790460407069677153409080891967580320466970876984472873134337186275337427258760107662754673920602475552784218062615540092437695959383369181020266793804106822577602063276721631381774583622298352373617146607716647652143912515448407011958755821951622716144579127671831774564125782118127356112146855089540171204172427410817372926424171693743911243370840830189153909502300353835827450288849495685760247510926938727630134706821990993755940343552738614084840380572344630956274178742816808255091835145079161870026090201330857359794160117730833740059312304880529585734257206982253080541360096029461126475318503405452426837063043847916165192971524868074925965560751256455957587620618092429659097665578533879147005186923522881510034729656032707313192306392522616290949761929030254729809833559402000164086175589116596692027039313492314936372160012464903345067111563793477197392440145981689807737915940416538681997881718843877395868782062093476081717424994367115754521111789007879375893986553803285923612074608521678420227818886570320147773347759996396965344594266767257175329640927232125916679933360994774173085966725646708482592070944418164374836663827863202975178839876673090894480755770995073691607566853332523344319359218483533684243649054610398336777760023806019877309827798402185439224797533142048734635253003037562846756856441316938212060902942255419108047355079176356011458002860447467767372678977637997572808853377111893309221888836903202823419250179008903318970170542769312428398984374896032370441881426620774077994556900354424058414943150586106849230502991817173601141976409878187285356107415914791097327872289543738238270009703588626502504568224314294939944700106886597696941252487694226230465885148706026547904841590356544811315656587897613832413700832310979982541870911150317623545371817434911147830754585473758771831104480851434947296588404941057492454789670322735296908777173290510393995545251426232849597143983984948068491453805017663539795459403888177266917918931970711056670371347119170007680735607946746860006041379348835608682281147488706526259031220565278767846607187739000508074370639654875288156490573643174480751816878820824799053729432339915439425796870125930060547460634912169246345780088422316193501515021518453504944080008115822720500378850997914764701341556591416688742659699325324246510796243042618417241296994656950992284810557897673479882307355172545502336105037669287729979317667698165043847174982827215734300909934268321654772739198168295836541346425426934204888940774502038479594388962385598408837343167654146858549040135323798369250118411574816570511910755878535097172150256048303337162431194693589994149926685391625749853664667012116253047691302261138481509699171206593554673528737518373780147610348031507325309107510639982674345019402836631204517475846671650083654070177228980818018683274443323956946046967921010382896567069590866427102631715092331340903793253694016225542375497906120825526676169352297660282347851962483073346714797428065965392374238727888043516334716566209132540808853034505865445773408235263642936380225395228880738514969895544890454332526787824578134221237896011967668768367824917406893640421910956742808493372972475854223655741825144260518779738728486687387706085608482679202948097365607214202533379913451590909954245660431327023911180051736261841045936164251052274108000547737526899144728132174677830070901859165209706450384227494822780102625235445833608441384223293830407991992709171681580830113916444199326271154825883752536053876498595189672838593124555304531110983004465835164809800633740619900943692558085737254472371610089331209226408092303825632927308283601438522714570447007060277033726956757848214093702507561659413911446832895031408556116277823940724278311724931971915901426247015435516255652609226431154193098978528163839549616429123743676495903707948093927882115793004728601640711051289470141059379578406700577606632015225030111859350697573155469303293724371462679983756974783093215627341681994329029910639607216729545497908556333497750137005972790902690479656911019123357505475363522213050199847248458035736164920307506189926459302951831003585021370644295383470115277677005648732783374883517406558161686826502335479505549010288071685895800543103173578789162071938144208626566197063768338120581066325372755328363806288820708638913091081238601786628940579414338657162719362640026476801718601980273430348297504976458058939578042467983137053182460148273136641889001696945394714704319653192338574634583291398656171683195135367982579626987680484450482061713633900900136387916775685056197119253156622722216569118982033617427651135923563427528225688423439142633030397656272795336181652737367741306718172602062556920891694279379653691970245879730307474454165058849449278239976333815816804185437755930452671832040877073826621800184267507325025207279932681872383503964250381366106224695854663747122597221469958375520545830298443736400812565874842545409194526230774935595945847219683506825689506105345849584642488918357593994740103746061569057909170916673444119887193893384518427639604761221769622720747546611857710932421943522230026374068007188021142254790341317518425042718335597686438815460646503725828538582782370308398619989900755694533064461877187194642238820086472239498276659231183183790318667207569748416181531576109381499406671318999675421785625341954159774052338342121590626349173786318270170809346999485860184325663418002961311069597652917096650866802770011524843415218423638196091438534869510484013596197578241354754569106507927035518225335623022218019941496056315529761949920269286872734603058486146295751712302279990109469169802237703872107229918784538590103202291379929053755793421137962827403082995809502497605282770179897123147327966953291818749012845369608754647805191061756992443824195325284731888749766577306186909083303831885929917476271702878464278157122410283038980153138298027646960111672579393972625008536961415848167270256638435510626405121014082867010830907277189583459447958637516565187301258097065284665130068580406820692661918197548701893772119339076930534161274111949142279359257231552644263618321887413583625984657806376685870128736834504612087709825222180134372567338099275005040762779576404210618004719126413584265857219784155552411746046121759644172650645518008006548077976823672284463383823146600685051589802602113315530910685257137016471980015431489895108860291004502387256633276576012096770239269797805338744526797007223701824363824178565333916199265269528575633117415912416215042758995050180901171634333793898465922572091217148334107813768763308574429743151713364227729564607324616632417087651847837527746553973022009354489065601843123937445310152633472623800879006283602489667860517576556691453713667565038042539308147857285867500435392810924544765882970593933127683453040272570991239363601004757850557942194290323676102002793944124007057075153819058953400260009338201838611132349777734275164689146901412931613283968577441598740200836488421538564299720812230370062059226267564746145375706737639640128402020338953589157225443411032927490438286238973011150050811352728319296537292373053760647550345331352493625796850331400244873354697990365474995417049999036282485428829524198996614544005959644049010252918956539889079578322689116700705015664925315976161713848718496003360003961288139918454060193795344597992459343261062414010531982604788439863333749336399927668687028026339927325783569032575346923008319566395668896211604291363947810637701577201249665604170648787376971142024428269452965665867244185896312058322733655304408610111434054424372677403573983620668813120710745181687948421079032564580211816127846821707485645547378591991726641342508500249883666674246280742261629771772340365047020414816133292402606717574786247930556812108728349004066964192000479809024549024791286033867864885816620994726722267766894924088951126902274557020218381239494270049864515916577649791798803933010190318455907124747402223080936339648540419482567939786756913085314919758487104906742376393471118566682894245302303191290529202126146048353135652946961175583535199789840362404003821737588914927788680338366144033734175235814538604512938604743157453109791291366405951347187293904264652792231843956327554989752073652156073556742051957194714812182185946843782052508384774980876126685938085308995770450546884806505187462849659092386834949442827468473177255302593435382545207660457104771794337517752312073491601350953266939898866596241618347013305152746983405200983179084689645017162142728029972624865412913755452502090146489538497760745420235011180837257912150362885198388739436077451199216759679828493463178161321254139663680259627120183764416629524831715911649651158311661714533738096835732297657453181420258758921682782667858576770137049072125445684198042084758421577998081493299305042067957764148018546183680864387564407557297156528204911937615823733660329796165649147479018720192691993828011534437172608222565107532451779841657623936424776525268470525091352653585547077296789252934887121611821322186409396613122588509776405282427710095936983593208532267410135026047146226600076918354716080244143169078805044372693105658868566112164961448193814185477989086318131669267125958417532020067599217955690468029459937888933074502063595526864832773891458141451571440992409475569130681608418581903626702395484186650344275934249207756192740596015768836439266101747193614416381091723427035072696175867588590764082682223116712710314820213477016794195735985974141223226414208130199209550046342514505426511776465701136669794658444689418631060234519728776703433895066100056973357109176655524377051333440097529838918889928880927156687055650396980243338537708529319203569922841556682422310070252004127815182939874900899929760316240458969822831340909462669211427279772301021044068858170289267231656186406093632294799308074006041391602950752508363508640408643186913241826451784917505863649032900525367671454844749841755870129677998177537396954221265152272387138810179219397327918444760770289787765114053735182934528726252252250638350363848706654147299329923131585195813949889598541619395354032945685418818008426389849113446464401019027388196921492507701978047484995165741115867317780429443953839857958630637986301144070770363512791980028917466755166372686296954138530194358616247541656900572544006518570623895424183190433830149661881592137971808860289056329752029894147901689552154212426837279029188468986104810933807697010553690417497061408698645100195714189392649139341885235537656045682828454196880220946990826578287018899140770766711272486738283472336415533482665677669322697146515779772635186737538492652035516636322785275501379746948435424698823827647275631708699139563468142546565150046262752414895100692871472891607875201636096814044655035475609901239660403868898097694835361930668588496933759893462290713276133102991975599779348865483752529980186746583955630610514991821318386539436812640875450916216090565909293419190200934055835746458505041641121366365610962908628876219228587485859602992077784849368033059834760611646471461230374808832762783677011066197618146078350791614243599060521958056134248314762022960169710364605548329168882624700759804421991255246337457236834085807510712278059944570602950652038811821132746394884002567426973758854741083449502832854636460127578574458900708596761902714625163174002520917506642530318927042935442524733182593032729271991407255082665289514770866659633810916593770030889235498578790483748323722299539485151996088812296753654437288094344630471420826164167180345418936104843051332591744957514590787714060587603899406871355660869728513675280051700726366295494594804168812924413898965869525803533982348450268064498735799321169372351868826434328973170243299851462943551591750080192070284799719323127429523837569163103068631879527840814045228348245901678273283506611503323942789387959200199027755703651919725290939231658240172836133087518227507304668580534666444773250057731938066102859542731022313842556948035096943217980680695738249469827330717278900503518549601397345858537318997403861993358029922309582594949247702678045636615954100866261637070876900220416116351541207944525921952386306597944378052131127014698784810326548826012644288200091934057607990360785853619485737461323622130544102368140568821630830346379430627504283770114757065411210403919546883851356715221991518998083548619800418414251366994225794683651160576006263016547287407135254796106996556453954793036406355668698228433884521682573165068999127984643510584280040137617717975884580748190809263389628932509719415709313909366634954816531646271363779856780120588957115738807789242035794861336902232945303662701996069698019208909487633984556127259937319043390419849549485705515956413104033285958645823982611233654839064206437244014089897844751854692304234480198047683632418274160547486926085551080981455084295239401372468553121367207691684213156563210526913041555967665397321050826619398829024137565687047667477918382837011946652234807619636173552635877041524587365442219137915141154979242160862319709837334373967899308901512073276852605093038234303667916489156795670600661650533720849815757931409481660816123276079458841830202867671879065889803632950643984728278456562787661120883074790401762666011623039045341386532499583347565059819662076899083194973581191768825109233551309633712188093132985188014275832611326476512728867901223776679562169234085402990145570856528177105352090371910172041830367564490803734059941658663716139542653214564527431979492631451564991528503962765947151201806006958078841688949446365191031907022155854579071783785569576898669121481632092483320258918985070871097381632355544856656893219156277456340003721510675317654400733722027740203976796066485188821787848220864800125286989904692131650164246568259005060004005094107952393606804959004331684174288599929646447589438972744960888927020655678312889393121900328478379408287559101928597574940534119016966453046615978649188972543481505603599258792356302836654674087994249821207029020530761253609682996371064605013397993348364133113182015953693164118949531550069123711772324317502621905379082192614565604893527672400374294003899583342037936537362335885505588963014663130626810648326459396876276949861534223377233243071765895040536580765919428466917418596513096320667956624751955083938378809278208897399405314448495265472121678172203156988591975303601954232810813778150684660402350090640998397990852501702630311175189403336703194766992795547660570609927222559252498845088470972116885551918241723413040388183096645783954405271914007282194574718427590500788514176128303786033659352219547790700838897904663462740804376384890781366769378909740884470643963228570505833111742315782078540620957205013453775483578922535283966994064147995000483290625776140771776966270241399594131530851383386294477298744482689105131307703850056853126998056659137755605785245700766837372259661594789782176496774446332759365199902908544530205578956380647225162908289706875718160649436678118203177544472583697457392652003521735823577938110342940147120221223612778159123911338829459953619948962350664292778565942426604370830582369304563173548769237364183216718644620884209384313431701303419840280558785149762886156146899800271255621285269159971935067717973541795894223878789923939287556769797117538351071910021363067820826407167856075440964387685629348127431716402874349940234773147765570181047885115988131214833174573723485587791947799335564444341024304713611422933607638057523014798569618920007213199038000099398866113160185621651530599988608893584787920187103240402640952832720730541896087601274856338052258230449113196510926079321257979637344101634111582382427052822155563319680543673739380262392410147017813293906641986073446633472377701745072160532566644125571363810191893118021723001439147930158518262010799884675140130078055945045907674784297332225029620463886392958742295238391196222042529838531654624836589542498768307480471534480844104612588841338821590287249011746506733072087759259638205069044739540452860572032836251370043732667928362047789779710132761206011115378620254741076307437007085356360099685576057750767488772281335129859210074581897580348054313319804663045496610995792116147524436521183341014643056364977686839555839859556808824783574608690898331141772401399810310781953399088521265172751203312750220633319691899737261938502732769431693009175827605612094865687127204529377826978177477295878425277153202151870886303250770203461957711026431327199541984450456076532027889056119207324916591749898885909621856044914118325216762628835547409529809249912481518326103291596101960942350151498859581344640320000862544184580852830000190315979000995176694568455868356478838035238195630706690313918964665304740964867846675838968752151966021892471337571871890770081379452114298801853854921256138433263036225554439949657629296446313110338570310981114405757105295003440959249378765271297277302040714801269323298354888721465540380450923856358670303342547529653222770919356713706040699324982018324656564178596888751770199124244211363545705363308510694105475249530576897782893377977452437749069459838412227670394049023786731919426055257448501476457554449205307560218326978192304109096204080214854942943769961907528810006966917489024635169361518047465009660689453411028763144876478376719812936695838706232405118158714655081225572039460156996510749114175137904647319621295466885773983307836265922495697848317204132470452778728884133321244041356046283397416525170111438293093060406130962567464211578101772309247477567841757170867566275460493674975346127325780701626278536950357435532726813870297106890054929741330704751291130158734088935554550365073688629804882366457265530544399630588726208341323004258837378676035716184437587894439545082147399987638592357723378154692684547174203932951668104651181458668194061228304132879683900741549417613243266183170532074761608289631571995846451717370465185879408506128557693446361646777501829814531770992341929256643064730046266654727338053508423047851548519464767004337121952261662893478070139960719116551720112363626089193849062793316348800749523616749501870009001988374075629197076461793850663887432367492168713458107117312068102235036228143322811582026298236030492254995370555979329740142987837863267344257747563100387324523902461207653972868132168305381753761432917251571619362711484975182854467562089640418286593287805235438087942360504271726704933469793460471829956085227084176010372273883000768190723151273138201151309035623045084284933857908429772471542753413394513019230872491748798546150516522848816144463556271539811219419330777599224972814243427495780149146253816968855462358917118209682483494045055968661311945403198674467218429370555806193758044026411446760066205687313885867945957366388300057457559949008023178664499217780291431804392451907288175591234994160460982070540755432717219731496069914515179717013232199986988559259491698739363418674144861386575582820518084691585005392283021832087408016711024683164029631801237820458817932676874287628870686076008269353549915505185610887467025857774494562592211701373157481366324432229646874417329675754197493034823169403194900593341998883542767405495383958977110088358108613543694288471223715581739580616832749868819772467317844563403483861701769666302943821288330159740057476548224311327559279614775604665660310683708311390729128526749921234692502711212524479287683430436801811550949498216525163351235548385409929389998763225574358013315843558111163713572244041707687625416638827487371790681494871338237799638104689971739514963291574383280953525657400095842282643813830195770095570622970419599105903121488033719821801224932271288647293579117815061137609479366015159976323477724255024482350126953038920316345637956150716845571441936994565870584692241530106254000144804143782377679994298500518471172146074047614710644271211072392970177964025550292210981489101396111628856654583886686131809236989775914895809653230939257426203943651735062088517097635771304977459751120023616318744565334265329846511402812224249099134967690668293408442676584500959437238779210375926082693960012121074993569395824534487605378760540887309618776326229429126465291766183817749208952583707758961346300901819595673646619342641120055710969574363539557416975950654089480259865682264040187697157424361958623596980454105262990172098059730984141167953549540159272200599136147242320692280854445318809657055977840060210707160167802143598781191478603551751353834426787670884755882923225532374046370464691563321863951357192776196188683658518532951946774372933220603395627172801190219140435711961397935462903468960602487978131983123404939650993463760524725199101612225824511623671509008787780838066286007039360907774572039217220973722804468573582980461057499029162009984440020401199616240185947697083327449065624559786983438922368530135084846787530490633665753143909423805094659753019183298481207476178401374665285910636706527130767678036664581318597640054629582077979331902631125618091964208151798725635456409173566144486579815446482481520403446189823565765941345461815107371074555960407323922317426145858029566830710891173893083160063228587299776325719929638020019651956510435477200422510505089990465193982263437557180863916600787050230457376316199707675649629973230174383217199092546920042755555382248921589018844144786019953092336187808807225434255760258071424071189998443073726929306766910469249457929290159601256931723349585597795298147470285120013712614065088086575807849393643885638881684291344551814095263836918640232181969185103191291773727182372167886100801521746018998260129780725262876148937536935079094761601817638823285016749767343193191241142181345792176703711515683026168169388002794191418112764109026550166625802177724690071572464145270715451379223256074940023246316560859012202922170144941949535402704008049660797280992947276187610321788819512793717135360854083568901667315045023629254337944778197503873233356656193449140360336106553398883053023939466219377435801842236998401806740735672194455288074698862312061958732633019795230616896647609277559401267986207059993152017387850906716925124522795111943076714406853822914281371173157188084816494249473083614202945260185510695356149524564923609998911290265779376869170048222135082144017660974441654692206406243675684787194485479280321949395709229269628883845432113373708212038466773338224102454319080383343418554724213738835173197561217806878893203195467073985637536110029538818420265971142884081927397346515464542729586172941733622744397197905354876356971817674761608996592027837008430049371853033029221153563489457893875306917745819639853371150473965395516852134846841063010587007906056508212057372084566548741988204138099411803182999877914299259117264287329886259729957212685653176208228748530508432544231776461097425262487430724865782383033114352907774035503703780870969098573818342833786482931915393414681549728113627586483659929223716875818146499754435563430323518474492638599442702375550723011476557825743649251310059127525863351089823144384933773777646276600505279896150623961910426555023269942707518383461876261881157048179326596547438465581454374251770980113662910604587140089931732969392982022819733150630185369450598486996642935226692477753178106687701339799850359308908578348820807151168081381881686354915009738393794966408804272488200989997087080925679806149282381504609024131116663961019275772143108231306174683690629562904078879850732551818955352856320981686765609239274872569899560826314533450335794110188628017482486583110534104172485049563221911627595288411398074133824469172481579175887079398809308800334770497973196164101141679645794112613448009280408500650265195356667365882355968329579605179972164736884027914417659337105328453964522620980704515652762060836008557365456362112331329439178456707645596480160888873828012332609892338300230775165381998273871780513128683965203490116069187776257458425148025735719186679345179907354661668863349032982237250542249167896932108887496400424533544289300267804567266945391769202867427194040111542289134910408382287898833682871379518449414932610658183839566893671573801031411164863187927520010450751856666127255193738460883217210637025078985205249686807194170335489101703408239131267558072876048532879690439714082104560457923327851700398060533473436320663623767030183339602224248776523981788095521574621266617054281731535280780057416853201372079699172700222706146331839766018013711935266651825504899571334836465812796094496191356444813192045329007799900989216069562584321528064353499720915842733275767457141608341852535491586164128015833182865363417065308801952289243127454077894110026532879204321701420072777495050103874898502447719232606326607805322586311989166254420461308566531100388335310324322999464337806305930971250673191225356163098974648578627056901569116936210977180725676450323090028656442887455488752179872375785642232101872832381395827374613999274201267516833008686805257785686644970256201272104590571191565983665923073207322171039241585231739670081608476730545522856910604098889737270193903283937035950738648097996801487183520330747265777913611809375956645867800452658324826351202474432154863780263963726939930144433333386430499235118704131681335806133034745996293890818634466477214507364091556018530694245186773689645298948050956958440635597715812804406141655888023537691843369722739616952806388352518090468663476530081035040835109735278568661926729110238428072712450877989565534177168212218886181018149415024713940635849845380411066836373455989679749423947273467350018744054907526636664043940030784177344814013171430340821190204913732949245721529015307951856235077222324373449758121054410956103314321515313320836493935898196858612311119493215057826499387379237306980992241406789482663242021849859647526515386816425236463351126354822041095872511973834583607265450065385547984856943336330796781282918269508756669988214257221885811451004091668479574538902754762278827068307696634150586062545379049184592683004589756842203079550331964540200820340574967801136241607433914373530521546886117444687721535067061019822774995789542091279106768587086706895265807329578737585839841552063934598829967098273460235744483556244197598210241395498087596722242947641699802496718173500451574102641833770799079918372719417264871654149624492873380115528137601227350381079662238780986803829051592264973200954463530502224784766437391693909462777205800815845635311966895156821972722955605679077674570469715849346559978428573319793093827253676437398759459714616204209070715245647630181787814150095666952844774274554644265614731642994011439798795293373846442680763867569035630485569631742038588045487465569228415691660368434090092017821335833103308103849264297261147760364728219745893759267524170766923638535860400598429028289389018513839615662028868536000695816008310812936527258422017221454532283102922304721936511589323319658554086430022423476845806350754278570968593530186126733880980204954177618923247783519186045920318891160343041709321101724698103171712659588993502139264931993319382699588107175923556619474133391126519188457791825297421991481601375162956788535736328898727775298985814457262758284295721585289349784771111744997353464665323282824464401407875171246541170917483173604940863574017183296925367272914055061790499517821001496699355161456853296455607739216307382810400992365222183962357295207081112483556939204083946986624513654259444073998549400011702714837117444568123730763293293095461261507703780055873376597192063401002809164251747935355442423793285903150224849572688982870895685323153584721365048995348290957091762528295188579973006516017932810980955205559256712603932747309862956003559305241015953991700545376515469188843888458561823138281094945699996650951305124271499061440243424968923538259424767218156708459852474844542984669392620472700804657003796446390422637426950960590770666999762838131612040438460542264274194202276751410166060554948791508753086207144094414519973220358544923314696450174466660746847849495927490722855626784787942324891007781465189398336594968270722243668418633633830600566919015159079171979267677549124950579612332830772660175912953865582996316366639863704328231332884405547497491625716821646666294204173295041035195576036232671372060134169530687085963268361533704619209746183231568235742782576504961159813626340827244620334999085116863512001650967398787807816074924179480268953787335445863071691610712115919004263134345827010851386587416616115826358358086439022627119751398980005531365170104126813529544847511092075759387035068801658843427272200774944306542563670215080533448320813056504542824965238230152551020087333301279378774967389104632411482698002429129548586547438626282011379580551153357050247462630961773845312388201454345376739123232188923492291173069125532950672866472777908543937325716802140452445306717961127040580478505380578370625420691793255931043461816117995698646614957874448264408619357004221710323461663684994784106640225597419492335985225236114193169104728370771646285332204442547409874038940449241265527891642066240525979063645466577234242479837979369116290953029849884304842409431361606901896715551157781800764982861151350433215438243094322965977424137792665734979301751804829802179102926876878291874181344025843611373004127435580107061016359295920280748799634090599715015705032465273159778154685297061718862338512594050353018769664166604077239050411720968588862557499704569099391938449670076607739441589877664181303730974919827736785966896131945140441131743664486164527817187933801425191998739786640241173116188537019264144326384222528586669992085041241878084824173587520338481425420047147297406136918692845377088435193462615997915081040309585371217057962233397513310576816039300207815184060789653749587226020362107340857943448280443685884970162828247806123015018251054275876740406208911455374998296155788631081629081539977608286710883168560647648401308659194721070563914324456887372331886294059176938534586158772632023203275787536396608613027420897959383402257841772852075541001477790407827540454276628074860051282087360842164445654682772716380860948733383019112783332363397337350317557651929439003826058578859700870287362240651303444121330679945561236747541502326542235090761952786591761836069548918972598632652479675943004907066027541315835362361425739784043983457010658197562786190789764571094952938352986172180264036257046691010895507622190130831118547534504880949322790524188114528631259577328678561585165505650875917941686892976731532389579712350022682140582001168271885468903150596533338502915172241816821103953024702740076521992852088028114350460424650942288955891020362707174617042915753389742426722680926984041773016998252751624059717269180734823020405261835241488178557363780186412020472718209779942486764845902234484234459882977766922670648245243305035471862265585053437970251443165783596895904209903927891855875945610784734913772787441919359450295371147676460310060154096468853871734020444919346399945563534631166126934824003222846035742253790098219562178392507000066381107582090546343106607302167252533178489831451199702057560252581154299869493465760815629486077450787722329912855015025911972315537031534319903570526260514156020541279572416046490194064110927363262545874191902105042171693033061687050019709297868386100710106388645702921503993990677344646561545956658417497938544132208013942576947603709361164036438866731758064713123253437493625029034464581127403627170598811687214908093529691241916300908899254100051220528735278782746411249123057497529692500157676226297813990789121949789467624558508480011196699615143345426257427163215463852217502195224403781514972117749758472011412308499107918480401117251248067466072143024481598015399249464352751201502755077556150349294427996971592970907699814672868294992139054604807272661397471251612971506122046357967708417517563140801099711384832197381177096267614256964324915143440813741670375066042377057089947015631444245847521670861157864943147037603546155023373922400448546879167638270298215188501261467299237425587941668800287111874868578273146186148441573459707556664461341643082820078312960767297767571407493833488681789554703235480553088430196776528375979514874361923037474765162761123861711908159304692448171124951329354820455251509338862776564396603312742460213864959603859623425982998394662063322059259475274231626528103749085689531146617063097055552998256920429003826001298714107052154311435351205189712412993808379404525319216190653809124167407601207834748370389958412270409987956598013763136328737600854904986355245804759271924339996180285693474416077621810125824590506451393644051279582770442291712182885176229355122579500939845117150003592978142832924526987526764365483855874342339350454227482556581673643466476845015476722720438289384007607503145368537068384892492563864208783574286426117742361815613040461865619987465910469431556401785741971888642317870487360260572992781398464635834207572336531907008759352038599916046069796932359089670963638024391676805104926752789331502223829345345996568465553756022370593285844583773484274797068393947343682597511254826988459625718011618303906779822253361487283025798651186174134918048546162939825740047661644848381853724870951122837481104021180364912269969476922843898632281452898471101264938232761174733385288447515870597797445842119385136677195600004445149313474487169127135733127769216733252219716756615945600942862824076938543201562750147809690385715194256203699811275786641676910810346688057929959533428689831900617228846478777622777042889601588200796648070003085917379182585281103467045808147681420979045120843862974645856902147108365873650061757091628985255715154210428465779788738928056748141672436192622719500800565269120389499885632270582385460612725077291835968391741330563826284032369778359071392257513626331442899747213217718637042607848739768976103139314899141403227897632423068666685509584533265770548660107496594647024264125738122625609663862291823478342721969672532056824637641364697309014112380021101716444889688989626428145147332141395351285932009715789737029018009328270570078424201250818585087948681382687505058590233773048228856930625781413908911871316135926149889080227773738047787991652906054680465702959235470235479503158302634074606432692599238659902330862496126846371119536890998188143529856809980552670636559484562521369475756873050286728892942111036511147367747887527041777091867506425305195509644623500237383731518298718219213702502117511758754787659666050781516891440751718470179507167794409172071921871279112237918991402178612368822014042769279854290288503988076407364255667910446111967808135948548004238741541904142106582260948348438114762214902490007736989852545786181957026888414123873305948258478200146030119962424148696917158375523393001329199622395739157301246376924851594239717535881848052217274696581929357812087072215418036867658021775942144817839807739192865335243862209011813037426332796007080003557488918706782928537222861421002585411753847753640398795660101516423555431542404075009861773888569233768823340046796337781980709341640948877711772033955292812928251354154919195385877273928461866922080118587149026472481868249942579150464708182908587172080988738125243516403799891853600468014882126585466000726489367575620819533799346888438536951487270927692160501552944913407460790325278671804329194058536447151807554376631654025650138114734727412361498435608516951941768691127481597565608142660985348041637707478161754548199184677287778450667756604193224821015964511158449519196432670946927689832591354145667411247537429089711133225806339979670404530560055220170370546434456007651974593825710023095448976215923445253584592898835938009205099868289559507275156516409098033432747083342981487656129490974325111412847097272040399602657783546340093841073101990004525436945586805451035768919384032039744544145958154739898920780595408787713790589887803804898769891627507029760937812663207073997589299981881174664006283178745864837481546454488302428092208945023413847834799930642500885717524233049507596364708691966739742948246731473344806698462124109552868605491733126182129360141685268608155082324008240887502269487299936923347366882666098240970180645573984580536134173652095241921071859036367339987292986074927141821663088152994963914855261495161185019191593594585052767640062493507553235600362301550204858085477999493513764295446135436108179641395685296736273833779205681090486759430032997122659879534897660179281536828073671870877587382310243770832718855673835823385178223188190073633447759636089012058984713884913831112460542005926261387740744819682419006970872803349200100346945779099945810784651806975415617255690350031230711052915901963535005808016843761806444730603958084217046413358435190750719088407211583710846256670432908789065828915430440133798698121864793458471010225281684338609245443439738829270816053100484648028992395607703394639332450068888782786092813078212204869265319331391581309933985367091799070339564310936798095891307867044232484037462778883746382293955763857873152777400149737871276436664667945695539429489909960597598951432008079690427366075276499112428408984466075786349020674583058488971719530880430483998236708368768164909682357521171946702431326578516526766435392726980739810277714940156077818361371171645934944927707766461492537642235565678248248527591603297860335918146616402409158984912542339949511669111912030255262966907242224381114367022888722032880181949257868322121689225401302366358141385665633261788833135396861295142629871770404476068634452625465871855220262333588339790623943246423625857716322627310381688442216825896860853605307021336403568087637956517285003513552322660090934457143118325364643148447444544441729760742444362098139739431450477278939101514049088981371360823354568456262136997267022129676471924878694379497415767972252250630063973672760428448873129650988883346768404415150179280386852912183560291992885659510448286739362893717095003292295093538699171452657212564336775069499908508845836345031443394117839482618412725948765613251344784948371230265135096073116275195580644892013070459801706081723449059914326437479702633892014832420605811004283477993116222731098975011595755817485011826615239386057953863409475178550441725000192577005636272242363389650868628597644059193779282087362374826120705769572867893793838286771285161850842271893100701438300808402818543575647069187227202699719710990367845689098855169171515653917417558292066677634794954084438373581033000658964756860641175185153646372708775760355801126398804534595913013663654346388679605600050331661550529473331183122106261518614078644945939270544391450155846749838896900049377508017156620155240140671762027835509096280966262308095782027451489889939022296250160274951322236926633454322178228757442438535273878757489547862318319736024755347499651820901143982151441272410484614804408457573388160493901461056029119211137159004317510066341627977599336822796940994769315656788445173063759585352912535659794907773650911043836299939479962321472083551243340797956430764932847087582410774053998433305471332904917250292476145039861805391853204415189575435335824085192202588067586945910845435492759762978798780319379204306668799805754599988633256216647505243255163512243475674462945880674156709399143980788889064489690831915983874805706034642136199125463869350759145528708651565072404294567418784289282116556627336180645741794226096645046370115068008220135966189500323605881354928110405461897610711112348903381464412139059761940056938503509260793607212842548395004814726775123322811261134976451909777937645700085840571823846602601290687087706949531679830951334012299233159248940302986562385085854660128077409599461507943040559897175952119629675197848760854535254522882854414068656032241396473481929394278901444296866873479545755131523560667603513613747946760527223735813304276482615509680319161231746653829983668987044313749302732899705564556280775944739384561258584391342264799433158850277103823343710293468554511851597272797314385116573665291900442458621311708007363214552318476791480134615978660046684930947587053290624627010568372537356677490227494950946292417236138084504931032850223095286141440600341392302206873100787349309847981017729074309656679323466206403441500889883561020782383053678925725824336528112791753847756683618111538434136930278614325423077167013005407015470579268444154196410573710557958843644888891452869614594488162062457195522067557077773802665060227865456600230198414349980820850474899840155648830239285704853785868117690142810061049445548372424755583648702712208851182599523026847676056113743306608558223797235442590720161916334321533404136225243176838681352033110768344580158876433571346082344520091229891826984047784296972559835294951991477311202715940178959709059065922895898115007006107042779961164983532182392041562902347657992524874120169473613560515266894572681817234423790312059848059934988966796845280596373605539104675137883341419572195788947885396632016150641732666606269985428208425487400687187315541760546057661833483990675382805458012536328278253988523002705059189548941927548030302467099001847468867894318802689520990368919992963908709801016382202425633627686729337122068866632284980593606416040909495820526649797416776555335161395324853924149738536189633148446987668248042841149072862807482114771536534797351225954946075919810600509571969478356741734123125905685854208916363440221848469347956171047148449873141829122215293175865465896284285840582956427174662203399690821547605773480329286562901434712254590252494888370240353504452509046837509367267702466824283873124759957316308367625741642692307985456759011092553663194464420247648393307792272012275340032530932850298679644919700325278634551998662256358518407737026178569920273048644391542280814788250931918849933094950487154903393740967472275456316640414583906567336372548346772377115621336073647725305911718958374221204243429552294208465306931396322361325894135543432943821034426152266424475196153271962826653835867011522319754550713762228092725974594784136627980649450129193346290129518165051730463489648631482716582484749302074004179901923340523389999670673599629485864625078886289434882401280456075708137024944486664079233344054460880582553518766706746562819292047374158010957157982558051728906533421440677467701692416791175126820049052417273543118771682100674040435136833653358477733366269303971456584172636729261134205439384949775956380274067389971300872594454578924508214407863005091509546820193193877555409843380090733523280266923071154590066612757065756845896121873822216058272810123514342913596465670611507638462989436477638319844621437304434651697482147031277344238355555419150543973791341734630423994380093254946434209396168181684182608338107031817131528073599836541770043170252814144707990814795561709702489713584675052723435028915157715942585834494561472646845693099698921486901599572352696416667571459510177727675971797343597210261371582528732674201673331809140336947997863847005488402300016487865113345318571701602244023402974340732021014647972413210771951042921727215191197064054808627797335584886107637574811776414172524778461544644368249641486504186410319025632957947258691590365887312199169659880358138219892997717383408505834490878765096332137669010134660401991277687792586845472007400920409368538925162616587088293521829059596716622051330915609425529847628973961209391867902836121451683343611009751396693584337600527286950043123774675183012399073199992014997388383471288608044288169855671040772120122755745234103910927089802244156753290193835076897475982698134407024228486877496093655663386180221327366043411098512215293617247888277944858587368353498438369403238918896361816335910581585691859645414510455422865380826559673283413528179576711334902069532027843630768392628002069095475142281978957342973076571522083605326470001362083957877832734528860640098398252198327102477528024168221322579680985983479003459190010882402698497772512102340549773512916939866106314543566835820724744542670028320759033245060720265819893609865028114972472244739486841232452930337130576697569282414188658763044985921796421948479126420125405063583137882990328406846109852648730049040347015387228087464129394840203534729689039500138505794132560914387092944179159068727401103294805135728686214677423768957401618041544855476556495279131489748743897150414146832375021134258814815258225895200171037977914134026048120775400142954913199093481438121495592599243978076882464188797720612688212116217532315103880026199299243320708747537437476673709522161176427756841460783168982358297991053609707951339220762604087489183764504768458551002097365358147534966777600657533013394828092355141778005286683034673904206217644129174504619588391257353216312988759985288413041910145161454211020513345199349157237286232657870991392464372918195397741442161637859602908078155128325633116674651013327471905456087715088762891367960082422051885425531663711714565100332562313962492583053418996827809352704359872327736872479763583886765739156945147760044843108006492813512252215808481545438202894510545717649837366917483742576090253187932063632186394599898541920779778057006691397802962737039335706350922534081450437023698475058143926445396281515235203763070908876625075804391960773148136658193075467035582748986053194191872613613911266179335177687010532164038198769351641159284214496520581787870672457999846410861843684973706775607716253254602652237064292731277039281841358748029380363273215076304584543659610629422560506631826857757225646153087444297020385249427841640526414308564151582651480126554097849403564167176710324598720996490208307543734739769035435975258715913494125443791999806904250926691779985833347916169292346403776383788960001719590983875226978030957734681264449981947149384972724575798704291378696699356247587216047917415328541473403632411086148923287183415500484586139741246706981984224451574060532227008105508893435923342747630064583995965837625729053817199996426189154957501625878514564372918623201295392781938421998496061328593905546090228506419235342815679763832193866337066418985639960368933591691765945778688865352152016636639294816098142636041519940901982806537756084876497884729461614377339283762064236291965716531154656403877672567776146604855067875124993548692598589557224425394902205026690079380929068155383832010431024259977236091945065755994237120963792671743523736386537194627409435375226272643744961335104032948386691049769195730490256090067941154278105721124822393460871184741551030312194229155102914426340980353339975908562601594516955546521251705449773748910012625741888528308233069731282893595536302807604430217543598186222215840965373420193861832249931881253100912817620544329608529925519257095874990006203727044998773694726578773892923140268295402939043162822603397047084033334470471941649060935765993609800637200019062631429315905254877476910881947354981731587512530595543457324230292417408025094980280348633250358333001034561727131121326464041489362089748629788740862454464512565292169297958724799866149393321235312987814114163952878047956577768566241886860734359218992808650533007897181470846079701463050537156567839474089468988326165038762017248791271918301446824436710999852623686559425502683314123878384812472760094465184849060941307112530128461279589165714414025216033955685638412851163740837753018241597075239437872495106486151062685030945993525072390533049108616492790634122724299224519745825465345737586964605724246831412278360372197938195921913112917391684456698544849344309649276718296618105703666034075423354642107974931342307807515221965942030581587878156005788243841031467315094130852102882343415766922236885428521835936383517535775244143883651784794691800449336498054570702697442634568990421490945893770135420383366980333606338751361307709502381824980822709820073171193186962046301008029872489471280161813256225003063315530376585669202302998091742674192265176068266653679396338690194487651216083756205702242049929530320891047110294618220380365752912940341869673265175492072944252931415367717373934201628207603722304055133352199940553563945156855016135193621085051039324655383061288722402622227086852540228297685060656142040897308922624677782630094250882751204187961188527775198378325502779544566846824088160709873912895058257998815230814589205516238696340700491075742968685831517361735676606818324198093557776163007137847970156012857624083341211902642399587126388261718052194454194648598848916573693688344492153237414775497400436942538174205368358590206754901705276009393666470617649679926495348921353549056815269346668712649114634465669862470006806087836208070183468508697726996759768504195947119029946796730734787482133063766744064100714521228824097215681075564873375494941842985407916397974702363454893617400019298647302481517557442947068149371441929114276672400834789782519361282751470672090521511961072571403244657485185957517182574420027107732259894904826289184485942968353678727079120340110682618506239273988725772862034516107461963146963999045528816383803252257658441359217758150522342714046251160402486302991658985030157399684089716894194649614790898256089031684639772414011924056871537654359317546849521671687100706419137457128237613128021280471608700977234938958465375062059689250212091376933847503641235996689632989291583642692790281591233141972932427700225707036275369579623806499719675724000159988566212712594252806401975145656921088687338916719812784715393444885803250039763450733415992887168815808180207928593012665248277475656247410455850322066144571463683875948772825382486824246016103552459191794083369791856170968083950179417433219135671715612085486599303070077983038287816475763669242059005045892746956244401029485124759237173116977339694417859606766442630444245305000849667506096299826280007995935669269982663296504657463150462963967419912284459180563427859974780947501644923091100744649449093133347393588758909659221162359804052939060889161227156860974795698736410186941849121031505498513741754690575081699331097911038468555758390100022876230138977683489200534478286341415463319801836756662417053205074988004199826283465288128870019006017922594430326197773986450804771770952370759363685532053975329385189325783635069083106829585579738629138638751253727112136735075202043347123588209198497284761218219232805799392990033274356445376419509258570386375852113339094218314865636315673299509150026536803458173415703111132585846948603006748592448930542699246153121184202993018038065997921102835204601824215105445892362897519124364885484678493834148201844784109623847133643627237876738894289703033049689820782965848411496456019700242441517824854059188261729317108649218683524530344968587877405279630642148596885548074061370433727653600993151855770290587932476141766699819884477932354759517118039451855079473118555819754082857327772720595236784178096748388014013344515200042845957447033977306909069702645687260306759662677942962125954259175334812688905261300013355058627350933797155847681610914446153489560922479223067506983941180650815569272076927997162380795401035483977105024778035625300202133551767677647088758977559182498329493416286969046258581198616805410629107744286611108753468296357932846285426917691755462065926615002652445146235058920926546883441748357508395940527843924626052802519673658069753609097994746367885770459283752710619979730580581294815697291342830177071120035209792742821594336797606617166556037334884917499472445468463689152945847938735081594478917826106565915673320476736781661986358742529394941220037803457474358768647025603736199481209563583365570416405634489892982290212818189451878131596662387087772025474583784143310975794144013210716387489181954068195481202726355489371228809660291845830668338680700150121965086498066609607710125182127333979832483520709447687444138877189029966203109080719405498233059372326907648449362443740887712542001894129098819689394340066787860852431684820626664220305115259055120656890832081401563167552538932695572285872908247652049385921204685508703302862890265149452051465168694300088893597899731864463089887611874826050009282694391155365671427191971340775967036134532813286330916346421172453088910017526000031983858964601536961747457932430078635341126609155201335541082400485971773001591840226400670033992477448953593530052560437849662543535567490404475833202878757175478235298994396074828105988823233965477023432054323273028790490334898417104154657696983473455230273189625988480257444364853412335050430332162891370095847831186709577174428582492641440192772285107556346400001040806477408603661215336328248202995687159703681689757076571193680422753909093259387163603456776249452119579333144158800123164585557394135164026381794266427688186753546070913544762344618190143411301272196381151063544415561475172518071850412125434603491012824975221034867978107079239722184418548718271347493814997595619038913831752690406430421994424542904134452647356490560104743564416244868795260200855149002165935742548387688221255023672763332576589990969733218007638376759130619217716574653002415782803258706503437655897918347903864132593680601529764311440478186132572982278118820785070364280684546072540486928347975394138719767038205424777176611626662004857030013742361438377109625942862049637706094244994314556543997821454771731374539552195150010227523274484695827038390073791930141905762038641433191527374225623095457339906795802314995811979862970200887186313942345148656607129866552326509019296007863839670825047782512621287024302422025280295952643870498024000010469186962806253340965796257414419043181636401598854790320489144854673840997182696097708567870918659944884464615112235316830755595864555824106597084482203153017913771202150599693994296900033282336602316891452654534824138977372077825555237748253131565685140745260285944924393946439309922838583017252453244643230016294981701556132475484189554733669038429762319898149820907537817047129694213105114943895477047807634525610382076536839440258201411652630077971331954016524291388648451073107690662661787738160817117453237904577053227644099611925026691802048912585374509523076412003773144815500642963114328596725911745845125826562228306718106030398849480850510761044586550190571610677210269922797677918295409269291158774083883477417098404646560120791631631953641391964904698027198221217773490278206020765329589276422514589505796256721348343605822105697378732831562505942904571545338759551841535374730597269944201296898167540079939346521680598321303366004915209282698101626259840132334429359886689649017105170003288266890961712026126086820193262465622782864405160932151163066857850404721021517680018868907391685816898390252676096328209509626074855119678708805943860489635715441261289897363231040014796771255695964280204089462879269150734228867277838454274532727150097008743265565944631807659876048428496291821287557363160853806273991120347904982496381195790172862107575834552275084466409729528743161372398883862835709670376498172709830651982273144474944702828988679921074205602436888530349634675004478468705772333282409466097734697727828013618410780976699897618249985760924402935263981299304435879670194510795077764585967327917253383835669970159526791358981865125864686606688594863437469216161215243907480943634141423639790474526384078360174853765813612311114295432329257091373544167002699056920798475899282708425680971710073022382010204322211868670153214153504155969271086796511704997637827758090770810231459550373025202008292572573836012659720448188407019443442663491289171237464705608403625078976415619631925872936162081426973040395605432630365830918049505570990908815562149135311249316069640873211212496087567193945550874536649427796662915380167062902041404845112671873847354063170679393171296317027428275414581295121246049724034219453745785213001253898870084921369735993623913051863228273775110322298036386311460215204249886910946179400546992455573417710107252921197541393398079465784105502426511906874639084180248523364713655848337587423568326967160438900037107099255320707073350518423103149636746759579133317065111973759157490255773978962673814236669415287275199628714148465872405456486067993597545355355056868591219613487224136411396091819079141811200619363682957667041871690139601886175541445323263439976583246248082847566045863578255597146601143716192272666541096594505929281307511401389948534296162143267054736123389575584951165511083761776728130178183451487138521615048362630087803985013152664294865119944176167776834160602177039252462898206595575737788040639337563264258721188934891971949579950805306476791786141576588061992427304447472068344828057414039437063197266478361066236690583536610077212349508306630423235314883570955260624681411596946342188578065256301724453274811273044514643480940480761288199668326817567903784221762543689192503901201347395906936118121635221013518655639992229572399667795483198890995536715571677856343894692537819654663377843018906814313567749360836386537825620497259648840947760061277366466398970349958404518928265574009995236375508700173382802141838427003813876436104463750041522676133150014885040817228251999500604252165349863454329686369939660093268487034373269696108952374999465597117034145005278910077741496388908861449891439206651929155435509025189343529149131804854901044167224997778700044811769311264768472249518548723221033262265686359275010053084437524855258803857795821428324809640215245891321958778388084928377080382542582782813498559400925164282866162931174103092254250238949945470379290416854106910105291474134492426327255191591564275038755242855437071876242551053613569621508827613377224425183734114914667468865534136457655125793658883370133310614213097959252862236808128926717441135911687245878269107788044437807454690068066563219328288816949541122700656797849811807665367875916919894794788728338486751097642832203743368630549473731299830299920937291850586164231201845073269313067207329165695479811855440975412117264981495891532924044142970606886740892119624968203699860400644002487124158552824483077947866879141621974143872462145875515718052440869203353187327839207380305346069514229575641893341646673109396011224595806821892302353195791866470921263043957901496122507698186806084689645042159753402322366283124505025174067125318795452198949577118270127571042849420816018110454624762484677464271996429041564860205760252479035008238153253140197592199911984294548826586323405015455719598868011168923816515528085429148796856787294648626131325890656148599841271410844900626731797411762474116511347480782707818488606649071382052733876097635856127787495045566560554693435387972150829469242672920015057449080956674576094373016334248934453450682257037309120420542527267577565365072743958694463454668368953161574896867398074855026696323554159907357500256494300011968655640476376670173307201927693127427802019254676512799979555451820251401152895456060001231714225839568538511082987811579860459158713045719691440215981185340498701879384192140253625470120567874516188001017593582422330852817771432228910907007115018089760819130564761370559496808808141579734305252474995326002296468358462309244198079245619830874614776905107766371605349938835756652874442607183581184907229624843150560431676438337867796774542940592549207796139735854748760105564966577051026692635170020170449641062708723022822499563000162885804825074836613795194274500343780937826099991231440278016537515433763270804269221840853901132579335895444479787949772971531955101592964952309145891707952119669252555895947397687562601302034386467627596622482259439460568894462944586460032327763431889853108626340906898502696485415648987061442621313619332813902931528914214485332882994172428937799999507460466176650294597217979504142213649188699442782313839443509327197415942093896815622852888576140578854696253563744094938481635315498669493152143752328962158031117753080749695756464501504651542717772424252651404239996326901161047014793823717129594172384645945277453693792438839966075086988229944938034128271166159547862956254314296530486888183028922302570098095095643101091846935692280767660508212192201528741637586066892598359134373351032489900063794128346956972182049118767189814879382122379122475824849707531282240171610083203863647443146881539207290907729572893864250244441495944481548577193502547713743268145430452842687676156911872485084619381369435917204016866637665691039193840711799744209904737207235824162727924726052395637427188922431063767446834092873022868394933183161265058967581688814387780611464984619600417174431465791695135190750816695968838881702099461943086476713988192254381969853466055699905013055027045374974563691490618888130986270011900799952321170937859979506943493973551535597773950940423557235847069184119183063621398956694297177161410348504350304665345205345194938400278182894774219644478880098908708222158211567386316066765909607628468916988883088459097445518477596863300449267294356605585794940414332527405171097835749683854251755024760820984517675391076939448890355110391033750194304915274448548789282921127470369993290556321711698268380010146504133880487791450143016453749043166977443088624111199513495002190630988210818401149676805987464687966277713163734591474925185247920934212226670684415161866565517296317860838943704512331434120916736380406706169588693614197663416376969278029652552265780045051666965705174398814065421142282385461334413471248971555930178386419413237820792818405918616151324058117660949689721424107742967671697547054153092691603603471216437255828579153472467922686649613656212805365921944081260668368556187185149706312105351630220669245240613220562217183225965036735425990810517497595998748431304455003101331819894710796263390425988913146943976574567085277021298823944628901072909245383074340817911268756444767067955166574207142606887822544202336012124033803833539095446203805375412847839047278384134775986556659354474943345502547554537214517053936518477704340666117172258926578636833626133549062872024951030965389211684967242286190006326934024015297098325649038734498301843738257427662772781243126343778424256690862385191824223818410917190953996429026823510363550606722943472805447956191294697700109552413606445841479749534882102123267160987483165025840818051696394371544027676776407527037265191094816188131714750388728271319317451056749010840390791974412195660265488582096476760066621447722380403732159541333930297389032558383627608638283786906657568480800727676105476627086112885342532902510941642262007817878497270757387239278218754283878105560500842633363329957630617799556814383521032640521813190883601752617822056654181279476067563408285649488801604733189636033406833891116945752205596822065881544939873981970712300802765949342629093374501833063603237722869293248693172841922839733921426378103271048318149806321460528137500069280884363802668315603792092456407035927004503469184735372369883024601021083157638368549852427105670691539296453606896051442527506764596214068665331648213156549650699227544887400958217648381679077248081344474784287537229418776711981840828344693700889669208722343999432679282600786684182869398933674855765119345995060512868448198213254562046090963566751626186052690422098350973341352816893458535733751806574004402750997690330007115587842481982740421785624064371153238763975666452321980732667956350275491964142235932700946568610960504657594622924507267661241995790611297701052566614323920937285499833781135304721706576463435502058132087965050374528861448170902041692590232285250663280865856712781822140602278983367238958194789442366420251608570671563533400189291075709686453266729539889292142314637508989360412693354834608029628810290510881236463484127298946119948865744003363933144761900391297253214799868632276779544489761519220621987634137903914016500839619940106262963870411445468436431399177023985562174745237696162754069160864664475805999713146888969010882137963785126632950075814021539282169075692697541174077817994061849780303569416648307007372537582863857900726504305645514305235093205842094036301953425922058272181643961944463095597322551653676944555311286113713125781260659235607600921027133675800557068802682224353462430797390770480638806033474445056947947178894514509149141623671893553094525867872776776970054614647846400526016257019953091446281127400748563661550064866590826933410759056609749995903395368795445616869184789010200614663931589910065900051741504010178815273335509337467315827727439462088474197469498345512952542738789891380451605356728050263465397108607686831834525449068767455008165758596999458426137203250252334090706389485606029594168308658981325409393873408606356991204325832559420092150275682541285163408684402645090159245875683889746970382096499269719531414309708725304181149505495722521387147342271653710204152385850066534061826188670325808332719099273611336227456305270195766301176486398114046103994959715770728354401768159947597724663053400041141559956280212838285728345412103209039920690816354932321538621361711121002041375542495977900537121294113204361098350688930889669719539068002545123090749798615386280432188982093923251966133091971477624274588886841389276095606198885442371095482435772167408771591563653261348957783240575455747708103904448357470898655828939548195869455397528656515763520606549126185600413467787628220431469500874757452277641566872759516805200402303799680899945849043550023210941733830666351803993340968072481814928459463058256421956909314404511430364987034273946410960379659570258308864537457770860037226574035508717136811802244209784892500130854158886171223836680827048742449934045078300966003267304785754115251449647928969241491040655278446343096127733199436436894657393675789986838459819810023233032732608942098676779095243249330727952625200942212595145232792188460481098651710176934633265758231012456580404676342828104114129654630069839232789830730692062219152322601722412668196836624069637080783996752336529161022372296473873858744188995537882614824294102153232927926934506608280723381427241390163122619255978603572373332944165976441172209198527453749505672316419812418282098482483237892420553708232038330789469363500063492428821391131010515342259662932864606386094553174338051413078825511484313093527455063232583657914912731098478022677685961458987236964730741665110338091272832227568647560382475166160170929559095107163524123495797541187817151904660863664835098955154515077120608194723515122555865719946514172291449144515846874600069418445228958901567593570639051370878183876159741271866274823589715426623856373383965725896761977998917254685322452689897429501220247993948752576082543506705050761563223869229932339859403968858310523263334721454513633105315439614223834618914218240870840312862104091264782042924087884455323910672617959473864317153804461765119387743162686442464968625698436229284859204340629340007272010325729368305133448430444653325816738320903785476543692739448609916602490684369330945616828078706820091618025494345423314080073626068414769338207888436641920234385210673811066548358869978643010862343627765941358481971572291814764536784142144582827400798546573092707568520326658423405690466226850685781675856073932812666593451927938166869521394988679119406236672425520137821896422365196436029855374115260043618836544903234359473861867547584716940631910442101801241298824243074796179662189623223971331432490314711931684244315421228199309723956370969293390122479374323236383583882340269682967816351749795170142574221277279853891775526540792631003538760824399974234822813482846692904783445657868011036855264706855629884421710210535130852400379682858139706846573076897718812551992493810692247107549292001640824657523579637480023368475214660199444145253676439359728157969213657122392358928581514439616366468767834427320863727375252445624872757946236573110794204317894130086013696798530796145965812213351380062881797288812883905992362504775664098569237913375004976700490292918129834557449933662520540083707972171888480071362576529500382110520100223586745781485165090170410739508339659240139333745730326871303725750388906796049039846421320441509350792706048874694517263304841294965660058086369064256122656407930989415543011624583532104499625060774387383550889796059604545673007479705410067793774906413980964762892361040745900064140657140505815786225638914565363144604529025697670131588697063136044678909011664716319156901040003060209196008715222064864741430614922219566163409807315120681302244858552937685641059141912409971326831636814496999231296988911893826057596217170847500207796512742376188117696930951121005051014305547695178945802116552047591835200296994093304305661693855534681778338645491835923352129877593624637378761089471866121106944461983044227233081145054364885391229899722858320844281385381442695533042200061939923870651398236266843679531257924551819950559820876846135822640222455515206526823643763389107428731648828784200772482699726355291650529680044111974542928730097712700554586414361215019737463314340001070561250273268666222862030122854627100719671455536851063979015198168881127600840252178121712892459172774697069532974582392186611643917683816567796996836976053223985784406063971979602356743594484538130518469574832007450215746829534529421226716744042808694695720955812934234683980658798138434638800525932562757731855351348304475643007021730625352765094728434788319488801119877312588112478202787340326757550730374160258338249872674809843879970928942654600567596945012838526477997399987944003790159216708730230205005164511351916695139896658270458860715034350563538481908901018973251697584614977092411149313345791151271306595983669000672032840606250819513060802861465464666744786724696887522266680841640183761311589738365791337019779728009088173555664783791536184696622706808962253179370292615511779016778905496233493885920129030443660067223888273942565513567007805543009430271993606066236198502487550462107528484359061002912222038404676382164143288565947716599113004011722496692955153442244137700490967153449585429477489142578682539045305785827170873104596077808383976813740456800033251232063923755577106440994692927553842506195787203224263383339444787789001110153248592254841976435615034537350598031133458590474871795081219527889800459749063724420522121898623700180520236400802632921322866021458146892856192880754471535496617683444048762087500609819815835658939158610458899836318181728132469966618416507321579360363931341684217382054278275149417439870251906410004832818185141913467702097900488996202805378977613079173573397971036713952798428385400301995059291796156524100671508969825283410509538938824013185221159975278372538456700472706484803915966755634016453600278144086983089834052993357183196884321079311635711231912346927611807102271098337695478112885416727933398919526241953949544339108134838831806349929412390749946465289827757066581884794521555250968597035311460479426676335914632731838700978863280328656538275564636183198274387364099245603512405211474753825094446104851258621615870289276143119578342350833567384303354130484473086323288570494863321670268711874689826472259174278182272818414317530406226053499269474447030327400062041667635229951124359203872910287721052301487772506405132879398061532564546874229807445225499635801910253312454028101167547966473802944146464244959203404629414459014499257624002808536266464185516091188500724428913471213957530675155945557557381328423773833302055971154835916495479235456789990959023191167393873451907895474333437041025944164236330746676190983444815325713306776312434273539363453157940337577080881995708548935890537080392144745147383545767033798099243101755311058117571641320811201878347249596942353307619729327278746898320516603878536877212110596750863651619121326787825946494038362804519703710159759785284283740320900735829358961258285920944983862524855029706082376649379054842791367430710205705845932007581562767839065834295926049501445491061029743787929326807161577826196840894875503957892421513783944696197796373210015292507869939091782141350849194913840763028020146014838894807026418175666084122853314731559627765355534919501527021137916110546412979186279496646987164569699190448891143669919797611992359185062571917608987387336158343721762907291143103931359209157744439721640356975942143525559758890051713983225253678945993373582248621113040439608387727918007119979257704814512545101456124756448908842397779675477996391394816784730430907970068216814672586801101223286316495249386264590122424371592095880541218098275526734201544360455348520695938053688650757914180180199358084182751157748935708309781529340185386571604717075636019615653225834327034361546149809338722665743014441363225842245891274494957772350262262703131007866098180716727115173442756746789297209159961042784252110402347722732446764917566727873058131788656628563393136351567962360664119867823028203350322417961042466049287547591662222831830852226911594922556743745797665786710541050052005550422886640466738777794039583741636609278746377844242095962629330194000246169936960147534209927850006000147279092561787776837164877809015739873630675599580026541314480894567132461914416053256071989971568247584436383418582847556030739056742665439326924624602521314946804906048174061080010248876055994316310722616649419467770752568546012903684777327213036814177271935488733020047914013956666735425433514906210271550558536698243588166738148998319492322299771266508533082890679705481652111935634339135408591771556548873243053392959574398183546225390776316660922781846160662207458065094967073123406810308996884506936899049125702087809407890336944569690838733112670148777628472049462929824015469515108653105995123865229276850856622363271418751871382213002841408173497895107140314549157326118292129051766350952645311491463709652058870484606669685681437632609703918797823452413640516127492020490024573987539290998938497988683115108955132239379358504297929298152562122007628320126617336136706771645482692963143293133579911789965736000984921274282733095657847519847353823218188522522874525579192064972683196673253177810288604875808518658438520075079881094520780257139064668433136683245194603018257671622080749546315905515519292605600139149654028027904655484296078586271833744796857670108153946275912701326444148130336073160401098031478431537192169609437341359711091889221421678633207272339277607100909740453680562017593219812311199730691033555410036396268162361293799778795452966668736843290466018818258472520368258950498371232163603720898465233637803273529073437601770255062613137604843667639753640448368940442606564384940293806124494582892367687587309522921705423597022120659007746228467116774217152574650950632692621239453178989472714813932572086497109422190406949814089290370020419829013887158577739520063480916367248204252358508253190767752418237301724697823599162301554029616619076304633970193496991444452901544329849876721367885990708318075691444330965788285730018706035240685996295324370011087301340241167498428020229535334040186576895822723485587158955719326282436273522395447210298620580060753929006386114593117119320412615431651161842271261083018395065441446778161943236178779864069092467671437322900041767780651579331943979424716006969909623567826907773587171563392550487948803526688107487459682923755786953301265855891710505733505260502168553730965970729150546180896100722361939062769118673124652608544058989308026940534511393632504030366231968437707322162523690192231445941387888516815307304600940036657390455941864012160249845612659925515610152636336899497757271251310582524601955254611186457168947526342355769055609954631043563053502424176238672392968337756136483876619131796426846645761888436422098382529686300836944964106094172977278834892414729830855738952209771392067192770071278716476186144476625854078862493718512674840795886099118324719605704257830715806768159651556892550319796941093849573854806456859131290721865550250422337940086791685235209560646537025059213408363077557314206511201121622343077049772256596599857574364799598336880359647792396301045654593643452988929243763804209806719974070927426300677258456186612882469634239628847002682312852981185551795437169990167302035061732371503031622865971339134454304424827481998303909978913081210750957347736790744547920975746769465452922393867814416019376289842293446370622073794791176454216705660687889845504351938675555773284557502010269353469191428932741618237327832324833360623407715868293492428105271830604054545600402589260227882318310345009783081190870514199052968903884563415242570261662152933359102329645270943495713422253377351768115256110750984578256940483110217192648447014864616962264034674838676911360754774037093971136533075728184373657118685275209328406348248177212045968003265338542640063292211450270903154404327812883953885719745294469787979984156674310639853936298501605369315913404823715323587639481322087847444539368998377724901401748553202822808707229443490428158769053953116026925479272931304431276155963746179228617024493168706934580569718630781535820860555809838583864858690173165119362758131016392508466591008444793888276867348968827546654882095535229701514237179736044057386539576629023579239563378484938111480996304313312561315996549778014760258171499586034667081502863824904622793066223410469013254342413416240733760124181504162752057949567038605867945701215214545530939822854132076222223367523749808166177447008654189876999982344851418379851014065169330781169601515589202019768720062944117484197700846965382571438823642647298550688024267712491258175358915526982932552698459624600640485128696114398050367460899406300873683817195683473119041419204987468902693482682278373631596582834611854604926430522311908056043830379606892790120655472602212869599324262021612017920009812265582529824740865822658478214957838982340732091521804379355240404798634588440648078266280907237666326238471410033261238603727149333485323592533289163411665952786546820519706813903188339533936256022639106837375808054122198677212664102669812517562135894902785460038246160130465786399333954274150248684432459101020828295315084932682855441826916357165082648681088964977251376381305324008733713837093245770319685468797413879034705191639635331966720838159391394254500343400223184925360972817305481275657122057013235742495253763509273442124790705347951606842856995532670711276210448113292781514556638085034192795321719538357263666431689126816097436956023831744169070982310013860221337647314022462393850167033176753861225358212120714830603005206326132139285416520047985545557824030217040993609675705353049351391574435697350418634612312880610564268027844742410484542377302133838444083978158130246767756158630375715121371670465183978883403790167987701959350343668869543695784365493268863208948775541895418079765877737609904907544767621492378452453445482659385457023605872508525630208301746916155352748338122968666265532006428833743201107559709790683981890584666311605909787692889528353891444009900600931228517370566055936357787541373772908026177650282858464698241564974946213026777243468660849074859306733791282992059485102336415064892256680699912654538031703573809674403705353170626986978944389924855358865165241570536879920039778496102068103325080945977884278784816164799406059787282360161404712819624630981410671221403094375838273600775495677731382784382214053008696013804063124351803418351358728311481340184868213837112436845860513521650376924906756018766184270010970448031547258501444861692934344090689700709511619159447873800470303670884040712388933257155596960280597791665566181403055197450285469542870124510240584367992179283377643769755083354416442687550662841697236718345216136230521067542984468369840104703673529983130926286260190914983047722518695669437498463564730560996704986154796425086343515576806418322618938870102578911248287070594621818663737667755210441577783180346015056455284711722993758567583468937396054058873370878894561833421305401522323251272534082161277494986763781662638527157771605878593634926710259546842478538845439239753886117448620468132859921875248808555379784977886675102184270693255923993322075258534810881797973115345172000642784194445394359472583324306480489177021809863047068843920274908429281401807298170181276270413586053591922692013703669609566313657062992964810425975378665459677635516579688563063916913058813522496894733209354732362416555573906134514957810949941288662554689959967616295553543924204396865031533533873225784613998751832594268726425509119508437921227371173526327887746557701937748229075103473155816923869169473927222065207468684093664701095229013588132549290505779937267541310801165794727863503816329289085198935868160515300085526880445583582957929230053236995739904799839663750605223982489040288248530865890138227486098211471970161774723530042898590094398685525053908436241741178241359588814994075814091943363193911960469978600508236687573084469740632120657733187391314002250859680275709252575936386947668924087000415573244078614064533099852485715181469124262151390416691469914920641475139594943457913602856117880988315420940875618828635083489857218821887124491346448763431538540884671199624945872294967606187273268231232360905328424442913992084461654248820792459699843387886444140414923524354470070369751195806016515858937271671765495371366813020418211212614123239714183122064503949715566248043888201053050984466613876286607482931461607842194902148552202893941324281185635758647058110901856811904302356556508177864120667293514667575855886284008868468733945512506394360454536459387055030651540438228857719335450887330747796770329541674978032815000273054000160825302219509863951315693557497560127205953741509245205021826012420087398001998920210652451482640502547069357387328367926146290085840484249229585140538847413032065592137378915101016799661412809522913763444899972560803061638925346427082296933788777618568021266548954779332585829592920298796939032830442209744415704198865299232941480749326485511143407922017333657848439590962215396587238129924345143575000253863009867104547482760269670494026246459013365743003406647897211402195487247220491160968724441352931810011632408719533289605984320268456132175886248476454373418986999459876021831811382078295867173821834741002559412431688125495049841356642181759060397940090840527324040446265657792612192762940963199863793305002456161161433205905720407772638092418487825235492132133349220079204704219020941357280631992089440365706108250084144966267664388223700417234808289016304477461742677831659953931895520398877184956796309648257392825556841275004812915767031267598062009587532251815824043806076505220712401786123284061397373260080506644789224892878366114865148221508575862112239479107570670006086925881370108330612505520118932821636253539346027446207641549734345373384860327429187741488272390189113012920626588119449333893588806082474649056198529443152170784158368778522214616958165795588521457594775324390445393762661952237056666680896832855756589379796883340438302363082786391091392643298267803548154703596320494738829770971017784713795649890590316725520626658322975402909226546746885233503826523349138225637961012140203821770226673077883526377595345956971501303644986630184642284846622243776639037404245615667808025603652511973183989338581169356803200354146940183809784762640602961153779268836209719041942199965977481870453665459281845399784590396594835657199880193419944480068926136243380700584315716519147531823745386897830855432943088193387332555108561020690524218935234626983859825199232378782883864643528234736929562913014850972012250745443589612441303277029490050815069839923288523009741569322738730413722930657145735505425657550526181681930990484521792355723552403801732723349204315704211744771371737908812727154295381897412044970202950097431110395039177632085988372519891128374284774820593429057079751262133700958438946541395245042937625602382042929507511463268390955251892636809033040491677122529263101267012946741876617090412380291939547495217965227173493347062796356429133021665203634495066989295134104991029205365469999629143387287747882063761087217514735531468244406647017845789357643106722729499553686982003916906615154472507730231645209505288732299071210743048636001907406380571705529962708554467268628975511678794690922055181919377995602386636726162330403421162984713499703167251373055652965695081120563831169602595272879528606053265692105347304967938136737783753527266101638162367238621082359329728100574989001332527890996014674830444170632843039983114808307712319277837392528625588871264234231030780001129154073407785625095564545892248419116138356194203077543160980652829861205036999955177181387063269770094506065127671701575502861548196789873128477183479407983780332811845087663914253624497308007406660968539087334801947614054431109190754069712784053842826968386728951942461206485184173710505229953439010680172917522211644035569699164482154860358043193248516490684213279474373905303659864275780593601707528401351375263848323842747225863160648839164520145892426947776319523689196929372748994732725653989294451807765018932852626693471286395177930602644276640829886717960308563010808334184521813969963137170536096975266320909668706015879591643559204663112805479166145010752846312169861207011310869308657665196613209600652177414834041605520657462995414230922968581563611194128139329761869040596190927507370160678066009291054719739053519086251127377566967364293904644070012601900203537327026363123815337677024025094511957647159511493299552932102685178198309860385071113931318543379821215501364150339304787886625665009144019387093097180145387556339057205796988903613071118453444302360267953017707267024942472440902584740627554009743662915600606900435039433152707970466189820890112837967109866588480763059800554700742095582324523284969356302943288210436004246101510111128181546015149945138667283506785249904205459559948673073648399021049640253436449887040966644802519434937576938611509396562639065886915113801890057006468240043210288023389697708149684533348540483418338944662188344147957771866197167164259912727022540510061137633539381822922517261120408234584725405016777920496167356112139396734608289221009099411848276542165238597572023641894770257417072529375315062429539757878566395577787243551632441391803671202073257931650070773291857132018504017069907998040097507698232367792317315790864844954330529995674637976941940918218046579412817498459691594594336925534435973955837261426544420922365699007352352978468156893356602785535991560458647254923227370794454389905902739650648088655791993498439630049235697414599876034041072749695745354442954766558382305301549981724639449661806593423830629315245851903171544317052588589280518258224913990357098069579163768411784895964950196551155495303853839127673795040828837459846418700537574759443176191154228408473112218012523524259317582917196467774006465751846484033959929716954244139080356374557416702074824028019632553456276676804911514423930840283618581310171394200976919330377099130681572927743464403236332220298195456489671559935659182486229011029732288357615349369634541640753938651283162625439743635808835777616871048052835666957112708318859103959167008170797991972740315340627860023854944892540592524175380759603001369339117630713699832087946437727347084936564537496238246543304886863543816022308596935489179268933478583344942820907353851801777352331566666838278592587986941046838189739835319135836650242646337559825884828394093978166705461943522830100253353048008473021725440562215591604737200571222758169941041009689510843936181070511655354063818307481943847816779317042409515249685477522347375153001043866964488117084947982967677177347229135585747779305070493697902693785623791119973460271739171465066568562343298400339726107661766382875247410711138508017405050127647200874378391272293336801794472453993791592129576638706028914885940709608356980652955153817420185695718532953086131458180712731124757512869570186975104257325273695057246805258786452529721432166103496257795359033514527208555038963781335070494910559192323133958352057422559182873244090700417033799891704088642780650787318048976509134796046815289311674536464613242971320066202333741226036012054311499207140459876460801965099261577390344924754138150249939947193756867574507844040463675810051945456066477319201156058158421016526453384767350911376661209902872944561831397540478865615365719761162122205486774705448871229136655556623010875730247043719532285845234466299459126602010836359809889207298980515358727761874979850042508993336598563865323998001146378595001008418556865618988649296479260906167791468957126729313607388611593429043181909674349111817486301368090717995528661661696513522293550935763062192150081618764401817656221999027898671922321579149143006549854111858303640620790997980837300602816297030415042542226654453750999455833900989234036679073093926221686614402274985951893308133595414619884065535609456369218349028399271103821145128080646356083068237294134480328570980167180127210557365288136327897505411641981731881942272008332276338200498819284499950707632015888317970245138880117770556115879611918637100379580428972787555786048245740201544585166769227067218141297793625686218821574933591241816548173426662440817683551263187362915151992371178451029240136095131472360052780328486926920290309931489655376324665803820054581357458291802212580788167286306800767366277029485820065556289316493980400540164212572295723246521694862650869708243523835961560201099069226697384784021670877886752803696447263878814890300144168680294075003306414444120107871654252869154664338786173353231127354716350643051582341031952198667429724348696342533900083746305859667939783818537569679796169672725645851676190663599011761085973815906063040108905907854026516255088308956151753488560332192783283869806142146884168692573552672426220839172771641157375466573303108223955105606181721461408313862554797545156778194542883979667672961848121620495820549899041730664092472637151154022090246435290552511507529727212866243159449387151405265397265320395512793092535938100089622305450669580963506379770429955337851952000909511840331334796720016012677696043854448265545318963392676638415862997190311567721875412897676315102932870819962432843759945664375428924358077187645784975910038353842330685503254809315962554702217498431471194172955014633161246223139504853989720679215096541117855522435960344227933601852957152276505007714267346921309866963691922616826784154922553847930170786796556789094367835703595947267154546109766616878492016493110786583791187233325279652799411456815428828728137171217953657329711096818066934839576238698184786540988162754389164789656767836521207780898924218444840034026193610891840257370635785657699961962197415117217132287671461659928609263687273931891361209692274198356641991843415829597117656750620495907290793079188656375576380283196166019932243964746909836631288233137717481196748749277583010502971135926167866560125860084566429548732443550870855685159378351292114770510914560751054450875835437301616146771756822591223769846096663123266318889848150008894906059241404638848577451457247956231907208502544928495787821812735723001677159303337278035982424359997798248905919512967855415634447493395021166923476810905115732559780808245011274465053224738821689800429659484799256077437328201755936409650661597629943154657349092178479241653780873158040620496898210191659693632458924087056055486647509538901024288432345080094624009049091054415789916702890321046361413748953735540448282860421067395048483317394592750404207914164505384052867571436848108973755933797353383619670334294146038993028701812645429283018220327524429736869803213463925083471208088679416083165803944845743203771022224147489476598194676023896469313128777430156309592476060392825013637128872079700319498786229549714612152912278686941885859968571784943000578929539108827969211274975920437784263588445406730824544026344100754999429403452563704244151129703045900926173895038248477202553774702747568712880744776484369231758826665160275660082590915171798174627473539903345362389189301654447133261420390755281154532142694699856199851025749784528066744944693255666845205753723535801756093557231878502074633688765704855334951754587331877098394911769099349244181718398084594182255313379096186205448354775875457782573251387946253995305442213867881773409320193808752447524698837477944203035981844297542953068952151104758831644914898022943164041427125398204044904869383062894166275943954046861107022919465069282265542132120252493804521559185426634454920069077793747991511571698452076456565295781850512356528775370272433582845565497106869065639148304263607045596638910132758035092644090937192608149229820742786375181598893232933384507539452362895723092285289806395218441679795497690962230691048688073200633994616786648367697345586228797520144688269922572085070632948574508397899911103491489756934491046139699019533056467185921858665720456805957332481780610997314795348015434807758148503586658554148684863900205502518922878793077230497984580481091442081371443290025750849663009120673815421685827947759792839253123006776452073312584925850295427652151501678200526934532364932267207953234520592211447994747133326773228565480055198265623515249815746662203793997730823310395963119789659584803418705357434164366041773849104203331281442696725720974745754524048007513199820374009004561674407348589176894940884661641070876750164474360667639372485617200214010702782519981765291919076725267438518223746760586118102551622169757548463869799345940440587568767989768326258344057539687063227926231594318885224687795871470943196265116844860769539119493303151665554654118208289768959174789124468648501956484484703427466494597053162747788583881080976533269874699946471116810178313094193931636266995836112736610106623016502841581755279702007414905263754686702328160130232613536372498213602139329439449226631275853732120978817353775979777391268123594496461072223989926621228138842386386324622136302179089168817601375985124697220521662180443879391757516285713202517660620064700700841241774761374185460893034663731612163577803425875375891932622935681527029772739380221066582689418891555302297498794681124934568394425856402892954312257562381212359640580085703780933535532272009668266241093611317201142636312397565482447642435160765994039395519135843413271216616177001655758569455242863847723684638664671674467647377678383358457962661101238048346664748974446051436581373228366301927448688650370618926502396319500884942374363814822157532213374259168033919318431561491243830864684932488345583136179099931229281695896387041728425539977079620993797623214367869710675568628402382507181126932794776627696071026953377030048664840975222692457248345153911775017403158799602425253447245871495862513547815194266817755010632491588806554661827399576038190091428961573014670428253136879820476095811130920607904168428425822304058435491577054162952757212463030741761137889564221419912283733212272688354352159987472479107242503538424421271368335525114765902911065268048395369093303878472976744099215822944123632408473082011149653788984883220055779969871098541785227997543955202471110966392728550427589067795220137459957185903702260641464495303855524075143935756264113757384611632119968997389624338982039277770602594965356779040768483980777917619801907214261490956875234977994783972616867257965312956706361339642797664176729280055438547678359512103227220201305118759924399485276929937673804905416342644608871454575472630693312240396803707975024048014778012254706532872233715763356946190933921444571324759459973251428895161878456324011455900561414604971204623599281892985903886175167866589324671960408312886548527525601761368723354040746095912836370031084951514370262569019545736969394493189455826269369116327188497283212983009232341019176452756893194803570593011780961077462382030895956584423341199155785392433082971071223795410559681181326488743080682429480717566005079404357539369420025779365047252145444909999749578716361476982129992964778662322383585872724031762146786835222694667630620755009535168919508590591302764471551482760720277653615222576299446509745052162675308300517710623375660765932107909959989059688656889262575083772549974616753280006350279539724810015998896319294965290838966790397481078308120719882130555990226328116887245263104105395019857370307309622184768783380454129405556582667086353692683676445363647464231146635070229090327042357028607383220223238165285376624605463103559616241353574325526029136820159849767499191515055335511144402266643985988122832431386957677258846671159906647423300148462279875019194367395245956355269351897725133601000602690451073570715518686685228470047948598711737902400314789063845418912217322363253242633649186156122086390541073270226115286655535600572363848814731084666829811333093950697857382998062318976000013469820093934571983007317822386091039884618549148498852056292718228816274116353590203034354479819774697053167490062353774847734451156160104328426982373844193749676355949409200538821795187114992712679952319905614618608169053936862728591931261625988048521392981032944785884569715582020885325494480313374538700456705106375349985479540669819401111296235283136837142036142569303918104490008867966698214633704084770137236927467411145490942302037812184545304026596870915565257468834004840685533202318619242813579707136618455147745569645311679278925476413101146760714921051847249060369946057619437489278137843886744720284558918907718472534310822128568087244853930715521325135979374453402241585147885015948390870794856614714285195991242211142429268345118549767358734239137827713266112397679567877172896094194339145203585546548774022961983238711832204582411776945445912554303135615504193088633552989961922724043634896181687249388387343346945761268885131018883070001150993279722187282624728279962238373752176210405128376620812197757543411397019064296684728653291960602976624995998515285124862289253510280652459141680538089586898281126834618896151144524299914521193550818315974995558256587674410508907274601058379160997655057789094422761081520402352138768810434696742881128811748309638349303780715319685493054887000043705584686362246474133126123605214336513948371227022913377863631562369038221434105831832274284859598012419625224495519402230385601954491334467697629853241832942896231846943860093159198326731152244377977241612305986521773568108577367886298788125390377365173288337683740874163149888776366501392438079193388515321551795342241734545465170957331756446118112132123662717676118737101992250435278793907857276878566143775218687682310066904988081966700452731971412181238625418112995314369039086680984553829195116251285142384608692136303743453947111538760632258496211770381051066694607202633906769211308217066295122557929563897393926441916956086017156589204222199364692389058868770267744811335716621619954157406623511273709427345513008062142413933776416741217487796133331862373516503009405531074032935572300597744206071892906529858659813382736578260489916843521540068245725833382310133977713052108788648027854091339177462032308457407073211700297952316381468382332089980248492141777271492631759365405064443231386162622252531280649474858472054060356793981005735426678139037499784929908043774714019273408784927559201228498385285036522513337626621502389158245328705237394994891800219304160154037826128397201007351695669026197855333333484692563794315082654337287985510950762431570980629922841673911597496777204262369394895526123525352575912670790491076022223038372592991518640416861013650158212250758147656111261941680143141785489504076303026231184533281715407300660759932643377520531658004780135898210201749798288620423897711842720501492213673086672474063415461054248974296519404199790556565069896784405079439297171601944233435760695786149666218132157100149978216215151167863294138765883405258314667234562279525969034557853517265019228089980941559008878484335842166997792559199692099960777858956493089248382060769426033062093763337824140251422248546931935427894185892801139098641945151360300385086696326643976555773707450568289261636742955021474424240361630426532330766203029903023371386694647766859676567539353578158885448077240162616667456271614504092794064204186663979258710758328034317262508876905150823835209728404723330078457873610255950989833866011648956778691176892646112926339276665498324159621732691698969261247796694740074291342603368997367021015188226860359851719212825888704500038278288808671837667807762097383992999148543681532611563475497172681977615527752595777276479749168473828434317268726629158396381998338860726576093977909568108004467435601925136323191334985361715188494366073629361094117500205371958547176028099398482341774165077796771674178029520245643341249416555391582429579193138236900942793457236887608876064964628447026009530624067143729658267980773185283619974473146652964866664240258241063410159247178528413718244882248102415003630833763314113612456709452049180110566537141994701367933307511408115039089308048490922266478100579177174885866396722617488918930943225178984635694965304260125436355890539533412963968077835077793469985741093111357948168080464498035585044131530739547698459238731173364134511079095247686373113061729494652217293640588219881819902356882188916490614779164078453760979274760308760793875916924698273862535910524122843723317121670337514981883249998285021410244185098647167253459586300730939755068844786517657906831041644649267967719878568855705030194292786826482940078615118307895372086803431629317514377515645587413535216174087847396759304400706738705312985299710130002948146106717434925001529178899250463300910286679895293216621955833894800318638121487882257710177690275355245092006051302408660718108102665654201738983683978052016365984038671728043849460746912833679956093530449734398066744324169858064647050150174627016486759728763342546931831846193200883558835543787620898356783742959702767031773351657088377035822246173483598827438518606425388369070861802088263585309883852050358664947472830544704665855293012348576092798907620889266831257800251571408657172165831291706631230902868554741566466307682448702987598652589805964478904919287285188984610936829662383100256004323757905016755445093212316753293538872423173416453598559627879590024552158362076366687082828588021141594774550427884886161777947457139259883134147620316324527003169244781645144642942279292592651826992934804963300164116839292055832216169550381675028548314179286155155400496111453479567140436001176475489963670209877581986836819754188860265845502094436290900076801174369189146706851682387592237809401853609348455008766328295272509859100689841545229208871925722354621135556107813905084397884116878862678567936946256266255878891201393734512462212037201454559560602821975639876100015646331063414022774835158042628284293609784261730774775945544268655794018318091285778511534969513831415852921592974529132742230602314711170211725570554054827431753398101378618317763987298312780902423741844722875471209639189063542356354320722925553775183166231028804710010264780854275176586036826516267533963235471057382617302670284952523919911012282413888971566271857009533656457155797038748254730351353508358457155564412884653552814012402893633386310144874842252236360921103966459046759315920686109684552988057874944416085831290252091838178725463106657120868902547970284369651694767976809043241086817305993289005841902371476410435952522639266576377265598268983414074440687408936621704234361276900467573328897533382360034057755984295608576581600545258900637666687939124125768315954347827149921471718524468843964997545794305440453431259330832356693583385778054126479265446961420021688443988918514008933568006492902911722626564381176560743436273400731327801235455756463037331156771396528074711007891907287667216859898419372824707125792507843571152801220880590979934525526736847792550018554544918092880444257938992738923878532829374676288878163550545790064997426840375708799377733737345127329237360579086057296836815082156209070608312148929547018707780753896947189867636576102392415948308776991277712958791997501732720406072539478117339211327996944569174240674829253996743947825292484500924124071706962531480727279997212919270114276856013986722137323922609573593968185799765981925655422478600140735085028009598700584557119911188483946692181133678002794965994475048227709246287300028010026743804216725988117848665778783551330400027648670458347468772917748463138311467948309255210402238711928477789859240778500601702094228751849236628815598871556105004881409251365577114942320955544928395227244848389990923868883434095796283636194436675626027845460503077151121511996138121486206590289036033058409435600240046292078145363403980983195743870321524364635771661899868745646554140918602982046658554530229950440809212278038181184002915806961296275029342208834834643007524009651287232685478145554382152555743315428515891577933383424180512046415718389525581995941607644162579284539614107988226129420022743938737651592296407844572353958218242875708760617207220160898839362274740229187949243009301999641466664458218521548645315073926784156338618772581898160548807938089448579142299080394510037016943498121713240572669531670767975310164504643278159758101355675866908702404692743659234749404757906844679426979262863306622668076336592836828119140583520756683068977389621088216092841817324599485937832178389482163727339176523434950993977200739484060461050938547950152595878541436650676893141450926726552927683116799364617705667528178027513134361996351604601641800905167007260427738299212680764280546648729696842198689480108121452464438541615848450433545772676300161837486128939813502981291632978337140920476086994044710358970999916739951568282547209778869175322286384436390968852201755664416202585381986732114142056942789121611566576886619246582830863129740549687660477193320172781053215832160706138159864575068914635274174599914165238126711645606180114281737874743201638297134697700336698260053174036134441220196688295584726092495129773489459163672022483768097324985586005514590412524640028958263064035840682899803839788994495957292266733203117101933918270768074818040851443064913274942387344277903152277747294311024025052088813831625906051261198781757318652273249704805524827662915059432706607483102643451317320571793826683616120588569259922792136359304318353464913507685237881076873060943184278728317651809221676328179989120402274323883696589319979171193723668187700545691975913369702915375214855966385898582121628272009768446167823620085289066403854845925206628517705972173138079763460569977351299395539543519551599340319037105893214918313652737442190722322277856374489763940287391251996483893106707017984738889186742189218244653333645838060295825610894399857172599946479926030068213552751754094096482966069700899000048818587204515227491110788664341036343688624630104863070847520658754924539536496261204012645662122354619632539530294024681343227345022267712837512189741035945735325979026512082660530238837399463937312819457979807298371963469295782095996735660909167667652026479245796578369025071860339773310519112224202963390781908947759063916208887707827445421617729203066100825681214862306107559797210365169695175576201923518297710308639840980411388484411413524070915997847370387332813864048081867627624377842417727461796006606470047621458447505042886665691297528013472448191133912824259949654384818885788992282984508815768509035177509363032116368024191071258296171232997453792052335578404020966706082813111371762712813459638002058858241842439278895370639849618236552465268638858441246310847066703814218310897902386677379603254285291129018920245721919862419988147886779654222200013760757037118959453030650681661404427047881733858638593874312869941532445408725962664493242720159399538523167955195003049064777456222182800934769240835539044917448346254334012646808489761063480896737852875389853898136466061891969475100075084825317245390249662328692095355558116694397257030728749286771132598169680648367922571914761888602055103122285306301976882217326331704012421741135876886964534027328738331180082261762124470027674752028903873180136822472784644570303872572821317443419696180884983947804699881613795698278397221554426855455031373099059966541087433235833586788322845438053831653400253506845379529115057173452097711603211996240542449508478025612344790453983056715555792724889138309795960098777241332690855635832620596775934249814468292236210520538572529683161626676633751760835229794494572156462716192874783616750051576466034109949682151203325649004277462206586871212160978090773060184423108005785570736714542118794313477728217235281655591832147797096778772099974438868421023453138008328243021919040436699074516795455327961908832357452467910570192332197348854770590993889175410224414235812918272685637768309955236037220323802988450460409988959257790487530511394631945611709249183969430817832143386544604786366711713953140693709589414475220025819363896564932331257844130382156469265129889953438621594380225526562662696423443972566713746048244588384756314097132419731808577623018798013862332898453294383523628390071521200248421072776879754779997915459928123780421208411862401285807818927644295386510505416924625146760111702878637455928709927129080723824269517029103971769587357837378742832896127986991624554719713654919751710759347298075571692353759945826869505044873443027786835084257350173760877529822528763460669541102260457552426207214525404924627039661032780773232683629289483750994639837150734932370449237079159801699700642607280298807782023264562466306890874012063284967407628877323248759291767426275420984864739173791455938337323799387217188972485564618892300301663345653126913406124757890604930110075963007728903388251674502013692553302646313867740216728248147532210200226302606900069670202563036793785781851230749588253228942631793886610654216483370834876344085041193159558811952897124365360232539824996237290619090444468978640967783912139683279552604727841308537490182560316289873682129674163035138950316253186261974062762784414873707017233496811633732005789178091701032660566817241657362493517093118080486236035097066378796435674538946319400053398681242535128406232912957640433074618248444473134416323608533668985281769155782978639378118809761956977813614199293854152492564834574742247725005364500442339071809075721920141264571741130524193562997800364578964016299279373614965711780976244162461198438238919601047662394012895787809031304111353010527698540620544078080015951194480684180524900768018116081807987902974632967151497545832260405661288038152523966954167826808974038741595844498995789278112003171928052396974002427465841588962667561177793798684317313899803885279711868301977962879527985227118311244931258743038449433939798193582097707963247525012530541716394650280045258028878200268558974880199121688199064816419759087825040029293944167488741323741226534782438232633762240656395851493511553471161681729080145810516720325756319237320350645216191680034410629883898372451903100026075973941419943621844473102796046421679813560136651185946164501837595280267848649099282159564996963667413469954866398565698225616198285293269696063429183601351686346529211422086661106263275956340608722120551881138754316956390069059188687966653398331948041630486192560686026870969188106474131235889416582293298892393157410315883583810795430443796236986120009427930097351965696525447521435342695202791867923776089326036281310340012643925439068914772124560267189570328294059772545844758988834683029014799440452033529874803068602388040679202588783733619762252058843230946185096674011090063696933198354026606253999831269299431416517555877825609421788609343617334387405717845045882742135812139453360399954558227151722632766657716459539874398633154839943154212293624298172379320257138135016339276548015897506967068996093484837893474809381964234272239941830286245230704941076834039188029309751725701414169719460163118582117597055455395130281712753537601494802312878250984340968243796354311781410069018684409845968226593314016014346512414150487041409918989286879304325560417220391423354162360686856792269439585510476956916143322570295452820714986486437139134338566125131164761921428300666284871696399657217198620336320515168703596776396173543967739999279946892384316828981800449884415859118498113661855750217584599156264676123732710804812278877932773731859698933167937974869176373545088446898454730224733181087538956327455732233579348858976099642005935545201079319905255316668671295391814609577563747292239092617221541954774775852155325704223708146207355177285640340009290951605731929677576760456416016555614995493231238616173253728023859312790636756843907831196473259484776747075068187427358682035321335297327486829102035640559167634915442898905788711501174137502054324666822831606922288474849201827569235984826025322418286407973285385290081392139657570141857803266822643298235756974316035211338501247409425594635027352933558268377403587984470347474141699539289577213267358724192448381831398486898232189445695746227827791730772239971132132798973835687644773128950988080121008391479831385092680552264544159117680548948202988971407883234768929786091656471328093166931461456218889836400898741930044259121594188049096964333517795904529792845304493638640657002768605066575441944298930384072634194486232473231668815012332365457497444966127142047808964341935415480849202237724465707057189669983545845740188277417753444737531910411982346604090256662673558632790911286998786217573405410194082925016435954753738054770899318602922435174207980154572823358534740962212359667234762601232968969122106305304871535211577155557554976429244976409200135481093810709197769310346628937201563543239466758471030441669168397372537414325419692144646039173230871427260297910138496166957085140450206761553638006486059836832705312899338346222867354631076283779807475824354973959211580112422172287937409403311871123641109208893758903746300961937034052577096955129119234859762974496564035626869442093140458482392847755032593830638101976743988477347682529785166462820044400971358942794565233082934738329742585877142603758325261909844779990182401060723287793771462568762627452597417232127653997527970438785003340524804194369331621712967817947366764987666479463767538346318590262914569117427111339190567046738281592100503166443795173128496717264651295300674564441580359380417561520731907250813559141265998023075380239284951070918102741329964104098493952742269222784336596444609410381554626785359407804075874629248120762120919073974665885494970760376389114869338602832612949895331141916952269686861449246531109797213100045645929512824306334034731899035461199376885898821452293697770864945824876352922236455245018491482522685963179631792001306513728491897340202401728952608734006982407288612254223296882342485157429704093764628583089656729382749234820422580512787979617387182570216328367259713073160135142196156855079704942673552539928307337835729817887830118804139697485040611209323987412385185588592006061649346994927563389243870876132143965391187318006836836490284166725066237800563107781392098782975778623622687958632926135248721193211756148563652884007739955309067547984516583675036679174907303911856632259169130343523108358604403061999134406240446069512715356486756546390778487610203646356522512202158869244332881221895044302989538932028962849527465516647458677036998195292700241452317567459795175916829036059822829388517194356588013654115986210023513083527074213777158374927340904866175572351093964307546364108318112784185027753045415206288424051062505907631259600657151236502446659766627828612577707051049811866103958536660362532696190626658264100684464298779619139740463839795661763369635925904881911812501099586130091483233140348040233283839309551849677820237074576656942185998338935280941301100611559648996535010944265196210877888048948643394508949964732598862455869403976114390901912075623321338290372697762685169471454865803255606700926992902868668451069036583027590460325006848590897749316211856898509676655143019001083458761178715929572116460054731935151767837956694171281691548285651802146063514322485681193027200537672731383019468917890343529225226909133908515374180638014566542705660718995455032974812401279820202068783841553010212371471391359251041134065913368661076727470617718020065054762149631033940523001460501821765861145909786445119339579078545291161910355742665144230042625579807112383476690604664164894262594564291787966507903859704351223500587075648982452675209328985711580943333691471159850060720896101146832515777698308353378925212332205132043647469956603955966983054183824452480333594239605037590543757639536113381572736193519958698263753744417660212428836816939783212386366798713992004639853275439705207664983338393508976092295023986714022997478255521131417306595180884350384479827880469941404255905297093280278751174976836082145378208004292322440077873034098165732018392013435904072438423690900504892986700558037430987300404841405726552644280038552830717025472691034916368571981353475400367806430127416726158110613072508171191935788514248081325355721328439593911487787458499856492970492215987754547302921088074914183411987839505496063039784782182741044829362801011571892770576633414477290558712337731766034752831605914095575368995414630433870713957319757846467517156109784034783772262041897146605706898531846231800425087785323540126803330782534402816239513847968552231904830894479351255221201351332715769238554201810978827318004482239000774227941229659834669148984487114877852258328259263325826961496089736316385278366718915387297138002922811061689997561209541236828085211935174415525717674983005644297935841305288407232075456992135926331999279636197567373220499858548373518378456089660361759188409901595740864943774221168591623609389893109805515848206184271534331388045259662129075303054754010291580984215465841058499035226245199428479291730550838373520967605958100248137705669261505342793083337768556183902044681262204249200122243893568932680922127239569672450107356776705081610300162528945332134176552629899124078585103273609437573679505339996951595451529411994544129586926645580617247779338337827991825964007788088396822403415311925390669652433688584557315147577461071311469288261692673662489229159947935110128709384727657579281033637315588964662249725780053044397507966794623344303140602791780457503217536887266280366949924334233690616771019254036040615673773447269914722040351063081412042891426568343285036538917182285744287824044009736306663420621802718606700500119131042318191781135412992670048763030382423136605883720529260038107822186925239827023759299169337591714810218002143096464421168573752302153804814224084503760513977647073468693331104663346703520974477115929857370314154657594073701561334622108379948593771768812177752693023907805327765667721655848062375893797835639495445853932705509015226580411297593144405133039115330651641907448084637992647225885727425269035462500411882601346838863988278239026253402287017124219021266645828402942797457599517179079893553324088279550669725139778107993653062533148566209329023200348098496289477028893974683627049451573429036365660762834877285622882412088665307652651844051850301020617805124901867330824616982564987265319853734888110654073096247885699302290471524012248035591361680902441581755653897408910128795213801214091308287722092216691152907254120111204863836120850783256273660313791521949088703501308916512578502051569386082009742856399231471842584245309235450017540839264722983455658348150458867876902802700387753133297375058021248353305232487703406910785580097407119543339763108110684843764316087798041649768425016168906687023346725606508620315506167557027016740643860667523924276420201656718874501430077885192871325769797466191708410128888010934545001892784225111165096833460247374446936203474183334758322338599008547934464897157064175589871637508440053291612595184165756818592929531483177307364767902789905745659266595768835878841460598030274507891683983394551134232230843722445000544776708996800604245189524896646058658328723019018417363749772240739995784103421962019572955334577269278554610707937294939302567740599168751262220714267028321518232576274139493384283099399284446022206948758646429423175975215831681399845159029571126202559523724601195500719994980045003088714741392947698837947431087601700882401538090178993128574594911410652114116267215561489354950560888059973883552712941795191296804378191082982204857089960033205602720641448275813066462058746494163351715198985684347557642834900339344772058542891699874102470030614273065051555985274104330598276753394668645130095561475483293261514320380982437192181891705892879108952606772433973925892855690851010861633457802868339190869792501889225025824974545232811305305760689191043322047854580667567227230479701837737112869120991105986110551972547861646483261745518522053801970860570098662275883676890724279780851094752556111756176328234489543184450120618248292468628691291219992319948208626299534477779963676218627118060768889378618587257455714738546403012122166500983243045271754837276513489143591753340631546618002707239409421667357384064325591995024222535460259361765674486998186450488769084134707303401110413978400810493182291046677980824486877203359548523695972501712514278296071842864001337783264193606286749266371796023887494625742104749745166091357053631375288917938945279689681391512290320874670597556959806542452690438369254983272123404603891119975221914662916238954126661765834979837175705907860974882248401108877481896719504003852986198452594849918955825675818381211462971454114017786007337584092524520141969283096168395851491458894713749740576239217481070116630774809638723978335296234468566801857809299172137785554901109075988576333407571203638367954866207956744252500112042528566276215361358545043456100452211681628142479703874344786932188907718610366535363750494501147441888640026601102279542605049841854244968564675110002548431906007423367445306721034768391303635012124691320167164262006524076069727592470087424045695857332504466499910453485616145563456713167761179681493162193263485362220748749628213196693548187053346591441263449724169592398631823211009971106337374458183961905735541856790379529122649479299907496724264483117376910459327860481701985826001863765685855912096469744639639871355753785111124704572980787709350085763512359828462596849608590978990947611707716820086426783796674608682126233860726226191806720645721769517255235882624597666724433489865633698237114262567717926273471758644780652718739765892599547849457021300638393903507793887928068008008641878241377367312438566155365607340650502380389063279235859104055361910654783266605131189248638966340310197858362821521490454505107086125618021993405430721239783893405758375764921599210209637287658638928470597415002766881253499210111530222044170597353954237042993188348264434132844738813974196124338175513347249362760243165920009472509913572783904244195357198707104662546926839328283571125860529554028946520558724685563833010312773460494379913607447575012604892314583905337618369391731905381533007094090042436258803246674701995203119702111329746996733523436041827478129867320870767753598478482200731163688819782251708790660482400286116724264886937385953216431207121450748668563010512734523198662893771109763379849410404056851951180159576157618463452625311751789608878367152568677872596356897819097349043721304278920020958448462192883871185667876935588482410846272550176186837478280879614852952579536844700039752596853859534964044227423100332581863323179050106568693892951075755637204816880319402347337159534656204101822858006610455708929640146559654339614724206010505127690627983513838043233524109267219686362314169239566010058905620384732524298378750419436722844146144180335821509237262490229558778369719710677746386024850539928264519207477884841785394940684014320064683431644439176284322738562776414356899102205307429496486965165402388836018503483186618190334792533819749577607135297593996293310672721518721463339020154863657213343012737460096190636531507848652999926786955014940850968633459849776636170970848752821522378275619428529662062475078770284403519403627081229650536302128344510459839397798893991831938194168248810800176818280495500569213674803022253956422753887050603610852405401703473446680701937966056975987512344500528857838088328639301750474573714979630995578196178147478992302424071575227691175880792488771144137357649223687022968255955544797151211684726103906229645347053798958770076397876582563545138660423932625155911638519540527276481137698863484898431997416710271523544171167194892754198553204884902164836661913600863283568767333402258327866908779034466589549881521061600743810768091368099150924768768306595939264865124403906678633176761861030971079644673728371061962351034075901556794606511514581004390673214512231323373192600492975249395471418224501092721459778423835329163883066374254423283878948997881148898513326278771079523367970835598360962635059424632135429641533161807596059226986480509433389669118322813551599847704860679009111476872087522265388832533422286686186998603626422634572178865105492196594223127002071772483306719417475626631463023669595064924152129358440845070975645394860795566022936122598009908845718159537659429677602694200648798472493724740934804950829400250178129085196580400061355974757583231355749043374804542120584493629253397595916574183807967290458204575220405549391220486501069356499817189293876097400301983916348523821138121879421838637316965294632113636974081376770459171289581697910456706535754257656406933719019014485420454110585007693449876076203303917032370234659134524738442939614637896716093942508706016176806374125984734594331672987175599578612901289646823491417573494855585497168428325979401053749620907021766055764827288457591233817598034618634707099285688253008363523137231672913680696255238808803908006718357177788103599857986874170373739311572514578789340029830319113776621499327477945983904154711488828154300135620821215150698856017761621258818130373862884245121102210230124790576842456100710857817950379158301919800995993632189594479566886066141445226223322676571854498308102924053144019852277356120814265351984008420524306789179938723868783094627741485123998116991883863428401799479958650067933528670788220371810312949021764126495541891512563758610741391880339276258301123437735098166488051111788215026383240342974200166528696820791205436157091321066074169545781391633626571811925351624515575710612674862678758326445437500421784085876240530485890441066752285670067306811649553328194966700056061505439358028096685060256819638707614317872437301357070178897241433167700071503843803483634022960859662651734037599015588207411300906101054557901545834744904266733527306431426325723537531341581680120717289469841163333150686333117213143523051526045393109874461757332295638220604957944287994356629695257333301360688552159522981483845222589309188603722989809016159059191875735880849847167908742105518915101245449990825090389164691527013823608618078447824611261163162533854346466527638587137730372302693358917568913235450057625276839808556795330636736144812802184728709353191363959329557469851818542211858372856854890078969730651558670346847341760491145173987769627320327588301984419223218623269618619299701117130713379863640082433480346632090281321115483285406635445322903081328138989640278629248625230479033508079182751203667915325881962738130580354316468162992387076954882312756294380876492210644513262740967567701234815347842931531712413206129592227048764716111218407981424564166426648100867023746800206975518261277160556385734233483140702215450602123416699939051448149220953680951957445023504708444364685711391601914925728904339106698576016981855999557504349813225026470832559521835128542003983294728950673705308795482688525407019454586878807761916216583722893725611180812724693355702066643335521465386487539792203550650164528429125500468085298253286418578924310423897360856515316510578149425388813951108074460636454567966894899047393868209017809921869234614781348413914372849138745329496928902513972316917029807930275560395485611284211877491496792902856679387070305124029362572165613167441651757874713268961323568618144146394358955747759723547016370498822590338434326648916675616316740773117375485184282455084845003080810769068631923373114983626146155194435414647672327338783570431724327520409833922681603249827888554946352992700813820979057951586590131818149579055582092631202637959354076157259645031918529110344368371301444395079494207985633734392365853900425327691516311379886228265657723462819135218558394626192506222471726725555448353411713972076051295986301406115268923370697237543764895211983993146803184234136844483409788280796873662982564382649559343399744199443532811596655867947753249557321451045692657457415410948398667988306712557146294491583190359002188037214170591526667950143427744997206315694330445035445004379613858913046408007667257172455534168521365095359866523028617738843624078754950192605262768305242603009053191972258207441367063701897357895837292669671296215524697207099921980349118819850070046292052960414358069108584193672565728178803467169131126725823771652805661439761157864874722273843209093687269622164597489716698271807240289809048215362792701648053106857589746150196056033797951921864216432185716645919722931089384319011630943911692911444303638346629382169307598461153101699629373221506920068333353757997070152149236357297620057323571305314743196390433073041768498749258791560089372384905433265538635701843310808969094077691252107071446605982022183986171128497764339576480310844423750308881685354225379604419374935520148825256918681066146750690115264058896699919878615221105126894402492847572493769542017496173705929743638057422717351967510747392853096635782316960165955352882517888156396267650009768079104861080723373811639097393264592189908379378856452513917019677252606859227777472530566865613752283046791926422559583318692417173567003595537036793708428521883730417123467156786836136231132104122345237696483858073169824033721020438653833326904664320384243213736723423018960517940963735751137687400786104892186328779144377506440125975836673875030089281560909368304197032645260552263029983793933495853254385240840899817315875764151092003261164138739708083439018897642829674410649586836239331988874351826776357954226267880156017355267960809444260915412245364149258082817270918608188902929609010490645915584520431392887941838364330629749975755187640576246015189847937304933886976158465130488322248820398084807938708707088281111333146468595651411940083654606208394878648004531863826411144874438215453583751093776612892646458000300127315265981218134263107184453519007131050224165033994285052479971488029086854004562858607264191477478645835744258864829513827765218469574865910012182452221711872816654813204302687064207382747417122539657315267069342871580025812258041253013314112637740887014960163508178612219882091591313272660022532627947419787361475208225395972215257344317997458381298003186746007342498010524944436985537231085366331091397241678021760607728856295854726981638638976654353950295552995757220462857850486968956049050820998950355415962691592331558198895955714851402375393643702977961589747567353232913675375623328132555818157992090475136495669493671109443678885018719859510569378581939046968505575001355006811540682814944756226788553371496065306998505902082165253752483515707159884709097343728230855277889877561867254209167010420860106376348837293710335918411826875579382352122288859640847176629291765468818516152800022256588406876915495284872424470357969473848725678271085803837406862549330477095792612478373203505571807241777967904102820787852681017516886512688884568352797378972344421744965082898660929928414567779516541911179840130349069530594481882898098161163086338103768792957986649187910092866951564050571118014574152915203142398457200514549618566566965470388485823102286739882640435577996877796897662547430784559853317724405781656736270939195926505667068572000988381228449934129786765018041290810807121412945710059861837585661972359291251095802780471866671881839637368726136837953442027749535391227456539896595521554571514842389790009717587926406265365706114119218829948429618193715037720299044037606862820447593050952526462085004798030564031335300689896445894151795673850517598273397985648944260289225953806370974109275972070629992695179696981898227871059178412471886393101410169091190688477377175042561046198716362328045171888458686983949933324944754486794420329906494997121393279309263008041898633654253042951089521831041997329570288549066635063984458586313218403234281258248485774734816256113365084252914307652928867124171717460492208956574142090038121967428251019193579993498275377851832491753624347756601307575724614829941157945116308494224362025941392372640866348163178619808413937555645418611303126056609882786433559700642072012346244007507536744438888048675770385090780055727660387513623212958533311559056597771122278890006452354899827098279041602023865294589102005661001375250721978756266822636004908314488753595519053114383046006668776706866527819616318781560248970707545512352119311203883083734734701098177645704734638679852890741451700641375092415380799292595455918324400628093720656711333490893255150404766817347547938787718905437914842797221515986502005234948622191932283012222161993968633022144860588912001665929595679819985467577833043625064366797808599871251935924983916487580937577793041729564851894656851947451150564971134311357050810714274663987607780135838429648399161906169719687212305794250187289925841823859981258037304388819276098738783285853707572603862744954130009689359896425938101441157307463658008813532842169895193746522709581373455709154125028383244385671824258477963044659230884712860252933243964165121046274918717989535316470809579414072734760422467727162141228103023211936626724707536842249352019472342917304264956720927059552077372201248381712008942638026918053009009329007358935776050526080510373128864680094450280971152550252075821657093935326771493173590263396670536417158986945027457318755126406376246547945936566360429262899429179532690445877844091956602567721264180462347501260495012991425434321468524214338078490208450400969529722217747231366117240685867581341704999993094129850038522203415006863057702384083568692312311843928453740864917196755435183787960441020095146845767832849439082308084388038961800107203390867772361905890167265821340929595885809887947007544880645394639440322445449867754496528381720372893424723631339602008723398988226294882339120349145803580398811926798257220901981823090551011832272063646317413125430429598354127118428687538278030763783685771671459026916661975812932539597151907606874491271685346514934477494145745357572774509234294204997318233795112558116602347057231731979168029264522243513273608096719663765123662329171369002267872339235786183677179996047241821821311082216298604474298691310438038649764569175982825655244202871285381202915705148821126482526566510719025217346596356185401167115511017946970488238124860774478876757250004384764476848180955637607169634932057396156089453747322815646986415541698387686742984694251245016588066984444982705505755759875190462258241623037408615775469214332767892597931564366237598294769079785982041153612278351838165952884257154710460384033826929586839794211322860082576300846334698655679587196746577784647874731351503292655228775233453704185133511071247581329791322024530545188403393026200040107872836515045064742334457614634528733448970807078750617013791839251868319429555381430529535153300074981318247248475899034340148641011073504956956797480388029407760512328479111307053379942287985208590348497412866917559640934783338315074332039265897080812584416270382029914859134646475645786139546923332756588626204982272920173288797369735419993457463047656485282614196519921846763551815861774187130355342716907482044901481568633110447109017516006931591078132328113442318196534871564763639906341975119433892477834736874064853791993288314190528569062947225868627490403190655418663298851185780513691116895870235609480420556781996549722177992303555352382250884190435538816059078227776193537992652321927821866344332935341064622276696558931155744611724487378267712099390591146705847579497017951462721748195469440096388604318036541810028071259717439681325194422154750021026189487684586870950856973578442427250396374622058953728850871752477253058740480702061622557680891858453592336406225463908631611332651259376325222230985344332161937328528414541199813480698194098112772841955544643361785445550327869612549222809927795509632686092584023813506581021617152235813655641349542899163092060497049245908026988917273536902077844352222680952417896896884106991877805084046780974588473788766346552497561610472639549630784811729494861504493344227991661960123721101551147466394442791234037356662912635294089545377278879177851354498545452433676498390086802213522076901685823981583367809800714353209361095081430177398252406343996109467859005719123784397797871476418764927895589284652030118712136893984014726635580168574792496460855813616499047012783889258793917698757394519362405885096060521502632739821577886268013056305245275308944811920877104082986697073498376812908046162419623832178212028238173166394339872890188490760534089591827204654793802428384509121853118889645447902585229987137086655178675409591670917326368693914829818706917103947743402117510799597876164811530190533794339890251784591993362810297432675402540407633371113428167737619248017866710944959482349326472784704155089165753666240178659159103618992758731114600195360479011033735596177912314802513522289413273590056159243529823294079112411656825844648119273970668185674972166352642771331016964321038273340358655241499705159098567292580149120856864352297501476683876917103907978586860269202014390063395297754981772557569420323724769543829310750376816713913686686548886676399357669456897547250452345972951614466910008759810433576330475296463978299553018830672287554817557958065874231305430366837239700938271229204421014546178532923828669570494256588333103154886258742317664387643101525825730354540402431726954458113524362184810349307438461053130327761284682572737255074806739697565031874813946352098931310095808713120302891912370173076844361542634986670969374872365842910249669523867300994503392719973106278058308514914033729356781333093505939281945516883518764965852155371842661881569817428471785243548812878155425388627309743165128738828242701095277337263275925679768190628957460499477615002483381908099226385696158025760238999035176090696486224161190806247763915522444145002477281683522640860409253391043835119485904553370559583946733513443431618128549926594951991465717545202077764976942971004317677325839259199866510964940145174881096333766147674052370229129949935447057484303669020207896493506901750735734942307504888602174794650835196606275811808340839519457368189646183277626866610526633698472404322409538905223615941227513142247481938641016095652748881295899174964043896307666195667152623076270576355101451229355243964914436624656512048527281716555279563253570527668963254707330801095135695674281295362127227340955719616637321216590094797300266490585733300566102345612184163568792661640665742348829663189390144729596604549072937553425763812410267065425052330782252827071638866360592610210331530786547182538346394743729829779648519571871063464576642104180919705620618272147348194637805944168380918276374191139334791059276876920788808734843305652901323646670079875099849126422959394300174778030711130107528878115969330644358789849779669200570348348423812273156520168387685557445652983867739047762269121532671786681350959330963294702551392433188983538501056991413794897051426072170391041087297087109971875185788084193637883071705462731194236699643485053831897660263896809477144883144388361788303556859688535146849077152754140576038576925254639384784192229593331615353881203486420285834573128217085724250269302999120485497424890522933595275688797041943783697027943015051331265535003371812855622538904991267628057139298238412355420603161377819101318962130239012599107108841629389265736315095145221214991432240116633518544271502665952242730692897936734888831021912632896781663296320352078867545099761797277341021619077047589007210351849932378661310453208855360630415641747066670040181485296290781363160721159003338828074928831910353782916558896158701367069117460855490923583763812550726783029328706245813084030778809325336347682230682792914247533142854366360732784671905426724809132655193120810550506788857846436790883734127398596794474758360198626386734507093280178478287573128582714950023327475543267132817889340045373448953176451453503816586574525148721410740891917023265715314490799076905532771204086974773973945759912657202813682068150836293260070558225078736646402704047277362875276127331219362096292034424622175201118697946799805075886292852963067530157095613246483511693526385078575385232965595493830265341341778371351657004123305428971993804001863523040772722272959212563195463970121101349656156022960688493894556848749324185339732454215645513288327073028280403877746888097246148280054716941003168118274959498558798331268762523257657271377454663282634068524587200150931759890186874169498783075778077737424568297530654342318822517875919003556698775705148973509351740438932845127256929150771028781810191263721014607583690409752408296910690175155378707681364743817449147312923686652875227579278143389400614750008865128609996861668303755321984926036595724428578566347023309746073918499270556681282695873928185962320658355842479147956864689180024310026816744444237893486099872209545078927876368282419789457045106042392914745406514511736454597180180551995442894634532368301857734649119411446861509157230116089629517018249448647004557644793248394975722416940272766641170728073684370772432915893942190648067757142133205675844256261135836909119555462495922453591414562396405780630602232421721085825916666345584937440266500938130581450442711942355242021154209813412620957378582724168289100820526920800528563155011702732091468717615371765081639624488016183337444146552029188583853600135737624237884650812359752648229030546710436629196113278679195891144383357366111559145438893011163529960588595833976206668334247571815409315339226992518919521653315588436805448524037929503944165963850314096082788645741925537091521812856808952037845869818368151500972106306132834165777532809175130744757161146173096311099976521127924139464719414015760234411943947054174243245489476369653157580118736763868992559845344196627256014158872766558081621648094359361276080013022433230519821333934912266064130548079890843620264321379434621057936171883177758295759124588092575738905166066074962376435208050858734754454606234368272524016408074168249694460963350414429059746761792964049430264481481257272487138363792258570316987796587948307701592027547058491842795597281625164776970531237110479566501207613689982221937557042071110500098288683136346809712003689277455927711872492989309815123927365573387316964568586725839400099632410178913171239544813881757972326025974079054233515051390367785410005851641317816129490151551739489282577539219534034648162758357200939774746046819267337751404790461071770604410013893572490921112779566345877665181513783122511560163165202338492365001560293972907833729405702713868285870767859592935130397101531909644594058417895597219798684869878052498344052047503918338288526500344250850087299070500172534640701127509871475580267313408540561959209186804444942465678932752676247782429470477298887160524151387398618194182141058496319460412195958552823196450527369364849976363660783247394963600920103275608098847350022577924973324374909562814176143475376227216730722336585679862883976991181486403703932159205427047781356885319431824832962067738619503586160484257155233075160445314337158567759512257312832650994079194547559566931047169788337634648887560699695481411821957025664594277522305899908879939456426346202461850596419353282775595939249003268121938881335453554462194798370160252700161909865615189518931244003515898318234318828099954960661675114906428087683612206784503990885274829243333052227087917318179627763533345125493730853692592757219296351664215224547632871874208760923000237181816363914367451035965867834475545243980700931110665100568624721984823357147117705186510268689020450469780106477668404990861113228490044301041803768163475974026195737512549200103807624780099697565790226127395740072705296248750271705888110729295267991236016931372492503911421614823642768287219898496932967882252834893886083476776739700397325545824362922103941653865974781764807537251059195873626891235290735489594089002846371696638774223885866967442425943488238117693759588278150592272205776347926509124133189498353051416155770195560501546541702544760452130583301800375853374327864690143277682932415353915985052286456773388246854465540319732803148911649764076498180590508704479333105890667152530289783916306037066649756089647147288735215229621283365966802305264740969558618754984036098196504107556153747211807684266284049568066970742027091313402591218292962970991113016851689484041024940339741421537348159202262588677598198636616051211262454683203953248806782996117925955200787276303848996690439340433668430646761060143152480915646938351043868340907998963517429695787903830119861133440936758447287576196847290222743736474223701077035158285803961441813870797125336099152350478895480366365744167962002213945116676971422217656799109594902521711106954429002402178439636712672591972398467588784518962781184837234797290408951719856707154080138803905425895112560847691819380604635069855984667498579639588721446812722796604195130522178477437837456448250716759425700255352115824513141591925050498436382878833502914053605203577597244903280857071938795711335095451662757065863434573042750571672731267891852708287050056326710343427874662853648457900412375240829556101905176966136260135148672130151119692333426058148367117326593146346980514454110654862792916303010235879410715612769206000777478272185937891478909025122881186711607615639433654793513376644189760363992583483124221732173108732898534282205226111082628696401527857576958524711245990925204913658111931112725620353795850988355776771546876696301072494061321881612614227093145786884016810844032111776264558838219676163944540005811551360879976198833898979265232316419711671169397878135062616611323799228251444250037544328294002569677556039157022485379280227870803835593016617077760230281408155535135358301073139552247887936594767379523983829142798178018371324585409655117880412604569132080573330650975871789641868489528781754106527129025561376407092948117126597109895818255255513992391834213491219684998576986660526941876583034080996516547205396982394337982999780962926408998730079088803021696154931982460712625980223731976675741876917372762014325732338819296783045939610225281403732506992079325887401315618484846392520881410557719492626271369615125098336494352904536626164693886916086930925170832628151504821643764585679526035902490701255102375668947705985245470496182522118704738483181914503139227222675772426078976431911463659684690105531707145350554326745828781734849966460069822527396419232550023858874931354742561193269607126983746005282649432930401017771882975799488376026883232855865065625987094856060717070512130040761360959211393148387466694833859535945567809171134192465358245723179006632517435363858825629576196550849610978241510034186295526889748645135733347034422474536567409026971264699527904914953034385124489633801632284941289648617551415015008031505495016610024907730946813729811651557179101725571880963397185929780800538342035989842582290684501404362376145563403530310069589702925433128795473899262275027175609646675657388148381479728708673833590691167988919968473210813172393649556617061930590467558652057878756009000572618842877887800284438402634643178959840982653144834644625771286742605379478103281456437161754255684198706764245404777480057829329962130129618336438592669856884292473223211803447467536618237836207125864357477534243846532933678140367035344145137450387280346294065982145403950109249277150668501060535610094940069801152917598972321137009735681870742651445982407130123044133823158124109730034125082804857544514404514451274568747411390386047013806552759512787431826954512116467588705914027262403171241400336465822285361290409521148458285224256894816301054150299197540687634570899107023784276597445082143241823995283318716357585948908402976723864667452645047135700455126943552951587752855813891562459020790253954293231338444312648940748997890704478249006269244192640217310585474395040477416610948380905726426304354855215250449203617041075468652872991938670500886937713346611735152697621152759164765768417299225080425879579104938603718548533344843661839983056176918828746681002600483376716664584520636846419523182771873620538655709514658115362128718645763338685166381360166151760767290894530527351851455316243646677374830458925962235776473938399712056237241887602604999652682841327142413979882730729693112578642267667252735715513536190413614491526554361548989431679214752195648746627576100003957616246482418832191048357859351984551150358547132659424943660630116334236188396316915154999287588726882424656176862226371169545790152450009180814854951470626874191165042150671355011564350209407536019627144375555205572093670165815399027975414613065240224211055673960497964660074741383007981265711930492447346124234911294795761890558234835811054516223005741128232684300230006399154385093871373009531670523707946474818056187000316161854382184195491978667158612808665635244396116985059093209236997454325323563043496621091162281060364437111648543526029152807099474485476358900154997446769832364228330322269481247095016677309625004478887034138513466497943134506961882213604947565977094089695227820259867137918723125918334539954212004559823763999812717528574224957726074032845036817201631532080192754614520627250742591282994251856846376545269138024251136215303039514918280916174259791561869992702062956162301121154605042079814709709997281882753540872812563775686095706597071647580405434497195659288039017058938768393213543734024553703084770037591838069558033062859310393505336814343441102688262808763559361223550955588189241916708093215896548700106996905781023970209774935532866238405181385650134719607918099295037067831474367876666834910947778847184681520408204038541179821445908775632310905823086276375665873226020454212528427941117427461485059536685107889590874120608927438519660549277808994529809694763404116870330783821375794353321265793763241068445387049845187925748691420915475882559630161502981501215760419290808766345766325251840593772594117137225946873968606264271567567542070456237293738426337014769108040886235229485625290168406528346474719004834088828995471768483719453740723961125205714936836885826504607266106067983074298482453117582216704847027261039815643251936612313900807213429512019517695669446867586399047759905836301757652283159104446407772013259913562451093098232409255037833774959979946191413072751301400274190673604016063305084281009746261204493044370690016751248727446002508768610987422901615364881732166756499303009259741600569255954556186470407067857521130594265401787454833363107392984979045207160189019324655823840568179668439547922487804613593258053023409126312145358653868814560565910105843282367726231731334442127287664920870022069285438032774667074907661671603161375858363629413021283094783017111405891155831775337563863522642778889883535107441583315720862562256869143310841592389460528602965979701620266419416840425361521649130121194689282507928321423731062670360833988889029527672908151947005274865049379988271987794402791127186437419082376438240160178302137569527831397074479906565794579433839671485127068104192472005191430767683706574663091987722853818256292379144092630916389577077539471956790026519324326816286027957614878763572856512619948088371727117653338418247913407032275751819111954040055840614949198599488643650640648823140749484084623657089715722189133115626795125998790866380425198842486083296997508042827921318981654118443877690252133231593497498947959994216827133243887891701351089577290931412856923096511754054470798647312280776187754626495493798425751129759563707394759828919904036867078757033635445462209006244821382054988261316747765053508406269858323494173765319214969090660245098005778060759896980003264519041102790367726554371129521396137923840910002224191617414335163657546923816958500301185087867727836715891960690033859509488618710134612483675140386380641449748208989204167938760778332906189806847573848646767829290134732031126356134265012711677204699267459353788633058380305203796238161358123572556101005178252819020795248449570709805723059764645871197402402808821205529853927420994579042321296427869839743102020970680428410717386649463632798706620378441696524621818020475496153606562753704190347317767760012091219465645567234365654117149160084271126048560046126578195289191685562854473618897738313077117333169492700080277362314648911566576061285774640185259473059933552628923792847864629534320927623172691027422230411080491051379989091883744769894107529734507675375067749732936668843450124459185601123161064890567458655023367727697494614437237938813434567864586641779456250297139734668062013771485500662056165286633844187145868223868876505322938566912597951273679720158512906507051619720821874028735386396546783950308773205303315224679761000492107418725471796619790852063957252526341681067117632926697383669165853085161505977518061936529763731524342462621025977722211316295716690185836551209313656408489288041686398969315415693845731098385456522206933732654890929543105244989177759908643619298771455497145113833562177873467795565207438655543021204304894171127422867194716567931807470624819458221407726460983054705649398493035362624268871898027303652991634922431572450661560801649615014017113476009499897162720173453462441205531835385666585288262885155391325287536650801541377035073821936967759734634666595046322315587862167416555013499516332561173337736679596901770462983084087558665119444831851188880857137692960848226378886078535168019805730546899115369923568369132500675991267109186057884205289947091996152566840459306540761338107317141357220358903449178508041063510080627043367694473385567855455471601906032858949222944032431754065207514585428813532594427021246910131177008954169000733701518189767172605587890254969820192721281080829876786986361126864480628053003087060013139882746355228288037545463889102618453352685925011756928704840927819882195372316058105231820125715859272024724236329687318884292683942231137910032793721633636182310877715478473140592565663943489734944539730113150249286369053563740158138594951330215967808343206650552001774361701939657028691920746119749544392223404806775316492980262171919770359000876834374140080782014508473600589147701432980196553304695704105164112832989999437688052615071601434014793810623946229819685446681863390784636379386190844258121207166649005605325236518893429492737401580449873527529389522620895447183335238619316078733308755979819492127625384836092612403285497587275541350741477097903573574337969684061187459749768777650457596302546091830438453817402659162839734508520591208018888689736735106766641518234207037061769558729513730412299578189758372123447806754674978232149955465399180814012534034434292940090272584765147229299227099020352450418189187767245589158535917715584437795501050356101158460532467419158286919477579254361179757195540488269726224284773015760687127918257115544677521059119744659949229313399098545994412143711904458702433983709234645353086833818252908225332219603655772057215061071055794607669867747631268078091023893996310531029415350390886011557259062353468823845112593437622725118776737832990600003400762410562440650171805222731648605250991963305197362728185281899742005363014055364659286114914594400231114060665026858453341415290628627812275868243758696486133766963073512259634265087497085482705129944483530573673206396400575601476314502062072919595429103993251290653683349803582339461256522790218529861203153860180107957720093337256640790498488210908139884005665302522764427273335921754219171295443003102905631091735665998180906999115378149968875147635838675871732734091380871947042691306639307537517790624394876776331013689523222767193158197909490841256293592089249719212331064534397696857172254539562969342635937900802516402793407617032739252234280453014010398229308770351821196505337251842607514760835283723848958429996268222637655090752749861706066414693817322280120524076275806836840704427354913232636699608954641483273999216868752456073002450217354107834664505773925759793321483271916931790348303544753515667873310021135535627903275212154401472321023068057654486588714847357968122772620651288411227057602986123180016911951512081842914282612545358051359412965112912264246744083615891516782491162020356686264434235444960008336484226497205858772182323092653305237440167190835251100829062420604777059491955762535718556585405211537898639414434624647540445943608932444115840839638373832650514940209588730531380216172460896051006106039080589813628443968684223367070518833311916210693591152564959110029597825021503545446656178034340240601655842111097403141968087227628215975922391762727557587653954790880053349498223588226267642333292201050917361022317089634365957158863174827545843038338385853419439671138703648492608662945801278392582023045874429654617937694897394849718750466878775107215985536812335299640590428311076711728421700696974247051903710222644498558500175413635441177412309944239123522986657794324050448833612464059039664236910672759260460023799205724408654274954779755893154390720095357335523329937204414457918891407186078564389081792246835037258133483268035448109152820534489678834720720962437388742299639623557879620432971760554817131008021096289636948921160450487433948432899760833246055967532060942516655813431397535060224233228297682219839087002935124833145725346074391968733982128566629023924966546911761740201518778983979113724851556660093513154406148317761643442728986161176852086748123637456668438595298160250987087803203596506970509100131958171886133548521007210883407282862215311865889220825225605551048632843224656942633296773614257383105419857666001706727479221637814099959297688910153195980280412493874675974918616372393862843473413606384654080668625980087498823902100199530697572257105903637652168569430570932624854834871027362369388315322072478018653996566181817433448614552066063006315905519097655668009106326314998406350730571188088726934729592242398495811641406706565976183314650977790421029851649710672316687238234808128180995324994628443274165274243366956340378446297909201904453701428369467479394141835101167839553668534094420034759929178488959620420681864011280029758912573987525319703162515596841712563255275055652777274388074732714324582956296444805087738375363724668190173212864009411350882143657457855537374496005814245504479670612335861830033229007926350994625246986057289693869255288056131923107671498809561311614655980278076130790501972548110171333076466611464551854422358159256622165113294737945970234178338539797194309742729475118005683744948594266339265080584854355583939589814699747846947494446426693431571358960902139071028753683651842042870085619827898621535224312836327165653583341199837122504160406034487955023014456321017037864837368212872575749273568301681828005746310061616396879747166586792237465790401751851637850258195327665269056879599387835470529572883175591619653577738497600515188085811708359298921174167264520240624037164918656340684265748007062768079998307155651528978593428924539927560944413854865345073582258664291983759703671937842675867384409751332832695584819260010409344428229284964574732592981755241911849730258434112484973504341088988272777168378149002077545404131291264371289375644373007531906270600372780807870400219417950305420588101528836444384686714298486107350705231409511094819388587816704243197732783333253462586305520475078304343629880783015650498567778577620879200180617583547297547283905599823620232241232777643585087451370830504225306871991814784106236231437980102131544523953821087331780515285193011452816271119035810015591357615821961813855615172634218905481330269919799957073845991767252960972589381940973228255497101240953930784717347275556017276622717224082427851529911926508194541279726635514743539674821946415389976533602106833796371068644546316763258993832884609279425628727712973943247244059507360288250637440477319930952474679704230708481374428304876768554170240909372299814745271540539668924725963524051883943219030854525899027414420085089802729537950292637180331658008832267335336411039349071005553633999033033082136654189412886487126461931439080770075445526531410657729832633590518368115654892204030012715894486059893575090149922748427131491433233224423525068483541083779170936219891374834423088914053942822019916617668747965417319409744205696365699239019148912740216896512103436409820764630208241595401069398501114836956276242834690889242533309960160803923652553852484916690522708108527061231407837625425014014956861574526543065743537068919518165389208587707995696113773194175823557033987995565337344473155442068841603236588096259654348088816706129125736140565803151984033528142673430237265701683333676184487290144141936199084144687902465421843954559092310379983272566747926760538563010997461530101828095780576884352809258176872540756174598392687115761621576048152919470424629778663370099303931734480887239318141575296668788316184173032873310760736683720883472063507773260001404023134346302006454946875623333439203710659475931768153101908946190371581804093369305860576277918870419602116772120967146723261351920565171019487912674955538632683107198394707029566354212387842630786661651496719084575961791988035284076056265779655143623461744322647396707446569899211057077495523366503431842064862170590323890071320169473416727628961580925302162814455855088305310511657235997675039381693996711649625294379714108166935640895897656125961963517749201202251722747921515660770560372151631415108658005092851400430583522491851502591947504199325949677192893757285531594764163338029013257408843924914640356572375302611777738605189461676751678258362604940178918130468531710091159568897503807959620809463593136804839861994681037768701035617137339998423468779666185284298205341297367351552410592429453283458711143568983289213765241163044003012427253211751549586452403139844716351748933699435887432023841763918209367357022374682329697561075692239634344930452376217162909513998984933885912106594139250773584057696603969983419671832918414574374878935786821843551736166807381239309201827597596402619965234887520537207747473924013532593983145087961525484935885824495645701291546734549835045017068339575606065836725590955344542151994800724422912779302121865344989523907814208000305874375519971148308183302192976938552255614417632547776277719889420793931766829809978820710481282041537466608710350359571985336215100247003986817928007542256049277971880803122814413987663278388434870358759441681787110586452144144461881745187310233789411807091358149632152054430795124069064880064982839120225083582545217879826388539064478789766748405772019118231915031369633067473910488342687412837607130224719306384964671201032464325535572928710373032080607367128072475869747777051179829216769157553140527182025364971105477365676871216480397743897788909211999030709168955943258244160000294710156151337439749898561990033722787993406275208000168980581276819630408367020260411991549442714376111555131811336549185218273253187715447069499543374489326863385684858583661046389583153613569604316746801588787789627768535384279260587415153775059338650430436756278596151118061484055252181410943299957579718020952580967934400608340703923746421109068010142364937461896863457801786494374265941670517372073581767283503194994335406201242473964600142473270864423624112568907750525626175954230034723364702451472912666422100509424267418216470359153316704954323821535454281681123924897250413470325052659979177961846953239819940116836982694239933637530724251993203791229827801922402801941641994772604210856612717947321326216895338597718781985785378392758329776689728968091775371644732703664042813956356081214637675784584248406872934802924989855058290091587267287346622872421117728418550021638683621827282343788878911095713041596543441526394263829672005553011665906160497305497742006915922518469721428901986743834036143059963192254709315259266145846459440099364627958336530462981447599960481712897418283397848460262896531811910670867676188401984591007034665713824386036141835641488658500661908738267074548239677972232584152693985119909022317415016888370852606704234405101983020311967844930926977905147641943862021168439004438203183017704939661838527237853550232740741608406947098814576571759233840768869377222706700476573548979717270725841127084835883408989050510649894844904956600839770807640614975412281340624997136380406969007655638709537750630945036689877351871380971746658841276595399588343214321083778318283805360199597576266055863746210018304886183566562488511978711585885199804209590481361513368013837371509638568139039049231701017250312119770257167056219181374575574627983725436865459618119857611185355555988735473032704076155912908112501207241313068850339718167970410541330709855830105467369915035320531872206276096529954122931846827184411588434627681474468450910842867109924714855631580978252229459801196036943330636218206222267892407609844650157162662862768640102660116184502676880190166814597485688348455880756427983700188271828566150482519540839630811019751074252407994430584167218593822298540018728974462998961264744858413931455931966271173058044982605412683492176264144467619725534770040892985022723602590716749826765119991393491681075683286563202718557656568093749213892272534525015568741628969085479268704396625606902348767493587148464502025791815082255435020963727344860722649148546774567125404909602955573832611567313388235519472032082350355629523273918582610976496919452803040029318760136606321249246143402112827106243615409686283830273666214848813874326908756503194895499268747637248615765219539594423231169948363220362512189030396087203167923963862405040621802760739773396552834746776555878329941530524994363823033874759250368976970068962937739104810228706591872706820804094760416503585947272296787032208774219985999724252382924910520194058042775719859489391037106341642577467926978750078045629271503575527225849900801361802985561071991130175207118249720917851526240922886630439901969908430300397664961239262387431199796233386329081194041253616400185308360087785155744586353454019024301451173660157597225916722498095326035159231371276504858783274059285338132007755265077500195428788707754098018470200264995034023242394631270961647959348143520888099346576481224425946572737843830501074155232217063131867229361641928294034226778418940162429891868891557957355897723637711766332628887411503394688214624195727551785277260144022491283226633657663751201290170896821310272862556548383999757195556628047977559067643579857038730310938054267864461468064768009323237319276658928508174119940235829513872289779800995334002412276356344513937805959913159519486786353044465871125403542095642279200519928409966399448179201882019134080900543000197719311604013042599410535558001597273539363706989394366118202907077799369356275384600113123584227756436084347315028418911909739228572537934603642758678895558724616348969935599113457917753199248534596313408827323075670480119321517570405630175808322710029907807519084296955009214411301145158396974533050540482697897618408442847822888604014951997178469115065794560743693685289961438702637603314577768755651161753337669213227696974765361608523517582602326449531347265848226444843859548228728677566141421879431453236206528355288856685428968855683781456196015423335192998780110619493072314161190863385511117890477847164885914237538380171364082117985060613806279871498078981725665545924167916433853286920532031078722871075688897883215702521889003778837495208859070462434476595509221648614738560726870433899600881377697886578396009784425260962352635953052662009107306318144012716271215286056021662739584031056700587403382147484519877448282213034121753433218572488744325826003321015991512275588227172479626790713614358304890875000444753946041599111480973146135671804354542040705353541327967129668564625507209646584360792107604113383409541662958250337971133136375627630602658769356370190555927712063316071514080029347001573823264935749285099833448475393002831853658543405170403108566710754286624149136310178525154322184500218700108616317312530024451657740286325631745356400392109739090267671084758826673328344768415204206705470205589230637298629653991633432514006437773243219475200463356434501472471257330971694530047921903037455217547162527107624883313045389396522774577357872953381657524812469063608092222891423591349605503868909425238625003592838144197268220444696225389380685534776975335280961798021877787661119920118773737807692867407934081545315214504725403552943601858368610497833022569264286479007563013159672130005184935044646544266555320282648402279838824947821798800880103736050077439406508789905840133664907092300151578547544655700421021066648065826586190445731779331683526191532928052151586563660154366174896697925209968146459922093151655212686887487789579377946079488752417482724801674690701468298704229084169156505333122684102545026114160732858760720526207110244966129885839802925938098226861007078380041614626800222249745877461296348888464755943093043754730540524420558473095142869129930959043422485271161416035303343906132822732170205747449783848307032728032405004427850626650138630829947325838840634329747131965644915129303522255776094571476572556477476268366757547202017974313125232939544446877693038485596279684061134291283465173753933418883542045819959250119217051553354331357945531827198189472726749711806915947544680579751521477562981506032348590557138249455171539736527184277278835700954603811202732648717917888285502545420264362010227463849291192019193349451221628282022263220890984104842967372878668449171458368429330962927990437562492124554198571269305479063192599141057001451596845202799266066345358613636159826963555123252313746400516982186869284372516226446596589254798502009331034224211553944551848043183978405342928946778497568704937579075548803234747848580056786245717657767680304396659453758406771119260471559426063903137740888535281027071466387033660149162208715449784698637371635427708274598988812924195295766316330383615959866205189606724723599841632875709206108555096613383407227776252561890519084142988122396190900787425494594258625329221723859931748322578957728836574403434714191570949306441071155097662007210404471687810756750146221576724125500287092933805819345544581867445531903930088495364748568013555629891893180309637980801777337716645919284314371450644377976049713573616355229769853705006118032857714010142121712079006587280041554015257357838011621362784715155543164411368610489796048308051436670006412289274628659549570303178951385409722271059957752841516071482978713615342234156066350612053675026638599294457425891004610971576326261589494323554939125431963250105159403435906554763250248599568820893667826826208724460053790669245466976123383730869052448192463030400919048620929025194651512783100566287177659088296527037598060611966398216624088517285470679208440013783580791355841571014147049402935587513665806910017605077333184421924437505732995402887346466098623055482616055466911064851387402649475241369226913718197191386483905397658596244071394100395815152663302813587834887508697260468273383437129130664168565716165999812143060571679464764132369506756383635052674130297169345471032062057285760679694392421218400553234134946205651969571939443481973442811168398258765783326873165693716308408085056232577299897808097982251581869189845187254486358248944710437029187524483007161895755472900695254406832345963926403297107163771514387144186743288938556338084097502846978518993013250098863050738123749579834121204385182960388358310150968121473666053804435547882638282333176126968012669002076176694759512741674107955409827441659516397730876129296785014901764477913380289991624392862179003201041355026839066881326020118461374771228357008633500970116652761050801121296991475780114205086395754505746023270752098523986298519618362269557091403394151005263084909100388896355693756317110271070092704897881069919496509897040952490567736638578579093919958955546446420862065607350996107803587848468879168762759240964226702909102845859475295985920118295778156917828198635517660787356322821070390776597539297732190596974041712042941050098445642115632311160530325277854099376094739910281102389652696508699871850225048402855104841265651019650672682365199652694353999785339289844483078722795436603116242435153574873036529815778249166598279160702847814620627202005047886182376971194845581261605268732234457725147926219632122178896313280640918295295336101830067191111810545871148891908906032732226190141070768877099495826440068353999318552118842521125918347180392086860069736580955962581718137528763781034592439742425910960739674768903433913417309599185636556195594797407397778555364980948773320548233468141541833211974857050661908839631305452246001471464573742751990163049405053976380346732259727927798077479946893785978447930501055563729302551427907652139919794331228075330389158458270788050592850663648090037768137086338822581307273696581516989360947819819759058112971922895173813052073961824612379733886872474746378172758573225183041089623132885129000074150110825168663253547537768463149767330080292595817771396584330182455134656632377249600938819314288017032625092974006446892696267793877946300750279990284053145164078331835652172847088253326243496061870483691555337985853733954570321206645751398131087545233463094094302147301990132691189780355559052247377150846559490231338506301506484057514781035424502365883630567296206829494317927150751485629675989760940544149626000760386546393379347484660345854920441299110662958474166261703329465580165066102589836345855433978947666649158726025142799886837177196817692668943613296755923952003430682028739243327728511273456487249160822377887902922941153709401577771606618848069649363651426252156061597121006704218777359841563000414534230866528673674157564754349491769798985550144960882301261549873492831234106886215477845414153596714984277140405667591703854012430699591012641642712834542066720166036908846249169355955494678430434838868909235021270341494407983284977892762631992647134965664054234556896353458253376910667933733129911100396360914197977002436754555876620483553772705115006531978693444570704747107191997299964663133406679274616162639730845171874986352266247555528364859327835785476777480226632780196494654431137262288475118440630416731247440271304735133474791062347372551556185385667088586105925219027574969556228012892457566692116972595014885226165725595164575472326403432251430314484952335065623348831641452192528050918188663926357959456977310579595243329458199045935000459535508190759611464917896662382042864953135165252660371330519950379177333853206218211003859478177299341249500354475706543596248487882630017835827432779618120746600756383878247572685548515292940201025859593290775347118833435045162688428689657382773433039324380094029240849291940241452793112350284057994928739029731202889906966598402055767605677643624604296049063663394494861570187429976575265795494053660865926077862952467353844529851458236623241353221168922526408561592863217267340303379917085945752115412447139147682541475709891510452831373879350976028505918742606792108737204055898689177521094718126846790714156022971748903205294243304208826231254120751262662679805355128728930011359121791753424291350897428550770023907889291351125653524712781380281055467294570133868523883450771574221458875666933154356988153954271446297214296685659786265173491923211848244846208663225537598162732408960884595928770817749602863667034940001335553538680203618402596268711237574714986126099540114265008062381974476778558235758830402674062812078270456608959633762547190677117449039234184935956612868399558822644450321537220574801443314156919062207077298237269207417506353899883831693166397067178570985504526798086384221017009284500488902620526600327842875543342831072065944925297914689831701382857658403915328777957043810544539002121922470349049874748534063076928294095923732005691612819475104013439248999973515997992598659549640753501110526179601458534654358503379145706224029982784347507310620798707850650222826697841330030133983348429243980867030625077697684322490961018927934034331609409133831972495424655882102436645419318098907987566645523590980984755362686872763793773524186379137247443091278570499922540465675044245398155100804005051948162059342591272274528109450387862152441825868728320082679475291709810453063939043496946736383439092634091828395053857278798324676821714679882510151190741155911581831361505364988858987704169254922607476172967091765523190645333300360525136256539226443275448314503336797119640046473719169602556787301132453611442053464335841565662135805949055292442757475071767399585812914359328999834980243907476006261844592007972602245159897502881757861843143043070345246126436456231259810897743905255736114073814662986582843813286302000307902367779050004853442614917866328547852927149347009171084090298192025785736176637305700858766439491156626066340606026168091045698968575210940012102670296187597639867552650448146366191317215509259238667418027260846694610701078636976716861239351230712310089588204821217813803799830067692888017957083273427189737677339699211543684786327258519559764411917959623169625256440147353100866471429091866714318692555090617383082422337260129139693656048118589056180698436257469850519659538587373344024738756189877303746259217575269051596262501380949613922386316601190524931652079674648797065529829377044916665888220451247948011970798178567423130975851930232420715788711631135391050930330490653907678624622648304857142632570793657505166827799220065160196462394722774247293400696344101891201892106646573325785823613637200157965073032830437520667072416364728488416092753862445274288219264854306721507368960117734688620409920427784434402634307496535276808440312080571456477989196339666879843959230164677324162797667425891319516605926004403695156947823658858426963240048355209853901784044652048319560310185834546213210470559202961008382951451061895803916204635044616117946965986637800622878832582707565346687774004901304504788778229495232490711512947492876597471670790041276901425872614311711354256283999897143665208156935949924832225875377934296772844573434313593004943022866075105778403486177651884202103964392340420190366791443198932410545731124636529084859166247872558353277367597728398707158367893969342001667245242396316690085817450328840526335184399206099130038876778159586604080485721931579457302232787939363014580303993873788188221544635702374113694852590905079507748608781052329392975536156621980601117534368724541277471147699400295081294417879856669680143818980370655566064444879864117872346988175365018411829963477672464499141358716003813217639380515347680740609604290161489935002774215494412531520386560797885928648878949795488041842407844875796774330739379032804072770389462104911728700781820641833912818009652151249722485572037503460381827021072078245792232339799750161344150868340658733577551061975933800856204187435370870703037584151538404718799485728378614742550967978894106492456753084385532967667110516203709576583133969053000613432924886417982150904035805276189882342406934867389692684320290903050876162900591120517236058148728431066949030387653785756551138474655245949911938037912673006365229269902500882738865596761542254718840633739167679443418600731248871759582902267810308801367614869841981322842456819632478488507635871503874605581320160547412113337932150495094152561068611233909319062179896046988741268762281111045808030342211211609806642520534026930116037787696691855770970733471637151807685037783402013767505715127226538709947799551618583910171263974974100249258289024364051778846723087484305204991305384866024088984940534757978778766198693139971215997568237759691671873115595455190116449214991803299425434097729259001275083998959943637448069167930099095070446034611884498909959833901517165341704362592134165973395450489680805146248468599999672330201534428719445642709770586731924894523625676993039374394815776913934196479332517106051677957359400867655165225040318763506159290079467219195745017666132366187931799933367513656935100707401038340302152593154882317792669169720251475417323142522769665908191132618808403065803142794747023753754612477854125486600417020006739103765886609566366521132434174253903868737616501818272697000870940721533669159280155450535449807500276165605908432476995223942407141520339849413702117368542716628602089760335282041713921122323729120887918337006420833446136689219228300639753378046798681317848625941897242968755016183290730004086820770498489104026863091569253070350901897628337909010368464448917721698295068346707463210077577900658148666698759573820114544156357124508111463276106366312565291040266819004030538008791672064827477250053038093133801303434970511458166703092556976333669649412374922352753811081828442538496362138865391344909038846518786971529378565871907900509361956566834504572458501382146547777294687379900293263690494925298790812438799693800098679149689017108587925183897237477134342609836881901468471881917506964066707053263346480031063997277956658573771144170174701168751980888903383306100044869546180794813610755583755603612926227071176538745830689487832124970396180433154323094276645779679767509471116777676884159980383879945159809170167705441752910325749789028817731429182995598709206785829567982365393988292413475801194236577421942054290428933534320160508342452531611902587415942116389845711631019820975839819819344635351112739826361634482901649789292286844694349655486959094315348609762724092766620486428514464501121950419955332909697173178164067323181106204976569828302114733589048456738362639233746491014789391570446367364841727241328550151890063297745221690249062067566299551055354561824204332422631087330082970378787514607278629851954413017585519585016561556140860138974327260351201317768538386217094497043174633656589388715093617676451986463689676753910977523524600080192752748574537578829966926817541193628622878457602990300079178094602851033920121340643569668245717921703565103979684579143850301542978801572868215101784400573924228486086982867918296283561048805594349568684427260299872573967627505008850050954665690720094339005343580142751052804575032911444383169142676959343074532578330213654318663293952613727699490279624624704089026755933339624590929956037810365631271033409121490526110225795466076792974254776722201206662538377706377754920139715883251908427466102297306927310931168024016898790291960333690376556696846890562579945066617326643972702838653422075227057138138134640133738892804617709737617061255192534399677922038926052399009775992732159547720464106480108577584359874415949273141173315401228693311225390523891395222386536666015860234423106730752410999196627114745723419516514867521515597611901603544741146273606830474052440919072760378577425857172780591312276010825187158497886069493949896371525144682053730621278363477296976122250303001011048111558509768035149368694280091834945975284010115847083310911298991215619194166642338214416742143530500253692029755701326219660057576299980260281349218474604396022596622244098246618632312453258458843643578730029572040833871034437583123280461183404340545427150889565009280187176967410911350609594621416427707945400643026062777636601950665640253727394641094822098853320138603625576415574626872965994170526404726010680480090843829897910308272292054505852648604573814238251154456067038798868714824319310062101034512991600719214431953443769395737303459728550674203512050987962991312102836204249670704097649997480138034684623363655152998111353563092392374074152529037509410706597189379004589249434955222308406173691900993289316006672173498836087195458856266888399217037439490694433578677108244196275477981813016221536255816444708071748061734517840245275311265713972575362491351332588548869634818591549429370426031527447680563362818790788146711006220271287886954717784316403463418363747132771979261385149703785578448804364170156577098715125290157871686301503043995070103107558863362262790430971034063516716046511151042747945375733340574070056715787101939938685493749775699125916248352460931163055084102933870515807604524808031165565320515444676263227161187339418943203485241296195187444987538545839220617938198973330706896686450836643177709361642557600982195907622596719021528561428373949992317001512876829029078384132407153121482164366779944901866694578674765445600762091008052124019011556061917006069725188976634733554785555425848575914466117865734359371745830644224343959344783546328827408321061022571550919498083381769661876970482058701530917421739968363606119821229416082635621098727369900433562953212872016474431524357775960177668459903554729127521251179920812805902634489649876722123588700006181102213574157762808116877509934728007928462085659817429980355532794470988937594791370056019064462494550255532846583587140934765115228625293714368332071236527648155850765122594381636963442103140250406874045587268208686794577968497950609680389018848191237825032434042201032569897563440138419270759646714262269063546405375146659915399665895003888300548861060851305935135924575230478248890990341155109567133813392456833894919062150262505286827627577322268071687710948498093401893179544649383874353986477715461446890681463394324697396628811582811223928878020714474676705742837270934030394909276506334308031477030469122428143089545685159802969427308266201925144584385477885885063358717434611294133416643640572603596997210749941532725845371670096852532906726376611807865339102920321256700525094500984708048256710267789921171465535449372802391575268582071166448683601586807598820619710931089331140577064235363697031547289744867902452231413317324899183435111197986713280892075425241233744628267377146899644322655758779940379557185749755145118657266843290341816992319350485084157888347399517702484228923302608105624697557993134948443110812646463436881889817333316723355972532960764004394334908772639810035707948491095649803410301197876479864003310720333220562782359714802675483746225039138036023969155311643472380739682404660277375477147554967310207094950433505279118431624675985947315951566452784065768995184351583863590634776513744192524573751048329400500815019257781342938458385967682434524664234906475210792955079546571817741366922523897585902112404211899980092592664355894412948180031020063713050235565909101998437280429519998362659256712542710370213384255621744732127454829642332813594570499471398549371197185571848743419807261080381114847057720807665200846731172789867912837773860437597038158387050813669761185409735174931528061130020741186698002228072199812950687884146101314702327548611255179171765511905692123653486629942282595438961976467957065435550708647580552958550889490213298297571267128031827546141351242562316344348097224672258425720913296254718283388988215256719582962109732521660941367862795066409355371782157331331363604559930831790602092485308787504936357806190072035356651478689723569577662555602945530876776591219858357472288037175128818727098924088573915998609228035097739277399960708132661724215111460800647791048298031750052368700185292330084968829760602310079095345118266517452062080747061140564906544974261480233337524213586066453552779191109475912966296905443097597706988014582680050974563529671519243995342856777680355083619281534359533609081148184920598781444743563107498935853853733365749219894436447389721431376197267844328668528325833387230154692723218402612270419935244562188394137830608452554857281442470074078865429789090062660374247845817645076515865885083767930484936941930270445138590005050193290938517914558568819267680980725614985401046444697451702839167443184836347166016399629219220208007923686883321344215085398461024296375348956977595450053116016833949820564196882505596659744629333364983007511667399010870873755656077825238333121066495523881865297646945142226026244936600975224933898806461438944083603525693872824663915739775145637944581665102975958260199138960911341931930925378623066835424086868135098047539932747914145561868244711035544422312208486164798794993427760854494579096562549522035843248850921549678878528052530274143892943664583800283337743820940768597402621988962634216639415063738366874982805806790249764405920433844877457551512336742622500161884889468596091088149009203841066920945121574373565399008786214560019794416758781888011293534659587548592690514320536990223189980013177008462884290243051882026654552879556841914744736602218897598204638363535389358456976264175030483995986179268958934471244412854947491040677358073776269890082776226197008701246151862787129274903016299555367440375516173685913459380478477906993630928211246433141948288248442368351129058209270679302410840943661145677164302015339579016587576798175372073623689721107130763250233570695746522485209806475179934462446802657353720888046936161672241818021251345764146364560045785145743368762371032653549310496353935128924350067931218590365934136084928813128313125332959180682837876172352180608970461689376348065861898961574546141420475116224157486783996118393028448618346296289227209616836700546692119057945061640227805902998631723580605615144310151924324622109376740255444293937855375801095080636002337799456527534197967981497324337290332007621965265006831600444319379911985408395373565487187617301758590252818137151857685808982033627574255260735876133533975999366174213393296587168285384542820020108335801178466580363373685915481008760901408951547537242338636078761379654426918214060118811042545015599377561205714709286154200755495357769485903176113263545296966562209952124479829082566248555028371580778397011432052516193804882144228030387505601823462147051679865875739422300176195622149942324315995581177567923723835661139921373363273831387130506207510496658993035835393814010981141626197820518638485707932306379457983453763422217957626167642915021107796514215645657386328899601252456942587790782804601800779053660840287265069038690781890749135372158969193775834245277916791873676407421924402044778415558461606713361830306781601465999657741283511814434946893187685248864063058718866511751012317996382662555105884588495006525489282544206236188106732940124944426038256174475475623114843107845261403382749991122752832550935654602777360941810098544335383109961967109111825644310605734954710132137395181202902893216116137797291392377822807651858561963508698374988406859748069485870708566505400905165040542011112630986941188989158937374049446022099866812966432820835369607936525432228258014731089665532147593028007396049068243332542165295208924895497770686928526258495271712441594779053623164740403450986581433972963659177727568055478139669491242552490929156743607705236222461355215680550787994128188723083234490794409160210460899322069534525905880077782353897904828627001605733597687465282668531903678479317470889957908667262789531794365750652557552688476719076670301607390160936562559975170770488585234910780714612055722159423070825436723116943578628093573696372189014472392724803158200860817929646668156137112629477690364934423740860039970694643926346929106181036217737795906501713574405483919070364746255459241610668123111710613465194947314859806664542485184109394654394239672604055208683458534008131620776061360891929089595660398980397579433303806384386486308260507852181740176118922241897939587832019119391430089422915086139231951594598643543318022175954882020524278545272425888626853463063438407373951469372448122125088610008450483799914919154804550435341548320784542026497519046048128451795887765155019466424304232062748989892249620050698330734432234318691686371493947908996258607683011347902797329036083879210387529434027329997822299085815764685255621548109615115867619963129730862065875198664028580927385634226405180033089818026721886817869277810174068505489905040318348403056738273907291975405778080514784793760423277041266465040548402612074906837594380797722994235033453707719066815001733323203475003816955939496064817523582767809006771500579664687656529466775598042759348895366684818110415060133117204036229651000800531903578103243723428113242760563460547277498001669803807900443040918995293263450616297200848151967111726848031759762389249029341040247338002248950381113783528012647295518802329917820942309437090689126753911595539825329101875376091945612388398433979427963604758827456508381716461827959586447586128140746803151684200913467643955598343557573811208435645733502254919683516786874880381904293682007690058358492016899671997518251402340982666763923659710594454736475914434075941469811047527841438344672898638510432440633274977542872538240036348182704922434147645778948262328703005358226024919368644759969482819089855237595539659714956211808241846643470585101800417183167885489114705032436374068788676280094480601616100998537830418473705223263478928008190737588646517486789211421605630075871541329105345875485709053160983551382414481697803882887206221011277952834945422809237488283890371546218730742082469592904414693754141575587831603810644447379881372550238895711608136704042165605217438257728113555601527515687798581271630269231546471793047489756182592684239759136227222943787524679302190912907642607631188181720098045171403034401596923649206469765194265488594323359493672817955868132891178292372178141031260040060616927973341742964119393615106803305769179705615734312306920078078054372409646087590185647103648372622119624591871462844420343725857422261382367387545772061689345756964783081219699123615457756302342399586752329746569974988911911582446853005329465107450595022273983289316110302610649452570586672116824120043838343390923313778348402627412161187634759629808844079311108107390938813335535088543484013813337028935607689843234193490211816386380739675626247632720539597729689817700846274543835767128322196088205033627025675325472796241279071311122041556609966944915306297509986756011252144055392703254960626316820245975683052316107191191626938276407564583074560420945534750007572220027138766140299890760926931133189465018251739721706533028348909662872966466181457483100909393094206060628341026390410587569033696367915933373942544288937073259046658524988436761500932979233696872807815520444108216577822739109471502057617548151859404389692400266031959395001075971643198442152289774737308924931364053482274629966883651880883469819750394989209475882870054467461311286596926585010016888913012077066035630095193884161786197685993120732997471014330027064747081023895402654850512297661405414911499726765672667193307336024650762645043739545889667939678364289074010589134233314216577532425607259730587760551381945003390469474067828836601042517432243204180389191513382247390574260595183217815141121236763799478448771710022780301709917597048710045796501714601311548081575409950158212704450071685522748944162915469154655969197206757858088929661471272759127875070558676745639874465652109466270720384550112612357037000038265516307070423608485430614122705495912949808702925163438672011148119337634496282316203313429744779428868556333467344272774806945098952997215619854202446293145286141111779143567566621376259038901189027217902110190425817293494051146894049354788667710649974711712582939025195038091053882628791337029186055162043293641860240938890715964304883767148924142328681177358351120936391343372592228889737141746768268374296633856479288059491252149790902113125490670790468093265291160122797292283148123626808885181224402478447598005750039794549843706855580831252267647229425774520041909905812083761373059530231246611646047116783943819926527878537331994991117113571347440114055691890646402767920086817226274413680426131928324709525779801045234023417186592649345423334532611847339991286627938351253981521628635250062915687030470607892031690766729027945609772204229283376146075832280935848146309963114095271795930671764808480673248635910697488640229366043659223852335114890004013111696297526267092424139406753037402382128378987247960682076726440752180382383542111720164571750036897773990438042181955358001774932451912764449969165060142275312224442261577151453418044387342911155024590003535389241438301212072644221660450210095742185474023938435865789684661127118625940794053900725114178229409219222524119558035249921649932944677713253203707439690473332110835131543265614581102911846903971385519100307179372973251944840231337642033977366260175291436986498111802959928234408798980576738315254331297885722952860584979856375535443125815539618554620210200524159999116081333893441326435467189075823674745835715221859404952926549191058199158554668147025568046604743787597609238225470572779597731515208295999715880676945177963023623820028469511033605860345664106685334396834101533982482246885597876314067585972802396164430170046877299317401459519662153956314922143623077657824112315837392014539705996077661925794602872678639844897561772593267189330309190089633263453098266882844551168060943106872869650787623993282286466346764825694133175255421999772931838478025302993171090860288698421673153266507361979056055496516408309375584501067224534596747372493772464120350195317999326757416040806098471435697847625994427372422109501445284539233302093242208917019322709053298649599058129694047989507467674345709181525058946981469871577893548042202945703529317908003765147978803990708623227458613982267223231662837314217243332952696674391851128237909252060483283435829526969887040976833957954089334292348626489651932330815860309190289770922194018732871018123868745445906435537964738482442840932159181769047939386136756561450935697689037622008298863632799372143550931616316433341032180501774831609635365412481113902581792148065557209613472100962554234072401605154787414902775169132575562376191786244418330091731094619077978994586244127380170696419233220186729392662873750360394602241456806830435300737966758285798349108449903417686946007880070595688580867178275577320995521326570022266488429557705750169372144793638665759498302762678405672321424302083197493111467217545636320895199588665897942871455662269290340635985287593287532271387784431468855618292566383454803170880059583490363772590853835995662735088331512227541084178671702280723080808016673129012796545903338654881175699786925600247322860625724220035064717347432586342237220983428268789577844462888496640204028986311026234459549382566121794963152144659226000070042829557183102628254040042309997341122608649553985603235675959729791639307287270341821000563977620390116494097462158706656866841411915098494983499024841716099919252373764172559429276633105505559377924746503632899715052385758169294537004292855557696000515570769381796304583381640883757434584600558262652836308422288574528479826066844592250089182570045545285912531413569805612065299091668822189938010733946040703840532483245742603614618266086394864999501888913307859230038007946377175772131404750381849470777690445564115829366742182090619495431756971244201608634442653717939936981331494665968721467702254533515155487982387204171687553195637825836174703576047597282967207383280786060635135308121409338821648228156320430256232975271142904069061542263208625182256683376231838158549023880913302484465703137395922529413776817233530397792696771797954622072861696454382995716811327490878865209803056085829395568776204218657209676669926681918418627937344542242023962468044681910390825355139516638492546591706852030263650178124458475795506241808651646086721409889585972080274286664309525100996401544621711330843030238716304651002675814733774080747779644646854794282210261228535503943491320108781141537873180997387894924131421909414381011916268796717772313747791379007757431604794964744840212954989524170271085232576441430542027567277458625675547408464657635358392422864029496738634360807739783526788982340665656004244054030123709266699483381020727148768122322265644902048650938293525512841319608797792273897634658250682319720498455991555240499776801557465732455230551107661914974169962115441470102953112775787471330386337087506514493491458341578051227990499352213787336643534948780918376881130325287234913976364560245987076895498066562582308709926035031200692888913825005613679325237014271126748537150022319082786379311609291824793250006532930465758255740812355263076866724414777869376329013780121600239714916873090105864102134112219258150453149637065230750111097797502297913319646321872094577307345876376256070855535433851997016236736795738769440223677701145520397829749946970989567667999936634721663939573608951790597529028272693206486956748664823420227130958248504628741820236599987463038128781169976520987610254400273695208788472476061422813358386350278163735519552801885361313243417085452919770478661226581972498033498270487318425822302789723256841879552213516339500771738460220262136291490424020074312410266207313361887375299727571327091911754749248537149251524775836003224780966420983868423039695676220648311604064366979386785114796234767055008901927572269466140381866801912313620917540233502725324499819842919712441321997920485959935970081194204180321888212386760319292068483288149529060145740974426206045268213478962209054542257357693124328693234936347419145778919107232505528226891394596336260262744518668212136937955651145701698554089268879985622888705066080009279929279785823256188354148045551128076324405046900018145792631775066733906861000923009270406928002118403233431490025523720004065320573456166493219622949066709692059405264633868900605008691102050109451107207505948435680932759376065799434492952239070735417411568406926568669654382261177447859339254201516192851690871064258307773263904977335392031376482548560490862511811932396213921827855612470945672337241461998917690827916465102431901424447490658045610792950214019315079168741578386161175087131471944463744874256895354538092264403728204932655317466037344745266821107114521085001050903210359209236640329527551031554147232801097675744299540930510407397789355662570280853334560118252788870246372781246037951324332995314911038142399937949575444484172827224751837322020967320966970173454115575040668075813453670462717000525826460757464848494589182822545660521432045316955661671794985753384263352695568628230627927529635224744565288415297803756242024966855643867611555945333563943362299336051890492560625353948426727082942737642088481741968028571328034260850933761661298710088274469262548591964001775580818843460839699054982999461898074090693196464304804542013524414900029520186235302818063659646477419098860215853510217278726532605122807382434500531800563330611067937726789777778491558833308123470465095827149599956510206890178856825163654685537840217479290399805010175005704503453936460287118959699559346664058138455287658888720393773132390502888994034151893104892304108026212712148007006145943610471859834152715594783035962530702179253949863127474391163888825473584112604518302376730490957149135176069268353387076969916626383076102834027885725023902855095191264119723785570408833060201333735419209652314814428843613727406471103657978530228762608621492622135580491512717061940233023648011581085366224292841626495575049075336293511564578664102094115376561963576358731819885309877844264321550359018926737602411165201646397138730818126768250260802153005123333939469064067747713025265564802935406068039165748058377025203473651707796245992434182534651136278286664384418264549437339641890769105477274791370094970710101734206270825259099381926224212591751949747634704236027370309959913632405250738725206913101103248845990622567851731275326878489098915014704583501402167393423256891973447234083820383256870560678522950408906791873593579491334125644973332145480070211920345934922037393280048289225314383564901557977843614986148373383621286127099374556151525021908395268130765983524419578044939351466820119806571655185521124762998206670373978582734785132056804322942210464272152213833140990629500202111180846825438390021832445143050112536457831627783331609639906294423564688313686744342477209215632439057174371152086060608261669891424788511153482455023831872993469044672039139836145871951756408660305625183192206183593627976883670203827445939437929181828550194097866579761223522352022053884434389326634666847060155669679226592263164175972917039921867946210299705784963688725568983951634844576204410168536812706903236440350171101512099683999975935889781636860200203202152573940754506426893096975009607572102888392480482800400836938092652356025183353175430110944769347232918423208685315761510679757426213340161223436242089460244004583602184831358074305006817610214298770077124748263209358762605725381847532119531547030013278390545978635748703180512316377343402250525064439998990698516937580450904903529212507709618117048234789198886346922828608404686793399617318373071286353835085839739780319565423663876151282297053354478193764907079457152042303422443980093142018202719332668907047319478780270076809355452217016250622114461628323798709112369483841578153191595024528283609759247825010337795251581738831965502313009405877746424523711220961231362144654780810540323865309808840900614679603819750359594721881433519343103963866539180492182003929806309779721634661768033911049332082401151182016758262000404526042592013088736136728847334256060853150704713745026898747174205254694826836636852288486989795025651793344192893708168932367694874551953930738502512740119472404110102371103961843146027975441227135702321457131510311498545132910748486783277285799802324108200616901587669560641229392223424690041514844523356625033414184050927282038282826992733807429096984768470151357951781534432006018104483932649793340316161666354084374085793637455754706307289527778738977273021048792981842348850496471250899082248574385851064325353173550680392540181086510429179586375474299338476890644420586992980301250873990601915108752843831526797285807894828444927143367073199368333412510621019420353737350309701759547539671123889697231858048976190530390228854698862519513707238219505841416835097393079911708144473299518442743189191221402625129453367293039567580089866225003374166122192373818326897243804273577614956452009775604781421627504801522512653521865864709772670783323197989937215256024742781691758100602113929369858803880344796499219674926336111657857191339802979861550467029196125909297982345577328987927633342624976929725719689620813126146810638762416530560530050224333134755755762263607362247992872055539045055517975447665019598585418833370644571055700285351158766779450412393356211982451058546960397137140684931228755147019217466221633427998702358606172859315117022886473833821258039942490546439082459217270370483254959757901904418146117978874896395624057924933325270559435623526295555497912770231178676150205387146398267646811647327580064245217764394975040260825907947391475195801205370792296572605828561417927813264428676580935510584295227298753482691518379618656308706879341681124497398608571481192329595430163623114432188809604651443345353706163369317510871039536327672180892351414738208381792925820827607487431830527497617625736735245148570920884560607437828057329215093767618861525013098056081995986291365240447439542727775535687572904166871315619814063947279008192399010252538740686759071664684694399737945210525004894070269034374118036317971677517394428326362220988289387761194643421222802323247339588232510625240295551726113512506289969396657557070582687123284548629105399808182057294809762713419359972142943440780552131232636116877673081536094598144513084060598066721956943822557447761462087831195556637128688953020781257705088456802606927604478172537335183733541346690011011932300908483342772660877958581736451495861499800988566337116644595815730521380238360219510811280015474687142766379055548614570532694741967407313183597754372004382891156197249133281543963043292359298583836126319793390172486529731937602815195931015465075870885670457240078743402756857960584364282211082616222224062925265079806467774277699814934323357680989548960478520256485342162642343756663092564459383710560555062003003671883639372617625919870277339471040424469167484184852554339525075521283362136035147160188189015331988554300025839062419336862786030836967464077347477542455845993729041913440135006050528318752487837849770086742079503027402483520148940132384399344880052531833494743922977935527802935043636380758241694385662837283049779247695137502373027163345081343762883156127223609557914657744215559669848384775178178502118305277331468783847191572799723183185644171238042553902032138525429347285482418519418721482107403588780747231329332979760151264660641573101253490570914236038950432510623620168425585926458401202102949942383265106508423323352236838415402079902967746869728676357803309555176719473575234526987020469889233099577424469922524834167491388047059773913932071871407261044491706290113451035323951883531016173664307508133434481973431015109208930008105891747513996259422939820504368397421088850042340129800305801794197468873656375213245395605237443590947129983345079553876150000555324300474594625093831807094273683176599257652498337705304190835677461159073674698006261075636637727348717542474185179312646973630167666341860977503619447010943022697026115469796449985430335348171561293105865515251986590322542544912289976499276733208002104006805522030911555344583893128903739688030902849742143570551736075043274101471915405852706357266756524728155893432159466737988371925962863959104360872874641120977929486956845402586177929786797633275456602640497949698127458912261186436784715519568121181058618843431625395080289989800273611421139085827449728945184530641187000727091484558396802264166213248552424646017613927596739486214770454824383851293763193632561920572431256972720424770628516736911122162133702173698317510629722596520633045345133035971376594101573817667247975685412052254688908505865080941869946348845552469352048358505808764846482627283986176498109175694578611788378719281124266879013054846630115499632109316629301162619195594820150690311724086464091081887943789455777847474622118712057212164445720645948548368112450645474731612822321659247062499760711845691217622361703149914822412273996001318576695188303987127220489743083221477620122628744437264554056209836049094836650014239473928908141244336603366521611845282154278094907048442962438624293240956963133847146687766461528413024860540164133787305709204385350900500253032561024240089878846212481540583672882063851312336584135926608914728724223354563909235208250660346313190299594852461739515756280803613977251870921972526892562567448365742728583054424935733557185992354607723234463958042774145533463924686032411087767704273864076908216247777890929472248040023229035873828183599304997364923928211190591259601334472126804631574910876463697099599618931738035059412222837669894026044750595267622459182111599333222543513352346825049484730977699414433562367452947355269647594652133288168077705502810680780071536021356813339610056372013766442383921447636669471319417438330560048177939660111035661468097702086528936713396075375478142571819724242718544349892643294351422734025724696635209692619269671645810878733148895301270602208738210991132304484511200032664656104694397827608446414085620909369815078623824193358064188311263412342251925047763202097994199510133538736321592489088511795371928980514815514695315270699032651075890995595247258806690517801296007553942248680686652810482947122683085712658523086433948134390628465240001235126718854538893195433411415735866202198638206451523796176564221859745672329452761403981346662948451513399256121750565542949217394551204321233389904896956442436547326576414423040972121492088897607059253982658489903351223770071021056242762839036783279843629965460899923949791534271029870813685883242455483883342676752666132837493819505398285035096838988796318513015565773293588131970989727440775370334737791528867947568271251210088265194012478674240729298201453811341704140315766006792574729948509881285428780729882338005256694085467568273954852342268958997255751199774240651080300455911519450738914542826994616931464791573767416092327690465361871213555879497162403001164711937558446312490798294965277324682417263895804975630636891245137388139800400430624436348676172286241705383876754400186842166908075975488671550993686524490322695781358368579826631472199291095047222246968002315226961051981907276811501436283640573488645312763969073703543723324023177880736965047709512782287325326616765060992423955131438169740907152341051810568542757899333875869557713035279236892856268431258929147678790637794737491545986072337669398517225223589540889425589799937880014208065850427817055135445470753224868426246566760382796579688552240278261860959693157257736136097705892903920158939235616057017859356372943164345308644499892370993796049447938117112763646485940995858435849746412738269621818258386802188329750641758138098474775340485567312499528608745195131231519558572910678793588140123575825873549018900130077472049327298675337629761817708662243036153871224737746213436863861606514988187393371507409251613283679421587039337147251106863662020544734593141905375815564485200798701211914471704399771590446604685791004528919293943920182426323585684008314776429467625396303371040486996557602395731406136671485792923866671217099929719783746645656951033400818851634209392840444034375204315903405702044565375340911073053358967290901116199892016302025665966067851833789278582076867483989503388703124084642968565797743032658617926066892903808748936004032199419669505433746359692902326563836092101395232369259655628797631911229162915266863091017259868735019317089322692065206302209804127370194782742590063586612871405188878639319600576816060716326911633755458812578835508094714559576426164791724939703057551461918422863990852212678652819581063495143106837443384875393366769675083219303980325126440505108584000152603772631911914934948780955455345350784734425988724068312132814556657699005217067968571918739768028975070938735229068715601777207404813195440841701354941836649220610861246555252374962260981456474965821529093296170398811997951515220163721961357270740076211556237478725183200222820008886633972855610651831245323083715561111440578808011943958656863761904075390777804385843666414900159720315252176306171995689356933903646945696372932419767015956151891178902774838100624117713222571105306294092089522920744242053585597704398132861647303916881939647832804777276399001559874129829436737425692818110230821092370734239161383304027575693444122340305006618869746542568782027386492269336704428106436194614413436840205798609761424546781374427760360794109695647487376594998344607145366060610362432669181015209305420612248422211232395547144654376801187121845250441332435072696647277228784320289211330319986879144570248284279727508498156120704548624773739343782117267333251521279414053330431674832424243688510706752194261451352610700400647836310891921024101444113785116723621540246513006518717962810106339644997030273044820952824917112202741701615711864688912527891401837406950061870941297061624658564027283587928351825360533394729770180823292407201378312340443979127038047879245565041502049002115693188364554205759274727287679822381145167094273065302650468413696584450595918623194269230789995111490300582375702352108513345742232987058480433540145646572321838817024701269302864319385355413087161334488186487163463693988713623113381504285787968766545698809687342889234885178196196032453773617052570556599806820928677689397052323872520921281432196908889897810082237565697093213363303983848037379324052273231581619591123225961186952370984744465373339956671551499848251988724193667232462256606897405756592634466566711220516561228621483802243516783312896835415771017910775251404159672521479136823336167224318122754570135741874468107221401685197323249732826984528618028612916140516852409243603662933761053391220724291535589159115805139721337806191726729963744751861515710252223694636208350220477145940365243008644931356791684674632992052110001051522023877066351525203366594875856026614478570365582739559879608925933567491649671213911637657356864748611960672045606455584336348224642457629422695022985246845876226527227655370551393396211702618499770479714190250314210667334295333701518804629983290608545733473867141122651662094458597420032695187359079570711230884789705818301263433990861552121556289796953155192501711892009227695776197182768875689810479641100917009125611937602670913410546324093387987033796366616990270389297760001646329574667575318601308858928313318983840465740980050513054909810649603344872975114952658475601432314386805399789791986955820354363970072573248433256841262644864155665570745323262034043964862697954861757425230080241129053951043557132392558387354207552475606421247278843540733047977741978786028469564345951671560907053693050655421412492444722502315429521120893293961014571736601712507325801212871545684187798573774488442463806524768608028004814724750003590196209907505059536195212026862961030691973908113410796466604725631214817844297330848571285843699541304706409665287485064677273681280842368626538862680687956655924896089377092819998142796440435403310280289449858938891917857512047033588549050398504784265755645057053479001190806388551205538907030519290461560944549977595529411718809776515680434892402387140934272232522513415772604800834184977564472492476040272443421405836846198573617444050279509799164484640337210574553572769984833688516785769867215466368777852349300768561511798029176167163307835450463290358913878893061445763826531999047238542510295022832718802672830755499061906905786263434913601157556254108913652821770800038596267283657380251231344778867422388731789308448859013866345199030944964449732262049285139475819447141494974109047435231275102537492409572586769542199234413946655768075442504685337194208707731227341291483599747197664545567456313877048369974401897255035032086978460203911076125662550672303910489979062801214126885344103752204318957962601397082644829243606007197853382555232869486633059839301259714439772156778338954033857036205290574945140629704706068117604750050991152595112736709641270954761824994337876890349837735783033623955873988802345844166586736908145858247076899905448523607380837903681041240626590449464687068625976889580430626592816308689025702708467108169709045162944102862819999759225297892494433440476800177670107636350499563595977775825192878024196607728727345776489364251354758945935778384835652456305622360561683626438356779855856314523456079685273547429209514171829005759666696009364118494402964598249946179160250487640602026127435304124579208178945240780433274425028124833339010918800694435249197514485727192882953230963441934846212617494671150908456725212949560312887001207846360053062805260484318780934368622462553043561160866625080088114358449821133262161296338900632634670379328078420071951273838254399119854836615994782784309621765005441769165711545597393056035760225164226996016700648788557799085346410422239790635286355281490534271714689406219894740462121069572005198212690037194778615338313842777060062834801635777041556260902469840803552967740715950760322710922339544324803477834230965670706600814138646761966302113423067483682499665572807919400715727311560521778633812835506030893073647765069663403088754768936760383240209328349934530256233119788809651496985245997141301979776306482921798241984817564040297146161681514302079480907569405281336939387797013596019467512976919555988942377008662698940265796655246975604047154807985299952610138880794660538531174847738790456256171216483311535846454557697657049053462518617490008178678072557236391996477885998831924415633496900599467054312954516104467013109823359093936292796590372827309857703200620563051581300513115502227439841921710821551031675136564828601577664965524824362310141891224595009291877159333399628759768751379661284785298600989301296368421540750975445322244544525424345725937349189345505057759445911470671751480501350511113503576581825755180232442749230531677482229788071268344752627541501968669386095773459042413865654905108082123288715061473337601626706097424613406423037854989249956571364254737157566371062015522432438096378612548174889881679495624246204786359807726469631211359976668064655335972869747919020314966593260652680206439943306913776702143527895223606745839810796390375528657331493157264512197867318406555019426788404664741860588417774053848027562294979028547520634464952595070519621596303016360763292845875539822940492998117603022393969156391982080650131463997052595140839757446199238969768810808012925222839658222407886801543405076793563089945406585104855332454167325992474381920577530534069261543637067179130222977553592335724472981291818933633620739454756592429749241683908293703880846773375170873844589998457057357792336757310775173280093337243664539035309646048874153747587766240207128185449303569439153302581850529781814976519531885645825197985587640259411895722192358391973069427976339153115883395405748337970561688289693781480275574812665626645969844232830628408836686927118490942988123623778957593549190572247182325092338344233794143401166658549470118258605957529817326117928559775753557366153770595539177390136750482878514164336494303907817693237884579488069307394533585363947565186181002028918194120511645178277817850023240527718592525432789093054789861485083601551570234884445992198977527811200446963610424906330348685910571374043114061649208604635405860408808396165822171117161293893247501479204538304009534506880230201283699702869839874665210375765152527369297672409128611941130125640114450445705214117826252713516377499262196258726712751112900295751970731492533146127653921438186143192618762350656268852154829691336987217365835538865062563115440725645583877683301285663532023736108287749577148581042848713217077842153505881143332325327670125851519169759894157233625950208942722702131034185187139822753415893070394482114559113210928641009188238241088402798107150922837198860772577115185106336811882913316998854789875166147864265025736069795556518635567346341473274119941673950488048267044368574400420585694243590243689722121414191449680467529302605233332385264986516067998125948599656021115850730650621248678297675598412409787821192567638263785653676945683162128123413489559880818365654475204038690475705852594562997751525592368173426776366504679893421665771332379654286157618569625959897219043608862373656313090708727917347133316948530315039470454474724142541353445392713552851174191931837155067098368389556704570513065654317723835390584028752003666262280803493906742135514488513324603117915713203209601056873577246244447627769810620077457438250670609500211879885661896021036326660173720367175514933666826053144345232953172725294943246605363450271151555917775074816476280958529101823403802863888524445418499975010733496177652940609016037202741245233605609161173116826913863915856662405881729455566413157786610992819734734657174817740635155772005345317761961330701220194792363988827321319820616505438055694546280735409176719522202553940955304249969174410705879288361941718940975783331107877756133881785462967939745233003267831962533081185484415382033706628596509373977833301417135968903174519523740293325070188609155705469447626137569760117952748512644479178453987374770105537483083481860924805945588567814653754642668122473865820418622460815849713629156556730124854869186590301486621184007106722222835259136358058276225931712236917026755904267907695043286173794591622870181653260112232142717792806329021750996733766757456871964864383028738290270756589898595664929798590920588517085518650013956822353272581696953242355382616083500749937015957478866257908147614615527790709410112355319422034149636425559985384539672034038296091473028720346855788966316552485709317968901248383374162197090307221631159738477215051302076653215959913654811570826633762733275536601099285355472124517710062153370273061592154115810298729174407641527143300266723043597367321482591533707267641495074746590903906816230686782221297868956064076946143893388531490586527661675009115628105682047132924289383975902887558413700987563144725666262177788503439910000621182958224395233903379724542493775843486869429364550720133057411270842592190621935909477258046038604921723523030441435047824855058291898569722730830202154278474654476465626868952613107392080576425604331488163256296057210235185507065157794168015626754388296536181010352781377356404925674721837081897413180607549688585073186146383705992129429673677522076814957102973118910678192729265346286792177305770612250604000548579672118271801001418358701456478380542593319773212085169152608194588329217728060690563348860858610308837586201721090740183527360955858006680967047319408541561493525228427010878837785594306757277614705119918486627141094871145151201361619602030962592916773747579187424677910582697841030942051892447274088905747891635628907029697329648457151732651991182960058954145569631602811496268411332282595164750667688934551097602445409337203909542958331072491153116291951092781869837423469685016634920107956594300989929624983995856429037195876196938484792510780411303759240299568272697218927514525332011968620411800420380628956989035147812555083275865120104199351611147294906491553842913385993136514134014633174388703850539448742922271204246311562309548434567763358275147350654122380011668584465538780135801060638956772204269587095622851092887404931529740630454879105385406059009070557245646593366174099522704600569410379293128905713502433435074705253018727800486075102750561937419717676146895488500562301921444837985647569306732979582859635582813220132706019593904336197796904819188046231806679630789056258738503482150243630112832479385600886358029933967956001448246874917498343394828133933376691318164868040442725283626539625591453724421519134088952168671771988834073651445584435806058728802282063220831504948378937177372541216423792915390833422684263527587719809419747531413020057323243895541134981546371185793567062475280270923098982919849577335287757996419549461667409228913941313140500423980237115021420635229967892869020672576980068967272250125631598597228375747482559261471403306960319301897642707674972748270439228317786651285452051933207184399457524263233034565094735797103277167533344522626515198583572028140190525873440254080851803217389804055229042577368714761816593276197924825708512312260478637117419258831989943223353423612206488607253497081587470781303660037393451098477444432243476759132479064920567878596021181746169044618478224245585302918240235478979749065184965495824233096454488675853410523698042138334683883333918559037187430523713044415118867784089402780569566964815279191949770949895411375600756989735852009559145772229952160696439776336024100047180796286252980896690766648196378813437085720378642546548944825037215621803685162262825416482716547248896626032162935595139587415811832503284165361655549328546292716126719530022418151973667755981276842532626988677698465238023587178291892752646906891414463775724320393469117512226082816863407040589710818715695766440101194975294162573418452286929000005240605063888897593039206967518927855109387884681743893151194372265549194124859012422564788635731250698276102984884406857638267308879447131395912163911742191545303955621177583802936369675104442132070118142588060389677925046456091606433383210500786819063902156247075399489567855392788756017800402594185302893499683503965558259377313329752737416486105209801096331552239070182019750059385680696024032395216191547987354734316188155169042693176115686031675650531436972347091539688861397927871626840906711168317566680427442020139656316600036613280680515001731597314460126264016678178134849807844982230512624039835090150578312453263253773341177743861972252573769038645841159558774389651117049190215116540175227278870450176830590793042837162420262202139011967734693054229513811875771157949139652568531990766586677153042707782908980231612651778092890674637975217713738436359608695477716847440514019684213542228381491678735700005513669249808410901412254129700220978062694665282557514604102569833851274470617054897353026954577882292284317745602038709814625454516635580406245661272490316334098397128232217353509911796943064368372277880909282413297015649395161527726852597179619602504132684256696930393326276576693622233978800287684136000243311913105003389791646219663365716993133229646555267498457657971361341567081711161109488069369871659454660379751961944191581614000611021020684541224771583206963948226918626098849851058884131744753370735244165332414798717221995142290579628049710113783578850934599306960144434878474805467498341490798400623903704653373284306909618186322831058568623239765007280592769595611623854280265455664768056046317180076453890403779580770246843699977780125205637400585127767972489314726348342047116684800468812496688009021959720749070211724084228594792110410335900225825978943232355951847312448230191182395094528865883948529344343467459004223692729629072162109617068352636632484849875779442466674377544165570036458194796263583682978710248363982237424895760516593559022353614454985839642366421807030928949579984666490250903968479894183861591603071336985272442388169940095239496409594389867730942100962732152815729479758464641029569069651168131723305185816961578176744640619625000097216642681280284307880178722009386255502469409238484960774553263749871614010648115050133988196903262436185806855973445089798495405046332389155300025682530547169222375469122440525738145542803270464104399113843882225876703772727977203978090069452194649726435195476704851693092705926050705788151953921308688242115372530243444109207360346476660777526033897498810057874895045312983926716897961270892443782586333685875752790646194906092919620063357436128970519361727281967629202228222676932406810513519331904708800873159057270967411867510090705765833478037268450960155235292220221520418420032414625464353576965585235524908620451507106516409582547603250116348934098525464192988120787854460411524921154746714903938550300117687609512979375734239712392202057195314871637610842538539771803052190385194527886732164284770591156935314673461809762619901320168662088707073283243329610105715970030993189179666798667046027109114454528426430619879433936087924441798186288130261546236447006825855352983182772213497359257374008943588565141766121174290849460641869546043329262530240252763956598823089830399999848056877300168809663493916409192518789461506749811512817945430155648730777443010801022228112100706803880898290307076674718488205105688139622037196110275399407922002814842210025301767618937026240181056686040368714146954150781159445574935560629552701066024555308700772449689974518629489781368004036735816322210575374333650256106059462139184698449475458777699173106482579262128957971731490372244410780573543664609353186227049097760713088710172122029856103001642940971176943531722278729586890674331501201800549970432153778182693224181148569352879436358734485944278438636533264809584976374910465866245097386863587742509416355033994062569963664408965598754385767320842551443127516157332897341314248497393909264332845784899165571934971607050783833007412909042902568965302839132969559904229058401989677344072567353027765583817121817430807926702293747884336276540326272562910429390359200460022480649940033280145360161703534985191934173263497049289908406098450050989785117170051285956175733796942192208114668749274215756519076006090723926135533644400163863425469978918666605835244104919362993921528978780675697421553301237255571474326688225298711392020663449587287883676941702734528464739907056585743240718899723135688781936329067078028151248419441079159798226445895435669424746192084636455996840920442348655905513690061487337699613873328556202146460256309025351365468583754802435900506605414140371695815069423986353281191092107637415508568769035938964552464918552028835506647047551131619641202371352875708306683042537232720301383549684849998813010218272992704693275142351974781512208389636982754712774643370210275491836422760364053687187629622109115641936337109238381904315877642500212084586207365245583245487334750236112245666004259890496204286212621313394405284651883782164079696027610490323925483559248547860831689357319540056090969735296382821539684931019354248153561396049560491491282005314914937556312937275306571387048654417680492407560872148347371428902225738230324863182342883927691693924642920141093853457046722929009582454334855639136313124263637149154495301151942963422021904707275103048806951682897865458235193631650283830392262609294468217853496063061014954463758242794054298739610780216757178219692728390521288009134619755461782174888520746078029247530902512778340213411896820605328013369589332077092218237265217496969260884598755623228992807282001205667528663666190011603302993214723563534639670786048962745290127080987688429233709112395662302332335465325998098771487050099617121212817728354892689936403717547515727951166228770822703451435423402950169508848805142591148327145761387462796312163408744975888250823636957082530233917656268944991269591402961174697028859892406796607523969710836313649031159721326106743150872347608090255046447682473123846780087247731469194913407308208329436259699346481690729158017752389724292503608008397760957634028822665673401535383881989505108827747816450955881798995505079934292339162133670754107324968439090651680129006795595660893524120844219060766867088798116449759051272443103383369225691045129235776367895427346572544663291748739298285793480645036062784905622461657983778610645026239973046758738655023462892223680682359248732511776826913070123583289284314352639844823219086718140398992252640294459959878644753693745010349721724742830014570086307410210423204770231226804422684301654162806654075969811821914033706481435420201415282434619675017932204912560934839328590038170645967868727491341256164152302104280133413653685751509037863923180369945384094553975590009364921074105780304517852584010112970392523833675569192143239823921194350578142814638077172767033667933666537628035415453135356060937867450587744198156498334963856145373917286965971709206716425239569964936846677960663709411597959982087608950502962838779748261488704777531540431608110249098835400274620329872920789592885835162620091908498350210636388499339676200831455930504543504782240293610909441925191403681711555337429324350219763797863381723423089457972205904697919469423567448386088928613962251739626722325702200682234088909759291454996076967904284062101233497571047979945258674149714685932114282501767182646730940664768167819664487787634584269987896264530789856354273987058020053372258185553598598135825155194647175058250738870148022174831360999660846158311037719424366955053092307510313650626472498150133145086461212667539270277340515338964845544963875285491919857617550231903809530691596531332447006091968808070937734979368435147176108363974083474047327035584129760235158221010778441855930522454201226949421058756061651406789137490043540744995513099370816789588180019808138849461263251093197511751942403239521953093539020224716024856003150203382924152101070645579454324195113554637658129226835386317558294885361938792386806553792023756023523541173521173289411518664263377509549691839848370923961230292628849174706531075260267465248095429016333961607101300773678256081102547907058157676116762852691050692837803008202636559484465547826562854524807374037544649399018040329070825696445251294547862715889223270164258082721137170233332599327716105934532200432987830232759031561194313159747366210496890444441248754799413223470320803057276886325588637569713742195023454086112205391224538906617587516775108305232126236922675081229485457887655242814068065989902051966628300404603979981470157315564729788633729357812392505192771106239082832340701016683305772590941485147658837348275928072112449016324381196769908579718083130634209551898284414232784134949628029556829746966136545607637813458611946412716026639926551382751472392207301859135766404837828157177175217452652126945982046678154393217372903545030067879236127959645371727388046147351015496683839540013731184492134323646739701781085062810197667345260044356000769620991627921757223906793304741321055394627916571595653338213058531664979450006934590644144227931969764672580234371325381946833738577637593682763915864535258013015870455593163673938414323783054235210429146119517412171257873571049009988543692605833053212691767725679650884742023207783770277395061019040309368491312791626035387783283876652800663502599988393291771912934804806560321398970399584944584837493991742081821673660807839609033304541594025943441707646919069119236702627667664190024597342854668016416959191137582194185054855187629149039614735024173093750128703402973868066054661617453228441126534208312975513182612223875266848279356507352813458161850758609057308021042877620551984145070039521541285713021991569930316368074087675182914353508278602803583748300301626604062522612181856496190597172269259565289072804708435239330994381628298537040859039191698278515580882257550322147474616352986287876393794826112053601555609761805987751062044478713814978603479958669497404324410427736398409779824699062407663529450758453114083176441424324821500952251663144022652779231325795264723438209918025054002218957660192873547283047478852760906684602579580849365497956626217045405367127435288751776197527217843392970397477072910495648659324527336245227722810716533570322820406604122737067245440664730005156406134840182013251167301450808778347551375534304818507131582567492034089339995684169935438008978608122860240862733173173105463480943714777952228293132670515478405963378599280817629496747799592937131976302189993569911904858645142220292563149720320551171298889993036795946353297758299985002776740723130038492635088096236205458440166382989662890546390335065736919831519239291354532251512484000739128712894956104413126122689314714629734806558172521352422503985188128054213813692413882574717314092578834964845901032857590276591882931066844116116031143596389557274480461244489628855814404019245097316361669997706856001758053431164663838501080170029021877184562327365746599223599113387916556151118944383638410331250529963421510334932380162148138519572174838248825999058808357687748184001415755027024652020564311447113941674414239586986902820755303002310809583550830375980529851316371470162898151564564988092570307500136029713945109002875281703272529159447501636044464935097559568431564077887203862055972552152319791752366504983782727024207353121820057181170461151046325419526196186598004037086636625346364539583936714511634489871085643701813279987939681718211195718285335035427249923675100193622575899570724522362870560883404801435823806930255051854567372665150793671831513529411199125223360407052692364947694561800177924138160354635122615954244938441906926971014735003024033035296255499107550606249266662783052235859920246261575057188483749336268628759908417951136247795606066568793563894785537774665861312348686556744142157793922952023479311463318466060121162176708444097643303549431810768437657446990913402771309506846445458347338173787995706429013066305159128536010180353411889261400869433019322455924749712724144547419477802316097662240234053982499745347823372223634928686190675594397022539045505112384569084775852699655315701868180194796209708809303756481927061840062697640286869016446466828912104664216011124352297822360482700140918461699800702288321899160261690166333514044520571842902640437145803420849258063126720207109210895221477887665466669217539022066280243463495627490645829921311621448661542512562974657115491875604222199847149528493833354123310860757259680064576337013643625804149634061473327443451323286091646228147390075160014196708710670799333188709037150368044023573386164804933907320843221952587775023059277462434492718345922008541336977991315299659257671626967983246871746445920253684436425209655885433328620562136644395701105938504179853043304751066948442370638094230312154024319459880482875182297375222262987278640704804826633314515218801096193797065652823020310442071635344234388243242610216623065163660002300215661765330646934236821058985645580521614108881927696959005394835522377890677493626989377020893838601307412341514350204743747507304299171019818761310865900978047029865171600462218428811426250239133106002018562960619865557798534409461151782781081714925370468536935830723443419866588913673069356018346597800791520435495399751559866947416072870640013964851004753848671209603515576219956961165313013730277156381715335082422788454129724446804744720372866466863173577317162670659853716388878539509520883901650841690822699632423241018777298032759096905150550556790427501482277163420083137335209054354792271313258904937406272195165221826414836695394946909602922023983212754844131996180665739582047240029726936235494794194970635042117455852286449009191262235528072541166642282187720277518413072352221932835860206047678480834709538433399225946006419064483418219123489590477291572330990581684250979338178603948398394005266628897110809408363905314389284941984397585509312146781928556447962842754255418377964449677009613213944144442642788014964702246969583128494106905851683083181013571565949173048888200276516515406487214473829049369348279326232034085342067214700239183698244345965955899755206854450591597777174044105534848093245610085809727123724380898203286484126430595288412310515123256186992272086437140158266648683697388125422056086435808309230813782688871070460081199481176033659343617239332465865873537214369951403174488570220716230227134020596240881117131130440275012415794080712151477641513342670013609280194562283555589702264675812837788855731479831245069191053400012088408336168266088083281243970291215646061008330918105030390443032043202480564757637309662755946423202337226265043552736847572304268056908556756169118394097815504254267648259971543036426127112887739361334292008237753853596262670696521839756433349415748440297119029019165494951117101002383806070469196868658041621148928881238357659801388477969744656776887821852076101221624095061687386657182084913800335949061824250252492692870498351394569814457312174591529667721690131770379269482172627555920148929162944585349002158731275697721257432328675927668768159563022271963860400296372026604724425199579706363135423483839771485614331499276904201173737928907201990334149375199363522022840396497305894702269861503973240286800153100674950475579468605738644059064569938608880504572001079479382746842289337033628922930721284445729206391970560238115814909412211896971767795772964293837285903898153217017855936032992642033749598175688650845259616020998835159553460920962898626553499543833533315530332302259316042116931815250357483335734219637086508725788502637098001345158571970062915074666986117241981070091649040619435836411970881995219990399002106120351152206875406594107999399729237892198805869588705775622399523165614568374562585331129368774630843523292600693178628603193810304074311826000612674469598647763350632381335872892476128798604174384911757378537122284240833549740332771915373660500857847177676919509577104102637575228238498002074608137279196842258411689585885975420881574599155756838292878908237019611625048204050614237752691031702884385859649559971762565210007557785575854177702211628430468101319522285551066340124029058259930064049138251590999501478858482166605367434623539066871551383207826525926071244734257655786068320391693947172584646471015717021712440808116062705670856020919000918765316472679714537463788371700137837923114219777232342744808696554589893594701814012342887875111146538654543290589427349404695774728224185363307665367648413877909971169975299295098045420544851186331761343569709728719969440108641501925400976181243897985922106739402466050826545597284456864016775402741549760135574165944810287566993742419999343797857924712274171289331191202522262255429512550488960249488321027506164222480910263177449267222502411917762305521118066182324961526528773251717285877723931265475741474354348743050801119250912287247133870862960840466945865233368139134902995828712898886200811840496971334007564120191921606409332699608711009109539845269481175974001760098769579140878414577246313866071179116653048044479245975376929868163869321953043227961761892589536982611162654298077791783451078206819079939741962056782853867807356413023772858869029846960407302372646641589740738736681000528301671373556767685962983619309884975213991187121422214445797965892584550916563008270104457620048608515495842897836745665882829077127191445970926664478555901780932665456412168350903351698358710846016724984459557921504434771084320842077563490357237786197048296553941620412317608394787715450574666350553685669276934617050667280120276445366389417507261992397314728760167930993955915395821316033930310722295535757160725962512649243918846220983175192818777858616509158737983573540673419741038304790465467872048958674214036312490936076843281014551720498351889157550010238575230001616263118887099577858108385148023298138622422205775471695410601314441153218867974675465882333342733305811664903592770755188227645167692234342791555402012742019143918016347140392451871194299134223826054768608494696196868202051107991642321754236225213205863930090239382598179157100020109671127438147047553887257790026744819896470977847681097242800127483194610742065286641623491382435405454185316985067262478733625137376423889296672812607743219450186649291868871502474882605742578988463038738067997157862451441512668124515096686014721324408012038073824573747663709686223790278544902619334729724627931288377646536013777669788435875850486918051131819082145671211305162533978517730992702991542045287761839524222200580098754406317054456332664834468742880078203680479164964293659352194205439743844075738298803841925017697742666894472732702960164433396696540743176707739367571698041440245918867038726144093307086885636977189775753277819974408193738634089114372763473233278271874673436307600992763022750818204141110589591138802477396784037903810279867773315274541048636817237929636132423593570146351905057915467438771511464421632541699030212603793603353851367713267444721312568500778164168596212631610200183428701813638196161505708701427625087518915196758439621429892798920018795525829184972752632583914430479321168934332309571159031044040924511162775559392859167973020004922414089123220515415902335786948663890058057417080470477549535666632454153386084636340755868760255087466219495541986913071755032766446515766446328876526118799083104164870718574064437899173541068365674729283616997522672737785123466377459717139946860648182305229937581077493127957999492694735513837216054032984685671109149440854790585388902162477801065408452739988297567308750266030132976365664314556645195279525828789266824848509150992273468581323170216756989314823814914339673815429188256076876037720220061184506980056979406472203116997737453629812932904122410426814220490253949200413950446092681001347175988330943405547477696094934959401375105504536603765495417001188097811549780735793954525201176081217331504027358626214666541919588560206038092504485634885328234204487788309285989379255430703763337370566412395868616933125880531847369797808314833125325256015776398886143926131839242310687928629186632930987602689110381819407741150261586419563557433799704378610915028721217925438475489948189746917551690503225970442252015820716713464502832894347792865651364271234817100930070834419172903414054514720891859471105907255784080201200322934637268850910628912647852304693284866504789288059765336546161532325645921721312474251179807589320269625756542238715409601294565656794642261281918405565052369820850542880646638382531323702968070274896268650621799675258361987095124663281470664662737877969334304453844420910062123619834572736702134822243415405416023157853486942992731056251853508728237720248618131689564149503827893463221320842893668124663436127420955528454624687607786128254609566138379689905114200623374068424997438761680279592273926064466635413809002757670023138083021618431033943360949632067692403640075829964539014240064060725251817216097712060072392322872007558239505866372788545644921176003404004415608354663901352311384424812158468417813367375146093729498234470098728030875382255260136100860583139895390554440532775392042344968706056001074871766644360214616008515506370094229398662172708700344200451406828701911810778351275249020814530217064451728475243339594507958125762989599371195756004184633423858401208200215394753643609525971176477821176797755698962163360147882391810312884695522957950792512323488616300151929557975049748710343478335400487582684579413307820751864358687346532840987331232431120854585424340890664176193194673196729775918269636153450173880535768733502349985007646240229534252730253184931665205408890150949309606609458577120063809762105423865434586662500026968791597178102013170588494693748370662323293272023328069854514832733870520715179780972694493616072699759555269739383797433241614784883340978361489794081782658602327075807331365950845907835377487603973261959082960705064959577113671794484945892177406315021937696434241769143792706061226528573114425166099899547557579118814352536180848794862733474315321267822942668933619165452160425029837077198129804994230493426816952068932528275496886640945622251482424050073834219431444844135551339245482070854679530750646612646563205712697771801887569246376895406292050707563970297428567285772318026600207609621097443673438829020430458763272405791674609792441568751545929137934909358080728695207360064944120206034001754463133953752963391249626485238883048895217270999929505518853049794756997386321172594729282498025900050836565642863895657716432988180271807515443776512060262287445700467275109916266464953454111023122089124145609722987009557326982581571541841704212489093953968107819860558170243022979535336576440498353747564256924325585895067877001239169549491282253259958948883536212654224805792719695923456209721046612504833115585781959924021643496073059496004775789846570146435033286842112282692547310163645096265199467922454932622580653164496056974579290613768555763449675970831733556993047257332237255352218222688495035947154744410551712820512192746249570215054716591359741505910275054091972010130808215100513233371204959858337851971058232497509694966000614796824025980972744444840635758953901952394035859570795400055206843545461665271361586462720869367920011357311417510682169671673914610565416027216077046065870813318700325066237448805776989021795229494914228500550090983347299667582298757038428968807583088856486819912166784647088621657300777917465529855169995754507142948113336567432932804270371044999271034816936700867183784024710894301490259266265316568600253333515941862167491397776459105493942914654655323778918096220985706233137233540207079467278422945517587787779293590141574049286513609124054676152778607761185079949248744448923491247132205159291077663399450578801766016807823156599574294450078079627776213442485495040351520521495418567967870980854259354976535027317668240779232942454085432344067156157984897223205499632444909671863044540727294922357721784709065593291266633033281541313996187080055289622838967549756223470922643728150228456628125497473477954410949135804827438215089129536132041699797776536453062363436342140380380277475209036593403219109943809137408520544824094666924094187356618543592873345217060670056224378858471724164699039621141754257171103088134613573107762754933529883757840678796081454760487583703405702148292822773593040135307875087901178730085405066665649714841000627749329101177048483128304668723047143930704207529584447970175111773630008806916132974311773898234426836928588047429577939621623143872746926429556594899461748483503860462118579962071337072932557295195304390970381979560345479961286369068191225483204527333168513039433166029564815612882814134339649486609622011694805712122267383854055144525402229922192907984221302867540883338374389599989411890992423864460716273838552072475702786188706253200741345351828367204012636230636923225043812615138379603809035486311939613615226224392437524692120575008721354604047124289285192893850032766421514334586444063084618280057650730506747522647370724472051062008486901409262831404986829471026022676565959087572274916931921083084049700272380055530198538291682171679411133682307303461532491792986227017904564178944587993769903643141481973272748329478056974434846986210194042298411870491604039366520308034896801861433325476347834718088223055954748894012502018729920542688118985648946629215882472814942229256540662128574984885842841653979596761017116746611310481178916958572850029118097136705489722494744478250931703921831002832866242591522027730796783810847188863458601822732109101767151376153060921046267815664494232257665772814926223816942195380595162256861910716904821596721009482110872341697523791492095641668804798256513438056677118956730429356530839542547005056931198198895930490733238455057735656068494023799400547319951396257911351053189225530570688781361271060939093865159521813308573128797701090839779656647961342031662078142976358675287067580076921469549318978855803191631516878970751225712968054442558075680293319246509075540687174538795772190514709403861786943001345929802632962043987204155068389622684074251286536607924789799986346317340812181160547321277581583449280069279439727333263528537189439037824437327422030913592859170283637025364807115318444531303909585969177495505171757255537769507990915019813810566277831576530553024931068970916942389289294560467670559751576329770520264127760591156153617871490707040723547215032794351373413323877183326147354539486709362211682288439282889675183292756930288496199183227400698388325040370035874320315554579178452121942465972630216748193816768912298858486819588113502829739175975865835457405178174750272446334578826403992874065232693181944905141801361815638737646619728849966333048889064095776613067761191142112328172713360367852879379996614215530063857352721963402552629282396075784741291306501126359532043497441615782870426580401613793465066241586148918471030013366284421176706963960784192866129221382756739381323671739786517798360348793843117175284273340661608069992133029668085175964552746072278621656838780931779661061251778060732266279342353676346680499838507211612644378572405832768359030317826192684424996649761859007085887764382024354517815025599807503658481729459494081846929464910127729928911337990127343564998012167294504821811045421864284696417849581445020861448741280770739112606674203584993622106767772321178044627246503662699844807006415856153011279845781233084945543446192855383705563809063943449836557159678373755494416701602899316466489911581606373423270199967588414722242755769268766472775616948682878886183386171715128613076198162157189794682102666057926314044080755279664521593080349346850737148071102658443421053530308368277839916371149678921976392971887459462500775359956822644635339340711139323871364337234935962874981070123605042135631065162713387946495853556832986149767409654365600158770288667535634807545614444165118801833776858025549128603128526715610727132769050362118497464504512565885906896656482245440403626653203565998898524858770482888872039651176113896874045292558439527868167443326491182817398138883903649536120562091033859332507728214753272756690935588300000931111311074759744857403017922725575962891696610711274488486457391981524456708067747968422847381962525580985519550719813291573060102394128521990703720710154786205475874027675763825218361432589924712820048690946030059797088778170550339761737858223018519101249642591354568030880566520011250252295953287960411944202921358465306607832265324417005880710629309408242138080550991850974533839799893833228103514007062297963999277213193087804838923569605905934577818605872761333365563861761649072705524458920982312473380511799460780281593688724889981618709664163116162863231565416608204673111042569547174111378582356215572829074182381353381142057749594352031011234256382789886903537096840255647890415204084856068626282690338505045935470863785485697008784741609518044485949492672114934863358326767083596173239357136181805004605947257624496380648325912451248885634360665114547726662143605798071220776975123093783703215449621638466983747843352426966258075721254652291411353340849026386124508200366557915330937840398637767131102864459078521353707863718232735920317943097159599028891733343411545623209265483145203958336115091754382634565879164260172692359009719479477334409622588535864151468766998827241544155193115042799404425683325277288915903451659789214212853950118776483147642911667784450694351373149694344006107436008531203075943633906599139766476067250667196804349358655439690618382925032666087042316623992460199154903887906010727144266532808264505652098950478499344908169332294856590203045596940894016578398947885494881008671644467365755833904377510234594463069021715381946794537987481593386136540413568656212635466239083301676420085601673472571461084556188200349417053077098774051637076779747691296087677863579378644497580782012662818102543040407339049576851008501112329924884256432138642598012431006435239135906709165483609299784009911578937288137926449813326626392442080949667964757499766873222112746916305895870249228785514633710795764856425752442389381463673672741342363285487759611285160462670025175485911191640565138597625093709692827306588401545226395538515573227008960293273762697676169590289099813692641931015899608104310170746069582316476331237063510402391017953267259757945267167374998670800079086425696018588971478253741730197909839765316285126377280115840585802628652568930052869157587206629508894188505421898774584190197024982178824429076530754935321562187224739434794453275057606804081108064230449394987672717957545184150919686281247968549785071872679116181470628452070858345747227680440784344751402829328613242198179219137496816763021127526355098656417252591354867624239057866040894143448584794326775743534003197272457386339658935112593068119043450415586380626766559033475522812590414821780000440037725177354910346031683988413493435993325342136681559206833769765117315021611729484619835716699341925267862451040817307608940539343034718399881799725398346833005827998786755775971601449656559618672414731041805478383437097654596518081280031913864504187457379889713793865918377811492862429792306911751273156795897274901858176207646793626742887609605524148023672244126017063990304584924271874059236631546012298111868689157914900846332804517720978512895198931916171332824160349420470767651176921354010140387725355030057745535484396628929769856873704616739901661977974588815748585673471212597541312589819143184775648457322701611214830115831394536455066243276765162571792621000711234527431304871459904620602087430462505511265212458068220506101659721986303148463977264439514368953851232420735845422362301069693723273804325797723063006887294666999930050816564422706172928253569063146602411105957068192449528917880183051450071248819726458036568427989138285194518042160090705133712156507039368222081967074229425437734783485185218262168252113793463910684785631916647893203860283764657838558341102481393511798076250077737819590098795848422359022528169310276984653082840937174966394095617539538593197524544189201251428368321116615502919676987899939512717514212571007584824577841376568991620919978904680416442076296608638195469313712945194137212045405942156979886329292422195107710738888148690451660280188801242011894259213597752059787017185336153416372862564819582326569364148150634357328660553960637958121527858550918599408240117543936613683827039294421586226325557593403746929764624023949095616906091961118255348712693304280677404425200999151034498660220097687286703975503986679466458772537698043121202889010966645862497702226798456896445237017665368278092028222845570626801274083613879569579893517575150608087685240980338465490274196627761764027828957579048025702374239017869341542704337481126343035238597040731042198557867770543534090384399147956149921286982011255393813967149428582620217139677728915025645283028306386739829362707937851455391110916097104632257960441926582328267447714575241037420515431142963221848975351550288676708286954684220593357582753033546999759251095969917699663225566460363143736051423956550491526976208783187906074978356444039738122126799169035434066751636383318341781701000859241080406161596241164500132367427848291500732756123284072835730667289325633384352181051583370046779437563328711863723401133800301089338825881578063102686607485685910676784183351613191626761747924917408012819269702537400964648965061917671350231883554511586570661283026921886694733073674428474209564805893081419375740208809203232024033964314906037760117497787746488969103393762762659019310608042055529073132521221301592899188294641912343774639494123902385316967207070445502521050687404713329639277007124405004691204492025429467569399812681129741101302297128993942604192180420177520193660166387664198951549720749398338332279910371205152389854057090506052481596198858543438374332667069744297506790718258697178582305343105983686758675603371117600724219629825046672073135712409840156501083949637541469790317135516776846947811703471187969241966446413566439475178179081766338825026990852317108675148402577909311525420673702411800277825409813879827258895288079716575427207600143087370226095150000452295700437252567313649286263209178588103653934425120464774934609787098504479240726598244232217016547547429395720109299813521122556860090685872683326410550457015885178680502539597876200308076873064983678388570248345504379726400616777018161011055800082562677868764045023227905620926033765130720391826174382821998134481627184832318059358968281774492993047687785224052851640662313583656388078525071541855900935261514901219614301768546823307262466254837159085793471674794293588274668780524451510088333794178413840549964609466238021788687459883537030085614072551392966731744734833679028472601091354843634007253533835287976749405267195870438603515529712189654916568762939150580513472444657434107487204263405345428964939075791560840521694473931057902870061740946537378440826539820479358385934711795345039935423485524240726344287516013796268023975418359889984457046293913518935093787943024211126897351473608054104869200191052369454684056164452931483060073945479214864343155993928225804137737851453632859321035091687537181860708087322305793025605313764411996245413175486164946374853802982760109346370003710875584457406502770435938527023655314283114637188006461102577857131659993678085002836170513451034724884670202696502676716546717487478607897203080277775572134072335006158409081700414178028566749891819216637276852004390384395893839297615791306776721264561044772045769268625555720274937164424047989987382105538567803256974514769020697941985039572998939825361062634204788867382603816427386309220111554259366998632561408873657877350501113065330034748866214057559699373650316476813045759139649891521146985896233637434455213286180529077276838462897433172563979709557275817861985357772393286178815960572281002235293556060099094695812937052144263376921575384535320814946684461905718985028687781005597017980278472120235630913517769481102042507081270811352310901335919501801856445025072901283893361243591546908746066558801166213947480858732261931705459131764044322537132179872772604957380604658788558811815766970128569797170571103641824251613718562590714267861420224262299648468652761928766287694973049774720503241226154500089723036366102968946139206842295415864222469882359380234376588338827282266071843478402602594881836273928721726460914201017154154080130019195305861320850625405965766675093793422114447648575481728627821281786183060956814503734293121064621518529035337791983919494269552129665896340348849008017559575420118702885892011446946373160873202050341447360735716646345658070829524522545364907682540366980240112118212379309275661038961651541601656326792175718449838408880621578412224687354377582334177650444976184811936589207895405957334548690404967101882205819094221526778893499787706053012040007942771491604835719722481874474192737645057913264185642759313184859307602502016824691779867883489441400217849775358356480801238224156607010082561560647651658656210375605995032086530689749704019603656293543467179227402713786055629450617530377606454958820685866179522254289295308716378192446692693931854124225121862380981567493233580231506275301843102624583170893536867293370702337267000228577659684428560167600691480440568630166408470518168538574296055880389436493879022320359440427609766950720191593235713554996734064506761932562117403210161437868937739684953044990018390206100635278081370882980349236305152399451667016975361948572914241021303799707741771077845214728297540628258682070089721603957905853464862897611021819989129919359392030246439301082590997482894233177452933497529906915758695408175594057461168416558452477463341947266745248817627245281217078740773853034503015584291247940980240425893449204992887401191192462625451529726650912063102648666660897183712873390552677321237964013375329671102978058323500685291859970712915220414818692939361912116862291138545977213284359574482325224425688861131896584909569727172317207314888359488204279929165120598390478832739813016188491884762614269590873350897889758261063061516161305841482880718388319272627792972083650699458606987550507336408456229413316314012540163773505772457428798863648390888768724427496344044385476702237073880336543478496452154974993682507230978367686719183195119831465087162123237357299509883752035449727575895230549790266329872008155955299783479893940555394878612830755729019682599612415280641258545873353722059578347071750669906175874936168781738544659971200997269554484168818895580129593926725804595822492041746508202498470146549437466353729343521198568616450987436452690492068881567777958525428486886377320886395362421098187528894927763576554311343665164066851449544723139072025328836668123196134524134104396572421960372154656328036400323623234775924304489045834756324003471919685294500923028529154968871041683507841195116723341463997318906170221214705993202460313714169678482642416660542303922450546335445218648792993348453166181290942765262851226211332798916407654893174272987635363866076255518253799292483557329448423272947932720474350902439482112209622220338102959049537291081975365635079849508255651608609399227860122347292784857473382828907812817092731927116317908556163536951688503977419355737353468688069804072305608938453652995803453597798347548008258778098531632823726532275459914452557410867530614843100413986207916684867560093038499132624450360875012659137785191316290419888825416520227857693297716773600798525062658341769004252713704869854012874811910050377596895272731917771690651669796167012800413485392913419473355575083704834254250137015723034337000066097564496137346604065537326700728933056429852300181418731874982620117740935571079151043784123311688052311885272730253900015581843336498259267969011984698559540702238641818334971407316000977034357450971911757670913287629827970367118096414650356097927915120068494467362861505701294953810919404609881758188349795177194333310827980002107701029851059686967720099145616078228767650163115083687522401065573868850972497933425886025998028467905554273803378777904843638470905689461629683476710796677142366245943141506809383724663764713543129740495847934638740801231959093514318948887275496132644362370284616709167953578993582574592748897017903195066124150650307947179220489631334950771340983104319837596342914648080676704104307081902161177615067641262177923381560256384312494754109425347511894810640486685246315020603675700166404630878849450581027881250349134220027687217378436007980418333199593062528988289729292005454326217924466688403295831501125246728185692123057881043964358617525462862010436415907370131616213900159939106732196070358864545093952883250591723001632581354740552925161320796077523404960435942652130488230889708068216849155223094843489752658443103814982486728375537732129853624408242358108585150043677433754562415459601196512063031485373356820231813334474316551691173855933956448273075249844924243777201949119088618628660275230889522470499805227048884223715289069256036841370526907965045107696123966718125747660441980120823634792689374169518217646815193991319563449170631335830622747034754586751144936660361708740912156377735301708315907133459737122684793007289548553282495263339680673898759447647073623834059482455468560850725211042270259837875088024519201666744823325041536600910085297406324815685342069264890916647288780933572933138972562255667841343192385660120183635626145740275704184946013419701984134794800537717788350466681011260750995370007078936256871147725146922803822127356792287126907257849857530667061408176788969783201829784294326233356439713873355375331803065126207761152076724438279990342026287143928545392285397929683261814853759344991195458726120542827962569359847153932135950205396948460058896295759790716378070318783821199377192574608465307082026022185990295586425581460585307047535258772761433705150868651592748590396526628756558083768044574563566436687851345336301081341061510719568577319827147851681125020311937774672884367491061128776512607075440737554792394916990588800386207258476014410939420157528573273512901759709264320551570679225359836035558416868884306887311704138353602096441235800314864081768173908584817574777614242099529511702824634715900466204841228689912439183529288707847753978128049114418630977032664047456480850476733579652937843875730269410420492485272471464976847975447108274567799609550900721504189066722641290404341201856237217380157454876935626249604371905397338032764370610673456941416581647697156039832929993499572882026498963549405105745310310909610813367229975198114708225297058263275666020893847021438064994548599227666277140031063648987016338590438684289757885117949393313662507888023525499880504400410820875539128122341463377623894151742308557185528284477848525743594884030664234593190916564713099332267769626257377567153154573245214786662250682484237937338086522114021954430566917054177448145024813228308678246449370203187780970408176264958680725659217745382587737736025866783789282380362822515733108759177687487801049435539524211422636044340143835339180812145688335228322767561809096552953600607980578470504456209655788291780485056432642859244074527584239906479928212252204757583351699754649336613816247831889319498514316860621823008019379076902504410499052582429808159516348014795252458871196155747183776456568254024821937555377799358198924920459533932271617945839366264662833769465820625800849034430484322573392048518431871828287415352574113363578180160112166307635161918642347413629163444418979149170217188480419663154718889172418853864785355946356741588512681684243535715621070814003240593032052729624640286123869872648913190898272202494547146943968684415822531791672864230277027442410432688732888447728571427695984680739260848645424218883192295457476746080087580867428836210444294376624033156848201427322611002996874660030657684197658841669376610605087253817093351307566021575800733975210434749340941145923527582197794967022018604562839469044961267654858382489988368591760138770625383423293317469847730842687506787626665885941477233871372217570507462856191064003047084253102830626954009572448535869009098386551035802817873054028542293617085630242691959827263325661551917609105865050375276050641427200578413587653246868117071665992232449024154405843393689298123398940769368720887596220722877386561512122080517896107544343772770307824590995811703145605165432614772545008646298300881302155357108009667214070981841082289405656909099786450510708204481289866828036184902989418385539206611501775536133380787425138155946414455893518361441842393471459276105141291603445639867688911637885430377984047860295772186148431888026600124818094593111338674224121604142267920464332230843170783435060058192436581899958370103593184871719722954379545524696812747070469855962860961722279730394941394967037755394151168241119186404444254504513811836541733046392542926172787029059244398776778979310223086601780011044444134373786965502003179608202240408809571185151621768580861160118271651493169506492442115068602768400209839029786940113052637131305420687909605371370576502174063258839727936664350129442827592361418493100708132712277737594287956791433262061544368657116534845878484529730864296500117710525398826710555426775633329418370561836450094269149518271579031649140825094518098431689261044138870088838886637039962312841375107404918239391774118201138068140741074883454027356333570751244211720365689717047184005052870091084290211460892787224930792355605549173845783800644486891070988776861028058102703045876015325567956413461884172061936440253642651092894444135865222299604210990515100280009448818791633775456226794892464321961956454407794483053549349129263298001274091539381700592149850438030566585800445169979795077332918065850575123748116042100408752096194685348293444428844069962369945125250255428395451496512468598925854063026340545651199018582067030464996336029754362737041946245956702056750996490916252217896888956648638607733002111207895266917884169779082511512654701417070123007663388505391333509058650287825884014536567792490931093512121005825425120116806455712291343413798558805201672310175138385315902302569914869262580847533568483174173024551700604163237142567365455779464007427311963196340400090634918641467968873329404380152610222419184360853667172211237474663847237083017716220019389283250820297712285197489235613755155981479381578067354082974137393447970181549225735523622674132497711625012932875071398966828074399133768071867405526320837965346992195435486488253120418163816363575214464427804517088672414570288117168968861174056938419232725857148800800665053221403356325155917827717237370356371532007094080623080082194862201068280510361988082563822277111382907827867513170335816131159527671260316987562479179059485527332586070181978410927688650314611881357139197502303590383576710605161287759715792449516079728544387580393369088159236836910529924452161121474360019693389281268520317384989310027108621741404217111435682139399422937154279957308656142916981090273087131466246670935693343530175454344473816071243241101458383199773340878120265729771984520500311372874517850500800353432088656786802067130923685086473670964640878559594718020847740723072331977180080234877245493361880355242262635907969536622273239864276620016316382532352082212961210945631337986140762688343303623946422537342447447626820695718923618563768885990911711677528164990534838193001666657448767709973160858111909219432404422030785225158256799952220864706612995261043911550959424160661852746900577444269784806961143377849092684344684833015037006836329871210390472763628037224922824393748479998655701473197059746444628015847814478214740882191735070899089950626640840582324055511546903224129900128173170049055591846963743040938899552759090765768392038022806539611298443563089809559821542523432064969815529319793146092754931775833190952595514464085433854588751691305915282293953815670578536949012102127223866043540887640218271534103521899318049484230422383960387689493499852134474868053180717183695500332632934334908567483280611588521758466272224030403471740042167797898624686287494399924966458005260223367178626954597758887131421645774327375841101506017470015520944503546508688020269638506561673972624234919682878755358057271917762353428538444147422162713290234372292834858366697902361269175565113167349036841981634818759890180674440077755317698338783172230496368390333406280120749523990038928805615848755502535854146018997915846079528783852225371255358117886729434788623596275064068256766684629614467430706205574979158599410842470908331009731003574787849904024785098805927106073021887718678710272397300144470333077143135621730748874990503870613976540029074810415454681531505903616409660978085977452239118455532515466297098265236266869557340121959166118622410564602930564354303130975853100320892886744736253730296137493474800533446277551710793775832706601115762192810268054174822536824034162145775310455625503038438299841393685751632824443804643102624452809478065590832642772003304144080254539447869240227470668140371555430714178168681197371327788223582677029486726631282037188239853755084084651509247252752934265739886205058391290350223627291354731614168287068693164708596847926493744591133766395487334256489200347899645262639025958635422759669473861077522185372551968714078623008291801714075175618706417192198523126323590573484934558898357975218834745316638409604918616693047982186302380194656765392880417811715889388185938323738826118625839028556209419660344178865323375696848429377899999069732335649259214742937233689556492211521553005250467595386415462457030945894076552555399463140049647994559250237708985931334190424045928554887339351954136740913890218357992007827077560810119670855231380237589110814623281417374597721384085548212764270911861081316329907157506387198520142701147969022893458201796196413017862010486215193981489257842966098841957880725413418131536084876235261803603580789572785683221055913613776282662121236671511308090229217199293545943311097064555566145003703033470116547247401837195973636375114802857968676234750672404149442048238442442806776505839233012584905412413199524913010730717521419646593565683637804113343779543662999972080607144761515496105866285049280413780922567235071082000649168046136284320260481889295493089365643696215318933162910002304813535914822503379761667162860438798594790770186534429493532826519007220910273041670521959715319641670227753098308297581618809813078560946168257917804113772690046685878371703227277261739605643939152016712456024658666857678803089888386982031338671295651703755876015298133210108893881356744205185510324591341388631867097327269579150139629563896705711735731879146803293750822622094509190626724149224277591787044620425014616702463915523808206532914135807395478970249941484932062101641210585518937316707095835681237472658165208423774732369787193727460167830939511268655584774571137377784658181448264470827869088092026608504397296458462064556099350728221110175568506008775505112424978023102831914474471955317060445808968606830976391251640943693902465380341201582362219476470002555978823119631665048306945344272559764097267464608279116286904666780990026172711427631847708910017208141830045502318043459870492617375895716296924167118859257869836197839179564234797016382201952586865661658144443583681745676191439198158265626101206481489029136671239350297089759978292517101103465783438200497958754224727333923625954018266977680743760990868557688041978290325901696157234666243685961650944083227088242579711059249420060135143732555225948900944876491010717567253614190252659767218076170017983081442831539780078080077619640183531521063430985811823069643267523406756540280580731508315402000226264929869762515422210753778803901118615375212239729264877552960397717105093467515534614351200535080130176067647303052521247600181194837374185749484457517904158767963779298089401043226284191494836637018428981086450814170962112227709126021467343192323948076277270909997674014248841988121184439818381372530732555523606067691412443749262072370130468144244943974803137138689925277492322429169446124323552346429514333938637383773983393580399926522597744820421093449137341112245690374584827235675948616608609462062012110373383043258672829860889645185488951170106680217907968591185344278670809415534504183740668223196902710253095962949560976790377561259681503273212554268767582393108660032035140174158341761415763503802396884008732646985718190432305877631122029875501890790645886961470232945555458984909578690747753960572547542259350235373474856861927295009229539911796449949567535929556742197918656431643218114358102875001330447594420647748109046929390293569493986882945060462661179040918309347927699654613604607101551155297937366946246491549629925360589534889382399300740492341463293393732263903250765135972995095775980948696923626037319818644306414542128922165255603415987319668020187951240042541384774024920636495161526335911401182339816292129527382170802521433563438592635946559071506525799978080240642257492213766749464540141027814103305813328297763845182424386152668405819316366477091638852475472830112578676020206238392813567127283249583784150724872698716030055874815209672127234932788244639023270659018708654637877117300159829157565483711007815140220033149370676679316636524928663984446834948703794343832028279356993997845768187271786967060385836894347846599802192188173630978314074497634916066740489543854262759730571220025810163040686880849223017095271209863067281706482883088355655721626290272784210065151184312617612244444208842094044448419877662334560003114297092345587981085886152743022224749348665002055411799403213267314492495114804701162858478434675307391320461844860272845577313666053037292957911629765941708074394137682487036160308173227061253257279396899382713290313092272171367770420574378035624148025217607268194834773962454913064312039179846089842180121928386593353102605899612004151421174597037876792168474051322035797419703088259299427221726789049368734058601784423167804548213122145293340239040965172402135209821166886981682351233222347072885989145004535564590622520706087478741432158075254804262055655147117451324914869141599245653340524140776618213327797655985978196586244495934324132842520480834518091485836595322851364082308175520826529031636935767098791967594531573078584075168359981634621078334582057234603883110483447045138286023487713636012867524797409297797266363373984138150430186865739287714164732235538492987246235377599143278145814982305837716836494752623156881525592421689207897297170465862745264908058600744514763964371162045666116528312393755574437881240392850361628420197598141098721714863056613143272296043582834090151701032570135494717103362062447883332842875962310394705141345443758287450861987805610371609394987763875840337515298585411736821255675268362429818736700789503722672867377787153826518426061643035526675056665357327180242800114743373757503363556640192208069564117323467260145712150981426808839962712823241998836003115590596052913666517259261030849319408618168692157974395330922141411203942102487936164308020424759870067995190279857140926664251877974720847270028253232744821108006649105682303988808416992925206476840506591289154573749619151906196293354427167509490128778801658156381000168953746973973134019829206475806779686886231594489997385775540389783312725003703254474324871093092964092655509855673383377634983672579218969085148044043349102235299006669891522605287048117303743200528608439104386241917750808631841764365779689628923488274423364789265311410824264612011179138381170872717576219200353127380041182503407152083989953017009735873396248542960784338919182226583646860921375690019353787746997239833240459104284957361925051666214880208836876017269845201967991449973299232403867086874165726948733215766266871940558885259345515378643230282321018082985299972573280509860725182039966985498079709589341844415437130250531942707899616832769225475492051103430346892410890270366662569943198833247267982821273121080186124782272003531058186753149213473607135711823255716366771855426492732493438149895512737343865193149475374088141611163842618009423613149089865266920002931118314704826932572496649765794394455494883800041445909791346459663561855232609491615280537228813122691730175498508293023579177749009817101837396592455004411952988269090588856684434681426023513608912369549738174888623180730710732241570168923003683634772268683497707594444849612497930730733269613157982558630043509974006845296579902231552897947252216296087146440375098349090135655043789326623852830311866123637345584781622566134701584016002725344900951169465047909535869581216205447555633197442422487671442146552720553282245730062064799833579659816958669942987722209215465419585597992168105731336674080589742265216264703658934995339697337694597564215640889050935718443174210167412254506025136577395379154563342160858475760756279267916599758778899136886972436308737325469489207961090862213058230352960341016383106464487388640043692310374368879155871593566236805456256665725423914291691721663462048604906384911005347244388277793839069399169801739422643101495905711788487369504203781771220696961105542762474543452297684661817677975219656486751155200362529101354856492703051194244308163823415134572369032542205484952613106282080083413615853570698388629651106815379258171478955498655621226954654638269291976911463460485700163245776023880138864494295737655079866152301713080970016416879665556530128469460218551794444351471028687329800495632905289057515197503072586423380896084430978542334168407481565751882329860937072347039752001650312007354628615537535611085994021113001705364795901017625438294468779182622225516162162126958332121793192802651452205066451516823037122101172935433530210229788726343547948529978321198694701730768283564652086116097049860090338795831083722521528770025982241564811041558978725446475704924781512910420220974236315468214314794128946168161314895608431619297131254184471103959171906533017211087448540229891739299288011357161166963429064150355274484816178881551484613289499263385854555574638345133066746685335078808500367669723311532455184763576531574254805605807225502510351186723045455748284343145582474608304701558038680928815296680447265409197933396031137256899708842566407655572261182751357120137309627858437141013275999679223137071533830057615584446590331632724032011186632722098395920120898398796451520728847853049364102195045052551110991523997238546559852931607196032694453070528097463469052155757699921029306131865085857709017886327975602819846344718827433721485885275836802348809093490331332387038634316830327896667159980169602863154896183635374554872295436304954131430922423262391120455378378940399976156002442548475057615646371600843782700921166413298140667984414595781050458215002806968906682086874302780055288359389808946870669659838957389360871975696735483621624453468666521484774490588470327955191276000352604651058320014125378545871857442275374203058262227641178662909093229611448517431674099168080712748475600648419552558682134399777729318232733991043953217588455918183443652735160913048026697976100356057625514369425629850047802107856538601770128270556539010208778389335036584867985129067822791985651553373069159299651954186770966718868458631225632797505752984600818768377292923475030699016058223495067160750941064934888474570269115923961815224333255728763083429601075601584574139899076513930448523110550378018409861798041533674650247688145564091313778059595643189248504461624944806735767580125777166163734682122228792565559278837449966983710037079309339197072675432256396624936535011611547702712814606491664323076793090021737567921160341770842490127799972146013209643340860150394442368040942407763581383652651395209402177620812094261093453780592397426605052697831855865541277191376042196503750852555831452685234594370305924759268676117395353186459388965845902353523214458968131876409353377031680833139381720024949824138588913876568383191479892767834329994730781538211044549459919771862051788202816490859431979019624571162180185649810484149421542696911481627869271662648081818307428451257700028703882520068509900455248077547046411880352644270455704246427959849782599058570274004136999402417437141351523983877548742516108214124117233600850815909058686221508486192411256543280574036563924996703218882366294758293574921953153574606341807933621986442317422761609599917475593385815939671053791907788990807262201691338864355859124947503090392974341395200387652633488463679771796587472156503779855488402117233129178545698366066756680414830515430039584566059222537605782836861704532600943156812017848410601953420218453335348430623830787643182133977296765950626210130650119749085997902532891470213444732773504966640605271524870365045291912087987015578656247618260617406080432492571452030428037048217389890734761927335778209723369218752850768599096687669897970093424087501875070215634213720000314887101152210856203280735532996244963513765621053110026371971993076882597785408592507348924723622839750075457450452507064019195842126361326680026764335281413334568901538565129391336596582465265642976641299024911344202646577493670514090149939105132625199120910521097732635100071516672709061101823582874526519369600282526381838685263550663419662397597144557093612593530639127160032615077729441950543846864512467911551800729739395674102054356363431571407049488650525716820668174201760849812663780462877107610681190963267939302193677515953405372521075879473786894408148978686978723716353022247675420332105828022669284811570489327766852946797692478615735557714527513498848877603837257120608147681247863058320941861151119349544420873157568228629387697080242786986741718067918927716954890843199461301741889400094825034946525891805724633452399692730491723061192903037162802859171743019617042424237406003114714692933774868387904751389989078188938629179320776469907206194754507107221564498291125953078160772677443170414517940147591437095305998057085422003290352710557510454539752206592634397106798287266677849764734813619189840756162143633727852304486054430760223107897809570775891427484319499246400828374023829660013521920852696852040647283292652989899318192262341594895021388824744680073247840450203716247574151158815186154865556645473388767304524649928800205706286139889083163756519665702874165324973024885593246487666735939306639345145236181005060087457433969683936596098154068958133190314071782352508464008650145479666458791017881910635686917642855079093700476332357848217922167417276210998303567656850994035373064460183569754023868043667245188002943780784996800173105472580870824681336377674933362305165384403358747234253983524954497703227340922491356845266317323747005114478649432011430830031158634577904446106488135992465774793228490449898117029653939915626537624877428537664246745264596230064313205202390638886815071814341334372987109381333142379822643136329189210386209985818490952175902110499399523685135922243038740132592320855229620346010670221009215289020793102780025166725206122870809627035437721579090256073909120722061359367437029067444322597896344588609157039475509386699191565527847185559355042635207592303183510885827862196313608608486170326947543238036544732039649918506337543587541143114283256309669243052802304592135238676010117051067879465049053026276059729573165315779869920886381371512640438508439687547718708373402190422602197890139063100736014348457673425577120736413336136086860511016640201836975241597001699366737166985736880182418317674209875263875236753047712995097726555079321533125518778831908249220878766135491138718913685302485470564025222901474051228405080114485514287406628181286408244497169533431712058525553516715884049534013504906353087968988801945051593787080277033574219739439465562493310653955713063006936501507911448527183626157814210765375803429096358253446017989819961045675782534226296388064554686702438873546618190586393832900357128775229108535531186486230861260679340663316864640086130616872676014067018233139657170133994040232831619366967182505928113867660240369506283174742016917075260103117037469602153620256559379936345832713703153701436316774251629969763374921013087274593777438958926906088735438076297197987200775265688334767287607560487994853732402765783675743882577807820509964808892637710639394384723394871060239762749246326282593694124014735405833134948177998877650704923987967072560807096079502103163136075452843041774601537680580518487818072157164274076079018099251011055818325899659017913126818677316739814747243918010112375779107449410930126752696831159202976773363162973224415908762762648397086640981688502608253871572839475368168461861992851900344782823685364678432415102084684509060085984073944950316874334139097000521848282923151597363111246216818424572237347880128699930193879840827060490736859163971462364725755286289630026358515722561306478378951150664154862251954992361396835807349021185002933939495366394970797568485381206697507023587627524962620705116283515818177697226929237737279234871489733140462876759468777123481517872948684592415066226322044591259002581597379455922388821745680861635173605329210183723536804149936805322647121210249060517014629466708370637495051766307032497163618375233312071678943955269187289887118040572584885264158205610115131432802746318146891204913152884207420228827675378264839061179693093988921398054221804880268402838991418626096207720878264661502823507951482502533852001709590127064265367353570186129833208066987642542533477482531526464717565720197046819978783763823098104856958582957343264201787295817452905989627535207654100901744525632959265852577231114718485576631456626152044609855875959185215875233323584721485510202094131130549278059285951025645277175129440766273665832957858372446724644057085736774501610121253811989167108448393384738386588135395837217911607999858843893530156836618280502196515555060338639030382485698967065808318755699535858480619735785576071524252034567330532287430051454467570438543147789957032566098901207133637370967555968126108573765823940106647847678646362353942289270430034016781662426076910493627913723773744548918886890217322553532979110601432561948584909725281222742077573241915472901351745654360176009101917510777299262624502480071494703261354225629908345159367880862785929331423285237136090218555973170258689358196808038379258335689451793094901107797181495030249592456050509446628509690530938451239805978014696917601002562429800114034028697150318885833535668366458292121145979455995607433503341475032426484458010034681113456020836615907699483481407365497987313378936454446243794338072854840192045456076864173394494065479844991481245873041511267531796706073164058766794580411585669254508987576100905715838016085465582966738510741608517785347859400120711675569400131340240647709096627355764901471405776438961077840113857478926570432625659651823785589758947309281203460548075979669133693780615980772357295702134280761274890745624091778435905074475283251696321794560844348605156737379119434407600239773101573249147927015208265654450962637653105179070599121722792938852526569260662453305888214780165925701668300412933589668110399976515098819832956420895221792036230856277280521502484450936943803464939012123153423906620596927296732623696141567091555284733304888516495889854280518754099639417020190327333424311853285256989988329003363706986095907906343440986826351722817198218291946157180160384939524334087127816777905625480603749755874706781055778655161570908999534094790490432175939909135575423581241449089194489018201770085457552438816501971622211491176415490444078494344577112940997165961593503776023622942233456483259546137196486252914375552170812391016511343372909911906459301148561526570636141487282473399975715725370110827720295351532407917040986876014286710760877802320216291053222276577967518685133024896007948533080465073882349919099179943138934195300130914624405735678705079503013640529875571342399424902152152840461997225439074046293766450941657772688879233950821522134072573368656203746802927131162178457798162441205770511254165827581153397628923200110758226845824310122474231883226209150940378095039467685899983500056867331910566050371384397635103077724514878860322228450913763537272417227538836006409887845045844379336237845585163085565215280984452654523042231791998586339920443334411300636729562778990475019647919670820759060221745777657692978147562720635614811054473325992269521677285766422180321225910220648334629977078231620600022401386850545049330760128748153140521183533899649875201503384826291969392837902514265090609856006375951603961066637760085058422626597280450593303516822931271414847210674559463699323094164391192211122409114997455272628863196058801682743871802358268155018599267415266212902214220174267230306609592142247999681735408345605888966954814975761705416669853177131558704038182190964426123150146688371975303910295814554748740586150625214219124289420626380365054110467052793825786804640351835950052946756049634447875427045866364888664480068264057954020456430868770678245474783699641481052242546391053987525089746368983465862787671706073431970543017223586260508455188514860119088070697047967165823701719022886336217490462565240487079916387003059916067553840900845424611812501555720703666589848594403236151703613407718990820136733018531123729231483667474562612290244586287058642134441444155287554775092682047714663075568565885348008916763189811877622206484254662894604938685446929489308316889999411486720318242324042673285882291776051624160397638492169199978924557210491011952887267807430945587075249088919625675102052677660276064725685253237546747657281818341586512530799089517828706697626220579301054408082636555400505680424399183469042860172167758861338839207686929805269162716895981311990502961919192471438824670038990255255839006429995463276408185306880899807071965607884196047787564302896301890908108815174732225581549719542986910416714689600284503951481535087277467841928615062743096451180513555901077306739292341738002759152753635575009506068483754173572721602113298871848894097338269251634167158185102189196369525923464373949040189261990388344282419502077276714398021053091564656151737733344912017553779562007054684012265006799154533949612896368629045440136820582631350740332051642871267118259780854943392962837510170116936611252674635819486700105986755779622005721079994730214073092794731219295461739091134994313237218988601616079463861397143393989557784453775209871639371580820894677678422164919960513491598713309452109299142647958058996111168936603985267489728719689591581527514170590737489067560152203912273575680823392314342706676694357210875162402708541782749464126419540066502937810579426244921181278193426342710924586347352113501086524389588025219253377062638049176499209180891230890934909860705723502970037323276095741744289147392195269599782942614689023867873072596913870430668096133151778282448986816490124634661508899327525288623181962911516686436224143241156024619907756281434273573986755418381563090955650674170114184482068599785243963874828436027916320744403766969638874460215411545068555082206549953842837996827140276445776538906096552888594012997596812001937873575056877500339576557265766529641253566375188029818953052869567771144083369045695201670315635100892248080870402403055355812782753169579498451626604889721691509553825776977823239751245409843866083792150620210633263145805076914283069410544107004493314384840278601888080542968356467086896398812743044174968270934837105173171045478534738408799128035884326171198471948197675637877419279924339865569632453647114955536146338431474553415201244226057817332555333149626780553763264057661437188786302642658872995967056558896105658730401467038011472492339362804114642653297704007735389690185290110643566172182351796013022050134954710259779502340091698503878823829385532644826341087240045990062399647517578742488196066282612683332957766195255882730635409807629414941525921742970127586058099776803640631925663470522418986909845045591963822956999428223326922731715642570760835439121913339450312769207613548508937692085069582541154152457806471122178636301771536526036821879415691743120304399582142313249425397764084810321711732766695502948728795190561594148453271308719682910364216199136624101861882680978479456675968296163631750418753301138437767694539819286602121415713338768479416021942336378923717685266118112506701721380881145410995086877046765213119182336206317171340031956033339567019773305445801108751827311067449503114310002141295206432610554066292432245632668601073732855574602981306524975528441462428492018742096234027121894270781456157111820542778919299321854354923509357645044717051778594205648275567591613648236931190573916911198717952345248371514553386669817743542552454240690005706252202585887565468438017089356962654247677952018112791447761962295586864995542809906356362847718106774228446373324947878037836669623696418640536372682192617521767699880669267659966719584709846815770965159973721375812032315600252889644948907284645357897155212370368150159646578694728166627011324835608843318799643814078786372810717384441778169695011346187985884695065719595878041543439808084473422756728148714302501155894503432500828011850110573924318009992562420304708603346148901071620946445037173315941232668019089428480259696806799697659459474841748981801737750814139469027521516680215528631222067364614651095781495979336125773241455249197842613047498870310134475983867750249566090210856153981943260737051594228461558746514017903703786244931348667401415573632240131280895190598126077749203395870102455326177270662317263074943012866454226454817712184783487774856106276973950111934053615045924403987467693909541303720367453195834001861920032798167078225193114864710516462832015833146993862267167273713048864815892395746978094317049929303627516604155762617050051166387964430214533327186529006063666374776321251565954929602436308108245172200995817521534981041032091990118963219444284080006347355042733730463119779168334000428978721863506985341574779124019626516201381135783263621369942150757079120814331709820306547862319485639099847837667872418457186769618646012434272657143169264971603487543082493120683236618299798992250210072004942003315557628562177950193271404102429913293037517673491887481415168689087089128722894324662150865763104406787215924252503281947400045779468030685675104477090346826863637462948200543150129296808224426260836569338278525418797600558923533182593922857208948346155213442886137958619882061896996964450110081732108476402600380865881621910897391627846778176063427097221618998555756071917958416987068115136738382836381611253211169581443624094144060843987773765025299399347556333251911084765309734932978730621304458681327994631193658275710768378037309439574208455937509812967874758170525717906977013788712619287399413251420290686395207788558419200167612076247888898511482921776883817800583139781311056079304583662370700353576611807502137461669659977599969568183158106798868297095581938368862169242458859998936525456194856350324688219169152193369590714094808747239093343087534888814213441823822408554014802316722317403261483826206465879272612632863456435566145747956437073035603509330407470307733014792784713561525243126253273474606640546540183637587774892222741445890758530945492185105980258071347029088338174153604085835648561390393977333435140685979062619782208552514454209442735584782970273877190483775746787299650842495214205579633850819836171882129067949595874542629951460383287961608637912873591729304609177887824955584841239514986618254728647629737422417400363850285739795024575315864274211205361319423336144045222220868119573013383239014722807099898937887064490589089033470675982400080174399921809854051544203843549656158579214748755794140677167030355372713067477011181655002862612512328272010732046077336908627706029170470255731740293255256096985352674447603005767163668937341447365675106426261439514398336945221612874384212738389061382721787313351349022144221551552053745367527588291478865574229273699651855561841404061125212847057297582203064070414135276079558058206060145831743636179657063254959153969246571492829122004520340925876775026321543971500464338373841722275609716276195362550248219538689213523557852390021206904855019413925723762863651130039993358752774840333242169753046950305235040913017109247544547318446527393255796859483700953324561685699193885284089831396195479717735741354505337897204761254008839947700945698863808407017557995866218423532158306244720112411563493542409731190498911300617038865973038469785620741723650150322144716762166009477192793361725050118263270390902661245697384135461760009302673721639495553193427334959835103647510109125286517886770572480491736158334451707848825884668904252491308103794123515683573155503012487516846531482861135275332266500307643756789825011719531622730351963809052788885889465918469760342306613809792957877981084672223885137282373484802802701522398417730437671731691943839417590219493746525962522271316448362063459971373902891461530769189103939812164461243441818690650444816807046609092359835754599840394703504552363298419809325717607888161229556852902945999051531960231251890057508952128322678648061582015557311984856885246072113778328100356414235694675525976190758642331594582126984305837669588980423475213987069682750808453060746512053549814512105784145420751212537829760115424019786064539183836303825494058953093907422651429555236814138333331501265382288349956129210953419542482870872601005417989843125424248766980901311638633861547575555501697245860186255309669778859866041007000060076580931055709354700792382146303354760052361892899011053718305558809682495782329195099448121447640196978277376302738486009717804085436804648036415389392582207355322361229584947409544261669425826422448711015751559116621915128596369963035664187849543029734334021199811790961179458425751929361294174115088418233714789205077122015608793501710214032152166047499799023155754788138581237674907723269078176342575343973958050946816767663315848591705894329942786173507581909244634128115899763940635116619311109160774342234001466452743383779576001734941766682382004206362460430558294329223041107730804975305827662177959427619490331721650503835278923672232135869887345954522610897569032957285841542550980332859242725621986509360127020600059267518211342731555523885460095866225212660441812244817626387223259687061735238024468995102630175170551639419307450841432439789003144924451917350139397428625207463158637369808074296508652512646727519372132326709920692661960365762302437491390861903237485173367742214063538349855470282491898895127320011407364618423574073532998802879963787715445498453861073745175472783069503352273253963771556672731042673245938952753262544421689824703395686816829225512788119668465385173206263676821447063574757613835856252145251572467781179827114071849160504256621780460679531109183839534335513997178759900931776138517652421838472095459350946483178644106147925077431825583466433753007995295474222465492209351209775200202276500675694052573744709295562632186735335425628275763562103775945867776507861995175060261530141464304280056318125768369808240732269764495916499931601788455886765684604875221482691351210975672307974758752075478244551678807270339488687600169461032588740617907284806882115525365534230810806672749269088819757314916384234386192296838625496653696327274473489755446534511287223664096528572552961273466186123213867999336928860779661628740646511362318775153444685177744846887789165556348582956720001277323682809719732174509407445733235372738634922837185804990806830803422791179510737247393343275365853751623366224424351844254250182334683209574159754251680141298926237410765822543598133038703545832490877395297060878701973064875391766047729628994958144572655250274031127764781993884750346720367833671916724746012062533784704640328615335869974141654690797998790559727840131988013073519370548888723003283595450653635137811695008695712564088586859921436251977295469403742389452084721150936969906765697949497681994600726788014745676121667475767136206054212110268827791442813802689095226341971559133994118464330293937361256884331347365283696974201846153542911573084472323708423000596972956861834986830750035069019329465881180329864341060804438675288129181607666424785545729629831134550590761909035740710863629921158580104017940537317227733882544101313454230355849062124569954902322897599289055172224236521487726683750102350094414760072784432654897192849364299263658742772305713124007114390119313184143296190857470219996948604850551841165956558523167876474205704703754405891505867490612004440366124994935258030731585507863560384410591057731099571378719878289586104068894719689968391772411142297617558312986159344373485055708462598535019176599550559575968454079213501037800650248156134986963659698536259769469426132865932583397336477962175431091379351087011076149645594696858760117258075030773032037629446240746779084833930706379964228811001859509019287123846055039252800792009269530986899519681915682882322750922718091814844133926302735496242502535475773545893778770239094896689575342428528657716734256207613920558468259702252565493556573600142403784505745670429517396983960899933067825922373677227129272178248207487812261422659461991940756564119833157756866751053514957781866295777588005001000586370024495207788176174846668939061298428275888194416733816453445352978201052421549087856266342667660816742155684004183150997296216329829080242403406767457929997818390841508909743954588947129351841732567507899229633430119505218209747714175833462554341950714278324274801079971868546487981555915672414192417321270285332103454701900627405982185572640159247770228427321961588448143403115240998219006748861105254778151925202566224307040411093351141308332001420926565083372499648940766653425069824722503709448751738279660953287428623861892074139809418785794208549335331260096178581728804813783681436370629277847428870498993389448851448289368667638286831294342678481055772866790372140158987286709626685954672090094377378130156043937443755264733844398237570271487861809607621363053840473948422896320172767607843734309773379812146221309040416808461934000373702902407823957612786403133702543653154250825151912800094537598748401815316590436710406036994826518073040533673101474400249708496612715349875765153313573474498660370934394495999993764634129271440721272487948332579517113232242044335520253191742400113050966446966618494257921078741183923658766228010476466296367651039509647495274901090928050317436529715553967317071957613408853869257913062977586910592294953620244409209742811675248716154607050526042662035901599371646344784523314137788611629355237460156433127298676004842492871432725944358627820434380082562063163579234186955318037571948152028427000254984858543336832193555619552773689862501281377449878714174343477917240458429084647700096298912632090725757368721412283535908952018234897445847266036393807210453068497923477067405977501413505490721615512386941876693001973207659634788744909445668520291704525599773426452286555427845816926074165668906858984506455462817462607857532455293371057548841147314325315514070048699413924120573621726511050304963204602698599991706039279893626982087512475523773042547385795754529363047186560765214246182152735044013955683181542831461601458078819512843724807618053693732989801816022855793874060420407893383901092400836000304680916201479481725744047347414945151125111858375981443441419561189085113916805805122680403928087746825866744278987972288133477125155153998861341666173074794896927619455662630362066140646897964255520512227903082437629739918524061330360064055953210444000836963354887148040240108810646646331326064235105543271629758617424468435128653839234593354569450564355295190108944250666011358171631519095997504414149548903678549166452308485349926683838009713927489547842909629144556499752533684785975130523230694018321725519453353180461337634151117741796420513445185362280331194305058771267278084954606166560592310360734415673374412426316189604738949119974842758228011626060676425369254067961557407752251770714580231461027527866064832920147882384180661964736156678385933466288046725823174878469415107340149317109790182876345422830025204340725418065292900143464857299930067094005373413837707345705119672054921013455830021988748638920788517265671654460606823357878725745868349531708340130189794969191797526980801557079709384927379243280653195988565826989975504134603474817831262944865869316455734030116250789859042162988778720518619662179768857040057196624372360722314699913586119336094627040283299356646001167428286235929429960455091024983207068089114803190418276042266952103431647654375262691684709665190599340971819822982951113834715420585526257804235778351008658272377296468432093339006560116936903051274294627330415713221094587849765466374490747066833373224542629760670429654302887549437623828815076572612371388948836931070110377392854838755542259284052347653735884648672158011734580417167156017352533313506045333562503786598790859827231334769362018031902450499796643254528815397581516490859139800066260609362003914574929327463803977861131012026986240971770587845764006309955773857191804571264723473599242572535919100483061273137092881642127407356177938176853820945668286339450068623412904609159079016189676991066141091080688356546292039771159693464933666018108087866683425736841893820714260635335616311885237789368151330733819631714132824303930838249559858937103244103475048847600316477201980943748700648093525124298283477837220817146870753834552300079654560247571077347885950658919669990485919598506438470478144109604643170411058293596160075881098299088474616313264921882605835292156845157865538612971954955516722961650433739149802393826650714024848533480148721401372185193510574009592764777241214757202923599781459189908972634364886491146981292250186651660455299386381910215037906477956574983221164028599404670942694577054718584437014500663901978082863226635046332143942295047682613387458352800122739208769944557429680284003665775542423318640857070415822028172900692311601814226263699481050782626965052701708677735294874083294409569304675156917153939174905993248677950494688173683091565972986498393346823241869877074481701180189640970488626891555616391464276723769973620195751326977967680497851138433757863167938990131138136641254399677217192209557153798617535631307581533405572924044600669370953650937276064841330230371342321831553187185866404408679358431074204931119834385422935878042859546342739461098395882287168133567632480424413077047733494703231332644343903566195456114873237259796093705112169674934339578012949247710451468649666428860580923488608906569620753155337373544603882756507977973991078131035972413972350435749424869941287742345607078765107524476516061402521155189633046572828278012890165012615442566563633215495703940382650022115712041361136416194767831417295016342435675353327665516527974348273407660177536197532132543509221550786049730669271004063011582895834050754236630313829106145529384495096625336482770167417169367830172171344936349054811474023652772955618514776455309022977893636560643058737260106999065178583807203073230475074369862959329097102328929666645247708353788431864468799504721170416146597908739526503227133802324701075489517362783664425553710308182198633695386405682689538877564146240107277143778739852046730247354565950723654095016598068280706232371916087901266098596649878118321844700076539807038817687985520473690102684613863707679186058307481871552212922349872045587242846149534079494057471919534806197858054499530939830425517749517483920183903123643437083409880316405877050711145689125086420421425741080896321599358080358060254807659676809826999291010197872108079349134539898571294508712883702771307908388980720485842557325421908671902138075966095162981458828814409262195551130352148848799328314966554085074852470335260122584082640846271449875314871929581924531839916742166225550691082902405858711810879221590859908098710429777770277954318018395996303202105547645548054283595832704880687253250690447082780796667474386983926343047090815670328463173616251159632803481280507339242339423799601979019016084054086447353606343596565498285480078717368888509631111849102678006172006842437938821994259619975228047219735173628782938017283486437967498722257663656070109465027341909877917957504431840224042294036645145091791535142301050842921414576288256360731618717087566307530284316430817731284277041679725478734847466689957533043887364091443997514301852483330063760477989497896299035299446559389214534539736487793944138316770706320190916616586317781276699924110998542630460843290993887586300378375003292240858447714724311245757296459188155627740464862619500653112590415122088462242883023294977099247560738225665954243711550543188095512731210835850687064638245186611935905604178276716931369936717639069834590648208017066689035840502058182015018568186406651410167316594037021055091192312838627088571544320028280491632949601520431214710052225469365594945425197523342313116370894326070380027177685666194809585840980587457800055136069420937048279874543452467675036435584204574879536467732587544414537169763270269536410467333873992339630431164947362058009750319114679703892701901511168530611352409945660782393436733762735816660814195483134091951117468373967751986007352332442680402106629582695506147426270397029592105756508937380717195600836396109874276582836893734207907434433967469974357127485089173408114485907453689665821442466917464784927524605419056498495656131148442685523619956110000244820390906689117673944308821978248205961806550273926141275028802281979634070274457862975276629966112478011358248837044901576308138266380150171638119085919932482083337373251655933792969412824293101033052601327867023929544798097495965981822093565581297286807455966352141273873303041210161685870870571236608079152698409320774707510048839202380864901846196283105982748906257356729892498012107798124199401060115870148695292255918375598051933675682465667551283560086347650419038662258175428517486350664870269992438167061733438847880537490407095700087073240686695241313412177999900223690130653323567440279515151178187202859230683314729757465790475268106484628818528343160564811167609398868069117035559540521016691923319434089609293033960319435623105926711480378322763792846743287672158935990999780783793226992429670600230822762364475951331818743704149102615882793035332234990632505824321528170069064464999610480919099108552562674105863071153556478266893468121957636811046463632780807212423223110384800706677406539916950013153648827135427361741920783988086044505372968693559062072422517395455562232372997583886980833539031774435323191577284672558313325730688903307457741456049925627405829784121339241221773308298150592247586372971832419917230535259907094079704636384879954621410188127730283201937656370960968519186867459969906016587363070380496810781594273571576985598339997560979870112408389892984938621515490812311109229046106559369468149335871077010271428540183597894272152553499559808646340107933203531246519281700715018560926050904948226551767206960709643294401352159825738650696749340354973238581512213237785033917041830302395910286481085244511236213487575910962116201923315623514570021449294334775458828797052308568982515727080521851729659291028938641974760933276547712493778369176650684379129671874045849858677183708380589663922640080174235650663300029249048138240394284647455697100282679411283726381307594839004306859789186575678606537253090804222588794958272169852139973032960647858726967302772414089983242063939926107939790798383606470270287898688141355293687964773276953480876168441139654308052375088812751426981014097094166349841581239035939445207961380747718458693963111348049959524025430170023121097695158345472465737328303804966062950402584521929152658613190850225556588077170679286168222156427288092139352468525402736245627963835290699984964262010508600705230511315347913295215482230567326417199806868739611318349337292436749816441447044702539619566142043545796809532115017163986414144608977121843031498458330215900047651291402450475458032622630958664155190329849554541232773249056147368472411376048028752407417610321526469779542062771859667548076016180226065398052617903826106104440675504013729952389431332098784695139316653658727458079667943087318458062438339716897822921134725463315753951688322510470569828229973324412938231126393934465426182379162540775723229050816563952954324393973913353251215445534664676548344797677152424094302095715224129220156304079999458359983371158073584864996661300316390217899122396853090230306904034534208670104832392823027589456546227585751976568437455420744311921310621410740454650380986253162751187715819041170288039426648911425502883651060142160163507202977953514590822469843891699056937457659586586937586263236379537311761426417084415151226491242358068785285368402598296629058135393793108225089369297195752011064057016232807583377575204960361038526779337360438559653285769690815755425272217402745151216333684082209987133350209558641889245861592539283845781898909238729588581720312371413820907726895191687916656893921678567162194724619510710866408880314304411959560571021334660753163899635268605207613561453043922348174105263154312164175050764511553951795097596811090540894964543414446135287752180227672021373281016592826059824147648347826806012702833003260209121830820768053112327112234187897242651444881448157499056979958169272463427407818496707845681605284514469537484813582832921654003527045195210665766398018725202523903617266743902318218129748810635148504584462517777445773517036631939873228799996066886755336455310523392791651532343619866928408461856095524907484276254082534425489529712185466620589357930649256352112216762416452128237968105614807475558863699386322696364755809677147460811914520193950410966414395093007267541964899877197127124389227782340477489022232727482113014476215014327877281019610416787772912129878447677791276455520052848137693508692503267194355168332797831293115861876796503670628886040939304798221655826129371638745387844660664633169772694542342936187183894718857826320801011969864222939703395341830904615339990697582644220790747606592101513733012684709613329465838302726153190686739359156489839815932159036012111324379658379510343182469781570162312421630809395809259772396461916823205881390011864420306607808781169333234896148255022815314152496098698221684410410313971140269075007839083673844233675242181445586735707394642805167783735128709410466704246404136384623720448529726704307867041773665005680190471858774821893379712846717125748804310014342283904851597964943435362464307424458132331628443070071433022918669263929982154748467578743335383862232516277710179226016349000862827901211994614130098659124627046335711636948501266917623420124754819968773088814395739148259106551714818959307582928917331324613097407993081091669927484423723097534554239067356881989218174892413467583845808719050087654830889004989511680285356931507614302217036021211632340654956709942238571622574580492820013378580298437914668690186171291294500565721386790749907160843217723941594227288745814736051423073410296509096202592893176221944953432448402107394083210730647213356000626651032232155456190022832952293147769936017616085584892169701609448009040805239605163743800253364478034236891621359058665938756578901460857126271883481218234858443416298904157013912120551091585345441888873570718467207907098529788498672555102960566377541046996932239465615255040515735062195040840355079567448739742291160605608011956303481938308869966965191619641506524354666089696330041329297535874026186097834884232439882547729245747437096045808795491317953953820922702526602932136363364173846367042265189960870740491094413613965549444946323901125015923550185352697630859696006868485860837164523960875376237743234600838835984745376780264412206086961636532245308020654300281837843711491280984730518176310204416616564672949512677330989442802116911813019156428972132284685199038075685246773586063805642791135972025709738340732140875457488519880726065963521154199165665636145436527439226239650919935735736255559786471896384396387960600688210698028980604691383741839339446127662803707215433900885571134338606030317137686563581372932258592944320097560789218127632122989949796367751246042536556832377839761502448794840222530315210759809733676164546830389986571474873205536935132243279140153803141268890951296404179638372788745183419239979669286047649397031065003733489436180854352319605800003121375651982526748226502802673079166962661710281252116033234070398095616970632609062726313559771284299444696966590824981943804770813423722321418560737604649729699473874581555233894420057284639476621438575145510554443143804518687417165546943357009778879835291894434776269922965811446884424291352675900146403170769100743628260192458924320603009595298512569125590442430137553359992536405038650364581234568826012552141262644354584785484316580907080465813681360327119672502785094399568664807909015117461277691189119761369252938937328067003169410803721626281542701542425101556989751916625004975172383901683678534420939848343625763844799177354016054253266395765310851669231442208217130398658006023460995752486069930949566979650718546772193823816260982457641423804200265380781915364012271945773474223765508761743153141432608652892377439653118588023148204947880854164061540257212712910186518226526376497425476788495391160144500591378498057412032581119476767816427000998577121517639235516106244132964234976791962669881871774446718863525908666112228147846497251873713012348389782076614949276062119480477649856120135796782966645650740666650849955722154715133271842697147398667303539462401394488584250673746116257961841844740683630159008046322796171073816710949645157737584298992898372786705443879082879960915147142197821934449357699907601642519822260269258265652133774145838923490460136457881241285848405392214114228666487314643272169922044888739041744696822192093613873851988758234033659151014546559982383346297646909421256973998023149660990740497123067905949917245368505941613152599984964546075151450765962779882244933507868295587817310726738989230265487427738218821796306954429274442263321130321032002260622367634029202354059605169594273721015935213896289338570135654738153024901621625209161539853878639422292652548215137375223619533077256198428162199354081619057308702282697413950544680003246487685417036843215931283773203410673464346373455504600151778813244266921165328028837274627638318530370729305412332963536962212176976495931420236745918176743696894986232144043292650832754664722812760926007987276038953005149432666272556132589574054084867781771174806997097196565004309096753708317768907021888103954912709785673000897177844037178121484203257782332435875172204453010657619333945689351067031736560885285430585262235838021310639599608982164469382783809784227746390454909392003883657482121775655316421679556120790044757977170510056847433140651893205863447048186884048972257014353328191953847557344038166879608258707624845040853445157271422416240208043557414224095167735145604520258064813823732358052255810688004455019001348371292722221941991551569761342830468788136105579335926966229009428120352967173065525436938707610168852224149504405332480369954922241921872501310110813549607122893784279285812868263295594329689362503239874129362629827142732976966666621392982852003901295968035392735645352216254950290731662081454479140581628437601340401457358716967636244918268539255713265736535076355502269581516825485605690338136374925184898904368688418978397199578000937926008140118778284646781120719236738031958101268349196228322297917313550924849798734294494441939019857143163331656238085080167485494271485760416862718635975160071803107049240791452349742183045944459247171107987295773966799911308758151924960317954333440275031237918844603918233109985625988814532188984879779808576502918844953479205951409041693344022715348987457077652266575660844993913847655594666730553210341280491381649175767797265164020041750570046939791989489440708017238414938874011757146806167569017700284505018508039368990778570864190476795264364704536693514022460260055462583576730509952314487683082319750174940552242198979223326013425751334606219865293138353063756853049048756959776073025885446541445347970172780675779207338496879542480734515274117794120568420797316293813472854875420283535163557403946229119724549301126988445154225186162973397209823871434882289946904395717771882167345076127578818986094737827283602840416160037445328407738825649779810883779229280273374509039206449302244309125490924536473347525823396776978404589530821067052009157046401600031147987942681454401042057761056408637124604152755100285209178175703189636476938932170345701035837728338304010895772771772689974507411132563156309501700938568842663618338757744419042334282100193973207011089122750779661797425117864790493208038020606267307410111223741287022210057159129736452847159359594236914093534336814350184564876389904949851876499472648284943363152514665806345714294818449243940353001218643053089813065660035602775850354685930131510467802835674256092967896203365139335776511603365798690014764700334332146245510121141829846703451741042644606469468860836466398800768666228761076875650013485576906873202883570407823210662281416438455774448142525178880268003053841206573760690165884767288343851544405949244275320962783979426721297369849353639008354360045694065571637599252387614878285903528738680677786641394450574647093201133695014079758090380637369723643112913889127992006760908733247333705500109562431026315086030914195574488118186985278517275444042141064874119495455743334603685425983832408176808353238162190195311455117821761215434089521596739147712891904458582276417875027943002711015593024979644536746513438682004465453136335631864971352823617035001280604465996235986473529087445005870043932152987448298841354187682093855381815108967414396382300140214630937810075048871666068451792034067223064752992586700580891010911876427673494555836831783357609487369643795935710161410818808649788743547764678638566281215236204979649885438170487204303824654336470338852055037457613174788706003455155384397766089595842499315473784475950791582620308063024863544572286418201627117031663716618654657437256647561755583773567125001552004102470895548035695657748764636371776260680755322616565616879796423892107633580699560890104681453234285242806682811501177271172550091025995062490496466431532840611021124598126430462335824633191852014468602660911247035490032181998791198943392955318894645879924245489108910954056378310336980059137857232705500525509892003520622829362317623106179830744775841431996081384922332323452640968534745593398635324808157884057931851943281444989781159851640744049374246151913807557104866162507165994583406342065085235487777147586732664741209088810033131775634147327145354730518522649096333582913645444584294473670289931062646095323561226991033046736359275016656723608209724547264661341801536128402176345105168706558563066107989080361494973497363150024088498161613326050050156960269746831250089320192337037121982374068628281954087116916083071028091391736671367251945172314327199355066963907781022322563434847961753536033817932757384236597700115933334146522263566296980393698294940881601157574984606284385079232710649718729364831291452642644402629168571732761412829237028190976125283294125421740247746241769418820121193687563408238055682942817880344520682014422525008100271059226769881431161617629412922208289352716587103701364702724651172078267474411747428486131343069152260672595524596411171405279086634933790206362974017713860245372237243292039747599815122912472156058268687675205082871419696479450297656120287024158342637361310212159593247453815945951297499537142944121348098326669483304485304734538191227568829152329580043200486854139536225343164980280181740310392871387261923950172006933885354624080044752239270058574687185028764482190046618721121994802736548478835472399580019285297253481236182893091657790218870417973251000156710754602053342123404732195384588848127046990595697338992732084915758406540437868357903627659363044703601469862780396332746370033200314447298812872874507762943347631359934200625841782640228194122137984941326633125252807014865025694163494177464621194068196036488644196303954638114837222819649265596433912706130344862525444992454559651497000085030100318617017273359059086815859387219553603474789145258336722796755266033352027401213638601349201941878710099218944074278466447600289955710472512775654620241551628653988167898210390756465124269381625320671200112395052152797171773063425048384907680034493190712929227306938934393700790955385229127011057813107625862956945724268520019693620978440967754804285307292380709837097743517104528500190323065760720583568537733000467548771299364753483241427349170977477596218500597575092773392518566953834982142441738985113919260064479441287724040488581193433361572455519048874323881652246614434640455983683903756139107551450688087284870227013419437615277686804086518634123475342410139767738067580201233789307633077132096756957411212560609984901806743943259389227349877471486807023161721143472102127927394626563603264556934318273107525627045847632733864511549788806438979479089449070875563019110567676586039311377051381808913830351005207197139146525348676380738240202317230801528620322820611705187353969654583030309272100960670752871799538810356175331402365555649513247375854579298135370807664182567302652348889567283501623204269607694495868811942434443090182817141341460081586215790111965641606264804426423267798196201091348151716178191085551664168967395585376275652780313331502460766342976912648118345077736403947173917079924097951208081120628875083343304744061368060184676595503640394841947441591705259169162225304163827822874375725281617847203680826966505961199769023625648520166615008886471498779304077704063661833776343996801552896157067075233262573599774079555779840113831209898768425556130429899664834704314573838469991550861403554638140285688532468585112907702334380234559502915390026649187576376608437274885734088347660579282852882296843665558413686851885550985363839970002240502144354247465836183962462998248443577445949484675873322467287330436146725245251072708572436261310423310870099434256333964108650386946684666213793322583710798447967567420373436509546100908287456592701972548711733636147006226798476756422635004997672645400885841890610372171215117680989305191182501192923780795290857947159552558261476574613796587152370405501920245344145092172474865364830971344305252674018927515133601571486336912857992509445369044985510208192176943447961328416437704443783381062046410467189600234880314831845490625901632127761415279184219503486891147612323064233362929426448539701464171074367663320126490940267910976650818733440876874881962167064349801897750425825995730564682947855469300264627438408859955363382474822210581790147496205855740504496676239390661070018820566009114989597773307762703189053482261496572816632981146655801797269607901230728541716347725966263572622982048837146374559139096803248415626734344924419786749324765092210187229185898853014142600854734680805998334897939575753034143396763825243641742736533093675400558251267047739477397918271375520342685452905313832606375776234393063745631457737401982771169197014380183405681520470106163697837084016434570350752383144695030525160322375210828934032475076664113127165795777678306188890366434789463658309023880521016976990626328384496325660449628898857374804051727225979244912793022922875394594983327546980787140531405264959887857884550630612841702660589286855698543890862050150105941685090349484355837457261374686530501462309665243335978411873122597848952321569208960439078648134889058300593279814271411123058485309496156151624994870687534867198036984824140878831632922507095786160935194696898926583564275986246947393736268008367087931497396658956640932158649786782969785250578708746877094411467444735137862621106625155163263183946971733782565600201157902960072297312457496498472268348327392166604692806623333740048944379610371575272766375384177806432110704014697618846055021530403211886428515068260273791168305098989451817693944787519385907579597973647897601078117287094960250871324500152221279743514864923519936214588425518307937355288728937996611657724604473253684171562930331311429588929597731154252459508966534579525547781696510781836127863982083877885436704566089110016603653821566030867530092832433202705338860914602148560534969237017547250770976078128097700695712692228003901156422318757825058560672622618926659051040834217771356213928099193167229120206022788194972833325169509009383361324437069076711527287976064913150468010397462894992894815693804375188244314866254270522545602212192010642037423797331051817207600147207815955255452079581944157203093923390608398371556588560680759718985001447815392235656433331867777577876382881495607460227966771217482268767763571310133794193383185046389001731616772615284596206431902698058986729315340821538948093789544621705021820150989273504157804754006397363828281265152436128679635238286991455402161581328770656611521729050732485289121911501516016211280517955715257418103584031746071442393460540365588805055783410210937035189587039879787061079546084474086398683974868458244250660448208799981218959001616709593259234707273288049876934295968066535635390529724577577073520257205443679411154900647164211499289084749346954019169414434513347332919683122530766526281200010200098567317690734596120811796095069189305144771813942991139785258214898408435549332716040505350176075105383024912315558229408974275562997421325197250107442176340678677013886487038902398239674420208717958845928713251197540793361583734385294445115772423110959213607382272870587717979736068240493583076596600336499579770554406852162394748536809553424525985129068332741955359674889699114505201729664090179244293731699086005699378694724704546953227804449316721911371569033213842133576091932063706536017949688672781193752541158115760866383525802889017141168029140557426358786401357069481652004759237022974770719709374401605466972525727434127276344143852678530992133030880054739686708477039475323333538550299169933012995801798636378468419307439011228690964526931564529621027534466800820799093485700778790093631606979937057991365811155516576818118894413977711010967069192027522960167883531882312466331746807846290125245396008655450601538166018188569153172761425980945149111387298238749140941448880128262442720409057394666194284684836921474680966896548101168798689874372599616020729397148470939763347788819367732491365234918278438586207922094705099998567302553807677083566249276183359200293737617616171029333408293044449490923633606714511992828600904980560474154894137200558332324658249743243137097747051176944134089608355631294717539120292350807962562536300532875738896683192313456462409742329422689125384244186353072873235799203735309935064748855648730283922901308727248779876261752646797662991602977797421391993086986051193476094876531600689492224440455788626563021499159324834804629358244951932635256150051001028288273800764719022849447899857000094099077010382708269055012532258353332148967123105665527453164240508789167497713108505441123903498412215611841208172670425665315411547811169906629295407549447120647136176783060584035547401211360644665974973495895218343883277906924769876786335217752050323988596013881395307079268674778014037082431377611996145492590118798208624980723233910173426825380467780631159313058366224842835041163207568051454057646964324462213776338837158797911561531957352805225442954104923944438388068235518233641190129090735020714750573407038008874842659474868122902892642477416076107252936183144115310141392389036317065975776255877828472826153156188033729480683310993183923407942867893291783890932151726101207400781616980027136387483741898868218314151283361440614039108051142196048866688402864874025939345318868544136060197687150830922269062468362215980269890266130620621223524231329127505332959652202143239196711491887271463117330038896303849203339976971175570320379281160288545395068678188487459153074435532871432857022359973779067835961754706577068315231075841489882820193243732326612017119463445457398255515896580203800152629365430762114279766431569725033012887977635116320932645477952606059364760084454759013036082685218725622029558722656800543747182352341579544083364053196954136343066728106591482708787932139207528569792171662347253953685642700900990181216304751239893232029326393968510903946362711016942080066505115192303073881087880780090506484915668089724296953963887015830841958082075154719360182544088989939221267471449115514528967436961903501084303034348071095795913314915664243049766597104275098408826277816576670382317458849033104010200809752940555506768228467147098735356010975966076262488377052547522171203506078998291175560271726197098354579432396902754503233349743778733112708496957723780925257011484131754622718362333755877712156770814767206126388043108150799363231289333274688306202375540844015211872099742610525999762757025962354858917247363209527849701041779973589094984813699330591802904304724226009272285161072922167651128501245742140610750317947644777823649071016109063871825544434868721304515467582645495993276641941591859786754573811852560734653948588449731703825350539924143493714012555341926436838645734792722613724625812238233703985028390019090061673424507731601018946512382431530926761445364421915908014467236010262255948522121201335402435231068034492486610807716866164410960176692131125646915149970953734677608445284420125468153833018398775349942894999889344447470212393922288636460517751698241992369092504824958958703808598912883855309205310114537377646287124399146751140324551881731870756498907410547636111186757165724258809613972516633355887796501918326139567069729087895842732396892192815599266881436513436571755915557325944921794313026450226312626401401995177193670864100965241791957561978025337012899226526159335254038653030442123078709603994614687050982147323919912844354815054741586008347387734751331895871420977104786292747826536563597411069542661538798723549247408881086701710512942727945248734947199299870352363407267136159929602353092144761847268093169620194230570559684358650917166085702171972965275623809717646414954637561712958402348930380087178316399011174044372812055482767745254982078024189378996364466560815984828135208554109328091060938726082204033852671717909769074351133001974864109259990254834436797158916095055064857486107999391197154278322550590594988811956445884482033032807791860381466823857023259259415374615200433088950214416771192327657733978050059914307119865627688183281643883226848207381927498058025980686856956873633858009922119037499369160334341898520377289425326210991045578108864625669744140893569591251414939063657607069202656118729737241801824068761066046829027732736948627559107451683132850945503851226568364437804491784277732629848950603058578168290034864177462457780497337471625445189358753166344526772653683298833140513547633778451941459329470556972953238658100721784731578327917842254607245143842335082257467872459065351269673337052574300300405990687790597598666107025682198001570836358018870905450395389730467516549261816429044467275546301660687093260908055066890707528364430439388184588468189837019895950904199432393179414509557244604404004220783267785505844566218008329131374996345454171948245802038245077926326931667718011545187934757805355771562264702138788368617167089961432357902881391013906457362378071352345467205180904486062699093583849017104453041436554172699144159597778245035814242630033663198611636582068951920024225973850887137699028685145891516412966637207139092525165819156140901918013683957204176648089901185950123346193598361328221312740905559002309992003018448167138010615671483991825704759331972522604380261764360252393964817314866560022555810807908201732078855271571887279924894175607565011065162583956086750928418252826464493249785692217053386223418698495691089336501215972124657469343400684491130313373846157809694349027200347026474653155584092397878641365972044656482477956541240666068629516831844736643803961293568033713058369080845557941366413228396809840428243842107875897000483753487400058739046530387469665746167959552143653709752609262325670975032383629639874936001906029882362993665436286234256085891721259942385882144890075274255421805087094501903621850675948001235854248094482665538027038324177333307266309877712666420559289165600146904149100661844899026739105741425346091804800932542467739601909335791159744096525514581131623046108146013440750521633600057176961380381128295473449742478551034769626296636727854376885550383026607952288483100874325239075544732595725925725081837053173024240365121756950887387013909495948917457555362472195438204043843190362212346373209054073266358359717841503837259968177763708979155720846825537773740703628338031414212941504701021689983573733616024014258740171218967213819793273363572200579155671486678687926249376634618977753069404778515810758447449197365901514881890786882837920622424570034641896632404769294157256751420992163278375606637968229015949929514492126448680259795173832411170729270080919703675089992284580133513236853809347976114119262116036390989430892234787373950544434724979117870487434373275101072999153225230942173694173590156633932829455438961100116889711835764065024999603830071351140274165490567731713278128068513756826355756846188312427495659909851314866279165730050663203339802249989244509860378889026353398353628699567121521601030225307221690742470720635538048966238696674859745453342012038090253324366297719573396417548878537517626557294822781030273750276366687272122913893882009249772881110234186911144649935267627175668940656962354143013786085911072679644866539017220405971003076729437607513384476001804738280317445881036695111098687052372963816553753586167298545510759947941491833783891428621250804686355103689494449830623426122624577744585724860216820391656412332559229804425953548661300412096286894737123375566450345580453810187317591436570869466554502601670690478260670544358520215279698520609285996293072473737031252504970394760916412243452506578063604267437144980002149448765666003509521154533531204163426466022492596364109779990529782603974526821066782728668558241721385538564497625823650662828043143806250989554559911692984034444690015748332755510285247671435016916734081454233046751588759803639094939930873945910734823655710614560499916872656810804582743524465912874597849208724034092803916194841789702906512158342177880424420244734087099880416804917201509787583785339595829257065087840745745628574548296409637869450997171646231953720258326060395671939375830511902580579410402813294027811252308869010732061150098096221064287670160255770439906985080187443836813291089821404031123606150121409958714174368159681348735207906107214107313093062531772578856264097963399978662410307843688837765547517610260831330557336666264121081076707698080816643284491457133905833644379060961810666997951714420881567039620553491543674534767516129597098544076683976936514469458746561912620545092913716282789426679525878673154758381174069579349329298713974112902328445132901858884154514330415578843738189695622536830536716326852229885753341737976710881555234366678249492679378088982689631737037782062577025870520111599374776823650888304071709518036468291245260954798833579108062541899592898044954742495026396807351671765551643099575026739856663954860243016621067780498963224371536016255227960306511724329333063218306751731257907399917673538286959906826851147919266052484304926702352132753955138214868330490271819432272051367018275937173240028293972696558749580232988088583902761195578355110258163179143670960197034441974579642948951718094975348592403002162193982651287830945171994465768975583048593032643393979243023982754548131512853443304890154865493486789758189521613091068638156932963146938257317477381145903821371627811541672996571178919847909392758911767269765009593494628806967761761426505742789671764315925221055096028069715590636167397950652000351680419577540969368826049398715645751376152492712765924854768167624956174793243158818845584277818505353828710936678526766895823010888785278662076481711837448537063745511808537311803113957719094200443525474204508560721701810221691955000467335142202436553604161350120958349355563738317061435654190664930792188041229946955912285942010832926266572369749834387373902605727711386089708796064043690890609300992161981943264018905672120524032454661855024499831626590155635518256041856627638753222337334892477115962112008436123463947020272155441453040367620977820322929150483411402592810762727486059721764217053901538076010135394055485371734560555375504774377065185293376153577249524338616965179707600218582371077350842768348540987825766194359104388373226798811134353632887399064332826846000241965331060521736820134204953415450986575987399549777947833643747348149780342314129950153201043835245523901125379967036844672855726193303465729834972682343523367510532803887141693292793049832903891970414901703609762920840925617744850840270817584333386361447290364811628879049931541217677574643886465834008093197974542349593520146278117867935261220895697355878462933603120645264253814748145755258137076966425494420558690267042334881467601071149636378885852113050514945420875488819015146238685682597181637746745862939370485519788971049812283099204207500240457341057123941432218631908303140606989842312801895936761043317966675978083093279204166351215191076513064161668457615278296562674917752957306173627785417957337801611912472670397756924620292681468290019301122774779169199855326425262922154295645921753999876867122700103762816313102016318567362363767344591243817980259775289732026362849782444986911339032404326182458945054542812626122243066567997700688771694363730496831370720686642717476978441319388927580760400631373067933603312970650246445887035158054797525287227001398751551141179514388049307823903338454950025674414519467920129782436597045791994877338689700513444066075149534521329443910802386576947932244792386193291887926009317692204974610262826083856689304585351549248959023958738415241694163550346904024955085040409241688163501061014347251505239851005438601120982439660543526382140809341119086380702356414893252343078845033245804929366644187887512249278307141936620988422829456929667900972768517496710188182110922299880008144177422830451371805076127415907325786007660872811014970781898458395952718631823057027581395954635987687784056273301498092125839427142584946133334245786692452263457920329403804781348901187613183947868719091150302320942467684395515873132500181687096889199282552260231619674794325368614850976799967702611525422789141207491503154908850991080433589012077161657242611562529671704126080427788226039402739902940498857000794870810637373262764033341753405581911096314560018022606939449806829884335014675759857423917488561029483559339886996359420527955416153265305821099516340936475982178309827230976592548058137934518952245721047141649054424313849288070794924572816860181537591935182359426282394980261380056491882334300788405244718729731898693003586646593883404964701647705816111966612484857811923348633210520377718010551747308987204139417542636525903121605300712520404175715999639049583856669010892728951284983790351201028640412583938701135124170837206426354547292057106360680582591889748653009725662253012248698319821705218530177948904176004592912870528704273901801904513536080496124296060573502100273215004829850390932456545785022207212657668750106043776516290844815400671009201962881913212036996454163908782667760463000519585603141007083215194324813592855397077701222376671838795317885652075825595381919145678510360154763955527133051226622692070652092139362120262610391482145418538321614194248073696116993037887877723637016624463820990242761214406757597507691220299821270438292866183475895561126291972011275591774513740055312244350362219498201682126880162628025263382340054345283217931730128418179555612057388174758295565624816587822095036133687452524409573397887232673547975916862214603148069861440629747321681499428234629796498326777055908540301249995284381819767091392589697509336539668126105225151489732343924744450446903164544900020721454042803272569383633800198499890468287666486223264750352484712117710456391081613912578117613913069708416563916594557167253405173797371019493929568167224732430840238025735025296088594662379846607655249914904513743236506480148345601417183299541644552915864663247879989249370709042818457515350599945998542166186157861480966110979375286398401154728831725303319564662142623445771407127407734512449835099000867187063020891259501634826174630661597841398512074425149037925082694405291509725962373729700586865378630283031163328118729886665765085179558204239915536390864578950110625191449697576743286240215529227380004023540895902045917865704628622617649680283743808092347865890863402551071744341395822065518256083253455949192344451580004584087004574017157568826277863861065543872367844482411108768786317541483170904130161493381748059558436727977280876508226674477609920681824469645875284966834565648914711151003675041889616012007901343479245899837653619411752928281736768014996496023608568409255104623613352640352341510136306851577619250583441602238611882769151257066401616635764647906179359563616572047073127715087406320074570428751741961361636894844885703504718787848777950420363308769057815803411974956596671282909009390807263963143649029046561242879961678574682805102386521728254952452402172581378063952748466595604067737807431236699772497246935767812301987412065571857334639585472864664258242128612977932761268856539126294520331670375565100211093499993946258936930872192583617132527805909259026784103917294093818377235288573612817688305686271421310067793418478626065343721408476490456183655250391889179980812115051002754451882498584042214368739953177700449313089213072261060897488070131481302656527280131040546053900210946524749641701950169735646394661677386571444586489736874701581047493887642178064832031754237240497992263131273726716926587083309861058213153452472949282161055668076730567779938667747278104912754961656840754987073287392421299218580406997074905214162490993815088032963599365684043583662314321080856122774353688576282258511206699744812348515692565533405703181956677731883876561411331444570350921114729275853883260249589720039893733068747263249966316688109431693033887221714108840500146155152835194452271378952236344213057045809788086084477728853913520684796228683198409878004970223814474652142105460775268929200331942308408107767346318015157661262861648867764290081527019348781228997109575047078168183198001719322460798516961046507277773769881916306475219640179051037711946809567558093144020220100703537818116413088452093433508811090169349637745460494149204704482984440680714044500689238816497878531922220917017741122662576974600669982080938851217212819423889432669388839083966140883708972115969293007267458130451443424532643202345702190331161800702391459032937200242588753186399502675648264487829282207905571395100405659572659370791888862428308412834349349726700344001958559532742852229070192689282115713629457343119570582551264373483968164137604844803233797020760624484472977829828520637747667851712495757387489059422306546247872337134573104011994705480764919087331311698430804827942730444460432786750506827698889946406161840715118653386437156834087839575751035071014510728577406740921917001936957819236050320981544534211053096589076261401841049654936849357231388994023832039926700336836285718856695710478684962513649575830703265367575816868759645153543363527753730226903308167021629429174757989554818998706858348867849418574046998472405844187395793669781872084168725929638010532964893203645029726265053509768161322712844286073563508638238624180565301181263719403103591540752073049601196669181776720147709484578054887707038253151309940627559669907379418728613005743905068305488627124668360447481597424832751521945046462747685731131865198986044714843200740262510090591284957459252165990567129993507020702206889905529744930429530651997935573541533031729703166926920011155070418900897825005348385674004235638465438268886457341520798630292576171192111081677398752693783988505255873686145104737038462070335049516956219341208309262518417036866811617419786930002909242482269137376527765952106234900171780145607415582034368818324899087871656284397503436686997111406285584810202871773249858746738269814375376745155702119226004830581128256101510466567680287176943809344104874359085811442709431752962710289970811360120595026860885451991193276360564567553944531469828049611050028628745913531109482048888485351842890746157441313577676468428321910690292992086476596264778963561586592170133982220853590765950367315881547517000290440934844922392394654181660184446768756041298677558369202365433362521549726030949990364267996188894131558964688349614145187138863005735747653899054249632890969240522636927818622841043168849793552397190229756383695034025355490488506199026856121052035539250506057711285631942555267628018729654649777345959408433928079422249075150777565462352450892819946143055039796524982822167127938675862719847108474685990333013928782167185114909421091958049337137503477411959113734848888869023872601443100485524213552820678715969837153317089992571388934704196706528938578614948948368547045862247606504354812635088665440645719200110005102950380123108322646576524768465564336175961217856285098778620282231010456828983616732129221581664762056088692853943536222111692858964257618745693336203861035145422416625631440122045861229768387440697078933971130352418344121472973353485501925588947800541945654003439978151764446752644462671045827914591824239794727488693953565402616721257316840113594615560301275218342172526339304078994045886515045935098667094188110068404495258954525906876777294949164583423964608749924343494211510063743251840228261162936272124395181441084698090840993704808315468541279693784085044935963962841495247004192766564475585425511596910033989364413317264329501487400896407426861912556857320576365370664153729467109420279092557178234863468137119022228661121938040759424480607093353636381398837487106007226481056509856704808910638413241092559898296354122935956746886783092047886554384917092924222351651703138396943719455755951730314514764669092740911800671772442246903538951600597491322994103451184914601568788915683444461183438032800937319678720926334384814701111470065580013958223191137217369522809827319298968467109554592578321973641877390563681340461090030710324238656420872425247964034431769321101259924916663406985235550917253954593466590108328596131404404678245942033889871306982635130764122435708396383501341270825958497352226863650467782488400701444967094756992604150191264005806154413092397074093848824566978774270157665079649508556880689183056487600206991749591202888455994408798369687759469528521157171229615053466308805162505687687997010072179592291057538036611763071271998968341902450429673193028855039500657872640903771631718029907567323812422490817079368977767045579751791573776563618208019631708833957665584682341979278596103169086897200692559906251662869375059550494711286591787005752335434032778520167497226733475470073694273787039401221312223732627896087867474694741136316865228494575164953116007167282684620041477609253329217455779317000384970827705712099096631121295149831173193026077866050109054233930986268221101344881793374867442153730770957659856159144371957861047585936061949125222275184698464885762542677656920196377106770804365863630941586664482082132580509137355829259393171791869830652969169807101189233666600001172997004859741773987824718498647451294659775966014876600392447205548115633357640246638527455972928508595690991901278044941996690763500731073374211721848256080230265011319612959649720319249037685803999058706019391349942240661117226518022821975687318062225833247885354098016215461869181901212048913915900294766925162477833539275154496461202358629768239171771084321281927240810266384249686728991599154001469416171675753048541380880387418658184228271012855372859797979842492932342660680214224286062506758272946821254463501121343841553519268234114870956223903273020438687042960092984844997644820150467573065383196128601130010850914370138077229849192931208434749677987810487391372832170075701706246557425322939125719900230245845189396356984908009781597997937371778144512122611351365061288451890197170728344691714910594328114088572676724268756412119925620681396069919851489829509339638643354954077006003976885889665421214191056725205601531987934338195870193489643265205639413580053850365947565498891328514691365844653607382110710947933290785404777717819069767564658687976784319528669378990606530849638263853273895835789921603002612318258861362274556650150172473792683695757255830140574446520417277123831452239304810748740144751172566100917082569356330800572889650388626413797846324477256743053159791915501818539197150957325112773034576040587259919779002932036119618305065348560876906506777513139036850653852210787548197029341966620544208481597266532372245691910038609626797921681490486003549880853728071905714509295361522506782678982376844763324920646827789957264902527784024880267169922149716503291522144139341630643041328740419632497686393924480169302833664715828041354216908768806053977720243395377389942160604582127967557396571665844537751276932398900347594384791312023055630836608469386821819309165958055804089894324678995853996910021045298672603771406788461840954887437216213549167422625049651022628786315873125492396188879076938618660460083491206502933621252953045581041450220420827031577599338871293509860098370555956692098120462008932809749387815718383529585071069866005050340314880689558479728074047837523079092787715961016492453120909737558862182384779667517950610310292359430640785284053656206865780063003310229565399411540081764366296629633032976493545598146402565977762032885546926680862651329559451579514542200992150965064269563656528393466754295415053100055324544341094130024672470345009482742148366698584351509631927159908696561635454924742043732444752564493951345967833882218368417828591263523106584438880703929410775075844333933862603308352761283490335605055681061262861474377675087953112636572188072604048428647609901742732693222892649189105832708068925693310235234926575764548636501547696070598607448574304986970140747273989584044907838326211883746966698834783149697487649118962445949499227229962800285446547649436788558876117729698894209269249949211298713219492149831363971268171298519897889041878451333056670067953609251797817042054750521702737290489492594117558324957646385107622789830002911897959917853957291645978361888980078300446635287015170750845953871286153058923077447904576660581969319024093220049002443928247580123705989881092859274157823680039025881986566742227956886079729550723640593056374294768018484891204312807586770806946088806716731991077159975137341159142068843346057037010804462900298225339894425247119402296178948112614228699639995728639504132550069239000869195141879611801858142626003371958897452687307524282010507731059826552464426540737762718320485883525887968376758753272596548918093860557586180198025698798203772041308258679219378783174745695688787921714692202691816052933546574399433443119408615772468876613374221414576213502366461404564835994671020507727865938707805627048708280710179416136142371157425280232089003443934235466437666582273602934079716410605830507540256872455937995078918096469673210678784456406261141912985181902800139443964714130884481956423114209277243015688405345000213042723950472728841598427648220544497437367958902045066013791530892588432710394169946369632472228567407795939288803680266569004427042379620774333693812355412923036738767464323801164004299483669507961359220907355246981737549103662629759756917863700177634591401001645008196935342534231221920900869380138787441027467182508543071854866526654761322781726201066272354954451478296604176367508890931441712273052755648216028781447873055116893924815074565656563143312063418061667166956906612140055396225384199329691420564445878318841570183169563683350024330974752979399045674579268376877038120660998773141930174004148188951519996219079117022547548955690870169999330559023326169411081994748249518880092162236097986458146792783116517308537075511601439642925487820370907242880493868462195424869675120146843104731988711387349336589138582806768432385651005310989209501782462049644978330691122090310293919594381904424009384089268083811456157220672656709292431270093702439777611636542177086111409013695506583074470602705232032878090956261672461333709474029250516124002742078039181889049282850385992385256081141211379163358889875510245327829595964942111228311458131061919198150677197826662490509146923841528422773324410918000484276099310477185000158299315880763306923235681067649455985293070147030484763728960637494287921800557433410003383135981340402869385291776714121463199968611526319203473923309270156115773905709158253591251289356470278693742890093081352005441808998825375595470356593153452009756432547870663177857649295633066983314476859201439318786155024338419131324375736829879791108082467921309086838670586475840110873839743298266960931898374519314900580305101427089852583660501449528203172679902713074384949412959176004589432594291931210615607522817720574321130271680372413239794574174813100342237433274564007032588051579039428452348692275762565025707186531844565681942285492464424074088638594058747949010122744321946247630288130602443276182982321424549157279819742597835017693127936525820992494715212137029710372390237449049696470467887850077227270833580707068190550566710681136257357601457738891110111503306296960614426441208023672768470075954066116438667187105955816306010433927748364901388889384301300489824563411754209648345632539457538973499836856402725020927781066878190395503263353399187516739273537510503674456847372789420400926007212438065374308726024021554327144711731195204911911613373257504282912176437432456499747968678050675992516933806105349788388151302297058526043073491122631178256055385687495624677315876518183725089471223919488971091806084519377384578165583702339797423619467967030644774627332876794400259362970656660275233642928264010036408291239140152720685495644799283385705068658264829795480176977004479066647304616510069948901547482687616677979458463624619440670231837787557536962656937819635775795606365774977742759723289329910640034232739937725890688035271894310237155738544009363282946205869734776792710305816970292132855381567990575338467203257967815847779502844238107110945676273105199932803931835014098644790841234835456861142464907662659308148268564615601553058516837596113311406096578638429697821667322690760349589654854791490660372053551056151451772574009056788195079758120214841669188315021016821025497060713102808847185659506358621823401269769072464864163994559834242339185316347159038902457588974694377376176747307639978006145491040015900050872561913802996769136969377999468334357169522499665171133896798144753017936784538593719111000050750149951645893603328779202992157943692552270705273526022197096556875398463071178695043970877219871509637532043578912638587369747021715315892696537177589001413458952547813753014520615607012164335153439572047174464422365288997216567256204545819111681389744220410759032613931078188154166939755554367644353670159829872845525231593465740361502799560178954012192714575359926949493084300996957782695731036072168096351882016638187516931333027136352753642961051358849998319370722622699767732960076556945167679531458087592374309976635496755817249408805520818162087639341314938120856356781765144686386549181702138898495729987228523930360001006334725522460675719511751192208346171247346820308084047825304895761229854573268430060746538279041028328412001986804777387240387378276798737904836802326043738220855448624284201632499811620736801950246397827394700202822495461914548782009247376330732311530704230926387793104695867486974337475527830263939030501414908236966826504466127985951481349212884017909806589074044164852826419964963350592814116301658267711191657696559992425783567850362220509888452963107198174966255733830470612744639085506501056582117114147683912741098756770205044394833013545619573517183238446431236123964250185970269108109088046695221772086232975087301245132372351985428705234815022178646481467276868048932478465660481962348400954528458255694235835294649879843795557800242055825361954928023314730992510489497653616943230301072827083790091149570411383345767462555445997223433033624420469815702410797622244628122948781499457237345424994689324774281926203628620478932483191190901050135725029448780395669113597669447291243826420572269918771356823514513493952262343095881994341106671249869952898288666187498597837973650009822045106060787720082705794339380015706858763795932545520351894278334712833324075809196962051595291758601490922110178938398213513806769337805505286698294537098897188311923560094148104441367632437708953413044141816607381808461608041674739094844457511051144515229548428387906565686603104954739715854454563732490888621742978738741122711446492400968329656621261331099782841288443710309558972221018084216139728983090732420100845871750839686430031651534775941616382483864132439349886075351622153660557272296929835028316836138818430465425798990668913421970493392952680518001558308576164003118427799907209439891405808555236604320650631004175734376044460949264423447742611327738992840097228196123649214380876277500429438507164313847099986413489208857886487569531804558943391870694524852798642617377129727955059748343523785917876023870892251722659995702986387369601762595211835348526139252686628153463380714292276846533281534953936302206496247873343137983814533095421165223641361858845788404648403377443259523489102670293682183938948581134163029065746496414726797709847751694577070052065405410797687109964207020751792773580757866318646544406516992222742294048195048823015608546545805873367129406017114825271340419229733218655097144734511840456886709399248500642608258243637752196541713549903746669453539592963801202191358803438277363436572959252260827835114769877389016609059082887464846878751122566525592937930726544160533591732930498317456712104751843898720148076652437397867630820529690993535088440837281529487350637338282000764740912749432795136229630614831839773872302360024485037141544089158083718145890511755434031451683899089762760038212263077500293547424989038973317401502325838918667453931490122240362303318317234741719427668275469127598327019014825458180492060709060097067526676472749410963362891681470025546267999861816803691097932243744810961405472533217934040166031564149549124599425528798396580811420130062880975987125380462070181898171980614846965324750319941651903001245905903907274764568173371513601233781524761636968455729961836923692881097819242222724516058585733750675690422845429171814422285150752840307744808890659995654455821135176009153575357188870175395882015599991389991081533130114354326768501805457449516029255617646144341189582735708351178057771532306743134459492997587353515309151988574662430789191292495881181498711975309248722010172889204159308839758732003798091623997652549827532565683824648563675641913369299383197572421152853500735384060603840458396056943218553891363769484831794514525820436037814314928333178131423973115041807885345114092994964609148836065387496381940702305556780353320195417301062521654585298633656372800391195966677172678986618442336197832294634321439489019737012680944685078336997830927709571542905683069344018343999384903467255116707400126567744154706469536863082777976651919504405379186460799529436737322729467739845257477237374563208097080388615056957473286488345545205812918359771275593483713400561348292559243499957197368791089058409469371249397759149608308480914325142144401206374568202822757644403272431832724030951176781649519972931485944788513337361764403573116324703310387880351316615830427865143588691426911163291476840659366229994275506023854283996613599721608259774515661949485121705840574308668877742240140239764303982126768924487584605183141332217703870626852308408181686613900541098007195481499864367515145032084053780471820985432412012875040083530152107849895655949149499659766338034784773241743596128201034912862356566721478580100589247467260739769277820124333197734573877324269861485876930159874163149538485836262663677395018710771077330327824556441722805616677758179361563849357588407735511965718346410129551093865126936651661487853652030470714775455736312979704584517769655540023842768580206884168913996251850579303189533896256860176189448289199462103901827439361586397818787616474071317979118158128413408858916447738704063767328116555534359427962845514764845324169233970466537040696194823618273245011749028764189305395589775182605689314220635339548494934839207488327781929616071224838803256685830410271966889833733204667639987042426664941182149585363486293019922305323044106350118515724146942810990260860835116395531604421278071991187830382091773646173268452007970810102826230892672657640660218972225903727601785536386238341757705913638357531781803356249294783437714665469294234821931553248020623383244049895658231991742797727175433426591160066536775237918321857053349210344591728195180267527088033370729934175607310961687281290818669658436614000424656944177051985548607797269809154169171282043772450342481289810830688307995139849085743640701916941465388089339306714746300598137758435904840538260498419861819597348718837350812263023236668215793398572245571759126727894776484963350438917645902459391520508536661638716269521819394210750464983882670577005611216603357692583021870475068333335432081804772186922600792366594797317116925255852413838502387641162609193972432708223398649320190968243436338356798309887864781835943463781948898204535212856884332409257051958973185421511513415143572182611805163767695975400244036381675667908687174486637348633269039962371164718727903584197359117354864050766888746839556032969539937345389716937233985639283162414481930678089758646847531717734926550735200467773594788646548765252753620770548360381360272336923114244527479896040670390017684192941351779833043536852512700650135669541153182351699957287648714417889821460763187603482015761526527361112214067346587592957807944833935789890140052775333602602667520777247476818563981260745251230708998191168361692453791682391590820233279460598387683060838158800847587082688307432090728064469467940660087284966442980254989087840630126302724177238234340613530121989025544686051890123237861306624432772133178830374196325340936519101238758608868008774527587976609473892856969094756792067954945476290711742646402651791384481055956507571909620099184924000518147365396938444824578491196075385173313031406517213271633714615117720791030129337847287547058298344241871602058522973404008093226573476136452643636319627527769196502487053170291796860479009114154124852543720281893999513606602411706076505316947756365359149610267455828652678069478320658070124275104984872508473564877546845117972636190026380056664291418781053636253388047421591318726997026131366708530793424968500964837886025819795529236473349870302868135911872568963875748758711380158713431647354160974472424993294965796265739465661528575033736381840852988799237828148594179945528844410761197236079439241114156058946024716027072228096212005954148654813126286396076173428510158922737792590888375618284247657632690584172335306086220208058191220416509323317043578091971897396824007440572006206593931574257989468703823371528328892971026689933946115403422121821989373531109671999634188139080793256126465445923979626902111725681647451633124884182564551592605343042478946335557098884235442859865298065915303892518407662993430063000990491953435383503171979921223950079031905291575868747878184701361810179481208895904346096684352764796595070952697570482757074555179215756727923773964964905069941912626991565748003584568549146263046839555668004999150289848866064394975236796594209546855780796589383292111563073707806550120442432329464359194594372738778515211980840740032929610973931339183038152308566180124744096763055944229264356616060458622583124485618252739280717530319310463011611639449768830567061714150554127240681164853153686949720435995449837297635510513657611708025389761129464773693276108347973256922902711443587468888757804441722593449871260915378863125495224994284611386508321034586058731236935334950304273561523887661755200365625285114740214112064569892733580113968215571203626497673649922454180583209674802556617811477745916458775743255721547648064285399602458859057780077749070612736477167683918080420948280473148775452815692324407892465377250748711718535843639724151498687694142867126651756393435951088712208606571040475463529396013247432683029234518674409743755177288024701012364284423853579905220556168540552473940412029442365308495125361501855512525489476976267121301070113358794426446180021731709281366918191470390540926144073015961391090465525515489355224326344676515482129906531277104400774834627246193710709379685434839973628592378165609282842043544837860846091995185184269882740108499789868459813396599242890168858779182426536623947347426802340305143514551351609016499488104168428385322323150694064947606601954721801444449286437957247037274271294611923745339595219922498830520620859399155683186152850840909937760190448498545196396917622403757528158660579349930341390989826529876411370602091534582298484769733049156292022167877266899211984934071632444514789328438123557466106226953169171860067014032800376652554185405202265928598195962242852404497396414459715222100266422570007232950456590000451631088329691558932829790753963500830788974428361806201422132508790454842235507554190227439426618665961655088576254695279410375624087511611799702053948204215607214390976231055614177273929850041594954611532146085332458067686040091230923112567315094605807773488254489124229878124308823219693641664266528281542128782954215410446335293540972995575318237922799782083886917093424201249904438076259295455906338834692901446367086133438311944020881867571389080483151613397201391941947975130607563901457358689946705529297071822412636630868297039467956371335694015507382474003133094606489575174084803075856709166188988488058447845146764906214863947016555860692510611744041660123406710986223568813634339724773009125058762204690504908597394429757455954557057051230093758215384992383873735896649822878057467258848231295198664521475069189172589264915987656889240497140321856392403546932072521427116159814693087406086634469106092955198885888462482566545043298786388841105417989409364795788057571684035093968803375727324369622673319741243944746006199465154489211964968326942718871708852572101506949091987743064890039796789229297255937881702589416987518162525316778889065714628278061297082225875427657663415853719701117741390400571052915540221364758207869108990507046812480411683761818124071927673971266514022778747002528995846809078285041502991177675421845379807629525802121955307665609221791624050876035787347959732538423138081107653158420970984056191668039841672618187179864855163630872354742891944220782349725278921402307866662767084431031788449333572471035322718077972603616186264837972637932424618896876062036851634568510963061315105311624055787375790497732112488006153013998053933718421687767698732012275109055261046985791808440245861175677577715446343970533898856653558471608233279039619889892557816499549754877814646760160625515860569322719749914296425052880288719792382230758278894012340803585684359005834644487065500178595363342714640792223506708387743151926484225997914407243407944180594318494407161618938762486535620611551081629216774699874451152097548788149331117880368721482448110285450488868192142290670165051895979746847034901745193575446210563371043231325063070110431780744244859616734870217339230278704842934854147377327705936787619847402773305901161655245946070369424672669986387376904917901600765118009361197308635295276247080699452768201856712521142495793959730375312433264324748651454644576620376046996302925597707577159509877019969340204065747096488544587545829299784377894880145300969202962136844579864680007962570169565534254064547215535890544431936900739361870772365583529459149974305578740027828744208717830480098136742874011833904958887465576354918117981038954418978947433532078066359963847887425263677239411653734869980578985613295683416710317534946821400214333011970695161455450495181948646972338668561662233323055462244024996327096787998632658369034530061253000836104040262283531856358661515747005268369900160233374743777439280225395352544721588487932154354313594190789721143050113522940796678085157986580848467724054644911881098339478365110116251692070368625331515688672315181632798873134897885919566138192033628974484198751103775261023568851459627310712890735555765260803201281158804800153755668987287443640121621576895463119966889605099934317772683221005672977843936560451612483489743612491402895766106832398188030899367107873990563538710681976836106855577745848460880199167593018256874713198042755577111889073439470439258036997740957173315822520451168637150627442417329619515295194754268783115449112273710755956919950646242489703461649490599928366529047028661614062992237081023979098187725096797705465817665833315361837875569200373447260298437218064287764052753871529452547964104166040090126440338621447008497825408871614646835916152922282970423130068475069600425085715532478197507423370933476791889063033308901595282936740119270659323033296795702812345957614018714150749691747088134852463929485310130051484585370921442754699905517657624429396271133109699927518955592291453028642683973913187157739240743172743895000769045575002544925978570136039689323906246550531370176128605694690039334090539366219512059617860628039394349078259425890659431065315060024688104211392496669973286260722571427919429033955634228645719224685034390806633692799355071425669193009068454501141989598031901142808904612445662831167290311266261469604931843417693115451306064247576513468284490631187696117503002725580295912966038704394798809307798784184965689451377885621012580956463822861496128715191807003334241988547514946216594308889460340298959604101440573975791882711296984322906490770235277260787609009400641608729249020986127177640853375471319715414901597447633311907543068404253791985523482498163997426649827033410880512774873552237533719481412799103566616529783993993106071768486734695556460273392993199799328252354278240473003701123336478631393498672275045554366271820550336944022575783579610301238244741075438278329045240890408289409391321812166261814499821078575401189284569353863680766874048502159406230995687122671934686706740191668558480180865210441206755193255466891674018357050066082602428542656316265038003750349899820430707082421568760631281780309248326684634389367133269684991067861818089723614277283342733510323316880249697479506334033118609576267425144922674070997616909632874149619083518576001094750683357637285293127258643536628148559308920782011028260857538233256451868547025113018717367410035894058579020365382407920645410570038964039122862244334731717938931684537701253225314504273439338114420607738307888795624198000861095705893340253628145810372252129129417002939141942763539764116605076589718509355434470890006764278094977842602466650792031921110576305973693083348516649368660410877842038998626317253739875755409880954333905466501536139488070691833380308390317865366969740017968506553149176720525253457713673154651625131427174024048578862019961334849230140269645953390487457498365346187107971805598513408421460483424361837721359409189319411043401687903224543058686780885443994871785304253412808063589961248478594695185773034536729055444032369368259147294098563622910823976737922164738221373814104386122526748006405350201431083352359320158424974405683034102300036174098625946378445401578154955976343197906014481148507254435127925099702585176641389453427677677292339028301189112672887045651403081762099677318308967582603445984559984690242727180812887491911903432375782092681109088941866791624905927891480719746415125954563994029556447962967322584319786209261581606256040188528273413580169295837387534588958805909563576014580431548284557333333021029436669794230920149471405402213672951782313526257402219726479687230909206573317023971280178081789347769775346560221891086057711570192061469542151411090606904214266930915237252869663711226108077621822553386726083043758660486506232322645006303082892440131317279311366996502467781938038913846612420771602932484642895907355761687765293796869890230482183067043282569290833551912596522333234905863554959335367247118389732559188825831215189362150186040110314494486355492955959618150720717241525275872174224696182428996471073131547099782948960391900357556718835203385931453300354864398173410023167233352592223891784633507940543785061202545962174931397769606248547544471135158746968699268479169836555635285124737311209115470983410283153821881080237552442265824775931289677736050436211667198461884104944257478841104301334359539528366878780095801895534790559020595178408548557893495820476424506134396636418298087602233239007787855638822832919621216144963233279060979957028995648758592466264988439303908404825893925498499256423074430529257392185599294221016434286698331736297789500951387219111745695449491392066475519491086987265757866223177973584792113791471501306257876067574243250665369218339238257184349246360512852457727327410257568417126236633573445499299615958599202320320817030946189515665778534608012000861815650196832126171673493631674053264237909914490963233315528385575991179457410803350275852113210224416320764922904734255755695993730477482023905017290629705125850835019174564695909050609611864303216560243532132338819738552322681643516683023336849810933508737155140220207575114718764526164336193289426580263062084794522411873215626081028386052072638565968025701743654622763248550892704007659817344932812440997584227139125609540142507955251619987510444422856179651331871370737380830795779049625817094937676100485143335241220575724190731961965243705929898617817572889118672028931426135033105696836496286572516907393519973438119457923694219369683168526411358527066974742863423792513895132393748260529623356078726601418047902372967385500828697624487024604400252230992187196809544224319592344315040999934543387544174329787711376928513255502981397963134736992472069815790319260047482154457061590226400904413714544431807221719012819692167942640709636419040536728498188673064582174862007903817676536480874554213754766464423606379338791867339984947242411745207643808957874518334454261392513149509105952331270395432827177859926296045075157820796242433563779261636298884084751731467749161274521890676603255546057919497625910814220042753979392034549148333385777942085834535639017810739105767740983146630762698893019856826439987043183274237617620243981077308374283329732105391282987649752149074167699091250897120830283378799614137136969964794486747096916516968900165778696871535321284395456338391144440993216266359773234797694996297457333337171700639928356262783285250029707077504023541010631069308278193155848474869292778418234081023906301937240532168530152052167892718188837856944978134708747869560857170743390573099268639755699129134881485247612972993389590219653812536640809612823576303640487206094808611179999320665179491829637284783106311130072926419703893085996367867033734354281767535727660989694243937564388992291367706046534525278926007324307344912893593089680824467096017787668497981324177702345282118275181448507799984017004374377315029065849564187782373908207230087633173472435313778809829553109624983901093331542552540221896307155632855635026375969783820044550200720004214110856170814393829183611754929100828000069778714789744763182660665008823949899024023454836364002811410624242210118752824709492507463387426255220347252873353645338098654294060363735111288379494776441830086700997209085307776030908063576489273807598460921672260593385188680314837349894351332090247519849223113908596149429994373431923893889155087469058038880695286607934130390261529239970180544276583305488801567752107010744143492076156173762463587227560979475933461739265162127995714830338114268188028043096778671686506228453441013320696039212782768070302751070043022331585300007819954928606873954261944379716197037536545641502922793343223462846991176103650983388795004624478776744666903335013582986137489185171368371809851035126737873695277428610645877572706970125095121035524511168987967577705473241562131906218737275383030063312704596131112428409606572012678609369426683442405128598911358714170040647393606990573497658015874385103687306405115763250607212861319395722444619082321157891518892250211450642432807339395366134949456542919754080542814874199481088790764100219006013317914254229541325653710280887210517198942348194951331095876219262468140036844706073617642626954061270182857816601515693594667298746401719394801094737804058322475384301037182831623075468465508132725081080552325365039771432930999446776624406673751860836741484401853350042640461635647195312499057582343100671428163571529517737779129466277516041633517303161402924418590245359988550540626128609309771048004158658865952047720162360719557087418848332679003638487396276670322182211295230845782538564559002092523917031872359542426486791154368467464188607598014349173260631185486265296088743165837667860844797337829124639389604366189549502739123046242160019193921919366158846750023490196767444177096896109826031910358893951836960888383241823530516654257761810256756630478446830379663375952835032525163051135606451109375085136455171359474223834598646266920030149658118606054844666047543413251595922590272808861978081213772640360334933990204577341067375735720813491009125607691680984274646926480320898151867347752537674495525611999609905431986096204274567680878228262549493425938198056673263683660646438494069515984260948638226650216334838210188811335842039443794978944671942394964887360252535872870544537332890846314559296272015074001473228069620374482914466486423242684274553049454544837088280693162878629610598597348280821561188975502436564385193869568748473381418294934044405371639821551886485180701934379017878180180032583641442729179626709878147366839193629633018939227726375405723536125714102997889692162341936377374482793812049170906698871736074494691946061069762074921165727329985132534780251900280620024743263407641925823817189046758722408351148129785407909533254243573860007653705074274847822355716721112230949181513787221084960946773460119250438283699207925280455080199082018248750598680422284096493278267632737841981873180945087819341720600839827487066617297541990081687639517604867381556937685632239758686316378593048061794456187584003104130598700524731016985879740387229439106369257401743711281200891856239492302026031138055315938732050490352590619251060119071490628910181809364890076594376883924333817848682606428057267875689089945299400296150765555589832167784788951131262131737932762032136190565506497230738643267600535883334007726955681351616590599321770082469539627689214986745002573129242572876702220887798600686458054399802360507270314048336196977190450431491347542018560838948721550710688875932200957040237855093457840712840327104632417483365803081285366690456963257827810537488679296232706228327007302223531662313456212582277438173699511324569600993792893708899957697639661111112956059437602453007493586963822064017394363988076550648770297369446760684461036404378949663151275680883187904092314516090730934037193937889497122588821046089920310169302494434197361440737395077046384734645812321904229166733371019118733173215663527224893712266207670387737680522195785138247447404393990987629223692864085623095647993793633127761768735303581552699844319049847852141173097893822434021167713750125975985988612547826237541890030598254264855486798421184866274002577372437694262059935293067815207063191095654773414294579030583376073371141552145602826290007706181374834198104238012290752434969278593987106055451442600986199868216934893188203098335203722022107993410997309378682593547157384031240088802519327404027539462054369210441977863752630115652529443224392313083398261912363614137169665164536713585216521868081773792069526702672999497277747251607994942156074944258311113027290034836023665935787848011537124891713584945085359276801873457658213210766507662387119879738435237305703764421185312200716779725130565320992459075101726444210851245589924259905958425050677629116302495685309669814053701884010580869330313888853551709528511215612693724081037103641464471500687042666339662167404489174947332838473255198781530322888965986846732485128840586539630460106643877395651428006588647313614720267217128302851636824132943772898244968789845083499565343238941337227220175772093838908970228046128666416024051995210253756519202578770126107330921805438346971448893377564279121894577046525538635375447569842323504705015687550578887109874593489038632558146983926838311796310996583412962917686087101783081987741594429308817547136879283963679207701186286384036893771281044161433481429275816614740363382632538313577896480325439540806327004320343439806381599769260353017213697953738861028567217062302864712468660249292125657618328600050424301583779095612491885821503684900375731852203374152009216037078635100602902018455628434970268531985909087914359401022425232868221706157319271267743859190515599309903739400751117638837283708395708442137649212217751371879866403000644624916446092700003815814815675287034020693765334938182824014677235499700737873335931299943511952495415294171550264434733364699461961847683194528224168458374838049594468942089770725550723253946937652728149724526657221911439185218948560830429610930153812409419954475234895253028794800301901401661703089673752389291978867984371922975246303079552607908204123956509362146317645244490930706148206018187354182798315534503588157569120139159271063098494862793517746296470500320183202336707607040073715064533780981982079085343905798498796120912341770377589492441330740445303173386158767486736153186825415946711894396856004374171852979855624272720471400527160242234243478335035261430743842913815624274959920670634493474934940923382497653749630155892635658253029447286445576522483331156392323682159298595201944399338786469489810133675515264629744984482154405882442413635132124516031764137638500966649493875691123799338777659931885286691099182772130048929140027558076975679919849934551244125098666287528620838665065213001866182835464242475083157536604614256115344280002662844632367502862270472232130210814036104120959120078463482840903030117201161564418985285642390400777695753855751346336645882905925853987281936488279117090984651955145471062733985384040885130581917770739919410029907869895460272581513524537109935182664064099488434530048070126314297778916606756786250792217471031211631232834988575219513288851648641915372370830833994399431238936082471957079247445554300773584793528764896336885724427701657855569229707143816722206880435451684196946717147892480466229387015183515857311699177343625404314742140524995732751845000520609362774236284276821001736719557285841978772797067983287366791140770075778073888689907710655392380033454637895084617903235629342995185321851203274466556651331201983350609533264404120117539140708466376419075818373000162911577309488306262623177988281142195134029466141824164595041809631413056033309411481128680540393987056286234333722336467672501749893310176027872783886450420625051659683855398860969556575201250186141769794045018413651330821548802359841403569326787102043716059834537495787194226825295563237384233915818836224868107799319988524738943227729780127813104824647360790108573570448809493267862563768078784393090496923799848916392878305340319262106592356184006033127646942820283974588434289646875983878745725825620821766259682835267703394108498391441916215021800974063491519145396259041287877639272822827219795800278489313063644287414826558510805669640259017779956624831522782463141028263937914054747624460098450770037126132646840663665526785492925547968304782738732391053383739209798963703998585503684957992310712602747197582498953738802636685948056421879114804228930714234948175349850804207647089870561613707385053763079834427307957576664924586583898307112217602916579561877173755011779610969706229349872054551355146656624145756631606200861893474249553845988732741152378405453666362896457784886623844403130737325008914862982626753827703632448072140568069094038470342888511186781514939278090625023020604335346817702433868404213156960113690065345541827449475011967952980352981679192157989075697154604189945135416615555559951476308862165087090209373257939206323162341867273817471074384381137245819809571016745449665811109291455537323764020487003672690992771885490760994782386462993272583617806364011863171347968993099267061331206559398815921635313198778795935271759207020079811905186696587437926197458451696763896382726087109861908820295954314504940483614164848760567707022282240990713254948051756761218001515961235215396991734100622621715473812064652778722347925300967241730654877959962860610879115641024097857574799158879831197441358857744501918578412832387391539362064320582728864035077500433344098305200507079217415107653273918980681257479708981481042925772634641746412713885395112455091616163323837755192261772521886892974221932856832276344263820938690152866358709467516090399931005378688962863435685339685797395575191994647134489864238221401336695551001298820309742828640433903243464642610466003533955631052988178605468009720317937524457892598254553616509843854220543160631801984985310214114941882826914600979249042084825235224057614432467502741380320366166271323186143126194827374362635032891105703825259688837116509819625788816294139626715222556114260289710497530458393039116116351830522676763962674431717507178509114011764731248736589215726339882858912198774366534900248659126467184517486145142721540873482030404024152049318702442578584630088552535993245116582946860250086455174956607606729587993466812313585910678376485748130776657990012487698268655455156975607980512633227361814186570856969264090785583804217533956819773403106216809284039615349176282307839920787085140975018324373500075179250881944198820740963756472652876887369073711848735935027372015704791410203063165540933705472547453119996757004404751918179483901081983800658993998255608995587768926373825275782175614086513031368526594040174297140653097307348280081084650245116964581373148445035700386348343879401117925318658895713737058619673548430647678728898336145291230106301800787840311608269920787852997053932656539066501334027212304962395345543307915742607809041408228526201855846024915687672538530705613546395545851281568015513210512908590200612546397088383551204626644963316953662358128546952872906937393219377248712827323392685177868045912962816631280176519713928628581096268178489348220736540859834730785835768566934769037246029079811599601613159713820234300932554111661035508769403320860753434331458076121629087392658845168170832504543683008055722979292218826792504839851938569223309629739524778965717144401904469062891305599804394178413298113603012873492255502804660502944862244123030688492777777705762126298266076704993731095407610053322273408011834189221394655805288616198546009164448737919766562848429821302567031605235522411657352735064149736337450836137163390644528367490518865287576020197253453124405812224817316724765895032002106920251716731814081853002912260878031085221275904757342581735366236978063447618284159124707374032820647419681028600093541939070148378383232282319091174564871149694170795672698426471467615246511096728186106680463622895928032409996724768028003774093328594423018396541175314805869895887594106299506318238044739595594150101489830883384640541343348930268774891110092488785133668175727500383418594273173031952991612373341839278630858683949818346353623304480447294010179703479083558464316271474429587713555536420660719244945534569034342309938862376595677638194871039144951727884319503395211565219020516209250979855530527990530178777658512455208306436368104253220724332933480287742253971552437714299726189569449935437844634940687402336158973612715538900420924190823066329852167271841097939858585734663859508907982421284898389706578909646491964196069858944199824816362148075223101216147812217615415504135946256674755349276020025362133348434709494660352501601474062019755878368313836871760273873863826056486928969239014164803634881677379672172969761205056046661927299425572732916327074441286142180883786872287097117802390899597493453449798862083127076714645110068132677305086034327011347509210448148955816784624460421108778108087895842112341503325561714544555886450949397409726132569307109801078819822963961777560561867072302831143209946559413300664341750622253899187619088246663427127731293997511621095525773235305990124250119030262494913392895672487140857422913905448751683164047618557761105644295568861664082152650719852182611980900263723767738756601381275332155650619834402231516725566584548803249012770216642483001591151070371034319946424565585992129035036954140410262251885006472851383636150676134261423415828078424380294080694089743132591866402101144371494190567008828052351961180952497948825292464981038785692777982139973963662502615351410951990087306346767228335085940753168401743270541849656306244280592549658281999924289640229618130055557228927077368572136253982938765472430165860272301714454510339880933136268275983525536716885886513328910951084245117632397081049815866510194901889119843118447020048542279471042900017789075893050036088652422663659626920538326578193337203928313970208658744526063802306233278830037787392297285716903698930249065478089857725686343280294918031083161910518556514071807542623982472176213943085827981046052616996285310288596225622499912458311083585696668020915265648696551006157726359452600710439847955594686489063763994546367047648020826979602480880830112379997032965421858821899627621927969192240922374818781685783527678294871638058197776418604894234849855509591402648087339824496186344772913047911048779949667897229665888364087985662861496409335922330868512911824530272160857317178675439743572917287934761895060941253153124272938706564030067311615557340976111723002601078265215154778520140758133317673383214715262047946258181366224080389559093183723154708604690079512499435017256179324318834733617296380227093173752596452050887085039278848262581408481743457492536514000761163843893974691993478782095769632740846857746430551383210961127733868561587705846323741546940006482398455786217460666851449832257725411346856061296182795993334453200032974004700775741901778368423011174159451514989323158785594940397400957421974720775730353915563486654443058480713939309486457160360050327028992820761319000924581923339075945556531568856565044255943400596593605764759384298466658337996994346639492550535296213472307107306020062730788906446468138409255175315850297448921113722113377656212513844376076573224389251983180229940494718302267913556876258062274193937591516592625788957398271162959699038551168396480507202257328257067498916589192059209013357950248362777897254622355596464762434441193870942419082457605004314316482384450241319570053154007627841891527386422440906356264352388841296529460644140345802959031171948640693317667708683762357558325750076312220801443197301599839040059677659906061810051032734471494127505540942447604943721002328854343799380580573702162625264667147665786964585323801025125562161534068333366587833596576307612901850989519568267703426524525641268571623264453019603510737872355957438245906547605622781201254480903411019473551790538553494100817970874407383253218420126027928562931265459397473121139211171857855913439185869151496546642758660711646503485707932004745894765604430066307297525426926044358721486821634490441584356069069818929788572428031505832812442661555008654159264626563105365730339351540324982421127576037822124394661316283312082226643703529278774319026777087836761765993243695890153214826978952164100183650094512598827612515076498217069400998888428606749973161297437670108699540036597220349676969086799584944232065489393785321514044357025550594633567527680277146768220439065517836739898792071037231653964107487400543105737186450525557144387600917152555221836427380003837519579423627341695438238278324969327454422745372872717227591516478665467137058848047469901107321812801592624929485513083909301888481726567060863256631910407551011515699604780158058538904433331300465719373642177053211215344848232263537528546283245316812152242731487182401510897958801407411043995014791791143339190494569145124491985108666993944083100173479161819411717543879185832396530945648416698228195958252856716419163014468386921758731072346769982913713394226743864073804993064554209233262017224529937487860792431755118836696004940248154208686764205429410864369269169864081552601368201100420603288921856219451437778209607374449587195346409099473912690127385909525222879311084013519690236763203953212649093318260688528111606853075953734179696479046014256443462339656039139301568863591237733874172570944278348566583401602889362048177307146127315918464646824447905338634334298790699266068424466394419273450455133698962254614533221889056719883467291662680025421597086875747433351100711362962791931576317007840255441226539626568351580172290566298110751414887804881291187438823066662285534934110759320973244079159735322405130686118751459603620493495943436841567233245160925137845050600259578117911659828394051075223809750690261862997201543973395689163141545984351240480709889322158013719605415585551709701027406189650941932414512819910712894241281187123839833519230454290906668163071077502762976172862899395804180255811353505155211407320762979767586575974279852699186836567657853553121875589157653161672658833655529982082109871088192314943522355627939977425676493596163963024960399560454428058502514603671737986536797922832548911874939609658999832087139655277530537125202162961004707674763057464202817941280480499811117070620188818243114746618143392103772971562788638834747354793320934660750836909342644647822635528695790572699871789681008222429198907062821032451943645190090101013009149279105154584498217480808897969615737914445543825423311589699094342831314393998942195324901470113624970757108997061200229727095959503485273379810420311513154928533509623268146622215409644588704320420051477206556142581998767223874771459663613547194969226838441421536282413370407089241166763209965048297078901098567874420558316496473569246345803571283717081089189807016173864582850835313704060320371137050442460076910201093134872616847199033248419878450854349175701690632598716935983182524712812191094498833685597318159667070192810832392311246065745607353395243041247859474529462090348253121564721241911279386831725213480630937955693282392692832289173634135368425714188160100114295669976860978372622057428698752652854557915480884702632448212206614596992071943696199551791355408323976786645960243277312003240629484611555891096671908140596630006890591205810142642020575568632675033693193009182656013218560798921772478943366578074963241227562369722035464584563390553391467768835393959421454322968429593853411212481273934931073817647443303236557083482898705197681166571282254997790679766283360246545920841200807358290776191908667437215659856445065782849681796849897166737211866861711741655513547829996768641413503607874288763194997970540954491256842475701713612604545527665110531375686036977185650637682327581845842143169055411172702926087380391508749295502018208408986405856903950969360897398215544011451199938046172131989295033184623803379332287490702803419229018582735246783231814496983164436674477871313093162280095408107876455898801197564518350044974959253611858998208703145005465779449890108640878676095259053460848612337437562009681415669176566508345925148110138714352966046971499616709101597320287513287217979419699552002856070115958623661595914939896509019339666141324280557658045090033874047504612843422789800106416204146069472986899960395684526335527593564541114316415939387031291559376862565474545420441044808660793880368271258503143369920027055862929058884326735729272141831882055829002934143558409530675839213347373821132480992401704072812373282758797443304179773203591628074934355586570026910787721616062684743960498822964135643860435208308659496287062967882147387671445590829211432665695114108529232868415069364818511944524817596284350143229937929098884409250069027433972442246706464615900025721692936365068349630934770601461710101199318203469911615861850372139574012074260819465400635987503911460857252501894943032309620302566333151071175969103543614089889960318073006007927738609706460017179330049002128053587003519845550840914731849775957652920184311303179757006866042675461651286435296656883542316597161255027197104819446792348629614341638460184016627082878031608738762462092365481314694252310033883803825706641453454887753744305278929167224903860572189463329934753609997820899875150229808260369142392928792134466446567161553133841601668115635747965672490759715439910478574222045582318175848771781482533598936061877336281171202538886588426127600091381487592778894253718136623733878818720551639987688756230035011754590793172098130364684466245046837152093859598904895830849145108833152426050878815054601438865744001495919784300757828605241253775360409055647044680894015611811719638083684156988598907567910562308708696872575177704898130918718139157684138714184434596834236790130358147495473369275517398496516803926749991012846816248545871334141482462480077681867776837212068565636812244205764706318765534340681464012589904369958206343259900781551542122907004756195097546171250448635939408997832171996245761354624447994466086836464834760233043501296746070347029727115420641207410560985690536358129865244956344510049491020858083213309979411574429214070713849895989615807750973527801517708249218012700032044954936464203088981475130572328111156903480113325236301846023757433664031920322426903918573781426836149399986668493080450990061700525684032870080322388908181394154522154348402090486396637152934970591576155542989455905064068380039468502074726653746936988156434801296735686698380742246672824065659898309792678809358681624308643545119115585929210434207312580953117768352037172487190519398387071290612033434554731690109777384765204042157758512265494570744023988798449855194422895641523054127027578189034787051765178652567674010087818112022022853792789825339687358435910260133594159448585644193288162595073889367363343780394190522618390075007442061411330243277060184939132149495998094793489378931133687245658254752544281394617751017836533353787362603130380004304287063035122747601312102202665935703537438143220204142051264761669698186879716054424930971732282141831765499731665133306195212348986515940519851682792621124738895629773271594799761471634197316138469765137310472141650133343608635168701562683153136448585694345288009299730249103949436614093231784344661365564762980508723815298526179003840517366547026128203938986724265968763740004756185329401115005754254020649907346402531972540241119753190842608221466884175167638318376239045276203444071145314301818567568221393128236122872218927012312116247940136040096519268324185907611176739905801379283735538290795354303178800088840365911856360945534946373380094494827317289185791822732356417326341976689213551925992443192251353370726479915805177124134501968842597032145284445010878710437084690150249036076190221690723583708068660110930903559005615563655043612518557002037944902815776208418361140471512848974752821908756789820594139765034133859716718575643877785970043830273667313822431784936367128025791587414918069576922509161461026016843704883024959204505436450070252712875453496533056912475750150488716552226198608575186015067770008104079013545107987590695455017778218430527709906589693832298608222023961763545698256653615914955768122164933200848579710641063069103494019225292878086988400165027393658825212951362390240761992007823828704020707302241298626986381215627041961558624113458373441015523211232120616341218674510905382232242585196772571880785990361918528825537184261632935502968682123783049407186114630673193361109910965607262358876856875440434741767159767023987281824948671250093262872337399999720182922474512930925636246964525210335617641520554559211336970006093994975734830178369443250219569995665139105866061907697733429768367761564894888916779743723572793245342074477470032173951151420760051353094054964932688533929844568023146797297446235718352978271725486332657204511500994079908523607769431174670144303544781690819847178261017114033822888510564236557090494317011208611382294483379646140120435133543064083270852412146766880497432318449125094948779427127048400521043571374486624172637971109773894640923943729803558602268520889852496050312369864452158379082927081714647245892515728330367746338628061628992924234907307156749832658334612349772416955722969788326617101326343786603013211180017606314472057311801240171473598900381489320716258982704382058556129620060361125936390023295012721623901066357583508006600371424290880259497384015070233066488721664680773652096352260599409965381501480534361241521758858163450758646457307899199539669720846097515699349351673099322028005295527547011155504089933056308920171893100873257199824392168976622952851795453256714669023368102611521311026524663941443031138475541186033638764451225728627087483163088149068667043668776081482900477356317341407420348071863538571200692802815051424832781432536056301134498052601091164508633493133926916088979681826411043485909822867529799033287415123436379495769943291528069710176490234643263275708537862799047285465587452618942503446644047781759051968765546467825761407675554431070543389087805899070886953739355406831050306504587154410730615774021329932285035587026449034507014209191804206647963060840814171216179511018770080988982326732342954245818860284726146994274878037949689654296736315101709288455976577281322726360066629674721351631942249358808512920759004040176531742558203356519173355893138714676324686293332026281246713898307193643916653403694087580194228374777234746647855034152220030056636356550341484904807601047183625449084115881325378703502654583351400368807189539104317924819288652705383419812515255294598407820175253893083409096933488376556806564381984016720450918882284624060303347580819900029935930268701812785262112829249831944811756769424526350178448686461667868865702711785129039360863267467537382843300416279245636622836910188865502026306673302578583567328993908551303819000321793790893611341981286933031915609630766584552142186707447505906452068052198393279815243768713366107239778155709387948185761354366530308742315752876913270905780902373406717125282517686710677314162243606660968035729817079005792502089254220455950832081829777422071336114755097365833964682261898557786206000012935864891231053414502332220150735561366703851012243920137823059771277357031652591291398166510415321511716983004976903744371841462211782227955595081953692551232835789974134489341463500742528876379222677302352671538257674621121462843911075960272842110839043644762716230537942157914734712873604682314877441645737764440996751115386378821712354690481711997071381023493009481394898205157366273377369914504792747072737300942842869213707193579509863143043330037951190518191649921010893128167932257472193719324627989299944749714295673718975467293994627239545861707202937612514909671131496506840966270153282883077053504430461115398440156461389352961978342033682241690840825219312012986210784596694947913323329198582046364609780688960727646327992313400242103583069191459926046366694601251108242448014361418408264447036868077285211732928085986381140864930577264864661445168273427403230556019664050012032506505677752089279648792387741452957469916421977686572201684922758957137995012894826829154889282441888413113876764139396980548368718175652584963021350343499232262952049668576409860129553165526989587561441535041048876387454586837640784202624183333082119459920910288930429414504140511251705763158972688489220096473630499707638565196557903469564354421953373678266677008651030870847551408851643157687748292491666918153360703902543689225133487465309344825625831921822255255632727622308443269905271623965976043318822633242020493949422918905657505067898991927972408360472020900704009669171015234385902945412858330496426375727269882375447448666142888067973823218005970044179709416875082404737805318847018138408042081314955574623954618862906625661427705765352985181686538287718647786985157291540462651857023616082664784003840172710158493950090740204935464549908960458453023781364330176777223139269380998576922795934266284423529740677174291391029002956702882870120401775300938241138123629839018538549295146218274819937687789993851519147196061365098636967644034148678712271536236464295330010584492377891225164001190003303018555700702209171303841985876599531323454462379724180880189566854681719946755786997993609396547206519812638047306188671454617885570484308748598649292027166632776343008955660384864495458188450116742489859691052518318959163490061292599969850403501585349597363412434930035261692180826542723475763577913249995224991627421515480193293676654853212446142134191279555113238328168018768896730500709316507247957102218620912430869436744884005109642966535738720229372347911054676029984784203321958223416042197907979796193791023786795181693620704461628557332623104160400990962747193880381589636684522555711281126781322831449281997070677853528608720010965063666285068507847358172154013023766786710423853850902659525024989624997381536725862826808558783778832682070949873294728010362566354083807689874803303019545307995277791591256542158738361240578736026226251923933124804125401996327720774367146295226721905333662779205736091300796196978581885247557254644306336245560368380676519709988163982675180312916804792489594207467551036717166158121008027205981813780169070125788145568466490605910191544638073845660407913652727181302636130946745294629721198427859752717353802240838870439681841556502012837595733575035303713141252180428251219225655537769015162203709884059956569686316576947761270633426940568579658881067690095113283891866484136254077545284953202648258564293085351066037684499841432197748102565492746898162397399407302248389276703861139290721592852776924564531489862409574083813025901288827410594759079527305342629597719105263975903199883738154168136923429779013920808418943391994161024637566752630123657827922180711605125218397379113731438946574722461136916221282873917816053987770014893679423298677005184135200779284298511747935824425839186729449976713679405757440497783389805279151567549074314070879233672279082190746843169068474268688295846410726706557178851281978774738536682367169197879805254815881198019068048774540959158554050357676994066891495312885177225382644641594156047916471640170259668282327383125396259436936548731316216361035979836073709470529748243465144310548752292995812491474452614634482436882042880438124375199928931749658316869788940830444914908091452357493137421459577910633718082253915715850459024295745731382118385878827289984388860581618693515964827968871988460177392099913111744964429671690224966316603238868512946990827724508790043775332379835350092960156457777523937433224448908945752845692928869735757552775502840839763676956604599315851444124113124349611538106419766305743183627325466064372017559480891047105774000891575462512737156877692086624246608996548161683131634528809541892751486707934777418641214116694139933484668702707758317416364904724461597541478617201275565576238375143370885356384126109294841727297551041566654458675923906525359678417916094374347503449102974923328668680043870682008293850004112641042770988569297150433484649014152035601987873668663172752795192740787306357791588260169218629469651335152429546266757959392646141345610912040797932937216546191416961325039648373444964758938206897560385916648325645536987506593611080360650322234523696518209968466701974566587998047041616009276860210805002923155604970875067716665424079951251414289976218634975589572449127287518559515016235126723588327182712204661485641869588057321221969642976702562928235514416747159186088312491118815497439450414824168550064617042105359926557322130667635759900426188513979852364257454714609735857591913519145048992667307030578820744550928224223734810494693180458789397074901437849028880554097172613778105273511315080455493677045807692158914319225264940893446832713056909608523604616890199786229203167704994812329926827108890965663295364837437821043823898349508759613312912114723111550876355484823486525918398011125168557814639282115114953228967450365791288282846963088946294881426446024662143980822243576031519722698323707036716476630196396486799827526626835983469826003978605722978931583467863594822448457629884204795082971520067789153823215349619843582674482503562174731788272063064485256815774401793475290546836891276026897415367513823927090302594745019388013246791337213730213271072569983526995240342349036279436807310243890352769589309547995363945749028300339717738979434677216874559700178648932367846685366083410979945656753457346211066953426669258969376580644051889950337149797140789647969973082412289006862490658314691931912214806093190099638066168060293449943421945974086588839115828260414025739306959403676927179593418027597993282162244357660720878252789222302257745922138674000060462079048076643194519051632315170034612836685782204123998428475823942333916064018942932998244013220386494911644564453773403328304518887236258985058018896219756852300711588165419364222864057343225678134516333975200096484015560632840269255442288975822495957864430451572811476511655020222523526260389003196712166560317970443567531555367112141592603516377519475010446021316408148841403755437112214922513838731391731613108499848105928215895940728237119058781727495894668088241062961562671628627590990742539413631935505741777751331135713576087705261345289261032552754856808269122486399034980874834644667976149204903563013715124083270059421332960542571204854552655285980245097912045238005948499418935577193411128706609859876435396519655906016921251356646580465357923064581949641885049983637649451813370712520331301413173944622030396068731089386452864080279939353765081498915818015834761031623286680338186301509886793507373848720015229102598569522544706582438565516961585247719852742748283956351617252116946053272516492897270109165277868016520612932540602131513458277308337112493852131024127613396806578478665149198338186330384243907152483887535907292715025212934277859439912722922501596251213305703164702971080900606920118430237350084011414873563745528726061847184747173938650077345644542666955012639360681596680752390934428760101116693736723408152946962704828081573702009226310328684890765154550322659042249386828340932619267255104444468156487939854217139214258742336810300969479377426748268232005667455132133208876649040047090118840385311929795639756311445671108918996848443383350837593273222862815886787216921166380911177696492918435566571631997391729538172747749315144663055901728439876164756870861332785499708230863588440739625644840285805812766751482584153729260962323875249038107261514929400126682081305776273802956850727160730875300291649214899254303810721613957659270441742046034984843512728957912668568874005404528406682524558581005013789398032059096782636227083972187580467233606915565468262722328824709423178156935932898361180137748941172463019914441338501409542465863382159158213338971461798159661270890090824706175239905789687427839679300114355792191032155398423579082490725388390741193032319542054655679327057099811428742362644872525571655433874471845176346298604528320354370984496750085215386509983181383146052026706846564091595577331313117480029912854396137229543494658085235166524673663882366846265462015775962540785187949185407763106390468424509771154745061530968823172197869940111506920367560853694046434144600054006854761107307455942894972124579473874191710668091528924562403648606413050353885412281491988723507934269819562130497695225248958736068044516178774569991819027463822065576333810659750953598609193983825135979435957440494654446896110140428446974910087068583486946699279681353149718855222674237356333369377263347100059586006908778720774763955828760839585098269348234215712786821845996292457549312166030706881084136218186231123230080533283772913613478428093090768825414815638703033433716273760505133721903730113994579750612773477116888056258220619688526674532774860907862303274860006461200439430963206848981705885561846620378911548995243952863221862497467665591764219096009478161041312709406264829492142032063653878780731625903613068744447764963833919116995226401667460336492758039133192078538576597297417817878879226836737254427798690577632071399860894428584853470717775584630227739572195295694377603938485633432279953745308777754959474554533933608967461391290384846719810538473055047414064399194921752470674889874918030569379642526616173384063117392713692388853138908740567197001512096230998361876710860945687337964839489615255441929726483300751986615300279252220396389189327552708941843462893909112009483076688647189813158263479646639151239589806139409478577153179044882739852513877153436555378126683905798812937476375423771677250021608784942817877848315104875840307081223788624174783851021300799837224415032817703920983864760528637628707030415464469129185305888651836589094037462451443105314674343538606596574456207952404580987883970543176166813924278133097911249240045241908094299547397734546042952294760321160249571469718387932937492840713659329438112771049066000013942127864618891488565657237950809404202258950723533517109966959163906191742694621889307540124348631572160823155041646958407678749010434272439237831064521911760553541690907079915584995188711571121643461593615676860731170711001459991123524747255405871833108707298646011979780235252940902272829915509708681511548859482570811219699789767530451663985620918732330989920230300349421702971832356206969662949749337749655430265690095896721152904016523089935527188666935731556033526717017659845494301453298113879755752957783662640608869993881896624209559336872686939452575677246230084647312483678038560736962886758191451541950711756910801369828080801252677603851172247004687833101601088075606205099263441552422524538339455788047483860541579209529483586521529133643424863627184293207137087775335859274600607774707110381684453786439402453766414543170416686090569539109701223258578271365418988411012508283128051350872856882889965289447961928920551464834138742044220837795234957226945027742401498153824942448180119691912862562487409201864370403424158767352755319449139662131312597343174053116277728386140199323285711658941777671068515679310807368494348125148631337430081054962431209538515616169535812246692658958241582997309554241960277189563789143666191284881506875427607761237725651119201253904433908392533738455068159641405419922313277414948505218219163661884810530105647409512909867740258977393912781325231417487134678697376862591786453577435474944537012076977366816458113967269656802592638445212144676795159618571186226066735837601283452485235429265651089560844763670990554200831570402128002461567484741149349832834666962833291329064436420177177320545537408528311513655335061977438324797734299270035346497209834742365629278691473815053605102002017237211404329777090049652191879093230861649453539306711541663229074588730972559967441516488257353165316964926166577126956151291246844911529418718658535105794762402276914172530268918990518698378781695769013600977059937184832923864293200761748586959772781671884059412132313955634947620804160358661204886007305121076053948921512768568692525642820956823713735652440955447249624364254977088744600768771438196373443501524837348031776248155234326555890366674508764916670218115676529247570933167178138033125511882712448770510865355970278052694121467180816377812582801256642321726382212338655605908602562278046857744206466033232987783946228355266367285647968515836511876723069804012080927378558179184833031956503518281833280484431347464026923445826941487060820545109407496995227721717281681018682166607417995879985006952893221276428956774738054589541226521432338995161166238067957288472056213570996577465083666449790321140572749052409378989734950685045386271223043790448351737946614102332824689078056531366548131492727603341291183397821179293081751337062013183883956347941999375345636517636833749345648071468145090534863113846646417061813415999340283787609436939975125488117658760856143562838231119529174400252029977036841495602572888346092865501348452172336710920704192591764913571943156282929494327381553963348915285563519558155333263358586974661773813232591893774846557673738293534072096982068657977029866213143369552480257023433028351075996163520066473407983600026506862141119030048536817741995215515317221041533139090200371365952297483817391750359271822745945169151303172106805454944268127827214978748476647325714095379613932101146705041454312449259463789722272055247116991145553073667117649113386659991189174568337783119613452905081962019704798461463603104554688325209837017444361592920980652290735886064127260270078985658112139501448434007297738191627231520635131450307196811380455018233569914164373301211787028549255704905750696276106591513474128405463998602853054356579886022559374861863556748516903342912916626115387619371408271784726612919982438243809947404486843125700034049914634477896006505553975635739197015530584173105897168317920303739732379895647737420744446005336248429788577782855733949483523614540107069167753424351127502177255337489257502727851246536391836250570639289620632040311706075935728013773590319944443312932346744655987664033157861255343929770098225761467288328116094389121040107606262292690648268657526322063150518819913883330257463859510773521942511357169331568068899796506821466089866909687036329267390406534737287233394542086574900290652212046695005688192420449280451339807156194985240043264646890715055645602013952453343498906823745438639873630629966667923923551414464296137409839717030201316876054408022482815676789712831510227799599390996370401488556291297380357409295741377737007250162932946281880318688397345735111100644003021010433163474092254613998121756244990381113540735564409620652261368388224510506505115206811060972367087856546474027199260090025858994693051593477250241935367479922602770524634830570865026048414981854392349496198112701449409127662610175653665336583567373551573872500269733118950582517044894324718410457900285044433380393067869721583506106193872894940251521843802298788235118567288501635058501445143664970125425409749172602356548693420975231779251731879319134049178576861150951579420101990817625032082248784526773375134344015112549194558067215836359727236188816826992814186023307167309364309638920465329944295530243774779551744219084557913783901252853828967242445229151184403864703758364688639325236685265442157938034251510022238912930242119765864936508550165404972565909845295407439388738408408368337897574996217142630940954941950283371946613396620014838733197255181467126301313276177489632971116438902356577975126367429802826418867143328711237808416309062136427241465948266341540933550550104136527565341101785645554561843462975139146148360330653730352897463223376464220555820653993779964021288351446599392043807637078009162491654087673395434270288005773217924212711393419811902811526533236305217906065619802079246354037803492363325724789997317266540629363492770414924383451309468230170823612391630989719121115711872192706717767882232841997598336745814462827541976922405986706584197346222264619065968287912920688775142029097080561349490611727487568340089157648896972124261607046142487397106452216105606848436854565764142961876223894020874840089836846442935411280249026305839148008313047083164169057149949081424314194281776565901395773362677453348576474286522113917872212416694707784936140697512749781743356712970442891557341324323740112036059404774511126045754025571731106949148945337627416018451186095623031792788224474226559117337443769059108793443520888942003710360158346881780288924980348499739051126450970682905069891872569043125659405074574991117860141999044816913288750798610083363034079223925169014796954913089740036226328230804749576409765540364772579352586139721966498254826273327292384515346226919580000125031726275978679235743014766857986397894436371538057566989315924302084929128991469317396015947507978443367949034874104662752738989298706825255772824853010849185205257623814079944399476657512156561332630571699072879052655622331743812157098924018770330610660246877523263837930007821341663248706418525701609297866488039936916599047095138762422571882817643646320745737281820547344097610646252979661060922575711755265782723382672950868408132775623435805513869684865557608181056344698193737946725291503988144947012147363453914894553484946974310631037919383393549625705836257152250100188916034084038334879006055117966274687219316786590558703813321147794829175118362291169135382095783794987405965360248324972291321407309306894478606038654844774281111650839950526308416369217275672671317631366531402294451324587799461367481572412885970452083749995191085293184938245271918686336683279894894883397945150484105041307968092976789325016761330347134241530284550451016639086352006415529904403491680115814496819938117878768859172945161290619249695679230598992240346009667155965740097075245886016629808560826333959077013659179747662334946180441316079387818868593403338256755610673104620359418005976259946574078316968057390669555399984679519923714743428987871387444753063306130759573180287159588407750791098687847183816141812912861664983727692393692752839240091038699757079668567352141680567503766152258172118593389851190438540787024610974243608138979453763873797861088847120781403563495387558874039862960266131825308569622339533115291020398716618490198649523066365338786742840911094174763543891711262834419956382795697540249226426522111248094528293411134627288300789426227995573764799874365889795525237961524792085730622683958549826314579489065789966588983884489671051917564053707689957924671520094302305414786363395734489902434736429321116187880574039836150752971271284185228902554347498339459517314578369791885945746658802901386318173632344476739792987732141086324752328074231801634500642259927600043012047114183473351640613690184551248323995028748780651329391210411986513557936756859644332041426017096630318628592057491313475913143220369321075812358907781285881883971122647292616000141561131751993621418057747609227137182337572388957337719733937220195802901547508092234180661130289007186888177501568663319411985463039702532813774894517912315942655549924286956574548682071613485506848358905407005665499874702978125593431911228816092432712969623330453465610957118410777603147928372010370461589306570627128664090364985273799653884335247626442884262155408797965768139405273702854778433448540450151817034726314141258082936368354470584429737022393020812751767733296521726492351496055096411379790922043815774483074779164420004337970842641263117976965525382261333883258764383534749919735901553306364425424936862822430325427026133607613151397452131434354902298405793058750760837990333838692209035384861056653032597224537147640642653847409907209421241729349577429961285859886439121926519059234345775193828263151885047640295689058217524957575230153685421752537937642609732614211107281818275094948043547310912800366631224069877945155121950949031474420042362140865043728689494959791974010043039184960525166077507861557622510229657442222046934913987070278539413489526573846888535542016815215590682006047339569958083735904039776265891450318455868139611979137471280578693418493902578317844507817486363839706216351413488174883235523706345750698701403879691443321914231419155921496641109859895408146549172186461618711681174957553057151933623194491614934192713649919081193825454130565537639523623346510218956693848393578059766482885296584957761775287127251258996299905792347398421746009434024650975528854091008406560256521961522350990805470692363339303225177918567308815459341256655934320385507255838481803242556462136649409045301264587790176667946056946003558108164744187866998506669475888341239348121216916314179517744807660869736031304892590662828109881224595586085073011736865259330965772155188830776816189144931994681250956710246009853107118771777146585540636203943773900188561320906060294554342241136067884566321353409308815885535053987973024770912117725677120451406434794974038440952445364870142370867891988412439211177727935075063423665514354680348219894481596470214013888334892448054266364381098331530797091248792901926284744160875504418914732109635858790483918458374888050759411183560776077413579097682510804180458549353260438740044236202421868021517368010184821028039887296015726089376441073208966067572095791521067414614281786815362220356870671019343195284288346207105770446604100965372849592296601127792706270944563651302526661216999468701754224694860971270951511348576969610074324243704368926570260414263495246984117480418894128028065674827863167427345701537410499269558627204212783362410352061133883169005806336985845616700480350867508725541180639559949946987801620350958001671787937278597123650954358266850954022893580734195362423722036568108801840885892681523584991691750163877413784597131617740318883762898848329326290933140615336286938819572128434885235710173743258595760563881406696239158946762578896429458389449278704245254449828887246168647160913749700983028069320707197125957016799600468373552893831707387164652185666799706433052265586841338840023479728579173902302541389584706123446573387239618034918084150421473658498358335006209258321112186916777303107405268427447820941305562033242129444682400942512408527665356119390776348665793481295367207067813918382767384303689980378588832186384096929423869353216487067782511886785381902258903252591016103935317161617942009100466773092227724453458400649986448476388088370358198873233609530573145557719183986463051698933882062025302595598759071595752456215562674764240976086440296779406183556483792664328047050317190716033655936905763215836662386974644514258107155326189070501150666302027975353816383386940875396223834069940534447619366405188994448261842632574117843604964360841942299733650270038947578696225289217892821903207945628971356381359856436546476635837633105026085184431121153894441649317624283999313608544409651451092322708512382317213194716491547056805662916504576596874012727323469200162037516264274889341650642095817365276141532166729205862182070270858060804654406100541738611329445989519571861745530931745943736272747109483678385377382113046841641202046771072382297849958650976159471429783885426986293726236092333489763303811239983267616647225505889802298329635535926005025230516045373783065806901428616774665988885693290858252487946892515104494173821093652146258052420260039692152898252257616892024457414564025536741953354851925167891352589795082615317894065670536561002458963304005722981364230549635227099025929182303570562291286202789984487321442861898575759866520459494207999924520375935324816064321874902863555915852172154452788267028032812808854328025383661659017852193465508750815070674945439804455963285366879751729158050651872358686451974052292228648106013749608744879191742644278430328384188420453040622014579006792619470299853541952336239175475746121991318940602434353714037127178260125767636450059121831654453065923910630365616285249843897447132251799025025342715977585835053092842824910954759173849631562366384931834868942893556651582107244324120052610086322706315497005772841568979199195600016097030585437532875588888095267105642863962724497302878560674514898393211991992679553294000279257792536723272477376310286007097029528765566527412021819222773270777534811912323910821813376687806761759931995866810483472163531712974444212073673892871835189132504182519610593115540002548350789510273337520096905315223622590116496571196022632066441345564656224406547868533451116006629252023782586162120296977679144779594909913661184583701671034966028233851723777354879627704615916750772244623091774212452538794029862548333997518150925460413550997196346348390357318346366148322064090350809951862188805815378616605075082568023169592758735377159989250331713274219044999167768554611528861442895402760326781363582909212037481445561618896328884171696671918060675418970379898378948194367931659558706979706280460424708943259766250886650452769846502312325232999400366104988501140509556572738448825540567538815176376094100169273393462998833825118542803798955120079646073346104675361437690178532153141250784531555115743155698859735287641836268601733843393413205695815160153117380591685294328616040846062880673845311266501965607729307275099910989025426868642852482038987450439137683204558420446207650009032742828181080869209440385448101748614215528540933079337060818495507464141323799558164040483875177997333175227953785418174708912832116129269920289870344326656717622837300097043306375640035767457800225446287218310314273745340458538046651184183106359398217856701441417944362309157379402333816456191187144991154304037423884169620585836029741161259350598177406719381182553439818586150448374632335656347795596303459130690067378515923503816245515714188443333933112348773369723072354950298485909710328460182996500039902768960241375405823968518569370719912663062313907898454836774687686739897433374368817413944918396750406588877751273182831092839316413240281705652074946379879259145690465356162732905502547482414475623443553926534424674358360938185240214050588162899890129331164301852729801883287639680919963888781356920695991092537647623465033696914034263814317041202428257334423136609468744189278512876561099605142114124446944948554823470295725163152551288569397160822994493314644633212219839846654839440321836027420914998858360861565487454544060442554434635270375112624482619494508947801893853929537795730873370362184085402341617793010539116157385990390743860929027202157612047230376502319395462350231913199307463571317978244424347374578228950230424408701211783434177004610103757703146857202365366840089931987088877700068228830950469897746757267055145562676646204237604176056207159204720474924828647875642760604747252457014103419168245008204428776258803473374023635454680055512119126911527670185181702565918545002325232732805753546453269598149305738693392941315306323640137415472807419333464800808295298757982217213256525111160277570823607048896528875362866731219646679190306028514865978800730066660272689087877157323135237019742729059144429506346929646686627576962332032206249408154920084835701421330948370025431568669756179922171662643853518351335138778629016341541192863280059434106182001021603276160861510533008527762132653808756223090869983695022770338597484386989811226814142371975120653067043523315172410500017319636075982950132222578700847811366451126164028260581354687510612496153169680204070767778772019077233641665489301007683750965975335360800308088396276096731089590759497524230544199654617595298627115126847463906001094388794783532303597318468541081912488555872807644457502845092273667013118909799320038426039528018432576034557801312110567951421836768998307473232615623209996614127735976211515747531138793423881671592225166236279233655975900616778964142843846316839262605635790090127833670251159079967222903567856917801588092516990577442415126860242965055334783430442821238400151195054352472934301709219210082201385579436644773311867124013435448417610043891034225115339829972471735672088925927407011039177048841450735046738997394993967793120793906500427123483745157459501662370448822824485397412290065931672101238239105381605995782339585890143487969053586512848804588382804611116320045012516775153880061153244855399183030857715986208177836288095143423217123436318168700572964118264320973893473663180821533198443687112606296959571329258715229635423060343806057929637033889895034069426703862959455375101501048802190731192269140050096128568112062412696624349480582121473681901404071074785434276826609424012967682688056483798543574279317826314330537224867067620924392742700184765398567713241226846423780586229510931639344717410159263865711522530055907318509932995766738222497465445105539825990224742533444073000651604341581837306559683578892835262532130889239024312102012484285694084635517753039841912415506020506051358293274118507297731238819531059376658991302175836122190658752458619535237928705367626534446373059786995276484513672424144378355919706909184581919495644823385475997828055615633524754755488639652892914638381356260589066051522181884653410326719437844879970114037216962919429065175452177205257391340834706189762752163654239779925247042781137915179974348906710410348530735882770784975586865853523115284598408427140480308110430571366129097418101668754001204561410200938502274001757708272345989901207319559276943536939202411378162549792337278404642286888411383607679577181421616221042529571911080181236821207855266020632714568562867339217694094230685591915318812194441096970244501752238964804145910084430907259096929598035474809767595629356252826554100684268334280932701283449930496962313588121084732351459539982546059827262397342420305432096592992982418785124283926478269386511843750963595344307482157565625982901302639381604172160325436240548833782687132248094474409339083946916417899816574837425855905390055328643038715715369230031415017523729853083486994928063822584493484216260041468266252505516415329475138154241723961781861308062613569498624507357551776927192665313184598522166073455189879924429476025632989411690363682307600027838965259202720759790439484208337812239943776735681465067308314997008921169329138706754532978021480639746403113350310284447990610854301490158414490122405883849553707062067423370310597443584272918244254986049514347363257394070411304092099651520252379926946178322713366661910289351267991588905367986284673813371167406882573797606557764618049384364784709672700781511899924289500523177985593263367274493699537144950229175354146355362204299048294664617069199643307186812453392305672727677721944564225665350165342620575174252748753359640503360775973554811041980620143741562258858479701497191821757327737598567241114574353826148192541533849879841778287165715789759062498486843236914815503670085610462316608654334127309598696603045622618289863984826373338420898765847478151833098189311423068059052082122179310351022653871399710248369058474254417838300268846799588815430123436145643955179635334063296532691797356778654716278414896321778961386857073980090759221854805548534590947913180336300807178695642832660420581012991748267396221759725460275801713960580378492828960673891366555472659913999254628381345820385391114386242866729567770503427080645672010267453610854296715031822044781999001227167412777441644403009109462319656400024721763948905676036702821808739180055819208973963188972232825213347747861366702857257699374563105369847745121250586788333796018107426845778964914789982994878061381596279651310080106825938015878241375344399543712514418561280509622593635821571574266217344600359972065582935012299541108788118964142569139155928542439055592054822559601817225560103324665145291465323358909742954184577273708012063600306074028898748107253445657775457078413773482667605757375780314917628647736364947490465403537543185631020744058885147535384471215060071005748881881117905404615961051724397874614904785462676763502251041361092718572415623160236043963405515300713780697571332536655822268827918241486021638273172420060358136456622315082713596831110023604542206119042986442284934565391118050981430230742843143424114919630978160720657169439601664157323548702992433990626175515137947315066782240634015767127182506027377049774964358534802143435641657583151650259308807984015574783507551780985451121925486062075850533120798665791754829005066768444626209506956605121657307165687652604488579799328617508146708680665966460161792596846154399744572309148615992008654457877541246163692972274144555313629517585696035799665183085156124795535914224602717023731904490946399446658246256449388827891504019447941516926332019861688521923240046652249976489496883411495411931669864772417408272236682379187194211208615511671507781828024626611474893757160397133985459955810401033684669882562473628617822055483400444570423755223335554744630866152798563715355993060350794598303118382717105019206027146457821890461266552305956449646867312353508160885538852953373711347238158080603655666517734787575424709496238126849591924978694687145820244660015388054769025314250375775505129392825609863983420700089118651465371767086781026232919429648507066104932841570914370501795773639887994364667906139854895555784638030439323686853703880902014908381299598854405244991761847234893969460616053035594328782258794473429862450839631226338516048287118847986742612054928485487681176503332545019628415811792334832674103993099051084683222633881120945267696370294884405274539757732015544577358620539598118164476201398386971927445956349437174748201014695145641291058617544323381922687560367036692939484138281480340569875258747820577872573302918679504514556018472791444073098918861283519349318527744277451179103763490582488876134013697988747331139574680822912342713768595303476775929027957511817884078699797726612763482841443008411667279423470321900586231171897996987436984273829550549089829005398545283415900863808390990934881010060001217042166210081486559660559349849318107554167116189038540020860098778547348314596357521634259904699876565267172363414924912102358650738063338164959019866211636115799526383367154479163395221383384025426425760973080298208136279028531577386487715216464850412596481506808641887088531228020277356298919865382328785305122191380048288207334314578422971717634418619941676905409711439157866450184542321451909753039922441498094794715115218296911301309132595692553000561497883843780174337491275207263400882170850849248474676757760573014312814798808887376222703195962909058539543805925156419323868377035865915733860070023205859461813828065545283423803832779346203274571579152908172564351658216611392598266673607481787046256908789113964969420077016625513427756901187009962108509833438564082495068691986241793643175369726594568627161086818765887041169723947276942657626763444080510476139851696950942355915944086500031922409137679258487343300269518431235712734425792458257852442680495843950459068538034953970123968221672283361080892941477023612445212124849832148056638911093945908377704944157441876349880438249265341777299035558184861914394860350743709848171491107270572080733728801262531300184654371836286206706306731791204172726263219817631978959247090399199116750429347460999465612908031196743212116604856296843915672832940645584971511454982133811499187169786727099863573270316064982023911504657519111062802881205182686167071001560580071086068558422345093526698691938996341047228206771380737238391793047875401084296886259025868667971701977737526083589416577402801842350164115351189468950457113253109737822867024990366906702970618468534470938762904521488437050041883547098044978748733330380147615055051584015641054307189821452785683813839097174058454845680823059476643265513369274286827010246061175204881963839178764109485087292563052160803201420873528882328771791648221202164507618448952605891949003449255791116885088874924515079939952474334668606634475390223690972477054221545504122275568467454889971793795105767224137525805628396336423440688929222177271658398655906941133206707283324427481440022412607251477135176672600636882115398320692277699218845894063382262297211747334968752591836560725931831695024190603377954993191042016171075213339018261278575444209304297568814408219965332226477854624734478771207023652435847335028467500583406560676171901642315721279511723537961210158321997546223852563400258613434058190496827351751844504033355710757681944522884191181614657203378953324865974862241733522305741113918727082458618551085985115557210950765223858788258656106844303389961123734253533131562093697599582153161371539445008957116149293745961864953007331429611045934315609734745861325219535012458887857546066784829333458472891052745425357618868479462506393009380794463729682112703548765921571079596097110222679636691547537887616625418808474930228045509080474948042409809555010283276938164599637503845263639228332357908936963809923427884697210899425416233413115936067940145146410275257123441795568637420615982771779940709105198462613653836200771529766468322443358113071711237107396527872813097008990507820436071242593420601430355034337787758880741810159076543410389842434053232468972227033180521211918645062685984809596414186983833764785878171046902108377930674632309136817741124616462865809725760800970163414896719401318621199185155876011959750052485261593376554564084103387866777570699084956241614673878641011994059444038195227075501387253470263045705661167011289178136120745389948663863173055001235024404401604562788966486909299662592438868773433112503971070390675809966549786434205818103741729911864684636671300877048489267172487076464464210333765752577915706397409731219283431144732874620292826584396141369252493469899226909775608780364245422910943395506687425840833468689744795856141563471864316950188149975328314090647849699652583086627817541011931727928129058834831816264763483652963613532056780817663531755003308984308750935493802978666230009713686104488699602025979415076512278273198231497349857048767319535210109659849795460274682485697907620392350555137154454021933132229308384474040224378706810364874102278972628352429201385704651206368238010939031574905688992002426114814438195556677953989878650884995926504045299354627922189852273814243958333885731719957837960445372076222478729991114741134904224709893630071652927667079493787375092319668567075108036203457572447412724718986989561219514529234217061307727577961313711411542659623165599306563111019642241634656230642370035964344626955053405922889139390651159027954067833848630406672161925365741137998809727570050704507353721509075751413143597450982268054217118329744037872882769284217620307100357615949325289096071655474670543208409688712160039323987697582423952452439922458101941037008194921086888486403716698020447511598425909400784079231883699242328355719743331629621215692183159546742121441654634682533945226740060661454136287784154408966344560412146253060930257202794820836493408732264849742226116894915750874100526362138679758669610821154265709570119641134859450761482296567763064218332259096434924289324642176497013831118670535124082928855114803285063524563000464447756918842942123216645889276784319832965922346988904843061189752053001845550974917280374279045124930139443775617120991316273457997510799445302205016727842516372445414467776957927956001045785362066215638541943661015732314325136666308010565528467357647638408092006124523844726374804240115573969239906582237398430998415615220625452311171644133665686154547228482175031644064576300830237013104199786266232951698041779333337916628898794602798630160795721457434308356455462204292616938169080830888058245121517870117551143105250344875126502931069264680945602005548177541262950487399598408411979499162464223763403444850591048483508817023372099940639656786375236552511496277388665851554382298591414327530227021094651976419290764299522329463356756861998046953906697416867154805085185176527053614222500491761825745626191929200681156878172075896415857357802390680496286807005999424046386242315144474718569543023195228209388306552674139787122987632939992006223067051058074810245869753378432214077465211522155748933539066795368501101728562267942199296570382046172739503736881324509647359945690086130730954221432764424223633311904438925190063713377590413486603785927598973158171621406102647296911145435211679149338285149802446071392306822688284446688184314326703032355314555150411889181763251336106618025810134275687707026127555586883759944837113020532732786219268846214096911547016138307586452859843607092756543603205057089928479284051956842207377927821179583824959900240843199695833415752536747076749228489923180317681023296906492089232229585829380198496763004834614211737577507582617384816307170761843489387856745570048327771192843628857996133011814316908309294419607633854917155769716742183646908201746607805500512514945187461966836154045602758472120617979808052150315196770383829996708036180582004296970242092591162170954416322829656327368588735103571535391246159889331085529211068096928742284196597899598859509052874031230702682925857537360239870945668110076751371409099333843401316445544676698188184911443545285260010022823899202885768825253593029468878914852801061538905256642180712990075515140299311973834769323157947073753020760494371459882577803358962408891168331869440865223894322721197719767767017827625436966151041935763538825238255144705950344445601257661617980755055518038399244825122318371305008648439596273124115739866579549299975845859722094635139755914060160136334427911657780834899239988754515650306459596930391769884078303936066254518121815432921586038653412281824186986602649541249056041104171569065734669017262371259795729572674448699493345166765068353160390244936135939685060246315729916088384046528402100449174640056421768511263067249752969075084834082603375600233911117430402585231035928712146524676112305446408077808505274379066294997971092977041966409273309195649381837217035995413044832581713920854130512862892732926472297504560144291858343863528525088969954218532498444535440924579336438398213977339866292197508373777615706073104470336539992655468944703831810008955987178169252383551296765290711809743675027533763330721653436585693860055873395403439994650587119814515424424880566108465486010392811179481122082569215227241810944581840755498961122945939046463798574676542314042164846215287593064393061022367248925556202729725631749764669627661707799421972980071428866634605887459801075372664066344459889233019480459418291061396224731647964321848952016679150955422950821489371448792131327835935405306259834015116771087791791968503319268425407846674190917658042333910814746965099382857715354396121480018689708366059186201884309918830709176330426516295868759578124119677089427399137914799385703302439248839839584835091653573478398774900288276032690135398901322085578645542213115335050134673687208968068314770683006634129241681017521533328566478380777958625650310109503127357204172993924595379244985179527396867919197075727413613012180211264014212894529434541804486791761371781077817614408357096430064390409204137955932094850417108814188818798665064041844938976896305026278893694090777445825087582236500139902103047155604753683602114625594214291707803793518586235157279441787011992413324541511602757375028760076671317364718643177821522814289398174455556598731560572154547052865795424648531778878796049141262434972543713061120409585172046929336238755979912128615081597218915150356328344335934949843342380233033214341812820802581824407412579109399100749977367040099567138824046470186521695148265567632521541829727398820401607197371743868580488920510674648422114319641876907334308592303147305102380736655072023095769335447943188383432545685165618022352941986484087063392058112225690328442414734444335480830115900415372019649488675025937973957024933175946584392163517775066638048396633949981752648497926080674391805331338576999376528097275845192558858700008640597625345353058673579593444271139365317317829874346068341806974227568670826594106079000671020820285683725829408274378542123760189415356229898732929089188842090089258937938647654370898668675736777729750459889088660650316507299076617379585218290506365286534181933796243323447143517877440634161364594446445391687228840050421146802993847615124141680435034116913903740022877682780005486092246262893548569643936520166249617854435628207156503550610664378921764120461001578227037262450424460825748900640590441832522392349376371342685902040106624723315350133278650564978674607556451988094593241387493845248909152181311863645923045965948500960455529451458640908189094515002979666835262110110918741268691328912936997220255334400059009777298676943306402875127636303967409066402505329567054728977226167661716474101931931124386418931425756753281617548426816793350933890370880148867160209843795640684944413268731120582957575997932303840322553054130724147181492678154958525783940079990631044940396076952977879154707655609711724324197200007375342613204554044090742439028017418786544257672599009606555161893023554794236087166661599285667624911967026539262164838691235112821263895974379038730444699997147756280975383908700199879113763880724413757520040642249488325816777355623999673597110945223573739814626386066447068264588660744808503877770015781197367507579428339587716763858805723890675208837036888017591873304163677994116567724320922418085417755054817865596547687211320980271739989765278601987282100645218530274334867605069437043272876235878414923335332620877784450047839817779623773333420359389213495251850420176692653256753813977460484071740454847685669733066421304214024619997016100636335712180188931511212037605103016762456032422360702473619312459556384740260322395492468496721159942738605193487556503639232982105265085160359782661164992780126364638728724032363315473653686128294685592271356391431231120958998756040681768535528179808444899647169688283449758597734554482556225255947862139948807987612314806173222348786083912522200647616289580970368163358464466168409288781427493098145221011016192798149335013138029515610291198768149049695272785219318776101985798449361237958820980009081695616919341244978922370696215959008735906255430067540699626847657082805086616526410681283387194695112852158970437635000134278727912055909688948066923032286475720599489791689546985077357267529895492308214836094171066314710202281534232804308429121768775422824430190740645107755961392606791059380355873646794492718790688395556403768936334357388938403187060664403333913626481484525152803478511172362246676402031876392936155560650384815227502336502250623936790184452352475171189696073164259692978004122806884743391763155485476409727013854546620813787931810007848023710373592552688858660901885984538102334026233180228755453501790303947883795564132102665879825897499661661952622140624694024654142484120963569673692962078089105753158261144250358264317106302103145404234960952304967656310154310370523167164708266877243878432805654973641039484255457709777610462810422111543706388742119325385885116358863821449674083641692211784006764775262182157672533262721701559966623672043408273006320176169092374384405720630082194752090152571365527520619621946401017522888975642407593391935780708608319682327631370550861845614529113372504347702046960828897068597065778966814365712346267896015493549109401377180537386064436689202565134694114741934087182094268384012724152616165865644925505241552518474495426159962076615258120115917292497490784966341768870878161688813742710163223935926808432262048349840853878858964412570637102137426988945653107657126571438949960934216082215536417030240759941106312476903607418075965064877705593942498299556580788900241991053875309953313190061243856317171077715461493546644888825300467455013238668466399344012270443204479744877650507250363500569768490264031228953785410359395011726773195767297894522108891489043956305511240940784190311419912196991280364013218946133536324836298842859745510109609673653618235467610005550723717629979790370014169631064887797833378993369900637741747817535894667067025441196582077692566532514818229434406263313734496623020932785857943666229819614384795910363027377043755284318199786374406887250351702393994537205754267888676966218720588998943780622975815351210642627169413824586812427891296022392085891623605781647122667713079437670870705598656593184644018426722846932985084226241823224929681143134397252442688908248706258142275615369751804744311605524741119331283677842921580539382702912521269299949755682540043370738039272656928817964511511324914618054366254576515393178961384908904754307571386909081582529495911220766048166787814657567604271206819132895685687562571970728258159499521253399001941563328883698964076119176013496995458973138800594007789107405247199464309630173166434340980803787782165865342776180315620499147183144952758250660702302451055609038008579914034261554827736060935226373063556790876141747849732005237266732597655208018383710801923720164489151399610903711726379353854006034495239926926453703425562495063672170150819882982866195989408045317991180683887325871998217106038415529750316161565259287883237043974373335796057678422857203431966132484468291852269363191413324562057978870632818838778574270373173012962280232645450499962252051971616291385940645046040447088194487543119658714198607269721333368509931427666169192588666512544016905508825081886939924730010164545590013350105880910784200079152147204081804812679364710935218294342589314386207710163589841208877961075402728865160662099461270409222972731903924344115740880074123643757490357840908002076333587855175409045062700136381745610945881286862907823194578452773762138246474926727370012089533951402835779900261777108017490058269682813673360003894886635922886354638647424215565400637606788949471727629558543471682781472658809223409022482012525672129848021440746076297089956464569822078332744142547987024522177023687928701382285938385386851253510689153276663086075449269804798111661975457809456142817604486527571073108193694771896390389697197955717974245018379163089129540678214955775382459031058342478516612908997618970521565453942366043304954448821129043204153058516358676389762004164764107615197582230644454876929998653489215425201579267831510964434309405692989181033260667504208705221110555762775549361657563083661301433832339839617388406854489004470093228151391481581770280062876405603296663930482993046697528478057764377467530597874536291924797646809970747542837016061118149374950813562265413493423588859004064259404127200074084927710657022599394798834856791697824203079068259467610907461092832881422974041470783749037278645159384712967966563534562844611211646198349849233341141088811518765481281058752132217982600270984238038960209275086964524762064717042298424475852423431261136848125974890607117434015944184452388353982620813924540575108355700149494715701221745735976532181157835968660304256410518216465341090618321765626523811840634399639592711434232444087985110445534289646387883338634896081803914470466140805611179570135523019775507034463823726491521696871571783695958843151306852160722402217776506706858924498730527417083116093096197055154287933229124913397087163986476080963190022468098101218761734634505999025055345689623749483988019468205558806887815784283458143008818154301111667009139073167637838292990560924730058402694804612102172930123709958684011530686493628688983467605438168515980720695269751639143481100653107477189759398512924912984813799535450051375366700192113244456066632218585384518397934426278412926758961411371928517698190895828053620619304773041992170638977420005384820880408768930700762222201570622342346197269438318070414997037390988180232777886287526720690434569720063361277286076491846327907524031988897962506875741914274906578986741368745643242244710117186351937260173485248112481463466743126509141220295912943706375969280988151275983893806146002492021473079934036322977435187584541101486185096890924683345847168630078074692463384235226152441637143838697348448619555616353538592052920938386464213944998543995046836941862187392398885487339891505792630884710510196663334013285678825466533124884830181941519358732009205253975219887488407401754459617545006019366924028960822044959334384486978475629580821938174397875765141118941288706591595729139123234050412778756584503800714657273612502617085832716026004340601078233340365776328701022397696245108760854550509876794427288584711328550085384556443302939047941395290805488082980622792802113604870370101134323201193831220440416957254305204149248970149096493677480353598533309684842110018502312411643696909922946538496539301875246711133237865479413982868274147919683546141140781064393029264848315003661958193023238103514951799016282600039177513214002185076743621418829736863919012085636467252731250118726579153768351982969276556399902103836892763200645494104772498153422013102587308053328189588414897290381500048965995480944715231203159047634024350521983989992395601399674813618313583484656220983781285261426362472002580242024776907193364149079930646539832188194203335407996253021861991974930147985955228850510208806076667447274317181857345645541370965482345829712527991091517569431379855162152004951473892724619378871546633932138202493572770878074339426055022378216595579225423785828276280838069389864395523277946352478199663881018613955196733521887720373028222065799939163024111405680725594196779648544156952923735069959915521058393961707937482881093577396589037265072268455340750816550120374559264851046818832959388784964289500569562945884586949893657733018445906863637873703277944040655222951037689886804691548243044957710410140877897140666627860077122240406907486582468730775600429447777683445711300109867119880381555089495593872120204274744601452274305654084666996273676321539246014200917818087891751931512902107403843368462854208513273634120553133977292964128732112887938841524363932179230174785301275308350638972781039557525954052076572558348602447575932190577649098354722082387160019339391684843325769133964297697340549962515834327281417456282221928009527820356502613578351797900492145337592623186482867499184893395787747414257889896206425125642734640215529408071315174826450956064958776676288631249420496092291748339381558578317625210037009093999690708109670609035625753589071433824313928047253190598717520452221220065924404661020084132175861844645226771658164103070223294297706187554668140867382359319728964103203266782693472550251767135456378723928983179875658676622087078081963870989279312783293204469773139766051078552989326695229062610372068347217003123976686933360143262729724699169482290884010386813849652247655712806284069904437132052236781750734607409926244041613519749504037266298440531566403792891452430980786100250257697598443170777812476317096127268951504561812682629100473880101813515837171700580917467851501425978413667979459323502471283332560118082327126781255890214831019057237086139712411740143473941890808134272463489103018091627196997534481320599911178080130880799097649687656179126468920587787583322340975435038747104921686422887057669520283941078135162625081964762360909834299840738437197479505273208742883479079952079165474954512540252094619297473408328229313140483649026074315066515764798289030534131012748600386099246371132918998427582805689613598963922720065627327172783951249465348697944390293459866929469151336576035018457384303247578306702380270325981450065073296450013326058707110589773476679683895480662648522492210682241584764087011988159338871970925411469164603228137677360830864660465091502095185704617251846626117206798798425176454841382866724871097198246341993129499234168966490522414723638107342327565980232944019677411209798612742603237039458676938022143601258681044892711399677201010179278028694800731350206999238599279405555458082330159992462438765293360951967879070591360606197338055122563153099666215557763697617675486294078215011733297103978093540131378340695660640924467149893903075367060651116712480224370580646524159444871508700595793594653923897034735186264680898223073810385374430661480374517435897376424169345417399551384622085681533436819621064847399082767786927272662362453273736635082675096840237574802837936817313891264361230015864719912153036972953252429350741153605992759354729871113516763920781138061277538795614918481351470411796595663380818273249615647630627279904947223707608496694084468062874805127267278328931328619789267559942497869895512571301893796581156263257503274890933170487141786021986376415231336064373862708362244494585837795241144840084658230665865698148863198180471457389599528050512381054147117667043223032950431881014986628974203454911046712625052440381641739189499358837568982048396370432519708933014482361816563687304954040436140370609628716337617439013259493599801808498761307558622710560947613532501454452593655597233831710642832284431891314039846048144629043561377668806682961633063563540108445548869633026227458218279559538694817140567392822925441785296399673273582844356831572010154039244460831669382746424713911891928841211755507005171993000065937685998946817788646791006677003075218744611866332712779356760612052944413124895708623654241168038411988545930407565783035158878760545182189496809578776184360895525448960068210568776580993603336527429412217912769096113185302733541290793401779852967419713715561049297958111358846600141031329202274579515449123956512847479723134350125399512632128611180402404477760402413836181046859490973764384868790960432666647311059716001533572345078697553844785596532726977581731809394026756974395751639237393014897994488488134258256328303054070407792826571928511123384301555257283119740639997996935383393796325798515497102931521880394889753888853426284764101734024029926868920608219904585409643926770168757470500775812015498193574744827949784025507477764156265966798825164271912969856491633534234276120661868574324185736996073878863404466512293021619387678350072340704513396888532791206011596043568593864681137030210351330983416487112967368936473852652992969928670430270072675209101013212632545605742479442799125207729815225792434300573892143199981206204406371289551676131790000397256440758417719549377045576130330637745949083589649865327202118413205355699778320730545912379774302552022135283751196072190198662007230627569484256714019840198623807392228421961502553144467621149078296598416047383119173877373633297447377807181759925137420831027125582036556482923192142869743493747699740411614009958360999291297951041023914487766143848654997965198333822771893914395018884438158887416041529213326893134690820692608735035388386387148960670910230262170709428124062138353852230143047094084313554508466037559935211117411447175944278567767461832337400845326783244111549134943505701538571471288720699932983346223164190419875755189767430743788540892107328830283784444693586091570993424283402801187834828421659238548274016620499056974433598375427791479609410610460304257774755784465463626080560881192433910148048711581998506297396481224985481842226120005173238318692756732838821208351170959696388043368832571690348382242455386353813066438126372517909492880482726188947365338090542744605503548408498540267870174313536107520004520104355238517466791488915120695481217225184953115135345571964648133571245389250395574268399706324251765177870015202280595104563865076149372979549204937106423933613139156497405116782064774375801888131194333911553886850242295315565086242938513747916818945633993815676324412537123314968200700566857310509198295990069897688178258341883907379194763657763387546422497725225282471862179511966670085492575016941973051565481396029646458640213407759169406057018349522797738899215075118113322322937152978627445687602865378406567793799150219753350795805559700077084263047725875984861550674367627730834067265078725459848810902329158757143503937521464325469142136497520545252803994469351775498973782332711145023949176068681635719462606186072156115210534660124140740579517946841476960418721973551488320626435997309229768813760291450318421121357740522450882568049275387264636107056034701239931551633037468159823609093177263873670689712362384625600867999574447838792909791200256550167807768773264867078803104935184447371195946478182962038047473837474616491203375970926114344247063554612730426842487998323647429203357511062523750807895935776541627154435934405472580016403475633799144366189218655023047707288036438204085058812677328338894168084135231402511889283782307971321184049720999872020099197405213231292145425687822238640199718456996299745309430032687832244483557726832723947119878122504156145135573636862479075103668735474266600286462658489561865193604284890150098525631760230778908572913304798746306414235330467482103636731704201601144708949265174214490909685213008612312023721825111911074491875447452709072670709427494290207258568851468430292386689799371105824616200199485536002948717375895155355126188686981211025811281109030201202371004790461707873988235767734701127786175306280118126391220174514923283941576221653444613032307617669030380541682792670260642084303169175043966651553899104262607886446677249667242419400801652556606483091829814384289429013451955587449312373950261520690601415681450280443905749928855386439267002544924385193930444025528674387301555871701401476019058263193608369663531456166410210106174256239444984807224479450371310812261392425901678755733792898149678257696159565545280930591018860932253393836957014463944150199124938893799873564593388692447897329649504524719103665216648491664759836742877458091335188921373945407434456321904491261298196325403790415005781487904185611394339369471292077372111195635774716580720738745664008833207769077777454187302272437400511740918351916140561886313224297037476835574496918921968735096381937744489200868771449533985432548835797084711168382354675353963281997667370016499854815965344177432237664416284173696619304775687549122614071886107551529444924483486237197802149982963848085319616844943480951970700077541935751010526801132472188099588177641282335728958844886692310830908733139223166691735217344491548932455159033842041401690792979146659040000193769983364905890312200025189166353750775503002765421168247756369276015105735722873337271891393597886291895014010973700652632798318000545114633253665595372351198357174794981958558858120163812155288927425933162402314329297717339090531981930806722318597872969099610741627964612926980094085384652156973155258711299044121104934338927427624259302312555614084279167400167582618511788764552454960094445266184012240262986421726181699240611626787391195083606713020041264715168193919915267237556037857120000572789278170567948085332001927879616810742570397597213058553144250862523821976060133361590998459271944523114956064047235187787624328314576695618671899514067460120464948062769684032997327767362173452188856165949317092588158795340942631772273018646419463827749823254302800632421955397562101449146200971477835600289104927560724031376191133993548467453833717028768816900505738322396248858307190901853937149037283770108185936170844242111832410949784393934607705489111426204642594758544627670609573135535399532859276151964011337216821968368102332969507781571025173614259846553941292739984196455120064633234007672847316880380954164169861815256984137077477820353559692419111780410684614970508386015350854727379638375243441645843543442712786744520187241974897014632624871103012549481074064059673384852277397064404194187185578067056603168197503824575662651149265025731129379457576883439465469537463231698608678829126592259276284885059789277016092929336011274876406493934413839379698285353579606698770691950773186004441148437762076474961947805279411210104078052139375208814030364225837161995764992414612415475686572253965360829560250080943761359753767026330017722908227874481996267425550739159504461302491402049672655153400329923737990662669456439669417313078367938599757061929651546597927743620764569339197758806493769108803019215727940174286655707799359536145632013387071437089391366998417111812792800869744950114217049638767076225488826525263620627440813264304780007777956139911457051053580951387377457958948149920094559109784929878778484887087899540434656754782374475865377426748584866606022117908582847798517118984781362333919714496483495939295385411029020592847650248272242898156394484579483724068925155261705686564075267949301960492954940696442703905542081959484239655685584291258754696338300618566405501795966073472636497886986899164323066197462513827801568238424789304541525484625415873321633865776522717335745297102829521649332165733021228967060942431781851473927974816218253940647406420104138160498363347393308163754711362926748465249129791907359852553247852543319256632751412263144642138286663334444915615754695287354693043892489402403658565512086939458576373533902282194189957725439520788508955605688002355858028841515620841576484541113742470433093199943273887480047111265513517985320529628227334357442881039882706988749952967509090764696430831923808365138780066416061397684674473993600211004494609007484865375908034549546122280509349203314121862915146339696812362838016281525807776529584643682673870229211855315783927765635810717966158097963916099907344488275845480808070385883163919544718768863923340071852506033570035045749750592443441037403687506558818788517237637237319713057985359472634995480069714431252717333415984581642602520870966898431944285671950598624405187102415285352926531727561576900811004850610941266200103801572384257538741682569422878437545560504333747356647731991998875407279629654313095954603527713011589665241735333536372651673097054489731015551191382857423003874627723055780371053944532803628495276133170526298603577122835168659332615437210481141817842905444996488607818851947777115482478716735402602463352058337862921517200668296554769675826696879400005880055178214193248478805918313048354747310679757007114179040182798219602639877326761303981595490650213628055900839844830465609454371302580412819925676195022481685708851069421000234148178388724145585449016536065297967161479389769106578463291671541932078508455875769021011431325029541611974147731340277838806349845693475690966579762799720031403595223781213658024249521614503320805625375963580911830909648526382921259291596732540080739299174821108399401925245058295668981918605064167503470363158843796312491223219967198437005865947340678685080469747789358593375018054132726602069769588282628292498534068048361994030056768852121661391292939118328333827389909883494479988964806621572210202612081226838199290171116805320842029060538955029439422443753877906061303484451163423680822457786682075129267624843122405180461211274814101635986138122405881994866741917475631362424280518799244604247316028295589218615001497126934952736115335445076875993078871705653951930801162317394538395243012504800625507378421937164286668134584593404379094252206270785804388315721436698863293188676998884184161345767440830988593261432288590514332021715523960689180234999508301674334188729914417157302238752732400499850982443933281553726066197296540583906530766615647788677704338932813516286137728237741044531981829949244392270044163693477108834844852183635050678054996170913117881614267288951677475874748294032286328582482844668304997151393129793350613747347504790919388408838517661883654232604777321771413312100767345706814542857393409646655283115402898390659471268772994801532333933459095956897663687019933916449668792054296649660226851856267572390746912910850323249083718118690102463943577500751503874242999299902792520887892534203488244464364831343635486733503675079785507968533282458906780714837093669439660889431032499339850651103949743606594580614000726980818100812114769044627437389988183544472960518328244011183160060020830961915410636870189660061128190262611400268542574457714775049809013680363889010470726002974724923689120674220415680027325118300942522146043760881450411348621067440621442815865230146003790734047024702697484959476247280729317138296049994574690292236188505643527686225384345565013246942116079726811698744546128970607019585519843069594800922000136748134172847149178887646180168653126313209627255829245760440382532850142072956312578737948215394843661372220138672056750472471022500442500077330770956327733513537502818318125682193966197127714705534135516320435992040027357099359631907337761647032433872462536389475494681190909028243043074838358704275756411500034926234809358714841810863889167779147694867326740696539291466333666980245794633537916896258139004318121425155347118542053740049705984165030048949846210927088077992670940347989031080183516868866274551845276231474278739546180884870882213110314593749125122039678488634915849765056937815877880415929543409599610605260530603888504430147647157034166432155404521874349391762458205508814575281821716488585290075699849278501659803288290077978454214863125970749776140512917966526686045984375835827115157752249243348021897407762415373306960221627902639372980945354395207058089338667947635487131268981520386683043297347627181007965537586912526124404337339746440264793186488745165575033448425431902454319972942257182139508045512683600734689489797462218532671388564909197566973041451761138042397065874552497821446144613472632428024334303632946394660635008391023574955083112877677901913178017288161829174373615900967174655734328986860337897483101691605968392279631222317817078475120166514960494376870721828399911043417239085965436866406623884498418542344896630983223526099629801221449734879560087893242440018334534013590234023789421543907424728002712138496638843650522907662807322960520884039969021958222954624458974950445914897689197518646658063096160601050133030303654917717555738526773814949487350388134787503479004944836074121687966121831261568564626452606205942681092861400926495983338501657848431349559045814357615523343703962241859780142710724193951187845832927288162934512685598311712026011959918486414708542800196778037368224034259946248672600002743534101282621350550761229472430029981375800075387898278822836484989848016356184558566821716317394834147021900576754414855279869966066457519364923275443499849549071547932231848323120535934599874893489499581034931975655467713388817167542258600049280578918702414611930236670574587096820317186620690278742909546603374828392728647129807708212924508510970598068593909446920215667532200893441631156300447301130637919250192583248964872405997219189625689749770362683819750308845870452829428731083198202520610256204575771818706841414088447940768561305905734379247734033140134307139403092495885543201307422710928710932703740627098708519969709418951559233046533932131703516462763475020168412703845445479433152249062688836518412014071114963756358021485788171876076235713013123373134831763772752021185484008446290205884027250418953972419959460585455500452178602717479163362899627679300214576773375752607319600311270186845381752058274527036346455241605832906800962534990192073923947345336758319626504033539755761381641090018652142688068650686904967345023972687779948609584814153086552997562310455044419094587532320816609822669117020900095705664282326344066672897600276032530115181607530138125467862411848243624122108968360031082191291675224145146326663210565456132102138256335262162134266153672420408202703898552650664415062725222219251162811514064660965400932322219572070263638028990653163004935542561469270085877596578684002093608831616264756291537510629152867002214884425522863888214576245406517120929621342469475247323803253209152961350455870050932757286592248332663458218862468520700569619731987645626265141364746426915339095793136390235271048817092794540190927723908385183704671423104506429416858319310916492444577967618690534959267707039139321494032224521787376647527948190717020872584100217072564467947536028511842711215627819375908659827444562537903146575807515075761332090518626848248056576133463368700844282836391950967735237695977399723664201676313037392673282782437632037374261997765105528958724892889863348025419095126899281541907659933370732559377864640908706033956462797110907383832856898914018380134482600312523726456255484148074617874261008905529218006845354520058022082376777664320006506734173147648105717613338522061838620847653305660659532487869832405378861734751879707834889355240472109326270529267030896901839569664938204289689570591936767258030721802253589774454879437821280615384121385287771649568026795103705572148119017996408309507784471104747346579291190811588548860721117585139478409479952399302449708449243397127379201026926580977541676649100137124936861834498608941194663290076781942350181667712675573460255330297356801667894327992717715413225489765195590437348319355732693787612548513195408401088896577131409136846214129065352146335867624052431237468661672106812324089550771893097569751011661274285283289510658244970779899277975432092997936791098015243721489819127316223234827062415724859601274318841849018535850027314659457759033718693387274727548711520458402548748049462694947128799554808000600021775654044188594255123956296820112533354301182230041636332007842512525795219485530194126946340143243008222537232117842471372491164909950135267483125796208001476494596165954526981419462480074132087760717112501823494757205774264952309587665639575350800888932589809867505046575195862668480359272768500453947174632376712283008464630600510365271010666808360350461166524705214365569646709063730245542571188662313089099938777819113546768945092635341964272141273506549118905049024163075325110706257269449349053321831241842082405221875607848392598254509608589868297968030273996256736617911262180607107144181838388522222270683313209966726856815764140595841981187079709235626372737197746882246701598092930443061689376481051298008858537627877314973668873214848635375891752353766410546731382936063578459580061173370066654737315428852350146042763450220964400248075097361919375683144115518505524060149199654132181243969464595598061946012094363933419802252383483516074075452604202032477612715998573719058652692042686527145935600153392879242477837309682637660087667787389607157062686731347882814163282298386516589801396569205920700714507013998398494579562079808410602331894076482073892607928347877260547903767096753466592109155109895775504348464751312237665602869229013674333939549646357457996177367588637021124924524182209334194449123982273654257213179447021173929708886579311512421963712227391895243982142115205491336125020718560380664187595644068426619109014180874502873106655459760362273339941829378615249292160583141824948599199812332163436092098874812584716959669513592159229303548178044693728140925689519411698756444055918978593774815006911154153001854234817813490128411481673459151207536536609640689230541821665021603096269639208258240636256593238656729664601326009996266051491383743418384161141874257974302279548499017357329055202966373666880546277460576182035036730060788648194672721848479559279955085629688764087654799923198268856518360877038303024637325198526600976900564910081176955446532913591579148342865293867897787124562547760459565735786045427982980741220003993283375375709079033195858708458309401454893745198013230439186063004041313554987301061424229609663698520149072485841912158105371274034410324295859835775578966549559177315776599187608702526306829348535575795634010411105365873119218041863744322518907388424597258275070282718267297627989946325697820519453076889938911582644020205804884453146564512712445365183220762110471866057917952477952708158280319422552698901048104592187708635421358809569285191884084998533815185279653228604114144968705962046051737678724579699074765601489003521531004379077808602934475337692233826290450297914915408075142985005485197146511110626009924334765019221604948021850367657885424553189720452190773601969860717191301726479257403025973489480613097439169725906439631861575364751171557129283429112219698817709110921977610612875560471075368997794793359601359831994054756066158242113716489271534862587321009684178784226777856302661622288911823097503357888110020885875520606487709754638326534054120776347070277871617414184398803406176486363652808764317335324779294182032311720078054409813055223336102190130405365293102988424627650312100816650686191802712064943135733939586516419649705080845748296320142405812428761717387609333353729202895714834639509649080834754787254461957543751098548533526509047529979706220838885336225113102889934252933702242115662935506840165109984477632210666314775306406035977232149312632643341612540783802821016771208205422914613887640257034484286655523432495451538740555134979159449232941081005931754874085801908752756537376223194182812761160962468300441114704287838546207434972151737034288041020476847170384680388133479030449816575355204158211458597777138226888094306601893430671052608424532988244137992413584362429129716721032319321359786212638507842699501796119786996178149302776341734267990798513567443002060169449192723758512315024133309703609098433713109858756180350993498062969070887727043661668230538956484481545428639712605597506903059797019306749799832697697353582773134672377603142123290298291551743146745713589761642266284160371836320949873010357652877946334852677260774692978271657252074065562778807040189600898679307643684580041429860005415708424002686865840208209141493486796552507574803502448274852636406988330046602634656653736299080296092179812145995910335617730122669317285494662468488799973558022647033057625272203190831306092717555407011304931533179866798198694794508110834900289542931307649732187342310502938947266538042603403657245096870152271739582083183001520920155368137029554232557984915898231491099661313375077508122760051296801049134239379306954687419110684778427377423352443084572261061810691810638544503031176973360522479423320341730903673107915384213905915622171365099079486192385596287912763955737325048220762722707788268709549140846478621614341451691632222291528132626803661670152701321190671470142982321716949656387075483897616667639323187547203850227953541041278098030205466607734222438488569937489223742070765868036348761066141150232850714580209281874770708966645993454586955347900219666762202928067653351619681462889369235827029858089316980587754937340200958231971600947877347029028405464549579539127710567203249400013628768112281011276865038794111637083725500945496867387003790478199141916670903498713424425742269564509501337429700412153405965788529423641748626916012191787065805537474192559271266184949406320838009234160087620355489628123516485877971360810009674227366012629061868870007010340208618260893589231422324433097888819136198472227207544658361865212269885612630610100638288228185164815730920350027275074596725271018862901199230347369028358093893196033517988870106986525720867638705168424151342225401529560838435561291192094082242607189182214932724428242909940874991450428885442663880338502048267408564629280892213708239199854759512876567785416025512257599156869783398146806823738502687423064878088908336872414201459011278211696571616828580022580826316106968533260943111787467780759974757408385177812946780185554573759186036124180979275127121019999847043480852348349953964950198913255629608263015821271349355261107798439564487672512031325485746393781411845152448148721546224810606497658663707537616799982693694568732502080411759175806918460997420770436252791732561992289229045885700494171924506158778586859129495212892777525795784855173164856657801435518326912254239854754991409094855666346335454220720832967299153297052736921600832108319711606499581673756608048190743662074302239840520960059733147250332953995804052194807844566178369088749992812238783231093168215194641764016977793469192335866524925553529709455867484389593029904446377292709862314528249080170685153500706316400024732023011482994710511052600581551983077237149837724323108147041370330650289122015823683055627604124813388336796765006295666206739816091651800538836394673452295462752682457201434591488336010421162936481121133126654433124316314878248512566023716455901229830941017595124877078242494261237011838159282153888370734249227127793655879007105926667270823038789532147088273084214795931491339327420353783736300884978991105093060299794183552993584057846303219746152274186002534492324455496243219043503344448186101538548729597990822993943417906335945788019563245494243362139759030975576057994509532160663175130575951691524718842029396094726129056704016737828873625766671298332833013937306506663968277577148081510249184022415048247253165151147291032522089508573635813450532916144302414573815012587380005836091977011499730149454129026147975863842407769443537732489081798531356848075757753153087753615640141047413717770445305682365403645378680008141682898935957558878964434612517364694128019057354919786848735284772946719898071536506181875207314367614707393088687681232655159232618182515315596897628451504644954905983702709581735270621683401925486237440122793830950135183763422970304340763378511358497628059640737651944429282551066224280272196286877357617046202279599935223338487414904235222179322412062638200743128988900845238680433568574530767923104321774807766907637788218018088066942001673757141603647736339410301538095825831089189234969059523166279517372300348543878398509519162622342264192002078758934282173004345274318350155436350410103803012160927311320669992795823371538255683633245162194226935147656565779674838233936082538683150715126554933843401311317516183719349133860606560618002635000115752760544058541324408097195712933320241810178338805186396835794242607446894953264146971079680957745148912341151656252479901104225741466119384284596809532027339111675815377338477970611467420738321949487808961123813494445625869092055059370689164521377763677951383537893701249828118866923685003514426208814415758741950649469533396436545737368156002322823438895635264903577526536983516425151790471861297369893065347219911189468960786251341604576584517985707215928018278370610467265565020807060726545088386194852218406929235960040570124842890197457638104369107045270235168567975588772258245568412873774643084219805384047715187002591955659871705174637955363267266397220354167557552756971117497003905889045793400940870007291401010226975709313123775156519502292280897894613240362184023426712939198670822817003188544424782494547986725941797731095016387920034041668762362929843334343232631408114848457916047604116916053754722518250511760323089300422226381244038613385715864410468610056565895312084571337701632940906659257357521719096979351505865495012395627257873062711284394981245429708386610626952227010704920756828352714670010348760973204421918390412466496761787934956736672817528216849374507944512182446217843572619961322356836993701363586160076103576577751150807446644242369837174803558676184922424413261082355307980879402522339699307790193642822379517953499772814511295781491982187882323761261943050731776012494911863228438668522092730500498194568271400000890452478057808861319230567583914128725829052877041905507481326600483401106944384686258559544722406547699793769454898903418255536903228535631401420335574578613845975673479203967855989442708487301394425882847812297624164272751412183968221647565341401243762020463126646483688346557997039301199100216666556066005269435721454759142466552292439306505483624982701772372664889699276699102704685722741025025832679036601211443531514838236553558884815477567447123185362243064019957705830584870911275578436301355209098407957147663855208424728471771881049883165369857306027501672297314583383222236111190331510284390038353656322902884415458350488623818432567744102116914824365640338498973169349296859874594346220272054955357185889145304964044313714806567820892840995889551901084678185513003173093820895112103881837861766438019632432825525233922521238844006274655590727391514033219860544838683697541052802486152883981128366632065963726912428025523027084621818487075174457355241120749127063854602935620135552850764589746168707594231262961730968492892949693548925068639565581498651729905686003958800204917044054740235169358611165473429471200804003060425138526346166592599702730537280318208836294920591529343331604594089847642952701023432374967640480816279941968208416327495704880272245821866405791874537073074819382575034233024020173112975219132102049125921078782344827204757419617925242235292782192281584601302814961045992071731841876950801351771538355719954926340340376884189074294365572299197009133164542795402440200850589823423704855053411782450219044678592367372076594733005370411699847246161188421247174807883495065342072051865259542986367242961042233931480210149819148996418116745705066963184773361554832992323802385962873708404249094760005981310482552698524508579872638623773596237083619743996689655897082948989825371776198755187493255627730977281295449933882245623761765185365254015765338346285999074908210983392204717383687396063214426853118211264153367771047947709433260073728299827864281196274739240012776714854272816012622240704504797042136865513623594374989820686054486046261796227764952891015230955120258390444254976229358793090283177080155528833938496223057025053589561099891815396710065615839319178884452623896962440417433656050502933903856282235643092475881586945041796197379654125659728962208922627381348455590583499033087299105789700012200640660301521390091196734886695519340528621508674589558488858395481480571905959396792268610663894352786071016807950735505100369269680275064948092771362392921737214947186885444576925231612968820702755996993790287863575528347211052411314372848542567779970613834172450063022311852367498284187468817757811582686174590889436331558985741315322758939871467713418424165237956636789289449583776788609324429768998271815349486325685649828674564774217150405200127473940065971550688122890330386396019934836636117167102127215072708708007871308350327719419581157244904175913831298057534469111142500972043122895813626401074482561605534555112011306908437928554709395710851808173892420967799901376359724448982784019671986041836602397305857712323998159108163012955139033940125716815759592488873576191295068726492535883087488375976610521099550634469719277913089445074020712248201015588365532492523315212070312917876592273333199976561674269821495701959475240749672320826610802454590166537123967294900165881542643269771567828777981322080375453481633967600465691186297938196990742530869269837331656504374224202879151136005396939988998377722769787763605754265617281624362655455633218779702994261302207839527819322931803612326722094614915228513065040546841299855981310192496370510448260581539218160895311842185218076200412444989933244636019693099473022311089861475980553517177123904043012959509787658557912169971760451885405179767580641401068419672874336629409315513141973992980766769554836902658397893857761042343574517900875065836727466648598327395243468089269357068447802280734727602740441055109113695779942998535905057210182309575752451230012401302479584454479133006463067250979961158830813883499556391378551194981265438418680880396716092898440754039596406748118657467920244740300002297086878352657497203698309358284906926574586543959768883407995344745311348341495078045979726307043251673820644767196132840718425220381758784573660271047951271331346225980194943909725629404779819244497809460798348652783123979288252139861573351062868396560554109853890061395401221028110071756993129852216468271542332811578537315503641666030149686378342516415493099581728140821915993202467256010651356300874412291120491650905181676028198892723006053575793864304455032259965390053629654627169489681610844072742322169989114492981197177014011314106506107813274259923061088513243960955174729030423688793345631016915803476453033052216222207593756408457670605449196576079207380661703194844437257275004182310884323166316171851986222134647049192261195752312859284401792084924050414125896137744263149249087986892035313877202444413877740231314186907260487587231824653770811265202241223299330344160180807195430794220620166567965884743033402969175989831485255102754204391226835820798061447657108792960451866437127338098975996313876113658497015902429493910617738991365827402743269548123622154952108354752913593163797273657106790440863509706372293418465385260424553245009415127471226514246186384504114974808101386516677722437907662224125052365707182537639291397322896769747529649915825465157716129517743259179445682346335106475388991613553587354493598305705058598628188187331021853289972921582727018796719504923736322051756130739074442944444303850249705048713732249225345748984072511319806733290796634402540614155506138330574869450772579054362990829383024842173639281411314984636485123003571035777177171969407235141977961322846262308258556074106598576319676360643702925294217749514271610024502486047245156427572956436573363460668426924561804103990609266691431677199802075460657613428468800810008740149597641761210868041941752224403674407695519663068086214477561230929543440837542451916600384161072633666358988785491004460903678487945758174746522055744894809716449549170904895326991708160743103744388333712638256168531782155708645686182583111490555904779038840811119195819074819519294442666658705957830019974553635116933939048851519668205150840233601783490351180661510839574851863341156950069168474483905775937795782198807963465219851204381097176044480116497341798328134151644968054925749109202560777982192401378617416456365499007266702161019922339818514948041543745035473314599749781001755782313624754824210872757651895328342781093775485485970346204036123078851228015079451062194194668607264143578826965704171383559027065815727589359236476318634186332962929718746296539929357650799283969826664263190302402871378426470769852096810568263272988266679668336196616113896486540842453589601434811734774670152139815845488238815912396848752309003135112500978156035586815152165920164067453782957492484964008018691776763023098949422650284204716488751539023892527089406850986385614746929718183074525823670975161922472416330502311018337496038100121482779367465489706925117478732501732674053168913577177921203254642098354429524874503850553267903695469933189370680826751183144168496365184443163714647662992088125510772756488776461971237571519905165980659503962325592296879036995120950463555219161328088591811702581800500737135514891996859590083909195281592017115626997362862112868890984903268263777236701380670586609938830272536348955910256798284237859285362400854075597061470888952630211553275600291703308263300684467565452164177428659810783273411525229309867733984513452501256195977887848347701021704028241621253304622298705034107102023173826001643424356758160899001861102865433586503209480627036147420503749027039764408217952541041117053451606930910636297090035962342057314652607796515126823488292216142948575740239192066933725906165130865400643275475499868718646472111935016727289798049915658336828510014290748001074348440104374440197403728778742492896175832021195399464164860212989709464976974789347322617595862088157652130945084667450166440381947370402766812255376925784092934514052154596999496438563694313609281938207162175073687945533395957720612092379299654864552143007168696267982436020814501017985808919456905449609515948428763415637637546031577986784624397739925645313594808826601819316368876960689973875692749259591690084005913885258127340104825343288538025698403683099629192385070698408892821847071356509489024058326096094193196039638639138863368573971686392527933577637442420497302240080961443406018246411276662325826942563141934455374522135499702595680053114474572031596563631922445007766322763473856258303530323463662824005213902092621519494298872283688463270717875971506102915774255395471875043690645566875999572739134083204920332084462126538967814292563215309536656216360607456315308708450088920540440437227345294601919776100560521272652537750035289488982499389191408866069998703526389450328195634571961649898459472217406509570125140763567809899088493138219956028318365818868721665349105477365048199432079180958844356529215725172932905534561409378305864685445558568844105401177366252423123892282281205768920181293923030949831060280565129244449033224647628557192686417588211958435808500047294709250317228651004314184289691124166022800260182234501789184929796544760379440145458086831080140760740666384685336243613671762058604250719433012889441650891989650233446854011200678503503578253507878454525940850692134616598856462476925850337546957376092500598736428626333377045449571236783913727549976550988850656532793031686304125332838757433089630118334809617579479060157129177850712458007614086354272440499521940069984218484170476427462932794454307848852874073175823423504601408610449995106000189874396979388148175867454922822717705988901996265043043536562335118147551888508661564223243849263669887482441943226532681146922535781749477198334379885626154821457888011740687595549186535204798829772291437405437551702099595142875014972415566768414014407071349907978334086167240149163628340213952801646825476184564898974010580012439010533457952083792085118356330473673100938015295603361192376090722924835635277162056789746139664370249354271701274511785952665584006388443527844963957114932045559634240644461055361248665417187316117500143065686747331680022655089214501572515743077238642224100193025302569376516541360117821565451575805074746268988566689800614636996614127339249096933536067334197257235125248525021746749787199024340898124246716203390575024986616810951853990561066792047441327212359502979445742614278886794146201104991754571724413919909637560956110956747820087097874341846587265295795444357274797371332378807311545384598078544507493295264930390132849393910407840171346599195675633910435082559196866843804856657085045085907020343647056183523260634198554603496247803966463116665142179861029273364862812712531368889608957547178141942251640752983809405064822374033371812781265794520911304274116827938859184060404799660258716279461330332431432038066648052258392809551790906569444717435748630231866596019162640401495005924129725798180983116178147399180726128221067117769545697527276421353113656350169804028963832217591166292490313886688569756109290805898745486795974805245921729163609313245994624976899888993283725563044546207233048351281944238276956061287926650706897436278371858136767064741550453442875656907113529149537701697315335233661086284344729218176521770463015058551502785733199425370769083290718640395175396197514021600760058660139244755021744166363881657137652032599690741865633370399561651179664088061019643032221938766362167865911130522988712747909476621297530729622856285963050508398656129025565268512068510301636529168136120743912623195891251739122054547942886647443261619360074117828734165484458366307704946082916222753924706569170691865861147044744899587879765810387656567256183537606550173996787313214587878684421197112986040632901021103684216179335382769532115150763807383323006838827778900314411314223935455185862671970793477903113951655602128515223993767243762655086155555274408916278493677606016577399755107758062950916894870442528085380184756875712222196862409350935455931452105607477855938417473987915565162498142651108907288996633478540486369975538099665836724492809610869150399055784803311378285633062967326484059396265920847808106357017064883912602720241756727297821458837431817269111896928299373139485536153778591936238304673692649109640816150560059974025100721069749514182522676317505579416585530845276929168438373394635732463758732739862232568426208661472718471533057643058967769914880704754440887848965483419328897763391943788988282493740738487161589485445470424007854538537898809017699434138406575293552720539164610349000434240485226197604368049926927530064247383091146285558253122980911787578778527576274100741514666326766584518836993842605860883961634556789627989517194021472800951993994108544112586816364387449749061333815118892570444492908611404687525653066156250877397665797454486803325675649104843548324112653449491648542889862275090182636279098509552213788432084869795458567679432528239998953574915756322665836336910509369136100088429498131944257221546993933819255892362529249270326110448291882930266976903627566836357145060392759266585869683840008359377974134527118493562624336908059413972786766014434070102525403590208784156980150658423751823635939335875934543265998144367232751501433321911428063638504886706504042439242142259371951184185210168647925117208841810838890750487132040130345911573975494782581813502973178331753598483975129324375070278885594029030134701517998448160317437313097938888015566669971861775827157480966088877787562308700993300107279829732816468819924203669429801790327215746453447137996896712090788886512679210556278774957258406354137398192243814666884121701794385860255724150452070751998638784272040857777348789001334988979033488548377788241125979839383094725884646301713073761667705217969154179948850710818400151781000034022810066188932395499306217477025327365960354595754553443914382894729404760985090586987063429801015302841068705334490571918971425559066171570938642684533566495916341638378617654112621587583192323200090926025608507661834439919363068179448544179693198498666668935448230510716201459000567025294105746148000955233395409907528256937142842928221586092803734978200538922129765976990892153430730072405260611555058546136887416020180620991993718947291513054498777924638065142263350397512796497164730653143189624552201429235768387751771000987763576067424712835282430868254141406939967253151043596732207100066408554406781016996530624441454738279270905474778664898493914909160379985159890438836616686125111194089274620346749271226990742122046495107772585911641326337212658256627344471504981230826907008176015770692665042497854275081135090568133913449144980723784376889880194830151656553979275044089511582332430167150165776684928753790305042728446941023899437968969970096112646094840428087999008930721681239767328526868224895206778996181431652923437254934825911222205348306698245627312809443143609978278307941036269445707609958018640989805832297100136016383576689070364289538901293035596100527490556141766285382142569704620916848411679737539436083647763113085674102452232964809338074277375596367689607165729011562608560614268148107539468773590073419453572834897918430249313722138570039693126720033396425041955439354421292595856979401628458107108044563299389357912843271846299581797554080735060664891046727656420795860153583780863710486167691485557800096993626625013099285414488560183723855507577505619929761893683121510097411386167098172111728481340479501621058486192761437626355000080095213479587458676205084100393403266115915478824839892487854940720061101002314591387205899897518878674859838024796887764264266256982337262743628812464807566158267184944694821141701348905503334628641545590605549783116638351326163744796908361439060267474832264444005459284383262810762339044170635875093244865854243212808892518191424245433545357502173940737979760267349819473398490960508240328112147680568231959264967488287847126996482197979412178940430195455345993567154597055649927679611451933120898804087491563798043199919148470697429740936145666403875655067150000027081224935551396271070876345820710035241936057923143746970034044170582152942405165532331877892237752642161780602221117566968086949056836488226590075921124825426135158428351346157389437425426680402474876112970977666967575043968889060553519441498297689694338437970641484683859042651435600781952178644131518673988602827949289500594576533488684005568194583992401709705552708594874186401124345375642942385876069976580965763162765618059469027934015339672673275423623488799460551237895555421425720086163955684679540802741916930511794539284114718849251410458315271625339770470813688248911925248596788224906581564940736354571802430748497752584419000973705998950329410264407572881643534094427453991746910708575267535280762212856491518790764880045869451794851303455882577925380892759257006237474218083261500945181543436858299858613895909769113507626553558275259184199523765513407644967126689873410126206827122845217500054333061550794570720884400976408162918139056229637557297806367280600719523178240339744713160351555343991639948382950357363044539966526387508954654467901102976033003261253649691495362517850242479261243540081693792871945222996250259491094213771241202986124388650729519892500237566603125597782849629320260799490960587648114655777350654620763406082131174004218198612805115041758233548274053504373748746601072975002021055581865988501878303804348097951107172688447734671358401913830949335031437259058459842870895497014928114824201892497544115870001416228473532925149171501183987447412233519903051723385430623973522717929747421367336238002500097156416713337739008471889787636687495818479494571464694737641767040580642786832413998607072162374070837247893024344266972610842365022339223068243357050403848914034784036271900733854786345103794846718820394449390789500944955745597086600948829359761449691901740982889352574799214807783214450311543381173588119410096865552252133461909418632228659039953594701744757352646451139740806394745568348503420969312379086209834424814510499756188857015260103112468346028487335388674029079345820281594226549500229040952921534321996664826903438261542034199414615639458039283701463771782773857365250625392290443102848090171321957995909261504871935076168802658599084315487511507031364859174667049879728314472461585886879713288584243613157949173409370132258239004428742530834516619489213536675866554916827197553555804624769560578264097139939322099650267625676858817923857507731277950323666557250177589150472997781857598908873243055927659435772955137850213420407924239033804113988766165173986137925399425681155683595449751750489044924838883141119232955299409398709719326782699248138702640908777832987159203651648835428615152276407345650517640759847865729477708781684764533518274768635044762229937818408275344066140720698932548935112394204526087032587037531812571354749227222361266348831352437467781903231721062085103350975478306100004124100655024059398009814216562240619484774293218055994376502108595201402111425607659525002929573096406263323232816140078450229697516520577482961986083087700649094533259944072100174983904601409986749285751403942822146961796403333491568951619880659279943711252885286533914047084318700560206699112452331469788544674424232041987859461874086236934177763801866460131789065211602621606854306756431165084714157580489104085864214804230919393427837619867955422258353180397746544193754216031523119081272144278906724531277941916162032463463484008061881028926504838470583482045520700585023206027762127857036806915430614153205318898607833700436333172915696824535252472684520695098945031901943325585901796134100514405431571618316411500774403911616054980524721684002945082561929362663225113300834029370704551996145792406113187506223591942525466405037919713151501848417141857937981125662738121304428065656214061605903696217899076303078036132026809853936147806744148455990526429467102189502634961957167937205126571260814476358549323362429025163918932204317396744115811980413353511371483957480324784398716746204430026936937487177657660408087628020954904315480209851525025579603508399225715621335474993209926014610961064014279039273559791850201919215454482206531164330683746273507353684440452138422397360463435293299418634226375700226814118627358258805052005874419509729162395596947597032091830621054896281585440066803459120528046160902605976082012105460316235209768930597700994609159965457849689486843019791751554769225166314485169964574046329383783543850282433479564570260003207195714407595996630438494394053787353547495378297294856600002089962018572502198851869965644560104852243372205912111998427010945225352187093663795368306681087413571936059286611826740670795669379150077113056145474956157515449120367612385545306118034298511817077722075149855845031287636642653668785563653014560579126744581459129954901706867564151938140645413655483195521329767491757229944995069795572898295743308946089081142665538897693829012339291084550661287452772536934205471660479796814396673055251921161466546802467655006887066075755453888898679535637050026448376017572116605724473045572933203400526241662316722894426689272167266838487840310776220900694293857261513349988105367748485312168453973865272344463468142990372642788577039884877203328142481541300496461445699395240736119477707939146373306346821558398593078024577980784331158811503501975360593560722650781824071132401530573986050713656783005305221548914168658694833861896255042738886221952991507172009731898004376791403185333833533913774086260063233169666514796045063985526368531813447693139600988646335438377897545110214611697075338099201865262905006340314797113870686215376340116190636160627454122096577019962018851198052396340614529212550317997949266873057459314331920038526975650128191511313956821311770933898525601403724568733764987540305689837931073605617112232722690248979116764756454372052797716414579546006840915588008923030178864966346376360216545464924520812144825952216250047159930440671594611874363402148887848259941366822662465221858767652159253379951335916587867201870576843341720316406922078220270345888773162795498518379692766724457174256263447098945978283739344116438257389947533235083571007122269062525582348193703379059040020796595138684197047243741856299535567086492736522173366318567433472146297681710747774992833554524568597260234272167039984611036210826957158731078483168671617074978702482200283297668006924210337005030780810380684832253915967859166709619588247401041816790801982215742718360454938649664886147534708618982434523723924293546079893403590460752628805658391711550423054298064680970768800281883107348472007330838990793079369255429468716588567306958174709695406017834387633302644042175974001918636871204913627616594872197378801691394662261854314222780202538930274809671663302595221870238095645571782671856870651907848057439583737504906753180571331719018946608552209329921245103423006331530588875669085144927204268553740563264344257879888673260328706016528563424509909822125075475284665785480954974898694350482614128575368319231927690487971425934951580638990593111657931726088615309989737066254088647085998848586744103381219192770237732451587198231188981698497234205880675099312529458368078694776202684140373737062412678599081259194181631542680002262892831280008718749225593558311901080538093875024168776464787006595671274147765099876767173698977972704280032428360107653953516470255366318094730864469802667810408119640341966058484279815403698545895954216355180056956475390445722848459955147130782939158796315737609525232926503533334884891395003548116836014614557505779427779808146429651525484688945103609518709747862148723588987576189638375937651880020134281703772797095076466519577833904669773638551000057964654202121819390447799223472107213869787218322642785467177612782831132668173132693623971754594415469036865372583635092663288062439195543778362352423383235087246289733736191917628169304806965274866838637373459573522676298106905096391011681092673053449535850680727271899293321609662238108582067284811971326669528757244095962546191549698951288408075421280051005817861490543781109451211482387305148764031937643676217337900828859957918966392600402290372700968168622328321321949992313348478145419642387935777166804913054602343312043894608218593291175439426634647541796317058659430741278849267522064772560511068084001796581124121305815341649327117627843809974540055477482950440857661147138762719536594945000705436545046847583610657409171813399380887161296044605865205939809851400645039500096232873877167698756677436443999016216752957216476055032737037722893572857583261566235575258611890650531249941546001611587544958054439221611229984586318437442501669323530806392620601910980279546490600908830256046888991867893684674182171390711212105871945449514176826915510407066535592211055845303253733362322066407380470437744457788152490978034134538170257577122947004637798946091092553222633649771085194081410473249816247631979755053744655983637518266330276271676748108787617978622343238099013349781919761666412389035415526526224773757001527045415354072870546254137742915434879773980777788597644791122129781760920800148864963986664596445727874800448113041702311974156831220712827169139794498891333267561968328866848977612641256485712623783360837194371128359415554038768970033198915620234012354952935656629612248803547580882321206582158400306848291985391581827428204971121657007866568732499288976986652754805759954561574305118667348137531924344322785202438236048927282998383168021789861751558544256519081658266101795507802013071273102693621024961919495672564261869122907262255716715150743988166549023072071216424392918730771873968741841861604077552974114838489012682077280389226767423374951756249269310874759769632870247589718290704949029144461680020087009829262950851522282298971568165600239161549137013779491606918020791176291576719038829237549488611463373188966423397624773129783438325628705012021064658727469200532291482954788310226586866667027428199373170241095195415959301431137979293525028232963666803610215314620543370710933460275263922280750734383004493921990815542871481421469590652640722197509368714712729439149418491835140643089526410676969042138670646770282420264613929874048326703755684202709387321913207096902357939885469474108307114412042438777101367307563186596221097153244700845332852375801783321749146772734155075216359364888744582979287349811562879308139360979619443046466607641314767080543790991295380192675226046633141087039546591599281613997876690636364012508271326102642488628784151307467266595466651820213054894663228035328944924210375305007655929568683662611919053092638959242675707930277838052711736974348070896256854246437440053196091478666293006238644492262645213741454611656425490274541439209508629744460616396218918168572992900211969792880985527249642162293381169022035987555809255964376488708994138705052300307476753897762029649195377439987358947890038244191423713055572179326951113753206730410466734630823045443186287548206806103388114971652998148542530385642707369707828737939382383853161337731912643004172786045901511348609852500127739954876869124967326231985681800318804787339488593961686047491636666482260065469812851289343260384812189642169181903847918074556656536678798893446743578785108442341038008677851708715270046471706703772983071672803949571108497568399310983754735249193168475886302149594659870977582028098269126501248585147570734293235710194644411958646244307433821293466658502548330086310714625586088042667825397369250151312332505902681780773172543293085662697863770386499989697859630641215494896978940678102591283444157073887416404698107289337466884980056389996599613710964450643789201286923762707535564387601252168703396828578177475390449300321294407274503843249538592265197467084888956801801118388227343813271268090764443189932311198206494477119327901608187000000502331254547363007682341089147437408989133436808795266841726765609730105593795722255810482875609419027880087382217950352271129065088340459390459590350151293721293586747030712333542841777115090647517222891838518733700111243107580223962048843301818303874190511686628301238232649307073705568108981820642371444366356477112794753976808089703246623987072699159996509616636321642912130772052043383919345073176132070024790305311549167232812581250782470282160556535448493987705061685163168722843757069879389911553707990931657280313895558803273710228454764388769720531287402629154901378637383930085970835400256715155549774422159360462000921369765405241192648478131334699245094956867317061804652856438556232462605341991154227712864655420994520137921953799453120311593020716606719038411321128524682696485151044020968132367237886009989157696651556853538124926894975929177440634689585465963427754188948918279040433731136122041997220565235021580451098607862708291856819482504925803230519102164892150493889345059202251531890624617169749747995771961928007008012683841151763930462900053541596082233730356960763937913151417211622597091685859303687299161102440475940722332335462879943387237684253038193655846905758749775081435899436928568526153883882659678584184228816270624881064937690877697364621655638900934034180266068331233813351542773595850891119958960749939818730559668042724144220024458157630086674037156169915554917179130081202733774458130663403536004553275371411052408283419018925971018811562250332814201058527987183774299928055387816462373527558402104392885642315313455887054142552972625140835455921632582896017868176120791852456373978017877198276055491465098448349005237985495518333602459106963241872429558989576584954618606645607135330280428230141307645240018456926824924805246977904114494770082076571174520143836782336674503269162736544511943141313371225705859382240366168991809946963210527306837280992600232175184431525141076229237627546438873324366988493433932228448175363669826352116084650690380163667582198974375530468568391135850300792141177220933744634864953498652393174517416247645466552449823504548240114580679968858252081896560232834587984687770059689201723692649049111050533039762195323525935971542830126353610025470081042834479284395516336712016932056190276385932290728143163307822761354196941112451303995809826808774292157061636972656974570320751760071260648926062581062104765274158182991386624982237138368781154661325247377319621866709811010645416776612536108712539936996736822329411941757848071258954773248704043722230158554361388447935608665910306571869013945446455041419557698065416744269583620462586475018205202862438111308211051306088522868327229776463256855968601593925113242295210230948599086267059359369399709419301380879766310744748255205839988348424816100967910393455730903965374233241155728824493856408245981430219544253823657923495999604198934311755507655845080111974916971756473241765878409688749545595683881895519251993119596472004986512582948974123351516039333865392753860319132919827475930630079629839466452954796238418506043178518226594534373921736022871473043121333771984649714132810109046021118303033290465651301035235961120792271793286550644546915421291370149152092693281008962591483800251569922256477433958825364167040768917650051079703756192442799611026433196824374355652163701389859554563635221780711897330722213446575276320736794901309178202482393878745550022024009197606710150644788131631345160001528883312357455855102979277680129886907316092407543498616388661175539812900309528587297319475414208025717878898484126079211369061947647817430131753676177843014427399506046302182583692173359258781297141304723524057082490643526062499990253166794170719088133100420220210188508813937646537194715386469765066831217213865688195150083075644127618239179699811373815001046063419808309809547885295279763973384359883086960406755660813116741986698410790644229854792325953270645275144251593647344556442208695847305479127846800519374675523604681065141387442582792675129102436656224614124943844147473235673349832041130165734328290852342231409662019105713845125257470258370427446660118806171887336941149187554879940540739688777338048837832876789841737428592359331257329516673495386750243283058899684203522265274877517784997181173485056134266923214982742001653253239247320922111196346178405036179850065607695296259932573554275265630698078069155407764056629553452562994440311954440558097028251580416337636335719790656170907059726212924432079869633818392787847808184013475330076718971868350621544538380975115769034694115517066092657170154377193320636260009179702753249100412190285296025539307302396434575029465129534591739720387018251043576597194467173581556325883316485795743039602805164368960255378223565139289624451225651666661010471164552712157816855379282495404291816928637127436118096782108371720783661736101894004812781088178838205467049142731171874885594698527203949878237391258278727745474792080530321782886529587727187214490254548320262081120314320812587321922595542373164049254729017065708120187859997210009606059073014174542071430664772465434901457954627879661564894860190819949905616790581614000727874026904468759022940935629224647845828122466299059745391711089574076585689985392243110869845665137887767736301220319648097113925326859085148695164774127158304685034504609358577446556011690098247883662886646693277095761764557981247908767803313471264947212360529763014223572496163169180293733832333291477548061301629839927371312515754783277016100039122711333572156397830457595597615043562773795835817114511029229177426224270077801666856688907254452260071125041659772477053637949892862301171238489769500123462668047437047866741990601201888493304992816579089898316361039327816666594253906482164147038817112140855629803688951867809582851870177437256590378768635456369715434163801734793262493646208473919320334609968627175791092446185819029342899512797668211264763440544664591980846640699460903795888569348427026569742261305334356222741590161420904863876037331623505532912822688985139641112527979470328915700730517042222439287577069852868316151609412565869368889645545860498014420315000846540183608985113568079685770713961596863758635955528190018925378147363792501055111835967776891467975913669719796290882591438104615185487271908576611513809770634475814528113185399000060618463148718397107950825559413802584901533364440265340611107622069018388357690154553253726800029305892322336246451688005333754765485585465030328636199035216280606564020895281835488249846319810631791699969698457855144126766519695093174198995582288575907101675247659000880138148998526347738185910763083316810503949922457927798049080970271853173062187417848668143385750559953672822121775841986816756014352245238178056921979011668600589112462551520523807413467967104176485940389883356767540065380340833153447159376744053245390980871041208237490667035327874361454256634158287796559979713922506118695827551356121750618996301980872264777431251131291027558255314388988332221051605633061237539305291503460635610088779176371066380267196379636473948876113329910739043955377318002394390433163252340228640570406739765294810173724721515189279595954549869897943458591796202723430588721516688466517139458034867730758664290450333343703315630521830876828863819475266915831915923808439952008352304193064524081760829972183285107581420844073114670971184438691147588139433253714876244906685683692327658949730275196724543722060315200795291064518776494142178064121517859610285727659641753318405774621608009049017212802155028938561770786000441522319126497879413038323795284165600708934013951000800157401434503057994899037236117834916742034901556029329832871698136656168496341128302387256875224946362831847768781882245441579028389182511497473256518603365423084576220210717379388445874532459042195535293121106152557483857211192343085760946480501764598077590126277174920913551006270731552135047250795832092683301842167875119123372844337842252753669521845610227778037543995629852687676732366781125821482933531840216605971793099892693265989539655911394444131656701054196206543031109728358241225115837738043105680690428583757691369385296995131906708514712199192643836996246470945884528872367672134082793831315056072057535878885084721195130980345654092691563752105771601907662402358176925302375426988454969611323032826613871038370214745065502479945401688723905112823963518219038340020891271206068121163858748213385750639472322739985631110988945981017074032144769075851799414642821448363047595444740410738346228192835078494645871347608891396162307841390415810907311370323759137876821619995730094455067349701117916654396827292703549735523301139017486122169470240234118683272677953526850773055684833119460292393627678746469312573596048355041691913118360250033918832477439024316462686783725109111208813408349331643109965510275141938304199581397346780907867664241171632323378637982520716143741409465989462361621516118515361515867934824180248917474394966076751212890935749866820276073951357686225289238582167786631788900031801635215002786783969150716994495917058199026063137060160162639917316362590076101409698003968254162556281696390576045786570824588769087342100562497274243001498604399576763421926213822240314994988519937604644855199837812763707370094134939119602769737566185423041858452920590465546521910177898883590662518427541328827125815682524197694411536552474464026326569296719886805776051306261309078996274197743009435000520204300207414976945523172197349124303123148528639158937563719617264875479871209855004646010816804432934711431731099344883167469849233822376743254685843004100804485669560037076102409966643955498415626767351001285778736819270595942087884603337511815481034086530996931124474454440697941503184336626677490586598618582322826493405822566933814484302718335129064772577912430195177722944575255021335644645849381513817367324330633213090164072338351125276724804982011766738585890129899551851464291773594553246889314807403056956288848397983682761898864089408640638292959158419328720249971782433599908618929738596071579001852027589704712418474543250271100926813216102319522465504201731323634512578945817867442813019979626794839019488502029207991019562900055972735756569737166328522309857215836688564148765093018868692393042496724575508364722678114879137139874306808565373377395944164691815659022060215106076921968539373752833286678568223453895873081231638056765609375257360010526425684223735873685061776264385131202875652812931010418627148377003882315438499730914330219400723908570222940163119760549924354732942428611048013197896051849340027072579923532234400447410694109675461873996239064684555596429924026054390602584588875234911413346451086138546226365764326088783101092156950796200727741212281585226031185307180648830394640383527819867788270979059808319772458018266305699578870637174922760444642103609349328277550261293044408282162756730535541420589760440549428538184666466639969412309263855551420016354309178063461905633609691081625378142508485550289394348648018743381819725097347373187898694325455262423977143495602400058015389177076839412573884977800993388466300149956367644056673573329803008075852885155718702398288978505532380343218302216449625697664028180758146836883317389110305624586703649024316926168318585427294503531529607727118210837572668197841373802805349630272506428444773176064891911839652515710526611126844489217917982699680704780619320741446779851655870152167334513651557191281279016893436254218401649418631820566789305172963914057172754113847795362487795781828092067713371793476005142475112377573360801571525966524155866362354578653357701619395265663428511674232502993485319777558008633016598640146087402141304528413847065429762896206033537212680757966115926893753673839803524223746315622257757366342714446315471969814867525383266732274933374235495779669229458203338957123673637153175083259030317513517746699263308342764945334438452341541688503272765892271335199324720060156719367975274190907927383821378437299419848307739867112440858509187184859477765199785983092891728057822649255526109738002392137326931140593150434045583916087994634273644187142398337019414455252231099570504533853032714085154469528775562454980322167141409878001947754121201545309464396247519722011120064986096631362298648974688134708932974727660712253252226371561417988992256709941983472109164801702466283497100390968027907891668321686620042276812290937590503926721768144573008631341878293766073974620414457190527071261132235350446215391086630129661332190942906058455502955933964843934680643855352500837904397735169055152484016769528446118195667888122705684545100735706741374691079786233582605502101478306040620488736179868350116725825941451642772961986649467768629355516264024366520833608393713593818368920999678403921160506003408440230047083333760292889593218203362982778413505198260593422455516164946476756001539194285751052949332182264033659434488778573573894572577287871310974357438343262111634113702894283443157649205369131414238016074580621919240393103739270547416846064742704902197764538044549808787550546709417566144704688214650243449318262008450401568058703503931253537642569237714434545412653168819347896456761008285158690374308971101232417900136501671982563069536888618690670177912640564342850490459455264088359691850562090076446249821477663948809008548528302856068677954407040480745665554418894404377271289054328220529542603112405259072693341303288135040487922606392161017625167981427631080269912492507152092946960267154989387229592420214453896985442731883117513946714711874894102683196352556583914920291745567708811845461929595280339960053485654794550191969333464782545821795450504395034363239468808054016386918372804612018114854089170478345209470959138919801611112869588479376002936733782102120502884556595267810898301471329515737406633259153183328306807413180273290735339772239619032448011739246952347638317031547620207295288765901393919735590940487783134624828591218178810078105919643932501684891426849053026359641808322217833274552741940732085344408456164644727313337163979862916833894611702626823436450902743616145872899517993922404446428923055107399641468222555491819516721159511873220672392278557053143045582947905940403383250729892831028918576702355650086685754323798322526694706957728885330017485635058262723381870892060779722189302090664828307889925525867762708200856968543537165489719132335280717623909625166631674348304641446783912086558115723881736694175153673553197469733065299609273236346261632991732985726281533505932455760618681384518474910736335702645079436787943121834734433665949069562670742721024359366904606596931612905963870517497847354903850326151138568559953854942738124244478524936077887239097929501128529548121684497320203130075844687135977783694160408000886803323361019261538780241335866034672626355571150319154835546373432534734591950433136635119436562022427210243161763719229381738386933484693618437903038788928884217088626210283742278385516590002056378641537299988638029272934825716966823306667584481606373139012764617935776662235753539120238194088387512780218039637223500669375800345986212357256983664884602684091209725983863990380114577329319537103539987591344632581146164835030139766159679256478068836678809098453825056516291201137710832808121762353803950560703116798484871631727106688986239358604932372119640243924445938245361483689270434440630660762019847516019294826739810558119778192868126774696450895306301883117771334006507076911382866794494065740613287911944978985898729862894812957180094283824502089497728604855187221448497611222828845895335356550654754298237042912538523298432740660364726922805191648560967102453831712803829483025070303810831266032183762143629534459874538114805638128068004632249799492618498165590283406233640107781848572291621812063317318179785677487745288213937541299919682424113098915764590037716709770561658619223650360090820799584841985636906750236693104494004839022423032987604420532218799337705285527983292630004206947368648425018665015577881933344379631260746746046195901762974301650517622794673520397411514517753549070730678131159824718499186648399212688474915215627533850214673938008577808819230555046313539304671249980950266793095754617394031810931352225612672510048664935455435253964284644337842947615052661497482177335315673705855245643250769358977905579037965410616127632964680223796941126957478902125008986145530275324339745817607627432885350043262034599808206999973893777284789656613637963636358029505819242241677912760461547870600576247824251041926732915875674774321553782041730201378763248420346575482541712549969432459267423310803346285659781967211143976142734444968519985243799549094554693904654747788857888692529908634221831246057991147514374824935414230011492531331414324083129771885490244644301656193424190844493285556239960394298347421761298109839013207240919754977659050803314078858383268051257450715146918032915642830342243533796590923787733274429056597498385756177789908059986744871334833924480990908458647846278105128594001953289141450767003153826426571106609165619599385027702942707074645142670672680725258246713909735057873637454061007821280639804295012247527968717510949322789447194190240336787665240005864675577397700345062803471484069430974932272475269707203870857714423464283232524192404577440882878016448345141862056805344647369426363088243634067248202516211946272900212912690635734423448751464554135217781695975645821935303579056541913710832481021791450663067497740166888066286421195849187240226654247822547099362247494128544870480605474439274764263939670223746747135231604644189154850855947456883709020503327163663073482658111647848536348151683854003213730272242143044041438914273310475992369304701044178360344895857889588377990578825036151346297676255059289165886257982156866794624819033406208398660455252743095012228413658896835834140961946156991924815699603339624781731121149915621727100336939175719776664195606717222679734282027985200075205359747021176953550860903128628264734925998969968610478259384024346904799204546703748014000568613463388337481958998832683829583570601199246798367775172315448387196419974217228255532733049012323614883654607494771321137090815289131620537398893556138926034846735282346520110408897273878837972255357090186405245003032684084299666692708241330110348436890380981208366907486308049763679415138045209798742368587657301688473854470930515710665446652225128425302199317276903597400594732539150032923792234530991977834619723739988638560283000335281021160499287555085525140006517290692702162680929851679428307372420605664909069867990470172076081993539775163066433970248528741757099605327562656220473240977011053791097369621763435420233244523082272639330563347765063823098025879069820027185759054259594616653094972144185600711445599472137777948624106558460099792700783860412122567297695195891684230494649016891735671985278265280096156785293631644448777012872313248593738372692258220506636391438639932898167155666434900873552260327895992825121430820516172792593519148957823249750311411603784152095496351035566364882456570251519499528862396475656570815671070692897696681444043975209598930850965769878243557571676309993683395244756768101395728267805197151438788941148264145069201719796413002291437937625963036640568124747435974339003248264165784905651721902480037978908515242933572440946146725739448806622435221489360794953731000120731139313497294125442225347757236873809989477034726125901409989694961111201782271189465950874714501469777178198023353328600848145950033093028947962053908606837550415623366196693872147038947876494123069360791533693824822333845771032938855952055065799778225550623491905050292393148522343630262260760385357327870732038050407935214920678821083341450139762071549987757826361731009938704828199114775802861380356997861091600760053851171204308276249030589132355683855567691587668635245734289611463587344447718837065638014538804487384423941418623733928285549044770725026742875846421003869637109333057319884100567859866334981969169449975768874746118794140326565469632809054904812136606722517646580320231196117810462249355590288651412604950456104800004050513086888957751258775051720650581820947963253966808785014253608757999967313553714465171243982561037287629785805114500264855623955642513939880312274482047698192131189158028566917903480333441349363384074526921151339697145995410053751869934851084801285693486471505317074464594097954622922387853297798806704265902319406837145762510167350225787024666279034443417956559917053728671867222678996230666642406507597580815021335340160454597180420198746016254221486987574731284083879497434838847841237454140295068273756405645125287993714735076817588111223892719653013814515541075439621960653092866588500467656831724570825673967438468296139586911531568782375835794573028911580965211063281197852071580943431256723475064504468945988590283371872883253099408707524444922060686256526844075705685905844048528396748876725278125641806768955434985358302963893423632323046930896560565779418921310406580231359763723445061612606649627426850377025525541290114273875884287085452955946913259768095509141104726555497151230429743067385701440192413173518030560391374394786539620947697536802054395143928588302264774716109333708251630552133802428720884911836589367486481535135656028393498794181201080598069857421709571633404169428780207264133758213077122846715641390236597023065633058676399667975135814004646137492623510630951420783487726143543434299217669320016670734622764393551736166883086844535673568681631471981291082816181454871333544714046799318911533437777874060860954180643496269056289501420071093584757178680379464695756593289167131722346593234353363899848636692081066043546505615017677017718079982511660113571303614224809237457058104932388264786491786333848327274479593593180592635309962874290464611012170428634746897756959827635604818008665329269623253599670746465005424944470677158611446332904752616841206030216030171777079073607871882749976014843965910714322507422028726787002799748688272403058436453771511934538233910745106123303696521693952956749450463483604458848388343665494886295726138567242630213534706975888086527440799467313748731278132873935930504140218436281537568727222179424434161209081410802782311832692629576258209352628524468236098647578300668212266764149910994665036482077023830726233960502724410158488899458463389912615399729447626698020778107152901084050629134080371297761863539658323741343394692891222749109629540453833563229420516453219317921223513785762599950437027816607513484718805708922204366400869225803014207881082427985073360571205255781332272084119077214851449242012622073295415467561122044138224947101714408655733676747695411003743867569816602475368817825107488694032258937161531498269775447090939669339072495778501406354759061712190290496109733863068108612562784196775441045618986413079840316820480244076011981179490584910389502017342068159127434611715197393686522850710489345201548686956621189692030384176400183051205659126032236281389492956758992690993542220929133467970357721169647498038865627029387119919235110155831519745320957144907176362610922833475647001605199210656381616494692689890169416945318248239336216311847353838398121765077452923491573399260976926232428804892449357306805302096482576201694004146989485975019440655886512220470290447038546935436683398971270117722062970266464101612002815401974586400607309917621503821420385468286302275680189395774586987276197264038720658252888193752062596785682319539682018113791879923042884921194611198263428754949122570468081903067078072278337235113307906850523097096986425664069157599893361983192686439984003561222067574608645793574201127835230320024807771766631538609450423111975138292851068435291250938018954529391034466126010735835383027879975832124970971163396952857501961043012815395908784692313494985109522347290113367418531716329436622688482974782714562883023303989453994123767346276937334441976169974013104890979047408650716998547809134821724549489036630168302850443615367753919037922140388693259301131514039776265299798059738255327595579902966462313974015983276134361381139981204726492642954819564544116932547260570480391316913317668580635287040036811940852409909601909171433307861070828540177159761128178579490486107414596459214299622566539982361701117646118184799881626077752562714775144423553374997364350593693151959164323828734132432721562542609853976273791127031552136124986351879625366283183947498323204532332499558122002503294507091713113893153574857496712593716821804654402496783470600545841227285241749851657487414674987666958276948480733242044885504599751189286877233438751837791276041397984770547650075370972460059088960051149739963226438439221374734322160929879267004097423455386216076017488246510480595801435699641722801533980739692207737605979449731435949580763172837875650357114412330630109988762527846687127475282950009182560034727511519909284442706859877621437890271460570394984953402869095116331077507629345248151850958703604526570476312163084198268767156074177046761291510096841389826397696282492209585901015980746729520549537162211294876037064940386342981007863395635312548326232339208753815523889593387765064555921166738133488405322849462607035922181371912339591432694694771589817480758645779007821624067761637130554049425209813403774684860906626759716367228665541333075555348411451820242935063666553000320524919961200920138715727444108331244933897539736835656720169634087975614487589878745400609007831997232449724104234310981129605884574611756923592153670431069023551439584248205027628288270437135809716625711228915597418119679473828470643006620789783302681844934772139482034378333122040801846061546083641320228278899186805845439115482340875939647629844689389737647875429097832411416620410214827498056962016875945281949347845679880760819389177432470176039003548185509582610270924786321009937497477536616546440854565000033665216670878367486857922932975597648482803844902920379600004426189597649665617614790396155349899851574595768713520334706229784979487706849548688619829544178612378486501566797341817968565831161037759952111414808896335151026401493893304994339445797353069662346023931963745470767501374175607576079697158087698263675452071391690460753292481273259124096476321405881253263995128984227297463222865101694474238269167156861545334741919635863940722573646719005615869370328211090713007183808986474980020329891521410958367356777432286716339420571246663124382860251814332637564666076816777382417588396434731771093436579459370988930155277976456051563859845790376771912343355338617677703509447405126939528433337139529368314771716482478435726595920424247215652290235473881910283150876473889314122406502761989969932551954256150989172291292394546423032661966837237944218916255681951744942770826621450459557808183752167075800711469724272420887815304825014156283690773474467373244079987799796060312255367447163542620860067826743672093187582949802175332187079262358214917112446400368033859515310806415686588019205257274168735820464407198523610667633480465031644114861154733966009280027950543932067133351914377857298680217990965484328424198368961485705669576728594169177511804498537965923537960081301871246834520746412587678353812919375081815387498795833539570348884651496104680759070005854863985608575600433129524759666356789756596831162571449385704743735347404133128738343001456920350631633831000779727625816850620216191644406311440696084728801517581892223508737823831231433047089566542405711595926359687821672684067305571616252462619851079900572266491232670760288517756198295847098978042331919773890901410600946458727199219217529137790330665168550260454639997820956572644607757556254241430981346618681371383547289216268131895897298190176332563115043694437341572783279227761533497689133425578745336270006931974162870105091011109157609952190439300900041660453969234352865321702849997903960798455187905435091265901308389486328493671602573334372691711509683763145167544152091148297499030546505237738663268164525978143952732246450244834158662875857491520105525476484929985729145783717018797108960430959851935287296825800678793672887177608485257102196168468665819839658943866205631371780289874952595036512000724823750763353299569170924388997757284030710317928697954209516672844911268690807318343186441046845054038523588836193543288084481930016514224325633222373753345005555897617421905931481516069125134133559801274285362706136455023535662919357718361040203178844679616200064101921650029013006835906960826849355759271694935730601878777759381594661770639080112988420571504110540059594605895639144230935809413788307165369479544395008008955749620166040974417381475430994876989141258374126366893347594746567864736782291251989656787616408717695470314874480274135307769409288387815779923368878353880101420369318117803696454445064505619205311465542091354340989865405166483301969853049253255362318861377283663617331690431726076596059514089543451703946840300820670686489455490887943854502469881256479004188648670705191928888809353677737536037724247345273887843008454365946993762532058333389339999714023069496682824968459781615376980308702237273565185349150581428210527011227075932102715605673148339758895758548407290271770655287802604814364837302560580523055734756045206544482819002024696591541645968455604076188389285741244619474010326811949103343332802614989439139178284195409389344669107074976812549453330672040667048421054474621828723154795568148020389488422804435779623558198283136549168472304486378003161278204944485441199759056421629680948326149514783708076617631424337369208271035081439251089683934738437536041519528909220110701484607447879387956302190031809978689889145603071871255907428066417894584428250167418423672794831796122782929688057222346391409730720691372776327191968666227698605187338353619121652312956213688895608763182999436411724230522941491333608684904117964513218431816378585601568059855703011540837711558226589133625264456400834431078274491666470087501960223862671381798945751070460973196309260416851724600463169099258792345307680862183013310345462012558877328312338335959860998294895634757768789818759340043452367530134359101306410948372308804719891931201618057089540290798630426251026748079890008911326137454815541309390049047808858628754917660245634918579568251505866970721422877953407487761844376578872833661228831250804499667993674928510255773278900922143695421832682917532416710702456524270070244622510131889052336448887508554416603118866242158985907472467679659481900313416852400038040538513564315324489066341797109034260619883441994452894855095190465410809745620221532326021088214137832892319288983291595971623043030232075001098554048986062137265526038410671418000231366054682964949848807835950645763347727084592297044980971545618541657505718541305744841074514969253378426239078066760586819347564108862457573867349055216565054309168861118436317573300579410271277764633925186774381733549178203941433528595162390531264956311705807838135578538070286660141835289187027866396252453507647259401880483505354462917563713402179066518994210661270065067632827659888046570028698971147181254599644844408173486469874547517793115114804950273205258762028812615657715692922895652636646749547308928118897400549419947885334995629309469192566449729341107236185192659672758564748462286828802130808715870008287155051765223001021540010618855711605808884515799629698766069416783088120525536554717274270390786248263699362303979163099671341406854360211572229021415546110622927693551640098002497591189474508547233766362868074094925853039540415632128869927444490502649264904218386616382282213479612381660349474171064982273065715086136590035393144275344835286657166820390267519776163103259266990331278090847800193129835978152211981345372011454908897870446994623143640101242613110497325025808295890433798946020500145444698555288778731439690992373222534846425335647841076448676182243606710872043768659372114786524032134481264308559784874704592479994026539388783154303199205563697718834632227619073248817352528631734610136951030110062006622426931982185396512382452668087054573094524693908713012758551175122559718180445978548760087367318108371625242809890151089281630294785889614835622730497079791460630028588210571142329102883197976612664304590279443475609943251776670189858904898107153961434706597021634769290732742277137310433402348389268934954425051321738803444274163560224236847576548078921405475436389087420915251799024024638961777554150046185711193613194438399302720328146633238085050713851684411177449910379635998220080592044364591746007182527927630372335110647537756976315966867082316562250768043937443899688538720868579848629922024217145954478166721479030607119085198681380506456517354059615128448096889350779728839112913102902044648732934272888392501577091754133604748180429436120840775393393374182674309106778652159933920125915304434789963277631305870888490352696258633929512156565014199492436227272954351806273428179428922936662431323793199872209397952629851136515967055181502793697837468285069848905560646769439785637450151852772120769991773490810641105207506616668810558443333411976285502202510974977791219182773437150129253768047308519871235984820358091108766367747400827857470296412533511658347699536925200708460549848975974041607670921462711538411094458835031127853655477033219224552212682587917222004248515752465499292105515244518865698282820242062761309094389532447366230194108957863018522242375079148998149041145471512611681146672127960878623398623519481378339041869772068765703346689689413848916193389820784173585063448074111923124740800422921021845534021474590837036580526698066382192481723027341494092562163611524400402089698382138238916538506006252476546328403879916802718605079949555726367399589021619145291549359074929726752354189928466956190473045557534724063640031537453978295278248744433034389148380640444348186286619031414459771377235395832519799176923947820877980535482561496800332070044062883122590049407797143369210437625452049267973583606368370552930942527928304881923519960824123167749807198264150342736983799934491426263540123883728936353242347343539649374844579082206053311914230848221889173454818945348343146153694544874570880513104926349973956564205788742791396870475735841012263354774404282725414712062478195797704057334953369575231680264031502595027844169694457720206142644188336355355931804732233719529537583212016091090455878391459173988534022695431639200587465072838483630635925323131786204841863410178768034689545894501794647484675945039596414555531534256664767029394617774677259090042926955281268193483171706455688034055219675273936910296013354630723427699697441069419325040762283901083531089303579589448527463948882913721684686920248778811125320234719149741961499747003989397545402701538695495991758760702033140004802451054393950783127487280073850909718683827647479377698574187544364385857007197468323920726038536960232444313410805817794963654602019531584976133525040956521569956535005903058002451290705806201314162608763718048554253093960539257042038260075138231215233551356047264536673067384680799873900125301639042164181414741288057906755547734613453928401576606615861778232500187984403301608762829279013065977774059972887648546736770881146178413298469318127434826185005970011580606957763580499995433971101945163257521749433432823648019882187151643324538620844467069823182559574341700943528273976600038651644204266254960828640636426056513776068885045958002106706944212598351975331114049811706604626067534488788636893919464006347525321259860950343942846713787303623291879773667053756561795614212970741300351608350436135534445741005918504787731516570513807226374315650158650849291573137680828890798028422641923890126597923305381304277273392611749634085919518018361022363395174255048345329343659024635834346587973597842074107769948930536385096048607518836376738693379536096610982648440933541144118582946597105300729979979013467539861016016423049512760046946847466516559739501412269707003441398214706068943972628227374504977479163368479933611770017738248974106383696993811932024982445305131969507172598978972857186889779902800186302450517350351730770837656373637932336745192523507702620629755098529069425252385687029307426708123852938453366800699813957473720197937154628089435698125987084180346196898609035144640023184115451450725384462622984507144273916502082859530256669710473048995796512775098177147996318138798790858137878624964527068016483136245951201937033108194124784843575350786603203683096184741162635627139367942418369517296086604076530331974036641428194965282661701702560342308966001324578315696343492461239015774663237466801875288471577102645139095291783034076884471185378451853268553343350698581684159894404400645990695443112612780177040868578977871070421328839987648584004325429705373630641239414247851965848094011631094707412457022022524395748010078473670500469711845719529742124485473429887020468619324840777313875805604451223340722395949790648059209507296216553548653075964510647581703702512937750775416373659315212138761106174600329414080048219855402090540129073883258134315112767795590194701191703383786824007109422904755283408470010806113045272419758349753807166432343672942264628411000730751680573085729193899055802527447414768499256089487284535425769576260010784272563493969557803890583062599083077719627437437934670895483453798343776907961126002420868330532810183312052786442488056666848036041620408200931497830512117953979851172141486332039286178811036086768555693298506241538195567533148221854508382957442058094757170476515115815406041475273881008205115510897576918057767531581183019328520180841059202995510882248524905263752433103030882931469363985123198219563069186283571844945629852948178368820461805207546584320923500152188350280686962351888405730417082393845903890472140209405590772420043452776510270309199422056742210273351320037801000184268228616305646836835800260679393966366523078057375642798053885222534832024197059847725874857411846629003247102170589236071204577642863550848822571632205404374759493894210568059464152994109103689758437617981721929482920057888287395195014645829210960804615545008454317656686666528988909691139532407071619720121459658935231873225879249060416500743939144696354340916943748456367935014270532679282561607677801083020083306066058152008943921544125038281217115065505587433899195912055502959327590791154251240599957261201682510731528457751475039613605018598617583112056589966689398110215481091583712451669282969945917066580797140109988291606370581262842092050751623243747282330645374348487263526096122475224126629058065623694219937241858278887258684026341867675869922534550759522048037824220774671067191351907220279774058994340873964342088441691645140304994265833708077131720081781945641613753259084978205208319305626529910563464769892921651681150674264754082122041383690139706833960122608490520150468666728587803504652821001370997423383267179241245755438755525592420281164778420764708198840048088538427864771022739484700051004155960646299679925539751215581358016481171460283148517305610995384516984900569624332439584891538340852064827599598249216595504679265588961301665249531801965872079804214951532902034091280359699862901834481880501641183777169267458504682836809758553072177968183643785428400512907397258094226343896186218099060703343316836545455449376280285281994434749454151327885758093669656051026918559412652495967408916333685130410215050388135714767446549909345408991683109441051006092080251835392319738430171595554290748585545906334663511524314587993455916372369950024731856190338196953887245038770951064489206839308311984863658317942336352877189223035176967624695530075490473572299789157477735993037040709532549521263272963449410666219996742879170204610910444581687208175718953692665517481389442957734864761787912502402181616324246579403089836674820694523008982577172366984892463527385523281093877293534711861935511247006682770519140688323081226783138750251532292128726061970648049247312864254163487630288485626814649153699146766971839061438209596281504775723729140793393207199599201824432709709077030627970839240267264627250391057140560833888560138630541110842496897824382052006822119300967118154875446422977073868306744473956953188940983660919162236873977617902935909470925074682485957470656313198414793000683384454394924730796515841920362899058282308430724359102781159912688796800022533312029088946999769802100525020491039515684044011603574850014740376594459948861691154783286343180560253014273035452838748653678902459972511733423046725651391723204831370426810480806697837723180981313098528592944672534401902898502573708358471373875281365619350215721429665394946438079258863402377321668202400402097430621168994747853636658162267012421797837574262382762535113185145314574560823374563297144984523967282050443849380037755458302636811752753228815082386896112805818479743909111253128557495003432982197001197184858230931589447060316825341730653728127019379522883977025368923616457401912018011906524831131290184772941848211514813794813357285731376085710959482596305528655808852856576527050138836048922229635107020813573692698100746052186777107923972302941968618261244926262802296030055220326809496998542037730669312595670101348428846116289209223490132727120183960055113949796555242348858011625435871523543727492403684368409247475028432367987332772909857717207981229037225511900333450233300371962255071473696683201151867090500787756661354611291526738535744731695666180442481025734726747515322784561739503974059710203023621687543427357868803478925994837820035513760296044739019952947671562293580423943821588837675361598910582585015099371399840863132237826884856781098603337613461100142601935407079606369614398515324284159437878460017377697501903118174641906757323892877445893008444640887355605293510498850974146894249407195209288834655407294764089809495788963064316769102302388225131427676936527457657476201994071582532369377139434267075997736397870297289399148133662550867914020556551808590043734370454087068710483478843456461979423755844568765857084567047790666907679548155295867507419469740788016790902654878842051811946714298501791599119069141550924528500546592571206700090940079163019625288069508549137014023101322505651096750133672421844959328455282520090291651763231992400984168390762941484985820169067230164951985528008366898678343832345430191982231986305839192003759790237353688937038528358922846824449780962187296153309094851293956339932552766862129462395354773863919344518410183319176466701260039793506963857432116970725285722410870947823176856195682923221640754058948373741216121694726803670044924071094750870839304701973617628443925632227499365479266771824511133640933509386356138504793857922441829278655307526937322679851507677522592922044768397220288795785480661727391748947099973194006135260271345835305599444354030487219290522780872451448843495213955483355582665797333048784600254951306784479753223238202656706479261749949908753752627255943878692292940069853572181898629027485394767921345651247212203126479189895246492439883636723532035324276663209770149221625351313815461070310178460738899842763891930812399748966842974810890153163415772968752427070142458187247296276591305668260815091820321959104536783228358325950039471695194550005928282784421789705291478849653569620560200600485748039401336862462742198803657197998233984070102050520159134991979178080077261262383106659153994114084261125460745021803308016833351180101450761040370090343466977678601541731302566745535991732234843332210449359905952048133484449986728339613094934475436462384866005230132153999146452082773050792288753577374234287901371582863709216204184002595592217880996981136479923066529398123652648029823307778035557456215682041556883901486365700267321421071840288484451528308571508255876377284789539773265445402975607214325585352838787064826063335645320232620767837804076193909097530869772280119280591502690047801124927606013073188728363978415056626555791087526654241162127569318302506034527176411038489106090388944581777972405641324894199294924499709510149688045212026747941552851983234866079271047180870241909796329807955083449127446214619353109624347244538228720037409196506767635804673125741538829352488704032344065734682705808504191465584806658017186055995422185600068882153866481344780176246449144548294922749180024279923054155824971963667472808078881291549171163934177621373164268496214984018988548654376210221456310958301256659648183139187616689784580065552355084510078463147645894585683811671900422488805410133001963755907393958938280458319847000219403094420375816705571663754623337395626818565675344616850194142678210156472255822801052065513051035013292754640906728497058432035191428390633171160521982300105479717476508301958978414639774232033538802754646943120948092778937193329518238425641027648541385837644603715699086686127248511324964659898456006155027153817907722692163448456208396726175186180082588494809044941138379661485040482266834220528677325554364570848830759147569992523077873177085462009910833745651455562361562787025084780603467839366645647879221366557121596363272449457083868180036175452519756660713410417680189119270462353090396113576084281252434021195759237577617964854590608717727925009501143919238309761313088424757229568635965543492918237010607430286197966324137506213577313788602660521069396674394792786107257700354525294630108978853503065215153109396952148747915887026098632926391357842407726534301383831846220451212642021822415178359101145769441027534056644246159878573933117118550574108799682363575114754507644775280953137552799551447082636484067572837415095907871746775257899165196606005184438419896334041508556831119919901121748634208371507154917625631760731520560750981793078188916213622337798808891276328838482541415296746849478496994352651790223545399464813944238323132122605756272900103399191486199958382489822741498495843643002662889029522223803761930788633624492089600687869674186046587559794328897363552872764002923986009009601693526766923084353416863035675215431547513150285874979410567563033535918289020091542491836915591738202397955980315957413743008768156818757396067895074046654805723921853219839928673871360798195334555108784079454814329803835875801496762730443504145560523575976001455170710851385605798475875523789552482738938872453264195322899070663045011624831367996613802987185478253115589436779860549151374047248275648904002494024121664780797184935241622580645553761661575089731146650578313530456812743884562057959637317443813354352746127512361354466443026673250005103709656290534608658086080950344929805533673843394273817406306860452729641022691659986544005260872176038800583939884899917574953411134139490878687034848172457400959236326900991869211307042364965609049836845314507851084105274990806231942371880489166079656389392039572241623269373780063264734704032458785382420279749253581773326109095193188695735291715983193153618594986450239209295719888612240362922973345657004523018889563935174406533280305133646349167679179564306706998590749766953487829707470053041763714502896988325297021354065938296067962584052069322379506973356359617874038781399096414524766064124926248365911459003076543911176060497541056773118220659432363730814009073431872036849445913795272766637393993347316750992922356285901617327707159463718473169851836004758850386633321698975184276746591112488905048832290208797817182621120229023387971051991259104595881908723491573354324875677477647259320456955452332200863510373795083332525261801611824174074259367134164755098107439069421877469887600476568265633896202966812329735855959165012336486296072427365282882187866003578006246952149809188225466129079977032892316341467291408461047225234093771219553946988245702227518329840647533578379558928356799862930541958489360451822347600398143388784057515235979741430564897015190767921247433109430225540633462133042126943055222181765441702593332687651753069153977836400029290207063329911099138531263672190835271659788618637119677291207396513614653244341879372753001563267370156081476214338961654197588130537908012206906962039608383640690073209791022964725592715867714831725907538363216369482225850639126679129381085043951871727109124341655374833397232663168571343217295050674607718782222991905334107211539056772118702451732313939895482428640751886333096750421111651393730473599231309398550567182724598667170016744552972192843604113939812470939333019583162032095342259330993738408645005786172555109494430339591683698984449360146414458982933540544192844351561168664062874130328462964992587039209039372827342229327979422244708197781345774069542189595225040196457538996761219827979857837668007709549220458310297939727374120919168742510538661359542479071943132575154112790342805543036759989166338073732083415428330011036479623467605919382657853104579707688738672086996389666401755279755755641114364390586801733583446521816496765220464010108671646641712660050769999974898698044604731058465937091880022718017523060730387666078048529222142956510983498203914359420526404594519053443583618053782467119229254285657029396591152453673015594261529251898972353775213985180993970458399392859690727679702383219058744197425561084986330554247823841485820205064626418880003938948504214025814221163048576519844766365566415869236643887238130114658652297718482414352015057396333588863543676493293024370074673977068991784803404661716834524642688797074025662283280678811245165244469735786149603142046532993966149417008022772517920039609551065945254917583115186880541378251487278361021685544028206515099033080770876778366276502264745741665053334903865317530443955929564425470243290652492867381142689426021743336004305791879224462892291349986617379465507369789988848019518995660696604597591805784800671537618394913298876711100329337848799158286430680045187373869013152548659081011540448459842015915659182817490498742231870052357789782550223524127566206931426601216945281966263379446985556783596412936413098330795359835923316527769942944431618043716290737951502187145365862242251068834471160602959924131470490605746408128884307134912066112139053957768657270590900300652882998306666660395188950382123524430360123905361743227231486604739985880417699126365963927044943282580856869812040572872289668656625422792971025883880242880989425591044582293235810033980643314783510053559436173397611266132756269125392580790030869922848523658021316573059914089297396272850876111419191860921575376186501320986155081386238271196088251085695328801259938870202189325164343301454638425256876013162465948188546746239083080123347401206146379065902729318776772123988062532362936350525692353805917708710513939795636923061021508718832884803383187102740731174496689329585017114820062801536089534481546754289221059730592800846013418319695384276253505463635105284533853339857825137307019749053813505654822742053536284412314399794066528490042838709417017882482565648532619399094688552098128359867297669497750318237766606191220113829657385313225902473690710542797589216901809387108741447632147342342853181739625659008843742735342407328455148791984652805738679544161007071770934506865597188353908861332652635722508611463499490632593804750132800865216727083074370253638510410519066249529462973574370458395124856080261021457086697461365720308898537542828509724714827909719248970154241404545753445159125256715431600224735981812525622533630496657320506224408935193031289938857416276210824108546545501873220689524503018349465405984556219916165144238885611236681959412334873749927056150205025757584132996082078666676270421509537590467737670238135334507993827483739180444247668485023870475099004593043497028548376533405237750136952035251222570939546353495849020213799379925512685226866930117602771011186467254157929802128672951343282931925195230601578574463132808636406058884138060587097323920823797603640427530184853320157869683870680152852662461505929371186407914466397212292842335204153054126116882434410895430214464948438317460470573644741258274662215659153376288835692565460158801966056027506220299210581596077358366915527793809295723070167209767244362754325241055488658792479650194526977669302433731028863424201979032355220120072334139630388573560335182639153578724451885108010452769883063268875587489984473338930200738184818501490089145572434889401918448000716202904828105854036630784166050369047904836357074550749538125343375879031071001552799857487791938278101207606190629197777599957728235690907337012098128617819597477686116314963417257306571069342478839601178589023057082722291043102094791085666961896057439841354495490784347170210583188007349965861777942310046462378172619280940820563228384191545255668223341592997853714558745775646619917808397120022447331846823047343777682442566722160526713388899017474502344056916355781186181885167713887948952776501008336184820588767009844736452505200700894009865886117770682623276297729736997827089998743841937060721500015319974671853020198463654930222591962969764351266509963667928897239721862244890048494616068321387756382095502346083856455462363886231238972257001810079487677346747995867893526622718677516765242760555663020231544403337375188586050977983265117404979231068918711817757594878795865540954472929319406841056974661493412911731936096953084097011698852231025043593118048758678030116706128885034982022722289540873077506300441454300174292753166875981573953415765056502535727859487384084620977082873615009008812043607227144443638571505631732076136352236433257562392888518831059509489127955118762252526183194027211914205785595633738329527798618832655643626235994853214256527954289759416577995019690387349923810963620402371455371522678785079968717485222971641212747562085147013302444774595491826486795459840926249525080174029949232911578295095133519996533804937423070784981349812264647203427186968108654517345254270844653482944412946121329862553010755905220608791420142420644477928528833121867140189306028308751662157259790165553090871844034091645371915744593972352033585786910504605021657134286902523408064109191411321141029261982412108646503309946044343982600559734116116780564517750021594973372431252746408395502268597624276061988300119688328512554566536071160842242707642941850893065558241540485700758747722819300614233361914335490976531516862497874386946893175005993008716511760334106702374914489832276832220724266371647787714362007413743803493378214225226952389611304725383775134441857642760355228760986227626867978245771082063893507785546733725952378220561403457829570009230688554120851666607497219198293286695235531555087920881199528205368189315529940281982508172479457528061194294617135115358250178131717680770367355139731241255606017705306859511142703149592075928617035888525732090077277150961390955101299852673934308668733133555114504038912993006383659403379171855633786639286680935863040079451927207013449605544778595208828289737852397648508749555533595562273161634009485071845480649658012765011232942425366107632854163284053229930551198210938487180424484055673668955965079078054043470749507223284234164281357234283336796206826328998260378938552745515872254445799812999039803252755708253403753259624259340360519194104816773188517305372760952301294507853594657698671812943815754396711969371716239698042064259474589154485580643532817515537383046316526625146130232695976872433540803747431662643215142502340816576058919842283283298508177808771698564806151405545768422230292302810117051046943935917727522294856998391755755999797270172681873456502015091453608499449248720092100940856622026599871503321144232933328892224341782451707455481990983922080439075268275296915305527379225225871313671583317364782793721904422819261490773825299710697282201601359939357519505162188989644606762770358063677776165900014555046030206602797680344820304148226259143454203582693705539078615118434741414217894502841707903897168118852716378667789058381750817566506315018948520886189643281937780455524239167707283549035224124510674794042173654440638509313431162975690718221330283243917036078659653409964658199570652051953909667300575304532378644695084375080946522654828014627452805564852481186965014040542335289136434391729622143283105869645354355105832777104075796755507725233675287796871760125989793451511131370723408784574764165325886939714945688272726474080815907541717673492165814063120567597459376208044182037271670044144526615913641919917757483521338474785276628391079354118898547430718996721817815392499469240094489200332789995595131497129839161450300709125503131982807789751824412437942423420104819914502994222458343798817895019129722723251092098735536461624174723959755824833109028255688378960322388380136197715312050495888667627487767983059114917115152559763904400750386999695380421206149151435429831719152696984157291736128416176290247078123132141323031477440961871132009339140555938850756095755671850098489048629747358599854778949333552790192722281494000454180967172652381284680402087680691143074763249540157337893554112268749404760934252350069406563406297187410315165837350519723612021064104919636067092578194742462589599828457018180455714455559172558517317951238724877860148416179152928128755168133149219668145555935232508507964214782369978091940639422545654974986455064372293756548151827081515476995313218526540184908961128315212526497872533914509893432940550686676458642437900608303164981637910164823012969926881085398600621423037863350884542001209947573963295314773887055164715945639148381400112026360838726891531509559884126201873695206831849470926890768811315444326796996951699527452430193680183831105550882631430798482676532055485967646574579251821360875802266938543357596673237676914656182068013505142533709597437558491115697001826451835205682768578733336046788508140604632294589671081855026890786370104574934355239391316680851928852685663501834838571972856970939539164933275631534302271114307585882266015613379554201349588902082020315416066064496165075961839968995654785698950737276583855435240145094500190489195758403961115476840147920773508513940579675379954773039896583054427351762133584206284167694521628361956168838336488128354502186507031395313011384871481475588986311599271411621012797720342673217595919141319135411712101121676377077913967800944873496774012296720429117240307052687803844225872381947798964836253948319836356013549557367438998146564865216602541933660959217447778928259592160781805235016290081457312133772409175254907040104867467963593973249277646707653920997139189714035473625767633508413180919771256706600809906837595791234421604940339767571802635842023574062412135620900059811258884704250758518889374744442461608687929182269937318848533551866846458105854195530345734935779941064835666101661301150733607883735980784049784951642261506696562113004453135962341773416054146236996320217107940905714769217201438249570976428316192007673094124745814423047256865853508932789190108840523665805772592627673701775629467495609208383002568418124572631167598308433393871164158120306817865489731907523401315541289114929893049363519305167035825456959271333456761756972547415152745007924013098889005861853900890388373662929126440859350277255663265154138563005845100843855495839209034414547938127772035649171517945387543440354861605145600537544909807904142423334412790569421255834729028177200101101021485968290991366598395515170617337495276114797134589881799104610175193064314714780976724490105988258926484476514914677340828581709784663001056041970175022633672639776603251397860695239572258703690590412682394667421073783751678031077701720271887431871484919185742864706218211295930235507734250523584732260269143138904291049477199328610530304459899653209773587022056951456741503062925749016059671199809844768325068032901967979209832067428625796445002840401411447397282060035891334634997323872625350299470788798853919360493404650426258226341907351164950702136542804285283300183072880398161902440231989669423362669274031355130147502933853844987080033258853292449202344957284173382453927716978344294632605345974540002053054143732220720134686790965133843575558048490038921083717511201274478585947846445836256707689032921911054676859849573396509494342028463722682664864774910943127762433816708575769644060144797681995477084856208838692982864239072057517995338787156523282258074232974931742271138093138585273443853312578503659923807058939172078267742608891772268206660991552447078689163826942938640175923128832310012403701161077689577223313810448874231465769704132249861797387755480184420537377286374526083227585999683215262389107274025764569079960992077742751648244815876764941571177109676679995276128773463260361494387860649738472585942648432505517477281625116604015665117145979811655092033126021221543442969554800471283642420317520103814390977863925732209713710899281592031640479041091905971132756362355506138027206868349969374400120148034179370252662628346025809844261821355671241507124594713674424101242209612478989622584442277092728448910647068918177745930925531868403318918693701752792271127007927103005608361420242612163817817413601143952597617652715909950213144784691550831466957942400630459454269414053908189095073967037605879715252843313074940552502749869388496423750929551850389408049694562841238403700547122376305473797841132675775480543751192728256527666090518836330272684216966319474967703287257594284507965729363514612482761826398828664347384860308353555810965500345578838095172273458395721356529043863009716423254181832395052102656610862142959329303077251556178647029040458255153685032650120089017657646844376222388856135909742951061063913424004632469040888961053276747231416445056277029763740091029483236230071999488619812983291079480706077099973603928509807330787762300442513099791161710730211922915845588173639906582237974836216918908778384676225335308339117288914953552160644507793251339161914553072579358870169343102540231568027944417943131048256929700038325268165376264433458033758057611152111296037081159161353956162865191077991272643690450934806771730412556202155074362589643967740213143641806893595008009305479723446027935004730012482275009749231976630414861527790662796989146151747753381308077792655418460468683772775913056326404511971573058180454339207819091767003105918733308375911624447965554421679205584967555228496198354626954755578694667500323368738845280028652454736971206430197122428465566216912647643895745870570072797560449663425587578330818616367641246956979112535205529361060784639445608757630921859923521986994838262411310489899449486696383365648022684388485576060426484693664728136574457994783299020801970376122609286987183934505304676371313918257719818949087735758733922440507943771740811729394094684823269035534248737241308182613260856043186659675848617629086026609715424802919550160260337366786294895489628336688030378784591987424294572673150563479937831031558944154982080736041699703991644758749537719109235594162790066363339122689083175404564865876809650401310048355879768153049516519993386482197737691392667814007394648134169518564740186385154081134967355024977517960220321385828714989151640393111849038315091583913002512697006379673660946835657639769890391351504555344882709130806396280608079629606181818961214981832298315851479872897216119816990166836407544296096993986722869298646675328457224439789167961725650629001261704491489051090638920890375861880307525617645276839165981975961907382732405103301872766004259765803642351371335261454277783427498966630216356668249511079882827964438697581745117016727634142136980525814657503905679332911720018055709793956779872720810830107641625189761338503999033600786220688661680038501735625064062705508124508255478449989003329395832153497195292153102866832924552390860655649280225885653606126333608644639352337968221822559133864899586943753436722684374189121368122860277491552835646113584723522503464392869363133481354078999898255827421481149008417688714947474064533837045659008640617046561310985561551921594267028945423702054637481974045540693559299577974355477736802072053602147593844480845608090306749237474464078734975038801794994612681740097036857200986257576826885561937566205175105327169831316482949012144796954259268656906597915874883451227401448174603369508384626268355122488892732754668848041970039826814008972788147121798439436176478917804031476629971304048547664421680123712976924685321541480813745021036766801054335442112680578623034751034442364910436006564125571209398138973622099636585400468424724960231363606984100595197022475920412699305043028611995668941166474582488689585905117695455052207414607956496948764108894949087406893067828452109379270141393754240444021931033308004416137328764266852683924172618748908840680429763104813534655379841584867355187405351562409715420207449771163310846645487851543653476913514454569397991543260047645460661645525987152401656361778307910542682126653842640157258338674035060340220045330270125862520373411358731201622132063941021272136830404672551627547720402757421574970402561315018054594257461894106587298349025945250194898810015117138463485125579291192575241376895281323082940764072965126864659998787183785126820317936030887751640834625101668857862369155422874373719964281981082952724436480022492859315978150451231135372620064292003731834797738105636026193487727745591142521392053236509660821399323877345799638603172974512161554191474658746381853717451556909798936805351331693432522218227799642087367304651130908858896618012402583235534188460612512080020643745124408304758693150044701050300661865382890171603789454825540366481936252713596222942574046921280377575887308913803002453943355437959170339393347230210011513882941175447440925461884473447375491528888250093055871764811178215663946000775354396806813590068026781469095547382475575617552081209727933350651782908872533362729682000299488406574845480807968066478498503244438637045549462132335964630912854579505107668924844814087408432409076637154948840293793491335986376336351758191770873202720032477799717987215421222633284296790472689973567276758923087824270296275875616607566555034641675389099251711496118141766791557235540883955914498292908156541862234746884285515794851401671490908226109631702088699165275769407482066437124988599884487885888284843935267665360343501241030734793177657378612924340733626407869143221073466332812726160561423609728059638013418051032744583342291501776276944312794797149049215340874006475671912915774458845946292257633392585540640603113104343720984806523388870682402901391921252512291459934261159043858469055551443898555246424457594780454889503265716345854301930411575108461814360872506026048545428467212064462374490561656373763490115842664414483704471860642167400902215623124004289073717431905139519133509444120194397022752593009610239555786979065831839746931459213699080195319269002531165960539308618174155825169211738883389481942388727808987002765388811206311593991306160044788759242332796159856671142661954281090628213657763440991743507286479780405364463537720868837007478878096620622317878300356248950217815943930018900618013024422589555176917080958595738544962142985800954174109983991221362616821021693572190129983131513026297466663421454656305174045966543021149830338938324349736927207230900020106864626531975445408841051563837734005426112197357750412711257648692572515276349244400973117707147346582483343562973284933793491680933030561159726083365241313885959375526584582888799523008944622958311584407586750156126528240409505812385121366112119253526402971924946334332894092015974455082859882211015653674850074966224366273409602616527198834660246626805126425709448514214911615152070155312983833416311275733969400345810450242599886361606225635599948180828923576843956345928917936122599134977861057887631130202088919151473719129312473290429460372689354807429076097904882790784133588037019264353643469634309926827723419717662830177024556722870050411715241523905678823406670174698376221147175849868042040012449596051290838235733467228179701514909279170100259965863303808991977565694080641704649114498867115191192189638168895515765092663686299955966009505065881198723829007686471035781719034765612356024615608443646990651504083687391145452229541616137001420879357595686739140414288454135414171811876441022013875332546118030303240694431199983229455484102400755304409178365729462910994352654281760814075989045164962756368672052132120401006353552956487645301196444466501063937890817111001415992177551384888910026699518884308649968888478134525099417519751239106116944530063182580153802206715031218228672746111021893765192845437232877942721057691924389689114168918613955179895425412983223378401237930376862957649523414037544217689320247343782592847631328650263571389234588422294158199778042415686160140948252897702426279820508762739321877105959734212934095933335373476746168673079448742732024278479192261845582502554208922195653320000647601780751058333875913500017521885684389589758179964827421695691092061621502919525469323042425162367446867972293930208241974263121611707531776780877183979793571864112141577612896496029935151539906620835965085730606921492371386075735466220641145144675006473008695766377328745903408013904769462220138409021252308407412793709202837814657963902680923383109957020369519447805210914997298545416451813687274422186433929080371423541480865788264011157400724598399254697150534126257887560836291012603511344530038887680651773178018914925144565823437660707223625058683142718190468044407673474068814085296753098860832945206287908082833725134934237475733323867293752589746926566194274520826546922721758704868027997313147308106574268333973426717248000621970691153632756360126479529348524327368032459583590440480513851808900117704702241688369051146695152826602906563461441432297469025614218830655818148250659950538248765087782935044471449061972626688402369724746274023765793819370380419299917470068088582364545471298502530554883897951593352011844414190870464060064362026195730208952492660035235989167998212608188136494969918994646236567162188387034582766888002509952744525887224551966491528552771003687517990082725903410617254335099217506069428866902090238476707966648774185696409040538789181234365387591004467779837129467850103932626809295323438528355937693899591112073387010604681103045054970146794261160990023507525557933714191483311983849156653023037718829501263252892335693358718888395550361819291843821172744062118134097477456400566013115885590669091279986058150459382736163350214595484541117985931142688217833575623259233206641048315548365263919968914802822719032968930326266851342447082582747376687073303450113584652699504155317125053743034714769857081416199005304547776619863435302775706732433362719690943815019745890843388071791032536560258808530906957808954184850349633008883994297273800013960559534098845764756678947332896654815906841679149857333141472338066066507123719672828661386459828934893468910518385573217830984378519133833233658018276504262971861181817522910407013224502132989643040119573889878158372255140762091179308953128797492325524129669354238803968890429406348040466124807799625303803238237229518020980820575141332884138449278675963212919672004454054388657042143148915060737674139199731645015980758930383415707387178618073292290290433818146578823232631173650594965217285803255023604672540055499604822944020975600365049748174491536616172230480650345594604806551360627874133241302694140802273059352327354067501236373360866135481243581151473307323320853518115026979104310889594476726999185397232889325696179063947587366366607591421974150848540678738207524446992239380162661845614056040224015381076133645156539295825392833702780432030734019522410068381051324867090721853655270810897909984913513086878498054669182160303839260608112636779531610653067857515594840836091046113931364412809692836685402061668393640260045183045697610725628859103101418928959848136415645055031190047335925626182791539150081531012401469979652389270595166371467268846487711474684662310140342646165377699745216200562225214285989553145034043138888565074395501728912535903652272046814665702171263901345309459890860602948167352492299778533870320973735226162644829829648543510432538492290345638167505871073503997985797835488500258615150214398751814636546224462341504523473627134419057506456129306190725485039295970764182137249538220146287537111006417632045035856774876576507102483583481870127236844091652566768768537954613682028726015896400096679536617037744400351040384364164333278010584524439751253375003507687015627044823403350361794521411368619065469569447393892153624473937893772350992479542149374558938273457665905661978833577428966991209313328709383756867764987049917809385562060871668076970823933241723154999500233561712833369740565740156147825246418770539849876340352865675716746488583322749819350624704454117945243814385224542648129025110054000399563406948987746721647731839031213057313901418263299680722760531230555211174099759354987330468732084285239739349794324124808564928153018795992738540935647072287948156729095676486200778390391054966205199660340147299476147159228433031578220083699540020100151905765511469330446237509588701201625802674354057931016294852757747061652755317928730720063875930250499247182880048165753398526888271221174600289639253213123787549864477355682006294337763063707971065610663525242051073924390838574582706064288397845659512807046771460229811145372087166833506833832902285007819763374462122001411643812460687979689253876142824686730547609218254533697244880964292124926658516555839034710259964164187271687371300053841275179409030157135699833449864309928507460665988337424103372460833153395168378249744412490278286754240549863169796006674042458859490178157305385562653225025878012229061535499593390598632680000421162084720325529730637210198735442689230300345648245286422535142923436352139907971714000858267365928441893962911549446101384764867250565160507812453192077394617743612078057049992641256117138745891493624209439894594142361407431590299451951679011372410361697984146572043248242423370001801516853858750301127084015461858298815205820705956893867527378769451872371004856750851566353851865519926822679765509557790591468016976175008065746776363242370007558222866608706853100500233607299385743556572501386688824250500877761103872366225671494494859312074896756670230682432973160594826808910489730390214821738451552294289121595760521270064467537219559145861061157792609318119147013404234118200317361113797355336015669299818868603594492786875801211871239327772002165726902618810214229726587706033304385093674542112261182312401742323898768268683376526201335362189346248709247360780586166947072144660984058441514079158892538168015400063097634695843310953974257457163917656660681546535614235476292852151220015875310629370899916742922405047674923676092542687515287329338599832718955551419874502109784021564349275585106302583069408358294195662112222833361194015015687017427586505036032209184862452830780359064164876065788507937948108555628216927179504496822634705730025587028197858402617477349190659518691455422855795395067952286963987796842627580501462049690499855105034410112060515421074252947819914619406690363406060048496891606568427296095830642522649225500374878311957630505761417998856287519639997196543578175483779490088332756975225876032059347289013311734038524163764049369361923352855737309712760772863438634689565977452890022011859057576271611753125397835362690137406796547661290268447655925701004529769407341978264911414672905527832360583534562581623590422049986394073044231160063500547614717571923281217574887468518022727842970908299152215358682027029596597573775779544274887936322190661240983847905636072544635800996866478255834263326861302246213682107148740996705226141222533123231665880552209604932713032758689804778672710509896156188091947877952004473984365758320512533194664190991456227605502204997689369214835775915960443959957271880186921183031946307341777198895804126881299896746667869141855454984620948029720531226908551402825190338988072085837428455843719506317831020973926985121989033174471491075819130887152257598200971005843919749809429139381942056623593468829359628198237330293005279470234395740818550506812677571311577617783728862429880646162956321805302381609277755056390302466253849284187332845348874805663627285220745437806570245709701038151351028618857247518492234532003825598450180837826128125301331737035941629604599519243532125433093616483327064301279317080467426071637895509358097711109753350149023773631675221208472994409881544773039352868871950347621289939704034716859261645978344524679379643922220714579943392341224896060886228507583988955155205307686463951007302380516378967101455275404521428222746693380156149141447271190008736012380238361226868205861784301745782322400411255474308743601362556345307733935390634415277561081402454856990434443994502833191793022993315101105113065414767750837094675494025232761432171662014515504232580655714371018081510660143904380450791810204911876242424823328831285045704701040917017903228700689898432353301846018763153414323428933685124744179902770147830412198414291542037672721453001404841773625623595052426546396238493891436718744473077560040625020841824809541107006724028012901906188525267751632898483964096190773269047115207267601642699890084336636623158858896707707849376410503031730419821354750089372330351214801055712406020558975118524628098917195281461399872567473302192329746032809790833873986628127614091742717907930402673604643436395478214320375909586286193687639489491189550175316803956257445736224023646900868672023198620661139911789937738844328970485322275163018118971544657524908573471550262228464120813944876465057949496501895682532324064881634089519149500722423298720727091017135535880423861895240528308809945676316153675077382880217896801016057953543208995550932892380864062117983560114600491223754311339965403138984824884700777762325563935119430407237996363060555020186980937707413832430184208154872032882075412396013220707164069935092548988158272159958072309096992714397773202181705512614699983282711690289829171788807342942835884030741746860193691722312852886194067832031795502465329693566127135096649837650777239145804275371226933195003399311097209119087783270467885221094606019673407077919473980480803939213733489447873815895689273516675238051075509400063131350649955758317318361464289453400833899151673679617165844536092614884504684553014979445731680153144087790422628495665799139762602338667807214137117391336344863393271512992561954223204446629215352222651506798114279885985865225521979327496141956410485711688098782123518477172539052993455558449480392787650313155029400490511187704109977520187350857488903376661164751210893648174583201779656562808282456080878899385077480420041957575374302674021473521884569109991332850384456535296795888793766457633577489855591815624491790021039569776572361424088670568415220909211695248870899915097693911789150581846625130451914031487043254975425864526505049810266728038697792803119770033805850272572587582331724221853726562033253744906474674590490419590689246220219659207829562420659198111266191667743334276719995298444214535763556980975559803381799308982139980571591600147865860908544794234573843866072567949293022334335022309485666088391078024995636559363442595725627929667806362281412194511180000561026569116920034707412613972460819224474368000443802192510489962862541323095618751497184384421049915583044785756141053926489545186317711575356547937234621300044032133900932505226586234002552118191663635285993349334591003487384565456290959626589549074305847051572274786765855923207146128761117795636116637335910379353822368727275478091856392403298747957984968317153593981751661993263974315821164914469755165543064309014336161290604427744874213851512584340212372762577144885090042817860622935633620570559712984047634985139259225748844512553150665671349729133565119266163706162618651939235767507253671463922580115755561098640096686376344419003364194044515472744783683614057508348812495952488309279220359250583848356370166442292275254330622621040396630954206280579462014239984723414415899884166551932099387048259842663828282120673022525173402321816415497093083580767982872770361995788024583079136269079585512618157710191923238462068405132209213290367393286920533646254683271219701779054946910898813407092903225065018466604220675721225669064588508463200518672144708894450760860568262809010851925061092807660987356496281029150345025428907454450002320645477106253635174259573919005545299290875898696021305811021961976347977411030100080870026825167531811378356510926203501869506554431333208842942417553275968531534153423014693648415835100043769524317452805831579062398596451322154842320412423995113391901465815523822383054602734238876656574875722581048674437133516243547683822994430997232019621882992941273236117980623570054232126331195848217735714503620938454669114073006268239873221758612471078671335183763238057988376411972158459853591162371937655005546504143920088345311261757162879260050359516663919059305237437444274073848958527251489033648016974217186881872492800232483576743808182213247509465936742072714592368250769681986090678379166651351071818071465592509061740296038944196595477017724662540365003055850279524869576831029792932449422031219864181116250019714292653214296041345390516081166308650402114378994643450780521281712077015580006394817489978748032657020632494995943811608887874185657062170345438211506892875405581778770884982638384767075727070654553346241156380894105889871356580332211267079522347766613076147289462699759991960948294159359742813352878538180774412014219759925452764529496840389166207248530153801019540812767987733577641933520524111171984323241729881110609698874571347304119845305897980324852843441113995692421663122985054502355698334541417902988656046093269339646047894041379740756992606604703450697956869434123621663186084866937863756500044556311039371077892509858142717399788592682594354955522571241923522875211504587814373852725790865787531293753050915630549538572755839154832583252125800420153437223263059127669925143983705047798089726611185735955540725661923414239228380917569769263565424813457481060308867991629651228919033370479253958341979020084991549087759855604475444803074113421045036420147125372472385346546815773070779805494247699644647634372953711590731128964153087183095815222640495702120368994149523444593405303902086918140823143532880195642966000273717511673868931032333841840604117682193252594919383034533454898936671129278080439811673015237084259738771408620478473550091311017574061282684214407025734495376656600907353964014025070685666779930236561099630240640255367393792367194824690834748497409142811908831659401906458136250942342338984147820714067329049127274565281916996299015441516191007453435851334733291298317980983916265991523120231586513557976362605873827662798529205376506307537154011379421508719140697448126467323185459002000594926758475241310569677058930888394039350245451570243190091542214842352430722960297729714274065184466013296507600941112408755801136764923864483226445412927671387386747875347705491808975097570670580037505840763270415926082378274450572078126496361132168608325043859341632915683382088865972350222362443604150490923067406765462486359183405162817725000325001762634311942865527688120810216194992486728168184030304619046865358976853405545013519626011984110781414859217599984727955828057280947479332151735984747676802201495676126491416954914729008542997036326304506622429092863761135903608181834020452093977810454239313432020859232955601488362352805783387457519652746440093576817844067678179197764280310027438496786443090954374904140351144142098049300452998726814890929345373663434567591489774022333258883828380647425489367698059423947648427229056943012629260321385323460552637371326077666021364968773134203023090729833233165123278962686573272842615461997714174502661156903070138131938160469035916032680881818696053049776483917921289609378036546847857538627860990990348523027921181301096825186455008856103941655894422044676810131114501263737156891778536232896983914716885733129609981912264783721127849854589458394219008848870690353861793891138272471227801391804965513923332478093901136047101520034458237303753180831035102596135126153300678223234584889271475959498005376816541664913624231715963418793255812899220621457763185159221742909792399534670891392080590079507616519516622830261330929359200449409261114898265639456176345430483100658116092703151810445262688207767118835808688595318577998051671830671771863937997505741541498458653603587721251910677795801252448271050584858642036441936656813982849060751737003900027701981865127435721291569061388997612461539951970390653027262087741640567652104545868199326265211389554878425900327945886972486963675944967091326204841316617270736627218139124143645096018005754914127997714795292730057993778632667165850221817804538692306628898113909396899872986082362216078673275879653847050446262563585494115322242576585812430953774415876814545540727663621144824052922251051093162626679119087439906912305346306617676540257032480931292193930596938189159988601200237805737350740916613382017794174148287922682651132846785253824094622540143499486201809645935740663000813106160833482981622380805029625305288219029937340661377015545482706251590814513442606140296903511121109401799033810777563568243298140202247287935319256085077251037605651247673889418009131520093949633769393534536144940505666787129719392212080608308038319917658148295960253702640056782652717233517937633130543520780448700491145424181031388237834098855706344405602843109275839627673861226595544124488209783330436180655800652454131365763837898728642083625891312773404430707239073607628993015588105850226700962347359746216304143923420269404319573740220702139589445450963211265603928172720768524580521762588075398691199212215845457409640088709830411633761971187935175059124861921773129703994393008499276092616886610675491321563575050318636067291571672062028871568096345714760008437708863645124963290840096030558893565283517598683512675868757346949119182730136884005228229954959010749818942883528633547109510192282035940274845724733423739770422426414014851612898622065731793768948104309924227774761400806354436096481594703667074068148083004243838075556190602835699538047840742256805397960917849706283800869058443307853034755557449534615229805566436253565016927952618641546785744598667507385547670663205748265249285193098417015898854107226662681453549940686650775947575527858775536842412641600768405653815360145439608201484717844641705157883817115940401318706980444576637556699245769628835927472473907342033263962820807678664797740937653833842715693917500483871106227873290072424679190650149160000343834515785011348231361037526514646345993551434026895726877180856356727569756579965138317558455555260494483255188751954407231622266742940314681780275086343265814251151778324598126378281178559210147654312904388651479301677651110893567028526155906726040011501155501008900931606312896590585342433514186787467490403307612496700154503397748925325383745652806825424899950369179145097637515725577989492199152996127530199659732264869280735102809580900918914002057287499945262872384106890180581019005677646702119053311992794810371091162899414966920872065570659891855616639625950273789968043778340423843391482283449431732781494567511836135188425320945154123953402187669318898041051548435970905698938509921230334019512991820210171054478178113787296982131616171694555081901449608135924664590752901847099674291751211705947667914141575830020490118034912009152190033892855899243918432837207307739713987900399105068439450414582357729534296350190263638473234090817450201909841832964107959803441330066809772856578759593238183484789542920911663961549080976407658404330354518464439904269527615205412664792407254832594187840489519856832236196608147089679466152570344220437379850206182473827570194204948110124212860144959661888008236809440141564631840012027577298164602410452007255122093947260556137809727605009382026787702846373645575357616926890811655642648933474499100829086968781554819330381609414199073905937815869410575305548750922207045788860616320812420092844875413523476763427879476704152068433875799660364849385895453178956242649367706541256504421181273733103582537990915060090337920228795540842394409427916716975751235194806837847791848806775067186970652696922208146198922423912402965641821392277046550576887315478258902742383774396595211226526973076146499925095700755129086020002333425309017008119977688072707453806931564889944965368626092233128503535711402850778589742312003532077436063616529638344186009759544299105774377188538649922780002300649150467811085369978225274678529189233892896951081065411289913705052290178581703626880823810161248915839435738290741591892736174096760678799567586193540433629650966763579756549994524775746164855240620427247954035661332025060269587462933475417682352072326523011739485869681775753844883137330030850530129632876770875051581011893517870109973759508148088175259510997711873696765008836037688766359082554564311834840281997265234469073091165400846829348298935154687179851435953698745182989673220382130068517908230732251131700083726940322285251858820842381619764910865767140946868240140095940053096256041681241250902187282994912981806573474501054592136404084775877778234877935709615649836054772461018378354539340576546919411979880095857482576967737474002742131513775668502321537548544503777848815466377479314915246731941963911969586138379938631755800714484669137440720745455972184983984586158936471021399340754765957606882189861621411537439899077498649634223896734835749920232015551417157990414728502444987940710899285617942634376213066379992566425538078242819939216591966792569076792049509576426257734807990820890992359923534010579327486526701724204244794800064522764993423687405212814072474659504993876989738845773517360255199061084305876697240387545771857415275399616257827664604586128596845595221397601603061569901750432589174466059008959808383781465967119398097590451104960328897466519709756209141048397611446488637166979242155893255845459503235615128116462457783049525035465371612656411431303923559584088106116583608543468110328563788353429842306253952159264469516600468448843548234273387719131472760815141866094687739103924928229619463469262306742918517778529360987319676671264299517667127150170781860405252869653267523523024170055991642773536966242433139713101309514359969748588968217109863473905841239204101408698130030806037925065843793087114172477225482990718662418522100878620456745718445514028994212755441252517096476754577610891008438108710242532664265060504838128806517730187240820782979216953958985210353657847720766399409728195030264601992599722114351919757900265717691960093693847442571877952836013803561442163649116931575152524492769201463912965486677403334602517099509552692127221427385466062714375079063983363337750401997430424681034904221339966963325708836904450351366781275103577105364673394852118470615069863746528973905233408070866320666174573055343060245298384897605109954057592277810406441395242241453376157004699015218729796949188321049516878917633582414955182205331872222188159279319646960144346297415504065843814178562339432395359213916792719181247454311336055218216652939843651023140041511122136079268864452924573124448785613487389569075024369879800982676815949719030552864366151556077999415084746564286462521108008723999635998591853235319430243845787228506713263144914289002913681760567626933388784312436339276605395216956432703397701586056253618122508089201390160191450761988948622883394445195077781422715900025058355759750140376226903878106776700864359375571379836708565128809328497504949846059416069111893036798786449957989203250397299370417566983468545611928405782613736902264728728463317695340384545644138343558532906216844704706702397705382380065542261777194297284937226925304797568159008203680573959898557186244180419020375233279044852542002712371854653725273193848278998530723037983274078805763655761658943966287913596556726808241017658130631427518973659495951837506149119558690073701579133674207117555883696005958735618475281297328435151320559706516029533749940972616750825963610147305625766901723003827182126189627641837840675940294814239599437557403475161155787974039429799987582574321188901202304251475493440689337528916850065916784805756784510133960901412507456808087467958552701185518268552612995636516827851078788598254363787695846789116444394079648251194909417020221079594186455191545182131091794577004555235523475476544413039063855538782297539948371710193099532091684283700251532972774610011226755838647692652373072934045285700093840524123604281440058778838334701635278699365193938468555958605317272382211253584000962191591752136246719270546117822362388798300331478446882084226201895696548943619251450052691260366430532909272100253950810462983075442175929338414871137700179781660119645332271276860081444863089763325490958543860410083770479490608269905608313978372018038014937529244296862220672414620349161546228030486543241019887568627884267847808460320769398884848085698471701640836328325453925920117594947258732663664871280798253545350729646256071111496766112114862429641821765482037652230384734254940259995998599839415892404608148421657366380023838357037326072010125899613717439054317618177753714047187682907065670420785411539268146651702400450582154660352537403201585206106854756694405901297268642125312063180695625921557800904668177373937711422298929815666547424560895115580170757637774090531236339920062493803773126756605110504948771172419305119901452928816379854930881398708992045492731289820385834276349209527033236897250979779005369226237296944270596356192730315058745076631993047036818290405605499581032712780434659775479985656747567342064757277236890327297691713566870622135608619460056356547811382467192428087842574014069692342332078851115270631378773699385885231685947322268562440548540451288490387457025515632779234137849857558463446380132621282962749200900474778653770088087222742106521695606836175104606680434588127520364728944783553393138523564970966970318395039150707305466087952034766083960372995054509173328868177960933118044077111868506943610196859163114003370843941925839344117135088162519860973324033613769514832205848729431742933768442625730240558276132647845529155070951868766442737706008265767205662006114827853884217280237221470934624241974495260398044022741415497948644286580877020160901911848627585835319307384450449036015083181305245704576965038985152794115090189154943348998654504796441764647009093737509320311434230625972066560695035605868396202428777262816758187407166255007297065108649697623760382754567098624953298597632621066783773375939383150667930927578777723554387142046613473766247895233042934392086237813878703908689556412698262159450783985975196024485182852515401934664601681143245368840057179453198879180607472396487537284102429282417585498494511505035990534333219368342901954003963162158899860581812527744796598365250339772973045129794095435363518327125289469631563331754506682968237686151085032222822321187033091834275189304158331633480459863568425371325124724493805112263296113593777485037421963408794557055650751107847951559380283413563082177725792548699313631395000329442989153957669024522741231043978897984021359437319714475354549866198864687797385189373841586629961261765576868355342632031873237506360487983828263743477555944084377252188957442218787347229991488773615936068759894415560405848991060389883410377886896926697695486185649172151972401160772963568112705401099682049203225679571407024688940682617946226080983068574215248638407338744707931939256238998528372717099564352143717946344958326860251400115547287419096338060298917867146555589405277042367431661857232228323036803119779357702870704797432176099499694770246397997005783867690836520427950580946150318928141905134313528879089795967265270726808796354580951284060240571963389071412918994137641220938051779484816705425214972575793077751392948385937300595991354058341381472036882974652697379191926900143449445273329368305077792520263201187666647848737854463634011040893742724393763990205564032885965218499400265975330580560268487586542259378909053982896991272863395412672307938762044493971695552081708649728661175503074166758702898159201688539307828731071917822531301237312191856514420087547069010430085181527120266336811394291987189488449429025308306393828325692845681606066444574841271837640062988289389334219020080439808876439682313403639933325327590040033030069171688474255536359448704299668088097742165991082598085906269373138129380569160370834619578594265967624873651864115099792048444553645043824739667627706293373435385788282177784956959244131784659827972511010824632056813943546882391379459585743474461761692138566098753753084081874427205023217410914381334942323894505026148954336823407645286645545074068803952500130177649145819211573331238529759922791207025343550523725099046497927953360132334145097333067536849899505465817513547056064326541978398037137886787059069990101058774124494379590719809161283544602371919982571660571378482675636141555606833609635229413752183368763798091671936648408541838625888924181617290702037217993230457044615615026144061098720045421778473030000921441243898409473300130052911222302540203552240455441225675420311862560163248174665844107615627070804006566303014589931523730702077434364628542024471132099444045508148799003433369941457528169829275372182905169130086611341878487101998046378892106623680001331312591571644123299971620303079354465514624990272194749157648147427850860379161962052367539034700240083773947170031749828957057240533329749183339425738351988128301507808815709931634030095544495905790998369402685737126522820381964003953501527893241371458738448714394321908893290525662253679921996671377935981996696844923252004308833279037761809312236780676067929475245744149959610401943623324406808771866866328604397243894741082722943272486336204957613716175131663225894331635066719814664807270960229784607905022413080884937956054675499678107671989917949046920179140865568802988204986108909140142297690159831749064629295688814448919095429134982331319827470127384394561932414014617049809970277341272654100417277776828006071836705332674420536634558445923360638316379134212757776089584924159566870944182092789161467833311856632115827137772543613647484909979750437888540744171271177446326938323409898513845887174975505275093136553938964106354336324147663618935937271506946571176210061759111170804289509057955042956493180410565853611065785391457442314000975640699552385678504149974062392683934775152819295478609974514000157998914025794879819801455831258065364448030620496397195829555178000460510041643491361301628814109595144237078348909373005743991704102777305156941821427413373474178984975605937781129033590422573592826861596123490470747682977656049004607022439511530970830012591019292315637154353171770274222224906952544700226744439545514255839124876414203347556602817532080453753066225655567805036693009862499077295854890574251196135685083609862270958209859173999610263409734223665143609913675890934321189976467266730389991685002670567011543080461192572307629915734898995862873939724073221419034451128279966282699300328054752564743978046965280681960174699065586803936548182188130661394870809462505246184956124357085316472172296708793365256985447601815043251344867758375696321044641537026321552970137974429926192481762169652140343643681925578882858284604791526616906406987344102414850850577829617730894177193120777612512003295211068550860121509782760972390475965240700665418996777684428172233840975070589556020606700109959404018526248310236178030632023963694253127508631555252522925970041825008297414147419889228734100361872674599530706690385169934238350993337605503430489284299584155780219246122442438567319765098669388118277449165309826101321889704154568135872502061169293533386469719374344668511037877375729960347731215000045872797970838456198204530752467320888137513429818884362550398203178607997406942039035277134534975549334418608275694503273454989176469723687926745868064662123064891316160857891172095237541957995204280282874718604049632899644451572579278025353749773155848518289442661881305671462090638566378414212607654029112210411965178237385050393300600184009971590092907891397349534910024053544259115073800373125051993834181327471334667635400920515918431423568816956961148991242865301418341144193898497587942770002994459649817312619701134681535421064320432509304218293736379178465873640950353356540602001050599486358356730109237305464516189786043793740031996659612598897523349007314083860928987485747378612962909109650340485510119124944315078246146351457763037171903247190877872222142889738035723581597454228350098562038752100364210833486397066453858465374897281865303459103411611420961638203539204555723534235978909491304781673559491026726760970091721382518464377459359952563403627093907943901841736860425877488827309986603924544787997887177388106794429729470336248056512100635779074951476893117385580586491318467317112674738643018059143330601801823937466553000142535314785423539399049595348392301422273967009150773869505043733755255240472449071478448259248635523900575908735362397851637113092163131580854969929152287681244073430691211044477058733020994186687914328610674862057694679107010009510420510197199675746665338088452715371147296052702936517548402620890997802435563462484018943564916689215673016006209453043726007107987155880242721214432486738045247160878753058284880607496574470264981753805218690218996396536101028585125702999464622455843624419425269365256226103633594925896337363023601264938890208451944683122989353607370314254077656494974423378753497246150564802833202692406058661867172314725434817446004194961794721995405303959282612858689896508179668099792288504945560872535819827553324204473856395327542475660831047997570097862152862248741963661514844718497900072545205901089108414080188615251907450832684619435029414739404230434667951327025576219213409169072474439940686969540252532246881568461461838241846866888263245803077099238778926946906692757281641599555115348810268182692616118418305689900412095746987705702746207246448737713592015131302892166440345121494863115210541046960900395305590120019153762863749911549139457838558218108705714028548594157834603414423539011980079356516570778929480224814378404865146517979482701088416367077386145211683613612949055332878687540042650492790229823829977384500223826670045784511061585519962325495718205827245155231952970798881832781509692612844704477810545539736596739423283846453590294223114381592154644725003973475454343506278204090170248877723802274616580743011868884373115316146813805364135927396559044410710147676735620961166685634710331055506705702240399872730064450994796061271209927989979752065011260824341497353970967349713035774028886055767655508276418138068019024207569097476449909418906484654107989566453174047597270128546427924938463721119990206746483623539661993472862546632088527635526426255249648288692400327998515637468831472810614958211414819934670172951470729685950856894858889894590482149350569435676457237605883792332109729767241373736798672314911326027900009360382252002963769123008584808313951402519500140851618755293258163105131797203262444219525951427354156728181117373622326932971901036343485250066629312076242678829723060650725316211028466831658598099569626549175126879449783713044173976819716671966493917415201148073066771504009410249834130839644149647567810618239190394957241771354563708944299349837438792997096837204778165751410973499687722633926365169221068070226662081630882612813187918367016449793986209657064323756184139365132787414127329915729310295968893570754211584693176527545118968961286507281974569261908987545413474169299189897635169147543386427401904660309210307029056672119394434693733288377824269444712342506265396285351968450638695416600760840029339721638882688310107038206066143189582949227002177271133840346968803530906938576088932582355298799188245390292330236399378036867626861266862731060340662209994004034899391302423973462923323839903382078252213714302418677337039423847417833008141699765260826703613346889238599284851113963028650559821352081186533121540608055770277149085991165039946289342733967748603744952356641120300105762746435834225538781281598642132675784030759612929362457383196296443494113242547673623114187322967570580088844715875075849110497971209832338021070225159000430757035313225165435029594995943611178175216038098510524155280392867556519744665542142777825227923437630417960727445725844487549212755082543137541523076248733050721744899804148788689559465897901000196153511630717685966249773603715179426536627361716749344661780157236996810482914746905821788188664612566046938371119900476994623504052787633205336625278367492939470694520733527624277273128056400610516925946150946462322122767928751273268364133523738430245666853963135979241212294134378725467635187523965926567736477338656706305590207827224311995736445995602517593439903602430074216083237517818635614276982840160538873536794074869430074899584551406363776723927183635144024582488720684144970933889798426879859218870505133104622103945227281912148513481661344471291278835346871471302561995814696457653497643277623984863532496237685257897119528323464347459984463144920507129940603165889415154986872730888650404347185591641295538056616216480879376850469880910672284880897790599694760043037861028796223830075922864095507746136107316022344937847312432903153135058931457078711529722773684073015132391958866741355242575273676172750019876053149310768521465915690069875845614778597062868640421933522069632737387199404736442914935746497422639817092085124880044827227383566563754552887237706803702818165906253176427468734599324909852904078874479018245123828314385943662571839614990246523660818735753787739710069255476743815193010847236793634002742760857639264491790827943106360513100731528981452984130813496309141621023637136251253913477694819780314031354307036773208976062399695153585387780449593368766435737345787151415709582243910199588088925949061386731268686008738591061501790321920208755127522487223556796774006637243318238014589012875434385428932311812392111329118503694636070967805588065581188518806498588102239638544787767641975397871097003687669130965087713080969574994896276702155650131407103954657766734833063878259158226283994709732769959851136259147442047274715954830583000823115747525946679273791597939338225960163845760143077977708150893679358645720406422193752388026410828049201598930849735148975814653143607564366975707458772474870451895855667248202115016506036441685895715747632455262069344145344553988363792645596370540022506286319804616675439247325476386316163199607352890881010791286103275484476898704248307580645969156250659942713720094004200022524280305338239553434740521034971941774300730757235923194006949029821180306209472227437415747265057024405068159051307284142105452718340697313258153461576775660854961825802522177697815195886176126670751442479179249546554823169817560962686176845640277138071135946983636602500333008934146827853622349912516566679768595687741019016580546503990671252309618888570168933247248308192850404513547834627503634121899531222500530367856003276505964457790725468171712966502488048662083487550102373396905700493513058566462808449258147259771225221983682425173712348051040375668090225178409012424639237040491154032902863793007109102533678168501363754007497475545323625314360567107720358148932829593730109753843037463297691023361378569216586076282312744167223432909278307319183035519839823017076097222216308994717934538092176423975234121335867318850161724286897175407673132043628972360055860254997344356871786646047177085797885863608139995321760869280296823763516371985077645505744772922853543872001475344137930620752751214118077486739704745741553601523856510464731878325972119061132698165140569187826447584208919216848027788501043258822325836550321866540766964889777075729576869756770700833932115114915181701339279037347851097318528285110083976802510248293303228877628401756959725116342303100489423229313076064712391437296393286511623881379668285173155103793155824293759108931786062532131425615897670232354415369444916643047888695764260614532659595617172318348716997053063161341249791328218981917551070138899452650972275148330671704105199538360832938539852426835414056891443563844176895089783991026152477034043476402960616330750698503098369881405185521742220819509755320052747272384025312899403211546611299472151882766628318078265765479876272807948355868081767463829871946417285729169951061721410067073878949383311366665741897870356282034013957978726885714219352650654124991690165540680794176326899177238216710192036039872921724490916653247114709117909531981335173995373113493658661264093897033862823958760483395848414549668000605406901543388475184249556164966227551266710644647676114980948285498647602441641840330663714175094639258723343313245386313975764164588281902673561833116471683499671807632770836852672138344939702725062773564822240687887835950932290395749575122638254784044853583755067257828757956856873327861859346595007976346438029265828498981756997730970992179025439669772428361745407338805051172098519776644271964535857744181050745818925620625550178031968124906810934197554872465157880412511888114297407819580929238815615106981159757229614305248193941974767461542219340689009842849610288564727212363640880335151627304369875421588169951373828764657452976566988168067969689699886945956405391994847568032970340131316254966265040942258515292910797677901934170852449948915286012766248094553958203614441919549817553352790850712458614582480002171426685522894968815363703773025868126789891847048620606411589714400654164783558269112749106765628643799399235463609135924816630895573891398601100924314254520987769488384669290492369608406194763289030867134472876627180550938725650325397319423552874527400556934164803370297532671349229917615884391196546167512868030064148247759851752563884133040527320808680421460880530152735519178319216721850999985231427926697523633722119698114806005345576526713378004639460625082033597938395260276714245489822144020796288544479182984102489287259944436029181044505530070402220018924690953182596668110797224242741699490386261484093902355451908259665923766295072115189165194627993527887007105577956832035183199263454243406419190752974813197879322725365003388609480073559777771115134028734170283024676976729470654587020169031317783321819784509393656413786526873951712397601619725542713442294919172077114391155326891912975526376242427226856584713560782938324615702873602110954969651181239079799308448130993925689450641978715549891135216622333441873927111604754631531016685442730930003822927667244571834696981548188508604492864272745011928998257571092931079624005410979839548124950268793251785285764651826701682399600882991846842097580249001591269380894081348143635831546693133608029616650286634997392837996766621866422295958963147592117764085153441033421617320416522683766217672611306768720873637304970769519491398301303470375587978200638260926577556311216063212917616864690040341961273938147664717035732064222652117927579042024080477473437782865460091706272154227445334069249499076742634715383622786593918063487751827366992430101965011247872322227923436050213704039269985392547100029219581317348660444499577512565336699578226604443842772262347348217258519921192922433728341932467359981032081228153078428655638133398176790991771337305181989408367907250959706532231703911361371917729212186270670970971072131100336196481898604996600668110513191229861325714126182542336790074378786418948395805834802979144219253764281696273907845673710653529341229680697887805296782090083997140705176737885816403415449500624651651968589264824551811486333358477725623105903899122588326137888978404833636082201996060032332259127798707606167066794140729308789456072368434855614634888070824013501934437322128830824106364568563024742599813820210451097235207379147184182696534909313745292531912127979404486441204444999943124498121275657962405359578133364816689197059418645482496819038413953522398008165926482156277647902641102391389681856956198602221010366314214440454258604251851922551967038381841670421130802279746408841886860596418888155395573168609931831792176423668998043546859922514043298157110065625823590756993461285769517405996767323331673224811611290959002472197968822021001172205980513880792618078011277432971764052112780651985588781793056109148697873190011656830351286205640245757006202296746939683931034825559804276316569008192424101172864834436010313619731389166700084295269593556757699356297943639047402710213954031434427535759783954575210887253894395301734961923092859124789945026996727380470775503786926716891227296678584257516372748755056323781617033605380148529732630348081079196507786978108407811224300879839692050410582313529483327282523837752336145336722310918184789615049014408856530501236259982879265666008115788271651409494308808662489230612966705886083239731592123548265591932823179421390597513814083759051159610535915372049521174289107121792858230269276397877454528110018552083472277132358639652507616445765674666074674760284042946551813090863449974691536550645847480760987401176712844195979421750706735943545285462625777699906763826742656682716901368972771730314696405516656278579482011769700030950861226184357095021207133284532159897657326055509511973094931412780073521834640807995060758715599181225321429655296900432103308752726166232397900197997486053660303758943930191748054609005511588611864032744674350808410813620221426842557005834104359503828995909640897654262743764556356556962013642201021681597563082240159335682257726988026738337653141048589584816909545805379202475580142608678265241393216323424770440830630971094067570308491150877216307525234376291519588466712007041846793702710793269619410041619057438801406018412766991764377236325094229175492221539454834549261730120966169598222556151638254566113970197263430100944497326280241945235097859753173461755836844399623307972138709062801104257014689211758600343731026307547977647334140963430677969960226380829287761810413060876474272907538534834573057208587117108137593925878168047004278189209774583195247875995928198778049643325908749823289576402552142054604837403490241610150452260657835307266389158790326517945642513881139641367055823854893322131026080492061324470086621302095475766233342512453822477886879882358364354480334241810396904876112345155309312986036782516414056752883322140911434252688084238134118924161820061303603797475047141364786126308291345911689861314528441014980534170441492975891143802926572000454188461184722492899114349637936538824086110991277962885526114167351530880902294968430521153568173184485574299699262421284474733148276201174139239988747004844036094571943729300196827283195509703822673075319525312380804432786881504013951580071034526206223261437621962789644906712512425061005647139031048840596617783545284980656869776367771205443546998542617963654037354808305279935132734160598151517033423790670010455086816114322861060858089127252438453476820271727267053672450186142661382003521353737183340678924699819832656101187182692186855315023477775097141338916910005997455766812893981194627894729366541495614869305126176990153218348729527566876454802909266498089416238441027136328433434355661771290108390370672791989747749065421418623461249207338400527869795614200178328995206692187247018659659386275920927388357470476023954816102731159674946327554723191794540134760590245989794076243216416515116119752929994393382658978024470270727215627904269299676157512801669653529594453885639140365212913720851896318676127050525998972398426140461558936071194349240801483111660768390553734615961500550776069051480544175925620068212188612599218692526505028283133633905982262546840855206688005093903659308797588413787937991572598473566402467136899723635588087282790153918555992532383479434729289386821186275231412381764317535159885569217559888042911569061242826521856051882203067307713035692768819700764444086010636560058592617679836698991666817583279603632237949307007360269413824642689792374128098153901980574296982614961932512087968154575044889091044882993629480939586812163244093765827590885164873351900670572493979349687276493271335584389984966170933134470726075263032641806567732700756731685471271872107405263760464585351498210521776164687880564083382178773404554881430014790528479027328562827125180748581940158813719241079025382567218635736306059233542790786801208000476581696493331776756351532973290017207334069684917340815251830924440393987570380408315434573351179677452416012479262707887411321626106908788640169749148190716390736799650848188063348674403602516680471643036040942310570598310755784938022160371191494014087073543887610350775785237294224172220606060258800599155185720432304483304144976409817902791424247990600197422755233780032107089399344807346967373468119274497602182817736631863141974838591797232066546374805371645668207806285013843495228346076907000742557337864580302512089810066091695208059966118333883493130631885657892272149588365324591458061614980286316962867619704954921427284400803418112243991868119414696614686902958697908612084582442258180559736697445177840159934053994687589881148468772529597912930395231903102884407798326612904046621140705348895635900189554304773872965189647726643279581835735419380560015902569001218222085922589141880122509810726017125209386231751073553667259187108610298635264989225925093294974259147875099173590726571962514406577369603427003007205040979831949955929195545167541952038193644703915770514168709003847921131553521383624044086845026260906045284799754890115964118216302170375398089083629433859772300058844256536262774044564872648387232938725730211294216537335590355595311215867548831481564614347519258956597819764559207741868894502496107552398926134274505718776696761477955229780623682926286791341263691404158198466089650384025086709472946245950417730935894705402973156175909864779616678748083728348323102790946400858309890166868905875943412344538162784318889473891219806461231118675473035923588128540140178337677017755817903314824326047242219579977948793140259702156800659749099148702440597111766217710154350761863071369606438449529944716331421370636172909920863897304705899332762123948099752497699235236620335560390110898405547984753659296004075505748061660612241086732474161076061290751014403403958122686244809565487447160126516485881206806904274617573045960871478390318933097303750511030067050116400499980276813283631335777384097334243259872580589240465344271810767419786180978887374401192186914083354374786585254294549117133335772023760712324475826756202986248387573994021794873306561230679789571655010784580808802415844120081788089713500751566434371706523020610798575302347395082614062715927099386349964829466133926411811091188738125050568437893388197408641829253124995665367086715686709776193397104936947495363152531125999617476336677107304377661327803048947136145137609779241638551224562436772085458430977508763313780313023033301869955900030075975429561319253156231558798408272841271491429025608377821532480340154741543548025707361253065626934708436853855312174812785125472811274944426964298178927521909330015817365622908296306880138212255366794518883059975254944981205156836026202683906372029640394007187026064781776662188392111094351060482181933441758461385892788328078623737019139226700791180696394747809814469720923416430770975555579269083207898788287982133668769424814400758523058751647321870200622955894661234349200518638612422625591784208080048534635498036642067228591840607497763823669001678045761343302447244391778775097437469904647646207151395130786527551417126939455010456456975175726624995713096514235849993303166165869755390376950583007362368217519454724108236969422907899086999129764199169659524279338508449238567464963674605528137453828848287368028057107431406814618984924703709919736425782557682169674703739189491296445775481019530259757582115726455971849831644415895617157138891915674548345110626377858774908563120554134427270185347037611818002859721105556830219196139429626769403411629525964367487149713733909134899162605930151983000441707218561649284737357330011777131662707798876838437926401523424990178827652664239516208026262296107338581710863031550085989567706549307193612648587859428173496537765289860967790813298287844526520193374989291593655632951593012838328132245511623621075896960351935487054320189147937956437636804150373864769659012517238477020766332415554825220451446831837471767491112541476385467817825549317845961367653947289202118877847412316215208215159495706705541877620181615876810120327331855745880065375564314064499005452141167384868662738713415141839247204753407234487306810281426193431167360934509943990431996122699855433840998850943524239108983911991654437182064471844404965559469692678284888289686370787124615746904065117933104036145515041996966216326227819205630951523991633468375804791764471541969921452270925528630950788776907069202207924337389633842363431038738272150458825594399981160841961094237868865705529859119204876124635758549163988210496761676938512556781859088116101964768539258493118967338697419799377207208156349222952215217620807171142554191137892859628811713406089487700389778219115660237925160667405869269479109739349226501614558233851846840924736074859398340895319076773407202839529867193966025142801876516785143200318215597335469886624376836330937022555861501594671914434278912198061863863756732927959037532788562945416647081478767762938677237418184632598695801642520656812167420082594211076152495094385261773729292323469346238857485027028583043480973918920653085365188519171549201521433057136656951079106884967236656597436364420533950049551594914969974694632367390476894588723929085057960530202293147821742906157701271718207683706624133083184960489602653012656400578321857393415541825953910273955712492699814605630057914664434847840874396380090007195034573412331106048744679970572833969901453762313802922321295708747237400643230257152727219865006430428335373638737757457710366849980605860040416503787597748300168670775178240735980061455784384733234357827867533252717604871710487969519107996472536526086937588324556492749429381484786193199692171922619903245860389429882744052580045986783726589433985432200955291953973480634853770611342673701380452716257296927910136611096719158895217200095918133780680894683259462052860678088358230473700204659303419548936021238428513741956379918786005045986932208534559123510031290361712718077414368763105605109700084643240514852209294032803353283724183265556898430702593761337501280785935618284913457831496729339248759055648661373041335749384855754060693445925535853466483498020408213558900600832071733202485787412341665892071747817897896066944593952551016319046034285020750062525658272164604044787804837586138854782310500320393628130700847889525951605573921170527178910877926290136394810607503803344397260413749862045636994001044804343026198005382061095891708175766437263356242154513418799539696546805469235815370887764983522810664229151613438498047035468694895401178313683050178416041315421487340258163982617502914251576250311205925151767457241752728327179528909880238836398762170751747863541410137316244289054502182135493539497732107749063262656813793078984182927563085014099414474417261519049474555497804640118980562648783165107067386413119927807136810818753323476911317351270965668794751340303443160735798285123950503179405269501289859576380655032508841125396119269468675074984823130023510848976342161872906248394951135016768286652040538745032526945237888477817710263238375044722023299335238804836813080670506106223942607359976573184165842720420995636196348578896544412399812639090724186741544329784145826013772803969907205086866302621120908976042173398145344138322776017058966174365943742414743137237374356123479574145607674379032737688485187170629181475211511796252517200282636475337245248685270688345695865173374740345224912895587022248574491536336377525721479136639393097028262152170241904205411774251058118226513752198513963119601632528142527957650299929447932532620771160774675146627828697776145503092450858934722836835406553332443838373091141555643033969284008000688791369558944981230847577479302711858406283260148155347255553820535914164637515442889861310231463162616155622589060076115713985185879065478716570581089120151254930662634416021126861457654856645418754083683931892323173500275724609517446628600509837610852051293592621203980671760992939011523708960210208321078500085344540820891518648445583923267288883708925018678630616195686755014034538493014349751717305598406682810003674299590680012795845658925918608082362181292418776066557618690980443103631372321938542767481922563106366420672959114854720299916964402306482021392030103203602097001506691769545100893513443646018680877283655446419272592023470353073077492337274520683776080824299006702211707075979888605036645605469412804594169432521512060239115490587805152177750593402466426779108589482482527065342441686359609816714664046464231454877749256136333788929249719954310608209321614758464486753160885273292654171474688784338722767299672424894260444146820000020858666610252543182179621294079505162965297399900073029943420714846928636332067773661386572847567773032354761161817693924714222058769505286430480304290977191573212820532345047780633409155331026704503778342210347576537386340040978088054690726041122167836698293614037201567100207300455123645381556330816521678576779290279884094856589861619576105492330056495696120029465501996766765832186438157044413037079243852300753892831122894552166668843999666294659397558979203743292177016610535477869812169737127431102996198358838747600377886410752704990747946983182524979641411032573696701596310963718372947108712530975552581343923303179929150841959770170518065563238917379093402284358719412987345428082561911564265480480864910513654112360649629456770145692198979616136359860213080843421476295148908755756900548888519099359938081221561344458875444811155702145183126325250979298243149616931325730363524642622544871394101411886554923830211895368644776994825131636255304884900108739902889440687646551822235036880575823795091385284854479087175522313742011688397592880148692857381525815837127181678516563362514659150789712663569743456686039218858885195722271498068856512435411052337359452125241843317335739759451254617871334458040174627951614876837931107617635491539305293463410946303560052998220122660603541697244800913253680840195994829465847709372408307591436039814128568979662294536166466464837819782859416645488550561033989443130648748503686930240807605496401061674186814772485862944794353528548399369021519499866021764796349332266504856994521286525784563716234581904021601340550807199293897266871541576689949092316279200218838613151518716487845066818221311094310726158977811368913071891612718721455769602132766063568995510855487973643713923818380000930297911130685720720982879415782198991050845735854454034492308464214934941326312257899510177307344012391488992197054072641721583733612431651268764086992077654126548477541180857317472149153091840681388139854544603869709934982681100732650717270157580398064936990967652919369193899060009916016569392883174836358036668854579028376348673118408423770068720101919927951453957861903701480370916926629893657450070379051958421236630825058602811523953199238140517328759372275854975023467946830083847785717688617594254641520003322145796989719193697924942702045432314887376313160303968145573070142293194467144791745749484634242914468827854642885181276198138641438982741748508143272747199640770181824742278191206047963124322783833108681717266958960751869232283865327743666733945956295933667900353986012368977185712473548420909476895371014400049308935509299580095082755347826753354173591765671201347151942424217328625126943477590807059595831457439788410940777177288912136694912034957592049289840972370865037566203580512732226091638034027565182734765156850521063128753039806969765792458698194630679067305936151828927108001028829782506256449574484989411751863029635177757423781799036613224689623612885472816912183819975681948528692285832454621538246435853116131120912133715865528574881694356157326997926043984432450832696402329845133353999071036640772974371195268927755687977250529361994473156544705547942728919298836005166916252761908944924093716599800365094848204615814409300024964818639531054900569346842644615735907750176411123448225493457205619617400356686263928372103568909538638968746010153935848621401582072849200686251236537820588126939804322369383475034470425063060783505856750438157805411033462672440981057306162744173710056301876278150930515187862486099664031815945539727288400551108604397880909872847164919802257574908934316118001945631097872247744915021232490515171471062607304839809929551915832998179590963015244709837713122667865047458765998210885837693142310693454727755529351296046313309607696537050118331394968170592449515106332573080943778523013266079179479870528687535605928368102942749306988298895413017104709289928236564092422187829288077090981318011872875783187587269037795208498177475251334578976476172467999961698480634552664618166119658098635396069118834380063022202388144633447314385598383019579969406332641047405500571531376606961955176398645929342652278597344060456981480405883929511418419257519088485024181567569464703418064937226592326900149887181098594406896399759210434742053495735587747220263882851159158219058657070821516818608463381538518274815473225173575024089485417796882112375131658386906800216309383091666016662248854394618032297033090988854210729514226531262426780766559470599789047035616510584042435905840708209187411463992675672833100339018889988021567283332025112792330779627520249572257468350325728994036516123874883438122818224771771488137956510729849776522695369138860593817611112642677817715972706672036858367261343092122105368440979745444918643169942496436502588257063632341551330917126274309922054757003670383758696747783102587456287865803169704818674259483476709156030394471965013752113636331802678032362540557904549644206528386324431079873193241815076943917972092927049695720910714370270924126540374092555336358714535879503118058882845079170619588180900509149869913772607943684312372037231240839049261870057488774933385508304415275377936271281437586929873315831121452197612731009378436899127342755858919534951981644356206452586228572119342028709103629094146171521748910995123514852742372077876992819518864775931441936759216236276560409690736519670094633768004772031712499515665410105988053625615233263970209596971263445335247966316012773084231892550864515482997971643503242182004535389989790180936112113616974738157693546849654814124977542422783696029442544881858454622960867673352599536885449275021077143157735072930345362356511932213362305742105602952634875633407530750870376410614521303652745544243646207484889623951784254561435697628622780078619247821982165115333139169537399093210529571776299287884950957506584102966325637170664272182965670446058890266074771154957398915073375308930250616662535302318796394478965950857959211946146523096627100115707627258189958808484477380005535828974824831480879766377018249359964707554491689412529115139506609821198793038459177335897332010679051177363994947444082957614532653836752015431335630005993132260262559231100069081651793668519163403838667637702203883394646701247619504285572057055514823570218900282803384494475285182860024614791555666734759967303616287424421264632446586697494995347199113849741683274086670816426672071767521503114980226144112242107656197512812654341374839800593529991964024472404559275308085910986175919276500628938463003876609322517837283236296034946518213398346084794730310249105989628530190770018044170513445588854817915210078365670828644615843158696142520404408352502162020169206799060716877529426563645177812958768809629972134108874018373660065358341618717054041319673876170126151701345999193249166330607990810288572088533868524082578940930390200397145948111787586772698919974895845713300448305327967840258013910169593892408072656281819717260495526283293189080738348139634837709281013893536690837273991336368216789840973173330690745115367641996396043190778400963934543487942300788074896118107770888137286729306806233086232588117622539699504499576752186534360556690043372356192412867607631690063591055287061550997487771243157184077871479444507214351968841602034991992260768519548778834840868236523475692424920191500748748293498077904432493771959251728753775089058195728290207680776659401251915393734216819236890753721660298088094962817577224702971628927470102616618284378692873775777268053766996298462951167771156526139826284319644056372666715768131371044959312672906762676069912304343114550854371581734306525089311579352462940503538073348423556605532856138731318673086006241777805259909955776040749992214226496981341458622305561478320217068828220178200426295347881619815999003631032639597451765046483315323900604546399970035663218358031762400192646347583571195963352108816383124173809394015145006529706615435446517194659355668257501746446481263337353185418342553164448912772738669797884035831237435424810781158678458041328636765512351178866665187541174992550496831152625521764724511935763182599880724322702386934114375078583631120898049711150042351588531181247206216804784319781789928221374500798370435085240370095421793660412508235597374681158644062273344007977697625907086758144867564173088225807827551436660754262266266149773981990713035948610131890936670342856559682878515035713479600321701156103155672377796666193419274318319158134816395520047560476009707216632113517649412367131475504607409184211760825133881293468311871728780733516314098115643940977334191633157751936962114757944999206103123258973671574650396626438712536315101848385405286937049828986042223104588759762202109678739760623098842234947428622940044815039902176801886144415675455075667136307505051398718360053861067712493567891718167577500604419694443040674431601153650077654639364555110678582716377522901428400752178626266337311816173367373105918193096559378093948788091253396817216538262519332079673898114953958489962675512543120971734141218602424995392171858882041016888716387864886809463965679609830336513767289264231992848751833440120749699348686554786513675025761365242575668575332905251370186101921789152059332654153946920042316881134816604587228563223777999563566437883750044232060882723538634658501276546911368550794240099471070099677803694570043640635363660362080297247903292333760976679489231672604083795285286537653490473180078132255766460955015532593420308743601946421416534199078038784466006009239333945337785141767136910968426200189388915336813661425240371549985340337621437310829031865312517160042966175221661551163305676185514635866045033714533166220596412060236892320642286864193086806745101785653608893936351268398376922491785913980793576433477995335119026920858608121174214301982687488770612564657911659239513140401780932959329542193826190121862139553989076114298962033210763571765710312764442172120950072115677423598558431845124111781475098766568325591479767761990462681599555975596581260271618047910367596251095085887655870054934819359547077294132044093733866420784217155286884955454013893664523105458591870156074474497599482087563501495646260426820034952774499605460515491618969638979204148201790917330402432985894378696200791694324561716080469247820965323499952308196265865351165817337601830749486363308000830914413337808928170477270200192504020891294750687218972366817515959888178486452172221295362883062363505773167138662822130853990826796181404362604696085632409711933044640287006648822779945939791834494073349671075641056347918550399635634176024736526429227205537612973681284139585953277601960906555591329125537239791126514233595635879542570638415956280526439475387059888071596130460716516161062852518978433901576488887977675308234141253248639855193869295017713072769275540606485092531750841141021320955719157687717683339076535898086924254424400334333855043709995374560191829841349960171642762571353447733700815695195044685048497277148425365957482879313269439056499794375410873471863517074352524807429249243115428180101861968870340810757577207840135216049377919966611090157916133375749716883014682608777014929903562092826353862416483032778397015578391901149895687743234560858313563741160590273614519858305222477132997380804108801363130518999959957389631215681680626696188718072729223926775268795305684155798595203765078093694125049673709533388726864425613441101975793675970013099504868454557194390548562103157504509063190539709021405989109772207404849274720495655273485331977222626995026904975940485507065990235474515819407193253661256840396220472687556601085049353487120379865140710897150520448489430232359000948420709636998776530550768867847842718554142949113481115453402500610138080627612874079184185477247121381222760011697868198678692171912523155220639988878125852888796628051700947336284799028207779116459653245613652854509073040704122190635228766065675146764808087679947525516285098004089036288336466285454400698084997043245253170928255297737070283676599086439394509813556872335980384441406461514430176422154611803633412966640420932526448545752021077762680821192708828979316004818137533113958408411796991051901982882769129857294739257848947327441164791155109960203948780857674539463565213574432573536888074457239168613356900518289055759208132835239027124126636715225661815059183932118709928664201353672295587550029617123253153976052199656928219496689153483412988150266786621751708141356630000271543197188555622711076915596756092957929275557092889817744050173144723763367976266851377281111834130207588397952463793227958928835670193693283403701010409449681018820919162789428169780207912502426352101790703113623832418521599557750301948638716731261645200597463936891368118316343984863009030546155081653802075794978589559814987526378670427686593562561593231035885619800753526598167361221955519605072142660526787008451699391785448717990821495431471380167264237157356319076960173272192721514023232819776412729365090520931116085049084690921464267046492730107809203897481909097500981809345976939240329856911202194795736051649367174978805487888093325201999134128686781801153766799349062832092983016494666685912160273255875890620489767144195427909619420871151702130314425278883397777266925950368468250018941607222338619427603808286992581940420942870547948904819595058201162208640251370782900778322885938410390494283727735584040761586965627589894202222073558818844279536081127298201133083246141341738654185673137260843328837253314239396062074349210422287081639811130879347628198674984218057617998049459810612616552256995142649074097839246539219209709968800331744252224542988164424673407589000782112483924312034389216714805641395760956604916745901624541359167989009242897785597529834478476881931614825161822684446928827135208875666708947687066022944760183435949929546450276632900078989785739927345136118011766347792279387743862769527248743573534524681138440229971575703166004736583296799156107573754841270990857499048788272119333978381599321436398168715347575184167210518045167088126953861454493628204219425757118548776246658853830791916700067497156668172213019470459116537136233392484446485977203103107732442494696996487530626651674784520524505836628358529882689953942199025551494947926970940972190484754826528820059028945246124085020236996533665153932427426457113412867747324113808885775945424897140501799500592013118500449347381001188597769932029645156148880551710920128506200419305097737252194614792519377172875342911892973034989120832374145607082033021413566010752366743963650126009992050387594846958681833612311061562400005657549549558965630920491172564483693447539681740375828019598553681225070110717882110817882355257333125423281710927948037877009659517710003293248795998848881697425537682176530144742307255518731062977287927081727379260008736267466646808524417114093762566613508187712114911271039786007978103673695994788819180774055136942068923415298052466959436125944920923628805146327092506641166635732527751530053567836063185604638979396319683947115126597142634052413159739162653509415590230214584591512434440789425495347308814428171331941626388737211744138538311079659840311232820441164734321942193301531237309369001286457244832039985202149467188539876134354733221577566985591664647193029705205657265403531951773673256443111412609097454475045154792388562120573989990293238902607958616143964662406361086596580418130556260731252328516037690822849872593847215057082990480996529261726432015617809003973265625471490883644476574265187513951785521417450068617147153990470231692793872656517628634197367381979884235752470424486533591416791755038031442767778660170008728066991601817988588318391342602611256728464172982372804399404839864399349601163518513777758827174070843875921051760604168451742132626865168842716591310501149161447063084645160935413875231863995049495234668601843196610348206677537911911312094881545353350591290703579558951200428207388289013213280103271885326322885306483125069403669972199085743501343727913212400059049838499879308852724849488204210283994978550855678638015805350326901044332622970926023614886701829091636725487666395770267593979601956606074728176820428371730031023646252168778661517190261555519467093730128671581413466515955667930236312482289623889639410793577359346577362304670869875626851916222335574096235384628080163246776101497667569169647725967265532373021778864970336418393109545122255421153634561642304917709324428273628383122662153780866386586836269276901614361412129772562273860180691978507955840414455809978866711711271105477852241635888942601454100560784189301574519338855298863319572219869238463750025735305269713239313332407945546118333030662954860646163185038002248161353680601062690091407550712583644507015530938753640456394604670970332084666891053910445444038046676731139761127451792583739630997260523668095867376931011723163994233691620413814388301592280785341438290770885303260611288271427409735373577668990902869978674950118974772329688816048654986286791070738990289200825072301712662303470844074792164978888089934050171986755638260312784887323955417826514604890728034792654245575428058286011551237838766784465983428302960643133300457483543791418278736897118410005902204806816486632911118102472145798152328308587116412476600864624721223665489056001213536704525167908772562225228053272966330851123268045992718564658364104160304705795082769909612645210011971838991606358773134262223510221151335056420391820459565846226399094191279464296710471963225505491202257988672819186078030895744289141182646260071223285807427395270067853984657542121566226285662789526976556789239006412485732836948182529462207044847687652765378301481866373685553061357077359529834872288242329732488219829544819576807817274811530750802698477432798552180716405682973831296218455796203681816918576409231175998792007962797462309795825102601282535863724697887148537734339361125644305531630688818669007804304998310015055347425215028365049098702112735425857657502958148434645137643207165920246758552876383705297240345194054736189218548793422425794826566223175583001026972413956942219273435045845263352073582145020059189047249849654116108967112963583383350240734958342245342538333695908922948446611549854846842019891129069022214790106423535470400510075573114420151281785415452719004023131879992499399401625544278935745810939443315908184471872989773290881278915443411306609024849072965828415450678848894652049030141974992290302803943560190060599577190110315893946244338398789196389609034763950472941729947737897322021986801322219005620934704292624244293355399730483894987866505438787631611917196601957783456998621682585645742767364465696629100033678149835786269718918356868068711402938272730280596873121131331520788163564057547467860338228505045519847774826339758982693247751793882955272810066009189466367872007060148274726246131392490577563104424597736798008407452552525540202356760928073370458220731809976894142751633748881496765115781007711783122673238962087455225658007830909955825148294719851598938875743862983516536109486644719965171621225430137367887106879653468329983844656865948625837958453075429951854077714269447304702043398898880867852813099398371070274547070038211377405689902406937405157654230678689904605963133554457538800884491480746169884311140265267503020980451162509482958388268270600770728605895189697739793300968365247819506649871388578649121890818735513996034603430966903377486508302869362374586313519260205569906932294897581505329363302191797851946741041950965736612595469581276317107276185043257175279704258673451115630041417222771212758735359720312283586454779383340415577898204961956081569233700918101779847378329449688346019178065336537865443639022220840360540010589235529410581803716199447408164361090760479192916253512214634821471884352926385039375368854542155966214065417507079675027402182800998669026263189471764185993714059158629468721988771892471132890055972283285816657460934982673514675881274361243960284957228133255133068136315728232666981161091839719018428165172937231615400677143939531030638194294200670490993140333685762008154613789733190544903644530757281010442496238830989395451943739365285731197912533529883367426421194278517423587824778710680433169797021836195747958116172451352350641538847680435575760179011257888639471124900772817180055687144052256520966308696102869181061591237787370033247570409059791412934684596468765595416542284372715211963487589668294937616328727605072001964127923950691877020748918808024821077400339935776528577500190635816577844384666372757569194726018741504560090260729558861986563628141915215350259654800499485136812703766053139751467715291027186206581419034839473039554609871748878855406918661905855723476427413749015116357720311340874504659501847475473118682823268104073165186034525302922070530767614896888861633900426677658401063846120339102946010925601128916432113594774650768491234786645996462257007920716564594369290898928552433549909527335386331871676602404631443000901845404656130939394483821129684611556103102477068164723208417849263178582004151607619211616392420997254800294555016798414798960783931778827621018546601923373202461558322607301122935111222819892078259472662209402813172451366196091679956743727818653877999577784841877987771158884641501990578253399314879400889031534311381394876604800703292981570272389830222947194684418617890222356683138016361349757871657573062344701827891605007699034595388387664243735677246531181332487106399138689249717167624094130780164862483551746247268042434307189185182662031202719558494287375252015515275247201873803230500426570893891763987052608506647973454766851847603265485778151517868518963151386994672136036855228071893257010125134802846186456620053456513546061988581011788827852885345780005933795627150926212344893321780379624324377023101538913589922693359942952375433328801776346351959731500785163359456752587026078896192713258529166331840033978831052238297934275760213735173672175550049235074137799779845681693598686160008642001357992302013653376700593856478283897585343985055511047422989825624401717959731473206892844766472355651888006198561173880175861457506865473184545623592835131965525976632062589868282697720163746287137554487250241376670716055601357157033833588133931658181397787541841584876148157658615274516454043470365547184469142236750156406868295882887058651873191085592845627389468207478748375017972922866874395923301380645546066222095884231471617758578628688266908666631126447058964764571867001551832523760074893825037518352593668063010135249406468205246640470578131795638001024221399785059631651529989680999165588927919634281668155376836904372715922061688135357549913481469285017425690839684891915198264021343100530141378317343323906823654277398794528469210900855272844641723410559264609297465317780214101515543801261896337289109913438108861947680475863432932079084677247459896678533018768432925708800892900518113245516287925915028360419749380145837029561148336520478674948355888148012736697575356049230047247511484688028514002236127974119482978544835582164724820832427929562049346355525004974720239907369742149533514567066123101089326625525967445121975370535422874302018423483811359008260908130962597946970848958894825652765165216593384820655912724648466510560245793581402684098461081574536534372796569354300575711668028809264669128057105132536727349285432815904103242153166839981055848139606997195346385196353981590170525845902931423731527466442277779629193974000737672147908014790993094915947599760455563006219824589601828019194429829057950380409790834923159193455438513401475986675692738012208517670264948157863875936196587784031428046181193225660674639720814389447987302678848990676087769974074953719217963614034610008447605448206218319551877548619923953928780118618275647767839569914315563109420792983540811646949869891754487375529535384938847224689582833848872595841355982074143503265511664087478446937451581521875466990815066397934704106673532567197016592838962370330806141831017579673998332118173428954892258856686871517579349248162843486309377511096815336325267661426247193102352579106702083388075981789643323356528673459529380883828149191548065809434859206565959780588959201495226044621284555925190241816379586517027956535708305557454882879257786987550304345012210440149216995172445169701930200180701956421529472910618258536815884087089926747741756046758208970330713883951190431124511133123414660054935460670131463419357972927259337315888909545080804235910620470075058808535814374548990131993425540439518163719064214637340160172510177138824829185828681065500649530258683484128829888291373411555386027049430137639179625213332252249252804155583346963947386472089509214717075431759446032214457424359993901785745541321173778878793052107369191244080330975590926727632373911557099406175326334595051055011516782477879505195666624727933398071542604226985912960998492846844384122064660557895631985546278443173695504040441503835939169644929376558406554669728904240785788046970464080563590972671762753942722435707763351940207678210523080228736892320823531897974364051887564821089325649981303585126464409695985183678598228122341689699324373437352413469715329064514255602210152657210940233690108481226550616450984339554905260016176791321565120185782173744888994374404125078844368321558690678294014423920502210474002959811567784137616627492165615846203782905750330707848507551988563030516491605418045843001978840769186582523589520530341690805813816249069323077703177960691425885745650329734958702065494000752798090552611949056495034324002869955203528861438672778256062857385340320376990998923959266608338625114641596280901385860279838103129381668372431079654001286500820832679751285818971554661270791617179562970415813889897867451523673692403521415744562097265927127325397125336220862522125169415640446149138463491990950631644527439821322680549380824688948247270946189298699429137261569411157697927256033439454783397294724204935443241122351466998044482336295840210214173633743093433212630852915425519358315997824937642043242664302350093121678970703262233035559939182825515903306746898047162058951896662834843194384608252526117280808694445402923810218093617917679751226799966065729957842191255039433170447338811368060927298667720423134360653811564679722312245106063864967197617633350282370712260103704935654053889043378730778864006570833922777135124047456917736669914797784847597494259301730363369628489056469658481485087221950247678140951333003827543459821755455841635379368093743716905163870809611263556290474207845764218375406735393847624641613324640770083359109301676106669677677675690550748189558708657475074931020145654234002719685360575100917552425795715591991866597970802948877992607634925322360344102501086369960339675173735905901569800416774935287009585425840704838618740413342453527380094920015056163549361111572654191396870512241458315572476168844489937313354971802244178149570736044470193332425692807575200071953685428658064548812221358574191553455965516072332434108759938216143524005217761485107865672006907096702098861861556878432005173525626920522621110631776736554692663308353669292030510066449300617001003984225742747795626849962002011498185916379759268352419450704401454436517381143966427049428992900368465407476469582953486843366124992483559873798229909801115770830447938531219173480546947359082856701174108676132002285440277197342662648123594109326513782663699388927198609210160830596301944445264630332280035870457088843080450200889145687275967040715711321222848667358492237056171497361152157304006364020305634627838127022613820464691502262293183452432518207243458124711208472521834524475792153135490260868147766806062852788929596417032755498725383181642748430970827590312894777985476990070483387367640090578008590462229060306298735371771442581070873493247619370458025857717271824387738079798033716687208751785669777318416999341531728326717438113468084589759095241488579448063499992992272315779065813385241147174365684583378884790469110054181509331301303888671592417735627229135879639268703246241386266528982481016058479047610921073529810232141540233864397030158445800989175140687836157411940355465308665699939005210307152756028764284485250458217290341604220638324762920263474036802034604153223370717612482360133962439328774557700957479477609199637643854840213304664569637880201269416642674855832942307610799914604583094545647115345797299546647443761556733288262516793326151772823016808672470891088137487380158009624131492225231577172501398833577647629220038502304967103351886926416895707950448245173088866369888961914315525105568138685130122002687126126121729653766896723789607044328381706723190524896638073792558110638440681602882370119533416615248556431919569020448575725082416213254072952802469655510517331342640400563524715082268105020785540969024250307946751534419077987493423033250388149715823634017400106207317729307447954882081505576035414497989405793608030467078704820635249136080522782490184054645081199433233277497026174962227016185021960485689270223904167020969293996988196312345200477375216988920904600109000146532368339708486578485647342267898749609282243907943426986260151934255758642273053123561574421571989715239749250301858813333068128688797476630599112869008286493261820969032572515700151380270105276586661483692222720484704456083893763189155475637900373330505924384957077620533307600305586862502503130730639331956053272983888550629129225357152273411290299271643590655429381325862145972051331079807394119001083375594676708021382806717842730791719958754818336998921593713297131922311668894438694988330701897590980465702853693657980050516242980077532049111597363511379258059204116666711038463368272109244290145812993296834022797397560649490143802374455357495697784614834247177179069654238031179039968328591655192879992505694411641480499558123951759360953479111393560665776170422543228888772818394904821945272692165206632855479472981530060832499745041651574358045087520628985848980692601558950636522733613592641970013715259052326208031374663717110475767634534727983039096887796393023815153636846644129504597061637921682536361431597521602319130798007366882405166899454426332469766053083173988084265243812169134591699313494774860415989246167252387319205996138152220409407702907384381836607470014765844635223397582691151424560753742153755130607818527032254133354484402155976156437979567746454603680466980648805848546165306290288095607470567842150359419741904092455979060388191322176435481395205099724839450989627041853217267014414941372249133190243684330511710010715900554236861816403773018597709979850959176387576995045431422640668462267471081801521381122927940593800133827696325938485324066306727853710913512737403837274402642623805708673286178317393907712514956549716446295819854478775663737289660392180135646683271308066561233261462533006761813356907714602350107368712674722776924070183630755245461756990473754956378463328234555044891991895668310118093542574790243261056649414427781421930440576390700982061120703863857556646989357737382914116546506670869576393429565055981221733466357332111389548163730056600749849366450884713530069052043301557986574598921638013332414840676802175438817615923054969457777343655368218854845939544009331982856670677095433636992694052791001979556914624037062676675200017509705142167833695636315850912098520032926778636517231941559365759518284822368359071771506499442413979222756068239211168816069041681018819461720249622044796405863309331308493691134214722681093998700355692825008087296974939368309899998458002271394475655481975598039265898778772934443631034652411663543210040414660537409996481596754498110604303831866958152854013833893575172096216826103568675889608155041557717219399771974274748196705238816655295114013701288522464979859644558651566840740260783030958063205498779933527074603305262382877756009579583161739079033224468688463843651591116886038010250719818099731392565628711150091008110150821059192692702117038041898238588012445482980169203976733446131801827211800630296542404454251964125318934852541420871507733350783579183669251997664196782374991808157665162937415286563795298417211498848759174199774399906541294952688332654732318229528530609569485683473971701556212319591336144076841992510286343252027096638685353247757480779684643304072555428159592806874703457910269373956749258622135545986737101169456929208992762885597936419656062349313487561245008075301374296253940825562269888729056492227953972921297528112751820013629487705339584551860025024932127411251094384769513211678866281583761391473521424759978702310053955959640684993716618149707306592246092500668326577198121429410033107943595830419879583400570467952538204422997397532422029653464699373150237198290500302737198944781823684664017879632693118637830158078843686191999961062222811629503447757447763955433440808722471675564696730272415701609860942898929482789757348747824011569062110234850681899950126921771752140327902319027124919431760661529419886151162099593936895680555091724011583218992395449202918066153685212279020637243307234683457335746562228631012635907001838930614094318118799640089131300623067833061878390936392895697271594241287609906758183975842960751780085775200490671860211801510130568876467754452595688896752548639192521147590576154607767956020135279543075597295989375734266736702922719148022969500822566081098664390252757532826283140091369497163818153246664231694200938435305972207148226571581984861475507115301634223823903915409471885774953145148141820278022740944167308207499461555256318030606270622673493542213103159898959455786114125686306711943489093720968514034081938223309698217309808271422988411122272764992556503206981745750335087186558339436024747783202714676919478938249018408286363741125276488217744220477664078836729583955039720905656198432125493143097347357536059095808927091860120193482056280752158287294539759963819527978886866167867227764179871547255054955319114168882382284069233932641943643267460092245530733649610962066188991588215189154410571943319898635092257090629969898437529318173299270201036714970046303910925315276851809645142098493230176391859961553819858687412222380738628139107325423113142122716342360292624914508074462800126497626336584613548381851104112282730736265675660794864281362651626686185769927594604696518948043730366725485856324042984224208889212350048303264628729400373031518121690590146627107723029605667438733923841680631478096793745009704636837045987621818822761080409549215785424486826335759914896142431794634922894036745866666079496347718298874883950251198791256837199308800950212222418684638046211873488180662278630979887286382572980849133489175277062162059063004678607307854881238238582740678396510617168961311481278038017924916722998236494303392886561311147693222455270849065103851225372070752197207712608920937667708494112778974410524136287324010671562118862294603735657005029005966223354861787879013934645868056799624342597836306777741003217272174709779005380294178387542050328626077034811032002286798202554081442715450031859619173985304800815243270444069445470543559674404359511465159737696045633897987944945271579545656478116972565230753215222188518535346718531787521656966752513752416056607841635356921582970505308810020957618778720755977225072037073155999279440537687887103595384623171964140930149551082934374470706102413723950959222333633936452721494624740517567663890431415744007963846480022585231736088918948812897085714667622531256383601706775240713021923036636086980177940505890346758103035985841854171668334842678347185366711762339293478506648173925113197040081018070813240760510128006986257469244648364800225453220720651668033107791308224365426017962617303711261242970869998605090932365888359546824397751842004916722785687675618627820093575107836856728425205132468460585522664738956290181007421362300958355986107183231554394525751984968714635644684799314988039308171227427713864315723434686785899900522012328496974666923967513265305767120024294742996306469310755545110017857428076765962759022900522207291660209021287720694619858123424372613431339073865173248009677329482712374796446738028511160719784943454749461419891882699402105446689024238834559237735024543002892037143169502367253317205734598911965296107167579063922321572967925500063389216930291899197761386319235077520623778455890418075733546439400098425122017752374944608862841737929664641380783434202273042271441066769860963296966325408346139852233572539073178164632519094069782499606900521475603050284687495726227477926194396588685963563077122000983327701234611683115219392314028252854320028803574271238472570426462311944324444289804166817402617948168246109308542087634691950782990035512017090111253652024477206271957697537761595526933342492292080639599877278691532927708276439574945165008495752217379669351130799408772362254725907015517917904722880912024674712709611368776015687299444388167212925848234332896507623255001112049079179129941987914978514224085465443862341610310525037839414337647115403719772244804639938777671292604688937081414876158506172330537220097415143715224773818192370930715203149516532175374670094874561581452645952609012734630387546288614347165727614791535484935864795161802052365226538498942064942168757623610970806306611205243508232870605869982124605422065606393831900221850023123610787044844691450147700891337538947434830326270119937523420091264278569517055899610828025040823080506478811849638631427042921864655238846499045907211327106002980792887878451104359738068489056942072631018008599517815807909778430491306293985324336549590941425144918367579554421659498057975492026051246385847268942728612247339819561849701708477247723772275393954743928693649046678388074521736741767915991459559824576177577944331898094159088619299155175303013769536518454579328966465278287321976673981657647644058854669446865852022393944315061203414194103381910275822757880451155785514977830346509111722731268562820516923683114756233714483655232542346734139304482327630131262423769935048459159693808124733004435091176474173782332654329338332685044125617925995165619003568439970704151729288153874440845342131466093441411983023749851868543419992739019421079883653527459370414627721334210521379540059827474215454566562502820665783008365126221034901143867390872284585683128264878091087890339354006339562959621256495307809366145158034849974865440448707966728067581955235439063486788864070070836148085195029334040553282746246967241522699953608343139961141114989899149345286970410843638070342390173591805322589989931322603994031207982499912647675709544701224671395736563769492727027495965018527155878112860568547215274879199133416415176498139095685700546528020317495207569991200311721800336673274027622225430533991888811436010032682362345716833747468822071977437975292193990402260443281299913274610510912254104222252343385639723643343467846875012492226965111513023734535918645960202612590946107257516067247305947704360767735996657879828845972713504302720123093826919127679986524123203691943089039992845863228639566175924148220429033881758634785190320467998490758432524677471749832353307169571444691135668162117909255454793481161877004459403728941620824823090906582992647157075591646648063743257074015484741038386262771844052792940205510521911738196152485444030982820786247709859020692365140058690639192524812096319607417472636150447409517046798976564757950717142698858522188877640309265166891025401461978046969966472647867232807298631575378540809104719226611261083739343915084353070209380596521881226829774954602541566504796298831805217372463673445721148297942644777460837764771392899834818445925434115956670253406233158881095682970019463581436012370153266571032532246089669770367391963587619551399100678594772602412604836550570692744957160389525915853053755505542271976308869132738048248793778948862454117340455378183661078912867604073513866960186405968276278316208360000815291594669044224164172804557722116369564558403745315574594932224329966122624192386172272922941996789310395279258857730652383136943410303292786073918663760352855888733859165557002773971352822138303335706769642237659355435400979752237620892307661740428313783863618618523532060036231098494603324524917144683686918860407421003908073575797582690396374274706071963955885670523301634197690750780278245411029244800939907383688258961594591045006138103704457920554831216758817412275764680472387113444620264196536285524770033749380053789775900206630600260119322689882914481369648381802630752924445863824502700079421521345550115082153484578449438413937635274345687991277076503295192910181079643374885753324195540186469796527821248071512126630631583003758047855852525525586201974935122547559307575375269386743678996888321051266104412737603104982083095984490944106647316465017974559866349273931890241327651249717536974401361593598585233703720540494654245614902769063636127067445506359882634672586183171641555317567509971344069527212569435097125930505572878768750748971032817175472916500551617650863056391529015420216281868688456133595338530807247509461507668831022525245780363145520474575996010861882629026426846380883550022315094320760785185794125986418826099143232019748175663722659054359142719692033522930644758563545011084470670423185872514818397758058038267383747299531246627343763122119232522795331535730652070484517388452012067601343968194954534173076483394440599038669180185208373976047155710912334982569450577989353567773463974174592316520811415232290827105204549317045133719096571590992140181176985865999596121217823035701645065219990418233624276705773240709186215632834091708083055042041933362793781186907710381052378550330665663667747610378375700339838006910884562695550979285173430559294828218186613627131134827474198458824360642856503635740770553770144389920591185170538274302157414733089147344103987101878757895704414571283140627710023572713920621437341362832921673435675548530515569356417670327542094779909083720852400290416887067645513370029677413648703189540157575096650241538207637546195874742238408580922902275659451061699216261848431439571020050516921480312661735269237364094585222957020799022050772978133791345834946148544313787989117331049102891546444446066046543870314505619027523525429096014164936874050620652608931420324103248775490740146754510763490637673865187522994586364229935488778990608562095239488806376315028115046789326515680723858340709460941101939353592878198748921415572562470317620588982729916695450247105348018969762247282110734863686893134326354308928309902519600030747927129324061548037317880787761869156750838315248928817157380371471784674881406776225040311635454891524630440947432935716559101100649567968867271543136503886123703831295442135949061382841542738835392168848489692117911467319358523792845433107928968075176887543571107640001616621691078095665993642129782680614046044346856021677198427075054497881603465623459217559695991385403956134440269499105416162668272828280987476627070221448885743571062671775353494704733260335898560018492348269990528008130399440078121682871018412543362341166687757983508027490762116851830133726730706355263451663647973538333788351591838764246273142467052534315312762708227636729931339619443336563584107033686460225764622455771985853416649072958409913797392409763550401732051682795915031374010796873002754317396561313586053452923642431809421840012459132258912678958835198314689787354447396743723520305024015529168517894652743911702717323516208146710037177799460236058084096374092639750631049412355830468877161126267459661990126887043100039349554666189092598610099520513147060994663327823155630953541860417915782569138325419029566970643114587266388728496196516856846198420227447068282423917105636309883671008993103286571265572818310357413342045475432128713776698431290954809070957854190189674584608373374178824516518757107834260932748558479718027134199435133638688641488264122146068576450153317811244158425537620838564130042756824854606337674983943918473294754175991976755075842002158183599619302352257467802361586810982967963653451729052205484379041452099678768248906860350310381825753143879188933131577762278314680254083897089767655311139089442912687499099649398707129825875426369632409057492292173470951894714780726361393946871863384818950484353542612067745934368642382324739344080913958551324808956858400383048179870949426432066998735517609354440612694544268890864978282035437515815745663522524356743589344862444241101727199819041334250028889303416325119271746281832551053753112413594274223672237788332666700051471201027100357001052739595083277501306164388021301986524439970788578897096094928522000878281708306156282081547342992105443891384434111213031423424124957556114657488507227874237898029969839056129135931752641132267109071951822197542260353050753206376413151869292656771597472986564708458482332617848937580053820205751415740821882730613546977211021994051542383285417105872804862095113814760887393128871218087861411599699299253915493083393598010269267834907476161174085978077758392320819318685551737988259598600406324139919990322792686384756535081176926169735217508658378363633517766432521779930975394760528866012567990845904924322818257875394010550585032775266187663966345391994483973402916429051169599991784273996863834810020430507637909866207939777386363581247268559820837641369013345930463436553349123727712814001146625107246185241951692080232190818329854770862721458222946152382058773837963468060976721837955698057151954833714656164657481549041311721734846602356612117465012068958330115455749644740918769259491057056822817354047633976911626339614594655674000190247773609000185093530155575333283869702500675070522141937804592056187822944628563052438064783418063059400139739582172802060493398531115613768463732305945661635908065951502892815278550519223587135968594669823700195576443602945715367051297475397062241469743563288522814189983307597209393413796901173664454998331906505076042848492431988155546060042407597013482464283952154073008893539114679591433739728487590839732367374988068094429898195335691832789209388282913144934532411548949275431788447344050914565550085529383910967244516783693621137831927414212764186753639556937768671104691331295562347399559802775433823077373137916379646087908975804518730904007330725296944947948264191089528283619292705134554533940013923696152257866492678068882396605713784791877284025259740916426450712535424483844512610021125989477803192666525943395241310918349901307991397119581537644677426201660870709352146592628283407246118025990311113014746363085902848770560962891055824712554435832383486000389392527329834695379196847566886700839807978547421730352648696697325411554790668831170128232662794378023340927321210479309166568879848196253438933545872604285481105833368506392397341045241930500787861052328121738064347220238563761196268782816093137746506830376419787741126421664007807447290716423686720874945076693714375965502847157694498529225867404387832969185540408650005284983147346039553527479206536147336265326736044302187215862184576329152103629313571503670145496034043923495571412218268150717126348378226613137984234103170505450529415606458229269587722863930768487545710740424885186583627741782053327709094997435306107300764409083122147652304458010270492120211474362392626516997629716505704720847089639717779980219609627815989305344303170409512523273975821914715254659085925400621422697911896145223220288095347402446966633250187785745351531178270435857322062544839454391167364603956480025454472203769200988512192385778754389029341525219319559057437843981050908597132850641775493122664051073743832973169169596514189752274705470750550578291242440608276542861375362893706283737859913947617819499579220141524560118461705336238361489351722660215562124393579996015234815273677435638102833537114428529731776587998985883353146685839766390632259623212884083672165303427105986996972721306941831604309919149271777972255164997960405766191258726782847330401918166731178776676478202891835349970111084924487667387378007274061843107312402428311446152744445031317828406112576010314327251669090486364430104006866481004121361776471108122977966122022323919668046223510675289800965059388242071257060083412764099417440959036336498260801753496166458363144062812140187449667652576900413033412979779544490081812016573520400774666606464439146265781915340665054941994718920178285905094221801677927468531158853290996558505184097896994315188706598270102488082774015381969405434457022047329313720715229723775593432217120943437326049910156792423809463437921034697817370486422552905732997519818061991031459835064792225754510550146870299687847725261659053520808891473279129161476291328423736576740697333139051048985600265984582718321490037421915479891366174311040703860836851671913442494897166410530923890597253008021693952200889518053491159291005838039012438493880248042678089509333715246266833276589490065462386855953970433301292417234456731391436245700081439159830177337693191646662868380011103667678084777250887639588053861896974989354708361263024945338610259566665431357605347717648777605673493485633819155657878403816714568275342954979280130086328194760821911737870940380108141763654050470128377433986919762067674043107600498965599171586023261974515587877707326593359105506255086073258753989008547522043045865779600039215585914837107676574265951182481359482970622647263247266647125814702225352247036382351232982873918565055241733959884302849980067473324821584117122151372973260609667961876150305973584923981710689349031424791243186655998140514242566123561563076752747351783311949342686245165642715149229944702454276387727788512887253446690185806496687773091002201661143300073131885902341059946965090066985941233387734275660205515645072209765269846549665985009272842400759841760938810551431990459697944433515721728208525353607876715652333410793063960822671800936789100359559407313343091624286929879433287084388469144971212935116543920350318452391222563561146854604315961349124959802072572181845286051375618022507973374538039239804562118987086697762229919698794535909721294263539018719307360010346701147032330023800003204979109357957843299727208764585814831784288399345955063331554857956726165882546705676090829437530475216512257443086779507786019985663980955609740324200684195953688619820394784962550693815429220452398076832887578403568859019376846679385700926290908826435819133436199604451609642422044286868527002470533144549645704193209448427988997673621340461801332879475201134118030169977655224628648731662195731269731791737483812244282096942157613058431077183962816365049315884614703298098484149637397250238481492147554484758315754808241453597263936824440917974916256305115161530195424538386411144310098152458883556134369826211967112347265307275702765142122887300071284329995897387324022903238786132199132675330848507003797659688243264398442143532995288098126053856844047046264742683059367763621544374666458169362030141485849572345532648092086003244947265479414170020367545693719997734709722827237313524566745171621941510831439446918606349346871794212640580262618379715591375679117412661077221142333510779719560217585023155550621084261246148967703944658024100831927597271961781674786616605862678003889857514760811360193702891843957901213529954514100177804414683639495389733249433078223762571405761359000416268461389805551142251578256310311069077272947101447496997999212975526942132045246028138167868477161203090514438358541037926947235285107143888464739561234911104194034279910391111246849683904392170527042295615384132413799678221850959134804236978480232690481796318655251060044966934153102348765825012046905117892209083362159698790929481131533198677493604129265118043881188463693892625541183071668240467677223527784468744334036557468889204462017083036635387649503657737604950413037051891944207325390776771977178110759060772736660428998480718983035987039471294172263423036350013500954645503161767332657466948997267074586420958254816318155331876180099790427921721515311817978940717990403067108544214092753044008188339248543977247380487286749960421085630740120843076296552750293243302353724950521219679541137985425285210077674728942240229771402869716650305502745535669114815278456057566022110670261638715221455521817324967283024210846341998604128871097682056161059960120541482950855554813233112822800353051478709453447213672669954126499149893811162952092755858052652611320821569967282568730432028432625671507792276532770390114188686166703231594269977551968988909788138295752880171763032032955861545889554416365772626948506588723953235734526206941451215163127550518256373310452223268610257822854209786134831256689078440261266450810586091894867823183515155062310436688570473835524170622608780196118375093283303958632047170993903522169139395299564417404154999081301547961085935581431978347621151507975864897552721080766502189587185594026262509526222816836012715475871511470622556190791189632522946474335446422315619601494570009885428246128533688110224186475781724981468585852456937349382113495824469223353174542159324309419531158248696381658160608139464782228132201343204664927248234936317160475960885901389462536523301219807779187126171881643218115262380356229396686943009595106345847366074155059477028328991035502328637998708501282298435524059464727215091556299807528340284144339106231259220214709797762843778784730578020882002696665137880441059460615917711015494299416161727568388927405754659514148879058383406515838676960890878679951113177015027701046368967935129825803901529545200175032653834858688083541041941664641094241150021733564337166625786535553614995115479774225271113370179986885682635403341085640126382629911009371998741891092738797782706803318315909370514495230319586781615739829545781174319900171758272732909757180276338180446021381274714249711727886128636531388418875631538860132977060511452126732122226709502386672145834400371498049096980362978930701914427781956470587851596959580805383718953255242669544828343055319752904484826975136528201109966518095002184115053422198005431623101964299866693177901089101180803328813530928852673845698004445277243143214295438073476061256242482790958777169921125629227887715046097591835436173434717387430742567953119276630221631833903175856229790498571594889502522271264364933755796255952748698380038284479879261636612003818561452867391669176412663178452277223855850116227699932837831841920122921221708864416805747307148034272644281417016888024717977871940017075875674331015063333507338764415221052643219484389392100426348644562858207162509797809339045259259947259797503353049645762902242048423751627463272297907904367537913867932003418681410954443226154073806687311575353328081827324870152880219464828720117881864128850542648647390801713323678469158037026134017556042401189482704124778875677569647867298619169583314039770845226335542830353538838996229067574666524186833795771276507093626486948512813508985755081582968953148584470373893667151951341792307585813206559519204858841109548922475988067944384763550718415719125819835820919221096272556043649725227317280314492173708995116155055913368748470566702800943025278379620979992481488444588366727546808904464498786187477487757035123392716341040080090161720225408035178170633613211775904497806943742948372310683294584304983602813908691436982866775938458275770405740720911724299735483331163153133010747850875179490766472262061661521879576216845120810557467437692413646306259676939605983123051687362992171746342123033342622441920611135259994654032155176169989148325288603357001158924560151311483728974233519499725103014516862359224610719487462232978395570439076110033514023806620466155733363491857894041682549256160707637303898232935865046897268427633036126540000297241547273712599991076384906378991922750353530509870176276877787814021940415616836246173890587126867317355222716033477362403862719104423074161349121037782659676595810262791465954874496346445227944216031224174294413889697289878762194162670623534790721041352985975921038157332960934455819598229162930977809277975995310812805294334966793718621654115427945571602615011845842428710935703870391884809132568370916598279415816183521308609678505645944188735999980221224781890454365333149904322620491558544511531902381898412286948812231128586179662042987936664930988443046723714610322350100718555166406106814799994646218526102015530252491520350316177817377903431940562000793605257604750844420086205502089503731063114450597439468281939069541538809586191370950969237760053612347321434287121083344360863917569697062604600594471100472178140686507674074164405747406410307855140844326816960188052446995377140465817744541602143321979994843278133498550059582352954367167261630045169615933023158574763913403674199669464365829371746698596593401109051355941990673799626162058670028147565275676767512229226798294197454425960673809974496364752547003028386773412274130667777056037445948144812615963955159201846009374702836315229926218133166653926828784507813174454814590108903826361955672059053526811632473060897426514039270188425187012227069810383089934851023664597826288242802000196508586489527585682357769166022142257212903514014107042247138795814465903930215605564406627095928040367959417486331067010207995977223421465573695703375399180567550409926364009346136316106848275994627560334768425071274298072699911357387858114873529502782025082105670130624688091249879669508650744905030961689193820208098413068168775730267691764836517325494911939565767957991694181053462037931218251788652697334549529216365429908415696427761061993342782498369109104233413855913853030869650182227395245910712482082256320948557268606112258860746996552402357132340446883469484940246834509117879036653207194690897867357915857812262624683324065537745643475286131698023494125790709782769545701008774427535608716882774873668856110695648078348364089875668199122365749214808437032249697704466177320618886284135814526033362307831845526387965350847713442098709217212660963974249873684198056653572000338255170017860984302802438679800933618356522159974717390513653367722767855418341031923694799159772932824836390159862132639470563199853680472721194221170496343595471162670987076969412729469334332162110655298196321653625341058492564163708040167453455327875979096587448787271909948326214715857600647603105708166347855795737567810449645487831885632311025572506980059395958301460361401231535208821229897682705456423869403574509828758762141549353007771131012501293531347776813977763153478495339538745202128483606847878188324937794115237213605679387818738126019430348825103930158090796384712129653203612298019738708426673521267755399869463078548428522797731715653297318278138641144362279165233018882920632757161279482520777956067051578926730293889276580869281502917071100328411391224895745497854727609145794932639929803117385564910148955565746813276789904391243237466273860516942656194417620781248947253086108567482251672147511272767211700640914059439401269148043420288100548411366579927665964305802572038735017291116031465337913425072188566345095554727506996429299420965198659016843495142647131001432990633006861524694935244401909263225415921669258902429996743008774832131758939556430935348635374979789885207524245054510610948404278584069254480024415126242183578796244915276608405464364790535017722636341575950635565553759130879557642082868987133031468485658255495547934600886328651485616634883978222739956745166595586321786143118175309089109159728823286703714496195646651303084614786327633286179854125880579791069401471433497767114005952385547039906512282573201654467896028039270742975441501894580462408051068443957837691420170945127593504947278825889281048622077376762610063134577070035532307833160205488384562024645690034622263489407956162838578372361443918209436489192533570875521691208769128278302339822630560162026567360015186193920696343229030299823201652795727405598827974577439767407540181345141070795675035330665017891934006572404753509575629977154578874543588466493407658823998012162464729646962676687758609936334689487179239236887515153084577224204706157656197914906447337767952360745034878774487015174618682890129040938974806406889996759735766821133837407634352975093143218792360014580000671100487291940208115819956883966258627105670385519132703725796618937536123414366259289411286691646539236621987188610355182501368325032990156161747352197702510649406104630202675099816839985771190315724685972928441938784163188242164925656049441084202518376986826980868604760103712702834287388440355576684711014844946110670612533273044856814927478040574238503626913668024709782863402312604018612769150537929347455348644451559519845840440190766322431970019012269188587660019705488753466901360068254217028261726408658631938719206325219007944025886180355012824997968954653790055037054604020402993733651391576780073691380902210657182263801479595673172467990564594735298671068139657845035262650016282355882313420345613522583691064972651392853658922883309761782283452985070479411624051051149401482682385211725507961646088377275571224590163059916408559137754218506386260332473675658583425881237139803916709830485180468588636912651508712866174701286607956829767468557551640927079483810729080231604820341303222352520210921340171259304891170143787024559631280995921395643204789238086188507338988536375583993775226358254900217348428282173543709161767351168663894170054445478496403166519791665033440410899615823501066653339493743437543429458318607600631799348814213995382125164159018026250000790927165158085429909808195898342037008947858767439281952802153410057900608978462439070818006251434405848371935995485957488251491075865119025079927798470948162124137143776744105985834075865548749277182230259599093233274583891712155320759088831234138022164044389340765794332086480584894852287408656626382511622175523381008598673596037786128187352702439811675663288698473483020980768210549596004588028634160403798745777187986309228361192228754677128139180405011174465398410522936025726960113491739956259601790500020417400822192697669949232282598834352836222882840761365083113039145989543077481019037536290847059562639340658902176219241472350688954240280093641675725666176463033755372681829381272186425211900715916709297987449660729988610350342305858371635264158602630099124592325335770668287565421372567538450139527775006393775301160185028733288715813452586586179056300045315952645699642919446571391704017434734313774897159502472791873443080124864162621094475479983634746519150795910015950041192560211587925323366056866606926989975259742810404173685755082388563546526114757253907870061752481686931742482207981912395515623994269167190180459903188991911258789799237364597626610449784939751278504554400523673246331266655953370378916200212956969274904960624452974085337013519238465382684595798180179791730930394832517767486919746100939292722058138295301021217580075749708611320699179785660339422993893293546998891032458614786424892880304442818938524373986615791670340666645684544732168214276930285535958965584867584768053345351455377933424788196546143981812748411860670273710032687280091812431580814159997046828837151751115425347724171403428596068697809176263775755479696180624007979633863886522733410120533548971852046794742664039339673547268642786617697103186633053643338053851680100228163248345100615237155334619124316202171603804488760286523946851823372592691814479958520069438822306013243167579095042133690986034443603256448542438954551531947546046515983992478004820861350163021172140180430694167827387849683155642458818292797767235878459694056553979165771902214588077369816249094280021763194042755371876355108112909078850078371913228798801084318712377947317969946638601646568217712907886811734793121035517182958382393655540910203330082822342431687837756981842769392604999177422499588744162988955512661056222336451848517698079464313857574310467526892527871219864758850335065932689618081005267450800401633464661495807348637439275431444017900460264440485310953629761756597169751181694456907972838065958814964751691915762651149410691190977011975487524347491423185282795365730771027155227080715352381019674484734415199530755538694201070807375790678779691261009677151896179231120768542902710503911618294588044881804353209822603614741530289491065047820722914919198289112694298323073338276416194504417638867479782793241439293579608307701473684747951709836854864970542006941550129619755868304495261068976896550210805473322364344336689634463505742653927378028046868663147101919668861131480013150871506651090318990368280488338417539893068885626497298529761998685366246029558786550988846221919864445710506213791258722699293378928888562703091754027642793306107013035164902282533518698631398468902697136088486076319509613372264767102727614753762414875293030615350789521928865234885101457988182853960467587440502836034241005719923771310968616871637861675374262331232702032545548806454674817815343351131902740695113768538288590939618213553053982677210592583222048889315549771254343972423104203509730024658213519720835972339718448238857033936308089429669340000718367809748089057304568159887580016529217454377725537904009069347143823377402084347512813045577630377222593297807612358060369386453840611962245473896151083973056121399933434600045669314154244873255552231800134629526327851177094897491015037627496295964319136469948551169774674012022522812207835005066591437365089526601563834029605390732729525501032673523651615341386372929053753706566911543841179145265805857968423787552715303049507717709527118784022466192196975605521868160757635199462285494207068524759531697644931671923322449819833176332779140939723039682479952564572860204844355307102361543776635703705864051956622630025118109965885139467570147533637521778165128495772193983514296102167289708160473504811312634725228885251423378424815629945237047354727293851521739860189524482129956348676282192180082049745946397269382752379601030193454944182313522698884567450015785151284535928999579306179188742562607416317473207229883617514000785632645239723952345495625593315577325527816608986962960508147100760158732700298662024401728274313655215309661324971080227648077416470725141838544862262818461477707000923274338531201138765386824964333462629719026374571491884656684697840094018760772943422201785739799497591025787989598150040191520454765870925835964350296046993568839517641572022685929447638223083758625360862634097827394817319514903141043764387913019887705166365402929863179935011889045867450082936270078054620115078716025043039597141533612091841820022547487353180399457408406803964806612086265444808186722509535669614615894708772774728569499314717483647584027936113708102402229385929964866510600166070068444539719356340305815053099102606147228812911686254379091719184523280769594345167226314330232022744604484062508216896003266753757323330025888977110896581393019749896279440859298706276961876754192201371550399736036954652464962946586888666684834968065994229354839571033277413733989311779041012547598237274952044869660777074213087447014694211948123098450003560225076149705483878500757507377575564526512989648470769932680482986655259269410174705863589364947183264266292967606117276978193444668843524206151815213520548607053117332721616349218942195225201595845286585035021674876571299548991667268939282324190878452210102836750149655821816602489801569028824224136152961023677942488358869732157284662438242022451912724590682986554677641156655163191984529574588986737217659367168446271959823075614174871350464233754773125271700228328774573510820685352293941756536099765009082106030099564077686447966306540060139191916815592159157186329822881622427405225902947590910446125483534590771374050885557559003491468875146608021816406045714796422904905954515689405073521623350710562107527740793534978380000677804845878735514655598464145684878936633274658618946213774336219190448002413938019109097638006880864867278424662946856758338855441864538486885523821064603793457831837564289752713298839695042622245208335835743196644509780104455792494341779940212906635782073402989539769744283250081487423883116177997220894058605699513091565864616064008374865057916402984206350906316440356343839103232496746469010990927977855354067594614642542084650509869660064703833828967125481027031106136791944244695360384701345545533533938827772817645021745082685269106686098368975310483842904591086608837252513825645246865192504271042278190219821634336092150913841542828577759299745089316532630636513002174980762778923804857739261916363595151966940027965526094479835418159957192063823904430888670250440602477316275757653454678602205457811350629991291724717784358035051783258700752941933585369893598312961927053382262206582395225585422138738470383563365238475800549009926953065577612515007409505904664769927712448949109513997893367602047553478028091406885804579348386956336340162757171624409537220457133260214816781964696709906467491620145443535402709644674904180441975982375156051851649777640110917849357486413128665176000106775011756998741405272126599671020875988250571886922930781058373037917878997019662132009157661751100350684586994508472565168529918761031206350662316026140962940791985103447797919016954345130474316246573484468319953001461353344210635591359963261233138712190051982743461309554234385935075623399095059657446851472908349391592180652334534291028279497696717213906487410621063171252137514967109533489936442448562214084724821858443886879417762774240790793689726118802984358590796991144616052447992400619555561993222390773082073569866769048329521756268649350398364045211362767446958966824259827231995602554560074722049361254674383632969141140096522737536385908485027112751603172170058705967283252235823828476791112528916914147467250354627776668076197940105258626803967661574674754894135806140481750848482635886219809528134734221705023297322923373362389785677812805749532859739400468464633731989827733723720771196045656694875429192655823729868510402605081340954011737487100560884787820700203974379753443084748539094882266497438211903473312623711522889700946538407949163188779051877822596832266500827564876791175691153806530891680696316841736205975632313697073130489648484721706945220719367826896401428116189379759892596728725872493173028232873997635497206646079329618639510268515688117394547945737951676688511398857999322376822025195541808597400021387747346313153443966072454988988170321457754124047838312645044914106093949981552908094464059688781172287746382481838722632215048738149103688309410753738008419028695165456759553196853387218454980177142415787679755751699422528383312422021175771459360444329037246664509471282808911933389348418516271045524123207708564402570158025332549332299490402642547290614517960498039280544996006648215763605037129933431849408695567239344903863591997073403499208443013088763924451705548357277391579652324961447041290891127220025523046638760227159848107987649731622083409403457493079326536852776098399535930869271738682785193827152557840376205825150198107381110661571129153279434773274715650525917149815069743563706372191112520292494267357459827752318275867469013049410661791887664537034297125186443221643575865605208425555725634996344393900122306518280334300586096784612878670774919633808270442744722568937869295437412189990423993543633810162081935379418860702895438218177744049494202640718137478453423037177412467644569956721042838559844359914213156218214359351228050471598911152687794689528679138532555448167795293405713448456725597175517255588750051556719172688521321995010154034240431442410874373323200714617938387010817404822782475090560419925892494723272915871773278316199835876134603044469611000948995326830450111868404834433198377247507827508764379425783550548906000475876309817345125713352560668318437912842742407790924650262898756773057594378934025041850696913476776255664891970916141110113800777815890985599411731408066191487955062751495590197215670774447518312582759848623695471508890746258521292734755397163699515421182482712588161255327519460293223208481826911336449254756653104803817114176610896859996367731230272510805148486196759574631048965873051612881994557690033618886949428490177409748658516837938282659815691620617352821288872485848261631748480527771017450406765715255313352462669740112056987450166426579935981323959214638518584429251775348914907892139318664403688570817612465263254667240438860240823890352248646175579162483248022712877079101966084521536048869138373751958135321349816846336203729818095684760173737650038636856495477712073862785564335339224218681196153358302078571013660199317657764608006615140504394265076380384732441739041267927171775815540660848781050026845678921314236233219155151970843953319504184549483847580783930302944915711294447043630428114934432489597467373854284943386287570426198610132587848819964308114730038295365896652760145999166143557869860565457541750595473320508243615013514562166353702997359658315529217655628010838634371010200644937851774517532968915018097924714399695962487921032873111795415621981337797100027796274824301673452324350325158418966194162787277481971733744864577943711736681025183682112034540993346739970921389495863587260611648422649988677190269750328615035713344837884539481207999745075726305257136368919348930272824083531747196169503732302633126090929458007384224929032355675932888532421704803241158811769428365479883102988802058487960483489358160062978982002794566949868574513879475123799947094125920326472731783447213537559005430221769274161611161688646038083557796249656083242511031977182818698901915744782927307101099093506147606357599607513262638158101358643609711238417412706251137244046955097851643168260251040023974985990722857230443887257549931869367437204913487816374896463883608298440347499982724531584862285392914368319410438573640790900331177608146183595857379631679975373037164638991828722529747480439000345800210303142182001486547033805356703881377208067123642717932802121634871400105673276295778039408485323359754492780037361642471742146446893051699533611541882023807684457765022229113298690142756341562245652574330427795025153445350410357423856677943028112912136380756979428712777750384111522171832879853761626350862277647532160660707123033051789889141482066546810050517321416609763100273644825196738307373813506496512925655257464752876615021693067734113661792551117565968669852515970421719913276755777707867929262532212028176053398561375911874774160188741540213590798083101303360019976165270664094986796842192990253370129671566341596151215645392083641985333801042899868440408824533846279197321299142786556265826874194069369199134089430724647332178952110863706313478392452910230692349303303566603835688206552394656482395790806462575021610263479342412949183637950565015957577806836205262292183519197151319961547952464521210657910410780733892592460309442817196661038475294080564435362758978883741953958130746291002969439561985658139384898654501675937849854202391914211415671261704171020920887308053941650057758948696145869091565546566269241372482432722286869704074108269134594710739006393008204767743202391241567587363108913748248598791697587906608668255178298587824577797768495560981051746583822079743631466586039918561352634816337402804230036810801718546210306946671980322098412204427041221166509251702938958455743545592495495475246728886482989624103321791968220333926379541090418342742761256895220706611540595517274318141755824500517502372426115488905026337380574529491439880793521725305996246587396190477742729048156886726648039320468967003115123130266428378989856662063848025045483117843813817039402701074774513748819960816502203569935796599598277117194872927485418851887773052308649869193386164162432930670571784807701302598757068728285813105803176951812841888773569458152202450657625518936729842333411734836964763934416802171937405635727594192634509431226817265681090875675301210706848200342446153708493346145441641083010271535059525020794750908012881799621518816336895989155574764299293517251777807117060808418514515904470417908403843973012336494695925317965016983829990714957277682479476031977552541250819305316459100410558833924829448809997748230556842386865501474630380766652639654655089484695264341313842911097466776167632842525813682435815630394867602228464365569012706196091750507264851886575425942743266082356286720162131640119371783953481936042688355996697618149219242588726158504374451001288891099694900652551370524161294215531506496622151346862090675124115434705745917199852713867766208567712410469522597732007039181551174595057187561066710330064590716443167143099388356338534131938447628241189881458542074361829897459896008565107729272054866458379792811593916228498673194349111546537587250937278242256791820976424245078335188752562096672044822044555499649173450720744132343441477692196023052407196289247050794303804827337063771610328482792842075243711949209450521406541064198871918507985458329184210065250984532909609740287099897893881931612674585359976207794328356916500276087681716331185494202286402902682132216289752053748880380926001281733206533821228821209067390820892751526376211885901613474335587689090611379061887423076716643526651352039101062332260759321103495451685655086489448020720287239810301273485308036074581569785624201847016204211288182824808736355624980339340826903558966069569596756272703792364563697824718263409785622459600581510307898992610701532670224137473064263393127350938871543800146528807915490899550169134299677489189654539775513624285602699371688110374136830011964754362191456755582984552019450986071574617540975198301603310066364972130420436546948385311526582439574150117698895737855435402860833522467856725367901126891487390732026610488702596904819824743665361525401545671183115227662198255756803544909076330842599702343192584004702403446785894608930958120902905963332527124618201643665132504129814558234349804245738450870018257019561586806584753389126694404143681010208840772809422544301087663533802714134966987857753556167980068185712050538428257504435297799688828677386886443528689393681233594968393788888241078087118474889496255693569355842584910330405631057310773862905469930886862809747972513348691597940662493838001778279153289002869567288530215388369491599033963488269289220476574449194454659984960077076158247694946939393099865106643164508102363044082785894330830159704109355254485346632432534622381293127501058073858030383150875723114454588444947293441888530503947806512154934600301482596829037776713892519770196923563427435024292747443736468102582774707120344142681874101640187183042449899807375309195956391515679289653569317508555832323147535511513222735409520138428658816758552541151345457802021804450247850898613689385095401245248934401835837875848816520578941968753614337495059110122958297327055502556920349311848830736299098722602906412158732518896689983916600185623227349122370916226697454179205989365318803103826969859317617170084600269282949472508448623198532109615045416683911607670448288636732558755459938269520394537202083741838618357601239184239588182153369287637965104994916739732529358753667705124216591931166828586450456134256885508716298092835144238977076548212929919152234535015714540222307759597016517678604353929822292125541204424109105485471262728289973974282643223170097197056625868450010418978038689787249544152759117563009683462422034269127261869492577467839151943172409182602331982536115137427884405184191033519433441585495268013890745986694038107256892183468497210538459387728692949454290299487860783852701994700065102002944448715750644428066869609690501311134475453854130658082797991142814536400452394274163144782658660923354293138832637402379410171971797468753202260221594216183686490199207105539669681878408925534665439717177575545430964629154102293833225035335699177296228438874306781262500937022128075084616812626608555450815825127698385163669906324576244095628056375479497114309645631614571108243229696480239587531172141372779288015279566847630607293174945629267002057041839343612010197070983808592345579671419659216274922631256671937505737606113265469305587286501884669064625752974702524662548598998697880715759306126973112480610631334517899825655826094042264713734707500382636194607503301604482339739979712554657436424703628702890896978964156004579484840571509773801992292692244615252961906322311777844201516298732522662287049086524404130614871250647697135050583088075899132282379016050864717691730040100785502638505010346745582663687533774070692373355235603668518511759351266212652841465707414332608036710243160379244126335462349493567960422716940751250306980097291424300123738971340698976886709544521348169458812613697789207851006300504288957999774659683997497242423846877898676661223695606387000056957060195264483579919291594187228441720548421856461240791668925047097478658433941424669409681487749065246226363605496559635924451993060575503544839231317980347188640720366431362798303884871113373210737309814092071762048942383709745761778353823958158151484801362730894210108397654570404009864626976061006092263851956380852309115765825119148490686295603344239799855659412897609611955924740246157224071172202985082066270989822241751034973619121697440810295414849072361032137549560873820171522660654346792849637576572979541121546131072030699233786902306002604426663440138236217522872055872346269836870891073445288971309285190639288635400461683471465469035155665029247254937592562472583398096589921098511000466103235127819657137734452542213412018211092034868085506235662520858524027737090690706769979043757732824414720747437697053931379416318204143270811916764211482815598327234582681250423854737789885543512456093312431760620987246596087180550710135626703712904721895393311523414332132563340329179975581406461899464326548483719445294858731699702016436768539066999717973978844842140827011418690646519275124758505886537009117650489595448738847066267367630909114841281274440988396785384857531201060151685147727623912088460911369345881200161429016220976229100512975399243006646002622449649936233768399550472101231413485026757868651457111097369888201284524686626951218739852686350621423600741581504360630668748639347806774192989172903991321417550701422934183483720501886268107351247493571556214509436213194404938299951233795867617927073021689952847228921028077643781307351551097000200747521142090615152416299722831005948239491125564002162514178621786487356441191913833611424398744851125487326690989697420013505542010781750682533678865466016466520103907334754888036013741297582863348876114947321760419971176998678832553644906175710140392334915026306113356845229709202384795340349501893447291162617052447920732666730033111181521573023733596277323073246570223420647455986744469787057659673878962233980677250902819762547206560364156085371490753579828836719509461970064845516871274175345038861395476558444148885950309380516516871902725804729975563325537185462757672257603432296006373004494820968475105538096657335416891248902077072725007595012026772109218651160353092715160474201361723994189285259768258952026805692684921023949082976318055373787923260479084236163886534851301522727866913433455100607833415704515066802396341040869167206913946858276018385364381979993454930908200129554348791366203195406017450180559734907742914448372320644033730933231619200707427674977229750945216964698140202018926639700565276322876270623974151567505764206136791664452310048749572136528958765353554629988835710334597378557784376749007979024298160773510434588072287972157262350708105260220100435491934298605108172604033859624389174847431347546262622878928286398288636038065968578448105682659461392600310614161588873230574945007354754454355669802828523690837839378877463117120553921140994032737818786609270976850111123417610630060723008860090189495351752029915456049101950440683844384558178192507730317615124706747874401544524670479984160693308910149169098748476143770159570091688131773070713182832152148469368617502414962739743583974850198697782531964302887516762545976340462234350820448487605035596993898494222796112261378529054134096242890518794138146275544996759228389358284161663098336770540730688913903997910616225588310180918593501542642406777503187513289151897948669034902549735929713855244427707682509743055971236033318468745637203173963447604688126027293441497408167191232767312218739960017822495929402182276276430003229441384388354292333767573693447028781194754957519989504455003517618968646215374021542606883903190701047569664830286067041760959540268211637632837200720978184719111466461128428422009276070905505459182143376176074325863553543901726470767413698937137025856993060553172040320046929589826867939955104558975670829905851997926481229205552799663334270856744633309938322551882191308008800647238685571945989520524015448958667606206861354110397298563646062993958990600132471162315743270728097724770959731556375819044609178667399781365157782775697331490554484418408172385972282793445105694994241923072421515603412231353176214514080387838106450166307081029668692353368424609280842870062357643671710020575841332508581722871329315646857977603520764870463046964020802803306476804195546813320073954982723376014812871303218644698025201465801456362609882693376947200826041398589286019895226361035937923524124070615973042121109071494582056363083501413679604718706779996556742119735785884857525383869356842710336232108375728974225562997278040245670560172037948217428799447569049525639368300998819083461740705942447198262364511206439593659176491617699030081792923024987768057686345854678145973676603788819252251195610498669188249744218326346633991295081862372447462921151157109837075586649292335022765119620399577157588177713228203443548997898024150601477592076504907124839821498393590049431259682240060429555815622700102844975288246225490428508388183957555636336454941198409121473237101592999282961941617096782058271766636547949124770571986453112091775060423678028587337916102203715946218825661187235296510496054317113970422645534216546013920127932523244547228041465502043711423788571063658250080547121534452538165744593542053277281331886551579260716513743415379566745140234626302419439260473877555061969463984280061090979961777278699592628809565126529901606487928146488954720151145815141582680981077299149619828718211515926604564064307135701108571189295721339726851438633624563070296045264347917927543339915089048170457802572688385340562342425643371206755459949899264211634091746309799710993676557748993083957734661749848967742939505285403320772655047961596126142663039948607498289622151884495042891973020881409854299301016301434379841436450295266992878531709730235535211002052695584310966242083557149501424842531634429315417736009769959040479329465398626371407354034559426711190974135125939438055723503984540851780023394276181742535781825414504635082887618929456518213616713219070007844097655314190184952961793574073129029394065083049889313690568210374264401950240856278984473268960750245844246139839010213725748976440106877435768790835813052615290718505115462878114438471138063401587173594770197016873203670507618604872068085927644655414277468191444026982171453540076359049554957498720170865615846966378197790219018693928463356677854121655459762628527746191214783078000578651267575735731491550962591366213913786100151058599315927555236791871196322314545612210930603035794495374850472598550532744777065124993948940692699805841716000356027194676049724493899321242291314915998345257798167349776927456692037955749896829100270523489516532681143987712737081544180506278966102448376765674358182807443511550289175873927368705291145156318578488757228546114980299489728136782627668852233517242973467587176163048001354954291000025057904430570717360007810408620549113389258948788032206236906510114959658949284609002525273295724291291213562341114831494366626098504081188882319318156758038011553828180700879866881419832210077052162770843896758014003593319664411439408830931392348740130100689993782353988123327216224182930655643370950183191182682177983988548787058961235315631330518032646437840949439949087955509634676288331668044290663426317428620318117177096808645726142260921972343707868584697029303947085306557758174459982513188209122789559497443793488123408353027691420926149075817539590460249435107617227649670423393991637600693945965326231595993932055169981206842114646106564367274805536326324923185997735061811515109839511965292356948243966505862692830753056261158907344096618244522827688936218994711685949436692208932367900681199971007033277498854276520889273327439422323356744864299442132230278078844610125028184476403782142326030663209396491047706895243498580226359149759578594140350098237333707303337647182679153261609731011369001135280375028513030951060857434140736759518961226109129124003866348783471411641610896002267066251859559988705714951335974296835742789797229193196701828384511422379846029921529200357739431825179192349278589591870403517204567918428090511231324973216581793990357839974440095300372582983813815562566743001768737145635546232777539059797967396320932954049907249501770499957603030646659754479633831886933176857194265628640358219206564797716854471757169737644323756685889303972345838829850958485426741066604740758814054373382275973767654013013401102973530476922504793894091442591958273473146100428365064300126320444110014623409939287352558179265190649809140840750747492328467671986792187594088741987956753750206824090742149836994082881149996188195513979223140078193490911696399852297504042169496281199731472142573638205616029582650140784012969616220893367204787628542122925512855340513647198282123502356647214020940121481131234317164680350112125124795757267699378205082402848496627373154819307741106988740240866806413475092014375233924637277378285645251673458228499709078129691994976644670585873985125223076286187920770011221153424190537739265756150561650996240857738748471709501896511665395030546639677599984810354052433420210925202374243014609882071462244817514585460958058514632590884128949057517805613155255255843346410796138258776875593500945573086288894438250792220560656667522703724915505756417768839953683555048856092688766699220200084964545872407974708731107939263861553138503926061449663405632836829608825764892482590108062242063670161442932373419447045202916225027518594199574312698986583209713209228930334008831190478763040440439257764044765637791315420510536006161547557611447322753172961212526887224639579439069235138480494360454551462901630936649883171483251280252664901572848918700604004037829860078152905952103166772901044117906980901029326199830835802944937282661750281173416496469450682248898079806673596724045112617740131509410528564312614750919528746627485063494896528910297731572651989199062773118566429294149415027136708242163710240634458216727243054725069430945463425631509567712833216044606820732555915159994091954595819741085554279960692575536658672740956499086834849680172635524160568101485020183822622692185333548693064992413878051481517181411735204893977114153575676431082177458200343637962925541459953979524541484281649508839535259901548712429243630307914315461179447085010892653075046313605952082156938913506803247905849750335622555778275776050182042865020480836653426341507640443285143337131158492722145784717599773553333259157986962948743874738726738086621077991383468612879441518041810999949925421823416938612480418604323832542828066704465391545199380418121733751486513335668133534199498478084278986344498150215243329586915791425771566816154797404886787843818497846838845361109797199258606360439957893543967440261311867572038349722630166913999642339313455171873986339512012491683613527278675148019946370892208189115345494381665876771057127403247404398605015385422500454573055804851015502016356628231824078332915722721220623522854350449205520139939984180572259434052002011359044893028934203748150774261321592771764917849648848273763880762299352954813851012968281288921466054908223565549604213847856048613664989120316524533592580680103315666751163744798868082978698568567653562065578868600398821683804654023168780531212504603490871895958018481917292744506673024975461383810805302813138099892452852677384437701866695254919242177210986785197752685606529941691017378014882118192262223991184556799053794357971636816459027759148146313809318241553402370072565970984506091394282354678113079770628101139385946701862846697913957812819413635426703218662869479783566464480035364733780833027258058518007835683776462215727035908801755651429208078249337575019644385114828928980818770054091402536198598417771583487051005859091093908780020587684257849884855185844703347608599531660378052195128876568811077860055058806588484129759356874207400812633378328466149557681483024302266951821591425955863873470209745426424265141597551718264253123223197665947490597046584394848267090059864730471477741699249832049241066373098677978869953453731508068333133826450614147180772673600351616556702249510308116738266925125457197236458597605314919237359950074237919227138722030734670527304711544988748046789734869361014649076695605843924825767646466553711491355693328479093054238043070329243019089827651407217865912284663904302399608204704290333180232334465351715043541000410806981112413198991757424942192732936013053087259599264982142782194406843365476937921887854141300495084127526874970728761603167057385340907858318797242834022719107525393884423881593427627377549002573367719884190452013694180062646078625113363709552482283413044247277914104111391674204573774153498591992419606548272064569034135302367131301512617464246452737318414769392046760318319223474878992532383923625246073961953508022050849143335600170250186070201136622150239710178320575162649969576529384155083019041001883013628166536530641931150216833390385223407191781608912927173177585854508774411185210125378787622848968603967950538272559397944650654796732661873472601159327168566470788740477978599873698994332798543697563948631875999715298189720985625841638610700681083935665403387228632050229225634128167635474841167501153728396719461886810786672684173050944891598101418911123379014943807433066327683496523327328138109773857059381254505450173922834089386246700854580854124648000695990051206794298708929975022007726190735262781133733503264858002095496854975494511182320902438491109592744352281421394452175868423498288036499147001219699481252160173870501855341266625590990233962218585793646590101738401255955756493532209487144533467473623963223476826486104712233061357051139005612677576887479117874033131519306831590472658304797463102431198227108524779344628296675307433206279440684454396787493904382643727079086402661577196095630287604834967037243190621221889062310216005897680487977253854982012583305761644736290270813251096374522904669002794576325248808484783257973941222723459817651082292246184037019801505148088501837701839509539074051110225742776000224504241954958192774360314643374274582804492208649971364852671002186765222405881653173978482703907135519522494916032908404983144727162298012832505962105772753128055507514956463928644936802689873845929285722456391883885012563352433840464484778945844986041062795813057612701273023993967959818803031771330189556723169054359080253308773465796040991135620537698669335956143523938254849222768755410771453315055838518957633072917567858368145416938350888337661263209873388238119070438108975503448741573657812253384179984034680248356978548322615581230634015356460547781191254641325963825014349944930570043779641448653776754022804747000010287846532672277043218229586277388843237279213602968818995139192111503286652614669247119547620416278654061596844521064558184525005400338348947536282550808507869485341316269161010723878915596886984319952960639938714299474550926895251100088578008357557918895252353942842630705083191402637811525418339670515961185905275808688895637040764793348343671255144122208201508212896317985958462589199165251097214827708907255288206617152978636772424295760376269186504672519770674328169031495650379239428219997695137443198032849414510205017680871353860540742575636284698842043558703509981681405046183717477976532774590380679950617516500813757782281219405324385967423453728499770246726651805409825625878990802327500493149107580163209980340564047798958552392952276638515971167510141619535103721013104504693647629887712563115751150034026043121627419336072667896069259742763169695972277706607782146338106654727384461860139053636531154997484744260913663414843131294057515145349922245009021257619780303492055126282600126170817374839044542548633178515921162272633271078061255898916570064094944056742250344382627768407778099237985583679367242980603795767523270892630522069681413524758684672707474063347917494559841959173077996331271363774001265107871469019283044177247252486150060304656924426061420779888728319775834109283041536588216141725975983032132005803219738339392840562635259111253954034936098159306479310148664158333305900292344589268689922469006573151963938772213491856873455088150578446572555866230541174271663553571131688869947596261884014125226140891657161450937433879099507645118638144540813169350479139339425715717730956691079285704352418937724197680246553911785154558376336512800013331555559519119315633504973773856616531803243274473691317132625547384130329913651874975430336525117904649201435105746027796448967798500759137358531643884595224474045937342513925143059206975415249847634332549297165688246525171330187112838628262592310774537503503768611136842150306589665312414160812714392803186982723960043344956241663441597125435705537561869133171704899420296671315978272966969138277901805407839771452986421703355843701948496988142916726691630739252394133715277206227705874279168722954096838869571294492927805671066150769725990038027280732167678176224994551431036134277847498280120790195348892729657435672664412406076560319359679704202300018264618376254553670986158399478470740053522504579282669960091061737215373038507088433838103798209691703706136955959194722050069023768326735959096154021979435957436607034243742838955871459996100534894447171664347714614077388155164613157554296292668593382622481657277470161950809673591231174966559085518353217095539423485451547541980526182169567720378379052551166831439715511232100735460208308284467666444972296377235762580698721357193477999331004618713765805030955351604120566043056323444099033107885362112905561548107364051080860756849514443542544886834941888303912429442130919884150281086857707617681127184634386051148293779184164438050048966181002697264749782913714938336705271679545256415516464308638650558856200687337989104514257597404940476638325324073630322978395231986316591481391667086143546288752491959421071496578361605190202852578605761948522976962198489073763291640949609018995046211557813212845666901851913936212562175460418450553631400381607628385321912728995370208584272817504333787096385820034380300275307639339825816104765968982355169520400887421116881531032679010299327561479666476265406230413758353196607332758295139929798292154995191037652828344862282081572500875010148103132503298885244954000274087532801985052410493860867544720702661196337022477439540979004351070214984730725441612243147046973125356493180102274076433247473959629045076607194490962557118916529852280776061363996482127399375124807810821483057258582941614071815433142746964873003551426364930592556817098484868212751604787004438193246887251973671317993800868868634243999655125559639024310890998891068327801832223306010575349752980680334098779560520972418270726205588094754428059332408441464295969452209638958575754364005998418883547486280599602478399145238455494280458413299132833419689675737943685882767496593933519580281534438789486389052802908985010103072505542275837804440517799050708914616632317802021560247563125698938577886624404138236079978539664776327171503965938840162044014846490849896590934770982123610270583265230998783592163667350872148190888464483788690292437300227115072080562876684278922993999443237798346563899423313801787726420313250937350786726386466005380215765664105011257449218896044857994760978944623268348723909614313913251185826217008194184764038172467534582007468778060622227146101467344280047333813266239160943855999520876569848909716742234408088906510756556683696059672206183480290647487196663964304335227842876829314462756157407738560888295952613832500402768813040982660230843800715229503032772907024581686377796968108747875531334389768716992901602072782228673839630881034770391923675957765212006532531892570383366149658945806169652594579119269164196140384485643069182986123688667701647444611246972132398876583536787132725900741498380086451829884093914521669362335792703425912919807836134400570794749179259198241879841168503563319445797765166564673243907386470478206539798402894528531838843556476181590682066300817104878625783093439229475927479159345227336922722591572922844845856757768677854462517472052634683366066265613536124822509638526212972645674318856605710920804916170597669459462507085685446382678769960307254653433877941807486069968587669200863939998698409268746035438951036146611133999432466170692607854482026628412406091507427219352578490912606875974077650963296297594681497757656415773335268447564827401012423883005961478716184153259190364567903286590997114000121009629524788184143711605379752874483082470864956731073125216536729062910812678160657639807953036199896058654976774087853841347446997527192232320078512197052283119110595391378501039213441381563892911739039057337858680647815982564342484244993633034592385778330477729550856082848731295647324554917056614723033636256590097010967583918172884357607272658647801310251359288534814352394377063528263338499472059837049820471725527566537893615530046136046473409680282959961182072162144739357413378610276393484680091495365658782345032515596771955084345059666010565156662966390220863287483818326944575116277627545008122836938421951926362200474765406322371075505867176081702420487698685748386935203288348621058517386191782633410913985021155785931416199553071391198337847912616995773494747391310099734404511403730389380456015666532597593105942830340720464438325391671873335020544838716090297034408571781262335653031130111834268490770860407594074413037523694937470226802179612168900466009738422188839537860967977196835379956039260202189472506200353694012367975749346996286402876233883600581241667747645300205276168475062362129750290062688619467169921968111971191418195697050373794380533752716984592712338187878566568571555927861036750909764189565314392351740519959598741732728985179461919471134971322076941800996581045022348919257478274967018691292132811865446359249807886777024943656074920588044232458919538847825675865757035164264355118495031592779926728832363183408780771353880341883128081925578189034924094323096106660494643383366255221777048592736103778639141278747269429257214967145661373643136540213905347906139687537073780193789319355896740544443681598107101773209966122009416291710136481815427824374235828138322856274465768277300486161014519568012955792445359833932474875187952574197641472331362206825438313384035161861304531799325281424871936247250357241476759875569643629406931104664249885012323452833400730925684542319006859340434368402302238544703076708470157980861645034943538970798973530247348110433157311748892511410943821778361638063627044925490776713686511770676214117773282420555038373956504518491655227503429718655363343961061880888947617225059872486968587138535906839041130336505731690319082123538642942152402864987096071233278711636525175364387209784762769956177379338289803959447588862138847950021802270687225552569553067809835946826922643619713325645411324562586500490296347056402726339917740067522721905978363710640554942980355025836451305151268638647996340330779888249287990728323488402901932422545608293724949161267188890704009191590725640020679558750285994365628069504983351027494097667933774586570746230102845150616415718482610425889290381183584146631244641730911648382042157362813262654421214437403904066912798989983694172432391261762662147797337791835606354339232606227146371687520397839261518097197888987518971416058657245735082532750374732128157972680350416522578554826185865923555066651197763634839407336013745384372855000677586007242991744604206097528695998298987121274384944283383074600841420694074470867998200126040340746718496902868242455203198284032278300474232872190767778879644909604214256502300984800783153607370103291651024990697973791391846333138637795594970867939869285785377610448405526199009043621888142053509725216221540303084814673744282486563390695502089118715805493790766883434992330679788455286258784304434528041616990379507629294931085411665242358924383019019565904011194529951942414327281857884444401159186463413288071788730022380772064283123282731061667689235724458462566199999551686705948599333374655325699377192156216880278584839997759275823088705698264714195963572509280083450975349604658429246357546075959408693243302064867555688117038565969317088228677926377270741209375121973404585348280700587125328413320184508538221414937209193343372711344821557977985265447261743936215246881685361452977693545635656835060930354676198734126924436083791074865314501076613461894529430298145081236807494697101014477383533617083290199032237588845731663573041170745099101874387561360662333480984525542846887321652485605445644125015467125250849962753876591143572611067076791849895168253956713710126273759184305057115953664460416060432543200573669996675081751837666404672663243242253348307699766809064426774473770347985996797720462147599131867524362888166530489447314240552316886953183394404777873326842596393047603858960675296567061751083297836546336698300669044781041012151928910452081680351525514436342817110078801156758336798608761123164761771779709311355859568317628214934999420940698066446276612127712293212197262126575020726849644830161762216490239483700684241534961443136385805785944399790820097768518734517724226691434006181295056070458336188121198395509282273384406679065019957210590965510779522654216319775940819751559167819751947656515478417557824692397543478042419415273865628954978174717325436316702110525735505159254804734719938290030099445021058738429173450399204068332072362587440678907703283226546750432533486626124819558475341941904965537658816748196410083060473793669554706012538327789508108840593230462822746175107771425892865446326772877666497919093498434920663108661282636841426266825022631534745340625100153381194553950282499650907753164554122538178459235666425976767481030156085397008385312423719959618478431960506681542047800657639324461825064757490314190807247120211901209719349276235821366321426008683807520210450541940216554936024192244625038458465108014639039632926863957727859489155421747589918564182219326524667264753007053380077441705023703243000428309931171272453298031380735583813210803025904567443649361063657629242044106191988449776616992472180065709176765065415101193230136713010707916491792138195802303522894756660879785034507899103378985620385239125710430427838256826134796090258987062590398808377258442751117217020837046840070593714173822540545379090959413799367742736236172084188554867242169672113794978128323856622199918079957327638520771089507305884849074126243948155896734502917768931683226652458870092757571815833097999970506966930772772972625911668631393299586262045515068461929877528115462905356534544922606661808567028491756810397220115108936711997004197052426397677543039021565643482049295899134940351908655782021423034539486265312077494365381510397986372802509833240997024714395801501388153298579210680878851759869703479055059323795412621215630739295663907658447770382015590649282027247804703094431932975620416563180743352698276479674110016330761910112652776563131113053068133731565467773463459011483665029103413121187278104407854824507510191729467408176777016041190170843417659476226633852575525238544264172112940397908172755657681028330129184730955153860080857775814988106374110291664289219979205557850561081941865945468421131896019376200920621689414598107007287625673059494929015233990506022326038581544970455380622727594143577473900616789250492209914386517872053876086848543892507156460271391065553237758154086470275548823144348847092759050858250700448789856509516558586877313920540979444190920434931276446067274562351291712447628540049924168505033595489814334892278324591436327663136717666374082437619080610920054154888997171387356129695378530451268276097226026533664916021086919257175747494474698906630244341268021675121663808457340904155048649958143727100025576942394047757879284330979123699902951599016843313771280387916906712521064308515709904794152952503768708259108562224806881206170051721896989491810113279888010931284398900014577478606783647338770261144056350808927854398748088295662324680051207730048986232941810064525222573745519983961715892393824547157106732821118158582303435159830653919988212321097233834573380948962995368461443617312757355392420235147270898477925439246577376241959197778616211895280667148700224836760066629029683911928587814447526962580072501412613896570456635629893125033512081654160460470890306278846140233628835839402142008099613634897442746971261068566076783425358676735432313491044344350622308309755567416623015580592829562074504166509213587714893949000103103722593592354906579394221502310771434658384174061436174526227351087461136207708806786369430912490856457770613980028726392570420887850592234007667234069852355168140407193847371810021220524607861882205838224636914489634823405593442821646434371518244796829175519768135196643950496385333009551591115124510772602841102321599066694394089233305212412655180553030371049599065824081920408499765093571273252443308738740866673891967052968169123075349355058415262374292337232970396541998924566731337839154196315286360543705199767072076482205576598029719522997924923964742454822074609216167865961554146175425363673981452640356470190466664343146224346236205252478344141741083737119021648561833138595389439725089551471927440559825758966257011554237884808884117762446631742246613090408141770800598826121141494392483413519360394314247037187895117103654784563040810060377495393509666862815329679955602296421055226907571622480647651885939860081426241889849865824694274330994976478074290283534904148264265723586838811403171954511508246838920585471803622469595571840372412412193103487461409861645135624094196417141323180948295253829664599432656385408686202191717101480685944705132934140408588930174247950994489230823975647023152546145705563446077651612281632605014048026424112072387105881537437623083434557102846333144033156533612115268119145134461925822899074949407255613467790624311247213183508441114370223855083606759829484015983880531450823282272612121852523205890530943610556252627053866484935455497038615372425988717985473488559862365191830526293708903448118690776030175554459793531761871254186403172724526372412066254069296882287379838303490052804258522024656592085083591040107211953881382790867912131010977108094480233813183081176737198716072108258680615278175883745541195721765377023017896214744336967086757674048861777912041750812508633753992945806631339006908300883431630245514079467467828590665220533530622183421208999218398446575877243919607652674089540451111802649227071344677005298463688349665278317371904826628513469654964984805399219490070372351595060826662430369197824077928445356717626342232667674259915526608943797345695207557212635771321985490656383021745641003930955326756918361748848993461078476565130467799189635155554041472719852709063880223680310585762682441876127022640362140619711328537456923452920124072355307481124323807944726420863393100322078887821504028390477686973336676678897460367707205826077958434816242370390801475081754278170573099434656749470160774457181787014394962960951589146643801218175676734748166515290001757279023409093168478118586531322834415658295511782598091745629565575252268145576472392276563978261695102757544751744011316847667293539012587001464893208112357436571446700254384741308531879077462417619153930106823556601206370118225426828580957615232055170208182777355762466460067973544367640405433517890234678784472718569334294719133493823277234707644444849088310179032971997050374803916678951011012126710656638759145783423086373538130114322186756527800083104787161652602874006617942222613562351281286174704920100161235202120470095672516905419110580223575742473755310192250767903996199208054212304402910433761930813779842494755936698767504667087219532898496669632415834307501986514268496338585881179464847810636258208176203996406926061782613495601857684902092095631690277502592309082703094542343206222751720015647776521527684804341190730911059649239831917104940676766734570959059076395861368835105886358535515773709943270996039926869168165375079106662158513769216610996636043958475900288349481963000146092464571782348113331204275337454932982209715392020546175338117147565476165261972938439248448263942857037804434835559262920668448155151870484685437470997045838864855188958299937061427147262307195617104150475748516766641021540268498708629208517958364153481181185033841397876896179773559187752509663798539586168314528472951388833950587782363741740375797540168681304517711484369772504427989785625892846591851776790955856557059309297219634812409779913910544739569328484250226548656130374711164845720252814958919947894935973478197195639917991647895122321557754731686990813632255655228324327389026882712701546005944621274754729190842691821977217810961494395085455871135659296137493906499669078303426557488372640494754634743447672490200944902699676928254008226388549153405973761430245716250488771683240444054148913390629949573657395550532227409098790303217042264062691308935216942893096018812380481117320979765360249669707804737287380858645679909373355196828202848543872575682037129342015427078391279144280521768105674850116816097201185400992569868935807281368577069204276472059618613978494197700054187983305763359627001642843947861106662699357771108529160735141732895757114811727860577910835908956890339801376929467693589132897638832357488797749794121517985902073019161994844416338395033906774642551236098888847463013215491730649659442389907081949049317356132133143550537822554640655398538763125854244802759228753908001937132860032651604792009561998130076247949612284112563932518146446030275640056703683742161523537110595998508499852200364649265605552098335982568131348774308741567811000652417012122143323122231955213535257248213249183897073131941842111423450104250676667373283211272999258281440476398057225543985124000571886957333342916373160972517380977334012517974985224469785569227140973936806777548688608382499685327018431354446661235812592078885905798790978220241011895857589815151897339001028585503481052584582261792943564058316896632729480324074076519751552890403583921059254384159101782043119718860965030677746461434420826926332006970646746679881588067456950974803970708128901583993689246111765305682638213348075058707779839794237852819766041261856640417592435371543244394595893017785973379588438682167062302567081528567760103057874527485396915949835775509089318609831728412971464203313792124852130753130520708760247821347209976644527272898136190729592366344092621567916679057803641518257421069492656555721703385234992663540857636942632502845951509823435222848935667116951752036118968690443439919322561427272007169651540612875095115617077301467410782382619306589135386832093948011176573751101910120875787362654697526625424557689079750777187867322911917094446808651408476635533006154845973736535504771417087239520096651479868483381101550749627946420403685648185285567381445009425555520720869006848484349636501173132710304803230298378765730299232137392089290586821371921187289645186993398988797312092924052831502942446177927533799089410142531377454350560420638458000541664204044003041040005115619567447617293550663158139526496554097629632227614677482594293546673882293485170840662342770260714256757388925024049691440520328662021403415479565146538411688651617130915696320402338332818743209850285900159159760576648817086327266112003377521889106876039630850176262948125687622357532410391746496650281430379330530258201469062613444173823317302632843058564360046653583891105745025167657827926267837271475633778980072885925641463017974451467992051950702478069216566834938245195456409404792423602691993198133801816027303222391630111216361325443739706510586608127931926962490303098814678677516577339364630640961481291056098920366666765261103451078640322869389990292532621343526461659907724507512617569583332403071451267723356286133832915033782574113526057979094630029696879969048143018788421451684618529798527555942906896552734668758743250111254770718573830253657985050329550836365106768840548114050841526900841279830490129434766940079322994524971997324711883195897841444311707150462969705416969365207975092838209387770496320313673932918800905438269435454019347483148739397396283231913007188318879136983511985000808342807700597606809607514806912923345058484831516240645929322136503836783237212984248139336993650500236541668350911574033950681647893914143169987993993093926578663080725492894958274569861614657293238180422222289272221961522463383212420650309765240303584786911055826169397294445670884469943522883671885528792932094817581542976046636494190884098164068522070650027937786873749707921128141951972326686075600766895154750653557551894103344158862742916661432668252523674940563459782395689778513859501956879170884874942492788751891150181808500519906754407087579071804635247386117787905577383229260476989117369689575732101321154332723820259143269423465911616237168330198298343953714021154884542787570305274007555208041876065315342806193038137172906660569967034513615753731233613370692289844669148902443747255858850150061075319240233031041311107235051488669337353072832503944175769341320114205941395684409288536215183617780438263333926119036100603528043259361961038427939406093377149750756919753371971735290827734110094167753329853024653650289807129120465521745666672626615744152755811132197696773034056004920485189470918181485232507575015853337547086580446016224714751832197083569161697491294115883547717749929923725183444388125815499652574016398208438377935942177198359787122725572104427828806515028392819812917354392200624377018766190311311365611340146056885614761166650027700209995889672555144687303078804979106331373359482695567298704681129367122716919102954391718005028450651099867834591515984217361298456940645849307053630166391425618254959295638582229322275827486823985288795211503180072969179145402575112932492984146660027489092431262403260327659383953293800029425666984569316775611997758574028125133040017521225854759873100707622786118744557395989020049787506176140667198495328424487736504271288263806683249098622487948766553407461456731791607089949733701977098251036667435299698585860330905495999207592228324665353221781850355699475495852291115551014585282516392701849881874883166840290900529359594177201712269450953663365576584069540970789834920991264229112494326180882866674473861941545999797178806228096289882019545173290504295466352266128226431744754414905358220793394156778412611162631115061287646087332082701813349421055257460924185127553876394682962794254665200400817752689324762247610931548136906894726222576597636859740929945907633623355440915389833461311577953933769099949567380702500252569430722507765155001938058707188183664447355526922006443149185816425203198842793323350327610686154699647603440355635340269680860528206368119996454530018838792818722510923587780926211092882538771743211945153553918678565883133335362289086908957448598337286289965072931453551370559592319784561206383663285875001351650073397720609815698399647412809876821436353396865489570396862194919557377059791101772115991356908328773091323142297940969073152186800494697063591818701169363124720861495563783184792355295195618549127800726248867280621556360368147636565805815414029662023311354651340514977305587359404909760834323303988136021837046463052969631364262291717997946414130264178120881918571576988705393896444599580782999809968079452540712074657064519897267997955092309482547336785301800538009284585420099753982596983127793707634232000839635658993285694395499634347941760220588132320224091232937133372956561773894951239834742540260849043211472151147593137872779565455165735595714635087228401829948295841934117076504781133699773252603190891693569910543840797907036722893992783893668029214995333144395011792434589226586964429529778810989571059536612733469101231603326594309176493945757135120032049315997513364265507331037672398303279642304761700886675913544762503319572512322167613324275271092829234250512915846989416156253067947003220373484853247815706942920060792488710464828564996346775661777516070368290022899100936400454443165144091828172009373796284302553876913976340942715498510594295357778420995910174394243715222756441690325491249688437208131365565609826595573533661183892071512810063758384415360021075629381254205739624653692618310068443020748064626322137203421369402083535486244572622650181295602859692565329600266774909698618938796629612480143544474554276920204571290094898923362335547804823623128857665537785610017712718457161183633965037841442296012341464543059667004481218929409865745916955783881141507416895950569090187326413119191972345386354441716373806343237738247331595826509816146862473500573349388194414788489696169788264086821368608676891142158700575406123207797017882651344982465589900118263776282935448999746608438477175065182519275625015384168535301780002435615687943119163982139030487959292240758978986910319545809593004185022602761067112450628513389844586944532690276004447541679806261530069163528844008624273421755446383895400567240774886359213887752125035107019544939567264492068926471580833481717525606809178889863551071933473557986197898379763851926836574226100237707357116642301438876629842940844266515364834248060861069001092037795593173892625248443576354995975562902468416399134326328495982085696470176611487616432674265302248801884013309823114879643575517309293669368646827333526927019789181929839260376198871032863794702766690897449528857819158319046863661026748670359522754594168423962651357557017438318656878526110929357565903439736637909390596271790013186868889725505214701798027287198678186592457051346123389769739593047248075851010506276830825944255011228848063993371899462340964772267177434315434359034159229463593784455269051204857153902794849864650371880004514460843785791215970822360282889029798994441320465396793190978457197335323920320072603991278692436440089934036432554116540404956741668449481388386092641086913584667079358077388329932289928959301788215872192137119263593876169757813898075982080458705726474078523463361726754322665130271210492715949406711002768936762623564051522284441012455561134133593826429815452997955567237675819466771621878551441064536689141139770262908689837484934141883718270041990556359724550623469365869168005087021312881904151523464148239568035958958547887903011349186432788102978397299172458368001248195866134151640900978453777208834448729214166994682880194093284466675437300576900417015207637522819497105243514469434111520526855487807790980631379072785242152391450236520873408496175130436402266777334330699197132994458297067371583965048236376861535617665666010748671850451236348395502018529572270571978847183214568268316715097483605015180274404788360544688349026385300868818408270666995433116999002538910643246429524132834312688509407768789791525260441694564750661803285138554814459865335842817207369248717650797440576962121996648132060786510802832587025092962350109292386752747873417958764211356923521726425211769639467238565288195711627629847959202134759024258073444895436436575945876776045683057416795227665229460059296415737840387396978097999649479424960788168257714657408009263082733785812285135878901389056400680734665621835238975437319323835854266625744778294850824981895487212495434907541808154898481551967500670215342048839266296500218264905096974210592559667280475120739368605701121159102499537493663770712372057035698828928131600301465545687571975403426546145673862151054556240865209540015183113601287257703239397389563757107235724960065536412784440109737307663127720004747601006497126545109549089741628092705205211044381432678248026716408079146739714150539814569566287126592613719710783967513612145990340165881858302342594943387663173436350341526788021686084622257890257275560970506099098993077885662740591498560625915830377579608239536672150745185263368838445842266604175005545206777708626274294316987687041117586917097512717839407694998691226430488711154080575303948222942813359288351068635813306226967568256028138578196029386049736759002175501834814113222217979879877543681633886560738547265231984046533629241918603337925343870369451709713223090867631437305862123920435317183165196446906844207816933795229733431652801266466036610274411607188332717930664943528362602728658507172611859611422007303501661518791389573326616015186415803816371851970773411014884448205102007982053069164902442668161217293765463471674886396548661109954505002585016016800810841304222969328565807630219374921122704815991489509862153899121083323232889210062148285113957712156241215130031622721420604569266984205219086544274349396941038731941641875475899546197550531006255908865008190319428209979514949185213461052667538330182716046236551654346831932042137638115826024468946653133544297940357841660866591081015338748354754785437179205287169108746054058035808203401051482339844515122418921029885910520322796428634103070058520813364118401127983708592786801216202451852283181969804486150346203951570704931265388060693263537866665938436310364748318606911606359056868634155155304599756948591692183574377882394354619602189609016486473734462683074967598593494195011700193412240636012211908027027793646002044418044749224488939619998136347827510027052381934422189563068823615621381031585119571479500590044076840723499243158361762775014904442999968500652032414641132743064287249734516629577999026639574963109037825798626060012375738989981705789172953178800630305226512939669714097519552397324342814079823823088523326672129492999016574398324993502404638823571300714378715104073847253623453735053833720578208040752406163902005572194633563816682763215702437687458910981548270679012968647904460871776118724628622920834273741202544061744778101251386854796780263351224956821132129486434164976514040947958918109029463387206682348125559169683250194657852234581556103344792389235055192358251169826082600726177460120935149186199207826283330842417348411540617314432291288208334146217283634720187859792027468713772027624330819557920418921632941810779004596702320635474574328229276551874424014922418833218140092880307619093433106835162542034030224729835786304602081770902363435023410024806391306331743131686216233648744285228469574483446653398364610107433015265341290130833436463869758200708978125438212033168528343420525258632606166884576867069669181045852110803435912508793157790205510356637574726247956965070903091829351017917267249750593054336904208527315487777017955993508857008812937469117023499644566568974205972986352579086821513949504513052556878389499453292326133154588521596690671148070678681778158045862004917714415396945108715044376656701821709871358503014690430182302631586203120500766537529048209655149218084152875352764503084320275187786322738591656242294096933685175013649976678840205456731048524415490157567314343357565496116336754711369286486186784009992067806986017134494027909321934275735945773848740518735284654760568169256637876318064760744973979815237310922538913683798176229878298748845254809549193881761609740145976453737223290056377030318620984161935253506521289092908453139067051201935818611970823226201149749052976178317085651139299475892628254436319825851864134992256514912133906786965628134525138311768026663693715049509130033391303848546423587094754908400151480376260188981229294531739572307018286632222060291834033959239934633199968247059514258918927014275549437590633011511460118743418510430178419276005427691640305026143499631991584278906598096056077054117589071681945581854300294792216887214639410758373563545558883465814676803408657524218143594781020002776105820550111815645462430390181703899060567638355335755510901027029900118128268715460356010618279244964440316995473469386624084630829182713030094863489267340411060855839639159707238041622390960247925609506243449633151273863147436441241604676218434891183233272577497613800294304171954249679054125690686346591138196656635067572150065186103518031031875951736620766920670062790450671016277292867123867957842267322151129020266180271229952343008134877203735136476307166522866212151243532260786946959335495681300016151063530519189639950562646885504372743891400652405060079725915843104476668155057507610955961916081871791509245103118263069449806247523969415542123745764574850262555671598616029999720676736813228449187418360123173188456498225119570195885808706114677010830785871628186501287313930974230556575659705416757721073748440996360302481487759060408520804372973802641669989977718249385489175680091838815931308437057704562687155707063172910408708667354926476475989160935362072665052402385899908045518068420752106999227203082970212452651670597561330570898009504328023154679653928385076219289004862002977681276795925107146641285192301731445320559896897326025562821212480445112251051733209679762259991717230584674409960315219917566538094850059502596680171297991974433308740055721698633954645939288765981982039541094708626232972714161876008104072300996296195699661563415477093752540449471892224831122443814974454892781524287295602846120037201828582925086267542116203679527457032779552644743188793279757391580808817178530169000676902670335427419767990669651573772350942332629710350249526753619217109091226770259954707502027567339134012901562824656524557539203305279175428459115469213023085794014706876611466328072983702881073327987454798530157282086679091419252245276779917843246546540455586722758129986461286732157533442508019285231886317684308826117219234429791920046142750338598313118985122936651454319305573379206916308416020408465973498985845801046463480691990365005653432669756513472415861142726988096193105594946943508578329464270200843107230759494943881128148446585974919979992943445535178913766669809140819504815401833831079711597485400994325961223827572624001885293732239381036280212206700492314852193808632730390510846305541729666986936859183562985232531448096975955826816804681929227503260973223084394765870565373003963254117459065220344554289067123806410897687530889093686529053277253989481365574134153275255668423103062887483042438354461075207356225666784576517684831261029432528291215246336584067079979174535831570753544258529357303152099667542103865566482502925512480026469372932924992145804541195352060397105636229471392215844785829715089618481168410144130603262775480931702107875692455517782114978220610332178783612376124011507861774476282803469415241685148693334689176458505603891700842571279700005197224786930157679435845080077774175477140484442024745486430236562866210614871063689874792846980885545510450675501064152874562464096652623989169720023699057156161749941182445509116697103746640098506290212785024105218518830070272986157457963217700942868234782957915886170268564798832594893644643796762226849631912011401010359394282652283103142862630416322190646909607599614238538460227344414085654040281165658919659157744671170332192828111543937765447716632637532040786213231872095723474295435300420326939235245732399163928951245898268967227311617079641828371197796110376853879638994102186252276016706977569224053317701341630217038484055063362463505719469598971071975366732541643121091424420385702184205113872739526417877816872453344632794022650946238967896987075520745732094965738846327206022369658429114733959095865454329624712656864973640574893062205891603015337007508347636093315132364484865319301741921918454710153230229033529878299068788136970959710487373059842268158151022047245270099367494516068642657932578804464988648074121054529076413874860117577521207495502275414689955560781403499480735446846959687012907058072153767043907248214741907912204228360098652117084500432660354402587009982407696179373750959421077524961448539351943099676727657087531750154427500623992182643944908739254954395952866418016035370188400441855448387046845189214311366302969020645159002137065116494946079915946631142275842796516463921646744870224167220552092913247061253405290649479204349277421794489322118543374216607507810620676870388397407783010763972300559488026956942988035511757392360708351770239453661645400998974607592203502836922993042012743013983392619754288501223806252701921281045265520167595169797604616178700250955908620817921944134437842460620947576824528636610243784128129839105212017705510328132877370015551824482296981378305827369561700163477315642713228266891122221201429965208263410112835105518556362000918241041812968049720121232618021927602859597673484389063890605778206185328898598129373407134815721270232347692276000608238325791825840350790327805079096046467554910943308390530315740294625189421617309986403604595139160170521908213912271155890866542803288579032684994770975900619101021666868287408424437387885271572040522631076009717925764165679297247612261265112525287034277707923759898583570756341201507809169903429892693157435585679807162144306226034914073860558252967636755377078068121542524579276143126740515213061041175639162257622421863110956224858452537117772837757444904728882031432927037926068882982969262278968341607004739656397282862538548354946340470870486599903082939661249375878709892910596214265361212411624800682256049114481968605931801651577428371860587636777913977014321362705188916408490536422265133727006825969578438326941020791533239638720892268265579188505006102668075844103924623417228191502043903209827456239815465833473625365273401945528303407063023579712044631199078999535463997473840612799268430676597336635640554316209097244881914374110771464952022553253824074277765486131512921050472197174160515948537053016109301920589225004299003552251663485623867915749370379857444245062279889497989174046491456607967664656023271040527715254766878334748255574410967979590406153237284723837171950192987621712248484232885885367236671433399220819912403192883698263918285540837293497854056157449951877226754422734829658013412309550949560629633833320938856639604928182872352511383909751726913034950596617400153853277818541474979887457254094577501751979152852041337355433949740467256844139821717730605731268497812671678752010850510052614445973297104121474760877905385502226667965532068183340129480715700570903846503088938955178300448208353469023644753038031160491032864237734261265397395191336192990593433298363518089361598364474370103363591102772059975673440341253397712161100027646340128384704156479795124132915417916616399347330509924656195173109698151628877000341796323812141383524892396862319800674968190705155749704256855892991803911245358667590029089573275962713342476902890556271814918134100756589023433942146048427268558343209189663541832673447679749908654279890783300981516551866148896240322474057265853178039017285138977646123905451533818329608819657635979043584945932146713604518926239293310800079622195299644234311961963637667611751435905397331873253830641059324345981759187775131394247021791677216033501043764516827686381162337096815175878159820433641599876122613143045003179193299896733994137308415717168065201430971742639386318156475718973023008537632006858770661889229686569181098909602076099849952891509850759623993227730489620521168194829475336862841574346302286943082659937989605266499667878616005386465807500912362917628624461961254757852219969972470911562327061652565394630792382083248326453041102351808371875669191143546352865176825624924590438753910940813813100891349097070403653338210373610484072395636915587579853359582111236776861517894025031227380008484653150114070756779453089873348357971713112315272521337989018219714534851835678513631994569220051533026508216846351599741102218972115824787148095168012718988320681888123844474415859376559654777166731377845663152416738917529143329849530849090902537453955251669078540225907467850588906485670387512748284409056852555229645305966817062140274329100391165999311903039290550331213001023157116161054489342115018847673814931182897172109090537323867685160303343825455941418271078899531746519685171228349666609667878720329152129347145401074263991598793526036835587655542114133800138704788163273477833143632142662243533283116718009770090346057461937731890482741756800572150756031021455628699966103477334238523152192755076222873428583953636083059805255110126656497702464508460874914555996477365536054746954271347315645352617708933138574058139604987568072521031738736357426711811518814336821394905909337297000413965197831558027898875974871238449401083365129979093403905204920717396143488133277760676054809801128392529835614908429523720230758206717540918368854391469793935882937266193324255517203735732622110993887336501686971459833240497887359075671097349945225433625623515006871563376332077086173210930658685850609418748955966737971579679402374089620176717672758205292945604907402061290752523126841719823618749564705279637558440985059456519320833137585220534537937511554674155158622790037331208540075843989065856795948863977297129806077156631399403784361683037161769778966880674955363212066104879436850055281327772936066841993740818033593501048859359314411828657440731045297109889591165157375162513418991899896449304269543160983064639033179340887671107123730856558653263530016096748700358147016361039424550084210128827076719085911012991888545991286104222497734555258303847614753667301650253108968368843842525439672178173416725148579011848194632741138828032729855155790883372444233489854981505652315128889509190391877762405426396142267023253375323521688817829889181962313569994887081473122505303366917569508360830115540325485141332246576694170006142944577665935010646581532439995607931074104409654887233531961324798899625565314351450438676810092437222396272841750429390486205005329883292978944136062747191328794552138664806972379715136915034453242731215609316435080177599697168006568463949412598314713744770085206313979843801068199155975179301242480004687186582385803012652895418332503723351568753668216401113846915238933385486907010776018878017725244711657945879084735134770318750760387979071277778284072356347499024817006669322212469984277227888729842245058521190089523721769412688843249275562283866469347602526664349952428993767153978124328377754510203755551808243651347322288492255836069724652397970033858822792260556205253635855732778934742568882221487301509477119248900937257691720244562940386384452122441612679027562027555250131052848367708543468715520520613759055648655182717516047743252597996767652282644244729587268896589726670097150255520252509913019141466938947173512589057831971338452114170779866251434125118851219085576722234090984068410632735924438570919264383026569246600041922483920225403787177951529247710121614800602794616928591591796154473879611160308557694446483082754983092810435170198204577204134406202606694082683539936567726093872215264988222764939446497170124252706504062368257414504885980742183758094689738716290678929462954245645992803379607176722772003990469929408034376817686660032462791689124937251329325668830608521587973500166816477321508241780633429181851279553118643342065466013922307874544126221611055474215226145098703148867484989676620285603547649641147481718060204355292040373310455535441843891100142025582521836320471807701903603248954355452691821474356447843986535108019641408414270561317233234568932458565027320397311329411138350031021913696847875784915816364952302014048093559870131639068153674159578031244334392263804170570365682459223602820040026005147218759300670369251340104677976607305068168788685250177931800210753223221462853474053473468468831060597066794875715124469067033676578636819204039429278756391790843296908028253787886944109830458532710916589916657901932125607807931197321765478884352095544376900965903538990930754507602961211266569368067953781046459061874691699739376524634650157789771114894675732357302943689726820316563518535490230565608864297161122528905740387848956796209165355640351058286382029642080248687043827629381363838116024551847140328269872618908735102849644606227562977445823761388104118053740248346024052104954474367619833774153299865469300506793585031309171658512179206725876706763133848771456634284412778194436256737847684070221957833792133598671965900499361712976519519450787299602828303646143720787639127552108124425518401513048032742447854672162564531618282934729440885121041395174325016930667242884604843476393311412820489468140014552002332266854261996338556555883391534634274513063208979943776357895997957398262253161400915203917612328005846662543602935607648043027629573008415940216305752711519331417592230193805846082486090529465734164544930394793228447279335016416157819293477404019988254942503043248621915491609961856221774806674840714843564060874182933876249161890776434911444931365737093005107037507463075090261290419554050721039297201615121413369714546221529212048807508126886601775297514308848649590366528464205755602883561563332383648921907667203214620435787556188465214798734763422951445292446537097373222391654981349148314598785759750644840328955226592731202654368829974047030474702921859188172377616746377212188620901870849493790912550394047819019277758956068354993570305718561126563520623447124886268361144438027105720894452147602925994869759183548101046806390402035930724518203426622056665553991198310155765503105847277842388607519111095097317677954283461886165566310506131121798066133667151414836701156852372916925206581588851568778406599309971620059552501385409312895247555779954063993385356727135504648576144198921308476647459119351379367593334867434774650599850865802504917852647720514846694810413660561424180112700794333075820989915414081430603891644716911360059584864596702392393886369764442050521238274196416450106149804501868854223709707054637321676037561809082715182703291991850508188663444191671603931751455652346308581429000646980384336277344916938069424015727383876948378984470654230349767687973112373734533840459084558853664702072231465280536077819837661665457658381615345052777876213863991822724765733147664405875608564988616415398991675095832403427253097563575375518340549854197974935378858375782021927175070641392791406839760068844166145792223393790791343813779226696336954703674948468324954149151912275911437194313398329194718297278394669437577398968512484458552253920279717512076767087769543429355604024390540383225918415972471081948391020647820575542157035084933182082501275566611240399771671939898594525429838623808282334779579942416369867074115688821095125271181004155641988839855320669652117737110681102074907102760588919569712678957629991222507103624082752966507097641527148728143047346000216903279714698405796435108778439657881718370484815928711609302011917139585394772817604356088485414554024552729946008829923801437551611576853325552820324438489100996336491996498777138553728646196034247025123024006470594017249533827851984239331338840525627897098780316901003216839466604591541840181232801826144559776389399544152198063680576306536659123986292035304682663748173032028480967551129645695961432286863130738969627786696285650304659654055164096862642907482404896005524210889492312098547546720509669811638337411770506749383472674993210947589384395744725955189817926414818541727458212918594242348800817166009795169317549291931663192385003251338423570417650738528863884478352898978079185965160687327243141147045508896407286133664444523320984318045451392642023781674679074596783675878919428739950275590379190596561689646279164175290045727031417104846800657858479484077771056593692984347039320997859963105476520681696712788691952928327382444437589734932202924577286024503356706078391347629712165310166966684355756777654786400200356058489253272413373317218990439593606655941651784536118451956370861546955519504626630954816430832613397990222534841063196695212620616827225270811733432428689549158621755538716586057364316934725788122545962685855257723663372249130504451235572760708354234414619548540057192855903817482838523246088913208311426740686764123203197849104784616756657185807908998620643853209683753264315544006194450851570445599250913777404871867812030606562356045056210394501339800761516875347894680947347947467324310332445611048103109244246854158190524430285135705206523642855814171345921944671570793594816570289234534058138475575644081796635882250328958374525842104599265184338032007402078900455005234809530200565643199453312547227749950960690541729336181259707250981447182676456202561387042353606836606819605966790985899713962651390672332004561608716959155606052703912551903257486487805559802969932598117561620192089107506425859302311526250202049832820292063055388549399435865110033967673180629725397408954190574380167304845498733003579100979510725047213243138979032555559317336789292652966328485676745304638477553719028807056450958500985543380355463897700006381553019739033297737741736117660061249575717331588482278309187231156302958737618261248601973793346815093186464550995406219244302951101848906404483583756167714336342811897373277532767243363067113115650437488366584500845557707967838403131168140833474007586951799025933606433691331706957597357811456161787582650630198612258747128892188530989479519756818877101462592602119253567070092586201915662876131883934471994328393834943437398530268247186013299797370942589234463066774845349217043438857292677848763311352965532874870991751858751267225485819430379807010419746304949650273041334218866756665441126575179707324606569294904768987284053064368293999244448854724998144371386080768444781037147120567994252888137050826667950336311127906405428311427371677753566008966162045039893086220109367794950180192404080379549207983905398636660558814447284790852782555652617097429153604782450851001542289605279258874643246068319990781065490213891152367552964098521794649177358025825072935965241923799540898861650634996680185722207931880808586397862591669925508313594171213710630831425241364484439331396459828440317616349670620911484593102943021689009905345202469811238677535341649449956122686506249030163541698171916265217651685717911440152305698298406663984299607416720661162075627858312092732704514274091378896660586800359030572582448981091094567236142267657962198080484989347583124160466630701586958996578955427874428256335515255309253236596129613193973503605069370356451083853027816905725264566410517108854792546129890582263504699410289517928071003668425012670861259119720659507277838499543010523106558519052358140068539280206784512854637592023454181467147271708706538022083382607531902925026438757010346211935476872238054544098379788689477693948202544968954887751367381181973941059136974699991018119942499844738081624538993964766138606654359369229763905010457677310162269363490813003285093205012435659641559421793082805001351533516484639104650080763128520358430174256360536746413433444262648686652102383338881512756321958850578761684453427665921863040904963914648779498036084346087920810281704065832610332333316407351788324528533144450686079293206657556307093147767519620805038966769901721982052386303867615086673377322230145632895123403129856523906200757659173483646371495198750075686707366852884208571190420611886747884993716573415911712013816274931133851655829769795075312219642005027463836313023442249304469533857486114247056365990460979634625548875620294731365015862619732099407004502623655290471234797492713183090475494518867600571460256134289995966904945450680804879154517475849522120032691004394036373127884756301773329248503737684315916316464125707501541639979699518455637602079164447397903199051033662006997378769183787706110549899125534047300729009095659385307512103104073521913796316975295790939214951654285637851289423446855122203049920197448942801350709656356293067745493021261572039535719878163103365106534330712058124797987435629831441371652732317576125981120116254887805213256286842001325480512704261442791674623110728623040816783579681057686573546341370392917675127083271780870963574335528286835348808571591755325647061844349061950682098597787670701358506518676089506699546043119792840363381694343884115671126159877620028503362140583968118842646812484989337922172410668429802291156953372222822581178460464126877104073148781068537733051671023996791899579765125660925463855527432587123351085108459324276484894657554967654652808602609108872672598105590486376184122998827364754441786192018992548647035964475659205043222221158924106312758439457042148385266463304653011513960189127990446156339714074751939335458009409427985905555156761813921981907794251902377947154407645913829466526585714554471660272465304219576323306624495265547183240605497656054077660225724859706220254668654139937557850250263278030575576776316023844074225362104825529189196759762655637310055174633313478031270354164534692124611715688357700261569286645316736046951752377404711172245122822991554760843461065317712376789294245919431951527341864739945002434871565771234408724784147431166957260614140535964979593567335536899126533182553936657689737227809430696642814582414433386998806884349253288457194507814816514618250902813014918130859686565781943820890123851978266629256604498718653202889392296489392577399647410161264697333870425562943340262269193832460261435685436607250477384968894020255587534541226852032241646035577427625097247483305427451002422815383653165950627062570482349705086112274599704187139725421042015252694038501077357182451002958243437537244136457190080539103580276190655191651242041808251272661998537754456723961812667355093385992378421414896451755974913925053742876904953168085548623621192625314613832974852766076364785294264644435428706871162480252225739324217316843968064172325557588088079934164006184949726259887355154918802471546153618644422543686480592630949630156794656099084652972913455990396254448917645282502533007054262010433027740655694988450502160116817540374364981435838770530205174016640072677786342639824596200628012019898266238486883480773976401984667913820836740010787313970147540471404500915028828555211775597207254009835584424912132081525992484458412193096757542044379240511034950223414776944413701541357192118497189737726463501947993693029584878079442386463795300965230584962632597618281139644301850894247666639827876775869053803714274043355548067618268549243901172191484501792459358205594562610584530177683031915579271905364107098715151124747855387479294915620920879180504961272184340167239513894346314041078757816065685550628523421249726020502174371710086452979384787485471782774780741257513739907465268665826689301536300506851462031900108075571722542984273043889423491484293264700236226205895192018815814448960386490024342959427591648835351579259044974475528169746556822937684338653094937362024119624574095008462518611530013800494898002676466902165524391059127747219543577974161140018857598978517092403276753636128968161754082911429107858729531386091751840174922167756324588847850722329537926329286982066854890968466104047961918320200856996138781723333995582055733346347610108511523394754562966241292572745578508629515079399274896191317583788247911369331055039539319362853036113961774257501470820495823721091885052555525787738956948851932520030417399764601071326117904796319913660976993448700768494701568785538536368073701558030479150836887843930936717335835365405084108775097860364282964935402054489554632952077229079425819237462892967059181268743285555023091422171094739822903883309991641755615381500202685418499174351570122479876341572339477501269703201854685324938312434477010942404266833154744305536692101891944622237240110184461465596789186873583035991198636289957148096775309063524071358961042839778604262729362680145275092420223821608156600952341864923566474038594057891328457404580357716372351724014889857645730039030773081019168973583796106973260566721875314444539539140350243937540095379869574653058333914738896068370620137375224422871360408201549630436084040238832355715625701940591057227753581899357774172262603495179070345104616126810255308076141558330130377478509266665526700376028782038939191488626930499828872004894207059617774452530467621400401459768894798629920310559579092975779880737357601221252513498723550696477974032968125798066869288481448209184974413489368436157116397222963732811908920500198740772432408605115285758674039085572206768668112441858785233327974983603346320107457089699832603116598644159807312639118138907228272330758536570449284853124560450091114039492304473632786667659381851731303339597795176250733607609133410391178560272094265214873332811112060058731407639476831829361585273910878841400269852046898946726688284648567887544446308530624281638230404749205286554591458965457525134291667956490702686463707334667485874084454411643300240143975958756519051668917637294726754565773961317178773167794140879361077197689814257115759802650908758387371382728416781449045962586355285759968484878354183796170555287115793482773714717690266256507335437254800441565193789895649903924387218945398729798203623274525848275694573934416422298810597809475241576416575556057428464836378677274879213809745093172273398643220686993227870699628565888784494068615405657693363301006749199500786538723826266149289851999452685656502451808412399713675317549563670093670449186079350677366618961193016468802565380084091151902716182094537744104139139317084104095826392831430420886157595983724165012152091639394266839734806812281711213415098403248198590332603004256505360479518366162584242016909926926168249388316834499494008952668673393727271419271411127789468222175285148813374403285233859507268507787052621908067233043540371979260334000269092679013377121125015509033264139364891337509177270971340200414823381925632271426199780172976188514966943046155872856019472277079226966355295456951545134763127881443485171564655808551152434809379730510289303401904892964520641883383535047551435517290224562026425524096188860254576492664422941836248396968288804964931090881973388883702550759779968565016623181503134584364754611452171513916342976000597650154771109210314115865702103218587845940356544930876965954584651949345817504158674995504074277391054771999161036042589980459384082448256110734515762521336251562191997851515032810314107740875535854119751378758831137669037512791440699634634578811398344890461899980967520568327115120863861417500629863907065695050857880608277008843202564608568009663770399116351936066194019691720086505167295081159417534890519547839303532518240930967638763564314272790983581365290243930495725050270858371771901934609735282763307958424039372835519076498637720282212897656634576647199594513720382960288921226093088143160797961991837146949382539288305021360500632468434365893285224604494481086581631650731325249076282497598433145772838958253589859496882233049744927713743563747563914607686107663758167640709117787197937240686560374186875817732299011245908662786211471696875250949665732756711395602337552584132591766874514625055026508372951860343710211041872584583242530081975002948075134326321142790266311964647391943535768860072004433096402279162498556090068542031531252597689852787392618751649831389532039631848137770371522572905295756538132591078775590433093169403408195855267412629655906688782019369325416286875173228542452443260954929966378017329506014296088440996552963972938675985140001562591269506154434343062248607067214876039779202534186505396851068552922430653017781038032883283436836199073605459237567547590443246897394250817991709277802921203320524167429151960688655991603148817769628006679234504560509772486061051313520769193504481918305596344626114769932233947329400209044203863943137549026235848702835658642859531599620909114148023734712791440642340096125195049615538671046777889161500235453753286072243829149990507004932407028786659918967179387569527136144999746109722329984102657443905213507839592599896415280894947569852710775915106871329220257714774729900633444920277290717841246306253981069586384801476923146444585401637423031035609249415768182321372037737651202070307342374766804884042221816185757245937832486280841362838303699443395390031575262834204100823466646440392977679006973268041747465526320663971933160966891697873161834201478824089854001316821838925566721689992144484954089675716041774783957376189155504478820495706503974430206847668385608807693934931583038198430391424083720347528467811439393853523318903655526853204393969936773758460248812814113328991873336382408441705843418379127340653099791208516618825656341844919943379334211241463313351231944786495073534090481352061576857885316234818970917596303590473512896157972613718685268531385546249147973552988456094689695756115319088374100289829908556636716387552237799526849708873929444596364021671798801395957524715016967433502402368667082242468850268054369854694609932773522543779355798477334605286067186770421622806017489426824062675452805250908434976701470970549230061114083106361393173381211192318837012663921094733022094192508487932162002300118057632295509022870888566679627069525691408303340988059375061327273375310002630753627180161332461994510064820263350818569800416428470305783732150194764054914971247888078989927965256837559706952526145519550645303807930595923556116142440891346186634729669918925362827214664060634398029642733905832690136712486615640977434768916746829028483420325819719654329605986409130583235944497057985451028499968506798773098166991398412529449778107443283402811147074656337847421361382216662806767472896818094634792167374154524867778089021709391613951089171691105616609346212540920535896108748449513939549730195038611068124145948116163881776490189671562993741405607300316675914750135243189938605704371350657409047328864624344713239294230478728440940933554097208679369444333200068159998934979959626780266765032605501991693731649916830190797330559552425228516202659688209599660811441051170665057329646570193065838839395796782529409053812530156841161035084827860527598935256477049528753181368492509114938688685663454101368637601979911275169611543447240994773484868223202667128703195744450418745990987085829089724326324054493198760116459179617011611193761237610157877789989875913143186904010139305449062280593740489721104785161182183648097614468857116210362009399309732194036296491376028806669755638876636393829981816494251620668343606416685529530677575894841671422768521989496810552071517535027525577835441260099845505787999384234739932129627532455727164441293342076281922497247757948266223631992503731624872479916945916725420562015864626240405087360087352691060051580320140165171092966116073528401222169784701101636652909490425051817855437592170324495082887403292011840506936279232067165834253841201078638751966695148074614928591489939846305702206321803066505779970264815362267266220950049710715661638804349830140800028845025961799337166857027157723689476684903591994496970835927260702932699465991527329796485261144574954292798740083571439083631137413621469912179395079590106920150665471780417733017515655691993976757664139811392166146498816874205955375241971907232561264887617684628951778162458486144735820821838283626179972957136087067837482118932999817171775448694689191598936480895302899319094987951240484425226904656947418095526387862147641357155893806075643649497152199510148408246388452749042247700038582430949489091116952645148427772582618553022871272530067896686134275926849109418494026927472040050154469347906664389857767219554282690321376564330873893027371470743290193777284492009936329348194748309826821625371926900322194200460964800539419500429752580265074577159899400110262408013585586242053552665257622636230617118367744064450440622241135988414004231504476546572405114313551296557789210411301212683033486969839685267611076773819876247457674649591725357739745591030937190926481126354133174583039073111163963361471395939291831533306164743225155477184846099620227880784235567365945126584505230238606343247392681109768160634132816820945496810629269548403787149299762857939003617097806874667003043813290419570830140137773689975180309784591407701793306219726137115361680707289820784599446253418397563516846998564986676448767907821445586913797515891551807486719438486910831863851394266186438803834730466152526528424051393435092905507947668975658785161742731318614524907024929407099507468643325720424148449765486845919150744767763548901424012628416364992365813309492677107777205782511613682193089277721265591653908761911895137270713950019826307546946920604585794182472570815665959614276903680982280264530314164044128149245319986518204160312145653957137748890366398685462688069405909017492307640451393510249532262830515136975819664587996696588560210999893891985330385216138155703689690984750304854041277693676885670777448424648109114068106881197941757891209190967324791959745412606267915378815530399980535500578245898813502264173930840353479480895775504775100500271250078890228719155855013659033139264001711649944052576252632440574474577459615451483527548811481061289847283276871238162680302430821233949795162378622792612424778419612532982641507008867439677716440692106316281141887979953746303169173880962538002559108425763347475027149660986664501361038778588702022424202611300068471467230729168592387065420140658878795077826657113513930171439581548081889841116635255010507042071751775491896592463799543735695068040791401322405674877497499584666664377739191087849004047781709289405363789411622663484732389776909431163291929401293356677833181651642492296146105886634632874411362967224175821843017852679152215310915148526748758501392962768501832409014700459221363460578377522446839551676721071685804138081306758847183923921369879835954007050537397374256754233552089937416866713786759148223046180715801616381281906687277834732076857332365231565537889077078627367642147159493986072428848438583185561366803259267094881852975898480969925595220065223605682448510214130104695652010001179219692813112078123605325959826460367882542337020047606132929126285192421448585224990288696616883067970920199898468442629839123131444415445853201409462118075061158251163429370414826799921861974312566378909555565469828737802509555592269540409986164056501248181801442998940815228053682425367698584224385064180807860102806741093504453292274136074776140365548121846999134059434503735338792342972795118346316365321927879125475301283499452241918411480620327368421204678447890130269366699122338469689586803668029719289648797170427825050977920213173401785175191837445346371374265245436597427657506674601655906020834224308956665828196361359631273339726470540501491358034029963768249441682543401766678358310568424326923169182965017926747261386811670500531865556174771567021259401679763026100883937989241092806249340931156291346812301680993924813335453855653355225237492210531192936077549488767019000334532178927054070046696605617415524257620981607232370944501566122862832281879148382167818985631462126325902655573843774571037083385222983675567944641584148917718583057368955436809050706057939754386713108574557291078431860226982083695117277166519278806132477567289645756047733770829009342689653940534820077617121371404080093997480026291466748452367853373005321011836280545097585859525779916795706375230681957563626849527974267033548719399458787827480931486557522970861129051176849081995194270504181069566251228541681438382509090693751813163969796866366932125392412927648339813835174649785153104235658494809243264802440461268954102525665947743402635823790730469003109241956003588880639932728343297029446069911400426742796987367286150049556194255378126623888473596075176987765092111092581946941474102406550946832839216045660737706546256658795511293468760246848102705112446868380765932726291244029816684252909603685933070829161140992007939921747151550872529418253354701474466702407404832205301201258284643897742882592771205920726405155004179548849830240806837585916775311275694105471310498425390708367344025843870225528791229515462770985786368147079126452999197253549916351073607074518820626048020726499806523958651653366709648023901470641344401215863699855970288858688101918083538895581674397925643132305191239308666998175092881012594385134185408093374965874523259645685114554724857091699845480550091104368378924764450586028800079293875861330947826956186384409010197359499479629376777742154409683329459425525911272171415722957442396232207085193905692406183555058656173011419748945286569482718234052491311397169258508175664106387345467168360885366824005583313765249904289989772076097018809839084157659446295382163250111594931700829226809187734543082693975359098724168095670076068988682406512401040722115461763580284649904772735716617250119398213760598961678893514530470626616487537988705758542743357053822749226651791779282670022682935190419462427246050000329817899399968328446251933178775510421079277333594754348752931687597684329871418172305213045848559712528985480832293804960766368953918435433186462462827598319411696307211318221328540807857276650506672047175283180796225097953103153064889822981451146915644264299815714962869445786377549584842400693931184384900286463680367662130187906621983744103129753200070375321199932515879145582242734358721996866168122953820617946093614862048727077178204423439635152300964999061315498454637570377318296306855012940516870454406957875480193043932561364756441291341139672253713612991175846784876884284744649011370960730326850554672415517327313315289824816097550655799089052288786340606533449986719407513469117293240745764696054217059915046456832026254216337277160631467849287263302446011327743344442494353980793163834541215339277751672928216797029821382806780321873302664379310782117685104919350698723907166906626955812535678909168635413577118659460606580967678315788147311309219177633922155854777548085795578958113813698272578979026255224484405395767546077885265636860367592834866287391298460773203363592377301673630622172345313472165166520677093284189781347047577636425441657813539429747558467375403193659157279349071478455278936112046128911721505394336135082496980155004872648525487923600507151880583287682717914696553923906634853150831666881206762870330187639499399553250677738785964537695558911902437219583812488072511414607206107728532490703933583608721610601037186329766282843455636203599993548227028260329234114601475997473757829415127429059100112686599483751007497388733911373668004970495195878011114994297665447961702508772222506072548765170230423476714688218848535781087921474936314751534203273654057104561197756031707493322475258578905147950716978941354448686069820784159478480407113936495488836697533651951908232305476891626847119760151866217298990607636669649100191894822654067048912240506748788836912343374957064226686948620504069178465060884754778298576986593646844177394756855408165966878362105846556144118161010708409356349678446616094458033328027433530241541008414005379453284796796974562173331420188633878717749297531221145916071947626754664117660956364819248018546861342218520479855903824043359221286057270135752608409290638620934712237268974017874908003911126650467037448110773133558690152113457220883778244508604980234283034295565231643024323858838977766267032677336686722498866254734366981656707302720507496405651173845609923061964323671701424514681121229141475222420311228983678916401710061480417988026175786737406633311411086821506634446092887490868616422647944485394123635476165181158741842166502564553747879642964998263110091937195894978004215175814642595614596763051570804018331083757017094883651301528632223478796007288497959083894291641096623426782750062397620657204250518297265140070806835480115049578034945690078052187017051314541599416047896103019893937645625150993062776797511665806982160413854543801013055308001566751294063748523441044954417631129054542548378320915864244052274091252827757095442715629641211346474092067214259537929778320903729839456369387942152266547559418521709990474566248887066457036816696640490501263245069773851826972234193931553727916802540576787745346601836242836220410786715938556732070157024950808732551021195373233386810247117048056130663709116295994491553346379798338234986714203725989170000574831471709363714932871449532665824414156741770482870488336492495982287972309454069781389127151059604195286556489459731042768934716947472201820765686134384214941286730342304966579796207660568413852954408474708094233484404057818809247950121629413993462375557542167920751058863682418602759877778214640124215146443764904694213534529606254968185329992541700222712411705744824681210722055383532888738842128411839399021210777858074019603814468831541286382238717689121169238542394960875715329326022717857568291995448869802864522556495080732274008374289699143510210970014743143742939471549792840713032522743932735428472878745826619259487653299941469463777212304769362270195606445846601992551089446635097489346722960883184409269270601712633238486625146194223922216365890209346689645967900327947206934755415960547764867107611522108976116190478473164390172079453834679237961997920594079597387524428755867002270174050495467622736866981375141860505337564628465728114276787838735442251479900178946223834711018823841915379675301826713170363548968071722478111883194088565347432949147010113960538272832618558969722139410082247850754739955294651853532818017447174621191528589309584580143181655376878848323082066802413044204239257623798307307879029091725932436739110674017569081330182417144568818449958486980323702721894411526380293660570052153190669814950675688189882417462473675433135809271672389518234583803146885660161158475118158846226892626968686326443187526079816055583926499523274414466786415697603090839570859463770461776758803753881622387897728580727831621879184667397673718112707451053809903093952088429573245589381210260738213411948238332963716904379661394316844365346088496430726801365642238557462062567025165049990690698547049479828342740458148994013195819579680478542733203077286896172496280040560511975024603622958878154902862443853801720464430830430230604147719663989897955530484465789093339262834609973000478852373113173472311347381662518975070244825458743545929031278675819204722985251303590583227966265435417906489512734506597890523952858533172805497768555132731533226550379257462902363696196076146705028964131920084026915065959719115310516356141071902369177180707619191253966907131114802991430959977297383996570869220353358964230172868105599109624554136403837783329484192746281006759400548186781760603972555195827680559419802353775859298065176867771495396973814990709685441553302227690635977859144058240306315795349852476983896667367085766130882702156466238364274730476380567256203904645897186596446401254391735271669297025136955390787689779854337175674908032653160030694642155210303349864019405238572200313765519950707411668622385044301944041674696649601697069970524774448052192040363653655427428899849886889401176725587307901199396083536507078528524949083549252711331198659248619964020017132890333158306847050960089658456727270040892986785338902716918796139255888597289932798538167541911322533904901472276063562316536672569485308917375791267074306880843851689542063745218384395806554314587253173099541645990966779368483678711085447997232842263180903841550237428354211522223870362615282201457653349039084009130929692471133992714028940382830312644921500383537467718183384668128065277990688448481384380925687188638269934362578318936712001388680353889149609947929806572663325246284317967492007900277263254822969099962607652758786281068859627342903512822359236252052223107404816674657689283087004219612235220342973256365830842159635496940105746741615163089899460825894556952534880898511073286186295663065641645770179263630924725983847934938528538269056907830944341908933005735227543601706465434251805100558583625032673572580494375165688309227494830068637792223937537842972201127503606883116814033424529941486968297307122428952629158858846328452653516343362005565087024532820155997494369284859135155970005570642105406368811494438176576392017968750655347166461687448479825838822891944384728216400823861973734699770152746191551687821839871768837842952381748657032220835135509438718141670942475461611234399987022658466410264377808516902964721988214620382789654590387101433809988487064973015859688734627497907294417937951518616456822838834488234020660732717410375151334625710211739660637508632342919022839919846688196628043027086160314010420835038225731460343414431096572366045776928570335326247481359842013987124028818255899941356564846263828074618825911312359573718085885564090015548930791916615206333210791034216198085111843843087195210597626287190215906089012785626925672980214935214922019695216318277081704486999748080964018100396857032852101883947467615588799019037513083620444312101345017490796111640259985424892993061559824370013301110904245687132768615318299224171855964557999715443578981988215728732504539820063113198444351535383350427015780597484988490889806870270577681923815781149806557342546278724130146113927538922607339480411403216351940463292964019844373586582149969415666312447231015296374574557287128963837297683293379951971084318451432653367597454454989200124975410853508072314929873052560700349828460266543871067523086932048276762565011986211473323996625279411489269883328052766545734346186144250523992791016860334331005376640238148498833054233081184359346836388193153205161963841170553170602465881191574571010429050994197146892798413292221090718039733952940066434160194157077010591829973641881490303462507395089358894297530361229909230728642748683334266531969458935139724359865117106027504429239579810688219130756127303186908390934840674410298409619897264246720344740466008895290805706767171232413848278358284559748440870865711844459235775967180810414513985126109167826580414035354765804276401789165184419645990895339538998676025845420017760022740087427578828907862195571211287633716790513735800055363094193205969744033964115171833246637015126518566972188418377708475858496148633204044826396543803069405311608227514289720535374916019119890838612823833072393037833409526517860159523676157952647933779092459859597750309038168629443347837352851824031434059320372209117589874429325528256147555358982540807587746324746116456925010818793853615084966973098993746335453586193979716744404154753851012677913645484275084540932142301069475906164854437384212267590730861431509649683501889695751235463031216861136877668823790789998269646936102111456667508020522693830760481593782332088595896662544270500049589058117076130074409946570967548693555799217128213517481555190950259652504897152008662308247229184892427226155742840829062181610549305302073175506796361991227979207974620431296142180200671773525445925391498189143759516549227259997042546883651935654893474158684864387832706456192965452633356121949213883949152012409755728955523692992049816044353822329765907109372400096194880025665599395861107161862172517901463740899048055731977034469746689907512211591283781332188125225555946715147266315657639706474013846411455874525884977120479445493202048153823915958436688772610172017114740053546601490275802000921867314472977562393800531920896930247930202073369507158565696629314953966381615765845668784164031097936628993636770234926347837389473005254355580343960806463895353931540890704116796949310232419260524178247951045201214579699775046713086614198470308446771803001892298265872626817550698983534957676366007728690940280936259476075152994236626490511505816273300251951779497362607657761864731580862280585643776585181573373128379574359865669539544373798924585590838088825296716462737748785199774408709750725891073737942705931564258859022166862791526799219882629012604892809615069953627214873819010905836097961076523855148250802042698461172959851526854958693650759545571879951387158970889930149642138797090528026486954921567205006303346544768521451063022793737259625260442636561351425152657362890056685956282672651604773841929000609061723005911308843560234545782121809300976142234946948847736352275613777294857019074696770808858110850068171171469977304538717479521933232113953647851660940716689860146806025543303630452416203410249687183950250318813526224420961744028888602179438906508856635914984381028408152693920996626594044145774834646926867449337169530313296733585009441170155776712585399513284532760288447456770830187003854469834799269337918568275385848130138655488632701204665610174270898050656414703997335335833699752491270973435181767937309392739929954233181543059931300087808578672878405635934119662697609433288743835910091189544447939176146580013966706160530145639928416899625043293337478564857005902506645507579176546979913538240290213554463839923989098881017201250187226392650803989205909221699260946954334980508040250233979142054635945797621683685627310100627343653441148941134350757639203741009925233816568296994577349371304452957889050741348698164863812671392111743416022707826918473695703454579186404354512335166671603315907362093061556334866753781708444073746647192365004482943916764545033200079595593246789708286071990051777823995498687134024932786517659935154879197511435034426604367133799985259429698212716700390813953650206230341550531606990495301866104134932920230076400173701045567405499075304924409678092788367626560423896832341328886473628602123998549207655313504958796450919619736667801450219567669621005055002487728495070294816236751493703685994246905993418476161112427284840452177087977048130508769997796477634806260128579064020480860571254727758615668775065509231230451195573034571800202659333139919859236865134478454609013807350047596862295373669425307928018866209265737193853122113655332905089966443030317893174746385221869025568338137408167867174153938219330443571792696938155483138575594525371906276427522776959225386030974166079738110001191998045220988663807454337650295353130515999782554545127897441007183535105903227574411121405806094660543271120583089157441601629795978844972355398292192546354032161034829787444545295003258364558873675712178777151480727391187218151894347593195306452175710551603207767808768631509741476381102193591847576275913485609383090201787006296521997419593914658269518160890555687422716050985772283400754889980747622008858457077728389369338912363575907991017786267915559415703673289788110096037211954683004038891449827774879194019575259321683465031204278433056354910969565575227649208484668416674352985967497708623665305175200118923469147515933321164572418382279948227913002645283422320001534261143516490993226062411731002225476474834896971890916635832041373840006994190424036086964775049623587979404700331801335365726516847450155928016873706866634699855065036419807869168733748580927697993665474987997885235283055063690800226135292844606590251306776252211662077625603059983813075710017627719236294325120162412624414843870205939839033674968280931132983773977510253741295834730959006263767229994647308933859492472928709130337394466389098417987609833243211918655463788703296723994565178073743514714986337368509767819997493333630378482864680398670979554022450018433946786789721514813305892420449807989796066842122819505742700067537316441711214048301559579538290968827881638661817001218526156947895634833482142941426617753114889779645827927535016990081560838864511479239378042195330666821401441749569872601661869454623011594017554042967809894943821232493798403801584804620927084645840474645696152750112009810082115900637781532219493588410055594458463495970728745880718643523427315597713239589309223997619795889039387034861278673524485810109298609315072378164260804593701400924316913948259382834696522502927625104440622495837923051837243190033695911156772426311375456702951638992864786585087515757909062551796336114844644443298220434718381738782384294352308998190223893180728042101368605271989567614335620356714379773582601564673635688576942034800631318959118609454500414627914280067234813633211961116732858469889085714176900930420133958889477124649652942020980847522704228202178910656697539043020010358184623637498325614173193622195231056456371728866689401762732253380598246143036242257162491449431067138382279790390139184066140827102455060613772669294895091219460174826591093943234235442480441050559756102819554012823451041291153738231549399033345748413105922339185601389325195165853591813311716323780929345765546443766451232899546067679406595013083535548182703642517535190121967267493620031743817177328036934145849562028756648038768474066522582706942681945459381021206028364546978554063334356648366853765262386164497982279724601590963063114055455238781078126129757393748071178209418251353560975620626576065822051098581914352842193044555143352545853534837860810524992087840331724761374185196054578557859480854307931188705492737236961825337912309747160067403751894280806010343616625300796871026774918956625616565698929644328841267440761434834526905658204482066336203155877263884154367372124999989523126189844263671951402959809463360806438523930710320105436265701090637549139144239431765173496851989318796699807827832570223789422086114654091816831731338756529351477397591898427849625526287038977604497639306567890069083521725652574897156817149635735162178933890771426836615493350080432727752380475791768948096410487463762226373072226709223188950734098264390554800468474245250278550933189845628129932713927404463755662812419196962866628466069941204052750132461268078161582447234097736069130442269308451697281473287713956867283164083223959410582162233232877130303309996805173713932019002459359181365521790505183656308257251198513104359344200623063900894603222982541866171872432481208783625112878784466831351306339155148335294724698618350139763157521111193833408860058899103936690746274624574263598955416277023572931875875964728719866057510864321802083291253010541002715534115882282216718326414030303748110370514838517760160116567122454400285673763625518515982443666030476109500880938165284914886582933315242487137336333918141949842442943483238734075949754724138943714344295159079672281916252811000052030072537300019731485320564428523793763139458776671837806527649344494086092737497304462005042830081263173093184740778687405416239343897493694172847416655359453160872948280341351612025378419527309519529884593991346878529664258975509813458518739957459561872654862762703585826121433142477219839760279950013481891487629865961928358404928553398378348305104709277690397535108257692307882339350560301292242589531618486822858356859334248314140348184773087151046266400481870373537061856870578362179502039006999387414941380604152947535630578873958418186053934526459359952487249654920658507369378509291697450533454339133055857623584899339239942855360998468105435599405730296614006090845537387696891863321830476087958000534893491911776676466480618328751998104372753764049309796674626382883783246741643061133272110446791591563292289815868013337582276233799370646433551941188326039708092002013958638168625998494117084629221469266063011244218940575829278642476737459006049241617024461742340843667224379611585167862863054983296982807626511757335448272054620383721908003719381606410397642106173521410518307187637345009897049167907902685575235633253184488090184174556413544529287806010133039344143543946615282428291856379413296422616420998428772519590504148348545059101651687023603855131435813410191987297395020293840451521264597678994814273445638174178330369554938874888064071760705228059262747502389598764840641943356224710249653678005015770316074220790359867362321536811459592502440429879947392744418969435010774762541226884040755824603102623988254751174361847872150350542026664929580023072675176539872369905933605765737723097928125288830680515179673284295320317797516665184148715437856298728109861005177933845561299040705809150555941946658858124069166658767571447291444338396666528633368235320130598647276718891736220245118888227382312392444474169549689379762564226046279962736178549263911204478646450803547529116088872113265670336933520308779893185719798468315967017986225752581420523370727004698498516796409615597965680953233608684918602545324816566703647860529057690956338693703702983162910017184753915535950260161183358547758612892875975494407674468111051659924280922608804030290742628644346739368275326299157001423716109017370045634038830908904888108944939052025867612384531629509687577197774422890454869191422615208966466037608393140648592483504489001066592644227859440879843877068624676647042802422293583369194781307979567021401474212506934982281921779527713700288782144804554429953327772965660470280028918515579777140336547785385311012119156884473884933129916733258038970258469062606109630507508106719326390170348563217767465844240147857800424646821822499493067042042041776876260042840025642707356058179857944436087143273256632271228058669030737414633201569850367865576027453428431391247831510056057529985810438800262947281416105672602951007504136379774897220318813937589545064412410495161586880505129188510183907987867019589166252809806718113819282527838022679168116933318354970621051444751094470847011037533624459928819756754660291957852940915111170433568275461841395795387476810068973653948451597794744019186948235141999726581476950148671323081739063815314159669785979202762558863182301718842229449764214251110248184075670239688441803686300735819616439160307404319940688129677152485917476011139844736337458502852579283515453104323807203881957300746443504619725875927685437353789570077873520289271351476022042620759961874534093206639361114380631444400643475489833600306472476014249737174442579433827831461118585006692717140278470809057668941708651950584243826138506013327534292891225668885269966496826630405645796780276291683031944757625513601295022585188280767805059308512574116099829630568149196245158883075333987248008708420148210892881186309148221885361314963527796783804024587363115789462815778815993465640950589947152438088659460938781750997827855808846247032126670222313921465171531745692399285434632789966889090479891665741015922983802329399801049996744050821243267969874995670791713805472870868887191964505355857890993597649050113439958831674734512210249274138705653351557284749807851003986368939098299921626581608422613119625326835800897796248595958428548016952285455998776767131527413900097627503297586549817981269473612390625684025368100696048537193480249502079918962675644604143867399603820498985148326280177213873798486523104957659857555482693659666965591285939849294364404355833263942501489837815770369137713682211361587368365517195461955009330498151592728848458560886985908930707854310192034728074620584097795842136624291564181116803405749266779287753268109788039579283787027692289413799476231698808578261984778009802311400604930384782941396920933047821385470248533554189765977840770437583632776939189205069934031011231871449883461040103775075338316341197395522114952183055521046585537147552206660785050251196114689344744768683011791653785530634022862511769713811142388401075136090991630878024971979885172259826184326051866873586737536441437433844297642103603640525138818659411973454727758475654813127669420381611379739247357677083641830901358772461493239829936383656255340166548008373524985556491632803423133567888954049909412391442389649982699659989696581367936575207804258865760527313468235216339538017171157307323318063225663843445793044109017452040814147187406320443599428322207021651722486672417636902247395443957535232898119090755756968594497595355000747158647384806687191465089761133923493118947029382595055608803146362847597294660380063602490485717925849573632967668583339570566008534457318146563638023091567966138661052058281751540395629790969865016647144626839252659699980144533427709099357942116214797944311978244549568609690065489913584791307620913520199995973421903398361955033893671127091721355636225546327312466065453192764033419961168538469217914165938819680239291908554293678331932572932307204998138583437382334342520867934289901848229826222354862634768002829316895641733674812257263139388383397762133994436858997127488599790578499029785696104426246025947709580880958006315339260308338743820665120402031825812612571100438861125105478718150445260903694564179831513032637567420144196986165140980228254521381531426506663019183672157554657573116727350604750706386793972365191335533765442261146999592433066989183988982121626172104554761114801979370045866874385287925591910185031963482105278545384617165123283546314899513715953627946567992578777947137116166166683765787740810135822710001413467554243125254641332298457456399523882894931630306303824711282021996859120239398747548629114365261032856047755057489146976817226118149485957502959847591171432212241276014873357802185162090303442046763337876794284660303363183540412122069008635159065290132928303861547973001690897617160658081161838848315744723825490113286129273267197472690639402409578761527701908260917132559576683437667948572077261315358239136109988237801644255035930010693994814775305926589122382246097939684647451860003715719045227073733955699879456891353272497061364456697050585088149755173787813831076073253442732574254128308248280394810460536453099935025895556046597467342724108781355701655242999130349063722954889938136408063055291339353026103451127023251879207292569256390073946147581197741541977337742008617563859193892393736290831165178164012999966156851713765265851172473413246837949545594242348261916944510563371896136510435211169808447452141642076241817014065140859253450390080202645217153170316178416223110645673954700913497039405361891295606866758933650098629069618310390288630160542144230583184321350662932782374485579185708451723203953540365750677733851191057353935332535170272468872482945114852229203257289905085121252286895591789067691882970876634937619929596850133533075204923502702873911522290058582927734014334888909210399227138910498848416081742351092653327659027546257156714574340193969526460571130865325031044784385103176906586878448269269974127534610273521926562927611718691600094281612852163783291110528406600877794132916531972891747291875062639142869414313983025993906301307211776427695085599580458785124102988454632792753026581781306548255538494473581028966396137527947903603297782225529705476611478879281195704927510144143570017231174965422066653902380618726559838670399327800421012725373348266330591085682993246065422815545903947114313023031350450646985305093667446452972184311767858753945595089545817860205307588365591276450979468181402505837978585943030816767463982658019491313231832999478485367721850582916654964451734995488340590608621977418588463957620617529341158564181828290509813367344014735433139742795085700667619419619924930338954558746030011293690245241094692079198199977003052766085543866674050505288678418909822303204343820364917899250085868804259612473980660149001021547139536650033524132294472271205599445468312044504640113386456746905539993426314590736340871226514419833055198893305167917057742023198929844230347864966999031102310326225629365401332025286454496978954370108012739292062496568350543695927976195461526111586532125623717842789854825378761933854365418576325614413558537722864397992542253130883557907434194046331463829415181994025273765832437748195810491633179016551836861552881206102739843701544591955485776826836111220875542061890565692953983666095196312590557458737548590332166323777743247833980529392572309198840682829693618292362615321039748333163981445630312856767183801211646484150170662398439961700568547228448193275937711221311715467026657091706759966471184785837826314034320551604243844849182681185001507649816957331692886229877105244729887147535086886573356586519549701296574357163534617431987411683906529681275683319963226407244602165275840191697907034023562175697863902999650886105445519499065500125969706136579373203745324839423819229127393523922173649104222963387839743822271066711013923593804412646475650106741347779886850971976288966689107016907630040201946143061432897222932142530485845377881272360959429473675599012139539553307054833631480006842766960704601303169699994586865020826675035109227457139047412981441234333036920463380524149101052252921209838897889516435382137730695788455148634825045884670044413300732307099291116464200040815254518662041216107719004389335423590833922833986464700428256131104814597937226957986319795919558794957250344204281731352759407345092654360697662279922477977590087200607358078311379464013621219978589527144503442585077519853306515545869985036400649496304289991517873452508584357213552729386163769684259959948979767150879357893073191633321424804912132456034170220966048016866106205823974444938960059540548754556648872298343939734832474943947100500239168528994850707419473101373844091384339786446266316468875544664136664685792648075086209463604204233991552175982131810179781101897215576680693578621632594545135137291755063243926125941876322342950728720580468584832853989356172437034968945252917048346512551935867231293743827226813261523605743985275031719444218795315150371147350830997241311627509498873044670020649657683570431657247429523331851003757646482359976425175862990527750147649357314772577945927305713002488892824108319455333136567748265904067631249065450729488340795637198755398163022632408230839487759176201525174211660999812202562757620986986027705969100502111271450028165135512183660047363940062450470588668435191987315751186542181402304836680795331653404048356976722611597273932223566264563144953976739502431293590044991502238525893070915266112156482710652820160429366763023959281154287268940806588583340909589691109829824886318733679810790679460769287586336823176766319682915227337848189469260856448630487363957817283969829770800481944332306298341358853613737988777168896973605241022109375610974769293272676991245238200058701288140749807366684070600261453684760955419956793028492569340064018279188735631820921163169723940196435790006028841547621542325750680146357237332356580779456589864308950543256261678026980478902207010000562872467100655765868016511423490149892672728712401916252255564769227291633611826809353244270580931269562179769402713585839407234733014128939767944482754265161197032559111469252729191764065790923552943458402533582757124437419303564364869808831593450289820021148481610328338102412487329974690851596610820413628205422454392051101228482821560507226443650849737738637920950404821735289110523183587534808902145484551765473165210770338803353038392384380656921342665669559716689831163548910730035085876128775077938551846273453183038554206272838120888331365028188016561614852453969172894782592243300636216151263824825594881794115850818534793536870529153624767334530790928677153157999152937468189547486359132344845753134589784328221666603819463180764812215932210934415084798890214689527553514278853520406213864400781841047959754673030942675318243330996433234640697245235679584620330593452842061158576965217536168637111962818778970983438854438320604706678292326602959877770444098567935593917478728388476154775781416175556688516720948787943588030719255782833403445922926088345534540188422257808081417768687322503616310677922453353825442736527843950585421070377446975708180137091788161654481114013233252251474282981750315171781734015999844085421348097710196446476896340586661047262881865612678370050397506634544325848772499217789217684300181343292062115950047285163971040128401830716634431057621962183450216432532975878305524269119830374638571750467275735064264439548748432339221765747174307531034417348443257259921734991126086416915488634363826434892006409711793023128751559368224011295010588548615025486962442771687361803442793913136947632867942507319532484387175274844372634792596274522749990543546740007656424988862030133228607756895803639297828448187354161568732513074920395594775725575838110704736558019813808989501070239856260389910934179122338244396675769704832596347772404449535519710083969580313439348530576885279644910463763770076281282156787691905327678641681744673714660093560679751628962045390429687113221967255264960690973760354184727093969647381410278658921923842156902017652611419490525757557249831736507168318208409575911692177135716320257394109966513054511213927909691825008553912333590208853926013909910104295420906382698152666115695408055077951576381285284930247200456935648110677588772759103322523827212190077637444287613226841873243120076198474300976056347724922583403305006096211909279485527452303169583635513205022891723358893243884023241487423661463210793038189418615002183375108082323800469946801748784596224594693381882708411408590547156666231659470827134354533302210477872895863934981567986884473797650445032576705356110334100347967171218712438896534104660071585199434196914447129326516604766825300508833625016503657547553179404503435479211020823402716129766144746110487202206864022904056973774980576168762290030817919321019936780659259211859497919402202868253176687418243936424837096983980804429741253988368784637463199219685827364900752323063554737492500919163646497815568574679155835504437066822523728229798237582153188390622413488709613606829411322643211852186933419120447205518241902374927565395154544660309843357031682329483164959836776030012005228190916814026703241207425455607788262613221549271598755963364488600615643745875510089256768333284674574752148805748894054657819231877195207396707288324133320852789805352160256931958614071546236544704839008520216329972198178630703219186509533383552149875579195886375797887704822828718540183853331241021122160068156308860810236596174999778058714655321928722829762692757047599185873406128754176836273137720005698287253727162058084879155284486070272699108817141686280121092510789213747174354297002863096251112643995670797478314330999361401352899983999037134768302699717054293330133230322258908877471350167547184688398740952211560550444658548550455367683086218675522062962365064295996221821176806669649863439444946265362615711480861546332831779750593284073093838680466268165088202961707919878313021412216632375104315123493224381200098514243067458335413385510924884163658021111169672517357252623961105993938681792650548169471844009655854401861453502322963227747585101092707721424242948920107539468245047129147877075392923083815686250115949415639532521398720522200866588453154249018939002941849204208623605811463195928633038726990736178590405098718248635368278230404773600630382837044666641537738708024088288824017308157909181492293223570690182915250766512957623098638798736923071281136655972032101004262882645118634098573207146913309938428266864596780624311455692491551082108207815512047830254948803063310325855284801727654165141844920143228308749831960236277667145273555212815107179978553510928568653572001342525830730074235244376683423594425867814946587310954362012158689076102043015525390372096272340651813492148591797639232538600077201642658723682979103400400175464410042815010463788046452216056926322597200327924005269916417007247145228890729479252897310032573286321499633819995805434731379511967481901092345950656974010641541761768905260079324277921120301309222324716810851644578768002700279894274295667329692586615376472891814579181788183341714416324843253146195818571718440865839667290798920418011230575652722290641420930166496993752168892344081118254361648534528688344320681110552345469034713966663446558815906261445920579017785232516910187662141856018435125984758951162234223663288394781915766563296085201083099306131559428117701409935120967473824766610353236386057882662230582279763669693763294925970595068756934737644206171742400796389241316386030868947942741714156470928017888143808166249298948937616630780977646823458971230363618101223066219578284240482823954659134477959366217532349601759533861830090215662298578930226649368840332251801510427647190304134074554750446017057176419526196527621087085068814683342388364713513349253795002348959160326300081647504297905846785765845090862467003993993845868396432416645682787816467041216525304917222238754565332116514185019930639600327584383815495959208617720851368996445593910231372302354044457786371313210462767712402479227858371566056233319971690596148176710606321510428356288190104437145175000071206120189749368801343206317610886095610292189668091768465418056117780000179611593385207796505290064820534443989752867172768468711708493407234688113396438659632190192880832635254124976115530934277430027432101842361381695077650703155735470394295606582270802922964038420460246006356493070501754352242455534819474532735659590932327393853310820720192819677120878998158875770459600295618830610108591420442505551250937667868285909275774844624663565795309397845358894294691489292680945531858630749431669931231843651449372224263331293136769336729993636373196212187987562506891444415861896731884482914092401470501687650334917615589398278077367195008003431695578466966983694774903091892610995774563264721526619987597054859015704519115590884875495442777582742075511562200602377774233887979699272766138309688421769179879047672820889826035469448893338525435818462188627344938312569534743916864328802779728484855989388695044958007264887181824939637870006426094857000939593905405678626114815878126293894088110330083668532814448802566279505244398483112900760487784495437679784134838748021432736089365722797024738352661166131581470260624221594645569130633247655664840847442109119719644535676611450089767238588787611869814097123428531088467396442940879626988076254238314841442537562502365623381422946546477786242352356592226631070425872880026114634801794618942814001951249965422500958049829282671865084388457260211250465284867414509715826965507789363573345110426086188710681116171906588798640440615813570171783643822298886987195172661689154233191806586055108408312742091159619683651487582767928894138320716975268127145031026859196069769956252709171916907418817987406380345811357641916182764981241574134101295765222084705718863276954529140169690542637895843388973096100905412046575000223598961835131823852774858548685180201668210529199509605677445321521766048709128317514051505638996185854411937046010757485642802974735720532900806262707007739573220784565265204635892116793163736359647357141382437694484913693489676115152888217921210857660252266631461440514689146883231027016001817796796916421721224670111699405980361290536645026294842370932077285885738557302182823550690327353394820200803750687570194130858338656643868708078235258902439050941437415085236128297484626946566098681946093462010907629794077940712939709535454228019010008211164829760373416098464167409059629593196469237366210941171522059452087019712770639570896035788168828287755884929322900090355181530950098100884328887736136558663524934845851212254308820498301222103714236319611873457020030445033279748091957542577144778998203289917940728418520306858575514856488240037634805181387148563566074345436430208001801404035909026673182454764275131380710175786725444021943751402965971365358241496813468004690022309204426259256305686986294968979981145343572382013637019230277811071872322230939555273083629238754392776564965946067340275319549220174870768832114651243947549721923411787013239221255603857050361874397608527266895752810114914918076917569433082596863959668460303231414484727628384455440179129422913757416990619451674089145100615176454303942572712891311405909942989268721763716586903928665596493160511639516400730669663942422424462875036998508520208571697954995832875054340883725484498127115671556232085474111448804066231185163625071627913061673503057380146753732079695952679736207654294171300468276307035052098691025109956791521252007246243938853738553447226864322107502540991169075757225084623100521361537311671593622226176891993032085928976175407496679961593783577394406452681168316232477421237488359137896492346002364728192126652268452206470523834187953159304385894559108754482472209587640066232799120092715082133963219043809055098913949102890833374011006282631564737673808101276707669259838445943905313451345615367777086486613897094405954911232349019701238672270758565382979579097437230142457066279812001420680181892909838539000545634835384969428028363212688936463856046733614049315809972455683207256506915890101811589561280656349329663602582738256068674766038424486523007099706306946862205697587485676062588911716705518411470571523457134054791997181068915565669697551146786292546546343393044531057677615788752812865211562053779003711491649278742792971192986500382292106644023335056356425153245356489034928901260907473307533185628734242331998784330601586867311119666160743226249966420282734667723242151644612725648067391099592701014513177244187056029234731115698218231300199536118575627641265244391338296793169600469059090421611721980147926742542890806556729272160826294001956028542343736248992396714997913883525430652105065404705803336414314464617968310914233280224734222772041077211281872580261086369689693131109308775386191367396529671385024163305720068643015342378574416862559957285450600434410274193248651507523539077375790699252931212993913336303510702558881544309405571196316173845309069796958201528747630907192502074097392091272761359493786447675277819782559585342841482955073235091173418951669036439356370913606307100502673887176697139746257474474490086900523637719421402580885578342708305453546014687759917540652143932885299887150088947532920125949277147399514274216674716847290117182568539060739716402041648069595903587877807657861403150667339211716674867233259264211324842567171796590201180432682121367179695573890888473186714397014691124056644587795256584071621095005067267726814148410136265290388722748810094873589466656192773625767913375232803074461114908402015322257287816031217357939938769405364831514687123974657581854991665410497751237842040451797603824848290864106681835486566973358163686168891521871997769763854164905797038449598678394800810505959877706812332054632013997255714778838834195045771190219522339201280951544743766837128012560193847372305751270309631687733540725019717281112666364787493905457416651790798515771231960574271883949889899305670332640639086892794172711546076317022797778491203621641955543071530130934984762085936791000612885992228518058791796098978519297983182959693411659098151703807640654667074448080583060514769703950589220237669256568345762776297395606214427065359986285761071744573079849048262337395238638602489347698642206299832266342480322576588033778749965412290974635058456217585632996181057723207678103656997093404737353528870033855679036108150741160038257109480919388257423554736716421658194738518369258892843004512468714907150492387473188508799267190772448019462353847694273917851472491236738190952890786452167134040832351984712600389289639603675554528790512178736068715053767366137676164199093613512982570885189454822029279731706637964228272443982322589773686924321899356544849404795105521706314896512620545981320680406884551352767933856269828864130017838190198578648457755211714411960571395798453550573970759606493901367062420438081145837219082946549715321187937595341836757297887309645552250665268332910730567346257828837091128691013201763885693183989040053840220937780650822399481552401433443059205086090819919025440181823980039918219477139436114216317699120649595179927913896620553740105734161209589681177314184868139438804152450594555722688840034180839518383601577119080372719609937854874580921154178863144499510528984305261232023489389464721443385917670619661945255268882634975876164890488183492946764810724213305391327524313496570931924276416581842976011679272741473625217567709146663775490440965122236508443661315568892733005978216688014234825744271786181600249172057157678928644486700438490173250881555785945722286025195628156130238646361375339085411361376291819430892948021490346061054405907676538168029379416992113346103869160586835252410059773686519482429114005691488662492223116885701574694332558680162259394010243858843370605628601652422488134528290686849768559597782502430007042012372043196558823567225576936337866468014811911027863853485403990037675148403036720584119661887227564413208950624111760031045815771712672495894652854131004463959913589716475860507841404215199893006054611408531580200262382553256542782727387758057627511718884786192865616532448619420190350479575546180577230542001918503347525608829440636400848991282234682093974852856984388671220791176209070262911773629947379368753088709200280814609359822844277366482483165753916107553933479890306147211278380323053203259241732247714886583949478757848251784000440101100554546640798172467329679522471378351138657959522131042200377132156100320772825106963230701527420183628590760349292302048229209508137915491030680614946864427332531018328859369312545689306189189672992396878382817555087220039973513756644930207017800234430261856825112897828355481277702207611096284775693392073485361703426595599309029515481058977750563654776920104908745260214427116416428995912962613030388049841625276828192156532458293660262275854901732182544682617689160578847638806519155032884699747773396041837284181636137884650202517470131768228698185871172631045969588958572401275462091546378653572107950521451768096112249560176278466970656812655666389514566537323107465816481094724575521554487597256434935976522110561688789644559850584412708143000250249397136841384948515718776207345543705155848777277535290834500589678352184462127623077279452323818009386743990099510290320063112012171337644397143022706259582171909965287089809980186884964290882194983499191110489255236647210398882864398509017196898453421952552727083624580734784064908617511382760631798136622274990296421494643103691750751427820991095326508419854869092687923341271252992160544665491070006260447624414592282528399527046185020565804252651135163965227305238324907491421323315921210635027441016735952719013759911708661750969838409494496788403473667781511181723882683558548793416818994611861163201165167405322541315393711274203499979943534458193963798579621877091193331768910743600471788341067276701624330333679258146367233660539957168117237969687833931745763644053435876091743119758053487741594959915665706220394138509639507690160650108762477489954853200358790105496808104830436129710992306823279275884490401965145109801134110637653942341267845014005343341874460859499938338763426464226684164531980765306479710575383099192960802504352951794081639851472194305551812488945692887590016600865971277879343764401807298696511403994271372391133962865688686207760948591880695662828183470930383655766845451317887851849460176786916558986535587119292599260708848473941858213190116637019118871029035731891482598631079684467660878848982354345937933226670857379664694848019506570330358842968668954564216173429412909844621316938211858944039012221709083612995855198781882392621810175862123674571182542517424950026994160656417925290815469305184482715721198417632950949513953490885641222392355950090355195792729356504722956336181509224363437677229666143560499926043532213735106648980822382171175438170033492344518088834593537205634229941457352939055452267638100781401309741508135128247017214815781457184905408275485823196889051483611296565565320456461898654668884379252722425722008888717876405805040683738881424692100721267234293635335204034611649399680688498938594527913082413383213031331810992431732542332257510137407116094503178714672101085288521907923461432812685600475653155516755798692118186878360372452351649645913836386858250293736716362330956304885406710126648172030330350241495172859289975659791463392625550071778578905980303430362540625688259689360430050914016245511682544605175985011668554429477410379956224141291958982981844848607885803926496161469002471890054247225720669553460387230525974828186606925856575728756630033103784861727140380767936837114147206717824105211396466594085628438428469556470646946223511996128969106018089669441267139286677622205813566424895181770613657187333875414795873295310698477057351379511254491273886115144198026481019476751737371526015873753093760972080451925735947507248474748382956005002564724099203989960772435566859496097144768718692061987120161843924389950108674885795261346526988111563063475149043847947274038373810642415134008344813446955007634842532558361746137278136151797714896691942867085303041411539737293896120052466919087588660254677523152875221257870520592783558663079121417028920814276008069352738021287360226945255435990763002738828476397198851596035872956914780375214306463173178824546417172377095184701478529877796481084467936388901670652035157770977347550077332046671498716665025808062841334646121428577846101727948559689773320852827946095329575284009319255142357908658946826102978539587688435724942345557049301912267678206861174312058912632769401328706097609875504580212777582659234669419894147024580506139135028638626626564630679085912572859135773423972019814621348440407190927874374753007532968052044542580043261048518223683442817375924620986925958271682430436928999125600609995574535024364945127247631158429107284723386723734545820779687531272137260649581504930097024410590505981068471125956285661965897944787759064670519781629129626588526492445643184781046991289317492302253968818730813069442951274123099647768072390263750235154915307534865703510705321901230691818126941313539376030913137421215713388742569579447413188719971266773161612396799748735666896766244932982747735496788732160763800045770221929856513734238307963959237590263634983641378791466860096822737474504460905952694035872321911339192230581124839109728437431558472874564973625519908795127071166045410492376075688070768201607779037830755455363006956578841658936645252559178822396266461644811797627268378393398424787624668137393161291769419131691402590830309091730251627062060438292094655538972005473393489979696009364656977619921386348448588124004799123554164551049524211309129606977705519554109807255057739568275732685989106168930306028406496811387001394877720624388215661411707119261787568496985592541346646366711126984814438187367694347869186076618132068412801421328209321649845309059662289337198551514404063678217585545852768673738423923370600752238505203784710538945608014595881669549345383247429557792838285281037273962181764400346170450733129572361612955176272882054550759805206312014447385683208352708442718230540659907991979673459057159848740391604130317898877868679199731732160576424648642435380652125521153855462234132761720069296028605007407742845205581406056868999600982969868594560142561492264953372543034586585107018063654568545233698970294421097216203269980555604796602382201046900928535312666637485868567321450240134627438134506345188110212654250046075502985291964893099435309184669824029845811718552231211234322340837131174991426629275295235804673879080066372085226018357388909531000556043360303491624871387993024001780519408591380249908974561991313326799745534357269662226520396041403842935308397242854733341876569600860069193100470322612397475937406516595323556471421623516430678282546571398361770354961318280980593958823597938653479644058084426611293869538674333940284910688851052176894113177403484526133163704255601369775944739908024198182999927527223097195206297154906872161530756872694119109407492869839055082948809234353635862741730149579296993518016220881546674781927585372241899029770370097113988053756414072277186738802787666748054036916786262587661578215760677272296351794757442531765509806039752821766884058708503604215033582665182075216485572348843100875180161325671903135298067966733215600316419690535435959785138339837750588652399358569856048407551963305108450007609089673764846483594433028493955319008139466648981063817036664062402759148858081291148302350411331295394676041370700708971335607219478682921885675541426865118146683478456254307118724621477295548349273554252499731570374853791205582853919006924226634981355791285037756118783546074844921852918276852350432538941682483316591656163619197298295490959878013082100064258940888697873820901823051807847185556574661383793143007022347405301212527268494953139384384258431367156249657314944567345017211002197875301705760782832460623252265876977523508808687375488495535881259103600216543247080531710677785716268997350785206222267080280143972757273005236212066170644715342169289139905929707608991435637852012769833641319464566084215545672433951852687952411491431745477982437617324526583198803841035975769969409384557210432641183446978861698641695251985534144479312591260921618672755026110354573962615577071003927606809580719389912418493655413774335617994012906454153480801522417278497104000958574249521637537739687500485581806891717456836567793523679180461877020253624505174445469783403026936759251344840090300013261589119915087212761959692029492940920497550535773146654644701144726478665715920106008779760558531542527876071565976897079544198670771733671900695104810112195835279265633705332841207667992089102345812591885739663304856575988093013563873144939986622838843869691883642657261725051332953752870921109008237464128893812503942279357066034972672233860139795258023778962142307312610120104066076833773111883073708330818301682735299576205942939900564433646600966110897564975700224900248779485587722794870718518203262807359817918539536596126050157698128075969220888710462669369537806709657548067415400946103020432131476250590119422786373871903713737251548174963239497845624275836719293241266163446804261293327378610109689332812667800522838669237668922349606926815180810194321281760307006861554523147825121891175054576430556912014900864215034289038596420121302337497188977730863147956124801509392003922375485709260998361519178297662274465726190255115651659950452643100959709787188884921532366195411017553708488730175078926386315668811676399260415488543390903731995536526189108279074926420517303352858574359398897682328555073242332389393423155673041687387623462428573574165527092115568293411525946348105988657216757337316321851588681744563298573153423396153002840955764714177902160476344492227496560923006668458717971413757073280950411228009218480411690865083171025618618813021427743092801353695020298390567116183190382857450508984170935121874612027004255270233483361005636821650116820731594269079933466047845471037140606197693760943151032326121925796474576296232170825394630129614406385398699566345023537999944324345089290532883591768464191108224849471489842187496273784608218416778072267046559269041172923358253644738221252512948940573268390800041853696533785998160675049714014472587043623260803258479588246159454926763658574894697111281402790052650649746974715900095250436592615518964249685387241501693306777041248226851000845901899125581473231086535941142819622458972361557773986798606118835781202047461506591713383740386282136740555403734239467590898636005565578470691715416370854583511969742878168551777655526024112038705675569530164227293287782737693704051359944526796222547387166254530648290607701739967942068381621974324089500861561423590506932073330015956266100756878550495200321470119765912097639132795211915627949943967869843578619013802923638109141829817534766772531697387180786553944718978309482617668436728861027095442060671166203427465115582809292410187959545515555983978342163592283846746439760543982599203592101051283787557138914954461335946801496082664699685252509658263475694111199525579555766423510839205340259765029882000507441545489723857652434995325800279947597024889185015777160594831562580509478428621652807190871196455515486400057819890488296277459207164187961067285779693609039004635293219427936033389576606822089384164638929363480903322990521818040198053812790255527264529570219645266392606756611033612629960301920963802435199739314396856573330730735973738670400853287018647627647224871471539132249233286111577148041878966647321644050806029462256471519797657745004908162159877978413595197383956982357690137880794670320666551442278681107484465387082992141330012668970053498484434335822554604689034551678597986143016080395066453958808328782023441885194204070110954655919147023534180468346863036566859414812676677822401095362441271116202523853054688303134246072009849020108285331825112650523228081037465378780402018545567881638784853878100511982505515320812299246006854743624834059536713301772855365061174284434051590543742213008016398973319169164071222632785776415559862702263992324921312416152156729514432971789045909887977604272611796894294250671535465929882926533843893485760242391171393392765130192873359687788278133372586735318643515464840437413311104429100554958257694003812893296317939557432234170491012902503091201170595924450819748777638241115342375513490120466158243665640756875654690140180264444021237622854179938646132039607413554574654401069994719498985441491225682223610068044620316800844320915915403558763327024538493280581072354309645210892278497254177746858265792819428708450353073937367645009989059769079490117441295098238787383570514719587459884261860069683412196306332020432214079674614018306051675910333450879365613512830361250370243730906475347895522574704200920844726340616526244100370318189180010841547914047838600819522654913375548969626221021725517631633483227027751388072389406447787707624555839999458480656000696602496999521822996407458931777252419214337467573122942087014198072024785038753426102076236294933658601840974009246091674758067217962754641744901860647510068083584065704239824505452049124381404849114419903421312020109781427010247625324425777529788682183965906872559888104446502096773092071181855778565316790323294864427391629129261388955663198512472770145518036562556895934960056884121243534930737532322768600436257001907573863120965428582727788612464332093476360767362329352071915380247899896066357641858499519664552693369874762320564750293420597346843891674768680975044708300706053523710537434313086274051881342584536839645964621332347234008917916367085331776545542694888520532340469062724499211547972282911565749645238890022595131515309926837999078764455084306159625237091972764835178352250546201781599504921307633988729672923386000172255158723684868696019964926920065219822271764428800664625390981797299813355237141738660313563491052451405020939371061241441278295639313694137819207588559101786289270138606419732544228745836092889694637597591860978602535394512155063934997820563070015209477998486596015363116049149919979068952782918969012577463216378503065148578559788945034198165115831175870759225102708590943394359007858560822986517002461806785752890474594487524388806159821819059355073692780941891188522550664990543442246307170716547146358618688614353867097578387613477615422871947051419895572092228545195493644418394313310560177887976398873875349491111037929883279915074776226910639497300256733827656716616888125718989752976576592161486705690349746386806735241769399819301649160441067808867430210072892334635434614696749392601798715719534942251776504500867470872625183341642099087550229156534391147964845972797195417892549177448267350106596613287525526191180248991813539685439571688874528862979206639547843418365218798160118579208858734432100533557017370907832221378792513063550351325417955420761362479471863170128811605161974747169000742087512276082750384135172080736793414386247928110023565631485420549536069405789383991477824982296693271945821428298126811529724027703556585877053597295392311228714464218035860713023318039406981425270970525240642817671668609789317579061357372273385682832913064330095600095382678762029500435327212289765852829895466381876811328852034142169349734774442924012193380636712366642224746160619136215826174536165648541209150172538156869758245845223085611819848679390290305641504569923920726914440449384527227938253302646025924681530357873110861401620070980601008223509632978058620206704523856933334232150311561652547985206587011167612448031662909218367575224309311424367969315242877273600784748278322179866262329715606994926750703151773296397500953414677328541281640684318821777160584161790043949077618168264928955098488049742982627641484477336453853389594894964930435176858568627640547644720814204631137000401838391029742856604784421085123466799633457436413355776668590132120831926459192853746093962194245424367649905601393478299323937779914329652014938678612875396881415476413330405402901267692507574698397672777501429471349014387756350395344851352611410119313234818387190549420003264358366139210513477419442453849750597405235447244455375681460386827453437779943427999446305434478923344828481781387060025670179934839899027163310931078122971262646438180308870808024411660192494743816900353606194817152311591881632290286771093661224548023625084924855672977376467095023059499936661676893419367349542619516768973614220267258061122649129055165213410803196499775694959471839248392114490478745846093948115150465989735422697822076457785813153285493761003617021032975437493008129017385741832421716809984300654033527713008547315415240512040574972101202973714635720483157316590460582857847165296666306016383639792927576258460071713280701327517634912764105992385737230694688104098544204014840113668917513816208439036061490372078477818616501099986106638846813421444522014172952239896581397444805811130246437398825208072693125509922341485126371134871255631592035623536340341334407573580053587407393243156690731086893979144104237140621824831909265448016043401777420619836995682504266914304503342133292242559959875756271951893174194115884721650940604811104498909023048857245389612036467811319025582160459109627101556213985699927562016916216669036605158250529115673498882289042425731255021874080449801652027628420321233016309967869748392857920289444800990947356148768722758146098275451814573535725226616522710382622724115160786558926045493662935789184005622213906982354334924801906870491420140126913715761914710501502371252207633214617185023245522742356633257920165447767730163875956597052967280773138368283628477726023426688881020524195694936563231197283086012686936992255053027767935492014029123680169155211013201827448775839817543761367081817902579716367068324159779575231396527571018924651596214900748132711126184315379360883913720628487544971127827203023243947929497370894239811738334406530211805822092498924166561358372460617353319087445185794235629211983180455021715519168836089404418385915134099886927226952019508443031223463706826407760970483604012060475825184835901423746880920298278150481400000129004945578867608312377608283529599059236225149939676612543707176536827629729215465201636474363406566081123438154916197710767197379024447773889888765673086385992325305606784789993531356764487737461670935876349116510822817917055123584044969509399771980368503257105672825920076102575410802814073603240582969282357817638269985269800538636944782368067010799084432002118866238892168392250759042081294015486377456499205719502510603389244679866205531521173037344156703090460357423366641299006639201623576532004184592328104659238264420304546963244687808484213573564279856050527983383107372106223972800503106468779930834751440472600625157371333404949436599491659567942467170725138672694661442246534656958067560263904075924257638374057631943248024618489497115828901295737232329236528983558396652832180317759272588282365692130278164418045682740275051546647891332375988855719444145448459539203819469166681381950693383927786994475627820980154132649393619853014733855748151101370840330541064368682068296722513274868393009237893282518995372558971052489807530167821014261158611611158359630506489806795320683209983982087605387948883661545840295493260244549844368878552121796235426189158371313520993790095662817398749911758016770751602537460200251474539092252309338125746999732005259289218272267546618231576360000080135278804026392848651844976514408503164955065523670605428349408820699124261289914039083691382108959951674617607799689618355691872238810370528709075283086650265586220177164735837950229402889371420479035337918775054877694190889489623128119439832127023635157855266546755147703762524291272131388368996621199354551953625762258743503381240586773434629919287822331501965832276671731442101471458415765231673730025271043220739203682813170148003972566860166653556632983031236497136687833612680395144741964525123644341859396626867046384321465993423151089498115486763770186875434168430391978129018601672851683645883232797050573733862940011193912360143285258547855435658187206300240621187844568958712779951578633897362147128431413303928300908870316435687321486417481012083392938421190983367812757976775665212881261397893798887297076754515293636205080150889652270249224898017187041593732157659703491099174120019008943495094081588750213994003972414002012039719768438703695024440540768654411615204971448565959950965757050423939035849152267185685306714039854818430676595136103733609508232597279125602699293224189523415110401182578296762707157173456530518227329787599321153358937249235587658582307734269385360998680810982515201336981577488950626738523812940472545588968033964087199140267405697453459131626734669554611318752492839080467959849306787047647680849839573610626040174399077654878407655283591778075194847507017008377755158980281563614012519853800828208847645873951104410212454201790501772864443658676191777903996943319973895905239354592607534783479168908492893363309209413536563156779972285498273357244189189562370645237800099968278342689028107884367591187248464936590940162963936922143546193397431459860139637267577301598367155950943781049894526738088580164415677109563877594286961351980331912131141253325059645750254416121621627692398959453428381666715258579745124777959061442442485677611333678301288100245410646968000296098155692404022915339600947866165905851071836589284949672390788056224725046705141330832806081565311126721360729531115366908815030203151862081334070144273925707551142569744905610832500714775296430979764757076651805062601748784269843348372335717664797090227043576801861522030949382893640179276964348930171064789574201509039668290680760332990235835756751927790236168904883357768694258737278241671688281784189080665045524935996577806579530738047180134392938435243464816800276533546822579341661051493116784787212994177737629212684126563750435189316897271570579382558737056691778951628472446212632816638479158329480656404702023691433084176402022866955214252822605430332502756664210623201445230617480520702814299135680940258425292782037961821964228695524293783384559128080400044028358191245801917889526771777031996948506355502900188365321856446769820923076720865384620479610277061580633636930491212752793040025847503979276046253805003378217148839113180923103130848455903326481332551980299249819868862596989913449050782795931716040084187662106384037288090084212439135222402722857786706148916006762015195533456883103673889824063789866571021373039535704054794269546316470393608067815306253870110514659389472732555833570271911203297113243230713507073476842581647708597923737984387669596849246676825614515686415023262885892474702489210030616286816023596990813339418956431802344543055157339139752862054794324019944587360499686849958039703792500820788728526999180207966276743273913104127337811956099373823237517321547860224493179772997860389999914918234064629406960178563986498564331755747787817894956115090112439672005060972851237001037519673998523078640727452512700919734571985469196769769942822297631051494311922826106228913951179787192720339179526295695406107935041526276410183927192422156111968970263246335268717467211212996863286615324640224251605197680627650021579658171971944024470487076543257188702359122830416471100979786119409906579568516965476350237468802469190660261674213302898092470925824156302687426096959927096807594447520497122030307984381875785241265197406524444042471105391707168805385605098967754917984013198383431080643529649016677528995981585329735246090021848489156798265148297645114547998055279550617546278418379392845409963009889157844653384595730021156598353641698461544327160614552798513048467408314089714603082833806849933677934542520425477523456708997037618650856803043451836381106351222690933005278367576102071440682365338316061761925664576450431534439166207985501285833319447493121455184920904674613491987705262337267800410136114347401397367564921797073064452154375106699623267108749700802915645368289637654299918925298413107301671910410257029813002687842872629637354655767978919719134382023140508093821591707733382578851897771069876141758919499996937504294009830386754358328823144467494410569244225149524785945345014868133922548156164032556960232092968629214509551737177053828077974391756130009162273949302113357758739124134804777555743227927189362750963825572239889336897552706004600846036335037178061716714727268902775922442712952365663177767199866158604260234112014731956564631762181971190033376200219914959456442433025762736099604651734455619617288620840103439661644471758869530816175622566678032169748147741015871321696732046386913757378102942816654430739754902274340169941578629745439018386518680481668872929959967654367883682955342508841514535898362810041483836493062679869533641791986930328841580790625448390104938113748185060579392144146720812995615911402634669881805016352135694357428807865534892249640349201538161388028799733346200402361685325066507776222731548546050238017633530490157360587021271739941400857669518579068655533783485853568646723089145201728202302013957877212022752025225683472437706990883979749521764600090143666968903277680992973898353954430246063253224964432933115571033029935612778962683936534332696047654285857332932578368448652681545486979751486044457037646673375102048604307936367245104909531038780615162740115413950976826297970694200229660077792802469752819125963112603937002962169159178831947988009979973909614509118914070452542412176393401442141031833942148764060239975678393637152163966841859157917437328877851005408289541027425986163486197140265852752725043552149175900546370250081367773333062678914708478339784720277126858976697739824689595450473992769019656606181202694210791277775720070345230118810167352518041127689458550626220715120993525573483820483574635178236940847400719245668275283079333174547254335430683255827234971521339855589895048503968195278685048683847067261611341595949525043756319711802590747262447659943588378886113528744507634530519374573757945790548649303408788226859767405070454883799618589903084010340716419852898906495658187997645023950514524203303026665284719621169717327926027819315913831044452917050596575518752290072871853590562493934659505232599406959598288043519672942170889620146929000786330679920009236292819416239720955032628660820574636187250779875877364634633048076666142083108934149992004481921615359085843695955398815078359914898869341931806084316823686744702528559095120705675588530045730555896318244043711055280656051859118290418652427295792321823662287525173305576779157569365750155713882893823083234783685064876716291057033299052621268629373159333633486679247334892383055840217459214229619165732458358950847478513879917660302299849928806644034183611374661289667268112211523654676104217461661566550089733374462718062370207725174281974635465287481346115298000780622976994554594384053186519947947104254222544076335109963336069713150295148823435267247448766442030289603402877163509597934327973037465073647937979101920662713526388292606666069745351292088394017779828176684785892100864400145115638498753440287879619842338622436706407820620532726855589656022598079034205729090900166692835210749231823828980969025064955684526536241256142263977618431627173288833169098153548070871250249262276837646693275782270979541514253322027388740720339526304864884272785206043357870358953650066543081138527423535352696488734641751896246943675419971594593732341004195583854205243793067401414709254634682481010135906934656775366929271652900275087084985635235860265149326211994946932196617522334704257306683467541823351852882704063139587431937286301687312256105206209541972097167225481806285441161827429112317536784723418573949158515406357834112121211233083323838024326432824402989079757352757509983373094688440294145605702308235209098388007871521521091058759206239943521437701724132760409757125248697442373218467527476303781509881769415144797897017174728464771694085698777209409205217184573724881605600965097280279352951052263088651840131062220388285459121661316010863823340545997997475189038110470656701661509575692716973045970527587260078077136504129372483776697867243149512625922357342453992680409002791405869923841672398402823510543691582999656933772989607693980437375967327732118841782378924779142823201701584970007544537853071115888204871721244331836024871333655649581851920028825817449269635242940213769119249484519117563042995514416398347506462112015607115596574731140679035069594036542078713180853881022875425491264168025378084227706812060781981414196729155547804550026713989613741754950598157894213995495035561495964839152910754395525567769997425217969751021097481641997691360125494718191716730969797603138865410813742064273780538234463151846663179920954809326286604945570969412646214138406046594135044042627575502963604345798339721785340850278985078044751691860285508050507482757584176661234261127532662343703866305624944370934240443634487670755259820323618242115473405379266117549933261230888834754464881921419302012896355149306122059857140526692286294346517816647190866870755513260063700183195005802206836007354870905782736031266560664180282520913828530149688100690377578319838807604839548444040417400353970716428118739488527385586726016905329666410603816862648076638906552411014110566387914955195039224438805162451677314092648830802290225108255128863779553947078819421291714530457615659909348461699320556927530181127776782589159168374506971931318429887708399078534515940327209312239533344431741156270332891565883233918221229672691140775994923134412966221249494643113852201075211100405578668042463313872548339114362535390413412672968611529929492878527619206816191382450077732256732837641097222532849593150895489470684296546386709985792259741797244052695743046265233806111146861032746686895035779977382293751383051025173829335129269594451944946105438453789694500561014924318984228419818118429214051047913113742855555970679311607752915587613601697613389552970085633195960563937257374114111145788273435753414805371864168626571958167344913302958045330091540396221309713548000045161740366349269881209798155605281918232249321930430220664550015733446241556651775125628705380610526405240860184902944827596443436565066768516189503959941367674605294337297554108250445118398718549238767690862133773905860172367457750011922347932344100936877994500557818135700914245499843402909583939631110364167487236150189538752851324384101209220727690231999894580451106529913547701671453410482273052215522408848369074517519030672124128096319616934807600162560945654209506438467560735824206394372855766481796879626938469051469256057665364705732965260518989366086978146902011461950153601031991588247747728755485728829920912462759508757733099225873786816596811611844937674998072997404938479524119943540277247769497083702349554081378311144092842803134374754530956599676274981634450332213920418608635852423350931639376166721913739193537662430219536840125905788988435829771105333566430527999443263447256872113608347793204392192634143602526825351898242512546519024529685718619120034386745852695191293543110779085088505407712355286018943905266621402341060713626587983632344968894951549288863544160863127126360307478265620899259560388065899145930529394164256414912760243621750176234846317705676600259667296854698232181256747842357067926569917731135230214844825853241212321809576436565850859954240452876037478195157525598085859408248090883440246742636561018612012664871537477469327503668559785023677698497467597474144054086185012011739507458953275337906234603922450079782022803317540332863716842679649183564126109368576661581127933324730925858364846336710236512937218431945241773680193397659486206744899851214927095287430175027823717809368442845651455851398464947264918047607144525771240085514713220740925414576369571075843595091371035552314576608754681060183522613455750638943722546281279041200249552706782025097691860078003905331364930358887978107415688162973764330626041019313362670862466132154641299334067710384759981686355924826980885296697937266720057277907629673499312047832610429192317232102860668819412036854446388674846096558180736868943773024444128146733992397185148688140829415116472329126923121386473508249974347503112520817373827446268616299301009491053770524723658977211917944656319861625711475539940336408843841443209816345121355805067552376755679819878659186025711446824746071130988694100610795679787913920332617406264460211196800400099378833324455013923309059628024781967063962874128273042132019115257728320163672173667353259819492475255837863834628600979448547705349608496545271998375042661540092665113587796649236700989600407816413617826499284656920796429614255057988899440106238176208163124793834806847247494115922203464507744291257853986185444002680911360552755141245165186309581855097879175623359372508766912198486761328959783960073400768504133509946585235558584654610666580012423936626090415540284341306560313046660630417127265323978452149756531415670236307215892095323021278356498565196756933275271107136815536090693511632486539796801529325227091776320041943395742050079876562275597836106848482848633888686221162520206438384994672874797207951803089421679369442506390681518606952703486057080965804570743819453243984869381247808502660169357577378391237005831965195527947944444448643337716810663222766212735158979588714979380801508517972581054349089163870254678201187305135131131943431825572779081934727568041601256462591081067733650796932139395759372885794652152825844861090770584351119564141445460415397381713684478549237219197252092936721494301985318088150259251123755897325318679618026249491987786497601111525762240682398570856672206936429819642842864088645711403987559505352457803330730925058309672256416237394364188689098146954766929526810457092018428353473939573548969333163791034561930502062491301595414391745840439008783954908890897958871273242016669478291320248269576418874954362286069204517563203500794698663392285813230799102113444967670629325302089232570277913539070937141844926056605430422076234467214014098009873614685396525766846133731214707243500401474770238552681753591326384587671329147296762266261190477846561363662351904145943267592997658622231460905014496126977771089418510541795172513905177797996258961446844101988276748028451793592631592054581929304503969058261416656462846687499212327601354981137366453915037928324395131083366282385057207362193417865119237535692045139740806183188075934607933831279035438023738465369749423083312284153518004496954910388636648962802171354104107627194643887352406294857252369598285500297553933867302251047849658234698407250501466823305482548493080779763947406085208614111847667824832354229165336222994620293195629907279444980618200614009246204841784561807777116853282030144214954951544021115233487362563745757128958114230756966161529920966261021498812573958729466375805045151691282200913875095992872670690837426640150353552368200208603409850843602043410639055380601102608231114865040964605365313872303702030170259566554385401920609826957516519583372159437197317732756331967225254363616746613420701235332760007932607865060782676955042904172860945179545300950195465103456276189810879358100313464618987273801401308066883968709355264608047812683585654070264352630671174138405799588413269251825487551226228575920322263434395148929414912312897243996319939154455482341243588149725972750014564259807856947893137165327737044006755619773138997718377314997032635384844039296232239323674125115340097047797233713141320733308784902192313689050822359981191550127946382545254873021758097795790924696041725996707951086026845390185234178665984856490891423912492496008349977824631821038090888872089100999255952743183691372688241512876578789341475990034394583629703636040342828874459713720802010411485913532250637985692464946683018777188833133583333507188960431008369977209431129772959957573825294794004438683797601914153521554916557227031630548204569778367322298052403833006516205261628882643509413165354173670272828327178299229844394091735401217164743996908194594999886562086825809140855854194324392654998910887695195884344198703250474491047479501795972157956966234709403227240811607369243450517420035295323341554058301966614522774520916100955865135566567874186026988631934540341976599580631654097637977734427807554938080935921796009166866466566910159066483417362072763405003431301446021746541375736390266793205761970406946859144800117858279948503002986646224775913627225142714363675823410362645714807179287749730082316722423749635653319540189534889315762541269884072951987771497294672409217971347700243205956898399097051621053841910379500998027208537842716208374788338745623582746986995546758517776749724958537816939927038369388251934429622068571631727985684139879713188447339499466426952649081890352159252230770958830592989184248675622910546229959318755946873409788071733795772981118419142453762831582137220370499149450930211622293632898449042377747123223106931561411751658638162069027266426198922305745012660292655266770311724820533046135501743191840490818166837416318131908070942984980311302554674252748133061246987044291207003460552065083758760695336682710206309881468436201343128662468416615952756273988307527554561445973686994776050685198022147197850241314251062125560916073537726857522415011515796044380397244650543688833294843912952256655344393456008375335035021886700444881145382247345360952594048314301300613390051731873614101995157756474624078856188317773807685709607744077378456898938096203035629331255919002560522956080502198422683369579030047529924631081042415916570885746369309510590861953109845425510632449668853973490599262420695684832825580222644418036545977902109862148278775624877517737196959321288187028335983280121504713148645515612817345360093621847526767562847933902708238535409663717270868408793815445938412803731090072046403077170492124478366001243303960029314116078569538093269681706465902245517243177814230588458450462817005317424803940481004111902447933679606587494528327774112713455605486380475215455329732441627921565346859989610117541302987732443542550802523567778991368448905723835624460452144501570591682105806189434263725470284334866758114292682100122473173384189323378669938057649990305523944964931238330311736523965459092654632890126544392597535820564937408020891188438924228447054045598430477942964328574192205792345499796268078967463055162936625252828693173877559012206070696011155044679967351725124097337023880978148023373919394141581358595543833702250465836886532110670985153577335357812498004993843873468601168347329524527624551035250668550585006297243896533684905698916886739852333450466464195270104482094801840795707944535986020871409939418450301039225320932345101021623762036971499689223223061016642914108876919456898744601193740873223697458254410384553342950312216907181675724608615928867952290019414802332807493133399293851574987663350310819305034116441350707790780028623549081917555017965169182181088127863075625249912921185216929417638865753390336609303660450706661767961398699767713913120164435036441385700372915619996945556162850640891987713835485394450388003365946679183107556525768131198133242549459921584914775609318454653098807898047150228758956456397318357479363694773259586095292985136338856678020306377660490704084044426874616360700705972974357209832824988469912265235461875370040944566104061096098186178805211908213504681981116753701007654897952943904707865636385064601740728477728188583245509390735081021687872074231795514273180461154452591753291562700686009831691471612400472730602238784276352146716713256580291783654283177364999170957808613029371083136622113699324018146186173132468911966665132843176929102974223672812145109209164977428562362515241635630102339901963093319319646311433969435375766229517480363033213103967633455322406752306079693072625296943539900844644328705885482884483241930798527995682108142454614186727655972936847530145593486101102600438953413007275879917898249940739580224495954538396195876451776238882205502714463461643156194031450598363485913390207553875908906876479050012829906113055177618696554318107770387118321837774028682934167431075151525708570637416831079599781164085487841544010742422799391586722145020777393732488738741908322561979251383047185871793998524751650637363099947105734767888446145525904423200866868728417894609282088801212902774715289531001564892190604748143992738262309613898476757235574566255260403962760927719916950810867215548124098759522485050138404949024631592677392460509312990120274773095347698966082593918846083043061160613431593316717714632096732153708983642905507107100056326885553753341038465866249060322772338245806249056500950914015845468035890049737108158976010194677179114542882570604214114384746626367746170165660594255357362985843631583019873700076491368401868851506863380085216824769585288296955885277376906422120183071047586959948938064692777465968875059222714444404005906181914075631860693349615911520724993793104128317778822966511036314253312363147680629642135081523725524044952050276797550499586819505316938568316460507219662858834308925363798364922198238289717105558752435088225030179152406878956783330018334094516750614889574674336432030875398053658396798133963840469572890747386388799919425053413014455267795696744108404853214295020181961074028821220652979607708618557477142826527873867549485198302013268708985476336889112963795873648036103679101158856475022931036412917021760538843379508885569267516027055606520812942119829679797278281751439753639048558757265042979499413287714868883542931656769764894166873664430229295015301989326870296995847124419741089895264578274479186569575970101981090584279217468403343109954490305204393856592675126508440524027065192075519195909509648171359809775857378345398911435619501912060658130391960344522459123760602464111666359099231352394966405361453194410805485822639504131163845190574037135073193965312474787951090614900271031011861107005622955702642619637102918701307790066035509927781706251913178699917015801750827927998407303068461315404108770402038520893390096596474013153873788290225666652913787229369969201100494699634597227769124936716730451081618422707443704903341535268008035066002646321453758649125166302670637197235227966109122553826136375491418740423598666658942895186031393608103620145857317196596325011501928515392504592225746641290235657573266366721961969655701456522949630562742800866975276911437990108262031248941245258502827901498999117243103991989470449659005117143075169068009006161258896250447428124430765405313175375560355770695814090464390338982438356291516456605777681815377418152725061441761459516025406913562216330374387131537140959975709717833382257507114119675331428480407645898558647835933651916645302960997399928645352405733993372014357824372744839388144895756562675909833651005558994840025305117927398850725379063822253117292174203480424309846635538165237874155096677567171387556525905590744320354444269128388230439958631557737608047290263041163833056312647507015527463963172858260583154253237372573953929695389467182052759297271215252506793153249382638281183815632716374171457151124900854961314559016277119773909734700802130654917357228938756789088966720499908976404448668035991857254671084784475806768062480031248628307563219031377537213464283106953087235757840959521617984429192311480976015044725216104505787317779314263789325113480874850051205249823241618451687875737366612356254585157630119533477675323396588052308802632726200163677807145246955193239795673400565032499944182691475885098576999649116718278575977956787924753112512523779856458953871192661240474824497865465032690473802053117039811151324736125467996669359253952370683096234614730405179664316366130904635955966721512342033388323365464232322808897307178980570097113783254031459866875407155964214353513130822951456010980634336489756669288263069593963829468574481706539939228183344312991763799168310541395333324971705953605502339102014266391162052710064224485421413690647495866976079953062442091686136580727388749726352175073232395554517707858867211341908338921858151280538211668805889216198933945328497889591266848848965298450574811136742619028846296766800152841208946004310577386647982106971846094666118563185985935204637869527527774524476040778621543127754385185048627465506159530318638895158860010158681516270030837330328898287121029510843674307910812194144763471271020251648753368910501146094089661278093715587751082839150846973413220295681160515283599675706645490321063261942788865415187263516776064108952446129918325087815163399263997695101623908446949965020129578709233858399436525648364654260482102577904164095057053770458948278123278311247563649427280165695819821744067436527153334267364901146873192618555145541461569847221839685860597013388481507704956381066036602386881513617826338638944107602665316524774620620538835232969148266119439387645780916275524112338401876592430476739390299735458727739046878866318090397051196581436437373412865887374142426717392230638848993995688605986327202399718044064022650782386793025208114378991565306334217439683454020232208628201112591617223903100028735653355158747615921064305462769889097453004493921447210649617498794554395495774061161600725941247656422352984076479906198911546205451183009794936842725454706023870694278670095680723140031228643082405675904046804721317617944052903776263478107394140834523061066155031854952534240051961642506294618684104855200147756326729140027725767046946187071407901429960718288786177212193652057658176731875283354915859603856826823308376571942938423478559972969423688337246685111613681192809876983676989778868795511300224827588942769329449793220908247522526281537043746238149043972028683223667686507849661038484061633721134110779845831015065188336740954382935222678634177512750221144008497028437604197050476111363778121180045241347221742474781435471616754036072547347224937994410241663315119612149259139683147908648669417587513003687766985015858800503223406087511504686492779351609841444478763415868593766429027661104286086064122520609098506386278812863394648922157366328199168805248408265482149958767862027735890410354951533205578397099278328346465480353792084469257403580800853497838484612080743279151603509751508138190868077910965685467981988793897372143685265020971662219781538442139991267496866756777893165989257013454172874339898655282983679655684276728910114109669159538547502248891201017404174107163213567317371345913665607239670765884057517301083210141223781472674542727549268154993036943305424023184033461393664210083574914469039831390883544765637405129537228064004681675761440519564341860150658903519245153629499579089629526216660983384790444049979329028919933020201892413827750036558826334804162129593075787712522838036688563164417767317009286459461681618116881867808271891915687235535112791968292023739157130117471409887278337301573153215046902751167243472414218654723264436696993089872729092336334146142862285471593507647235548467441948158299279032534143597647743398567817615777884819618627650824056949211484794255512954066876134709647829832164664657737067401078223170370582415666031114694935598421638051517158574225356825100356946263899810082002375093391320384502652966524314738063019264757871683890315837308099731203804650484238267686467389262621346937142348687512864433914909965537234814818283302773883887384276892026079155250501140463809567065848542721694630653318784900559612478802935969752817670809202143548293105864502558920135798256962146397569734147825091339433591567893229355594253807927667281475666433118308181944257534134511953604985593343033289587506921935162287949898497249574314570411862430838781004641866316866899570746243695438181318039713410834957110412694543606373612753984803263929427002428796940884538884315203864405134388692427554178840582432414593122346234607734449450191976021012208079370981949548716762855262944023077164304509901983271370016667153151697495727637793562811322864631622153592176581453908121571306906785800710508291441604182790276486747741764381755255570804466479662503594831798164247506855966534835540126684042889880947893467581550761064088737914354914458488665714893880625170419714406373947347640787868505283305012623839885465552542822200290031474930602750617320157573573002873318427506955788282681764588457607071146769240554997145704202745104665701488732981398575315278022398273142198174055364413542103540630329846168984917582134985835282151421861118360587544994631584456368071964833300269373190588298081840492071864618881436404320576094828755690486465276752174346844025671542223117413050968036912317584954661209762604808988691157337922524065982697463862721901522933357121234963390736065349468122520222436246083845884703527349064995561069304829415980749640193922632076839608138681596533163729062238750692582449110251859477488817803205812157825589944857539237626819921320418973241149856756073463711974902095040769547763741234284809479336022887848985817636116803610626523325210693327973332074093450599645495663155634217555029339342248404349677794351911042520333300490283250498625366438062080121536923665949855869757629384275498792445238253037897392888345679254291721869091187388917290674605002025402015266182746928701427525618797749405426894201240999436247617753430200454025093652119039401269293354410262117845555850740549200987933745247350578875509879503824842087010420075289176276049545669699219272613603621287004203017255025854401309303197675774878415529311823160864233396799652623445959555848852111979113747333063966312315685206015696770386561653131940574894881077811497341954624236059528961677118971597700471864192840382766990246768660586470000174923269172020201707693581209478289450476546107704131895237611580594159860797936980523317904806230853673482423235429484334323611824275221225561362107950486894011420232468428516037185943375950333235966958138607556816494599549929319953972451224414280395701742542812675560013129212557128139066413162382775092673429267381906516020396333995554375962549096375568083727535078906533825864317484314107350633432206231212097466007917130170969727796613253620744435149349575319722902897900417920880731299319721153326424546565074673239496749883329506709792166929972746299719747410003008300834226250413558572905681767141912285495385908454381916487333633084834337129320866269107769218326502290751799532684409391860441037451649889185899992871936958914503290628344684708921529102733349944543393832357236371433626295615393291065938979132331813803831843158851851033867444211176671594077987200850195537686320692696790314915481220939027528400317808447193566778825928170967765204385211634993756530825428708425095914255055726760608071497386195363581455743842957278778274365191546601182093783693825331217266716590145217875127960486830918097999862370876167968504375103665524342795569235171247293888085339213973633484902106744062327472549766389424579989324315407655824947781957351722056437569527777784300768463461542221199299616491207001770809288564699485947778992274227810498913391642376188612971648835838602365676193077136215738161974300021068042442236063905879025611987210013923002180402049452248134778228031975236416535305808311764914960813729206874107980970873138537013583579420514395000933007488774244496449418283593992295487215976912719358010902477292041192565524528224722658289744942388951355703258316785590786030246311508899670754871334458724021503726586296536171318609083994457470227248607347765199273343326719727009991388934405880335950093079594044640012887747079405617373016894073509241115646155029522038895722644067642182442411935354276327073716412591502250284153032048363997204564222368529739085705364333783073756704258762839205028143839483993597253123407449302592644800461561527151002460127593024571224292950469176270714417600516138264056614539212648982405583322559515606143494638887136530373286989838673861591980021960411955279669570411526323649315325988606009814056427691586523542235211783475864169603462950917423939843011515385124524586535545568063704216635734113356214089645259228580045256960008742776393026104276870420222129523317522657843558223356985702771531477302705364954257017803482685164421601879770555702269394912374429598081355172880110557885001444816433404205157030422683733306091234640256868082949172284277605995636276407224009673247001036846366523867273340741148656304650866172804729089394604499421439531705529022929102642856177488577897393438009169680410735968755307325034616406087260100388064771096838406042308317940442455158960783325060210167479314372440464098102992958600562227096415986476786297057204705027657193036723413236995559520925958498182675395922137087392547483389049692863401333557850023999460207202649247278942094114488396327113377284891342263868275904697615438939255445236174601078020003943176097428479929095891460178435668349142529562685130696372645334683306817446346985682735678830694445880988063944367594016592152549961223544266480493434117178470084897511419624830748860551889599279798452497630979446362447404446913451534348337913309760307882258778686046058848393460201639097638980893553739613498339651558070309728266682965069304557183920935281466731060670247436401537807237508581385205213291146747903327616253891654100542350079306542800297428832706995193841464697248851826110385507768740343888474270619608514354782548383131833724813126509246757833408782704665185124472029664009958918149207766477337909051030664154079665558270176050578028429111857203276366777974554037361662621761212528270856586604812904117466259037393825722060993973966824398605875344044973319573677931680166260017702665901812626179404033090537910293196882750541869638605295280554092122201033675309223301227596806299818768102014887550101566715114362785832184046243170886571163967697425721761180571131767757427900399331640939463456268841906753926725777620120204133740441634924721365176763542860561067269398003231584744831284119309877081422801703800564316025190942232193291702251063402158890624508265545572173693152242363878418225976071195027921288137765620679199001826191458593044634945965952552756225200005457825862586058108969782599050490350728543906518806664034386072610195853280491135867873817384870513387721202968903903260650734482419975846964297067063061248996808763311035212120476911660567437411857371833117225017459577088943012016482321792188273104528110366401252958887308819517368944791071906790980177448088004745224409883199549622531252388020009614854239016628556400026787089591785447711564005545141651003158154033204721105088179096641670039468976259574130930640698734512721401323930070771130701909124673036977356556817737327428780013703629675654549415661767799426512330941142714005080324180856640901069921034560404903609257376412033383375177797711496909844915696829306228206285492742820806575225161039639327277524530178819593290799378161302424298255221234580991546514130389031231945262016654825726790922574487255392641237548022221313436053999107423020917416647554011567312834665704678820669625064726995364500696189061400644829421876700794134258206395550769183023642020580950946151683979294019665603846750002080623926834913598031053053022247854054426679251567933902499565589343530901705569927152187529947644980703502093094989844200042310692481639066255108222657743511991680690708539509308603680588043331440114261051347522976743928195758036971256631363695085404036561752012529100412901303162177891556511142721449031881164267355853261916059558209037946120844373534524419463668873596416608487077767590875976286897966176728196092418909259489257103237627953609696233981742929442597241844840247564146828103649443645660864889207493715310936345339871512321459783263444250590854278399632928593591300254659238167610740208223398149847943716121745553327587190309936977418692897124729066366620860142633203189016429742078395794871123841407503737983451392848256449332755702266708438343396174102039920610057556735481748846732375790967227239749027921622089725729886527872419193064830949499701703182951570551115494003033610262253003710552385910933256536532975985887834471939225315965896868323987581371597225427900268267478695740884717251581942876728553275734278828486219869373518861727444297724600006669434474566301313303420754434484131163498810328410248925523157417063446398860802987757595214169657538660036413320858687375509193181454184135317600431123610711492551984574186814761518631807503387653297020737302160353245791351377091512434804937032317967181944029772515666373982748895836611491849034104528921453923117502060805179236122709003864560735982720589944928542279187253393233409389753299786296547470318107651863150942633700200675373607123179768854867028395366791718034118366235050782621416952435969436344888131306254399182307358916045941313193301953583795922814308243130279335776796475906709905515660162892907926903593756187097701011375990992489156381483986594334352648118705822985086733848308949694545557503383387273707217990830730629149201700722249853861076379840493644077389487482074816425287834792092238338923255945424123758393530421608915651331279993354767012448871295425632721713859033488536985027357777479803709356320303301250286322111985759974739302978090857100686087408069892885877918250301414727762124077637367507470243936043110225367438183549940534324642955867729238175652645410310879212373519434357994603707678260748667754143882876119027175618198093024198817568899295347665547415816180333009139337579420915453679592610659532183699294810564927788094249195665112319876787938435060956245354102012967223405223139170104710554467467692125271753574534188213608769912660408169468200182063821999934300947923301890513494174876612136013980236295576379550374569752134185719842424562417452421361033470758681061162374020925837378498976186936796163392220279538898937175792912509248424555327636867450709650722151612294799380718325749372550471175168813186619656198232864246735601827368564190722006465615984442003465475379957619749736455500733749959140906044475405415618225795403392934332127827477571706901586729315425999375149646287074619861729845620187774918323580005393238400160246339872597870179459209922240182550618544110440816243328959131936232168742908812903726046051865271928867214928225258240343287006436863659569020859831678884124471287204453853129424169856848501557367277903165057207031912015396541397713844121296966843770450993318122593215058675553663074682429531305108801676537819806707759333814066383000801387795121929855151054351742267783906169208446422474214498974291298434789749935003164044352660845473224432606032367610747353475943467326359483377670162141969399427070039188935771964951446563528614817383128665878470558122884444498645935670114294604385392905753088783278453271300235034848195796164183295036286181728513855926743691490252237802404420247304220921867683128029874844979729775227286628566391634773976544492367473089820707643053125687614870981014821126971693992097322255972685874470612920659365996044259160888974302838707303015129266104443207967577042238313067241916264645572034590301127899502594949956122137925927899382384929469388935508103009601737048028575858387846519869326877058443625751796653796070828870045518865355578306148203870100099557463012782224506515680569493514713350460751894671802433125921903145471628374749397981630587848274235823769136650740941677485184829535484443038190699631191243622083198955682119948676287050739998317282859695715640126498347316570783007994650512362682585183578825981379050487917157212365844258911800639856413569707486508129847082609395325210806403057400841651142859853795256885854320648309812597713106187945564188469005525261313417662181524566166265777687847286350831124284009988787143987063497622225837449458040027384286147221598300301836644341061587580059115636368778916881066597159289180753973243724950859840572924399409694468772221560838869513091239939069811963794393627890384296993049659612667415141702334404104277757449009087356097461140034820524064268810255368216624028267141060520543607379885665226960728610096572612905452209835584102632298330346688057950870152761156390429725622941704899677236118047173168861378348079069585604305595298879792383954848003661792919720706956356549027082465504890875186963521077634273271799538512536521736209980749473147748249174773492849028610429834380223609147056130646506128953517732045728390533042878396869938333001578989697367887931331554232400206565448464665000910572322143114349440723267469185634180018541784333542292969692386485017526700789843207192012577468055645093422757865588592259372278528822112548990749139826113069334884424918046457458527158400987149804928306696859234459454991883644862394819457988631380383741109136969168894671763114362475726726543147197017713368291593200285969610111748210878081111622254857044061566676332144011481973765444838102115134273093907002701183443479436681533527056210253322008602567839299145896445576833138557220915736803242096406004557315586182025721013062943078184245692822729369256615159960891662173749882736492000281852956863248846990006993476990663039678417317532985156701148555224869432017518673124107334588812504532716884416250709862449188938230773633352509756066253159048449550476496938508581465113515192753727046352498216368916830218839626033499486532299388290312449700489213496579711122561968072646703342483552105254145102231143086927336027718075003393079331106637800770099549960381259216124008737023427988952654233361329150729191276442502271690532917433927367637836437087193489395674908518260235257893607321519568086988521574248917458338181335592926189712700947623469784516731246199015895339822963898547613191372947668990947703154233879471060996129721733192149448179711119806062649221904370066022889406015212117481000586605950298262272573974128914821729379978588699378435653778345918346264654899436535166775028849958071272490530035286849300913188895326367210018701954605974923405007525385353701335213415072921194746373264205643506165062968716753668092054307554130349119187979540700322251624083163374728288979719586418379692360079935030094373085765826523356777703861950952671930402903449315907195363772648657863912277145346548858256355108083948154955971463635345566187167208050566239128246666669742576026267405612724921526251414216293934280069703056638634760664462986252549650503354520526367828760872124035899322858426943742009283731889352051026851174304179084051410821272317154566595751632644215562517377325230964890473750430667852725317719987811114959590720116404570596892211159027942821587873307991943831130858507793667415263367848355260920079383853225505465531223431629575027311312753081215927726054306935805609411846234478255380079418643990510639294142120885189108172079395040478635851273480079533574080694108864384823871724663310121767786135167445404992610161786561950358766992243104259920637244900060652148167840059955224533641117138891520148703329743203085829612680091458711721515175955576182071630946014885483234140899362862935604050981675708101902739124064022397317358976353035231318109888073587673402464689523979645250767093190519634983269874240695763889139066472130631374338977618679836518614879840498483453198998115328306505760472340838303803833364030582960540608448033505156681993103161321396396113076447658391089021290217358717747114269755494384355571642230585137705060821965138920494757369785356940519337794886027008627348944762575752732572491824960611035964047962894922380039335628475691834995968579741684530892989330236187289260199075298465781620564504814383640003696522425675282976529734855148808427005582453753103525649741841891033372511991941943008560227205332031383651218679614649930846634775704255011675821765303229877888108026250328137242132903136281676795313268667360132009700967720129362465184887890555626770317809475419154395519767497870343529957266863183008042293034444199900554493359558279875884419786141543916761903044004165882650331606985509466192324466622186476286250402040870083801779770663198177062143023882574457011094340410870079528803759654328594093520583159900571197769533159423819787894899174399209957726638471691587939418595160599886249841379384531191219874813576515552362622160382381815368933379920269958246430274564897495727741927292584365314225854288400106505787320849488797860924003533459957798546709761493986992858898603100969377693092521700186885443311136346790322161719723023716683705918206543960303782253809603543137815753315686634168572068157344204744933402016074764050068807030906499360815571520452647253155359909036861696226161718617739119755569417337735900834327222855722469431788434450089258983875779828759244986096792062271202347019473566638464364681218627222197415399935283486585954444921158713373239768142709571990927364839394401377532009517649258979876154545017373254556146629451356125009560627626671573741063675343017886672755753253286888512416885482257845929916394694514558065668179823509148469235956888016636378994310921109061653557501096472577070988105760340545042713148275841757188324459922419942021307544033607793503572491888514537533098099111895546093289535904720585457297083113039714887798709607120500585514004956336114710038670349208108884530967828255847153616051770027230529150463070476585043988079191783410553589070508038271055662736578548460914816849336110313513223641823137150164467493557238217280354239298600187298536164977257843758616962073980550024194159469454388271902212208011315553805422922333620727491966685146451299845890453078090397734597856747953970025331891394173481402452783638362915011316334503516252605854090394781372002817989186252989746759083731958343501057369910974584405880497338130115312037416534571886303251704573177601787220950577086879172902841471177563359168857253614055481711170552666112998999802102965806548025225486420418833583568381108598738332783128067031621432500735925122182269693360687991830099345155338392368846254034562595237904107541610509076357357471986819369808394072451685891816648513603680626008186640280793296390400086221340564182169911433141300750271378152925126488028555196390108886886718688087430841081512636207686499242646618920080627589889022287203181624177611583641843165351938834931426137635256930729386271496776371897873245587587117709952769862829835945308411414918177870751650342960435947308478786763902681057189441455720156271535414157599972946539719952733760742385339369544170214996706224246100088135010608282601030379316523370065847810848391313627227969416947196488952883818793450797606603892041097662375455700391961921934332781765150591987260705778065995199991576571623663938545255209554746904217161268646339143745997222443670988983123359502320425419301643756391419913110741758040001824853071006738535219746062251903763510909181244267433521900924474156903219528200014438525927103092770206676498481626776564440706525678427268411494073549483538161735720875649237291028316181986391694572584873598860313845327633650103827008191214035892970863027200731999170119333703430041593444125078003823299489198490511317428768880145858779607899432527866043047390160297385676585432396256910437891410226962327893732592565303380089201750942479684884352957380755125837355467033468615897700283443502133991107813237046996096230928550796104311032941918098089605696763926628314090513617529275368897227292272287870573482769487294860859428702479378910071778991660647217906132272382704757733385355731936120566404683152047161668902266022391272516544592573443346099199036622968335533820325652254016477377553488048162217706225393536590788209275744488766428500548247345502311285956814784109401940458649074792466264259617131197609952955217019955779811261015212184855832231042496022724654517910051340569154160597902303312811735760214996036078730986863708296581418937784586046785115492526153816112447942536012940766249307727215023745317404073253379939048094453648013543185992631747969856912471692887093739628618048372703851078770201257967276134814753510162012463605401185402884948656627144985185201598981850717297115146625210655840766419585969100455656149161546926601677006026071938918865004248959742065115330117389001669602970352674754231920523143371745614270483785372949271718115809118267362529644894280707138343026408748284182603987282100254940347191671629255221973988532832348692525345400900785737538173559500119302469329305014763474041188410030084343915756593151693501530983360959187309827919503433429078362599106651939639890339732880065146456648117742891612467529504856463532903857493451739298052944881796432146802808958882986671591018879829192113955363247586872500807802883386283849670026873661560303680611380640326118021318100948680964199431171911569798970540346037124790371794133425180339146350025886372216619518061512277280679336020614978461704130525974649202826793690342175598109455456563301693606213066134972965086455351385564862734291338111329670188196292853266076411649020146676882314361252724057890364613461447678183297670715982000124444550400005435600185478678227996445809705642558323837747939838107712573913955911128577950610075263183665410878276467360421068847996810912978362297000574103777219657908994200842799411671177603002015563976043085673158655820606998936888303171414046237887573587052262119920367169005696043134863978398396033065308866281655201940509808499019507747254973782855130589388760457094605710129244019859407952392406702752728518191273252622972299264859916498225807579237602750277082777550380807231434678375907170922534531122877932175144648097110160787517687511106646231850002757748838313032816980742730174994895207113395919784928234342006348282603608038009390305097544871267255157763912161815738545757358092578929094866611296110261718841790571485965772061954870149317571787939167737802739572565697975541111110607199764786551537390443950004200778522842839582545005543706934958945960428139280745740590047697139648936347392434257979341602649773698108395221417473906729628845907731482161175524185966024174103912040878909997921557265818861433329606975150807743896678360160055192342406942394606142458401022044554166839563536105435734697757754346824862409056772937349899305062863651197934594704478448574083880450451583381431666094379891273935969694204052903207312475531899406766370895850909502060423311725667534767087794724294807174730674236632587005917361253845555720079273007279097834351409917532652193903557528224888192349438606490246624609205445885076551263945581220904646808697237287333771043473659636698896812776319624351019355154320265585901733609015161985212818130118795720934582541087385103410668751260924572254444881759889195549899510173182144115922989445234720799792460871302196038038091569235387818725285560166909227263034102462962954889752352109629127168181667148300204184406054535797465722528792701129870695903488743094287119376643695224254695708169441816981418164354005894718787036769211570273720744493058572829771731185216070047140552255269866878283114298376617054155708787318325431114548053935192964206056205760104076349366040907514634395595969034847498916913661079807249614090659349635031868462064668434537667907514387729946839344875743064880081992577459602802053157928925570701732420958506197927263429435909274317822527087875431635433272340960112591767145623197803699585980360624667542682078354128465565031318756968825320956799039324650584899332267474698387642279101549548929963548859801414765055058593856717575633932107429046833403396510094576731963632944212198844686364533199010342500609516996040512095034285855384031195853866475518972095549144459989143669186457239676992866969592171339645962879369972161104648377421197677341829955543612053591971040169598114317873145220812748812864976633742986605962236587972585664462665991785104120125429988310869557152227560089875691842075837501799714402246849167017359542772009649619481866645807713342527241069446865868774236830532115085677027764036063667507970555123691143924048278728163693006242198598563907715548604930625170505731599865567950471315081070176028087516398315433083064523673750078922371130278666294289550974210756791728158131200847814571898800755124578874876488720017533176439161814664029230687695893868634966499056654035849508850883053172957082090025248959269563578947418306306829536763682628582853810797050499642988833255491763330579919261883894365784672414960235600255800428122990750038830596999962305230976771078995574374187009226452028942297657765838135359255492785586466735739711976507136086479022720069906223913862268679137364725252053794671746034489076620531642539837048006485606217140217589851749058297446966533451370054346547201495315170784553416764988228868098366193743466519330933918308575643663294344173351113387286956096625387952558102321893308947245177635110293837381562254765206164248292087952694807516381768102646826056289611009875292233808956354088641620833161996896546200978839672905380488033943383782899099186413171151829896183594754443359720855202790486107656845342482424120484647092116794771946018021266030786940642598809632366487022323048367421696462860592792445899935989980397203896383638232294320514785152675174854946221764620761479433345960231231300287236091712630705241761646615953619439688880902683771316720770127250798037148396071662163053542235154357986722858698473296402608767569165154820265789532067328017075833426721315635962006468740894563812220702277409079440592995080052070464307062993485453979792048759515313980353294925603899792573242988416979590137453990244714283466558438856325966194970216945710737926849644452883099162023594393659365835294877624983576057829940849354032419778319821367783528225549556845635815331030951036399350706257029813193904713094079544229856001023654905259732188614315570961796924314314528592591630916281373653390874627794839488660885608690428555718942094487631658078755368509835089073695109155937809261394332180660748853311852051396846167399464325460856661780145147673499481281981795204313919200855762856978120497082718704160805973705858018862728455642724041240262552349477302745887601559585600731823451079325700668649097655200068814463288798533524788142535220342020975656325189304164089283532823269677938368040717296111221898432471244470926398396738810848475075665067827684087051542453047295948631793718727561906369807119559746564621147240415628391382387698301754574133675275980998196202777046047764174552820908390973087970580679246093330401338550501629390695938515618128984558674154670265656422720003005138494294447965814952214123891735009546202508287632643418229686862608688468313669737825439082857914303001535325946024762852932911151176854931565666781813002971047268933822495426244219795916625650357522073426615586526327870594173805050893141508005933190518042292017125094370764946641165075268187691587820906487944137789868217127283407519871642789639857232209816739793912107906679089045023577401111609820931522985523674010551243832269864031473071503691722327111333059407396351564969670064807265542224098231490597072252407957372179090221618443757082434606608428712643525425457137110187293701409881729023139176786985509153425426047727424051299509956854241518991048823339696900449875379419282170615602522781699933081625731340778002488912303734667304063512499216532152659970011632979242289496900109949227221024902873103175972932264291584285936879530019499489706284230850166630695706266113765424556912231327575374409970457385902034182798997670951217313957053330185298419631641097453179521514828473842659380372131257026096987549496261665901692795284170116356020381628810742407963393984321407425191646599686575915420895206580306770637289501430962839589623312542364996499635866775116326332682312336549888377997559430433374373698690223324499389550133865811568948717057021737924299033420647963425012584285716174736606771732788102350891961755766218411645598540023986712510438468182492154362726081603947802853208103977725766615006122745046443307331914960411020441026658666635999609181604466542198446043499809294131880888463744048322775899146376334880961800114975967941809612612012866592370123845733176361079957754278379777268312268181793709547452045420470173200385159528239204207992939432006824716228431901666960832525486441353663854574235647534316642619508921171591587534742651139421565390672488612253079521201825734850544246631555922690650616524078196397132980168067742668291544136905530441754663088691496101755284873815519981164637552140643098689082413765980775806757733871491353794039252292002613129647817185186337873178030044912588181983241454138351690918791711059092349302210551170568537340391202603877527677130432628231383349056210418225846169487801347991810567943592409036288081063200727871211745104693997593739686508797894109172596753300290319951353123741241506644366553941234212344212672713942451337169923589886692045236948318123468849024843895817346145890622904837069287868591767617551855606749297163957563445214598032046268341438997449407592121378762986956156808472839839379037202797058117721218588243357752358864377275935225489088631226573906147324489946551177856898905234571517536654601255334084964523958738416701702578356861924456677154106287839225970493897540246750174048631786125004378085912685708369695024235344796855636449853271600119808085650583709642167025273189724808541942415182720541991416802434147827316483780982285576679668849932315491049860547811421309328865496700083646594114734920297704284683377302677505819781920395116442742893973983022186534573905881766614382745732021923234485214540501485588170145255945693008096967509982118811808914250588377803756510325675719152248647895197388250227024234114807340707991025006087550153534702974592707956059821924345415761730572915126122018483684473959972445572631793215058949871601736464714210760132055320712138279371815555409904718016156405876827318189432616425418337108869931378512706617202740108054748157794473945997997110169453500890353879507306697191003387526650879463553979219472749278762887186213973660907536719724473216248431491959910218627933195827540568775737813194248132491982239687262473115278618457576605063849515335538186860775104663531366076745243241886788837481124069230212765564358416419209478186765492960036086866831921220622837610081237498883711328251485844179799715569718577008388793229633703359089761197440780702514004586621814623173752865378069518555330436770582677997863187415862022000936124977484189910432358258983818510117289303054674228725443328679467328280346225152788317541133493252649382576060629468543796597068273148632649863202137170367653170798491120285226070238972813943824403618935087482409423990443774203171845097961035957190675012433412546339767152822121827723962801312800985261573856109882734670061387727995271859724505001349655056538289620656582549864319280743418726462722706456973661051332491174773865488574109217500048994574871287486091714341563721098439802736755377184176649878044620774287122449626663359890284338622360105246530391359479132250888304899786035267503568809515688940946873294602599641985718307422750095558628889420659313408084082845296424267053029405358194774181920421292315475011442969489078099382146089698571873829410817734570447241212387403777625800004120133360046984107741907661139925684745413614075222721272403612280089197400952953981727649062631441396895582990071846151631942533199076422000972740590914214323069401330803168926824728869803481835627871288565686884695460531198708935085139109158890190495375942900037324429306139376093410979057312960814700969056154474554546826503379846814826081403299194866990362324059321863712950228781446032406661996163404616311933502392663415981814442760383327361381751084449565559842939665302783394980123269372112710290510432855696738973964414753930846377252945389948641737145233396105029627745566114673624871120568759911360706147619343292019750252209850399822954362444737529047192182981866490423429415513238049407586618699996980941067520800396072085849442207414186893891989249985984593432903203086796751899256808447635486459713772482866345153562181553481791279242325061371533125591386787280218915368597062801138029337317432930367639685385657873026288200007896695551831686855894798747614353466374878592033274030236443794726268330178734284790349313169494370097380654521515255220223425126485274846808309188067946840112598013743879435552692519300738622055037666545430350683373780885031317673187129286788075730956582877780742896724933242239647334656202228182139468493358839722348238333254569450030272569301033019235127758913620906005862505183887996324934943566895950652982923242454393009029243451051545026081697445070585331925847020155724978798390715270632337347968789629787777755569975527257466462950248937602238646465988988799610458472905975975849099567867802565394744310423125870937209436045384258598266116202733930263018530196981232710526634859216228179665754971119767200188902787329616954371130844096840044811750882146787167597377635377045843613834771035114792664190904646098563422098639246186621277984422775506670427394550194602199079680581253079332205370672692477720036159663828382897789077749163119685423508011163619785623283483610344785161636680537208094783623321974567426331895703886879284766336942447760404480938360595983692151025702073998123350829625200078695517116795643895924421193120326717134484722998576983976879325749061922128328990303622039170594277131393862395748994852143105673224378067573673773271495907534653293710855868063840237434986677366227057042031767989541914667522143999494316153780289573427124529103324437762030188228973546809194916276435320303686953398188870436261552596052609238252335652596433457136251733736885334776692396911858951040379322677709909776496744868787535817810973130500636792052785346596302422486678117042826154672712337203315181212893057364500997185933077279090176704293953247404838728092935163011196256010976852878483612769931938035478438849384464334655458874825302050637017179694842903758588462479787276471845878880033736347974765939426752343751011887143203303364302432478255273997222804281760554484837990940832581086239266271922134862802088926649022191433683950061372847390112813080869667046263698299365775959161033175215050753314611601369074612703970363997150386847549069903122635158971365710826499921453760094618538104456988546993636787073916916195224607843390628669807081363936347072142741494162182326551978208885935274320553392026429164343102209257738980841077683329891549197862783692510635588679705712422110159529844216202451573739093928384122158461549339402338782903314088453019513405314388954896417722482724607525187810684669650548741301643031060292031788134642207196615295492699201104336998997048596214821627933633316436151487263222220180006056376523524323763046712947837208751338879324841626140174577120705319759162501445588861719429246742812823991311475249635541039306441040021372069041489894228765067115241308059420576902741884927753052514791225059066374948496670793883853088232481452604740923464004525655339202372634944963359102704465634332483019332766571819922267247633069710043964725845062152106213782162550936288937915157692857392844056606135968619360635610293726894584437192627219523694283679244051694661982575725882293117669752261581515958751134928241226838059124471378283019881285073332369545772225367911343443192501205632747643593805021281226903052561647949975727086795163795979540314765417905851724430359735765631303264244564375735343830185909264524177747928644864701429244098681283951643027115379601040619005994366227497254646984738130625513899957886903703858836646247696633172062457147235006622850870492753431778412739586024339516972566110949684132068456998671026362984809090525072241647120315148958541639894595705228966228954928943011310732851573836979600004283180414047306748082746744414733022609511681467540639528172920534241982862277417652081865228449133249667746499057840110874125830272922478112137381203102406610690949961288607823063421195711494698260919122543409043440208161462821834898792469512223172607141687969427212556045513548306902806903320364516304904640433599338349283610157875979036173098585975010843552484624603872338389238408060070948359031455529115329581889200526535689741031374463815128506753553853858362849821027480834134941048433213466550272410288030308360869491766731065547336480117045594635827884146809867372375822945350899482487914104705710251617319110359290477559184311711663184717925429652359690584263365507404100620406946191942866964745314432319885891680575682165600087616695940380493991580397405571584445128160628554993158281795428260408592935098933164695595498279767704652464509493455342062038077027948563477934270912277847174236308215655799825171694004254995228835013875749271774912076133937257365546612019942326921480145118208749001327919442886367828910571906021863987355536634221872988688001614447352681649205624576665474613574961859669741438267335924757224249274682146747832464402537354426261282349393271418392376594165385729340475780376309215401951332985525775646093025170354303865048697829909417775370223722449623604942402143193628009504604366100167317230437042885680420033816182740554544799213745113341639216697231302165809723101665629597969822304977672761508216524651195300374981331120205040094953358708809979898777640553251865023739155348389885710820304445590697695954716980178374739187795533978172191962473979543013645279590387517258469059677673444499802953997720916796475231246362123942036231567537952282427121011983117652459328527621874215028211152214367038525805993038108154113104655954366960560224638097082665099748363688010089795121568351508406818725728060166513065712255187435193354834788469059194095777161359409175109359486591144904731617349871784478934402604544498493653277122948203719031100031324710373553573707988643217270408577321706887357824524460668163455174829156328892921775244436719001531306944685878068410052870694002180228803795396754577006370184388036596799496667664241542477180939344013390310837411983056107598072918723962746164121722319410013891660956769324776149905459830704959596939412665575667255128982896878212584963451859906670824027124983011435099674313768629874987756645355281665090443540760116481989442339247214807028942571176129015211031500359047063097994559019723078201097680143034093124000768090127155321324184475316561189133246912259967202154682776295365471460338387831997005421929644040815483993495805519553517882784212786939715767055721910131984818741407770599005977027700600331904495648272088423053022126403812186301015782339711252104291419648491255173144506008695522987375073801663949098674340188699004055170652612225755037767169056605950793925275831163540085314716899628994858673060480964321655568318321596101500075746116401986119912364997390800672724497415308790310870874028956971427219287411147019821120105757958466261459377300641269532410482913255176736835851535181923063695176437068512305120011608743841536085414415007584931331645614954548924665378096402462852182334154029650616425522541458792267495341014838174763335180359849636518753098085705864934628695604386216686641586579562057293871743961201462810312480841106965472779263821068902892996691577970699147680516284062282308300038537154590306891587446863255115097612076951493004097991819964653330656296789707835662580393253058220330096969686538419987583325509060082609748537714676122027673447694721968439536506192679589645974266874322553204402019077211493819792387066633968662257455414527933897929875832948884778612313727691985155748990350140943174656921678821113994913969869386688419141091973978167251003170863891307278145848860664664694828033022671872942002695280610875040614843523975609856399165706192068784306826472744200325767576896383015976646740959380160738498890015393297754197512160667019754904636484818855355483626383410747474088081682268255755817481466227282126538664174231178949144005676340437538545736221080362004225635321725836714235458210237247216019780900643108966765802611695421782215840576932348981986087638931302389805035458533621033071883158786959449487850117884188696517372751176017966114053428475046346973490683076336071748162634852152067500818149816455159921983459677679211017049394480331192625585133053664021586024342766124417837457155465398859027420526495803989877947180173432175973682592589899831350314924680414765726234013663450156705859756828174599312991223366057754761344060539984426577640033031598067726199095598167767438355541282643509832569960370945486681757230618151904399596607011011484201780829049786868585504249218960956072969752321014742340270799035588689363024403199084306343360327674773145007105215414206293504548114454371109613789721645611558350757998109597756345415269111494694492302767234194638313001695519908934136486229025329694005249779788566070249233088154694586391572777376882320795548848622630326163694235385562174085699078375606568307979330827287631527738305701700906246911437032703883176061838465359078913787898011610535455471997693665138030095258906522138166468144343406974716512113830638653390413203298759659593703460987112320802267422313448351235118294255803470835351703029962751972591400577786128254599162160228895745542211282467698784055252062891217076530371672361047203445349701730640847142626968492226071921414349626351452460763948232630122685357408042094351202944123432896085306655793483027803602280595426092392717057481585634339613805415532309231484225845060495198874830928305903296442124736653418047225394033169893883306512129559215843241383462632256639216838853838806836798114325775680048750316995062493835112248581691900764952071107690447692066998461950456227841409710468181263309453149489461452874032122116324359175498102793356703261876464759792702584303833799130187464205974742769888578068422777921916471157600538147646962659883289645872637647904889406962634723642204664321922927285601421303848888262543422738511439790456341375199669236749715675595921599491434096607759651091490024762538088893001360012403670883207531147940984858228414710635866699492328759508970977512924847580690196597336493857648981724831220788992656819056760810139110149522789929078428456444388558429063743768250960820743484660793797527058818545468349680135946505030215117640267207907174280363509835864163109879927897935819623023987254000254951889841500060246364844997518997833058123347552877898872085428864784295292037832509625459053736022666841542350553366637236111836106506760342622628075582990876184014173994367646881881359863348002882142284339925810861222580960916515813154507231553034578846986478916712073200923655690183856577407661580048493118679271526086964696222529122820272819085230330505710574307856761257755818742210030653514327868523669885234267659891669583825680691009856177080726193210706606197925691287295492796666456744871804966248331284439977580768473199497431550734763846231832720532199456615360809502479430490494352519920923525866201572518110434643133357460133965121734953347153255038058278948308894438538301438167569813005190075585195473086729227823665774212926921232722261897410404667622149447110002018339140392626885860039091902071371819414152225355749137644894792263240501334705057618861211212150884411774977024286186458596628076060315950825571362698146312110983397009611876539390403390182971408123640032338792889454362775980030099716537698948995123815710018405194178364330127833830269512639750979705701695539838065775007305688547933889475347556426402273226608315610599715436374163226497314051963609183815452632538703284639860571420483548263385872954707092873051580047310652543353602434371360795423440431275729825619698012271397348728587105154322266428388706281821917955932754709172643267309738711535034455669271602824884695617723550936931655445028920576142390474290050721065069920035269840174840643163576221084788659377199219302508999153527627234103745305639749563677069125568720738003074750906605516242936918583424119109268250013394508298763180259968699601225003864009916677602105986434349168677917501744819094273742032474231445803414964580165616389707926345066419861743868955067662801779004741182089113777438997254377574681550841966686252619294837825891375459835136811766098415309096030422205613584503246595363178058839754567556192778418621463150181228926103797517973081674247303639919208872105413836280111758305538299158849074837546725806328105068672065708066118831396716681825913951618942649042913633930824812468133890823700194249714553909281655194707750191570649557535911977957945803754789598643578624620308678131418883136652524603476277001251641411903507942684271116578003810955768994154039323399127962535941538475548378709747870087243387376580494367831306200380311404430859056200945930888984406371383961106060601232725709497615797334465241388307038232711723082607098633675365630787222582786651564450516141595471718790068785974851019894093969620339133726417029324224008174957658128230206043668120771985727068393141548505645542591584576239340817401893672541239802673466208521856179922353880869904853357947361236298892596319312003031793063294713331653244159310491073735552623984092878410414745865110675641974910884862584912129097653306233858082208441908405241560127362138885272207812029478663343762794389786844581008766760402328201214903869368474237271651661195712689058336429567220066021216079188167861274155552673593166041033380715096287039575950253453987549560818184428028142088475827114526748838692280856632433771323964284289038627821775731728170417608792056010653991839580179348692969181087277576022477871862080103652578302862700739372084812626643684547888677003256661302776419908594184282649908706506570707997417535858324089385243470234492485359352342169466178252223516850657822316457996727775849775394583355027763633348801073946527222388922691309264944558030801378596529659045125762169682969111386951451800685624605317034081016976966437747428673105198562859873707104571123538717456396694870097040759884623492079021701637516653021219920824534387994180333878489412291737960372627162776467463859434840565695020222624312024346465803757222481500924868121871709154082738864805578845993060275673426488894595011129282046126426426871332923320345541967987959752695011930510755470580470842471655272321169006484353174505467005638322204324254925804809576017106723220363200506616556123309353063906900020677384884726897308784215373648680103426267795485537160698943726080031277219827202474271390518526089467046958421110802304928462614728112029486699413436094511090788553139805917863478869224970186874340341024312801850294071627942882992295413071413789295533167806572521799971909980106556064084030057842582343836389832529896120462607074602485996846277583225263416501645313080960950174498545115327179200312540160373951098763214940702059138461899757930876738441058193468790601152058914649492542088823196784757081106972280728499809281142207771865178634552516497893161946089121993273144795259009876774209970734112690341165961226535846893909577387448637372866051063052514303732384971848589110647223818832280412301202338713447187423806367144485584186959972381162444588742402868627139561709503595262495714093831859495824087162155473118871850687263040846944524091353121345990465315748364455417254553757304097652672135144074278700201151468041997135736972431418056995333866474093352864390885685885424665068398953435709988019778711119357362775644747231757996156172899329915728974425993366673252563922598144004828336814512893066318977715200598635840596787231000624306722456336934573158457791465144377316492027843382156815570154350666113924690046978262357639567396107453668018958171915647668255165123401349767628427888968150801699453089291297988271345140329901419176570077176812841368289328952569800096900857773980245767106512332757622499692777266312336215118340620125805620763923072153908899667442462999516369582654485237852497750181398067215309089191979843732937008384763884710566331182603725945478382644151872266665438144712363328640815250399826880624077972337706011983563094365914644579938975618547545242332426702763866267948906762123438416758812483489893581370490702571698498722327187055610528148847481580307425951976420581275856756136330329668692898237858955569355127558264290246466938788726671083840994507601390855915724314825876589602576509346025412061218171406120479131315671260895119566356690746889671344931713932772716644698822187280472247269340308531929647578199267340383649347890462553306760257695625574670283185259839306333540077958299700061132543525611270011244668299486503109374533744894553212069080977863558613076036155397297183115464742938794093633330537720184127055007799651183294289154472427384099984934472171328229377931509907016599029145758125806319626341883559634436469340270450601032141426762516752963765882273383695044031326002836040263178080508309451898123538020603247641936816511932592120485693705926129895999134657039624517815463792657961529398103745874224331699966565809282426866843321355874684534490709078843010062958788031533744511592155238922068661970135479402886316146487332611233697922385601185127401322277753075441445916504390730731086765989652733023320430942923500117227178929404650436487527287970323361082398100293549674260422886665435407256470718971844048845032933773163203351012591317423649611599454468969379546335853092407793940253370007752218033607556297611826618062743521107193833145524083875248317562386370462960371864845426718573581720957855447843889936495905048600888841111584642873313446626022905136695929224058413373322672015444671431435849071005178323244804924126976395914979153930466780970135182445820346806444857324247636292887889802819969836994121739615975761603382105547849374155986132555708192514176187300599142940096824861755577553308568385466890543085607980350799765441484277024068358038615029692021042964084952227005402780861306615361372832071060059606922316717739656639733771975562667932137077433633253290442736310920421621704311490258445284139726267637869450568313931444349992835380278243883684800926102526995950563905099918107630505619085690932953012553333654772458157954263729803141065331324474981250600793878847804399734572223006637699527585226281556172866136205596056180511297512276647661873743946370063482262106905045457369459791120575106659079761756520352161565185955360823906513847621907103904968581404998271104503391151101005354910077960082432004355101524522379100862981580213046044777874182846016792738424458107108382294170593322925710868808103310031610806044044229574800459588251669053440206385828138616884463042671789771961959904212089655173485117373154269356404632364280086540717164244602321583051627190113355623993651064875436332572392543866505197053981844629826855350962938953221117563586230149844400712405123643983336995018414635411805126725660573183373411848103702424000086123623287265546879876888767257339898266650736883179286407050689204276030131667846773255799398013285284420163774812311468145626465437855366098551890540955518333978748863515052459516643451954107011172103039780792848324748526761466771895271900709972747044537110739898105053034803971774123446856116990265804580533915803381620846882118310867472641323012123687065900926107170705989358996367000151529222245758401010406461981297871863378448616562810818745513305131940097289558292630729786077141698385018429380233130477050427485136068613156218891635970894984457505788637901099786855647012117423105257003260834450767735645903531894096085277451685686269710936898609028524122605207243482789223244860119229969388557827540427397429613639615750739096285548683096827097339995461335408679494779885329396006276014117952950650120807750205520966569911380075220274676117711191754469557697083659645275149315901543166237530097250283191686320872268700165143831745509564448415498558110806831521025500740644751621413987213734952430205601910532562996813544778571362651181728348871978892208082811250044296387345714066094957207528708176041799057308269814630720835480242949222913795406316235887720961336536149656764816560683747953662895850521706484978344518105250276818980743666968647976821716948639940310534719718487748328267101985578716431097677287269131234746862054875699534868313612689649887123719395634646714131233109360555643122574712663002976051968804411205057057156478346817357599042949552446724659001809520235112764393423365279490635322234384614837144965803698195944105217579456459798842270992807481488442382424353178849477705282922046670890467052517423018224538271102025316495655110593308935433189632673754545390140651082944609116118137543639968605358269374205465939013165114069348330774574088919229610023403240897100414908153520334141943273306492364661295124044101968625187357782499482472795082081923152050508526700732313564593013871076586467861311195918134843993967797934850188854451287626364315665437065440094780471640764510473116444079442094780113060961211119464314995567570948314079631771736560907693863193098188965471735021388590368590756370283778804419338077105305689382372330238746605647853894284848660147324222068083747440937108242605429523408381774127798235410331259395032534962464292460928044818141575671697330745794337127251564644529259363481060162543610701705186915888198631180180577241915165651342100308293756533121711966005153973685228621680235795054059630234374925585559193115053091143170629010772726916301313031451453533069820674242152145713823185192257762605085309961804013603634104733195546102661691521472553517208192782892495321950687832078448354259331085303686401458794080876377593180941467237938945528093161748495728106218072260737206867952847424380649365526893108543717713078368995052243894899102132536973584944254491078340518530151796823121475655121074567326122876987078010410551479449923585020334479798525643264187409604371852677544617858137177934014582336694850476251518903612604588462547995827463549833743555348478053903926640745513984042876004773223423970063526619242915823364086029680982008211711056234045865616212430849142548408675175144601272576379829147284354365078015594140855550842017120992603185102804732500490560493975927123413884959382950448969651993212006735098676733533851178466581023800002559578289047626579408990602062592731699129041968445988460299575427346226744294782745447544437918351021769204853034524104358576788471177374174465439608643349957452294237251794175179258109322088277427765186996071590506262764051325825315028868135556346088935021437802213835906176784652197530675221334729272150933408197996164972543853531557891823324501878504283486518609579074179885866529687240642521269767107015810020485512191275719722219767217759354510267915271433551395286378666442456194433084239934400661952514716346956709339833895219492987515942560382141916263024279251730550503512491110685917344538661821076305935329653066494714241878542261982084050616966589596279976431307068662433012124088753654437484085813058771723881490363703263992496230470754647453434223691198652843285138654832068136065711245088395766858559355910601172225961530577944408385429545601430739160133225537645165193895861260699634293256883031384178865331034553213281658184417671730108040633461291113094012768379106104340592343550731664465164758031487217316181010459286819627813696605792737627554928551598218742623981510611453354510892797767683850341154559774029969150878951211477004024015505756934023742627098105824170053277425575434792217024984565912468639096299959286803228104891760574385173018934128031513510418989609755634275476422899391553280208483680506658813161072642290817113237799210694661366300529064217153091514706349065406865171460532335008328202912274417704153194804243145825894197660885123589440856057375175345619557856982392159314231454924807587948853131734645885992022821996030077303295848718538105074286993936537156711292949498287318917695342294260467317791248880433530289762463571109504367382124148256001744210599377206677410249733715674321382370442333728064513287073614493029216488500184248034389618614505637574424197080333382103637605908254450439274105904217200500272867525636353709891732972954683939328301601730910148499563905331282533914145780693325678958224283651671672595612499843303843470497419404516412010346731345564414232744618526668152128779956118077042378839300531659268233319210606174322663642487678670270120270596420072150815677294282039064477939261927909029327787123179215746739378441943413630617949538397057983364677922854021579741135479069152843611981793089850821250152694735075001237267990066398001863689480479768386315032020793358491098214477057876018752817890655838409738539474443386438190897260933648672925474480943419696578493288872231647007501262040876585758202503081147409379720401290174034357779792477177351042887467766298429009618633378014469563963206381001069106142390717038377262636177595541919591812685503201694556405636022949139875990273266431706167725175010387626800577757511815139571715803704706140413362144630818125090240207852345280050782603784534680632442871545583111105780829571320336036466127050137812569340747076078683650110741384082839256610055009079852487309311217416393930919717310859194030249891312466544037251034065619993438037150592976882813305965563338320687302250429054173816199877865961527369622022254991509602800403436965958102739512726706055277344750851510565167450720361310169551288258118377508495908245919496183062478049806508584939822620970318444933388648080455117713541850671219421147088251994909530559904435258545857934651854621176843388191228076089670363876392155862520486032107048791511209708489648899095345070363140457874845550813750183357670937617884860493543719140833282593350651663050489147803175049264332251796618652179306966255310471052915185490696037377177822401217184196744031453424755343494835143192858374004035053213826558021463011513841630375720990536963608755718499620884292247778897542307409678470906416429855120608862977243370558098464277616277360796414149959781813015169887535764543672283582777126220495108796872996467037118410352016376767566049605487108159449701238325162115974181109616812467258721112028475755932952627811268877862996128401696203274174105691531452428982349815568846070076171711295461880677022574792627105934153325626516146716867532358652468134385209817464059520568369485241328295595169126658151202893301660234842093060631900894810095861691440185631569764605349832318243465424116691276230784411192186355904643048993107254744833407754899536580970980673083228458897857274731186017535548822862250427404763179749465113673893415761180334589693901675199427498952096613137343108335174406354273792012420879428762985029015020981357810836039560038785920275471132104555141683770359230724967951229328959104352074844261045035531705160909349636793112203315977368790246700797722408557863456332622144238435806663103058532289195324008708222431231447040110734370486557643174896993849509906914549076878435569634928893541734873258294092863578486512361184361451120413252524927606112515219943078690048047363360872833343526369380036741374128957545604730132537488948741370820716071648018540887534041374167106262724630426091770224713950690286137228828207233956752615265926805910306654187585131302680852666866095529356990927351982585978016457318212084783740444836819244724713497715457009318907298875497931966768299693130104947409185680962910467093254771629362272277869228046752860538680920273043309614139411638421063846677831069248943538130330550692607627477110402848743836950472303756632663804302881945717676449516528164823596586099370490357187191317524581871094278868377371969465954634938494926019183906580774001122716601637258175015519834110630376389623992792551703173100902071855643465092101464325591949962954273667971801049835434858265568652205283701664726213842434907881906065610931566554037388462736573722879100150640827134281897444295164249439512510761386531165715969227584573412147161138134681270467415903861632417471502724081639527178251965780345335244133518117802659024352914905090295139971034746122618497623177539133070719156555092570795168115483865861282634725818650545353930721108393528614161753855544131471286855477673560324775288516571830253971692915915073614073974734743512022988077520254610948431091193212645689161966503392160225588219927081486254789692008864792191775556424041805510241825835656699348543556702718819417797219851297005875096856032182103382867982189335141308904579449921523377636578445648057510281746509171844026213013774822727073211648818407640235914277377270680185172317978556358198078527010044828769507036961078941373485762927269231675644170636016544052703638676816506645033124973410948876023980418423607122831272626176622410237586902259078743627532534171247179650599326129540444188398384043705270887681281656245436022834979958638395459478046772467870661233486938507853939377980247226348113544102439343182835967100780646118483309920655732860678887796439168027014907944970163595645991001939400402256263143902230342493403945978110982777643929461583372865369823846576467190493246350659319375454260297983541257133925560844391790412331603946605043853725103914483395935614067905805081279037874905642157171557874096391650657853401313432913667512268362053452982878852571067879714157134098942212730066424044796729395158215823399108216842775830369687068778228143411627954009800052215005377108123440972610472882592813310245157345477452648765953587365203482686349047021190801153298008860604195470325265726870265131656036868205447013409558255025359135213686116158735686522584367697897910216745473686471559306868974249551126561038277839882451627077378330567382702927770610355337718794260104812607004526303068209428052511059910340427399611104436485246736677757416140509213576450472002616663756294607814108572038877628225769199426042308444144962338728654067110922082495591201735279811312523400338609624049454677103703925760135163629935030307477725701716305276085134368708628443598593391608038135070447436858147753866174241261763975228522547658780630601115253236481670585549724244639018056866655989042432154190196714434703470205650989447495460733294946125827544306490839218566440455350274298387487353236253969726696655039550711419380194871286309201319522431833202516516548398378537228881462204876677808491773122584124031416830742342202711642828195580907969523310856251099317440467736009111711518761647081234723413156926257666280273439976244198848404899863389931033229991419199388828999644642469149648529247977662607492048134395253979970239866463350370201939627495398443568801055683220069447490656559995281485817354206737664686969480997267764178596387748097285329752714328464408272170110975214722318880998817814521809722754701118050907084430020288698968707526278663396270304016301672206771979744909270480295898505602722316228396996418776173416729069524079581728997958483002260284095883930095154012317064029911805409936363312392219130641847292630661198385020922588202331502906521138452137561275173847566165414346691054905472576536074934332735291513833421432263654812637012108704718304616254534828731926263718997502347471745116246550864572910713426897553050164949503512424906521257852191294610010254637392420547951347589393694617561885853551660442503386582303522874793513350802835588065593979206626417815398991426148081711574794001534987340897805865161485824514351820128657730442926186539526408331686648006892676005113850795003199631080367970511181634428518728542280335037358599713733126561270874726221999291081650581072498934633946101911429651807721796218276810222335921797022880004449537808657075235498095047929890358838541482558116321227470560579160215571437990202973749754317250408054977141734060794934975408569765436057126109228902705981386637745242257603238422948317753647221007467026639928853419239730179895177895342359578846328446281751384828629647207933551574474330586286266072953871274804403056441929286444632729942427216796765563033228086727665422547068706070303790099528644893631712421513522614102052882457525762575138581752728863625584686666979243256595680615778269056635620321899899838717907773883448636504741286884403968971771472069946411845750788559954889559527232497764011794333413929973293111400427053602870366105149884859250993532396063599104788729587064162823733422274567482002796659232693779009723994774116639728350826074292180548678884524228855073672276189908950201868092238246382279008717575746786635390876355940843745887091475037987819931103922316957216577063979186626902960481841075961541357718922935231303232080337897664563980678426588048799009065264401611821270940233205607794022962316696135225659131830722575762006183764747038394976374333346375628196024536266196875855793988504877032166393746662061096493864023795686344907029424679214244895788094908118125738820848267102080843238037725630694622694902351288751540744836685978004425686144189916352496462960587868846010228668083075799276097817252971972709079993769076877661144364769581341013756604680340469690541433485089108573833054987545369888398622508709007895118541148594486242458731739926258089093477027664787540187824563317263540759857275245017671193910396542554410933692612727037418985827158702955631183087021812064522853938929069093755672201695954586557361454126136458905892666105673374527820287398721276754981669913619619349728368648166018828037215739002546600941010159677830378155693717357947279012656034210188857930290673466361717734139538859076234113877941068170619644689151672934908025719029571954426932014217443421128635979578704542688982752313403787215979082521239272540484482261489248798348196891055952705723925195014547633122452216537645332774671714083471730096699241725375325084021973757187007135628641728758980683114009781239325924868139886042149902573944567530231932060660355035211306890398394603301440175586149578996579253787744049469188256264927211456872921715200626629785545961568766311189914335248723383805243175480370623720156331761472441466186238524024644976354206390436939235021077199837123060302158338831652631548210538912301202578272546719193476752910927969424761765559842680537777834837468739865373346739599941674368043243763305480869118271289558469974950048520555438415804531582415998357133694736021278378063760994694763752906483088925873349794148897936682182024782471709496989623793478252896396573685084175234303681083151370478118409242856808530613452466704394052570536013613860417060065008677526889159304472773181948899256418201088794437839138069717561739795757211955261076290072931873026940689949896987520585672222985199580722934268434187297579565141371235905257132789221184581271065276175171686404311888140488569366986128871108999475715922036777329160002794787451115917722804303020769791439836850627176293876735692866997309312731557121576327917648130702634960921566609333067813209536037060353708363046826259023347239883112319918994307287889164901894540967867763778108916792406963556942806124703452520487026360499430188926562909980513727154360364231239845114301595889114688339712106260665917509327789585084058477823189388486097903697295459076653567455296621391108814439464873863056440685161798675824309405268033423301400260454129427882588091974111199477069686355414558487476106361361399435907316989037505212939937309994101432460083315849245249208968475034796172844496543627654294589585019590871499940899668802654483088410297744427524399426375011621510504733421403082224600560699886315948240132133804657578646610080554003461122776214059864529104475964992268247896076117419592869007743569887211152869771584919036846689206499628564927488962093853089739037359941835623954175063733084025391861083132082874515285315901939643441079306472790420402255579207249403206074695240620934350153110930663792995363098053437178555238002859400374029346259410230721879920246355622547064205094119805130463330210424000467813687664359714126221497416826368625821460774067119503847659176046052766015110319026945954464052938430306830590948512834590465340080848168936202770395400899358165750341392186154784023406285182807421920464483789865910274510108716596433000850799111755901307855026090287876151801964788953315789319103358182810580611726520487884415759146634670614132790393119495279246417791449794564766402899379139931880045186121059459277598123788314472059123947629475605181696344281108946879930394505079670020505241640674887625631428425278585690324718801903198699206802326630274516576682721883071632294881563744261141995645831014105247900588616268828993627406448351854472167058327142909768761915145719977119821088794331214365180337553188729303987401909329224022176144971091956978269437465304942577720619718343488669455562496148549480942205101130140341005575325830132794642535961496704720757937555907904525707710314981155152462582292117278549618240084181037090676322873536540734315263569762375832063347447612813431206742702946944577802359565597512270429279687313383219258315548651731571682853376366251709555176688124986053080184012425234922640353714838636520047922798688932152467941120096537668165586263351508848301864220575859629501782255106460969306157492116927137877500174907227755813652396791363354960959228156704999074284378117408584746550131220874405297068690424000015096891150614750840945258959326777490172745025040107128512639427354949103640633857739494224731634571523984936612778537689627865472592195030178837060529614637274484621336915597034738716788837803152974482286810014937021842601432871390053276186556643248698724107840550853293948559610656473243374704959778042411732218597114941518872129546004719143268808333927831303847737739085117327559944431716255572363027099613890844258492308575346933006237210924129607242798388341438224020885302139291168220866704898337697870905516392140706309897242869896995685048009868673789925915906250688258027268088162682677184310964975717145564648009308693071890574139205879358942680680584637543308160108511562254669046505802498517825465093423631371464453672187378652697475815707125148476277130415120914598370755181120173271123898721775709378965164044158428465155401977955047053904080903784351541148002258263499538559417993143920253958787717523110727344657570287090788502378408754452184370401020502789723173726801887557763531544099473485951851774502067162413584711192509760980515254782451773527538825004802866004904852792651951439790376018992210194251810054368523209734925824876130617335304263628815065300821869987291645492472750612865021946095662345903472762430290953501245995600932843937832439423206557481820015562354786755084869601050582432902400881038510632817547249102719054879624775880405790387571192149133090254144298373385588387383075673753290955899363196213559046369835778641488572314090186063164275333736546333120374944062636570459399257260519428456269273869931397330805345718608249220290930478396186046131545977307861034716037387833333375688111456961297103537886199856182501927849708751467302377047398642335761361640258842995581996131379517887426702076354219318452695087454932676506404203320237592969074719581648302977726582864596937586202174595777261846806668647591096051840325344387793756690700337901086288331112391659842836281068203136745296913088197651306447443766156277064833579960723648531584353702455597861583432745565844656185440610118962338716517040416702183361851695585698171470063383191585951141865674333649497923055618778873842007535937281515128724175541209168977491461115925461224835938313583688665055834242476460430451354878290434554462277915231328196735680045830018116222038567528746655779159387973052083649027916885135997735057003319459794161278112317835717627603543815489097470119635507531785720008438860616484555936269781939706778850646526355011823284562191426936277661077021679128536884244485167567179927313995056295356929841064721159199416709170025512076290240214360993410015101345797698054021043560360168215762974289020539818804046531762732532646312324983183972721800554542163305241073613964776932335190700933321490451375373967923638544347112813407904392773841399817900489669048740272523843097611380650880088191248625418840509329304220966176549327972440526745736091950083521256328964245920346388799142088983674071212822825654769745808257622348427400897631047485764959320754283991848538149768223088902249319019473340323675568074380822990200392091263630359708902992007743834659799378899835971943507794854579296045218538692409777972291742294508093049191843489973235470178561375452289851842255736848106245807235859147375040824744492084033589024418922100418830333229821655849454313376108963041544485067213555203904590377762378225343589421982999045420164964302437115221033260536306217992238882210923259380193311093118432189972152984352916997636437889166149313085230578673226049029291504425841448497423991934123883788243026404961875268391569706266716034961193637756389357982743375931770541202388345822020439022618043366800456370019094706304639993439691909033237180670008690757967649345616950748234633285178781075992979238584367473356492027676972803150651338393494233479555197414648739187649954810790872961605045848162378266929374635761903528915619596705093355023686710361230825325888007873393331452862864664107121544863704769339952886373200408652829920780047040039946549392888605472381266228788972386693010948581710741653873941768437275485327501329851350227767070828083459592049978987681790748019627827522868882255171821818990283432716222262983885266099395506939225030496870669059150604065099793263867184259680327757504920447762133467870823041217054243122729163914160553994402323871294832699278467290553962774466975397964544904392640038773702286782417518512914795871729549916755739911193733858003570532951718228089233888783140631320284386520806879373313634490262358684147914820049193659755922663912707166992259820124691565404146432248896028646204050319977479371220439226254424742027471315063139936016943431271519494503069217245336093603315040660646993010992810363848146785479036614943584001713071423711284957882311893117097128290815735690058200472690522759351127573658864432587239580525186943838324098150749399882685293101912825330558712669828290427232959762691874678942345436807918739383906004759970471544371325914311118549320961854444521399703136748654158038521714218085214220482495481874501533261692334111702340836170877126195172290089143970167592433226463481697904366407465819966317844978511432586280591887654517291794456533727537372876840138809913594368719447325171539729011629885466394077388307249705313966486019740675154897558359791605143567129218172619161583574820354777673472425831224290414063023228022658510471030184731010429258543841486023960703419022726344698495210833151852557943885442161302955372580760900068608306243621688186484287221320518402917201899320085285760210550469926105338920044754990697382100151121524261815075119080772388973120341059528254271838796083909172590028030076873274486947126889310605406912572976829116991797760455269906747132250507940714943912043453827731633955971267466493295514498291703806842708457886341626062389255682148101538149801626117363410037702908361456464413765230910097329712955434078973778774417283282771694371641375083235223486336440904320591209196898999669533420068165729636941595683007738655752070653597520017787157121452225780077620616219226745941198164882284022743738781529477362988148689864065373257068218740582341130414121373334967317345824925996384979294771680305076052375278575714917956607907491702166035501131007809967629822932016564899090640029574121148387385420018174882372930023388160331940694889622131787845118295468624892411398078513236393769848132814491263186395760368246949992118434003849235992126171380517086203129438432189735536977504027006053999257953291029394489220108194043224401793055876194192515444623898503289525162479061014232544533100944401772909773824608235759731992906732185864793261831402354692646158411122792306932816861478997815891259668534869412883138138421518626696263240166829659607764902185972615048602262197606077179106478520096469955505028149563208652457816493091846264374511602241251905134634898057463033528598431267697494064779096026964456358283143383455479414523320815814874237973010725220642197742349029496495292992742697416919148148575829160808487618471632204570586931912591762716604426635363773678766008136186151694776629065136730458672817871849815859880624861834377642306451531894525437028973635942720777929477883413955729803206901895056458635260997314133314750130190146176864139852317485869934658738272466574738115526948887870000446111433770255268725795469472236192638489661770531586321460609913241236312156192685966964255718150348562260887625016384738002854982638146269668026416314225606657727259689844377531516020025587758857088421160174879020799086842257635888089917602203114382306641290049197985449786330181277585932899258340304963073849898207240832028450527552037915288345592710343801422567016307584668195014189489265281113610046929301678522496974427866720275135025603762715293354969684356655228340985646829983681732491514372971490596844161415115718587093311741543087127939066635947614483322748710126817137317538105573639116390084686604606942390928934425939004903288489275351312499335477722432179413847748594140166239189627081939650472429951846639648143964733645248732620006844351118246359963704333499357674182673180431413239966461463057711299167630446575882318359234319800435470664324202089528879210219449975283107071891236108009472501166800879998836466952798260525102046329623819485937377927753398852964812255329075970797266565826133927170911375305030281682111221608501178258205113024048656357761306103877991240395986680771892233014803902718736804587450430744254631785676849716357706687732550220135933293988236206807168634362498969928760014734041861678275064541320063660531356400086991728828139141299257139227710199500368806842038672049855486353612487563266075654883215783279487239349326214774263366397031776802033165443531437049848097367733862603496748524512958986525210572177114258395188271055025718299089337969023913780246144248217862421971481011491520765804278815574162177927073731900935589230688143284396087102239512235455378429399700887170452748050750300550912320672567420269796421664314861207444488694805438397264551983506303321640187258295523673056695818580284277146377618564176375195905421516072642887029531339940014640781802678105731044087982463333982151216175351368272594710293103687035262925838000698500959388278906579842092951497360649131790030660775598990878478450064620797319945016650531030587556828054464679724171436292190632016698543727570807410676153517671888500105081880639384232402783619803927088727402315083045653592126999259834879414968415761417979914067268320703825514270545886573502803604406436700018570821084649424155356120381823508420987605449059598185389854819800028596405798561741453267111139762434835292017430204864144190121611327379855716465968391337110106730040536011438564577516150354280074802717798742127227515577958577627695271981039427254385910881854374335920649661364241258754374776068559725235209550057646411751493995278731231636139676959165181990285384742807082576718831869567666449374964606415800449571565448741433418289791679210756230553530079841801406489107784611506031587573821543794303509984383523951207303576135864209222201037168177355681414044871668491302587661258202618430057631044667964718379172928192832148787657121865472990360357512298629297438382138630263810305651811038572056126450018388686581148088341583515491772273369640235155978483447246416181490660066267556419631856806340500173120987391368161936104521753684167701859921216672048063050727785706067731594630585311079392789045104934325744506350401881131069663779416326146047777410050234805257333096712993939715339483607975419478484304973013570569417445268177997745873082553169751864047597985574581872617379010258383969783063361715019631371881682797546476392890481000529479922576787612255086359658496521041563123638345292694961690682630190451224311013400219731085695463734990773482756981543874998417882304585707098524251322942585630964687176412721010357759848922504497577524997855761372834020956290642666496545351374473964065317464765197793330513225529915674906880555626663101055914702798091864666963147691170289326145599523083240610561569898693263437764071207191799777983993485857373610521946845844144559468783939641925148773437247987872243276519155101710503412206569465992545053114988989995954600332006794625183736100433967427868967772061914612741520414155453815630624940446741002562101029491508006663937753347076861656744445111322250379869633977083609477017948633905861003492594716901609161117307004699922652260236249078258059591471292172500353584984137476519461596908592331219393492569920147111678256212922826422969656089108250791353280573414137947211048354216371586692955463150271146908550667216431498286596559721100481466281405740351173079815961269222157874760436346889879924179368807111428944826213895601220601389112885227162265722019816157845482553085848153320219782744804773370417660067243625496522221309016424194328610524478091923172227297693839941394041505065925777113260663150469767483527458691019476870407377997844266860742259361034696378990194252029606470423454254657040356932165737325976574525426830631315288392543452549049323425788556179270706809701365075763138663220841347118719215501022719514651119894138153107063946727748161629736041904012968724622049312603362395601236202149865301040429678246891737505597711817021668812888616001370750099056601108902878313750443182149815377309802835928009586582692230722205213363627955181712554740095810901274345945179301954528665693904799327877790895396244280807201481347947229850626612942608731550078844540345061159257721213720906976735955902870012477349041798532017439628784269325139582811008519586241933834635867972811470175964440222510902127578618337647891625084678903016788953926613178700436853147913230334637062455538134782199158799962857283831985868981625577050665361758745558078913187134233292364484702291529468538207434935048741648901925487631614386032688903816494819469888641738094707617729193014284218883113488441767115513365791802447959591479290846552809831679293455784141075170166123337750083413604622683692511659679206219482074846816127164830388966935593814761424150720868947986356876980956678578741981845653946122675440596694560985692872657487193738718639824662511034260395423892943773185130683519403179106875340695871170679407544582280385827337792552036078048690387722575254770172305979300948893024511877782886934886365840288157770471535471297487864870116308372533047530250776520640692619398776540666963519645477883799084504835159529243109786919429490220611022793413752545225603215506865848758343464136326635937642227310881176092973811169867899629545516574523714691708210806485046033765552966685777013592764233440507985061696208693290128733225595340286637159867868526564030517288589095913578794582112765620544576776886780030580565661139307893817039760314017054414994598029417155100874276339118170474497172959590470059139151114020571554100974692539321858084050456868607625074453488602767068564160941823894028542286139685099274161642330178955023621971050109949730034129824430594574134401326150000284503294326127002425630770094537867974325752874972841323041043510391024062030755384609063322408843553777606605010066966026385711631387848105689628709726504832079385838770457825923915689365012383010371724970029068649098299927971728593048277825912715739376676167662999030288921858375318140129756445270542404505272910749634179062338672090276761148447237304662769912406833192611563500719365060596758548479402550895805606827437624112897020102904854413109081647742706087289204153651473572113213262023578392428037705820367032856544567998225119095136041394318430678772099664017985851883426921595689979547421233089925655038235482255469951796845346438175027780983297763541115626256419757107759743302025690433061549248403357825171638217106788563645716865208778691416503177590754624193321937697123949186972523054782283975713917886554341124105745683210856214269635790602701104755095188288320936295538125068262353454187170900444024352681135052194816176392778368428438926793658410093057781062456706818082221448721557502133846997935427377961563857927297431519999368799043852368657623850355270378386501837346113971489459985602837724093328712723590195574493208513801932616374654762537739547887900717416505371331171215494991860801544371936580570710482632364184107378525245263763879039534025407651468620091690267554959516095199816005566156700500384424760015737126506708377568867381907341396661806071403184285366780119176560149704007786575792696027797174592971280728535043742044363899299170082901111621461111720488825062235010606192590900684725705123779535709453122390982859019326854386262508025173848224445143158817017153154853325196103441752787263045971822196543609763969899426954530042615438420866105783820533963731579145448064995955658704086964312723409750225393521140030107747149610591437708459800586204253659314853441953626090114100406118808556399187370830435765376055125984566228167494726843537276491477993969497866364214530470817016322719573458322938734670039227196152986995120946957927549931238417459677190089783675857614522130183726896677049233358903340318075010597856851139170156023154089446478658205290465827668907470669434503420979752494552276494702220951176965098116609778988411783455587206457337621183460953602516540483688537660408469234233145520188314714865563242801614159349981489761964405436931596219661843276117022868183053572317923872695386675160439992143098899088092316558817662509063592936279106690076973341727410553916893787147898724403279906558057208807508349623268215537343866113652455792610066414970986736116971738883518452052045155907132877674264413935557217228501117779277667762368688205685911233430391524891879523391174500709862089480398646690905777275167972679283989255891229938335431141860557568902842413621079591227935642814767861240397591978221203003303100958669522306264224063377210775575477960870524881160809853053586984414295875163774837107243360470544012315873745282866853074960967995687672649847989313253192577350006133589929370392169920924179871632761363365267730975714591996497052669117842676607633458812920194968870898239830813206338913032627747546916333444314002524912419393120456900724960174431916188995622810249603514458219412778453453623329115251440962166631925854189026852702058269409489287323549799337197898565781610297881384945903159040295579452031264895951597305581914179180904558815943528175278915731310763403688364875018369266465792092471774509197301305749791730303056051287938483248144218027611687353391828497088294595598260366243385062221965781437630638602327667813116546672182868182226216442255738598293657981036379468217028627773245911614705376837260791165156152491536691437153158971987950613940854603993943412354184893908742193682276690667842105285502733364833395797541539193307684085105600863576377475572586624663267839132026156926673881641954433074066784576676359671166077924574016373354934827015848184429565554047947377813371567593189149143984649688218146233090547914343165408129250099733664987989584985702850931855321935048876412980856923489658750325318166232481378783309237738253756015025884226386809841796919414987391198552092151951294103588104451657346997272153110384041034208192037642505270699224268112253678841623433562511274295359359911733282961693642310050473651805505100195702948106888859810297235751136747168689512886868039294142215071439316294223501703396815094060402582482804791959508101892082132092394207915596582271730853917931475853049901307541252413446637611775622405414601591719208782594937565015862685015646491431263193970686569323590630698756953141857414882788297006499320730870333013057621404948090035305258679142895179099555576738009038623383522720050301372764595791896265121167701499159015828768370413954230121194528007498512325155470234482196039645806897980057146680295211293603449462626305656003343281737198566236653254672172490313116545880880553357943342150957093983484541471778148356666748262811597979919157731885491114981716653654184526060244387802057596223608941944942530866265873942641170186147968788130160121324326176729607830614663682415814287395565187100184249017123511008625483839931915975002327324173318694965329430186281939591180975729407399109777884562339935703308299478197656099588531160607014248789019905404913185526692776458785738891594035828226358042703531959783635745831699666892266491841061260422813163414237170473108879677429892762217797082780064310552038583043152779736403353494579974148745671905861490028587588963431727770522440893130563577106270948954057691927541486988613189175392250628537541615358848690974385756601656528655074831079232859892653186675100357152715053053895681835369418663359001997381008328965962670432952639793053758387485733666058608599908867082303908082443201802592911140933993410913527293247982266600839432865324574634276429847401214285922675084709729559494445557050697056244219010320268999431004638152333628470547294477126557695595829832811577923555047642357375876092012943457951349935214311963535599530189972269235529271449377539366102795026705361449179135528966531278943879168459466380523570556391972645194826163704619564956800736174288431196011431881569054764886793612517850381050962456822463939809541350550147203958445723468735660321266426848243659332660574755798880658235152857527599193944479160125907442336582231233633170763437527593440800776724163600455222066824662506843054688730093740858506154187286901456030613675954289616299573365772029912235534869282893576834868868230203780599944825519152286539734463057393656389080317915755373673834226440377859388830657401353870018007980667633362026571003927622401858107716145050027004158743061427404955717307009534205685225557417717265351687658180587375719827672384216750788226920448322821660010710273696652896418127730378005469189485733912840354898565154390545031623219935747898005165261257752964044159892738894659946555253906299229652392389761386651029510009432264848235503985159873558255655548975041431399987710209319069093756276781212739833746554989474716956530671337002144168878088936450155314931181906706694543348944807083945326343926715051126779722616285719652361965940863172360157598251956854591668467883770755204916588329023648297980242084736343489109978772212782390051841245635671140303081519030328870337933649330400744663290577881260261179434116818069880427356166144094565107386933351881189757038696941831337281640002712946257358130257972229367145205649698797456319535512869960773748583091204382148489059007763901143908312863201987065277318091397623028219948524223314112232461865903101661238907918505257392210634509872817195434650907058657455234851567174854910915908091715080383305669273431242778510301474889667679137102246078756104325075938774276417926546422625965933442324162592414425927770010278018109969406137405044654814603669790486211634236827711935749820244687335106636418437607801383228342407944446116036116297907132619862513121175169515451159138910576548423000933829509974800584623736019560085791624822585075269994673441016641833491381155662935173774431858095692993675030612319109309051250734675353958456921410055352683270675491619343829163765736509645604721661313725101558793860449105562956202484320223045149062362105235579302980971384233844916673676782249428639803971717750634389457214008563756076090723361912050908071777055497666435634900701429567924516729687132879471985209105453678944052908060496264956865475680276446503749853763715389914978765161193805475298586654102649691205749781386620388753091129674138143350373577694246489433604328434868105720435275473308141588709843341229250155213243837250604529269983009536951407957765864677780055787002485603965095100458782488502981911895875934344985077428657426413135495627327076138929821251279673931137454554188412273076053138719844910358497743866829094378336099216006313255692047257797682329301619267192702814262436522094496333378426327080746912223781698340255539866892412876184728002911962510585984703740880947013901586345785222892702650465768150894775719155686292572630506172848658726106309575063748885926932444169691261876382351050347939662318111003251165176521284673680214029392107037432063060056905468717978802479156517611022947353235619102946972491273097193431279542589247326018746476588210087690846951949673220112720095990474125891499831678961870707583484661309008804165587669893906351353597301467036887113909907852720361304429403668711304734867647018009947630237850162060795047975265772657743666327943991621373182562648311649204606714782844606832597591524863150418958905255894585884877335508624551693970963007550200867914863426411960119358064756295779563585322704332965344435514460410172915212795531936967457173365904663980446448871556045821642806590973263101895448634416041903403153865686876731925077056518171221379557128657106704079346154363844073786178318153959883155607473294840070147724908761878692104262862639847796269800265838991640278495883083340875265628412188615507751676653708568322654406735740729952574076751575947672970028425800255100661499561514500570510225260762131976284921220326360337857036907318260994009193142493053046488467606927651471433861206689945607887902574804788957711934605260056707889653940688057090422856536650041097520725427090905009654144199475650750072615132990368001470973027443022827318692937822487298290492671025819282698215927189371723103827924969607912142822500608547109722466007722021224975751886464920973401873084866755946311987074009149181902363417129611063374680311034060435730758210988368603066755827904695135501350264812092007275759029088491551306957182676629825049417468118779282614024514876390210160969070269413338630263263812499100732302625471906094176031816500056875250154916830352725150102244147324073445355346134380552306664315296096176102113310673489281601201914485950155806459867390974099963908791716734506333859316057190552281856974951451341752474257644461430151918112914820626739120514529610038613414555078547255132320558101739000519418597944552337287444644725286876056143961751282985086728760951813831775869594104007471055077530169726834932793795351308597541918304608431188174442618026020776247007013540253202176896777016991813864282344869739737681557852318744892231830310893524907503901983436412807145572143535269866146145360718358093941155877417520664157375720098718506597241711976280294458155476355214249205971550080136445997830373484715644966119698000947247596845104777614833791838405313284732555194892413507721008345612150109145167431778302424454776362658344431151508284686701270083300726158708968953879136298954243931855014133557807497054292657790716458838671587308088988737987526176192640259443171902595962188106912190013325908401860939656011930110602818518204616767924822434655757537181638769321586517717502889683060231187135459017383096250832198816055749150028739705274868239292320222788520550298345237377934432330796944046845811639028973610003415395973210464764236770884057775251516366523205027571661345568277333212525276168361868061915049036448728535080086708114944168389377970169203260264118225436082595446346460404929439330897951033572618214603043391284266701122472329677211933793076687172732281294203535759301272754384181547141255128866185932509940219117941207586361997635146942258923378239525713366426672300096235761047596761262240631719096624977067846809051904298418760268127776441727780743907708617356998256653946543458949027683088908707753464044072181808859560026086920451356602032400634219025013229412892138604626702365508664670612876146628804496288203028677036066281863960061093546674292024240395915403403812476090984491246843283595069116581378445738981270082160785929398260448364861827704178743289574472707239192025242850382477520311802196423656221961615151078703755171817888661359685060949991642950798854887667017295882168901465634772878808134788114705174186567550713439413392483044921113013652518967120949083037853475300416364354251796580705033439347358051642439774340180555923198057223248007013413582436617975041535298704088239756385307828839597724392435067083576444487673459966275368183791855989984934343252943431479139809983002072844270331734432325534604441556244560669057704070480517778595522245914198408640566899445218244021301290402614958750892060574502422782380857183497752652699614678420686459104416656249199394041715549363008938939008575643891338325119659786987087476475375957130481979595351412878213352476597589769418838661340076050832575448218070680015015333827585029748982446737563969555822901254914043505082659598786298167330672715774261736311162954732676492683820073062580526261436843992197996641487462451520225789729512811185244591791225523048746241782288131424990196676961820036204719762426846042705552002241168150602821809849202889362851120835398666138728208106928678097826203152052049442400383309414731630812326180326668185296800034395666988845599053295649188242756435639100135843918940581773817953018435539211945787980214523029544407297543268916934075128718079028245055856881353340130891061830697559087103335868184265440471344372275927707560924398061678197975475377881118370790209689377074644587444920510822666939462284371338318466160377585945833778776250671933816869240347470321875127332683748780463539300596002796137724573057088604114603081575895178799402815653839634544469501267337755721516664285711893420006612015809331342177023759493238462194175855968009541882549007661627821898187233555560312460450178361667110576158385796093464923042093583044461440964251466441130913985076039658640873018560112472648842201209523979098677774375462971055488637744635636616832426342636052740623641743998690572871278865848667040253271781175309452020460133278335952159319873638747992818413985026222465734168642927612405867637972679057270510241673540484924599214558690332121956552525958778542388618601317312433405326753460808127466882576727518015227933834983069604900171191493065549003561133834531908051290754049282230693591479959154470805771369684971450121687902374609848704156897397569727690972915715133372542820178618589053071261878879969671521341228889987173258007823131201531370584637732058722964411809483525293644606231612681441346826403156350680312523634323462612639948864598475645570531983964573590399367484475964703081969124433018531787110251145363408948980021166069692993443900321766469558083079939294183730692240441836305554184348343393086038673672323466419157497089829827526897264739997121960509392516897846479749468800716006894291958891322439792365749800189035366690041015776990921984855375273975422372606302584270065885827585505198560075940966753361347972260206362003838581401048806131927817693393439208950419272878259287453309849389274088193716529206752116395642332815930013224669962962559400693352994838896191101920557588888411679969144938634744770182575291636077483757035312070754178620203934565362576517893824315217049001331305501622865931233160915321163826971731389414724526837472678652223730449867362514939746625934676414640692919474523590031172365688447088053812464033847599091920509991876580577779030777298570656580562967148290169074140437582738022897919322683697284827288770657186234944961351331791044427693482383103426240150885305436673275364008311635431395867109792773113071469095527287271044098228616431051206307385869155144086300005130337673715866047234471721544621933358534788651987557528940951649156103796138976748345364575104830913845697491495208907229725727918004336561469063491261596691680518274814677023654633795536153649781616966950102334910336929233363147629458976722803166737454119444887196836167783336184756362052103252485925965061203762401062644428829687327814950819680231786920007701848254648369075580313022086961006556726893408940534107716560932933292083085726512824996899344678535862011694976158517777592703004653143954374309655323919938586739165868459435686674711418032453499472281885356007304888871973018625642509173248895220116253102521619277634878744148102912178237860285649701510471917618253655092030803989849705416834160240857153424460121909230691172748311436697197586427668214002363074162724001195120667877435613612140335568057445913925947344402166070222709814867946020028273227196483098767587270487777408875587612846912865906256354782986381325844166567684007757475643389868896722058820841328560184501845735347303877174981386095102267686955311092947885359275225257409167749422545247709487189225674359929993926638555278545977160480538659901926866927671307570918288724509891688277308563937105148407023178058864379594787268759269950984261473368718954905362354210248651402770128059659090695772786762439305675769544228728096428450403152156091115665133040659602796629364508386386956883813028611307226302615937659625286086814751157910718957436499217185278112576437046230413621572950367830340878735016813192533359182157441014408846853620903736787104721576479481621182312112574017782146179099409099500556827093966826114986060671946977202205471299327940951373064178551908698964730395285957324222574325349278911017701961334739307879743286648008544393011233845627563517482534904619101678280084334623112671071932550344525470767391479851272832488687245268108426516417778730837393249316391917286613322277588547252057444240471366832746205507545046103109900605352050382971984060227738235518373782624272077413595360185697123491604702108688362833770646351467755619390197746022297138248779332818328074939710369360775974729727981463006007079606464562351727884425105010670359546189604940362501262596198765542795690656884624190863814199035884761496614666620430035719999537946872406817255332391327784200882095979661435151335106874558899248911083040683235763774041871885012643808316827356217660561020987040070751912917480578974768354290479439519612746851978017280271278391844613166142409070640905978679869457327367102122299677636400541408481468230534066006612800073917515062409647247496612291574884040038011164383799786912233944789488868450794315817218768881531890325759797195883978515379087678557425898170799365084478043933184188074113205122844819378225237527434180518460316710128602203694581965986747475559007026416228773451160117694330029606522390871725574109666509703403219770647698349827735428068099160760843775405477396217040852664413374441296382355822721321312756587371169576573580409154383399459696268413295325007101465707735947779737683128993781588786305812191156142914590468900132209003659183838505413234025382883752795769670635287802871816772485508981742956698001173204950119141998314636449033795790054909201755297205985416650513767719630721060944979499367321777170368343537856355380150723238457919922312597640662909943256081781453690554561407154203078944596954835223650825416648804690706146111886347452927943397987031225004887577848107199795973305552108007105325447272868856637995607187785521111852073612432332306074893765936235853475358651369892556802399344964621639456109034276299273314022913814343535257767902039368246145034692922138014001664400744430156652551781979738739626955254872650649532484731364768308867745113078801002024059076984611310228366420416139558351065130169208509098846979881876334257183638198893303079967875904539657098192685286639287021189481292405319572022472540906629765113126636867175692827680647851146584225123355323238671035141481582619939501217202569367564451093144529479403225280349674882126501790841589910361206285235702581032367456396962404030769496575291990711110215176729142975025993861301714044715654951075276694921474730300084945795411417369022921008747991747090547825526018275623978781234834550951704021592790108870336268480621157245098048505933768749353376331396310611289711307362720477495442821076671246302886181178219186855117523173983304155151130895489139135581465896281920421159773928073038109679468104159594394663496265177643912843532993655834737495180973981266463218084109326840750241028893512006532531042088077243168309946448837472781375819926046206768510887247036306819732428154745156236667155112824324793352875444951869176869275933378545309339813814521335906945447031162437745213377025326509487570717655833383147083424697607527265080158551211725513894477015901480840464176678143921056865661943280943098149506980000919128664105099246081546658986298351650432561740249399574173435648560001628466657984235759573274489006287951013967428945466396999428233164148367356261391205068068736385212223634260206850311177858388883932295711373569974540885781257971061305899864069591959901222129869997268755148512426954486815722803753719799772810858704795878930730077825607508371355863996474014629024344490352740681661385421477639155845499878319447138180525788024420333606518958584005950532091442658569353202856573770479402563804407601053552602889058512936306748430916945607218938989569925877925788232168674949847770207991040735402658921391828959131056038587896146148021085455527751946831462677249678055438434287316957893868259135631157317001665391797480695004962185568722958181137969145255220868484365288349460305281274400520300634167309670414295171898313596201124069783633249075142389698639617384165054663125324632333980121607954487608179869614704329696370136907114222505252338238533008363707111592526215128676422578599456288496201135818526917429096753588250335675010043045216539072598555940251662707340520905475637893095468967021709082229206946082208971629043565147403290117540395755903979901503745545651467828585106626868545699953367645246239723636114999846223470688902325082752915326429120099684910781965635072334891507658077726670502521129427751272361341664497978612447221441314891957837000081141688941023138088787064347744852539459186903461602472044591360070367654946716194696458209943684178066699292619676542473692828040101251692868891036697953949476322221789777941990930670797275031135239798493953393092501152252835097212480755454498147512768599956503639631660383894292241737855614481297378004484935868410738271727011400649551854480253608010306360656732588757299836477293029478554201262432138951982100856050772163536195354211876535193568746095969214836146161028402251544196792861774403796172917103417266081184555420216687649713913922299958217935086272064922519554039481322786119244521466335638479849541826142503946576072666441498936698460541288420940994854559608922387604339755497090657160267887736768896730095638276431224927456990186872915380970515225877882173118042124332481557735398005226411232747368138985499887609162680684232578127629274088289969384595249849418148394610076752475241059850957342621706324344371635540652910990671391755678413992262389585250009419948842250679493411084531938526042738189801208428245593427224703081873326981726929541406339268484395031893881965795047077410809350056841652010737721634049413293727963941750395245246867317729039803578223346054737281540994351114570366481056857532296174218017121817169142355478711433609609338414046531509321691916661098038076136199639877823531320622957325198549453601774507187970510314181004045856324092353083524550644190749567756431412714291299745752310732364393341688587395745839806463436882048950224258253342809164807847710695094656204166378897955816694589348174932455307669423999632964478855712377712239301726846931313484590738633820320605123397645482457823534466573222528380135786083788037255497894872371250205460430643706319252953875830851144340920855241672151249826693205922188447409220547101707630975479735088056574002881051806794243723079968930953083152738041241089975582954736015763410282430168035002127796099336561438209500121021054848330543493273572309089777527233842413896414319335061133018916170491113397031707509479555850816107392434557474193149524709248053777232725698196917439264160815415158616765864498116494711016615426578720507338038373406338118231179271687069811644895873469938656597731038236853075945840285418129263600702481748128198055862267925755152976771560969176780028367053078819810377691600531919355154194072530845819684056052438292294463033121821636121676469637199130811776725110755085462242432098255384715142265190396446879833711866644466354065383209888850687922596320951084541576889975859245101147067478246621688849483875435598006965042577907622583900741622690512341736635655305203066147663858979455110549040171195123142271381015516262545313754935251095189865370683731112392046776538338654686607553263042132741519601895599328917131071159319287590984826709428051813711472623666765419485469301008814846352704570344848258648032185880621019077414725880904527485964371749757891728509125619682863586244182443428813185457166006065955174109424981496434172333499498265069776252517879327989526357115407549958285499301316196101260032959599450680531223679320514186389103780688845478633027282116398589100616470048347218599928601085550081327933523045422577960290184528351811092624534590346591905373186976269073879236504255941650122284051096814533922857686173507326310980332019705080749742099338706228672257849910967331705184586145847276564067364288926157878639943410218956682157896593347203220877145907188790514855745801103999383635401638641654206562179790014875599408076056960018248785189426183104309884671460225961790410895874007947963107861593269528294361060218862904534791487949009786269895038665048823710745877869080563345831833992496524597627493640950578036139240898028871998467049365325731581135104905274746275119666336546949700315885850118015897353367788097130224923645993317695365155313588247554168592502551023452985256877847642946302861999475482919842039896138053704408759579460545936456427543099942112314263894760659354073626696239428394717937986469267259308577814175273529770706583695162715232482400003345044440679752182297102121606362650551906501128576108653158806265359250677304321184534428161638315553543414006696857737210748422730184786244737838136319152599234243097291846698679141079433854450056626048815885680166735996138096750665903266578044488849220396761231966969451650626455785550516458995254704089069284375324536859708161745882547200440591855393487460719067874730027744471844017457289561486809971697546671432105410506574434617311710603594202290948357815282163180590008340341921737850471128761065798562691347634327340012320123045281042933866346969645259895620899780058711727051874857413594533240034126228055001112945076426906553729704357777058661862433356633871093204338708282707123531250384417851170087201530459909607985221116945789559923647592354387302123613687399065565351948087473625929627480308235305635599870388685926752558366952891374037946432534448797811262249221258757869450376201573071904688953202065055649059658819971905671899656850388532242792785510657200050085810684368020686276921298365299165727322700859073494900502972370093123195677796859524157021419252365866954976504242683943430783395258288218623590095998618600583491750234611493743135017609815023081538680238771294272865581750548913701064067984171276943484689779547411530519716378930672578261788948111413150238493318241303213796699653135281995934305880543664869108639097439387712946255028030613217834015847831279192009961955331333811158073007432949152542214829735754107556810580759000260910684281348906970616835557446889578794451702166688549381380761498467969267802644700547637714991012339768390310866135332577339720385266415500774664257668573619351016073038832752477974359217140485776900815700402642167392369670715834336358038782982466869472287876377257597173897708030332945315612406163284097124564513392150563572666582768042208796903124427156943802380794407488232164691042212925908546646414938565786588343354270168683578315592512519634048557657872969914561048955296478080850963767481151840913257343877218735854521019746970294131246642540785250540493973670594118127361800842174392467127054806419470207102125239432585685654873647528420947102706372376480421456967395709435954799433316492769934085684797538754606127680051668023856990802521979973412167977086977216829836186752187092614204212474815545152243819077484097058567581166815788274563729786736230447751457534620369225281385937709131386914466125918735170163555730910046552187240992790197165315044109476693781218878414627287123936065844061994637719757235141071468475303795871701224973558223943815628482469747269598717568656980509916039547038025453563759363852673396959763029236734578012295851633852577681891006571673834079357015699248223386209152585896121188373877657966745723280290457863793815304194476004787446896276065931234216035230856651557632797743504205572462512567677384548004836338285179775235172110940014174867899559636212286786635475966303576861375768380106385306909341552428840602380490976105650988868598636752466383874002483576970005112686968381612986253626330570412584474710343181323466603042816363647292841882547013572986639863625860849798518193806187649116268005382601557056174602296559839180992919858918802532272946687083253072867079212948520050880295717679169707378720901338929212235789414045385829529883292442216731154850099048225231948038547382447006298056302911918909511120030079158955399585392499201468234104971229571070070846526377429965964468725292914685846607046045030115558722714231850656445992585519199423344242020206023692951251131210830399179096429984521658009332072702279563556095679901110501350798836231126829030485903653972525382473687758369583598890879488113314107172560479583593370889347560268392332568086439021055374122095097513634711287648679744529916904467242745157178072100974657570918922588625070283227859321290973103108615924157981147062089202535708945550688324686120588827829076316591919524097424352659907661393456732005946124573248142735368276120620677406614490290035985066940508401400310638395902768330833755196702063618926993752560990656272114965615691609682467158131702040412802179544028296395563041470106395634565248929995951988830933125339611360361289021792674680949428772311873735003597276169281650556073724991669058143195432586022644402783982662066096296008221618546331042619587060576051621969054455408796607254714067032968234528393442899617445938638567063617100779201709843464606412156129592536781055360691678525811749106441424840437841221329091868316834478221366933118641476051435214070140765518781812465230645624598072599637551251927903250535070905339626242779241998927549564539762197485710443752860420077868265890983998678512514695547638382453991143284602087920616980615669286205727978657771340351048815870535584746787438486877186558967985432006991454471113634508900465107942968444710214004658934400701032005029610469540799000133811424401610321333219262029554804042053972217039969115608087465838045868740302121591616712275445585076466576717288997460510322835254284852983089790172058132795184987756238109064243452359957320497770082799413139207565899161422875261054116333426570778759579078329718249502531439277759420990982735802398264693884086070748992294635310563912803818159494078632502014733417588698449714613406164906875441749475772050591898794045616394918086785179338178087765278341527029224753912821094420586879600300650430597545015814623985447049158807650185923268158776302285851074108684467446007176147919452261383899869717691432371487903104805878762267813336094543378799734185155337298132008917625126800482831050899769694268358813740109740799008266013114397659100151795732683968300030825423682419485082434881274764186895280001068183704696029760892820055051016270247839146232560161689171865557695717625176261717836542051628712865785294884356129818638467344703260505212927818050661247672954431526828613144776840335067306056738939540602758133805521258015116810050803354111473427405964799139568781986393659510291356841720467487261432566260223504567091399353388783137613592953834302502231984433704126139327947927874673271131440219377690234097857662879979362723983423344800215854116771459204478481558320225795749155964672173506774964622743569542790711902993953808418247663297804122938681482802795823279485342411558646612365510023431606151417339686595045055484468515944633737206454735012219563627151107756864335189570572365670797265153680030488365347126435204156448417046532676103668255814893710974313694353658728790247259377625426285610141268262786147986005413824326269878433687185126559133223512268115661561314191611893725035359251637774631193678826250907390696270562876095105107628694719887537272947821022278441501689350064338562086950829671034815988602903759616285255788631191918647192024035596411231313931474920165040751360653755099329255139607283872495622570819172113280750307857198819606999236524897111649274670739610819074205283788588867827719821655496278180578467492320231924799650809633967626775774376361438384441389968346652821195086264525594951838753003546639056775470004622330028016113285318960093094333047934540691921221948319003604721198342432480877671473175236877206052830290410620135713108723886031276649322549212883221870967805748836584119182837375565827214604079070759910440721653888685132207284874185886090231244701510494013151484872356292880859493642818554248277825673770880254200429528458430877207181393007828353153749136624819988469101470712169429637657403757496815396461675297099757919935172123243525478998879155523621357994331034152463600688003690298362137518629521553630543730298574295112199389387890053673549237992877065263391806003116226196402933320222468148814858991536515641062720902277997788368906325654633041322984644164073538130245087972279389159572328469084398652308799838000331483805111043221966128918089390563180385917261687740788034948846272827105609295171670578751668853545249434655086726507678417444646973486090846569892375213690395883347515124888441179969926792282649025289863163887427691476931772158835510959080257531930983954744142935006927084436717098619933034214400098085375229378088360465531846398373993359000702332494831315240956961064235341523255782740639430543833984359790844523975958572347516349031842545996820446804694523447402114994887756891098986136272336258436518009212714180637623783853577151422730265747319400246753428424754856153865062844528399596189392304715877073629236975561253776418264638889603953221954149716088592290330717849562457051298795692062669233329364924540442998195905133026531774298588475726692186441454201362223716611149429709810990408234790659744566406086920607132040209169741423105064702613842783416940321450449150835197833775907659550886255916079282648515186828716550922906622915998421784589325470454476580819853500483408376973121609196625739602007385028677298415274281136437254289421568087323007965743570383966615616168567835554274398195640643478976118946424977489318608092795548787075095939996861001821622623377383931976174284586265645199823706089695767115079925200742418643808244701405158275225941809498385188042790979579494313218685605540849295209519500486390235427039024622865132891783380793543130178609577576329632500177800818993185216784318147764780458839924898000487229203045215770618924395394644929073184359399483484070854102962767481908091385754102451124438585866444722050269007659187817982696724591484231310151885445380170615314472390909124801410231707642856435000160874697766523673956342758801573500490950878045620745707433724362432393326322477888923138629052824287350617427499337285736030194817751137150783884049551312807938928749672225386212376060378229657964452323097748484390214133298117725626424113103755263646275621262291488460906035862082649110661762836776802798066319737638983045362433337731998764713312174668572024243558910531082083691928865610621547713892876711331593577175375962035103307553756497416793634883897531191302802461545950524440529139525764248308820542738115138248392099965961769015395230242733734432963366671971781256038847605181485305032767706290583648436321335972841464855393147839460624245582242332182521650932149833472056790997335768458685893648762476885141346480883362197885162314141528272108759054572391880984654404602242298519876126225743995926385935406257373731173297796253379765031604106001301497856918605093014392852844372835325163638770211166854961299850464713486856773743452864469210214743285640353617518172606086301599835919864633317680024541941210680892045438286134424247358028574836492046917485730447675357475927924597919018373726931157532723628696525291894917088791614027018975368243609251625038359605563880326527739844809762198627232659318695434421220348231652347831872432491768003289040647980576766532974937642287913220645526068510235529633872184325957610881270199294042063429924122426940466682228669107339149853238215577589919254891469068773382000990081465094924777511454719856194950960956262700492273752883481955919903838337568712085985476788764441946820436651193654942348200869191218894933300005914282698227468705640843263523844832180591869987489415649935768512185445238573029554070392062599409072220909298396035264995370952002875312337857432971380248548077227290717961165696743250613652822536673915446100788408920361184280256812171779921969999907589106623912566279179399352693345503175709773529753108881798492675332657605837082475340242367237137056895964961809408852854293581767635674537645310050636042177418659128715157691825917779246819165021435264468854472138202688827676983668686813738451831343634153051480131368212712591121896097200302616125884542709617431061726154698547093670877663369239601568571326416442568688567754150019491900338206117064167914632707263437020535898874791242809956374211837120542567979296674973603668925448094366780875091995928082185958349553713448608051727560605220904581931030653602212144952842174025834228707933130490174773561413522128076755907342753060161397139610655296459379819635700909341677722173711792267902023015706265650130004811884679648589569805775666801263382789603979545784623441236305028774468369726258145070608174254172398793044774250170171468281497983414140082905606717236890792104136476033186401978241001565953880276789461537305361440213947462502267783298311855278979866625136481378263343992030340170713665561600204124116810802566770327208931515732610174334085527908623178346292242383006881298426325099738039381538358349138531165388182049042611981965757061204472691255047626067185019712652597791499267086282612667442904009842082318925282980099247146639937677879779256192613604067509464048836132823840247971675767145018185373048386797239580051920996908858297245741838046561886640598206279769915540410957149347427650118461256687727769755539497285922229264992310111477392905389541191890865032318035669270361115058292838655696407004617457040952899522396212180705924042457299523702003846781612791901712294798756242388456603999989468458098956088036197224630327939549054629088203695593325896643298177240907807696158282630747473556592375085423917022341188239826314613166075707180124076389721542722396107874864483660724377274691181740969975252670832205150163974869517271903066277194337490100727408112170714860540150113447032932445738886573585375559814226250194582737152448333234645792465321581199349050185013137659722551331098336114723215042733819914538112666465663703415285257790672453996304135803031472816758953365152721792111688445856426843378218458617009102063216982694859558328781410934836074003146154353054120784563563364576902279043178427686102659169997617966859479383164703540955751794459713728411669095133749129696762829504065295008971385083497102143494552580418461651506493496694219794426868397662545460918999484317804744571687618122722222601903157550006797754430268438987680444650106266533944749484489343910942597510733051291224946364054122599076652868083850942335158429411506345608675705069638310992073794590294498133527429534780256512883938439990139365615137793568483121557020444773935864742888141466365290727739500214914147417663423201693450981316592103871303129921291878703260513314326254338032977045938910702979425325119079684665413579138924308523392816300225995751493102175060827670960001842670059783395435237534889838398757867194266291310418342637969266759912548730479966852709235504153561221727599843008745132700772935955511303825794349881060083899114177323448042972052679214493982875334191057842280457795314758131308252099398384256586226486379121134122103494783852208569709824177642722232842424507156642099943949808107141209949799150122894065675871816651654143945180173202018934480370009876632315614884852128882418042138911056308560312996521148710040733364441805240070691257698518176709893618336118787015257772429667958177755901234165373207805569855360387619860704079840155153272547628889351889494486681255782345318330902617668804320366553660740506230064451293069903289021076045898974247156240042632016565174564607431881974275715139863824697436763789682913843982448234843481774982283809145907364411360694604143841874572163862044696296235924884712244658687320896682323693457047151321301544595128207623440443807183429133377495657328891301182831692621992144259009956450136229780548948388052529682766734281172256608154716715238759596184235397018401281259095892742377336963660713292277661571649693108039227224359672940543661981344094145788336122602684620294707115095572014757098952869929883159601599431178832109786834437500164790497322351337040721279518397893876526931954590459879172346100118856110709695978337825394037591035872937377355665694161159159305223502533906483107522221731077483844920175810865439952829692992382104107205592242071625202577383475487548138860274675630769211228143238176837679492508460821073133007379355913755712503145418093016966111841252144463541911925338085442256049227087745712990777900801974949968107051868005510594251484988232450796020720389088648350089797727505258370423942288186790740794734599246383292643154978944340038603613846195126133612667630228309862365753392659703911988227234491653448273794311847943866406382315004349879754089548108654347816919218153680994573293383198007171262046812694651984430782332708599570103924219274519859341506264033790136250706625638806414000778759935472255440430735338845683206445813860635748922155619988331236413434398659555691361966582950439090973356921528034707465553170694959330825358599249053975531452716498364240340805952533390672417811780559016629151219873256286417153675387595535184512245015003024018083758111160840023124763283993784649628301087800844836122680034938141814252888167844263556922037929481615851865901017580368628481060085580166045171220521870006648341284311515732169930269602140866235494876254408311009651737768833597490808490921037656595792052022987574419090131419483541896191343265410010165142015937539592698869085461083778093105493173694224448474468949080481580548004369599117641418149354520610411051109627455577057055316245202374796861472536438123690777148525840472810235874286303878809770228416135298572640815542396600808251420869739449496961735527433689556405668842957508695679112111327758979917662220244040352929623770641909621023522831085218495217312136207533773206977414523354401276890262032773750338012568597824770024449008486952573228061260834919881462063116006704725693823238823803425922609948903294225563020006001880320560801172577210971706716681584093609909182679528328506925711048167889285108477205557112887146797649090303893684992430687724916699278012499299100495001528788648788828005652886635976153176501740458446461336327302530921014070622714138535291162866002296367191910072524394317608210800800304581684063151749898269118966601298548411966023230150846740841809081128086948709377805590387168828172467363866595074812281623159828298255751416568436424650744520626438390634772169919091653650492852338536583041197811368252265313483589946110976919593453152864634766875700746829715960255376394655034507208231998600945904685060703941985980078497729342429886080537757512750227310361368128081499577894893687648821862187194591337849307164372468379859125303886442152369354945650051769831758462255005185117564064790959591549839573896592872513198239588162542249048673588964459320931186784014570494741156081331425978520633095304477849194575616599948331550326097493203643596412882375668019613882505738217222094123412192328763410861446158314316301174669009181522779913200061676951569331464479664007773314452493101289029343583292504366078157503293877705103160200432442172060981233666227749798172482730501449999036639012472954501724645390079594640520430398841779277759480009218851411894376628306670743203532003409362273958142158793823735792711211299776811962608223414751487544667458370149370192455053380401005629497017835255669071975265914918952626762943246746504687280981211469403662494307239152992614915221131954636436604685831537344217289418222996880050009365915445897511013083229375798845876279192068205208447473714455857794372729954251497261329503544429606398603406917924973777637721104475070525208302819221894898721924640830464668556714824950833557483381346257752665923445964386141229120287140199875332273454878710832421422722722020144617235238955397791745329128124555061963139980878975725616149698148432906696694920898847629062748243709608269795097132249202453448730418195943196615253399892254310786450302379317541636646069811651825940889475760991909092697910456476794916163601843807499791815757102992161792441759473816382988496459930976934994049000909235350095797712382256450847101751053152793450290878684310639565071626823421564538797335161090125483396481164572866879272499743679590111006668608976587539925042380791691751781175853245380323139511403741347193791743828333974922027212990864325023665059435327578234913376845327253097070648877266283402236637163686468790174216528158846422283395135401056628827678405269273213906201009197231934448527229343921404611704203028104136156101766576656584475025059897394961520882987006817612183249521806482918635435094175387921956825586687384687886644763718372077271058838689922952972244302819158888055746411616133178768183650572609883038335007598117878671168191229137581968097700586248563069689221511179936394093337679328501107419837201842962141640924033329342430015120490378651113387379824482091635464001623720894381083147464367748106124731751938488260293652405124267565405076568730732625759880606936330856557340584440930848891226414223388329907786745537956074408171292574116867980575751116135200274007117366894748766497080146548001249547375238148578560967991371922129494204941004807313805362021814023214434804461371378911065810834956804512744949921570158717887580060957958493448398304098775544282880925589678856681589258330371889404739486839008285118578561815044522612494013762281500199903980159092667482314849601874164493416182450975732738863143043510473834717634756768764863368793504051665152864561403734943981169625512207359060072751105560755307689984744026385150797448913640209615037142303743790444507385434912102324828396132712237063854742993950609723572361874514612967167145131937321321600050207586827184075232315101895953251801603919939656137704500519190571701981636328243496317059284773719987682048158589781541029206618672631587399286957112124012901693006611512824159985450392521776827486747758985159415920249801979256069681604251472927175555849690754144540764007627601456795960816020445781005329976076875977805846306283702240043875618621932009779106016385819986723709348815508666298213359420829226853848293223784283451200130532804296737218966960694405899828067030351008045026024373065974513384857680453685286858849679776291251531916326742643351736596451588059196290422553018609802514982023164872839178265437549445808427953088303280355131068699184601461168245147403598371328587550578889215993083085100919488955568018535001537965761369418884751499349140065914713116112211690690819946455166104446115253119046440200908829092197753856436369540024649184743012628495076159296266244214756866434724724271144772224369954604565166423808196249264692699645136627185295069749587888791488625372400099567377393442593158916396446566785701138475780835111191500299968408682394627139817596498580968474863771431386148548029117573410748544931433642904504598995196393972750404983524663403488688960669593567355443023108854918328151875296756146345383532788299263164308175896469130885646300548558214256291084032724569972736260255782798173859981807762667790098469616824167548017428256737289013018760734313081219914653278240274781539388876228452899520623082113446717942276464143457549558444788345886952302034158493749465527458403957261063463860942607095359191735111682685072565087436812895627571794897707719286522210103931694743442848180303722062951314079606903591387425769079292492527447725112160493847851825351025568886460392631332164927775184939803236396419288018251088157434176903674083642425250147292869543404931296242621498998927329802810384684009872752794830110853356737759867376061344439217665246283035656851612564812586992012706793433997217289255373277690683920407742632301231354604394707688429830065715143524859029355660301233793182418263575739818627781655064316325594555022298583922666945399635936153992779345656312183645539980189865049906336689441325092218821201610259211572808292157594501695260993767569279308427049011427059191976065821813171760046206575628787413446487906021974378642794658963721475241709195806901714681701528863817257067089003424147516281456827357400208414395655151334464491604661735453138193449690078417294108053084323788120239773384955811269052205411774092307836781013364237893087361425134363470713933302661577479208415328978842640853710398448559700909073957303717706703896782094118367241746841333734810092701424830243835935116689625406008883076205261689106445510006854996465488255962198175425369332818442133477736200104538383525932228823134051799524118042140798026405765181734890812905210804148585157267618455051415138941348960033662133422165265534037560351114516414234640531568446427490787389736412677376159873887180152881925624445890238190085298750157328168549054580027324349603128853364338691345621715314103471442562246834532606379527323302594909583438823346448084739491118205868568425443837205886524103194846462766702237023675620350814343469079262784175547595281719544986752309360872655089012991077759506153208486427556527661855042539487317658089878040018452240542646488539512778873485644921641018185195616526465458926632460120348029294760026674337424486287516333862268788108300235446804854028970214901912204280124461242827033674330757718784530832230951889446327464943345510203013631508640232166494015096520082741497449309692061540759808129960658267975559077440750506189553340332055016119503256892899530632703894419620478452545502588347859089085622534839713457270302697542467321332477902274975640888879162074025885252043026654099149052624302236135516204913953672973801118292580357780989608012899750166367459388564922984425245333110462541018594469314779455243928751551749177956406207153926598823652923690870668152101501416258243142819689504929165709461282568552248879252898796536541698074839551841945106427764842460130807596006305073180990563402193662252406313718482512585503817204784671493107360095152250668397032781594635131527270273415307361183927177454699726020374218035894456316150853896536262695168514078171292382859845862062909455461995158751706751918408317636904487499893470282356588072910072094540139621738242542612963090814334462574181094875615875560968130368604590263857375931368949953723623242012246642381890163101176531142973192784503471143691824038939381246087635735386355806464975492831635666647408561708585548361120385513225005841894461128186855774636367207897725247264585651950160249400360287427878107985272233289581471130139923869960224198773062886042285464596561075261172350726389231354834966153888171863074772515340689460263822959026645216548116543155453028729646422968286969237760316189450064217070914404038058657620827317967101094446894704853537217394980928833091777550463735854144360357797434702919716808155563831839082751355387127196405000132128372162030979026955480750764773155855050153304417527207158803057342642857232751206490811738882266254746691083311270500269924085809495867280135551091024591676690525162191533636035920774513079891841321761989393684654960796029131690796128180352457761205983093706506534489576130045546592911911337437683266500365439825906533377904251160995545501448272521206561953527711694225037284683030652744860072199923163719296811037443487876833879798204556517979576776488147107609582679130810600541655374136002648361655031909173022611616708198579983601314289327804454503509100529640558165040626926592150522304631638814424713941417681744567263814323681665954907281428364333395709295100032757374559580682673444532373207531587291080277525452819365880155873980867267096738028649876010575039630391846971149238639788926351785145939855889760928523566980663682150893824285174676960894526738898759053092920411304355346829611676593890256618357139137563007557919088703470559375514474601238756165990481352414652713129491047265357514729466039454520359617216423352062052005155031004577136637546423385178406285199688364377452407590377770053551197745022101434412815637121226139214740113311479834575640599431232750344645155537083437845685354163964062012816516860450732695748715797352518197564951274002098389684338576955357901154196927566029792554405600087487160357480683330952993214943449810553190139611879227250090938960772274554236691322208938178776500020623610586601997473791956812604366446991378496490817175944683782510553619349861042115932108834452017441041495175132161296268399497340277302034873423063731827997564096656648116185133827305854688672382892559887911428801385868719868167847907818457314003971441362717764827830309998394162432992937117683012499122467490950561407956594487377626894915923588060902854636672198173620004783811688540507124244986823251100595972409450538737557102046730940860464080426126871017708571365869481328636853292650285114455148255057816320573508728205079206264075196900640380056722226105737944281149856927127597974651716641196097523067006368587229536453470898876151756923171019663590678392797792481388142059455192595663962536408085709553127680383636580512066740519789956627865822138673159060475042889167479540433800887670783290518051199140761530069637168900517079743639799249260350488916264535868583056864710720231993987660523622287133957451419285386154721485457684269024929799227705717950996901162468129852955114702460045410150718285069716654123422304165281265698873125118630277308269563987863195155580638935968805945578692446652195091416934345660113405011759239475772417431135231296402025835093204358873785097332869280146114428766296259154938674560442173142637434150752631131493166873499989287034229159014921028271542187119171567380376333056259904162278438110581042196757320459306400767363060874189443438708406187901738490390139078445938223118513006596145019321721595580367055011475996133079506726765997568340140611692446956350448259338846473156115972399989299014791056773384067880290617316748758252004130189921026329320787607744665098814537096083919255009069102839700726081444452051057916686380046437171348825959758180522725615563150157825124837151543371234298168562437351538396854496464511900665035155699475681834601167142317166462348147154085964582962208038622546618949258384791889089527880094479773684326210798531025697230122862699263068733490228980229488799973592220939815938107750064421547457777959748764203545533252395559103842076619763326159609220284115373254624733889520798407861051780534149139067527360599741407100810234803555004653894716819660306802645605920128278635396277119568692040447489283609044288291631707146690344266244346202032299794643894017132147446492425511473203130344801965378983799121386120471852581061735318642095878773141894033657861296095569782097036669054886646651522948637814662543952053384434687271452825271837425705319866364724390763328802751510605232447571525747444790150248663820507640979842977179986317006363693969767138320145143103996179811647383898092593179296392085421334433969855591730972032262211093282297641857063532466400162106581135513517269158630545525375791228184256096422494555511626824482972229120217834538328256422736378643570113312530248375333568953702981184255018630299294557811576108385008813444301080145388609208922780431038041201090975725190740333106875881228342020337551420077503384453427157449066863334632113873085597336276495215977638069916471328950603847907147801623770721662651810959182617349477132845246033403770059197420642170050112481700958537004437429958329796542465513001988603401148163236961421883672441959875706600683479681235950153037555035819114752282513889581534231505094987582321464621360599918658555869383553833713682611795513380076049064042057239530176389184122781967142008518747053200584553209020543085204132413723363184104098227194006779968199508521567447331375741272610563817815105798760046271374832933624102980846057508460410276156687939599210522645536146579834807861593658213703809971485904131027563349908028126694645534467348246838455283959980067260448728159704687447032433983721762116883373823756907923857122632519259053013504896964597807637839556477284197489930857111110884465173459004226370447212136325249124850758064836211403525404389570385406951443133279118873158273101232788598971313306248504273900719407784155208541007849092530184368829557280909696217616785687432259032438030154711504402140102151595459476933187423066886549336633643722151515282051753334814546032530917186001589216647531004794423625264339552995452116679356551641399456250409251558070345677352966379356091749903430761975718294239936511699558049011703090876663771007167754731463877129627700983190676165323966064811869390422313545307974437437451272406603130402071657436072156438926152290027929727367927324953016274342014563323506030137090289370885260006683834190453795670988253303684277908122766137419933617244110388580402776213795221382524875712025037992029382421219693359279686684427458356009566016163624707845817506340377178551051656401652005789059157345849384762405481707702629919665107208885409164036535033967671129967167222631454127866836712736783821244939048981778498958552733447703631625634246835910379460241441765068907656622981462626689400965809217159286119285735844049278241331836582732430152489504238303212331899947620492143947916376966498895757920339117014661359807517622356169591052469387665307140347175224360900006530714744828793640711578829410660760157342061899405224900529658907790399149055850946160037954540896767427240066605958213238916749984593614917810760861507579223575158543840577063662813196917529423916483798540122934960708380846440993793536540575154668483695097611983986686694127740114669306650338303582377855325712821707637431066620784905135538816974448828942014959858713886096160712340290271246420390573628515062593479311124677225229418055923567588918391098108630621107783156647796757888564728731108386805568337538609479998933206239525229835237315986720123156687282401234096155718661561829000845909740715954022217634724899481997962643539045866286717705389635031568383062126460817812991702303417307645699087360506999329176521072607353163832104760744973346264471046282683710655896588162584418089945932877199060474708857680785671647995247788662176207959716913953110039932272678814434890150113963732780565014821147829102350721091311909093140608023662863710943431295362879718947698982769626189413195552839320192770670751393844195567552342559570597793856406811038107023657390464935163955166796173299914279267155436847929973431340520605759314632679727990751353153957469788702847230675945826730292210256470755088308276069376919785582958670264273867487661068484563900543995606757405693841726278313615576804491256854639427410269028259363685171741159255030127859792591384851389126722677249087443001147499062199294354310531994171701887179195296088976153697594447002816760414606843364819451240429920086560101419670269660507800456499709323718416417268332548644797647973363126134013270421091723920176424432617838294097703453631911940154886256658881183039820364414832965038726829603504999550282798785640971013598173469511390612216207437464645071822674975262322009152277732558654940956027300539315935055826339203321557003811280573797020348679178117471996462930833059250511943337780239451086368843618660263069292871082726919542369734150745253053990355896797184477712742991219768754263792482982574127576093705894725087613532066046187950434533580700105266964802611516486791422346153248553319251289413496490445313340125341733542106435635486652457901955166143047736599783257801262810261565878417881483188246928955451654261299778520717704543118571160263464693121287915450915293280065825321152531941470558150152792159465408443319886017836628909362728202521831636647112371519614534995903310239062573169788215778643229289841612556918720943439769376638138281599598945607900383295965742254800451644445584346564449504645823132934882295857970157573936580563976789356482653699927906432547353850501518820599216350475441658220761892331285666618164387851494561569308771629465774264732374618535423765174350900354649760691048302458731783160516725458290073551117779261864627689668939203698252559184694281168806793505611556010214385786569279056597800215368878258847744117825053312220200558772851588429715857911850387249027192460702848103816093037417937922049031754792021130766540989137231318352182386077153659666196338724217734133952195748845272473840542967190396573474578095151923450808724282983348028801961620875356407928048324543658020404329019657131235619415193058447869031419135761323345344672478583347707686811787093594481873493355419588813707060472565669654607677208323345477359358889827608232731082858533635559813294838917727672890617224853182733133724193307702655783002884318687065301439239848369867688576012805721071378526221164907637394866807159994809663596433070998980331221675011254842600744707753849090194620397846215307162468009666056251460829860047107150206831738756782658656527807247847817384185790361864082106987212762221615140533961450585077210725713233531739274439939499419879544019963382645026095626804182708292190983736480268411749826572300140799082556614996714589225408196551593410580170548661870592112709614350547307631354111325494609691612481768962099409299814082258596512294238276454898916459336412592665040437002486351042209441663514468095333751465167630103445576229814871279761327997864791789496374728744268810961008450908915582051425419265312828374177960656767314758405355995627066066561153344298470876717475836836658062112699812126372575200154057009685036137817476675543108816573402024737974811281250457863092472117011587420593034846559748698635407412879791870158250916374387833345285811031870407994669018766538028493574941775890710033929153604441429808890974889507699439015379850784987649526277750518043171408334612149219790286459431191511705134754078698978881464828144188421153128415290224513318368748575283947869409638813439276057706530182700990866830305827270641853576674869128394009324031741934579019042723255452392909640531089415620107163675593094130951529966313205553054500886314494905012099845869894430422008498083453080662399638518481173818498537589821443329392706262786874057470983660427266482132169667984196338004737596195973668973157069640891337635245564771392961306286461917693798889878139343401925264826342726442105401809597286941239268188714547969108160811588072795682332954077336790759593347794883135424283731913303229480838284869016331533115458125747720175969687882483502412465549290889472510845265150911548312328773869878976444030824702556165820958132420464375027863470404862059546587725739601043478444616151538806532172485348791009617934497044867694807798141052006307722221336752532668071757583895585081562009276350381957603948309295992660209542344497921652609770884417837607783677774051543089765609555922889585904073376996714782959956830391455316844876244511272617605649186767158004190643406090433831887986148797974987338771376976035869464829499527530954491330526711398037615696733161746921651420640409663000837032704146331862952301521759659316565684393762612134615739625432762523222862331858748561362050635946241307409796484987556049169176614544905620631748256356660865314493734922566617449426728318967723169522726510868113996790454844690537042329571960862752720693074477687590161851371173200703624633722426914437313470884651655724975134896061384235673647288473964106946401951380602498242970944742548165523366282787887443423029926820187666942935562202487790662326874011914636518342317021558455691119153711313080191686292712006248571652852246527116793163293313017240819159066760268826010592933450433125211638118258688852590618593130804273634728413596073251238350935808037555023518527962200964648632402512585263846721307389539199238951484419051347658710469084317727176224823135998339006363891392397149031053854152739033314406215762135404748136192533319593550457664958150477568852547001725477632973982951255095874122491174352813036261597308209752947066261007324161407862319642068970037292986483529996700126896040886745421855297023335718398626256557809499058205874230299816138323793969401621689174728685006109015905100825157014961845119189153692447449975374485363004738187943932762617446707195197496754223629493110250882470754003270235733433025278036635298971192915177708207706927416775617239910761279623949728862495548380003614466438668533344661899359955843047345403746366221455271314506330216609796136392932703419789641549775363717323136876185111646309231138083012654510262227616159782959607231953298303454964509326966576330787017202436370976001398281844381840754032787563424810285327639408932415760164568344470894698256082481514221474004702489894245988714080851731078344568260557926480666274827181150773844876510367784628861644627071586576362844277543884849334634136123957209097165891664249052204103803191281443079813731916651188689887333499792082177383330057024940972963432037292861551622504567159178200991108493855058775194323001332478390266175589430956248290093772447013163473542575894788911668006477377367778990056723221320114586139937430375021701044107358137579515656537259454671802140256548658086832140407513476703476868041829582346854065305251245120042183826075795930902743304823392417627448278268157503921422501246016063532436416320183198565205853538747847192652253954625964548032703310733685529133814419858021130071976561776749537889886449568943426689247098494310157046758083026510322120995327191455212553137685679618317898696506649811500877040448263971448782190919945639227705553515384671463486991442741747214253416489771759121957288915700891516705985474128379875439667826957737418678556335260109620467552515518125004103747705092119401899618387083328014088627490534755357013768618759146365802910559733773386417790189089173778154594651525132878364614773498199094870770400273242134915628226515921186866422095224969956424143865604615884663789157533806097527053402927070468539090504254149804001638146115672429547587568123753654392310589373850962042304662881939689421003136591322643321496479191563737760733772260077675792227704580962649864966840490486281626361806157305480558216973876449481477083957074559981832720635430049469577759788135192812325599629465817888905169913987596039094345201933116589548664567339377101537914088569102014467836238279638843791912110353282963527954552493781321246718093064128160490985064848299193139848010023050357274156438235805650772512380002180115985950094219400458383207141674929237668022852776620454751610963671186597840966733985528552978362924195291854334989447918728565833036485326303101712516226412141919327824261160594823893843632759199574269875177296806725958597241761095172178773529454605198601995736460180502766890590573112315451147382806835114645756055916370134371709609296381498732096688633319153916550461682328901798710443693887419616469156584424328341699121595740379373758337592356390593544963441383246349970291569043569636521475429794354801221116061962236761148023435490948166323621256607598063463289065897847615714897178149922743000220007089209472299001419119841789194552807471411503050003682937664775946140965923216898363550801051574566706831774144931382938127989831275853152725821284496566396973140962142502536179409525016276437067383244921539839971768858496756225862001764083164634328423294324439870470329559556828188142351944249375168878593308946168990806865306061780921896019794703489989502985545476882107271905319723614433444203368345243773241277369747964557016128019586363556404397251726689443086504176613539756323417343569950453276083283754650327755143104477719287576272978170022403701222829953071157845719893201480220943104861325475469240391132366016608925594280333009517350079299567030570135934599755981385977154358825551859234598788486987091166667506926265794479177675090629367038468409843223084876132840040968625246715926198648228218762098216166428917133283340856388316137299943146210260790963764147206043700978748576560035990143582075338858716426314519868412738191554424500574783510848098816277372498677318236307380650468275904771315157551089399475930671557719902858101761838589775265835254533995298371079178234246191091040552842869925698864279052561718497981141584110325669826492837563524915043857260596816804284159317591105639270682152896952295310149758542628693429664243403647224183926061402065205409626570228967085661210800748263073497549665052965971857687451728210914099727810242667317920612358132873053566394775266563707802165454508774572077059672551299658368408047005960832188778342738877176355576661359492745926480638612011856064795259275924806638952241625587695732837467499994928390030202050721729271477498279263844615806842269286134040346383816712586581216595044600381526617017005524581162687804988104893573655168570457832717899595096322785803535803045516271315635268328968549587750319657257583493443790829625495746174963479151848186965290088053978923600179954910453665967598540382412995938513539140027508527118519344348447422209843333446434683391796590726020870926237130510032841321781256197470220535278005446431863247808277637956855930151118699333000761927138765135755663564259154514995630523160867322276549413353757663268842822390659018484921651661924136194241280226832325729004693768013092310275245241424781418404425189272135858509020929524094415136984591126641344417100610777212685754047160524199116088912946434072901229735739888765880729613952980393303435995722706520916617901264307737896789709929491833509473663657312234716965847161688220603155109223880359295158916831942294049719645365520045375137279734730895088649492830932358136113643631562177930987172559397652341915003218659604602121674040073314512741815446602537787442388286794193031318051613419352899960758903255468169228236899227690531538147027463728777333106994800718608583460358225604070892630246094545036960260974596400317914569236279204563490965004098565366300075745888602084720327643158574777254675614968891761570488921376936398450118525007183424407541938826516501942241886975390536345882094255351849703212269789018944378985286618287576032421250897252263730173163261678660324236301587704500575334669190743758347297057115899961639214565779916420660482858272313436318657573486189330264313133130344857701730375114532056047124190982806648149898657389809326110362518645704862821385104359345935494558790612585744429010911237952269256999722942153341347645175963828959243275225753451518410871601816384552616944117369739323120864904178881308761658979523232014508936591088957091471843725821736696305933371736653731749162003928265879292067652223386582952583684148071499649361122900873900760755798558424261459866236624480220362448085399168171001784252012127281318794786447150173015370453693798787093598683771478915503135080061637516648200549498223866151909207900571830362899870680813727548006809392949641875841347989739633039891528925812561182301572335229834688146019408174630872345583668965674615518005510777358122767260238904966617803653815782090494424099906380856284016433152342717718641710054266818366389455532754835294437123003840422426187237018010734977642251382945233981634470411571242652331870868077927781671193336367017396554496353623858841078377236816828534768517097762423242035906220909017442376886723733923626442084062287077778876005196859084656749857222244454380580710513295866829849546102160564632447457124410769066358761966103173496376606747802582322985558086659999553304922715979392207922442721360677166172254031920832308976253316387787295835188041381444706377164447775200624000955062063055147654032504825903876118555207542723973814972040638281870927998932755406497136839764410373615390536362916254243545256394525956233292472935519018992520220967024330260605591328944855115249904033129810721137096634716045718384339954632463841323756708860551805461149929264353673176703195086099157815295941879384646067753290932814163081784842188834579462025130027136727853480468233147960151236052733366732141006812392192798278095749821912369682335684951137752380378412151458666530502730961594874164603881125201676288766462895246244599042582685835953822546526437449509478452445665601882954731123512306384512420347770462507531057701492227348087270555699777147017857499659768306358244372806205813787218253429951522718730060348302059692563004146195628370821169473154057288674296475853385573807693290705923831312199537417880639230010517535340824295972320426709113330937152947779587924935515516639596254835207866315438981406243383889511847450286455396858130357708959234449979280062211412894550643437498572527526009498447895498060475661934011572729267730980906255776635754313352827453996165395655183459289771140991149742880954284197955428858195924168193817352713053680016134012591838386188644811375059822421682937271567999182099218640868515994118754824865115413985638509517936582335975901878707541688390038421676067755200703439516779323813791672468488578681601238041140454529182199063686696214871469535608210327809629597991772480466996581005049616125597197800032604087704321526028856405150419993788052001811515220571924290408933669424025880687107291530912800628988436518628945950425345741348751186744611707075583055296002683050880842557287599479370457961712463450281510230224388517096373928553509077064759191903032315643009737010722318136611454115696250271554477361928935689873458737528436561508543019806889818404570718720744854964464132975921901709909963695105616583674740393107739026617070856479547361225307680584344823590675288303171332177369155764785230293906470526744928068594584781858480827925819501651778866915657877825705817650713033775503501469641697403882447206273029513022378070301230026936933900571002905205626823355173524122028493032032712187414671034756732163617489138335996339082240645915033678490770164239611026835489230037371837595531541741441679108841675289103610617514244891082623410360879119132013466948954188778249166142050351573029016860908697943799952683548398790957128078919334376473529636433026274520102111164361640485877528515038605791480384332774543647368067162013809289272843128157005290260418835004411804787124688973441538993231739156579340200745840205645955418941887540943707986440031821108058087900497945692572113517517734720418394312298213775971592145533751637581244178332070752379051103840537963759780311744427083222591195004434305226891334650717266428291491900982578728356204981303436283650795832141082031941400653695476065121182030171254612398019283369921774517806394365059992398948343695869848118289271135889985389887187513390048051981918408695193810135277326647327077791824581611315403852149764382520183419897254803786204919289179933459697422290792343799872786423577702260432430859772219993980512055267295567266953125360601965518638335708302976672012914718890309584782727632183384137597129102088431159443809395182622133952346695427440440814948875164864941767632015366600355560020457088216597602678904251125242674879762950529049665424374044095247469443363739824662678441373714592120297300880583210178578604795170620156813158747423376788731502711317390424004672129807222827881430605643257826148448568587738154870258052470864273751915761129996256862281987467398644948578068858445518041788273280428148355002338477846011879977859899500892503065611080936228427557218978921239880757861553282295209862179419130008186757862770503057881612992312674081949224404166549400515243896891548430949414978343336724554720272378402346792813541291283043462104513286335900735844705955988783692906382037888415102594802213605905693664165134330707197620313497550308985786376991970393172668932695101667423059233548320185088724305443339890311744874395333514843146942936259196253812914014153922264502068877571833620435761137665200194176140195155633838446881705093602464945890982883003057575675686976046478432930296466880709489774855522199690853768513311049871364161962272829430030183933950429580423616546817243065474776289696855420069827529225389524911180003663149197925071762208263420721905703199786124878578068992262541840899041300806916923451747807731598270840361265786457934278463227434191301328709134214739546073228282905432173787615661594838999162549642741481418519215118833013637888791370746256770719933956340447046298409204957563641185919343280681268794717468781396374352699395139063354520552188878940210754078404335084726325674291217251365858143882204622235102920276264468061550113558993105802437705421278725364366810061445224249594959361905242741332912174508677338744558933212411757361533129466648995611349371774089941583119015845915739334545546122475489251881106100873566639969920085077857919683289908602187056488772004661655898880890852508118253561025689208845191535416122062691836503695737624200401173344411774670844270311610494729030603479473609736956015205586274183881314799128725296606911971363796742673185518267858715618494746866833199061853880798688673172765310341160458528847796836208465171952688581653240381889596349663907436901996559764928610948341823315417482266097034368819346251016379624815744753658308602910640586397716137976483858938840385619270781728405327693285320105384467403270687040671503210549290737022182886250139594359708989094651136320463072704757790513447460184182545553266285089123952449079774545796333226459061623494191921463079139023243585460107405631674422663941760852883863330831882231331083179503510650727548283990987621143232025890206840787130374297562426705016540589367338473653171685003790167431132732137741039329747023131416189279352204216914301020497261921564654958026607412419777188107499583087485453366462914991573784818425926950356566868865523283624133073102071751150030046988264044400536489738073479032872241692949827218092745484549650770942601485952310503537561732553069826107477531096219606503507144905507968030862746376117872301955405606327360219011079329707032598783961832334451902872366537047487883562242001094310072375034726551580535455889996341402943811506196427704856093281524443311205175653995967636824292562782633221556755491379502113388491796966145440749769041131445190386948374368769999432633875838835024161275406276103747873123293169625537188967472828873448519788967367109014059360029613761810592548230299837125431583005314840993591058618923610908912682383068510824200807133899094980951684969567188592103540793915949405733854114274909623626100665497429208312451695906896196497908832649726319400412216644930484286416414446464761039135817425705401200870264800462996446313686071642699237609696469365758080438428756305385738248059675652097898377274972733465735175333455829138480498117754756700156655888018004906326969874980018808396384891789301248951383958140809922904512872076499240647930467793052766813756944041874334709466692132526517875964997836984071233043552346646679237751963676124413110143546672321896155969382952551378379407279509932076244917499394969712056606027728443699431353931660279936696420049143952671072221228265337959763763285099322560897392941681329511081665562970761818626767568388656280400379500013764392484116807006899286646356337877161567396115063640256171321056926683832098984298227655260059535504571902307117706683354110304698172150859277536856665024403447951502997840683427523810576053926873950029702521618098535480885335465809513251940217614204730212744995640097416200929698713568949300425052926184842909713194791237945516410564831936871650360369793000279173805367735117944320894470138737831474686799433602037316653195506004343702685076615636304486585010962854814644866875965510094417310311354220895837660541232929968723628540313148228185036872281534597578548623146906943060531039923530889429704940904202865430684072440881526909409545773809516609659434095395521397821061965009552946201321108233071939538879060544677310334835908951343849208417907888405648096338842555969442770404260689752656789589073301793092408617898421418400615285074585514619627166265670789948983062568208056962566484183557353293198546123763228619186059295719591316196762869221629166802025819426312779639997911690996141621596631247153421021083121620723635851036837489613256900665860149375086515188875924331347096295748486816232118059735279239179398384017367281174543857009302124155248332431979293951443222017018796913997736674984057974664201838378319743171015814590642936557717469919633823108486591345378445368517316434064957911626324527678765495469876361581737213992640915842673100387040748868192571489116824413464398814043499256185752491558718595663270303560889562993811661927096269983052951669534808477782184722922548033830794249063370022715177337611651518781636367659451582177717095976921860325474852806211339515419225093228936527281722016192916324994815363457965086557717531771014328363340525621922872602431101872437319288399384098717579058746993981315415865953577110941639575066990373853404931332538994047408557227903279715538893178054725454246563417232091510324517122756874556694225535253973245175718670558028122635149544609723636553023313050004904265055826094263586315972513642534704261436000040622381788125046178961513216660936792666537119385921834547694323524950530879842547721544180397970587743037328592254454135962531283775508346311093059473878400325400219169974625492172596308476893067076204746832180066160986785794197682862552111269930745079085726388509010641493926041094731146527282782962492055390765331269251476372856142098411130935669629329876830956770451378206028157034135177184807658899003390478399189747133749968824713650788962245146906689832547698682180768461458340173615172776172392431272372577018658990279518861622269392628773727565473831401137325895142598224801496274358882300948644189434439171278995639958708580628995853134927549088354175309889076674845270005590872204128463075227873425946843991867839455451334521770219988516985782632875666427421808816439421754241754311905227992566562411424778568169818785402812531058803256673259044384864468841233877814772241030786981800564636252130376273850939341924751364739132440035035538642135413573526073372356419884412979251893135064116406188460519384438965711190232509805088537752945956631750198804299459021210817550659251606870659638639266456690665119422028784383064557068040774845155310067479817597134094474842600623239370059325152537003856803870930344862888539827997715562507815102180917657879771565892758604498513047810013331120657706133476383754063188617903428849775299261428498951767274738980357825015163516887304345495143875194559944408296204458999109704750364785847138090429759082025070692163555528423310879862873955584733031259164771673951108753892857130383710917183588859363401140871181126819130571954826588201218089187466355954854394398598176823603601942421355863477057889066133122965117738273563256165125560421446287615269498986143806686533669765391001704078061705803265073306939864327027703817058326757711912504416585627233236649782418993744558229583012254578088286806165465333942424683372664869413688256178095520535352700257855170624379656423951289801905747031118906832591499756347754402390632268888867615465534923298379995832767306815303818010611002051835968594892949713001683617337947322661249538934843761147120272286310471080884898367502214344123864847747257448946401180714404060556656352680478184194450830153906927539849627421021177637591235674927107160193675669295087137293867843473556236048923999324240542761187469280750876957375725286530990809225485310258723844353428995392964583238418535973067532722651093499634343075129532413740427538674715183013206170743217778510173370975654812444330955587329986640904760249191533819545882440897318940873929434312683780568584190181804161341957794216420909690016548368219005328582840142142223526683224297208101043338613883556660851238876595030710992032639150726155352867860827273760113353545864428196020439535401371354565485268103828413723651889288336054215960951170524885600861274942982718998336502278983071563947926382704838135231848031699011709101201047625708484338339917372617258248621591196089319305324475726107574437194660091899517200823304895906265949847142200382251793285410047491418236645100456402581988131978114727430958850225039237135345910464575241006381165714040231773326873774371962191692996694321450090247220915846726729134952865285838113248929809911894590545923607577802146770253225930989840266722814902853254317391558442118229782685618352413784440484101027793258394467650082453705644596082239164028694372454216690223518193382935683501752891955171843935997812177462224872292064372844293643032805348368505771720337038979981668389784176001755252872798953000188244266099004695257535654099798466449122913216285845426994664532202348967938923393170607951016816309850139339438242691279361142954904626496190384022258103001893230989676637566941984844668974460171889569185557626787309371613626424019730719333315211347792393056496714299731374121408211821441436744553946978010207058866880413899156528236556487746005470427914075547703188879523403196156194316872014522565735114345760309204908764108019067106059168868881298575309727629427897622698682838543901762753296001889221441879608942062117390646579576386911631565540224155947713521294831947203514555941281664585673836954876539187450678532305989894457048073094126405782987674659368933361649500957691649546715150023096292901055945305699599365062487873591824285273608460165115221910259851849399581990016472539651741264769404551152652428254885788610214175317804314473606052450090586858822313432081670618857765665564008649778577026834655127230489185054231898627180536795471616285449635426146928911187513831513161075814932893649208370041442478151416910448885366569153115177414210948351337430247779240130935218440640763422365624847197034051959986561278306208168533430095569165763484086604595036549355608937862945403511340485994624143714385766081317878267450199980625481367146139478674129965776905517636138085762075459661690252196797614545128664013153354000827065992968523789163218704597144399414392327126748979990491439854917782203786550641559486240888212573745644814221096423772073020318073192943635942412784168248437486446304616789928692750835016221155962636891836230727101441040170843283823253158355106427831684993565264696306361825359128215563186831918331153869299867373322286646456474500086974568742219825800475671890734841695732237832042174112615113634641200430471650815375000413224779980422343543652236333355879727353694949774356237497818938043155233579875143672455647273956938865189428641677954174789660545754128553774145362451551280780247184389816004882234484483376135708834663861562133310691446997789769443209779858632674233751514147085181227217149539448229426584756448287180637171958617466027716898301771734343697034655948932625825950825530350250000410363412434380853957513424448129943959723643831236637087459618152580113808833744144698955656066577378115271702670645828160973436462324334525240058966751197496872215526359664432004413658170488407674221986352126621066867373500886928053465054145469849882413993536807950218588834104990140006514056737936884088443092180202532439163627719883138040513452375578911892234278491585571952168787310938083583969643354576762783952049016904302590220969611431390552657730688488541361748388589149106051094297778838358124032115099138129565557671232594610957791746146916268960633538880366043405610351507605459578337708484269054735394442091699050366875494472760728122468169593231264904337953336527033264134179031297357261703477266194246027423214426341410255724491767911530325336311634845397390551219182307964578983891585620222086409920945286670327496764871432699339182319100378435929256305622100218137627722776756851541144905124534831202413457096967328975139977857361194195155189227312617015202657868107284011204291470951094009077864314897349239486603358727836068635340205544716200929101980727270030489522475699706384448695350156312163861230350154225683449225072589896088657607422471797398541990183575843390861515190496423823023447520898535929891618352920527562236023300325126225494606212772668069773707398401205933802711852285501030956072002958852904164222738851347977111581914677695812726409011576302725650692110852642824144342724160574822614326863582729261831968581682652322743866601501657897736245356732856204712185143943033034025168432625885581407370086069715801406932003808460885607695542774451942626051788972949131925670967602684683915122053046117745489510322854115005156214954946352668030827776266270455627798529687970736871612241647799978587231238270170536692445766456743151706752214607927820518422971071469329197774784492241394321783453002880590441227302972309692945046784080640784923352355923172358891899421104501180363223580504083858435062125227418281960615731096355688394326712650120156280578688841995157442897714149687619009692978875907281946816662668484480203223855090697460275156424710924996457856974782365719301298626326660565175559918380205871924843134864401723010259112507319743259641426835032661337009692556740293944979696148119432921811892157804100949188960577452819077451862606627846549044832385772297246017241764873046833055131065275240308052745494424236292635627298608496841601028172967814758241100785695251263700469581295324201134431273499677048682288646155303181928083384323942021076294797325664857089428038457528428548211004106892140262402236432720234859640346300782380827949425052508052657379857218817377380165256261384184768719873984181359698514648941727278973558414218448907000597896710361199975015599843930665957743260426941324907085243649800340202651231203135820898607701947311618779912309077101972034557646581508433950580801968317079441147566745253407396888062947980144920359779043587916645900680392120252644187729904388674047292000866851623776474367938434229684037506876298839708282687990715797774520424972056943958759009798734822534902618444532162778170660352816249286163115602019037700264243383003253299984119094446864366920178970500234085897092177575013577349116599734432440460070186798142642127454549015929768427010582790109434781294667461449555559864183689439418544113450459466837162227674809210302971102979216038470177038417490781662904905416842084912238256921833904311831184676217616749441030661667252842526338717618289740511008472574071468786319707025445276803478433138022907333440942188050003976750917179682395579496058910343551257227415104278896449420260432130875490948479878031024697236745919577045908108646418363658099445538451637239062195221007496040496809710928127889102423975681620433201819166674821913217476044707231824403412840861845334008764597163058859651572089813250780866470719025536622806247674921071189920455859209024605707974024897813179619037194666064860178661310442756297778393207323635840312226744020133882894399427532025295762729936328883985040475625236590295093031908763916729552059822821558491408885467233582927457970964258048957918702791223654200260828424808425966140060979885368310468426341280023349480401412813701888254054873357771646730228534349454086273021882481571505554574147116523279014526386749108591573630601105660018572502736469984234941836313815748797170114596536508223004807449096115907031524029283777528505765934138679932360922313488111873129515364922477712715783643271848665295865713654331380249748811486292273350319444736182419725444454532029857046390400580908863258922107792963329304854530273843041098607183883223525699012312839710202470855648725120332278855504198478609018316420564915798597294506965664011967374371616894336218905207417749057750458703157419074890763939306703541303647251905272183106314993539612383776822374078720852373698446697063420470041868977409237801045170174845487504431147757571105897451276372145773765843172997720101424944253274378111698277086554184751552481670518740782376626357237036117020824802148065968706338977875186261585325216702504883292757437187669083238382638166572692989567661447146493382290448652278939675998394391247102047258168889352585844211240906877935612375561178159803037007583756222526953515645035299127288007102432611036027193471121748456699833661627433471538268327108625049726563885890840252646334952317217618223159206322368613778708160012103301224126320740771505255463348951901407087235447913823718928204319348900338092245753017440186485303257294382250125512215292348316992663238846695946731668400220709402728755770169524350658681399557720119483694554249827603801120478789741705314097795338583398069295033723785982549818456542680938084611556570994803167163891535047927089896228096075963383078973614528601717946150570931616789033670945397021286564248068728199725142930069219945483752849940551305709457576990286544440307017564745318310679432771602170401741939678928028171003595174800184652008900043200744015589245320616078267302302037929983181823297402533159531318257134042698535877515953403934834896254645303660690905033138746766494176060276527846377338988078649490941918056272033933779867352181907266156162073101229014442314099650277655803333154077650088876845817267751623594172305053691550193536121268358367592618829463130335309193471829631108233141300273163267788376829486231028280142596382048541644671519943774690590525954135548361000390561650958197698172652520178577938076436353534932069135406238907226030488721028051032497790707521876409448990430558734309507237305014684978052809170322504061346234999717247950689932586014848833637049104712551871653872110725188785702184895053474662459383199712364809224196734698933019230889965186945713247297075385298527013301026232702352087497188611293063417711458686781867575855081303239054853202266566493859927875369024036425957522374961483517274147074027121555075351785899137580673677478189531045440201304521966190948475313257450320505410673618203336351697838550357811455769785601450704274592448712862741538017261307567544223815189713866306328192167231271434258540267017422087463560300822784893929864920155996782049804221154380465460239421967330946643933805828781439246374067086110754722211219316932155570358608602038303580608653154622841268762949719331287760276961983065592293875108131419521381969516572792143166845624432592697717181299201573736708665558205605147532379024434136354747581176703124702039225506130959721388582835237206254920922587362060924386642345034828723015655665979966811222822329299064446355523038703129639866789672171156604294046741778090680574412801215031974098836132357600170952834655577390523094545988350218846792372392325184378930428201860412720133219491540348384387085894779746022477937839185201523035419714717339252458488589774036119835003510812212158136504325992984458978306856843885845159184619533521676063921912448556273633325161309600670993328724874292471173585347529567249155253623423295993885630899524302579291147552697559820705604379013506931733173202319692350334215294696514009599446549530206644699013473667895561309053075054490491833962398126708108826155136010424119603031904403542482125373572814966439886980232979213449369196621885198580705474605360975531203087467229671818776002361410183355317857486853616166995833873357561084315745631213747183102944247841046237732725440633693346578858744312489625091495440736552050751499048511374344348430820594720856114345759140912670634497205668663822903267267964256144727902139388848542177983088087712649804116607226309584272217115167708411053074123313973071651924823095747881048433814213784787398617946837314473430870478976020991706154097988136676186744586059069681273405140966376128173364316282194265087538091159122666459986353838372784679902070639347547008113510595243710167451685457526861679546774599574692925861814163267140596877771665201214506881319829679260325893384092798450089436303917579683112487376098519885922851957889352836758319992840438119506244581927793414394159042012414681189769033739593901739498869701540118032578503292653813407440957499803958217376971388552340243381646079922978426292085077393158065973056359551638392011639679961230394791335940067382225158041828184931604043559874814538848095707362071366188603368586398000762014633823736577123415748763630558395013801293411280302755815393340586097047238747414812488581800155591665956418255523510538558481337340637855073074312297481057916749562442444394987237808585591809710552660580534367946277308493209611273078247544494552800922637498766068075929468887712711849148420716387422841957504459728492324812182445093933204230498677378701010406589102560146013757945650979849067412694324022084276301209962125167399508135804666685048418034748164200685954266214423337636028310171241606381346129383766234092246269264590075228913030720944997264979656147829886828380615445458206369135855068801736016430722455826108986298056816272541840098373249784032056621874412626178385765596316577373909720657708269194187952274956346377692302223912504102816885816330792335194915978174245899921400789753725240995652677902112077072874659960493061004865014257456617605621082232364703704410343851763074784676759570402444852949693992358712597191101488609160889262355776531594679684689925084829065214370657127161923018040041053341289937342196291464694467306835223101668706489574789224111603218588814140746609962444946396749659399855184511816515431555561335268169756779953375520969856245949750141838873607431676903892102277542439394622980892100422822938842728932601666849761719357219594498178656539481126338066261807423605840235566682303419963606958147281423976904481884107782848632709972449856061818537375419807849675547759282082833795026140482987948598406882933690737918666255118766626809729269840758922000369679958707698038958326695647578195188149962034735979856487770959364103713763973484549731730354137150043233182834215809079601803547992983447437367779654889779575275727018772947222715846219948956213793056330953799448426364674705862176345350655634875308210540451745120956618932806860687721693174439478205613334417834328687117787160983536484025502771731503143538009854030070756093420446771543167408112453466974514528962941006872990167677816519687113243578392708739099334091188988473821384134993209919235817657439037261105421189778526692418479239621335250837754244876370148505823640730701039486754185467297616876766234863150744793430520265010995424086068161372016744473854525630344234619215293507018059899465898640939598064999149518799988780225502640731403747369791558463225625232101336514322403621981017176417951844564976467424857812748527204572249255964052891056049013307362633695892460946750371935701853993767463574718177990280221459476011905232604939836275909071345542893016363804196489705966485117649499845447966799653896403691822552179105320163447069471086060141254948786939778036221095158664170032223307217062491827402546679075830605789817138519558701187623345764979021763858323372913170276797715079170883290752111116080170450992106890430808030394296282428639285751535669142591663719884678719003252069854171375329928926381447692266293205444065516310858680477720890306000225938001968526461830413188035431367125845374612498801450786445262066232739049772795540682567064141852803707517785662524290362696037704236623403760984355161818434536881009255574725266963395992314362857350795667172116049162657585646803971317796464979402869963621506366522010590888859467401709693822561720131221771813835328389302762931976081134824744336672728528367940409678117842710614441706212231621427802456888608141524841394625366563605138911914140204165718184580919935571032579367776979010137970133347020338466631125324832140270256772240526906590689115686318170180516809192271425216389576379743620633656701576990962556732589850712241799486796063487821220529216686255681057355276249251425825748805984110829158823852040279789090189627699747345281541609230762774865820657794809244887932879501885157893307593526100932288269149663273856462399403727742302346561055658356728638012112807169044684088282385660839809978371153037385518482059349608183784857006497543243416751000139460333867818283760025842069609978116202252103787424049483519930812406594808664898924375809879938468671712935342337635789073073166773433615461169708707749106542760912595625389736427897258855347379763190533776615712617473980567496439001915843568025094446383024479925611954951531783312943242176633595765599473541483693996292238776281638722521630830402210637831185184308065537975605000937676174127007671297178924530907275283860705845260366313431656136238523127339215234512320360997136663445552982757145064716567679845145149434848814362228215219097084291341007425072057080083949121019963294690247125551426072742300753443660737764972475126334401710608455773682305360250076431918735099636149905688691959191446814193001796860211973151674790229774878966898296331213856109734119439439119146796333958000208471767537729693628431330578792890344624582895417826738951801698705041687192694856616288810729171078821317878892586108046444806826245371193629160130280879396519290005787867908504057673573299995427221842711522566016561784645396415540011271207946874371157745872158936820019447160360577416272312231801390912851522303186551021441943103418137343789523189139299428862321736181040014787528662710670637819458766689889945050342033907577929711958376900556169680128513498964454903615011654050181981712327688242580097855964572435069583497916010626246896976081227906770994442006278407935960656960863848247293126509343255028662650160749028246179834954287174421024065289215175305095595770561930458064119636985920713402632901365234126413206950174535700764013294659232585678864553470015373106095198745483183311906401184227719115232904102024298233374097047353569605937999291040620548495632627224815802135219496387508928585559933539946164401609281196027511041030488941177039207176251319694461022890046622219978751668351040396909306092281569153305446158553962693608112921230359602136958027327266331868965086399144928625112071688310513158214143570156978045953515130039846017162740986540668364714801061773612629445727942381833132270892376422617247461619242766476797345803623120758479893476725889684293209109225087525870911250256593000257926248283899049808768700240437137605549602739690829964720678067416339357250731946796183419047492862623151225512666653443679827816689763495854483568826068027464659957702246337175463154020886902113597601335645979855615491886288194554389918733301342928830612438375335354761054125182426087020648516613421999124715036348235713417781629665335207890682316840240920634888781481581559743118051977677340162520519223186137385254815691425806188333571765905703510556293024477831776226350258067355323685243997013253463050840930219559491987725490023766028422891490549299999170775396149459968503290305668046218804174713073896329776298105851454340158169415246271038581104735844573260311337305755483662764596045424101905935313034596832281852831536002903610602886478330233444260590630054994730956472318131160285590241716605951445895425976023891443672518994992469479245848113399150014084583179643705331356328813334160548358048504953745520621763756085832227676614032258125798604844863405259286244502902210369670979927076613588535495794749312319028885434474493893541709547394924187530290579313174511669064654188570089545573847248430121720815696021717981214697779755270996900422992755670720189866946145393489681304633267488817379052142622284855817397895711011606028805178780781042475357947208340535306932108545799515057508223220459506843757140063381573568561151338049391828086671402048692251938235884224216649530467538376028820438721375650982642348924858764023982258558776523214973776161142970160476369913437725820754557232101583698388599772552939908246557954363671899488249500624366065780039473504779270867399031606258334397086012728899554753401703267878492671855262451388208734580250217375272769638973936562525036939922157581485938951535651068686369031348951509345045405137464249585865646343200950284118386860373295278377890390709866318574940203587327424102723835441682245776048567635169533974903909584205854296142169507681599308109742776191940356691302872846980929960094799315951891431143568227088540872968620987462933067680193584347282245293217019207512071429166160911344227211006346002795090391683429168427438923865013642450664181896637782976421843622334571539949731383923101763482490011642429087662028549811586786599225850716199653721596108061837167567566783900450726683154546435383528199777828812485903443905409495343161142369358082624330681891486662070017140522580536681464940340912886584008081845009341746572274908917289180045515772927303265757861206270421427871021529679997639321295158178219067305742105635169123163397450412258035486690765874718118395785505519008981064728809899747995826782181034049806161797804920179365727183744428567052086835838308711614057371129129835449785123856147665516320855317177907924401955949245940132986200259504559864034086099173014247540878651556911598360959318682810261470880278561998794476252002234157214405433799788520883421284425777679154763477119482072128351720794056086377789213984672951697348466941474614487960930509758326971533292390587299845931011049492749743957189709255605405778927265967515234835383327686345910541468285692352055543509703624964546273760806188929213156435442774210906625692029638194294082479289962790975219884570848245539512939990120502912349956766097083524271351188766604272307759867316279951372800728347821355171545306788024141290028813269678423780662500433070443656996791166803718336025932952496442366297268654568970442004905156210054230185696979035976158527504692333379448694454326447250019048602538548860532521034207220128671007167872533871444327940825763639987179677398094364623687317905617271816080718395086183286569390973323935597554976508879158190292463170920775721243769810779382358685887119279741219315922477646693403771626973966099442438622688658222081345120724548209291129618492707595086251234436223044576347293301408072134694371081652418726705283805349793521353003573807353193771243820107265302644070452887495035694302060051852374318134298814352334499849481803591427441731300475652968305351384911785249923437782344837904108852276637085934453453814521646442193691142876062704820523117960768148686713450403684012635353529567007507177917797299245425051578176428362705443584413182504128177994578353148367252469662220000935719391231949667986426142839923399850111710522229257639143616240231980620101298922501658466616958207723511656397879863113613740553339487849232333646257904195893480504287008080885292118810949069289294188020847066379078932877264405410278918166687484978161439657973165374160971647591435594590720732449395221817540094767791824087475779988724705946836077021547376851639317408518232718172909394224302074900806808447707648792037870110522784545412552681583194111407107193143751615969884072865333417770137924892456726272625592205242264183744533552324118038329345822454408660603847886596233306766422312189271309109848796377210949401948939515785524149627677143034511747812365639616010014759961511438292733657585943943818576549186086325201632334760650503995930971170836996484792614851937315953319076392439460231227033171851901993349335552889996658201994029373867785064902628342254547051493956936660398530301538522588472704554617700412414878352158793516858990729345706008258001347595921077129891455612678118982647262190391976860501407143150063281694086639425269383125547672079590149454672941073355359257248077880764903059186146747943088561510348339489978642959756072268957790913635006596466137652596358552073540604986044183245201441573986054124662480767220853594622458254814383044719775251595313988595094771720531042166028312728666080225430866995181977690999864572510156697673646683110260435481025702144551763086516722379136184436005711719688161273783220984652986554617058848843760796100235843925330443423863368534721023059090238061169110660517099598144665587078398112283893499775410014511375164786298039644097857407309769585119572967661723015039552105546965749255881664724518753055227202748037047442677082284463425389316743242416917033120433395960568547894750405939895452692333850219401261150900680903359248881444991389217887023221315562698567106057330231954426040460351211234952270766124358874993139625228578946780793714972062117351669218676533637256990347083865756069757883093619403780946431348482954655486509589082288648982596848500347591567712638430916319646314955208498752619395467519962111175599639387275368877278980265866132934647528372641622303689069742068789601688231704537947286363040689402710381973181355714154534614345319080900233996026868039332614049899566105577542054785799188876853943907453996204555463649935982262047203181350721499612861118468758750296119854043842214600868075374888201641005731913703566867574580257155527118423461116219655755301035203430560409101691355763811931847111675600388294189809615179412420271589627665293197297647261999429420530053775774023031830536667514795109889826460469048735636622652587462656886694614247777261775500244382303063140617909366443953067817743630664440631109480835223378201223698098557998368524505855245599727020044068779368142067767014628658877251441848715054721906307425952778094180143346139970848963394641821521097191825653829762395133696306430820302075962213843032422613822046220479721001687752692215626146451348187791717486143203849581951617549173794343510192463093576636928127845715569431881196824255594194396384841291612573739321132257454698853470766398607776122766723318137907146180090150032543366292817752012579753517104691259669711566336913266809426658487873616996256545612566390024305883314062370918425933400553371554449868257439798702430931905690284386935851345629633499782094179827626665313653488513913382467222311370604393531345454123943765006357278259311670292887703306263414968029888358989454697549056468156820992140374283165467976366892093083555388185795246116077850728064162100669808852068754593662850780407500790826710800829818795312858067811066633805432123077476589499860617804401332555469317707742934420263591773735431846894050634307798976528886215965910450756667185391103015363783546178022638423876576819465357248931025588295521235185968220297032750375708420444420812642689904748036947400056801014535087322478773717236209342377981497962894806635247854210275265435188520831835162822687368470520802395346727870664529485511958006791553356476615859605888020207945984747987036377746780510973760513916215411283378377580385712192279373725538537607560234667288166664372869706021103532744284232915474757218634636932458300580480436741687497327069370199762378488629678181011424984722684721505806337936724442264868349001091375053660510197231431721957127116126734001251464059948356412461736364388473412448479802245608870720475830730819022842936225144852019456363084277250677858180940267280228071754492202505981611695598444425956969280094107489900791157116910470879712432489582723122520819419063021775611538355351014211236579285619097524242894627947518599064470376576754317122602082615155905485099456402216569962640385913345433754436728095332678685865776655082032241943946373780632738121589663969187006504393972039603935603381783613012524956633981989271228312916972485307367285353277879147787545889278929205367096436606607335712185936166132115277729879809892133423514245882929595599293993112414588499949490179817271249059537010143626178081807592490374536500798098154023677970227096108393327121146500618418838787106417073394070623290617955156748485661857178013325953714540711532558822718476437171748724044605265767464671012346588405981320704986769714139808495152057108105631153375350812911346938475680738721910944540451967819573873788116014221261233184523972084377193534081218530777120524883476195779281680790197005409118100667879749485625935359914940745707663621585527642253338881059796349221173864972942844447873545715743861698071145921509144321443172558571831669642287600253846047836753292881569300490572565678342401258180348096735176097741238040762589214662986104419407238462097996997829348607559220219455580915009765588494635238227032812845346106283150886053426088050591452032540105649997842496269836844272847300945496970776255392819939987785117237862364557260775784406969027450134023662360046294354848964977681320396537365719491399542936027920486461486696864563201345415110256145329461546219519166826750417932782664158102323905791385734350893730017134123055480087401703492350346127215620979110542559502360005733911094003639324918703240988210224043172052115192255188019214791325407777463456332157836190150605487041025681490031907791538849010406493634035506825769880135140564003695037029510054314792718677039815494467820794513614377183422680033089623567269724795088020335325364637208461672436837998499792435103831510040445923020284243409287433346238852733443697539633522014261041475918345722203864965041416855261345944641868257426814966254872076335993036222503747887355566747121302925116666979061731457702868944145396344013000833582839312822178633334782710471630064427139975891122134284463111433834151060039871329147087016168078257756125236117078473722908557196267163720322841848109743359229832322485758687144563010776259553970082820662392971545107202029725518310493589470366756112763966886998949965251187213097908337167344016524533058146748959683694715118906520751908989067389272503458469280111943897041625727165205222353013475385267577005597550774416497095680839191682639027428405722843648873207338048559639342333092709234311153971558136378648598915871657139665399130845801137085569501148140008386016691737913930949281404054475858482637721849030618143468855373273670330459986434984463282399364124744474686869501190291655434469019972869894024824770287388345585362765483745939428918729506280981947152034323584246277727481868067646297817883358122670403991514856208124665067088150382324441551994053971071458015099184927649458188880695876514926162256840631078826549157588040950583325400021958346715677818899483252146791690481917507421138649757106338919184042224550973125132561170382766979105259805718954911231809891841509197315429590228657586452716544546118866747759320683865165286937070495890028787075628415419347092529925976091029565704975662317664437636382623662898504453466965323804610166025936371842288163860133220116440519720456189791236319885377294750161068776657697974642270407914762746699447458196598370054425523463126063928062823326806778778061556931499964867979509424779587861382024839876364879193501403487074984020611106230334452445039710666761880959309352929700523737966858187800202734247437160742872984550137772895550542874749904687228734906283998841873643759929294645657994031381274471469662709719402257967715900123658517217349487624536316121055993322338948789608640607229840109043917360309611717346472268358754308687189073377237751786361140325527041824977782334786393420358907154417809321423292445266201256396354287853071287305537305960614904136431627837857167002054681399468987916878220790834474698247246522257878855401353903981450540423156814286009135611687371067671254464771961209688669819643607811060319096067379237330992531897221955193851406000934782267842078309486278367409265527776354784312814329508081522941032560931113898852523114760902415499507084574646027213967496977358405717121695993710981676172340356740436664022806941518782837714873884824063623666222606325838060525188649397307279623011321348886901095557507835378722841982896751048665903249494030517758509821966037820365551035113694150660126186918799704303764990780206074569388646692154463514949224108000764844052746024375536326049729706298238500087958414422660035492194177920930889547274977961889005808421101474511948448044102558237877895740412608464853776142900385977744818022492804793472347997654267561817128156526852750808753287673343327027125601730509662705858977916176351731498227689671765910038687956380224691805062532228412155832331926059157921563817646434939929132494024282508989074886910818745842419283703756347432429085155075948476783985468680404364093336750383642776049200077398090009307305207929955385532761926433509937259866641234841232294986073088605906921394131220987958345209655371359013538527926880521629243334348748607304465466786560006758121239055297235860835701676676359125596225846460366827245828326881127094125137680074038498203164242258331910964591649966084079246869369375534740253481062864316785725981121802821166387046997277743439828573507704772704676456141754425265186899774680301238186442249330275613237704532798545852867375375983934459316912498674547514355766581089041887695628674922222556718402186963001149813054646878351690971485555054689804243373213522446304543822681227600639240351127889899953447120863600409616151195260327878777025393819295853764638615200016630022433707426785597468502540599566475495228220427687921191629141785098350602088313279113801768275895730829077133216715050979810419746745039280366533711128563200400841843847130303557193049170972248255103082291527667422613267756508049182470686233945994762710863072538026015017642635721105651962239813779116576310481378630783309428689147299145541502763795594658548590140478886960554964403085327623185492107553824032111226861160148762483533145487969159632061685437970373887626199703949755037447461973526111841853967407863457612895087633061055378778745076208869854886742248698499249476664623221661201619333623022339720179206587767103019616784891528801260333211594877762482599646708938904585731374565802317668215575938392083520279569948642249512334444123191528728781508969544741925586913002832642976565069846110274980721080483086192315270335878971481855330188821552469674577153757831221637627505263621219899435971283924741584626981566700105557506236028400477115504728798072914923252070109188162173321725808539713896203137951240979314222598511914467263554580707975877906859849348037261733680515084981326921854864161984234747850652704487966608358116707496651143439258673193847685726300373574443173116330514539512330939353127141272583975549870593312368990800731286448542451836914924075943927028911424219945566055280252963553703987046702675978243285901034617572487664508557664651923446092349471942779478414035399281950441781464084308825012814504600476787025841306815684781816646797908701771541084730585239584086703910516205250726696053265834472095989280285673888641231703104123915740006382247934010404484050463645739708776915174552597683621127818832192841843260334099572254535852450118634806597620787345641260235100470114555127143377467187234765345844287746973839547399737261548645421445624181665302925298574425145416237814831605783915959442082520919857422818270185843430179380924835379577390049838244764231109092695695274520468351177564381418624707880734053176485003917172450634528044450681055498424229252742016026482582962439400506150645142035746891205587180039885008905063645295251099661521651844264704801839071217847084659500283480246592322635218417386590869984009595797309388071286869363370363915302652983260704050917747581540619716862301772216463837541361364074862015979727606848406737428151919602599867327925047144630979216823351960531964878044636263280148275026458800227643289701167446821108756268410148717609507054797345678532284194319175818903812328707067421481370397555434681056081071088154852196124508196493374195084051403253290724359440859054144448093405822614385148948124867789214236911622717040454834972574567503818542506735448336030393989066699293013716791701183937237282075074186649185272785178850850042122665945320384858041764637790304023512275370256026585122228783841613145820515604463506879758534175665457828135224953569631786920760057516385872066232449589861022466300959635141092816014991577977780871299563228460291490637970346069159498022109805035527600016786725280186367515451300021022599277717650467730110792435858654456007666722588839102001424190551856659645451885080603750840342878725605597115007412100185616396847860597897227259504389965307703413497740908765822552705922304414847205272396073412870917625533489482447441777977097176592761553025086685893603079561209101321782028824519757833202980067599482575676437244712330802381748264289286123756837957444479166032120969142952536921322135425608871590035892224088988795943863865458773508530128272921325486690971484291043789611972167901585408114028606883069917277616888739759850252784799473620802230213765074088508982979158134017852806395913779909706477605583410592075901807677949525362408101482533445590833024326906432373513184470425462519747479473507955517496202168908025085187540480492686551280722142676383254515006815726430064887065479249000273936623961273707656261726979939362776176060405872596733686589492859392919672290847887874000404740754379783077436975431471026010420832333545796304461348518672589984398312499022153415687075244020241807099024758018380339691103439164581341358685226651439365531258303424910782668958387483821978944826998707426587784784448220582255127339285474266347643447473317436541389286398224065609253107580338625850042058164274565472249278287619154059235990178349740712059353436576419493037651432822765197770132479093716487291963606626525590636251044461761718803634262336820627624557304409436717469521218080804828475462547589482848567655780034817515677634858902764470600448115038673790267567982701423876116099839252667317928569468598703375362654230090500466964128725237974966820041147427447598769603246831786286784299858998540468109575395308101921059959976237886230333823628783669212710015875232017700838482101476879604274934620187901535343467713923874891010156966522964854924730700705948615951257676069092911514445996525468315098978107663423849338882397824302790002480735313584817435719557792335565568231330479316980868141473392821435493138204620220789478070922402958214284156668471346154198014400968113958209915505461522844547871298833485747025309778228008730748926271342322947900964526145065493726269134811083406882762483248859734517614099388570823333122172863591610662198389050230861563743689338071704633943470963684444180429343523470737622114993345424036819163346843282000544499351912401707669015235435038995077939517301165631512498442457469126792465134561613754366247147643685207580923236912030789757993557545511834863822427642817185561229954666498515512045696544464361052569262341968196583049625511906799616244103196037646248215838443400858889077679344128447755056263228607681811655023822122308717444775247996165976677672620701716494256730289225393055099229212297660156871862009922465029084633372506686368689237466284625320864708857421055948156910011628781694841093266144871839123174798806811774467730923100549682243340349897214497626215407404138124137556534050873643454134808389531347157537820090250856043809590867888085770419117473299074762890776782906803210590821813149516003742300571248800391854842928606852688218735111786447249204873605765471348663193040259644548553588450180349089385461401064130264631012153615942785760853740124379259162712119361985776560305996982075265006146302583462733118335920939501847968404512878510142088786732122289864591299397158142561945741914706378626659961249732410507484732928475660727943496039805994743395743964113843831151102929637050210362730648440930759594431552715879595419721442828596815605880453750213477133747099882415449995732138531877811853093934309706404629734323510541545890301678941361772403213541006019216100159041269227754219109534321791023833142175337149942475379862711701708646266660174165543406458034351399023494361990353528129697668263017871715309262317651363017162243308179063205864862393742689008695120056433493285912468275459030761047283972621685278555644452113999512429875838725093407328209490833038644139518397306145836493587570800204821219531972989075289082714592282804341706776056461662537992480847323693951559890852596509951090582165254117063797034058684617218290493706148245135583974981322473272878499323171133152495633103315675962213813214303715751624651890029354450377841290957629878406708372717395332711930133485626570855826414380963820512691006785555638724077563288612500487411819658986169947015301512948355069068517736170437749162529313035200878292461202452718008306732387424457148763147756442382934754352283433517389083635417449479415954736491904661171084316971294653563809924465831126917133903801650497332470359732722520863640776822592759376654651915134960153749591508957290946110919515976543265764051064875933245225394756827298005307154492370152938608899362376463528953662261951578028757906448068191619705731776688999275069817400325991222378541205494512540819740735995890710923653560836787459048140208398666169151984931232859135888774962315865853096944949440268179307753881322798784807522503838492809928941478771122309346485067851958027244757986304517934072986243621434062160342945147390699526607294075716175826207923149124158607967978954826551417042212907044511041139570179361741582181039335052033064817168018673233133650331865305100885501588911482538432350320927043900601294434287668767029158548698879757351710730344409441895155649920866426475370080530463736012812059784416707307283736923353448278934446700102461176364968923504253328493809449277427858937609283237837864615972670578918327778131624692131378683845560140716635147617654820071211628411840519360050765974934389901494227363577139856430582319839298800444102253425713478465526670112035242545632693819859031154220645331870466912624887683400896205175498767728447562062751162242161699499926425246605588954065333019532656056675941340650046357683306663919646974834552779427413622082510333722895248241557726956425772743161334340137947406253400559037566533351546673151890741468976474143503246468789816852380131401059568267487795282758334268056961947271894336386468804603909204692623148928591416793506369118425838569802347115209170964424755056070564603482802015072341743515165231301053152898933464608500459381864138770501257723475692150324289069231715557906171956795021809399947531319631200914915407659904695662730572338965018417808100955581364194816706810166677408582341431175898706727167944824975369849455798984698869737287209784109872040035525542429335300450837252970544725670524176648787669504354474554051796863839319610291720508020634012661522052455223721813686229226828880769413377394937290160714141285624682037484488183493517640360612842038746079066382989438906206800579589275676347688559313298080915132279913761517145880948367661879556873081431338438023311209972421923975717435990224231411450298175294562825823164534933707540696950811706473530325972024240899555474703390044823916613320642675116340872550858608417705032963121321205056075782202747399968121934998929806709703488371160746076172594004969775318865616195495309230544520805474962361944506647694070893639640206248582676857356176120545497077004034154871627803916451249947511992364455664988094312348534674382400789319130476984738286474198943799664793015579684296060378671498385356115894664263765154651604070230321899756698578920252888803518568076647724174228042056719564852176003113452670950647148035599940166145643416417129108268088974275105034617814432843774450736737578629491504288237477145761797816336830358126217470557643657988001010859636579598073383176549393585606682093254841934194171329780535458916046492870222469225729435839256754136023470963815288801738932232851056956882320681416308126246725282641883256047289411323448129087051885909083474535587255868084219670460062450811158019590070725214330230769083755507097978622702407385263637792910441313488266905997476636092511077059663543452647163860241043538292099036831794413632700583501773633976766682105160788173386978824124466521910294513080890430384788678826584667878076495502312304312534685327266579887294721902533489624374994518940999061068020609618086338054549002670469225164471794431749371812051278453554838618991947444310122538877686210406315653544747787193903762134776706777432958393393796514057764001182798227068395795271383543490189422221447580193919287969154043641602445634137094425845730950957545881846404297548329865905365958365939538991348363738196032899610785841580989701287295900587549804165724968475455297618911646451056695270543075075408169238675526249534484497998373678939943319138012490165634382102394782906121683921858726136285280814764683476989599475025460767244581548069134933368742672410365530410857191657450562812534430120334066560192173689299927308233826142290347330649845957643115108941570082525817844009253217235995905945532003381810627987417068882611794123725776887563631915980442276201647191158082726238579262203361801158968959701667376825616430035751327795526487525754253462004198871878904890322115128049367100731508941506475152121577285023657077476092992679488150542377709238270716260499448874991113765473192226943877092874353364725823692212369945749283419538156223963516768241001588280560154362947426753587711798016342361400936941164577216485672399783769763570900657186317050556783267186883685241035461245235189059308345068135930328790620362123501168842672909932264277352418976262962914247332088730460513734849144493423740421767757064212744349335785045640330078594955624270889752060477662463274933529067055265479429158266683848402948679781332779431128145574612952770178721866530936129343611090921785256502620520221569968425749049461418512107044394509278495517935585992499447224281497191398533069228991935205025208176827891990096417507234420916910599555797353132940080724421233390143536608938119069379827067020427379704790182386236813998636732269925311453144056559158400798912417296875803665900707855943058862469251899974091993205721081499430464287601974690655536586796094892994773970549813221703827556912451970329916099319339668929992087482271248953269986863392132451792555370355751494715892386099953775413514658601265429527822324695141130476384574707078672916093620553389946422879545998670856443314413420750426439914414245962075261965971083863367188320194215218199925181504418010375195661443225138636367364371340136855217785183770510973224819278903547749864289345027868697935055008761916960088139933821043496654389452076950755114839344405314368547775914161813470623161696783294454289414543038332229864829132638949916334042738373716486645218063755160255822230691279927268042936459674666633307080071363025207718916806441877480769231078999567868143330505585241863432655719757254984849758125354461321302460667478023332380821754552681202610326273004874598224319477092657609405654665298932983904823447872433632433250825695991024840444594172379067820986221319059626017160043479893051280643343864727522393302859450414412970843755990820773749734138759604100316886680276591362382811476013510420020479926536940235757365504484923805130909377369632870897113543082006091946005628189211487708252431231443650536217958248402606337779261084716373966379571186446824247463667420287145223828028971984383711995168877145204732048842495088961640733219267474911743177345105586052424684081524876432128477023610896090069846563879557994152508384936851697480930445747221541222362634770863514183645356501846405983316842452186655442920760993807376184376687253631011517677221754525879363973792592605593012182089434934401042849893350911248227029639710861351180216467172253872949595366169728331617916693371941840095033706118681657224752679932940292446087840489324555879113152187044313505084142095642755146774786668544152561768245179878972331927320599117070080514412359609902736590240894244434249781014622363557492572821564087752106244328455370869640770945896486593624560129569045146225020781418018075419912428213566814370368945110605012022646786555642172102142128370481195068289960732349313093734613107904236389820516993949427853975753126524935726750829307588575939456141202674514363593524913161571945680203305939131647929002063493157607828238960713865927167687891903051727030785295078520454836471247595855806432862955590239933465090939186398486090072830409397283419742110028226913257599661494916660851788295867012435425581779883758902013529100371009585092846830090829329813608985502962028019702222058807301925789124640160899359927489455021626545617752833121286854348403291352206293542038927633754166371076208864043687217260206967355124211864010314810943222644690778674238224687185247162311960229003128680306870816970426766095641564254354033412238518589729460181579775924916081650274625006100967386265016668521669158131736273922361444974447722000426235234316301768452701929613005115245805336670643764069145561725128688586110083650470911199601330641662905214028477714292313497162605899983512083539576753644220999171690840632251169473704539659416237026543858761434055936386101419820035708979330679230893878722728695289396303625102369139381324750527362023406488342109833041261050980298182086541049127279311557278714192084780032213881375766710554761065487046376276147391863827637856882317001977121666112151315917043041466927713690886627337300381908497520729235103937263006821410315780330800842952396985944622340975143380651969298448009122609464085527628374401964459337165620927762293324930096953850788436927813079754553485743949376441537583026212027303378183345923998461093480499261444498216662703495746597608657458263717527110505256819651109739274389677634677370809446394616394881873682227073924047986102442488415579581536290005952740754233627980547458579749273423803583957483575206671181611989144811200338433176013965360066741424402949677441481727877125591205387979189057584533813722725458475978282351917268024929177706909976914473962602576522611547755871427597673435363525207089863176443500162557125393045458082541235696910899141229712977114757918589595746257381069541516095795964626079084981703615368677753292241445509510687575059514632434372073643590586398544341340614977794362026786765345979482085508954844241137327758512687801841381329313478460205968419295838194439252053325923548742928567812302250246304628876868096944181855667285070472419548130343612128924588944697271907743354794958509380661329918003994136803638558783246400202484475463925321697289006736768504638067259483564810863383164936502148179263762625727758946938183256162601488555746439117210561639364517047957953313075800441107983713992846110674542576172696455546212640234952203239141900734673369985032898703768686563534239735270620899836854761083762233030325499177523705496364516933948540774559002417569098268784497868094036600442247797338307247280751876512494729234097864877420650500277403723468227971397371642963342255387974823880138719116143529197920398221496727647577265850569835670175914491187112981351152293889215571396864274813187377191169024409212889910445356258773016603126591967164976971535097885727001679689572173445974316690245993919899836244707204399582503314140932172595850165387550215078573251882369459287680573223835684696666637062043121847985060835610623300963722720531121539649272445053641823359092091221791181275480557173319957381526989298445870699042535716573276505334555415954664629004450750306472201290954250385814079464135331403558968148548359906675207789126626524628004552239487186564084850753355884940296965420607212885551312181155908209755069384381016624922838804002807851465636428628103079810220934092791949624507277749217938522593387892714998681091728741518635387507329128762365956032272314382469810968630367054679333635618443352100414193732941089190052014405655390257534605453573546924757512124656391114788092765236488254920071190013215821071014395996977660135293678156769778658297690859492336213921758968938417943210440819248106590639633642448312568099788737210650155215259084298022786860768507869875210754712542334917389674923242250157267567468868365784940766501698958820144134244693834064661876102730173130378457243090818619256983074769043067858117006214042371983495936561762264308298703203012982116247880292511650838540250230614061635777164728305539127672282150240018015193748519391883586752069241780454653012320646969331459757797196850798459312684997945866213647698263668649457024158103664509166382053666562166994645551706787703659271197587374744778444094841761312973719036256635458513439023623566948152252268971220854619141910353880475140488334625378550420287073567161263560585586953027826407645627545496458032858259176162888496856986827007173683688811078101448740897705581106877136402301290476175315925958788778092525474059262523591888769612005026720108000360676286475130620287700596674754083495535868756150796332074383467607743171375949196471969799300334168285286813446858549284056322298585128007917419806457060410529708842161534095204507831280785196284701846955337608844480675649636773042639252582074555215119127876200074821489821348047298185272560208261215118929090221006014772903158405307525637950408519046913784933553949214838614590273320841563255612244383357582728761085695932153199255181683675995569392565265276356305991031670149589978206252593207937706289490870635553171849703974633008577867360471218938366686434286685839643953663390994933554426800466050342331856291212299247161700752606687216342042872432603641195482400115729308271558436709044283495852689002486791924068201561910108425463686115534405368153966051328811792320672972177580728487981996785154031277975466792389376802919728923578781765824012019068455156245307723302924086515110091907258276823816437779243585163807440410330946397061868867313093642890835121121503041188531128465456469792852967357902269859957172712169699563986252376979292548287893472497664892793495604169037322756050788590083543000644649076493641727882655679225482913449284393083289143988258352570538583239313958184774597876069802586513444096610021693869675910117063407539231154448784096462022746746485017877423487553247185322142045164868908196897021632964671252906403849335854136784364121457193851328450422751113808242560059861870321869197797953425217568309972016337986962146423517546565094790894806991918065385732834033805347749986973387813072134708804867303510271106538395674355885566985989537281388511092883261647773515510484526934039944972173905599121405588976464686150693505836787255324750441896363522323473574581980260859295226579911563043433460423035828668852974005385758653625021039494867200217212396835303818283373464461411878937237259162589351770265914425019307541499447533560245241222874944028860832761329147154587846731582825822696584137506043178104111879355140639782882298103505022298541225008616510433640739585961970043993531475340757341647494451069558085597819881142989685179136442843103391287864311526976260677102563208470347552452498418433969798284857844501589593057444388916380939217254666961589213975327813880646194462944140355842146404197857494355521584485892113615975754841873403472239984396143675594959937881655583536887533317999658141926676120536126253369103372799972025473971117348371528175920235008722829457986417056406894725693749148602699524695304161700076612191084199839214551448163273984230770195702167128845389393914462374043381238260729614105949259168146421895876397167437498772210143757294416567286727168923695945270579268482251108751183616777338525465936643829498809217341446739546470215202998817841981753003824904685546718483619453618392874844251149169942805757804995363998762636491312677268751978720822085297375676757146548372288179726775562875155803893941484964834867530164711906529174270068875574007212224109658807370354157328080594530179646924120509627744830529528393876550576654454365889709128612405465713154428247696456661124538196446787550563728350473662376645372685738064331304697403027738822224154173829489731642716046626277886542548907712523953354825101412890854760031264777554521929144943340559264988930485644649281979416129284181420233962426915447889978824401373937605611144751274613264807812383985568296796280590259372421250539524281201330291964521833660322912762726082133223708590344722223582797657061599168783929385406604603577874406460750524296508113449234026571893040017792007277272905141973159037063670579102553054919588688927670680700802910977941989692742243284881206584448499569397985174777567401233660750736098192167277349656086864546988712408240004662288021368596484054515044544906661731916977620785694206744915852808086251217559245475589830649783212806854782286499766237364417593970327962440470270649863792746961827550162792192714717453111089662502561793966627937216736045483092156833940679721949689799158817229081532723245966566195449656924137703699749110822232475920096939837793664272235350050187630664555051320236631065695077720063921951302715727074213589349441296666743670383356449842713126035707714552409326294656091297026896605537508645701997590892742142683094781173626727430537519095865786497995320649719094679852273510561239825433519291207427550110765910939534847816552507709670325744881613025632537421121695538908177231496427521816497908323228469325115162630837249034886754395838262150388754301447347714005689390235159143649052272872995371852295380390375397046477968837848318968830412106596264217684666729828697888026454715765591506935948152404584766204327791346893183056603092805395271616300781023291194656643699220277645374496854494903060624919042009985325521679295792056735784094556781195914120693795995472383779133680018690935249359364307875375407132811849334072270113117963271832600600884267064274603024179450623148744513570637927477388112596427558730302663222634082586358744319213900875479965567641657165006691555671834960803685949806036711028690008353149492347580946215587719967323709816527620824963916508982465337344782873227201011079458431076354034154553755451948101384526956451527932758632408881317324111722230977942860758661611530155747382032771052447241352020575121186205803304164727549766548662571374260283499347787120667641618874069268550007655974014134201825176440058608206094136081415522999440571826474029867176444345945065277897661309377100111691688164257118575380588007385794526237527552424722501289283039980655282667627604357721118965414765419807668272307371367779188485527147432012293571134716746791505008602508763583010459727223372567883765685440519061419138484622236843630526628519249502397885614648551362071716980985657567543420209694128330144317715820556409546394262832355373386149072820057410719283103829248678941001356442857436808842264904076889356281318560173877733002637355982034227934065673448517419724930084553955325292071672089109980019179573026037068873459233438079918661034634424453428780187662956300853720847164706920654872594541426942296082486668158695210630227166154606320856131967553999401559897326279923335646880681442421200591372957234070441701241503624466468080422291726430819299124731110605524570384987922197127263345728034147486753539492640079555748842868484226945753623790671206539096140208999827977609698879975337968183722606900226624295189203601355899049487994931708430272040158246494050070795790367361478256224483445947038358957158791162222432833697920595864036384406612528002032554873676797951342845128339353645410071213869729290342516426832871033056542883902234394313978370713197453663993035388807216678505908331892433095376796786113641651582308643029925227081858536225757355997012764738570527864015669378277911604044955490992152546540712816382993024256481404196047107196758600331681721564878141305469514675828817772427431706397554279813498399218435876364823915285308375177581480439076322749311581169960956997567923848871880735471228098808499685613955445363801536221475699295685900631866868004573503451015373834689899125946472921836918013708247306310655060878048463015275817123778147428049128952801560747024773293791964641015468780382841230989897684709532591684093035714890003552275010932498825808566679799300735437273451034361762342963458721868664070272616617457249253589556615233363426008635149570404714002964582089763773755334834795989358351338318623744893952762986829869100870264456346979244870582638203553281484120105309643474194298978644692435880018011140188224656656719154901956467587510091314651583427385835633269921911514775103593025671795678000876375507633369393865605399621828792050339463173112622363589857208968969596689301639657604616033863929903257032926050150636207877925992997582563316401628659937110307770201354518038548577644971015252545119148764126134678276608983593641273478874364456920978276648282388297427244057103299205110423153565935511682304468800940741156038637884777353689663287622046271536618538238469012117265387575200023146184762369582089865481095680061574338231653620041828275023814406875366596254896254637829910015432691715350889322569363655105105906946333024158794072785772736737981975098081930251530192538761643819476764735804082050906400949014992225401586187171644444788588680904112869586454717251351490784516709155871221447230900433657630861763496923365698848385020490668820683673758652202682986532554555310553715298422035478264945820541184902911894373519607090697171780651949629560409423030433111912077833892432940139596812812328273829315879900598981099178871271539536699379247105603059659629712126269788970104561333206233897170411191139837829267648462683556551870886616036849764178782311329019069012821768743774619133277161043556662354527866394426572558327908890122600816974258103383742049536010422552973699505938408596991050387074119309914122326422327667794633023071630848035220774560112379495964251121811310167908588458234767435565216725316276297415801721037540135817971535368557994001044616416103663329173258190486580188213097597776862951845208317374936429184463164484127249031494514123586361852879503322367462944964588860985595637622070874629600760851255050244135858477585494999550177392975140720436735482297238959023286102486980522896930997936315918816483576803687840737365512721672084562938815868977202677085084123753195889534747559100752713556408010386364365917820941820716863699115211168839721724123340700964928726254723525712405534193153962384784968459555724765500609844886247761663030311939643050831220458084474912794169054260832372299828085792321542212611269804693636645336722477177811700178932815628852288510274946533024434203684120153300821370653192137548240453760742259113412617871654415555046643739189187935106407874728134809909346838088521664525440805938621562609440571444672992027718356683149370968198467093780775385624762411129706661607934441398667572241026337865494552639560867386300460786586186945189602031172806788444065415208112892313883055093035081308648163640705606848349605648942889656169730894406011993778635779565122335249123789049484270227104555466048465238112320444078844940142897765792995809383269686742926366921147040959923197988940099618610487668148494544801134437146549619119120110448391447086101683601906881070456760352165418785096584816725682460795332779374403516985958685006013244118955558362990905777647181104722877610984950107174015006252229417216955671528452484356132098130258387108777219491607559347758805031901098611705368098274229795247149066255016966883193921559186327224730469881718171127949507167274224524811996132954744082410620789445758294787068516498311307168841638824218251413790967874065443539407036153775438580835581796932372353968554378235374016804427999985605374714565592880241676486550357320689142203004753723083147441534384225035621423357305913838903566970228193534355393579924199429560798004176748310501515929607000803724237645471269549750221320430841672699925086085715697730346683895247032424709941394443357797665546641573891488760464235531126979956872714510195801778436719520999642782064203036570105097521540075477793996418178841141954378809701106570581649257760977183565831879237553631042321823372365666711648127715201952352533526567404718791969732748448338354033645821533394314946574568106901497205950774213205220414209803941957975444428893772914861724758751181541084944629502943948932234337918239339098248684653152234217333368599065799312093875011456761375591618441236454819509595788297764334602526498925906263356733783278249703312273880871754133728622149598682139795976870008277167637989436405577287667092872602126028691283283893770207933002018302284289650209015651119886425316626741616034431721328415078174184975578935284781475963992510871518761082754576142967572255416696078554702035334021409844657094454655770936381569733248074185323829431128137390378861144640744596462578029923056659060800550131604491316199338540300389234736037113910842329837812028682073169106119829887271258410662480688143331113278833149708837831610896241255439642846865613666974440916908779008236082549994092249883436661253334402043440578089368104637891011308440187346566890603344358842616029488948967695393076064513137807774165936187844869078396959817318034094543781481767866512534962025729142022737330818165068716790479338239020599546605283324528803671825499978251019791318271363668397812445768051338358891059932402433062413574057712374111353609690419120715811209833693730788543398881425749368246478839465157372955160116070835207334834597190979531325046129146588195216568439965093675309530957483332054691290202017120641601871251243688842479698669274775116542957551753086590815986334469993828115535225154594803199540008465155843358724901014228324096942092743324205406169130077522664696974430118751088625978137968937796875152377165769662279864904134164953510108245159432822742422130072465574937213986701755596083635479949242647464219357397260449323651838043773042795761811763295798563605861004789233507402717183350040956728819876755244227332026661588617600145133094850973351649966508495106330902908488548540778070386311730810801405638236980799652550345765615090652661920778728856019478393815754696922242031638603375447927867833291383713001765440803147444000735704522800123249975443696475129211217427550758903971627993205686492160208163350556974968562223933154836962715102362287207167388601097018419970260378566731649849498022885885633309515484040105721353792251964984890624900292269982606062824425038473601805155174023028525465697196870458208714906522179248973691903800540031312693260264860160060442095108431912382577219939598584881115399857579400974714575469895489897532388597304881064257689571499164227665228868014871486797912663943382053777574599377123551052801822954295821353960532187311051220379361986170561308519885029809640238171326391911821182952684259703090227045762457854163965786600678022400559168736197866188288926689653918028121109620185853583373260390258055101154853877197496018726156337854298231159096662503899915584206262972037338748023690597082367601396670194439096157711786247948753270651311546161758380567350086750880421982434037545243044979229683224263628215393954527796343107315169089724828367613442260047514461812498609749252505631770740682564956790162251889616392467958104815308605997999076795957886616994963795359229155795882748073711822608198393626669649797652531618573657108856498785911652997115606621310150520426122796330502783737706128334623853786550711190836566635934873294666441444075897122096269917803083884581198296958269129726503605741884416421260753571722288564620727188520016580906595633600869064997613792265593667441543419631594433216801587883972349587739001436431168014141450221573394236113139368920077644967793856568873867536600959296361928602783212241070443209478329515709857397013222540332872970038851485488697015826618930204672152145273281231934315357782532475432145282843514476580349947419350512157436844061352101590523976406493805753128026069913445923436090069535781465698280949219771971017589236485431989727376645013670915017535947475244070009310239001283195791431286093074268790208081093333497585312327548170933688492744061777584720966511994518310672762681972172498525915406292272668573555773686475403048692918343249698806254176494704524949528996000675560233451934505659830876192327015512292706394816397537377184042198445324108563994980198561197017755577219480734230969179560398444276392900276229018660402730506389239206502227079826123353894176783345998754844998231119594655203809911321153789710839791590500686029762793251093244155101615130919839782487164053497054676411616266433117992434992303438273505477185214600641256105455950133440503142838881755271460921526906791078096467076631037906519852547405651550663119276346058393740552880793547749373968066160622873921620089499893821461336339726379845618814957421577238093688640899776774273362490327972869230447747058574452489090348582304308009264167513736894020271394034903337707873998261421635089003403492695862438361367327257055958542155895371558091391394602184367552236413221901628135218663293855210747719169138589013889097096092359831155714083241206794538296360946243785761523078697846503055262676022609389110976745827753511825536208452819858617491360609897411623600127812200732466970195676160252579501550337865491540869310560807515458544514484510331191325693513497547860964285809423502141309703481858812656806496108529870208904575405032180828152542189738924484289279997717566070343626285103238715899745182578548315230632001143754749618948739320245297110296635564485052766469734150605817771063007770921299908505766202346954332991174756439512686080734874354863683338950694734855991349864752870028401799023058917514655456434885210967098084811028827986437622002138268510531869201236119592800276908259748123672297760459326232239735595524970493039493002596078484318690322512957583998518832932442765345705861877539381312242884800218978865310700803653253893912884994700954328557146324714129693104464773015540205730151839698963799425116555252628510625697263757702890227154816904076860542911586142342761632751117514271806674948944008247867090883360892459588166722670512316575911127928387854386577990863127733613551770555865968679776331605832412672197234962465655016589348959454113783901967758502734932512679158942718383288404723508299155619497229709161778872452449639266789590912376548231209844977458748324936585788946447941371354142407565139278617059643758013728779668965969288990922639997383659699701380542356966496372678773327611281236288121955303072230457544043863297524413413804086341272597247557921531146700556734476431333957361377185623031513444104101532583953412888931592479430978100182190690880219264251470025001440168164026849501189253670850680706818360338861173928846800458750649258783852507546943112398468931995133896781702262190848634532732384823523527506002737888937081011157430293852286123451861453063345987248663314929350704653475792523441905523203316826775635932382387213130817462364907274943824125014332208737956144136952920380997939049115104724576013516366687080788679744358667388471604367347099677332387202113640814983598852169486502746422249728390674665571816519489401452730633440560576059556438983828567081073724966241969887674282679224673776995556957569232179933040482591133406776672813561945453212438873551610354760150119600520444205532000793264705559918076835918130704362421242283649067579722348968261100283573990150676433608997554047264428621259617198361114619741148947804547409116364672095698033758173970911751270388334555730448180340743879057915341400649945313728809992520968939300308661526951653367944990254218219454732784521095303460198337081133915889119051653227626213251523573751239552677119881037491854234720919602169577805220190932012936757793250788335421410811115275934919711069122717886642297778958871964681895034097228915650267163931528296385714712690989708146905657779333206698151558261913721330159197849579619582775934908777887097656791094869811477912315560091786653451101219697947202984211769199515637960843661711115153219791506482532763379409686675813662688551649799278147401700553037253127118255421734424731112768145476389221302486191765866632250874237459233816825179167979009736186976765365667871411736176192448265021231570552427894104923998053870219057029858589358205465623097938865449640318558933468900401900406083853857078901745094329941308022700491772000589475730149491251516678981311496261990192519451566723133559566644479343388406825376448261629571857464205732574394557464941935032820678715231567241632884702103006142017488431626613120987910764544090538474237598605647828426975073959712349833691040467438564577663087483517393110249037438576117305562520833606893478027534336309878711689065054279051248217291203059538124551681657258401723559427690056590140277700127031388247339526704013015649981930788898319035150288645897308891464060655697849348774519251789415443811760366603485118100235400140209507145575866835537294265935947515831675716873732486404890075818584820387562309498510045716201655181744281093325812777046326409323337068556498415662784432945741756296481639899934878918338512112049837462738161854893772501549235339894150386209904267232585027627728303986144471055654635901410935615117951270838092572149504708463212456188018185495532644842976344831548331435902094527235139948054899135493673758258623473661897167097348102957740088000989285512912854800055421409009543488313279607262538548269656302040417730813419177667449600366618369138785874115513696886811882848369122522272871094968524880810530899534625168924662356389072032697404857894207219177576805616826028006846643960007180289083700836864470971087988245607654068580105911492471367260149361876714317398038205158067529050759250170868222701282735603902516323782897946282751185644912277951912487216323645554223259154205239962744221670638745989738432911958369633287343729493463274283286851488158493255838891656341344344607997545056092437656663056274353424303788856549500026409100636694321124156989413684099003722429286713167710626791438065222757396734535630378129461998909957576521670751147743548462049972227724584471846641120130679828230807646707570263897148899119846571589470897893176764398094004903724434539338925714948163615086359705026095692094762301759986841238748037115169050962176034588813179252574256203704926974462641700427817883239331793298481669738959204842025832289970265073015846214628751492426114181305934415075778310835723779582796108555547748608140649875194352974863269526548906089601016842147353500585569130428718264055637701456570168803297268821719685931835913261023385447868670809782908311627414223719053088782726446862971714841685613271426230751545068305962396904538712877267014164356868969310955678799451872375045027870715084169481021049740309643646512527441106985795905017795931566306654107350700557768574083740521370066967500606342258042535275480368973088586667354684970106395774875366067500344853457494225881869380294050965334164021325103095895046962065299162164096649988782823807273061858882401919053645050951405597513262624569927824319432262085135557696686389135096160719775743294955644275712084582663680813721950331346327716428678585310147878380003554847469502976117060763364690234531718837932908297875676343943059810723278134437799943369722405229040425592528135067951664168020469231138467613024407754777004608677074612138308472575791205505764396867727070264165007453566260018598002199103844973867830781291113940270492724991030908521889741238196358731623809577377324310298898649661019619066011149665644730741271246155411338666148318615902984510530764246113035535315305517523210233316599725618957988984629474986878367087022627728090059473374709816530428543796702481421457741215142607254899487314366842737275169371814071379070681776861280643976683485934584328002163709311664164652079670177141526713312248548037237531166975143330070631339290771277148398340622435241146001834299598265877355914711240995914431684451862388831595389020989872055265086748061468026838441092906352969247764838210833908179248392754292633370570245672764418443094972409759719719008939288753204248949605661435525727297545228340088361635987817074447005080741904646500578981048025980804436337187233123083175192136122248771583419088626702926914125389295160926157663894900410529512276487644796704208679598709763003787870954200962468650636918442359672891157987462667327668617720606046085186450603535238615753375644830087750199795405181201514296308703280606071675168286516276664618700387879114142334887711906025249441135114858790496522181833604895357250719296711399140639852624793194728732962628601372497632964655894199988670609862354035172221715472328203938995092419241426773525550251425706551423699728703432036357116906064124835187373418345077438855977344799524809534217915796613941691882363225179027526643618185707336807757692125531883752513620246039576350627470774168478566902291329395544011929705935860776751074840482952169449705267394034071612611483359459789834497361570525113134669012446663834761837383864277744828366215788191932949475486830641212131555571202798098216173416977855291489389963324959692848158436532905977421301931284287594011920965211289562661391898739981643901913335161367832068960917287151865360136593356528587576571277164218060745943669178568817386921014240979712210232324606747223171519329761958990388983579204734863306961920707770281263170213598239854276836354430222740715750398644720948602241970443988114439848334711890470188202837943108660813738010585074790321397297508359735920550330415768967098030000322911457982341104036224129476300974968960105040886947842541263488478753826726172302346572755853356529566902494177800116335357564538874315343638177446908859979119007605559918434996745432728740551093819937922345721558987359823825385372732481522223038771470917112272563440309858432224935258914462233837771031798127489518610094288699153781206859934892612581377793948371910213894171791824350781768118160755104179441484222025474065720123331781231758547050291834637617566620573755404492041171811545292303428390180746812079901306231998358856954656615814280709088653358545355562623820368631823099519481527644959113661453568762299183677265704472417700096531336858248358488804641979049569759574316259224852935324049242947835924601806478742780416373665884973946972321947645288401232344632404677584315144836017929007944524345057665661137239891303618148504143122346586020825974097823605207796941626238059070992609174515462704802669386752735125204585013756597583317480482753199058605516407267246021340771408378932393791002984409118355759760119214846410377069897347028392162806347215397915703553210923708756121607476670384383523389155365681617760442317038935895911234080334213705069296776165685271566585012713890770349554410323586139483291209190072815140349304052556026622582784624610164899841172513686563169529555957707121669199959803600377911350665506714130221484815443780754358606564202709819662093296549177985727991770921234298435028013108569916914828231896425250367494571002886424198079496203515194881036367549466663829131955871318292887994713223570115456486104373864614480468329051938230600285535292768422680107195351366746848063293851954759642251724195386498743360928723335058180807279558901465478684130486867592967474525909750433274046198424151037803550930179018864027945704449152902640143718652250840689162581541423587448637256004799216972581892521673327971147050549052601031883745098299111762028133251960363815263626248015190802158051422306144371766930521842692284589916879397096273124683889281948351494302479874692213191093046022782352115495391574322343943354848789971615397154051105586506258122066823054340936027923858352769890328884917678116517326831811109628712647009540584289651074253274420640422740892506917760439016480906529997590542531865630154921884878739772910635583784118649652078677335359348853074440430466895262213105422026906675254054485978223860935319655829518534002172950769722940466472826369856547752677608714750479882521534727097614301536467856954188237737943125162676406132294237104601028975648951475519174784000690737113290528683230483138465878535815827312890960960008363139525360221590684307851364189563619273129188302996611698823746723473860360310930913797793692425434039684414311438329654426972702403594220011171189268585256545565205072253546585196062986894506259991980698453054058665165823613515731222657925639857425175745712282206110726516628311766429111484247595963696690317322704610776713245629432815203462177234189514087986653889551329285452590171658023542812881313575944709176646597409239539370526852348650879837966142725151388418548210727666245334622541753540191758832124028836554263036297662335185680779791713855356203884966763789500932774291901731918421828371302442282187613968205493039464690758381221183731726922075471287107786107788560493095793171803952970969763927358086515366657348723031533117462809588621985933080316574838172637370772263099304434361652548113982730135224678654512485845555149969757563361126224660120088210391381369188966631660683487407614025027902712110176949877344675217397054076658854675947105320540061420184648879017592830557998305277800788925059404195080135152777713443698277563075206039574813147552770311656576868826548655352937465420592721954288276441172789881050674862040255784614525304279950962195696718617354387664070083416679641097539535104861958489198099126508231471128005434845491203539077936755633162977468344128831496863884650487800249322411016164802926836537168140238319284663048927175665539060454724850103213215640507845528764355380532507192867382431953191178978168686893064280396042607946074171311831331341976622984272520301878116849084055237386951896360162556518938693261478801944148769180449006817493719782772660375048326210418082631364657980107998812427054887238518611269571577006347133322403818747880403022494230277132784538697490896842311772368384002139983836348672773917830096463016266669882186085036904933772830488651583150991598043182857837645740890421884072115985258015196525627763426558147477112699665051265826859490632913826325384582224891578711698391616029085570105915338006626284759784463206490296920815717461342116139575499859815152894157518242069889309760809740257051456063946973951131260503650846479054882957907159439845738028705343254103663744525905071551297686974878861604172717026227533911842454481972858648665669862412046373031935977934173698023060735838240038116875534165738536908714604722513595336779896055395241392015303556482063365490800444846522178490189471854257117708361241452788917745817740775342477917992485983370867580157622456067344997060814348095325910716252088524364703078463357463124030744468866280488676365132988685584696971707487835049914586360909003880537190981292367017618411385424041164966258816433346449686155603902154060218195363841360024676502205221780773877812388366781270701265774556101746017332904173738050345860713247670392106415960714167397619470808961588480611287063971301502580091195967903613186108956486725096164676973587438098172258976244021268805926575714502926298931651056856540269579747415854574192570026617470744107701763213694245205928599983620629780370458024825008860671596735936101756249906938691168039246525572631402219690608392460637747048539054169374951542813809621764246080059090226609607354092172819317570768846817155332471167634594942843463062667040150866056849568444521118457714110641131711599403439705213528796167494963437629674315395901485056788377380823207382511388586766951164743049410027699813567492943711863370179578390738180712321471635549803162612975394248746920307863223545022989471423937488008562664013214723963928096569794161054073206965384399167880802989997481395624764565984581751824342398769293946236695628379930249209073778802041291243749256980322356891725719718472973669674822540626988275477189128743183536441729355556273921083693067380777392755053472250385834033980350453401256908822684415317099710779806462999894750583629541374792882192214333180204061690092179211962629827278902367472896921484461472496229481475064579756522594319868778195090217249227742357519347165101855706418228154812764621282720356118990160650074789354827053151093119229216996924735777141884993737963528169910052637926444825962158078846353140185526489932925275757161712672149950159286528673025412552001837490521238534789849616285294366591150913508183786539285588664615326238221270859468618010076363194677515083332787923391185627882485959958595705847653425449051725932122619725957709791705557782810914062136865048272197291911936538206833384558393560761402471597018163416866502823779674424599932866345971093469939797641528513945334110140264492882519137477281916096035204478473623601257723124131700457153618111905881795193791776866805779499580053624171016116336924819834936819235130138071071611998576668464208390618862875920585511938673940940652317775841348808769233342322797906939661912983591967363443185489616507256487141380198670170368965134779428856789096437433143455837868268085617306409566753245087001808906520530941486741933199666974198115694520327424583316534932389647473999122783973084281106095339385872358954296901640521404116178989413418545870429086252517982505091137832397115289053836534629632305799865613598993744521956414739433386957104359039776879565512202364742718007086723096365907571506387820244332031714369731926440474508893855438674270606773786646310975196899167219207768409827424533750722260114980581830192761194227374831661550927058905202899693620851024741951744292117875346062520458582057922711651502316437259190370946144270156873543294785551718175418446288389001347192600925743111972756769792443984808275593771498639980438505602343457252047495717254315433283281376234334436179738492940125218208908870626082267854846708104365879120357689398049621582423305487909026103359867834589790156566507409856602889501903389123448953576375403406644848273951032690002539087625827955984504971773675547535277268289524157127692312746905104796120259573554984505385568352503021422613002978022163594776231319704495814397782790195420556381863777134999823313339822126918816442551891165946722682139846488373332660847275186549636516672722858829181438026920863602658676677656145499148807135083241351211333145833247941804809752520735063917972968061687818962894963201883097477724608374538295307634655008590427495752711742441474477488668757329286979228936307359015172995894187086918265396717334647620971263784516827192936668491444673602988794867118381094127485735896514320293510224511834237654153212193194699165064158674368883963642986586762330236948950705089195350902553461864817223841471661248601758659077276141114770379490302769845030055501717289478205516762090637790994365338537821349868219265818451307519030929626642205282777670870443863221177624830124466151016381918206294249218136176555268348140363898422616374411690952387979728929487800355896736602077579399617839241405214407390820099983452021707970063587468593426698630318145018460256202919368801330638341329775599472795016059312008228905136272121535832510350118940686374702250181036069946923349541841731918588438166779888117187002129031901875445154117826793184238983365488476099265104665646223396329234955835590420682223996384698646702335082629939661272292573407784403196783602897392048420603239323013876895687535284163595934264686908760179729748078033873673713494136318019624396608981054079847379296364837389473433258420188179641066785248272860777068889436641501521564862111043688498108442692090314410779463718903071532600542132682594440876977276628652976635813679604130110621160270571713012618265012489317979808628128567238706120237149471400970035473391888697591182300381039764113092545855335715767864214806042375389911488084026191459311222370603159506072086990074701899764584579717347212065425851991443791961974219184657137053077405826378904198833096859992248646976140760648181677308496212100567680693035995495885636470460414685481619641248098833834886032062501238762978422490513947380170005400948611734742142084989805624978022346018345921388539253364701759902062313412093055353621028010943946792851863956354679941767255541957221137856616156764786141311681893452282187247651252047956809432329939438686100677542789821309716657138528942715116392874469891516759148863957415420070449177114620310896589092535956528469568646730746496997612036640916931261878802488869618662941024431940930419337027402424476993698696166677622502999656813932110185588742937022437805648818563153901403000436500711741377670910835281769865739741218590014104866830380832839375178940141621181955241635825675112204936555384130558102012800089891680727310830620977288886440202737566834382777853545455126338006560124242768577631545580769121589702068206051658371314072341356906089278954083443020049650137613272197334695829106043839652015442176502371241303397094494677656178109131194315651065798105321185851219030386355178656187571928652482893678619936805074860910040275899008673098174163228855608786579882805332685921858876632293600494656497820674732823833251519362381858360613389542034581353471956418700915758073882248113999334692026972990942982537406306357985574058049706350554197717438634222779254996808061069549925756659959340327455006250348462180131092093939491048371595182622394914149563083148248430106120268255675464940503327332454823939005950952203836020207071607891161981142623756670649305844121863167160431769320768406056341127948088364082157504777634619481848788889923621706075588012449938181549869093969657876248314477233954367943946850248285858947427772339661044995262961851025850878842704989531118782453681140870705274929494834585974519774437905224702479316411891809385222570401867907140194262045080480060938542321655394111337249766665937739732708466769905739642139548826548817834392955647485942443114884646422376001815122567764094094129899597635536324010823628006572538509638427094614983572355621622849328366160655902973518742839779638300829658253720903779530897002625283307977271551798735077283804461741107270108172394384844747367219882494924811645895165906807953823778398915121738022876417794679812514358427129132956060017585531402405112775350553590716943509865546226345720054731516108163305498504825783356777903068878693229577350026910554661459764626813746321841519535249433875859138968827011520436616727499723188195492219299407681197261386980396741186990195359653292051956248840187453770900391268285270266570124300056122216216470634220516640260411918530701527278935545193941034280267566400183219812581834107149602001020605039707698003778704147393683577044972981175230533869039735161112843002545771911252090155006004381311234246851646405225861843252141364490586857332808100041135497357325295512637038260717934654762490366357947386569152649311107094098091707875583825210937513479157608626595990844954686762741416374555834298929487900068062872292167455092306555744310075822802024136303481677094385205457983526397807724596352480619864905691533930126481681824259520664155676259999374139162313479144723739649616333742647081730976157010467398293346291475491557344758327380513697997442562057709582568450107552642724829933854084386482712622654888407175721334795320637368375282425311877815662682595585785311340938251102094571780604438985911662520717503251094115669917016130855363304620644511270611788513852563596936514184020284990777253700729751419786964870192507273534070818760904105505275412607789034411535176524609626668874148590861162493407798308629264447455418814050476335576490566371078179734972727478748088371797694996162753972333637651186774122186735745480658477154866788236337157788680398899868385408726443475105764491206501242080943473933126588143457900846755258738156706562348716968879345618935261988385878681282323986700237006946789471088465291676321812576474794348339214285730022120282698140163319274275036116342737865180852554278583614772884315745030726538019814010454755346421868319337070724901203800667213812121248883048078152121953288634868639673667003782042017017230201384849407582198211386879883822066398477072601512175136323341277423817641077907032344744430477886689383203871881927164536344680376668812401347367162658206790635910137729323603100856060902332489546472066645299806675336473638660110585043773943977534094603860553511619798035319645097614636776347318924374264759714048122244686564966213550359410090216813213631572060881387183603382935163334834674435137435804702205096306786438493099619048941114546245401567678752620917334848528885400835761516018725785843870920481571549415451072146120150330151098021312173557400566763389663879045149022997966145844233816399906917754912175312370650543599032781556376613056664283748367867841138769904144675305151521511091427545323049859578627150162516323177925024059505460352557311711196016404336283476650369154211355049361873121163154462906922466791411400747821868923959169637104791089367197949612778798073218341198837906253414778754103807932423959640045138788417354669969991388427328036416645971137581494880418089971956731654810619774342872261675269466242856039357899892426852073910900569815421749762621752849783172476392634713746551239758268018311929294056851004382014679096805470792334221416543664249741160633279620783140456630473818397384485636959246943506386685286958324491043948435567788926700876625812417273486262954238272511456591305221505180178428960001032447223988365127287904659292977020850917554169143850959315458324537687225420415673507937347446714902716637141666793482361183350863515757019440997611110502228602074077877960544911211802686720987256541160409360013354851396772137504756248268085812420480065207384900860315221732645839248947383009308344971914345290929667768176084965802717856912839524177699217745529425764275546613929814289929254448378458839401348989662666925677044491849282845978703196263740787451463749833075725231022280737875341614142143020762756637544213953141321193165418416219945230422886067560652987435565272951728384849065325801556356059591172135324327500543840965970102682852812906106069042226541805885353937878254799878352409338570305365228984469877985611936481719980645800672025901018122104003395709327425952494490175347903861729548812445703024253454332705558695607400195091221871509040450254631988716289680692708301740648633994348255799480833582084123654160033806099573638250740641420873283391106430116901925676048035218038765139508482232766865142483444669575240505500604959018802680760947371982461314141053033047402387516773904522698813391377045061101841718290468295792550109710578512099825358928817762345707239292975273767181449227516449834475138674486923275244003509822241375322572165858395379610639845230265642649384945121391389858707309516090890843040779344698588752053960913463349456087155328449568982005707245238955501097070545722609982182065764130344905381835840934405319455307206193730557510440847561360555390447181311771873610709037773267272692743589102676241251360995510953591388107601740842159309448667472422243530483063678438397512197270528610043921390704457714148447262332093856912364790224504992895554926390660714564130463457750679367300975265042509949249817771331478633990747452817822645357644039906291288340302913172395867705101532104595254852223104269928101074432065068371412498597134558549902850359211299447406302014470435613545204891605904073615925834626354357236847222603901893368878583549416180219455523821397627376484998832690140154906939241807427504860533320978677058112106553931102839089646021601280400266234610789909804024172815369309129330595352905541394614481959897631534465259429671778500603388050063780334349109885653653306386160228473936942736520528856050335472063157275728173959533428011058644091772588329158769705993891607280423247982651236749080542250305349702683577417746128831849822447352023256609412622994100316275028071126551377069490995806719781718491641104144780149688139293899274637427523704302269537346477746860321039700207148690766325763510763395057539724330355880829559856661537714229685471957566032735543093751811940542288829863591063404326611198566226709032630846478011662255625638529432065570401528766781835042402332351702646719372224859024998481477539408673693538352196059095481858643914959446621379030344595556092649965591436149646104342314667697749050912670678438760817899678116716957526297959750174814164346601172241346491470283710853454271882777702160288615230422803516987653671398431366479270224571198100718397638348059554746127465603459416779397780370784309387503507116815552301536023631344085405881254218888192168359114570205603623299302115893754760335341703169767009556921452738709484082759433832791894792862852720437816741956106329202721788363228670458791765384497773055278813934724442439112846140750987155481074916735051904584511302238443758817925621323418174253230119819089308376076704884268562621216424627986063111765623310705716493477855569397193291242127740540580945608362695777371899531206731828185243363434328304314342822148329259349369810878453634596687751598392232535760079996359043806185460921569010771332433600826432293440113758491170982670862468169529314422292151539146787137658071110780984300379311276974759639882367828093464562776882047386053439520215797825821760432018026647516636133449270925803975589886422265374869885810961478730486314422349900723260024423744451938114693688604167338186546906666241553853647733143556292988589475367000035564901305279983775750322742045441901447137295613752118853126378938817065994841023857055854781746142466968906791359747929183805363895849740788380908180492555386865483891677906529009236487424416563114098513086134946300926487018700705427013728931871888359835372064066471250391826312497276728479851432169127860640340688753126619451824342748717536311210686190410944919673438301447793807729379685955574724045925708575353048506379287683307552877271534358961493835716905896082840574194282094197282790991915740528937350190106056503159190258573322000578623192464233415494497326745359920122529584996111074192529662362204821345821367720826286339417646232005261950188661417870290453842182540434544616355726186012281615720344479151180348421155086724751459573778757687285596357921858036011384830176331246938863888253393092860031794647643702977363471960888970555207797182442668927390279313812518008901723058446206437361899443756469217079776058849191401179808387508186936167608811439121353971310630036048507770251530306242609188591135841824335389001587876589725922473483860177161556860762633701591238521084514025967203497166489402353076259667313541845226102950681562008391144574142197174412075540424191874483243532256681118170687174538803538377066874083148204803160184196826662829028319519871557618248120861217289362121705296807794640764861806191748806198511925206627998317172840651361284514775573455162540857411430390682500259884493301745899516281795229494944486423910303833368288799936539360521666655272640360405310576270200997622004336458616492989924400299617460642152810690212471167175861921891198718487193284601001016825886231212041058546816994470660823905728192551110915918237894975951062906135392277580865818984041124620372202636045250198660328522803255605156197576524619680740988037149843419041520472545602434071316802323457675616305209797653726465306010159921897056578186537730824098419879741242186176866864027804880429899748820190361529224350901916175285299902479568409177809516626702568818478589418746349158122015158584897279809141581231030662728502880648523904867343547997528944188437024358919151424642276785165396828880201331399452697046105625041398376023860604057644081832261295494890950051918393728132534357518835919549626194705759113611133332929329820046984659315640566581964521929630476641983164687896473992514697847319144568410409753664447126290012674846240476541945988891999052476472704237631750860533591169267632199670070838429498689124499894724806947187897919073303319422683242734567722909140888042964255690040934423753837175518186758043133702281174875471685934547838489672716759985610242035240739817718635944072487569896998362048491922874246675389665679064217567288146865919853215819903189691458087635129020957049247597760402843105196101369878662876267123757769840444615160280008072887719154083599366168258332954290835735548242457149275794491302559547299433463756519700726266565042509496948985693133248613563482522340323636695843049267656143661489186399873589367776886810860525140186976215282832121958241221734369313487188320431987312622786579072340744851014063182485506028411152271075099399311937387010907419382509258772885112172827474178096078697107079123042594815185140106763732832922573584339540820903419372976405548802927015187161029745652972285583236389268063899572305782668719334435252073606776652701576596136059326607341612052429719214054449306826228966880550904841757381640439216113295211820795829148480866808763000534247804381988431731749951147023454799220803590451428694142250124018145134261843042008659215441578198379592906694592445173648688663384153899406138175332699418909150160516043610505786239701471097980503680447076298796360760642862749688458284267588351419953534141286212797704164185033623223016523408479300278986436687619431606610585899844717778977948226025281254821675542489266854690001223345134507213010418285609842223608668513931379836195912379698574200085387220083562425892439996867766016741366954829098308263757912201194891706852228631389830239566630204179449348319786621895038294321214811994251083433033926451476784664834844913788848161063134889745923747477718470082293801699752209529143913501042008847286342527367736262406313402370036535552922281312234329259430278579220872342755898582853563291336435510278200150847117810747879155414368247365043503381199347641465482993694379946852528353046459668139419370303552637752434685713836458446143998933504934290711656311167378840988645911824296862103295607012702562655379165148767653268156205193493810216267001327681062375955551623291914786787899455292631913822925337266237777733594621080375948603823514820177125967669457370293106722130534617380593349443426477181652488887571476495301888427619796482147245269471076848505609217795782019107301296942274395935954817289136330958615964289329400210596478040534386514652029986573660119421981895444535655904217771090384665795469001606029940058024211781372788022716190060084152226529606560271144677050197508067239858174198087869227374111172739682265877153209791367306062583051361924106285889607321821692466393060572324134617849381748616429400853399800408958667766506929164314666607801592170641282401600644860486361064638751686201981833390756305148444528984110928849067307870132838950180639871630443037417244085623772227158654443792184169318363079589025725484499702036524862356308039601591929119390378649166857708601703458192527920116585580715838851739711163588781475477236626060479502849515526138180745301116974829675529839909655029733162109881414775763250647642513583681711416425103281558109859370808491948830110369284319189054344729133540355594881286453980591984000809627477384070082780584530976922901167162570962766449802387955696412174541522978699923519298045493578567521206913294933424234580316400056072817270539000746956530495121579406331519787159426836659925068001195965295693100030713276484538239981822874701382397369588513085213102834068137788983105138807923919933662324575414799758837616748904012264963469378701738591424897411543057767345279346363038792534619270221600986091484651102980515518863007646584862139766237468627189105048895718165422732517832666771800621736462276670616349933581082982683566964511932909751301165956040179677215332477286460098088411018143100522240062630090273741661893197984277060561311020943854360469887699464797437353305896342107947085980596590319082946020410832093984178771137321885390871847753727530678399943657763410010751108977679140041430536936612082743617891681836060758077483048028139832921065039795606405405210509136815669424274417820740677249570354269345635469123362829648664053569278142370881270845456482831553451347139547406480215696480306764961123849763081330382376077854836749739597751544756982633143366563282638441274078824236940872107996163211998130779408856211038577382826582533458113514939390464357123451830431022557002050043513828659366620844551446928257076250205841164832100111662878879813351284352496125460778403465877337212267429605401860436744701375846943968990233607237468764896845122633170253999049509528422806048105343685616320436775049391077184617082193408910434534255684253936065342583189313762531284730286700265180387720953617093308057797767516658268531876216577774750809754249386882483948087382603273371783215804971889985119162746171586840665669875149103197868792253965683264676710265403104683896858109469903815903167201031102512554913500265033659373481511519272084374248478666166375759097885440188688349519153261566774645060600249257616776386058909281964470920595613420236425022706502898156488724054343490016373819921013836902467216327960712905283082473957472828909514678542101070174278243190531734416632691023056176835321412577345659911259061892121689820601351393260739035710212743821288568200377694306263151865995436299436100079950626552045015025551096919054391733559339688883715971887404859975379946077550410539976913535867653987562773077727523163034116728676537393892879772221145964799854184477117605154660940531446594076567686210044677423678937462439937280091482851426680132517832648292384708409685067497491321970719896316295431571805701487701469323337051795720942881238270199755732223265993488106331055568286165845527112996055634085783226550449049967292648685638194695062315101301695036164741861189430973202317037587516893434276514582876414456714632118954586273694344516654228400890008184486014716505031542231468957560416781798481306341143052572982393255538373660992107857581378330913653171780385245559475570764676475365550431859548395513355889155316959187151152097417813816902778434294643970710678297288984016035261109443640913503086770620493574015176246126055868671942548809199502708212029137868578874322771376524097778203293507042985003426795984558274249353060330437921197556760464051263992157807164294526473540430767512812796210181618097676548047499544041175859989563237046778899836417688067760044597197133185498154226066492297959660653933941247558767789378526281635291160707561685504967737198404490428559041990978111515502124809488380215492432218427198551744388546548927981640464212409841192424502630315366185070501784826219680526634982424036698976181074916748773283132330119618907519702523038164813029386690731945097744356011053309214400018812324149979024826512988274081558391050756255963376047528083807691505914579276314427548547067013512131340696285599876777157716022186390615106252046556633450165149327006612286059815860651985117932582137031022528594960796266102430657083373667409369239033367725942013806060671507444350906874212974292927746139806191188500393449557549262234646534369025563425408224495235719074395603319251927259253843015644017167362957559176878902823945619942456605304108577054386314807763415067580616993952692947958325139500070998580721940460185260723885109556523480790860514374930129223573749049108319940646153821550869387716072059785299777941737908286427405032894570379988983725187654530452173937294337240923350595862463144948637933460060395635337165605548786871041843822728408387117949466108359026048467440326532204668693252111248167479485899511479032980573041605030760519993288902902459353582569496636922901776518517855962428981804789349356368133289282767220839566885835324263280380582118803883893429596374339719252328764594974776951298828735427125949296647477829084760385850328587780933830480690130656918874254366855270372687463523973638491813556631993955763827566830730698358876447870697878497940232310803446935906934701634193580089476953485567025291390401390347332638384192756142780543065392902333840775097412388982409845778660478554349354788609798015947803504851183275353022493035131814331936456382546489315847864251369212421204809978680378690568912440091042196692655038685889436775282143032119364821870887020242202711273571585033491620228708778316699861317531823970168854575772014264720550678563161951861339212711533979785691205613507999964951752328601294792175213822572399609173267115884169098900682340847267565716420124088823154894517556930569870957954584783064710260572617397832933770017519306560045792359159254868887508985511395928164030735690014533764110134759052559560581975096355869992966029649411556455597550046573559263731726082626833052606896832035063464472368183703435695919169291729671356347167979437039587643152776806498893378678394196680140320464356529112467973170579334169020843654939030439810171463611074913956382956600525586128852309163670118230963920902942921795320925753328875387011376566751204350773238334605728605960343900053483798215220952099006086791337851183161312303109716584319507570484266824214363025933405869891550839573240357120682022164317094567895075972187519057317983058661718012932483593522035136015310850050474670330256324899493532763882577652165254071477931490836150592115635199904120834135658936438198107618923025614993550495966814724638930648033623987951421192622739910210992448431076010182785819196910038698625586599076358391297106474647443546630926260014809778218118199895510449123843166207028941821065694579667804051054002368789594161611759655737718001945899774646196342874898902195668156172035677574781890868524293029358334697757353251504292968218279252227170011156515600341935459063632971944441958305143760063480805799401093195813170833715329264932591041971226944936962068398002154466337649294534195810892397888669529101590996495555458266364280377512227627413867623860191321568727544975963448966158858210453749650202353752357592370973612084033568914892299992726696826835259283850939663403048811123294126480489522857030859445213892282451478566568827996264382753068776267745190032566781393274593565350237229814349406638932930726343760205866819995817678700839988286576859070044683983392888440570010135634424863177668049724028460116697760240153406006972465354490633036967949257069438502652491486603842881913759609689703255003103463363758673836758976881914336646488605221167703122346604695830254879871342880220156925017330479556234219619889874166097417736242526075119008236784358246716460799407657981271703778699224312880918641308508955080780481032377859068498773956928086252790021048589075305499789845198469282683296855817322027817585215648131450481122576703549920054802953193990289011350142843480692027767884409101343062042538664327343525416869913793209112334876935149018565010773764213001335878122011347218553088143523115430953351362156223490356756893056304223524413739453785176480214586980203887750048313232488546548721979516236945566153549659830363997550447356632627988703642478268711566426641466019365119596414858601336565705961327058622211182805494295810165002475532218534681706658268447821172763486354732721872608502540730550630746493499547051361957158184025483316095333938507851803986196534922490501077809995315746641769776390528342548138644623615053658083174039581339696013164968793454112620738721546624619740740488956914009225285784460379289510368640464744549860897575409032931119024736087410608358844318217640356014718513930043465626371475337854865189882847856923423672095152607037105332048778361717534924030501196300779599570591204233748600256581478235989564268147549212708912623463568943043014419408905944334363574462629296893347046268583212466289772101952599947196351468792107585159831534579577650488490738617058775530789569375816508859163440917085582839422004502514409108348392151603008823513031943613046121355697952887083538912459150200383546055025803216737599217237482309613490901044817759030501771292154428499303570954716300277862762035607923356138632237646559294759390598529994677862282040477885327995951015375143924009457322672316875837294816920676448287807174029671585107519150155925230135401055326961478382591197683089913441528499671258968517407214707105021176556718550546718794673628856315844430080260669244805578405407347989410638074747755173890959262830108243123039163994195841275385619440562564477798746268946881820780002397512018258571700121431004199855952184301818870484988214529321726621446002565978230337687219319848094921392547984785186084882030461305007908427904653520383227999577316613839435437431607707686765353041470597141103051083466866795238121348528388818999987555873029665843976453492000477472526459464529737499290971781211279160364290089169326877989914270808283785839264731637371070537611866898961385232144772860923959464381089508228099317624947213282211456736598295491723807347842683039701366347800021034195678858374258273896938856553000410847602427088953868103889534428551670725651629928793292616253099501902970116156958317678226261840638899437454576590405449725372434101855047553614790313061767943626452968397683229587220540467778332563546391187076164194076344494297379389245611824291127125949819636177277789930477845597095044748608597767692306970674354419954389225600118455053167091313337289087575267087966188903464876410630573246523919403974046252539723682931580191972609500202326914361791424751737874915470799664626519192550560183900316620115112596369529347412095583822175858281755251792423997364385081575898832878772421984887011694844735240539945898255113755184083779460180682472757262679305841887180883729958287925113765365345670459807321169536697820866071907346278132866679466914260782017425808396732819684434818392176901133555051843962052131332670377051978436589316530485204385027425960305266696869793683154675351400014703075911862049350599631543297386063570808899515348324412597919414596416838011399071441331887534752954379186946209951334926629887951864878092160801358803391760814340971654030600942928017759677317230908535172816628005894623923786323035952917868014964770222617200002708682501429253725707346863130301886561673874489797349072581469284891862360885858574802426945726115690419435273313726621369082836993163798831871857776040911132174936827409708288696553804862727665641862773581043294000809108218428664555405438191643849324867497288102291380062641180266817607999796185049307719328192237571439643454269051119420433827864052042083896583830914420101478820953837561136234412602235783456259822382465072352868485379368698516717937574055237237011838214042526988138981714651450925597600474064632629175808952015636803163893475804397481796526154789818243835619326547420426995791881671521121061779250814880257438072139783720614455792649658326317025451450164202204244965878650060741134480821750749914951298758041508217787866832031164628302744403834761281280039965504709342446720073208972810250791244345404483002223825430441118262023129562055464554938069041867171797110350568230968816511383382856724525620459102291574703236449537176303600933223359208257154541804012679336216784368776717768609201992015729917841875066299051396258074496937414636633850347975829406998464124392388076816351365268522301227381627993340025139663747579784012212939647663939379953390790715735613408822873949592653904901928242159658274559357466379487085849553329945207167915896510558864894359814950419391875465245044321819053562093897040152895286925205549533166069428345976765534979269636296903791866427543390985662780989815495693699691004204558675663339930764365576191714711115050444571715089635602595090585577881163613190134945700009143628161754330867367906541415245683065950273388562958995126219672565082835882858490602794627325704204715396541360726796982169640086331042017506385791920959816349363595057285535810935392824301469835790843927712585114778315725287923198517953902916934105119071713890556980690546299101090318303072604774121048727263552478079894399051102816515053618348652054854160985009539685633747542493758843330294356305572812465844030263059217957835901962465410699571863487157754053597184469971778973204272460782645101520671315213828582161337094552442396304827421104677188632747622099178033837198523856764360769401489494960038508173116203424144877987472654739160866696530717048834390206367482029666089724886607241875174943955175116576185603785524801801367500955079440277779740000161798069503241657074542304885787310891113360093367832354361851260402344447986890484320142274604328431351912554589308588616235277243845909506572488604223437934059524042116574709836962882824800568927587445115786755502680412011867042308919986281795794914494266080571238552647948792404027002494978785048055838131208478556885100988475680829723264330550135129515082056317531054835361291029541225985412561965792058258558480015720502305149733569012525215943746792177780715678632703661815994905310804894954577566094536567189940260733106547791798794896447607700252392345839329566318629047211077620801636822556345371882679893065339388527526432073422194318662332030463080328964518174292164395410503888170728759344689043026098589572158112660396922378829726408485059805475363363613785054196289093302599995716548437326992835065063481189071818092765137921085200207589598432944089264493243587824470196097655287812218786871779729119862662734244205770003752332750202362133004980447509027610954549157531849182962348752081516965243755448791462952875676993018985012112056754184169063111260337177035923206662359378612156747802952959879825977531079802893293281394568511368240492242603770496060938900637016841826963861118481949176528384414835322757734273789553491086798599987443402176877541450946544675026359376110334400061976310747083167013007389762779525398441473865580342150433398523094910559833130892433839988204225336393191089503437365821618897169970992038975308607973091569761840971656003716877743894587826856434481850147965909336519992216708065598657135736728247412771172484972461539718914890001507199680583825752785668069896696895048603943581296592419851144930314325949595547890661730399181058263762196096054130423918488705751289233899815140239324348316288201881450208632604911992204966899456753929451586470781286718080263520457764078497012822803094636135034711764545736972344421813251157230562886066072874852996881154070206980932738745672978021351600430570978635200926949137651860253190418859304253122952401284639029605277209339481872973303729701805902704100002751406531796782934599127671200511690098152034415423394420666407966400799026215222452412283811231581900492813173804792610418104862137845055485836128489903573609049044658829844682091859552851030450749888359026923075725997920099443763316919012561613432878140180118906402316055584537572992296421010399915730468625704699802383848667586269274341355996740236010906257644373096230724209563391095960724942552510400763703338142105812794668799350077572180798319658199431519405587786367732509051091803927791416273119363711280263555324074433404790062879571347024913840493293335878329890594961845688812489056955269777736476207582397384171830215840690051283952885903210623841028991473779469695760315135609545113786389299009941222075038081485403817625566947210546081185389934927569643605423273525971233222695940923864187913965085421564193104580886869135224619685083815010410532390611636084756182348780767430152756383339393153798316223213310403440799508945156594099850104689083353340993793735459826911819703451339128843847734283951079800555133075231478183565093453823437066164544948906295021780523197750678485516115026794295377040972797855492600303618144891232320608763471761550174146378500673945001246077491088068694264766775670730605409364996580339768703314060908964856174565766473359586430143407856828778318900565518218225912164529314067833073801192032520676913051159945989735277134376524492494104774054128566330212968356135201747688686078164370818681779461814966487245128389767361549586500885758998364613620257880389701201474870694910890006142015078645578897258172646607778954867333377223442446090028757929168286863224577329393069624513656530488369801236817024026260219831050730067165389603213528332396929581363616154928701989906442236324345748255680506026309982279537564705209843254447152005515679699033695492565124685787364479422735495676522182690041277547752970183783516221444651155029294356234641879170566595269299420529892982363526574639833328032256223214487614241627715077996900417718462731372960110238906997140654412392681125227614317670678336515761322457780978383679237126748277685710537863647151837584617871145297182407459954336271158719620187963319374289382214293579593794939951286341367603759457572804374776798314705950872090866116516307134595778975209544205386308755753420631449818653699764902614302617241022947961057586503586749615814101412143921247378244391007780100405493622423962208591812141266557305273529583176739652731470766140682825758815848237841348300590836447793479412527750642122636380194297880125403124569262062704449034947227214150563738898790150766099199852339901972494372555358666414135866055347039055668154160118673304803186533366616411759330738391927024308634528184684105341416892248454985431636478709104860194024902766730523175478601631473844662523348974612450984603038561004381483815246306363863993425206470951006193497625397385027284991056893954689340255436635042973784169981705001733850674014854454962073289820766179806119688740384285546919018427140516730808227529530483561428037577954231268942114943358848868258628345066892644087859422202082795649534774212191112695088556670932652340175252628105344971270928361920128785380247802699516351438024565906098051524784688083538140778598185346609457751944912397371715276196510877423772901819735109164104618534134084102378861945566706595901359211525811670322923332288267952837435911572778763581676271318612801481974653835764403468431043058817550181550273436403264092321724195919895219056795186791645281568420727056634913343129993379962615592687924640433337787215605595178715773216762876550589877311153707956538385693389569984936484571743514346746105039096487389498384526434136247681805528494480383194419553890460417005326234872825581326775669519270774176112725956555657847905979576763087910755082002774851614671471660817383516702268555794921790955939904246742638443550500166739462071188360883237934932821761802231018693250808345226647585798342518972076991804028812154273006557906643231260109670123197284498795419953524209898055798017868736242831984763375140604328162383861944351115840970561610402870354201285807046126169107621176466936426591282744022743049810268567701457686719684534369156324523096915692407606281350064898851626027584783174775597108822067275376422237488621936004689721261096800970754425327556212857152423651491168810995701651310813046009130107042908708381433315093138315133958724512740705323169525551427586664783706995890090020132366563353567392525281987525531830244267194437888477716097632762395608516266614137992027964613163454829830154361799042141518390851284767160608995669742049441555290409126756634670287730637572733875930809847118832836338538744772949333369127650281948691030509852753980642874854862216679059933338489418281504196972925163237447583976159718531235156508048995154556887633648706657274013118304179469746034662326836929785123150912398849315414902209281043800181248327502498786086387859780587185698062434862533784458197620994556120920201487774930617114982922729284624498271660554615402850278436565078315974902577231838659936866058859921303087663757140481347831665384086984332831264210830588321539242787623277636718332597229810928974405508315259780870743674537598769440983040286449218773230108480233263776521025476709881814764200653145199869604750296481776177253735283436925014304702020270236960294606870228575405813011978912868283717904204469110329056191847623473548890990647691641121061371245970551812744015930797976552880681840585318157892802169375996769175451684462693623996969568955225206998332662421998233121402971941525632275810096481181896626385818363853158407945471408370133282897064535099141445801479852594032190596614870661664567408184039188513976921694658949292813767998871596739897693885901069350572836584596076202071704616215261768783981383037917532554575568925548146220214762710227138674091636291390423998396205859771728386261342934052667124924787204713595991211643659269903601679744440063313052375077063334978705399841456449881342042885426473457469498245297507311162333406727312318078362005270855945685189540165522540134432357935003634462489225260420620550430307517727573571223802123892287175541103642377464377877643799446866269379080638621731361537422306345724078856842471419856894491863317926597686666350591807629200729452641721499831146915322974287709043411510929072944656224130219090842542293284802611623375154045874414387943350923166481886186649561994255658002438474482736654353895412824988590765975630475291900130516122041936713647118602055090083206190911011561940744158529054583145869911885958602465816292896865734076972154544203208493320471884568863207518036022170487501059395489435903387545415482304368158309089247220507068498864140008682415535783218784082319408079936714564606033550577661454266753214893994293972707443989462165059622431500767753099402466653572501428373261002519299468261261314969700696617143474600214215550483649482880484391915497996050675180222212495369125420065272923560370976014438940166000561011335841858655936615900817439498246087691327445964783304394227237067165318806550842587298352631337964064784493064407373100365174935443909634528421889237847385654201841652995260162722958239338806417119825993514935148914754085268837682710176185653295885964190182903351013405328537028276230181082153606723603969680132013394959527374769401551473000017824304742655513999072790226166281773716034689106574541339731349992642071580279042541984841739071792462527831091609479503987987935613754828719410205357740188207059634795354981414888185648084402404534571426810696906123659480681871665403181386117580425162061461400469344457911953277082021316137227357544664741635499929430991344175477505667563585931570227814725929625036329298572696687685908645441425646132590477665965257309100570532241561215697996860709800131157729009160195942913586143797290579022005253623480762571633244099168770161903818382358737082944286094018651574276186951937287491916311765036167463907843716967504509272865045560535798598027978245358226914649773562899095966613414049914784042476781629136369559955607704850656301756356538126244400715644844695057834828895945345451562262037533854190147685859851485262416308724311671992252987005284250107257237367070750908183576573261896139079851264865687355977710148973554820533410160145694858655620320652355250625489851324327256009172050993463854415038381619625445846317615895849716647671957066558294209749676203215609288368743721210659665786546700543485613552629607031091137695917961404130925132105041626082897579539948886861417176190513300389138508236920919448808262260047307105213070260618869475761884564143463245528788357142425559040797172175147845343165282967221216924408220457198444421634907526922177215675868080986185759431096715913926891265153524889181999134462517653311807556692530192387770013623686725931517603959393737521602538949396498795147301375653186955734651113882115377748441778235290609061574108801742707321037675911879474976262988437131089549620746565538204982422724365941225391735886648760684901484240277529175185297020955583403029439272232825491715247509554678947580328652543262043253436834078720721691165895633379894469465839193959207131354894643509591971340491672032430148866928566963016600097419088506050681150199822229089504952559085903679475963829834210541640878173322210429844039456769595609726340855744361984573209100387492914276757506004685990827365686878945408912133319920180677493762790641024119907773374073761765925177922190935593837545486499996530359688725396163328195226842790379751043143311948253595047226681929549607161134249402003985373529506485283157283182344048501596642202005656428099345497432451427540111965114608988914025423581283013205517726149683323185566998353328601581085491474368717041869462018471314665414636565732715489714928556592213652847822836503600379811526010200072441041360919021677721014936792782069593833995764616509983447266415160648879419966819934121094854412099995116815000025996713982438797072468158599945995374858487088827922877897917110130774905954188946525772394480145019696049775559476304245792035784360612666655489578695516574119155439213306481912276371066499935899164124475548550129724798137681003422636949134291765616569927870476192239678465391705319563474126690958868807951290389001846867392121313527608267022304551038731958848797814163655166046043155733596385459450261599959682016091296555466874015855308464563885660378842657413003155895000514021881897929137538110689908574513258254713438006417314089332368844494876708670049640738502276148109037847861979119264216739034624354645954671862971191109732228898765966379673463017866129393196879812803158989939875916504107060155326939218115169898750772697912775612401052323185936065418108257192876749202942262849283020392753673778540416468829104678574523113958772143950852581734991780535755589109532357718536263878620442417248350291216493447159384228430346188300216347759230844808224778014327330139257091658584753281238852442790724521063713518945255176626471829365562933015467520779534842581298173531226138309456251636905560134058157260484509320008509911570902908254163781116266599230863331786469276554379278608126368942314943825080600791400109087171496293652208650931023429012957085645937559203165439790310607562285382129705170280964713400335886150257102551136606411204482093641562557810827133015072341164211396246014597930107894129093288761694918827180278103961006119501078524452032662338356879090607344470669207254390661023871007380979193866590461950103670466747054873457715626235806871665696475679018349954538184522943725701705184460732395000268781847384377250754367227729291791261205012492326392733688393662275415464964321216633946351699780469937045698682817142193506162557264878896862895199135558009884576296803830534497549443043588398867518189192288012069444841036731522658110022464509789348648619964039801372451906918743056816388747660636948276153582500943962641288032939412644402102070487597622114327521904384746369605508560693460312072492782941756676838044335570846130031236560005935010997882745961522363981117665569339006380698445337672463615189787623781356286186824938032727910945905755524572859284324439331647234891259937721938740393319393055453132534213983707668317807564508062938314296157297862872561373824989999981483258318199490505472111133364544335455436536068158810242159497987842691027895463436714914334044898486298200890367169380724689408858166455868447664881655029401353416628912488094868280178738503231743418816472087394842404332368460408911866898433707965644637852436388662909091066742120338124887015381974224385756379678519427317349482576705763863226140366255555027969780614555273426819932461068584550392581997282445293432510166673803121599385799511614622169120941861813265603131392236144161161632177237616215266996013278330611185144876322850634385913492717876245564022805731117153980827905028379683408031495499725107273950372900834748475650684116414919843995423847686317728705207493033767786943955792709233131398349988262474854721097183121974225894625418170937743358924597547158590408231984805657307466102261800297076786593473395174909852669133985525042594072738237237458420571682633236677211440578124828030263498125061120452283715644473670889052809707018523667924455320522878174480620602847802118857246164907484346902509498115963488261929034473385068839642107965664402428417099738362114339169722764745420536430730432507512834371280001665880967939400706387742738451345716407535817090328629364878332050410617927870246583163632101311945734141827644989850478671953537695016338962614992159950978976944430689424172730556003647155912307039178709650393112982507241863066427391783686892273468100928526828181557420778363027028885144991238042972293915397404656310989474145477817163197579278313974686115372394048678055458061773895900546561335580779795884735717223343966163205118517904498033336645513184033003962992098747825190332312659732199168183115209300990183779946738341805880611465104722042724089516954104773175702117262566931667309999750399209180492952456211206151216346413291848032377310770821165503022752801038276537641232491800125706044233201609087642716026245566386426720770101077978712084705154884455104020882016793208962258854452872658955889215201209226949936500951176004385711491054939788372738358513333287805716567380236091364592116548325508296037008099785847701612574195867562120143768056318940347155996474950399430226046191284559838477381305589367716572796327808653371418691219474003907605687716283440354618189902096801914544377365445594923616396821736210164708907421797362435795944665538695337617680821031867664044744907782520411097149841177004615347754266596242021738293438080273325301085522456649130209078999562194747818914039026210867723004764023389062816762221860106281385224112915315660506711799856053807358044165512573175038499067879543235748426020863586225361889614819760312354168327668120803627463531872514132042026741444336877797712036566026805844181648851231643519202506496233437057523329364279597712641799029974630224607709636002761859325323599927001043185954258453455863723459308952631750640328410249310929301920325726879431075027995161662424569824310164401040515674293762924074160555828197055314058783377465205906541331028630890573733465848264095201739156211650356429819135033787379416885076902689183674153301361850613000291395670328842795448292658508672956175280739067663209889265352947625718849974861533048156957677757552928707082869798593273148271029428040004533818341194268526553504514170545484382421027846690178095842842210555459982957898715764941097144135224059372915780502552768973184922234717672176741774352994550303263157062673389458222145660667389403970470557712804997678424929590468564975415329365562668015640985446142465144891177286150509943456217417034496338840698653822855233857871367999905836356875288259335281730599321779510347543046213999330597579671291183542715071526500749934941839593534650546789663710911710634150518382651243734036682922457864764155747998753000171509719984800113005637763740907718166844956560252019899772210845432739081584674415084085903990719188089342116214997287115035583744403261340307118016793063487364830303430934439018622763884820124769398409712253472424663690946408352473606388096633541504664957950178904468473581073194118957522493983992593459709548042906542840011880474901648530355949361873639588935435992998826115870700793815590855748407877003360060280842524846311204673739765607852129106109177169608414759503943998427308176583250772142487149640039777154701243686916300223129521711811141332061768300219957999577397749889525140860515330337580859702669106179633061920022785118780391246850360473014930364701028095415593045028054419162571107977294012404844512065367240008748887916128511493569111394944027133326475538401785863858023523138551931204447340731958331101963863576928041687136349615756487406982384049652135635421447800104596265008217880694949000541441907797692708062667823081126222359680016042158016557159246469440481686194022040776017774704739474343759346283979292499666199649622800288274989040617538073571350413122998537260268249101781879547962982960808449208613688205589401843413257418075041173309393945353670698358849898167515089240107456653889190729168639233969228769505647621288723116388520048245850025620182470214446064942060221092072700939399743992696603451365721708837907012456067564670144264619878484695642103054199909927997029362410342089248327703006046608305205442896946848837649069020707678640677741335461322682854712943199537923692637771504203402773536601423173042200369148878244070682248286203819261059267590859903961329960595013746750925818194934824072875039900815404979762670678845039863735926314273593360655892896017406251549676684115313866098010830399384601427578848790328859095762661375530664724294840653498444530565404174077772349123779854190642427022117614782887292937044828630721630146952914261709458066849455709128631111962508395875669078346159491958627597195382910828572407847047290158923563460224712829272355424203333956277326266529468717083432076418650193010479277441268630911931482234867144071941295580928307306138034336836271818108132047139504519165404155724755610796553993379653735587524827202129417962690581258345920920252975407856801697667799058425377417576038755171329633114100740708689045664053168140227305817976206675374371419656141126207070670446628255500382459665568362332000601921237356042178777604488964389826340974920595696079140384700178990524614263051703595199794205900849191884201532387204412826484125943765374286698198269387499141724319928505986207650240128584524866652801050602101916067994342092450665606320007371382491126718007547733192984625815861455796193036104227774722544275155951162076644537486681903389628145341464518052678604324305727610399636019391150038733126187685507866346826099414262521524202458927360717346200230598645950622762444741493382363582102776605382914364138390096359929110223442241094962093081313916922115178033268527249898482073556881312610905921074187942355183569728976983111921765775983745726947664222132894063838964998693472362770068525486796589285475609399279536915780043913245424903722831546858154489297251490965572137276836697157727758335109383990731979099324732952532093194275156389709877860055094980699533725662055117679122364440196495753121775819938931647960843316141649412627673039082128126501608039659945986462956060417585241252392211882350364349906282575433710487700292085631075024578834734509586348265032831474080889672254044270021131718569277647941265733513846787439453169659445095805648838567759828418369323188788064346101157348222986281838547104321557747558260704401930581171544700627453704521436947243295413794437277857357952673806836430404240855429347733721980059867852845615635099957264250692900850070728422926017612872541759877701527959770941469495920410652497746532979773499380879104815257231906945664016881285830678174427045201417301403665976302093502579791144354312561136415739356027566717681710237469032105009496362736950313657116548921810487784127155482737591588784785038511990700454732133007853178408072917833220392177057675556900777037410774774351280289560177194241517165493135056547900805532227398814329925976385409698200696253102206285434223591517824882572279898610962687808841904770944492387192949820358670009787971740908367497995735318697711239988555781400089183039063948283600293456847195067412279398674590614022105257310458454710119684085283865442703950851209921328570045754266046161571667984160871312360774708603128775883117723855849027747994954824112843949099100115760135003748157390427415970500437667021449974960508494536159224910838390847295394328543704627639706141847977528884607862777659923163475548431337838132496776978138539606075077021985903568836024351379370892225749085688870881119042491523957513133115250329676673086222016875581767369877040052000193776903488165846054166358533504425211334287603385171304660900476183971317237244991043479897938725646149105661241822378516350727947468594409861075282963799258977469359832953964262510476233468086438508020271678262408386232089797157603931130551629601371528703541447410562351474903533817583630155232244207758421576999931546047294408269877189687306074591248794854891813497253149123233303311570989639030500058004088787536424109065395427309908477674373446362009139135427353561644745084508558397957248441984694982438086549862798674027141389819074705024062105060628864785770794098042025045873502733817780803762324045784923336948812740818593327998277197248036335438909087082292944621304579248338745622659368548372719485031294984819976742283967740449585465109320217648218064879434301214323868925530035180139845979566512212362111860508356545597168028270991274275075735292796920695097628622474171888812833438506996374981290383527836394734158261579023335675881116206864823898750684821588485071545416800746467132130081399897059042691791160453161191477110175021764911132452852552865755434076565516306949032667062140470901280719547487176664292934280397883753807421221598141219836214503781934689798191498803043698598892098492152321243398892223421723554559955189317700980063532791494215532951626935915044254198275531976093724928022477400334676343094462271843692431895504128605328618622768456084691063099174341181148406096693502836266736176772711883345586551369263438436983254610917980958255721613202960478100523182395666742727110395800283981348093428979402785605506301258196120214309776850385596387825914898352130601840024703004129255181996558126419856468208401737976744484907001091133382949709381075237527033158024042391453432080921554968696167868539649401866284481602306040102634173778063789742521682796630374580967192216034599455015593100238864650301300422982019035270457760899931217685918502030666873591206540349063577689078023187865386878068939044445909807978587549301598803084198633111849152413150272183727833825005426536358810989892830719662655238304879149663766214895097788607767918570097658213196290234801746716569261623362650841405892378252424827481904587333784793636165266860770945811175077029522686626127712448780598744087888062130088534183200996571694127482778745766325076734048281427360899574076075834078707471561596988309984161558303686102836083805093719014525504258205556773985998756570968187095450168696036627527444120600992198534633517001124817175807976940629324731998512962463090503179995827181230401975226305107084231913393994150710167348330227570309914708117257551954771148714258726814385306612696252084937546496550444925823740800975237006979574338883865835874636394504157420982092574061793225018964829708844964976955470669917790246269827533633266365148976881609442295391342494381450924148956933118445425313410415275552951093097743278569038932696629380647798700427917782513342073885505485917573323265554290381673628734316513336936287388616680785575475977662348667230870586149952914077505293044548094136840510291957839712012271615474466309278705142154067033829576295011869244713096893141959828408942343236552918664413505809953798397783606880103101751378712027092948374463628324445581692747691962079587442186554907122095847797226362155801938794470287446886884889844033689324652396620747440031194970309221640037266432893113394265433633469136946961861424666968661662536841728388945762622361827538697229136590565330958590106767697102941432503117042475729241555979956653485210536185657148370732008961473944978536236989284689277105288659235694845450590082829767917281137032850817836105751612112403822165141938541389013055894196296240350413024013625864984824755591892376605600446855207013021952045236026987712835396583933695817131437966046816494204971519222678022953126129936331449413023259709699178249870804859220964316393253450544558398466310148099972929269443040518676962598822078745693631091617463254324620251618189893230819141718114005604762504603671262057395489462266060595217995642796667805052217868618324959864907490065443350042367111120347892195380210992536103222613160599861543438535692076468137940635354259875899214397849487977932050406123493378757197823393117308810166043820584496001926365954534386564050551199955214472222959170972468500462733014028354417228528104610236954595585346068590998155232305208967692566917169693752601905518985075668096828523108257392208307831561413734529459580484827795493496668840849210556860763801186125707022985536636446786808967577810747708817759936830245838673305487004539152568066994036718131204979902810650677657006379281131618083827271055440794053153466170382462551938316151325409978494317805171247320134858918830750647397712624621324038620030101658713566531792337376589346620324228405262000447112404290701180207311919041795808628073176287244334857553356701498174581527111129393743962815290777393380115028089949093830389961547483489515893377805698711521191492879114851126735370734854551969336311807227230862095650852143981055355043772602238333233223248436792176254345502699948338025636452047879485899711783113195811787605219725019400532726271597181026233222784595569981532542556443818490498732794687680441950298915742246856791949321950175675977120813279665211526930566753454730437462155640538170515556379526629737799132360126830758765668707465979905715874403249441172420021524901011989790437520828677610369830768735631161868344007168053647332228115802633396928922621015666052805155058371841985186257272611263412994118306756576935522623478536007793985600957505447424065922771506801129852479737576744893091468663050046907645756134078702418740399559055420968473294339059138479925610088752771047975511179223214559726029019452070327354824871868414684482234039885482877862878526760781683463134431813044377139626782840164768340972924439484765482420757500368725163191902270582864982005804345352368668334420362056666414809053912330071912411984088871571051070058998126553107750219175774414865573112187850306691856428978257401721820706306361172961901079510167498415204856527825073583208839991387317271135097034302653074963336312460480021292880613553139671907662170178872346306743744390974920801384603602299570548023952275865978850811417440445025872675946722915596389147810964227086336744826078794270711830210894145755035654959109849110625292369124956082377951529157176140906879648662555202966534403388813799612811341302897667626802056581721210212482788986877954293411450133632412519011484494573828228057233926144073777079324177300566187648188792739467608681560516343083767260756913707772800947932450933481757802984623303315443170386807123714690342995298789126887965014674628999782425039473171531802269681128590217763725131361360797017387596130550164070544532481466965053589095211238256022195430289116966154021310183153760551121856639009882190594582786378871928228908951447002729523332656846745740132131235485070754172795900073632073559307341746347226702751600827202284620136588100981185666808897899088086976315092920851903186067043735111756491027676018882976797814598453602103986619392104688910194635001281422463182143004691079683542675291130803683388185306414946807282142397757383008582161709727600477491851989091065218779285237285674327806233674869989397359592019883363019808727920168044223187280266839131941304947586667244436704874001104096746269087919576929486798618232220407445362455067646586032082323860333500603805208777455578714298293177150140945315388135415820971468474924707725807643333823612642047745409973371229624689730197217735200516601205017438842558686092015322368477777196833647543913199103084690738337394441987906634602604720156332618532481713488945148210472249835035468582399187753272416243886918588883637189138692306728590637355330189736707436018829227184916973228452523423874448825301236841130743804671518048611232841211660588949768588223552607463109795329399848743482184470583615819978184393849415956893696606854450911651658993167141045004388053241636871438544004396224117428330725498626334577694327579001185900649931109851459598742739099933688388595667748165559683249340220318054868431426510996216491034174328617635086975827806323727645040016559157902541823540756213728528445839658741793830463708218747581830511413402519779662646355471575573449950798495087270663659681876230131640401037435537698002216447706635562757434199409838233487476480637509352432381674367031218796808490432501465409230951633417569128481256574245029463834926537113453968350383801415309514685057352245094520847069256146474269658786458435185026527091652129654307552532792763085828442875910346727994824976380266604213150454137548416247363971219960424299419834557026857683810970447448802572865273386723383076490386838929037129789559254936493001067249107475449978575306810184666492346615956206851282218012840204112305959237182426582522624292262910746458921407684569337725563092981381700587266518544593436558962735040547472773585308033382197707749294695328014795248342498506738007300730276735299490938265688475873575700340629912721885857825707332803910974648683657288542453098667339256298604961668475397909209333474107919487450178903863327996015024544246703045893581175699950446181052348249934665681356134173515473104813168194053312155852592503910462863069888906600253451633236969879967986421725915939583627468242691026065042811388174104245248608620741976292979278893267109748257081033055412072690857390370226197809357538323894186837535647660771260086441822733762326261534781150913558985547092995819467544196351121949191567128773220392047418836041091256779186386216352265579871986005863298216528707954308668623272409671167308526011688154867606618101009180054015503262881391713044040603334254520130891659445769905440133234046044596775969659810499166117000039396827060929930072006813770588343254228179062890801256521018190556100155077507879454458646066334247746442106005073370693825986923229953091340822391717487275923992073117647241859695886711166389813386790194618579112503086562532948967732521497338176348610281272950719568408953034206166022145973626565077002072348963925953125593136104226529767992104420163124213218667756678145558111969633002223776064238860456566265803564605414398974069924291656627148344024729797624087021678828297597398724741771822554263557384955522180714856492184154720224755173302253714893266885202404294281383778059058662011182427921474120869177425032820249938916218099930777696208675074287389459514066230383959815486356368336271678454020932408707901878921557634053060394520179538099996862092439225879073029942235085892899235632381666873836328351644652809942628616702210244458358409586271771706137395887458180110261040864525725524420380232437809487356423291213459036853836413449560908645840233435831102162340482718248278653172182855015526440840021407812033296271369669136271473854458016307645794376805669315413953793353407781435200335851216508519194519232542997791972427392643909397048946862542257961894167348503736381120967967559043973944526106470510560683863748061461032448654141716505269838050627468744142681073924927534795151933140713054233782898212317210418007428788296906128878133077092925763371726556227252727367327783285542614355357619900634410979961775931226664518609334406236778879090985325204580634964024192448464834589847526795179960804766595872967266891192717693385604642734194233066806157658233393903131469880561426515443151305875487825104915069144774264027326992643025750875922436684413676610314312270861835959415655341809741343562843596879523956344288395783427538633145040716825859760550757039740571242501815204338813240895141781596733116704728511863485770325685950098628629984944891772636466694755185461397780215075781770507006612504816360839615963991406945183460111990525167679808689873949476475087475221805833960493362783478853886007058845604249103135757914911850082173371856490442434457701335237298844163395409944303980509382905623448673273804116061582821151862538545611585509499739488783890384591191374726575786797796821507835768127600443533487443274163553507094247464920816061797130308332822162541134189354343395581296472326118160565946512135675632610164808482335310148157516955191916154983134805825334676354383200815422109528328788307070387626327649375110980272903110302007230379113122696470673031267437810398921685400070940501676920019787615949931226381977283943006405861581746407953653872077612224424366163689968737464014179619775706955903871411634959241707840227950515296318617032695929009218757008053802711854734287379084240990954915348974793553796968989301595980369295380729718026010365975348259688155065506373127329855526763344473118620403374944308822979161844665522117565386851239671363820334873628686861686078578995499946104920905120867362247263530714484032455592297727882823302529260638217202545831275229323596914669820408296550567045862695217101196429395035832623990359832447442119320242291143334899921287786077115738776056232111155177139987871582507893944070545843022632427208652045456986758726335951648127171355217864253580378014832389296410884799344703399917002966464751195828561521986473768404268340824301464664739439272601291269771703458325882974113341489048236558792690438645911269470920482797898189754533473994471543808884050664786089523094554143906828776463194893425829515850791918675225166473921299884107928607838343092728557539721962833450078144916294310210948953012127753414642443207283831019420421598140100456239497724893613089716562448191679816382032894714003488940909092153333175949500297492514693449743047503521752455721199487592295355653533189296873522869471753496809516310840231279298139556664603473006874587546019007675408028725433159769348509037678066617255268452958992907359594383755765934850781761511570297585118623922636585744928331739044434024301776289079353073348057482149329921074447483101140656179223273847411336715496681793363453655932870733061532117601417698290501567388474334884497478227668866877413866017396154123759550261540915890579611594970467750166323527696535558168952647975105478187696234537433836755701521780135315248312379267133820788859106279160303817879232044801320138128634808798677573631773177616469696891518467413117175596553914625646495994939786960304607296364983894363867558604348351353724924369066178344579199940978647002035470121491659734959667392451473080167306344350454271438041083974549726979211168160281318376809945117871793434577590645854761553795217561021367876245685191815378941493684325634560380632306618654309453399984851250659446511361497354143339642657382910534885701335680572078554378630542397272202073793834448863414026792073954162121654556535389800101195798202364993270880741543834575962410078481543098014109616884911565120102620712455617013415652516264824501854638397671452189227802606369298378322176592110409112112590071164154889422249466169379117515547151337801525652713404987393106682043309485940354478875739734283271172604781820113576456875904709895033052694854420241237090837918169822880810022887231793343052704991760922352193380311741562094262254953204536708661587455247493370231109631444981587441770632845619608373611131487453868857239349158982248466206223775452302812847384492886989690007519567838584888821147967296448666639384388544792035639374222033739082904799753692086826837591648887102844854946211503476168511610481659278776275281336239860759158693686477946823331479176727121652417269261659437616948870391968317360164470166388048638823139114710223933646412368870520334464779356050759846789463982340681300893190651060465619569015328382923570617683036837272320606904141011102740761503629328686803094271615650917188887048132911362312346229813460586459283044486870299997921570758321370518183105652374914004268953067406282736744294249610196134968332773054082052422106235683642912821326094019800513511665030451462449354176721605558521197376485250913549636449360639130240376544888613632759605830859802849855365202260187743847102711990350235820523406752447948327144961001193610244997031137859264522370621133938663749409200609874437649246803756191558532952313815166510678386239070044540307669536756572846683852144965484312507224404515585861457306857058046435062764579297421737475789126111673913862964704962841088803178764312481109807651046821726842531666744561252400383831802325785819167372076724052546511808651613572700928054310315862761758940314786807783596674360953488167841394024425807803660529253033258203805243566806926970231693581717951623526649111380907677385059662912925939708718804233397396737471385163613210249344810844535762541328268138390437991577257170892548262332889400050680155860390683822777931636865254609292071268813321421375493349234490886428577619184089834783616421192921053334192271429322357249517576438694066875208464415699523253842755658128875999693809305513178686190048690794390363352273518453151597046952379626738677417009941614317031365746488577898672429232070512288281387660081484704236369264012206042070451012752850631721763572169512413064951906502983436169319102463282711466034777515893031749127957365146088457388181469434984319520037754720988370789152162582768282950574445711896750079657586113426094793992090255241683639926152658374567829911704958908105893999504596930677473075034886543264589409142292452092737027283145929390972025390262009513613903186258580825342324938500865799535896028061630184928162990341857364333964267381909519964855358580952107695283623370263909215236455052044384207018964606703827710598974723890228817104891455313055055746991862217793073020503379089280281325822695949311783440839622432195306707182081969537495084152751372942208101246340703025723503714431354532537089164727093389966771663768445236524445940837495715833908687814446583474505515960322931557643312675977221076389070696493050917285741675820808909766757701332419807139499010282786055351654875401533184182570999315301895487439770963958896353706153408809371538316936371379737096229958067327326801504933425405072850240129205163592277465190000701470437597093044122374979805342471005115544389262883551211900158775297820648484884498241587552025920344750649762540819257181669631779346537979435898484013006304025363625057033054144648291835249771160049330889956905201402311685657848754603372502975714909720951361600711839104136439421197330638878999524417256002996365483109380872222271139553437058647279576284845874851695011176695230055302692600612864083794884691862966475374709585265663978556958186041997710336717238190695233212925190008940145557957484637764632119458975512660210054210462342163861918032816867279180154092473458101010806172615640646445814982470646073474336941466812327704102163980896132236439240123963771852872870869875920135882708282539653539080253782351450900649881456508455027116534715523043798334745948716845760568153972574392646046133941673853758629305999886241851924015339607278171611975959955113913102873450309236198485658572586116232144165634822805450653488530852792761217393249243357583457694536602584899697849976864935859320996944057649744550700025904204598973157413959981247243261481488104240953779181941938274786968708334519723004987251800136528870582773528286705973478905930586113980144079232929063374895838265905418117422982493701406699533349841864916119537356186476299728538100737790106031194530719876890556078634476731575106872470442633016086740506959687627470255130996491693013180478425307962961639082857502396749845631873577570287366568927944466746759409178563808676059185412085276070859035793542571352518079613373016652292793265690689962823143017637707576391881431157273104350142925496411368768019569150414252894431408057335098858899963995186890230461053077279120684019481783461345462266159335517196582611851771091233532614746698696154123710566318432262829063263160053767170102902707202514485484524140144650613273452454510119635442553784056069438066333306194801961635755735140340753469998725248330051948344170903332424032294228413967243762759006077535196328293246470694737315590947251731676637617052928762545687879582855636866924356766357639002155153462838249937932163790681218675115055484032168997354559288780879471987312511133788377683539524154498235887434563319248021380751699536897509552083150557593534586281622503198619377134638564888962941997066359800327687694670626043091100219994193280753055749782825701845519713342147269583449312524800911941479181986788943822777669738874279989755032054563997333094649246253039874799847161604529174089661327094065360170054619228193617669050905181773226572533839028830864814281734892175476939827520514132796052560402481256805043436788617399415957492949743055081544350969124779593642150528364183497791724852607794407240222538999274659811125803348575400095269195397900240123278106786821539568210628957144629434399653211048940824007051354632496692173088379239738323062310746166398023627680943806950368730433465256199920801315477591378411994240963929278672049606563002351573076161384180219435840244112912778048843873022363836512755490265317503783301156093735005888919283356099417232007532574734018238755262778848416634043644010659968168667088255955383200496500016257753426420113546336489143305397152827889588633795151400757141281420222680091208823507787659065997373542931490123087514736467513162770563579078989272427740286362990300163492429687495976675150322507337914363379375215524737567535254954628434069844792952792294345071199968454842086093711941152926917360592945741458975605939346049242256690755321134445906254000738028112940852740209796588819133413198407460660514612345977305755701711089447174028249664774718406161177569645281292503854057994614515572977169741586713549756471741809288866712653233448648546095792615895738576753453592235069596366944355851251891450243815941114354609260478937241183834436291240536450040136969480990478863084995098249593098813117442719752045233708735849446660432567275033690913195546045673282186322157869144421441148866554363267659205065012000427857478628385018779700868829368455224398956279142686937545573088089875692515714638869241666377331554173320557346884791180935013384925725300134712655250737683447402271237247805267780294009007966153365102447980556971219120699625298656329008257957854698507602365830216040353513579846062689285161620455659875284858223238456738410225158069376257996775053070490811877662045053888210821562539569148151844463600793299501650144814736081227324057755524376031358235843881832522841849517980548568769444503601545907729365496361037981568216129210085199711671233290837507417968771651489804111188801010363931345090460365667672843759925962580025604949492369243730652060730855972865838141792215607853922894504690053806727904440463652044031689591920978733638128597648269157528870818320588550024345089245005310652875729056655541988113964865306787023430995955922183841130741616265299559792394633743234376340188651001221032066333296655184636073420782423412589007847296013949488355701747752636633221096583252568837966953638493028188474251442156487812949048865198991248363241857940484794649489963771104087737165081215714222909319531710007530865239162340218593940125156724317479390835117106328822975449764457904422767217510607159715987382176908580158741678002205031507810689813556633850702891500669856916838179532510672909384063381518952000569762057817759188498015568503651166641853851464625627383650497231523430822095500835601817870647470750534440074273749715050535034274841593864494216660191522564776939562808671842146504751422845312493445588547047004228857631402647523570790591792898948919614727939358591262854872276405621799110188008843631455989064860834833996414854011218456655645349832893790198689270777971572838173934900200767481865408046604485995233054137875661901275664184575130439634011793867980565678042640077223926127673935113750200760640552846338599895090235735584069845748218333534794259289879412920814244388225768679205039818180339948700333792810698805143334182524487570497047352007330364495970877764030891212981962619643373313771987929355634644750294260721936094551772366910211395300254665822700690288299091723477077176670051686623382704799336471572794273620862902323883490647565163499981612932645182150878291194838580323007899892691340762154655530932300760465167355949579209820112593470446700759163488959849589331583751641229195933181987104043780008698105498876527908456771358838344086869808307555549664696943439751385294913761534468373855300630221905692327748141114910026285295014778315611472873385084937703777591344316152260989605686987128176938945169611853463452082708120217839408279475763061600346839867581977737640759197719765224548562325477344937153019710073685692047456290130381268576659019434170567884474695826103232733002766470263079400192522679524651224721557678424618221040386582197971854831015214585075271259525022741659533115633384953789351956656481188064011422315900453563191522089046845387531160635589894314588013301333206693324593859004614454335782192113446311841098084026016418014093939155419701684851934015398743770105604305193116683301765775427237728846328016846108435241693437352226674677451999489713930357823526693741531183612716411207281498637247060754799283269146894634732490243017391917165294875295643247350323887537395819356416722516231178477059838319787764016430721197637249663044413641405256467267687038350824283020744292753993354308735824912267792172306223968832116358956575453243128786584947192742476198151984172800889252652944266864068653047218251719240271572283535644129988207981959317025096058740953128636355559720968301502305923749227772521339382714992071890682715756573504269301132002184152602941779203519311002945747692902929894894209247097638719633280129931234296520467178682677014902794963316698378050373407717441652375014573594508127960730346622544740587574784799266199898014035134806462363595564469839618123196528216409597245901584484073787375804127161680990018497856124646092005800245486416482808738354744736848189448326672630425597008434078203253710504630085552733132973226703566033138264640365187856301361522198352500881335333910364906820094141430440958305631612379469538957370683018445448324851496435427012338885948749526562170032981244363220867459953125051028280504795077816980150682421502738912276560363895482505536372370479908594020991766680768756511867202517641891954174137796531069505662260063067388766671338302603766530691958248295303754678570116704515408260206097631787345767327248474880079841666099561661447010484579966109416418007525635690867596563482817324650428999072105265996146321172671005218891931715190959913094383035802833386870730954778120114391994054823068946585918666818438143537038569629810562151100952566324425415416666519558764404910713621587681838430819167545480435264013732554364481138105592010227872087534786763475807776704172749239637453203618602802054355495022544109584835399113767611811786580588016365940995083406119212987285481768253511836124102027281444643847024636199123665580014827698661579498166638967763489177930089098673348591815128763086132227459780291725601595277431164622821578984047213537365019066994446512876547350907615791320394333118845023565242770418774149699800208300209473435749207483032986072764094303819376460065654090611811677154197085412966990234348706626201034029938811052746272900246268503873995542549591383683003949792995234082893720206053508523853366721102115323711547547932530016287427255388949184300324225699271042987854086391104910580744603205617035050663785423118458529072985431863166518204006074810927651299486978905241585305172961606002286276520842878942603165031958326262765118922810697790622695585914357496127429585112383766325927269092674805962339748797162552137027521813385797519717254969804849637274091110191338323172675854526670168998173671341882087214552333135530452830622099093836778287468054737867959229154480307545040446474960588209363104200134844615521230393111252340209937133623087788219509686949691455681169040233904502934434855460676704174861346569025349173163543861855804752356702972086759108103113165688473088326129023931200082691663576096666270086467308863868347974754817488398232380800245222149366825151225130193798012320905552453373454598228548972480840903342866738853408649882890926162170125427926529651285103417676817693265896660353467861411148929577513415176854246466698698117135990825995588880659527431470649845438948719215124111996459797587803590780632432371792205673183055986797169400654530758539406966908848216559603962172467440277662037446986272297049126454428501258179658484158677855375028273608451634333199745647023688923589220386277750397656793738593081175401055550162255129160922405268915421007354827294828326551332928519273814332721583777442794623534407080951689188677173800874744315105503185508937389247560148872787722369155457316805042865124272207038483467386609031762803836618731926033519952546460997904078017978164043892641637926286350014935783652109637454361585012994845902402326997374878070858565975469286957452861550999073451870296622574201509849182117935865990546939839318985903223198761608492416314572187731843966047532060164939365368543985668640694636444160320522005084970414231307872610642832584367087503749827674569906219415224308154756587317014449455081441879381791449953771316895136537268504658838180408372909042117496055148052595409901231542384617816145597380459740698693248068775487952942814312166059126350614935288622930541460813605468586734433608203002311842589207310353307088249206433456523034329832196951255931319797184192432708848324323348195600357017497753437373097384226435260346776713475965454130496949706383180281934953009533050951699823835727198383832372700389126101212418628398657202909799742278103585332010760375599014381776426242776944362844627884554282061107206077469034303060845804707140912124727953841920668336217751864875293560135314407174153269439316799651775672038930120609993392086631934865958823115702650333820107268769583928345366766232636035142936327838462673399941601348063380977499986049710074326532011200924105677630592959617617177706496579925252065134080424500204016034908304297344178117379690633407786047111036465239536134469734094564950611301455658472605638726483579625036354877356053408698366285016127333056714580802775855146944877175482297782471073075053199906603856459748074937494825467413905204004865254349767543960288645441300154647421608968261786137958048488803990654487561954126898494990204844633867920897484577727762590867295934083183035170282457097674940952004148181431380433689369216505826951348819716064775928838634502637116482633283903442654035689718824384477817188708706173924250893861866408176801394466748761025618672790374509802723215057434046288857986685466613826868921178257271269232371284470310776178016504673762510145629554000429031162516651417544968000059253627773688296246308099688560981850103224855429786861189968345449072393653637070664904318266850579873315120762263459189550308440784760428681653827577401534365160444982234870931198336227331676726638618214214185581813782468369839607775091994405228180249059725603605691924297369029967888277804887122388632809302061134006297654427268039674613242899162397539757050362644118854604414793695414801757659632355499409373707783846330462272385991282218354197409108036456436476582774645132745470989905026205537483529071679640085690348934834768844862122874022457472703637480947068590892154524572492781870235884971160819215059345634381400549764486378045873039047164779939469446318322290083767983504194966850382573735824083126975588390132115960048482925852437542267517685414714654935154412852754752859787723634047448452263998722519608459653174239541670139793403802717187411568652664005606417012720776808295988076399338865506635499046082547087698647847592668578732387839245832332576175136653122811257884130182770492406643885866125960455367823531224934582242174452771499015988992817801519229012240017053517323207787949291283962935629946892937591492456621652506085200408662493931563183851390164409428373229755755257338737192709628826214735022713036774799490464131738961166363754766660901336594224356410360362524142469846905002453102786840522616159895671431580617194690546645809676475501283838339490594824118094589769476606448564377050800416827454370655527405519313399827964546820259850249350951666311582384856835192487385476610247437238657644243999564011259393112208288602213287150189070089298324424536652158446415010751201417199883528815550383331576127817348785515418570235305748510910767711263222766174880517134925569968082726102389925917296414540050172968325227283755759844146668660820734487234536860736771578026597871306084353338231336594367840948977074851494147106173359228750178962255435050725536608185100347996868295151722127384356080812866501278932232057172914489389641858728402821090374212745808547988162836897675593063647731813454716777933823436740708953323950778022826584429289022027998257219694190419553524826883165562662232414286408721071972793823698278442958455643006450575901860757169727988116583455502658402982202078317667074324464706535985147280803834821498605997945354764244479747392498768264438317058333159008139319269596445432123965699665896567916838030753612350807191330899966753517862022901765550828432307009266443351934364386314482944245460565466325449577346499820095522064630937247085579850407680547288762342237565431366062138408555595524620001761578334294098792765570531873050758010407945037814398588247889373894145194478250810302738833972078250896383825945833948736822533327210278817139103865327429753914027769249458621806933988177923643286666683718614153287802265629501950486977889584732749660405147465499116611221904869538614377484003319384921424962829961081563816623288771878958394183034823959211972240002316776345123678193832187272400285216975369561260890503572196411090372223277086716620300171927389283025046238039876750969083908030751546242276423624852558842227277037381430258675204457777190125321608350758996509125123294220243508830582312470552328950678191120189067813035690418668518033142201426840498317666756300388719610067882690014150132930236107998036647000447689360160514998478295626126507920861075906758343290301873370546100819312788839215966494059435292147070687419813641374161132644434509995412107690142035761428829839038354470211905532167030895238101976266802461645826705436247295226177988351732094024427659033130170280529714009140290108030445424018614401203026673669169155237965803194675642850997319495967487585979415257192526780910465946453867942077941112913632840981416692753390020210757765940561612265445337921273057883066150797159494918140060879315382854220282675239827879446493741867514779515043920609026055282250508048014589154982222933172184067296860098170119383246634220198351478160704546972117390946123630264636783836589865161937548878459121471420745097572737652067915176787066859667216048177844491078975808450244186061846245322392439005342359458806824756900454082392282881689465351797089275348041952929708352013862977498818170554193002353180955584834627020970805279311386072368292286911043364514760445066627932377733215065868839975649118336658893265571341275829344552244287848329410454867872460629144723590753571254401138436862462071411496582477528168270105832572412748441782077486175012145359161276336326820063261883456457182403917807920648337911212023674609614601942341700845632507787274340771099145419568081984526259165277920841466293842561566153763899369966012997874730905973568480893101627047083903141934410870084359493759190549795274315738331438000952233186656316727979038010857226461684897328438372659712204825142480684728909840524953431592449521159097749507137318888755975272211478146043939544152444142055558874444645083855161307443398355645837615957650077528633119065243772832519607884750187367365844916583668197051425691326309219155789474491477828051074672126478071323877374773278262714540702985620457456741518500417183051818713827634893241028256521579716387867869119526585698554033809955997169684978569038708726608262937566254925561153745841032403134611476154025084561218107516413181328341455686348623897113241566553919004085151188284390795358913095554099914212665318552372947355694472514270547356659016355172190485883035163570433308954991543416730965797365860073205423354205794596967845611563700617082582401406754954748000978377585738757694413336586025308953836936719678017306820267905657914423316512028842488838806653173377157386340681606592557293744716498741570064242757914807223810388284242958377007637950687694045058183430443231632953145633332664497877507783107811374308512110903962203946888691206082246858791978694354415463011921773851870921447888211612067877912715282314050680390867863592442006749509659636284905830128933186071622373283161883880238715684341964797881290873351824727856507029372185414893171262465890327970570611393627388378005274111795356202930903117601139011761946751018504735545662505638615603212678878988322643311804887863386890096688247231955444377313261697535023511788869507479353908293833338774162804550570045727563561468906769413023444438811383928740213207120946447254538043781032519870335929511071285974615291021788439843468948586540868912024240491892836800560759787628700535354419143409023556249544671003280875209470206104572405804652497608879819425083941191965996562079453639142368708256248345783162335716628873102042883049873665160524754228721952706583888157881592131574171006998699498726439188581683707783369612292651793655770973683725598081340766829757357171191264158941722399204156222788306817914209825227492767112920105902467765537369722673386935424594207391208527211516420974935964309071250209860724733440350715412313074781276912964224899073728892924083283733240727493745525699067615134008335937854207788875337821189559588658399726742798458986138063989912878298939913727566927311480223637474716540221852534543441906406651583707458183880079098596435259011947408013907847492160972027212069708803003465950427386677203281072986404132959229159314022588421603795511423483028783088754274079525004201040573822444794953222344932216540076939426120026197220902872393921876460262394748382611907203661198556473664140750695640566325882145100099275149425917061598312398945760573814418848992140923690656678809227557828879303443492441315408953007226273398109730551041563420255751639192576935812101476983350153793344732733918838325524282316582135101980973028458697356569166173719559381598874467176953178913309668460099332455510077569087027494240232491226420760500461360342042324138540501287096779616765336592831535379553834208443027674345288439606944264984279724405484044536778873067231089612294095268379730214349305146368898628737752769285095555996524054655584343444294809265519174690365690422855462443913980328636119605904970358302742680661176494038480323528974441174475808461080162843445646367126299755225622671152991219290343302981871473936435801990592515429347361035229096561961566747357930161429855402315453326760092919193696660838771375234622562806915565984570406272665158531664789198226067638574377015478567306671536525707201823663904204330191703132799376393736195588896080526060997280500688443627538176359261895422239454395492717608946501910222934174207287558978908875683432583226355669036754729955576708581883457610985982896811196202756305485184403268570518674877257297817754432454999613752982543565096252700921966043209530301042278441305377363231562023280596309942290569730911658249018174425112339274504633699740470502904128645762545511381774495227657325420092834576731177839735193994911905229539538211965401119690501076104556603789644417233217250343156694580316541810423116206348741716449193557987999872982680532912683064338802549438416170281526774087985693498116695985052605068997730694128060029540226109222733181946882156323714991273087638623693765378230048587864837783858050097321689715998279130051302419619319112882056333694383556575654384180521740156666648609458941358471623167181194390827146665593773165811652459793137392424486312633657539650693904356009213453077939734308803715244791977784794129531040767094403596550873149921966711980841634092770418689958825745089807710357468439789514941090612259661237230579824493086343330678113870386770118252205715612847224263585676097438883041844958706822508803928259855607836850106474900118309727541924037031579700030567041399278915553209913577401862052585199824300147998686693887996469942489970697091581891888339800425024898245681436039788822904639063157409223202351828590290000455324040831325428647258690365462285635110387874647740756927986810908872053448503019570465883400137617144537899191494885358431296841255408862051499766620812681697885450849087149721492817026444276049549649302690795421948943531455716213095089713704843340143562402142298009366168887494109842930090729206001390945638859734881538930689453734070709697922421863467695787406078395522427121183476512940526318220838276369116022627338073526999620727096109459896202360000867177029445886907283484139272615667516920497962251937768807462864943733264940069703680470601368091482242435515573375525723862365713900216637926845968617766399870236925973039234594732064951793896858485726099532816732483465925114615661138440319583839854665685616949863532870893303458072039512452562960365026328599563709144720253839701799396433125366764126243159451400817956239816517233954164404269490724919409424415822893850746745131656099488350699276941743559566962338726299563421123430082677293301411633516227125692547122989384933867050570226603840172000615029285705313080333425246264450452164316981565274378009421100545832392705872758990164560220036737620873468857944524905401275242262074941235498730031784116930003505111470320465981366793028541006481467056284660480140619484933035310293725580369635803962238556639454523226246804730344791386912222114858424581035035740674147086026699320579593092842308178371690387104875234533824537227632439943164147569709633645856947410616587076144078314626355930261054322234185989000094531912649792372417699895266146066064133490353489638154751777025043393964203655866425234494988276822731449974993584079211771210982463108266029657503015325963062576428837187496878344013364729081811709757350338696554197311177847294654052115837822420346671862892785299040056353880088477932339266732668960332481433535258428071561566298665276558043887256197422254347796041079025900452400135829536361243726497246525211556661613419635538072739808661359023909957028418099577481343323441897075457412480642553632902269760811971511720809937589946466920567438118452184467610999162102408998460187106856357203167462229075649039288943612795448507335486701573092080348927038133943571986038622811593730162692743963650275247946523586945123987644475742462600271779646633689162400648277793446802685188274706270266609284121592090161132363036296628932909961116432212138258205872541649714697867690798553567155694054758071851337464928368422450676309612005353557633573408848034267507297562798612881317541395881238631383057419348054296956967555674570403059630365473331784963509322533993854635387340490796207518298666853579757121872526838214029848084214970117514231386698000017795114343511757650341799667458573901509299520251654921425248407834135687243656857544720686933239536420986774745672261459419554668571533548367264014419630996040264286277602843460371068521869761588727959427506006614529978726247354132251296574599796531369397540396711737711317962475127320098449919134547450935538403303912920867650252596211996895797110836646831579605579798599893012108389623349376521796892574875695369476996390106026463010820489460481727366200853617548247911403783561056733404455180096056013852819741127403865728344068990279577802299311302636407949538613724952111199539543995127242096539003953129555386283838977614849512503452633429293271792900476260503528309851070175690830765648248412793725204646123459909565920100033040672114076125421054765844617309771905248897815468366718615803114355749809138151767875677929706642971698438056595041703030129161034579544047475852651583065682023391645248907303003260532770229076955369712534171086189700681175335394489563797019202939047269506735308092244170086101406961992866764901996777781342337720618305791107881285978403518030200986847712196562325987261767800159427497290204629567063159658439165710687262135412786745708603294793519688715484772790150012159793020964752952913306103670736221541989257784923874258788508645738446130834294436074566891218308522318940841932051582792827561893199390379740719137573636732009608444868118635503704862369023758788623443247323451558493504301995279251632237851084307763002974547936379339986328884245077393921558545264191106052862374990441916728212761711078361178256626627038218643780614520189600931012496119131199887776542478373197110803097064929214049357197127317031955151329485894059195447305486124751255276791017571629779765026380654626798207291249443473515772971093180845761364424293541141538563088244568510183915763290430773926519658959615755461199939984306628939205267292125449696550892618829437663237823506172728957150860057998260131809042396696865807160003776572188964817970289335084712930624494912362384555066954644943306204821902041169540959936942649178409483478112400218813272355810621878175054085950664005832213188480131103674592610945025456454678859066241913012201276418040845975560896057667607810533915629914667654324895637010211345529702145335104075657232820670518874634772812491726301667912949655905133234335483734217909681187147205567607424504330426990401704627680829017478063886907272076074242979217230088235153966045218844654269818077385088303156625636156999610273332330127754523289228702079545387832936151975692491228207214880297836760517389666247666262521617632026901798304982907727436595667122537199467258438153413379874312235344674822119935549967958191640929261341071691825356854569987366421645679430467070277586034423919130999328383243560163447520923471661993289143113855051579101149402175713284027647608679141965617820669525388686290495560111305304486304682204534835616723583825504669286548908904029610771094947859266732934089323836404792785332019096381048985384528938888150192928263466926400130558794545384605699400436703683589145833318856364420185977778993725917287956654256086744121293900507003116718806198221333794296722319942741064513715187554712183342545828094571134405179251833360680604533316422889624595838134256802104883473234912871868480238571474783268055683068294222136309732545989180995985619737863744686908848529267454930794983643497091422926064321354496624968942314844361719710409566833443387991176467588603151858645760705131402898789003537072772779027927483872918579362785147540096626440993329375192663998264333744022994308225141388158215029102404984149113525721509149307850273361504589514401460002259344563556955085170055598955183070879079731460572609783592012721053596731751902303615178644440312550883949204748098883169369947060894448349502016816716839126646580382413805373732086633309607525305346844114062769921159427026510809902211927519358402798832204924781621043895365685788941814635939031189213010102424721075328719629938343593415873040619843678691581153644767593985780710416617769495273975517303952515696798674971255596206137255208788880229226384744064802957976014243911835202066641073171370544430300557342291312362373916122723451592917416490927020574557209372060176424079879198634605468724312427283954780929286616643822862724699917767903490322850710439259221726150791097145320565015416599242300016332177187309122825683224360502775187683111170522981230231997060952297701934963723622225409415752045767761074354850880514073988271132214621558758347259140880525070956017724280577362308884181702116656525886179106123014480651421142511790784044868121512694015502232696175315030268265758510035667423370057309119086948843675097508836444700138837947893461643199230134805647433896199783034887639580252918392989929172964844773169787082282233246836410957889629947849500893405911010780199741268327052671787093513279474794503439250702153110105258502056162325273688028090869675985370978304477546426439602246512711304117374284563870514522518458911535088378675749509619571727133724900368745817330768071026476277488548076156977051075309694992885394146749965602370276125189527828253534572001230207935474537400377163051189076268876051524567669127799710225712748032579471350992197121566303757473399625017381297256657094653036661360963508910943603071705145218419272288928191027611478500962720315468395794201892660300716330543789318549610505585626491391583795755076274791120362729822960957051736378500114560921093679303438030414317155008376353148471275409561968680517193027262938527802881918890968799805270406614863631360960278699110136335878355082864695254638547752671635097556244540210538346438825196289751004964351838608394223855044691595481786778151794080668922036435976042299791409063753243698814994888472966328032743654255701807129174091493347991644927474350038575256068370114570485981417066311742492321789219331380346888308016021624750084111107468388674903996151902226628034943063363412007141001938898568553910259045398000604988352094406492881484316119850844247777962294608659523076619713051261900478634685137720933804425028188114405859305107679553895520544469627889735372072696000349361950145361763027278373137939341882676883187203440451652212599696529304129214488992464511041618808828277231153042336976680541228272931953084996619747770195745819159751610008997291773178209545588510535985562586359537210629219448381565542269958763429832844577093558678532302032428778226623042237035459241844177663327489261258585099756073588529928914659675541656088522954776633257265558164357607952333834258199149318141101603069499624908907840927405436746316865429563772961219940208640367873657810598262651401518634473969551039536916993050073514768701356329621159461883867905482360023914787361399887222904853855963924308344908545423229936100611757524307580179544637753375881528563452569262665501999647655979382140520729321319062925221255359511015557816747196844076547580895749215475990494275827684802176841799339558542811470132667053841227797961395465472504150318577425552234814474774786530590186474267936433078486108055967312998062679753763534711172168045301035832416551694464272737035729130315842965439874004104927818722607566323346630881371906939756134958617211567776295071827890326614172053487632302254071932618435900373153828752342111738579103128952312589052039985068257756216729999340322857263117281534251092401168961491362176509790955745391576605239179347485289512777462822123248685281790055730556220864844136613527371528452439274616500018994091097974658537871773763301508556747861090354267325877800063518144502049674207218308754840537168695518801420336298501928501454287240391635242880011277087383942616773833068180043002183081791088270488260411689691575561651356456400424589998298687586235009454503898454654001326325624428287529421145494657000013450686834900751311877066136270037844963435605253227376595789045478403711340367706414058208691913951529775952694696494295124225505092862358013810637278530989432863499277014296948624191141781915092053410685841386291123271930816638194721282792604047782686880694830247782017945832319438812354531273555407343233948690129390923428480419191173918244257820260249725810529223580803425376878082305074489072280065471440983247904650123462584273403071087117936017984574234232164817021152939143114067782960298237581622226774831591400616010682483526774628443190405834117770630638610544948556193032916364026729930594418274752217038071263124574330786800356035888540920168866554517844988818881261291181691019055250906420202531183102448330116664496623421358946529577075405243217712402484015615530910681836165422736419454120427378778057147802113710102161589150213294948658227047280914688252182641609667857500443577304047156626082762452740016508631206236251413014909361196389989969519234716574825695235062472528679518977666251575085951315581496929920685440730947017110016339310229608147474311793790883915167812140822514270154791008801547253112861462256659895229698712118097413616557771476622339338247138425330698854271389907313041498072788582398866036371438595323972464701706979434856130007475634935451359231659117880125241609695469873102088340288228581202184090098287932486501351931807500302698355683470618659943470429208859278183124612029215166374599686050752633441852160203545510862628735758990087983829037722441783446718280567135071667455912363320738964572547844645955756748016188837324285417728385344416627934710898743858692046074747496013703852053884943304361961995199104064664166165752582251789064263338116753470211123962599198123891699999878484173007565568309052688740110137006872077192886825744024244226198606217994855914974582367047014124615733057237835334672212016758597484453580377889185165427731554423148801820083100292735971139819270356409563192040893619375325071686502630479632535326402743472816619698326734819198682375530268836936305685016716687888694316559796928150161036190887077102468927608549114290124411048482792095652128611070264630710793325578943128393312419894310899867064511974068235869730048415058521881464200103754779255002707868589886966023773075389837911491332977142494255706576972451085753509010400685791666180734917206182678179496757399341985077896940059118504972028164026561638201490451799890441117437073156390331885890484062430194306350453173094589808923280656328108742020219057272290686552773278891454800036419286779007830699625760319365258699136131605978399241102608903343609195254601897960602013194283723463605191251166260853791709203007440248894242910470318117703055547671101766705883510055971574394782344642985268632479419534549840649595199961883506875602308859842207606823540077346954786170942386971800692125759567729272032222323815795256892758498749282842057443888798288000112753544674024933076612447487173456328592219256091871553681623532931935389812117457767386579511165537280039761844650796818495045023759557893035165931932430027803225924973741836043444463433377457231034481233306301058608975891624661963905605726417335124766059510955498070916767275605824936167123206171779486339580890346573311627593431002761827550520433907374971078609954827980676951516567216738423772992701310833679522850167643820573685015143591595533699889456615576221686862503364698178075318268886548186976108150137609217229395865859310323732279963581512827085762555795014297316690594909434532451967286143756385203219007674067563949775499152687446238158101945116441753182138272290388654321384446169735753557848706564279604643319129227265747289885295378801101453985885094167533163541459668708816963880424160947012778733847369956005347310084527484993501311044261266751632532055227298686817563154976644373492417017464512755735749147857882975765956237416857053946210435570657928832292147375961582287315100335798196830611968104885727929854359539776825208470930234453720379354770620495943771895578310159586607502416955749901857930607502627250884653142727965105738462777042736778785171844566616746930753943262085837423788377893029006384756164517097388622429254727438598802836773325876335459311308382869096799804687695080036180854689343381339162879067590539414833311493398838744906278562485962576905149175312071949432716074399072457393503682007809658803927330260382328207482629194375356698672401912305734918508471964253210716754180908215511137023970401782015482349870989459591830169613088209839931163242774100902924305016676176389934241787589961819818060992903705307035322358539316400377490161716543006449090204854473928945986686609382605187889125069002147130304980777694685621312706256253497203397342097602199962130168319065326036013202715964520246855203192239807991070155795115496801791441173824931176785445596084044580909211460250227733482301512271419695455549840324631620651927194581462302723662475560107243441316953661663573229188089954972510675029379170268397879293325606164620791006182454624302909527998639008004898321116529116973010772550632102907804520502931183034673600905325118220198133568879836067082204561750060026949719228350756748826537630519385260789695344431827082951528594057067544867496935766011534468541033505577434563719109780723283756296941427622871199111958162073238713939076014345379393669037529328066960271256782374218006790738258196836125750305293167308400910056679746685290831554921834385585553869695216725237137660410095442964078518943961533683589284516555158204147432538493714856768220621917672429341249589054876252270769745512526321770753610552366572870099272021766194909238525223451141164460163597145336248959419341531577151056572067229063545260570386439411189624324148526365768280768509981797257238150456732484508207164257303197637689677421893211067715635663760671099340809217828298120754692091894667577311908561273616375081214501983487450174066829021565112034511081001222829555463904719598611643499781073126917627939624786267131121358833500578492387728402123176090552013129765953357785432956514630278784330576935996278566609192475915725450514581873468943251648026118734830387892726995162685643163318131414717324178030881256192542599778691679797411406797057474157386834957337723659627575515962740112865367907115605951799869620946870878311658363140077297359612835376182112093923605677026216420756392109811257147186334972074519080408089622122983209324220640585393279320662508822148099761559604080754530980578876775824204358340211504323528699066574237308146060100646592500484209382054046460218219275723606883744176266668303223054846334368173839999974339459757104101288685230005667190372484707951069392769193942659324649237096521913381116110868730916839821942926163546943740682501170380526475167499826405398552629448662063309707364562529850337178816983813137189975076522799752231367937771505374362773729625906842174536598933522197638943581410764678886574698690012806142614067764241004094321273972143825944037204651003973878507239616534228759182452856759726083803379134312848513295281548093610773685890656603979023550740499230560711151961533820140092902351693782942729969934408850527228611662439801426093229611847611258463716425328150916620773128791602949786654074943108142773504188849739768712426076161740128385558961001044502310281600163579297637214293557917483319445160456855832973387034944357259619545206249302124984099359877393049753498646108976746069393256870085268698024931966373970499739391223658551607863942442791006656613538413217212315193756324410022647698719326355582764397993462662518104343684949207837400300613020641084032054902389028877684206548691014031027610581319040577858066707388263580481345916789865277423181082330992366117262148699913638592711740534978422953228055389413929769286884150544683211634233980817098584145292451284335625401003072288663741957902093789567118790198049543159620908345895690176584392538139840236341448962354581650357508883571171652585368261357881213258951953205868844061940597713011124365368680053597536184778372965546772316946112493303832002201948436364341370564785183357603201684269540264852946709282763320700470419546071738214450830338076921251683455636036741268531117601058481402809384783497830331319998632007884003606728664894273035206903978160061901034055967075616101320682906192159898126133738444479097784164881647951021664501140061325679020781552825935638988840472088699474312182795280553377701291385992891125305690833081778243535857389603835962507812981481045397735229974695572924742092262218571881271763101138605472019764481726600978396768953503880779844993663765844013505513693428423549101954499949260517796579744461882064347512307275187888110630659402979213053170905668326375651662940394743314553148793450123646338664431385566497533787096459658743762179709476606215394284016741051599179471207944870041162347544024278738153043820878252230878591493909257597729064447330981288091644457854916572373921908611569567599729029268585567532378656209186055141601457913718006939493201485467728452851889543741006190550442904307950153562662230968451721086653448330378286946909382380520672863566574795061830090902370735290819519181674838032253996271305934339125256739433046918066345101646653950839433116662327583480322194046765583211251639426763928535095249589745794667287242199296854761936540059175715959302349125674720476918568151925715350619806138674025006044818285252595141439409802531767048922472737444818609104397817275824870027870961487931898268651562620831301096482997196557228334750107492364258427947940318835791723528989863315389767437216750612192982724359006903442952998961944520446568151497393123265461011583905079791133896809134972086999472002826113939547546045935419129486231203665577607664845240817200167223479745911974768430105547005015593275520455962982124209762886710550906546115637434883003273038605203945944605485916341753435558956798328171509615312657696201035851717671094650245677327763608230197298244158850340216107630516201037083498923182139850610956670444980138285551060275535927029314320959529644535090620672368228373160610253623199298596189821682623166417716137600884651331429651890639479630331950143562123539891915315060441153117971980076965236972945953214168202577058895841547829869485580949145920702514067319405613112207678999518369436191546994499372535351958956550342124059352452434531412085195466141965490317236238142267457701444817931157941050966163282277730554140137423243846628886242050166035612373030200647725425866577932036634852788375671625219506895351627429008077491967375232744981349168662409531355443569611937569429587839158235470576501533269940288532343106831403425028813149656322800958356153236618913573014077369522069404562804489263331344689463664193417639688556240837077320688828919251021330229693614948208085964867215696142003019768193483501231650513036767407001448792050255251725385605158887208054843330201265554576799142259270496598840271182210517300084166218192088168848746079918235592252695781038320555095793703713292738372132171901439273259584225083271941122788880013867973816749230250463240150202147516664596406142757460648475797506810123592059264175843626506778976755261569535467179093056021755079689316649333207478337542661424605230419932187955372374123920219922155923267438729626523922252527886187029932347064292471496161800661433750439627246998648540520790206696503944643278359413442387357245230849293207127640573950375562395695707913418557893122014881754687309638987765731874009540264906909473896391107713425656926392270714257699107562364550028891763486989029621293230982895391079047302043612834579392733520520063793072207130665047410764486018691659275230145459444359144086491224011408420720420731998320927331010703404108217089044587307169042803262593154200257438532132901190443826768173917859576860903707465367634329737421968869516731150763854871081193218699631666186522548524939039416079594193850468492067739335339433153783639500057087077239716879009217021930365674157453898630059487435028442023641172505621172141186520565451657243189599878514362320015732116906150676486811579498662860974357538341648733459075432717146327999120911754434634376228724124698298831697360262271025735306530429085063641618516885007995871232319714245981360945480752191722106930662677758098852423439198365616636158892264869037052840344731370233259057389467209807931602349765526310687719483820650742717415234240897907603517207842909303181150126947641456609935849286744660763065560304195022480486429131855816484366196911646631300932807345994172613530653547298966748458524494424878078795008056984534304079401719328785738510227823439218130220128673691322780328522001224347180604010926091708766040819829037218052221006547180905125960691979154652981225945042171912670684034394594376706190008620898681259183633977901477312623562670320112705545489304615403116517662282547170125127657549416002967954038446989593355121791646885341259344178954172266546542314619574939414724196730026338987052849013421713432948304916690817438837074767782615776465935023270322262351926214112061635894635146765745194505059165854255201198375337955312865574202410307654924447820128844982972241454571242373841850091932405497264346688295507464946302413379215549791148266918307994113233917207630374424984787691544457485691448458739013674726786157155393717603410357224627191547889733910269939961506316384247646898672227522123026960845748249963107679728277153119460274243613797567581396467393188303096303195953386961355823177438563580107089205050781317150925751525849776867528977411214839678621517205403789898589867213092592630383951514984289592881457173951528729978624755036823986846318681578124288391879636837300707235978247585974160461835649293321664673208979658799216618521899725347140912678743013360207184410838745049827255249457139072255146203659400202807549555229253130414718112929072828809878444289670867783923053157189006458198030326407372355194573231973211879871111760411874306463385927575390408221538740756691631548258690560863480739287062683094926883995782916598400716241234438587335325113870079252612790970437876540024716688191466490133945466840356427110447285799702496580624238527885854476548072450583813435714673590245303492137259100837829436995542197260557267440728990630372533853220364976345644308638011091358085423525423890602998708681052417302914712949432015855735732816796787357364858388167199780370892995969842386730439657495658351661050318145736798937103118463437695287427215030988232671157041801456802114536705650929649980550961795026986603445775765256627093694338802857933272095445406895740594129428255146806365284456571914348554979188922372858845594105883209609071402012641968508636026660409269011609650838139270661434051210048087567568710878899120348338235692903189649948131634048623724233532817816093794842101930690461050067604006474122059805394904152060016510036633863694682766214372880880197237072602918084819692847261213915247617688201289498539612674319590013691220325815959779351831547223667654159877020373839345830672511053124793277220184937972414583717739895861535596697719476613800759416242894597544506376909620831737493457590662718227482853969253122322344880090132995996345631901362408094780555941058880670625426481433893698176113950220584890300571960548967805322170366216052916934633525438199196285292994272289212848531933969738541201496117602037837697928316156270119777449534778364832930920138413316974475439693124667720486893715134652494683049716754640829529056885176171916150178376215798012441970124513193301521685632222197713701254873765284298295008471474410484431221861811739115280436074415073340918206972735527439833208316546773142653543944348527175305196245753905117715484593763207366455639580566748882526921341548596568878902352796870098030871502775786863464240119454815641486391451131617741421407222304585688097409262399012036930649707172284445506644180293700816271487313485033710710531229881234258553835962952822943976645037555680790617630470946703151533304873961563065150381291577323674467407121837649739401713634756084782180769784416258513389719906556305433396152443427340675353635941566860234922766042854384761242833370638756752609766155553216181129041629493223707410564981815959072834956163889395149557942096626734635265575570905005505707560701461914763810694212384295728247185353843710488438175155352591933236656310658816228988242176784088987475480711368873566533553299002653404107566380176601526982909846121370836215728756075213435238491409581395178441588610210314776957827419040723913764823560789937358728719610450751603247557511809918295420343571385615794505746265495927881023108546252780163915388113588503641020385877492893581932256558918545369222772726019573548763542473855255978616277585998169101727679233648694344945466126437989594934359083712473183695407329042376623434388091263438562517063361299331755825628333331360856228690631720803614843924045404812779843029683871013780664439421641007502758793624816870807711534325671714142069149208903337642897728790863938938456297011890117378075051328390447508419670007229903243139693929144753437755178217850217483261478176030858547214842050793935590741969774478750473104859199828449219214690629482793038738392399828592147742032006395100960227904115599830022891640299316795925072994836245606363638956089214375405863216884885546608555969887380291822456195644958397140299387684488422043153381447166202121373414663983651349702581765163937503951083371717178659753670259579738418643915604690333262670567324057693788008661671796327299944828034111089397045538502214269531027535677650750308388472291661085502998008875317173469115031960318791605079182479138107818832790552811598093433610994736091737185582529872386001680910189605410275322382042259820379152665509421778102091014055642224930381705177845032732717371345685540736945015590220370991351408195547580282676292170275062981252462213027088088102550653341609567287344269262900737030727251324474919867145536000902393286876685174812532441664433033739760456774439581174750981819927729989093830884327807798646347491640605623152631218124729350038670673585655059019544602544964939238310546845086171352900633006879008693277606133858312556458903581378077809451172314949774505766777231350499380735430838657707953047411405931204343450533592565420078746914181619973238136142581512641949364322713499102307763263593397612800213197258713455904100284703822637059072032906626569564372947363494641764778246933387281025217184213740439257152456644855051265045894062711394916956812669778139512258934251220834730460676892124513559411038136069845521078181982104070472418775739747628706526682274101230742346399141786978273901430182768805561638827051797368061085189037618820492293911303441187302229951581162833240495788825227170356411915613357238325387707410876783435412244265214420121277317311660899569183571273391995854024431697069047142503074135458369499883088004419773379065479330015819418524542283508768847509983692685796394999828429755002569575161544434489028187605182067646018477659261948750394980436549826652807537672459324507603544313718232723583976510419282167324307309748282576942152326479336416910575708622554629165627421280381500678497552184370943050970572632102368067656076920238217951866387541571467210624796994922967113524527307525530910452207608076769937783457554560425235697380175440262041259681404972863129712593489046628010963407172258079976433731467210925781399839490645849088401091195409582077349800233946725914465641430242005997935446316018582587171511327249437366864901318375959804737894374950668670912568587748916132927107530245595552475178916755082993621356661181759630656854385006998591822921268041305188837899764532320855437826194721712184643589734746831017805291151072403624403989694138064824973961331003102731548273927384481244650549442957473830566249665213291033289303586774912493876973219087241239534253679696065199095072815823894381006962021933712590903632144185343314665362639874860580961290273939696660215411255910702732090171442753048294836977696072635489299371599770036247028897681423753420650127496597023893821056519025701757546923660498454389642247630909252304758982155370044984251395506468427823631209574508811940747047063525243217000900962752814713281293857570972393592603353669043639005492338505584434792401290997949837149970225439400149115960906945459860988081494317678722713396396808477474262662953573002079004072139584123637331066895276116671452413568243159184307595052545867260155577886794709107077381929716300812185735730910554028218090850726507331117898853771151168469051306626744184698336801650253320661870394740728646379439393754910915418084957014973849666492963083040043183598571215710473489909738720449320646953039832993570981168071575173522730297936338616731012945713505341680502716250723108682577002698961306082954605774960623148185884800902766622553713587567705978116182721823579148249425595407748831742118483689234257531725387756296200916319309633948120590330423585395734434567988631825217896046481457977246249251264498067411380177119240503422429223048879871769909332421874410959474257449424957790001652015316823540587108757879017606976943990852966395509650467681781230427947108735367512418261163985297521231274734620426278478784969321202207698127759465589759232303421374555655859728158843279401094251435860004093414518052062183428207964215703772305103527081136176248751349912255122703815176545549386661301177401417458905996888980540938488041429293108709468475944603339826335903068033451229119157527768050411671706902944580938311954656709600979729517886972106019692458209776880428281608966764803988928511068065635579421681846137767368994875796282045205579237980739220970321157600945604359624673678724132687642457118496358032581357612374557184186811184687845796522634760875113102452395565729381522814888321773853313644216899005182945994030921064417171164877726295177284306231099619897709896580920872195211032959801343262223971715317803113638230414141206756705210993900669398398771346623324986992821932976367399168424419550499627487451530971086623385427294061777569620516515471494382987049245140196658777335961728258426471079693609674623337707440986587554458781069199523626225043374300680869888315992610411156083783039219702377354884102475289373687325295910242057292497099953736215272643676274098174154171045907888720920880934848146451453014347118282215245913845094213058332711705640373127333050248217897348805305002577644891772117409799773326125917759677806275534157867225626061533727030778834178379289951992934538595359692035750839648551719696694623200337538347127660103408343307591386407141941209168926677602214682297806107921930280238594391158052775123553918220998426259379407349977528596157376621128926319438249771968106552086263751338547320076824173886560761400209533225409270714296481797845918914616692525822627358577261435826636175284692002581421074110693740461543752042816693932785203326032354592021413571588871245671306895486077649495638975356127167920592735238481991859274737991972265901836030737219824405368837609603091896011174540567926163155408208113110767853846473459095302425188787587658034741824954570836143550448142780905117265997411950390167053478979936337837027911049349283345969047271816823462112078701649330938691701508490759272226620992513470387844893795280459403374689701510024341536529863522180724299388352304396475145943619669931646045276245944517945058860825630503196692037170416955507536847758609553185031266262676054409415025776221501235834298692399282636253260724128413071081868267222742746167457297252876363354724026367040209356743968224908419479270305193481254462685971229052255961052622758949336962099193134523191973020778940570943586150463476287136524565483576554858380829728495666832258508906330055090890046053647213918209669069773599410721532746700127617180525931435245468841396059733011654076745659026071842240381990857423261648962675211266783188653978440749422023728121830811163557818067547212797123031541207915650532079003323594889130052924957800251486557578386679518314448756861252321464820051598199286534087874998082060296698793870307163503988189243498331452024586194606318327299977608744521568154988929070678550615570868539239815197666096499787556565446828671028458355230997465054932039430498001284810270017408069265647703405936490060248929066977464666201612173143942340408679530460881595568703488275713958298956401834458665689610756543845713095395866582020037401888248311608522245748401728447229629023003966279329641128626281772615886046319792488403365746086011137161852929208425179989718754576026803372857612708455840792939199000227596043939084406852512264425455823535358688610704035555583733867205905513450240128215864209757388142696992963269988214069199430080370009536351507649284236341361373616384205582600638150904090210901690629102769876923393156644631947091316917604218831196362562899723822234516863025158038758347903281026641697003355678368259298015899710736684316994951835831855509909220202605744316004590311147113485665607909852073941880710491887782266063802323880952297842128570864678235775625075011971904526484084942576798598768910822666913423833002239693601406443859236359410349454425787463615625901622973010200275300707338045999277984172118346912202242630256234127160000696488609081233493844397331050241911378146318588129059797883032204185927624091200768676010870930497446318252677693505494069456923581773997151462499879357093219828724743516913508274080577514997917168992711947287356221989051036304555713201788486115771279679341555041490301427436527391784746720396453049911139425906416112020527488386143338068683476787388271676145484878848626204681380418199512772730196196759682662324085834057440946860157447933980701157113498693754795618606163496271925765762221562390774460462112106868593506957772102366449357096563967388588655723555034167262353772282490863433183546669740700613266966329630808609871374422145165567942649673155728816856890366536153052575324272337376996942712531770960509009627959822422931208709634717801049276509014000004000064913070146701289299907593629931800372926358898014123774257715437594783820600117263275124299553821694858988697308489162052189810789057262432591421847191797522235198565137890476638626112642581681710822999217601472708777836504093401632094203715698683258992377935041781434809422191482577047071883381378754731128803748803710713409783699849327024178094718997164648665994302302495976961145537344532556475315935274524110416735532561370791020950700490386732976182039734813573162927582455307544051236135199637723465699736840778443734505017415575643908501928709879474253573946971983138585655996273561763677906515670245822157901633751902571164266000978338066342061560517160867352555621673010781165571044375491355943954151222079640066717916958491884100122456851453282632826603871454508699386367206101243422623736272562886303805381003829482802698665895891897600366004165954006444680433741440587835680386818695142592783361726903512015242062164905892366948210074047431867063292016023008750487736126436961502273265541788303849079604257030242377255131723295464459358730725896429648354485879059308607579845192370003055636792957123810772009596908221085525565170062361280777633550032396881434434160523068619277826270339040525875721467054536663499609216295910754707546633479104027822536653573958102996000680496633269508159304879525935919468547889268191862329064312613132664377101109749096637779012452032221435243608129167845046635135172209750685127480295318257926843862781466796044713325859737707078458795685170352031912500699462264777098435430359721514615661888552098013195193262450172599706627344355675854616790928319012678561119152961688805110593351453852296563953043879475717333134426510306939172274767879604139659948797659010639439773615921713358843248147744779073535458377728743233121937544694779896205696178999353734330066418983848512411255005484514338036044199431454833748944290488274816877771315657343782585164056813728209062053854329679292615053085953361833586120836020617179793082710328058122272236096242532314288347688328781162628044890114272038013934721428678657198406457544553630720415760098443348329014483810748091208117991957168981630148723521925108633193567336681796412771696512787852661992890177273062585303333291363337429243088779971466466045489817462857146870684960364413748784185067167697818908331545875061654346493609174154860274774399097325338720139425035208405797549960727800091915379469270202261522227169476219820285779756208151383607872759552224897164610192347633263056554186427267710253087174864234058919594087801085847267235696737018433194793612247205984633846926845082009086545350312848584779606478287535576667568863823934494655585281958009021764726076467767296669181943464709395517002750228162732482294011110637691099390113161007872119954010040147380787990550086706554665531863306806007970904509941387131650978600748495038380860939402271954420925094231473795575550402554697305618574953246334088178505143238218155767562133339057066058074823998727826768971736717723724074283013138955578222146213407105237981071839177993328441285255753344890413680756083670887925300753444115077332451563284096271365989596064171739673900432844248259141312230876352064542947984145677098063608811193571302606760221962434213988923064939776062468899439279268023941085800089008161946965254800437958052249285589462185728856720413743155282333254433298370772122172494546828553294608997008218796183022161293230648015676397241226473282904655726404083290217814872445963936138663041008019122093484757802612707464736094353822362399230413985446616668234538347028928253968789488442315821446819527899127748076035801312961606318596974949329162988103016177030260403892355436289780965415442022951364546041012099164674937413107833807266032683126810825040246378202223662919599194539927840582157131264617546336926709740153956253243911926168704074159295249849437117456101792000840373564559781204001835236197778108920397107015186777014593337143247391686226128710034944158700150451303339501900961843393700345136617161635885344160111811907766020641109280642392844861776072350858434572244039220697588013682111681506722515767232698246928288946889101738985452048592380249560690611308454465697562416954763892165667829410889176044846575881369650747946902759711926107627988215876748451109493289225759311398270002220518407612939318046508463853084383595326815345999631196718841656666353026094506464465684802633384502629990902418387149425262185316284541191488700226367259857440632311037806143424012662162152747182115633201647414627589510207621775724107797938004009222645618429661160423018994494979869380754516736263597577478571845104590471879624570076014528832841538262678166770725378779548822076729882079750233696462736775961672899013263153465922347761558620332227445627536881721879027647847867815811973043413121096685980678287465626514166126976469846370750739437795277916823634781219423364717507835437149352599962752806991107783417759867398617057365155259639074460188880736759226324493922909910895733482668719173194675462153124651829211162780871749420881377298031184307200584494669431462486790945458245956104375993334532132213123106719327695495732196150218050953617834340186826308068451827254004455095064106393532154940684250211524207422636646470269847523925650528387230064028769704924292865754936705012176584549808204896708960329015038311693630291006090991866766049729949542868851109835970317150737359569222824575547031518642550293610589816443378616035017545527753826342851837386196467280297745287688223949677886106318002417016875303327529172293845656279096318111106959372199794105102484032480688715666777899046730316410693638494475436201350720001542787442683309980024175604450584712362891971710454552984437159431703245235954814925143122084710846890261583938184692118319432394331019637207989624742093977873143637783175545798845176439521740107621819312132409469930234789785860578115504615377593405739638385762597323121161413050514635655401301767963001313215917822369882575044235171363882313357089228452532225974305007106804290521928106754996837208999169569514846668658343247955129410480528004037789873522738058909867847128372333770711461043468419232775548375230692111663909835747068529195496064335424849165611785208243691169558856862462556478341082691474388464645408697851730214997023933550921510245364609718360718658828042410569910590152189722061372673084428497842988673568917848303589460674816255215966492810845129946202693707265347683134703549551929271388695803253791328784151524127891225923873862887031252267834443461682153178875629265345832331097948645713225685384123412752972415184837085406766049654343322507896508795298868560518297348402028362797291441746122108030653398754697605196046820892288977667748173768539533067665742060811270025769315173487033192835392312548606439797035830618107961407326960600574585402354009879414496320385011903880080218147273752793919636200283075731367492367283181246977046004016689795703957972180083045490759882163246379286911772630666845075626517956983867599813750747668432034983220210945678037579018437560241323498395392086074215618272403184176872212661346150202138189468300490826043355721008400217043696283065669599306340827310707272514431004745568978939255229450852714507924575342303363642097628503567727858341536176434139951479589055095065687114102961768028186424982619906051435638216199672745051434026715320295025593137091289111574929375953321053781300052208475136980498930170784933770175176723471552018729566395082847344716936930817243551793727958039042134475638965417556263572083512606542583867430260331815769688825718540668772188250918937615866020069239994502023452833542217157418389140134456541821043415838626651780672616677823134979803224864139980329302973389374089739471055758686606155144371495190458012124191340551650622583189450485876130128222333572139876977354879923934728791995524746287776798812484100638732077222296263496941829901945056845405704268139294783124066524890915081185830716698027457691967388860851698354483109784702213106611380361835970666133370419254477406333927546930781300078207549518433772574313687406698186129745411534330345881610424863671168139718463311875831003286401747770804958248707705121890273243945052319669943284783829592715336303581629509106709223838962007807882647696653833358473140319163981575796274259140467590383478054851982220531493994385857947433523748568554919289615232640893780886830782530249406391046406766204131947406059915099308431028525659818594765335755774546830227209410602340883495077226338149723505809037693223779550864460750812710643261700921575521005889985991378427216536511614967123041648843200935334753007909164747247580095218243667076028034787869636178869230460328289682199690736909832625198493674305711749827319389116839993301598438410448066494532346981287685800343014514882448746256353480130056508939039873190809373083717608227322619022387936551276325766243884085356057968656194280654468841282610703783249058436380808780039543192582702420701142660150445631445334862697232828236184735515914326108168379868100367819706177622956970274075176782672267646370147930400370726287716779912913728690562415811176243345073862270092915090994300863422696703960748619073501581974434400220975453318366150274330905207266910152705317006477073535038284851653499824080639298210237398143339125808653452264431221378334647401368611785911143123928750017963518654097807228724877127870557009964526501155357110926412850944291915055521471701934276457844014198309206864387161071183092214186860765285484336817753304373990399610732698989819111873774165086774683395912962546951439964384719800593660890970477865952124861865878842266354466331918276715835267897974730176087243739385077315093874088664238191884664528451397139211887141351238783347445377083189211577117185895098441264806378978732364491796225491745482889884127233769651421505806488736470556981785248203339645385290602793360557765680199526704434813543606872092924537656554416742777110803378005690536342488994518653126565218906223391501692158984858782237999533125366581195925195137661646153195600533581163138846435233662227246851260256470050457385410757849948065232317423672047952344808415214483421575983656165045582517636992216165901914646842878108203017061371405430590030714573869714242110199329850518690466071533697504880551314949629004678364653876540656354313910523093563715029555092499664611476982990124998604599601184787583187358224070248643304178528406708525290458155807584050802626758112798576023282815003303485254121210074416128466252666744298852030254050598006595559384461145076468403355401938934834791290298719075424836108193242258669936018383300185826189975974677815942344473864294302243892505448441947567929939250686631176648721319309951556622114664142211952998741411201210740141309107311665555660256839583065422962418203541417846037002943038577753354713365460220754661813844839476852352065253263827244523005548849304386226277495917497364009183686735823559778665285487273512431817915618139986537985870677354401236006211271064669794593895095692202927661711720621199735727426252563138121267437531382334587800986822400585529427426433108386115795967065699107337761856757706833803580921450554053270387965252097611775788258011718095916304210908027244891167688606399959672189561949744874995280936337736248470204418134538948702396716169182051992318354829793625314131464584485814080507289112093445232598251935464521781060545086599903749089133729595105929944448200822402374964566386997587201741439788504438028316736365695847665717511574319209960116711460465062809113316195469934817503258246468426394223378420682919370436316759596381444781750567261975645881744767372416693465715810324828170017741685352064870291593656259970060533396072537427172815270192401946280498777969759254397208976036496570912949200850662488193498126368430617666091257871086542915788133448344755312919368015254054792979797196768825320935485602903942354221445233249618499579463390508384883676939030690475641529718484694519194543926990293464062087813164404161329469886618097582117953461346252009438052421607286408772821648516121744295371555981030207249940282861648600095831168205400410481436546333998269807967452833782052483499258097693454570107166831464827509815762081115155834557645303748542034692412343909495791640788562424681626361431804938594113488388882123095399259463698791572423501733944951796980929129321544457518207361774903536891477611128450610608416876574756740937826293287900487863553234469623772910248750578981778826280414446298634801499082567741537132071997381737391998706351220975104990432741849483609628484342788895339531490221653762036789996901375720851637902280414510328025803181871151551050328953327970229215195118874340109001764073822158662909286535180470457932853761716906245689731001738624327573810010042582807047077118296346223506565923088832648976909674720210467445299873957023548294405560816948707405682633662381479520067571867236061120434104895371439069187784032988935021908426225733161749408932583569723483066363816673480652429874982068772770068213498616063194608011084913147618042921061557708057544256755835568324378751315965975254186714346131440870457833132746219642156356718665929845663370194596703203552405438959009847710488379178492523949675763326400910217988342497479230825458129708137666587580413905602059733142764204670999919196940576544940996871019945921884350144450878382046280772939034963294514245931910349298927248626180030308016529393428005445104777154669034723699424620786033393897354978574164062289364983466151237159947813661956531543100296879244920753186574723439550797249914908586660734604921022498598051004663708419970428423392995375585946659155468361219365193881702814377060706595781436308372838404800071732196711702535528507065894064069996624728733251594018437037949812208002145990373873791836156364984644343748284886846871912748052648251915703765249516801329626865131289991266103492992217721339700184804347148103836477832120808410787965834536711694414231688446606635310795975750848392110012823257209263865116992714339089526774977860690177135558752568529975490850598482124427497505460546991060979541956407686811324586627688412432454961285019293678236528975830291526483349067772320742626645765458465415251318296045823168038037918714037066605423882142731905122600960220818686779761760802905771123601358653735516824259807935807228180557170742278597264699633506880370662731831391189436700307993490978693806198887009097804509706724425468653147308938774772659967325392377333881042182464443169541157537863908445056076757675268032880383375692873317465206927632890210138389402451297232763098208638666898884870423824299824575124111959100533598598253852094009479641872030358512014127704818433768420151999099426668811943715634507393757000090459251881500766719353375176918204560764670193144630938587461079787031231020562701299422202183190178493685420469568119784444582379077258836556577798253144814428223275714844744858647075000847639362836820391550470603199320443386079700355438393591909748508043261136939052214493146704149296528178800968746470718385917025466117473434679078041028497938248155404396746467584752769468023330972973871812181747463913757448165791451561367521816154522750404342209244316874932282222901739976255459709313165028395772956169368086398009932633182732884711223862409186100927349970173881482421007736694798878438665575409665244967731293303732102659164808944297053518550300391138349527810372492922806992475122034238573478593400361728848566697243657287451030846403079436088611812678190848717318984717473425362707808912961749985438210783276033117765147259334198919094331888250884887626057213337314029856939933297575655592916775941598820401100275171939874175762658161112598852111534198259045527790219212138583980296614119037170024730923567613899601938393610529628144186515038528113880941522236650616764077170811229929788929266099473412500760106228214220046793338216552214419990215187232673290363085481488482948321126203942999661244012375446186155692502855563292540006334805529331746817125161223302790471531709998316528770552288881856396620209316054598346575578221701622947561318471366296507827577135595941194238028213455950691621851458502669745996715024317443045798593513451698261706996277460027366288257048256134123583607860755699431875379224271476540103944400725171422770178017957097136033553650258320945733687608352463993136249903315216575001344518780916664726014739894432360104455183579275188159189627433648552746633370011951633725790370681032206706894510578985766661436468085738214044403414785559271590786727494100651122611042143711312611731552910600649559564691040950705404729815159321225436381109399488540481262435360054916472575012088723152978300553657145027583894346833779538836171795188115107572939263957991652869930992896863786532315426886309725879340889173858384349838183366879767143567721385188591509718793899204874621765479168032495166220954895898950459427738051399289934156126142627020537515141833366033749136606485583755738656036314350044492719652719336152423081916803232233384127856961980790855516624422092109632664376509018245175797162306835009441036512448153147374342651773440326205199403522571677633675773945826101470848317837103777870305735012171292166581961266352256459805102754297645645246965368905414690162388499183182512916011997778240498527664005142343556477050243055969331370712922814747061213235916696259867325207944272334716861410622863025995838523479967590859183119718907362866964310200562853278516661636874814366267831012733500495994397339096274357964749909851598435575515809251815045213505557191201079030554863484881798364268669151486691776516645493562480046776866994208392469268544468625914093757678892072835007602789594203406307875029867377622496443594633615615547632343919960930724082249674165468060144650631774093836113601451811520838323024372289098802744529857918267565386774170106985497268756529665407459490944384423775711900116756886221827660342075447258513699704462089361927350309774307951228000672178749495534257207087851066168630680997509648568552912663171279082093350112594316732913141849461368353683581243607841260983480136969202873746878545335522709028068178576920803297465421932382116937235375894764527266050784829598895683546581170403734946464455902919395661475956453541448368056364589524750999744549134683016766451158867388665729296699019093811552740258966978078133933595532647224782049536053591098176862632302604967433524696655546591421751449679559912996222717047180251169126272490040355883886353891070834620143899389172609682850758924726405377796181222831713103162382852524088169885825363141323091353862150071781838169440991322635942444009310087300300970568756552074278436374262464167731668273716718854634515766286510930019407292700692189277420031505884964253830491346069256492170362344618741099249654534764258331896037240448995574358800448629468250858751795194287112290902232622133054761014386395805005211239550816685841505672436922203654730423508758482629918619486623188702544772713218178995378205408698382185680096553471709643292443497270937713624898975406902950325276761574120130120806092236464440786838953043183375642629517827211793574192183441714239156688829986023578450130744343661776655176433564886271857713818671784464312049069342636911054932082331220824627307259799561955783688857292201591965163997292956331301241949580695110778830537290278093575477333832725156862137305245061237069689168031229884313125284099382169937085945553814078951631246897879262009142546163849135246726188984699560932776632706357182203568782216141262429114567350756489281897912262788271362835654197810304173790754224368602673161404037638437465464392860713965773423903646730232302194635935153294566678027543501836860477031542815498929853799742324381416665852952192477068135957825832313091098232936866986431787767957388637426675917521694254057195210833656194316196587689732726597177598893949273605460894219684178605149789665497593862809769722365313721430476581613557566937529779396148202540132431972890834417669774688666717614574658711105123215651488431660987821559332106072435074223929172234215506585876402904945914600063410908224743025568126348135783520434543387235829165740379825177388745194101695164303479298689526380409106609688965439795712024309589938319633911285480864966734354241881918799905772430879021686719229069502929065860009347223793606905743376667005846114021282121335890831865916676407633028258381523919255391202561924698031474397718779867154472993487246557924477513605013853171911026423646964852054251334429594657856791176183735974104877145778564388553826281674464146232135771715990600742182575439786852584210826406379559939559489099125589058405039140017678050394767548534702531180631225591245595138133191155563296771220381559929036620785670978488754166792499219949093696591345301166811185105442632693801895788888617721476373251390759505357655189724704698733183718541103130770281526211942702201470222848194754571732809924667657715188325153595589811411252072689591728305487391997201702921615446413168688234918741810322366169854575332990946709867276381008898252781799850190092134380374549270448409060826507968094458597725701685847025827381183557024232080463206424952929623256495307419173457532976491338216794874598040423698137934566780172963720173780283317654929803876297914526306615821092953072963101974335775639465367141937443692812015284684290569738463214101234733832574795476022731108107284069567510291392018184967393829355646143976258432183477465208688099496961671658540641336589806940015125623235911576828651550289620327106641894584224273472461843191247289101560770642291513398827463501037722931623649768206415727542737942732601425900155729264855369520549198167192271360170479176870268542661866696117016205678150570857243527271139563648641058682170318459550490381871636195886704943568885613011626150475874715564768290238663260447668491170367064495301558068521594142376880224672022302451697915024206355988024568555513923032906400282532474733028636786025386909089269406264429296806970235988589749318375954372909004488981558272924779369803286540782068588360020434189199036355889124272074389934122177362777802162647363721616427060760586047566414088072279868616666279823775276784034122582794468938088816692989991588819481914485337841976986458566366746449226668067108353903521139012566407317105391230745441913080401641218860298725086715725650499418764779551667407570401266785832295390489399426545868765521894370422123682670014188337242195457503443800060227134175363470093269763519312465094763761515399338468200388412743362215898915799436656199035576349152506495533550369341339129506701868863494152847326859285237182126724433983623621935750581117738621496678029542915841942898561947028198326870465373071812284277109502219458446942165399584691196515711840774750652174634759704495009104485561543344867408938381135878926677921191965808832296679532665427491451608973666994930372648548833323989876993143003674880284507282452002129156743324857510070833269558493384189022455781763524183231771533293493222273690908175925109591793996301561695026319624950932807196263473612123497603131199791049865868626931663660287422393132948048895144813887829114868739389924537159896636281669731527649596494803750190790853920696616993504623447518996545524735840693146290791499739612324441084901958226347660572160564769697660125784830785322425658426714054192828048659014724564501052229224876469194019902340499539607189122383209538918424237264214125460546652368439150766570235808504148070723414643945549448707462684021054180934118326178260756737743836222578539579058771927494888188357639643333077673461033506590027652189459514133732565278954262800961729745450495417155378636220307640316773091953703128058789683653794908679124933118256082014450830627940293121154250501732421897171352920200680270510509955856514734767094604825363865498115477743289314149749524615168200308454495300385503496933705586090259424452970356710576533520468528338738108780073185834864007017275314471388080461787085245390557367789196149513996723376844357080648795493716134374628220425923263191556484866811123252303203378366011714904526108373019999730099059170320308472028211663735701963568204756808296227833737443140268410719739613448453145922625127997825548465504402321092185695826288165427059861311260517458504730219046797618291682577793957873326565733345566562555058892197543077453956939528029680520830990631263581949600425788889949103903373680804768968973359647458014060863275392443504724125243987820512522262766878849064012907009554889000226359507814681909977800308944264166095020016455840320932330559924974905114175859646878306078755871053904617886963062051902486507065136898527665394558053630247871580064347562596503906165262848175264676602513137104862543793710309405350363174637005540018010369306020170808515877219527310651183995358033182799806978967645692534928822590992648905183200690647342589568716072324739934258305220773619488678630894161948513751289378140802602823296996092127577428095286423268470804778250646504527822516603405846318243076670943816091597485391994326763503835763481506005220967682732821614622908969446064436207049455468810961079917802420608869722790866796215556761266909923526979214858490688835177006904448828957427277850658740071410068545276345342083244944267181993759391764888234398401558099780364573910355620002762191091668748213034127790424050928738610117399717884298234249718477682649822048729417716998536023481433598342548199957387565207358649603994597705673134279127772700412987804195195471933879388669814317365182585763029634759304875557688991532265928663405779983886042697924808017950390911806853614967105760810291723507213610930582589128262436323138566341369197434340761711832367684897028711523494372570022509864502749502721028461071507207124219686491571798335713269468971275278906333555996030024726596417956716628194121411125642669496335764099797069271704759698770705482593628768573393614201742676822785983092869429759327033496786809941121240326606301751654346359453089457146308850243443186014501402863245307186775509823590777808901758675087803614240106460697232335364880932659820039676926212653335113472120934853786413642516854206504486283147404511875839037712088178811224955275365069097709227079180715886268570887443662480151238344498172950310983393735641796091976695678798681709498490088192511672118603370026878338378832497878696198516308602120898664405518406205810768973698716744986149231137888557614149968645761056301995210573138647188444296148939199893684934690621127757135725409702544623832992202533672133114064444935917001566622665752314517585669741341125666401644939924786524623500490082738274880759173079038042191958679028306208996542109500442849217214232238862440610060071640188475331254089379792862242100092397797381394517047826109134149129091447521920687014525962535755685395204050300484323488247478980599199402122692069090908277956320762321881820097165838175677270291844783365116660131446417429339837520416294133120543564715739529018496614418374146155435733645593340778031274236773170317962984441752599604206096448566578179591825006410906910041748683981108046879092335743821837369919069369706696828727645318564734374517741928876433155181471834586983786050170232052362664622439499818144079774058243076479023704009548422959403396702847638331038837972292695359288119268445823276633990930246499376466456166226667449691753302119199869251595719761217969902164447555500515074746808932712505878600285282390139417183716803887699814136673493109709242279656877577998635231765444579342610594640146828715343253829178159153010016369428324540963714505388560838544221438710159098599573195098198744128461980157307950465700519947838419894733654158603452435901657159530615914830809626464923536058729892314988534971610011146412596819666446846784485946545794060710438175359654141306579920559604327449421335926447727641846936201353066937476504929255525844692648735560592370815100389918980068164235387506313996221613011475397611608393516419305059250265607345662262281758588695759704583107083672872017236897749061056230835145864771615714580420166852850113673246549444150774548901465675802842787784331323690233446579025222073850473764974885240013747356326079015779307148847396849927782161528658651811670143273976905395961847562113433585206472396166793938156373105467401349454227667862147476460581680347761834562417806813443820827319430374613172137861582391958504388765665149339623826942836982347040619713041210244098191970041915137867303074631843787680512109320222765288648684786863103624412729057064615399302121354006816737952742624475997681030332638208200944986988583404124679331668860233799671173158376062768383850292487102516887959807343756225471791128802569722467093845332078223623491219533657907608305920235453010250488360951751374525889495702556006262327791729471016546744767054733513436624903477633026975329045873347703482123208872206298799251685635503724686343534936219311927729638847965853580231759914977084433967232727747839713930685025052924455389093294262428504549242427787319201002079192790762651397315740726957976869979261049818275264242114668749917518192016084965155814127025818647746777084313865588062942226392592290936434721685846123254028166892134159378574885281459829979468052484207758366526714026142585739671847684298900995471207194945957174684355378867040533971257238933376574384182620040623406042460890023065014220792020702648999444847860663587133283755704711827431444792555875444010477647283185912673118509056218478997093523409556367122581204319495907201080324053059929870143137561793686026892433479044570557130437522482123479877480534224592267070493073835640313059569521057723509198209448838201325966317350450739342850525197404211731299583801180958093544001266977324058902419317893950106128706425938841852043730254794032344338830535033241227303109746896816287489096979644885992057452612677058606098370775839553618046749353610128892990181325383757372388080898710844191425150586840528825825304570097804560417760940753325989822712573286938697007732170852175836633678472307761384405036907076198466197392620503174141986589600991008321906081435086558612934907180900162695512107473111456473772622992223018066117560027350820798120191264299409631877768033931044833706717029997444022700180242210164649849339322974349263816117542279272326666432013998708108020702402262306772960850657902430471596586315566065081686282498827506516095449165643281537456682803707484340699575685312921377160245962490457750344493450274981644825770920480367717264043951556504310430879639731493009436573275723490717347803812429374482843554955677051644412174468043149869882889412635077445912081524324933222926608581285045661850234693964283592224970223789206197989656905554586924518641566199103699479712089575792416767504160631016663678233535632457314240533945024710723677729852770865597776039139018345693094215313778980688513558111114402355180578540419854122873150682566948161768728990208052039824041876091395487088021078068439646659091817000607186794948543499067133175936784520737508456152547363118576076137681009377730742718920883297148676929960748131889178165092073238621649353448988299937982737222695639153496107709275965748522426908167470016735777393360036495585958005555844355128448495055112873817957276734801144801020398160391126032027987168569852609582760540293546621450012374678353880863730983222311869422727692557014005346853724878985868094662218798790117002533648043305028823676807154383964063417604417289170884147588426317942876111714307990126145370226415519944286037699602171876298528169193778417582931671076388662023135399022923926053350852502001925997798423698659378942049530451320860970354246232634442408596572148918871607385308599591219437421303802932465279044278055991074023934428696834036775503960159801564980520439456949471328128142466432819335692275841145957267977185404041413132143861173462729287106347202471278572892073747131435018322112383287355460272640551562310209349261336766854816523955683893047328675449752197214438844900617110680542803395820867979912211186702601773526309108673789154043938664188821629775465318434657866357972920677521649255583414149750773906351747638899386073702627205977066650558113790515566135265932974417615538506156407519033580216471302748318288996784977734816692919508287705135936845593796924205676204927153705683866313939502776072375007046576542783719868727621470826707372848649337857581109234403180230304288057597064770989333914224717552307917059467875263357949221826246359255178109252939404631379493966810369523245130400697826743139134747322848403973988272947012328984597959284957270032434527560522014070982363200608830046670487624844447947726970998819224509102277014321697854392385237728113199662259657095358732035834104326671812991438452253814394043508278922900589829686322925106542785306635012174225245917354266490684726350585033673086826712275377624185054664689161287439741546694792688826133003069895991536184303587336453436921216611671380519362814805247014642986676171385597644071521033537983083390905947928148206344517696485002544571181202354931941570547256131954153562886407560457988647203850762815085160975022224233740940392980302832289470305596320375538911490511653947327278944748151418695550402107975986694928835950727711033959134279485083527600291612013614621043957429971048787007658885728380987195986445473408759159266370904123288324143823482057985947124818061786531612037479501479287610072156039156182142480762172119093710707275069704614676237289424836831826502570126431559594884157244303632158984530846606307708122482216251479191342746336218552287044040939254214125020435763146256235578554932296092543316923081555867194034971392040309943905863002041268546900118145630138083275582804297792810663074867414347300649047803307995235685327817485664829648795548800293633312242624583690018891109822981390321390568681554034509516389475628543519061572410832838260927758263129714815668588773959308907704183482902060628984597711373968847968774878557204349592241524547150140840794503272258302255174140755021670393481529299938911689024098350498293131324154460017301208895683129473324290774048543913276467049955298907225677816339646458337011654534338830942659499648830041132632267204074088406773650950228498528362561457442303956313731904493320057312956408032589978204248340365155288942091333552869131208229473614646007502376297801668124580863020840847658300546853699764559947481075055945894465312645975045653087899304153811516812346052343471518848536577359545626233280900390882690996314043838975796528365665010614186102826177628647659637002603210464365574908784017494146574736043363804033171517878676043296275795444924372257204718546078484696134952720100643289767454152064886393931237844268593781503718153964380849725561728183824935451869014828500747684962149308139400551511339508213908534809046163794418961347074153298699529533526568627297788102541951733169312788993574533428631799900301560026473016486427627726289991172451950596729822113617400555011972191775231979022132272322342820751072518730693577054978679912761167936223088778852391094347758494164977415731204020656501926625015935346955590051904407529485037252585847473490703080124198068984375747619906114736885687833099612357943046478178598657098322267415556639059336933273391775691796327770239480493321050877455013522954913015258547625150229074700698440971347167253083668989777930102387126907347163505812438601003637271879089261409544000842071693655914364183467841425753572307803981923189226635844407175670707634401641141751635250022196013902844551805447109633510935111618323994000535839783766560601685192800395945416494054081512282059143806272258759866470314065367504708315536471431397973869565328743787467662690085163130109431555030300104912567633614956195249634121436560449134964744207994084910048747441799998278917114377548883966340766327600992519573265637194936149263319137914352043418939705925949676636220435840217313317543434824485592473587410693286068120984492360022268493859603947398075399118061136503030569357874955849733086400350347052300755311703370458047534410451652204605445485096427373688643880594558311982241259898283690103254524842673640116841582945213785378337161064963240551542778634944277310342892167983895268257606573607412088568430751208360881326732047964161065564422431094235552746342578306895047920681310235880225113619690737210486486124548130817976674106631147875778379618994977954111077336598215140831663052478037587173723120828813294795998093517964767200404438621673422813730516257521606356964234948458726134535955674485603466519192230674734196175640238146051712116234059890510029448274157864772558049922273375203617343142483861297743942189736336574414460061912351036253166488372513447389384763321882873319387342209780592703661903436177867178071930599815406142008154764427293453524350731959054076382325029923096190593058364971616252229130811894065995433602859007462497017786049184317549110861810554674417907169890349806319305406752337111712393869061821150287400881373433023291577455310629124493040366422090045667115211548202951786470384198190361786800121295696132188760247077812624350534199748194556612696606840790162254610568498143002687224754561612368476282271351048622504213427558925869232934846876364227626297164720852943129771204460143430677300857254518926138688676978019564529691424970179798073724415744683899164832681319017146527987824934037469176616240947757169761139587809525467308255471780630833102817358305423543007939024134149876025041109730054666719596035494560623503206737094461268729308083463870939796219887388737532641090770465512111966929256583122462598493865338952550500859949163053918274237078239868728185133255941299910397237327373714820499819281014395692281932414476127370699181901555997521254960266375809166430988841653497709888409136949888966203932014967508494970778808260550079612478370579448403151209769289444978466218904354309714873900644432978573530558991858807479340436164494522452496999847907565373268488183604000394835757957115922564075055130690100721429551343433215175321509650317929910639715802407616101819386272138551323559063789431588322628168441401002215729705316731563973277243964595596057502376985375087451174510822085605564220985723175473471598631383534653483956631382141810688393408806366152114027557687221182008047923426086141908620318985635300262378524730922347927616614773120682169676363695914254679068135980325132933783168476569996349971162683160681566086039237376065513538053206473118822372435123020254696816675813632876474999204093599530769643947387057810284323358182560571484744527899580646106131952673627445800238059568902632646162585406486149281671775663277080611997464982935504815980062498494785995896232205781771094740470986892295571565939895830075706534089270391773525567665058117279027139182888675413450188950547531530188871393444964821002658158306094468326413916986965423007497782077717314249483750809675047722661398773065100103678112562330604099382298397268864035547945894125241670921286723618783614460027772117166088092194977676657581056299864529797490001570539695517721648385513420881169578603409241382582173528708744314166959560556937079362361413324264971730791542960235491222039272903483911780711433659678074953762981894842642172671005389250359416114247976258569966517303388841627309179707963654393669818916193697126608532932750755727134578559767655500033308943823378200196862936552386439301538870212964393198741144104791535362082379159730090970596888895147351691767259400338805575207991628929009900002000499916279033385934940068050317815595216269667254131294030383170526360193780323727614104666294905151702231152937694544637539206996351656283252044955524923889565605708822585311051133808994863172883483463827222436630144508431566724262061664452706626745023766871373573089985155051363251994893983385999573901520168619552769929163736200115402500904553844980826463661680275815328894140751164190075703585227712145195612167391113182566392013914341311456516911768344846197070288532539716450873240022251430339289364466797863872838174368875934107852940549125966553985044301146286414461108834717920148216912615294297731870506910376572657163188380741005358823192253613507581612635120450639432997756431899802435212844436411350565997364265526346623083011463542096945294444268012195000752387418163031799770799218450550395994910965552504849480903123914540759767651267771622032162746795832447247976417056237622504702082487180678523101326200220040271758974373724553151436774754407186790618514156486695428162067053820735978962638017646608636828431071942417886752727835263043495322905932890061266317694709764658017695531629364416693713735392255931313753594730243481142089928607437561905115069672846470429545507146908040938474545326248987934541081770691155771896126552530045135401826187966963599509288498798856072133455875206418226732500603540997173893959728735243304371244185640053009313947505018951462284176104730475140252588417352689702278463799709889631265807794118541453244217952977651193065238780417565546372605673445548670248531101289944352314811332232904353741445604507713553710367068203566909855949270654748322365335468546235889721276949932644229677879040451556909161774347318753125708207520522004730667567815951040926621710420418186184625421393723546814675247804821035047356568637343905813922205226600395507304697425705961570522101745540271202384980664271808727415857254138593692505483762745238833499049649513055404401456348805587553105774521217486410603812135691242176147248374582476409585885842552139866117539168696873312208885843290876404075228793129989250847447061828291322926056179169458419404841859469552333754000654170836544419130720027258586644903991160283434962613182463418765267646963341303387814168363310638396312084108904566824607015528161071759166192721135010664553723659481807780691282876829037361313253847438895313998483532896082967365061594776492617650023146435372340657437570559703783344078040413217675274429895773905894590917109330429407319233384781796591614973267330047937869996131899770691320093597508587364104417559294824619269144857397163813830683447058433398393206552808394010691947707777132244321181191531052364952688592600394899560992644878995712561671640697352470302021494475077940387757754613110200304380231730336137404141037274976274584456371593141572110764111914967456843367172872998573612159396685605242290689924375333314827846493713349280406834360042469464424198985600100485608024577399079829686508639857228045501599812782108077339630402598525965216191410341446941363288166662376848156221647298459474691271204939129881084629227958359151774196753514806010797532486613386878998304572854147888918990539162336135707009260059317415590012734456402259865090373568405473421733808698808706763425412249269341754207306388906048183357558156655025549112571889691808275666893230718165706019036813899583370474651470881711703950452268509705361716141598333681762211904836804911958011090988735222074165055623763235194400154560750349835995581593777154007588515918950559070265565602915748788733054618257250878213241584799353565964709620296787099533348665777582385149904758844734554938982266859849380021107232609595649947092165624081236185280074827586339647751868942018220769642466677675143547707374197135213518930402974830794329781116446699801503347017195279594596528517797576651285166444751322595662820276194327177279928358847282882156690165126821782382423510578806619312530061770383007141906255428172229070961145872787890510075950347672801592671217128606441254155161968172526940009703735004218947744811369772044993001964195555402623263266643702971704901396301552000898506211753932788817485518062260597366825445650444714844706975201873997907690105095265374478685716882438074867436585374036719484344702566516518453161945230044821627035828021244251386720036116522131847368663844551251011353610339185254535519799005198757232532461811048003187147242904718405531460295867686202046564138885580440713196039138434686687247691976037360977086085136319404020840715318407462456354907731587128406203737114726376287024255605102527654606264342782437246490730819734907980647263380965298970155095350126591694996071107750359519632033884723416390611084329558301166868633009342397691948543681621596801081766983846835859449079453547746542712937439460058262923423393219729064521148892180109070871890676023893268717464879703590217054804530624115815277276523168328791592070810611118010353626648047921940351319106988035276570486166703036619489877225281904684385744086579032695388262577927185282142731256716936814524659489765486202517707655362676026773924365066953178268296973961285156204686873539725341554954040849477316882392514138417297178437333633287036053606729946196612851379244884801038625096397842501255684032359629514376627531139536507490369972803204520801658871759692560671581514370801183653696325004496202704336352039576857078619244079585835866527560217192399598593307482743689094669727287833732921516348985632981402587777351352046745845628072758331526285100375724105790049481613784902890506513275654279092991356679949388105154450657486732066149042491303011079808449122662637040213907911412012939759012627490595627997156970191424628921128753954488293424280455261022157226656894026147239365800861217814446442959176790651876780976023770561195179801956690157900702395026654836896137260925163181380173930052145831616505068500164092435894417174086370857094830638744757207765326999440668854543953769023322808244859207890726088541549699482449530822729448082527875997455867263246961828694351623342815143732272925730789875130592451696431305193029957083924799540996964714644038439313182303177653099370431916777442876248217364782228228933850894227401489254561097601916893364361209379544617908332927450535142502974037625570076075920150076606726160790492266518636806232812273698423467381793037646905945056219083905972323183013962647805186556106311517771153917318039674547994753609120714505927074745921444646604380181179187792433545029496628466764870799641671007139160670836848277406028590081518995183446744012379423147329005729571895630938818388422662965722494525626770933333115020897315578608861398099458062369738752182568624266621589996341585919839483928831229639020068847627024624184188602962915723136120997938947175613144043597967039464879672282785865423101511003589844317047440561998582340321871504415136415010965072718663087718535410330378109096191711233410405450902106038760897932874222938375736418981093884719898078339192637614124071435783107711918531958056744847186471962871339407474233266168648410732126249404356704939803557218108769376515765815049006927191101535264520367616288961828364464714394216349044508611361554214210834727911900490772925072274565060948846938622423294953953391446074493149647754798622073598524475126146227380031193029629646654790558372540955909682970477121301543940885040136840457110045879562710565479746099307456798530003394848532421799823441369206357099583872603226904152249026322130084694410791158406412809246771220268931916824741792655576671832265307020864993421716123511951421083122680085688773041517281309042808062311471997412645335393315750167579664718295470031930838100536772813499068807577212996948335506372754149662988933748381154091506007975118159369111067387133663846733464572314246363924332738356213468401123936293415384460682262941108553091298168770785252110707076910311446319542744752134384713239500522004024992510161811067505003771928515202619688480948862928898044907492363724226893799060075565784993589881008692329038054831012062613666275446955499852612510576932102013306394886824351789396285388390271597596036313161971334233942369882782379807549315122764784810737111525625230861113130705203328346779310023027691968672000499568280611738261512504560668242035738539832799026654970045230980283907634687411151563457574746656104032792938449483369867942008424514399440614913736076933230338745727296821236675780759457105465852863592365574966877005368678526543792523519019640841099285221270951762263226863624889341393555937236015879170160688938886632933086377308280589835980260760027611329038551577288370602170672677573249090709415613668087191534753537654437745683387258911731641310747851185605936657949044988705305413188320359188964216818163490085775662533043833696450296995534714245384174798437327454122754884001822062357615808212970087076664632602833036447410545066630962866326608644837572767537086404048525935055410644450925095178954222222688642021763775474826221943499461280599133031000905632919952052371863852606704081158719458714915943712105519838719268749783328259778640736203893634114104559837110278964946619085349974965612818693072445333788281917231821765406566698941910448914785217485519921213473467882567650668555077682692817525951853857238391362807654643410667429220438106394570753035146450982458097930367447621146476181091248521749631068968390392598545636756056047485011611745755780539071971930290411603230442113975084606429855036733816326814434979985314929979861077911809632445228390289124332927131644082715879414585082308587009923325226542431624922825090862887890951067283580430969913953685147363124990792392824027872934635304285737642082455001572840334124139863607538237392193224103174387192838123095115098642159444326339566219298220159022058636399452907300652296701104791590676705693169112719320411264216281753395088485424956703899451376177432703593731658074601203856310349171652414265236565466643419461434013835346004948675552963163955463858490673978285102649659791013872528748471074098323863008488032932970695055813469547561571043971547158057541418673732715454871820993524022934732024021820409394383395659444169120370830621863959564213255654237406566296778674726635987773050837959492157372423488380680126626724645426046168741893249479578646034007755877737002768341698507816863743021713662250851501021091132081146812189650764604364117403454715313358101349253380258509007419736186603263475187812620229830638099608339221308878552246086244200028631341555103835899650380622949600720701717100357843264763303232743033926247014437381542699357004011158900680281091205343403549786169731024553199113075449190382678888248770279964525850476112748082049732553885300037897565426995797404265899365871722138904427120984464138756088738089400518536964568318937744055688827504764954020358585547014192203074203464521061881615563643424659544763883662619176798230908232420977814407741249642982365274631026060650150721983708349576272458842564258733095149137448800331863851978049678792121888931367034677697388630147096360229082731801945483307538734409573647174753115836175448681198041054346499732196265873912444903667533039193146474249515317864282559705245063078889950226429045583018794790156219067126688501425329147101353024154999572953328106276884499977102803422647928363884450387268533007710782240679914542357866870895333506528615110467574206562778186860461644061814038788384057939977131618415298280849972015956894293997071159017632723708046429355408502551750446218285433761401134881334113285623753705961159496542006340823408847866143985313304097990836524507533845382936467803365909277606186888975604528389864415493823469003966254162454965453522943026043167114191510873112194503645606311847587585553508287827531105563491280999667943749843671638086367427036787613824250902107648376823122962246544268603946278571942727848818596241614688505807209347846307832246971467708814197799286276245695710683029058078187104781277437888610330199885265043831463204777878724147282551519920577018960145657225296643341763611182223746721081564192693668117202906364189423486348741182565813873253152742005439562220026247804228627691441494195325940426419454227082875534067240454642580017763512357292497323762001174380928699040001528893057981296054616858407758714950873165315658164235821412326421548032791444130344181028206500226269195115816638000126665974128319561039005829641516759328551762435571426852265027927695042209090732303000744227999521623556331293621006840443094050832539359012368380977276400238663730270121438659764849528134034224268053589807429689304306524423028990947325674263548821568039791211082574210153283600960498095187880110017918404727043101888286132176258390442517187906397346460127269776699935810753593740529473013089444620521467808858885873216076747001936765710966324348177754652378340247347143854377608811788881251270790086394512396975415468740795164917835875066892179917553476107735367072554642546110206020005669751903378538228748109687915954741949179284763541179739828904005647234285082709434198641033020577794168469624780834432973267195584187714293857488367012734503694535233136541335789180342740278509289575704272451881376688856524301497976663415144613301254350239991711474329962988203536077335781922525228779935937011425328336723388574628005545191989494395644534045445780212695222622994391863674277139181004071867216250876391259736574763194094736999845873029634292050046345459003452335605206297125566861700201966430216575379202768441206626690376620742601018746018570892377872454329467756418301824324025694216648684914900351362761753147305732015505401741590670111221157718497142039518199216947138449704141254231684738118492515138243248958523881119512569988113104214986693870144694294728146226464885478153428351209104223175013656968535775704001355171614935459160495033350944357442917161257463961691665614547891876111277104252078198443384885977462173006591370039286038955720130456125793608257294827015527950690909784886120791415210479146054967248575345073240363074175940488048613468599774478805704531072071163467597202896579648982643229110925879469052428129909342912035373399637855217100300497004338143952800081218271633737085061728820615946099984960870747288602552687521997875308959721340113676322455504016030181622946298847830137184039309029958275030916771897917266808965607501061704256937238858862285942131768709367683219042419927836943811264280415748955050482756317405987079866401955022528549941094372348602036639414222880487325529021023613134571168190850374358434608991416593754456954551949045712044589139610950277086309146223035434606948301279524467080822274646470752846296784446803858944411107992942097208658302695776815216855590698937873165437722469751369446236031761565080432452826064872820723773891340888515831798201782208664694497533115625216579895013330782673370460661725863036727988726944130513681371720509251174096833237998704118497580470594682222295549391908786897933168499029998357536658280318176553051677118728972600904892132647273981119546105873084673676574885661849691713184547739953345145179834311907664175400368535922056909399356824285089338610618876276971818624327267010862631512411455472737973897725191227412710248241920126278289406798751950182061136251587176065365259205141984164695224505837353374333904266416654160511465168162847568720750603252773953302671028032102321164570120696349370882685778430777719066247653586170094957098293563937416983032396556139401369371598348780935023865104518546263053792223152592990358795839774781098141328779806903543896093682498257435143502175300862901691009184718168825818243372594233968005351514757495045788883609941425284923629221996032802923868778375072229433560396226329327792792922453248881825516703565150645635321354998178763378261637799110001845246886206136064312434300656568144807400843795207305295569052855464250413966938817268166411845918749958640987598688772440291717140743509966528902058868562752023230516806970002619187811199138782705283903602031517211782913969701919398121134020908746679157667340367485110219825622988651769072559981703388309939718374920249227378243416049614182454518539902894383996025158978073593588867441930105178126783676624094192350383164025699001861528488565321636247883161385817519056615981219748888517327253207746911878582759999490386850482983425316064826855980574185577342268712633259212666058288304164093104752137947269423019990532268246869770593027810619330549212260001606204317375305215448585089335799887989810100367797373012204164167744260864197041322381609079874476846409389336240638851845611500741279956645600406001551843562564501498143321977496225977280785657433974710716266732255220990177274536009158206054428936762808732388828854578035764090955833443674194233322590325744074354187275058030822477620577411888508679514781727432785341830588019794988972303530409978708285098824240203631032989157323329040202972848934917254823795028425238225149432755850744015917213777961132015185066168507419652065949537118856423152062312257856061356938212756196309733384189201325682669242056410975448777168393388721799081869336903115292110206849846217434151886766891727204941118648806948603953169649071544633406169656935824608055048968338645886488831077638316067205011742863439545697808385369835316944566049378053738755039546297114842764044932891690030513662442748648035735468082996499528817426583685165066275394637053712426738527201510500732217751177263850992400198068900662409483250827863531658570161691738859874522317480145923590050317795226856625956797109403738400357997271784035465101617724030686177588484034075639682547234310608134727913857249293980063538630632987944416717027803750115056537356943813933494715696624937647266261436591837721158136639072447736110272997187351840571459623161675538952990567924242065839148910405092267794260746441083661564400582084452596289772868502488739862220674395157544719138276892244235250657737146183163896708008489655551188490182918516744607982335133876976273510528686489115254553340772562558738916478164899831980875544722697149897971057220162846115222905457694227362883686373430445947028470018527652575734983958228605477967379445122691239085511364390948945657804318708840294834368067117691208534906579776950936025006765946648435920881955770234626150661313349541240177091382977548347312598424652638479267618402757130659936615544055954923224623716375953948688497834065335843977112595073831732504721923481703818346480495967692508815580971441792197659135278361413180436257249868191996071575664278468649428778657360896621778172772345459071826868958154827080230373893634462902088399590338625884148988082007678786630394042197571314118431350725817733131975001553170855473610669855976450450698766509581015253277085587899429387330649827575141038897861490801285494204618717717037070696396744704663876687829478030155525413695361573503179384197036274164604449064914072475869556066042471651546631177529439579571273309794950156101201672955827827874542093273577570174852293097592637489579602100947956850895525854089715098211617432894730677824819580572513371816638535746809255896988771093900687695983407951466908121784112500631453397033166475106984287208647350443405669144590107200864339253887771278374019213052213223258637297027191153042033223093497265894036855538456054085205349932512717089600350352991001416900633396976587370908747823178199349908875867559056190039514811538492981470193359767406561015001174337904692571226077274509311451250073549971186232599832988258148902666365772828698634278666902641998658744792857695849419331428493873266851274860203884343185280368367435494052728728117867252644401013154182098747888803346713046784877388299204232671121858788088995898031996919750662763478420339339995359941765959283016610597400503587883427652223165055240432708647440821785832696718425593386324366538801819624053824683987080861430104668043957145426169180552487696859536241275162423161509423211326455767692156124601516824228114543501643338454701319551137521658041085445128682795550923725597859286534724291171416419237851780713058660438690391253175552857748616867204897010999951359646560957580737933032408992328054394895878671528234777357477983882073006939757686549197666367338984640776326211642518266669048226930339187091640310542755989156185271328778115471283769346688924435657036148637223611540594354113510359849549506275483884374169305050593547236603226811655297321089828875038856171298424633799341401476353045282609111657251179332488132449639548611368814311221817101692431629085210141581892162483800991027793210963658257596308718981053286514028253326916476438089389408657261427068767716993443384667062903193888673052962664928416550756898483291819509627813928058983677065591867870283601176587263870805013042561390935909747059902885588149373105744160055858851451179103787121718464303442528091772393834766834097861609272654122515342397195149910832892848988650874970264360541880246419830259117632937263016866343750529333765679863914292193853293657818833735549809279523055859832472569228467994144941241870315964510617899304453351352623137914928471159546633793413119923276619781357969186595968410035285735967250906928843535564961423838951841933551236899300096521607312576511019769588199605347717766915207896677323878180346585781297646383605430580336876582393531864185347170249168932202665643125257744808997285832788931100754084464476526144245180389595285147999571377602114534986355457543068839144051160331630812284825000057409946539599622391656631824763892227880498457054104375673728203080518616808039711624997265019257437215543958575287351350756714288862061431642241072412714046545674321508633450049437460718422718458778186407755498773658783892638797539131128731527150448509441440402583581193863228222175556287698384647882803701032976040268066636728960622894477902318735345894277849515047530253096491258187533693877868875319376034569354016408477613149182506151466732480422899625947052798113652763149767956048276307558736970988335590149347674615228457055566076184230513784815310376637423061325186840122601983503846624136981627677766689740254478505498079905489667723981564439202382392971876241811134861240572049018929009234526233110771293472411747667205552536780121624244530278087096515464512714785979706382292492257944553963551677741176605281324859445398800590137126022039067844915158017691169389721476233626591405982115520523462998820893171974707225706591767307118762046518304489025572234275454364439620581229530402421859241032602365458087113538295975250769674443523829434312277181255003566153294830648541846155667144892035211874375850426845101404760552832992207040434552171986660797318563255633590041261112503269408745652242877331207491766816610290037992192192427104311519669669978033587134269131624406528151652853798687328724208003554207797071822713405773149369184976479413122251108776522958039855353595046601852781511114983810696481078711885013792116659792718266199545625240813404363986858587557536472206100874230275130707593317285387878381359040176526087537919870589758105132793267523231550198446643980661457567503795456658100618967089504566207756147216486327229543745341596214177005485716702417677870929576792360418648616563532575911265168986392080549188721433189690584928164818250224359007441273734438592472089154164500493250944542949559384342280180028912353364639006756387092736498043036012718412714507455258034281257902954251906811819308623742198883375910229932316758848885613655789644676206099459565272469751410288102453768700197574583951234324273901787633196288182750005232396738182189089549275357099911077889930921269521031624327716455616434820016902946977458906687092617921343638707752999892471080958222896193726245440402409758901514245766557544481922093021914536846094045271760712364123021576881490186516385766342127514390080546250110542450706555327509989266009717909722307800429460237863168198926202435269405000566994808554682160397584114417132809389359303045741691859759733916643940324062590334302288903118949861291261195616186597138489481393375215180232417692060739198816178344724094282125481985294610114502488840920255938517254380099030966448569363680414272541161671315942679644466303833892219603132548896109671109460036645805088653160808961873676902432542528394755577816161793634918444622360587683337104035536338444051146617373663136000497608909648569936859610038503216447313500414062803742950455964096329436147457104404109743716516875689608417320592809367099989838479121289923697018355134623761791288814508496677313786286620847495587430443968758390252501423756373610908588775585503638670641688049030067372808198922964324788109053030121930883693750424357211241120618656751655416354915872631698398936590610246372573151558171276952440244921892723712584009363760663747984857735536907979899038193509229111017956365544779921328605121976528082401086266332946643116459769186125412819313066835177973601983976166044160166235558949627278734101874803593343278459139185369865994775466859205423751571235796757108198372987451192420096880794098872861673494595483796012452647344252684815668367348478562136893593526559193430445604071639688412767147323067228164770231445606971683205360884051021451876879696329133316019364969486060808040113048721093837216243658899066723871084853362193415437184261590821726991059196454784672274021797053588370679286514731317068542567769297567888296031165780180538283374554190306070095660812549813776856848071479432890760164652593426770422593887228716556892269397598736576644108708179224187425475442457302001280407357596289286635124935430327574538934025750771153711425268118122315807272393721755286036029562316592425961104718805242472024875194857484048050767639611222094678087983141277326151852845314696063658165720746905506083663856197401200998915722915529454945630789466319665375437177793313900158168612270479695942400133033438409710081618429881878992257398186904160732971232297695649018826194725884582070401617831496978237415293397601871519949483007616705977026395636121864865386051151779774284386008277428433063236993426842097781026579543721114870783062000752448507656010023389840829836075430860530268412862105980369703814642673961959564879014241693487280041995593221882049632833000177093501633025086004150357918198967083851098646745765289853241476578248307113836151684804078714936103782758132736104198838737673884923088403678406309891905837596885468356200641716886935880090502563000595333950878186659680705442760105350570639848894322234266608483191969195849537388430700961556392571833744138983081171983882077277444105016258830101898842849375967105924664442029229461577996388337233627327437928367539311973493850125558341040498942425481145508336059767265149569930300096487380323580555277978566765457180648778021237763317330059071393189204437924628112107723711966098288564158992647259374322734474562307267150847372531826426981486871005291215717636632413266079321005942797154437650302242985595203782455779004971150414288832025745720719549210483571570829796998023719632865222982072969852453937501847079523387878247521834713016640229302498527902134272214897806180255282486953297877872140302864345724963718430658768900079158800028453514745241191839443140056476520393631033216586740646515602040587622074360433562615075568651465675047862008132201542943693204079674178324069759995299404120148526837093228717094351531423777610569801889685556671572309784516346355224951121156701362265435620524044218814183354425119088146771102455208581680881421614243267838620579549696122911027619570703611414376833694785930912966034422979349923011269327882414196406881546080839847061442675207129143173517360546187719351223212230391548614455647279503271130540610314891256664246604928347902980005071000764402878940335044694450807629501823233422829120444237252129681735283530449692398725593631639067657260818884195907134188229487902858454045741226389923614625629462021095464377448635427462711251186450654855791451882854280275469237456320022986620582846756664461632875250833228660119888611028173183564260773134174783599058631130357936742567711603856566044270401607802652926989279205639513509372552763119867283079540766387003497440502228370667166064448500617767510798782442580910282036191811836581007659877505755815557146307471986319174358804892654539348500430356753970567093312632472961445757053834227343181861784220445488273612824001532807243063863449143334319688105372378364914294323688345360333337529921914078424540307558128383616388010677598611474323078412569162301432453041739067620750961648705426568204392110326589748221788970996549530015178281460036966291657250807934172370579934153867627437037411820857645195616390425970655094230311401734614598450344423325156848138835578654113117240392929219646922318180966773123097064610934494698847866776151052990265367193685704675668639119919978497370352298841599293540609797077197577454937956960618935084064799383617649416951268132030087432436049616689088566765469209476585207042192851197518118638107905275316454883164598092612656911291116427693666416381487846471038565370274018458971407079390641588357417475055871483019829052962339585169812709318829832419737423488315934883998288333198081440738455065693056740825404568000830627069484926106864382746974102822476251055207425374357041496426600331793304943116401799562215642174634442438472716501462686665583456027792409249114547321405633215636996333903252247914496889418977862479995533054256966225580978392465437651593710442912693569022945326186444119126022691211801599049096202012630266658300733191568632193696264890398418635120500187046288442594129999692291170484836698404376541854119579032767030866867401694492515077060532849767538708636953458367365688604278474613710925943993680786212015647899510816075488361315758368158778239573903879376479558666215116619612033253104106740619579981210286105831884213170084926293576331291319415672465355030510212413488868610667496114973050216998994640192314534257701365488293181677582817445732871690249476358470772838894404041694488155744406064018617379159828136406493070705541813237018421131320971124437407171587043372019733636062233066876034337457999876787369094373091517534098017916594792460704784921185153275850857581285336848140218860374952584049191993585553110443762332309024123901185010697148381302859738372869606137971765388597585922129122535785839206767128452236802657181997292116239207783607323862578465442227259533887591030287305010269533383540716797008102874720640662883389359372810534001820009546896478465308814444408554885762836640331897924935627579103248795481826072692241642111807778401158895799915480991004180153003347195555307770520834031063120067256622778919004961502517398919982384523390464760131732505637515199793757072949551494775143855817385684497915118198659310509256129481273338160325645103289679329870038173573369025061313790451884949715059303591583560328351087991347557530522041863165455477394668469309693983007418927990648467803062524963937758516523083824666304360736465897766813240712741396151830315548888420603339831595718710034469386594098653854009426823812237369737048712979826963576984948756130538414206935992027577592304450470880319817831507845030010994670378708250939242943239926088646764791786269461111371534308908764108263449023675401804803803182673867515520485249629745243672770006682944625246291790492586147063526858015105913183075014549707706460244999991651868582470026195619077563867570759493327657990072519639637315544483653020557767682552247204607931760825424353063409670471378475627839252079749648705555257677230446212537022751098551862713034536355341138259310990685553064112975142013778741229823230785149782101858235903026975593437272053088932410353848389649345011767780698991868213350779540719958418371951554918813475757635570463616852544833768023255955498046450696842756044741695563092050685310994267972492781312820844768292947981437493980475071689559370273421549177941669697378537265198919868291327627417168670405305924467511071470458706768357511501991902252836173502333418688717458837508614857030104974610030103283376510419252637926329523095155201740867877100350399946004478352019251893849785131975132437934335973763824679111828231343214027055378012858899367266418632392359452246650515807595171476483278679467425599267828029370212029054120435982275550356635355664654892719215846562975328528163583936088767073500841639455125463345754263361089229155201967697037215578665604274676355262642481916494803016919712102121527980356764880893689511905955589508724977867865466835262812322924015574893437856864984684220070593114765921728407225419730567273241176153668372761750945364364483578622664911721580070981323566021608487460294500233659778693173681511571928942558204986936669758176748594540357179129487140295448941537959256449391525769595407122024012365475085137830844959870450133749099138823562394530563145982069677866851803932679534446322218065778719462671122648730364875962450386212126218328195825224709122185174170320987894537067490542920724959710467593892923646428152874763687211823820137455539460565900127897233217143576081491588786006042305523341015458159423633134878889787887663105957465557767173020499314472791070719025152698957728734663247606844239411256723196132183329344235350629319669745952622113751660331829633644767329619981691299234613710308093399759000640859894731711636949934181328013706220566792513329344689545361272020993552114909681838087308910067505695274981382299109680586034720614962705682773790063657282748360214067192379665157970356760258273090074991971284217997543911468431687211043205550728279093538235680052525630961925092400007921781644179766424606837856402584234762536112476675106599702508763306348115423273807693539345806626920834699848701003693479469134740878135250410452741687396155813889903930325999872428920217283069792070439012636092647692019910013347740338641148460583445851733887876955279497918390119386970024247501374324264797477726704775552655157056946419092088873808639539766303328828035621626831701890204023576207007750478603822411527685032858340902727493195404342798613100607854637819242767695176057753481874543134670422047354017653781216275924961776767223677315543363785499393449800828038375306219654184185555092182564638247771530124691349538751931561091007796197986157937171772697353553058485327523462954838430800984057513621383571727317337177152970874612658855181294465172849185529132158528271820999500342877506400136704219624543065036739705582299817611728200502277195143143191732762293637520077343235101093562236337324524528864505782196935794432648515868360577926123090496774554270028525354970734249252378423247476108735247414558471504567125686738271738974848964665461094320083387494173207156137454510055337113769107558614347781684766655449674603391448278094085791321383981857004897670842570451347617911139459862766269564339755492487675698371752962980475665672883188947983141161419409630409217527399558280663237860610318147772498634385920820312443907863374317446392185086859115686421057528549532573892144580253689394273544575755170205159360517989303409245916224353706075440589866516696053837978119029563119310330545029353890920860147557593740053350569140040113694800673019836636730762333286741073527435738811307087914730084941338137386771143867972322300197840102753483528724952338497865233036709904116893892997755903226372165656642846201890170093790358657416486550877313909192436340689383888477769069479047952561573673555551413048489174498880971909413142422378563636776339158608738192145714553941770265296152075180588876211383075541411017919342097059447364004962291213037585770840014909681521009564714188128751296963689172429180908249209002021313214908850254111283850037893687056242257462910483919347780216884120187112945357933577138156969394277170260161236036869496374718011728158765654629650056770823315250465353950091224530848696229497121988633313189014625234572977834155916513193134562204461273521216080244506338153139708360308046287021128096411214272662822753999611521408329131894006238835000838936962718384319520828587934403800180324845026787679665987661378162320485777652633436238210699677154735271226755605662702604153945302854644652521921544291252661022590664527531641041035648659165847284409891528119936633715090523971664138202591368953730201894722943930814361934570769853497904213930539599211383379504077959946631504905601476031098209728323722035036133307268788328664452521302859164684174955577941398284183630753482970642247770935141494521901668680363140638070715179064948264103752377384003373065293560925337044007389147221440261128354565050446083257404107694427684652263205633618496219983323051762395301898555588795812741759076638744811705179401143659077170982065410038042250086615163401106111439744094203514640623152116639175171991943026962421945266302952675486577917984322627755431215890833488864072448842390400107459018752202693021221481409449719787980620143243687020818543732355089816417880093596539193311233789657521620372458195711098728938327213093155417509373218848024041940051867221294835370446586181742484197865580289882749067020938440878271329959301075083485067696884431885316832572313683676720251788028550213809262998136833813285031496013256939192829197632378480718195346701325577261781455010088013381614876398701138957651857429659196985942271398270938260941274285717773912898051641417309220198747238371523490775726428530604029144135942122308106939818561341101103713793945844949281052878565442161874071113270684016552259403304167826749273988440172228215232290209559202756338640892550184269273946155304880531186197200503199462211090948532881694924036492406977398685975381663569982693598434747857929203889944919231093850154289583923431403951064502298772645796151577690028594037977762199110288373843502373300694451809514903175682305464648682775721258116416119650689531044129954184495495087541468659186875178151562062424147218107879237114411214840568494002591175857518001934390081423678628876545648379675786622548489702942083124878533967155100651514151882826221641166730500364669572730490777777292229762164816392544043059281254032687438651497846527821137833105378508807907651010834406321696279255477766896841190634321185060437082289273280010497099862060392244761705012087194015323789566815021349264394242793827307598306980786204981791607243048122303693644666876899478336498917790057484945564126043718189152927612464742210067476739339642511106828092866331906418571642658844519610682991961629405528084412747568897684800778140211518128845491721521292836366454030679692904761162926204530215303558363065390639352186946581481277158659847737564113568153565616699756569881994033323572138934384402798048220683459727955319516404211786794386550800547195177309897396911935182195076290971838100042937211397519927444444346785588829799826473684736505036893428092840793459729535230104764779139294566394126820351499092352512076518090385850039868391385674734724114186374932436222771035068138363302104406044527119470045347308054455205487350645272600556779411481138815327533432173626779117026390706967396927955662662547025204953472081923886751626362762160213847163799908736291437195380716841359255264945745041894433194020600279773355526223893187636538232347223621408662937577578445913923380497422423044854763119956535653548935842984147527913352245227030092496672312132731346224809163272172446386154836716282680784323727252247921253910218289939017880662155317502376770029194961159394343834387144522953024676285625304979542068692983033310749110473164433039656467124657378283341684321389485289793810122976803317771121197150175926771449302676260743378676027676943175773082338619319415779506717478195175371506642612082570615128846410196919388998766306285924719963536929611881448155843338739161568852164486376838518506788565252798476670006240267188610152976578172366518949570772640318207394104852273595158039938633323406380552203075752641939547701552616963738466573157813438597315286553822383861794691423308728820135948770766365465683854384314652091469424989451984533408985767038852667033681340355588818847879309337312279943050862372194596895844292475823672735697164108549126942289575919363689607179039472862348760929117278865339143458785913426191911081062330167888903342486142885187407405214125428321505435981870064959050148530382586323356446403621188655717661032794517698262955711807328819033833707828220907547376025945385374494439741220217789994176846371432930299305836519594720509065698957512124100921525140312366101269113320574011134265538760902529614291582358224479148820513193336654234012344462469855670397047741282394171541461926572901269377037477657608512077120657407393574430292311724920225480230458567689233314934873422647651804495992095288517687390616615025962468202217147075692149055091573208301132598178530458142533829643988324505281268999961804617360768769709061646645372513262599155085074465251283366608337462128028086596812997679397815742091957892518505135002465697274757923307061805326455450796807838792749051719514044361592667853506711019945419805004838419421486721068231742052543336950311305876319676456399764428768590635854820040530748669649269674385193056797520470774847630272515275900189455412310000780047535615246632083148845386738009606753739923058588495025116056253099412632484550875314243396884956231299218340410997285688133841807941682225127957533389195573695092086025247532028636026069418098735804769530205204999285787003791753806042682704894583267811235856061693530619809939458206215079074407808541629656654929792670830787447174022972623195916422148322237921881708072436126445985274537573098038140664544728207262408099072215388950115213417300611115338292692548085023271186359966841819780075871569581490972053618894045041131442641813487959154843838012998099639626373115267316448339600817057021666122281477333980461441392034005568632182491445302716126122812756332844795484264362578557805638303765424360604041442407969247759470167949544522307475225984339436051779953158397094053870463544028241801746997138075634733934962281514415679148389673673325294118390608323813237854306976599220589442498267097455570034395683081596712190257860605958446007203448130467765520345008717900636040046600255612120399771595227096339348957289027509189426476337607996914862343086915000596485652757613081008747252288642876882297547095492636157535138696234729324025341916201386560894378661318241729792387961345970982552650829980139744150611302501895646703165004540995033389396543592447170790296742562007892274546798938516288437988506899488163633506218135434503018502619576128509832305296181540863467945812370086606758637317985470098063042737672782247083715363629502751795661602555196552776834630164094603430863307684463705444523634776321857875462713359276296783663096544127814027905040914837935547982086268513700906978828723935143545430333575098092453005417444018377534791652492743181804913005837693286505560157568037614099499522884986163290216039803837908471227788854074277967554238801916771127104797995997534127629137084479571097339515745023016965471456167891864767433670760606850098222168591855409216878135139407773223120340062852238662691481644916944391030320731464017940329435629156216274979516062438604558194486993927038275952048635013038444817288092163139536187074694100813819873572527795267090463681653218830359701238457828057404449167111290166690384638065282160663539494525129502500015487878702366474335229467833464852125123608549827676400513797657135358966436620783347265357770407721780835366784988989048126974086037344271635095041981072662289327489739052448393091221904807662244114165135763172089950254697658436554620230931266118853773778797323848677183266476617739343996503180496566362871923482910096707901903980005130199654014312136457620741091615441070367947234358566179887661634877074702291620603288072357190535596070336264530707846328091450899114402191142184896051135743978153194280665351399205831087161585640185744937823796538766407101528634495920674106676289306239274193474566159994757381602497444052958421315338605278727079570377604081393667120725074312563107612673157696891047665610056698884613272586181404965847332024848779209033366002048526983979710674617683453519503806071049638789082286786117878221364993650948528553393482393022109651429151735196906433496712952933309854773999842343239649973146420950221412221936818840687262668511459311856071674428622824676746739233872983445699203264507541933334687714021233567904956542272248955556630277845139095046594220886463506867399494685380384806382067838309273171632496554261855793237846745001440518939949207571697892521973562229485967269937431635399489103780831280097280101951998837276210964170784897740304425626995890416487041595437766718682311820737579416938944421510576884921159447689401687993833003344271435141571862262943572054719805658837579775440827014533561900447081178492308947279591147328153866313999996251629119739095937728107747474225987080803477459309075251894650175747886073592742351294644420811934606176976959057105742173410007114517305355111568936037589502195158935831710506050414377210283588919376630005880676993818743754560083961112358954509868242090613483228147151578035926997303467258767090082611103444605449773813585668017500160681129598973801200322841011559160665524373892471532190475493601466754876348098970559887746852096473129910439781002203074231244401989519256483850491606257578746623772768761635180967153949800067234477100064104902110151239036948799042903738315058440617228661528499395011176725051116499605972115553021518917475205252205261561799163583111321357211525783631793220298662499200473048864226537985716680252572169390618777922386568550709575207853060926549386993972741409783338902283576624066327090933343376856713028283742739028642649632468963228590923877987074336117934179154584866230078318631943723548328755927791545165623035726903958384051333076753805159498602302709505410306884984488368578323924987765384640147169562988777154234601847327579457410806458966864239972940054337545215554433932538861793106759145214050888373370254889579270035898031750926712082083987466886664120764410966722617851521887576786517776426534124629415639451053949108151039525055543742492656595352792037339435742268707622196808445115572012418694669185010924584374045425624994533244003652888845126672489717688987775413120185298521365007933796151671478292883575958792127492338032110393210260042714455728398675124845670149080814246571682523770512403505775065452471344306347156626491795918083894724891490007709498307222786693680757096214395432167262432549648278927417555932803428152232365892931333075695172814770462257690442296200157376491351913999817139565015524732582198000505312805746253369732874072459006105865271172012726604086296553032543560681846159539958543417360648437044708892569947653287201930946928444301098633124896255378484852147393808841796589153998289942686548133475814820973254768497721536622225716617128455302300565590150242597033609505325415464894377697245405191928260969501369361014260604745467883686543883994045512888747003547809158602169049640794658012051258479083705865954311291593228945564911488944692468499244484911239342244115560280575329129087393225941482997485983191242307773161178940124392378409488841008696542676281391549664722639307122991197582577422863982134053433532577453219178658205827501561583198992303334036342301092877819270064338680926632478705655328023558196495595277472988328998692448489894705326375128823511771070140127004420759291157184260215237829570351011204471288565898113826388851230773435865630970298376625947308091031283364150942842204125090921129827451946364630443044914146240481854033247349425470247891637836720032466771680612069565527251951483689793288274106360290453335948498230758608634621558964918592967094228087439529949703303083985209582590660987387472688576572024533981013052845203132254638760507481356116964636783094421412545991173701259013528715183293293370072303643984001945529548264379801985666388564491787751113184513702279258739602330305593930709832348580068234330828483408150868548812261718913277674353469711118926876776225447165831702413095772691734983729761366646373819415224196215265243314179559572433630398212056312425317096184324741248053070640278767840454516999173909598954935449285044249157007712645454665144649618194111980883684759840920667163388707371583614753591754093582621618935146827797795067990872700557928648663249535610327358254870874157482744693859159165636884008249075214362000333478523999218132953583939633231536659259845251290745784899593192289444519753834341697038499644869553744401841631067814651686838369624634836567464792671775086591049972595331106628018504924477233767182741293371961595748779142717241109607736801934733685791795561946478728824250145198102436751838500773955588829809789262203050415484409293168474392789756196824789462713651755362029943299115289252883906672157696934652885659225170381407783407283464909118338228256456907179014594148576505242360560057221984079699128884557243761417075397825964167026980875079356477465969537805733639054820885379247901275776040417670603337110692776145729314504567977279767220373203240046509306604232599595218354972191738101496019756815393249120483489390417499989124174560834511200898830929014394428269136591714825692747324285119424937260102997668738999209923509398323416839074654322462510869621355007954923690234320093805757728810415142687351621183784415545836656796021734640895596383434247718900297173966959878521596145348851777180572541005229589577158426936919650263698310061187411272853672173685462353584164846095699159473896247204983731882055310443270761607527651706412677861714981970772146835838315945640150477814254009954841506330786743905609098364931969967960512535662952512917219119921410623097767798451189002152015105489189434175568055057607420205012046362317507521588017270894881168433635723593859769572724911378475003210126226129658501257012515892973836995197884630690527204488962976717865116746593898431498367379811469925560119334961377203286756631916513921604764838993568114109219859730263555411813245615994623291101050930301759426881723888309643225994252597984890815000076287522597498309526095530645761286982422094461893873763904001033332511259562017855671175724619567676078448495882854787842082417044019406130020509295347856107151497329225841677254344928937680560321578578139041857345708819763354307293094830419728830004952288346895805389878037206306738822642040702933352883094825766981587120514017411016062860428298598996247881797709252464886384682169381932013752892890890884638426324436168516988299191376748022982531711041251028982968560078326339772553009952134029713787646851760654592359112876538246557819566411774776431661170085881602018352740768341227753197207611761717880515806210502624774798855983458369166873008163423161477334015776767999947697173712621289709992780152936028437831451099119033679778093341990634365571721127534245948175068140353327112114685429822854349448948848380711485046507432353539030052402287964858643448525981654536918262612907769105844816006037410963952072842164216418205454699231779582127016858543967746963764164891647029214603494110009378470497876147130798436372698712137384568056574205479849268975717636626629954556830887288061391381011630084899474097466325998179872112826336343240663883295471607757360265787306150189905258808050056501963122970865637669067769409184631510481507403482362536060859174633682693905577398398875671642566371596552149769623961825667606259130978083316143340585526925934830128558297831464422162983217758057463675267614829940299317351101520481543583556286978654868297772462245028609459148448722025814995415851962379381868047386039901239744771776101610734035131635767599273422136665353006220898584693367691730835545816511544230151278298160393204307664315685385162493985065499474431389654873908834707239922779219224809590239316098976238291717032059702324288197175126434233714846187917105834612262423248048221902443344639138472265379250119824657956521219728543655954488329961500753487742892893665129322739113016666787647374970918665789745157275452853891922380492880443680170993875414757182786778286333487570663955740084873470569066542526053140277787298489771784837850499968782247317203357513097738107705832181600458475426745573033003890114842581738222756302961243587774048983062798453641315072974195221451452809559132589915722737570610378193971507352739694531634921530916971336905994610930764740075842010950883698846792834228087410411430782253189012354563344564078254525528313763468143216936068546957004152619645681700529147351625177808676138808964550732410104631436344134110149686227910130468430032438173229977997105202748419086750881279217193386176496228779122764349472497242461394911194599878963450351123951294918501348459715835693061582811364819218414088693043195252133767321211607375471890938655393792981021275174065304496176684319821233242946257924289351187535478349378874713346330469219604431439826905883196451286845146057104385199365318063092587420001254894221799959831571846483519248457115438217206186824881782116744465122651693117084641408037148142829614763133063499406876178878134131726425203871912387831554925587470570898055532812235456808959800027655828089887621192417281807768572801562120219650253658763530084472054453396974450784926168625150758341397845091753505842518112424306118437539769140826342262613844859876718181268412261509037319169108766988552644614934555814213142219019811422659053137085841864920170576286640864937419574235191619211145030945221485433725675713317162481174971452740531067912809904886104335100022735798364573831049327315377133368739934826441863984002942735272238386457618775199279566767883585473604360553336549477024162552596770478329651937794470909765083073251810753389096094233897288385611949404277761172751743068113810376524160676839924695092810735819382132676933414399369094128666200343000342706193102100655421518585041676414820007459692765548901305218144815971486346330864048337118690638761091968526670323761777352358894456340160753352637803474250418743101702043148798590470845466174258138009442016044619217976899434462791338596259900824637617987636453412219361599965447143525607987856834770285907018718803758955242664556529098566122099304305310965446917457787505336427676168827738270626804621326116897484489104265917122043227709376859029612312816306894406951993769893126648065119816938529155783153189228086282864767618441713151082872084816842149553754227780796277242212080238182763306939903071708624670874984755796891489154626513872036782664512552383193013783896774959854963037339154070437583616029282417615915969971231420972855771977349962190609266139086768282547592229593533658977037904302774658267248929728695098574858401626389042748472145357536135466353488859003897831560154066627227150474554277469271851303005945671247795555795937744454445078492514587476492868964144672632021211050632570953403841071025309798992326578725506670458381496081252274336925939588544768834022758907146760027261588931982812956149419811327601053729331365036430878013973610069634201457037899076727274505756568071417386745634588503790852393386023813831896218685859679905062394372101478123497217283220619011160968667551237773235949692090983446410757019836218958905145975346971520826952823685379752567195534909385792557191761289568479135365193048413885060172776014322158597460643399476394223940194831046030605781136000608436303473020904271504402879618356374842195736762437130876727568619213497935590164152903287455698707167794385695153224586263058198974950792162681542133078581739287946379110315951928817634858364971314158751356169218478053543644164090009908739467463962568576877794573005863654004400695441156575393489943061705183763550982623224428670689844166871690139758308776797902565712088693044836655784380363889671898369206968485873946117606157771484987127782654667134840308703697124489592805957964649822590152095423694031644084880519062777823188611799952104607416871018258772517049360846341151674001778961940901587314858975575065300064792084609767634885777409383652080894956157822620225458697418533360072163140299406530027000904332331560851840199977677529191629775273650928843061553554147264749393127075799604889962285257888312848812244249942303428640648119689543119981414354730991978861578372378149341700010447992682057950973105148466448231016175412306161385479207770160772977684116377030733422786649483008061726098985610379869862119197342636733516622942414583884519105148628739662801162841010211979645431639304078445057080277015510790192407217187550891965100103858102136138285689872381782039056289841363723617938137653789030606970952810833670615364118722052017757992497044738555509290163043520873192586074153487481145081309883163180132217582679470475086855211660333455623555810486942227093912788494625555549568865289896706085937751599527483623191122005231101901142408183188810024541458270955610119436466937641210884682809059158368824634740640331572161746846512488273398985054470727639971446729027580433097624658170706956070202324348695422109101541154206215663596154380339915138302395941903169803135974610596879938639072847934892127116661564197282925099727740791698790771098777934043589757603278003242758151125180638993915190552345459442635843335667009019294207438064172733544569183481893648277680799884144429475254389666786337272452320787884728172626060567026533485439497581096090569844510489863154195205308513810521749128504209642822304092389115483431398012579095476702764750623873623608627882351597991392105112789905968944411790461567026477190860689629124065122203631626179235979230178448436147652181490743555753366834301792937504308216217067064681155136435891004439448735777989248964769508915049673880938674387261140183450877306546336209657839787516082242971597181321690463652947140025717075623126208982410431191379926657910050631369184481689525815655042612305868448767062699310819367110730759297151527148259459278314486868172387550894698357527994094276225524562610896618999762297501988480707282839344311754218159202603293973458915135822754360156080802197468354939036372462509009709477367872759406264668972930862462071383466163742599645244712476783107498570504224486470449491371192800348601761966273081481063520885543418014320114356234315706954001848511670074484422218046566332621097500410231410717260351917422838187980587165189807175535657929605475623163649456512600064414378704823474507651757400584546008539987026549001422918364100665140535174421236916776637255273971294847245176232443074369929893195322699151903037813241035419600920975613334882258678736071355144026394112308973353699836343668415374472101938825515143569549755559803697873076567396101715813288187354459962327267712793261740077112520632949050976967625156978491473836158162911851584427556536093576321429792502918530368219864645272520390763755306772449199767159700936859658224486730438412805329371752206634372491086198280315513907023680577521119226787335615175579134876589140500974571002946761489474362150626746832116611911331386386815203700201371995266501807371751868765259680071836861377699990775178430393894083201635434446249681874196407313557587603161198639947529352511136206433098001994558393130893711134110516667033059203907285403290150198358497642735133253402443568145106269948877719769152032040081502944909271182829472607126734855853933331919245644783809897666148962732042870066805388547924037274257288984803536436908349235237969832104455866192773407449734869608891181257291758002059412431039657288993822398267382815526420233681275323710183405065834570452078632100406600749102767372535201164035316116266754505452227237780804634946838970394553093474782881077720464067565393445231197655554470877835017340751071830062589849783661310649515073735459690320784237195664973170125721124936782925368180296196854334553751625196219745711137585899986360290227845252214259290052612874428830514452575376899932215374025797242173682957869764492737815218176500421468826111932040950333056118401023404174256970239072634161539379864177685428336200883555785151841673272337140540273430060159216281291120241458650661232611694148162015564415735564930321526860501670905320914702576869087430596227913157566914211803185881223318671512180963074231198997616182502305383552853235227420795392852599453792148636539218836728674121584195901166876548811377901962697811006250679894351170143513147700350542559485433579307835984532766619931910441227352597820463594278816137828805985765174702059049816385906905483617730604294522553930113489448552605375937701712484576558268602458249919780305062399661652727579773948198626315211482328292288527814114600307802613669765603954493921065585251311021125477066106294422194135477914955289931124712194835130535722799322914143429614965973420425408679600475966645300433033077799497940130377493622365457367013640169497807430290974802500388326405096025441443010339465149950997649323162864131267745837658679511167899266250390684701369775605408045899820179799664107214111074099661059734439048931566294386710158941371265052132822333765179921078608318165925927452853864822159776207517784345656109552427008503239914124424489934944987073720294182018929657979252788384846415392264122711593699430563515774887311197801874271746788734883614513425248014060007232382952891864558410687834222047552575588979909822995383857705957108536598971775172482652234648763641843828473678291019140667719872702120686876372077740417478380044354848953373744057356389361880025307240048418509636645649570468586971979320503424599988142387326632143762313535941574646819425423673560050801634303753384300467462490490101187853137676979555333846433300970681904340195938770495045756949766032029337450081121963925595740949959881745209636537327806250261152257305479790493716481908861028227097406869941878158521193412769622772810324896621232743333995068730763344229181463177818409763906734348203998781453294569888700686569148449436914778413152252849350362223097231271143234601325474406035368008990172304249284281872761370794195620200875987145596178557086698042705784125255236690485424805689384792717980924074082314308804566698399060561176719438082811331105614812378207934027633540513903037990542729467110743174477442334031959262847409850865165681693698413818072177141729698194130991356446700593068684856635392367598792011984735878117689109198803053746664873561665105647650136029043769867828112479928234155128591569835024602307049805786367468687768494697959282820575401574545309364942983357810255725971077272557541923657734534274516909057587043671738895602500001072754567496509048316026310625551209280775583942486433832306639009160461183157127592180415546174444047879260664347588197360076597505810790705763832770387847196905117959942600401932235608929817244595388119718639386787011237627712309618890866671141288612803881862286028019738599467142316068065082360143024305050000474609078622533454774314007090584364698689106603015562172392308415715857343866769672731652508963679211468099043918371802614799528142706357816745448334991247962534914554731403141959210991721624081752406489436816437220977648343005843759023227186751041553610869551510974293173614038417400594454567138656689515532853984655386647058431222989579505053151685394152663429684452119059774279376026282639472053357281513620378630887722491242863548904085848211941932939763209214347152705052042609700563467381096366690154499639065479725759435827549928275100277714313829207523459040745218386304886017631503894116898736823011063266589081408429862618072984507892906136331665757696923224096343945312702847818206362040802705983166742984941475436617733334769507283489472930857916993764743458257635365629257821721523440230200876583985080821513710386302614875939547997637443989345067785643603990893799942657942529233351495135037177988730103024242051616357514459574821229335268746094800038273428148084183805843446417640514028938002128787830833037407489738620327189064506498708745983786701796765618877872823981118529857501612801673315510577293861950685426610221117850535676764772963759146204460284378099828974421456166703068977377179639255279289996346814271605706227280187073017586810917004434729155056579000138411896535142108668074597758474666551077034101745817987348985699656581468922774940453524313813849259938077213389094128947085763344606587619029823887520857117778286579907272840855838948186238107036891028472974273047182011509747180261519537153266462310079388551130300844292785158305754068217014750101036429420252217671845650464422222317099907422451819336971628796239009100447856442729117413477440575391594547495663624884446528573823492414356116554515627363778790034738569446065986050373194665032706671301009188203367408777422261842570134053618545620974442552048533202941621585956174361302622518862051765047442060877109723392856059070791801500479391719528373650902442441414269902107901690830702871387778534490413172277131868251153677172448677923990022089113163508164969817061407016454805532130790997041415528402646702604588220063777450103572423402620046494684695391408870097336451930543869986188153998185620202043795107495664390451926742330981940978116794593115295059822211971190317003595215113718704028238865941583416562239547452499915419441733161819682902334916475508627895120137265571807146380722619878471726438917383969139026546039610132552654659165832446774510855755139427827562950476855539389157672933908812117418215463834425857482358933161791343105885536942188766549348476185518921571675655510478159802485867836450571656482191922399084226400663573572531256425985201486763002883972108528041680481904402009552731344488649252241986811031673018457303384235906707347257700845697782569480232601385528416962762885515913901958535096596371042204236197556943265028960604711108561102266702184977317410198102263891056496553999241532425661997488548644142633422830261047020794296301976419314511587202228357699809795262918750130363016221013046873913474072907532198160605942708997890983415901466944262835390631965782152209809210930735536468879347922306487704520441248885641962966771771801952452457919185115516896913277386459961073239155728369909436177105575209471683492906075778699815828114797398526305767894586253094728880072441406698983946379919801913690817314749076770342243130197131119221692313990346987401202039027834110904880069466439743642301105753425061414565800082170921659649927666335699162011445884017341243487381239213702864856431685135879329156051343038028726733098824174931410384376120323320156747674658166166369616583044180480805837792512030463563299487496545385843892126550424384858950969367632394755408599670828955409514807532535952061741965732453265026558753404895810078579047119994680008972356225135259087726195205616056966548893419703813161865487227740187437780409732089906727447790193907256038365443137866733299664104751472352815504401413280812166275941310641171012591880484064376596512608641794270615812123836321027079808793591378910051958493337044535021269874632643198804509534083925000704066234592109939078766203432299686307216235883107545384656879906562708141374226485505585036125725851174404068757015831938722483875756652455985836927793759784726682746452979215226746822806456622083946459394715512493077977928524553669047633378087127436800027746106872224745333144055728289478995795601698176466938992793649010882782621914608476644393146253292422808661876013597413315620287578602164671941711751206203964213572153395882238209517630993248997183445506911786239537232467829001394066230094163854097372513245690556560656393427258251348963769772360360597737365976922905634629478143524829326087434731453679176038941098889011028468748445502606612495196297141590247235780994986596869250651604571202930571120480181679493651972940961821448661214526085848152141720270884315693769526310037481808212213888238346258465451826664055164315702209452730437926807037291255633809957452303268558019154624965309950842221390532994486901234052284533525460771568230839061756995681128211387055263054028594856088977946500348652603730447227181699250780540798186830002093819624790633708829752916854251827472238076028995661049686726021810957676505189212964988871932660941217812391833093684912456983758583157114438078947990437202677605438968422594896582603234360734875047778251299020180622689676872035141386994714140180521538721351482125005052430301782842750550133750334096637175525568821740034384578322631231503259740673117459194220765444744278405423201158740937459572185292627802873326763151682633532158718729434515145602721370873138612102209712039414873326711979139980383002980678540049226310125943995283213670810286237316634757884750579925572963608569716138039869578310166168810029537831916883794222667992635295815016654722644931908448706642128581626918077409041893945512087316253784819977406785201921604024636110393397729659933628054388192312009262608909996876109967502757574848920103023691720400938307193710241909150380477709231165203013214981999924399947923966673312783570101989718421866545009486672043873848140999545102447124054920906708442958642313006253656672714816906432069864837947096045931676117716745739795448275037122995945153981289720465234873677692944162837296300255689944829544371106941992716681139583644947841782400734358503128513191040384923394955181965256296701634012607202526890472709071115326964519857656496762767625476510716884907282805839542730767132903180871005801640228794220009611297166233361952837537827200357727260870844699845830932252572593735058313540655407016840911714398916880709124278359798819910175631565646027227581049673642277796572596850040997627195346445881376372747943371789570085816829115812232821760791209511173976796789758697459791200566868986635285842934827039342833405091151309923591878755422810249495069434192738643091147412895119628171558463686942259496167061797260962996883844761414180153472496252414156731507174474124855102395735796370902059692364294597615723769728303214553615567536167641357511755537741632811115386137524157298721279448811935934880923572271876020384366541506345179519884915505772696341170832688354069980176018135073394314597849420965643269999694462834159932621243790999125440813412233570594212686686496887565751961786353181006210130331549608334789240253606835583737906913553920605607614310873103691957765854861303127407543515181845349951782919009083490550274603056912568834642041334091241659996710640018443386306907740066612141128326844445566986546759914997533790000825974037543037628731241015981620239700027661695201912139382442831153392054998422035355135991416328626500992363105419137518428989602671800583543985604748569011770433831687375912305548170417679082357421583698459843958591909546628039968509798435581263993021634765059368821410958440313642754190595711425647937468534515522066907734967032393914928245540280874545127906532557847322339125856843323087168581719601072907564996667835076703612424468076066543694184798394012407109319253808557193008405374891382164404000289267287775487254157053414804834300356170924051039815817906448916199512845584886521695668171353700976304645731078862570443323004497402337104566881828420521023286659361599129989163882783868373254853809836339110031938824113137568054761838434125797282182824031302881430463644789185841130421831103006371119779438497419749975144086749879923980236495923893376740788355625684906221531359961471615277983283061740627264181198398108273077243000490207643774553716722672825740956708212513157034947772766374411431169722122112661680037009653647323083684599273974509299135251764074451042982766190032337169294263867947190741966084896913252681273833402131045497189050920607947769075841474329939187072673197559557450948432007529850160748893399854035744502706922671510722405685520127034247623693661668423544738266654629273325490256801130464874211334750642040612719223506786183847845075366765745575705954614577814692579358603660332506930079031948771574816593203141317390998721132843659687018323726198635688890075367288286623693435819632258606872695647906366330371732175745569257022442478991286990761435403805697159170666603519488388897338036356460051886131000794877478321142018482450709991271311539429090014709652337264097352278679607536487033897121060043582526974598857248629372695016725222110360782094229452552078801938084911726481754107330208524934223329773301121902392440526456070049656426173430390725081247667929892316938005393303086345957164830897159205906525516989061874404363959195991269483832376547542320994944471284014351391672358188425846669316269877325428127940739187986094255552489614234543435270784398696415541405812899377356128676114633478878423807639328704708832041237101982192405994123026324474143985562595370962495110654474465938585161898354127766583881062855444731349077170062059511185741920991991028027970671170274248388060052622794270292227261039183106838616809746031318854500251932236340128187055438029745949465635936816149174627175917416238346190553763037136906319538883548731909816875311154570971389334252499742115597380058001971540394528522849594720832963974507484858118252547815431620971072617906957145669384181692215230273603725973164583031562364696621303155543546437765128774656686077208321954238431239324761681503812130991833399628748355048586427362174471568559408237248741880151650594995200413369337341981611350815872171316552028383662342450860944414401131907219798142803531994662121735350391919935921948040696619220888805092250409055081099214228046691911804142306720377073745898227667269729186070768993236444825256574605653430439647509079378626233190558018289740008462916753086040249739524370713033357833960245130365459546313486714702740017025122705826106424845483979072134933128323046630586961765838705667898233810597572671352837740646414696751275245935167654608250279740604239674447138644044193005938548095594394092186576105566359495648135717671562877341079328703019456610293306985573709197731757590369520312536360197660235678559272822682024561978947093587948634302086255332024179338309041260655943454803409136394254189769157321599171615020608175982227348441556624424577851708587266071935763781732122441374034571961367506962992020235803530517331465301921631548232119844748259702462089590029728112498471906954686886840163336438363605744717655431894756226195962687358057214081168124862114217043141635826394834494910810964326631990452415009560810872546420039746440544398397588439205849028148341230007323261127471518128590858444247022232256919086578616292172576946982429137343652306726172616749029836665301659230880237471915496825245653515459593006730256761449760338302256744842987922814363388057708897472181701372137671826815683870061253126070993879520992785106562738805081759261992192548390908154378329730957863605386390369552158842526372653306254932581942911164360597247805322675475474234668272209095545733259246376346096027583616943097044368000412329699798153352395989088823539356090295389418221368824610769428236985579683330900396055024315813856180401808000629738012815100728601062657804495516128902074262291243226038176336671111370021951596866408882209552276609901914147316664210217077524980219294764326541474698538601290340858750530766782643276285261335390599533132215039950043783383383330087040791092056360199287067626062277511945072619747234043455546309327408037082812321674878525208584270836949142239489295534203148160947041445752740548850772418264118615001167215947194145323355790928403182238571455312606249270980246774248280021658943559306980470031822659708968592312037584798493256362430957554555577306761360549654955749539504344771368923516257501365199617055098153599273516613301773704053947037256644808253896529748144448100787651741370994202008943101434970876536957359108444234203599037568387574865418082904605211721192437137173846408444560683425759251116653003107224974087457579692790621693100075331430039231170498798387773053097827645985048723759937940185472145009611463368566270891117521458632621320619607740414978890980437487797942933509354801116737019055063833114966118149784750362348214913547834684405741233743622039969420053770690100326447614932939059277640823380761842275655957249038787967453741464633728235192185120201238561677588965749541722459319805052892830191223072275662409140640619406532759749094098862329275337513297653871195659329187588539710868263135060597019974135035794449916739791381820895900334409734686922869312120537048399316695363395578338222204778826811467789703725196551583866614967078673390562631521425434053805207001578835430118571776745268504143561361330805235549293486148766776022291698109146016777989458597653498879314916338665448957155335199207956314850313100097328270623609821436891124773870895325140619768097028667089007566416229270672123304937676985214655644014788453248635227193841552434071667387790311363875687938604667160442802580355498101981658779937209542301525980650992431426812983362707143922018256120272102296092668752474798074611378609817684562450354784830720938557582743458364116524296935927300973859362828823693941679030907973808194031658692633188242960426717174258194009450791274024940474649314212051419772277413012628608205325744518929458701161696017251699724701739736676413240529952964038457527963909314039882661925512052564826857223909446921090854354710033577301295133047023769513015700139763001004208522260598402860615602933383143314880350126850461902325473604967090304882512040912647682179400909070262730154140032732947821047381470262789138677161551670944985320741584265680054158505059337318886140493513802965564974372892962445651428850419258658465544003679208210816536528297058398441867813938430257695960327707827449158163749457194838146696725598596513875056739389022035551310486975912094878924578353061401922853538260851733543364613950078023207993079168458093416760407693600656971007402454746214926265799051469236187320676072740448740481672233531349545155156465017962763170993970429394701362511254401922772811901755490385736326604895714981679100109055955371103700471693703133029295907390180708313335759953097340840933394743002566759358918047990788410087956216807750338596581511766004798710011018474340857271867045613694333680118207462609649432675548701733221053288245550161967209937071249879608521798585268442223458706943406692314625847359186436654671503296649344031406010634819166984720408402560630828685677043295311872238182852410680077870331226726430085916108494914677465540576330330632658923361096057777475942714013517804281227294682243103526706245959988588435491531935949853976929731920042530708870187082144388878914435509544990793621595235003429383267712286478924901661818835392246681427082817607619047660455897896343977696829843561607531724320526451805858193103870794705915112656560509752433657767578278892981472307109059013257604532406138008186752188905640328848488799975304496817469007416905327515768602827151833546535851191475134535276594089964594600512768188725855849718166557608663499026758228073613549664284099711830173752897200043976308197706404794195106905389920154492111936158572170041822547393403976308301645166383522644653824884173721193769898841227521232934175478240568373546507197090564186577118292857484037270393306018556233233652202473267864516048027847683650806096198373107480367979153963421276675113459374912992285640435883566849203803058615298077958633807503552199038596240482530696163108010470544350265970994325265557884637199840114039723804921466289138064071872125696469298609412556800193044730576416859744379119440717715738177183202274902573809090895175657464245749995438337842891884487987997375041283633632418630809290374953416805102324039034323534565864191431456963468080503878469839114803377499371846747428127639314480916105165959499617567077681103914589651493645579388648362336901661240198268751640114176837258171012520929485652840350027159909475725457000387471241350050581405336122754773494713626479591925252095579524812892324682545303895410031302586419571672246335894472278980192297379151537914633686429577341387525106846762053677021054073903683813713274401385996291966466942360177525616150548914759110055203859172646745729461445430720253096000181678483363911246142767658348935296240684725170093557096876452358999028408878909673472015198403553865298096237648464279386362100432716576979249399466152555478377631818262876608505404800675006234727239246125478860343794793184356115237212174299102748881642738806878468817980046861310025633930122885731325452475882702959731838509355346794467548933572093574723589749384759261411208765291694244388435688448813484899666820062814285783455269665384152931459309317106266171096526699117783493006934106786860702263517512553680470166790713702222019512790143971466333157273320744038977469976005830785096006192051341640249445764873259023129343048663935980532990947664128032570520961613694046030562347044007316916401830372268708308017952865719800872371921680676280346044259805250556931142451617836456032534702660788333340151946465424583260784850608166858138635427228036905664012624489016894187495697415901811063001246828104103063499701380779672437045015156794391822980977330595924747434271620667363286910998836951678774646756675802132233306095056378404914847452749993699981038836333026728608384947846120239368241325555484462767568818248904682852046397471092092475121807562097121478983401637363819835328308300326296401393708597761459273481163939815626937789378095258809411955222488764651637572488249055251060342757421498056526832118808375583103465880346771620740043125833221214875243650959067289915151024025711860940796682970927847795852369183587125580085609162774148843581442787865678304792725636881404650606807634372162246970523874076322821846073209629849735677288977956638059807778591643530876845559603885672833496970268985200154883201151031722234890357184781254641606899533568092682657780971964514650630783344115931209811053195695252182885794432497778079810150933911704896855485827439666591827068668804948502994104425142470764181697356172510515621026801742866433882256142875235784511818515194884617966557187873590279036654636223695432930135478871906703518542318682530841484820429801112237879007143899108389525780997439158755116046038087647464676900947019284609380273364788687936757799097717994413506545573775429940383570546186346828535879810288593014888070433393625401545426909617621659608936224909358496475293226078059745104665411553498885946732383246964484908564611162299330398472813900093198831284853897183826797483453377253650672234156340938468048523222250080798962850217930015732114789022969276068493070979621027276775726603000019426726751319355016478916211282220966570514278311829822628040218857971296717348802596561973614131606086495448958922995040189788558905956476248533660996376812392312313172370942028940806507019346427218249927296308680437593204634734472613577015451826872319175686419377661301161188527200960952949623060094650952694292565851985338389654379630038857034954420611717341432229849672675226989520209989689052850629809369460001992203587914297551103826905564090030097264649183122053053500903642245430503624507317719373804557369326645492495136374738341506781726144152225609872324873200703339830783769008797767658437959359423693672815698104714980541200547804485983481022520484073686133716309410489943754748564252710029497174981390724301005794782003893686368496947023191162214950091664964184000245824534697114393453921287055501821892199595618150708443914781922370832361523447230330352608278663275606860551632998494610975106959891359271964971190741961412930599733954727621096644091539501320808661407400608972181761970887301418725662988693132105680891708844280143704370129421599340768511957501619437862453299323403246194377481975673143793809353457640342407664455386859426305026674699321474920561596748132208987723961518249269766606873112692136098819143385529009512929442252721623953334204988984919963935897237873279584091562854641472597443027462727032953893178449092843403337878117639606131706884218791720863853470050775505171441841967817434279516123172594575738294716878002848924415945824086894763666446839601546074646441797330186253827930376550774689163632691932990815625688408999129824249391081528031914347329819498434674677882690119651567985697524260550286963410109236709972402289565862028926158633863273614010946073790768901311699659042195909247271458681248300100266677974369111562462398833890735010205214035095732261451103906734132371633401937397106852969531447697353842800529086073939883798683440666521476306394255235085143081392839025212655063122091549413086869265634263273046772127314450752134726691532770958428529802518998506539826545835792217304909694291185823591219138657333681421175695284101216880550891291637254627864372744822868312005762558932504230140604605086731785373505645497256037726613799583630628946256493137055216990447121733852939619647330428060995309279909715310860427939895945904395194747399080315856251274425353607339019587793364463758559264959575213515310467400681954696451155644374358581222117705950460386643063730029212165879731873875272183677398628832920867438322394763900370610940927946351621121461346054927651251649239935385453963521445902856022812668880825038906895741998703461356792286974139527752147816283127769784956282180322228225474572500119183917408735868081738270811285440522670572192548066836014101918019306681611323919546152060661053828860293827562222065727492874164856471825718248751824129979173040100701498688806150560476836107174145462605421388870773235009685720039958723921480355311907121156386863577780447499719460309509469904873139091565246152902566181013745432961861072156452326171820725695559096475335565384083247156458818207453238242630592506791415301094396555378114983754353584602092876465638434606770168547163084420430214311499911397715051811310282363791670302622892754537133177907059219161577970721252405064378974407286200458278736694142740011421862280552986155510969615573751813395155113628676523418222067822977258121066188503118081540325187793487592435869373026040304541050114727713494614308839390035527216766707517485215622298058865402329510763670860946874701118598260135739269691851015659900556666838355198218723458401488453072989480367450470085361822233673367877868432720149179029596135248662429656139787998983192428393590065725372075802205924705137617009926134483140225074217306975899531904531778020494154395154949336968263879862526642230938255136053053160280072705516720287055505488637627917482558833967709437121285071450092285237716612864024407188105926929345996751066538724243812909935071676450990885453868926339900704595756961373289277029548580025016931535572832615680251907706676033794740413658544790525167393001089921472622375509277894564736306607250052209978506953967450485909840519350246091819539985327551300582052916363035987200588364522949315783954292186475621491561095034877157700012394722110670308115690800691793388882182750234747556076051662176545548065800862379521492068891664260727341447928227925304193971554653487725996670550201006863855400573431278493197011400303592989232265154076024453594179197047509145977301732453083771977477100990714835832281378801625109228334632422879053632102651360973837287688921939664554767847458101988717569585280147258393447685645523050909401271460016474921513773215685784838446258488015851665919095502738011313530102716126052313114472548022309960569630731284942338675930388880492405951852136462810828275976149222038090035370357895665481288653085920964146139238668550872358970451332496751660730183940837492881205608175234900307816513815816653857862590607466635130803108670847171936703056387589225692913005080790026710246958588657278143321250896057755733557874187841848239283012163964434943254519342575926657705107109219687770909493795337935773325904437788661653630529634397481316483795883912318063578129882452011184665802354299723426642424852706356021053444088669265219994816872239193447861712552638070189020036970950658012455059837212500694964631451519758526301133148701684151512996751734502931439498942522468039681697297030474552789900915879353105773367237626085671935346096891816083126327550623583471074872840189475164471988880435139134023116952355035363722835488593518666944421039339129721134488155091751008239033116712576202312167566259019773915751129310666527471431513304079797871566955962541053057178478138998993927364100200007140928886788363594207552723321018783421626083915573978813235998053423237168073307726559593325475547089949982765196289732713755849165477785648963175242095061969318572012948604155919744709092150993229198481155661646684127064051519185720171323756091112267789664283692357156370730021949581238998874516687522327600982595912936090578347980076202484370018043338297555544546035699084987360952310895110350306207414463444986622440757412644874625648953685679167769627090926267955452978167416182887557765750222968309997805476176870739919318513624488929597194606506439961697481426516785746511122530488120689529206729977425913229090443201212661759556528434686999870494178468012999902591682969248921982974133237154961601977141419085414743706106101524369569579625124097483898702293164748138021714450606223271051618128739831444057231595866020474890765416769498974221271184878983500700225689402348232453362414366314011793883245740238380924938754144500392379722077068003728029494132335853648196787095370432136270802024855746683810848408244955660824040500900709214748334832573061734766038130529353724871508391751183027290185662170882659837372081899302272017649268526731304951365555788662442418761063679427079909315191441237278865890542052040351717989777791154361918076574913522683155633021301735448210194889305578119238947599386074738767858635146971828638694897465525981691058906233217937090546959766008510965350806097863194724261787503645598312545707149051616711233412240397637361854334348684115355351812355537830178328508652532044510759350710685981912028950155842231418961081478605441024136001538996926160829820326990863182416558425203878422261043628075940519737692218595699973747874054573700460076130567195460958405578425321057484497949043869147236723248178841141787147102456793850903103431248084471180506498861272053494330200533258247938809341918751844924320335483253824219277902677748844145448704383524389564863578036446331467794202028106967679887250480075015922481134690198296696794905964069613246310488701058418013071681710555774486107885869248404441475406867265313511586833536258222719029077702599646478321292357524776537544885865180572556566941801358345092962696810713502978861126755275198691641910498686970024922893080084121137174681940741427277751357738067399543756737955614764702178050816646810284976395806804831024997722059611469876355460412601536471332549646347808022277228308944638370251474615035287852048706665969943701710322434628242067278136115705014460016980130964076559503169947817702688453310655685515012088627038934363443874900804466911899368363035527134627834447995158883317169502417560891587235632019332770196371133671309306465650679797331388720809522253364954489614788807883927056296455629883822466762606739058272082751197425104030627748670377215478646824189795835341935420858603877626791420234819908339426892090267050460751404629657683924946593968200333681494464139110717637831478626174956416043372203148559304272859691002955806964686944784429481599184327468390578597784265266668828786983851859663644933124480392365452373166320112430028116815331081515083297220868320891500590057495159507676854485717305536851143505918961846097020199909485433567503691692426121121242008323015690836597436025967077491155538032540843607108332893805423480703709605396798418211330231142389358624560287041492362716183946133940833434013671287609295831776546593937111333473195879535023224595781050731095433841179451640736092042647612106113169779179246341357024176625762871972547980038988214831274736725301642597905834247282815926376162905103575152937731788376254717861572941788456185703807391239468333083941812302349427116294338939756030325294018615326021795939363776649791682118900007462441720799771272804809024583108616551013726508337677680930003304225427237228861750613079205237959584266630530515986337084198427390372060348654850540765967328774337181767637722622886352930475396588886903502858497032668626742803280853758157304772143481923709632531246647541022461558966108348047520081537774353163758328879306657242192070860977212826830591605110199693059329518819250345557061395505558073822160286299409906175484219684201648176990141197523776061690180595890149201250679862785089740963243900682383474551135691975269950134560435039008166470707300136249709421330211367085909099267206085216923265607915391230318032586369361202613438426038728635323373035560270102419823180078322306377920603511285547827651756907219274616992330534386959983270564682679255174612355124563652994108588667415628755334709622167475432714859591958245264615585704469694608173953922349839982838770835255207730463319031711635159290825460858520260627071000530314410602726440541639948672473954664259706556945292311190948111332224108781716371917120746875917893875189452521705950875656460498641362704516597556664459480431602658722764970766542709840546733327912270827310820982098565606702851865305270896386448008016139585943714834838324725085928645115201316177808090475116740482565807869583471697305875315083457652207945478688058648726098783305855843297554958706124747905023113951700751246236738887718731864563914841924605054003392413238211010714344578313943028362504666316214644005874779319846170465734018100512060321726568956310863208695092022370796325227683152544943797924907632173977653731205084816630184696919480094399390798636908691346234260716977648407262456993498235063539898972787329503455029629127652950474138705972715054455822655581431123396213913419839166395792235916108590696144949009935706962543055838724396733754197706264318247120681319188755500767493527732112279905225384933884164914343063103249335654971163816004213133949690582020720976323764879364075873134365295721482182158209780991974349884711733822764249681868894256168012938474660111224205689625619456878036088979616865633341039047832410219144468082259813163799838302554234193638637286469610782853042821603854684217194218101987914548199221446087241345842085577442104917687608434947311509140928991166013299657028979833138995693292692705896899294924393771185117138202534233632475209936427576939732845432473898324517567589263466043384010310537584012652316047892979858301659167040405204592690720660197120077153649055436171544889521032922130116532236487746268042186424680064934458560727456750206278332135101220509800926584565493892815383420299413435238501047847658984316594491271307439670933454510049262992075285162732714987337860957633186452699169079898041982155965156304550413965823992431378295980036408955822990267188731585405890786767424597314370360082832297899542734511890239020761638497842237609181679036572159138398164434904149913785401186889491738834039447195497215984628196887462880818001574489322209440475560704265872515600763527586347562319994702479369003706840458251317777016938210215424517712466718699994978307431823115532844615868636418215978137802034988703072739177167439994269817833059210161916451768719545063431410347097848398309419387280145437187674514465576275615370522756354085101085649714157773631272845353113374423201540238225709181786501816400026186695870788307840622332925796866866661261760905349193132347153034687900355771416535156222089577799140090460938976729446770215157768781450777414838506591499378820832239356844149092248891293123916646190060305892940129773170197103045013019792809968706907533627258151703050366493169692861551571232123982243942783317521389537172964497133051903323659826182739585666540544263106544419383209031146298448774468996941448897535851011051705079530654953695044287932561932823136091116097489829613389204012465796644746884200294473949407875143897837779838257985343431045633773661643501262016500381168709841942854148390230894713359541506734213435471862851680690845667832378014737044323794396475737504598464149369646411177894117937655862855562015601976541499625090629544640125894038248328612487810561465502088410231796880825535759859471636926813204393242889687249007460073656702805926700460471897703187401233923243551138609056323917139938905439071537807124367271135487654895897037372713888816258367166631220971171214214235694586663276238740102540417213149599150731339064004616998343128120203918804539351947051022620777141954299836643219103279573709919391594141594903246465929265212285238690729518670373749048743002649617603148284441289147090045759547756639181221389984757791093520503513016215019450481801886405517725181819656892231239329009746269776691027700220104306659817121920310555716985679400433533551927473746141838573178826227754739973374810339804773132060442411024745306643990552376009528156215296759370028454321092748683507823888486781794552694709506521841738855033046846711085230193225841015240948479784222254525617811839688796927189757723112879404471429347663044167653035603575701206784997132336855198473795395348643275466664391745620669852311811982068644045677257044913787680089248772408512118708655178046479087120306995733224157515481658794119960700824932651377702205028135300646919294483375115645497788479120527358254057115595005949734961511590190695506332597982009579712565185546455919602540781873986249875170382958258382333795054061073448583186972700461118444784294142511618308857344637404022729760848286251718427279128648129825710793539877655501351538134844495719467379476736812604460991811636655928387837057855405798352970695824299094415077675773775943717084422879920031594110993650014863873987637797426429181577271028246255758272735353220016520763752277229119242595084355698116250633870391169800992826418470649375207514891854471286227290430116559628432748226497385062791930861444180243160945966283022825603787990438159709317422412137348296418956952602192364709951604558759095455000229640634479633063515269874138452680282159409300990865877037304844906017227973828126712040069633954912680385913551810104185345608931885580251023101202197592442233511012686032698154167725150213563535210873310433871478111331937335509477606642582823673252430021381167218109825822767357402438354943944213117257121431527152867330352757382157837445608117860952886527118738989127462401918784384898850639009650523291746464896592181276729194034036817094335651728729650705887694244865087572456252162651469047445993964072490088340028276629173926251360741218230435905412245347618690810181642548814294823025447559597724285904259922620308063657025026033000001673280885697535994457577731157721954647697567921170447075968625851663753384262391425664000964443147356443251940252698855575897630837018711586744828315515864371907209132854066031156823934633711182246706583555234605442259422953310617934345693544937724392102517394240255526715468473676763394798482322403483222578157316168739335531245866227251783686683135874349023727103813489320157153135367207456935611822750520706127755192643617305306420423041093379017933327806905004600824010895794150464487555019135438688529898780207138901178119160663008938376403080036455421597897805650683835211893187191880479753564282773127191788857870950016863973445336157039446606387373650849697565364228256609447565830161236773700887370450811288972536171003784717572488549570199903111229314284534676102769279709239683886886773850164483869410199524825882630764148660842193299818640392847563725489284966295136127966513524906492081760029841925361239917066993672428661509860769051341729240175236623192055721272039432325075820878601653998479272503298903715614503584776185890317378389013570151676627914976370252096204016088655024040926444945563092250880659639656531543759679773908470812542691967788867603716097863171141841251305442852764561167466547224538825959051194012315828474661387288454775764873242112912369906107697286189308526361149687827673536361397698929856467406758101715282120291525917729166945233936608622578366410576485308324404805113069426554727647260369093343823747892836564790724671704247975295524265539506100487036953162426213522759919354084803622652650500943832144859172782454550294070410707533701692385765342037246990123420704392603790872725913797826874510693572834164840184653659990964002069791487449865842202910079927759582951065063909329054916730593292778450606387281412280084592047143343865352978291318092454461622293396497631256925795775253658695270430446426048216083261311362030419469769754278584166201952099274203793804737452071109141442877168398366152696920152006986940143066741016389207476098457042758067412831287876746794526637969522063287805019945296972529071504302958773577825684292183567099267839653819017663324014054330381488439691325734018195387215037817892786919477594987810004893915344192185314085567053782005550781353535431040580413732894824708332869780313717933131204620018589893907968885709641735092389948429162901540843427011335154944719727481877762985689919679187714289089384865101753445080528529071780813207213772156950326590481862941104571391773431554239622250539417344748605802624720505200361042940381520819434990127971866543926469642347368597116956467847226714423817727047858269958920457547296169157727655183114753130517056840729118996358382785476920443758038664409498037383090523382793499748076278008324876801981015168955255043092656605209857007355137298608047880228893491675031454076621928489788445411018818364036388743179015234946347864390255305128372464781093642946697742235928156771783193647708356202593234904333700397847365780365061445799828867766024233141408406591890391848877281209843918479187548375169351322606620988735493748804129926222314474231000336270843624734475264108429172322863037157217425746284418300720397604034706489574631510648420325436821686586906465483813990404607426107705072573640331687108981307835698695057638073820206724305382767582979923626673103076668850820040094554936986286794211258338251235645882411081806569652554790257213621837955675104494223817520078052274971020600541286556859623746780114703756150807723777903137482652794556652316454680792578654737638984192033671379666121326804716671112047918342631997891839300643919144948367888364602664945199223089699273709951329390213101239732111127035372584803877848085799360776517448572947926089237709609098553214121557028924275257187409555827213810301487936933162182343845464957662469009089276122739333436153362980439237342164743853700791967733016056925839301069585124086935554749667411990444999569770057921216164960566462730591502192260651857550090933784550403412588137842144037132397026162162410786849708950548489469852548697396270518469652621133921221510309714680915741751114147146113179438748487211501110459691576036780365533678358216040420305515081974906853726387119533976116891225670105238695741028770757480559313838991113742069492835261204821209751785160556161229606656769562709819984606318661022313931668488906756998667097733420628603368970107318346092710168379977446281775130954399424658688907592513323689654470336392324255716810751028124883118883442828383414323115963720893142368100573258692015556712917601200082439468730286870813093332236928087141313089196925663865799121900760545002392206252867536345815048726257778241637197628365362932889477763229459997001138754812214330779162819390323801733349166796907088593658414139129461102293804517386654058845825382688383253610379785676457835522626702965586009454648293048404614870204552887529341143001670299895659445597809711661691349160790264005331030528839294987437449250412816945497521536778559102822065987153132377863042180704381730464909600104485916381375349417271558426090299492317737591306471783242884745430624181521753061313321547023162775662751482637519415534014781131451102092306613763524391860504632883985249093045847903551137921843354534499835310870844922880056399919366788335664188046963798364269259933745958745175104661364040731083793229543881798582923815230261661759607260060894858157142115568011172511662850561046150506086369941969955117968688504176084373515835187785444733393904486084103761718037222171203652885665147393518077274700161821169523260151685132018942080888985836102308748062295076360754050154166760130155623166610010243604596368445135121960154335944012441417508861903587782205038039726673444117935742664618610110666941870966333493974997613693238081051050015255517399743036489956240092352421315606654816450113206166151192753919093004718530475977347747704912666175233447090784705713128250466062763241970874461590596572955449867409147792668073394180717066937926884872436672351535631795194504914263627525382180388672394213755166239287109301351098203981148145167932776092779486587908871487014188089168886203347413893639992436394204192112525433688718884985038488147804896363186655409368164531014331281024226231227026716215049670580207202308219214684615104477368194210994914390077701060805387151069770445965090897158441248246632715608372905344868005889239655953304825277099168495606287454857982679577651722003138106747884005957344974552205016549578946655550729836004438761669186325232626936874255154747429374787576150931965681714311993102229860318607018557633227718003433517672690230229681976437458063234924350785769586147935366105235436925901774923888007425521699198479610137516916572440863956045070604056448920539521914448045288301894082056567614646805811247949081296589528588362387908472785357503924447938135685904340891467700098792622488125468506072828552996633385147716364369636899264232817197281817178377249007077176212401617269992316836421532338458159506128106643844085531610022883569618174314811081151006524828620983639164156820237107899890782351807846042869295486169779408168690113835711274118828581686334324379483080895313560653687731706656454411991102101401162557372050826333179169833848620029619464065490679445183820559971545501450552882606174334975141637630830692920628206481415529026536180171143454841778936096780344729197851255529956039543475020319448050079377330868748952154696010288018755699287059336297188244997738859194590581566670691662853518855655057480211507629555675214427771720661216671292130705812333607650523577097288787889039270582424714532152838080357490076448821013802491532977213448361709614327474615407459523187908560150693012111599404882713587470244230606475845810074424971920290399754797206333824980861792116190780775033496737273467582737416582598386044507807842706433650648850672293579606688590644469698905866373204670525936472891972793891042509007971991844186499305502894024575396550896799301809915424917764235451681541994764007264429151119877500128403314601793884209501148287937953344535969493020639011864733967629456130732218653088155943378725507697346980148888409736436209469974325051453573672946043002659004215905740480059128768413076262950023668614552877947930231383334213773165391481135616963205327340319529774709765485940160148235699944453359822924351556244760918741841339774248701584581421256763267930322239403832642231451577407819493079621305275078051186681642505085961553068977434337940749198056432912189142469864542529639467333030912178074387044465535580416486462014094761880848749731766406267716135984612547006990758350542677101668503195452566882958898989546365716076270880655052756801258895639929910331991701508375732629498995033161001207213262265730817058255503531928798724825720418904027698984092683525828152705752712165767431947725358742519904145387743867173801028048673998066475355199622801376860173618696797712617337576531785961532991651034352370054565049387529958514405446819103094280139385716935271093402581781599767460100692415234604871518561911464883030208049569064758692872843537434295049207558770092921488109756546375821482602599941243885984599347180115931035823544047076011155288817137633958965188405763783905705176883737163728045210676155892030207558639122040808398830856111210704369180038655505514880358056983499016074260344609883605336697082243955913790613309142847042960494754043802344238432508280496664414597127211164515880334366463050625767665050546296551357777470948911669083736881421485171157788423576147434459447460550526708494914337980964344126624147230512583556982867643219791466586684883200101412832899142937378120858800872670971259141065799840602494834614691207165999534676226708452945911248997834086388342694047955401851067753275572963002341172391699346128310766280973957623825335301091543311904971525768873664559346885232610079769857258146063842285800845980813285151560624513015241973783084306005868405702729266840870757317098625865481529506134578783754191738123009921070034906292428650400650767002393962595380512770645352833781883570361669110546084310705412687756402285717016315911715998824168835934518877463061933182589349601122233090677972166600818249944325968641709853870368205640866382981038420613157925902645063678075412301405725924517812932603811468232924382886611537506619675421595011101873861797500726861636263417695800290588493703553317001074360871067817209690871653328233226174998262240202008906658814109149700123885493746182672840833708080282550235804685802869797389815588595494286124491533560394531931981223853019824876952153143123542839307458396611357966222312073818669592590866707445874524682628914130799645020117677878266544229601939193438454032349772555165751419631192877194219206479299301008076396970816897624623233724817709633775100485664732351957191695647718122929654914954285589703522541209790129015064918505834689152085712705702774402862035471425422852664230431782305006772453431037566854269592746309326575321594153482437522655201021594643924394261323430341852274535176230494155036819007189295699994882951818321634143482676093151730320829022808357375884875059826006239435263565432682979445576860193919828760635419691872922404452454269040267772156763483677642928814213492967676345536751126703867941619986379982013682377351071830015889259979780643683107457303647696247851418271106847114342054561774310053573131860233345413039794079744521945719699006655529839477910134327495064813979738192297152720725194815112217359462160630461704591272494047438180314490515183804115846511650519086722418874981915946932714551476895052093351523466338975931017862720259177393371506324798626877415291978101631502399674715950919715936193730676293240153994838926423504023585668378881551148738780181298484286101883681023310765203544628920852823498622981299131663673252960960793937847499043470317013424644693594980411108753735805443983533451707372138409887905285919390796740915946969262693975399500584865876794819870449053811288616901019216800573938128212538482380464755968695000024624923973451870509806489254122598243108457798608316573579154008020178688481622780883090309948536219243865911127486837199650363505599458538514360807141206599901490949305435212806378959169173820259723218546189142501302996478051034613395294840162384810111638703221332467120194141671785396459657129398685004504361751687221929080274098386181139931975904565043274213414891221756519194254285241144579701324930799159638091663234781355412551783075604513351194773740197094506226846388572509543128004549414477304510800651044233094647520111642638712695199124440309094025006022750700116133951206270293793941465444214745635611098030471155616345536207064534587092130543251246309003993662757141438289309892421945519151482810551621736383008610198261770775289141487923665796867521920745948000158235721121070744185632604179129836121483330868215881552136825037697121727828265426922739009187745175122090685314780130884469785533438142563347306058882710191614555788530581662088881573932469807514729057856768087855141314898168961716707551461581643075875877961836018180371703785173084004311069532694227030534654396191363618905242746299833633080979377230657761281607778254780387582134091874331467010058642999990105398310566274651067087390997453360671768503428675850366096492499193382287660306724159964756296404781254859561476699602777529376287532233795308756334811375932858523687314223923480089394378330386142586679142624566391428419596872956624131642625007188754869231829592098146168459396129913121654586062005610911521060859265193263777178250631140819835125937783366473202398885488794675202666149986237872789778245345031206423398513528013623650628616326837854239986976998189385140733553798472989111879203968704196143953306460254615847095344387006599084638416435774332324602200912152992714204882266539971075826391901675827944820118883648943172798688449015313047675751864000502060312138821758329064904517340105617576129562762389233767962794122777687049442947089370208155591548368357003726345806954469464024802627229177917483604861660036269712830469350045735313774372533023902608267020121980439266657058514041448313589532126413117213947303815866279866596265593289950195921830186020602481445972682773907451000850060265002127976202506595443885897169375929457438427892823507082998137642334405294131935177774509603421689372784124896101009001258382296412353847996545639007822358305599590451535125419682212582125315527573551960046970871005720020396116051408608113892652947979476444535919298859792221602150629755330931708180406569618985379575600560971028426963613730403310874620559464771418964181971457455293182005696376337240957667273521478713449758681454507601641029400451659602551987556001404446027560039564822821818724923099348328412374922102117631204795242289944359996060948616424591241041296434433852080588512010695623113606154215549763646830723812116356465557186373245420652652808365935358352327613806095788072387477613375416309663396947943895831016896175734148170906259837448561707928210365143084470767677305521651527720796837795257822839761423379429688956545068251962489894747322318504959354935696345972487049811613987333907764343413185994819752471231718737106017952595063630219602627790359953076887001533786454617492407073520846093423734535961209264133622357527947979728595222042271748249232031238329171721025961597678169156160991311834771256399217393804764314846404811353027255415161313083238443211557516318562624379265947224051155886118105853671639737270707427893379736184791257464743922445422288366948488218378806026148935375144494393422618155085093495193885143201801257439653020475872184987157868077354413187182480672484928889475956027914119623787929695033325635518217064047668632146064364416945230333481235314231812724353350448903962338896883155501869595547808193495389687040791887259465058807539393161129800354741184675925926743994110791215701527359161445567818640543962517094752009480247850563002623610024217986710133425148936729428800608601448524073148389215619718511418636076282468863254103038620246006768301421453829285019204663638671707386403066349620633148471366351701705314740628292665550718779564899883269043731759734944065485238258860121168175857121062612498819468522456346393129960535666379598318737422843987145350807289013329935526334680492732271710516359905909624869501135223580744953791607528085565297455663637216804205095360757116325556709986031211099095704368447648493359320766539494065312569762334433602572859138925810141872815939259580491123553923512817770772916196028863632364553553683489312857446919140518474325413319721252790022828457688497897785224651448824799203317732517023787333641758970976848291086080935460353646503304341789426378684041886122301245047316832153971617390009068707435854702682995881283717663031904289271558035995560921971956377270500782476650152437637958936055934171096079887310650261711666876101371386907192231685217575513932656996094947199198246733619380382726091121039901244461528814556280744239556470840589635694912247863557468260501461242458133225685487036534992529323822583354739417171948659620384987823365351489373131185652757306952742055167701447953994776720219022618277707078162936901862169344324650413918532286386496265116305212433781169433052435004499901222958981314035620672067089018431687394220997922656841628246249659866436721861989191504218593656885784866899005408593673501043285515989862636784000566441734922963759860105564782748137993851278822880951959379146069202835765329172933217217597351199596631204580777337565768209905378702987760034490383655369664779061331686663037666852535292210650690092950744330077223881836018388583253235187875098839372685855567131379473166419528650914377970216567529081237694891734457813970719223683996943267773494584271763365328495026248373304444101418869220691857621030804829953585809387708662817743024189684530382460706297848338291842474015953960758099127684366500985918186458642389685471020802717397012529642647296500592393107396694495370128664570779197625000859552231486148943851254310483709776690435807775176506300176351721586283670907541704621076990895958678108417795524930789970547547174775483125413369268917416478145831002297130790614451426051399466967126296289603582049573307404219699780745886473117992288277857914584412945385012059963904120648834902360903746561583053596038005202405897977725697693873115111786897945823076749930986762901281162625007154001074774734054633181702879014266860696948806190114920382104456869509658043028290523601923781514937481273490088421000296280022045271157242015203252378903575284636646657672991216305033032485935744259887938642089312018426553236029848178542755326544158587749987865007592178667646535321517494015864375595621629207049164221238992710589434242278273971227697356885522205524932506892280439675212466375644957783803749893131901370916429110431303023306536861160485502531796909212135542954005658122123511941984560183612686504352122319999530694365459441653486339428062769225766420627332092901300839239459229672241894229017456774115971429924037009564709477698191660312073234329242600920209232116643003261666648017026468726323945974688663193484853075294842509574174982015505418467721581417410223096720790888697987183527183146449524874790162198796490642296027223984558762477308855066216515445112797705992293492353515048040295090359831720444996298962020983496214710684799203595553659245899984811042465208247858330878513999335309155212479213335794133345715915927057735900656761446711885406284440211501136109101168866328852325025203231200169595107429882349431114991472552377978219069415630383790243444291692558812413505388307865852550271454639513479654788069821870275589684292266795379626854432389001968779894203752397417448054490686960677794088914393446968218955135093441782557962080211346696652580994196374321705202739904086505702628658590745446240648464204366903443553812697770506876235210532145893523391386356266262929241652405114463014415021830206029784728390420408906777239476726080490300956488000456308496293754843174343404396299232615005679799765886820743903196556528358519402770477551164913538776321435541971824560873288260550055907799979662284479627899572802916792587262086931497578949114628574958174156138334281763480524119629474187022189455971525495893886983289913902407333030050380342067705707678644962063744946049152964067993455999099340017587548519577001530682003940867040726442612286709258320615295702840581130884798126658233859936095195152479456523105739244225268762968359135022007225122225794382797041796426243028647557499906732887477200456478404350383089293290684955331621697242455401014159294464234009193601892405594731177924980517947857384577096812795865151035847009992489667518082376395854554805760129319132529940356800856908299242211452944528994965361109112045019297456810076044071067865846130053924263279816056040837269836945926809708449340247224976370024117754675511547724369761931472805503361703393175452744686637095314858235327378183719715387093807225227264312888268479836616919855452606060683850633919030793002896710898361368808864586059332603332740867600076311127052613117703917134726318312425481147060152972610446534733797737016105504050023217781877363118948834027929685227878374352026988753028144552453456210872158537426589361362524036802199874409546149179237687564993265464722203888794624335916545392184594996897661905512519420850424922293244240958294706638716703729406014103790118698823857488049844475509366583271494261735021357602414613719576971891509301986317912466128784136888856446530396402836105334463456784146872580315854910346596706464045612790723953486041573585953540687584107174303610561287756399062329100045203075127463653499139088334632112599561355257616282826709239441766774700650600595995008006038844399064392598454437881729743001477481873279058906002777406808688502047927013435004328648620880266352614785373829089704965391832366237649659026617102153891777148278923964658181139585241585863178537156988753803868287532859203204448377041177811413386503567799069970112507482092896878128084200900048778010582117803643652012599208440160291557565758236661166630561555469239715059807776501791135396434711175607402066407448486523203177948433563348630862627472952457426544569364508374094133327525415647744807662539381899548654025691250295112540293195128888153818540422326058454141993479230566752939364172334757193795690825301451348569451332888880801568457099686671877685116244863008475192822251806932180288013265037683347597492840632496286285954941283959957525863369030467228981946155961231459729734979388999401014534163028112352156137942112599254802550262518385514219459710368099378618282771247987660082089696639632306495746997824752988068843313746171964872594877213043928360247284886227198380784968363656817077377577618910931056030696695220743119493831380550890793942562706702426613527677034267100126716058056957959620989824299206382235825415047994582734598708520136228806461172302895083125129241259153745147238793748944089787651313885428988686407124776650269172163640922242989404918629669584167448563484545785533562585057639327916282766966371633453820158495772786998895544047997081477587419249470321124319602217757197073436707788501730689152246901347217338665750460077575852146201435529400931066174828563574496417632281557365179883974290414757628628042167699550777768301978632019305192760353277636083801355115602449957130156367466425089346506155241867628924932547675996620997967620151290051047116755961988785180074668869915161539876292222424677112964200521780132969904542975183988214680584807522744039481028284323092928795785053236813355731045891100144676922686327239875528571717656884720053712593725303865150037113478081951591692400483000626202143137644403747237627802002380502055799227467369930870540816432872566379951195546492130251382615307881027696067590488582303844969267157958081404275878773372878087874466689502378304628680843786569199982225898484063522226099923105478191229951035162384020303283461811097306835024305444679884573216207900000412230720532622777597594052484203219688298830361420155396145486890324699941946034553333247419385793947341653467670633047618682698582786501555007755705060176982766288994446896225828091404485389630714905725934538841231880621750471626634873392952333945268838681136413434329499131936683969893081889935517226118053030547245068163996970389469445792365338800153944839766278000337870458722423446268145626672813223933798783507805872037032364783370303518634928014078977185601438075588873492305070268931723126209939350660102697001879348561594127611376903778189437379292989717699288254660087819885552742988507503361625478515654730061836455523306220457919743352830395878342138604872914090445256472793972924847630141339345705042672437228758443247656748822111823018434850534109402518366475443677473948386505894993228597359391452242525262943070898318670770907797659866944920012105797215070617353574169671616950986067158580878855413666322396596379831302936031341963103408861633784315041535902262808130817619398778141616723850702741171087834221538057156110140455746651340117069200976158741280529687488340546536703752623561782384287425913694962224730690081629478366052490052345384901729001631505021977601022040197540830616229942619524615304755426817081120369236035441172479516543401107390385240983215427404885120558561457321519190163132308342051362829537036067457902474456534880418759076636956554926354522289736273263304222260607529209360910191981351735828162255128504354068491982020821100055103164760965172136049115377826134545088381974827459081003249240728688829352629480276580621837526412283413194265632830665174782909066826483924921656223489579084604016538472663697156238450690233479995100921849326643910922968173788428554687675431229358991524945583790392813344445313994666288985075577648461309735324167205480061841165992863097095427406236700917443103002275061521625241680154337235598119275909208196276274982981405055716664491287952943591849414142245359139664308897762436900634662366889720165340851458745103017331633607421139490297942403446275880000883593962669528820707070669205762125813712900729186381185728113518282280838668175678147440962022794299751076689028999116121776682258973894213393540398755688459949746863622429080693623135511790439468036437068185704460929330365168623349208805053736658004373096210078482752059267780580188483431174934031572073211817371412953718888937543552486954012181430201082406815701540536680092955862613636119509950116241710403809153619481467777689997726392616489405116012234972506032214378354140694885295959496576633113308670920399786002478944466229737491123625590442961228311651236617423515769866418684904619327594082565916845355539555085757899669430196355786087285091365086903172978237946192679910333293868856922848463103972569160130837607503748912547960192953964930933888913230280620029697758116641682631789399606205000740182462994818162132833130454123311109456104641798625898882375606456997168183813032805457306881855417766162644129636811104728706995052750768511326336733008853168105426160064301510599257469020112312779016830390383290026651717447806332928984877572526860463492493054664300034872892854362608350587243634264910679038818608726015846779703410544197525074377336357301466118438030768931414423938238811468469466866939115050114580724392031122471051661900339353248011270375379474148817186039109086908448547434510904008833516434681566993796492332042839716110831401000345431082102930168705983347921957867229392478213712005064431837393728606739373281448646134271337822322051185610994168149377832438092743098528613313723414617202033759525344400404156955302588642178962381407963533109799364770660131556036518689206742740520436976868018467047927967753359525107851793444398704881382699553940595458740799269698078795464949465550471838357630463560022294062730285264329795060840582981687334927705370582618275583903993372769188751001409300094094831818790593370571896840678606026352894383399396018423716494633079853671673488928305747264920654998417405790888598026164821517567377481250913362535124225330921854256728718286411012181513779366562531216898919126793776592345060407880999811976058433367722492312215282891618937162781970989005777977397122110899073032782086331885816927797554615225050376585145673711237777772115342298950242914286214864371663721323831103416414605671260549561305079733753133632064205232195139044897711444479188978562658221008357769878792932570925305721961941973551665220177908384188614981393664417626328342699098509895095460072955027675036920679539734486207113420332192346732382208188269521966819509647699116674748602658808074611536577673330969889229062904075864903952094490977123256491501599379925584944992420274763534645151602760931908076399366129739349308847558912964827979034295842924443121948495695556782835298317866266847601602910440120778473813579468968773764839449383742793744667032867879190628745320958604921557887579245170059454969693011997826881521317033787739067197827950399895449120097115594749312024895479411390344210574124400322838071623152720378595881066681085159671467490893621875596288574988632907285830048510077909856367722338678562303996336145870633055650816554292076296284266549952474286756901118927677771442920531284360779973315070517173375689630584017955406943124123502198978642192097721103529558827468433989897643885891382641324199034909591639160997455761181006874712053784008341111458734815489088030537365745264345106024847705205576362699762945492190585515889758272307692581602823949573287201015922182402637053877027027218132901105105349963179730453387522546449993365222890047330849573245227653987760097108194093825941560308169801166495008639566548578064742083023546905162460757174840137230824867678890377759099430149708063903535994358185770578928423858362112081615463900632278623557706020167103440148391913888238660899113293119627975054952707329669954331367204525313170513208012793234520506057979383692216929110926587368616275524691153782343714155722676381736431667277887260808732309630399365592147283677318270094330024053127668584608772941156970744025231170323073695544244307097662069390059893517405183180772215453263166767818562446607731887889821324619205646705096632134054018093613231440653481474575327655482797903392604506281558492608684917398741747799018960044488132818373850340142618777475196541141885408233341457062337641267002101980865282513368673500846085669562175915865298715235396161876911425620191312642609476107390858735321833977791235282346279807867721299783684294376260609831540118667661748620907845497103985364315597266422693918842072987927705394396531030806064432814329109155064282386702953039901747372216293041585872438733169616031720327915163012346377862808400350474763027435918048373722822980493838369604165812538973509910986051981083745381681802926711688584751044880804129939627035736510683751118515471105377383128382193977261287766789765832709132790337673482152707339107852432137481512856330330071231981055292200936350041276624979839136044258244791833872540004397723447155084551993796105637726165205080301333327017978589969611711448970521634317396367216178189496375711424715576481810565979645635780502683813906386540307958457628976100766466598792649277910777191244175403983472067936351027080969709037570650956785863640703366453020114043463817211956688767529002191417833558511526386526327829083160409858600860745257339685432637557939574593613236327681284112686878960777228817590856417599181154365982999355769480152585007220613983072657431868039513135928315314860957580468372059135272055681749394860508018119264117962144479909765407253299339291095597584372863767310499754657614752016404787611463213282831156014670518195690239452422699891000150433707411523699162356250386667376036448056015090882180878883057927595347022460936968847592618685588425908136610912737533205035432151635743067461718773429429175962654618212587998667948994106913943177882668008525853067014244620389421338560611629407394408998325541267013510012629049038807946339851729519911223995013388060180225697082305893569964242738612797903775792194987709792626041860950716123931638545004683438387885346384788813079846563382858114130388267527025416302029457040557110332887618571264175427483569260820303863563817847774273206386322666368842690427051391757692946221868027460980209231781778852895764765657251086777115156469471896598352185095834726214353366791529069176183724345105831270248384405435973181548020684685615316423140448774572070205681383427620029660593512841657367037784319370650342401182455933579075130832514473951680407006414960453541376716040830889074222362591094373151889404008788777739854290199860082962936107626183427378576801299184224668641732885123886210026761928678383192866206422949240288028556577232109118699042361739088433753530297068379307276567201730259453686118713138026207182401934053052098201516196915306304903323044636908521808156337098706301513990344028245665734814470713896564469322964724934369896227650820254997250516763627970009595445387282800901859863080496791443481680029935079247104801566004748114723871218089674369713892756690652027769823927883578834038726415834956169340659348389532860335795946863808469261516804236375215164711579948103703741243894614116507897995610575035133972315518669347475962065032837358176205137897018851891983643966606422191595522667693039906061014879390169628455295225229256411555683826248539538394666840801940613600084100144475938396805531117349452147805689570272710394772792632121502778397495082083433093682762752452951794665359675325473373860434816188573835627420893941829051046901417493019280235847163063876791112586388896630239343675998460574273773197069991658763729543017144863607029013946674356834148543090634517997269802539705961432910289282753338028857632895807220578370573902847267583306637542158816090971455399380107137898479472353126646089646586461542401224329499126709361911011852906462369210722544528098583059556024512053620277977784373488049003091410057289487902693454110488658153517226758821231950701397112717712383704664829692293396721763221234956060868471053878388198473545528881363950857868899438861907278673079823533543985368956126584857952214340137622739465874162476757154983202229886171071485489549046357772606093204521077104035640740555901167560506763897977484227956924279670518462546332877497817826408381476572103258908115538137609723307321802260749227426237673496877358725099686200623100397493972080843681168560006946314157520371479256564315307292379867812551688950326543193059842591564660164266550105540775498636488839179368377228462167569333935207168593876218457396809776667039729167528660939166678165749956288746638576451526910383856263070336525297417340703643177092499388951022188412785705506129089995303994814788032260668199920185417271998213687210504090059972315251299046399376468878260018122520045269497685517257500862450662616451383635390321950048581070664552415565144290998717898258140594557180175756631614006489670183980612065991400860247934955997561153936205591005009843202882314227452348923807431679865077198340708104085427542448072161861382958094603339798475898908113067783738387200861190976866200132888300539684273034302991492463463241240135105084582136042776585416405270820847133672208850804927826527126630719622874974428464824827958092043899364574918088055725239669753911090821653033636341299235575479054895012175985931268451966558218902113672528420291499998838868924225865141056783192455564346257705720694675357376104757842551803045722095889061419315870220912529228425530873562809115582917515662022396968835734488196457003917872271746397215216545556410233371573698338713780980671640343205233962951592994003125312489007990753228790526971508680486751652806145916329343390545613934713926541462972236853214531242326152422277142215234513757507599756718251771126845545487852725597029621564852945121257402260662596508407069071562888563584809149185861794106552383674414533582273344109015012067206870935152982193501128620709343420416565189444717540028168978320902504717743329093686721195540245991938229075720385412067810020308005723723625042266027176322448465583618627614666291384961491760528972406366918287447513174879587498400715667565652930341272586554411084897970456989167244110113669585894266734022408258050077626735519161828041873651362791640943953547777812933390261323724543326594074060930621091706688426944015741646869559185777454677304906891569159141049039129088177806630398721972761997669140631586091048383579405742609159738474633570476792284313405325170160099201218420265381082344072572916665886930882746375179005029877644043479364147625658713078136944535989528510811930953508251204879870715265472859470304200067290441180522966330226418749427455696733578250990149959814886998024829659555844454575460799980887598693908611439734605152340115647400922147137124724174093997736411904699609584805119976897881983270178946753673839263953317871108176293133166610457913280141384022367620341496083290449500747570343535938162525513762553941386496486442073979436942164512309784139403139959048361194903721910521460998479081372875855577687697726196483874005319407568774991517793845683945792080534781346336907783321383975144769063087353791386674654745118893766400742354212474855769690184171612920443043735572325423666458419994802413239970580073661352837672737241702723419423242727535056157236366095998304245921706527903105204492225601343780434946380318733975249770446373551530245638645117410378491740068472289851833880359424037813818848696088197572020652249582137564257050204286919847732952070338761307395900715621178732244846942605993332208977231398586388024582061208749044532475623716153635299453303918861172329859046760047678990163912298809661911589847899879129040782123964136772921850518745254509094552522077714870357999480395746515293132601224224097551509307263902558688122305455660763596393211204445611543663230273561345732775756911475544896277746052800035987023593708557041268222989976527695627568398758103394924172131855828546470791516752663739223746090868143391186893286828961329399595511472308737263094865176536781105834389794454095926782128121245059978278110477113443864804664893710873386122086475511290964862759859614800434757843956585256977424534575690601888690189018242206817222980895841381131843054508384895733444856777979102787864444934966539564585636229990244828914194856091288778773754292688488835267349101203043735273075668720414237374167249107652821482886493960799848880924853044430261903087720161459724020917404636248541498821617213160084007192307152892916447771465018352368692954889201493337171351765509485128386242620587245803386342017864632697850993382599222620253564967388279032944579747601485643151474440696962072795356282286587418799258433645347009050407077713305815559024306489887481053193728229906801364204646738593505521169598733346675206483081722042979381906586586035923885695052943530047485038478684783363139038963112238767258813600130859342624808678998406085903238418957705419765354440585541793256758201268697346605779611006392949199743133745942036864332652136686268526349087270213038835246257884983390391660426938114447712999576697344927495002299750710360246320972050132373458969671451145772554469727646335129407435072408981058763282821064867389097981334148707434392195918211737532072353044508473502792029968926585777490407745573519904819608138886188528663444385383080869617091746650885179521356897565099257154528798255170554804313579413344330949802794600311724164506869676016669011616924499266776961854482971453770917494422049254073611441159842743092629841118347953109735817121480360198145435888514077268242281731677484635040956437377931374655295175394802255256438308466538667348414186067913220633920974931760721108788005016746291437542925388123824114276049320305466605946799900125071635456205338768676268788864103841793674898073010968615870272624822020327412549046829344731449666417237268633366635398479782790294634423115422424302750176909284866715386527491571542286553453271721492791117254821801606408382482404090069254657976611478513430028341104170505093601136909603121874223341162614152696281571394601781233652080072501369739596206775384793564283191056437033828220039507064595982634394398868437961473908717831245915389672076370372692719054042768348378369190241860250911788162996027336210777758967692309354604757318241756276961187773247681137717048353079295802666303928447882548412481690265826139810848595886273230740094010906478789708317939350643145293189576328182369722942963442820729855097739421742371541631748326120170047782825252388588593729709046355611918639402818985202074224587309019262370081408652784855371396639056873180895141906913891321229650155795148543979365651864456149647004289627741874916338905305855897834377823536859597004604873237487266216770333399686620868743055357585256112720435231125674203752657493844670278117658275818714075168642112163347071695658057895773225599082152104842050497278242674940508786655919377828491402689871240690307212214141424540333684462503571408751485501177353042434072793717856941174933684778152990327692444138275019696153070444759586965342264860037574640578958855470580842058741737025486562768424173516234104975750182063433783768040257807558457730950922235284695923110745551326057676436002372993067958337061119227155919559682069248710610853672643609796335914989328931507481642179558636676610351511821054231189871258988890499590097751319067112587881093663567916411165677382176039419443342381922354682121147860202984331825737541522582598028087244669020649398923920749582954450047738446282757415955903421049651119954526064539631771371132803708035112104670227469717091754914382302696152199133468426748457668887399433137077908555378783165699767777240652687687241390664535719827656347387317911120646781386852622425796869627834964756766565382313927084438315271212038216959353437983234421317465067516414062744905822479725232802207365211270901910743896483837682146036348291762166246067621153660395283999897645248375829728874663242657411119828318317476986757880604651292155198932899204297438094334207602661185130932677561714635168346739656320564725153179922506661108549396660999180705499238446447000612444261269782841237230279336643497535298180154357293567950507538081550823964069268387469498523795849203290471637921158148579968225255649987174506206707914790979100143340444737168249776228555822975184530480983276969556420452384525444371249958119783932418768585164042055337588328638413655100561385856589600419051629557890683883939412465844895223705334997192857957093597453654780597441973451626602048128005737626679904984711438531229232004852805886735645690837828484366105974155012090284012363638863984040299007158170579799277949277163115704488718573604375682594359204730608917394001831475492316821813152277167205256186529138400930135266277882782622324630956415880232251108220054900896924552347386931379633513396260344101036289516354452606243150768083176289832121798441327417169401818063885670445334919432900929610000673956459804979613978246642689034481471491066042862238407393034469268539148762032202023729972289047448090385723694640873439971025013737390234937277200857338273455211112297398937644512058564536251462797969412796925927250587853299277053038298270804117111765356078352033698201372571524629136211784922031150531195354063358816261933207842926060677615423464742777720678462134832123083205608220189436319471456750077433114164394270467803264798568126351714411441297258126221598134049987294353687129338697395480795158512246940150646503054679349107282411092102157479668768499048471095687509446456877016199708982363276376664193837745566702422278212908169789877283742567008555482809546160595170834140197244589971039847607719370419210036729033541410759457810969361114475750208779789672757640434895058827172351412741159565452825805255659607520855556051318992685526609626930119278518748443826907545376961808838431942051606035623755239330485012079277252848927555673621215726752096999255465474521463388846531826851958909735720438168843709644517313542744118803607773055091272303568790836759491905661563252790582821145436240652898189395781967945462692591370347622761423827345302245268647327829424642947555939266962671656606515133497942136235842913626800280959425045874071959723444215683200910269540681050531960807147144449564847066272405214637351570617933556690632364349055737384079582779910762378985750214119934027029222996069324743748724124506064149396414018432785713218459788106668727691086537700145734712981314396236953624458415050241371598156199917319590749464510435600993490232025172714209458716259274774346784223049114396227393825315488531581170294307228649029401458071005396254202445532315053981703363348910066670116035561528435230628431078517038818959667122388053857235568640768297860504165537709916776068858159903774788512662886819665450391944522868959670719991536356987678767602545490869192632883813444252560157055925029729255089347412647515371445151894617965546822397274434710174409180268596879811050224343304687309134266205815160084298806275667112047026880833620176362863493491817459650221895115545433063690938898009915496827731395098040970812797689017956499487302520781759519628011252255820781483394129694183657854952094158798089151003793758975916278628302341805072769008201904321701241966654406274501831571567378574825397018824824381930648176286977090019296074274958972417913279943453555720216756606814955763019096741432763019950518735266412771614705257992502702210312687280652959614123289805377168562002320657325536839739866782882164483443458986265848631296037833810740080468778882622184901851783568859747745316427122504444954505150987372708897884879076318599277102396904459404589140502872246237269391479777256857916966837971122888769272470444245260316732655622868981952703660686994450074572906596258410834874572660510926116886553879800451458285914394103725848844928657689694439845319423660946736933246678592402469104917558730303302116748979005933398223258387292953173380664298031568928401773231892084577136073352471324107262136348208634572243332007354803134119487361084999273800524036088727728408196085806641429506393339238448840668746820592956441487639068426145002844499308419994870143815117765232090164551063899093374995592313556955851090595025001833673426925898548855106197550368388618149533631922407962949863881931246940242533703226295692532896856518588291280981772977717743648636531757162296035606020741255345294260211368488056882066932015781285625709259304402282240518376175768928721266887168366524128206020458061210936297935640410702494974113533043852271883529540296287934244494077361021635666880807097282905348776360622390409474292929338807489157866369662690809361572923293659113975790504156499759186377862733475530667651515893764663041504252513804017139286178806952647501136138146982128153826866751644116975647419496386931858521971959580491905648599012067838388014195912971393329445130104381048780930767629854171999051243819357568810690823441404160040345380726203695650381113652048309840603124500172876143468004375831045037515855247088526772346660870834365980612033844838309669277384236359196433461370082963972382590051934437105011735018390116368257658567756624664358432745720566147792327229954329847371107747610234904736023523852927480413115310449175476809277627101938798377678230433899032080934804696037421313120900709280030185555895789781299492593665444853472246021978003416867495673368902207618544154973606090941661885800838295514072237574662630875581245968025073475944676884943417736378390459387124970846817681703761849088673865684408862101560936618260559095470469258496702594582444660217183832186370654785880410603801118872434465208420114925108144096150120212749166296997439403266042518389158534876730352140455744311422865104254572013692040819079247296914898296147584995848917430423117607066156701999217334798394650039602507768186333272566705497707212517571194196108209530519693037931673867956184749745335764351619946999043783988131945459838921878417509532919736045712127473085286485233704335692615848848527033662588341231191826929750602877637906421769139082768539311257750947737688281551417660920602819242603921376313612359025503922123732830545542050218905673818929447417155349675404392211375505667538343877000465535729108120516979539425183992232358713778214864591645399093448845741716798907462587616752422808456718943414880560386939479615158209418630084322345486154147295196858583503612819757883624952890853179922920193799666287678340234229694762983500001567175519154673369847937266350497843375760186615513478329835161935828949911239670420752428808010929930663300092134803347979206464065948058284199358464196600232689810303124417186093831762275771381940669685380759192663389616648171143171318513600315185010963513233960507664709586815599153721753868511651887053047888791309866597572171998288298982001834218935948103035099973087731516160160999310795626682932310599816230911299847331940654239804196456881127555552313580153889263186895256495287407521147054641415523109683548306620446071551100582525540856723109575118455564716935944183582739580130955071916861039785159577780608276613069769748860240081500676074884141730159371399430836226109032664257260883219217101482420437053467785851660153080769612527468361176951987351152135735277215034954613789998723654835508653901390778908367715911989291535812005096098754934013379894233218836577572373067957380773900604735825327885289168662944343495424090670514518352716248596760946413589983526923788724670502818108290269648814270722702481434765065873029275812546092593583291413295656173759806957209968140283698152172717879863459039762271483310728949793345938910418444521263865834315794616506831518257714545768061340449556981738951648278148066771312923142997040604617576150854062722068133056160037256422883511649501195490457698356280989207346047824750769913104988170509653542137729491336976444357752902110381966336486144039099154801913990317491068727586051501274531609916107981467293544598693369725322937502802028883616742873374026452225798860595329543239707022326236646256591808848783614640644761514229304376509728569952321199632564500056425545661576738938040397002614986321267670682736208372291902205451233229658870703960843394226705800048148901482664624163087906608856869763990030968909472617286063770064614411015832607439444708652908964032294708354053378634440923578252099811224416058801861469461686302306107704783421517593551510008211301945731395245320364088284131119215427012514267059825694225646042790100621189943385034166654941280673677634353362829883237815467067804927489312921003873261469185408293235283755738688677344212678725128726882726799076854236868731652931898326271809844562144936380224782393098040812902433822398427077819629806195325653483197678656547432409486387181621057256445040609578125752595783064119694186136815650816553554086015205820057465081430613549159836658282196600587313300151597513794401411176901561072852196003099719199139254677930360973506623671872848266798862010799874009651574057227841669545758406618582575224063929567068557416910201313995849799827382403563512257779372700233377252399076689336688743169680091612831941282807628635378518424190834313947428833839864245365639038112104835939248029014461273152885629848781820783253703614661329596433272863702896599854409971711057450851509434648758787307672296795689255091191076399143957256766384203752438565593439406842975944154314494733524862879629898461569150658075510837474033684750923226742920319715755483927315154625959544084194397721448325783912893564567417172958321022088866395265016534204396359941910515349714963025421772633816940101026710077976232417615682406414652220776625111366402020624204300869256194100741177302353225677460762046002416327474101916013884905124412168189172944733633075178337697829275233223225748728959076768500347547593172150481537101219424526092810118729026435737596747994290568423822208138136877706796919581085476980412192776227677580093980422763777017107285235462605812355920127956776288820982427692430688158214273507923677152837431468938996765553633384786574766396420320688943065673566907942552866768959086948604457088598554213280007956732625364428841639008839299363237849600865695030436201609173701260000464864732361889403871610719942550631458323012432172659714489668351537442667680587164365865694510885986798495792807530849487548046546327486055518701863056639936871470272790221208425108407156278554317826453369167176800932077650517546050920080931576079013093421007743361840738010754461744586997593838429665194494392729796586822763330036482782432947575470556511953741422907557429150599778463337085314739224488394549936487446696877408968254766576605282313630590842793052163702308627228277819991513752560592879610871946247089168229906307741232352404862964412961937611232226706602010583642990137845169470165693559246777733919682715672336508059982294857912295981210454207745426557144246763533965180885256913811653044672640216317986542828599154234959045978662437182455482173914028228336904580128480873756567869168200464364347593053135706990411599080834983006201050023470286336314892120725622973232333326051959714634263531877463549901657708949551510278709600350875956551937467884513996028088445911427524102512321144023487232698359705685324191819523521725530713759801489712434000104432196968069903323943771065152238405949868947552108955764999306111031369573433395885859239522175604147386114987629504108010096467754607434447669531108599299192590932864244093237092739145505823799901929992921955098170520561315771608998415025283062686840557797039493598619495650429018989224541290161424122444352705269828490091982653137207036948734036623469274731666571608445907584592418442260335692916379126892099962789355611017674640214102868615317217677539868498346704832541942322529692579551088650975841093287543077710386752186580020783502541461109292973696409905721721358188500921083290378930761548580520398628782096033160894005274541414840742016443829398875161027723634426259410943014724915381863489514977190977748667898900514942620687858281161632122340809876897462664776494751350013175259252813116399649948469495138735096286213905273419861189377701903899153143651400523074034102038657929187830570163036261547750021183012814145719466710285110804983517918972380353329640423899260121583926581962722141724229115970424892018522422358045020732382110234499249653206911318741456296445188765788570802350594151290544646436465014662044708161639437844110617905610474770971965411396173966221956196958981838106101521452179436262108609142800877298141006319527681316302144088311399000696885349014939731908401776405468951786530290410811617717072127090136324843270499014033546631520027332118656531161799791444274981205478818220100569345964752895737639505338327736971005577101811622367551829850478006538680601789552604589208273247070848442527334214589011061977231389791557191819813413188198118799301498018859878057448362091206886595985570368337827258289947791705886836340361130898102635154131606787925385556893915994892956461097597013600463876341688973718602951089694464468303932052137179014280838402089567599614062830099209568062200051800057930931831260104070627221773816025260042417065612357241484812315943740416114238747054280682375064007834080165233100646894330175387826785129829879622158558403434864864638944232087413889634312525645600018872428584484184409167813147525008403844519374729123914369562590597064357491944933803117406529661147216615765652511655718517088263429523105690114308407704601980312221498747733278231108062534576504395362135861788915014085705903830369848480936324349640866341590172905346650407016937361239104190617720881555486496856140693377925050442722468182641858280025504906786045833476496068853407543432626030760767501849923857375531480858011372786030296151495429437498747662940302734193296191968381516788732691871513241053991477053217499457294345814294507184612311787526180288911622729976810837458966855436800145382786378698481800597020930317291984518353402809169442370262720281220116571931966178353466857646889181637111763122039116992578272580071522667621824498458057777880096407105510253240212446866655439683023707668850029650627147351008672068714188211284103619530503137172279793418298231890145805418204000546100479126145593995721838858740233919875721087627412917233635850056312139233134522563867857348718411496332432820743277486237300063364332876041622662629744386088247757824729373252173516387634059443488092364274641372144594615018648663566040773371550742424273137701339220081177660513748073377674358443407313387324829179121751497959313677531341603955189757556710107494680476799463912636680086039955125470888079275089059420013600323645185151632468335156131332856855182694960177074880050879733212902863509785329948588795841462902444491836813028602829748280245393916813566542211638864500410513202089891219102667544774648536234650426558118999987032962430124168471803111274047316081568783645814122222883824848342327162044634400496759176275177181911663600670308631247262797816694276495141422741360800466560936042270681140985877918233467262700411470697877060725745713402933693232108564627004516048363149248552729268749663901267246624149621204693899883094799150774177907246742819492245635234905177828830522833296136837503987131257834324633314776941572897166090800948213672585531793847247890748228234718164792650888486622819031081343352385336268178496743575441667570047650737160141931934380630299782938221028914535103385157096866496745500990294115674576411312009968188662128656379140464292337360049058320281691985287112499594439153016470152091612437108830988274601376572976601596461415087147746778162872690427721525489477540421078523623792740288760218926166080729666925432802302749396953634642918930611305824824738094160372549962137809719131001435198547667573120688127188131587468023592043573119177595654765914187621273645648988868658791979081415434254342219501800579850894590515447266440525643164395403585013972076365154707380509669017650095796312617028664234767920409160521137111100021928780270871708090249157782022066050047178388366081099157599711642090995490029432915066788739791152760977402035904652425653685914623132874284542786250720599479100566569389753096680806891918545996986239419762724753675538586816026708200408830965430204543427535306415218730230279826451773536594065249066841869418526236404999544154356228341128486460297677568128466954141670370937657041182843922366056462383770517746471941093269194166010667122854264906145881750600327320411203669370958857316432090075674747412525544947977513828741916124748587853606545611405587338356198205209201048938020533793346942821586272020871415235240006781714425597791866951002456606618940876863136693748259085224310971007156206444966752898926614716935227230595427683402682857755135446674908536384009502542473327568231500078643397249454502043223873713137964332582829569588511750071547675591819808005931634741416218157520233703210577455784086154246771656439394769453161276549687764918513344457836703027289230748353219343560101518129384261465557030513803202632129741606477454239839668224874176836887831222447351346417781510164425101483973765119007823531033010518742697723423690265103287683070081098546488892421359175033720712571857462100126922884948306747455679667753792402658284427379833558314952807465830252963701342398909296433596757752949718105806052024091849453645853897509098150085071018350616197937804050770656843181481904930571872618475269978484233828136916278258235260632088326742781782498408399192038227004806694048102525068740912643235064010696174533824780989749480949432486593690390677850357268046487534956652464819336102530673235238950306373202081317825672734637580122418434538966063119369189863623874007976450384293656465840352333557337520793394727764648705406118404913889199092302291087430011007048968567666555926355628506022973799446094309618796728992316890143233436251694175554685699915897386821350534294966799915868428143185138409059317749758728034653900320310217861398788575497790458687767073790669010256316342669080268247463343182442396294676539559709686094319081865838767564233201767132732444249781478890096825195513804516756860159913414876830397547045401170249776601883894399798648705314267264622074311693158731514564622935334423808786366317824887531404855487829350610111380795229701637616713600053820235442410178626579748314776096287095829187331296068528204005434385103193498127636627111156081804423994280982490379510547273095129862571916349106457975957357529199785702195377329396189977787391951851740018564509487342386557321100398942801217937017990015920881402199974744437300113722153596820031643658294043014213164387533458610601797264587181114681190895702510495356412097599101080069401038185531680196022717013237832929483149947048441980007457342230655130829697398804301632084136621861473505650782609939578468854829683121992972507310169636874355245215494891703387775397395909002673276271719889393105030547883509822409081973438455742016339263080885767833568642799838945674697092440904232693701832083506121679111714555909419477507001299418366041645229503489347446291003118626313960123793423680569982240245144764848811062733143885599079352152664859203342674302231521140398957599135924953377349235972610790659486966325211126757377939306115423060046313108116471645340398740594862013494035696458584610093913585377015655613913952067626745199965793451037030931859994598998198017731014210343927853008579984521693322761546416948548467354272673412919747431272928338249956972590723247460642136255937482597075078912603533590010336708915916454387167676201051016196689351119436663993936973306535229517699525238451089322539896012738528067114409900601813947615893246331114411007454314467674678121763227855443425791216692434164939399369325028689212186345097216351843145449740806625444486962111732906597690559946251683966147789527963679037352650854303230031486824696887084418247027777363213020123902999656887498504285829504839988770638774695382750776627489387953505418709137556234404463964366817320459060971984329672680380494040083698544421628164957718837165907085600670327675010477476946064626114568758398891962584346850415242707789822977164960317533824689943823573203073070243679699360261650796455248598270814668806914413702618453353916333035408652984134011559385061381357756726121411547751067088514099554339342051473784567512151446043059433495501233592009754885959573764968545877448565241382496851158206982092393953612736930624812729459041982821037107244841960929105367832675936368351791968836308219658205718488003626184874351292728687083434063961631495869639774662484158717688283180646284655393889618795897771348118318800895540897567050869002981748193361033855546934874970268064194231226542533926282011443369986357327139684312604787275937030921577856891899519781355569401166013674077234485573244652315716993593406275463556688803604802575426652269093267844682911927532061442893989413895126932554569773522884385312260919951236654565566681134104844873540735377807873234307104276278647405741887043784964253499713337016859333310739663208931701966933146685351659355813788308805168796803453392253607522706269917281474517905070710208666189840011595068271586352019441313907983037964801423143526761037757297933277671085897018791666141980554163679723040956438462514525118333629125427648908937242525368778975219734913851283681341049097859410880251655066620995489962292451492089922154797808416670631659755453860016963094005669188867059100335271444966742638226910848303744957718095503224974538960933699377505935566275117821451417437593044915894205612467155264914311578263831520894140178861156689435956199170445752337580422814393461242974936143057355918822401393250162777818597160864016128095671551987215282026153269238245615579140170468974892549459421399064878740279943958861206456005801424965575970698474600690082559190072484772821801580141635178226074372811385220945223560346364568520408330073938647915449492596560254594859401805371703179879056973207463965389487015512145149894713902863099243293867893662981114959542878032252191716090840181727210021102859488389215316061335127630889751252496614332524114268137311118296402002037553803538807440258329392995289501923054911629699826589894706398630417152080326976444969360321660082509687480677682918133843566431895511803776380824996183665001951390023875149867478142554090963255255367745628732182518714389918243123425476989582801149800031192858614967859662068876123970002710536905924593808651799736439062421395094657766432090564680632242648674744244879770933758304378771877282397960275840997084995401437615970839643550005696275994034352014063676508085946379249987398473035861596661780443294459306842659322634012546160786391380382615126305438916421042283246067008884928596241645449709883056619321470451464635312084281442726772647124335609964023354380320364489736854503894945467008901713012036565868430956858197213257261205477421289350266293289626205218394787012403305689265486450047644709041873168328388708045651433210827285165325757275524845746139465399671577790279483989628717431283918989637263422976958946275442095849579642353192873077430825895009421101038176019735524817735264969429161080507445397917574427262134340627859870997529798864335346004135452080354434690722103623171807682615047626153505525355113370398917082655044141609898705782996080143490923512107170959745253260021033455293062780618069970673172908241094673165984628080206626232974502210170295159320817010155823643954991928339070131114925385711006572349906590676397536395590285225499060732281548932431472437345170433435074981023590061852487551740055195178458220802329395307038459962711864949861288962907932620583354226906972939499323825597039138623190882100643545318456984623147661487947389555821400765363911908544556643244210606961257684250020646649153587274761675214847966893580972231416213423512974600009656329711052968153774208791630796202638750678905809210218013093084418325400380658941440182265034337867239588342655228162624147692820818233481196112598725663584156747613239904963104287420944448097288452520373180305416560216923378386928689678472698952219571216630439573654966207295913273704044506022570602313622264815844906817113281045599959020999213223750238708654255417970587236112353292195520431680761871896495824476405002188258185006708702222825177316173746129134577764090190286011475512751690970410852027034271771749972084899413000629875086412043465773074327286207070798511807496351574523968521876528758279670338666640483824621506474360327914667060402141099873224689639655703437361112709771484325150354388198760261219843036467449867570235987348333703605268890233719718472931946860442715896498030101363627178493855963474608595027255176731090160692350095567915326385901328117633218890655593263746170182026040037609582194521400214980311985335617460821774316206624223692035168262089544163264201849212673265781846323424087282225049911692993680798477233019390871827716448194352324541145493904648542500202062039872849634355110366240019521809667530705718171930576144807943622672527594682508532231084793822994813073566538783351704031776518999000470734360433813093203954696331587565993648942106915280987759486758321794144384489218461694731474404982624101299393853602141623451874224515783100220371507618858176637559770663475651806015077945890818841460561274515992456311051932838010885115749820576066005116015865004634235311980182393499655444105615379712091524171656673807915976530082849838206419835729134815716878630771281819694503765848740998040047838241156145664902413227900309875561715155257586930245228669953924659162811662532648077954419434774286754815844299118726593812927607653537381344842268696377309462421593108515464130653226881837968525968768099858588047388694400320863795795347951229922000604941175853531994750661598214926949610213544403536846106802782777345391088363068155546369558780845239616117719951185421727317848318502210453402403658140132174361039753649320292041895700243614557641218533634856437816474055618249040550869592971800817341842386101848129685075167247175034271627931444871193023191746212706629399049508700704848575564529082725328025161803349830154549992703751763921441316906386995968763669242886845221665600419192615243663012615738478894158207360792595474681967223899894475174965136189410444223134215580676186297102556769011874194785035923940419788938237618094361364949232143768622127737942341896760720512865421411944713441367923108674025581032392816352406119903091307307036135737457688795424043555778168455541287689034664468354075844721616580989321244087030162646481918064373630962533467148589412053095370378930352448338693306817397881655592932093218497322433240208292161231229085727610237502063969203816865681209548908180782960434293421472432032596830649059240176017034544458076041248284727594530494231930739054239137984710439020569951816149639589949459063295562077056294393061257128541838977186904957796073199661672755808397875390883171532655740618933459311089801904919092385177378823389751989960172474521437996652451562232494989115498372543613800605258015388530139230091024168049352535404570834465562824841840623341136041946551816338061144025553313326364790092767997710661039884951198475857607352024682529996495036933174298481920306684599376560040976973164141224592641281253499435967201146960975717029542441305547885122450151466692646995224189380932079985850194172162180446089915032685624317550567088993871348776446163569572271623852355305039985843199606328056611235249574482924772653473951201762519183306337740624008419120897620113029511250749648280086347306707476796989420524951870320380606415977712115687606309944838586619774169469222945984497823887617006036312588531003386774630749789638876844376675201768962299613153681244621714592476070566709621785722807722280854223377671861020709197081258829556175224954985185533659947095416687034850962016415089873813728834539728304859276838958584613042384686985900993702310698485615374337614914834281783764670344318277000728701452032052956863912125275173549767263424494291174992427434745305266477280024375370013273844632997131125739842752171012234553826880076172043583268632058755251141834942343351537759972088226194041898025716340851716049498879080517419849403993079322486289000538049809943259994192937910014100878905863110057539899193940038164839361257196236830574268772448399267413209754487080728554548193178523370899119006072590400899366030242662199382577833242306317441954910885040383097029757858141529348402532435257037868682619644923419119710428284240208147663187908031851140558083720190966849005682805056288673774306031543315001915737218690300100605818264604606388938875803138833532266153870832232930569578728888180948304391465347613815006270725258625194602830906160369708993937656262464831137051724213218537014995147412119738339599012472014885310642642630615047618251423612896964126649199302585803106869501036271571664353899154128917716440079412156303314414342736262786282758119726299773859929280783132038042391319828888031730506673567950956634681675922063137624809090196885500322597276087362758301225197720789391850078962152791855535847643309683289570063140023741134809938575105016808230930267947003966435979254955023145325679306507945689224871640312294122907981472947253182313975889941164600578139477990361946520671089860967653307448664505959980268138464923154787527340356537133455547793165481091509146004814898909645480444154206185605632561631857473638954737594973900482532872298687700847742978704458869387612039041090206296716086134355236966996912311539162752668490899003523566543600670760458297650913827111425348588723535656835878227769219674843339223284066727579808583429663515087196536176360817214222614913784925654096335373753895997329602153536012267465783412609086365561825604338783690750132017120554208865814571651519681501960790916953985224002014605805597661754139446898704658118313689688838337185623463249286704327091827704298691830178789037649122590236021227305156642565343884976736899932868857642063131263821035656124074501933208388328339785786257557306890078457886381980753587039890893966977812657741883047446114519705746411918510287851000370524076546842624759008169541229564220737193513734625157410587021035424552398474618090986783919181438972667711910360831652759771212365086117457615254078019788129066038580940241792437754001750775991978903425850418155273995055313775606006021186149597848466901600256079633257863052360725940202661425366263895220469158597911306881335214597438211263948117670097861047991062616253192922963649916574912145297884286780196302260721275655806411085494000160726510576455205821691861033084893540933479072406816755918546418106435690963357921960365197604099389441042288852664681098672241510473338938793320477302003300838693107265338525432195367571122222709648334217196500299768019314052919849578016950196667170374832551871366503655147530781424319279683392970395936436472387100504418524412044463523573451075601542559311659805252614223468966175956872713328629413403226485027587639221080723745325992441014812248924442845681914201783026676586650765656138771198040031492390069867189524612959671322126863187424895548953105940930640332525024094274711952187738461015295701901638020754374727175128064720756709422743078012584304915298055178716836565868476337521696718598826478019394420497558180651291553225921974421882723290947752996349586171387694750378123746652818026399670053920575024813337439348730205845448480764165138298221330001741713362531186704795616317244123875973632774585665451151570384470456983350923138073659499375051745036630930514413400456653982066990900218736489476559185272336100786146951086354344449039484214331743227495085877918878308864685998071955340709503563388366882730252868534218624786574502015725520414412485518693961332787805704725572449692194578204027968881877280921297746239915812454832971226904289571884984394023866896517646901895087668217652086247780827445183112930407266071031958403410204958302244772419456180912436343380445835304161093144709284885347021797391107895608843218232071050311489499566911053020637722197112173999652964729345277976103552281893216326332368442690149696079856114943930143300728876736674604144629941833170265871304012274108769940434406857276065448418710598667246254528919442564402080510252912738206639098664901185845320273462345140016979837027395172607772596305208268159653611451718912628143334534655136724585663998712450550182028964500407113448181769368122031919785698259764673602773913615368213276529494933525643096722203265557615544072891119841136611235638230089794547858814745187040421028020963140367835358259753700757380469360086648603882636618076837568309386972356390333949331486201346801184723252191002377128970680522634265675528526362448045890302453706240073475221062111172375408878365168010356581332959268947051956990922777627588520109362471486620292199713214352023926471227873782068876962079098979303576761235208373558822873006201005863051881563290381122317399234641914555192939749273649893457526496970037125092186261741743109514701250991964712139552203794098404566919185445344400045955437703774965463376170239899825691072964537066254124574792409021967203054920723259967118406646618642910001608616758714858266509347912223222223526763284773017174621760179419563180057227942470975513491341063924860380568986236745048131013510494838610264511293065455025759424560534959400746501545420044688953663346310356559964509283766076027492845542935874649569280192884286076603703123464272475757591301505915232829536307540674574432747069743908418312795387547603307000304711493557005050040884941559786073235662276159024901635298787384197303383405956668795617540510024549658621510730951125094898434727424702047106925549207116335916723130863613039457071237873328863118071681436219904759336058378732437296186393417554037204928288867143692467350889279645227050898552736247815239687419138747055585094193068699730530678238184961987479955182685153565135273601649624642441310375864240825224349318824868217928192508388330836122661798240585605384112745327252708511610469785633631180540062357936715052230710805290342059128192015502297269537342004496637486356023419316178774087044938848105732362070756406186236489057588295712057173668676238333205819042344532549332590489695864577048764252531074497935104618898418326610652643710739454046121592477334604896021071776972647219913644350156131090271626132469719683800352777599274376951124103248554817550508271749043679699661177397309075623252657855105432502096398887688399933506634017985554167220388939489783739488388877878126106998833262334472263238890278682665382644094725639078419809723721990309023004300052962349243926143611307074045692583005377207775150512008026906913982759076274043537388501996496797071553880284075212002978013568698128176933493885389178738060689184468151123500246149447643070517408129290404771404971058258086345630824715566233765517243582644563372220048393918743222312019252162086829400261874967816627931434194388821914196790255369009359024764830743395525078266967541142748538137652497641450312538756457921156056063187600193364349287356449853809724073524906208744072385678656863629673256676607765065767017313142636707625591499505692873449742735322255789306576430275930839171936012649548851771686088639960684060152871657055239644278812936894829544883663524390876167201057328103517460026263382547414305045526199825472045142846049329625532415493928385268448289744549725472081038735816707244442666810495592403346329217096276394398362440449857139522183326475861058634749182711179171642055410737520297858671838581108865500662917784609433254723157243176319499820432703728181708131141184204917231885880271501830219776278394369281955115250233007769225795456027489372252961238145472419001873769911309904446624065717248332131236890336623920037363761657501749955763353578190064505923154120224383415997698773410979886814983792088124189263011066705664340028680973599447222507373776445116710450937421387576140615267775660175694338823604823388717692497024980596403568141631828445630080613493803611627250057926365625631151941820678772927110553387580662987894955760800057777566900622597948183971817127716903184154550577795192267121706025875332236580885955031172374738822925082473124608364427338441571869520922705807270555773617746937973612805842578984725803270085076944820462872863714215625540357917888839540667492707757012323821052500116158827878687459762159104096270226189407802687379238881080925111311244101748136378825017244722719709556536633367033929201150203329214749896760642549092420339176051049776249301739249239618613718592489163507411519748276268760965278909049029285290441885272707949051147750673380562691933299482538906084422490308535140403972054727447326145494007873102774318304836176197599178084022183677619921770255675166982100186637573585768383827836376408517160804585984818246088978699553622628737685634905780172687968693430951953243297846764356580142544575427106646861886595457990178701531194232422494771550064523139049455768876919243989130458345335123443704656264000940057921665064086943148689488054290576877746187568663698270059837891628027840877119252636963261269051545975256885189205096687512562359981690016977698976186848459549480048418077638171395512089347407594632075297081258325557631150036680290717737088729623258540665433395675047275975828301913560237592035556039873827112924043764706160798467877908324563681441113938600215757309912680894695030378264875373545878788161744261675057742358109872250299226623933711143936766201246553753823448409436600837224202689939884573246537213469635367065344689818669447175354965626513240545572651812421455159986397816158409629138997053476706668330378061021869593443242923537991361807986488692615859477005368699373026365935255840507569584652655991378405498160415643509418295749419395887139658397088637085170792361930198689554145883470757567660310379924510442538371858497554924464898651944409518782085200064661225006957366177712972585751625678721306991635034124719828257421702769165851441377725072165383228131983455739557357136250128558402616676992707026967321813470636079358752546726135101813999145256857261159443731501038153088653725393184988884278746835013095437029336482842212334612817805701975765319593417999720263231865541207306161161523152757107398340938585798787137094502410733536917811060333678259373149602510673437430147161029560680511945223451749765764267945754191706117067832625192325908750557524468292668255676639259846975161511128177824293336501589558112598939970152021509379080126874665702216123172469952215402486016844803497638804971911327738228722951267039698707588129927375951455157109070198507665652676189341648097961636797963714990390857928635365925392003107185145296579769233628698890066305899873898264075065123269418108616447449761970209954930521601668380979626055300212876087001846884203574773792601009395150104422290568253598294507418625511449554126276202401497661661890843536181168060256952085773960588631820595422450323810169032231147667376185355224722027757860333433925641149589636642399835383998299194759702212959205304188354724840561406722607518940267567965018988973290312055973798374359610581839250451887751989493263153902341788137828253393858360532141388801303444914894107801525862411647808797450646223379078862843511813603085736340694659584974261634199302301167572159840571643810623148396384395056576760277689736797129780568932576850390233263668530386566896056784243512580799889569326166246233594488293117875923590366880408515459995106634050900583911464692795582346887030889626161548846976746412745609754310959677447347314195986582007554259029861539399766048793368002677454607648031241107511594547380089548838802357256763525745657855885775158386461507229722376722147666517718945877365387431304618685318094722085455097862796328789161347727459783511298312961646402017421590572334949519831781959966789885839722262023290315202867824111268203984758104493549421353468033915714756193881672345064406633005796124075978947285629399791518539461714311574957379187165444539520718587414615179007737205877045285113674465371009935175579553141111698182561879238290533200934074296588565355403194220694919914429287242656901372943500907546276737566392056476684077872816043797356015592379559130229785832857105733151736510044212633965103625443460499214461379692241382721502071451856367897426040068405002159920452150998136777064877108379455949826514526591943726942609862051566028314013925275693040832007732908010183451877662582383032707887250742090512256688617089247874419827415563087817891207777376492854287645965876719439883469042590427359353703405413740847849709204242263655545840606151785183267288108800528477193218545625359350720293722722372546575571582698200370839594796922333947484157551772663599531000935087958403003802364985884986168837232001899493041447014225612148981209794114850415865948991874088338812552271061615887925628727092686628522885491740385328832448424111660714998472068334648757299164333121774526530725858455112546850024281140353500604551978060430649672315323396173049311496512091691503459889141800762456907364962660276571379201535810220107452741031692033176743346714577862486705581206610699162774925704604552260592270867173016160606779501287502471065646369954729242228266101569707658329008770483801130733593082831935988221036927461193112761097958729857597476175369094643473051386974187623492458524184368417080355314192649641714452818389558060284649586688488856435861324815285874453338576874003562259811290791722317967820197371192353637510691148066498806009748233786131939910114681883616201359468871645825907283419622597805089487216341331093849934712650709912180429392336676557337135352624451960296606788986318613704383146801274154655795637728267069470095868296031599133760491133323707725581343611716197984389073883429123541510205163872726613427622857779371722866636031876770607590663213840951108216888919418252023142012439887955251387797568199570065760708948721074845679745663772986485642026052027102822702964043544832574928710957807674898151248833277127060129617870711092197058546082587318773864953328772434416245835815204098090298241029002949615557714622339550617336006867163273478518784905282296944345172188566989191100420111671520672045481751092449027730267965767517684051643214281682978283766933611385351094672573130275520940438236423095690221795413539613745489364292075967188102161091962970843377099559089817448270343915150375501573333423964457992872527251581809580345482157912897684306638389621145940808520721812011145175479046402937174487109371992754279206823893576356116956259817014905397957984109227264502624432016340654534381758184849809437361680990863782840702675082675607627550220973320464903752535791673859696118886947693978370364220320525688726081469514346360062198362494394752842873144069560623581880981531270412859409425715527768391823290409109856300474120104169661756660663770579466470175715340295581754562137994663320567658606013298693442468799352791799160680838290002295730125576750852686987934604675537859117426185440898561360057853261893449379043246872700479623869416293028866917860405447466277491028140317878341326083128774063342593274141842398543078720509182632932650569957967670075464276216874716963247923785944653958646540379639150228982078115603061692488649760409733912574076835308677733251202060887157772559286570830802286143156335217337557418832151787872168977943973154296960373596581982902561835280205072999371596613393227917433301371993144233219359330053328694508565527165124449915333389433163889601307955927502975018856449684152209664537312880600534013369455560439909627657702499186890052362511695681243924108952132196097283891096031996402862245273228719074822560302900942552091912103188422274588083196713130689990778000607252938753630582161342774685945626976635215856453262208297406634905630342396567230604415075784909816538356848234004592448979641266938514312000568636677166704013280366643607647947809641626025311709855257360483513961850514873247410837764670911472111456656191659021070300378116186521670549090053635470800764257147691347329021991042999445746268279544788436591033227203094224418219739892725887676580997422687620044616491328196286152670443620442180710553539020948141502923430961501336362543081409052193455754086001061703644767604397052916993112592617039431365369794407209912911572528450949196330288953533103254717455321113899235919673790759389954778371033850904311605577331233544880119109101950074187744929631430318153875228776462812760753588955680908668579406460760707303343771089607358728469812570868063994357014605272693008673662660183652221285662810687707504494710411953282709233249049005520107341696806864436215403751004201703368194123799514189446691677358628082285245667859709124328378657904302989230841721336142448420569380047616045515612318880949272781857920323266435864443916307290652340202575333020712771726393356130374961346500956684549491590967026464183853496837475059194029191240063599807094396100145952458772278272764233719456009389818206562675519262284285861680843588560956935149004416627420849265803544882020710466572149317646584943963817037296129726122555099003923800372167569085193862537386397398410424432552126233895044704460978663168402567843285924375621819751431180699143524730101036309041023450099406576912321161505688911778669585716077769775573986728675053163412861174290391619194636462962812854248022377554625028419330861544679013689773162844573471689531233285672194182466717434010429596146503948259399388702373226068196061809089316169988864790277205340357106993428079784929773330398150246945039522418756899644065668044777024421012011276372511533658716122412137810363423167852431004720535338003624791253196380369464804958476033288215790816317100989185288245531280851045621204818223193538632136895523638071906202593933858828189684916137067058520638487365743936765038202715543102484902247392946913704730500661464552055192601670611644762849782943452943327200491800083622085339752264381837964240733904179483560947154145474440346886568148170837187138067186805228144278968985304104764746514975972190768284588530400255256997195351853484051392081479443950182767405676911808340618700369811082562471615947126255915217106049398072319923939776589920899456610120091942394182740096850610018453667805721776474620653213214981133412799027527881038680164991084409627265094867291516933711863834896112288554717894294303495286921842073373266006594967789724216671996209614277000633076481351983097261248962509701819649179500676555888130313295098299875717142428560572304759945027723042079924986640507768386224969688145923888914725269618847764222553335341143104647443997208760262582160772105052786360941059080317106900593896795152634089921506127838752699482866097388404194025602782321069655264870769345977910781640837043708809612687466604810673588203336467929214126070721927998510835258701959795412679867407300999852199585134209776754100172695794264679484118440055380934369746999317392810216750426419733874188797151371347143680339002129170120186474572640141520055188046573967015073411637689314320703275553296545509410456437996737396155494022120236293221381460947682846924857358337790407511895579853672829799585057993648864130007099526892907066837188039088363578828060636409548354444834936294706109062287473455932817232956763762448502908712620357639644960303964738143101331284979011616969595176215394133204438856692723366108018950616774477757706515511399205905566104999926228910837297940272443509825534244890429914349758102877701098659891555810003887637485301082391100213623993373877860882843440561100708007928588225696944119741701496388720368229685058478360856792562866262839504615896080686149835695825596395667746820329857539104025709074867236476638907824238903819215219367252810718486013549123679162429545559544773140396098416987717689753300809550292008415769705261484300274923208557005762125820036872668561198030221755830858905143513698911247746362550426347731849704259038275040142109116547947703454119828305205776226508017159922685896677027474506299836778695176334414361512490285371456788106052237472439242741549930706412292326543069027866373916905284742496506057027811251522042476890105571600886191880779967096815591751122708236224703237332598233761441230287037075980561691089439223814223980958934855746530039345055501594385531467963800485896063345781731401142967885287113906561800344797756492401847668014572483387585986676365356371177933449790379574656527632065089570865078155552206800104340856699122174614036097683579577425199365915780862769893146109232964790237030450735092220631213850137478174926881056799241756220436964918795611051196030477295827640616131834692748300471141433245421126491488559088674964632797301631505502054279508363539680975577941598749766949616960413963484269472588950821824992598003909220956485497787190877920297056621892590947654078910614790201993806417275779706294643237512365297230222131308506461550722067466025200660269769495581561799649154697686351449601800078194332737486177884925698847534483283485896557665702440192845594820997919356872030130908679949648541653102405336111558529928620612420013099941374615518245376811270973631741582138874206529209271878675986791822990263771825166577522060853232088557128314889177809646966193850224653672783346673688038866217880114787579436174648735308026492058492001567531010108671533365554662220636437287823204727364196918719628164625774312421473906638254977146196638326713352013166559451413414129144751111816280196776621170827237724131434989900495958566342056157866149393369671155911673438302014564534329526756939815002766458634913551734240213905006853166866678266216745648011358520517921594322100350959146954382254170630585379671993958121695208642960245226381914340752189771992078933850986899321980883034690390109943034144426005454698008685415402147605966331639122396871057934797613186472880927316256554404211863129950411525789347073946116844283117078468447754355499864587936344137380152607546849822224172821524476637294632564556682396794136785418468693812183088947239763046719309501977314270977332222011707297571750710946396763234639805238729442560037978477867720044807313200430394248547766895973561982845546810277701971592418201680021982093330058224774725797538049366441058753782885854202508949046222866488682195289175136852294195573261553567276558697842401790982401043107263648431116784806600832014944507491571822306801532994974556465893098309641212256989947478387019624600113844165045927689539498495493724967692772277612706175681485072359639374393510713202488588754621020502512817470675064293180988466122058935726096052981754728349123420383722061346361955210814797531647271124027766745208116456606346170741735657783391179557368828062490749931162444480320645243170627355901755333081423239339125548515244343924305247400904671982052300802353022828880066336679693641630604232298559491364675941234206741065689591562227183455887032701203279953919315493269015971532490342623128252248849382104448680444720831352859841012593170742951053158619926953994698181763314140050422376867130933335222891587163732947079729235035285060523824589591910803726685466360560872249018440905416375450475352487118144938380785363581954340876553730811786851580842300438512073251977048344598841061295506303788172452063176780308429200605456315637750314189261593895260044755140791757398260802587492890369693160407382262468378393993505685415516578417781969124465743504432621703367416258073433860380598795801338536106545159686568502967679766978962065499841338380372875147086452521186828745300639321516401080693049694477797059637057806818279036720277579343685560183293078617941679978797140418237782371288729340063478285975000512006871226258775791294415804350030370189140630190347737222430100682492654802483473853032545561855097687918503344212404981318495912953612403854369992667735713765753545840175580325139863719345556567697310832010633536784565818827716760122062090189407627582565783513475337077626156940554520795803826224535928976408668361448703324022695981565520872518698208800831954580539205787934442190256374312309906122374490541024769686472389800756192982355176945472513483997890122526156057532860889049368846934532429024440728092473868785946205837568807433835774363431340899648561333002434818500750320963832729014151130664436991372430199675067196019093290244915231935413146465811589870860710485400787599491567231057911463930582798870113138505943834749070027786249047498152161254210640009751473466150476111770472864162586885963594105130500639762452495773027218111214952564815857941350934398796910779541785094876475070946329815641310013133914955010723825525841489406434623923008713078112786831240046145429122883236068171450863562155222105688526828347913726935853864896959167926443230345839614624231668537107456820498917814480753752200363325128663320566983838846890185070883838161446761546485936090899584784741383656642415547039680784412355542665249827249476745818355124657941388149814501644852652526576111494570932271020493670095511050898549699265795714804026549172858247702249221097608222033176577600817729128967403866028445162980504910855884490326549552054763067239065031864186513127633397983799944679960918652531116991698844535165498943602881148216917422801913146936998169945091356328981784578360678717517914517848933659601886795343123759966320896541040835547369700533374483988482499836520854898064901148327214206057340128553792939550687503572570995518379929639839233857231000401820889077319002488112711249305111486847044621726063449004807252840571415861203898235304965667909016983244310561157155866601418548691505244195994030211958655882945277313943817159350585134734715727040257853866557249685839819529823308694720731504658154453871505738615538412083659465608647944416146911721106888860712109171880661227006294303957998003496322537330961534714358690322049875171225785748019456460084221833202667588273742714751950222686896142658177816141046934005481928432144461348248928251649670266109169414153120237115530776126432084417681509198684652868054187791091513334817347804617784451069279173643931620884351813896235293866327544128461479640719126846100305446907709977500071416605579310446913663609343093851861313635286417196744023949094664195200742831396343776214607130974438262433174821758285125836988662126420099794516021584884034530633206201070524197302757458179799729626013334551678640213346038255138912367311420131614878170541454921643396618384446274891141865550384679393067970191106593123940523603020076599394868590403484215324675478052032390251587330776014801164774345967588851614915389173640599893142018757220101391820095254351097052946519959031061081722265104414585355833852942968630989005442422426969152748499947924220847861351940551616369153524017303578858385547477493954163704758692870004806287017331373177956629799826548906359997461753765125469346322112747401223282338981109553535197562841332849397557549580679972223557715370099044603899763021358535845705712611620757703136717038212512137754689128735553466823692942858768421683082505730822863694389140691341101668732296553169515825791365973243552503162915229496013275935220830357544975925569088296479229734207238884070096991974042059297036287508020964664696137115129072813880967059040512277321816254892345033260715708994781939646018655126753265132591932236202038984195678092971138222253265854749870272267032513234828715127386190237362289846415930117914792931647399308070788437759071844940029156785492621913150706743179607990018742398786668613901499122410759809815155952637024779845485514613001880712029773766765145637255969512474673103074989819913628780345145763634456413563453922025785152528077233725892984844886509499167476364789730967568488736642516978292127029092511306888612472534765946530293973268385096850192233999583200706598669107603704928056583182857512500945836174544443505512576003613773910288257404512584048011992156076828845657336921180674343682573449834627508745786856279701285823890583534433893451525262621535594598330462414599670842178094155349231308994572662155356070669014894811325834660232475541460585787620864016313332805718047505962587426177510168663156929466056088363934481903548508426266103467532981310453348469127742220772963667583071860496963494933520199870986149343178151768343605784951649126265549739990835126820661048290615599927406362921978602751396496147983227916355866136645027734285698874546786094591136510487145901351362820576587905113276981957047334764796980000517253585109584755636677910451824336751350297032283975273384534684856057435303490909498842475782156318621597857185865848811124413204159026802043749612711545465035019510412308243279240680272448125945906834532870592353507113410288626789466075971627128413035842866907624291220461320118928754239785286075751669146535796238848289125751883447761657819401322491931630660319812881594367609394330419097138825499415356045601382566288685312767203229373401899602607996684286191628831009885720832257346195461717163264656240519352298997188460373776171789246203686236841608255886230270806673685277878317832293504766969860855120213569174572487675289194703808178951791272087986727961351631696631194695965405957569684786470624183483211971268228657254368694828926809750077219752018046369431646285912785766911168694418686693787651498640162084606580752506740405299679291147843163830342093222061160248771448117802005591612752863815428934515237215868834282367442609905164573115705108554422098109266959739424597120748213656890159239794574866723481317885251374326242140712372484408800094592900441808561892840474512011493391535525720665721868499884673837514761453653961736347540692932349767571639881603321360972124935543602361244218583321185146469256411201157933424734750435564232903778133206765750880403262751877369091366344193875607277000420032418657993565395270708871252683483060076386136374916950856940466921204593024824465451309928367733992440321844080089381600110238604661083359410416425071384585785340006605786144511247155037884361668743964670763044504762916815545530200144624689043843747911405860921680499898589802614297220025996827064727046411127418609846801043777745961126724208483412672047847904482026166341114232810422142040121324163010123213994514941797157616508893840079014927462293263339863036837571559062872202463106083903423829657761779373570094871198204456644213560620525151384530682268397736642429659580019845463928951674825689816115123908722307080164533672318803348485339910967824802545247074807122864472981714280341889537288021597354781321142499112645578461195686898939149858512039951631728377920239933372623260290048197976994501397286391221879001445511451906987510667337159867196351559516692399919839732993452801417266973245952155223923528863478156692293950458390742204243228284520798142075817534018897792537720431372198289458108697897393091908165501679706685991100027236630346178230051158903557458529820230188413779121419329525277001290671908007121013882521131497180833185244046617582948603474536727060803096980760393887949696538388037427982951644429699346282928741037696639183637196273601559505407991776415206688977447810067479033704835903263668796681026842715165698260894364902755191355338285013048334843145104921740328859397836023783432517955790226224140382082758034704745827526692867744392260549205043057608665003227401153076506991285430349345791667485612376729729914978321100185436323575184588394028034465746250465856141170078082497421641130934598813218322452819588000738716371322623014938296941090888433503229887080398706552119318405938137975036346061467296518026923485778632456286750055019093175979877121131571064757203613922093584904983512385224530033570144881435315396674712893260230749171062315815211059967465385878701965338222846710100748311920243850248448678398364102179505456371014144317174545653513324891945135856282769421711077262984035543200455774563078571787203822440217030507470157034253267432976278250834502266027649941831355186691634424694397714464377911468618529643159412208273781527627566863934092318337794299546920355920581438032586811954040921918165151094762570588832417248517467884979342210192142975376126175937606096488707044641012067676130964147580756772042755300322937333265860408807215474584915570962086656567748420130969841185901733818501789739509214521828179141072541838659201111972900066054086474726219658604397018185889757087836295993974154341444893080122887301968405128269159288334751172129328594387795635302125015547663727871885977522715091868984794426062736466956802151262198411501168224573238709320379141284326923309548256566456892120939232926843609073480631124926088277441579257421393611034461305956613869742561878459536909415995026672369727768515279593706701906970721038020553760850833512829224417708243728361263534974605815410083239222720620098664523034294008285984677470624603423461850378273766585855907080615078319691525226790150386249609608401226938494834304718210551888288815927661112831598789877879288897471144631824300407844871215771567625969473292164507738766240936929378803425182252736057198051217707146928547832158046288038937918313861985632138246704359069358632188543255963264354661799276486369327848215688158206841424556990328633166663747687702915432014537193450147012286871192047451675220266072891167804920106887636338942919932752789683580666422334655817217653223095589747882176019786983334975432483822197700688267120239529382807533582083395935474588734029049423211551385244939352382465758827943476162695059823611384173920453018817355612491047720768717925339435165277970401961908343017051557283218658558420881537055926103945399935387137191151255262357567567280783831382467979666710985928762527645059785786376341570063026118215072664717827107585181856566163784651892228938756657053961293858520635961731514835107535787665694651593338170764103537382535572314585427345575416093453887402612945520351665369902990662874274184834185635548271381651575408157604829059985607481662730310475039650086900537456195088088489495803890170786922426615720541224348328722346445761043857275950530646917525381038422565463251410165501700322112693838943804518764455117812195514759241831633628852205253472124545231660200077314478843092386354359021445178937142901538840069844078395519147298165930509692459267336491939805712800271536238596920418942677948594181435390786420237678122405462103943313478666450643462647184197096077336099123590198951265526416023354661660523498453397952810520288666553806535792325907559552086854831118995584522873144576957649135609090416630454396502340494175134738760693105391540371467193431104400504431865662658641418593072804690310824622073600554197125433859712622569027788329951936302906078085632006967283512482021669452791274397219653469719221663035386530375915398125629940819891829277815004596453450761929471814951197671708552752946241555795736180884591069493287517627394182094963082676908422132956279391114600471071714958920268330793019083770415738202955071912578587918944709567048764986861785252165710258012283742183439608975650000610834085749124559401335053487250368266184688981709210764237645641641624612802331977396109727439962589103583193054353557665125372562792725037539723295426028004734218417572118069223976219422691120282209372194641526183252562225111212380223420160042704863844877846755385858881982657008272169362078620421490947698664487950401541860497377267818015001235918010804410387781131531946056616661030957915140137200432796219107762906894301403164266193508587183653095488624721070296492024818853358338688553234971510594941324009192369188489816758881537228673621711126227884650923341332053749228893042802436937839270421853481256930554159424962756434457524481684723185273655627217383174607339817359982467949210334976077473564954151559682026125586285163150296438511187360095637169661293952272096627900917730585517306040635202725857657782666645289123382728845079810510583202488197329177149983231950037642188311976363084305685466980924984814010332333901720529855587875789961953820288059928315176151409522876407017033499121718742082484848988500408484325572008205816734639730138589125564834570654669046114115594702842586517912845296941309954793828270475604623786722316852706790484921310157860500121693431538913999190519476905858571698975257442038660789916842476261591761135192865871327091089231200169451331219550762075760271824319259669846494595989004093130475798860602220183220381724421923045981603181571768426244608331152958531977211839234043843968307531613270890193680513236469633655784133389322388447714599741448113327898587055616947467652431486559675148594916061259872639184994619073099088505880416987487341455950023108692630482620434821830623240260971842426601767216181582361533632344455077920515233318742580525161454610727878411800120241928493499871096532324001207055598509042569759367136073662048427210843360351497106784797385793932788637878432904207796686289765052310795876938008111201171213942568245872397095331512800558486743026599508515843160409501718804578278323209011605175268775363787950092844421188038367973847063332431251548855793854182936841554662469112863364451177935048125023945276794338234669525339196257866536997487727272928649350807043162292324486391659907117230383877963525594979009636073270313144333117871902922248157340615314863571863098338432251466764196081681433685070974085480399838632726189997396367469458416010458825514624265376792040622520235026800808358687486262643210768008072313751060152022429378160676612201603994026240387988190185962438089091759138803575961652398830248965462842052113879078831399896496389750618006563563828213777416968798801324721237114895180384220641059704443009984408384456745321897980600133734236190297307113345752829208883606109197959984648554391415626977137334715973800714252990151253546689115369214206954684365774566501356946382551527757232042320577167565682910038897556824807620668466432410043632622757063609255973653820410168511998132911116803495246377852556902301737392510064682758668940497548093224091981033525365347971876526617916145620045761850638057499707247596570882002217025400519676688224650186880045975373564576674839037467880006966454079832417200495200283114245837884174829357027629162017647886661011725022284616942570454773062301459628402897433866290956857113737658362262251743305853180276624869141647932671051472357857118112151913599058536158712616706186109137565455795570325519163586313040348452632311827463553041696140781662230719938960398064970635408930752683634330118549009488079418288015628746789016675583030081315128254220517989514451146194876009669391074118440574705689464406304568433551237871595129673102123677609245412472530036259014002084851949305998388701947783813908179594894821699478735338150374333292531600033789542823472213715762654820939089952713170921876412415191878981363436514036910797450055265113057489985646321350908670426081219143461046338158012373391360675475510339694974985055872369389083570123731435761342809489022031537748880618410020784761104680135478028741490091211958889378591149732288123531626131028126714748280214028232911947858937218369546422306375638177141186261439522818646326246390960999582819490293394956638989707702282856627598731196650424752309937917924637492751930954176387991524821589031961433260431484074835245603784390513391259492267923843559141231037432617657300026565578487333084889131786211171025724720454373195132927007421768033471224643525589993111142145823603913811940161011374278106134972310796044996979350830860153243589095916585178144915097103808708573348531690488747855872511726075572464851920454881870618835981273328707988266651674622353665670877839380819467631405116079067726055770315911928520774049138477137367747879272690380535734763936662351488769370798385326400803024677919352210304242179127830627614798814321661782097242382547425516525426227597188255559894994540706761628807050582367146026712697141944020741482042445061680307133991915086514730017667303197511519861523480292868811632116574178425615512313018748167666176726656794463237934633810135712839332141660121314967991665944307824544611765773255377016988369423132445264852765199287661228826796554273358870141582749662781166949741058052897783833658395501392839235336387540011457349347193729863274507089106890175734924536457080710066270888737048240285801877023994598874223637811905309914106452652505497218394036489752737832055085175731933812475802510853226423332485068561943101346644386997042271394295678510038790259468353941872649672719841168420709960385830191010915296479365368414784493671797254885433032691818923327741671546893075226469407198281296473617437278991294975954482883940278105807715327539867656938772299951877069889595378171534748694646443875923987005451345156040198889669622890320953372658371533384153349366510644775475582881360864760487293679569884556951266256656728007597313868227084988230577878215008921346535192935384776570059651673052659862395130517371075063549539180565527542915572958722884182374177688220193217782913057050232453073513252282332610431327375567556385338209223424116556741965908119821481344969700288682216548713856483685900090810709112453278751258098174849073691100835645490800548466532093516671211122697898941177765984046233497109759915676266418094572075017374909180792626661646345879186151492322084311622414709382661392529239102821134093128333941404793412234937735461554896506707752794663980340758401745013416751623518947619189637739978576356301659937818117521602824928480988077051317152594287484931185619409889212890229623396393743541226929804103252401023072073359871391852230513502352621163705806944347510569216752054804371796305248429673577539648270941768229006450942470124145684931384144363339253220826425558037998171663013355658674316891320016863404519648862159036203430422128349574450969963570923265342042672286324601934538849697678570809589164174732960467665992666659823384602465796777472217323785588994362997239788883931244565380512724093412576130267419883548061335118642748809660839307987408465952583146032416772514427619865691187764752734240765912768096854447396824180613701200087059905546720022809926638444073752539834348361828248775854274559782826069425075757631892344492315330173317227130815900900586679557436312415957126386537651739673486660725047276014358844830162831386298757713855017496758136885044482993272543825807882677059717619030552228332477227852824442108656078375632683399401440167550101027235160150689364691930886241984408143352414498603684870553756783799897341178473035286700113775297289446548344952292346935873968971286199080894820841405821714286655096802313379790751378655195373113572326279764579273443599997882463967966751130682341551300011067277998106593586506975979527600922918906757851139980035301810155748428146006683962419430090139545366816275501658134062249827422591550686870086318645238703193122802562817950034619228980447048260645144937167032073681472260259561745052326321781287526185831240565700015154032405559120615908325937241595029840147014389464478105228024600461484900175704338150298826063149248735133177784313076715755601217641058196433133640207943732817876447847325359419975395925194037005745338412940961745638874762117205332400094120273923231966762661412629364004783069614772536349020585373943699713434280440083363506344130152292049190755408388191038679270661606367281538728044058149337185688970147661011000679819857271637379610808325781509345582603576345308121083400388477377164259495107287629475718107838370895443598856518932049125821864044262119567632845201193204704179542923531968764811641660450963699414579206575858696208583854032287768852972042386068105879931109464758188767963658240136797309526169892270644934293283894168103562270276729202071271206734552503336042019413454387825655866707528068978824000286038602537550834953787936035280680982938505527975855363324061457938635190874016699285504672367208521536713206986273179750565898385773430892705864772615505806021220862163400197610799427108860569589281190950095224588850574225174844932238431677322610704869514506222038327946716134595476713040686244860062791859790101326925020316444179788114716056703749045026169690642671810325206768308747471755966741750209957121498173541934414399013268972699432031072962209208563164451680440819577094200986819913212747033781166485164410649215991642038593852532735773486934013645516103485872000732158446027799504822349629151447873579921462219444797970494273487854821240553416812389010524374167309345206473347953443918474329531323926370547934610355541631492638859548102149159596563988636415893042248959503664792792809386361282179153212267687348013820047061289552629819854344517361811622856398055783547521634213959483497897438605375126332896631310339874656182691760390978068413494800375385230454026235746305373269419969700768248517386493277290771388876108655355032492018885150770184637317172294251402696000188081250416704939199724403382868642675496614616070589116372698504952515647726691885945016550755067166608615383221219539508525924493849020428803258136711580716147844775184080204359109268419426983113852881487632127730549833417464698160489146161124936327575947664486142480260588691569010975554900686600234626395846178723704436521761229863101022499160824713909628131001051233856137889821113406525832817614588968618074403651009172198365881804405996833285835279216745488858314685185569847261564268954999201221569295515286358090198197867134271698418937043841036688424647299791269136330720578535844804162796340622910045023264483884802992301571481165197766677951183279130747143167186379302090555375047885267303603580815571572930774821100369215612028890089066290579452865190150456134754648649337053854297145672752631166903257028845280083632937053162193223284523905986906890379039512284178975714367372695144040289014136150970528197623589241913543966389455183390540333304300569061604666557593267524108772920179431934418505503891859606750848771303558041342588607286558917306741302133384814467497522122987372283697493030663673483033216413372447366299159228907831639726387980910204594851403701928300151048117497918558112077577239947146446443323825613962478088903823761510787807464144487361482288827832719941017168353642493615740098912105935484543620189003853983685800903318179234778963853319961693857110135729608898233000027943086798485118749188513792013897550870755579799930480847730775682646088189942638700860585658281444251025076576207099504697343351066285305740064280619354745254502721646928281190532927556237888570586566880321070677789470412738830215521123208209949055474857538420978615626364496008632589218471886579773321603468347933263066433084409964742005163418937189403039967765309030853114601049089397012326307937124417546802320522109267369951997671871069987571739857321814611725166322433442766566293041081595524363215131478192416700329066571899395279056451450314788793089467564349930740702435972977561608120774290740624409072857620660493760144215558799557973207281470488484623022225917899105080013410539720863915023072839265428529936131248307014169615199591706459860273018420307414585673408785851963876347042856865396032685029522881179896737420879970887829281763517040472933769517664390959857563378020636925066482567789791233830007087184464237180505341478589615291245369859955975479393536240429053778477795445110451178094508876330279325647989913018186581044511799250433193624545341132316136300364838981747375230406543359768169417972914844415958042805457468440561843854681908669986519107287288303693346868757245510329622371828320820164839232262577231421781091159272934410756915418168098312452223274853707485495085683390897496052244274364702097849260647458315392990814227692040397198812202597706481073679040366787825540357550237427723196215469424461384732634960645908768996887641763506760923215991978211550951604599472265976760366693663210970282999398111620849860263950021143506985262315138282152930070071442842127890356473596642618968459086375681613706584800385969677046235188961856592199679624118813588377743034005576220778899616918604237974005026839321600178110357331588657063468447233153482771884091299454812305295692362933819311836730917043737884630432306939074886575590099276446609481398285643835591710629643704868376611764204047176387034182733209117137017203275224733109779082227898012193068745141971036131151513892312424728979098232362773621066802471770493430245049699733673771347751972166825938530600474737957879494193659946034176717180866090127348225275681053612429641514713058858188323797782814793514825303154726801898652507059591079822046791770564963247554195722812626337440320264038093327895838083393928723328155806984727757575384681761263083745646199483775082670702839382000908424389556722502830240474151565673162712326720329999549343923635158257103362743637307382388992206240388496754162969356760941842831142005031493163951185814394392755747585203200700231570462709132078854315203737515630684266093109566112660065326456199472663015666869121831863864411229312520583077625389837140371451866158892676907290824257073845922511382524421411645705613171861607913942856116210834120506610113256860970423059025383697942510420881140937105783279699406111175993800354893837281252546316541458307876339790282154172275984718544257305973676443979011263006552579855723248709988097240886463768243835313821016231828859889579383888227898691432342754022167876219485706091876736172923616552138154474934998465787138045151635107606372706854101707660048897144328936329402811087749602206743546978078184892050370614387062020103872352087024622951987597309513940592007096337154146141954334842638028126978218379784251091080076204446192408255578098910717760219882180183768996808911519037301392985447511535827110363404641041437474085211225935159582754491553021670564180133558315146373313589516454496995691937762792994363007347356406419414841698215425461186006068760523824352245559263712328907934808342019040901490869269955845107688519493903658569232008801936862515132745342144421809606111440909055060794287838415803665977034721480688976775390960694915228742856965831861948883107721633774740278175271905902384092132733278460016904367184456875229946636591155904316720090355127194284127236348825127832207033083755685834093400488829016367853561130029830809451541570132659090953555873394636276682946545276995597670650524003901158400545977623247754177031050988548840564430355077405105560207951210158542721391668800609866153204289367277765780258174332562225856476985662240860969863734649869621936851737321056857962655144513849552107098157669346177070201660140388366523392721263121501274381976627146194786817445012892022043475427665308354154122967623796566466060397017173766486080650722173732141958897938937684997734371123099867794349179830039787528184538083463795563555281572019537522478798486086060945256441712944097593249504621777255112122688370577000394233720162763968801757725172678646479404333043417338630080629071806635291578477976170027628610458577998729943202913531517617935132815844696902673531503218996952544901003597715124723556378051073624592174124886973022967020996709779918461384493828263222817251277824291247912023507380805890932160691090327108829043168150112053221058695839348535136608170783232178458007573849061900288839667237479104629149835740595846149427674810522254905792248736704038253908196761715197707945768145285412944372423114120043384345925700515182146831067085931245051416432999284858074594677136207498256792777265297055777383138286017977251328349328779253472761054518061806103521823112715598159677599143694826643093386410618111693705391453492885389744895147407070815392806591564667311771821967606948410715682197539447173285175798264251894901810912641439983930351918943774687885474608023185482183950434331324663329436028095180203755142801419466067157532145122536351063140865502441940794130999675419347340830089049418098301733711931340078243216566295244886279661517570621341136829634785881951953040660776780246407600650389937220765684011457676167076738600964362754260978265657696753209014332031745398275549423370297391142369829108691820923868849670476165066822823282017515410013561963541766858393598370140861805487659089950284191831433299331541855678459529710514155877318104266459382630474059215899744507638728972463730970257392006335627177855900194815624131423319539024559599566910728167646034697942245039413084281424096152988460599927591035984820756263770219967537743009894622760722351531353983792679514304813482954526522053400466704469924344039182325286903195004407293499160330392141334470747657206953167993567749431495983919995376022216521764610101224126524391935280925698506895359070690985405231132163917948865815226106934798784300440067015011056982226917811329557007774089990921139008598635124264956936618375228358180380417149193540875866454588706238852461145870351571365218622856372994390054427905953556157334917463595928063111701657368404377131944271147432365221516529326604679741623216684709502383481585349773861805268123889113548393949205364562478332072226197065784818221715461369313752534277603648262611188631151624341614259632062371376397903000695391123227390074000948658756412948170132407031907794710164996639434749367578583213170276467083922170159203517959237803528252601159581006552115585778310476946989473516856575529430348866058692651069173726849039524755110163355233164949584073345653112371578119568470587809254444997672627159889982470672199142160452661586026751071516479850215033304633789169317540782383221907547407278454868994799356913774080683068723311966308134596958041217967064022276553461818945891085450067775553054201469021286101009422737259075977225240820844920960466053487289514329948146521956297022984098646383479291787532636171149144153753975450555704092502309681584685000483579214645433846023398873040483255124189555414882467747189041126185384258165446737306263772001424450823962293478970651651974057431831547680648525712544470405266676264718061594050710932341058314334237381376729778479784744103719869604145005267257194320789618903182429665215300175703844811620138477371422041175807607013256866406708155980724346230376387929919240268177035067446802906435086916930488014143450178803658735482298397813713512105475682472377500600354706224239474002340370936756271938753268339140672554055020101600181842035741136199243661361565016487219099290608496776665374693910903817260630698689990332349743822789765810874964548328375471214348181282485609088613833223403798418139406258112724212503370843112235831535366919460301458277716962608891490989091565076685828740109073737071052284034146223873367207281784640475603464922602521402419551507687920993503541565644832611614807296923048419710310505187554786790940380342858751784113840808450512458671020659505424777282030025661026000241590363934612034467661556820005719135824573017394416127206195085813494071291611031751802823758055576664029011116437338691391965372156837987312814993799641632460759171096312525196909675969178282839271158545150095582174369410758375510004716490316467485379123283899137206198947041707497512546942889490749075260575975005100853677328620450469939417524855350950121486135733471059826136299854354895103335959492471159965014281870258248117978723035357560488226767133534150478055314640707410807672721988143392974956101975824836804119769511709448146041985094088083978778170755846451734586621556651036490976965131636504120854545370921507195447485079421593918834933683251929567601746285590532375849203071293871748691425001735979365239716149237312843517692893630080757366373675383157102502331134345167729730332270295221282590367372579708947990615646174107082045783516160219185694275701868899844103145226645720107088947745956717361580646037097926682555505521617234210465128480619104029463476400080901049450962817412344528293857448713231990405422703574557877888673490536573716204096370000627832909643511373374620731847294893560373669962836155175637624753195210150665978910362653887311148406213144491612001226120150060753279887066735906788180857700822596731276427334100958841994408597502643402711345261559875659521825140310016134982876566676115605874230513060530154880244749121597850108476496094947811439408115738502341898557267956260328489004698891485821591520775523316395194261883399976903380728773351249237300850271760731046246701235319734726250146138133078378173592406989878473578583297389122524721691782055938530741358555597130793557728276619789930627715426956725281198707957915577097596866387421265615184015245763555501421030586217903218200646569654796036481462814559706949055968373325430647117881455482540411023297967141272765488107105053635713177814403593267651762004353929984822342591819429951562674357832729192942162334183202595246348569052850714599379946225236344800294050142172933886471748576510239395501110420763930856515001902141420020540801880413777710198217340345897839635999387672325383498792059347424748577609110549142613003602756079105799137823096987128699510553241035415507968697265732597295443989828877832978457593727273113392632460917811166818516276238514043628627586993773393146374554994672587206765845409441033371576694514341415818327631057751930578196532266486140692460296715166481362281992196198481468241745432922612658358564741121072246853351435109034546188909403317920474927715553580211713176673655581669244238382042553662658760468494476153917513226512252826710215318686483601242118207938923775628356933566180941406299639066993839804379941022908712623526129329997005060299032486338853095184468190511722647127671365390167803385878378004614033679018192194910890110330775961465196109114708882372642627377886807252821227972044219163184042922052985619534670944349668072694131194491291913149708829572923418386052060969803921756895855829864692653256232363546593575377260669256058517630564250442492342945053327619869524697241651454361141478560763532308334017258912950936857628335298604150062796961253300645159421462462042353062331445651791920393933573263275013941225495907968627918331253287117652615631435440072521566132323581471429527609544475915743887384368731636464640754710157190106889303921447976888448879985172624608271461805451827809446814320768883612996115522182566010265279257366617678156506382804679439505680854572399645038806525377646611532208110852720724967472803798088668295343400365228858744336856087151418207927894849432713072865483234597562583884530639318927748374992800324129236150872186945536656614168145814653231202080354915625088444994769189587453702338675928585124167166788159781610133911390700394300166482526660527583042818570696369409432041715158491167626715845670245959818036142863141253210246852876428871139921656490312642185075349701344331966977873038135938609413179802588222317263212549874457466579311254135952136415894235435134019913323175102031610837892195857353945668334572068549820972432309079023425198237489770791826616068925281876492459597656187920971572657235298976066596601645855331354694073100471694975397276608655039015860103199558833393683319015375091773671319947730338099441509286961724020281520586903955179888607167358246958619249728248086071392014598702704135366750743315758203464677866721015089466707042693418617271287929733608779206180467962761871682207605288111279366602318031591031497553062018515649715436224590795642497324158710749467599083690516588421386721457886359260708367001563339562017762921530154030003600767234364161292385010814898550590670054379932642541723653480031149409468403938399772232306521049035426890923349918662650822693439355643707674207919498904326679492828369488230545612900475167034271856439275840353826210774275120912410431661725880488237882857557998674923218386750768627438340939837230082939805100764073992555272260268681194474918848481277977495992371460443239124307050127680935331600811959682092688077688899880854699239598110255561696146892471667842759374653471881149261484937064306476114692956669026162166444342192836086015770551510352331431137806477308210580377018802291145910030897619450624981842460771207158777143877381881450017682230100928369871878984345662198362457978224787806960887981870731032613044823265514240825572460751975558591288921506705308627605251979487233615360944659691995866850907657534807585671737670578098216461868481789788293880487285614543344746352858153590500112087535444879940263217026766830464075847207113216300307286902800503219258229833217088843766184141334598204082032495191801226934549188672577507465975735155039296874457566184142750014015700398599233997110328301858702360333251078489842621925325621822068878671546701188126939840476476777739148198286492256579750387826367529135335151254614334746415101218129109712932924680699172726395329177774262370850550000241402543696335072179088120172480016384290495260434858159676542249905434574281544928977197579905594869254793780261485845566357164988878938333298231114441715712297569131072314850093787265497023875058114997306485751135580272593139271388537442391971034665294380453691155186864461937863943115769284478476337460251630296150215773100694090293004717709990465176483636268943158153901361529096057162552371520522184289527252176395560461906923802828106486620262495845300349451568470564659503898754787723088490204068003469563929620106352046392138965230831168254548823307529792654990799599761757104749603760707021020805522884607529001883206353651545813363543080869924702805258537943662747716067654458607883302424752274177762690756436600702241198889675810199308815331665052117811530183935259931160629040149532578661831921757795101875909820893369215159867263522791885274490360950837227879923621410033846210540306940119446045783094012446856012563898323238133346111256198942588567609239677564067514786672367417062086643213211552048871388976539093689926292562040895037381923606392837431837609391122382179709677009916540845465887194967150675096854370110446379992581027200267360948918217587961553837384968219329315072602986878212943919029124348749325502151441349378022068359891710751577899252700207213221857922328597134050016022000669300563745656149890868689317823274425112897415449316591408091631330386490050735074364341550383368679918129731440480579361397241539041472396870593127402510181030514902062409628414224072320304981953968623806623341987697863680034557894884622393054840946160224770280118254637637891097473859894527884199816066193883653812033237399485782692912533860698519169741685665080130309549971778421485943842555894087453353938024620072125253970287708752253988918854046524237606377915749080660167958939912839503418516132888604200311451835871091950352713259189370802940097962580318664639442511545076121837908242055447352705961653201267273166642565926460934639004079755603702534823915213331845946114299968690375305271727223734057143292271400321659740988888638013871805815945141771587512813654929538548236882456262648157826054725131434325831488769343069856580011062873337740884761199167125505373029341648780128708834725730619541850513157364976212705019769056939138503234284709958619813848994888429071420433895095957638761102765046232031053970017916210046287184548604274288775043045303428406208874543168077157074720983328683663203266875590352294249786747929398591991595818198484400779177870470199074002343135416340596468549826265996996682095856624545325140866551810768003986472050880620872472320005657839584577508797969304306277282895415487886075413377598015915521468153673715985052368072257721061177961087215897324445938546164844174134256501920139930258674291134553257294188918756004304148597674941052528782560692645122277584731500165880897330987582139082524842314370581966120371505667960680003464467917385291410128663467161510381472280362668060883610916002629708500303709226123683395690046183043846463919275155941655361840260751758961537194788009705445373070170286724950430862271219645791928808426733887965566149831862154676680479602780438680916624252457675805160222416310066969692253377883166381250461929201657263545222148760322086078833237427939810471776968629757035288644249774881631124637981997026481934966301778354638238361919792360356561828553016412292590370534325727044581149780941817530827676329056724223327068771993635019549108380673730393408448439137979054292910798278935733109410430312116017592813380683181258948001174126851788328597297080562759954319568466592438183068764234109001274360183351077906043178411826937741880867017074497474912411753436182357522122975451307651509342166569208153061678602025219862174377327050522556115923436167385994742252672520644038707440315275733103970602227711104830852783379485754720110051960465685308988184942604712417488872206424694054670959483475549573252656144745175663987083970250140412608535929955876795385970419140278692381755250861276651466878892257577960177511911518525767462678617629891276794705315856085306385275964150987475573144988914995095313054550216687726230443240214704440954007826717535147372053625284491809120140058800492838126269989759014718510241195175907030036612145152987089776959558065169764260625904359499457686948695301112022352845609160060156832645256889037391734072397531940903749040501756918649604203418452723596296506405680762323797024358904159033758712083370956636522620838179116725700132790663336747240526825229934885886433350679191942865078259246308276856138993087971118397906304948140608247595998945047624599134782612461955167329097546872395805872092758545890245094553559501377617922405883202991423692086179399023366338691948790752557228891922803455653624942044793536971860266265054998530186617228021546393955511383358876830195537941253831958936402808196731375040207538390207814130446593290235048259908934708042362237813411265476477556417032758653127690514726485352728521261551215324341068431341688658037446405974307504343177860611160151919968726600193224815784590887117665132176951191907787290665317212057649293138039503213936502804764029874212723739730120824508124909515000213371999865782579516898530230590815744367201472721877725665090724530752870077196983185162383986434522648108767157977273625902422730977278391653456380866838591036805642441621352166022517902939558786685823267185149186937213354618095536978002867461476084676078436099991301788987639457290123306059167212829501922590009839144852187787471282176938385734905421574506126953172822511471576574799141870902725463054980284639969756093608104207162910701082499174039036953349528900154541311778719343423580216759688547292372000135104237671814567023712342624734092552433041553620270986332838967812340809486973479022695889835054165335088646999641693831643127850043400227232902299138104905361514300629463953450147770777023156422982740375872078175121340298936523510585615073309398556292960139610156812777311007424873976070137583693563847173483611797277978628480787295442147515219872342765150974555914686561639307807988795095891475087187842758199071527174019758064411959096897000467443742655840064651318488796638688554542489887108904399503505024402689875111332579787784970505713983288872631360266230074324352358839266886520148046412472152571174953398980708430909962876913363890540876669085311006952033805354943225067655144089874737383123806840755869567387359844454756547598084288588911906211595019660527507389425784678065102103349002606540167635485252795407155651968257168176926930947177014864133738457449813050262345476055648148710529825240477299613121437169968823877501932746815594576736033017943162179746388993473100985354327593433738121634265686061775557898337582243455935671180689512921392469707367518942865172986079029950217039046338024218411768456782967641662437572734997524987563539811103845591275123476820817732744482786462589130828793610264407488671525198015970187642982553530863362948703475282195774543606990093700927959657749048194516357743114525338133586076264336798180135031191306878423459800665548351373408956822388865573293075876976517948599415732879338472774067860103755030932588581418126072073487339554098038125652440162384503300289283343311991445053361552568773469803841063346650550662496939684424652557214926357744665422375403592038022486496976394813031333656145154080984197775781996787929693164406979701200618853687776389136974558978001492441036651780951850866790241943035440227144742776785418801331642322808162251349796077539000278041361389336341299785277918437951637919594235518269575653196085672889560180507757474173868326885169937189572582510823557643897378633615801967365989398446963142564706672687813192178507256040743465566745638955218034549621230545500863274425939831566067403705799620845809490205963194459895952915879756477819894719937112874722104108397761867893256168843915629741747598091319551774000342875200357921992479614809707636184830721166878716855520385915135939627547356794208965946087667376965055919402400788233151899572639809829279665426253741945730322196527379551453600281914683710135963426392440688966829765777106442421500469672578256360923427511092623941907092579100157044310121000455435062827198994797604994703098398151260854476550921347434977173517457945713877755063905509977551932037101369913502109463158567064404375002580211572360166980532049439564465648414812349143232155029575175565991894317710175738219533155520958398829202349277781985873059974372100495504439979048706828068856302501629981281276404929383751815188834624259822679116487859782130262721093428317911748925916095812444743190835840134612115441661055563186065389855176379184948371849259829628421145842440241122524188280058484136966224156892219233490864437230091895094258402178315548739841531808173410974135712105502465238010862137199428056261985766659548130914594962077112158717523489530268612926488852579764056542017693189440545571405682498838348822237001673037777830798707306563878229906410574424103149624450047173140759867576856526616518769327229462869192828046700511449634686381678158791264058997352670222526585316933649894843561084669418966163848998077532316772451962314009618317183312644272418640056807559239979686318120598862781577790797085839367282577378323323618701398266585292923120378283795337376072844525493993436992432962358797049273140287910404836373285419003823081833956987666140009354139235358139355292175206854034753650035344641007537277372239397672718699343098696697601150292817986183520740213248865745998984547342241796766419701508381395221995233129717121979835536778753773030557170065388808839869348589618169001464436297888548373282163151457713613422279637432553203925177803831676664499661693625144983580275364415733330750236198958894249166622214460668046222040001021204034665959525510104277348725347053472150249942184664003654442334366780582878975013194100919036528636223672790168908057656106697192404068585769977035805919033248207710663471001158564578213399268264454077796424717168877111960559851617481723724583513584407223434730164441982360890692349516844036785886875485322784098694399271439126984278500253169607860080839700480196003309640452171268942547874385257593686517841000270139006887320365915460306337630252884145374634215668894139632037939724730399931137089560177907439842088632990842817319747730600348521164580496819531105590212781371736799233170933686161369404350016108726163719692642679639887505580546385485364640114301190921553525589138281256243049206045661724714305525447293585085784033311684039190864261346444717212835676605745288063085338200898614330765439905018788024590010144128139705810891241606777771536333701090771011999945110414043227056353936051655567791899236397630920674132472907024574919847599044718106181787676181312907628228038097466409368572489479772842295196146134729951609242014773372903860592914476592566755596010971123393431202744245340181582133783006425654530067941547446910336934707726912648790973714848508133401120297630549801181026408658151509379595655418292088951419294006891099448681592250489896084807204685071316533338169917514348065460686548506518648563804801759399660948583379391242350385792363771825888961722330889977996178839598244771509574512672127256553775097888404009521955416775787659386012283662524166434650351569153000582332028295731406412482601078512691737720392615603365271646070486260724518907649159811596198508720083584922454480692520170368531268434114694673097241857142374417535649168762816728272263759593063162722744303652162443244099762719668165930869472779501162302469200091828292751004229327979923023651407442365022874518789164191824730564322203373458983246500201843611976874762373837322417942024794597052315159335668291263494191638116235126166410434338460152070882689574268253938584550992618562269510293639350106611310425950408413447700578176482998962814907277449460551973758188340077107869929400816046602053256454317078259587247092645057996777963342238382741037936667359585143261804829534137707682415153123048958460689683164042702355648270769216959268282513472603653027268145457095613705747701203960464778433919638775780694876504452140070509140248589808099912222500898417761789559531620409634194936027138808648468107325952258717723330132213858063190787695128191469890402748130292260966332877233163737428555264354530679001653578885675702477921229430654055311345411005534971478609816140716616735446384776932042632753872797138950122243558261010353679232871256897197888239006785748459452965257074570951652501268348227796169570095373844993942221567438558470591335879260647662190204992707340873500122593984348890678323627114550795887723222497010985152352445165828281661613874867999456384945939256343927243422602295067531767276474680112695560231200589086697341432504914272312252808015103400459117898744335198190322127942266399332472542021183321769564159025556045897908100241526092349199476482347614448968251285467874093055029838644684369375441067960371270613717724997564594873518722482560695657918954520769809890439802574269480942590261253737363069811421020446930915835281396207776435022096741265912140902178459110142153115097223860793885593994234383213997725572530520968405715764919564315202522289929525581267890164957002365924604470526170962879165348933251997462213871545367997387045841320950404151094747367688989130683877400267602983784031432402312884251721734156666590769286599174719322056594139915674208023485434719385014273221427080936973527120575647260511040147961275930759998250484181187006654413747965919678040769114403247681549261437483847210777262045006768865717977527965903520871064979812845534591858233311522627340538947930257270292676703579333488068073722905151980200058757652711528871010115215873074593696325262109729753000284265874365012022911290681886961098256419617186969919957956363725646840755776911212709218415175503018523078137991851490851166209394364612521605024603505105096012993727726974785027771839714114463767906188442830670681447799081242183226497985676776293452862474876892693090984839532918372607081314437551289378925816681272786370657040600071787064936338555528249723122304550555783827960774869235232270167940434720412328274701725605910838998443034035663336028550319619942455369121871961005415025181959936912208715634951284919046799081417302481520700347146918124197874430097686130001108763136251437465236325396065274278190413613049173447279784579318466943212130352613418085803990886279225127976948346735697445524279863994577437641064986245609081174294035990661185157017813591976359680509694890149809590923008430950781782520080883661707243389830673748706031778546069096925355119601648758528779241077404147030391467379695794430098658044456074246659144888924995746637705701957040706772545402908479092757305547370331385332555223148561577844366985840650804984752769890512401300301767801190713017864498962770162238093384064797700349150439273188708374054022172992996072898983898980148932911688835739120544856407488291593806745896328902683133894732239784475512285201958660369143157489014721870575692697026310288753571010317284618145202084170647904647644515372398609195707298522294559758877215176763834030626167651156682402277726920178549137827287913726507102099053284250540410883217231951999892996153208615560836749999325216983371538189720877085756048711215621018595735797644869808992310598699409575691248201853561354856785188746623598830797308062836237297311467986673587743260792791421631997958561495481560386905243562748830444419934609597265194188946866204935696588245066043470101886859434426332331435994543363937871868970381582652311825234755321545183331023233249428185874524854975157639703992119976719726409962132382121815681518206209015675500219549811891883789696653633027298548539851604434302020101245953323102301725124517949617934077983442567321189919839919578756468299524294135542273790185023469803366143490583317959158267919866654205726594845394161904607570024945887158308773044423073622394521096610294715372561405524188687986510847323450959933653746180887147811670370232797264725162583236426518657978813241615394644041977318340766934977412872125476520467125448031448924548403503547563730240466929765968351625957207760128085274619610043916967027434236575613820679018687373723627229793900945041615908825757438441144739737682707175974031636627716788908251278096637030626413011570841059751780513673494831693643682603984124180766569707552310126546661477305740863360660482496188186376383897734211464346125429183175959490195225621150444212307574073018899579760143123192151786253725187944891804541742970923434651358315682043020565250126425396584139655940604217976367592459030073292109949855276583096380030984708201107595028249991579301790560890458675231725775950960056761409405567135162041827735444199429070445270436952660905945514152235540333983821348594796277726523950420936549940024123696195193915970671442252423976633756312883480521425558853405512574103579798086642347404172619674415737807300907898587238452151550782361507153786737286109346732039028645709389881896783539215172695569842782153951350293009328292753659648792065345512329824180185990015550064497969057290664180699855295780296726002223183401436656619547858969068848563492766518644332944391722069790000016257120550747710518816367435406611022351017627166479803327935011615017772939711657611070756663644827093972244928124362967940695671471395599662297540683510175386978962773066835511297604784600215058595664738199856987305812069064343547887404949709493479130455878962090957626280445384856205394830365374705223426050812067363422805307155435355598549366920454635671607428357931300885616981959244982004235760566581717973563662959336440240594100213274349809495647733382016852555828615914005858748974103326524677276749758814572275552910276873730391410039166000106022140000224685251913511530965328881743654000294553678883444347267214729590822513457338238778652595965729122438022026180657806503306699164401168421381960380803000306131683233217712777847712951113706268141103189032378861993250342948484483392816735393315477572756032109445359654176472103669893510143563001288655450501030398252009677233727533166397918726346654668665745021257471328217396487130932705613993701617737339730616987877511360341517346821998670513875646625001363499556275913830193738862730890859563827188792700056673873318894797793124875148908521071314010935398831494929821123557492491103241137426979076955617154088852025087611680729330808605163815758547006093636817089943376474429747045052798121624901913741426009294322991348739277662844903321402853591635536130897111392424148978245553595728084519457284494605079780097855902572979832671757566882095401632822660114023056407131993815395036508083397803998723974607931926690899050827296623564397178473868847231259653171755961715565266439132423504378774267369895077150457258714717781680771121445231641493462032677246564322364034149765768161899464369719486733283016648065872388603713293823094548919132442168546515085967046014198808644849289668747693392110695006344706646190218156008909533069110205506003124523257380626985447137012873673984677587028290062151341350364171979942902614043823496056969482366125519882190909800331601876853462642405302842459961416279051267682513322797092746396564682136847568035341844791894321963558279257225896381473273881681716668896339682481593349325261145862545761273409517023838411088466919014320170645152891970202403694064587011444858574189204340812357315356251992763991083250061782177207845969194699851055422184268067314416677082820973936992667914979825282583023916997974270983651633471893291766104377451381564743949876303310477073871421018812505577943979300846659236273874097395797851089299770921666654860743159397041308598980533306632821484441880340266044089351141590370587984443534013056070220068853397336172643967225218424684642724611562889921132633549835729139794090532298220901895601325625332613697897976630859532822272143551348034857116933802292091989930403246271004296231449639825361850743343687670463930755969457074924660378200069370772900410048068873449586935226440435097587016887140569639247707766899429505789100764827119198384622048596863224955506429452472593201884747467698207540262166067453868623765736643108046367968780186878141129822347400318171275682528293331898980852097697442223570122252802598154206783271856214327910794220602711310594629566600347462497801483714228858521695516163311395549824879082289471166255092505317966503592444943102532481632333372801337477102758511398999378206532315556541025262806652341931998173547478227544405852185752143846926287182254802570931234535896271511520734088299903330021893317080955796730680445776557456897480085542670000823493346895758784938709279111199526426132896099124297490164613494903221590623533140468725070832626977385965707613853015239173988810099643583395928471794207482912298028111809073052515659394255984282049648005414516561876871193338558634661784414435444412253146688535070798787600903661125267053155559308151479397457754116878553185723328641504031238744591628297863100581756978561990869910004687769740403007938972686348862139582334692457968332871408272867495725567372551854890298970246679686602798452080476612060124351125304167077009872741083895757401684506574864133632887802514736915596187679873202481459367783385758580376367725222857643316117750884791895884881578673234112386361254848543506730550824392428093676170441423694427815016714636229771503655148252167542088618302683644443443749850308884573356867142891102460308709741925529773090879403380235924919108424180756729953019282871873917939711435837254942853073480286043285543442991429241833841063999957877992326853981895893345919379089952312183091746982857340396632162665621772620642130025381714861732350007293095939169149285646410957109091034940076561673489956094712136532495939619272038832069914592694024472392016253820088378220765040537563851462281645158957209093359356046603331925519483846169235993706365230318531765664906029525927416552876976830337692065338919843167638864786186933779238489352135670700707187105765179708309332883442569198450887161263680554369965185237114678333271569883131488297674022265635378865162725730173767191885868253100527246622287643974919745449660903334914936108592170172028149494135792759449196052969741093380465679462607219614593070190195207723890091322905156533977599796139076844291673875856756655363111538140451860151337113493124483464790247977671507945823634276167746445710464753626419165108962206613850135840660547956110428438323122955326012794863626209178947796967675929676845159970207226180938045139592287654761401178720168804662604672706811093561877113675647216440325769500066702246556391108659308930713804937719737480777056426906837099915211444876233824942388431155892071993662992306793446502685201963664699626287187530858996873379990157261008848220496563861854482144069589678814689926192049715403463499047378490745496140359494379814655605255799198242533273061939169999258024734257706555856903893760333589483855177772027293702568776564955175517331951138375158043754711477573875590594087804344753661766369264278708422859257211495842643493030929165598445767112779237529726735245145318565998488380650799046281122238415586160432340934861526513861632540825777865369916864064425062622373201071629081965167936599560696994605642441997985579249751851153731991560109773445365260262922353134071544382205462696440979727365242820374458123490821737552794587614431783772669624129169911538502336330856008263807034020813232931975722242827406152657875460002919103482308551727412155030447120748934168688522039102383692343845644732458427510751641782371390854745107071469468515835088781719056011593121986115436956604267224220224237077984550558381740548771280966136232173180213213282603628924582579341146422663252610111554859296661839457411904704363394896134644108863768710582077750414831306918340731681152790809387793299872443458884381957812303178710036152702998843622943493105356198996162623206371736134381462531426922579552076606743856541257702207895506756815266272055106948473632261051011968867540011837365095849365300984870083698260913913313839367834627944788315783271326715088895629938030917290358325858587202108824750239045918071460384258416491608394488844208513360098569796466277637962587233785982636729361319937496125651681410456492327310571933432855597100082677295174455188620541119734040421044726651528288293844247785507729827107153986222450594926546115605917951145740407483246139460613575451292269604504946648655992044097554086757631792934176308863748114944611262171405896545899511746411810621440034971067977097255084670435758759391802864098753990437719673440823265236218279079216213221822683277187232718366330060806837822102637630018602315862845479568608603730385904653882812282220767580102119337213940598882104242254839633689232509728221837534156798724290612670682106060870015648477320202438188368758592331393620518205958556113649201820954602680852719781338974145368049634871409968355175979468040335935268600670123570236463100019014584531478539925159769264480334379196067469867889633038313016485055857117041791011028164986233890684080908083052540665435859485612191935851351769707484411007695695540500000220566316453017026997236425219621893522489072822529191488851220711546156430932691171720376717125589171831263528406160545003522117650461584993987381148677302197065324127466620464652701283991401148321453751560468305189920712175348240038232830366995178691600328863714667158127519220483791760759518135090718730629446994790698248787131031899321291910725989203181664190489035641171157583541700254093910363471573730597471888788814509885397695711377011707460791984380411062073596343787010949353450568524863792456853600927749849166442004449329976084934352032519245086313909197606935461147138366080104954676675621289608623880057480924060715530911911026260177114254135493413635733731678394297122334186051984313240314316371842915278045580088049681715808675236260854019644723328247353247366174983255300233654632778918017762857086942785325777982476756051955927128860193956666191418582890716239114519165832202753250578766440788227842450929970774061042032846425901797068151025486330935645975026342045690598737452280617114228049663392344866852555091091234885220263916510715400062653214656635619534313407780801925132369113178422727830137813834992710776456490467752427354667965538619455646621652874417166007904290209291529808868513443466284444463143442221116317523034227999048890342076356230581361469413110502116260569501073529432743886511599682109646250851666680815583916500508619976723507742464728830855209665990755151673093247246418754336306803423236085046169953719843625748513969135518307468334485149774628500996971632250284470665489662328596569828960722689977847693614269611841477836450758636846683015465106309885343140604874874318045969635224375558692538297792566705275517397859126887686178604422136473228675989995878150869492367058730912265199291316752396174944498934967192427146277237300631530394283353801223332953887434609014622426841711978877497313498851716558689576905405877831810093897198494260466500030478778049810728766313898187856842251317932203065297478162631802613129846879106566441729907244843143446137423872170333913586453683843060310076481921233909563103225450009822837899766968208956118327638933174962949659464353364837038624809770988726807964157852001750312865156384962300635162737713065278341409059653301968835873844339848484875707755663208206722099797999533434546544955631885347192445418190719885053872635158077266022146236967671870224888091772239816008666665989899792146166424490619531022362773478353800121596137367486380057427773020178535226629413105179790270236258019470075685025980005164203909945339305941920983133100808035918949744079805603750621607464271489722105658811125978747212601307008947317604651588899715827526600745647613398674550783472853679511779869104679760946377083685413276048926278389715615658807007421992313434947398632485963158606765658023808970324954336291549104588241327340450942885344601896278713685848082386945840131125219230666347662820127166086931491641318253449056992320317673144234625193577944350485768755663642291015944196436959976286433816949622244479059728555915529358423594261990974480389608412618354594320253667339369363213949240397684607383716456629232947401297860183446538428842970076449821623072761875786371536513619843297938562956392554746351509238105626447473825367669510221824570555090012040961212667416075037796738611147859137237890554102604725165635770224950607299973268100252478944170586657011365719868427851857269849740637416362996268368955730856435769148088626492748585232115736505353786927479032034284860950043883393379222545476753725480003829570911061607435754834607019805746830801539983834869315434982009537584788188953387052877875363572213542934292839085476796862993194676853200767463757763691073826984489223682516481941632439128066275755609308849008499897459017703137235618837275173080124618723768984442012767153247413268101829760587015564956601311515291983379096335667930231724838163371018198076543437804872811139958158041823921582041906029515717668459135702069658512119174558083689112599908772687221053926971703971334954555894175615845048027280689448868253659957712812255510634176734479249178403571472286592216204106409405130973425314405661011175674786017279718187310267921059518759432458705439874271168963813889210930191276460150757783680733075892848347507471776298624457975349710172336857503028034679470839900478786320785829590899698349022820851197045512899834461875759361480197386635132846333993650939994880394073282292965363193278527312505300874399469558224173402614279176860233946907714480754229015461130802484134270223326380710792954102653958761012432586165457954160905277475517084042074610962225965876173661141793985481205419246128354917159222022647236424290568380439569227015955321784412560868625601509571644066691252420326264887672448964588251415249043640396415978691978839419091488003141407294460875460567672192707710403401265404140191128080414070315902973593137175953982477569890594544132961983302384233585708272613448795027042248439300149525143579615692822782401824344625644188451802856142872709106699557043226610419542215115107248581656781829083289298998926662090445246177629212292712374363866404305404492558538971464908424990720324310572553730363721062194031727005328813203173930054053395688026054068397665592350452498834543390771063157167583818302622383823752715699124369262294817538287854657853124061121227434135437884979433261127452622150396753838681936293298414033646275169779410555085644365809965805363877988628808250175085612256877857735046411431222085852080399091879660882311816195272236887043319234940510364021453019721119607629046098491631356248319770094073164970244790705076047154094925374942932117292450932167311314363481137062126908649931490428259875510063339532489847926039076554475331858916071199487928747211209047824772583534578674999225295267349594774067545091751140700965069672154764885175059182253270107383259280229831732016686157039784994645180750582661739903922346004680991135740717455381242432218077275500415631612417746893705569936162409262138959320102494952711914421888524336156600973211083054988330093035800312597227234146062919594088731846643696132358515945116965326374152082257041853466166308228823941988251175297005743197713667492719749021395240435878162675454870643543334417229454369685750159683263306877270701857842927797213800376099494447475505811824260661109072255711497328403771994016743702054210814013728047146871909550678917533531285434003627785204270542976778643040539447508495915983214234200774510067123759800343309881338908109051821028998059855592609588098241397179327380746372391740929381980905322225106263147626729617177062168033009818869794435775132731628883646105673289664247566130213316164145539342208564144534973623012315909559951883216459984428391656584316032756489477779243516158266463949871414273447345862442749818230584619306496159815410418207258653001822613877756617008386545028251011033391953776197764196816102780398360451189913557359409604806304202358607026591432882247932381151957492927442140188473471159879337770823002061077425342854598403105124594782424977712066580166218169553833097339730545003654327678499017028535104036578083224234339144640842577358723326067997346504601046464864310366179655402233410960541362345248861063063040207021986262407698672575735636814083494829271420093892344343957708395236931517165114175724671338343025655149873605428945284937248547844474119616232704498770193823478608286700959189865554184701341112423101248061524033258730262294160008028475921700397675932720955568021870304757080349753533107971268116948689113080009871921344655142718276161829150817147740784221925788130643679801368133422956698834415144899242436916265466419686264544260155094413788886907570916152154279184265066212844322048202210905612135422465819628031006104853052968608999449166807443596192232021430996161645612580648323885207842963766980007768514293868899609493817767884154838347941343547329384368180861785499023584941442523825319900033369556555785484319031729453348858556023336984087416913238042481603968746537478487383527645556071835728320858441578715760897465187978064694084855559974857921506101240687416076411986139112150830928913998035477134056180202434296305134261234726592546993598883627658926956586246359407681641400036494186235448669472496201700014805643026835944946413568625086880041145373401187095236696732459322363646679393369490274665614874852605432259232105101880546607541902889333201483306712794881570251037330175481427143219038967255853826395945451268300050183307232096250793930704052420247657034514319554145700389358392919132732394357717651587709831827197308772405393975613829807072142242417391544803270044065522344894627896974928763126111353148672518149085238621712990463586367294935019672839945467905156919542791671255742904004757205155576655927742394954172072183591290112841240318450187371118976525520389872342332653900853284852187553260098241508161026836436086282465814936423373990246391632349168843560492838333370796359655172914029159897816342050805692999007728050405839137604617219497251077448506530413186929398913564502509868111883470801412823210411137995765752723015287123055696148128371939499805006414868707656501166354116899312145939555456483982307979765519854108656214397176078784435657509613045871778649409041632249400104883478393346712307479293399362088069723278890503199694141205067267899227178634804355410633864138447925601457537270847767929694652393431029906937359512201430042157531025323154476760603649025984050113367134414009524901093880225473068617782042344639040064257626174484580899771074138220205009466384083252483035601527572052025192687700891344176729048043820307737514219387996702866479001140003381453284158320898686445123788362429149996611253831250414831429414590018552075709352915097688778655847585848431765507133165164752167670120623852509971453226085538102962810638869731402449645282228030248496512353466548467630617231842915444560664420003951923029206651711064954030296608059459045819979339149346339065219984485867263643022003003297141322873912768752256799912536025875796157692660221274292552187217571254704405498180407802937056245845716800439268466865098615092103032395996619353825375389567188648430941925971018110519337578243509306623694133320816564510455926066334636760672701899925160702930526950811001817321671614062537574335191213833332935593408456444391363616856703554338105606233848879243848065480779538341713323207930162724961656152456518559099857760643954336428072025631984638769761168694114376517375826418955483875257011906406494950356041184082610344292872745621444495835455269589721313611095288581919668161855528685818334577283602757265825354073313657193968967107332391919878065777627643880112767688518842496235822029066387793502129747507893851155847377621469196814098096818529918807730850289878920107376752814735634337409450485839223147228926823999256140419021584723299609791578688732152764663576634304735861623074415584997410856091340197201242699652669214504003870694663462920355505148292933919669680436675491613958646252011775555608741269067042711270911205862899189060966421184863423315012104881572891587611510751340784633620331511634257666773601485486728526372632778760594121147540606717928934206493681425476429987327827818238737922040127452916342354029153690115623079606063168788131399702695363850251993297170731812052426170529406829849682574301008023407763061132028880921912924581274689145087475161223994710122645027861912637569581369218816007401166755255891419754259657307550559200373051608481125856482450291908124852972405823831415796651895047941262038046001303472303591610374667001251136111244319665313882129607383449984323492879495397852839879632087957333402473920977792184700955068525867511902766173365901526090650191689283605274332421511503792177929817816807333176128382394689128912485415244739903745591400618953949044942434717965208442028079002216636070707691844512122077398514994722371584865441779003878686465852524318235906033580402256021363567173984432134228347668216289573600162055500872593986563680732031784387976538664905344873577011654814083304069813357616530262880289306239165265467231631193035182320264013441995331770476936567496103364074094858171184232378019637591992225735124317002129489314712277019773317292211801527290226584361838244641660379107587171214191554076162161099054841675641884722426426998711292385674873382012805165713636180467459759314539674551088505701874629711470098776663657491197177902024227024333251044277237121860046732627730467031136791973520350893305250218945440594415156372366702461816601387027873039890374708506119018266795100740676639556599846897367160909706755290418995445315221394573099303547929873612632266549313471056626178120525969051959494663244865066039172435293230247292353362815180606422109686913398589041404566888196982678882689234522381473509901404092852939221964617847834972041408589226659019729143427239162431402416171999931108660089103891890733736599309610991227693826466512767310677648234311556124666686448973993059255326539997509498095412741030060114072857410083173222635158924084395046505892901701686401052413507183897983054425620863060513111253775055908746862113242393939337167008031313456463046002759680623558720016500764290615687331744347667708645446208408404745456519729531614653390503060315223747349837104457873186159443361058787140337459419158898920014674758691453021793372366858507901045594367401772677537630563495832251632336997877629249309307035667789495091985859818304999511322730800978290438263113710890745927280197151147433312445913492820176232702400225635705618509681849958453159310294290953559005978603058503856120683148069879932889271550176308493233304291909374716612124809081630413992102708561143992791568748490670567281977313451385763880563172671991587309542496104697435518919931483864052481818136624938848932745069982798331939089346551696207738204227651902846983346758259597465189590901674934768930932746966027631703095678002386486496754539958003059884999038808436672357096211405765099237563086609724966243697431310892793555852396772526589676102685716682114987143696073507285921558486674429989415411387495693717813372361393647780620460319593223181111450948166437527990525224746161156219115193454352561185327932044484517780951548249092425601407639755737539750896457583830605899277968725112086872148344009672993353732688538142204599078071222185289712915404350845059134993758164604034419730663114860259724646489283939964156965681314320918048318564779191866641416328815243170663807886501751093477896313144530887558112093412107598373239552290945221929186008192397777617234268294903451499309875553782539828934459552313964209329696413024843817934224944747909608678154178145311916300269363930272642273219550246231698835509294942039267408177199735345199022570188062605498680811664007094193049431397029897363489078682211806253502531293703404124421860853207213607280558830833845372904357391601552127429438207146783632574777218833790555424279372608161105704775573687764932588541834299519438244984417641007363769885410521128003941436858407422452756150507610697503442757401357754538621486549364195072427079293385917068098056873321009524958787039216182705084454733249711197792280894681248751605120651955124917713883769730549338608687146788347183779898840325009843098731057924323064028141357112085260950462711603510497651745870243874629024896630433750862365054655423495064082306429277595137453518225211474212693506742713618587046366260041198221437406135525909601077275339683351628738974185488712972240994489463447770434177866357238432530148439746902759798371164855979407477996813220154168971694472293892062187995946085227017072783563864005907672630047297248607210518014553037645107440672510322264299185631303481357369602631409929614774379802079637547325879586235518246408376078418240285492245459209200196467571530415679862478693852757446016038021357027719692608705478935660958622264166263805426743829383404370109566881065681403236676620707933128856823505228269846451656944169304464863291703367413153821646698358238047672272125171685839276085542947806887577068133922710720678397567889513562133954186521561919718671085657514408282400170832349707799605978806171092550754798698714643705016833577483724324143096736399664559241494814583099645383747311944013154640313206831057867839234061722035747566230679690277452404676462951811826456275568546405097451863080235671658941185920097042335893510189162033487578740110837028405267753543303162291476630428199230874673462378654226577025297469322220704769164425361440890263870735680198855191378023631396298947294130217787191542417497337376151596767232595404650375624819917166603588731510709751172775836558553428620008493906844364906322049148049606532513685819759774910249818881814822153325977245738221897307823387557490518182184991548342403929603791370649289972832240797929229058822035480989997897969540042273570433423119918187799066213413833602335721917264305309336923232929718931686660172065037377213171273126018862999310425843999576688841056215377515250526212471210170625068519799952276617632266276513099485712960111673395620248373441347772642301071191473744468013603124405778610276802787712786001871798037482818550275736355854127367564041725949794110937004876754827564932472764112265678330197255776078552827315065216538359040138402631297996344656626265323607899763337949196725492715991940520074749972931190755958724005061649439342628723786255875331105738839633984541546576501899167980577313594405229048350688934536616775005458901929903276910981164216635790995947132902649833081669155246739358843432966366395174711376143860244190908379112736437729918649595420492159051897396814552263110964519991732727329866217952430137145718307248179846780330792398848823411104335171596868599703617569051996949962444666937811267683300433496131892670129738829459296412054535201969765884855840115141237123301837626033187791320121663233617310957854911591756776631122532868010261219584669500916581735216506362674120383230520381313980169039775243387399287021900659943837113439713209525517895534480695757095495574262862839757641583218949232766102549216680563657844870533227244236863777403527168819508291386888992583965002591617042351553170447697552913763450918963304354928616176078489284176767159356870330021952698343423922564807174552085764076076630907148828770585947496054115536566629996018047608198504363287156902823296292615853571321923259504490830629662867893710409217574981362512055458282340255945977814635097319411673411582798369786974113351731251392698337324037172222427146313059261824712672837169681081516134854613295062404083706981563050018652290409826210875316763989672985106125698852394149021141886362098121336522229427971724339949713719128976849548281802281261642401087139757088310025021323269282532619537983148709872393348168941089975996628574326700696165369782923071525080822961418459251268927377957706906857813139236913177722504809527802991486468034628095079458449208190576755952668656716414388302288894581062563610261557675203644873384930429575404813082531159813948014817588573787581192771768310817983090631450638974266836512204549541543101215720380737086636539694124168326406187891681713038213365497708519321730052419400603701949576520048360427466707229836488359608813592834468802898495958661924650773053253772708223565299539520721710439882238335911101586567827354222110377340689532042386153241195195659266802863013259187359980703261247607664013548529513104773145781793778645206526763250681707667394963822767878952319066966789012802739828250169263236406086330786551798670466985830339095801648925114463581926266519911408863608843631779842867611502186739798834466493260457144744041572474520147208461668385360438235617521183660252085026897081197472732031370220245614521111271135419020038663830724117950828958086585042221528127882587411817792648106665277023899864526911102855146629335622523959167977392114723066902439027570722045430863905965874761838365831153530578283123399227583733713621906849272437872303327174484665875108723846446800023330570142316290086440680604220587526624421532266061292124382630342891443220367057252023549432359449983419396062355093538314331164942444548767369822749040189167506372986839473186624181854310695000222171168140725658463210334422441736788009457094625196959155940535035070018505950537533871957749266747024049171792924581703653946285184712544472854637983839350611421985503031005599490469493073745980359764156958504953897936808814834570607470093639692473932085417817427985076576048257422027664612334461130256906059357830437172203714815453630436064632221745247422085527416498563164531596298447033230878113902539817570040111003746152117147375321866508652592306995456923554074822914569478356181484632420206826974130396733552954054018784080935488059216552898597833078445331972348823238726839720745229731122870767028211005985453342853670426396203612411355321561397361301789911937202386286467461117296753282908819236613536054514687508688894936226191605761169518481383054556677054833835090008244235027420378821339155871234107517818914696728320300618589191820792940444684885677512489578042305086425622688134091676436428458385669896081209433162646271942908026742218709554254771791120621418844547029885900864846547870931576611668244942204540345090318097869902949319543529141815234220427983370074996683434971947333983390997991805468814496426569996617363273516996597557288514955836884404432619810879749358764144147591723459542386979439827404021847549534297144877026078131706476541962146339386976932422126387019551191669390922806690351463498955680923392586849012546252156240654556952610551246574519027799694848796055529152663733589197786213384795499185348768988085359245124931275565816317531800679255488193814676736682173674764847268612006288763100109770855961122470202881957125946875223140368590597923623344838308994724302568921316403175681488983911810460310399138881312549186879840437586861567861163171931314737863555485776657491891385195181800252445134596682392318602921616926015655441355573795839187314066797157533347620436494271436510972205647086738823725855994937975836203505307247454690856159335537774574852896167516645482930359435915335126674910080924822360526723020254463428888419265710535992564805581244134376080265338318811372258811476285315127021888157753469346839415971358664609761729501421634894233969097723362595299332960489057999571864695135656162582845466140023363314773510408880763504527653767983618594417988937847167865504689691253290231489676982940161003718386727554630802567594470548978438630684514143470572737976068751612840173330981946119769771281251403101040214123785873496145748196149433164071171935390054860677812751988292502816057508738301039858077871295289766536277246183335441583578508784891293011920143251102718463100756599383879159811046437506688579379104393277839774016133753906091855238044954300181153088434689499016555073175451883103397633946778043333467626355175700620712261031984193425708906840421947517437744728759984505736143118421285035575112616580041495568925171207834765188664523119051286377508495973772823312914535647326005749466593824499114663375368885645547547171785210392659863552835273997306416519603897945635605126030359336607672223487021644970048772779944293109193942980229412293282496610022432156716876037307480963807218102161788159892341242915384258934519148255098384875331653440520422518260017920927978788878788689077012136159939761949678670935772154881536149743622520488298102572005569361531249215415795860642166286693173170772282029874289374409115909261887971013627476151599796752785199848747507674992349055663260368875242246665224117360597823686111802714050926610013569144657695382361348783453176474824291375615159346439127203011132464687908310887623500945620034111607688198171677197595822414860652681653379531391471001397373496844962845090027399329067805809711434980477788848035218699579915714537753556790534320311405321309163430506417849321294119049490675919076455163799644762183567438539824836663266332822357361124605212390607311403467316787023537678927176352762004716099362672319058763516141310180823151591276814749558149015859930214662815596346157138106607557373571430394861682688268936956305890674449824315990437909182442277886457745825628289978670386790071736299215505984151033575939700158790955090268308139600948238568247838907284052180647833322043788876716546848110735528105184804178530866720863037647173327717856809429642454905267168936591821242686861679076521689293812212811894254677067272086322736975926298555257573388721017193033550928966744366535319076452009811228110596461814701106692952700661596753799534768692328019538581555660926941986969916715651913306864879153577885888636953257290914579083249880581236394709165745510063685294830993270509743940424612908840182437844856529309198645928333397408945194300661481187770680637361263074157980877267951681512177904275136858032304635048622016795669604670693976949346796606916222694877471501906922019155888031923749481593139239571840930115209436400017067449492472326423840861767037929831488019159524289943303475645122922605167467747744134384092627830933700947006922165732325450967273853565680446003257861918059828815768253647419909050162386266508924131275059419822500141855784619563393694450505209398188829387154533267416636111924023450741310513675852092861393999727100422308996361247086412461111535077785749888079713707502465614342409853450171854930131706529322268937063193761273880850072843797947400456731057827705304265950862205975058483273540257232041585348706383529502242836754047811239042861118216559497626632953308442082733602605805357052717954202501276450648213678801647437059200179129289531866266058214787090943385191266164531955751961737610133100934999197043642327148873496866977700732147070954596496374936230310575739345832253197831683530452148403297587719968698494725071837808168765157337558187100022146007768640349382995067254569857534416415577382055028170037368678893238894103225907484967918565171372060361902174763563861913784353390409589832863498599504698014648314621214490387748871505013514468336384185225458741596443735140831297734754673760965510851842877262693529383188402669806595914358751849852120699816441794649604049708250506278514903300019278122215654817439445920643403176780645503253261428472925031944769000202697715128106548341742162733779144149032295270077181067256922226854442885309304853590338937402833080885362363893911726160264637937788806395075281236783840249385912358323490840347149332103380910105472817952998872302382495129380560957040550572725642286957404763662580060437110819700447501307881550981418647687351371672706175935468749586713629750718121570993531688244017350823869938291146927066159692360104751735125570079674233623655089179740181224367081271783142634039334744755221089562092757229485176442968382356427738761883025933045313298380355251636560417591365372505534404500143227673142274335255081328572428357765046703060784912614286249366259144860162351980260681472078479303850069916631031195155542559125463674413289311797628196115542771184334981768566895995805222227882889868605148678954298190275146129931171816673821021773497531248854580830095052886503646429042747597129809618002684000718270791655651030955924487153881248073880787234339369517653911529674247539827766533765104308463670873198285552966348429347762923933112650316679452505458694974538012240175976224309420985055727007226697572410421015831353254090765500832937054532680969268888011522755872009139337968599187352913986050692682569506178091346616321185324600417723246752283111311317735936936373166577260679275010606240669017682421303803505012733000854697888061172099795959269910321472035278005469971801238334729351375952993848124641916276489763097411388219743133376437624987045948523109485383559922326225083470602686502718638883517285987641337616861683103480136188658570193864184666754483497040167955063002002034743922989377075262218670212971331572924754815030344249450931191132382771686346992076801148716568480055963043689724818667262576259294019294183079385352588595457712482154346906703722070473272246171968500455692148405491730913509578020962035525332105919421157773386351095898312647038146966827324327838394438250668674789387091797081058408629135075384793267965240830082882456838463246208243718104667776943071000269069418009809353311311888669014403043633544841629541786269390465862237311569240061976039406420448539787500014106943360770251991593330513969781224631289983366719561581953561401136893357707314489783833228269891814576478944297470138713871325982620951684670440574792912987725225436080705067593419631067296636486765596126493768591548181489907388932100543113655818504095519770111503105738344075683489724862976270548428814857702635373153700882765016322953489862761006061458460337608147531496342590631769790929488738023523057923385664917835797115991770404282075757757259653564651281957718952586103655480166576990505052491119185305666505799423808445994522521825488667201863024268550501973444697797211844829853694405740446229080692041204204466728875791098333796062855338715781765684552028767667293550876164474010286081738287448755143222757371810996599851115194717678819715570357538341062488227542588096325850404792792308311068319296271779872974281903124947940423589553643692527054732623559946994528281296765979260282578342627517490917742210102733042791420288074546432148514046049949011030608290815744109311859609135122699187129412758450792870319190307963558060550101352509507293968679262274799896747785475206132815484314934088950900415347448439067320594828848339882813164170739106134134592979895051939975000035152373759577355663566293332673840590863929427492194834865302197480246109422293137738991925516491853197625647335312559284320314771472013108007752536314960984648701184060216191153806229172042154873352690700616902208656688974713875264819951802696831657299908028246214603675817303459353398415060095727040418904629668854195318476040809890008041827459742979834495779649507740984139022075042281393861283520619550569055086440772362187096546701114252976762546140046997577847323547031023721066579825572611514634161742579526209857718112614067190578670234593341218814118510287300220862256855251556545096269092572746312550703835630853438333844827742734837555829035592626911820249330841874208959185825053620730056369926143153942775729980043264181499211058187625879902978345668577372137864508987987985224560125074440031373879942383954696755516739194985784949802682466691558231197957735115015433394574902081644116067525370234233616042736614652856643768451385735768205034085092539352239689618386725791552410816878961323534322312420401240509107380344077904004482319372219081010585043632908361554313234607563434580343884416700166759187986314902017735936757717456733858816307541868880366728019248015751276733084682232097237322731834939330683462305754395735418692935824127805804883479279437471574756902668439946973863530560622981086086354729523569214148801533310551280463398797388949128236824211415562176758884070389999219108955861882966112062870855119121272617059138794389549611576042607829250389644896032546984585100195499613582978347051002221653147426096188301933775332034846064128519961403825384326533978107389248860403255569868629365630840047848314728686117070868462489095277522927247986651380171939977530798814890975917677055777423823066211085043081514719512331175503200077061219570950732127727563152555296062072648327778712704486178721362478949044975085298231447614685154046054833077214607097719391823182818174748147568328331188384926396878922104854636162178253132114648916778416665558748517970368785643746493702725904270943229404451044521389901342519918313143866413397964787542202206627457194201079920635039285813873607049216325308909670411164381947265289303896152978661852517024929237763214683514937265962630176507705449899448812529151246450007327872250648470106762032347238813006050134764225291465455754383494458125765148698592261571703714149462276026991770580460948511003749176978364269740386111323460212029843739754267163045688411036010172116057615734002988095201345037966237308969416603784785617884496322320753013555605033537636646129996738158825016543724239763846528000821307618821949569571492688484386679148000664131586113122120572260080829347121203601686576913535171679002951929071371271207951092224340785524934600463185198207595114903874571069799694021976550077167419423630016216419201956741770523403230032021587386277808379082744855108555698631389276171461951238242307260210205194261668938293979053252003475454544403382859109895583639089159721907302995062597734655522467186986164348944126630426212943524040958076649828891025414954360738000895686027413462792667185316245946785615128489172896707677303021704271546687693353781534817371651315930080189879366200166865540622302511030276090290496036168913055474862315052271715794654279464440040633450290741300033031188719336512555476843901714733046556304983478909095161273063389189533724314670248279206076783038741209382551391763665021728085370477976804530082114888423731425104353495177087948908612106479121992981659240478176245102395032877562283750619312422279680365833002506953559110456308738062317460730719200836166120643345114985598522910336005550942409078078231681062072990762547611394355828290421867442458226893291264930053008840101563704420911625955985038822757923181971887376496530418729539164724133297547347073144824143454913444781605059460692797591682377272143358645734639806389915870950305084453173355559058588275850375591014071902103398164099274824133235963478719943002401597887492907302736999482206780140123316073063354218377907214812528974013493132208589385422065155643187235190035694611507757044713179958539238552530793479957105810729465607386131819006056748116346105094731943268726289256904368777081641858863377784190516949036579850226182762735942137325551747198277389152253650403875184636778620975700070179467656882621785147166975592749523323599308585221142468904751654746732057069695726721174434645017294904025978262684187692710276978122979911501644581929889254829965158483696602309140976440829655988234673378415974465920740326719598739663135072959313046952121825417173420832995333514588194083521757054080960682894572480364895410701172804433017692198200463941186703166467231302183252264838985067765559823098506313712878821516136510905564134830039810487686077760020100269348549279518398981887709040116217826728225330283866262759210190720058574169428124353279879764591844598014615361579597089765256359770752460763755323228900052192488311828892775125350457422621139579949159311565243015853665080811423982536212425842680144378718085129949209432930752025634160879438205229302932619265775824091074693363143608476113762506926193107822601593379087203736467200339119937412759650869355865520958311719982840420510814735665904138288753309631332385298750225229253607604187429403856044001560802674049779730178775532579664798817792918060664058568376676927966476761368216910110336869246527752060337077216501828949609567721403706550143879143045590887234492331431624741472375309127773003096516084054277566288176684382758323683824453943006758042580460312320982744334739517906479578750329882795337700517962602302012844428293894800984424751454286457734642212052682139998774128544386459237287362923270139467062269384122191567329171286410877480903628825289445522132382426740380445773940334230319771753177902675281684512109119152791984931768253927170204008867009377799020468020793521256663893493400245970005686385686099863161738821773201883217376956074593596566862375995753537689721121216600248355088315924904957439978325611129185256295067364392211159157958097978620328635415778455075712479698131340623576324015158267207243199576940073158238546764162007445588454026841779129998242548784018049801931412082191915331412255737467700383362929482795965403388186875271848098423804537641682219795709114707462440016581667564436646851149102407850528959874779284280184548912340344149147077901387818511254083406963371808126048494957557425866997330806154968127525045208710982855646170016726831248545107583302645699365825211993882879982187336199717974631420051910626457752557929737238364154965900436208565676019804349748586233046866430522929655246869967835626792578451563637323281111503675655154427395094845565880025143204320686431280383673937056754633610532830000130819461857932598759002550931850459832442030797968336067538918434978659635275846383201377628973667674264977726216389406641696488519866124806429464431356995758179898215131703174778715769626725439388316726360804954808732573298612082921827420013060406362619432727879155995834666760859721037512268884229136697559558654087845691386630643743744910841924939044093733956233771163357947165726549197892180030543757678972977045794820650765917846740702185191654010076002118238618457146379882702159866877281524335811540033828520066301365817732317886814851717647375568986764772285955168120961738120551535046221630192911573130239878146542991584739096010038760271439471695748175150219630566404221528040556751507701508045586128981835356848548030091684323392520876589707491405375480873966334022558152134548259381360194705607730538724366142762837791211428045302044254683219011713484317230265172198075148493987152282166495423351351358853526793056235757383212092019454475449819704763421827467225345394186538336021333005234193589918882743793937485474833261066414635538697010062544950392061437072354904477951642124366976858159700532380533093843054225760216225861964115223238416241526326409272204644032139702766243055142001424007115522332786043887569592290601259504332495641563344548645661213401492653497753342711601475988523454424626259551795211973397771433231353481612450768628916576920304829955983964387589336968665522168831396078315403743089195649035017708546206860160335588020978190831785035519887320899139004302855820026127215070360827941824065613136497609514750832699402597375140673958873943756175028645136854218511246556180351100154521870779576156882150628833361729990894204070349465251101723701946398881018009569800827858800915433251911088097253072141843441119003934927571374866535609183708385479073190700184157269796027739205129776924935832260099586654829920765955711567632586345335243485035421607867220281041583764378094872875219363519184573962084217328064708090308302466149108678914258127832064556633155090534104621687677010985522816223361565822605688149951288230073424433735495106922109341428094284166229035650946208676119599512986082133562163957497423055391794628433694573172514738945411899404151518316256669132015115412547856136246140042236250712980425803002360660155192687216482902831935519399733874706675743507736608630205379128044309744167053893892763776526811128237813047215910913757731866004062284346271994044503955238158383952121048737801490526894700543846511876987379852468011556636838935885860799852581707387892106396082356456142862574702080872878409874027700603882509061449488552083890677427172378707757557510822389329957248110585950251532363852054767139585362485755059120140782487174866195056232173809569854536113301523331194351715270488650382929896211669859316039269253145733618626484398846312605182936150301459941346658465156259543581821594740425139667068319227337858893258573099271360708158251729603966936568196169921216184689526939432708885360447670360818175923775848014068832201188886461044979392716308130798950244103808588391448071495268555561713878720468941431636349200303204724874163098408676393364734627331062528278372440897581451029357344868952576020961384178667528793405739588670169021099725805643749862814222950391871871132928725707842445784309654793579407617253284448249675368248175186303172868820358449764649881834038409915443779078160361335518256216317876215736509082749975363271783031122542254919836644136488499936914446192449012197556372798322464079610723596048879995373546109936984732626022263682863505354265012780728935625714985361279956177574706404743562313655490689184465001553026397750604228891132878176896742908272413497631524785903714366076051203455706642018990656224505362674653029948830102685769369320973233693985182650623778575991870059203443314125174020085026284020339200117713759446155493800873918182659188706843339820443146647675447598285754805133451929148266535858319991078051486230113313263859910496230854417079097495050718248623806989009872478381789992686947579676547941540954016520358438047106627594644957717689464998329115572857953008247736349364993813365092619630447270518967601879894031588425811104565268412565221424473037472752534738953935038069579810656831690238848139515091245971756867216322342925996331682692533448258572453014395852008802053099457997648410298528063583744834626736077926726656365276520054537264603930910430170482872617676836381376849356348974353250039801287221458321704943941903371123251323969469260053485739207715782401010865783194839161757489006422067818313635893765728590949757310564397437675757786461204730076329574362409151252814287073720301861253993617266968386380720757531683514819612530771322982717728620864884342649222515383805614974159475170249860701184348507959292655299119481266115215415239736132084784092059030795967158843918979530206422326775950962532056355775472098441503355905957412950029287031578204574099648741858600598669919689710537968960998175712908408543392321443939594959432388671811075478860908303503555426595280121865202480254898314312533356772098593538439958361749942652955819597077976402718060225780305538933851968901304763982422611845246039786729791458542574596756061990383203853210491548901399994947689017223080003629831055490818825936717598376914943891099351763630580202190090048816327059459491098037795701484505729729174983488409067753024073419801647521277101561947850049486872885722525818636711077941969667708459735363344260328283430270473626994113247635283540353180203940820585355117198443168948322770413653029679203321919399307337810037453652562737672103512776209807536261508378751353641712257322268219600845647159391579561894303963283685106832954007365904037158750275685522239566305931598814793373633258729690086674685007710851405235604757840102638101679964063394858563707438027420435730438628373468088445063711180883527919004353309193917487541205899084671630613290043374348486563415769212046866165701029110605666557622798367782113009970382614152298643059926592063966704829086786863096212847272173639613308518124216384395033522399282539497574155851865093951268086835288087803258046457700444202775014758455030217880724976546982267875922882812726308240007671116589411947804129149240604036070601491317553606221426989096960641414643628634923167255351395062689061610021430744439577956322511214389009816928983853881528893228624203256640346134206145407111559908209397063862624837835773382215656271284172580318629950150771627413619007215280944001245090938036661999125156807675403324173998229156343159740995710980215478868171701478417185799325905699036125924861033608062293692412692313601642323801661819422407513940958857782924280931170524547793790038345502300162606533632347831954649503960300834621150467181175685491120584485149437126665895631829634073763560106093902093843690062519089410723036919560646697477230063751083888710088530446519293995581205098763356774651321113560184594429743632300276438215924823661524325582927525799047388627009139962492510068752300363008324573230847431227397297181265503796624821689895012041150142163015148897333577054721744519279407800620703089432354441911476807915319350752006349798272055876892294494867368772932552494722424511170980224473759672955691495605729445879195264645621634563650003670140017425775900674777335595380476239720410572083780043492475444344832136105798824858690598359962110770703021935822369641483220678683066253086600503584883893784762499007746634358236934562653034675419023817429893314245416390226194376224474242453343517598306552769699027559931412586121614102598810936018725780361491126782692722244166898662002564266410471840680801410850648787503134628198909050829625675318281029275447153371192620090924604548577064712741520034142949256952889440110511860497113883012845294738632397733531253934649514613710818517989556367079436363632704088500641922339026491195274267863649368791232566713636355184042771535611800848210843506810440014667477646413465383758798562280382074382403442039956617542714889374409668924209867530096387178375077455866148274029925176649603464906935178035646810141008818618528139876888508656776916491436664254220462332243734568740809213143211254246008133915871200930631550070861231123868083687619291959240830295331019293013763706096769550865061020425329097230659276484424545646787401995809259743070574099381614688011519067232629097396161648364838765905193976702927694440732050978535278856389717512851849921637456501074146592397340193800033773189445727235541175205394413714360097773304823962506105158099357255347333507418317999435437347482393868541780889364085820722107553122793658945837782265779400909807094829135922547955121697407309191471203169789469845663632148880482471816185849619672085397313412393291074664736485900721969400485637895721192604316550925221623434829118357386317415723193684769064766867169352665080807404898208776102973568023774501375930955309832346775485524997788782812437297714051888083011087975263804469881936406426288140653132611703931341310801613700183500764036246364755141595105354673358668259385162763633901468150718191696225419913180116622283494262450754296980839255117727379669354879424235693727144021117656638948680048536915722826076753529835855931319120232023000920793338808773541577258229640657169874835724022687864636958297297446394808659874568453143251809120159224021167292236792712575418905644227234583386992274210172130173685581729668903316146686127842385992628797209204132851727137539449705846986511574741717992598060792711105702276117354380702088414257475496285044301252741404209541208364067038231501666698323588800109855724976253694506859596718588720726316090766404230811787566170600802078104544734697459695629695063835512461634257855284151925304285028344682902071386068291942020879903926280919581432872748170595219795541388121686315251960996505415142901530778678108585801663997263955124350363646095783155462531981244408661565837858327633838502901432629812416033422665839763346143698019763162957109846593321258164075768380526887580724660188315323527149259070643351021180974883633265598585957726957044864974334452671059678993959949759349735184626761041777514516425265238309651511713104759810660491752155795167807503985870126447128972390461043016608460727364678536181804425173918578240050408369120285649510305211782290164187080398265739963396113739521061596410647227879791675541933158295024495259693149600115117160818692427813249037789742057745372393488859160800034502988852243034924349980223722457959480839560674830983870698251753862305443546971138395716676050177251050928702858069306139131564104122324137226358311674482163993378606731255804899357960590908750668771044595076132086001504259761635823395310323775440802635078932042196996267393747809519738592073343084008993042044423972988783226162956031754479539254807036813593193227022887584284349080422683452729868981825123429054869174715374122379793825191263837563279060744640808941950916736694763964238972371731121285522422410376692149876219613051162566146815477958042992220639417162631545223573576140959217685267024198865109617310115893368867947069288055530586376738299005689940442876911026783244683998486042664018224355253933125585232429335086064816741053579430841628073078170133942351172352895133024998200854341219311061122629355593532474980448320548316887096041921665213116831965704087748601182360364258771199511083069421703001177165576633576837976244391178757331671564109423311333980190932963219837037324154022288559318234440389184233899241206800588083720814383966395281258938741459332655099820816386198488969083530283497344159663800526763030189181489591222928288970023760480483799137839074282739713824836894880646348538979339090537891303794968607716938398204192502056320346153857634790240050571222031608997365321521788223453715919059924209405217554842560192722987024224616338409473436354219248173557405970299658545724173375303895002680387860511600629997401093172890701348491778663423539053823393189944482476686920995641880581580663470135171254308197630486527053307778788734453748151812632026808223335002833716667246430131285546416272941606436434033091615332693170744205663024313187295399151805183093716131170499597796591616335054301780800314359676204307005577840592413764745449660377484689363441508946973693398998739468669157585601708524311697980200086477829344183246740879799094936753283812930283327092008150500867597945820352246379683038172696345133422401759221549352898576216070170804089852664426249425366895314416497201151391658368014650716153867124505693061114989728640577762049227068445397534404682133695955721607993505117006957116392660284948736114880485621702219658742756028743660059188093335299070861874832461171854897264613523507235484592542463757013259351495638995235166253484384627385911033949824272892599087529934818411119484954832082427603653250037168042289916944375106867900100460247517181565502164815312713463651030325995962175966649282858977990904885755701650345278457657340801395061650880050423306459146450942390172747332434622920592692355148435192748207860980292021019767509313247091517269864748626659723831161891325244529577951370748001330187692172618821038059139453069514962249944115343092476091426038591963411166161397920723023673947128219982542803482023683348956003486807996022767864073183030664150316557330405326069988557751240565560030359440004278638470605902051552623235589776258595437198109341366080742604958963141391828112503796920768150124139749802947434435674929742861547369210362675437055312727138337877477499492577433246471208503786194327179180467272840371625643489696667164257208172025756282975080178149515885047113267018327648052235802149588640326618193104474936583122094149057823891939972431941204048311753319205763748598074925359907230104975387867844157752933787958408870076308075842208360684211544116378511387892530503816024311979004972675498572786687558930832693887840225772027021107113913218780938687934645371561501858400536390019188265467490022625756574919211339814159833455631934858659767472204479772301537889525861422394733052644624675737464479113206397667214396336230323823151295271919463032843935933599965610381907329222935362481935794134324335925580711194203434802940164569385943993815193406672998569317741447702852786455168495395563907844140081398164142570461824705775359569573260603164868318739637832091882210341171672129022857021471703536862239976933107694810077140739911115867257114454863511275909312607992882453016094820459840110128982495442324873055847372802258468263501492972929402900842844160911917826286266232905765099184898370626543567535211417825689080783210506184300885547610493656637029824897227118010860498361430767902364604395624508121264647047700670540632244530810011445057185000477993061578070206852902523938293818463603499729793695741772992538673625434032177757946020492131304404869458502123765045694484765025173285223209672829295563726616457105340477503747753080631050764639873766202278958028767636204404657595782304846127594286852907341957521672396950327942329487383936382516589804112932057744678049264296353328674268241372317087519660832250414934510770543580517404132996746230093320844897939960045674691850391339660421075934005584042840837742914276423722307435744973212263709403407071804232780224942530773564288798415368427567874229951464272138479229761023310666540209527550715348140333067364430892139108393099841075848262368930094808830261942467607620087429028695535704527027704672874085459879953475284690765249708606467623402903029682040523941345017468857621314818041731749032434180713527074115439730280401962529060906355886064046335220908752069708049800563673682017500794607454698978505980641535399756087602691797789398137204278394207166034204163806514563447415325804127142108289834949155686762850542174691861450474580294917946440086747564088755724293340593190784029090863161214638865916715808999116906169638007051524293413161118913187772765570671084687403846075723750267397870008107967365882173229528153769485345005879077280914041678581534180425097852800768709680432200027878322696848926132198826778898122176026892152812067298458708347285974888230410525068200277526759432335159074224698899661647179932239797194362896115784529568583709320498895567023776546863138589521931889639725106564234602436493251584804877899263713696594769657694663384117241373713197607724733747847722334600754217636937635741265684291154382181211402970410737739474530299790952167472016101476419616009775673136717683426450690010318449642263023296063554077152773180656122699100517045147917276153974524522238642464107090130168108563513238380273226672751729183197387469209534050431285159259552300855057143553853640126345134591071478623896687283939999950368459914760424470074799087776395039659521549825259672321018641441950737983318910263614269149855286007900136531884526729577115576114284320593264142009378725616562018030472321529807773978467408237484799390405457918006555412157004475649932209715286264583032889215020322274844406852441450533823906101305956257006456799078970645828106801933558712833452112504250042526070220671632989327543500091090562264337310959524934117288503595393656055368068458705399662324905375156413279622804155320727678094302782172308193418685452868306456608772543807892930541059693553188259337451305640423564735399242089089930167503037896808701994121837182159845800599471704125928210340238324646682202751512470083553929736766313541845336882602317997735395052333014477082924431333322532662680586302979946679510415402025637255138431716865113113037574700110343041291178937707393645569335280976097672560463092302298158463256747018734784868330916013736032718446538145477310862697355640050772488307115808399671274512808648665510774094218330610939013254195221491332835595148174990845762001189788767959622234457197054282219601842871160687549868960431178967166605198119348850726146913778047598483083706257147136839041298095393833699242060410202650018466825435260727624620286875933128174917685901913500097632205272362783727676507192070499255344254750693499041513951452355345892017070995166644840846635385335690687138132453734569901907443021055356413021734694676295338384828248316388326197309003662507944225675743070900764955302325715517643109272803295802863425616281477082527683572782674737328793982596537042336926318432829443526550855770864134211443058955880069626704402652354916717873988382287349831485617791387893434718593273115064493713396592075170146101499634940352096715137857535770803361383024572726526181151724186557180920890584768507447215254275278258026636840637932656802047415620191954100348844686705086929791196022129465762762768090719695208851132590119618795101808081511285501052539941854537527580630679297599685833423306414799215551624352839257885721826712529728280065281042642430000158088801208831645076064169005788292497977745995831244154817051850534462008026220572818588310285088051313885470678165206205528094289877321329066241638935771830715417912950282245581157359414919062403297103996540327501393575652273399511500865729098936321429196997175368206355721597963194426553880763528918326041853506425359628750345281973567630950807874451129694364580658566103392231755629229421454834901359683496859259604488796185244142341465156880565322114095020543617191327318998699669047223445143073642920228617067220176270772617028065447653414122036566167079791394111725199729915123933473712986127986471345938676599155290359699043959800048181304996553579547523014732071235668469052726461810746676309674768557937875881100402270661209427213479939474216766036903118417095445586857024643478978386258038297941966629994197201398673983240712774728592417405814767030524876747788701661752077146302190794463675583822132780442383270659529116621830230793181064211202573566476404665095610359743285841261845805710009032568807526586301628994997952897298213094277856366927614446896231532621013208883313153819695701080744611774126304546050860834353476811566403509910872191836998457881376592827679417859674016853172829935961423479676414495314701017034141997991492237235205173044657092195879248137896085401915636228875652497419356823391684122917664817878684473370450713617233876585683599692887782211482943328022959516008717827625761318744424370272412402282157042447240948912588475449154752311637689925308614704482617573061569795824735824450827814844143189346558761242944037361418009368306588363137858930403918556815039720226175831789181482659473547072268429648458392479708738946714212717330344855973864641165295984115537539754437892037480769551482329850332448887302479804207072667444376656308930554660722716212492030417010352626825156311998385630586939000282550287611153829039478028499242141719578390125820147056039087342518667474115548683183038789032549376467235349167935839666547570865970767215544378302944499616220936295494204959361133995608547136236130543503009995579878820230428492141987331075207513753007947161967521478559988139667134719465857187508102799322256378252902902752602402818610709418181313080262569347196194014049491802751721745529223538868206664959237919776896494065549742646223227937039509374289366059250904738334918657495165126138210716715368953320222919701152600621734358288526901346090878480181566684682639982976950020980729652718093677685746119778631151058027684577993442691892837233646442172345261368080122874242342950550746436282980551097318184094229509301904226508485117272291888283609797698606155718100475516061780080858837552835535565443000704774671095246847066594237770023010474245264965790246151248695668230751368862036485611471723845724427678824718316629434503053131245885604816071713598930032769672558037267250985373091997387438952520011142186076395378046018342825671925565682255079436064965558942865251257406748502985292575502243673013665077480279294847654463066661676955294781691183260865309153781432417551327585741180615385319811645958870710882066484574137355204384581468339132184026610312529688746051334222365866360973017349590601846389339633570147970178629766109158318830973971288298040393240378896348462788528000610451530731348854542457562560614423588562729473458485879226394735374696864717522877215159492914684278118302818913970125535607312856212280694416235454550308674860572865455218675709242851434022271984890874607230543899087530853465174905405044246896656527829543118449673784010329549457410897132738173775162573503827791812150824816425629224995274476486328888862891127690298437210924578620415993170137932145397119933998106990648932225085867503967074335732264470193699207483483920195646958843101451951806999248858725842009841523655985421888215479425389178613970339096264250446085238032221530333026710824531616510840297161365088670168486348341991049869169165799542799852182417760162371400239925005393319300322992956383283029711922270667207300845517385882128068238975334719782485853404844146201240309717248557438740360151388627717035215858866462455989909227361794078916506339350829919896139965918487300646297248357544031370819996244484672509467938095137375771285492236822289034359737570366296735449998188142459706813088491893315910750221022146488695742550649056211375349754937371815870229813348007853692356046832276150842932657507861749858283132818077988147697940591278971621731197222391799226199841426111107462652649774708656174454816203738111768942362818694798115362939094807614003338976716483339656544716366788377372153899536775861608745432178462826502760623132114052031615325862553121546738680759212686069211784237248072598891346814839483379677548498661115310818725410822878078477673207913649364983702348607090173383353540064873650013536520870894991201324400374522530419424440661173692799672859653223327198645363701052700700368656459462978458079799795234320613886617610383415019347310783986531568708665865434123740986016981956677035160070949189680649185271679536551308869271795152880600362865522734440206941153100346459923459154270458158627710963922803769877739070547481249043239824801211996003351716836583613096056397899048289082966408041027136832686306958891849206097503991604977103017857298807442900710610961475715350196417713907111088901689214907053847077732182964220238685983124373411583463491367645780604795596092565315111561481081800974422100332248343230902330896083713151214545329799016855812784731424345253288552066560383228631530971224454150781737988410172542302189852811427052294321714353007752294144322907603089403280009293372971172147401823572553831712529328113405868428966000910971556685386763596139982796416970724054038373516304577429807130695285327812467455074046050255491821941867016495902050423696766102419038449162033013401818452710363737451094828207486749198481366160988754929347424546545193397278580891868039551237697090065517097453559123123107103673959705564444375361637545046646310108745006261900698037838019627559731951486711545652603737770934719090681573795302019796026996493392847632796210498655889503865736030089509651324075240490572798378263705403832957682154518939061127251124700810315736837311663083203784298608215802894605659443892209829039872146751248995615111340383772912756462109681598253305073638619172586044150352421550722629930781660732471005743611604970894263529655974648919358931698527014782952126318648173695520664044513107695226319685248128477326934353593203202177686138254569059722350501781610378008776750453587267776351897021838415585540149899966297898273146817682269984237939622890971934071339085176828205974943554121595053302061419531772551991338247336403113793251577105314850829865550532523179125195583326543991589746882648762159530935733618011563298516747683769247684603601960763227261438847257577177086658301960305140162720298814782900899795777792880781714606159110622452744400190234792814748953632317004591686405608722094417937288421033020830187470688213914201680950419405905635207009724875745063782578251097405525027949040149468786602110952644225873965425997233309685778347146431896101503787237687483135227622685047842560018630813031917818680441383429944298575383521253749946295452939405350698139591493658045392696250932153897168255068412224476187516858122198115484541213961044404659816026988150589229899097032311569852414568199463418971424402479049811567116009593791998680423681972987752586597179985729734089558773903518830535550032241023462482537386363642505027545227915524515204525002009129519082099082266208609540035577092043342516038561033223455796096353259766562667512597795031328382705288998435944480947500833593412330165466319465731307670734155813626949423729139033164394441219620479480015183969813430591519047163859018631741428379117056274427889216585769122895590994080615585718402801285198667193375848141452969595788104227173552175072825872186895425809287086938459494692491235944120314471246477642725255126530838517275492900831234434141476865245923706307375254838159697025441893647120192465926217644626169886146463885399623187038673591700712895275393444625894493275815439520341627778433298384802088186446902760875844899001554593142272777500295427788820877845248719469235655991480245943374746425618286916076061202791627559003835491955987540176963569049662042741389198358684102840671420394061558754071647061803471099203221988013148736699519828148976669665587297200860124393364175887028599147172580903992773918200874061453835666298786776132837362618007326128100542755783873913537450308132696458275770160121852684255176224129220005036328315697417421670836594037264266626976262393736555325038078752733812870936941532874811200641924111368472428832336820472912762021341316859008673158929313852631953402425490401284774304866292967276940714543426399687128393938829602244516640662112184595170856272797634085944387370147908549994592321134041155050925783713903878494929402866606253384284700118946445515070316053527089008935998804892238371722023936463445886923413503003677386473372824000243789223451558520126487990208787726485590946067284133224691366210573411959326101171632587940367553078666498029439696501112563759472436853364812790480588788931937305854034880941090799084142546073102538638570316218481598071899124004245878364902091666786535550948477517286878378106775298746128891662223959696890068122955348660721028611017027500439712935584775224708217930427128969062569848939526597713261318555566201515052857427525968176977510566079124156391379487788952096136196394152111501346880857254375668181499867162243352552624927911763250538612988653958894396466238605564905891789922766912140831167995447096375040452470825675561567970783677381682491351019485484287690229391461127272701679498501197369766005324416072750324843830640796495293751333477530070643258493227509222649599314835770249804062499782958700578497696028287125637160638656859131350718510549851657429213718995903100014525284475968788674001992972843059488822797456981903634776356449354730144985195712373974952444455372322440645526775117738064696601119405830501802318469987321576261688690509236319544838514423309587396374266285973461041726866705276039740378953814440487254387389877308435953170819932298283160988190276614763559433614875920245232924937345396646429136905723050576575174599609000869690792618887065192850762797845321274855550573444033835261581036671546970894778419351312809194800300241499555659978661309753931774982645416255551841819495640944403614588141999731157177064553546347035352669995694906395837823546273994609073424563989543164423329759261913828265916680368885481726686194495069724163415725866998666239926885302405050903532627389795001004053079416712242741160791652610295762847374726907195462257075273058405672304443969754409482421471438147871465530257967322983722624746339074974424149905670882580017119736653892797993524208611975251325414957641830654363117910681606352939426624552719618904751361333239051154179608575974311689438310631183184843621344054061971302223803534753177321859587749086436995732844140243615485438559706379261682307402504427592441611735650766681206186543124363631919789214303024646079718846341993039447367308479432206594373136733295824018148343066866538204917738244901625557844023865619169639880815953367375390976424175203677626955709015839280087169760653976527896669358577536458730489210003025601893117823318570049116848986955085276499329955103248269600086582835482469021467822543553802722387901590169423058087836992802807189674983886123847119253027686085380391522663132460239943522087044605821325691923973435825689299704189820895812967627677505511177333242704925932796550172914971477674507885801733838740295010628213661282429231378393674242321458663310671038949901450878199215996471209354670492319727791473732385670435717892718671555093845878311981588927564927723953651671373680803382896441537461386613855318104902135021639622646700448665860859140315270727767800877088516512824766517527213493746160162839253613410026255642472027322928936873885791259735237365066860529359583888236779733493202976717009035118802543920515337163479510009035356065029715830231397408077126742207627175825003972874792884481337305071058655250622242803387066344480444426774034257268590846088304959568655759981908023604037682269815137758135207517822704571599231022508081661473668225757568829750044260335662075664145840315636049320699763846558434086457234491775309919051556845577739921366408769635202315266554556714997142031532456776511221975716318419747386424404943531340151015399666572282093898067341171032793251000571776715329983406058752330070753378869244014987779975580346976899938208222065076420319832421955240096846820503004725916685163902687090611947119361339897164609045066954182621561689737069810921086326202752742733475818745556835625190894405537241081115404109359419208191764026908822576688578598938249177873173395653712083092859014866046009620769251925104791133286029667411492702958570267044691728103847322538074941949427238650071502466197242751822933675240506190331362756653076372359230268905772565502661522451698765056882751343864415008445914872952967132668653201360974371823883952243327956175865252221528100185535818708161240226926859416432571126876277606802189999594372684127021167189770660197965357126514627078952058182713001128328477491561753184930339912149659560903313725250093811487999046521370402189330299798004145265540051510123389617260437975789980692251471007436734117653366201535577245221451594562843504851277946286919537973102535006412135060897639266026097591395017948852431682971759422026015588125737895286769595010801396464300370217173144027438835668399768832214118390123924645261795935900850677238754460921670162413439800038171462808879613626234102240626750224877266870015194342850767253458981446303024970219522140499596242841656090231719465723064983062325466191796024791340874228219646796547382450939414990762837937294409742223750259661341194589541496123582793924020799995253858173685462820428594335902439281555049954705109399728809000801793593546003346202443248091627603958260355883812660538039487569738350146656216159451357599335982949928785195482551074453070763007667978914236014265484446637864614879076715976889772792001929139067861927275867672262405036311267199750182069167148816539329283209992307492283234677611217710292354774747476909454213018123389562420425401912760008861706124169779341493695384531317802060461128066346517217433385854895891295773191134108514694926590311665392649412464908564024378537053832457753114843969875397610947179097723467604759616990919176258574681000626095852727736905395371610919383589018411158222383717054052848280092053964099487655020301287485959532296973943494779333390008544365987997684901995255181099618069047212128190869709604588734581537563980255817727456604941170721859064175062565296646461377751771088259063496260871239125810225645044778384252727961501845172746312473949652550707676786966109570735947394331479698919624173890919919605003514153568179494445875976369805778768455252973058273201153086414104326109450155974972921304001251967169627731099516420739835547544749485316297754847886134154071799934723490208326512392765688586590372185260224692754385310273508178398317644736784371910268139677024972076478019325827394441062102416005091650009635981859837895419489747937434606602613889838980521709942258383872185863379306817254443288837468097087499010935994920313093690550460867123885776980136363453456061461378196792592312508420899931536291036283791834237722993551243439669625156204822820324347638608642133443553966329903626695712726386929307233732376837888191506413854515127865408587061868055547413323278266915545024561528395497192596914921695635302243501695539657572046482419668255362070786838668888398384183073578545646391767638954515242891748425800600147040127792237220175288350594448622974347663461810942779866699667674853931162039232274384736908882586833258955301485618751538497714998247511658062287331547295748425315912418319043375119682207773878100925207435357053128885484549491290099783605011575550002877134122793076043836747782584401813816931700882289159617385848758801032193172465225227954101808850602644197439529147213684235739563354545392243986756276285043908272851539473044177225298944750316471719241113911125920791945895128524601165322443136735604877783879663244451897958963827724991113976640089355779721781481028110847970469186038303404370385822102283606321312206737834442034229328804324515652068122506508465265508193191686280341682507443554493110660406894502957885486476309752818323662620456395631124686244290600649220926199128500184997172158798726993794276724898457373748680164406774792420217751228122408566029057340744409951602947332285866060213722442048497183443119682804348700081387523798757831021221163778077008464119477067089654475825663053190788602061336998735734921178410882850964232378708407977920059927300534456800953291118160828390220866200708633747728611047710414884618250795754080241918615295631927749776632054614679960401183385595430845821783040224576840445380077052908346832405957017052400976958148813329563670177730206683386300584681818705468962775110230548950710219789446440969171925131654392587054407720859876056182617532557499543826943261739232542647350323307240667831034360403075165057863413814265406119797332144032073807115063310166872551735092401991385730242641411840172734303786863529809025956269377178226359955088472029954737650770757033059063495271111691617460449858304752222270286875803305043610006143729203793604904966797091414319779319842004791332883597346102760812762106557945922220482610408561281216541021666212328161860159643132791126198827331447989473526259192808130973515402763454588456629876152400890401710330009092886987527699680206957358325607662269341940529147841011095889129594246358816682693907959848487272350560043077664154101652360127851977736106714192117951122915216840991985205326709478050625666849329451660403564554192983757482228502724769411278168019383086838792137419023901920636181607223892731845857334891184923326991554637395492243704949506701993255115455301597608830434063120778354891195586067160834038133676046213089636763757849454688217235352847008094220001356710431678444927282719546505514367479086828773425181073637820048248116502004235655703876930140550164836140238508321682857315259614441134411956650048785012149282940340611761004214329334849609819705131831057505826068428743100897714035730050498739965505982391482168405179178962977790261542560705721952352883650093954038193343976264433687238392397604951055538257352722315639032446184962890668186887526227105542914429514627310886880659778233995855332282624698713978366172063677021033201111514125117462741577367810013459356511577474787989482482848481158112063188934750477767773905191760558492648115210768807176630528409346204373739327106113551219439671681616903477238687048346845379128233243559269867363227874945148694328146951219899225509705947608153399735300446975725742736845819498266814768706217696851359903296225744208728885942694206022629385576776383115814323831864476434630362081310363000794706864318458382267070186008274692046951682270342213824449643184348518780100430970251905891683379201120079093414392060385374958497700165863187105556182173721929700531586305245740185687216804399174190977302132832522031562653791200679235515578590874088799516365977957349443614058439576446904695262713575401187659503630268886152220500752739596458414672258352971688356631325842553053898724996753727179920108652166431318441917289128704874680055118467042752916039206623561397275687807677595119872268688611145402178539459982921612991535424730179407900157363569111854783080997675489602468876406443331670324192608561276346339754690232318027363017101883776460593180295562217295702270876352447115692994106224249267543368878264825265692655873281646059450781725586853020949139552187396908576731933753140092054361164482106098055810779978912431180083536518108515130139568521873485488323560287909995954558015367659652971105647414640456248747299134851730139462123289711646192049765382030671682247057906672104879100478919423884613425826708072252779412324473524923210623487240574688873585885834963060107265169342277950224208903071134976173716548413795169767524377029612748935072755897710925909323355306204034425847229535293037410182749070439230260276442953715767632340777391121141657151037316105321248689663234208602143614737330550159628939315878883031856067833590389538444517043306092371119302510068071698132441962288205265408150593864123297310881765900193033239640245071598501233334694985171447722779550968918583403808662725518953918143119866610747288295947886939199776173570788317030258274151556674665715081104567204787832031230787299000164032418767342592511168818585214442783650266564715107153508893666765880578810574268971775045553543590107502492155872590758316745126212961050553688319611920612514227595519451645650053475899775598953732315213602204967969038910488219283073057480296812147882837957998395582059589765001693820330372884761848895456486108364797866713127589043166010840597471410015788825465554497165994709794144899898113914162032315955618310729161376670584415623405026127027602856308070146466999013516696127907432531550331016593349500121311755580562633827735745608662970650498475856974348170216166462758485898261931236052226546675943260671435652915490580178809005782191063889773861992740871411811426405612609231136137340054996163682075262302460340100656215227442009733232934401230017587933390616178167334806113184182105027188630133204802956700095796892138736205113247705906507434540698620126809935249097201331664150034491835177267234320251026390151146495164027153273692643611616084844765515139832097342244394486944972045062855281254425527147856747232838072500405550335511005372626529735880485644217820418482595870789123866342027279555402286937827211129989383032821598132535053019819252222027453167571179376499771501964111164048700400229075240915149016140520539726994358913808396379023544535403369823505080603342455289678468198513770323010246532106998031585523952435077546465093317138895874057901380885057843821323996995043649796493984644272245016993911346435716394929580984414333990861792363245781955956268782867133616586145911079693439874139231567274057316738451853985625850801023877081845768217718509021704646022334836800804029225502429018544455386554623621669249914185303784633471079672973787350811454809072260270247850144630366717781312112142012335577893233376706130104189971256829683249147766551765254971369017067726507044189678016287585571221873395574711320845969811742189984046688104030604567360144229319290810300421410675010675068777329276177437751098006942854626098190937800792871034590044198360905071115635497444260904141956049598791874184170901419003256166849334253677984154835379528645192052978407190162218166064237813541113820566943347878234846665470572131432797325263873500608649407143551455949976563145054931246509574630808112151989757094614611884786989613708769025382297618584653741475425755242203353552611988492168284650159610793912462467903443973918864914428235038413479119133844811348319943381241651526337358205310134428133193439882807935822724629824922836055130165403968112165803316141790553066723840725075374804856647733447491865735201365439984042875727957912160480379326110942829960847893175660830647338162463553100815048473067257938975980240867117152234873573151962066896991329363827844605019566207948247412760130682483964581989310659910708559050342873045056544078381422893498317251514371245895129590717847058155673474731403295522381935427870577853092372462084244121926264184844523037261322580878075774309124938415691775560093052683677632525622563773190787574730784417359374843458055723106161064875321654477609977594398339677142422710348941312883686057285940783917215578215091545157884449456484653132297050197473953528619108689317476071482513356160844721296252343752945481418850653035811609957862001087212361435843939808443028688126013962758725954641813026746674506570298732407630515445112189309127415940887405866887884679269598652796522292722008140644339441256106065339783969030170869649735223682870290796388184374235712561282975398196846663894864040727948495340862891905168191493452282236270104116310001910205308715426741230112560941444100723194342174050244620491901133621209908949050717929992686928733168298911457217398494106306617924789523077578545569337129921775897447597725683155670261417722043679092987498134797343098151474802146558709643895711309690195037289086420332250327495895713089698189604604600966091949816070690563702396366263915499156797602850604893914042273307603150789543165505251810974594536750036816112054522710295867587600073468251215736503874266019282755539412760856075348810628851875008302985665080642040486883873988482015150751802489907207193239489628977744751458839463539321089937008259037137401705606227750338202057322120883377654718354585071396954627014056163804516015703636996755163555924076247814636051016965993542092515440201337865579153823014885584598628069542709466255982672983224732496302567846026692877270890339455864934609864273924174301125759743909874795402810736620608381661928388942606647947619109084278466431262980901629608313608210577583168989626404187751714286216864155518459052342647486128201489418995453233542703963360343118987621554808039650372884405378355273788218565175057707775679357994912131311265337236616488330573582322940475430227751278185799311431377008636330680553856830731787126920089145521681715661811135620366121482033847173558031073611223318571467212484001570012480901544387992614567262821499837725750679216350634979487978052510973666891834291500320410417768156326245360765236099431521278115178828418131267915016913310514534856937040084162145821931674889171911690228268658570523271158215801689425848977409565688270740705002422807951871603634585995377926387765944446573523864292487204690660175057273374137491513190532730705297945375511922340073950284300997167147673485604121997528628783787947730425256738921642389001376636660981742477782626635197259714318322900722593273321572604947123506997191015437586632782035239120641628987027653527990317587790581063293534703913253081867358579520421613852692346791938864127924614884272749012436589517260352688090587313497524902260829122284102350425874603005525566837041984183668948935395677121766313381715338304288009173176334088356648327942004445918816914049775443762525200158593111597378412671056952379602364305345156124283467551696364090372202634876604593525207732386287179850610783854218622608264641904358653437863245358119575021576668106304921119130462085864538312230554919080245557288767632468244240083371764362539386307884991131290468104320132338435211032380114723229356493160768658109869129561535048298172319993367798403166054369186916891967814397863153099116761183240482670211718085443347576378282386792769013633123936733294998755759838555298251148029750245435887371758266401387643647678350060112789247132460104212856094348713937759834525890276379269867052126885199415321769138127822967832620614742363030129785518147760606770898561180626713270047010216321079661394594207358723680588537082507386465748115235358059015473692979638435040927218587462620324810665136090697910691412913426092300055678522961155721485052845982719686637166362929635153960426085368134551806679100110840250997854907508127645669057434251301614391686593978584242826932417166946988252005144276221220986295974606429248327721465402378058499914852302254296194345392986372255604204497392385221171443351096173403951062499630301764056530386719568824124993732899494809234635786397295827105115464647406099511815503883593922357945893796629037140161544593667898747565332375262967941366490022545639632647604809844238875818868229137256103206865346459050208574156033602836374252561780149692727329640402683963643995173939825196403856712896428772665411914055966641349302412993157324149418592011978115509879697141935062941133636871792385139025392603469633524542036273953914866593235472679156305854857464108758440293207946988410891568128993919749681151739204728835247225146491430874253220283538727685829701059831640925806653521154409023112525405890626543374060490783958666808793472948644031503174711060295415250029604714733476771068181791560481095830745293855058173011486111954757472361660357518117822699098904741257426849224886182823052903036945085238389776302835367103818431789254568453425181506685927141349131770100764973063935923543025376588490002250314362142645490455805164897997593022108539502655557331600648042899436663863894214246414406495035908145094879645486431596049092105187515739645089335126101506236869902763359652201166913279774758008895052408080559736895582409649168769063907726578529577090084904995054877155245703540656729701922261153288756399052084364388678679669766362142266143264747989348672469711895439865258399609666033295910413549817369339080582365158868887344975324440130293308784563611012895684004842042981303187039416246284503361169991930137490938448578675731204949842455539334216986396290808143353547587023175645250763052848293009363372968379786493485162081515951860122539045521662053185046024370133108072061297046593801868953014221190668957646991810423044307959750517403985073473834723076189883559940088511954225441158547236663775412042906411192016237523311750479075723575927538762246032755018609317466625058710971994746372012608979623804725342144988206549773998148299363834985290682597449375769412425270771057245487360921080770407599731589356760418354466862865548289568506399386122655229617944375833936071916261392816312998464015505762805350433656583454730240477282432505087698210410419517203610410343812917681394166243186066035106079624316191019862700337251161642652610218125044089221489925501065545081315623001000479161048140307924804226140636205100673088628523684753067602522914752480043414376959240509990217104111618119134433987524702588927268238906050738622730972265377129974339870802548375128631377374050595370252794016356502659475622555777889434188192377845908246902400798215038776657405230982083547487878768390092408451437423865763572634237634415164203283161906706222155248684600574065345427972858064936764701524399421556514881255388864264610110968816068461454285878758952924587325399115090719038731587733144318798467890803187879160206376768582120427138124180941228910078344839968529028818782032646465667216037101324886143271696111352172453819651437553162088034555978268744063374086244500634201953810562647107325638959551375496398718895301203599893049979267307729977093918950030865066192368535403397357181226732290730316773715579300859471653847832082343327205897395663999327017228770651723956317725047613396012492225736219035311272026991723728950761785080252547858616395304019228900595949805568923481290542529612941648308982435700971126203705355501272476044848254075284911978556969369608637110744438313570108215897026323458231376495361874038399318951684985294033968738210936201827198512626579248382542170973320193672440355167691890888015589453792625640990287140313654273703170809464071542827469877269998890566271994432658252275504604333150051087573587514130779896105099955953516893579329297577861914559761779774445367509381639553427957792612176090790494874917736871164786638436545319231789279213999761587249721492340024510205712240486083537632687918290637569280239599660802017088072536150303335367532966198475415479154129847762466735880393072803314518468947045602954231870803392456811471645877666430325087729814049105301192941473684577760694156457427782058988836815097263189002227411956475561416452740775835034611313269446943234318081204673933098879814644465799914436397129613451663106721955017713062730420850209665192341270510424038679616953795756085590977315339141805155061628763471427339601230580539756273910385044069137808355508514872566027886218391489975043679368806226728675824630587186483168681473557953622070660925629197756101730282828081523174724125210815872660389236775123004958049212965820580884936695347786192930902063791292231571927172383856854268395204712081765090854386781467785948429344329126450538079530137280456153278050236772035393235742593390663172835065974602873262331347611505778595200959778103329494741012568316816010211845071084115953837800054560917149332705950824476707384960422100854833973920219375621014913881249637942312621882448964715193507909190261769715403419746597118305480702682964969009439951374523742827032797748816875940304379460119045763407111306516629952875295017681841844906153699821090406025248803089441737167792959041196740927538947151614438769164493174967891750441785467280367980773932370940512619282956661848702746149532195683871220971253755222631675062689302521450899032340994067236591006348710277791707605072172411074989934859295579886570511979345968016044113526688680525632398299105005042588435652997069843028700681462532215431708557910982473871428946186040359213312729752200166793533855969257268786744259068557782184923676850367782872463503019713932577188639783087628344321318256868826434306701797868003256236527843950490820332512395776859913390933873531145064325459961425453630854303913422346631587871131189355246685559966240734111376878746767630494513289874917985910217429674190435853242039518710202139916805495251908950670405483096186410903595180433495774412561183231526553497402659258189280839483795332389188036523812827868595925060795120539987203878718782015047871061982936941804299084519327803696787707256212291734242706662291560700620605023795913904362946168365576266990367146783736018997411568025474599585721615937417174867676731850093304629065987562097108099862681508892610763783228281018813455150666906632816551859911050373695495507316279173816324574680031981901533737495129417525445347942637087764741589155649012879783515167756996268363285872261842773183346248893646899326016344609681093666580670760387615305933476437839077772094657585731010471034283620475069925312527519773050361751428711463955223391939416895582215900975496232509169871397753812703322771103179311716002704968739902992367352085129079432279898362021394148093831024545324381248067580929315079367463129196210187417394642549339211687049682847226120299607330281153085602732651485681862659633716702412623344257414754476984851361319654615567916059822845117621304744563347212558628080571781182475950012149376176754607777666527243064128623724460009960278893337314268398809454790151419422107775875215139880647325522092169571898140754281339538468286561910889629864207776898096102544695597704870458126061477273592007877582167857730257015916979682085513999922928188534951578489335008128509507466040401881824165697934078695360411133292842265018352011630082943705384573197767152555384043948638192603447900392955099981720779300779271865364690014732923368192599237621613652302565247870227352682374568039483473841535306648587476673184307752280254304836670947330394203245708761446137253772342645307870906995784962303541700478141305255307336415686954682722043322050365207755266941681829566242511758571882168071105426257226483018978970870878297811548615929681044752659590554134308279085571047794333519552279041455062179369202582622034833080268287612350033309708003948100601535560740058732970322854276755541163981800892848106006483605150036838587057120745426049013777304019259177423548351221939040675114234200183309166361874377255015357770075445407232897424986495121129626298156744894835910280763600053867076648309827973952575877264637763787027811436110923534014047139375819021656822110235224653826988440559128777101234557691272820178873777874582680979157572899987657568640722542650238597687255010688370311782690493336435256608668908320067102534310143183535960847921537752440487340304645139857239574589456808011536249159620223459630721373630757598342031622769409899469144790623057256284623490090078448483555791499854827106772976628644451077377303966820399473355671878639709995438281650668914300872341320976641110681371174905627952107340798258535882892211004951752475346029794620871987095227117773005137471978571505454212720425897475920274463746902611937760506070041871149199337670288395353302125249596899826540260577171848042050069868196402603423747890252840231400855450497452623352618316958294689907545035490378555623553792721454515757088477748811742732217032878824605636407728652140085892767984833675652373159729570117320777722703122259496999380155896534874680013383036239280550819800332150591103267878114056056615842194405492185937538147902262348563006521305773450629214291013616019920534746717148148556887559055141788763376033824389015722708996284840454435396605250184177445269273304435813661580348169978554259700669260152284972030040585238242781577152567354925771475920049073199431481291349699686621531966695203047283504429148227306915984063328083254905128476550875026280585799284072374360853176695125765730114073811210139739416452406571788839320057337529727709703525090600828033557125041939135044653315396035483642420694067893211461378211877918281362552640865427076325393514127394878128690668487481103207620400090237196350746755524381524448811449717527011249301744527308593347644681861254213576445813501865622498632113865070393028218985523515828070827537275044754196187051638485744345704404550086345026030211849082034211926127688327790202041264882514681018155302079220135460339875416305399925500006601071625684895426732391427092468971819177982925931357405006884234073807603687057933327564074619540564771005583001767912202248825111684394310681406348091330992998856469562579631831319513655982594943302860486684427664580462411096129783078461252940679848192095278341506957367121755150606197748811453883347232834126825578638197392819188528790439511981690973195257761983757056906472870220279920485879551764062349405233630736564466172529233987526205077221682743134116647938518116409957658349586495003559443493651758841354180262196512510889937172416199401362829553359255708990847954672118896333754518820376972358045990723989296339943994784827448492603184305711600799460519567060776075313897115060829526120932936335031320045263313065449678608667043893191898818231191393717140332226092250370556742893184173516128673863154630250427410947945595994284502549946676994560582463276777238974563732383668624656630042585089594939913999332638575185794391122834409532396951787525445776391715133788468276608249096685541273912498420919940160676551113181053381865327491697615889348895859651196492957448386385590365872742534941091666729405474047049186055283901334587438627667946246702561184614422553009865419987626590425459398803392777246582602383428004624817708476547434048395278319706695949889667671739058674819631472532153603032052755316243499311196906334989044695252556643849304139960387059920650007183800904928306848415567932570351217701282582030333606828841628600487708536806425143726357309589406259908838680781854147403510137170630546311084143086249982927253643040674948904387432134312754251360699108874247927055166573084191981962010554245560426641454418577656463692468707832051121506691354550491106041202939564894099066650522309954689528528230379970190710886155479222848814138375159318979916388226846688780365583212392924751478495699889288543152893363681627036924792563815418738265116275392809252732545584809098540872111215685584872695567276819783274265726424181914133277209368591547612981175498067781858348084895983820424798621705283299175273222301457291740053822343942187688168801690289534457790196495869160837601352248260420973941413439360832276632097654034021790582494719058402506496714879428754208382281577447245885073235166081527733331505281349626237245914309394148442779077105454343359913854121670786427007849778358154548469093228241223579148750616805719082726487279017418698236911262573300491890482092050317120911302753646619929030088032204800230057795473585450748295389944947535359863487197978031166333911291686756018668015008763006324694529452650107195483318229458268606308463415439433427185870040307169003975731450186939037653990866714519441094670743007921976961380685778288261800112969764741567492708166246178395002190173364436824833027591783343291999802055997366578937089451447593406305340738615214603414723817292144758810907558267496786369955639728034719783581511736523228015834732608248592852461272133059433295862341304678937172004462812916548100892246407826254318467285547435967924905759224269072283396984858024226047290490109947386690042329140520774924569723755051862545107479144187969615381539336073141021689413630725145994484670719146351662123754305803471328375315440555536874641606789732948656175712729258511022862511199236977688076989667350825285370558581292232314457192545898993661599420903044217380204548083824588945239592397970339021681286204089988453045923091951431898264468666292829361333113691121967327379157817258936523588492206682570250364143747523491646107696292408708623409838758769091899132818699237354804172007544621033430268149249826917447618642305276872986012451226812757169051463677326777278612753131006454284083753993730308990434888157155482505454193993194949769980406636142531455600733037831641587091498899863871521654295000459460142233909186758154305851712047583709904303892190661321748731498355856770432050944703636677855619138902653652073783652114224213704920963770703379387899369287314935471152845434369289564474691413545516996245202097087929697962229340032601296320202508716561813130714381592667799720877383962492735591776336065578954038586665916485629997583617577919972937416629954000473236288972930351959497087146510154971255516321022997027039058854031512471922989870629346141696433802650314301825794908414480197485359024301706337109988571667560103627804049704720748663274552842921841376046390676685784068966751220402681629894806210071292674080761478899836520274858498781044252413682370333937974161887142251254859450113724914577616907720733145115446258976213090968575125500034536821248099205939841109911393906872166238010526417998240463004808817126234193562185651957231885344353555364809920128658630920671888213959694497434824235664186397441869007017712481251364707538504009574070988696016432081010619621935406357651473655371507758558308261503998400739340504918155618508193703722745302423997191930725258701661530159515873698638477040766493145025914407079942584916039895759165207740006601421436158555433386045295862166688063198569444075721795732848050021324925518109747662876746462590545334009466770909934154833817039464848408577075901496808196508266994397438105181489911671288229011275926856116554068636109069287095807795393809512584818040304039227953865260437180758768724750678793083294807900163433551400442813277120290619697518608554385259174735378874789420774382502594883386324792385400171840932149458921485841824616185865548432926660242434960898732229975134591281169770269598658673125605802392002141699453788993406995759115607475111922721593989728360487656421000007283200800125867196183889316693398165792218447061356515530755014406335125688731044970816998559725732189363577026444782589134325390689228825715396847947121057809824864663017627775184495228098760177128472370852041260109775742260983545907992622420870689940150554669307184808754264737184406146589021015985291603483427439243254373644775805814971840837312009958382860329999550144040656480620276468953038211410354947071451900673706228288286432683159042332962088361928616023713620188105652892312533071719065688057320034558785673635920472740073741430211260496293473452334278111198181857082544709107976985002223322441708398189028934432292768901834108979154233358481022797415700146403422335302753100901060228742073275336825502729065678160844428340361014272378237852641568172315618784058990040310669390913796011710454107861915520145415987675390630296212177494963052947214956116918059525141423924088925848369464419234571615026761128991023383757737683049905652602378826641306739306425614217538944418459113802157459228364708946012829423926733488106673805932709235681064823088299074616088895193774651242165449910279428060347752074454556657888847796914809837972108792597908993966283360146934215950770453539823475899216212088977754403699284148668704383135277063506530134722700583530950728413885535052946186234495956230619762028330071825186827386512698164002808157597440907631029425891244401601038620729161640768781146750720428369215828530049430289337611591926564900370815393001152645858718062929226063091571876897870397135963504921633411727928905662980714584365954310397994086062781161525886630215124530303591789103323842463680425551871748390554582422800723703609225170152406110181963483321619494357559831001062648579302898686553499827586703304633044272110291499468062234382173295597736603018242497147194428277454846120978224744772660525042910699394730562975158592002000274981796175097171091237841300701233255453584095407801799442670438883930007267596716066459973647293635959933705443238024489938859231518145532113192371145226223719322716695135800268680312372524381283156953052877260362073376668200486210961796910479661108244987189389093591350001747648900191235719362734586666832690738671643179993637854888044417879551434108733400631922478344672701603487898455173241003036493683879422233526623470181709860760203150259639501083854843668418763593219895406523780297774282006730219125176324277267073162464245783520825756453326053275626459650061125094415583736647578708736356062105633697003760762485015257564278777205626163450087908220243274512731920822043691705267544245362340303699581404836007849873444773590837068022148470458842118089921534756057631232600262802941283890276164855286742508218648310987544320834515759824303845856460580922619198209637711735275332430193148881065270722822769179664308112978102483402549802060458256001492055584708694839182673221569600001374953734724636581927472957512323058910856600353824947492540712055471729943298949004448267887506868931656262267230446461552950126710543803341671015541568417853995066499564723415903626468153651398510739293928847700832681218539203159444242814553180991599985166926877997473685745177335766717860107711395769523404652699777082188600487558128434507768509941727684587480078956992425243426756979060429105943735366934437811430645368578984300116952298737501447801140894996456875684232407673675551865087015608498459262528784745941177791689363769652229936241176590290647493208399645612372395581036088629291550718754864578667181616917718969568278016840125449557854068376131499745001191979299924600146609949390053804092419922262958415775836890162848344829987814199338633777198850968804591077683787998135971347352549413124039298174604167477813488906507262584482639841346832065516003781123823907205661953294629233979645615433582132681211382265589450595368032216183882608906554813705599931796727892252691051314942902935025434450925923462727764319390553018516784963291006793631163234765926276772079738185635107879053307248175920761813584387436095210527927400918555899524028169774685248694029155262375839000082652787374928452928915177628158289863011414438428935161282445949154236422223135654007630278475406401076690349484234223696172482598232282512288741689217826339741967642707214408424758419444843789510880220793170060657927539976568668861128881068572242196265036460261040445553847981144941880662556227042759068471727193090203994305641384151299181425717353533279055803980644760571387634207665808400881720530395271907867676595243884432546325425942294368568027214229137060358468111198639918373933104550199181105187342869399044385204578816771398211678612727267031054066218237990600352932955320039101222401871970205998602963919055087081952317896533370423997211667223071691676863788442267190156400527355745428883598212355158266714547945900527389537547904179800294303681202991396656587606689166007260185848250320954231127370610976976903712788063353849818303589345245155420021828329352088790186796668954944187154524092784413815192664130647903290903737939655245196366267744871316048465370742876015590610016399055973798134652178961369502627917126672592704850184406977471610541442078844104327292843750047384779364027542099037568009900871937711080028238029055637360795691292482661173839426531418099895185210188576133611512590577145899727819122433073662127021839302053135592741582159936922601309255799607758072248967619796941095476465692578984615845642079455306581743437687655800251153330562416968265571767550236611923264596906954729933962784568052631744756949671439108527332694087778755181702881932745435028162791183577874410320230930202830541826511730540199667168375694994762153694646575814992882915497794826768195573725473558714928562573613003711226252869028577198337751407538245749493853845208958863701344196234545442094666874985407196959020547575610559246926928234259339270586153738899546774407460965256911442578729889701363025924341539450703984766619511959876068428357008465116288622397707532593939826656717351997370342116255391645209548584061085361316265942581723277954878120559002252072356226198158527648578134468456013543851779024771690548765998974228900045031671589177145653538233739799472203198201210111630064974473917892927981906372535915191198512897649588338236145106152029570707658339508381936947315629530897052424654320256393898572082101484660374196116596777332118853347143341382671768295441554382274024912999940490575272198146933654164743690362369995854838390009724062236217929182521675890512001697636662595062868512544019018222001949604969697894390727690873641308528049540116377332331633284478585180807634796632156663448650989397045081238555450351184650178753613700528188609314213490972034759461936283117991065902499514541252157745089260953591729446307275340644556132405968537359878824363024563856130280433861023393763511641914264098108454191820259622920225881494023470537555803735942664780024481425628013711045172174051645951905454491714390834846177285284454338862217389584911464092591449402388211704735717445879497670023308405247094794839349670900829018294789775898087462150106193038856001985528502733270116917697791767843517842638795711102390931096475770964639228677682613258018008366801357678450817768665212966759345763728503594802231678059546999910863656568224877114411945031174516042428408772650740612398243935348381612545797558626366357991415621798226903424748772899541888703007251414099721099443821518235289535981170581462950058191545904706102923805210746437758145481177352329079038170472044376239473695185542142863705132344464450233658033861227392763680010002089534046337230390033305015673684362193412330637593788063982145671957139864085788394890348326285227433033605494949573346243263860273184181181896950097773073333451898363171114253870630495405555936082667130643850641793677060565582046082268787667761029094112826303962619407015973419166177203205396908620883214612953773956136861912770028292083363526523297974456758675063722392879263169668932620877540682590035740406846308915444759033851127138623778512740864671328892540791462704124893011916927748674946365243454786441388756221219043672098554764441719795072855787623163855185878375265440811696101989680829644052866451167276822185860400958083776339926469302912600017970128787042102862879301773246979711635816103180690853541467180289861206174821677621522370173105511839050156704718265235653345750325202013729093354563958448784176076787765512858078940388062963281355172254808497232249839840901779497958520278519779028761235030561054631765668493339909999374030269814887562521379837155273999829750402625668670308796366748866176406931766408921688673876640698419333025294151835776491050352048870129730148140995947896965728033856669282129114118011603376693330913053449290102205782553532674153150083846754104595801177269033599869240491865535022184597248277104493953752356239065235843721201212744611192370856081874124729933559360917398283649726782969562308441852867733903950789399785619866382839847527581401606913953860836732633211451603635651013196908969833998954684764755519139043257404732489939397378830482476144589180014205540844819583212050492744525065511536079482656103478197503145157535128887482544699413205972113564951612734082455249151633260643127078906840166603638698931093775586881317548134389585010544745514077535490989715856815197508421252650063446256972760510552897346520212526845828448017192363034232584496159380906237462749949832056624934849862163432986751058936834827643457949988538339336305217949131571457589061389952060668126875810399709201022210137719708864868986071891950133645708430912390689123166483698481251755542209802998966302388183580204842900950882336283053415624685465711739068900218877266459498062300877992121888416879851585307419703301975828334834345909346593414779531324124030375309421978779222171470392976714056643478961406486042063468159475447907947702269741957119500721526883010715809761875088729732152030612846327723885634228090809296578849611991159656546948057113413811336648138828083975708454667787141636872085856833956978855130162819167356821994490521060993478805968191568742592507903721176914340836550057949071973226119322010954317997878577636400813415054554574902240960130400989912492908258034925422700438174283238689523682425950287465473935735377422769935754113248256772230889254915317978927607214965589655634566429832296211371849465763758341256667425548990100664951227700537622801873543005794263609386940126090168076974681858735050017290700478631047025651630096344548422140053440081704727062139599622941408971548402628275964640392608877067882794478802203625349858201008446193950617705603610551841207017597684887788628918958992098988640932051254801290543092936041224231934173428413915288036130892092244411977102499375316223775240932637349576915221303842951427185093932643395047134571004268242234813029161286291054370921407609778615417092297299922285643173583190599810461407140656665828714595085896833439878874449645576335194947466129751810049224819794278184707119640858553537043602151155490811175836563614434993165045632218926600152408649871092996793777810667618865750952748316723363800811406866315417736389892120193289698761265098725276067092053147236064195403050179509665272899213286499320262448112934336995846864359456873488765069547625884468501480177935622991832577585968564920955147002368570761397563036488760956762472775056158626498623432287659630823848832582685496565115519549489091829310367416710916007350687408134931116848300992827466198429689205522720736288190109562606359202815182174950624848548292102385881506818444316870447004201156885734417288475344141900691045366511640409355337118752999106834706826271304480565841687673566710984712563132810819912642031431730449350556311307514605602358022406066519816356397598214639093336709679659238815020297936729538612037211258570000486798587801450782460531088097334724074542261137976667553944132779956476796472570815023059305148464673962824294544238593905863763901357286749229203321205434088163004361495692333267775415389123154448622013549565470416794524114698727636718748675156147880559490676965506254893032631705724842996799380331719796828018206063135064238601680619301865331119736284873165544359698880584602894893168947537468589975138370978642190399614961123914631202478246734197010739599514669179421098970387420110597278868512117475332834578820563669071212482776954478297647076704606624295122219511015917284350366470635610087570062591944478726123523585530919908332096342148546073400144312006638729886565182311272457319284660820535727259417442187949968676355250974381885808261908568749517483014065588283433775136012831792851601765693528152472037531358070224342762938841273576606472387439941944400123502031304422671665257334000264933305893009944526522640410597381710749308830683716096752194979695237136345248005548829764434317444066954502782136811532449692060040929906439210980790382295976683706671510538998265911186224749810228307205358857599836320556637865997982227806481835582700589542520886820590245227662035871065286076928879338862079297613777349923113165147333333767542471007594504900292153825290691411059115951584068764346306511162921171400914443747272141010496092632604306967225630614860091165165420768258403752893300910920881841220482815400438055591458815667235726071142036423591107031439109846602601080536135909360840321143050752066420834431102592545381010348688409876140481709314345646727892556481598619507476267626395179368384605901093314972315690990549533779053513684227237927584832055343657202242332640262347217022286563973947916504268010908979506434841090701256125961683737680635262923850227643030981119701307689646675590815354422379738562846450561581848159120995927238321058286208422962712794635954651049397081028967084177893780652627725134791773665060158011063616084612281256333047257444444884017715591263713375583218759216615681158813438321128425562132284543093244043132202122921848793685252019421049812166297792836223491106204639048681398314737334775499350502761197591842183278373842023432234011393926295307309933645936503694667254786448011524205523453986022576581446880579838233742699530724546021028917435535655636678984338636112376737706548719039125973359279753617576770834179179661567613330386080655595119706565905400871016007590453372345617577088029557714033335599274690728499556453752981670155491213133777308393303331830395558547820733519042175675165658092012088185234723931524794295134209273903019556419518181258461148568457208992239719249096303038310548696339449781249132617989270737574860581793173205872893762710350517943687531433406840416016715178055147008380165830512707968533178565991906912345459237347540977527576750064613497838314815050968443627753666542558497892262862094569338409582367327512271352764779587557332040335688487313814332852687322737623441312992443962577149119642801973119795529265328919107905049661606879832642738082481138402802570687797620611656366255158440963605376016255041210003139360984772602360091327036418624984728820977269498714718606330856496209316002035294840820432062551503233318326332705685734237245026993627546788107913299073537562919956827501803449538924364670378095107340626024459952835976717393369659653661671593874224672703617885290300635606421340616649054469007877475466002210474514535498766669012113220239126219855271131624400763767234292503257704624096633892609726847127730011501969490823167036975813539614310856989934320466757889780969860541012269498785637244486622241267253208726017656266128031246634663748601321185266414677209718374176185750384591530736410554248164217522822815377979751119576054258480885273430344311843155516403219654885686762308115673438583613077535840981549310561264875681335813049842773328331085960497495152146198077576332956877703311808669285401898358665858704135066707784663037532992725622457395156085924360485466276823310731612441846036879572569537151723589141392102278244101773423863572162405611853553572280090586015807141493465874289558785512269964590994797946384111088008115415775750365310974346555477858006992097716312974042717294322684245150555653576002289076906404050402644230038250767784515474430639019550063085596101568014341214729934845919684501670605071128964958368104584012582714723488800737305530807877606468536663118906293163025526303479336077774199522646635974664564894701547122377842348771245914711208051431629047810610366567437107041890851107971874674146803866254922571237516651417860324657841140306895460670583192743928649672701021761301976693606055737496837718281148294462928247437767671982502280564362864431477988929163720523995546913550708234255135562628983077674833037219418111331691143327826957327800686774286298039686028767205156727372463634265100317719466599263741371703046261728987712129968027784131553945664697481860764790097055445947032900738511249759932116477856830095392818925268904532336548191801066892333928805228814077572957373774650869819721329060259193314889588067931518208186876038473580366419565043671743158607395875131598172424422966609381174347261909625494486972024439437027772125355361953848826988191577169769222040273344636191307908393546395668636324594413263885666371824308247737503545739171805390132488804735426792567152565647760841185362605344052488862144143025314854428702184479195777843451265826666047474019889760255698183007464510529695861101205098442090630334793461774837895043000073566948315263836546716991519606382212075997678313624738406311392018971959125654540729580688739626133601597396490952155151292329168772848982734808351407720653193127980888442536861450735460116682517462333494427197439532535609388394351924611885882711604049324393169615153505596726176112420732591325279663443876639661131569918055145476392458525917612456193683227466848351061899937643414954794528103672448080402856091188592414760246597582649923601755170972619474531884307646433971966764646408121624389887570937429877007413616151398708026938727453772507184593075043239994929060545702026064453669223361391581596942675153808402297259384220912791134194365259387323369180376542987667953485625485898665487561123589697468167707285788620558615781390825749952961695332523409889153085318359879571191510478334833452241666713391676347414002414705325365857859103094788592917925887587733129496088124653663505122244403122693480562275916967099114456293536859201944785128526461326582407189923546246527049413466666581278842096483125131859504654250479956828335097344506825315343991400382310384799327791333839952119904374051280435463637773155768997689548522990230469364455148413579223503871375347304806999977538842836690307219486011792253348577514659901644764702053188439214312296667691652078320825646250173685660171129119397624105412011690963078051033704861889910189960927861981143283785218879022036698676119056040991360012789184855135679574851591524345279994776118113702755191547625259365692065113920376669606915696691572501651685738385727578234158578219114358206571776508781394196373565840770764449768666684307478521588526617186048582031959972827602884321015528080858233511252804176021720300591340027130238366891592664699750985196269039745378499441744920543972265103661230813180225581238726525422445465438841970689624231730704135006206631208055678827347488346690855935086908985227634673287952541583949123048384641356195483500396266167577865911424003009488753843782913004404695127127094653946909580873468182680909003249151612892614055533549062823175062754814952804467073396639700346363505279213905859793952956485294986704153764604076175432999881272018809427186680401770006820566901677224824237687086180898328908297584675987278998274049369846595450964135962660643903709545956219671259379326496521668456048687763494094450882811862844529242434458812622913864444942546866408954287022964036076908912179379905815739694862021194127082727915051146949120588038235331601810901608710510015477184729314829838550989632497443888747553740067453327463477491362661580466718115409080727823887346791850337669938764195761547088437441462617562189907782740399734307121275480707703721444687615868340763239114903001870256776644829810181005747279444007592610742894844436343611341613198677440676386777094552333653495220744288682371253182380708070469264321920332101175812441972663414967824129178993583313242300507953607156417482629174679999809373991857892172606838463812444304954963815725045219306532887362371978612342923627235711049382906663425665743514862616782549947153771314849631587625356591341915479945502030764113998426132490077718895203111652803613376709058488611000522149286543192527731602972452469020482763182275081325227610806580693490018814970188663568684421559142034110331771462004543476464675107891184730663003692131340999565133835038819823504425883115434874490751421673786120938890716864915602835460588269467391264848124274377756540853600437753376689894011782924789024363175250953095000234194881319754284056502683982916379909257155191645887967062529956573724156191893147718152511042616162706421015146568555510546415076346592627711888242954535674371802774417211198970500614819663527472584236186412413436552959015632957453520205766305704500933292459958148160206507343590397951385188547406002734316125768345405655685451794850885196010848797537192538942688486497325547161749781108600817671575449591229422057668832526241816892935817482175853835361677088082349202772638216125961018766579383718831688770788357499872891506601184480723735261794924671369557808877483943018906845315830424995873339583373668105663541307346452623994100625161161934346912409375976873723033630168630399122597052262684379973157661847678096908108647266039519051285710475302527467728697971528981581105605586922237663578180431271975359157426550859964916274613463452519978856501160852563922173652573572474250132641789883858172824707177771502505403695659797175329006559088020647218950283684771765069575854444314718437262659180931649089535928935083144711585118146698206653087199604397467858687184723110882973664022125359856692700192383751967199326588242594067549895479472074522318440355985310324872328301780813057710003032200784868886377038882237561143829254675815406865794406599405534569010214648571976973807873288367370064242477711402569463547431702953038233578952259430236671266893296657099580992047783641778484959295043044008493170405817324658393222506600910629485564641562079963806957065627705199027188522490349174558822335689557432525854865671349844194000459833123753536824236489196298916604409210769494299915449084743852273147898524996488404286786989281206309312973274220775652237577459139714609066455529610544704028198399491833500067758437796862103886139540087832097083190578398538029399843146887335476356200291220909743722638144624389598989171997013104943117233382002787039071082272680140269354761475266553455675163476879951096300543833511415714949260676723536032585570340935550155182808638953704163423963966506699537173601473912272781536333957027460918294022925926650106832744762038543155618033997103796801385756088812863326555289167062847297899437134293576075093260171840877187002937050320740300560100066970951042832445358649951639445096579376097785150915411010228477881957036589987755397385723615264584859047487938319527472313867265238815706393681598832540183224581636401118513314422239388824177294550155951541857003311192279873748669264376498522158768189902261125380704685803461133987438637313910732086475757116067070048062771418412321756321349662845521962373318745099134307567296225150623858685118983440610575694398761709560088775679795169363857182308804403809210241009100240448771613489076712567033894885355557521360241062853268329610293307891463469065333995315860228684357813358508583299533452588951673549973936027124985462423243297005198399914717668178983829544392570107280140223997204842872871707482606383269193374500503129280855520464147337813986573542639065435661673648255350780063498074466368181769015603877945360080085761419478320203834640455193277552241026508713132917456068127088054836809582235060750010058631493493585571363374375035972401866449233961789281405589599386648118614498165230621686272300517699137972952751821851391117862750961895836387539511254268267302008799670093030234193828260287655183126470011145108087312587082707443983398486617536221589699560643561252773177935985821584178257106580689232581611013930878225647835970322643800236107793526671113070531640223560940676656855980357053917854596936217328872768263325561712691629655820634825081885449113141610552586787037388733724784089013518417975304415008245343297787999854834809629755550465188772710923796723686882507060846787554288172773149616148733569172963708808064561146477411853042075340744130781102061871437061364402079781682837813496803843010194669392590656576636062184658204700809272150087821284569066908262124085800884402794860732597522316784886976845915833697322449814202080122295058486384715585557619032396184668037774477133989444096985139236170755602705988159523562555151469184215881703016689185295202477706896945179097984533453559018855523844800072951504945331503473505598423049931791958317280201275164160999888475407043590439602825466090241591927475161061610011528741496828189751200646898205922481540929496774933702112426879154206793258709690743223882021169411576235175796834542719798375352720409493368302869194042061988603565491388647429468346274025515535664956280936637436130177289852443528832585055985356524828715021264221886223830573090209125295992207506771508913870491467075242400968417373142284734227414120003311808736255555510121645608898955141255453662863254494989203444894306349223499245852837196784325017783199029098893363818300442405830706429702075533457354874891906822096380349253770893495684991381308149907146891363939120312324793667529211122181667548608577325973645475535233888983038038871495075638976600337561945047125618672817767887759383824873044259233947731835768582469637321597793959040073396186171032579508356078862305992756555159890670510227281358558322780272142771233187138560019928988962734564607988775949435715538959414850488377464154269488965185927481308706511885340276316956371451858391196588382445539117700234858870662913060600628048690671623074194191051799638379215225800227114610824382204784319919397164365458517129764060659146309433856580793933235038320885118801509973721082747855568406008902488258912011439279776783133449730806191822881975881776366455885639941910846546462522945145260724813982987669485463410219045408171727573306426109906443359428104178028426698784408457812073982981362166584678297966563028854969131331494911639504011763882668230278663980404662899452524745348553658239106475079754149935248287458982155767170576435234800337878224077498039014538580267619381019564867237572168065417387750302993985639706667393091973231405016958566431396023761626136114843030185740192535297066628945615682053611736029309086570285438961870782022166423225044398268980121550915278786860405892551973989339108993076215746184953901429479356004374874267274161882537379082719067133598378346596071779128791483746816206969119865602445419608848922659990415248536147880317229393047686503637779304177535929908217914014665839493769797615336331383818245755071161886571501407460534889787438234585852191645171046294163124631471231319293744011425575073501065667596410288636276036960008209168691908826425070760576512642602851671146279736215430033202148052693607374265734119470372630761016085887154658828055751986465734091292238431969246322818262375315330267063305704047230728730484271739138743939864037488934713061827154575866365615039237239707574929807948989541622878457107280914091398888669039712478752877643129408551921351681630141228351480557679599086359098558943810050828819473902728964089629898731254036579852912083050578464719138884160718886178457588873657598134974663957957073010410959396109655190853969468552173655202325665397819584840235519731463614926439572706945968755251614919435499394323102756685127740261348672353768365472982533210367068792594261098528154995179549750293723685240065974895491667736495578959834973486294617024908278733137795003035211537243206872849872125521039412223728145542887618678267591800413551171542922242390610301969596130520491469246677143608787220122054164980904168655512233764667705875870874348893129063152949876236816900204918437590397238659961664163297984975823139658074507924486569396070280534210788070230106801465792015625850239210702921742326754375292457738950714622947048582986751629011272252826378777381344636475377340721845507514863201821650805996412528523131392275381432079872334861725344795657590538021944933112866462913756250356474020561704219240770034422629747905452667888550252164725967214439195339173939518113267440688613467600456417753227383994370515007146548444720253080086229944253559244779537480744392824487190908031288107891697420309353908647895150543598353300095944030210788302229721417647499320725451991671683238037483127653144992137376808199385830021336013046118082910911580303859083043978853594225315378550648875477824851004168920340410316987331673777564761082357264402735221611177828775162407517493314843586190759879364148521246726585066966957905276819942979459014493960022304629260200506264444065601842951318871107146451596283069705217581320186467289924265312531981044954524820062791638264321171117192784745495385486405344139074263758017439741968688354743330010126888836140731887496243061754037224568463061318586688625410297527416424694694771058687716879361610737636389057787808642452236888786482161579414306918085196481134917689896918033906912198033842837694141175085292240227189742204316587944771619791417646321586083764764776331000074848738381262947826488285844878147195981060730646226812786312954884962974849550226862285149826374081213975435369775514134102119988632387596650614234439485499528320025724265000983944543264193275876553969574603806837740152632572810157352652122265113224114333648337858231427956157070772154745810748292021503571873324114488032154395261655802194257553659401079180051102392576673979774985533942970154616465396390072744019225943264074427954393791825079883048195011654620836923936585421304977845210358968519245429929654044417885116482026403690874981581619319891954625872560554720768117080361254610507226902734234923467597094943839450919123543264640425246323652324636351836682209365302309026350471965691512389060601470190840781498423002564331114205235358348658658054699672951171795617339589337044619737383876136216276159766671774691481763705467192410878334992483909684215290629980709265602090322075518204758324473695657830692805268889525905582613270857968708869912666614587360302640331972723584766537680441056902794711751143395632153269543584161342165800353818806682918764675006942251680281305695341223330928031823738176171077659429570442400182353563991099907202549735907656510068922117304086794776168643841986540480602591801570258833372217256365287481066848278793237410877064338890876178408893064363032750370377316326346754095424770135559957098409839566342260163386454732287263558519379019743543294663490519489026475021737292370998240288421950032145822104304845301150560912925407703579929846515639390357094714650266061791485571610559101770204994591908639680029994799824833723700196629105101454366982296314522468857114485813626211782171062252283202222708991835901026027954609725398353165646081268244332422898347238852988640552418878012250440958714762376229207550025149207292654697728833319792425865379959975151262419232007377736781829457302130009233609527282787178718761432227744604133738501820205188901515424092328310593290170013316583075028909070464534687746155416275800006577025831747877517866019102897302998953348055980071347452215965160013030825449042950275219282498640797450064554640214767113977682773970484976460781853165163850329561932508515438918713003111328713227094185830533278125282804156721752090223120856693410457512613200348065871497938961481481454146694884560320099068221699703132511591189846575381602847044921500139043175029347192620938920889900673526088786295734209639032140239595969443443034553702423032490463201433164426140203680246794673810993144273576678668238939917978551213024171591907166730878921963737438910764212961256254003320684056486591423114754573607771525045095989178402646865740094145287620875451062643582306275670366393055445075998986973988311198395057335826349069873025058202341277864912049397515609225912220148221027423499883212098495239384814998888250026753951534224015149351435287520179096339121832682956261329686193790437833535012641761791668652472073348432436440610835933784584566903711961960697198678106337651592927638235838579234578295105777785673040605443215673768873637745343329583676236247418360970577049297089814275072704100790909304025844136189512327872461588508455631172611061450594943225477505216818597853631424613727332816230293390005083041752276603684304384431773911664530423973014518813681507946668361350656643309135090249548960871008560978554964953134870734085524420118439236322308048541262227132048436159874995062651193276672887906573567038851991582857748850643834759727152730139062944643801753015946348065512142315375966649185543485107094750463745119750019586196274049702163870221202629064650703686833957234237785850910076406918130716927397405774245267272706774278815329702838027321814451790380849111592276272679139417840332215674536243430683651308688643089749692765605907127387090359700675861474546844740489267849686792649747474842584858174481801628445576148974347457694681424028825805301796031011310343231193588620385215348016330757631993571862480593862908436431663989674768939148808017224486584658487793184367849484828483239729735175057382750936796900540447216704029747717874407041909329778471075552501786767101741291171151026996592376077601531485391139985500437065481914618598940759836571971118918336481332968640709009698236239154114926000068166312720235840069134202101121172864067964153747881090439483823493454970052427639153475847365484045910344367552486242259451816138708093671185598849816623497427861630189505707125891360361549470598890004461100328940521955140039664234613709948357371018232736455760976260503565320320817414895409515687886406653866814138061224077609763771332868715994386204571219740771452532921817759282982530772806878819434881690513291562527847416466683271218696124893259488531205915085993324377563778247601371113774817426388525157550013853340095000946467687820081034935109399397272149223749683748782132462613981033803636208601334036765016063890442529663177092968518825410284200965316233897018524458250832196027848667602452357557767650560398562020973019780598936565072922012340035651641187118523233949471340365882489007437842117726914649185026107171393003817400332910407701985785671251485550536563504469172981960324173845635485088259849795939766257931930019903156357334293575143708203462161781353672556088335194934629952447105199988351806909428687662250244981544783573344149913135058723000354426694852156227342242977662419547531416987197838920028743078208035070487483450961418715634480017028815655918832374848778792054569697458831159736350652720745978356071865046697354069202759189384397723470949660663777316536699600675078886892742460098383417277080382845460720198432421926884074525092518866820883567502489375316987573200554800222073631778600528043533483741978239452077434666322682073697179611440757564906159732743525688754058640579749601137767067612271904676603656598018327009207815226104115634961568331106528217235350304119056568594057901605835957750632404211965563686153794139323450871344072908047491189476418456968161463027990223160599376944286340247846817574405941025851228979730767057247139322426509043369119305515301877178902424260618318088258529918599280830470094527974506303573877790832866544706894944129434404047140743152314647374917994180167415154262535560389092117896928865666163159213507353167843109221450941714743695248214407741773291712657510818322623200451314638902801453934932276112480204898151430768339901884041776629710740225996584249912149722122732369391600448731569921765732166646755418725826270069983612862802271310433834979549181495363139915998137334485105149680880941480861104597848089359122775167483670595513486234859999552127203943866405091388090655557707432663885882422861236541012417453906847340446754587185042523966349394169812675058006668022698000789594423910509524961876275065530406247362558395834706741576422821578075575394166316191736616030117857260040102262321658365626350211858783103155575209323648888899829420989107623397320456944475882745386619449355921763322565926797469189711371243679527232221242857650134136072686830268017139314762701944046287043307313979801427457805457671876802474110974195845179136051017644761122060009050763503242660965328020399966662727754590661441581306315605632547009863391848122283338711699302917774313383994442852797457907737216184757168879172534708630118230392149082393515738090250068724443366735019325071399914214203680858729986566320773576725815786638418289216975599594340841240732976577181683239942063401398046676622580821301119626546531679277814007452352655972857691854773639369879022375644741317511861682382963287997977528775775384172033265767324973060091249532363583225441183232526911693387819257178250873547955108138422053514207471486547710141428021466663791544173023477348367383797744193093220836839344819867051370094060025519016317281679724961913483861403005874247940247533901794279621173082462551721879275877306163646489866422333668902723573523680558519075743790634882405209113129792099693483590931582406467645189935593214203721060463229861058096132523847273706787262923839732942965194035550942224738274037095449051670011230756157178703565725431667512528525765659850438363804661122771583383030205121491417682130524719710606717246786039707684251218092219439322318992842312246294041913822463586216151818492609585521364049295278030330224796580619188933699982801470876208346855909801260231965608867691742552505242803092302070869207150808728056261475568881990274957984931587383580971930852798191159507534377327396308112220233421188427252885076680904502948092645237864722321369989557836314386754340006529408166931996201239104072332523683440942290432833113362197690331950614416540636252983395894649015821178141333233256363996141001799367701744474028023558407935798864126625096890087457804958149044530595950733520138559212900535005039465497562340082233642177857543689158180623475847343586725232077864230198079719258568417311964967504710240390425713978036919501094777997899370272831071797483026727306355434506606333265118396739387761298121333399298958594029036271251097917237903984200306880370755987772238624892793037004201488350021410390841804460445811272780748379909657902275467103829299152138663421742316103017565991168989941093832094318650614934028739262584983198565938034597577932089920859450947602617551860324105422186714943162669972154900734017358211614466961042816233786379133648351377268757035034906619964079134824230819059619389498465952040690850034514247743804130367150855502266883513951631550043596177201582192003055781469883565038254956782857455099484522324688795415523424650221464909709899952311870914665011669819153662699560634191942183653813407738846212996595772157789079817803125329664131033295153779707033593711798206016457690905771399370543133587622927448202692702190584299200456450999453370073057497963038122714671030956890344129650502686565824832788865154610404731736046169978547870459536165215367563640504616995112318147891302280554015128373823477467487927716693230734880394841212014946282870813844203735045721457954192561458940741344253792252028370178498072336363858462955533016594597596909665982159049245992959562750528968079181104350019703775994403258654892203069163461769955067400942268004770376245229622983627643895014306189635901940290701126477583860866729736175119830637243993858811367269429445522178377514352286199632677858366140829873060628354048847407679335426969463991574774385792086559516151305413567341360343320034383563021620797924994181514653342318504334342282465886130774040890582246756483927704616985993339809744255808751683696943336372491648255002427180153872392862427036276471277930765377200243161439331556294195464142409964227945242013751079254815605490059019634136958559807774330969080363551551631798179142572026610979287258702898468868832350643793316164097066145114428887338521574724860346153373778203617557528900348414929295380303406353818381356289757061137531879689031790166809947347703775268022135615762040598523973716676877856172777363182157547581733941854975735302358218139064847198411749632064781512894289227172813616406784348249359754550471713239615622857027404577742187736056500188568686512965794395905604081657116494254965822933175136148982828633807536648282343061464510608484648429734875278350317050492638473777029202091145517443761323772975894185780533913435323472887565128636386914943127192294012668198095802512464166689704085624327344428441950342239668610271531395426588196480014447678174159285416853678636382923632278093862608240976587674146893257906187475666578866958595591124220615366571872073107487616882763206616453106098714684175974656160025286675127504638765054407476645795653490977250219601403882005401247723539437763276515295642279251918820886956112512012624448568532359202321014348171685998526193665502041370920751360125831843289068580252194996297630019654571121805949331566283013586647164016800093607904660961025373464876383788759140876567968461013449561717227875155998494951042945905437497198312404432478669959756954491930776385105363988634300849533129616809516493904840039155286113049002084762125978129013426098670069740612581968460447787557985423683429943675089921505825897976911500666750896760846948975558496974570595928113696883654046980065424305682478290738582119732968746036223260797703105930871682391125228158588969999311917768936680013964489698541492796453677412443448921928076641957708239700951166843810738142718264908153664913982593616672723961770151263889266933895022925493445932366317442890711257111896711295139524224176259969953805873774268252808211558554330397485853325985792541508621958816050302013133090865972010314201077363670436619868181858342631356042247311458160671641497022315801758409298510989154761555358601788229561930265531186625253959929133775264061562379273442980470575035318476769943196499425945606864861639462803436845864653712098756902024352669036666978293026419178738014018608948485438085839063426884578088281508897706388031295651461388906599651716545524539030104884151939919936889860445462520951149052116566716952330829403385837827386124981917662950711369111288497183585004578126909327008792462024037126953723693829227868324753070870904362762881479237468276703448456536186908642194204142158907933342464424948544246318189721402164593471626031275672166242590653054436860207080073541159053904886290269443147856648587200317870731065230007556148542313978771886484691069818703398726991411189869060221893892188044488249420438496011207402325205448158922367612527963950295444633350392501869081654133451163111049688904283891321985450694860265936881174078354887408548784393832364851127696442476826427041207353470863892377255651898386140384096689630975687074145853033075975664373415389131788887251072972102099652237013278693351572417463976936464352866487175882586743101822964385977799336170205022131653019062822312911477598130486717672035474828990511473558543253954633254870725612526581587685587063104638239790872447623912404149308997086622720662045962489092749502312495151664134493317464841376209985231281295226158975434489349625635571358478135802078906373616143459712933049896979235305208165587172343663709108070277444712669685648475464845590787036957226561703349169043379231573692453060585855997901634217473235886420357716523626405024691509378725850331430917768091506593084210775727050422026667466869540925973135656376604492422133387083664272085890681976190872142188181156871620328265471804566178763513050112213828733775749118348891772902192569333170515653202210596431201256231089238803071424927363031292315395154310300084891344379020095939114538261665835879841106308879248068252948235120976140272204428890808132533639791876464943539858647012456565933904760099574782582499527014398568047406599047312807984538537626582395659775262942140991344165211543935073185149854071954246915319718470688913962142030471829516855990845015224891884103792447519948779655729884885633264524878782270846983682172088573696028403469107109830341790973633349603396560303832773259528117365625113224966608860535660114940610655299373711000128398754837746595731519962972221904539362425910959045450336546991348565587408005502957205909650932570224450819090368914673367045115495690881533241658272192865625772999767892958273080221798948647317433736154556584765254927395407436376477265961539378156373161971506369995793434455382420690977293368535083025153064268849092663289390164750836955814280440775849013260449610217035567653443757097444512931848282139207420673276053869389988894734415934351262234086960504848129712372530522954582428293111668303054251193493125080711997299582468147671363614532725871668358925723175968678954028182149378348093022226443890775276247262565868839751957969227097474344663592691923308176358762572902468466172934491632371598124390289169108386848031679378327098243043139740516484371768253549419402308378927206776170338223761915509208350677677436327179761051303652882078784243935510280532190343584735742360635267853461793156925067477571710919460736215468546137176267992692979052095946633560444228109205673154610803430025725152865896086206919597640177429419916773003769339447544388420112297621920638922979435015133670469442206055000469583344429232573162629881807354536229494288877446739727866784351731476355891480758592319367851634155614177941035466504325493352057163393356467457488035302624368538818304576073260687951008358343236962350768243417337880910989327766069989171959352790190386186660319334783311930094976646103106713972913264236520782317161519755274963919312883793390624508366770080528788129797075414998325599042638241289459821453092031968301063277532911086955202289312007856383042510899781163139048937308237507933653693299479188198486068198269307960694097632097648360741144779405537331818062820446761885189044534358419751115770354088770122972042001945894328135494852992690535987433080648718056196577893277337786121656242872556337523101739845486561095334427956243353852123823922409578588762238328952301057158951283587786907835458223939866992988146059464299624669555865324365213230777792369243053862434480170258168320960408433603369511225059847690105281458849115243797910950362969215356366445291459694177058372449580497116857184730772915901067321028675719075003877507711372264250571579023893372528664452534366692349245684632115371030199817589849062063525216469766050162610348457975450578431337806883007584337235453623396464157993712156277578194863174918945054523929531096505212542214529221961312275936475699753796395124720805010259248420494238789934433229330830027922155087629339765077286547866302318438935925707527348627799098923434753279762055145034619551547618717770859994273835601957089643558097337383223736804003428328478860721393294484995055943213078150250397176891039894523928851432499002698769145174245187980319262403330143308226452065109531380265037081422264016009911826141021502408204377454029406808359844272199871791787122251863802128080181705387136788111339998360288597178458582422161957689283356830842878073832636123204011928775952428849366840164932915333743512986227134919224072801249126332372056759238844471342829139393569269490856719935246180323005317072022024434949816424410180961077562892092254227413372042162174426676464610593681324377898785087761007547852803211340901048997854590647911480766914055952263963863841380832981296402220894971481195636286696847564971697987518039525844670799221440057373637098456822972835706881202405575099806578551858385599244984597053475864183705811546005549380644183436667109183222215804261970165319749822605346151386015340443578456788895543839019050552128479268247936498009976649289174058594204242065807130387668302058760363993514333180012721989606320330568645032111581610880958027843306081649949255085263146455864188474850670882684760898013559959975297532225839714005742689910504502198494878008533954719990155289478201542236655878949876489642982106792614636217197029042870828727438368142060382820989992245938388686016677098373119403467741838670866114023979997477588266826147998438961599491494935558466050682819798957559433065985799116966132912943700589437201163775790719960034233753624929976990251827755590951524759356217635296428038958462676657333876763682417521783231202541307930050815006361819435957197622623181723890663416227650599051165218300913984116684415805850008170813731936872218195770814448916843766062365688813454405729635632400437268425582856154613015017593221569575086573060996304339409351599761914719917005586921612883580715107307591962895455675763566916676930161656900286536046496962662144766403867408050075490892943491040438062999801222172192564790156811496349843475724548464457132773044785196795052551893386176299834995767939305079842892257307880577562849745905174404772704460349689581312891069691052216406299187790039635349390163239311596340754797091981151982733162644082391197218224527239006752758311155208973466693243460209159973558469089235507285792024421713841265180502072690175043020105028741483822565474286990795462733961785900025832863137468580189460594670778846827758493805436223157657685056973342837752669011170070045540513180669476032584272720661105077706079054802527837331041074907845765946029009855889608522664303506145394031356372868941778823284697947468785274832399160954877863358041432458960554861275525658993330654894686009435463190195230000048116201386829892443891845000566506105865163246178096170005404132053021436783412380087020343841264416588085230673988279192129113727725805635818879146460744406859046576368861430316019570777427154767371583600209997740881526924059443176499888233060800882425562304040181877382920837237893282310075868408694966814875855310219225003977479584037860368631592501938397605038204299007816090382729268666937593004740406529132973468148894327653831031917442656918116943603032739533410016574889178541542230280707350844455586157358124462841485604683494960515094036373114526099697425100284867080548379719555936699976394281945738008052111229942330473340815443455437737888644672809907067960606920503072994924542413355611622453091009261022289015212121896346660018720482913703877215915801871591395321989555245783129608571497639713861828932419150224160972545823937367785978374934597866443680276892567804311741859247476652258031520803193520769182591045427166268180846731443621460337771582965892174443364675742493903096267235105547424282298329250790820110691392241254960159027579358272119233321286632999055108248651519846561821206535044622012866925853899206251330470854957128607721130874937921363019263883517828747505684921618872915209679425428835099535905979282623564560129109972896834874836580421523580573207984475775261344961484436587000066020363931811416832337977977369041111517970865412374719035621833918542584705374722683899392658538298943468891783788370104506504497667658570651928753004114817122599664144582096499941607900245400189630982219414413848003842777139994243796222230994128035256831232513049691941525209034674442296689841978083692489173867360550181849168878063925574701375265934373169994729825037411615089850536062960596408665689796998424962802705950722615863147799578440696857941223760879354895723372690030613098517668372830608306051989943176906453900520334923207299220245326285850555503776390439717286934971268354996785145226909197725633456023764484660346105271259485416330756750653123111314877507897300281003410488065959644135112437184548176192305716711971553127111466183965311245684323986205992410527427732856713097379393827284957178990793563345492284820530512276075394909803211102451951068172731696113756595626040951252945821309720502630020413189887117049592028561322527189656865831116519658923074971095387916638328013180942087084453967065696586919886360346550451590846697636419989130439533845933719323411465791932490824808074752399426907220661387970866463064960382009376311046490121340258582746888570460586362514912619681126606275403552069632723209660884780297361995592609749686590930391727716350587467241079875274358583307496520306622015124116887022018194078938834672874923560626986124988491482144500294198969432194615630110576101919091246153691000390135941344227213099911323874955564147797441322398214447671988503547911883554788583622075078671094428641156095670791458244914096222272956674217585209733235860262305113816484453280123210074936852175666728301479186108003064682465496520525553539698650506867261391934489182354101250377500927739740928405646646097716652166133784268929673013447574741773295179289643541209145419053661018043726657149299778693716236708225487411313212456936175132934007196528516897136694784561881346437349955177624829460631570202961645827573023532367770649992773573522755453470766350259977934089743517636633935769981648934040161184104657035781928832590235818411303916181502894301346157654027996970388197772268414553073770061816562582729573651496452283549335841975786924759018154799700772367932526848833885293506894059906542371346141823770404075347241143367200464414862669040559928336639413591416184931286517131709962460445050299879136418233821715064352751528597556876192587295907511715651066948670804186695594281480814839048998730666865744831741781685103285600671134705945420427984982634945140915919459018443763495467044076023760592969160708035776007183313601131442112304045941852017330416075919179679403173440727373134687299325604864475401596857759956063032685616539612144773004332046903430801948680525372751483586008299516148608961988909436881001042003747055379065143649617039242682692082018523078232321961665890695309956494425799416943406550495832988662332118498175130086346933075454487343215766761064081118388359721104513288205372705476989954298739355582014496259738571783872470237952816257865918769996288719169484529807393825309750449884904725452821514254208118419040353482447897630346051137762167114449400993618184692973382480533209008015747963739579063309960042784596172194774626424306844606871955076586767069388841651765683085310959863865144399466996172548023548052918952241012764737687950126800161478616622745492149290145785751858663477138713348628121093410659662735394929241747571854430260810657130003910546314327608711986593767865732787370360934650382093007982115781747704952965690324200847913764486853589103107913577039306273247699684867102845020786883910238433702098083100623537342127282802560754405116221829492784815186500038564519759367633154439110834807940761193783608209526216700874081357157815081349990900380739494996830136378086396014102655080497702775699844852168063723024280868612169967066545529410738678084588792116341832755930062237183789767473377212098560142224727574455877594948168334889315526465536707257648267170940572601319639811357978191006309159649394572290193630754332979249567410263447351072697287222103423942686924908425528356969194925373631907309315453931695156740351601491111901322732773677869912149254083351807863688070282559817579593126058933917363470111697622145819732878870106000680214900588133898316892018273798116720169199792811065907839321794213150112563037500319639906742436658283182741267338334613414605581707654139028279544445446191523224284656012684701431760582439774435927204546031595843424340107185809583004046816106413127875173925770668532168864269870223333932904425478154199161173886789353172330046877916884019046564215158583652229127146504675306498638908565854034106393533633984436610151194142213911356768341006069493692663710708263363872151121092146426104141312844254209871682722621852371381506148926367965569978347789873515829289806412596367473371399937709381766372004514670234956701749461322072432043910557027821514113357121006576420764843244530173470058909753485804097925318183418621249940916250647455930490457390112542569721973545564098077571368584898798002450490521402081598610203003591841622802060865927858697488946757428310163870764081784184558317744445191520907662408626160451831201495563408324511824107617138774993384883792824868034115707186418486054740405258615470442181409761987675779329039710695210982391482251118408795536004821281564380568197776933774472952847466391383760915258094650647967740759148165458215163600138690310319232182660667333147902405425373918376173623739262591378916574391057294811721555989351643088827795046278827985289896845908015414750549985661556673958986170366614047360169265473272199093512705276370104546146835751177543320275062797375488555901686509112292264543444405965701254823944310832762435958299541672087821962086889598490205063549827489477051926738495869184433705629655721893840932491934930141320878021904555699196452697115673646354506254896279191221904690790424032758471191719752636896072134029771281499336500135382547658643098505988663593853383012698969378649053103488921212968478032274471076340927731423611211796993099285705016090758910789303039568300048186999426751194686716376552481245378433750377637540389529069008362952778653017572198191935551041582294810403199942789130521784256589657904138948313777043814582008987793507926003628428148913031819381360849841514152448929696469241341731652352331599571271294215198484968339685115721561588415195159931154007596800480543369205879690810908438859904662478231842124235167609213387729206642862653747880482746761836362778161484852158942559755449879388922518745980256585624324083938027591038792994686491502400078455920121199121541448374072785924675002054593913413331195352143247053198322985699788139126599579738782966510887495271990913238325964146412958014667853579465238069073483861504150701910471362361891206066699013133578951512669294772583459022729815054655002967845681611366668078399931987277518876801126164435705223028951292516916535224698757175289107963391698144140555321778827949555486012451446455624024115521532681518371541759574205216403454199335029060274437386919109125321556825223011375494854655247157799790474894752020620828081264791633202254560741678550269470632995130356519514717054687130823059714754375745313329264836649077667466711294825128766698548667175568538641567733853654010383847061358023975082798311730643208629788983143445255743677414369898521978140015707087406941150599394360433726736367874311971058983653801478645266729978912550084110288142997202707152544671922301610018783063131460142842808316753195708537449894251656844661971348977297422670005567321473936039739201801657652667923142100097915913503612055096910130066351593980239320663781643164828294789408077745643237298569459618033138878946487773648167551065948206162815713095653918817722162389461400721287993436124821138249680335012419722105230238648286173669780017934012277106563188560981123197770069062946889840375308580299151052417500627483384829555019266268953429164352338456319364630414600130803639083097998285433007002617968968102912581443960717320355700028890708956768422464904827111426340100061936804702152492527560624248586533797060801907793822303583131792300680836140924010618421050207449105514218502845464641923069876871808597026665530101019573898004756063362956745872448790125356347488015601634238398563675443133731696140093033847086246595121117452381893157749123697699504083447687355999691266374946928600115321645589156011596652810902570227819558672991819227713172641718320545294129531595394502432984854327501724617491062268888600155289970113534730326183090472905466109297096628197579153663930247359068620205228994835375616289749912574492738797212704863309757156598993469141502583864808834973098817423837266739707760498491190522819731346961412506217318879975938374372915048237660854996971845911268446970751806088959702295016188627090487648483978487836979369954461610613416933056110416666547633463915144326676540894446284699439995507735895752654703816216840057308298522705223844592366977901273204896651377070421593500538996782762910462484824783433502899759069510064759500303334868627879559633753675217727958712873665171304343053397289936717109744936283790507615531228239423557190907357612622080071934640505184449230186993086325296346180904817483582278049317903757214700305980591692986875118440342336869402391895890154776114680993651120094384296260272573962537996049888747842089834667841444985175428804281057711925106578893519394324537706149685204483279280386577131313896635714298713776023477569250905029717282331901711730228774430450089144557456388633912705479192960352692871128153426245675818826778011710272845391141464992181060266922286639356689074839498819157624484045060787277237305810938534684896221040339800692624088052610588167579786572072692633722904944602781589940889220674453505213974614975837247235599459449648315048386942225295275903914700686599351851841805885769206449571319313690380759373749230830332411934449997490529771773063983279156701422659213332352009921517638605960573815321019370049814584926060490262552200425537857738763048501690006254217109083154547982805394880453496618769952485889117870952019552986216970390994587262283465647170337309199781717973737297413506855214683502967835284032581062507494749301385010997842036532009596386099019055654172616392549186776426910151752377158176394318452070653638212860344961278787952172091319607218236633724819420541348228506951839234855519096752567760218593414605667762809271221339613814046490787502758394547424560743885061962834109304770458993670978229600244685592275338404660694717287748626618964844463007506770887942513484941098075161723479183379497276641902592244845288631157547077924962686254781852293223678772506489529400495180572840968755228044060851457677706243190070700202336459402420775998161433871800776251806851761974891703371207264602176871476102476212800318858182150270241288333838917433762690837267190623524594010678289304705520224799441878546083269321002615452274195922107896846427711813680909034277759937812562221988712803223102574134282333362161296452732130492530053911855435039060647925944944182389990379234814183807369794620404159148417759292169692802426775190447050004251925385774080753996272085915817453545978198125520141190779886711295279135352829335469824815286655899858393515929256426771770794937090210499024256869094285124506699520014961588083076549290438686502119068518498220178096861781271917054237335178721041830515282136211030759694724836913758222983277143636529120076861711037757807438738784048150266209044092932049264181438053982049474079677067158349214596995285558422179505992153154121600107633672734394062567685109861150280251351821172379673059490596720120565299697110240701069502210730322260087330145956758266326234045526727515319154771896178236772806338757014770636736904088034654050304228298818559985104575431938992510986104134937059696765904424342381112474879496369080710977808426125005063489379793222582162114106207013798740981188526816425298236091309129662761045721593040756309160290346533663313481117643493721808578666187265271811457908848380286026360363268323763828315418867724908529099659025758465798707513537597534308805440262397740106475239557377430269374043972786635426486268201608218062284766132019300835434762873571595025702310356860401643080129599821631483853729886501000935259002850260591364775969054226023661066364673947273045674429479692038886080322953248355718676887736180753559821077772616955141664489438137687702626110039955109054917184760700180474415529011075560950647513324665469516488443572622692177445759506455298656516321037116725144925302213588013280601655882874793900545226279893398044378675482221484627996258414388288918872500778639756877739532777803998458164057692094921917761952427105736001869140747341478445213053873567352928590581773164475134445692280266531194280809550151648946797002447889006341241591520653096214538524715053751006230848519608122676958696667481607755559787479717179169469691625784224011238219867834531363235983435907179806150784984700209069501499556301809765364067860501682086793367796775943389955781994388937764209393286323501725358687560539229396098460668054383889573955115209202320408814775676942531643047195442482198203193746529941245272461464346378836060063036235383033066079884277312858922171309884477703641444771400563607894794953262566830906462680594960293063438909891644496047749124542854085112631846846338320170293574071918628538930741355799275525980897424138612869461122143358310279085224204087179788149829722155710269518552328637934026448456555834047778257463179900835959097701612084090111161711750806945525088843688122186158882045362449910674063178194101767438219887101133632889008838028538888100516036842009359436875033133497531449233361760819020284447737889540894456253684240071948561867088413317485248927325167043185849802497981127121027675416881888118360622336356366855882327394338003784280745687350509655682963940253752907264902915909403978783673840306712361948030734553417654483686729771277454216176517243401735077016685195489791964924684343603900768874027307514087428658133034770136574535370518193695915545719501921709144195728312891135062162128650568940516357280664318409597721008837706861445009373976278375530357810966975875856776564300837482597782443791783996363947393800694341916574220577119392913813242999437641453878389273516881361986033688021552590180247217956577440790155733715210191550186786112627233812453866447355188767066394579313993069682446539270639699843324181691934466837917364505913580125013970530865449898797254371179619656566375631134399446506321202232458845611865323076294713546741133537329006155648328621143858153025887747433752782130476748770278356566744894360462997750411044488634092518697831773115264548666829295840152222806067959154579861531682781079894851704244072524136401471753006873179556050043379601992030558312041026110642838827364878298544342119699244101339115512058139157118694803552969655472522728578478223139439618082204558219165392826900274056042362257301053752839764710236155848110185259676849208979525012297590430489250320160164464145970288947211516858553614665526244877153872794501958689166068482421327052792006075634410319846496840031508590755435794007235703250132977075477709492803633913819088186134550331294112246441116249184706168072981891210659919855128638592372443234327891388649443413243062800909977335052729198183184423398661770421080265258745494796353356121078334253443105467705602806259381319448654730024035704288289438849795527227462087311967111350591600613450369621562961937724477502037417902267457067939385555441966048750673052989750585872445262001254245611677961733957747345727853441583335425375924739663931830549583908303117827037771097995799904780027254583391120394451585342988189026229830509491768147866360995961763081847188622254398905442350711385623274224470307036831221288603456780057389779796093342812484501752512973138846838110523208833102633894860595292399360472090830263261406105755058540285878354044919538537915502450901762321095161196756377421577134763233911660946737433885530953363202357173006885828902745099126252863742522708654494603238424861416212716416447128925096061691276893936184236289923729034748900990849506959669667870498890146893608103299860494315296523060333185942638783361263609272262959427217842191174825769907564119750300220069573589427895611167791307284870457144047582935916136599339280797046011668066578569644241528596365172254491848974070435229693072936141398578858010330225875770485200575256674213785022608472909645068017411721377742507168873570981275698757552364528513951938972566175283334575961641197312743107993766806289234031877088391493757336814810460595642775891150111375136491178516199544021751884856441775720613841265649753301405584563688395455511248182425094339606509032768703504061153016871774134301739738308409762514780989559795460499258289325983402531135303826844079641475651829116293786026359113727869493207109930079291198012879961444310016433627337292837255827138231729093353265298433307232949999152757421580284618646973535243332020250659014900004195574114568081221848321691590270532654993313386973092326613672133006479801650632093578078844067121094551459339857632402998199342506746665017658820712852546923558680529177413997308173533391418821638439179287949305155447473423624057693058782188497516195262062780243088539590084465729598367150774382390863933369579871873791234963380395172612307809072975863239145392391992714545011547416332493142722174011384364380212077355228067488917413358199219547509673030097839756608076039838611863680900857674455815621209638680082412379656195171469840883909885684800546772349001614527557524898429738786520439232671554072797978234295438130976974191170615390904574538790818840021395233530166658854353078097316975614729878368692043527961666144907357084177990912969001991865724183615507207398244376197401181845282773892667877745258809045810287365692890866672453054144092058905741506875409386599140926351939499863479140218250947287768063824131108964005513350512221970816045849758274704979029374569321613094945596428000796022261375117805935574203848942725015765920684946068796987516386746654138781517503471983560968371200084095406401393764956523599203472344096820389476861047882951768075636493500907305598560914954167112888434013812635462880802462026634031812454047129213580998971037308168997983434743914405138358964750245931819992315174758607800644560859052169276498117110742643433175162707815792469123212883525931827359252084287113048583272952187740175287516458066174745094245653258214431310032937677777760104996289952442392536325437626105921385569028587266048344267696942399322108655584968743471853757687025339891697334110865595751383191900279830927969635640336143887260662958704348041486839676699188217982625396142581277566979908785957223739390133950937456832466009495236627749088821344606698121241502640482908632053482516121793836442268631810799938339113771567559661003261045103278453302644994114985524613243014110566571298776318127741305884625232223278840965558029088176852171531472305238534743374958212056151953049392760326073533181130466344718139110488428404406788985570288487036941799765205670992007367144937313896310473945398033556428520346979141766726038247812501248580760468758811610311151438319618751350401637772930585934471713537719900925833183583688788857019673733726678610623938215368042697424019797911546938557898121649737915316754501949783670442969383675493315237981217068622324968759214918090250300795377813227005328057913496960538769198118072388102290175180649011643938149668165970567807284767013629727342742351473345496514974823544277793157729501535041279115743466157180197413998507249643387892513414979689016076729592950088746530451944771701921046025527172280279234604248852532035720577451894059575572818960095053177996966929935083523151619705335766963498645898170515707468272895942541294117365739849703192233585082649861452969710193536048618958653635423816799072035436919516433149646767666552149219748154949935387196623205893759834931860808622058498936226103261534880920780216514025317349052678244116918352919228515848010146809930328083203673603431520356371683364531341162131754976504728775481030275547941938123481178481292013294566620842008352290529461887739982197577572922438897684973330390077463226406129112535951873910170616383139906451338299681112759891002612543022383819592929228676475966326525939963834633259448746632112703701025329540201245098396608649003795988205319736268060893286649269684854115980426331568281030571192593487172293638988952815315129456540878502471409813968623939848885774892143900433923239840581963175419032912646460886444852837649339102395111880334857574598009612009035871856617917434838887425897069779733065696940999514947989553146450029013541521598260447339638835250315285682874344337696533111452019400240058233717460400002851977323596598909767816472894286469963763102736945057512638614989193167507827937135001456057293780268139897665743665244589900788756839691801050295082984591556467565354208027393781184286981901433735808577533892565187476513909572807262467837358497531688049294519728966270118481808282201089157426732398275642855171004734021945202052902594940832814664353282449483385004257222392882186898676738956161171988326091554253860255874539601611636965011690942055082583999807526664844412860933491416070014367393751302220646008972175743633200249461662548296298364957934259283288693533436206732505725079546382333376605412272410440330484076171809083056627642666569770215475085400779429059133516687305738074441239913583857581285017476332103194814342475030279053471935470800109041319841907502433660162351924332138263966756168846401925794887028006582174254204791117979344870663630238732069059895972343661058688862978226954172685734030759000789237615550477375421295779504979589901670805302793595468481898768817184927594258385919077678722322624665790328498743308960347269206580566255892769761403106958964873640949781533637309525506977194309120285451417854777082449908908240178857957691616604107372880893209207492562748736945731681486755879797961317602013400283581049037797738391596628559781725432524802605045098564370722172273751957834844565184840491369701900946825179978623461280922658978037423301991444696460842824446665259119278768526016829549402633255822964462335280567753812827804331024726878354145650097704835304750706646020129903954896987697384499738632504970827498370369850805241066575913126710704088905307474958127495196101625039369640256681220426237891827513730017136899786028401491864124860982841197487934231714277792397794118414328986339900486601852303627625694629759735757002388702465076692681614571089609401928104298103690507617403089152248422613188664248929920611030730430296189713864085226964485873899543376499532236128069993506816254197993965378164909529037012692061983486135134430518116674473753826337727674706212494462298536204226741034419463249333710053126787685336670650194548237214222159868669527141968344703796380080645840602404756596219261085092700568196183686606973737330585921475751724973622968438955839894336008482179865046554480106094019530706990489329876540036358024486116346382802635789361414332934452526322221408708542086871970771265738793518388789430916470201311589959513570623245065596454603865816828705797889379745210326000693861037552733902002209098814575101318136437715148370749846927093343635419347538031380557964974395241288238963701547257192292622373830166013239228715071925209924233835234617637618704306006051798093916843985598328647476087909508285544651694119055703853901645776227303002333331722632427394980373974743719592804812439228703770992673492800394988322551248978229835504173482404221804164832464753652393908039280877533738344380279159321919410708397624180272271195666113055907120306596801158001539241559602565124018018544608199169590416735137556927525069984096665810597032817931275177497347183089695979753898248214047499119706384448789266666613826103071343744779955603885830747480160499877296010373652587838343290808228729391175787443261188727386979651082749351469968663736279064965711461604467155792723416620799506711280717578398411177435945630987033706175586444695454778939607683913003035064473854826960822503567097824512326281116261654738593335383896538433917947351792409634514353224349497804218115987470297865209679042434350686425199899985816608019513467287566568945833821749727693306374768677995505376713338019118702755759383008828167784453387924300976348343635068439849417957427897764293903364965095886190486195661581143423514171397547143584505013654831888834935034923113177652744326384746784793013164405072946323035128879606172867019036101234114825309553772596260517599074022495033699045567855877175067358376475296336263941668443207689267059409381238242907186391019548843181979799384954707586077719232899733730086693586498948844043747331523675746087586132933255314893855940248033948342766361003149746304582125192096286328265147933284040611109307827188058025072459593954373343237792164656338071228643817506051525606289715454932271986735178696177531530510691259717046219714913544551981159000027711481556920396234055471795161851002621277805482160423634385341669198737338330977413396813584607178932996503061861646534282982422280890719916286227505246681062423542696051102207415131724352690831122861574199635670541361922151651941639210408506832283335584406648529960525616518032176212999607193432072361438097539364167606190093620969650706896987900852125979938800782207066945498244220119264906369271645716905189319553062713303455443717004350870826238274554967008523636020208200099652834636130727855344444453884376053663650468803865585151207602708756369644906229611876828238083395839777215355901351517318708840661241329535634531944604945468653546432898738556462501127214535454957435763815929087239627083863054368746261898421580160280896751824573509581009086540076764515756145472071029500563135076249628370489598887686905240568687036478461934993179700712888556924472025225221868594079753166110599426231183500683104622642830996103919494214814055069776656292006670804585707306310303646169043269333873754550912838308190045932342262258293003227602608775807769075298445916949050948827226405801584914309948341378440053541541401728610494028469382131709952295629357308600316979339976705145892123545067571383170074463036498557255742547510037584264228483588422426527616638321833985378623443631295911459630323816682804505645809968147178891358360702722675775953650530992749683823316740722576199692447076006859155667505944029201783225196272922049175787229663142751055346238876925899474521231768851401254018015166262114262344195377669250414253897124966068558088304397496904695466969712413297665230014460253127869932915304406498793016280412292881952868023719541557646851760180926505546412627225118137611237869673918836034777380333086246836238313027954605943166460218401407305837339134623735321239643801601673968283118869140961223928389412370643745968712530099516796901598942822702694297598187184805149533787646737084281595100346816131838102954122026446662226453141230100258045354048889318493188001716285317510145519540912223857396085344547519998040045202452100994756735450404818834600668364375214844178478995939088017612258360815040961232394384523726459497558352166540147430227155769626345037427747330857228125723864455055407532734271736743514984103529124563383291975519407197638018014351824126898695600041212024521390507383093493312794076503408047730616212438711996302114458070579808974812384093303511871104385431657535377862856280565747477045004439705229716762430303733182031684322058140791489453605668489175044670080027657760475821041048697842368197799387691195505363670067039543121882244188402300467578748705173397699374567891596159395894830892050056208594433770201868365836356447945774993667042833866513827802661710263825887592121015611515476438649280515858877707025048252923518278097862356176216566406959340058841432618224898765394697235913276168056697622815285962237518493477147675945425970141036420111098134190711148495302031547310197970438382279519794323040131780374213695584391750910708057736777095491269515984341157853003906285014414842096683437528286171514892374217108081389806026346334815609486818634295012896898620650387161592877578390239492894134457905105305713614567726397234254046550525691322330987343628418162876612541629620467712384665933746819118551102156453232744672356202379809225413243946161642552246710366459292358503824635783731240276733449760882846668876051634850536527223759373081279126583817406604571405432824179089517363922396793386404463158432697428604905475272479863121011538699701888277783612924106626358887311545801307254574281682684337130332328326051074582632208838107363440474609277632772439862545565174699358365309287351877709252065207282165980267346500857209831205023037712160642471758757744764599642852660507076737476230309700121289125465873812142884521625412092773998461634981726194820857375360302111619311694349253829537422251661687396469046812175898011675833841143991419649779495628033849713145489160815150175689412996064487493672318810764120693624226869551461540451117890640636193779218494818049615050296811722081189619005948153678793564778156544131291116420993229577947922823948307317283990416510328259645752983821709034834027731456236083288387271753586917126846859354456247975135437281669991250311880256764781048458465474595755086568710482730942274342889048429907877793319883646920766803063475459776520286119527543046938857597029615780066801670743789888013816086477707226036944880227906525409611081556361033952275062059828902538643608117247080323297304911018760422171218216493609573409851643508332062907978502637948530094077295573120836655138657170430461187210173120645354449230414689506381293663813435470171540723404274365022078563308989934295354166136618001471027480918107890005425989420290744461022770233436347848241068997559010351989283068913570213023768922230939534178899909712425959343614887888750149660762148656650905551844510003831021555041040431395997832626889348119857067302919682892215294135001107974282454276918432859047873307082970912236395352783102221797330757275682229174172468037225222022016167909922609182281682837313229477729429958516093691714241618805527771477281273323308356640923553050211443551895303101860433644363382076488917271046160424441573904547857694668427263821393176802422487647382943694280488693733588549938072085361247384630796458310689246896240261959245082870566841324993266292702670388863614013716136580462697698000922165098762112721421590530188035365669146200529586394647206436296396383728739177691237732553891693556321688432841932671560953236721355795797042349347783877488633867696835766313769968864949971165622693354786985803766382642302166392685391399935694763345834554709552388802347597158879142353214828199451972484171427429781318979917846029522454104547467746499177479195250365739294188238653308121454143064581552735544157430583685436922778900165500960677616797553506466310263968601567340602659182611454264478449277850068266616277628019922943415165581979817339835748314221380750172211512932233810830124351732262372416008911796155581716170130779823582322066894227423254316796488991219076915546352871607331369859742870120803837498308206915595088145894977109736930313431548384712086238233479083709596874361388771890382791288877547800593648046119465393804933627830657831808328336847868984308756324129332310482313333427826203013897867102511443911341764500237250170389488114584648136682113715115394019200794552611621083266493990063481731888517030828307840545447265619238834203162687510579124483034023524831917399809847981559741996499551947752566888689093253318684830496566903963753029857238363929534504130046055782782769104096617456723322504704712050332705348491395506474067567352028395029738917962710466897604857303294693081196326766873715558186264179275264757564513759383031683715304855232346718417730086401410980657095868934997457844910316813780880163542014968381317961799801929815724602338523400081806734592867105921330245410845215101299389863419158044976172001661123226820640079451929791973718232803292160854479771471746997710066508857412321090596427695017901376302700731404061068593523832097001539213934805734585327556978936715677605513866724268000807002514465663641607825486394034487106938920253193195555051994983944376282872886005636527296562671356878723744226588197244675541663313960385859946335170917834893644579848208926340631390128992984752050418952232735710765788477962238131515830025402069510306435863686775941455917988406783529109510705905356260351058420746590895591455505985264390614514398618393184160741426294903001786966356754193991175281508241767842747586871377409394791323957395627563266935852640238146834850033006942055335023532265353878258757384322791708190049467851751377535503444538307857980777807025813629446491327311366991887727901300821838788782971707382370016193936957659360139562584389983652655263867526646450900526206883332944329441676176646992992323865253905318943159671240392943106429073076557945622453323192237960255726141464459372880291365610498678790787361006350572684004397500944446560941871270693460038989642480817302139460686587940231014600377773216553990574639283738268117032261627757684989363357914534716521878865410189868044320332976616133273387705757262086916933880016709020560845544888095362866877833597320575889540860978243661383206694344435545889556833780801766036457098369350538669174882393542140925925468339453537951203523253715202906462753931171207653963641440724702382095320172795306851243995455456518587344563622670816831312458197163143787272410380850957943283720682486929725847457646444934353190394441014102047386674641568736770224896683100700261084263402151167511844432950767755854943318298885513787468384127633483451136556474082111000772918655350104383003309933804470883900216151965134203363718874916073468050860616385137804873676945087378195463501923289419494046981136493086776146084602211124082291728249400324492096813308778464512187545211669771868969016535151509827409752152974698125415713202159026448641825414114433292021667626328079536381023571801167324889067951241769929364536740681130965306928156616774913761927078227410152741289567491616603980019725840571322451375740013176558858029749346383530540309550295964407451737142418201907949001614079695586605749826282569737799913986350380909196456617135459320878530248185647419378785738112962459821182798128589452149561593527887229493510249403960510169641279979772024034596098466044889271261611552558696846543749485463823026782664890607903804336112065031539549094121109707879555041799981640531103648967276872796996797416979438608896990407353265837113298955907289404728363256758237334690432291009469309881559632210460539599657544093395779233975027908974133623193603298182007771681028027390150990486907733484911246555221829132197257862024665543740643673273973226323100428853558525614572088728515219102537192923143759713168924108960675057690933581302968125255434583166409240849490759470862098889360305666533532032425032262735707707238932129461134178104654946578273236430472040118348202704835395647625916459896363521351960030603446546914237667653564659931168550944690092515941483681540185629513331460888061441723727107503426546063894097621736153675795714747302544129336010616025241012294907403838131072446615814606253367173314715842062805344523918244182222340388674489019297589312255954153850589020709846993898858996620724379113102533200933743632492552696915425907381627268864072901705665403601965857857927987377842840263112220258736747252765880661591828052406150135704208752119498637438999746235346750037076715483742245515529582714206564202304332016312570714005379031196412579378094741538573132277601785727316702969446525779501844409751247246716999106532460309239537199468973450219013147950430108197464423877827578118074078005274393203258519146479266681777385257272089582965876876449526215634211081455631929597136519496374570877198596713454074629531813423216152548366278396732524541126815295995562543349036241337080661307733425474556540051644942611932144841474934545073713825132586129312442991569184305845532127076286697376575616305604678893720528798766511040239989116733368764433187414592856446889945491078250986231150098848873846071387873119019936149599494708275958343960531093779390871315652621761897975685357697778870016759154675772040337403930119580786535072255404697101125086783161482237471958313582460736164113426650030249507396302827348402549643116992213859438117859454021460640847145086182065456958472599702299448017748007393760360753537880421551469208228053452494010641418718082540074160881975018714950799417614354438144779396362508564383554444777484428809862605266011806298648411488607315339500281477087927542127939275931759831185340002062292839401393840912183577196173104930027057749770734776279940987208828964546121721933645984208414945882327390452606293786589976243828619352423335441630127636314736850745678969322211601678833523589238222628307053771184565022961117865809815496480231728497845508199504129813056466831399728161711611932434579519310673436816250571278120036752951437317487644046867081032060733251512898608471473048214825524980048519890576512752848815363274182153898829856601246716030263761018887252337779936705196667877440511222092798052624120953958103033566445446159951832566971604342692580665530461678891460057240321501163931331434521360600734371307894338948699164300907133263257258369125083100832891821644463321717227229389967243558412627270626045497177603929791781051551229745895480561609499435908623251210328372484079282160376365067135344929544874776612262689736831553634146637907843783682952092157435610647210114072699320465730508883991467184169576690078550561377053837342726561724717405665319418002553261527946429386778646902600839640654608727911741122328077775027796857601776308646540364486751751124251555624139429394155049591336581047100094235589056003792208436266211094589123218984731478439668671306446556736175497415832550231163474168288356254832570181801958019572391249462513523463003240525586753011120179061485930730991565199129010002983927764622303860909214197846534954117931268584847230592446580641744429935579194673162370464545000144451606876005443347537012522796752578061881062577688030180850788232341982167828305023634551027643628619925415048319041584337889538775814685807112050048689174083097857708841828384356096125327549178580996779692759776689333092566521716454533886871376140538351199656178168408802794447057628209144921417642772253102047505377141107315852473746171514637151948802995787314356496137994116693851566984176963046534447960099767421294326823063801370773921093582594208215547667352857669499669900050222667905782259475884245521443516985942286030774537729646468889679617978972297518076612366758909131498587630325785985675998029981664223360075024877309192200562531925917283367320854669346589499507586448635846859022681764204896863666503342126046998731046417341024988729834510557619883431255324398739581066522097694308188269379215708333579055934688753308798815356865300633737734733970112883065912999030239992719986935534402048260655866800716704432861930406760298788621389403726869397307634428995792623115172647783449990436788011869531396498713165274331562671266643860141857763860029613669924629692030188337037424634848876317908637782828024521340945513338220755758539310514279251304219305800111786074041027983820619118492618182707726217650462591798684963116852296913243009795077350470141791822664879075439272599734767752220932125862434669274030556082190198679371357619805016705154010925354383688594408451092250011599233596975715234655506504185205026223764896581512443439854530078963681925930175445726535265329058499321868577933727896390912729881735697156976675659024212036136590241966890120057613499254900773664426282715750549433642138531114424109595711265024206433725364107846494393078632622141376648078645683765484126838109547356089985971377559863349845217247428329741130568599928779293137090143595668545776894258640916151285779986466389625961414452651580984749996652138839168509385847530125903529762473788199745499413221546159286319853530100425514161080729679540696346382338557473592924592817166823093634835143837800858722643845385029000403935036601625972478174573906939622345170908671456507889769922663383943337538558175113252453587753230637184213438709229814319080413417771667127312348627780622785249636974648678580101730607755261834402854682091061064345153155185447577905537040250751172618348542592670942657805101058604833311911372614506021369294073573625353974613476883560166875129446728424303067685535228064994616556262180080189415267962460631363649888535195570703158700524232399381785222053646234281545144564687608839188439044597714938157139304174921008176464805514044597160200034688735675108087324821241754546028157894266034474128546102355658512102120041407285204768942109864062482196751904067438821450161286258694420764811261587285199518099291486390862729184758093805313775861992780058786694179055436051593425771861081986057219312678122447535552379332725986883581465328983108953347041075284836947284489839891348065210118607698787183517450187577631827817617075741255012532689551696113635951751774362976158333268017072461122746605946399967661945548135995110996612603363676285872233346305522559775184337294837016512975901678519645974574514822799020645458040091961091996239071660886823612585258925114118599557320597908487807560424793258095487282623892332087035127480516735155021069741524176193256421670257106750526539733005972520477569600435561189485820579081637236470098215332715683471301256241263129618079927859631892491838707558229790658807654599289541878892099669513125459193403507590124624907186246139990542894138012282811555784063153736452162596049585196633279619928533174898057667593094197747276926314583279363140799555178536862448927801360137857390149906556464684826782961471280771486533580701127636747086706169994594520718117911932917362554891906240140504625263808739623017969796440712151808962055369068944644724673815056481739298282789783409064990179470622431951797846627447843112577009403762053061508655008104430715866730564270776324773748626911176904466286945992727248761189177367636067204296533038809793278527325329818695618450489025029188715583382476008781767276226249012988625379028765993493491244225700993307860357740004392666685458494076867238071897143340707181647234394776858252440379067805503827515462827684268711721369809081585644744393301694761692889408777643189592045197905674991567473249222094161946140834432553542272400901508123347787043720265676062347829074875709643411984277534890342807067282520269577669541065495300796210673761253608432339101544366884312859944649221621818154189614979399761854461874890933406226555245752570251721602590302184851954249250060310645269007903614098551987866339559354794602210349840014181079284228949885924338735221875261835450100537841344928518239419586190000667420061789868128331747802338882042551674737470047092879631693369512468339134906581301067602695808793051391968196845876544414231529786974226778905368270845229704236431315609611692700908593931076963622693438199625777039195524303707838968661561718127027136478825069606340193454473572293418376800907264574607972087607338410921832475114366535852402965855712399971867873428651042205117903304668469269444656222100730803586507079233813786348090194629018282248942276772004802899717924263360138353421875597933949756104418025608596159858119059662250813758919295235685360987388802727950793128993144723042376594907923431453968562809051291754938606835260627559782032177754423375373791778437167578824704093946532292039248793253236869115272255815915200582391401340472401713139124794658538059945074283141155016491069785832040160090861065884326767468925565367584644844299608816117201350408118785660599678515622582623040779176842741648298211907127134759772717991094121669623865736046095894781369142666954591937940453091787104805234205342588029373414393516809978878330397630747072429312288050057153703643180661071035778670416199043655801197470455211678879067232341645106614580871187037442848340944600701031748588741812597422375232318232655995229068456154897049244557557033599824201152166240398894114274438656104565000626892061953436829180329341986220528423841402137714630120097560629409923079997098267780301986463949886135254605956889287817109955297179937396589453892397061307137894881478154749178767509670473540475303483423177327545653338466177454974596882182186751917452954150457923428334379574690950280301592517076621722614419268252294247358054792211579701580450228055700362006182982654596995523059463254176483213356374910678301360075447968234383858997428549250483291537644820766060258168122299541632640682945896447631842163310996847658788772113234991097542681623345091209827764670636900949699705232182898505486191685374464602308798692265562668842152144293090070800125740037243918419209869301612003022140071967538250117836932604532665128439046495136779018860006966550911721195515686857572170513892727538736871642770880184467291223548246040467969072388192955027713835104335917633169223038760681536258015267125348698966468613031011691753069743701976289943455350095519300170167355736704124219911059624335557424705765956685195341615048846985215747170619806254266343636749492148103299074933633428691074198802755541326359368243229053064388135969319465914386143682126574817255662294238698563293319809262071569621249692635274846381227388933887445600580303738639143529194417808839019004059520556934783085931631058849729719875262057681911997460720066147072982407210138175957655273201580035630330157326163346983654756704794670859810799236370425355920740991198783316514897706891078103962867931520988757317287100646423523545330400163632083972449712098144834614431189041026834548422816575486466859885926738097476096953815176146447878684860108635208158382444462499431034734379429773192209228712673271537403503618305532112259412792929678580192699103317540764067861637304969822835798509775153844189332823586413932505150443328589425025692083995040443021431124396091578353350812312349449030202900239068378763078241208276878260194549391505044120081511992099969448723555972027158727923323020292541009228962944566537301818566149951675568925497421497690928663853910308300854378377285520356762617467176130443402891860559056709023910733673296696621036745765763588546211378810631774403124168305747539239681914530658874387407824911780760752199171677040094413228529728532987364872606983291424551660391283806034716300544299521638251764051243054354321847654473010953929629946476064116728226544925064081721645272710973605963989684045535468549168355267663257163340304098737241650060116211851224552966778506539685458593661655478709870453715221145861639620721656784149076388308224282454681130366704094338603379540471020183284441125411905613213149746357760632589980847151903417693888911261130371735044450894255863347066521861004917294920780985042990584255880755693018072851175464161948987778600279586775665754088746495996253918925558959409861905950176822145623773273585741425866091876567242265932363336763904614188926070316694910104482254813620457510857123453139116165417172951857041823863878089181015598433502515052537477531405768136596447687115504302321562917765549611084391873002978461435291070677542851228619736643213427042341933046991980528866426654461677198749175683719748171516343173190052019839375109169712685444437872036811283535111012209703363182401539591406796680609862963980676731168402037367793779605175249022104701383909006554941079805948369505779862258906726968279622682400600807472494478541616977221508367126210117544336686851908784411248643496484735100391249050920115975664587406046322108422125497492759083519171264735889057801172704038976018558121673685155479768951667409527252817825801714576091475693002011289688400157275814692564438240446539281445501743761668100320613539514844293091121275279459104644670087231874166706903613328415656184115219339291541837642511407381569055681380452578958990971382754418626067385765404536816079248022242284772731626964149679829603658622786949722785500586247886474672751263680852291471547484472175474146782364690600560808663281154113091508711828966172071920488188709942122911699041873257047991625411746476058798127365606550960343285491744366805565337432754042285718517502220358674186550780058144434390044608617923894353968850888204864655643247583859352543909739886275238550611553631281743061378002976274449782123037879536997421849082785432127892994994619015672074810914168069882406586202413756375514624298045111789832279035119906550115454416061622856899853555064773657080878094988599498935765418565880510218129232533744304943148841881997786509021658175240691115766832860822060442394023701260815643541487165451050034676811520486950624363089696678186401532670916717680064848991058264273820085572583662834007710583315295727469065729633269503868817406744207446868204679119939786024713101423875603280952995713880323416104960506477121616384253560961801060013607654113015631116305554320857036846551802770779834803491208214234676620609377149339016556153098860002599272474376902799984309246124339524566795480025814880646914255680484875185194223238425680994368398260663665804898358353098115584875886870394191573983205781389064869279663585206641032561609037292545675208548039893745940955283853701011598364266696388654849678697212830706493959882497721300870914823178303546784083733725982876474859098289310111913224498848857851595751819226093779458067240453298793485046867488717666382071684519716964507446754846470320198676726748358300329696433673521325401077284178580275583931732919090873039433388097108216449351294320905560127494820279094911463048477209989101901415850250366516070021528283582017627716704941120707417285570561869450486928351397387433294960823391426014758834157462250160829042494520835063833501159225085645242386123920175196911018762806429975526722270589079086137081565262568486092357147321034778595218916709447727660382891998967297854095628485176552288258109251036310070756325782588783469487511175495989949408375370558399703379468022687387331218355024818676786674475577973461572326763079482372899231966394591305099332627349978333803007660654638144411792814280358846393990184535467729378153465637259764285950417976500002418940794366292035696120935455114375809639591815074198310251711388184288540303663989773122639727299813635925298943859470879252740388699657631893044372155083068771842655137389854741550300780296019271332908915723872602245891761378593178060494577440373763847528738571165420758034446806472000462105070937193488448979449253831484216091747467389079283583168919137458954467239518638844402248093661410844865611724509604445545174978523502888002178627348004701934201291415464206601547789870259024896416525523036377219130744362464432310362926667838181958624778798883939205914356390612890174032901545571702583144634696655920017858481001199946613478576835184119177771683344684029491432433439784374365553858050988562443871719247442463284132938759722980550950364179618566479681561505459911604672285792619152429199122586891826263932318613580152049523949261353038706838546271522636984284213626528892361333482126318874931901287928927116230086347359200101936069388158904173936466026405035929204632306136784274791220567532767893394698918183021065289894444152842737917974463273666375068725535138855216393777097860387004748541888600430196779449171668172785716378726778478006435439999068658376107971959062744149774399594838225342149057808702741089867500386036323768304665300067096180765411142667866113197862713619750690063930209012079764529184332745079664781752773388629386027297457886129366280036838339137722977539207075323585964009443503251232754800614279371331165135880177325249045019407245281550335453488696243748180459625637670840109456432435639014952849777842140795318329458567678236463304869085084398481964271788664719665177238995376616481513641994419723702576713497157899116922822721531052180194768374532509078165134742808997859198445619303453415138740883215681340236953552786031864450408259757820048624624410728723676457741157196544284037843065266292761565233673516739787096582425235711644960306959906152849265911056986651356598691091502630303905913423319325563418983920300002961886569516519456330138717450252789950926070550706227474965954404209832142517328606103298528539815224234349140828342970262992282648036972227116782627725739007821511943317006859673889120566649343952479457322381944744880082610613065735361319546558307309062734144487732670406984870499379724851281446364309191629806028508757715688971581931284720726328535030510973412702595716929438485608735924839041616439546121280201185087937766389815874376914612199308988503262415466067118207930376404733605655254954716556560184111532879067117269317329304553424186149619382774962939265470098857865726046264794937259192178389235377536741852141309831580383293556106194085841403045614756161992268499345437854640502362830066674322945226007192814889247705067992834693401670298820794244018939416716296961185035433764851206026654391620030642427150019557940644560296683753451542667376160520354585271450266668128912963312134024078158181939893320859234902173185598305041156513739665082525487560552285905707836855245442544247420384475177556944138420511514440355563953391921129134313148561425376914161787431866685116282238587562274292800046204869077317680206384649798961228012356331297505102949360996926725531782966383734967067369628144956194609372338171302293804935530030801289828080090362879881633048126106708920783451155274693676215906535297668425952715262397501499792666107408083110005656809153888261320033311399998736129331041159194658902768845548417997492471756365185202824195616198603869061457906309531882882000434144357454427220303559758648607718091381112275748653722400485793954389789860722538924082994461992588200684541270834439589542128455590816042966926655863584782016010728298163423318720669035767672428371109211829843307229105506115591401275701946751915590720322525826209394076811849618116894355350713672669938132824662597781418034699550012258091987458046010970147118898472060334825561402208845956381792481133625972381560676564337681165002278386732233940511477193199284902334434931481845039652518453390230396248837205013853785835046543628942807883224217907296315295807005879960152133396260335573956034660156277201046047684321968725204721138571911132594329516047507730748987923053060389374795936060443924357749631414397070462714444544136489308915476624375703260293791070741069784941970971158076941292804095838890007898840575901185610294230327475889412774441998822895499321108022849151183125837245274232028784763588382703984075214267474094174550061625777554394368634339790814672322595774178680605859366962158002165985871791156535658094328579711066872897810427822875851113573123486654331802621363429101673905918737921616882733297521438593705663689851043777769758872589388165448324104322165632326662473888008912560690098441088778787480026912917660252771093608864706643600541806428484728898895604154256903798749300414581202040719434846865412689851435105368342516880261444915463623371183575864354888066347169984740351768046030534603229734194492293387792757453498286093895930178283780744307431044927440495524713643990162384826420449476580725909983989040381317030536641981424398179836849268754155340844034554557184788295787569184451855554500302323824633125988646128319639447769595322537378483927985588357872314569250550211490410216106991579011843145822538826891653211109312169442668211030495746309943122757803729159458941124526187083397687420978325442462954464693119044628364210579742641312662252868918952161356287575231867093256189781510425091872391930105115961667438185339004744888434435100115293574914253433141585379910911559979670133845196474772871393955572467095805127066279020350821624910240543934422290126573751860847844172225942528972013927897780862050752444716154279667739834492025903572655159978054822337243082886446045545484576325725793931096407642478990477736640328611193678792144938187980092199097715754191001172092086571387318959006519721143975124292869040943250135575659003964713225310930260773090212073841499736496721058489160174103009524669793778682699621217491997907028230255932952729112804624653113002237009663173792230504139085077517668949033644631165441290648465096906378717819245357597958124501755689550027185891828986007789707072067084884042359597005371726658011467634736649780104939315641127601905520364609347307442979627128807941529786734186869775302485024053297219772291768730548827661926128084712869638048770572493794925221278713689993917232792479400845935898998349020403129531546916252921346637446158396563913350922450804514615221236731215739157759942772517214602200667626196684865700080570441400012447656651292370686231930173300484966200216854611013070374249523466078099519274932746196488585253584317651343821644704031401291765238606470272728093175877657558830500816330238705932075579380053669189522899333302655716195907957817594165503105785025868792866507910400345787793496510757896922207884665657445052279458206294244482533202780549680089930470156542397341102238983630090741911940253111119037150420303257528341239859430387657330888868174935862886524083252949360918891479027652895204885056690140379786171742236482241627916385475340259710147112075581050604971991050074458226867507686071313700915632472192545628155182702211951007815445721216223184663848285741659625052720328143305863982924013244386260449475837582943748955976926401043552755500095591569766930638549728597952918003139651163505143573767214343800288633212882574044602449469765397104488568202952171673062330475040526436165586798566836101007033700582393222516765447216046284677889060568296902862885592264542881288454806492246841696254787528409538086276203252734311229357200749440729492800731395713456386177375528096659174658643113610690291631838946371362049828583730727470650406163017457670699647022093759140714314300962375936538570381328863740260491409172293035615894215012246302292959690602514254066279045007503688167827535305381242886557326309420070603750074820666273174908133386650204484333606605725515447870787015432842097945573661689700012025193810238717825673647380755480407789129676388878744171774367291094185376675197699936255851789628984856062629453235182441126246184914743686856396644300619693156482609363108247499859680290396233869288161954224027131119829868702269873307080983001023282711177962492193018901424783028449740587246861177096081822529077023104495182740330430246187951323498978805022176883163584024752022668410828490933688033116033081064574814427569360833858720275701978658699224963830816184874893463881438641287896423305867395931530954323213687490061314175267380356152192777625781906872977899348960013535339389791827765530828329685841019205033531405206225569482919924836589224113917011985421645433608984673058719210735497634062607721415570570181194957506801593243851854591947652711546373729713372473149683215363744388309269868951698509064848838547233154187761583159392089411456236601886148081559657225111742231426801272071078213178661759760591981453145430575705573691693990401725548255084164330715683465744967212583891181726002310723179387293533640246839141870198106907177475822402563869108417218983654055999504952740920974749613945357516367566511869892097205922177271773646954853688149700211534453203024216125411441413825180187204213796091805681663714739903565050847218565975331157576946043315641722682063098423048141248059997115133009590458848499700670908724288945477599400150301848706332913952388718312356516812188479639318303739665693565487270962326077463843651439590329552818544544565092138029330617072491505572441719014065435556066494235050759509060972574651912270995279184583356171865437866652791808872121906241324417306325433436405101574172587308605410124610468312401333880583296911577959364838562211094997300072133109673110472668958712928615329078581861538359874110507479691924352930285998803831751032374785833341764898746738387297924975992270578655788378045474126266479733479284216531445114039025955245944232744087362710269644413327477134617530513116113216447643840674454516555287455589880671666110344401485500517789462883858069418323667174717192011892712084280510457418199480062142374990146968875466891614125814398353567050826620465653307781110562384688267847086512819230825481050000425777348993951344957794514939912205877104075072519681269186834430479345876601241519944066183861306499047734171029737216261446752194862443032324145680431627649345792453301158972252008186690060759581923286180749754394851385771543109080379295700729594542348129974098039159858340201308627044497096672723474019099445802736467808156140122563045424231306464267650993733280354136230969496136653975868305826052182593766424009307035307473701091077546963373193412744115826198042252467479548417541462693483414787448955504643205478762973509383380003250091188102761764106043371664217132238092920940566072164422950166160773370998197713810376803778679020783940001908899578549219663204088385917741295883266685392675320215373829009055312281716118082265414526352652465523218451948734474975583117620454759357897260348217927850139589996994062474178247897812842062811479095549100964485333449453587781832860952395321686924711983761857063559075359346536184768984515752502395445978123889031498164799025671373076985111413958519016657377218408078852919502856582557512059828075438090050305436789423561687570083048081963638872028700524690873419614822140843605178738791794472618971403070244433395019500895283150039901874989690991274073384339671928388159570879799611205699899906923725167627864879559649321359591962633052538182302074286332287729052382842527893048113002316493171716983373262639836701534685862921979960757704061708445347558514064493262330611085271140843445755570290169268998458737163498552502462690206213597445839026957531550682877999623428748379822513277754664847659221481948517369458890546507414928729014791778368500497095658134517180833871824563836729689720655230896586779245466077540138361599868655436426811725473563415083530364159844462084458479824948154783876959300015429980802900886946022122151166902572240616496357982323808421187039980369093387468684728101493170450286767728380757265785299115123689659514087411647751491975558349128257100889864532870809618562072029224258302972652223910753513556694459973177636954454075954820955740672865254377047752408105679156695091678764410377978204492216703889892288370934861170078592622535482929354269591358980396360492129586816623223037559267181473674853445685370254712589953618250735289503427581837039533808530759751992632847262385937164608169768152995942056812188855659532474467168147561800556503570895495297827317000554972654988768802458501316711134287885670627812321786323592330075425212693252272951850154366871116119659435732366821004543320711493550746157145460412620820738190912251778765135382085338820720186240488987378181292003388776853311521738852791269418206356271980948762551232705937524141482354281707503461657550080031776673537341184017922408531387295245777792852094600378774019666619713308826385246940426022197943708702450841725936440539238355280768143553834943164706408401450338493964440939195159251187572554075550524294670776535515414847969273093235029347338494179560245937206808625164533814857294209725393718865709484874061414121345974638040747813876691204189621672383587704458450879101390148788773363765623759243469225476244794875958109275301968691886560326737609575340218158782477459385551500956046255658118165535988948481743018952596316844383867780133441811118224389181615857406002805531383670748781825965511931794763112812932517565437456205921791721674701041804185828945166155595028218308469038254189481223241990670754749309232433654006752786981869461055488287300205327284950885631465575756615164028838295716436641638530302609096425212283500979931715698007295823303384148669715720221455697358788937063109849849546099217241184208819720887108153763069866124774166568571080558516898708803517224733008014430025723285413775805857344552201032426623873518006820137203706600649461316067041185625783585618615902916283119201536885649559366966746811185758323691844830558370571065789828221279830508525556779838173228648243565277558167806748093863015776418557275773514388344514232019072954159964738005004046363155351728911487330398532383533655254742031690818084539774125311309079986690038787922061358491927196437757003256442385494605959262031853017379059736048017002267493862416562265757898916649149556928599853387536246598820079512184678660410672666183923722963948687766026335076648090296101915360998325749530246682820917042431115152817901131702375491472007966770387313485700087860990426618431753313482160216246189667158274496736548094641682746972718279332874620937159591384527999440679553838232136814107666210491738571628346440869679383814921039295289857048910337298342009619139596006576109759246746111722607968492126032864222640289599053640928510607350589712086879000796386857629629773396615064840668252046721348270997652390510286736134826512360379141663987971465645791523740916930339698917157322625636353304133337733253091792856031174736257482009728609527312523651373936725913067292543445205393760308648211505527217344931802939085076140574071638479595143707990120864295632130981406328689606314549548233152118430115605920680364543627571684554844841138618622940958462378116012089810695706834983493241066240061664498525404474171731205339961343768300355513134189204462985583561353979404421520381739189498107035579106244009505197201253775998443890034147226951388162002923974672643774117871198723901899589932818856487713335334449730616925779742637818224043977975846019802584016668948433945877929352518317914517774147073123358798780042609069241750880443780898882443175743488699796667575227955766375685346973506514782827420200498432159216827220024583868963629025967598958657811570711040283031381308732546047844815599922556133477034925834731114965297312650374070781782561306421198633039152274348985860875603134747067698771509077681442995304699279825940377350577312826831797441790746224496557099754578667724369541671461131464499239019503160619633466225937923882389549974276058356961111855791032630051964434782734345499415111941711549524432425215955653842481741314300438274321612941574089780749924353772952599652531547735258727773744675495559650352301016150815082753370118826617515142808306576795478627951939222595397808893794596978569607794986090534255922848839985939567364777025058600103234539452916390037882128907683186890823231415479631766118661706144661465607282608228118128402327864119801927952534062993081690325572482522129562423697220546670069908260244458315188069661930313372869775670672354017570928753248715184600944145648771808631818367091166099462072550276499462878957468206222262241512372167863054027153807515512034520160152422406847973761089352808715065482105382427067843963812008715440661756097902770311154709404631425929573886835528067014821453557115895208393124245905631619533271445813425391841714169996853125871447299256478383308169728302329001204100259088302443801903260733140306912491139631508596334583462701321143342885174857722954146830040047587055923329743891000389231689939232382795347772879473258206388216614502362253429344334615704404779375533746023545149679908463595369703813860314991907004356083934979114968983252208718927355315815137704621999973558979781104796515548394049838302961149488579924727730427274105187017107024104926755955003669929160833442727876481248903882061972420205166470840550230979812105671913704227693336969038934108382387393442686056812145008828242126690388964509654631243319907083411998356439986581291697530709935247356999595022875240535622867934587895854527220016700533510743930389067769152897523727483622151989545432864820905674589157394308052302373003042342127269277565366346974504703729746519176106416186399851462133165821147157315808850855386684659407449630453807115631351756812157418392398275808344997954966801245010399265270164231073861451379650960561786470488142729527520412258703254778925899644543027375405077595308122609807295314752268908413526915199243127411510125343553760778247329825902173194730663234510721983241434835541613001741002373385540089088134225304274080107206781517133669989896370426245821227633687694623063881492993305523817951981331353678111866034150817265444468414456534169245153638698771797215215253402990168012504899930437506878345594660923287262881986476670793941900661110873914676615367214080150004055782830062260344105647234714288699665107349155025022057642835227546223454652229001106706385514069113746822366665661901365129378109650560124158953338416714809193948074999384918566113797906801479032408996754039443010528249081787031587568106467773477341831746207832598776339176669774808326024856064621515617432856665066165453043296582006116433175523359394925409668643352393210295194719461731476515533100138207393342274823498941910318809879050571932344181413207338861480038320332229973091358449312897544069933860494676400836914099548135669239859303398905186370864052222922878309190667840283734776950077902312258656755031947020356317327628487544260756180220886276583717054788301004256054811052256632181410104572381722132692469017181744064477297067679465602386936315268350221683421709496161211509054630309428729799198196536584304206753161883375563213417985846376787023230882391260049164639925993948502215978817991549066710287728132737265961866852885465873519291061473080299333663593414291681719646785907951701416823792169225364666260834809182106257561887234823778655556039818842448858316648919329195245948261096942596898679182655379099518383674715871226810177602462105872707343580970823005604681867264197116118731684593201484875481197053710157753000649639262012775528125239922581161663412056670516098621436951622042148168126906780856401209820236849403152420220725618519630006992945825180355421924527752617006954368839678222005833182941888186344694577831003652174130726775196056168609767453397022097190856475157908638895169128361966260143350323993104380269138912813646089398809338116978111429010615163841418991371214777760794606058972588701523391746720507349048500255304299381323052346155563076079312708321380762301839757601882801923760177670683843471702989846740168959943326865273038172912279847516574448908774428018441284454672014576316772181846639190213078835797250436940903437413967493465528517767479772657646221612795544843843570471571923203097057743773016232422266196905297344204019878032785929233383810783893657610741513436155556227901035048962330366101441891363143213562297963650953981949036714680120295068659950641774118879011982199978003844448535211423859687889275481111118673602117157761373665537167110532957435769734315726979454402931338252825617816909095152130951548799469535656239093016858127279836359041926377607509934719726811983142871067063321708998292817661932069896399979430496800247242871969933919704344385173802243577606255280412907144493090075207283199357066431292037562921662242824938664585761350195554486267736127232711445965982089518036183564931126669662205923609389323505291720235002371809626785595812890756315729688630525070799297462044525889935225063982912978040582830407744448235994241958987695745495654452319208967426138182320498298692402222845867452410172665404537212339167592224320935110915259585632749932458767221172374297624729064179850791870045428903924946997236349442510323011468473613143473004378852059052740046106687963051444762447480274086809282115599692417403708568328768795274428770566561483357848859478250724012544101494087677463511920019972101200293393372387431119910343301049576868743507234009225375074823802193760027766727302700734459117321198165450130263113119342154227729681780068018884451132214326575600661058120866908566624904209826769958464353199390411331651655259956505097631166599379863315451984690630240918107000292504891275557097350276932690482460781158171329709842207761898329503346892606351944253296126797584712108262310498232311142669380661350564926910162135076345726354695194495214478964916630241444487419308352055112303416180458110945919410491415230467687170203619383766832947710551079088320991769206511906400613417636310848571363023379498483036439743217277813081950101026987121880733501018289743326799655364603909264053883119983788719628109562409109816798650491877892034444635879039325978497105643676658438651871102087487520558440625329425645459300219988346598804313974590378907115179956068804168356350778470083255255537498815620228093689536091978422367051891860155657082346894440248766376566958906030945901244293926290472536119959794834918621160974023490624423044279805235247169047616122688369331716831823807983850946803247886829835996417413408192053291406296874942144356281394138783559272612578503099568188563230093168245388986926263816961426691596542071219088631683927182917459741107185689336998721392936853490157670814237815175892702875636558582546865567277005879181396918719824989276819622131189115022268025616729676885990995618320922244054655858990235996614793713820217785541642341247806142271498968852493475451794367170367988088521449341524047261130984757779634895651910590935447205720801144342046166134829516547830397567941373171647364211526957879284803347058483377048973952523259354254600570475165944556994890449124696805929027745573721271040558736299338165496819611280029701269290745783157158448528318188922400381361605846796262636432339972023868134812868188212157122014501819287676611823642871855831184080112304724543459448823077322984852167165151777683351665740382543064362099579976217362150405975347754896572760475802529101937050498147889092207333686293052959977627819866251377705605687943230653270065260825624204590493201861975314439157779365293134087716834564335872921207258163499841992842507715047944872132377440882993210855462844223562721559535707039331698943511474210499292434376762511312412649000481475575705352805485229169904025136790491330714057472478914014416504001658575511163455773251681259459696160610132260536841245356649838513198320287902376049432388692484790552631869074906161475364945930239802890523760244769563193217404773049399591482972966770352008137759285992249573589129456110063230048887234183036302911702977718441085102371007625553514556223094459182182366806747813767266555972682706751313483260397628885076050437691830070831027277335954394399859580951031370663554838759907934374769647222596388470812162595019659512433998514631374500320655502177643440317069515684812521613736054495460692169250851835054046337524904715676070492310469156322720185515733582250658536389922332030015611883383675277291416506278975897873653371583276538525884364341855070132847540568974245485160757933670567397892353112380264590745050673721164382648881351082083075328766971213513952395709808384513640400319228692892324369576998504858744023985100865915942891949286678561573006120644081374912156336223443845770703847532865434464597234540050596488595527720632896468214791069031387663841584702863089397536315721611733947228079705960873278971015442825400224508014901951621323447311282377905329375095407206116489891087476501731815349069064177571994830108220306494741238244815892690770502042004626248812120562586783075027104190767118410893498423085004362334427081193455363274709564115170905438879075712690289600093165625403607758379633833732232077213574419922367272455618644761568312609039880647608486522365489920170837797860921795893630229428764660254228757687734393516208743349298281040517906079242834368313393480413607410297659729864761076781507589417924260306788984274621398973000952600489765815696458962676821691350255137688792337603766220199992220863532695004635797422720855696977481198795332323932896780591395248985835458074313415279155302964391262002635948232462306646987376825277218534148048512180013896774370444531545811622246123122566149689618466987336710743133022116462673870729170529359037536727946690096913624310042928682100148805107652122878698388276059318640274943697782059295141058034051119463184854073393401214320394540628274365308442693600181923833810354175850059904608173989814560497499497634145489776426426292943822016156772480180420543730038496915091704824382368647780138172035878639902121166038756193230307418515962133690189077034485989867609550612526173274357319560169178253233295874965257836625211093231597560103299948778605234656141848076806102489500433163221760730633306835902249617492243329381525474639549454464609329225146291659981295812482833093254492002545219642955416346815641345393723528933427464923565992814263298599124908542242843342075150231759601180239786068926322824887429149121600353424420496178251637101424411482111194545911677603329340804694884755308511213174088672567277480336164132714397489710382623158842045936032689642671320912850330601815232183931936342930987015637245285112023537629090782957420775279707298789145603339978907507542624489589328140549856514036690554648122709736299608396268124642892225817519915052779999702671810774305900014561400201627639920412739490283692424896732196631756804086293850382021745169635783993540869048731942695738818770399309497790531732913664551687372680297626428722214563750446741699720894579971409815575213487663263010689517230125900576864963730927265336425484455786345344078275834908699173872848626330984333653107899255973801825502381099439311370584618794978100527879018490525378885841075857283977309263715241694332401650791536791744841114238483953559870082248377127132412554688491446455405801838130478150177647516925794619045384806683920528891961638140932287663798162379549481272099185899045111406882082781387205945158694951480267067497951770579454497435257468231304103878363753635751864820592624163942823874852124144309039567243790412979120830728545212054427248726155944208813288166670978727011649246647035673005964297552373743138597002294264555115979725293062762384800745185050989866121525716689356366691491839207561233256863265499876385000355804599170975655771178492585981306765145873385693065266067440372643891792457515092987780884361684382996662174751302206281356771085619685398735791234182557806748250429933979090456937041308137953998457711205229672894986860173689135766266458462258389873728914003266617900474405004198446371952695657665575495041733645323150487759342122795748670944051565425627145926262553928293795921654118589890859432761623726082299871291049765649729354375323184327647233485449993277503932140068547880919096266392415950649204440432038221744614145314438946636633791360644488129502871799458464635879375963466011967479271536353224584261301040556853781725583757107223994512627175060066369130403901214030636330949273279866778530659603399404593463928392609668784266576732178693862224707922028410537050750347064638323545002674091764288259306193373480285085209252808838971277900364198756105298000240223645636555673564361576503480152994460797458089402344502129247589480851570122546475617037077579187486266032493129644938197692422018639384551928644385058495080426558680311357039713808786048682202059349284028384713723763915234335163617295785200195026137686044004765747723733107086340245391077173793806017685800741289785592784579404962101432253805744833071830263301028275261293670954397492465933989510660890320701432617921806555372644070554922235564575132560712396287881189750667245222081961238989770770680288795849015826950106655259016428178935026869991842787074649091283644241356930793337035373063072561600513435519037367174166259994346442427359922006601396501818650082517925913421964535312278432355874804849719269086251490435566219766306409099465965978732371065750474088438059096116709816125677870888343171928586556825216620186554514691725482346842170407819237992538953817689770912266199856370435157496987448275607603073427810159836341773640647937293137342183996748561346592278719821146903379884663950396397792827659270261984432809823572494469524748552327151419795824309799438346621095609843762436060632892690023206554150998968543117005029614214169126017525645311813386156470872104891714768241975183640325556468545364905700202331941533520378468255289744953683727798911264515864804288368946502165421471895118089834015566915746887731685718288296537152930327524021766286317932357001769280822874222947051324029667187667967433988880654503724673485415156255144112759962951173423191456043138390315180159696212408271262799750735974747308835293892381638715463572181817930809967073123742323729769710410436527270335408056559010910676273975344352682391338133902935628538912981575890556503762815028476686099271688459383336733417608402722165295859713172531875705329974909584322918707078380638180125100994994939863767221805821947974050574273089160124194607390899740561688307460715976445746281555228185848026254348642031470465121662861574592508289152572576078314259777357719192400486293898567188769215457863003901566996059532924173575066705940051513206061022585035425269203975863447230899836281591608325187702880595019785383552264708172491723971344428053866023617821614526438047654838852036985113776925737971588165458402681663623742586964834893176506314933866356888914679269019143118434834788011677553811186670191636871419332724437708354480934911984445820764974159757583222950075163471245785651083099311300270189360229503065587596648490385906143781308947044336914556359751209040596311659961459523367024853243875192209128251798536097363572163967080653544720894491013283563956051241058099668955682892016871159380072999653686554985896784142349742121781987855719915296916838241714168608048579640318806612705154430698276335560277744722848895294052049481585834865658394998950376011282949216985040891008818222320116564205239128862186057987216120439876858233882294120359872867235240142680714079688778979225046297187167614105126336257046553911376962839421991787055791054709502706336318936865203615463762399298531336811575438012425973020071640201981624570355124019426360432096230127098223156755114860331204097538238966509147404198277110506929039952506456897182811131389775018537505500064622230219936612275147924425797598314496513020577315175558974168471143815430626989911209220455561457339865728733068622442101996131901709201269067836733580408037658505506297541457593143325835331273538956648397936165696400315453611287475290971038472804597384808791352514781650792848951454863524186391105742213106473729517908573447611795326838140664693830023094129022666302903890719053237878898769324712562543887210466845545972781571792123159750998766101467920591872679601944613312357384133653774548678293638676256292070620547019617678290812807114749065078959861303360546622812348713438388165044934608108756737999782917591699555570298965481004068241534787202790468924687996050760910694831399440232578517952207631966790377256197505732135499103521161913566228044875285143863227231185378953100239254211728097672589444215990247194803463223852756063148112119949524784479820707962513583145998543340547171477172927349713011781712480533771623238676784110374701631174516151360148687634342596741880390248945718152897102161034410723962159041842291028514921779986171944878107127391503296864627717340970662465698112134369778029067556153875928480888816394628515049609215574694846747043897954450614034355245649874056354171045493346473285589537995960979954494083299905293074290369249237172910153036761475180987838829317074660726398135323464404981499695800603543073764454173792249222683687895637439595129920444101073620531819252052886305649527216911240011369530048108468653086252125972520891399035608146838186922528257621725611941838019292872009980435173329304549413302757051231231658252284910695687611553832996873170796125667143492892543529096672526451542411754573525158156998094163195796097717920480029508443518663707403869340891010853464653301634500899868975772273100102668127463507455645499180940958080697071467329178473576531110383201418434019813180938866725031515652077182134720424991630293922504116788981677789527109244224021132303819805780876688482253768797953827103097786455737250738444177383488613890085351208155607936327071742488283066800680717718126082071886490139929122270545717290097319143979108646085559155980594026336614440775913093401471525075821683247241984085713517558253469174786237466969485624055712236359859209632815561683304846019836201364267063718590527255033824308311864648750173637569276260659803085166150195645972510868049572176772677580222400536406134245422243073336538516045511144409309291722767792490921098918028001141392210947492673671068166760093272951372840770652584160170086189225230403552965416221746769763393993311825601364118155662891149397483862808937882181182223354236752008437792777438820436496406387494150321152134117031254567062561836706357256467008131617126623729909162827544624565085404157680937703294683055913860555554851037531533210033820018005894108151711999938196097492445823297563650185818796740681932287739370026970050702287544766962772382997958643524188613453299281717886759179042867517156898766230504299477384122866181378022662954558335792939889455949474203456314669546510598690509099191587300587708057055430928887241514132122043361678830438626817100619344396702453284450225265121322424941026530554803596788180324879959730628822035370781570042127951396555117894160698913185981548924564361098569249056925194874663417714551253302187628685362000710045343387235927949002944231938913333436387531224363342113685182508974622976989064203700594179317081903255546163526878995171889526291255994046670624249095577247306760457050115325475116032675979975124245599806175930377831577049796671182888347329839908395436043150153117395409533075494063269468719546747143837062069001370465694839448224403312249461580046665273152524812480712818474096177282518347829580092542436157823795528308785456936167848187478146103698430049733752278525850650101694424538394433334497722874090483688589487826547223670557920437532645346809638050154410862078797341804813779893027421048796397616581321213196335501201915120366017237533373227994149187409697601096381879946567039738842053187117767191517370567331753754451655378629684458099897076724847656144194390802110468027376447544817320683569848679011130108464623117591910745734219605646534333436809778843068235723038284257997591505362983466140744049397409315042344208782880044583099188218026157617167165692233263795447979771045975868299711941581058233485452454946414778196164919114665293842375676112361550337706847361749829685154188046029585438396964542678869817829598995214146946761939793308239441041223839057704755729227857857644691969442861895476093067303768813533767134121814140942544146828508493174425781463861424906036022928412734274295281675631111714251146951163126534209498441283911866559580520807828021483938759785276883294264379621597518885240761012489022426702382787589022325286630171535799249910265694674897717240417425391936598630983067237436001730129306397676881660070012560997820971471570010671057944569755204943034325855961916944758787345260835087359003993325265492427398826747930223139802952108235442184359144941972635503006102514563460253778673407504851082550319997127696102486979597541865431290128637161422466039528936619634481548442285336919302941016777331194026563675970170938061340352528162070499190116771798876445121020531275677512591647487361371261656102926342445931277258975510191024945050485943748370913010923117951198723394961500975736350366884741559226723375675389808919537226929046727946516529751758103733378062806374861384755116949752107609829926725395220735880998695794869196360336559952156673919759047728109282224088383717130362517282709550714364616902793477068757357632449232390826020304726564312716253410149316409987679582106726148334602946732430788121249171776274947642519218075107374897517285136317738723681840380308263585026111454264625084179168039994593393664952670156254138533254329796788544271638239922736605581939276448511796458444196745579977331359379592520817460104551585487050707728559780027940535527512135361057053818318135225493635942582561895885575343195375610681310567024710920089871144974539313643195375586062184774799338814366294736576393767333608872645635569416127531181133641106569313570994546592268804787332444153235260646896692490184065553753859728402114075975841116523915425113014177768524385391026462059072837848059232001753035711596666416970500318713818334759716911416254055308279594597616409470730887677010362077947102957247960809170434921637404974649287548191301336122295336033812001493011762068755325104703926109341739754589813450618666791709093870451561710916268690379544776610809757478569295303331056844538467883275135212657939931367446507717571120016689995762908593473770948641799211760269671509722428890972570737961848158290317437201171044720080267068369551142360367764448007761504701704958572209177976592645878772201756858068735589641195836020326062479781361017947843551850891081621930223196865655153199396485792356981968163607596417460327831428112045470279710017258372871123896712316217819746479482537671627102606403847337203996296733328318591157433590213623793883435156551457902389611788421314949681060126189231125174622996268594212758712869352798832360359710022955663333910525995496307903185080133951866662552135297425951893290279656280421736731918147638061607444940288425528356420067829760627554022956990011572084064805232319321720961031330465145362968915892851625079105516367341762719732248957331551654498821394464498158932549651138598890065021365885706889349936933215433617978204105038546011042294060973897794521618723716995538243125271930377013494363514243917167842554143885239554391177048426384302973848864346400612033686436894912637436665548796901664882275392714125093528893090747058818472188926926979736058010688816739532958480586568579195903546585615146029657947844580049917103276074312212541467699085262637832670017874308600180023322863904332783266801694470526947679807017862058004167953420847632601312991479357026012436286546181969370492803629252176295631099279358507978342912828150361883834021579923392438451574046935957964875297501783599906147082777919042528808262031243276014846812663111788541852939164817910560646835284919239165966858734800657409587384029463439258887745662108086204544640748565121500875653206232589021064368135309075496950781359024786041788784018026023597794395045181215712240243937170452945288510092867897121008085720835456287975550901252661149390327212872600010489796166751345088468325888910906743690208058820665234357196412578351013310068254345846125519151282585925256841476937012136500163075209364190338645763275503375478876046138063493825315140297814779517822391794519641094602838321706537337700551078385944962748835987523464544241293616946011040275329162406600044495557944118415310988135294176574715877231750102932941682657679246173625016236194524233875891877628316171156721132595740828295691293730363854300733804036060735214557021789289996495547614375154751867161154080273685989781877676988132625669598891188391588986387563626437945717025608544261862398781640931137770722010354614928045046165416173258320826941432463255119734693817458120879848424383174108137814089612517581744353532046922199493061822482327918734479312522183699811546747006965986448061935400333524516365602655905547647708642004224542326888667384138348375114281264309129887312303121616005076261797384329544042174876555654750356397761389192377672353032823074365825918619231693441524339909852749074622144717087717183687754556364920473049214314754187153494594160574897549876986920440870373996893934373424140677102466561072515468086997255953619817687286396483356380666502270694267827751024264178804551857632554755137753234183857344746400613254580588402748009778369484093137498014862312299489208504264881388210164308265541937996619407958481049142665225911447173277774239079582182996069400426935278123382767379198613990985871190352469025468878500697763060340359778255812105222875806497440598624332084603960051311221110425116545321153468639096164148928285107359655092733609154901655652146776115460700108618808721065583734739290066011728124490160449715603585993183199685766602854482848861540815361711751445374876994680972970785545265133045024852299589879136567610924073619001626715000092135809791569749310470179027185440127893602130307896065514842767935171195484320831117465294616253966108563560678607852464178997799619768341038709387282444277131822040691198722942872686604932144174360893201584639918990520081404466547722345759155952626713974918736767545207524560793014401540139220151605892532997240856967683170049603783892464879321591587910435263463378766481771050090613672085252566973585826894129292540235725566113313819252118593902955070817023043048144344712051168016305379624951112454902231481564988298198535500475999892295295005166144157567288552511583467770770287059040346545201117524304042996316431214979515455043468931280960326640985429741475353713378679908339460094583509626827478791794749241377028471874492419480551478202838196684320560516708342309578850792555666114119042488707269130920742598977328757505953708195803638716800984343573040634078099233545382924763036995932659909387623063009044477803734061718529152069318133117276311319445652756004832191003212745323829458183250862503827793876510815173116013373596265066711614821070981035017188437073882937829792151959782134892221170728377404319079379246493925620081860354649439275933296340009507514287674322554071652392282354973271965740226285299498593783813881177666967314321849895256359146907093013755039271403038501698804492845394251464989922784290542913162952088084484247640553546218581004395745878088698084873422621997969597275179649802994576888340464838720981244837059518164956708281745261585731774898522723682296649545649038329742861761890454352832198835357389619416512358538577825258719265922198257834986086703489113560062683734670124131349997092807997011374733627546647242718087654508492574999256368558005942720957592278788172727829854582190565843332440925039784218776915939264850898271356203505843451611449309351915417794937257698776447469705193217131007264054844708144138834250415330376154554428570758045519495685540954114342746206545563810838523582336868391988803379165066991562118634742053950615613722199700884285780007104299667876642454346338095067249686576771717439355517198205818277610981493925649390993951849977971879096865489263415969323724098778450098824288232803798625983235494452588344907931698144392953599080506198179005443968178264756524674505651536425900889149789742793812135004524325774754081651666431680082780764485294441344174750981892118392738256927693037149035773747387395245835116053519851893469557082476635955798123200794257674224477175698074461538805236756535623650899898091205955773771961655765405079354540819562044070845707453366510872065253497055551194005729194484192094857089725029355722206414784192776036860222520642124198664451352684959375347646335975209754718950244756804723889720420153511536096004872973603658199065546140023197424829398904953206319150760705809237661169638239228138051404210140326821121384603079554039919524484055889868504869283207058775762144071174404350337293527796641367841953879150843704544302747296710333693087575202363718072658801763473135491017038318014960161859807484752549164937543678315753337760876681298538397250022382436481570258618254623946060484056534885763430360355917912086370168865859896237179624783181763815534629894843024581352020338874441493309254413776665791523315320419436628995168610726609546583808075073753975223212305772392935912412141423702103766430531709748089937487775139031881235894125633292981566835987198079710969173173114760741275912216197398273165042140172865424135569131647521434290088359473976403295204483498501320078394641646513341851839412682301547526645161587736969119773366865443048976077317205053100238638185363600714529301544574179696185214027970091050394030029013864718503549237119016934915882965443200299825078884267324499036248032260565282134719734321042632780446297393376463926614676273581385610880869819930777548265844466029876956902188585282050922811852497302983662392563506386337685156724016658382594523486287534852077615526735870200312983875279451382405811063140461365468671448407570929919288573708954813934226058841797303699244975981975235946464151924478842787987222807194064766005463850803430770595638365658666805796353707066948586275648965150551206307150082614304697629753022081756286567537855198480144124236249021676319978807478498495062342672155352457519243117368678617516211295964318343269375750446591528968109807738170501018694136173212060617083762488316178377529398958806334263550937676275002717039900785927464746656745919321821308439456974836170119192257531397961658171578439500200942345187365672784218904418108616055064096036209090183126169581854305159591346111957170900181665670909661486041534856314642590643743652123489303602590749292624722746840022201050867083394141625691527850518567513949207711483143203832028747738412541001475485619291764220087148743584589915031575497229764133606346354432933622782010405461002114182401227047071573911554946052691782551851861960458229652171298250878287436732687331305948778597189867477058133564137114200810217452343532995250150432713141022565418947063275729064327629813964310694141328771164616320364214876600770290948978983787113809558526679119589892283525314765601128298081984337266215700674816736340839132985527215783529996483878446810776503084420827005498982990689756481519908658607133096437786082717292313402998583397472707342938171377889624085966524548353327538110925499848068565881857987944274438804519424715702567616877486025123907188908408885814198651033550535007950265408671918291284041948915783493904815412583389522718955766694031979686298855592253155328420857630586604044230954916479475597676528603424215277728559764059583509321658009730732360492983103097307916934223754940922060128305990096150876187094689251668954792777380266201862520148326521669413508553395148296125772147248298756863818946700391512602629754217783010305765753844647546631254764613106311317352944524223290246159239978606472182191243369647747151639912972752826413668704867701622011528656318920956391811007023108444582840866684653815711279035687597983686099259117962041382063796014345160297737361086609685583608015293005527102044280630359230694140108523957706819167653047356836778685632243823959692020000126021639026219950436506779144879473679599437888113415442539818288878713466779592093115055732818640734886423677891419152918396996594039458039819937167154016173911923872218451150765970197409372716885927911265396543305896288340730996199140170680066094020766184761321051053878725110993179549244953854088712441324732166870822569036712263727758341962808109560399981267471998224985932018690277784705033902860596557817995483047320306678459496628281057925271476658210220688193464285037170190541130394178404626720508406647844865710235585548602015090386627635537368597206689608429807089416927580820748042146570982863959075070618500745705064176840410192655873636085599692412619883925280951566966304095701262616986093505717727883954325144139843557667442076629815484280805762296456240661732258582446357117323358176388942982997580707905933538139967310435264446068373109483746100902809393919424529724471970026651326898065946598755666629488027726128505528753527166409362005687409703880331732348258291753445980927440062655972387002375106908358492626379122473890282896750891849796780639535949285659858551381761146589058397301472352489393833515346385271147770867112725189853720891929274064509486747553775640075013235791585332396682536668457627738925416101760027210791095872202618790825291764439063976085219665895259640473622955053160925943673805670909508759150249991575944539071029618703258282963170120726094321091040726525812585654448688764988007097522098225043096614820263443861290887445197314528153722049746841741081648365551731240767258803814876253409822526151042256761061084277747740161146940804290490072923550958995802253177255348512854433071915105461252821004965271449493416408962351078600516268368437131070904953256424222180513492833609236280500207086865177227497653512006611228701648736091151563332416316553145144289296360298973252291789773106481644894625889478074260847916722956578971703750857110194050081530053990400179816006455097442010462066222216869703564991961660001550933372545530190990541531154073670321071694094588296971758632842464522210066388393518578480878636833649094357597316071725182720171397554976698120319342789521221278689604417037545057200971435867151513657769798632505306798974380178858027897158274554468143425381471600904147638155475430618036828255310552640862714628301471507228229238991217370813023314112422263549906962595956456932238163407584224692204550314632386538861222909196191831968238614388230131804901402995292329364615332357699424548706730361551639426397635049302118865995121083537283533183410145890165674065038698311489965076748198498650337958811494616601185087982991576037650028010037865522483386273477009001142834915883631441357730030902213132140271000253201996877015346190516932821865800581695990279190533146185239599120456784276411468517705131324395728436196940318056109581492131882281638987647052603643284374913858108102350820996869529718046383327401223134288741157666548637096982742020319375633127101810098564357846814338196922062305036447727405595286343123774336665251283899267708417023477094907222489185461684422109102100765199100417556122088512506768436822660656301663920329482778621525235557116198602938372433843762729067114908488033104372045299507576868795542650248612742978057979493523729868808525764658077696333707388998096938342973466128812137659740760085538715593843726166245792212152952897169995866129406943733166466577820523464317548308434215232329215272616420958705902594261859548519760141302047968515339605412965343113679506456382024616066149372239242645187925206662883094422195272836678049963386971176964229665531283152294588595453610665979782643500433982937692772013814003496708940000039413444986958292691456203124217338764930030954691507410945456893052103316571224894911452707555618163865641252586661714800271033098148372877441847936133674885196495285393565519517730628467885730397684685285327790599851942595106398305566166292026933657910144262167442799455850096747335919288688772423883311643107155340940447538331702220831266495828862311730747231637427984170842022501220776757126038347603361088686810190821119852364912932603086307347188830301899279627496191614929357515782428197922532577158410858634434084519731186017385155435420193283350341805773695205839685693056491621613822003546151647918643535844209274565792648453716530903298146899318419326862839509179234094300243856168696352376449767509525358099449949838934795207876883869526319989033851687646260296287551699511323216333911410942783399700269187400366079746271703762100630403423667891093009366227839102697543622560408779755863147452499684728807419372704848216358377343695646571693370126337344772814485175035019843570236646386331031501531048578520956995113701816039231219300337030117549442517716679612716532444175355320762452237200597993845187200361303009074468964319185531064531749910442381943433530694954790604858796599110941072569600457649016369088308376289679626339574825855769666952265834273784312578226988311429818499596794726574240563376750008221676116981095269596019293239852992240107487484771986665147158836920683508146156755213927442302151644012937899566866796712233221878574766451666698952448334359593631522930302324817284637162324843335764431149778613981096094999336770576295976427362712466174863385142637066183884040733219761878557634160441772900282214377664667011607220850300095577787074354748802225005779916339851163455216373252826732415286697493495453759964612843644527088894930005079632991876631956098388225205288136965147038531779457398337803397939789378330116633009660335791293894670963661687563535648019514510211222256247960915926436184842690329295439489197312998821314174683994014377409370462369098285172145910167264096549317619710407611659595891791973405239936534740088776625381287667270311890596736870447801486901099782550091175425538791762546397845065527857860737601049557242666888065782624879896650933509039086072076490835445202446354251433563282621816426907135015836564821143360945262111140248251497239338770692945425784744784448206436981965675855109068982950069085759000810532315709099262554636974754187550154793266863537814197401943865481871698653250769570454316941520547764546531638387006374741774430599797043707614430787169877055956410374714890520243859753923202161889258444890050675529822675173249625178771389893923717208096789269839766294158172688477767119693451572519182125321828011071927496373861443546921782857925412715057955304205476402142586453345251493533522852094197587747760921006278884411686835881560332486375793371264436980051002815954223562074162386571374192952907885130555414720085796006714631759460267184828483806346990898520036153493294522576813886774712347562027649258054084906606432232895429457221593098741743814522101059781511753004898406258065264012615638346537127138984294384906502326642012561596788142687986503862801366308756684963159905008961010873043674537589762125352394893112518595258068712973696164204398566691868690750222801480545501000309801722003108448195098539539526853352964776378850407260053700532662043333430148478764629755675560524462489852420939667032144241493989857055252912464059345416276862002088600551981510820167103538349945844835955403401393103953500825530937124268441359704447645335978784620189213576475638484265248875522643437726884459933709674666295686122969023058850951168255541246379698665062301068715232519735694957243750404921016828812281311584395987471648217448559132002302414174571576247157433280790398153270009227400901964590335009866663151149746853248339507066626699888333566884597857610382230798444302894595639869571395339549877596058462547385969593289782811563465681496287938267537067229636199904358200183356087521513586658312638884268102501869914494255330483044579500958401294393485916203240176818041475079940642419047732791100310334071146415442533423246606800389798190927353894559491056287758184649830936927827458779041994488586478736211781433408588822872318339356730554246864982953745799763570326595717712730890168868237400244361999601702651491294288072382759347196859920636031268109285862198614579550820825247330295988264708237017165971892024146362463557576607821533684061355674017799057950025402602759479283547771827036820530483092742266125572557359230763942449748252946776688934141913709756837525662453065005771678648717286249824746195782876967548799460142413296171244563463662872376224840111652936641924603374407061863399070092532625089118738971274557658434831218520504710410101943640173947643957035335597956623528090369712044693062295022883661352133464639528938548336024690919165096401476570498794121774053685742387441181794430663905340491663656821719568524014909157187319922678712913086584405315440010302980998901651080795457908947390363873958654478064565847496088228705156423190898350403580607808032310205586429016163230363772542315892786121397757881826737286063805185554398603011405111875646643570086015938966444681681345881835816509986941198914796488468934982966723671232411162986575192417420253042479467609686532606628059296177153285411641581459436318765380040063244445505291252004512188009527266287562385472800352481646747093865294224381073252950618131788282660973163635355384461484593071512394475559580450755124842419558991313896499650417862077955424083333346504024147111316527213336295317962664919143169903162931249538755600578645139370355823727760923121963320249521550727909322662753936507999115255329250221779857301907090498636065525726983256957840470043494795095192025979742915173403170528151197160377518768081242447866783000773978854682309821720607426772214919288996654961400733289058327050335378621020534001406218263502029944858427091317402661681373452844802522637288136942752447239947867363236579957663973944596202906424556109669434519341907745431549629418352569480700943425714773111310880756227299411386256800445357872887693924936346852873465886205675724048564712246049875361863797169390577419285227794869381499207714917257268993479504969764781459046516317501524881009488747315495441417001139665967144922925527793856882673296026342026284188978937811994207140221182634356056685879060943509446221124964031377701137401519523483101031292396953638606997620405539703553267419455936259616090496126018400456763456518986661521793431324479610134480334478626833976734028504917328540631768953295601816749321503038160513213470562316881055172254669237419476185872769658607051629058708294281095800375059176046239493823769406359093029548564120119518690697006537203114484549174280936232998196149968565859423528374896092602821963107068840604541475097485490639459728831796370208992166506687030565504076706635889589621154498567691902685833542413370879280951804605256500054247716351886433138156913379106223454803839368695735451512491950177519457338918212714893671474635191077987069879562104660674728624081502777759028520639853915455215385232112305308259457077199834652256958651298520143770047324850321902822618717179300762297782181202363375666627989350296424505837608770197120010854770899579923450675793787762460960894341290029484881478167264427083067887986698427401736988095096790752597094219172859786964690926850207317728711164362888379390828255672640636543647728238325273420030562655163721876117888150256808632715575846177311711219400695629020428585937431170583032070266013038749313925082820064449000780452174689846011539815336129834786932706202806802603960584371289327410611757020257589505340816683737233743744208144333596534354754645759662169446751901553387015600856006672412339693868657403888067970396413657318963940755302818896843331217696117388151034164499791213541081700338032950109166951807809571097525793719876935593076595158840194237898434253941788820524494186298965158319516845604939896972027132961440909223580093295533122004209355610137467784052016704188223407672089263642506842652514636405153318103226365202197136571789654857933982659215543607988508105705752369989666890065239970955772250419332673978878418205531029724972818079256572635264548277949814835171360688233360255206595702595509127145862744149880487153191413206126783801023932249557831028953563996388328761272083433584879044259514218615146930154804582665966225651244904117468756124820782300602008178822982519627153928020571969469606155967654700399802170440734113600473151859794270273618615060415737482847489609232854134500819610864458118274284406241047121598544692375908190230018126750356289277254554580570411210455131711672930585596549206802093725834933753568174058055106780668102799506334494514831790402316252995624401128421910836468371158387103820379091071530957340336220462676042914869766722488772201611187126642227951228873224182519525323906216917483266519527534032683838774460581439552558177190739323243345341192910004599746878050985992979690169061004079469727512457178373544875694456211238654347986018534421376589205370322619674711841765723181355107248485090810800884981368528894035807295519869433716577535579828557228125255484487198480242961302517135918668983695726637791371588087889941627390498510562704402253782393647789034087308528558096514371542714691743620242395627463628450319319732558551604098280272168830146606763044438277354820144942900909812592974233666066787896795514871920891083127813629873873204870280963391297077933091780933438601140877711901858040645507236278843666405139157779459195477303195768365887475211094976426639616343979967220710159879530707361386879260390923429707643012600035191537664301457291944199563767042084471948209804772644287720457771024496542846342001212707754883044489445280769555371360604138676321301409916235757884587954412901019855406710920557624229182781689188406399557111665113092668072667231900474504640969968642890447170361353153314687393343585114232653873733274221821943771873422078476987590345362376032499517392864770797460047464815487274487604020912318539725833784951215176246683501084249044802093850842558735615095050454321595701716445948304494902309943553898701987780466694354447592070582987283939545344664742392075385951467560171453951746640737487905578012046345037861442423781619810511021603437290483734323873444494819168864216164969834915087097673081997687361036615173154497265418681033769010115467140096279120438676360046066402992836059022983609667013411127025070964568585687423762608001331162567855249951835036910783753926860328388107457318642356237560645795542591380889855295182706586887867334262284305363675067093898299496417341061459238382238459689953585459824508841303329882043948824044169612234130927409594512765781258708227691278539498501418324462699031948176751276532467740805792691595429358401745511371621969590650504194221821717775687539404694778495724668955454320489634280304063485512751283658212040214496210268454881233179779160981672146823665490459638424325036114020282499488927818998632526031768418641938895936742828310834888182941066627743280525508491077685403871727518132021879675349469267650223006336444913021221805730309619170016100573767977722865226424686194238384080331899863490366731735739438171059387185212603490448265986450103694996025340816128385765308547305939571938626624809380639081498146168501660852389871318367864958884607233045628103042995049001499031270917688439272705436256564806185432676659925481567808813750476530864344577219521199882576598759070723037159992120223315866156470403287625073160615736409105697628629684360365995580569141595217182844319295824394605823257459086407821560753686987899260965370742180521321350866216971447454436379103028584481748793739394125809897834527785732507660378658950909756212727985370603482056126704574748689507780107253806821201563334639457489658409769314132933181672197157769614757751592267698661155556557033856595275147806301432382720651312815397744005826414191933007354933616431077628126648407284420151979665382270015259850492947910995528572296788192638355416579911949549708141830368736260289514541749114825609566485455611584114368101545735592725558294740910290752262314044436131457845126192590559660652306357730445244184657884776590955483296783139272111704531978239831023694468781105916824527486174034746363456209290003149433476655111215074704414298423636556679782047700596084566443632105142859054080191871199067322855943334576662395883617840822109275356019160039612839162390722122246112121227926470436555502540201997352852373569379509049700737657657775986413153177908377570465354717527328105516761354305778926535566305184220312194033123052480876621147434690387002804699653212497704980798008832967636845775385171460242789568312057743440728066624804502471444287985195330372638778237650894127129470914299403985682892898489737142674579570441412611872846180149636172595003759785773150574433807750828898048841504186824615687341779065855364738801696551616598764214579148900968631287445352396193871815574654123638066590598598427669211857978994255622420238906093435885267084332244338361183289119503713378593464281803025257923200050585807283410218351970551345960750775112824564286900661809907229494257125085126429996517389828639126931727808025707533994849543906306004115875032904987981105714685379996351004436287347466709638185642415335192449503564921392708131996476442905343182964085680141878060311210981803500122469789415126140182521857070691527166278716800687269551400181410291382663092516291233681588394533936687603553370939047269740402207193919798767441810852689245591759784310632334262803611271320443177686265679774867134926621273222397159724255507012395485403990624496309865426332830122162304316172676540210406881101029781227442993218139935154366818999657325516799551546608182041932093235639392100362431517306533257886034691271893213667484498120129248037448431893227928450365263553252472339291039047138188516652348796525628062716505772686100693530625715064266858470891535192267115555887749652953204064972262528783338643599184925129432908279336813396422090370939014567921917412414336214788118571827375574972818735767735569182093958828060586899036388891399160396798322451863903461858139290577941575021220787781584002439658543720783895977370967402119506050112312782598975271188631089920793958112743709267840487893067944711846116723503180678114672790604349739909170779329431793129062940059105413004726495488887630394554754267777030559068177439426446680569082553728608466434496716420580486966579230091819217145325865262958185410887514170894102032262999997911664315278949504108425543487335735969795977376083423902446050624812626667613077190310452014023267697065694262268552019500789404621641142060598567120455683971590158784961102906922534217442394103261952526569503812797603909508082589502346043388667918484973388465756771680975601849642996723883092147276531630277709870473435722112414889789380163085004037143330411538381968917208541302571373016848025619613533951521693958836571440811196932077665623811341820704714626194855463136618855746191591324788161133560688817496994496196955206942547615680497825645765918360996031155865710445260326478413080579636789329478326561514363397426591327572464963117313559992268728093975230299882363710455559607190122107217773419604206272957955492909156688090686498404555543065339580833277534535810936606653167713027608773602798039296112638597604055782304706655410462601175834615981626084943522164717355867460275148532643044836276194088478357188385518630994762232722894478567627522709144709630544151643282420324487083662096062655085133475593964306316532428156223937635359658953406767720893694613730886758336187854035814189005399727826663560582026809828194705034644067881936682975565342980812002775246429216087005378613611730549802442313831267691480360064034840741766360217595269929734810361146148569850277309938924654807050259810742041016701900863125488970178171314113326161253499170726190455736615873221892165944056660497742872489308078027522028862023435361535767819934533426263377965696909718275828284747161106472751685375443381434493681537762024229922271336687710926696282764575725626823068689237804435526540826348559222311117103560415058120081087337578184450494603597364228879124143935409619108884477829634621935600989120399974600524318168230105604153711549040744578436552753993640115293315430584216153721711946214351342566856044436876485173045958593117294825092586794964587573322846349595081928595331114067492572301672171308052999344628889533331076637141680849361995234475092793883012986441747534199728981457092041113533540606171130019854909862700383141485167879240196537640886497646836585669463912670524808405355393738795804830290639279836182894865097323704628725530069017291512233105387771998693035098152277920167073695212129573840298745448034792861626895133310331854665563204561557114539531222700045262852589454140792539150915038536541016367938459536554232294921805740477136391418729116104027105381651192785601989959982503552024697997225387306419314460761042220484447533323728564158202804469643009039425847154594990035249204162077630238602497423865421487708668385077041758251126547817485144726322799425824664729282425617549588085218627159040549318742347543619397146018127108425424550269234316530517230305329003735381297535892335134660798667471748964119719857869604174057889330794353073738392095428879990442149413669470620476664398040769627944864989976728006104111443356159201389762072662505092817698707137954513631573194510228496684037923961380426669334450677801124830236005425678887863987880545887793148860037254459729154995784048091224007018619908238233749177536187430688696647372378063097369413547282336003658767891644373512169720961264952099750184548216502062602354726692926559194738522526317026803960887281161049826654878228335642587274368613600518664644805446061511440504928767867908815872325083967704045636384285691412538504252080161201070508993491423071833269148514871122611273815029793005687203268477535641942678945623289938171605922969350648951579438083251387753844623724328328110813841964338742190377062096519246592762520223886746645162848313722278279491388296356685415230542408826511265018534329353642862410244580224783140859613624458003126512036508729850178067903895872213798572250193603963127811150461808885101479713709180023351008132307318998812075347944805467816678252293276997743888529981349755129800758209823560847016797183206239059157935696790295465352886075135510858015253265772995377345010976171679200804558991794363316367356824204183886813595630387434353761936736376017101199320661074801064697597341894747260066424611223765190986379702149658731581583687711958591794981450391280269210734685872813165730251079126103128924485182783623516166388377883540012938295917985187536429378411342933053536983458445533832591746370283940345287044626535826266932073374545717631734502279165517250657833739259228821588001401834298846182276897879061072255683675040334442176977219891536473983433409284618041677880342307291777528825004205302418663168737345395946582828377694370115208912180026803955540062393596415865446998957638664898286794040103425615654787268533264577755172368419190164172827561192182045774600453739581718580539789717204883344943646923828908297361440311619686274339237015778011924272150935312300210399644077850623002143187311490663808567765615988382505705375152562982986484037700633659287484439151971628317480383346166621863306436818693057984378103382333562332704630146541779505784099088315630386631983046396351391780206963196419028119940285645543668957619556400385633124447404028181256084882666168951235785272641223746825246071989071895553110049120911509950475587324335214819992565397692528191453376457638282886333771958088844505658193866219547871838719380367654023325193246697683988499321253713533728687126641621775918308412231410441420271074908808275404430710641101920295932625650273081162291913187905674404459156270516260263834868236975091123064922267953500180052290499311504958801932831242355820003493868135342643752586533839565690205843452486380679669880273087153219960811666397953447045056076197552024231641444697761451456292680972961398162780279384850156397988963165563077359843548537579336842945301664831236355967539041639850386870515164904728406320615720400698746770357688074101952041913969378983683530085201664026961595936836357046796008049291467429513276002787925201203728584708914598043337792486373960145624446822562665933702525407276261811796701723425965324612689987991819298680732515903007061136081564982354275345597078397350217775400648383243325057708538212073970163750800571469462815790520005375158840316970101134194104863437974234565986550605997217598660792104281902385169773794669786766615049531591603665377435242180003381476465355670350252189251229999420258336161476424804428101673661342745182551638171306354413264351243445364083222588173019524095506005313750990103116947712464888080968618387615030239737720756391914071510520318792983823966601667869252781871069573610029498817410681976899303838301789994982822191575397597664120950868671072200843315899899999159687338143900661167446915367513777176726142017848505130244202735279382888027649040896131867954208796296793271246845630182353013040033028146731803569285962376749053841911844201831610628208028148251655531784746562800076371248709009040461848662799872557131967443650406556304781048217493033456200985366925989657726929901336243934185700137380268264609496341233353433358259093872148607491732467660673521914501630954337276204228672833159022393433620481208992298207038520597994719361600994605449848750242917008308906163043377069420239138084160365242300873540109405912340188864834622023776627542090837661327243279369293155309898612864982591280279961750229880743613866184020976604035339812508797556846631266902486889847142521573400770348257488123208254558473147348084013528261350117059394215384465448194938044343071247796013368144102151503664549323258015403508789023101616864042514755518408893057091444813364051565449342087808922092623668925820934881574216037757660898197553450507904588387511015517795102975732650593405421783958254647592548564256962116815441160009650169700369525462385961697256946123803702631562116898932571915368016729102706845822515926072513746126188772187896550504972819743572491738888018628588550532666340373587098872455832803168105517396301573573665906133324593951800311998075788881836297744775627464946388869686581705291424343501186627166948876810704439509929912715166268458971250125445611625964270739397886721523941721211252787549827636011627651826662301270138381095915308623346336833664833092983610711747295666805251216041674404517270623361657172931635539500142979426864358283653475911592482641498115741264612636725803882578586884148308447962082118278619653191662455261741527058016625573131903498199267318558882189698575878481147585243307144097070062161644048552293278437308281922659052030922988926810187738484674089701414721977476597615331082410162020542680813062154939151761067006149339529101828367965067602246066664239479107145334695927933794118290017002009644683949191821170852161891908974197452839250849839558946692214617103345284803199358137385889227598507087892985771782130005640819804518324559978072140547920179833042718423182037112324977535297005997201226399391731144722097263151785299378386757873176965892852623934596147126085142262551730151960764368794960776067832427383752190580025025496801931361904980666705206977880257574456822800144501691377908553538134783470974979146600380469246316261985265531738080814720971796487553730759791053220488896946729325725366172943044603308755888877202551541914108381511462612166568119998296279862506124243684349512917742377353433825583259608634588169024654423591958687498700810676941471341218555745334834294072257177966246187868435792066378597081522412107009314360138648820700815330320247538543767362172427094164430552519483682601069625253929016846329824873681090172572716264048785096858365038828453251004009159139678613101782907060454976855956639964490744730604673717980963105399579598073429624997041694024579662600383646890858417935361622349599443712083754929605593865458413353166743112926675293036602641274540133162886237182029104243563993260105068338661096573154994774487181499630098068969680226749843276824315077151055754287730544577442762621649632907170310841308664577793237742471218274773802092501358810201155263421000106670163942200070346548948391209966992097322575291953326339273249625076655437181014253098629384027835109456169569570522945662227453301954733712708890723064268961823810978386880108723740751602347549516098198170333861674155899827003247429794614455621089342362789732696249812925430787473922698839397109549857345776087700059192707514249497515396720733363455083725516160732319130710367927772825693512815170870508672890049107929419431886552065670721942805735989005314845611729207484201731144841248122438536414971933769143930552678040200599902960816701773121953212252459687861364911968646152687400808178744971243480352385406635427469336320981697598316430946119663000776418799116966036716045390240350322430737575576992437741923070019385525341438422701160747773120017045223972460241562527140231469807752153131747953735165054517775997052998133773986948115228333415500843774800719656290031379058845450643470371304592846410964898002238686214544513155314478968003008537078180607493174221518155786634177967634734730635133922134207812907830917490581361400893765655704637277384911713481230000386011718853716216040580718062463738487700168601262774993163636548490478720273350421283760358540622104936796916176156641858741312056173788181654359651667233307580567333091233099358407668455414172538827219603270358913154612122081464386333651390849158786082930828480230272001024915778486135165634972337355582385191255933868467707127548205015837086515335202892284106781921818223138765808923766510923781310177745198018290058391671261627438995758190558638524153812705867475604377982878458616079339256427322554608391130366515615807768394736212081902866861946699920411038240747607250217922963045487784501720692737936842283741495063373003677979141942928308462879113141176031985524556747262623924766737277353546447271766538720751340038709200375503644392245190509510788287207611146275018218889913681090457877013018858220430918576923039614822204085656557502084380428235943785765397385500302324609632535481975623143651363147114576766889442086827240467457046156692100432360722987351334329878171497005149167384430573909671712730260191223114744711763313060677253921314310911101232343234041200223482870549163129096135552470130043837108305004295536226961981359351605289498551419377918342093284906184031999253422253285602232955686070264223351346408873155209504130226056719401655653430957541045876934552339060922154688122759429066228594368112566037379116156789508041491488109442639337920262445311788763207603077454085513636665554587977880786220415203206468405896226076044420319148852250620533472048242940832327241770200238990507175522449331287431014595886783148200248574106184966849342456217563361029045625240690262308824808612534708141435880644750464031682580107843580243049324726574006711317509756038188576192082382311949898063785578120695220021069238724099774407165047766365789981143593509041622885151590640866292033081395074753051980690589582258105507588195545093342914521143795712080837430708088695135553451193817283303969163055745544651291540727786402655316145276593409945515678306378901458311577867362227411793116912610937895988965352913640866643972034728491660994374920766850933569114034793231014170424206341380515165553386349413706407742063261792536884854236156137106815839509415647864254272672628505884772929628345524580680584505133419530924065986193281674183573266488017122098264946628576426409422263130536516500464434194780599917378342370153752005999595088856206176407128600526936198547807129502720455643161539574418929209278002259584573199839681073774815081675786844465129731007165905612785339455262710477706328633796381755817246671462898052812480420127778377388581549918048850437946555992945774587271744785862732103633856905873309835861508173115925873510407697822664219610150390168930885581802878736995614997511943047394550110542519015330506729413766226186027956632807462218445705741508594105053212527066597566584840370192400712162238585382435319953033537030864583710253280059937435294691852205183729676888365979641116217522541577558086403961567512450176315565560079517658198329335298828301407008373182464764319188633431612005066495854052475397054578438389281602005105150315673517971160470111987729936058246322886684416634260516676896676313423635584481808890248882771868990287078506229592096324785975214872093922082440906562181948485715667611408242990707220077022839787285181078577549104650084592948088869490198987120803370665599943611413445980419266002783441074627297767918910912970724574820837227197115935138862932003774563175092050062040830334993408670889844565933676592009928862524032531712743892327578693537027550906491683415116551384462063361124967993781650053031752201588825589109489439180245777156482013704511118582175070374164470478508638102546119137600430638006163603818058583735544620608908354572538090970608661632393986266022932328498432562874713719988981466691073166303488983607186389264403073357513437253929048202331572533003406450751089701728171858296869810632299997749973318783423954696343229762569097789854839025448016492805700522321398059428663706560771133311880743444517459097624836701757317645462277353200739357909378631916661674094070347199219085425748315779480872560127200072265350777298592848491646650202627597023653613118219357140273054845838146789817040135601984987129474478955381023326782965952800267355815821336460406397024608176387646496899117278313040900512915402742662889479927399969513182631861043316605512554277175974398735331680262003506082613807513801612091098933623696339722135624419868134048263752475646648110571171979685646677813945574088106727077829791741564458946230644115369980443088740329365748054431560402886856670599687254207361170477010963683195795138508564861415720268162977413188530679987381299753939431205514993528845457542629245302822901468219380409916934622510545517729830764467030342827429514658193640464164129155828361281014810683283304976215149478162958807818160644614418478911719085559416355730530998331479519846070895270453077157748147843285605412210615434792098964483807478879501209079174911648665867043603720872379667980267900276623015372138617243726030406451241768062624078675577748512153106387535423497906726249952746468088473179839599612235876661502991517656512861432200413976154906255653693050886619909553244638581636919827232696359154751134869878789443649796720722793491754195958189541969595204837509033232987857904143992891250504394729768838181554344654051898672125419217419542849093466660302317667880797254638383863912945068856779257478186596346693966416020031287777147654729160125370993496425420810741509837171156438332173350429233082125265411793489452033466685381011198519604301782808082128623295443105312520213898541478703710674965176188142589925552382304100273862217152314713594638703307219820971238496535802866994227733539965038933775322671842416163775031694412498406987820263932288236886827544045056297447168259824460183676644185911773689614800773183511929617639221900565538696785921645146427178769126053944059386295949952276365449068534052577598384372280586902179060881649882564349930138629477071622308386657199431611943913701013719414032725482261307443327442314697477039718664425197968076187931053827702647582457091720774843850179308518910003578018487295153842244889089004132072111406721406074018370738998747228384782862640044709446881434707987086886759724012270147107244642009966966569529308225872352708644634666705912397628767056698258397534863568561619638451231456902969751192284019577091358178942094572822518614539929622472308491745708232918539376004899222214472377389667824532175710917081203031222090788077330065168262841876518909145466320324145737929709667077578281262891615341339792775734710995460034952101054373847925147518226498109643081154837937048193180759068706569731827714707893351389550031602739492314997571335453329694302283001444872781375141612211951992248434758697165378568979427971243738012026924838104766537778131123964684970948170988422013522185394282606500162225523275723382466155019603276120690968694565793201135177909978823844282338321016526579920658189044017583422881286549583580440552449154378820116884197033090863559630525581136601065391190793285009387940286597827369480844016073087171556626079442368633442198736246568120832621864234437201162735451389246875155511753316014955258577247227122392994198873945782843200185449709314351627485255946624118758669809699385794720261962133507716654266944547547948024451419998985311305770164717145398428770842559414931134151949924591237350831184818554106350383060718321521178990925268075474069158758040131457426612576229162532119648123006151389860235671367059692371387997256816695229389650820315312361524195914894109479450059434182030085158470923683526652922859860370267804924786505904666444427658166331814912234095471743042833864304423195539230041974262037378699660573886539773579305047961019565434447902402245306808231984399206737842211581526117223135714999512388698044792046492335094486892143098265751489560866825220408349514394781419769992967143671181096566732766171453260954257229778411836827797972663862463715239395487626465280695244546237434199547151534310154981179886491919771513993516902533766949414069987336582176467902998028888921242600798110821586194642117207333353870597099860490588061491860097057206856744520206203118757438799340525907633887357438584626133663596863034374651652947054848480424435841788047362431587077972049915206119269173120883293907091130067348322342335842020640088369477132274001692507598620713662595058177361583502939948033035605607222107998264196232409039365589567273260237892861243252493832692729195415399949142725338066266341354103502698659211351597044833896951181813751533960667052433514910457303179192030810780285904087603928724890256726851224028400558916310498779162386403413266545639699025334984418045179011395164804912662399113674317760128561358374152812544894175512550832226345520320971930831610590906740495901436672872857621799759781564882656515487485171213015544341620219663042064581896183816632033269060515842329086369103058361622637328844462220961086175100063983219614829442769214223265578327149391554235018658315890070380222571690652089085789079323727177059328255970334360459956625614772567185367651562646102978786591604732908307495220441304900094275987659187141027320980563489939398446120646725034695078221164948957766520379924144094211889502027948476442090325389112919813415209894940039084572999559233778131696158671278912748668603108958472285470062468178093087210199096390567889113647478277995667762713633764784310720042407442331294673432404968228565779999221162383389117406810149119048831193090471755126561664932986584222597015077908095796299326285989464319411190395621949235416001896936016471203428347623972266295656420661415359195102033889367924275643929973173164113586070496467926603534957934065029827291987423120479179179091980817999692628003846760634873919915057755267035189312534902530862155765207567060216118191672153322265721947180278949231703830846843537258020782420885532145145291559839932534783516987171976093317658719715103807216829063815117042157809069808556139823578350887480070075109985732820351845733117193566572538217707125132298554319400755383934976962414663562752498266511587736955991503708688450152325717626646015840422267807652967837430231484711390045722029006310305146278297327164475996018426991244918566996563938240858122663877500782849515752620589785904026943332529399336611475055001305672017857163541433991939768276317697418863556474457403383568166965337073144035852775332038030703845003003531119305712438018056673123971437200035188786140692794245918145442665193867853739962176454677692930493055572398281398578270920782737503607101703609289938787717117664650007635825228445848482208350353610054011782641216085932948632721267318222453512661804173124155628486700618856621096678541656829673266910728601986978551194820698615637768657799872676123493579210163196339411741307193926840696532866493332494056100510461562345863223893387915766837015859256838261717383849397044521926707609386472537288634918795121706964374728761888838886704928442325982119930394828729848982959620703997739486894447651605189938470695034553116552351017316184281592884772212540032760997102472084882851686653510159096191528502884292044611626798055525675458580003045972344496439331171463185612432829631832386951659514788213262222823944094245196199964350486032485717152298256359662939916040452302325692499634741557621484243268243473463086228484711469439090211873025243829339654816407400594948490392847282491800743066352258691982213095674512096213949203620627807409020572464977463899670188359575314119043359118568675713982530493639834341635927064673464856136809476250643679298032452109509134227527579337070643018611378520960547630176515306177276117829971534278187295661005054771284879753565894688659274116475371973082655218369257684087689895755339536810375457317500576099904781676347056442206061211744252781948918216491274687828552671965911386957711536679625183860031494558941642156425558150636732903302448662502224296645621068978370188790270680138782153022167908933181423427934354064965469522353233382784864485829955005855339363525726605876414048232171065799964999768221950895327272145215228209516226844072563834696246578279163342442947366142274237428983722747075054920881334279861222844496198218221259258554455938899365367141408189197749381553291300627653147207589227316459146921740625219845275371668526009353665965070501786399011590307769959185441494379554301409520261038439995166631312260139904885129419944360839627588132604841801328496612958045006495485390280890379209509234319255646416928613354310488637378584818089672045967687846854730014005325544750906457565590113254263796578836875640361376922810161984403746588456434096064933751003052474406717822416644416836059028930456551669844752707291834633964440902789548492817593041750978110402812372437214530923229216474322061776146709392153914234302386974748441955176207339129721730730557418607247114325086677786105328814891157250545668762812466895173926419931671333948992919148006521005783800739031396038071979803880315745109029718959804807613358286917858942274860252109049967634708032173197590837728739940564753247911146060165554308873391540395819971294365418035784611043190174539813677274856947682526766111701018415982722375967134433434448970683780382385675518868841231131570833010948209353308574281427161217469618084487716687232323807045835615488035260372505958211483636255319415157994532835346411610214187834656962998561590756117228905888969091143296398968483321713610753983899088792555406707687748990140884983058230285921885986914204861252851489229021769439477845960158841919390119285178481843509794090347585526229585755256345721497998547261525060624633490245009314752608199004905284484287435680099810382978034686378584305364479520824356058615125038565725786932902767869341633549492355464260020864257436209296872278080822945054834731693783838605020520605937748027693206484246414680321239092297500498718170186746666031383341249235781527528494156200147278115998937059922676678853866643395380437725942137563998457115521854622438685935138408673944040834448620394005511074618704781822962428057311903775101049291770716369924000768228594861957784830576938676427420247133575441478923693050088477790748189578309959675985010852762973211293326907497116485272793835233088682754786123251199750716137146287040570321178807275420606051661390094893605098535626638764879371516605440356265753970557708298473996168505492475957556616092589892345320266384429897416306698554016756599786141479654003936231905311448917857607075268932080908999081528513429988478702941461385870039693295057958633685613423601132625000421731512026074816256096898180570986963925489069723103380828384301717787399634515153490126813812573777728069146862072343912231160488370976352412971088687442793039347262203621990512765757597269582914931863279754499953700493942056479190551962081365904142344650345532222183875947625163882644254717257432709983413980496661740690534302950725469253167948155475544424153310646289540051492553496361076349933259841693503495354717181758917896894346728352680620576802655858217053983554125040835648806604901515966138580394580280811693215233708377913661770154363154512472375990137763785928705801215405086905040564827031150228857128187024836024517621903179967362582061739899108455773522935373135382195757443220116314825045576227360822858499763974926796840602208336848682043318319275930535711297080386716422756303374960587680015198831755009571612025922050059464242080077469739327951293258047818614606476165826920586235350160612320001894465003858932117915024474841377404472274830231013788404965066082001677334320142677135580197992206389962315912634768596354156374745749248964838828833673770353359992108640956071485325914052369911776420602598180905622921458053956004680019199337100328453797532799462060088340377722110922909932448985144128975666761735079338774265518659609706433980232250753780594381829988863826707385096084222017956816017480980478748712262257974089900725375234668596448218219652444684834025593404102938830720032366373826714541604999906828042023913654722659844518767128467304974159652925520034913208517061972598387754373517464373999722074699776505235307744971065364738782952811591237520189338036272594819462042689730600468593802887468598425478988258640188999911777299080009638665214675339428022398939450542645303747399948417419056843207344383250217458996102651906143713039890437308008073373286747141485000744938613822340105774438197609093720387954301492219645299940998945124739382643384785278883480322013092416773263435170015048837646001301589486709173292054305644663292191980854505980554724808890280307206388511510844285681846155077407070880636391430826221954458272870785882541936929149274638931605281125585292279731215624208573664660716808319040438537972278412456628963287461287277368073120329409257309638326868637653477206637128945467472687753417490408264695099081502978130207527114420865121193980663185023632672500850348590056733305292542278893430618612543221624510023854812744796823474473604216869982150309794901255671399833670764335491994045062620714882729307755956024800740579892972943231661389250230648702706580531108784826630277725290132175392266112155301338287663652972446042454095947111922149572469355565387778362826137122099036072031543411556070567938200442500165665649834157986718290109276367967528030149881569257460231645772867026259905388828929247240399878883312156740261474801120150262327388421978843333683942894641065619335851750656013904093463356557874980358912455316049073423586178819139672475679522432325978398574779971988941255487803718497646050846113674669568407754712795954296293406859574656697319902187947393783310627801091182279972468292670464925362700814327280603565841476569237483290950977382041082934256468093368925394187499470611779955973134667988954735504831723136289591306529377042932944018450541678805576592406982769809228343102448041669750089928441104175339549855877721512044275709789272620017851778525147238864098808880077598247623302704046760615690521790806717725063174018069558908646844800870059432178213721394076482458645723392476685722086751225027975364372517305661266846618596400186521026761556282598133622101109615490140197844583705209449431139772441036485811635971533279918236730508287902748091186904813056742257028732706426094705159133232578908754116470927331220266118768329937162828596363616236167458028771593365797462299272220727464546314475043184053124802612010209474041127507605650913507361338540598004363142236489918845495673092289153879922213852781811381505659632183615083760142433606659590968589772732683441003806231007523296446121296215181602712902553069848825118979267047148147275262303624250033217947197409353637383940648573120460432419999224308606146702476187348442436458132207207347882808155727805178761702664666111775007160622141055234543888697614217476290068240653981955419538061446826031699844130645723091773301703335329148288175996948675936448834274470376461343512900663236151215639184530120934516806459991483586148322099244152969215164771406280561925902672235061038510294856372815003026841953687446182740763879722584204583510122410314338410027613568554183796139967035421278943643591273530043660675212626275046035753272569695979531290812906510855609785937674525102040070661488587307479823391274319835727125356711956152752575882529586788656339742631958872664080121544092971659071149203063732143230926124421723499172209059328380029474344631880984386125072883629744563208300173170205543331272835824979596935882745046874785381808029100417262028131648872089043217966084184119555711328273426187835774331078947049152715859903844007070774506024187684898934310313410664259730160565107791061414023766658758012723969722358308757598922804703890691479430766193216504359040121314688446694493554225140708493803184418627814959708085854628423703055244174887062361629721681699148856147101348053498924401073001110365996643007264382239211474839853250563462411176367442088739182440851499604740876308937268274109612061305536035822900676543318163981132796332951404833240823359340670221358942776012995807556123996697398014570039298435338045009639109240586462609844903419898889439408551966058727637297570215583709911799819320894961790018576765829515986330740635361424444878885817718100223610479232278078762214416701614594929245014177995273091362982141725134550459851140951976811532892447088428885968790619931566998775527201637988252081014626875293754260439087869041253580255859687272701447675954572151833839742796961449802645580323445082721955198264291219785399943490822649816391401168438852482074864894006558997073696289294042083245463571756332892442740221821144131977095805298187816998739585148505647649440264465560989594729365348622160338455077299714250356107424790735431658823891486043307830283314242770289325631116567902867412787430671404412291137078583457831507990238683667736521763628704045039711429544592139526617763062645552426292081837684346816409644341507445732059640446981301502632364286788248345735019980288754464528887259368035076450810514773748182876320643172283840650564498697226016714735084103080652802703077531511266573061016401926030184133464250229763921940736174214826765924133576100232591056109140704446372358863943544580532962783081283243752952090241007433065902692840832781291049630510099230961554035738562664522176837843151705070596927639999671713872228803575290370415123858192094229644824878014509671185123997583563429054152308110828522474115834792580817188088552113032231564774755469528216931457646779616853454448504338393018855133192405704599210949011383748784756052454798693370031637811388053218880244257138614329589828512196216077884246287549851222449391988499530620485276410250667708055743576781012415066040729514770704077814501620680106340588110636672920365302339559153756776116547661007137924882002520645201199405668702207400668935996337612561043467218420144779241481385633061756098499842553118877046245966009534581047888563100228109387353473213173842956060664387551608023938820281424138033223683553546009800929467305275726615940006887320195970339430784960053311964609428565426854347379785827334938572634090453480035422130095786606441633209865010510186644246282125988350933689049707294939776578589622972632519753974157472526560905358979817158796512466761898787389655024689772793852430238543697709878789226578676248242585249495442152863607165146005412952396738942233866396245307430265319155473533526928548029467273802644996922160236395885867687940120998025786916743558418461539955510856127154001095462038493639973399999404613780230944963779968554003477009473365175445319806402531178901058173561738140744393052934179542673514726032216409131669085436665410063412609407147618546145173968637803886582862722320868498917960499183480756620466015706699067694848474707140039831990567283629620557414680885720410939837704889686157371514111545617411330370951810031929977434364817012317076961981096403110227030098231429693188037295939203926036356776851201612990958174355009433569891839685238473572846880148478471642993496987457126089140921395395837064253088358184526243666507855752503249369067330158607396468350787759798164464991861344388586294056164458482474610942888786881156367731698025013934446496168721908957192806895059445658387997749482153932597031458161053055486297675624825990848046146541143156026912163381010047214576584419163486772031461345209235164220197184282236134866943467955539422264332922921052578604784798575486445572823289350031542076224144441908708627106424536679106184335059259762371919944991449637551185948431514254212732514386268116536567980925524984993010333883132778738018969263601715339938248511396759351539263099577397143833168526806854010799076082072803551097006727164681322626890386759361934432747116719602516749872860629632737567523444874797896690348904862150897641418158100953895055406016500108087716232314831438449057220483060420086240962458568185219819809371030136344369315937408647664710028602039928269654542395987585275498079490364814154444586017953299577182459641046437850416209754704555650657314749710772151795771971592390427476604199352887525594178147242318815958274216152205534363743453417871770875497322677493947168268265579900462632278561213574735493558867078319601059148587965784689924577260332864139556418318593655047990940556398932597793830165373352872563108386017277721521861333273956847709086771308399225867904980698998581870977126508631624973470031358166198301825446947387324071959578318952581685852740410178501356074522848329300660603016530076187910100999666495978917624128340786581720654568195448820808641350259814019266030769602155188380103774605916109584567822533745168353004634715123607384072172610450066394088383153178108172135830178931354625847437465337372902342157098439640787309753172181536230513123378239501990202093653150973170810613133681065162656916526796555354724241181153229332782767892183757107477154415850699114939254152278287591595317987803043758868101648236835489896354511754405816654337837696852045490298630088281975911368822357857450066131542483172338268371505808507748688728873380179120000163966946224577199130306096314600529322579856908864933628990842260280792154110105122348108192959029475236569717762064060568683351372599083211195169507479854261740473778790890860176927222927903476119198726044232763876853059613770484836100278928230257103675387288198988300790947155523825383627129963659193297479511306081208560615119647979242684025406367200193968742138508081942408342712974186299469056697673661141856656439385712696865223001377693892974619318454889212814826136228491783369613923487143624698527178677821642305220894752515621284440993831868512438085137131714928918347392236475582755380344799401412474506448315133395606710170684887179701099102170111191903488067084743741176632510452198068833017490178894553490376780397313138894402093867466981483732739901357275238564369866401036179113526994874564366657770990217590240066040094125995982587421878886955157399169078888136505781130373113873698446688156039581234172114058701577503097145988475083472615293111861083441445508811236962316260924468896295775995252345391900813103408654614162017575737524486647320881942199525367366252325476605412871417996843734477417000921133691307912487589511986551751833947043254359256004522316581027052231274853925577121169611350406076571581721249519031411486850888203801675238437624691992440645791597948457367870983690809014974652674491017670041794344082182534993273849144760745807035258622287476353765735038650648867901689851680272492920260824102875826718379131871695201097274426594924846746914492701728228335148204222586679941992941531433094933217915473700052180681385725695700847096236222084623137438981709176249136307572456133620868535726444813678108788040759740877826053498813933676370818201102985989969600285909238771095391188188001086949749052493325305102559460418244146762619833610756691144047753721940992019278204470782003552228913669973476254711609945515934001841779314888682562661369547036335749060179716577646900453323395168980457093642950200812566811938916193241798371285427600684765758039125422684220706000439752093409048792792075026101671439059383137192213962800804968488838653056885665715230431468597370529897256254117829636260672392380070031349121316050567200779957550071263587675878967125832827862247962171805168519429128550798259299454441101499389478213373715596075231072257645417664392984618480513206360638796876319606195195930544593809528263372478280855759328830204742496332415806975636208402164862406811098897868309262329080628064221569960002604195929262811079137769971707108284579981257996956844914559366198927709340460389539567012708069222709467990818267844411203492376006207812471690335531633363422250506919596069922862770522094655191817418151117956550217508855684886856150664361963563475829305648738594829540260662553505461956096015781100273357678249080075834476514021935613837919624652840371697379660730988312436245471176752745382964895965352779379756868843708823652845914177556760856548089017965406460265084618465969832337234075576039196609066826764234694450402740284592636350080037744652044319766427790284571950335139497927245712751634304700727739422896617350228441706028787593996733277782505888821020661470192330061039053739845478071705594502446872433546454603604493549293932907871500622092280837840473348644785017763939293440765597282003152599062269469259467619317051456029658828531576991137720635785508434864701600998443585419136871452022944117319041209266041973125569913364575590940610939312521431055851098189090256106147495490258292444440612842657458353390086300439728850502617041288685816759044730581658940760971074192296811702183651774382123102586221296748531493238993014710645733547438484922417020191988104116725735047151059721803798827173069495504630503760778888926490691155877835527907751002130401528273846461359831338810765477488074258873233956305456074857079064526388360708195308366623475583693224577708278669535375211597589086295312858524533479744500107503348762223561773044381562801175249031903562432292255055754689384990975581418220349372539950750609710903575565241595204795862866477382832672451960132740557152378454391401625584843684386861735632035149052886101204541640950008089681823591951551534730980256715320172838497570520195594659456305360656312652521785862487697609733215705896983796978543258795737318855588107411139057139669521253897536289529170266252934380612756571103676732875638386210962408233092881896072443115366982331869878350376773286414544975693404108072266588350092628777364379735375850495736142750728065331721010422099767384529532254235691310704343779692877185405209935446441463916767383412004328792091317971957981361188519040218157105324719730091194056998544351712639425304418131090492936224593285051741394655583002565943163504093383348817356016190954801368216623210596783837856576708537770208834377212153918066093431190140079367170825347992294841728150397826377957504263395441963444568986662622490536660425537797483838094569897209463086429403317638365379260096888882027062140228564649189050343384204320074578028693191810019672322209393917557579995740723204338407671787366144169538228266794543680498173011987452873848165751528311699429428758045235132995547514064468941897009470567704040421721881116425108292874153817417394618486243773206684620702267535105246891015352776941496639483719695027588297377704760141551167965719253440249778053605577590470587077010379206234435085022782385937596337664774612549962318930675422262929750612591064056841081599267225223617007255732968553235100990400399925907015612414185757838761122187356949460464247200791903499509659693633516448629665315028134228073870348027542598337656779267298200919805418490167333127186752561252355440933882047941249126856785785342303899204574796914469228293139618030713387006765159162158684541925448334729175564144296669602858079647358103591701554774636545609522054026342779462806541057986527106515698616886703121003471159955035537165129899453446594521443998318718634734391742137193637337943869183232335972473490585839006522574586457847911760786301407636756469663990735292826363676597740385276771072599762063861549982152914860378685522869955880638421472362661332591376145467909062681763444788840339759226816603666063803309941192594367082612329851419875242077327715395037041195607048904789866897963951450366405155308406842933033008651421552405916002043592538861067522093986771024229122946987157366846212861657867976495622908955772460394868400166598843756320181614700276959417138195805493740495493287503660550828252329251683775683911013168718975073587589022012192554195404273678593797560418795059841575080343000486404619597605716008090159394403839627832458692217623792192493237183812545668831045914875551214332095191213433265543502716279933930513511434728807306511345728220398381911648075053212803527456150007365426802679576426804465961127209619588824031709830724236359913006345330851393639261677003654924563243101880097680151418872727782254081085302148561050082431145905178419727904163049830143680209465550217333846227658784179378251777054822692128704749154911948844627018586745420983966352311446525934335263717950674609739980158944719526581553164921245310299993156212731134840052105494743944443122027514963421230094502557153676452900047383768971758133949706077524280497665001338243755956832672770895736810383533655739426687511875960461112803534677962263426669580101052391355321727020718344513598339371545089474838732666743162379505876513291179722468987072728212521650573547690770724766208797540564625521515101721837826816727590646824620288997268313565059389131259218638694300275381587162390821718719263430623199479305073120465134722785344128707827683797540228476773602844347362730501977656887464379572713550668831800020607107148964286416278281775370065394108277789907859502635564828215912182164951952378396839300769125413125772327409581630997498641369159205392012438142808762437644766058247289141641999505995634378407239483777792123673792934916333048461662846030556817959026180320424170718163765012937683421961296233409286621638581861180306555431642245988618599130241944357628097200101401761941348206271957280817860142649026017157696426859468414982512984972409276152215861482813549306411144997581538919550027710240706612105713000367101024622975500268729589095741790973117419654937499517443852376524562084686135530446551776641887810817591277729163473727203430148363635785583958950713279522068165297907642690326939007139848821844742960791775413556425137257247332281589224312932374500663271125054828717847349735274219847741370314561356847334654297557797405124090068810440295503381939766677691116906054729371416032663571631240926566421187267657119476508489926354915800345205539904345133225567561023551357398370661483306104515315949405413424846142012255298873077680982853134371931834133334680424752825456070026964554790379776932386715359083302709517724519826452672513920583117236177467595635713072273428137493020416932028193910840421261540184688151074192494274020839080186323293198766387782321115569083346294392797345884997001825001712895301068127500801137240939673090714587860472799056120091644292725525560886468914237908498709806620398524543768071656218751572378152527142530174876616675996409126443971815297450489877785707816688816636520422149602208272785338570929935303713458007941345267219568002403246113100014097324038115895181785799993945884612520390291957095781821735142717951751927206195392270442343856545186398612110031356239157086198045535443566960244025623545172626769326641905964097169226062916517479966282068643609085473228599792264131754036165515406137627613504210779670005534964785183633567838020671976148633610213372444181249391563138571220894675749499456647925703527751886477235038887520692991230196902083180355004991297141686852912902306315760361026022712048272159793574193329384529210393288991118467484288569510133919007112323068625822889039178110883738161720804169156488271672200587179980900262473901679106510121576443255188943192568666549532041232075010242950889979646309318100052948106005980703102888325036538043171871189199787669172503593954178451949246751659799227566340228856238268316007238538889309028574681204265583020711318903400023544909653680828744499803065037338703384667056580463951737534935806168773645023193242310415461044814311319431100517656838203936899913521454492636447087353918654767819117968161842106434937991509639423850800685365395016850683559621474896509451651576090803214269225159880520507358388790263992726839473072159687733991099395946746833424464289752552407421076740714335948747973623695723469348900116182949388143976936174264311271946421487127227620305711827289472819481771141423230191743538473147385542960823521372859128883108729863338317844680946768387543318525799338208012182499867585235013895821179736803965604455109927600646304557263509145868238304787453408766276045839999309002427790559292969498272538754824403240211738905538325975550589082312195895960046118511891515032144447579199948769990767713832652536162920248682656307264095627696056009763959143422034363545420032368340462151709632080242524104533869975315182911873483976741202629692250817580043719578635750980249486699831969831220689861127709283326209621756605526679543316133275065772131421001522808330383401596147017895448901681713151111204155963025799518362378011937166403746594945574339930683834915577609465917206077093117837071218248234876673549619788312271297811550362972098432454057673987868986943848278959997402096001454175813254002116132354075902663535195719517759639079799271015798517514112277591320072045100684412034689208962847040711697757339638292857451680582118183585899808906978011400558218143838715828874693757933190164922074952027212455013403737787579971440720302705697296455076426677153756767052084623192773178037021037895074480694307571559371617947583802053101614464809877284611782873491489838613343582725798348028578588461767414010551282407180163981771420565157486938385922404888791742204822840596962180730793562577586168972686849986954841487311260053185953915343654921252794229966927642982078649229665961121101654813669312080925280152031312431732725066788259285552729067602458738896424590424457906216140749277597238096348184789942273064205614246797558932174223955000806475579676387322389554628860791161227277171591466597476190312378185231065946617108078455984556185222834165133647796999134234365165465995440161093527397275978231209734616734814186537543330926809378394709575284504725145858411360344345324034361930996920428690858915942910901687713754587758341426387559280166639810699814729325653317653719891831931792416986527985832691254283120329078621261135668721315324045279116101908557569683138116128590347818208315024323257302360756147589788758959499634642214466204530950816273933602636051642296543072405647077284791667742885475200267917351321346659509599757147475086417744057846230488767223099555497791120113092397855491810098710718562078312574557943379894191826817184447139368538719386902223632927343257388049002429196898931855964692080198748861759576000051560016758024793571045273668174672046142520418773190355243584568459528693275369318999761263401967377270244093992990274393871059250536041007949562605057190368013603540178985379363045935884992162493298508673872726667909165938190860350466628244730810180422004214138161203625790736411066744974046968044889180106951498646566967718760931884325860073056200690134167353863944248495986342306605332743586007070633937400962025002875934504756230481112862531103583117260494468873272944891239909990501914092171555894692597563006246471238329815923679755417758809737250323425391980787679085742452269219085687442181117369236011982362098055926837431736749988408116232985045629510917021052252537765478579669011204060418605058378227276833866473991075323015535204471175522510096325309363211688978004823213532091268650341106883586253833154891756387772623131477590721111268673808911206692619308879064998797312911151808881515670844261277328241002237816234735314357123411658921556953173446232192113745300744263965630594860112044564042384992837463755857436969509896223068136826310222135981296658277715810003560304147175941657323954813941815809107390898650498147318075424847279501911249225064057406965544827244519729282416724180372424630728739761222070754032480842343081153434638273880376064406488057084434540820298560110093756403764912712261869756373434631283907788021456307137705141914754933794719832549762881708827692889883462417801816539770877498606352034195963306672576385920922552330401963292052170580454862192900065337225663944693084304859492020007209590294416096191442048119964593147047795070684128933398610336979067202779397669025271475573117827190854915017253341292856528052946523220555267828761218122041324161127841774116974718654917171848064446121787905132060190191463411908683143783370354916756407259548925375755596181110217889607542001517492776482561831026600177521934847082175753125859754790440796960715957320829886598265771513116892689371252404060142970723799060832351562901074649062517835385734165865216847811602646576150551032141475816757892207566937732336571722142734905591451364071510001922435764432946864916813216231824867555108425734156950466451293743877787226818976291710093492584191696073285649404359568909185792413340184041201023924440148663863516947593099036773804092695472168773127793549709073832648789504037981758134523433090156971994547679337456235388679207312948334504050529900667486664832842280867468884805188599852973669249765057411457587330207574201884879862458047024276948061955186451611919520890944531789643825770703989125801703513531638983107608518967764563109210330469657185167433734788339409332655184091367857995637284889065203764007000753968651973960621550484266408727713511980393121091571349336412853894289967873979054687559808889271213017866862126554861456519527480810994564251102244095829477394341932721505713207454344899778938584403269076733100896805895175341590565848603530255200971945490062289667295223176091576621241149963052428550982356779516942042156072378154461953405926383862907122472812332464033248999048899437637854685133457110703621864495406321273244784162504999499001861311988914660558747203963764047851230767725525928800199828527760714459505228980406318343298769133011170413955598461361579766509650714706872867659069816667283264062631426420821406477374584081449371264419399429582609687694838103416002603971586465706189956697559183894528569890514220346212752528936880959831657195570031763324231328382941647477767201187318687293671146767506812881364423724646132758537195913579781001657272016821098099938339297156395772305327669493506464836268585604667529073754652371675169322034910143912912968316133243764422941095660584951086130419059096831166808392975879254891636752348810737118163723153439480040073136655481087495396961840276200993765335518763506033474431954839268375582573725656968146825577998017643499170044146020004328823082747637063309703275820169778360815755001304336026345953101669097303252152934844977692408658939978715250347534435768774110785064339318627473087421520055645505418779030229871758455066847121104080267084536845811736216412999433136583971983699762327377138959099754949985678854079609688372479396526534547925085584470927361723589393398754109053926626705640982019063857181216577394872025055546286391982940431185450539037701076537661823564757926407881278185376808475356055624178490529336332493864847662955475214122989299359585847124166254402932824576976657929209948284984649644059175819701708761708834431232837610327277923818375132352934450965750618099098239720342094522467375752828798847839085477925680270920619556073558743729097630061414505911143861507723554307702446720933554772788210257956102497037677354313222479311790787344066791888436468162844316637153314000263983500353327508290918174607541983452178910209487888633969602293402747296301943494131626537767842042216495367444711475748786835965300122948237599483983423242103574985227653655146568145396246332786094363822825268338011119846803486164856775801856095287883538903440558392966805407975425300094764046959174855337516956464290710435800379908918477416386361420020846471202511262612023533643262656393472246682942851512089269044536370183346435515325789264869891926057782462586869863842600085218585237551082318060160930952896750251175821956075717574119709473866569881232917117478051819022249450216881538232914335637979914685701320429211005276364218131989567466082501269084261337345488007413360361561618075381932810607674121031167904092277823314662697485036405112909944464770506787054067185277956736813673744101311588833262156863327364450707678953258893378870617484714227812386525522435517955232589084421876303669345908111250793341540993818890596207138191567656355560972890560149829756234434979671667252854352320771258741005411442770308773057164555772608369049550308042754020959271647059588165762605593274438771120760311472955342297881200797079068694455980292666217956898221321508759892651838131440627610684719910217702953312749331210985753994423685698028034556229064323781893804797760141404833131588608995285802966074508477875392153085967004951315573958944897597603682455335918837822577746934236339823280795792280887274996553378783287724857302920744978031429893210290469518425907212948343674258482875513986000318943510610061257189916653293811190398400368988008450543008013848745073777717562458497082860372720756514904090279404840680799079542902837672650912464544344290468394372394443428675651776358495005324644128797139932926763973332775069988854026316476415079966674612511887921100927808734782793439200491294672665700800714133054799785803166643271926393248689722495285782187446187902022255288844791980210339248889691103654842632774896195320410251843136901723556738759023118782186930031636084795674723702568028515325142637015623586031170424394289327638509221395018097914598408500609748468607814322699587731322387781258262829680771537114320648293452666409707905941088307125364898601467415539621955054819073991242088276191837999129383466852514946025910283714616332898812603479160097577992393169729342443374903223719710640637174767215897742620926990238761373852353746261233845468019982309263218268360097080111156357872639104741742033998100512426452755202020649992952415287117961009203915710265163091251204013064768762321379181649823708549959192817925361061105134476382598711231180403376379156242443484287393360252238332191931401770223641695321844875613625643845742020377638571572932174950018176399745578282697192784753763359926343856319752529917952199310217267280549432436845595967176176578369783369084705956813636228875003646133461258346287294628962463641568624924334487270750794842528697156803425028593009618556078583990899334216445798241694983584150475071304207918187066155392660556648410083238009397604758430004008522809420512903508554016664693145879984308458748489355716022477389398329558693671393227288897051150052136944574853313528542445441261228677174592502922534319127776691538012414847687637555537443701149921068334656324984023955523498792430520995281521349270584803186881826247132252943604738737940481730278827131661299100916525853603463240361709872536843809152429377177786736489265432811728952826818806045091555289822716363908482846836816588986011054591514205940440828949446496147763826631701996732988307953183539827144014486016078681370452390246578966715970482064463748606409855084030280437917758865888689502012091227377091850851788656405404791906133974356897297242531581974152877405773984535454548754673041677417863216988283837895683976624848872850861249867507327827050450562216556383017445755917293583363815644910460441695097269234524175017477066931234411370601973120150475669976893220137090530344296061046248173236429674493039874477047952088104284333863112206210445937835879445761512190875227214300240361718387698305000626849066343829624310435418616886593725228009801488968991443580118483104691843533660089129436740598098172766888046066558460610917442923881604397894213294024961712714912589299062320311534927826442439177583501823320040032183022066179837604646642008837733859101180830657397230513661232054453909007933724174131487727950404484320746786562497526202601470037796342449053915900698610273779608528705969266206147419005849227021985681575831202528031425161120606634864782860773836668015974363001893829703622648933416568808879630617132106726639787759540728375555465606230322523559378731490417887929162466190364725138576518798644143709275883930383212445272161446287873330710191305266578965642415421082478626205573255442220053276243103431290442421395529058803012514133199738377779822658490487478282929342129786527786375506203445361463649924586772134762936088545720097312868356920245214861796495591337497201694159778596486802274673126121637196698591625324483042097581513767594075307045912337636513788284340256640049732859615823859683332663086961061428767894120805923130525582476855106215783425984592262951455886570193449396040455387389935272298331538925024500623433428714406276060840522907873448630470741832881248283903455514791433057805235262874006102038484050664475256607002409486220492110948394424641208286794650237950980556264226002380190369508832906882927434241614861398483853565079092415464030148861402471888857679051740251116031914018856443839715273272436923769464325709225075457300540912783017514830928099732872064458269842455918994501579562306384380201714850546341864445084125648925755935098206487999330501344323142374045209519978405947149558795788867388834602486697096749991589051623781604019510511639952886195850970803310707465245544472484125783295436931743700281106145086270318422140646216877770404636316977806609505307649341036893991242558696910248759239191501337087867733558518234267436392975968963482228387086610630220064573966996349607203586879662889193738036614762142615283130180142525798095347888122872546360862655143760551915701888187277567820252434162133091414609660490999060640111059513579116348536018589477978696654604275852019140457338601749044530263814906076109596700290141872253264354333196225536162691442778090191302022168065887166248231387269935165117561690752550103815450860174609146543116527203940871781495166794882025860467833264737581134892321411605443546471280830075292516807146787317121903620462242703266599514338187016458959495568000475882308497251815459899865777235167002077638881204113333088169727354369817001408019191415968597719254388892211266411322318781753463858079450619498306286571556113281692825947646556130322077596560628730154476412847324104669481855726682378340788204089588360195371863834444144519773772480019876041793430093434264397658537234174235896681003007689647204785431678828874265288504067499676826408003866007082650645357078741911438868624430533146501789793927513223080740952526104693758409181257540488757471072579239410501194503830341418630335103036850891656687899349226901073208563850921579356159848800207960201546678970380006403266151183731781153281056502504426762284843208249727402851948619448329138188356242861089779201162802585347448322757927509883935204268598827249103104665175230321447975099382422815113545950391777716575920820749978981017251470407263744965729844692508276498342363215110008116214111580325514427244273894153101092474759683130937907813964617641180165636039873102900863809930732841496471048197971124231097785661618299578284031775180390866572330939207139857623317694009611356090782287614440354116675279342482204744979837831926138365845254835582809982980713488352499251312184250236426580800030912708885863798295250352904219870047326794062014071167482869427410149047989134285748654695294653500744953637131683143705098989874036196622452609895665828062910867505560831398647494839346897737100152004142460776153764159492854394922628215037917953032365531449684483147575883361756079544275852067412061374447432120636452656520993889038044039901535326439346681635630498037438876580638984320633363654072686960634748012114268314896046796833623763494219552639173774809362719586847888636725648521267115928197200587806107126815305021695068474840966382325918700082182925931624830829812617530879601742679049004148886063218611933334528695380987049831573707954397194162161191255500449357189372188071924315535660419258181717976962477491589671557015115743206806797990304499017711956188525863583587069942024756124156606373650231626054748357461396603944046273563600058116046753867179491755534010381999211337622625350803889986833708182242127149950874519152642226368548096500414282359201096580609584335206696240157014893808140706811278700153942597209136947067812018879809987501614948262840055717641983950606739236175944036010933398783089291389439262165451423689619259156185217837323272935706207105447992189404473580244409388700460947872204680237464831000928214787146234911493256947378814270496957601043383099546567117120468675604892952585682544579448084276571784868431507642883440556533010078223870516933488569693419937192771798124938898293122315490491579379012143129372714749921963388589045125344129152933417805799308218096314002128376623792858861837950933832566776239924507673613727629845109626902812366157516931756423369982607265717196366133620228479002932265260427639283667962148563337442791101834074474690497204448089879171435763951899535535838947617604849203524064300229839625989786360679696339406713728017590855071567327573968396848389323249958871140179579233546239460648943291524196932107091155747571053068254266640978271623546835194078041309507611634743695527692061089746621389881165611934980024462004318345315725996896612531067659582103906185742501170678257047350629759879716189581695839448874048353316635242598236457737874852023829987112931921323399861742338509762611552569105081505820512544936306433798968191123172157130849905116156956430979073299052974850183054021071592911985934438581214543400472288239553907445767598907656373213227422721719850465100639129449967278048481858246537635040792341718742525747320292033016172253382212554349278429800140399633555804407517213658242264273942624910713137419300057130927714819785226815561110254876727384387555889019759284863305929604607812045329304360632902691431486966725648123740825365454199540039534782112855327393012255152931914668060873358342999098593973348070549265566374768386363616577620953077107463127950225667353593951614237195199095164634122018325573987338272106756466639132586244571378353096270250845988493661059819955547647382472105288477834132605789724826887318711541544108300175995200100923763783627206040825240030936207096777661885897000925277112975116806307139780025093917334354586462216492089629677167329800910373917702039275113592299217338229550961625457847966535091699257997819323161387568549348719158085325595152704342796556464406865091249075469707768732218689970399749888778125349516721267760571755726892845775617970989391359041606035186490064131367258249494024907918520673355192668484516087526415891530985911374866008127110583570842747643356477016717327635920540649702600038679373299782001035809770704073546101091702269437869906774773232281676836958608318663064982138446610402953256653300552336155284133149597655650813590082971861167370502754049375038749970659778587605477036822560133046550036020802257895866394807217913882864102859661434637245787345188323620759311087318681822328785744156752998093639670208045398853403678963004159209469596254701300760075297614466273186364990571604278111360255644301836448297688654942363781429219871086212960220501191270593416093600577019700509690332357845773869366125805628507682550763609199886423031818750392435067065886600193699237704172083181279603057405134169110483856714045128111521899837374320639875184882196409182993028602095182152176703456854148673564123324818628543009392505383849691533395368806983981666892673344810236289588658530783974995555762190325211085659527268096766988152273800324307515133469229625470166942569219632632307052064361213468857144824870725420351516230049102551585104836220966985565988642995141755738291817575332312055238150206704668592557472414527400183762145918079108044400396038737195872278895948987554527776565404551021229165235927016519621523005453653675125862939172732021103679095833713580704426076080212859901997902701140941516799410799760910185432042776184060892345675242945217743690869000502492328556564245982383491315199297336166332046081732302749342506672382893959955289673935786564189109107604851969341223216182719968281650757391054528667069361823886912856778181834414197345493012708525308130376671593989420517935228226891980453164087139112757215320456077000411767835281681711138561739993635804858435590953928475020202827390352853097815542827879886471898765437585966363274936228784720651014994319341007170254228011097887012039899896238559523115166996578957448234372736720735296348785268034831297135592269577959577457298746487054201261059042910785663757614161926575492997241914589918804865290839295763316025027738840292480422794535380559616990378855025559104666094519603621120514284409267354263344121251703928126749558149339681268560669069964858397997147127869221151714288818407477551805430472463021890773304238288194678481545112001154744390662304826544141982281133561030174644532283971438461793574397587640322669584399275206562627521017702252716372308703897374766173444517559467873037268169108436785659367740515895204675564084221106511875110548945394905116445446965505825600193858483266529059330969369456655694109310002801478824700869162867458506433301004990358640076578710027807483577536747785873565003650374457684794112502670190366794126314841516203291053005110842235532069561214440544154519084711609171077699198015871737938171855402601438448909614677753398752896718976038843477504731802804229428317608874489714641066744334293449970059552679602468598844283596951943460645935792250709616334194353212592046848008860060260709803689566832011668622229334488670930427558479190597627937574490868868848864132240589704655401968266302225840230445401451513330628664688958699025184517342735853425255917397574524406667651150095487246544790232240809418848663819740783362252513804970586845872049669797292224335148816955376719634289388501325264975714558943244820238334001167522303778286796746763750352808599332361268216521600309896349737412215053916575144599564652390194119991766389073495382658708600652991803834968470847017913998984973744254878485927049112465179221324075915564912726364052494129133096485974619174020084372691179980908226074226999811024917050665718784942173496360939868775012723311898250821518718224068191924235841971757853893830939665867142945699930239558106380907441067684548107658587082347375872666995179162445510354864606416453093176454028453302610733571467548741765811952003621536012598443955875332778962812820649950342071753941551003629575640608664064328653909714618344130531488164437887041355796746841466217247112999641159576121366739039088698647489387949257542591052359007269328227986381847805160327382573020122849480358495046907345633525541511716592205023612697000110809304887970204297307774096397429148086866827296240421324884500829047544990948514390153852118508634118845886553565650047612982863350107635399915098433677016137576443085789923998372786976435768645477497461467281558054676045015235277492025717169129337110024591659411285029369048354312675075053601236376570081813596814020277947188825922757233179245909371995151481417283572769308078455435665622545034012751282973516619822101541620703010243339708657692967143494314934079011313965256932613478904844526730874318291171981609158572379256334961960768062494842368737476441478324841407710632524143959201884962830013546961472451512732705103369331611342862658330321108886937951520299611797314725520764400949940247479641533945606405969717206140295057606359791542039143722306708535177597622731220123469071740058645642163160667797615122142746848315653766493269751452182588987310090690484393704205145533513282433055521095049562091042491767611456170786224149355733259481782036506398543274268754302428953838489845776592571137480959212977447961999818878670869911882267737099134768995243900759697866313982098053909044530015591357093249491023254414512801474635556491988063341749145512705111409247097713671980486880470767966436885743730913945314274876807794445607759842769575076317564799548999514503678119107219770259296659937927813350845781683210360169061584690025618659399421356506180674871993882478761507607686496627231930015164991180235393657166582090936587236322745339583240691513669704170278348777634304362389411831056439242121558605421882972447501265526014446453242450235657602007645860953440208608823900778820627553966208166412037917324059306483618768225686833807768466205418925556734953068993521978214380903735993117982026435917024444461483459277139736251588633650672612781860828335496708841774430777130506635317669119031437200302836779043468875311914977387274656616545179699211054447527172715373572520916198191935028286692769291258639286314011783586773271229869202389121408024289186362875706566694703336152752159127219620360534076116684042940775631505051563402820540459340351535053933220107995933967648695897836092964394100337528500114406609758792677896553560785098123417304744264119387208971090813596949424611824126088085122577288925743492036038595984474123224076818241857540451492912461727563608765755959922275147246502953388714221233344901936855000238191426971569155812485668245054904658368392267052897361667539861590211953257823290951064066510119286719079971503312598056342806770268593687903750580400974690779704804656090203287047353369188080921262277371706220494837465754287202773457328229308388090937611696329864972050554052559578167313117640835372041514094981278087952190479492073839843093427226313878694587039538602363932391668012816995125976543368862820446997763098320499692615542608927181775615463195658145345658293659100844719533643815366985948550558113473910250457988301030156410614092065103860280792120763340878750267240426590900954943374269716141971003614678494412707463763687297823301219048343430969422109290577332855953838061540092312473343763588920229336032727988831521415603157892030455495009406092944724560566303571732692794909754232479325488997848936420849465319569494052881740545553178964981216330300140080199156619835553051185239652503944062166076793611140095770065837674423522871377151059195030266763314214221870599609768316365908627068805889276090601033011605600946691441483032041313311438057278416800047806670769771891900391649745631512665691227181684738714905125243193265407005218321850925759598467383712983404020388709821058670988772754683040149582156862531707175520841392153228097122191132390501006121817485392743072029293355882833079167949841420062240018332049113142327799897029738850610622758185470871105621029817262126627395269527971262773741166595828804321714973315005270907375124263074504871210766314356020015216279248023053748716136469333877608326163760400029507402945263693014964156786189114851884368467700332723414077881668587384156743746524317240687447834926193903551646370915246284078366017194556872684785842928429614243632374587040125803345188535574209165307902066335807781291582411511173656444160636955197813838843168772035110349498679418494850022083658318114412210778874124789978991375915831624510852292672154959636751597214329358503120400393454557797988366797126956799676692449843318625474211188218381472517026182458192556882937942674222956293400095342011947019612623082516340714126785662066048136347256436396221451087564761806437433139573650210024073226400235864081799877709625923473238208461820242696354491300759693391588136942175101489823749328415724063395373352821632465166706507452169167647035562097684128518768959557859004724450901946097718329371438724452705587196797085246202236982995968524155902334262408846468546691088337183972991265129849633638708950022770032743887292107218840585668974635740301939501287961871248565195201563168684269175652293064548404455186330890573383035958279999931844990028631558523357462400476504707574249149893726553928528171721307073265886631566220450172911993544199367243032452730112671401316889882273752525753092829950588205038972973280499072785059692345967829901341710764630183053586294851969429033972282108441613108953783038837100362142485547522763062780913773820938772311174344749641435937175978835366303614915069613674275331492819184614905033876188691020469653790131361261276863505803569333629265755819076975379472940576487719586849705067743474788404203988936897701998271501810471556287956815146866554623723733553926017264533390362837306978718475716124660379423943253350140204176561856049318083140928557871710586939421836069425659379765527974758404225510082764857534936305446534493806125042295005897759998120892927623836242743987279623550787737268653319562302440384514363921919289674519517091240164240002261394120314308043948986601914747419601110823988654362775336493713561715524314044624605456054417102186641927708096649765495577162915174248061937939530097667962672982197992292283391518459026985269364136093135801948012299092899154576941768552151883588044664912377206780082755618836463956176681036027257357562504099633389023201751834240175634451625600849999819749803622156993579659189863574453362642684164434328955854463967677944623584454036888933367958206270934365151062151603148775290401149634007278471440261562065876158969895451518424353992154996401370357443246616885592811173559117504533229793270714057814134991985784625851773859748678659056927895653659683487040770168344206553198283340259225539705971416881978592451689320452738079897838733306449925455183811763743002353731435852169681923684309053634400276792442820333666260197478688680697354431709146913044671222642852239375171990923694132357747408558476491171611001390522857519209085781413390308492909374199814194516247370520597807772126147526936442105164818404477189827759686976961000331258520051116541409319535169602028033948583637398596349001820954634417000837559681889011284258520089443203187304559418130552718927099205758308513760097468692022468058224500526630683566318576710345134466101654971260670698992004841076339370368338002918833047580636911862572285550550098312586873897249976221799351434485301277299520827723189420510279489847598772253854392969450471855801870795006252616264555092094159315053617159429056556768491815698417815619774331281533598332818929979794007919972828735131023984107713719542796022176277860049638140006614577511940407528887157499486648904536981264661638427851559119984451981821030237132341402169516357314666904338560831236676442678413850196999055428199004462428611216936996569088146516243462774754352146587401405200794676745459581521333705749094649574737323172325116297723892926160573217782453567382651824065757501615817449108658206878219270359753609735878998488792807282486694624836482595369797863852237582203442787087747410141519365819416312645396982204970193999031374504224785469402392993975953780414633800183213385482072405873189061738507340161897718866575527067397935048043626524645936223311541241051690492677913928754297234765148255502179141008500313354169369956382750538913305861817177093192289552433188226221213114359308209861947695435122025095298590991449716282468053876466700099118459179992649961262648885016203713177125582047917856940020770249680710238567316407642422194200482097675819883041405730164917210850209469419943499543175474976013588246390772472928140085972692156359411028873139672503950137542708822970139128187972930275922141703121608583651695991692061853510259405480180904456041569832337270524157497098497959923352617278352582831383344126344921551022404592455433154820399011256581716062765367580120043094696110952384852017144440184849270233397058094411215957463287006251141940110521942928750105167556751801647207871152365137893306437997365121654605459393464694720955185598366306346007767018895134354631736976028131065174661591886696115817269102573180109026594073097411089403201248113469795821130863035119652034842882856891986929005976982697414386748284798389190225008308593631352076568073486564413424171362341205382970509202878580253170355813685293298095557366407853162267309447879481091758130079334484278590737304734065515404867088928888630158937457586682266378565065460172505531374354445414065405385479894627545519605404045626900037122329146715647898473842233838230755017045505783135947816666998493488561145285343293134003198866700639896842879220380946933038607331866516297680417030659601505103374365741461156291247927724818233248002526050788115350805812595475576019601797768835158483887759088958493261088979782166580749078104094587994007400449329099177975917545324497318954640602811761189924594388833743199634997215402195777300953901303842223132749706654590721051946114690875599750699885336479272325484099699533475326235392524010674885852925811528693556653824014174933274869928244161431591293553610277352539152803570000199519718077932390597472259472978109236748506007759100246391781811778743518774096475977995612499899642045550827531042672216005888443243316645207868758996373944456304101303224213431411313247406139085916690129427876371232431498706547879138125796095264875260376576063647764300903857590964651353870160581553974088955687908631087079865281157453645871469178322983296063216214893504609679936561164575715819963061411605099513532439579340737934672180379942031291853542773177478306340429401921146155076606872482937975982514590224935735186288373331810448468880133605055086060984488979839226437383107464373320647583224522966837752254126114379271115291574469224816621301613233432790926925053716486715642653635877677824438686808894846104295912914839817433957828167442111805277644230030785325986222915774404390048387049939417530485538970274154953189832267002090851948002781693818987195400603235782770995268414169012366403579184469993194823398932454471277287708941259765905696611526005496340297550429019704151664757585087280173930219891434455608918953648832640182438751483845733504270507582396206787095117582363256131784073589053783750661225022901499588461537601240659074420333430304353268321897185500621379281018050935430877874258494446292957512638527474178168670173754163601287541742928077198694891089071886274212000388091414514851340554968578428633879724661769152394481012821121227613347065173594505464927718164325069102132268438296057681736183211783819784633015746079351110136281985409805748121354052283309085785101443963368878116999481694230985200983571583461841141824806276512483064647609002368232206031994675973500288507796559593951777492096936939745999662085804915875631229251087642766810685031529987820433303928820619023463802029362017830310845369768295390323894605053102541882341417024920729340661012650287449815360737481167824694234553325990890101271900888230709342806595476582635161476842261776113615812938520332310786799586415327407984577789575833450123584113605969812013510231503910619746007204065920712762413829173437731930288233777401405673676221108344550737755382862263596926386160885419512160846869304681262464234619729550604889315093646450596060626689014541461375096543305754430163755758220243579791425162188633264784367965494506477667176482631622791512999987659010708453649894338997181808691709415969007246947185465941165954593938151642589924010113043656090495841990730101087350544577290361385588942166906526436875079941644676355059794660468780773995115870218267402019361681694825143505965702546213354119175755031429842934457429140217745638249851018620128623986715116204314915602273059352195701572587212919436748687371040240967514397163863999431281369517390063774313042255551782146722751213035526339130709645141642347965963722388157714361644702839646447988557216237102300185811791684451022227237944104002125277916808810685684008894005262181605407778443521826072549808897370313157323240371729559769761185068032821626658720616802947504167852550476225976889528264659050556914795415643955832921120871587663148080762410414056218558088557867768961920130807641671099296123816062397150159144388505778870947778804109713769621884258863726468274838827554100038374776455827172593811270900011439518527671898110737984992989549802856919690187268726018071598988434658143876082197944173771340502632362810728129447783716743922230043192909398627898202252995477449660101177166264424773257490212102932048538173151165962825940566651856191630248962079807483864978453699242788831264463866844446303467216421079650391946120288696460195440022496724783632301291498626430353898808626755387210207386639926268136744676663827129433320797739260308756547666475895104264796227124846189407829524080018094559143340006669725136863996873440343024764518982518278586686278277360251608710513928016612040041145932117572050808467168249344351445486211718406140266201298156813780015611868075117707318516497206188415098442572592461592727612210132846606564245667720666641064253022100178911711292334846037438452027448079592051074758634320944934391611397825018708959348482858578024530217316887389606892093667599787748320310533868740749554632982787759710661709728353989677835180820105773045703244804148347083157777827303078270313687827871695686105471116952321520748189296967759094275001680684607996114645789894738941403115556342534995361372997462369160074683045036607135732844110643160954971913908061108299675456336611141220454058177775472772429314139750994615818771517437924987569860743200833830288868883554063725192433895223881612798586313281863348527321741473128158444458023888760179127211695513482757256670059696442007953481860902759561686326339634231562477226416221326722648003032700630676267395031597263781567584474997456340877054485075168391688587201883582290865194442771210988569704185206665350232996613759897500399687468175784528771477388355231217225484748724765819792093178378415637861411688142862109359994133659867716594577670379481431146853882647149539573051946310967294100482240383677744624446496092964159558662655654244957646819300301320574782056763672779678224255261392734112308612272343075788766479049313326560684794342490838136883631301877773988378881840523238416080294651488629122180140238237692790963494748795716927826465446753174822291943153566657459237895949368125701938417458702530347247820382372308142947871986851541841125514133819839958567189903466541499295320352255374469024856700897494439091491851466174317054542793587518916022080348597754436183254419569242205798852731540698995043508288602859205456907464595308303396190200367913497235752816830280955513958113642022793733405315338506475816500034633166792342120208183202682879756012623944854325873041031506048130413580140224550449774696988465118743500598969175712995319830271216150705941932175009940052989187365510982420253683605835169429086848680798379771861759604918792966472200246239890610684828888078340035966751693948387083691349511297328743041559736748464683739801040223891093839533469921018751447516101312525502680354895689626165768307780846743851715690189114992592792607757972350869428568159929753768164854362523404900128724840609093491769548809472021762072855396828591437388895680205164116603230377224360603118880257667808463069490377811734491330313763845221670161002901984256550552975724241006567220540051884738739758972098504160015321830200460060158918602473522809477968848482611765870618038294898740063482065853850905620097605075822623014302865856449802015626310340994776488101109290106394369787624030003526617732659831255496021706657838803430228633283630483620107904845571099485962782152806434013572551699348535390202383972795278297365052128555894895472073729980593634196044963341786803807053215735634099045871319641503571454388328705637323201367733832431985314001349670521999446558884746717501074189322951822608416061148911582504131833978071566643467261490498441727515105994788552530231162843228913987772033107117349551331284693324672104247345401379104703819544405813151383894481804987210472042100296897152024971448206936380344292560839940212631756604601750507671908120760580204847926422375931020910328523304569862768062695814207565234485037280475516556956987353068687092621007017549403719758687247563862655080328528263688332094016614077157624056498495207924687463185235887392967893484279643740051026852640276718972804445688474629772356916668449588872721648208844106768660488762400141702254081337483608214453191110057451598028891077145203777361061982325948524450404409140452506867938183820740474274948893936860181811051494771468586116190829908755473282663527333150742063596668932643943411459365777378854214464260637933607653257504944559027943624232640916848870295069685248229532804558564608131733086890911727630129754899020969769615796596895408000182014897631961922029126886896249533948764106162193599159641794271607503048748280147592119513523617202490375918207058583361682190794705806903043932359003674474292528487079941104321439413666804942741781775019042800025525662918446550710534733007579727922185108795509260230802509913412469761062706793725600988882197819807036743150985064810337105629971814615995531707227318292906037071027512624720998864833146718448380034995936375059666249525931511352939974174725728036577509057979825890534057601635279808953489493864122189785872003059350886464230531540674438775131150552941595207269847872255894375621034197917653480160613978190048685204950163271796139152584244077901675886394685651035654035132049393520251736241269860290347553919238004362662192138291723056491107420401264101037203554240728535134505537972255075261166463558099212036741902028536187412635358163848568548338106502405759985314554338411594237826146105976696886486577461275638114229758462142659699744100864884488976592814122031878725346648545007300247232083190086015628151818431107604506188727262651254906360415725687331650307502616549783848297176225628019740450026268023495255010639708783104269691899087044354736040653915232219927446005173256096284489374707466244177100228031837576194916714754990490441635254341801555623637503698931066711426261670749570660493618846174594290771244405900685323787760741906190913091152435304044339719739555236704636041362867860600520999685347515085588068012714811671816130575872270547616764331710245835587821994116307387580432426824383516718079555465998379057526040464978057202068379150096729721908853852014466299885646686692354297237057322151235669835194861802669853191243739869920594232618354217911100542765914735967344059798162307887171731194655930055354060148648069949189489654293357942785434253697142355820760769356411833543867140277788545188293374382551490458201240731275921418613167004978681353829290021811874208594538023781022317787254382668230404828126141411596608450414498052114270824958641018833941593569524167109954678761520731946246877436831624275019686362879019130354374060860603135781755632638964632878385990195875542246793502831706961828331221853954201204790352387354442249732213228717501258090928717565107408316696491180795893412115949010254722268891593522122714299750979191018842062313477036483639215169130343057228645179031194769456314646687555776260767207713729640308355993081872632775741770709619934925274211761425991899556177416320125006547454653344209896498146315591299410257691843317688076216047908071320811410738927478351584003542005530284819258218594483228310357002209344350251818201057288250058752195054614861755972147312605340852877949015933109840763663337214948811852782663723595570130804828709972372611958949610864222575858461174459915641607749427576552954880983040380589546514685469717352425283512840466332325806104935220665244040731699079246810385645453646103568587834828318745086458589995605117084447662288502349195766315119310416053859474369196061310285049728301449402322585377718968695160444603194391278667112855175775887904431523765180285675400224656672123692077598066239153204856656824841303978154888434211121017429726740665961199557532109258157956258623213005954379953536976187426973668731299795851709736570313145343236688569125265267135167501514342536829423644152463530182561837537157435095611767426623698710107487266006025003244320536858505941771488382009542151246648000679081223338977107734251601168745365764529182327775304352346895549792479832081243271161861114540544336624672665711691021870761842023920434647512962521872778756098164547444596249014645336841861357844893888639845768911776429063306913543394462378632891359688378345817597112307208318835483309627412809747112027084703228321214040295157375437881920986804146411861302363892524054553039914643925233380559196260148408590655847476921461417893495420480296947847966747759490204563582417751694644630360914879156580481470782467858788897322506956412377240193924187555966692890906820417856189526853493127219488612105930737635921763513820721471729629099013650775656819863339075189827840483671280547076586997178043818655625840099770310876271311122339582034011211807670500649631758806003431776698256800124174412762901666115782372746856166700342921664228054014021036543119260270578485315403914473417903733585431303594378773501124899143605520652680899083388302679183009159294828716714449872652295486768201232153731763744837897432537491233550981544971020865580687694281452903438851125044965217214096832566898306519442435617982565302575544561547091406078475378643984691920309463221893737450997634707531870111353146927551752362658282903138020721698823620379009715094451571038194328917702719251060610279975824802318000086743414263174654910941660985102268775042438163113950339687164806067240009771524945261499864681848467958088341655679999026869118136342704343816601961894915877417937677993642891145845857764694460439801883223366783830828631355590425639088647553177100431407450164512775902757571332949457463974659006501112936150375593304204037311330530020387824046123275266226070801966089836854952678684506407093290763911689042722804142150911329667973357366140811700100501518956699097352634890423501508194773062661590124476235623083248948538432428390923795778092316913766295634165551913153870795086593593642267161730529548144503626389932478746105533540902645671874874197262186084146104415752726760681825118842832086875298621929941809526261442688618548536298458136593024367592255318598167753407954050624698089547406297457826020843982125134922108508972780024645510467849094891823960251193885050052616495238641157549636629312704958015492713622947841554017321299870289542424810094686015870798791269171736186044975991284002977198104358730708946226228145839880186047577793608697256475552337572003321400208904267818572799091198305830341112024221734237804414936915171503112854621521235469579552213628681499285074624619817854921020883263006160518147307905236293776178402589656403026105603851000144484939730985375870574740649085727368916571981059737909620429658599004955076863578598994137914945362592438251532456597637529954067735704220462752074952435966261664187167061356031154412539097718269854968697904735722444272974050941711975002064526344095129120214407049907970628316015814687774273784634072389602118625673334556887478565286490106087984611498730007347397574244746749532928430670152325223020399432546113819159246270177183411349980184521711173745158365487747629740551335600056476296649470943141352446837946986281765429958038920011762703641511467859775858226238339164741029719322767629344942914896898353631507996090148222684291383531677208742209288948247339453302966283782887296128513963646958911238504902233805011216623537482541310682506751802920101122225432402164065637880367050303987798017928464340630598784518195651176271464668851952397790029909421514048118753508148725858522639965193044269214468208184128714471393316564754803999001942612043320827002713028759786475543301725772718433844230358745693513014293523916209355601362569181497537938121969569706062094137381822505932638786324086355046760093390958052291739877549067327116799322465489985373980807942462565152787518049641922121481549271752420049590583212298693608096256659790319914871426382568472687957590046743216832034092989170148787168107592492338567191941527900506620503953878205231234284190380577130055392870285012968896398452393875935979413951429998228961564242114844772867922763104757092628941537261458272689649257839400119708690825769849465358853553284675340572855464460740713070732648118086187507362075069118422911978847217426918222181685355602041677235556217183913452283630380223291628168753839007362375470940752971065557556926291502117427341555154351106541251546555671863540725166853474488628894217244278514900179802070847169562619632043469194323039478544061717615281675120908450703774191241827014535550601983881777985038765890906389992626388319372387502961514063430668787305682147980062063033258042573594360478269923404465136034942801307406565812535981213909523313554369252172592891485950837034392924630015621562272954942752348012784775130567948380003423526106005785862331555408692285918914148525928010903208600420685597579205654454238758324066997810019468083760832623841042765630778843511522359751011761473555862230671716340333862886583998850719549137194210120304199618599903857054883091178642544988716188974742848315958092236736650460785611468016169896104421729125297864033339171931148439017482819518195157740187867424649942169646722515019003005780143689542409969148412836998813040735976841927927782276714861543233282299102227171385693751297582417491470254332803725623357096249769592124098957600968592764021301827636091725526429831699824202329077180527840870159429207905024940262783723404488870972424232657281870601634987441618738821880469735217065636855576637048692239486842510927788655084477342806569464814089247859869553257940662210274487995814985327896285358725232455190791486225108341297875818968180052714285864044539052441268360976289309733991039603159719377824253020099441831788603658194208184651307149235265760799737612048263227182768726767343489702168607131575499544803827398139654189482350284538546560108695931555931512676283390865860587728648292503549611769722584545056941374146577242020788996308409064170307637678999956198351530303336700777397769341910015219149964856639350275611147043243650368832554760179622626113597110657696684875914292112384856137108595393465179711651040715018581275935711991938948201898820040680064018918053985901319942334962216741452687496970566657135759143264782807430781943313270889517840085412462403059087988328373949674103353743593160373545349252990688600984704759867519060064737955429297436379388725266322422346634764335652915848351354557105830996848721821297541711121567823907806100602539041471230485244190065070062188420375151653119477996747107821230928071165025630994919575371931940290546792554052607331049381746106439563054127435518302966221040911339308659423768363176189153882403573795247712343897931950120012509422837006296386222451580225621965356466472177196097693631900520528902724691554843681834794495082110551358558216077951892171350495866104287996135297218704346375439336034923934712698975830090834751187775631267967506881891819286599623651835101051534435183801288069734321430024270131337012185368499982383716006914438475498731415993493957896110205026842122752260889471510883086735584336868838255178819407776233159831872532243763350373608127674960522210682158314522518988385278431531933108473924016446441171699367520509854366092070362618070615544037469542651769296107918165182479854341902129139885443090009434431240321727215010745939334529579281850134763154834286821523062981718134506252913479693279649357376252698059033570981753551540366191945319897315693814746939814121695196257007263267907206623658392436122519426868936970081815834726405520003692733601362901127353193796073006255622919787550451036481836972734619051129536481728160908652050629088843635408298788593261312154017305464701995169059850406397798162496654601045634476898936277772581973388751850086690451652794557275675074302762510276661097963904719215841663421944069550830538269100754954401173136143636137326625951313758989759960321262535791463511217680683638503719314891189886452301435074249527243486951307622698211302351366686860905471351888833610860902545463973604651305815123317021019375321234158958323449990432212061920067477388667422290600714883521169279638718004048779883621386856807143856803521150198028486586329064469710347048273485744002935356930057221697013831560177583271845530352603235455869803656757539723657673868664240109821064188701808202964329826342320701760809194136340519784243183242470096796049227065013396718558812813149648863644952962091656591848689581938620791240597590613395927368351904213232366266228842382736309981909001259362528152466326810363584875652218383988230038211414472042225032103534849052268129344117151797110507684155075226663171084196332328191147818814196854348281936129107088619970639305074597923783652464048655943972870112802574463173435108119733865350592147967037860421981412275596752396703781856261756725504807633675621576004516772210611771161823836462581523839209864706283396996066668467485113281596843587616625078306821957375874360821997579813386587433286283435677687709317310717494445758168196069556779257803224834127595994356690000276650767211897523671192780061768454178823116581060600354905830413607872581530430183400013789315948636001033378774247472152736406656120499945523924499634290437201679609418650497903616673095883013967404591938179380052800955433719780910434820752768175993069444143580743769774113736763939322174693562383411754069566736200096135443429447200088760889525557882790193270185074223619290173978415836970379895765123276183454446540046076718492313203456716142015044955785360661447805883185823007976053822340053149150688679162809330668806453018748448358866337783969881321557883187022370411354279854307235974397027468888041171149802882317681643451451743098129492544480340767336785021429378398174501981244231181857130469418053318093824234652603103617293943620207177932794105725665581669501514801799983143189875918330977733068499646059982336598910921517415911418994390208952818218887030544896782669422026228003001193796045027541000760469847000639576677449604512449022410657661868180249398552781214321702492605709146765669863044077533051031922994512146585352351029396448883268188919256113168998583451669181894386016040926269596463692350335337581030576995703610738264122179099753862373878958145263789773133866919734041155061027156709915478043905194918440420465168309964880233765653571928059943844351311276348705122596204992711960737352446288060309159780063019860780031248287064383305277317158024625286853889087310775190307887633806382356608685100539100193330887869144508794987119282809800986896367216986718745090520244546891780038590939903599153247873659805428761949769101491138116523124203997883663697125385622781219283505660606315591208168806551465501215929008190896443392146306472767980322634398656375486305073291909146559189145463902983924508046094120761588693639719970409490441330391169525822126432469728455172160155472693283397231382997940921996916479307349121736673159344669714692333880944313373975587082964825452785382938002356175599661944192407180381738609021939382730852066347779672301313900726564031928871965802456441727508820818963599983202701659063838475117784306340175121739191229767219182969998131790293387183679495675397760460623057655062192652129166133879215989856815970631920920868046884030611283394106798856800744137590190278297923873578551505692225241233826043109853374953145809996024853426739085104796558079042653892787917193834421434033621104370969104200128537438069231390003062551392569733153474404787391086228019515501108187717733153489792521606067435705252679378335728072606579799386443158261247856441460383206851909375368290046126427874974587238841185610196118014416738708182104058036803002815258239817305033558540590491163715875763043833886713222128841391319546160360434926080846657594213994195608478787614290960605297358911271216725021848150504935937104888948246053527415654405547867335818633138688423983655990019170679787501775850579863602366052738595877901628566993790763419365533142852924985313784922221746208941029204731573063961194936456889199878274447672903317135989192953403120149281668450864464400120014836342612026887200693473938575169091743409987482736251061297940311852131269528875624940536513193348989169260279666092477590683751469947891462563147516122602961585352487702973839265620521867741548932214174523929301568093259168610533407485900777339234638814128129220659018498508239797597977874518320849570246020026143539406228198702887424374707635341390088885955303147714968234922902759971613354012668334509095202048465595660019747588526238229794383552029437303163707211042914603260150440702181915702680118587143433396333800219899974104591432854175505347952377535287607860788561766756143290601790919839768099078465223619897857820657850139163131287970203110286382514243187212016590267798357702582089412792534669312100212270744090990232314843646009415499421030279701055828362212371943291406198139416868572077635959204649618150489329000455254223889075928908423434468213847186720933720095863943912519133599992583182008945194594382556916969106831085223797242531078734963385541592241511223651372815962119620669938247112506787483380080578770500252688254229157083602034423570682505336987019189825408949887608589046145909775613143671427900388074358622501753825180511635786987854505175141341952444518973064984272975490329424092108431827128261294558214583191244453078042460738164396912488880196479440551500915069362396232985331205861860645006065137438411696709248322915654026832450693378892271501409431640414442471837074244149217805047181202983348290286878744502595604210989743704894962129708960405223896244321920204734039261552610059793844106413143053733270109923253669402598852370475337332530762119476777459805364421245662776741910063316016358113421195737191852010704085887237213944738282086840813030035830983200932165600475139678989911832956194877989700235916063848721346148905252299399768285181653047804498788420705547903127877741843576165258322582756548299334220861787231033791665423549511438876826434111494209977904256254202971445904567759870149317508106403951190296808797258373471028547615091751077010990277603166445610692832147351853008641368741407807056679686629376984350812293051072558655484251409248805618981982028386859883843711920817568982485653597125344415024225382626878486085760579249864493970145639951330261496145841668438231051227475879587034563292435122741590696095466579272872072888254404897608573291263226621813290198554715554679897642080208968040906255870553348556378030936424375008115221252939176652714869583619856982071337337738164006768807299768309543118417185055833338526642323869064412614838898197385520550940977875078637951675349286778516495800331585505243678918223472277589249917620873078143730163641348008736237120022659728985828312413550972787972766048251905520391558423640177155270123974582486606390984959906095312114415069794940488594964184519919081767881084850194476626352865116004820891957822211189861040007587351194885783841329358515739843717691120474785684844938843346587643029479549413354896460172789067701138949888896631539451745285972404432598164190966652724965580416575020043805520994641829888205987639611110841729523684390288338273705788414643594702352025743821486566845028388036637268230245715071623689314559361445459713190343303852265112109690336981850197808185415737841627849165922574073711014766312931444164816905218741985760886334483529576911556426067276259777403610863521982436865177157378727537540038472805887230191341628394852397705481481520275948721496573652425807534211109204863881309692525608949320356049466428561141007134460915932259471200276350567074884667493974970870018876010455612464241785894627482621435152442872949704801827661940780918400122867888197502684462641131454869403218587777538239814934713955711046288213035388363140865941082552346464091240948953803890118490996151295782594710302719267734797934241864643835669047350273453632755363166572048996969437076113659474806554948714928170951350523083934478121465400361657719915231491595393647093831635043721926733331805217446580510231527478753034752208332425995195410949321513586043725729024084764320392215088062413766382597384342299595413592936912598893021493166157492978926181613195561357238547198712868910438552662186546593893752496614713398484143966342451327477498712422326078032641820642594140942917173019394885084398422059963033585399205891725046623709569195691230032682688938852661146039990972565233745775905770031083205165648483164137536337016339330252647704516279104703967438523795811724010450673120852479162648794835058190675342606505745259225826077195059688371074876248376705026178719249956112047390461341323514082980589537083558680516292809193908262744614413960296324651505701516327152284946563523838179367324662763843307244941068379319375825556575029324643933207555678698575921691610884471959286372270977409639165242562765857229889769874630373758449822470023288746874164877746859102321607485829322018090558762983103780993806392817567813976096573082394877687549640912897542991738160909998578986670675652628943456562619505294023679050861867421819860749473069012024014107808108811442444527271169496418765410481572140114202661175376409265905008358704681588333079816725308318813862177341483513104316703056679206396738648765452431586763429376795888732482171923336939712736721985859851641389797094297180465883097971918797455064070872041455506792366680701566845767750065754036033475119688048606293863255099718910653384593374706898299616613775772571696764178514979657567715487491128482663035589686391596015187979559609447990449363752753893596491182327284207975304504378053753393913014151332266860042840381328942046206774188686884566611218992406999906101150898829206337306187487994709932805918555331020661183766956480512590477827981743662530405425757257567131863363792443779487313221905697546798438619720726541520016689669802715843560708431049980237321326185587981316727862003431715242435346639903090942353110017347425497620372121639900272339669278924729188968071378960389531710249903109502088578232109456963827434793038440793883212778429963665151910380014625845588200146405308679508030653349110087518377797760390145319943317995422280992692788471245860386707745467814220204358914531494291563703032050867820418666516926802094217788081075209122814369472555809526825384696038302907694512462941380504204238699601651346902311055924635638854566539871388613012538493714890428260989021500751837760821316165539804861876412733337839594900091535109633505073987688192488087621211571530002261312112088126689790969603064871123095801317649482525908917232785910047943149682236787471847221182084143539461040360744738851065646825454359766747876042622829912625636848745898924691704829173649090066311002383547197733526766955120159884075662455170998486285630289420841633723954838033856212023913317009545548567911343141167293170382233527723346340830141638695543014712938698058145642596904453369390407443966336736344682773308132070568820325077648981179414656012296847090984957439960536283048283765338063381132646572548533620116526863820294963787530623472282366274728234218333777567318743531821095004854456628631669689498447946143331787199351110800016484237661736896709848229936760367767375215137936366934749514061441855222243581441080439251778637485055306846121750223264964326836937813147558755118133868762187032875737845244122773173767354225691126010471782442574556945671633597252655814861208976040315813410225353985454350794542036333242965129609226111292288242479850114592703355270843579021960231573355618173610281106852562006637428144780620381262911454492488209137321681201857355926967558387311609641994026066172127173992259171474476725222175836370379535554551601976782078288216340422626310314567215449520025363071496417961303743968226193890588511810720553000862352801422998236497260600300798221638811591999124794424456620406503690901589806506989268898459022026591228558156621425635766960387827505525928191631754934549336516953358292728308190404685903730512124122375137253604573369349110300563764844338454047659643856706511572471915132111519487435309129855474368388382525470048668492813676071424641392868398762351955090549442679937974184793373188927185024522749180734406319865400268817380346432551189542860590435267174135071217930067484784116329173517218336770089549796127142876672530106475545637950892754983216504826236390696496613290244080385704934920806889154739908774550293746206775603654710688193381003662731539321110608671907957720163762397491384372321918821951093138694047132188525219833690134272584131022100648003292001753094884378529068537594200083478409527585105858173399195341895670127613701132783305274322504684983772037925206075532198245362891529804654472227161709746646206477273749578747760940799656914088456897467977870788244794336037783871427866393427032672384085831181029113175848504132872520780637766668298539733422454775113477325266960310481341564356231336034243513952368524522677565856317611575406666007969287019222250729064140245838389018214137673609293263982745881028806653057603975346754553813866782199651354903998203433223182097116413123061670728008119728676307604564616406827242258166286555154355925777292739176702679807464078511867555536191007412565420929771096130579453566877795798529517528262414503332374063996568795216373530666278638329715224854561496164644017683258992946756820668181678964847018952296726228891778116328895290338394565221415989468459034954488439889098332728350277945882708830223142835795391194486249306601960824027971368168544942555144726008214291355692268320949228225731082013935265313419231084854389240404887921202224336921117202414086098876960433881203330881627460484610660968011927784045200936717840479873760555518201414440662130417324877014519850042517208129500943033692731775943896886505437563583896071489347430409410757621958698593171932382106755293623364161459255220316120918976238089832417794897873789454877661099977850407449399198530225147515722129902196781949898902856906781473556226477686677031444515501930316174880947016454947599934214592755034147270358149010843221441637123627104591404720037884935242440432691580685935568674674289993800815255042885453987798604998207940470585046944529934630630800941243343078738976064855211778995910539581833850996647239386151607053651021949997959887433822176188152869521824482709126241791197606346707660335114011068507059645731689372172325722843475186362079511396209624096838829282105606331591923396680249261647572141488451587556746673297857888918929639078970228855854470638818148756564569840488927839262193958094990260476440463404669467653128491798563397479221850228767711657622029909863080877760070466658691167790902993827765281331320974314947048698959700138606097088306720626302971679517991681219954348656373185897298920917257703602449722528203789298070127759237565100238743652083620658882994368534060243618787604418413106876670341675156936160767065314132257739002201845927796729576650490686072790612115722825830125148441036437150188070220328745328154063866541971783700686819889962118597072567192217095284549554180690569715739827219525401482029884385933220595586746779840248970269212247628180421118916330990530180039826500526767473880767123119838063999225736109990548726838706899536034308811137667575878120646182032492515275952320360776876959581934604682833633887167180807062807683652960061555568767836813015730376820197094631648182363209910341760885384654371134608181821761332229856976171600677241727976733500379054915820614665838575869443301451985836404395095282188567780627212656977498126097419746255558073392719358842459974958542841669842716967174881898398974246862713010698119412555960120694072604224258653543049786391248682737460904894846498867649956398000626705817368870668807112850733314330218197543819956064257843564711337895489550263419222851525497070490704883877519641310672357175202140485827620539012729029207348480258057352533092054044826820158108374429249248794776656840802704863876859852188722694694293064425495256499913117176113774198656277354652925442049278310678222970394870890005792043859272132430412692163643902540791057724809013871913690341508599637601724982913650527504794495835634585797410443851762929028079583636008381646624459503338491481791762486911674190848955371882697501342764966521436218300649991822726454031342816504657870529158115415452088541142661494188665427005921385279183323034287512424105389229408688379900823814673817444726687214541157138112291657484132158316911447011729272054723620129287521503100819684051112077866805724247345571146689568165823513928794421122795312944946068794253672352456988933131814815363133872375188656226211671379256853091895956498312987478516982019966685768461546943136173433792666954402364548734993062463830547034439629154092196922278013885189629651517681618927260103589023055178077252637708096379360647316951208653165770808098034906955422121603557419873617698340729325711756341568061598282320944668261074334816456928069316793324514087654683423206390598224734633021220355324366693713748540445094105473988724297273296973252683046064655360828577704316126644331223688905945782510712400840027055371312225659645703433578165199951141769672417988842564776746809115446094803754728722947275301748772390486760465102031049141618462739900706008432774711972957705969483582484384352813069027206832165015498656644157171476603921135236179554879044425251839888889315096242450344128376574466421126095230915012713739474708295614741239011798935762167470749452508512074962158167475273241509140779705670259414903069064345737244262572078442605572988638061174882439204910514992679090223470860224031670752887358463752212328208623088677838071138201513471436914994256996683432694417024397649214377678835162607596555795846303414683917541327939687291081268050884404167475520288944146078192708374158534714096563897412549696810139944858964268767307721840416578258747873049530326994503967965788830816461001002806183216608680630093985285874880715591714114904200740193317874102293126891287600621398571366937937229140876320128266039080152410074555495049960587225959653775337860984747276429306594584031110806978584974119226983706514214595740800664922300859622219245444331048086627774144264953431244030535537858796543934825694938493926218697382184525728196143705062350237009859530673093609702512287440129728844405445232773247991705761117736518098392661151557721002339146526232217160176067887156138615651402143134573852048526800066236091074840562391518090367835014825637562719003963121183918742985072334837545360358233693868469627043786908071469387009731567423344193314074439906696360305492371471135920157232144257996450444385860892051344658132919532951472291689412658740945887214219388297695906032842774057608194049149722014013162904984570770364823136525312161157323361380245542770626252572104767260574971344131569901253370569328386743787021830096029076748279073285071868145006954603677226733141529787892977374685775118527799302284687751355249318542158681496648852672855163033654821368148155746284597506612598766657515075676089971993327999021630388248072728902343095455000318394489564865774373113350458840160741671769643190959122580442720355726355817356590687180049448338502477741978431010727934499209583633766353631254491985794317150996079126645758495372664201524612514579042452789067448392536266123637230574842711955608131875825196641989849416239161633332320909759119797756536857423970678375194951781101350506664945684056709989226672724814090378418504078914511519201949067749425522694253417234804969039030055643750511086779479650738806277951757446003055732924025248457285965387027640341958288893652700171328505431348075668074594626285886831906322783169229699260703419522376572046510144192008605233337207256452856411367952451439045772811816891982479466468992312525785059090888561497680346618225851405872754285369571275379708325050189815787806881569561057076778349928711270615701463431127878987033399362875568146822665976061319933890019682456430025600781703801225597458643817395629707526695173771485367961584065886403752043448708235737648555644573974844000909912952532781283717515638794706054872838958037388025262703441084535508416971078993564202653797280467260477575664482104344398765121883182589716569288720853555587020630615442396881582765787091540786012931473140262092895597506288160815265491963698808955123710972350472951148443881328394443796157848271456429461599470997478818959054032220922869951395578897138224997573151791536883848678344871561874050300110227474878881530718330457122056701025536047624212350238967828790073788108085639305703059659653325146470158429105980917738979034556114541691723236242628888058534440172410058458092820192216383519465282666585985370240135803326146812717375057590398339192528208978920034513322963232863040221580429116890046998255329253320115059624856817338360458662193672744389881769287720819049472957147291914538401577819129363180563941970693404231671191720393870298816169716237112249599713463076148722162526025782712629860708222873832322025667341109255755122903636043953442850047250993991166718582102950653613253297313185084373971548741887753964019751406528015921262115670983745072742236586919728284366478250251372033183754679682708961407101343848386292996135424210617972166069849025837703501908339846276035772574060003373613391815419938694806885027862209113921706114142856773506026099439868496668182274947025339313142518707693015350355940984666244227737697889754734638431205896866416681864600099898999630546197859028421524499518679461383569402679088124613887288716658450229012042147544970304406004828639471156267087834886575548308311830220662304087451742550460937441830925288940494183295466060916274841134668794857649736155459428901963148283022541669502897209913025435667300835478100835649659569492773506653017684241172946287860571441672239051959149849174920381466483325699933704096690264951601935793335604835470828452949557223387477382181171037117191989985830139766575894201615006414633588037715626251440324212901048466448991230985543099959479214575097010265584776518195644627120006933122091051869785257168587579223889174697433970606819609911946140658320388012966828921992627948976399965394798884726983158665174707597460038333701245413651778360622559153203416771647796533733044866106856803154375377972676838250180784097218938694080420273985928977434526823120395246983078636348360521247551678261740042491549255588583486423056871550535244002164207612913630522813309708135279238565164486732598426707270992551890880746880227697943613549646700304519215479952912976728766795272529581131594885759623924729852941874226860639253563155414461251442193027826129217095784304562814197603334046653916646808662034720796878482815323422836106200760572806161238354844677644118341682652506940067326813230641278173111435224184380165870122390509084102529544570951953009046703835388508347627409828719979004139007956878170310786598712516390042198489773381377507579631157622951339997294591770160287534026355520518604276124887233047243361018474105401995415948594323254358912875067105972705361907514446343248119057519226451116510582639083938512789261904243547087391581256087887424586209194561130437742499665734833205725974926133114747440827567398877205162881712153429210907855134396998160666279057952053648415041379102053763007144042987511588413902943562098154208692942298277498502599101205937285152742106846369303555839354903525538337575159960712213552172020762760630025451419712789886998760430072495555856248286597526248532811883090241870229049074211017372215987659646743050811947195994232613315833496123964088344353262295427208615295775766041200635343177380329956067609923494926256052423276209375160634303069066883287565086636151017257922730518539600172448716891608088921109354496206960074542366587179718972737761407994560892192588263728920867669850099749468521042630111277008295563692452314251549977838741557419995876255515985164719599622966398585599484323548727913002959998535354984942712124791498379710637314453876138116951347314476666290417321448701450287036648408691333319459333219919847490064869873564593477110075182450999889554403455489655435919772820147394172212664987920126477320453944608945029239985644205570568039126770090858648938747619308353757587947141250869225441605647570348532613278932415369761464691661854907554348726345628760558282060177715381621411737268420952436118394482603613223369024070293070893924113305089733275298650555107925353213599456990534100918644880272696170045108700071459311273835883662155216147992157728767065962441389459122882381291135478688667864053526349824716776690022768358417249317590174475440207340111694018690433507875705451454838079429644127357367538464161557081320005458810655029850432819066873369198028493587568092519388000022511992853403661313884650518814558437972633636332176829890953107297131812608199626467207384825013095677474208999173546455520844412212418916156224508245251016993144604018270327461700530281719870335680304257626567745164200684615571332225011888098199553156046178946362025644900287373752440998161683919623635591937410027456781488767060579013619451156629536571043318156319433986348267609488892575122673586830663144236058838686930098434476161405981865567550490698828736518963376643787712083512724383264886220673031966196915267682169850404317353541764829966499192095988954169226191809458323331228145488690504182751633479007024574459276580249030576405558249287420567322078309257967347419136106735150339159716432215902287325251487663369183283271770659744631402341293949315557560733749024239944995816730118177857872854954533939138286338168720971401346776614713669589015894548891873579747927082070586462571432796932076469778625585496297666303815953334402797755434872666372427825184127925016017644198667120596463428057953700613184888616237091590551755335980165017500917138298378812778200076109536814511436306205874959175886480158740464224739391060789518943162307673120981077907423681434312443710670312260044935309862094256935277688914424558827194139014651030634720633766227917735516966586385232137101677451605936420856918020132587295377146861138195499806650588689578160636531318908614608009255723821889128203595537349459690774914011496723503946232290836413725240754997268851501778972467178888359031665475278269966521124529289000530504088737384145855196807304914520892424168776218857482280623826820486131833250891257099886685358012015470175721250156711790467311476044940065878097759917562969855579063957329134820869952567750816114385297425356404498596643024875786420479643825188255424650546743612560039606335119071249128383359948592023648104443067198511638840939530478399187134990934215666966093059406573128462763444695369169605459583279515761853322995459968191110452090552758173685387818092206212981694105050249350720161127425757545408953438281946762399893295916664489475397916547185182738845799429986733278514934681783518153963739899564146309915451858488796350784978668143973287089062435020779370530081787099677011655754512236922541460064604009773920078436645043257689741584868284426915523885903817399598781887844940822932729515870744938034235138117891928871367375609457155842699676616721550996570729573824775509532736820377758611111862157073965241049054182894085693640227884066447307864901977338415975156098246759994712793492593593530629191006660530951114430913616132750716732466629745639462557473909560823892714306965802706869868764176470537435309684516837761758784275312910211833408268003548730561236834487277115518583490095603878843427032447322954537678485728704253819136638885711256576554526583059349012918998277652436018700809993475573701727585152185060642569350957027107079741244527218881396835693078862660654295442917041211377565655481487433065443046128139208575131155740228032185822818261400856806546935379407148026908558320286786514557099484557599315065612353757617245194881342062106819835839516374744331613237473978581985916190562645124654734244245931986231480045283156509110597753613639208425556619005064092492823741968471439649046143899185158303768893691759085175558878049788767980595696628027136363123076659089855461043006285287602989851314131638653375152007566604966920690322311023955385772119623060171023495453570311819967242237895087970708806622956282119528365291910767923293730483082870131371356299961323227321886169211819763173329658560075758363577561229090280668936720039124359852411359983487574391285166184899519119107692354694808434899587546771660081566032207258854193655961038013526101900574644982087502413584964718514379978585245980631319917619992791755234710163563045552294055185576075211561767107624673881960292107591748268525372289163645782696441279338568413709336992425142931901850199001509469296841993950370433911408524082807925567567638999790591207202121960585787580610702715400957339834654749792863676254162923711893953460643391639413843157108758054668104285170964328390736435600634376630430666669694958877837675506248856280400281177905430169511789922688259445794972559448574593457835983894117916897895170110764724576490706314114208084160588132085065610193817381791986784327996626730100610741153872625989540558124393512076028563242405320737335724782023645425969182370857252558647452144964326730326439541675609202718693106346410325514003243276407661684011476961984552500695837569822157953929658570807373038513387465622049323604880698549932461591932400197242240718290897252147196174319303377554027820906142401851527378550067470826925730754584326149521378241533964666893590966657226520346830414479444904541769594214807626485601006134506163740443698793301316390968850799514864659433503598090669150370095021794577750218143863582871088622274152421941720997987846011234523894908707855961665397846126500478800145489995243090066487100795264048252298998024190136450768182559586984704072045424173870570616184898349449941798864921584029637454976251171108631334738630935039372364189243689794677866441968839070028010302299982340773985712671945526450503388865001208384801426479947794878983430869438217822653875264597320836036294275424760091955062969099216979282525848090372217640415719258054064046044103745006455963261761742787913622822757250124450303354330861578528485891171700319422143640035865678044408042604751097821201912901481018505946962684337485193811578155173442117355550558610433417396276193491714123324159112174963263244455706208143262980157334614273628022429213717863659962092793644613256889796445822733035577523089503915884623125439664178768266735738065398028639119235395521954134717752969443486046716506953171774641924782912288804027367313821087704718035887000943288319376972714061228820532544647554012026827790891267563157028304605624626399327998050725741298014133208273090383461701596870877431255602771891471218915664587957961938177475600719715758889596928786783528878395084220708095488056597295301284098402335431899225655352301368033027618795145866580909300564112660327685883114147626013102685642261128835899347967222972534094962374152010643641489476937097756372405567346230209309684423816119272989691572045181881748643975319159978945074313076205301185635417230614107412608403722932843248386874338813376531370973660194924147801965462281147851694205961476048896633980604704476240323363246699610555432609819449146421450643273137374255809815354535552160285974928207359701513774813778566043591416152862727783861074965578880705365803454923921864208993724206383148641103820056141486814419014584878621954647643256206785435303901564206822168014410954590212266607720990746249426392708333486265259280017149228161049324509779260800827457617767071407679111930639632323382718442833098400488863937154521104935133983074118532945070310660428498280604126655773048777276452405738245207752598261111264635177986174759683139176499590624983170702249271645072042649978641640873469017248253513428298430055093730644716340542133290960089717114344866643304624864630236133736313900254285861530443260142784196447033043129750424865921688644964135064487740287331362350097796480697965071828738963050811830530411776264603638068735712448726850912572173383455231985053377147039157614807779434514395606082643361558293323480900713560765418361316825784509827160410977687932250426727071902743349491018752580359163893308451641780790314272632526152931969582901579020660257758874987513685356183615308428585044201306088410530612569781442340758270504571005724945295008802439319386182505663289442184993982093738562928572451603156234353060041714279104440527603354565639787093995549239698893614567432402012055786934128313100700295073015733785351107921834471033780363352653414329369052198321201173562839966535528608515677715152393047967905146588644563828917651515257223787046507629973450957821120281672582571716109848714990024757954016273231406342994350408877048391991368519375175096290330298897365135193029329474990046933965691528716398634688880430072471485182373052236923133230992831983717940958527345928492986421895290012900843482766167980376581967040943764693696796445093678698687588471034094213582915429056213208576546760319430156071664699068344444774429956823776578167229521224623673182125291261130018455657218343960995790743100283100422622384423514078474148401026650337614388134816051794908208056248244160586704004667459662990061913789841431582514842779907714232782360770064452017802107227051909519779936095727936115517069569980245443284123746122853704736128005048732918665471734218006995252514717646795322561278299001075935541546394106661299622797449267371053694501941751269193831445219051891648104508561615551403860827324733906822388317280168167436707321491801996585908652667924708723654962577600030063120880602382253817527631355246286680373472874553442682563665436712730271905053163758435077449370995188943165583835692405900698010738408703673307035165209247051402439166429470616593549633991768402451722392057699102198443289279647770820809946222173314179390006264447944936236982675336226556287331503431644228332944517634585639185721128241298135225564528297188185223724367167371041841978979955687157637012146137948282253275849143932343135014966807757658954534430682017381659610650372379719341965710275501545298527019304456304427132375748769371229216737762277356531968171417071187612712006054020265090536435255208855449710715066985093596159637802543679788280505256526208787324358650023979846599758280712490751698057741978944371400336945301860930037673059026082995603609555544308395223371168411714560172718514601211507461183436015773796632860291621011317786004456732153545250205051212252022227397634253052908323709562349666945319853748606772395074944254957891964843022192989956999995634946334418973908968415070019583029749748239840843487318614488943673278514575779111328917001792594982050813689420751800951774652773309666046098306919525396448461438004231451669432566806241626395792249147891586472629926304239844485046629886713051557273678839505022284277399369470064861491551611728805920677808885496751791644824275212172793254146389487124775736300302659031737068962101904704586306541136757524718482301087390399591669420019827532317634580997376460525598714006745905498661003834164918100728973047936731779048455701283227893501666936813599447505179083099472125943407577651904340439595187698406925558790306688710404148976128454102672631143913263071165513014731751822204395328735422366851349441858433403938735768235945311513452933541415834951900803248110453145502550995361675790659508221758142267875012413934435402772603197480556640098769175203205454887561719553272922559514806802221537819873106352587458622360719980384893660332923131673703705391961045015785596059931858212481094425226194861442978390878604305680167532831694809113855641842942284695658970982498690192939329381970174998362281719336594013730298861744312338467684615916395514784868407093650701934292820153295510293664537883542503680644104317370366316284741901534682144493691713115915370444764066434836754870002629709419433351759607978416840515740490269290498929197259610605799682772807468990021846848418714883928240726649012173299250245248992139368804304035422988860713098707530319009188531136197740303712191261024354085120312826743517284432587945945745253886912838061308248319152848667364622422018996651111904497801403764295256237359180383184066611030682033432698456368247633604125903353864959475420039108196428760173029567656043902628254752715938827236568812775364575159166334349514786407954252900118391925982094476218881134683758681842158457533586754405233562148617030923776050394127480272493639113033712181083519410134445720111438331609624513476613392095215026718565932372588257807532839781906330149472604644158000715450619021487132282898856402838315951476577081816668541839336955928124233216850280998850216173854571131402149484676139781513866461239205984481898928228117381776063672063500446068262885794829972716849802816762540541231205774366158270920142551927001755046035477724424597471597224910587880553770280107635713204200132134768563611685108284176704872949444119060986318849554239266774310005937017823054689489822926033999255741151803833318731125935213048560692097080784936677503148903115549667555651705201373980239132741020326659393697561397911381529798931885158333492602767474506690180610753783917830065495761885593549456536603724216661187089715087123010347628969310643927284549793364389760102739974751760168575049477957975292164453881440105847886717682511081266296205861240689949343960641578206058245273880581987587449257842373052197462912860525332262333897696839341953086512654896920444105545666750863933394101147600069604192220169043015883115944902396598123031741549716257763620320591729008651830115353322906350386762939633183910817925355935291070000780254588952027864283145906423551132500703818823765465047662911200343335632712666523989616225567651790578962078523465981410807552182818991424559658455523598999187743830004571891627871663099195505456784038789573595838968887403440243470691211229267766187721686256614021807288777275935844635452657607750113447012172249338254291229336496963555671212804286978410676260711306872568112733797534679150987834612515190294865548045227684451662761860177914383415959140253032350105626505224108197454293271093709389656908867677389173767134303147969374210750087935557816074624852188089196372644136881473101636230801607656471769287773434821470851412987071530257764829098615433562678142987442061313709093068533930172254185403051599053149961155905845078344844195980044070663008041806217698433802130913504496748383911876182528663649125004087121438083458304319212916879297647843940979399499455218799028828735887466527777255681056401706000726193471313898336510232928054408276688479253279352555425734743935856115082141954252330545452006005812971950657593357967323756941857139981885279521515245177141160528542139052209113071032537341692529010137014484930817179504507890837649296624473763037336105575391988635374351601404789892887452993195804766603700034885459541429530900147149294960164137575576639172311150042635248837911701371592851661866931585640890927510598862992799778583798308487427935952072328145948184479235138071003576901444121633895947260431656607740186383639183131233539303108619345280442938895016587106930627750254205621885934273879770642526912340340576558125749797467053891649503211378973205721959232098315133035594560683516842902202854915652158578025496238707121099474793884701227933167966268570379254103797480981871392516364681768228615882906018347654674817688224639214725060625647077592257470643983599277965295461308836038274846563370489438618085885433290567793624043680296535812030252790323381417526546529657202923799651743729805542425467676066186193194000278380385117017188462341785963911391483043952355842392393108232219676945386653453774715490688884229676565481853760382577083120247695830509401172969602244526821684840047086654424186355857168082480017731369358093998775220941550791952549222553879407008499640533784347334271379645371507479216371529634758497483624037944119739866453009010801457209715552910094690232814070191570400079652384644124194105529421590927721143627483567253101204773342503483473414208357847270873947920575360773692968846879116891509034698324196173311136080369020652322902355440626184669672428215314958679863734623289816351674186220196352411467541153740022345561959267144648346678744207730821565491332312791937641206331593722511880897938216654753941078515854375413463030741157541302785446294117014512013126040882694788935429024574731808483761231308175311964355753081442151196433802844258104659398114761426630306168587319569914744054521400143928500637492103414943381330464543804878931764065892125766932493616424951653298324465497038050540693492773686209200053310030872472257463687775965288456528444395454715047737502859465493341388778945511675064116565911211777895930992570659753423680606421490504535447640127336731242996626682180605462920014688313474852327034793600052917782853045183543931454307398423214781528971191508660752126772384191730756919139831414153078988539926127863921827170475414693072622911962298189757096958039420832269478243380272463640842761865681384281553798326241831733486810168446745098844692684835267187620858979928029089290540059056047889248370805536488782265725805355842997916356864816195523510278986134028788303095878935831224281903933928030789412234629377392592523892273996217310922940299232250215887528898898718823973952701902433734253409501211418996302026188279296860371001274305818330702132177050896190555241235272756873677809498059574416559594226302380768897202219889797181779869043413969509625202909317286958922813440788682765110208791645899040559529378489714379796229602209872330791071733011446116685267601514987551474639001680173677500243254092591644319428624930811913148625300442567365768722948710479681161877555064281438583535865211874167891734354342922385813510938971168249453744901022301100935393169423395553714529343238936449006034765728511316687148470772393962158804245721827923659108081325420773954227427312999245179650239547262921222392783044964552476764237004463993909319801470298887736386407764446020898950574191324917974074925442134660708117456533057244532778807676089800551622603915172482437690477822165349954131462065580270256773606357949701646980395873087523118089639987183116408788654254034660272039928042170957738854826717015483664177582129125315773299257073788062832462057607583144127923991351679999517125273926517217299670238395447324068732073575468520358132257904706376934523642318077051106436536231101233424188786104429165269935309452067664182262072936833344123677469863730391229247370659629737069014147143357292986790315430922526258188465352575051025015124742220542320978622406521715931848211382441985191249957768291563717088124022455747117566311814912786949812826964342411533038792741682344293011113290386712741394908066896665870401450310991610137267044197883988008397071487067791171851175419242020003847780312335050210887675145442869591832946649015826230764863713103567461002229011920911499462721842058091306518830694517775362175209412174975370449780481507126645183970571512723928980365751541014158043562949946854872016056158554456999794199347918898012272294792608069289433942820979540386573879424708538700580870580214698377152790783834319727389639713746942603046066191737497761412734994372976167508287193953465493214315323154114304785381165160757175088443905085743297226675495341746083323266621991722654929323160771179655282752095205326568658990338496549714142679979632997718929029219688630629868976954835456348755110766067059494467756770741710498630720880069140636573921421989092076948707726462289805645282642228859439588702163002377693120235091170669832037760948089359378756905376422192667430139916476297584809309860221157633358993697102325744287104282640702839096974213517722341643667520692464166814635319236322806071240307569345084571960156914723680553904091796791291658038024313604189955647189166058013805253905319756984503774354946992334485760505186016133997841566726764998000477655583579529559772021408793325573935977309995025594307790700967278125836773186072487417622715599835701665207601865831851943170277949326392298188241669026586346061783322923813224504917116970747939327454199544108884721021007921278181277535654114169675243492584228772313732329055611258637938250528682364418979690556792363482544499975398380566757509688903906897826509958104213756249149014636508849864121346592697800002894695730849977610093460085778550682881518909433534608852190346755539939008717779882362986067647747599906625549606050532184936995686360782380735792243733901388344768749916742319023605173076464983988934345598480512540865978789698472389074370510622965621502654857880426811357089989681859633180194755073800974956869158670766406250436556373580072062749168693641847746314438544091365257270439603607197002213082943161450216756107224816391514216195242260362702200718609623172773517710959470338620565353388722122264631613377537422080037973121764210049006344274249129434199005955732508885761173391345470354815380634110014549418488384434381302718351251713540133105452931938540970033683509854361723384318986006320726115603429246213596855321938384170166283745310485967755889459010278850586303906344951300194179461464428318388572380120863658709278694686923619613935676744930271482443517610423628241184493235017868988422284213589074478765100433446176926659379140999871667829902634089018260387808550763486847462664524162001090792266121993899882044433965814108039564084257775630352528466151621297923306344450130555063966097462339128305374072412794336261314231321025592842064167332153894165111011888188777515227848556231033453338938903255876741167454973785276801717848267436227609522776374104640668638264371348188713812143309272584411893378646527042010724205681564746796449185117718822162244810744161690600754190992176076099861084375602421659006241181092307335444911998914581320462395720389327932226814596538276598291761898522678770792204853188153946323650219104921769136136738651245631086281206230028190892716723981312430832556170501578163444714542571908488693886820205349181145914763332756579226167367283540845704318172317267423524486533668081925119420215113087825152149212764757843443766988731650349953473230282513287911864169801114115848446630986741499398077559118160135277657791708385554245101254402380884547175159396391125155958100272827875493776564153321410010959522252424619472963568988773338107706842028518241281501578835859256315234775100232200535515154537124255364859412864965362358634265061798466326389807511565929300054630365177205525036207616944122461106696316866191104237159527938503508356206411308233491936885812123750133781907398258787654935016412607177168505276932385092101480254113515176491982866802816626186862998980043337964038714539679867724316794790032948085561513721553526619027046269426404524541099182060969568093990312939441678202434188548849047844070910006697794029424491426299376094480047340397636166904506063915051260253302218931586307943735009289300207721375527783208202110581562192089061375120077671306061548103217568302653256721004724318488537220128370385033155375875104763117309068266138222538294680888532074564706335910547618162495490781677620507588325266622030868376483375704911663955739626393727061534223463697761468034743098089994410291719614181270046248026976793001868948597179253800505067649199837779689954573366466258035654092192137214011859448935510318132753400105241780992206628997888406256222356049691829153421277014785703315980094539092923581148774541527116608126880781365105835135743430260083211426379702166907248574660410524940597471257892046816277481211099803913188078288597217292522787636597985233361561875552848398156333583592480577356404247121798655099410594109476142555126905380920174664452616607058226343226276604789052913623943877507295676577507522356039799330839697331906690538188053028571533640113033743134428508697832980792980650493999396385896976121860589217623131998985767448002066252458292396768778594551858212463939143622921192562600624669130944252335521904061630369408778006814264194404921669615128194933016651500620570137908747415026480262431366340797464905443260974606202205432021549696759290688424342429426153541825737395261162199427146738642585853426845034633725278650272623604887838628268893686394368576367176045522554773562031495081489091897111418164624119988115846544379071983305260542538894137012346533129232866157358627729203759132304263520504139534745973951710482510622415565729214989655987248247189027698724634521245117692581172004758017436396269610372633572669178203622828792099170579474720887529617411854210932822002953465311519734567026981416880556347539208432576734616691619136782806940254672877684781284887836805442348194759310502316894333366896728206586314943061414222785467199709265136676748441503730858019206998438054513018138598370794812022911501570784812388468821557282874500935418673352694045476945697738906629272052936035412861052116463816971463764225076255751514097257910619563976681214653254980825172591596897994479407272533894825745873510575571778791502210837861571926886168457763021062304595180746142916028314439354333078688994945351235223765877502289642860165800078656015892575058852345800471678240676815565760128360906685305426862924866017516842077645612176733675734865978955082015145075228633119776284183230790491772538014361681067479465769262208659909226184141689384234378920494324944757002149938443958763536366569380281022584225798454950924451050100507006693432184534622111150080456265410212244052759663064518693061840417991257941392856554840842182202700548997217522652338748488907860122602930395829293855860201963892463102148798765894432702201362244722563575274229581635983136404147798621349738884192923968202415501771019306211709304777692950972851668950005118049169114951980654847656380176094411247715625498001845470877007515051780708607450740870692058793450998474002671052444069248576740943591683609705170388476088622296226145625048231071960970693599502670365954646912997134892269798181468798075196002018612473324107850562386097026102060523026616338246404596492758556724254797843343206302500906796363810194094541538082929059181594591348805360588566865039979775057749785085640396431332909579901231555680712005674516283442729908025237430359241642091576113909443125422840291803699725470849154917177141911271959080499177955318508996751366323431069744257420279644962241102325205631000893366300991986007147593509453477640818168208448462177096982589197308416922078043181419667750017832062468740022137844777922233791101942470420024416194802733251661402739046271612801354530282037373527418624607485370991878179434146810055369941766141595088235290461092713771437262144458989465978394968510242940429609593121017413719609355349384983938936412513606888247367436284566937964557711927079360850480513449479222294713808110846775009526299828808277679527011247462339340139222874635289449481500663483911265426233157373892162063288189911104881418206878004853685142849461911289756059699002293624016027460497643107933776140890676969977731725839990623875516739913600152406767108353669409578372051400117797778792078740629079046723116146167365775865499775101947644548000648413506390164296524887870874294908885305813336433578290709235310027390298507621971564161690508883927247176039368948025784582909517787803367949264024539024440113541095854918203453654564440778491647659264230129711880805905853389884666919183058843469278961170937436409987302316454272042744575061379548351724346978913872050477153111232566750630806357734101304811874193368145690888574505804355407754250538415091562207465668423183125726718360006183801117685360905155633559333442675492131780041238014104291044272030077125275027972497123151847117920089863430553471452234795681963569287359690063948662160322843056615023984968790325741234162003657052141827975750338852988378418101736255630098867417984800120215053754262732744345635487885420729164346605733353615455668239504213105552164296884355432749477399903516998320567310277848160722943773033808437975747119947620119136310156487122609649349143183877579745602990199512620653001639505064185269195805720712150887278713539381587852450782341531662383175908950938727171373826042558817509238011728073720152419064981359840580379421081225638663904932698011088475281224254864126815779933283698159452221589810607838062119683221806587880349358562364252442679749000210596535020240115142237206694852498422359626308298189958833226108380482808598691007301224151457970015265928567603592941633742748607509097229183521361508731456564195882340117284630047846132258351832979616483698689248794596355782173488904184269975479847985201152265468937627553640536787548448621799600149275998597590223703706386093435194477777268955674493062699038060517157196754472090384220351422433970117773547936410452530555458518846715778389236708326521265997114814063032377693654533886719159164357463078971516861700648788812378166031423496515650819774003163152051183251706557916293587327617828816004954537630248818691737518376448022959222088593985393862602883600411767513058989846495457739159659991364478215594422742408430169927930162346383510303289433984533720569130568150434086343347472521578624552654762467114629958452655805249430370493269503411949949402343727122848342554368145695582259834483284763049072806301690542209317463408769880633579663440909826524971680095301182313564423247155232316009876870024411330661612012668555772139156699297225412104464183838568566834544638639091335536890052408523996340673241598680640028551428036042422937624521413701240232026351328044677339159444802057658303084981196724812547997678725198575389659195676985828158140719725989161462658313645235595564716287618834705340261192992028971252810862929202715555476960337002219034361005315295732278913083480954728826681300660679637056371964397921978877111086906108806642108583117884512444402257971430915079641871922321011807279759752687631963444634324109290237635673753454429864878016973735649118950514693437953706483205545713610684929020027642559640586614594857924252691673419280575954624118329009070738110673061000347560787438458896572570508199911557091579337897107604060772335366144987317901525990576163972678853124281242832406398943243359809686835339309601524960662799125666049809748310491039983754425997686997249921168438126831723081808351371637435985210979706808948298060294782507748114622262587963273741160552183164694907864305418476153053393841702433141838910685195361427456312405765029738373354620566714264443168172757597428772659529452443223132503308894552313019774247063940539924881722358434755589568482846111446054010047756214735122860194244605136350716308930171759746175899436827880741223983332594477255434295535423924898066646971287374018160355932676521787964768382177675928669232330783374757848641063607837655339431999780374793623689574803072126289498231944994231241140037793113046431298863245976359361534060332341533753316929503339241576148182181772009568985143272904603085580473410257777111647782454963374195742970255263526692393911326820379017955141777786416346781903991052167785435449721674493369598749009709983052120008063410387051132796626504523251656832151308819858302721476977829619523028571813664305016059307994046421285743438156925953273607986777553378550248982650381447281934680563422379994664454449739470167695436320388692483446819702108984887915220133494870859386508283186285707224126296538134544541315203967976489135204203122530036066810013900601273822718972226964272980947114798768539098579840561656273478926143783710879313130033684675416507079885554769605866292547272779971999449820437885172947228908292503135614866440130891420979817191419736996241279390625932074002456914744986627504358655047134661418170121261285292083438797951354550813635130050760923258186209531629300128965770154297043806776000102171812033908701145302335927963942255204431162586950147833513748148160069677424444259084744755032111574073429655671874177484107354505899368410119600055429226743355846704650320884100143605948112750697713990283481358135886386467168078802475276185221654768562662903424282237307899471500209583164540795664163684116616314659627415347843091152787338188609542953671461689269946908178923906645641954286230796494886334146539527017427812173206715484906720307762890292168658361231961902952575222030481820432493671064417873158032170672127491251982445480951967896544993011668325794959147242757061722191616710665059297010314207350209404468826110573763789152414273730159964007516469551459160211592732287152534680464148304052385775231646613122340584176347541087656993442004585995718404594811000015622678446272820298846802518744563781378014835102200626074003971632181827874712126879851129529870021936891251576128781257041138464646543614434451187447163692947613750388385073082918433025994861665061374194458904099788628688641057048924858581119355301860714901433599431751132920109430960274387753647968344159529840043632380204931787069499746701822395788308204083194214101157491305687258393542817369428567073036555375964542491605211843211950346512770769368583032914326963377327606548943392296922564269363301869337507307635087983652243318004991455076652133491237974712606245211818937409840149504600832474445722734140271329767456452727589066374501892779683358529393999160902777692127082035370160134321187230324159142636564072805112246115290965620097119802913677946446733584927001958864396627536855246272211626414314042133262774236636622309984135474609979334574868009122832304884777194612372675787985757916811680172187148937681011085117611275057665048773284152197600347682742331974961691290913142181895339078830784390353775365413194109590340210485836983153252957526686397489687337426462903494481315173154727514990040667588809108316210751900959093335937747155451629082992353965259605076817028245150345549466204885175677515455755727958752299399972588708764624276008865190597795624680007853725228910404577271948262421426383511627971520232278011949593137419753710550515196996187541393192024543939308053776107905396430662040978556953300587219516798410607952413943739519668229386651696450269116402488807370702926413900263387728168159231924554085858891989554305234596366378152778371043659688364624107403712071163134965298994973449165449795399702207733962148941251149587846032998499734791166629416417991036890612117178632618469955385751173177578946062281131157628246364441617527545921907116796407590649411409879030782230305464916712772626075325324633281609738030241741094372225503790389679016767464515947162653085833837735167360797945524612403930161237159653239488115949606684408072350506735862514713988443215016347697197100797574516305887688753538924625161104653668370349512189670513710873811271087472457404792077104289326039609149877333487469310241585754404084373947248789221106146163068546452587637341346824216554099420908872182797248909470022524650545432123836575989339407468837683134240764840035963446717871198917689167473782566069170307077209894404398004465519203957148642821629178463624854048745484595176510547407577297534803629667324315801269906641528602888671945158514212725361436724230543832932380410257066607319347619679278395632376132197753967152946608244351775181904582706487159685886124759157499416523757027161440940969817893842871886999610682031651548291889206856608157524161090983719344623641753154696530517776516610557998029471571970560344058397020973666594900433084105537317257986315774906602342381953814244845646760113762701292623689658826266110129042592003743012841522989579293158177899382684654452212580102207552043152522998493882266516804630888927820740936286262518998902018904230857724420235318090941271671518048782131019774342567684241471587720250818990846420268105981656910351297343488776044615143790641665428706607964477387721126097068062485837726694454928828906425467893534485143355551573478490357315733088755063258548745804576733425017605114806305507827670388984902976392782383112747232475300616466872445638345151741713018585606606159000188309605552813876359805778093054870691684616576562701923926459086735157910247317312302542803195724824263116255335841737905475036207304324883799916607905430793777796111604316117972961436608262775774848079293307882511044389883089651280242144463795528535729833740249801028199524254544817484421422925573472435303481767232719287007146485983866905488362116906049835814263899575086088720360562079360145686629346248772414502751246948497185216268537710549767278302294455409000541778787039885905246326567203215908216719041443676208203377299002554127464571714532730494416648015833857674874671682965544213930200368762379828427402724880202785301713800590399827839531304797020507540503736815010984165880010966032077139445012652489702606680175488311220260067954754756176927415764381052313145663239076781969265763441362666698410802901639655818079310068446891805003461156923483437464651675319857949133834443333228904464929121317571438904042896571775365718004230388613088611807451194124120259905065325060884939271517828598127713769580563118954039049330738295058900603439599615682573833791965951155965148121668641692477579407407533618129654846730761014433294101386250007572842846221159567183958017261128827871102905339102538365367981666111235212085107541952842690087657258240188234255447978202894843359251552859921516176203837352556347510152759635780601022270590818097587570427325209036005652881714268432109328677614051775216941045493414520140794621244902766461063373911123786091709772650593212252248833029433416684041027055226036536128017166133786169049191419300709363196198446118386931599456509258618345856104358189090465249633913005594158254059040200533057951391189606359909024372151650801924126562339678939044323814024463582681261048375670863640806604410101827683098688208926075549770685791722443870836009975560678522419839818613494183682783013754184644402951963849517273070896316282144387813232665021322288096187899326101822389160698383796390942657989073005698515536749801626838090615976923198036784428068536408471663040248317165059133018024249153297098908358121070760563177265694170116721640819590258283356505919671825569397396934184957293715048903702181558397362059773431438512284359748305918452281039597642550113888698968746426040972438299973909702764425964624253095917940345531520705580769516528191728820463610888067117009451830888082980542065167515499537016382176071360349642569477573369830604823422358135101527666362821308959817300232223792514283263510915262530437362523671926835979904922494332407106127030790543304420961970210228175440802161755735498812664823709256648875317245539581044215192028014850154490192507439350938408630066560291230299827480398961655848994423834637125449204027644230841337590995076266053581650395004919146223156892080020947251142463022534003301348668140133289111538600357129248460889573502613721824691064853045689570579373247570506669416842054202124183561491090746727586204805139860780134216314451658119174016320908942755714361182186849651793384726779774700962102456636397176219352586570645121367568480695448153460381398359810172220607709489815132128226555531293472771107258138227713164467524241656041047817880254422223008088521444437696876025178798994212566687105891841109135767313078301659450321154683753804660712398036939490957703547226345842491202305897522218184710382351240521378278556373308782120057707885601032952681491809667832340480068122490714789066591986411447324680042688561111373410966979245911582522257175935103968777950726052167758543742974854661390345923180304682133319786624655455736078238418073457241590337330560795619520827038559889625032437496888884263868419553820840764273166838683784042567570303826852856532685551589258764615120049345859516881731715614201653146140134348319251590584055221539488509175178987225478031524338490115321088867647046481132091393740131622245716051209969391037103059658690677349968361004676599096643255632900264632907652003750816264398055209922646238935222273661665530069282635036099934868667566340833855926160818935391511630735604852660180497232573641225879880970811084898320704174707861907235078479800958843199642116272677542529744279728323320656576617008558678525737716561188755451151034606103216216039724784345049716236020794053218421026458638254879620319576137769035017498489067103923591846259461078154433712372773012805905724694621788444464140282869689007405420818889282262077351566837444865993191245593282658050784559751614922056594375716817539806651211288962134184065645826538386270200639628049503092166310034723393240700827325022666321903895589864172653648574654386765594089984189794590633560435779709178896539990661867725644070192535312702489167230833579029957991149734781022360202818374751107365433301925489466012242201390486594609920915350370932885176374973566789410242680298395228337425283903562761386808098059892039500972525242829150382607720887447978471154043342854195630782378868383542660808798530010154077700377032721726592382117563776180737747967664813899540017621109016132778718907072622636013880976446903625962087199558406582225809273653078706287766091966355730653623597242089116983761028972826769144568357040379048807797696026874387888550789213614147944688751436009684534067229370504566687594052219281592934511625619767933294290063720102287302150234062225739181795277260415224166349670185935672615468903751271102578338825920753807744114883459644618421242818089958163752466373381026165486599160732839980392816078737744310892427671341758136927596730278406285638706016950066382200457837668068536944804701885244748838256859898147735452202647221558474527876391400446908529301673294566645443509179395854437112158784275263746402499974865113749345297324009383556392770147453481402161881954412863904661038665857808500731453468969272018017697948960891765015828468121494792288761712637770365371644406720326453066855301543389177363405720129032277921110562383845401181740280977523305731942206219386303309807050397970950234203889819939755667077417123862554228261804682514264534489461831369948917077946375145580858106707431697877305845536156553517271816543511991655158426839849603782567412687584426688398457652057258222618247496389762335282240763414654879111054307573093128075590491828468297595500574895649285874008537134159952539935671395704452217980495224623091730067205537258385736383416708865182272156445473304485350161181023138157794863615686547446932300878999090360301308454369068816638746733750851504442374345041755799744371886583767801245381610372462650308631666301696305999498760096724078450410332055261753402467393675546375899331690153721940323768079172145628004156726815907421703158517070124303783744195853848510966036023481145964269387447743904345827037815117469433754855696502383691257832511316292512763025778912018725493118480828442853908469204359560089070428865034071054902051567632142117456776798799328028829013694874170208585419720146350102906083945875846281756780085153019517017213370958179098490476838202270639322049551512476727220425992136062307777196830630102333350943778183837615314568705490439333780054796704266102141780736649092141637357962525188456439006118873381558060689874684758090437788501225466188935788462691242593075436382777258772334964368495625202803272175756250893882538215965151400880905967033896264433229348327133823012889805894467509302583996151365781797462633105711247776828122328973582859322047352645539905631439301219292207053423468413135324173455766069584574333423412323811681030955473772878588151812968811165853303431363478168858094887249675573006975558591598456754289169326005185548846974347804852728463039153899465146006164698517283648367865049420038456819075196912356689235695789071229328496293940968943736192766136653409043704306917230625384030382191670154657957760804981379035842527048105249875747719407138861775261627929803284299392330670409278059229753639399366760388383477809622998515170083809000594594439615434019276828557613002781119526257642952010239203387053782858897245083807802153096709086599554876654375441452024583145841789235587309839412735390401498066461962584587245480220207323924138454824208369656942267547483576520590602725228433101431408161853661638182675590445721138792194502609219614228091361121420951620765197560087686244681719370143519302022806397543436727632561977222824037500543109015049766918577494071178503543143349594072237739704601896008239087117448283233245769169122623812414091831633728989880033836337762081659773241556103292352300924494386104278918148178659236478329171773908684737284813314402791412214510680278466359566543728972234789669964934235155710397463399947033165227378015804150695120509179487741311013285281913717917360931426443251411401078957666103468188718208878599361113163327514919739164629308712383192215031844385983943596500141823357715955358960897292047866691400045157384088231739142102864066695798171071190156448927723255824231130126143290936944821842810754464370952876109709470594765876999825858364810113051448831976248589431370088222987644134363496885481468787423016261067545065379687716124208921375306697133650966224239820974374250426726486186089368559424449785317657648255713541795727354849573114481548480958435383894656940170098352447593998283799487424704666420973293786308181096305043022305339649967845667490033288934421000097773061076056500317290635985059105547495543974874950560868948791640020065549168297220029145183553287153621170876560612576638428803039487097437236440265824574574622219118447523273096621437832145709796974460761627415406636736409062500261520282420919629716521445186638304606450979400782725812805102251202490174583636880225568358548789167920039436851590764216993435334555345316458964613464207271206641141653564328563894767160436052421995895152004960109138884450712586824413635341156614471850760079900292346665508081786169944749413292652250166237884106356052339514253324507681457085537978077673710658734741330661657467783462782690744266665170319706709420481806119288167045201161562801666717695914642462237056703264441905606540310637783620593134330594942576615028040183624686146392110171956891967461242568049868621854264034617961972264077423128787984871352768759586260054234973091262713817798848181488044768050117261466047349364818468945138850114202090956648080804560028509232072390404553128591951513577240088728127748658079854739708225998602968639008793555449251179245334789379299230245648400779635599066038845742773768328801196030997496815865741593051508106051612592825395791690337348075622635745313645837986862657284759006056825367067689587518220948623318375461133484496429508573028693982156326689418934648844344559701562250507124976427441596339643739630301188644977683017212433661617874338535460914666697583236261386276730608861920535607930307181028241047324498112559421434530392492712487463526684716601723379646363228839265818933029490173244031794978763959784036692110304076480185443493860205149634583410076900321825703349675315127601862817178616210280202847457211586276755520359338823506568743922051794077509416951022777135843200717795603138373859144392332487190688254939622439123354013815308083319530770304450674730218955950876775186267084420230343488352409393490733334151053728467178281389070996664121490761322043865242526383243530263886511756633945410558059185286754835670997601194356949970143847907391516036053376979311288166977866022653731218385684193179837616700110687123271933675085160281234415776333332067466693897656156000385385232220733264389198897048980394356601045902427616090475189821287307291362205864078841128826932755162401818772154308746706305627564013902428896080994405628291766037894219581312731670298366717260572740023737716952807161330964657397477311347866267268319519673280387106828645067546645833247662947412370735939558364197107362715695215265192596125710846312225721781701202807365097448925459240715996840265344015153509666819318557232200814945662544701500379087999087398160608050409047183060286552776541990289933052547592686012581003537668341783069191344254774216242211893808402134890261859093281624073802423253864118011199420466385344310596054655782878442693368886387641196786699831678208462455738166691091535150251217416849360350315493357496252309068468777695196769251474410329469647364076185334147996004387167082163396613342505531883547101451783639499305809076918221861010423317881204293948511716064177439319594822726257083594911238507813201166587352167447184896629364717141957086414271006713968362753910306488559019496689605887424194657917023650160898785548163282449500152069970053066503373893402530407194650907787966345803540952528147740979441233253494793147689793764778328119990317021923971448640125786643399997211718456694574263030739785600523928311367822477911006471684274637472756746593835499992911647763561003923858908147027757630778903559642327443898030103516015810293565797077344778145137910239973314591888539512165311016162428133821187684316142912243615975071634541567703141683944474654307185958471810325898456611877805276672796572209120025150144944545114350598081380409973945936535258154179584848554320719354362824471605244795623524395721618017655477871717591539860178726788324636269346401639523882101175240470308082977300165857606310151018648956494646830129699322581263921140283798234233031395133267573110687582839965976229360263191046557323233579431533978656505685295788878116131633277205996946185901750326467198672952982957654154184568107967359007431285693900959596263492774014253248803042070154540201501506216873892598613256581340621754135295457865947468706690342341519412634118766228178383057878215888777975653318938374264564651590431952092965663192680695117645415638135904956825350030670747470751562135596795665471243775080655020602191166468859527550065275308865085154813156721490783566655660428982102878644384554012458247527513389135596415918265696672824694320485902519706089304167020055017285516801757710253802103420376511631851269676445023205353692350974107228681078329572955996784973979611232964303422515328006669608581365977114021637862539530487884000916265394232161365754066131454512397332144866041814232743222275099624883585012846114154436353284531843805078206119465478336398965633430038292967907862102615570553974556706710014101265734343284113451240354680948397412665025093567599554999898607787305875692949328970063315746259330288221130082660119238623274376291172024333270577092095659314091686651232635022637589551107329052993177745387392725002317029718203634902783593547229752785090422901844602293272104809662217815392360822134581123157054440645559649015270364393072156338347127828438316300668449865870031306819230856078051027128263155977875425401983542749431221957339724159484814555589660898920782309458791285038568747213511556765614028357464076784337576382567404774875055961771651909288398829396096600227107373137981290728416950044668392015114148515675807011688785130461221405966101088360611001555868788931379798070444604459241282786046689738354253657458726611020730657216534430461029720884422590761436040601188270154240430699547504390781923777409494884253616240898591885525648700583386539816589436331156414938039629906816412992635244019141844028528882176223701263608166229031268359933572996769061744757981656346272438872977552378576513118705410634690820294560996748965164479753566944276964881231615139926791091489752349019477951086178725008585674980930035310424339160974358864034224275192698512164941765662830666766167109308953641796469235432844536097256871377490143543285766176838691682831373996378277521537070590529227785532356393136601104330587461431734126094589581524501079584886375391370557098209630466910541750474872817534607702352703944193962926630625246108034730186655468150770399908654790540488254814438907597161176730628355252303731107475403009008668303798616542213226802231560769052549557838906074619215640828665907792124145738704406877142078795752827156760885801172208084532734034303141459767291084349098982859585395064224501297466112372720773487300823858441103548107705517468851858083548271456825551981062153986112934975540282672840923719811787562249591971586372044891446399917999180458755510226716680704709500768147018242623658377770374787941355415957507833513495704064679056119342280900562712169056679262860484561383219807916043044122698817822767375910136068491359066249252700243014208311413969659732203967841108090682529222575994834929274173237159976727601439216421390709192377087972038840026611053961754273791215653499211346710365122741051335737780727672345635544043804287892222508282871678224125210450033721280884160381164575581978236214366495093284988360189522236352815982885137236498877409380906938601346224696242496071170912135733649178585391572465721190356168098706481727374716296842297172216618721855702955594583604336341331186434348052001141197336343180641880508209341693955662777616089144908168194707817940816563952636255666498826648553647891005325142634017130233995753656980596581052861975744530500155881553417600991406511160768516783610862745938561570754757032707309977019907107784359568650038084892225032769525162986408642638186746962789619237463832479315564379305193733327882638007113437096909648546652524302744528284638312699031843924380969893678510512339923944455613969886811058803638275861377902335556772215976594435494047873722457828725447725445154994859530287261399681370373678094100170607068570992551374695165414046821516138931480632765697234346464382749180009738698119866104128550405523555137157188770057515921143817008378222970904016927292015903785020517132735658740947117277724952919401630884970821115473200673139119668428254783458478522815643397750553612224332330397592291940248049068290044910158004183055554138814271895417501412292065613479836720100389133074169493176963201696912609324906682373530595868002663811301589810725162618545112478386540146121016905540333546621741747198723748246043394830003042378085674484546688764925539417626339824472359422732602953439275141981860434064528969422427495012378794593624708985393790321684598049548993028017797305538077498621151871339462899140331205280432402574596336612685451819880758520980461550262967186663840199312956588825339966209746960262520791843344601726956669921530961331399511951100513071822719823637042324542876833606641903348469386334871573611204737973556373158980212289265888480578307977607455705999775484583871077261654393018780153929335350159211680339258027606017937036807331331377246219027640834467606469966138544600483770968728832337436530542355906654967677628174199233467962847215173739187795906712841731986107753172567516321173390917920900842826793420247824514172496725581675868187172480032218032538364814884347497961274761557562862114560512667599300621383000351773083700639846710704613623102812679062519594962474796988387057774196608219114775558410541928574998126954798016181797821079452785120748212232866827035616798131298398694829271137434299542683933958562489837299904635504054996480684863785196928027649598036229933970517106715466912466612710002475946147230595002362368253568568210938614235751179390995029159784582791554943418716342925274708140616733677280330945111416320279758018957077026782767605294807222597808964811142777624078901822698109154573929021959633901360801982936789830432815272312723266614737150276832188257087061786839244304036479395611439101266020635740259900565520831302728159889569584450448924439875772714199647593502619332947899007818048459934427602672065415057460025840782547666686704028891631477276141826769669514446340260845520378964883940544129610850548287208271513138119049486899985952169852691069761049715113698130299428908431280283641153533582567811140810655426675548240708434947813503138676795603959196020077386424513407521827143555653755402083606293338650676865435369874947716793771234476057256872692335191345791098629436895276532399343142704453525924347450275930600491951070331852742431999796295700279016354995443525995034706527597032318530821432248965925135167209188837834265448510464435777355018432653488517898192936029350827645363947822056781375518210578126062709921393540347730963958146700868945207109172745741147224140794403967389054839360911928652305804224380233231872388260709575981591230968308359360401824924836216624812798590036029306832009003019726461324785124362076801952703107896085329342748417976446557667796196822733524208173396037497091078227394461564043610206233428726818979103421116938923806536705866258383599576935481872285830437318772942580273405521767404362475686134025585200918901929300628654338385785318332220169196256657119629059452098196544231042618357733326937360283471005069852566522429189336823696520682589660159761488073822664811155400964109818485908932230958659346956010355197954784900552832311945187036461801334608835568493858653544366526673673051273286032938812900578639262231380071097735182922486732783259001197772293331623541703047803813725672050142729941609743899571703353199836030030019210442947457489263990002471274721201217149615482085867093813144165396377044679588199875615928533486363383247458466997393272713545157254988913634927134558881167881288689392777576122428765030195763683346930939991074969260593666262583186531322431533718539565043700932906824617442725610339504141039171990950822011875438836271795889072223269819845736864258443799110481017903649157545338761662196969392671604293797908040866346146065512154121435868331248805415816724196238207964742706974847881594173387345092897182542505291073819148080622753066149817807103863006557165280834458749767324488643864619561226595580741359636903439975850477248744713570654054625861194397154912703781846049169510565510298460696078484070392476585644608277445740258257934953961299112185392902018805693416871580396763570459463808568298592533044675658283099329440511282059475374959394781232191674295994570316448260830366299099308413540551914435396459185732932188930442387545840939204261602631705736973310155375856171599513288546054743196927800534454981915673985770959372128567360339536927336233204032754775548819571849637045250221586346778978072639038983305911943160031026760995709906594145077522703077945650880765955015584075427978882471300772182555527567173086791878645973213810224186253211505668135067519468053434436354030482042688832019052764671543585355534069438499579063927264681200354108327438170658448993144980032084486125975883732544699996184707442867577631864122929151314608148697468692709040006205595694603857912344432634173535159848812454493349337598804753917189358065577803598214474624534672218181901021502950282070929705463836626569532880684750868210918272698004638753760389857870882891221069316939794651878077471837040020293440880897556105772233013684025914159815646821962695698581288065775819742078880397187345242728725750698038912505436405112754000628228203041829465434529095302036017718240242551479758051528938187223341418041206358247471746386043596275965672866144975136674121351145730119151172235816727817317831169636489653063100724452438880722270711651474387556830581689324103252774884377190375095026254794843927704832720606088750482839381570448237806745414989994394836066893057076598878508501548409580505149467017620104927797146443585946534621109841583870781075617837190489036629122478062192483181702508709103964231071754638799922357326981027785514041379774037666138861426258291208094571925239066601331608304704532107094325568829431102068087014488174985898990313312639070734788091929460176295373702316576349815736467283233400815989314493044171500836585069357553378859273897472835335380740048352252400164481353911735126329014389536978491631182223239967336008740140845606315782392335965846297977847234634322181222540331459401757444446916286573496815320705884561231073034271015803326696013986160921318776262436727607840422760192350013153540210540194991459321054137916963223399336994676682667168946572122962920111589022196428818982169806051959767486349338656879412014288933134227593076558311080796107443836607248299684927106836650173811370009567747091353273780683629288842002362578767539211655701459604586886916984523029323946344785635640847174952026712438155316420944180400193772577137761274728692769389784790585152717946440338440112685060493320392864099842641155714907603377082092257029165410089287479600026137368461923788680332010954509264464409835322601527297610362199627804438602056459084138563966284710649249503176374984401279387719170905816253120791751118274093760923077976261879777326326639627434875535467328945003193549775171639225978430100649619281800245075838875107079904916150856411540277398950319387087249278595679510691572308292580293405410360406477304385560933150439714081317358766769485340092033933647547234746556016163969236679139676204077464264232700781024423041244697671456047348410556915462918728804609872365519785883505163004338632417900689594145449911998718713598897547603348806103984699479351960953293255395899307111315060076553779482521901571686271042192793049342913997372554753241263513435113079534169346320719799008794289888866041146610937556905570129850213449413666479576302290081214706805057428499789925101629620711886530584739855330093943767418467139418521765817392106579515738380845833778702284949280848690796159817902005857064186534753327918578277775298514706069625377502292261282995036192511970503931342294697200774519036931606704169711166511419558476770569308953277093879389722929399224768501647815573696564779528547524118993624137034362167843846527452226498228689026083425458756483834872995457601034346470694078640517315839469407664334277574761569872186986317544917258653416515070428704023501451430425305886320648744728584198738418211437144110483447966429756093147978367865162077088867546116711175067185673152847322038216156409934679511630400173539075850213233857085637005979729873001572074502696133398121741298855638794275624304149631520698894379412197492209949277575274107429461867892758968485895994369892449124939939790627775315696203754855000331023236151712246491298970228751464594852125616536082504886385521114709265553674379088658073311928199841569885819648376445135087704938113796433632206744042153442165999657709640648028891908246822401271145964428714804034209000872643577564164721873947536245893496969346328105800422562155597269026666152036019317743547517487325809334882330642419211321734688132430179887097090213707137182634180053787783626825474445839119559892528933052452893006992385682162302603045037491041048371671581647099520319226032472114843639288321594388022391813492622389460160976241470482936175894276602581948877333100737864851587431415979077888592373174594098771751367577401324793739953177835957740085758200371503295609031959217440943040061222759921150702251884245670227833022847700583461164465569518794573331058625825676747288097608414705928798166470263977562792966098529205282207568270197130969001662949904021510809871933646075098350219932890351778387133633628718377908700128025650484836134951415115897083455418300284621113941061780782951521125947414093472376132725876950740967951873376239983197986234565152144621760706206923484046341839452365622672666483156461379790139941334211147953660266958667548639463478691510132383141308928486446144504907081766078390657580579824772628342806529986559701175568051563783586535182766432870620953990121954353347075407629090678707992500141741480592361367742787856247246574946800485776275187250978288521218603644566179053302178072136588764813497448476565530319273900740239422259149169583337759777802933685256593999770763219233857775679826756767116497072094708763320357909927209746258375855653467356682989952641965442964152412744023446421308270638128708383950375682007675465826161198758376917978035362674016755405539248736953003372553210987488934267150407613929636508263948495295289929812785364831097701002726386195591695741874066889391578683274946990722361436912843400761567281794483062143232995758421069163940431905912807963006603202761432438348052132234417088867028898109933318783928028159649326013069879494232507795935485327002793348291529448767545948829694930699576198992268275319778880661520758413991218337824827350378594901171689876891540851480727439391777348071044174622749605539720130554748169185026556584544618264788152200219403452279233780134473701786555988271283415213500395701066405218976277294068269760411317387681233957530336424595459893423282543938513057091817559012814342823290721899639423016611459741611413769027242865415332219764992193339402563824013292419968282490291653368800871655135615846987137061986611625504421128558337889952036354994746575275525341625122167531230699215349240473664598165088150785126411650458694659222782027538465122634182993697620059083745814883211745778239141943480027226563457807849342040295470889658880715459400675720308257825723007794675842799272369690949150000515908653951928043564704942631255391840832466343425758189345845199089444291161314964703761895565183429493477775238999387183631045264367803952520026678244837368552879648316263748314848261446512908597351628839722379814325076862294382105393839250798228982140580470717376921834289219904723591714993757314856188872029779734115664382244231263237512245231509703597508545946580520252046825914891784242934418108348543723409939493605426082169299503491783607816393889821452526084209637036488358196317387677092050166377782194548353010760488310614681160292959053330315109051195028420033193837645519727927864774231275224786413671881601757982904711031715591722370126755863446210977838756270195222774495180547971117117958575426815038449062253482627519689284410651387553534929674778946721442131031385077028091634929279527090608687926908782319770631350149400240152532081393284857394893140062124607270392780710712502651921065241327844758277528801584765573560042925848526048355748754941908435622939460686178389007121516570224196683447303888446031753881745270216844357531015347164641535908289506837985157165932735237418639591997794327848598569477338108462108989397354736002587526739279890278243506908163473628572090939829368943521064064820433093738917290601372159659694004615855769967627481986282592558029823293507185152104303899512456505853382644523769959282994171560209304216307558821550745027982541260563661389503127709564337972924998191703469180838101449287235949524056149056858592795958637239244419916820385178904884267749158149365648119224057248713378792516155954963102571537755372901373015633286739002760806374305759480992701723823583206515747645592891562566714094353791900541372924756776565975520418434363397289841006531129534240233560673666446565477687256887531306862346537980152070191593055800754740268082683075290207526712835246312455261192144170199601704105426395989065512246276288658999532457468690966406871468297360050445319640900654482374911964125193801941889368878240577426795947847345201400207107226277046973728148658818532686298812576411315244850257151643792505022043195729430296891018798489413118330811398713024451586941364397739028289890701057603259781166953841066239940297743412215393373262080440580337518611802481048843378967237541970680137583924115934717648825148774772144474188584558978066741002530923438525775486473133903691231749775269647107102406228513982773402605156699606646779491055574323203973619301461938409135905091907852269499247872201803578870591888691837047746678580983194017511319844905173630250670914633716861562642464690920241238359949551119966348037708718077744130812924768748753899539429178786970194145898679177170245667844015815530578487509850581846567081890436230083457132084866007283088463805425599316986950468554034965885565532765073920821995139259784334271691473496798525796499993603864601834042480860524789480944646818998107011286923156738271521518501316079625325035928870452545320029769804220354513944972315203836078993862178395432906705853601276377299392176626386447624174100194876512533753342394147696118654111057405936463114552235648257507775872173844188885500554022285455284837560294669025135858078020331794241452532240716982765698931523313564665945311336907545708617005858592529932115239400403418953653957376643222100385817621834042815400125407137737810037540068274014245180175154037074307739727917968968229318023624346090374084014671624708926045626621654646945721990368558490590302274391050181671104893929690775840048297481167025062309997869071580860165829243730498307069837765451346947637961463006184632941401528412901008807215511741248204349065131778395960279443101047536340220589811867856740483701812506381891455732493980794150522221354185991271759141270951055644778008894128416555084576031271308540330491924023437579455860015914437654616540725247045306023800159629835802847396793427718635975315840372606169595931500735713588394056296854658565858179116523369218940881623099016803611986800506320330339472367947394993138615288585746998630825068941606929351458026501119631921088912723998407786277592766870455866071049033228616310407077297472129353512985687061181427028065656197424539388894803678945744687125812751462160053460067322212793604333049542702652704977034756685994398518928629659696832493650496404835986679745258844153402359259505733375843016531527720877873588345379520105273889769738906423509038657371996388368430541004786809850246355690434489851954633830405236436870878560291417244256109043703623160000621942189892139543963755118237821276735359818261121708201088880602297665576634865035798863387129777071096145268308622206432154640719459111338235746555468516490022028038529261278808259050143719245213938551384506555844218448143863849943047087480242048344411274346503271846359010099216024136975200066247291788118115401413971711641973538339240642952893505297274163754426329056783383598937925547347986638038070588739734133480736258357487873809101514975489709443543496263144596198361939858437304580242165982982120482893404666032443962012201582985027267939565524919938272349773638502963954860639859706090432344535485166951462694913554629163763812055628684021125461763973785833991068780906157770077913695665766182448069375151914758483019477222922060083348853291149999831360084756105661047929568054267863690481214650105450921239522983544246830908396843298323522745247105379730873612845278993657223844992856465975529606938878719991921357441662379812113959679173870851096576640754963709776626292283190963956761891265336372709062643204781843783951016300339581290620325351549305086988410494994831199285332664391248932047615318950485680199356748588282017623075902857028606895594263000193386956736015644463396288139142987302173605522273368464071682051760613234408293570778210154584289494906864455351720685248786750611585794882260494242006617624044566759664164624704013317539082113712695755388284079968890732840449679682131672915867664459915994948497349227964513333252298096987511192219314489871470071518689415136449658146051013649262521368876783756846390725362459873599706552812184338009143636002898885387544576924334655387099075981097615219373355200192318809259818136707906123419522768849400202901755270099708047558200093211755344047601835705084784196748825360456085388854421111547535635761987488554427685071427856539164902793348106004781275262333133701237338306057158554071717696233812379223917495993971345127288015910077920485459686725403781929734977755479852610800257406037694802969042391264762760505582470200017790146493187267512585716992704790886804005696101855164484143149598321915488292166528019465069390689838375525289364042123439664353927316716894015392227607686049146694826217153974364724196347356813564338170841422080103972827237655422595466725742482131872983352271942442155060910825005663337635025454190978927436023761695979096706864580119440080137301579775582210747391532431183304906777205504466494593189372800697285676594158222521212469604181671487091679167784791887048840557444732042707335566152761507083917354633511288515472517431040320664880663883548547560268622977892505390743826194731895808902722327562399185252347954045558689900136349967899646978538771767890467776629510970247021762339176117147080640593047114801500232510200582254873019600698572739279084014601748227826079405533246485403518163979292145664557012326234235156883194189126851500137765334607039849238350433019332582639767259036401390969260371226715880633920037211919239650020036122736497448303373893754004256029001492819675033670184487118444631699074788502499445755701263231489866950527982753103476351883154617598060761138960150205992196199362972219486467929304225479845405977721835533484659788219700674220496943712765474828112537021505345284141490790055070733200524623490310978800967395835330792554948105926162392671668631321722067343310556838304949357707311245448857209160342930248452628930535194147679959220245432476466462732876380794121242328889685382029286922198722905821468796532856493607804218991115327514133950035710485419681335592436354848111240543285809022529307345489707643054736972416440350614083350246636412746730456253193903996040699733674941811070709550525529961157665580365165001576522255225796199867473923781781382391258846061064466694343487154405116112095030408061474578444415992424573627899839717913542311827665733255062089240249211684879766605587087413805517653135679940834536534539377744098097361497188904825495819778442765733688013898863052690771840691065633618293688486148235055456216031777778844067779535088402930640730916871336502081657507770615299208170706053546338832925194327368677960740401009456047304435367434699059797496369437180483581689592741239504827199010688892768658762815574768344473425688813040325439590760712741119507018371889865919883004217983035000793807357874612734859872175751520434900272255273750836098842464387236238193428461554935135236864768560192087895197213631992746854025412614122053219180060186693352837865099642146583527667059227815124445254474030464069453404912002480475706670047993433034304013121771500514701636936711485384288857005704400481916996262371018053394360800888097077086622466715146607222448148507076259651085283063221180647253957007532607320650655508409928538368455950770242409443540288805050735961686111276767927896491332024314001947467053390072718930310920292113462832209445127703660411294835225591674517880224599914930285520113157044545617340351676620830149861689720030720259119253011637161032959624177208691923234185017761286338473718421266641531378376500124050662189807941880014172828659576166440377832355956538881690039940719591340578840972245658454079557546238810657544042293894659554714574579454623601817840478683307982893297114882749062434970366897463644216903952174605786811393278062473740463023801420825491650576501748038767446693882518788396421555346376828579003913897329614863546487057522387461539870880134935851279554822474503036652307389681138714787810186588879309980790514470356786896334275373158137569895862301653231778234499368033753579964064062378402513940017815359335051342049831820527842096052757066181922291936921514908134838636977413548316293727113879180965248992253633617246401732897956822228969407401488277101673732917205610623235648835388101971352891572635156255106142000289164290243633619410983341199954419438713619635626798420791536421183777705081659627404955399888298646405473566861418173407003775558271056151809861637923498522303653222853057599290854608225365104103769964997468403809721684249317800417069819116622570911132036157535405256373803457038844811699870940218877179823473541717471435976521795843353644692458326615249811101863409268101420686071917064633787624924939292968105524102759569597269772690446427697142569565231333774021581564580872671094586271512032008530256887448170889841648746194357484410133014700859970467209433565301604890108733282210258325231987044908237956969281825266636973840980419787286702779453687585276011466791598333206190922651913842213019005271748739223572945369036869548112473514752310169856372702815611808601052955483714287491755499542119712473507446801658520294467092991550746830196478253946067830932769204617957499320555938942716835574718077754583694288834055568405644553484807877207791366745898622639576663592595572989614467300397418823538416516713865240944250206261301003196784130948608198863608652009978088195551864713403024388628516100867976040560274422048150033942721808705517179551635143680910370083337679519466023816026622797346629521564017846904692628853170853126410842301041141640078972671973790702338366657834431572355560919008511228809989313601142909046746563592248098861694616626936685144632218165324690250422171227205211012427900014206566064879836101350834469033022095542836684454742780292215483095244886129365900890145079056647560534385082984813089204304881225858989972942358720501515800055934428022420491265726739577179179339429441000570118493964516225030672428477196900599544623707398012295248437826862851411757531219045696914839466748776942858437061348233682315573274606413356689865133464450433288956941785805717491024946456168853971349845117767053406328039286314807499244030975900449720123560235094702431525637630548609993257439459420299905303815928348395920360150886931094156148637593694905759284948267701653736921396579020259154185787090298196246322937341319687292041710739420148180141664236480327425106014527467111703312880954866448591467100339747426567417769623901246807244118535287200640663407187105122109238942093994598782140482589376614887833219095106323473883539993279910362350268797294380844230951839060590401282610474368255737932057045610104715900124450738681845434358793964964221100907344552302293956745387108394308403651032924315282745070886248749732366320592841416520345162825358515378265892500311466030770122594240272583373756820928741479603869533536385580636954030367094919369164824087293793553464126796391983083842730896378844326428188318935738432301622195416053152679986934669097786597830907589069247792843526097669233045329080239052766744627598469005433744367438442400492733338274013292177582397729902094922535665893600011220487268985136476130801155788696295319743958948335016625346548780117411779372770589234155869984922583228504382977748914416978936156533880859402067515449791454102418855745290589466055510725488554667734343701533958351843300256522616124443554023019331129942440889146024402873351623915564022346952644094794268504042011196965144525322464892896907058749250045582013748839610050540306674919223119137682674487845418108543165164471620651147837535008845260028727387998429837759822871275754808699460475194261030639910837776840534968596975241208046878017406710618443494128644553119339913881186183512750467289395655023995530526202531403006765763833237134111885200822338738443944378554835242957834602246467473606131275081162014104777878662210470391829520443771385731955396757477224993198126638979200914677918591879090990636666258496732338847700517507131424444890667494382544187639819764254539835533089845107409812644040720127263906913256917783309099055226365513327755011414557079897237885528747201552557389833884512705543084861327463358211993979107374899159430385881101474072222483643553302418926315463306480847982978128738064581812842286063440821090902535057884263039866616046157414646007427118523797150269034832287899806114832413417242594071324002276865660797328081467756756183020885079358497524428752166143614941757125446661294166609095385969584993730236683221935558976585593844249258955725421377706493389764176111755415326184033038304016854687085199907598691457333429545063941553782900977865800023357652021548474582945816935290848721071335742924094766684712993485299329438155226362745280809025705784694237179231740522938512690598540843079043684696252526360043532025012763828382747793410441376380568159570699698934468690264763353003913401444292892567184518992024259276546939040798965597771506200333521588960319958712135935050551019576897004030084077445292970551802313387350613637438370150572167610534981881455866543696735443665284596433274329723990577137901701702899363441124933799187507678575271868857618419269905144524346424276576863259559943500654053709365057541295453985542287398163862097910424427990797533644728372681186677634555608880308596926024263881508886974091924418622077132902968642467077060229085963379582046186495574211332920918796336470724125236158067485926822589297883572591616479741155487065707810865478011567927590023936952721564113696009970194787411758343947834083374548216996560320589506439977945602237074212308360837543002959516699208732125415363649692424704543873286284691389785973499190014334708101709793354483709604863535797285315522571749827534128314068979070487948958203129515518170721322097366210405243239030730894432534177822236131720105883304876495409986721023768705474661488416000302576174552583119313030452730003770093632536391968785711063124817401660166039805942090922319860844227944132113141100144070468903994376577752453187410274334524403320854857280771613349534664900277179625822495721637299456307236416715468516857094077173951162047130733881574244555152381860680352846317283826573079718850290272979071722280374622534551767417638017210293131718333384258887359274637269558338618249524898393627904277230475497055126659144276635430320903288266604531943948724604307283729374682461902050048726763855719878096630708881653186491300366491243383430966125426865499044419117802918923898154246212798431888192213671825512999819418319721358626248335164058212193264182181079718181198294740830293090890709611801845510168755670616866481431187562465848289048308722223447170617927676199182553450110985385581917501909671785459468516865850898440762991423629072567159746351451508698801518627546340464383992297992033832536518694393489800837027613053671084874075370924848235809200802450871954286141489051393870299456676734766172069959562024472818880457996027840033491283168307372460560361724298666199565753092517085195985741441520570551611157787721477907139666228015575237972547352884091505545839883853135572128186660835645575325444902860376482048523693958426572956941094787381150277002864819375917716889454010098682704605586109727610136864348984526164217838507972012303814637530886809507404003853007475772856129627349372749451267715474711864121221322163342947393162586047445499851489447978280995492111612487611935623810874990363960414246558005831128505031203249020398516952892252902297091897549550353161064687556499338449094652723583156574376904180002746756584749136448094915370369737068322940374249290849725072233847216794422585226236711398627813291021905609559149542242957926398117959039289054679785713902578079541827228197758825684876446214459636660656546186065246304082994981351859396550892758346912511398507833766420230075063329625581418420545892657877404248418219918618655676140916058841137600741327063281327477053997827242311320432292797058389423090549694012428849978604091785315856246818475369704076125889479709307047298706750661766839893660267976458895506272241192343561851504526163320311673101266963733779521848987989599099590479114442079589761261910713581442437013699978706067070013091113961120783025853928399344970822400118540270366041358940419472613115201610998625429232233330426141915156648900795742008409211905251382721882185034229661678566467575197148783987173008265175131480354043207001102625249642540543151310123373218597036059191282818873901463293460564075506144689805845172039199333253191473679892894841394510531207542175759194227280704902621932572208998448315888098671370338577658898755756904137889912176275016165992219263561236087229794979298598774559355214472670787011138467879256895140225261960878971256819358652722159120697515991443283847961298437077445553036426260447879157695115513789756610835006187729734634983124639311547715545292497455009618914632156329876332906990985863702997791192432703661839380620060215375874935283394120066543077722655604229806177750620602873264435678454757420044861396690458092764134860472101426346971519157425637985108073783214350853868417606019372375319458039476614307011536513164902372185659341218526083640566086006092959490247788103225388914623031261142981251298691274449319077298582399704045937315537120886766893030481046665097742486686367908024909439356339699868829327465985771139124220226045803727915786946655966992896501197916423602423838572586601373946111154619953538279813691253929774233039392015743391264485471790292843305305020651139684825694752003379753634653931612396357549618196908142305835948526898526170622907267555507959136078486961720308916533432602453122902480649825673271231296719943768891600448085262626236532607627720982982981095162833524613480085640486003376726745260829316490864857525553855786064827840075768293391711954125666277580768891556337809696991436527545833175004295541122368687122200267782852512391940167479923013402325019499688161289819823563191795913632531175412324366966698008761389626044037579108589592231745171136043147379087257776652295274899243565563713117214190172767759359284215760424136348312221958691715415792344573563504363523619660221329140541029457518359015061289926919977050285429019550335457226183159619131118511579605421455509203553652946281225256648803867134172276249364851064061116568891863141678870375217325161114810488358069869809552049401135367598452331518692799269661947900027738401778863351136059722791392919888180289839422337294826652658444898227520232475743477034643005629467596665435862736379917056165545472080277288303650840806707652846292180033273607415451870358121972138389825767116993906964194179795004790483627056613353914958052209207175813510100508600169889281310625662195947409528803903622861681196808416139520148561910977244508447265679717272402435053955609454054073490452395282126367961669757612073584629845317726357522375516921433595204838779456770211028031423861593774520894157313672541889366348046401898350545831928234033458844981588044872087495827507028864884637848283735765452715741243846118738165262825227263450178931097550169796230254124831575595059093413900711414632089653148782315109891690058671723425376448955361682645847967993620931154749140319794440979272921215192086713351890093072172864302644526628806022235191326987512412997638701579644029444059090622341517567684224266384225231641677760713564973677889125500528210728094620146782308190769768799287895767784869464067642823764205235509056009449967642245425493678702226160559338901318113558921757663224797778362369976558861458591559734170221296083065861144030413968725855768848019148022077284779229370609293968693008505824893577308634712792532672121497848593979770206759466057682396408515321987913542774010667297176125819272375808236825145363485992246918580166144563000304933868781653640290442927686066840810643393432414522512984425068832122121161231700289424797151308822894912587015909283875922125669114848950125598939183374450255557700567582340832352110281326329775177647776956896587537172030870584908972920977662524144417034082533810259714865094755787270041871665770507649544633890669157116591726673175435654659780238535803846446555828954103091518388125034754418844874070205996179782930159116092097645103929415793703243266912750349338987788223837540613700957162548936555401657988160723198394251381448851440840230250075565637820353469904611239655586723783861166324498016814240470467571000971012620266585800632231680670719732670559660315243026675382268192796282069668984681913065797461565115641004155834657681592162926452194460600334709139852034564898390309577124709742520090027870199629467155168155382401278566870324083996959472679181915881564068136701160531592579954060757522148624092587684918525348044366968381412523910185117162984897725572446158462784316711296365095380641832466301656363870479459054901971995004924211848887972691646352717590396300082851023149568001192962023210109405852377799419956740479348048926340092654697198314190397822388714276513108212445570464019823467174631831445726044520553050041709820603166256235807427863011782059798508605073954365430790092080287890114703798839663505772763270868930864829788539927400629708312653525158302555495535820200467621823265580102872722353212116584995032424509834915616212205798984750274392604672862369972333971657911575121194722483901881046476910077252504475209383352405155857194951609397219529746044654183275937342465599328428846876340751281623195394709848733015364334957004923645255042663708015081303645719842257477271081437089761903505622169322719514621913981344303585831130773353233770721858034113738230399745444174733769706839569375427820248981287020808229513404451984898224641722283820544865412079807444659139135668672772339083270227303038765264940708189349100691523608253201385307480148686669418831012605737354773457236698762875905235077779112905897761055466489715113759277593935683762899191176258149063182044172306727141314430057844139489422194509686595069677196232198026983353897477275817073800335288131404888869237061204913486418354645908715523743417967208427219893392012790813805001460262895268850157508083799945490164411650270538530286149183271739463885041514604913765896309657851567103807974144602081084748263085393247541918859867053460589688305997233518925137888326929035469283167006466588795209499075598767571354325830916481186697549331717639751082987333792284894872593996905755741784574758260869336945516499310100779545890761387723694968363705020353369865815164880519655996979808338760398719235211816058621129355530071206884472686820124073945249416736708135149234920627304280677749777272275605103178394258961482098055018679455562778079379936311999669917626572166307608093893114722020423100641936359409204148204537058359932004329638113650959572543274640123886955670125045392127668957887499151903141638466274202686964817959812399197858358299815750000304779124445826130480073908961475529984492465078632818922113538173489430329199468435212466850363030053814272120202026010719797551888627058842288083604889438297174128262572388156036929448334744895382274263339188671804338021043793806318882347254544356163017491663203762940600980199889798357007341551671533462317936731227585287299570117682475037755979140602696232593306448072577152763795390175540161773088398173951900135926201155443221708564670105432517422226030538700710166546059419114568334115066273719248542238542915403395616584918215517764664172555622900109714758562124685656545415182381514235775255509351982571535649436787144777882278078085402775851713935907887976680022135817773669390963144245756426498626730685030731414307928199560911855782012306342304098897614024276965447804350151284966277788527134307944663310593057279076882895020558875815458245988343192680946411510492157441884923721696677077079517119775512159305264309318212595295492043683739542162209898089954703158032901243529844006117977241618017971994145944874535566909814457882771069288127699247309641916654691561257405539115198367170584040740838486208331516149768506624882256932978603788164152986553449701681731411810789426475610565850405719837819483031907187487333888678892089439997496156241939624371591327755548822071020398961832572493578653017015626420135165408014230377081868992513009586630094326618078107457189317250072441859834783389637677975369888917060364755025405115213137776311891446035377757238037396726641528189839458385637392383327195157272177979794670199394043118010667694550242063936580089643033449110608187080037635332848134088385116868561630412406621387482020559962623449016349078229895595390944814235949519087217857160258602484667200836658400807771114584086151537722872188463024452188797460782243257081949712953645170060729519388580958871500336560968867880606154342058847305966454725156757087751219652689108059698177079909195856429094649698967644978397178931048458288578037652540704534029272558098069555188033859528047908666758035981114291687410069555089064202301053368693504889148410801159570012710279058174687518240190686121273658081027935797232148630197697828955036991330003942192035847127203126169187946819757908440526759410081681279944254133444214285027800784122970723033434465188381342058111338996883543084462279549111250824604817427354305552471778117234154096979107077649328488341569840914949879340597281737536291655442784621542705582508677890507681143455703481748157548868547867789079678814176616103737865975565903772789484084465723281963433697662385759337096873377428967634388245694552588577470298332672165343331480602567317347851202620957823986723633580535992080984366890130248802046463531976288063782161837164418672768714074376158593143527527438077559528289660409827237152199053690059970731253221533270402545334503787382279355197104842949716093200345512643816750286657717865351256203265665850267814540979985176227172166575813662702788018343938394572608855106474142161307425052065711194414359553106087613913390564308535833814828304482040173430489924990586133938050180268022401013616449826018243924977833979328771210852813537861421233669370536567180341982378798667224043787691910679683300279396864393595460447013381027784790939063272338095890230932447439425197619921673225746958526423257309500369832170356932964945975989992039430157275822156119396142486527036887861466842669759860513798015135732230164632391142048955881108076216072060119241441833252900516989765582119230715826593409583124314429677624960112412355710667940554853449827302045802862488902178469919337587911082242950258995631006076671170139879621465005912505741921286501770599372125642137251767019332257066244967345497720124623946441052074223115954000561747282452539430762458752208851487483710151369124307264328719665455361968507345046154023941462769138361447180689171211219545689312326272417000340654803758185101365886805211806503744755598379913620912995158238356699677063277078257458448616638865182536969771196357269643402580063306588685018257632923582925130014341548019319222666806090095419826364275819052562496494396720217547005285948438512010992166396493056907866582512605573736275837127082393130749407369892536570666157796621084076135279563259509334993808839531066135064689232896285575453762557898295623611293588232660994200732577380936979686085309003518219605533751287933287166155339634673452120891266595801337498274834896179371726013818755343577070329075046519630074559576236707345125074353252036110100319195059951833211997825071521802781606383939157212425441379339244332731898657857546899926196489483778948075956463477224114091052322662136864262277865188662036542604971864848805918305907039962019486557906811271012009200756266333934778735206644593047487647326398009925720338832709663011707034517572802045421872284898887658737491835800113439634472597565829508669828854381763179869705075235255472104202815705253034356253228123316321133820355471742632512383373932220021180531346421242786138038150705073283228434915620785578908428263481959897485329585658357215377478958265008296170519751185254975777383357283519229982124484550451193374015726217832027556831685303531201144057241830671292116869415301643063909933715391027103407135544029916613648803343797376724131577294325971544296421582902185075607857130749974691415996010189646963832944985867240231882958689814769729471551909014840983764235220746854968292082046269101952177046356317273139972431858152282657303986858285315785193376310541919066887014865143433571461960626591169295063344128411714623444557520353547391927255743496632235957497216213332873237975742858047239343434894163553658252596903892454936332069443401535349226140146758769332737797067684245307022767025840035196131187518065888199384836151876344563814288228298565874608142859846387184724065292972108616171925484763255339299928235631995539982851467371331364888363141221242065766418283676634360583667623063410457942586296447631132639563686284188884308164432530105367996517852496153638107887908449973949812964955020671044479090579237176606900456516442735228004564706756714089959085604809139048756524185936588944578431201564034241713247585905253558641083499241589782167091934121473983584091077666785079553824328202235230884446143232683110276822280330129218144472318874428050150067093776736320691146546617702946414007544591941871265109889232417666331472289978815909508891401198392036622067008072508943294009911580911902285112794022342907104091483789372997687583158072483167606211517169557756694177525695698770528625837222628308018992466843054383397259801842912388596372225862547548242251231057930151639976216021903252781782218470950057594163685856412771147932612553844975449718892826488676220344629498449074491314270809503873827497179682846306996727937624004180201906300284342442697871732954010258623119888539601116277160482401440409910817251451243915985746347493716626000275413163357968518694348078167991752440654813257729374138516223043006789577058107904999369122825553788593498020038526367649410449393319397479555828492716590265095138323716610086865955578810743098087594103208959926890944029035650527768125178838209955210871235278238772958364788566877731257778619284135849991399669705545237988775871673114236629075651048782750618829284342364931647800882942889610492660746851447893376585000937044228481070230149560103916522918213475590717523175835243146642557726011050058362587941846469308215178019858301686378739579736275193665164468393923041223390040728150774846126321106949898957151726314324482332146192721680892281903802534269738519035553342036115331833108863152213789037540665207798824777461650112608331216898900934065703890783147422457467064780662212105641196289693673007515695729700853064601116851053191525082998505421163893791208148803459397618412353580701035079133394609135254847093027388312379632257759021371763411419070158192472753866651778498251283538719872268351149332994539478975994686457989254355096194485836307623437568450195110483900721982081661144057941877266380389559383221387975816583553939146449694143667496376806425087257347421980971139899434626629543682448882857683293746401796655816453549003101324078967813159920508819604426355346558732559221127453658724908285491571933002418025869671940612629869150878349784869032375564668285012641579666543805569563038337052194463629280245329186396066557951047653164720563276987856363412988198616455900891057653358837674162329912248638306103958082233599250431488980239922371580414360209502033382707874512684063842375960295220186954235823408588735869867518567626422385459975776344500906554041790315258603911008515094790000582201346942959291811784471523131077691628077544870807410292431111785482394346326403249750673655465231563286413702747806488048511538658182744480945850286110503838807921772111201545350862787559354150911885752567527543131001547394750212516041105534521966171171884735764410356927398013847419454650461501042733248805353998950146258289966323852598133899658433848734228488291103542179596141998805769010245916592279152855873302201956073484462434788839194856262605230925934225612843698635123790412033273940458707723474642598127338868860871182498531970224044321347622027604787639370084392195485565708362951725457859418937548970108911252250717034360857693334456387259039517643992025739091922747507227706173234238727007965602497368946742340809545353679381990601173042525582118152826843941421609672206325439472614143525416220744232084533875332507216120779309607076170688430316425226954058023053438167306110085807772159373033436954552460394714309206945105158577957243562591600190911077813626969965681919143302344625613366604564045719218433230699472587716897060442709692843976561314657323136704417850056452109747310532265280389819057610066496123338745846607189231289654634172408827135488170213523570750849946266097592946278090727785844377872253938604772901872418641031138355019676326748792915847441867603211557207436069602416290391192465634473291415275980132880427555268062294699725366175106262859002962493603793289683128231893978200510676629918064014750576421946310211153402388809451844808906674850289036503221083806529457153569672591938188731041770479473259641496450137759495833783803757053610354619201729278588638137486722359147196710995520097865681804191303465686336744966877414583887278917601301050692718088775759757904259824352014100017194415362184387862713557228207129733815990510992826534244237180009557700186066887475692428487974997764996227049600086364370776529995097825141081092821808882909101716874648883461058619979446523146480038638492687051033185409191190863283632848795403819982928317540969326906378161564192841915482600783131902966120569388988696265592885141211969238182180600060181605012777630484942094685050010573184711777709200523742575455696741226112858451869323462407367327581183960151440967894239079422111389328931382157900914421088841718410625363106099609538348244068383167472347879553897377101877712724856692916599658544197553832826742012449693858654340375687667382361323561678485008212498749646709910487394365170593023571626009378607454834476665050563509197296852017464712909973998141883217099287104444154673795978543786056760257391574592470288457983699822125745451755285855723964859277509588812979483543572271224357538074537147362959248028855724844439370410467815585580478590853665938131400056219083470350059598907798083109737905223476547050515886393359814961203855905737945119194028345105903031501638631858015612074583597703428467630527651410397734900447901339462474298697903253747590139627727369380459202358497131858852550080874538793597284852497322581828268614810436166327592478893891255190010814792165014242027465542944550668399472816525741459571868540203657174383657886928022971124785482045092443922039525267757434104645431871956764523805234698070841050860900963219780192733151404363220887962386246338686301059281594110839145473198597009944189847605837517658168510276267356012202182786004433004735083320968147110934733521383244640826605604210649074924872734820723577035102950482101398098173534713267902978966072305820471018118636432737621090927085824260586342765968983735848773670391463302898509748958780893283027166119292302920236053553044194632382679631121255217707988196301440926255499205186396583261098433842187920639760366474502268204298179165074752666930757112427174582328315179564146343345660200005277535392859336945683891278565218174662819824755543600943224712260062729482689913000761564809197978378883228848668221378638491276981124633368306728889264499148322506698944015372555054689697636439803427179201086599408072240165169812593315747263690707877005248596587227868706117015180873161775060021772775795045492846852468875655465206513545302666436964152996073409243300723322616022800636552584465060333163546220819890463694314525452297357171307620960363760992847677303198906363890139713846926923541352482822132529984766570644487937245784779453742569949217293314345970797216857988535685463096934542691502645078410599424950085608891283219850467507391987583454473331388197438489071706921594118552226978699053983681772658322375016144850743091303710694440624501407695231884815163685367661319534625205348571748757173463549439242939621865475782365604687322928526689537506004751055137140551947267702625062253730200396838029449309141375004967028127511059967415091780449852059409780771783247197267447906272313436842053425947818552036929908964396037046655389703852277675876442385145839081856938322537203895922644344394936436843372742595717281876241852438764590712156427687308578018698936965426525236753145335286861870058847113272975352092532266970735784150978100046503138068127270943695554510452326377726441659186448025548141039315833434925144278763571382380437207734325133090662832599859326204939625455130859243143689720342508283980752310932711056947902919571095152439262448447753755276790159956828416062476487439464230719226315632078771587805410179964647156021752411911964351536157969215179788884631928080163857584218393667073079241223485428550189455559527506517421736804681209342093181873173600028964506060031171341344222764349397067050512049770852676662827381005930221329442249981828547563238458662870058166629038697340352704667271273942731054345440905135528727638098707000385051980339776296730593892611186201945906725984916604291938298749267416859281028591497515242134793291549973011345247586060705469305051495212295886469516389812912654182982264374231601926205286838164020522436998956634647874477534731406664603629592517097293701179539772920545523647489623485949087451089433391300337713389597174953884721455694509341607325634499468554930602202015878002512144953029273593401527884604471708230468557065931148583726799905973074404899657892038412412657542665437628740339961002674849559377467884996803158184769681908919875939686629537790644124667715737159205556576566675799194393522254149990075552964021960497380105860909800574548544673943640158127200175012184481096652033362152414330192994323480848138224724827942121435734745782627798508294044575145913845691800872398037302623556857524483208492442755494152838545391313856748096401479083970957236198450544051009766810557527245309213991527519787898080176550236045698415225541697715126049716224066838251899094568688556995068044435945720328552151676548149531963951471730458752602597861389926538042719630625003303823921540644371623102160142157666752766489712127065382921679422845190940488320549752520080415282315412486391210671636647813778021986151450810460138113138113884956080623240288648000738407721864284138590972343653838349133113376363871281988178842322779544400678043005540817642011911771401138658988036728863999879956505261547089209700638918317355168477913957761550517773250141923409266741124088542288238860567908568719376109093582798817135608147338570119158845854748648626260470449447898083620292365184681525386062819665559422941270215829245526389786210986239651179970539556811407551474374809962423288433590609284559513363898983359437406572616528818059013917199444737862508526579005829062045194652756407568064728967932993588799956116167233622789536427722312988395461130278708739455445033867820140617034624087567101954955044832422922965407854098551172099994868651265544574328396438729755570557326604893982080717199932141463652196667558088887123160563184839596594798676649510014057210632675426315471503765336626446852145845425770213020898109478830833588826556149296669935466189102015796552345838203293544561263008817469333814082565438834866134121917075570977084937726838625665615521572097215402527271581092122797860431193843912170068041421207764800281618632489178147757965660502776566861350900229205141586283992480760242228030712567418936776421128399638370899635047674196786769451780218787569605893131350911954899399434203950494080000883433267796498666228685156012387070152779823348218427490549316509727738638244851655828762472566622114280511573891415059113958321749178907974809925755932996516742014797560523488316433854042384094639176328346873631342716816254865642683455140114227722282451217904167268878326782513937597944756589118949773163779500429031389314325742936562733098691368694592091962740961517662936370359288587035865400937988759749626717917777692786733994183460262377564824935670264475583651775775511145754519481204876595080686128011165920391865207675777004387335022530155976018238168194603295370157831938705638801692611975008265936432840422748885898484017594469363595180566641660066503201657137070359740685911620113423313768847299049042568877654445383324537429714412503763506721622507768101730143880334160036040002250741399393866157045095681934808388601294182048232503199009983954373239868559766771032865804542378438499130064084170284654803774228120324511353985608669544208070671325677528875373260909861332680292710933166169241682971117036958872708474881399018163131946733577536108190643049299232101733834362143862376100115133362955597856472621341837338117380913914583494154029251052355982338437033926217703348307222941758782879282697980884103757222445711330870566671372775317317567603526201093223287074608420147953637274051275716383012843676596281009977897092601440758250325844059501204210144584353275095410951146612657102356313754434469258552430108460103265787028899688812541344687776510312409609569992182701583722927140779726280205226690880064165752706792567840326971522333324293361105145854165531956214555817146125094638853740481938203458683360671893641018760457437907541138225672268473380417007260125104797148666929536196271866744354714980306230272577700348577058468655248993704230338630775644090400771175595272110752247720284472702725316619502177122908152343881311924793320246788512571696466172361246701048598270405898739992276054241634724447170954292773117611903543675708948960729572798257792730094645503583146748532274541800497965299551902536876538910518355344415408516593669785314203516153023597764369182854910762720588598091525037028014063601130430646496105488510166121334397572016122126173112407016991554292900454511260599667047709389687489954642578765410670631566307573824586538313358990815457440784598212758021287879228957955201021464187112486682357862765481140931634728882338222839259151500323170880606680217989987544135362401222163266267595847286262772352000794776485964972645358524798058034230580108142917056241236815759937454231433139875948244742921285526322578015377215312501102510289376868251965924613202519571956225838794446356184515290026706078667413817261014922591354218968859980653302718188549258613572956373266071045525405714897682813558602198278605818875507239049929988398942606027773327769863584466875405445888228353238357801918816966147563643765997939259207875021751971961527777827714688375214761700244304449178540469517599133677642664381225108874258265305435674644515002935504167739851723255390900956510192579991302015737621634852686360986350005398934040352656195831740445932499480364401601562835226506213140041068801774440558209596667319953550848665633712820887552312140060652092887725022266641994048969201020683023218064313023350094193785222998277331738475357828711658689097275758879212219839189025360556341248314773501107744545375410421722937855603439308871866856202520572978708977263408805103086241667149699407103357488965066113727698245113580311535030774291578092265086563561493951467654089692459451363226831108757009135298179496926312962011821363619588176543418419666506701259642990847502783884550162524676532311933071461366527544145657371701212505014013783347526790505192421698008506771596993431265065554226629444731136393747598711318530238390783158367680490701967540445916550790611104360295022232830337058675639600215648509712628308059713013987211745823379561877799851510198259434082945757978513842715050795902602497827636810390317645611280010064506471928826371519548825981769961079647069654602442391864289287124494104553235118394593018068034175882441095168209597787551521220129096105189348957884388887894944238637247632637058272644835857207673000787415130754794707344816328885241026118845411098819677764669952074415105255824002561509747211639197660824958102825580628898178963459858718972580151881051355497506717228715562199549309178254300037084582805881245442358761112947467310883619877012858004927029904931347259625826587640011394533631062925586567464851766685250484388092301727300635387072953780161371253439566901391731385850536037469954396551308377941833604204271324212006999565663920155374169032121260065749039459899211772555508807059974342589523821637768383462617659511770826873431976747934407040452730330460907812179502925309217133100589131238985454460059214065220062044169892668434451649473664174974946104871844785351396032668644753979531732880565280263923854386708205737890565107711108863717583323688048500940447205005423731674772989512643269097437646151928464115108137029012652908656676450055101635863217464124254385434572313630457207984454080077439697539179890235495325602282464378284043631643705265907726091262985290933359365023597188023281609607811054000966642672050354298596182186002376766503316266900207800128105356774287612870175784436081708313218599332069367968694449326858252021708826941913726377206132669984310908295123256927952798548398467340714101059617580235399848818996211478607471604155902678578494036362624941619380811848960885495510021339958347592253346062808547580502107638761989091594548834475906001298035984775414193567856920535862308623685156060464170013213699651482853121332089700401163017846842155978960505569250162665492808252808068384188562026939504467518588424004530106776684407921048951951399509706398951611816070410723704169813705697807198580939094527859556355962168105411321734539848348775975217485171537684055743849743027849170604823228671512253387865880809186060416566252136215844050278324363001394446818978568233312734020162168147662974221903454055619994311461943822228515397895440458910948653455380263504328045288026897240006513424456761640171795438618828546031817118217946823267252803563814089352258513171808164753578639397279236998864531799287152608099342919005555121426485736957205929484244183096635403385501172606765471097791741749302709556339551662171179076076154869003429380286287241342041750881760734062825037038886186772782730456484434767627775471361410906530211371626677235388352963905462188136402266437151722286803138799769984233649504842124059009540540792550826770474464942090796971715542343794707912180455416265282727930357617708234470957559091512070559741927298788693149977303597654882733855944208073147461582394103105354662463392715423906435928554895828787194093057539208066215829647049350583049163236815504812723167087362682836695058197663358749899422433690786163711670516321597447244947151384271504427635112172174896818192546572531523431046354573169132831669515938551584714198207004947566900248613059959028106143836503264053821666623785487768480273581150015424623076128208539780303450857615358583647095933274104817385308074176968306458376074822831971896931060915107141928105061239176922405286367758250072685518253389897932666184443594688816060484887563854771206014033308275314215270629318523643176521584364660815589155537818748393569916543634047556774867328431339005241386921049359472077979568315144926373745553806697359906357484663498272516896180869595307087707812244972784786947998338085977731121617160995689797475719279757856197810628177661869022884554130850301264246269925598178060461592322347256117880124049125732307803572480757421371225113318277860858802341090645943252868948383935116129290768639133590265238571714363280239725204911032712509034352036058764806957996390654006812499967592822900016749631286901177937827630375855926952735945599173261199715452876305486209800856393640821538919850881487602498795631807886642627091655145088239811844633890207584471872388595664843110765418064203105982944387225126555835446488637670339416355307993382554440554450623033477197912779520377417243500562828089456350250586751336407679586757538411701277732695231021184507030964800574264586070374916772602945836559956377969638498796897171836659646542072541441258420128605807003802375682071243467552830410221596878344442255343687908214027329196159151445672446147100002015482570024980825322803526254943595598810446444768472263718250704954493100432582570913779243023984081801688990467149387812783733258550549381312716901870239850817164180672540015362589309942350139383502420574096670293291237017844463548580026389110211173494790068327456632634131905584778421442447630341481262063209832852333387638551526926842944677802249506891757806798232904842849505952705327391053393669124923705821589149300515887937527609409254152060632870650726550610650188073771417662496035023489660919617414521873591347254482282031946624622891734952663900115242152083350767675327221931970753226246933988945961681369203619532961776184655733705847114912880522537564369154236584996913514470124824359611329321427868398995489406302238716124483416775967463516573025504994343645027493966982289669003819686708361533435271391986107871122457964143301884785174963902345006755874150018303482964135003375812857434053062316598963931411993450163246530097300970889807731844645970518381459197882714268160130983105802628864731967044922193426364974134771955354560411528507632199455310969929095478292339632126929013580807536436769645277090331910237494745156636835947999324607252533421133319086333456576282731311444150400399888393846662060577461588511593310758927722004287770364712344744782355419929575815734177672253388642784297243482752267012909410712482064005958571159314432691480450614083416424719050293902614858892965798059995532890903190977891471081876947980157556771709327640522979405747950932298513137314460470131383742578308051139508099173652467366243885890093940435408717224328911332325802420812124411912862195486396196767410498862960098713250597184067918410491902411933043686737479950102576018428954463352952392958038237861432647687372072553992270754856545181918652064506788283282911988821398993858402253539893909259840625333602518449151571956358885315249916095970308295217652265562739820800999934137731130915845018020537036304941021300573358527050069104580199449555115585721746068194737426148722164782030774842239740701151518204407911281495380360741180960991214400414619601896846593582785225829413164789697419358499141274751411328988315303100578642829230775585785305542088277370005030147889171080279937363770002505643136765991067529754894605663539178804023318059635796816732552023145299662257209876333867825122421049979408417030708212929696039380544805773247594758621837021615727460773606636944098887270406262594095549712422656652762885527927491851109539006890945775827825947198681557580211025805843650980265539724632380350532065067194210335197966939548643741717413646178168973520820829063282584302599294044080018293907462521997726578793825023184051786234304748211342980666198443665277583288740164372448824852964945294455034793529273921410452423283851562316855159045562472012190026364691334813069472336223395236885620692190696799614738026385640971648858706091475771072213665184649478673334292486836531895849230276650307395103176911575325537216953830384925505697009550778481968096895892097840272451230022916810824796007593364643564059383979853473817110235362697780644833029626462305060152636563479832089975184048236084205874523579142234286402722103777023389553859625536407352679327953190854514369432441892905322687903460441469920094777674581935716169832865275616706456681650724978844418685974901483155093944981099501098471118527356563917586699320200695858043584728277809547893483597521547188335125461588569021195160817314781224189641131849859724567702488466122541724922397122610626698485468721910877601607397238535453069077317047076042271825903470558915633677406345483827699892440035368149078973554349105736453577283393375175632260405704714515638203511882168614023234463304816251755088150095603751378930077846343379930906042986035117588311673834150675602052176064026280760893388087587566817384047399284914147786105910454519283733861611306055477946963142316415119671440838330924604965092961115915226144837768841416849797740653124782405786593965829562107326653401241703143374005153989690069072797287593455850013407641677187758674373297531044231694201868644719454071395630457257821410791999678023123834138810334427282295573374011135290508732893827470618528358084793482906647779393453101347236105140876359974804158142463640490601365306391513039614065733718699513062344841684392056588771034336150896960427569461800697971998842267041339240402655632801281357244384684345717112753803236227269236725842422375868833667181330915442000415699060750803436832923045027209305138660613293074171755083072853757454117894351585184021881411472057432168778575810580178851946260814522899148886932919125075261120047530490452093978729985773425030321474904370300916649602152310816825966913182145583765951176986816449945416732388713577359324001200644792524895342424401576961818492976949710067500697499487160673072347316966584479564546317176143704526082708190642059599996111597505144386883527567002555721272277787324100697868282394609538224204178859855687607119578401973238280152602977282654215057172774190716473315885702066635359451887929974900550832618078378060604272393199845131225089762318354370748083868470111210595857025313102270517516311010217095385300738623865051680488855940628524402924947907755414885680632419594056881241900452346580783013910456214859353429837291419051917347685601076511993308954960646188728334933076853034933009333321244478126320563233061582959358445530715840005602245346236207502804935208682275351189047515241326666239958327595621500393863520998803750868910085306239833329001406876976247672854195942008320238965168270497642503626519036564726649544628996776048364492256168289973932620101502370714246009546446737671857234093933549330081967941236505226086992557441484573270733465261305053338254513586502339226827335128345393917869206300933816522737387986090002328094265583450235095671527509508245821809299454555687292759650824982460230773631820362562950403754994132967604726651746160425971405164460248672660735049243677659911179156241872225751531904612851475263799075579045061616240180064224220252781097330865708440712455528423776236335365613308521746948823645791667992515117583406603173876610798555507650077850290728352749574859755647569626813194922890404915713846924286706455995565761317987795356828184975414177494528400503490490478057502235444813611760847570836553888255436683781323329526685328350963887570074398156882440227495205055483353933157716431209361907476891515240582760198225872079427959656694228360257346240626101075408350361483008330214439610218776834494744096274457467280533700330939342988246182695003056834000512388402060976221285308235351827569476624819652112854601004422411964640702965497892878896511195015238891630694582280656680922236848459662945802549319011543336425028793180923910875309791225694396511845969183814697309373233279281621241482528971012270877801373754525381972237257769699666751403106656884746210499850240630754101903570976759739183304342164563902431292631113992317426823143448287857073538181322993101055246671654322832055685694576044637444708963024374325024174975911804220535499154019462317470786165116674116843573910151665185285844539371223878445498754820634023522364002585289540421131413828138477724071285746313321463112677958654349104532634828211834855829753579705290948675819102759998928764069081338788404852107669951370308015630433199163436627258462935365659055928961250565637993459979824689800381131160698235081110513448674013915631339244018882062643527295762574675454168221827412629090655757339237112566397796195166631264485600171526937412700269165007979209216449513521490839796286771734158547362617104946677548581553792359902306670625777756406895109180662824058657322043186577410507261566585395221479148748002895701103885926005118961681689260436154050156367586254179346290693036123419884689872201318787747405295807086130981277706053272202032196867586988362117321085772929634191558610525349869347770067567735747394071452267636645790013661805898343442011929269989922324938919707318697375321385886825880216684094694392253539325411267567653838519982315718355201747259499708892033395691624760257820369043661316059562492981688781115328320127749615495534635585801782267369275408983839516758517318757207756831140977525988116975265211746994565535358468319069302427022277253546715473378745139410125290278970178641324416401379736839632046738658993651711043912708841526474361649111634622552933489233738278838032158855718542594415793900507644367032759910579928463368523576170423488778513964026365958362292504067968412717775734847819755226722281745624760921725629918473559666083605643970203984900057548842492264676520799557123277878393619771303325188582159954072212378929718573621173489414899420668963863836467845130197613762838653715604557183350286965075395218278280167161340980865853264309507446345380052830145685803761990779994764182208294893500274452424224542129269009409888937447012425436732899625383813054396844518805755971533648584279295595039738099233398333012082903357709693011219358686247284574805146802768931808866092610252177419748555918448253287100728096712259807876008092532539483373050497234992185035609400925635408801833286086306480564520063583675390404428972055722235379553135029119458805557356843523556999208511268302430631422334277386589606286462331272273692920824194098062621228249665676144180955783872229732479381624510064717381355024509288513085459226083969603483485858222843459537474184735024265567102510952408744428269915270614099517927240621204766811490701759284213193489141770368543601124672298124676532449634308564640446772267854583214278107531710235461706817616102611831972981555185433397112594414850521495726639797946506116976786959652029980264347328836861971882199495188545897203216906119811559170850208538421025353334855684499453822601072218135134384766459037398095955982928415724028499954116153247536890858416935197103506844867365897645021244484501918542221959885197247183903846213722500435333921642334147701553365453414945277568420470224814900935113787411533854014636547030230144553559095895039833332445269067728837964453117632696160743437120768674862196211000068017438597627932437675391439596596694327058640799971733836792712842820238412236751561127298565372691249274128571935932813283523470553025609751372965152987294127650883507308520881753965664804069175823720822352684640608733630119772884541017217575232169869260666485789721737510235382650854368246765710306962617601832290337825001137128791612266939106544525176920139936755461171240314895553574194070296673972744796686944424092412358600646781187190078486983963578452231515803727859940023803287849424787753203528941052313108028688206207216111169240734698899417455108182112531243225486095500547886828815895451987923241172668548792308108163838424968965276737157820489853042691316124386021131396291745267097571419242179138949793045924693204226935411465645449831790440817669181603129215801514487807128505469047866484060631454213459408586494565278545481533192042632747581696255335588652826472238855205045150861313094401131435804494200071307960862115935333995619201393726983577273220075759959346893735388043389381192903187760233541016452623493327033842545416707430284980610604768403554100670822963803867875762198383597772665481948397141961539225158222220789463379970709425594466776840488551002194453121963591308827632071078963700793257310307023290968276824918545676548247780141777255993929445432808923236984979952541901710232388165462484114106569964758339020692981519115921975352890369026635681433010075639159437002441869797426501289620681316936272053319922470864935058718946010398524633978498562204874922057291597028061980019252758748274227078527897609273128028484998317342141741663978636914894385336249050468400581422830217646752051430450846180388423938752313810870571747046049720453719828516336410574710533275868148136138374780621215050277682317778385089334455708991268770117872335000526148729642017300443106758358880790150668496465285195893015080413817127363037278267737653369383194100149441713676706200483671931138096827638360695826287335078464771340762950954169084852437854253127469892002615073258970141816888576404280273878285418318533040455053113255876952861278923322780004264231088074984145989617014124822564467582456241881488945333974975686374195187862406658055094134836020672938110175777094123765302107720411714928989253051671936812560055027817198441899667680524439215465793838914543193135293215099750757619709056296045580783927754596927031780695000754181235653900821605580321676424945426907524890867908438039523816456356672583569196100993233866531681182093609069172907830805703564109055854940328179526259929465042209019921820141163698893294618351580873910601536089900200336448626141216692092127063940834294130194043607801760675247067442299020434337268709826772272723025744432313806029112970512047230339178729659984129851453564282136578231609382510430827255274820006111196766658285686701705621839078972092824582794384387261056391161702807001014063714266534513975347638193037199271877760243714020747740602405465912207439427619781333696676667056431208805455344321178109117491629849680652151124530033354695117052969733282524709250828381866936232252732641565459133347262759779144305174897083495498158910443344129657558429919655173347847949814015318479643399171528834097633450311017168232943034582152622571197046909391487377405060612200966255593732665241164257276382403049470202734181333480362876210403160618985459118147826136425232526035837357896852813868591427674040678388134248060192874280039266896633501467793150766400930328817356553166234185507696795401812826955614430108810308352079134735446989570475227315603478035025103585330875838527001578241942914306939219115966941925056043828699581400283256208464099442300159000535016992759009348489034868827712371918499565309575298623141724803231277038961477658807566774679154376958163417991169484465865743996478480162336925910960453261685780662212776012814991625758183308579733229386164132709706162148105306785661988906961384884974029553929492521993613808283658650171379467827888124210119915883322430834868758942101530946296390102826628373778306152253663924985549265867059197033314405893617289351513232839112458427816987020488591760214524829841777708729163857448592227151967425855309733561350447863189838852284195755356441433228727712158461504143486971352523931169227788604201845958062727573253339602513483060938433979726399648162900399371884864875474449720112745373693062890897579541627780443409218488059097841694594927425960157346756297157767511302903005029947245963070991760402176017594421260276460672124609746431936515970188521425655883160280623662841541105491798090431455656548389460811195810791358630886709062727615365403061947403208480950275213745382414858780404203476087688450928102580466882544617800770853504088288502637712025760618476162123548052762690458606877342371377007599527010546011255655469766901157331609681378366376726024491514680931885823271048249752698598719549663322721433288660849980952796529080470772190145183522670998460321785803360662876101727220278016890634882697355605831639570118067756820074416757488100628191378491267672851754847164716644829659768069299576836538107828067448178163384815402057781174554068008975505246549606586304666154255038633366674791020614126078068466470775178683052731912145238055516400097516448426588854278571461505959623001083823209330784258408030219525576473311833102733893654808159220090261932499663955479181635120721293322130433269689064829596364836666834355752559681293800455433952239601573444441703881530466594319225979368361496147200979595304789203626751479010760570977957091169714743780527126327671774532344548685384109551404436533453109989629014264105157917498542767490401863977995952670341144577269436232972003417815189688355120765221550384094930442794377490171774774880005685999066698377750865880824383598949614681803546989009893859226205511447056905707928851418217785759885179516137237562288139980810865733101541706422368858767815035506663528724556541689362924288524448943560292171941669730842672002078139048679504670553663130723256043081605908229585827104140657500662035561342311641456865280410293096135823159387756834200909902662633096676461202483392965585029312040326528260281266476914304835138126265508988177693471332096196379486192471591808085610023858249264935094602131795851549275847374502539501887624688426343344325362631205735284679451956633737040244705786577003757735888237297084901105303833064220759926284605043126719507005880135948677316573780469770980467684999508485147698579768282487710309984437929979678158607279627566662374069092397379245745766118007661389282323629340266145877102531991741543156883224671618380781209532736046802340464255184100912526821091022820372306657085101993136581399711098675138673517949661167514566333363042659585810741800573158096398977668011546286709012320743942765510661721882828068684916580963260572014126495364753486487018941560452900157125548589392309725650925873863207712926849845680646573257834711181587973651313301498410188548361698223712359485803340347952964008970317898528210212667185968935269101342055474895598841113676712332419599559964834899946122325639412657257822473000432797418309058918123812631350074108152842932599661483669235955627021636194859095323403429246156102009065420968308149073712331783177854081617179841171473839895425224738903482958749989957502611683112295425082161442544195189575953988900374094345603273090073637995478144454821761296646625955501382201720600992550881990119304886742192781615160579370314255606101554654349954114150290768856365589011384700679903621966902607667340699435488409313089192360539219157006747293661035464989201416356853314697147152399161876599680091591372338726468458632546000353927725350197315893159610198184370845893145867449796842331957366352812280851114775743258839335923395263232521197407720506987054680750127547068040093414090395556285530171236637449151265903416514406284597680759572351019292616847464302902684929338252087328302185846263922744214869565063147385210165520385128126065829049899239167612669287984619955421466916384687824083631440018825088806373075247028841896888301892299119090173762655984086376940785762083415786351536374437843184613161126978503840620432019928906159349738509868126377504555244664258188124735396170104369035088646557166163854596046925917030135231758440090110749927891764845709470299858514966362871069738263178175045209080265165710469206047015145335569850031159187083762434437922161652761328730494518603073036889526191073783786873387333920906155326834237886042071085835454550847962483874503419843653602572485346484627255383881155082363754283094920974027942468070497480213718435822602054518865767126856135035401760294239893986137692631205622816228004047950168280730058106283615987715028279632848072603904992891717985918011360885966118063230612825579029291454420880983731239127149819031902197024504001122559100175918086672879285054135021739487546263264438329669674548012575362509813600725650125000270690744056026003431560697165611867634547780521514175601133794609702400476897866254844534450247012033757144860924705282953886804891633293690475722416049072221748585371144651520576508426603868338982648067749996373480342171027456815176290604543137312557242854048763011272952390768907007240764984294889935827003871884346917823884402751600597396031533835361388100317750293430933129097248818650936657508936562453278022798708223286395810633674068222376691909814492664823854368305492834855030093022770246060474060294873862250252567380160559293296207783549238413399343783370685951430287309812013551486547323211453866952324276063291503641547350777186862367300762718778186376713553925098587157553844251992622456928979897880410583374970773700041971629540114575692500471621400222749162024066588666206961173252711027309747883791568876141208824259525213243524446500457967756806140840203591952420825002992662969760934935903559383303121049699019325784249341727484482895669099873776399394383878168961158356347368525395311890840481926306513126665244379368656695840167988338069750638114409558670894824658225272786539141991565800498481801554593835682016861883540115295776175176703040743357187145013962957101428315942547122105672741027700554173427545376739118998972742912708640167789624946149608240940505887416333664222692073971511680926153891610561760902885520876935142784108355664583000493680146953949774791084977149714762671776483079135551463201947868943280016173383201215197926593517534676169650337781763382083471539971980063910053445691445809741399280079512868054643536367024757854263158671644873884580271978779676245367592284942889023451491652400229547311066695882920427448212659925228813934596549225003663720624413317407359517519782107593569837227387720965843543488559400912459559324864697034824227408930531784306532895592913310944885122554401841651505839270605611994413564439806945566009761597015220358306780620524790321058704012031935608070900676356932866487331747566017044889693287045919195068099051931321291818457403894762895913080708557652796326359624945521469627329649336455491943606806918903021285915778964844203404252905073357892043948985809230731859368379025398047510869640349699029248689360751052321591065104344008595599063072133465888583692639324073653629534759863576909302261732971413760975109886152681577101136271346182614115698842715124315245047416534330989402759683838844276979285513664865191613944413912684896061484078465199185640177814150744219160558486122550405720721934709783250849218516668231328409080245008120288580678009887532786440583257984973660566356997031093652691983331676659880233859062270398832294320445067879921439841897315687642408948066317304835500974364767913550589550420499853960478936042663444319411207463766272901471509132238813728310460924615253138895512517293140306224651879132018121064643456888515821434111727426120753065449306251192273793317506257406769559215918979859373141083487843309451221472862585868269641805668679022899734424906757905638120960710986327559499484615562770555181509840891105926666106750055884323534152397736966289438692107863996161774608405479618884026500871393065558072175163874450468833601822677785584296741993577012232856230351724821801700706677949128262643450681526598700324449763067522870804984784934559415528681876370311430346775955896015541025289417985015940392531463980271587415167422529742710359739321056745964910063568637885855029760739534469727607667122111305945771470638510821410514145627885189041961217926049977832554999063401591285119169052446608137612547645852701248008609492582986860137433950998858365996937784342754501124860731905982702607682934742582137688484473761210950117952252564995205623750071167091143504324050485789426803834291691591180705538890788589009046617520736228457461582754788990253364922529488432126645775013967684125999717129404114704109232650367720827051310466127830088258087304956075597775076140869436611879928141546742588169527026592237460638977896975277722542195997497707857968684333901280682613587732352666548035429489567655647717798052637280595146738358070023266715173108038847681928957388498003880503539132089543087137675295374992998012287353211949265819608993289520582676768229186852920003767936732555189533372206897379544047615175087501105225210805197662396666598725959923444112478803481046518281767019178829456652006567885351062948414452673569259925863387164196014032438093067360107991580134945531250502704928543602826318829833416372987510753455851554648768207476947102681014969290148813938026444638452147998463872536455793656639262163839231572059974849896567406356527579923985243864732249211190688838462061632814857669324521604166555142132780431332431138481869805007320553055905430764056618087367509432373155745019851544745661694131527323117146004505223100246832127073110700005053966407483226451888797730095085530030014410333612218851026305004612960739515898214528933652229060630941251889334872815241125277019043633046186313401686949510689756117922823956311213229368253018335736937806687690757565414269195574321935953485796068535548785116860924135186450544202145620126112539106959711700952977882442922027694142510602565368905104738114948435503461357651269946043949365523357314885228630757766254859263946111883997911679538205954404441755838400866050952585187928801021936914780427471839568484652655206185545884495341205602042521033177472809784704774413454300040952224618063984017150456491241215933647667849010181529519932799375156525029386077249721914375758240227918876090468973523622610924800650852917667356097060855129315620030208621366702996774082723985579046222102575846126516262029374071019763462001468534982942961230923558351378366204649894610348871682099785843881158794962918650733767282742261028761409688487800530835040955611795095909441386382687778515242465136593170911264277047662061439728388626990895243574140267555967710365841604115992211838435755733762707827174042180863406399751803819032052493371060962277004063233238061472740989859176884862022330123675888054909368230062711625208132467953804548392692858122600553377115338187333410135872652702525476104328364857845569255608675987724213765487835168810767376626664568462314439120779905908849313470273195012647377298447181071370488987908099547679791714549828245361449426180650663700102875011055785596675857935216475460247625271925221951167327420594218396102738521498493823711942418839099497517700375228268956802350511476467215992102641377287202908582080065271198672307799447593476646113374251488028506641523930740652288711249139088202121110466410868139460769016079598982517618141886817492878439489763215803023832487083620028998897492005570766387954463683521411440797419421554364099417392406954663156851943052219899349882292840980755954448256441673950849082621844014328855414042168136492177733613335872675873696989517362516634233864250437479841958460829955556235967467442031167347920332993844933938181207733463215945396693955109654992267629020573253233626983056122624182068830997506688568420826472759527641798544613331334783077617934416485209802337230560652335144511272429722286569876960458709746161876247394140404227338783095678116087166305561164503711045602615528888183431126865989105607220306969092132729265301595116370184672658795903016165981370690116302542671085423474932945441490239700180501836867800642850009517302320024208002028071527612860670448632542156328961265589167115939924981968840052161116801618504686522983152373409871930767443307783053495684152511287946166124105652283066753364057730406559286194342011136345569283725359581949751274171916485165717064762591359997032663507930797155267084457370235129251470199036908532282944190763368113016621910147742253283052210323752946001773874492430157403762378296333809538972341241152776442570780399190693613559713835400268754931863596320270338540162094975432915212800883464026701020193306989971949895513734134564735160002474765747761129918854300186196547494971095617329723854682135265534049643941397127659414098216185013555182679981587513556429554267208287617443821051150258337660332590306851458494786029801522546018082651587255176768462503826330300390801798601408776823939066504593215139390467268821846683846979814993592554745526174735995381051885494516043597713046201578877840456503594306390546114474398371334129123472418979652257734929666877763036670649913838809722382169923561680404834723140643509467704108974880095664890933232968882304942651243776608434358459624360249146041225641786293950014867799561844177793018744320203932798545715504200303627970396292741828795105001373199188271133993205162986560576509199183970230612357801081026860817074212798003939473301394408690811072479509905243265962295286363443969822540661424131379487153831351869612736409975528405102849139095836615077416195811341584241469911352727233309089019673914566191638633242962396642309024482021241014990907103566212196802696767963318529980275603561835907371576015938073796547207263054438101482319097486705181036133531633051293456022308774764549387654332650900591145754515953895308539145729643339560975384311531296682674450165477326720056553453240151554790803578140875283821163573155259515107468647887914567476912867458350380006672849657237106888167751445362606707561320695332030780683049864391502787009978794083157666224270491837783351910974206350156366972735205212785074621654275260211572278541586920637228142223965712756775094185899288316665418239109857434518360856102722569473314748291203173264291104512509135122184302515564883179539938981039027154297741640518360315670575907027327386658300305948409633351253682916692300445270348131734154137219821299010724536375119713951415148815156897013642000151523646420452456446442951643988319935679632874037359197267268317662773274561775203201505637636640970466400416738790175750756001631125521504713071369420260392368280028006399360771525545542664927307281369793765380090472482296917165651907566919907760266669753969346662758092922801656645712133165584138960082418450003140922401625878263392595342074109459156668062688751282797854776886547926730785576296859587758636628541874023931456533670211389696750379986034440647146791107516376549968265124592194228137920153103791035526494959677169431020878052814644296033103205701375631470649033127391421562353601522237594445290731818332552212866420944807829046790749146257547651907102994745992492839661261129710269498853484441152385142765462434401890639169525828815722055443765751843049012521562510587106867822540045190280627138421843721868699437298528567010134530755643609687262087060288462624264148167618327641161803373136883294376505226078002059592025544247516624319574111431894065882717695609176771068271844040446529658405964728597093170795547287385831742038790182925021798207069093320031849445547594869844323088537893411975429706241335162730638017779971088987117184747280830472998523499569434336165335821809824200770452791741632545814328450351005922771482444710511103676118601523462204779787747316874253811412076421031376686962233192837172265676347560788840930247588421707652971536319416853776970191769728536265047713934265158752323294988970509280689621290243322540141232614518782061857793468511720763956545905970374555118005396886357788826869278347961015365922392580646954274774917166063765555982174597655691419634507636030189775961024125996012310580648362180933811154273990646331114679182558937710463443737949132312708828634602388420840760926990252460415780661247464145486576374126895001573786811507195945735800242120524598352467969318821709229972181108011773387623627943195430027080637330916456882119547282085646036497027297758306236180490905672047389483880270242512728732448089325467928868329546188884046163626747188083801094149134163461151634915070320490773008057851646238934057327822422195076906811311732437161871200036202881250853227529033419930605590801482402048275119057300758475358672322161569724006991706838429613969417217035631497965142771059290750305348224045026269899776125408608668773710666745348148427791725479605572317850446045334568910861926774478796447199010198991193744700403214847566735665369180804775171632875813594741240646670497363616791673009869305952231809911567618524272593580616826928189604784482303419830748078984714646601459326516873276328303702450838294030796374526099591069921586709887448520500671015872781167060180884509531838547579324820416599590493767668784226387702801571032451067359483112353197992163284306338450511752863160758910325965463460111037080874097841374523464051093407910930153670112831102728897282499965721148982631004653711565040689558888863984146921612477890964014425547592871131835374445856089084173722092631816770208796619709293938187904677942491361069295321957452610152338583435066163881701211832655943779273565877242501479289911206291761114636702768135799522920761364119860424621241495512647077188620116286784357048616505961140551108153832620865097286070244700900931182314695448648679356810511275340240289664854798967944765558225874746329738042069657437601607545396126549687866464057744611218953371690349692400126741595754727079694110349548024216445570463862423720490887582154213331483874022924235352916845687037426811688135463372745694529790995811300048569796296042918163551645872522159294091899274351503804067860651131994696233373932294665818405461142031754963541257554859756440099545728461430797589466398606225682529513357884100816643704998004973480403962016256835434448031567067664488932640354217859579206920135167668441321405816373645090763264893562621932787422640203927347426295668386176594350875668477906177872075411814839998147256102359513688244212791330269337519887733243597354120122274344627707298791966111573308790571563459453068911524895572999904079344246806808899935971271378140116615740261626719082931318051898958587594193436150496528625094465963222224971491983377210730118217117434786292498776887590718797287821970285308691233650376753035807599323940968992131040400666144303873275791727943542617615211340527778556355013748430115538720984399712668520830932937418839994849487836929137603930647218935204795710833626517109186910646915341792908032041035234083157555902441597950393631470570255062243768480520742241139935317798068105080003457893810862495409533427544070064582929067010112958663992507761769728868760492110530602834287267906885677137038928786293983495778901848141198563870722133322621800547118833907346958813515262487866778252352175470327324068228361755658428346770687281793625410496607218964517688154532085652743884191440971192605529167226497251780109712202024652636034947379952059766622717460208410224117152086596383559581995016066773755118374420906715454122682505341227813321179884724013628687871869300309018146214950134127109863648010675303078310068800539371867622165606817765697708926990501192268939255319824122910270111853877963202995095915251523433680251047976396148144672167578275610538318153021207113840733350277059551844214531157049278669752678105492529494661613769031805480100476550342168799217578013928299711044986863277960025236861818031345944673701152931267022487811695464192557520974844910430338969133975763174955715709972371149126733488552341882263786832449546904639441492545403398060043756579494310879529598222945328975496763813567403299186847167858572485861733701742387607930310846149544668542396493472459097450428765373446502384005283490259840078753491980939349311367355368231535597348911347566493594465916945100613849035272118338877638796558038029384430971030040176043861528470226834903964202414371125870756427910937551655947663390386664903682515231817953514968003611972588879579939620037323482224368560704045510596095119170309453763006072420912854826880816545027288024483461951783315204511293555796276715454635278371593504654835337988762789416400116456076950727804549720995619086271162392022340583712674638134683678358076552749667410892137689375373814949369999099216083583145425205891341340877084930071819511318463884365766177628732658290535881426957895216922627049978640825346617700054834070218647970494598962865094638686923185554465647419738253415727736070378099408151138294495418491199640935750728583828954454177796836479792681771198187054953091363687539417563469055827040597438283936105296132450906882652993045097420199506371240295888749298461466198121710182359413937563399120421772467430166711365158395175927460685023697571594957687292898481148527900651440354010069985824596373077760644462771007838284374086717924933953766184365057432870824821104341023982012241092635590527117250053512760346028208455302213225431570916553908924241139228522874095481563425729536771429211478440669572929596270880226530439918326434705847054806683141669065063370402979864185533668331333903317543067776597308365646050551549053090255390483464719134886153021620712174368198919424836261055784353852149172836135424388802350074736737334024374333356470825235758064058612512322482108239378437337961751449412675925034186094638854797123164278077451874077536938920968917648735147961635802135538763080178422676634439898174131264374376458093245224839087537238004483508804306801063603386172484991283061444408705209542280177372659071297722147413058648546670590543883479134834117789127873400937490532041683389137488849009402748529560176590689274990888307585521452336633872384777509637323894218706584810560645623482441362508575563916139776080119286960562388395612000441627695569965043647263994260788332954846891707489265154100733915511380668949574995389656683658723666287575003721605476308362136617338758144648365233145868605738173892778515732154452611997582500231212112083381187549129579744166797836500552079558915224698267479071216019972396875707502307507502090420753165658562296682021643670143092884834079612849522944645681196804449333835535651182364402362828072725491619240851842059518652309834152452113037498711914857565971949673222165470147919822495351441272327911105546298200201403904615052351015296752733046815934812273508461234192782923221172444160019659021422261964905100567336490023458446003388923812552702354438045025729386675847060348753566543767895498457373924497103887882466470834352218432617529615875250786268376748192666024865056911908628471530494196959812030493542091487430451167703940651998345125370735073272539841232037249145344996801071510470505399800372472823414952157883696735539879843219846432346820902221916819381712122876973964553684021329098644473100348372368653147906924034349849825656482486733832286667058503641615959819433167538783392921909147052414748528801659471555313340258090040266529591135189611448237329813779702869629382017818430331403431941023383272674914773414363075119026562362351680155768750024546489692757195895982095454550077446110412094053532647261041433900728085537897553152037777871616186130562011691605496976387343738662112699994820622075069530624227060286424988972671850839672678313465421805311206634405719533481024837979097430745076217452644691126817955367348063152935402746728403494126728680425209614722383431251338786811601362360941182823348793237969132044710958576060834622508882221590495171825388181431316993733734710543730636698243384252170036154887425407637425994507535444654894804915063468915672231987192636998376641925723309143356272432308797997037552046509384007560757344522830853531090635432246955986433695683707713905059169666970364501367324651993437467674812870846657611574968409151076841850326764553226793443970208517291553791098819665880838452508271824590879842672851552046299266145221074780064164502545550546000883592239421197417245180106723163971228816553875614043284810347841965967429242025279789606764755531928219845087750214071048186677444207975591823250537622325730660625652944135524056529592721299503759285258596312349484281372559029087595395641102280684251364707520116458745282847720238353972821119582736940483824234062960373702854063039190233335605863440582753724802769275690611840636400237132983664881297472253589587941032673440722381142496882516421076467057018166085771421449157722347820389657692881767182396062215480179343687062782052257864692134936340724506168512119914775876808140920446899182026571295733746212269058946325303903722950093123349740960674434878175935386419378767888843458318081513326026431545524601531420627891098346573576362220292066106218957004057027271693338362807222134825904856333600580808671690977472497152754071851763955686160390776386869562672190365285478211760197459602096002122509190066628158364482832288426352544917984858407295506319771578700459641960245017929128956167378821002865492154787431206040860833685652369883985544040677816956046878392614967651019405404084674954093928144317424197142669572975840285915499760057154608939338793949763358101318735281794494303460124502232220139432497122992235134229773907964438980330022348652439588966484447885765023865622166597435988066383171286003566681851072967780049832041798798615297032685911806082224387148689131011047990322561790816605354911550696054979406209039119568165239157602096337152913264070903532418719991884532060807790351570310705375986097935338854335128235755595943808195283072504456804758315177525965279066875524833140060656684037389272471455268073329351152566239349211391971763083445369509692082315229141176657025320346856661264545954172122185450230928195004338150212479734122232668275603382516842463785001719144551131438521063448227212120130411933554032855660567733355505083227024336701020579358151464433882296364341693979595907561124753723357629217225957028548999176129917033501255909678471880933526573303499797142872398193359612904245868149805426218388310347586018650267673503894438592966947999125836655019588465357303529203561881616646120697070782935641933319328207984027627781201941507397853567494671260251897250469217066461316018372605511442071005653700418162130454038744207781537473837310914541084387927972748912467793302890070092689275082278528252949045365404942355321741892515530119831377641277318707502753606501771472865884693006068476955059019151177314940496546197594776874289760565056742222015535386389782262269075767169593772953210484864242919741089158517489909515347751106745436653010565209311959350000776126606021746922916105426890045880680869622223077855245167361096658271852226898988334320420430736597421015729183218653228585773637585846217990747234840818657975330053138674152495741832987936723864110389811750434250224600715270533195104579268257757024037836782364175939427832189870574123137344623933185721496274977292548851411540992461530818729664935892972812638763497946804071707125425564936412858260566575773403636450991888896404755626158094571214888549369858723831804205472183393851602861989110557060105644864432383290543281319382751003107597250300291830772833955982324781685717514041413615291631074368145672597230060471533227466876415484938696225268580736044126497167687196086086776811475019388447114738789626870441240928292983454078755425669425233994350656928537191405664416931045359254993492521343567138852444740191869836161909450381697476749790902374304729256662582978964399357892103855023768972366320052300135203136640982682267735928097609202310418329073297642230038329719622545198800184351807827378462955190927554448174979031523974147919333975036932221583644916006940454198724580624412266637166799539245569741233837351315628633755189491500631642254328193813303467892318684245955219916870563290828911606228900029165918360618347584272265077949564706772231922551707838421391274154176113513463615612842742783406036752182338987315313394338497197622361253648527629793507170597821667978017800897685956143485558424778068224157336126960301588922282278795197298353460813642033288110394179677096385467494516977536198894698967696052040360027783169868478182982587504940049826087192225651061906252925160211072239889827968477971466124770652420479113088310040689486444251572494272852770990172321436082357286438361968018785512924529335858711956397481228746811675707537154206944258756465752837296506188830954442341993265887842037117193239488284104589227726220169890345940318790619904932130922514777820345483916597832866388627174509636426065847500057266148152517249701025807731743128587600912214832066826317087815335806450011474557776130128395499302731349000848001029386201977765054008268249068921184678373938759037432258814043992203543691833101982344584206503505309851540592277298395422697492620495722194577251300213793614727941158544253708828509141521949097220699318649277390127221629521530969498218719892617421301180598885590120903699693074403552309830643018179529704880002314274605090772229109239944485291507692089902789992142220392007501470924955472719325170970356106446231520433888177165978491014354012548275550765784078724876755087144540837800103952847187810452984909988500342899247898789310100786048319553865937259833453563279230197028902864294039902550260254166810776800906176594532020002664848196270229910597942373318344541230348242379474198021237827077214271675373270416929748582309733287368295009893431310369854919876379332789422965569254885496066356566565093621115221247293656129628257115576965050408591117507183267501381793655856918558084870642263262497043272980506917588470528329416107430317733565020444380629382882796223510048728199929935694667997767308398779520845968023070408503790181668133466216371172198814082696320626999049974433365749296817787640388095274363373415501175359797233643643537360480019901202762597341636009954383754676808680877479907218682539626284993088158548758271127754929501554778445296708857194872326215379838507445625156740303916128183489734947121977800996994834838206669868848628894269075358253317141241188484762119704022940556373267767333527061074226796224770925770630199992150767473531138886149446935155859451783748788275060154084632435000934544468206920888648719260628641223149733165004546864738683995430509300812613185590307712224294188664270243994169610226692190516738589474495045481700495396722788220130443663853531804306722476856239177379273897182631235230649668345860115861413875239425390006705970548009437881322138792721002700498188821223085505801259523892408403371072839320967273622192149925012645075248181553588636969205898560729774541692394863634003491457228772838374182093455355621919429973709074466414390145501851785796345311553104411317662528355461255537136325122462907350982643114171619000866314646737360673586528669696928621469865692236694752298376447618951588311612681003850989537255736015437559015135992458025762171958380946300097356798621104751548695399747546413838379775522154484084206400600866047749899188094928292442358988327990626040246280893713940096205611380046487842054882085832810009055974063136713971505118821124777892378764519351981499773610541714884327229933771117493367515519277554717111548619898513663717829928953997450467120775920122148199113307054723530377756980809481386187829915934228276315423527747966845709727196363374483856056405970186168965552604611425801939947576681514266935956913570146897985270665856477112575253681840715360742772431749521244199075125405364291935940480056005363308653446425709000345160950006131981832921208182129583786966715014262810692897023956530234200679732943451744942807952172511942984408165229648947753027630641505278989966952919220174879764686323408925802536865564086637108054864655313871061329086200731639430652556983258127151178324281279507346342890682565793104704879610407154352878341888294702541268597581152756218754449197734505565819710967590506537371739984966414717871718029837149767083028781250097976906293102327766521995017811644512315806449645370441630421474342806038700294189469465118563650041663999896507458291311566250547838519552189682205921393027519762567531468111943287047796344536191551849175478754705623525046445068689912750403672399678481640233121799339678576727307831510214750602416320492968676891957670392570242307531526667940432906040919575705791856939606280944948583314436151145608891605664152420378054872906552610435293846940378742223766870427942114275264963634779177839540231115093729227175952303985621110104883185034072761203654113022609398590088146224551320747070794818672340037106290214855226024626000505137183674739292194181945848534777667385013570004322498792596233201979862966069958985808504442742776203285732993346397773458437673760932527108550995569635905766696930876015841800094694950507027426143621034933611961979209788781087092434626490178004690227868733544450953363857120929428232494644019190651070297334821348692619641095622549176295388329080399239470714148894580594603084658807427697532463081849709096303347763381883353950839436589937684079983795858774669622016237621725368201226824235931161767468424659301091508076997627231184823836622236013478197715618398784057703108070786970233849258918028087690962801611497563369704496471539496830019528191617528542527308488205255675926699207662877424882203774260196310832494634275715377101269250121094893340080629620259706320546549950769237566503395385901845375760049088996001479021514555309164658352622222335784225690692461549007457390719683565615275876298360140403306919742925660880080755672272926583646605293323788219285924333776067815702903032257356454668771487496113989255469980761965734957016444349650214886955660547763896516928977556834493247412667470029907551971882044056994877819632610673490907570981403075085246164483976579422257784976851798620543555706926791508224971967720420430718545588761790049011125369855324176999549511466918116045739217132481514009723100577229067295126122453374702035558267940015577261334947561368966575943704285596235242156628483853297211077377482294535988866356776305390093506691999948962954622808959946052598930906933226345729230522120644344529388021964014737093394245549967732888532935694123631522929341921568329286305738017998247723079982500614646403550120213653076648076679167833100857248862752919982220684813317134153061583260360246575892438238244039929641413102134540445863456948058603374080124941823731229652031684494256390637609410898413153425220086946730501181329153744711533512527251369210689824012314622678469496172114098780121722508900041641740393470829605563316256931926619833748184754441041401959421693086393144786258773893038967785448067896406796202189967220150408540906364898824126842449343154373686924348920453111267368690055005583303762987871098367426826504480106664293870399955238005849374810415533187381909065572955050447861905209721584359426305056618249795808743243726557156108692313610326433758798224360956829539925942819689139173522480707063588785114317966635884531158087903471732453953561508233802982620208348645678820863835109901357449563934586566590449866596918583428441213483579219618174998079622083421813431326190944564473345935071582047030230824493376214553388060997682819767247209924692144466770679040447882884220860028306022598860157689427928955473146071614663381442091809879220927881543641502853335441233634879826995103066152067272557390493534898660158314976855620017052234920702031257043163346081294849365682624625206014927478457115173620854605525067479996606211439993366322444263392984544233103928946044024215429091284944705480588254424298173140656414185681360876015023659505799325447310211937860205151386414335670468705857171423304682735732943214005995636473005260021717263198577140712462658401976774084323115031288372094657962153370821893555341730823987653462922437724947899422419251648787447702029237718427123772685124814103612722314182020406482430415432645548994441432154779797971293080892163258932687331709242588927938141993246105322090785955834302741836423123355009356039564120753143378925873092428335634051502388580886005611623611751892369293020152856429776787385515893592272228323501494779063763786892457664767455148013907440845682424306537433759939241251400772997807824002703443219589462498011992427127384869304745285941756699169117055893599383064052212860612825941866042057653096404119921726223561841813042056465081840798882567662337324108947259719098816735336881169042541992655633024488280563899677933351085206245072138701913425140152888001696488075010190080610749478581798087598624858354690550922171945328471469450279392771050841252125415632691081352089698248138002951866650298437327272195532590838868418968507531880208690801416188672057087855780011900255637166140933963166775162776774466874460179036500119104146816212704359795456128638555244326557935226187889569489527419322627614077704217514661831988822960208552224081015754726514068621596917088190526339610926342216137669801480587580130148682019018303269351057074777933342510842255433786124911836671712385920580076857433221498370778671113478599513353112217838065566057814287145900210841103096063724113554914491413815592368628812522454388575600702264261682013056421839535995862602011583667847917749462453131260642510436872645420192003360145831379621754277324502771296253498843200452264554317994399185880709813349555836222341915937830035010230507410944430698769433076053469985845261717109832946332186412725903178612328026398892987740964856768988094536624470439645332047513554378784901114702054309878355809517837183698755407376682496207186024548025126361783225080016064592272341761361583365928001379605375671117319296095871022923756039462817265053050744073145603997665992279868600915820658038951358354316514170397619253982095743240630219123429698978375304993529496260622292387943006773972303276977482501505123386929254514230981850057807250712829007514420465480846351785480963474230875920745332492115116410197005503266495036852574184588012803712970573300185005057567277356834312291591850255560412964291410676061854969761426979996950103008461331809816643545760900894718031082614144853276096500062677079104974756144634805881065515974007823689741910308556805557994907597287261271810679643933894624873536562635339989731117005805825317014762191464439355674006578248637206580478465116288201987993434298815778127485254736807764073809991105874903542378927109319730181106186168269302274527462115896850015311945009334243719794841261399196328810102245269772888374523157668775512142225225746045911236200954347821248467467532433043031926539786730183051795182883662827745889517846132308239227800231735272603115204656938010910593579194714403675296391077154463474554703514426555903855330955060492763716994958133388355887353627574733810961011838634136029878349251735327424792885529731616054405858231919871690635265389466782930122162031005274963537105344198981835313963696076711145191274769195077013285301774536537592222342696029884867322332157349224699212903099230181154603870694508742599824630898881089696336586828365334089933818136426415376188186870682841883799884372175736680819907759254370610963554534000813123211721746425691456470977590720809395219425216355213135254255546813861490778134005909424940955477776309578590427473514792892974548129319006055737653435866358452426713127717423134420892633482525721563278336219297789669017567400973162965863083954978630443156646810358425239908638907539058890735745711156464810357057523379266321709223682914356591682140435602852334055808063556262914981255759871136948177963240344909163816110554432355191465719546108503394246188608935635796784156175392358680686062694886600034213989955944434659353122561769683910529755528270607682806425443097218526570785184569146881150552794512132749150052553665431379165468002062903126665708542694861226937668858188465820754027660417777773041561558406392617845206962447052724044463197975607867637528498483426842300868522050238372179480304205444780405370736805980081472331938023917263748074704722275695204929794097417059184036360322983929377002151626164017710725850607563432555423091461912607164479237317453354851023685059808437459337282167793473831671914868112633715421551333965308411755872273783920388159441513471315322076994124176608054658933768389434591528699016226262910574307531737636355391001885143273203830383476698100505425132629920650052686344729469063302288577377650804653283592464541816145380083817136593314424372635232258705072476628098322487883952658706907333396670735211309997030668249052309602636619114540113118549186926595329473373432047427689120898504873579196435203272700680123662600394224268725028040682395676283165579372960192069214392151668475605356161108523053965551257849810913931750250131384529182483065963704084661637195409196944238577657852989771308127346529409964175861110362501022342337274954440847123861802309786355607783506000130589311669646070066059765725063451182936487697476550296431826463134114540389909393850746855824035260497305194924883123404271615740151035175186365629715750995430029716856591142485121507889725857400202442690068003485686315816568510501649398623058625030971193616434043029442355879278848991569924194770316696468151677782675588808422429017022125970385900144514063379384639172740366932167431360150040487935492543588010401481262342732666719767417448941241465344944741365065645365983145229458765484977865660242775330748866976376746835257565563637738444714912064680809863056519864335007000420468725213988920723886780456109553633627941381950825386286448298575689685471291859770152121272574914860133338151097829565594912993290768197500583451541730328943946589522489697093432154630831089650330726808227780378596443282254133069687779200362252532937556441694516535979660746048141747771172681175491944429621436695407807291368715588484222456561327214945086154252693153911394906244057807142145075183737375700978531921413584464377122342356617643064854434026686160713641604029456122135241735393935001849227762522275817534260621894855693926305316014756439691503541309266095179601196547239057032052665737241674352203200711740226043834726705338054541845293908484555653965907546854164113102158481081211587833364567405281515780457763178137836516367922568143666628091602048085948131345483158972909453246570335011041631332928094684666211403407340429101905393392066448067084703929413785538504559571197919477095295312648438908708775425848841663091075825834954041565752799375617266460449240001237756470022786055818872263753888030409043476076697442189933342805026231663146069185532457360996636038283329217753145556625892821666299452850361685322542588222615554936283811368672795178952418232880197045519402126588802002956776485643930673272937917627657358502981457287644660512095903679241180772308186566421738038864721768171311050090993031635104627751269245454999534873684409843692791474959156230714122368161306498290571520058732778422550096859472255260502016672973991150574365854641458997366558868923743983034823961408331747830776189326952728803899094748240352484944952238604471380504611040883824558962650573193855341775125924695263303446075930515283882921486519627239422293627671659826794641486107786083826988483766250089112904252593005887539045649646521420736815924419858720224272917173810547679123239737156202894215391823103513763916749737633499928719568804053244895864197253335294319827419910410826972371850948770934964520666413197335243828231001910198124979636434966146969529855785266294139103634085081630962943483884050483900283937173103887692866437756250753513220449218568589055907913084850781162456316039718850353391963787981171818209722462319457120349090024787330322352525075318946837173191384191322114878925759620053100484220959748994218227968294095732167136583993393347699843925023811908858737630039489728421975428907706420783496455270659909190741415796171889830721833183452516045892984026995672416376101660055267744766448813738708862457611065754420795888037193067840520565201019606096152128875256648745742111503443243723185662625554507648535815169628472065553654598263647692661535722725241226892404170027619488662348259115936744230468189396058916082423492099020811022173957793472903787366732663237339955409294533609670424896624191971140553576788831815826182438926482138570518918951244074626419266994680315853920625663703215101260334207173385530610658356544618112873160689320188433340335040992763532733567569657878376340431464630203513222880483340028000748866007541157258150740142091920772852054422760511344891485659244149682082029454744360470632189223712312380366023720721933025241131193762675091456489590445762112612381591345495904831131284409217569315122139063047606392454468971096821982563444059801733976423711913273829255554954054536722968815807842403693897077167193913374418132991022570749983611164777533557491845546726284864188461780602115041885286552986750395687957645579757119737506709072187749203149422192055389682966867636032009057793212675421056404832245546477047115009166034486577889449710729309032098750477156355767807587840016321123334242815256045689672381356879477445336811836737439002570800988373556227343274433145153383834072302068574760340532615384548361089931446265871315292993857088544182959875001816852357993220575690976778278458677316002088608359396139219917446832179324349788430529799620885290666387730505329587229329472033962247370826804643026732162952677954785952480374786974660135011906976178547047889261085888799105179079177471937275209401596273126723308542058384548620741380518525415367445764643781804292096967197001378900593414838727121124820369655200521872433136410547879428280584544441115483826638381874231912968543919526562386371753074146021044606373014040662430925199739282770480955539748474140526504069297431617293142526006794989732557040141023712624573108375330432690694574499174333894873060285287403320347594577968031270086770377901187058270351179833644545497696868853284230275839542253030498453213212581085967729751265562258941997353666629296179197125482054187093366394625032045502900731584364605561470237506724152888123253305733032721206729854820826933921938190641632924429584135445458495986472845481993313953222665865607503512257445250996625617231790307617152673096811229294463181892449367409388353997044393875851973186678351463178733355424862362277383535492984034730909544073630463050876066285691280967298418224965288184882438034111770101981968318145142023174085568624427588830514746541771402314261769383264427510069940173636667091754380208749079754014610698312862308516195244169947393628229994744175923088321625197196266175517051112803601335238470622531776976274264601106867950556989477060194273258733823425797123227116038248667696552552373826672690310962012100396292591674179640456111331887463043618944284580487342529903245134136969736358369497201539926279730725335828739684426876856927828057714938841023915845579817513909419576282445371225197502307693970536483071209267447523028957224326132907244877683682243130006820682825410058381477631508113879249367949034296870659828403132214089800003401115962447605981992286794502826820507130914601523324547351330323601494768244718394399910720796140307889395448813026070712070144084840823782958944255769000869072093836400190228069144620867074791873540157302658863377375206182008887408303613197586897501188464001331797565052104901707970299181480725411871580249971271478817153067200653476912317491906179652006806500826064513810208539747346680956900789237325760735034192114398590720140772490095407567775264128207406994947022593946943362224522301288030170314340933034381462139288220386885065204350594076823456573915807532204062038452148369893983179182376107464529809973072583579044801035617940870441509405755686127610089615312393218575168381380952891363605410348386633013893442160657646581049035850808615099996379904319457542779285399486026930242079688931066384613930527695555171944162125458629060747752432204296462912460182141598071957743363203881833411812584324664136892335102304469741887569931167840394831789213367581368153576230545251995273656726976602620193507461075983521396449443822810132087810064448598603030915482341477701319919236747481691375627063511831685400476113591199361608749183100171691046760631651999600422319731787989102058770542086493382681775870963013000020728347419743298735666700304199247884609479861139575315178833106328344281432464226600743831344516454089344123745853405691026199953419135496473500561707078749137347108221659627076382383633235856409622429128619860690720445537087357236279458310737570379829164081733007645343016801003577345677841007625776682651974028097129447000059531233705125579476782130038791575694570128535999324946763248809863638446087299554185814248315985725385924117284488143401645386381415785931008089368494925231816868030661564966443395874019644338488749604130567508245907402359949954938240314437730166077546966512170880630795093114071617627157103144930632090855235321562933053193585489319928530115192978640182143398885262477774494044856018280489145268790542015454410307805447962252111490250329414692526490421827159492431453177258351905916252819801430565936191949525118055934153601263999971417999816672571256853605386705370582006525247124085482135437510808202617671232858075370310335631847154224459862065019259682404954134733947750037737411925342493243604539308173696483858336868386156474331785983612898777467713582625380550722898883079546877595616717250462382188136181603848744739434951658686054290489518226878719149092120273432621607958084713357632099338195898647694152143567504659296147902289892632843766083706637299882766763631991929152635351055721526333365255078679714941679940361431688060428728486052965576136410071622744887279162677473740590012942478775746764030711602751196674935140014599292211946878674998489083682870713826351016475536625744834865688226417345338319092560767897788024016102146292591392120245406384179761187442411646023028733366929457652217542906108333109797698685296270743625414116433026445612883985215377891255385774720382508293584652527851736796280733703493102490826313815401264739836988364800055576007167689831543532591719981734864101272984720958308683846514258973642558961467606961873105538784920405424980913673255002675972130986281938504260577330607007067576549239747814921079912738743726180630042930667131268051512698855982342198687301090041436252542820508006013817549656372751822561007675956012916715125793366958255013884448031277677191994801027852521879010322906133278576225654157017665479492993106326937798342216246343492036629038615984181555888665481319685628533186552399832752254206507027825505996640868172773983418837815058601758177053034967305133076480515373198718962526534525629121912669459098917327288437119923011806173352956370040491547017724192803487200076712618494406931100089868254865218457060662709694517862014314451719604619879595018745173496638337906372662709400203995933662149392601610771579633823369203889072441621136483292290441156120543545619643768918246273226813613303238370257972123561518845413779684498622126162617685118225032785685583658396629597843633794049549102359235323174055951739204492507479237676750562208513752162699593215693122097487281266180218926009666514824181950785464558762678376752028380009300547039965154351115629668463604136339278401473353655436795530393229910392603156461426333749978776254919144336006432403745900789765130061665287041881921374331732546109628033414430957536322098335400202490372729184642318110520366384048974095514840472360175583148813206055039970586408171107588178337135021129195958137380210530231076506104085715424714651186702376689772406007625625801698829622600230031912700741452688647902493798726337346618886566519255296920859728792311346308687026166959026782144910239839897188173237586644696060179848015708963757373086136609195793338857042278762879633092078740172480466001122304435945150791840901304001557993611424830838600562661966243982505464831624864834934790050981310034677811625078782960229101252541473483700510290543329635837006706416103242070235516339378820047377215431419591150493378282873233655056717430249691137611656201881516197349831757390724966406139414742483551899392012722834318100690748488971087320909205724846624024390470701680220282873513823277173106581157058007988539911426131130129106571780542537231834531767691885513223647585141004794073329054699787548403830803256456063399044119511037718460384268927901354347944125724770246157455761271165251444699397152683789099141954182558107354225884824071272050805856224469211127895406634201517862408593260463530807973655725293615672555006747951438164460656880458975311040182892386503701991776328335281901466327156763097860220061197547621814714088854761015552055754105581262798556723274258433530100844405278360493688594930358379561301968281778243724771857427871930183600788933265367139464963390197199594291858060341217699610452922649682653481094916332107963379612611485505373897453378670628942462423027784308841805348275593277084481156940228060448362835348525533274215152766873300818306467694560422740020346215014066666363981540644224398310668446035038599044296940485889814519707901481494087428677145681300158331607200501265569101225235064853573033408508065301256751053283192991654791805100455492174929137647861701041929851405056643308423800543260453487487557320200283512706454100870308927424456919437299121557532721058087566060698367999392525545654599888088192915413399862644576888338641360023456419204277741300937988949396234700732566886900987603321295289130520353584351579064308895259812218039321117162538610543662144093763015924156348663143078905538551175185860154119755706245747176184153512959167877522506354087842359229787905230137417434113641972438073849735396450413678700803386334434741237872233485777579604645219681029828798535793473313754506789151317091109584461965138364431714817356221376133933243914847421584064556939402010228460281599384069284200288482222135392775037640274963891253695046045353522584242571236979770145613263087969178032370257303011364997424053546592868473444160749497754112338532989605607418635446661178828537673422735039408988354646428089123713617192661940114494489007820963124925306963643196366131424467977860014778210217355347940975006562832210837408360515011791787863748682870134566507225362835530164176956689287876748853733494381660638199748382728893264980711282148562044228053700309808809251679887867688681224607173647347124862717357395985579162824299184777770185473292334638519105695006350074907629856155310048642520366530395106368237928515117134993843677595776765765076531687542221306819750726283506254596953316892788674839439374941878778921579201642120405254091618720032201692442899850501188552020868979054871442322787475855912795105972822134458055061525888769446037056139087998398898132922229609603216643122870190872742039048385785035461224587490708092644595966257299455436820815872295003498503931769572079979019524061971494299778928096693301176202263454287604632400974818749471641341704007239783870803104466306332328870653408959822367261053833952523265961034570713246194317121551919145439770469970305435295185543756936672788756889851651106159856659843234190476222751338867393631044525803101312096374588501086670756587838727209397597387533223043651621470731800846474132173682142786957185617985388681412681214179039561913996876965254919017732032749745451427483347486649259948804777652706046960175260780937111364157248273975185890204528124580297981109586772984624047947990756922014541030040076293343789767944806805949920970576792428316600429396674427170841611448291419129500878932153174884345686700573704363023186983103388468069694729588535802887312336736231745449779853236803714034521728358023086326908107153143994053706656308198155052865811048874154237430495913981991692225025376347846320655303926558356284897262992663950823448893395741241481276533981304332707842319029008378291836252272921270022692808342537201745248701909336832906564219109689670545343129572705662129504952529049068540820723341795032131182763258200833095553871920616140526337569427843806321354397099966718942014274963911723751726209424416815307839750529165387896197775489262997353865986655495091034161301997559451386146143765414329827570046318237346135326678993464403048767995898008215582701202569948010237125086675408972657456571685248038779446665185405793911684294815575069230246379537524177239897643012544211274384814536543000496571015562345453518683677563381589080612108714423905144288086042150442816659954386957656332923408771536326869251254387915147670461835490094656057861846982522486226211301169513266150117854817533250268318910051795706895496588253496936015823309145832335562711547962633735835823324981580014782535681594578149869247042667433688543138962241318166957682643518228018820258473004786415245485136715046205459029966808906368768685273742500423546729099068088419378214154867923560007008007995278492137571235024571815251909008003672676275908767708981817047602751078216843706201771291941172861481165690201191716232599665454162383202441565529838441232154401275258713489781532212530235067555006006334913535448838816788943808330083813555967921298440450199153310139508994158462095884252305933093321114421418969243530226138053991321752021515250605145427792763674936211731115986156925663682237219241442748963294410045083101255812612936785687448585010059265290124604574142637121654410201331915042450678380087106229317827218713386928509648619319249118269034282670713802333435798153952439774619214155574272908296218918168823538349389754729912418011322786452210787981720358243560456671140473967927929785116768472718623150230156192536129523528205841677814360301842364905154200358512093432284711041468962820403230673357691240738296666447885591797206750939400901302708440817785413464093684775850070894288612660344462256263014404888626224586977350350452406035703703331257498101276370080138606627422108834441729861576967043465899196263359078964281249203773725726413667891718263087152923077509101306460391576413771963879809188842600872012194776963113903811893007339817970407929666117462953150078499990434840066702962849191346320932018610011932952917854963512071987538512684455525004518171483311442300407667397406817019007536806687527870844568364507629059936400756051922342235076365987687897078598174819509210915717902046582617269616666284810868137565809004585604441994063830380145545102358008341258932351626815261230191182472284871295788917446114785043339336491923652259455828310739752740448454504757906202732722165580340693168940250351340786704981852236138736117672486530541431729572178923344449883433969897031154395226901051718096228056914323887462279554177614690885388209410046268496782102960982286516448654632203174396624024624540892549604527279253463091479501319109082497089469328381027016822024700970158408017133025691219691525458823839122619722769453867336867155943304707362987039080804566780373229915456097904095953182047081058945421091957725567477017575370629066512055441366102506249184170082888221368652883938618895891439500849735357305081772249692150546803601401591679027387243177716369113841837755404038829266714596108073184958106743116699143966623445042305834123634002990377117893955357902319730363000956659997179999496696668221804549476551317983106028784345303343012673973022787434421995953559139886218966206579287480879646092944351168060003655525039260254698970567151395287063197020914379696857960323689118157872050675806822573729062402211371463789486752399669721634239190145277101270614841780555779646020354957818680075891724328868674401000775719196816117320870302031221704276692335503981612021288593840778387995349856602223342068055219310333322164458517182833544366561989322885061083198585734972333334626822095148345857560238598745149718146376868973308747381954273142236789421962817460033374646219363130650477640903848977566430287180449736544225373387152952718136708279640545282692926167564926085574776534390655545712341920612718204006290796537344153673323237150465816046565619497211623401409101511160740507681924772078245654936566953199783216992586938820765550562882630001648600668341616004146905139198449014834670272687666034771852124974008797074799762052818820392938985735355276709052426171677477010816325124351953343805444326900296727102560094064567360075235365385811358382243000110298774566823237045487899457903224479462019164309765222932873537748343604188763350434231612446657539412674400122666524227195651547179617336237249417441983363740484048562127279130837357802717001182175052173161178295959042954640749180796149218833760035953313249028379516649134484634228800234773467723065781950084412192851549524474426946931936781848428210807979702086678974453128199306925558182274595748043700249569674671419544067112232366125712794473168308047849595256253896451605010729497622728741835078176920505469919011128564447807254901416516549150301984675295925504053478256340666871018388909597373479497399939465313470473254514812739346156209288498766043906685056616285798053529565637739063230368398153490982270759377015012540153289951722441501440734377429908739951575826806762898047442346477744371741760065834891792776759975499497400658816127520451276203526275818608450051201757783577159120954059942238211128328735241351579354477675360225188566524383018982627592400412751040433392166208605386803213105854147293514531037083011201929356132127196297534156867093985232363253650807056771550308890225327327051025007325752572121702702390456428814445689390825470433335252881101536215694613051051684113112739857413250219348308143619712506143538892836701581037068236649881809230106339164287804578435834178649228798265900275226431504708686782165372519988844713020051172671257725110656556635838370565882012841486132473041851755933546103168763184680966847156373331752085187590091597107481175446905643184739702252497467282168841711022264948700768829682078191525332569417453277241587759971279871973861019173466290896571965464075366785705538475409679587984789426323475012271976491229465537027145197574330498104849721196829886684571030461440313896354431570999346563157097610135732755059986070759218756787383257583402358696977518443669681679932676804501640721174891438002391262911471759328558367024540929542710562194190804767796861297191891873284386686982773863791882775211402571364042411510226810857968480676159338043161042864094901983913841099356438295548514619959663569328436882346820968097759670077061576362633151667913044669799479159258806807267697962935847751940855789387074469015426015864820848439179874595406229738546184269372981907649081422011678384185584461770373790629912334429980066297885766912896889093545286047920833278733835657800846605573648385246350191644054482662201604175461179341228965088925681941104383494662265244641085805841999796760541957000560170147896208428442751234346396740754813207583629178213044712320976002349779444533171094340893922222123021635355540641627229498334099570903861381458885206287742649165251056862837238719183866404178117370087318268698351291117929661588574379299818873137218623908663258818678448938327252745274747693319050493951408344669332478638996091443180086336445941002998398330112466739370483321312253098304488850985799282144993171012443173581865495821466255687559349419311506439980816025208759001694447980607623532543389317544899588569902856891122432655621078731819602677125945170211185255393879914456286731266153886038327091238172976734108306465034217371098900698836023801923560923272009117424467014384511666819651594498748157379018378894047838989948585114695694917716476796695350785046298813183566474505619402335773046781927773511226968438117884989584370835675225212063692061174221301056790139094777850775207352710560695091070350070773089091016669074345939463755459391565769859796998345806132485047156298634155113973970338252645121675786890540181326317046284944029653951047951949500294029372624809557810475351750379707273288664215389150170043142286812026270564013346322046553635437989546671891884138690781017286986746577322327511393449645196947208540697090179170884351300855514441639693186268851398180852627504385637238102215189332074171891081812484892674998491778128909553296758712298089773473722013283377517258379036365848178125033035568197159462736948995033866921159785698435153403059926155755079555679115766648247973362684111749308798937105452429655396374624182733101385304246730485089724826745846084183078283677850413220080139260142836603610062140058392940929299216386566770940085786560639128876835037547028521313197664079958406922657121212437008585124716955000773105419322670712056254055858648548689919717132532265246133202155645348049866075075677466238231162158772245453899727162220498957171809707732554066618342368200993287245631070958355748458437112734177660918339690997081798814179759560032033370805217380294086219182007302101512987968932416073642649966478859617322622250820654546060538401359205145508176216446362021670405453475098941866867422601468891382136363110410279304728444619265056338608215314552573781245776838824052030769716107869501864969864960419755663789319910843304120272325002732589601936977286270645547753294478005249929277177428684085458346281118384346356142828058352128665897250578182549550177184241609288379160583245512738465236368718628224577565239361794084237711435680566953442282760797365299875075758074614686249126466760732671115266429276289369877924153212187674270270479854523321231771182424639256664694875749562239590002109494396627077873209186304856451414513041290137835592970520327258283120518396199353659636073305723915430149143982268981478216581772790039843277411331878274460329593641483936137095548498389284795010117042863063178448179143353796656082676318417856393334047986522055147415477716246422109002103977496627813479967808482627141228973175503897139870657577928859535409901412642954185072172649095970734046894221970223766140248231941438751837094698127317353999972533929912911879218762847124681727167397742474691817168014442490632442508540493366777142445040855357973484621460162596892154633998627545521305696817576786260888106097592348183017056682667660773075195632815052531572672092159953067950952360381802407957570165926607672131341611830172106015753528822255728354937525051832741926380560757379703153105263418716750645862888303788376095563491306033179263532557627900238880115128612571983261291460604067420574818535333364123363680371476156430767837749823161311065855823042985192569407036680745840213508241433700650429601182955724716456228684757535656088988039315982870837359591917253164677522538227273596371619493471176049765546554237169883955419625084470103524182607734408401438972546618776416492622122039919586502753249499111185131428936830304486720335786408263158838993543924766688196568365684692927448393031171800737619128594104368837714462464933395446654749158306115779729980215552113410322575144598239015239790350743077607144150650724202389989025643592372859514371780512250883376060650561055412842906701347098485327724139361640506520502191551919343395349857131820750361492317843970944844854162648511565293070653911465471105723293074320572650149261841507884645978815491971243213344300911014823548333076405309205993965562836635270654007120038889058912684348919002148735212803961113719425504072030220575172576889918495209255669010109952209151800458623229177466776689798665068618756602590174125673402164589169857551703808725410875127398551631839513249340100601019946733632329445238710785094887022659776366741033074160307867755455217384519481916185822669064206682076190120991929827774127546280378594587568730806567017813640851959000041739032088749428484640203880389283156290159591564334147923816652375687246339223300030925837691050045430493447466649032661982998548697640668457861007631949001062160816842071924767779520003069238980626147025549850706830028521900976084195163112626624661443264503460204786726921449430159295345309968636690604176328502041234707299384916453321933358501531905223222251212910178270361524798324380533476527442063119668735303862307021376304982833881155749054573222288955704227863449706567450970198838571186367998677114266448267817523282552029815057799584511622545565584527672367204214773757956940822517846091008458832625396043868257897575896256476928015253414814234562286135084081628686553202430012279978415410063285575639971815933537490043955371853888232724691395466471542338355809996150397775703541418246065180702004279180032258765180249623758434651928966797883018557250866530016504535312544744032862670833610868815606638579236519619342487640354685716252741942912937673642253590698412603863473547184595072166013057530961604910291322516661261416694335661335181419509447322128259383373398910714272843457154031517839499264303635917813104338540337882150806279159423568989348991989042747089507963919897094101937930152231277013577924901564881688464429391042829269345638413973757049935188228766557166760878169060115758091620405604487048267182870653830116236371254105032223191809417043505721387796681842511592025962065384211475415985076734409376819307673283619346407340466104723381062003647825147299652399949875894513367742690278883786560859927892275090336166866403241207747128815897595257234604530096219500888129055741502037859451846003674717165570743269673150920091004346646382160394704514850061785219784300163514429202666333202202111564792602466218934219966104448230705932286142192716198133456147263326423585272498442236352759280317577290146680146276907558442293825994039320696156441232717885447388317861383975817648007305683558576382958449696388186559031999121421994856648500936639803017679026900456364524327686844758369640452283990472488102375721029735346324984424549847444330477736944614953435353971732794773595734086332109209121841262884244636361587746818434361469117579666160867301564792457090942807895031208614865238622110893743532886805764984573256039522453551736387017602148447430171368998585621791229663543779535775535746140850542376710277837833502169785293196220281110464846145170815410068358286760024650332929458820257566182985555345384630562214073260579232134727298576370398681539472111189705137100186217651425097301595113907360949758084253346592761194668025532331001047258911742642902423239885871289015241613720210642686564542858071283711082908021549670516471758728414716644104574944371375835700673348428781602908676586725467575406718408014446241786517724150447242310459392660868852517631132270509252242604227854588159243709926053144358741532783025475094101909698556591065190538954258142384453337437501296607339800132834882167751622108851861843975450463059090927403144575685465964265763285360809871488139709158827298655997724077154950992524840038351558985896545780337222471879746129894602898931657166639247896439787955836344952195389684097623977030295145205217739874334546128135518140104674759653724942991483896019351016480759615105573553594548591962790144386621578437951977457863834312424013499708157240680760401189397554444212319273857761752420741297127728513458391020032664291515190798249514582316117031362516156880731648328298855656930889183805785962620339421792576748208635020023555830946829263374759368248891114125220837271157296842189297917404157456582056017833288199131033925303183982989197937102091573963219562982270721715844210853871999226185498222731916908775516021681959197161103367454674938804215711915406441453188811311021031175789122313131110185725473498999733806420601987997250086931866642580227999619368469477281409253522787931654502397612062703399541961608824582700475879948207125152417651154884628446439683710833186642724093497881808511659179939727963466095688484282795170967609714961262281235001678401563034147785426672315099900865439498298578813080246509990903192688722147517199126727823006795117741606228360671083751548766979313127582805757631134386679495576704383023263295987212135085399432447244507256850593917275265034605050203406221913700877506553832154721549119856879735818856242991671895423109263671827076441553068878562480286435692713171948871610429600750994564173833582998522516404168270000436392463155783906078995814970102720675619295871028002044889746205064604463831389828474904452467127243671165690029851373743743035702167704592256085148348276123587289306426550223583499404464199206108841809069862256889101498646354242211166632250743109604043424255585151104100324736204664213135036536608831232811963079217185016765842618831682753111280764999827519821977880499014965742397583789118994338925426859243180091153499361316522954219880370386332164749078098297136748508293358280440620644169843013519672965668667378164365207900342412858428613818075834115405682295663248800940041790434537610299883014359712715457408092762508957595710189366734245605229785423328479741926662459154939684168809384295146987729747200989323204356995625981384277250779984206501690307094960138484417035340938010893771546816181068367697797167154843988868975665983392836251109531863191025715779129931100105036159781784083751056148168568852042873146619409316378013094474652631984480212324422580676230364779299929800125276153664850133594806078550449699901274269139330888905714634270358993851959672864992854716176386961143680964336444543868872807538749246243567594523075463476375210183075735416166659423346931779750653145822656787641626617887968054558705541159887654546421959320776334789462404611101830151585564422545868931551398434532965763239624241286292893820971994562689897634041763253854649665766187183577844507220649664320554962707199664633007438171284466431762169065768802758280586043571239754078686360026229540172852734291610585726739701436127023819016613198457972790316414689593738909721005405000150231113960814673787324280147359957600172799555708541525861475438728201661470734195540362897023198407848486061328865777390600316638877513020338122609176049092051697656827024892490886110269180740477637807736828055489335843423869685565423713163719875389619368240922097238855331447173056129974399080845412769397382377734617068564498134714172587873831898164817922637321228720372422502973880208667503396554680120212932175392883927232377223978202380792864633036867113965089885148955996274629365458237202521347567503173449483245941315438484835426487629289754703612270102946533606521845155652488014003793887587516481078364284813575087351316031301783437153509386452603001464535427584121026661537966862365606267310286366697898948733263260828747002001421718422550289230915074638743421095875315758662227690441734834151459827599610973125039569912601430974577157421807572238896493357167465441760098300013221604918008259542302870194047069512388512657711048293367436131764430620056643850529275808705667311674137934128508824057990522016575050199379119674344226458171498191536030915121162959967504744190091222083950218253285248534592902890851362463727079245876950260446458373064008834839145199624984320161908988248739478164693631937861867177582386980327086757562096870131265516320704194087085713593858149272467229999703155985792431867768367857325465437376430143743962519327571424704286204657640809509226404824107303902321572112270935479474064942512132367360324619887874932495489996387902495424396635556751453551492154088514272473005126729644583116097357366827075873709760490421023678949124110326038209196973155849854227548365467074034043278181976033053368976807607322857623921819357698317664092705820092357738881833502785634237044183536200404369565924622612783015611967022328143978168395336778741226376520261981330904401875884169882231059393659087446440177237322526221794125401324575512602413986276675528260791042556201615726929723529511082681483092214499815725110961488536828484931924490183226003509097034421597868032832627035877790301435882367916050597887094276687378443345965366596660584077126720282951132808975177459785835599246230755615265998197775576240350757830484587061133536363288199632424298916298149946791340794020510755973989160239052852517081996784496527645318385291466548613177486918157810597369768044481704328358216400150657473273990109507041277685367864786498372228122609278719765459497088952116096417156568930079177522870216190678098532857199631955087570387199517215119888099791281375406990743999834564139918660136457805624578727233356276786231496113572734225175162688588170725539831167734402763467106375309568263507354859034032372281560635326382128518809837400133759750101033857210827302300244209860547670681027073329889135344670435799823314646805961624292096554581226913935915185631040592082180472078667405972863525027263231823136269491018022081617505793196754747282802475126965238630385864971580257494754517030981324618664251822023820169664694595205609577347954031465976086811070037964628760618224982294884583003911246531920626370281393238997214395970040716626528089251411880521805670508301138129302950873296478916656090461487637391254214106927870884044579586531089008296884521075573715275981440344579759172426018239706260931685780334037717514200372262973219736410962665498735641475457946735388679444037173216424105663943592452218754312999123013563171962418342760526950998555189639169579467207103961029064482403686050446252594029493271297980010625692931387433597818853657609384893066640628166837634024926397019847753252107165316451443360473505607406264104260550235457516112336898651588351230862599343795606857878083283791609136681603490453120337157864824977159594292469620811602574493426445586402904552327299558989301564847764690285204279049030780700742746044362888647151473663263994828379699298117083084664315327640685869549640206208242914485374991756985021755427106354234764809153707241527339678974706686924961196657210734953099650558088356439380765471615850238629876141930681062938128896926130985148148568693743341746621148403085385261740288692173197489668961582015263486007725140442513306323138253269537236323552344534928627685156560853013882306856632594610375456824380575321033942502582200600974742506715530617006915362801627900081712699465241333145200865100850255403208732659443491503849828842695764397465737571704941772962564049049961964352576543045263697644891102495438122357505592509005367450001576309557148941063601004783909084862755983739559103898352507101222674623511337526854808984836591235387492428543996027105839050729059095491687039340524493403199664621158078680617441885271263834533285863258280364978414482776804012684205857613265161568865682615791557941456653195385177814577779284925904136472632427340003635902963042159044902215682093156564031989001496242203700515611807851608118822931512206482171572338162592830374366886968719871838105184535170827826113471309833542260223932205174743472136074775912349512655528407074349504886085193051343294695645931148222553081737485843875726089871258132763803453699187004513657461107019197677844285703750538021165352752730799859844380925070154116555771968233012839328566601308628857715866220194944217817887683458570773035624627093926865885323394263016176190785943609261285968899882667478687845490711910603113827205773719220179970497905752823448750659254968807497462555544943618839536066715527652442169180579659842017212157419069566489045532677514074379988368782718089643507628725728181839982424049504175133532452667133803772181477356578702191169757438742814776959273277361714556424844748272482231858098935252761414625256586739826453671522960533292650257508444240097497788473662888524950073325857826128183407430955622794183340052652513483971296884042317683327800982896962938689844860444895145761965109504989362752467821946266206528807565155725945675837301595387622656253381120183755438870944171948191777669857501055316198585788209178980982512141268232721591677246197589622377794909772782389604789740824516975321600223801621119051465433648427384266468255811478177328135314071315340918663000236900128905494496698361433485246981594055417469220045630198703044271196391056804451113818431551668419555090038242189214226722415674212649961439825633722732684605866396057900253268807193627194032854105137660213214729305283281272667017213887622760814898132938620040167963138385249131105619968886599566297733018129166500929385094176692649811459817587384049753299913307342706106903222413318992986939308777956584622505007281056866767352086828456010990171854393684662174366012863453752270025882619485186010250008898942827187851632025122669995592345349973025616465950897374606189032820334220771825701747576555586040819621808268022595317154741237766394221855356509948300091079998449449962397945874131949030442489825470508381382587263357361162372411874968329183861153409826167058906770650767299465689694160258811962108859949814725376750527527011111626480519302150650558303229544940823389003886965359365778200320193757561946955999463681774294982032883542656987126938147458073461050706496753144496706317803520193340974208033137553069092708077193970885953190038828838438591240817981345957288111637199651105845769979611790724403744645070787925840728631379307768199155129291436240843560366760857285146949383417359998150701014712181929192336862894342743427369091579626440533897722581658542734515138315975937684295960229537395487118101367685201065159988837448279956005711764113976916128862175012963334116351753994398407866717826216510584876722643694412302195013274821599707799680425006013182950216651608723491353568510244960348013507310239815533503154264480966168660651299189615377328695100987852246099410437151364986256150320950788036037511957376877238591584731363432610111384241848848735596596370459999015683997291146262125046777451579200055471446969453422273236145227538541093055209866784815804180975591320254745627847435101468273192585475962558929344781140082777219723939273098081476867991733457637908622532111810300726008911834649078537639802218953584768689552311052498006286313051776602394240152808422208790067493101817845051303083619217190972036030899162271525420421676413378289288762809483018294237860790645327405487947359512042764825946738111701071488449187387435364149228259449000398075124696437721293575948821309172798227968056273033478745265001390518514099130439417618592547781127675278680743317020218990980799825416746683204452455121150379661199014055401649919969258440802245862154412391072462388703982448105285529303014255996115717141154716038404005775545578509375452035483398370753176340240393320750699170197351665393805486225028909678766349265896365779910717777941027120538528401042068985503147216806501295980411616786126879928153286452384437444957828835012175683044321430547628600572325640118227823502035590197654119800150835978999514925177650652828131030533852371143022615445300306766772250596860650042990815527813473871352420756508940081523261294387634466800070775016886239126299580300132682909489814387909584694281357998122568962698871662260590817511335352549960154675963161897446020371415590122875879311389666959430657397728500498505916646639328906325877294622908282588378943623099552540408194433283583108394925633769947457328135300414225313304933924433177571310258671002774407844071795984279585404992975659921743926514472943915122422057464498882283998454207954008736167347286356085869194590403755291196709132436091027048247760437445059959677623087387503406372961069477412292498716834741993696287882870044824012347995907775822672407983861900313374139427796312679172049836962209859632934186170901219385201973011448776018712677756260434132499826918787908216081182394280434614279589660143688276740492694160821606443354852367134881859395302081977057608267706117626814487387976030078516220055558004294893792565109896699969216849371520895638029467450045021602208872446037416573993087342208732449612496446636996185703806036267459990865397417013934610577861496926326569974617280646388277035057319476378384179232185626720760790428138506226140064317995829193288892946553050494584943715538804730392302611843432548071365994156055357093711650388287166173292250556374837899924492480214068070149246293082402404426491973120849032077860772858867588715598612440811642484503203082387619595291621989646885948836030486556432741539211600203414736123614460206691194958369796144479404757957766355483804089445664310034287443255424232302503623114353889927685807765358372651207550144131523672475340835499257039383425303643926750666918117346632989207501214003857597461378226898301196014916711583896442316177032480055197000594572905605284401495585701242489277033318975876626250626241282046800726182873952187894966861244096732458258103822041975922226172200830028477265292336245673369095294430665036014322838880212541366746798865615714735843187293853715089808076030583107882576993013429342141171709175585338328772194629806480655342546065736370802423618656727708209410307874710798773657744242732279355456318204137401573953581267165093230721231495306792732975978564144132049128273464099784932777852963210581329613869224301747834146866263667559440922310871293268343499567058244606756782337629701632459746560553889119719688926485448228016445913545606609656626262513590739513268627261567750788652233493401758797691803667465223240690731203003437278066824763016600105094782081778508358426052948522756316399635607751903250794920577047295153006347365917947011164945009609961035053840692652530792601856409938337160691730049753564315627837059378437701590216988415558962183004075227198096084716012476605811433717341203077743422551190218912893544017277099189915649915820687967605487942995606024838564641312115839929525750533305035557068799910843415205337243220090422563469811096304773299535866733393168968297692967430144826082552514187278398972018777248233489303207883792515077875042763119018022299037146639721569382756967257208182110647290569679601575526752193624715058674959535104768599530971880007109070798174382291165231624800387648072979013353027231999405740770285538441731608996819145525585707230440178800368070106797046393718525047605757850811121312209318726340323595717217244293395305084896693032314703564650911873039436569959539972745385582723448735419238403514408946618636882962744298293827596866643879959501176023264562756045228668851469722334317305220005520345471754673225373738978604062217228305954777767850371796586165106714996123100716311276259907206023700419594835949304656311012098238447100590729777779779865542403568122519828763334220645428142228232260004141998007677164096169042579138368800620374361919596912989326561928390848123836070472440487322106038078346402195837136100910330298688332473151795702193283059303156501354390330323036714993483640551043721855577608854785226176282050900180058253943813493074566034015490428194025514623201921582038411101269998515080818027960359875623502114758243194920993537694124564433485907290124769710018990962170592192727510578595158528655608491772814532520382650335235945414503841471314559501021648470817727207038350039590954976463593919768433429666714557384703098523826189282999074598320756393579144278312761964729062802178068614906778388009352684999443652395844893704879822331218998908376090003151097896780020000572113987865401391606177812064478102678446881829065420967136497754317589365509394148462179575272964432202399368614747900993369764356453716916587413583410503699957761984072519794091204198371863283370157058626909267601288844471061122116789150761370763720989342365003548479355972154645885613697947378709161100997553554010783351872164223166970432862652620284369701214921752605649597405876908288706830125210809463116250755098636263653629994240755086487508780426920164824485968058089715827262590718048582500080882748305722568525560123375639531008317724002236533951768496181713436232935440209747631067325892404072932461765770796817304398378006579736455126684551965657163894260098257324444925378104253774464755912742228188252928080736069489609573965782022628313943174626809539767059727427646084748220482715170106306661591983577228239522550868933887939172539737648959362401305763343916613196194984598270826336970647876489282099493160528155787405421727168368825233400078171646460761085745851436000675100356172637342920198955443222975624055592193213329891452466840494098196177293748571756663893072784487834490879506477231078635418915151921901668444218353380933165337792462424246446574006035621722545786441892900839072754234542151227133582645363691504906744183605677683792207683060136744992231789693696231252784339198257580659029308688461162091922329452980337954354244893762876652577463900336944380940113892507160272164843805339808827803710856434792121142863244641663232812864766242175214722219693223161956844412166060108628744909558208433338630575241343496553461707682224109519773158431811230147478885965668510401835448505307616648401287376545181608350877021341957787218047366592416206393664878950834591096277976295368812157421581889947241980793825450334816019167072165748409615406487243103247411200817627489992688100765779604177811651952855806104827914583273997866306943562475110059869952164457587686746065495562400817987588048679228585532402235794023711952673207180286333615296681242612232348873042728509398937651255513456099892289939133004362749995910316127236405055630614503959263926807337972934513541705264085559414525421491118771177641820057882106833902671013586576185470698158192639530760100376808041744451358156495392634009556185754318940540301752889711663128297713200981340982700758910884904036935946603204723533427098166322252835981113293422870562671860833569041023884828178775453382588617459171686573822395901070150325181610448169989290301490231415108358111757766498158539748458057325536019354848815178699418806584883289753756347943688750335106706721389152080903030651276856868234671431841734483918831052639802660655605705850794050500746060938078803780240612094505425319298605342416958123881156674983473937114783821482073568705248479286131317673780005162991614790437981161468498152612881769875343367051059586105046867715469693232732071223158392338086338608633060898387226375402918410775944385163180363038550894983673957313979038461877730596946943483222796749455553244763950780806954071272538399544334938074689338145752488996242391145888392507145868046613018081039486338548470551301900169305023454940235919948170850901272385985949588174880868378665022094738028884045936793941786438056759491444256348071586633163265824553254796089855048610010918650052745398414958429125952616561006644920327975078179275942574464286576578631237811933853943984468602613156277931768527200429251726992215794158366510936488011690660749711402859729484385446541028272568032458434885634882234833608479333650368963920829723126816796872665888930294038507190549078591312335702785584699694431182132638218469974365082286334144318433878195582037371631929225444062594814409853534213380888825957288539357722556269245019627015785807243579380853872662309256449328543403643221306556371481320932618925250071911929562143974763861755734321924390791165616289943196969480329897312182596352529904155368538927403073353759099579447295436444743384223779140762162755621041079846012455836254721239712537795811619044307467756639178048585783780740868963857096520543516750259734085456956069045987747542684480847360117902278558806195787085166312811819923160029325321809639492052364972196866082088923126184590368794079262590756268420478488745423339918565458480086800268192356951438345377951745218859876658988309498881801080324893021244565599068248453559030820501234418497156482250544116620088899536362305597601413183034912669023194213619014692275624004017240245986197656491282199543093778514485029253210338258793476862965756510226725489800983924631204553620256735588921191260148438441299979718760761697014219189543344305418904779419026745427252559179251872692581591753345961007061907182571136468120698588220601513588262408249721566430450416760764745901804890120953472468387219974719992771704826338750353439886144391769809928351316856721244299311683943826188284235002304930156429894220370263432307877177358595555201889942782011048716698878203185854409157579799339233165824179693860148754421721818036035684162475401357781155533870279428251789373306917305121204630617924943558911681797064230143103781046208873420507919117651988914214084183610391234557279268366495313865179524129387498867259671427267654914668355136207489942954073042902421681151612726792969097120735879194004857819514884499231519655071561192421743035636352217154952385318271932507994669428258377772752904649345987168618319295569391030946019510510407390629372863381393497265710566735618821630154612611448239716415599328656867621363372780767093879582899217376169757295549914481222285183024523115297275221013745558747572678735050149301815573766146260795335254757580666669837813223820890177605940408777809749156102698190811694135512562367560772585451694685640581408213359717621796657241914486878698840602267207676754462294218787622771833516639129602812942236223060260188512416844503802058162192013637934782035179226247240777763002488576340530180098649579404587985396758013085894933141571672558362997354332896516996139087211792754407582324237998210141101850513522796495031249369891143351183040446968560651031830310334228779631097059419662004162243598446984423683128436130082236715483181642464039440095655456408786602236791253541572332529268155654661130665659027551300904468265129866795432571155282647362357439399951758813886388999315148666680932770642134603267636853302079171983256938706973062739880346265822219928816265243031556237846436974751048147307925019302204089685550630022290561676366864998630366576759572683706186160899415763334352478516371552062823200592404424592895124297119050527561048960041280906566215648355127275137805481066281904137696280009489892326338736871058868858398209107067626958490774249762457840603243705799127174271851911344180230920535004163114759166724009246228931198124427711374142185286355664505931778826604427084695245752239326956917889580240918196956217530070418140813422922311945859365394129836840972647298498834587083291136933057854674968511652216491293612055196358119883593856122346316110029702945593004925391670761520767048571286968479929434447278390240952194149393564774895741099253593409604543490007255131659215716705808952515734528945841120540518501876648372697436923591900261766395472274509190126697836457583413256162857872597441420349670114267366597648725606682990746044192227633036409632248338817492794470822637319113416494049613327037085441783505210270655202161285001140499568192709420295440443424559222498765034857339131178283166516540797047252670124999821169681741802635654857610636268313918978361855827144194284724747072944890492445087176890353931934829567979641244613231992020072644418890568153555122189786422983675427233232412274646692789744962685999760872413667078793802077611516922115889346595081248637030565809535655420775432806127738739429119197036569343356122183512861303959467948360844221708817609281160544605715331543691301653049303260787654990929103673106423042385643769298448235943297242837664227100046183043046618062730433653656399384172180520264805100475870141506739371726816933807206442038666503641408370300415670120087050645339762072202053321214524523697724624680716176287816199517323624025944604145408991954618791875459278284658019923894192007417206527150637045699322868528334477977184477951853453389703822420213431538637286616920243919386309635720758821322334387473544506982394574999043804253530515400763341414373979170781227375116973920044808507117167455713483731905942437990794777939655193404180502281326376928425773488706010781314637856596847976118703367000591076651858731190923802057963996103707721366004354796398280447208924533884836758765449417811313362162992700552006690009619450743859029751687997210653407613457250372479020551502583428511845120255285581930207309659030752881927452326313375082371025732917041307142448873485644564451791121559922635569809661285543814526998102362033685289724903162415405304767486831379980522505136332521224186382961274794096513687553366288367531799514546803572495801762694662111491859657465715107124574131326905403228531946333131337090960054053347927631872333330499013233622941546566890711597702823991761700535889165729623244245407013116526871574718194735616786865270587726607846827579736098637965587609446094768604446858664339809364744390804511866611388260559290380887440316764388887646736380644341781750661632299906570918802655191904327542866058420060198464345793599956619879359850225395142769790879355124580490205711837927652832859219917730650200592114479146507333905238265113934591375144510910021089434327563135047417464211397606547428382620642403600317326368659867419865695811884171999758150224609303419044651431899039315484872893080979441902489255239451406192228092078526189134578708453411950481578807114989254357979870694686828412210549111309829977419789289395457063082918374502099775449629837746869916692333074399033944975391086235517321355413583955227545804508314233108359679272980225632145153381996964516602654955733336183119811449024915471157615046265358065840122901816610393446687101251138096691889439990975996543147931774606259049683051922007834934816643815809378713362467541695994540234598226362036489289838067968167057602253353925151082384811199053574748581450358408487310274055240828488776592887375400799123683544932073539998423244420608642581454891585766658172394477716598847833300556225975696928563454841092332772185290661845717146639272573892368176462920584168019047528390757573192627385978748513449038335884598322167191361829594310519100127123188605368003133273571836870576684835398822538491412981137918016524413265241851789893332347770969021848709357457446050150937047725659995875132302094595045485039117637266128427299435361542106596044028448479776217509859130686161033084279460405302927410359605879702035960883679038385843372644830882092992739966315453280777204739404474681263723254820093601441746588145959227927595703313705779364325717121167541759982764060215023713367414826109197934301680610941996455992210037625602685260250743523664770347407757689874680384172264235234497819442050736812805192789140545415197609982591621605560251678903057151640974862596879269230938541227230118541475732651025392022373819038422157233787722651565982275159104446468565772406156682951778281205750404361111893061475145979877239617327836187731317275055774523411093002621114028613960014560170855256695615643229612764847266092891670529281363375435907560137971521225703103861974860011509486488428397298714710206972437761969376624782359910539706250415261506757751775731317947952945239461036580096462285992564106731232417185992690744044131623460713943913605474208047337462876658154034269757371712701736943812183888538774437452031042610135540386657906863052144768660877348507206022938359887982702766198544455973787771952146396880878294031763065406344575861027737140396293818598503618662877624000248148104335513878840036053966758172941192827429454414492858796743528047022257151508167967945705747391657640922122491417979935716155392031183237943165849031881744569325034488729604859467759943251198512843204900128293393400434698461173878217819059675988910718735653481913867014931300696668756542713578963692674621430814747998180753217338993502626998458882675489744156911167782248801207845576140917599015536324195788874475413567849875165967766473958043451134891875481037110492358436470082082126000530901971814970765444943985774008358352878729120990734432859684667858401270189098885037988405083951559589802124465156752457534112727981282933715108649668247117899342134537878957500623328342029866744961169234636562846735647876630092192347299902926959347145549549790885006743360011851161948789163702018224069024389485575739589932710299383245427029670157768923584509436828267629136593555165422897477595413826845165870519835249061279497033708971225693291075827313197181806736927301021639857217246707684377878603784076018260224124810620941681381024840871976008263986668130416500473726326871038186830235663814386955168596597817799171075166694538564169100288152213057549948678540781366870659423442148639665034776038851033424313038704044329115686874183839342942533088173911329865948658948136537989815632117146250066254544023669575062216684957167235624607523860590205903315749957558723577276204579840175413456666110590107569615137693656397230531310789596610588452488875309002614104782502385910376857794862857235323755877389164276554986702987100168710368503113268158142624093550961463862523974412847192823154753031307759864137163883107968301451246815122414485840321830428616259459919405967269493127064049733357065229063436372114249443233408981858460433747788702091316548668134716045485059984445229739386731871738639214524564503173449904275370207691052172862091003101532185465893478274662131536978264371771974612512560948980273030895484048568124193457592952861279024058384722273862455391375302486237181326991250229188252703658362882469538676668731719541592214971285552547320636552663360023015019301365593987658522035689361075897607445909825845791449706090229477252556664961733898742027574566431459636680669383643676291664232668673239499123280804377206792166207927150171683423855208416383675027456038320598754416715266526961162222344650608656010880360510097531424296270047870301888882409406125202160802211924909432336209278867087745903971675134190608458799070821464029773921695208128527111646286681982816255670063115775713899835382893201450527954270792143142471161001750511793960865694197792151406913859606016286268980496174250042615019926957002577477212277318108707303728983260881859161478767962043407895770086614305325274412809821501057788989701395944998567270262975315216266517609034177291369030241306697895045782538897106016931251879021615271643682167655377430567106000017653270301952587914735526788856114626987063739954425440692518195089690126661907530382328856512016369994184743278238238436808430717351513967257929247493048724670703156547458434608387308142203202550958006624422440963397980483803313135781409204940822028653965184998318124478650298139850819532707307048200534964702790148137605972646853788280411083722518534476094903002368170586153323375332793128352565009232891491809378308288840965824833558291719650242919224620852497843046270765051264779033768130912816901865775557907763975377576701141294375766067039912463611125126263993655256787380482602577699145716643934390600658758939941965500846549197198360512308157626253902982386852035530744892645232933341259638821293190746960817129569786446170172316572702663745143343000230747747742741811495664775465955568454466668772782669042470214180410344550288364317966011214698955951196760435390118433373364222336395839839296905084700511811914870493881687385642194693562790271613543172670602812685264443954534194036301670454497141759492504016235883738121195683916087820969664334388122098356060794780901541336397420505904520902981608721116536495264506923821071805826041569554603362535407232753927326668841500654099620943429077820068814223528119204839968579687150603229471014927743432986916033570953478037907314814647060350207646406667667215907359016054133650807194122213959729351546989071677601591352293823169936948194098123511054576321004907893972120728330530843613505987169962322520865707641281685573315975465261645151805113000451340142023372180353347194645764689081926861143313062654702157093361999444415982033257600999167439531308770133229759069707300786416288543597874052390325964184070484939250542511086299809508632944190324828345036420172776428872271072493659632355687314322993828284555328139219293171889327678715493090440264263775399296854143735346635694758563223599988133790218732836563905001057972259263295258474118622859515064598478132431566891150279171545831128750666949288975841396933458287370810064293048887660328522537517831841572889487691282279536922371920479009208292037683988306344326999679775228053027657007130452254225126698148512867034149317281653456790778945570792322345157862615143361030054573025546297673574733975538961188022263588376773423476700737472655079070431620505195027180870144489933177595595466350842308895565714281563806655125422368177761028022565375406235520743784627610001711494019743721063149071378254871561901150163800948592063914376691292089272397179763553953459121472285782005107826921589580461742025791703041292361521903603811711332343677391181016287850863055086364819336023127157650767977396294261077129185325520720449435723458983916044916948494153000782384293062187651210371082334234707286786619032049769029057506342458205351989542725844256315452975634679792359030597519670632013035224012846320408338010531050030633598695755425943277575805790590628621366294944078328046950218956815592526564475605063733821497767361487387464173855553113161635613845820022616452898683283456130590680313437076871352949180349420497698836309833505273506688945519506724944962620943711728675025778256980938032067395724345090614588976114604198753349063764924444245750564422459553231400919122258961666611416737778774398924468439966217517256699787615355688622688292770909922573223402454678013284079389691397880805707711958743733514953052914871407553799092691039474920630158861916069634155285883824882635904433286400987581726530259970857220078093463520591729954374707321029659620095556150381048745373054033769983998813871177631852608646613334949948767150200457679219632194218905468797336533278474079473627866150437816036324775051819028419810397639255964257434885228097189979459203843980930474262445754717751690921375719676294030142542585158067630125495862234805709944508661353963960825440883191288990564618993612718234224214015955675599608665977175609457498564510174457435341813325267974346956336109386048167893337385714389924285321262183883334994355353096222842287680923877138227334785189353033178053774650768183125414557771977594530793496738967008044941026465115882053836780177425163052752697818622234818335982278427490995014422162681047683972978943042264557935830722140937447062050827618264204869106090510417258680114604753285768057447001617160063985638726304584591785104538649242820632815223811880592031359503718606560496831301360304207461122719851158893328077061118764251423734629885507046388484038970851321281271533739626124321677889626778054310501898105370531865357228732165098835905056774994172377243613298134587236879614405138383133814820106062739125663574989660802881305717846479033260887923549107825272175084294425288996192851371676584480706904253893840843343446683435881681111762003428189960467693003586608722149956185483511998419121467790262546033345033106128955702622373501862611818631203997192719633850136974716774420993983395926257179000696868150043108340931053656138684644245062917726584829821755332172764147181176709262047571354662390352365026498910802232058089084201187149038577501224618514054400688470703653204663804382447642082419859979060206068264443657552815094658984476542001378851320255565797762500398674891462441865432303591005274239039705101540671248949298956827046965153237672112582931195203117490263483209581737629992656385930131257504756761239952364027767449006144749465378720888345894339128133994786403595111947125678178564201324912501560253050429160940638690926308027894612632555837188601738881319588070848177326534107953107368957819129844867673437201028587746896354322120711821404645343776904375020948944796858511866983940387307157480517774318520657725264007870514103918259035926805880581176487444261775676520259122463958784964037236384655621810467405651704567741249348514723071676004601730407051008936538104016313452106043343713274192293489108681223716134155668752669394518537577013891605168084750792248135011010393416032704240778174309493513317089423584935891876293383884683538811424157921902386147517654248287204895489437878787138777164730273694670075478238857571927004173117211770724606028564184369279990581605998186076827694193273566690137278917158875544948731475255142069017620933605094276914940721290586879547753582346389123961072444901291792033494147074031248764833155921952841224152527501419753182422263151701113457420115312776927123474626334101588412843525477763476459000429119904629864593022943912043201430350378302899888578729076673692305518555367400375992858818138683345555085971635955889736108598919795803397887946995785458333233940657078166400658046897611442661423968273970666137881407134676201721932719554445731377472531713876515507359679104822171552309188059767772126654803423203718191153917674643395971173550102311909910748753176491715324814978337783649021832689448449025699122779860564907239071952596689107601998107005925029681911716942090688600939710769425980589145726929074777904200641803946217814795768151421734917814355284959535147849586709888770513329776948610206282937321538691413773428162924768844181784773136391385587912028317516630524028369999843868873942199488004334293159160391046344316844983453234425353359474243015571790901582283183744589550124756810690694793227099455813829673700919635970189742403230422823272268877157993510667703347717006068031766724486754920883286589368097584415470117399355639298438092138540656747058719323098342623887501164362208016148916281269728743693665755697106890638970768213807813785779901120742667637563734493951717803863758221947613479272663188762508489384056013015219114104159857889290914762673776891764209672338594786229760998854638662252038541679416415047274206898746980408257471007588203956446904908074244901651816231946586129990968790644394519691674501649654291464944503270188897791767459936943816343058546912703470786330582889487310627952521213043840203614524991510365499689514779850264775002004440868563770633588653503821555188997516894783357104613645642180038665651069551182619000399560669460556803822066084431244953125366264321431463046761778474254828133851683326330775465620270616098345047724863150914771882679105450281018142428251238474055375371938854503593376715390735743773469898572776523661355284919972401421901986805097669713618418095392275188175153092985202779108284191368050036713154466528016956281435483041574305335267722374940731066023904643802645681167270758547965456182362498917585046950533333952206848044240165849381973285312318220366638177433595065283609680517864291352144045193410082646416123432498226304669976301070038141399108722511805419271994746777984847143258390864799202776302139142963187837479591507011015722422217933192488245979940996876659371139582414893193248526157910732045057858711944161521809072816118065066007888701837010770862654697383184315885094532580373807112361294349589286202685334584659193678686066529379044758863266021556378375560339059338521406538577787025808746670875044899365980397199024815576610197960084164355696396151315853189462652359586087791553710100167715534695508977272465982029295502810149443599201045311045738070725691191311827466859087532894491882391786471595235012549905120735504644100279654972510401274151275944370783939604311697483190341260598947082657279907596646569785026012856688135681507785121844122651846505010755585049589064234909732252382164808353674973871551954307436162451887436483306422435573469012188225163611328037070610320501052669427121149618383373059658893845181724351874509703439740440473783816092307554632791545641056574428926210803654626896890431250442551618107545011667211462394544442451845206941600935627675226909629531633472768602678123276025749466043754988587871747977355046427737522673019646718772421182586646840191572187488088014497956476486048353532104123266014929723083838661458643783760537591200267537739727926756987408952186861251160950392681345396053229448862605530932532838787117826918969457677569522197841314172293560643579410939292249525527389365059423762483678687196492336056702221374611034843229981709404788527814562610457816730993676689710025786425182115501936113297838448066067841533118121792811247546749134086321134657312786619696577466261601703506219643617366132347698541729925735416458611990067080580022239168586719225839401499866960747548072178427476143518971857172732254777016283598861266694772915057599853097341613252356417934205358074476066925755654712308083890338353981409252914331555389278637624075842587312554793742509424856055316472778868612278878803054155901385041558626637503694572865043735413349949907934018442242264513202573187732215964998202817487520847660240691930657783149361885824038963867319634164973582536187832005558812960946509002457179865112175221895334883028669961497265527731021586055995496467841182360202330696797201585483275729275196119698056132577382452492875017723337510192405179926055815166885355933318814611710687580794262122457059048956809159713360358624456591626016104521038809869526789485910206764104458204982873184286008474268549043127735721545647738910854053186438966731978561826724450300074114692657567759302878503820158760189807129982012056155970404561602299090304254551547703811407956018284830932440064778264999388657774516499533985997988383217248283083846953811278564922783401181423567188558878514196654276816212585102949490524498975252080204898599857857659978273038253283217436977134993073890468452014746978694421362609747249295339140180577593930191470146472945319025336961138245055659591443846457699634832758370694880541577722651814606072413139286628302174781303866369427990992926434728506222291937168545344196811236950868724662298008553236979970856451137501762467594465346723690310017481050328955940358547862882719590990676018954331695621774786332897647877327207687310263764553536890479391548102161131150616266421709646798811720256247360134778852437522307173884934431844989110313755934629938088632771734279227768489251256612917781852232657682477813869193139770971103046064383507438573151120473765989503034026145101671227105715989772070003098293795135655064337223288499112386774599208973885263789631014959624060604568191603266706153560641636251949521346717195556971927492149884279127882135059618692905904768139116162376518386488883586522261069042348313339015152893030919042884216928155399267488867497382166532907862001916884278669221017412286899447769926064525995213209435239502125649833489586856511255027557900714109854938269862284793511259277442550973453300541235935464239851527607648601387953307826975757090768547023004960986785683027974099074780643533001631197345373132656977404337731655769370552660512145421802721626316012870042738871581916984594019870762194243595742332028328597899901753061753227979792692062392847005508589232849846249097209424720786938952849062151494066759826182996722720577761115337508959702700401704169325376772475501236426801136823250105837673035055552650676704121592246282724599962783861326489618965476558956058046870523248882020152049923639895511212382134919816150812697601379209552068593335309237619509983508010050532067305232893757722838194094066847814462565266057734190224780000425288294277690641568986327413732647698353621603406490741878750387258802461461334596535668637153312251780246844597581376347112849327820373432456743906481095336777882741059206563831834911265002796021224994719270117293494693465867931913491853092944633221710063352116946710830619513051097226873569126688284922498653352146278855482716277713590269190302108752011018618213487356598743177858977896017738853694318517523134945588372997230407682498105951079077485858499959983130790108761998456608598147453726704028974121690315119795151428182404338672300618639969125257427723363383255667783425773990146453531063276382458033116225400218844387031824565024576388238021781005136220110297732904714647038140054109443842380679024136829530898083365319553177536312636496864570364615365252249968353400556700890946570553020985287861465304384694760446858008115503250455869716666048933033949085501634947855184796493478004834563620908369072721811478351773841179083578425313739691411875966936716193248146830751111041823131611275871488183760404691598185211373130135720015424279769418063508650301558939387296046619748210177166780814903733771443711266684981990614326873769370876162376049552050994510189881707694177897207754887681602344681044969445822925516198353886997852060902310808290577997915214830716500491479934249319669310829434446522279153171057244856489902836029800567769892168558651972451182936060364001695409404265326948519698487852151972039374155799754752520730482501336800827799250877261738168166564724051112452460314077831805793634445434481173846120440837682140978409835624379582617081404606256865714658732547805219602952789312807165769071818420132752810639711970350264941011289051686788096258946137706189352862146646036017718973315807987751333000520267993772860369247300356848780686572058321565621356506864133380555564662483748108139674946935574101862109680456776060626949360739562256727809861274530778640300524407252981975834302584232192743922593885094888429889418814973064188430713838662661989102274524781729357177824918093726780652282134607927747312069411647075725800144388336304464925987453531822066687317250011623637670594218919648210130123167372462220904232342760452732643823041838138596476499953666729753293570634424581877967350619182255485161899650608414493118014436115163265597136640490454709453605033709975266512593572559006766436986335781291489194051984727604515247813026035031079758324417554376783623710159953299957685649663692373991582024910076395724696610545807637162927454536853609076627083508838201854553768249449913458415509732714354665026765000715248702174750196122592090633738608029330632764480580330599578128977949610674200659849196315301010526215486749977200492738575087428590819995685061350157736873753374899892536384949900389466083164004491428188718071210758285806858609030625332520494021901464112695627832576286347359021285903051312693683657418239344692810683069629222298632921358222902890277612235508231029433207583672741469591137887708914011003047152372616296971381071550319308176066527697944097938336723993907736880802492892344714151192013561705709416051791346856438783171268479369016043333780976735934599730299560187167227098775520561022625771289357016844312263534756957010089615376656270101788871812554334716143361122048663373363454948434110398807477070812467314349906047264313117202957436826188097326245056332397325859139733921891897863638365108681292374987479304175011847870058715870750559040823938818130583358841646861637885874625737580849452949031475938030528908379110749028692670508558301663520068975204003651103469530836338734134011227753642835199842827573745354269416359631789078250108317000510680749909160800160686459838028703200343866813076537552245970955916430187570516325447804960089100467481913756610270312563077533818733901742724796359662616950091813681615710246789666463378427475391545261778411369035469504861000376365147620328111907185215516103828030642216321495978571427199141305516208913973648947113204937883923235390764813332267410227649594918870482899085861665695058173794897467432332362027248112039049295673399559677228535715310106301213946550267445061369512113819981583048211505652975503497390242789568924610866010292211447726555423064774954540459936862975192227069252263630902110213486653517825628951531404122467192735941962215485962047016057154939669842003696395348531316409299778107799214054219257170093074692006050497943741455059981027971808026810824335886046536177338233398530949612523609659015268072975201827195781531106585120623349445745687666488787389522227705199307315270351758603486048629398661590364841844554204098764021625470164043303451722266393093578803824560027174977743893904740085480929046815097522169609427300853563505516525701974974574476073591465276259222390206126720040637520999443735720721143547108446380903138448635464576735943999289976450866104894661888701940828136810789120857285514993787185369453324397872672657253230225268239619871175795406313330601865405492531226544856942098158558353512770161549917760005534538293415377104988539069750889974240455857649109626321778899111108554159120437601009720762987714794874002178953808942002020808819702328796339241562845773486215175271668679812339002196002149975681868971371747325373974550951428936529432402490414047704736729863155221120661451526979813675607787436293638699094376562231628971879374161482103955544331345027914341137068993320545985682861683092329871558338048072686930098513343462060275038979138831894577290873600644437385508747956939284190210202373820573732921142900856040282884198254295830652686062621927836767679449630868893544895886833934336531121320338923097304566916895511442375456744998379647861078394787090707130133107492196974170753232426531529025542240679162031873456651018736503425621180953998768215454244933971842273830000884147980237314908630394015727874213579732653296428232365773583403089629581890470025196783113847746318078947774366777325636954775984874025985620101248734178815010194165361068757794560586950553022774432745664241641295512836119765950798184471648215064843052224146904448606925718936648787235703225126747645151105992881423245197618302831973377176151806042746093232998255962692618592020109512821949471165352387675175748399075242780356856929333259075848097439177110938480465185312528457822184820070155180088019617238509107543689170961729529356643394129101424781103717498162645070775817872381118273992750200368696437231399246687165567467685789919278623135784913973986246368907760630612925215026337208866853232315462710948844393468304684234221882644729643303567662437919165119619681824028195728314746181543591483479838145234278741778363066937811928146493214509514675146537295560083175796331235321178758832523804032644121771761466634187557284317591945866219019009272724687371898051067188098939804252196307819019024933249047324576702836865578965957827170564403342565362628280346920054042856774485187006670324810226455552203062807466120380395735885004665632987466021151106039188013061630996108782127647045052258122076948508746327240774060272920560701462066965695724370047052184136935431109185246881072082121968324657974772670249385137042736883782606976479662961226264764412523447197246378647328080417498981517694086595427081949449390271617192157021707527411747813754397105957265084037093240327876992275627383763152417823508800951046215836835681966289927909365443674664105322382076590676396394566919324158510278705016666764435073225216283989331972278005767673213164880307939067701377742902162767090181539537315574296590024420100772402184284473406463170873605098264596137089426097127942580283234311508717188334980519233213943206646315867967467787156494343184272570399392451871367812324143193952706176688848286045829272540453957983629604580118444136278255790759053080469093544683692740237858954793400765552967310807172096710871383139771340335770141718018353425470706986402309687386016614829464559188979093538847853272935840085583029539865982129813720953271179264389941678540464493076251954540196802197511674355431111797196445374860974545679122429630599742592414638246566079211883470380236614255730757970231482273711770356906644973753138014295039960192265654389848864559434758855150745185928330645705440697608810249283904565116786374289919336130421026759543381368866854369008852663987750427816691268024698360415516273974877289364478491961644322123237315257168191450768997815333602586838561476685521610685890312027720612446325033716508985972457792028141591317871646191348063245999385501876116168962690293033674335087699802341216169658929499979215439009594441545627406320070041818298332530778019395330041990844522860161342757213851093110597412344031933860774377305835919869348213316718754394511558155261953315255881458358749824489847322935079579983139718486990764521178793053722314678594850471378320867097547588094048421754613656721613069458171424548726054875452637444531868763220836828473478706578817977496919882371796805031327029722883720357681887428427804009909243094374286520377919332430876971521651263618138426871239932677813117211259006756858800480108498006798995289264148228937227890151929403807674248019323825274430003329354086495229533318978532384213213751839570153243838116644316287164470575786685755964293473176731575382118852886657124874573507093398165249415589774918709136237655782448833855740240478988480940080148374488242428403505480050168950724119686928255068321366727890495735117931487500408427155078451338611280625866370601259378121720577443831855274294427083395241362033126372741966935234959127438004242666529258051465020809226133788314390510779920028845345735250992214213444318941514845309892243374730055610523335603669921797791237499197275588409459409143989298583321171461304396486175634572771158028138826001079240555147930620686772439360745690902641409853503738950315847422135468028979661602422716594826741749428103124489861840541465592396071932949785570023596209808967726974592008987489160122033081885644231862387593622822950967326515492310198237245713072026322228984148549647558949372563038064710577103962837164443366841092327784398285155490309568836441381041365636077702863169704727322505688320058158264229092417494564878768288993238980190264741242089496242751054408244580968478121968530417280883779583663704891555548036170559548349078001998908155207243270608230214797711611370690279022075105742221538713894731046143684543988705425832357723618273520913687248875963285662701468387059992266188210676471727070502912374812918510010337916014449710506649271807757813862979000081200507010969566777369087447654178244619340602039954490144816608104872487802787108529297853671726120155375810610275943377444186074623262261792442659066146442514165959021275864035028691772048547421035877646110750546501870823198453586328351914266003449852020615025846923623686897104921884039748576621084845446950606834538915549850581870636631961401612095147121442630137285122926983818401921495455461323958831999511213584488275477939739106497546427296464012209660790822101921975402632003047512116901310910436504663078621192499014040704036652458783982217112459587096700224567314635532720747445372712080112763550158135140701178065053145461394115814486168934098657299890939308845202482777500657555503663075577122910748538747969122949632481649195011536620289785451505280421480940146133144785082741991901389635163805756783966516811515113093877405975015626185889153062711667082816770578296405576714070244730055064789097130209061842203655122007777794508136564046543993026735288537196374042060509739685807197492763659641496938056797660138696259832994040021646176736547551582351373503621587573450350582573570433135950587889765636460984310285507955689476691054997621768790849070155612166044402950893501482791123275282078811324515867551899376790380391118957626048975612885276623478697764281029975502493223530455645871606422027961801933762910267135356648174188544531236055859752594293901677703986414178258265716848876729501721661873697588694630934601130943460648249110545299276360801157950490175194957244873073739529053824214809311466440872972969684386824086723324750910866445342474305357141858971586473660075463323730524203023855129933027732025124653697413479603231177124931642538535848235107861626746151616327162346098573314835919908376013232462946514646126274097360078868074893231975701908970238609969795062506503599708366425336564167939308525611950270691365132554576661168306782934276709197326027666495794827815001809503657805307952952904526341063098514384387225974166107275831315902454889403040948071778656820465703117833611569377321043973645128147983205649944750415897207342956727877747005110587605177607495207142476933323539259713841505560980199888565942080809034639592892692781599412649402866718872327730102444214645494182226113338564723355859943382005906871008335886496950258648652426427978087220657205359653565063843250941786492156572691480946584581798917422686527905283317908067795955747604297522339177378637602343914767427080421479027803767242688227313056675711149757071954123862863213911914881926783410173532255223381014003489883592326181109461698551854735707332308385550676778053137840906501742188415564537390271797887085034415153542321604157029788543846939039415179899462228225060312088888318272309777362950253575317319312411234638378442924636325692164151842457005827654759261939144748193790702880132950239431234191626091428564041705129237444341087771010064987914628353412988242426268602441832925967880924641961381516408841094738197137419955356557503533570951891179935580317083523261368748331278225010541539044766792913420654056192910067220176673355756898561821945991141686202573383275614842179475442490032279636501967867325869786094624265015910271991223219885799870547469647137876337265151013295393468826357530848690435380732707271916680184546944030112840281484761513642246393260160879047815185996145807878977848174076427455007406821510919662414977840908708506378486065778728455222247780566261706442569210896630284950215342544460785269869778948072393611955635030416705084317485903838400648320537832377973608582234596192253690854298759640040673795513399936601826093468633724116722193012259065397608189683628830314485390293887057878830020644890879782986823081070149820038076072677524050895348119387254134508358500289086932559846671170847635069961778200742402769742946423498863655070459502404947011526538071122410773170405917496027121914503293220317317326570577496843245643481853098242376840207019860782647995050335835271818618759340808923336954463705275384406393007381889853075272328690498041172078448398866663214330555479188363410185401169505385822943109405842425341161030619011492916886602180811493742963570099610779804210033608570169293553298481054285459106073164408138343161721759440976243939181501051589958028460379949961887961594352247700971625834558219990556495428003144886714740642233055891879772366372419113168763515026718784059759756296558634540518927171935363200716597249153389107717388151580182915546217486344899912421402593335861519127997244481038506961996836995193347620668084262286265703974818978098245469308307910130998715696017803962045391767509522724694452426702351073207189564719334734286821825876796883092170193747870598949195517691558232364097834790879011298260640777003936685716817925615717755957351252669793583832247526816584550698688405504543965241063312654297126444533370009142412971951988949755776058863966736055655910682241177927446097040753961150332560728147839999460713536477806740552303890255203084609696033910033857898303060008172980608237041430604783342426287640120114657382272916474543500746499738704917281342311207056782768296378838728054465221613165662280287011530154304500413580466635098875756022846553291730841559204568980993900916059294293508966469611749467798290864099395441058431619474930347714480981539218956705940748467171171568095524406675106066356294565529318920628687933414579590588878396776639062896554482810315992741031083328884456495705258262202406205585956077834772404714405202997198925167001861618806644888947744831374888575761548012708344319623053450539364198019307421710545034145746922187018003865266455809742895205386310778470335380053979675381483699213545924107190260371198246520982219754057854115219030758808155674944596678991392050818207347645783396195233421542302121297488879480904182289197886979182566533545647079287950383665743955222539859891106072508347926470015230716402505669154967454391236822958115010896301313404349167385492059871486543632051745960404905813964395789527776154232085311427201442306102118091698102816069339139887616850016220719337433758339943992752148397038789161874591712843276253323733461115101893972088727476713737763479976833877261305302125790461449260989708897298462951081084789380175193042072776921647867896160032438072146038081026298940154507587830770233985072178761111063630931099803018526086454659059954342947321461721944826430649659853530149610176217637336534440108472530037588677260576710318602649749362399336278270062965361712869750467481139313244667066116538194356009995996135045944288563319615029335641582330735686192572591385011114983941603800916456986266477377946943961239214561827930046388033202271840800333773967748346584256974654267849168975424814156706875280794059866557252525637892434022094329794062285714373665358869988261846551824941754457846474536393725137511445098165041588652037819985936546564511489530009822821978194458477791812507479739780175134765053386750054841887739949415441492132842117093475110471825183098783545318362568788022084814806549445222645819373665128956154212002729044360487694339003725951253827235842345851107034477685976697953321892461791299654342421770733921619434132386410605620043846244897819997024624009268097979518157276782611935117068430026857714023920314873193443118896300005260134811341541184412898180465674977843760304595516209764300255114769021515918736912890044951173111673911740093780233896839533279156418669998544796877364991704526365305536353606809458183444708431472585908364928894143684970028461048844586210587693168402864438942157427064029130810134703696163841016963753233657813569013521953178065662390762741839011456992041630106866345208732206931954161518764499477473750277934804445191951749619141364071721773770101031306486787625700172060796515593148304825565227414288411399703679065851909109802835331689115739799737425442540059058558033428948732151856989768885974804829734684712320108696989135992691567725341539519331755871167874610298705121172166625851474764797570374794649663273832337086241423634403625751161382465274966315372933023217690014315366755473476190349934655454466619886440175189399166363070523403275893844102787051889546220879805707651521345709047014450936757561796736338058457276089598915402271063129390189185373888085809188671135036053868730074282590849636904879112908451402019652598388974034690370733696830854520712212350937077441002637580442002589024719417117450735581250995195544925786357504168196997551975378206729069441576533332683863031590094190214962633414610493984482959746053174828487815805656104103318422281184817134448159925059838001362834718169620990827008377227467262166264843825078096025849250746585381043405288821684113230673366666578377989669383333294429094293050012228901836464806112725708313348483822327488218683399182988709364422002319074936986723148719743874935324695178974534221227490699407938435566387009359166051711867731904832664304223587805548737863132905378058995503848981096440493429422738670206382735046332958376921594456948879446899149817155651640118759246736221039384020956632465373439647522390569140003685197748530767412865508964059794076298519714413146544897725034926941901845421218671993716298845458788396606386252362352336365435295887929150368313145546519987013795862252279316492545733651261848770695551418947460277076917184567707628792142247590829462382384185587346133072001902215080618829160154526669067527741660128843848511253986139076145572775079512764465436171623531439132484867969888096587157255718880137487163455288966604476512748683113342547014323244441013809436782782212577669633938930581363673392721248420797049760963819107878807019593308590123333773402473917576766869960509226811110685115102619886695478980184392028225339622622976667313190666251331594584844481906789969666481850859246614134643074041263768860133558976740150154426761935459732445932358907254594709980101773953081523480023532081202650983144704872909084140292357877151366487046086692792625732085142932078386869962152599274586899260568120178384529869159925543990437573003887134498139851775129909090119998447677566045272323825821248258141344010202531674470599798702079737691453504503198210747112064714214308127289210111837576032157601545948654588186583902807103904861094922793778475262374071919125775681352154423387314384935007537261305696471674950483262578033547742866990236390148158867160753035414581274059761689367708623779605030286022605824137533875031083812298549794938802214515555733394654541427944455719502474769936314988854610403318735270579790383347029106655192425528159774099059806734570645870673167738549312869293717362459262104889303016917767614167286508146689025843345617207924367874184157343803155890604827285414024398989219165261240732668699595631855225191158471795672804152529053458188046757480091991226094773664241960905217180886658236872878938113699941738909595590255517180935347711971797131976920245050000014054729579914806087059661253930448353036591693829578160456453013600272781559961502571346311426182277108364464307788340161835918844490037311909233763431982954914369198142928875857331443739490069998511320768020321427419650801077275102437349592446746369472493196932681627621586345358525155368090990758626922835355487897005496204929910971157432477516920330795072405124224718338469316127688523776379285029832205644207491138348216071835095750444465939099236589553763805149318259514372574362538652474462123381330151308784761065140606143101777091659142757067120220752591536658152102182062709591048108093638819748503103024811595491748100558710133647355798641410123596818409524433641572100330353341688222248940346739897833489631786706288270202871420753482238701739848852052755406320299492724513831849676857417821624462339299689609317501482254968397507819280389267161160673922085309346478459830741512880046669933936085393215039713264347534506057020111238182578868671625874933801620278986403343533751626092186898099784922641392750334209748496033458043615805420532135769697109721318521462294035164365593754231231459348477094296856363626515362420596615178075287286327330529711042031560281464580395828388434914955847925370242816372081739011127272602338432231128809859038370616451601581879289399629810638776279864183244985246056478494754080266113204074329804823203543053601536063841957511477993909792128502568757035525848096024240263584720042830467248946845628612613385191823201528159413989509295921288996416455371861350415659764165064179031283568899608147401102516022220285481147969111975713329195416474817653515413134912613024354269980999843486344100887855769838807441966603294665066970391845204839859864065856235056654883530318597942685960414499627236611696950900510178771962200488417651355359793062107995172823060849557028601922287941367936552536648431540271822864653546079753161534921859222318378002067718332638058849612242415625066253965241874241209733512523116526740262244821950403270913183998979939998639013686031125285084880665647354664382108512640791862088810717380988950087901037479191277936601097988282414962566821240236702900529763274673955156305532227049761534817203521937973462203099193690065063308356175878113263946149040953957761427783475219630768685927604232546579352671094157765654766914482769106350764978347849232277995181473065198553439083476374102751577177191541301597252120959521730276213022782937461352625468050247451592504019139733802340838668256584318838430478818531564425613648463211767359358150950265651431234076274795274231339685024468029804902427147599758912001769884401615662441315220059478149489272470882100733646514936901737391947720072067441016460491464142337880456144510259500885284150688776320847054677494989336092036904921773108084081003365198201068111779973378899948731768862549449136025190802464887070428473943664587826967043328935209686685120541950916125944102067043590612030858282868030373609026407857775378449774624914179174835651821775511856651818010350011249784488791066727504479713238563227130888313194745731735967406075405147836439854061015737549451087833604444006178948989261579912748173323809830761312229636952955555120043767206948346561350819825534962121096077845873038909256078164429868315393191521340944801606699271199384633220389027773697462215473713602996331325816579008608251750557750686633305002239094257249661150856677698104894942674601460863217326660720434737554099420979660743386365632019189747343444989107086367717840826145861273890397331726377595438770093765163620437403853049133380775576390114361467882487735832783554059544321967801048834931252028595070205619240025234197698643681776709900714493537762357411842180043876359985243610329435279811283270176749558219390937266936882475297575595987965319491324884825775489073383336921753567020822653303622470651042325453344606627306647247860560940697363562066478114899621358631506167499340839037090435262043309043056819584523390541342250387768315481742618445888131492105321416113305246990093389007069354563840992187929703021546641491372203332526525037629010580351195371738623504041572056601505805667973694924078565985884713356188438339020194682216576945458746032461893997262844080167683964225189782741330785779718932124835925447760412633509800860711245704882368175836905700861795288231545580231641514026144174691859045633870031978846157862005595282240550166714330897082887550275703957663061301096272175363074618431773789166756547925594519307666778946533407547963815334111689828253786741406696899463820173795465484317652052567535180507266434926992482129250979393651680738601249583790873820302039197143647164910220045541159923367827462248651906201226540219853234514929788735977731729631024598335376834559584866927478562118764104672699000348204964521425722486302695177270534627025270148394761205470914844490945362182288890317996038337695076873639107675213479730996726862494355272404480975614921697950211091483048444016322933287554407881680710040440296732408764067180305809578999309783851685374635268742974934856109020953694417571861890203022630295670161140092298191145057207474719970369765921759594106237735965204524865092177407048635286871915619245289481048874404588965765534930156491506829308996411190697397092800746365395620222222622738668666674744428233145312738542948532230492439628468747183155856544384903486579802781040930892831140190371360455902173244508234022380789368628663820555674835488857800186108848420027472078231060037669362442758623342055415816624772865941408589286739491528800527912305380702706422150381080898721345253086328483665397896743216160682747996139407626793384924498608647670003838011028739501213312894469185524560976868938114585739403929186854918197906564817860151637086911707485700481749261198437198830285614227670866227777370494579107271947698488870800372239558126875374520726035144551922735506431082883598433944081988987185035139860690567948741527257735413996295779105869184683619406949497026046867552015163663681722644369615856968371835744204093327247876957523789128568850994748564697343722778813349193464252220001101376025865667765978662945445095684685970512043231673764814124204529400027555410594666931432430797567190405397032803849601383421930082787437264177842140288873783931565633063777285631218783234776308818646343356557706480838603701040205368657139669526596970342779728298172509028853193039863515886341615205887391233265006790684740207824204511700793854307839238971333058389045743798103030069431842152865186473143485484764662809389045195598311839743492643367153835577210967109469248092770317327301612768963029289286913801094363303195083432797736517883392045671621251580114439757656450677417345547237566215987505372041177644692238628957846569880953352623417482138078462022093691484529475839113067576891776367319941385620131956733115600453322234520613993642227585220799367746727310658482198679798392257028186434081169627977540650417971158458343433306905659919762368291551493527357963443705913530877304057723538441419903992761590512207137134871980161224830234054725973661093700093285478420617550735413242062771520703386789426104484217198849386443104645931552905570818656588983704816984730849366628670047423872396026655150536553740536815677852797115224895579435389592946335114779374951219070008550125788242819566102966986613699135060644202922860468342983813026532214647296116374150172521986974715612944972212903025430496854441858268312590187947547169456288825733408203309574937537857258787471868731928986805848764092373126786083258036707045878848815046594833484330204431665783811628613807637933724537274570689570495253502046591622582588824549491360492577945162812911447431280123103287628106507103885544944211343618879753627061113353613596254414540551154021073436105009522448270897644718234140481758473392579916586316826509344539672619651878742338646719430064863495374792109686776627151362432269824450444367406625212545171678264816536254746328655420564590679585319913044659430432626234743994685613950246911134195866244948399222563567946279743221751423814621288518397183724486533061264826371857668208922252593578858275042311737560842475100544410048303214464914701734661469810490444364268952837110475761255503263419813104655432500747857308728341120822154976107639702051534964900352221083043337668488403296777775249225634151673794231120204273074113485658639652034012276368329760854913258060893278835606371174905649601248427525275145539602406047496310527266263578107005421043594822863503061476208844661081835878157787062060198387143683357759670296958462023766893255593933788538619316395008545877312559444067938060551892883399163025505078038013306360512908090977552539266058815480644864458221303079009092397413893792865084366294534178332261361923518697480324124651497190979109604004390109286638467535814079674004228487282426150353290340338566407681369912835513440290319164657974545441262536313897530833275761006572949094982032688039939910548828527752061674232933853605654458117606360786217481464755351117707009616428926022207601121557243704704481947681920280015466279657664607780366154465500051850196796871842854105867084824541147259007635353205435158574799002740785485224283687875953276135561633991904784427310669430119763141458376453590726320346718789262107723129941132980133810849962210186399357011281476767360240449374757758141742798060208861863931606045755164963134086423820931708438167898286986140188790938304111132453919863846293395181039364830584783419552543216710697804528504030786960990309663562942023269030544925654998798003595806831592088580417766594334863231701860436778709176459958684877003664798094247434408001682388733595167988161778943803972590591220771825043079169792834502381901028383745166233180286999268019909676090947372604181152919151399795832489434349752879019952560420206943991823845976824354072078959132010655818165712838763779485172356904246887232088910755499685805068535264724674572055301677751576160614700980203362336591589376116958282129015061641284187793720200436174500559840490612296819741769588605482424231567013060803728633985049453197795303777803155037300928203559210432714586157287253121323929396093612041931099430206947577939186836298463032809705275776568150799128292734477757632352027177425997697393707431081224499047220030283796566453581235025701328173271949833898073621739542112966436890755136092273220473236850100459466181285267944543868590935933977264096016021383366221351615003589981653220292696924999625450106155320320597997008888412993926676167807156412838786282437048459423674543431790214858780045218849719288412005241303383465374093319338663803230766345588752849997497918001047182427948954152700808014814309394034106133158820810568407187106008024099863755718072313114257398517583670549130739781352955117598056726377719072217029192692129262754647458135345887789519581108684712517211685172588246986782179256805145312057189193381170918106838378393648722545506068659904357480295018773993646315007555699240036165646808302089127317213538933962343161511070439594265777095549493546210021770347709055839378374681142647927419175517961098607139222433536123480787139531115242852042680918981955065462838305854534673258664723822621666965428099993662679432457578004603874514151409340901779982605785034778028815696950331541811874520110272362465083859263419670419269661173339603301862994049430303640820984438234784421915589516493104652862992042399056592884900560639730475198757976765397474335538257048719394634070907813351822508593002305286870051847549124985537696335545316957038356190137797395709981789475839045612753900251596422121977852704019529740952367330658658809117638369733128447582630110029468245361519284666136831773141253315511032938198988989069824393392730047248424046968222980550827772642866212980027455558558013754675519701946079000473746117124699438066543290043747567403711587673051952486745012786996701564491998822534810714580342552618296150107155346986072647803030590591503780321509266640646486753458703856531423274766242050959932507598587043377396565060972937064229777399699942685504985821476689864149131468996778181886562064361353085835931427951246199046426852783441297569008732324416548163005362924440774350352323685130968409995203908441424991545081137724215332550322946679550171539681152133913664531561155177321473311325502516654650579674556649044536866010387027472728411096168641862374763286159780604520919424060059645522989998173510105560977895748986802565547640796981177081376538630338161701367101065646454438833390083678223746307070665793816866917481879414569640697790145889837985455414965733404316322494981821660206868774149742371864515056798851895736552191791456401483613290234216064506387086540800105326981787685086594155507745338511562829499983416921079164175978882260641995275674836293666525838225590503622765516882374974395767003408379289803835547076347240838469174703784833777788007028699675600645922568007271391238263859303312980179188984811027596322242822253606449171263216796840768141521056539284504406616760873369181366187447561466919221705553823284006098432857690068821823586358389012813945930809490707469058247457776482708864341445145842617776695157727425022635848968953222105823252991590939801817328353117735086691374546010953202377942229782604484708373265543932907633698047779622164976276658167723453728552332232977104074392754798061478492344432852502828323753252609488714393476976172571586143766550646660696961895712016339726801884404857971063265670528635029770085505758132957230080492878161731495040682499090528744460767684498336367462892299863812120091125659353609008954078358446199194898284758485801177082980824434878273771621326797849111576639765381189524918669266868594984371974982744730691163872640102053419876354509422528479416613031434476850299701140099186230792730577007618225377617086852800731391936511268050778808098257610635985748583785671482700352151463799065246126289091083335572717947249964819970542228097294886971678700922294643406691903530558558624069779434520017908182124535321876005084061588871652814092845532062522703366805342952126689321983122091285405590121944512889234850508119723060453559801088604150000293318521606033200237814986029130218892469000639098642795828248589055268892837376927961920334691595210118910521532131594591117613216220965273756439611695927903404720087559929076743788994438832327884399150757271541392001121517056150083610351287540439377080044356780707068153856435813595292451935150355466053494610338179654430205114372660624598289952587842369337032437790297836566700144923225263143429226653254202614331805284840353818530082112332857263838226642243646991621490344755834639936009961948753510181225242087530762016474097756847112237444953185315360366908098684291259708426695615415045129422387322292078857471513110767536572797151637091444786528383355516190388879980682214125545490358213245789806861033248535003737034898786275736442566661312051543808221973248509062421192153172168717466445444520980724841343473749152100821689095366789611656658095273210230045211774640696361867337305150312605407771498737041165269893867208774601767893420463747123228779844022503422985117898394326418361332580759302446723922034384306639772886529714305683350283144253000634370925237750788562177633470809034274001774687945130881894079452016692596140090502139662096446468257641609951534719872438933262375409026328162338562195735859057534060676317000543962943865646557339975157632840897221317679364706515888114950480467688335727520944917882813000920581996692670695661788520585589742426899216973067657894019460152402621432507107067930878007966631061663101483926253142039710262375292158804325825283237747604297541566450200613597256957074347294585168398959800463492607093336585510521563489652277107848708965376497934385216725602882236743641468297460031457658341529316785795719952688358108158160016987443271453941480912042625626155328646490116510303715394170252690492731433784778094662001406553509669140694087063173615036074546421919460953202022410854760288209395468177523514473801374975298630088840315191626109522210872269546327144262620730874486937757359595590081255080305797200251961552201311332807155261851160044581056434395605948183270350470451399647688260083016192894028491787890962090411175087297925191251912083098171865274308369945868467356953117573327757979665927719638748885980830874564880300750681879220668669682198601199536459585215733936016515363155555726598334093288489936295341863066406168178264894192154509064939842157191652511990962007692248480895899679311633200340734188411245168191442305747803201722540105266955200370193190378099801815600731031370231813411757400029542843355116290258837711200863638988597634456533872696539615296451732578109568616650613728702291859190595031538774791500188359678943166953518901976622525125159801781968709653804523238682449154609087360075911994711979855699836840795078600153663598783242812015886698327571567904916266718571433287939295602443995228879685665976786580072569978508394164705199278643012607271618778399553791284524266180287449392017328975943314981176144188080712847271708277554500545060508994591752821986511319593863102376236504342519555884295386264435520992464582467156802503250013978260109449218248091720294870024711562513609502088683123726988718766694079366727451378987482043287100371179437148617488196816007252185773631203462134008017930866388160317007777607298441762177795088156115924381247686722211318942347051404988743441180611852204014654366292864266125025165531400870838379168184996472940538001127855892279079250374233917829232107720154525950828029415877754646965744542295931751420560756588132605136428786753038969214244325456673357568765470045728937540744308481140005995979862895394126266191140202730028810885885086039367614270094308386461041068088465629681699933734214560792206413573029345428694337699615133476418694417983702011917502703918479939433080434383642318054623175025521631690125406233719807566592315296985934375853572029982528934121706008304401065775564528968305715357766688396269673909144358983890185260011729518835218547422918359580380755430044193536140683227294823888318638393769804781667602607998912002658936587968991384263199741189145500094502027686771245975613181552392374140089823885316605733358135905543910385059291253950896878218553255005466768400591322177764477090064560887990714316219460163681441880048355169986302431992810866829036415908414446107149863460754986436477735304119619129933614262050234619849733232411056559556336640318884677691331503932321262024045774503725887043529324720948120094624763378673448867302644917948301913840554050920485888785805034447177019196161858115899562538550502191167792424171443675961735175889299019067580029739090397338958930411386342334483501455651133666967774136571910634933597287584834841033173341881005510886219264603671105751425371030882908500550347381207462268923497152572963570222792810324578687330114167366114978620382994389913032284868596903921233212861366294838120053762969390527230198155315694195613530607619451512347530781328671049856480989584189291429955164683620016362919758909820530825373208853078764454861225502308053341450747919887541453421406425834827678236533417353297634639684641637652175308310663260190334213450078155041810176414842279934081329491744326242318507121504396106138796916967192531385151176823418449254520538306092142838799851437794795177528649786056693937003272099145222419114548848374880376191704624189614872997177944482837053921101996957692668602489012338234879656738061924972278229208306765517031285954550403043717815084391952891631145357458364011113688559999894672259069397371296757030704635218377848389415134370607523735223048577233234290450506140428497217231147268219276334704473654681110887180656120145485885763305243695847842298381476308086143329992439307033214531868159152775265815319673108452062784739834490924219073750743824968608024847567756752231261084747097852564854555526235553024511336850927330684551655118385120734245211430882725269165444109307415943089912993108005561997100719167402994553878238286617394556421216965237652149622790019422045569779984592245737634705981504713507756568930129944789939925785084924114157991101769051541947142016687594014187719918871807359640122039684122331194224144421541134044633759373334384201496408306597939482018960052640522453541781873986884637963481699061494078890318383548453832713987839457262820235731954541586740274939636777234658917101808382827597284415865296949844908656408512255216920360549381089738609260225802055101003659273459171819888628967759067572916974892741662711776872775903026769341592683578891702783827038230377114210359084343862297194594209590311279201184403399018803705157688756871458309316773665573907789344000837287078909624991873356305436971898032085892516166568657175559876354303351600746762048465457057640059405833581297127386575636176022041925864925884149353178342381169127504358958379792393134214664385372485444296817121464810545060505433400245162610916342268122313333868463438594384964046046437309776986537059266718098335464498195311668403361224061969269471957818372163682309397041081253199919850058831702492875674854161234377781328170922482853430841908214422967535179486575843423549224804312223667399420222988681247684802901030270003513615334149498885770121919836604751289795576158202606733977690783265978543403347797379715351250301159184690871793590984684689211925813750920343498149776439158727410001985805991247726633438394993354351136753505069579206352945983141200881453769494895178304540704893540662216450583064048860861779003189987002564958691074507671887985094577069039074915250870807947799989325013430680884741384064658759690625886611859842369213648530512470711366340413342011348338546425870482261379161805098513414864271566240120000464397187463370426785546686121695920394879189789476721225598609239494429699992505115690241538858401912610461852605628921817171803190468297753249866155502386532077240891639921539474600516593389746572063422209633125345074209238374723295008789909746755903313638403862110180405337750440763816794316668985003561086343884465519191836547451198230761901680573215636404630637427807279305758705903412917112616254594069759666431256006663078872900195918755241662675982299161437632033887827923373753448347052981142030240310328320664763786745506117936049826107045949041821854748944375221804021487439966085552240580000279299639352991320776151063766718632373558642764710927320192450842808942345911439377305537735034022175269735446887014694045878258794663952859963615451709318488572779497523094779587353048670987967520456587668704391821289015504168084211995771780337282842805926931543278522121425216568697878218631980579566388640473113409373104253472872258905038432038560265148595633555540341665018296890643160462537819830772031170332950702490863124521424155588151625834561666575878346607168411746644581898427870126317603440945286521256443607789908366995018416046764536354591989032788495626326061589412500363251732339442067184647463596327292439779878846274747234832993444847467055045414576817746659445058151359993070334457190302012747699404287375877627256502844284634070466765328108907591022986428387878114165908471340013446534998140856774672488614996004919225639081239694605062458457053077761181755724290822085944993912662380378413357718786502155699698748700451736847941473197867675390884027181577953314952199039756402479689252315213179096915575859461141419296374359180610206351120172532846637561797130266171040501709617866260903794548900653733957333897973358069073934550475398064390399193571393694160171590740619772972129680309610969501897461936151134679324817510256653223834859774392772102430912568057631031090676751118317275433650641102781469385157706856082085732286610773966677756199266237672039835537038642971112130822387544856384525278072387795297493558135580419343958566981174060638686615900138133930566690988118430521248541413575023968145599901909124035005963695230595631913001041054278803745718021888001484096824659339830659433166118747127144331452782375409780830851996591239005859249115256435573151543123321889844759669217607714444040640547371886137668745049750848525935662852040949008230833027678853057421045353923469045101170925527946863446822152129073951732644693117844830932318322987914680401175902351503389886316603165874448209402818858903270530046887845834478317444478245350885942133663013209240303112875813848247215709596302182358506674559528916835193109308592307643660075299766707827761858573711923944960430522166976625142283421070294151982757947653241942637553574261789539216611432386801809204790531368057763042339393895336295885543658787710273966805545626331691432888882437615252063775460188737475359543019722680799203461689942665504507066002704299913918999907864800472018507175713336510218404766430955348002172751982372405468328052978603637365732761877355812824293801948120662134505063252670754186490115322556484504523677476497311298075470090397560528862550891715522539627584574421953708370830718290146157182508034103288319550098814602516959642356471654671831658414480525708086555029169195376188724772459816042984813769753457027622292379216114031821174094846201359186325266153169259946740898227432312889032925774260385464233906617262388937512330571364797710240659517434248693294138952907687772265206772562854379536357591073732259339094431640061781566951446457145444189654886736947760509345720791128703479874228597104689286929124500010837093213108045091166922763964320410738282947985951288473125168763046373992869046253126432695750579074843003521620154085654923631494853128892788049371441649165694601488766037961652284484701816808794860542935372532437210139417078996889451163440439510445641006779007474271316361338073292311657353343893647992141351234032491602277761295361132997010429986014481018555881063362938579620985349902307230175087213597277553262767499479950479105036607198971621007936616902779930248140121645378230296513031143571153886078413837339700132961893080886399988410009935421368230339323530900319426666846535620974616885742025941002092831623036440211971201509928274908242840032006679441994703081591315294847608336728310382142858223077797962636743323926352781114121685714914017540021638890175902020216640273682457554787951387983158210702261981511263099481519990314556480410013354974258520492037851644060198661762956970349826674190237865901038267466359570029406643230015698415287468606034293168173170701315116743402903597287363777275123389485278980343762792472680192282952021411813601690998593148938334885614260002325923915473682668591372415999249214232330213130025824108238911374870655559877807368008696840150908154678599895463392618108728251546187098469570852572076910567315608367827439403389900179138451966452372566036659938822616909866902052319532410525478624233462684728677762759144869991136434953214891578010208130197004028707883160503869440618202234675391135719836499938657780162700932591432772096470640369829941592945007433635226072735952287888578804690828332158672778966879054052840287758095379598357422137016654685719000098922366390509076858577632787777212159063382946365139210742237131376462011833402645889973410101513123867384528384288634716805957417764717897128280858993253217593555797343896945038805694581571459054193243688730394845179454704285795299120629340611706925489427949436200887038084740132270632541174617269100816252276647002536423011101662217101315204969900252312750193838304508995047681369867936464472613793902320824834898387239413081777180936442876754928700655039132033115000970805732864260087004279270043638959316412390173859546328504205298894000682725443850469938338042652211870075289194644600566128598529590568993221210244361197746182107965551236371679184616638105256785302189839366242932280930710867255076596726535155030088891991295563423532773942159855236930489432799520367147059864787466796443660140164236114802191029893685393604074894119873193524152018942759944509876750979907959948089879449403739617622761909595143664637138009146891810528021678737904049748583183064158332045491097684573428521280902291449575135691054099242125932170715874029934039807535286061546804875994309868906474085855242079418970125979485810595436474359080913757835183383937656200274493881787819490310107614050265257189461766819602241845460322778141540906452450527143175699912833005560765176805348839813771569715748104997490596670887873176674872502388198113941585274898443624405172935243958312221782557128795711463517854224285117211897386296502822524744192750498402485051176342088808158454010256239003341812783598414231329033381953009505687852089873283464044730719244766463227786638600146065372376853656489751879212097071924430582306791720671818029742098141067821821678710298245341001805862446664078041772991091332560103225243803283221173916652850209426191630110578885654702889380733116673520856765645495027809794323517462153470170543530632890084679158906611740173294357751395958757874484136542120129962236653696537594091146188306928516666075885081288528547537412717230019402060892354349250094435986095926821689989952514141839436631678701532537421987983664981131832429658188623361295235713741447125154271537858379655276206209526840093401759505207479356630399383552110762038421963932067894494370314564847449548598465069471735040992783123099256038170097438011474352965282190759622849703721939677553011002540615028093096596750277518023601342225236030426710454437868603057765883693663390665834155814732326532407763744905625694946872185911609321555792141496315933262344131774553469440523914201037506199595439598466334127893998246220051523743032262993636666545069979168785694344086776024076468569649787309410240074593688303184572436700034763799775106875579003543691022697202796817509950511934588119567130231645950079615763494085661677037836173374967135794796727149255002638769513186741168045873802801837219842870738141333452087214011467453375386383509720409306573377065048151890039970323403386374356366163573936488207245973150359131509096448913814148492914274730705439201374077830476114219471895416254853303214414178245385097646736097666411352542965566100005609772764262718454696282278457682658217767380656057482571043010432448434383706292168490882514380928436303719645114276253645471712819179742938089000200607518015558538070796722767831637851391159170574018743347919054787857062419685141967621113795228592750122090292259993858635746575016169313816183502241995924295923959912244916497438698976635575675272630645904354115419022172111891355045664514568819508637849512440229212231215455997375118354015171183138400539628923571599186672862685697781197696267002392790257430566108728207450076141219131563906292322430602103478131514227675604071363036538953260885591521190348096196061426344234822532801882343509215745064908742273139055003393999080117523461465515159246438463225370813561020025463521566885384103259681916335265623771223676376950253351690779294029744990586805081120181569817484727821406861686724957895747323700621115031367813388178044785364973080312468878478540953448447602237082503432381305892707053548739188942709710860338790637731305216093906876689980952636525783714202786521250401587803894360393700880178765499743420793556347303772547068208497839931011004392870430821744754693728224202800934334639948200690146944908483120660230586541921096512922477862296166746219060807298680091466972714272513920997776907786842537611158487340767743089393456535570490055495146209805092132401176607094189098261530848797532766045141979669414864268239930720069443288080688623583703508533068377481624224423230164065291166926449598475657335337010511139703041758784163899022903529413646067254409659655311247743475794257649745325528908161078693718790141380329836915139655139783831437362246485072030641265771915112176369987935784272059507907401473891875835687685538758777897170934514845296276043075171111896288334651911198380559607935683450834833583166951118174836545891692895907829856784144158023453219142876132413762847608689455105119912272730435063338557916692912996615505161597230667192469397076813628799148428489055398801852466171313418827810602085826610791241148213218531917374951092695531566179346909760452149053345832362988694718325873977330610425115000862342570487619986968342273728285954690582824042688997643475119630547750667414673094944076548506211711296747631287889726034769124597077733910568675171949184382504747803308468670798776224077121216822056209531843597187178507119996271077549819614770529903511466925457597673920907555580367700642746959157622610919873671647545017964727950753893776606371731454523714272874352138607971393168533903197038836520256126342626105270333207040201829564329978789540192267839317341257367043403166763620913213938237436880121272098590368253554546268991746722855991839058918651934509846849045963998209292616476827524935868325164809876176012157736017770808285173845471856623293625420666418553917688742524814802825873759384826617339857172624390653752810531877696518737197081302021384839553693291316863303561261756978800151355960037850025469307413056876157860837655266973448244266624618365818178425027029433358073421068554156330519530853533036058331047295711635983552419417636926843032736234351869006406510061461098125270802302413105870293839619346991626036819324747062851886558517263000762253924379163971523610711556341064572524578107665687809148763236185766219712296063985211457645874088499977377778513784603824645706348179538878217812974196056933790698417000430897160989620435222406744426133470643268165077982158991387631806701705403486502787411770949856556383064466417510148263996910643289184601507892402107429250401356366098915352238913221116753286930661209681208825214384461074481572942703745067440122256106036754778034689443996957255785743957424736292491284885353000616703382357892100946164390867642140403596605687478511970805132909256689735678973591605977275617593339392051997393670515881611202037989730287845163348380414640800783776064264118853960932241612367111034265085247655582846261338295123788338858509310988006414502430476571064939329196308855475134745569795031315301215484046622749962695393826409649369073227651683984472778938413676449726314379989277204663856004061328047815099624359024773494287068691000571346108026055297514609901091279915631232915758458329546609850892531111275168376808112465588972811019861919714388704960824064479035831343699943158584326740633093618323185617973071130804571519442404506558007771217572508194983531850111271776455838531306752705702834585404120582387335643177905169510035458295440643454393947041100003062377282987257843485710912740582803844015000547721957826183660417078740977950585989917328836074616834194272846760763793403661098576471686839080122447022190186452757670900040211888908664139229516253065739008059064953520201340947595450935856703526946902799733964353020554836475882070671020071675770758630071979775741874557684924853910220542547496598814682030304057807698661163281380186271462514343132575500832434994399837001491637610930393650400239886460788452852691073394708331214252362747249579400882446664387824328153751568698008505354519514822522411022713468023971648242392446745906925058814144003966495520126580910268851410387658787632650625127111189083383803653855120827821157938960400290979193639526888693985204160867371250128528683588884057359649882119741989031678027300327728815033077561754206187684165495874689386522279875478296616390759862289537225182988249110760873741211421942682986392634037849679957627356516995339495994371249535366737317388026120275283976822537409721138189152262710439218894868151744596108446945833288327364744098905998782528997083294442323583138700436681998148722288644985964305786871334466421195434389743246354898080547699584514339091507705342790292051377312347171909023325589018263690719439414470178868857043760145530748730775263051110945089755992514267436148791145204947310908758359906707927341171107752538014327835110575018643459237436970733639640508262608559838610866655516894406969572557225086122665916246406344270169904216071784211931613462745836847709646292860072957824184384590379545755982535309336346477688235700607984484857883131894669066729052684037184042375305290460827226541858801389090555934854128700179177550864110336198670161060682097715421018281116808278030492604028089231356759787514675106781164271932471979322155283793736420527420036583343260742169720976916779031979011980611131020658382888394452978740313844718316728100889882673241707592789813357565408176509690725036925423529050064559629061918608885504813269754188199790582015662540861897950542315404466501608365822593981811257365375880114551396353441775770040376359855902800930665899277342355943167857779641881966219715861017717218076741424824106314379414709644061371496085764195837163034724146285087346962214916204819878550867343615666987479075548997192320440893586580356235737641675004285294109182617148659857919859829485492068789576580481933323190396427227432513901881393952293318262261231506794517846200914123782482908004292138691811901756827533959276422730041453496141661185479721904600128146166777273589619049889767054770109782307029207898221292012043215239508014385731332994856561509656600755450866174258258105360763084245235723151212304798790639241876405273531182418982518950472450619546810306790681533547731256418639103272378852314500189208404595016427064229852726757114487380089187693399007529360638800623687028596549076189805139044497285116178731883181551311913191173341120493010753948606295376979795255725298503096549272072297834236874023253260884089190928184961877420803804233935378434999434360700185176849726616999863058888392837367144059241096998483829696917692562684444169009392325939595153795741252529381455454032926365835899113482815265945538020860051361478342132570557194686686920080593049687685207449902857522803432736023412141132437872892908711410825206687655714462785891667112255213942057526471374378924022631946507569708672837761670761493959322036543833796582511936790716063628581764766868337614844760986029911024706431361988876417502096692780849066657669027738888023786354067643710896016918180917305379997366016985276631265705179188293020643232146842419293740428538201945686712240889499342100531211537057431850088316810437782570892461413359323775430444080387468463070946825214453509909624932312663162010562835939714692864559452855397891560440414890495478380343772352509981690283411338059338818387189173666143262138472719735348442358829558214880203992950488255265481127384913629912745386931679245384807303690234853624099017403653608822450905114502792640016045774972784576868641449469840983169056885381100376425901735579193088069364820743165600767411819687467280880107930022339727379808905970396854449289137857170454829060097154031005520644502783397601627184814273141516257643147995367978441574539589448125145056123162716847623463164898164890702173187666871012283954568280596129001755419573675026955338418795309715475025600327405547868590456167373532885867679699014183879828434914934799954946784534879971584912080386545566122387730680562033656641726051770547735871394380700205951474303382896766650973179459849822171339883533906296109526373487785130237948061460482168322771756691640464933599250863363085960493955257261699376116103294687295179104935537780673330887414512231431894448298529658245946491536658296469569941196765317292899738157794822480458062673855447855020855495410683650216308805293770972959700061709925262000402801377304080089768164231164412966509923265398052146074811818612075774986607676654691299071264369085458043131833898640179072331844773879229293971942466054055300586171920883629541574480808896912224459050627868747176736584849467929404165724296340357983515848268159827734796584837298053111583833972704594275719214986543386812072390981664274336615984324036183621707346826083281814452674997880144341882953638843623868379587621393786446013544682542093333172328727626558336852133785020352278430903933728846216957634723475151933841044717399834583700491960664406894912924558615241183981176853504091399513161259354827962513497782857783035088781355463537053617052985107575146556993469809949804154521777429160414298119405476314101239012020273979490521430388931730869832478859504580056008107627682660120990368405378516906273100933663151903835404823310074277644697075084751178660204801071264809406018730041995114692580043246502435051813524134582487182294901313744765248640974401216615499612257008235009224528224516959974242356543356001381894940195700483858300004956619573315742469299282991556283148477153186731996795170050978897358952222025667653012896148294370145355603135871471595614064249578748766983098793213806784390633246508580262899104414807681708383823178351970706659251224740953959270032630414373907969140101927120926890778614475919422223239631802446826184755451897782786023868951564305437882057220276979651470501398275544609309316256515364636383762994362673849277516216888497326491639087841194152425904892261967059511683907351403430405486589846370060047731811160072946583284572079635888498799567689947982481958262162420489965582593579528425750910334696412941740507444552792472038171152678535329529754723318734645533386325753360073369076439395760133537481690185920775458300495928253382245378864802863082492567843250568635653525400855798247015658877751024060588683532899141690462788532140879072675910225089428824185504428246115055416156638063828709149132002176704827721001372393347258930065296999159734248260508835614914504222562356609434507517401112543112407032096526043842510954561732596972250573142959980538387785583093657520708385496546727952118777944064555672031629834918465602510244867579507193469536876566193989640267850281883602182686548001490211308517756569889264603118194079693833217463290432862086326621686962320274073897788639225964657385855596575143483335275573524575498882867895081806753294558692760714730810700996061955747798144567635587178187937772882273158839332409042094121858268358369808687878149512338766212698948336611342825304640881379913280714471424359421615215709404570167006423026947777221164301190953164927403678490423662850335817872820341699853397079167538639159146753733585141651823423226663502070451133116208736745649839935840389541709581020293598967239623984270681582244438967064947431419092135954843900757238784571581159264718072453189184551655364145803913307538697177552763613123215151016872258797043531011450479322033941618113754307262008693158964286819304648871705908254838719529900879787020834089716041981180676252218441446869038300462234688868266977194956897544304475037568604061626486747992781350374691737743844233369473720979613705793181117257093089127990218560938000444614965726700629984361556927263141570847892273939419966854818077977933772859201589517838072745664519928811637390826439270198909975640071715137697945242733274111017420943756810260035826934360000218931176690381895879207603224934119875945406978982011070900281122092089356606440883029676467506464523211765074435244846229523595849011440521254464886339942899984034804778504231543626345523746311730891969181818497917770205245158386982965920714602104102099435574955463296781025016930993578393677483572181682715828244744609123501630271249628345822659937500846823305927758584367470920813323211833088797536354681542432093597076632464940894553087411623798751895350013041756565381478331392299947605101700148732935948297649895405902397915142572667875487677193841335561843142004116642370195001060614610526155506464568358900176662092449860487017430477128346068526534045364689791044164378392912172134374982658057852474202183316276283105914955521237693685478473820086696009075992045982138681877447853810518965294528394471741651810686947318140583415709561943639946544624892797710905045106655527921602589537164968773138053224672690890542185526780719692553202984383487308718975676648213583246898359558843302391483053415167588923996390483580228350849117866461765025225177729755257855154673394743557607418667458226036194534771136004206180948336033390440611724584665071287488087154355645983421266368644601174146246966362203661838703295104168368307198332293137771475206004306487817621449625434993477226916206742092830751735235145796832405586972564896827916533954662901174787199808505473305996493401742455330715757359605712351895017701681341944499306980973933758351655861480240334625374481892730277181985351008517911056044540202395690477250195337547320115403707273954540363553914547450871056738977926771041432670886383973918563474834129742257725795334693456013318874714560422767722437038629447723979607482489127770894777116974755498375875418212060559102106717643499909317719400967249790523897853685194700468481806251743282475504532699090893485961838941367082659603082990514044217948014513925931563307361158806113785869637993822632833915423459288470835870623270135438684921185103336571366100437621206646551626038513140719994480211238055152727893924066798357557214968828975638375109429351934424200123841286240367478403863066000717342979939519877896918871038072108627476219432652464020977470186397683322929264868054341279149962920029551197256834024839019661102101495881484902495614341818785575135854234894328336882850365915002437834516011294043613044788926900780050592554820448538584076183499793485674333789327791171179069976212819236404956886237432445684222784490500645870454896672027003741202898777764503445734642788177528348078065467436360098940380372316986590359890742024353703658761968225601219196443434196144753846238613289624665827863903312018077285025483617825481858893083942582692009868796452166379120678535143183650749535108771088953932439476518498878282992575298058545373997942173972241285523059307069173356010898346205622314033181483411713204011305986434888133519344650694417765879019427429495408284907745230355593586373742470608052039049013658653305324321718221491421398470519134938967313411394341094800165111916977759484716420024754605539937875000673847605144628906762472732193863973476647457056964583258160601144541019619592641605940502027147186559894547096934482239645540644796566002909461237736008756320035598170793430518779530914148224388387481832855463597607632295963342987441229082845247667312552648740184012553805943192274565211451154792082238368644222264421998399553554184733932537177194404849287661644687297274251151652197349914902194350264662907288380355127205052237935220151606516976060531000547886423321010203578611438909612511960748974426867702515764714820211922177811156305672036399061255823910148898545003773526451844915068330839874587690767773839328116935272310724549216525565569567510528733106978502679880435946075827934971016083244522586474366200783488140070609424968110916753264274974948899754544229388191663485006006015230939574842643182501213748505778291262454313211611832196899091872034498513714110963663518280397410860386017322482805745869302132978690831158654540064766433412323550738449482143308672193172014981804959856428084028814511469603221835440545043257463158851491533294699371463074549323657432569932830454452415576252953950103728032597567906458297827957398603589327478756174318551424652735487350401139238900396604572183945433343768760512789859655977133992412103688177570447941456078252395296873230690441343991091634171541536878641765074433038022121112005084294951915694179011912039942501841868443934525496778815363076388291645656147467764960473914428087981018748472260400494365600974845350138362624395248743177843778028555907045499609507455227061701380956216194179078987343727226435173857627941591937110742502925778736685781730794102028493722780837587291063326203670943260655766068628241160162588634827058836467641662322035999207364848533236640548702047036104883977974480386726383290586935437128849350626091151413005510436445347113960165577701802625692331393031712636424992389467166966669748692033651647805585187797525604999396850438989020349567642958200890268448408001653004816075493355381034656914675333966896389822764595908619510662936553461746988372068962808550522308820561915749371125717243156917823139065015970053968456747622794654632612548509731342594290965213932804776519044492219342034224998083040604723123576676675157202641404579768948736491681747051222988195752360445734105465684871963213070928326355288875302867527196501970727578935052739208752229637939256265641867950595166406672270836693591163083476439752692399630250798032959859137676377198390220876196903283170244349797907834024438352688570395208938374731088371918382785775133214997162289707782463422053363163920944993810207342059441437668346338121385329272622057688310358699931806976634353103226996290017864294141000265948430789556511811415057228591003274466630659078486182178307163392658594667149187767347584093224127128436509924213564760988895790548257833147954825584924517943983677538555459748247901465163260428819416870218392468621945117562152710839467845366428489760913544428968973106595050284344026238716969726039153261041458216864671962512348366243029556469498488343809802153892337652961250949906237871820811690486675769682700445996108585378683942539590265617964408428948312867520074736763536682405333879202179234454352316110810786004685936805984991967402193513203372596172266669781266510409005495358570228658798878099548475445399126429786772226844174655512182660865378884357464200517395427074539904109721259083462380226926002596765291211636922271137540161086480761268859880361188660318544789037546122719521208046785831353744289365579774677458031096703737275030912023230769657831299483430040293094830380975616620423317922931207285073222252422642976552283735445382756331580027277265435452318397193403226509532203283642188419709633545079296420733958631876462773284443140675269926052801021042838303118740934268752542369540510481037380975824939219761209527012464385073412657508321423411473836603591635646455319583877187959464728702494463983469971492796925110798462578841550370017284045068868841340897678080007343692963935883029129277433394757636222955940587551350007327254857290452036975077718182234212100142059575089972359897818126244277306208961209589508955480149547113541766545960790541417581642793424519475034968067414623243093699219039502859467220989431696256345353965478362215431130412735193224739079783135246322393753476631255259769255862444803889798605933911198879870251420895390236407887347452261684084386991612516747925735356856586283540845711982121037998335388010052539564186541132297704067206221381804919756491699737663401650684097034633525615847125406585893150590947048970767580900307063552492753161493845049129185701186456728536341898097977585030529406826666703847692030432308791236952441034742952463319815702295109518100001380814982300930037932586301819769418880408188635271499983521408068579624825629369647383116550089337785604348057788391060567484718171317868179811174390369931271684227638308972822385212256804015383413099687462749315024824542769215757930811255906895433603052663093514550475571247689297481402505034685868054009926083334519621404299149907536522832791307688785273974361129442067134097755863553561871695726188374365706492932040347754746914743614595179358624128247918312768206501299870207435321278241068141863841048850831409048248541102820423577905798851798592110260833889794948795261935341222815479383253298232120387862760828440901929020909388784977841725708311864366486132364370081695331669788915767713222044546501704791058688393688446756707920031453968062341597425980328457808649390159533690645862196709713289583561503972025929830494287820406588870230621366368178848245317943961702245547437861286666682495840563497370368723196243612156664106508894041084087508727262215414275209646545283533673958188278336779162997835966498664417932542155887952268143122430695945667958701622146516209559016351187870495205182950502523402998400631916086705530424256500854512796393220613190301600524380321697643285580108139078478391776880518873882610026508048257834365927490271411170290307812937203486610262700866861614533345946998974923690743229787167731981406435847464495124570910907214585937362123500664580379416114677505831661384458715453707122505266757267825171987382385654526808700570606734136687010399388458098454971748023001389069038685927810662707744408463657687594253751157886444458810998316186031025101092788173667060480848897052125645493772664535802067537403315259212872723444022391547243051696506125483808423266081038997647505653530352302230364261420895575447282109199248761950041473828082471303095342806174948415571232824001240126835163023502112105365896323281399636998996108204473006344320456689628877100068992475847040304922874608958575714026536344431199027818837279192450291088533359074060776367653978018812433103461592766858766961267640696524890765623587117148133378676649676094925516374257892912229536441924266093199580851424160002305731464779321409276122778876874167020709283808972203483052625981107074385042392183517443095582582442410035312272102323607169805419374261851571029401749824960687550978367735317405245481243754426167372064851335157704973477312277559173613691837872524185106886857179873169801305849755505165743506562830456422780889609457336349728119981449818895875598215748171803621323062237353946195003553025861872780608030738985405138279030537343916089617516982506639023591373340865018584959501153678926647261625959797740919590092621711771225857421354741985146132367069456543797688627843872739177025175533611320328898531399502451633450505797035802385754466648541297467477593463320364827973705404611350268033746213811371647270716154444952321788865838034021882911333354523458016860627376059476328340251862770450697982753276169212560964868478870485324439232696402233958630096528281879244453188580082165978220003988423580327293330237743747502253887502096999586277546822216687332229230604302114184333197878204428957840069200432771251900039747903522505474327765426671334667583905591171085275279706582794179794530736437675848626906163098547968801705199451780084834804754035871925919381439589988983114713880050869116954512140415008342149448430567052019451560746292565428637874197331968055600039324659968548206410511081957459302938316342903751922862216895544042447891858237251149704530856013159283180343859834361820316001017889673022797805980387914247849460537792799130232973593242155017594504560621911997578951479643259119656218273231646869160145508536223378254093189413517650420999755946259083507691698339551277920741276789405179079280191346593160935688674317244372515248906157184040872112195026800591881314213500877383587108230860395250492241330142897973307336269545911718990678186373447050810974344100113431346267090338939269008599803217714476524194283695333432408937698250203848308437889566340015729600822103323259549775766861901799491651445395818173745134472074613898846253761321846163759221333213442057900005330009005233897780473105281473000294632748672512320019356774490608744765525992578290140785955446704500635418564071564901843299970873984767260365510610088662814033710792709892476217706177853826488240107257678791644114234754893379310961051431374039693960464794655035252069200032116303651995397646791241873957672407801497575973473000491060301181575833854355880617464513934679114123939211262012086436346330832895403876984567911924654959165126601863947058013940435067337456643657570809814420987874983237157696760009076809971517772518071168692484686746948165026621535808365159082743170979928140606816633466443043043172469806885772970901384815625323389933872361210016585052669690641705224008895350355237585230957964848758248916472624434103850477900036766302176105590987169229633692652829946942737809071691367120048858023412758601452073967074141957820562435547395641830171896524841451106363063356123358775431028368720712523635409928259692175703855805158049599331602283010394276750239825751499780267195723803017017321835617810785862547643218009686361157822887162057567029684373974832904751297374829803539687810267102289172815411370646859752005174071910659830331798094788949467961891515852697419985779151005897712569153887385287315535942735944758452513215669292826149590863174299030073512752367920875550681700270576608399122482826644446889816256331747187703482202483235273146743606019198585595795210700576938908434939752089370902023004150453521483240956087248611282307464392121151440831157715064561232303451239317279557505499227638742308335065002962636624415114464905329209667756894322865476698516559792722154446842713612649404909195299747690417062434516762534652914680845563311476232067260451263541159969432575282376360026641342469512146033697826286920008735797666113192536383487739341551274601462361364615617384017729253859144971887898027340424217479959852513353814463815353544935353099837516419761729794406261985215570693997891049503676357386561033007239944262430154287795187394230177183136756769435180552454717735754811592825563878571884470518525563541420352144305959264966025553283427070820895900613450542340750697913367643269280398378262762983233243883016946598840863604177303019631660029540690853684667540103875123597263430283251214847340092184711639411436004019046692279392322176500367675145269585009653557137504996364159046918147389996966229451362410250228128756935406452530955291508604354428491811585015317706730046865435398087883480139624331247295715716743838468388585031604483099022055639131451129595026071693501629286716485870337187940164529623577615121480958554329633658121834604667165739740226177122506293200463256525652962620507228859841992760154837465632195871501832150881599269488100548231971881363820082833238424733248452240212728162418014677193461172569594952344532478519457104288280681649278133638203665935622050671653760897055139985141404841065257162285022806896802987110964056829854763880336656510165759040920841892986717450116249076017121110436690508516346101356129094533125929275971915914627258109777848163932242204445411540664410843851312252938835005241274609451960690610142845682847953123584341838825850431525817848001343616858826881497319676321935757948433721888261525991940175503256356025201491967446870548289395263827486161385133743592849242426840994245526312828823784329698964206307549615930820720887508854924878679196538744339373338739367404030205442022362930436916024781088531805641510888006345038889802381908217513495964864768380380153156132907257911561502776919856553024851200542639577216692461780767707404109580150940966351884584137334859805310922141707228017795205145545473206017561632498584540551314642189167996350313077642797909756722021289306203806983493133109903402977821745736791872650486632720155072650321175124622811087409064126914508382471758415600359207251710227783788198141232103175796320819120679565207981112678080355517343620178173684436073480958403300437561337953366453615743030081479545960452847601236404487692540349166525520467129698239081452075980539520306788643339850413819714231384062844248275678993489103510198199617635895087044937866316676847376859618984158666783462925414278292140017488162836656996118105049877369845724413398185423278284618088919791739899086165470600613949826612478636497506180523561018117116236212827348336606776655185214737054207154583250955494738690450947472621714166734364696224698875000467472392156733071797643895132395481406523292769960736887044983682420773839266925229785606547175213830879530746038040727140043311920164038086516332884983581038736609798406533287095502232451261184726083492100980331097878996965590813355233774989811621397559135988245233890451712936465225549060999212679214303733507116012469842667072402011864820725823396151761061356252007349067608412322816850531761117467728235047402528963302839963207870591845233989334351603062274597285130471053115796896756167373065629231727357043443097439245620416906145403860079169816685316821748200628128661344969081310963180447480732423461321079491232897713978204578248112974516607416685244988383885784148852449598949661177329627574220265741382479828552006986379908315395582078491822998992113105401536500905454070682634008575148017258157184110468199298351682744208140190164066160123007345223867439192498783088699102109658761537876196835071459725901773346893528179027479985949153760554040087642150671035050722095333243960827026872329907341826994352963331161557334463533021517031805431031939159479794684451167635188726166257381526676839535331263305477802049383175427876482179614121562775672206611717218280939391040573066425770210323541703494637749815805705558176768847901580489112373162076583651141108946878076782297058257582428027694862329793087491276116157541721450662733874990573111564704004569821595888020375794065932643150852335607738428954416209306473348137388758278745819995631003628706328594373003885864434765058913814307704008385285893941664680748853321612274740517343633729756070184357558006862056088042961644575950231816740647481848408293879198602451768552786028100489375429665644005819041326312538059310286852876813627100400011822477808502900068353242592787995842183827052699430267678584577426428025417337819934376498933451501276677611777637483672104241027867891561772018567073613927320558554728996453786552754315457534630686857616672956798741789556192402183300721220113087494849178772433624190556885490724326538093231751418632657185927621851980350388372860086914415347093865432292914642414386217078124666829431179479596199693749340327558784680423764639439868568479522109920666370939642541508333086842012811742716702113472035904377964403896516519332962521354114120116001859791634862627870331571230845163885421771057267282095413239655446786075467139391976558085059761383617495305696634054381998805865380687525125686149155842490267423165643660826051789616286466920780893566721753562075649550771774534550097271378853809516724047961429257867837850640010173501024242191417427027719192640049030509517974394801689984973020994587367713726076984217598052480973906830415668379837109327727465202800351598723102212706450337244425029017843089246092031955859818793756374579068476333193127781960242820653892696762922170028405675853120786133764022109739359936643696151129939988469279754451084607463190644378512041869196349227520414198910107302660074674588880866452615311183301721074539265158770453644814441530417847896473395361111114538852484228277090265378476728115398065409373631018350213321574892766514316366447770430175463436675799784152647159667582527165897746785461332051556061797936946486675717288600730481325310567048358823762538348870058460496057193168124279557212713366458086471506036374961816022041158611598561640781690560497973916048316011186048694446535240427736810284091634234376864696770081642585959989153328946184581503567518954639555828473292111028428062125999959174791169123185820013871531654903716272377789082159646005500725538339153702309159486646138936247400885720283303115280856906478014954611912008832301167852846323415172264354572153454772410058058449663416540461989613214671170350075490903041026007436084630087709841837946309119546596495305480354285674977265013566576030724958300398881062118076685929913409607004535269508408484339866068899356530526895495897375040745142891881960785108687361140403029637395754268887405327896075321211102705023782005891681124314979326678522640834987848751982876762761038080001096151179582183940917213195047048744960794531251403464373331491580356377885128895886728004828534422989416208590008078962397243687864061566327315321612793700943834088268010251602741084767153863157939447540143988635858669980989095522027703012509145216380819717943073544324502809921086955465507390695938687789628336812948215492696412969725947951225597813982048401149507259753400145949223430688176239650785273105974214841871639428318566679133119779517835217980959080950018358383352981657108974750706961554909330164022039712008689170752236420882372378553774883799388547801067752912778632473761280017209253171189012422699324069985135599205201739162358179148701526351738715805023787555534875645729927930085985230424234560967436610970125205032928219131378354381353053338705476343762198776460487466139736352657714455131789322824253826823651441476029035187772007635404891162470380104730070056077550216568103447311764316862762722452283291873127687941970615146579214066399413625937961306003696713191075936010734181136689423048818665561451564915870273107243842022441082376006655707999535581198240478064873251944833968157632252327381646275491995473746865538151724016340459816725330275312979942034412436177408128831123372762285015535152263083041635977520249303375988516874713252398486410643411811965235110203412689313342789314897045742878346822400846232827884313252820117084965889564591830462567700086147824219182799666008691389195198034921788727587227520332293698591846805989349667099391447242663881581022794620578298826202497309944415403688177653129701714701573612352206379140716368281970063590761832118300070202532503199036549475717660040194228303177755151366812337650677365378180808432516040242987497633377218241962289773316741122235907046089638372422120246822974742168488419155740200894882600662655445645918448895244128698863213031067616236788040089597482907275468984170016625760683540354769179675858703554453671640593719424866744218749884644471258064379634147167323831597654725605087549233318530363025722419576240162232309692576276542131481639119080630418890775454269499619975279199367464269468351436319940617418784205160090063350778452640479293021554871354174416887302288471418773446404548768475298439568315512962111511104833591175339522250773111186173248342445036532041416454394565678144028001604345973424174004577808563185482600164524508512752309295252806296800762651086071552243868029912389909920338489784468620725250507191056024628936831114447572932332994565132664254826729085103514161311152344731836077498698037721964199403781786973243823053329578956856532812186245292895309479245991576561429310574344604455432180612695983518448145477949570034302323333243398081233193686529240824629239949599500012925945087122545303430846033055331236909162580959519311493710981716254122674606033479401619464062456929905437209240770823724471007218114672943886453058001417742613995411193624056701377245100453315155306999808342452114150050427741047300433540326462028926583700444689357062861570549389602157578364087685473199576764358048168129178028376060814317864720728415798414792546897016289209210161626912405510584524811767500643047370177538091989794787106678998598986545868899828402409695896647727328911466617959642033922365770249135477313185264517838198575296728550350590706912170755538305763630165913206228340574533685523587704457701222519264056824100535474007014805967453838617994992977893105870781659609570584713113901994698428701744611374216752261045259474486278038267367319106878295710684360524954908945961526758053373151624325930420090024771584775574522336528916643346833703347328432144058627882786015325541135028781371900304190072250279180822800263093110784929846826193819359903529681876885292159392453921992754417900567319080767527698115867056395888061825430694421706404130473155319096244680253235142860283825090412166600976426204941014549165924150193366545318538281998848277760381366765962438109872653334680746211707904395510160006221188693352147371576292173186265422029651953745774473908239170235147117462399778411561425201635000826703964789781146788328492002225145866702169928004976387392993549822684525953401458525943413863042766871773139926629492028155168376284357242148407504960723637949241854297809249001327527739470024261366706044186678529949279595134638272960159873546027462713241177725958428306538196179603879925555356847307108167610519953101060179692010089997236113785360178741591946015013598646290209192815167807984675985508392739567152973456658594299930803833089661146843499326234196441061001056631870140617817296349410097396308512175471066639719459381085452820295321077398708415683473805478327830730531364899600158958779938378539941411712966077052348629246165090845025348519473099813484624580165693765830623352823208230950167873507039414815998087169463037624994574705754151018058605334772844967316227292760975668567759321163941578361756532851753184523502695711278177057189063944348502492646993947489028900302764553950976683647136466683455201772213860192371181292418081651467559546461542288884173533291106183227865581940042003234692202530068403124884487743235037597685896470404588509380210850030984310797248546209418227823156190275080204022350364976199223639969726769750979066423993753038005421328097008425137594613165250028749944802691376554311608604221576183142125681604435598185931192263671647636020744344785608325098015466817956142131869213281089148314308591913303774190916879267561446179226140404151583947192213511490836903139747951990723610927317753662338222172232972872337183496979263602210490590099884120025427627944180620283309394777904526234465796262573783082080716147732978056054321007595359423396198288240779432551746682712067115855922665520073820443303694039583470458112469471620132124854672892419723367121457040197837627629849359100845733082562572180727789383841828388234736200875787919162781125127163783991055656192801188157589295916673681329460329464578666879736680232404251165066450174157081022630370693105202196743435994700908227645478846229696338482641853106113303746242884212703591646477338018149639034228539594394541334414462002218641556734810726343594696429710470682904732812388291358913881047253285911943045868451878430882705763498504779086747765543043748970871591813010155644865100980103268558269147788828347572379717810961670133990361851561468792686985320022047003969642037377409552223780041181892955779457272283593481771403811875956505873802095431537546956097672626949336585817576925837421701328541544222302960184711936880070041102537081692620750240627637092867263834180173175709039135821620802760620170271189464344258195854592366131464334559276458903767662943835453786678947440062763631662968571692502975336588976909083783660334545116306565409078270659373780614302584046062911510027440178013624641837772521826082599929008590985087575590129418510775873898577242883482040600923385712476664630293777048462511249191102219622700333210629069367548745948046548393861452391822744394881703095569641410493373233267401635012326478494343031924166860264555597216567364628105059631180188592090006051772276651937329337271624218697530060495731946718425597837242295138183566006932780717218790937632625319335289035860049437674179261687067377853219030855584618121514241455925030503182001779244371056012046995177052893785293039302063901727988986406510443559302177137947516773379985553948072052636443266533019694400865157937818997449279090322589638613878818877740886611362418297081883628566951590232900647131873583446961560908201990502698804746140100161916519853320312091327701094620845432896747138937429920923891630693130219643073198354758922838405922260493284353863076610021314848097711518738154917039165586226937064400309445882260725423061484600308372324116279617493632789927655253360629399821542168019035682177078146371948431435451800661916290654783271066551250263756368471029715277550781684157082520827028673716701446782655098001032035337974136120631541139284498243563984919976093592607875452770109626225474515742734421579928714970134269889293449968564219500169841853489271411647421382590521491184328864737180235152243027533773740331244304097218188701461448850714775970161222137420255686138563258973220452556570771540864109737965101445052181245110834201895748184594921161647322888661774296979584561681843406911713948520423729544767454642884756814945257666080895289546160157390335725546724795807841330017886434770575207551169685211546424415415713788404707888787172383601553346060485148632368059376718037335154978555578196437184013185339122287328267617115875390594959452235574537558954250441361951910280976437358695658971731052650829224707375829411255755528412700679341344984560502767960597887072473247331633706979639247708879722500689334442211951079253565469829891582584421867956505663502284860624025527347567350455965126451427793392614316103626255345060298071982691267503340797592169703361648274706944084931839202688120946091093435267297787082449908946811127200055749547076807540618145985257721033489952137418520635668193844836525044592614966061770437852298577706490022527805469720980403646659366501695739018474650658477065107481665843211496200166835629948276802316557204631402703459636062280815098340387638153119648334278449953389205115213828200364545889878974515064811032806534200995274336834193004150449200468781793733302251826946252349868765028640871935694378634618931599221551971033991201038740783268964514126900141618663964043440932332198956164633629710880281382686865591360193987497649208075178577275205467868076931228938563052676472237707983578211299559782016057265703992032790915955734164632791267494320522851664747974538656878025537572052052485854888226048330119945298764110146294865838680212804351279415774288665995022830293209306574728324673957344386438980347226444680943334239443752324297749089996746773478948512273072795914427374116686708176972918404475147565538874907411409403481798391969377832542691799979078905776372581518704281350658684479633435674748819493358073361520666677586584770028165114937277751968039420242913139016496516873788530611415907541837159588805883842853449621872812677714047993979236713821202054470525902404582627753395388147239029825784794774628749572416272293781069261326761981168412430963196190159896027307544876292160566359266822168294466621917125543769304980909420051628005696632856935641520843154854710127652897815378111033530422770568886935355476902328549846025787665150405625049038518892096232164763941986628013160280077724624265730754460951816818115279909883011571594236531037000913707109042880029252730790298143377434216138399207663231812339310526766710431162248989585834914579946384661905009799484924451627599298276946078752303635667314168207429563000533838626410101270805897121726050735108894067488601413672781072687073926674820122069592859737833139838863091701889794446402680218772092676681067134548484952373243850811037298598530284947778267293951389736719340932292480958018283986436671021933178588237393797151119605154960179274281032552137530632609349553089578958368700071292118300823669652477386803243118919109322760080391233974739079361801868707515086040820704614619069886192563050656031767793072615852450319503644478640763078818360601354345885565496156358661377556423124710475732421682569077433424082652443508959997048237847323502243941733832246179332026724915775604795716049249250319805071928252123078584630111499095904129185069582037900261142940629476053044690322665657581657675514078143635985117653587449081401746481701766845783577448664243055832214011320086230815347186538841031961584018200691763721696107219726885537838807228892816166647286089972099245445355534301963326429650176839751348748401347621846377031903961694155393267807204212711459195885574665187014547440997850462948447909811556404327441541108911476263425219727312923509870853695518601515218694705784241578153464216132854857090149068167093407346721891558226265991335787265985722289458841453509671249273486825084642417881798915427102064211757032631126002620864702392360267449699925170210830781075206316110182743618985250864497422208756332111390394289435353353224617323271591262311911762395457934412499430463461655388137453234673200242270570051701960028815740929987946025042352740724696639341943386178004116368304767113962737045040966077441760622039168699787301968327130673680151161287555557647204265416744780467902238512848048327940224731894365242839248060140726617076939236362950988209697328292501767873134582352779782775464950725579169447737312693420713061546959008340721381010532792479352159330263862875144493757814684733373479246877210824876756457821250807996847208426810212456458685292200033036729258079927174960959567527414608321656022217215779487230718115806386575802699283023019952258455855717282773800046405494309718738485656403181632355853741870011330554723285852536627840212091955167509915595879077668745008255544705877891431380541953370503546842160980393041230946256707101693461789092861733701694235960284778553446823634044744223459168491758461719625138507123588657411020981511125431133940038771224742410895089462857531107879751626103081652492454983552503128357545453211190351515200832550302536746522183014795478094409688035489258269327832710643407294266050463345971751073652601564338942818600819972191797298724602763963391018806241271980954283937293193036032322510316673582531959250288889379219380094246975242630478681407581806773091096340255322231279533141983731018785479530936373971232457435787493475814094479489659225562500681158298832583185391220031008962708267308953477246652929057824566098814256742810984432228019111609634821554080339741782467971782957144838298961191546363168800689193580787262787978205464354341958126734194156282032372242803640993700052030233168432068554131414352718881337826975848081845695201970446744396920091370315277611950325306478175679983739384296705604147775040981400758769855389123503252199023097507878935902516228816711338843569106929310270112088640443498557806003487698924346709597377985441808896056751878824528426371828747281142643789107592520092601883294113276668320900566919621106313688592815084435159697196797401831250760474133929257408981012935376890653360296403694746724652516987035105118470752232136361632173475030535313823647800552252588896515734984342408435243748175933813400167872383342061857943850448383530579158485122086711857097756778055864358153434157952274820151663091336182606693013075960928432708151809981877918524550753408600965307997678684834174613811425951938219293576495091322642825322376709508013109545579536779021478565913377084866999247156936655486845517087063389333367034173911940732987308226050172678769369115878938481914721451114763891458823978396733645216782337227393389099481630566843147101331332773139893817515916027939439627496904119164891993378351654448683139419163793986484514106130810757428209055810019345788211973626694635946686138546496094480341492977349576594293938977681317199968411671796160775993708541245866688509807978994007986691207454946222276976135032245849412507897635536300288009588657849290830042272482961533736624546861121983268153923116120304818162574747841238991424432135523392011054768753537501761126059990061011190353365361415206011220996566363334045937070042663556936864033894266320318132533075955324539105001912776689458348831205312332866834677069135720236794985004598686654806875985160148973921476590176038995417973541972492233879926440398842179778529518977712160233816214350920512042652169032084220722875471117194803496447027321815528381284863026419698240316944389294549836603916357560971106268051665359576682465442042943002037741096675257056310080359142002295380800450383049468161318259851023415595676421673486598294154703875905259585079854796955884955988107749660966805672847395002986154941842496051059237844515791933408736824790109327307490958557569264316941310365392892600122556775229189767247963070281393142652748218668035365061764605077681018731204382634570237623754672349763262702200728379503106475108579020959731893693735817087918486279112373431723141903060990374290777352133058423515396873609633656404838210616836607009206492303079790912320061762241111407351038755215240917688641984115693855723517031015055015639720512600298741105961183209814145814239979529625541354648767283658231312555120695163111283065912436001215297857582993121149324638679467293630664201683070248032375486119989384263878141438168724143018013221504097512890034049258262661616833831578924176901874050338089273184062214458866334711137052200549321899841575933984693252362426165088312727173362744653758492329070544872192631361982086180620382870185846172037319803654164103496438588261467401952803453336692839181761874054470303354156615743938355548932533720073242947572259302382718563851660670954738251591040271162281525840838377661390869700005461031132464922800942101932261593621548721402099461466936271812704290329015442012713781839883631313319818748139848769094726557481724122618578611683667173479405521694717577262594979257511251048640575106531399885676666905585844408796088849502870935283370092122882878118927832139874548733615838947053030431767641346471174778772963717597958437855791048398307247254792579466609581318118333909860969784070590983949573703006303026371746996995012635438111303395076314721876600444927366436812864820052759399759069169909715173263658315703141598695097121749071959895861220465347361657309602263354211854955697433517330110724218837016034090405629396052675569529569997564515286665986822142923637462574475701774013555861242078650102289565327039341510396999884718285924606968151927925666845961224410390366696523170669975894693087954429170490995671964642443265748564570287892256629613063697158888022554815316540601530957867550665033737917491399084285244159377868693132666668745678570829678048109597378106049130532303933328909959130902902104211758697166645790921850410439379071627247206905040907235727542435841272204764352619212373619080384411429594430606779648143110778113495643360535809591511990425242510693827916702013477278446231712656817603854093769074546337901847928669968362048986904767038152422781949341408700173995859605680291942994516281419711801751309643835727264974432594859450312323414997914602884392103786092318594125674967882206137998882767336252834109942363709063686084042470966965537992443947890694490709551832175630340420192576561168499754023673742865707034766432222388921292928536431080096794087656038488756090524994951346036054384508400854366998293897654547425201475637315830418347749197838552057465322258590399010709679581558662453601232829830006585655488706696685733126316987094625856049368070635626893146351406256778162741448829910501915500364654195294263024124879578564659464564517788395462250965656266796364653789347446743329877814117294343298703243772444694165198636809433995883988312369282121984161646206059285639101832344080061164567990876897145468018520642260302394121678065411211565667490284375836877579220744353722894927722375811877939028545913022218200585973834273743073603042481617198599052164841272450777279312476361577875106244670696698681281034801486334085089268722697852249410324444921060819498763702442663430409564683784307817280427652231602460432295066618435852009919354244537801902751236534606257771031410793222959493149793728911918691961579658752799007668190930566925116237534222793741854598403331561885932062276462889746913901835359318192710174034345882095054234432587127245652475305473388576972437645407217693999717080790911355320366510139365656617845866241297652210529679895459414677638159174080812242794549320708698965731417143768666711217138651159851522284259172938882501266744034502990917103619226479435738566104589334718021496381576273195870013757641066277608301661941689614908430448795755273423188629000512969937806423703277268053319253041037752959024345217068663280398488373887052807428792489409211076212034786660010118349305563313234537205327649863231650605015284302173461802336675004392787948692891924185258464224446935931704847975743400278638869187815764841073220690622328774820760433998301104121847961895245062022985246598642053740640435714878502417621690051185394933878522294855302526282552812100378356526987594608577508648371957439743855989734564030924925715839970007352706668382236630564662110550301079398890496797515099056492341441505205474739550068536014564848884525981743621283160139147608124628737462086454358596979476296502569965062871435443736921196893940457304159557505625987081124561004591603454932673239742251270890788576718378993445241158684107628678256990826408731394015691755705137462611993162153058432252345608994002980231452689816962345108083317803763643733537003483983589016989954768057240994317035201257809248264083553720116919695667217214177958710837535763525852974608835104165952145075966891739773901536600732396942660670555451684799997810812329525032391155277654849475839170239008538708830429183675565740988185376211736749099589525860116963703610437998322396073966275958829743578964993001371416028717778475058400694595043945854749199345510670459805590678775296263140878556538563335412081658405812422272857936711746310758528044659644146048194666783231073310818811719861773475442159932739734816412099014729507764291910046962005959488304612141906514429236496720033218811172054442735918384847451168758265598796918010920027552040049418757826810805934149930947787593206884197553170771822301860659586837660672085247117293597090175499401704717990534578345016470100910379066946001734056157021381167541605395862592850460420423970092171412004739754896154521651127864251679611584155920728483544485773269841886626506492960505359079503614130067523134809979490464431650197291051595012200008892825487245215848291318747769893664286152767637918217176729937069810170717578491473749031631176109079667340041642656864267855774113749298813434928820760517722187255194045529573983987196000943194497761951266072413551443405052519908519766559407309776017327634102870298057796327260225985575363408575708339247305845736804864589128337215627899900832742265273372164924160773741836120467985044563657200672101942508712770798401594208139561767333463014215503556856213101302301427001835331647220604088853687495400413515198216856241558717766927130410991301804833409201466721861730614935617687090354401949428498547880130747419307644447419105141620159794250827560021354325697124713001790163821930942585321970921084186910636913683390440379350724023450304790122318130029279493114450734903396365345711602041896049795208130654837697540027778504084233035501378976449643699972249386354278182341898675273153784270871110964636593215361182018492704578861900652070261696429004612372159747474264797842314072390251153764197747625623550980971079266341448026700644500270623977209429274469510077399835728143417137053080185656297798126614019240934281902567512290480200900838091601346836368169823051649677204335466191407810185523731010987879303719671233654721033630095968903728973985956371267059820306705845883526983155573434204081048032648677767004416814200517825425482988783935158968457105503518863608187088559872583274598002014656678254237965947814371389548689251956009111373690210665104965933335073877422619633627133754843937273854555589491461240087578109227784144758002905172318601122558455191135068332659734721075846595734083472668534693868192754888463545315139830903122973559534972429768276598198472887157357482111643599875497048313793061748224008729784264818416116650488314225532526435597950802835671154346203638708100364134000701495809833311344516938268122790528627899605099807948051523804675981871719107544569966790786376657308066041976531688710017625481610712681131034308948544941885563600385897781361694155547923774613756694838848637471543084184356309998339828657380323170291579166966935181382269183400959015459988718250194056914588374408135222943483222425269151345778722031588450255231024585461967878932178132815326991882510556231730453845747421539125820732417621887097122488418890546968119874746115916358267570196423269850274639003914972689803298501133018551710658418605592915399880902410951133162596663887347607617705315186875080639628935357239740120383267876209652811044734591489895262489180796242149133153824558174779038542228583462626018693453835413009326093757996954405804225241496890917402389736750598456456590830022785488965080991894472696887201613335971441513945864476236788762188851928470796994021440267797463781384896895577931857990884922362054330529396942874315014612986221748039681934162224395543081604790218733656797411930107110476094116427993033226808831202940846654260383696449806379363547085959754482232149520794868024312173302756070022657259934936502952933697982628444499214711786119662283766332155629295406769565312338296815727369844061915212694736984875820294954452059723662669761915620251288771909964440142149582505524230231028862223132314953808424561016638384394672934638482459985182407512007812402231295543941191382062954597596445314119735824816470120980749392590184351338389093502484361080842999135234314965799859842204007320098885512897426233168764158152305733117513625497432363320453091868862522254449906006373481752081432606778407652613158773172686406421132853349798660540349179908615822826460279520775540774481817980702377529681406231367378186099115588370621933631760577979127548869316860134502623665055182041251624687914138213792467933320111767078348012667787912511061747819099590187227380045375411259272328425983862571251030164338889661460971161348008579031257260785545654938909500007677256896871536216755439199266114785670340757582034546930931949430009876976027908774214484002590558271837801370760818138180023309661557108370543920049638421489592290218601018270357329922525420011023681668759243091004387301537576641660790266819963009762571319042331813737922166930731926517877124780497970643489202717618271980273339275492966937360336367972816501192215984970072518068107272867049295239260312162313582149485551567502796171393507447324674529215072929467267297377012765575105994073968635111472417942994707062924529369739967692286995941645012451713005414952807806082265747239400356981800752717438472953743109979162928343405511786544233626202231689239331386218327143092846237660339852467276663019458244185528261300598779931883126537752847631347070730358576108467616383060976144553989744341243849936351303532170675107038521497844624805088288766895852244763447072374042177547145916426359886390322875785383685270619333442086590340843713602452771056035405684714002306529674497463884409047114516241600699795621686682590651126922811002062298776501116121080415133898847341683191381500812392124207364639738909123607264032969633301602446054409152686166477742179200053720923162423902445461714710883242623257774478172432625279460108507678544745370626747273128497230955231858533308878654047781399392548680215450968346432313348830719942081693142531102833359573608482592255331311196865959614009193894472803317317965137882661663778137621652992988714601735198780735172273332795231773294526524999777552235070010498755777891881317296567625658368630728210966103165956424081079083740966046773299950828753188311897606358322990041508185615833847171022470533088200617390571607290888744993482013052297772867076543742155889922064181409870579683300488431913637438146111740424631053417059176567267479703052935154318913904504863305399721217706958428114488514058828982980846440649366970147890211121629387745265246088989658169228890865107141449475355527100547401915133061923497874872970186704517650767867202264836272415373748241036048166708595374404713329681315869354398825861551946101665218241427783114798189998308668332042098400466297013024926052426893190831004708654852180953235062541897711835542396875847946704060962002509321141393073942807263861454609827383110845652480220367122452375048207191720223391171930491635514131022108448366741694045649920504461757879481557508822651008676050205172696591312697425355879151945644540264245509433289593703325376267179226728887656619196327859457665455752412878052598490198774133279811128799476085377057128447735058880944198301050308369504514453108241173471461028723294705441538926308059397342855684037497634984402853659659540186642514039378454708500359816601309855870492808452534945425935980754235171651727077448719781467152124052683023601065709843157736062522680230907527098263257854920782279702763560549059122894096401698821796779944186636375328129305733696700655346189094134004445382801922083249390692283641456793292843763265172259203305293192549472508315958540221161588343492592827460952719528346488178294097344193357894828726129928178677720828136913621413388410599475033363340308451554553866608348657124207845551863784872049651727484841314663577535672323773317373734270878096154419059183136967687359827000260401987832770877924734558339869648737891784548333725866408144104746166910541368921147612164587222859208351680351746194647998219088716628480453891061319108210830661727540660337676879103862951151830687572972711217578374191092976353319519510959560548324204460084765334928677053563942391006162923041285549143391419077968406501892465824695467439193193312775505576959467682664526197554036298647957707936193964871728911865588732022976527507299948147633011459297023785322056114938558049457821615568715039051962520220883819193941519773289083165893674282453832103694434426853799542812955785892093607646895559366144239386113849315552225919292553367571760141229774024542816978864101673769470936479837970622659690127379378163344581862290943357554526294933689082374792085712197383096664515225494994330013997349650996079549759323142877701916156858279603576705874354357318143700753821390693381723124384747365840662448720283686784278742019884690194084124025719937811023706820783882256177997872123150537634899394290489664191527614463577041887167569998170931738454898008366352995800179880781169768459569211025085299238142738736617626634705744326925997346798204559715619521948102700944106872166071479639034717480091635102927917960131096312084989712707927649129838311301674460191805022178088291539935349103171309701468324157684337720709816809792329996931323473488424652954302452680222957259810908291500260133124914662630725256666257596698053109618249555642519337124594172509021257028692843915413215918205859466893698608277920198362505737851861324865465221925538350833283721877224722450919762131728353788252965742275449387328514846964010154253878556576608290042083910816631776135350421622368697938461506129118298852283259563234025661432636401867423770256632644786653322397464903835539470428409479887681829512514747929183267276413902662333639073892898963724058596679604539324243325153290178547227777431645186635980186534416612609890424488337851557963570226217702156296072546190574386580301185840431371936367223209885190758511254597709434771594138860699071031684810587827548598243874165161647655247282450913596419840546943172951157980055424927000491441696563917912552639133195700973484452505893996784897334210622419124755122286657734315248553292564674068406477434887520382863602256023520744528554659834092008857906610377166378519424750221846395239845140234989319105203521609354867628930762449333177769546455715670391577441774689840630259386755602312958847356352192743719096142270226823639369427487980749839746255768509997196229449340672218574622419202641165526183449147646893789390281692854040589888328431096270046740219991351328281526703356459565647524502023904849103727952777031847259441275480598446170618551488536293181024937634577837760143806939406130247281029366217822491255436682075353276292384225094096828775132530698123478879222053361182220624510260593114938449534929228162651023130584759556027243761603200884140531407411183571578800878043464213520411116167940275409757072438393919324176589463750688765121070604303713399242545903500642732293589594079894715687001883167160511383619608102161879904637258672624566157955641535399082034693032688474661367987862254261737085922550919964908207400680039848002760022661296467588794895919704225025210053951441765158339412336868585673312519354658638672280361069831804255940686088889006091472701876025243755357142084152092403987326936420877195813142503012442086126483623246246375558626450518901044995243137728964019395854525682196791849065870925376074093292245615838078948796690816645241444348582626877481915473897649904608620615035563187253288942446285754386829992998858369670730308464538143630425057935722333143598929566663983887044263698911096854286543159983455036177807411479274167285005520319441988832201181796336684698154624781384152299257319944605773135265894962548727234855947498444995583446768686620904421095217581508540415594766990654029213200186372884019003516710657743946997834909841526550794751288494071261486582890742481008488894321185665579532551923317359545927257647198575293802912537782970392977911812284615361621832962090307818084480492391456979037477433149579135321343433132129223989850138896403972507958598889025289072931693525119011352864291229186277636512444622570086417861803661847284102899555359970150430456973588856601604118451576384677509713835920838678265494229305664844080462189498912417891048628735504167862702152350967538784369911044375618232989264799389677970258572253318841458625714564111260318962504153373655680978715384360641245939065536929069125469173464964400589673169081310889599982996728593360392314352290472500876520890330146306115254020633166189690033223870844386854393214733781471225458257532437268118300387579089058272216502378454885680991179789575783913059238818474213633874675944388492781798954630569048988064624560367690391961788891624706940374840655493551630116436104462737831826644367697316964216444935552520086864344694664752783888243925342606138768636095687740504537395740224787142655665905177380357301782219906626297865150264997912639105718612372964012241765025731684387267266033645965495504483046476676932089743440603427541286726914768525160136247132122610533576010249722034609619320819090600582398851885801452128457493493755739250278540980376253509983595164456435937321301796139027397609155287492802174108970808055991050514062162133139881417231837929951182060115580322752272058755842974450425031375847267231228187168491581734140772961253518700341433597564720811465699440070144558999522781618641186816289480631531659997678364587794261881328047094687122483225143301678599350831185395485881668713685936737624216077621803517740822004379992219751271038813116687352461685603713895829112345306658766002181811632155913562177751384080045973434817318303177630271032686770093559495143564225354116820300544223144842211983471049339840396488561326042072930425089829480118744295698434807675852179758983525419190625559861219517925225792002413315712896125903712520850898503684620067390821812461242544191973910254611191249522236231782362795644019132699760201499646643856334958907852959359232992792093978801897606477664732498232625135891551615799712108128220922385244695743250080319761658310240931547445604844694903573635052887189406732676119718601858433166650344132728554897053154584620514399877284486239930923055837863468678351878567342059615437476282606703639515256315394416445522384732272144484864974181797610151909375255729056392223826992995442739237541797085431982680649688113838495178544945108692866613272097624623783851029652859853740188955065486769262367897312687936328869380184062237843523065690365160899991861137094929321527763853977620127398808410533905190800491251308998950894868600654548708758892548085372601305561661136648725662727531593390936446522760923919094333519074647372090252068639198337279385756202041220289195265296293492355327478599316518622641595481142697788215652749990369640535905058993619180290696149170703834127263795247256431046626886193886276553569394712740611929121372693202622381895433778474355573534454071670054392589718894102496610487286910326274545996607068468308288745863009401321215119284574143785407128936545706332505362564246775137831232759218373829390170929563228751762741329994798984725076969597527462804081648088998479109106291766528804357147735187720172333652992420844358915847163726125019902079109528609336527727050013233721738108522343973168136676123462171017970554943407924815329316534877929840562860862283657644205122438118917725235980473097494816447422290262352989507216948405109978809577005099262059832809350681739761279725814450465485587848684047995353682472920657812398448522729183699562083294303596717930849636972924413416475215771372326152627468020958928148846552974973808563998527861437912367460165327064758896842996948893219661424683065307181886151497172744745472481226746101234571782508130061225544215577158006635391064617972864295095460799774671043380375395261542305334135378260823302244819490276024649029019394316199906578528503450017048487990230890087358018564763662183720941099480222756515632080131254673316759354058466639482519564364300174320605506836705062493167709007801260853572217415801228109770428564416950917481669482611785028041732657677381889701199748105485891652059524463377928973289906833475226485288205776623858045936314007466596226308514296987630516139376325774701665506509576571073680659882334706862157770728371214793026115186868331126694095001924564807959446236277559338931553024065970550228209077460716852847658937956874082056691118416107166980975289880582749268593715639270896975649302824891108793733417630178558605074582384452724662238451927454914410557433787156920177923753505621503944137332876718775766939993533361962992342004506023579293700634838198866684630059369298242161218343761949075329732097704972552674534748879044623912172137138619381997399065024200197785011141609101491019222762319949163706227141458673037579160804333866395635660989848846721859672172006425670056437590415814733862241071599170459459914123491659894356529701425275156092724083674905348986915495195768807152500593264687166727836196501119707336237928240575808268800082275815563245834057753604951661499628612616006604322464767825760152436801540537650667120720701977799482250116808699683973836658453035405409805856160913535487643474049268498559244639956542414101588572983461893865054139361582190711815049652430962326614859402367794528974810166819338606646037962521914573206007971421884749209011525078399360978654240116578263833966492947014389868148272094228283818182999140999065288420340895424737255422283313708202897259105264594087633361120777217925496106469319096199751449114144454983342080067062353010771208602999190845781857304923378845447601425953877671539772557032090866520376032806328209449431726340935790544373895953837402744058128584280830013287894913639568095675895354808681827506589571969886727153061998850132706926602278317499104600591351354568846684757431752370656787941693058671580301500256506723167069574744599253372809930738331531432835039348256945991453277330914862763506842348236024859493264212796002423345945352197903878370120527747873661456398444249401316644149438047110001619440553768760609678312135233933510653114769241586205601231077160224798680777555756486998616352920435306399696329325632601012153459531266007862786323883517006153849951471906086799491898559187615334044644791782706206600396810041552092231742557190969848804359068702893937147965023787149622735935071918121141590720414953363829449351712982806837332454557993881095654870674973181825217513476498427262787190330582717661426810254522507921035738488465363850077821518243867751595374604801801798491068247936897283517962003196693502423363715753248006240498331737187801224505391587131160893432083193922202608593063905132589995846125464375673524664893631002580660604600932670605288680837647830058114738556701416095618933517087616721346052215943606779916250508536877717474637380227578397847787500381817841889344122697783816506248029143635801724307948514809558148758575789343610674718809678249470925117313175041976781839516032934163003718352862349927705950453654211177237025366235125072493999867970474956914734602557555780902938670167840713795635880454448200713887744769604553118264597652665330935602146094804491384645203526610615262636426385970317468549294533995332992338302010092362774722374880078813720881247441633698403431004981088167143803162103726637761039253745806983488569893901795408192923745250700312099686928285573352134597225423751349180188129919286502166371744588924467382024720717589615816750970703566628987230921640862334670932558863239172416460131394160880154862943713269585136986810157508060967142591121673746858638337075531830280793727423270205381330159779953797095826019969164385456123862812073526366988478577708416320210122903306778989111168533492286828617237287666684160391701005130931858232627916284556258651253992929182734405290882268617410125176488594400521607779124160826073496387484409103150019086812302038620203588446242397869083427667266818924825256699180135250580124268302672382382206277861566756977006507436867176925672002944965661134507624001732029682492627720840791680471168956619863719441083216019722265636966675507348007530447091676110875644507626286367886166136685251816200143780872193149293544043743346979394170360275910401137047593395594338822098646808772004432407749620349949772525084444006775508288724038883338388802335093751440626389487341530590189631135867157734415973451718062616026724049927215302355320016765155096660402623934053707715548360059108286420949436420286835661377010151402773072180980076610044037022813993049519233410369329571858499895250704359162314948283431814572314788328225611086362473574612157379876747187278027971429688412978387532626739638309327673443928869292682740729679220626967229853667881179317062353359006918178568389225446985796720700828684568480497732309793381953039464352618718325826383088343175762003824740820155086534848683642382852724244600548726917771579776910539760819060649708502521433986180187564630641487018015559531811691159173661587749328344069797687831219378998975714199371303482662366009051878416045002567611676100836426613828024393753076907886287561936165611174417015159930074510956301242442516660571911511719195361103040770540728512548447619643425515993703541078530578769835046917943016461543178217172513410309679222411002331713517214344021340605833686408724307834804383791770811656961259931605892967406690176553207846390841802840188348103963076088459065477916106387986451140679055206557446039466451577284163665362339825309657472708077582599069170440686101002515177829254859287335077147346443764999392157027192991532962893444673759062401314961420373416070347227823824015719007539439289030237139907749903121920185996074569812587556524707012228866268230233143717578547601370672996284319821182400693627021627443161797040831203388908160975711291372714144073263984686281471045436433156544181562855707410451302114586454459230757228385340293071691013696754230583583378526599215625582536935378099810056094102381014864745378631359995749242256290869220057886785981835615019185958630918127202548574983795310346649463407754117896137491728496528296609069102862539662713242084460202439969758387705222831913460836411673672625314630130127460672054893180244180875266106214140585578557895043258959669693852419357672917550342777586882396139974967386978393119799972560643027872040662788182361436208866656568700501218525770196146762618993960442406778030457530196448902351852867572363523261844314747588888327407754559190888505062352525366721846401059377768701401589462690161852220606075250420008597756079751842692377621737713924113958902049007042553601910027077028293609732642951281559382982496212357304629158918014892931932141722394619984412810074421034727253283829765809447162109545812570238039246749442081153631183868678791136566705933526746279456851964622301588525472826594278369967219809565282293690963375676042701756031877001192540037204050931265710264529519110966194375155138611903676710426241959307664357311432764372270486251061304281113784545209589828909161393235456477109389525387138876548426545043880135812206388013142295000368069838405429747114165640544667821078861201683025188030121239534014594426571522314296872228197571438883274027598483677410169849338511710086591645950496904583997426095400394315503898080861556522864054268345766286527505970598735842262709914725987346455839363822089275047400897622030691278936331282106796339567655395041308044413529036003448627573666535992598973654373494679046310597386248163052608917552742676898364993733096608244462680185303260081026490370942640157717655091425061924333645693440009343703604753636620008050335317124741180536074604009153233512881607878124238845832385409479785926773771245153400602781287104793113650031110476438093007982536344801012781881764019629799835008225453527576338529422207797245369977037199694892513097581496602817186254204983758074172577562660533559916066071235517081557197342327257189006632135421883871672051983091984670585344723125218412386422925424049288668896699847561411529928210616982756560641997956593072431443696255194737248869763331118500062411064132307749582636823841747393999216762580075224811734827853659796248357446013111113373336935815666265179011541758548436852933614555834717022922886506948209882093435997634070416551958805246646012723077105678855139994883893006733277159299282451365540551367275379970230231471146607578087129131927014790191348069648976754442902212396598625173198674564623929141389943799177521078965189067346114373009895294363115260484689466154542686507476791583115663061500468180759755341721833935454429018034676105878469914315810068542866011451793116725238396633559488081871000679859708172735651018138962964963673519938872866345902149708237939712923515401185507217218587875255325768104793188265504102309333320716660768593583994164884417681495268183547493966134992171592366514937037479072247782205352516907529917976940648447459680038677370900103561903585764637053142407787911948618954437835338851005518014146681311087267993782931058979046965006896303646279293714384242186233212138352864214081574871497179896115390487921752062095504070834591161050473003496625422805808845696887332641585114335836921428909235944651327844992484377507157507788768558064677799922544042334171222264679935337821577457901133672204223231664500505804834612875279205289676808824935791038218395842059353448929330852041682796251569674090796591584310190494046185488174345218820818374902003052110398220938967248882228246917202866979601150505978796891716116296319896386916814518032684137044444790649121406913747198994372261249101158247187139588344241954867933859231223610734839714687712690245239906928636707317142873646501105979208763660501501638133840062970203762387655564921004355840794094650574080504940423166827606588020109338163176904520455064135916595152163025547429300837966464581158732318815722076402655416340791919817711181270858392418899683497387471381201136302158099277115782845459515416139123207636445157960147453485032980903990811711961219514885121591010171718115030167587923642302589687268278266359015460199308984987871254914957085406673046648873229746319516005336466006548874362004487811513325609878944783977927466705166584845609356749007312102647469729380148128649715800966679305088581539633740777399125796280019217032848694881475781032995961102676378548181967554638393040784629865851143129953922986181657150909863076078867848168318050380952050343240933877167624030346687985314574801282857134856046216795135998761369041364499963211800812115384315982424461232085640174958132617393881699534523202320729708086589618983071024885511588762560705777236291625984134720729754279296478613355387950160891473716961808432021699189859235223523236564771891048486115088012887802425885247645598765872613155478449403181080197823994947852327150761875747395782123079489489996788060115750608255191564066766239434196800070019185098035015592541732869090945082332405059489224184785088607645940623136500631017126582543523833807565682017955317632070518257760628732061146035532702917895446834863926112394637872276225345483552138843122167265165354639147046021424993168343725804669510477617238224219547908571347304571879774900243622235548820244079057658466808582751033276431827990187415267254739761601537613196672243407356803221948572176564450755541779445641523003863657198421484730093194714670688980934703397716774022007812739575833784724908362782983705669118799441736357917452325337947391015462585835470379479133156975360354350497624661453609983205333487551202027024159305263492438877155450356634577506729165985624767504562624050689491713610643593941019646061080689218010686162740158921300263694829807725821021437772664770771393300008843410690079743643783917250260834920740821132194151377708903476575517247829303999468121756685508864392102028486273730686863165680721007089606723850511240855419221677699129126202265719983460632221325848085808072664119421229937509492858445210209841234557424654924545024167331534386655095809853758602934507508671870821948963889808920691102956229095698458973949479318113008442685729440738963634814986548978284187489094307870057397242832772787717256436222681515824417660500112391286519552323011400507159544455332320077401798301880860850825751612361274927802137464073779359080772704869955694197334775026733545349241926601848381758152748047304627002620652480949854006519634831204680313017782179059277630719267393964843920237964455698495918092418770536286857235664447355230750381605849275240871867316909655797280192576946076145235650829112581874688404452666960436889630886590295283314924435598625624416976852144352306853650115614987730415306014865630700629328746173761462430492718764556723519568421201348806857257753291671064605740187463974010869458989891934697780315967928946492982231967065625074568686099624298651709258703874544972443881377755556422401773605737871180258091741216841280603019485635507959046054144447648375787979901933209941022831279006702313792752587097548043300641949341689979448790633444832410502944862352130970424947158048812292226570411274818059160537192130058041850645492530727846952724477981459023012883049917240084377611179744024664027153641493582734482384660453499673382357823218211135346074737539040839137566126673435768924298761655744069362164245638954346263335857246459277258528242351162926358138948576330370174650037988898487293526615233517448266423933000624461479656617551860996377533466328472593832033913432006251834365031529443208251317460662073162602648145505132993841560126007049764485502397916009914578474650704110487499942322519215418359713280986313790073505547807813209079955402390459749093954610820174129906017387337264829180401571576157629722441024172967046021508441385285919045947211075533303481119071312669899034773265189208316035672367972887035472766130560627320416321249522317900716518879138733752193840291551654988212155381709430701575028354019811046823044460981111653232947125146488723053663619028777624663337632913601315735781048894569451969373739778155558300623523520090496504963356819160123182098103136821563755694730335070610440708163622155368482702649379065061874697827221427528345758655097523452795116864916847372410824949728348201597199911121355023116541497034437168897535098687362104167660491736419341620405624532956704850570578264739972196506600293123907173988841134497227761469685035370534855211614242452493681193017147881916310000855777052698048639327042759329457430931987430539744378441202778592768656606479072927828121571511749568130596908231755706275858375262691516541984184207525267387228465606179172874767071221002340833589553889889373042028633006627034123937552268822080885858804236353858669681855675306084888928150849289676047034010372615753105629726652485466376845766089100610479715862669134263101290415834811584721740520929510259569763413570366825430899204035449404701463606195408186895135481862870286696464173055483952243976590770899665970081231954305662579621884231800031780198319003286132596261770702513273534626254823176284115472700960194513645113487867382419572663984721785734150752049831570008933000649625364131003070950317502263019865131652126631122902575905007723365563645390770164354383114900321951852465083481207698850142645956149252029828651348533515160894308454629148335224340325924975782489726706740054677714314239647230459826356772094458566801713437255832571595177736123793751807953907893882898345451022437215502020058658046082837482332264110952512296818281954911965938668651692190759844905945364551286248700414331446219872358754402333766167495023363719831499097514802474487344328347361910027303708146982932059552471418197405424752317068603465044540414978190403643506090795058628153322618779178189298444276238420017104353531541332928792591789744757675421923807516644576880673240052044976292464768690191241211642987846611648936600204951998989674270025962718747218354261413565548145172883938679802143711069437609988256598265240141724092582533580789822661657618505302208469471546760685728177468080700303759305547169973732398501178016622962892253376979165586352589905510740806373017175517003285137309814807328261623355755615262080218802834088209699756972586155758983034706965123064967266671625534122495349388406015773132305188759199851829196905565592656529395145576747672745907032178513963958500915312716629558287131994736680510506420034292223471736969104868736052613421270761306511287872742982535868835708322680884494225522014775580384507915730063646395411014132454423549145176158717748354865409758197804664589621529179608672829556675064299992426732007890654291347845825600523305540345682704702299883298395624213034427066661990779248193601221213400096941601298319095849326873023295529086863473379621202034732052766516066727131710398608994271434765812641776767642402747093819195637477454748867587439069244240675248306851575936183571003885740861436800742856591312799215812088369670505074038468597674672057058449038110636998925292155968328981026223013522842132103388779570226175512344021345365585383359385010270183718848970933958377698754286133698787591088880436977453707104162085734327594281509908534826552269987951379006525157989120643719928866641006849471546445361935516825953952690602150539854186646219081469135118674323411804006291809880461051100119397862429803375883074656089057515879168947459614181760434444031980757101104939572627987717952881465760716059255900844305479622520380841017285922650405153008563468318646344955561376997608851105972373787631508781848140358999956670724397916465411329932642267442913849085103170371668843663462735133702805383623160579683907882046692484207467755296897842723435943334742798005386262394664834981384446916281730852706068829851718719368250079519561043190058416227511882892505247543174773172568028286770403133067747397370300821348464459639627784655125827094285382266252306976954577100739154777856434393193019589235567416424144162079394553003270445764510354414250252883966606217099508002876591445868400573183038626699072315833285656594639436753216578787639120592186302303653058863687039833039533117400834505107740509030350182521952402422504279397940100458725895958196327324089329045707057504375259590571108089749724070624763506608825951511558923298695538522927449257668006826836008142906420152720812331070218007953224776121306351310707589775463781418680115299991427181039904586983056348847522387385096537459046573636385692037383391735123645881326714764690162109281300537589158537682571243799182489754272818499954831014524793494867864024015103008914311450834383449524150110735104787600951903168762008184112862121055861216180257706384896576414035057752612305135042557848574084787463678044760788994573934354232642079675931928403787391103293919754872919860622109075231300852775870340218943905723190546290674672350184549916302481607929683107579493198442753399295196132950015507860760258326344243468594722197361317097540855064697072465390128429688513464738454314355596112833644471133885151258716698595628821123699821307917139886930223415882669604100476784683689289377702729311332699617014571463897146141050775025859022354800535390738259900358233748252274571950365413703939996939377949452269886941725699052936075121563639432657606693194030705728891153177360725078815150279533035763046001087262377674346596999406049440635669312770552762455987913917114023887059472193796184956709744568779348663651766659176313573138576146575757066440248411407270595674586846822823199392984899909106797410467988010839876272892298669323514497190325164799904912752816150753520552406681063266339072554163227724721907823843820158456323527010576886521141418418444690684458395748449829946638062331229010680432314422119783105111389302108149811400267190425223476505343863323320640304384786673170594397231130759204587456540525922678171797773583602153575673008407377245097846879402026450006022304835485934071417853558961990955792333271046437409780350919503984611294191061658437359029051336841694941276438032730534373001922086466721463746870217704398111479737736705261106302259121381418205840206405294892692449630075473251674757582760151214232487262771796798752144580992966242074254004586798196505449037786526544267558521527484457955263618163880335824004145333241187422927060033524395108247631654757811300812724311466033278628832207343499909033880182039037253259554783900787509550778904717445407289716930248356922638079763023695611747182835045655357079712595254499569619729598537707673876798528339347428622683288834594702861889978118051060143609125913271913536298971703555890758461092845768095554931078314338330660958752044225197291189682066692401567357880696554950710817729505947433558286140981361097397332195102859935212454521410248507910113620337759168753556496340381451453809695721745956646100380227464026462212368351707981003047479646744407784919386168988280981264654780968652292599565510973224444536404361448633468889869315697255304258510307708147852182018232858571372516909548850306098826734287599623677862296395231593063595078104603773084202653420628612881797504463353508523219910538479223888726669747804416547896804544927048712833015643196703389689330576330702363262092912294482893239823100489580836495680142792467564420652081810450145655769641892184888570775799803873691306031248476224513184042576744967884189271813370836054103195169480569165961567186134572886112867527328091825639402680850020223330424761884248464212503187825487875292888384704209618511558200362535182312681783186973918071520869139443350908572493165579136127067542526169031927367428788632212811128341673138371989063564411507995755701533455465509750663595656051698142413521439099509977558686354953805327110425773053149348762195807165765836267879913358412982357289440360148404893761215314562446434642529951595395590809232479667782308357437704321396590985036383385232188538266621904438841071320477125044529628936909355599948347422909538697180513779035916656741978061336344759747367494838873576423206274905321105688589224568137870616222779649533088542018250894842814289122599013371153399596934056936389829786289447145214804728367257526505844232348507820040063769604553876628501288078266020970777725871605647790801578425406177721902688017863244334285553050434825579017774326274259289306909303941198610320869926216536046442405741034782725286103528251786347824062116479930251915576548846438118866649294344334273200954578521307088486881240915019573017387436211766858010340170445977992996521221307697939224410382181765330724737173936115522755527173356575393364750238152461782509982788742159799742093113242229382783576783570364437659123895382053649334605577015406917320316069940826298964503149764787328085423477221839268623506829380004049308469637672365273082495022694621876637776101105723655053187782595219430999090213539297949547213708452416976462815146508655491062710511203700057529892566603025448793414869339907284781461320325597572092043973549629960235814194499087388791412215013417730106772068794858879487527043532149321456983224469646813826469250109008193786976926529845507728146507060590974354249058401666677914149562136386305712883725344115782872602798891921544395149989054233110517063703598603721012284319173321400028603523537272479034828838302693827581869500604245403013657070037471986165594938359977640525789351064243348580165920459034225995823583890606031259533008708240371165467256026965753889360407413880503458722028649601751585846912003781113266535611402488906900528688618250336828473196671345895200725106695543538307863236481457590166527807525087610496075389114594281891853560412275575846377471537188625631070240962633220673196770931901702943151102475421129286112518611443206832634036231928200862556684059366389382610967543818936493480386011872359107267010788342671862989720022009821475685571174256184429978749541048606826695089216118500561454949913087107377827453231822644384361692250030172993880488435717085113831695684100314282746503549604266614236044179289913505225219268471659118218176852548347045609374926880299365255494621120332197382969385258928502279543135528160616006370759110113171189829895830686490246721170689103201095088603959991803173450438980913722280905570399421441424566266897156486398453229207080314616419066035995959744868016295156365648629831972209737482531782200462244356328085555589833193208377668057027232947211099310134032292347113550135358865728633670003009219909485880336067383067393244303143036418973260468553703369105393814471801090739100252371426991167151352281114711257845557959049507880272237408601812523377152478595390680561712234907967847987543296428332755400936466710869300208137703857925722978912528749634219700245128744591499063606561105601792972325395713097058384434822525841766356806452998107575801727733367961316718959140074590872065612856407666885279271694734501081987964248470535603777263061694896616735511185731238307204767978034280987416461582732491220992286778501479357107793889336348025005526194665844692405592148327327969404546257389151586506296069104195419047661934832656427574195527899466435145408281110493607043560233631159048082465920909751193014887103219942502386177282561007844082333525300430025363075436248099892023738315943041298533586050106401427798065299335153839447125796681765381769393828330843908090359630162001731110213700256586236601430994308698857634421505959060895209872250943066943603335791235959385863161807572161670487422049849131674992397572424530052470296727759871064554978057879263742624128734501271256186233870088948655387546197905700395104747452724894638984350511244828283431597606009270513574730950096713478934590000972817262827540031339212051033731382794519074805114713423173467151435094513781017853554255061917056036374121880983137139176956811070314374865267091203396319173457513575031630987209941787905646491911647439472851894279109113966099813967705014314689046056208517106029461690363104224189795304367459896252631637791704590255073743384998264473003738227896871032907652863814749347888026519090320813317909962654286559048511665382008738317473412408792996421609880329110586700363376961383736910648464647373543880349618696596326564098025114789788787079117568638416730879070036772671574580738721451733945206793910646129704804834635913108911984098829863414410740612243750093867504568096644572646664513854536024087938609872400164147848656017741949580425102486095951754603627608851710449770044033466638132478221670964603111917709097974486063914797598971684216520039696132756309431981884675770274387368767687217767420584461897539307074243450088044560187968167292671535719331941501130747484742373672428100516807575701324701361613171217205792214333135625761025810388448385760034478242014430288197082357730139807516958011681532702076567748899245765243176280682589966101330293364336504690978513461290464826113446927884824861130515979041496935526756956672549091985959882782993602797638240863566333126221730239013437456783413477245370104994519439356481849625907381135096264219310907241246937832012473822134306859208259389534331063279268795772352707137008644007265187137132690851427761836523455576479523542909256753025442311507291256246059250928455745261791860991155624545670741290927527763451256036010045922578586190660772173239641654695903173532260381457006366501723765599164898204259132990941186940265679559113807697834655109927483029100294412839942460713040920377508348876240347931540346660671130502789983576556407778644476039446814537125081911158355106267116775596156540536811189264618733035324707262752012411131089283830035753750398339947333410154059663612934496703277373362958105180196168442547100286508693286708052810179433092367286329920204250879548414570552467005429839157356771358282058644892525542492325433864876562763418242806061742501227355552766870623361810228197556013636087471801805905492123866283370468420769286324781827263366400746597525157956529567824140736292401349401456804142725392459262137446214166826348601493355297038976801405792305756382096768192264085754599940026504561316980293538221383034861602036587089155273654333128568023559714594238173266693506130676158486270980124710704871322383398196050466266596326413664793599591444796802505926974978005620757335622458760224953818965572931473545391966388833911330715977721356378619414551774341216663189896485129170525866819958315104999015338709597299143515587031654800781863149290209868817429430297841944490076805265428626567296856571360624042134001044646828215192030456718318701220244201156432310247856964670157019252249417898830345412237958022496826766999860388038411758090436883184779899765762878317541544610672537794905367154580185192138207820921548308595639476209537050289012497752710918192360559174211755446095603990614960656801186203112241828653323252871676571949433335577470620327402701214996819389876627637672352836654932247984504670291735190553048085333876144852470094583705482261944248225154840109698972242794198705642223888980697119678817929487892143089330835222268032674700545052211356051525246770672861092001384082984069738468796615897579668336730921859773901223452967472139330329986655964638114470050390137804133438601449655364203555085155343922016759473015525659955041135455091446801876616966842290820093048114070861548488416083500866545777715337073673550765303198797417019802030426525264982707393295315505914050404997010085133425076256410296688307650919754798209480899072881711294654091217431604290683063654770126473652341093024234281963810069829343918203044353016351868401330295821300371354563373722671609244704824735113971366391940268624033618833715500256632538315465967439762137649485153902364963677636809019341787341300263124596630355315795352822480912316376474410373774027070913609298399428977518819546917788136649792197763688227454343766077929541094960056329115720886483185254543214026628530104148510069947878312519418153556019239534254062407122287572207557339261762554308169471549008094550199142753055532922837097632228213684543758788848143999946301231691214858485964309791465422276172553151308057327471603285001204354042008266062730068457526600736284865834524209145383056578620048766190150163088283238566763642180969263397811609772750984770953042438644646374965226211386214897658987548716531348219245844121773215141144350636086620122877607436375858423546732496426405859759731102935649031606089516005201095269057114672251343724287133164615263248477957975755453268817324025630240632741553245542382196069697059914315478172067303648845309574995032295244523612040118185718886255866316349038773163591873461599819884828342662716836380843627867221106954092491339340302125361365735444093207756779308005277136514077089244598089509473334586258216910367260430115684451163562205327810383726131871892187507964300083426962578405233781598604200823106254921268155702147951505354227155349473637168434190724558321662983605579038758857997366239239861080601083441985895957131749724334999063989252804719036110527088316782754912495679618138315180982472079729752554429503534965302573523166261121530626536596724362316449233300309876346986120653793090145174594331247031832123178967582930220229333566708998512781771926425489899510892712248540985870464156055679541862889750377299991943936854514002015215704943351231277877259261644695372528185317067354792178620324471788063387262054981604766571346292253733210351755646796613438213747696739335291480019089724205627735957022735537143963281680620677142127042660376261160968411656566279450734569083722028875400371790894310271443648815997397019471935093367101231481961804288065073974948251387392246232262545902907964234586141628362584978021205482689756779379549920358493778851806551940146393737666304448171337681445879104278934915562542024144302404807202339115097816713147498773355859104540465592584639439063796457844920131687747824386695335555455555586723501856059611875292913740018763838666080382446121423905769919400223331012627515393992496252751357543240311692265779923438080721202151020177969464096701399619527340003323782627139406995917150420421406877614619875754649645378442467163305739077802112080416068173351746876476741957367814948048147091340969982742502163499138550408561711971472563488205688823477876554033876844308184533280456534735197452617832328233293720791552130999823562655067170988995609630261754709096284469585997034346484036190327965800307687897576297613424513466508666945310935218363774767356513045700888873173909200004373217542862324349463632911529449001258303059902770037409160471744781337983233662801876484306131755703692841533563101054363656965545411298064244376765498458895853538321426706745594855892045937376348424988669177577586835972935467122808019748486272113003279554638292489494078969120602845511095929309907801895429143277038322598286806868603869469874612542777971573080268770209450556992262241664808716623893723777868985107981500787378168142275017620213237837079472426459950974376591040815079071806780309578537000214684153749890772904989662626036628826289579036639621517747977029418271448899516121125939216817668786258312926230227381850726282205379169059448877680800487213503810089852105102876335900754918925326533054571978322736057106895051607477350897927086746753661444480734791772119495935427563306340585410441458459718565334910522855798846897288095054867876525336788627369056514059559134718338029078094947033201371320539513338750625864131898765189342653718786625150941960566140595269994924674411146317135552538525825487931631801623728607882353384635830176541139530356496699623429994842051053919257815022133898266654984342002404280583855827126218550451540349884964707820964851392140624609419206762188430557697129958805661656959529916897454279885204592463581379256283321940047833567671066869043140744054607653141791203677088316617436411515329625566039464195793951819037172659106730920875906830112130466554722247661143771029051920667872587817981190747375647387344408854053285561782258818653989995568459462694948589271465004935391902997489150617202059646942800567645363815562578927860995734370865226401438252400370327910841621130827419441530427443251155790973057924738671440137604720176247753361035063068001916206559597161931178708570643358066887609032910390538759039573211865129970716473256970615788855454784853356640986880310441666941110291541433316699509008408277761682793721317585189132126703118088042235557063581135446751081808681738581892457034240650661151214830822837877562047886646561974603749122368249732897047379754448775392040318421225824970732113200871191460107966160776087344209719646069580695763349489257117117161755031400228357015298944467071978636625591018498448730169682508436952081205302748504491237381537822403241453234975828422647508146199180043921941228924105529153702491040850927800699332799375664355613323672924372270758755808005203255360923032329221179168872512703543971677590259849780838724319473138092227872809070203562384434014227964717361622687338530625434401646600998400600044757841130703626676386226823790931593634163089332304908115766857279798747303898676171531687531031213460237521827143189346669635939173003830897062398945240908598328348666229571929818291998197373078888739372476219722979030900252228239034222940106273565142307714034874908859692628734802017758775582116940207445621140843047432329435147117594446383256553922896262899570061473274482170169579049401785025355388124963401350933738324311686795936431706001182316449163407304436105140199810684929090740823579476363527649121378069688052340935277325089993679828338120836882172491249779230015878987896821099160888841758285051353868155191615957729749419667601213390073128719852668813663688266054197007818559563551364424431207334309995865631912101519434286177986899828916336890666464698846450930204281708974967902375957610241142986342666722943944339410828342646379612547554203540914200062592139145050681053040700374835505680666789526021345729551385465365269634520696427918193774453009118697861439301923824516606849297340067718634809653443737454331417562214820598910884718482616409732585472629280626577486625646541204374324327336638092086553587769613325172844748378398687383964400457646977448594029937433476359814331581590048992733662194046817891436655760754969712286966606581471219851112116594679474057692572557903738385599341418619090983055929418381577220853873974799245808370463128167532007385210685424633968150047252671106820606248640174807400701087035567121690048481353194608468233100553368520958679602029460176880367928466296211037898748346649284830950772614523691305281361732176387855085338723692266845063882431302901801637590322235015710529528579182200636017895043527851477745407803617620091721191396290407025453685033930155284560989847840562837009755569997901626535345468627223717854872673533008070067218680341693428876212449944508324583086287202641536377713148142097190339959744466687590018439316473164742711148599003795458982454399489489297245765010792481603730376141662889014159828354106317423061602879792699446823445844323983898282019147190463985942783774846603677646335594961617203865934095017394927256154846201022479986796171878331086626190236451301598750122699961497332278850047513301739603653706051267377880935487919573364857114738338820655735432533917866050445316491814750429733274864048428052574369997310824454984725263736658778238375004884770866949843549784234445404062614827567539704040739748878745257182429736755824175237733988570479557922171936106712995979680074882799118937682510154834869651326962507633304396910360093314012414638764211955450519770943809274001875408532901873390692024469234299337311610545321568762587649671747591947262422034797564744251338232615570167664042432175226659852450757260376762827108816494534355161335380007611482144799902798762702017519651282738278910550344005683322807956450828815137300800565464021046629625936993445896529820500303938856745602384078925492852821455885173143547005649574985057697557619869032000321186576662726517878713948341551456628403204194254696108983941040334781683886427875988951603952114122134570172637307200374291374895547937419898849138353982009809176049135012373709327423988727749183635123523678638079797876224327280000939062537033114405269006314828841130942901897025269358158707976439882391485580998636617639232885424884688425571908219709911528219280946909120310817085672284218027791234902304658415716837729174591249094939101305897781438323487748659304762584685360900754576185135752542209127380852286998753002819946039661153762719174434321356290392558271993779437343253980343792247907886861017437654418995210525551705341630441125662858207841630674774415468379743017919425901928614775864593564008505933397699230944515806345948526177611909746415831260104564166642200716054543339125045445605841830831833709256823832015294610966423236356462867729625845744656870856044072649624850226337359328902564704243361550350805279435814835972538023805174081716663550499166004440559721891995255344084496051135717925623977101382665322005352692054745422920620755547287630601446215232556319698564191731510683062662590469935158384915094058015359486899863796847171494253818951520782563511007709620098133908081790886477644408646376993633345218447967431834793359484945211142603264815091869208229996939593137561299303619164968611942547736398600468201169435270688898685432238679586799980008622989598654048591704611825395030212689614906819852052180520610765024435564109847059090817971516953030640236425684140557508530305587257443749996919023458576352417145993282276418550890119382823938730901290453703322425854942715366484815278957961616158251772688259828908064388451587734750150844712380407155049887227175350042839387415823408453607553524748858943118841337180812959544448397695008586761644126172432147639852250602724186074444614157904517967077549105892107263470024990321462154171380716258044846001398559201696362652081038038894424902567694143139054781472977881794923593995786220285315145338488205378765612031038146923040195316249129234158107630360686546325611554057395384997635722687847655389349133219764335977235044916446190721366762678556186528754114723602508365795442534271733333710393092826176861134556189736905514636119587012524220703734090482025466426711887608978344268765107643209543466081700149832130382182624203111471412862229934211760838981284444169739776576412761878512367436214691612188774034268054594218925812613600685466625775037784949793315971584554075768984079376626828776619785868103951737988145713365569292787690833073378832472575659053205618844247096204347126634452409465856250046177670252926057983987747904034207130828573536844639532986317704646406784387612912684811058843796906587284513761464663276998139335000017138192623297193590511394010010452851841671520861176809339059722555714158524811443315033951214242596984934988855281964342185274206714057430573823734310155141434201445447237835422466806944019744054601295711024878210576025500648930987111807697762513376236189401597057004932260927511147710645381186242609384126599327676721272510302104840796658014271954881671272906529266452776219251167515105753102174626651744146109179232954709291053447786398103152145778043802467752143024040909470823337295929003597298369111318304425859440566340389625067336988097248790247226113195548292558202625508569505342962717798184137849798787300165832676547535749926040460630623399001296490991411341680232576638258143129736556831912412045389839356687045767445951180970317897179410893160137610975484099167696492995896861262021368790736572513341575467628769364847412340274286797446384513887578678617630079384734323323449706907235735108760721659418053934213110909225578029161137529356658843221783184549829089503186350264603473152256445993356249915240326027926494112374618664243042681072300188924807908063273318851163316855608121237030393048190708565284855416590102579035319619540236605626591874257711849398860234810314993621317478407710163425656744280096273692919118304523126369276248968977193551654068350116592544012602005571007850504917903264709056695062703746230556496780444707272223962608743094791661834296727292199609720100207880302655775232205702967679609362086568763482283240044419502760899881020857629582192236854230769580169973988399489836269713884092698708839772299461765169617341503322539037897667693594267537805678523598134981584941799941705335876554158414352436935479562979762068925746412657857237457416218609826215490049511496728499857970262944716647308384909780578223803309360174760103654251428919885179173242027745356329902023022627497744876049296922003985774710692935393407619100077481934280522629778963626164448245472511471231902876932920583251369659987036084803750295487642769198518651579077770381659428978773828484860656141447708303689184460703209967492736088344865603304669071449413004682328863578248192825270714543325453264555155359982226270165728760551305733091673538051426515054672764831462644069669184927050184346521637833586720070460316384801740963982922265842481413851024823786635100499894204093052083044519895231922993733999096387075855667538151540770556268624738071179090732256250030454883109093333089655162638138838889886878888661489007396301657124226327180401926051277251126767616095492759074618495834071207603812532956697997274520833057867666340909430202193655359555290778698634773612026424642062153275427731325602931527993342631574400116894993583003990601261584071175880909807156542548632232475574829662888347758033388594819416066979697335379912474302073748820570090626022420906007484444295713989593366124179181432383256446864617135220728339569402933468813182883079173654883763943334351390691377258626664848109919260681965354041787499900571969260998257728849081762386494739074189406191475894225698772521608210038743813394679831999724474505381301358848032285177734480556972185297361599971980310080824621711750127046870689562985397824988741413075623452914676153988902996060941643897035430573567910971907814475054657437134282599943554564691593526736527479999688754712923357188848248746160137975814436044631123429850495463996922467898416449162776390695147847291884210413397110395326661536810263909488382610602551856602418306279734976759121768426601005498524649857344957304048142656013289803214267268808585681382365284631906424984814033729564462248834535650452588380493741760221308687530120256008725817965097679344125265174039863353783747424037364298646847522137610008083877305457914993823794946497426412801049655871963544777374211963631769607317848126179794984449427609088360201791592847551684950470786810670158352027916093129370733767481656811528858427125437487375772314348253951893030931219730383664085258603114295907115908245179450036877349179682668919968010404511962036661943143221757310512338764865762025176245014424951864028720095613395689958300835287522383225878989968595059634878869470248209909786873229369637596980383220392343000478469052058234478097624863471931933779801582961213857942809337363019808883267540303443334769559574907458093330470382622857237132865648665948607228095602147424634403514492884365398683669635120918366763602742687976488642802936987727805354936034949599005874975421496691544098563186375922088037498904047067014876205556668256145585330059703803449350994212866633355139810770606472515852184300159665483968193164609483986701796500486280705533764447033112946225193390384102844506061467533143084809497765720722431136853250618011709646212869837542241585372360036762327851289889446822888383423405242025021938693858314157831267833325267222417985427875642468007301587428672938030451118967590884227511630333353971883990207996974386981623168269780905176192187329530071582685237387045596627035593199978525282465496910135283636960181371001353017552840787913738572786025986260468822734743501143491451363310318381174559471749344458631138854877081113780346269602748593875022331108753425823370575944497325843633245887525505684589166474690496842108339966668483889588515755100314317357025558377831329980597779041322223515042474920829404913587279893372796157599242291222361623207261069197275110741274404149893207865553293849404308686813373824829741465060715188826305083942103295493670641867660571321075191381423372478701867312125411412211072116104428868512392651099541192108406309635800633321967999192344916374269580331637858387476159155280650966289523371799922174350696462519709303034499060399080964488419608515285165093315665061752268352334395560201409849502147567433214885782707305353652686775815181023094930946437705036825832064812082729595309947376891912454911239671582302336312274839837829899666573309352752328663670720082267806532796557967277487942465683971205989474867500265141283735235910968501824149555203667531429873546871901247783016462792292210037621733957876682931975254718168152322974847963102205823488321285067630125085557716486592769663303866069007891339910206690735318281085835153532911824378978379933018467694699149732569607615465728753388477883509279969312227954296476243888597686987364547103477581819015899596891022882508326559676149634735235268701109960848175799593291213497068991691677824463920127183139508775191742758774659926132498446406136653777037791827467641612725531317452831310974655222324116020334037140123298629986060321240306109131219558173429304996799160487232104064373638471034359877285476897890584070218647405474740980324963302982141144513418888435912409272595321829350278805568767783474715162275278199974681474674382041887377832797215440220507690045853529892490061882681173698266404263170881383475833402433593415282434881927985048603408056955268828050787674870004209011234344382755903308204710434872053863072230091770047655040185467701927980750277562423279814917723957246197217712544251719073346290116049674132128566944576544161288684058383360807795728831169511664954950762785196298893848344416099543825552303158127145280525663696161192428889619457955886860972182743813430023276386496012044795045727087307677885383311405087017504168650868578156093271128775741542690845059080102750684000136492837520553924057339167316959442468498247983930017170256234387445805328139157982475000123657694056279624500875342577090721204741295511760303417266688229268872239855870086018404295400812926441508436519444318899901880250981513020269406802709229803258426077096147179676121347978139332201895074041377990834206694261323814186342040037799905491864620958194932664848838303619422594174613859198207626242488925366930003316279880680531720728817361828735634468498754311211211213892095246807688641998220816437131661302288355840224183131859070166241565232880194012166547814188233670916101900878630932671090248050079629689654700423087164095824127233828248043047848446497333197529688942480617373262321498416461545913741725865732246601624401491101560972974746223362533845778260458426605481449979108127480763762055665960649184358629544318814962585787328907099539840241184596910138441735165991485616991150509911235460514151311386691473003310735333667769003563861756699449527600315364468555356576459489652428425123949447206980351500766636224975870086497184510703749333854549387542023455358696566910127556441373905382842003286788056100863594695390233103737452512253298360704470097548237531310667152245369603900711876557924819902908736259601760311482389410266633518718041114531004513906533065273299424421566000127530118150667528158197006998660613610359264207878522675437880506457590840064781270203794563487091465821076855352592502416033671682619772514889075619270799378860914960802430952556184265007034139583215318698600156097120077809461886632899979085462445727330073883510052803157295620504549103221191975568237918691004301661525768875596877520953811930225378594774501045991234576162587024646063947759679596101815953912911692735109862703039311456985656441391604860432523852507987809869757929873384798311877442440808712320597459357715806590775824887674720834627828346599221331499395297658520760273303475202796022916596361062250805030335464418886285626145780097256970411927546231094751008110208159019277672415296159092039919707905335536922347902504781795549255826238326670217001126384973723002880602351026754579510744172146659293164565752747990974713242746597150306395605718630339770060467732029743521305731250632976892281845433824101952987612357763857046345012664997177629696578168479068884668674599792901354695521383002695405533068737925417223098518191580830507688850476380677817383488268152915078320592935599822591750718580627587420547768197839058379263109565890714431229094516444571496396265414296528022678531090855943853850656385733290770974914690646549066041955396554000921002630939774280397356332246529824051328588949022588137380044114426300613076171323593683082939865438922284871581558518506947934453095766661642253906855222545383273894327460591552315744966185716738187105243468337855972465969434279968267687173943008125533924505101255061170794239370078068201317569356081255985755109882255433708667833453339086928675148255378192888210204535430391577977516726019545539584199882108389782808218355535176887512754606615969107105720131619825592356601096719792534646781314352606004543986889227401172148589742524542552115251042836231991641277145360766122429925837073352949677624877660096432794164979604486013837557536912294254527534033919651719503833637421084304789991944356314666543091606140314070039815510372818585766878979817602108060232768058366714748540665551048159786136985600694089555941870693147100555636747791136091389633494056343197378613055256323962593793137726143546032109286054846413297916727306129698885746128963872168892335291431554877179770717337659766391345316572042155781003159721415082591022030892468866045212667378385620888953025199543496291745901310436385327866197295916542000636946928509502072171119320281060269435381860818446897641293589480380970000776313506937612747239528707195205329529862922068997614598309157872274596593652993909105696153820100779688084052229345727788580824653657148135192063042660014874020815245342783665003578345095511417008085057210081845034504905187373539195808883508095393146385735800437315603816762760782441614066146225421367840767610023820095236053753563341503973072943059296204443052985023481117904752374950996850159310114189915063437821236735601685491997285174376663900606622692037471053839050106410806366529819475354656512387193094900407142943535451698859523719489197849492138155554275610391469398538160179160805694772091136967944357773518413326824731986954502813313406176641741624851362551950416304631382380135880790086801947347812535213552150938474834234330656406095393182740603925459472301103818367643640818431238302278689969642961212956947227845416709971001995639543441587921700156315523926063698249993610551589118620246572222100654706312119811172033473813212906541563790212449033475638186033059978613613178425964622331177939260817978226699940313757971068868573258567566583254507564289102371225894971819861778016238314072222424138256893013725604911382213713311838673328971830776146719691688084817559113723887084360248758220844808159944314922206620368480245777841554184281274081230901513194404040853463080032277834642750956285150457933124305626875513285882473515498355138969281779479492078879226468055051505789938833862507243842019475098999234365483692044215139437582088104820079927206594771062648528583779416770680311512169513958513525699887693887261771402349249920934000191019116981326392617955474334395774582989279478279944596438296414774393047849397001077356475644418763332172085129888799265251628022573333833682789535518559241124978820230485665992141317304629093925393664824367019361695290259401540784715554708396857732840607558530572291928999546697002183340074754619019741015386017830989231038935690335111765218871931212303665501046517494021054367992488083792100254047061819555202567230714410543777059894905016685796488683289943230768391814546526895891360827291579494419367729609261795982131587745224267621125331509600034730883027821694480694361593330112337455251371686539592911116388617201388864367793886208857119796740489327581193277926368013521199597896349574091374918941857836604964859587366777207575626980713784957634522532130172695053725690685511984051887509195421885643782900147777090651205308507125760001163312207443166815791184676635792755440619446962859720541782751799794974077270181519981076361943310772526641185581704435887657167928255157151973963495832637991005402400973082629741494173731426439578369660146349525379977973033117988501799695156614679972475933832419865949438418351856945557554296757503313221403105813117796715751348586918827311071436850113905230589155443452813332533793242729267521908288064297720966264497001759587867705758700497350101205283241777663928289375403335247304380817756007816905172088359444413019306820075848754672920565525236271236616291366466342330113369292797435857765695397057181693901013889414622269326966443189404319544580991475973769072830605823070408526179615980552387369598479625838254411231958930524363985877324078546556353344257953579088512433315002333444589624551056955005088925115389724693094975433183491202337891690004889155319117243007606458397789936874022376686632576949033100027089200679775055178840657101034411591721117519677489245138336611259515885193168353418774228199533262256245822100825172149424379473811246113615398298031620662982782130015880470600077099474160401886531513792958508289968807513190336873614855911935290650193184314122335120330632572472223394790776752803397281645786830627116567462062049890356581283923184698678225465750385090036496180787610379047620004692180129768118409207181041774615037554641238187646239122143163145441257145900297220933407324531477245629712735500982615476866888156156006255133534653609047517439068365846564246197572344396239564079145802742359885377693577828773534601939911452086006497969848278723953182415409010293161797271400444700671014609517464345306264962325037883579373819795641439461747207438350045401718017446964137882257094342084990428934773703399636290885627045952597372740637036585805006264055886069662296614667735337562502234244543983174636900515326665118422808706628242292649350629485723121448269168553922571101344089088980264122233425449505490638505980677010855978118339700960425439974849906888010060754294067830837162019556561127954264114256735536177269934273819239609283764952744394518041736180684872922590996510751606675526931687980921104072651854036830745129185068765556353064897048521826395740015689867745706474904820886031655367218477562809403831728520989065245230260873336965140529744918891228976053351664124066416335228736666172388818784333514179898737891570656263577932619942413466130820937977264914730624396440000719438329409261475486373214550349677168661671736653567300365647803427409519848747144553140578018827435722364064674292806781593204149298871881653797315516253098987198774861940664156299685177327625306297088723494164104309741046320029453351606933754314313879361672082137451104474458076588617279773634149555364788056918938715141221430124358295502859603542175840263181120774221504699300150436866991684471107390642825279228682773996986106123073329082186837676123601402531887805678919555984816425066922073589180378174830737677633759843330551286035558915080692355416359441400514888883499627609968789718509989838367537087871947633756688331891584385293862910508165360798068797826685934733669654890241423719277294589507873109467471391660019685852513670740151124901953043050513544865840195808473245480766457543382965213649157333078963524885389360246450332242013294455939761529022453463741887813818763602184339010746293405361330367399831308353191994175535683056200478617405210210969299393582935747090163026787198641560606357909450345029854318756351439410417872219323985660367030686479688375244961288883987262837967539714957765728060217875556062241844898800085062599905805427869631547027787216674863970213806443386865694730011638304811741416907569610682647290718480343127775367703360581361841706321789605538324159253517392229030831728116818554508023246809603653143425819305047408508402465798099774970114634234347364495249306317562169780775591437885988391901220611167648427719668471432957175564037588846151964757228366745513790631273310364418113207601477228017681973599582050980282080955081073170090449026427337563122549080064869307625078598512719249487068724330411759913693692743926121753154533062668039930128668616405741583999971332267387829059136340629950722396486227056490692590426648146305868900191527805490825196186286029016320533048640761172622758988161579770576182939431139703053563441641795643078038419372719571155805428479984565940061523464796941198437933611058933185074523745090608477274731158192643183022139187525404957605919647472252025635655208756647237642886402082319976528754280538473948651636454427228898650518415254190408123530905054930040197640414327857563552901174237395010676921078874447917241590825633223681103681660092866914865544953224138899397134605253492507459178596491605874309343434056008827234681522083482541302188669086966098586335706271408619445800274278253259204164392529397283731024208124120756946742970466514518052620012022212862034577455298727468277289969223345846072172189574026005334758990570493613030666037644485627458136135420248337731553985497578554654071138182900609887638643004315098801415780265139020901071271043890676342851915121470861601396854434067848866895848670334929019592296475574488747766105096359642645092723578239518933072332845820973298373065127505366973519326844425544057861887054740695899628677905233116802426092083972563569944558730210472379060593027530307032781463245674580453181520815966471278096141168837579130330461398757074200612735354955764208093901519649378152815472333260339404558703003268596152031442688445524987473065412207640018186526756130364295436668679871506026693909055882600411270917438661528031752089143698588324192259196939248179972812631397196985724557882574006004461096042326900354006607854805468125374843563252698812943067056724075444965803781268204072625754251452680382844618390513589471633677946660086052355271720412829016193211077959346992068616251195232507301911780574254423409669459889081466051146445425609073525783986855323677182214764942499234954949160017933003868026445973446496457011375254986794733260091983799508028808530882006412893442769134636401573655582866984307924977918312475611437161853574070814186880302274237625924802919951492568751496820871586442335003196427291975323670905473084901218499331078554687658327847402242793615296887651228394823045203179350219700195578905480072922465352533849945715789974192322349891620017947417150006511828946818051637782196075418204389842633750629949207514221793994749755639887642061182393004076008398888270527838039528440783487668549547898919755829411072243399487624017169030767227194763786187273399597611111575130637987947449439359843841864786956702722362456081552433427252149828254265186944716512519517207823334664255068430229551558599928094476059838957810058344837320301319924296984887029258364044914499315885571083616024739719460818450787525336894285248028280109784427350081062090378305374882444673124582484610240562345911544354230576786232508220085430971515609028984277040367726953542717098358184065115136753182543701907018043188428369672172535573429996459639310926332408854194840136062504152305201007891926759380737812636151563573315501302290485566601127191544412641871664594689111859755610531189652460146290826885118060366759156289985862223520284674814254256661522458338023210190213613887718291071081678889784835088354622672141125549761554015593178151325849921929670502900933933550983644612361443640916827142193351220179936019492851722893870759809822638061230368243542244969203842867284618914761685965271503389821175553331321435263785478702885598597638772790018684107535439076166397024174455391342306339328954225863249398101534477987400380715903938802116686348675518865460146150373620963373109498514655394187571613485161220760137759939353129252860456062036730986509497912578642847861547127830827718154031171980209171892999318139648964762461968505060974293615807082041257430505089848379397030459933635435554500919614018571817087403282500872751105731837504116664273047045149659774683698483784001061989817010114806204788531653937181722279930873333385970271720422145431570584466436887217647115880860958425031823864476936456554155006916311917146101903894954937159114440771794098604316505818463668890330925772758904512635020037132023516483426968883997681962013469605601304695703609798090680301387286657918587202095766848572878660546796591878632063846326593261531886211642902690575163071267193343774962744047534693859639053561989213387262969430368764642905452965868914651618017513541736045954737742407569940349587356728110375943463736866689775383595380390232841802650273870437203957987540440686266634680422404993918811633226208992756043885225937183872986812504096387082565843048729907953998595383162040596028810502345311674271719529318108541554248095662223664847184481849237709563968559808906734284337867269516916927189389919402196020039483411946033062142054234619072422037657405940604826024529912038773628625489781690714540561458963944314500421750049507524465458368491869213574229896984947494906820568160931370276626980598582723158037349605166054362299855104281830115796838958522963265056378880782091319771442109478895631755465885588955179316149219684665514892094521706991777448089243022572769274175741164553712625610286967614680612272949676805980044709696705915127730207898635894906236778748030163728382158987585065737804278903832467695801773871974551436854826685787774723317767617515583938766823790866725931930757305405306104164398050754927155452148217266553958974626711814901020753058772415905576326630640195447868501314083464290260139916758390416794065028855130595573021940916316838189994774242534736548289935001985749826763379728996888775963146168748407296169111644781897587654220185062594283231354257599086905416191496871934023686221563550203321931399721709562725157559593430095071805108980424033783962388311044063367108523557271140326032980620091131357340817667489750959667481157149793891399257445680929259472938916507556439425761506570550384383509151149870626818287571444428435718897087553714374432514914855335380036819318276646210784635114046360795137388346358435398036467750628121258288985950938302057848900949337546462686307901792816040972792467071616705513438873624281522474839952595764568397225037821415840996833402472931787586216365187545686767887107993130223078777216519249589263113863878004163730936227242650907660307083224920843429774769952046673085864518246554459304396337410262651554881143538707189328440481463803062675410122431468254626708120673330079917543502146307357949464452228095966560303222361211529598039208642485602637637463148953076150827266628153849072954009693056166896407084726752332986890035879620775047823216752034347565531090803279185251206016827530202660643988700158567141468876627088525535474007748113812955892871807253394097662990441986524910279004863068260965362736335870174857548111012163068539312358889873657591221954629600380883713569481904511255799443533054658919462167255087046949250007331690595300327422670718620367728084066103734579157044261615065560898045192475755098376883350600993703662150767361214631104359081830931979886452916620342778698504395800469208312611413884738777448698938676188937955381110829189317118029284152491342114297159458714924675681296183198601886879847861458580163778204384485299808813329734692057798045435663183816865852624981856346879372902435843680890758346589198816764215583394787469503287991915070438572799347372500352382592794809177678358962929451789776962677203688697017340860063850432876257179267678305297436065407537891461918824175542413301836553209008154344288044308547986854189705885098943497994305293350537575689892048892111440650257537708233221480548697281138836480405287460078864820158710593152382844710985224076419139412557702248610771066528432384705763678510339965661947475699299847081638186157094972702623587892428854800394415597448287647294340858172417410138238233750152856708078205802795303038157423089481909018943316468620388458328006375697616865930146501795815717155913430229299625043608059062357404453544120017655596264332513285007499259291677108408483209321376902704988293912215691443031318280009069276276168797408112013403614237008163174027579687140193693263268816837919907792143838157744249941748337580499351308381163444049662704325844056600232142196277741871901337093045500189031147830025538026799931156600522415702588642512145053922885603528547114949347400570644397619407598943178634764857512154792374181637832299095565749970507985357657443008096043721146768996045284257297597129635410272603549463984337858911345224560838724892984715842192716948278160055207019249151449367049277062241074444455448869105085320518223896440938464872933559185468871991285488894865552495261780664530825387950978904367267605002146260194805998465895166952243154968308996932578278605921071353261286955388327188156782705638135602667318505620777237068890603485685519496878841229656209348146820657676361760635569579033277104549028023527772116903705345117195640484220795812228341814610096913386562496937805998114859086886788751993490920893968018361070330725909759504588778972023200664236511315345876110863628988667645008389297794058463516357209805500121508950324269277928468684015721882662893743481607168875589812853240440098433611815260472940635720005510012253784951724012527676746220170350591096557736085954278425028255913053374306817267830134056623802127917532364857299676654632732810251312130535437977758368114639547304800162714021218490263286393789855807524380636530537356957371103974899206142588767033977281321432560825193742487553590503014199707763640091236099823634106735618568236235413008362432435123945991810933578468784192484432433983844538593566619974190952313005395151894039895655142844574251414976320755659710263032622055276659935479961109120698827662248708982962801384254369202339069083464489034319263720546241258155257802994979718464990084114545974589749755087788934289716509109007763165727326457863827192553639894009084285974413339728739595978740867197714284125160326135699170608251202202912804713946618963701449689999755064541201270576323751568037460284209036152080754193540681288071387463563152202951369745728621545537603171825789368015811395249346482268261913881740331184971187607527603233925952221935275702317452497783094419278516225980945805500377366999367555390083433425096024203593472768385625914229369637673595205590339082979124237847393278827792378687017323915620012806532068256051845771776927923083747498046049041848375372926339330126636753053146549548148812424187903238845369065228550822031993809500851035779884260917444676099029582726781886884698298556242334276999047315605988733681705908131105948981738254592433612395934238884689806784477230943668511054874242476006408575081099504059069984009492427393807398011855925030361526074053107405254948950147037373382870336940093519983118444166859365253316165153625581790271992560830796272086643466346652780359387227960303166386283857194360839217153476616071061938307278711765827308707235950579501887131350945731744596651306256343017784382909640642673633906158204505179345585665592149896577323091215705647741620973406816690204538227375456142475854083666988821620721035832805157107540411397065758256903899409649004769339184301821475901223764154885103401463850321073353863527211962463468309295960860089725284783930134329695446531576836685223264352701552076320839961021171428818108912101772635661628294213080362527851685479920230269946004178107702375934675444420347487622405360724637639382257519985926016751451818727894190767674398671958155652543587221548001051708721832444816345559741314309669639788429622220173901184280678947605544183656795475919618948892778384089283294828436967944153972748019251325543340079792444202871709501020064160993466725080219309345499537237543464306470854505984055337533481322439608241175447004622912493300703326405796882761383390568358024687549537753634901514268048581124359791150807460577804782061010003798723109664860058358334478003443449054676587277445205973235795143369071614865071515288558945425981731364404555126543373708146191456611565256760913640723492824593608288245621747319579862595353074054248438440726781449635503501631248572689818224558111117950064710501182823518070131357524025148956999500007934299380119869767170151839041311214347026622345715725593863403600583630292457896979559957097443237057733063762686617966101614367430013768227713007624561932414097590475569211603414905176650758233811368210491436094631020350415920183751298198247918685885457708543011179605312055438665699627774970556780255138970460010705866434390002990663881945673894996811629377522995512708640608260205555836235468409094724938735743920250238040273165292257515859413738200256469942653866270294340734289082973784799393288594045438379301377767328019910223672397343644994393145874903343673475366257431230644912182556758175220879549279096901810291235521236140015028139918306842899143338692058368226456217979623214904418807781325630789784812583100034532608716551456188834403722134541405861640264257104308255320797345148467754423867103621607955183868637015951661456912867186692719041063311851469421629362888651282004162324618323832755631372339088958477532325063312584217103019860925373229251290247347278670229252506457923254745098432059797538976658636867727488017248900892204963124537460831354771977689423735281172160766226165594892686390095512539997126188589067445966319393037801686049764253987899966018570765430974904447624829106952774689562559709438172190303634937903652170072120704911351205395170198322136451489526346862003938465523796901141773319201040237290977939189215793523955443734718051659519249910855859850416498167652746357890250951983113167009473222187965753184593957256257227885005059184747224830805410049179768352078273369112604763756533704704448852191824578496534677190781035274821159828629319869584410728793279659474002359439689477646418211950844084890027392640782483348520249911499234829505197509583385634212179412370937565141480088220110302109759663751815319100286960392076004717584226160416192697971168368593989129914335463332948085993443504453270628994579729306444646000378033345838657613043466676372827587321566719229950791727756896045948977960291278799695393220776626030307688526619654776173359640625669239192866346974037913352031809636751832870037776012896564494356962122778418882989152481629700172735911563194587406077351902473718688373393466147633938558958221948893144986542355467852110355411079468860843953706730683989779731714424322143426068104572041495264072481713406303306785718359505338741440924467148623518004162017589498156617695153814732676289536342267538279456041534059650388595103353509209346169318203748037232861396326967823878783256704248110957920815651379910756042685237845229770494142975378618658103758779545543739803394280922920687847719025194437720774436381112030358888852642345097504488047682312872918882933128128395376388378919022040078304502417293155978376707733863840312722648089737077473828495278803323271495337947641987814312334963915099313495824403515371193316391795812629499173729993399567736441412445056071212440941621820596157007724805240833067218985209671015466865772890083156199903212531131741873531293289312310783831132223773547003917821068381574491619919068501177011219504378423234162905681030062220149411111900870514514654789737566428228035383463137831473867526475431476848609449525238546096985400059554865007329811936558904815849253077029310640605523649253650683198251924728225176422436880701770110872832950690239402186104583765779332757937738016812828532289276192085344920472702212411366485118764514103867153210464958956601701548391756799825150577014209779163877052947527988052854910327285597589875127785321345343827615295754214653082823434936886448033162492075651485225247904585206603551566387554871069858521094079311526382016754386803481463395135531377921051859531700751771150577615676316528466690416471432888401977895556547262819355946193213462953667300487747853665419472125397053009876055490608940776815476567688885783141998297654791662231378775209976077964335977661158361165045381270567663237395527603224960407451439301068252703531059001759960443245931408617965363271797990553185964482237506221127806040433330487747117451618567232242030983805746514516579994686736549585687177989602019827729065205790189148480328711701354251212738904911431767289027544906939974804579245331605589080647329670751357452824886845282021767952569692694744351138432982176067174568466577424628982851146580961124203734827872358839842646546900639348608508074014367909089228958307338657294411382310713248299225962678221285473970783291128756727305907415956557410271471112491231967293541671787505121164088614289670785079219796592403611673065961159329091418721279635330101991784262006523908461815223052403583598296625458722323511980970190654624561155556004903329868279807276663044225913918351843702917975933728028596211142045020229242650459434243354132643374821112206317097740652788701195057119405444533506557183777503478702171823188470634767387543281004481891706931649673063181303717188288806066576134855587935888621477960236056065589534393316173918605055823557664704137874291454154353104903846168767335520313626157170040643058992886590052714598932994026183999958452449796009958441696440525890115002303414581193626457250649944930832688938456707423178881522360840872789920089941183147388836699130007159162126766689219329747695422613801796459818184976480856919266844921824101369161242111157340600043309654144754127349164583257856905959412141801386920101403880266073468587332398676947482657406980351428076043721687701336191763694024077276946948159894090623502520928539642947860711376181168512168734505989390328302140117703278156237747842390825396353358422740366621159501830935941445273493691464087565053531845036552148666686706715635921411810695748265192400883754105217324579585306137655068728959242012864252069427746060218865013381679129879305353059214659403893223669276554113388296415992055548067258782557126647027057748293092390166966999219984556405057106333033608367726855203741266114566495921059280338003828583480946707945988515654266961417418127215163812337532351583478057240292247473281777293336475703642429422588520650224796164991654475969523485617160800613799961263853222420790590025904484757589653719374451141234009807946635058353844008579841008760099469479119012403964107789030263370789149487670155440624046264482243280465816675212376808239074098398946747240593669614940070417519951946661336896590466657976365783104768734621952540741627073045609786856920779354191465394261874031965045764293141435124688427348174606813893144845631144223854834870870872176961306023113092792505759244130720916283066346913404340704722071573059257704564923763592657236835162462309596641870436878520803117190356089204184919352639581684030237968629736060929017529283238212275827086375871829856103957668842745894608715888392599044618521300430241136239035064767051612785920843945469307115416921999725800919472125515766356572887644588384596030223674375443214118521264805259758693309022237683747926164923321809219606021496746249537319678166525927699717957146999940783253739477470065459835978897503194337127960925600725067422602973690197685884935260962266949893863804325290252966370425906763339540965731159537668667559600515023741207264748748116645633220447058547137225380245319070255500648148162984803130194338645571786091933629872995858111974382834460553658471688258034109962445601688766387154263076499642049105973504716767723929603976568840964034369109851931253728663416125926742506967096539057145914494446422964272998364207471202175371592360740073834362000669743164948601419918194632663565053148879150701603987792528951714561503751123602259074838278645231311996555926177498033829785231137317014549583783445391468657177572803055830393094100999146152599267328599706999459296790912443024730732253959047962584371741529844078514638582671733735639566034610322692962338265791770468640053940180185724321358959071295884254334783503902085943150495295086974323473079629490873162360759172065288411654161435129176831220291460946830828890721559349666697013399948432233133746634373991889730714763666149760307968257121689253968158699329762739208261402420172829534875785676211204774474135309454663896885129918169143387820008253833885313530443783659958056902660257091226295311035762648673434719047653751106705651065226559433796058146379022342647340479116340275974092957375579187120627291866300393663136036206630206805764557021485620972358144128619241364110182230609436015689681032218311563823243551208688338708148540518289398838210583403835300606129048710297147921000330363702259050332699176557781970203194141071773130009173611722853959638791163744140868828317442979616304454148866922927494411282970324996049634109444351699983363111299247977809376148365825092554702045563266091256564691795123383571746157806930604380531798721483392975205978075907377411708141061672739764573552577823591033363300685230483266656756840640608537633973874129335644442278365535983145956755712635136315829718797250976154821330054196836560240785149458140772857894835159279041582795219180947360043248783707951031117709382670417663838979763303058309618539157470835109844007129731658389713893898269759423095100337529924060744806577289213748022198876668299646781515327697190703078871366381833143055257651918738810667445712564911989574502659994080651759541842980319600076545890971414332940039057232784622308531019050530694967880340985606249789475306147705603699914888297399732228346227821863236243332895334217122922348293202181588602808201874655460064640229687874321769396273974326934779690518632772725942202378104933244774067684123460617099649172783712800007222213975535844695170984935077104856368644326153064038361612084974430472668441957822778855832606932124201568721272632775940114496988444880588121908047558482065179600756278052840076381715595083217166066847382835767578018772457396826707604287322500409865223663805929778555314983165830118665063341677259641536947600671909307376589848058056976246654823282056472431641826227820913942240515896436986181540904490943972653216450219764481328610527568432766715367476514541849594952236516124261316343008639716092538335455162474914089573120925160094228569667561574724815889668333542216993200759123674511128862736551466622342569195351911425768500954758920979769532758944307589300363275603041827511454429019442206068066603048050152156401566310561658006977008938923514270231551908680511630171485761242664051214546223391499828750616695091863474197175380313471577496509761865854541833681650279333308779240831915287896918409356546323883345655315719703618098919614127109770186453866097732886264630011856372040746777049307012472899527805387731820245406983179158991479205358869492067166544717141270258041025017284000276428650929514413711280104311854782565095995206487204705125225797712679743752139576647373949871591194927910279587047864832105345980466437992180640549554274543924781774674402197613448651136843737943315202370881910921138188999383408798296638491254390245508059537587222410735230204892293394271470469545472884120573950467896939950869281730164851923185374341171970867173193265597637641169651417466584475350716504728418110376999981112782796180940016357463608323794758803826565943991950705358767378224279185949782882771291505912125632257288548040206377208266397989113804854503263704223925467620355132323917550018914305553779781810665678596020369968683849979605344135827317972594177505958553052087347892373268037908192393425896017980077730341946052634987188227704184095117617802009319346920102652727791340336095544820610470999090608664346525865626581924979677188030351269579539169171481457241369857082375458233292004248257536147062755744275669234006842382266831964377819209753900625788726307843652020359583031750074943208420777566523332212033515693777543158322265447232905291972862744778789504938766779145642894996127433544377806599925247510891653090637290466434678981095402225717908450552764162994069235525479257123089222986825531510115960413471871155170713257275557613568076122784640227717417329098088483349856849292853980953775459266479389524724804897209054279450400488354021386696717140401657975154720656010717682881338681685171390845170438381702850272847206873806666340173846201858205144805207571213425992452056109645265317656720669401799361539329949470032755737186342425847078043623499824567424645553727665163859797669241525964520144995504860423498875446923020182771526119430643924239675566718632739251247724871221493480409453400305392360450172358870285026823495675185277889232042629426863965354684492886221420713215644554277357504449783553994716342680362330868969428764323634763814361071073967308066082191060453792401863637133115156841485463304777575555711608584439470838589774483378223598542535697121429494519783965079125720531598268042430021190645934153984516512597472522804237262933610451296622649593418860100519382828991519085402154014213583769412824742396864644813676756372711644987574925581836034883293788080857895847788008999758429012329543074796975062494668943917550455190350153979986273324577282760550238325687164593573374824695381455248519649673108913487687017271977737483737194887550203311618765225076940233903755808333782677196055735505571129768063364385866483006992839857792651650184782949260621285044553682851035125136071560928029897909867877173150879828491206335571352927898384158059217372685465428768276383636778040532851609497702805616981369136746757314049880327593413996237198138309526951608786709492413231559414126636461687408025828869251869894810913151513876783833842773819679469429237186290329047817085940507607190201174176095316168454996944889720597362213819767694087199534442819753039446273119509856103284867368275324083365011427115631575959659721989358385812965899700965348393770431981729433962190694650061615282566564867289144247669428483521569078486093517502756936049578117242305140453845421197958713111337659044684733592655619854107560317339215362377759898111362378355394190601122204914619671523430920406599212181210528430273774820451094677868981009093532721592241442155242954307310652895455563317881653408522391089580347307716510027451619799090417609541402335395159515523189945669787559835574642117468973540864559646481832284328072163101338214691544413030224663243849671492711502226734880760756544509803644909658249751339362695899086758196992473291090811951023393520140180642076015663833520397584800737028200138038565028360080774717104561434814880409872321209318688229774891606852554936742025317094844137539430629585412160894191831706610468639111989019807369446129039181361741008426935524776626020478295857010627515498677383744030067251526901060601861768805804465725729774321125174778395325385026717977250259413947562628506261047304059489538509048832457079398622974096727958809361389226465570233101569162615683398241132926057800412918099899324703847112553121901552128143908080584275676616382772969069134116056382454214961470839763366560366492213833610783361166449235503828647506562024509083662597869404255736848567363869843558092777830227221048553762297700173122114202633164657654778992318396906706789351616399048582027705331215200894422721666694398339779494517417106899433343315822427049360214581188685507307952592844081034424170271224923898273338817824145864381420859741181285622180588751315778423341893220727219349490680903524443529937314332286157440070993996191321193363637728535172124135159770662490605875171295703774391789639583052633064418973580004440542570350577406158431086013847980427203063580545141866188478191402659878753217135527648397624805694046263174371096674672646454297152727857666449167889591048606658007102789102390168484748715586385031083766342712039671629360831153916871325625312857091463363478355769699098238192431649938321199716600938793855625349887145281596620313776334052526690754186325342005606616038564612874725089592995546896947201731369652036569178681437613407490916982541661464345620705861874115393062712291683216528953151981597578375566652622301333385359146232165560766997109614145786094189130707932740030083215295528059795681679572759597932022240520511303548228046507576407289523997757779784205909728248305609975629502487163728000149290102108626174372863540204926602402123651076234744449828885106584958901408596676357685835711011135121780954104470490558593430353671411905626075109818762460584928370301112218562411056179758410498782092636387902417405273110370112205900839795410521285304623420536104210551379907859240987242030976402027127621870111561562034262575503942259983810973634511093055559033604930318382013449300362501525304567960113324354794720660321299169093726550458572068955628181072372692509889356561061851234168818729637606038055390039200674822760366752077011852317653243311167551611536988223486634959047907035649902258615562621500613411151264916884768103094808381354349934346954619045343591760021365798187014255837132563836297580041661735935063179797186746918125249787376922061612907202878403371874702463095399172689248454260990829932734169473253356139143286959041419819366265672751178335766457413359594754841290461211195391508944031646929310353331768914389666931677139113874046968801019181614294513173460117654848643263026744261089091946387870581991694419262176381875893015539705049679360192664879340616931784360595806299252191818357266045720370166667357159035815968327926333722341014117815183228052657468416662407935735670971783211789891554969804560667775128459461245580009909904375682762725711970078800563807989123136801363232906893323983179445456453879003399783189730618851924873856447478413349384567113662507673658589354330240823477401063601856724055044027095816543022813892505075636716654838020226038929185781646238350178129460015704532045243114581162869163328811059430061419518163273050347100339803231618525261477527538981328446559644631963336906232794235696214751334211747079605485369512746122073311182915227504951158634755665093832481503365140350931337562686323833938219755173023209815728789905115564906098291157724676111819605450082997770499998003787800659715181661343702560189591672362534371006194149709081618656784178872099583535191783630189842698088007411298130850971435777176867731106791406700088231685468107682279448350147186781992720461842688869750732133018376765437759674903166422107482954771690086123684733597815995581283583532867967792655918993815435822907298547495520000233145020604417757745744890556981980611313248286911615676801397010122318349888942806248867702301895284044276006599535294460912777746295413802138172569364565072059514513487928033241582489305734195728412362144201561016717216371127555909529173574010630719897490788676035313882066160989779011224513334324614613244915709790703526352586801542930565084825513363385679567528252156343047328438214899738175493153874256899259026403595680993875048101516346525226076425094300285328100301489416452215942233576752063123727701564580931670228582205075869485505217120545975204478748900060893473977200032839789638692651911980066806672823355265191898983340086463132621599635028020146547741346952092841475734032982540612655293161629668240967557796759330655630324327029765696168466236183053013694903790015244860695839015458065192542327869848352755778125087455214072649036046013620021695681001435853810639311079469600118936667913653767566483137817406478965008992518209195335998955828966067586733189699687098249105969794124131544597958128420749027078892581138742622509028686778344739930873586035331087491016931251684048941874590661109005947516545245956420685087251617492673757739688873301763099679362578146443498552210923231487054614462379788592217991047057776142901782476937517185240713015728622803024976056760960616671155871860953841901433436954171560463935054520606312425499844052969732585772491240108651874899597665071901529628531244930297874244898347489445995018501172652964430273594663094102149757139304118578838407057131242640051512459038543492014379447873853336759633149940570774602471833124162262274885661917564037533058280779493198095825791608860774032978483222498772784772425389975988980175459907731471251737314591909879618481833977743267229015630438180354307671113519916712305818240539296071447623939130639246097570453122138218548516346669587425113901730998985222389938972349676880343268780136498045388216293503646657209325793631534074274050741306266503708586290818902149279761564456519242678797699746722703991471556268333032737523248193759715136667828630309781744517149854591973220585549328239396092705928184732492216209131375733868426204987502670139937577534266426395123481848392442679145014990219518314840648841652115558936597896987842626270182360397684031494751561595122166913964308392738251531128365784960662029208210364215155325393883341615429541585497218243251365158983510417970026474845782288858243979909148066739971751823750252217223731620126544130861831256686217454398824477858140547017357405374328730237002624483002951948257286608118374759465845742060437921478769661253955550971785071855449319660902396657091554645323423969443706267912030991761283137480413438327821489791234576652930035435738991488954797798878591328521599052754568340237711297386827840028140295409312298874755857145522620572253950686830380747553547889843189314404392211638779542627165158012774522717138869524825218577592303585597500316358017808575707892281254461728443725505820680572224448140144805079088254201921906581124310032026917078356590890780479023465411135156688566022729608756635731162939122276111429268784659916216503535177313237104821770222291768541308394907646293417583459798533725137581136526177908141485645872134375573717955158967086644251906658696589969133628764109394342923051087674234364850586409712571488848352079472649432417972790766420988293503507850231358628546967893715426607052588977784927747355427261444864791940169084360474507802770997329882830337459672767541633586545791307576204589625612584045061805860127791553492148929134737517420596541191364579720307376495640166875209598646795365858832431403472809830329004131732016061180707780874031192995053836458682502691176664691620349370902489659491191123055647398512643526417085559258536299403882291384145319873922167936761710426507540949374107704141777019739607285517126456036450212392317776800776289074392544579642473655567887459917120389521165202210485634242520029806781180307734038129506254048287633680234982484293325628571519713512863320260236060815063034494158432080543595968980155545942903807552762903790333240856939559764026387739817075496002523336513947028219510434407745093801153080666311621572136137430962761424757126999061147653164536132173577452329047877270692133073058365169144948805956096110719242435247086725284172784227704944951066278930982815173710400825267077193705447074667736899491903334060879481375956667950140859045103886109236649813454827432077916869026120185515459518705588780085648338618953111558209821969270159246462742926397275523821090108927034904681734947827848982322806771606890576905613857892539881239682194164075121729189118422081902773110683405326360565081380233281766516390157645428705742917177711145393034953808505993629264603645568012983533464173166237037735758601275831921796473280723411813104384790123821972441244689959579487189400611302855809482489574034972330650274493608445766963425110649164979329203086668315530258703723372915744441287831741252654229358252904654437700973244087867459016758000396286260141800792465534051284570661844783568553113547997075804581288536101805895508317097439264509100767980051676339176696066824699980330768396776045581083012503075622808620948020990724837730093034364086930862432416408489148233962424368576974921030189184883634262057356916923313842879417888881832340635036124212884358230664774421075396616218149215029456934279274133138791513233714746581249396897050832171826383143539600969397909804704430147598262595728784252156844360992648970900324503986947665363641323317239092453583609258295164739219459493857423729506759632769598785634005561375302099237240374004226821847809394966679018843689759453628394618110824616330640625501096090239746789440997810748444138986214522544730436244035033772350466326786663894434778802639287401895745884453097136574725031241508273418895991552401486739896824774638367041284603326696168570209998526931250569833187015618357852088750731087992699037099234849664880737364354664303000253927329819015333914801295676961380105844580318589440382827570384090736410394329332485824587832119980189094405342723144357418814520830647680295193217325862608405010775946313268336264580032904193096311411325723765058380206377297974371181540339619618227687691357928593012099337812921599977770101487583544488903578054354078682365224930447741460083543805272050374265151479379171565198726304356378534971660579423874425392317374603499802088406009983823065361228999358728326108920142901723102832153652431671915728377830955062050069981157685504353871663450262881541674207671919540154262071334058944635628239288759809009955386094213595962950325792207879770448211050255445921167173943818971125664384371913512977313864840771801839527340202141402517065325168773378927926907871454472526296128188673176198615523464373412979411751385900745479951564864391079401497052008023622422069520110501414880872747907254337150186803014107095231566471265410801745188508097389872713193994284455351526597226810480737837582591486875081534215495163256258316110622994806821811422463363217010347770926198132296497352720633213723658070676933663706493013843606685569195784673312707075932542618185032768165703618746773273462426340501416768156949223353883936626481769361733660758180812725543573152052349272958695391642812167513304656288414072390062046133525565047963022018060981201900327766420702085832823872811145533110219992457509178013124096637680539910415386189181725064946677109961629139069359019005314233534077632657264641805032334609427552972391202420240202891608626374654681458738502798289516010473988224615402579503159856720659365771574985078428827017362845387220976241923598967014615200586741076873268405444859123051434974564464487269576359717991563213527898404519904032519446390718900157806624677338734074085336729840138061216849998574878702464749232405960353545874078745249531065234110158738982393836858751561283003474883180626560712006288173716595233859005631311964989471732853700050747058774015394869590674813590705780500186447450673566231525551360854392145828739386282078363566641512986621854506237415381524532504543291851506059862977717392785768463148492673177782041653196642534461512440124199681710921838594950293267512387158353133251382221385869143474629106078217952720855362551650560546427280718137373849473353385691828941371622766627959862241775278746750067048946162534296155169965520343094655453565263349552686355768720400000454649418677644365722795602554561465557701106292992647149787073233147205408412168252557846713938984863525748380613531180522776995521910735329356111131414219015619705366640817482106318851916052850936419852702672474386982657346439038213320822378304825629258358546936797555341957996040982808883140020920483046699308003390984884194069917374204177883486095319707555981308415189356352522897662722682547227831063180253518588888091331931201244187645578853674211675115544168238849988072434844687848909576237495569937736761406977443047296649916389796653870013722193883660982252571775024740850278185300488541507682154115736107776569854389580873091166737316947684502159671213483501202264944897532092473274515474705356749642580558399302393375319987777001056232596437847066744667868024831940165855738847255517076272733865046374005505073506224384259087200738230145935672199527398778079158414064192889099492415691248393427979012634098199222440916631385944409866662535929300425411635703984004427610170470740178548955071951736823116869434275231299194185993338918691802468544258692398040246296397519880872470879307860701380980371858482212311519463593305232936147185967911075844645861621769028323013930843771072684379004508088517953571976318506476704383164525601865364145448819890314538381564091069550581047884630918719438976126894557512711347816004223884359021550074348202349982356818398869880899769346364692789518674411667920776395790090936532635890339924415517531758696544973537099949769012958898361808987286561633000194126020143357315001979971067168523948232780624102019919861319141309058851948367533265892399615491736656702581941125348757843730874454578905248190896455443298942456729910038742298391975685525202522725589262477827324746470789864156989717577016080184717781498338611580908744323922482757996353256280806774003452962788464337362821659084390842711144194337441107469153290511378739611283367812218178329625432882451043565465860742336436292584744030324886415013986472490242654838813704179004767537222634473038863606254943086844974112093759408521754989935149316448229403949297571389904765637453038282052771365969358142983578729552497363404977406995002490576532454206810158893573957159236299524265420167827558135268207958151837744006324462943367312027060055717277223838336500727871082710088032455695990520719289437135904129103881527914160806887346187795161688325542889142581399454784373826265061015688556610868694395389036863467038131433203443813263783324318095934170809718576082273837445060293932491543944428961606824997358113231750569688456881106032750729284706419022990971251467596596765273128496624866306034017081850012338343649114533877107350379571117705094313373595425577951314852873369867219782047491710990314817605333952439203990063369787150093745437931607985432102638943222614060504596290023299110319156268390395378751429702240518505736690384087378407222561038319851465062720425905255484485298706379755781173603361277276458477228457631740604256609771920547431598130379144942613787444431349623672995813532554624093398976448726214542092154986226887602050806221177246267644449379898197995697382668963634895146435931061817058475794624031137211022085690040903757575089687101127511854748218572718350854732426379182235314170563190049141006795313542798149372176757176368474813731960748742926260364604321767871839103061924765491240597666806186035211274977732676223892077811338144016903083764471607401513247644238235793349818077604287349432085389678841565025256720106076371063607715481551366905011497721519253311560760769339290580165873634759304682534587390121402240617854590369393642393958363833600222293607888179287698973863962659740802474354414133249029263207108306255466217808155007946330953150440064283340173965790649427245441827629552227464609247743045581553561921708311677595592811305605900019875141873793434973479507994225298100013400375846433589148271734070501084558586359578271651795859594978195504522705286634976568405885824928175831584927612846752466467418909339156113979345450730513172316322382575572194044207333885865774809235737587456049300680289906331825377340844044637152934713625057968297511642188529023059984862395572911878049373580060466027286985836887463964998268577946029302257029428771840507963711555564518305870659654855023167210584864781894987119656683233657898829309199509520420485240144173321668347608124166644447282639482082329225247197494260976181688007768478190658910748105417523425989675364933510123325601735303100325124367724180999541637374150605202202306505914232481723234810639360444686840625268325401914047164957698151531693247382621327995915911803817536139158549605847109313577618547621713975865372293575572952941991119979983096256454092871895133437772961224445804885978421895299713042060629558228402565986656208772887382301536471393468714781021154960102473766276589902207549139670868277128891744008022712521329701637523641740746928856033093199640445290567226359018408855142395488486673546778628598155056850912263786762197347506723645082827979296043274682276034339002647373042393643518845722427103643730042093275462863983294784014233885218831759605846435135013301851826145620901107955358021697332974683829371147078277140657845648928245911303067626165614347418010746866394322936684250662550670972208344982464638775514940541271691999288009943064477835943628060185832013419012295589087524440893728171475398817030907368682852262236983544630237442131858531706108480455295514483910623561786967419062453787366842577274684033182932693225071866055575442154664106910117778973390428698676545543492799064879218056194831547781728032661801559030207784206240548194393000093421047383374408160817295354282849338873380448700201205933257139716245221172691146370926142117501024236690976979308335212768356134684869489307659215865924116409715178816578359115610771808349948879814547734893324703431694740539007740090964523419318888059018923843755969296672266135028466552772638294979088727972571708171178540416865309147245445731842354607684290027823942569089950912072764240861345627082839503652345061889122058419362741993286460532377485005911115116348861120645071093436032476722023781577262898624565871488176599300217896167286562521587446969526516954243991003154445743506470137033335740988482280802839522056048678536244620066330652228879649724570656428494053370050420030407289305399335709016030566838572455529428563790950864219806762113371832679473173022527576819010740567679589484880965504322648875839590347033714996628876703819858994033259689170760733840376859557446006304627716774245674291205865095661203090600415408872894995464867140676104763063285248891445822277513817332923099112689929738082348379194548008152850071062776811763354638894371957188876257603823086329940282943248628716754166321151670771149554516870421939229506476217643755361130187669810244684687101209387445869028044385653329605915995004299551645695673886824701181630085819024705312735948846748882800477416995050114998725293831214253979509590173548531746271361303257571948007294608577419012396762903287832156491251729474443019938899441259500778153916121957267946869077800864205976845034809731476164522009028645904864865696419688172967463093625951044355641008806261781511649870560338790313231543807410230515119530064841602790131294603068336097168285657080031677218834168370753133911001776425411018866749803898356289597264914651038650131235242923802310970817711279246166348256727691223791381488939074730554073986458496887489242969310917756175953574874678643815953853225868264462680764922499647921661277076860978783882285490378705747135760812064868693908928383537467253049722928575000828138624163225390806707474807314531089276863234227004989083965968318553922444637777465115587629017601768792197341268351932991220267416656649323182124678563321237966440409738372130033970726116544919208982388869430875680445907774770169756080608050624228808806588579366565218048215831083893332974651973240794338440069148136046473763135911122727807157977110554048104844185324802391784742471200899121286171678989252622063304937612758171486267171471531739296473240183667890801291756331371336116162679534568701362159738107815645539313585327896868628019359449041201325831638766191812615039963227599669917780809626920673025348836110348284110140991531295018396464074662140717623715378032208375079923870485277047645818823594276518726340660970574525609586306780502216056888754160076461545002979937382275724622745549090819924026302985558511602122842883014207168891040666357317336654193279659936447826372754900688328668309761750226716061146400374630471611467450816793834103141322269009819775928015133226616521276855212629163932794156605595383270190581334080793848622490958699902996904529960333136985240284347429189206710812427595615744231458495112219753452974676738054177853959569647713566935182726827225104327039331721687913003522872229612424023227633771867919754013755444114145839705024527081629566519776438963653518719565327159383284430330012332075008985217361950160851233408471048698135161903940704919984774901381264912283479308415641156866182328898652253297372557082858996555992766780471143259939345261846448520099952876488136944592643647478793617166439400228954319646215079953322955839407716260521999106060684242523759343671114450892727875609917232064373259061434877637985617123685458095278600731828933180512538445330403845222343531915625832241834329876677626114246251685091755740390525622595005041076575066971372076165866053045203845361972213699027226812701817522652089281237959411270255283734465398757050843808918334242182433310459789214088645042054553645551287144457963405057942431177908061167876112090500066615798789232906172211453575987249055325105285275325064867747529440364414013611011832658637882571180571890116032108190263019740816559751915562430485254562455676389265240346965563772143127487583229836224859464982212816451490791186781275918103503171296749175850197267878720242237298093875510856359080655374564704639749519497692186321734184099054870786543995285374074571618687884106842545596335579478865065956832623975711592199879234583675746851184464628496942887263887547921240523763432526290528245925117405752834942663046274958817340786643668029137981897928937739418779718386004927815480972530070975534936258513887256823580677184319507305158628156804764049964057079493638227073750334851373745321682739556373048728515789478429969280541185614621001472931108382275348649337003463789013235852236197192157052837750357181184507831795413332499439924761809423174014012263382879086260536702683502733141818023612442297894914698057348014965541256045715080859867651436474882712721342000988627038590206246228526815424001575106950361706069662258431694895731424398493358740094375348941816998194478071219852295714282020216873267841493844485664456288621098631628797634883927547906052986307303683264471920057054205313300125911520372468696524164729978346141518841762529202307129350974485470266095812140416100887540839713197625483207230956059970461671897365363423157430573188551122489339103137904389816151394097548814031959454048947948224515486985161117131132549790209400061447037111162983602676210637943990265598276505472476225925908488985550753746245608954190247328576037487019020195264188107040520114218570288431027788541717336137656922561346337766329051745515531813667913668897932893459009478955433614381934856006978972684933286441157323050718611637082369816169330155791205710704454345561436652561078553542738026542455084687495596553817651449643896435075948917086885759131112244882170098754611687560586922547838521484871609339828837266400703763630977294572030592020572009471332071115319481176528377612992675725031112250946574332707431495598580082149194530074059522875904893281120285724584778853596014485293988718185353413009881459348927439980102289044068896571024620479792585715533550201451761550709943610534290088422333203566246259821763987333877823624880717364939375060958233124317875587461162538128984955020516291678772121117281493837736885850312697712732376135063936223205317949087408075356065844980065001775331149555495626678462603066005778129626310335224952762579025436498610145881487027525383533465845903501527821985762544779632444670210410610009787625849546538708311452506481732224673378356926249709571954070563149191019841691744366158646216065034419239203245277581334184534887528237429752386851881408358986920823610772492797529022339862367767806462216109426783243133489591905558471577604389336414724769999093786036016328962184343374836677331766606417678929571515177263058011590002298189379888845572930080522845676740609522701282608840556695678594082462673841774098086693592387489528745086814456382605103738352667602212766718816708242659321883937522155004049307155249811735334950025314270771678172551555754752263962097385021377380353329558318862407473920887461858488323585363960488432424907017499785562477863251149633315373592533188786367862486893697895809203901070213128671183548365778348600536089103070807245587138875746300848611193704630379589812760385011314061546642202680466742816008606387449771461212816538052506970367486391598643665900592189839103607861963872462744115646386602886978155949226938999545007540623076982576233578434183200126193372985096350009329277702445057701517991545223249335901004478562293893093746513739999898325876854183273508133766507729469128450209196117228665243066432118146190150161108236379433436067328047824520603724806608743606604655413349461541086730370511324654446235666093136737843736307487917342784848693225161740008573213230916785488314529778997615760018125387113703824674036675883461335491303614646495045649742101281119118012452224699656628539747300114829762683015617159114688295053208715886006516985325089190836952139619983687184908185669630934869906708604777931016296031645566810184555702044077851126508219753971394013788563616687717177497963696716211137944799294426573413831841093824844643384769847527651067290599814352327857580478485911610796268041528432620675190605386207553783061057811632247379740972455738572991354060277103528097751116826654270225137103439826407848281088930320410784930773760275266079152484054505271533246054318219064260200361055053018378110936663443675673275985063210760481263442800189444359009311184025525583309039981293100304647521442425960698772917830937551989371258563840686384117270798320819006896985365188729383394572754144445841128824666842322085259159699148311678749954632425172598151077498123322801921899360666737774053677054748177378841988483724754211017576816960086240795669090364361239137832180207685903436573267669798282697061276017989059469590336073547574607071122941054860960374942437281480712724078089500321237521190903314034055027133691654111326986987219897786984353357966852752624550742507386766269595995944905870458686664599874091605942870140248829424762877741131729202370624896234164089985522478732555198079106832849928976317226303476723279397413584489733976202090298426113016302033836157755457079927776956764048202046321298380273681843175966778962295411909022461589371395081438291138251855502454313145858148490606843977960985148708885202812521617734062758229734091266915029082246738942636393578873263686041815782012988330829670692054536218521695705591518104682059635992037474367030303948470832178891306414916373206183580526046426340442082095901382651005359979601976941264159087831169605735024901643055130163428554692525875022855519622291747399820874757372026903920934704272508410111943987332228838751488368244985854166624863842204769307821180009949154791826599869944555212736854437761407800345567900156225547739111463931363463997983089992760649195305430440845685122658083024970797628516398838362638513771258809442998933151930456183212198397792082546707829603379008542288853872403521978170257256187113171105859530033739979508566070041760045630034814979055498647351399697487574594849168853008756234294833418069194023508911092551812364645463610236752849667816302724229399526175491016091111405751010492411565249709667559512323500250593823743612182166111486198043203549004862376092092779672991729026437260784934114740171992477349121607902998673710476836796076626125592376010912483572289887060092759548686428050312585832252341835178868808538743984035527123882102546102945266255188371946783057165684196335545104710672382348978581256439304503606116696267413386597259415612022091768214253283278672414725997346017161391142199237527556706417690659240876813992544133368115615105565205284765125903695279227899605117746897956555060138893202140287133189171787436983991296546906909056668745340159638307313935457346042221367157539668113852224354481226363194005699768595770251209930109938438271903849765710457740794424786158969703362863043011251931527607927667618792591414389846070109525337488246702928048529709080446062359351564603980679097195146895507624799081265943023873797655381160711950997312614999738597044377694160095056745141811706405372435820253132242578054053475110148785217671953393384782836065365281628820012714593898800077172058026187515001665200542813347081170769527901995558983707411367018601466241175217897693091710026973323022185663590778489233657172678285359415985372159893139689151767198295438551129137706870546943596914904094848100358576393009731647628144985725476253537392653914782357802987091028201853873647160767331276309131775065184096374856087504382563586357555507945452126535513692375893872274292148647983337276564029537760863243702417850706239444357386754301778856363455668904159230004078447059303167780812007906450769632855945020122359849892991368507598676438760744659613048742035692460486621828004467611083639506978864521210822306798980994022931243194910267136519839584662890672495038232995807810233034213200228430931903231333098792539671049105321679719440868905628099927400264819250570986903166022084376342647050694558749581441326597244550449531308096291442319999090191491800586879939991379914888956428033018820849120214891872307401080001735178663909015334328287849134139898385444361455288087765305118868895519297848761479083468696447218921738205906844314317694440315639710152326613189489076297214766543854495742009928150957465532480269833300934875953288416419395678376975612066285374199710264561552872276543859171914626962289604234418148198585937902180290973461097992278830779620151598150906932777235345205791250582444827036488295246929828526676706165941306496244616230996893882818855299298673133269205683380803166923552628758001250168569316976114396388744447238494396821054978347641222958539203942626255257839573177716263910516863435269895944592218577413716422768306519932823965315580171842804339992804960432667833545184558564330807524489136627446122026733095126472666729542135642062957158999017827998931750053362339016192107323357873921855665557676818269361274162778863025470150019422677950331902328130688879317145611307024247454799343590511064073812857313482454514461040995642327020400358144857946166541365124721261100715981182925293487945742540942570408782757946189082525453186326548232063190580732646580683475966803555272407593258348241654578456089534623385122970118316555528461155624414273640942544880985090030181658826945614583073141839465029171934909853723225992063108195145504502112281330358698170487369609426008509241038227344968921212061838730895348434327255384383036856920127476248222276807955287269776666163917532756413150240263238607565907120886426426135074823352569520860416581752834259422432471293450229254079568442523687611835231163550973861623893292763020166482086301809363390508722103299202361176423303493420011897927911711478815001446044499933103501743404838807793539976782424094159200611174031158666933838420502853849914194384134484711507731217639054645615930569361090297405986294747184119314068156765939687207638210977981990581923843785741692538949643779847910378368068074736673853671370545833013055212790899691963686959400869374315837118547471725388535367151321832179854457081408115674384006265581736723632180806370439977524045225478277651300925212935177861798092016859172108285971743146246815888734163166536456843991594059632681663930781041695142664066670877811069676316346136262941906997368689796994448666725221819814002263151463444624814480115645198347112715094084388845883764116397021554510420354155239765442553059681383222233562794103400756259234041251556090980836162571088081606872940952534721055043309103774543455086336702125620248271849388588435360947791851385088360494136083342972888722304028016732266703078754229291388489827325737182128872555223083462412017757735461702341478218871273108446885867558885758267979877931625143628668775765327186240704130397280118363825066310342125414250262014177120543733305938437842009125193775928805448369022171758790367245816102177917492810646293968171512593033679242638473553366545777790765042470152135803834620644228592415391863173350483689399583524520129927727553745985049976643704028503166104772662432090730758281680166156380751499304326528212968305328211479988975471826145763226331278704690884650035047276512958967233741787119951894141954457652800021198429098155374369488038009097439190692455639859829914682834917083693153918265251707385735243080156189208009947152409634196464882317715327736878502444937636040788981637337659362449872018650432111087157133306351648324697949982674661531866474619960556782841678753069954116834939274133056108058202923736187771416393691169960102478890524063526317201818601213736207571875674782996524812135368417893302883366335559012721105506803062850642068230198653835788965922415617012321354903498907873076797452451219890549401162796978652691201681649891645072339903827262769858823510561671383896217490780818617617613407419133505316295918315132511590428389706760928055529837786119898480739970974546230763885175338131573900478267542676485146266473579279844831646832357971047199169730469039654364475252903338295561662507646959747396547114097443201074082113253560565036159785168233912092858192587589451597726660832292090872108054360532289988817773588683471877859199573923834791837797545448549341070024853393044165178211885932292782477107300882165976566359871200748423803545729878429882387639739266329970995379150191356629178656805457156382665572386962895492433736043200590804413961427792279314908340125766169627280766758063705913222047295526271449039125852362952678524215712578653963857485775009457194862934853490518757793133024941064660630388998433564910035654605500022593668042743814618822274296648076428261666761153637106695798604305183300268332754221702592801175364272067235824456890155761692429456652383550315366903484591530258004219767583793851591148259187022129037732141066316660348520967622388094574086590453158560744488878906205750093426341235597678497876241679334268724872772620801466224149708792160525124467127915918623570519138757374307632879855271025288839276932509182248677235555876162485250974965665949859248143784939742426358802420824013533368188264227250130863841842479683723405481121515554213903459734066647176382882383241374108776703805888954650036626266171740176817133314253005667671939445185699154117851148497974333009289038034174281353205923433012725580921404093868865362562947073151241424706119105560039561698897649936818870550589448623500413374377740165369972693670646840797546935069385552035432969653014600431974024839775686644356025130026946187235149545138320761572986014922440601886334422344745572033905072434186909389423099079809176394171179491298428986092810347134730529995285976722341764387050765049950199352001633690943597168005415330514895465968920451940685870633594661742045125037124587544276482249488239078939679931706324661210761632513239892333205587432451758146687336870139942205818415360332691560492065408902883945051181419591944404226917502208511987113667824818655492292756350219595333941561414281270606682138458481711485072034766685531635935607828338769051858162823577035726576577988948451723950467437323188774946320605938913248815082462451435422849873440648357766727819866111633795463819088920692006803303532359929446106191689229928470643013306415011612832920188990809915339371097957591284927623806159071228204890338916166070590854548765982768031010046071313326951607059536950314132591246709764726857626128455758899924519752191548766410886403357286203978169901759863254398221277438568911889172115865061290037417603603415166861697469675022109464042240168160468710341090629744306217825768993717636191685433663728628591906932759162415166256792732759302450147905574177252558791001210202048651308057522346472972639098693510124962207406861377530855106836448847169339386577911021908846483433948846222491899426412522008552124044076405386715381879854086445169241923681148445300485628469615032481747404646868974023163486373374179932730601986763691249270506317539852034833944671484084462619764087332371949000538148102363025163861087022521874621932599362261460778376145106328662457421919073727263994058617279412853490130198917299167088915757728871434311319299893340236218483667030017949793481363841281919134230418186906062766167439625589635053245671391433318478060468392792296390891942588111740238676599103437503358491267103405452905708885046163307401617210236759927418112733707529672586840032596259695285983055546997011533913871541178696094810244791358920335145146419779036246419834808139405912063083121911924565169454377515446246447315285994089459865226812754867257808882271007660086044838281786545680193061306021822405517715889270134745804970895421361059141763087303664445494227495153157443147750242364633123541624753498636289808770277210876163511009993348386427499375195708421537264699380540787332491564744157329401831579414461668143537881615125643901007485651893348033836774402833839194051378671383265933198830385458388966664352643751288499060906730811940570050361723080967146074448707411240279206111499024028974638952650303044789127896164442023568531252632108075140270281548835185312383908230325820539321048796215020492045049390223374997610214028791231557270133099222865166485327766475564573159763227048417282767609833039021660281467747693382991443339350297928513140752318145994121290356561091768909347470057976044616865275234197109833226960682496634956173693873046729129359990212975421948769582679741808293100337034209405538957175746642079784710960960531244107703355000891392548202129667487858394050560132341103997646454761752596516246278772495615318334878481853192507988769734032631110035715129695866445623860635407570765863392937774175024348614595352956524342352438530804750752414223634425484477016661933169822105184486224147837591477527191289306325780255469296043666208430760969790245243143139713430064129788631834961579289280092752884848222304218297399171949311834093262753543122378790888848780998751149642686158669322260587320166482498360256048671903871047142680795770490904246591932946889616182707315789902709543718654754497160980839936370258224013800030787422893146426451117722788550450167893563705470753148281121649401931910680076545901446091847223659117424327546632113697876372721133124891800820586817056588968477072927425849221258813254167582155609563497534925590623444514209076308435438309808366647680840198766705376104262560651343812664112603481964851294759084589155882441858767843954691801489565194712564441338649207859105912152314624019544976729080739317654071244076532398178980333130688241032092732148841404132081498045830475589259026417343092009693641078709136700052853043622422886507857261640188411040451499117846474734114056750975190623215694517381747112444188520491543094633651881500403766290084495401133695547507085911331102944581439319652789576108442547146442446656715701045515969947945006743049762851365963923649175552168928186504060985872257475072202569239146458253341135911057897507231872876241626826213864336558323702108868467710062743328694415323927333098968028521506380598456786715182319052982681554751445567311313249591851829298607773532636424431388501789736216713611126279106790727638414317765103919544745973756621220959348004883376014604900220034212514953976849617806304037439208827072911122783815912128844126353062525466349556008417034189591714598302150708075853566457205589421293808531504470426457867385193265144077821834661659949996461542810718316543178113995661496656907024943184138278800709286157037819455861292067387955191707613012647742842267245316556475688270307095199479521323523931978340202047002794221051938277226747614583631213153283863855265303413505785166333435081123091084678854660521651198618921609250074474850814178989579923695180066828497617425240199764293054529786943829919936565534899457373548687905793385161978692227463915109404351758404111248721533565623594428806593698642209304704269851926399144394430449364639663165467300009463146435665331693646330289899518612222382355301404979231957252300122697419749351391124223684042513595591636687354732506094758212672121492264865042511076989257430479904613633347714884734186141947614822977896591298113437062644926887655058826090969381724366526523647422866715490460646457925601575587510045145061275430973227546585165419115743880261757581864205721562616734754357261428866265120490667140717451778016053464377995425514736810862651024323098130744578497975004632015603824083728991352764487391673938972688548654217973397416639798163232107869115162590897538980830116297540735116605824786236396211477838182652801593923033349596891500486673240591752639323617736740248610175862801479558141539128605236064682663521582627275249690310752832720129633224570258519664563474897749722707673180924937362096277017322489475684026731927118700657947349234459592758903612847029215893007982279060766678377795667855559557151997384220066153446090576453039758395842132298113108656218503573972264320237215090150890992143197968974122123948180504699947367812506899406394890814338781211272404717970685038614941308650620638307309534066673321584033004677091145572278537932959800499355261488897744281522243815458043086090810519357989844759031643381706357211049008371357411721432823061831005108410736554351610485324278350110783256742935815793454132781585028022614082311544646106522514832660059278352650522032039897301192915356887635971306545985235971035987600977694146492059615673465523489560043729074509433582650875946505126936415471601650291330264335112798111787583532773457618924436106757136512168466055130260825604399590516570177758813319458734251464803052523388493686069286235848473375311521414361813267962575480896370290397964476446115156412111159077318022501513469527917952169525767703233882510141722053987054367013254961678446673082477087896220997961273346000565827459250895860824236185671581183473886406648766195048863274548544871150583749779731602074705103335634464188813561210435812238829064618920041327722147836581185734523066141342311736404457056761957933132389129211799894894828745489939038073688612937398300236601478325396035586817478497945401563240644095362042236619595547055107086139170867007462721518621787993828053476660886560304555965347558125983104679963157276590366627959058037876082970351221534477531787439614723735581806922185213917997181334000779276039889978573849311436030164240879836898212784445645456517591400015826008241112272948424192806899541223879560339743643333261577291200580306498741584283093492313395937652525691768247300932312320954248387261863920697081874072700206082450321124045510174970068016604443853650868937886526850270194799790711438564179340014283140552728930158097714649267872957478425826989377501402144257733729017342112669469196913867115034071099575499713657461623610785237695115926202783773982133194819938288919675236516970457065098299329668950118938801895744768982391614906780511682158976757494773459917108313310477759838480902623480399173761974869577111703156121098734501617514031213323591829596024066133003708715569736803979887841675147331344860049169883325945032808276463637538028696705413231138553870416506147589220301454405570496594474193023404468219179479176002745400695405985238765889565191218552191618051966536498381625253799171058340263168585299796812705026526099928777973349410097215366262292707369984938130352324145320690198991004540754678374519933825385527856830432420868454393061369895163578690281201135381463631522967459408471566609468924297186056296294335662281375997106951228305866234640812314482260826443807072263845249650808422879435702584654699495803187384624337062263924538615027906822438637461871907769745719249403548524697227945869753371441754225542032595480996966619669020299014522949614255383908995124144450173439988570813686540693059426368081076877606532833410205260912244767471216057684366187453355946424811901096186647920010740320763485770756818717839666097435301076312053878193148246760172225840809413484031054571153247077291687214974358672964603346169311578874826523441637777890061507251217273423711051050603758688377025232578173731358355130822090361210834421435512953768462966656517504069929489989637498142810667386858647320904041627653327654598976658132091426702438492321023596629514605405718866052581198415704225244761977172479947090170922230719794991760982100375648985046487338005821945714604869213465550923912360514130360840505959412900520845688958095222744273653636286644231161180021998530646954444551301669691959367180880675071395679870949909257869427408567360824740755042858357620496707570759274376824967395148839784364851955770910424869535316570866332037987805517766487900367483405309038065304672993343040414527629209653119635360000071879282442214799435250659200507209408598960093902875603106252241889774952474356317004015869400407850700392081730453403143471216285040030216407259569857674356194971550680444904859605832656218220073636058659738816528060717390666287453303534995313598689802613174758826124574216149615980370385367586279239040033117561892079463372102884705032464310973331968154675863144368815303592019475936507285626486950106574906073713660462509797067153949809306983218802033763369360339525638833190256316938136693958079229446419573580495876366267184545387622305298091806693149403730656149691238662738863628423788067311459296623104227957840824041306262347676878586014243193473462489407342505227578720888926255236528967321744580796621630727947362168265679926789300803175895282929811422480981960629923497998107123931481390445969105452223383704540481090238361189999737088146008847514422155688848957405693096483435266380019062500080831944661507938274135067205282865784755850586924221530670422212806313526963905765791532049236872564469169862016617879403585666370338625368282782836787639032102889267235540850206947050105188644099613084076099933106883142220878596856416502738043663960759051272448657822410082829269252653738689810329984157004328943359867059484427190828237709681965181782510944153654898270297479176144953283549099126450225811958675746040000388441376928161851551964106974447974429724036386994099228414694293703981468257782397303479993035830253275240105965981144436076810402911192302884253054285394734406844758037012607372094278329766827567496119464276308967816836780010618752552688997526324861737544615230480028109515423643471929939559939218119189092553949271594747030635028878754168250224176542271018141446120536669000664679460684502501836658571341702623048670879202991998844753573855218552036667742439723535091751789683820686767520090514813862025505148574009268905759439496696748231943668359942231364110729601672863019613512143907895410232346639842931208009891449009774982373264816471013328323436510399242207983688938010327722562850218657895265450879202804176813630343198315403564096700998553323937584543108237756166061528870037983762412819060772898197538131931291738822152158276962684650975103042043091335822052306335520664748943472104167281467108919236573615357596451238776381543090700133384406616971626371755488776327829683571700749825778413475138126988453534977090086757881835626508881850404521111679389991868504578180800669819509879619868760397149466199754793933555393943098226036888212334077995191098160312662403541207180484121890440109937954827098367418913292103592245641181360189475602159273095534424072745213208201532729609881150808531649300614757451226101050377272788290554321767508545511773812345724176075797565659354653190922222591395617923732806239314034509933397295559635557003445752494355771416059567712292796359981120689448034870101078853532036963071802746198790320709577659060908667747621767860751814911894008219103983582315874451537091409249685990044010909167425022128347823274333874132442391927031300491816747247112924272405693049562824885044084188491045159131089038803741975280118985593138610295431796868713153922971843162064268316196045662711803833561723111395193592742041619562681957844441270857852207570765240813568524598277703572461846984416947344370033462462698182195824969379859945020343746264030114753241486126556517632658224215744107143480860114743899829198577534805943398892839733478672483944218100488670134051636402659410950687221609616224713678265715404738139209750048037894790294787717673213597931339557946305606691384514482739566770946560240190698171841461515447315831223711441767297529669094399752204966716350168025746821161976955469346827701303956147896036993649998556803881820012344548002194894067398120366254090871451894364636270797629661091127925886086781917790297077720686723287732547727765528205279632349187985160515910006823037294790201803371483231356271637321373473389844817032908607848769787856637548926964938818883756491657402353885290975799618739451625113373352583688888604950742555849162515572824556530183928329237479919615924293441817913948766633725030632527300503756345094916105845727389979151187160668128547047554074855529232465272122860972340167594566844361907308852979979467580036187662516563792311160220354614851078467107887305487341582214939346305668305553227459879899227853748393466398350016374185361021475019845153262749976980136678987191658520405704613402242719607626504195729125260934628268461908196370858799670313206359050720089301240971678430731943017747600170997976076756979436736237535905329795288498426977084646069868070546565857301344721498206192639351259135806912198839672638870810784926169916786617212177615743585308660804496568542246863093651563416107000066705044885735071710550423668196273240177835681111551984018559659288488171361180550069806234065616696381587897123124168189881414799738071482848918111489723440090351259212193947146073305751820585781862929223954515150627245332212768821270206664131067743442194400002509299704330838022041716432987632025702169607463890731590535495220864171612587808364249154901981577933861478736366831514324888021510685665698780116000463045659621289117513300559839693143702523192034515526680188648876573052927062867086701584027571723066444064496501735845534277243317462878805115308111370317623847149821747571868113964796891034139417827903378791308147728947062282380341474538084113793558351278277318641847255705347819659550148739827923847497335268203270258194865315966424542902474606229488476419773164850852220136250147452022528169273142236745954413101316326720523369070666884562858014287567642844242808502781401792007778005268728450516776004347622431307707894578874859847635524658839905553893712643508087500164254912869291304457264194179862000454173462335813735310135459199611158539408445161512495284077343514711353980128790938837241012730496136231989587551048287501092660902850378863269804668100244627695703996375442895000201164597147819957705816945308546929515867162811807255752604336482348139052065722205675744358192175111313001910648142713174190711210636571971970794712120975728356130831787628805322127342432315229540234002777364371014593767368344444053989343009364192335985436821628557474086548070194162240262053970958987018551859838999211686891627750150882829816737911753433882062636465480226131462761006964958887219271180269554522602818893768799335743881652636172838354768961637175315420543280821940054084946747085579030757236087415528720144118619038977253558562204556186036923400882025944758010544542929687611352293960111743682655862931946015551336708446160740899626798305297728224687078092231997192196138679460249341675113866823815009758222828293031665534803008456020419825184524587040515840097522161830402702771036791937249963183170033036366327571626903800018274371948288583016923679450401353919366136248569445144307990034550579008055355712919714774123967086280682826416246058135081113419984261323664130462162208450343204202430192494289181338919095613388546012596374609296995294720630002311677105868094673749347795589889849871851653992608423568779301248308803483564992771148334180148260654211621980582287831621128976110082092704359118874085568179476220137019776950161546600240406779333290604887925601723496957147346263889115636783241077206238602850217526741595915306503173713543661375012660168808793483980172671242103976549477459714407227837134903983819988794388976319256627336601925452313267764535529323721016500548757860247205634782139718275348006552610207634482814146796670268965034406054905920417247490731744019339383506830180089497752389529816321599612985032326878693587197339047445560316552538037609834582547037708694048135542764038476517042087192872470512967421776901922105012521105665128750736720038020100464118814425814148935311764778695815164148652340569123091647103324541680975352592130157663227096654583833788199115656152053153003653214388925227263072440915404356306101211268194635778373135412167389391385577772324879617055441044671218595349083217143277236049586224654944967946681492603259547757523421339925247191581864842119318702001463246709578020270404793431754977604739591275734825525392972837804643986793195329634855460951525985872139869980102416416265905337325656516925714391963703360934281465143003139343558487205316802350043080589067204537420727952885487451029224716713714253561910694158845706506339235838416238521406931926298678030056374114648321430512474729481075857159008254780701276696624959920635930263853299628025039448489225251769333723323472489980811098554983924930648589119190817170748958700409034743062614348230137067455840862309002533105274805778196194820907239762581049187578698647713742929659507111981241329265066690151831992694951237102604586747106487952422812987694160693329732889282166193475964120345266846153516146349600835338437793512147539716635901699318295032999012732317133411662545423044466150678022575408203704451033120022498649636129497643455708049661508642667254352185104589999739344809205856281053379484421620194532328420632425745563186042778390089289388360039330124240762059560542054459469025652989946639883594113552539510675394104681815778589099796583503066650537259825840204338603038038411001307271682571001667812929710798527185368107386917707269477020726524907356856755357936237424136274186994112538717090198443118720436577232850720118689132049942195696610344838941973250458311682607603777121390043208926718414716856329276841941357994932474211872606866602469019253979196815130555597290209533110901075380027549768947606015113680266014915007236970279313993075075577048206407599087736666287144511424204155511869272940633041014448217446886444078549808457739376760097796111337949055447703207605758811480788057692221976806484452142653945860896030557002264519932806802776935970484817901800244924022593972743537761296309882059909096125092134267655693623935902056025613895239591922939522164874422318121733627296767906308476957858265381850743045933381164746550423431728479266036298079647693436864897089473966890656235625910180743419865751419623061081184971142535297279761257832955608279273375493995100087707239190781611142430255243964365314290214095577065780900859283239834333570302137864095601277924329509125551157741686336124300957165902426107728645789180744596070387297035049273640192143731095091068431952825750909419042346302459166365314158605756428431878437338720912083059553075570649556176074785293609250722787749207927064925247098774398319731401009323861394651457386572027069483115334665313666161662028881601791396151139390416228753877280465124522927190886621740085144809239639946088186006723377458033995510021596674018240279632262001172925289382772500838930356225534095189609522775054631111601387939926240856347285137269281270918034817648893970754085241253984432057029579034432293104114300556657057760994434117817418408195388170410976588753472559760493266219063747403741649325485032814327661263070725988184035263919426300082435259943320342831124106104468035460332094953654506600717633500725628486764348707067129509554318182252730159332725883829343398483434177503272902787319100570187746028101318423464216294369425205394019700186526677942226009648804042626579069837742322172794682033585804121351941205833681315340133346125325701952531650340776715511155873675666492336399148917981672858456322668180301626687313204468482856899489868448722698756338070471139480725182043439374556503797091667546433278073677051068698277203477931218828530617363361931321898014395689729561904382155624924331314859504160931365737547181872378625088105273333880394918336701798010694981659701175991184219762010561577993776118744243573636407417970958991346423875502961276473146235218540872155719305529413562329087297700429199749045830353974015614960315060629016743238598116100327777407242481298494527704353675102416148525738992311491907427710618721049037805883024825313193832431401512920566974475432295222199778833753305377163606919925714096712268001717443157890067204708087772076368984007344873884637755622301725874578954774250455470607073584099542868597657872001327516216093184359270025669634138707778502578219046791564844552831269773517769783222124283252721037718976763119183069400998797866004996121623225829862612904016991488843286575502089780354831108916839860711582319894898639097018936748002449332658831515115698401065347571343376565759988663880043437252791682527827521361908972353130077337835381375129895447131275536023224731652277675162374926248720694882856102696078363757579212127527693045067710916703469308372853400246262401579171778407454409323004001808448853146333624786062706407636573905695925673137895242279970179461441811170183685689773326035797299882995973307786625606414676266150279148962081968722396557081320598890076014837968583803945285494776169848779020160514372726712018346656473653085556088644117894404440689594620329913334578182043894417344917954160209893117498154083415399432072079050653367826947605594660986348236480208223025193701187094496453406576351293296741930354357405752045926376831628574408589515775301745192871339323008923211545519959913058478781861002773250315832229658463155708817214947864910638132715679335295396406655450776700744707188673643609428509916194809265697871167402087599656260676637382625152068515677924419255726559789466917365377253405606924292871947365627736009838693091806895932954439752265880127340533875234097358653535706159166013156240005380339034986108852954131581815409784799586879027807094166550971238651855750500195236169899352091213820835261006418405945591407508445408955122804264548625447276164380371969142728998662210603090323955435758309649381109850710897587466739018968080979159841681872766157124001934121551495683881337205875127751125334517396277114522334419664674396842542878378930400048722742333632855783569209088780956103426959284992602919025356412582776128930987433106191176289126395545763281881470335843142690045991861483302282824818651427402541112766862475445896012874852409876693121910970990280863798021384146767492804410709052969696880856712909312617235283562530432498683873538972311944021856386556688287582934600577589617461339689395304699739272135035132292555472158926367123048471224907347238820577465355768234492253382150954045570765491319124445407342610104340189298512689765153442773091624689560196983218217422175499971478501147655722836469601853134883775898136099153640367319900975744001499901991110186707367497634401091328099773989437874410555554528432372164114173241876959758695148373911728610541869942663148937530126532775317914245080867727513089894831087514975212547139941198719922390407931929790315032207322989646507636772861011199032011305548414140059865669938792341237926815419853376458372926126303623953204880561989859491757804469855185738244340358730973224637873135298911643418569510950970687127324310866188064776925966920578566146497798501424838789378205464479346877062208752605902880817555275081960179978278813806664353064319033771725277139459603041034962641216057516707187671013646547429561643255462996230164844954539464069403375008817352762692355558720737403955922086942375004293667609997513052101745622893401645460420010455213028591669422981247779579376971941669026999723013487709590417057310317666783730997736298212377902945312726602862048270469737263069307868734083210611721600759381964124474524875157183087275503405612901651727586245510666693147349829020608269919550950356448253853532243290561261597955344401290952359771002525440659816526380090817987067143419901875588068731514516053222233293444744321664981675820605158283610254793635067233312560673516118150453960282100942396244588683199370172750949061022262096254085549416182904974596124202234297407383582080688738095831640927420261037790247373861408353660722066181350711994390941572718097386744568920548157114981549465133652164911404193774414076773310189748778199920195227063071740824286591795982772877216847313399751226852854221535457034644807797113305739738724136768800239221078116380164169875693587283625850022609026498954960149813343244645856312488546285069140244908391426524421365752348904684466267914371310881486683049106741975193962724287562552496868757693226383356736694946835230014058039233670727865878647550101663686115567623694386668433758008389809848120717785519170575386195226639126243042063770965342833830154105826304191171188536121696390498002381970445251421669359148365860384605547547198079115523923019535363314618074030557872565627575854691142148194621805820851688810481456611967132607605562980127889028861323695345001085132155960354937456473479748022495121823834551166317752803316262986536656852623097651706575218802697369853932339495675334959198197612712389910414352091956351680597599852578322610577341808175198486484927398805785879721514379302863781628790156035605472935311068493039054806658269799734038058762399289684851121964796456105661138973989796641161059653628099469579669731437452444541382295576390229536370942198680273295743825938217350543868590319557666050386354664016941134624781090269962895363821831618232200819960854456932515664391380305177991936243201138856560117719540616934712091383754334128546342984577211728016287594801750380356995330483979485813733911690619897809415560257191140180521585206739410152146682969585290798604801599861026605213449957579531575698167791083007447434860316489094590867218183956857965048619685307986008158550514445847034299204574609676807503607433911489344772868643613176833979226932775787901302679199785346576428819122728425947147900980045307431497741483261435013190434460510356830525683097536633730813884874273358648849258430151783881640777274034673402824248010863063174108193144955543295390359075749345432605280570053332826938217665984528154140119472578970828066862709887259662469609657267977624252950127562852201345047263870235803461772269070708125456954339078867433629512961519698557822478455394327717670980610807447670571205067456317123425814498815441201432422708890638385633852588652270841843038262776169016615903588848092327732065844533608670143320417885520855643615933937890023178766716010859626709131823268554396682343838487708911301994278013843928135020755044158870396114500951449812661717164764098973484082688290903611904700373119364522211621591704273292594818463455112710868110321749801272456202758955070799657221447648950001390380248707253465267253866821431657312975919931836488256170938637766218299233258261602091589853236178848483079605241884653314122884145663851614529535245664178341562783887512253698023427863299085380148951790121425048209776056906192812879047329676975704586680463946166323720915552873729125386232444982175047146458505291457975000198084426617817312589158130695764849289333109067743553633058364722393424648367877307102408630432342176586701791291908608100559410849726959844258285658191160400316127869799601779472532903256738233508159384896573566282026701680625438561024878865216655988641917409324033154401140467559954514416332377494919942685620256336705339108373444337437801991926623670496821879319021784401901798873965999756118188998793879669720634819633324647336474132520545027168818915031772745591262246114958572916104563301832969914538718137514307156910089997244661562980264981328614852671379785515748135733363805824882252549421509531559137183697105895187689586044424279528306669435812961694909751867832775855565673462044974473567096635843044583287497540088769244904064397160775002262475671322697246292322091168186563780043329902124931450684023485205291847304568607242495985149827585925574419178044202304255533647235058096480169079784128041929556295091739850172469755423217385173157356399601248061911001019410443764287409669901540056961558988450734034698232719998524076253338152601119272024087548860284307348550822152821772238201626055909271580193034673091547800572450154637860137570433233510927695368671443354918966947004807268452543540392555107321019898180716108324051695606202066743781241511156979454792583713541543357593834672499556036134200533940482950527216520500273749391568438920112802549253904300110711565719273335904953185774054635859647660599410209789268427486220532331068111085835958106331270593192502210311600498673164452596848995779451069055001762162304957856438558722674234111570201008169663457676608928636090691502238455145222572734350834207161714745658764609988618623145023508899550054329038078269639313424375529979529399643239910234011802111640122535834286354129213220687852046319365291225847205077480470149368757152547182578172969497471464938747292744658839338242876720979625152797741964520637732438237955486303681363553593418249314140481788887894178560695079657414406831003569502625791689556461225700456517234087990877114094907451057613497292121425770436478138940693020806606262966062579496967725031533011779333050881238904233979953037547904015331411168696642225212434491858023676095590261894572273102857143100877318349164693613443441222764670917256930611407500975116600882745501286750001661540293789220482650568117952757374445942085586929255788219117434136109231318997566466998940058074341943987637643937353641207231482416984029080773918618682637856553085004997988129777803006511560969159807963930471641733551878121449804636802683042844155327330663019008552647053285720352440679295564220019836054634585421429889042931383290536114311431382391632815013548917323391770241119927529538823925723854636107608629337773717338892371796598720218898713154584728461547632082932078526234400741302731732849866747218573665033140053592140930096977355791558538292873923181016183398287051035002667856497003406896625703662298147548832807034303667837104891363804659574184430283484149755848228967220245700871658238768284096481209799512351370071846067569899033495104955636037165628104619365045045078223457137903580632176155808640040079641968053166217075641739242255681652305917281477529304902631647960338281774468389029119746530683573598227831895450825218453164728256234343886139751943070577860935075078949759982482923226844760385941285599570657709525479499369557164126413194019873826918132818826425162496367999111851732219880178666230548499716406136180026639492322277494123673140880853648914363305028062822255670498586354228610407590926401058540498270993878918426233721833454230073874281374858280640982253088846844381458295401964714442070887863995714908330669165415794658234622042356656485107927112127269472291603311556563595663902200518935363129885145158468455441995702122433477043032633228015425140957673009778754101477624709617540169795851915303150404373123520097181510707826595629544605723195119986144252287207032139041394700469325455638936804371602082549943621612464081102045426768488455174575188489543938123283871311513126241674208271390468741097799287408947395044721324371219975467552202765495854074230863117933641693466673354471161891224988592375973703435898416760419885153655216370095557557975593087909914990286160099107302967449615336477043698781099779666477953523115142095785825011306294620672366472025558585007569781847847174801266545599113851914863263300204781802633522148338375492157166095032580884689573668008847067140984584078495239240005401120926504693863367816500587679903002703010122464227546717645796764254596036654874641482219050916951402160630495504005229670062111712574341267435937652149104217336015688688402561063766496453139751718555171411536788629013616163546323168264369834597937299237243703871133117028023546917321960325018976690711534458656323607322997672739054472561374002308289929173577802735415640992118062644614643504149845231402857647194113040174852496976438299888987926920646623955573899387200549433903175885050554794802896281209618299757129889186691778345803491192852084456588606496051674344296294641968320490692038923315936256389521539879172456442396559702277535119436478527212460384710244925096573201122754909537958516382936409654278446262454799598033234613679268244730078116480021498888257610318205760939491762943521401163970637589100991108871288590997385676942390214224165983496047740058630605901763692055654904939981749798839519147974310804813727179284778898663162186206245286868722946761066270510409387606120870873626761915933847244134978283370268286614181052880158269076802098855348697477892941837451623535114302050194280003711838031626302991126154874204119290535384615297845084603749621356934616726197459518567331934545023155186376681267496773363893412084061095152510521891527508211203526146723025625409566398572814615863925556194690350336183293199207747173060539283381222729178401674760747525860542984791800873152687685169551607987063300443462118659082347939633519611316991577222728508372505796573827130921251926154340796717235059707055362144677201943412075605876854313399177097418617786988299458465764559641116342790424354488425480644689694822622272477294339092139507874380944719243409480736352164444832160627850255110796514451371035412066346989815877712881948096221782853039256100566373448550063913145866496474806255451386437867563601811524220432299321740125800629589970892728168209403468481574449775032292762558976297089866187785079649960008584163837101307729839730387085089217416450374172417011219991455377296957301303257438805856821583570893918293490188677316151595633525705585536406181151414225807786228165138191891422187206041571352581683483970404178360559402110951313240482954348174343019328243210391474274680392172433662400274650885064682770450313648402517462632110474480686418829856096941552980565571729749970660799483787130785858215189133442725296778123613578108333567419098508953187403927440574115942754152994623082827766845506225786847731703696918729169490237732418292527423525073783997712551453108940135182362872083643589778069314467858795706264669697916111757644765572769929511224588516001476313746361762581798909367823884811351897415163129793537290330841345560868283562411728113915578091026207068201350232963390366978645722787197515080557701046642982953422416878085194293228899425283017973036643824920971709480790220411896569669725399460635675171457536162352859325575033895255576590194196030887319291410025152271774857448232012784730305767041455648731797384667311185330990563469995841774035891692557276716452033182709215854305272615926764785540350782191470122700500499568362299336202160320122105140224549636445554790438800825718847256531151991201806349912581071435785244519433181804543866975576975058715185340977168944929964198809367357188357144687646447804205578266860020237117750736604325180244567470402024083256631235788722686463632184490780918002835376122899237409039835423729994149764420302550330255497691520550273203237205466077106134705482066607810460239874018904134255342662970567783548928176697665298483801348607779612931940071679346165319574977324496884581708628036107772681960448253559266954908928153797742890817328231803616598839077240981525602374906875312917787314988126019672964599816689530716698577935481480123102874544268913432299450776115087925158039740127629726924063015914010420353652205059839089805292564278579894286161940253423493638419619648226525829894633580650614120113360437134346380429088166435553042934030455304952337557881143253987616911433751849538937638213053060478364047299146481897848341152126481719407427724190848979288701922749486809113127660754105429658076811307726767307501876555019033032309031536808954357686332868011869466851726161763808964377703945604062880644642542273789527791294117354862003739461837791760770878376747073734246719827570234288719071700429712760479751473043240644949795335890555816181915743288016162400414572013714569037357278259194256719946504994711365350458679989055385184030066296768824417078502633318265304452538897484683264584009584390334133789273327790352017010514147136933904458399845906759041114345438094673926199301184406337364996789656327039490023570736026304925077097263458255140969900591056536737475244678366151751124628790843976434450211242808847995700751384669837318189983481716406628573930583879351834415416561041494243314176573285634614583971756901877347554474403603887458792093148230753222792159926643442301455193787713349428679733921866791307546787416986267007268975481520369976981805090309980623681174159247852212770909417368912726443878981462176976787971944305163444476923294190553811624853797168200211472399521614923909479675645476162968249107955776623990624258230718380224917597662754224460270446672514471646844796290027799976191794332476183643088829560186276029911902888269276195658779814439884497296518515955633869008238762572853947193641104811099908443218825211188737395836236605386718181691499973608376481729856466934199343340540281159132587312701762574461699868647139937627183455506683306890950033541181856955734513713468888216682777698758369731905655489923212697878583198922677465789023735650665585575792912833337372212892641440672293352013697424319857956716462525456558204687046966505200315001466770525938776982346878917741736663605818350524971763028736422588184761971258257656666993347285100492220260476029627268645181546976157071127022794796166886134401119317355520024736380850173514746154054315216731800425224709935820442246613600445041222189150128468465918102123145681492419825106383429730276444558774823529063024104833866879018729808893837060928516479701260108893850483205623576666692540113093004821490390449989189822559433079145735281818933628007552969464569240594115735562574421737150310664326993576948088832593857506238801313446959990128625790638361418155844268530101422781631824222732675595286137908085932100881480795603345540452940338875345069419299136854317145657210696388119318662193954614459042272473703107873040098882985578966277806938515860139556448661230946242213320821362709676927636966934650802241854602511591094432361075127678235771013687935509338783667717983694040346523567784929345773601120795228337940520565243344810926689001284811371833138615201698086357215782014630216774811562040270555229699913130003077095973161166085986401073959975789984094843516750579997394701220645867570788382171082816892366180001541610414717294218640534625289759511406448559225654585990904308302277910977018751779098241550878904000482531581855410571957823302158106552741163503213837812200505658985458867360621306730633840766658367380795439450297776488953112636213180366676653407706016149134733133767217013443367644746247276534528862220201329250653266969462543021968702773604795963645659109925674882314405970215453786106934791577886958732104075209443917023007914246647450820971890446335877920483096075112863844598017950784211516683517363837337180891496867829316415057958114678536047710431064311348217814341554459174599791167051294674174795078548334742131007964848165364777849970443041145812119996133205616672546938012229772210206985024331832360787156944893505702058096981904716141421557862170513898928555311355633193280068866783751423152729114088981629742045742135246510872123378155920476860098388841162877629174403952412390056299804908165411291565056474921858964196431871977284078454195560381093736538586825953432491266131464138831065240572516160611305398154114526467644030001757589308278265575491067204506359656287327257288315818488105664405135530272209321363438637583810996814317067865295530358235658023277018100597058078474595337031694455254561655903903991772121878736535275942103028023066980681443300886831915258696886418868228462388540660339816949349876481109894555363798566634127033956508043437346883894970532821125090729768306657088621590552668469255519500319474648863750216950526963885566824281020483986243879916960048416445246640565765838885500841702012020758370303434458846973198705381964179404390732784023383821045547793889817671134437533780478615873078114500302306053467372896443864759790840684942138744985836539873478826790051194794748604791448172511367194300513653663611768479033018650482152611484338371840365177410058795702001403966630562678851024733822241788950918704602107967043840531817705839082135282953010390719627800282896790102105828387382245847264836372523483954222320912652208684998905441862819571805359198231456112070552264822171494479065588800262655024402474955256303545881129027664590939161933602052325416201778437605066314603752869567992529049798816973156441897727233529587555227775160164900833785254391197882119937676728191479131311170814638012338623825132558403709553000824535669171615709678200037669627103384074818590104968104458679323077072966163653966980690498083007125700247917860286555122169254604568126437307029084282088980345906203350286405965044764609929588719831519180132413284380287220123305031155981569977776034504306806933225699232846575309011559929128083558212727645855954112459568585301297171941678658957086460113130186179522170629814921113579761286138158644078376702613358794649896226191034787316758791100409729287902538481878780350926795208646340586424972769143222345607198998657068487778910095735062769218896957515650596359544392676334949466939532319497491292905113030456419363349057847928631375582353680166542151166005735474584849793767966361358437307540952692851864552436094868457791659483139114036974520530936488659519335131397244324696227419452539600996470220987758081580790111641106074397964207093171898552119685322966018181606580698030237354035312085566487349020631028676989734702965676400437229484250081556278132035630952572720695103105531534720007905310576500410563915096837031837920957404263428160642611267289438253324988779720477901956097896459678711912485488175120340469492032640992174428490204231962711599567981016961912210379151471842058635846180454406441034790038593272538725845547212824491374853331578132710324970875514446381499201508551304406385976955902720837040651669500077687287144681290646936779468149900128601930107645120815371945209724294274500309927284925361653571369416987862146649257330838706405949802896044643831138533411838856898109008202993782666034300343434864266321032197396853860859076205173850207545791802172199906144320806824486133858022329995235803714618181549070409881346629531745973402487718725188174591136579234056624000263219677385288117258188785130439432303187291307152060375659867862404826880589753022789143073429580215903594783405326695644147912761913953419382508814449458774009345270512584755821148013754198261361578443064507123333116458517977892547534632126980986717882420850010200515704981108250881545734208556587148124880378630851639664253546652968814601192163196797071294030897319590018773841834610576866480539304225301496915306339260963460515284680987715042741431888940421621830202722296186161733964405947587780102531849874301482774330758914241498350790566426317408944534140924204176201748693806682494130687649585990007596541777796541406649166555251858594410915361730183408373605175465279164840729528143545194114731628436502928322723053840997877527843631236955633841678527436681633329213754613303488617945813751913652336372601101764700364161059815477924065758699341521649767515675372303703276881381872222886791691454759014260730703632843432611961690220272295400859050666193107479416405868883829986295609757748596061686327918277525790364325362686187012517778702244034604568543971586653579063907013495251987070123279305905547320011048519426475797424734645298490707733539097346222135420588105445763327225747073533763998622123118089491042001857453263762025583212283950265798232739931970309909085050072441823224225936883643698352863468665893717554443834946720329881679825370104884965581361586408400887203904229173042324639189095818125679424179248656591916895995388261875678119438769968017690086469346951073618246056676746122732831914537565904188383639735564412680063916047477898393214804381741050184467376316284769209951556916175613905086512404232015730044462649834626972950867536692266708928373574794480489889558997504427889138374926372083964773230035190996142261669034170626964701190964977661068518512265572141273938171254045331828850275118988822869463259768516054008106108814700886855758931561257511589210802268462728447619858170791662647522587376078791474456587342101069448296355190036971351647255070472386297712531107573357833813473629221191672741557081555051087479242470599031070571678867622278394611644309934623844693966084136636516755892012253384685934788050941612483027393217890609907283677449112573415367147599075463013560119692956682920842165669886347926581574086347889059032681399564813920488289623076916132988246874396450560543346332063267828865742132158798636698081505553453003773754901294161750667045619132853156812510759035168932837210398152450875100932636425886285124191681500243116518570067175006775549545421239725185266034120821627343602856294974300132757970669535838577302961435565399757939936273406626338979247229622020758883547037920200774284200752240743416567192295531878224093102748857524708431760625972398609310843838784312890014405744748459207844077899967866151812119989601832913611114105205677147070805329012070295557438173570198987798773586094070028304818069111921193738817061999848183273558226199964633712718986109314512345721055735279550662048649508399032182589846522084742014027653647747881352969894246511263690887095618895601110249471741955638489044147868624121007276406553625903834073935221579673802268264333629929151957350548382647900152282292685420330211154920732871942602301209540141435443675405941714303201478271884809223650405406396449174963899660166450127933630416093538255444575167796078094875945674905026257038374152677015699984861540826835785428864097597108866597592983338137739304115213237266076063029988444902677274259130070483984400080756487913470581966278053317950524684377747139992748462233425419928049588801276045513224907829461225049065683530541230321454017398430623954667649005607839433982263796050051800086051945165296585926126818232536751334888176416828626016188646618353605319944502478990896022416220471300702735190186661831978117112213471300260927440911014515590469061432822769529678812689801486464394834779688952452328995206103255876591689545132405374935187191726701901310893135480007588077494708006258234018124917301067472716291852032434673772483871378531098700943180538835597427185753153023095899226889559028281022406050859738081969480787109708845227134428556813266118581248905927088485475834932679152486664807112303794960486119743956886468200875847794821585891757558082566803385246923829099093650041194030717587308992978779454039199664831032157306672555389145315889184232532461854996077285761135489895290452875682479093209594182308131228702869896093482516734402233081086822283959365146459495322252590895443983616104475538030583193544284546412078149079503669810363177643827615036397749601896519390441031159188107967025654059314918141138394084172781778194927148435780481411733880737404449550603630062355270723679812246868097251582712431599402673536406384285524041549511788203695268765459984869005425593142503112773734645583873810427732822986297572844323494868721491243185188448498608042417225901971082525150372994006177972648536499344368735078197780967144873111655945328980451888307257446543616305122155122871326626265616282890571051290325276457292385154272605559167929238684027046586166748566817031487254280083580094692056001999645126600517538115951716075798045479971393506988115411302858377556936326510121937735989738986079714845921962432176430362216910930143874719792348390111714935031941972244285337603032530201126885311068183610553249176663615408799436629708625719861361318572560034403719732192864369204695185291902809193945356446505479523205239525437518613213501025403297939274546635274462724577789459234521471281068810813028690338457920755824555729030082314850313149187222881242591780584604823385043908015562664634892439376242756156996098175123875652552977223634760065049036233812637698733309823316903431351150295555820343490526686817942730658226098354855420441323868172230556451354237666957696562935758411849797721777601629462484949837430129928681815167898144343016094672713152311325479920119137209830451826322884981198714951099028398369632387590979456989311082937015478322153656044408195742472813497584725512646075768383085475762399834548138970403829217731112079285077946566321529745321321491344810357337742270802924087102259149846201380700248569448570793039290302316011303458720481675180544847302613330486365774175298477829343655794475621536612829654271774246996802738358675606230957891428732585606858267391900367880123334869420832734032606524345927925833383419262219660085393887932432830211308233722299460952286330195879827729886059489746067293902541238134610441860259490025132540579537307546102500057254115615744575215659419968853606269921350567989928729132703216285131751041932186463348556362149941912373796043667982296411109066557306120364896875223489713687643603541463082384888535058369400697325124772939361884871386253346907479282931854243092932909234397821145844424761644461022919415988418132089151098436274098738640723037449206778464338374342512297768777625404587792394824995693178736560949479209655721969863334385326834846688250580817712737933042121887211816092052583250743045425910741548848908782256347337086484360069135086265760541999057204359622419040073449569234850979597805400892936542032025449786833357353129914485267748705860532862407752542965393420049151520461126965508535240839971553521087861112003609590552615056550084597384006219202170432840346540980673890058069001193594187931498779877440158578232838590035809810296803958918834113807980860469681011649862065707519235947433257135783246202597985521837811635817549701183782837056973024757870284397716869985643453233782629397284695969719395659029275666261588492027614455113890975463100696500996139489756920725642865839588119516666949517160450188611078218154101663128807235381816851980817204171465812938566978501036373583182062006792970249576404756039143657798003042451733608701911549530245019525182089630945188202240101721601117626520761999474541318266983130017080275751360905321274706314724439745185301106143764925432940726050783276230702500935982885021432974251829102036961558608258490989041073213172616117532721131542624224435372285872282933306202951270204660325045963267474239336230172033137962705148432001325581348923526546052402854503202233185747491921693779286886696994980463894033068407860647221725303926505912571228696672682766690276985711887094770731738605400869271435767535803126269084635686029704329124023410780987746014792924300044138928057640589646390395265238816721634247712477491562643228148700705310202244883747868845926545355535702047475575338090367493839550049230355996731575625294735463430026612321144993689023231053563491372095922198762514917556863374236702019033988430561771935745829641247200407498813555663226254192849797266428105864704428598231173412923403752816441488521208110252976915064207147513104547004595961248969957138357463875189940753890596463471354941708604427266565743863453722855611663782949539853054774258568890336871102984448626394066543706873279258954164979536926293019932983217353261071259278321531812519052893763059499742079332562819954534468057621169525434581128325517545283741677431053501636512500231106415358484299588357863727974418134021940100692396348522138087038316442713733284958350513520474188754809116193608755809595466542027514348226839623048708442747285268242244964747316535171027983421823416188107885825374113664435443217390146215662253003030984187861100943320109815712691713521641195342221466550795510022205900618412406699978075146107957351277587338341690790071279389096751998496895896349148020381529165371440158126688792546498413338408767281449329376713783675959901112914294749187145880390334994366886820423491855140341145828225611345138203064545086265391719381014234671164740828141569231737580380257971051763880930181357594102230738044517724634811852972648536523632559684576446621371340329836051735253440348752232651417036481266327923890996181364581835352015120547340012460225417501432051990949773966741340791590850823371281243573047376480321242100491839609957396877527835091654691234256764218146004671694188105494967462018290660398072937514455429523644154225698877519902626562590834135765952222792949583684064845102157662986930898030231012985710018201596965736311255230528390894278812700020563874319839448929892496312728083574378821084563845235205295545588007461303020142600479495486528040425881911594591542210270841217253740311209412178405995794504487637710238355205291118958877820806993774261705908312697054510836776385803953655253674186926772472544615390436696328655193115352460501154571996240531054277010477168228879291297617499742518734218723691253506287406463748047702397039422258091893267300550157066845659012952459164758271442961857458895167502893063508523530345109324957159020508176457691110063330938644456438791764156603900305175607342880905832227056301951097741987700379181024135547171606536773310393802892629670300812758521823181109942203341349804285184523548064752495093480467791974796194912414201420897339224156585690207096251826641883776306221238063845886315092180092414483147718510309857343370728209266822412300046024347685415255178783801849106984506554097048312356170811474385153080061517048414571171610873268257076637870201021777886355182161201175326437712967173968249955102058518584031269125980481659983993539188913524020167797515259255434155841826098367996566634125583936137057268241008056100893296399355139328929642080471915438652778833729016212531915297177456215866628782577233864367442737935323558196279780056866792451235695017806684257864533182263671995630476335794888943598784888120916339515634709761604278107600960520275887892546442420341488363174257833480612619994342679551231293124287044174613564017087303310006788921990600783074272866621871842916714941955927358185134576908171676162402242757963724512123321265774524323888925675539632217713183434804484284836804550607124979227546133624580593049194289595562569445437876510746804164473767317658912477044313328659741854310832929317900952584171785355801660727237212811168531308604345804776098548343981870480861645734548833377152705221553257605219261881078700221409092063148827470886230675189245873083180189638617998509371236236806649648749197165849202689715892032493112227063077820219158715090355993581413421517850387992884051385637654126984595396015626724302237474044422627142208781993813986275855025396154720348608869714043914818126868803317241804117546360781649562917851373991214841407211974779062852833366262057053485180053867876427728301786098553548814890236649656190235153012151665291386950493037494165737371142124077205122000682055340647815555151352294585317390963352864754967762275205325669633603510446746110986290985010728752528732925121246180174823120762563700553169107005133262104935467420203167131208441241897139434550159133714537244324423601047278585079289500653903280212488600535490033080482997568028893009881071420249060912195113607613186830158320554764768991727022391125805665630424219613519747494785749629082039911307667757819902562609351200978725696557921107711757778092428579797535079704442511337015826278153798019347099591342231949865774249497920041423705081490520129296976508185283381233531074792341721482647679264893947748606997486022644516204006310640696682572019981674908501548847373355079218125755337272998210390530672649233583869184767147278637974791616389980893135694176004565538442947145724544608098368405631861654634774822178773575942828283997153170628690548118939598906884105655071434091517119699665149153190745384215089781682912399647137974010322323941555403026619949302246640627430088174070263253925349117603823264105772745697145021261084561788490088487110431856149179263959442143463154647530532879245198699424475053274100114759650715926464701762689690241287189135732133483521857079669339975590746413298406470614242950845650906946961173346924967728161543066840190806413824560738140773573244556404563331554278753507707637353989457630199655223645051800952888582511294954380185303065100646312620107049622635671281362049386426102871714529098642690931937783694729557169480967791114185702717206182154710516228238656644008447855587752839253313950073359160092981740103212528052670916258228415686536812478547833075526269679086612321717261282852609943250502210876698941746635331895544818887531998512656141893616825991709172189042001720699210260885234216122072527901765933643510241094705539812452453992393803350744454625231620777039149835406822453593378559134513967648006675850838607999768779928598750478965664052402429815162138233356108572819962451375568493748518329165377887644911414815689183776325439883994574186938107632675788965827537456704211079989721343635922726640018001341792885936845405608287305059435995583829013049737992109893477506288804847034982505211025051174493152826061100219083634094836770104975228730120266642180967678537948319199742551954562774586007623137114032512363935234644235941740941944765258177219830798230434355539044537659796476268193343526008932726746087922496964351750923777403184214440955373652015814547394444773691318705415239264984261220727635038980040031991132336710897476268040185868551200054085671061074801877175599054961885930685601915041845649903563967082814049987226056266726924024649106387237410666697629983742404618830388607804002538846732326717320066160177479810392977410068885315183658170541254497100739445087539466376748200703192196161958100470304150841251833160569718449590508576885573044645635611926452683516948929986515907682456259098085372342753458196742978272569352391572892838996110980342965502363445656160586046180905557164738153454600255498105462507423389666279657131950008436725207442894600095016957170117475988392312594525765726537662611580723261834002730599033290387559825380099712441622909845320255713257402838903789872725085755457880465942304077205729731267835372776746855129630354366992840692744530836052141668012717270580469048119414158570167195682840530720328567932245168278786804679109586385906515862071734503946900128778263685638931308598332879532595517115172139881105373107246503834297103587751108637754659394457019750370359138674597008865447327503676151674377943223275801238256228338391079425224631715197678957952833363376908331412154004339329370157279850326999540834270127410092618955159317545942887242565043288126174387196647313847701647429138365750814131978442350477893280120315793717471434702606446342944178321172906667776483161984790096008386691553678468264198886046975408850764332723853470931042985165499278657268112516844364987304531149842359290291494494703186166521413941486214000262320112782531160784967596222532180657990760210727646171128296310263077409826772746829200732597271878801398265631387135262808735436451239318191787439243342011175855037156062584312154861968147253710750807278809927531403932777201392401621693260453418015028654400839047328329678606730216622723771665730795394480499172665703666210992038695526311039815847322268838703454944910060155070913590942521681277863053570386451124636626819329273834489341253597322861258571187993989543152333256920959411213975217094651283110103647061090432233552002648782389313926208576927292053548043722491980894270336558269108147444695801337460728125984293118382639571186003060842106596603627382682357410050144519923821878659246509312891876411756381037068834968063714359793113901935405143382808309345603156110610180756500117206806219077363371929122480057421419238256397300537214430915019348992143088368449068603159228620562321317256619437269159767795576425276923672704358742342936368803676901112627156278494923579842189748723813108446956712764406793043954262602477419293483245398837321980134716636976166658397719142659202954820364277873800708745567254696848101518678650870143876226064139392697052297532620715695517654252759930194250703163326395441550072637431562226479299397194451542598780165441881053055838381318458285670639399563181849922575447076698395007491541735870093527116569205006895472726648111980164271209067331395534426443404869598141969158921901895472780906975186399071582697238880747639649832193619282460684630031618883410848364363642027779190703542591980466102255415632150238128523093074827040566762505408100268131001324712262553661228205360041019724057621230328599714443649124203612763891155092767795615441652773865079849209278461675339780323997256232565910011686521826970379718261179240022206807079102900241349005357651587785612497422121705111665674235097473579910215741315048555308464092314664508890438006739563525343863219544168319106796387994704186830882214243424135743928321485158833941829723349772469111976711313844707370738074953349348686641321282400992738254175153547311140333131379357455843635502993551862312655560329718970150339149473687295639473453852429135444804918068435545865455900449775523827659823352187612296815907526272338761213083065791622800970612513345515020979358315045873504205371408611491371929862637535190127143380115913221105018282124773685201157947535269801881037666244272708463975369401969805987779332408644236957204003278955951619528894195271796698284763242289723176278984363737284331856296754968967398978291964848299440967788063126718171073037766711632031523504807995161625825389652684669177037327490260985939292072241254105001404031966441035999236354687757918536176075097199299720158972950554386948220398658352692343269399471283119610069217439401587097605055867145616846692147583116558573726840503189957223439827901433674163369466762223496187936464723173817828468102092156839457230128131366855515481676636799290666647066146589415410724842950764184914757397140831460049773777719810768981238651814627195880194248939197721051366160858063069889488364846823326788256382490597534843592772295789165229872193288523279012932782207318265937236985061622406608430016698202751876050075553674653445952271440750504630690621228833654255359943778179838346567228906750876379948050374579488559476389497542987304357470686071282418706821049252890321811239166439787510264904199659116513712662792478836618093987940547798674945566007288751925326816667303261435552574858840576236848959472467767104094401572277078059542975528177070328366733711953379283224164448587615809777063192355612599675018791718091619640690221673803945691424171675749440687687125316122037006564453492679487374892693696057856165554737015351831960211897528550574224684254430721772146077821434768641024994374076544355016047036889409205519684061880706985602970913219956987703574574682549648982815631872693483827396351592545461940376201453200117569977827289080613680319281702094025571969971281757567586597761133482488169458077693850277514476669005103660708323366482008298926693923038774556877712267316351740536990535758528731148176929680353198511110973974117023971964205292283254442188277549844475239114158990352366070086349486965556345705910557639587537795104306002610614456514920800308192365995643350302419775020110901207114543580260526464098778360656574827187466085216664852754843987161865041813039131781946347106394822086860815091922576402228478328022535142955579810370583309770099568576124834530818945333685506779631920843921442704792739985170923437383381652942035896183617545678988219729624345341430082860266611959841584218283233036976887860653340264191396670203005839940614702148110174214349843740447812209377600139289370032811259450953927186180178367466774269534720188890384652889852363097431818268007866623356008066912106925604495888360452398559508587310362676784699598963211398876851376468254959400655480551187921447738171332025507738548798478649073477099779286657901408501212087161912833421496562962487015424968237873333113761398038927471575534219605761890737091057439597034357321811652540912546538491309393302889175970026755568615933749080546835023078788131648209437083615832272571154319243851315037736130023373508844475863924756520700173749920164730295820808116673060212206878126312976645307849245999925195572355319456333270520987849064486241775870525573188171146590327707622919228130537318994609606388757350215027634576591109508713448909631117369904089858879563574206089765934321572382550697241299475149382016663989378137817580002793839011538727416969401931421436708890338571208323281562908330802336234843073721925819150549753975046785874517988217071685601014665608343141079052598012411508101224364872540821780822618020436144550222661970680645670122480528428131286389636935396689662786011228269658429013822264072315715169240590195426171304661587354422950440425045866390901982548571538627194573884356326295316342857268721727529673669171613980009447100663282845815498369097747761376758716749914682573440930699100434176848779742039779758798728265891420240240426408558635891491822884693306787702824491122922400311464148972632872768155421418242122315322370990645575927026101162904787853345966910074657621576339610022785426344544178574629997172731078759463107178634888144552236660839343057968342885480375965881068821131376665465835574196081614450332298137862560349714522166813813144460169910149062110636681385059880880607848603771981395553665951916745455571454826394384792179214065389771183883210638158496221209212611021302734265770924782641919032345405905859187426291513228242432304091738208134498693149357638016642942770092715616434666962505169053750320161677222794245083651368585204290639452207476863217501914682541168330418734947574179350401647631040829922951116474598429290975348984522139575861756852111836033779702754028063451593431824252566460260460933960677524106583120925945662742081200780142299244042622455919013250641420411632105038285200454502706391324285988743782270443356971684337831715126981188970336285270129702297001664522208112407133214626316494507989801144193765144579061680683792149322527026717891122263176177744025003035378266094421119658159098520824020766993793516121040628057342380211828926009153333450478007006737449534956990612390767072799530608551720959681282256219500937280636671694620607276234758068501110351246906982924714044561895037425051130022909025884598096297454088491502453117139907719007760731183755028241871969633004465282258790229243508328310567190114009002198535528426476000603324696774000912819247744004052583981648894959003439088704948033602309757309969893984008060996119405888854467846811593847787715027983118451440947517953495679901566586446904950663385371031460312335459881702017951880113288161955911860190815132466705371313504350725628657685319541799341393651378509681873073126424799624374074293534267306981784741524988093564355380371015054261464628698874308031159820626846356579051684167495201474024622016230633350464092173804688084603352363003317797026881966851623049949625479201694161549484179368247579623082320220491973951829720981334583983235894348983178982406381301201413383560636983072938112806199772670335119912358889779238647026249736721426112919916857663950257832549897051124017172672074713735779118059794477819935211224096586423674017895134135871859220456335256485023043694359954358635191181782695149905913122440732590254441185912031440362564245875948853985485516707268881227920618233638812917058978609821903356710427375445074669642831640876934111305982299160783877844057600336701450830226494802329481669818061854397626559368026980038307217673811874377118671475218507297432768031871105038354989340029134882309570044466311893395032769499596735120461655093555674188794476966313920359953140538869351631974092399141017121780537413630869798921360767892696860018416574582335822673874485526607419264906375856746914361519466500416990389106102469293724280521718843112563410260341722840114930151405117439521568356741681953002925808269862872226844857241998976153427698260766615373403643078372235977684804305131451531793470097329698884445909002017065385581996125019799499042280430265668411994710002184410352708157871471244358214102180128900909948468189272045041169411331583362376661510151787026649916607136671870521486727534946180531549239701624065545739829106988639401413264796826220074909483456244129826295548187545991271250477084673064841768778720537725913203317426339340267703762164469548975013394680765811365649157243646505469982647642061498961752506409756419902847314747512866130991155322366920221220275903724657790334048723507827395102599924455628320503163616946083718863298804465081056203937025406727223460342470059147114273020885931875806351131975239057932207057172499176517535739679462491676710292386195351960854224664444309913915968547511074000035817160214652846367675329385941769276309228770147761550091621787469748456899155069314531908308162251716400230567918583646821994873387889571097919677236002703960989223496603060893570881123622383298372140743752529252403658111011284162311244133911457932424068023754632645635931068382870256593777605287207872741475632302085548794998754076296354135708787922628830955443715178790818411306047746137979202722935738706711283550645908207883674904151316483631331215519586184714474809426563262519497204658597221375521918841884256305695557585010086098955955895610604545794724292240439881618866949725764291900544808539202150790829654932259186388741990179619666158358737426319697331289832690623567505774130011285598161913739143719352864999875595204456057309760055485155239911372511881803952072901477615861251556669366007444250344634231217739553163701636482763577471414718853129069448930857446021552617076357854301747744348561190923307943101713783542470098954182232770978864168075988931927954991842707677151131074825771308778519581914998789784415356974523774504226778041786304735108749658321026951101526040142664749724754634617076565560612170647816442037591064729435784574655768585676583512577613174998213333238480463869161442514617872146000905901604584491896118751662006125071453185369433878063775439604934949316360278032153735119122517841043548742218163413538051858117280847374343792243148417470396389695764176288900699569506157439776928461066917551067801102652101151484928597512244808739359664890338778228802910383392223686767112969252323116949442381567020595657274964070195297000979834082099234493168786311288185140282321279157330867973811700852388532524963596764146103696720254072998138955560787113061529452947697247017890684353221116582070621466773978767912671959061706976172610976069508491720317891072332634213993830540426754819675130472362352631986432626142470022021961517546668503491557136901889678895771658750326340591808973274506610547133813981037797444301552781818038355031901533735215122605510199033654322224005344062814950963941042485749441392350007940575993090707764610370835580378867232135653642453130713254260731647864561198414204363590063656039340371046988184575107167530907463134895569959989203693794065468271168944550987682287771755102191229236044478625430250444054781949060705964502605360324902920175567184493502938156019735741774775438419825729620659545627599293286076264506974904027766993492401415842530525009609442424784689661514381716212129479342364093772928665421389199223540269305976699316009504959984733483372962616732719198392427171338835521199465165090807238697183458791874272920671836261904215155114797740009649075187326555700751250316050806370272069548690101632078235738531139008106135760183641876640207483081958594778309858297967335937798108131867421473457268535113012124333733059468577528284228196936249604815009110545597343422251465924912491564446364928272284613863898821597319482021386669162370936301803678849985427567202519084022949285261427152098598665162552661606462042058987518163429353394142897868661959080402394821159389544576887257015654226019082801726829976315233509936482909179343346645752435048299043396978988942319116880987053401355226389752161859884412400888827334128719389131146367725738759867896635195598721781002664289781473417783016037833549890099250596316430462959845935175281379196567507648570126912728978454570151330682047575892985685390768879190688825720785543483605133150950836558759256758920461342461858995948414569734939450515100711475308955958121346507132873993155381241570939534147267123430885942646548553395814675255497084172630804491924779163134195753173800139367818886242418464581352559356951611071195681233303275675317618102688994049110491121374852146360158649501021438123615406298633173812610234702353701476368583079552933662635506505601224722694866316371036018195483448454870056755155390880934533109622583324744623540838820524756549051134628566405626665476180935072070940413388879301487357710487475308371382655113918986779095012982112896912493691472361703873663658688411135663581238206275808470400130479675946686071259308090983926958571577522849004057086787533003572800252434986796509090906451508592379628619967142281940976616297615882929293328990461328574003405166919904610497793266437980743820236102645351563376515676049298649197806912086661614083838843832044489921537609441326170238840991405460870469746305912552189781556458039860873202541205887944726211161691159217312907144471643706244401112876861849315065184388743989191190016965482134681581751713774535251023079197223212365155120983895522263587246462852194801547810968380571435120111717718851301617459490001069281627871136596079335064462912908765023920126748788221016134500976670906295960327898194437464937512946406578058462526530698032963232272213185953274306116620524044838881046272061141614265741327238842503892018197772917903334595887848618011756956664480425427566101813471130374166585449309162354512437471497706846309572294480580896791452891537655377679557639622283349317731454579663706577270656031377155234134876706139792750793403347412627985846134219659503007260843278477998360847996066963003883452687294978699900015979391087714212520610792176714954592356457318799678316002292026031642116391184737140988677504505098490508692347630218339244657943177334759721244898082432141606931258567842296197311736847801178173909604717446668993628300824609484571658690956920881749757335348895695308048495063789540950833187305928091147456791548935620732072060261474816393893878297791769130289203508530368674782709553016845638601366793981846483426231685817034748968868539837981124480956969294428920697886241008465065380292543044608278413708036055088219254674723859024946116642174418412602456788584154107483968203211506134657440689429650141072045776509202337066768925939121896620257109543944748341696793937861709150721766972222752346218633804535246326555388348259870503178360185757245836717818157370631666701374536142223931854753846643465590245713555854779616080821602040534602743159971990959635370299802187239595796479400092380337274973248920159467179323398731316270510580697426045616698655918237685335674158317826750069984898294276648950018926812457095449867759128213669762660242337924222437973593431973735285836539940009807742535991186446506319567313567198655752553080454488871503795218675184869993749463192961475056678215083071314484224285881318606278225622818240368322068773281924043194839996769736982797986864657031638259777866880865348250521204915645534883847339186938377573573343728077191364958366681781316094795406963930207204537203890605210875655063628623596604739197897573884324570263144948331566317393691103159643519198078836236275446885277035934022180163388249208740413287023113605165164247377380155345161239981381302454007520251670110816610661927286088830769281000173796862806925943544948311672993951971885264236063467100915455723867708380377686150835258094077867000515121385005940408022803758442366558929180979897765950535676760758174522178133610445195660090113032416017295346334847302841074181368841793532830377120478674055276672235456552876673496932082995802990450536521731949861298729699667207576889584217149276120522627341222501232302385413076191333660303787645518393793006205984581454016406140455229599891047332705805728019721786452986816024013643729055329305590872124784432771937257199082046914544237956990444664200782960698565101268758805194188387890083648232435505636375823755236725015278090803780354796686988572536474678399407854155999104954945912230597189623101139461627969478748032243100835511834957552580377968072094396594713831281003347597708990756982975698178114254300696661643906017717216468140691526157105373253502374691971043099506755282083670473937003371170138996526312988933624909276029188390316743618489989189242342255541544006878725593509565111898734505274288658666155040983244818923732885547732597882006218291322928407939256717508847519874880212461638322482442750590292469690168789390239743222964420518063772224172963365230678023264755266719190434313961674591517114581146642916709055167080009796498667187235705308528242279763385826590713475044404493122920015285336279823749780201876898196439001928718612972836445954216308251199308824314769384888832315291117573545351716156476053570351638011645556282329390434562876675490755658703926502416287299341498478267668183685555890472271413734109770758055081188174920732689625809154858049026709857411408669841045722057760363729185613511481958468848179616397577867881837288996727180469910900510861655792254415280411897032243572213384152314208495992349775753484260501373680484572627069381236648513815683241052004342441286663083198261117243993885093087127467779991541755063963158286056291726134117142691344118103825578518778392181940693780214704681806387477991433744626199435096168546533889196730088931684695379847263119723743503925897584162259549417141447754683213444506875237602711243771453248393157934484214057554893801985743016958857057879296245201572781650798713620350629264427374164612590522863746875984088524689377950354708543207808156617453642767262624328043254754314845539014409074391292225896734076520784112533971279593839523073515828602525420986357896141266624767823849699304051340512403394051559970619538356318266374683900343943770687622823748845161769977233282005452735570146396865427128080877177906963852982333309908538400512911602908205062515748402851592030172520143803999751984077730612695577207814581831474793206942213074331677644992664184008369418347833546352480109700379312424107729864401734196629880792274010653816123239029551402239049890822250707161075268527969510712265261957305285529913496762933320620539500440370274185672534507888610254290871655493922351310590881035121373295277394205664897094301751763383673128241760466830948092587260996337383652440345258424445420239935067472142513172933664851178822963935712824117409555016392504402975519994054368217933222064031623925476552850175479719278054615813363050916178776381465574063456760693469017138714905097485226776888435873746238566153092663723018053441871687245985920646339917897321752347619617124769497710308875751612949081613614181702089148231187354102744092306263025054005187067394049334762946304400380337677245253208503207301398022155875881701034450055399500639614634739432979586037490380373485556119235239945634143443054185013995636644827015614203187360826554194804622787449595666792624393283774599131590131818028558543039738894283013226721626856474974210178903876333959714831065378195808485835079379831055289361696676015017924853890295186590660979167899305127235831463141108084243056268336102985861020938114124192454020508942783644223692576266860328252031153050820644855496936630700798287568404461664429391166854309009626620069200452433224874202797005439263573843718389036200224444902470669908804477497876445340525171638470905336287199515730966656276181888164402310704491356592321860309520572623668001020014652762633379992064499619643417227232161311202272519901698459154944964028583468484843940339719354263619711153584154049606864420392651539162292028507599194272728156108837720704411752564548673457526966858293749120257723074080870654293612981862896057385315091234808119977046386540141993769299746288880117805801277207559791818069310179419398146722089747900793187780758206752756307107531614371230940451314638449571466894538391966693586974106792212449941643772535019920057067822378458192858279284814952775856285081200279213569391082089292479389979451273053152654034221386404268413149369714989029350506015980850388724720540010753464864490990905789654454135357229271273954416000001336842959553667184651924403400909748778792269274227814103691145543368700150646271062089025024698208532623041513666817882672259960739671534773518190313101060984914446981930313312968642039611504062467123890082685964647990682594958263166818286153133077395681393290849131983067036700609433503919590982014844257090769509316408728739500465203475843924362532184729165833444887857076519276597481137999138345066348009103159843408196459273834441087695327088455058633685205280785262379222951864915331553228971449183388384220405579197638777618444614644852880612307072858804792067066825267834986741985735769445311270270083260574792575736254433528789539075059851512257448927637069281278393101222400675324783187524146446343885274831161395687308806689095754740770367078307775430259964529621069036445492141745741863152400075951065317945521319048901760477862735554164944121909054431704261571853201315611717572489820274525074416065576628735304491425937495008297581122936296067767733366167965386450083464177471188625121111482417065607121367845796569631218172090617397080297602438586496520209654418444699447941938808702926041580833511190638483910922458042544356293992161387442080885315057019094301365995850286877566448561347299684867724975883217518376764362794997475171588526747337296158082467428603699847452320114706946824543163031917355982661441551675757676951907169479038391545797657210982665923788149853511070798709751409659513961686240834357398216342696306574148399450189841611626244053366185053385908995672810942313131994340284825536032505836844740305630472116005694421556399165815441730918062589626308022931193813751068374409444163525732331463722284889271993333634968958349478624773726088656674653994186062300207515414090684293921289689166064078208604687578781851287746239462915463569058526654434047904662919241702183404147940171300981549291553226592761141102665569611642706750892649054327611334849238966981656383249382089190252309399405691824253547735893216836352684549284071825277120574692180120108559292234790585328189556891758081042593525273647741101473225309679407656073493928832373557166939479537580965647200937533176104705784378845721206582473425585801640523432251882190027023524097299417749083962371588518999168685992191189334808877184721303767418560059171096528209527151931398920887398285797734641978603759129066915083056235559134077712283050706409672061571684349541174854935165636215241708055865833011790275559196126955718877513515002536974119476836788243785105074306027777069046408676475754530287825138926265877322098652643092191513244115541870957626452521519769345734841961009582301513771144030937445601741491763476206746181960570093229808490933254756238054015933698838672336133381041194047443258923966719833145347116451537816090818998644528987267109482228722940796630990995975084533250112207266162648083064484935181573352527625039539530046180312358718643842224033963576216663490255941879894076788905154255092756861443270766975017938859831401775840835373698641660532112426252847574710905474146804591719336144191299970859635207256826556728171019948712867228515241208798176341282490051101722231586099258163615855405350011335462498158928005647387026127301163175092618984847778988970377450177441075722236955211648036090317969829232097005736582789123128729653824323507999872562986479724164777146530309917001571511487873320423864323215596113397411384496893968826511681784622756114252107074816900303774877855189649020599868029421958182038889586542928939477495862363050873040511651757355340829052956506169787565709758737543011021954724754628538653176377201163046369958413394135626137555957254984552670978830380327216842227127825423558311780895716471746811797599893688916438210122246146954316972220096174404279134299751835116009885923933226134085206408266914791464133151416470104988613705944615694396407469783973162189918532774114082477490305848257259891530942446713776376594462950367770367820146065098320094867416930573324782700423333962268870018386862705585371834242666323412002075987160293793919941867054745340642454415735970457920098724925048141945890935814485071719115728438008765549664134518143159131763623542642963371561403937733586372478435046906883374372803156653412283553466216580645512952329294327352586052514086723949190983677211468449725548719606623201666421364555598620181959456812514995212174021492244356850224617577462709042663402127063750535493538904332067823337038697632168726817641174845882876897306050983385280530858767593310144433584043442601979935705042491449783823865601562725697663812850218572953891965197115160170906957946516297192194561181531012927252025743066277735158605962732265299013448200373985750793836919851214829198089223689997484647084383336020072143700834452850823726347336073441776199489339611633526256346582926346575377325844677873206376399041023665376402822693423488135566324449450778797799948266709381547764918316388873709476774189851612766767724482586345014860457419016212624584962076109510134772746081084311565485751029049642005709405163839821577262061862097194051105746538902589204717566918769973888206111629734739652542980739569833418654786961549258428689121672317158552313831440833939327954344598599457042192320063515487272804066809720823044857948278043817741970217023720154222508118670335911390789407518420813007044676973291049988164497831396236009804259486653349148393297464977736392860686626955323544472483811073014763585399442361598564533432315030182238060388208160802342605312512642518300635249702368541531966668148216996622746939865728024224441569001934944639832638737223169150208659246589196217585101412102286059219242111697099964919409064361129207391485889972182710667284133335808574800745487627525497693203713916164300538876570013175532224994079238661521832193434505817128177866439062525667168419432486782670436456094315995894838692430421677998350811545409103820224232151904461947593014756140704300550651991882254477034923057058135929936842584678534466944858217377211128204138539408329710779659320512177091667992723830224710841729399780593759262774401458819323720103992802406379247739077669589699244667723273054213793695791097019690694562800525102926105646537083484519350118679239976172646952895692338551954550054269555528233248160709267930255838201788255696324477880189357568274948232861409585660641808097460483560300532730883246919450049722300386358186939851610144986983088818311444502071773225703502146273776326403702417862813282309545176084173488674671610127408055219063937109648355993137702860390687788032423671109548721684937542385109896041449661834448705416763451241845323526337883526170386140718223344982874608380558169412858918091838648782460575398554173648825195405673155133118489538585103703776113129083668054260332531810650196577013322423530857347511473356415267035517335543810850730336023203829202709167243144960242486198360966963504615340104423984593256570295988479724563780057177282401907282937160915264962726514797992661236086025528698917493613447183967115604713339809278683215272844104314417802756430645358965785336251532145735524413002715388426866160153896753731629453782848048041167429472422513281120669182244223088740260977445714991360392521447579047826545277141523734504293860862453641658781925364446626603531445093694582241208820297419090007027998531712879573487112254478514130707689143949922699579740490351623664308984598512321400808842032908980776778836875277637893347887043439473739457865614648775182824076901121924356831399935258223712789956606396342802269622723610011800747224677250741983344633584269743896042724831558955490516505038255081935112292799444890198698697904783703025588749421809327587357189665389024674188207425587660463881126185046590720227260682969996311261121825835934889409679556270424260338619995984679067456015716392896523256152879412269017375371721617388796002749918059804556433131146048336650713261010321454680001512932442418489619076915637868049698945494193299831828997432378815227022726757283642272886323439522993123018785366278534481019256813574756624607750298018722627273878071024214238225150779324857194248189628553013638191312692191158791722707798338210166807926505100865378335343208248851655371198469809093287945245770545949415351466319417935831737700015526567653480950762604913239735730224632788723731118099713296448357101891644846721053822778420406572751784265495685543719900422764024248708433427464195531774884485495415784664429501813348453619927574814355858434839395022017181871934312002726513828939302015480683279245940719526614204793061695897740914176124021185212607426965972831614717478659816096682142140582245756002912972746309580538574024854396750950319141538853253378307264394484518279674552944775917022914990385352034010067164263600396864971401426080639001230913079737056009069036440423943624317757241111308796362973472188397181859197966184847240672528018705733483389245130356378944737957257181452312890857772727915614642699271681304205676350059170595775059262756973749728292391348044888107051670798250801855344187869274916880960078504440967976188678927331021997565611465053547229225199860921899725027862405984106198825019425867561288305545704067013803498910565329545171676658013202568395588833988034158998076684746077597619764534479561863874737746733164317749583317397469296275066613534014707980634400985171527590326075057597208711878162744242981221551723197942921094892230712138559315477597926064364054772403691786383422031496158156119202994273721349899195935973840970969119849779054401493751514875867845417444142215150200902753202642550674209245042305579801698850845241193874612856442132612944157334004780439938777955708747402939847513675386946345422212676009926701959272300347582117677858342582821444618610866067953380313710922049457545393290958668425587667249071539072420028374446665222687052491462397310466396774756254267145665237286972260472860222132868437452940084199041545776530194828411727524497638741246419012004880624823730869531573506236125544497064853113997605307339248897670203597999615829264714401114959541624132778429496569116600528594529169879081332204394635463881950866181006136291730658992056307248006313108698263945484419935157370570815423757295010071255783917114708011899146901424693912644153190399833836595372593059485818920301979832653525872801310247726957279869557249376422445930207090667265623394108567698488668893658042982537125159384601968690043840655949217841748305911654284374724459391136729846186275596933075427919150482358623580315605124985969420254403531839344180054975050037092679960663840678734907676452754643598783497234057217434453999612858278355832188893592581810157224591098675173059952030607701199748489897888977318990843105443099856208343700260016147169917368893413624646438913032955088797760147890698564257381072786693269631249791303077439284453722709412514165196369660364085964100826951379760007823327591145777755276056218291133275386029673656964532323121816807514456808032028749872360139462546359774061728974859996281998668586664939542631198292442711840362011411609657308687553321718145796594883913330605874839537653230507416478927297414655259431396050416158701359086548461599583421381703797237986683982507967266187900169782183422181804465029505847585295648146367535862050832886571299671031551301538048176120089365801072722166945796272497307705132960298903046562061130186716562011929869510878905835707508750292328051302189404594592843995845261879986614733274949371219148974965660116867233175237174692845209381828559638420664105247848708042738238827389187808634500018377191076329306993677441163816172209874005873501853227935530018628484373905821287991992273476283510618968645389858814875583010989801656459509281417459634997156331488239003680625965448359659424033198849131896350303199880448579122893191877281654509091310022662344038743460844650491763086000351486899028652902128264206747550633500292189570824656533442338369624404470837085360043514455058838877322115827326575163547816640212843783195513722188763467843373735343266699745005531458026580415832064462570789607937192232281132110678885691661592550075862742108254943702216651109948644625783409964950530235292919023816796628614802042198199305321495542703442029902377097672417605523718811595338671322959549483040150106104389891039555194326774187070342663845004278726222261679115065711924101595186632290178671641993822195592534889544004507488898003285564412996040529296841715563103757662855682004560708699079456527346066543224014386301299104262776939110004347200879266639624456686258855031319557593190429278369523164877534830095638085640765135638997335256833058785781095741787234764840179356367951697026093047470763093360461212758725108717037641158215428072601934157495614022024079615383442021351270847138710946417340922409592971468221553630829123497191390754743468892380649870215143408334723966671725023434006924359111652191088329916880963881276350149129713260364429444872552626603614932207684607504192209663133913949434111527164539071694445244567165065103547494408001659160878280254876340123178127144958972937168467250376587219690053505614160871613877087542113206467099613793864160248758612968958107623794228839807845810909805691203391775772676883813949825416804655689694958296453915804243233399398667486622629960639087971744730293143761419836489944838391829417702899876907486720559112807796987236729221340161306031063893958084898275941788478089462363611633540816102931271445016664167169701721581505083445216071755097050184249874201116612955972773563027519293044438550252385000351983789062743496540804044235297694602083968310178122583518224613932508352608360930307618591539389023532423872265009098530191086424114797392573037683370230355149499343003752119348630754659786670403925786737658949181695107661190668806949449571718487417060509818522224421473476637322850808771700227488630541773698017349264469545498224489831484124542010597677047234786784298379631463013780090449913248963501103465552570917232909099831899571806144902296833071517115026088969294085189204051082642967199437721515329574601635013327135324436104980041819451208671254281906890776004102336960590499965537937889770004728706811061629310191099681681980827847572351192807824380114550218857328673334775878424115579262991359926017288729577705856936068733776963460687044956357422109543285815931160094385677914903153787712864222599337824226517318113180351732548811383185431449385118773995481490025541302818220850267398922429712239679934982945969150634162153763989189694505620028632240149949522349000369952377693717121739052474150048160461473407244586975242920504300945680790762995966218298026761615826188949106522891559594405684576999064977036740879160808236547400427228904172303207632198545289841294099415045336567225932994424025713854930983843403769969722811950742637920002909019552216940377225799984355578269791761534561246095767785703242160871208807080095843504515221394866331969322858909488925761154044436110490446034247228024582163090686596137221186757861099190546313132409342126290818697808587280081578743510809172573309821608051490311432488796053646239399339113673145864580358708538000382854817753758017288180422693800451516863406464058313183396876857919023979514152619056712040838963034083207294679786015827971006958620574071740020172038066210838033971561209579174038000869612096139348105067987437520812853105464176226590779071765760843826396538263047386722421052639435615748431433345983838492399262027805469193966362444267993222584804166925437452252766652253873507907819690565302148816340269178647074344762614074017325802774093544145010929881098532052638688353817099078025173033233897646499371352221388386848584505492727514750407808693541273384105729403078466057871511383817641578876760660670603399021057682652041119962550186417562128386574620360868536219666684939053393767028991518730945105682087004195246257226730155703032548425506145549648845363000604600491799456922396389502659798326038454806012417899891440331837942527820980120865053643115701737858759145272467188890110107125353047714390632358418468805937166885373413642120011934310527881233919707796620303657329925671225314651180620871848766858526763605645679980041391422350642419177861358020311193151722768986662934304234087388016189563510404605827501011592134935891640863035476667312245632872615116444099785968798732686719878868837559819468012873629845438771781845667599916283750974487168162023188101681071843935823236661175849666732170486643744571298888170620230323601359338731040692542966301108823736292841131744452830003099941688806256706932290586356549644330314500241315972559061230878383623370596669010983538708654986646034389590885311591938341540989548209836571739928494010453316652151949924421835208563764985699277888815656630038996453255406663315845405996555706831813175200235443688566551707331952140500500378388623815073584999640509655562370255480009544424417409142906351990437359085456315285297098574069371201633879407674369707666535154160486126390950204912612722724648756759681723801518229316583189136911769427420893380116235643935988166790500936958096599963444619897239438862524075168356977487558762857606137034848139413488209139871994606800583614701909658041485486781874159369600731167865746851242496721354267185333726532461247923099879462623190272638040255517889099528776956597508532317123938229094275643179566364637961844191538335085331249464266426103963027531537908175687675737249890859367997757269673372967251612331901251904396602586937592209107330520811754079532986654929676763197536710017194191686848827677496518622963116071499168652495212722475962240044687287520911501011570479470438498430162828631776110693237846089247813089030639510493690830838300753821960179623760499967820266943702509285543192614698626116766255564908687662078249731058667687695045709164463663193505007357681337065669069622195845913916540810746638009187001490094828876048097828916565706185893994377288263333404100819830894991687621154220711340426590669101041228440749966815554663191562659364629730565885023206735471012665424589220759554516696877880493213502821408014229704799246999950613150687726338158937555822190100343292486103907299448142907844288762915835804377797313072383745590391525026862105056842090989783953541461996770238514804080761981319481388824628085573322988235495752075150930881290320721533082141793709739515599708082625509279429799092136177407160552396944263072791992758634343515372157311309889282372016513453984825646230744406000837668573634887309824066350359217436700376322918833826641751585261620799151032710531444091711351035816556814975988867391050583450216241326641539103320452789895320477144130926727957686826193919301002254656335094371597658847122087267047295044844777940211002728011246510268453549205461540802087801698200337823982521197818616933987203278745548795002403783483998760692134433720148618201936263624361728553613084262406862960020746520836354033144410369086086748824129229742240993507535629959095779617214552462591876231348622182767211988536224497030350669874298597327756117365860674655147529850275780733656165166529337819086926859009936818912270390340447474692534771845164995309133224772091602064923429760021269910036128596232778298924574731719238730660696734935854014880861624759920594881234178781191787305540900567617371181603593707692457634899871821805863408278547560771798121630105142331803204523382868115103292193458801918002632818177533340661222467490219161043227692409517481565195660394415901374924028602894129866190967461064947642371155880153251455812464517113673424186470491321005397988870808809658694828635256611633507548663084760629765195086576957603619249821094040417005356995418592019381057902199219892617603734836730734304060877001735059250817693649514493319517339757563969998691821738003035196190687569734777710658689233148335401388738273741092001318211688932016222265966542094172383424688495078331137748690710667840151889002317369955695636825412864655549492685235013278211941937004517252205583172297378831521502776280123120337951613832191835325938998895319743281679779277395366857525871379219729688518131177381694752546123988940792047048399721840203614132771477209434460391451739387903323164297932423661764191658313543239067468815393374437609859192323375534644851503316312925710461134015380690775234320902389122271360984997870278864078469084899769705699916668333185804491503378397534971035850389032118658843991070715877464211906654884116074288615566753209142049797942677008779596878718094629725368180005501448264841881178685887217748990655430030180362377934624533343718809868614280350485638058705812230146013961422073128307706917804462014481610973916319161342456478730838802036459491399859865592192723999864541684365552734339138308604309423127616201064391158190657145351185997523321576370761949367427839711809010597083618278897257723692765384479532656810569007632472585444326936246958425448349252229747386755276512127464877970164974457307498071657877042610125191083949877119702250873345630243473081200345361571046952447766645479707836210654400621096904381392738409350275137073300655401432015790760017869631666305384281071514224388663086779970206958002003525502756079279404379711005371443056754809017015636703265414212706232748923362790103076233821477075913890848814947092507072129145618624034373844349057113335101803346222711258605027303718255772986981754917843606943000066599212762693564614649112647616543620162138433071377673395103631792577898364410558186393574375396785744338235465162824879087061128565519510086199333290039322236256440255469380206699354355857834560759508317094351933684253826910046186731156972621747290518751494587640872008815002456996576876862174661485061912202175989432870809678389854097863486158689272311405063335178434349485997653999314114739955389580216959013414112003435635568129683827491962868253442303859055097567871180064115642593870693381776930842545536628693831386089286810316115630620283213539573320263349902733185300799302529816955648894017377192625458648994668176175062820999710264441851804900478133636286925264427961488421151549475816705479041732261187681517821724257887578868889605889669523534529796962462960941963204806935219773938515956175906293786151360761140364031942910672910405674524956630908333226591386268790915068325286733499717566986715752513843303196356914234541671091673578333428742347150509954175715823461444376260021814675892125072834678869408582868326363637507227593552525912169127157643670853986983603150828110044473631662270711808423384769823781996652143622092037182595971614602525612434603920186395322592298106091759609993836805010726046530559190340658899100838062182673366179528924113413771772073412794306425197433049216308309491033157257921679287351750667062612881690987040434071904163923928368973762247956182363073267198439278043617670665695483720674108013009170921307114138538314944462518669004793974528101664665724383934874857263636459206549791250272113133681848883630904072353413107638375049667026104465151171366961583496067089271421798545977119994919114331525183015446965533450702326363008338828897092113203422474425283819449514868610300721301223381865664449102606878314468825575112853630314500458425883049816463989402675587957990506873365311614610125722352271926258201496850700311039304131489212013979285949543415527669215399573091236738393152396526347595156973859617570661091464454217902309815739091212302950715715130032165825352035876558889600358983901956467405554111644311910302311060856682720309883900084855280907077210347271249940827457965315328476901675131480216609372861692874136810382805852582518128532983851212673943213291448772613187098134669383618508100708053605553655036486175191704035220667613792562876915833280425406298329440367422731516564699769434016809513066213450021571333409536722548680647572470698879012442653580452567990099141556215384530888758695903829053015934898996306559625477196043167710439399798900918566728563302491998981062268657070347298273185080895100901986428552961513611322414809592813366303416963312773220374573295391193330348714628451033865264268151453149303571493031350136356514854769119141097187538131632915799511460732541207829008243737319012242510380898086446267695628721638958771741431418007382043072413379816063962338264048789924961234758294981859282931774991403463159491249189708636145222966576834964816594094385996212452727767894464612745622361333213184370686309378199506707862429469220420962904105604477848471286747846512253612405195127491805026561545397342508998227472120937440797983154503596213362996938367378758805253597577605579250247848530333917379695421826116483041879194058992481539249338721183467327824801198346599736271696535241993303242873181594730659846450214198433263552808277515477289811974746645458835022869668215315991428876529325508350182599101219736839717160198914853053789082413380873601515271258367258690858103149572202646155732681861243751106437111030977514939887400496361271934157884372033784963600673945467601484791751655937030068000066929331060564768229816556124188732159349821460217768327942965565734880898749084108671098220674075584131454436510558933803965136813777570272841409765426665953924050244316955607111452474694739152019166728980003393248228612481065141828453680764799868680254875723504004877363187209520982840722000187706387422690740666637225723934640822630422238005036045332628856047532860154997783882222613834498678036089641933962307174481800048723003869512123696141760039937653833827738663454830748434692643741827135310798072545583346398933393945025737489055498572688566139780348355795153026835472274064385734222322715252082646543078578923933912801223456666153568175719792365507279905214452524762869517365340706946168603633279625703961993912526752900914843029642041754934904904913258504414582273946460916020708751587057635998413731931884833889629532846051876379411494794579914225714406574690196134294722597577314949324220387244956275156542504914446319040360505380786416778372989994092699965967926853394420470546655248786767672226596939683268138483912781910194164391053744605227841825083081675838834161094623762858543727167008040019838743846447999521020763184378234280730867656334985822741823051487096950263149633097967547857954733723481231869760715720100283538517349274099248872240806481236553457771511097824555924421904809300119928348564073202132469785252469097261879260381669419872895145134154536339440736616098259577553645475918627161136172912034760555864434168135038353200176493951545714411384677067489810886088658129964418329515471022797078932895957829022053487010644155300450636831704440752472012268153828037537499843427323003665455665736155741441209077216308130775891541649365538267373841999042992163314044432098253532253808815307588775781300220164709222926660327888949366623558812208309019641917874730951951083066581840797060244537322866966616611856970828093092220836065580142839430228559368378475406169719190161164837845186504067833267979810068621836991372968705256121525927663388333971547388587562186629492430152408824234991952957033551229756740672057314433339465812585508133048947903112211083747560382930831170865200641324276566680351646364619587231259510821098515820139958673725317081666388610171758824764838723686146209013538076289244244399900438759937893691150750731715633630101170805910323112802258936615863322782200952315001772597673546517572814901772707388675590252373078496723795379393855643895092114437888595552836492461213018796084738476414568522503502062733640712922598944910736332877532681514241734711038134111553848452312340808630024914527148341648314308107940113831581210377608643579416484082952315691925398259943215847498065273995029472625033613493660560134182070179164993156798068548275901682516461086851836850083279435942047766684592847781102604810307669783598608331729845053624032989483655870978722463404313867929394057354898746214947180744176097663032342616511275073931988930973902368424455364281867212824822911009908523084812884361070653186149501514046265495528780472407022999984879332214031217866862258438038299356965047939635646977285768734650637633902579923382405982799226781624950609416458693409376736556517337435795382703136860307468745650904161863521356557447905527952240797035160241648645564042207549357396466910144887107575522387258293421304003530796454015112713425614196010573112853791574185789521495282065177570453051313727351516730025265604587079479459298388347294755653652238917037000192668296782977496901227881906643801739929533292978866604300270399257090656789740887707129494158286814449398403404505156098503426642316811408247436941312858299079085419019409008937969072105029987731848964885428163706682662175980906316317310377630256965487363392298378715631513699556264374464407488347310162535283325000662537184528404224748780602860251252748331962946531430217747741315333928767374259785592837451980359300235758381220269786177727969158530330479084246212658445091222760791227785063767358318708099157190133067545274653975935553508126773397986931167108035681666488818088623306818795083346385229970679658664899228414745221128665258453632771167884488346314798824330666806109200502621934901027016621684936565591759492977840458231633513457277952353339787360370539492613474981956898733743286922168204586168046193048357619875577458033534091445710817065200685721714982482744511210369956514170565037048090714553062632174730136851736051224937983866371907104399446672584658568430583122742249996754262709503526822339209732833797089510327560979805783460614436914870725341971604271255357656337352574886629435994525787483925163755294166629605255483329106186822040616278349837199917561255131746704499628213354450933784219375584101277648683784775967261085228108854889072083730618708495674561625760278724283828392500461513778443511986827723946387206054548995608082666885979928816718595195312199588145057881389687138464512401634435454916949010236239667029556344187521158194899901541380244618117279144736216888756948899077124278231137542483478782711576146287415545324782755590719497237784057594617793824625523002635247273259501727348096874150818407888523700459570060672453684989641554883911270364162955594374509497078764765403557446372047069632471072701480527132909344593386201675819780481051810717415015709662931555728775775955676441361351549181588015014080435783182782915210688716726594145554474197716224865509367277041711183549022474106054216616735421276361918385115290743835035498458776877366751632647434039568598068404046797016819415060019144791137347337148015015534534778962767813677219510566240811406318195214264966221439660757800614743335980625038752221712998926456571791775218995803906536057458516404127329073946274363046922075212428424937605780106473568442368559314298905122322591490388962498357594953585794445222151568718008457480006266556226030286425511607398697379347095109814935999294316123474859913910870787983813868697061888528358671001463517227772521422345364340562816306982833756077031451917439822612303029443424152866679444363202265790796151534130362993030549851103991233355113751099550910569592103640460818662045008941119014362120032195298645669157770812567908050350178501074448485871530418015921028127882353562374366809462311436040057701133523850087244568990101779009375991880951614560570681728779701303150560144228840923990675441306170628031568452376170918260208175598699533361064129255292103855587945120426029811682748212904770691318969049601859841560815220892255216486222206179590595275416877274146127710684102032134876530312991532070968749752031979061978472402505748872887721949586344700903260201147141939451997226825250532988984796917149177312555802255349171017104794645279703098133458170591567386307950035835745351644757851127077162659220484257273167659337514808732133582056373852813167338514842016947167878961935568274125920534233360722566399086763889728345475239984537081508705582434441665619013149610546984517890184340302321323891915254213455307679256099049049424264909351253572027825146966553361191290371216052729368299615400704625950207375821940407039883793468510271405222806843472792005891590097701050841667293923913877078644840752313853803345191422700175888651388831242430108615272786126490557601227169374534649677302507423109845506267957739089072271088691127885829558770551346332047623033063616211525367269359381914052037108817272709444502648347844383797080961411187289048514092608975170579489034102502257598277485521318369840286735826646508533352894065318883475944752784807801017036197874020568072118177422191619073120516595843813462445054098711643615424552693721556156171381064035724436926716305834146146554481845611568444219282158011342644434528023003969489358271735877414811785538302956036601218564780340067267422412960683329026264576151015564835790353150662675267051975158117231931598262876244684239624125482579385626889338852158612422142495955702171605542029922685325032108705030306409255674997543971446142891385303958844651542409176280034734258397891438989499687300722394111226896020115883501361229033674994010021897705718608949525753288966302702789456526071881534926901642049833426846031617715163084952807099370649565674469037212897150225635013984294981786998646305370403379106533510760348511222132722598536512453604191823070232666619997549127658153225208047068607336639298399662232691823077152909837686705888026915108032489185893805735719803959186688042137177518495032490643485096255493025832970347141843676263996138829065029702970644659265518279099950108758019876711569594946502488601373227652057817231386534998629526225197027720577845392425688729652886318482472768453678391496330919409580440036931624546383837090839963232097034730042034165281108604474860147166375230719704031745515506283775118985567379936335301064721520245755092198710838200441533151453607340736369245350370420606537515329787885078582459809288804504515947906641112813804118461610538169164435390011051865824091634144421184682738304103263501499002843184786189323998863779024691861136195457364125246311928348342371520769388206104362352628344056407273155729927925038640557994500307764744983210667638243218893518702051314057969040059015375586659839344810796161063098312160802442504705021646351082472306172052926289446250370904596908882661804034077871357789410702619666445708252153616765817514718226553751182665647310384065479173515451164290404548801139635785054247064363776677073118130837348602842256270649987672399098677639343936161324413272018449492637722288675257034384574665286453760897599528830732862516088333125180327553530182143842275494199130320045608663678586297520720037100947313664860820199463706211523265475870435954146128640946796363731884789062970560796796480148035385591688542469076241271707739710890755491771917004606615562012197571893307615262545908197641307767213402751942119061000067292701347784652604182715064370028819116868354361060370599068077562223011500965657998912964062690780204880497762595868134026567241746876868672157078615779917814443617344996821814782708481096123387251750696082707733566724803733213191503432251319478786734790928859439182255532661267977146371467341530962573371082320745988517724406254182884733296212016066457167055185822835543735721618909242458758781199989810322638714873548021799055518017059978336298519042728587981760046774883750990873714389775730089117680002906107448247355642772722226715696584271853501109448146729294271732703371409752287576162424204450607380110104405755318654860262731517490999878373792147787250682734786203207039937948777423535929887440323844338971293844039563342999630280797509510631987297241501791295784630817676050919971907334828096993172944976654253100731405338246430537496547443277764204383721558564710258243893462695322152469946067487563341983966452937009191335114496416263566707075663505787878866169173987757712169785292072386584750456469670449455998770795739611202276295962407238877145319504619361384520933423525575510201900450754799468574787212464625470323967097489395840969907427818654960181299222472742900596655027198043072049654009409394097742015381179208785055102652752375957462374318303494755724565351135841422518705188590691949302633787960289451066954007938719252520427438618198010752475888614605222329283688942997933452395776498794064853727506809716275974763310472289901903974714606961344929495987211155417819445013309082167339717463364465711476885132232339271418763458928404540066576361420091524380039828933625621400005353471410914745957632477674495321846715564032320046477656793310686020959581195339352211544301611581215214557219140969488233795978805901607719206723045687599967022223723816008875969165294671378547927424899596201679509104808416297177893100211692433612970142221646696614169816843306062982587242661957621020217061038323905645241488098718475671369602156940254259302079674733629078165284820227156498680740841714058441429005887756206292064172339019150762924655713893524149339537801671762460654285723908828838431400626840443039625431479220903995378669059249318006842200823163115800410260482685903065960685765624442549092979237675637252498937338117695820843100139634179227487726504370220070692367932242197500416576843286707899460568014791220999362724799436518634780800701966502724710704185133375915504202624472108593491688401758331765149249430831175784175543706481551782699597896373939663469940970168405141801100263301045267883819988747202583281696453284524590587042233753630487751315972296977559873495625701763684771752593274882386485110562809187391076863258176942423413921175657967924957851084541609736113680514696484319866851669211124653764126265614584250744919960298186413102302165010287689514722387845262280154792322882802171705115336123376916321644931815328715192718693020018494213245685385185165782413976321393070400150218141863961075808918501158424311906123004324502847912365250550255932613637203427546967676466969474277448542966572612815144461863534923303721206999918570031238583445821709696184050967316262100898075773180679621475687819517681905407526764329189289395822583242225818963864181676773698670307119028957557439620603416938010059993881976763245559531363585409298485212215374677511975745121304491566555548132782150140056743742355144911618060747327963639232557289030344490454392830340318833716386097562835389615603523825798754665866881933069042175242137647030065494005530597962164122537070297244940290275431834742748357502637748727888149421532346763495921727191915794515884610796880593394757500094699265816453665667472995588194649944838216782092038781723349851051007406725901252329454587224550347987835863069159985598340609630393325910057762321010870255429048600617632773310257718969948626099183998293373930532748012549957862014842278570046021379876632438181129998350350916184003982957364704080242100950215728459142520734069938836052026471091961020291558035012758123243579687027649221818666645960171988600546034970890217119587217443888416840868958324541798490460079669681585418689269633311855506028535687454110758726587641329860203991142383540668931309000103350256365611807192722543256945383909371151191592890154501394662636258969582275574740794009700874816390785775799724827074260747868011496305441280416020804722257211167132029149172464546320894953099132191067463724656161390393987473547461250945653217333599560520962041636325677202138517766099766423833807739561457451289733844477250051063642661386228558387843444632514224201938515146567845155435443357976383427454111137577427956277714578192472991892005274158551356014206517493375595594288450857829717281980747314265966297955183872886796970210720006987540986319693157111858232456702582828094411868115031582550580137400113969765912313065655988257071693853291244608250019287368359132792586606765697428187115935501011824897276476410095898506813028199650606257059266017290800601171437202361043073735027356921552726742025000223445289635531104434125429862947393264872043167112615312169496884720790720618503274737367359081408731347747249412664530984207017818616423253195922280441265260109643756259040117703052751819584744294111645895348787977912361717020607102584562242349924732592614731307272843582130531245844040779762380914925382372568524367984523497614725366611787645614387087957037998309678885006819606596374971181858713483564506047663333120586187531504512164182324149128331168106435284542640313976744149003154892780158424596036420188481732159214803516095150343050095255455716980643035991767134167446816074258081032026323860161237764924999418585186503077618210225577320890876827493185027577207031695008304985414391626602649438748532344296588107669950778938403999287503355919031875167890423226904756414680722503247401338806850571098139468007432965631757027371107313175028471811035836481317207689939477007859632892045113987746024708344873634224542349194691947934747304579187374311094010887387846395576782486409511738329121017460178147633119426731328524809921953477501063294907138852280044478386697335057088812325891071595857622585904000301726573686927963356198126929297298651857494171004409375015127601552290939604345690617894238822135176737689433255046225298911994191170591169389054165597673534957013228289621749682275328176404386444261412469994367079336038514932034518699500225018404814314163735980904421921360326557269433173393418128732911176271133844638463752535285750905117558832293123404188037266489855218348242505724504686241790017631860802759948000775545839699461224653630076228627411708265132234783302909989935808942544169836033595947164710168132252695783690361258796692493646792462625491154645090337872181651273833678342192271689707009649767498917703564018708720629255249623457599141499764835967572419644338183704203003820865267644230912977168009675531032310205616232058434196446309242291935180805874016475801491169072609063876533722445732724996560053513060194835429916889479649777905124417388761440059860754246475998301995512347458553527792823685438193709435529524817268876669619261462278481606818706172149376631257497568958533047583334070729314088266181713053341613591558804397206387082984041447387487157913901482881006836746171358071844692759277851370024536030474385205731918745778088660773423287644337021194418907032433608652334144878680206987310812082705927727985120087069373383040449801046664184824880115403227143376144900278271075275809408378345895973337149507631017094441779875781352941708416018660480827570303969413886244649825696421917850240734916338912505884720296473432735366380488345030333546237405643507649258156322381472017328413149800635750939478324049230720234960522893019659543608467211870976506096273193999875915797853212270108935084017414642859370457601834818965017240555505526872957008449955924741984971275480076300461929933998600394115216317939291204291485261199707899820468716406416425968850820484918586867060368227883629987811902062396202350241735291311266088619055081218455570944917335292893587365446509343246687573379980343962819833053143165996958348037824040921401557147445900586155249394738483648508849907595416232231947078132219799968410012420704524280029160004157535226669650225864617004736726107900495647057570505572991938475540649123164687664255079611982723282247275143352769853575047351162136574932684206090936465482273164509288444856964847149733893652634001248808899910227065120940704919739726192214936909388604449864586945185892547894034654979220000824411783436050162704914425994776191709974826336883095007986689533460987803849433040906250873165690169332637156861885885643053890202550992987770389221740493454108072968389453841778541435796598194783008165497415138835867896962100735789724785795705471141410591516658110098801239980168396355721410853694203633503692005665779452146228208420983043434929329644103164088868444764188004112041700588447160424216339060386257208165030235068484902752819159398205593853884678873333052596372986914281703001757600490916471886529280649792829390640824778813615985218051323797713020216141989406256711939169553542733348236414105241888002593596276354405567276093752924643639258711437931990289361880552710364689313959169628037365331202294266680401858510452525800695643345893732557802195159789153033007333998562467400850712423181688856012952424500843337735151103117808839738511218258762035015796932042024220953184691645384144043182283862783062818168301284964550039731509545146036059310800710876663045472260948510262791725028638536884247213140398205983378222077027555428249385025426152362083230663003561042050491644103829145512214086638111430579292028496940231504663398843342676922920106229479383870701106614916537896747661561791679345293671159559024745686135091444027194798953166944322297207109564121027533240500202493355747801990386576342837897574230700636199127747591709877698740471358176480436359250048358794824719753472037534688353899072404586119822545895748687968808668486671371354353005328586765581912640169333802918883173964564515666153184299239616807071325847177900993649675693334477252852895092164852843206835288027848019645264084568689327166920971290083585036443862319768716240296997513330085545773801793489666418956913592167723356197846862237373049308803863179263902961792316189174262270305295116605257663899717989399412949243825956457719301578964084290781764667130907264985649512351502030871598974005610968988903828263929768238938382197893029844088616736836736768171767590422613187142205946734050260469237405670746595793215276246980506965935293398818583803403357796074688144539996583019565481182105859387791797672379192228382358043917693398717539822461038250112893265209497637744295814546469260982019281223227872360206020653865026375728517781325193981099970432362670083307170152557955274753158161606981571761418133529076494229494422465932723217707631225182302148254862866559511472660842736907074131056906860380792128845974812176390569532930614716979957862758146618855148259461894878626451414593259829738707200148265025443110363921431589075285789183319403546904943730566156328749530264300384042442102880104801406554141014452045330391567012695378059265791548294259015857239030289177080092194257599394758689764910341189084448766238543848116264157684309226121486590575575963736853563899374945340127585469913942220099674934077276001333148023438007217285829170656787893890967023701146408888893580082564035300916268714611582005926580644473760372398132802912208842004867469660399780537619009422492668549073933328941095647396786952766943740197962217297665916010622023749723943329560287181018265196493795975868877682162243827993048995167670602782812702947345678981950478352728970525199679114768729649394562213882147709433843340216443520129290454327448377293883590504188969395393897172569090165419033603529638997230735221262062735986932672701240314726847803156876095662334045270217338830004978661435915218154746690011165730730722911106190618967045693631027100340510517230151551914023087436560692344211398513496537467353601703165127442460615870229235363222373310049457681710859044972053040517267979430909287405492625635995343942887259318369276644399217518535322369523836955006300408921351158225763487791142693055416932751398561339714687752828456575934086760017973248501128989835906265594041895512187482950319645460268313826507303924652154703575799954454301148025176970419959508898678435875120188034937588799991860206738364627981499728862379025193347616126358673414281339400683390041175742088792662097686277557457953216092268880432686924139459252673917594085092410603848757937313987697963654038269248634458212901231658445834904450835592146735514021472215346334570055113806861247366132828068186210239348264655638829606845202395840962865102122262265302365991289683316360828543604324356864481340654765184017277997568635389075300252004269803124798563087731706548000977830854752953536609565973682681507385771104789002261315259885239683106573302369884511249101848060655214443523992083899637276421843470252531023906343156892660923875207179554428489004714498319916058386375957472573043740568198115909029512747397091289000518919989850996201571346941483430080781268802984075189420450170652424658242761965959483889645991797558018643467832266559963889557640621584918380867304446044805054621056770332532670735277626798913200768624601245782195809066357140647390806290987702072388933811892488344131347759195674794607469320315969205047339922361434017418351980258248212978843802508250100767923071296863325362837590677734798933605931088941982171693243268336715652945814285778093697601396305489184864836627106664378265245043251253796479991494257976648106606177089282543040332370854319365938677300596516127223658176858766240741014527722134535369494247175347281599180587353589357720273862688249256534786705606972948608214663929091435008881063087329855841389380646122807034560552776647718797366766291940466125488116570158106312637078737281041026495499950738807250295332273590726552504937036242988012592623043327992705582993659127981040747764366007508740690840930244160362329489070640077895953113160537005366660157695967492670264766996375099332582447920881299588169844472069037253317627608073446225436390441673336368419891128812962894224488385864309559269288681889985673748026603646209650093281961548600382299060603680115762768903775696728870300630880037614059699928578071908781697116076229670470655079753196683472663109716319783119064356949621577936772002904443157219075750855361740164002547873587536158716648534583776800306987799248000052701594167049374763433732989529204346479019761185716775570954244667960717625361347300670969824689816119544043567399994908984609160538009338998955787807011868824599709088384433195000332441203892099381065232638188869826005004560029182655744984949943801260654086428760855496064549507655274875767509159800311425791249031085882673577485572389688609603428788361952505965324930171760805520249717242878821020527808418195387880400216551693431545989186101999366382850859173540817893601897166100459934440172226383235462501899547581066036715906871666051795408740323244108668664895916349889972485209781367975109062004716161535117068987107936977386758704263868856480071928946273904041893987987989652906981045560409565685961130621075153398527064335513804615807914252876853911915521993950579586392746008869867814954973679548356697703345658085432058341420773417003528836669846110491385110928206679221589033080149316198846338209687811608076415507674211041027040829147994781176392780767682658834413649323567305313093310623370800582606486151032550660092322340533841739972289593276545727007655977759988932147151596658460063119559569529116325504328663133692065194674531794466180223781021739457904090659485494638493835320092837401678802055012353078594053232612767100557817575339226391453277207301648000308413757454132850993257956064364281879856510190017246605967470747649073124243575076912803779903861174542546006008880473984803943193269070811276892822126046922190404742038896022488103348465997441530622188770706906445922661164258366401708922029914717544084436608558924812104459285352587802259800178100492561206267091111346617450904917245723126180557856447673988983031446023140479063190236442226477505234223697456445367243329876075924824891993652193179868064293921249894713556123612138715848130722585063692860482890007384878017485816348159544428045424382909105687388041814027229842918504495839208950581841289477921644174066123902287930389908565872844587401422975919478769226981149333452952081317883577691844604180197063676840591281001044481335691084942099542840637473900055353985632164431287670430366120232194940956940684055195918436755827015485858014202254860775720899998368709853748698224097059341583609728801498577209587598581325011416874636520801283092642680557423942205827702165394287523631045957424521434746545071976065239846877102420525238600726978439025340314288610830179899775018566739834819045297461982231034301987329784712470553219738376078591851864920297997888207365808079343676540966140809783699369687631809109540083757024173323683180737394439417191263607111009299416295344021437654697669878336160636438459975706910116495063287975972554290658227578783437198432296455158962433789516971910214091629347686632123463687899184847836382276640450627737155430043476234064178787306120156052068802458466494601080495622466328750410430679090876474147642222073487460064632067115934678897155163967901623387448337838048940815766186564520840762337194227400170549329637159118731470584859743883254877602104813358922208469601436634373283944211895281964133138392357347343068565011498521939338026422207856846985004473353864628578075116144367026797322091244728422986279293577505000117816225623324054832123439396654997075298481413824226498521895851353626725499264590421761194496540169020256143469710180950393582856294528324523774495511982756823124647356391407466871909345589493119193027781281931654959283661787249118744862799287041079149631650530801223558319663237081348464327658858138157606968663339709173073531702051055760112678676930188819197599409129203223239150613437800411975298179745000145579337829137156874670182922832113720313097986543360901184870463894335747399516710539318409951058979234057406702877715677746157114376518759012552027716260558224767855809986217038594030776435936055348559803320929633710797195805519776514038804303169674863472170537273328404153978580573636563517700040701849521214644414556359669245176152119209362806144239744731413595193438953436797577393080768525369455308236078640575585330738584436053161991419904814987927148876031026342609230598916071335338970756956021821657517371672267147718047805241389574141110875094806500673421875718820461477963703976916963511291950311136741740106979635886528613184585642105094488178236549801094326854133285048586266577746497877659176256354957208390854757500140484590508703118008361603929149034428208789392601447248218101124521957911546530752541374953009566731598825535243671170974186071248212334564534430497952066653304633896264311992788028287049084075069314698252842996809855088458209442173196295317626641228297752512881224113551447671963960613626883356119754615587771029386590941456818714819394103423044213945754651174455416737609609098499274153970073756708075463596145009642180140358924044180750483426523082084265764093876659713498847375089263909738592321572673924420730190913423390206883633337362265380592975452926684073756330361371651846101275119735440339142494108236015240045565157401713760903090587929262011261065624774564183601656255712369269775101143954479939384144390669744942850210485415575399566353903141987590336922240732297382652924595270931594291637857665592356455780599782369840908852540019931724546681332894020217963018120405896769867817625337268194193092581358463931849790660191457739087040366265637737926246806454865618142220297723328439163169577703058282773851097458291039891408957985443909659769635134007388809454534796842760895259718089350502677868709645967588576491463885030929091774513063996921350789752914062384542209837062923144408564457327917372142783457428466913449066800512262663240545506495914281961057688903661602172164493136602747232096699515009686461953024418915501663986371999651997109869459181535637490181855299934916832129468704217539227293887520550495052335179336070896463597358169520590455257187310075978843625553809328874342184683940888265134034620450671187058808398696016675354035445487267300297698914213891029755496301344474114785744800418566728595427585645960465988806083393399878830619361156678034109090452554240437487285831433126828947425848609960275573337731657543256546738273105952394897404093135832994461204991628330594625190001656095870395613558289144438529836367204534253444019303420977051945314234601737806591805080100638274176012310773852566199810719066850128785442600938684040481044425156073535269404076697861671662657628849917322848292255200133419354519366605913947451077981897584444594380957491992319577003169608025229826560823956072333875866774725784719292099316289473775688009360319615873114306628005217550919365436971867538058903570085761024555583668954169113528257991745271615824475912387437527384129527954387698238919006015758596411797710969281778882613311690916349331722340722445364879069420152986038471451943002047965587531202023276463176994185238142248203545589311079200195012214742054916548068053379131490373811291754034897924899404500738261186726700199814638418954071926546851771294672826287548940370252025279663727056192997967706982108064612293444387129917293724365796950293881367999430027809482610129840300679288623549765488134173519958925643476930180741600209603458541095170591303088268342838788792945431671477292555387808128802911080619337864522884525649187420605597610788635490744252077288140950487351803399953350166675430875436811881202149341995249056493614564557013870241033296733346666605903540538261708634692387826818966287385027619243451302706283118034479125384863047651450450406391456292476452666562738908721933378871297107503371840234150646952872016908179243543985011516054266957227888525508750357798871978584560992679716823226607521818428060679453028636865032850389411904309850697321764779984185993451114469904208116045263124982433118752912976977518517114419156361318410568040690673075636907358819003555722881245573044451855530075710314335385759894721512593874919296592234346617532112505587182403485764831083212857335758346591174300816675006795572012393639329126561557591032077903521132063733651129889050811855793003819468011045672465089539599231243523046426880152404454852130033525059883760525988632796462010788577853164744162375968416581364645028989363632410054554768804882353355024545174770585699810894247009928168996102924392057751893835725743637365351010234102494294663513946652350029378514799271958257159648700694796940936118666542779592385960144928302013585790213666339718321075386857933142776424370097640310169325775938237719533589435402033848003793096685906565704149726873311755271128800410208326474693191688429952991743873420159585764207211662741181489764441822544705162576251567764655948287007335151660060024477828634163709122952162392017338134362110387298949692912403016803751409306536619231704128995894198522351398075594041796097913265893244502877877519538922972091111860860942584583566166450397495008030819902941447616597740351088399620875839523629225918879292792853658774714942313239150851201561211968510940264701183004888183730021703748231275232077089827185063203176376627171766579929141356063042081287193097792972277377923407122947846212075246346212305777899372850331325894134694843533129610522076025968778376519699318142467302707026754706936590637664088021446841750397642570088743958678200021444148202662817494413302475330547652038465375689699850221267020448748702494856282213371037196731440190522740349054072636077274396576244290851797552678614990469183966452865175750585164497853284321804297987198599826370719056721770814019912419373176518636354622072555244355076717427173579108951410221306538876254089766274865466813497942830175857183905039386731083813618433062184477210219041541445965703673947563807149463682282136653011244221652619914677444704602044410987750747972386628546834284243708816454934373873636043252870903359111180379688323533680323272865414922178332757287130748444279687674749149752836542714567134450128843394977344427951840897722596488634680094455435481997569917570035737041291148452757259917217478434872529160691008501013864882621911345748656291037466481664429896235167661116235149375222423431475259409900350221691972941626810525247525432906049917133219703643824686778619003809463541930503229543057322205425981396887248058969112296531969366201465317998050841128509486089855974886882574167522651827491939075034179177725176728508749338027615746315924237799151763228243152561056072900598293224388885346957206646253901011092742754164337677612324859936010804851182818634215586000283424535721179537636532481336451298472195799931930095336337485997063779646804435892545024108516229231912471328933224089215016051941381912113907587183611223205497439805787178088210053178916610459300665786483429163531954427962468970027366913222551164728586445406755830622265841932291725235636462133583976913053244409772610283796682075669420868069830956526698475769400302047700642970623789871546494866025351902810882498836020132671445787532914683238409882166916305107287017140084095661336785264927298202659256350326883593004876483333670664741229165881095638570006078751147801825013742789493532722857288582191763034445595119223955840414272768557982143728137827698309124314180223928599687112413862369557360964066600254042200765996730881834496275795939551964390964476564007642425180820215719595118508774367005125835414985856405550923146356257337271110607937038382479481582651447986375999688633352893418722808011224277743603052598777208832519451202658959762352732790872094789960573328282303109057243883925904996337488429509526034505577070083189650966326390432624768211980540898419077896436992504464442629404446185558145854365165460033916381670853709624805109869976136549361043502507778785463091836805085739826896996798966667201469002969880735130936926174848692421132459646631424482753994104752730046754640473945466317042512627531166275296067707988505876655131600307785505160508739003309737967776873079704123580586094548236895183718746327660286234866595983309185614429358134247740339779190293186245006701716615937624641333994734794412963149724084438917080190736581520280770571765201060634495895653752532149535452831229502577967784366514760301202189272359116426702757744691680933475326454402777694726466159784175603426146369171384316906535364559962077191292054204047452660376622033152007072670474003654538146656836713314132570511833165531056449918014078979860059723462353174910813404175134211048796577237276829300587961185467023529465835180219311988268724723509746055815063973759849030492910994114115332635114610602283830914323396773928853378622472194304950690263683782716257301032666812001345556185630365177650928843585247155347546195883366596267168119399978660589592267565387906356529253508537411880478178153653910090823799839620188599788973084943335824664279774608380101556349967918261282912520346686327021149974092564385200063787738296499058357448001902557544545600726901449047329033925374127355706858835725634544405413789458555537367161957539253742399241887479931710245216863861120705975981065180740907741001173655986715404936628422245272791819952492825279459218319606129222149642848544509982580752929710787421200333086249089657422957020031014053258152776399305579921598498588954678616195934700409381885804042769629089978435696234939685328132962590150115402272864488306202736912490707992715242711556883292034395219674311367395940747601195515543765099638734248072995432274068172971269814042184520051678992587329068384264271673730321079951843044900775299884993396734631414444664663422252713144131608757470620615898214825424653412045818250936271254721599985307307999179815214688502722224551204945766063959103067534929475992279489427011199865965373014934522734076267566552036456096299010452073727722578903145797160777106537930482916956860976325660787082099376113151233822448522216484279647463243046712320775929218289441323756012525610985707687805930720238276103694016779356736428680031792904496160231680321259831694812222725770214959966994616753656701717378041989024518777367022813559334755224777737813118549751451901291985954969471684498130990665632807303133603788702914472656790261015316533228884233087460763358117143576204272211947143655887512707175654366194937983183988023591852903615737125045581023482181492330102309204991734482646259047680856582048411935783303624820208448163440676536591784147113880449220314361737722576706366500007182733012021648208162163186787880706153339763594437656392614333950689249603324574401134736375997827523415431630548205448781942381408914125886050565710717115775561715931820198289580038403673071284655338135832669254464241782796879299556025290916340663540736606455369216120328587327221060139161324700987077739976519010313649046849712709847103812093928228622346266514175061949452873788805036643925419627333126655522180191161191898760153534876584594929191249296240592387359544311361385492311089673824313033711868985907822037300091594808037386006731604827549103169878064639878767884882240008825151846801001720116160691916325391079549650169024895920395949020317077014998463258008506898650071926884355943573486417164446657027286621779105948966737472995294866504329954757965004919900501223661850132381638105213823551727374195823730323348952748657084527050231934416786794322457905766709405866367274525926170982694802316494220578779264985287115898531863328196697931233249179845054867249026608133243861802992291619048832495940343492471517789428268211271512932329890803448562539121094850627455921158329265842202135293317309433463046587860202385244101591617768466299690243258735754635038349907098107550137213206646780480902405143921294121330984096942720609304333456247810875388455024765205984214428713390871380169801749295858716547308505384324576353872461565167594023824554421517713340149952683717631402959168536806327781464094641015576827411218881107968641191266923471113953598570241572896644643653330160547005175225998208396522155426324202202065953673036187685458645922506812096805546292368389567966267469590613631441836910545966031742400610745209344503828720141003828376146968260656054397001028053351039438921945063202353914155735050821659813681882556426854640911198794668441032971733140516132177149875677907059610251546414742070268991912024335263836188817804051662576334748370530784387715619323812639593063771037359702483402163918963745918712057372055523891631338865863952531323731127965859096062308184233553018626438088826072670423465601261016589072808250113178532326853429203210325792646658034083654931622289509123844388453602034964063976731219994436177858569259896444800146903305126404248439251602611239366958880171021907169262146678007204168845290890030201145849536588238309515992419417274695544127083842270986981112982908447131170217858868810442397126927643073963722262933502126053435806028428111665552300357005303573621403000746050529856218394013635717804156780507360089046910404645681785957309649931397484618163240347603290747929492764359394766484351937950130010424130458403552029626980400308757131995632732559621904147689504759121917916953806166178874258143296648037719498517775123082998731053822433034954270064120902518317915350092236287530945392087529757569725112871393076101773718355660004945728161107953338301253059659786403694548223028338665490309472100077063864418680932179593602717715067626850424834025236457866814077018863927968316471025842414313556692183842897823250189146988413779940642617070940555149541551583405825558929391466117471663295649053431358669297351071833630852058411977056591090022079711405939813612073860143513241855847529017785804474519956732019066338137114033431602578116963439741348619165604561551711896290037083220204674038941418589979842496189208628213542671607022075042450673239131097224515347067000113915109904851878905247485377790475681564880581394893053381641209483836504332902403959405570640774469636259867519631989783706305973123075675374813719852967102328261304668542681723515790558249572573185372033517870390051331342534146558523693721724762659416378542892891308161079225526231688862645320927381670477941941475569548877044733252594975502520432836768230021292215272969457976017333757360929587856820094357047772288144918063387815183974635600753080611627138167623944509695221897040248249891492784457971408377230754615580264237583483194687548335595714677311803837137856708483419509551324552942316281154481654337742439526920797240108809537108300489151110583514230219129466041795161409510213652669344751523335986359999259762574487806901383170686095884581392983356630206246281290548524915472157959820483444963447954581767018384517154993295521136613873514060208301434932109982602732910713081660073890688613227323184818074561284227650771235880244283619430045879020345879417845661679206830948041211007848645358215283484218067923487554925553067794701883979053685073926786468948071036383332574758323457866833348351529256301823123157319199475779996750173833890714331464741768860189745989138260371812878271362681154513718614063323307568020818775024536929049510521917074073385471695585821923010177946741747846459694774389577524128238448846872133567483726040260463633348111548269833820011882791340778514930610730465546101409728045447859730268916132379200665994401595369296207699178339521942142088311072306805741637133610099794821182227067266033166324958779195898492711914092404311203569252558755211200969990826916395030585486296950827422746792094081943961333568207099420351642218206786955391947779166411391009429673047955063034790210508696194582982046749032409456536146099243543256225352912740974599222551064320341176551107948062765397101369358510613531001557316807676109226598252713320369442712573029559253921041228764920523304031082029317647166552068369677200117024063465046184246917708873404105336463121647792247049284773309110238983982239821137103232707906183996590417440243907804132115735472011262647149722653302354418281462874974316856264277128258706701735469014678406836701000954669672958711009970343933726362629764817510341000864707389876710677704686705311605611115827947940803789458613919515817150328073367708908410022793567499079608688651690749637112102059352279038351851511679662101823058290769427878031906647937916793264750381619624468537972455015832212175175630745871419353800792547156691002725534667548868872946538531448430892625668037592532174387421555955085164061783725824952260720249701477917403990668722951804570040062894093424294623616154226603593562647400953037870782807122320947600739107230703271098718116382428995676156173411776203459449125146555260667556367778105642209409645667798090019914809808382461492567991479946377923346484592898647366541704968538507617592646978301393020860338797354013590813517550992346353612437780895133383288765444936643279619710411091250771067102172658124287019525428791597104216100174642330300346624405078942495351589591832084248588588560597888119122053910659180707435984296797399372033900151315453647698954143510748026999799340550769627212270127068082867834436295331118058261885289856280789941284403007490351919185695512133968755309525467597962765156441835497668186342007095730889585339537483743063068714543387886065627267165573968567822779414733200680627730299236470525040994116639425582264596369497453354078064227800747525163581550689088855572409845193417564356222788881215087187528836560672084180805202983478063740208104338005345666681980671693195309296305529969397464194026252648404888201773702704517981725060781556289050507652993372413548943740509027913607458111820343173324073670126889205665324115934416175254325380733151227223072182085394648046321977434056558472819062649691179609631662073549850491400864116539500237898181760234100934976683886843100417065451188420494571675778914868250553434014591262745304172844390239599766534128971115241774967533404857222030489750016166357299700756041080976175538594343423151584252627169725578710444622316043983839422409073565817119200694129196929710412538034136725998463698304898373864794384614269094108207949764107518888456544158976737082365785658543728479042742269984309688327107275900311395268564716506770114307286351301270814220879644172798515944398828517890826901443377898396262665604811212187738493320207748938585796865973456324356820828285915807622866171864853169975954040365972408850571832473884830077289546384452028679753413271883141716553992513336972739809808734781495666829640207104747736963833260018412465737853245930105223257544565399127547616997213038062715740060890940991342405169443278033924714332340390429398911294877317927375396703785962034379030799681213889065180819503204987948710346246547464554347216150776168767304498699772447969090222016215593542965659834847968364233872143628300413240227159264666453098671380228626538939199553299159859392247133976378032607594323515691333621707384687749801206434689877080460919037967794526522934603936010774568225286056186178580622558868203805892324210810050561583286092694239952459272105438493892653513100439847141522630069353658337198878849656482829695083589239883282516013356135298153005682811159450170421327512323709898234063896750674948962342323013728913445672486737848375887176184100601162541632368356914074560685923322231194670530188033989835969462139403454983729365875690597170220221676365215074502481056020023964907653471769432151105118345081921033982350734477785011237187162514135296433859076009238933551436706758333185220506697405404990819864344443389412625761399255281599251077907829680658353083296434898853056297986537484891358311294321340519439449222188542833505137717563942697887099060292635780152554788766181686685247201336532478565547872327578486933187038227123318642566247044836932445872578500353683841722530702726802250668508472786957491234358476324392630640485440620452943524560785920944933472499261298510357157938791270041149836912562669385199764922376984077430401781842470394290170868349086549217951598581473164549147472912128826814844569404419685697963316655741212776372417852367867761656008267006200984795424915963665150664692693727999638788673895495467648225537828886569268315495613626003497502749635677417292600986541475895233873748693925329881710611235240230564592318521981439148979322867090960829439852036686283508333827953905349820207824317788882318717703658226646996679970990553394431635133986127333744320914761804809961291643498323522923143718422779159972031009775024762533374905678098889736611617489669788504358889118652618961254361939183844914357052015237002604649311295647465316852751680652904073512154641470245540174604495496107702836666326052665470413716632191370112189851603709017795037773832338136377321023709043793269773038812026670611620116694475600463510866226765936662588471818768096548763254396183084980549421612153148870204488511579231537087122428235570556714939783167957318566379078559447250539414438371452018168371961018728989611783031636406091991141333641344302232328610184004546466430822449802156841140755129493082984343222138656169682751086407260475696193226530329492494441151659845041074234150613265584723835630483990493178332705029792992128636655404752183731800622645919802578128097103766151499942308976971331835302877515053554607538610408698778056561613525785311778496946694874328261413667355751035841002166449071124739502945182936023144002603796978751572061457750459261739743357187831195370544853074868884788497784130344265431231536176870434558650229567714033965794916642770403504578078826792865558085907805298845481620199544991692633278060810430434047156480128290784419164670328857248182538455726242655247516461552416856158542015393958495051503017401846248078214466816925968365364178737399977270959164265037360778692654603132625252835337871718250514939018004018315774621918748463565519371823458458864100573824991895478356102718715901799551019349420428973530601368566494128189273128985011070919196564030317056290887057687774485942192513667065485286028590307339621131014705357163377499450411498593360530053455539697381323932541963545501301382560738836580635863949205344442423638540415520638677272833614825904535846410155990638155905618228756636435913485572825955214188985041948685578169591267137709340211122024421211077483720729490412518648448768379853628963620387274354258196146877769039020630074029199497174614894516639051475528798327771537765750564988094360332438272803010202983922646724269639305089003525298658769101979069467606558482294058862157954798201791907586682150423620995488187048960073770106256106605797373357053948532960541183628962938250159963671486105419176457012149642990250246569865814850405793673244931575325747165638458414994584092751982081988778096215684874033682084033016445277427834289510846106547223592089577643750698899816735802530903558563746096835758181782706014447555286656853450720020854342954066792679111129075193802305553544433045812289491433758589848937931771597042130658970426636262374940819467963714859043368667775394464148066163652368383054404907995785532523305939611146258396932517538010498150988786779705864066570572138133519454183253763748375357124054018890385672460128336958374825188573635361784366506212980459121237980006549114856838696966104358469180655748300035649006142602658634388767149139150240674545721141668728639903313332841481513964516178037444715123589350526099470054305191180072872667680472789377463830301334519539893259122046083099139692336802156414301228298759934294622648767984576033224623931220266523696496682671400055209858526147003587784053352418334906648854225115456743097835462395418874113094551229778892158293409338432152474974040682059190797624830678058593975327784205344504869360750121021802949052206424114486768203507754464944483471619571176861482481988488580003737815423274945223395366788926259100098572970075264666199388478703995024905578780688291581828107051861596850988386623849780247789577875901292374340938869404969767219902597684623567923274600363239437600714559024537510858815221772347425709675826753534529064715535548923062645115755088205885890240858885603196330291170845661028643727980818588413742640749102736154002316403947253852642811573827273512994303861129277491745231726296409218757895579209214942393482752172673051926678072315365708985342891152979614600816233381910066357919475015717284190924554215067992051986333468817965972335831579129924776839104902502887995555178179117741189390490436031233500836792192559810931794731224876101779784498527523924527485604342777925133760247179415756730357540611516381320136706445423756727149927738061174894024398685531334516935645963156670884339430994962981971232128657804823358604700182372583386376401624759881229731088742804175224741036396430819870420090677597131496176956093715712209151060385803379379040266478080546155945875111366288059425572097192511083559775892500518208530792107924882801722386014336776947930091143892241338521651796985601385296445011349698168639645338590597559801307833856327188843379210534960871905392445783111637390398297961021958021439450359907432061617015432455712620647352368927894282329831823919562983218582678159471057248156429097729226620458483376508738642133427664879990032401991408277568115199967835409611947522960311964685681040167106792099652309528285449090986691791215056987903147272109935612690043931773511927861830769428179650470942275772537946107180286406256248325938656377738925475920249106895779081460016857916531570862030915535557006020443277783958717327524413004231617650907649726091830006049148515367807672405637360397612074456948203005694299494360513144475880980851461520320400709387535960319350683230936027903075631279139501516334066816198831525015883595214620248915715595524019676165265243650461809120607826872905769593708681436507110214073403964981759603189911776934221935455269915822183486014462226201889726681024946956685125991862150533679088846301759545754910545328550005775255597202006715010598845383553431072718039794986831071831354341215511178392871135864390448910112113566555748752919305349873281080867151699262690962893972730588451418116276605952361575708966101433013623611665352849319100317831275460865830463668257601142064725181915881940647667317018233383491562636754431093365689353305607952782304343531238250037715279486173947246553164621903759577315397795305801873674164575344045457601548210683910919601641778822406998157995373116577251875623814912051629599624259711507139813585563009336069472732683094089693665624122804994290094225630409395981537524142001245300656756804411822666664846633067995258440864715342522792531514974506893776535673418280093864929787337849011794000083629703423295246174811187431241046622215048079191931284176883809157685792370514449401746790374047829996538067374070995122536237288565368453968265777233419267276879625512928058536371464457358418361076176390230341418875402182910457328373421435238223271205823239577036042608131735202298687548406074162220487411225168891029592778617251744749500021874818633026533992064368504825702413069768632667567447905851562692058935677353537625344210141340265564961994635194644016514318832159138221638700871184841731468561980872146955721772140101071999055460288710521710877457463124669933092661215119440716307124380087141782167412155336854568747141691670399311860269972900606037301148888144812978159794115865547590330374515400832590528176540016200371132094541822417917627286697722715400666221339628021268461641669208085044137545977498682325198869533929794095468813384645840342037650965773707588993561607988898621846650435495167558199583010635257233091162428776306161882934365819442170204190737827543427268782002076741127126932427462105226537085117176235406287823166830490911253473592461203157675321872199524676040674439229665071737288635591143539288943867279774405073916992038627789541147570278086478195887505553656342498849779516102837946941159013799081403307018260826031103514903983880330961641350369816411095139389207943230071561425439191898805170141142501429293952393230641133839637287142390364670971454460363662156816632363411397835545100305088629352349290968676016179759006910718293983032965976501904292135736887968196936508727012526349179684440094988103525121360425220548648798182336178569728849403158016947599856408196738300450191527679010014138186920366443745836677020565337757143064005593399793805558737573996440638025812919279361902883483803993373858634876985315099123614019066347541639882456162093997498795828873421825576109539349693364329941696274733220345852130311519292136953217405380230582957324691911307276140753579390632685037568246110418980850722243875696807893741502786540471455476512930995665815394275728526739791748070198651259403903191161667050861225653310779548651712594223869330514227567220265693280315455868100807310709497411432366675032764220158226766716629666253397612575387355665701628911832768920275479462402695583919375221724085408216982117948496654533774182102203402490882834912910550344640432012477667457864798335541027215130791225549021393423547684430594398877752139307686565716572062058396082698285224236694533680586023025955845584402794791950992785735324022299781270257322101995811101063325023112077915792581741042007674525655506057156265919091919702484173154126321480653434493403424721822139716449333482581461006774859897850067833154503823811396877048065604254746558865446481227186098068034226764910397965891720192502690947812297731820674173071448082514135372262811873673015523894702310128853215048080582976291406787013382972253523645044790624603951642744328020148213203951293678347371470113146822861891743015126004217790422877490593700170784015577540479070736936088108324406359331560071442386864028665708981612944965225272741096381075454325563105395973091095045396137351760177074584276602947347589936134118413376264663634730581111198463007621136122146057146955647129166747530203410572157640954428733709480002649688604875204514901079159652648768798239843502611506451441072259647442149317234077910940100611900450065127380465680399317896278911320284533399606048577737252619827014937481600568618416029996771656258265609016874169885065555966107084588106921951498170269614360748087714979022914204647669291414648505221214043415657761332612776927220839794611084597792561612443385892010812076712654234207484961772163403284875692946692595725289031417348390567426254681503581016671475455350103943866869124296655548833151576928509418487238031690368300984070091767088901510622073720234964023603344530396044213803295629927236459049677738238424571064913624935471981033908356300844976425862093660543900769705992386684917076681989307382918925927509604759888647519042248450670108370300338679705667728290088037086221409953614694053058357130224362533051820036994771356585330919320383861072390050715394781306489566614333195342315842584470852854510391198065046756770194855969889196002134286914114971736057940462135140421259502306232572075239972132939960687339695747252076949064518704007122582705457188866550305913174459706953826202758521432114433676353210356225633276328754228257982753018686446912637110409106228784596263153973584769063046089764868444768740121478956471851418172311120270942832311607078935110775846281164913514867616680083001152710345086507448872105860391468658427249964468159010322798776768667218912725386548354814104349154598244603088709755944678651915479102935429384465670480680509032458498737976778359498674655499088654664329538358607315668548023612350796831896231361291051561002808636331342058655496291109895377251705436203053196308925491120258156215333676099271426706896600973601030870883029506170131036701898038138181714444919009145533435277484838592817248520329230580492031913196425993127474401515529876557833614532820072282279226305280780845580982643219956191168737065038938217730603989627335555739976745859587209377491902601653270618398236563708530757663452469395376955073987469925537360800886903781416142430657865167632483802604008715706946076033756642312098304653727090189120265209983571184279912708839282815679239172310240381541632408594505160874144861422956882676754284425959606340253053335164403420933950649892274766692623481740320543332759200046645847658100058459996718883592773007540347450033799878113742028172334441726656107673550881797929359260107833776474176142910137114750871424471987283886879013584730696154638303784578772734838458760004710285760572192337841035998034944346481421886373788541620174363358795915993337219396232583917817799222074252816127829792562462607548150277520323581042693040570270931106510374573832681781753944016327098311108553223869669205102095077325513101980620610306859309528611320041365011308618608887130830396623568599832490721268266436954908306320199786746752146387421543879227638318324757332419606029515984919509828771362957759853548783227830674119610108020020121839232048882563521206660518471522805785544589604275413157254719813488936535433629397691574204130548341147267687281829408107341969862293326789434961129197822839729589846824229027538473476750895991584513787020122626977649153838313517653978896065019567518179878558268917148633503596962091010837702052842961371788148522717485126426042059486250357230143196724434653211442976745564282275892750732312583035303568642538022588420005334739549573463351248708624264900216553107507312409355550859644335433398178475460200412635932367205093913567288714907413315204649390887855125423436195566463682451307057091504868346912894375026330633347760681747477048391065429660254062936197538859782260173228088265126865714137525338347792585234426062557343636753844405112971213722181142554297318119761137326133050990522845451762777671681082890236160496318221204037820892326388655037570097234205689930963475528123887994297370644968853069775262238544073362548157554374714124082559348532824106284452093096570065671947355716765482698232784878542683991075990649734408473792468609909586879490599731401725522804366075789296879110011511641371300470017097516444898265253764658441486867538984689855524550395842177920528357037587899548991465370861615400510440847687479956070931135985554993261592591867710133876646145226409876790649807820474006506708494594223877537467310610257266542120256526569671727642742763152304901063274387567720072618445378003818913556776640130569008743250637360931921834103068462396559570020796668125624771853493148670543502355866435636841088094734915801292428563348738266013645761911812599310280250539043413380472673667120318240941103432538810260551681574042178735507127412436869276884573455803255304552501935397225479073932391514801392582723504097655650511844101331842409811375365146045078950432945062807230297901364331691461060001333998517918168809276231857553825004837435836946155275488781454168502986735764050030503768176965938549827154176513043676582542251883337838723101177311510560830330260771089436589563458460465192736014781888644455977269315434914537017472675909207313515001965325141346358205501823180249742206296001714937036630436366481176749644525649223350168946333017902711675343915544584757870571474839328696955052989330896745106347604325554118167084015100697299563655321193356280758100280587783027141432962662419872893048327864584368429503904019027118224549590823402935593514450380731015953916524757821804545410961482882711788850246223789230492426843660397966739207555807497345191549703513694811995582842540082885054636712425856693264401303168071157403118739328655140573456636591878409954842074067673160392144255851440330065568621485039002563794328423311776930777678513374067352310797626785774184505694905996799561283307966203803773094666689007208611318099468327743926037161376228786873348909611175518421168370658203836634259820788065172248066721259331128309911030523700086125217496301552840063905155746794281527921915954272033019293553726751486440533243224880271892154326735917304020064727382167512130992448800101207403450699312577563619112076629582240594683059452784707736134404532855701069536604874268535272583475893702904462485180599559565950908360025618329663770167563626707814157424090194753899189118432848090034492009170414210042169363874461064403198317542070039183042021723936063465059109064797298540851369061393963217139921146550715444018372791683127816555730147487889480461360020207038790715128362906886078514245919845176180378517687319080549503532438750678813496871384857388386061466194899731408289669951758368656436990276507489968088522818458313776289954066248486556147706309153560129778658072669176147076841531241464355444257500988542236863300710279165459002076479027805880618517640441499781194734772901627775843593373320326078521717709979886558901952100310300161780724215888955995274550817845141428964858800970904576989243414308981677629437968129648064346521126300519856779027406814545899224170204864628730260748453351893566320656219245006755492802625135849714690498048840874224721527801006464572066776290079728431322652312102305024572852584065946931516590998394194829796717038677152126442320371697219675316818317210440443546557677928226410059831660205791071847389740542217280237091310092476886134659133555528466055599363548419836080970541411028433468634063528841360129968213531271083000598689822946988887678769620154390958545033397381330549614457195492012303876823913812358836792922612232084690877917139347066659871882023233821234230931616346805743018540212813814936118633090710062133394163408472050702595712491997230183325641410157527246912220973288997576010636944575439735207590068766771121189017530636691111051692020365729865831571110351204272387531743530300285642167562161413236358320223553464915792250090577616217137638309616887084281325300073235049081862142904017614900548249122530953307128280700888578062000804442402279392362163664610634322469362697411954387877370007767817581066160358753379275799089923613781013570069427744417534487437294752100851512262487854814429240478929971099916732670634437658573028287812129115165834832743122032320579687986197979548777603721214826008820766931270253766590845290486959932075611553009159453217568155159856229395559768570209261216493143319559592793934990975607279768705318986842578792394543014139910287784039441659979226648924226983980289863485760635005976566521472186634763893451659119130082361548485716934297512882637978545739311601518150025324245221262586847114734321123060070234982186109145790975549940716086258055877394319329704231018904674464444092059235815958032749268712661734729572860370152970346341060159033810206887207060960328158760907858030663092057667861993179049546822416472186083540432449689857883303420948607612111732350863837689404689902415795999709930096205310171265193795430037842636956670650138967122397012784148051727327191809562303392958907304805738734829875915790514364911212491158447017107219952403427530896315172156512610514570093077274867077788672077128150521634142105673431032263632008313152156852772500341076709644085387201248580145242032495461553811516523132575758717663758348222254062422433810126798905377446479398128737352585203434082410861636437267055814702926906096052932919668641960038087928120890791051686613369242239827569280375967893448747302938386361333973546901477986885642438728044708157664730326888405400142034847578118372703988535403648176348525240619416132725822653457180891255471773998862380422395509404759120706593565467855380293725352194276240862612848674411877451384081258305432424493548699781424740365943834218413955606169008781934477348731130028255655202909834845836550879532621276289097875863359072432069271881376414669261942709825439622497692046697492867258223440989475593656514335583988294845865705430583953509005768511930510535518116300510611270102620037747207116954630089369764869755735274744089430454869646172367851206301717874137145594556703337791756022563538260493634453614775841123319593716522531926401483572518645663265733428957494628227936560659133408839386812950525915868994701191870404766444896201658018621751004415676122726589768422692691503436195030434353194903615432682668649548738586432450662468888608232958713920049845888117143395090885857285718207662209979333902431122213359890072696664831636123879314427996288152359066879384961086881414371367416647444479860531469700125629551126322074510498871582404818784767957076021479330530609373306417610186135219875685387079537216501769824286134215828780521460009397640168352043586837783160625479941590219892052782222114850370399617127527706621205483838626342548775838109993913504987315524630063792038572983556718631340055541363564212017279315469777251244194548604357210107650480411025511792479331986551616248345913950195478637663783096245612178388292114405440256745457926919170372120300516009323132054232161242652172712194883772721996907347103252688092143945968448324688083558119205690323831449075140726814229501990759197921994207826463583667792701257187385183703441417244867565176762104834904085202394549847442275168838553693938549745961954938820971067380669767732305534297763328580753742823765794879957282925834869469785317648195040194810096785300741556211068883432256829713166587741960387713868472280165775681681190772010210580485314775051752829598048165912471702339507474692160549207439273119120745200037977987248943263861679344207764062634600373916021591412250245050896500576829376456178550748661669839116779713035150028175566759022247452728824205653692856947979799833972368161203581179231049475416219294303364787893025619672549474696583247835825842401232279693232830845549379932316597963066189362176288208978567425744982503718993886461878598522321069878188815088989837480887067678699359606488172766306801650015958176059956821354238716023546746606681418974594373491671020973236339015625216124258476280967341779343451210766740888887239654779523052402432155594960260643387688197856320668403693920363385036210654817176658220684810039278815761626327346894408509090573801391102159165319040670846915814308623393321008458033704213741972639161959563258396438785699358873628340410841940585998668791095035478728476696312698550436928740524775396479937631116717251029348195419902211872441849989812948046435890163823834026228620278504416290451945815117467846387743671970414440996816772064253877065260300469112087095828118225253808094486255101211464519484779591392718748424219615209092208294021436275484269255420780713677367912317046054509237655051078926108307040668502397317922928483400693933748886009995811289772648587440686393886505227081707105795203922312621369557033592583136534863726755591755241816756533336698714184892912206758840149867470454497825744225087535803638160491071009816391146054963850309812578373196116864281120189592919882059984093672404261314520255106312196341341405442590095421305391847089658922712618349591748409750495319412364614583091021963851416365291363798750682176292167523957588303512684895379612750860252627119751585435983129639139268348962465097863678442355235387263516348231987638535685957363760556167483378165216007235444204304988753981723007968604142836952814935981996981501445480446772315881762132828019858347646633551606543008560469847774635313671602649823474629944116069620873952029874410268860576713118748905526626180891428060176520877544871798283269239085539008107506349443015650245296392975174557037446655289129983918863919038954018204473288699535536696496621413297073950765125412846912356107844614610252057573319403279428576772880953233724415637045851481327524037237968288821392403640530442699687971242815166274469358988959461172924152123102391878920288362864268391163726408183425535034678631857775345229723608250456838185665461407179684449518211124622445944590222662946909046021176260906361958947953767205152212065761363819444541401621584896403012102322316536111191616320003757232740373806401394002147326350901560935520801391630055951890356831409921876153290510683490432389361095900975667897787349879833816232942144566535436066450147510612792684582459361657344086457611675158417077829754324059679376740683192024722556251885514844559980562446243776429846704430188558407983055160471681498555655452126808185642735587105829002075622763954273034209360158145051862395786137940481137531149686193951787730769698311738756479215582982671879731811036637723078208317788220243985837038703511451032529374898744852826777055467115796786210186680563849629284606720569132441514709759898786420084989613038432455728339229582892615914300498439741049890129772254876267712686423698684323894767452362450591375007704375964298787518621845239729624967543936285952222869701316481205665791343548427468356236655789166698284860008609104930526473198750887853628174051942139336722319817755972943105235847749486465066202757190742513851675132460016880368659621489069889447467145908237226853998016820779900004405166294129017005822448029661066149968251671989598800647498794489337266778968321170571751261290602979692570729122797898322678392112324976004412992810858242501672464614421799630468108941435502733972410602150105766558449248624434750379307779012129130368925060441879954296694266976631382536588038406752498192252511496165418827508319009741081781063715235640317417700278471162817029886274160046653321445721328924003993531922507323804806306117109471826520186021537479592014988162180728605075155661977745339733497881388018852777589044725383299447731858299113949984217910669077610066969550839343792676294855654598831468784064296926043746731181658911068487172758580657234062608071455118970986794869312063345471138413017733150183602734901988915534261530081895036856611712228429424254229051253254240573481798638761381154426480412363069865604106359079197375930891581837814006262573456370783829027463516106465438410264792517527619629379703066818821069426030763196374034529866794862134573693885887432805121369408766012558919609845284091134973021740145962544924431678434780934884506533168801388658031858210291953807205606043502768545897180319836153063212224613720838926279313861201754009811355168676393853959265282867403482123274059903035594417079828438340689375417509193722681890284401599689638061020712243066331008641251905454855683676073778177238476348732938255516845985798589518092602369240367660651651735689176505285444759251934861457919506166605006871299534676946880066800797429678369300416946225546096756875703389577994323285955154625193720445021138473954548411248494135903129361647044729698541851089201931607443509510997206456636038395266165734588066840660237527273705109498865424755219084606688099243371744955841718068341703956368993185048039844556491702066411679093464790494009929576697615117814555052157975306716505180457050762486475362039521409930753068203581656108226626932139146753061431728513672064540170397512304555305858358710706375417378346832142320816569741539776398787422536842616934069955958659816656620543512076376849713332418797732979951689430876456292482405712572288532313251122038281794299488915630100711754864885470816280368466351397605144042127993060982189525432855293911446155649933315127774392113325809030422204676215423596241712981108291313036771339911128688083336522793790253818907989462630961231903894463174253184963047211922621523886922381281975920069785188534644107226820721578668748677352973903382216894490776823392765368419570568201191651026407348074568606643435365056583828833847683440457631217729380134400876266382716429121869850025381737794271686812073567149839975165571325711975241312597583268810960696586712194880611870971544639244533338113015338745028624902336878997989402172059694801451109977887411469161239625027586726702574784782817931997128850841057731584596713855813976031596100953036711386629441240515779643404105968686491017619673221231492822706646628733587064189310362618698507922268425392290947232643146322356966313882773165281372337405401769987731992279972311217945355354238376478541005998904433208091751759706252968413986249652995123951314854175969678517115999219987765994611509506689061248213679023779445716253223600877473517785865602417313191843019719710560322817863913929939344080218866349783547615222064430589809032034744377800572474351891068192430033494456335881324758408240794319864979062386683450520288379223013267897219041911067260596997862585727189990343941960126088093327459926487588917312331379233610004711421647464190685704923701830411147766582387213540508348099201540742617062451656943146498896481503935683870381371727935469588919151389016256055925688553097520297638954701332400372132218924794048234288175048838188819082986226449488328342285676345836319322630008959939344885289450091202233581985313818112459058881994569505036237353228686227734978085231425013085231936299843445627186988128465389675321423395200416591872862953778215889647343652792995168948182935115932801349752298040278586055719798253202049389955903700771735406984942541138889252928197455316802904851568129605103032581468619920338206773054130762223648731921869529497465046677570662643402779250394634272985570771174144126758310292379188587810648966183650099659887515405089412644605155297515534930632529166659871490842449608591288579174217680154850811066389572944852041515204226207986758318163741400192599606858376629827126452228375050302812819342410469749135090895707391747839491403786245321571318892743466516824176051264478675385909404642528198170937826684664938454709442246883641436356082009976477284194313865030109131962649169354208697969451706641580327145302938286585879650476708799089298227616568617248721280511129711070078469000059209209633403986715747872196961529655291311938856967914714278667785421331047130451123859612885234139560960767974229519577697480405916212253866170508520421424504586999714748806247421898152657435461958682644564754713692165749139385171376633234283156896811638950325707205334484081929782545789754834507384870213002166898625154405353116723660353087011829409180171054274224373787159686445122342373951368736165556857625434801295902385376160426585841572748100479875007571064796029653055416073262647285625682199986470751407611527704487332983261506327447568413154188585804096372422491555355282119953489327808260485946235694694170433678462070275907626577381087406023487536333911264699342189459706957699204865161473439654389696489832112121842066465591688820810949000913395680260085652062580108950536014038576787239798793236902940528874175817522010421802253143350817892546647468868815235001098514493935205436967599790701559779445500497105625422361573043875818331887088122857051762894334747018260770448459355351324007734380120179353293948656756173333933358002456353197306168217315009908428301423054438597304578208368437118894367076237259277916924377277179995246669376805790521139745645285714842949763722574570814236678014387902604010289080895654592943385710268604925993461465731169026224684340896640447400232060991575976613577737004513989470481684294549290407058749713571648931462434125325837228516750904635421957740944833697159147496595353258949069002945083556717452254899054754590899600380714818396947959327366049901573918445839800730096545521520068685937706934343312978786135824048255929782359290314298627054679708383723931160299965821189615446147564082199003040847093102374337007475481600495869309117657766381515264378544432031152953459254374160668787031888992918777008865975052887002325420762633807928488883228308576651122720960696723213080507952586042827692356167735686472236442649609310769516577268695240906342002360081368146097465815222098642925906348645937987085037756786547629279470687952549016174514542378919617189065725362335250822883572244784162205509863974958658914602798285910517754773928383454724886729302045256890290940470505831881176754098937531093849870305558642088902675558910285276709463799556260586312898209942262355204102910125413201174920582803239880007429337615384096454541639011364096969041324376435673737106959092159911492315841123587340207607300413946618883225810422329045877949561845835709249204444281826767293111848999892792333882285350205266905588308180583036644955257363289778066220533846664547782826942362562025589001873365805455308920555278264299791173205966930282230753813613682811765802486516680008309083784290392954505722076326913845949097493744469805222508081634875241189801407419100367493632468508292875468848738092125099860120571697809529343056601026234511938220131677352876832239523558077950913981834077103247365736868328162341174899355746296878515306277594817855286295942194769519448644579113929257351989057363651080806614883630927372213886849936095150113271403074241005373905865214812176783501697002699720478552168479322328674843497664073348790441378643784749500208773281987832396170216042445557671179265327751417399870215658752199961864855435406301202517192999637906237955745403934742874737215951251010795541147345136182400362236544221250413129210888927662904010596762064986849829864333462233121555404790634838338841834137489468783667047883745380338627063697214367240983609229833851144315687325945121700142655066254200915668288341419769755738693577384566868568579007329658297625393539502400091941575107245932362168648932395312691542992756751119697269096702706369412810098469047404975054004553433724343809653842757454615849874521034266233448812062560437062703773134031744787516432298982171123924887584464237605921232958142837946187846825388690681761484185874166307485506650085734020338979209629280461564658481982747572100900598395210356588683341076112202659886822616502243339938686065248043552221337227244709143392122012700154106907974226931982445615555901771684146900906785099467882054104039753751214427844199530757450475963277747103200819089791515223167432278082518823568749492662077254890971217918259056609303916825208997905299802800302968622374130320085361947514504196721634854652500620754528536225346251346728763718793872558200017250092929800297437126051777275937957585870349159655756757911347085797705102887016847211019128076379294697696560816061509438507034542449984073021989784749154750359183208151949482700642173415148712866889563788052141839843810177683689186347720886996500051838234607194115733771531815296570908452286325063327648843559538466915711516421763428903677700461840613026531666686754484932788812244777483588810293436155428026884213612811702751866936580243791959760877856832768948956772018692371677259882303024128430811223743620380070922310599234642870345730020040428592854988845645126539714893209430788648752507214553436279971177491321088433283760048819663782558718178444111822060478524247419580194146991032197532417806188158171739377927528833170799433326507439596534319644075103468872788714261389914370826733898594188022254806955109934682498407574563930930357068408730817237606300704650751712528866598744757431940124300876238253263226160701222321154218025147901801570430358996602598430265182931425555348054403903686734067354654816282447520108633782999432100830093049090129131137561344031061788324114738420882908224532207228131110328483500875044528486074966014785583830563264044782293602491508781449241799646363328946627286113062784860662948612278932030173915179499793112164516570519105551389939056985126639091255007461732148329883871602536872354915934559551419287067892085014229648574945922933199991430594100002417918962097803151743566132811471145164121753512018810014316162397439625913894569109769810917433372396507659775252228572969608494393734301648379943596166616974934385828344098495443573845037691428917182407634784627014934171409724783456972861004709974728282957641929918448238835238138838906095849868521897362372199917269569769770245975372036062486525846434976787346283004160791390202320098269696171118446443901626400197355516650350264616961030826036437176891511443160950491524635970625158194826567584295705951425380047714054757570544663959279076128377356447965458061000087501886061175311694334089666698562038773020255838400459920124430839689381835382712138237134052568584375597518572976122711399893562800066514435744657069938534660290331784967580746418176813874207757627145277953640208338083639490607588558409088473814364214059604324151095712301628319749538793625855242918304835517172516848864869221317078545645478361007635123575594527444254399675904202078636387553398133648030963254070463404821264465316631190413629283218432186789663314977704289636163388667660833931042155335231498983998928636401189819664354551924710121576905170206101316823828237147880044022453389515069315657885145834431054547789519598139685759909554108106287531338605373156249291491239199023527246586584612507236369692060841213079600028004299508852049035629210349105493085410130997929893620110602868722274974509711145224979979505376619863519361565289136585915022311788851146821891219736007068071940326665629322328173330394184364863692884558065735482138962701646841578263379315583000502387797837914872524087219939618308465508140487640596845896579764282326102163705397067280468770452810702193098233485475010125798375098733594247282064109660238128664567699977223454332139117095110804549561563567068320639625709615192187389206280907055794894662722924906745325776876076286617664236450976360229146638353271365428447599927912264817741311917837866244808982117020106268603555311012175081625093896139379481770276150244100158640001434479306278832927758638868478612919242585309512149141651010102433447066657539367993884543045484640460512470872727036714251472632831314916304583711740417335797785060764885762650123819548859572900000287607071613736591472010723452431493361610280753480821649784260697297867982451779734179581383185412012769455942046831482131210673525378332012747969884899689091334775679671447915519654493372651170196999377614334078114279687109963590527762119233526868610512194058756863721593350423899797767158952709224543934981113713517257617974844955530066215411737047593070883599263720623432671109555764451742349138229964272579975915243785191026011594551410005935031817226582151564117016880755245025159433430690883642662099447238772562136003996060371742350120426429985042043604282457452561763624608191859534444877786983132028193622739662751000748967918226906744220149444593432306583553428345263482457135470443153321849620078610090998513632943473904915861398455222992426484113771319230525633550295788666546812284923796218782241713692074387160125639683250612065461371900206872685434781878021463787119232435579129941766713004418869141156527011553353892669869396247726305280569299166477790287533418495127899533151256211872082154248878127469647295289475445551211651228618959061821490415424654383050331827543402183615783684297895527373867203490723578927898703282528653179175564765303157217897343777927675655906792993131639905859976303378900641167174046066524910291361413855117811281025011475079882739625325876983810142871319581918857269000730236330564179339734368301419209945170737011181456703461607594187819937874774411081244333506180064347417356581703449491243429982709151158131782658337554779783291536217851345465781440792348124689650366181612972955588055480510863769852030394273044979710906071278164450478821745981524985739588432810674919219666944983111145545637737361812773407485722697072771547345575406025324736157625071058118971900075729184805938212918034236800725590757838119467846879505976051575127538939167726507446943785543962451072692140811079088208013073201168611840427029384597198490318258312664928673954570756985336173195004145694677856712389157459900111594040657795622484676447052037446515500598034323862540668227735349051320841407726423821710869227094560326020661651582857503071124648186734802556609381979489076178883366371828728936792603319902608578283683622646055495323904658212640053381916290557458336613291453258175171619617979454404960443689496925123455439694793020522486727705367120929779874136161305718423330070543543042387960469065214829298139291158461485992554197779781357655669224452058058586210350195039858306817814951935368245307260753780954194831040223933212628989999243397406261932618647947002169954418729189049136271289062573943444905149345820533576465651276564690711540958500310038576750619429540949127095540982175781335021454863905494384472872012306413844149605319486741366819427548616497574122504756911938001623382584615566319920060336055366264088504583086888056107957308748206353247644599304501495162056733403929894339188483259632501064208384820419641070419493312994170445386775917747108058712196442984027711897304823081435665830911766585908665289211473966349830026146872154736709142655877050886322829262797896604792208523899076328448291209269624398434500991461287540741920839308067390402151618488316276646142259020526702429529530614877494560166199378136772559896771173343880311701471203268343210885826130553139306967931066084345826048906432369716595793040308829239399905794514016688525641253151106503882426154457910087139553858147031306350721783017261116327782551486960686912859515609206380876153603575385324895574046495680338788238583798677044697382588339959771755616717314624314257114772906291043755020286885903313829436738926361683709043330629205994001749977001016043520788935179554973165449824134663041121320228000574202124160075848741495925604753389642497073276715486564006861610486502106759247733873603840880203590775291094588761694628202293704365596687966385538030519386588905471391902631961578452966739318515583731971718416584302989404895237456046466221461424109567312385940933118280802993132436898012917106371583349680445281296279833384417257622884088992476185338288896598754407097714719905200066739160480261996629346574347479293391578212486727298538764296513660190464563186358533644389817261731995084185611068636862106825657585572688239435741564951078790604930436137478180614417388309260162113091415785036471527451824754070364652841332554789410662981682101129269446404571866918875227835455346226822359161537434208656663885293862772173010133168825149542395263635552324895115372905958797528724037252929657243921508983297282993601296399573680526537564341443983114988471923152489310057542764240241946674670122873416490438453405491482312342104024682412811596446910451975576419102923884306136642224826263497619095046952752288522080192839233262524133296353995981282835721951969591754006189823943139242410981546990137536791247219308160395906258961287008761378706260528719468242070163294900859898220464724639341525064472172104916041686232583325756932841236914868408847255180102276471995156968889016247192255559864884162419088629299123249841796700600751227289845008694555696740353282444679228383065045096734440611322192284465829366485059465214000435506312590156040882327128017823363932580444531996850191111744531595161814141473155990633677512242838888965594325450060712842875536434447845668914128286743767941139631716662737864725493157119137144287264567394019618116443376263202755614788131511739279400109624074744111521089487429470486320802129520344838337781027919234980088056409171823065118973430079775592235388714339360461868238659130272465177802481227187114196092304884463041758864968983031199856522937443366609188587576604166728521807887076968750522382066722812868297381345927162720490962815892526087145690673355413183793173772799419594697944745616616453229682199539280967869167205393302812940138829555865183948484713781307186758735701168680096330403904170913323810521636558307157952599217213501092281564497828918640157730964517023073614745092752579266014443460347730203141754970404821109386308557094287659618536703486528847542637631233162528886230137256109743538630524769544772231804594503669167690919703899495081669913869783616197567620232168596993380384342249182121610999807183531880626270478264233188157017957065994200988526361047152223915303227641575907661975898628759715278728711936149712978193828504727830364220363739870405894593567094683694464860643446565620082821999348855769123962489817227853098538342007496672591469079139711303099415697011213412601251992650965584344806306413536384562070733074271185284176342482589932467898405842830520771347984559217938505668005776544894033326767578289541029140066062656968074215011908005602936060071703746991423158974178757435858381188060836359314791837830595576806330802499348512996672138817346687618350361043555622360559426604646028314218307069512290610980065654045691731914523714287834901049276579774096220208566732374401655625945948008466124522178681611078616340707012889392491989673610283876162213847019937243754045965421558296256681984792294928003050759337157320706248591128996208798169714550869127073747257765756074466589016359308647872754538830093813970502329304487196414354853124109248018647694500906086591647101224871721422526167915993910209264133665664506418115440395143083606785326225097311614464504899162956140411970867023226507630395232302794881278955709554240703525723233787938045712059670507928136447716695819516416660763160796333631931421906104520744427908363621697453555719247157233099096168963083227518089627176180500873583102789230624885616061143253557068191871896181967813171497028709632762564730467501730309032624311273830488812606840450734906396792792360578567185356132801037281117282151605735347290437414878272707138311350599028636509473292764189123483340887355153582079438997831919666838947673828266983217872168250821336506371416126232876966275838330289048814961520771860212264633120869803024543740217906580035350515541081198641345747867424796187814981195539170841121203221552129565408830504519034618675481992067598839719245761958881248213305499012990717818023207604816632006408750319309020076047100812842233409147321463733012831643465826418971122961817403298923384849611765381855650485141657198120644658324536532643805180550435270274290202433831005438691787530224615847812854636489662556387209798722863295196267026729215571399725644631116603743238254167088708773765018072568935194011947380146117657942809789480067129317151059206431719531353128423658870020239900222098979198164392826372336623716636832487876444969946533698612103934207351718825659272103358492002431222245443440481239080059656796354865570169515161837969406793072850507942309379628573343025736278353467421954044792637764817301336176429277439785197255021068347744949370821600820787251415212832396701076945989749136234401101619926651191215008325432345992053332724805297042718501231116690243326106740897755846653613130402837202385390382024977860213912855883865235526620971932926753301910316944277959946196268182292724959526962680147130560250589372200968508685269956336261215307737519947585561835240035716031850849079575715276554959110739188131083694221968172229260437571044395860280968314733896112777533950256713298625328337805918597708368965068469147241266294747736354348395644878010328115417282057459651322962190361542537144649579251624573290746386821282463981872540200020080308118453656347745641584770121745073419049600252788692179128383659619260347182383372920400021069300659972781959334939763026564557788070785423124143533006294444926235442628715427980701364813422449803043750342304182869285064237884541506797768260566421811244605153898926713656715150278619810206208808386489059294582303375526708903207916967173490940219437240883101958939631544793498660188484620668481251289076631609846254563954782020362914796812211630361321532162152383469564186859830575179798743374948146824294598357369429734535849978159745466080984602073765741013547382423335753469536106178543189450603736787470944322819235550755850463700849114854746890433860258278132001650498174026202243577711900545847854623941145135181027381747722572254888901063576391361064893383382244354251908378397803931936216979055757722830905252457475893748180137840799194652574469712904741056285069251146649604003006847709403536253463532094658120721472844694527073266615692858720587678820349848210352282338222494701278506723558241416913407080115537018936340987363377607006939338939269987959831304010759079774146623802311998664882751041611957389259365765634234554896336813440021623810246139734265163447379244432682982225189152762421637703322130922144428799732422178977181303302364538725566678247744612751195273402094187028280101881949059948227001006938564204162104294535534072109244743539779966792314568650187333389131219423170768170342187752704013013954082600616797599941068773495341564467195415874154556188128059006171300532092377915506069586406606506662979378161837855599380013631324784969368676123417310962476384137633567167845743307724344465318395970008741607122949672101000865709703191812869734905462801871176480430494137615816818304784655610089909295450730686720205723523647121980984983995039794399827230980741055254992743095004365693489767141095338202745159734254540446732103231680485660964708219576349062582786234480752877182231270871165204007981020948724279914671915200431000162837424834178683673292861588609172734602361862601344597513512469386073374540795078938147665138201939701935563802217238050561267523466641957526396544975463338825092504943465574037144762020266418658272225290710841245557103503344329938676933858447226727490674831970365439971035535966701661295354688074963711936869457671315897290136385232687294928243537150817043543059804201118422894940010667589760123083087374877685293668416207060414858932750549683274735757184483242171654695884952479518644695871816791312236996317554627243565787322011451471453446995763282222223788131495067098898525707495065522099054960534067932769783242666809061089555370614391595793021208794008685051201411407151390976420271183366203350531140005577019590037736579827577885545804897944445397615495961157555287572514249274460028168832281393785513194107413541882517656300545441796073136639978002810612312293621062041676042147902211265654419338287842428889023164174817863768696301839807459463996043088201057425083415459720502321946751039275215540370828743464972046556593565683883206091013599792415776536297202472455046431797689771161147557925403290889691986267717405170533858115994317788371513360795583574641455513626525040577827721415520424493016331493936026203842607866405825315683530201847704218085199146835972446049193300376034384531977485053125509876875903542767875417920318263129622658566189709313619647674468786007946093666572837036003565020964700936606487149805974032133196108716091025483325408559409689084964336002505281596445184059187159726700540182207033999935784808145972643100540315404296691038186140883694078188048364953717418669622203718720943786529981425357449807165703339446048530499932155596253028180846368973075177657238017794710206914370418339660637644228923674105676253452137314540257607928902688168262958843521114133224905987923268145366900424391647657274809792161484806591905881830294616368081923725238685927556086819570873778307183487213159595984561825222281155625140068951367101404199091658056121309757119321434919745664271617734530268098965300949000378272499404965442045332937908642789015711365299949895009797913416565860275679990463889699725088142384325498002131754807167873408893720194496696414310907486754611066763612895034153415608494964820131617615072526682332788865177046499047124583399766795339203013970565197437471627149245027350557787957509108309859869383610808058750384644936724126800333118845964295533146139009626414224976101783161239278406329459091173390998370796595113000434108855305002375173863730054087061814012424932823255701896777069569735325600301600902618579591836197728177691338198905025609205014307129770600945172814598682674267139898053166699994366924451259142962745117931459917788683019790455683322008456988661534317412346968228855595794195544591699712589092143740560816458582038854493575932844828635114986737707817362664222788889173909423699533629937892715985948662275930285110550577853344234360096603598615615040443491015676589786623671934554001480105001801824966104327574352731684025601900321149500422949095983954137188007668114468665555160758153605302816379213854286573828554125150855067417169456416453365056994379426660108331387318180907286492469350179369199725168265424238584732903985614391690576622014811470726646115167146315952805358998988013212717565560083137349476401791603985460460646612201104693934659493536791653451600012358913844334318478760055898689393146784997012775561054007240479904029040634033451800495156008064342868139231165580388421669920414456785856589616068282323707753439766158665250250162784301952732640284421229008181811354126068514332048178049660337820467598496133862495700830020818537240686081205537962684269282757860514951589931403281876866280111940245279642476851482589887155297849401869893670182383773888811834873676602198815076355962468508725303168554788356212038147170172032025284393481129597794794330160016401561363944114171161309763473132617980941631333025264209708149904867903567387778192466458729784462824412584108037758336149383973800759256277091681654748016535576747112330266963173582815422798415029837087741537590297148313533311881144531998986777968981338697038539019744442660156256186864171780924581860364696312995332147761315225777176541101489666330622201321838882762568381843999128464931561306456673977630417506582225281953140545525714386283009763624679846671519890781297227094265574807834863504192481092278500377140682348068742953570610991711515646506546308896198560402152668667548049087257174213923697795157888727121637843308487538634723652431742914711003117829597835338793288145269855844684097813999092980957337598100262272803922314115914340013191802156272430154523413182332444394682973289594311406199361941341184917313767467036617779576425154999458649235620523441275795599546280207336171653037432616913389556114245345539748347720902266647208708919280191251177213059288050313137437275498460365467875480553593729710923056219487851358878536132126602905863358213748508782163116169504053428272647985890671700769162899362116943366296243327573272424104456206877246295262548532955495781877809508498644512789229608904736136927762011355736506907040394773812423193580013302760485477618795087336680418538082197650267368554371346983798458828780007386815265293816925209881998513755749804809934834881708294680117217824521437327217721965756717202203735906013758944948008553808888291471083169227100672100274482415821697535550949825300870747534704628362770934997620187058062477732828999957517746891999821899119383905888838738884623016741833673410887584952467919594365127737293871619276916158725523732310790823902335719063055345306156341008286589084752643909378225372883029515121489241222300781997817644171127603071345140672676325790694100872343983193746166853944527355820397993496177700245273602180574594019439163782783581955660221857646076393488541390115451009109684835783758782210819087784058012837286728307933198578806262227330968533940557635863800500287187685858397928405120453043161694128209231835899343429429964365400397886234642568197434453197818946478266095123062338087038570930738819965804522435991851185212635612674121441180710389541801331491952963304500555508472721696198235189008391122327430796197053912455202610682228635147289464957529056537979070892951683180194920500321428154415849403591092881455951042841863618589562765155868197719595441174004105659959044809307378140529047424400413631457635447527408845173702186743772715171804287693671601889142822167720646821986684208180824169316986299203219570799858763302958067715161295115895642685648820479522877862425525827246185799349848986347109735711921813255424943874594619669556750872866545424031916673755606228248968144189452976522951225391557971113880175041121971338176421103950686777263130663419324655092452757104637294321322178432652384143319957399864672244342303473448019049482707342424354276191569980297747348724897743208362207754968450271120260500892675192592212331029961724846788032134855020453185371703198934432842961746495066631115021692199384887407774761756381429879837103484558456486573009356305116717647835544230979430570790096556570518411599688972211883407968148851970196646317411979049244984266572051126129919463308269180262016734381214941183987394369622065953625125024913708044988433293457004936790707654330955789447550042786903243765261844763401371189698968732043158679474847078358370670652340929518736473620009430183128393072002664378192365206206530922337755664094186952653407909964903767862407663613965443873619778975689783468398323240875414324264175966005104313940587787671565882655102629760849840074275827862377900012946358660894229761233987937486700822822780316347129095058918099781065190472771172088188773921316331872738329136742039957711241241376606333378973381612351674406837836255076246838074883247937762515531272508956911113798162900090075496914040630539735351024046631096996341134243750336224643678635541068715116711390581851276942181925944984638351510400631871492258746898902042305768994332222164412643266779963782692577568690514057913272772682766253040817829909430119562869487150585054498426631935167279584288694720174862791585914527079369932098369486479923573734466367933882000368936682722036233511973444339658527115271974852543717156583621212786419688982280925229209965014501141598235866596326291225589153595363424898199910566410391067987397430961414322406105063361204112653263979997034613876755479346558102686979103990377649439078123767510453391857042411766256899026610005053769592946467505136476319149814136872132045659144713084797408978732948839637935811096059489791544572241658826129079019179911636607748822398017839264064427759638489304761170044679688019011134937268130369131572579202342260931477693681180271043438120271519965517236765256553911285432117185948690901188857582794427174441228993277652229380386896506677186494724060251699394991335443656603685026405663218460902528648644436614750999598749586808272628686539175480339046165643914397839272875465405861468949676796864675981695732277868854024853776044053731301078174400710342735491872026160105212165685489635060274709711329811015764932685392776221067462828512473968111859143104696484231229637507397653143117627378916432138716131973757054884787758782351055111452643301808465018979011474840791385707170165776178054177038320640215393616077079223038750737670198909329837822431029108794320037440313263882328379241158535371118142143845635814383294681675874137913416978625181822306308990504983607130072484136675737281004887135501206080742013463620877443551094003793097848085018953310283685811725308775261945094042822955675398513190854594313305659225334623766766735412062384816655695177832379350941538548193197613059942061647919423129791079516247917289579109321927525538937496571053012175568520888385038711721783518863337667558140666444808146004888302941164035545748758937397555985320456649015451128913183868069049122648250614823468173782301453796914204244397358004868581377926401315230921310622345280700739491470298570425223438938899621012421572940925646888477573013570976305135851002879047578156658359778295193756995573222914700910858417178229808814621550884652302220731533838865127069949374094397920279264912732318805616190726249341837908310046380230525513117046485869300725052374876156060570981826362463917993112545481175808578805154254598734642000290631251093027196019576048093932843940569473258511246745601686424201254474876752566909305721872992900712193607401263782559338808145855277531466260822328843186445061294477837689748228574238046946822599340430103781454921348000496000863598538429138402389653864118287660137190803525140983734431161619997320169578567290339058960908352824070010545313970190122813271970384592868527371860663960491256490359631044837907426086774505047249817790193834545001649252914216359474788617680605298675011980059246016362374903012482797613932927469119542698578033438036489039465059513471679369711636594753925714468159621667300995098145527093065061245998157568811926460679914925591073773223572256371207604224706671585535807753107681062178155029031460910500767588184681494496770299002103429535457673562749384429809862717943937294026804419473954719506603717631696443836731042774504877044099576375180636760797360696093958825124041680239747731592675343846500466792361920448209588675103212712359077242476534834347629712327673585470481720864782952854907269672448570048658372883945232811754788081741389367407179842787450331664539122310519908052237119313374577697848607783794848002018638155775807503715826185258104939122181471737185451019618965604663271731488278203218767456175766697767476235005125235940398136407215230176830017426277300373844092068733257923670343187988322565940022845902761472888707224826341734620004623039845086608791174429498644319010091251326759296355165984800013612026059125019774886750448710523650650664099769047959363401857943712481192463885954142892138540715892380765166622612289096516320265297940120915264912621532629601587392969400885003592228135885690207255155432290194288890910023343641646796677250081086861874776782495598887949658363814398460982867122321612875433901287851091121153634340454556197594868091460476021580493758668606311354349880347372182377265846792195660786510366117592456348769982483864438823472658238504686355612037322059044491292862257532700000291525530269221585393556020976836102315588989606420845671499720147808064147152855297850948542375124084192993249294254472453299074651983509505126659693361533393816332223550833164995250843818055458361949223346852003128126982816340955765741658794945994993183391949006209793876790217463723949986832744329140337420988821340354008965957395784207762129757200577230666034463683138150327940237289234430263049935806289020809825666762536044235155480029861680388064264087619968240659237589756602380153722807656982332654329228401398993591096005833233968173320016748492646383289018456338311075020853134045972366959284223353801215470627592052356854113743927114666455830204913736955013573119569018613533482765820886132819759667808955971179762844760897913924148386692976421954074013125215443893598996820010811287453821443800355145228732608131145117001628877596404643487793415654090197106556651418466415745355229733945655567219564707026005727486457667268869537980285930961899412974049611579540173748209925948796116831810971489084816478912142445702201635615211851477781396405616133006139772161711671179477461559452113821735323875174399712123991984669607659840782021732759602403760117570174546626946105286827394027482017228924237637403820634843100369626854876747942355683078234751318809436936586171381209133681387974686377563333872078919736350914652444944519723595328064618750070918762836297930494017002087309514744860451204013779251561190504804349489967892003972425867793669162496116109694174378193985612233484741778474286759193328852452718423813324194169831194276208893492560413964936293218500836526882081350941170425951997989490802768313845395095026524520413364079451434151472179350151803815099277863033728283741975864115256463422090197719115315666018921415171000674342714538592531297296018421807571464752739074233488772557551553238309047465435528726320228767818010874474233236766457330844994585575240204724683380671534519141593222065551171322883297668220343609407572900279432236279086014780979740232480910571095453530119335915139707233209299231026996253237485561553838079977229519749975953426649842759249347036829499107384694271130821740897448209887930945054231134229358029918648645638421339069897292970054470451526707695451329581258242429314484884055140405400360614720524213782449358346376549490479574360178186887923453842249723786308347549827138539155476574039516146111526464462436139158802297585197740482001709148753020146940888450336646008106300158289112630229096372267428345092202274697336113688817154534109766588121120369440401990362309119572377361274608193827738356030444084312448492282718594249108095923619630545365513532805727624337404861777700254327921046464856055714603288748240889459949883952329972670450341964259758643928749129489599768704837199851154546549806935253613494037159879947469872450195316908765434710312245759042651939176067181146146777345412760710475426208526355490862630455948165829030624527385462058488100013181900259334105147493772363604106655381908357539785684639994421526719190843094315075024028221291652582428910567249139076282677686905418104589361240686532342584881969212608378648048377679577735898236930727033916721056146266895671650097171051670946143298608980417402167908951366022190666350680690673502217429992957537892891665904599305901347370914350622328831871962936820679750669952882626633801815402541447359475134228666961173064998872519625746799128884351044932802981092507010686556019891903112090959914109519268527765081547164307573880275623073387239759612890348095278773041257337136852776758003915964673995577292844984388721494397377570000924034567072503742446229909475265539098536177096992914263919427365289303240822027824061141299392104953134280488532186776615072576628089220691977123443782777674152159729520574685518401880096680433241699207555411825742859720684757144567279462303905651475631671093926980851938395920527634284546991109822154549920367159273953551391960644949391367876900518464659017468036716641167984993702571579104985444989379165499623078820331523980529435636148840009611737709055055155382325369679922297186503184948461283778815317328058555561504334118148319229123902852432315217752776697250598097299573797757437015749414802543824012528198170957096720042594794057872299348646879250608430991362647618615292315618597010127895443270287839917728323848045010272210804086146610955565237339457584543759644346459360554484278765165233428966133806909281000655943300798263202242913675961998160578011600915119551111737725827423685952377649483392250224673277311338221154991029580939585986750972277584157356011373564963536425342626785000749409357812181584960463892693812965178664343391922637095944041192247971830520384749995372930883114118195061809837887729094334674816344728251062459906876516221653959474661085398650014273036846522075815708762800445528881080356622662901192025286892185957431190983702747580063079611103388131889385214495385055952233534733811827081846829811436586685492613106970949610067284370408087339326113315551137383973147833413496362640730981706862742376424357407016903277670894897137879134274541751336385660705120005766930346497796685348167004294064638247279527838382235303085872633701458598140818903813015026483635790100946384247771869092464270824011322945161559491311130406904335036247948190598066501192894643821843190882859693418025870833995287644026704793576247256367913186187140276126171403904101785360879359825059950265086388919646396955200027651501621904257068209353452133034687183584376072686316568442713279649394708410616975955144251569970223714862668167746549962707426629205204602499932351281859398245185117586521157418474286014493691809885156109685442765646490812162882948076741215270387629227646419012795026640286122483775523778180791988551787421972921369038538224205236099380150423025972451377417072825045737370765966560327274474385550544248201408746445475389341705186411746030444237433210208857446311700325888694196689386702640791654571483241745136755316093017194810783939352549112595646030230770138128166244889779151768557463752779771710519740728715786858412495848057303929832336760161540269952862916459800263494016576043684101445331190067638807928142410711453997206589650534807426375732536721007150228640557502515849729833226977245737999162015905005705656788156391686431878089525792965931739900388703041125847535468623883441630072590309531834960344695283197743201794056644985993065612964038960750588766512742298172564085899912724111796880305552566812051870026105353838364830111649149370100435331798405316617148603634240017764829417107022387291996813000507497905137937109619881917081870493658388119945868723386103634742753574055080330299170654822529273011352576100201474550903773965712464486019724093340082135952037622881328520966004061600751390745609753806763149392764468587595802335136948711437767409395917004533913369955649697269937432452207428803730112024310771748122393732254940724685756983867830826393756804607464797267925679685186658064991984629515471554197315438674270373231884668622476843202044550672678126398906169384398150111407741520444180325450792038453485806838885365738509877254326572259933377764415231201943334016870792305784328851873204228997209207750461772500641773044510513860105834635296978644494513007969438180525246684807825141320088097664769033827022586328298955402220793332398930091125389520382543738175099723377651504859692731320658717231348978146838717443610972480482462213010993626179777516683055748064372121567117598966736644530407140630718150511347374154468438223655120182703831040979126491495649163571320468474544341155444507202930081551585216785557807613798477948277431431580254843188757713481608284916024754639785004848126049517044160361512784009240163810280323948709578855555757028855789991196046117530917614457560679717521045847620714274924143231480054797995227656943513187851516514967242927993958928778002197739262903688054402169403843969265309333328220230724522555075320249323553296985997551818751646612667958910035535915036694603266686695389944278154723835840779386537447601175140750090812713857275557596527295771813993706894914373017768616664259069097918381540397512351131363268305958221082381529490750162519411364222707980428766892591431339817877035941191956143700648283700659058343730606553215589068395195431987432422426590824937906421843880159754753659104169577749354150770675069563106780982098901736520060708865489096148223475177232463841146691672945907323164672970995075257562400345220750100962578655503021726608623339184792138012345385691315265462270234577183107354118081842287792143365167620870390713570560186162320744662974169699161128255469057637076354190946819175924224326090259508366507976050879250331048468653578006115713640218870245492301097976308272953862323520481514106345402801735611479209931542444930950019192090379871625973967204955090728127350346473413571425165448330319102353821089450726375200334198432012686143458798472049443751106638421923650891333185480345563500493220843017097748245909534543741102504108291513498149797451670600533327407971060916622137099035625386195305960486366557957491460373207133108690344309779801787998630858096127674204796714625352151896769566890972376392544436370414114567710320833037418562860602669301065307084018513646442072118212843256101765815790830131814648648918848457876723442503221727160579872995663546488529853212147440785742245311322704250788219429749271538314675444085190515364374075304635546934297643000261581235766003518402601666152026726320397940776608215570922396067993562752032829141744135575255812659275940403983963345000003108588807104674938132446158128522219757051216376622632938337383744631265122380462801102765005950510122179286648842314858228929301440275698843645413593654744979197085464050591962584178033474152358549543691872973570590215293366750814764450915473330454657587487232553483972781029582327168055499466158968947892743310670977679635286593548888238715749709175471160246524741019232866748610984977756941630939634754511748255471752871488097800043319368603909002885784466442339104124549236159586484806855894894237077292863635958722040544187299980300319776103986878200184960774587151969120783123586292824233846736652083668291142647746968356151720605609918729768909893403187048999813623513273306866671618683812828774312520038347497260325006821563413554824426900079289291340012193332198246558468690900757087673304735259064915628648981596502719864178121674187807828679819896139856520401622474047086569584767610182837306589546476106120955518995670183095973660444450369125706322453321723881888584898166548091581035805901195060501214515103438489594890876438282680010592317777474364758479781122432905992204514388195440353205707194729836880889190856640597318878286230626835439113746280971348816236809192520701231679612964835169290810964407785027067662152382390715411362525030754903421767584022312707893555951899625607357635244780282199217242250278687594102737652226019943419790278327829083744573509652732479366596990217629952562698487801389094648535695611479113437338060123327451604729967433381374535318838541507279330775321279776709225011905149923516127420611193565232136883484294765116312571218305674937530726806669755293670163892952525266504405456957915330846927992976930077809108979448278231949897679967602194107942085127390344227007982285956864169859465205787162699252426562089727036795364164025916104803297293474962625164249224719949163337040416516009788079727988594889961621174718641723855890650846252841362495016002536130714451626913194313368506549109408306682382954273421989325460347228473307726293594331787664227505631809890337922049097177812097945490061322181640794285573470341530806377710519912477985271884767913498248324086524251228085026644667212626075397136956506097485677716174609926091371716609334870895602708794618583910376003646641408483005354453394299823277493696463665117676615572391320121114273628518556061630257566004073929715147376391539122078627851936720010357626189569409874750624679695606611406926090685114656563642613892185430996119021168645839889267201302372233150739874300429094857002732564475991224144014751663988655926981987451989263330166756029649189852984173694528368917537365652335491263759487141532141104669877342135061351427713075095443981218785509668919002344170945835437072634145842305368137426977133901179137037991148966197553872660368366456520504088871979591704318698906508321682696638269241620266387577005568456319706002650909551870164853766556285506694078685542924151241097713742836171911490542128873140283876468848843477539015362460758502240557198105057039689819025858526973879893258753985642612099009916545491877464317001296259495348317756055221786582733274317476389069244693253937033990507913887845445253084983295043185103929593913327124088767809582995450746974100160528362811389751408469705318398300060139306845379235116191051731714064444334491304361936294448509749098412093644878525499571034236348321370368509367476446243152180250311586239503238210411185254980844929672351235978857753683435637510015283944178655253131303435644174233867755920144354280506428002406314571192853516417980547989258846574252931758064436661999969202912566415990020987064804119893884232106409894705763390232247006625892880302348354914754821856234717245168308615969886123370827795405895325807893661697436617665174945678358496494037741348920183507357718085926124024559789452341038906612875202886689058914488011413894527248624643015326778956128810926171346302093913027242268405283116540552150863909214708880031802985417228076158586467651940243535510808090710082722126754464689017255287092016954632150682765125048443791386304716075906694799574516893874523633611579594203086527598692198483528819900624163361764023757814446567425255637303301115179015450919237898820952160225248368486156515693595463735439089723222792421329577162516338066952923852359406274458526471960217491216011978824907459159024192773306363385774191939188165522190056910343688658518017642146241434660650133782733068018751562217429226221823811995071785413177054725802771333663882595595104034228680173753816044441150414019425543781061922297036370928675015473099231200745627668981737226964536985855972282268676331500958129877035434974348290299197850799870270965033342101286537194486986401260186331230999548419336757522894407773806780414759241809374752348632108085063850770270858324720058931143272405096390611216553685171913535157165801464100420960506052481889555534138404104068141395589272689422268267279711058524222082461176688039781023416588688280815743222385496971974599877869715543245266145927854406471179119045223113527714151689119717312316355816247844849834582667420174169308160514023592137917317543798022240423154649998795572937621469297527945299145597349025528253518235337009093504638043005973654104083650652580150522103312681279234007782637763903123943605835807191091801506808540616074926511670745796986867095135658637087821779628506835138497508529018011048383347308973304169022054695504129755582114163884369586986211127555821736380944189478729709208681246589533012262375521301769878296356398003174300391424876758363611443112372107604562058446410755094478646301158913525250151458136580617444823452282143637070443376639126455779117976842351161838175490112083971843818418456090963558974807495376576250520834429624486067833778671964574580155989052252938680609564325184246752192882487177790875922511387409519874282907480672000449700025442570550578811161061747877980028835796022534960406653681546933021280102535369802449443029491548166591415336188102347207301731990702545032114243117923480537032057256991410700031051055524660419597082903730787207579622011412459246690615831299459616319216701437184340904396772495674693927565465995739182700024799462413624104006468616410986157443536021253758488532542770263033466389410867900360763486241500954365599607086389758890683267377816422020751778699273029493724806220231040185577115856563973273063714238485687680020299136208895871088066077701503482810039233944236252920699820431189782337170085680456600617820923657654879168404598100470700297336520521867963107462236382605670667254429049709921682980982343889548155661312864018659089008069393181274418038192308912053943832898618304907537652848068432301885325814769654069260151594803565772286076837147476540004790576501323593035609701241002769494547049571415089449672930945372676976523049841340493414133988251059132681826271707870776379827816392243475772933489213097434839861966656597045887843188861157177152177234905934217795089125656947998894538261326790205689191890659545537751979450806144938614799225089914325622960295687789362531211310635212599815406653937956689204998641163726794410531480865453476718868429059088502396458707099848424728013055732478878344764452275008040776961376329644859532435616519059753855477004218308305799552649740859309496606201993108383854510917098684027754546753425669585136423373092634192401797281949807645981053509710209086838042825863041493535954337433011828684678838753879665156730668977726694177808009124681090336025114959121737916370634856707466173197763317885597055301576753903335610703926335501531668419748930010559202861862960130581573081377053659307548227880501218678622323774976917040168993112032072040529106596256012870718383509725850203247300442783614638340335530812998021890663900420482866084123961732349819046663749566152313324576715024557464884401114169014420912047235365335352740233702599393513137935982381196008500130309911022308066358973243669162123967359136169853036672695325235517088171832131165892401996322960427838803550977369429675835512843295986976069314707088303120255607232601393181328781805564069940674590317488285655234222566194027413060159086091447887898138191399101215245442103986179452267989219745115169633164474955792359151238817789505362319513010136905267665287540511068608962184549318744192749769967125300866059067290765313225198174325241865544380171978913261712193820975399815598824556475592093252647765008032089237775599019883909908031637412465317002336739283315261134371423070566298263407928796981907539971208868059135600416733417935662199676918880883468017598429260137685583551076508145142151659745399935607857682894079178035850610511172885058618671860816300545566496491672427422785090844262916037055603742292424620269718824836215675018861608388845781974103291514666347456536482161379737276181903149923669466507112127116971869322217888861728815588555785558501824523138434067148348223602734855057295673797600730454730502641194839222687615400832164163081289185908911311983888467526671511643947829896459082043364117359914409106573962300065120159075454491467348322623264104825133364571254335294470872338223694414106487583854809455655709017113567621404862013299722337006164361495796742465647242232112939830394618883658942681198582653551270065084387598878755665719191712382830987099137377301690405288743699409840158777224826987356916841692313148240138398557166964721545153752783633400443157857781453990062446772406120837321971633817844767874674580534026490915248607745778051339564545277731648594210714757638267203334935952824417674588719111452470566533030571832958996536275613513103376208520235497274991256724483926216248131169949589739233392804298409528000970744563088045102988067148444725860166574094902990227848976719139730938602557188137942394343295527868884014534410991328105417939759271533891781090223291616656280159024285825978957713397029148487865471728694479729821413446999276099355674231847736290149209181385590681218068469309031698572107372758780259565965290435917832024737887983291976195865408537725684187038995481618258805186971083494927255532170773507603025681939610763760340371544750977124469932160199309907312365902174039536182418938214656174714204653041330644972257104132968526690211080372996048431054380078795992230394883390876028477199972832090479726012297195661434525206727700459263884510937699243334153391488140463321171718810809478311162010452500524498566492658845426521166384110412721935536760918040767463957362766645722349321476746527712770334422788504554604024566179108331073393406256383449871118132929898889409385502088535527632044683036567525783488026367231078735701145407462437705080550623271831204048219429569226290189788590651714983596275734355524474380621913013710409749506908242100001489578750440667027414796668444634307164822337947888628941616511014573996108063443844005264994511007145840761152977158877742869982362894010953568880557101114390040438424791005466735177557663656677324697564412377929235095068215388219848457483480842983772844668987593403778388317541633748829797109372530632460317918739813474333321969367248640043701325700487270560077964365177229059846403080833466051879450961159718724571390371675899734918697351687423560788532401520951222132445815942950242005647780497779547546889179801819488158768950144185194896301532067141278945755638691542287674756359410880049442075093367827714579575099892844863773605007948329114274877883269911773070591979789270965885409072070361813096262066892887343865032945104990611177392682705474291235401039074458591512164770684606864839264023528289539026269642120770468207404917955114268301039894023790170752682138811756865978756708730627271440848672902790111478054915590806549604524095429741565922707166529893279879640841395769134524478141939795247958732922507213055474135025286696814863758412734808217695633086684446867159863271172130091226071112898542488404100823662374351918539341394788181895325376078637349717511913150885685475988658685892383300142104462652604886081120338958684164154262720396885979662305064644331339940496015274930876456695091264422370857132598248339170604759120710569687030062154386507670840477527681587902343465233180847244744957007198291114367906679195225566325048688554615881542807950376273367828459537325964814372968756876169112256324353181104004071120747706963806343518022375200673310848023730310352060723380386275658817090975180756643952065485657555125512454423255736927767252696585804870781858241836347254745010050658516399000629063062705393181639059224358169243620244685543494868480169077232770170972725703150955959626212455995217485289762198901153586219625078269495382955810967298076965915398031235682449805843100433120490535064800945749891662106404403882471499658455583441118763512349163783415892761604522079704004080899850273152297239942122105087946006429457951717052528682859528016146388737513211931438595833550910023298323003737614330689371427274232338643889144906389532362294713831143721031405180010947591725957282669101337413802312519127632580517123346125090180912120768927842064430867611506546347946808420423092150149546118612213610078081956945729914061387806428733929380138760857708097833781171298323523144804714580618296646577938656245226999182232427699352328457124877413454229638468228025341977802314711128232709388108636922475958079258930189373638439903500424004366448492701379752261771850638338709993545442930629094064168162241320187423429119089167690212989866327911190531961709432743605295611057760937487811516113700589484255510212941740341701457599144018268984588930494817196914666934470223388908751463528766234727839358671506651440803047412452551297889513116488875841429437336403925346589080715833298434497548630818802300650705213811927753692922595848461562146224721943316305673481227945492442617487207634005491820116552637281810760927343624045982082558061108518842396713337104600533503144853787224881365605531198199470507579445917260996007469268102246197043147477707834483538592506546648695378333447123064582604961376396792884682142353289199095588995464590907587261086374849922755932917555221960997933071004630308842762199049604626885908970369357511734942920997613832921989638986504585778544144127181877851930498314589162216126708260250750783253695395520678164290266564727628622788036567434692727609437854164505831600146095992363036836735644371709175960214372139604922737009403883804082885554198422688319713972193400572812082611264483917537745216177073765748524748650209160919230217702554141160436368265842206641239073325854531686524556366591905941874912447819112727830276133159138379477045033131795879317844497301734150256689286536093191711982021689579281122400123972331091761138336075445498034189717464042800960280222803929950183617253016007960530676741031652582922943961707048558954559828799668299598910287077090935394812846018525915290255213143318721894461018074532907977218862625298624152618600780404839261917067185499071484644397988442496309609530501088640065125852771875159905896770518774560205478387193422867249793689762225723343941159466087613540222856624016031327144346581398013899795579307305749952023052484298117908278363846515083089120596495322807788382828323461902771186787035439531743530708080923076129345216395341393234005708142817748786790060205255882624839797186853759081106637244703421968589645968985593309510337015263803653433968340817298900239693948674893387975337407049583684643006668422030916082225102339294821851819928723697850929281322622828325503934981609449959696238486771815230435023749509372106831313842610664744462948667714777203895661478369987459776071907111821254451790561933008167678943028354283861838083203869797359776472600415928340703142990183090245693631509518637199302632708706364400299365379786176767231237798976877618886981798373508608191860513496168799960615241761628348330997547964494476594505104289636910475723349950048303211855976513038513342331915874813660956903904933006948217731033334022142983247816296429695934437901034069658072246938252878580332665100333761978843394696699241574374907312225781068286081180790946279364041464552041067172625782347984797907101893749451296785652419397946570755915576023173183074270912320399389055889810476861656471682620275570590376634331638906529880281816640171965418778484839236328466246967882946675632474869239555552951276744121425935643065401105982326741103790494030083826831362330236225607243263734013097667700156894229830719779352597389841896452284716573678320614552830935206730367175087447195479706341586502185209634213213285800169768647091393034392417288353670052924625893321491159435065845051654280371374086790300653295091296304805161469371716734252099007457422106215565558616280060014256356148806179964986635824975645780855109188513308023310651774445109725802428700030259078677137474620452756970687336426199858746680606766906063473877918211452865198578777958893623633321899448307780394527642299307524501763490537647684674958064570654147294396859746019344267042703058630796263826197937745166106066222718077305500448130109736261043353258987757256211661991633888419413200495605603408574770664925271522805016673657043434706578862062396072700377706940521243197055907249621436498598003743858106852940866268168385018341272386034816193363356167784618027295858871265026417719481317637908509296101679059766004907974853101238190387487919934600238309912645818155224699114998465854656006792596038120619844876954966818958989756589442254294465378556749534350328406549597431287521454134199205180257121927862316830512697696094120852617009557891439707012403287708004566958167393219765797128952253251580810552761595064186632172402747341000853481057842380664419046971815692481427925720200448856586000436747835923895915315763160847187248587748084028225476058223920961166523793501114492585455719959969307065338690000524080592550959841011252216689225595300086647005367137406189315446200109075192831852239423920713024558308409864017751180729889361814112490359220626813742529653064696423420065984855619224769533399377043006031300527022986550146116768634217239757543936974299715930337419543666379668368292368787622276846875039902630786723189031111407586639549244775408641561286262893922828760608736694982849703875557684025731597990233565850627102560563547451067303056471775492364421688154701743730189568782468674466007504701421186621505656283623606284442656697945016779484765689987518232029786002806088215478865555098489926560750231198753178108893562812217487888917533422274664133002844231131909176581081532060422562656159189107324348093250613780536699411772566886365171603172580277692725313901740824071015398393393362356469654752188733604617276201373705962722609633583729959399750386179926545801072373099343248198047114500796498330884393817254703864112743300332891124627592366871120887788874575454624101787831656273364877604666402757546310872808752094244453397300207506512951473453466970576555719122403474827379389453179465465182049600442354363780102488363589308625316764105698820202674004136414073180674215415773469922022983024586030729512045710199506758226798775920133006131670230950001654825060079889242444681394646199884471360070975661767134534380554442603298757729955334850268926920381811714140733734087573343160639857070844153398079585296900237623694113930681104005035655203573080000455978782112026549713658520671289133089051090214123259070860353779596728145146229146930340515323192878111507677051605514893010282628849113058127854673535552891618258037179478534501937718718391941900699417790610931855889672061628371639338076985668120855601687658256326886259099977998826461020628839591158765941600262877374697564679196925054160083579489768285857708308481641223414475878712734507035167914472923249033013914737250358180454091673153691464005064941142335810471469936791011887465048652836457455098850065700003473452708839255465132916312307652564536995657245794199143588574173717321437202776213382356769602663575059360061911941447521026228609098787006411329705962376781386908980629875500197864635540073233487315962289506795038784949593524070382048224023213221327483638687029682550655580185086463620155681593541829053251704075921362271629186899028793448737889387802513633260156104233297826244927924962192757153778404840897489511015998655780339813080758583095712309123162539307397199526139948702256900781686343783046271648663860391168997701334529596986103335547594784839404674153785322987613934349857351452258438756719735487029585369253807559142182955567630765633672172472052208006545308370132904385711413065541578522641475999963037162529381140132849878815537603816191949538505587889730987475170631006764018299640712876689990930655361486544519798475970467197208690344181741990474799277182972250420306546777732120609625338901949776069161533355770444124748910088209498709324820024849195703387478144463196089711378180901558417215433295509658638101505830231229640417186840483014691364764190425918802107996476270891829322996412795892487630147976118143438726048602216212823180070849447665392011594825128519172426230227935811007444300727501276945522612519353761631939212315114652815854610547316553025031655483200170461063057727472009795842584618107554713205330175119763913260663424160705859209343684204512598456975154770648178588110201667100217389028296519552238069646412217385094212932565743429309265171026012117969991227765566783005552280513246428836557429361055436452207198889528017239032013983533651810137639958855042900488322771658277538376652867394702452502344266234522001669806677029040971765506613541551658198922740207849719369132868934701866818017999535027941933817402644305054593618850510776215696715198540266102015354385058005779350837999657178846340727664901652430174538049541897872576427492076710979018593251609963608693171087224502946268150339435623150994435519490621102160895693699430760201178418734642478213185504721334933387942039894830722209939965433578811947821694174762150348737669283271652247606089109606438976498402407448415943490709976693289978800783772677845261834940054791818857346561455433197889212364814644482582979749175646855730849745258048269271773978114807706952800014866616853249979072967905178701615419331987457774089836983342848404946505230300514144629344602055828527746420814508849943786314624093420672580717294432627191638968300964231332849970707405062653546647517884142877711362546030053761956387185395568096841800839594464507722487998215850695602668722572762111376565329421600109373735532195951188279090094937975206198486058227360695721983080090907190438732414865276136246584727440153354905642554541807383075000793400976722442291913061951007590147940178887946816173966468757707689858980107899102365007766679967362925439829248147651999830100976205376423987630315202639003078791016350317971781608526392372269995189704480547841390695225122745899116612584350768045449179396280308980822557532560046223534949516524726011004917866930284380895763636727187632313396817357702710293679980113615830682581297887241702088908400310942836497980212729436610475357687462690053511682180660145974095611252736148721384869218934772521100999189989945483010452656932884574088096186815510460325168882981397802426019685735785013630739170316000356245901974984677001304779260455076457553138955745755063436913996359467051885673472560377135660377924148346431132358444921898602723689860816880917558967574032987994512657816447940129286724537289540258875181300970307131189681020675219794590262595558806813027292938824418861204714232586140434843311550034100156284321187959345397638033321943138488579302143876917111667127238925484823807067709572947250106198075012683759415273748722191310032050103507468390303378327584840478089836051326361375335956451606543416323373224777596853215187349501140067061350082030761749148696724512947249277178344863374738179194896075032396090847854614519495143780080752192463004572038033477434012022302715347905221847869618318553403721485170287581910859991753816211174088761755973311591808081239184758522548511233232880984955509820272790760877670599807306472917479927645763837926089640936882227556163598501660626143947807697864801363198854254702681263147534644601472669427468971650487187645808690437235664215429781912631540542396852248935857279337062131794331407130522602881530055585943482983333381160883250509928302651737689848980720641842397198069801269856756369697460808102456318271471434951315649509001075067150697091692806361343934966265884077149810094295041336670530048355532457697007072577249746012978474972120141903137656740472918686853969648762976940348431671079109481886669367770586978898654187237165668956893689521102287870442370462794097166701672057399934978497905474440481110776674724356123500887202217285166305323075986073578944427493808084667183628678334098467154410570242791855253462213632795097869260782652836101280169831766427887492864436566259904374786165589510582891478501540920437424816502036125538564413357020200346711655624546884228408852033764559994608514238473622109686462850569514646931862402021149020453615360871372367712649024508970449716285371748596744440931838703090690624685817417887907016548387079699053456224176112640950166084966317010325699150732385719191241237038140014711455444104210353776730114637540358566098497241268515137461572183964068386443548534518969537600483694314480676540676253611713541085728677437064487953605053230691114018610584083353173984540808288142344179954164780562141312790671863613629577852606323547180177259333090230941088991446519619940619413573795429077299652964538700745835811104756237085785358977635927498845679745159081855925592690174113077421005148407764419731141528537277147975814284303195588195537999756746902599302263050129898410751809455047914361901717939761123109691634439751121000891948060382478197822588559865561817382042814840183806092418301398929255535967650024063944850233068371770209302341236566514875165237179393053524247431502793008002113600885857567989669570705289180609866797714735646418612360194382353097045800569044572642514679089148734250639354280455403452962962591930068198072176146563000932915677035633783763603493552352943437379037031657917281146765318377918303133288602248450348801815421102923191170637132173535239781053550351780606740782748161745427792982275333111220288529665358062445712271004086123489732408575767597170248723218609858335017798107282696460356677711297358754154593622875503354968015258821206951372944497023117225751679801764811819189621228065126308563293851397759165935905900365550160957019555493945373300847247076273297299807724296674064207427703059449207995608067336706074772733672426326941444216624092549391637976225875396252496754488637691247085145203743355966951787308335033783602846449813512060800601039610756204303966895436905175408071771491483135462430037326134535616078587941187972819911544309270469683976360473188252730893442506759015786913320055222802216228990387927093275121765199938750637403792944489653147026591989935835178236679693336471722086713245530203245512844789403117019505083754289214547069434925103920259229751938481789270786606342106852276581764905181975808330196818345452262346837199715450279313057202720556651611599445146381822944963892496993929470583776415316293936086130988446102561272618522782242397312920594612525290662330852640543612381105102278155046232118268212405565195458727242446474544595756746982288883207566628401629950877221494581974513997645869178183903580077549496871046197167447913121280183551675825701093810213362030658427671670867030917062429822375574045863881239583199752362146593270935390869296877331657910854719646123582104258529116928590039674994669214220758385118671037315808373837860928036403786976752402969911483884966650783056036203890631323564783949036978832216070737553103992045656233427677345864856246891224531279163222179876793413621952651104987664086953227039835631021868432008668005888729558981181533834964122801504362139024376861193657456639482291017130189859073798212602676257139314271794458429341862762658047563522039987962127501435891383498542954640683563209955047403122140277006246717854907427955977962058122712359789243100811332754665460472479439912903791490307468067004322079980955595013968152370951228888754275109031953895962538436990835595961044722524896563159899684673947433183381657080464551948761983753395357215348875059086642796796441488088838012180627305498733615298405842454252885667278469007601583616826216889601846256798308029183752513584715666678812193501951113942146018156953472077518940412518093525477919182959742341387609336314797371424281827033326048298945997081862722317266010249717302055455138077553520311636213277328113176734344689852997254147464961769333565832143186432378566926355948737228434294569531833488119799841018158154419990960751494330263613664054409071702773263456885097140171299271467350426278023004043225756175786130479851930568029961615987256238089625272913932409115134197085688376021226259561690308662171503535567512506181343144536281876267320894596422543956652872219278863794872116119388993111015912966149573389435305278632202513559633464411150480232993497763818218901376136483556128861191823900968144902328340306100615217211365567420223059684360226754009916047400258808098659093749499509261749851980318332335411591814312133891320893816056312518516534054001835009739419968207283323751887541421566318623353706947071075764718029487479036747294080937482698912051947593537152792839465972891193898986847052169392003210663872619330060949509903293216865589720637716037590508242783464283984157181922991388966786188925395339416243939275419772988841662270424327001027375823824836552861661138511593131076203507614740019593777517930295773182800096908453338002295114540396666694927017017466025704219739475323176579884505601746686133890750685539338847877935386135875312030312586396230112386474135874795944604320532361301679494758165174176271487681333932035485028463593498941880263066732780873266203960887119698173427554981377193661896817928811769266601042775863692139648704656105838923466213853892994706309484417216348477859920241771764015493985181422251224692896010388040225083236683323797690538586595103567606879132303572228123541197219877866945040354356492685022268565554364232014805708166665611069217670640574897614508854585932101837823414921189043720286429184398071234617722716748137195148988891154247343951969955286990594630212733586180588256741501859628031050502864356619444282552294994373405249350721118382979407881200478529657944224831873811958656294885334080718065966285963053969650067125322251382058787747964612216428581976580080229566390986369377021685784269599445523059904213736395657754355561870582870356467507336561876453265457497083876531815178807070832903715449902940459772247983024156969424827528894118529421113207467617852951244991628961684773853910070403740738568962700400748017293490726138510697299563213910972154285470988589114878741356676993798297718282712075161882509072781581138140420306530597480038464799500066042413146635892260550812479380234037719789395672408499434751906093248189012193543504200356627368065862629796795903482257721645610012021418824157439631644883998005660646482601430298972955782096106347808333107829227323415388883663945161059926744146157376951994875166134289295153274434396607554627231857262804376636645456464772445101334075646335778883954471720135217387075740966468576335180611346675054853273049212863389485694052004990961280866902883597895000325924147345966556696157713320866095910812618131430791322296676852565444319344444500183663693403970810450188150367478865922094664998289943367099519748957388478200306549730020936661135593902116515334943455227387689765809197140285950958512369631197487326148310575043767783860805612315765523186195348741166535311391920054382140521969771227220991869163467478758273079806635024932820704570148623993444153539703091039363409435884096739921377170331486110483000209869251203987036268643065363254404626186587574349391557775463273658067398803224069708350011891968405387430078053687075223308737071239151412132853280683767958493843316764112253473112401334772682152664259516968026236189446836331809054720200338399788140086475742122920671835985732458101017136297448973476603470971963030548596150960966456979895640211710801028878207526412323231467151350556274756077860662407020761343037541951302779078517714847910971518504006824007873085963004833963519791441512532212334548117508742543188905990976979022665951812830208185009227390089842164680974668919880713096728221846379754393984651352505881054809123607513460264513966231748567185562197062349924785822365964728663365399533469458999596244786674263001752274909491655659751342945395411476098295002856146574179671663626135501115091891446401184997095626282705107883488042110863851633639885984976753528696747483150115088874178898226047676760952072689693723247986522824645235216215815373726772266369400157021522288774507146389206869759075723423332555415010870677625331512538286536766496795261802962940161515898177019616423036793790398000966150525565498187615979914321577212355136181857558892625079342249674998910732012313315534364974008003623179392788024554556049612650536771163728580438797630190359236405130687674892923526433792361804949715000519601885898478145157657224686375748672757445826561556837894206634095942857896495271573166594384366607713487908376083413038712448595025771842545381975411425988506240505587140212439878127484504484232650264877472054306852261657977606661302330978778594867181777956807587853951441447135367320040581980054961975444914881117623370592535511309842726416850848083037614824718011605754971684622373591407316598315853641284363299391547226393920093638652909157887004219940367169483100083698879568049462841050518879630602451191219357533591243752827511048299475173377538232392437037920950405799730014222293108326997745682681465612183755009179564795478893230816371058112597079916979440024099254558671473632274459738227840944804928817264315480686259151673266619824006559161860233559997335829599739798228211828960607991860089161848538697834170660900633560250952839918093869249325885743978531551141964929517616936799467803636513415498923034595224525883614573542383668806857176242445229376639087214872885221739012476927029352676557303620571453812686725039348520718132920289484979193345333323713710752392586759674386095506436901500152980702345279192622718234040306116113373023224249332425253287755982995020965424425407510241949637560498108403189493755855552676194902325815871774796773429672172097092274131984648727822407303169698968081758180982528920470945404891738600418076641131644436356822233429854319150844035539443382561667911757131977132756166370956224915402417826714515875006114360903829716809147692234296052884820945927029029529959265073174479369547153653745942333722311501671192262488910763128390862653608903556438014854668486211968440518860506564992787544395574088811297606067637458152501441942354109283317788136102548572734502433000497580984916802411069085897544314824742700692903905503221913990992141224952374961365455911325286005121234634574682655883654078334234329403283612590608007040423713972348609875828152887451852527216153666456399905091160337528933592108530016477868024317577364201164204585222299046308541877630805838646644742362180387706262191593931343358642289771045097613560766847991773384771032329764881233648912128535699563816023377532826247922597651870714010897330973236084571541072193042073519318507097674376018481103918994818564332463840014185137038428392150358006035249629781640038959404846620785711236304104248617343107699971454638094762765583743510993251608889538143304784451052455169579082300674304269112941212978949112001365478064712357305182859417534100249003562949110196813783471183193662741025817843700018774687890101443950879648493631220442853726388615132772380980136136803297818055538675299203419418451431976204755639703255311036315244864036555256160779314327230320643571108629977614995887309694780621538243676515061010501014547950002517404274603519577166640228867318423190569570903532692679946036022372211948683489449815105870396532749864629761504717287480535225893193900887686944573823317389389260089236177891404809395186536681332655141073017201854036265097917987909983520773301462901989818762008923220106771801589530760092528187348919830281018359114657924222860491542733819222135774969130079850958698440868567008719657149365679199008827039557518806734324450571978283845326366881211798007790198055764176069690903474844634070178683712399957049498362123055239247216501373785681677613854806313814483533107863588987183136786718089563588303256253120813800917656493663568234851521433124567400417657365568625842915464637716551954482562661363629895330933827139067878699303016771494578374140776207099630669952913534183738564271384409574002287634164139102790835413648537282871519670990621329403692456201627702565725135324269707509646151930319710333552335518195959379111791386194044462684831903792392594577841141432527218633790579505891434531496949928694052671596719530428064495606155607439016859090749923155423339482952922715817354861277189161071542429474404194665489208891371996241492087320207968247771435259175968390893063628860830576883607897069778804381343501379544759807463860604597619273461854161669335357185108676454678859709697305464135306791481448877533430448427071562967304130896724028651549831911188607052910410400071007102693093234297955606561383894972724804848662550633981256752445196804997435863285416080343617085773646360572407972123870301685803924011480550625561078547700066604214960246700274868681947538114619812099884296073249264886089875960786973514523681557702624535438516493254107888086815852090634708275502496282282861894645350467763122674938020770872386703164691799769764448324391936423047508290508331888222226019964467852672542694831808511743157573212437607630958716251864965229017458453655323143659297584992021716014296001509136557209389261853161214905383144231073112901885519421674014487675783187155348937079505297616461136457331169828633383043972961064178738667819038226707948782250340255865681288588797545520395954408313536293430231179558390029923120934462030945470793578022383927005577276824809984908678177822469010576048902369313419330487784612038423336397872600491218784128275811079618208678142946289306138295989460101058268799642221184773663908966417155487004048375560582910690114038601780640699614578760106111115246547779004749099573252881341053450858420115812679802505433352517814306040707444632935349047193483922661764482179329204846660894146092627836307185735531185818956508443175802867489954499330339734802199174625413123720917685138051257805602868655213065099477521098559197956572601950203449993430984049882828334972329370272186334811728387619075005215030691348997377534176309283268413913152977167444469456678779953012405303611743833838547553288100308737703561496006793830328926862302575917172782789015294562115079379230787971818687972489877224147282794428685819932555429577154453761523135564890814182338294602214196185641964013450173080770003111998253142145265183354031359474429514081756109828351506821144369540850396872355870891557707398905819867902343821533664325840363940872907072044373730091074971289979105524785073054024411662418748613155536206212909879441225744234159329389656270912190372227343946864147240568476613673031650247089324662376159761808243786458541511853493889513949041614532263665128935576881834157304007480727049665008145112997980190869955682919950144859457176096247316473613653089263936156973231281323457881996011279365165664367291646157257532229385553906986258189386780753932546823265356973745158691699859558939464819147707873774058924938921591229148386762933455452809065949720965306656972796148265782096986871204687195555922375287373971952573711033628987498849823260230323172330612752442875137627843414703728118864366058963373285514912788845702767618573813022645402012172019354287434063850341898394068615997863602810052865849974011247734532248653109056920303568899516881030826105439781966225804062568042847268375796689122045414464159376052819198918835476900089659927897140353012940351563336409960312741295698367338863087011281930053700070577825958363269401946010019682953142319256681000524326727948082910824784397741267365268739033467102824643343746356337779838429378632534289636680047533670455546893920082585947396428440780497412113243583354143282528843548375876886933151551881576904362858953807494788415145717429212777545368142802305308456676221946101890350238356829036763510538966193991433257568232164737295588800648380250788325911959732171434229265362498293395213180523099366353887358759904588463510763057090227418872837427811190581707669046725985077743312013622575181388479663241344076586006641172246191179902630869668267217045841292022666302699670752514418024608690555591205177028810044013726269458819257005293862286603550367001236505423893428374671658350767509100679906452372545920833447455308746389062578549061575131245347044377703728102785733079662989584878691139535430872714426810270956117796278328523087824438577348644764824704838532822760786163384654286128898601464885428211732472923898922107642712621782274252614365439068540283947640443812863490645136809951745247157877161314368089347990741488742400422753743598989614099871306605667201354004598468373954463910028438659633918798257119469549093674213251238013599040456729746358217665334225685505711100220886135063520848753356743503312965486627384687324188168617613046663722037493665087390960752893235107162664177389058431475566913029683191029150311075352095222871987097570897457365264321725763202109343874157338752635598409935103470926980543256443210141437398910903408922865942299275908276072104473604615677950093144130487049293210326992635711902727383240125779180198613794299056716852191368463756705345619274233960008032947906356451669683981241196403493044460212250733853133142923874397097958451954123661458751315289655113292234071775431988434492855439933235471870070727089479842285726113564142318633771225926100614970051418233667051465518448479931366418161782699903159701873662785140590128903435682873713142174374929842317980946807005061867754532974080954864146099771693468794891703347652491003437915579951283174982688253023875070826057947795722978234290387016446370658434277531664174306778432803321996501367380525177426083237476157163413913604665426011060091448201165808903344882078187640537390322292049658410607850917141664987636053720065259511330280973782134438505622952154805789753483166669516204337265173611877855259641866994465990781447996493739556187930152336477854418386441496541483125660890131494671577568867602500625344498766882964690203229104859478921395867937697292339159595228044306437205567388916921775575935717301348249430166150193915313878961008063438250183642331841689563426909411459457077438476310751516526603499052418725435161654574002955049263050721689107176444577678656950494197346993086342096762641599717223985636514968579868764891084542923149154590256745582842707498569051163421858689931183180027819595647610141568509407530342015743581849582974588120711926033823066137604370393415742567146445633158782929380218012873250706522671802183329206454381315422285328441896135826045341715137330804830980683412614076321303586353500617020691150153843661373754547103181798596965221740422050433101878763084034033240271161842797850474538615439350416012737191377640519386004476898528499460920927122574651682794998542969408195337083214047591457435474332931671495421007651154295860034328121220638968425045926915091657840356968589873163857741953733053646676591776304829954011368139459179616630071314586670316264410474780686071104432514285079057803644428702857272156128311814281920533452212071081051839248216804984153504831709071182279884205402844523262719524455543222304471963930133337396398110586169368340260866203770669775976904249224882104087702841860776987110673798355971838863307456810781534240718139480201482862917330212548365924480106160712299910887477405875767597167591690266426452027832449694195700173664834893329432102724566975340644672612319179460046458026390467510180315530780498393978827387877719092726489902327770619820931563117576353301718375168879007052342110624774052807746699720366820533758456684264248410274781079110166955829929745481175967457588185386398077471989653322930775171303307370423104506893898749157601319430837929656956201947818569374281202666074749522573380314663029875944743143001474134987801029249606142962248930440951799738787172148425548368719190641469109739075203669968102084291562539224381684026010692346711147859163815606822311590082153035262891412574111295049927800979895398134419369295763347261346916154380271202830291636232951720099464714440201890654616961575527449632724311107513973754117016108772613259438294720304268887137388443596016956363907011577389386755984757561665075809981027885063099867439050404957501488232565744819947157558787519117803511876486150697013487920436919255652187050622087809642710484798491211697314382572630400638377033285312033438336620395387532966164598591491762139112782271905125787915128877839758254320589522623144632305277925439182115407369256644195165460686591112499965428030398014433227846646382358667149991862713346969978252462244490580408363857571011793304705592795927184952440163459253967230614690848404736027166260628192202658558523443370486864269686914417634104592940613467743233575803023383119575694504342300216542081822908826659980015984041575610371029962066426305701433936330559465308435360385587938849520171953109409419570526625531629420473136423830450655238746323387755343953281952818967336713603049928696170159434601724802928500601154185244554545937833472013982892311697653183251849375341177938232821131295901201529866981629211162384817702614548159531679381528902818682745137481278721185790416906887590383732515263869401007534595817739625914608567900492761779989685366212575764931274850329133277067379509933295134442583828833365032760844672215657471950930284390003595204834667420965011835716271939714477487523007028665906655670457233177537498429645064096426330190341671080170937757183712098242620118210525334646874851400661893365789395930930228947140759337190051388619443641399794229317825552507226212726827426205809340515363551909736143667955045310859606246965553211674743207909742495401615251142626772470488521657989944406399644408044093042249427799553777765952029861738789751870218702744498009232782945669381061519197072230228454546017787342803674749979895210630158616432716663536809073260248393219103811237602986148767701335146370588350129393949568161127996179650045484174670443630744417676259094877514933461973320355361679157556467367190213035221976971330092500514831863392992719450573627674705113757674691224248952776680503118729013793361126131470250136982262758228459839823057936586299988251356694282041881012782556173041759430968073141328410242685763520207966834098082893325129688221525412391604242188911794507411369884116063610834738324492105636485849702570365640503645167120224692479037003438850370202378483729316584890000252686098285510350728081294913208814034124859878591011447258513818541891846897035998542743587332470511839922760185634535355505321896234156105395434374722600670313454760927601605692650552314403908597045978268814597237001312088299416580016869889579010279347048941939553482956286090089413567916690763553243099611401092196391796570250189850546393180106495128325349385484878408358230324799627227708796997760647732955847920937456740051793041408007805891079055745532991414211667165716659240535837787613458116976307520394403435532626143628699418490144462012717512345837491044594129570587334101132645740321382629713604314321012737549926810480507869676680360226878112123352138748127497286501185063414189559923367338078930920667929148242105844355638844716114643315365979149591262554864633459463319218245999415319955563576406578454173893850481694718198523913505608280485299051578538158448418325184720058528880953748081041078876420539109984317977003648057063956108303329177434894923598128096715380346433434346240872557348548984898329510069745585722768131168556878475488967481347028522849317611705673813192031577736789271338793186424086595969795758555102651697819094929064289396727796734028345745620107970174177588475353881445527632661128627500011365829525016026230794356677499688241717040982416841651137592500373634837959907340651094354956900123352151065507160992982145224393892525636130271115227570034129182703300743280410513021247951786365922547101048714377484390531662546533163457767545382551420901788616240357670760452797157647844301044446757459552449756984131363404533602649338560904964653613694670832896099699006800642819289364609805251025688142124543516449141466655638592345645693160383276016857908740656228714417422794021613886087424077032265428597815770214825323328132965456154398494810503164351613474650894981671254382145740658767608832308960183055879033511492650265469572006594079007305227265190165780483908659666043506666815267121763820971716533096974610997299208448164030058290709591353986359837113161922596000683765208889863366595655997678721322637887073793690681515913641239695881174392091810391686713252825446575356601845617443823577445000998458556132873726730027118367643060416585942156593225681221040134475413420463892620836604342015315829141420176534979541013669731241246853800324493393845654519444368224389070410932808290303612182962944717478846139237796374629441881163190687322237501599298176511808600994198851002788887845621142145660745833641835748336729723877868912752287710636209195211430792440859512119587074498760957697240483977094816178676463679801022640494658504843104503412762253903845650322528594569626115148606917020161688025675300881830642314460782682800513132861757168666010055511020665912433245924958802171991667565808183020387553931222175474711796875159975484226229838745887651433828717455153709553340575278305639678086627925120441604662327706174909990095695879141214302094983779215371721149212633831605973069545068852908719797796766924980758475269665273597808329231999743100954276632562693521136700348577021461833213506242900551131572051828078589782179609626338107296730892674691533438018301039937376231611552460964104869788766811051680897925493436330536147808956126063559870501225843475592060399220993604143606705519859370364610793494121028086944538859341882400315760111592360292381730299360735823914535351620294439599959612598368827360090413057476016575080683273276443468928161101359544849920869425211980915551386750987124011442111722366618428660074683622140992237370377375392421819252402186757702624536474404376659093491418013303809412588809512570077211427454530041678776984617214896315127410386216716428205877942812901860878942826555899174714829939809753257414965354840454413381856188670013547831622325495748899846431300230061922999461316628333612233891375233623906896419408340667978140713436421203676853344664546353612586122169065563746391779528424774895866255616897856405530697343106918929972704911239581498846273261344969161759443689560518402843113193794476562114445514059872883256786307288378380468216218630344877114332414083216652975460735985400540093846572224523161323309121502870961611022379938902029653571301769515360359450714754743803637272946911000700796589675469248997394350673155608941510686096107849953969014023751964352976589983513630520596853746024790472893663114743874195523185900186276595404776361646075102259302018286394978082258410401715833490768024218411620184528759489673576250028858052299928721581833281092098180870752074185095614306317520645780360381610403602645698720595272320714229455151166899929399514318321604429522825051855708977711622695172080975926237886685445090708954648176677941136222216593309089804933449033220880526848408951897465783281016588581959309131494711489214257655483880022298719254970551807075611419694655976027760836055173232206976935070118595958916486575263281828062215803585655841728180278362305123658965406840296027916959116183492308264760756983270619711330467681510629973109655472287536798922496368025623405068640209207740468259057711267191368462904356996248462736829516042206301757237364802035311983678716449896520874769456323839649146364176459008502917136887159473218235536883322587141592431726173583435986899016129307252306250673367410799497884256767827766714593923349595756516277990326640196794114867510365130951733030972160563372119404453392916036800859107768753157753338381934113677413660799567026666636723506669216949157365282627873418643114781612173676377693345365841028939754354533409860887742234809553298619975347630939699116976601574738983053940946295654843966582959107228317056514529360637831684860967935703711282375664859980550381216484640175179968173209031922135108233119307685454178899832456267636324404983781441749358638879039399369265166350928395309059928411547040633816850589193599809773912328371592386699552091237338347271013331434629545717598782776594857620292565196578396657596017107278528617752574155630423447112768639076727717182607088893909859173725066134449178684717390250431515486447742053290533809267785660360122183919835408786196768827115513500923610650980049201564395026456068227615194956428455730871666188644614924353958156527802762961706970340539965783137957086647743117745039018509882829088119319483631539859385552856165914689577994839654130793063744341301061332602558948818035842024487889730525496310138414476136264758166783101119367372844830594753054353764459592083522836816003949573191567009466789011447901824275522270252570940459926854839709320321639869450408490806351059804590972392842916881414985760187633867039218154681507282862350438967005280850598419886388707362121515990220042057410716097286243536910629085232831791422710564412015182338359686922114661807450259041906728482486954968917736045579991883864962871218281377066852046372380989147944092157786782990992386046679841036617049099955638463977466498402155343699988968792284898154977791449985593669586463619793083787401113903073014632173172990268573078438329845365496137726451452913707785307058666349881444789575998712676153164909519510370669652943058070234287572992752120878492519081980916787978848293121123950442389135083797730438372424890824711640205368555969555432367816155644508085806374887127033078931548391770589056524483210253829336669476643039638195693481713059073532882308216620661277862258897949776206773345377091871038270365518599240543918765745181489658925769249139769577742986922358085777535638177736181234967415730501641146917366254425081975188192644321640583966396845858541823237745386989829841246221399310629282230341006935576196406374698795952344573652736360967752845871931525883300807329445364229070910667864660686008097989971256003669324451613439926748321255954056792503975441446463242905093644743613669228715111724807181530287654275429849348319821879947611522574198328782973671215757244631645381479061626713942584151544982574839992462459227191858114736795422556162081600740612408541269827442298924034903873429868418327864044010782132630942267939071798885443045305518625533255207059478473310777739442268467410237827580110992520022045594116443124641490395467546179857583287196787779534687564891560748416074144895611468902908591803460758272213522449928215760298712729302850091326586626221431574595337211462434432481438203122011567735675673571138534986796203721983645006184616415911142991342595973123765811575970964936169332833684667248203400249530856969944510522613425783294391375628607881322174980818698657962629450788305656713436486494989628859376828732023561088380168939365299465393967035994076884890202743458682091106258604109574916269113453881592602766100687695694967444671402546699418818401289419967476937741913315530333021835374798324078794449555531671491308912910425100203755510316873814982634081384733989559905468104148110289016755164768128668042305308303436407931264317248512670770805223828241988524459004375626976637727460045961818075539329382981030362395562631467480929527494247906216267255683428294665964087181938147551879215182941146525960021579682326682684119397844385962481778889124505092041047816608803832942223524879652457263420939048983758853541684501051663915087723082982446317862295353631337799968339785441774053648233092080881286996651677940208014176955579383821127825082506456644278303385492564430662683088504037443181768986585439977069952486983162339337674940067795257935824755740726313132790320897784181987729209834294222725743256906694634263317050953716872831054254907926545239429604959624266141043285638150105439538029096593328291931221085557364118487273797574035522722136050293854732615625833711368997923823309710715956931932068081752913685687681971010263377017128043728515743467914957661108571427287948114831929122098402424336100041929862008773020406545290723526318421739026991319929064872056300575600750223402887554477934254188214129077920185968293786644748727319045435897307128376850255172031929988973502343794352890507669833360309302255986353164461727742922120692232445869669781063076109036775200967853008228193009973405636573983065923401274008649714177866718344126368300738435278220600754494997535624297558193695163794553870021776718356750088696912801735695910078394549024652582188713307345188034191360228572874553362292956460549148918941274598878047798019748561436609140022075828712147566734637817994482964553749694051129535480396512568380431159846270505675797168898220567986627753252755604342341302903378860623988221943634179504663498313739918744355620764172926433113662820950489446420951696160345702190807482834731379055757928388181827461859403824605397713925843380963574758216940311814258007927205893043518826815975755851490188440208391501004456151828301230427126904485842266692730253037521443840872569191231081921011544794257062197730796011529628265094859872570176765782572542077176184428179951836924549776901453367155170696031473973525451276446040071905240383672108993209565434618924732523193364221579554469609889096529695038782677856942011263315645605452984094859136528433697129148312322382440063015584826106784344387951526351670871353396942408136950767257120132320726539279653204574239705441125185733066871899747281838520267882260559496019629177387391054556981747349548289180929817205823158095690379387352320866886279569228478525318467514927781739768686037850568884269654847195525454297448260582811627019864853533175816596245918705454754085547560831396166076872609330128865778912466977409461269147523772227649161929411767372772706703846000562086861418959459927093035500197797057679003448266137159030341496122540402822575122100485085172719216779394172582193969574540573804512744927168261254458442338047453040944105556187945857393191894509440313364827401832318322381235238061930338569496375240294887987249798563079547205239151529467934815234111657860101628438701676111915588626339824908357579323119433768222545446538692969022017551884888976137107923980491242133488813256134038408801239760261691599980751902880775600907151386218731494164442306553715505287606031112461420474016782400849471736087215312816860745164779914981389474621181046283823967248709141052628733038559739549402266321262656426232062070177644103297892881388946867237355233573189759054989086247433310568503900190202466426827500665633200574070385642631025221259226415356521316883365538959425576913965543567245363932649321131107167548362260122390653479060683771940686527434249531270656637705362518666141984891635849507536220675988658606211680103225359370904485905127491293164061282899708571984627321511324986816513637159663818953147298629178327778470915451061746921915743749453640235048876682973062642366586306324201003321668268439717375588922963743845598976713034090735470025594624983137971555816566045321759972095715969613027191238319328129146499565924028798727909495908766296976435963617732407935329753633000373464573791651351254378894490857478681644619754573215047322806564355752176735643809238733803128094502543804216163097346759871293195334163045991890412169291814069666552699736632552155055084135773703460283743711577099589303939412539238107135422723719748351225980733586646211961895669513414538371949584712230802201601763871802462446187009449753977061679495930117774066630020244589115842642495694975742777839417830627565900026662507500099484421304551518729958912514223412048431112475930479964337970775676621167921396165428831745949400942532764426769303236396471224185536337079688410767844964823686388242138939165115251820198175661041567335481952021613035544563762132831295006083184958094897439731797237888266407399432224428357118624833617716587890005756567970261653164327470108167017491187996772090983334684771130144288649663858290889108841445647103008326488382031944588533598395080555368760904222877994048011521959151271695283614865207181599385113187339906998860176731536236427405646544055186173116412193951140102404073691759865291110249268581546816267695982558068885867150178844002505521062674495616707457220301101306726851788716540591467505676744001804786416800047284904868651572868502732078973005258837621211092248599434076007034573712959101238328123912630933985648414920120890398976066608168644189147627571045634322426985574873855425654625200291328520147880393594629434514352055139366426935163476540657938353081186145799741783608084899710506314758561328880539855547443103034470362278875686362832646028502573185603818804247232403467207998889853897681943846771318717027918191407081057558482422418450105306250369680014424552268303587396968496473521613526851399525699182164231765062543581429822941881093799924524860129891298415898653976846655244840475586852258806895013991070704946577407794247109924812477715698425728639978841686930300217721990339193751553566619915179179223966022096259545522371282700162788441617887751627412204542338236721221090349595005366698729569893117801142350181733957761355626019286026311729815654007317666772572658724987481082563801710076062968102556565891728345974159021388605917411925307110383990637471896597977282127898696121379897081429023457292169110223663984310968680818517907309583251273056226433454148678186387129345134300962247673840581153184592318645259754654717853991670324333900517139670293024823137728658180691490094504995110755743032778795181662701659068886725567171107696531127693184748397511482105132546455700220645722683481084457926978418462744232831635578834098740957319456495400208048349836649586552832607355690243712811396860869838782003783077122586051946416572779957793036610321615059448825498641907566180039986123591327617241974177178561590009840049646976845011982055695207846557822651679957204998188668682372849769228926599141940413657407372600304316213625645249141136022698519245580886438606504432097023362969136096040278583983754256800922913040130129203015089130897894879156576013713207703155138914490585528912361344334416928593632967341030732861823119323688524648379700380253763922435801174178657239766803067019066303756770309827173050540769888077771123973434653104245207817140435986137354191989015344297035051407138702600239497910286335792282101001716607142751391141392710488739444418737164155835048877184888947457520653260022013618416473232821789994352950222521790411373210191751122252620844913850503154162825333652403495974319449664854428315417322468544422156245299511128137792106354866228930877273014016572049868364735186372600926870752899958291704111656692258748471050907769453011472202163943861600534678483209772418595900163945123012009017784547862176255735903691038027006132906724577282539547918964400697015255999577968923426183193753761140315056857838648416624899391254328268117512888738069954165377423369808599025044303724613855215141786289034602972434783508104055060218472623825015441707473817320684290374568864053620223974535255856868297228560880303037691283937266328548954783726589817445306212987220860145577738146402804836370929809196503667937131250729172487495048195246632754457162692319574023885115031369943329314663953760914285129165212177591288987631110705483965862749888274503736196325546499949285485305051765014090153019720234436388201413691046624116751755612103092094298024096744074026269238198880840570862151465425449196646575582671631812328914801866108219751155816409245609587761971883194048243728348044954967407292442264716829512358372688035384667457455136248868724141453918708303597203882749134072456859788067116388442047586971141808778964207616428373951606106157555856895830004657350156615309014639684952137151771570845861438688770137679633186111379508910802449736971169035282675174336894698310107370011480953790292794277095309126464519673066782457313532603850044373652857408505743030992679668764002567292831221288596955497759021775685891557935470467620810356703211963634205703447181342477519851067958309955115480646336245363070141833152942956355734575283871910891276993431170304901884621285119193240380867792586938443063080306962452724673382151037213045590797144540645444371733196193844756991118617672027852049393989960490348331844741269140746352968840031897195779031397466235220823849441442558423118217113424823262722080576261059352129918190977211111866207451748043560224909568003067301049306195633209780021902316743962654864802989728773612304840715324150232789988829617871510571816666977542665195115419959004078666561232256552808952835874879366404187988830316551571905397558731370056051478434708035824329337905888777643104370455437699388106003049242075619444784867344579620667714255460199261733111916120359045934001765400104779125349993563005133483469292391086089796436741706124021592468162247718504056340459862838036160993230708094007656322170417131599055548827544485246026192509703700489183360066135541006268412667875422035909626152461012561639627683592097782982857904235283656756374178019768253062571137134476395271276614996550011814042826322122013965765717629400036199230733275452950244205863595645663950810256044836365456205538098539355823985114015218297471685903522536246766144543249744330649541012048601264991190997789766364780520070561594163448758940418086760962774292498300797031187344586058406405670330158919438664654541758428661903770142533721770229940658443032048992708651055835077130415932552546486906094681785452470312916965357732999940829881842337614431560511674528814212020581987928605180515213812896053806203246628487339698119768638001483993747650203440699907892885486696980124103637449743917487791257889842246113658723258658058626250960958424226265560233098893145478595612468690261756203917044748880766053789834756397502860260342726053717240583694975916597407284892302934632352008592575862199461538862290431936982457770428592302330165091803166480025742652435678470306514363814452116390962957516042381949050426013687707013722472062298568131046187064233855442125791520306650460827436084019269062819330792342440942507700561881584481196560066201216842054220297915650805488269217787750516444896213984584856682613416641827546329792782158906027842122981726856365256069474765754256393806960289267950284760474974120122889576140546733473221517655420425704772341093120652983342689510998441364039135737722840406800423702543373560493421386779525723293507574275445666468265339804190643977069667843393209879305582754637371061548765293455224452448167682581107694827053472810183310512686434704971142281266749391234847890913773849058439852853521721508911342598097997939455855023060990603733924523808538278219591748393413695406804955088072268968675272874667528551382936030511245395705079451866658864403407608930378037140260126559636231025134042393949240768340033206271549415119381832301978658252559378580763171410547879212650359497750515795055956709964665011462730624116868811693672699462385783514276431788528273382878419330850197240854459502869802726836430107564983877498296050490819151763111448493827222199162946467779308409620237863674373399055757724528776412705648981518989707392497535631068481483013180813345040978337848124623522069786480675211270600703686110210714060168866859009826464098335494131157471622860422907600130125443149855703516889775848325628473954835322598975410623905366034748227575803788352487383917320733945199873197399101920723101677614128591595853638047560868089045286344840809822442789930545500839113320782698748837315506633512003895554340966577938461518725651121971970852194855948782077062843698562762249484650227355422728572641447579826729180733167326858940313422984654440611547693742467207807841798606103900268929951025425641694291874487179564980980985915090346342736664902098505907876682952706221966409280278148573557360317233993678069199380026415942898209047447410118738625944443668862843920667102181363069246868506389437221620865402958022452730811193843534464533762752719333775015059692171776471308929973964055670175284061887926352998342922954683602112217532689854674424443868390411628619331125365071081123082553458121501129817550939870149483930307472594734819369213339895012116795771418784731379283450511151001167450437964694016972014026584727132605843396236916440223363826111476719107831484374749122322923203646784182804468723684442981537935087129374031224241697069411871519972525902855059860743305762135353118973080867227436413576565399930040227129596390080728065535002501910942631298043626512766426164018510974506757567398891303796460203445428571013187991507422107425223475302142868367765304880503753497259736584102140776349723158556251314374585137781253208941515893687894198519312579089900011208935429042632965301737486527795978964363894486606580040323592988056880797930884847676519592233822176421059584607975079087382379905992874885151065039370993249984262865197904932038721101445947682593949243489418816731794492534429506985767097471306048734558347593022760559875746472126641360545441695212509321951168369588809094047047971186520960068876644559792362754404112850641826013994719113229211287202242690770472714094769756562481447489886263943542306889015050045148369048165218558692237995367959710879623122054479768423830487223983732924503543547365569423674497127470215735770965591257565518204903393853311621688713071532900933371891115115486685956074129820593173394009509499657920276366037470568065626112959257831927677900172014975410213053068569490646780309955047182617720712421421917995962034656061610235976868776896317661970901615638469270274863954963156834736286402881044921005824430188449559329476620280729941234277985525303273043858029552561098375898118903875976314962605665688333056722901634598297968196385848494616708183255831089872051832143780240567407913686811915586948128307921605460862711047270462397131456749317382993840830263084283248506089161382217769017074754534651481877834477777286163814138100494634998910262170780824547130015414217765687865246625706731083289079927072381991679815932041475159028527444226795287463243541060163592989414588017128559660965084908814722635188163890067658170825871879031118496318003619055350621529288660394412088512563473404772049995119289511764998863531914356047475263217016369776123860224743033701075971059747720647517709762249792783385306076172678926191749789221376179859355882337186491651510620501408248498226503000499206912394621817562548330658068844636647202674631707945233469294775207980598141402178429531094272803134717911302783896125060359083853778312482282602838129055996081789476467758327258732846295942838255413989520037454189250726587711519285823070996047044193472280320566583262888108828081859913051301070212141146621217284736469358990257883783238176254505980238777123021038620493809761694805248129720494558196620174593660065088172502873540585940975358315702834508917446995452838029751334974978057951963021056034209461806124592896102230995373166770009689862781448851398506661458847895717297814563469185561000049081455115550247605074355634773051093723786656754089347081339088113497673910103264944700410085314275557827657669192629608096051914828800843046323448183118527688992930874155299902292479500374551497510132273299041858791771237854115166997261474201897008441861638449452548499006732704530146727750321134301054923810137308877986733188779817576504412283268763467660494196602463492407035372737698512667020000113120692452781256091045196512743041255931402097576012691424333687709047156634733507028643538570736203169198860923972204159632355128830546139369728896530708593377667081600085397299207638327791443381532792846033793401808964886223151423607617921835220939963494031812772574357489373554716352936217337971234476869161780711993346483831838038773588922567966867761645233359671132346564468541638023532541140101917417935215786446720960157635705271296973781690676918206057483247908908572651781736530545062595597576998238552698289519670673905688614528333153971473263888483325245210005026791978219431910685464465005197593417060155042839690101521756722635133568028755196911964830574579962882935780346515067562346230451096927521428140583036715788438930709313095630835393848601874768315286633149107279825059261531512796586713928962761885826401172058184940786933972302255695461903417833331500777121413347696792793689033809781397903476915335944814797728766185323647881898799853456825128582911145506106046144865627065412377956785943606001801141488324398956113699972358125385154263839825119198658357696702590717640854443341002229645638427203260829858812828066184683989296259511141637282401769006908092741274251630941317477583431835497000614881023146656550008057900611616590178695196832659876849932449324562959231366492932294058884072509650465087517123133709487920822363710142841908997373408969419457572920674138427361312354865350733177364316510694765498404702733138416056964797575422854585929203397683191137866366150772695529222791362715814190466582044155488214349342711307426751557315355215074331152598875472005943702413211061335428505716443325472345882622283981502563535141943602842463650078522554645959929912628030926861137584476697856150737011109766469086427654420580115414468715749366977586477343122169215209708093192929573543041298347203115666265874654581626984527711894691039703701733854112830964456662235600924425652807766534317213264949438689585314720882606583239702197741856687049302657043094883698272941587329320440592033053946009146472886775999532687012924451608734228719372366952951452107729263980268551741706758743526783159609010900668548440657459191089666880945902214103870027585382501280123978558655679842976623353892772144020297072208565766629942089636262637964948083399043302059165662805685201547074686907939444702309868152181751810177749864747691569326233951261677095382802204613804032830705607509092245888234438150007264969899685721216401546313803010189136247268709251972916429686237077456553738813907401775361701713306967594113208405302849619564610840466203488765685272971483166138489385738546771040839563198370371271804927980216946989586544398340740961711750564387352127714782574221045370031251840392690662169170043556304731105231262560300265764277097714917991143747972388445223580742277589798758014403535204909749328480558525873482483399241491079526635836942632840157235844428850322563680850357839004062076102832821003995125624886179317519421722286071688149552479987097193620422333847942210315261771193330123151472014215418118162626647307915257092689905554293660200780457884870456579314654472186718959055182970815380312277959305217486840061014358043007294524925394645230128885007410369230577030496797483269018106516556459574972933273835129799301524050203747830350937495916606632569706515727052020366564121598900526361384189459786613101123890647369119332109046291467451572933177818301044006196881163590473199917150739698228957738449609869902168071383813263908644056249340049684562734555853027704047836069998223550105770218180832194284106873886158944226480112232194256432210489835661234890544039056146710437344691362446751635693075056034269073020874848995995594956017331874383150596304254677521688004842612060019216046978497237018837928492505283292542797249420952281013702856467276092670480814581546143498493538741792899358316050668957457766408548335355907991987231022753556772163852485414807295320231421312567473928567839964318003393578978424560136527130401526201421055319411082340912273195288013897003869895912928784035367801555522002263072832085503630707533424373469989778651913007709786471978641089513107252331726844543166562125184870669500855907552201402573406991837846847043975987535530566646976528291823142850297295161874045740920614088227694721494536947353680778722751169607494313956107154071927274687164311882192788384484574923157869433373887109309879220991263049069398006932005097751336874870656960469766090859163579113141784535609511951101381100962877812919229521229611776934781823842180659812026661335860323157765553275042816986335148468504110854676238539449814353002279340583878421954195906076573916637801487813574487721167560726159817723941488465486859445387715246774886589889369022926064362786417711297725182815193730973441098436963065631502611808069884551746399279566174112341840571440758138817319436591432918445921171457363206611891468394349390340922704497485256703344431263290801990396341368370845548684135940978928635436464888439900341118099231168687117118769201573135639977917840524808648213364873148739233024372071300824965565418069859997469292684801002544621453740050779611040924469538456441906426503307775245196017722626701213442037326634487861979465240862677912533360365203356763485414360931726563576281581096827938911962315743959550944490366408595236553830014856488374251286173431138889495732342799604282599759011324447980047060101130649084906615874045839045466319723452305152687543812753864487261633085474430137485891784577763154485487637689795304602187914822955226780134293825497089923553985549095372436923555870971933356786324063881507585221017197251887855008656580478430473332041349126721409718185480435661711686423892955283774237131027313260285551476216605955813832141676571825518258259379516824675849211793347428652218918658889194074610382693005168676767272114718022883122199869405180201605583788280774710926250825286685674832938888683207357891743900558558194369395856317699787309739519568055744554519888355435874996995734463078458992046885114792158751345006273649008612542697946573673721078985466774661659562139088770944740311005866512428597094078770988383949951443905899609497426063707269882205987824753686247519826663150020018901649928220924619114635232153673252476157352847643882762555577366380264910296389298777869343224137934180232284525684987461911084765357216026006429753866244524356768740937347229831088248535019513878442105819954360590530136509607748114864737175198958887080118896668229641940976443551592389255814775993742292095132138883939121112362614505601090827246561518889434450705880685529334982858802235397754262606900196009765365281313766977634289657202718908344043574712379538182977215750379180793948602232834304541839670916536424059911750551687940858811130093154462468028728363120696982123417911180653898287205380451571011788615581267425940536619547332238571107940191484530196967133780624981646202017946513361086522544088169133550420281904259392492675436423366467571397420842799327524622989133426704066249091992747217057440509683355229609986785824562894628490872514600204502793989442153413672353163654893804931826603984023144131844475338720751711044127388406346203617811474219197043564098293760310008664548300087066254780801026261663631285214118093981140975356834073601042837801042094254716891921860669295410648403323395314165477776840056786963207407496651136252444525031196262619722577823833904201013032963631463623507563370866392325577728424867308113777411938366471440933217372232105255800695568136541638864861447322431790777034909238147898217152501370828487694513979737072336384600984705034796158151242791282424365113380858692746770314902412984232724497068696230108130629820301896604546118969892534799215178183389624422812842514976138300225818528727044784261335803387795771646492889627874329297612894020304703425914773434310755287199909692494104185935819284640911134279696017140565083171044689119469921790239429179053798488842180185317356112559727492485525460126481236995823019021947594246780177052025716765483994170596886607695016486741504592787098567473805945647153942458272262218836641881278707573738329269817877966429680378716775109300545762750455515070464031493726858690820979707299246694240458103307859543005622686068726807314636325398642373339984353874769466434023802778315082042423922969957642171481660137803898156526116325694287651062387921673147439538501270949764441694070245902797996640062336624846649099776826353435848943102886203263954493952162487666641881465847667897687428822308976658324446818652573020546680721324840087619984337226909172411732194998983061098211379847707752683579471847177691723030650402224656116875721973186931956067065759343592517609138065568482280500972422536430048136250542070117236528189288819257035910172459263200904793950043043431675940285856806538755174767609855363655499361650596753106813057106900169505816613467706956879565154361154974746877849953762157456705622580971052712128124802535460460933799535824358884157138066898902991131718687195379434772498399315360256805238348627685211472297526290714736342503735969189396491729108455447256883371388433254241242483596778266577730813841442028211376270533631650826576332264586913766086180974203817159175507319246723952062284390038786256578697447718279694878208463572712981800984679437901199331208227150834101987114725650936638845269775410871517380898102556762014983782701099368635505268916644667318789898919985047924958093281308875345458290093225617396489086381117815056902193428939396953138619329818923644780998191334441349084872006751406305656890938010386332727844542700147882432278022736195807926036653176455863438368778812934118976390732392301718324388546608445562408418074760168656079534791880511239617456284252890393460206883644809793970232049571638260354289986368073743726381710178542943423957686407872401974958630112958756082795371502601737988368323920664283252097914271391382964860596895560166721245309431860991599220389499603372367272127227231145874642973207760682125405786648781514718009121698261291763179688343777174814845931163052184838703989738648936164734938426226526288910174502132385338032919178854545905247147534470321905379133545308555869283903023525647148336224387063231928455371274082935434332479693717333556668120811374152902049674580156259500061960489601700164828744753394754127056178822526275449140455717248908829502034644910868402420828636054283215028235894010033259560119536546993324785177497945032043491044736864006503476747903600764874156015099380871674165464733506703488915604670011385200411637713665704321641372227543088682960648756229951314778855765279287833676670592564503850034778720084993189389585074710151567671935942532622077296152418622731674226481450490911722848542594959292382871690502190401438555368428680888326035733066940496381575399983277753742384355689362845800141127695775847202346178023109077505508421987485112973118145999233537430120734034122301843251184957870478242045813847857933952468872172059139747985852336692849436093238128420406583162808600373713768895257418921938504870472522584088212833771700337534193017545271179992372127081288991109219003593459900419276374304863450473359983000684113663611744920124414702009229268421680905189368881825652454220431199532132566986177714821124522617769757767662540366420066744772109032429879941912948548366461372898938789165850743837233107446887961755434337315386362964265528222824747742816815189312940601891114835978460430961406821264262147050198113167071514980191422631930989482713683915567104087390189505579764216275303521404948173445100085033659415553899995598111880913150684852145705532783532089581173469878134664079431673617891717892355784625660680468714960915145927394542261869904560989092497929686487649899832068600890424008822048193829828244290503445021575103418671056972666791119303468203608135976905063350508239700614641645066521214427261809502892053408693638562704531388146324992395991820588462984184132300158829460853974839886744718518485179680526696897320342036375304658574415803253640895795906345289811174017032474464583481163893873052972723879808747957509919815861203811144342441949268546742769349246289038330648543256473288354036911991320972527334911111613720141849765269729584592123116815858746122507575269964917096051652793422471347420952497737127467030068724371858703339263127182852300568108394738779086851677212052544196000753061754380401937648987970012962528861241846626514080857245858981102115443868661271614448410236900059488708073020298969118058455951051761053351599636845985207884238063475760609999632818194935948508191919304889271159722774112122801412189876336451881191561045834512055365946148562856733698746577517776672440977618730149803645699578861152627467116345315652025686731132886608971926858592732767179365085987221138811260215957761913538894043594199529460273783382570719168290806163488564054663008786667226368306515742403383949756852619751291785581643137726291578578554668090759218613610117928486757677609066571578090362082120390568002577318378305901958281212209763914812624068743083849690201913226090668811444361113094592593945009881984304910025593547572457957219359796286669613530502039420423527289008609006705157701725556781137499925391437173988087409383626100155370459626271608590988115716093297119360161314749086991709244739526789359785879353209467033725774005057377143669554200639557565701875984149315984260828882331082532431810872870913647093969883797602230542403945179272486676101885968619552452202579737338567402726637132900355239438066817160092394870915713696614950146602303808144914054401707885993152581784949284483924445344227819731303796503795531476638859973500899182237830601599318522672685408546301406885888289814459756919869132377620725312206109825636078007055548733811469634940996008100639970244934783465248609732939858373142379254432369876222187961040840538246859143840422371815124700366635035983021776593219367394981809402725192604278443076496772984605208310631306302696275505530707619053698901517341326812444240077319600170173229106638895802508135076829509798558728573438109130221599652504096597392497624805581835732587555411029658411304664484269695663464442006589886511924351139891664067328701768516395156211454359037475794425910445979801370197066151859119268808360858315905402871142303148975973310687833009555473055544903530885907290850323842468120967068097908210496475182752197827748645070100698757036875922289588134197818293240377723985324067222962172842519872768557273153741063904457542806465683900208441006350630719300547497621067839046761642117638355362587165844470412574370176886910329211939406429426509825815735043683805062101621382499766589280589756237334388606080251681318264305952500021092394429944523226539582726550544824621645296046204166838945921636666168916430527237781029911577169583962583907352186607902111456975500365613069674188397056891117245499125736914263435200541986647581351478892893110001008682823862879237051333419954555859722929830120458425114337904801578149228704387342440879122381164617330519310607411479778221688421738398164573430507728237256162905764907908467135419940450099923653896924423919779211326266100998519173569247621915449932034178257036890904527057525892967554451033687576855920732728557124697750532587224381493282846356411044424076708473540245828584338575568711039867389698954329862770419981758575355042483255010831556980076089550656700112335721460799377639541162189916998093753440566830864017254387188303349278666966763381203495759032727142528160064171765543023077294583160649399692715899952437886467696516660354704908934847598449991344720141560865388593894579778905583293961116110861646717966325883192343578247785469341161130555425290348915478203395987099377010584025489861148400567666962571761529877759583530074842566589880836067615370241087039274561365537676860951688714645498432847643402173591816116381340495604546725855409151964338151372366593293915705405064011485922331017885233070446348812854702359275874311743163995274401435522169005325049816074507290999611341707310689907064229329175011092947877952856892446278948566972880413142741189595003223042262391045652094404633790199216461821192703034514858763437525583573550453229734098374161279326206573916071275379361097349408421208765325767327189924254335975833887077455325049382348190931524403558135904025114188279481179885211169717221865260919812507981463346402910955509927269274349093757441135346306029818534276763974340283005017008007065380835154409133945542227992070704163045580781064033346037066579444987137802311342530560829527106405372847137080705906235635743888841170002841345618829801581838707899226996523647729148619355203276621284874270124247656717628084360962861822154035287140933738096289885617679872696022461085590338970727543502144867638158336868657781104434984743713354377519971694050216512961080757365035386837581186193855981544600137759041033693504277075378057222327883063638586882973382949292685359597674835701103519327650738472212665535806236405198814284606980587097989714517032393353954016814631319203351016476836184768890946998181950747455806303823504050432831483103201240565015759735752906658629883722530907905142823561709415508707003259771255061376027022651095154558699413192274895136308716005564775011642982480725596276789635647959817389564404451420818506399033968270575477165916869123943421298989352281688749802658781807435408414699031698091154118778373365364349030990582056281200905695489771402139057476735677901825622239002522972073440941285980199571584569050836523752902331219047874884699419153445499831474307281028682163046186901291075644306481000897186683528203762774044102685704013930779982808195585134406751507320779456297221505265425942379168403123035387861715890667508653796161434713114304900855274773017688312333545890033629094809665999359276321461151116412570326772341059603085568162688780649191793964197746017542074694683254659184384323392140790103555534217861346116726313827152989210050730888842577890841752771686695614266529250862341571198081856988616899571041292729336969505146654020015157480077441623209494563477950376061270476738782912677297975547585823303741546074445781260858840497421073572961787372157814322601742146898248023512534710426152175156064702178994413293734285898494860089886597670132164819132432131627255321040717863661245747847315019589931577815084389143132495839314107526053472000848374408710889604963464672317645399104895464174184587266349866837827531964101969707633614635277056859280717591251855332525426869874998015928979320631572074839149178616327448566824163327251009261883917724722277050399384452949686049768990713220049015514101154750128522750876199608281547683060120146021634083584882587132269807400224696861204547305337807403225009839509268712071252040057002322513753060197183493190515491220644542539433511486756401621644987204438563108524016748473778385321876307289805145474760095251817597399345362440825320032342017494034252991824186091928328826372107885173269560530669274066073900815730739322179341508240244774083238291595851021483946938456331524315703056578515193435580042062723166739888743292781873779216824216163123315996364146096204042159327893762022186413753960086794235060181562853790550776505264464652968011530511792497244092937563966219481482652777423099442247609528633255194897102338333788195502080613002328411304852922663469381385801276592449265847798972415505443252956936735236583627410246323408955042977903250953455156763608918404668664423535214092021943557971172623656368714499696260961294045296885304344297239460416894106558242655765362489309717374371092364468689004701088067554224591511445706368841985524012203083803515436338659263900496760934319632832533185567039604110682917925042822674205304941719672372767186141314525265899080884711036124444565029130854685921513137873626476481284809708770271630228370553440029972254612271145645895429824837152274422908947294429183198488751361906674930152527693669841568388901883294609126250304265448206744726114020047674987732398127996862739749339157505167960873262244260472496218058127103127749954692039872211874547942677425333990944282760185466096776056480725822477148185516306371183010435477864960082860942440141856985155043013702896072743890915583811710707953796171264409670811799760291836814174409280032142004011091189766933679163378892161128816616961667082530705693008919334698512008430191332452100666947462587152112762130215462475306228986920724921036574496854561280208448870998418807164757354568098984399924956586339473536948808642128125960694218506401733587993996761827993947399978742164691806238911727525423667274843741665437719262963581229890153891543170495535243603791422787927659032024648717788456223422364878419810664328640002990696263252551040096178432639631282870804344205801844047545672811399665793038645417620307014386827091412942543771192558699591748202569108474847249137992469403316172417616200822947334910796112057219560316249723770721475532856006554477261219702259734070794003333599639307124190227733874811106043968106117988155344761581772345552946083642282535784054284886459395645335663954993678367527895680435680411719746421957859801947450239286766489821187657477038693999347209195413195368654412904050643857605052305912504211675955879416687523626989390278213412367742869665463540247042156468010082441715477925257540376754343467588266837746686542649314138673603197544035582283056084406281442573926680654019936219361505126691522644353095492202979874356131744246978484590216786858506830157338920290854453505085192197604424894524558054736366093830236778074316285188303438774389980799643516726551796809336242185493943387957769782162214717514011448063151282730921128183125003094742784202388574772301980654112475387513403155142006078076851531313890953300550055386197457074660372028023559255659652150411945117330632101709480128459416532592375538595268219957326783028600690350933450012790978084109817715437788890121356960055196704825366679459781252125281409808181120108996643327648461736350938291305494611173542269791090817905513543254229126200952074559248635083896730597411886727730920179675320346072050446664161294430079161440515335161124843261396931327359059755202135947151571923320744941947990114526518020407531859656571665493998353673113703348278688569206833965474611308783302206945011738865353724893542916862841756840558891174562427433368934042955847387696971379359171983994793808834319078773991015311336018386850977595606950879369003253897288837446965082468192987546725221039145051663068300480472666294120319572549146509988326498725000604310150868061474700064402001243089831422094121231055622139282256509557451266874328696639676138118214597452926872427762959110248678573001375197709592657166146214576794646454278577845189812800665714195664243433941086935909985206516522732455580958330679781254297497320734210892234083661129650818292957925032612646138455776200276127711011098205332619530072195022044410152018994174575753287510441169766929252036824882788205974701445635073937958936918903626177502420669532617151779755230805203241649224046063696680205208813097721661460857245473802040825221188816364977787069434249150214059567533525142317202498306274281249455616308215728978561790190609611146866491665672609536935675936715678500826651431005666792654555743293651103025793542138422894812206470676419626763271776052413255559775400345794698675701527103299526267399399096690209856893640454048143126277668005367181443064337401202381769412475622908468412112438491876352425638234889054957281856829689475004917943050797191936535040891611847291872075424443653270738805454195935947508624552259902986454698121580313022863228225318622114244443958283459227214515744198864039717634171235385746663847965642575943322593152006400388528677541358105036198462709855840135796738206325160971066799445354208537491569242069883097181828799859229144475086903052781452136453176142736544307420720427506193010141347718852924938089632045087721985164112865893665649316153526069467525353722366325971315342085919357170884642238229198787051326963661821204391636785312429150357466915890050016365681406120829428716591948806907276438096213928576112879539077247090414075438273643497938491936640201023412686228108014778909830739506872711076670625528572821582849848951166604804692805926588918910396866023969353366713126188414508783263992618572947133300922376583792885051847005347964782494235878001033215235799479299050705894147519468469898983102547762011344871000247890018043083793100773457259614288009251395340378163559547372776541506483328309775923518001011271789619953108487111561075080950475046900987327740329621848817154067576461210614811144073025630644229240510543370380299817356554116560967409239398801370302150245061955358607663980128782824815619971059492668574303162016077357839331081289619255185608001563722732440979444603859147718191393991029137515792979574492937697317522943539404042273009744448973004449411419997699022579989853482623473402232010033141053410453749570902637345902739694792633288841143777239326892054211239783103281257908825571046426845186705759184577094226969575645787980465735511198521601123279233204135617462633715890353582724355739468993597366311652430027154741683259124740246065040773165274791973319491180186051766813347439635030447134271319603165199347944161067002924001839236930341238548853390592587410329337702732370368064878868498296226469452612920855966244082862957769560436861029602109141463440403588347897366716213614726172481927147386936280355436604224936392819335394278776977546009405030314333636472830997709999004166503233735380507626709306875673044942040587143512349849735374968439895782523018072536516033128622576315484425589983842316130690171067977513642008341290757340022735197353568101381013429185822097942863463588069827527040753867391386139602950883751725208030633013018493014303050767117230191592081618032720834390615546061797296099206560671029488368005430054438402100166565619701233503392775970652782247968917245681193922572328725461083333145064681026240625989608226675675889254218546630607172894959985292046718605691066217222003516834202418045466811137083596823324537280522445486841045324832773058312821851255341868982522936700417621331726821542239280802512613351731551437056678151183856382203970541603224013785571209922740976390915651833659730163639228378866356949912056071079363618804882644630604415262828906144048454129843387957856345364624102806493503067833334500795086245396799964114287723650674024756627755555787322626816137721642640339085150716633919749674594883606167286614178916452374231669421809866148548606898356228712533714233898087826709748892806525299475365276686770291758717683267930957081263856492735537200778540175464622609617317595727523126019119466523337648594347834233126408255392889382324153267158453399823233758712368852326966021683736374172944353899877416229496576477043275235187876790095755715609708436391595607115672185423580534227072287471697793351453564540839162132406099326677864276609274900796318727331232992974118620979706010754783225941259316714392517790212268574141217947295574770245943060973164258175388895394266271416630561195277498064978427320917005763456929609205935523578941078622579028568680494894166486925710749911622837466202586899388025713968942362081181345978401312478054481753019286915042785730382907908538732639608089640485275748728299441389411749854140937466231378659098667383500351357225285325588566980467316048811177618847579526802319469470313985485864621286576093424347718917803110960194009460283410012761259359913164318456223560469110287799746369645108334158426259950806057599024004214676670458892190655357013434631969301230585018114640800524208410626526961959212134143527495446918334833240401953470985880460839873889700526444636484256670642114643813890697798821387636873031471942140139013179769672232136622838276501650729815028673350983619695450312255763599116770778577617947207653989031221053508678318523253059116124331890699656058806331514577177115431590748485577521476737095847689334280014015599305040269964102162439404770409565852554448002111739344886559378398604961144333710059061597154632189922453059050903399226637362415106121608919544076269040573360795996268605217640639918054125726743327774581154653663964807721051585685863596793591155913991411113076987452188775448737040455411753990139303057478164926524126591113037272058978944409044204890392248674373968624068051789266715652720195200506213425551154933461814954715187953380103977992510400838162198771482742056303382407731448249901441536861332008375002295881949993470493401222987842495119051319531291239083419729971901639947796644945434396396689779141161404190966047513610673624734158862363011424933705535033849875878093378019485238245444651240239501534239760524539048043654748518728913285030410322682090810113181589880809453804659813144561530167354628974501249524449389840569974434476882522123886041301207521911086752533398934978549545457314331880049092251203250676848102018481177442729934882033523092234806953483510676084691155208071665615131111199746308931787890317641617245436851102011298217922113651615790123817591229359951677775135086259821283256669914097708663403528618176676509371407706237608160890882744826675717318029362927442469404610485924787414450798034932272265843103434504366686410752874079730795812197457536999239819093494190039812656128701216673540537501816978523752260945337248542623841640918522966365683855242399627761703684425267725592453240186418272798306975385625814305879353246106572694217392246242146322627989897520262447169430036990650112661432079519844166521323436618175826714836671678396478642786085372518922758462718478945322301600896222001968297478912847558252390571632859674681713745501721246116955397310143871242320791409776224868167389239956185489061410257255339708844898547146594607013327346786609262248362798509177176983004976458220986655041082166759123262529173395011471049854599783889990494823683303912396250068266817835045963734598544563855373975555612656723390057561674512907538112103993895794364989279289332633634387488752672951543862529588319302987163345613702682024361962607198733113582454977640556368034027328570758784222992645635656749155102610438813680015147560933637358300108337866201688056652482350144887935278518342209183617159189546712454840800806534401062046915034714708854368551757318601476180528376811566826156972077894023238276543342810759087288425281225860597344497975390824521856348363744098242431456900756940473842738278940423252656160769485667964598890686549447056632619625932809319242522281819772980533635861900019457593507090943075351868821919656697142154919982181516450658940718610541454403732419198931060767828181499412158839023031926570865236740326573288333896209544607683665311252975044580850137582159858356332256267079112445766191749588495400991641388578371421523570246541564730086039996466537118902539611311208562427002224143206408949336929873875912931666519447966243645226849163350204293077285840876932065194316090960340526698993495167270810676721490430161946622661942982627170500469001629849025415516982969188505698645957747253077228095032568417822621829128848232805455368407089675429349565331935845279533028562446476770402074870602656964773494647212990355976798907862410338923235846387858763074866007487929549537149926510298191876017198119073642039503775467007410286119683580685210222450640415505147579805682368675066895292164246154245813640106384296026717582361570345664715811411738244058787292983738155260604614644284335785946631486749919586339982078246784241072540246339731808715838879565651604132353707848810098873021516942797747477358813719455873440917155976655312312940221240347481521753495507972417765201187870285689296497836386550141012712823427172681835638151270862914712034878717881088124536315413420564456381679792445395757091861498096853522505080695008619611119155296801102918769935453273993481049356604257350276913769021153954792301604170513948731383046736723825379727391783888073571739708886612303109980191369809327581513190375905632131575869393683527686803482746479993758801477697913856832204246007213567095231199041833928046860773465685727873454053370809927304703563998114253576269398388044480760947696869768040008759187214794715258638316933170409348785557051679038972204432011999013001211289247761271393886968127897864219630835219241461067792895330725280364306083736437683839674915360662761696112324665758345177819075601929429495006465731742280706806463345355604372055309630410191175774323891184359195658364931871357856933139097916218291559858668784484962032749560156838332812998180638396656545119426628452640851601151352301912913854779220819083699106873816797747893873042510737679357783047364200519946619299605325877895862332307973887880177098139887152734952140378877515901205457801568169119191943606049170933647495449632576579365614065709397963504498521040091136027011652326909357727380328855881306029704241962679947401582724008803188570890851760962801501752864768515324228511096626480801405973874629445931613127952037826643299472041324614375712319027949653188641792154740488081366297698833744898372779560604559226508360468970360157673056491828550430961847916366438502956986999353981109965059461010828526191677660570194444666699631421103825453231786893171522286181558650728848822812564340815524371525393138485141808388171544433356173564748350404317214077866041154277216942922887022222279140688763181406387003648826160959038953583449291781936182120807675615990468580330314150771751969760678231740250164079681835061822109681087826163121092289550875775440423500286968212864320772345869331765103286858650834876306977696769006814996166782715163029771309830148011482230851303865034805453351333266560058573346560234614205998652189144364767607092990357302131499022177718165365821714572650942503996866705472850466406711931029204309564943900538697633291520179108949562997761393358545287589696930016564416955848461798780681635743325384116320626870959979825764005580276459710614421183255544356316720718746978379196405610181125817346898676914548219349041875934888868781109158801049366824096843050479181692493506224084169989206701685368463714422292600250926986495954394525145406830387946550437344177907423041273078292744828017093114625673376171894193532497513681351877849227166154741820233398316551885573585694368274022248704615043669715039320334062574038038385057506205439637637065681817942881785233486630280917349917884170941315625108476087850776499792714553295889654968444014193155899064399103923419303596029404915673976433257836267394396660114644932901060742008584578159325761571828394997850478264628827032153647320294716320496172094843494060640667081751534977640087912791114482577730896252338063923184347811324149009589904456322555002239842348836652569965252865003485109347957133082336419943014824762074173512812174005725341545263822814299136920802315891834076945548619582339114803669955871784427785603771993523603943664727740682183709426914419339272192762945129617214243289532541402576009584461247515930705156351618653261733084940527488126330374133983090556253735794309968656717146688546484595428678431016048211817731261371936503773018755693667350851018602492295145943452632278264053153688523953941429764822226399959596863619751618498709448925453349580983870621899222823067293571623264003582204859088324384167856382630866807433655777476641397309849418063677258015786767093891009390852871643816281808971171680735732253522038569666942399704602517065043352584953981889749568607613004246533254389594623795354933704445022139984706873887405745903796874064008671383441352751858417200797396472399538856518906240330052339208702489397536397777636717011340908559645941000545313856397632170707357149626866624240474301604313942367040470850339653952586490280858735742326057367104559090917116393883666531313529770523013597716959204202522846668845521410568960427167974595871447291737204227140202255817895594332994756628110469710011327001430851046043759420296942119744505105563176497436136840622756705237976567098083638317076707486022099331943643018674531675136123124720168775645477413680685143808616971660085658149757972790669189689961374932785759497261337791431456850225318211093130262806958815309394311717616365977099228626204378381142112843008428451662607952520709099459003320828382913713716312104364270076777683039749228554374627516569197865855018613820285657781880113262636737578003477366052513204157534748358192296025824552780050333175629612706667342475879944168848908135990046521506571370872612100031356743222150634411911256661844898142351958286988786837035572309218312330489529198006239492588725301047908516349530499506565592573328553188485081643418295615028717441018204787100693904954919010661190449976738638441851284185133210924553806446237866120015096906559310006116867555301663813261184582122095635649592849578876639874279163102775356913680392044468057494822623528017882395398215346393791466512222352681738352005474701506259896313006034105421095451923367073841905778927659990127125778147819162885792907428234205717186022198422632067022553546666224001685498637450765711105737293786488210415999511499016274095240870647262066682321593924733699908079795370796028687585905157078302464902592453138814800979052439135438986008453906915809950108468519716927722968795925082237369335440005639941286854779909387051133585693843456162027195677651188501478309783352418077385091666439141834570614422390574880661637404124883362851871166021819962338753841505352535827560338671712037825206307554657880288835787660495879821919880920602076618719188470683757126982248585459165820773921312907354535381593690692948492770583533540037246827471828838105671081610880799907300313124987986077490645504405785076286111325237299655532484624419765652699078721188843334587601392516766959909217283589474837057376350758328314639274940708383316460985990134618272324701133240169530475785980829130638262188450539513476580028256693550275138115821195728426397561748906847024561365294525268894201125258406696702140871383856986170045203288843351843294206733121096454163361525692071700472023076201742328957978628593047888929129819631546568000156940217108975495998198305393780493720267267323222263299870166675714088781679148245940534271033907385607174123989206550980483477754337132217283218396531630859147494599924401299592057128932298913734272786668428939923113835094419670066128712014152742212461473313325403705559853984890724590891259534426147114327243232788215909677392789924167888235000703213969247612738141469742723276565838801897125950389831811770817088734944282086608185148390583827850277506741598052934650789318618425904549636366908555251638333680932613751775789476091179317334463909727180398583089541590018284923618944541987048643946830773923431188511815637306563608714158981943540129605175822916731085059913664361976101213618212455119417216842818858927616701373029757947348596480330383591748783386795648545914371056204825844552879892783870686969248329518458352271609788126875940515454511085869234887908345723379645475685845699513454670544263100797155256741177203631723385502788160782158160365962046556043162520490921312877618109665250527699597321657734633336176835363620785433244646384499715136416888088472971251025624108520027035738437867400480130724170815988682684168091700481408423766884248794148507041498405301666234163248786153009164913300849175276394451169546128735353844427443425644646134095064995952733198338979386911131316679913238810322871168868040317754437719466208867104471249050468098672950377831773175098521208531076217014159804682233753914361301639383445275054363470738969779842795862499029409714205948907646467768567104620091210280414827354470414479506253809257948003260503536798851779954418116674245544147629320692381536021565075765314055529391558800375822928460608619176818642041811183553152828451778189646687480208630026817581263558027542799194326811754480376075240919658059633041399868605638180345178292409780985015780447954298391738288247954967287231823037990052128652598199009365786477406109779151511337614978933316307395448447880698426588894363228778234013502129016710781274546080673385521899958145696001230284915933413484083084265530513311106305651476885792164973874632653099941391842615749884180428167007119002753554533340998945786215426864699526648334737098146754813996517275442563680081114227194325058578503794773368443691779542939008518592796243373391321176758313958589596877289859142449000634124800947285671973639509586644771925098166806377369054276652432016181250980931689723458950168581437081236419915885120392794145509927292980198818159907161666315231464197100296758041186808559531743836007485789932185473100686313636108341556993415429781430148103093674215578596998655536177961386559997818554009000342264021323527975726146833321009407464488758581745254409933106500166439056192256037840624108568124806820605631598586191923948370105954398107983721318840147967882625777074049829685280489166586404728127328571526285221547422198642958738187459280473301575115427998381558042537053021633633579619227281167014257460872001627913491919160395176456795163075286987488031201067174862938899579938884547372727788342602720170427400612962241708656599834294042948171747503553822474040354488194832337662980925898749721422443110163904345892335565836119809116081910297014162079574659625757872659977765936724145869422622887365174896001287879696343767646584486417152218735647790843892285921015227922716837542647657267069159732144681985463775172255505108932430169071368084696700535146033485100327142626045711376515809751005578305700949359661716478135438763250095845384336707187368950333266766608805103071934404494347573734114879411200187714107234190388945403629957157306108863195840979112248187514604788980080924657861571015053917386826632234636540797226336709652446209978496932900421136500419397345896540304285663218473851667661013421353680394103906121603490362165600153802603713075478092146537425368975387074995044208175841287627240768350370475556384970415192439529965298756948436251775761613367632460403983287572617078593138349707807098294557556429880013238186443182252364795826216825308420471492101840771189352652780963163352836173509435650807047401962719179797069433525471835693534113442100037715490948552784282353468889967693629305527684303459392107036589622056610943853880133418970121234282541699739853369434496195892439626969181010514725256515699718425808207137580022635662859898686947698325491496254245574120793008043653560574118488159112768718435960899091094908413959517734106168249493572034737790352921072012239826784258131279344697238438596011965766005478308183503642911069377767040434590746276433700509255511365833133701135753209005732377886863620350987390877412171712942879922463026596550531569037341573921527195305966803981374840867313734278676134162959742615915018490916564922579767279112713541158164522491888801096599304106916201909368654455389851723431907497049945424725262993054338314577279806006156072052834269500088215281730381945758869298574856383919691521780756899588388208655951626660816729211246189725974977981756706343143965644717062501736811132649326138789645075824202976211738736703963989803258750491707443793382263496971317193838829027319186184039705175189109000833526011541230253891908946927139051827539518269217134972104492116222802928059326937131911711014332548867704548950421367481971183974151762400214988036223394386571798585026440291357312962736690213626873094817104638652791511816182907105601264382093843109163589203734807074548553575304021170258746094871268102083424698092766300380521761023426348733186325916310162283626984417249025929123398763286078830111070991775389172424350318126098165503259645701766220956244567617398316080654023240870650426989305644525962913156445169714558803294170148145951157566035355072110603184957584586576375765297078512159474543682228085706757447856278526324877468392236371365066371573266360400818714757949512698879847999397424746583800920651049216826058366494549638068256311853836559787414755254856290108499630005088429801861190798665717884728353665244496183147354115543529858912260138987383559036825134656878586588110765672278094194529643579148628460187214407030557831122724184315091790340150475362539138967396634704333491502114156058001276129227957281490742541865645976229573974543836201941826366627079414952862656531702978248073148980827269272668175236578579622949330874962782757508166738408952784833949568936795814468423768847294532202134033882448565163517013928246725639304837615916918502984082670873462017337034192976712258979501681875333297236015012188719617993474645408328645283872546729921490214936346317835338666800017429727490597921891568527199667817168890812073850541676444878195881043332618639542109748719102305413177694348104072888550190616399652737971030911608781349781835140746591669813909058718531967714233757535508698982827847944116008808428798096046403281359569967020370130860399235804950362972577371428754977022988624275004767658068652890055104545504425778158298044984811466501937569811562802092299413273117569219041170556365583971849237070429397307934875117281531959601135452712152136865727091541701150998778437601075296070368461610595479210059258916009237421355392145541882475712107017699285833552320395624064263769527986696221516768777108743558764829056518987190274830789273437507825511934278804498335487962735448358270285859554891343742547895511621394323407689684327068709933433088694817643488184982993722807984862504455037394349477485731272366235603869118823110238235981706720015928000559723436006285155382353018993153280842102667544683325582315586032585900595246533867502285816165012059574306678470268554332124776361355556859224315372490701572636100693264659862554784487215858491265283226700034861949791279037187111451729482962353870169931107771242979938176427345199284453576522518227410614824071330569579728058578584576702063642835798910844241718828171803085302921936286196894959322155112290571599381783802662743502848606550484244854321418369666639200881573989718891136797088665236403291735892616592794354416697040032302033331591952945014662977721990873094503345263116965372919149548693678397019934547714545478155117300192411928457668462303087064196565336780716172896229858409928999694755837332820116651400419377733319624857803445728879521790035382801738343251127774505560678982011725391936911474978962669361451738674853886672258869151492458871542371585633001615467825877727014477564379923147951544047266536758598029888922609314524446951020123368531366671259345800951820693756184569429882586681265358559662785271633920010011726892304251664322663974096673241281274377949412652532414828230753791764439352011800164388737226408635877041624751539030941236698780450871719265795018297720564708697524116168313525606421966337374084844394662075963024760135189329764798363279743195204161312213871149478530681375305614868465561425172846497666602755436856768273701691039736937205268608118115528121715177561998934530091101566233232836865216808561660001760581741063789194479356552476603225977018884027558087218939036403059845346662658144348996706953843292742178423127813586580334562271828686897158131891219864540524563617749976714860780359296631318089080137571918764310619202743553669390917883832142970510648841388765169137247502785722082890621361273911596112268454768367054524645946299720929259232700672896494452408886581462042910203163303814213066442140408252249257433902154717128434503248740753459865121661046761721588991685755449544543627033435670670971462092699000861044972657298566695851618252004829443143666673655503432500108515052775707452052177494759184221814531847161621420970687253931503211054833529559664329969658780071735951308186217913869693643107798074437913181358341018623414173881272266439928161418068305587502783499163952002474563543570807632787445068508665537802755413800133336246090308071563478866816035008311226918552099465434629490060550932949189623739961258784915818113291200012193956354802568060139502609702458826238977996262498273458137593027422203383854482692146321861175913136280493367527248925600614711275921642761843271751539794797230004762709019877616727395688897570345292927591553731088404680203143591239595463351648822719060229045483834458146372190965093033612647240978078193887762325862318622817732388326805408504801645633936034155199317436622498549222824534722795092210491077542024050157313957968532271911199734457862684310724055628853650976072895049898649045047741062398188789593971615879810297721894746931691157719461761337356125305953510459425570000129033704099054628099932330779054153393613733826555680333566260424259629598704620838144483029677593110694235798149663548742075228995616671946023780521680282666130369577486947230672691510811010572681506161515606393015540003290204628477596759705103773864038048134964348518504741669070123794394391152532270123526227702093232822920631242810979808400742836540751638697046644186191078373908125881040496345920679246028986495551493842447854602126990209541931261208049782320118456312458505662757327998042545857337298636485768345959466553971496830444837298321147710117510061255417264298046727564798534281595798154528385879082730922332552385457679283802504058806732261095982618397270645234782703948551870845275805504511124727239494419136670844668995607726269936799200514682488220047276761690309657372548791676077448085671032600124986254588476338247790269700252024639592825562353953011110893260432775991165842174392332311556203166046419618719241906069097720511252285244747997447820635160826416814688254988061026827671899465616425982769736477523893051895092613514771907500059917943606137536367625783171642298425660944049990578352970675048511165050767221114822892648899723385412716535489630307621860064746296501176686271909942135930680158165601483219515863680427471895280104458746503231712798268077229697245489201693469763818932497409600834251744765122771840491658164036311877326486513520412490928470843400097071672901981034415016732882464855952340365858604162173404395309159820333559070387251972809141442569047528663697450603539049536169976985342503208116551913049019607102561972797908132709755858076834750793990580006320313299602854075294212890470366597610854052237803226716063645892447326330834987401942545086622842366684224755405988974790221964837937931534832256348009106185036000366335964317521519978879778743021688459277826874983709927192290529517293199492325282120033540877472530370765649951317434461777634431012907016687493003603398398139195509211307127746763037811213224535912158868753981690857301013171105245358944401086946367219509254942963908586345786259020262270921824870850944750236672675702642639109658358964926222364205080336753541299656475310360992177594778178204896014404869433273204365718775162565622773132548561441489405640518598189999201352927155019109907962468619878976256990054028694145432947314424895383075631585458703417777342805270169882683340309526743776282586966045279116536280207685910842857476100207536640800384946366681654338113431120597815211664201399633797885000816920452731485950471580063462593143824545117309353104071696335135719444976165984666793596901090889046198261882119130055375393050128941540683164254973975281581566757241024349413165627815663366549878967408651547126485705317999544937435725206258624831711821697968916824133820247251888841397519177385220960163720619903662617328395731429557579428152417833870172945052540253975397945478497466366228149515138337427042431696633501031075174656319812271278385678647728975791761589802330620231335184940483478558487339797356135390064823715230092708349105300722442498290717684056211595978630868850449426472488760177759127116734398863076072008978922977761752523219717551881829175110129445425717000246864541170780416730707887377193539717038259632476512507579753082899792756955338531232869397007629690671555708293909689323759938348662146284100429443856509394056025776145655147465256241622776304094264800035411604993790205904596789657339982731970016440884519620968560542598274659103138108513939044352993609080917856837959221599708463573859859483259687875253874810634821018154754013484034690523488061713146603002939065703229120595760870762044530556258592497326917915501099353287051975173128702275064302578389126506385417486022477024510352150937946325826042926866927257815639381730537376192271282404292245563380520554263510421855698276151536842815858457406578729134206130955876506249960699426026624179203258293596365437729413191056819827215158119673659494350645392717644728155648786348702511421599392480967510271878596514078167239796035880440414041108868144063279237853954792628718183989013016593772173501460560604227531240420117058069718822070026029268950562274604685583702855241539790522029671077701828603107467161500410415747420221882878189446065930515048825697532479035713389603802235601857506796134951854893949114397962733036667671372316484178056553986639441324418857798997781448654754347551653005949042696713694104727557409882670795424339080321519769618015209018291481058648525951226793429235616546187345618419808446712502119523942403142984481518826834512031819825496360319271440285864490759703809541928875225245812042642995964719350494040379147021930821520472678048562312779588500273295632257757172578082170146846127511889906276306774011427815780113454324979600762754868500224228913902359873822829390601191410593417795701729805890906511753779680776604552016893879201191632101175737768468533977278604277296634082238778671656257944250652964432296309447754398562353207837603875836015354319863675165220944498541281069456583845422984457862626763797421044447338552824864520434199759094343682034733057307047546598738530666859476246840198028177935037963656224710105591573816075979483211353076553920426043217556134942787690517527998504521523136231737981382762231067937244917278992251216130690169552817701200572306969202571179721575190404270544694456182133159391014773456166128930948502748698327785044819516517148729283447883468842324224004013269704052121404893543412991984808230417490911167522782156459907275403287743891293862270340476313755905901440928223194950546201844486335053468646553768925785389605075520212994420698276391239917466932822876045229055235734853662319612175211873183377106154612441701813736598048273231513207372345111956690775162223308990095826292282319196372835325335986213106959426633695659736732347019099756892448389316024365103320759459519091509569642407923684366449965540604489686747189434674722924243676099673001495772825008944870454269992654783133612035248099561426415521230984736345677063622259226933783088812430669454867871054892085397807392963320391708299336786252825322503171249763511101730228672020594133105538832449034762942239120094752006594047438664552746605280623163644576584836375605524522193345083730520252925951192985351461731616767505130511087772657541985820028221905652135500164468676530276343129569867673217769346513577038763794416905662864995471177468064542816336684433063477714503200425237547469285033566467126308053100885862680742493750750210323996440316877885395890064215223133143522175852798818171184989746044206606831768426204451864482382441585932219012365961945769085387388146317085579481477321689189521021826893123251293436259637970207828526936452771769565920944387799616263485011798342234455534455505735852177454699794552253663919546942837084412076987103009762224588598289914420887088143524788018060968201578530926201998322122509447041067900706122709341856531237237384800772723923507638747835024131970524824181068054610547161659378720971422940037945057340044998985316143171133862895607157401331162660480968836661764588414555216429990039174387288446245628360417332078892495790945649630210644811809491579920188382459437556126608631998694160766424099444815369328356330366614118568591892464219586474466555526729833874647788816926588386678446814477605821434107657031967668743138416117072727780161744237454030903841587936832044885356677992212575728038085119167752501513067946704540441536167028993326216039882527561362049072367955445280720529983100091253781900376666396129837646841441085782894445606035002527715537078745876979654193315156379291338850954130126705738371755640945983129050223779716080025119867781818340769000349327524095406225275353116703511872176546477728942286800909276293059823700073769676125876885794756209335173603716918505953717940542117061101855095987258792701283592015638236153499726559900663255182403546519900858588855667608114956593763704733188160251196524499137675317866045364958611155683591398007783961440073773613139167923345482099091277223904317041401265023744701883469572511135884794260529411433653497158186958582781400867972356229267611446474289716306105125553353442973809616793006918837089546570393488256370945153177314448158386487302659685062884683908207966287332178928860542716148245106628233531791758504721690944880933046390652298292824523327424528098824601789666109455037960997226926012482638697498966215333445983935769352047017165848545790168577213904619328082307833354847676572555204934184752832176647038289080057703971062637371372581305269577329268044235799840235102224498366312037155576176249664848328323536748348085307645018352742247546481000512386035253056867265708478877724134659987914804278589477426023443673943248883585270434338147678789932771400054939893329144966384997305299908488706045611118329998926844216833218020340427377367347483130880804844862558257072310415711586664983105878845809903600641445186759965648946802321027710691171713616874835713655877462331565807889463365968674112964744954947215549153143376681956866932953446112985448789586534183217337043425575725003535741459632023671846577235430481542796874341200536718351674235766178105158637423973286341376266267785218711213962600987822450694420332799264459924184537759852448942263071650354836722422345945312563657197374974997147168039950155206134568131606858195825073629609899434691737644404719251164974439207385896706168485693284076280587765855139290776653825263377235033621881149446607552110819923866405004171221733595315585263910913908543794182216670166098552335228874683190123476273797031755445947786521809327048625835647161113964338419277730430124245867940098436745167982351149150920412328902809047051788133050587113342463475083129933068883923292173432103200558879675095535811220117761366204384795045515650015709231798869148903338034931002170839127475812409017313429105364227769394631674274994405164548528794573899916081093292335400135860306375231609502870062097991599363957300624277192700640916057158741638204747292254257607549354047403846130732762835024750396808855720623138716606770032107287769343590930466827290641440769405732696706887682352349279303455458035860045847770385661212396833128294226420662121686303980956814511436053949342533517320587648310698991431166689302563818863179884816307496872327174011402445693197051326126889921832427915981820155463674653984988995648184985939276922112392968498935697476040084383907460302356161004219292920514304467821016815865582061758868104383680269991380127349039480490071552564125888118320164136371965943845080735324446186655839313478187568061922521755150412897099434034276197586297970422492227089183046583849332625720567385510294957057174269346449099944369390120979526016445926027504700617362290160831160224787412082264595538216299926273191205592059770847292290077871275710415179955320063554462109621042710545150123227408870812292080938760316289441177160802907131881746272643251854761327030036194864898648105178516779912576384750174391131653537071286165315590787501036408246721166126519683440807733112095893222730090592903546627342998523289039908843896237215724237518089764418320615142416936901638687517014360325146873942967475630121896953105865067546960798987390878850545978218038382929931177064370437512994859970126253678298376600682373090251572767772737765238848512112234361479060844223630043103857796832591886947264643620584859640472646976520796920695371161287267953245407817585736017591595001223475755271364462634133770028225474243771591243679041195484689819696897905037450013272540024184111244677065633953201560903992906247208207547803701144478719234817920888113275073951686614101645633233131257496274580745926359534702909084223159986549794576061847863980592584266801213593590395647762046685091506338911741330556550256882181261232611240706254536377132328760831125782500243023743504415661602591631894248005340010426114076771551164130828264451323368720445379667070577271354064252052250153404555349305050615908972922532381605043606649222562806381658516497414030906053812564058803981417180218489977013726561042721344632631006914766156479347683942100195059120094219839949514830683693870279815793057388954148394165488332379941069933791867015696706702572946210429798384872994186776890412355625062743302496885934785756148600323424454774589756345443699855211810539780511863320045632376415517762739047856397584956949188915753846793899475462266589377724358523194070623613482171167535410617929311650070391491336535499885709685334970850319239527530133295630857686058556803038097134335670939574936198334771139669897099391285858356485138521387736065455801163972093692570892233322306781506460539746738668958271420600339510879637950324054590592873914997867461390688813071012621392099085014122115817039454780796806701543402370078565166242710275056949031541224726369282149261944357770884528820238613672665475757004594712426907854186153688175365109708824179046033060467148505517175937966475426843197513677787872197230907976272781951074903115558772027979911720355274400609259436898359389674657802828183677177390779403809583154194069327031758955407578729995411278705841122421800588915761044176359507030953324000673943199245346275808507728432805250310971868747588842413305929303417267107830664149033407092231296346605946372906484284133645961264541722619574023507135182750317409868985143941984581930118834267379443490309639988181520798980872210363068808000038026845478562652017795566586741370684358607628478225348805259126995158266991608360823251218293153682289433103974257273458284683424920007041739150549651905507742401948083740149754962680742939146860916423865575562499123603960608008405242630258159569933203512303951631971068027226596709039016399430918927052655743193438097029731068043724001328083474921680175063088482699765991964019758093159003054309475409533178896963227090459112843607201919480119300978729993862537101433794150584880126008203468064656548126647251148833027827447450572791562876261476296597385244071432589144163459260938742266485072330170721340993162821870970501868716120284336153262708336728566751605885236178521763124140482246683889392879484830907161695612327333727757972703082089037163768912772678631005872686302447075844215769721800438225931266408533936306519612486660119458575570292683213990000376584399023758768103620894337723664415293859429474374587114734890121413886172883285302334124636097169002259492380251392492466584675785622234303496104273792411662281863124576751541706153693326047394287962997045831021730957883083831127513742792448254596316116172656786106883765321989330385981827634429323053774677352391150583386665890907233289213873272036670042141012979891149949957908057558448711035017962749134605311422150667962878387197445953264854917853042708712598612530807620580156183952796659608964877143320591538138593744716751816553395202227732246565886291355528868533657731693426286909999793449979892697317299495558259676611175587718656472149822963625174445819725617532307782466737543756008627175076481308844467505281004722932278445468348720395476603035888152715391794215608590725126557449011977568128430556209977496918006520024641927954507022638711596629683234749325445705755449325121803231591517367180729174497748201650148555848783819187923751571826427463031235618877437065540946331382235240707702219599456632984966089174025675777578224996423610380864544342682205194672023477074271041535808065402854634640427519425565614057733465542949295972335737022563920538318479073332817518971197246242195229401627424959467946536601155497973340051418496546903794982531532549706191700092179935763137367590719438042032862420062574769298354592321034030834284741287122718959080530275960663823124300026214911634970024105541291234044501049108266019754780547650778649502841520200854349876589805649455110620736620824542002807908370303829289418807525973253845687064493678963263810885172598033113253822808714333311739719378426519598732999700443598647158968089506266439338787091630939348445462593484328432051853595195354986657087894411037655977696377323921845184851632689776419097204768281150836450192218754047763642760824177666633072371887176350615595053003072304047937056698139128576360666533828519674538685252705625737095315496830808301041213554443694219399120509908589313892793813182679656468986878743986563924767215986001408488209384415568415631910289717342540866223968281489120991245776040606147310338905512433278981928356079092991051183002577848420519998113345721854906327811920996163925177562187627194367667532037969465684406819551317533294905079293395312731430856928229968939525442679054716082755082997193803407671746592251686663387372400483402249967233794509001139585116807374458353764251745124023375985974641150273823079468832297728836519800175860934751097780936236996587089838350652570332086556869936924251192211211200422058839106307032083288470462324201890652878152903933783652281650336363857514293188684050851529703550838552642956385655738245206280408379941059179279643026372760672876663548252818455244327618635559357903828523595284699058713962174220437944627744291093812276410556387976154886962617062520316920603158912414291414182403444353085239905967956962516841419114902762135111426129068831446952677714940448858703595456046816725187153413043067000669982061294720945857325019582718502186079584797771947227815917282859950589788822616646202915332217825378136995967911174969927352561433758461241813513911678132507524514514521774976492423867875099830671047812565544507529793111436402482438417828152601327450112938590480560382703629044207375161168661048145604951715126964708379605366735545142726594364646639325240907779929705787702575294513365536287266115240588178027515825824497091305426421850132937148807027765988271952984250526189163582813464146322228287714261397724839894390630648755300229439300245964834909896028844301895981867403164761428948251678279288349689103354700568167990289495792113593436583321623991524048756711705535316713320780738520718100773091739485048006591544789900667170251271333919625363530112789237879302443115781406720450664006102073082268052501348445224829319142177209941771144599627246376302748966860777062834519318980150857227778168637311196298176598507613856985580046317914377550810356231598009165670788790178079977884730191388217145206193902058609064066824534173893705137154837958012541605092554467341740101561431885127385899788384029136931822845485416298178902861011219809438108951354657646233123394543278987241907172589231114546625863610780892688207866856587375954705763644048962834060760151685252944108249010873448283098249474662624925246322280341626995812295268056043620998538873364685144806263485191093277328806033135320896414227314182461145884617853415229900040475655016522291228198470427862804750282447743493524632355466967327066156211216682389111352503412867044903493180729228098881565934372096400048725317460979233569484963212339471638150836958342845890350726602948701063593972782351970728970887171921061771620225812021026598576969398237974999940376742113580221951363249995210142944620449969360558468835137103153853368796488270618869910354958503327651405029374114754092035751864262831942263957205421779032540071978669529997895096483921765274706092757912625633972633909437956413782096514973125021232176469840065577465111624275889212319257957290251719325048231966307760891198718390272519981144178151559329874431876186654570356649435587370466802515014493281789183743195465822888723367281964211352562456344962142165891372955722013581218892951602530655472382419795443935382719183627288744998198300533720816897718737653079451870479251549974519834186652602080005851645097450564860072538158306573683664559195954151178126889684418898010205174642897603859280979903706653621612993485736511009866329381865366502084853960770730949685168479729190683329608890286622073662669542529211605044417843918110129163423392265706578029281856963721469186406197435966348859540756111333276605907701593573444945677984644135709922493749091500096603364967110942834379572434304338771266167796674153641604086239820970291456419903550123067213255030614616694020547951803976950028137050162927546533683039486904720298956827284590688421768245947097810828053352192426063985154124584010940544983850294395350848014848310287362353735996476023620774133005313061716440539610847820453862101074923327502412033925241968720910993291598686916333358769854277727969258127798454889029995594474843938062918910206057899385738433552078839122494910211114084455244992025779423772964014864467808315126322605646369177551180756417242424720338148492510319178789303129969628990727356744050750781634393513760028704158426923926425871856745073977226925615881232284331203845627206339370701911376817737189822620175797644051652722291949008267176797501305921729025912754092942475502086064053496786357629615623902003626328346354041307317079567594215387942222491285919065034072387380059925614898471208212724801400177704810441936988661627408684266551418524384342242253084805043553440638718798569310626721470610541381927096772099003335650220168151821319984692486092109566252438549905882124624252533764115194043995647439532548043964496347450793949814419208329121254078335388219374666330733287744779770233412046445094256358901475609028238080672162549530458713387147934418202705602609479957738855315655536878531444766978381126156576411757654445190671581381857730397821271642452685137750208871070853353667986805013605431163788551316073018710277510411424730605964093455066309480085251819281826128633708739535790978903101919978388363359315431119113303080917841606577301104616165753615844990777549735832509941866247179502183884540888697644816325239516298423930503688779072882404708934097613480762969526955069288923285966708982395972197306816238936533036087734628373418534555428876568606970988479547923941000847458712907014532789201046303588005812016988820132915934955010785467849707638084518481243287240611682111047770069801887602108671844145359730360866618537885500863232775629988277524991058151965388020374542442335397386795613134915687032909602134791649046454747052884191071088055154017076239772705521240965864945570467671170271181409182548732084975895629300462653197280047122335336106235870016322673877453937025298094050197247610209375165826690411074533294247387945802106595365825025499838574444220191230970934738180566756741898552705063014630700343807173095799767600756935615346867762889683224246742959303150096544556005096056631339199963174806099221461430686272379468844429096445332930814008524528246423502283534101490338332011984215062318223530662797129604846233601852853054123398077444049233176193797715617070707235515984612469461644625270539083741772339636644050348236306403540285747103954285262522753289134142402457790520431869409811158009349935089175507491958500774471740223337827484267543690828122739603998258222393182498753496014588462196991941221184597611322003460092933597950020325642407901305708156656119058648665504544780020445021833770408486348900768330612556587341419019056692583619461855276535555205574182526576861811674854874103403744773988064583409571227616435076935943219741377668061420935729730808531095585528973451267488989484924318889576746686187058488312782160447488770174755583600739596734997159354490295100454327617769427634205768563087567075409424106456653155887105222603410529779061639867809580675067760013778611692847166163326682967260538233118006218424330751400322293221399344773207480673938656756211084713108742949409248625850771184779101381683711909621444848665382132453247725296685868031094105216786802060812667309470240351991943056030200396673972736664262614211541590379491967349716189373911218996093467392445794392371660501979520571463938544841512630311387742255398780736600833835907270972847158308037448485659592182063738892566999555562878885769268536202326037638171993646248057047997351915788827202097046278477975113187199923607777578091860195892793532297091903275070055385477226278212383757526127771827725790172349221872860950227759442369779803451267891525616135520624901540122122185711223086946966597588630041195087731989374138107029559929460434805033545374306487019727539467575814170631323755904486664354541122533850951902042059454480608576021709828814165845529800900951682645084331520174999133427136292884457478493188787860738167466493168801728318638739605009187161844613790564705990545635998051372884414520287773600888366519345926339766788859063829661928474727622735445050670631545551624302571013997731924427277021638105437529533936416568512656392343797154559063665366690335706081929165930664596498853504270246163386652890472781857604524748037742390526984192799707037330492814635433308417360486920840110899095680926972557268458600959606905728063154303809682362242933294487116184345621662132376966364048760330075265925128614549799087104032584209969958403958331976254199535963222426846294537939493506997427201025562891765488863175014697183684785973819561579339102858392490231592774543385094497376690948305228629441132831971338993335002735696606280931823047469860153294245983204437627669910080188254470792473636325364102912872652834742444031587081232361786106288606660394753864714519144724282142515827099979793215206779680292626167826513305526062903465647026861691201890779098151171540227189726066967485156673458085413873967492320969274370517030427471690511015021407664581471489966931306038980036121903647826162664249803976244933944300106750774967026978890928883637442124981839589121155276330769514209410753327436366356962823856234228271246832980839897261435108649647695791035287390544783433757954570450003043545836128079712348153875197982873511411860846623888954935097626394638296143545802572027541872199178120034135975011074601268519551561142257730842478030243862109987899275283605422857730144774936039417143347409436304171265136109868949012755083220741945928781526327174522958680287453958561254991624275549335878915825958537229788909763469343133764656175499593949511682384914766064758806519415789833525771262164152961600388909087523537532808142541533053807127301701329450364586136075532032778188212725504756041749621355176036460555842978796335950776968949770478256951087615003934466206929955081248303491746272648890056513754418233772785967764533712679942116438643677917589035139172792053031339386384282708879212610732855485851531813264796828956504086941792838789806815928693289091415851143102305642144718173791728987305848921960003194588021982595617992648935614063700217713914495926531398144679079037658018109054378521340162102421543436918330938931810772664388811225397774372130995159285668063353515741827198284305400939634794731863791684755207657587416832545241437082964476685878038173918513391951676797801943368008297314288788839307460870734450678864402849340417827996455044342244936423506015273973409648399634590017828927157092138284247512852429219815187383736996527838298514726631224059944722595912450256553166585441966038768633985830637644185499237686557554794361065842345995360418027543208541764099086509372935305418371851128571196703158102907007543664171280895728204509603945672050133693625023453661100923291137522302346857283249331468275535509742137539928534574692419723838523290320428406000127972532496396120729419584779068197995951498504043173967121667373277407433523066722992248194650101696064330682435464560329255696616739563701573116608825570487554288825582313724798753662925594812004531409555799551387370782834315763293370566338520045827604484470582556316810676041751338726370047339234536919032080287209050459882290647427897280386688296811080837918778001860128794047523263332196754045200617750486758247770531031322829188727823001426792175054476103496711325672281604292840899842100795226455936735799673509500794227591755812081377293787707540048183145872302511842455697864855589297588380712924663948920835642765656793821834878015465941682761232413380137511153145877483467060302212995696421987511648605397542393776300325434580789622104840192567333266654311659189893560298252642597427636652581666080251855128392529201180691617797075506953147678928319405823485999437590127559043744717068623604615478985249506513041404399552558429184511843172074783345544333446224765713776031661881181802344109143667666200450680260078004774756122046938731405744837377916869341279407575512036659776062165346791323675866393359822340531036660696959720569603857838429769639841542050394579405414647007103494929251451590213864704816876979933645679523174696589031873987216375561186913150290067737802649856629879536570911115313281692928583633315129695802876973197704236315021945928962530372279780171637353562243248743876566891148728481155396453703790979006941727411274891408007778979740725221226205710556801010484594145135816829375925007837934017601995551842729335574604211630842112693436706088725504216045335220326422950725876133496810502701069397269404186661388192668790959080481279983916059898286655978322543665091200138586248002098925967982016415885688115609991432793272540036159427733239437944587590499572044109888860908887837875623759576893061961913296326584369499281200567170662738715038441866836045119494583672229742704725610192719390302819197621891387377871012216085606545361503395292370402981284389289132086899915211441759438271490436319888351203641411126332859552520105860059949852787682077603866496898174036013647261142624052967152396595903485082794008959669892819641526624959823951593389090129326467200201265606438675619764514156405755831726182107175236029431094614392266242499845833714152774353193415377185894714622644455212218252325066436266488290323217338146186014605875966261659881519037652891551957701393847493369935890380472696623852005529344893169354125825038638820337586934716007526550396662239073517836875624390063309020784537719890286883483038916468401694388537148736847478991824112923829117349429199865593750423988989805791558670334488779107845363457412584625578357954675085546321559109637451411255486952026981834663456970432712826322361950124654466929423376340767770183592401962246047470923881880952191970793756939373062560110025328749454583816238127688316468775498004439261700540177225864437911863578484271913801948885755227196970218598886892941621680747730078079032345734825228910309567037880048879223614173150900700630560944815439406755896049002960793875808150185787602638228670628243996547674144649166688130949190124642778579571520274912813450701390533989326489387869666996012847650962385987374302610645367103721672900559944615627562016250952587038742926420083745103677413052592095472445999735287591878958151699941807796006025191944725141431670492303889951125109107954127384529170326541908206649046468668803315656872174216828041838713623979941457120282062402091865201185534347888929932718232456604396396078285872760026731164231567751846377283644779870471452568981100589704557844006414283369780765175432194558460482659006673336767942708178693815242864187980803981769374996100036892985787599030988722205993091578194276097023782520699114462428154522960749084061089485618478754280527578805426624882971504667136712011936927517126562852661028612427821296444414314930936305025983486671052818031234337709203032294718369553259381536156169341953870488823104585918444192747764440759026610006910183393968324926514609720806837469519626093061083631999809238353136100521796457542156764255002033232548840404970564899725076548684749773080658736293129468235899692379476201304790677083113203831171046541856262812933840601250589986402492845717300787351575335347975215594512985737771666790241722414899482523160420963779116924448447386034134193130960207956641503096466968439269076188469400594188117908354071385152702764196428961015151125933236643785897612143884804900904515019285442811107581588237844293071248564698749746564540079155616223216645792053378458758640883390391747102592492992323229960430472284544241618180007376892397277493397892703120339826527327550249153677349341817204540562907727837110936792612090743702124670844792974233007963433773663129640818895492098518090098882156425528986758792151157699077960185196532530302077172132493151776306682263353321357206387935270868921880269453493457922458809360466016657115197954609671093617774786503848613432631189053683854822566627000954385851895513969060320860914649740182150566380985098920013812133617128196924236705406501639138063275183676594644674454781828827309275869070590854488127409244168157213224767428880954008915546425916442961165050133059344777140705386820808067458128313970461417242955753218005722787017997012627168309729735460654941559117901862349063989200233049726218436929894257321689706410330509262450984885125847390800816152721485565393449544453610080927109594941383280853282324749942749574016611788172321193405917094262275116562564289720416120378874563331105706864984736345851125543073245369718308815384088639562935292625639597286020372912457230576336481949868043345505190702051110268165972199383104329415602411059328602842065903383186831531803906507783652103812311928525260253139626918233044790543591226518699712001238134661253863787191320389959880549173430491948551250992347749600961059857254592918432431836478354421494314678014568772517085006260408967685315706980231809110924671092651988963839070422727236445341415376927386670949043388123821023339703704526893268884258157806039803234335881039907205800057271461690357247177339000659198990362925748272393287405633379071617284314889278837681856142148207958296659241228693509246144267410449225910350905151440046551606649511798010586525902065171398521099350142950362485502187608062664434420572198087003782196799234313488205915136201976541854276187017477146039700493773179296825192285295127226926510317690045067601470985471513386283167182507007817023484785455034523742604838181563171946335612751228021095792647246297088592664755304474154344622432342569766873357160045757165056491477040117299554641207888933710167996078229386520634175134283284366759071995163473631291844994650623349828551448977324167704803323550934671717698441374204970157166881070166066957639421391651793495908496911201661123822433281534453829672218921758320914751736182856163707258518963869301854479143740313198063103376147659016843827922065008622955006430401382542335628395720602486089135688159502272578916428418984427079392538240707988786676576318516850971330793708885551336953517092315998646296201238616684197684558192249395057881062070424453370592742621289189793078971887230356686752337471762403230617568357847514674645642346731483106159257265905334663982739199698727256563842334605686884008600329146684526797055455845920010571122791094103834433485179774622932167196256122258064868628626166419744424096109684398215950889618490690212171422259659023921008758426538077909589248230054770042964511402768249184806889958417893412925992121750043907026800535421358929188813873437622292247763661891249303380075692904863435700930861812090471917077614575452839984013983792388708159652521872372764020146264016885364763939195874735491368715538319527438912521621650800610923108375777912210868400024095504275988067234575221698759653081151727560375642077293720498901902561434562501786631162277662829733690702125063626696050662954007712303929840220301290665143578171935840547582729697593946933247561428460033452239347186846158326793891463748752443147252053360868335817565542755540321860060126693755940931409165691634566503784142817178599681804493013773032285189572435709421539832785867338478274456266867475034778912811263729264823548645314957359568929910348486513925815275187517007202460805196805393144999916049338578453002317181356089323349072133228502636838959808884991276774760413902954530982456790112904447073094226344335967568661136375424406954021266020357247152689489152562308667096140820986025709936627494825298664092129707069173956813987514584431226898425061687433677945216679755295987127188819350530957761121586980269335537942151444094545610714150383252831978425139151863400705417353985496107341594722402168481089126403747454696351751411683425019946051553842133339391392539237437747146103217095884233565583511422791864946230417051673840965422482857829479985763153587098473832524654435106501414264274702750406602802428315469065101810158955490741969550933428708315280288758042306202522576068478050802948547484048466271664454858475742988475357342584848197504646421236351364848898063811036879319669186550061537540893270876322089236312596606561044131095233529831099081436492218519926472195789038214843438856159042527024935251757905401978509687202473881205058713016813394926193711659206957816895471310674374490784903407268401405205823568287614453235244954990241938556860206604220096380674150184089701897638421213195953345783464113600403756153653696635154211764081431397744052468133518753648620175536141889114247268975731296629585987065306116879795938011133062163361222460016364859319905457857275574071250898078396170247664404905164017218915630786132730190104417300931290952759079108106984043369670763431733249335240189860933166467175616983336068953180080957980224159640009107581784808237392712208073273664068376833930509023079198367029312179187282626040018188891764247346226218980754470343065077985819195957798824799417990290126670807776718706816482624622177835987182163264912404383586122814985396006599498514415633758298612126250465894962855168782429784242825449957561976054916457054660084635023916695646444494662028352240872658706120841581479987727771370796055733223806267789895381764450258975066875810336702800514129267832760738658938930556638705624148635213225018615216789501255213476776696578642454909154054437581602760107285957827214777013872836359636781431310553059836607692438971593612379228100336257291661580629122275371269536911378644645521713123671863906132504181223594704841612295892093094654951922470265710076658189525092742317763936871732969435481291923936429415906383749187824813324681347482050130394075845975224825607235687554592855620086638074331454795488233376250085386663529341529045283308640707999875735917781327122835966212049826065281389558568195687803697744551960461775003516648967210481830461194235645242298159616501144046211157175790604650937557476401076922699712652046944406023495903407095155637252835032787755823755213764172902648721114460036268568123762943735362233034758903289655482566289773371375953444453085772967432647821308995364430573210546986406655571525707039484163119183953186321519000159411349510735813214527473229725545691071929439723956500830876991398090147987295585635484420878754846675812898632453085886325934993961873045655294119303291501598007812938196759273682634558158708321366803634615607325825252447021559062226866900752648094437529648849736481423342659329764920535073113392943466968279732470504614385632978461720378354379738051237406013235471649801105545794955769639860648162174943725449048388502642806398390804545003143469577988001310870533219582077382452294906671766060260174073532161831087418917310221575307813355106028149662818711272481410485077707823920730988981072679521024517842200637968985589703927551904964849188500759697443575011798470655812459395050577110869833822022908154228397246519682373661206098081807965629342577290413344548994235470374736095973612444470310330142817062323476845186324148532370009222460594546490025790835879126834578928144507140413670652564357091987212910491378444330524404599521257548235928847206077921584542192592069317590940710466713991630103417963223987349754597477192973264257001427076133991172947094689278771507400469099856789259104624306462205588671134859941509049819557422924386964394657608186918360191485373510540531036590252715668205534205061357315474477385783125104725953110258189705663026967241119517646561656036580842100891788487411774003809583108260537158336012036003265386851589697620577799725788271200841874597414625732310004176631402406692496832471296729565604087214320358637908160813294750496659170050946535728793580728500846656031676165733026506089894083866799318685195721774370421644911964229632339803059215020932442823487872790817346457398406119787554488427383677015116481522449619991156037103664105520260183596913367647515428649575403929418285574081793321223568955652918380709916080060064039497271771699375861669968371986096317264347057945345018324221259387359168926140222788933235305650673223723075966914729741344909122772949734142219046473498098519926809149142221849629418021149002615049424380233476057523710454499139139229231805017396507101372936024109219978352874393533751367442922524063192866469948145677389232313282705481693003610174659342648932068156757167340999565434737006654691086948767838118898440887892993127459615978854672430151308933947010305548992377701131859901109621635711515515905292002857462751739869499858261826919754293117524292763550870570926583455088680963856856711937462946306452024050487855314904237603297749572046088857653614887813433669921763279540306929778041187653086701520283892825458834087779486734912549457343784300752478650467671192124275506896198720945790029301891685597503264840810058128482073683436265508759385010508985613995742001191506665071015125884989279108394628837878127362344663031308642173442801237602694775691459890859041697917233540869441366399534099638334427094864943664452412944846277481961719368390516380584232171350482025136147960601153921128987694939491308230306369297427575904896372815504726886799422314069045431785742428825151057527373138662388454359765353147012594773869041734377815731648639838523378240984086065884445311241513176002714851602613943026370318161958789127397993158609451935786611043849977442273704990979148819488635529998081557886580044207313108237477410315157481896388777341237531348343708472119406242961012357436492047414818991945372631979357680970204592793796220956117135187376928304869703814349627700686794951367273775478313619767360972160794851992049738097203243745174219911442979466438529767354027403151192984568793909077307460836381188122967616718856246568596670375288864929331614097385201110551730510627571326001291323542135000834443641623518715546536899684129850517545025685758407245693189154533425626197935087717491809764458647511588916675221629463559921787632187762836826933133385111641460772588022858018475184614288531656532192927230871704379619464427541835679343058272877868458565437959828336181141256155161973656809849684324047132363975970385438757645870598480022793094224913624935585133834545803941579451356332184326601937907167679559767730697354143523148462755226653668243410368537841979511405807985347797501277307302390994454614079343607711255837782300460388666974950483661062685992574535928578605236887254713971168213328249164960093440445470515678394780428528313754020667349215038105920138671909622418617290795162442419356871373624385604500400787632531626599957788105087477358379081611219819451940062623961186961352621437772395333275323264760129065948627232828729597573382738826272579017756613168714370710920743668752788999027485029671409526941896311237749895967308697404751485611882150141341671264457268919626611596649267729946871792537656428067337873815967013570710726087635679128113382316357139005019059536751812525713968504901239427378935937691723452295205469962217713586544807054157521995938453790244332328866046657216673856088665640614729715301379546466388480727846764844687657382892190263767320228419898821735798372262366303240128613910451707276220637467759625730564763302852598223933126906249163174167709026395008302077853225373543607779994467536669644691536427654621005717323309211021756357690408676797337428177992939202649283800737224441596306610013285507704908384380965049656827501642201628019822116135778987105934267808195821178788796707504931178680356647203427961110574095640560304092532048231873148636086843493503448696726060762542270559992946777569900388765559536995121648651527192480845070916717762453220141542414435981947886369012807693691866918882735312994705002736837455229147572257164644263346153175508976431238949281253277982314019227168087075243057618747680380338677084254179932235040005821194488236487163308299831237228484145377324442150148722157694754452354113630871396347511327061937883278118388790752284290794726283519730497262240966898761930707998726242055920476612765801560721248387818602504160573159369335322803287337856322234266273177469896295331461281230830384620409684766840732942767459991961126716567464285475342552206140199190451833267820962089627641069704035803880301684332248670433930479957970786439779524217227605178668497087727227617434432397090440558642066533372164701741322269109646013088388391038968692014524560202919485205799276766916273347763439120735500061478379538767039442068861002573252179775000525250974111127114172357564595824496426379578322802317161038889418994105616649101463987241177237797772118874565543295609163521590083642265422736364311821853015727752432701441266033674000855622221856545755579146546195622982380726906278450491566726910977531861472082936330395349627472581044572374778402047524740033147329816076120345514267863458788931949542968181387018533294463056598101391233374886864139213125283102938221346784678746967351270968607508913642609818226017735785424203323806605601661871993436537532309424023265570281406427295417654297421541870422139565474777094007600944705232416936736376660263105654545634239072406247762153479149547807898693090622696319666109196820295087903553788951209663241192400595843786215370329451735614449842533478068810688043604536149478885234134492252953415246282028045042117577322764398131638556608616712512184823960843323248514792114672272313662556857528064153423834070304336226505330752353764930103957416808240329031613112786723463892169329148190940614608087966653285650820116275733460989809672900437509060803299294984341825983315186825683405110245784448613569571460935574518703110786281233246856072380110624046170763550065869107854171825726207807046093726274191269607964445999235279291002164405941520413863476190924071126842954379028693700699732454776212845063925423736044837142296349545788526407130166629707930289697660038638969439690774708879408291728338516563799631471680002061501297625592014709943185216540912735814361513172756642558449721594251356886587708805293593549281623344944222167172260907576938112039825364644218954844345888155305194359295528186807352779250115003817819899868514250575954405368828051876917902322486343567698176917469102212328748010296159230230687661090863986190170097819722200729091602944030088761492577625282397377339913932542063194519532685070530751627709614052408139062706166164767928077291248110693719661419665054900339495618107517318472057667706475786414296674554231054759198112627868596839843772741801819281800234884584919729313196035412449251911634341534677892753717348476550971450768222833526539462201085479102810252166101091993258081018724775571059102166399465400220460290925444450225183842078994069067341252945462634084989133363411357994073657151920678062887420429253728063081304626673945169758708690645588013059912411110350803061453560591001365210508964736598040722539507358908834110086445572330305750814345161623503270043447969555652212930665318070984905011326501088122460172274926505218315758657970881786901041390285749540327383546791836146914694601579171024888872287279656736441791800967601937195953151846240275066082810686315178208138100143800563479228769937421152799497259915958524514489096274147604011984325091958815613329124997278708900640155564009727604212900290511178085232929679665298582293979827389938973912169464726958398165639667000750199280352148437214339993902527670517235032484748074040513415353588878131744278046656811028411773446521734751875855564205268927183301572977173606985881291245377542489312477910100117171327254022501019499527723890370672350081258129551842505410340016507103886028558054807012885347629785016728306242085549320730684205077032412346482913925515867281014138406032635746596219192765119635395461216556219609334421897502760191174255333198217008039556208631642102486584153719630826454615767592935465737986148879577319795754548586936655385301997447996490162295720943156594219234272434857451278218023191061115150219852355181867653336636815664445240523791964352637674046740236186539934025581474292629019325208646319831932298901581979825573081679130166875625232939438571436028292269918248358071586407509432028318815444898929149853183681622395234311816565864380666708225749363688326170469919159302587324951201101788513399586589733295808902589047011808805999039352344031336647107808455587548032578924061770932584819111885640817627308141070693025477346125878317380758272831173172593671745540801379275113186163205713461348900055176055721182740703945060129292751797971341757831990406635825083215392317435151146721168437452385375295055320835430048907783435848217405537436651579396110542110806257144255479610676860130881464654033809845132013735369726345063008328870767479194727909100124684133932869148607248908950016056834715146020713822085172970992703158909825344018024942515524332086129047114862505599603379094735783386994520639336046757021853709086312775901164316754587907879955342498474940695500850892819022949695138379918264922145840957323801667498696486970572927004522101802749770708226534562101587307977230111109039390134199268447624911697564240559201530562844842327934012640740894688256588387235120601820017572453126101782352140871176243274253420707185540703851117862732984230013616478199568618239256370523034809125932083981876625817768865955635848092507426486935863141779718725309808092992356746440773872800848950571747218546729010666627232898832759759666950864827382418532671940434671570793425312066479879531540225774233162770272663706343024148935627576726479243199323122893982538842672071455264890394492694621328678772088658452777835339367685501615603177575751372911384758502075009653328494637787635828889538400723001756271074337762520188562259494047448681991235948512095253611917631097150670108681816446489618969011059237029442294733238417482611505850888464462319714410970468229606125840908241593016123212220766412035606950200290925124026666359678688870256742526241550518503862699691031681227997975012790232751750018427954335059548551177929165176756322500093033303814215667413351849329416498432211829574248574501853548290080239430684225922851137783330468461382357614021983727320593115496155876375549500233131260346472448380512182530030966588052558726903735563792144535437159855921411281434761836379654067412672815666778004903833839748730857069379020823696199799548799901346276985817854967431310848395751595888686950207638588025575196204792966064363542711368296916215856462047161732290018950377915680233626103924747902480225796725026199565930742329073890171915804510600205002491283563937636822946851506031098150762424470961919043438503938210108159186899250225960708613369772634612324288757002191331282836565399912795969563290330785594881324273586449282827513775790232613304168794846113825757385201889924542720321306288909854773501838320651230703305084886315465395369281210047490021569588931464925461258880126159179891287409813960024166594184601474075822019524747251875937820543912786532218876900021510651721574814845351705712758570852418972980205255611141740225191184141786309265703957392201704919669209333683140975615699963000007606070599346371981825805181782684849995200827747926138055464889134013692987239218305619054055017830010741475662240420154496674202563758473759976766145948678005606419030249751329058724990546414629741810822057842186965294061774473244655525698134190823680259246998023990961768800543068620783084362311852113916576438205271460595496713337772974681472404042336368985677407769959721559922467738179645176557212675872201918541823467318855489099773920050791569245999543501908041053114602511970347886534057138008949068179917819197327398924967501733012365146621075795094110051778374566426127757301846742452403252687472953351521004173286336103194796339485949278481502579148410764226898099602766615348317493603778892590483024809657293497120334509890877569544307767624576516971239063693445415124527294875278477137629716488691911333896663598727022334699220405078915257732885582340555977818428669051177407387640490275626568097571935585733841006531255283966482712796716772699136226870836022685392153003466252988699622302023417956494416801998439539828061882460253803056393261786783654777856942145330208396348345253424926177267008789419581011718474640663719904629216503722335829077476696443008141560624201142363615166302241731707638939238952529128455401014743087060662692559550653000904950950176735067119762044269620265876011689816797702526577057459120283624294011410899343136439044409458892150454849189249826278880435864303390355601297192724007101978683704766275857879838804939947748656290969035104582155121788137363465144652714730308406778766633254062578784113064130533228929460406903969694335350098764958031723969848333655360104428880393635168076078626029450666775993902885959351495054321867368351341384371964357285169023897503247479585634179222702263681715188095036423299783016402290561206263985572757457899232832235607629882435343892166263277881762997835123959257005603230240381677361925337907292723869057740878998105679887252136510820077078551894466745262573532744565334874539664467591794705579622100929955889187791132929661424343057610458829855006474550841501173754794554283067120494503128918298207852514063001624079593035835358650447554071142868509343098409569135106289440433718055277026646581272837877569678124412605419406966239798373503331319176592643304180453813317567891455018511481422208131173197750728183328827166130324555999015600518226655706412949950570544352165698730813588991527547520345178800821272077859748354592181387481870689614331362864166427717610336926230077456625471670850802399777349121028659263600059300000667993651976010163712097692259702521535731142610238486863967849389317632158899911475621678380015744446415676270891806475707370539915025190995957758235832037010541899038996658646909520075094730413685428156893645235317975419166036558402793422551535338419404555780979433759071523125151291899951693576193691131382108812478658802125355951407889440421304746778317460030269596159460448974510752887547417039119796763046414060523744049717117769581523234057975769470408938440562484967618169748216423804654950937094262633633888183399802530696216573317167883131581011949803839236712779423320053199862140409435469915542063031521667880234858801701748301611581094326380019702714847680382355555990258367880587647312478896830981210029431228898642499829504220624055754925715058915269708629865996317470860063705800754445973912943246792103934942272482027761573828544497849141965289704850463738782996664481096555543885699926434267879728199035930301215100518035785475419087513621660133345147161048061680750657511883447272084691288713124394164912614678082148803404142813889482142258177572069709191603283645209830158373170325155890811530275337633691916360351057139940714248752733451600692754130881226077879675895195152715134582661176909802139031379645796879717734849843373262233236109601198834616817361190372976721288788197196857071198861971546072005737464198823509133328283923433462123447078904625622613187810789548960223103837300356937985099914960014085328788731168006605006286118893501522298200938707610677664394593710986997093753811827314275045225549045826029412373630696365980692694323767427449270200886124327181409306824180732359370897263548232795126404729919721892794008626000061846058837540286375829665218307031916008896759521125608827226780084031777130951935648393698604869740200397133205300397363495962053441300805711389211262265045603653887768512194414550772880626367567227543080836867065290654601388529528477146547811345117929589343399029985443164271787693179024748604771689083572468806602452816381995578861989909345040460850420558929562400517563545203674956316874394720266305404857635652085041500725938358487700758954261654098419324117729144134335403370725913987496463632990399651237927767751449898107888990599088880513241850599045884084940015719897368217463357556075465562258315398121517674039057197895413825633295058085975372012945461577691869568324118222360326333753746393916866137823735977704055946042641534685535821110402657266552592961961237797994164984752192087382516855202951968925780278782193685026381379328041874912948984041581231707304127693807472886112571250346382634362375830183767222081206818869033863767518532371381022236901066403861426661303145118682223337605552018407753170756655134305192023854550246165977426640804227812478234167510805949508486043062700853616984580842279628531478647357045812546027886262708344463137349097004105489890300192215321774823091606905632468099482692017582960351710096155347361880215810400901939793801380825123335199867810450511206153636753109979756554037472261195615524409954920221759450345197229400245152379812291265743050046776922002316287870829993512113564836506769616490179894274386004079080513910671525890843082840997206218994793782122831910237498513325142554745820394055928733911231807190240127042666068985368926507210156042019146432606622920933019742843361753738887648078891218543574370485368430230363577851937254762309981179627096585310912494239911165742937472284117282803869929730086838435160691338868186756512323065428851742365216301591077572566827649246680282690836655324700683657472043812190285751694844234196068778968169095648010582170460634616803413230386866751218141047536282200968472377690737132776359028214361033453439692133401748500828139090494227874260303908988952498877790430483671211347943456435505650680259989655021778689582342949178948542825275347677247092525472380413448432407103480362124582892530902680544604185224652744014866957990041215811345049239565146830667725404210068467353188653669381460859995189972709600883776841484361429215795854746785442713371090804240917230398096934468195885365653878955799446572314232985413696918306993149878931491417311538871437827880633691796046772071111247335427010950677789693073268659347146620836581430906544483002550199963780875851749971861510683457196450803820172421831198073570562610383676490251781882311328665964014904770937139656309949794634813380671454829502684875755840293035185229389195181938759708220927037675149074669718571498637767295167332746897431176559862257230464021037741187127780394688182870832201788762308476202347293313550339708153552938945473077923995683983458245305261840476916057940867212641618000850838880966223808083231568411013143176667763325882977044090286154442436296407930425958275791540226347539788828443717998447963410922653844535973773681985207304716675136814052221669804898166230723356199307101698778831677773456725360952388235999450376450883623671252173086421497675225703944731016597603949301319332779084102665085147283031360617568094122958279118952960027857124458605111448177302670325274187608624503749433428130291560358188352910828198979445028305049136682112949437017541101965674318809886997207819728328868301657201829709447727006213123540600845160639998283208266090957291337621150835105923329769998326083836094631432643528465767586172890511343314088011411459238697180733642082693806098408795329443592998787388878966108717499587587646507914523979588446025911476829804071110396876885364085555354368164422839140531488497256983310202971831120485588966392149968638229433193724188060196709351636120594793698538626363873177597088915601559232373339871506841513820950559933557999271408686402471115978008017733026613509446170328966514824001432808646259132113052926189939660491268868281112068105101312857587573966751163105218603579299213870265130821267479406302535539410612095346033849248816456412712282154395333031708676321300271449005923449205226728529272913659945373682623155066275203077684473455828812964520151634634589628895655672169497517005053431948399529938986467494941616004165901987866344053539167172089112988145326564156787326576300286253440488531792359288137851244628423593925549449660010835548037376605714093581165281176847390071088206350498821961894619867138007476232170276472910554792775638650933996266510400874495275874717726873268964567287651824398651856199967332710114981619674688009558324940802387926583992374158452076801021728648849413957194150946308217612532470848194590231626250421881440951477612917624042475911841578153361592434008359583625456116840452264599726824976623592343419378777664738586929277597483511806756154479984120182466701069618867450044554721051382723765239624688378032172255268825392704867362662238029716235720409048778533881338180080318884334855431864188232109505016811273596083793886551641680397895059269873755942609562184252378392072993156268311096928259805209976888708376307250654669514508512262371446972793003011071677827119431713136854950183645673578738791901472099542091354472720613856993724699091737804754970676540748514596910486816251605259148511618925878668278972554136642934716029932289471124511427357202388870897084074464914043224168572944460157008541188885420704821147916638162894470439706647689984555873195608581193291568761546990673171967937403306375879640070409734793304995190375506401678273689706788060437645065569226594135669968156664347021745194476451242033356025645908460439693211725786967224873128665578869847266503949324574759721907081599871532253689406020238054954029166229106910359930329633169602765242716141444567363551240081780879630425845828711072767898769987759102363941105630023535358365744594664510918200529920867309363864593902641838612899748657561531025737846908068861226113313882321352474843071716934998021887926229432447480004917615106614516512976919394264173200837454648119824516308048527327485311299845416011738145041085091129274825994548854330215370690534735948907455780039899416106423501975084685611658403782570128696056978713636817677422290347412701703575233123438659539475416465849026240466846341381791627145724960366426799714353948097360772635369057335711698617802906278877129987016033179272259608478634048793617057639879509842494889785680784867705192414497772182131847657876349038576842868416061468846376175902506835973724221779553273799321554510659195068487832458081627429035797603744297413473467270054814456742471304842919983238106497737087834821225152391709316858389975286195280871060505122417433830782374737895755365492015126255691454219420604934376355479140436789003825814980012714529200927845376749648440391549721990621171858853724605171753178653733540566742609283861190971833995347848222765195550914016831555138350967116326520313242460424630420871119146239346340541046565458914235398414164462733242127029133990000294483404743403600596656500078974408467061375489267549931258600701588216044792749295167985840136850670837314208520577722658073984028392590399438115416060013577156233463817452317006861410205140597938603167752089377336700804287489309510415668897696109801160900372878406551225377430496734066904928692433742469744392542875253275133481113591172555216513609896188382685037636191285441507578826950933762284336170051934464031254070939036082859710399543305767421721030579377357345241282264489522234444758429971689284863821469243387623174891534782417789105777997760030311492514413179112012199785541207655917632553712929243825438946894488048381310074400256369936718514766368972946586037846218216333401037129354893553622676252710019321204515285296884474421305129409760094686852270543414985817453125273763864516953103965616411013908113588541230767608777477720973302961898451399257835768058403635881139851470310911307851090690512562345733763454638418485351779160825004567811872278072555203271668196347820848335734115438540077134473426441813595720616866620290434207232790611682073219321808821896535350403048128710326957963724288236916764561269025455958874420324313377046793990044248424246305197246563013559802807726755805996177234904634404676217562465909794611516786253269466488208025627907725299645041845468670055462275146211659776432897844655774016746930970566152470231056018988772499085586455000739598453540148474336564595103143135644672605945432787419596453534311424869194795555455598169133846654732920261435332423059914829696555859451586350168106994900785074822690466430390759602444335393670928182092278289297076142666153966355798872753163218027889817701895264242228455324806766193954569247919861622051126087494493489402443264180290682217150549149570762257280128105887909697198651133962160996427296351681633332953923731320779300856699353130638703646194960701221058882076743036279355100210175805421120666589707348477193972795801639769469151670486719080459586294111116580286662152570770300168271666410963272304854735131480499829716341277576162729524068841946189030113145242125500902623076236448982574676038163200737069296042222655837949627663226726193878360049976431993843996138650626698152695573639745759028781773081871845385543259371805750144668949289549145804300557141070258585893215423198907285319285400316520939377737527913494266106011686215413262926043128771550333555738237669028050119573150603535773264851923459443121023341443099159722878977396861290759411294769692499425638884627390400514560768370971874632967803943993968928342866260271619434410333638811249503635009586670827035378952004044974673806275966791669278492628613399116988610121818665056464015615991740609166582291469798680366769333022300486145150970997245001937270353061994287260076070941516499352570927224126355547103283657726791208128368459493552265675766960814268338120637137080720684950475437073671880039584298843583711716711180914789999487970011243037724263367697431861805783188995580549213369421418674613890226628441566759216043708332175158142270290352549924271989205757971443996350327239304551485022328661034664472719706197820449911707212245325293703804518004859369839830211216883318683760124574154055078367195076856170357499024116390998907282468731217047614565994920207926403413476499464870551975078237827641636631734244346667665205547034482228461292011622861757922434709222322475871613854342943384915561669165340116656645448509030329466582607313894290918114944777627461248288963159475270087337038196334365328479435969191088969872148087404920645289856439452516943649821440417498803513806856889572828238351725796956946404142152976479872208247232619259248963810036635608876099845678032790253848784528239621113035767578235695179297372012234534710918664394072179821034245839286865175480578980779670318469784232497352055737463546840307259030250554397009923415506727736852554141100536534631551230171878527895761129450596813925620874902340980760395090653231676345767254746482475059130808696574448645995296645931813939810754862432410883631055126640524458291326368961610668588640372808933719161913060700621249486276590065815958945003118217048870374526913765782897567408628872822275219279885648340087259505018412282314796785140115641421979423594418876971118528559587916937784898245038633922684322847107172444681340161581888561046723588554402861783211589164695255732090281070504746384062056065710007825250400862103522446200505628328203188377339400032296113714102277353259102751975824923488553096864301198764454322617856040429953562887216141448812446204922769522445911662669323659232760539312202821149251892185432754195042211037487578939795041299628008084274626031673968431623171706004945983475586291934790832983070616318922890211309305118174045411022451187318476292263831904014629280839485457452575396599871127667453156984504033963324752145190937576632348467830283801616233557912571626707414301140104232715042920903565307981850036698660406609006894682425550591544136720095064883702587826856667034143670012100587817433041443580203968996255377994891175292987863448550718727365727221269666780729414917787092414872878191747231436385716887084987645085210857819870100436896276004623382977886961750604565754507677073345087226771574796045680693009745045933580110781368978028845046582042807505136639536420520116603682571728106039105265275517908850766831494352523983103930842478804035983602867523454178002436110536493770292494577003913252449559060981186602615306284466343162180641191864852931522063889553483613907800267482664091717302469124768646934577621598917456356947440093366579232984957610909025771022560645182188937397437925397672773775360272266265690588078622813884334145879721395423201681706863612952041401200398624584810637772351907118220627350432141492008556635460307846301461651016954331323449279387344290328399130062519867038121192622579004191963006306381601886671951615106230329177463791551588192473124235202640683702458108126469822849846450945747735780066652132967646131492318137107298316594666270022684975450510100476471080103291196235800516480803692410316737155040805199009384347760192197559871539715222049046265315425078357651665551486576945630227408240151984585269190071235797441789521727015279408041939101074616093336185105088785297170646973562850370578532928813671216597403227087951504065762727282497908294395647278250255633211089824354268779541956839397093133602627504346555642948583943291982396101717871573038774147735983516259567468062972208163937115687776869991357288746385409949130805478374625781813528878571478569057628398601657451483651087483153697246418409998776381671118018133382125001923897306811929165383992394879826066735406642888115883765714203072220127418378328150147775450402569673841838902001384798746650594984967312774860738577738515566244331824395868924583249261097616422570745059185500341058587674059713193991161790931695968830678018986669549332627454113964400228401999119560123474428573942858805805694095342144161486668196017795601474758392778173437745707222255480131386183245687229964882607002305735233033162802854676279847062742210036891400871732594696353532703426000313445229425814030668206031844774095268582056683339181765930628031360748776595273243275066335201458320302832984289238402321224089879349126272618139605641946155279857083736905538268035676458652875702770537125030064811337556354685242701239321220974879190248714426045435166446172405229723328742812374127382562644996839151410967362653646237147715557805577725167010037651422250498543494640963054406723329812183691617044226276228448338409904741419058297252906765323300333850125115075718201916896030930495620013473180634424925015854411577433284821581824682866042343927726880547904992277593639123694355922635025171988121744037136327778056909072395199012095168422632314688685456394050630163676735204359422259943669612747176214281481528033039141141255299400715138725703606955097242267849288430809261847715669829667942442565091352363686812541222344255015005171169400724417194610984010229394635084941827109144605836015408693114152728950755608478290330528440554851494514543026894758243832530536163162793538230313441609800300052618303191158174933205246594211048257510035081527482732441780217509565717051192953435872542729360109320066371662114735099384614594749708367169320723489565864031991795723915544854808384398663394892426991300964738778329355457623571790458719925312681754963856549914452838953038353231650238160153046968640156788052331167623661948426461606571614761577660933846253562014896712836792751613288035491474881622141695307019040280607311058595266698788881373840691582000470418476834411953178636372572578118913382322048263864204479366531366838455667906184245858185900790633645543312494553728507184524164810180603322937617233543372429000579947741417864969461124997444186952765653630324491785762200544619755836483800244933454351352734690999680725045466912768914450061677230685785259085465237803501473485267366248877136354257625887499349736174640837263724485506208255079193021889341630617625609387480854662854440640243042726594172156494564687328272870272252640112367740261270616011049552791486597421778989478519970719946340211344141523216690410824328631568393088611535387547437374598965779236665361089335847889958577259477456413433349726204618061858771311623755901463252143266020598598714643000736840923033889322752492878100820817419486144859368546679541444237073346068684735806588339965061501755251998445937843875674464747435599210340457332007958865081030839734918473750902936726942099416133285711066161746256210330207728617762699288639765602066579781651222719715139146122932385794230513127083950819026184156740358316056974404673665728447261170287739236623538591699728206867124546946856977166741780842654209769605435784340003147936568341872138418891176498814765447459723503652084803573318053172523996922011703891462116129836598319946477052793220646569643443227552500264991879419311611550433552675821038646367267541427705541534623745446175564976982177587348587489421767980654214705355972279070640302140100808208999845660807960718711544976186952260195233253946317045390455122925619915556854072868376357763151793402119841780883168983307030322805307149358232800784310913016367598716929056043393367952393193861745937623980269296581846365745060923210481145329914591763679367235943841362777737093943646441903957617255731342090094978536566573921981121652702939971530554142878611460449536643775947018576947318654235312553783116887514807630313329104838358703938370340216413100724188576867295557305825041554093021825047422525549809963764798367736782897633244735071959754495466978979928031535724204101547660433066254629802177468755539516263754550123522478940178206062450441025629383388447330090971020928164114540806513721122633109240343794884871037675864490057490730681768428802471610254937310019185465239361342517026590042029097722044016503002058528932099978578727904325504817556112731283572335310936284243461433299540058859242671224826092999642687758104442427704058945160178143031592755341635616151762657570158625014883350196934394069036466646589880550681756805313182861195108422885101556854860497529302094463535986502202704094861999497050717536805495078905475399244965487724407690579915418707556066862412779834443129369500497034656754021383785664087837787431535913834128713654781189758219857499861848167921225130965299850107425634268475522098879733767747697270472392890823145665564992773526971537686565282703018727384166072865287342573386215885067465732813569209863007942811208229751331768100371302706064120164756865690158955097790429924703788457633761739925086951324408065075356188375642289222925081451031607549896444786742867951650328120305283232328500661609836719977816636426184198802695120906189782039461077685237689627552301296053538684130337105391619079418206564488148836666309616484347402362975386015846036743840497002023754102104992346891137514563615049897980439134328754243328966435610893267138977242555461035823756253049402084774845756200897281113263792127141056357245918337317149387716248473127644048269997863368714107675263350034285747810687872650893859308133848061001107814652964220266243784652627785737141825538640571093589512416119684821950549704853622346601056947083270206984838214058448190517713411010790416691011263763889420998502769918518763259347228258278163480789802711208173893769030934591542441602841173145613221861521314518768606107024933132012613027701564902339541723614189945128781338864179545818342281845165557171978660783809607150548462171105208918997674367452545300600353547527682950191878221999063584093382680915028789487256609877258243788738035356261233362718548338796632543836044410861122368586597330661769143046102974411540163351691705716654892004443198724145502983753921253236091589268212692130917096105198675974875846812439576160409476842526570252170648548534859628742044150754287030546744855989839843013521483368268092036279128185890646736199041922650900767917611652933340225170118761078488615851918157748384073354443367677668639517049675987053308226753726441615199475236990319844538009663459087469089683818660893112654527973966319747399290500533637389544672714517428765667785701326630044666748319193860395250484424876401501177606974510676545255478870799025646450853638903634590705991620047696197534509901784811015695846307072333441785261886884676996739340777200639944379068347135647049552726825368447864258884282683374416796124292050463011440456283209682231839494884507636280115294887965924466124410016154861560433222270389359529541537986033898724254117148453092922786767496816648777156799627545493920311216597467959758930838008494819993061585601765165733159389013882710846375933688864086509296808638666399048632783450502444747301641325367646240944478745720875897040607584310176633244962805761088147849157886354123603049066581513165981580503978021805822396365846498284919492452768126353494248157360816670536907083250494308499738671451146560761686104228528075127575013480827649316876549966295729442206033349272709395274138184425023975170112574030443876576359985818301620447431076621552272756165912437339117649251513328389242767053428928075938238047107082584261875793728052181345255654410176952399740565663699421689950618506708589097470219512433508721653406295034300583488742298451944902345411364605719029095353919076002998830697849746237862240169868747384901623682891761044025475170627780024750552945313973704951640509557052944481520064092174550263486945523671893991053566245283683612606228631873517082622713108427458448904024823328888455813354046940354867580060313181971373815942394102444662108465003636405303165213104900982568907323618533112904860578120207804319541823369853083309456652421191425156988759191769801858354091284789031666381784825353041725652467077788578343590166284376165291274481590212566448800363581333635490787466247017153960530537664371558865270422724134794739595618300968222765858655657694424675538726466834786033403423730449891355687858993613213438849778383934369173498760028030891666902928057069734130425839920510978070686759474422454637446509519213005052391736548308963376771476858888674071796670894888679420945215633738395542163802696523269145605196957218196102986041396618327380724672475595288599518335806888562697656441041269202732830499969487144678789958357135253608417727113128139325598916408528581560219003171546975205824681267463196571129835294016045073556437982068120356665031627792735139127849325234877560841953997628102111658793083454600552729734795936146337225624204632143482206445976402743280526892383951297899948181701816527880854798994365081483980719479573887080550696112491902013606642022919415263921891186406152753483176761176075249637623374794132152595416336711072151267062143787814757898082036231352995633683776464432774140961241616076709951135999395693478648489163804263308919109535635870375112271487447088833187107268385676284789307824113491632727997785552856378795878263126797834250367099501981927622351688000557444884262373826419069458340824299361751963998219311736034532276155161374113046233209046022193828403008448779050750388147637333053866774502947623055163515963131189710307156190850833796644803963012447233272743278064649768020476293979525532009023403439351530270121970390802929435622817138190516051422587616687636387747201570412327525233611501754892060213366059160558469068163366349703982465418179804038881112422700453419439404210989270593758699249256055498440238446215906615705664344804259016869575264237587770026773225513757293342656995444004741376344326016611595915935579687381965232132992912818790328537251605340177427297902585805180782011854883872391378792123103344638638960441810310351874388569485622589560768998446732902057976298997586982645381779076431160135373981820849718994596754900758709400796876368876304193245796320645835908765600121069046350526313898006987684766416251470931661216750876036632024867788303632413353037716059479422135618886444227322409508485805774852602640782209211287738672375345767697352526753386402149674535193992662614653998152314604950324180093533798906232717294312628268264973161917470936672326704501538988962912057919235618639549574843718263221357721788636900081642244484082782468645206285462068178798345828675639326792552241572749252777709968228669221974497911286130970340402775913070098029274443247280214101430998872763150046535161670834553363009796336462194330481697117157894978554405775089456457836678737074666993649036130163014415645057002551531770352353709394086038319196284554961257525973822224862506177207413907450941952787963175612739210609133656018014317038514345822011311155773009688384344483844063688538455867882090034585199418322500732951547650238437019511227217581712676205515016512281587160299927187177412033378859206436416132395084858144512609567324631752548135814622370503853515948283629972634306421312224450598649933602575009805761522767264833921838774744403862502711828641734505403677714579831406618717101118988266351726327044441297001660379279189374391259053707633598667748273284724049842261649971350973931050930980487069777067983261405671280436705929434774170538250956753049600961400863849193346824861225542320195020335311770461306990910554053150049279942225771504239627633563101746197998471796299076115303845455050659480865006624073279095608003728678091009613435434126993320420106707178461637689005005798412585429751181135874770076557399820346468034537833080980610949753319970757526043233905306294748778212579740315741089795087824791204798286500968955860650792719765285503546148030894717284225070263481548307963468112921798496325376753740603580890982863953033521450179695138107036034974023940646290781383233081684300492211940010542123009652807540920790488010342996918067645951365558669566691547427738991008896869740873920084147284059683709939455122336563363757686092083502520061791274561387206713588794889770302701698796472865994915408593679354514613555062028844587913874400492384799631700704836961873819055618349183431359250670118613226627341165235260172167704605045162470843727328169749783662264337549255111597702432155660030677476127871281157036939151080809201590002753648969777189546133556989546195472677021727484371494819652728691135402535482296558621998102341954124391599012434046248177351346430082186865577898902194154070284059057874872497316520540851839297631748659666542873760988651981427954745620494567613925322340731127568901016448197320362758570339976185341961524998668832586401964728313675179207319853794945167728104800519024100802162503071069974901333901972692098745349665331442908112697372749847271224765201161601806114471944424546552505345407453585175001637695917835314092490236499530631802469063194053442581658242781515778734401088338529469130629487369065374097390828274922218004830580879743834307256144252473013617044038694477193687517386945956235011173811849106933584522297658089484090648657753738505550234057228008587854900836636658113657184041915416351287755689707049349674398396973077321803860743875963360808349061725604164123860183494338190915207930028141543653526186031445107653850835908254409166706088990898668422656171029795950044544207012288369614740375234621973361020095566253967429253420765437220564396452614765132296766320321106590950717030180079940259179114093480116552293839827455450033693053194214098589337702404768866958264773027649117155454753571075132765637003284733731289048150175474723722018322860467001719613933526369227457371856935468141393064518397137827271599470479823876089240477582506874254177309003998149706016378434861520010487342401546231568948676579910677800141422424191370448173211073122885109167070642720723481225097409417373288351349452821468473379354730643382238408200105169670460648346364145894793767841378907628973984196280656970289561073288146112832142239569103724057369390921931837199469320192229615635155379569693240186089012555607756958098498019359664598382932777673226734022800985474662698588098754130255630881619667095581666201112060365734693227460812979708941793155408510266138300111638031148230429605610884234828672396545038677417500965018802272885892470068129990751120227500892174126192300840627020273603136860389285622385311041756235730056372652839270835052919657616850926139194588142496234404682018986915436656492048245460306477854056491481031615721235667944797532344709661372983328803247900981795150671380666711471546298861078360030114067976749856833064017062986520147009702751379463539038080978374050779872336896985583281580650661184515402145259692435907825714241550970024287992688390605662875207165038915226001581358917514222543440506880059859893605437132996778229795866977551782169837354286509581966342665676162920255462104347375736382568579611302493160022082155385963825219700218231032108931855668037937482253552662385159977873835721158225450398380200380530898878918323370204565146185589371100420673344189218385439777160681935063264603221476066918339083779186856923094977310144148318542807382486462433564781358387768211609158087518878139717192841391261158146135256220512667199231613747416009179215212902738325531632504865867233253141708867905436756370827107731711970381452468748555336421178040727338820110146252563250952804828027408903556352360575948316567121965626083521753619563015483934168803356146917965116728670485322369014845735523489089221348662642727335135144852900803002218938289287855201594374324651064077911360685965674593148678082968941771075668361545168677773740196228395614476749783280732849036268801470463679756009576589940695739098421895501071851533411366435548671424460148461471998352640342393876938721022500738073245721411935104646503267440014086623576376267888661364190593021301382319936148751825253725501990349498830769509085615123932812610190037404821925033589283631870910143488151047134437754331561952590839943799768506446816038835925141677070832960688473331803025052168593758412642343131179702234453362505258662618172304733800290954776121567626601755392666549949338246104635894547941445789634302379686011290624946521611094314923638995259424030947745451447114797123694784267195202302650678304179070505505546046116491040298284201796442916143797413761107469376260893591439125512265293121977647600002334783788882476240122677963638964953033404465480993072165234215599710023748068250814254993103340935417742527815967778935539951506552627762324525998178304414429017411343632671786506210317976267703918859526183346711800635980259677285444406940440758905775139552049711309600299654200284552154157046507365320964011494689182157554375998880399128816079602588583070890048851427125902316721341160711097344454901073987100375091958213792902034115767834356499680243680497413165077085490474270990879216313003562594900281609323100326321456912719619275526506757457114670455805548290380120272167695408413346055350083707110965710263636757371302018212177151197481668107082187816313278602906197897457382579637890360578734199773343433011155744538103140873292032931747871341918676214541856218008094375554061942918738525253588742542949694274182342597294168731128991823242527421175053078877210908153131657974638373003336205216505514748352963361470830145611136539617756072924542664063327932187795283610780667686478927780787514835542990273258696301722185831182153124673493642464412440029829538057257664698361903264366704432767485536792463681372935332266546783547997495798025158986656845711240218981541309887696208732211655004913734917735466674705471831677118034660417863909328460795311807933369584928650963298311831679571300599046604335306933985003793944892697748149136461639462291105484917553829923253584150359080660566283940034330787877626310666002181940735304703799634394159514459094045028389021541168104130966737577195685714796013113580852218447828902185442950758191337905678330808218032674751550459063757341494511477728893942895489352092569896269669479173855012390208050164214463709775274188470581216712762796904123841744197376798008364145285038591932856093897776851291147913784863836895360422226559648214293229766860992184703010233502186940620048675997256491457959389195206251048206493407038062484049195307167805360690230724111253293852886115397080488980756391596000601459546371541300918806584191314208725095835836953397954525768245564685824782031693356299304888702415841157771993770063060603934740135813436037547619742561129515789930202306197306614239870242451812925181792080161109611039585610988153973084422479752438847707566671300915832266093361719523202830333293982904064382781675659281499295899688028738624980016124934761515575776751994649644110275821888286532320596426933935865232535271990946442896384916472427818833724376759785350040570942826917733793335798576284574090901508186615052892405797147192629350942720300644113514511935241905355224570013904194335771799227583081943240899713226548730258365813273706865806942961253203827725285581840093555857500636197770641146620032287745682470984261621350356962716323673089356153726933133418107584935616275128880430608186986202655576920977296681069152511140365497364307391836419295974589306139542219694579100424392794006934990578722157834081168078267587717318659641308534370796115558524582021008508170209722334517897372096522569989206293680746822640184895559645849890244451481117145779518989500592011415444687676117446804552154993361067721664103645886726648042527036785532275045518263990166303590772360754837637637817445594617638586396403123770110067174282419976390216281000196980819269675931294474850766254525537337606170977544000817368545690754153465840135125636517610656724630546837135995177584948114953448242345719045975387106395059519572906028167820557900806625246076779993300380701040820920389826030581739400105966313325242409329122694800740436339680710174845436140687726045188763431970454830215535505973951239150201276035004306143333614316338275198443642167557595530482483864474466308198764571480314039067287665546280642959513222066648559624394789207655438787806314096780937391175708191627284319723570832018679140952419527182088044265762067397007457188949070685140496780206064245337126003440714379905162215831171453245357713593184815231392714161142597792243056905479617377725978277208480716855088469999021225925820799967043310585396568911689223778538522247585265316354500906178536668629612355688209404332592027089575168581694756023258096074320739617648339239211943648412202844903780471236708005518180757444441671906304541028762299734050391356394689849088652203797395339332438987289835895525722831340640873841218881349640741240817169582652275604315964604673453240271119703297734166717256077807866019817989001323803893294245735105821228229364228924758101837333878654283547119948887801147269048021617383031553619294779953630275035495673441597350922764757220592300629659171383010728620167091932219198550406033957440213312393173193793722586062651649676970983267041252859197181090494116413299502352654607273531788492351038909086317842469299479198186175390529119864699006650001842539557516430792846025655530035811891294679427126248427579066827408057875397301840647038101755989091435052412586529311511563443638230552584435894403556044133765519634287970103378001583234800343761851657687522856708336044292106952084108759192990512614461416784902779402239942623614259276775164875896354619067732681887675072488536885518644866756871630068185933502432876744071225716073923556164901828404348157693190776571801621474037996704028940256133625112922318359252197196039215670287245039371959574161157341907490134212634243058967535568576726305581261011537721497386359141478197580016484635792979840586877402392054836210438057962852406882680919084191056571891635684630621081168058955728642028977577216238931692126708442419345554910589126269979793822160519573387348693328113339162597006029341538180319013119877109160820366157013905775867726160935768491646427799604932067269492677095642565995939619347399854913886394550039388839882947522138626921649456039215366347783126266262721576722784575387444726677880506964714765400819516161177122658581876356734324353558762385281487581191666685223524661352789123727110291905223587009248201372405461468240155703347278659843947076746831065272550356410359800254096814023216659447420889921271417431776489949302881104097200172108404733511928380254763841857968716564507251659753721801216094853063422275821379043001656208913243178415620205981354728871492560654200344564765562984524886998310637246889064162752334658076775096606492023242834218350670738478286625120473430001631040920514992020005946632969919903515733045538519096577676959590087897548135093206150641516598181996590202825434786760722417154664553930645794586545981700921745648982192950667862313393996559518129055858260599725814659042222398476959806288205704528762731190014381415412143181229972837867990393058804830419314143958695187349924740677955134402350458030351188144431770590553094441449465424885171283058708677696071376564407410067298155565188641307160274401690745316046866658231635472652045186263604228193532737860076953411324356940116796850874028961986516848354148452861261801141818965176078044489018989520536439285938254398554750547037434132124473802030969627671886286684523227933043678499963660479470403009962583603341183793160769777589659044551141520094118754917675501544500453817002177594986903319919439930682091167513114261552313523285918852749342092048259129684688479372273030193550135205115848912635087449201311931536606502724446878183679754058734211722246618253853162973064618072779904958644026318001540578553310006119734282155682835486117990240921967786318779150928046667620339466576842712301354145974275583746842555554616415427853849594808164456885600982975013717873778680800601818504346867396380866419555488225885139569073457615500710852019061760622694059222723526853582191557431784560196942019209439825362351057454757262449897957466814296513064144400187819101004331437138821561409825589018819561707014117072164660910307900674824489449296137369199371515777066098911140278911869803684145656874297370589450605407804701250290560947139670163440914549916047983474872611969727301104720453730660149400656663730665153314994360739836744673120640995061391858128423365037456992028348213457670370019514993304428244953948229771962433766350451207951683149676122527405602070130786675315668691242874858658940927623181398833717488165290533228731501685244810616125320194734471061246672750394914299341130851358893082211128614911224852688452314719615658978027763301845810576653450729664679813889705235050935740025228830187473243629559334401363570893493309041700729297425750348389613197577965803982813827591831658017908241654603136006932362713021401470649986385914022546756782668717359113761154968468744433067087175221468672797302939908640279779275457411246328169881468706309914563262947361272481973833842024874620963213425668226506070496417157364814154718238432686751119460012765742146902510434516844345984955273474223098679488425572313566403771962733235909665792614978940379355273928008266110585524167631642619189676750940049077244115298054684750630590704570421884190843094181154421256894075023273810533686945525433698099903119635045027988701197445273057235628068113813026915024658830076621432190389554413284507529903411901922307551128985141100784454904483386851089071075278057106746243175733595377448324050314515449366935624295276038379797027136273388113692353706914450861879148025954328475353203113796158802464260890745494445914426810991829464293222063596014260216330741460051797863952433065408013234563501142204162815123901209816248892459760278021218493415128435626366603767604488915680340640188667561211305879802365359457790582165583529006513014147656096878312093215043110631047755094765642415408704123752045456839304157518932452931272470451103191027380850224309509328746345169787975404755729997786794523669034376731460234004414999018823303353651355510565568367325624449410844023666723038127232975647923436808706833425224777791389632475851969380041082827315928347232666298433999511719572381032607571406846174194580897199218931825285794244536594644374024512867970229083357661965288823075102621712985717167545497162406568529793880182721558700098706245600803730463611964446735468905970467400471389297824169283357818549301269161464380254029047634376546546685712529484927581617802022621736721938640229425596012435482156199121325531111096241037475958402168102527103846324820667261445643449101712685936623443150065091319746702311487353591350759756824006616835193916259771625972022293521626861332718446302517971895538127046371975923309878864787888022771766091973037230163397191887942132247189429848643193333631193308813681902295261881200609710695033575102082323855392419722604020736018840454344347572716152448997571827548022300133459262601315198456457151840867922244795087459162169421752540115591996825645454403520501984269546887072245740574597583559526630099563342304990893008015498438719416420783960730772497366642460803978841451523434513691709063267239559316155245201172706897377884386712715194905551079836364826085689967607442956309521707034797381962018320234461828241797616783530288866947552948243865973529299039016386725645547549468065321367348202663136517456125949274481952147572179211742594785960183902406486407692365213998976082367703182181206869966826987642466272132244898962293057588963117015725058791425436886404469553782339529487544276342713159217354488126074957845800278709934483007090718102377012377308927359925542978521893597644055502091045187707869377435236235431192333891062551870935904929496285082124488603035088161699627081124934918739561561736103760105263046383354897414761276714025522294131960045760887491011177915790373572938223841869480432801976559060878234513354760491266183156200525778080844638323500614203660886119385818568256226528092597632247572449813153974164015910191369414810949516456249266399300612752635169786352349339875891930993847474564210187440575841647061042518153775536722853261555887200951756537325138462570034053616171925519663626216326959941364577872986121890504209095107757287128893857999767112788208656601311432613902237995714309156661209751063103461932757120357673327298471851129049204895185864026827145653185588159698511666055416304050977145811982269227585328756114302352812763768246011872102192334946042360908217532676067796664482823910582750531398290932129965323145052938748040929976324685163463719111763101230186790086393339919415184686574657059446137398405263497299995868618307772656567550858422495001781827110211406897975409059843046020885733049944818323068221811542967967178230290521361844292820147777011175239641038451723789941378585030923243330243177257306790100968623208017663968739898301937149764820026910410689368476406343389665524110612402146548149083096057085272514627037572661767104172713640534472935436269397883892214864778170087585084760913385331499004300485300303403775210666436562799001462032280177665998809929684194791814792802545217120359605192827096966592967701841699740102584110076552577615646923759971111346608472087038385580444004575304900778346649159610765520757613431036023189473426223853268570157524478824476254810900824738777479446391170586848494533870540623698362904897059898000119316540349917634383988122378876629234238693248220215603137424239437208648040785338332053417639188834720439259504334154646225405664793798833694416488754688577819705033356610267986838106058414710050657784484909509719133279050901532046181521903273539253806450217216390265158754710844191514115447546119244568876145399424280931066661089963256814916257880673355805643280741801619029157018339896646679285781909417564931237017400782336757766490308215999801417083750917880244924492772415733948534978641037059455625844676219634788584511172197043691278237743050406798200003694624728950035698130114337325759716418799901863141333974416897533224221377708663725570488293523946826084171303037892990033077268957276314532119186909463323773757179413268252083499428742804318713577258512513497579622442709742975912220483863935754179429005358707158373380512515821904639135962067360351063710276893722995085164010210412988580118758994797231551274161631096474482636555461105115924504383737845153089587798417384065600449931802562690529500704019725319669326162627562818005187646597993805474753019601380095263412628649221841520333833043270998195009950756078500085088986999824115227777757480914052099329120401939064529542542671865579520159841170061838634877058973652212603218292876823155916152476536928404012542222487326094518369723755712363144552688665361993278469720732439559715127349727591643593256228649462707093836345398296238188823042114663845363844147486882928269297986202180080796647633592985330928882088868658382865576759612251295837432891085701808862885625836163938373874124260301562082992280433683557531807008369614507707739057187725290500209823327156790094496309234163137888888440193342243349991648269676140702253232855465719437850873883166023566131712079141950506549079192768678472130541190649599058905609163964808866382724471947921768943189369425349502120016653003979699526307828252591833540540305220244791061618103457029092848369032133627065242555402837074408259611733551586385055968143736271317866636236489362155477758738867936745575624697055589370389597586793151560356007794020743473408842648671961304894429320712121712790773397498607805337947784279225181353479332757338407494903867945178407400271857619454887763973307831875023135265746380228868619077283710826739817488450203029750157328634774693461945697074572844232867241530192641730496468537009382197672617574568449302416660947816550890717984478470340468827933522014086923163632468722178766482280771310594015488487968918251118113118621116955298623220457085525019830196412080198758721839155949138148703949458671380340861378416075330966206896889755340878584780440348670216486083165544155032236503412518173343558435448986621655938870488340159325070403838112791792128889242084888587176671711786066913523388938375023624381050460104840395834657492135749650406868595617929512721601556452950257795646441562228622046657861926169488826390630642405594928389982147043223226804709834255064051128433877316781711577694346960309652544114799932411184614751856555566549758007137424212678216301709427198804170414592710911766278385597439979984984664825213442305117380830747795363691852659980354171514235317573726355303112149077892060260079532221881786414821885316064575785975327862056213329130477137406209427745921796959700224424154025177417188295187247918664840767906699252189444337054153084945679095755006635844998797718678835280281378204241974577605515307794465031268455652814706886295193978328875818683264249024413189300580518419366629496090368345263896584395535848728495149158944591451489697962532185033117726785807130824373525925258794032570414113815398598893848093952675079496150761322666067053949124145740410921288191060785251537789612536288611297090728506161123727145050891709214399692118653237998723647923499580847904661071947818473248654585803869063222617627761824356697683422757644146141459583386954723137143163808794289543031749685465565519827923088807634105572020155645069518477723442984228296207115037762263709471940618641014246409463479124213773968315631981723736778643232742314083834514989925154827026910042708843666021013726696254352880701738280109914288843641489944900712575227351872405576962106448611937449138078904585415814022867804974407159809529679641785644564654218327940406463425842740914931815534530933322563791303857473318514539656491260315173092314599191023166336401003186643423982875740748412213637666166551942360353820222477688771966110146024469132300783664844534249024074198904087243116458359141995339523841466903975860672324857261842265025523840664274572749224231079616772643139381485778670105034933893027017280342118929739332875242027476265760209642548371266894675874435967991015421182777204163203855797546409538942995861658257946038132298944640801729539527891040963493106691323838383296600287698864104972001080381261995507260564408355114500759203102952351570410503648716080740530295797211636811410877110374146874970422496492616910950119881808577063789321990233448072189496889281995959615534570193741568283688114398574255258911006118498290647773635999608955181791246923224041760260459289889563965986821199530502652565691300014101349849331625866681556055282718369130335628355960767768113700681259208496589707369054516182165287422829855373611309585803244178334501566829580310097940473132400816191124315180357633928369996270314605105620330246254605601835629734954059239917117183493063990775554433961012967788797004953399630055463007624014914291005106748903274666216270692612477902120584414808416340605495977660959799789719305279667169505208309000093760042179072386773211808384908052160887777094649014451043501688606772258911529079256176120862308099468830449695336974773401662419745153984202042866145686628962959675629818555151520991722497721515534216647756240119947932976966111836270194171641961497097685595486376900311020200171394107887193471618801228541722710304511821257319821840157748779261269565226996544708429835304498135283726913006810056512010869331263328474539942772585128142174837636869800563068852684596839110438810845430169635982869253630641971607214393269466695410260432579509566044326902363701856751916425217487019013650267989623013767800928404370831254234594823995433711686083983378333324337841029688208997092014567706940797528624577079882404168827143077482640243079268640344694027872611345910045211422798216092168333946999868791839172552376429655182161473091706149880941552677976984812898762008144902915514848249818582869846248713771062418651479963006108730544361168909164607960117398596388326487313196725022726486539369141488877236085161636523054539880714601760244581123897291904441367002840584165431584689825952905174883343764006111576621104481862711295173753271154310400765638374134027696498478504166343719255764409025534970103009974525072414947057096802361311441816151674795110440191021443980361831307958938478556579018069513700751713815513552281425058743002430559918268758647987288643225853233298631752014331972252910787726934942986535663603471859316625305281769416252359510598521834388304700537203788499462944513556284427354595295208893822060027681054133173857141784565238862857070216672309030028261046187273244690223763373167870319800967675727618298041145813837962390104299119623067754810596889894440474481058601142567478575830813883915471333813014229302705398018190410734394653270750576645323380289273358411011882141646937895745756616779030659760414263829253727987539466649670537026974075794457842063245785296313754183666529695085466600308626154556090753976987023706413981332542297806724787322615070478462138836467971775388475576034906781766128918266713974564666553213513274246029932156438913630713864688315428987026346259464629437070276988471292627733365111178808992025650821014101544165742321591618023389866260509564951356545951321741464277919383511591655393073984084088982328552994208945506148277918178008581291537932412971203543076546865531541289536782322336596390263915942076180460035064222490539050923233123205101889284160872316252988066650553324583004587619008674580685816124468236476851407930374395379720491525328474912610884447358013128173444305844453645739132254307589020756602984959425829694174929284918190092548171714011810259333194512758487507114928914519118508498124280247835003508084325122257364534475326250096331732789782858419931486270158127024489092037582654058964734851342185270303656442128344357202143442794437878219448753059820160089135174369291635695778062167881457513515749808936404315033848585277708242232334531831226563591548853021572431635022690223117216194085648053023984079025330652348708032743453224859160602719880747142327425709859904243852616516711105235751661203713804824392532760374357527728636915928996050087132061639861622318895625467498234550549200709164111881513639891885105719380569856766531306855130898851947499312949849467247691440798728348040614706049015516128085525262451081806010775464449229206010368530240348985922365853586958097987986682733644004147801572798221985885828777244095064382058818297576906026857077218337562722654750704557236559716150266686693309257822930690385706595440005240882193686039049319773922278543328415905085262074039182924245327368918269518685913176901125468256179054930894391236138160869741964961820727597583501436029622153426667771221282911861858746554383409409316399175202496662556046563378191139352679452136430393264589276301868575617716512300125835657917021630582283565729252297790536769241690779217668195042807985107478002489739307162908598547555151121420640160291262900600402725221498953785588658095243425396308472987214662085362116167853321335430218418999050231947951972455681427316518487129079842262479765123825255149476540236252626410461449293525056366110091589685285417928205910704030360856631756360102905607980495677133575372767104139891214392430664260467332784988672740308254920697023458219862070277968398086558700712959904313140536379322131132622213766832985086824525862376595129908840787236101758856027620597589225221607942556855216005363737803488513818462231741270427513241739447164273059350546855776042547621520159070225712811460507932879138862114860122010183042629295299446686038663633921763581311305193455970545395073141397239958995107855018997010562801724258264702689585724956240406945151162436610264646790827374865205551771924043281619756247602594002925193776716863632925575864568964195923468461509522780821552244981760242398984035317808277624402266822632603321856266183976386583397274021207836050456128962765804047747930722145440787186554027505424019206445689667816473800977370865206515355205199664420969204747095991743024327618740592534831000642715404694289653884242419600807699358845105497269672219467193499689897066265390465703276108420343597923583902033352969698076347486337212023421715086459327143972042773457578652549236588920405152845564150118525794572434197600477261009653621196636808915720425196572260144329092635633270304178716573119755393132152891681188949513860427876671046970298827815345314576082785498181928579283267073490205504021147148001112670020333439692038406168473469022075023578507539273982836350001803705382273783891933289634148465936554279463895247023876727187995647481987002086965297124945960605141232227274923107698819950785328485282878034954239807667252725570399309203337058996297445669985093295739252897810715116805444231616060814115031633349566802171116215024846479201507691951586786091082683693195063952588796304132094332559806826738380467947437741685959896219762498113640452758871757384798599024482708131715137690685745483912559815290600277676517362803566007467922670018312437514073451661638338475462123257226065855169760511717539298026541543890109992832579624423604027485379397702136604297021542390611866507562481531540930318159793278138526539539712972596306365577831962074928109581490186105759536480587626587685932906821491413926442609876904555734235827626004187541750920058757944414860193334952407293408694625162584588846947065850565193078653718173031357851397638250549962936528992271717796998008601871371719936719885606383479682930706970093457211574731332601394993376661121583009376255765446558127772325313077871695457742957513885082013981693192871669254257771340880920154495928364695437706996357448741709141083813777064625776968705046254578039400809307804738490129830072523835742861078241299295223341658444357832140497867820440679857385902228600550715476532887629264353953995462367974874511917631204921435372297095774386411132324276565043635576802685943996040038945936973814788373627142527991148054674193976773904841595416642790314996576479169015616748618376496884410753077917354373636194500254277109186642878549264935816133191327880879033034694800413182345858394418938002140549845341861531495644185568865324859167659181657796327591587533487338444602640340995615854250855255903636804400227890106106853887361107691022187590546473080798031240009468104350327947099374160243917537768133318172155277107245880288611223719670539715994512462040151717325738963517223778850164993777072547044932600529659049303643403583823126387490470833744502210757466952704218770956626846431064868802775556937287482657255296404932177004859118441087639845173406482583953602389949123549890421952594471924021270235028159366242292614115827408943745221689463293893482612497791853055564403104631539255757936168269274295660897389730774067269346293431395930940451318013845632635845074659020182790111036297690376506654939613990447337596620938455964577606347731021636626868211532765619416736946418560529618700823934465003569331854440462038218866909705568251281351848267018421204330856073423387210977975937256080608872658896472483557339326900917555556305534951428293440958016021649607356877488922309469992386485512573576734844858808442875756949483042795773232481603375687267375860883331535066165645810858184267209020769032384656180367218595567538609574430176877003561578127176270648468437450305929248683780034730587139805165241928729786166287738554706128930089982557650372298188343319101408929434559719322556477708297349711076813663985834290572437326393992377199047892170578606669564530538722120696176639059439195675162487665141106906663229436698881789517731827593906581028565897117968006707685979674685948602888565172226052759186814505578069415740566965735104883882954293551337907883962284385562902293987335606584418399391697390026007646657735410972026810200470378632381242303100015805908440794101973428405856970752617924448428399946325268422825183428139740289072941186557517984307531255905904144859617258725072600393119698895271974626255184187977346151904191888843275555228313476815248561040720995178785586776569854764426372162203667821619613083245591729503385256011450155744898207414355201156618880213753364450705647932609833431040671287821036936433860091229702398942055695341074428645771743510758889531458295546458491561501732990321439290492518934769073095517778408451999397148376954007146379647180602459479658705967237419474771642348088960621691131397806370380206442157918822695769260699262273350211777279867853086484114332389768552180394945571651087066097593928872414635655796129253667677295160800127937618777255046214614831587991678567394119514700854815702935261439880861201528843241357528421487360670948369249768792800022617093036760901499857413136058661035306490300829708679018216050111380279925805018663034462288655829597849173532260756761034119010297239588903869794289290091963431914808386015774433410293534468902102047022270061108783614058571925527070095299485489915998992235509105668792691750881363896595802438086707784074550207099000355693668036057772470594052627861065623669667762726191057119298844027772387009288823118054159191995218743479696091680517295990771335434563944226964437206126815695368254840668540894181336719450843153819440634781289986925945897481736270472085178375497092915534914457981070190314259381914492559857678137898174180098960326601835790024476942227323960750814360223645970032123666724056961289992199991078123300436589715434021810780184434195346686086248409506443151067932910373571822959506544497014335500470620732861040630953398663939372291906010255967760562570321428477756087988900566441203049475566759560388141013083368320228805851712963848753620711852122570617605784958648054959027792541734099239085666044072844552641173413674640999760568299885921165655877720583573966030809315981874935332591953518651824123854470290849394254808267484877099186562843374311339268460940365338247254804748510609619680416297049873929365936335599287573164553315205076363147787157809275192661942635273184063149213167896479365114670899197643129889346020018991846098133525235161675920735666259946742952429315448124364107703916869212872110322506587524604813243386677894632269939145723305115517462034823011821506983780364232021331582671073647834049407013036132959720541901381886721734646799685968339389279424964804653923059977080631154630509214902847077982258203773921852766867378713714298885216040872313798838964834129342283467709910041711078943407988940490515750808353680676628087758425408868735499952016614525738940159629090038296288345796254244604891186161801723048933195813322963380537161787765300728247141154244122555285753026903554674119558054694894779610852205596135871741667075700839932073945387305702627310263973757403874539760982413958900033802434921149643791903022358744294836604979228269168694987072816533347712861397646338108527262530482485896550010085633571467744125412843059602496563222914328879504975773496635162129929076591269038689139081824891502380007105452459275099536628916630677263511561284688346645254579875180879629972278571633783951552637805816144129817270518766856692440003332171616475907988153006973927536634101175489618788465659051775117877777211237623282395128586104729858216514601374715559126753876075928871267663404466065937460474182325138364502090481466058538596230898097843888904101108328039064399535442811888932072603936001157811314076529695238848093128743388956681987323239452560273941630745655508895693303929841544122032558040912836970233855063395064252986391914013413420894121623966997567853773253056032285257392025784267541807935624765437273271779457399433438698045138204715508718254347319197208220288903294593696604827771959374525236239074374615644972530758219707867156869744807586834116060041468630977400428590810236175404882405376975595484972524352299347665518509321260989594121268257487771993173461603694819677548364081654437255525200338926062951268803333624671773485323762374784016248439813418530371618630765155111091237472394865433976269624561256948298985822192169943830601822956702190184486735299786871132133918371581496742585807349975427906132440334513456380330473001613746906756357991877637460475626344783604094514906455095738480572353872848290027645409980483042114413595242053049953552651184764803388464668913269086375126773376806814773619519406278151216991654387411083980415128653112949241719215672074481739447501156207065531064646871385335396516927473605990980860933727261937298124150451692159189761365456421306831736749105947096139629065434628404645470305556379476744751565722567882268904374810390170539001830283953823044375371626937449728902851929683213547528775936945762291613431463557300295341770269652586405506747513579232430541394377445987812742027582392402595937926217909679678161615693533172622371590486288390892404479397889786053289843448716131185306016167212542286604444467906088956072111246681126239046074394057277735931529642725930830320213715203400223201479132252063272851146675470871046136721904998188567494721758903329241502337317343648790380327034604019752681160801493089956684476976195754131570818965197605550856970737092996699752739413506846055679667704745001320782471921090875107417492324281196308033631641940745741391636924656807069013903728564612323461010881612761980168597008971535738978484424456419857331582942901467505030634180419292573706653735584371322540575671021496895245110184013688192692487933206506851454069886349352869765652469802499896424203369681150266986215575829568046620071084161251287629472267750093604315018067045464165096143141216455113296040019977856584918569926710265856058777513987655606512745944495211585746551314984517704271881563926141419388488626045937414462861749164466396649169352895127562259445071651345879024903987173972406006327984036809161798060357051711952186327730030079654031799422688844822909310897391916707223041851247257804083436667602437575184120413755721579382210670473739084467367691602608132036060314798715856987550303280485879137740248873137131738843038895764998095253242631966997934531526384081684513660697793534652659002724797122064525122624753430268825521479540699910827369117773390540680360457113106046434976733418820116552945614668762306036493379859778670023182169418799016839025327912589920334798375724140451793463491434445350901819722669295579510397615329928138891206320145837245521231160392192615536007993836302759945845769665088814821083615327361092861574305907274082726669038738877507443996004097059854716775838088402537964005077765767135542216796071840310490840282693208722247034285575189620520028684282504068986151516977554575124367398003165764889539387677638476315848219269123023243061336174950063586369896597240729367383635555372727701422973130704900055930590458629921079310892970587414103135002973116723829389210970930217595408209218122143019854120247109981423865140972398672090467214079652470089985430890475858271433056819326754762472601560656198907455296967597605471501003218451913127250912490392700909279885834704729797678472631221756748593744342171231060083920189272736153487796535777191375365284691288108074154517766082798458428442244659617649243832848184695897690691446802554015837607509525223109175511288517442322744840502370499798770710525132641715772010687296188500610781605006415282940752826555592038966209712469231662007824065528867970784637335086801082145677475298868480577129337226709592859436106320837190424211275364545455437694424432888835486429295118285746959589166096410649489660019344023064222545752818288210154028455573463183594896020354543882148926663835734687150566559845481762480431019739383950300133579482381327560919849526733318381336612763859995562885317837240132152104622644490740206353379547766614082295529512636697194817198723024256764988690548717994748797930240995189172286365795035580054803505519949575871477795805533180002098325376868614570167274210493719775284018359921774945346791191628160915213814903938031961155342994221456132799682411736114092941754260318096255850909626079113731635749297187962002783996991808582536035437126926933404403653298008014130485378189193597566104037663954751748435831228914787372049505432183174577499006774832534105780683835332466559257223803078311790754275342851387406883993905472353878051253265351994225139257203262339092275813448485013686843308968945981703962729454710464497466781028984654258210743049536195801560722671609488333257058046975712678074562705300210084790466803099983401727795039012943938280104879722792220649703531629263231067236386722753737086670504740693360182298638240261021797317378245103131923812958245146611859980808786957754155274131656378236749913601528587672177105913947596955003002271757535265101823875274761245030223184954455542574825670694322247190849241639987412731415634938652089385138410860324710541142307603810386996232461399409193064902976625009221063745064657455063377273718925360136388417534932795210988757179651206650736337285973958350946809414083942807730439548873380341240244788967371703988066110241392041778038142058313407787504406530285866041709451938089237778613578131426142008916829401331340379728117478003947903633193906961826847802286299845109203773500794123543174125695683929920573759339246018982334168599420542631200052073253391568664523172814269813761936585842134382591339151089508747912186842749825210761079129258751378548362988320009251919944670531873617370605205804530866586117227271958093038629762214192174687805028380432964453636356140478813151497676569974271697921806802047356281741440165976359775214458090342346833421450716365196968200603081341652662908048714021810370021396556404595369806739991945078433066155844941991136334238523879592110935024759954502403973160121062431058241221654114858662398403803730219180515916721372702168320961764771913451459661021431568604127493074294466175358444571522485026398548428055356687348916409462212825113740659798321627523237390939249356151782447053125430803467009570765923349820171901741810629086661452103030818159369052814405034407286773741159584218480360540142811813337954945890205863212617201506914358920623275004938551387483946268978219320918108858920762169108710190700514697270497737105718265981323179689237398930793179566377695048258769095074024455846110411799371039634654989763008789331500646661056606749552993000536031524617733168633752186448952883079501778631517926411381376644130806525203883810847953592738603463515542026579259782432406376469103085912164574032577156420341084559804847962177976932073270291804922025760040663820960553073280842949368082684022913099549102563281576317115317152965750751827989980908776056996850791576271893369770730343301118714314231160029031284242401176622120368734405450336875583674822320531963092010983680597303613806106312062619056148479860917785043089513601956942460781312743919169277777264716080040133306568746875779545131468049929007251305431397701033703546854429279218275391382917305475628699456742070619751040811504767981934662188702691208914225630919248526673134206911017744184555711352601423969658417432013918164210771282387221844605826424453506408668323042927642013224413404616967351025891345596666129589919390051874507275810308418825856013955460716135826583465450995673444752879697366018405633997628042251656381693125211956206888481698974455009934500666432261263140696595128082457887287436781145372416592397132438217922410957773836510254023408208086818764675476591154058498465000051425280310368653689939206874411921908156383147189846885282382458326053385851411614852875764527282084589517647813516434699022763983163108772670578635216400624496609125199543849100487860301869425922577370725585102274072988435627903107282258255675100767523658549431626316153424317810081777501269518109429863477427449529056735140048568308747280192857683285869615040693863022669875570789652780948137345150254602788429719787687933497521795564631027911380996770831054159627106114383361683115080803964056829606913803896031589224583722958362045290699749046151723976976050877113267578793524484551496801034002926519629061260224822169178443096853578762054131826265571865239393062641724124339420883670371139267235339380198125613085759409130619641846779823006653113572441434093909277814752240798725844301616803348858891080808153608934011072618586835628233976881665027746319652342199659548174471792779215764224960566612607091847150432041501020233704950548257806118518446660238986878399792651654597868698388607951746406102935036834273845170491550436544817320433315795620504287065200553995124135425466502169538718761547261803140132627504451517654437192597258217968732341602935417517073591192200657603966673291596607662863376719345832817404283665153700569217674224239300549639053485507295975959030444121750176794791049250638443155882121983512419472291732526671565639398543193162352534674007253014834419011915610320911607380977256826351111662087826312897473624789296676922157290828848803401881910975357834024109838676790659363713122803737030626203215931968840724619522003347542226340788853331839187164822324152634116673743691027377208343867992502601047767709689556353098473798146373085881556566313305722179884787824007604275693347309958661644996310796099096464437198243577093207049133087048468769756206026556820999292443957901735000253841069855228616084934623130553303512669743637793451247787288172321296168353170639110355539936761392826196366038178781439925248500814964175410627451554946829703128149201779504026315189688936196962012571345040963610813919845884783222049040050995090103295491053949337125994530451554865223078707207613325494497260000973398223921772391578328217609814586118039381069676759357654302561862342444427706897849348351093984463702653525843936860178509526874279587156982061188349244515995460609923099392203433362783798279660855177922105304733175664332313048877272392824586443780168404586840282380450199689824795533351909086561400400176763724459224707979890393038171119445653542644357850019705291950265008499039736627495344497608979940862125176703372774070926368073647137155600471876501672011768100978561350071502804584239485762858290385298736337354553042959124076761170168817432300703605505627895108466159148567560126071858712340026270415090718910368481672999868620256775572442110933431725672590865012425216255488577422222920222126013480007810929576803238477492281514441016360014243998174188864875961478627556564842012262616193182671854735373820259032944790838326827191050052849708726684353205191981721437290820134091418435792158737908967206790327782033038367651872494055221731900456799581458857022916560324086197633712667609211984062342425679239390889425499702500934788811490902022356395604327985364656934315738930102587944778979920923807374733715329352933878501363535177610375356997328750180018873674074181207648076527967935492660880618309157001786741638681818155490309323020179084992537928875518016792815391785765948873104514828019033828268186242721631482392386466768396184954360982800384551830186709924416942796549507823839135081447890015127049023613101867236328960936618046760162537739902699450893213333403684785169005830439433126668528506610423164867059576489960275587546782871188883168546571728134423878947706764678042889648936279506243974875318915642153424185721916059934925330353567498910461617658200040533566747805898687336989156687034558112003172871042670875707230543467978891028788783814373996393110527859401650319311431154632979775799133092892462399826355454607508782907578115888005534830084006963562266439961634596662462378195726005438152948274349405411174321877923586438140320258309914803463255520495755495871510635362296748956925071713503415932469302887163368572777395091197925316931218593743483645231347374965462754451956923596949351715593787334222991053474289458086880657691201985936449282650854043487701731469789154937172634880154320258699549045316731945900921652255192745059058836208706678349260486870789932452747153421229718659457626801124760669900171132971732998364258034655777643932922987909866312547162239564237152900163604886306675420796884047113393313329366286548919902633555020810164130781765823151044402356225063369182814023184964596824362331212982096136430690992180432493605616911558590512633590643893635576810018355501762335544413325865049945258873700871157547696191678695933457272757765063317811425084582082144965366339252785852925613193172285491579042357301347289693136023794445221343697814599532104468956576836599094411681276973793501140627262751405655673317190119406490879022624961151548586050841357708686332074837807269851413578097122131892316902208901959045722054550290495314206152846060680642520114049689573809752902982949066602381961210180087237588526806618872489750245678731812460307855474872790168320979832023476921150019029734191270031826519204265598502697126747524053621396087882727446204292104192732196732923362715432872718115822169015091160100052378033164466573823250516779571680205817908672202184958189644847726681039848959726653879618450965918183844755412753718285870476193555440443277146933961074879937736888358263131009300250536441932198012320195599903133396189231925080537427777730930585840881692548374780751805216493494225571427705410673655786102111512432668169061536682949647571385046092620371276644514185516538602521897250567223005164496683852027868889733373941033768924340048827686687752357431829140182511690957581056271923418624952411370462928469482727340057872427519229455158121159040101584013808400201757790887389962440803734594578968607543370100604488227096644571048061072924414529712863425175599002291046983294162982397677599606815222446283592960180196203440819700805542865823149061208978996810427858349210527279465736064831304051879993182061655745927344379403971945222826869631578175443066886645612241014881415494260179355343594118958520370160735013050571913284703035157026722734617931740648420824703305135099003223628067046933469805207388386890453487566954880916494508174828574343545397449208515135764017737949903168162978689841922864942303128502658491695690469687576873955149570769374636701711834469958622507363157956360612168340699689882445077429577710079455785179053536148005819902455426473649103945375827234558790136712874756397721631152781469430752631511446530397907413326618454757630849911307573772878093443898769956404390721706158281082391827564473033687477905246087771503747118794527338210332575861654145109527740875757283254072861651170781431494288519968371685727756299980663913634171569615202003676682442179975978861709497534708153660637321747514565920727976956944607450086257465844172201412031899866585020519588314051281309428312756044171633771613600960277344068852247934990140739596281548469704538803968041475656470867973313098253851679921982240999066650181066922765485326805026918642103139087647410686498375437773017863447459500056728456702312913917894631370485652796187010766348870267669295045778142367013300925460040843164980158273287134758743381919601353122739078889051787785899949627018299487946846324677708503440365763094270039270397275987204522981104705572850065319633286666750664977757928349242568176500225095093349409044502048308576539057601225971982337524044118768092937965226958651646210236210093615206216801991378713412958048035432319414800887478376033121512341983020028095408283437142510261548904129881314118904360503068719292365512778948499224315150527842312982725869659480258650713328268528360198914660988600381582551127712249297441632078890606084840704829273700045869520901726654538530154845154164610232684303412724970178706302994904791813516812924269898754578316942631545224642974938834617852880539850795354172253096319912013256791313764204121130725729483134728766034335918128646353542714665835657868865814136909014777112331701839967202813184322002327102958469738668151646963501608031951798398409490964544994967150155992214439989398996888520093260578117021989201032152487043240250322436866518745983844191470100277523641278417655608558638336839908589756541246675333860159840497373111429469141810680336886498298792699231448928939438184081891692683473296922950844765264996711690158954427703453515323320254344112165932335610164764881920079819555681357905318141659403190305256686978355309992846043284701644465179801568429971584032022618813441679246313053627457517133873078393336527910381753600705652739733536464862651779174296196295293735664324875948008095639464245124764733881033291016740320817931053292187502854591148179465660112479734807054444484230960306953155488311112471303998312591019838360601657403293560084704512762485166154454474420147779651062067287400032425765147011046399970596409290294607912451342487188990586317305400856290730120618142264591570407332073797299643016016504849285506441304408330882386442509454191218606494721443553862849222457853203939971572006536591113386933163091502140170351406544438119345273234364103512271767572178803965801318623241184837304179345496565053601336385336000028814587579029214317505479819739814990088097666378900053535602506983021583012489908103739629853395807111332337138191642604069102612450339651869270512525864688225438730933870181283736594783271583834500262817057547221029204212718147204015538100658622472553693058592276371178822147498317163243482093998183327680295012311916747160394414070336494806296339448303100002995075225785364314094179958087737486192220307415852951360084082919204891461880568797026743414791017312426697170009488995341154872259827244294577647659777177999773884308751064600538811602047373135160177902521187913762661507123328940762641804376930052040062703960869014202575939436697518754734304328371576388893038125007572679010655860731540970176220587745586360954532871632140860265092225155530167290126382342192513210557557339883418444330166986697397024230816104857749741310241651876107103485680523920119561463583514166150425927688321047164675502691140398991705519849412981599594158089820049852234880244902018017996974607023360233235565746258072818148980410650561334194726514468249448699501260514789382172485601919951860161431980560889394984372345410563305473580878550539823972963272844910457926700962616256133829598030452934908689465625571540206869371617875015252547127955614372063376989056717659403088584355307662055743965855999660157639985064135152302713019098259631597730272783803737833696646183128870297960859366929908808256193563877024629488441271995292779056696421514650930274670800265945091988052165001129203669248153921889904430183125999399309458970022314915994971725594919328271066827393781863537956286326460731975095611201675873078508800244306223388795808715498488383811504276458154799387378560442349653605189819174962415515045862899198444490257113089099131389727831447127214957000142860637528202487386415460013313286869779135889962225698057902261790503457137093160607094442998620689214159502135973953734968639035745543079306880682784305791888563178193164588242903473658873323895678164791627744238495418549040100023360505128071663190996509188385549966784259584928034728741842598123590535478330283605703803851170807675003187087227513338888351158020933082891249874679355100331600769308072906407094972934630961469626203456350214209282998358607886547976369703510398719279336221753042076705873051404145746302278844636478335260509256786803812479912573359601001851359846527650711940533214985990056976425178784024886687823907771086059221139480734730910528480465209454801986209587702649735351791032429595628929794025553032455938693141258663945432782723693267046590642132079394249250868174508815373699260859400179549466036476042809284340996812668243481680793271593923692424487925893960815234495432895672317648094805245214999947651476940197025466079085109908716970560732857597508023423432513532612384116669310921137801805125400673114678091093018797288297857538933568996755889402771473017885246996846862127671812661115379160512188010350009123222248994375096998661856922403200745694760079098475793180216051960089313374710450460526262905459836366256455747446219757736569706012754229439446890864961599612885320724372226452398263697004900008039744053219806679317302282852179111275082706682092206286372568036037205297978265854694812805058407522094566158950266165038229713309791253852796202543944725311017625201424991481801130643667213415597869385715894805023779001043288523453697837075615428086439374853802745434149509180315307345057795923703219393880875147584977364807672964024959636723401096818531946894185408860039436300234754174677214408577414340252070794671389235350860057412221555357774523082746813829315032993547020607395411729304317174410501627084416581443488995138939259109191684726135856087844617936303771903679072004341686063201142773997656947952064809348755231320127415245979810417289271150660576585863266171864059639417894575856976282191034937400204847815872189039241069413872809147422475854951812586060832242144868301580070019882977108263870172922664484572943599106557108348753617020757660785927199541766470262220845362166228676627840284890922447955697880236411395857639462726866690726136014839638380875146420798474429151107708002094657319733458538713490371156599227102752878953062909191345139536371456441107310383470660479212984599969361028476429912676702757830244751407531196257668840596733305752222933015449139889593047133856634463897784944886792150065086107593133338500272430813274757022782698094877189441073197786317240662454223624516451460531347720044674757895433142955939915389817205585868561658572062213326309799219421979281802403322083740648029376841273082194477657439421106839993960523834620681155431651506819712845951808247207552506025919556391318084285441220513516651919215457418087164179436513899467070019785733667375367944093674194741032631092096713815496283983270187196281531532873121984054653331666798042368281736606227120385587901567114827626368954875954449830172854886039362171720976308750678884997790622994762576146663183694997519616209765519825089852222434089519234702510682437615128408488896399786067740933323130499082275612057481059645685085818135467242875200479957580225447024574266558810998374503267548231064338547982624640847730686596332033149159282653807676261270772559601536342776605596269676729346886253010566815091981060614221303263435911237670930700898286357221958325400868320495083350950912536152168578229968282735120267449551773612099870699421686925380178434057830665518366508253875751378258446446197249557449844901577593843976750574827126068386610999673778911135892448176223507067252059103012040343133685493759965189138336278212094441311492679567010937753051893115339733208346742691532825903086330801952287162499636443614245440474918918620176288321756082547990390504895458696617259112269172684593812180253530729777959068827685937380154177264480422069100475360405164215144953684404344397869343169221816675965200633999735107246111190474932510759488802715133011387644327587314045188676131359204576869638380688207485041172126560897663075850435877627549773831347518979805920695169521806974253917069321796536342079892552534340301061128945804457038657179883802627615928432386189890627792383886539833631168017246590364432330931087342896844717760084801255854566282120912719992020721447709361181454776834846548219232050125730927495122841265189605135804970431096299116639308594202942868041242392673922014592623158582956791027522416177454777273073229123390042010931932540062081038234179197394125927167646252572670960766274233666245930359529490738819289795187451970461655612436526272439480507765512464199647642256313776711778842489564925752786114166934650975068076557442405539022643892269299622981203659490690675371398898167213138503525780056290979659080283428603756310632611913859910363095315069671219188891955812507525743237736627078081310352534838950838249404121764453691800095757870334851626488808987293159317371084431397858254734926701577710843517207677892207244361233580415962225101147940261489668381343383399369175678663043012569826446348814010980291280780146017201775735807449145499090579583111520535714004452252679066586883449519968449019798281827140089025370006250736616588333266380673669241547707802930694677101470414321497185828278120615481440208989943905719801959411996120687086060104302714269577765364424415281839761017939421054673167461729717369253527295449027075842242650750739851051621953758447815146953786120542016475661901481187883816346404276816371253958004482107331171901880576274658933153253827651653644095512746753618317857557719186353738217870377064726256746008980474685633792147944815856404309764660881830861844158906298761015257152504102445157479625444774559626510055009199144673352441934515302055588791748433151144583825466954550011536249099461308734574164563685927917396195647764179969686924108728197700369321000938799873215548883450312268723248150650418285367602386593671355923778653781409402329785553346336002877807778956646033811408705734967281220005442481857797795052569191482833525842295043387902226883548596048193288739295255657743414937506852230709540370957957927201627260220550039799868998407875448763426819842595556285477351498674969307318436534014508058829349709195544198125077043577033188311202306590920732392288773938922084837635075846544451000338772741599422721923112500645236459829716499617840939841855980392834094483003601080347453488388109958947141565975722688089864119817320494163083079989791262991987753319844874727884441420448327682667063230412954030833689188871171347153896330828372500696493020575147934004977802142017699847203422808828876028416075931837579220613531186283001547173492297005820774956024804823966939576245192940686428375271198469718006034121062483877523925757778583291345338557606571043831058317233177006560564463491887498761058648336475177488990682287426239117704606978372512149838561031920137397768673136688665397283518268937906385681819680969845788267211945554554377749645046668774217608308226245802382306859758938346745701996973620663310328577586370779679196843257655693918405575743967672345908292969073214623897921763499508650025214070330712378020398211086821242083188624767884911812761141978620505326657210601851433395753667384594543014207316186762559537992824081680599396825772414055213820879735890662976150744936042647714155686952078220050836797273901616733534426081495825815559929850624375331333246175855023454020761795610402176435299301007694386729269936070908374717621487222560723583360546668002924964678924751589634221888380122312811798796216311273587046065441665123595838131451017485950072334729897718899589136343588088182198514142722800306091046880227894019864983395335744034243401811237773820684007479429373249923577417984990286039932137759412615053207495313069289371385889298214293407040072542511865814660658653481213714692237958266867144427243824391450129637611384152971325664509238175368806920471289287447696244500720861861881151213435477607428512957368726837980511692014213908234155145225747445359969582031660305382006574401726176110408343923969557301372389430173645842255336320844768765709551445563973463982858342036305662108273066712511604859940181787902139375739913923715893938752698725890941939513262947108473747016116468602622275838608271103002301033297748784135884705450272101446970959204807514545933289219339749031103749969796170460581914967275531037169651631993651587863724266432957041913588281440966817175918897955470266760522402990394899531139796681576409781653543940459370515349685258371086841809389258886603651150272043821941890024986155770320313458023193024490773012264492882598307008313709589113744334260993817261246979168070006195639643723305080378514065880159767952272105130495571328635768577553314215940834574108969232671881115697735901894722946435221795202202067418317736854136221779781959897107740344560376052694398645126472036601725555710450103263925043590958391127388905684470027490136988442541863489769371438837127771315834484903318527998245577729696260964453956805658869444081278280644342182255104508772612809327730357978376561830619232114883628504059549297040983426903775853493853970810704798124282011747545641126067847661928296780250590537509856613925670181388311840592757313324680208839835787290003509396809086391275059236668428739897515841872013592198853650783866958252790072543543202585567994473298227686556825702025338303889163299651262500799447468974161156802945637113729129349930966874106707825484994801193325652423343008186034586614499667556234660501494600516922294509713965009445357142155536939189016993862104489902393741201546682136615879300213303231223681739748645127831428189249329434206262333385828007197009176870017017405575231284411265138498227285245400954685321206740650874131979844921631307710848866239501823902667413104146762611918524987455736663761383701478777313438720138424627486507426412777913489019347543825058043691149547695596431672152348816327134109217090318488973332101302474359128745324065018689060385375003904523320337824889601855962829206732975332054880733702571647715969660949202685635558026072848349528665313496020722144693206054348801389744035123620498869997089633611278126993726562438644525202704905648601790914000171538628988706698871078047148817554053258299862908633023754429106514577288181801745880897395031587734833789660728032100911823352843415519273874908500716995457241509464355493337608417668827826254721422959129223221218063028713261764643595512478547906461226971034916633591416766600021441775074189632744176049450608155955779941488412952723258257609694698032512978207874472407426247970536911987523330536627363846807958453995636167314045481201732208338402515562658764723882689801626776314341537840237207391533948229951390798757257489362244502602759036595783947102616288573827213916490388586097145249458051381625347348092341281982300876392728270803540912445279732379903331405434535161893007036268123102473174445759831481281823795256476378027863539689707237527638495909381938824560602473831293376929582139064399359070054948850315668071345720820981211804307600629568034532577692269938123532628798125362314944244898998855785379551121246209769071913694514467975806519280582910794064387444295752012288815649583453763894036069454276139664401438982823554624309112288811993460992436064005976540011612392791698894364657033098357546728786655572128169067390879524722733692831129413541658571264114089645110466482422657785750186099879411215451957808667806846252504974984362218909034004542818398556753214878825594866236637674977549232196855931060552953363142752909870931422876125561492559484310043832478426611891664194054063363499803322785976465963483058837254344916361675100259892216341622373079041810685629801702668355554122594560947449492993268657727834481061505066357470915492183140279622621499517631134029199183744749087521580977202785734557920195230464965722464613685788380013064427417384692957056155646320941661495541367119366788882270594202082697667054291712471740124840399125860974777164662193468560038587607303077602140034586652164068216116452106821223439669278535033873025356740925914540022524147572434983389501081822773769264585382044227423750013518297020495470914114527686148253652693578051594719726424494736995805647184233911609709027763683643390436382484993962963863663479953322493670850690928590423473605479527563184483648398429082081843887107161365146447273634005185406133547774378262512623138605011771531963745354362080492665539449715751255789619818677594744915529256288863911942167558523961239558272404454706771199974542813379749926146033657689726041737022743793234778448458099779199845493409332062232853866753331386141538425381926221050533769813717245111325821106420930735818384256127734567630106696254425927765180270777996562875106940278636599110231020884742527444686282652982416975064947214145062808400992124045532784908543871191265140352950773427561073117199060211609276526885547022027382667277369806025952672637236510585629524396941113828051886672704393366591504790540484937014537574292272178183379880945987410093311376537111399636065319674743727424960382865986265588375152396380407797033995293135268625048224785996809622079725282839682009551506895311017803084490897576642776137609637447049761078429356008312897878194141362461304929742478138628773313278880413201151584959658790476777817069462285772675979965161958292050587196029732734610457150142817364665958008932740517833473155141960605234654547870847530651940917537265245171944111855043184353569032063223870762012769039631864841020807378348901957390212420495982239158401183383256996778742420218079384586764970022814743549315486981678600573273619144205393550604910656698946880083428574499500419021761007223680111231019257565858310866631333914326281648835967789200797266352945670337776455788243186472785664270856015208757633853933921453613286319824511347584242308862638382464265515848307821879438129438160251506451379238564271345687335180871296741885113141872466704459536772130600743045813977782484607406364310825577013480673772777216071422930873391925020594909528561222458384042079366286570333674278431282383740581600858035401552942603527485949003928624703206789566413742891903682320690887369354218753088990654850684003371562101316252435371639905292534096926004508832303251205294207882814896645360859830305381189148606690502192663171325391874933267112037632148982486849538470635248353095313790485964265206689016869520474233905948051111691307870830723286495523051074177984956372472431013538498384051953216019740696358867852553651397410329875117119075293341023156297036474878007613674434896039989793187903783760482718632257883274714634977207986018040838906987674612977175750447069677703388106060254250936670079482564516023169623560355109299928290673683278605384848046918320892726289664323642120894646416622527962864574185045482106071514922940858299410090494669097016375042346673521634000653477268487861310655459842732292763209403853589495149426452912102771447541593881741750232780519764757172513928545958923594506172467183006499218036640318454710861659100072129959770649261706763937779435063408668529089701709338434382565240177801657742695752034576532855722866781808935161838644109151821341358754048589599920773788495842515341781060577371876063996990382258986580877658145607869517914417373585814211640438821553202200822512647741305428393497334643877016819228348843274426560775765832260204885998078794542844352391282120294807727584002207079203987974147209478665056237241215509998172443727676536713735152178410717171511951927788395019548565509614738122888452578857916413721559401703219906470325419551770390050173302394739573843125832230040008578265810465788702264694709393074934844886490252117994023108349886801102832867434499952418942597503931474829427147884546331327209720383724958244595550846414698496269022391551470300184827796038349850358822246941664417574542252774961537869347564870492277095645084614115678625711209846579863404027325197525777972763851052389625411104775083915225489176526532285681781032804984172708899790118644311231786512324664764848496978238334418828857193879150529316189265880879627468740987236604933806244463261104018502736423985233618437541950747702189843212957329166794207677418756534997501279127378460435937145491974716510504365292323726100439119483626201020369438620881872295242514002701955557468618261310163895542185508720687694243078476257686760685614473594290877022125109891988912929101160492397402400422258740340163128939196763633885681370047812247196613711354907593914229690329588032480221092165500304942945876271614610324371267938635217846892698871556025808052908392483158865000789768730445474424657374548694118220081756712729682423437733394191493390066246538670770616367248603124732850547705888015566796831004376742890971825130202622226166989891109118138292932533612177030316639641769826541859620435378090777696509965865482955462316843502939256662344297784143039638637728818594928996285264592274032672650107136067018507880407072462068553353054888374345451460408345315312475542666702978528813108885065248011472650666268253549072186434581585486409840834404067434982770547505221055803966245756904939731603479890866824166735040537401982988089231337224550601428208102055614829918789208917504388266738858412997747724826227885698694975170825312347136635866933426787847537868229905036676462201073450494045203233006365004258924637960801525661286817301475606364509205373714170456794193937993571268590949983298987808652817403772644905754687940722883916396292525942168039945410831517337209970453108332728851854511434580183002823711936968662201798905207666560307236851746918376176551758636488753604075133154946466759542406381788758113914889030830403139964730594930780953223382892499160682136132254795216568786683196269736664001727985101494285404479953391461684729499272404810063470982972265270144964075297960838110146711426231228678831484066837627678952728838050323572918924884100508368435821048868751497559416267975991263322105997962517446090240806238675244001818559431061740202442746970219636589439724341326315590577627913808084206399794933488829486954924112144289844622508335283643566340233450359029985796896893558801760736669879441555093876445205312380382962690779760727253049022475248482011968489684932491182922277987566024419742382629522725639026753243267747613555247615623565861288309154914530047798335017756708199932088371820117425840915939896052646092914318656461737449995004053638881214387335223757371195305106657221393327082322669304408019923688112735255027663760268169446764435278056376071937106859259654814545613903942377704071857503353551595713408802368824949496127963471757139589531885411087431995876095507635132204888784447548960657519998563205565788328660850177251591326143397139191965735606294174422224881416865684515259199776696300021516864873223950936322972890748053700151522491477087430990004930052100048162886334281370214756523912417903980555917923585578266302633020544407077392448223786421889509235190526198394829533214907893161791545777475160716081862062683707064880658307710621414292463825071549212565930777049253101327466648439131483009858283457309241214381450692084092686847172586998427933047225561079003089185426021980647308316301303507311223790923462657753113701630349032910638794020541503376412262165382864099334480994810254948689297351890946725081783297988778256797640655151504607475170060094097112155980458187059620987480903828106059680183435530679055559811432460612239558741040719052708107665540932171074961289331252664531456552392121514899363631176330019052443421714363171556839451931681380971737626669919283135103621686399099125557464856196287562199564789879286787579549442279503979908220481228757624664065686737490003502852887012882764696622513895546003440773543857095972440216266046633740271580079068748463288441350832244593275759654096637297336589681198345283589885686106940257418456310867833025599418290293823743732658412422803548240133285963645261653043762119684167115849034643048671282120319345284822273004492003506999841652669541580986663479984564886578516620432843910968648057617720617238623837812159511411582702989692887226321854953502326671778439949845978686442609613701090119321157758318330515070299245216213234234743447817217007117361477960449172564936277147745847798688413968612493075233595285480819711972965375251178383486910787686357817380047594686573840049670717292961089571911443129760295684917194869906002752999114997387539805806265056644163230193889334648861717884804615966777785757287501102555231519797762547554674772905530094527643314489828964114297025034681794794087126086813234061234348239968241350935911986009674787469932633748810471891680881070901268670584503043152590053885478200368699518201237606982673546771930008393060782521165611827763129220499101336753337011593523088766966423622175434175709064460667543186443564334661695153387123755211421424979182894955923294031387822125059688595382526741234265885191081509195520152529069298505782741238811784475473498642327272658690135629063206394271775217412489392322732328874490977428054376341369468321348912595608528649351017671013600933948995219411358528660117855912876274701364711341642797787853415811921758294761165343216873607686668218921882980734940136317885977780779397579055436607280024581068808951213023782103710578096888830974716665459170603959836714817937997508973696816400154701391707049355869048020981102396052747497959103805404467496508647169467778256999881512199501538319949491666888306673068248157495523474888820940100865241081406875377591950021070829485609098024744408655921368088607986644041113788990890053150582296236647895020505610962735377974986167798326076228782348376495137016633452363572190359253973947321565119255914758756438792012098158856785397341374097038475523021207396526369084221758486612544554412017176426526870408183885471714018361625958930991113400167062597473758105408081703383815452005393744982448556962747445914738125380329286713445277721173791741934047921022944372268222253416006198579708097249828339308372585625298058781346076171142087204144649828403260287448434814849866165230188833948842099115125964539869269615296805950533809619283464876719635654265550941133961297444212979880000375187646240189845670962751333069123120006488820243898998588075057410903077205448884401570535296409094483877122050288816438566298655530393481743312836461387182008056246605256574617145226438440875900530752352050772590769930925334587092850899457153851801599936895759011020336978032551152921080565970750189238829560300777983559432243029508859975492923436840966452782805457120617849645330851312664315276718440079988711266681072224917103802558089829806955837091039744134568526337429684413800570944375127731005016044172829319681821427211386585671721554275426333292384932739862428892489991592057990444950999106857448759882473113274090955894745892558737010740781664852539963631259020798599866484413934680939929579499702382006312813208655674387903771452520689631561439092430466895183261459192254109375097715487501382213382256136426998524896931383559354736871051356850246854146119406988076165852801540778763193416890679896261146140490769152997750319764412978913846884569848985784586369521094143496094689581284621296623294145380423752399219928178153531105571999466703705338973481548490378665030287003450726573917483614021189933586902064941870570158435019280124418413441757128928604443279038761437252798125382801426580876266314146667649582069150383961054372175817543480091599997389084182585992985701852969666166213398191524927586614147609597055006170183444401272121226996339503875589358891533828004631650168661639313300729631602559328243607255621327802201433094105659025092463578301873112029999251043849042065970162596322222402816584636655619570642030330381310848860286088604833400582737722257546481494006747385253127160867466430290529667244564961286236104713078250224601599645608271260865313557637878248705297293217446913525353558524061156083838797361032344819459840079789317935769951381429551121961863556348137937794534890903254453081311536838080057310439580239905683757312948068726015272678168142462054565175915239298835788102653885615116507769043683649378057654017119281345357902493215577893849525537982073568620062087625673197873716456063668190234582589525352460198742038212095319445875979233534379874147568708729813711739702165584704055931157665331491494792724634415256348644585806400801549793554703127378444664901589936557991694600162169074121801469872385397235771421797373892210762767948092582340668135482290113737663381873869304164004047004798807332059222009595297477572095564570177397975950170892668170313446355116354426325510870965256609757864517774043125687094347310410020238435589976881478637765578228081296047946744297785084000238076402539969952156693914768933482537313053928922800096262233616459966216337436441600400701702735642775680951526114611594839157731518433644786107110035138803179381338516973739620481748484669990259896412704112008672652889076450263932463547897149221591488933312389336742606579453297007380149927113760566267863719555074238984211092446472545577765644369607285845146148336294710001056041351929464624382792751321959025576754107273294686822527796712152533919897751605622079377864543793813818309122517151126940652310806318277731546819463828564385172145025635070848341270543588350037351107638498022497305036071564082685058976645694903589019963216735054166451048998353151784218978890591041718182343586949048300035554062973692230101052353736177728723119455184959880692078953270645130106367551917474743255255371019941666635834558740907457168208778242116229313146188747437278134291281609919022000955166197367909115684346348193210031267428360197953830070839970683822048135717695692563584799746019242744695300409574855724102832004411328291259680569214897116806679567070135275302440179663032248216802844995404945035179311530974054930977118936459747525983716018962816877936342379881199547122516274800520220336457630067085010002945194332841428851998693664979737642588021836142451636467287353854489529858014707929103769567471525956324350000640940597727783126166831859123867135813976902799979340526623145362743220414737368343281642899834174556154006693459578342978951299605588799857112748341493873073494286724831339378582207361430637633324332745589506213019053328110591917934500955964113561239113119679485343215476547427804648586449951470720981097497651072351859369414937389627591639184913524610928064533381965676859061585507414390637674698198326690928700101729470615403402644353783219005607071194487102010363791751429644487660247439892398534701209196269177280611222725550674509681446825940470240544823356315381796966067632114095299269045764629383279399105738275441688594870514742294552107962902641509087145268297175031545891170348199377102954811810013985858610253631595696220644150547358422445481086677082251700376154454410742811530380744542752954561139328954568927891270573272593499507532579704489673572763523342655398860551165842339045802607633627849415918047736151333093624666476981653752239989253918600978967044824754621838243357873103610767026442190626145395872099186236596037711227313231448030069032554571553463610088045348953505025819760848583196579211733063332704654221937372621732718254358785954094240935402540073413051979343658120893291602796449330531566072500566512270239879785202577782651175995895979416345075633726976740389197275758939005212013536749097125381098830183743630925607314047085918552582510516413439165455535088523053102789595239383402873830813594123976896986914849789784395237864262879139566511890990745861883793618624183101393492924627136756829405680790790961942676234315547814863063590384782313915356182658061044492794373428994776131415557222256655000368486086896511717197076378380929439861926271665712999485054500443948275198388161100394057589082367115699822826316015040049338692924716425797745117617810425399642062707966342440697444822340914772374099642878669137186077823224669481175651408723395541070815609790798408926077061923616711287504567617541025123388746955091437913381724330063346360361499427939693694494714507294360956608894461510831784087436814965514664157173791183314476026391711214286880135459175395089704240928667585456112579601172664559473576659040155751175963492300297261227019657989184396087672682855929549189343661424118163417823045539360092137145771837749357257543495537832338529011979362464441499635640423899700035004013213083021570731198558075703328940818696591363796793940216809476085507200088012708172226881325439487117733962614565403759317901117208516094871944362126499679992577234668252730816933760914336490405090325499311086647309179516082099437510989451772109633410956578070775159813368014872058815225165370234356770752249751613845423693459102154500208744503435171114240702721508677551342552911655488308854432083936864741083691763918122088526136226984150210694419356859052540855339489558138694631826871433189995047645319408807707577640105436986738627150374271617756069647875371284890503577918812611989735175024058449586815885316796269639404892810153266221443685933418795685269175754326074725100538777464848797776863952076107570447400514669326345657357346529527092916833284547112966800335495383493395892915556717127815516121450976891160920165138136516771616282564448304767127765751157040907903666930867887583020808251049778760566589558874417470450647451518585636201832414983767530411023819632487894708347159523948039075917087171771837573022424084476734181228876590481826722832761911639982726028655455844968976256036631302636421710249998272783004834702869861644984166086601559949593007042237426237546968125060511198847777670814696965804622056897766146782737112521284628434052779048316554935405257194584864117777648030247092168677121428246845918599589237629720194484472457227379702935026624329072125270302762664155699552450771375654836175779918717595575822081436942562821560869610469882621034662668140310505134084925147033305644572001351823179921219848610080710756393367503860962774512202817256143587609509327233008856266749902740243055149561598789221258696136082156364849515657353015247144589851538289896454214124791272744984163444772174395571204365549115981358481816182693168859866707629858716089367771765364424246726258322973323794430296147941673808029565062263633430427562583127770645348598682240447928807686662996273738256933235330134500985656641993937244991477413839889649271224490795676856831692686943512911772168539133413373252148984837946687763329996386955452532666270893668614744719344024530809291789381147526902618058100436264792741234065696774484432328391877553748666792190429677698740690974287587957111653132260461928418596667528427675495651583746904475297149646459316427503181310389474447524120416461758738664641982513268258351866326512804086937991575474636238594429386390737557111086547217801965649062238229824911035192426091262649966525895844374997462190016882212189983707097369266866109138633216624995135296392871489821314511740278853164317931280849700469423114005295769480163502698814980597653044131295747626526463470212923580210535862517871173774683960426209737175151257124581014344466084008913919731135559816544320087652947911940909644675108393769595118315682026353349535184424860910911281301857525741723561255842687233559856866251473155753471008400288640783288241493337530420205007440128396715621553673537918127890492910524362902876586175011894420160371616450510686083985117802690233903685359441598201440209283935343021750901928545036889294079358800058419948715903764235779030985881171978338430151067365791803710723520673353085203617733058430754775333063012036734571624146520993655953229544839540107007578199343378622812824540840779474950714965390188452905531146608892065586902021203864597020057640776948032586932938709374486830946791302368284222931721786057820489924171780039038341273196795925123638472330537330056062175839571133364420418057988761251022491199840616544768450657827831657067378215151603477159782673788554983846876309020286788350882989131514368860170349132393159046924645961105102235681800833607202947571082375923574794641800595068965553761625507879370603352083550577543249451883819050864772829071312526352157216658921565517035386461647657460759624410472037568210822707273698552691437164272254681802881335694381086659007880774269047254038775938480982880656618208949080585502493190000018636265986788412880671109828952372426169065438684892794427243815929994471539112400514192792075926402127329377957046300541667839828845325463528387126972078158701246692913551153020632641283420579062731422799674671649716871277526006095890413873577723030733318806221387324576399773486570657054482668275510363132748662672201530903547394149325953220840784800859652934303122247058212724415389080910960294252789233210632375476085100825687891392458473643054619296544403001829786715848331337174166405258100402663267533717053775509807220138514737294681527245436852285534378126209759720726058100052152674474377907674285050227107213732499767717752193071099373511178440324272009672884414386557097019005400647603989149619976903291506044677449496316506639509733579792516353043488349094313325517550579376976501594341286867046875025154930243437055681678122280480797172189447464050974519621174811868661171249275516386469950706566277017040722769170440720021827170671328739424969849068058995561137793744815257539722387112847449351772051093490584210230749472391886507385501049356237832784327587826920814420157939468659275355126565234354697362686862404715912893392900296864861280709380188279115713893688083574925043864844465657967956197460065680145042414854157164051141446332693710144850348346043832547756137321477462980649127891492197457824198733186946298891167238982141949207908385313315030157150394942574183681482074193957852086976073336648701806782868824484504088689070736069510312857907230864890087637830621493566825665767225927046770459369341177897704304100697119623215010410734418935757914748647010379421772032817952731996658805742473732143486060026282457053347962062291913133429188565994241087170548919589259119524809859933234954686942667641566331179193580581541656126129729830326310190921823362443507966422793721100172916566237440594494894594823910859784540714340323376107933410647149567248841260021283920238483189300902758723807426507977463887760578040153799814718580919404911897658412164356150276767791003958817374369911458401299677232363075243146166572278542207940621799666589554612971164306913194113064461779231127404481168087632849568006191243275602107995912274268099484573850489075623575219969217541876417450021526808423777779009972938558370449511502097396374231345513017133776733298644811127418881414507904434932034399596343079782611613020625543176384603508585161721613621501365750185431196069203938206988220814073201160811463049043631522129231358643548193229040095029599322436152706134955301112083041855624482173871978427538118582335704476596110886621997628888698341394232836380460012788057145657549114853953465409204186312961915590830660411529836867559128822666489664780397823707924363810650877680157154514253102000340258887201058957835198191073835663129661199219784825829935728801717101849350310931203390915526902792402932977011071073415715369208944119742191101931289477096613138183459739235179143822564734878497111834110211584559153241478495827176004284518183009565575273532906379013608742967084917274085890349043931978974941370639456135526753291964036226088841480070767684425854437024563794818354859819839664525911475854592435613000512328146982727043323193520395511896548687211207627657812118036967385381777293255812757349233896848333310639106465389765473362916406533076034373245255044188607894551224796539070399959350409711156618880347378775515020843956111751373541882383458276671156686921291760493427015742585276872909439263635733462076812389920837458449321777335645350157019390236729288794133150514398574328489724164924388524990732059789941090950762493466176487539074083733765953615325576357670646988185007314888625869659406352791821477129293623740193695226888321756103655163873910058393674333314615989892318866118708813477351249140697780628174107077657927940428056362217937903988046820600645696553607717851396048031593458351218413284927453393241311345862912624938268044966526428000884387085136545744794541114345676625453678076263283776155649312106998379925100008102025178739766783517122433193143641104253070797232777761168940981207258614315644366337452777470158405558477842088557919622345122377718319998919212663517551490786813220843019571036289311801423032764771557949675671310081713630781961866841417990220801491173542090787388996365712450554017605170463037353780868019105050847694830918641110630283957492296710606398693157040022572095127539358678033194282289079229137208760382304993918999450643244493414449102765792567364553087001780564098193207804606650659630233858926693128227627772538737801652463430975839478991904843771422015081627332140938945164658960083281253888841824121106257624097069203600832791118953206079157143557489724318704773420631362847797731661176396893620021031593157112860180404621259283925612652571296056323138899725337121211960595056905507660491915016908066393370849543792776643521505895883484613452041026119734694906989388516058635294155978717880031478070874701193608096538518360065617996518953687762874273614114243390234013556004083175613602084869097563160413681803801206904290569439941551967540706936826309467980991652306127582169554758690828253048242170789954427659724895646587900361976686279734728937193531222411549510890614081440331839574555736842182391272711401542002069844388296267530816702649872909684417755267191885211403258270320153278890309218561911709049978672316693071109475677319322327198486514567529021478076138895461867294196253406836307193623521201295223982117166351257345293598086771340165553468226696349675610185888694695910595690386116386621222582126774085656178082819218931887473201045686682957238796384596643012526722790101349588487481755603919980807119398050094099020616624479050634422486466086369004167465774693423476326951385296644858311462722705393544590337025974519321158887732904116645523883207366311479354930079336119634636912983796957661070056563144107558987604213682777189572939168635543617449374547027484256610877270771787565117278556667552949597027557211922868801205469916830973076445870965421527526024190256446990313553681950210054478403778315188006072644920950252780184427848704963795221669982933309904872133576828773447788033870927234176602878400675417179702346089021349613382402334051171472682315439360642882112011564488249763573023197506775632265742527754569968443380561515346975686435794527348176692536879822355081879591263177284300697193852087576639489726151132272722856999851711079701466357251353002744145305901950223829896601098115874013123262128232707659947446680121540277155178231185735627403763924437678498329362878899000965646142557909033818105523552314080791948124188287291476563699420185158632865161797675911996144430692497762772478293633911836421515918928124567323474319059237781513062054930094634514194825555907004058828057455255272532616441506236452864589994986076109110414905202947329431319858353909952797003175654195622932662699564492607428077925863417428571796514115062895985523596512438369409577543900456404136583660594700049605971563484548425049034538905123517441787417412262717594573597024636998046048863965909263631093152035994004645871064574809844543359309667120477611887461055941181670659473422640488229251754664765208642169427320983338952318647540544508777943827352861479318839126260052972235478847891557754706018545341303662837731799312577399748118801243622563592709252041908026149930441443495154637777597096193874215960665884741399227031949503348411742583793303118144503620751214034256374676397886303778168806387896697921630857953354685049242560263195591587581192039303373136524938007929624654521982410060265343696970990612366654232168400298524900102205469015509659591456966768229349112670018415099101359931820475726762281171907248468161276598218716137256331051157268284399196739504979797503894339893544245876566104141325944074818036643786938242776167640575221493927633362454799049879983457504694954886415631098008249857020248711642856657260257117901956556001663641323811991655527316301829357760311814312763593137770948692415946401616878668292668381852899428377032133913332281975497016977655614966082392320904475062054928618140936516361355820998369661376968039885807981448724095712398928712684831300903120357635804315458263757014126857675912052589338642668447211391928951475085220808127589833430406247979492835597526143823580638622175300649787632251409520809321160147232497534152936744072681351722460546566740564397064687254904593675994658763393091856187024357130767821354230541713241186766328695003526348890376545926867355684949227983885652067709836766223928700976675368166604581736976874817853672353028171066700407824862474643602971504685608187962497526410670228252444344149982545539251311521690683277038341521550472381437605949011437880402435066950328175804189442303496361841349000749863622633679062996679236751179836028538262723941711476802380743070567384962680169076910989383357518294472098734312428064102221204592782308611123927342538292908032079467549952388814146642502660374109635498095702200084337431120968548179517020134567355041447059530127616618935566472649439967867738516864388719645065519260034202942409180658927729059763405106051974931370094471395710477802715936212340606544963436115509441501002672162067117602189212319917174109315454707553277955976727458922760789449068323809503764839905544073519498659936124475379952624975601531998208662524352746286154468628166784678340607092531924379710783404792213981391883031073436097519099244227619465426031524942593062045791174416827158729924325833918864439352717070791416584337526628746072577617152635625467641591654252911924022904823335043561861388000505484757764560228535094427600313659151163785469502982505166675071811949432194882896617801676106516595769699998639142308304067007328718998142134719890055657433550601779010216292975998944396531320825833615450857944964905537358164267682719672738230898015806637355051487678443208318461147640165733703444894162126394817106446995327979706399718632446680369124113203623154751680913817357646589845748938842310478819756089979055302758336125557070472475600714800455376286738100990233978654126195621876220129247740920067446212905329440134324771652143768831626254973096489704250224829725971197468362075603574085295545695988109225206421193234175076443419914961342287860021221379873818559226474839048534143702326663527321993135836693358700286432535843042263559070760989303168025484325369725158574585233173919306360688941201994595098611327081910446471117356682427041863869610044930561921815689213617842993128112095849559241169206729361608655344089167909902853778715277377275092264330819574295693264293871409262885738783987679624851288209087823343029599571561931937608797143964354558451808640377721281855612686580403266276243994779308939667808733107646317908236861377306070067140174979915013696953123989913598959386844981031264361468901968015702300408754382928491958074484379907070887915522950455628469123008895797871763438869531279301283355145716053786250215167469823116074156204334323373197448013644819073749461603280286054957634687072661569025759082052234197565229531412895192859678901100022528692045027586305687489059371918185571482996636374662070676238967339579451466529931206199294975219066903573668731856225424936802156766044499795835591214931394141229368155153021364746311407713171590811187885491754468977457297685752680877847065086922147583609347264086818925323449643658695705520080935805468627707074160255265418926354385375201930153278188859992260892207636904614953073639660675368729837459299750840233591071452664495742431515827714645156490522690240759451331916517592081757380329900916767144298856077923055020449179704153349599531397425936751960917640788993201108690305128517933390245390648396492776096577555075241813522103669348987942577604836172144642495812529286188694663973959400740636892690694645306548003492636347134851566545339880476218418383012242709560120625581988831645941297217788670401617997634577217512917859616298833270718657796543942053006653076281956062082617865991857423883548253810605015870314526098587384824478343501192384105571615135690842441481172495846932665895162086782441413265327819037065017465726327329870495792972939270943541205910135496316537583737845665192545359999517096486720582019179328474596761669681100278519939784324991596738218839262600947252861129161131271940582287836566979466859112230379834235536599019355493754810343482901498863952125112357534623008671573304798523550534771240890254008717181426962921056524774733618237034160975694638845634956777391038680630925159211098075474036676283218974775913543806668085465123265338787107690934496502519823434166341038241033282280450953609335512265502473189790820071181440023831233006374389347359390647766670628708043075397726263329545612156478367288162450363722512903406034680633168984707953928803855847361838636898242228819461707797241806696904543802740146460360857789880105282264167581310543756088860634724262729353362223881643347421897737227165124354554088854198445875512449607564283111049947484006742471585034418628664725263613905295308457614522839103711176773574493643015641295623125269513108006426794839000159946471456450335493170248671861454749937197903491879174471844833195329199059354513070404225867479541921177259645866236091739598449591291609275742038988929925822781470684597450734320266469080552157441141363238346645216963873450691885849926522217431989726519084523191988201842293558092324610994336221131388680216401415768398808783365557291628937260358308798449003999648865587612074373063421272752479085654504538972426613634797773392776389162821015379639101695804086364480883848907973440873385050701181823211950122725059031501846819518900486813423871281589424381473551925342363953267684925332022361751173789969607398071446734308572742487155242756596776067017654376517478669519351314711939810622454580479282002343106073725835858536575266601913583177693901100536999863592042171682792746314123643844931158648146575950397205952839366567132353234674243593914204327787205555134168762940507584497932931661689483759406875696992719503090595092366625203063880101395110903483900932749195420053780707908767447545052382894608459613515690971684425819335960096412786030406831320383695825431411816261103517915176034061989301553039712781306099221825883052810461590362543453713001008956311683545852512914897238191939581537692184098754234021911054125530019085183257787243476697279413840653410314687213311246189275484800458506068743196111043806457798792273400770463305452984533615152937001075949772866458356882432486801963359357942155624674961189561062802192720075260697457948662318373899303308842403720442202389304601164344189917031951538722076391877370565962424780188414329477393922466273404709951726604195082731370397760609772687852113225223012387011786351748305698668488448312351226566138327269997783275432126102063562786690311166658963325274603102872961646036229706344019519818703724708883928476805053540984767455728608347786881627082022444610679533515414868485030023552355304556887268406660646372306581164832650118171981437379865090384288058644973965984554212711385757529417930740273879632158595793724209296006526302611423842857622254579818398853884299914239378946617390321506302848946226042691892542296869034435114191952119736397134173126301184668265579105635117762769578866432058467267694066748569974901261948051362292532194611660895902686080825287961240226639677561276637232270970209698510937880181399032949558292572376744442810817487125975053200934770497113784397726863089719109223483881622045032925762251734213404541128502606931893705042027065305337687823744442647087557115717235759842240632691230547286959581092161158418871198971264916042840438403260877467323766654671591748690821801551181420716113422087587466745677979979070887240740913985556467034336181813213172091623019293537575781080771966406524606627292735913426591330514688016941408278724522240629139113549412001774270149951058368107641261901173096218298742212574437365186792020157993280880326634815075299840126372128625679156225961746208956044490844596901201867101411771629184872635386802568124926293995600596187207092253512978993909519470252930610086297963630328747647955127863559789533979286980045224510936146885047006805441737288595173132016578215262179015590958918599006085006159498355370559454406273242287304635539581452871799132330289071985781217419280681578554552205545320862373440817526844881698102777013893220715831801195596957500845411334120125432354386923534172180404115863351350481274271797118448029272580507772613142704987076620249136776313398694010934815836771596326865517938999305191330951201049445223727006832814052253469684836627088971949524969913828083547753529896511137819069061904843149578722753998479957067599075505789197083246192932810675102559617881290068624135506590196963351285869734003571332697935360311093011243345671143829248433117422857638905303519753247296857980886316195261780622772748454268127075036460259175274261996123207640440100119261852845614928544828177811503499579793541304375477283432369690453320823585450217196951590584784888129148169929777925200371630335616196444609610298395622807706815254269833134881633979719216129374320283838789846135081460146331158341503525814541081661522345095135069618377200053057581028067357063828369236068303267666086299027214930930757472276971314224048000025540761590817997102964905232701897616191740210299834284176329064024552397978642350381263433816477237552061533876906748561022627695663173608626481937459598792939023606983201004873029122364156610694932985204093962296523893010310118442671544533928090122811403759122756174281588163150268629377366446852712638806725435899043269945035735473456172771301982409068790697396629539155508321729881103148656518672176392165715823899150103708341135783816531677005924294873032059586254415402986456780407176473097931360727377892713452801195991232464182189048566746606140319553007978538263055394807806796397414779115485742391393122890015611674362571920936462540196056959977625973273539305140576010662346231342149468926241021464724327929818620139843768075431007023475056536902380705448601709011121086824446829135975312003879214526523162909468805242973567766579159141169556704987866767613401286050325081019940821798984798568125151248238314066206825200236599027608147523887952687719859100136895419668121440923930006528292189283527443237978570923176538832641118703692955923689661481619060991783043917487482966538244305625594602159208650795320845512526185281755333839409926161950195165151656617198123508133492196491420597952929759841853124421025967545016301419793081279592839471073631766438710737563345791754585540624161573085517090864385918738744710758235339285710718012450090535587314705681089011389693207246303718897548495155637696756850844837919681279166710037422236923202916381888586847298231960132300426565612532892487061695534243091180444143865158760571197086870916934428674997862894378013439822666825473989581697315329349756076776265442062017362917634169651573356756580862584671198773051492249560331451708671840774339064585184231168044836285099228964889797462202859223151362987212669449740894309011822399143816693503218289895742029519744642608185775999575650678248499243554674921940028561037307273975038370057977451433565822120658500418203090500805748830462973791917904829082900909986679092670432991279255754338686006352946803406430512125402444798740693093437026456600650616860679324795220629170080009905990425479716273000907539764782510485522974553801364538805904708917657932898409955845239162997728497470828722513400885490045440608961139360437680774119820715044156314969775365620641900516777629056809332470957725288769217337639229372260012977009472030494351827556982545709211553452125232755776941630546614000530616968156793999898643869440221782536637587059755266254745441903435548519212315626480512374720107831992914783558840501269548066617607077909211602166316277529000293634023908875531342446621700721000225710149329475366921996470331698477567465596368225195620151477461218870068849752802359243116448248534814483749313290732361715728206502220689412931172705516487823511853059404350687936830072701558477866329887383334281393288873676481068876041465485563206960326476416132048427243658921361741263193171848668396541506454411298882056674419454974502837816237630049402108045452904548342437630448049550650017765697817129802639823390355250434635718059177785334885192973994893022330414216143175742585252981857598317293096358525002099038764797161310601261148182019000194229260756972205425795709076660775337913601699194259643951421719831721187787893574051938622533954547431287149430197054836032057824910057944114327840473702094449794158421423372403278114295678044180792838179014198011658444166460300979026436897016866259643445711030352678582154846010397266010803975596568859619776093088178747662212387793512574654363443519617771118973486068652861817844526182159858317360308320625764765675429784959566877323911538364881287149356473513739988475196028714474044754705396239833663491343898069409209465353693684416983846199681265117967297148813576697763708620753986913216145356278559794760068562183750047856829208289833786398385764750924287333354106548614880178661206339246987088987450423710139597865844429173504523920396503256417116482202227688010490775142315441572113337648683818787319726773382813535333018691913056102171721546678191859910174551732621703773694545682007668451195807825308508755629510121790535788436572469745454102239591059086659989033936845209501275533739709395061115336196920896433812635597655201748975577975384727173868526064774650322014486560621785243720052517793795238841316704352638954785544216717855168040610695684396792004791393059368049479799138106824060067829638804191940640337046198242500522627508063026708635086694605660531038832429654801130387254668036667187731664632811308938598899767276337559591308753875018931928795246857521590608079765684493833861494153685447513578901266105793595460425123766885270238502391776257734918103045782492722652350475561907679958211117959807486092393992098813859507277246870979305971358188580149186436117182050798534219625662710720004849765618470207689892129138816218692527611622402262489688570687252922251455766598116220281069349097461198639780433733246665761140520578282190462455889534383758832849799525986764110914628332752524088408083505760292936839079427481961935235744632764663008747602650149935628854049810148761269599644690872663696439298874911453677406320962850117573916810427273708125677891553517358914645886991936067308764677184967151791283341092076959619914161550840054150312093458742277911224114574489454217586695926491010311506623315420630036710563394239267285349221713744536026873673285448160344635259872726528776652729999766875613170470087749156823061375156700018605708835592884489239451172970428881497919932725651849103725647765651330936695773905669985167211348647380266323498700300865015448362674696379721953384077545841063558815290403787233427427706268177092507029177899750645760273011496171555571425182787854061451725643412992186359805032485984336257847445948713925196979858251545267209778232902898399765705836039753715748166968296876459275492650839480191409036883233369193142612724747641306977832052005503027889861798794699217327250529905138532385813932107291330920163654260251125467773358186592126637414300451941805546533025799115601102056631436322905666239490249902659045364800960743169873889300932521953155727227665271028637527519689462600307377436582063655386013732160018026208285150994746002677284882784107473460250303380635201041453991733323597410379708417700438814137640668059269170042203246023782130986234813271502856684531714184337137075367054640346363698067238433385143944760954269148316770219894276206561062792240556164453844737660255829232799899200899167072918992675371470547735250029361178831817716242333749146773445024712578744111880646162496981574518286662928928822192595235318679097421545422807023802967050904489862021209034589573794686984744945198857407454157402364365236687707369081663828670963667239376810021263521764748278989934361725958598212276994082808758706674046383712124543381031045766732452427344975094775764423448722730252663223896262563794933981733194686557393380926634417074043990956240514427158286259023477324522807202093065305176844841564397662909941572631593346820994742810784465660164689872575138004685578132840479177410998044824321347066180048673574128994309632559194277235805246480034909300938203223098744437779129983199754225362585785956709062627335625426828729762775281352054483153826978458378746901457980002291940117318220466588763279596219210987309877008291875159896274071927445854246006546078997936781211312613279070188114456875276953844403814090114461283307115316290641762485923979274554880076015437755497470446148930512936045929769726071710729631710700490692133084075096413138765011015432684473547070823057889224292916914549869321593992246466929960419896363057449978628904710854410950573776752571357541737492697557196767258727982804604384280546031640495527413322954106404425790438669282738582987412068888106401204622780414857873542873548715298196242589871702077050788375929503369830992595106804914847825951546545264173758479091559582418915186882463429957963785757776861952250363920581861764077342250904287874318481557817354590159942392233381385523153908019166215537804357920695885082846973986293033250981209981892035275760304882043090654759657574040430470177811561868220280689710610551872541600338848950925475193806633723158929413406574948979024632219691912545963647596700152633141412672424481204769970806867896945138818832432375108303697227072206563244677859295089080009419513768342945003304669184193352178121637997069992210934523159992921553842062845076000402096854257751942750577825470193705878986437081617270878556963412908529845140365408848231444369053072035992574825802882165156300763050592374124389044733091128943552472199052149544641453713605590242114463001432331093358451480292039068761912888018237905416898820847888082073100343993696024680076525011803175124516322790120298300881430932644299110357668410236041928193043072380306006730525976995440365087467722478713308930174375535813616687261400625753309069693692669547793059886629916373279076116132154222251877423593349277813816840400439344148931703050491699800874408056162193959936611767906013772081706388076928287707437060843255739767604243630572799266558324821098617370802923974390376367913153405267530082360343249139005908109209508471412343465895137709582394827234166937442188236341431826750220451363451404463685114871770715494000308474579652612670688824667473194682163143105137013753171937800392052999250496601097054534001682704571787111460588768383518341135732694975553811537767491050628363919678459606065289111010240648393310300978126543200564124771207541364330833170082875551036097057868968039722499412054112064114898038392563507719575808460783602987058354362989114981282838489718753929954910426214397789332573500041495970156013410673001514713645084066229394549250885280517628561605902875371059647643581518147114282264107710661695833485366651810889334375341662133127092224512552253800355408911408018778025398977933431919816451669239089688512414240557532188320081296779302571823026247060329335232316409255957714428612553196905709967204762765676824691895109863270822572665280944865945127253031365519656589062260038009771847575423367744424336474397930273331180406409623591477973970494611858990603972938160040884205734909531127229935318064384153667491429061234183445536968144474242201032208430804736427621040670740140916125681302652826708545758103034508092010825393194178666177374421406526063358600296342694437040780531044436533797604793514515821374669949143969257419203977478568282100266779648856695639145932985400541570834825150661087747905564022623288398476598097473854059783065237395146197129052285044491939016108633518198456297965167769900837185871753896548571975734853769112875617131280844885785767690213312971571685236140165944129635653083429023311038579852758715238507758333179238332842974051247422603532298934796367655779536703872452003858465994336653707167146643483733339975729833115563070499199706259230731313277148435758646556651742396279134934244625926099211025133764888873077837715195510302160209911923321272615722968379369998919155103190731868008855879164663502733339765081755332806301469835127712086303524298456407460030119753881539020751132089639524219539971313872790724578172733552565345581513646274938051193758779399890137830112149781631530988384206740004715050122842847875815383071215436868819110016031848222192989229674544821806882931497343279141230193907131100144735037132196510284751047016994840941568824240908203180039602621978433409189464535375884103040873064596759298374282830860325964497675416161680822873835588313147425781323866253980454682029215575264912658466056795609981592708543919449061648034837595577060982297567595949774617352417051866237426696258878429317598600260567821498939864755559144221953083196974640693294970587089224106465039262270636949122084127067230104515026268686230685614473135727228531372181600770962158266512084496346109460182958120143310496168796302274696142333920133847519166456434349519384582801241113337042080115653958747001785348282290102177118346150395071587517799363381807032845795868779885286936903154215444399755650754511320917852950293775222285199363936945184500412899432457756202075732046458796710156835455949181334438029336305124876735114261826990978964254416830526169418374825752289356705765459743998158098958268878490665039596038928928259752947759085886173602819586736487983798517833448640908890092091505462210253462244756595556002389968337322993468389937778040348375077627145729043907728043479935867281915729488876712085295924595471485801748361603836142622463792520145337222951988015523989016325559378762309897362132509022764128664435392900124782033022279173610212199568168095576905634682411683909658342626646526554832997204644901433847596062321759248566376701892425448165286386728396213483310102701455479553039033151531722294818139535280518724284314129809376975351617140732870366354839516258194748546807764020783448040295613253013050641593355788911793085935056051737932223586489558670720423596251071257868244962197473592145254448723994458510549976488332945525352365208503222015096941957297797084035210496472575667617608914536410240056510555317342947218483561237886552476139780679759046962498306066833971337448998560873898159163531995945086094716181960063184710679417393062966000949552947127796567700567496729752573561161351478649094152243059224531138014514326199024579190376535388875221460904934618126377900249970137503075706211415803872261040306406284053556169619537665286000551377465555036887789161704703365829608407670611738104962070318326121755562141683319025759304006445141836513332341260077516015740006333975712353645901313160636945284425704599765213712030179530275041606034039667952013958962901015995783538795308364740796491982404471465956062248878326552694223050378206952321437499255129161711905885871196519208495683410772145355358047753975747707013040801950819432047314919641447314308218287376975264570405828881102458569746067063444744812083575208863629787976630542521535341911400765160977065087722234023448591454705656996691583652764698114583096795316686216208617182663299857640808608075593687672548534584576097562312207368286246052976202429975884325298094736200478023932796742188379114238033863539570813960348204859917831774352751609953937723839238775930687611472371125493885567603214546577242626777501449487569302905884246674961041353586842621031213226290776136596216885425974071619692220979004810261519008915696048010163569926915457598720656511836737316488066170717469711344803328244427713950385860193403458084075273683282701890425544174971334945014497294865638986829603893104905280799369854248042763901838140247401300427774174997752600552861779001483652753018545817307358622329325915464999596047971538633565238912995788968571970482093948522675831523425733114394022519243204776257741845680571578277321698271352625997678090677923952998597724671176706837463540194319088102154429643300353255266007749451659711634737673531928867476305777416891123130405628205697920751601776235516882956254143270679094320715032606879373973782118422642578393683012089210208433554910000912855717562028554859150649402977380763206801889971175586847549803417256850086558580909787067120797588319981105912301705240685526955949377326048950385151760096365051988417610599996737140091869166187366511634686038828606072664695955913859204560452328750135507740184356782893195882048916253686837396464115792919593015606475137402527587478435214322137815159204202579292665850746732387009342504076277088052227175272368626566927200687697138028464812963226697318075706345773734005536604282205971462793674958509960457570216969695386894575653458364477817031883461766693648044401515455788786574915720167414835482322573006138016015822718053884136010860017712481862125955133849426279913748061235078026396618268884457442183219531046612458315311864850465375253233319159091554350930743739259563668617538407115666934787090785244793467541791230351448515442277460774956503352561052882438001786764489308252592148099370690068416479887045650834145827436097189058531308528937152047375023434842621102387771414260126857757022814617965464644524423422902233102870620632492973511083352826228330727310987052832744548493249286158433510091902537482931470462811209230328002645626507914978653960145081788635049060426610171181135549588553337744052907639017946737597547472312655719171345042253263194332010907732699119327026069288182089487578218550965729281688239192339548203920395825437507727563981920968375285982109461741048298688249455681567343794629880863422613301956592630688693035986113446141464508050860475141240054341466545239771972891505602698163767119287896112554135980692357710218089732952507851396696110622407614323119070880136540116114617653520412968166370751561567684123274177038308846851683107530126608955436214496412981370331243887414837217714972274754672578215378806541991659430277530154598597125288721457853893501759852188475311796006155205942141518254642094214837810671023768483205899758051968067331177517179162593349126206657796531146496519940845494686175160895664290898352959308669693220714449440101389024715032606316993386157292646908825715342754394743544179023773605608681599610567403094057250414045217712618651565549984674924730086999359749048979027248527737960066019632333202944471063586667337005588941697481956736711873944272662022651564829992249365864576210266025587535363825107759999771748922388993327073519774486842878840110827225023313164570401997773191481765061565931094409357370905512988494572238969417206782564474752986247156752678585941456687895158668367230783383069927742444267915961583061896003373652202494953306824599602263545904911820543083209827092842947579209258970033501668090592579664541610729645521541685613290985789822003971887654836511234070571295076925963386810584945068450479581620873858304122553420030240359161889843029623777861578537448517002442294468177898666327654062997295294050751926594266119804056024024679954906714125132654804040938045426599745000380366025324438997108941238266441477152813748032279130471560418258744916104015193825972488804820621271071692040589023538757726612234415731642549004263464595257212661441871274744593083880850103955291393376094728648117107658046822885912408048278748130011963859463215821479971153639191906606660440621894413947526479455084289454164061273343071275308022602761754170960639007579584266666443731966813555384623083054282619909682229787404152802213409462717540879018524359085497256513411791249641352406318025664638245124792574110956436802448153634711304555188420417911817116972131986646099487327395494147245928302171128576803009790413591975930466440286271383024817541781022378560449911036850173733555931867268021876564088157680785792733894635874574365576962444039600827859369583001035435647855690657602871404714223444317745104759604510287055910174030095513464493096322464608097351729286774787453829521403972481142935479709852525120155627480172624368557695078123118953362887302554437209878819119224894811628922364555397271192939510354554896629715999453210508154626140807467671690649001044984677517746942242930874813099196308823563137110491215260551126992482114237712088138054961910795296188722473977433749249058655516088569770677755902418315168614603053460660054195821330392280869573561481392165528541088626404341824920865703903615909966933994250975031485863101106794534411079075458221195278537120250803160366315530376034260946376552317592689426675701950969433479294969497769165839732279190702743463877372835259141017570591928142118294710756492223778102998107427150198058271004457405758842224320984442194703206971512997843955647888781057793770234874080587352313613304436273833438134502288506253283016366758536475590681785893968507825298592812867178958990154597051826777610612640259047187396910030849901666530017953839645882330194882633359502572075598332006661930028218878043294938948279606561444488396848770889875260059027495862998913145392237316091797566741931374039478813077717187633174428272784817080825123292490714083936261164566602627705553667091575524432355313061147134752796078368058964348994005700328310033418506551597122925291997266456033081780780642583608058611081795338081320949159711375190436154294807376652736825545189990169967223441993893051077899057657649816081789869175480552926920067973318449140401436216380406616875701596750063185864977127596718054776799279330184943363718234200891567704949283526411152046601037020515932799875123713021895061525953971765214205182629983831864361929127230354247028328746074419695452698730278583854761407509600585689469925924445877409366348298683629582101929692956921285155969264330305677225751964248364459779759543737168899431864658988405633619571780388849582702927043272425524369332036778462319842335356302153831900868526831904284526033537811725604501656774687811030394732575031014064809455738664989399920366067683266288390806365992740752505050973725710904267553734689642437588252596957574760126038704847381060440620551905741476327687375420612252813446881025045483155714899750828085970923272352409818269336916314613941393524292158423573279757749532810549086847100535451728401737702496169211491859019437732069367979367395426834516922103729307889967655865800796463680669910363728026759865609079017295397522312261192672870603291807237753188416568044170780248638138731016057358222968180271773482860848720494971110342599250231652088782324651264093250389255425079946143423946053294184667963847680225906148713337063805488933091504012019260928978941911368592395225263793603823553282527408005711832346291298950715999144420558200641445575162896923384817113566518539849736754791933212409001689295978305432879037263278536511677548394818873072324792302438727898670680483895178544469041841466133709214812929997499497995441883429800571788414769628584607723152728195096129258602675247623182496589465708866232110774316560460441091896182200101875223451023069426390161969082336935490075437660485527589721018754558818499727816485212458782992236429526241074833025576496470030777081874448734808920102786834262787552180413275234391204266258879189229270785852609722404012277607274093941873311784773545203370992986795764368660082879539400619864830197451857031907849860193038359682564832832236439486686718146875557095226680583296674657335879555288645042127808456668949899505835187534110519137147031329730081378787916659119346591863886083079156515822998400941766244272261259056400214095269886414153340546645551843119181753008877766308279517690730325043140525979463807332374768912229995310761921063464477817174214994091214013172266287019256416098166984818985542286201152145397127218361500385669418065642679660245424453194791140899810342304313041363905193802835844967672604896757490068432603119489506522570439228835394763154078483883368781833289181430679650725455425083219897264714389108363559199545578097272971802774878026531796036941609042794003672382401815405494730783543409072899398534764723107701131761385959755124988952502740254434710304809316609008565439678062582880308175842119366223162246133731416765282838308398278727558219817030489801974168455697063417811995828862283755318460621448115853215513168730809419261826859062106917770667190226080699368310728393248282987472714214894817361463525939893589590992320938519677492636921897395930725961435007357412751779569305359296511086981204699888851315515471826176645341927430703656504473479953476678676085550331618473380856272496731443302349160157166278862429655794584295925864575120981908761964581828064450879236256436635958188530680324677356504551762259205003843655509902970194521470971860286145446095942393144715580201700034106396224708811126041844728679096924385182171507408119585215130916179594763253945437176946697761873550307243625607988636360932907678348457294876705173141103309953023760312974867679204730537043693127180342201305500390916793649315888363352566950392284054193624835921390122742043240668549732338568625243455762674822699738048913054194784459832081422195166103750366839042197356126325780104449467925034407787289007855192178404371676776161315449918116144575402359132966746092264876948648692978673912043924131533615672215749600175006703098682975928703291113344820105103507799781167597452569096595922218216375329803889024816256007136791079882183779642449336178621001527056919623848358733863784219112088264082520028924466027443832191737161076145100925486771510576465399066099357172952827399382498406967984092536188289921489206259256392160797068571865861542579284263995156801557415850777634499009584591132269035380564310522558266586116373369784345961400960213875840927568099216631549716343902845467366497978920305045729000268555550673818166535719145019339986758417779333591824201949059589189877389630631365442702253937304587966707692199140604593256618089816782128104403508326004252691662621100336261090935400805767853235759744204810091966369284713605700056659189093389588721366669032399736168515152568277408237840180805601995574829947978277381696618594198605804502123679883210178704081693951527032122742548321327403003559695021987279626999731311218208525599142067574944749816941165354795447054727704483731722226634015334832285729533596028044308284856842998683281037322553118050700116590658862492822394051934688044346759730230348584553736928717790640041159213987137435673757796444992671619319630948927619264459059998258738198174781914286956950042000562408224522012103817020465951375193551777843119659692428209930268498383459535267499130647346022620275125818194463052714970163970452683789459654176864901004938551510780484328546635658347732465476323486411540082336406007847137498250699677554414360255857393438474339255984689579055263529290350078119248356697146699538999319089242668851075988853628031432356735589217635359265446891815007504686475156165221807269801462641810862847882427004390789608824061333224673719449387073932860765678942242966298443579332800760837266693298240672340494338130137320609922628214653962633680452694514731753681913968625817035947373749034565338045536488101274994831544987726823339264813107304766410125269225901705857380452297920040249971391859291702137914567698231407165000045872728658581489451753401689581331515060363950560698361211950643892291902514242730744506391489804282451425698842882824488135628465044630069661278396744247506044266794756674242700862361008821975332546599248524669919923151805130790568572956891822052145290317259328499840041121584442043131615854726640219224953689608349001223399014015068171501274177042869270697338257584780498208488441034996230510762837319071065897559287145299368459446472914605763421632820030570928997483156503614496280096892661786979196694328583961135539296056871706593225009761218953785018546799291341130976359184760193866322599032834519680220253994014525452047066384496456098946926022415628362264520808399707778795335713089149097078744980497250532414841753543651344088990235924625616873736676965203913381781359170078609578605610421079385052042578290816573996609111035586206707235272604561160686446094493140741099168084328271187702406086791571475502112456708099064602306597368951013490342558492090688523119591307423208691430522536325264082094463583650061119941618209850856183647062531141360675141506610408632005717958796987178826659066242633163575517263318152314523617213839652643500519681095588471762191524439165365231183801293163512930666777634450164173560816530135668338282644513274927448320800242965602994541636356501222444340242636582480237219100293150965889898828589542828920772385207815719533457513414130630027911133928576779199630964784070468871641129639546034028826227400187102938583882625521618961715758146025710163261796763665011488540898116534731342944966493082802455075307150759623174839969582918471675050405843590183813517770051488039974197753726846570585952067320067537088496477588802979454998374266474284640230151523752738274974252991666660499295312181724205268109804939411881770276854271334619289719426365679638591277402367379858963762937691974370231619967534570112036527574282645244625152314710336103561607141303825927224530995026794066811907512301167891666187705601724389112434957933095190184891092844446374054384504735222387941060802639742936273819410898092062844128519482232321678689792190233615242410270759880315386124812994906867610532370078134781926396297351477030928980400764217906314122319024423733097228214576598777480496672909692415069616918978632490099710854903355878791041971036498357497363153620627257152642088113870854578503512588882279437173412476148658995896392633846039910068039422629629381834030794794679869815016528753456293229221515770285909149477614812214447511939566772721958130061604904884699297406081058928250559289442725961490782068306750419067271759349523907234720458882956098426730887103717584499863426413231312833138901205719917820815041645915329195039963775846245062486695801631436253335075967995936297351833519226729036712545803001941085190545702653665326367755086014627910165091966285143936025167474436507277621573645763886816358857212246707701760120140882314111507357196634881295432168956262182621518768830248958517809996124464748808610592340377753820909048752061095087677166576772070651256407883467539661586267601884880076233705271767055682613731821684549094200669960791198310164136710783874224413611381697670152058200248748918587421675085085623419748402336790323307189220253981604568350611485636195404383985941766069601563168267616671538860559352764942788782779333903383148046849886701228388227515665025582397711670920763019470955250466199667011778283756571478106837294392731860615681141104484607212984346310596668761747564308931937356024911408941606692240574273987295938203624696156276716092338728878846901582000419934452559544888308378777098002653069659100352661741816264700587599880327278528394517369367500676160147499176059592176635563478034189949982003066672756871184891611525280452657015941024870213127631989056023040358935925654697236047165539016990583461933759441838557685891328223798063684281227309040079211961732650945710709634684666376228184624968319259221432057182934034510661976456707522692235497626862999293594235368423514181634324936939455447762215070242313666391202483857708867251660684905715902866982481580987524364588165844647523971742406275407891373418616240486091538303353273169758091045032134802141284584032035543376474145510576336312856567884549979786983685014137262178497523458686140040221808748216376970352268136260685360753709441855215838215973854733210515167434909416267075564493200949428397084811146211697934909939204512663809694939168733765899820957269008403659125874772972144282260866471672540799729212298216252967245834771576034945833118611596757178817209500297674085310163803517998395844048401424610082401450369528741834219813313217081843368132874715277548798351704172771890323845344583759454893718120380653321531413680740518707618620576435072661402073773077277325289824418917909597290884430951135840453959755870295387613151249724578333655703676968207222224692882600439612964555933103253604299056382117437604208517917884369644408019374974290423405266073887335024076078043594926479147318655933484823078164084135471242201970082867080336035595534078106610480825653816203879065451044894317518618044630781042624877738077235946455333229682644621771279665368433809760515840060544895958221820222246833508554105728713686960965863947329498584030248442597878431320391212697107560033302145288569528888777879065362570380807089258822143016823354469542242999590304184716802684342318935038902854182713851778385807687331371798142433914100575036106498368312770209315573689585514585686266330513296337618981471919852774849666734075310299887047362123737104337142585015994340055928677186654213966808347919007164415030892285546662454815342078182160941321213878091557739377515434015668910325359856591785163309268612510689908915468911554782180091834356359203825157120696190596130304444104268513714381439394328870657685953219430776873305271668704820483720880355941574293161177053414871964326842063775108794160923627757527947799549065089114410065209108860808016481633875664807546102986347963772038523659427873896935099526972190511282550078225816088638200960418290111911041503519343088186439711348604160708497115098023092161609597092485249387977094452227528612292018726253516388156419005181965745697766656274420112418013342931155885162439222671348238481209592088415557882841384782300404072311619193853225031956818693181797225839254567795907249785407461733157412342739409870518718211629095669246895967035623048334427443855273409150023618147836122866984083207894910170210185097701575945930718837826597076661289447562492663425285441117846224987870636405627442690993408533888479690181900448114865235966749215863284944560723940310496402338606558732538394345417298399944128104009042916523909094347590155058487814745977034679963256682145091461538560140140543813482790636815407365845463776805736293100020658676995303692701329342389944214320921364841462768471699798564773303328501831563315043787563829857527601741607415236143342443346048462350538914507847249395903425387827084438060832951859055435982345171924818489741832802354622173244466726095451558020246325501938510055978057409101533582179775206027544106433330758206015959448363538656281553830354396719781595502028450143842412831804515072195817198580494134254152232648565055313381573433728045399179179405625520359200989436465532048462275916291062718607178479051454818786222157452451853535430849283896821737246987780669302008990529169106112218409799590086641402378481125969472613823543736607814606960122223036778941667877505186077922811782085265946346888813506116170246340587141096808251542038723858512874115350518209138429463522134476260090798549838863125177996328629969435195054322709839662627471678422277536859070050426645590113067614445982480959513136868222468482936130620383186545832525407876260084758325383644497930894947962920065539643081814850814129628405140713972771856892777697071429348309733411513726683491474224219319199715305606116402112183158277727233485841190628062965987396669957570943728426735438487578492986556616112671370480189660703664752781258929475453472288466725843808007029791900793898361130826872934234244873213735434619972033001159970706675361222723101863501362703134363280954457099038246197928608393511908943498856117930887487115141380476804818331745258197808698375285951739212540331481215647802437875475048941836994188206752749126879573200371487114542102865787455392318925133797001712364632460435003497150372775890068822955988451940756576476529886619857884532891795163616129642484087884210898497985863316921914171837760624679239131718512251836339706341277864146886374560375261112749813917567859768675960048460328300611967563048841500405403908319423790555424363942336431228592938408498499909602954746001441027341352152289770468560458916826311701480902587556431519656161899354334353368573827251081888755111776089297429040105416553229127694439408934158703652706275175354769599491224075751459549781234907914744385958382261637866145042824808912129274108964273400277079500601704563078733034143270179780217991326825879160290550434248307779400115620062635866506614594443386161588923837722840615303099131129348023033207616800811677663116195354096525080518151893490427155043911014896232321821023983630262387962841672574474778520444939284192451773371279370773196879227051752744162165162019116882987788899902853933377347892370564927943010480834535913042751766098839179031909124380178182523735720482818228690728770870104794551260047719155628493986710342955629405631098275673275438148353779838171108514382646803492096626588036714792172939092917694293723968546398832381037995740401349372546920119456923138874961424616430462543578255006082950273024748268825402037828911154785026438894041832512061452304884594885090491385409842015220997771862493352099015236004963823275569118349215077660627905957065014669118506255406777811041568044145826144229766065797355866192271203041270527914821263333536405245571824025120050592797418748001975932424214740993836327464701021032501624001193332898130658907512361559395652469258417521727777875148984148246777860270942665452547729706915760632802028640378643869255770200340223919001630454371022790358538401659667913569142433074723164513542265909621088100350680795016273202579443257666861108004867142599790260410554982114435903601878194661604462769347534458503233189113039582196619749947249157304673231873240895273546852209695984878737763731457204048175014995329666527728397248331391211352683207013148972898326315915587363349655732907130382905447135152622587229421733051139432317886046575451707824244008311164317121351529719048534261547546970005044938075433569818285519660312733760970024617561406623310485156021996955570429675214055990212096178634713960177330963458332644454005135776659321931979509430693664202745873556741336391542374667677814931616948686055017567089790392815917933197078363872892570115039997167992725769048585928475649144050876934076284057410906907440427049574956054368241625677306542681595044236752291590323725166553515403482975692129652663332895023435788156657273344827092645950348367229738590292673678563214912193665225374197338147361597548437642575111244549553146926276147090241039705948293020512145880597703226593483980541805886372543672751222042960958412619876843006577678499049952451345828463358627511909028124070721691801277167656777646024638616961311353404014913564105728293724203046452705454263958939404944860603925509506175536668852226818815063272314074320208791137032637327582884379939800368559356871920189125865557848510455943794677933459188826813281194526924368394016651799379943075828917978364659362203080286307404339753941909943254417499440441382873909555104309668337888154278466633833542391818927455901065738580439698843420370363142878123663376545033918724103081420242486314216406898963572988253722574669761584681799813623150544253526537742014910896186778070605350538709516884862188094205128954178649590411203462678414962129644564128567683028147805686854653985864959885997080494449583068244504291656579446402042194066127782132064547589618251613137438131289804717260108532912787249566581148019697299709352972394307976669381763745934137490941238242220943181305906517487637673941907975351711579871802742754622110613481140406071455692930067107981172120200082358890898167870106339576993809600505393033449208309067509436355825426861465093780590765647880799591356128963423191127100986638422731941211019862608010538394352852037120369645239841370620620121457070778355814899982180206556941118199336766731988016573123827171596966899673136053393075363664328288653668882451273643324179015295995834723206321048388499547416368562407259401406189012236700787878248518380623813212269110300750869653724980731952862043641303981278970946878716025354770329301558099169559317265309643901058185842745252568619070433014209953719990359120848439968605406432594915014477076375943246252366768217818336119598187913422268018725263278263850000472737359337290050361466973334066619338552433657506501852727514474539659879962510285276853465259095850385671883414754616084817304150180923723672019526847466890440652339568080012213644035400156141041315543187049349913449572384676451162395094032209937524961026527795432243599881027293258707284278892939656781990083339740011373878008847834295284734915944220069535079577397773616442607658354724785230266116188878129550356119242988590580182903264918010351590329393769252142232186364351040565934528001034191412728913869300721513710921521323351189510679642112357562127168590028342637014068069342502477320374701227018894513133817649626340199956979836056762771482682200392918886708865121116049970777678538678074818275027459809110425937260312877429486557765356240693806019532771440081499521335641614233537049798491507443924526759374700056542308221604618827497378212717094165740541384184501814010957464747634756736859494446020683557137232840552322853032896566255429437069441351891825575819908984409882977073934528661898558085167872236020810060159070310178356589344879537029793296122832849442475742817840328325499428796333350468669624916682789248570520283149023149252324861010082742070629681978543407042363723924710851769825126165300215698587856983300206271936136459589548791643048558018729975714714519170510456029704428544695442781717732229362323320152997033261834264175087419343246077858217477023193404131388464905139632684511872373159928117423359935065226019092249912460596194184652045478130995914972349130931467903015540267510998128031659991785655439141351465365021898101200174087343519416947091708135016519247382065918786482151944917426007175360645606205601463263829443088474255285171968777722963651702049728415954453208934299829933165249981700998501532134569460331555596165576867069687610749150080802762590332906537853680444326751658599754609323373913989231023456844323466069950282337685241985700616462135794582679996388487597281472868032625588731863023528315208340977013343393939296279396196021017325376478835035285858945819204637941890234655927153711617167789392425197700511118873574226229929069864300520522394524733771116488752641970393450859262043642610608642129636235487282841861431981037338465644935117921789563573693951197940316679673046015878680199973238460428182139268921867487966178605860256163917073950892738299391093919491700680738532201683271463584641076452717213927668198719436211659463776668813100579916058918550094329352065312215298042271992211065526632234506685568323138244788779614233657561030334645062014989091047640545482436691818477784227482550552475424143683074181292497755918701929305110182387191527147353787315289788121651211210732418389416585408176000844665935245679926932773880878864759728115316298552606467897684251790719883975686994907685237647924618041245447392319702879979588212461463740390544712858537592220247828367106572903061537549901611338481508357081056534227486294567473639460597384144558614867180565942927481280544090208075405359621946574352438808749623576995473422515261975756343646433975406288229769838220331272166926425342362119832681304024959103285631248423223377352619545329910899614531992101165264580256540455786983408149505009207911219706760309797033449920122581807240356574248056616180155449316799647290288402238420813562152752275605007884929087901444817234687019723858375262868928456205243984775458135236523262004462671696672396337646484549207260380838765380417704987763057665415469413632440609977305577069608458854890531952539514866895583582251372714569430719039958335638103241586598205581895453570350025772949721736301247387118340880735116488786740829217951951205448871224871464494614123124127864892487946993016558381931389444729503835772090430633476540739805389816916274916628390087405462919910224593600828985528130439563028978496994399155780041138966130603894469308690875659679689193992998338696476262384577637117546202229279011689327448488345701030887195022414558510208625468153651729885743073471646043403542707917118355741566831256852693984283692453189638064458275307992028000669482076493954658795423697032235652854677041231096252480159083870241522047026401192208485314304659102309398702512182652078643567017550537388766014012481043638659230424615188099063515636529488475925909611383662222859626516852804648510165800984398361249803263102414229687438582077482428257009722890319619837328549948475792238603766760589405367849753951863103744322490189188020594140673316281361565112680987006867896705347689371927869122510210591258263136705021478114240299661163296431902055124432887282380058129906998029821051674414172295460746949060259289624217287027080061284446365955131927720281733057292711056710240225819007291608220650654523908035680314858719350364023126718074340046617698436139005629854274168574087849551683728292915347042232846203489558914766960939673597813390513703458050950454014211882317605683920420975787946874442171197147144195904249041695516624253739585740002182932356008269277473864146894911765542674402877711949118516024585893703417890517183346035215304625366356014810841817489351079975183979091237195802984626532046893438516558658020489000373738625871147067657162494380681904214739025204701098321212294613196635653156433865120292561685914467728994372946239233959418247852233191829997568133189246784582592300668030551028837009364394057860809639178120163219317365312191490516996117082917137079483740808188556654981242669841738827581084457732279958046355470875976479014006009753564045464020380733250438147447718407046954916905067415917052295983445132589792900557359219935685695701678914555694114481003442067347022868980955992895054131362615517473164277564087257778357571268922769943456231215371547920589761854170219354380019428168734564371423156314817241122685103265118394383017773261368080926205554403236820765554644966412357450960805891382841386330838685635005249127611146608198417217585064537164244290034081789893132164307289085477458938449286664595489704207807532400228482605320196711508351514382350411475520757650982834706647764104146135941906983081828547608032722367663401435175655811092067188050024629326769476848494851043628154651976555354698092900956557973286728248206764593196230740902234106567528554778442526452730332000542753380360264691146781385296979820665093153551089408722554525568964910020344133718816675982394317835406252806135490198322775754297908028402692157562759605440518938992077339357016112317929670061027723286257423974800741880517701273505305251690058447637206830207861110558389280983471967900058752971471125372769979068809947666028503197855022072974126554683546888927627659158254662657871469619036063842113383899692897180348180754903834038374592156562459086332685827488254668925530183423508457185591446363348379088458256533284103769391694826165292373538343252439051364297057546002856641457218920518801294500990966535912378359540129208785667897238710552459684400736317508418156815420626481382618460085480294003018900688757469148953424114828613669955188973211322085003276229827807184855316061600263820484622778539629108494698377958963074924909715088453694231628988115372092592421269034933167763620185489219476011570874978807667494772367661431218952542598225213914114866762605171939246577978383084387048643801306166338198582998861351911172107182746926958969514809253789479655003290033256561913176617173552093539875404844969942626339710671927978053765765075620161233936874688063750495843869039719041330322549845044525267989471498837705426934954343801924382505644543364419689629505678028933503685518026830695694803590146278798542752794171302413224020483251568623271973639724435645802475336228114764486563588712326428657929079517274539535410258130995655569087336259334443620394290212222348459939656553551653128365218114866075492203589311499006660766996086485211012032250396947081607817183332600313815118077658550600534112747213500085994536572256667125102018537113627320582452250731041230756880349840616448800168905091714869877470821330610538233098966328452437153748068762986294412397535412114152144322272129219704941753777511522600350888073523204850927349326507030352473774983976767139694822139432174508493802412712016088469844310503478517327847616472479453555941861124541003825677614919705892362525317299431842643065986883254899098795284850840321123238627272319272422113107907780115441667019017704706727972538730441179975191784176051036146244583218551722720543432813449650982008141950502485530263866460681981519876951980489763846848945335754506474531723098648545086847729851933907014564910328657684049172654070427645180509174921874814627038027343543142852600030943892873999788331683678891608546624741852305145386861191001676507089970554379146231438684841177174518907979747869430363670245333090653727190462409727279951898239459928985163862162395744949067599226986885867569432974291227840862691960885393859074335874924424876877674809199306400934988257807975161641728095637737456088108099691592765849796424658846758143366770982516562896476845239167674310767776999525828663284965817487563441370711712449577043523538781170781278109655677883481280809820030534898214089742130378614447434671727789534642956084669928405104651008529622880121338268495147384161210937173180560284270218744755944270180722145253461863059392768950765550391636403973270290614739412031948832115713031621283135893999045408490335648882287189219282759828830271051419277463483444628153359762619557473055905246422730227638415254926463021138527231489092220656904472038991998073666748526494024552977491302218363825777308670973905223068091776774893266708812535615427569578655261848795184840628691115125292922696496112904112889849825129318256982163424529533729917463638958940511510904715512372935076331978479108769077895372678740303145064641733500233731430356094726101029219178382657412077829576300395834258416417736166729404236599095908289606775249497332685567691850388167507551971251901930961268088804386097601993918605206692482389868352085005249008985308743840456499916031828534460174930807962254369954201232353022207925707533074216585921646217228383784015884836562710988219404412266988400785029523646490260614274682899085720568906317168518563845131164030177715674307837821698899954008054796430333297790776692317864660005240816702406267797650325389802139342168709010495023743490609337657606445485711274611436765184061999450755546643118737001455512616912375539397531521516492918058496155653457150933621464444894840986516444034601607331239092776255184264094492751262722139279318702017777216578713976274097135053008743596090624133912478461145895314932120674939002391037975208008265173952903697157877302591742222986313407422397266698371882189368222755204624187198368465578475276638110507251089046371700766502851552105570390969302159461824668501805452147541986648801332934659513705610526606471650521737913790716290635727672482514839457164636068613110785537741366678395036358627040716380141861117065049688339001949888407991356943150924643481419363583487636099526824027680092498016512116854505194200813090244509141066066998999938005113883976391677372723180824535114529606896486539639998213955331473398803849953556303797514295795443894763630517325765096004307460074227470772231079654010516554888897083543354185885293318675905584285960613970004969820016319114489072005471196697921341669874212703331367721983874040374179860177970994831071381342346775027840797355958553319394126854856513748469806123007795036277695875219904978542022340178496894388328485746036296851006544130721064988598416608527347609850606986856600768754023242457989985263724905753382151326200768674120637377695727421902892988051533973735052549477582868676369913308751142562551405707564209626061228795944550736887529286227459470899642018947882876095807950248847896365237753481417567320214421793177321650090444229411289175733596960562985607736427551283876990345004391380025267415982384013896974863617900773266875318807519988205548564640183804438229088852849675644721417464320028377376975085894882266847887683999198938876633438252684394142009390433909331972033210495093384239847132568493216355408471800558486183084631408704127036001453897329506137378788250028094070412084976138357241407973483143857789169686415056941838006064354615562363596723317069620776969353946837209752225549545110363088430890177003428741526993553951949564791107812253937477210206380889652178081685269052012284206012203313787872111788807480416051414409834439086632956879015541303808808848931509861745116017360558504391384269228283326384666197151367587745378319426452901531355689031660226613977497222103608642662593280903767855003216562302431711636600906059784430544132913176997660915940387218871625555581030073683258718993770012839795007607659081441787608479760952746456461236224810640549299755717582237062927587240066279575089627924014660986992442665917339960503596329436192501946167358626320575054441765188907589057203456957719994219266883634402437674115600738512280765845159193545030371232010303452230634711107846225064373017490827262851054750247574076047505730085147488581787532134130115050652842692626092221622475199846513831198119403356531904994911053520131281392011805800149267789989553996391439131880011440294366940403372873267140362819019560816891124559100326594576732715705109053975181511767551139636106493627239694906562180731777004660531766700344726357619134409216881214886112406169652837043396367208812699082994709611493365893603264654396975919912507296989066907932390312142064630652300998569483472498321472450403285401284896019238343882748253277161024115256200844517077457698055900713645460244015594030137932393457953689609066942459318650246413693705779635076285201133230450745532438186727164892964692140084835671402252194045097188460228355945744556192702434927828410733140166816170509805731513524013962139854715903494404664352818862951460242511421768740129941560781720306377741439964843253094765179637248850193494956111796253426875565412352985488490465593680038969581094730559458553396961893166815314953027757548286629906241536193491509141312752583780244081416626053903724029602046426580549799291074688731543272413817046726571842194057024135332952145687737235024655644460571228511137838623987591981284896063742627741199548584586221210875985897260682514507048769736018459399525228713020994343231137361953159651878346490565958394059396334498020563615938202640028782003530786922251599468185815323893885570319415675870110384978197754171129664796438903819314759717417247909787635215032086513594738400310256702608610444318613364443576417282482540429954763968252481177797016018883833333095087168023045525612735235465741217801420618772470316553567114188540651637128855339052493678704038464461165581874563221903611717422653326398672483075273128301578066640298453008229437689892709567862341768060602714814131258158399511160353109914826843885664342504687231575010083157615908072826829316725749068904795948656629289966215145981001596154826726631877425973571017448709823481809993727298836745665275610295831084264430125332678921238909628189889331535573314254880107880612843563463349654316236409790945451653494531786916193165195581322326373349178056975219646048546166646208660660439819776453071121969025755130435126670349884994999114124549772473527583796430670554401911186458455186157055476983751504293387165654304507210085604171200450619227095222601270196743081232475652550444018227643152572330778413905735535885446290233940556385714217550945375451429736911060918331227165642651622982245615639865144228365980190808409415906733598093587211128262588166845240545182403098827596471488813650527435819556500032859737853800411424583789997470402752832293002187880203321729953339482793763270891634794817021351387467470695375814052506654987390853397131091578860731757854305234324059290212253013112430095341778682856109037480178123655713032421872049769529673003065826501036365166471293277788747059441641501037912489942657180484593684648296284493006405671303624168566418730507364157531410853726381050860187899138875751032098228423164999636035553069453755045845893209074119933047364902751515497347032724158603417923879821474785070832428572652769618383816830143317866570211359857288478291450764053466469314182670643934252557489308584977310534749101916343256002309060250649222630785262197931685840905489196046329952527583987812214856422223388659018282566171406370915731896658406838614301958615106678609650543460727212779400141497946535844737264385673379940963327536263041204148031243814070686060911837788259722808226044746422109317007477866709377802880727517703191635121295939988670022802665682440068701242069910753296830146434190674250892262426250527297804677436100564089200788573725050601195941037985200101260023658537436260373444303198221955589756688404314873645732387118959395627385104224252897131059451846852866309334345822612045754481409504285365832630323604152538571976316772422216218761025036344043767398296125193418376218010757542297556817140913712294051233928927132765766171916126906798353490861582446895894590267845738511909263796120282895816192831824666607464899762317374532465898400723036499288106817861035871864955621844045068955190535641303502977606888980650931785434865012533992228228158293642113046626317904914866363812775283977747410445999394674855851727555375497651758453769377383775664721133086463118095362687733717810709496028949749278916613216441032933069869633706017185657870057989566901736474799943087241557137785887294261887087313779312444183477448411692820192287754986948999818327985768009893163650706021628596984407393421257128071933792667846467732466690077404081833407062444058870328923771977482170647293389441822755883283993801152307252007799243323514014457642205026178756736311236686880170294351080921827245682733364016776286308565476359501615948692943577650486030062588326982226211201135259905480414755249033912533579723994525479795981685318031375513205169872336143200468936358343852528074439721676922730693399507150586399632804142629500159562782398639663074990227252284425961434683011352799127134969840288400497437389335182377329422655026478459990558407198853669365306592279267834604865593688356487800513088343450777708671353373908460956112600213741013930576246143657368233015257169759828109272167572463127324959079855492229725267227708557701360447533933675831079870066033737826634594047311381599444288363766324676914065794225713599788760734576166957601292053622443338585190252751287908285014334996756580986116424379204979849385344911540700902023383392658357237729212600372580842585885279635884879100478104471085489817320873180530683033014514132729115602671066848973140258646144067972937231438827087868105657519715330222953901066663721761406019696156323518109700752480613674649053675016863675849930951889211227998809536427437240183413150521915923881613091350464580997704065032648935125606584353558441090860215461344631601898212240936569827252137351869167227299650621687127073043325118690415041366065300078380913359056166536389047266495224780452388377096521570952140469414329671743218374204081084609081322898128226772575762589646936438328216186749694185916176278714130191792655337955909095943139938727058525125066458679707159080573230705329796059285599884670340090391692512424670778412819121151823031428023604389454978214352295237153543351472362435646234151708596541194855383099167574895959884351816457573053271722201280856421102765982604506622631788896309415899374810742489637725982028425179003351002455795648051715235308884500877892975958275912964763716307191732247501269594427717876138346332222386443022992891525746614664759642864543611580490280023477200225988005881815535917977732495387142349229401201836084461760604315373959908271137831294604946233864057196645058291117909618894323267308815188113751039415066280610649916292520249037780231085922472912902542312836963539464465232249384307026176643499221073661917798458275213100516118127887666218930346752508479245028622390323375681359810983012896631819202117587081626913959163931011557147920777241056165720494008326357469347955876589767164466039447217156032393329665038954424028429010159895092619910030351900744997499056416713638379398371523382916254624641507239707666435803603071987174360986304054412734774445129994379102690067411515780119284323683217926064001682231808907180117551242264333998570522395646554799898827040704669764248355718842939878638946398626447257743626193164568079773330785895108410216935950536898056769019966508127421703376887954515664315190525475295897924688642701215632384762154443396093353926723477884892617367554326109078999914916568084324754722934058802201957272106432629180314606358661672723674882770602769900807114566443697943328381166466560686144903868122021718557763986783842165443778388681067743646678689072137024376969367714643879433141040633528176416889551638486872659228191026583708487517160724243709665151195040541277443373363752474940773640911865670051996379939459157428284888922271360520008340372531526777412602613650197121564600824789447877878497844339526058994952884888377450855704725601541114143405331573388259950405205432551520083745090384783011907262277713222060229346834589241628090890769060166125187200459873896843363558027918025270387489809328561201842480400077978595625517689164426288408282201232414497545277636164161213564050160711082929227460355467145867681784267713910247972252204468262102293549759209837616458391768668946034927982470788482514692524344377980481023568085209183213088002568574264030041571507471078328568110336755675550221369939373872997167812855108813192153921171945573574700273318022215751931347489288846602229162101641855183906155317522386337902102263733586758287918997169453629632455110722958747718986932740464097742677442075204169945294435770999047276110468960851876324520429803750030506870335381101429301319947513954776301393743034469479918478095345381509487742596998925469579563630508227912732026219246770022274396806218442033138483636900952849543342570581536867939980338895131946076300289505014481528972110841434338170409128871881689852827737779497908101429735313705936753899125475526867363620740875119018884934032713338829592588698892446942372659372244645376901955211466703233187078806111868623260748934056432807584216196865683752344394921957869396316670538914822934119359909413398125016161216220790035694985281944267501313825679473131233789580124430338628027999073450975141004885119560792939710794668505547060520461838942723628353843559296605469775120536784099603873487543571612891535583872649993471794401591594422387658010741501446203605262400530376810750070469840504832131901227493995673627900417409336081195442561001619891058801727503184700288473766062781775465831406264250307313252103925913258182236978132446221743491081608445127071808387767308862133916469258035704185271443442079862653648153801068466904764356369739286087636099324659189612067713700838081924775151805391259344770743240388981563147358772890309037995309599543656980145700509511338262578466639391832497065157746653742744742672653107273793653896470746599009078099493451523441676779757422996283277198386968802997315645822547956184115929083806328217146058565097509251708095078062732141291714657228776623891251496741222678269202727092673617230768356220678986208555958982486049388107171152581152759881714363010916190570751321024982639796113915702927905099054513194725715939943138969453737971155818258203979848333247376892350626613408854626778899645581333232378597422532879195425571279936583518607062795985263512535478427743380849355139496105194245760987296609170570289031631406595180862763655457439314513371671678951270691117831072961971311409187425857504004517606631851631081201801851579786263547088885967454307359741083546819296177639286182123203591709626727208462903591834200974969198072287986452632511624183257139530088880404213975050355645522277655679109586938088785029733117617656752042750623288217096380991891499808353670595210944746684527965270850181997247928997340817744261804245194292639657704994002435343271663742995870994949005856458903111059520360502253590527103521150544732760752769427988022806802818686498358150314051626058200333930730461528866251827578530051559991838799079009351147396889556491920995932333918065290115823234867259563877223427130183069302520690863817409744395658072102898491184086131449456039069456493507184144440565711925368664231178548506662955217438247848627048865383939184676691088012523422630137693823502550939457943199455984098581877823482175877126585648188622229094465845054823744328108897446593386290275387641144751689217817005834397977965655344859864287815606773229910239205804522793250768415601268159601021672263242113397349352188944060428666542302788254836964918654529887794697348358621203327687831222799477361066455460015016825176993064267877466984409848735057088810250058746501574963316884210180844318819810107378980897379257518483024359904916333440842146379456126001126884330549526390048158782063506545054049344624243657361834446189331772029057953506240024671935641578018077818154721700818258312103916741136946621903430561568308521444817970391734506584537177956108728537485814559774742691798871369631689566344782367948229092496930035644759752896126858590669309543272869124910517485546926459567908934169919258529936237592211653366751019834784214596613165373274658278033669387460016555863581659275105213594099193277782221821466686312815895294390252294637880165158125762236816577950611285027100058051979628973622163722823970937575113177196018249427293728759207655058092847142074519887896478568059329330807388509507477768402690412808941260027748756708500827989973357412548596526320135715581145202358175382166245386703705371617631635376613184239475888750365815816631749096978030037196466686347026900789074485331457403292038451567217861769199589152782108745679453394969616695675431525550219759418066578400995822749095638611513304027716824904075914051756969019034629016252312407896214210140614181116932713873582683597596648644100881158761337169034623538448222909693070753600646668622975598440835779914121206155066187075271703862065740033456214827878941554989719458722597283893880606992216671310049936977783313950890414553011098383237573381191166971262359244205057861048385118997447462546542718897433391427903463002476719606844627304215755568414195994490405386304123791289091937332510651296675007914606224968195228402343498229637116694778636115207750964470327171495813664688236272516807175286824084456586293357538733705602436551370854404210754058399535283766458815826830277691995338296597022932326115505817287290043749942652905847985566422964877332627683511825820862835993521767835776109807173612061693477260637789337630632834758915500930331426757432547484445796175021016017861122685446762621596168435183584617860213580625422761318559439669183033329666137629340926402018338315986777966271599830451998963296350067557378732021394959231334045810264767612699128503859372593372137698434980018246284805209033085761088495832552959070502039656812831137513636026696128170929811879970124424549613556733735219388224612490443507688524183350234676266853636310315140337409430361415104414146270152478458498764938423297937922149307101599303706536444056917655208947543550613111099843651122735578615638522850556133321748830135100199059612242755164195179570920531475974519051813434728438955723015921563423444211430878871492464749339804880749527343180577840191383264629018009798212001492037673329247290166520601687830676693571388644233944000343153477843135439327506322391207684277169553464855609024799077732525615231120285696558647042908109445921566990791099209200852678110199757289020672303401426674204266645079900689535850910906034593944437766410210420355684197664403051159483696027517048386352315191517537149062561476349520611275671720715124244006468512330650865278813434431445727758877394232203571096581539435620880792049735690270920134267384736462149878926162869655937991746537206939216781885238547631917812703331459750249085542771869064508367682970364483916298999437118393306041892490738601495099671206651581341857469006807744779921302009259858023989171450045946783816284860462843665031936683969941778798196929048496265903252290057650663456438111600431766223627695165313113680816223960319852733742930015923657095190564776554967407290363739303091004649573101842978862203110573236840792646745501711395757774714033755300582924558345631272126063146161463549360548206110288227010715314084048213611913030385053060962233684259470771970890544526671752993405642993554395104275414955624140214557470503411790367557077167539124141784391574272943592864544752052997545071523770043666693800018107721629961668093392988057760443120037739049441516519253281991528331231543248618827220041199852158399640115607372829569379056578717618341283987181550272249298643704926011304378409563678369185997845244248950331426786608322508180321283097926096007802391873990307853418373555363831954194947535638738088074689053655864950384058232358389062775639267091941783241847058726665983923617632315978307900993471950489356613607762274294789316954502871431798957546839102627660634812987404509290088356718971321025948527441402377553555782607787308871321158248152669908003470745850920949305566095673199962626843084357966791152257160019451233936257042687294543049898429285036078186793916418677795354028450502522487361628562900316198405303082891581083771837625964586364423315490782019453232785264783534079363226826255514580785947242272168845843955531282803203801619824541394281795654949232332340860585661450774034664732061178486852553903809341565300909499151359702132600696977658174165123839643374803723123828011058128749761541255412693817997390762752592536212332817008416893555616889714107760617402668300495588811143634740789225411698212438787041773481398502887868102530312838907214391332588482057482393538396658714743498631817466998877651238858129327062267927998978881314228297861360162862635416651294971008023661740379109748269167041022662471262669771828458887766518646733060011264623628767460080212790271583097693390579015495418369302476985109350847005585224500692555004302606512605543771272361416134180106792667899589023199366563736953490670173939218187393245387495146778683736856955522642519309471516662213861545131790724775539456260859147034027263977207941329113302887397077618365718105938565449255837499701107920803538157924953713325337403828652774928774508857793882099272439756891900122816577757808058933718217315032341669446420285096911082502874344978426507949523963676705220803114793730504734802867041798539979204966583455859833619000730633221629752730129059310614545467207464855093581857124214995547611736132063482336409303446170462667198368887159476698826118829286009142939381929998090441164879966998714511754072700832135734865176938201248699703145583610687980729328525524801769756063181312127636449950507530801528673149617557849481016257266628844121232117202246760603164356950266148903483260896121642799354314864217373592055559459550930357502987083604895172511363670345638726664246334234748203634667446145386039597618560915045105328798380706659985245120871158820261569502774288879875237557864046068835279951031891958151899246371630381101722619995800310883509028557126587698040251302942574712018806848708327566011275169238927450080495325092743515264534003585878614931999093673380340104787426489761723974981959297541707768547433930849134092709132523217402667947213989036738759166436554482030178589716729589950628226576760351311759595716654311421476837095822765039743261391130539460287958141424451898216110053535050811515748968269647626119710681836540310523324102844721994481701994249606721607483119448146000304821254005192905327588647382490110196475871058970415763116269128102342404921135907655737372053302237175458490780384267227042842526764662297014904758235786365563696487077887576406284057361619255261484012890014488509413468689134087630031902199875384546435134253441567853015982593032631584923153395503703095946278078091791410320546754356384196392944195636091451775601147056030918778927875743291920457595167040146088402227527017915903037604306502105311830390255107023576702031386677857198394615537135998706220427539711980478227751504980115356684338046838486992849553828912481976870869595545760439292260192653738697602294489097723956190007560095574833879840585492483107510542726146937168480072984944998124508572008316456878788071280493678371431580803951404350002067792715342146233150026043536381246999616672251871336281073812174697133673831129477575753545355721393167735342765036687016738941572503290210642138765199399746833257949218281815354065623052812504957295922698366160036651656369528480394074089884467323956115377674536044190745607691827945404867598261283843428375384862032832789670323575838992667157511579643948518972593744001713418288888077288403715665416583460801926796325213282850619328761785804310097660146892888429717270964553829918386951202623470425034966468517873612939650463232745009537449700854874376067802925301641652586747220179276721015911579751137166571430221540593060964066079477196262936476726623305952935303389386337594807431316284737255411697763643660514524263729686768474502236279744090474004695517023695625348184307456866004669773196929919140465542312429689248990096162754213586980569843139432824799972015274296151006752153707520354040410193587784792100507561143632340073842856790310435949411449065407475405103268499707484249938017979550388971274009449596116695476194983437795656291997006105667739044875874751753212216262873598946461953294134133317145650805788843160548096283668207682293497233705710181859711983511546398516791988802419783809271664595701458686065975261607913144199548441958744645336912360014522336307721554505717913524086665119215915801796289440111049267736806358647557192454307858002690809754342252572992467565283575850186104700285910028535187456457308096374604606063538801320100357424937674177699370036295944887910813477418917574538140151310330811807717685817114890669147140751005173185492115719958036016374414735034453176586368595326899693267737069342094626480967265160677570680454227442698218151832772805968344258734481849349402334365610765565788495543627473862855157982376670811279203883594761418907330051955082981421868346858393700484635199427705545058379654298289105561390461384917505318618348620850512096907533832631406373491131869815009881163241578787214009803650689695690544936398068461647588542460638187831728898029893924889060452761891856959995990586825354180426778155363115663481906708265200902816241216131539070281497086571011913388450382518785071087399058764265806265214654403607318108024222051177488279813872378644912864883491865256777383762177130986140876275107575031107682891168174990038275426977882972244035214718619795087735586074435743836135586851228169558664762018976367472116786827779925822010384710300367666267743664501472012251539523007145782302681414813267168257830152658170537215824274734084871156213573425034527983302022423011965832132856454315872061238380191769071046138352062475110485743341761698963654919266590290168152030473384363094738624741919022092536915953798789949845421805455909176238535729529140984353388591018658362971998117166724659083927105326145494293452370661960492103418690859559751404926905797742134587249991276521384150244169638237516533865275369847026616071313435384134415047600416197082378671388317763533980404735452279724436723215504145872906903033883258990347502898061081358304065024145204943716697192937588102846740628667555525018232626456839375872933838335632809003190937870700008665146366742117996645081974334167389707262795793846266360839190239829058906621522783159363698039055163438115420843696369894992830653514383519096124690402842517191535999730377435569922377476398669004941785728806969786867305835085526478729560838135332191446871310666722165641258217065657517208938161866540220310820294310814804023178305510196667584009069394668390393130803246226242256910562198520891050704204072034821388971374579356965919134999231518374105746971697099427320464248758072562961173914766278502836122158657487785940509753190647742896685446084559911926765873855531485107716908817300142603696330130053047201326121432000399366113123636555792037583859555576693603010790240425897146081076219116048244839739221281940078439798606143566545457520930650949088107182285003839997646917840649928269736201926667531283783297840437844089959218227289862923786858894660098412220785310672469735669037244042920665172862848522550530331329728355655047644080613020212563843437056626055738419789083891329668301308931564940140203214301779879029506786907383892983406183711908671068181323821732252794794530689413997994091156590547590310314781607117464716995861873706442069864978275718472661556517305191735545977183215673449133849856072607047154377973628766167692098634893237057333569972422330762083157096879181044512043076768739423638309089580972610392516141256294225711217160837108133575695156333676010482269396215433239153252530090963445479323572464632701711593801602609923589387951114196302193294767169981233619963419239961853459940136385161817905988046815908983660011661812362252861170158903806774576571521213750106606552654829507159343727337518537077533658228521706900784996464649902102332710498957877299449016729298338202428637234050857680156986988586194382357255255110786298134705842800366705009306891867582981882782403245439858708227183217115509635815357345048819633869710727965920980360344494421110838868657412531284314932426485153842233102614471519691144092327776116624042510575125629841178024651664534395166317269061768100250619044921149735543636552457447121801810697169763304748469199939285662890116817752484448410460795052557977736980301053530604993040417247875202272683431017240154305519331064509219585128445373350786696371269852170660775125019906319495814406278288588682729535134118251421891291946780153754663964683624816831487733430119251478507877986578674894090851137442519658199780664011665016543619853883989701759696320582721053800111542114719094532426916978786785936166673794612206779955087341760633638169799829743765228460437951117337033863615995493590411736883421037899041333466977654699793013265771483138378582511363592140257158027586211734600782241873082221858960260508766642089516059619790799988051384677832287272287028879194072576372974483472891125196913660259277015767358349486999870512326722094313703413273634443440721560265444976403545891879623731724528870533374907354204589075026432293935216722498084651296233276741703272673050706143275869640591014998221916374337882232529031503771653535000562897656471305649974642195358845663863053042530383161681678132034438064189608565707480331516271339200393798365815883022485436292259402104259936995429446710349828540159072320171580063786278383122392028825438737904079073012060376575325886505938173465252006159182001802019686439293948791004744561080053004928614932009506223923489343266439354358761327227009752091643687873982218302535773179821474999456279429163248787784571989090799658653821470391395701204783853056569451952580888888538465917432300620042077754941328343013357977379894101531274613937652578906230499372408008843284030894121389069054759790556910557069817320643567288570713187063862648630057906090492882879750972232307441261970961613443298145850462969464836095642211629763987508726158138344740568429023055154294240384055568251969966206144005153549105283624114124902119321932662908288469821293781060402761421901043208998742773343667755159439862683504567929576829367289616218432396379624493944485259622286058237270403148626213196969389215296717772656817752178125767624427418872580830315370825557425073591536184943569510937665501746266965812934776261360456782520473875771093348207294385462302618444814650594280655900786929481727638751371229448168770951565112708855635678167996473373785091076980026892892478247380356579068751170905720665988305815683404158299260776555643682053640426164960346328744810332430539335578506662203483075172270587611725668221187958490075405594513615120576045107208384977074958814298567980430193488075653610993695835516441001910331690406505003067488950091214849161264403902447084902106643313366608129393019785309444604170088076677521222125195513206894491901858661853216558651954438935952602566780480790967125225496147419396075390387223751926501584171074328845117497261331245716326458957325154250612429463278177122916584909145092018035015293886796997067930414585045631297176468065506139005373050277154270681542449255988396618129053236701817819256423041640033067448698459496317649694192173890725430237656245116819761969433805693183257335518826946213464492598851535844269658014602768439649303348238078788148778193320495606167007275760242119761770892129978202011899064656916894452488828182140300281465032730430631007801488844869751775601683020953776013871432040718893848373555370498746975545345452857310226270412338827657111080981281473771477833312735241865729636546266383665472181935947188844914618422821708695118807756555957097341629631499150089739506980977628384994828318787820118421370718502257207072209513761626845239082201463693343576831676526039326014060259918913481511907755631719928918759861941390612775827271656714229183488177233238877013039013330311124816644550297736743908047426640146060707632664292529020965980557241251334913050207478298939295308796942666746779051587182308917738521694834919949154406361274162147094441840563877366632731051426689723552329463149386857752389619227506456849355038044578294933578124635885561682424401425858032107946535787675310991035523067795740874281368722422709179632913557346366681198350805771024947427404758056438834861424875352845650565816515887864583757599167468768105333197403436274757334026859954258974068619181631738409397664408398840499428268025641168759105660553887983204120133431599245464964514425142621748810421000269050357238889772402120275922819987239553227981693208072694350034365415819526575017816660890445330590469122052509601498775135219776710073167771164713000158681696421866153008325738206658846706316257316755589825961883382171535980473582648120577991717318487194635103608416920817611321466687859146602878217338064075247967858529689005820680178725953490381566330474561616675241308483013759118014699868988927385159264155113177910423822624456921738314293164113023873021596601363987513902206018988177578472172852461460309196373980454352748716434323013375249859058078130171782347433854673682317741662851991660713408328578252032418754759923386442207007024349799305382371816478681803018832394782906241018547107393704737563732140390363536517517072161121562921059214349938558975075428990339835549046795681794246109137847849849558237208274175461310276150843830404311027709993297013789825107078825209780941109565252809447524866205918175912829162808172771504515880000601864258691767042956972741184968052807925950036873380772465785174239712246270713759101648458009241224121379013763848246975142031894922452629468285242758971068498776197690741055998791773136959798329758898526088794101337045955802178958619455706196879600840181954540176073695667041602904345370566599933935750567316336523814047310759074963821648039327182481290963226723032858793880187188420639571409912991527052345014181885564699392901520432429680919703194469509669957385529176872146001059620662909726240111629318710066386208106145588431113625997282068902027187156560080645463043646410804789645164555098048519810617322959937076601663230853586758758978607634361089382696239920122675064388623714040088132140853928446742739238517958127135101120624368600504088983517682927034684250683879719932564899603708854293682101912278681873046339072577373396478424284275604577069942642871246675101169831568325402172468954253642696065768510612605859094878110159319584657822440354905179740582419055875101806282094463174555399138551070110541730421686441116937547796370648792775358353841163881295636261904725220707123065904818007258488066805832760776211347615910145894561245972903930300978895366835870905033776318360707267436050220374485851675219650443817990409893472076626174802904317631808710666291990624068473318846740590073027687493731500824621366572001950233054663461037202310863347194282615867010789898993589594235046238673619704181152999977775239009728700295108196265423626552708181313756446802875078991670406283971971172393052402321239011744157104316240456224857751464747725632677623585128937751120766135031108161658837415219660062385089937971207312298682565908050119805360005459431717377140459943884408500426891969130635581788750214042894076170278766823931565262047240188369952750524390138545005244604817573154295656496304719157135635871127024977955252578976748116507727763749981053191718060450675356323760962846885307777939702803436500324232551721989941111498346402109183526495309972856390139413327409021820013087369710833884284817253744316612794621479925562926718382639868258337466538753467712263175208964217950079598106565591268412571766658799929684220214120647143257806607787514308189802921133278243204548426581157187769454917877565068247168073893856481999947755694189877258122202190921176251894448776249947288479057387981360928290246051997445138998794843882667684028550635286693657081778144420131476135833565696087847424948815214952769618726206534288642063407266634817098796477581559099785582164566507685053321130042879847072988301896761951792930570731254013097255400527004039438830733836516976606150871470852387805222182202252225891816615172524849941615309755759867311300115751984599537116346040371505384266683740484729814901180803226252575838633623902863279433444289285181281810430703858866655469202019776391382437399303300623191461990226333344543183357369753527109250945244664297694643773846017918849248230680110923563014988279337603859124868210169707228694205724250213147045264983595338222151037710976153558749013270351340777259235784679329248857337631508358284754351960162216226219803806943575413119612764458339339018474345309984721583831526561707086574736295207517465247458329190083309434477683980048327670312146540648260144725839935559232319799648052314065785138144518431756717425197284362082807446388755226278655395371426431864698884941223604966891679205185878478593090865876625861957802972301183908892506725648402508186299295090615282841374495008859349699417607937197224234026251418461485538595240793526888567109509431396032237248726668319438158418225223715483697104177967944458731981194851937556931911717426762375319045946367218377785547740691380908977116188095658583405961663319608146252262441959724948497289398998337351334677177343371575731304050887074528541837153075331970704580969896080636150282979804703457253711195880973273451096937648080434883982568541984788115761368482300036581408934613673006824520694608864205365945817531373898493302090750752717916927172127053035183763645577432955073640392866084271632231102136215076460766383102996550197389746993033515014034811039682436390574174501547765809781424829309920299206572247814719553367475227489590984374021367904197028773854543566248447454896704771841609789013565657798694719940946392889818896302669093503791098693992853590727723604803727922681125205042082427110203771311251960204926447424630892309719869847489235185789740900343060485534735575105543252831680375620996100988534476639542442406563973439894142162749883314464567243957175364349662468162697251093826836157531746260748954764010965045935032080495784616723267977971690738016351018113694252977548659557588911058426999411843335644636489003290200129377305605584071648408455568023422159214111748016648406503363206116645149067564779439081315461371142752037346736430392003990485347137966024565259351983201187431016809655775511151812580227960551107100636704860885273992455215866538625944561925795785547481052137386551883434918302173431115381776186857106060630570304007242478218453699484593734940409992393456936129903906259569875228690413009501092516305139703558019371037423157571676639087481888312976943424737641515797106201788061152586617423358991087572806782068072387523856358116274245596338515421489924278203135467427069938075642084453649077310583728616017908208267421562859670430082271932822880173161066261178912245699876933111013108806088582209840048455388303636980647988139018936474159078775205717567668750841244558980491610069183226098027670346022277818728325312304460776791310913160842868764192277171724736243629594459372021417113773300434018377548758411559059953295812533124730022380979343563857893377175890204073608110121668876476131067848154947946250414506230051867551586413527199047044588178221043533456658965760052654745910608772961466253274484213814558067740961397116254993339954884355676637765680208866500892293383967680346205505587563528573757485799955683700892892557986046222797173305753120410808344643747911426109546369346391264617629855856286731354123025529257674970524945272565529880935428702071460203936049717827557158383278995889953320185488589197455083153122765658224854841083506435953927482271857431758620768257797241031584841628432399417945042429135032676903331594347888776465457036618670585720340510213390810065962593885641796593794896362114775056902721075788552299757152374357420561974506657460349534995408634283993876050023768579833247745550286863490002076289734280373934100203496461732414570169884339330391828515519360294847392030917013666680695671270388033456504387981757454869349680863939137838531900933526803632696834762629132640713925585173824162679530513868573341133903356482270138569495344353575896851843786785809465220728620541479424874385288331326527115742852285737587254076681506567245663692184201612644779437414862976894140997532886078869975500751938466364936761234251215961265552000409398430171771707838186803957311197696205961439659587313069548920781696583560079162860887548707146918070485333790557828331468658669814494319668531087519570479684067466202313860220954245244091984693508635741747466288693703201489022972941610435080062266630006444531893197040282635846789182550603603958579779302801794143322625176778325560914099908559189728597850593061545283212972257764368727324245010865676863006303923754743721200390626132480207691200432341751079792116661597102106812995822918779616697262091939564117404986350650621775239891247656320412222376672179611085121963155563881594944029544320154000845442346228986357587181880704692819161696879325420511483061845132501808144442852908277628377525605114210443092211952517750283186487171605517043931193041271094354035995658817801560472987231850002078638940198766049095510904870883018902134891263659302264306698147711488649064835963827429549548319445235688135914136391493819704856978865199334633628504950504059168404332244863802495604413263695943537441305694815385738328435723405277552191593166378329165795961439130222214387521182656361312631354449066933823977615482349899129278144582484391479121260205581503520738838175081968399022185611898472828960466113192182429634369656149097353231968222243361658291310201522586386463972500595726505605528691843442350324936718802249378152489990845714257769724688115306255795836593592685741870114988861501749293068780034107499639915398604658830156505845702914802278339976393217106946179349980049951748014344237970063137848897957475148307066794081616779866577715258553046698743200416861645066338863404122632987950582214054107563825773943286032384203320703136544529803748801755213670312711965355476337232192094506036123282469555937616719569476693214827620105555621570589688079050834568494807649713057536650192594681645114938120848196079625658992029089080653276608328697657203949233752658502816072177665254989010178997106410592102386082582529329232273410843997020178167123315647042426755383528648173474501316870356169188043518994380512078809310389900691778304024753943662678605455808978003831834101973319344514037727968163769061436566755478543886252364018615028648524803013402579658187660690109946493270757282183993463627064224824384763426731037793079720264409389883313805190004804615685193176858551326897912113197659185372437476984736477276601295738892975806862143588947853110780363397940886605847008042444315280183800081312288479454563345254078568557813530152359237585813878269092881172857013376889393666182749891858997225142370405085199279944475091343489394247857862025179001727668901579912251461743634238853357456543848267361172002699337610985546742544835409465603857487747142776987478222351226497157113640787605243362654928332427351399491868771391274715255656060355539952362520576353349717140484806998581241208153089880490652879338195952419909312805143718916507171315471557429130215973629259736747907724218598570400409523902173389769883466114446472119490148156393383836062290283785862115483482359282381908001975618673132447889393720282455019978818835804218530064317558305566507116924687288670569154708860978929149789608660709708799559251452175097616597481006496184677666215513873813114467841953493276733849341997776139315979960272574813746975216565952761788917874957446216196242115416711634939346737098782298301309680160723305545262549092669234597221149066056300689035495403132789055630687856630854179301811892920518961353694556934990775261919623746342273940476432451418298286112344502783204950030787197145065549235388096791126278191797246641359784914196309527122178617544540817318950296283072601917826890154218847772705978101650400434116350000368848917473662651373261675754562701541615881872959430930551697886197408252570592839176190880626764102872851419232267929425695332060788374203049999231033587726235496884209969762093542398086896648421984156546221444583883584068980732510936948526365585324186254548990084247714186440385662702676638005979413203518613615841569984514281603745045749774575388310546368817884275272445167680454556588532770764545382161139713352658626714812710235830402021670848092017592031958066018744010255767463312223266822107818130689451818310275002530075197030079694705992201611326760625220437254974657531583501769659445376664160980321111232939367670453466093273736367338535707940051883233724699468759826494849636105597007404465533843978425225606691334025836532202868105736911970694646484316145339093736549027537406642220362126312840930510876941933898945769493411723778162707787186919281911450989567856748479078169418595739817494294646253626707469496721073775486280484545355951324986348001209514753533594504156419105973107879137402833957177740422580308363337621968040920371813104196182485262925883359676333079544454505205179682913987409119404822423350542342139642302934813882435817397072623503317935996074066479804499430172946156617860963420747554572721194067121847041231198261362666046305537511438379983246989915745279560346807207226912075702282450291384329787668660485714672012590340858718422196935052878646017512947559830484091780125353151100694749065604962663582339663310965040699269278716675175337276637044722367225674914404760781078986970659854372514261059082704988363042398835197235218583988758848022760976578955536407732761907910256922611835583344652610256811247168434951468764997590254257175891336652995530766757860418839502729514820450680843074285948199344908992052795744274139072128600919431174635745127316975061631535645758589641314100118456612386801494768133920962824336131397509297870369029303711870014515217403080294004679174844443401453555809116441652341438101102840079074625568019736476033774864948655908694066404213806823166986482590791520452842147053772182118556107026333303351027470458278818712602235949933458862983572490617543196120813868364516850110124576867659371432667485511619123526282855345722954990559543704411689977132163083077775954238217629117612272602362529492279596335389610771793921670314020085701955665551446671518230549464448321119105279956953408120423491458181787679177279225711886551639338203324521879526819091176838057634598837591908508742671366403428008583075530747305362845089913838028898999658140145484462512506234097204460648688662120972037689751964201205087237148553331388004498032593608132502122888064163499452692647735751687272101066549151321059849562055269130913519206635932627772549642941703513891296292432041631741792772880674187976624302654119737143690661801295520834246886843032352021476431367437355905448503494657613828817354226278376799625890085609255977059532261548022279326397824411933771750631661350445822672900238345831364948324202883462460530204391881815527129963639860111832790967730805156310274488863088098444126331320949314744487872427382826804305113952604020892409214293806004962217404843332318950287438890993881053137189965260652406260219615114155107511445171078099421328924209332083424395853945937730241945060676417573834073830696837073011953846630936092169337060802329167638918841062785501649109701801522322851422062554730607657122019395931527160432032670152361075568292691382042318141341651987951081443722327607772584186480969763947553924674380657784438538666562736711397297452339998233295189994165689217573177964749542761648054769838156225720736767769521654745382743540573684734697643793740271727087734633092666749757655971664760531037470965469647561320662985323777154697403852050933125376239437972454165383091575459379154438015028123661022743609861007168886665544237551483168749451484400940735511513540323126717458519718170276816097930792862668606477730518054376516303948138192594940604261744256153635701263382355444507616281605442456645937774400718207509596604292642683928697768943572698166168485077328196407823911791711794311903397417728893650416825813414903460347810134493394309864788912979442640053905723962924253191019558381577056665890196307303027885184031616791083942781654016011485017963418256058443503294258915623450825943552201547158784525629650908946686780209846229101057328450483181294465351211374398900759388365415432394368302246165765282248050422636284346839169256290708161091757083246612154891590339880387617511236035895138468785457587358067143919054881296578477642228859847123135267512102746821031167560582193082552176179409590567249125975280140239587878566367558376628448294844640451065086404669369343226809426750481249467510663615783560922916130283904663602603582395105148009768675993178799523959158267889773976889690921504539640905163544929277995119936841681471569833853369520654178630028551612072484790194332237432352649775378483627154091073016010232977192813893537555599542455656118900405581621971376511249110643792465122533295322235910164319531135607800127218007266783610304483394115213856951574566560471962120138633480661161523432743200342462663137182503674825688434134067695251488566224754332709934078237970898710969922639078388845809062769536262848917853518890134016676197023165867484673808974003572888721256454683032634005251427399682840685815050805592356981895465557115437323531597584303393244770929451853656266773163968050902191562027822453645463938345850507634522438106047991126052901661588629342189994979258069378134831171605069910436087332994650025750258331355441089416512368816590329079611257223139958981980080081716365794206532312231380533836595014906236359490461889166605894946339614100336029504378038864990567396945234801139769088659904165133849091134843150632216789084194680486973729343657027719482136070642199713991146663816538954558774306785891276143211084654492316575591659087297290724458354398411427634355075264042547991339902951787046881145085477281311377167986377961920691315268389155164591845423918080194636478852380924874294703343825626389888398469793931327568881896759113747148185159579051233009158442940326525425674648594450141043984683487103505338130774525297065896340692045408752421380960327421405781423250108054869267240352891322159065571739902987825332328888818516801444781245724599821090893550675805864078946862054328539813252671862148833065816316208109759992576512579552705197334811550576136199966334512836520075838265456054387759098262590925251956457717713440187793166122795692983659895142192209775169826467474125208667475298714300954477432565339374811443457724039833302771958946721229826080199865798846574356217837427260764077152876497575075369837230814936122864365746066463434469916435598967368335604678062997377201456108604643080157684349949010309754026311557758076392963735149071214380654276946975348232011054147348304962746198479065280913474472523619773039949168076922676303185547034983601241504613806609560466546137489228946869025896963780960997314071223603468184997360933982917316766117184618085949654981658986516987539135043067804901692025280686756507353443471789907610489153103208999810479101029880918388027588177495992264177537494230585477892296652888006452885822047051939925123685498272259260582148853188057016749907161703848053109354598621540742471301186474718847508923230503212025837926829867239730987867695948673225441549839867636230895778670488308309435920456136742088001214295657526704925347295136880865652789417078885046974377256943220087540371918269464693408340267889870239293309123557363881290180133820967109117439664122426471521695028632476010635267931148411435003075797323127810106072809580945794712335781299812508377774511038566089346276740476014613223625492208128312013891700365140910531087822474818797976672007078482199267669383488742890339748491642114987674042583505469351635108908492711567668554679546217577813362983224129625493674277800175236013578967599249598040981046279668756673027194245133108551888501559190401661280778034764150728519658943289018116727441039868424783948481192233221932806175414959164534069403070179981753399912368103683363897568371663202678012636137468564659494054503668824279735463597573444698684605045780538334129767754649219806515036173603455212446348343823512881724421480813540695732202635910166769792771961473675381293337490357955616392097395497025455872875884717410365687396410901988093066781222998472966201383599527778166057390941754218396181908504299177347191565620579868865456029573396986542240083040774509258151075738724301113646124486270086328181714419912568406428120818760420207417452548866681569218611188506785760226816229287734114799830114452114432894990033951235432759231263912282031519958411595763093586043974775617410393318900610520806871782493277716094013414738931338619973873611429403574288536043381020324771767571237522997552972749193947566425099208923109568904556437379822569234818867314928759308868364713116709973410702144432305230761101087804338947527573272857343128985434289381129901743387638017363158124190438963931300217588974036848362611893320965633084716184087334405623680367832067942425833023241988882662232559562120736336602821570382175679958917208257688714613425002562902075923422082950436284635409126319068999161096164078089844353107195243558408432457151200323014096790818869832482965570704401023968751266519634450277745329476824578895460410501551012588427364879997677436917509683095619498500670148897100977517853442987575221072161245634029546070207002918835884460317187183598124603563899755975488688133772921739701076563946628240646142624727929039227042341985493394304121707017928654290963738480858665449295508555917270804083079902131138429329975020212123605932127398576768962410666570296425789438016634070961300367274528109746103943180953959769086012347798519480634380131551114273339443903524206507512127117297603549559683904920834778105563529731290438597672720454034294457716594327436228718160421868035681552008369749419764652241299427434031279772760971815399156918386874777154633480175944369656500334099717469295638771962428408374998828496962597545719524630231284991934636127022047450990374188138112821218725901041591639302894953015855323662150501538751267512907482036634613694443623415467010199616521016773270788664904633806405517178692126120375989553894844271171340533559741895036042617099237801729746581532430521993621285343822637747743680143753818796965441789916357551676967310578344584525664001572896066803104420335022074741824208391938772459922054544009209225256489696763151403186644908947253608610741780897133449030166028500709631071206784815971137442446993735702917349554625748699316091882198793549113523881712260907447466901596752174316299165783452562272747594320517826227452506851149458443540118079551900336496096297917041498461504280560990519970239478552964952054641834825884847776823518043788504778647067635842236957787935166358929761139646716490998746576911394190447356477601127920310659403959011661009399327759682160351916538443943470764114637070575568471958307436273177072406702864902716536933453180282236498187561798036404569555957698994386162935004311212932698266697574390979324892654644105130867133444280991862838216575812268788961051558572240685226514474346551806189519231342813219567809472785181388705798763261804980257962487597478889896901340335270113718996985070740320488858446761937422918744591024506288988246664885359753550767371703358346459688383804194072744615907427812132173988626067804697794384020672090754618452599737578802677887408792200667649605973383451622457385338478423226569007878783598519944942362662628947243294709379658584507998165635676900758445208927978235465957337386168620928899117771165636318950319516987762174734105667919802742193586568628710745942232022511422082575203142255899417406161887041319049022245069096879072210336848285220502872805315509384176823663957183808448940653675016610093174692941914374285984046559059400423032451582906579093367665139691586903602284533398518926195676588438051443302900541740191281724665640264312038226429189188811091073431530483104944439810036226990514116420557252831195045573985947970669728069099238096194050308094866155138442281550188213700562640755643125402154841809225136055851149876846039782868880027158304965149620633205251387971493858392133683763113072946576427535840377417310636592435381066332222145391136244263477795804592419898315404495989757734102800063200951971002458181957382724684981203804437351423008152665494465849007209377577846110538190640018802400555005364642801353104578089983455196884456448971773442336427497763335706530069766006245260069311520778446178673982283463083989086855982510549486810167167198033955102449328548047934256551458613927398436430969375133900516256285539882552285478530368456419974252468329864580390668686084486923640146623284052132454547283450019400909897187584970099285216866503027365306821710848865967809505352473758070380729888701521936941115565054198652676334606328563388744455858215117652683419761942490325862694018207575587126118707571418765908628645894849916257642512477296624115653152133036623298545495988307975114725515262567948156863993042281672067668596950543800431793517449345416303421446804480377572817163106212856403151674752972215545403150501552316562942637910681071674439274137293120752630004225084659245231509991548316499241532810493373666305257683372385985627278023575147500882901965593248550860614893279671556418724078937918400960245912594251118131572023943705820893184303978441217847802220681130455045979601254161995496067151223313351288126748545687062129306050525368136759532615921728562545053718456691221063373198293411500380593111934817473545785702556338052496944973232720481739060777034108015370517972971473348101697973198478661585067290205026315494112110760974046720754489162914530778840253875381537779344876591368517911930490599774573565573827011004364851649700106007498705221867236489681155475132237575681486202438691788811283463525727662564068652539781029428384158935237761964489741044651178981304577036025288965401184540147115099910142727907898623187610846107287750197926958394613719367243756411805167220011427982460643090947284454286982382846359603383442223753804418938638329775256853140891165846793952509101460668268136242337625306079139317709117652521396920312883796133081906151923063426009367480759747493447852633761615842374403328129142249247617480568208018862598289218992031937371507969517794288291075279019944096027407889228280373157331285176265657041711835833963062649439907549291727677495962636855592369219914049296313524977580607161901876474132621760683699614394716272637691136193475034390537900967515501184966564366359608653304579634724870844233251371106779695423495778322386850850921629709902065928174750139352374163733321869692697981033730463233741669770020859831900017402207722510115799518691897505901969930303754370928110463933671185516027860084520947584320168653492997149625931834759118054897212310733282505214368673588795226752555479970856612245058928124458926046278547193032320173028925029855299820861073567691210312327945642632434287664917721970798715442399237550261072340579713633032663575251242378182646164510698918407044767958509342487202463420177760578829814828710622609542279741754352537556009917294543396460942591331775971030832831626904831523343304539516374750923843542090863556567492725966879430886533781619320692126229171363379214107691278034471643817261796669924716200461054360193615074956095379168949077131868914952592379997607142580460687967543917723678208335819655719329475643929591863966479176373740438534069136989050450461171207295233533683980718658646284955143365171163804640431116252136502931911188015313361856841455445571923122811310372714733550670223808013906145309036111915488590533914159124731645651295088760343909820812486636163285089280661795307202657894761088281279968421965965655539394093812657436741981686144684961519180909012287252784585718730281541201488159755716200333646912995405374902648573476064683857877030198681998812185599631884869819364233512598334172787513416583258012237901112557387976385827890779497448135279565766107372100100500018387757651162086497629984854795887435525441917060599930294276188189486766061194813644480371325396827800362140796548308777582641069295625349860272784576386154015346577614540225405631825601758926896654066082562586728869520987712233249512704788335834519892419723022844622804144578566244929720019460649236266311979841090590869593162279095618186706665326573435766037476129592870393900971107480235868647870358262801986370681261980497982061188578118402388462480301324472640451405544136783105682468679635692034583790850936495708414166828301593665437714249762028228689804987973057432275479593573312630524026087070582138683420887699799529113490707012437321869062634235575574040693057097249947228216125249283700932951531580328046553986641676389116783859535171169330716091326327958279269120130956113667724575946006068711280152867021515257779898190266604496742704235626956927915213728049776376398098992540666289043743926652105483512892066631141996745559925193155037414174734439489331207927644776019071295424868942261329885886928185294565985095297310861868021835366454423252826176539649991851408838510165843721732594894622122083874474981046812698612595638891306037538362091171727828853368594138218523845609334687151782901359167321629123028821464686065392338405264579937196179177893969805157137672134639680437324794356421105719327867806116421728968398454875078118526722701482282910103775698667757809841357348135593836075685769891029273245513490928793280632453295831765883633989367383867559072219594533424995527305999127464415122473411300692851910095305591767862132781468440585004008871999588440754300203885937893956985421567472656298623721231435010436006242590882910477665958880286762806257443250356131432252459662352277012277325476430242312557650262689268272570875357060791660672157379871627903672245090382302412232884520704607358682540400841657787512308606928252707941959220622694395611781737994789568951685221250903652093785417273817749326277802279587126877285683273128092461727512623657554674039657905675950769312987331265636295384584664164837186419231696231567131570776665813239916050276615436535973336234986730395367792273699897726344299607386868213279684629679395404368866678078273035684568881920831281829400176326004110939599855591610842324066859439718388911975890241467870986505204095782290348523799154691699536736088604268515431019554670652079823919691125663159671991121211009396717829051208779905366769418103181650637293229572535308705873979964561347025746930927691434696061756376793794005570730511879305274931097324706007059568016403461310328772292076260731676097493835104824745065447472533657304787763874178222285298449408381499503761427805645835588361635485184372972356539647015316847107578271380108239826865076092057815707271848187238869234404778722101885278694039347363840892349983292845283229844721606041371100951298945642329558657573110180827664684578491060028102470758586023195953610195577911333442747441017393944774614432234005113726048037859033422874318892225321919166993189680774238348115664595359155851315831115124061741488650898719883299182872447397710544596293422713769367374696377013641645888743599081907513405212462024075050705924008198134426186362178463432980817786476637627274564643428486636158251329782762147012002150351053330193412011672456371532362845067076924581664028643021007450706712162463819040607035714995525721493264883931971418916975866559188711957274422458892755485289774462217846585643188956784889610683638806294208488481402672420160692115450411506229508884217475993602367798874185608965387704193159544798323884727752773220151677167680564796823283295064281340149705019243767017912889181182247346581046326409881865009091463121515086054534291616347033790204672062748993185015317117994771226811919727741223847961394482931512092769342103960853997188424461119188413253570462975904240395825750266159742655500738053851334446471539796403569306853832092243750308824792142487723334352703074607258477826720137979571072451781584054570908027732547492116718638275669155416294893747570705330158231904442232152265133228126153428882301491096962482260085509190560164087711859866717722693530046831852046109378697382816081830996909743416838675961289578943575760405861358930923815502854754929059898768945676107215279850159038511949170245097950894058854489228805869147275123398272191252576680077001107534235258478939663208667558298373411720822864368132554798891815525915641600848040155080571828443119009640240934706413872375869139515246636391080186553563670114310518590264287860584915795868272978399519675022768599937139150953432421674238501424632916041703302751117132812053809046110905263710903973163055089742487720268766507224472801445890998318135548275093343977654726131819092634790661995884866371728123750699264991169545740909220074606241674430188262482393801774209777705230447690291500002024262001452365537835738948144171506915933034426293331414772001242565939559502948533833523531749045348549857213867710037412749762765195143922362930460263599085422029212017447902943578733032274695471569821627502959976929433668208021084602688553316424142823189978169486431343529153665819323636727563765191233447540452987201975900933828245664933811066174637702213862978852975038541398129824138717395089013524782299261929984837815435129287107326036438411998099394986759331269683010616887597346186686145134461907459990870782913274725459725538886365846643590289115152596111366326584501912057256154516848009009268082184381631589445938978184915751626251037928787512751156709500819563369918330460610739589966400911784794245559010720292258909520165259787292537282593433650282948167049023808717801214713793025352614121597464498047272380446871950957265284591262443089039838817841251941715774536838926697609240020122535729842177309053555327927549946835750842425293984562006829822582652298529087614062093853646555707918273420102122590662336353469828806788626480405521359834567412740646570939993877809652461860771127978289189069766021691565664619422475425399515761967852721349797624049636267559265862345467376317418521869110202236984675143515357422786993057449600045658909678746810196106442801101291663785600311099839513160112735097288028581097735464267071539977018994600917984630869262637540750092862800355835961447133621038376413757492914675883037474565323405055814891073242642253822836883958261531962137119759016241462436847929731837712077107523154378081011278338244041848036569676769184018075175691242239215233612163492031626550355681238623113044942261404961127418769486773236794189965758664034802520209763871334688217764040337448621818046797639808615554432232792301089778213285770804230895291925564158430980015787015398330843654253597440832787234428498199256576100536676494495617101321810269034708967532255883287765385650360104733642470741134009674516132620750233444167937782031944023987098766298702952031213682194171323564263081283370931621146629585394518295617589672264663006410470178142689215378587053228159281940765758213118394422385098391269988960903470180271784173300217486187608250465049483827126639760520181865393382274662142690885949040428484955413679508169382645548001376861164193114626191217117426064939814756711759839121482378528297036124786866018628510571092482101243808617552949626940358259122625549199325382972611916909347095243706116182290335932875795037963928988449930303032513741727093773048825985176047484548407341303476317887746561805139818447375269252954486580041780395561430385922527622482683686699890967221252478099614314092202030101300281823949202245915820415595656442424380303263245266302696621899527398797624656950736938979911448014196386122979878153431559630063322136264605977685971129138247245237819119217272389927221059336819588372217626139557657274976934336501661061972181865947629217726185654707842330173206941232861446559190484345361347900247131662676168555492590324455992226224399446751652888380902883746925794686110250866326770696975384638740102576424426440777333078672408766534619088908764958400815858050142796061365656704731133153039008232999148896582991159590843586492011613316686877535713848192535302171061105134147941500129261908243103509885942692087817554499985068702910700972693086719488271671207176513491980973740390000148988245932270872733282018647774820325502847212282095994824994054503550825995763526692142911529392872431286571550424367974028402665377747124211836728114038900534560278843837661390756460326698535891852912598232401496028527359484952907074092968008399070413765300056921121493176148025736149354806101248217334448265475602015170329320169176180356103223533346052743032086888075226258512829784695857428426843424989327032368039248144479862064723119084045560927494273235652209467280280582326519388094024044112826834140371650821534266968180913723418213968156665633529471265305906937174324312072887889229140478250054528617163439998407056030410121790343891958372666821092062758563709412253226766733293579343429650337105976444985195872881293441840681286016695221684306676490768240834743562927984664429686608021550606851333046958752155335440671191579045206275867700214953814077567854541495161175069315944962488782059968745731854157287073055398741785372154051138215667907200472974732313086073819022611494568489938974032755722787269904910709403922459785984286057875680268269263918311008582445564258040892984185455421775003727687428483326848143423635240361941490292236744083443138718387590435526785284643814533630533936510504621004290424088801384873895449450677325044718077297869301542064390584544419910705086928629067531232014511459516939432558226345763138276705694937394142378234075872426409448419954911815073604100885797285863517487592384984331044185484984318626240251390933275230205924309507311328847841556879710949878130621359069146119113563374646592373070756182009364850851075946600107208166952842209478134577196365649943184106766230137464754769385041345751821605249625511234290670907409240363054464446101891912137732950632423625598983521511710005196677859715201130298991411601068128599207724649788372699195973988158512150352393884136439627070901369070649942036408116743707636790577829130089694626897386597999004057787401140614514746677009561508807537273376205933056061626168423077950861041672091813465705384921654817180816724665065675274119607992360158822353415658619756449406072405601910001938408141630228720395072034253117373782088326988335087168180596932199253739777804124316340583029959295932411327957826965799375215942252652819488126200297338778601309465338424365601052719379934762322330572969016522786931706588759959737465691838171056772653106964375800852142653838756747083333799470466755259436326617801545087132334545194228677400736453727801073778873511812735658980219331181549965684887315525782504709282612619384026730711210251785140993081705070671836323547044170863310640639465103775230201367707028791704472139098476789684600464797835119027223667554291476070454873761935046130016124618367300582280908528034710034504540929577418966683432304852363316418490507478967546712610074937505144565853163620063169433124664194640123378290445064502029414448179838246357514432016344721677641739184354445357011938905763825716260611159807443941802288838584231701861050154493726189933954349978641786049032071458372158931417805269385623883715242806438842432815298366416350056460681433436737137206491776795659267674873871159891107982541644864449322062696455042228893264680902638443948794399581762554353898667447931341299841290605312405905215154836876666573760161091236415007106880156820114186300287999596405291139699151949803384939121920908362833408763408108808403996477486343240941818021989367989167076645575584944675222145023763484879309780553860922738152960945188825636157517351108644225931781749468375644368689345105782875926840103622609045478034163683631085470862095602640158510377297560201522818015455093299284516665032266219399235134005043687658149316047118895827303698396657048585828214735845127305233810924999343535896425057096240005622630063823328721558507473984012351920430506043040384201399120698291676276299304112881454427764333608332640297537504666396036497625356848652495817502657004161460793305396747742607428395329470423626373631108217566967422365808299324136710728693880804682414632032084598117983224954299127588976988808106641889742157884435454415765525388024193025375197043798766150871769248690563664760974326175359858771028783488935319535268645592660378084913652361492686485363546596532335017533169925673260101204831200812384720189485225836020805610466242867316515388133278984112458839948926544704621121933845349366636373242486786471572832121407303178916735116092400884304900917013278743033069332028775719857350331943282965976746268216073178808967831814347494199274237507787271321111904922230383931281924540651583427569004822847772566733671038888249517914547386744564680350538514719034297758317376230029234652303246351799525370031156747129496256988154880683687330604589789369200816528111878872635887531951282883124012824085330955347112749471647688174917397560179094335658068636548799647743007330632997593590965111723402402947934574624640311326826748257742574177426359524253674010289711131460627774972307944650057831597582359395291573755997593006444346116928148244940155377383296146426186640320292054487466198335728289761828137638463608741646414196994930632296065799869125116632383401678197484244579784928764679980532588381423888369034507146641564570530879634873498695771502490694874600897376382364339514880641698955679918976360909982212585706245111350746465841749621572868338279580837772900196318941829217175867515963098590648549450287352790304787553979320857768763509240438409605844911882276363832331913977708848522032622998907036629070578418047685575470897712765549833591817716520833831067017527297032323412266251967836091300538015994506118968643345657500683982467279033157869452038743755690730377008383432123551606539563105946067394524318057117317783955743597424458751744469193809512794529294552992592793371785047465056756892736950527033736812833680726737066594348568623311641064119262265383973654148743156942587373630222678968574574871036899347748844202984893250297388916052226141927404165310330577143455570611380308190919672568101388254904928157589432849781706109517026351623382772871070830369081851572995531661495873014339549595153018130616674057619084043863000089614351167513598484055218878481166233381215540204091328242832135717015516852063812600232457881290994058731488285766762392351059025358709926774599592123262624044909970555034608434997516441316852209492258755253507391983540296598987228743248821637543553555516227244974410561472768331467557428381071442572768911936371841781147225350341272791151447702368256109410448899282333911380735878230180366702238688860707766295693849531290202959638498940984306539938465966371511692292916804840792456981896085820545250362929249511779350097695982220643051644794618294594353367690938837573738619402615661583195823176947893555995548172799638891234512271430185305694568024772015147205141901724975731564550005098320900034673896109349825572569238846207641091127704543421034410475371754294318659566296821182476861829840102789655082570570040997880511402384731153275151029532724128523614243240022794628506471944903284869903498493257660036016909366334360906657556147924703834648459837944349381218620221062660524933578699320490129396264399742044395368936674153833513328424201275113831221004375100925733056183057399013222055212774800281477449419453184828025645493017138548706737934620273730642835922284389693155272925613030790381535031005436674198491300206600268914863237289682914327487284987362404206118441516199417328568725387417541543441850147394383216949337704562423079501446036991735037015947881955035556870897021648936894868814839377118455801630781585792181397014142173577340685771870988672834991891449383787467040879668029935998102862265767325152077881876664117102513377467315814711467064153495045355304767205901728772778304018950520655622692347551901539722751943307910299972300967663815338389342045584233946853455783274577069091489617445150969287426617650872130785475553785031389798644231579791982681122062922503943531017281637027858775170756366015291091081069669887387818759873430641439539346656833819005948673470619873976730616462189096104163054513589451304809255125092417578373004948488051937372660170761770335835794505403232323073534391945227436316480983098287654815943775419685495846798440285779898987200566026391580195187971013752006466612964509181295033388212647008768935318815825318309527079096807696033594201135581079167834115413030612754971247347337604990428845103522999398128930474211162241612724073876415231801309694278215982258538300832752670641635670357382536085365670584001115606495879334178150325208389142803359723064718091504888674200493028263410899973761169115065985321581197348442465566515793975389753893702018538847088758085758403538088484050992292716109643932959575390352983806686384795121924912886815153796691408058145060878782525110537414720752294955592944027323354653740994700443376894783580811554935074769980999876706276341126916159810765051548814988072933424162505776276990194040701279236667251718220788747865520210611946864133508844604020891342024438896013680690934523901829040808166303739929461388667028131697441498693403386590245161807333725803413987309030336040273610025562606232798789490053938897829630266285443052462524910660281866417100981900784916723857098174560952584612323620924650512484477925300547192394461657611997630449883315410901292092560556314474612741194369300630109330662135400304062454951515244198801066913450016323846504262924802341445273616284166072652466534602580265997887762334563505726664295163458057053477554518220145296455034785388472057934175525048833425889264916884599477490192325168396971363596440075105183001211031332234733553589994971762057700989173022051048703255351333387746953027951357004513379960117594042272402719241238472165472471774758387332605264039010821940363044510421653377575158179291347082370209350687593481855295732556532996852534319286901577288157952626926392584746959245020716120027730141659614088674155604553849604840766358411153999457389693085264589110577785225522351037607525120617494238261936319733143811225040584208245242660270052176972688030422528320873323330751926816742035875452984456473477893408124688573473735234863297278131281583246901215584143069286964835816950958288652876811678264242482854213571802296514019810025399459269908349922249015162965612420647537551712256489003731808618573117713710653499013520186959950970624853164122779383375182268761045633987427395741538505048392362407034581266648373112141211149567242229916402462766454809911240042807226102394166639685022939862760243562452507705963532427051898167176453890178894451583793333371727470267715078747814214556034867774842726571358101939100341431342920897093318787161980966243300527275166727818169959158336526257559152988178527411237533855912662598504487360833149889720745205667309397178478789217818504435844639297090987715920873177598004245400226017393151501926900008807747836366299437218344858815197498903113466903559789263759647659821881062699469633292200104751315571298137296139663116351626125539002173152154294754010433974990231343137808725216498548307083543103395423957016221520570584542063921555090604923317174322754925464186463677322110964395761861233540506749967456335733740456081586559771615120771472249299128206528081284608552612073547120551776002742405343358225175075639171183012220202937444440928031666424944320202932776756285621595610741039352124452468576053070157784553630067209537262851761761103667957125633586378651612954119475476685783844865188037597421091979587182036097047147933166568111845012652467478941650280625538599275613757841947641348228501304960413524833323683100698565785053736669439779981932995822558678908003215846683271566574578223001816679402740915419784275381838090928449863498362467117104544484262023316495816871255020308741403640701346502474239896586727038361933170911619151320797544944401544824915669502824249775342860035150469111592175262014806799890036292593205693134888976210836733717385051974173771250558238286214235659150489176623018929348492851766884885202900145105718899031325451384286115441156761861961679602824789613525165532288434214558602346864064454562304383003190274364118931459310573311122756053157589092518375290474505177650295839487116833100068855597332092114424803422234551093606467371585948958396635394887431465548261060091448671246170866214417322197239226191797406318751370768888968593703705943405502564651363378899533458617970547581844810754275899902491815016222695969652414902016688657248327316138211352500386492864664706294730867298876321508129311268299325179516154719401000083198580917093863488069665639750105651876414911878523879321901934920650604599813001638479677205277815197753325133296850485286756133115762429503648388541870902290538996899095551876269740641836256886992636823811017202419814527975732382364198967877690336498782915991843006349440127466711044568204172430602743904415688109880741516667451104315495735055850257335481121808242908792897895208300480805640009271344938889011833488668264046057588224795468720550256059713701748527129416260889924066902133576604086827094738702120624557563070760381758838326011058625814260642534891792195468882021973042059529141423185988077372039705570102295971886370001279619530999418485429511684180697983215149044438577026279028310670178270415784329622777260530864035301089447109720335073877269768095897459402338902299672817470957433719155049668068325785357234806184699004425704420377415902233993049927018144141054009494340969996755815151533347947679070548515015660717767762067822595874613398942873480063618426318910736405276848942040581624905871981116442207352587375836829608503224539982449677633726390401834875969082380457827234283717090895518235489779668334445433388979218349061966952882403842793306585661527245813972525546370289242823191620939729016621179972461480921139694785064652039413730623060351032002218735774350133476731539968199494228267273397163614579168734383596007838222211783331663518013666822590968020365242767742230270632307730706247989426861522670168918551747213286596772745206714188909368520426862538316910332725119406498239396403982546777847495663954765238358080316737501966659689889901257798186218307145604308086978620243993388296772023406677063919227040260008005732352922091915495750992569068669589585207691462185560935683012655001585684173253754228715051024036122941724434813035695457646752830511249097408805582224073486195905825732042503766259113243695336320563615571479873728410670000593461537850761808990788607193019347582836638964472301407848286622665247102722788174065740352189161109600477800600116509408997157012316681209439058698538565006604899064167426881563918176471463119627223617606651941445327592914855478654412968944316037792732682981134867121364347323809434001417235703102815903780297907050692996810141225862218015513312418333971193185946060745725467591818738256540815200003408558488643251629946126035597147306854645855258321352945336945003426651262547181819007299935972610385737992524514228204863885774926469418826055863554966580469102792952145012113489477460700625731244710764093216817209860146019870791803568404981330340363219531622596292485596698332491908899535967038260369182203632129578622745087562426467949496869491310585305765337990917098386141597234405761946152048540103990852218012613614161421811209209893094224692400033835780744758695282234647046719565010774958667813463706653283725780555006185679232508396498824534716772123597062258125506816629969974439645675052616204536293851654216850134458393920324203964452745859905118075781078000079913078458609922760652505584622809175931745170046649376837078111306198170414050716261458807054953596765917153484202516646412798044074918100529646653257743819783506958361344490565094097622310510493115041458888855008818770823189313496497981765425328270330552581215775853565795527490567862577229284752019355364264966413014140632968209784884109434131624617247078917636059282855454908618172407218691944379828470669925032959144523748138518170485186218637273891963467526607492844955294741045109138564422996216639862648003416331459710486036680533607764224360422171088269118915725704017155083408994335530052314457312239162008071234384571149979399511003420558763318474541049026205121968675189120787743189798090437506267163843634212779004045968571785666149757669593272047661886614038308175715988819437633473796476800919216512179250426888766282233584755557854632765877447617957188696011278239983735925332710236523218120718927099332844943344290829233452658072478108957111362960892452330478725098103475824024254265632243855815012527596512576570408707679522688758359445052518290335918547835186839609496529909407658068165444276300510452898833571872485362430624897031857788813473536376302881653802088872356379952840403897835640590196999006887150108469495691730037218159943442056035810646709468087202229668609479723509267093020895192681182672945122007643611907112778023821249018572911718907123182326016362245077908477104606294606907826514396514085805394130396979952339441236597842529686101337208732819675057573764636166042778118331992945927770916682794364282554791127587153875817337720498706758621318670487381718470103686498887484010508505369404233203985353482420962164765327135528395953136196892644468450415621933717768973031836980689864397744064167035675027090437507400123481007168632029746508174147275714014535469289277886870879634440879520755665209330162415179493509385128631900822665337765315522676418952689739030060354072486520164221157421510728067036115895940926944987849662300667445485699893863971208983479698106794682563182697527326228066571841989694141067997916521187220190627320589281445408220382669292185932113911212638728507391351564975194319984361684456766275620437492942737830341062666300048129821015924357743426964408498351113788248861848024303910033147253564076782794116760790697527541162974026362255590154046353310850360675990967422855343798364409033979188990890104401925993930066801481638031542855154749266516857690070527767897212436855186808378982190980593402157393332798025377688478002435138618311767637622611848475839348862320318602113591509713743183982460237708733750233744427667143702239099885759253676238467832575932826141010947586739447704167849622396352842453500545385532121151552041202998573671901767335296185561478806165911759868090959147273514607976206712652684449413120108834837696592242428586610990625662410203191635910736746916087379898962933502762165404248608549235053558107076312121143193136600503486153097922756367708959045191270180939223696044423655831644575493507411001942031549308663436241059808801357439845477649665509011936673847649008687611904321639848432181648907858257700861792984928438658414433187483788085516100018030360537740219947782841208128451492267010071164398538995145783863586432102696291116174002626215076409168150921164109231608777932112226389886715345998786803361735990684336145878859626330211753303523071447287715532088867100155710931484083946034515096741632186647513569901048571446807924330956658510735997828322863516539589914715019887362813927730496955863447147500857271604972009068753506751316447952011801886826139112090010505555325059748935477549794119049797068845499069004454554126358904585188079402185723326950305982949584596062006137067636157614027990154739003535764676367242777598701419292111584555253523544178718200982482000293858216773354704733998100462689267949035710603891209932645953371234002700515007700383618163722147629153945067332648358558464382744104278678467773097702811577745050352621862752362556169390741298739960756036818303629582982615485704070591560463903514397532343188223065096269174936365473668977972887365018995279920525931087356394158130036596761719033520501143788465770732156113230534579698141152733886610202865774109882047829053201637211412947021917633445255125296534358624210587114515461932856016068874259217247323636694967681500282500876534249157233801467602012190468465909943219157537072418092221161441134356464028990071396236949441605949085061051105168348858935140065039246945221009370166712483644042522285311478789361138022032465655803620673083213253965505036046225016508919657599742924527036375632117526693012504514783382591003918787942696858011589474023537217870010732794629549250935901344040804586635569779232818154491722131142550063335107911235852195422030701253371858078894096886598090341314781165336862502902907834553773118010576108019505733980109075695897720306871044617839089316861003554200892918589076159304875382239138376976732387648744989741554010137391629019693848078831487957426239790285962263685377110764857073264852736766718905674577353903721224120969527168580955931959417589420823070942731840167659623587258364403653596992777010694067113308112307188201572975770726126881566776916494907394526501259513223293638605971953115133072880252192594615414803881115823688518290429141627920907872885522784717947399750261560271128171264015766143132127847102187672634354452478106229568097024001042481552937251265432216288997337147560600693840530487193210957250860800396948448777562652263590735347018616046248576464026489071391148154986451563823428549095727523852924020852133993611481003079570849329367508056376633772751693902252164018832800788947270966458196849006624938626715673732314458795815622315591743245018116386228548502185798905120828669111176362672177033594296579929914488752880825893044774851740410743119474935941816169490426368465816920095171924188041597916389039980537166543878270163332650301797554548492785751158414172028166152696092560844788793304202042175772814082984923657769584449161748247461307634826938539469863289894835588349849768451209909229352272179780360286107164748972529506677202537746557080150549774028555468847474888853842067398589919311100541101149796532777123516205728664759057020762904473427293824847871946404649316988810308936309577111177863110261003516421104381654156857145632513877675787315108843947802047746916024113083239727027498895569757806745461324082471919444159172713721629516766365260445190452211589943383273679322764359937241815950029162500825198707345155487981558277038243888969029554852242515693708018475304843793426615832268414021152403333567603077127822003519893873335475895698663858640139762780851191938684650462167092152341692972992370500757225576863098884811418433512219816454023117876828053886230278553020720136926577312347189433242880401994396052231154867532415392093780659554979004228992862833329831315004217617761542662918362302440200942230095222820910388114123483536037547142138097938436187497235252470653673044025953730989639937685914140302545559087326768631949992624146120356847462867137233641895696319478707776542825032063208922670718481147758303817508063142749515082084750591592353876132774677415952988911565178243018485203722022007383416916386946221536677920025961938339760264013547279308162481022947616737211257975999318851595159911818738236939733630120653523970839356127190914229212944312137307015399523936867877003155771180951188029044484723861161978034091881693133278735582801387350987387759117901872002389899114647179881010146671869772427967013861322902024487753693283961198673893483728486493672714774593349866859024213212338193120889282195159479278809608688152338694501893118903502648244095575641866317163693436574724756744522709909691013664316868556584850335358518677603999731826824243177480897745116089230937998611101807825550667032005691471599655775273103521723639235382164756807447239590810177854563442794358941803014843245662738013026851129861377074203018364013112230147064560062800790432799656769275024741902790486073510664498565347758253460390865518147874588410460077979679488791488263598783289548456319782261853514546318265387763782674867040294618369425556421896737721841133377747274673614603909890679363839371478299262688292788371735949378306671266929195253190878546197319868530383661493675905550439549022811256735172017190254876643049836507590110759533544626348761155172038773489378038638486660163879224749019749167169200660149710146044011140501946580196753855678186255034752717051357418226083962388336479943693548768308516749192826620210815794825614924910512699157405428473133896565931396246078857496288920601230804170652760721074639994771624996450425286281554630472566285409029065727111399022381095035942869129273050143716915595760204075369750576937572060895886948126239408503936249915202971696822423990902554790159608276920300897363447438699369796255403644659299145528442419920474439084730511903788936434478845500740390239842811242816318728506812080160912333753248029730751283156558091644971913964526225542489447652461616585914099422303670993840794491981829087700360050610801409204254710439725165376184685729814332655058996648053346816016193989494880915362608990336980072485553325141382730256825592864591071207013098411177590030646177023074523540339441774742850095081000478357911908065025350451332160486153951459954706899278478447847813494840151649777096749969860546039173912074236546558325045800977470121716053698977020688609763249913915537859925668200500869668381632086301008833615494290820427824187898407704921564040548970364755085575373626317317199890444731245596455773587553999989631003608208868384376810958207044535260947428980870726908825101059552305639136426932969843168188332413444602129897427411434325628563015170919689046073829512306906636721456532540317865253349734787430213777028798777437707302653089205055955892020867095475850571654974533292422088471077044154540589894122448864742123734512596599510284342572215757769389430651029737658590154931239723254922810684810926171142951428062259186455584279498558412691822915747226345408235239597759067064147105188214678457806402864412206649672640482520337459530377669224269390175093620189551349290808088342335497924067069738285358805703126773167011951833002756417598489320528696641406452821065659214728948930693663637207220116292538153614000997665350754185875759860415671449905759054017747003997354220528252509327376838960433643078722410657020044358960819811811131373484233589900083649641574152290149166440383976461782253877583036741920723563497006803383660816012105409192827602776040168769319679084401351657761922397474155094683283475734125485868756650779337246420042812293295465288141795392180333377500777417848017674778947898852643972603671386396757276590999884773733057202802601633711557390805045074493238930004745668525784765233791594807566369472718546739378645155336481446180507913605579970883297537021554066813230198815207071619225717669847350334004627934100154603464248489767884513405276854767785019204759808075637392257447449131156253375762592673774669266237129388722614410561908467525217763087479800335477483635611767865273797683551540139728262311663556980204409159506392791108782677243429748689017796478133952063717104551770386267901128624843394724332992489434121584637405688893852888058881846129227481057860027885913827720826546307927490702003161374077691296893364804075617309524159959574169725464224594256423024192710338861284051595403477332531392453506593464191382444729373610119535444569771928575796219731193335763056652340102945377808363463851499107715092811454452283738363345488538017902959271962309870815709339899401712898461477083841269657426894751408020775977732787249481429827078339879057373883625689247008285887404954988352275305362451477714971315179703649929021451160649017146605618750543086341524905255887878424707050450605606628319683483255332245066994018835720413647199840938042923604186479448305750445585476368812550109138767808566398544900152790144894594029020511492751283081937751188277169547638599910945578722370083395504339992785808489167594442777611998574341154600670099084775711826813048312684057398966445598168978056657057856553055848818870773453983488401311972333609136618282442152481277076016484073654608439287224671517148448338438266478364852491295390400032834187240615191923444936925232482315521144422423629135672302028357050117489808633719190869052128394834987086594214797899641274085445514711006513878861746070499325692489075356858990078962034782864239113207848214312088376255322601377232481824699540762088759783673421914193945418818230002064034247451104811166904629244205862691856409059769692462815752160957011666868358784368806484694728070391513010574666102773354547260944948826206906001373978659118144525496343525166793987548856776119909551418148935398801890425914329219673766992270597540302939719860843526353523363245445263781087703146428948226266772480270924551206707239513017633876315312000706848030690251609050587114075166055165084317242401949848789813627396455783090621681944257211311227257094568965617921744490259599284870321448796101327607003201127869439605573132324319971445839748222855480567569611187189821548807672648988120824361238581755825779534350529015259527290445682583642668761970594947595957258105489523402048926774858912541275971638773860577176406186016048197566629933388646745695291550023946461496924118912577318649786293945615546119165878986753961263959634862431676551702998491124878166123062253898632484439515849759797173848304815729318019266223814326244299138201542604373818916676982990133070433035334877096610765388345174025001109184724676304207141004783012595126814576816617064346182952070267376183685967253306883390492400927551725012491808055610436923367362066828387717074545957047945865053057935795878261236160593232901962248383184113807591221828833591869064745048797155949499394492379092953891853956024449457195652320554865772036876489794048764523877776435855759236013849325390470529924624308316646291323380946897128937090962207310144887270634378247038875732891862836287889668277877516809378905666934170138426058932875425068157341512755731266574507370283977236328455021508360937992413389023329738905626677821383123274928924549880205037429471857361190654873823537193553002886253577208549676051946797707232688250723824218538563970696758931973617232380954861947971935535652992569905780475672444796002094970806150128747704114716186364051504177393962226068319358728117096980614739338346620279826808592106658208838237381451924845352891756728163868697523308806063827722303423229517235829760149440514220513843100444411594194671190800314573209528615852425562122676717815575902805869253808583909663114265424083380466957444032931235190961541530829889470847023092135572511015347490314788391830890037864902073537468267847862074493590801316057378546743149415259684057599468660749597246022575210807238129047817438203298133852184203277496471756366075363608676598156978059561281191155255875657430365917995481265442522647630226006226006113808150840413430605335434760074433506992316804844444754364567447563744929349903066148498483906356038181782740972145249161421873729602239929947781101674006667251033399190241506120143353876923899007765299517724320058071024197687497605530615049307780350043621925436478072209063438166828242929615845482119463368080258319439854192754659741897123511780663271145510626758530424034605131473320697024278723550109084884520495862397980829446467679942808611441537083394581108847490011542412771072001870001753397539401739540849000425042767771506430835679389420564971883475625967495347727643186347759030616079409475460450079711244783518117793083509462269156997525724815614649686898821852018976222773377309302973435676620672566207608702290264932524161269861947460304040297078735827658431620916001632810636023712096442255190662081999111304126322149975364943722689185367824010953900731915533148255532254106436738109098101538716063988420420208095509690221622666006894395406125264400600695763839674389602678435554155745643436263550457809767152239299565605753307528513833231736042757697388975044598610688884353656824079009503297918650861306020883754378663344889892451467360154518577696453095392350684345145718418742353389980437546737395320791013212276204782251008451844095070392593425552390168827358885713020292183307320382237091406039150033056432136348735173159064571879514019099937273398439469195185132938034006540716022374325381422974667245885533323716850777061599357481046829844904642665585190565780303772821108016906628919170620747420261567894638199448397907966060890327828843735374822934657231600586973033984961732638653345961508527284508631095706033864307650042263848553467418195247954663132081209965041456945617339277869337581331072897598075907150975021616424948236995791180045066247470035760312931385157647862645228374139562826488033208447144618487954611070518407003553441122213591755256976924261731484760497446712771310289830408412425058544542869359166420434173238735702205987281496567890521696952108231896795555630307190087274435163820842094528892659974255980285939032413112992954908978331725020149451917984769751597330325223179478054080717322961664965951599385776602938845314859149530844004436904674113426471963063942685682339874623331818843660534792440782190162467597393628905316651976184342001443889469280550707729830019025669016027747598276844256152741881653881582797759990035947144315560044471442096969216555829123924193686344508458276016224360613167679978975698438141970419899312598676145544302918541185765502410140091638434573278145477556709978026886090617976588525932189915998147462065649745832203697456701977959852105327226142457717087026987291172841929371078710742835867810278519466381548992680352881266972940329359604037461784863773891063361024134830077933680132914919784218478568002871747089173854644387083763567124051650138587539558516114993192112312983437723879354097717250032803699591257703747857975923625716717150073018968862060333726154519180781842574225868847760166491119588432086908978550239019896205287567140938873340869788432660630326836513502153932675619930308220442908130465997023153272244836203833920300261195552253560449913236855744838866549710797492084202972703601278250020803416076872065200687478135680691300313732362438403517927628220442453482084485458320192118999618578863307160652207824380786041720421536019091929702230058377352016353624101648220268905307722445681729700823299725980990942178451791610305545697448454106603636697426429280367346135814034458714303025356409744672655634734158144617340519042802926796308568872052975673241479232323256881413519803797918063848053824683858826569190264061654400120022848578259725248978552295147611547162414911540125786101454910053433218939680800534427784761133859023670075866637299103333571494653720226642222837604327149654141394903180371118682923860208336058440103672265553016592446653276167381363668822465549903694590860755060709594511098317341678461117918202274039497617984350146307084370155596817147769847907477078921502523263071880840477762471235638761451819847053500875084791048700243822880841989122782244502360623446512166126355385693740610531234676441658220147117386329247343846013935880042768055720043541507779957359721147818933440999153717330402300454426168983632032176193976590694462733808543126071521527142282754554004114578832880362581433746846457155516871313808323346917494670316415305109306873215646141832187808601160154930678507186257459024485262801541826895657474876522014474707250832961043217438871457642215973630777396611693391739790278916850211563167595688604708056870925886336775584649292326406381541093184320497232034186413148370705827736164401182034459812269376886579977014787126337172734392799854573600735998453772548380385413015117445516088887471613729667603519359806315589615419136794333059969863570290296903577094421214237250054887158221224286500127326222483505166716740055553362153398778091256433557844253428428383493744348084351678868687925589069846903042230319199961844105521241692757516805119241014448311973420260884323022963374139349860354331419779687874415763343295390191086622420679231706738620461457076068636441189333994428438078320568021898775532471803534689487314058978162058360666204135330611722073187584740345560624973379576518724969435975528710771895509832365707183941821662306206983650013627766563632865944676714058409293973354168747351631636368928740368672094319943527901938027044790306690128241925948970898960051270585027179542306226857357920352259967184363966830995946689012693959474272199334695141092862891918322959238829677382069578325500709752696190887170587029501752024374158985630260036076473675492783546849952217548366277257089826579249365031234158540310382269026848809231253990432729003137794158816454010244293374636091190504888927860590004845847340664093692913359760308869143585678079274016312466472158004094304137728819646205161656082488361885248363240997731651817301264583977957875952304443659702903766996860156498138786269224968811440543449809904107466708236440898352832269172639506455477034990174797269349758058522698408580257355682874057149393323979250631298577990352062484612412862580617444284595705835089464698601911892826466689369273557175305343371001672335375097119370495232275665941331892110747557155073346451949590151505075651222692118883386195161765672574523400714268409056476399641584427126937940799395234740456596315550711072463191832992419995513279769144718564142847880754898664665069947152664517449105775599820826403243738334674216865817478660790595148385782778613119194478162075581614653461504912712678118203056315179859394926377295063855069437134999284094754968468987400640688996179564703033307731758248487099270518923926871556612533346459678568313828163967847248195721541503472333691416245116024652251182448857413906229710109075688592850672757933701530770775159390685324675490633127364378400438238100518402193731577984185630059539495529459615954141034289120554126101146462203779211490528746200967593730366788723864443619487793436887345703255925346595413984529418787835751851159564775171955332481986471979362984825349175872072823337352251966475744580100758419586948583201734506338904568642065396929092172862108078932102213526648736221333902651510579569365233345581138680013955749428534542964078048905363474902400550004366656091075859125343243065392833973642125090221075051885719755783792270461755133091192113640488958124805445764640238851370917765564361237846284587112933486198725450362200577278923980439265472339822567545211684824202619761531049272518368970742388610089472359316273206921725421799702404288285652972076868956042509839578204750726651456261182785259169595878220107897184421393184694968680190827944773988595372684489949763514751152043235958641164716677888362199723530042950792053444240845358758608851103169821745841252781674029935525391714333691551137534441646083044167138253444330937518486877543537473645670009021415558622084561525929175480935148327061352174680892560792136284193408835943231284191620315829909033031430282315147090529199880376942006128923095702413873747031240304741322707472191618721846103798679238523803112835790185624925815714219305728549523284185612814689444802444770293467686351179148126853011299432948083818432870932574614035355840415869862431855262991348284269219759587857688465654490332084833050138655881833556533113007208583803719551149445375403769957110111599141144030771125773246411027733281490459212530293602225395669716747824636750606395686536048168314464938231437630319501939497098052513923036528422340317468592410671826098643203825208095787203264934296462193318502059882158549448255892597108322687439630142189192728147042611049846104009356054911272509935739051151412620206525684836375500934182654064709579086027442086512149868951387073546031151055414632609599059938441853972483987273039915662607053612659580102563447063594010197702425418102716351561036745944659588186740123820163258772008037882270993098208015970666426356749335070537692387376497110914852833025177386011537310281152190124877421719632710672680797952755965694378019369161319356888996871663277367962646577917683739500428238584306141333502162278454559735653151869958965880722110496010512723715052301231087161727592709505983023484227166857026380544407235038091453313170347392308341730648797599000846036451007928777127922741848348595617899795448836571186697515101532929714376400144668787151653554594521101493640115446617797522407845819704106237797060315629290637876043902981228632558871351748279594555601595501664379455092183079545852940526365632313444531865742978699053305511872471288988048974162649304995368229715474428572775765771715200265106093968765684907391579227797840065996680342214178143829372947376745578475782321110296694617339073088745559716018257479531131896205172868031458411347522540058371135774567201017068177731092560056094771618812530382862589606614953473926740466798493828859544986593756020555370509380352141982184123196372121996775364223911095571869503172068387355125187224220531256203059919562795898976522978520184252744570379030834111714464499034760262568447340092276287443727027676007959065578537830017978373636671323797704742971007179819869070618875123155985757170751109984017735669787546747681880035748107088487055779831017704616452836868904561347793742594090657696917607414740516745836799844404948415796955082858454113239790418587263568915757662243287625875982971157997567650955526557955854005418531875760578673123263739658722856386747160415380638909529593436244082153178384956013690609729131825136644555480790461338397941993929292146378742321313750223352859348809461569136152346984060842796342801064515010043964862160476573240452562048454503353738504928833851959543552211619623796829413820309211383320589135372589235301622490842905371738279730360412417983236303810972756846627776000055172110621857276228477011428833942682965081438119807703951399667544277459667332842315778083522188721004546700363835963103470917525660543495934109233079826451999392792678223508751130216885478817846170500634991758991605948394516428943452617954682978378154481154825011572368565047303658138057686497745092216697797324517109058090726018374907575780936308004043968517778617696657422777992381249416417413179779743072959691939004274997054134621936795202559927230933270839329863359819511851153207417180601273439120840700121397524300624680706835820809113971772140895215869483158426670200352427218495942146624720926671055889013796963501199155750565369800448884395653503514658817097604550138848917935873432131777335589824586546725609858505838726578255520169418336727311096507198283737259914119932988946673830797122670085762816474493633739864924729716071231870274640767578381110561051598419953701574465366170306906777933005941552973381536433626307851948990561064408519734477743014814725660521275633080087600377958415568555589012396168101633367552159033865811424905362226049954872904032612921149102682896601343574886329382899916888941699542987648596872990493413476663685850609308405518687943449888986636147090107691679770640794586403862911481425465756757313289475795177209000962556795416762039175339610037712955944735759530911770585530037066045577869295295085985021378684494787839095675883795857245892357446078137886757232781580976575411005000573563685581808001369293971795713079365009279662044965985097757955792140804143411333727662851985299523076684827374965685885609746617323364687190863823508772477999388283941808267650895469945801877394229793867289452124980508424521375804760340584091857618075360162395584546352903130238759335679891953262629804272628265721184427438478415568378396441196744404436260977553423655269488817578511131658116672728271098806565537550444170086869543788019386040936010630141367262481558611540216180143342601885071949427811871422783281380776622476697854925837224597774896307612741589191713555068029613851139865687249861422128561756936138464628625352506215200027884409108945219719116449463213323562372936262905082576405119792421151647288648514317968661756931851179826473845502236715749288539464993286090595691409475789937978219940942389318016414365654958765101326486491338437346181308294088671770329019397837068694276012485029066244534648946728599036082740726893309682872832311804509304671385493562548354793040630855414918161982354642317757332400723307855939845688917696268766057296345092783644711965671112057116400358939605104382896164232603008623896290597381265754381396361943161740142605371330642137567213755200461761792067673948767686733633987232449951576315315595777206815665967474960908688833007033007621927102829219517814264738293072074674663967189558530648885781683587224103259964278123197768886318228817890047800910104385115842643871256592259142393468948801623102489607097374735579810817164592075587907842520021877350784338116052779378619786487838872010806350242866707430369971943765121638500344323022453515714858409121025069764924519647859379864889498957689796079204573592834651708861297301241978590002202017141418784641445591583781222206743510364248397814365777159168981671940295181866579827802915767049217149588460532662616207912952679879409604040138154487188132588172319802699720774140963548003215707617662880279233948697825865011015196738833062776714746829829007299618799636803412126731207306956732979184958950779067708096254164941836020528242268152218351702820590331060167957962445833225220286291804361273799826569947081437718210350188259040289763853741637754466113361621546213163022767247248406958507631239727512942747924617356881368210669154914973196718427666321121445112112940003756054327326724185100639234103950284741808147322478851816698128555845350259335319899336516846084194657644525466171511829808953058586574032543397356987164916179625071412147224926670125749369759316365385834412241120241077434115136952447063633804312285004631115976725617074649313864074660670477835291489069970084613106349000933057203437566917449214729113556757576313923391036555577473045582301370180549202389097037766220179506336064180702064733069900166768797199970879293058898316207073895069592032360291151768130939018701139133220502829292768743219443491326580100906965576982805926555330153434918274743472719794923479867381228596720413749526927881445992476583007352815759413633076672525184494244808507145505197177555409338239823938645453334558487552023509415943954667990010563104973157890099379080311055407483348870240203450467458835317986595658262158851189421010055993853291194542499906392731723412818274959233049523228806260358810659521734788005094225075522804243566245685527501490763327800147789137273394552537031142532373727912918183429926501000922123733672108997469325105585192271353513827860148703541309048658410443741316157549575415512025417437954822768123393327750578713785670806919363801291164712412398672240538377031427570261492511564059287159114205714294669056607421345727107604537935413719178439895125656926558700369166605493937071536018252271028314706255568986958828025272074354185795532675642402747417796539388404270727965734465007568744337022350558954366719984555251926142618635092663620109138440178174167049727180488838728313755447341016151387452889375046325457303087118543147898602907458626670840087648733241168649529865642893927746907866826681327246878462287734910930478184278930718848972547163600823615093597948224271958238903453214771484349276495975028469772754969348561592898128353735993690813915168472366607856699034419499385246925295397644984489131385096506028127674783509173738434759251260432559011256518234580089793759864367746783257076092230125513920270685399221809749911151980023375128908999686383499708635638404894405317014687026390603476665447127360199507667014377853142344742164594717773095804343868294511415399573758269029932861361331766148177224906177243475897813121123187232733026667603514061744064838372532255475260761070515788156023424810667260189511351800260246010416493782990129904645715854169829102562502783734415494659467069783684744903683555672860969400387241557977929172559823083392232118502084166026224164047193666654773466247927717868250730343543640554118884980554600058649870240501663911423947379356568167702300055181774645576431334536326319935118993068438990716516355216273911138078210241043668980443242829261501427830359472106236206311940165963176870565929350733883613191488744820374739398055755753046255836308001808148876956424579267827953439769560932190599538859385937001046576118030323525440357372202548499634546595098158558506769599455904072502673862336156711632594598942682634852151317277335232085829491986823602807147243073333648559642380543727997619367482360553496083708916200461920029012653681055298186265633168486297918583764875775678652935355828241893969393298631004601030246437945434957444082925926187144956020137985147469432992847186734070811914826172440441708062501678361692049454961312267128883730881988454228333098717535723487811849289165869236579256193501102202145841593959138022753723671979280729622102700818381098414787691025244944804892260863167766963197181139455519347795309585017446507044321674031021884771670397309650197649262366152322282378721886846589679217090259916457591145199121983796150236300112574677597453093005015998252293071372126008595331421485921503217401375189287702820165236955330268522619915381113876840733604052426614724774832959406499895360382922563063506146939920839524293087862245188650655287042167294228350522460551161937686399301287515274741037343922038948130298260103123244955835484280795418911313967771501436736233242730416211828373654634630589086801247929552625798267758905790267817383604809700428211810679265396001524453660676845778299351921602487691052277609614753616039439240738847521354509041688435655479487546612699671834862097720688140957165363791014807439168120968980684971651219729624015460718494134887676566337363519635907693115924966270293128932742563498492710689218687849814145031352397500596474415662076153782111418344801953339583647137156932765990253661132245340755255676722017367812325249066235094628924838257182166434633054978762094206872325592151783095369487605393988658477014025813280869840772719122758006590679120357544406339328734711457537260629751455497330669833864226173434753807744003476986492277970565375879966880215462875157698535083710348077659389636240128947324408922348371179610487754104210660097941770406897448647923716798198569987526995198309672203625100369962370928887169382740157018796180900020925985694941710849122491568671766687856412239615638482278657623469528388797408809417277492802719393889327388970313463986797112966019200934291415134517082798507627283226420808409253563384431292456940937336154296402554498358213659407309039387250724845608744556792970029293462282094475017875735961279513064955407013508485881985384141914885837732884374446287409344484998159441481287873753252477910583605081005559383878663325611437227037045890122053000979513629732787694131483795980295353934691404321497380825331273556424715607584347509817177539615298784494516632494731111134549029820037571419154002557043167916614503526938477671996387071903818974267290119850023610690031100391920528955827184144353729837192752702716264441246207335459608856456031964500484329700821347358961503475095409955699309414329349403700145900418113470012331020486463203184313160386749189535091925842735888341711476588114361628911960383956588963292801371720295179364183451379182826663979027746336130589906096989453944818042162588780282247274649071416110622846506432614843163026880643263253857342799184769797616297464594976138016142435394119459671756218992221961729831441585783608291192028601517108882008487451481496413128854355142918124469687328005651681852023769516733194092655768285979159822431881601992976405310176709818314883273346468765643037763743062131089300965139756440451977574173211861968812749068219870076079868242020350558023637950917493611616554112105803709646704771104609334312925411657620193000656510163324373346869514180176044340413158826116076191146243214424683226977878817959102887314245200447230136548542366286795677355504000172794138588394333397945875688822228915123470768542549040502422189885822001655514816218234679417881433032236256696631975120122361069816719121878836144262918803851266644787224584714126640928685083193287562836609450219842272647585581256729016430694092359873499417092609595807532359511532006851712348419094700371515764368285074537001826658558740301912148372038420909095888678091930057079786610992843185010946156379496344169709995188430068757478233740000649132752508883704983578299080565887998498886350744299754008890129479434268796616610408072493376227638294259798833030756213585209644906674143180232825401482798822261363070274585258809630894772760425320170139437745992542486777050856264988783144416447069691866667431129674191603811456822264059182602865655584717452588440349909300765700731986762597115370266976682622080346892169180519605098667402950528712628564364489293245649796280912212202762135613577283176277542667769500604178405356074349965884042162792055964780442839795829052260175261625481966584231508351100269656594434144520255587306208655205041179699479137598900087918859649361482294233133087586895223536474760027727434685954900320418224743837766293943168678202122775558860617446842510619496446360746983359041142832915409134704510445584983191379302242633708656247559625531993059569109027125152783412840872466328582255270253175654765458537633588665530331921161727496449308992502234954122515474238126322994145378596868283228012948206457601126168973963300858524394365219463799105134621345286343514933568069850281333236138541207440777019434663394735063429973594451304846641252827611911818329559985098243835416273284373847145057022897038598446878228435544122456831146470763566621665087975383253086529694228451639692924204557770678586150452432860088249345046577701724853612118334519136954321100202948717693761802692373677108627395392996962082884143979100462443972492681985659670692249375745735682002151046665965827975554330885452135114413243506778457716353255404747701007645472097581113575646557803037894344241587801099805497518759806552911949099595326150311630662635309276141884335755047331958259596605771187359367422554691773252861247325490001928487951753350122562020749771925696597709279428291388081073828131855822616845107381343615374638017516774610552782630270589650764353431680396873095770369909293646874469230436245376629686734839011265227922126303717306250848719686358326897254725851724686431384388078438443111023365443160749727478884380660939409403993028549252430654150906317073327957978998670952041351956984282445219448130273397747202016094216364782709867433123666701740437758730966724077977224256870127284371381127755259413806079413287027329725848941738655555924283462821157245016778972246393535499865040208356496860139682954375795796879382123455155619499434553491611902311676086620692059259902459315342552067655246832650094581336649290020348609066037767935524487665428604908285237456951888388674074417185795559652219185671207683277087332594090455744523831367610767939268019510301257475233271228022444878825406832537267763313303320068048797960848566547328296254399215696555051424012209985736174880608229121701545634203517678530546791969343866323762109683172002166280741562168592817806137151710928316460531896289839407575907395415396541525099940096218567444806221578112241495934748967556025828162661765973589592558922219110614161204866093806586543203863051078148838680493338376901320474442192005820735141915653217974185960190872058879572801907248326479231553239911324677419384111381522323633582662500022276771574488548586854843125449456504953066196755114458196071550173154268285584522598786852613557963820147596103658377442620768725249323182854903723876698841554685095816727199931617964358516177585999896182123816090272844075017169085771381426393697839412660337905354707708426839362311014339232704282715166547844286819226725527959639377128805194981480869627744038889425452477573024687415826696745681100006729174613962794403818940140322774357555664322030242344756123946262337333831077541872119534926953981597164612051015043189083161677611523364267140570553426405363357309528511530143172144457102874152004298155356289944429899489762027040620990391840063009367276730108308189352111676872034688969799649291644070226915599721129406054854021642982104258797201253414795685478201973841143606057397639955474197819240483085816691627066909986559756350928833467956929524639911445845299802093336742185918444246929021166376026637038292560492953353918809923958157634561707425094882868595561865514328455091269967229646987672457602036437225204805978634581391749155972076410509256732760126429814823939957193275504069681452116914924157382237470516441726019839631788928069288840481000082731489646086255956713588808968110636532396822963136856502352197260307680184945868566431552122093115816032324343217306148330300745710954445490754138861860889253631581893209122585715949535665610471050806170546875034466899560095008995766390560085751504900602369282970534849343771177549428113928302419161162876144149184648187562899508068033478101118600441170144371285459411709272079202750646661053804286547747853741397873694798703442237572747162447410229329808508275854406841242485744297537150751391081286493206429761987265144453501192661442766616287987604794527969730781434903601438263326942190700444117421846466465544176949592005016445432432954477781987340798866083255205954729021396538781163326080912540647300915479199854678584493321465913278906255250728012392242082107292212292116416060650587152097467175524517302216166849188494523776324414603163222482628151879474497752120379630279017950184871159323088212795992656872916167246908321737415010031893094633262616241513324907477770356812732468900257274613711215800065715955408741582243481657345905093253799540440539580902247818542443163063153463176605453039628620874855896727357807898650845591543205820761570958751532012446918596433838929570803853921366516049032468698882789580163655049604543375750923435318701446181273784586407726710354221614474326911705463183222673132753544502853177295420174255721335169947092725170919189396719748599610036840847924723746710353596951842840110214293966914365413062818817788043936780095675510770296539208883127314189364646899854865636994078296126898778767544298617985155210511998004060823064431961146636415411991015772228534327113229827552691906444034572634721613145575539764376189851273555648922658877300280400433493934773711329318277853895360092890740903680605955725612933197769860253194735953632586967350666071673146943181551322659254255663347300587890763186192685671740103737996031383983588576899450114529447432421225738581369532963994024190536034858207133833649000959734746296230517449007994501910899470385138617288165701461182445432686830021479956988998288089632792948336525369682049050096054467743935452932611547523656470110075781374832757809780756406761688733197424459958500810491011324372556773237223927435240530542187243109600742224170923538641857730879916163958662376132216119777232579160585942212710146304241874688660075457532372672896177717976589804262594166237490646505570894628475466323027482420682204710658784308304505102310470512628993430569175664052369412237399994584181732283289370077058278819114614969416240561464441042434210437062559895036488213243694457987314316125890385182714186655282333979188342257105444987354209806045580040097463861857507811512463652989077900426866541460335856174828449274103788035460636538939200303025039739046034286917645010803602887599660687988605123920614669570310896736713305448754185691106704135121146715068036777621038008839811299892836264372963674849037050236900540474419865706738048429051424861877900440418216813002012726335066260951437947072291654867424354977974308138590272170570514396086731831701672988879201389979764678880992862168175559995669186209008757272489021548493259526433841603895297689095188516829393438802993361469960589857716719045564395639050702197857305603529901039236904105570687136756991403989442653594342603618344873198819352191718897083785832519371753596158650151502344879300929057453799255760299251337987420990574394019973717944971556677108385766356794015870940464375902984293603642904191857222308019562522206404105161248534696503834265030187752634734969858189764082610440433288351168509044510482199291374419576237958152918301512861748676976262466798562129742760856009677220296733538006945905220403408291260156412559323296601232703419227743492097503892427081430212887070623451127734074033627021478854887533539217852442459967676151181001866160428639640230214950396917384215508459617868486362546182130808086290082458360420821886649680030034043638999089950210981950466128370804809931534593709526854603599066684424081155187142713475931779410865400615897432561837065545999905341508807330421148217549394270278244929963517133857120681091433411931839859086610712268323561770571446720972611494898888546760296996603506258284228008304374601953283859459357074525455887370331402014038215446720992067159141393774187955848803195240987552912375364888498809004455657263743474614332501533918418943121371628228557075319908643352307245699688240930621443555825880470534495099830783877633772569663346672200812545794758570958320628741895307561506158850897795373578984253388276389202625794358987460561609083266375437836480876966111430901413239338796316236814159943367265844441921708432582636434412057733884490037105066770998897840370313305931115190028687702659602368287922647099742816919163083222071318710186413923441261445782746830359453951802182232222342490102773557854216604477613482559667186164094052616904203965988979381995639899646090780401459422184374366560190166462263684162980655876478656975503060310866814179522818767497443305359538433103064141938573541454105290100311190546964905452577986603709574666945071985847084701047467758904825249878705629216505293327430710749038103769889881439898206178056659046330175291246855991038492908533376075009285215021134549219159728006864669031585987850669019436621764431614021691961065057898444916848942358266608298802271121250514680436460286551765669258970227339913049934402477301553030347977705642235174419431154929848033728670239599421977485392486052394403324939301917533977438487710875650092294852744046425267314564020869852046175655646157824732899684809996918378182681437579855910067765397145135022658309527909468364959276319249386414312275057926901653172051753765074071182399256522992747559814445397191697612166117466851790018334444069686883064734203433078143073297781033134300309849658594628114997342545451634906970450841108684979084504646207826109522853704329039491478223645602394925346229271271435934242980154593517875151787388160627477738454842130702660713872284632530781876397322358511098193475820003662612352398327460981446211523550393393921177746743144500118755994484970371140904066323871749947606211453460508238626294439904584985992173125986964710635904090980642288613434125056060257634580638234171428505887893911006308857731856557905703850949669580030964074295860661119382183246821248074385822053435112272754723339082154800150271021020331669377947593593279481236494820395988062396148826906055065295232019280304030254961686109705162084437924373796284390369777324165569365761652709418016805251416635436512948307649478792808333274955073638754273525030155175135137130169803039772581196968607001190855643147894143388564861030235686630640408397555673688261478031610414955285924692802301100900494171033021236615323327126715073228793489060687844570930214211309881902679249148899468416829053625192939458644769002928577635384643026400795506957596046049499044972527236733418185801046555999574893912659553716983834176934682566909717359724788261142391591401086266079467706350949287661482375382039055992587713409413870184432788934125564839449956415714797241188063125067508551860869709315188728651337941161993743117820269347150624543998766060763899449596220683493254403022462177965786684387485251319147646140970453960852851449722289445030019021097640857655950243788747424237814045891210447555287647384329529666805631038040579615713122180735249609107406515464878871129899347128252301801305608165324621651711323301556870470415960884342529088842739328798968609278814851050677622249943014389524390476288293393680376502358015099532200003694050150324345971612213790931560310319645656169379225142866045416716675574714860728437437662319727178598048381919407242801917151930368032564148692875905901438485053073087412273551943609560704661780849889930177006653833452378311570598767328402986736079815307384615954077575258313525007145142784149244383915271419363579620937727888502634632037370726133000004876034986600794922562466699755046231447192747151745756706502487569419501299438995614854362719466327274561503579994165962358951023711294271158204448732975265998149552875551354785456680462733178996246529309562885490226121135854629909551388962974864208421355604110750957897510533589518660499068157293863341273069266391437404589914803474715422381323989626348242595612014641959864337431663662674595517778934597455721558381277703983531215589723490472815047601082952008272009066744627982937376360476694198895187370077098529274722697791876537393415666229361656586806912242485117059831227374135254615356770895752846061160911207117696433639134481998183977571369704147013757951301529356799021168726923481048618398106749231684550783781717375573922577407949035312979691989149223908483913938948213256000715073879660752554429321371863257700319588040693567459148435295286685018451229964324840747536702536604654187440525406256687568455588892383764447481269409181823711128772063849371493743814703831927798890202084423378227629252402341311189110401899542076612432584957701219889941228072688714654443567276878180867921753222342020893415279525393742776038502743566061688035854471414552219589900072582094585281697472824291669251247818777504902361650905421406122481738238073875720198581761098372386804936886139306570648212282659279298475971606799193893322562659604729789564136884495960928019634185381220646671714083787884908142775793320447214689229863622568525147208328767137314696918249509482394216301508499119831016897027852809060136488295024610804881868272413143694745549219666155371687467475022752963922687563441861062952765274858468494991275449049051301391946655440898930237034537540537669547829430746284692932407826907005943506611146466688775219990363799930030450437427565693795873773344854866737813925165762982468589938221126192278616814850209478601032247657399385551391845784911762856607524449667257194143403408940655006347375182175483055074793634918535744528368320497628846316240729317762964954541876750215900401081911715383742257193544581289146842826862980611456584092883267282175400544779084936182425489151226331742851187078119513972011883351378455121061729999879695112290539539717512430407025197107659706642192094920907028794088175012911001296278967999947130771488877711920965611443060326488655916495061287925654825859317300096809348669380144201160025102449968099966094607892236956419421863458461641564047695790722861526694544470038208372295473373992208075865347766160492649932001893136111726593433964789756963485755255314936356449592693077850712471844317172953036560729000448014063236639223703193663136323548000397243739063532858966373808368039600132496979413842788397790498398008114995814509396666363041071786174204599414610795646760539476694470592587193397403878614474006981586244038938148661737939973504628689178557469270053322608353703631874473294322421332911637223311774458571925448933726391785496969589988113978674739781709594779822986259565859296024008788297495427346613937482308789934470228998544327072526261677925015951135286580447806949337926049400221645467866413949576923111235444472214339026677084764661009535168884523792180434704210944974934968174088722110730963826956716034808801445524674128573321858890058245003743517000341032427426485514070516407787756803152166213345878165172241111650312558085131378250646120829430814436047172343534825939075384964927015594082434461573677375806890106419517687232575481213549831590732941279725386421235107895624402894315476566780083984310025811246483355660849360276327467542987555196875970369744224149367292945632936251506938838519815297665808287620668159762820575186102294289618122025579419407436882278896275171855915495985463059102243727233224821657931698362591149692146797858541461263405966395297249473941483342662348966894466513191269062522702501476741363834865139922179634116737632472453727894207454441216486401042249850295256195273044284650407137990367147194852315561783072352807358853483775385753983541142757383789727998397730787224538399967066879693833124087350977731599948515747725792812982046610700734038734727979308529147026495419074003399640257173283218160545619435861698151604904881106130588159683538854207338595707595219614424882642337620637125825875892896882194954745189234178735493161315232281011362604432555637162819301429812090056895173657507767879516678703855374645746325655321816700297694877897609522232096977984257777153475070097301795071339495818211517306269465401910040123726429913385996727391071857216441610296845100112320390885807867503535049409935921895176650284936263169417448474792336622080112209340973611106340989158627183864260664632398558594644671367578357018758053311484353080424985923569138628433278727727674716472288914199494967123152853666061484256178431835983799411629828939988845432198358394452433185166559650256557921229093780690164997988216988652154992231888244801220804830412712287419202354712145474191060160489221253781870665862899914503125678144292107638028065592976952795127510804535411334875508688315804596390870849152587648957430852073810762962584430323308880029719687434124460948456647491845538599336654631537875619610213285076516995869617678951014232390584605358256934992020073862955292118454696937245978125345223719480470959303570765271333347487891650179121871947798237545491283667274282021330516173397310628667680136444650158512626146497557106383716859437668236475149759468797739105020471362436076209621422746264006124073135226382370736641215014395354650900923177818790845278112885920604425168664968587955029241950270169028124486488270232246777909197680712940751410716110197505238609555768604712382818421323454173962392358524008479351891033495998145143397451823607737303269596098894736027035408903518057715877080211100278729408160437117814845975955941015583958366663793712315489439667523420324658162060767979459303263989463243598930694460346305818120283805939350563577492950446742712022154904016303040542899743752833974466577774456904613253877767687658814045698657726371750118212100481998984151191875260068891077076143404908742568188983327856006258304960304200226635845893814861287770966186339841301617564349806815831276219548843831132551070286597356158807823469857733814678895911972158514090521240168082975256096810546158007271381224065469272387695341084006341948174026520916503582465994824899087535123195375976908212067244770310904422341583069566319556256169885484123586463559984352343090733170586135606366526573129567306443005777401658825613058999954139779864825384159717910147249766707251254757864693024151326171132214664211615882336143993182705941334206167145728209932228058921390490889016799344958421218393357060919370350487268258614108253203097035787323033888285848513563774868901851711163828717313264536754551509142908585873575751297872863912633637971456226850172964939007216978966271006903903062565429360348538233172546884837603130105246214267155865408195489264314843263883902324576710300878901335942272842740864951176341878117379244765983857177698024588179494173333929803394134294397321056719067848354269800760100678178489894383073490746923008526530199436656205281764851147159852258287341165174517233995411516472048274311682693889210532922350255459989101066408812744895694450565046999692600956225087133105094871270085332589151032269244561415723949976085762891341921176866324443922870633544812680489414945822596221994354727097719414016956216492707219189852692277744457979128106110593751534623539944869879830406408055791130841060264294545947447753545473583250394338993745216076386785511854248918228355075628406714586189768815686335238437986018498434453563778407569616818353512443088011571054784443503538049883001636335868943172811170694329725439777350128543421922316317669492387929829827579424021548831023738225194913376275069741493812544040003099563740533639826615632021548581180582147888648913158876418740872610952711604392557437888889542249756760128035224902815983375020992909705718336373174848108287940209805696639437562651578952371337187356970247198754314449180813452548056458566485594578432527820805823035116601155402838342654997114629901772799865155537621379867234863484354588565417272281898123446037248278642327091083780108299841898226159422895126335404600083447401643826853301091068191081948853951779701252945456020078043901027713206106323264480941330579999035969822398253285894758033430693485008911311875285553087586991034614109593573799565679065117665177429735189280257867150202812876196050345456696640227371093274419568322513392546963579469873031330050327223908315350978723318718094173870037996442071185904562596977071167480892051499572071253213427511971528175397988652488408810581761665109513827898496635632400683360221881803643432001221300149532873222850304046584749739506933990493097283437499360304929091700318464928132629799696584872465425722348173648358686902984426151973513104584713578376404812668686841289573699359502880961677714152947408116640542053733932017125959733683128039458216846024532963305037340655046318450956098953938702100493817291730475735331221237456339330813971933176723870058974602373811241316926906004240982709075843702279604144770074744808498521182708607899925238921041456223495509610700626801754726248433181867290489257035300934343165224493635179795239797430939009900116385729425839642820034591557812780549892624584182228378229159847920009803267278736441875311648942461951959411490905432644367934663704257426998163443325121183010526822685660863740136827896847312115517272327974782454976295567616288339317618350347262423130869693966950689287678995346149266658772573527707575578541099290495071300173305873936949098819581470079322285941207005279851533712738455823424413831439717130998191925139889946127033998682953428877782013568713805563627067825986422177491189848016893952660275062488385426766749736895816637847168131915425181708501207250821230293553924166960003755239111501680803458141729587583342128486767517521225051577609508816167696897739598114579963367354443465530591077059916864074969792848547969939123263964795934557036136358266854792070077917073755796498440036889253954091081523645483261977450332530924369969272881784037183938044004987121452535143887324477610266633759120213376588822353853154079409701354741125245561348345533717638006310085930449119151371928187274874556024225182287266640756713295447036482781015456811060676908325320450983313150166374955152623849499025364229740377682111434722586125161971841022481387449947731093470562745709544764152702349030323448518299662775979973135416071195262588766393743652283069300229768954430153417910423772560146490921756825941863520233976766641252899737608779726085077573904826642661868885509061718181531260848236491474814257809587284477217325817196562975595578126508141683633426844501414341448791708780503975407398191984367799000464862756703962175085799234985563439109111534488141568573093809239978214184209926122446921426457512258129377811373029447243913903120429032988666649409833145476055827871451963983558128485941391438898929049627288004944540104607839392158541931543116017913231261517051823777451698445990896776047900868997949412761723240020546865326400531319901391750574636035934044867032576396984254741215312801882836433303836549498247718057215373780374675726879771155461405106463439256459536070523027188138359006579101241917088286460762259498552741613548399271411575555452914908204906442555897191647210015657604327218571343515694974139437734999572295367112718483309602610532803712326120020711789431697477979917502548747904637310137671557038593758328522661052755254498635722505229841889175281772189758789482945739129501116830785643943183004209379412684799072074161078916454096108016340489099484623390875882160105721740237806812127308151648819983561333897877549638182466891867382963383291741671021516760387533151228367359527690677636259004820258603808040905566609485450574491814438352475171167418674322968503133802911370935394993399126568586172711547277202041048165538516193750228976917170343112536885606610540596505100512847338578179619258434227054511247542227774273758685592379054919856340496360518385310752184758081180259019108206128377470180485652837418830162198678436568233381755430112222499488669250423013888002315812821706199922923938250573039010765976904176819547617708395685077132501047385647854882307749712892395377498406772296821575944691257118637768287053293534692096645403958057509117583265369651223060374393837558435157340768633107955588770091958976565078431993107489783972157771979268711398006716085086770354090377675567850498927262511814998973949022135040404663466741262138137777102352201920515919357210441518566182512841692746837803260044026389214908027515135700588186898754688349401658253799406726690582209006058518937981621340283469536789291772440735230531573105825055616922781163766241833590820839614417495420921409047670875399784389830039889062254054145911477103573223939348176944480187061490326945120756461933419317469558279196428045183760741827249678438257036082003911221794115253963606376239437818809647785689608426599957869722252378821618538030783107961042105197747904905915278245101919685414828954183929231966013174738075921737385941659234875176862495538320814992288561485326868011903271436468127985317248641158117547327016696157596897760246146042351786184241976441811750817820559033558047260958182148297491609877359052784228845892776935250021834165599369452266511757784479174176256052206746158863890379758849214486337037060872014330849371549226378868837175415466789573083768755683602916802518186311441592687431206481824714608681171885390191874434994535323037769773813233322790019294594733907685466244686440332171576199139232678655930791140764442600277696017289253767903144246099744630288217144659062655505597971726808463732002493966802914339384149497011880178634449566886441755745083776555100637942220404000058116966291291966061065710429540750665292462941145262333798450078803910418695986586658365870510729848194963802060619025277633586619656852011724647782135096883298567605077334264711439201106203277595052811691607871109855190279533778455423251101222744721989186233971315056712547355351127647109767272282336252096477175001665703868548120811285471715766740453317708118373239918785326468554649235618954689463206332235789724417914612416472678071401221684972929889951869095804744910388827525831719491437637416888111210853130563343135508284531665691365456507923586986099455901373537871229910089326881145746780367136110593270299940761579608842537909137506335881854546608687002249211818508664952238410420209283997751499169950981832847453209508852361998812090118644662642114880818190216103832450427763479684425981242696354092171552323565675823636722458509740723189382452205819967854084185349646768592369995496807672153430012437154678304865144506226889791728142797446842150716020713953709667234014851646948906053539850357795855595020501475966105725500066689685259259811566238546555711963337482984420773407147835078562523036325697477183251661039080971268505381916458470140115029949407121151828956353327024359813413481776834645891690482533209610145306662118213713428444284804468429363138400789589932302910420041571611220807227663691609928826868735958083446181060353000288965886254294225601715799337279858942987822748211191893750100807217281333000982753099294292928584933574278434922772348801833394814600699546252290607022466111090813923280120233335132047830370048524698111697021620035251782928482401812911176345054284000952747879372031476739704842590540699721270240751210532525720459497965848959231690296501022721803998574489445023649997567117813493830445948977135559063812892626679643291094725660919342423846852013921843411581043967969653465392988143930303418807496414529943761653272036901164157476003463644332820575320590632291103835497536619508110722784663000823535348021078676402119898471176756363954330788408216675003677547051601866957044058905729880215021022609237598708216396787493385610483634762748702264545458110988960343390993798864266152915602810248616108841434785109695463754347633704937838787832971629366533162218550882784857607839664890278943215422839821650254863807080338582958964794062015991484008376370555386096199812926502168770823894073570553942647029627831184764107468938176347769012256765351470516766476724650545008491260591362795239553893191644951441070754051779802221908352557235660793562309853002485229636151063372263734106948728018225905994677205292786944885046068983716027020195045183465229766211841041851983612453130979805356656122531051744331482232526153626497903257804664622461676180923626312264902698263253893965010198268466312489518309622362067718676353115804306920062449793157280829061655438859447302850727803759280832226491472710047946046901370403679464640634964258570011732872544192418091878807434408314049713455367736711658128358010900629809254502064849915341301038008246079510874365009273919985229153861901830260250826056492475828589425732975894457157777904850176892467780021586244927871644686601220150395329472969481816604096992180790609989977247720043816782368051304840446744834714020335565681592926322451575243704797116500937269412623984386956815375532360296811833694517206040813165212782064889032301330649260826335791948259542897121625310106732090289428406760876946610123867925212935091276778062247525757558848336833952408706041716695152838364269178412905590763384187778276331396219163821135721307330418429280553762822687449426274234740961602080704543932404946824285241296862298969275430641100246306538535996927500683174882289008904733446128418134307801544163894805226770151904212413367596920612010973073121133578487989696537845769990588206594692064097392217186712861013921115000121837861159146032710207677249615514214302286632900676757901007751716513422605343240994190178299092918676230532067503044414277263295658260783115888815869568890878140187876918803537972709673551324485051273644923222256620253465842447900731753103391425325402792136856750223103205578340818565420589048228029900212906712637579073258250288448941929901787387112428310682712264647170871337044014991524441919889232703420760207357158067160536899040542049397902332108524344428002903257337179807432733786145398042569153417911984761877191101745046729969154076067231513352084700626448937729702455164907212574594541684806837397540281952412339508803839523787517903547221539662105005979472515681791582555406838446812235430016369508923666468341816892598455752679460411899892297701784946643694825607269776807384579399960991748616861351832870314732222508402332812667893328738530517313667937384633834958379949081065167429461323796195851887435945967614241688232927013637377228933419220764030665752940688847063854532731255614055513084816748000187650700443724677795659360939236516483192379114610127993001553343303781998921300726336680991393786916457405492627586353434947827274459197153792223170353251702018891268951038750048091624090746688710655158127737381225052801323372990335702733161477442218151754551841957648239349056439673841892638104434107788807067026319880313053077786555769933553051344625776552182386416573338931830109552745072260324078949735102690139842531512074324918547547267397073328389641952329535582863665625918387923686561742202215703868505322773784017987502333960752037994957523967828787968656647997731329875483722270735626495466376634536330496542690223451626494349056943311243015991753728864764133745337580031734559671068217858267240663486471559343021624032856952932255876188666617133095505788946726065436271149403421596196226507830875795712299710627733087886768622244975404370598753212687793142342655927605478508509350038115960434515624399615899247900120055097382468405954008465128012343144791451633424961762326284168978859193346302029169528239944541533678522460000578484857426007569075541308358839154064577909907564140600744372646405521355965725502941372306266074950501381690928977798273185756243062797902357946945031007111204530447740359074922249945164650862140667371029975403575023311383380482030970499718868354917249352126441631425536494823192416250241187468226938556202322899446667874108210022535162904444583145160986227151406743991030120642308454007481783462281809484405496595456107651422617692963359995314837397047294949005606485082392318014138108776729808022472779797448845634542706438788290281931056951147712981369262477833714872115256968145434396524767256630523920963430108490767427729117374103318857572933131365601026901934694623803718064043346211144258530484684271808292315301583720564089362751622199750260722303592430974845009884346345296942034276210013753757443482947748897009103101228139465728203256365243643296424900871267087589310721109042114560356111997970128305645298906730203272790044263065724209384326538999628132541014639584624695273131609202210332964193631363676102663212630701139036914144439234134456361123212122533356278184847774346804035307407916704310993797642732105196691086143136547278344665318917588972559242839100799919420578850597473605556250860659881865857984042125821826550923463360998483377163746143845462834129572347901082903355693095661528406839466542047352780684606487875466260475126673927632022297035192625636998594745167640381322195254888755669579514752230706060075077333046727507921336275787604096272669714064698728996828690587713638845661034096307038803079899103914211915718293111038712248203831601886616508454990406272669566112662049991465229480082234935898121329738337993877382280445580445276161674803040184510636173159064260929001820935914917831588087325091096223217452974820615409345426762767689815160723405735727407428097218790850139581442570655096639433050277876749298372684448003890090935895536270300466078220792418210385327263741708731458687778318489690926134383358021005943589034875435998812931727688866599877591398896849755918391841360346488220238015329509623892507809130405675667091362876756880034795097121987607069280404857273028362432669297219095767547010754170449130434154511286975562106976312853220170409532387705297149339847314023437601164674797690489915749526358852275804228120881539173612236133372964090158240161292807039028840699859946431202260529927706047223406165685917139845910236157423361744971901232026858684876129437007684960334815988479379381544297332354337023432984010879526479745919564150159501075109977188116770236263120352313015393026767529753869939888205949825540594496963032515582085528025002277930831753455986753834193971368155839008154906204223867268662785593245746083823893500034590644779559423180795801855476151019096587828739698648900238202914782326159358822539331311873320581900097131431710610735955827886689499338976005635779793023821556216089991783194085349149930600208970691106622520387104800950860893342470292914111655048473742352787899178251428628840859058395112354465795049626057695311335901980590910139138656694741954406753989736296031419916877854597332274880278937315059517222088927162184515216196813459142830559653855475347916827389078132680422829002856007936105364150343425350754928231783601239213309914760061408761595030524539749870223850515277735394743690203146805021400558033294776990645599062207761246621485956424047923679289438505282352841996271670470399278049081823595231184560743074503367801084984876713147552511661020069406327537395635666659611264456402353098641148778687205310794055336661933414892174210730886214750570909983276926276776500268996919320506367109985390426245453419222218588947899517389830381555269841409589657181608860096476563611779010107345088892389141162492947454203641916980567593423551279172905661723878813082470540029160100976366267253028971053944138650247924083244520090809128523680678134255439516078709028066393305035703611080007566713180699246250615985738624575722290522723831871233482364348117293129087003181537498026618980807309316428620651034737881522684391985774511857102860100596541970678938045691617228119434893716997843368456334577682073253727678712794751076086729010695349577700662305282349356706701118445030454602500301104890539785280592655572519063683923465864302961509780230371739050633661224367758044119782401047121321585888822665289493957737946103260578757301217620178183176537490803446602803973584230932706871222656082658232190719478321484608821441677451207440553410024845324767849526802886383013538943868944391167320354149181631055112826861664267947888342051673579399440607437211201172198307231393103952351066494942423577495138101168138365930618925883573572827064675046145278731388089030688003638430202303374261612114181613808393204816244811655507875832198659816907247194778339004957514182426875296166426600666717133264346657359573811771395690493585245129255987336496312068556294577958343104845218167944576780802213606379653889155374214555771019336094952830390259296176973415852600754180391472524004271487535574455662340444199490953602694844120286651624734961807850110247480001402002039187882097722438019860875952116748432680694722387961318709610792007658768977196370994789247685184875394602351540751554121593953696537264044260299206452080592841342987671565350287008869723777845334659872352074234095835248610846523613364464996431836419381647123390100878012898448741866751805520455827243675702569001383427568776427612890703250846055928118688526319765814300436432184017009016651720023082463429589804867042070752317849724139266637218805674332697558747930082674223687158473157109864569438936818776684237408259166510300223986389132104450339660375343356410631495074211384954801944639443940107431804187638721632280332037413012246155253975470468769208969235913403380185737684732897019244974939954294367561609674547465338441923094946930178907187899005265890466675247761221459715839926731426366806494716077729766512320361664208842112005360291891348615609607454422246497501961899163620476797370172184281119897729474440746973564800331450965865503623205751920770139246714014123271063614336923435095041999215125154288068432831390599345906273979472185342928856417912833565061842004953742256047372573802081183502183226561311060361972064440029865506347644524587165598357972816420652392612765024657510256847833840374859705771268130624415722226186782089146637717611482502821202963388639114913369825930508596728903089116364651838272469753160421399031310581189116932613632743974113278678380734112635091156084467562014140918147517760543800311649561057549240286044020402584723089636883738349239393005265228940443051438020728909978557967783711881287728034172835299270391824050660484392146513034416306507433639156113192458034899413410260552310561660578793173291733650398777516135707226847973232026084725575259766795698288005497568406479366238258792006713315907922404325759131252293749154746221876729630411489361649567689523476672948930462250811486483475774124104169369450338159423276793785155976299958226158681869036351467474746650102900165034797132097639271851315775397021194915190871722560734360335159533816965838821039605425587314790942379181969751316618630631808347848590272612423811610657427195189928802100563377092528583478366848097690448571060753597258925263822739774806359734687695051391584542929511776686990806687489317594867084433320442104079703419609065386313457652720802408625045833285497227369549347153420324539015726826763902940308065100314232443029969925640195858782988206675401342631197155713070172788539310489149013867841223971147689471604987238532308164157145771933555013042128577824111117241680238127541007712529526885280969206363858449474652115140980757033134289903068193328370535677241878059829302291387600620282961515437345291747192286661261275115893122507619881315228406317995639846446123837775482534410048722749022479994983201687840670176693538247656448816408146504019826022555280111469226220229880513251599161560573212596730493550694490537625213686958829861285874171402294335840370997413525072842541970184762970162858221872050202524843546274147140317475564062632565242577273233044014326992589760078708390643108982031791317601190582859390373325621451874586253820287891371881049724257462345918480929136259035822086208499234920849380067961535893739131214390619837916801924857496280832544518608464941908189905326268484948951276382287211564898488416820448283666792992503916448606248098028620425796007084796511291976238794397776801173611371822780622639256436148857012391217050005910846165843656685857987984250747579098780123320998166555902020836181728482794026327716835050788547947273027460097092209768928143809769294455615657863785016531161773787052598980551913146221601157291428493470171899486737138985856187566067776039734620332778235857216359380291479428528263141969933953958836004191790180369955219752237055769647691710408949991496676018985225140707496203626854233664686922387194702482103831424578899419379303257314347025228630770345848440437041133125371488038022015823248146665539114690660647968582866514406692765772265880466608145518316343090641736913124735489345897358519882516133840837620158485868308501243796157064417864641115878745532377304602745060714901727434099716657275994330816670596750886989459504488021475200154041647452318094814737352878821891989004295885661181685987635292625377747328725267479715458210791216727225425159738091023943903741538285038103775650335576639859697505719602216876048509346234145820958845712005926031120785903263983103021982024987491431292997617553720666323217224997334622258902966976649253879032763329183397710492005767651279023158387843942628948292505711410987812520904225397911894746276315986940510832778525340675315769921084242169749113687285747752950140322176161639268493735223270735363742903713521624994663266888471541003871647069740768819065668378470804147545842126799003589694510547540532651658833135223635972662473642327137796124024482055759481990826477078161385794288572349396483047560398708216278671995586310256934021138186156739029646703542002430372422474074198957071229378799424581659349080347423947498574300083283458665076343552595554851398501110240414204811761994776784226291271247222938209747684867868494992263143836007050751995512652337654386475614071836114732439518081979519646451120851381726373051773844483882035202968424868986197022614253540983185091517211691536085867305648882393740432695842664463344051174998233389947975872028453229097764919633797272034416993002920445175656805882984057186288774573416634918837905679318308335341854959226136505114052551456890071423426197076692406418274103727375709467392840082879145043217524260946204765990152283747849206442123083471525772850893776341310087450317895127549314377116921521806305289820590792576476787075688760051406182238004427972016301505869454157429463580650769970078129402349621318691440211398703049758279696378575457765862501724216201693265749264086907008189893706774160631060504416872473871190382613220200207113770314434044079798461515850889996778863165324799526994404291877828017383230477127012329232284948827363772921066191559869547207523269213688636848985016222462568638380001452870017635485651929117526784338698890062281141275892044659940686452765732672466535055016066899702978156648241993284039794373958326319431962391695647391673703987680153074257742589563967302877807051600898481541129310621109701912610503857456897607948268487965530476824074832817103858347279505771968772483059759729535934676337994886594314630973016199135086541648441575346359340611535430219050544591707962748028231415772483166288701718265126384592600712447881045441013653944591357484260648952409087592906026047514841299076410214113112292891497431960020646395537919212339213598723127540203934364615533119339535659141363386383777838509444890741307691900755541679998037712012429678455876391134645194032730816321857092083771679631675382842040705164350589574337157013642073554107789015351262600963084752430740677045358402831035593892576032887337672582515491449271097676522443776744635350305893958642304389171361995432446791511917073910172278413898478016768398708128133793020567348451806318497717255897615698646171631810405670330561569969367871689066029693172425655245405900902275833281162262484640109872317444586107721770761229423695399124280133661215135454385930720390993594048569945767109242758117653647291059670979164823145116875744218934561623841726765398102108689329059506807838073913262456562616398424284368012076637359355153375638097530299375590670497687059571284948434852979628936932256040147206080168686545535367129607483534737873583657644023704425469713555706833841310790546131507790405037087673441316933099206989726525957714257210841032778955214260146869163352609138939089246803953292716470432023656118562642318828960752784488013729440657065525426995705006545276776220678330408023788016285698522300036822284432087158904970513641853117627280162568365702650987763754031764065457916387402490570117882015247591277538692924965753760049131107345823869814309684409418939615077211565603757368712896605718280657354406744861438455214285249760802239351674328838098226177088837102418991373454383657421172451361869426998644452695327417056607627343845457003608327557558240150434636150497203999452878756681650482046087268754184946994255653027852216920148455809472763224727764238110880222127887161481214147155243242630711063243959977581289878109808020216844176312617311527837176513697404716980288819929958903173487524764165399284021992739937743164388713649430689300557310277990846130838851580912337776784630245325753646849148783648149671833359179590697874744508681978996764020220023369784052905102453275076082589956338962326894151111862297555275444663128755090667826977885360494905576670363069596837636935668614189464872637802622008543522378249295605179215390774506259897688014041477704703083983529765351152952892808445140312615200264459020460111847850407698581386966870661628717856388400531578010271645877024424391002596887677188759220732244282371180338480157912272851151316512001655646250125663388250841861803770483396542741031340826849878850801269243080578746864993485763367924255080372915314792194222238663055530487379657028133342450085271026539527908118093609615108274074852876830675414469007611861759827473123003164911642370350894578160130048450965260086529667178613725369705568220865990196883569313751895077798672888538629253227839382130929790356863668009129915555177825042698967240449491055857321659988834724785565481250004931073884744649830733992851441166025078872421864903801192798574457551285512048803426531857020409424598913414235584655753252298372540131639723467184412076415496332313935951215765126806873118037450442454364511331212087243840093149480330491529792263855790584137698473553740828214902697756674236899799092218205403816247791436722369022160004911197183271263504783276224692759810174814604756271896947703758748392959401562842169613816750611751446847288616922564453640358524911757397635954306440229516308269903560822267434517348331996946675761318258248433816481463167132528569594060685174794753604978455652165777600153473922421061547465302552046407877218573135283062878701732989236483967269606438166471258719419611533522986921907611897401916544895938270993109092740103324156213962208662957183581260475656919849356129425213349339548266064246193021386309565522093335935584856383936432853302997241601460543275733117304518602296625916899955087058618786565988548730732168272532145630641346084372069632350521893052449441442799673784291360217718045592769170311300655188170648867751188023523091129570119054961508270672412317943081991280019820510307032088427994415168892762635509792691024559046814651652060074298729518829554811288159658671203079611948006843760330636895398989178105714440980746778332476547020948221510545594736168490689393765846883838008021887039605043132012020071020725838215084519645058909076914201147079019374531470532408104328024441728093920399889539125510272377187896049831327435550460003759713499523456941279227502035815362913806241105930525967893125692340138810796853020479828924445326847807120783038846205897081445709490153246682945972629588477743997255630587413040512438118196146144698520015892294325869219033985154829153257027842205339684655432013087064385140060153152960923680374935686173851979553487309336607100367375502747727533847648374598343213737065801016320306255599676987530248359684002454102202359702727020842494039541157752326515614641014956925133712711357484856252957189108445639457860761551175152503352466124750004714559812935724374624244205840759185174568314996898265539434167200122915964468411074873443230711768506707322360715985452629861768953464711175608370226012224857533269222230785917676296303987394678256737228805917617052104171495976885507498009343301527547975040123185884353041534473178313484163528588491208115769098445467181882347494760922229011470070649094888413005678339985578563657638134554554250940756001834299267856313078829353458876676910633028389228257290070032855185365612211080326832292034615506845046446565291347366151554228156378838897543252508831256144873936483877348087090187175898584328758922456551704441304931205857835959263498847540748363741961992256428979682586911713194855487514498384171661857236085441575894198189157661862925686041867836689551372104332408638110732720237160713488089021624229500299976965690166271130880195447396612722171553229802096099101902825963136715493651847371689974671895663625643850782865978939196736339435468566321497270453042628890905386993065114778354665019889810773989468557068835730529095515402131837357132683844415903229744052762590222274603256434249044537385637058969334388159413370298828217250685689169600229566082185142759018760010519966977283380655233768680219200686375858173625871204986682643703466406015114449060349450373147520157631808756934862468881185533993076009507248485192979590033497662222198976579351080011540342140935515377197722761743831012537503842264263414844576495980766448836900444074985662746607713941016395559211094295525534828633606612143534444903473319789936110119148626093181989453550025825317125394752951559157807572614559574971708735626100397284651104826975316375243794782518166397698096038475823635584161885809860092868771625095793799228504682219508436731815658644327464290598937888841931628146564756447784252931767917081643125952327906490624234052653913613478515856860187938807158842287020328908241615090767820623950023582270390604241788755119999241712995473171871349238586607537089904951290401475054242168151813971296936277204043571664970565162916988320420400448697080060255184405526122631651919238770504797034394600586456898957055908972612263642591611497307782752275346719985194472869741534911039426831558248910539718949704841962549648825192852218106402090725684687132002379619106280726976168242203216413702595918341900851165105674291792528623708364090811274448327351998616284291694669983004994373287497077500601474260377071745796345956358697394961559136418300160588887524352587098027706196996632976923124811345258650334649158401980127494912827272900617556542227604214991575329943414326225770397899261950077427428973428596114174022074652871663498904352438207686750126434093176368898022242824081233315269691113666559317290099005033872495377753452549813910068498174269750883697141931595230824787729611432173287444003709506862660480000143600576014804163071000554079492270635661914447821561736421255407060257297276749601543922496498548976851590527173061858062446772499648352177535778657800335958492375892317526200819180560605154790975712629349578244954177540637882523949109327697924312353269935881326500533933782584534876783781124900724394685307597285519628974174543902920960826171226038734178431695833756057544460758223686716227735229818672091045496279474170579491786270450578740597660417482918935588444187068888320671405993219433671882774824960220758921577620076031210236008165354260068317944834456088663550407222298246556218694255527317972373898330465920950727638874537509277294452582987093290128737491421363479783348499914991750928528608499221145328413351766921688863597690857467902096780410577085570932907756265927142279697770954819756904187271396865939016942347323870793340783692467518179426383206824287653154554722705727470924932272874269765046358419189592369374113037707847974231655506980826898499999835450335462724969505917323199920980090040920419286924785469988709808346804779448167540053250668660518309505242228864340057162721554717622332458830807835758779691972721610374913631771712760453251618828702757412724738229200480999594299910319456878818289265791360100233513967509742760724990216853193342312111903222303529123368447467678609254392950289528711816644133774547871878803463146718887882585885097682107243858004159208093584329026106723887496077860242136773921301522749671271483157137741349587623370870781969379547412284332943440621221238119582303509435499432840161413373861642741320729651269201156316356052330384433877446668463590606697892190299874889222877152989270338734719527317570943138415238725458494010046957298670497030195925342031442657176186031576112860703043528418012771324773431047559816272959419706245938885633304925998111279950522148394862340493181134470327106707057322400553651417226664288478115738364155137854591558159826249610417199046875041189053560469120459969658871377786632071594718589688978977838138034012904887111521562491847152014376842512004978541350864116996638074123508363236240376426048676361493271641175926297829468636428373859541088404822498786055253565887266668227279899479466761622968700225256062609525134858430112712415667963025928855101060818705365259740073550277008227155218762335176289536859485275670604398877287955252438071418783031219032516271608437986018533866243581658867176728951440648236163258924535976558989839828902983622314908476338906926713527836922690794246289553822601464119186716077502204666687439909261488147535156766578906249739999030669923087036872597653304950619145373460819574797659975602062545548536414687723028266789308731966424813207619581656868295900818228781546199945465271320848609285987233245080671261856134209690773356940442246062979389435043588759666908583336184796642967210303090273498615202921889953657419634404391135771791704429978012125082569445540077922786554446658436907193324493182593613102193867626880958591024999496494172569179603689561331574995468085233214968391969454242102882588635950499038455030943310499283015819598938643770454263059496995651794338361323223628049473829863177175522626263504427292333260746825882947152060007577246964681404477896826955077417302889979427369575391320514269060711355029339085238791314351859934380160904262715440433586638980896094460731793927282957738007653562863634043193515795791967348136130314703287838546503355276324028277711551848259461777064927033127370727758741918972797725377439603190872787985602508128686243843307848840504805076984895153304417923816269867136860624626777663691690030564557686820955111299766570262779964159870750603582049315599715905824692738781436201851121627448562966465091800694671754507604634336126718225837677038058442775755345914269126579508009089352273554865977694790246451440693999427735833934115106364968866163521060757718048477183495971299848473085136375562885402124175642054280081009916646747894996477403272412858745237334957819097774590556859487422238624293384791402665597845166377715902415743617907136124928639160448214329644764053666308246297274047979767986358534781555284136462444033466156161976220859470682351129590357609573860613050180498326400237531878804736955502989752614715468235861189215691156484427379658084727718570280083184909475507795073963093618376596959971923172397242974145608910961384800442343469802683094302763435949642640997470721087461375452897465579188270059075057634321310093153890375713429431301860931729966044845429230316524597348990215001999578487345684034129821283203123449883457634686485020630899331461512399975572726545368471895074506657719458739692015302250966340446973451369098399742581438834808188245040341538940317426230978196248823867789609374723670823964953273352115586401416953465255414083048408452844943453741768492228571807317234362577447338307110049790409293504554389443763359107541928156630157042943900878819256377132952976936503949561801743301024299317737247702040759729563573049976629266674392579580964168677780450041178348390986836970235170183972730694155497491829471832792836768222999322500864652338939056798204152116039359382612702075737451609161174017562030894435692418709773700704996302099597658098199670651446857866546633785729179774742078088253467935001665065179257032426185481454830369079629976467713916695975344166197451104231535088484073443929330886474825690051584226303333837893391491453266386841368715008512741292500897215195552578659777393372496380361441709940430255025078222104597903746000573830495404881682555953852208267860722054740502162378832065832380187188316915950352243858973819797604688008232598777374135203025765264081161148547963632178883001238274676111353986123918026139282379859694884133688034161227295924630184870704952377256450215623300349399105344744617199672193465911160240088950549687108405808331000516386582665877981478373858228119539683820601512236061780847033783649440226274576476051513545124059073576829805683761674021920871416178660696528284632124042366068298660019268933903001787246223263498696406244774164050505023183779982485495069086544403762689232946381642682965799662351266248913687050214928970329226606704505802578895923873958807377277863636539760559999189619185198718775013597090564421157339672379997963948606230083235890865248320256107403059234013386761860766111093609216443813935180455040976756584898203622275584966053171894343573998825069230480999732444378566644051741136318772942980586903741605150368821450626998362581126198984089530539075958103448160532562980215824481073071071575363874956310684065543709014523638716188039142171181217951269421478936357648581157301213579730473611359357513821084330866721405807056685837057517068706475151045981343413937296691229979137088084896731844197730253334188530321355857068410425590857929918000315372642982916443709192762429542590799783880604774409684400928535178209997782244768641189632924043404447513728800326514712468207918525783402938256389284241946241492950588676805508764982699348011914132336040618908332770174111074406007308109117479447383935060852298680255031657711668521881687133310736784034245220483493118853045611174023024095893078838335098859683484957355317187876483601633159614163856487982484942846097776395861217348235671139723482731830538145803789863790071340595702967967641204958996582567360338805558727142660926150896176169972071510483610892360459161854254589367577575184154470452394674527763841788019328177453439674718049166504962589617719189379773546876054078330196220017168698237504995181056728956012467675917864610163086847731963042857154466120712602148429829925315235178047427096846042562694553685563830820253097462053052452004172063813190704691523937505241509774171603401393557541090252622703717412121420624821835940450163872035575812883297136300863857533557259433155311321486631858373519296982016368858840675328515108568979116263258931419068780558088071441089731672071828219176867454254929240945603532291286660531800568580566527490409563718625755701498410595340182068664569232632547263480650431066343694234464654821533636063699847900283357850757378333597838687438182459019756661541042905185683682037416541107206030880217407179430606188521299917841982808987520700553139288409817928293200850468779533280287302447772056311699947376503428454848634953610822343327074013591804519575736802021630034297695874008986268690100093110393142962842181436399896259175088099797892683241129260870765236571567303776859949749340337769825204101951887641733726525340595858068117673141131152906640260967831312655022906135830285610277911159385261903887261337639552838232992686326287702660844966667689026889052916927940470071540328082525140110625223703707914285757313290754094883659498104715308048385435526066757205669592071413526022478347329865872874301848324907804026572469365363276465655052748944327787804105784593529319465182807245678449233668216952139910196425783705761596105416789487331025982115031138817469749271484198475316823967146170608193895495069702434267031246739432088246791740088555953944457623915781335536174952804305809441401943246320730118636691212388608697747598366647115079599753271868223355604376729645763465626838186446461398937900695359930789202558925141074172486460272853141912554650653016338869084132369348194949569629988708876032113996017826109720144027946772352344406472860713735484240286162728871480355425063235788650274599174093752842345430710065049762158928764784154918410351635490032617523305511863456452973746861435053385367532855448488439320667189792719416088035026107716377593143515786602260172189632951573372319581000073027646925308213434667010503273662881269338691365370595384236230729886451687847056404745841885370991663196759318245493636055996820663716920228807503550675822027821164089270845333033227161624975066751764090621616806851737798582671818047743493306736581600832587187304143399345091824983655513266567849138051404637460140030018017535653740358852820921696288951958870151847662287882258002609518766204035000034408600919642096832236220283090433013699564056281227405315372013466854774475357925210754993057605782483961684790894944951526753278332520893118917852825921681807263614558950183743044271456896003701712569708192788303264399707985653807221693460447298714413975515073449050556352034860353048171301392199873096292625517092053293129268922350723014872403920571607985953453917760522639536969101775125760783026092064315638868875100734572402739297613966424997071186896696487303739143224572161131550691365919375223443122507988784064509760892816209877297743758199529437664415152139604901457047768914478036489989694442268924252828347581448528567672935790918706997802294201660452633612019161626813128232544382258794181157957555861034705061340628637350719124823783590323816877570806558384844390101357320238463943321065143374551087012381535736435413376064119835809213364049135574617730705155740308686722845035503127528142680815100115119754474861409337568985291748839578300395944159071470993338003201316771926755364132986370748101000209241548425481647520565910800140352379688736530270515945308502841665514687887430847230447069422761045003322973291844008462736986207499183152320362431751920857422930326651255684098091504572018756684018156995404629701448673660226008088531296651369640408581703611894306241835346726704524363488113306270787325314478730913202691759297468934775876575597253876489877858535211533798654117409357798726395069539794418375472689246583019210741782004024002771874471520681129465356446720637607880329726649650413196981449376853824550749098829616066458357758566825968538965354406492615032414476993895438415893203288684411302161389494383391566232199085589655156500419291602281607794448553659093716466266066485462765227882212120211454076131679463040331895035815725830974269470898277614513024285803681953257232892759629027505236241746890045424956817233678326492836394010971072800651457689509167554221057995041522156876487337116601728924176170758710415641687935656242054894804346850660823791726396868586756836478044429807374660024581802953975009378992631231910976946520079652009869688730290264507381606237042465810417307475851871830778252424614511290380894844026621753845561464066376314635522637047668683441479576251877820504496224534841240659873199381104951702240372154264666011411848803418700819651673089472711591026087350207887531103629463631216570419083983276118666468912755252111405396475011894204878192431582976485069093447145545078678623479324419972508295956788519186272123315014472370518253111725258007012167012286328968369337593609825739861180611193812482027282355389866614639960762358986022431526050717806781933358950518092436625544465331082981285763075614199924326733213425718976277858190821573607121325029264178175562084269239809187951584764079278216782510594630963598093482607022294080844001847300558617283489950757473998252395383180668975287877039358543174982715884517639367305057611684000742437184820580863371094577372592870313070966801878901453337247602311077553843253470769394374373559690258390794185255928487607634989902957174396859425368529364203777063037031390284302244432810472849976410821110494928839586601697499587195838701547297078375620065913645474719576874527727425499028837154873673831240285784066139864538543435315073937276709081548144453057832524121173783753544520751322958577584282622452927633243725871414956607332878964971811937268462395607625949056077652863917498866269453304054620455105533702411931811873103376494380063716951069380086393679109461789212595997860961365874782930956284887474695305109596291875620967182887820076270867501884469775169374706183472553543574769621724422835590423280187054654358950891081031693638106365160929511265016860788118677610519099259691070956528157961978339645325594953992920006865777080626628697910446523476993476030850193252290569020224390771874038658743580010773323649577869321537311347587577900329347216515139215290854419657345308199818994831856629404735147140536451200515722694186794810363989491331137222277304407588619546534713441011702433019340637182774346355759174464990375907956344286072573797571126144792109398918542391347398578448838478592002821290962430427081529690401355413575692409421260499678184528261447243830019671473326223430041606782268368663606940689897939577881541823911291680807764483379440493527019838667745423315135563846832199761471096862919326132096750405068831962869086248590202833806890137055073693885471663988286936969636527468616847418096825721575778973020706953031434471612527954586363818101425161263020030322908897689957783934730067640749835367493934367698820467543994813570100382433126011673039725688318424445846017450644596486676069361316983978314957221928327134446014208284162291725256976973666366677456957693410432863147501560879520492165959412708306907993768220993942968970595996753702674226472441924198069956263398385515133229360304753502853389424954765659761364252676692776049336951857819122029986901854339459045449268558138367538583322694176445499188121594465186819981940958203504501919820317960368435025409117220807372641137844197227571455419124492951639555860012564619320935770784117571468308160161692720071379451540002682696601759689584593561800580351376588225131130260583865745326900278517471503631680251834739899419857654292664658072178177424174983209312350573457752136486095354017003090238883865914298876961826798590009399830385087367571916599090218559387341051367310756476437736120705491973232543558707221866530821787597224294236167138644298751484692183961897002573065838232882330651481827960967172960435968367643923610770463749916142289770455456549871418423848155694276316389210520966376391133935787952564056441536662032546052754802233941389451394867941978838613302598154789536032570766561904978755006879937419316754096077680932201547325145206575406773896858015931727185033281435545867650196546657110056488101143448458588880347338042155367055361077070942049996028749762616118277927113699528499842769495922875895792304636805970106886071774826823390312115312975439594492892334113868463191343517240250309134811040795029248507565524282296505842371106440059803312902275170142887992219247520375031207528790188283261818893545053887202846475675747803621100301848959970554360709030492424265983548518172133476269307980579843164953851030988072832573660128498255549451651297980511176653933039382897725213173597894853879740479739061612373894394159738416774621161817006771302413010682835359746880391023174453650270157190144518899939463083915813547309034077856453591511820222326430497522408470369831430036241391028433116094938832769671198090724482236973870265675734895740140623360997765728454574710640974499557009657884805841626072853681095490666115052109889036961394010963248353432508859656348806348150141399692045032467519829918927473938844376806549269896248183672814879051499036226603176440756939885043890378265586833154763572281446015289589384045567418312971770419639996842993234300753950119633232786223511892751050073639019184882593797686319781095662974409151819953397802120387057687730208114327192398788686450092321443349821912444830842529656755623547171497659797449178120477326503042900460384885045146322008396313084171010548632187365479449617060135386378387464137137346519628416844081446733628265426076687836260476859617514341555291523386641976541796402989457876840143703176289478226320895356882079561925885930029439562584041858856036626171741920790657394661399973717531124246930482003379002237484087127747374967864045084283178236142396540491713545830601065327642274951462491550534911126862488268326615752179796091221355317699678726485961702874738098547750521363022491822815184120063636110959387496792077533280063236308088915262251687165820056025151453730631889945924202419550283058759602376261538931084983314369615833629276328497926935463830528359668745795075956769988139185164318087826962316410906566748387495913792530913657624291397772827202184596267933586050497140862862113216863020585087688726628263679081722552487680220191173505791464326312442312171927002851119729004766718860099174544167008793257559713703750810153886707347948459710102049129297425605639948795402937376104756987646538864134097157183298504644056086439572815049518638446978925441336631497476175352605289493809484240538155948828729638249764575279814385588472253878263279300284775307754160640495316974956255191188804100842506073315589625959055589712286663964619020738391750486210719988415002338757631105974541590214228867964064884457358566062640111966544883211714163240840128125483931307357447408948211532937496109916379737658828872581302273782760190759911244915355332134055191134833560776545023644699720167281851023431239100608272608707320610750765889413358325731667486324539103113214876107100484418355185910051101389002730419889080120096986534224146762531392483425334462235395176758316113845382173762175456192452890310691063277046709405074485310540253269480700896064557416528458386251973542441145147627265598705352097215113183109550637624034954364673930935313865648911729214557631290502930103216395749067511580036657905372710093603659310420775157870756503088951213809718146751505183359596332382232709407210437470265227849715350399823713142082046640076701775556041142408598580421189093433560423943891401752848502678192078875283616889443952403230419033489389628631678769185581815224221601765610236626177636435924530599558760824269643498733530009704341586693587443616224830998007705713163231883690035970343454926900471291086876115185079622900063831767634733326450628480271908387979809324420877159664764183833497427461011757094132370333862639955601552621089855410120877784686730561473007942063991547622531382223612567846392495273234096443123030668664135690991207151205711160576909814085513172268065438294175463230637705699645024580252468337643497696755115565319627212645104404143197589888860013987892492720689561630558824412124878529343876417655083095778901597892113850824485170098358253179252612948603931533737618480501724034501305489910592456944160572320766689116652724930103083713182758052325838462544055025629446869794267212217661070580741632382094184409283795419612923196906012663524880862010827192039199206372830934904463146883831491558434456268443164021795547351706592843637903734486564174387468179552893842878576085781760200662904083009811796182164318812758139359711575737477694137953289911001853061986072387710257504079625089533633598164738460552655795583119864870072006442666173677909858817098181242749542555584290782188053127148434465443632971500201717174675729794480180058576829429785816226127202935057113098320149508183668642650956985852679756626077155680339164866065005109092548869025346732338116227238182552793641141424428336720421252618110745343278330688887290054157059245510412541015474014834914047144500114517717500317584373472607795382956896520462330196270233254371908309339991352970391310739152407688140464205565232653600071608115035811566891305246727490351226374875578830063807697992541275381741969175753255517527739237851624749712238335501582259179872442948250745859484529846812367271540689195458189214223901709753384214677452668918914781359478678231347483988864450774065866513835548291677246019821573035461453626788548587870926375802898626503639867842987745632740594670613606553975471159245858258245833565422369838447408079727177560357707365688757350357207869086273351589996372000467836316440882691316563331071238707333152142370693507045003484869156777054366691782609978408807479943320068298226690089666783893333191195822034006933512541296245620857411428479794209068488442637576199148570050878864075545516854219351527988342094058569092677742298086669597111400436042199238217031913440683638720086709870173492477062529385217018622096762858720771076109566630393379786163845416280987921148500813597267447065319906411476263772970984453062759303282720894673891536289565674013295801947161037925866140771560113291238223090846228970081720618887643188044064031130755681894257569988291240365271437391890871173377037194622710515240306654902722537423272481260236904994719731398153005432135095155250763136454738690031462773755412105690448081558570736798459427097491246694170252015184746261942729096553041715986268204115060655875329936897148815612138018444017805323619945509152136892674169940415636152501387609492899018661621290131783894911623278660372377121360434821564351478543609655275926965313205287059276569600155572848118891653613483481310788728170254325393595704343233518515455198218240533953548225514069941141015981195648253352871270909619237473919234092493978012681105746899403661370044248402590075425931675527986451084675514929426297828364036862986743018013624243232316279122746466944385909403752865985528093896092852716781886907171540356954581908375165818130998532068217293808650196214112398656802682629055199457402249603353514347980718774810379737073885816747719933419830643276543712632454761167218988945446483761581463601698615135553640892229210892171953888941614592785009733407865695679379958895867553135715437666465636886985622214177741249153839869710915994432478698798610896129450896846830402439533163033804491215536253029039457230823238343239011479799370746790595174174204285271964555731370067937816051895651072727531149887546628303143430609009293389177665867753126977856120964586534888431936485957864184362513489477025065982085171742024131519789888765705114058359989236047607021007195836386761473003865285672178373220479959535549136820584451562075460539605517083058196948032446728198396498973494738401820888673032902488645449861750022256252599614464244700134703985681177166669958223416456685288305594180945750059298670558179776326909644680493095784012842154465513861095073260434235608445235327283300563058748094485630087106259732150520880982111420026828819109085332122629685562245342390404500151565224714802494665676979957617868967723991066299296884486685134603402517190132951774203284067120373337535276969194227046172431471095486789626122623847394989325045881129630628870730343943530720629295743242560882818248126040476133917323606720507500695750652312096430732688318108612094510013629719456164279471431855291399284078844940205341600799210689643392801882313604195024976097467436372976623831263968083316180133913170541307752703274699465224068461754269074417294524627911250392389239093599087459770379143822252185643486525820298215270881884115819470382497658504230609723656384197031615128471268904296738223683144784007475800452108462560354485896647759838582911686621754019034142252865946498189287091364518087226180946708688291578482416790308564666962690633088597318820625313973039368333948548768166966867757100866323455194743899831321183273448366274834849318887556038882491855563400435023028401486581628489996303288605260899094131494577868791533872847079141180780345566265261987093375372608411601684116231275512489428433171768974198434875813141177037430718005242905051520911782674251926882827798060438332173783327751821939385013829142211132058178240383263987108115827299587597039720393889468951903233970136820504320731098410881800839791149476130400588884726913722633086151157539375078185484031326391522451786194091036536774958582238118298293777459032168436245136515512232233661208113619464501340022668392280539577318450496616876007072487575622762085767642884292212993240811880930924874124476755945682601814765536971052817029258312703299459109364672113186989619191290612404518414746715835553912383438608545854929710504985122369488643404152514043614216887633532132028523175676823579070843662811167742380394576346308843351697488004623100607390491148207991767084539479966187048470310120993130353649259316909630844931957792298687529500778120324786757070389894017238093548059884649519412368889127740291562532699580346578529650657272798729743859347384156212772430774394632541611911690748275729371330999366505213469348592114159374771822634076607149781835473060172424293795300801012453397840031427255045134471978825734495334703177499054293720988529780021451639266899261962332275819519560872616507851975439341433599017293020024758702147741230824840739784098343269902927950698593030671993183317760156847233336750266021461696822511630488450198190558244413278508085392723205001217752541014169469521684697970262330891072782610831370996298168657308645102132955797231455171001583800198572040216285812965674213118755804699394056103540419691211139858234450381322104371298919351443506769333921247221257664764523712380569122639918003851894548800394283116620209334980810808705008358920560733081303215672222450834647602670662048937492155094063600850399112897254901410217690094375846697665077780977788895982933785346085318947032831156117305938184642437204092399461045076666946170550247227553253540146558064505477012591368386243591153628817471240507444759020549658080960650241700505122379504851469516200327476292631343281993352313317289551083393900417208637492116674770742924900236433415200833885036587778894016260493575902434696785807682131691006631218018764442500989322908671795009969785821109901243808765160096748006958206222232910253289585217295812533149159391074901172170688468663874224921549355783096062821929289628062906177812054602052986317068650470508795782457433218199365485535719898029444860767300182863992327091430901303860883069095966365541229440299446405665395834615807935998034641950157863035188351815215672145509664789558448010355909084467256896350657268535879192711227436222719198129941187368066070628109493718992826026789560261124864785705804942318126619571110324605870589420145746043399334919464822639017561037345227187609118167811402827391553547392337795421644504159949714915016807021509301848865820778032750466235812621922429877544633373445048324038489807657835104676735697858522417164974285027869578767054003512250959839936209758032130425326456192312135083916434322108404687355710782453296630320287848034586231687728976443300193030192665539993248653680252197546049205152778521969304141815541388272717214348095280618522292762839362130554290608957073026968572123319026987625263547883363036670931398518362849521453151720088057511408595867774174614639948754496399851717726354411190046336141634675243794852968482391699581281388684233105966383420293863758906919864999256525201299795883432606767141181973429551202909858797116388567656088998002641442328527879829525331599226805870708959320258276741202306286168700425274784958235064657703316663842890575687158866398197304324364717267193619278431554564049448170440495961655030573629828748630968830846695044191099499589191487148597659806380604298794083768948540499419217398382066297632612459429399015617163164297936778554687917692239722951912398903883259831558206701138025558878826265962522945608269457131095596987482241007811106382931840214635657289022407164138460668002963824039047646028751798251277766722571105719978210049232607829449086735605888673920547590292314357005800945283213517681389696278212843476549017105342362772074341319807464528731639914706619046299486894787806278579738525835800544899386497757805575578965462249827439849862474869015552117561019591753186137774267418087862837935469287397545279818547741456123022654817214477271629525819063576124325469359598701944075182856572478296336659495470140729575158927555975066637752695481975718584844813474978458064708761172171859447120586309902988505782077371848115916726776637279622060460623361851963701052722339158671701553240663493810503930068134556532015995457201895021596184666119210368788619427509128936337359206807465305385266295707895445860964642626682952247796018978932815805392703379819630323840791416912251927604137376783434206332331396791396413071927219349569600761280067535219021477321157517401774842849225968339237178649980501750549554820118303211790403889384538011488063235312766349673892822442217762461789464558276021863226530658838267920540774083044978913814362837082792432193795273954354451144988649058380144013862142183919916516626813074667930593985682000354439830149209287235317725023693016839228303121402626783406886447320215352154788876202903198463051373934638969435844807730410319665534886238941631091761214914755836966329022627686385491779134680894329679365711672845166327485125605775945008873264791095311327550546573325323856295197640424921529061800646703140414395690607951398835792939579729898224636193829148660152456451958389265481747712678878142975457635235912067797936782634717199522803525876964339665766161419785983632899341735979484302892179345212937814632539037281596931388319730369203185742977557445116523663452885524725262960228617964738633206136280514383752359430503127375539288290286318077245022816923886520494717614139345701117784553586492548441336422996594662129601252414420492391425499310442649703981073944385060140697386991872782402106885143613588736241265446722566500495267811693385462157470348769293178727070008351873640168601946949358518423650757591067779359424591438492878698744646082461834335094959217787964579103462635394785160188512052606937982552903858222499510776786525893280403991508484585205081281845130990093121746117147546452312939334671944936004148174276961065220481499537168506507298874407018325154137085234994371658713364558792729028439683698247456384449762862016816055668786459348233265531059203516871188850122685062421274161765066617514886531383909327752258255292287341072090756306750599418411210639406234417998374141079863295642361041992895115210701693677545207933401171228465859732091158224235337624972911619739473665862527296758572538257600450493880068760261183417226617634961771504093579472801989766369039385956589437317941049156326755223911729139728432917458627107439291634711039443015608456266587224349504016705887854841042409212107909293123015838188532008923994053698643528569387018784383274550890879336227166262707624461127214600419459017949778672393568446434051378523160254569214792315582993763898724661379852739856933748712385213545951610463746465225969136084495273603546448241470895282252031051096081041105075533102510557905209297380088453843050338348533387264120182551759169169168700244208803502306931190156294169794605351055693603185608486095675379397068043624409524439068443687222648738674618104289064485019220585804848292655647251375625145941139348284909490341925153875948021449092942062551491230095440982338809759878125010390984754221872224617715160290733893441520176059830468543957987390169043395912242858439574499370434382156961213288668061300710173125994881901598822848807824275055632105387932544025915073652216032975645166227694464289274404419187118850660187889226040090548883635789751104203919511218870892599106085407945308953467855227041248360305646140459392837403602072443911176906031776138257505083783635245681875839906697955250984518709895246741428172112807356696060239543434282113546723856990343489868925793613145483313300465136814586479194432843608328902816309866333099757134787773437132790523569242750750984574572592006447996610816864175259717581603765966790805321473043808105330654410622369484871968804841587219448461427352197226928312139918956574735234236737072488407168968461573441449775104108317421559893344085226262790690518162758146178378110979508406025489639387527245096109141430556706271829651166009921350707373176051289019651732686165338218831872492908095757164467714861993894270101676439133649580334960248259866320681635703957185610290447515502608094714917888606338423606648566420466295742396123072204936091014202722145039760714168880290777820636014448157559197474834336154821736055819938404603006202837037932889244483722668208493876503162307482126342364563141946836785796003330440011668634838562173748152104470149393428826337994214125815947857987610013208830095735984263101043582015883475241339157215090127457232032589759336716935738706318521237112974251870883171338811398634310164686818862457522672451440511934444464039293763420279806627502812219766299792848117310378301956734104763168091190581948825998305630694772642742570906191399825636435772052693135352171563901413521373410509441275918655505030154684005954104558015479640350153413021492086768805285379125204596367068862171197178100584074151843854107334367142156721824200656739113439626437378745598901179783257025662685543471235605385779970436319394190296485298362878858201464692366313731533799461542499419615409354323588753414125167628254614732208321006510871590137166121413208544100522499009779858829128934803550683488216898010195064244371797918437602716395359520391794294245655351036237433708217493529292009400948979581190087590050957385086437870375471382326818313415726418480966857901950712404359960008453734840761442128930683135702827503788820565581257586155920746615190600760266220719959023788134881459658984566278614670591374906645044657367328790017577233165711339096426527075564264337148665509051964931216785224243255782043071734341201683579256136304542209645400308978741940286126309627387138387780432340003280937768369383301353190312148441859597429070544373189457301018552716844309589529682607928035310408211797360922984221071655122683216869011698504427186615419201473474236704411786450557496283013070339164288048447590581175899031895864421477582447778054773735107342444168604344306659545263924005353056683631095859477233191551692653045159261795963394937773465133739885760222943151829480505664310674747466188521337418818794625876889591797306592632127864572867236035392453945075727651430198585858384205628692382426621770871977192855971513050361438191037579037321249628002627955249611626220347463180591564156960745969724081134494081921161763009401294837429598114236351828071863003786038326615163092739262961519520254481737010003986517314409845733743375622318456847741629761391313693989780888418745280956104864576512500127665849532682218628483794217518427387917001049079328034188938675977789138351468636210399032076760708586138009409831341263563054582051887090034545589102620083805092773069470901289783859782595111200265785094296371778573177290574641134678731332354835086049243480425738306540313596898235495155320399208467408228651099557546582028606022932589150851778353219719294700041256126309484985605174541215419561762142714076958641507713004449429455095864231851950341799598647932842642196015470314404647874343515153766590777547156861961951522930037959151444772718026034721449591727692448952446025819292761892722894780553826194225744649011969596336009756242097336307837984647982983434684058769112812373696802711420889892510421988397827197983973566401805417245307597097974620967375701551960740671584281316926609373173729614827472540994671459559544544490303950500256032873255606354301532796952102691919987941619199919178743943168626328186949853811562361740427293478096558551435493136417078836418444714610909574983969501561602529680691080373546014056790716139344049372723717309675989812408114478196299261709396832856195149878747941652416044780676449665204101837034174391506482949225196808341472921776296461062675526308754710480587907165322672403486896637831179734848376154691993332953482531216367077715693748668992729478466954861427891818167022479935656509340757860665969001750945274805378998459390375439737459140119723721733289678698387221603914227756826019144479748102887546516967043587591157511421074145729484585209627226097972615228288300253902037071280924443595452233416401212017423727805985570542974329709297792162399556573566783533725276744675765675664168512948580392267325798861948296085362732694177974632385446178109672978996678109394727130772535791609948189778359464244155045570813615392943530050646166277319611511920198870028307393283718238297901347199463040025030461736327262258196462392308722205084395661289949541723875319744181869464481923265769714036800401474301164550380323602084230172238353856287092789272442515710633557397989489664361491826864122204391927979542863706084690743944765556010509927823731685679367822415916219044100513702907884976601840077026426311832856131125479177701722852139056191605882199221079345929125892839687492478250867891857612648361679231848368770088780286423927405288954904161057725641494227837855935342906684207145327090142502608897492153706843812850422187158292453670686586365093651509874688860547702309985705142027737322446484740668645883283046333441020312194579885100631474178940052411660068341936191026489494469291450080379490792464394795432590069181854708182053957440921426759737666990912810553560883111325283000158214120062132094394152578498809385917796535301107670600457249362200396114410724470717144110990254806951431070913167021751099307290791756380204904260250020210285267501006661549517670035523060287370655651816170928583909622189609500807748609736324820175209540246735747387560204931478246878139250597981486371907458583413378439438408525999897974101860622124715409923391206296865374933546143916234383426095302037629486332995725416029191060370904952048794228888478489570862135205628869321267780134999066550434474589516716317968405063256994818445170770878484318857767407601764941023079426229362655691917607459012826244736074305204214205826856372482295096132102664623805674353468785692390506714988759337301124951773280784774902145103904079860780685246357866390062167577348455369580817888542497776884289812940158491375078698446097456437495610032527443604790737715730321434819166377238835340439703712059531258893206685055882644517123715300832272798380347106374832306337724856936182527513930170138735865692294961480670793209192529359797675468596761786210111858830065706190903235012465383198887845343843683985269464941754995150222707242593695153205628752533348549404316091527247582907451610235776991661339702301864993433361774866098040204823754295158884413168309490359011817866720662863112355034556474356104009714704814530266936056404092223614033017077337069942371044742791515743301768570741730898377323061924164026375656436507026584420951496327881875789393579740727780936980206152243795961972570198185922050896091734211269302591055559162041914764375500552739987030634901410317527731691937073198764651694095688768752057295040318833960439818609765352122136847831369887890695710611567689226688964871897338119409643467454853195963212027907036282613969275611917024788462925578893495025853450123239995251311755533729975943806979881821789843260925101552633113465188433154284716459439253445486827210713431468541802755267532258324772586184213128160133132708956947361194450424202506726670412642666478210347830608180000580634723958645350968821757933162763686558308651286308890319093634418925760094606531733364387079636824130067242262090094468620908466806826575245522439311444825106461743200850217737074924178161916196300442241186330094899792030103136711116016185893048628045401773630656311928567565638368370795748504952859905556400519364700498517869428008330843887599925786602498340802928005392793827999126520541777280168311750841751002414531806761753408521436870464972678974821977151086154232693915895005415041450113038398662415862823954494940318160107364308537628418937094903871921921920418416335890668120672392054383915356825526241005044113750747673547042531736182965457391250825719910960103911778366982087381620422808492714458802587877534362777870723945953117074012983355028117800910922927136818878646288095509180194133112264525316379812225764939548157405974651494392865295643138650442774659359181172510966932216162850892480807110573918408488719625130343272525891295767994861789679595358814533537937236095397585662749902508713385610555834251263516322686651897172793742796711083442037652166226809163378456003876239102024518717872933027080661649496846525207476340280100838663534068176354785220152148754250690293065113910948910649914516304797484644139202438218567487525421323500379268231667608070758103583553746331003107191896515667576329650164109045082091104781603181347602467121483350865898931651459003929266258220913858991027128295328139998798365973376276220229633561406320012061522118274725515695215162200814085939499217737706094010973573878775569354947051579976386166098457071227651100255017344720130477059177483482661100257028696928706133410833425981767967653424593618576340709924089128838731176615997853513203523204459141126366497286189337433122700668918831896315958896270173974645300515579945093170960060025247074528289193962543460722370911121268578153204089591046020331351872130866887160327199113946289999447341932113475797452047370542321699649196115688812680799645717729604556869468442140387455430482643513946201097978758529097036355859307094312705482041650185609315647738833754738190361654469408730531361156259199569679753973982729321507891013843583895784440058788291122335918465920941076320278092551319088476393198859369686149450683977534137141856890378593391283141571009946249355730487012940148905720934060188751533693869234753966231232859578251277082597814712867997694517669351263709059315583734783780686826050502527841522371651439890217619879490098475500011276361524250628406873569465695069069167196918008006216482661771136270755227838625057040361465372629587029448569466046429768668831284936964613374968527431680337616170724827027916455611354814946279109535368552218072032344430229492386194478338393991470292436111383681195229434689531616082828425872851773634255457961226146700141950227094525136498611284837005481057861858770242108771075009836497418513634479680267566069435380591924688045468723216935872818048268436955820478829289177524185831267079333011222091094126139394406622510536531313143135889869323140047653072926213336370811682910196036565305071167672403211332953613494453877940966259880818436477964741226635613283068097797076270073003398819915728619558876724876126615357688577598475020596495135992885686298767063709699673141618194469167867962735785070006491278285454178612797229737031554015714158676177221543409857657034426408037329772428734467048854795460911028956281075792814727539573013705035156748763082879412839997100398641309954048074866639214030037411359189994336618487775708313468619022688544419699621142355217980476160085229291810437115228605123966104697863549221339687795712875490273570802037549662443816647024762894431942423159523750973206285347531425895819292887281590112683273269102566821876317298269709200605486836281289754986469846634244368064867310652362036551352017771704047993638167094424696601665278810833206152041742139186891036384740503267063342346562354321889193291345858520188274348071915621076398522979012416628285373727103839917563821883337578158589859335611248297542289691051332863657152016051858258168360144680618679152229094971848985916680207129801390740224383657595442886741315823383398726047601346867942521974529827043191606225938423984476155755247260517254162543938106707269650103959042821036332736484173705192344311133153498821773392457915747118255282948531425551155593918227129130169342212452660279038888080520432416502056377857077272814757669531142210533321530079816723810945297969449899872161604871306180607900090803503548254551610973593988550276967880558106210132388627443103655948274062035643758400337416169098433862610158237923110058121346296322789112317581511756776810549436679788857083624906267103666631605187665707663974974936349836805343102760629755209180603800882475722457482916454320445251514061377863464117377618378945681245934208364804120509895037450111065823947295143112187757365871801762228943318448272177281162757663478788573557306703711572935112302007307501665091468549179989489509918109101146569121521474855569001805609094917725017982898700315467182123514763706977448751254425177692261334091445656480711384364242457143779481608136475570831576388920676839846508880849527246235277054504877592322525148032358194336405335159040820288317479314239235733140180680059291048554861108626727228100837320377898760318844152502799894127494494681104763604964735075698908173216992719441661108108807224665714736027210792967662943483710919281437420327262647071748926517011879977892001175099996578517844590045475421506871338417668142136510535739655382035764408509386915918620358027057855105325272789409842037257829082794090391699102428562113316383109765595998424661399047417212481394722404171326566140704937867536407867578385277927462474165488944233503454190289814206637068089472847452289988913061683821031535466306668672323696629603266063580232438564543547861253654612135631003001876639716423226040274739571285145180406840150048900385573584869671744500911190076366855234105032634493944684524496057714224715887564649212434378804525368218931762564707748989730759402335557417945743820654151845429696674581417398770853478648958084278968786147811789682431553333038784946503637049267040367975179925139718088453318911401826684425596937503940299808122263352607916421351210029140359007677451957196888167954450652870472965800114662739215320677523739783127655909571010993165360775725341513587717716128431421475249754894479729749676509309763383861948381845277545648083752299865487616271503737322555847970278461114274284101695015170729553979917239429986693558992688632002081211615013155719043052350341563945577230540276381184818698160914559194954358933136853279954363097391065681275172047266729513749862392756341793594209074927134799000172396517428105756236182090941435017298626786676238169753253198667230682590932557351020695748072367458833840645131361878875612064126514563887109095990787477548521497760330214708461601355679803418387282595275465443321588551012050004995135348737996369263521902107472164777712313021899349246240416464544944600439199185801605402697408079765566062470356102897001222165138041202347994834286368646578261423378800737192297160439110406802434641754782651735878288006289158659583229769712149253157912897527273483162182793022192621127959158621619291117390102178457371202629400309721918860075175462689542339240537155648225383019752968122848953523753743642994317708356657452705149658633463223726087087126983198140622802300888172171408122544664444690384615303015143173158668801325556684265792857406717840086196510811091207830601939200079039766774225252620129085773755013051980277172790774765138209027447213160665272676431564085711701526821694719202470038935770390472964208318280201655676121591464788783847574216304315894998968609248314698204244900039232106402024885269535460576802745146061173207342094717758153530371122979008045128361925571928649009556426410258255020093763087316753617200381671198768577257639764379681283711458911810495179634550237643815080049501570144189930569787915865107382162634406374678181433535543735492970927436728899773940072096750912482279105932676294097668028207465021155055229442443971418336169485971452673508887333403077447401409565731833395493670941116215149474962901677925083639610761796964297992676520617969579120942546192913155394839376013282315371766269517297458461481150636218657120683634453138791936998076887941817585231082208648099288399745800504608546794985805058168308612203859797418384892262072000903616611987556527483894586901253620104175140561584160762381981175232291191530050665643380252078856621462541628809054238084237664781701420514264344474617472117760961550908149909839763389965952211333648065707532031385606282354118776459460617353389324740303135398850396635521513989465956798429771030509009521905619195471143550138337485428236119410465616530846706257312491374919147291409995225933160174971199388863172883973791251191011002894769790716080229928130821401317448224271220174424966956078550478413228339874684376927004131098444956745231457525903729628967484234418064968860758979384280079468363277143931131027464856147897046242345584351139417568259021095858352194813261715686585885478403818097004522696194703602307066937731989104028372316623040134620465077818059695220773305491441298182554693472248863161746285688301142029808017218374924120132083832070563211635147849025873574842044065659899454420869874818863674357034650766475595037892023586656216948741240127243079653766126511856070879639124949851964623455170233747134450874576132077567466657834889002573017441333276552900435591436872706641234372029696476344985164498275073488300232140803460741953566337685693208927805405450196680843719117176909412581660218444925808222284823920619165765158617486511803952486042572693127003713763263330432040052638284703116488209529337533750202544439213061525515659700702125919415664108830283358213413894166956799097037798454336035017214216566910360492978800524408979033313025073018770172151632468683558868306610675789240093269045786411795542814235165795372987693077764963647957016091545433547334822542517199300149743684063896087363778453470428199969144822970099769893389484998696350525657278305193022428378029303778410149170138081665240135092412820588147285953473818110054931310504108085962986969451393374362589079521684469888661532191684768973240422267390278143810574195156739352664534240722108594315522001454332647702888342093026985782223112288770190996854399842747346937127832068516318327373657019758642357444799321320406732634748644875006808553862938911616713950448047153282110487272673571819736639454244835807454490698450350905190917981923913384684476372558192766503493973377750852345622555252019195601313488445821809732332724882985004802493522034805885383967466961627397440440577036955004290373691107574575722502518377564733937748137901887695426620304626569545862962444312197356489949226289307601186026445369877073470690141535384849324073622080414990178358381816416359796769311272276962024451687813992534799957844088653642500671261317237275501709646264452694975366947679454485184121918962555533502163135495514141569019129930985785046581703692921131957085522384934276343844363295239385775396128092654168979597213985903693627297880079884164228583092685203520213939653415799565605600895911121387571582722525112185651539376937679924469598532598479061965758004111058405801015127556995219191788608887229895174942922650908098230951207767328516315479433061441286817458438176167295733726145097907939721422199498376076773950816855203270975901444693020500278796350680946718103619794889768561785592628556067755639386039492936216731174886886429897203162627201049580004604776260553994956014248866433094506769781285739871388471360510602161103555082403594410761674033477806099164991246049382658605621238431538723789888745535137866799069679585548713722732683631140985031290959353788258792969364831094477209464076237608496312196514178868795648023154049147710083542037882534436942656850971465919828741816402775678076696186863051804263954933903984951557217300409176633771881349807019377982603071501161675356406372478047272563574220991818243497047898131246123111323605727338526847694247708080235684529610806798458399058934938664058333493399730267235526960178349678611699778053218359008131973323803524711031695190089177622518507340346337045346033374371687824066111683448820149674705661295771674717796173239638246633712425162402532378619771001511417489394249818125972402656588440099419532023239860941553589034754775923158094522919943601716831903342136412516228404719786740153931079979126837397069261294586725885456293156825989526142175823505298826710742853988371887401853807852097224898021490466547510216724032134159972047962195162837146103877983308580811475583451072113390071949744934290663118781109509787442165887948731838598637858822201138896625174155849228876745551778249772029622998886747098839088021092118426700025263872012107284310385801914314706838754609848951466753146676592556437267710550312007385780402474005595637023881203311402520786479277052522318682150931491549753837347758102731201787663691515026563915784963540051352585328141723919418078795169965767520498301590736358899964184649309712228920287407333123123245409868706358651459738633970342671276661192471184575595035043557979875405104731020992334749074695539592739965888515984896896009783165970534500285123980107435860590657974712123708931800506231959346138290558753593327877195846544409092584011307253490226313560040378433064887556709735359797679285378044160303585259448752111806442571803831807334807122169804986525701827327056552554759632891557071070824005269674408837538302383403028800455503505220444066709506189503868448015704130027068153925943100476860490397831605202536095651788189473864131289390786976885187365823986230049199223131822177546625242717796598138284604705559379207801842308189489550423052585110828723783879307913081121457082588975847197847722714747892828140488867836240610250795940462919214043003490679855707546233290294575508793591765085810755217388543429623790426278624578643107848429155956976251368511153079499194437696328235246238103723809094693836054810538727042135448700007175908860819727343990266767527730858383930651499216479546530475740496611437462824622860458078921743735794366525799318589666654383363711886644470206106904973221225528550535839485124942090811891246446871136483776922678295788806427027039381797636627589040789954755652396838187229255996724986991619432198205582764829234606427196770398970409901846453759431952188487005337414910302538133222873948876692246558077810019678032657407343779692197243959403984360354600754200706722997755042085947770461357911184339287189981033014355754199484977354847752647198634652935664282235145428442029873298990061645357400312286640504074443231984514075274079593211280725972419451938176047225278238757939268536254927780631231151760905985904442166905792123228213753753722992403489760601607658722064540079885126137793368604985021838725876297865269256761326890827555795461183881397735480063800839271635285430581833574245832967067011826229632300750380269953628656266710281746392790311043710565209961624100622014679737837994528623337417833425604848603278472358520747096745568988354959361515060368270526281192143176167961994429354589742541494267369613324976409342297704495363622403060202765808833884156364417994646672567116373346585951301042892279329558168913862582393152166821364829128251602374460804856131412277260634876131832140409101761977611197274997854739125179053774359655716663297764585279135535318048671632724412089844693515810727443252668664983982443673734325468667218545131843911519452573011272448528040861717571178948187090441915751422822829106799261544073603541988074144440062474517663690313547428434396314215669877201539738807732545405361936094344695563081675746184202336887757728380783944133781513421813970398892836042984558442882237795057602618061463367104726012019953307363351069549038728051200010497560481468707493963148035268884409903575651091265385782465114576635064277326699229693133723907691294876185846833998367581473405470110502478833030210396191800839235603747313868946622750729459669843496191455772760672954065480216030899842450464076327027459989125594288598381276785266067172293501958140058714542269669636530191464616117019376893213172874808286866151386412193143927588788353543512589261639330113617809513315233050471331595219465124365003336159293891646669346919087641488599652072390071786073618411639566182100666556110237359040099835909000747069382688723437057452239071646651528564124252343151712703514003888965602705626937653172660873423241328681344485787913007942021117996577652892847736699797742762404751879053598973910835121523623420999497681678346014070592085177307229564220670842467560053612441760558307334675228827156693876662020650849418394506851204283693221360600815230636361102621557148544719728042692961419276661572502939570318564164178569203177944113474625219826537780138204504966634958716317563773474778967582152462513935986571243183381307580947471246241666055525805144142566929567863046141242510257243981453032074544441958092713218341300579827335616763659081676142144041804366370148543731648552772966773039898122188377286041346290479525135601054864451779144886896155735386182573423014469134510926692010394278072365569977200722064817322411386227347392046058140796774836392119854117140280136402336397412362491331532174384436902836025752714508645405151813032789462399149580962074406874619379672468674326154984025292093939846099024469296383538392000211500853489866057624785925935547618668339342655363025973862697078879001189095717693624525524270346989987293783289441877691854232974483686272460787714535825369712627331779246698464541630733436192642949393289527351054617077916977487065299070286605343120587923089350037717874186094942180802011788601556732846432117001604522493534748977796525427492790895194461621720419218041503007773446896071595312546413781567602452171511277185782406406630763591229818030593312418150680761651911892914520764354549465516954603690249805441142361482414145016752651344182836410575091865195975365660331531546644824525546982516987396090349421003763950038526884260011840865618722413269967865137413330958485695755890573087102685847588604927117719908427415381060094328727849816547546107511802766048053717290170868158460505848332972695963342682087269047480213425501093056628723598553876422593755546700146189537450429321146572937431086344395514167727275744127049417038277009825942777294394718156609935998815711222786953353122857834402080225911245022990983683415479927857908494992301692252523469056063274079269688151832098178177433517704216978480002353816340222108697351342764970401630811198292832450310052439101894414553146178334062611600466372524281856747376463415980282181420563572592312836699762818242686428106162578132707706232846231992540387495528027587664533974834717957527525922747555001312427823754716084286116274351741260341423644925226828159744730639942953926906071876992083599619169494576324555001357961995147156691883121224502865132764542145239110000899488667287306835322657623495780168642457505873247359978075146241010052150650425840811697189980243097549600957386367406417321458785518488741560247572090004927100513318453381498140492315607016475521360857287925975658682328649127363510759376218179043217461058867768172030772192044738062020384484501101510731646999645018919838019664053911492227522671430078245975461935071237366508283621583225931673446345118251363268768728121309099763541372347144355295843461835217025416467736590597087927641391987980418418356371600790153393100379618395179837085004501085275075228959829354314446691129367329264680367630058541344315185644607287226812065652842162161665639657496566588533210968103327976848962717359446505438977968627782234322297203658356274210199718522625706897688021013633860120006738288515874560844038118769901099540036067103543004215865651609689630624035895940504979015771114601554485352472120062170188093012804306599103679326453540770349297157807088318412240308344759633445107403036826325525993385405594967835217654546466622469246344535009687350082687505859603583912561423947296034315984597888410298131873262906458530500467835975572538947797082704861810481561947954386053033035690941168973502424039409303827793372269951995168725759936071648678631634380105032539700720599053797428031979178304954171737935523594846525368289650770458670284932618948968265066633382445739104699859459213527794707122794681131333592877517551783728929480791461017857445658173140574082860460237471599805325688580655342375735571013264113064320741156186687942461637954037032406913223986121369080260196279274407538800534701795902019519412854265886246634338478328557401379199727945665980869684525345507119537757298326378436533745343944288343962350731417010467242954440248967782202906424472504115866329858274632378910309913957521559882708087853155615022328660952538078115856753076835102302871363537685171157546932054295814257885450768032832071591359864455352972754060840744096256784539059477475518841576942480591309857146560723409397701300754554788634368157176067424239260640629096974415858865866141028539509211216245645896493340600314009771445782026496360303459633025510644828826734031207566574656991429613332609367012562201783908731463493438527221937202897688070022974639889388104035186121347837929814003661894637541833641270718165420660570213603670150051038076565091426539522329175058946651172174261995197251406602787765946795676600763478026861952675023165497769927093020197518139488062074478029488348473899984328118636234466558234041618937835570944482620485905999631133831320110177864906484082950168375873660388885457047886382551378374026074504181302873495867499539801175743525888717002090964883307814809631507328542614483433357172075637141460186576262732176603423873629134076998028788899564348908560332706389790507955764722998409387513226985750376022191630635124261386566776078378864283665725815489965363556368909406831948757676300049556018938971315359755560997622201901099332010846923785572382007972916140767121712470316305279672599476774357714684160120733750411294406250390925472429435338102304212288175097523494276415126068801671164149253985097698298301436689717125464963187974748874491461085978559987925537071470821812573890868564698375607245468431090844979580179627511659515376082123216335509816507561839887559063890271751059813391990297743349937243205339914623431381214750610045264930378699306899196353867156679306679169453542698187096922366510686770659044007434935567330167936920752506736635318205287163571548301770909756003606844434221766677622074819436181878570903791398501078996037004289538687952508297642839303830769473245280726690565980656526451732612313610581518158283511652825965557171112964982872161166787290045589308216299031868051855345157034328952257764663737477749671751618112509306805236934012583108145618801995027794689114018987314314006195082103830807773833528102932236724862030846260161875563344706229520117421524036589754074957532128766633539541068301637995122818160916785098002121851982160678641062512015308823263853910345901698152933260302340231604057691237420474951415764556970360571237082785524870242614810640350919871726077750158886553506614779907002058743237460223506487715501226978157448813225897388238505731815522665767886614627507869394796143717372048908585647657173076074183943986479795756046020549984965352415019669135074686154168495794072245238810224469931285138611212802446515312892898540630901731987712535395176477619227490312940412423800427988984636724134420062779486929730798837155436879190811715005029870745719555059415011839593068715898365357645353418601387828263281030174515660322318335052821757062669378170198099222884727438209401179408744893629772323683731003283310256427968124372027623104572001567627103150104971169641510272445232495790768619029273670711003911003438414586955888484869054437082666080224080653438507132319008461687210516741913383364908535334925410673190991984170579196530022768564680708456070225985449921874521461117255933687444498114654977437817339069650267657892317190441929660021224461453010798996701571094580146613485881880948861952986298115319344854717704047596055258121674075185115545519359675363086890263171923130542386560410453642457500945670827287046647690815897476899388665668357986751163203423053568054995054522198315732434292021519675175114540374233638280658571316531630527506356503160813639185390208522387251729438536433502092309122490444250478203293993881064561331558931061348426196385877304433468097693268728820674777208342591658448964511460481162674953090044895592917657581306693267119378967615924632774173614190047678992870475910465214493356841866796270507772822091408278374191010963598265468092514883996888288699133494049672521229384950134776187285477962330275565734067632457205281013597610368026979987464809917554823946146928787273914447140360711773107077770521593962588099440735921637346048886332674143496088079008025028062979317746989775056060622000622504156710354416855508633954112220541339142604500114572731422291764809037478340359606375975559986559280651606115711131973374659809402021510079150046398775824798371447297680744678692329663835752528900143020849408821106127969657678190413995087442248271992159197317924307635961100872086337893739171004569752674289533359603991409055732235666231040245045549002384365955830714774383447301465794508612865590852159279868613161635430517326179536807460154801606086500042659566619062791680065537106801422748860559583519547010936396882969693956761846587907348947857699206080460623917113002135368905918238802146795319846120495071597813515537538213834630830109938969851056531825616681662775780992991089332443942128396450193149530638331701654592635731187502099190492351787824176022370093457123405272539326957854238364138979956027239299440922937193637453619704735215538328455481592558935172351681908078578071605833648833680337985026437572003590090858847235661966514219954648892373423775119307425411011860309866339566094576310443885877406886653133007420125825860549283178004867360482568667155201505471832383597695804517995133571224500882693872026486408499680594415942960749234397731947636658747083329107186694711610354422435173222436389589845855144525473843906091663782287607024929265883848148272879427131907684657379233371954334230427873021822651720266450983975570307967284076188391090020057284560164610943232089064244684369617624898883716245809114436510673963500890916271420284662290144168121601158427654191048983831868959135672494206244447064744440301006075774779551379415145350051971138170915165981034514902745993484568993899885140280823426761121062653667040292758988716617768983385365520672420250900857923186119334722556970505465423099340044694945708394467334711788340835248395121830976832338938683100726001278595095813589461876554523613447745705473503666238611077164129115108338496723782674908122067404184851597007031907362131644058028303265142916749421421869600947177307418449134176901259943500723583564594968965434315793578108425509458027406900378259573248700638443431513513434323417645271414701348459162430507190829704591885779147260214687384297865097819787276651030319292231021472731012989324707889804306023852333874546471847496603089825122979785531243995256262336258502895641259024019290642017538430316792323332529993137043803618713261000864743935032802891556333086760237302781795384237102602465695292301266347096209751389769356623277850847046474822724811908070146179207789646396651477856377181649001997427680164072306865161863674350829159865923563228389812992364628631111976328482395521438394875931412711700829416224874943900792408893930647624223212874016091493633226082309049864525230167291510011735500608872680944956922375480557050894684921495217950810628482490978841440825171245449306174739484147525352954696928259622112473103994277036383447631422928992084881855594094889081670991724821688778148857497611477253646367538802289169908349425668187543820393720145881667382242878705417838630860156925573685683346366801132620902436413613366597268064539068016190175738558289923647263423248706064846522779680456283339258382353240443128352809036661933034715148790320290591569719698638859729356343520809312636387905775209906954283700954645559126658713516617052763147127815540429972525536187042867462324320761132177422533573947181683632489059583593677850277783241541340736634512983837674119506202436067796557144764604682468239439589408194593251286132899679538801228059224806056648284386571453272444233241028771184691757655357136200562456194459268678717011149275013778901791406202813908141528158200470984401411014535037720993103309359355635741680346041295674026588437898306112375232820637374564459025705534983246669998894077120035576160347567868278671619238893397762339192140666295115272905113404755622911346040248372250903966472777249347345201908598035526437643485221449760391260348779894398245238164461963079960809684837714161430005665688721274964244628210606732622637611454808268865760592843619351804657953786578837206595093320316185431978790417084907393485432125132660672616693391728581774516043094591886350218261248373863892236408889321483196925450766805646451272484171226667603710272908498906949378913728092349572425517988744136272989413555531710340439029093386131407800202096098093179093096992934969637447395120137129761256257652501337690660510687762178232059808163479868720789146044863188514927365461105688169529802408395238945186758189027483685812923955746752001338213775890018163838743481014853072354397909416494482484418556500908546397331814065668827950285485917447271718394242692465901403879178785833333048153072380804456714251941590995296089851562318746148822073584832378887189623650221282657083735565259690692733229319249136466610596521010518018879202692594448174553007596958380425067191528512399938578090891577919991204861791376932808990253206980806647278135896928122493911921593296072314135064188860136317875957870308997107128085267856655977249332897584021897673698119471529342127261781164634647477258745460924399188306453307390435730582370603278580987461598405492144750539683800107554735417815210611551662710671949526469891872276632688657730058851166156261953314862981585596354883148234624190367345303464957680710056540613518109102516883861533304519808807039749750226972160590517503621079046507288991695229481260483493107055094352579677049351101186692788980813724524202132012239673221683968866381278821449566789796968603261912964094800377011983206121032700780482289790928087831003085068806488254185588644412356144282521577870449587086396477838389205070161240470139089559744180532710679718658932485876800001808150464548847573280788906884186309389173627754086499268760625973941073738776949919501059883813211842179619001576713892817121697977211495040851788548936222917463804459873259184270625303104433134637126902412001869910639290550591294881701384142330932775691959641629109017893277379287056348898581119663904879272059124659593624073630874586135032805222160633017205635915242775848081063853741985827683072594972892632525339299637763653429107487145750690040371870781020283405324605564271543863118003702715438880879333633516758322257225915078876980417299645838000981835555174859329186056126321014033984046299449079369721754065702090786961055603540226889257868171580848619410386085478939233822371401300008209065382202549892366279327592602541596506219929078608891161288248442905370308990597892517555619648362454859343980959526759973960500048939498150222591043907237477610510264381617966733364463987572472004720315665154825287564500529912139838717052881866252516712621016858094167866183059311721087566976562302593943092719471116454435658511260034951770395405104475129198459194421103121730779997982141712223452646131344471603622855605693198735796980830746017175171470884297892555255914136796292551820132944574912726845449984878815196632494802278528355776942066275179583923720526440456866323771447936285831673419333152010393833840006916586560165033263427760096248364624749465603901555077467525817265299727265268365243035999016866396296107505900298472544841596880885019884750940775359949538600262470426624799861139965315923881219051600208490502551483523061689280312763353266261870704325665668460397182706006061913100893681024478955133019211094245960083591336179987921019087630260078875125573351164590538114446794606574736347063597555703964014413732656676621542339630060508979946326403046343510736723034848016669933704410846089227796165271811953049787056012248889621466356442462890774821357560599991328385677937699116753995301592843279635389398952109200375324162633511157088332752740088179870295272950895126800345887181003911774279617923953980466104614651363558677059645853017951490676170407268230131149852380982452067059261175889529161654098923785770322051884980072955930462547540269340696576405928914261624088347968797504411152118659824500065348936083677419650980093474094842579888224480786372206073691358665973443653756144535200918749411643639318533109833041173863976485428572102107580846528298038250362594732143094771152002007304605455579952032253940446783523041559558439600586722275718947049377565564513409007017601541699451768256447460241183982127215417284467301385089401379659295755375765470021313595060999949938772816535506036314532495131087111928714237033836151598336781257066844752605791800326599327617647651216000455827884499325958570278989164874107226814040508992475588014611031340684867117806140710667846629506320843135392003374236793848934124757969161188724972219703942450328653183695206653843523066651241281570402166519660558358269422031652504119620211679849710739615011746052569830496871544802881665262636100798100827489818313615119243439832962339052282613247602128803349627325623919731935871227675670191750353228779381875364629624297509522881852180909585254953145680418600570967083918885178505363725327701294941177698755749147654751939471003011879523734586709402266958802011969112055182712051726160260209226176620861187596486097826526081545945896810913872420658566467051845955230970032940207530991317233874758989353748221394710509366830145257617358634560187986003174276492551170476046143590413961735195812467361218469191578763386763472936668419950630262476654506079260798754297515353996731379888346462649501843956114039793306379437387239716365207709010211837216464570567194240354202714948668025899988709818963794402406084971504991257179114964291369508557267218379390325220528358348651092752231818772633312775996232472723957563173335171523728087814119804097729921790889019353242056790207506778482225781941092695285825351113504478320034461627126583741686587492249323094569773986398599360370529440213745566448252679066126527624740109969904549650334235641725186623125281162034028353984821692970075878513485843123791643271254828153606392272231862175958361281345251426438377090902603656611037184299962046995356702869782215783398715713484636761007870336579971177680280340835789558015231842320184769411158243431696993379165920427796748725401176583496048780060287641769140237053024240261136235209424445915712496266772103988740350182989047291776761437265241910717260580058969220507729535268621868568081272971049050980911988883384874230160834704573556978547085956900358681157565831858006067931470776352752147325771444508493241531787573423844515582093710858982496569430252662353152948252733987757653838071828875729156787264775869453683552234089056886606553863954843044045093980053648237605427144358084884048287376007245394100175530707498697621811683501638893092184699176395613031230603532265856289487651608673268625214059915951533849662194465508614417483619770690650222122034758454461520293466565058096050147329585773801208233261301547392814140500237155561820393985308017829047813832365736103268969266384292053506992458676836643823613492093506056316663964202475713988951921706778137991271659810975219376066301768052213699574873372999564842213990723275106002998986627323060756066270191383734152172561813657158816736560524156224461708473768104868404390704089161471224400229477269166111040731688034447879054082584450538282228431091846495639048649040036546475031578182540356666626314072165063334309173993405509641086192800535419425866469184208173640140521442778945272937671483973164672720604941437335475426691709552061094628465620774867453380027989715471314907010002280008844800306312960267205462288697065287774685487033765442493707548206834876428527040415193910626500598547618163906483154465382704020287466668737074466632407126309194226224963398073681311929484901315846128448396742045215023955820515815682136688638396126121440505855384817745464431520447384015704440425675657125314675738094908801191596593814456920141373631059682727481631521074074076516373289121883133756457913391604853923040427687364239637478565476663208657432597179429399574397525246363642770550151566594268177374297930451378106517189260250438209103083329360739060624125800919175775481402484450541466764386774750769924648421585254204762292917417602682058760767787826350029701143963551631724486403654707714067445850332139360913852001971125188414288094575012314072451725798491227397149346600410434907265869071861210002409251995817147769920346786685023151021537116202836016318174287282028753207653591722481714540131163600268736315068976210478558023171325716560951930295158628099433806460639251949341774314075405753783769473602922557636170944881825651933666314162991856803106410050890555715769198593513466734792479697840851992435223991753902044160922601097213322326141348397552825052581901468431155831754181560850647419226216385949368220175468506492854816405007301603604714588243403002006287473461193978364465503069623021361578506008390573992807506137232465409830579100951250009627433747198321444078324519000827996315025251437446798028204706820947993756438927497533255117516909847468321038896800216813981056214095057971449494430699106884598703960936388801056986301229076297450699974688951949978906116249894811756935907995564483988234326473469869307525563707117497476983400153958475652628157312119906969317464531816755933842418114720139472005172212650064963501062474776563982793708739595801382968791489409112126868649035266686592588288406323541954981258595370390998410583003995830515297713050806817862336348776480329461097377728000993423384825694229201823281873831827508443904111609275634391002116609083415877874713527229935946652159321078958140671988326529614394656211951149417134405301784707427442800611807218782225558899473824606263540356468040305180325405879882613387242621978786574247164461359611912594668631858811669738803396874797245927018958257979189570658599123476884358891639348446868287736669032052745778981749724821211860941925461893596051827377964392618853723090958347043329217500802560340314026569377453354753507200481762158271101204687997783190288570186952411592643227431259170757936160082842683197553343141387897414811541821964901198768404633309212379705496233244524439380674574318284478154427942893292318240213718732617514195830607958528655014935179257574739873109838861277839330024272361683929417709554003830748125311768730433642222836449487154054205206970199833303089115353038811362416378104732362344857101994939826764347356245938236990956833306618768389325906800522299628768756786387318694882237468345700212915369150980049413666749077285246400611564285550061041313639750007903425735745727245167454191450095398875025911383975853880865451655792518387478492885293451148115495479168104915181120992841153643852973072465573100805727692502313154831376281972033002324618433290323768746403560514706083701917578229849606429377446657208139542948417773735206266155151615985313102151635242263791225992180761179954831987229084874829919770558816118876830763138160533322661670812538958450446368706096378397355219010781414062477432741047309106644999380549404722000167433648653674447253829830047446965715200139462689354035714225121192293859104429251826759997292338151545985118061504125534460744444062864143382405529827763526155242454414804284458154352184592535675650513253632712084738527268587842922355814935028642053911420688972252171075545542704277574059179398732494824784609961327145277437979980082054401546639800191796444743806657214845299678565587818021298649280770745563427007916939020569031096315389357441594693607928090354537657571713961796457353082163091153512152547613972607058683167584117054202753497850136000582032076500849800504562864824140154729434223033801801334025102781302916699194628676932724179527561883583996008742414697780489304112015060995912329342698501934712429070822019928041500554706974438486230426365535584778842221131973709980706711770241082010995065169869173263936150403363959982838788777390303182071080681409699444835947373721736607546840109784542552390710248331532773663036514867679573330331933088204345399059478690890392647388622186379941427672816925348370893497145053392078910800523431358627281171784435527300245457180162954249737652955728472109933245814863472038267636015990988951274336178085586620782080987789483319315255214213907835802244122605430378240281286888558135580681604813089286215450738371932984481112890934145125507561004366964746656106937491357706103207138590213608333366942259611129342849273785021394849827998847870563809783594986987732975596784578650637418010950809525632192111682708898003481544594363353023277641121133352591473798987597475772492287034233022929584306382099967979801270070479613560215844618268098965036453892009214876398265771157176553661067885991094245249338685071135874770753698445848932293922514357403517413776772056257440627206710186107780707119757858617291736737130835497364246323719816752557297139699752486197775712037846846544655139884716734893572587584512172503878578504807699794427057976465355863751180662552045652708300495886652827315743945344946120231739957023269940535482415369220576756176236153620267327581983222222756093159533316855843469247353449208487139511809585018919499183933977196513100800447727178717419850386114243097875482727074928467483402905773676214742374670083851622484252433302924429704519473989126538948108029496496968821036104138701203014486955134167128629928400736929282031001529308776728405958273235958184036096012493564451764847722129623880967350320997408721806785668010602967143882450211795662668413656818261862614036319925582164016834385659585447391363494704185005147516709007220875934922182193401080353114547146974497286990240989219062975433508549641568895983576823484884902991254135624277830019289062871989851204105241461310825054380988275180068910416323478679535749828303637839825331949460212068775720519830355177889823336356676302395839628363324300339706538754708966776927479545294462514124658081234389192762947781362744345552829430661042109848381596623978123374027585624394653546689847373892614795520302819623938207922522798479031982888626638020337088142322801474878300460783903025029763820179721693068957097205395356228024512336876225123227798796563639472955618254688798278298329073307708781180349823247416136330966985490230762758401153173248349214978216249993957126477483577082839258733495263396767095819381173545809277252060387082681465065879208090343880838160635675271137716661574069017405778400719640816947622636663837470671139806119141068651523676042232232575191803588190405065266500102400433838323054097427072405635636074383002509752291296609148267249875664639328332074275135326351690935692763906299522739860309671267047983087922236525156360461869006494218284392996252376780005021535083503309685922799069014029253177516225146365020208306968173681750528062293191297452431258057209032504405238539779974770266212342583681555022077274111664657214768508618704282465742950646249574597807916063055102162638663774999342769305182131594479520516212886072055288661990186678583607281344645951865020051150821518906420085533415723465559824343127031659393029145710553043459093363059270068149142306217201447590015887277325181281862806563334529910597529849176512570533900343197618739133663935272329093799413184376338100119371482697777412688366788570791101380589623670800329880576099223075460645638769582349408581673110616975790046706465753936149699430495573329852900428270585126589725519525488196204256858675436339307833869301038647589649392894925679392327875548050466646542606755519935243546386055423347660697116848423913869614801239077653798764954199417178253614561519011835621505039803829234169965900960181285711622344283082607827980751351605758798858919149700123595132876836095823312162071385619005393590807898086456285593379874620736586044478641552499886455824281187248113411509051551762753865787273520977482459302023305716620085743098791378270685138089188688980254950743897143602130166092757203632910382983582181261864267838014022639891091852681896689090834809469291992702833928695435557230755451165779808480230704274923919566704842749329621006741998135558361635396990504333868651501628048855111570416353856402395382133212784408154597042570387260652954945068642386580663076718672418033262257197655218551504531603725242577643209876114538297664066645595385487832212930102063979656187008811833352400381523138476998086414537175439879492979068068400347320904952986172802164256973182674228602903540986772637105865163619107389903849920138621944094114137382912869126672118642978309001592952817527874398849642750748434973009364108643488284279242238927628525410568761566287919546678156789302816923940757586830955637557705776665572570020025899702033396239359121209648815353281007264061004437954256329613941042714787696816212989517783154151082932050033546193970814154671193384370511398201643589752077596714439386657061776712515100463837477578973326286847503763981025131948525756851441477453989499813974926171414131709600993888664966714570824860210835985841893426144828271219872096668987556806137538280191813467835100304805081407241027956045728948313716605213956494913896282325644649270278808709873762606441607079690518939932320776179826415090429233087567710056842042487470857973335346406969786817945459621975506883310207632486365636428019978962923102207176938897774132706848868337002922408608362213025059434687526268141443404564961291509320266071486672784691711608274383546630581015826275892408811028792541738108294887442590847772272960974794793186388725978824722790590815358455893007010540707273126829218589520448971097916853393536909650876069603927418240756749978502710977440574616282476491834458052922551113433046231143425744208584239770321058701851777699491334626804813435540881900674118342621065109791138633925148273589084975912058676307243045694213100373915652134638953165231463440152082722373548094802694160312842350074896177132188221805787499350773347182646925040765682434543420842518231381664406246136760253325658671811211611214942374814041271104683768754376518239307719736471125788803838748405444834809753807300407600058068955369467465946726716755861567372811880399450511966699619594198913637580320087927871006960387027823335343674841661515402901417507129457527228951092590101817432778191841844851374814564580575645083641656410342516540368848372264972538582738215058826261332341784833996896223018002053114115992516483584075477644046136048735135933726898739684879014420167150352854814230062456635511035623233365172682155696946152071628403049116616170219662294783066548328223143079095493459591598818132375358748766452544503831732159136106777966751820625769701901016717539717305701313670549456057056002278632415089537154110930215585038066242536495602826728763320577795687759398472279267022756302216209325738286021839113000759860065963299043438297070038180326971922426203742294267676538607177385297755973939941963777156979820464016455403949895644894343198741484326112696856103271867453633762701997947408007894171191228234087007344901983470437671082822548290084772079736774266093689425883708186708835056863337879919369206664657900225377039366341750263180071164766776856853646665839858701001353215331512312482931536669529706621370463048167128639408899814748219116555874252598254158541562084209862779901233861920895541490322610730231767871674762208342024886763569818714574189788802973306381733561072549014901365967912072991819218232539659008398713265262164673820239565882422881384616561940141618016886442806486660725199445748913465820576233995872515962469659297127553082090060795485673614429814935510534574498236023002972092554849177924546964452696313679738545214630086439633014254951871132613757759819134715705258678118444448670193344166473681360753640087054661666693767621628428880955212235950325295826052204122128493263261189603139686225027171234778260660211802312327033150849636744516929530818340292507606538088958563452757110891675687675837300581004249817089888992399286017279830939466322175129549761126014029209054676516838272895880107807422861791236992989997829545091290456881230057742128287083277090281625688903069718165571597986484807876334153160102148375723227300987720046594836380042900056385313334305428065074183527887114756877063444570221277742734189099057529150462213137311055432038967288297159234664715341462683327628970324357991701242206560184699591733866313903169052049229745103979724027924403629976781435999157012168447890749461753687284487712067036363217597212063435617730871635633475053526820421718715413514693153613265787994854839321128359041611283385379519865322091775752167205434943966321837307698919137891444696145563964509602644752012208442609139219721400862044203438750606193325600079917827907641350532060455522978119550023572875948110263701838695098373064766604128181863587947664007120251729922666305068613111179459732727578237814546443013427450143616045017502506845716562620288826201413249025262947362893211057777624938534152976955671431943583549941584514517430895077404783931363997042970277213954045758865741062979457342029696817983635257319186552238934078748298134265522508457193298836623124870654032574392729183051465245470617063818311643085876531266959807426301085485429161134021288476388062932159285618244422698320512841517953528758852153676309946756220224283518375870615550615844993363627838999794023259103422811692604688750999058665607481272134291985904995487055270070341617797582051217738408458966092996187230901675512093866020435659732376453064605382310153080719193446505473750790305839048808415089588801637653758322122219231604846430655770778503417610354636032469172442841799297757815121896075918720654542878087463847401932551213338067064413267856065667291201221931136826065447607368426438945807414428980633962419974877736515748154235024339483792656811369653888893711635414478083007933324489642564262590351441990782031881421201180462238072659219576473996199855809447790751919368721690688779579691415155629432577547507809643276434175326920562618271532849784798457559972138873598331418121640323891222256576012510234138634977256517908151044691323075390768656265793655366679362508319035717513112311454370725663405430690952356367323797614788758347300387220034507677107829362105647459113106406229338395409896163071195605604750973799215655263586592341691520877277609392890272904284953611378924287617360930411880484318939160925830767203673512132303881634997890908856845167056033978736570358613183300461101004550047160215983157269002698140310873862923640452310086004612384024036387371758775409215247074404477330223989226232186554812463359164373533163749521274873892441398712094510878944549650516966651645906277698700808778244482912413623559046508199413304242524643508052815134824298302952484416096552492064627904729764690532237241996911075797747255764616319528116101040889873020204497354935870665649786876626987239434625612866425092884626600994130378794555652098181857510801796056356134950586201210747139133589957946908170919747821463815912831443530297034270417376001528655475352424860860711450203791628180448056231725085829276084244656476523100438792025432211269577648492497926763529311871584650507629268528966545006334601309922422639227863010498536387628749685203848837833404655219547500654392656462006797762422228334833475313033932723582938065561332462817044507010368207297697772556859229211987098514522326729560222213857296101472137908844544252924878619284565197558088322116151767881066857260350822078683009428378063453484309457333521131772621342478901362074457402778370005305137319475638540021270449959974239231076356557766999473465786479960080784237836411867102535290825981316111385940104746524221173196287108393284693538617495922016314902311428800633462657406585352983362300348580918881170268028061923456122865071144729214671146962613956552959496488826537535070305208902808491796608735199460483827626680178771479148155564146276493340331040452663910915417776950604919550390991566061645510971190714217929408495581332526295186707944438430738914307112083063387460795376024466350726569289225483459645743380758685344389041433338560676740350116198557546534866182046975205413141749294640123913595264840816506538529439174289035951236496696272031098083840449561646554336562177132616172527518469309759125432399752635586776324827266037363827563868640857377914062990069036158993785628022224432417574942130556902306783878844528374014623828583790146955286461326074061002257095489354067613858680208497377616530285047891948276015520881923068954876701043031256408402275842361139989485652214530699136328750075106261449707721902623319801605228715910247241267921604568688902473411695217736174515425699171630771967443523856010260241628094332375615450434124349472926590285958084535188929652403772603936106845661659592696757195772978914616443769763901852070562077928076859363264092967695711963486511188464475716777907565384915690975431286099046792262155781744894139482945370906043439856502204727172262067444010080915980228658706571867210718074011693877226298432685756405474777050528498083132277776387054713718506342775989340819743241684954469105061854562727028470567958080777581714811496537293909046470161336537998116155541564220043246617706147084365853954342081135753620037070731649623490873102469374924601367318722818670700024893106315258322319102848074602156959111994857032957887091313907557272911119018824633826150960809628076793111887527752957783890792328479137000649383094558706689109131000578913777997178786883691397636316791192778082826066267769177262923354589650316673655463300579269900470886877002353940168689436219526637045878898837916913258929187951077796761688030828242910297053822026683330827880466617056093466227055043656742290601962246141058547746418942545744499508778084672480396487017524258865042808321641287702859659454655065036711408108522615387458315223455712804519551128955108484221818778309561623281524739579096903258749037765161134666921354714419495071355296085898574009758552916722552339960328510429307910072449013534743214272755961087115646607625131110536127918208654429277560709828324594387983323351566626121269688660010648225936361560002868576561866444022620308933560741163704648032511786028401252091576154296593878932327244918413805058128365865704522198460624582964020634130355575822983372607599437464349036139343005433513008634517981297822093158693608657351683192060491050177746193728896654095974056225768122827774068629133969166000903832999801438644551792805006379253738061759717596885936580976590375340463223296388406267188717109361446364563717892090176590553904893208466815689270598114998887528236647991003090186137723414457075332111935115506568240943268183310759318753643591257247108291789100097160660925697764648901030776961311593194597667114872582040256979562459913650835513436756714329928258795927907575701037568853975981961820047086146483698859095137372136536978558819408992822309392710692054676653380668083323747279544806531019883432950350450739018810936012983015186856831194861290161696716897509519073579025611503338457137227654074840274394331071057859884706274842940184617113977446048868750380868910214033645573227399577532280412424649159375155812216301223154345014813494058619635984365909556008780042686082790271648416522737880589927205148097266194693065972361251414718685483119519099195393341586252050510581914341130700612482044667432748376448992039542005081147574243232981594324048719950754422795664105496491881211284876627135056253215720787234483465931123811791530710168470146597770215523788483863491510556808115661968388022101622318811368649753937756679167472520838640842479792861262093760406858501918104360671673447959945772395209956943751030856405510191094519388415865327731268584253236610327465021579445312780048686180506859014117657457349575352717365188541639433798393502719861496734051977391826976328258923815386600654758883058414310841997260740707626285919866177949125531790066200967238166529665408247392926173835874714801137790842209133377409200419655676796105746468138276544282992025916887948484297863301724499860971024844980872662741224836424839415268300363347091496590020125835143285443477002064573768180061949711394472727582511557637451056433586094515149826503460164649996822935241050488737612962014559999076568459119465839586627561706150057147227380419884848443974306193500535088384679781031519212098053986703370914294491296074686329645972111713056243687203462127362872900945656126860318077514866395806241932997077426223994806916577822178837064025935172421670530584065019872619795758197895388879742002356192645113192402388539099453869297707371433405528478422556035193969327867492736214371724973752016288504334950930959741773680894502267456032774776354654286838117811720317137435630374285676776956400436226183346730969482242901029855947095580711895502196355422330804225106792633722325330997887988577398399971103988483576200317602155707596747591138254642154171339507507377753986103990459302920891779168930596747555076168137848771389426359676733973500845982965565818516851280974036546795213193983474641391449553772594889343617713126346300650794899166315360543706608101927613832436290380159397698014281830361107781211931970775809603704453755626594716546987405535367670435471719426774241879911125720542659113104910423902376430042885222872689489546113318375466045388963270190143422844812447389936914073440794576637953066141879626533386165062093031925979331610262298456903440923313029325661116784580216782378382281729189392663213186083906549384867796758027294851483848115785608224889489664946827293450132277534955612427954118300935812201211876486189762499447918335300373132750992858152412245856358058506180767722528792250709153224125552250113223692862132453000420672717564376329060779837442039164718064054055358564733327959786378095931189846750712419864885072904595211353882223545583402358465325480983276629416516018608678857803375432433579921470732178291757136282774051772959922891390269060072554787484533130201370930091849430731668783916125639029564284236580644670035893543003546216355656964765625328521891444966399037118032579163209616569977796148811771644730133509125468334691093279558438196502869846371928877500757664837668344506066842532127965108102959191564935224481297801034758289252525184215039361136206962844545142344435138997635008296216148299077934328422556032978553454748104197697724130523160003012397025827176565464227571373039434550179258701606337866194664754215155808871711420901020006836081691044937305099518984951306263381448923779008011760428032887763821250103599794552057995988482792878419249594527466506740315839532403980017697395426613360034795305561953071908458360785789723776451801725561516023472465652294754203394963093028254253228737077242627598821060649960655591024807007717536885299564027148548503286538057249606816925960514847869976416884885362129044125396981911481631864985323513197816931770926457312135390310741715843295882461259244648213792195875115997316302901604433009216168732359895198672960351641299723521353176605294541260366393057817029635514294647920682673684956702552539386824748117595674680196644557195878017183767886819480147150660159732574181842289150364284891911236822716645051735179379693634038446661426162013364396549443438346837914396185713716943447293879565510851520016806916692270739473000247791594177787743714356686010361351255688106793201663577075771670612441642755893736476895243183983971485635847682147087088509909343626115329859909707483867853953712146628764433981479594757352200630488751024986644309960327326207923810625751510126250843998954251453917838432309222086612817873523033366080940373674012686721438739966740977686837210549096988295764265442613500579373658143199772982514888297420763844298138901338759142428231164554121657349782199722066226394479352586627988744752882293497094716992685884400095539374799961641427064113952964974073111620643748428002959443196553120056707258605257104706963570310413066695105652916061552693954146190874862995763969358590215732875842996228046509329064454892293904362036214495268482172880827434764970951029464664229117501239370394772581592736510433217272510486517640537999124405391719318339427979446780028588720633425944615728931909388218231950089054268425374269737223605580348998214217693466460951932648197002889336532595306466571720947518414273802065919176468538882384032441624182054460485165056694940902707839309193917454497472192523506201896295164154149887331020853130518909889404796447613215588121250229234964153660991601824637809696622360642728969337343091288483983124702104373773067603202235487157568539509805041416388157581187316795349456469628806920892692405194809432311137926962595048766182669552446146632467597011755256166749222260951148390207233226484810330484147525013832443610638363976099995659278799118313624400572528113815424998102751863826634181170699780941021346365131883682087307423973877363668790794361142527792529061990137723192777024002526597455591098191217719638125136336408970650214594911286795091660354885774043264987595664858966741930006259717941123122060353073901842572491074078708351336082560109974856193595675877050631173160252933993992277701972265510315229267275340965816764762822607103887518084532112576948692243033265687238574844916889539965001118364547338650396883203758851220386716771136011758566918715944585070938645288263158074363120361239148965797772732103181668259046789824223456075738383999868135028579125496016659982506900014346816923011730498507530190987686651176874922845938084792558246452248509641044652177005938098405964086182975779815033378437940335499753877449282257250518085512980947830175068473413709155511205625033056539806502523511118681266588203746154227853848021914130554179940101974495129044110678814413534910200696838075900827142021928832036910956124043720091206046715183150964254961422691451281935797731392883073989695217637687893216168386984835743298492940276990446835468089977624939010624631503640461714246182169393890586124348795777186393581969497860411012022120675797782151122746106171986654070745532308946345715594535646476697406572355562537759414262550806053078614945587202230995586071133396967613205408247837133719333764578625346242459047568624259873750864073066876360097787569276040951771497183000697195591967777276448084468133656637782653855204461164409856617450223198864051920496756416421439487014084824005451243720948552647504817836908019525041935636775970319961595820727967393176829097209548068168081802811028225294482800464037500505010270789135263017394357035703325010255749169788819253576862529682912499376834252065632156068240732881811037462992779988298579848428339302104278885907643832923409184960377245240723903627743671049438841708204406353306674261568630989543713204844748222708322977728643365673770930715158296178979532496549533083794945497668458559458105161515288236166393525937293610543904401693155302640832437800121826253445556070435682254639486911893518671524254665870913066435477467380493894421095241953955449634357935838332415383362660612312462786974346813076997054424489732874617489638047037604598267031434773643891059611958284913898282438384096938481895641326511327152885959328357971144692963861436310995717553685327773383814595630750314259399295630851269020983482920777310905760385886711024854757705945172458727713376119746750255336748178445255424073128727981917075051064870765118850628244150331140707450927122807223045533339600812959858638195524862288117647590674832744325201654710212758393485170617813153454609871625515248152827131029838230434224874681213083662671719172396555794442283605786451752318698986421531728892883848158491695212573795425463572499746839041204651919260318551408280200788721931196661006823424158495974853779956167761851080186366086227426950697471521181119201444921304330082646463454952808933565551377602406707687593700990180346720068302892048912676591453978035151704026499999662749180421778186503630336850297743666169179377134823782432677775301704111883106616015380886720932747503156490299950619479416011342262263029502771960273313563690988701891072423758642166986618620593284990005872982665426260385551146481450470794878485441389924424133422601274724467054526208158884215485773751718616711339155189326652921777790367380041212270519783659320144704431676744323310017176805732516073678862178405293621601473220938294210598649204638768468228068195373460302226500186831759596517522585390595591153485469738547565341266037330605716520302448157036089707713654285661587026176534212719418770789790599697033811927199119236747549950077491384982808671298015778925727475396857211969584732969694604965091608569763675047968166818004523757322944864600857805664247540006917705500516285497757163354736549957933563743971232445391630086208803100773086943682106562535123238892294329502115475754245635535671306823260162891074639594489366440231417412337324704006191883610697819937256740479326106892948967876159792440109010700614376145713605704472583293193390212330135083950044676386888290203038935512955748119849264360226861902183039034776682416566350310502190210359158534482720920178985628319266047290096479096596335092492136214948939557731215927789927543981060448860294793290018551187406110631207954852296769407174567754903123353418431716074934386080450083383001415060490231000082016793048250615754603793449557563597662730980146861879003139500199960429261510923909778027927091311291840343098852256405072732610649559195048483292897044929703156794418396281897157192914360958984108556693685434122647373966064797844545805639827592080253000246025386162673157420130276245886127491734960503312421324309478251070805318482798835458027629139894607475617084283182119481098172325135403521963720036678990312493795688154262970187613398505135003266713232013273451467884358164888660621824481519797336455107792380138831328471042419177987829735298781916416045578222384507740989059271458976033442774220844462644235258949820028081959731008241579045481736401623094489704425994417963440033819701278988198180673264571076552972362420308591206857834428594132655624010396977875185903827864376774929489951173832249799078549402314351164777648717132260993845642595589626185983263183196316849537655317954558903856456415574997188120037079676160724382723217254485508824086223957812732602924250873069763784721602172693867600353932395403586055102108483058998622792190003021158367504884463284910214756364262479677931038080018799336761355629017397875851775707736669702289289818716521742094160317277470109344314929407628784931461700076306171221988232202171445398699081497503638380366721673176600914925451220535142506812333686020289283143571060520874341286727076278624713285450713836457134273511129924842863433181581766020876884464310598771747982675475709543206761390946367058078758466139722316338625389734992471659001045930826950079908677360255371790733746094799359841115376625087526433870536237222771242429639266071713337248226816353675862652168323045503979930532550710224695550358981367369459272680125696744600984631605175624266263417359819994082450624988205954339644790337998524424221594193734009861783821576054031339557164873877895897712946723463122556944451044485097639714040956302043731820364798873871742184508843795466847712316491240778539323487696163391760910972073273739018929247081281583366249566007839613443385960400934891648056678172152507812178265092661627211006157739695135417096816718120193756792756314861746450011676900693959884090734834336870191792392156831913551298989751877148358968601972964221749203784493252422208883126628494400375692974640463864607604371490614354294225123724903559547092848903226395563332332170205293081469165916867229465663459239880866728951208803072117646221960740133933360906578507319035285857393371864527144830163308717006215731833220691100384073365277724362820597212676764964868788484370268245584418971219110200731781002415262061412744993046144526036261624266237297458017885336444296106481281630069836259328298002372960221801112409294100585316107766750059920282733855675093856836996422389137554507742396689765755609887817110025190927551615926075106281988422038975233146350731745383008010994475303888339694415706028487661449286624100295418503870137086711449616707505056602536842564779730371542000221056026715964371534685534034762228334452661971159500740513113239126813272811450193732599149585857979863279116570491598418650285463889798036699238898836059129936325039138664223079489214750380326223472566819614896630344830501237910755564061256636072874722965736410733867024286097074324259692623770842985282925820116631666965333379412900699620791995361809195747093500454515497476606825275430267466830003907855460010805969628193016735483875103905054398289222927588716184359282242233352114425674047124205912052899855942845532112251155317278039498389227693747228292914373041278304763075013915774178582960322542198815069143713050369542105572424587691203668211034398182724636694764791476713658868350762442131230982639523267239480688612899747263715714184337283624230418438203824365072073686213035541526406370196569003973174766504318567158811266877661826854762438583130391422837114169057257580591272651823302256220081136904737322714510447834199575490729914192284247207810520359497750050184698593234855358181215203812544164111496263020487628323375331985024345935538995466402799555588424801548625831089281423755537333700373671144475705522988005439179408092020430848890454946631448516841858717398119951342236137025735542178013614625959402974859644050739164694548644797933555808910666833798378343280505397082094123927151420765103491055373736476643734544267158551510590984796875917729037835161052689676724766704681545882793581273258619166025295742591879342620616470838069236964863596082926587718595885706433628940363654861706294168167193527062828500930591000952693838963365592815907504117387867330563749181917328066724371491947900306796121517309692397200125044708055734482525290847720536178156978072000670394265052063260481760900466087895433266966048267530837604520680758140348045977421665527526796145754296887014249102899824828612365348230860976981630288354173312696261690762364194604053258543252079716595691187538893831588619007082953930442007959146066329834218026427443045663220427739245365224652905546281069048390390635871233878901557236316252652553317258301823760402835507038652868383957578634089064853589553815785905346970347989719581169804956978720041735853078801584374321557203423106428210754845813575142123582584630628360058597907080047439268675708929861679720474767655695190199376749232479828122306059060433996715130935576823652776300837261649515867681317748992951408793501783476988611316022534241942079451157660401157304503669275645498590238372112379525268141056605455742483877366866533180048743685812838168623439342250791571212895809724925071674893600955820374582357736167020178700092056877679180679173655396699727407551539909085857937665790349953726451329343084526548698098512672375163811296116561208605688174429804860717761848080321709828741207122550529232269642112152376152261117604654154362700326089267115461415678254295335901504759759944099589188043151807413712016131238333696076397149300914353421370960636814950124208010613985557054421985966970230431736373187412959857766531820118567760469747673064509204090336697462814095459792730656878998263895866632949018327388022122446417573612025994799010386545798962576913190472902611268167048128096018153482900899935298525965476063367444448096719372349338522906413947196100014094080791116053384277545864519126041857240629286261499283731122755906469220102637865764961762555093936372639709379125195927406744189114949687423446645505010583160877082309657565982231555486646613755615268370720702478657938925515991538230880010719667144977324735917384042355659129825884192883735705528508994255880524328244475901304131601788204120546424798616083774860345725971658883473213912875453962212336462645925777173819266377864496801356729145648869071854860281314016113097066216817186301894228961893426977487803914102352865184096293995210800313656823908088568951305995973831913091270140826272839470390430267788379613192931994622783662963214656782905955207682853159701772855605964823479189231781818474910418243274735970324717107517805412111724330814664502845253194459918732099951752824370569289179753354239985978804995486870210050101859970083376549823968014667765368886551874467328545041857487369839683284267491417019165025237760118749871977532980134034032231132013416581197307096976747608945106506725099777218766350236030455045910280745849470286302376460189303363443867403035983217552199929278239277009895372590364361316463152486511123745742427475238843583034794826628111088607195271894157179287749510480182356527361914775914334664694844871955989832152785596310183476154786062271880634642890403189414951675983986836836907157850734602905876435643252813678381156352359876533476686569932215504982292442097231978205865109439756303866011147144959972171811432961058355452893524837791426387889775079362981774713995756245535021427885126901967112804517921856069057379685481541230311901720983470397476103822036539270394786370715982305769902158237270277686975329170509676908871548764548505339044707045899890586920237159919775432965037594330229683903905708704514293654314713856360953666992566077752300925260914127064599133356750739389003961362015536434758460010462996818637643424054035290003021002439509394184455422301098533939473019801971669757630327610958542245696022922284427134026067063690524302097865088075482237214641224800280828632954640646291113272573383662602113361486045201952807647818885425503905126555783046646669760006522725816059896293598489746003933761085104224385983557744825228484568459322864374214635871819881389436965021658778006277830380036582683660317472690919283020891260996455787203311219338097750717829869181536161892477193149836184134023950162746745696971067404834851990324773306894905716182737412299084465736464998273128226007652849097921275357208318398531610915278462665148320118418541132914649881264570367730328154946810754105940794472507556987872967065628422867720899504850724609483388230009200138354506653012833480113592871619127119850461762557713606002696544990889208624923303242101495399333424187217335945083144137641416120520853165269089513893664978744296991953488716892029444778093114082975342081367716903066402840122255451159090901797418307061262642595157708566063751827117345083178751139929562728020670013657177530832836489643616924018447636739693540748664320108397016939069196172875372698844848054081941121076017022439163963892329110816405931241207871298899079444874255136205673427971098138022580069475804848530278511622091066411991611481886817511082756927429279578590554584180041254222381969982053565751019338598579459151007114760146817025628714739389090049540408863359323644668858630697201173774257556809319781631102827807529344974899524508353563405675041473890761559353889786885592863242954310279066387511424423802016543906528709585369028842177062715540025500764908728461786428882443379737380018226448328615373040888804710696108587662071801933770454921091719698264403859183001366427133948172987634484463726062689252653567042781489087116301428037195825711834899372988275118459349458206026059519916732024494087112605140123461132412336759723320490727759223801351842977269251708418865782643786010262627740916730912350044770891894371355381950016777378547646159561423581333514032559917839916866289276847313101592279327663406582398752450516966043283216662756643250875219997000961299524402569389171148345542878911496238649884116515783243107242727960503054492878468576232906078351905446104088508634949024323543083367126176198136137642790042069253738793335632399158124144161654647392162935966748649014191876261528843445567336506569089262393366020787811296730884452717385689529578317014438465453248694689992401642898705007512818854250308656274968027410672819887165467960978667210240577002708395549560598391639803675332335233067231816223050283975044156693468705998535627863111735944999029856873471532067237231095555571944842211251903631304528955901231708971799534044521183015552709139197462894271952604174918902544729254015794923442104818234431227327730587684435077790117874617874756503502150051860636064231008928818794855991316712818524165743747276035572011094356245035383854317090028608971591742127063938523491561243417136545430192436504046093796669464769332437745987103654245358783322591704369617313841817028939522869663750598700983270847256237852157820220566560995319834022650901135415659648511084405490363258425689502576446007377934023011192622227055190037927531382810282662320920540243219839394357659549471749132346792543166527801859110553129391817285520653196342990270936671459935011989436901041273673488785574931405161549816383686644340456777991994658572918932598946790806191667455982882414782248320936754003544428512813270800516229342281575426516319424343052289507083852721474531225821154460153628436607635274958810491886489704772851310378505636535357692475955384621193880137112660461074271452071487674972984984461004151448351489757115307290677019931941078992162625588356307897780482083134804450039870487201123732708361027059569842668314479671989396877905241148601022935616614014736005194647381605083911647237165453667635898638711314972387819533037846807046342578576914810657128191647551048552755512782774232477873969921463557607502336114880450034791258891062113052080615517126638505455989712827855541219092107751255174390040340882375403539725590720247140600017229690056625966140487449054802686595703352912164678081819961983556293612959635107094181586961322458358010959306417757477040691300455627462750563924981909640036250035014501676138685816808245413862754276782852830941686305175334057961186304334443484435987984805695522018942321391269401093850630492571060790994479863119018478469754080435312965202750150533303123081282906375554390299166981041828393308146384779037346034885246147085946121075849355597684227184378703112313888372752305835392339520347376283987869018824070069980973325344911324669676873828730632365269233989617707044901478810884449703214817774113622173749145447556198397275641740651000489322526923493231521501007917340656251341892107119146343166005714710399015734426502565210156347028444507091866093482994700209051933882602096321700893637882844249032057728325916433845620159383356721457717853852766881705084103507348591904158897784443830201776865159221891466274886344812920816082233134445446530284649340320512784499729099072210973817030950305260852481670949350882066114877138830736986035009891182845588913662759026287818095806151017085023165343540203708876448441554424271997137824301205889386765008447543919779589382072925941965773841479061790313357569966310567146180249091699413747692591642623139833090395328279750520562394755892773007121976529134415373656413789731796680424329420041828918498554653554174397288241676452444411661089934365978338978686852098657034496958588642998384998860391435427629281243630321406089537907562867275236463744176831722752874806126930586758755417773737803061607388442728216722908972704824787604069808916624047109605035871772462238206165337070930387993348061274163860726946175356744226025850084255883639112688719377208304798426184443127629512771036984813518195897004689445065748913887684592623566736755754581902351664321168282719497872136551353904301172620786994299944606630746018282519004202391268358636839367144806115082724307594927216101277237586096670196828378090758647256459142074742418528292547313642779985166313147381217182996801903529311442957249306981116378415291769529951457613115670631410866091002378264415814440685402345789944902395592042278813859614750196926220302831595071148150859961066611660946662631879168576440293350161918390181624120919235749158824339181129570053995317004168846922653225878324184984868341209354383477573022327884617678989429709086547709721911749729413765706705304198547011959277296946589323931934745269417590622041748878569205155602109594821850473327678367619076357718866526722198160190809530153505729471248193273157061793381886097266345585090962197920997418169555437114012474234887718800230428346577673115473858107916690686563833210314954555724556978267229284108395675137494606957359009128895699296837582682972538469303138882419640825095012506681703845654693976940723973875356503138704927743774539283678257683306650148217961399779361130691420232481816775873337072229309796402322242904884770285781908310874290922688131819096123378364005571316983542819276355861624727100465215301034536775821561032593860585204664572221024539803841535071745258628270691443100921646441734613609879187657793525775884999869075550160019495128147948591492546597284336904273237057028126293834510049424959320597560837786960994002621545526777683831503440460419082115919334479764295716227779559112210973185612020744182382419107961543875175756456100889876660643075021094097292487350495844268883790731840352766919283362880744040059156475304881854480375309988071384936283892991268455972227301694104824301032132832637423178643161218768412199155864317152078192577845996410435256412128670299837210615890140794872540379360140081761504186816079622250284075242939263107735957077682638350275176856130286208044314668298874671346341614410647153212726002086838190024577876749363963220095923924991679658032195750016924236958766797889652243687055080234146032390429415993507369631699459502293729881839217736092014349876613176438333940801305950390094318146570005622848021211126704271074323888568058119534288412853366735559598724096168337552043087693545406314034857305631331730751171252752212775701254233400233292625097288806994113629425197565674347186980853387225342473755662207168549535951124814852943331357308678552024872029478491648300634080231904664238500314205608986147892721632580311343270717905463037828650119027271104307118994358566839248565273665602765313795446167522653691201598053677765790539935621712275498998350242300245927143475714606059390375566282228868407123432476106640832775997485281831356713769250645013556347622633974846928653861722679399495556654567515998785885102885758747557782714188706620039569524029101509812356841959899166295517856104794266336434557754801715156025677102803928956004712391610453422309716863029236251758084216761100408251222244480097383073732829608266900906803773558967373894342948093294890756776336213463952960348530608688360875443812161271702489945848452201671331169916396408600716954634189832307512394128204367339248306235683543279989647046068752402315183741435600472982507785300214756429886695764050542180040081302905902661975325770997394259713213017622256722674406252185449349229674156671300052462216866750328048192362886239488118317443020771758468894668337498159508899670481540744933315682447802273567890653034577181453966927194871913040731628716181113879222907694796038189669304496670068777487151093014928497741133300097635569428351606213416544901375335223481571206024613023730150049495898245550243979707906573417142452977891080599095911157766844545384952735987899502854837575905405083596127323947826541386447447549960230813558484267922105059551226514956946994518742837710020203899198253117753108517781498809068675458540289406048237877046236012950951318962262611301825184802250324536634594931894627115658057906011831229083803394229770096180165078697585291708356299299466400818103537242746229773733780614661108163564960410146198552540954692483674651764441441078446330754781418502873396827158136440199581147563062167819633968390000255820130428422116884094993894319652042936901196586137016291268211260838173660092493253568579724933295185381680669766936858240349150648856076663186901441657603018630020566351095398841094003513851924883970099386217318659643504656063303417874613758123694838941189435566140526791637725778000290933620516873402873463991492699837791070562101897757159516332569031326280647748348207204391467803344309383119110227961626209990762669373914543595189403592249678460574998886662592718481985929938801540299746060761203795540595863265108993543455066169177328802182252353964881153329965918855048828590243545317664225950238569902644394409707169464562899906144458481183194414854209786573879895280620934120325138243176954015579567342468137132965402389003099073439686404448556127385041872102659594724202704364974897150331819576625439597418791357647773556207727395526396510360305418538114301944517079529501826010291754749942323188321684292552960548644387755405887930635586216958598788156364100200206375497416610076876222108535999133157093352806182884764770098110294965941592873204315611789590943093535300651995177584245602099621241079137849426063897008309771923874867684711758531131389733135577323174286157748776496169143463817133672778047287068182150335387655180601309423044100171659652225593422417069959662790294231927797641954946113724821576997663722983435365826795827148446089087090964044162377255313681016512959187245661717106495365272042929892228346302436657027827879409154864807755034999509821858969361974222022733115215698119949658152984160047558147812335247332283474711737855973819295758109084102543542479287631638765891000992134738425867635325557222365794195315681053178040718004877252559189722612300040627654754297417283877918547768420375563854480706608233187705829188602763371358983994209258681048453047532565005656192704697859612953405078908716702143906027236065409993656675623885600641289097443788845571262964613580070337969069827224362289390217537282177717590141271302926958397308769959310411963976914093956321073350424595910583838222738817767286912541501342122281563430862696139467143105509399266480451131472297346803321350164776257572350770015715465219077321328857374629586590371295640072722392540522996684455985684704201946107663858024397452731149666430725938964352727512892407080006199549109568579212443727246866493063293280946117346920324194779643712344730442387648220283301282217784218729155490839275689773546064419916100481765794685301551351696986103677916135636541678132455741108789295030367029478920400920293002528752118959199935031918816684896205809773677681665774124601317231972940764062024038472598017848570079684616818146129571731209572157436683935758248267861148663503282771488443482755687891901599023793591582115596488690852255964694126686516190966566849749745870287989874532763611767976990162512292997966876278794922332010695908760560592323703829250735675446397479973128298973720335314084024835343063054614441820507439027854966670054186844700625548564685460625966757852774495544632568247957156586247010151027986992380746950853459608838519150600575001583858657606133502206683796553271556569218739642649131069608437832945521323098138456014329534338109713101987398413878026711510733444548731929916997940810964404955019034886940121326416385873491372745853409244287455648092638825986745087532684270749575776712958070941860357533308143893699994395709468598987065954352502645537936348705101417708175896361387614528553944018403725003228516051363739443753192680309778314095229882942179538309568750164065804909391661546832277086924873119613152169983198598382508764891838167756843382870779703111335433722024564041803636303122526736576764372230510075826516006174460930903766610406189382808945665831632861624532359575633902601962248053252735457421351082396969392004325398179039594879917961093292276538339145453844412482766937268763247196779115247948802356063761770954569909546645884505562656675304564280007187756699086223091841566902101820117908802283505569398213092520187555756231242201860772119550537618025116056249890906397879405579370600835750893140473153472740045218592133480537177153866361032234656907721699280035347665203317625668498599630012719811188120055086501895911496424715582741815020696115848918629237410499598333950517742411384315033797913093195495573973844988217589127086106170470391908166404216746324686115729062134268154477897943028790131177229378627686762623451793660674179530078503571211534921408070850719737044041150631276937945578387946230432192183809298287003708811911350231676016367840694171301094154575444832267783006293752760741276876477938537368566573713357806129313029234732049776461018298606182967861448157446645084111613868591125120860429329459963281688919735603267857117630153994210365107010845828941916501227984200587550674061309071542655123726035839553856610088181567398858125799611116081424123391588088130884198429996070439876245424652489772909300807721850865605221355875397111588129320196480242822000096602416040891653094815304470809719405319012335720719381210970485967112040728430873113616633383194487276895521547197226096078953685605355648035104911729297112328559353621397955635384751417216400342272008249747777369769101203280476988437888317954617704134975892660404643557543123731438343397867634782444203780227963710773884669104639123735566571120577854841757762283663561874124324122776262459489645851663985262799773689276854498019530941421445436167267621339454068637222744637744493872790748017692573605163237014003242764316032011412062054966151334979836434728679740555814219994794139223880275467850378344201999057207911894821877428673700741536889707753059469170741013184107554607419444807921618299658909161468354896273731443569761471135741132648508703734327692042009452166382966650890258582380226017652816743173832671355019293268573911718829674261233767341060390828495809832920943049854545693449176414012397172865236773981265958836843328652203862876322237488795611277573608693985491305087591138116551015747477876849548914734258385304300921581891526017514951540464341812240609436216670513053911677035326287248413828131615659072433404342037906442233288134009221536843865861409791096160973753886331187333636593409983072678195514574727214316194285613842666356310708044843340378727736056790325658615077855886495447378133228235403086890524641990668973764407968928655626206838241495930142355213247652493561732746732377969917540038975240822701417452672316984735141064478514062005875222040056714334032497340988803477870298410525017269388308522652005060281710819010317515608589208926156350449704891696243928161207718130823990306095584723625145661817815378623531426833552859625648938559313147888742547741204976081066516844701011273402669658147087516370699498947320599945793704209810968424754734727887048942004021072941150141510150121990092798896197874951306073011177709969740282676928843062526769051274955011816384590442706301913343025594724876469100890287752636402258095184833085977731162099004661881708924707935230016834454684588587489716817241141853006401212743018575808120323202433822996960111171714153217735441746625352848490615704364240739458900534383390697675326243040553005790846616255011126307385934563241104038355037355601542350006832341756685540648327245735368349208145112453765461813074908144434395899060940552302067346780845032733739419348905099200846533505027919364292006094435865290163821749006640826124580752537817512911219286940424645313448490059328936125588376418777230019731365129989488184194770417400474034661684067637633586863864950535523871169171502892217702091518037070291205468122333606702826256699792878917858925430652934913885592632488281283834478511205372671920170333599348784294519118185842191274065581140941080287611752722797853053581669009673989344519096394066506611999127144818583696423251456587909904453567887416498291889480004461635154674591490605902567747726160746811089514387709883351738580260057800089362070115025098780820930743939338186732418861397509278825225144572694790122188362337894858729300268602897451425086825070503190536153487854948761745519185437150276535694307128578092904397337044042783103819975681695582351976752637285781634132980547188689262697961515696056507656097433527492828906056408668637358659300135964126496605374298996291816488817537469376552076860023742239739768291750274503283869510864948641229960975861895595933961163039556013763747398874966095279882328418187288732757577375325275448588791398886973111305254454434942939580850699414948426885602597429446644575939419423978225266496752996258804698079496359977757464986532031056561853209132684209683949007783440412180717225019531335718350909789353187647428613454526353907733346073717071889545133574936398946521181854306166415568306217489182180451421092646429584023902100552740654664753517708079542599149955430141930387465714890282750299969509563528603008755077415349221196506499438104981440046678315836506024827877740833246969163361357423023975160099251292200834077954038092125443889497928509166144976697262210436740171211820982007149861137944524826858044836661061772380121556685868111686741164083485219701245548967275452920565213869708527161107283797435578206285023321932217947034121719605348359741764894441916774565544791859167032602009331485831536767001756161793575036181209448317865308310073677599898208233757924596814579463414772698240267242781770594679847553068840404171981110626172752630519083890457250853098863270164739877898016353723339229455681332591718631231116749263024098754573393404767537662458292375612600011115401376486902001416431561857455687898362516325636933113039772000922613530374646867959373136541779696669479331131162917798954512597811921033619794109720519628888279277918520974710042205227835983787006588874240189148121011576673407335657615513204458989251912011704132285849449091799787437354015408160003076239926530228108435469674312898131090945660984361074612587518372682218278782973803381769748486474829597601327736838957450302784455435095800114576395124443256934886016534965564403614763919145555539928482809174606491632363738702592835095059109720888024793180217161419747883740488914128453853636648236189477421845973550153185500085900358030818685224515437621100324346002962661787962153500740558074338054635604380141979892042271100987745994191626277071928074925798379175444814483241379187446922566412264104473749219670033917496036938238543838251085563732816969186563039831307214011301700815208181861958258846934280152248668244559566063251905473487599333843062619133788132589603528227376454268721184406481828553959880107363111187232704254903529988081874817763489089603998571109971886922705615579728447298361337793133280750020329086835540378719562052450364040523822876509700770990683278200757236083788994589819795133557705927158568035194923310208421077728510213454680682729875976217401792827808011298847113558357850275230047221452588310259530411644363657580234757984932993851585447697553140419659736866974552879143131847245001087596895434954508812229522179202275227770198581067665225197085978450326050537670580402316760971910225074479656451860230651401164134191873421718807215583959355885336622242578415350327556411131820348386723115737809863002835136619040487027822403066066466415683614865608764013155103775715698649948300946144405537593537449011510507481683471734276730624544473721635571249517349710440587973391801433937551709715547842778221365997584032658494054282116571714678997905191809174521954474503083422268590896791053795465122191678192720933626718978971371784208286387680015547824202744017024315359261047358983213855401216868264141632663089771000564892269915050574850635143201700490990057798164346172863082160371442332684796128025066257804431345200274738693899639253828374780643514527233301174581998971434502600648040082943802685035135487575405689287213211027087740695817787353772874646612560233743815242114635326020042362826861012663797339462039635760962535767857839173401798448654538104405979244700014931026629003051572448684822659312000042395870623528684080699730808018741977058736048656275995564396205333338186686691006761779228308224865172901988369896154569572222224985914174798259668109358346824159604616384601559854051292004472392630699761072775340657237429360020007369644488786380167276213336656946246618006060358935349535088092515261557523158090205556444595425008257701452884264181589139827322437960961449959248504629505115114673847571675747271559503588567517133353808593681132792792510280360184753848534650030267330315131051582448694065295411014380188828888828179067116936402920515949354370885484056371239561056352392938745875575144913147617110823371850224184779699809439672900400385648302307623949123412282849322474998264079954037690476127801982777016118790692553955886087499181616814403958139945071948342809060788301214494621506864938664592267731763541192446415630687764341937532471787894616436750517640707474805688996659839974103629237410840766271134104889404924987585090976989571436472813623415148792088740526430004378387932208198746284063492848450713092416022465867911388978121555933163287458875559698531339352366475842826344914448446040961843213525987298385672998461985835877891946215752303237636244229159711963802704963830869226973753554526507943769071988355018325536950752091292889728376335570010757383872339008053991292336451060334431600828252903316243457540520275080111079990390585501425383792228352380931027514768933406852899104086381268616280427256026155214992210486597550157936175481465064228234070567446671692315038887647366311637048076747985860686800074799021448844865872444815640910631885900388018557996011287035563488620618022658694287877078523460232881066912897847425396016853951910819653644399543332337989131823973740237848466959107735677377646349367983655518728851662105394051139135277075059298218838802808587105298084585368426652772170128330867023287646017492660961776254952492309498871408718405556333206536361143260572227063174675457817742002577036679459516938091227697356566105581175116113330627284654161167362752509810675513840064755857025123006019465909952362719780705884732631353763685025775408751657876434777651180293707383118261013028785427498576244922988855308900198365045776394403564078945199847593437619881453599204750292368819402392514728084888655731633131267440297420945640586613423782987694386838789139997019894253190298987940803530713988193456087401552685148854097228403534887913224255251243991248530947639292795227651174730764474492298928538785523925567407484384421169005017192657470570302071317960645863436266624101442751888302683917383582460470793993772301097333914295582526230240114295010514537914085365153801459370675915950634381576654429575279403891473246026947193057066316346589748903992864264270782561963712167561560574367083538508540288943227295278843791449809310383503528389224839174190477184618674127270092912167233207996537851284310227998548856829868191021299951545475529538653835823795599468303794861316267654528878789105014804154521455449349498362731721580439607459890923429701506650489656058490690273501125960186980514714722412559115835212825677083196125416830647087875083190199961285801037785617190204305881963269668573432985601332038674761151166351672289314881516857920387795832566132656753634629849819415188727982433091777138639899716575433468950877675342029763444017012178940525729318404752110135860161657367350918486189627029287777371274066764672948471179549544895113018052947339790210680826853722211152040736948227053243532629553370045497570865485819518294827822661451384290921225134670984546051266337929092128896682078413693212246265116046363946639131796336093105320041232103822451668291790570551641686005169024558009663867459141695149461225097701424324484758456543131916999853273471396115721438728308152231747115402587696535444982878905301960615765607468052291746729190318676791493342356045896401849337747422884522227428455132255462075116806765897085614907268448592696748486846538386058221688220131769921052222390655909174926641838791392177226732060745153530907204427670969582485738347198788530194386072028650364353173352620274463184242882536504638648977756590394030323741924646343406793297995836595863133832872196003413270586960053322487507283670906473203100036491200633177193095793754603993762263291405892147855009833268305037647564958769041602567614594647443707220791579721161517574255823369303784433843431361172363571446630471774904128216399849454741088128885057065521293460992571193495281335988757286326114307023061837918169984389889970077193744045571023416571610577249139471857396294744602295937307287511317085917136980195466956187244436717595151401267399382932112477015707390451280854709172744087992165428342865966553483309901606374785088896372575558521098100650428919526339901822617279393729919534843756061563796707070886867043419009930637632475859757440441226577142092778947293354324826774348840668220615812544501878460907960670718660200319348246824699458573659338706695009778399861023239003119669694954096368667513532918155927248499072121661183749761256670671205235620154244276128346608555662323427364424611010446805480706751546026178922957630621936051012482231130051437532417576566870732348522213103464121270413594809449852889330950645296449453797347296177536424474304959098417415808022369441969918622706769533092929623554746881501347874261020431008780249995862164294844861982755276299237790492735678848104850206463573815501392751118382172764918438605111889594933369910526268187590433174823701152965973038062947570629704666125684842070088772710488134563229054470606968303710499779446009892366390020513320936039390128798242677180361486235413018445391005517297902584360843544383035322444368962136409996915350766799677345381698880878425331875280853481592418595379079001406955293500895091594623254503615912864821316348221557706442813582904270465146950083334057056583882994075796034344610483934044940146464511264752866100360916755579095311284697837787840558607977326560429709608843586665425509843236223552311407134978491917599042656992475518745213967485038266694439119458722170009949762052547078747168836033302695952709281980598340100336663813519829113704057557807930448507833332810397057429130992695171647010895770001694107802930981480578417004849528819474270190237703950602705489785848518624133012683936130440394778871466554877403489816667894722861060951002405296242245077016042472659932429789880569251946568241205042449818545805259807288315885475587549214428350118014635981196983619413987158974832885640097897075985694249922264427320498284459017224547053706522374235713662283037339049074239208435082855356575092803672963456922634201164799856790883150605742235819363789310667006057016125327803803903596525847876513745860975129365069322233447111293705254246336649984300903669422671543479473827561232174016476029121059015247773575405766529291152539318337158353977973279234880447468532780755496692471467368790585552222852029238459069272072143707075651567016625742045335815664909598975396092284965095146417584293338868305065884569667385823632338351915045921920515881760572273857474975424294601369065949791488671704793177516651406041681355842887280448556513943924248526619746401230512214529684610408123604174203927600914718581899985985913084343962583612154187477027531862910242198866138039879048927103741921818246508413166929323656502627468268379229277708448292704862036829971653271102485094175714545975615806436271107022000057781494318113499753888928726496409548946181765181482950758259020006844066587383383729935550435179044188831626076687497701587570913152068772804915022673849007171991232625687143797326297975948449756407515525527753659346501498697847628430509355049057412554727678866837500493216313451376458533018787078011067570640667129976199922309978980711024609935816429655889013134997762737362657370415567463156247522168315826956135088121230778147079219286302129624196920678203855464861227546116923875866168691138307768967977418910626182820061162203915847365557820148602891928837756136815916764936973492857985280629342903631133693448410118217190202849073906353356365732929700317143832766167401703939043073137226573021980060917781665283882124905292036794968199468966289110879882604068071952425824757793947368913789355282453316184820285023353738042233265532702645705665067977505294448057103126761178178661632228447601441381372785207514130994060792984758578576046379322116575856361685533742839776666288200257108293738911445348624692433419681483155076953319993851291664239773363032817867889217749619747784522183942418637019245131747612631340038477847392824073690362835102238134677465179870653052027822921356667434471328462254084506595017402276726814494918984619888945083398401072836977342894582715262393559897944270644572409069014575195167111804274928389496482918616540418515957933058115262690073378332327694559840441665218596790204194951987643651566470682749643756905408431931872024151786993546345294473998521872951546356056676986805165834630858800881923682687721481681396411344192333557177474137081254369394626821257366130787128342809337931626608050714341961982312048024861781918184880152262981708392130818751882917630731481309283904942533645063427788632751752234933217043473001451727805737137649960971093645069429451049445150333129922841382457407880817015640116022842050471576111753972185080403171250895022445798280690797249313274089402652133701861048099609713801916636237324775569107861010348799716217384222613243729568293166732086670387018953443905877539045507042639390868013933011631180882202583386860926044416640218021235400700005446445608447610151617226598156318570659005506511035242909262619892545665738019885337437682925589250660814620481461855678676853940064209726192281472384696207024148822406500518546857639879045066615419178710549031269641188211242707862424107443829219678246303836663199972080083748365342180301126019070201117722752600884899632600978802435264367055609835626259278478458726017465218866359536955596810563767180988779081010547382971930634792160120623531784981262235177226513653600405264311668889640954276781852690709967498721344735669144062046811062691578696301455986423912207535742452641704860233693797092043204754493578366535629622726648176001671572579843083393779409523367658183708755513774982798244857482052733402268764875763202483128217150726877338074082434386396632390155237595037090061130970126726213201125786866696254769765219968374889467151171912046199097366710317853081646829017968920764590829817798030928102489866995292030092184139300111589932561454618420349063422663165270172435793993976028766221623614912053955915113301312205150124803354900681166778677596595333927791122273909137208377209614400361227767731602239780385927452574813631951380257429257967050661135557159563693516195152201629998104299189432707683740049900469191482675747800985716470271682796964508512916534174808903774142031222638282203352835693347545965652581696242509588256207917699465630378756605019165100010324795328111453763855638161770533354677796242740892408304684225852762526586077531937025678760158779925937150275278219877080148271514802516344670295201706352203436835552187939206157969011561039251037827944191967066414344174844077872394783963382035125863745969537317170885985233721935790888465625353239317274850005584608072888589101489509344619421872528533754638948706263173044077968552274507637507632531136823691882178897792911675241326283844306782618692400551563864558289162465518122278582456080006253615383803935922870740213995563147858440440021218631421917109360464259690762115177358893060369136540606632997785651486851780274256093557128971666776991396043122987948184143234306177710696241393697946705943333613086114290404397729315807331420076042603744495371563040818605346542763540349921020768605700639608374377012788502772553205067411192146051596411315176942693232591650956334298743451524132317249822895550496697112521840353446747740327751989598641182111021949694695157121893424875902897625038735810348753631383429059547090559863646225429989766367843751077235594993301338201147884833594537037869147264846753057281440502116590662281070213979901650226207373790034188014186286848386569127744293421937416733846292748596800024166118647306196290812741120344511302716448496981880160330947533290620373118390859365374753040243984250451976077671434489125494225586838230384379628690802335101157216728541027381948591462283751265194511604265089566550285203378787595060097371890766368109436681360525711438951696100217131341611268186186911131545515212548163080797028726444939543357156452457517963943823742975313981799639915246002645609965219710190247294663887008104985062200843193804781602207629258326227632100942203001845266837268914347868953244009120626849893917394375300474948633517782022157447498774670154268896733287241200164164700625430232851147171330380384148597774496316377175602717206281392381408606983945100735910624309782758604154902583412118081378556497814603338045325388023476898791647567646378119358781157983852252913654383173165500324728066312031249280174674487979187118482804591526340240994406612220292238470002153032604367854046986627840811120700757853912381229445757111839819898131092428272946161437662815714224635967615676784162910874863414261054628710675474326944600177641087367270591836266653406310571545758048967085887367593398945704778190842188497040214917821697506962511230026608495383015811611090894804940500555346300073098317794216365283464323812073117771385469160736517558638328693623127081364996582106838757589855991295029914278316344086199032838018760067369971449922256029991568282863252337646805237088736235983576635045081693070705157691310138840984695451836586482681856636198691374136846960892105697737050429649112899689822754133967718951972618610011494055784305938608675313859678750391337046840627072279359242660282305921272361572583358181123394252802465680569915511009293580013786612108152285284017710448081497007276293693680688783432681451337642846969044026714377648734878742142800081369918499378177793252030113111775551235964046750995231115717039486688360475563505028690676300967162703418337300215607187793394393365290272762534756930027130846225926660431686554456792996682240400734835884427766129669765989093885501363332038051982305777011532797175548932933705219574981388508174480331566799584294058424575586486535770708787019518562932484061982593202363578015894974246824101647760691114814375692614959020679362204990088151953331806881533915739247485845749730107474804881401822294656224924072949537871092527234674943001715912204042966596536358952245746090358420167836214898563421946762523491299497512546822675113892309904062963733345529956889195854327679193401625408845953031343851615762561469952946884265511738816066391938912955805810846131910729215074312468360371384863512711642835709258646760790652765999793617995234083642169273496952006584903804050277972730959275604775033418690434688564951328186594145201757120347574043690857982245219423978590757747326881634019754864025230589110419299334822585164504061174146397293707698273934031636980374642152245705841933811025339889902012002754219545819823665967698219054667637285060428202020973080027941323641657348380547123215850688306261089066588154751522595533536034949069777568475473245017419990078595454979704938625124445432583014733203704183760360586618062891710580131760169030620785964050758525014809863898038236838536028927540133813074118746688407211258279191600670223064621819383715925076239882031939739275875392189661545826037526015749802114724283844899786635627537311429132071142392713198390546596197619890080013609049309452654165745668970070778972023612152110804469084219015096878516013846412728074375752259587038194397690932747830075703125967361443245680267049718820096795350238623139519672180014528780313188038907976552070912937760994511630650950072564099177956273321206385469943295356677405543452463761990576030294729374078227210311179000272199435615099906089738329313245122497073462267517826841672731142220934685232024428005642289449644143800400987194643968411888878093100251498442378366715455742507887586737373711436359243429873278561942474126897388549071584806530745185324940335143651014468603476067065625403553912780079037985712276943471078971486179718135749367273512144002145703674967069651441380415135956976532631721103933923324016977829528471302680543760658557795312664309728408100600696144536168764146489841431957859744030015428880257550567219889819599829856231819108677819201107558047448769148029950853240892956099310521838217087637346785442244567252309785096342744611316229421708568552407772166666949239103499252977663834236772770339419313582499917599547616259545057970423619972316518751503930908067251779059260041297825156067379750998924930480626077418690899654451099335144237246468193268116624686944354534103689584822630312510579858122113580169520872257480676663893474167999078938060963706506731916749346846754683723143719980108848567943906274147302410471670720081399846350651042991346462814096215756927531912282800707787814361078359065689199513222298460537392834327248620258844529031652169796218069038335935878515813680127540437968192799801503048725185919395756184370223169439398274207265668186798467673572386777459495657136436656418179659246841377862158260334010627906425443284812547175179254558776851363874696107550017170880725609379672157703356813082025656550834584224774048736667432259642588758624995583477470354401718132979888428649127907286615358269764683360574039636077227850042761526943024219878264894385376854657062049406899282365847983728554331016844025543826995910288060357821060468181533803889075777929723065628985740072051721881999133007313120311284621853755783691752320100639626133253139752139618752520587446995884380341581244009861841815596579326811144227521519269419360102848692650219931112121905905626289676488887360120711578821291070215166156970434308557245928139965916419568687415066048652484024884561040044890914563521603103407783521701618434200598100615309362210472134982072562129793042248500928385106233277366622707919795201615424563125588410876587620892665535088140308185528378866576704385542002149658446856590257273669377057129916129328656249282826987579550942131909450966055174089096900299003026699198245027676013996169750156844752784562814622424346068635835697205318625704351142263459285083833371735860046763124766056414879658567367965478395564314683095437191653706146539753314847920281383491060702270968680528196726038511996806807132262456547747385542372265418080174751054191807288270236530603726112215569184698497020253643749709222547869031171946002070288875648391617402938799297531751138270358370995039182222132109765593553454341072948999192848991649878988698369541188520701127706929097740069128247842810644787384682105805981344881660714750349692649418343797568084846280354718930706996046984511799331806068372558407087934240086820282269981720914778319663141122513872109871472957320171614152282503280880379231136091303809700991913522455715004738765975779277085790779410067648914238268092486178407240314449885566215031571166575709815814658653940187770168423552581127629546623462759819761917898408778049692513558091300272439186583002218323745184759307076768289239380187001376214195958197409861899536967096222419304777543060448210400986217304472322202270749764806310047662577038215400985492469133511412427519832141045618371172527409710101036814054628501767294250360153343804517558758201753508319144585894545578426518701314100645583931804414123834522576126890703673872585455843852897206398587529254613332119520093486186356449166365100348724527813069589534143772250764556740141345635790782087729806231722298154513136885339113519579802574045431655240763899054668193496357878951322219135682761155254282647797915001506354651778931597161629085582222932878551892745001077132328043393934244365248298060491116370681242110195828605539604105039022186596829812335125146890563949432172441878812165368553286126772798417549140808843333960273409262530909068132005245900395112189753209644181160481781664821325393954213312502326855997448808913279511731312317646057461721354706359593723682865898844190804492911289163086544151113408731918509146170420467536676577453218702752484708361066065052927338381126735907997021048592546478443589841915759883044963250573860193995024503562376730600961087799759405207102254178749415182382358736083488910335073758266243349906384730460046548458228030708218258103445781272708172446062521814308683967167388940450980321420354121297876872584194790848227538292357720063834434521993388652669685603275899852377164452638586667747794115376249375346062184392020784725388970557026520653006747137211673860463819050672810942148715516611176790675854337163015663273367965072723186699176955402984107145462996062086128903094602336646267580445223067974136711436347612877220975090235778462696877535416652665569854867798157542789573202189220894524172142890004586268785789844831029915624232922556175968863605449702457150418536815678197765521418930423417358835869332736506963447419270193296685437095118159739207570538025356073952765554432007764973856775756593108592906735812580919596344273214028861941268044529819560275224314105550110988519448082541867231028793495403837639821646116030912569203455629633672524585327237887980807510359605254548956832632781196402910791217694075426335967523026020516027639421565201668431172232397497927340139565500554787536882106341760772025338418338275188449954401924770321178349464837364534256239253867346933963568503352785339341576831560537261428898430755666972926105590708430748316917951193039660729956370658555847747447732725140861616552005802963091162659375641316678328975365046940961732817416006844633568859518467154950751969630056531220618163946243885919263263532252711765604336889450938776775537345160264839967059572771118839444727191486203891408528403258793016211257458204702813900020861147406213274352699370582853365080305038006911207094139233044612253184620314617823963793401765806866948880641641760365289542154559473529436434641652795602020024541486708946998222891784157523543273760222330350802071793737198489942129076334472116485504211798550910256903007905533378770448458276391167465115553833154262965638996219857769161044215719202445624964895201599374966275712410961763947174956485008776968701047639287531087661459673639697936471656428283250609656514640449347834472750721085845720629321860515231464446754301800173581843430790972847386975628152567141257472064926700384285329462876257980207475061593699588027252385426160565256935598096678574146973300909267807795088714475879628553470928696566814941911360394936221010029617053597208941934276170155227682300676135343200059852917806785079294809799862737986899550544466769120210911941357820593993411359572142509172079491639585850140306135626617694592533345428534038695425127721004851559349346456263392296245183189137890919286418933597840885928113555237393731098830467409927212240353190870648555578308223505880132744727334181099641977803511955272014697109308591008963065576525579107478664443043556891397450070835354189315417977208483927209811068277363082272151730896733031677618054355650648446001707678340713931857047947601855125932112039402092858434640832821137431859120427018547248882464999707421581764813920775764135579771112096089743939678295275711360762156583208099726020467555833524588709040332198235483146380687983758502260688289820895508253047945107718811059546649213971343180472330660074705570048572489028109373265484270354749090497336213866290067513918605573514696139429269939659121259059145561104537525448227020286389629439521931698976566827733774850919872900990470648979453524883875394738379360489072324631030100391694479987748697271063215504204145744214317722904197139166389970928483397849099028804591983876351370868333755879817932385972187919704568434958813540878141679669132488161453826362496540748786831393661015973943154535274891318344073675492687470553648141092215622137201213075131501222251790445525139664389802740022221749420003572234040875288455192976707786519425095950136431687186275633077827433803782423130700550869803431423034547284601251013950036782614397536997633344247905155161993172787194331940046608047924007754075533744193688352067498627082839717534586967441763437941387712425654676114191440234263636891589431571464787453329651846269412722507207301259926550937730078044066616242135299186714202836680089169224171100386427016808716422787274749834639055404803029678959622905776500859799635092465508821742785826486963821104447863456092340313572326893369434775180303466430678960826973660473113098522333978660036224919054209421082107710281376953894320057601732285688818872588164023155915313806609650270221090711903168215775128677396321564312160499915468213014059596395417310789538728811932909378533923840853947560678176639300820842457207760543503098956127013292919523529804718734986485447231284553217618197653503807139989397591242463381496162242984148237965954341761190311790135916229920329908069653247877923994402864168160955924244122208269259703277960140715647366960938526363542368728766130261313972033180732355517745630233581415032883492574346059971252794042791683485840000204026877519583188907739043844652649178609397361767704043325162950876311209669839698722030461530389071963665076112021322007371842375978521116080141616808438583817408127791836881647714147601067820050124388576349551028026068965457243816512001312216685148022690302250595496416721541512152300375596284870178249143024945134313154247342464925901252043589178011362612345543619690204373210664165237432411723262821083462318948947740930552471203566188589041362907739823852496535279069271634669246109157863989332999253543257474240045952307126806622918992486732118451675903110256267192272069865910667898604729079850362669266326015791581040202951896669992151865050612299348432170428732199965787268772279616424662966989981724134300926331291232061132348936580466895876324698415707903382172181218202903518584284549658810194253342529868057696373892819533406031265067030082574709290661873809551014649565942838113376079345231965379962247754290595775745916679639571023853872326081596326742591242364119016590230917247038464774930184265487525365326778406518829371336697488930751379110236548293951525211357636425340029624603984745509310198545523293157579526420909874951596300241617635309267671443256954097817259196184208805950603165344223194808589088617870925015259010313317151726141082586558183607669257539539416125541378157604095202037003549798414117663990150250927362800789538144235583732165427338530550897164706121819446138127533069500640544850465563989264657700332596695820389565473409502134344948994414489433495141914241284568181040274133870415329095283176237573428275868296058642516350924792870419994693569264974524302969660815549600913829095205044478747365280962883603074617359283189200927871197536699252498980818614531566694667337935732584516805747645682426049499110581577287100352883770209209238846461367757112262655334661141059909869021336227980853090993671053217881070826773841242871645760711569049686028022056875316514555855543247020094457065260510931114064212328603580139957226034174942897213891335539080184855863789476893521522784996201460052694930233605543400608011465346587332402862816650785442067744536810081313792246730860147041028388713180511054740194053235537508658224730052244243379118227800695683145891146601668743105393835343362806862208693234535366897750834917180039881880516367527952668352196073631943504232449098265074629285094693028224994626238269056457765874742967727960053374651684229063125186004582677050421451585842283382972357988930285850435905187552481496408756946819329766625949818790072357825509090178322418140164685453067737987466229287851476209273261447843191657561450056345113991595212179948703290689156354489966770334125942923229283393906904096535123838610159895281286531192424213315789131698875748270292575054496382912431138700111104238771850051954409406230881866599096804312065263023508042513607993661073437366119178097876980884625290873873615017516538093644223929919589618718602911479798544536895404814861872870141845873828490137051980892311060083618783596742245533524530621106581461910380543549862182722873207938083901560978515227723309490682057999166212056391031887703590130593893422293852439276578282436251396783947514124321753836212053544978008444962833589829923851132733315874451561792881447493044496188390420620835519689201134267010957262175069492585423346894179860998415136926683743665656333953218706458657229716230648299539011145558365467350295723635315128306907081544482840739113957090367390331342285599953120228394494173996035816535716280035134294501600115429525449785184167444761266364050936898880424322912767466471294765748990542238332353645930912178302307121844362320843417589221210010687613316579038735746638229304030933074778156973860487248459903077141183184045356566845744367923349322544228396364995165554851486761228492552208845215026044367282215404819451135947785409740805578606220626460151704514552805042690083738276757818361444039507085213425346576412295966161686689950589406102474880251454324362944411259826060954427199021211806524133574965160103362446859516219467451974883800272181740142585709900176699427930613637687980493924460612860268314320213688667811978549889700481623007654989336269228740811801405430698474301621712474514219731025076635941475732548622933393690078636550064526465501822398209509016609221346306327611317356934954063726072554415207494384943262063167832780555582184189418181305331399951368950672597596490339880609901953748377819672496638242244317518008022782474854761971742577840338065527354038362894231391815910889748802140307114369327064695889427572250510466470277002510960267328076447709437577315881843306303931599535934502696300638056594407263755576815375398239785834424021120518394079350574073726808954509406854577974573117937540685799041267727777972966149011678035779553434750284689370753891636909394404756399276615289671026889952426896498933386747718597570287977211461143111840885716570325415681725937687790912403671899181386472614798363363558748457644705142305112783081526921168862091211236463561998546166280214695366050511317848748214080830151273234115874477023113816751116936693609956360928325007907410026392667293162117998102587562391642342541119119083704074884852400351587685112668666102471806466507894882258405539557523503982042418527210827910664283673652285118834473863726547766062720403240825981036742700082039115323361718440851755885089767561402617089212759370922228523425207928822648176364151847716985547955923530423852939874036672913609374026103388710785024345084967743197482844229325242000276867409899342409544478398032313258354219777575536987822239729545226685730811200033308889875584525143053142406178707456867683415232646749780525363672588500035935872351020895701330770372413123225321729140903217791649332031258760473561426983650188685110013522850784103778018896885623030739988276144329418723002988783947985152057020639805459612929891701952391415852414944483027573219275430052893542611816871126511457786190922064759032661531414007598855569382365324833136291188033507634348128720347709805315473846979232004555369707530828423086148630085750454958711926487729034154542793469878695556744415738524964590836911694455240383099555292563051930956945313124466613827486675770920906253762900802995961901383977522841702082855766864118536780241348897972335889624321699589404956034220319669406048651753061701497717896955932896267880313333686993266613872635829000529057630025224611562253928484602926001489099132726889891264778069354195538115920677213895536421931673434235868471877498236674938804294532167166493813986096896886355936118185697618261584985096144272995952618087114800079419779334948227904388800130665508553444246516424756227691855734549130785767939023923132290276792032760186946178899715026741898434819025055878401844443366049361311846430445070768493828737954093971364514816859002075953076233753150204667961673752615358693957430281330264693163631634515584701340999713582073704901074438733879990353686103103355306683623403187779880790015312601853879050174571566676704741919147875249599655916705420763370317961957848081226355256298440838689944681874558424207977289268836602351652880236905350369087152643250685394664791374280815609888046378842350066236953116352864467595162289981004429607215846351037748788943735340949739446449634465365042219853357441085065924989983315107947848716875138163798434549779698032928756926713666822727394300240200435924397111124116922480090464188413373905948480813797137911782012043557479985193771862793873337265782216474248887370564429620285261372289582211473794033499867036669292468651521393802713781917396392794602902313140232731041700758705509484731685359543956663354395030526752986767557155477119059928959366832276590504280675298277349416907231962760847076948864437426186630397252818209473198880104814178359797038201581695292557883684311842521012365578604020618779331185123207370089436278738477917640154910094605980213655431830706232524103326990915061257237999022288355147141395716691202962069477768588986590238170440210324681302320839641742132485244080855538040390167015888494798092973556462340217918226432825376360694911634446311247843321531011540876634584594666401102567635218325404924506945368452603921056746292510567902565130572995982553859283864081663519445408483987634870700187587502880633466810827046166208719576168284714494621413629333408605200407768494919843243995871003499361973625363768959848695445939066686301052416372717118997501723866567117997644381227270596444010404890159174057184542034810824158416700516666269225967952658034530663965424338640239687430789128630773866046312262311657647334314073804111919072993509546623947333448997063810392276591640391145336503026094404111136800323174595567664556070541271364266067612076656209668664773472735867477049956423947061795839591332225573941628576034794976028618593188633681025436089447555154166716501855460366624115515972460742319842459317288368516266463333566621021623940477965805768966118514937303425811250198924342504375736244145336955026037828280156761913597015709845769654748889975515410341237954865906728043123588288835386344538133322859420342463084714033448687683354285728139964800147734977034415326874475775100694328130979458322730765795972261040282398211901226692344126084104333543766348701816558069866961531272178064377951829499725397116218308732591525736185023315982949447960779016418066965385264205797148231456275868584663987745712913999695606330932587603826389030433636356810585021625599554482656573921042595011496291048716247581951067174453363574581534234064657329153300649313904395750400264647325618056123258576262912790292474483873978137226667976257928049848244731953457314106445076627755231345495068454020193663167471986077141522690595075151172214912833660337273256082738102466871200966097192782772998510734669949517242668763956577814632199389429910121032191031206168081023517433801361239974138903090125188301666327500515256658456663046356877214822311917774031433810611571115387596215021132319367615152769017963319947874171515278884400000999874422053471398818265921975153085524237053704435110348994233752565944571451887896978870806461250985971187405181029573516887461543990933784094870585487994285074815620977268659047280635957313143201144109056663235891225694088236702725728902065670148770929431826613750465925055131369127834897482669866750834517785340902856340028192711708928139820252574728583227848106570728429952655947071878104565399909945668954323346102812483410100409498007622650407281246391860228746386269777470575132531382126479961431629293683786251503406501985025809041861933677529840041173851672606794233516169172191186435981454125551830832948711637057233613177842604603311129410787671556682736499626573533851749848646450625481363307126022056225596830206341708068508759140455688615592413240164444374819615920734202802000394817890477164449390054752943402791846441905574656700434484424820106264123950632000922675879112719472918863585286993111133205345253763472619524799036135284319961592184721275851626394227132510082190243065324717234590768842745377824240046636462465548442122182095265535293924502746496528873913528223890647711437479088648399807200078184845503505981428670771380299424642270578217852561542603183494847469528751081654901205797133665231236193087140000259953312737433597225570126653201259289911227074937129450656883913527291648416844232928238065893926222398183743353819120843538454647327273092074550109506219912338408938495093792941511674600818761910302873440201812518924207865913740434062077027660198988870351633670953773207774998153409441170838308522911477587474050667769849248712765019827282113170710894900959981226191576932821735582767169765389091740889802021311165019333082549045071660322864234356453806168182879230621594537385903161369055142569545583245543421654002176595224745174353596619910975526727886307115755406520977830321502618103001532326996166997465109422843818631010119019976368292056433229836098161173075899615291816115895505927930545428019875413081827999659351644744449377118380314674498136270413325819022805993368092636517754759944191800927735738128643911327406915767033470515498998620510401629398357825689079349330989119742641541476928342414405674467914522002645345952823061018234465796762309944808209063901803844748544837713833451421244214266980245660974460481131751002741346268424145896385940520296435655720764438641689620114227788072619854494275421602444638145773766625072182494864795436779178762323336724168840082352103804881127800821557756459511383825942186922426898175169874520108141136002101942002526337412477737255517573264888435389447938077609234943617141954635838549132295303404768474202819651541519772801787733719612835281327091179294299194325787017746919308004837543235504884861271682375566437151296209258804172519554881283091307207161647820227313567571774369304882968949654547279606428506146509673815010866485307401851562543451637608464823567603226094084622931937587923880290700212871743522254468933595706507614242801675920475958255754980649037500295325766501780516107828324146218242689187117413646721009682628915310875794197709948512058461519758407108679591534064763387787380407195044638069654205124856337258623145213597606256910529597582340336752125029661664614765709772678096616930190997460086526120846632346992871165386677503597986078328944698077780212166103711721356641659725664123645846217081067513292718041892291424228193674319114143879291360430077114777247364371338804980209208922248772698478624414229630184263882553253926593801153012587952804477002947015213565229806503097808685659978997635010265434521593971649626075299104692020696860710218471273199185462192595979955839277656938305199623547538107112890612044431498062301265884750242168171546031673916904839719602304270931610923537642208927154841021527574816181104034597501252235528649752029116941241673271729568840815857956039998109629813789513231346528431362908855591780019543194945291655671835892166844047958829492940288276031850446238245362855332575071820815186404122870968171199588987474561824788778761778001615869684848600598517228404589039240126156684686068324835192799961534546380785605240346163029043445717566382088223769251939032515524606559711050957043662152674926087261812969666128718576699763804716574406614340265537111004511418811521432395539054403847401526631465413299712035899531063301871579544900028139399288539654127394941580504590232847845628916092248266224424389983705920402363636264104464100625836201919670393720575873721831176638653622758916767839726920021781295660727054716305539794342916027482773765213570280515260248957022957902899676112118931691957865698098624669832232692732544997194565114672848813579947389239358024360621589349812314385011796690976010626029426016430744216998060822569380881834747926751841087731698979348875093284921823274089935248809964106837798898338308122209933599724923108760060061789692730460426540406058023564057017930622547444564904358101200213267859560076124941084443563049495932114376464440528639281634107923258615989236850107170344267793252584087454883899571300243951661348968641348792425321548323504940604484783243484894807528051026665294100815314788719719636583624519572928776470154145160192540501840023501368411522636975603338404160280444376286667574456026004291786227588763965515945300425078858593795641826902292916931304601951662736316451611432820726552110641852476229565428886225190153962440883985888772704250894725401098726313085012558445100607158383464042984642776897901409906593876742290657473701362251615783286867576022144106543820352195767473039073950567750151273837160664306064385689122898283045558460379101756399461172350485321131366788954122702133677633483989853535260495564716817762821038874510800364045155478424097024587281448045641450444155400308662185436332744005427811394969141038667693005405394534114856391761313927418157348961289681458444851157762646737009382814192873282305108129184273847199617614728346465819615696456475480895954090634795673030910818803033282857405355107425272145846905250435212426365690441137072054604255472190995560227163260437879188551614929855847623835859111801415065372895745496483113598357050248133955362043232586313066387275268011538675119927126908182487685732137079869703417744721087875278386372893415021248391827349277643877522910709412992836846367637119538084901043827086622709754176908256561161021624353138064397835887673185263006124448575543531366551785053819699568838619654864354946853400770799329429998342436210485514381974339504976195101390790484468171537503633578058255973022184175259378819318957436092566059102276844851477975280030750526821975749051974317739188787017617201613386945199732431287266308317766735243523894253260249112973661700241083816543349545289299765353525014966908929903064491300505663829141047564276696184545808962668249909406651689203973782969141055277380271630634144223141354050629427772830562016715992723545684428429397264466750905171474864506246374534655194154981153574156751739864811191403039772500812302263099127419840320329110262405871146770412381220967609053950847503140730335775627211954692439230999630892111054305389081638799201449137537082924563908319347943344333974880545448609546631290673355868561076189596716937413636431690689081355434664453714880086412417603834373829175402264240795771890771492603984079017797624088787095875157029470051380997446844351243110870194499127259869786388921312424112608413825481985047847150650681751174834750329246047424431797314539965357186753063690396076459499098913324673110385839181899465861402485601932556532499753078893688601373285544393596005551741299225632533796143389434285099512225116821251477141193137293305268045841808176863401267942205749338632771451740896299341819445101391898580952127922633929093546903072117829888330578450758074140832303851617872005147575777925867442308746451315081549018846239190068331124646296597844725966581470190511873204926010774925757053013424493218522885979287618730544602962413414477559539474055346903567406648219964150050756289131467301474832369179443764914499123225019520258636211215314853550893912046445005671922031234794690129188914404523036619998885729870588609423015664719781819482075161885023885478420626104186571001496128771530594865105743990130906779939447076871620728306803951729523168736792174890872981475056253881794307019221594834837600619777106150306110437886305030779850064100735552598445101775739614255819045814404267981452759379882086431080991675497712555176860457187482254641203525113483872831606482495730185093996887843300944086077183209535705317894510375414299305781926944684777712182644777944326481048698357076155700687840273366024606786681637375150222426195236349111855520867037394656681993776727240824877013115203217168394948260570241326191465808407638855069791532646878567594734967495316937560203723965385277816208790090439562098925217479669995300389275911504688932135479834692589066231066262117820828974003782152290327728901390942965737286361190266059321414803817652201378868582745700642664049098109980525391054580300410972258374788113122820672575176146412209639580297102598449003042933558283159811006591177068430829762585804504482595473815059409155716243016594804402449203764122946265136336192544217028522256697988912367684015298530010232326317035331915318071790191877676501289547829353317239354287950352855010596654213286370028141730308259176216114997321322193933005314498700738459194053708418929847532490565859769359160504240674809765248070975354312986217066775839758793608681485253401385545755959810492518155642674053560892912918824751164690442468201175121408106692125638354459359991143805833439229211388981486986618530210164089723278640791425274176683472571343099762121548227801702776909522419678558293227702576287429647233388942517975356796761258024785839151782360371913143382966105195407597334051233953140782219241481394068988493090562207340924533883369781462880686064421534766086522717505561755693631810403099714306825668213816739194121102747107438774325486265267026835718936281327938472149062421895895308842321231065282604981249568599236438345323534116200561567555242157594463910632516509117414611543213957321700440729008844541639289246161323606043168348121027894184136203763219457780116882787971600288025880738276164133500819866030775398536273637011538938929939114780448274249805875805286527484346260681990046693854286929455365501690776249733089749602807134053114724066161401063749419928066482835896726349650725871034115501190471324300292338537016005623910145480324783292647206092122621116541745078675072036212896474037366146820798532168999666021190159210462792667721387723917018582065978578408359233996881053124928029627016954009973124935568363321582696357295479203751368133391842314628291642495066279075836685912672405674406477481764021049728158047290871793627052407514673594324257576676262398994906846137396798148978877297987822792653428038049415696667337237271013185859827291433943930512326075660790097358200639983711737006079447767846877342705871689298180231035664495331949867362411079741379762695583187790826449295056666166195440359432905999106681252751802026978869329529779936170180225139895196039169009751658157366483220862618735147397832634402273366322436324706267043226136862629799316733640613885901066889880714779462450010466377021727426746456404662328635782440659032852555010254208505448327213037666821667195993415839736510471954323609944717292287377819290610160787795172170506921716619676308238879587262797817272367125830544527193769301387864854266537416862612370980136194098229333851970528791137271528248283719590690967511909161592253505508139213090924073528314337178979683073901226419863519239088568225922572215319537965466488688710595801166614346501454996044111175674153372361882540501395531227507623774030050295306975647231695883082060194534728353385879858802538920710551883367550739177824557158047918338860761401030948218551436413760157509024372315954377280570691860741551229665132720422690841401208028308224345435013224125725159145303036319744195887540834825794212612279654315038915652250124007417547999115359728222264558961747585514019124402261089784517159727447450951391761953445944992399993526604690283945943366285368820985003657472949886212310008073466468481124484591490296421019179087199650739112237295150752277092464635846150635051221055476327951396783287528326940899549821882084904091258889897033812617686622565925038869389914359993141351700667450651933283918637275158569349238460626815929488135764824749390290630455096974900502766653638614897079389791344000377888745963239098695976876767768745269862329119210821935872112760128663028722825419771389851081695704286756480706753116068052858398838203125133266136747749015161758050415462907946042059341862173123619130295252560327976852326953325630514703157298126075934438121554706364675143243214377551373522929194533508829503708833313254607402960500149241298084994721295614229147065607090347888163578139367858081016972741014629423449620932610600145482485224822155558195288203534387914227487672559829559814377332987452691252225214197984112832057641091540177362501885577297806485163293922369527542900267664883560026565621187640042143893630787984152703493883355795609569176050161559047099685562708706526339943049606972887827494622846143483603158502847326761892166426181095722079505721107286445202263119413696033735363314334656206186898613646236049051528353532867304120776267880231386086710219884794115285223600963628510432168478228229303282929271566029218106879082638725952843689042055045457811386346592577685748248714518305808353411855041502066470704477332218761273079997514762087722161347459862928423439197728883261615215313058898435846576100299638078293134167058830454044991762242849180968437486125428752454034769127002470132222437240082566089965411629501776742776613281660372520020877092243238339130560704895117119981995965374125927203267943112930741884527035110966765874769365604396425317650785784469365339302698969544250687080231337004020345628889259838925703336259070155017518887347984754846687222455571642979520894963567539323795009501734268812923058567546796485857638607371618605357414690194629402444587406464767552113721625025030306762215397085215783285665372922773641775037674047798698804909101117780637229834438108744554015778687589477037805721890984351636122961135368489461893352551049965562492926850246714615878261623691764056580936597773374720391511882242598333725794154847534484141207030713222377514182320890265794951456920903558010739149886463647353913857895287179732620223970984301021194800621246467247326432417517568945125889374890333152917808643282541543226568750530586385439750925009749436200420716519210271864236408253918061752489933426288271298882477358599199436441797295557544755804619987129594616011406566251990821429254818738525019947606267143691525074176719779766340763772233524144736779194028935221660080715038550782649068104022080817274106462706065120951093193837445378983100703711850109926467997615336639373396062673620015600592954499318185976611774507802498205752345888240486221531182503576716278553533467819132780030809641368395734795218113577395432846044704281247755338675206257329863757946092720779756155622224128813469645527105627799876291989743712871090150534357851188237605820744621496113078935611744018308807917258068148333329957276314873907564224647141608659671144305797145957003357899444014072209515362514358359573744369175985422315200992960843305243947612851397750503390058037934350818506431227355022446091920982126385685443943702820396934516396478548045073532388576856207591165405305046186340503345228456552224721343934173873959684272292622693158963376932022554334654364529629772366773062350076083172063517881476268420106605354046182866258908044579005780128870796073852438201494925022106349035236867040661854314193953424003360817777007808260289812544929499398682977186697090232919934723376096413233646538766545653708686578279565922383365029425658946768340184832344756891586934687049411068318755115108836768570804896232191698102138684006244418808441084389992588269953320744237926391977557670697351444304712003616775321000851774455241029347759363820545008795132362369558997436596979424076658754476344981953559945419935560151051408065261685748664197512813588222240261302611329070152010384370975482079520458626594687957345638199941606413131473768499215895617468973157971354504806528817919981653911951220466379653366526091214498815040101770701827080106109752781023590082392194528564712209854132756305928315021697188218627709964235239316384179423991618110327405713972375660136512038710461000493710946842121866378456044107683731145288655881723023368561547113454025095829353169667206159411814913053688098710112453076081946298443869765557013018842829316364925271509096631039579792071822774246343210312674748308759588575698482515641208804096339218902952569721336414604211574370796683737339781432319836290515909304583439301332795448077042201164152573273985135035389565846649237713875941431827352390964110431305903829268786257944087353115210767566731566190693936856408006600651879553978426247754852144580886897294477356331176153608115189262416413215941121594026752110286834262421862811426627153749183872839004257226850782546520902658012511871817895650172349790563374866593486937967220865381001594020260105664504260250344109538263869174801305847779740823778159041363574424467876769022364835662576832171071114861338238253244927329217667015068657388797079894624721685923224004191392292790723777037661136412778684211324973314482801151446201171316066381788865444764033350464766843506450408923524082994695280131164667042935407978020131524602348091575343102280120467913227224055452326464129841124668306065559613203753975980502512942858980279694577628566295137231151142557230338600666005601669306114392069782226457425052971495995839148078880887287842990300598023331230457390609550430716662806660998008561134698107308481191274580079658852644173595589590119965300186665758986254143413815025577646455736935913324783171296123217119710249636857854208998760675379844851553255023840595713888256914434156358027356910802106200526762068867482552343009867892341621618907802327437644190831126950905954504260232633228142665139809149763181895882897246996004093004611243235547150505967264619255981938510563847567487319746508792313797258879993011363280686540116419954993891533971777437632718718537722158387496556743115930527080879718567255042402915174944104163763054793315457778929836509279276214213306707496396745354816918850437468375976509326204316031795184387652744780123519895336114961546844065994141418017535008224825693013391036140042853820010992816117616246528342287554677782878119853947203960285923521574505818690291425248522564546415605631868905633394860743267685453892101198166978930092868047791691334843175374343193873956844402972636996901759628834348432271831976709792450069502079108942210994676087501716160542837945521784411436260371001267820808738581844663520497579281023323257783051311407725557146375907845475843046440682701326114227569803337348506852969539232570054683648663013090857345209690660287135294501439368538157815029657885103165879571067698587250947783084280392283011726517069522292831295844815817896243570139937853136668306329583152593304155055956755592005094791100197375144241911159492824386953446797765034199925924371988093489817575148010221051547344264121646847594015300666531407934278718228004706152655219209154694212898113779085470198636330963317294704393205554770964030532728366612152769225265482636045534890595756206489384658031694921821638960994535495106612404295114179306753380223786539801552449191162224541934492454159803859199530703738354207587597756034273117680046952468925912231094469104570027969982476734564246455018946530077289738125856936035147871158014402398798922358589566637672307713266463447632258798523035790068887197163403489282002161009926658649108747526014912025249158134708219364213928689235012441649898445773288551997454710845414896073030064141228409457325580409110715816661325420717974244070381132622007934743699399910247472722723417288895709978208043797473759653766731791036360818767494599127841007945891131897183165441630348991287981972188267254511333565071304116633846696730280921775172666377304083077175259366922334481316137480890665678834998445703348332078964610791041353933512147933920358491677931180675526966465475993711680501464140845901393503173282391736857262149864219302456265765168081257084376771696615590403289791443362949444728395568403757644995213297559876106393414399581921273842378903590027657245883878672927447464032707782839858828650997393688136610117715293593067474667251570180857056450374051301551008171646663064401033321076147512455045234706223166705049568775846714872283336507409142418472168446337931046146853670824353002836845904200884208823564967714496656872912673451685652740942605234484526285751363996490849415281080714329167413470258184037725204806152216719526580886690368743527462884177039260116112137287502072122622723240658893789574823471194960252228062973396967476163999063393517145015046317486128971762519536018590525075434053862347733621003944442592285314967774255959734582704440557600909742954783533194487954718934422948008360870110261322612690005369986117809259445373034554463740752771571200644007429673886635341656941127328062415387249325053343243722925596610575378764570048390524275256041567237418695214121492691380069404082312572397464486127809992991739564618119593257664660197106093790981630459558953824906194116611768517143837857470425981320593192991777509206029640823336586330213339857975612447091559640535705074660397369109112886136216543384592122007785561159865158845147215351735935276362352408231710276728111563281029295997763984220992062188907942686766438347397805119232676596165042644062712563844891314271505806961579461169955701516474607263757939894113649431107997655142773020029843812576627038661063985090565960570320443936887541959613699247858575076227031535690389569321386945336302002263025551514256076268935988077279480259863567614158642968077452885998751051259189879473838441241432258115145473064085967531266518132426946989230761234758291676563789114273355860338198501799457881998999453358208494720305379571719079530951407853525075056604330697458538910987464217413947880130398830636259281067781053378507340499592996084808372132246088701209989458549366538454090414602099728664992464911534048629775195849310388832410589236234434575960571985298786418816010630288951448814519002481273000179712589880394964647415274051947006525340836506495884429501360981018947126981119521242803621490113596790415744148256138726346038321699981740353757767659283768018875716424188331213842751652889645639659607571981366604697191771837849616716979715937935602555696514513735599865212889221775985881904275183191564042146612359674041908415127722310531938560710635867105411586463616046514966843066892135518142496780090857867638233672526923299093592506777327916973360917360950053474260076819622542113720712522286104463107013927851606913532258754432305105135069588200469831947949247995425403074698521760058615320627527429035048130636458618612371642100495777790549689370139377100718668653475837845553008199639320533387757823565913874912109120124667547814575190821657937964351337910219332361284391275555239130141347608645345133083081187409113444728771026375111029760260935208101788370431280209763454982620767814771104370129216798865999778961389870356858066022988490005599222896582426707087598142945775076587580800839184048849379651894266795812321597266241811200527289675783030129766658492762183722070418324689022722567255654488711356115709496749342378856609743948869440032064351231360936683386797864991234958158525608753738794740656601317226105608103639863313060007703360510774412059720846469393171482685709890784218505434259001775651176221812825543691754947149799123545867428141611897884231388684996845830238830652945495307333602533442229227330053983696341477063855193595023014702992628434636256740754827261555196497535284042043871713629108226956554694943423087093887223622632167757206429875487373190172687113711176473511100587465832731596010611112946860101532449764114157708366091027325064500183901783093728350999154846012239551916164746167203560437675864641545142914782323157328335774673405589835492055513521468178325051673411205560876816204016001599915506180984282803001175442637077558546277788900131661428294510649381778610235070063255510888309703323556599031549757735012588885485752944939917375563700537214473052871005022578734083077307254973381421939823229753542510515765835686773966878036922221144027052933702703509184355431760571149277241110590553435208190635165611309919508779179743155759122114183131323551122512685942452368877501379999405220639862281481839554524568237160687529605142951855679593701324098709489218480197671748158463256697507351818391356809665013732832907795945783208157016667865328748376729448521911956501962041007418577039803158716287385200545723176527678148900561299233563486920885487654205894572800642026222321287725403243430338749277981314616528408033887181713287075150475465239433817748290678523506583461746604452129367302933831654690938385631959024712810528575568551601349913038684114137670067157739300535407948537652315465348645347870672413152652989936481454495379179043744677254897032685837326131347510033495767523924878811179919400594706851596113802945458672828630688873342739923915051942096963897280516503870306688406438528233509806602413969227610459472554421271906821909081448976738720834281855729678909945186487858594344389851240357914318940270308199788233522165199767809718574396879323702747126633045589804021758933602098806692259264876467966512417573571290408878346659860320751487628204795056607588143198550314155851457900562443249080634299266801043292652752120762102435084713632729130816758188044723016754527733888193818477687448262237788698128803964613414928731601062338157182385985297259446158386825893161499840455379229878789836963083898008146095999941586794374555604453518521565064207350901007916914216077664809352525965052870299916151108562738069214590044689705594127082333595433620095674470258897231748383485949330891200350621743042679660686125690346665020832231224624089297358600498950257722538854532580040728809735318723876633206724605597460671139494829960427877875135307776020386409133924203177408509887358336074031407975093319313716510458274049351769878876943292013233922224093264629371290089496171154329517499816495696955470449397593535559195811456610774942380976806282319506791384095905453069406759140530821294428280474720955743131113124653263221554646322822781335261476417994201311981091320477158388131761152258587265733972918635726482444085815590198958399904233302315798726270216280751419215234740138147210455689999730335451420573840797474610281890064440500544629487369420609227020529376571412114586592329427327394353880666316245007170397808886566123074115744764186933591719275917077817195459838197004315581499623734952378150048417326944743799484690373516326039427897357214348208386893815740617740798890875122084478360507170037283005610080166522758138431444941506245848433738360711751091590376229552850702919183229128951615642638053767747224666802580046116449720858276048856333663745095206292981113819232335520114573783332112872095959839240318227852950948933619115168737144271646355914732289879897757385988656895914648714989772588635685738294615296157372072462184283989415027690298063345136821332920101389125077646158855137880309588862780277187129038843155301555842127746642971110781675168003337877151980562713431334167598900995138941422330466595730556349636376361100790059444692943676331045778608529320608990044416813663254132052898051863037408021474128878252776942182175446079764851369022279575116676048526881076462102623883062648944037370157477241524367029359394571421655075920661528131094476501510453714669579301643022710028788624137166047382787871857625641560933006070313749258558563521600030071121847133857915236660648565049287270276386415063306341516953441743274294262675360327393841177026434729169324044428082774894527587178262092246875120078088348077925153410298392403381789612465465686016013926427898844840805652095466106999688294523756581529205272606585297537110874459722592089205168714419223668715196040129357640473398519596933091452146126380751548729062025562909991396829966706409432375533819240207667294877602163800542287519287461743264984825356612067907109625713322728471535216623319474351298806613406979212632587733072946903470619682949573567935614244167530617979445280509058412172586141241101216665579014471280816340889324678923262958139888174408774297049508176536794787954075702159187686150455515791339433760673731496557372165943862451551195207664510767014657555040557361370920675229798560170199571977669243302926653340153203960838916528026489056179640908763236346097449758106141636605224954334212656683801600486991618509228735777498826305649856174702403438985243941357412423682941909263960550729631104822511887629288953928839964388168980353401961658114151089924570627141899407757934339286082303086984508640363230392739925259715977305478074967337931240473560981154125310171607607030774125408155435757983869110455640749598417835832069447610583634477406385673445669237975255914958075732981523320641278322638910561967607130127257594403349881087145163561373957300732201786665673597328067499934425023822433955020869554815738115592417747760324213528386066887069782108572550025296840645055242505586923802645919217482973384709812178871790639000324272160867397053798974072692599614778474559408333787386305686050783000469363625213140873312142022871622039918200102254753077947226778750436444415722789011782311647198643875077273230660334098598111799099896677612008507574560685169022292382766352668549293326860395763755618811695522253138628803512896380672578254698973809693227220272718093355790123621734871213792585349456573548255432943768401771201259057386522980179938202422001772811865920412873615678973680672914105939748380769859769969063929829869359244027422336080329778468249015048087244688454588256065052273888333422412987909399695291707890656413522890497672372816893374365073626350520122464017766528909233245899326216791787214658358713318455094065443274987318435407351737531864410210636438641861386140410197966666151009120554886183521174424322307884786510478232804385497050584808713913407084131147941204503286311899559782754098026957264028869133851585178130846309336132734505729088497079147106170849373532364220680022614286488779235902731919699874669701567321671431863811727965577169751829804581224072702724300797563600396938305407425992595236698481601289859069524746223392903023773533778396465119237402584720645289252589522896898790746834619948322160762181823451676204056082234464372170614085384983003153881731089066908139171035077271211589189694825055953440250363307676705995909629563394682936042912768405638945502237393656761818157359517259581856023382746061887052262770455911312222399275567361518980595270522985098031064546196833039784011752630570091716428601472793848354826014552471592623031764014916327818974944886556934629751424293027857921085658615575922192100217035521187251233234112418268925309597780972034147612788400583355344149323482577948648883783586971713815566272805905074606591816981720251782542260969995104892205962026534950099528622895900304898307360533448844912158678780237666124274338829864768822603138898147799049329104177827572981736462374612470479464968645938562981702247456341294733029800073574989807336481938471825553751665175119355308312853485158213662974385267914235755348105335851960879560210015420212492322659872593919180338320703424278859318721749481008177036381021953153617995534641105592967153410785345022367490151034562380583656600941080270434579201981898449456886525226996434572661358233098334419081413856963268400678036524335269963427160976908559176311391013446240957750993474149108782634221884139578486871312653511505096721894858090201734171099568035142131693047073843644303037127820326040867178621498738837806245897211318453597086152805809698442251063999930408366308793967611993034296254567008312494821637930218810471276323983669441338807604123492277621901719988654876503182768244075707962345235282903023890249803262637061021791876665491692294861045499967101932916844394194309953226808145554405354377369146111314974969026580862737326235292796196495895026247171069844090870634614819053358422847999483221261029043857404845694078487452323114364505293976255230651692461639849517475414012569034149677587752925453977248273291845176775356288695683554329099865024954650921747995150143314375292447247299191916068130362166565381374635069069553181750927524468594811950242260070716692692645713842050091580779899891166130212777848682103503694144741000352961910314637501263371631697182065459080664534664164356077463936244034133057361394035419492986472338575707043864093920145049826959513479172892968203583333066127109624751326648114013771003911368502217792584951964494592397776041829634076223967758076409366843395534604313341746257340881319252532862484532711394552363698008607438455696595516957435469308574133464743719092579031747689295093343519758424152229266005377676511218554121715309114442096588912037890137402017798855530642488858441633290242422012494686016095551563138350586481487257312431102303297460011389257463374389167862696073233570615259428075868113119020368545393993373618242629605922332099209959229515437449688679402267042162574408611771680536143024461643230042308478143951500809598709633500795877290374774830537597277531919622087854971356514947478270533302499360977219418115646631313332397207238084804744284485718549806792677832343475973281324265219216801656933664592440232143546609345766869840913756870681858846471739540367715151762893094104060777502181562694971342888151910129119310179302358332883494052201978498170944248900345048685767125035125788750181253385149639625975685007102758844187587302934315158283951576549444715146394044061405797415399216069318590270515423511647197038680735686041849916391034119936545585763783481410222732471964131059290376433819587272466559008690704966029666156033038945469702622314035729069644919087473254441915829263255370892426713492904519143758244613642713088640454630057291518900363157046778398773082606226017575587314866123419206496367787401087969272955602947490382115431240620791449778985049093852168487723411981353930729028555017419219848287834475789956256194997175949040990133965986773203527301551656446698767587033177718080096151549437514247977127973510086590479849853435566022139406061416641679543025625030566858368371170061476135315396443145669002767799789521788001854148315528998498238825270266892839560833657959063656177858475636308940207461257864856027291844121566107164945856679115820862685612399816471121722839727938299837292259207410745283750185040581232288147968822078658977438811315997368700797663365251863694856788613128793072645683699047522424885709654754404654460140071173016033387305815334328292595887505872576644269464731952093494714497972011877423098188466991657045675859358541810737276533108127937356948298558222438294265751453829129462893767777289438681329767190455571341767865006840923883198901594693050498496831419137561561899187952666431063256144494361760395387030903761547291256295601540558112848343802914905055759710047738993551214929430286835151504530756587988866627530713013632118983218633572562670439367361646247343289057094087651443269172207615523080292409791832495787323894760256810628020169268489468924373538515576912968863069338513612682169612106452230018831958586741916840628286159091604672307549953142846043719299826919968112528811041295268652707090163951300379818426495812484911629655828397146096792135441240656086045567366253208920132250306200468532602458135257307247385847437132899176382416842361520068751752433608426736292393446993081997462502652473658347837655272433807449972627505889112730654995838420040385848327357561858166196873470439910963083667133893673218501241003613818371486170484808999814059153982056883532660868606046177027988035388140650354681314161371337404321545278587172708571207008652003223677848872349032001944151218595404676987881742758212898596508755590885236388255795687665851287275843579789911257919347338758184893726532305278998612098757971313100223970482680653626697501657432899735734095746359351889236909772356335495117837587653215448425617729350668488202172521609770472118845731256290247809204819575574715674836080283198012985960225765703423033954268269397742031920286064272173729021420282626789033029685920976524034556071826801366642732018437528389607145449333853483488546970725858919340968284171421130322203967649677786483146989736803332824059050271042958910682525532397941908571136182033262506660483666707510818626604943678190931726425373351706002860353593047640817055125982513890145984098772587826573257274016016106346908707147080636980370222169832206042880384517321154003512910685706066385533859985584572735856470784367230124398931845361226434931748664687041883069648700178129972474980598261463781918793182008757765296949741288060437441675684153157204059779804391026250072854321516442089576654125525030442172989987932062749973126373666195581129575830359858979109377854922325585348735497145713129310923022094291624981095807081575409162551174239475401451639684029040952733889318527455407603806815839918900274915717386136401455790621639057514332414868632377361455953896274393612931636970830167816868617132335487829474246365359571972515809368696627445124981625091356279361457036476695280376750829626700385517779440138924219959341285892966386095320711322878233951573878887376835905447462589733981253700233274500784996470946323368699823212234279088023446256707370196962450929622458992508039093097936804451492384042123791024735162414793944919088840311325168680956618826476416306913803867125296615964620629876982587664603400474419617952638564782761888947511276602509559101809473759795661828475985025879748147330931392493323961934085774660808691360172083777025571498381615778319674823618716933562844544490802483615690659890015834559807327145667847374044505100602803619918830915019716434627973298905771828659599154842260479713550261754495717704077082658495551743306271071533006594592233997590548249108436788327985812973760202434963807172722530651639421861517798633203920180230718979812856843590728947178972570575675611040089530558233261349560437432619472516022144245985738034208278920665116879993986772203238459414209170326047189008394743554896800383367554327101201891027178986437074791852493420740939719028864850370876818038972695005844370575682858120834987919350964225170049488815359630291520385108746439771041245925624073424292076521368725538023490297236893997507149143973536147053168635982512688447415520921327072378505186360895041525914960673068983348806683167448097266325528776689856894867034541600055981318287480543499972611890507973381411395520038663119861936526046003871921919341592438910115726182155396342130685625969209038421513271302031950714661422054221880010823007982586150363509542685410061266608188656168881740853990535495641242337864875413585138735933752457411758398142102146676080512394877751751519246092957972539198245389681447297457243154552875722151036434529618014877056851442236652963893514419121655351111278973458581848672261534372566702996723670000749911072497211953263234743480029307017346385707879680136463346240403594501825063015248808030361617510601431054176225742550783659940844897412646098752274417021588092587297072495264308198075574114368094266083938952772505067597630348512824438068053694951199046938393973432233101599668337729192606323504943426645067311139838724399448916743725408902028104436279293398251964236155560814295531782963189540119873650831893072312279400364909138885004774970072594798666091746352847039034050021975954383364703803020216390847111903631848901529523903755479362127993913348384385549836884659229440342118117573577614830460244814760589620141820995176824082800431000708869964410204862240298940410900105484046071362328511514240578436896288905840110072794297500243989054571631757152482240434793824221866041897722228449743388278698945076852143291697917787188919312555463234660199464925994417484247063935802520229077457132556091743057145461313605940165074273991720374312462534435990443666954864372279350577722722822223791747796666154155207429474896544246790198869139967682254918977587013815874007604193624604750102886842367949372933838904629849800628007433783556872359183013289352478456559353776360918729695993562089581882641257312479879261261321309300190556815668258710589681551906585424997440698448745245347668013571841587982072123031750160268504929858450899519398282308477295336294467028644914950003148437284537060821292530136829909358944809278479350450806535767293084210532776919365433332061586223392313205176075625810215708336352740692783456854513239669927367305845001683015896915891017424109032466145622922172314194417079745341353204157688421836664123105423035486103612452528296095693954106262447294562490364625365520625252117073220260639774800312591610164428013352449897961219009577512392465179614553751073760433635090103051068523285638332695726998533866154542333932823232340273461556055440132600326556347075039647502039865476318805843100292162974397154053244831012369299556432282149227796670870695298467726889332678540324749791878727841594878896622230911197462457045115874639228030580579253361357979375158579168735517590103077274994685045777161737641209566130517668321399851817083225676309817353080352572605305264978570163130776090654277006931113189112009545851431311060687263423729850773645213897070607009137748667382877120859226147555403222553108902096158423536924976460433771295025687296831508028843420027153450075014285183992192749929050536790702742409397981806972466962734752842949136741353064837170106343400806438278875129987739102155331176451921370357982353265631028826645563496742681868102547942948359286602567051692830831885279823317592552634248360059699725899438313794006667273038724587754854895734990056358997788125897816277133708566174471017961817508210588685694742170579759984241501267996573587977272999343295981310161465433011765847674727548015551725224070911232412176149424819479363683597492761345618473830019526672459639768225249033285681384943171710187297861039087390697144946415914854887185142067685884941301775980514828371801842476307457951702107872596976703429665392381860678122286667349755367974608671886352921277725550541342024501721931669647533009527837997151439216210615976902984029381908685667982855470564936315695473323141918611615744648913054628628090789907468970231110114896153616374419660930770494603905048595852553002849359158252637663743546461094661447131009178272763303933376329073336804928467203189237235489346067796233473200551147465805703492336706958600220547705588208634589114038119772799234723084360795487246137910375556903750569888972987566716065163552866490304588922802095869762012100575852717613219484921023082983475488820734960950306737500318926641687462501979399792911600065642440520422349333690776788330217102133974107856640288717001940234713471775326091017117353477179495790433956811818787384123896660559184722189180542168976040778606495975710208611858889207160295035262263792510715459088476315286065533463647956299499117261948047662864881403780962371738837669854555549348602765302583615910435832056766069299864237213619072284635400577175734066707935073081190303664096077704477623107587936908502314682370433401399406385156867311593576213127639298610724460648472207987371177505737952415713252809729490911004886440025902619524830814519760338345774018298614987288508840298662173914388746457466366768383287918268874873136585899244183769353801614288252649481875906292420858243006266604057719304756450757543509496711564357179328314668323148125152777571771208630416360698859554496630710013127785737115706176856615614127907804936712997146263250391963601980246743619177687830192172908838252005979300557737589116433968580862875000383022062898299231789217271855294268453564147471355550436952967876234004006646130174678485738837942979431870537284821774707998441382643279640381372086507590746326130089228481436961536868449101187495365766613018614784180829692197691595723943621145402636677646388941810653156533511763514075393489464738038656831259550432017863798600200303660749767938195245082616854893062589137229057208452397259590980731241081826849134309366311775096707218147020559490423197383274262548479150152445419495249926158214131615276056091275736903441313494136607744620698211676142060337292820050644579689628045070967076581856229219673487504854229638706734340338623926850032625317512529471549104220112155274177309772807489693703296026833149597108263389944268026794196635004113035446803021642705127820030905199904860377959971348848796935610592597384349641709109454487775640987297652725945808975681114882637948135698000970198843142054464302875029014300493157332194086109111615857012312812188122816197907374709648360141589862725030063638077467020499153187775283748833227096445369034868128419078101155631689473701985445895992783511528656447398165704999086623559567394564163934160062140726254848010133408596604322267766447424786765293552924316908939583928413932009689241896971684921381967592467522668507004578523120229622711590924531918396835919424936076550692288604970042161731845178468061372717954664348198991557196774654809634071098711240895967725858097983743145648243723762317605149353539776565439911404372727880794610262692182551274631398725595313318094519661902239444285750071335134170034480708390782333598073705704323516106270880680574571313413024041208074467277531536402040180404602576350688109597218565079101938064940099066239168911502756346367660145522082701530972403011613199718129964381414409323525206028084260986115970653024587764729307006231588899951514411670002935965717907474685719263013862348128965118553919415344566907254164674694266803652235911014501228149500874919040784742795582471078236311109309696412759751620814217092070385502046775940730417663657356954936807436660503120515992322781927320401122511596408889777583133444547602649819485212558330747437471705606420449937190534471791350964039364511556642473984085740331618915414369196704441107960118256349523211923171589955623380108566371696750657781344833409704388750111650152621045555979363629945834697785053682728051548409039261351035014449319531773412635982176108309930836661074514090960522146310273784176797349594115931785506759148651080857438067619683412450064420650377209962761864849743150719604028566582571037684067229541703868359621794863414653840591187694879641038356691319213632562556710397303636606969405573505764504510829225569878812298900752332851064298325094055431188505693577071807362183397126111390189759328311633126778810596582244769621784712811365021305053594878752013246727636018202534376375454750323366670019166063338502306209103505020497811083581454621979907385346712555378016502510343367716078588421693561678427227466521737711584281025471098361705363357833146307999647891037847417783753896542436712783693637197876952905772338459718262987861871739772151967115501792610437475615342588757958843811090829045479193477702263542287166754632744662838923637561415107586427370550758923436701555375110917311714842847776115357584086568406630015161562504242082465346051850072205379897469209773616831931683268560584558505441449919519813834743792754127830189360726772727373528452548351231748831740470998212016663083840347385208972796878257440096215324040799445893236510242101890018747996127527555419893535286432178250936794794392030217562334263385453359340431886619481436195677403546693059299571185902810611776357829263604727967299193676257025919135083526485673239396286851221090963806929754244878469856657324668176596762223398184836414754324517768999644903848753370715183497101138901774274295603834974702711727680432883790832571350510841191802293002290210189424100113599565703005325588097215580558003201513878716655044251890575169921821723481628147173679500790185254932612659335385483128939864877596324325423714465057296789526901213155487697289853728912301902293790950290938878778353653839803033494415003783729709206470363734698036024321793132636929235047651260152182427279824450209194625637332980448842324519650089381542979108719391416705805117908014572561012970166425573543523524426774431432882859244144365117059663417270495713770640384030428958876578201951979209741053609046512186190193431596942663129987212543651645528129577004993951022720599083782636217832849666056875730072694102328597178906878594259563728258463768564668670260833916457913397668170775580757449017940245602916081031590794875481760140144181167532225939452761715871288777268462971364116572369552190723400700526155122211027804324903056946817657344158785686196253464342328014512160020034286117242064078566367476600131360189404217907304757210542896952083716064777440009180742915322151758564283885859042376207602046240613672319361276328138173542878434601338437542559954904498218467145209667712449292797013155303463446457756673323452428208323922364316231201699454514961836124103771756530139381654787968236827077697979542224141220392260806905697771154570432253591593656827117937995231695492224612659363196306553164945742234672067066419026352091755303895919270730674355912875355030279059173645535855029095608644060256538297912712772775014136535313230986364925933035821039843033259815781497487785797346507706785642372409350036453720501670903852552033172274473484937119995235378460679098376669968098299468449321713453793220830519535303148102030367516286161814814941838705637901120604494063958610862052260295557418536346758507617693147424899865126282207559587045029162409785350591067851283685401547021464840693290667863824711190105952212956148833347039234613540186424989951487317456102695028862774704581742995916091584903036775173136375840014703536289779754616236433809152562778637721421394534309751027935115561762019435684328609047250691077658100571597215070879905839002906202896299470254215190305299971491620135270776279905241803585126706044379610446644903167091364023958231280776548108443904549804402657487864036120142146620886290094266612704126457106612656724730999128781077723609595294930360038346329409057133182128792725457029020254860133985266071694580862250183310977892128614222486523814711735458483601071050142685273946532886941397565929848453642626723006640164689658311581704924361720581859699573842055117981305161097766374882646084774567044345787167167339506714916746828676400358529450490264961031207061048401836029078340342515502863565554786784565134988697500002040303602295794048201971896360922804189975304931800309108392630267729660926700620908421993250672078567501065224273187835937461999473856782183644506841243181299406584323149316442358859442358381376892672123529100830033542795241327519706455335457281453977330929619286031404795446431220677888428129309892080383235897287064011634223355824139893613439487155618241629403174057445870968922450042088243220811716169035308076782197103324479425044775371967204847455531811969455882586358170029313465263013117561312025185049178110561766135210676608160848796019154507994875230170851627312258887248522279316319855774588182940510001561000905377138684350306510917711338461275608138513875762855629490139035768696226136059809457703152170125298574560577083759658780048508899775180323329269339688703935104066819454680989614069792869335801695973242383385032674612826812554409051825926315107580681330520177878970703904792800306345145476219966626621803391004337376109336854099880781648103607884140229515706272026295694794260507880577966264732243632539860568165723184302345557535803626514319678081654866423160256987443292824638542103395792969293657817344139326702324810663751790429111053209734915404916190503185681135899497359096960346031171540589543508665168021523162009963274567314753819273932705793575073610335499277914442644671371135792059748474336972608785753226176345783330121322397000702911225645960157541098400739903835297679721998695893341606719163666073969645583522768277494290028043572827090501686460783183803988984169872817609041622956999722626219963901455192982745222250589228107242709777100810127818521287890109140735090411148449997526792773118695079722205687248209001878367832040113740843045635531874279056751457247758331486099190188992443830265907584412165077100067247361962530783066961746820110777863126121241008524561070453379555210855729080422665086517703180280907575969281562274637445362442070484435965985759314502481275381145633338379359430013901143230131105995772042701069794448857594793095462984314698605512577724202588416361632545051364077841991987422261167971334702020026940483889712573835210421374209063588165938810078725991407490874782574801966943799364477014272411881434536465042127676056351372941943765763659135383056071366105101611523640981567242007579637940866866545675875991884808881360720783423245171612579311449938105148446138484481060920786180976174393790771062901199047814027615242712610465691399905468075265262880443588049481371788993249854970743014946683854886023373841571544888741157644438341495441136684804052601992606659896726839377512005313424050162954397320757126052113521201084910999965490361287974873654709652420639173054948679509458577602696827947106098849786986423086529123677457110902898210420120678782380585919246117461762293535281392390621019405186127751304372820558580198696822403010445526120412430156061391208222756009563848309966140400945477779125727022546964543483215683698931116794383027278643998117921110318742311623848259313183269941582634627997344311965300802962919669886905539497312811707907707809338107746730030257902439185632440309172893996064371637303175406321177363234980273258298637120176148290077639759145096815295372955610082522864357090614733220567312896090309011765423856393530458578844466088287192883586633042081784360383056256021322317278211538699719372058902399224399113327915337534640616262578930629330836276055617723897199731009313922658420146929221910965577180845061505425912538902586312892992993999444990856739858196466073088481243522274926888545524550052084543923926904603335704151979106592571718018447490641713361629476953016139056707121533858963926162973312348482716521548927310786418520044508715970286605110795636174098844413060720017455845730257792612565651697366510589315227486074499628090729531562194691507984649483714659913885023263766764529277266270843546010828757563596619922350875567729600919132327667259386321586922353757558816127915226562760387220199638264977958237719640359466717324570722906787937224181786976171476191123567673417679927076871224851367557757542390310428415268778842405663361898782472849750547982244134583526741043757404815441379312143802290799238021172849330519283978873468817450726574364010981364425739370229518529292562854784868723145388342892589157947072995966406924921385693418406887661588170236048227068296845459913777809154793170438701437050749597447318817587343659356574778107190172013009843895717615175059193125168245667115947734693070937517325736414186190720287597738119258692825461058557027396725311704627632967165259331104658816300092918089307884705532860202943968026800878552741325306996656271701639183613594047835540545757415888710477533581957276172894033743781818888121521315370416698884139832430334807962987291747066935225717733150073631063027079085601099252748961459538620368767540056894107924928431352027854208132632148256701681403366419015734441296828837162795506397097642052066046629702893254969678916506545578598373072588311407465604871572938654954444732362102088184228398239219321918773005567612851198243644532049094626274896981756630198893240382023995525881299858218218421469252471664861920272999998895863667372619727749064875457458227120459195720160181626224433401833165022534557102048925219179436522853693474665986861468020382232785093606594030504745249233830944586796809672635076976244017009478926407564603591184509871463963087241350462215458963017089852216791939963742241602917108973582529017181878028542710827258540513936865974327119791653363078437617077321764800898994250321515353691857848746368411609343609428482081733604462552962917749512763828029095942513563727762890038784680742218732313636343704587386544282298581900415880008243562088282344496558069264413995024574451875766783068102003493477421586718983434247499838493702172999184070020437415738803682899590280772712980228667867935996707017530764815756698890750774411257797721407529279062443150590071653308372092651746779443425985936426690464817334252385934352796811780230037944610768948460497920304354681211085785024975288812744000248297966255573058203862532977181809473770992619199873433337454150242566506201970104751379883488613627666586573732269441458014325895534370536837093252389386304148685126409198189650280336862186181984532559919875592504480776715612750929347685834793728871565884817290574177048527424022001797480995391886819739145439455626826121204178155146560176433714800713962141581725111877528504141620060204691912053369376251812416390334981885914454775866718041330189375921346257858984992951588566050946178755401004091309503382240107596897396846808495501639408107132705603520139274325188514761436392690061779677241562745484298304459294416863847609750482425094512799431288554373430973535529864067547591772109196183309766946603043625359685216976412087815133334668870951937135096447188383764764983624370540087290008388317228717255998984141795833147451217407594806468465957510568258256712533899466068421532271644957610617042580388926826445473909941608668410269465260089263565234794938586805974628767844097881179855686686505815787393237547440376511543729155898781841203029252786330644678834497274315164782500697043332641374535085365392287353860497613672542560212332589179854838562150580903584070169731774446722846188288987992480449420954438743212168919908124106533873267240893457878767132121832273405334435994296276266973963096538642552120588550641083942586189386415279600824919090482252453366736785442408126114669189075181458447146796797480499855019673263188474276063643891537292855909689062610446878608281247232088819524490912296094417705550364580979556466609533825802909229975619938824590130211937209336281102579432300653855634973098165344550726064481893971506450930564118433937451001331308259236702069551427678701584420623684772726023564926063728879521309435207048665930051145606057054451211950197336602898792950669296286150853898032998447101110707402109732769450034720520435877363384668482206922915318988765985264099315074098749088014038782253785206823173585329905048855278043203757217117186357674746537133731768276242574430962343000411939509256231134974680667004516687717049518303517680936077465353801162516496462952740705203220947935568992309652680305573307488356631419665286884926298223180757705199061925054372470412223662024141316268206713119728333923149850349308161078744112955112995130761611488937446163306937307192233676873379224014334050591858281719787906107154711738416314757335142416459493050138349000887480180559611044620888261819596470935084081822601979177795353604494137799051320815602252849146357396534701442329741120462368398152695412106051859944588414825477932667265200958121164949374427780040364691195715620108199444269873800759242598189046257034288701776963677625106805601753239352606181400486771165035008681908144531905606410905241870744303112589273819702751173002039752896313509309363815262570233389734095502383974650720769877637117831708302884758283894521594995763087369131643151227193062643514675383883870827633010726492914594437618334758384319334512189238947728429908607152981116539184380643610458613637899730122843046672259523859931641852323280573556754266571908649578763591386053706185843325224427017708108355186133836976536201134368866341156444384912843887377322849959238390989357740421569891433731831469192920494827934576341230915200884947472929146279588219000688933808348073529593868351480737285361772703769255501138260894722582994042892884767783460768802355412017202409503039619734049369836224253360513673991373302632755610023358840698347273966970181317743716608459277166801598767107434446749734485382345376497043944608011546870857721541322813669509632381534575092124023831216778786455039704484869419601380977028628564183406850062328244917974989348317388484753179838663085093317947177985333123216913496914989307653938232694460681312462370729222184071432849613226203753807974085176437641554257909602521848759486808033026992359640668738124650637780248565617835150576392241822343431854189314826410569534594368257146853475518667198845964008662776240519055161115098368097507256785630753233254232076559202155923231310321623948208607656311204980082106988145444762033749836766561126363448608195418604879114497315983776814552385751979019083050202330844829097659906201165639998280399574313926173311694226009413863892692069338711164537893942499345409228405787835209729803009594368196252069168651341084952185189484003670213334091875799423791304736433520440661112936527675193592956026527289642312859070789007829463616994801408304624887041115670397666604126345236172733602326461334208862717354134334127412540263171819947116649488483133812276474066578353701041676923636989966430773518024915025381075028645229842770420767686823315187782843988733989446996497615941896531559418121535999392392587581757422067912177278530595501650361980957579657734170036777547016505374505020143114644703965418098554449196938992274915712355728999027237632145687487596573464909779522105695745125083004902288584875263768804260863997886047067033806907576238048564325203044459020900931726475320870727780208847708104595448545273946773262026562646789997936332941027953213147138622568555759070352479516593486953667021724724066102046627877482933913835775225638007681199457121195128200206787019178378912588466534314163936485754811963235082212771049698998685149125261605438053346477626785363530814135790072659602076036598731334654417844618990425785432953866656406090067244267741212062187682037890607550055482758284382963760204547437414503459904552316232476674775390439564938026098820836875659815081749152202984458823054299009488558133132902371495980221363920651344728893358854552248899323004303724249477051270579953032898170325008141283364882211084417964355441365691934220662036792338873009959342185221670624554743202561086208503658195691966270704755820243715987387005407566197123300599812732234788559128295813203663656217584862531907194422769784816379366823976221454620098307012312343534997357563238636740387688399766131077916590750493264901875356234818720300654911818868912501659164232746083069758137717492807334907029242831539480456228299079796886699223667371266657919144995190381606595921013429186119159388362880012913854778005361707618696205365700190113680616524008397209911923482039861826282688392546369359429285975887291531877045088759331046999122928367297903073747958898000333022528420634530307550640450149639931531130586426385714999806301700109591787188780001456407855099191711877710931583911199316393898387884993737797875810198167799086230772687163071442852244815319348415185379406018413408852302253242017280291922051554321054419209276915300145093514836152904232687895909957709757993138590948140928479563854455124678228889404304956921134211225799968064185388445651518212957529007844221628043707867365383042720915851769523337737933815380089316496639858890940621674013496167926230237253423296919449914812637735792790258431558384288964147831051485830974301778418190487243708902968734924610646491009168664051802388420432064201406023212628686405982432686385292119416381801090809042327594994150245034705565283546484263273362561773917115846254851670928646765036311310997372483393319924508948627877523707857807046823315554652273272644137884919904390222557729331579346090102848272747402062357114591408826782772405648171872617487030745824324324154848853476108470860604469995688664453997400389271460214641812622998466693514328781536864822170676045617812447423675772398336604662435293809392295568261228846312099955117438025080286953140540345751147451806823463896287811675246219114135763420693307352823925065630676775624278186632242104161648482221089963105765041409854815721194578732422231246216368831306897073517836832942825780926792754609983662573848325372427981448141446110711099689709570190375997504671058695564750648420080994641596531613489785613103420218431867371327282556486084588543845787909397253909990187856171097265623985195974597734056368540743363386636061516092090268532463935803926680133983790265505516763186043492485646877637863622199738606750988871807704973872480231852858240365236946927120456435912983850220344404642115160146178938201520565652707340031902136228609171223040564459628476280011682917483242231274263567556330027684625417869546676006272556584414100375152418559302317768493045815460900047186127514942169730282865237102560364793109568379560712022677565802978868558118674803444819732500528262369481036289107919095348611308251454410417210761503285279049380640957726323662819845673567791818046745050747794846681694412423567708230426433901170478281866997472768415103837905524515602692537675080772053495140639011651331689056695170420144869657764235651943458966496167187391432247290756724979135151907039012500658624991445061410717026397272145762959614092683872127030908145466192565956067836530192235531783884221549062921411635094185696809824091670982628740951974806009392483310827218353879363126339940533601110675059595388303937325168914152640601348499744956943816559950535440809700557678443113233858835132006127346342972741292588834533130148085018676425702648785824999740691274125900983644585573598395773434154476353364503323246210749957592330874028959441333182336676465507614833259508209777740382403134476485792915249190514681655586710411180846106060655958102646204268921049903800650474325212976725086767911821645005786420316046972591284555343135182203870553689449655662339914862252505043408184532759095437060098967296517309224232310213814821269840994297823316160301351186136205332025413031340729252364152833444094201964237346784387300888593925332662951764134533684738693106892551371360311562139581858609898148616971065115122972487649166614494646219451346340970391063691649619510900035628791317333400007928126622901942120398437455559506545686612562531292230952749085300938828654423889464900527349287706901482715583629826534513748284745455425149734557176781973775368511066181239540388925147334920699764249152439140798509458743493216162093008883752552691952354228224806344909438688374156278480462492119723643152300179522239723100573833090130668127128936947221314439454305519277470475888176478713371216886920240363365748891105353909832778936198397500804122859734500764206198105373212672078457066699552660181036266939658998183072883614805707161833578848012199027285577985504606414700068252672248103358425012221971062265659422949789571673464579721205749563886659660141039191832184559981246695497921244080421870217609230204953635488079106038637560180844773751719319887089972583478914412209508255437215807162472829629166268568862413607348455088066318262276333557158994060815787799468528971825114033110302892675784222660562369104299022195528721387062610642881920313300577762747370578769921891975276599911205241995117532404569416614703780958188891839239394174517917692158214419867191797749421081655441511363133755618189455508577429500547891389034503658103474839936663045888146316173943017274839059947730591235714697389668995171785193957516700041391015789540254098570799252898877776615905700032471747308915268546755648047933504806904642207833067266706122979523659472499547295353398603129261760173110864780643736866349997045280222238153242271238636132513097655466024140945940176873510175596093421530838626394060306038787848418441618297967420626446191546377172627000539914884218665944898269258585782119550852014837805022191922080318510224663070873418860626469118657275288739959208684132648516858304534003235288225641902745212574408390226249293321095571697021632406131604438091506107998017830068987438528489987484694388706736984662465111207076378281032754646884644343973522633645829004066214259914029546945184771861162057865660661170970078316813695230644261512587437610625948868240139563462307424387540584431863585113958095690619243269208982567658578984329664959468026678890490777381752473119891528381954948671178091635422898595746685508864979044916204390039453711681575441704029240995780230742513005576337079750910331291988063556618221498472087620416525740540375267096009665020268915433927110637453920274782024779443178642029150011501073847558858245178727917890954350882681658788771708536054901922648705348203167279891303423349593450909198276331177187017897215894184316609794229288518230388666089355166063386799310473860419381382526711274495349034419100010580578391102933951959713292708814486655083067177542627604362916132557903658248318149720838859898193027647020917069626960730818688683105161685881284132344672043621421004497639418237612002671854893401272715055222774974719540928164062461774105225214885297290914615003425842695247118834799954532738863862972152029079971047909062130159265492238699988758066818226131847492092706885548827386268032436001460507347743677122581873491833337950660422821559913861332870306077736655734790423370203780660296655312040946147201311860594911600654509113874638396671167460178120829772634799585431113438414896659133218669878243141890107897380877809806515315592708965907734936172689692948377644330074294671819681378640391119178524715621200136607032046584853040440735038708045890475534914810637382153034751082513404800342034139651728147982229662530103871336946409653398112324433549635000000719614293684548942745264683483364440381842470148462284638175029210012589102053564925452150051368892960596879398975346750833556443225693171892973363596466296982678697878391333028614553184291589057669828716716309634787881517973577657436327657223049590585830390950573205494505185547661654886388465863760225483363089606000808886603039707302340574291900158910673942512834805152793596401621575834986682606636804327763634460210366361630727853323283094209630529858000964938198789677661190243008706634663537158570522763563070609996791573336996343182267347448206854120688712241935004643589418172748631061983703458465193607042390703251752228474814489650169845903628133988591098970251317100097596627407680265644688815193030326592817418994349061102029065214951612260831880780115708404685957609133686897685001176886491111652067756837652308951971977451622888201112646809962569266523215213875017573754639110127547267518746840311410353609103962629947294317798881491086801488118858371827670186605809090459340986213258838932803515213539344810826893955176634342612858469772523463191712213900516374027960750450123627334439381627730290404514150470061241311482605011923205327952624137460291656658156327035191163178075791114794658922416192078180385087850553105867334932758567117651512387393102302274428051951954643259403512711305648137704938389601003099753575042649886197109742398351508204940766986099166988546459375363749993974042341362535949149770326566240405858300269618731682848692494576874021756956301481988387920106648113690991902639634927990787760372438246298517357955138349537342221286183824619997283838405743272503292652408295211701176116329129275120198517670866243641011840718476878212909185316120478054424107081882438710605398010564410811740725785752737875103110677628678095713966193744976747429505802979697596447144482194956780180266336921127987719024837948960202087426342878213296675498273842143787333951743642160847118787750915480779815836464846056054763865006191290889968160964364484996928540282612768322624735237230449743458236648552159016645904625990243166705577366357568151098017983853947969719349210005915562944509681349661174219488499999655692212905856633754716953569385512302179817258184800310401498268608516491252998304577740150034678148230179076062414215075189243466220971833035211002091831054665725386559977696199379040106791533370726328709616924385594748254971036176539462201247588417383827429414483747495671519541093083041244515862297228754790671056658938577161108005222420725422530048567686298822491432451865189311722299091307571423049577152832230180650045214642097786147616508841839382932802147917961745809703848619859497751546806524502780362153949389531468745524724325844650927176347901818116078588995686961098580722332600895906943516853952867578406196951995271816892779619388167149795456942115726611901061308278475325937145202501173371004891514685147026108954801052972381122123343734481088036445283367577975343753073938422870869831544095779942143272645145672671773781226219006816959580159729358649327694406993802010279374932180859966107809124725937340914329582847808498067548928960788496284582037512609085434613213544466068738966542866593852585206845386504742627819760405591365230138664795823530129001459737811427456893219942775553502843494525684682765433300517340881307667252343481051879733857241893810307342983746316423988051828059286456394096709124286769638741053994994749497216128042471564781804354436390611242588553628970372801546365432501807732676262982303386253922143777535006555927324430606290179922808165722673708607309751217775983670771043383213943365612123760948906520433899356127102899003855067729802674161516351122430104512746997392970292364076860019998630586534028900983069677596565902860476343268813823488058124218252615269467868952759062044795149387715024826734071398077504174901154792299736196846059270323143440106202272912605276998758489878284309657049350792772864226021652011157984234800388069809621870523709013861777841115844139668397390733391858143717678752447975555784252509961655846453194784409749264542424361396237018660642690533572552130221929316497344744698861325957877799469759507075571324735915193911248021317720720792244415047549180351503384343556368571084591789236480635106631408692839147369200275599947459048651198518646925698329180673134535715167520930472604693861561952433839309933495177628064742693062145192156429582973890619475000717757315158844762536720119712333834954358992435994011760841239609123715618325909448125699571520918507079782703610378510748378027739445420564079391335336912498845058289417911805590338995124142758097555951944136530154289159816278643639003538218764010756438198650952986337376613092816145601124973609987795565057531775107949924755298908052759336598520160791719525444013255035964672418236010255612008375656730332333173500287319208932262193349462583620739962742161615902861553356507799000047046127673347638614203345198282927820857436537984744060249299566611946811608907322553108595063163949847496369625064882485253952290784068674720255654674430403078492997600687117922513465080272426364779327645378439325506113292149506216109149742132056230051153229943219265487950844112919356878695725186307154146472473456132113288566754152923632371882622944107122420481373295109848730410518385868090905593555373929032236304163848807175812404369102672275900574970591966717847894833284025093937703348465573777386574710962864337165612564015634507483829042845056959552129898761911453675792853590966047964058105357878603477765450957610883672588401638895363458861388317443189444508522114876921320978596116724413933834185656453731642907602874995770765713259534737512134513719361662124149811414245203690094493273490861696328029402461093573594521532046368745489881356719347876533823058138848340570520242745167736338344415393613720640847542655748945841865907602991245025894280150667849194975677584835807773341619414446005044884980186760651602870972748426965193514524796619409114911433439166150179110787765502929045038213281790808918630713833709358345844832579874742155692804548085545668267328412371785855594851711844399856340914021182089162051905156295656926603626346178930893919408087865342255919453913081104374495025176195960489789939813461008987664761227617906406483227197882133326637451002977014263013359186687210850827786499410875327802069204695269209196642206450847471681511601030768248366324179772418243465984402199295583571172368985083798306224197054492447473669936748023737057441432741416276613922042217109901667147423599170415116571326902344261491135347808668007094803099778902926700662802332074723604512922370824407950996615512525372993560317505730355709618824391215158005531293231386360621442683003537842270464311866936831297367161233753131925809932941842030080492163266738804101207249035649031663099907783957293614222571457525494380946079010006504418743144864447745925531422679030681627625954654188369119254345261320301556361831260746332811214021137243848108947597013578461092543720701177187520738747695155241221010409448394125035648943830941904526595973806826338971636601641376083619058009550662889352737909039875426552666264019882484419182242684194197906035323778990179313413496940889637432200539910788831500491332680571723172591505805469855424815643133366346437131625016855153062507965426653523371844036132241906362410237107443338278477219372221667251906482093107632157309203290803760790151398656791676450854656597486045559737828948371640580724126278718576771172649832020855393733594567262812017760831163672743787830426531867630260695064231500826693657063737329085557325610472440799972166975547016119645024808623780954511145881321585088904016756929484449264496730078196519009831355023485666900155665590171891924218501035991405829693073788037116817534030278489838705243694649812902241534999425551579136608844882664606215170442904682571623275521985498971540069821425801349438118060427330910153508091181799460044243292812136198345646609522978250515823920160612497825916537134239673359695492706251074923764582140106523587969369670531798612858369972642051459692640792777608750083014308504675960547681047652023007998113175351989070175699614249705812910007572975990279952429918985108282678378349706306878092391407077316266794939552214978433089860429433858480310359234654562810605800284409530856433089007609967050934124837289834658965045368472695427711306140468249504232947591175280680716648357733246226978650068476773338749631624520744927229942621071544190606272642726842020220577596448849760407318628157158302961338103241915796528928005054992666231016548661213249856055593254633842644441324862030948150786107289811485924692492239596087110191529514179664929833380273996417882771299107272346373028499095219344925821239822156399127690851354438943100343162440965622649708896639887573678715508556539715642791856225889979273355248551951536236406501617176484878858599321338700493227402148877644908673429779756415104729515237546003389159077727207471275321517132074975859756122238061305106300111426202695561504394881495780596322443175982084620495796408329059404926198120013638149681358071207292321658471224128099663845629200331842404677003108354738117730562534530338805361021603288354933362779891381742000299533991469324360873567741276908592210699385435544910175080477706493613689153920658826399759800994104217384383904311328076049873907981564657552179690955141175674051390907037834217970411742401763397659982262944794460080156367244717519788415629991368458147377022335235560975302031000976530727497918774724417614496564136860395492511572078679897772543458095852642508027414623817811656239674334484671023455550724262472985015892223279633940677482834690712874183401361555464514911072995667730546225508870126550047517117401157407741639440844223387452652659641518720413843962340901879051564645449490893746930413075216850196748572690561328890450564723510718209800145714173875934924498771030852195885149163448662700343292491410215569219058465649065330400578556587989854365654370642956520767929789430448678642416896286710661397158890288047371892746367580410209755879975051668818266845078648743169006428485915631489420224408365289158692406917059706451119009957374402687089043456079949415749997675252674463810536305961780519007090574991209956138019935397049322714667615437539352522456965033018627155924333084009738115392724103951120237597662214764066058990734516347885659681984723566432946504844909000514715497227285973402070063358973237240387666836455975661348384803319330780037218235112467740111090948805773191135057181894767134831967069878054316163342660135588733362853490332915664310586846894060742103660060059866102966453136988628289533390348272257828456702426090571422609768521073820523562541018917084043461702339594674421670128935229479022463745909936422847904461489946360557676955739519801142897419948303083676467494601075443404069614704113070869686853750080584677027641436208451475379087427641818988078525779133599199783515779538306822876428412443463613688592169741356945128772709757853681169216691596438412236154352472427215314971843878384150423218788891319107970971868858446324615667228786298914128822696834035602423160422392843102418076444238790466925145229048408921632906800734046909443550430949176478278764250902088622351122700375674065956184709784775708562170130932480076104274751554753394629267608956492278750440382811238131244966559942102128455597129689878135660674623891878413517326443216997988749139655632198237798970182233642497646933393306320016787938763255236750702663463434159967845935658651314232821109313612967735168497153914086044080240456504060580497023844140938101061252463288712589833563900511904071011027425268939585747759808740677733917623142263669800175025961013663781653830400505601584370723838641137401861373189266118343139026500386494083473064504375935912901859176771790634673880970125839312130031785877228272711531716947022263117802805828588689309544824490394439892348733935188992304393398668735988673811969158179136560045706047060626154613389070771833603263797747775717459025129918827442354734979358924347871865526236865648052677282765565550902701284600768626874974846141016523922445453499855774014179505235787079487780117475932872696067194376185374101694376437982433108882602202414747374894583492342625970276579682016400171821412792113299087725106186324784571693977020679562184199962145545128006710151351564302749879582620625978873518663040284002575575268034061633069240545544507125698777074380991751953685591925359307963754614578478681612443703855212337712278584223552500682689310931438460841683892784508264351895260223063261261882489376384110031236368801204964841852714420376723432382820373604825319124363109222788199200342003396937366726969808481460656414802102938458093820428865558026269554475133787792530409623494447486576571871094654581114402691922882187677920464500716564349266856430948426950569978116915227689403045271482951097285808713298497762045306974155295282899310601324921238844092830645038013409559435071038810300272522759021649571745680667188815393445170298415249471574658145186746026048666944539900136262931738102317063428067047732818317094428353351401674245041189189221716440471561420135348345153258779513432339050338471241152046700264114588582793858455721461236258079912543791753885752053143903156358714434889150121545366544188916988897547268229198552760553853458635517251309346587846450863966606371861820280632198565856676267138838390503503488296368108152350621359243856784969546142307334220001273993783000334797119401499251229017138500380845719561758664958849158295551934154787087128693557089724494575957285640308481416490325395787789330442735198751744582141342570267873140230550432919665797128011360426114701219455153812919564292982437767806281048220915665978063448720649431559764264212998525567161435397407564597889079645534172859383521474627359493465159532125154864221128862139814401771793036629343191010762598650057357983482740591289706887069977574444707553021750169498651137266340725594895276678247226672256876760357331249323994636815930918582210660189437898977830795546793826439082043711557498211898041105711774548875931918050552972331952176268253012695650519909571197442633737016235279184394350333722290365627088292258242279051656951857291853370857442885660230445238158290026408287511708099648626748295329476909053131884922209936488960917912649086710652145905468792463960322760340459369546536304926608727012021109504311491687658418007489241871859070535859097159849845724198539726888877550735488998723763676330015779857854612382447484175162047407095905891891704349930543462709404483033339493829374148009452792259690819401372583799430301341100361861802683273034747122323392669573944811318189432305537116711038288350942491894312176880412090766855394004906179680039182609259672843602638590084300007845482571215451032824809438072597004849792691272548023435427518108758223159037583936632896140199987108451859856340262028959740779022027875598734713791841219683004747462616590786632453250221336244804929798400994728622897606922153380258649269423763794541316577308438591303148084269189535536705237793698769666496064240073498006052924787688473620099582784284158419485399744779784615505257991300368101896475143287929817917291102810408873687249619933037167451239294083484752315033622349709001516755906611741113017125150080098329580994206126812656597824515182604486890586640745053351503155104647738055332052567706067593330441307273170069101390541380517296066920431377163343667502486247613475598693120637795885707334036369418448651034118395403636773768387771724362982826598961643662692667469895502349676000644641197595352450498872782245927323008011355684173026379399587429043991027223204003686180273076289347780115012220969741034783665083630119320032927650210185972943391578724827836003069506938394725660079790135275263870105311691941028305580075055657895883195493080088915924125093742285089582155254745116476318672152663089687664853346496217937168646106917879997823641657210487273516797355577281908564843573015511554855938923855248994950702519546519518003981574674574827969006124767173218951063147975956976208537592040238146052101259087626170775812078231587447647846171318230440514748724467815899278032319522951503478751873805224858032901580351221086792957938967807160343189654987223161327888137568931234584777650896822670823887965585616714504574838338347125978520338821344775698641808405012529168201458232155553904788440251786705494830370241122886569095794989377359881390981514666915481547904117731558766656617648187428407811721040646244580195350582949298283469176404939220385401629827386646989827553721005225443157604294078401738362359481543844093233057056759269116001830349256586707661275472387627932697198070346585573045429873333344576514712824022536755448992435990785991106276131817232033121645198137656804134139291888779962213131365701383400257180910767227688816197760116004994898692215768456485014215774790611250049118219166175041731791268661715931525150035948023241195028584021546090451262173169827065126619578948965311559378047188513328002756917428023183780221275846733387529672638739469047545320427138742126305551764762574661493589660815018543313775838594463717590313988996425647963477063033463802821220924958576906401677150916357622062278369859926734768775248768881988823750662312045999860186627718643529659604432025483666525369507451564677005203400963921708686537284420018418292652438057306781119882084870387109036008616322838196457939103771109530195044697231772363002833658061896230379595465981793486185897363208181672744791295757957589400851341799506109436581009859548200956177964794060956691610832607172621185952765293181213458334692178392584615743770980986838572427202166240729322008744498306419266783297839282221567852158797309169967615820312772950961687559239348178722658492837223913128609294403768366916408262371626483526573338554645600989509869680417898376726986235584162039907053969705679712350227708750930366052545676024981668571952539700844430305521630005267343081586255667680858806191577593209281267242774744786955688099295657089581021869938948641200996568945150744275192903058088913829172827313872613260555141284611404287924421105139236170942137540920437774295726462769369114070879889039831619815679120124713285704156337637507230050247446993783778754420090040049795750814327921575671108570221841253620152373773734483404960399563212679202242635359952587656386791995475662478658016793892349690910433057347872572142614761566496386136723821201085729135208160154318391598985567005418205726777322463509168734075789472237169483486599417428967672614586552109813402522818740074965849899032294411470975580613080422890861946573252329126317343662887675179438147188858757434778060195514162108226548453064070456527961586513135227118408700683292372869958181255006903322419994694031139308686974874427670666167931719159222968280462168306605169868653115519243238014352718535543627704027322744665816910715797897081759121588210718672947079801352516497705336794977084878240110991170660199136428049842857033582245161732597469730158822054821476779390675244240182941136598987223436854476954261462796491395402990970331514572739277921228911582824984358893701821439561492676709559675940314562645954481466998863252408286741270770043249143498885301522073555825946469580884785152058757115318010774492827619577644893544625462916002663214738396290291472104945036637636589129256003654204197010482671310101093570855441249215292122260709415130344002650152670354585982996283879479095076639205731180322143042917976728681438340800298070208722598027865505604379935786893747527420705063262428627463810149753960670055014837372301296105776261388854737623519903835388329682569187021193285136008646597294413038878768309362766893837777037437265556681411251177415696599643849162451620211043193924638942428176273229198567837425109198395699421397203791604913203026633031240428807308004736126997663289363878707976570484192483388295392530207484624318651189092617594519152708828461942418526280256726348990619283534422744532492109958393888147413335272111419352471869307039033121689409439829684570989391701784108885302504624292124550381496102647240990136024299648134744049147600978568629686525351487735639806126382797559834202368124823274806707849685454461859877908158319768260093229753236604883905921898018522063357331653857061776088660688898688572615280309663607468627504558708606281465398638556425428334529452448808526140607378216624718794239886526573276856766022415316242838488036174478489739752060273765979059832387903951679182683219311345816689988503800963491926483598628525996291082166519730649771025534564803485959994264784867224887961295776490768654262517049072096569888156976498713840113635925329302665962524210491408201503345902880109049816969022462281521546213283793508487095979790134012704996751865454544124819595541257935183784865814065964214117032407625263354833272701843914764248406184440305252371895717254364148176843085127481769721413162642289670535705099163739791006442387581970626633119180634128829686149939609257682578127392533231256688529166833971315883678397615767998848949328335393493388487400900066280885982196690664141025647415389429352688890019003978476800676642098182308534585032996695828141921651051426592864196009153177359765284571024156084197055780476137590207029370619050619934641153512839483896471203468157665536821058783886432129215679503124078756370352421698353164983253431257659178140247019258897735106233735292650463208117393038507302224316506082843093563874654437656185887331724210344880607127445423346551197108335288395864857554705102501644524932605152644634336065957657230998250176528499461213805063050773187469559567177649995908742468152271914445632054235095237885120071648967226541901573050640660192522806481083848751976645554539830074934197164574559860009695468308337666645035451803528363116293965756988126800250821176496639327653024214196714429111534140677970266887061077963383942739316293492534402993366002523475823235233764621105288522294981329157004259338939504450704014391679106266956444200201457055939895430312544140606026122861241748938782910625839586046266221318943322351172628673890793880922358779939131391048589465073178056466603840175620707839804848386319480482260147932969816517532754817315266371332334489171192118472555981722208404007341753579908576699455228647351320226247946411477169562534325148715511803947647775486444927722683958294568684365877810883301770024850393794058852368621440252669963574409691673540264621846069264982845034443688103749721837735292617759530754139579864158091317513741356806233748527114102733520575025704619289154702694825042534867031027537426383270862853695957769810597675994139068129723712360441074229013281720816723446305794399684558626209746609647997092257604061672058246444315792102177817284959011765860564203602041680950457599104046490460583246710480472621999495873584165387200736076607356060888551491948371672469392546822279205859216353522614483898094428877744069405514177417762070279518116939895327470647604160684992738044483166489075780123202381982391681791455614033132203828945023351347729789615668854592169290567326985527751938631782001680230793667164358489638441972855398844324325987644620381287625629025200756701986565727869289823654080343934065681047355070821397336531120797399307106592494507212552422810259632508146649429783839266669854466414574065351670481788915931784047803319697875354153032792925464277386374394252915944722560573035651521090659053132180258206216320629721499488957536825743221895710076026445758303171298223900766320368341887296552060859168926345113186273383045875526355194241975351216355570107007394138772162411262467278381429299248127181868792577700029821604828631802240859417117554954368817931316731144033071901926004980049012452013601007869000452114217072145663223327066350156243196121246630627938623435733012737113692114797244225365807030263603762633282993575327503037151189780997480092423614814522008208024182389864557025762524895422926223518750689294234825563956177000365007628886872908754677373679812529511552220716905251215273554801927939721707414336103177163312111220663269181065684784509353708152122990314215016678602472383095025379536186825895149423345903705095534533390612544445742698347387288408921933745453269678331647225570045916042222433286648010403477176831905790758212200189977987710617812377625734126134856072805547483757467746129142434199761809276492443566089406844814482409284117971993325179988250438919337620042538593997294099833419316397763924811847665083423959465786421881033917810276518011118130424174028459271323280681899993624739612726979923222354340534768862742201402836826110007249926123228109056003301652142103145897856779530318624877439831605327479989270528782289736870322826011693621245792991221172268078454842290861004520016846367085419060594821820862776929268562781817921019359169165733954264715373710001875143440009004599983340875838133671692666288410673519844833100814880987466367470272988044954794422797237441606592005015013022738333340914998757043263350244733839387339113263862513292805296323541181937718219127980179974418924357684675546620310742126935674982473378411781113568814065718550912349338853008732860531850452748081999176785733999702828829710194938631668425780661494724435988957761581485039533872872466011152341589148535007887606847016539792254858943476790662083420143941138758838659167753284811553171090563387467152249594810503598780295118681190279936731214425401817207645335444616313531288396994748813980092550305423730521640533799364751751036548688962674820443757342890279990831225537369373294069384452043849857903576886891873707397951050422055957904076501816648814492015629762833867503660702292428291824158188414141284445412864216957793954592246416408852227196101429185030207900221732065418430500474821375010127041352979262958083945272754933792686545575310397244993674708687666815508164951546655689838289125055770828338048357931277070296391774288126164526933106322492697713725072151697345090813984935383589888255834497191570667470630300294714763213787481182964830662495084590715147419277264571663227728188665787759844779141288467556871865056135516326975128530134559520235544346117260790037435164635756587333328620795709244793202826610430087055102687828180482927218663073966661840904511610196734606524123376602118890196345119694680469142391321851362776775072902470102950624346645452039553766528020858646297791231806151132573069731340464778337686975929265904795618536775566193448049755639565129605191574342412539159306418118611884431643070341440964597264530360074165493464807544151484709404642222222924404112432984313061432807715868080064008252695759362582815090713609192799806749840895038061296014912998071124608792085687308591670199440537311336592142823768068414596520237328808117585948559916005373298939284110609023676954750785803306460709152743087111564258866847745913782324378618802657114628596482146105663050256909867892676040149804935513737201084220421509938961217849511650334297799301277556536074926234921767983299013059981829424587309154848865728952805976822311645906977024350774696727048522455907178739579996408390326682155908107998124091465587001960283086113203227969430603784205538381115891219445049035643805894836877074897956780711402632448532176183791485793272278041497535602091650760178259857126122756319187219757410169004925235834092709312527679047791751221643306387577526604252886392777691002804460116296890276921019989117093553187471750732102703880514404696628492191138503503805229834613866394515650194409078202567501305036683444260168548094922823903239310503751023789379340603829285881287135106788416778527046149439072415831785802218975593577950497310885966504985448521354228196269816871195430965428781188323823927396044516830792675163994371750169149089063081919923874993402908886680138679143336324017578975498233592337207400881384407453643018034493685241622273375387717328960851039474680807876117020630604226151118075383560978461855391865386582779902961258316019491994271076359993075082576537969102228490071302383909290137774235539357691382060422295833456612126578115342483724641310015735694550671766000813742141335605720629405967369070802414326939781028004639780494499445861629360246027921003404870366527333486912472442650688002397591396517035993555662208884392315646894845217631450607618587999086840157014914761199017625773598751992803187634285347028459570678082520026356771969065653620925337151858882362101974910182355094105877326890296098493838399113839205182841875969967250787598050210791507230433863814738005654322303559593141823387243357219414554894673800044440018325466981959497044033271952806924280505904698222689236600003377265928090805524263451101656570255125500631467409073723647030358954064191189491455207532828315470142322845802063136110939041889005116479787013468296896408715806983143347077599581002935943252853656647688552642539014681772932469450317828311172674346620269798340451036472732720556984325082655372249098633281371371105366354327991106343693408586801519124812696705032724428789143467036373610350003656500885455018779014149264741186467700827629962801562067831201697452460804703362018891770778356449841969391917554196416009686878311541745898680521039465207047671805508894419336281274088942084291124466225020352726195280052932006309210606468067045230683562221796320476234160454430830664240298575534782772214585779742167608101654765134397432190567232099278901148860998455161162242339985669970187321029093898162954554500248700459211986336224195035710606818732180581645139351187317078653625900238948833703354539819765389646384542152651408150777397249646590596724804018319074567867322319571117005067391448711907582081279549542561404916950219411851825853911411533091778387133733077411060623237379087481202398888821297605141545168727224751854593756221981157153865790186233532331406171655969044332911980327420730571427714197190428319164877614679830399117153225256255655725051026733107705897541922472628913241122190075158052801110345897668154296633991068324373630933033710041362438571048429367787663222284518270048408705788500753542109166894993207884601765659769874491434477442052912323635251086769750853092612090378701049348690950306640624451784452275630939105431383949947895416693946439343478430417211904769546265895206582960015123928664208328820208032127838417101983671268962491752955669963711759739251885879144606589755233651286212144275215375749552339796250495409365623536625955638326164193357600819675614257363704031576398412564698111495572255875516676143663887027755548292876717044709594550953689333267841483007688117897448833915427794051551616893251067158000317112208135135646562074929387248666514053006386152315111975698000747202972271618724246173955892351401688691520970710531840315770340878380471937157381441147420898675199930201447790702251009120369812760829946170513522862131867031668020535878704410799158043641429252559444010723501718372188260426176919302060269799669597247595715634075830102644405070577499347336871702090104116606610654737410731031046678346962076024759257736512265198346232161603964140761716193339744790223268243447115307416540602689532833044384990470962766455721675559964392863192569297343802188097764401570012082003965329166760523473142091403675880843179451890070864532755318418425213777335113429789529134628090723697836812178257290641094835685122040020439474211685364813743632960599401321877417611115217059091401839544107794488470692498912350230995590826453510310423440967590315711005994389606828161179649560286316642688893976541372692688242300762309874244863918248790339049925190101564915149263478695684899050183918259595076137220560711447994816028393209121916844599358382345939906417154451441327416646841902625993496226548454361432855956019137573109077418163192277735726665072815395973064874961039420074301617521078802066167738257229560998318332695320356360880733241134665645310978535507091684743956412069827653520332647773962599096433041242104127075245644139531705663337840992690546946911341227935077166557103012619414398259141650192713749993449716066302589574701710237314197303518240991998483537329347142038552743806401626178373961914609183496558531322295073607193850411985800465415791993599527270867703574860700659652210486034470116627734067294107501924106239331089390302798160288286822174604410154835895880709515466759074283120868398316115275396070656811263788127019986039773630983762614062064495831299608971366788138934712882473691486362646788847685087162746167355396388572711232533314497075889251907000067585731503278436616214014641712252052722987192931280468363346557772554640476698010025108943737544608716086825779363638810567988814775628107929083563681245523035417049753938367335126353525285426110709512139439637240231234238861259479197946528593789888304444395350659919001053824626068464401633638609640018121080723187324793709300787275443836663428402469347586090189530817272649340031623277773692544229094184173408274975917791925067036991232848093527563559315738514331362912989037503042132126019127436935263427422183682488752440637041840129065470649764976486365269424581532120414248654496672224053986480965830210401432035818439464392671007226402489446280224234531705377264187737145997024730920969232291285423658640498025625855858895767328751267619033241522578372189181814222200438503442764665436759214046164364053141545818374262744152364511326357569050217520953749309656249653489264302976325326824687629132756756547829132712401013406709270075981970983881746689618552300191858617935689493472752704730898317542718727065259251304665078401571741600441841849525453736097503222909582580223126835477487733092757315559995139444304687043378161399115691061694074776380963572151588933869430458111135547012934667974181857268715071026257578212206766605797644953901997065728923934359150948685326987636119746127085807326218084367917177891951358557984746321111114649549888916626988963200920923208638076527005059328757937537637665186647941308837841964997396465906538978824298876561512881768925892103326899355864551094580054828450718371558008584870457333182371143720305293550736351261571138811977522452635974331724929091320224938293336993168533669361932673408981061764319037037754944201137176156476925697869343402269171239548794167110741273724139381608041552019583605826696257692877137785761175812632883871296573539049499850878974408712404338568714031115763969085266279017355946860662585057519130677166957640130540319427934135271083535258914819478294907222567792113182942030260096484665491369701172411523432670055502067491321998619008308537427009424414349523177878920762046167364834753625550712327222892301647617525720279002045389702795018497449837656562263180091251158230617404786028875827948694386268985014346112970563877513934457607775542417287379193242183336405622358045332487406116532442062021835590658869624169692373805587226692288187225343493194342517240851984219556999230823317840765401743719322854733883869926843221410912825609301343175657632746052383515752680670956424709279461144462047615402979708755300128929055362010074423103148843044554415083966180475631050844132627387044985448199502124248511966239023441530311987705240606185299105352081075639323340695995724828854631793105366924874396326394061572875103445419578742343622792191262231850149035139585548123227481718321702318166511790674261782483388507855028630026116654431503753613021005821437399047777504015810867939279980008755155986352697845434813910639887716199933486825250539778538970631099660879436859386414461594598728514858259628822050936434828878340153206480812489106911306322453599954621828101364736957687965875411971040673127952932073125386507088779273632529087297722602854477079458188285958500738021682479177966539609874381696082146958186681459255743542071670807669164409468519908897413369862577950579298743636877531424775369758873173252861647057734913955800633366992666056614039234436891023711796155612040727707006747838459644237303960012343450854410456815471718641330520823478678244513589092726420146535113466766880198053930427519636667515509686638914795661993250221229905653097919786931418514330548197244284371826970419775076415993675734701642838679098881773881365460138016561382827666135650512226210930769243600408654856810603909370962964709141196335516014585401868549020556181207680066683287509414435622563282735020119049063893920424530488691367255577645413710032619032302317685461936798505851916880035019200834875620279094248476055333807009644853226565333365440916980712570853483481046215431968014099267120612955999109167805990645422218461553497772021257538399100416920839981399445705462137363060388135198286938434523961324901164844700739334039552496389214949111528749574770082358839565358895167488506089081025628877641119424210960760600526615057745729194491957312530658822529820793811770296421289288681253661671500637568445651243279311760726764037602292509040488616045857914744690989447352324855814486985565976198509673920075379531043959547225737039034272445430779335679381458865704829155745558800197998872272257415682519003549035980916563102119528031512692841382268818966037918969308404319120399597778786532163009585886570603629148952429591530549244598724767502606053592795249559081608856542817284846624145859797060534868902122644431584414253859363193581628927006838801008726896297240764937409851142607054966601119497286719419274885873649584390505786203367226922532634129505893953535351379181553986559972481488472115364447863883079065210476116601340502468158429308857857772366703875253759812642524257103343773718111703870303664199412247024439619521844441875177689302352910448551121041208742527173569013086747202218577516812755251793919892014612112530059879792724586177903566135168837834397877360423772272124931584397224000941025435356298631279447404986579820339863179397835972266207024942253176903872721167444042282019274853671106191550194901213040797554928539393773551003037745891186913417118573879176831246411994655427840016222433213363347638234001081443710274310729528836214055873970088985437709352736080425998726250603434131524886712622023058225471581880062240839920361664748272171149992834982889500731752105138758030510631483017167899783531956857070394800234458334074793051218800401147917618740802444729789905383370246162266257965637331431997912047181066105810155723033181477500193291339377431565241346501824184325999177989094862368671015807970881444402400315642689584362817898521990301233813735999392086543704212852704768626731172977841955354341768438615709288648193141522299159070174046415853981052732112822991222401141380817257481239317131626590747996537958017131864692747177890655582589793764811827905595077574029334927108058747133539073847080375939561456774117119136774929850582868692335900676011266475262188832572206921575720929687258294798243546692803941646582315696526777162853934980693267922598487499832756724615212282484144782612446374682097271326002114181102845585872227389326135703740121248225136923400957447802457012762877927682205043082648913071201390441728974832836740072284425499232400942384286496697412971791913520506155383691407140072086389727259606179488895172575269579799241765904876190497718379341889945041068444419038348907125877324249075618926711882446939726151033477117836734561346584956387704862094202111552630601637713628421198453856448012560437188581892939425208074471278295521692489739342645050288420989967815192015063996611447267520603089155929143371624954315923322205385367816571791437281192471674407921097947265186787839901383571412004562782867011393233358886396851242570921875404404355252674307460111475535137669819910409923467010132332541207242579556151106346801559093326023753569701320011275156046431137475544304939377193685987331960129491613202981939055251921212881284972119030693811706994585582214159242446491736193632139739295438938989005059132730668357373141627861019020830500308455934873082465963476807687627816139098161491055735821154004492930778205543580070294702093797424265416592103318296624604460218124732393483399745185602336964432742903771044046929201385613716700689104891250662577032293729108710922511981813498654986829728207871404490029032293444317877227287606246210908735208906484137036518813108296008262191468898384115577906619201493929094006355302873362575385329998983939060890276338616139103377101970789210095220190327838989730717935624829122776424801296424753535777596270026829630314709492811241381847419396396157000474280222048121071365994503182334879148885686192508501004011394050205666102119219278368305339048392412056847733197386562836183958249459463906232697130577582920596157512677512806312311905900158804168779817184333034763141117221506425095431925143360675450274828308695587269934434552148954834749612538084036893116841539590073500728884457166470891548546487830732797751423036682310998282716588900442389041382700091082510081608863606946188274118076907484792416036868986008005514088396698676549264036335557191765551143134061256584776236118082216359465485110887092471710319245567828225268675821137243023256835898179969747762268946379108994409466896299350623528327224951190541036446565694338722428761876205387169846795097342213434016188676384355878701234484348435937502609216503474262821675862447796938879848424220100499314789635954875285464269956097016538578739482789177156084896744375940762400277472620769157352905959176118568467001732328660794248887637909474453570574140234673506013717024078598233148331100937382378546504172954564856176202503889560841868421967237268957429418634652062477028551205828378179613257054040622671189786628302474755488888105070973693553314376446895924275503247910075701504076939458978435280337479248754228608326596216816188230396362864205884073254344943257608699652600818483484424364512551045069796062543418921494677580391302614877548533146823816774546950847543165161861570000036815158675996010046545483936277288222129777298139211846122800050119649635762550947444624524671135242534100565036139419285395051554398121637046662597595132651473829022906168302962930002210528618229583632900369530338317799415785958092368856397062201452152973921580085399141471064821431254866167070254090683480662510722385906114975483290931296874631511161678654032811132534011554197690711529851389892378742149244240450596540930945860119364673413933554722239093170006873141484478951226187108048878495600856448307005273806381871594572469146001915470546521073468728260736014766493956932223187378522853433695326049505054385200167464799178276175253859850106103024482510947274230189771837422778250554420111572426910273361570593771704181518010281152373137968604808896596595343389333704967074824228418907372092677914960038775062349800274572813546061676535983014652323937459139359745763311412613679573795705690437048555041089600978486012592340678321394725076706785773384760610475772428165026186406651848259935826130925206719414769129247643115716190824079227554763608324760637933107915775074007841778686193576641945945814983478261866515356335167452419575046381945558551178189269470673798615076564104239853185472774111843491937031658758703743902202902005911673389925997057326863209607143365728209134457821500910737545477648766823365479044920112406792788342785866277537015674270045543587253450693643537756756797460179694746809425911410709272764344895610637562037510563615219553990654660299669978229049667723493443793290762837571761908818486665182669951924426085354697448177804583066256244797620654902736945417276409646465974427616797921618286736457212065925803935689100335223985578120521901591783639794690828551041661842332892540222939821973314140766371858172163631300241263374326070857769572985243925274898618471147657998165314080157125873997161596844271195701085142731254949471278101062302281962524530541453666112323650545062571764127763766961148009036152005502012160662865104146509408859114876661712348822765413422718862653764715255333873981096332630912579950578023417031948576475931712218796132272945933304339635418785059845327900610864398392380854108152011712585487190812509543749657123793224431183633244603382698110639997875571825796410744492204639589990391353449522528486864265926606744483376698979981643154896225263410394610988782523562859044952859443871772045173971356979873178936815638544523072967124498245284076332502155947959614852393899477240975963488418780910677064941231743611084994455217137214717367221089294005599945098869298878769077157891919914797102376284638527842907271701490253537710858817810344638260774951704741759324383907559737532626676594463889143214915025736715697090439136501100936376495587426255284117590801857483998446622610744061801519036501822942805657344169411427533672012602453580364954738659485791986609634891626474944657343492844858612193771327765328478680045153964250577641177010623939663996800276927428971700609054278205721247465371906861046352808290489092297029676747491229434467015017059981659955848940013414886364801861317467374276906465775971259955539145815396258942953904819302278143009049734385993918539927691944030730775940357730745396990507798456699412703792040038707488083282002938796622854352120286757856437031111676473680701831819822174617032983581144523474648207331713353422179264727415247882098690490122389320037003920853432481010489659302444875708487697287588530876591895749341145142620291175537714287642147410077685771106412962396108374369963522945805772856795076756869486636389055819162490470672657436086417003391944307764280784516995476310922004858265543514738343986465561248851290646681427281966330589572008185621126799385004977949072682864573706411805841988268222409785668758474794550859618181702774900590379415778832806472007343895949620854100555166801219803162239751568401339478701543022132598825190111791327956609109798728524850621767863463349511004092254871088969019864423845120717604907093512255876055715364986106464346386418222406400487411078771155064472955662557031890641764984437573135676172318753575580444381566325704382961776210509381354363055793937455805716324040305666441203270701706835289265436323896813955511395415618962235622588428371374993325744546955955186917869261369442392387975811683455219856934096798543872644695326977572200474183548361846250023448853337749687478234250978040755378846205116804806393953076907444481257632059276325229984984331417556934455443606090864259723807245772328243366868461812653875295238872796437593629860972331656687436507343394815187769074340342688237213446138750673055181466905290244980937883320502942737348637972079174662173955250794739005863513681765489415895620255549251461470511741300261669943953056762839844376922348298495884700738411780509955605165770054226887915246984706985780097892696091807412046774057724813880017173167302898298601459599287543002476801354023103193580916355646312238997505384148654588042014688206153372340918009018913691818239580719699557134927190827130973497007934894140595133199863554334311828335183448989958990838261365110239343794167620610054559806622351351349235919653380679033865232311678404848460902067740463682485789467103445867208353698111664011123669590082992324968756059165336573715757524199767818926492686944099166517235060431031777421379405190195856165446248277409259046117630552561299032696970502254738813444494103885507767663461631047909008637945004384154550675116902882881268951871799024528657136649431800090551208538424248951179208211469459832697214666582532342776670424251935197934417114774580192634724221587375321522573545402085511763572547130583655927692977866203461723308995560967003351153585015744663753469540677799226149699559764792229215256455680346310810636298993178540617618511910567446402979366236256517747020825579399233583197143636846594762408147009903487322106036815414304154348602454009068488298481722256201896128163521780525510480523615119167190184521853299633001611942982944004406931173406573424085154437133847103718037215413599231020221741022685933970257483499319029118737855871464166134378824162403357073807553095916363100135857895219342672387453248599067938486136507878863523850357423759598625626766660289894861268594860507316153705976142973630789502656233323927827253366660677245260956503793505631114098911287994484483076805767069298031425566576140465475920392899366580630843112810732835076292506859317955444763489989437290826818389423349509828033519672564005464416835963237351931594015417892727697696732804198490801311624970492608267700528924335329257209783008641208433236362109978013994315508718953106999995602826880425433021060397837267706308593637667841387381805160418533790667816030762232300419622212873073561464917972552355299533576323746731928993614766905656623718488928797736964313757077767500940269553373794398144543590053282854568177121543013363196687057484111289411192506915801110125838486531053670963573706417718257955766545766037151769527802512167423012596068311857375916133455223098404728333131783239305077524368912367766554609345883034733348514588475719201738734951017732272333323045038013476557731445102679143051852753019366998869830564716971401638697360744002131870178135103752238539388812822696696995000843258216698515579807095282989070981376327410006840810026664013601123024882530245281602869691466463003056060277963327413960932255453553766983256340908424792654429792639115598495573137153494180763184652350416927743285869894165950525854230420831362806801045429781410770922652189309985224749879502673317046874437324445922200852741606354767681880534359863990315637459343198849884348040410614012794775971639178511300873462710490863209221020685684502637781141039870170158431835492207630021747343742301729722222030092227148832100776672915673666015265323787088915320507952775847633636421504023794434467896127442922384177762647436875355591229725580114239290761678821626208809770584247796064048653002804277008672112493277999566309000609752760469587822836377171467069916792849894173239294931904962192745998310217487654630632869009269543149850805071504624192243137239746743959090685359340318833709028691042966635909734904953172018788222478490397458429118239833180169655635135733492389485824224741966559849922025677541442146530292912688707276626655476721967277171422502334287899441333719497754022068168223961065626137060882675152059393005763302259414400342824711026451527568769357551674822404161341849621369528938747256531429989802616195898298317473523792025144779225677521878907998440764709707844281688988025235354202523995347122610592774245932914866512528232226860430765977015921325212108224893639529845376945823260344250558384188238653224965847560420712893253481498912893136100825830008254957563321384979731127501562558682974690816263328317221487579849195227033103604670131815464878249699110902150751261760328039755494242373248699078382790825827416009852505772743481963315291479813084297736987432026898939697848769423448625547048447369612504832940302081442953028718666077832173492286352461914829827070225665830493780000330928690755440961392514671210694978272948036151430984469809172096448432156384600855979118447554721110601869165282245296630904609941173922968610533428570520821009668453067769795379334082568017306466896429980344716054962651296721644975108021116285464482370657223200149128682424997619627521985885008363020662669208802665364647691773941346150601858050822777549438131483139104417172734432283373310825837136324291236797989290918422194506093103855829273440014442568225169944185978690598589020363598075315218319310163491600222018173999801517469585919578853178314038764955509637448086375747168945387031329148463146960031296831796694034127400892508351352056298060205104189587484561306708793907744325700296060913627385712485936958644583038328354827393252714706714256034965918604033348109721906005699127467796753067815786354348191020792428825437358858532595885348712277615537144022416611917618774314850593963400513865370329391276083744926963937428656423063708821664840412177636413646306083080318346026614673855053642864879851778911907789501473593881364666000546563907711294569054791821984524309474669913368238325686601596988879837621230772741236535637875648380806769828808606273401443700877388505634022892204677654364521245755646739216076791000802905361388935866321203096852849715942277815896533390059659625134767384631324776999288773655513526299217570430469499878413916565101871434596700056724669393164546010371930213673439512781027279327107866523917256070344201356800565001408436900537395388069115406594717561474403802389462002960952326967294089352166903855458585711712487473677606778241497706991192009669928451495891005326332294326107305678917137374622681082729367396654515688840783102813180943938487698001069132402392103983258736632922839318984621136185838799471066513331275966074549850462530506936157179844282174327201449174452138794006483241407506303262171197694930218917813992317353682650306486550097117909047016218478191247628427239879023927848373326736300482838843358196924952937260828840668609010087472816402572151812074366436864687922838746015367508571007909272947307504991893625723775810039883459372892371814994032611986069225808679099130119818207896818697937880230729022092642544895166861634275922372114770256985751175202632199346286042878348773898517916081575977021555925985704348312228113864177435744082965428318483865877278267443684630132510003804760641793661066978956414286808909235926072538800853704164082072849815561114390417634973809367353763651612982022744129636523690472427357829676470627272419248416272171774730462289416469088835201044733493911682897307218587991342321096120708823374077690069063482385587475614578503211629054565187368835241097029710399217568453217696888966533813956492630313124569304723290222161190632569794014771356759467276756700169988194345296688622434114221070433570341117902329398645965867545471988283483257601086084963128060466931947436861702658801285927817766710729846621984691687475586304713809903929100102080781636198311689692195315248252352936124946941109849205260121364412899585515188998407940393513882154567727827912021427983716815354886836789669858157096426356944167615139885118969554917685891273549487885011368404020903590511113158146807083563676844819996555339529924150552647805291919054296296827348238916494648047097885993587070060748980698042370866871307146124397987587826097383035904973243083219964993649410825231386712092960008947166325519087760650759758450608570829697080726084708340608152486127651553932329331739493128421877030908243966378902138664412064935445784286028588206268598277894494886490944982047216678871848517634074864303487886462610743788226554862048038686034520304825665555042752641825224951159674397663089228231240330324763515182079709645873902367812818116036939452890420822205923966619536418399305379959423654314511151585264632890779824788107160436209385197854866715812001534838936960803300385478451906330487930614001702006335849770777998132353962443533011663778355186988192918150163080361969856614686321773324676559699754102190071136689200680621231429558801037995395364753153430310216624183530941193841367818788998944553453348393185513925168533116515266400950312460908888345439981177938722774876755615127977964571901584178995707479383928996465255033063419301270809195373121023131662608502916663900738946317997111255853184150406563009604609837421944196920180031820247632862741419629007023514843874607490906238472140147207968206043322154593190290404724845960212374129712507070580073147604327995155714193687493251883712168743665338838174289216479988665019524787511349450355977743413277257088390592251020745226305206396868515170877679071096820147510613845540095513887694123252173633287077627635523212264626410145126982735589476930061056680758252163255187601094212267557047929497900400451210602235807191858737107407449892120041009818197015128117269670927718735660732822417214347686483625708473265333023367852723816750846957159999968557178364559909266048779463842772130634333030301853322941139068431933136150865814138245370802474093802563825044905708414326511507641802054435999797831000615258210570460001233919746846941350229343481346037655929214166029279351995202861592469941450160231294496075745838709075541816832822915515289333707524520021083155825940950012337338359023473254952463389640593975864965820025936663432268915465299194506868852462995042616645445705726730992673631309803575768912339975139763935675219209868630147886396953528486493555414325275525184326929717942080320161445403116516842276220287529662372068304530447668463699793701434860824402875587881852836799415089326744820495238236380103452757437810393238949036046901732524933558470434145157901003226114509561044782857197559186028730766249408383521615772823969195473324153182034728853482247481681244765091941284842049707059677623964388155637457048098499353059838819268338911941181001577897441776198184464050475645442618701372861202816045680061918234525730072657891741662033433462609300421176279587863190091094443522558856264919896477637748958645500201325631213749832233772333388784709301162275001921869131272556142991876639186527298809343578554373189381485654713863532429740486113579491816506730381516999893985567038786225753514063022501913547641826190560781549623577482526420520179619455550537208279888290133376418130089163725623510320048998074243611559599798011215516395819504652546235758307006168377824009038528352470017502450164053390787730346403618380594181639363152443767070347993350366907643837178943517050601516529094896618045201809103546152099829417846002569660155891725505501086434781463181570247408036545231478105142097262281239337374323706070541253606484262547650171825636120907076382948091177389985229185261871059057305137223087577797820715776756247456645502622765357492767071160913730136908063609133701276863559262359012288034384183466485961529915364078729508206373148442371449414377887439604590560065210542164954385643134664965924588377207232350875364458474965352532036483110139250281540078244341105676311070560730541485133337742514266574835034936117852929883013392007617942610730819505821232886916966437141090906162735221318239158419347549464787829388865353882115129403638241642499264242436396506301234663678850992818659854409970915488975013709440781311500167095284463717205493297532956686324948052951103354470799904014814516542443048820148644108841860524063746923700722297108499200899680147536982905321781232469498166856227995486898157751486290258070126110850025811622007936184638928641820165473515996511986830117367232868805986088251261321871487889294359250182565355316321628214275652438493501593540857171631929857520637104706605670345036383370345288810500416568412591813043026957098775335846328517552008728170391947370159945678725342462699458674779187368554357534068222354102092806922905264168982324828073578202388200883150001199519325476982081468336121260495508217329019250133733989689932537603373799991905459659123793285127606299069141124054921915477413629566993258221203138902632719164762172242001418093079361438222795308907568061758780602994096949826654620217115273665308211114056569945562874388064594914666777951410637522445098510350463994206994133062173906340349943488894571880848620526071973830983077078439782653687059711118201335410885769893142066233052266071369636238489105639486416756800649500171104399404072229137123294980247513815020558418340670867372558105265493282276213569981668092031096109863124243396870902334060174944711906531200755868876951581992433084608802915586488837409857418143815890810015750514137445692323429720159063070363177094142381616574067429887250568151939475626098132801726512638181083616083128595056344217000022897518807584511395081193905373322449079307348764962557238232188458343592005853923975412079904209187461645217841110475485936233987178726560149814606497897921927565446554254317990988536586107074409368684564046393907758157318600600752887737161325752364125417749759056935038084142436875197935845431255284634615320690696681675169274886877469549700647499697179916605702718931844147509299611036080392352743988532078701703052311577274723023208572726044188405861342465648559584167724118988426055113819066650765843236332147329012006999489013472712182664559764238361843636726945787860583977382204990790963807758069516920984924105064547973462161690494457572623964061793513260488042000977137251150931615692011239208964160053090663931445184174611542810222972308664497146642602746420326768836564627694180355620768450233463189331895799811977113772506791967300405631890455258105564345397084784193677233056315675151792257207615208256604737132843059912354779546200062157973280859469123215897081057360142498810151190460815062472605677615453758240282339805747668264545331520101571945161209567711593426007624152174894792547384054741251210431987392775553723684286235014303424292549636459345205031206333113171856623619500716315488767165831270471808359993559852060675992932355301421505941889226463964694800592080456593955058071047101112008780341589725200733256588772931142258717835624356820331302952530705427349161994769893845452079589352929138389057989382066094102956946275493242332907779908680941682286210623424770916749744734032485481911497106418199322439090145416342811601587501885453291165702560039996916454298901827060119285387489376488913684622106679069360554900409765696586572015933488976053563266816486668888726655198183432120427067748511702443374015881237779364927227216962231510279942037609961050182747401054868290848566319186509580828140534105971612754427397690486655959186079062097516460707202702437510108450210956549849364338196875148533702542666205232028933876621892921421107040120067915007005613370360602357951002581600298559300292970233731265105711683024673139215182850340533856426871041576411730116811708273901139306509710568666092769012100555525948210330209398655414675475542562773048532678585657839096395569983548467669874085490953339189875743738172044961243668455313247220948167453625456944917435029043447964258480872880978071901863750958099127814255293614636735695912747107302916143664171410995023234411770367749138011216729133345344641571177804288991135539336998899944210219080737222372472886922589427955464270008196817962223628028037963198869191242768351776907233960057637530066972433090274947228915878032333521299164454903875720895751797271906409977746372871194088727076831962869209104539157119311837481674672039126476369670846392455611023636168833974309397606272313941153070632147473321942138061005263843635617377840038818143064948353447710712721417328979343081301153268012370944765379426326453600319980426416904706035529218000127092755941156470404703097078447960452070951148367507972957405397595308227364075168564905930723953800637839021170064884272025367568765164684090937915052612652800866864191033290682402169444546646397317341783166210927658544363005345183678669279831776818064502908021436019105556188697398469472877317930764417260497488659471842059608704986938545739501307847107558966604699625709015731507158062188610400780391842953208314528966510316554653685602728476558033626071089839200036142424350477157199548538704906794880960598683526038320305934455241999389285993954089310040696946409420706093728069180914173968672027717242948262392299176383283598223652908340869377079187038224582293492308133046697061620917037950384382048925198724887043440489971281660785338135809014494433608101347414678005366698339225969779931202307525370133388310148643880780866583558613582516307290685248330085370901700460399683193316816564990839213858921647938171806513762400084213136095420019753930639822112591199725767932105441232173807375426592450380066095644700901115485161531892522730069648564013439389576897987211778722945182382787705803846996687010588605144655257713198800283119999553203553072983164260009762689405727392213921339774343128759081833135341549222822035527882019467963976643209601096295638199699031001424403170166466843218692470035325497767042041833051940049201279509598249056437322432108550885977008293636939415350172316707277962757229626539244051690638884635072858055958572860792505668223047166280270339255744514059405214699739371419575215390889194883401588641389467219522901027969988900294377541537197393938150923351669469287120112771451058605650430432839722638094930694669202419348708627871633550839351928434596287254988922391635181416916893820853376740545921749782728083505266017224615570204332209245748582720631141611172058793393306976493433502880887627800094549349772668100540374409489610551779897431210921095716742933620309716514373546298455602545601054340003920711388271776260254878975583973299418995868726577551547445341488153526613159740288308168731327609553370434669674162269209837707236934027402237061280636321284876242548192571855300127848729444133879741910736069578766874452274779078918393412384456389007489086622298508959006024494333889623713421249530336697637331332466367425663210450748325031584715737400508850984265025520429577799389822021361248230600537553524173881194209125087827595093260675868357769531946385496135199039763908644839572441613941417585208199955042635595884887255536767668129667859434511463374028375787711506718700250734604775299411541995718315753632382910531310469144345185634128624280988023561803484100824438624927047245560535752907382083183084049675737298185747469971376942345835421587524457303918509225983486869496452122152048426079903879413782904013385929586375489311392231725138967159885240091145314111709291950548949927961252887895048586294330780968140080402673955831212117329906532071781867785319043304820927397827024668815142929430255644525764774821333884498839174204581597413867624359515048730277049633116937145954813760495077110083276768245404719190436043678977545686986970497531732825460250033002865649837192129369908365833471076959847706997087779576182824928987792825266130541273842729679826054683576656812385623318280524445556143386269599757026104813647719142696347930784954636920659950984445949719089489012195060111401353726295112436385815390189789019263733313202002399998506703611619693074261890114617481232060180971114417822918951378146894350598234222337278356334626555223664001136067348549186917503471387305555133852154132336637086290968883812778579375053968611530937292828328237271475501595354443330790728024085377684663168284321529065995596225268434090851266045405656796548530774902612470027057619111439238273606489409440926273001246042835763512993225008564892969710963802079172037214424597598965722335620310269250011261556847797769331453698996212239596456305363234224232587534281620199809365772158447178024091926862418492369183677445027395457972724575755916509519784202402026132969398361983860247658327372977700673727381937655137244669188069146086097143177330795569131394751928423842771154652612958274467009453011290416764345835079480990414414374526489426151987410343991814007984595412041923077996093024703062923327734675662543222442299341095189835038152370153728663850884260907268897580175028219048868007958723687371275300604669942554309244694796067320875835417703306931868766244385866060577208500519351718307409619094243423593063697179006002569903725914472454626054859856018540831949249538035710520676059565568470236285539400306220693385853108394880891344495577774279467129501940561546569725478786170479099901806669795773726624834009956336689819227010191607840514459484173588869040453067096421129068399015522746379660068288611072912676485689220818870364158307291691873965148286106396451748207358376191320656697079450331198926091989284797379904760012077898029045719209179500408144371691113242404155333899370449473127079568363090253220661305795508022368810798511041093597516002069857220369341338093531610116906363025942528796197138999539969202494578723672397135770892530037071685594656777720100500705143466735793406921025960745414272551200986252935439871654368542244548744014051625299718924434703542654860281691469984028898633220849342990355522047712314618708263026172681280705714630510255582572974801264825419702205923299759050445258781649101793840443635809203486617490232563309373602214734464296954844148959779518711806347169610025096475348940910174251700007200463771933096234240520073527852014863256561988886991030046329064606797683713087151310243612069580821643538741945150431821094818064078250675367211328620278007885515247674375018832596279675277293498549888627649823945795287616538465594487795542682948564881133989193309448923594297909324547030160162940240149005415812852426576784369132083107167206064434170885407572320838621242270658504107270415722377738009930429911807137764290963405365008252034410524694861372661788957985119990314112478581329786042126574958202270910859723253314649797750191184119932591834309215927378248560117760975221450429307322540820713952122267466632817903259286086738132690557200917065556302068145109916719560142920747506346625114170180382391111996988227469114278905509074297615712327871708453105586478490079852558011814999372628500428446668469254696150574841027103447311213119864919927304514600452969844200990517456302798129498513478863213325754956484778565511100504314859256770905959949219789621991446294069667156914648414690269130355117601473910211738284851801829874133190226817850206239400269635730872897409072382054979647719139765799913017286901851357130336633823678608100413104685241092146868469977544656009490460806439243351162614989667728839500829962238327528422923063636112117012693001877810597898920702313139274388356889706290443615848643015244495364585949713071319137388732683313873752870597970565090759223625757348633606463994481615882714276216679966074840704822846961481972442644825180807810027588866624498809595076754115026678958859975240920389682409136835833612035302958184767151925463175813665693957422291746591693227967204162307602695122193637119697503928391176934692380143913544192774987781118453924922965525565303372160638985514500680922939746591075947861782742289478122821992972245496605800376064574436884493659701447206317936532490837128208697110875274702848717684898590229304211722280220821693017120134468757881934727971927479321679663584191932491843948860020233132100386093393765582158700786320803233808032198622034802958915201647980470745642637142723396671017770203895226858966706869145807914201364395993558885384029231527644911200578512196063385524440172073290456505235972661460227047332253643424223891341119763971519052129934617272023463466939761326939726043126112701806912244947055091674072111373508934135601401066208938414685572918932592953324732659783378983612329846311190783310414172593954554827679104363756716061182026583367786972439117113087532279816993995232208695766204081914897017120251285785341335736099536265270678196162786328334400916339354333279574648592282558632638984741932309769115282839586701484233171628523591030747265428278157551148109027128173940202634253755958101807426106336050048713911292560147755535303358243794781735528738165649241483989840178952437573240933745242628949342074270858831151175143127656792907031830314226494459933286863229684105699698187096404918823885966367814728196614093585809082365722319993462178010821297302940111294125608770418420201360576986875816812579234471184860328622033939687660028614887605439030444679287183742891655664275520260654592728188072192769792380992506233264416101925121647670565202970448775646317356686880742650938043900679007624008160303254125678452003408389434457478986495981200294637857263618715131317488032810959837543336754628366411752770757499838000762726893413558635656969599421189873265665557867818809415492416491220404955234242544765229469985082593665598042842702969657249590506825618061620737789561738388259019508782977045502505547321297553275076017335828853810026667939971689495591730713953978611722554447267159402052459808355345493386433508440361588090568005904388918391084611239371900699149964077968478455864319732672066908583656181980400890061353622162933455026817003150941099205743621199391472552908339116616328966022668610104675990767581053254694472089858097202672509597106812953142956546515909715661629339405492783562367808382553078839411828825748903879474696959225208592008622145792716828376260081549188679880642099611142316051342629706774412079947293556240482153907068662045394125176714589044838114742683527151843587329486487309111845369308211207005130878573823433019778256383115259139577755129006525861864551318192484434894028520406100556975998764303782734239753254340526848998999966164370368973380366327124293322436919830638531918105398148979366339184075302273638549748384279562909803900098506845662371213207006341366557544778698937998071520511169437999578342233791782455212255093434516770571257313697022954434482114761140166349941886349003883468015446238593630263165269688602794386374690632557985383803273116361108710897615709500469914070816739797990477970815407019172302625629980049216981948071972218088684275510553007322035031558282343403599691722057203323250656144261720844385894785291208817490359525486193503222688167879355191586533960038636463513527445382871968392832672401518789366405444080318840177334799670040622385949801077677980255080889923382127300793129233826229726079367748522996157907299093509699558760006711846041988144292688637831574405433131279537209379812881804877741496226633011613228596316685456912601797651267379800866688976401831822695653332898586349808869114446260187935503671239122044690593348422006744025544941021972700755905285194723886890311764146479925071286609079518819453989854421836202425186622341665432450973778136218488285894636692926445404177693182611581469194861863881682602475432319944129332867257830945805197566637686468977718629041327000006148361885298301608163658118390688210262266403113128532053262101982904379711759550452787497262590830065238534784320573517967579268580304163950411867106623339791396286122904215631238199099938190847721468528142716910762312827670725608527114579267965080785667015214329562054352943800029965790607704150579779077802698579568924326758612312149757688151728475010476979643812092482079681403078760020634831429548068894809955933622605426456954800877202420690932018836569528998809982800592470401462940396269135880582695479880801589297865011372440302072114484850753482315523721579424815630873988749394189573918584855840969116300139720352166326858243972718769061372611924778139755487528138106356521379602844295335723718970534089776381392947572291528178505704327382093325222416710712453688015858172156223887795847499530106771996724646366243287863629515774517816293843762599418354020409792408258480230601451606672874329182462445658652664269725213189982210352638415806742084332015958202150068104385041869298255933977060809103058895746072185465514726536177086354214892843426421146414230654932733992693564693471478357521432793099456155888796652155663868042503645182265083512135959339949221138694136096650858597874359577337897717120272236500545809636387068928617431745708536609263635277050244423764397395696973501408845232594059657382610490575481644525022043866450911819858431555379306867532878928014715597606784250590558816415689216506238604112059801909158419250022286762865172879359890390148509549731468323447363233515490471656315852106890919764076482475766733371646756157488108151796970748459787008435826156868966369511679580637859347322389858324393226240861075584509928890895346296420745778911718169075354176845074044902114723658556659890353956958363943215623124558314618446508468879245072379739623872781582381998579617317599075595655948094169338952692014507887016044712882685316654528769074524205743394800026749350593791139685702320673210468736803947776838303542027270734572556053208783269710172164467182244479324048004882747984889971203252434627060049167039850606328735879892595157933934657861179184481961557747747660281251686179930405339260388224889986278661182738715362389609422411731008351374898750855487396816201750801254589582480839061528742303200575024465471386321774399838888038307136096339436821164760605527441242375936164084751167237152600237275332940036244493425816284933377040374319011182794293388326331605079331292598538004520083384157725795824864556351980613460364625392453433707477544403451241120307083701366245943379042486421055892167890704721569491876782551081627532504290461226214458168920018193202383679403368732002064688747651030190966513822614773543056219094454389872207456364170435341687953847153768948233706527952118564787658738530736679955382696962894179702417477496951560722543748961435599209058365398396476706789621361594485735331299500040272655836068062959848714231098312728951687721159948598187172614762280690742488578845178051833196511319696214072396918809995719032759296463026811660656769322089825214419716228264690862403532390259416434839273036795958114236047939946091223921160690043153969257458757128448820947162432701984314354820874098395258664040738284814222980145900325956138947500962222530488995876694096200127854808667545697111145387051509306017967264289741785490882860837825359857196483631457678162175590611470886815005851634216719681765498544617915341621576066261809156437650605701308306229418400182020547226585199376567358801110661149142484994529543636478157353122571425780717674338572826981338483613312259149406805289793109005496614167753762227481501442124477596784255035696917957493457034337826335516422558058402926196107563907206368503178461290509150319640105150588994075633471609716914924888557464757022645214323956345645811813010994608169604764912978460692992765086795456823427102596152968579946346142653933292843593724335194200453589939055132547362007620330417464751597578308498701198603494525749052067361270277779154548889766844211600290406720337483712442794742648109420478858151638525620954997400824040573275695160801049893925836455426787048097726869026412271775663462805744954945211727647664816887579774061462772584380147205964789635333181124935126659801358569551274174144183838635994448213054823543123259013941119498846518901577632565574555712595964557513789525655245379277041613293893574011237733715521477578639608818298522736581194427723720439852655205812811349014325154638826229354013347137440197055928363279676435006105706065849819613312510578773983811753854132789622500908773037799808791846610949871179370219004140177151403607948942656984441982948985570445800431434076462661429759059507267979346997403737561377480448646940946345248165014837617777782081981310015353098597668308333535526526226486854079158606912048740387195866919305192681991961853598289282028618989779071352564106910785660185049689319710442772530832853015505288021240083165929148732742880688884758153500261720912473306514651291650697659848137863122679397754400008138227531933986541602658653580870557205157577778400156391664405229143699993591487513991607788594605425662480628656671825211909252113402800054100760542267375350561527731661610936584089822269229023775775425983056083546770058405738180475916679572670811687464993603742837247518725917976099464506633393433504665304151382039556345566901587692574361155993285037738930583367752142946415865074230264358109043333372476057862564559588131423172758515327151397719788568967440988733109919264038546699557743154927097016422636827398429226170161674829862222508604314150036043931710995423242611047312008266444629068630239148865050179922830077405863046168999782361671916380428369157411179685419158913697089463843017133016538580999707242153350105508557211509458669733487904596056742016121248921989478226188635908381100431496388999606310774435687708359702548602153027581454878197066521028373324668563015149701860062181137630951324566146636960612937856361059165619171028811161909641678446073821582886991179213719454270080374584761068488556576242186063465753963873048980659121926170566853604929433563751389513766815341224957441939692498957057583226188800418905118246450381597504011909020997030745678162955807808833348224266576720249593323477620541706390786344077503414134435272312058085064035920065063618763145156990468336872089131006646130237463208875058785380237348187380666505838065348925534297436025781674489500587913459091004639535521016594079349652092815187587745073607994049282937722434713382591405433727914540917053710793398280092289631505001602623790320797699840673967286250929609848239791614675066984436814638449423881986259228755614224796498187155013810057833853901159783932259811640230005864451976051000807574368589942323790291180177099052249066161011244971492655039641548893893911868546752802824377640179482671037254378489078802743140899374105064559508696906415892616657893386283161557301864197653530736748167297311752614155723025949608285611625715412587611378485038432456629915354550785492157765498608205810703755213981823549372867409357377681557400481103442429014585765115053645649930538413533548284587765434837092186423146938263828894836951118450686695901924494803111466820429187192705896724000940943052418865802615584252094331944986843522745015268852104625293993268304226439249255280808185429824328388992567749296832854500792601876415326979992817948682378511914246723221975352218359104517520354763843598462114820480166193899368233294235006149462339036121002289756122546604100939633615316528898690410752008808820916988938605476549468398044369996124670911465190279919583765049685265178408684766253297841921351720194764530423628697053395376717982775252244175981560276421835795998202667301583623440692378546785072584660926381741530659093599690011593256052639621971540688662144894401476207650115102433895601037775230115957410200970905943656437876951290933176804636238414189279317798621344827818503049564825608351887662764790771495172366228941045655070030221627889390901537562612987283755802396574111491017071610941612943458617876122613113933051706520675820856450877235224683360898656374929037939901550261433157282168323382241752648997621973420511569485764863038596534096552936690012394387445927355928080428170440596880356324828437307271100805496326141037304272703327506656018538020693037518616112744846825629545408381354482087970378072721774399791500928082148711543591536500588325141735590202815362293927390994503216509088726386105163692119925407184336565867932765209544139798287451312499632320334151885698092943966192434213855003307963812581049685069482447905084069051338926905662677975867164781322328225046044299555863465005954634610428489277847780075647144107110904857242943113859703597814377843975833207875936047018930454808131575538559251017465284671140338341531202965226447219213410195563395923771800661848189506750849768165178594945493768016992968349008843480245691442281536280618611802195950376687977904157681851794948780051930391885676387074031070125348771556886040829372560156352195432633559414767566242984591990858675580672640451930983290663852277842968267081723726415583198925562027397073182882675886090739589749980200854217111737731368162426266662077394174282216952268367041528790623625350377729703037616246788986389528531335585570470788467620128056497795230600316284692719031362617203063394254460055487681460508111721916553060142475105852377675869740468222735761420996944358745615160005384542707118348572326878338419810698493526049301898446789198982731323143913732308096148747388354174054993908855557328596017623800500537761491690431738860947053661960750702307026680450329703317553630649861313434114119368518293979514233088675808916928740607938706259320702256090493635693598383752040776805456975086508825771979333565389626444139701575800432847652798989838178775370945021029076296772779648552877917661032520584941048469019853587366223313792228056547045221609971923117583471828220997139255842547645585776858925396305482720211912293090901523309688516240904088564000301338321630317564632795280047221301045036613266996604784585128992515600675182438700694503566743641007827720391657080835523095291060120846879667714535804856304654679536656096580694475571944583885371460156482327416130880180849358531505517281978003870464666330985925874877579675932426067140138478225119382418866522856865081942682072321007526113298612613085756968528494378765122104804964954112268380072398797686256685797618154146518359224342570779373730678111145831775815693889936053673216101059035438804460603805509315066553351691410489689779103047910098526197414925597297678025954827947774851229670813866514952679541047897782527314475678426715870392715898967129687915417576585603009824632407624483405957278734927190676059135033058137756869449342209098398060239131951359975162607024755705083396741660795224662017360804949250119082534422201707909128864575784048272516176853260709186686666810429681099445856851319718944891076130824820209796751501728718735042675840774141715240636304859097652073419461614038180304487339606624666109255451418698227490568304163776778942204276003238406794954027713107701493847823530487954859044040595067689449999183191632995101167644531919144348379796519513772236994578755745645261434065992802357921966871213142888276091122045036964779327343888054760563188939543310276518243322984203987952873875475202430522302869586806430059232200502137938184364169511167699679101150333748827910029695738749014880943756620926186587463891408222884234105897729307915640527299054999254018744651844867923655215370834294549429595078373275296676789764686278509297518819020719395960938809556256635146055697677711231878984430813094729701717144987833698014718999175716493486413797231762642512111736739237916190809044661495637996985501593570723368705319342963117272844185903607287735443073576976479952672975667117655265982178368403893111020419176255636066886561620859909515712158281586274685427036282061308834797794056617681423192576706138126966580559902034104717508674515330036882072432328297438265588000934756137152865947601571377595385317909936719497129277629176983447139876422259189066939966615575380759949347377091177601072149890123813511973899624790498448148249286859782330338827436900062879607160765219889366728479923949423517925640037526704952896616581442665648953216197356345346997846594241129382656524793429701968360364217249418841001750580244442008389128209700134523449728593372148965999982490998156567391474892834988126401384764586666650033114632407124046958764948181327125404084981960467841142344160603954430411607733888514657542706883351300018451893632896719410595858852975080288272991582313797382559993619204856022503246696171421274195353043675184565805544749011205522086845063404115192274621189145374774700135191455233697990794606444386042378144973193967501069504258830596321883077205678886207603871884787773007266576680141855549250074411163980826071408251788955158674130143311681715325524049227488429860034355671123949115488303356118018939429030069648498778921667122144100904596329669545480009102282341091365051075456026498631582266780541728011530901089718163784438475651807886696037396005008508798081700603439559232984092141381318413730483677337713129977590788531343129028032203317814082666557588885088961741935249244473946499976395220227582067789671159435540450777467954453311395415906580532792713354153176396096191830251091859143374916807193660487787938966060717858214541103031103730288252464583865198265287805032242614835543987107014787570577446316039951041533819074069274998122071085491947216637937441178131400712585122084436087067590726092681114254569639461186618545528927237716632973994690766562004900990475918506060380349752369670403661459477339632537729497429309570309119482272100129323080591516885026448846412700582325751995706670779148470161684495219173550730296740816819433908250891790050173715951421451445232922671028059569017292836118961076491479252855388767082947779254384661989280091161885958462891907955142162141397192939028172276136580733924257691690854244554747147213371797107478126470951968135408867932290024760277730833230359265964021767870341012400591655554314315602727667772818456528540393326277460392200463177546647471719794137113740313406702714908213312795284789435812786610437373185903841384388238023905530825953884871554188574776152553025262130090216077982382518098996308387501189443662069388157339939257415124929406422163449763081506792431364155608866414343679952505414406266204114020820636520759841081765557459201490214009226483617217960321263847192009231632000739421279503675974382154800964201155591392042802358319730919386557093316167028505098584456947978345001060866714634469628888486668596030214168610357323876172134727034314238899031682835526672033518389593388353379165009229264364594333319399004474691965452213536147494638961478444700727952672848527663048882562249596184189994417657912475073164332173228124086895370222168297312693734042482199874285163006833258361294231738219222007411810544146815802756571646299888409850736613156188072121185374771251972601876520847068181737993964054019846945021847472997845606464074216595010047943065985351265485009051606582605503621318606469126203772614637000309714506022507449021925835340251669457103644075339349610417022753531188233182834135175680526321846657720285308932471087507716165144433120211444746481408401042232929365378109244314810234601380294583444430117584390147750790249914803933083505430298662567773815196200434037237474897061187147720694077840464926779042648240662937106418203385692371459839074989776084505327073074705117188566642415150715613082799614039181609132035304811989755365107102719985568743280092524196452316236586472710147565110688494511329208400311677683089799568385174644143208261329670269367328969232761610240175058926255980081423579254295473290565743498823934860891027245459370750139429765597524522778301418784697709364445082819597964915069146717950906672600723216141953386142377449326362966587470749997292270388840295079161327549466890399775613667340364529081622347038828873353908018315128562011106660819804063723310541476372584767104078192380415780230734271482813154047390068269929140783156669233449800418112677325851633015236389897263302315893956678935321359741806449418987433192826881375129421970331699047910395749087184424219121081234656708833157958085229233967648610947898457297656460325627513347162183493218877066941400658673296849838666870024132614916002612422293810223540888615312466172098338462696922005650427030867068307107211380741388425838495708593890461835320409992313624167254153834083543812489652627727840953934384304055314442538362448511382003740523742905059563216513943689377190373136061973610962948516160533943575198630434010233872133956901833651767176046415429767395692569309348575707129400330139033574236699316761333199679992295479594997576368173777524324538001981608312519928245079912969676407636663981707857256460341180391310643806942762933241226347424692202123230336891621128121753273676273768953812360839083425447023279402107659340187053755244108783792383658663942027172218917998884488509940728253831137245988880412067859622260309565732963928046795960439174605745778459292594208575344965801205612552037347010007070092703498700372377388780703567875249108765500357420435331683735227280004461242954665228054876287668790507568022573988152566794868127209338405654522170418218656013688588738648171157189932307064190775432756321628290382527392790093424380839179599147742496270371099478633192667687588607532442514416765960466078135441304130263535965541432610650933080276944493727484800457807951235471276232670319901864999152898689176824642645077407728128468167802208246271638641460052107034811157679363870340172554692497743446234758645842050679430012485565399599835812156863049709513807674906293326855772077584579018695489566570801534916829049539280638088596936282982876567560966939785594105395057524674776481767627554893438897249788897154079429134645304351146736808595648706394285685863211436096843674176806615501598383325956445497815989081142744770985756822458855660183738604815708015079690712519725481647246910347612616284821901986709558175153096742080241016896960140693313172570060667406362591518782364153495388798262464823682719790524669141431509869171121769514909483245229533439098159460174495364369955321220520424595489940642430814168975003342718575108330170100463270792756116301191270726117362883954415980463137936144058138105662838266310161606633670626953684530417637010088624756711444936685158712533023377140661066909172411804811791406832094748115121489140967349369496993483411281969775919871701478231500063363332636093604281043352775798051804913562341898620262584777660075127010730577269358826555353342290113925004685025030252243717848802634718862290227366317835642158064508743222192701741549224516458897682465785951624623566638825845411554434058985203017407673622593481048550988993126074329195482315426001957177816177720332573774544560196661617060987354106498228008757276850876353032863415738809055770049853440932267497741346906029187285474696093306149851771474412349289287511176754927461878721631179008628359987050728081634639551617049126719081763603392488579543241477065179378756977904536993709335353902390383310541930536745699504743438738775435221347845988438298304585496805307299636359871033576725822060627922971641578250002523314754615521671558895504315565043871978931986767014769171661725844364751492304310638473103590426979568012683044753640562920570977692879501312767872302787497361122395050285474001245261980794202917751403189258111672641679934726854149801298031674019342804883554952904917527279769059092178158220337175507608687714064893632721474483983419037505117980787161873274946722818246418783741815783547306343329222445975776780470650289103779580760188304497589320831227246413003831787646408937513851566505061936429289416809849326600116896672170018816810790878565713058246523001967694252094383044435262421818834637309121517646996709839744916962217260062683546457735085278393166011969510184158685542128643735273871986781692861005155783819810487081212790548351020287079120916704730979981011909006038811922290122512234576727582457520514929100626864165884784273428109699733258061252145244586375794680988585469115934203067177341332770158641410187570398544797954161593985018113971182606204034236826987965463590203852717271107598553530538920126501588288130864509615818275610189329729830079710679937539320817490864307576781186710273930737360383380848266726352529353838661083818582514496582140386424695970016305435186628860831137145004376435234113845110842096411687813633125752619028471091236905547510301021195916772982060783562645819732173435453284971890801734239099087864365706972054570891437772089897472124171991258220439804176345455324474120868650759973052485046928275950102590523294466216565527144239203864348657240721617486311890983159224511401058677483959329265983480214848884472718498018495330604943548522981079975954469335145505036530884494921734710459027877193044557377229387119534508423059631083848591630389265332010387813121958167149483457352412477550538292848075499848900305439123630436794955719904051458466032084407465036097933633171861037915658270591123351166158175737048737986632774667656056037074211369057040503270056913867839463370132951872497512120047063388240404800574854642423500882647047217187886186543572891586768241683118197530742533330268388910389369724885603108770370318065256198127517528503614265713765402359059940613429212216143111413671827156199304464841555971295614968376568409237296776374163089744419694513226665345935479147212715589998034733473005201260421840329205357053413581267219301218671477612156651318658133072735268466737778333934717395161887353629686921474489297264263495507124772260985066163714421126308462081124497295945011810935686892328122745737085008044476391442658141196708251840253350164921855250778671623301711704146316346784446962497174963887071608183710453333682626385487626274068570282264121076865660042746205693030271213408625138134998206026982020681150668679789255916475490339254104923270003941254998160662157634925694324847877256501999743126192795655617086649474166772794292231859972319333902111643550651105510613703638322721954388103631682696004598418267779313011327721739916296313609097518467687501923123761082515148995589114012800869715753291867202149889397214655252749361987239187152191993815622068289647861768142340409877591076446647043562845546352659156302352982827089028000008073606931251402723374219321174457283639669884957397874775748026785075975121853619364077182857156827183420333379762785412171294752685902112062950637235229290968174186269648275681304834020578664543025575549063567776866215139211135671025461124217693311689567188022561040005257375199932309708315786324423013046495238323650327053604202810038740571856712239894076243740745393698198868064509642114681240634692958941726920841879119235658514127411331409435155414838830710793651893284369288042500623903794143098110450915180165506112363824861673113552196146354926883124649265957896320087127187630727234892482082230357048295153408882319963482227201464669596358865477809304669768321340165738091489875041813775615164429034458385582691632490228212181952732961663873111725409141406175873208885005480043204571074706114770663983563405369313259079272850150977834982869609258420604088548637431049458056089578092321183121886218374534583990333413143444060396754811298453525945152977439726555681951124290608457600454936402794603335823923681087691766390424782295163299799272402436160271329552990225737383947182246517453283464539974812786904687297912938637732895470340373036690519364130418790074386465767122794465920162823946527977488097698913852945948089618426863329013564396785811754507000243092269306610200010512988606053294687792438817450203636372992637744378301272105478809350273983681433418444504746044607239866004901377661556460933002870244308755546028410246517851831957213499885065628976203019623028955884287541012219703988475089051671726843552959839739663565091624108429009056654662223054457085550282514819303615250582018840446725901291768916697654232830726422524713469823647661280537687675818787004422075476498832808778868442391520909514550698602607361633220592136577288245471962066462600645810652463449681012724726993962633079533848997363879481072655185348316512713521828258539802670881277873927659190364791033362727822149646303859421199947403012771274676869460394312981675032593501405669373087725888676570563464631629110334736969063537977863862059122005542846049205494400476410761144489689973315938766745798738304483917841227093799544101792840722833324497237128214350361634494107353311365789968033166363359756587919655073605020875220473491757365161181668763822247865016113045274968902321668767541236585249152883805862426307286957715996587620079079285821484435892779915326450622291723090168118044940987389410755729053887141693009993916736512148260756012845760824227971870336260474491596333249455485237448410504897477172643460175292785159379649625056659320698669932008580085530829973341414890437327842667917952177550122032746912160758322621170917991719440888155172738226447398475369735648898031750075571793930057991574937957742720228194208605360184854012999685855920421565451078872141360114719643827453539991151389864178928980910551809487360127689890361074943412033309286359575141590394127832326113909168724281982426472139246734929473166464854710089685694199322888211685234960558832711457910831541806882003565695445901384528640925543585113760482809430866267550904671541353973807156075880168081356469253082704151535738860431722927533920575255468918832205564336988022340806757222526701940743449483525933248534256087603168023913020895546485367294590640231468005908183057707677101610162360476707874546138270398825341014866100288784681405783729233347365791769828844517341501841733673587250027949202832343246131038761330018129898767907564676114164251307208737564673153399884958476443643325015577327314200617363074298312202675820770084892526852994113712300912879150388166787783363388405626069486060952677008956202150674164687890648492607134650002460397911202608281459291048278040505112808265151299204038709087798924472259860325285343857859183433250420672703135657154569233974815927983533880157744688711081966421346350424984670814813082996923633393682143972662501939888622427152765661276950406643105871333193972443042467609943973801148621996611603293431616392234438269335687361959707093425614846084288650054656921974039742543455413110422602379275731913118692869905546902920032067241762654965782325272428886131787836032281870141691993237711110331943689576831400258658458636708222174040700756584312971233248922165225605377171157002552294955890131892580210047988036645404074422347636739744450299139816938065650146187137000796673226689322316858679809400124620800332999877317904189409083602080826725669634961597000270790601744391631938079262921134647656225275555789674119284815533181408579631267391546118542097504929067509245447843044115230391849183022050298283650857390874385175539062642595010237630972912879253298097321491250013791247993975602209259486746657453616817798463700400603379293801804110605022739473357402219169475978976221178015207348782339286413205505730098283364408469023081679492990556035853044086294352118097110754996088003459116551742754961405467189214754049566332056377301949880947685626715572572319442689676225691854101644042873657338182695531839840076044889514725475269999824007470381194624865993315315603847989053678801299472375086581159051648447676624443555338853935030501445492954280641927122835327867446575223193878786317298937084154479172951492837412804284301207575340864611873597659548390874415724527947108667914090860285829074089149954409208081873302594244894022748440982512047308486184275109067838364558566052709243655564586702097986161133822433772455695163469541954048426617662470991154698535517503974656594661318902088457196845668119897406563008918713652427303955246040553235121849298555922937801433124443119822249406887034359816978960229754475161277799505323231600367744390886672308740365313285091640424580726627887005733365131131172614977225901038354925141227685130263828562699423527269366586337489896302433447290221373418978184709277868684286686342786163146558583326491583311246948030398870794886007950783819966205699214859952444736108498212689454398832696159543594173167632880504427701314833601475984308262409936861802305855709220282444337408344951093945867375348805788698840411892483251699290177194275973466721449795771909089668058645634306929481463846063076888013341620691340822182297166750276081510631759926363364412682120003913526737266646805146212255217344584372344371305658854132002127782827291695329502710422162612696963224111535618838252444714991823223655549837218675129131539591902173415904211645031087778427912229605997883223921029355212469395050200753803532184150287178178439844849579793527842167477204786334448944306444171049417119717061006809504141812705215512058981913734504976539354746709027809189893900183171896785547390973971645720733866684908549443050730182021980549828489128223474656958324837513286551431194055193002777305037366450577721378617020690437279332418875936082456871802524067627482993331496098079137190477817509594569228598862823903974758552920947417325995502158752889447201639376097646098665022262976732842801774628263030839343310713905721971318728725793377862266155676840896461284878506008253451381421887507505199736082912549815941753781454202243160988349516907745511996417794346297158624769636298624364040726734953270444223510145943321793553989527918818199698190318256422054548614588329464558119071825355927749106092919385197165681425313704007603832145558055419465275758044517095330344299409462736063237192008383910081061296588563287383978026934414919114964960448940729865838864784999140758409330408128343148823998087042145632337521481040308015207139124197372859527080318786189632568354264237534154002083900091754703730626129643161322713142725082307561798077769458171120899805230839024123698004331825539858095031028517352114758498322902227438021313976922568438080022364692994275320614470329728210235176602325940897373059094672061852525223521007940047232062007994056363723019621363644478201598377392917143674896972477977513290222216373325061630209553425434250904675221637634836899142150024043592716856414028243044762875713180418862603592648086831754528514045569053638963828350085537468531895413488157067331362847904040038264322617687240892636866575946983465000756371895464093926049998555586314746460047837081225122587939391613493435589473398899762846132336562614309330660519186488119811621806094263508505125602992798605269690322615880199418769703243168931714850601805629600194032730920738924748540467994328639231258080725932524057209551929672127545824346850256251204007282472516212939697036050682651196832155028646575783397415742402021601780845902432610083245972696831812478805025015082351220660283323265570048676107060121713983416093187077879181656996007737078189955634457642067014679374315847391518813383750790088287609248814914770164904615769395685730785311102141564351977617540506851330291002441185631866109632770301667673479191379941402457901791579408492917960437269100081937813575969100419874018344346729669328895996777509253248491697508407797879934266597829505468339155361139594839971098028737833823040615789178091252543706945390669637354749232811887256978806513206788140837708298279561407993414154562772376439425905089268520488096675615213457146364536908534576741786766283003133905450576734037655322305950545264551350300916718647569563210638758629251169470654815066688926825548117198990349477076994815785790715057259106399172137739070186525755845913207919747113893013485466381802702972702095538819389523087783657351984147013261803039394207378200994733284229703189937914937454099411184992381289327171684188456431729042886754050562961414420632454264041253403553991134823671056662225748420617327949302825088402660206074290597519506263024125968966402913340696531990715256021541109150505929845714862556494341386716867733692860988884985061106116856822053367848541884659903909376598666123604887323596258366201775148751985659702030245038704561254694280837467934857706762561473459508144204117669583115083358102203496181846392110356577557673993201636355857170333683508298307383690191938929243759405654920133155819746715781504167894256247867148608546849516139742993546097525197901217736528518802385576010504961961796419722301186086861066210665551610189018081651156467916731405225182200675918085015859196903727899083590126099294948232732461845718044579852232413314002061275892283177146466925486747925443871147624385800127549684039256961422187869707390658625351991715142635750980684956994307054470702251368929631738910885242512242140414829890642541221903788786557577611349367625425311388674062409922019331144905572563978798728967741239387347550883352440804573002072940708562593332572731389799778815858889410512312774734078638177733648649427526674159590074389092063406759358926670617951620910013161954806214304395517220438287034101940108913895002213126755565121597919297931332820642948426789023089277570835070741451365100766571197903113446095609922467634904902058179347988579131971581901290801790363396473912056904232240120321713361609587998048565427787352592574611447094693110199441090533807835079360075921740456129045642531844660199203921660854123646623640162710354685930724135981286267706739895309622541765086533533410559549657684319616097330982017458264259171215935363612772834235306018094528769901956290819071465107766081111426791108177074737563356529154545401770599977892942177709948455586003921019476171600492386250717530691440970443186962612548020912274340680809155615062590716658624352206459154222901302682849504270604746619178799820139094192985112258413644804245906658612875046187752495137368032642392833820326069359847678797420579330337158442694704488383332606591090737420914730134558144763264471081760386847570590271796914015273905294839643497480686362966331597088929089533693415148605768030422628423883042446685025810735596170319185476970838524836283635346820914416245143896992747051554062639887228876124500979599706605600319051159082219754410735916768366900859747733349588517661283966084062469351403794353885094337740023383917324257322837635623031424763691089007823334239320964071488526567262087867737638424468461037629453954685258245398675643288305504826095794015278941334244169013091853422068094712876462714164937453864311360564813522653465958453612010490644317049185868108584440570198075400824475982021921474307768301841300263688131011928563929834598381373156736207470932455280902080519164090545896643161245595665695286469149039667329059441911219186035879005204645106921214911717271780045001389238117987968609171103773023452887750190296347478694300271693110091127368704846987537819773675113548268494485567128282390400285799139424270309081469544764144333235227563056646061526769749580008354472633764990415092265349732726670379769350689605636369315852851473962960550884411299136946384517685473991059946173838403461475049125453397185882294490890584287277527063272744257469751569112448820631406397389749031052028504595599575820203838933388644523723385058789414234233839525421535733184514709337231823323443851665047454137109110682970618411923101904082040132013769196944226925293880910506468019688672612083274073737187517001358395076705349641585298716113156140225773148396201145920350710631809287045896658249616461309169360580844666873424159427548897951966427529601386555966544883832507061432694442541263260298345052754880166140420925661830586940249474229799806508771461524480039629751580926736181889898934040315188393167344907481162241666085654514293110022096492932297490065777066178931868910813760084210687255633584852455107714158468782861049734226534196612587625232203018227244893888283823417248496828388169537881331683277010844463335125765828600330530337356611318714802041263501534060326859462351258002219863783181974494062328310892058740124518830165905214423046902964136170203193613006431990287099602798954296748254258654374835911684483297944641446481180576051423070640779414043953164471118958281662416004723857828155576804623042106994559177232202917568564792289373123110809194747766939555248629344355504999304584509983833100480182981091182153929604258900043381148785180096724276792264137445245525128442083844530183651934395899406590624961402931871062435593895727662662959595102458802170819792756730526452859724345645658342021984423334156708583549809433731342939213925733406241043925486851160141754976130710146831483467244853541349081862744126308981765919572877074068599055537885513061510269254422569906904073086903974709615554105226995486263644421981570602895178286432984835559000887587659727103618691977561398173616856927092779758913881334236570435191846069528288929216932089135701694507811273988133191687820925868297477600129790792098138569964243033178443901821666471154715806733830897272558028379114206612975956790420910258697264056583550125947738800535060463822377995859103230880780629419869336172974617786693179756890890646598694016870056657639524050763920040990441577996464270910003787372605328452904380702780493548868566733866758053975366633104619432767012113536217949948180023462052745432258282495122196966815798401027366015771320723545059184375898119588530162699663013946479543908504328201965114092696901266469748915075009008392286762175016502591474503996846436869385061431609663673657380446243230309739834791140941307473796386251802250125657120701862255537536537671601167863306527246040809885877383979518840409351358257549002182591357122546867959981581815697774966187796108374482253130362310336263277399227596802344554294821946258186722268604978317395892214827761905199723015524807050681893220680922392403300523188820254248905855674826560973050035727434449765493133318019747775178114336788620388213656593899894901692882246345699401471795139604946198346486495724492051387863306543173694080365131028240775180680611314652672147090534149471898289348161232115871174724647943010173973468198627351921940211998101083033841478951834087725248956084298300973662937877867596555409110657308086385316028456200273304824035705497398922875906743152797065938309841004191221385552178817090687399336483191726455923823619550425701450831172892057471710285362298689561480600951917803150074576586812648009319511826151753587292950463843734436799782390480450893540662306868441294544227545013682117821707303540031734278101246523450375855294320189108406941607394892821770384766141503314786752330812493141353948036120481478895494427910029677457600300455721510362643859628294991053838605620068742035644503282463820833521083844420739071170284400588552758380031450088252128649851867913415062646993328553716818702906641725087947092477377931769198988937052303986287371678737625356951899489835583160657189192344945910998155444150611112445828828015631232830833642370717914575925230758624197085186929130334838749148690228178787944915177267588908458984481918390357646076529559565506278754684320148040908135177575149325158501513419484801002057890817447699339845431982008791222523848873039579786658934231346854429270460517512310944216661817372789575680020101543680749972105869435602809561466178606276515275538473935372483097407428540483081926698541802598447349781231160446780348251235333011402540132947935627434154056736565816418563396028941072424746048974252182554863311338463421305186396682149699519847988279163349373535044786315330252350354121826625964801049704208542157071925242090632902233194355640271412108243016935269197682831217736252413460744223279639196750043139977556675519464946397158130431507350521388887754570420099238489878237854547306148898760389355420373352707266700246761374022989373291472426199554888430710128703096229300373936878426481314563620108808452218760938150458939053657975939588003313601286582069480411694104533631120809459151655678818077724944760131862678007462253486260705840641793568447924332588601819871868532355388470195153587018645138213765120598211630527767537713901417814879092126811402309522090706441301701821288863695020826282704805335365418775737578429694779380082765372523845425217057345496740291408556478560893619884139284395002777564395475889002292406959772942666885092068840002366858220420737607828814738165833496835641788193370876909416936091583564928307693873875668185425739647353793751756776773226956603495808441563420307072773774388606302074169667695825535728564266456162657961456901000546084219227953045252112038469171940483963491055054984038929519337452740387158266676936563011338603069883184169980338065150702119012900513996845512846438003591916639767367169236359553011596232394890485738359157603957874276451103210822753053254052390925533594371528500415353424911279805649630775604476456326631112316907271119133851690657472957023107040974948355717841665984121384077294819186999570578153796751360925233680647374851735503984419062704775719055079509448899590527898841453749560649689740313590480922178262793923183170174015729710712946259052919362329881905657024087231971970841077229278596462435019478795079886082004516711215169904964849127490371335355114586412528778802599406817784628944066022469253495328148817435199124327785831017142480717923906054857629645727911917343718295262760291408430960114173047763332319858638682293392967267761644678365789854001532041568770638114587027937214429171116535905340604813077978070973893220161915686908201081449051003746757470793245238394054010798982999009448917786481070538179594291416047699808530463868772946077807904238669026379291669139320951442395080850280414924511500644380578038271451017419201480621107842035268944405245171647285693388215604152080461192976596590775235186873338348799521510645064654451569358138613367023109503909700192071598410336014437703889937218720278661626788852263625864332234559916169815242884830738730710615383159451773650044129507062935924719375904585266458890220399913093062988977941009854536690879985551364131291538409284507898692130336107625844948144272476508137051505410610599648229179687083553883849605061930759044199091690552385699105358917732684397796336425303506173542290506484591721955379679232714193244903613008378716706359099611763575056635281438217116133984182200762255812686613786351288725982806685530760128773834787476039174556591280963784670797620674009795268342175896032883611843462985970901139061861619072194746826558820350210890168853648378319789079584277080743301844822843524118533129053441338727143937963985503441763223952856132049891296235905092433153423849171785521829988894725258138585975602114900842922908207216085397714297795693059306845003710889944356766716820174677977720944864370864896205156045862756223476325268862786996834212302900810285889019419314160907585878385565617909021257561110657630686166570748744190361468895747224760097635426012610194737399517448576218497951230981581284910119547520102698093042326483993858914670523757409492746673057483251048119885960455458354505478509118930652957112315915979059946224990900933036405795663429113134803719469839006018777436553369902481122371066847219022134831620961415562180717634516443792472102761604791088780215129994309866607203887802636810543860095606512761928290341442188834730209171037142663332768054118748476316637374576121511135397154252098283410828464499250320087473514453134953095708886592809554167340165797279451983042601290526615748412910888785116344538751745583290464132544326563026869472523765373642288506151948750728075567539972162933885716597821324497240825444944428017994573027645426740651812064964026695174139504120632486946004749471144582125263799694592117955534158055975397806935320504902213897019840382361298005229893618252649700631704637831712871816732657688990126728080917249601237803359062163566781421973423558665455289262927836316785332318394437344667713558809024491977837072657647135990989753868929766817912787478215149263312566372915756114064186358806891932235946877511094675881045886775457376027629711399554739107131866128910681700567508012536911468120171361029922175555559795860149558133861843219259333490639335478176083672385909298910237380107800088022339372410056532076609272361739246405611640136899616846356035911058120985332457972887794143861681227388838559573200597351705373424404398662513476799311798374026976044689569877132584945444386277511111010484835650526429000366354885622672475575868416106263778427033238551460429157456468386187375432826963360251076636826454730892577312987199344444246895029887933530189330450738772755791543822157434585791622019830506099689624178232159493272545338661435605278476671720997662029500867552463184587927672305622210933215918666475077700661670568865938835473379056346588338726689225021838385373682457544676484173947915935066065309148724384440475145744962942776791636273506489713183658402524533902912490781879305252077515144689968042430754708912190195370592430303857968221635135727388961642374792227053890199723935047773842405545742237338293492181174331933187278782704281926431569586311701617057449575814764620253131168673052685680883246772427563116153215684625049562662472287127297584272847806646817189617422967022885899904557661586653537123049828504495912562224196081076673413414562949627551328130664437860547081544108502971972014132033212111454549676626251049458838750401795124747418703740129801872930581095987615715233287685585262398423754065638897227054226666669161912898415501852586221821421197968062749458173187772196331218970711573825888178952517770990353585410490138211642429824720897291322050791502932630437979978475980334570954611721519699958276856763713038912572080309010461518364008898045247296143484282981456313794438502976720663560856108899287430754213751422275409244678036879048366920377245150887958443316953019886258407673620503172317152747983824949743341437313716081059166572606162331313312964059735869097385721804021847561099710404660584567385050243175664567837704851355563225026555987608828762168992815103726666521613484690027779168119913097125795046430506601187749321517415557681807517365831424146854396433852044193503929552666376848575024214653638747912716946602736584451850111208897746306928355857084269755656261934065310462732621747561597730014286870065885623929570514043218262885748027412283075567449413673411173946168304451018678024466229068780621246937269486597199414997403642776805393024451733453582686082560277662116588584723733446107271610695440492885708925086915470910458701505404270232129451367105634704084738118153320589958572299975566431318406749566092070633669879623174318288201701814713720339474363342244657500539529883009969839469505604549246465161145753604065051505929459909815406109651543405195424126880061174467704547768577591862441951790920226340028793681834542169351537013698690124296954614600465436907220672689898477221934793537817610738161886671672071109206311321587998020258243063896006080399721326622108679804440377099554912796392658621075349100611166350681588569239880272770403429394950064221190434698233480496890589659101588899569504928504157145185197074857926169671895328997373688548707868065594874822394868276405926286680775662280844128561867116237140492198005285850267789425588888464817974764658750755655405261563067336889448791695844267712422187913255048520598316333653773526151600762104391419939537951986298378437303972275639482643228689503046829708288753511111089392000875597454702405040376796130043095182893497917873247762536803385278271854846034837101663123177828250325288950121029707591507247859185127376788048803278288168752568710512550101208688542095057054287619891551591113052288549890506204648756610499172461996457857545203323921753460794236165755477128470831294599135270723863855821326743652656704945806114387953781434571007697205766599689603380730570270197211240156278619434923708070731818463405702619737029701940297819339310208724868802139531192511021105709198984893954318545787888662385182449678989968671559261648647541096213920942188753036355720058778563610628398040186783438719664032152763060252474918856030913628659889317488160248079915580999778761686435089647149820083711369360263483583573532404925759656331692062921659325573606796232889766167426916757244375534989385139227217055393878517177608662996432857162687711657437450599334085015601644702475414828620562175261092249627554570771573471614378160974992793455743104548345083266972728016939872044463198686634787287465349045817600577721606884470408195847454821961867164815154723728820561623555796595942986836571794590253713471900347935109193413718087029287871431308554476009804496897273787144071022764271864109472483903677719423456932535293251668230363725279344934230315839458888666750515509580721205071698047162160131068683842637803165160793803810709866247122459655941945843448853601357237025626302240646012135684790197098918706649953725862913676379006665110045459090821830990849835507251730005932529999641713255211758989313904868785617475626532111239560601035467034868881080255838765389478750988603681844949379392133138174956716022773946285010643647504622272193121494066800557955221976866776765844379902067101762022447906229317617190980424821561648478633457101439521871640920040649311023993678644829534804024715413291298056372521377711775403966936642778162512611425695845892951401515965061853696182403380290681178489444771119863806720487894042591326528840818207172436913496300565670155879080127618315090190055690739691787243374375131961734403742401003719373808061043820020040602782144400095951774112541548518435735764961597637261575860457856034472897194778790629151073863867904294725736451201785326341337567998278712235872039482828259478435447707391258109670410889825703302764007137420017565505252612537134572059480380379263055070452415685202644807957569639970580884189582424340686736264162967352055621199485464248219827953684257133243374126297283745524795357924734781395634135930721902919866190755583251811312224421905487972304300406293493666342453786702214434779063084330399697195396312701868268076002945572015547071943551913975785391106942071381139964611419911359045774724806961306685917507277136700150334686032582625622876347543362483908355750717247804319622981009088666006560979446103448178400543288549701941972403752862654268080190349090661180704269052599726539354986773723281123618850975666016268746320302375638470763260814118591681309730436131784803101756277159106393195440834547318919069479070679089424743311081814871475924688809001593415508150571225356911240094845592203733963312760716063058878760308057977964142143792623736566279777992567520232260111377234306576034054604580709889039589804317810139973575290842628951761494690147450807150512810466987426186775091840111213933338158035268221755473573398487172492095592591975780637288380532788404639350878876868944203242217008076609773671912122107854224375465733364390668557867372920142831667583239206686419050187803240611885829637890979893859807960494551819114634609930828350155979164422591305945625351730336195541512202946768028061658393437959318408438316960141951413910947604729590771959473498894114775921692620581316995077234287249857878505154797020035622725378126968139788655078328733588263950732392663393064269772855229937818866051313208124245877622432637904201463544164769818474222362403355629497858401818400103401907208862967591513433042824186951810790502263455345638055878237872526372924156863959215610346437674838024295205391206180250602513204056271249949326149670003302776729537852141034797091020588515654003319210708762790669074763904711916799670295968539904651287074894468494396014190327980432116209797684961452683022226455512928966173870909775892302205278876184536758389637233275067909609099773905490171968746334735571630028383738731711093834003024504393843772478179552974697829585300287129403249765396190091723328677452277055132130320178851605439322281671608304093650657546862497509205138927002157033198849307379176618609379811922061797075841837864899123694461438746411462990359293411164576943119054772147349447050204659711625837879290518062954119131479431972069813666910035554825845583493476307203481334488313316239602946636419620034173456307001866247637992880984042678861479604896894843752410938285881566058412582612015537997867497414891494576188116178785625430461025980887868589721967265649367332149342785207546031619309957360468799589815516423489166298795747059782520952745146064930431776004464153425402112303717750039148658676005974635115878203387304943433764907328838457908537136323548770698346953629455787287526761057804964275234793008243900473441812533756158139177308497506642149850691506454872048981416464989110909736325728353125587972172336846894333623706754545840948155033380235228212827414538036207558905965061145057009326570509423854704569143964612116853234774325631234254276299451281167624050565177387716817014851869975483344303755003340181250318746747518208188269087959688623297920130803098296764108509019316780265301199660941841690914137502222547213915083380965934659362269482853652107612551952223696571744750839518682147693195104145268128464778985907210720611234072481065916287016549137337889620528350894103550679772394347133610088869847760080205771195136761295398216046804752096872446607169617943381375261935015826452582189534242863779539095899486130543390571357945656761941928371738638698850846431940837188135600030704655542360211833247074369963958673938820904427032278181553274477335552496952289691741411050975893221237738448410977215194718245950481459828882003355330460560193217921613654189091870573670468601640416945605281814127995147822784161968172874179060811971877724000688926632245606569999644470111919544053501243577170430028985178681138991294116399839097096506970424426001803460170052002727712334670340043937016635040740664195076350693191584629469560473900749401445687430964386222455525489184630107174278564227784847533550493944709685847029898479057502163282932557477348449860222140077901379272792241190306974070728574126418712774680185053618316525972421512602836315137677716177804180792675768997528366501566638590148035049798134167912008898966619980226585010602788743210288286926449846672891380930111005622229592146853497206448744826989563997527616933545158358898591488122180954428479188797548966732388353241799721306442820783398450111583957205560916174430296415421123856816175002606387863696222639580849364019450125365558795809605472108598906791533677565643999927740255151317602357623427568778800910032548339132242232644443585550335211566770327319195400613801036986474588765566874737573900236970404787727767288010628612020732735104489288777435122708634914001313691971393650938676904854678207156600962490173057188944322110218926111775164238488469863464518268457527348475833353116391270866662499733158598711382347001296726662483378912711112253357315278360924753663374849467421044197259604940164770320732676928219614480424340298730946216137317299861741316169127483161932652012623953349772015986411865693444989189751826965814071158089606408461712151051286327677528667374645034274771082230408890063253356637508709063598468694011375596856306938129080717643630366382546833390345062559951314295555868833750727333073042342190347420369694419435555326163737474039700960274507834543736600372584610699113226393972676256601003335186208703940841902160989416852439893594432266820776195951946363861164983159230219052366110676470923930647285440612843697857286186954357131002117837165672751698900353770803997875784172818257699522296106323190921925354323518895531415494157722877669275622793878360985570219748973526708716169777341403984102234832354141338056111553540487375411900078009290400277606253996710152463058981763553264314382356056719514935665294427819847598861617465362229497174157877749326229501908196435208388834334908966566271864873750652028239962742612664797541115271128070685044009155251146114206304480304483472784352080958910661700178791007821547611729737922778950129930394957195941499309218526684611158009613883660083967195969067945226182994812475792752206485405805372490256643440555891466667863576548314674094959554460203275158468221972761114034265265348902309867339781260162556933186370512660964511999735422292160612765355266395000182429214964925927431742875078332254591301776002097217459361129669530460967286722185683146160120018813368266886111339342499136013803366218658978235558173354288906282593526707004202011731693401579467907985893285893812345805297452004281851258569626467642305055277087914449318336511003980670921040048711805401180857163787275124641310428543450739658581966020106269646496223076016431964356164918235326914717137909084205395178114783575285064533363618025534400508207219779905497895438466868009398293257298219618480221790866469585367506517901766830664933505168199159855240405038656868857967714992830924128525278876894983271311692103188246081867877066111468869402059738739687328281116267168023492707903778986807732516704117532377983289498689219292671662371249241693280967199972027606182059219270486451674464571079640539045404005187941223081754106377962459892798982351646043063706765816297099736476128151027507323382501768852264604934606660796807351607778423398654959552362262379651930480817042741545893325118945514197342791340703467881740650582490082271299037120206240158913032470191282559144265135284938430274876610441758542686644597826610602644270069578163052332557833409765372498176033811515807190513747539810983634396284640746485171446703358830615010545211267575429621989514087915845914124951202543602567627536311184117353076416386529279355294919220269824118830193145693073602076085326796926903772416930978577575803941917150611707753096265682943293588231732693409848954256957070581692441638100252884413638863482470101363344453172002232824554275335197959910191889648262834180335932474677677196887346596213360917888601291811834378966028411203424852998112039322713784166237804040164557795570441405199837308105092819751754610942458681347649023058046864848147992546294965429244806228027627481896339732993187773643379001954610912863656397712158655932335706316990779536445175740654222271368057184774022683291575074604174707014806135631894307553905629486177375849886352185680811897388451707086663196514471991996495815078110944550464869812785580373106477344166721485542851192291871724987315451142768277017588168650339568670696302887927855596666905911001410747943454732619010309527441915724258322359857248863341805906870456671736526889068043377372988760970218203333425783793438042049340251428952076970113196140691313396030137475034650591405053205991015092849285664373148149029542730970114428150093173477533472760943810359662987723409153897048653833904797686593790261239538728966313794476546018041031744072893523960784974702556182228769912923498951333449382878927115622832732670463375782824568684930128522961486333347055846903425295482348855650759335489727537002376521504472217503441684560436349381379962691731521485762514103545472781626755199414223651131900809573516562371258161930268576118592664272082645128184354366616700897854041229951721945229223572167456366025554573963012616795042637125357482730182796819032100844465099450236694225137467987971143676752116886198642552185719479800117137570951258232417435186749452488969364862240195859083416570571333966873150070554338710356267489206324332624498555316367777372893283424191846777219780393408464402299496175767477354730458429767331401744103807464756330243903027316137112665856705410383886824971401278204933935033617357160562519676029068165685999413103205252109607002946490248771540906520647854857671651025613336430068702341986594377718035058198177331526045740960577565633900594638771081425705419849437313073425763419350706331330526099171302466873343539834070291384850420995409773622902138663622094313258181810568117789788889620021385528534828368805027201662243294414990062798531840179072228697889443041714462083537294082516649347339581725575239148354618730877768064715849551352859189733704887713757485754519733279721460263305969824437931834469477898149454742606208815160344268134899275315455926111708718396162483885715928419324765019164412846495375489800903807490138770273589904770856332261565100495299316510248811296266234083443616193143700950526988834710630369789737635686838703618814302839427837097590772872985271648912897505994840153799396986037516663449303944335109885583247560584953453889145349529047033007243884322019779151836184839138320309186480291910839915752484004450597041777196912822410619828574472633960668520080566946898715333783155449007099985924182376283545968714878922497114330099527778701153178159853833217396838224958171695025206043597380068243452518623839379098345224829806049979958912523698544282701401138349085694865582163496121119177849069802304911479527104788244462822168530472656845790461630868198789483206197162459045245444724127302592344439252557172717858930752736533919951702755967863795323349346226968602686104494240418482012651049455597508302022566845155595505823007788121480669093806129236073450970475139951708874009743832422954431414249499458339592282684630699185221318375044598822676474953317093621402634983052222616338558206919859020379292686067967759504786111680729075618909394079405569306449116435266021832012427160166313144467137951788300454686356749903050283874226610709262927449266052860924290138416444089220160007561532135307488098443057951938914772333582984496094310858507486212672587168014951044571141144005388562414948782215900146813051192255629908404491724604285792561369281663870605252558557087163557207107917124468105742701540667998573294240930363871146621800691353433535961757103511084429189344178332963443680174357378000156076955021686483954443594045790508742241256842502552134549566641430413402481599296371637420035580839281217460512869967419213016272689345478027672830878413434817452047897876267193131067447813171056742678399074566769587488844946886921024749337645454794726279020266505871848190934127472696216206060071771418843105809012603043357354059564548801405327565487426839998006738337228189264918353691628757908499993566237492685698085143978717688970559097400501964616882096870225205318701855658433672090702036929867714349914550325852629552677836124747999371426645493344393156211619441910009652069008219156025474368459636966725122809702913175466100537441230411227087285629974077820888685695347127464172962791353497276017811240254641161417633527879880780138646809372031479634414889124584299651122197623164038542192323338477198030825904183116346822370062724210405185155164128644758199403706079700923374357013053825615838379420601934321916625568669792009803050726624295899304918185501276610894424150300568123630911996408909387097363543122800742881263872763976665100501554551941039150661075887104513568596581575782084283193273351565999861350332876913698109807412338885929944031491829064656987256598205946130529121508038239624021536481566093133841198646337131752595548693993761785777284760853654858874177160119928755744356225208232282592723061115018023169890894385100244847981036786890321681183411271898932271458879109060863091060648348711390969454206974656515727061297326095820186066792195390988490866583471443491883904677317736285882340910116449644449042619402763275883792692153195664635069222340066527963559684514251445292144373926118410627032645999019354290739963554431615102178088115732569123206606687947318158081074662813396749771995798313421025995795310824227981384965250220823567707497990353124977878973429923283114361679665393810298333738421647352978119290353201929446834119174378902578063691801734807953394238570297796295057436754352398774740899841497638952862785587295584413396254013157229142501509879743365630580220579775228480849609057405622210510627625882531942049688141405390749573484007881106195964843425358117772085058028554416781047469354901304750786765516125570030987880484421452493167447892076525760786199843199967808624195439182368194064346534678683626885764991660191162837571525085322000614361787300905571353025472236475338594416580476219798261637981960831145481841368652745008729721654004473748178989033277072843769612694784718872903634383008529531945911491329745971730533568093098911156513720442815921750512968384393155814175164725151123411503552299547189047635705899222616728126270972169016927131738738168342643650839708527825290504793294459719096895885419491937564916793404034621656658780356201635684714559867128437454240137431186301968423191574846923485678053037355052325788204009872466579444406079995348292251966731487667473309099967689883998061673382009973600129023903966641304132523816706652340795728969106257034549520492939080373922020409113872234520626675532107769241112470378390054807995134099826225049659425591692975523029535840614779321188582801834275690130746221396290820922322578861393794810051574577364390108922208262855831647528726306319362537384432513289776408702040093029313047715318485403347728075966174665112788742616069240689773896934346814915345611393181542982070343660012773116842092836319251339439047311548854869689017000214694847704903385604402746331002566235653715244134826806251626118268355835273355927670926467999807207032790706792673972421627285281076148943973590837259935445944536830930045466855684916062572402660811954270962657155969441586236321708791363672109724875741230818311923836382428184237912994194711871334185603135318697039559057816815650748216803677344317659986543109199378976759071798738006652688720979428468518506809405935754627326029258761805457470644864478575861767372682013150030819747777732993353761155158572070449579540577184198802208610822816512432035629903830997606756042774098346638976935850463688664228217450246702427339192750764998360832363022199150566230026096272801064109963773096532048216255938896849772825424886488831464219394315143893484809692113190422006188086132394048048992068433874919182115418317475981603446086735092319479030605434001456291801568753489695604268339810232368897852447186854537740950313918318445269845590186899916265298423773232767248722659284115727338321229660165730947245420606891807581128211639670359610773941805381290140225856029426383604701426879771942815746837985367430977131406549265610642473844316754550214860457245784780159533400541037990765590513288378655913169722273600234998694917706851584852092030764159962979070742801284467852779219797189476726180714779175549032747879544958744990315820252606303285491908284589202101913720771867022463341428923789940113529680103080126676637704380508216126533852130425663343235107461139634880160492432041378441325844297320705886319014746777004549122853657815076724609361065766286077173513653935814201130074722440837898478657972413313184481144566438967348324009286606904860802918919750072325480494918425082706409977753178735247808262628507576652927470736434705012414295194593272588533215468080994712974931990414521638139011936859325218306238793256210482803499013530309229188690330712164220479145033100884536494434339973946542581911323398264866290158296669842599616988121324120506135902374567409487450412587622007551945752937193089851921417847579767254470316584812584905453345437196794445328234730728594251954154374554147008660117389758657992997668481395332586562814123569999802723786639864822194204759042426734474692761388028578363032264065691106939648656318377867346765873697567335913778046327733132545406410037564990082626453906063206561454968180586193368548156317506129199042119024391016874875353364132758116918168630843084813588406151748478187560437730588381094439022481416284989321286980067309885907458834146992213226836304877506209708962275341225266734361953923749857207922040248879367770740260244195955132040145559615061238198622996456818579556946387578469555355074301980483903898742911195678940706183281358537707207081999894214386005093289958608963634441528132785123243877295728999273371921324770572667888250722072386136539444017687199600492949126625404874592505417157900134820870304607439579625096987731974037437034869261395169864347948491670451287508927146078468758858845183634669359964871946568307525396468927168024839840664581445948729923284164731444515924079992772846993158948839622538276067020663607683514561277849534764159366483265140778829039140338793436791785676588403626143276193198963317242463584080822566124763331013198735262606358192494595148532879959536533419630128407375013485027633791739513789881617983420566283846071604234624270129643304969780998052624050422130479285870653656416012317588082005202008597136191482843528377427368516965778127116495181588251203258936583361070131848420568341305332283478375311474535029344017148731503638021869665602755840642374002310608137281383030440080827143434030951081540026641894335293452108909168856275437133183186037281055643358356442040039001474386519813660030369473218978661740418763769109500343730342285256219103725807446875834588977871089231638456166504562372849590724003258678106427548015280243809320697805675975423285359177779372703856664288621049626286194919678224253913559838074704331800988598060385933048665452609512238849806610910384770769295489979432808106391705923293640468617682497389236013411389777522680895571107353942733905745855514168637209837377420985718946870014733124044930506503827773964517571255869756174158913742450389207859067174219382229498532194599268877598084407792125095965181810924999607083037941972355301494407186962577644847595507639624051826016187253946631460152828584026088319410912652340397679874348293569659498201168478549257297829496769135236363721941607139176918179428024807437427842434645748313044951902389299737909802860554526134184298712784843081905889741647636962789628992803507038842559597988418695780340214963314563206019560118061252926185795771043117257968548296895181843861502764240529757567481549949280606153728030365502638455347433788167633324302472003872198185602179975527833718098211509793174894212248415501947322933771939744783051952471640257949136300537612998110883269517384276945926138959488359532760544811017400667728113282549337265916359629472933074040354394427385325190558470042990640487477097879133894123882897837572673530906649228271037992742540213052287989898008220309581350203546766968496578860034032359209625025548833352418259892262465302288564046844289410126547861161151887841940416976728043868497121145662337709424760299817252574690047204557545873636678957054256936304312644230503957103852963861838037617487800551930937279216935730042596792448272081250352570360727660471113558787329367012733167503163147274476652506887103270510734105505631553487229729304504170392154671810542228311333935013560826080296815830589735955367790347221110491937581595862503244179468681755877843260966145747267854798345917445177656866709677038182980585589674419052805591411994696732439220189365353842941235742082782221041851077844631616427982303445910045516601624575539015839718795538610378360201893470834351099137677788572504751830707052232955022887321978663407877046616959568260898208239170773870818079815392597789277323722847251411416063859182444849239912615828813132356514200284188821186144060318073844105096206421094024912019362666774402828769959383398876494839828332992667521537775667371262440498735340669268680903459872698614457376944036554696419613616671551528210689830569728067320802174659120651272959409854408927012170068816695806939284103630542194339267994786761217304632770642581889989804057935162645583145574021162030626194323054233012666211235964202665390021028985724478582969776140200429088480768073094820961147181976836062138489125810210812639953841899010584137015104242314430344985802528400527133321206818171351091913516893748642141535826686398302272797799402068598948037263305693118817701295860795658676743431343683505467176496362281223511094952886349972933315488059658078948301925173045739113877783860142935419557875814605228793769014557157813211247003391846272424224954798196281708592236336354643327442543740197855010538127301990056034022000825226518182560526686647297911282815999936824569242630153407861141324682066950667834867085961960141542622647549579387524315856594128655936191480609665238953869028781924393317076506992601609248035039011675833720827061038964525300622750208483993060981687525653585469438267444142564322780600613827201662495064568826637565153393712938390585785832550584658718786281397755188889219214074279365992758175356856636444598946984438831116524752336030472183323781264651905831599929611493260419026880456277407193596933749268823583751492115411028867678282767029105687145905108924586825686205638478940448208250669834578180298785154202400581732042136992968596949343789833389611352367235043544042504213660919649495612553407815103040103914448578522402872503940261210351610986823365511904041618976910882861486439632765955901233879007820439885974106979079455545419062750365731407474882224081903434702542561950432036593787920358444031424519142147701279703817856319434548601764678239004607259282436866663444133299597311004241193407204563973660419695834340921790587743353681642895861163696527876059033288248852060262803937937528584315916075937125267442887781711476773527141002954292759796289357069495457256706188413899681594178958093097527315516996566570208756621182134832172859514216116080701835612152578514751314813097641066144833561503664247995741937537245321275144102828931893015229953573630164606116135782412544916982905220405614144978125439891492220243289231949136268293929507067483160116251149573191157433998543182482940657375005182232125482983708816679595159890390872442057705552371424278960857679335330479968700540949985813004035459975853392969134861124251042601213951102166989147386627204269800203728655192516236091017990898308807482318186787083845022150972008766924057678263438731930110345167447730600923777488268476284484030293407947994274010611161826011465004171638696070162928084723208998478294649379120490364817495468297006111957601371095567492029057376782551264795690993694732081322559468387832146706797515329323649750191800633047027605523021040383249301062283904713218782366816082530408868071001824279970976247867005460396728710061045596296830556253583987375916238478452230624815440802061159523388712008175009083551177635983258884735323119621956329363707813437938768511474119351097036525554309423747703549096322805401694958688008696097454983858086886634693338578748641886371433324584640727334930360445982667655099081555722731793030682757933649382715943515558364885442146519368577371610710211614525226099177424063660476487493283262546845233497073645603959487858817349379560884634474496990517524596727123238187097716412504155822760078069815991998469830611010843412025455351972705273826031239189409658986042370497378947928192895559214991874966561792986176290695960329149573723022758170200939377546659710349313450798039015246714779410279369637229368891389510431440681194696416548726037226420228054573602370230728692394773380970100429405474124878001449634431597466363897194608098290542082566895184059196060090285730849599708008218198027122459945903944984042169668138931027116982093247013522595023311630365143894949845840233694512019185555945241351580563417090614670496690525933368373043272166176277445969244715175767273078446862869113625409408414152828406026809831075590221719732659919086705660736714234154224079425001130297114485753644875220903230878909931449478836142085394657335043906696574833096319665434064266176452446658901504298383453891120521089958875113773243299556460690013542661536997713127205792476874083483625724166167883146306194092506898353060687002242351980883777004498504959238118086634212748601116941768189762627953369389472098685154389429425039000406354907683255431809114217736239365042931225648385531042722956800598518883034846888932603923912242073633000551957212614964978189421672787711221895315232630758683798192074616555359500300816030816020438535061855401086145575858195851043593666739710394109750735238933731004682880893217998717492354201426906471120426059357159880487002249803294846707546786042210639209147805511134155954730152572408445802938282981028245922917965009567222625739199774432645424342751185936167592949863570174919117054377843497603377825025228440100311653393202621976642892989936614279628634914209798549960726185660123189803525580359294943168107598398722194381569089350273952801226127508623512295718317972821818532989145616623334528510303015561596691774122780784427583022111017741419335436541534182755388185231840172232572842819425507237551572921460989556668482455663020757794800710283390939829895733016312664533842864069444357206560933051859206940925903602996443044383520495671797702128490113631469698786148742526561370606779804417026068463128545346344652642178197967988862818257680626606120329886225987372479752665083025468613077855577813814823780536498324305846688136918892314693721092879472145926815358039258066623683739725698125971687209539027994544812554694457854851312637898650308317310214712482533768773723069871008983299607424459961706077327884954909548282758345168647502820760285369899018948480916627405101346095210726739636744275309624186759627890870858571680918918328982914083177993733808151274344592312475966593980914519756915568206032787695790684378300066471872108823885340236570879586145512777278779373367799086596121881243674119400580243907104944280697721193366980676893909591684146662273184850845841404376041246154469472640467034336040101915856827813092397292338627731369599004636222547431680664254111424444197630618635581030306864804847852819595534112878007027884962810786384072178247262266533297551815262117136512580662212024069137503124738734595344806246786574875052517335585965696599500984839615958680858775539453154768613969864819226987877519068056525622778298811866323490642172313334238285191801504633287003746899926131990308118698660842917702337435882689035023376703935194622312940113871860718676254009020217285849272432477835539062033071849554895449449039449085603989708621797900718273825429947309495155792987185637585872967410751557801093679732588777694553712837692694712218829101116999125483243538814748023941961398085694474624434381141852024067523752901575470134684504664683073723487770942097899747568475271864480784252587578604818787262374012523717771341702666032283178943157983794400934894416656321921944319410597227710989828041910317337240630181064840822861423073240400485387009097925572405803322237029746797306585938357757253537879529972969738056833310714691904666331685524811628186505734769775588513720408706599644222481723781712289793070908188578705401951912636432569486233872070672587408162710579423811778109437802839258042632632212324367454543445355156625429626993942509421970344182379804557045435065562646181970379502601624264824751235271354008638297821554219067369574834398626787662221365129624928968742788509001046931714096999917296324158795879308941819928576321420946532456113784800475084841108848361295385723271807012033883879044017130881999668317959571965498911778614137878385768779224649082823427983211651140547649451516027102922386616490568268921141633314031768408464632503003639558787051631865832021919822026778795011044951090526592634543555318420388050050724872616124352469665626868077161516698621208323618901220383202965365256973031441635914642888955053434826070121216528922077955698509457687127083579214207374163608517941327382908816518156851223236966900234995434806732543114656474522184863552182630649466869363078502437286570402642773106618605075512197736732276189069236740913210423316382312456238519297336213997959683937502636102537189536832224135269936218578174750948173944036744525964793926443109256846266683696503322816846442821429992081160154279878749355015643195069206891793363560236801109354583664741748549811013279604900131509052655627574454551456174738257048873164961799287928528774494944925808848171740017670537064533300587856165630477940021849941100713300850512572684459387273838167869276478023406269306175486924421269598085169521111796106989098603917226909186380791418298464289728586462330379290862935111524282683623914868657618338583851215520917037116578366768377858264560671225536546090449931659280862165295740394821464234715695000938055545791510905726241131959047143490390648062367135017293089236160426344234945027269801426272565500796187438870814863397323908937912194491213834144675074082722708169626549865883760938025354522991332965629248303205841266277476518862509629942409226860549971685405549030424617722061632527382884787895900422975169856157931443293498197651137349998969021902778060079709239231980750769028123548294278637364248790414924565464963136193838432626733581998421479392267325649919013692354560021074658929775144348170071836922472669717639562904104374887841249818187522842577161117906670599148748322206848731990717405272899141360589139753860210187623067106824783481002086353684951558591563063104909116741867404877396659133716967937811728330758118603949464868315410400436706804492233963841243338997739646518250697726046789865236715742134350108991644749452921389513540299788013200335134820215354024925782023204781264726677227721658507933284663362032402018286109125396700435438383202123173818413692464101623162293729638540466407668533350020637815668047127018419929982730168598155021542131736195513457469233174364501744827214614016334921893108375348733719150799052781559728588037354106432100278330710498353214391388125741893835868379967056533013373344219547484586992858838518875096721313393372719420030797262832795681575472898652230291413535738469370099573721397492344059974427707176149340417209976682997362516995492789875800803711729558817678074163831411318267648398459895720334495960812006821418785197873878625435220848796487685900576878727227911197580290242968854397509766788844610421126119127984752640480570735641412166480769219646774070023011590064561956023812133907200105329761589569450661206773787514954569736446181405902700184978564174552829702970956600168428624717337776732495502170969575928594624811031728562635367504054551552137741291786114872681450975176198083420718921843122290460914640592155804900351437923169187821481954827537706978748484530231122460765614226616512498223752681366105461915306433825313595748752513568551584346747552064975721318015307107391958896105182529630913005965922798113753993058246626147020961235885056406921069632188051129758120229975323949442077803877561472977851472520713406619230654233294052770763615982839631301661595986289396447579019396010017286541072555703136089502127166947966636239238567566516833505518141479149979696263919952222330699129009001735524242225795819596730557427288675357689776165452751924808514021962294182575375829975799078950871722204649497730205905252369048905684135101240705493096710069510739515558267864491271385950820548788828012151902079361786126100202586222898461659953579267438223421814118952594024180265070148049141611562560574459073754276418152833431168118797929720926967133698467067374815051965857054502613733660549496097110267825425768758192016876411664444244598948041373004552821320866356782404261470937038888344464804042160166366096105514224470997684415600139827625570220028832699863182319706267549572736913191593304546075344562740436319978964083064411036533224648202155112438545965917824786458880675360714936153159193577861678935340229740817018103528756940421132358545113772603140092281154227359701623261528393298955604456417515038103653354778920030943121761971901919300080626839454209430567555383168174068226004666687583022612188715092721581481375380752781464049684775207101179483149850765516768526564795496394499747976180623277766745658371182043669318779646517475544811957730502891020752907603067917421388070292273928350152484507590010936998795717655322448883791486239777094121264862437611264690073942297069313487844958683100692557856944256033833089640401819617718861461330632711579577613095202968030191894503238268106655075000727450273723526488088998728715933902990726984875496280185929749162831776264474595999659994912010540097449386996002141734925726523346282306642909575300737083649813134436643999149183742630424251663814308485289691415505913089236923569383050200137049638444119063398536068635830597967640746967587826865970189052181894588404645600985073701779066286637331647558666405271272825046153007320456237325338643831522334616544272202793015389864232246499355176674283372768207229707626736742369645987889837619169699597902530744760483249829792570944232349861200317728198422622292273718102794558599406153936233139418760646043439151320826371773002357077945688154293450434074664367211705620545701421995882265458655048329547246316944599967258300068176985453787273804354430027349697163597060041558322495873977371608293673648075740408883518586720062592750804862501240219032303014714383121958214893885292569600143194193633869964491783486011071824567533255478636673807987877986396112032041950874212871967927567800330805723851294456076319272594929538358893043255943148953609545627707774776470154338482571110263004238831664931188484743035690420873763975580930043826146266460888087623646637456791312783065937919651683340986908284592791791454969188104591461167488808129986634735835949413514127980947621690910533806189841844382626272188507991441735776027156809344651352985460030977507939528032915302902292824225862762758296099757455810682048482017144910528654968809336694667096389226368364547973040090590093555210655317272390979327197778975356209867519654470234439207303766031349398018603610843078660296610725465085611455882070988017068844739687496387100447854628580361746888646359260912756692870827274672632884443969460187552806407500219230312175154403029974725455981507753207175259430444899948616846692084033048867846328105328194440054262462222418598495722109836797843194716634980591758092740906491043611812856392402171792083343989271209107607001298772863628359471446859773408273741897392082803074955911579641790561787441940247278527966369756513340930144866159113199209912499217026297022647646301096653024878065344509860965371200601326570390531879495107706608895046283679664539228349532837729376639435448345551904194203642193758157223166852052809885298535183072676610201930800766861248155778471735931818724691058022235624283757774459778355715349843779809145414590908200544328883915249323245381008219565162456476161118907994339326181955354207456710204499704211935952305165502122318420222342300279021654011898852320123702634272045266443950053431884946097810676279128742971382441635340741046921869851910466287301642138594567014741392532396080806064136160674385290959488202451026001464889173837062157247522951777576050300342468944971572476001573364136868421421995144457176220205499657969749109800295473135175733591755040967070861348858742692315659180926756001001107756433702028730332969193742606399270155350702762743516446276945722565540207298564317060390423958145465768684339247241576002757142980429709391987774482823283321192131818372595781558949383404607279602020329063374757457771152917908808480468870141465825674883014732959789730411742906230986056257370771258448333332753830514911330412851115735891706565651278417990387574186332906339789323350811590367331896142205903642825375800091331003612665850792178873767448502654018869627941514336661638723572656270799652047934574144655728570688019018934414692370900850874494777884436774052256090090637101238007099678040567398055296028161628622176423675432723286995949604372640819292003517356374218264358119277816131068245961738222991888384734311824637637133832358346557783342285641582538044115267749946570556382787429343986861219467711235482187480103050871651439093586536883631154264728542940788199437114858324949014395946438656690494267705808948149783318134706515337554168872028480316382949749887491894715846289814884775491670357283186069712344735072273828806772936826105839498256944737111453802837905301112578111162493237645285301598789733776687666179082795665789553680140841596017569072526725589057345127340542300542646664884129153960753264384811275755276079052447804714881505740818110975226409775945431843786046888850360074101179258696797313660336131414723899418611274016958483785547202414945570807839189158502695419830391940018202268509682414659836813200610099766815781879260430980097128075168218596570397509782738650524482148051473747586986697765140230154303783437965736293385000636323584982755497474628835677103763522537877580554742844475782677748184959529310924560096554202501952855412050341017740692510181150445353353388761820073631923307587396548702513649881533449413195141633190066376630351522048098580175309578104547273616620950356733633176224324659671487815876522549518494145685700419813326296767917928046869599902908982802762011390020387236173415788072402212661277206614283673318882663868877601673088849785044489888874022361238801546118812483162283467558593358808880130624332340356673232867954387968250440848115131768652657109120557967270381054390220773746907572148236097552324844843846174836025791645947576896141217850548967329081230746963087376141062354281727461311321796982777400774575585864468500191461518712801058414525078841362604202507402435336088406846746925539617214675191931525872739432982401959534370244694977025361752602794416433327532583383859471126033770422074339024478342023995690485806977953721460124963412347332666715262847871096673083269780992053607564941561062110323520643380194849558333230402709138617129969601270799031051607763524982832482975628649846593620913983881130229870983812021583304282634162374390395440593983031860228775915415363146105535252614799133010566701408023367019826698247486363891451065824724518161441930378116381099353215493379416097411908484459369339696474126503368463193570131963942018218049013865571688944943353406501256006774665450228851771894847273801114230411237256516585737465927462104322891467087036378713419631897142422216069249990028372389987558248000706235385995266401527816538053397543412694654432745030384922132680656470809241303807134281278867329290129558915625043857171193370379484964337921462462777505799882216323799916757115816463454457320035048736831482752526297135243882438474296688220090803896920922217290610172268132143619678997021892789405031689960094820312133668032274038975736679603173372656180078974690349984932779379665618565370047930867513064839017074060982684656143450749443708535875895961570803474837788310175314893530840079592431075987423129728398163263535422340790211737173697116220787795067887227947985197255062475340564417663579322271132284746320668351713468926424891092651389343633937628894787869157438945850164813667632896964075978472587617200673491223287507511623983195371357465468284593617098317740221256541961036209401868030140888284727908200416874294155668124365904087765865715033571653467698527277565296999307801502545187124602494634728604696359738320939801282287940151646497322821763262870107307724453280110179939186492494620431672460866430176283990279722465521386994655757591703023032768232914837912228820628679255754673022415219643104209138877734729770132575721466609944824520058472414729369585587223702889711670511862161978394675804484676556447329268084150157121692612922939666998824911957486840560674099729910435444623620364490545492986732272516077613933265481143938689197811392120038253246487984557926309731785308509706746882489471472273452562446390887993060600676427300605581007514650152691130107731912333062844877260391817999343597989255651578115418212671518111496700778785806704876718257969878738070682702728222175465783587193837231184076406055772620098490961720561479610968790880613885083681260914594674011889206980386555254239700127082628990307975825622779551916285801789877545010965657000753140160123009965436606571321074330679531057709421455290318731164132199658778759683133364773074779405023611420808301329801981903445144239285401178308047285270689818497681741684368366577290400933720013252589083104247182444323420419577235983783994856671058486594188062866073422004483706440611163984541025616038991450555413593288569721061637335555338110836197052031162120192632842168580703251556323071486751143578376766087459756436209578355343573072805522059528381960045226543862805993693832590600402890884115823951804299646696821479573376840366305236260094134787846520674777075043961676926289229602420572314541604071592952691636452097144978895552561815268414110378077231267738058577512433769786208011478571192173200392989092640939191478599363659979246082765974094488183685851104027642021864367052749450957394398860138329294619640230919111953102356280055415124987730682506819770239516590889387547544719212752908678992474520860993190098971537133843408649303896040067795370296381910844366669088156957720908545893396511950803393162903656358623217364183598073921719029212392054721716742227465732715620024568189308659667708070769808653848656789985029346012416574322069259181915825067843990136743830370661992648519322087302255779794926197893695623762712057387839625131735483713302782132851871064455972057973586068498173218214184061074807923933689099522084915164415631260200309879640995053741315179004525129770478182970648874956901179704028221117458137245205403625601250762169705533766741553982159451524211474222577745964845661978777510467485226950907992239007777835274803856674317630240711838484587186502134890768992276102281088264146002480712277755231854231440387986531854308004984952858322602930702298405867416038504118515868896268953775007382739232373157588343987351425162475182734177057857740036334573123097612937432554453108415160461193888016574915706489931821200706622779598590011242812797943895874524177073097240466312377288940439287811517716960532649217021389457056834274093992052077046454860316903279454543022192407222773529899337821762114990328291719579102795899830959841106660697781179092846358376948747558175141224062219250843495446726476713498914234704800488715058956491164682460114770960157106627391030804121026013234633921345010798180794578348966055278021801496841128144167856503971564373598873231738402002539115489282402830458382179646671587586290567332045273270650729978555314637699768132360279611125565545762438641326469730567413200454549870959560081106025529861484537900243851409612127438745035247338218969136551559574876237820958557493503325181976988450155770925683358807493185564301675395838355467978617364834232544492326454715319306193203997585971643257345381261813831947219049960813385703432177873599713256821614082134300704936813067895950983534661761989085097047102905464050483763427423543728287327606864698889954377872065877045232854473223984756839506468818251487951624403642101161679051005422023025980360467647969648637137849365622783681309904469125336143334935858023693411768594214607620036009734822508665237291615443300678317404968023856960541140844375332687867013477713428196734675720896310586576894815479155499165431367726750655732752459948116351630029887520357167513942250215761075156736715023274534770771991920534830260580359079710697651904029974651668652884978118259491937013275495134013627914378028178374369382745194222858350053875250991973929254226981104870206378941124780148706511458570924231356460009948834656895494207217110068846175834910515893249302021569726763107906647934460474058548820706597005648137816874056305307755426969242259475772893409133515886449974805175969880830270145135618926671991941164151447183052671356390251388943744574466351546610398047975635816831358477091001141476679668161946904472462401210164565562811064812214745294078154760504973788744828891897523488266963724509567600296651869042292385316840723741519878026753649334791787013076407957641910073276840606736009369622742610486061201069551650289023274368365066729266379108877506136226323636072421634712704164028984318814232752460978180221179548125351987049990942526065986849934760962907293273525735779389291686287998874454736445409100882664557317154512177822903914460156839465097772526046026382411738770071235068958752752447689022743814889279085753516042266444110825929999154778860397770038120805232295737185286003617927262723657559202855969280378611520044374620742209043285781711265564055153237565803006836126892426075207188703309014497265115989923040308617759090405911405914453024014589172869999061845111024543529636982372841004896686652894531720487449561915546771106785876213668090993390086614643623828323346669079366538371161824244240714579457491694429257263171381553933730748876282013851127515587409840928686799200469440005661715748365603102306247084730065328386170407272870999208473399827496636362450826668490229693549315220065678908239567294911986868106821337722987321752620430743965064079938796867164520216143409015946773454269750944107779397774051351863390942196269596002641930947587315281654023764721764694409443273141014620613490962238763192541662082731145173999570769623736461935853628830222945871864995490665573493804584548144931435921832812495493856605055916911090045548757710522386960424266315412055583763595683684227528179941536767577397444005710966446867041695328272202720825618296904092223010254326084813042013976438039326853792850660032746841888099782059311495830851105538825007395406785516131342436508156763844254119201174471134396218464655148805735683947857374297602290492975969725399070050133504008752152958389268026951441928814661676000313835981991624187816475120184292813492674867117898943930234255739816586568236017170618651548936971928276666695700117145200064103454246234326129269901307981997002834896638487744446294651674455112390585267186835620228218842113434726968979195181023012602689104267420008581482172074231635689848908410428714626703556839179464968149319634490129487032656491244731340565789268087375771756989464884991669513829796328648840171944577878693784339076304155146309538805588112282773368592854577301261233075914296552702089349714771854978294893841569580309953510021901787779081501043394645191682924445615740167686546780244864885892464346287003982022318996062637577324734889687215258082455555408995346565415798792823818787419827604235143920424670668945970176393105701491566310889428270051318981922024443638585630809905486674528012432440934318385991429928321630069165353165748950386955083357901577957556408519720890144425856861796904441303940577267702629647708851703473272041372998473952134045391317084938771596120885308867128489312265890306925984966938999865837240192566510671164982348345594637284615253795445456344703757961855114340083834709094182500932322578959527003186712880141927521377719324241316422462034090469337728599320349130595900728770913435219218579885967168475849641953257697801506614395475286692545669314833343821125209242881654316970988783918869397773406638712743353278038220293389470564385308551792017658420471592829031752362194507440648806361243765336715301021852569878731029658579247664064936722668558662107340444743496381068737345001800243067779352364212796185766754793136162154849564570472129428600892403604832651646759527218374775456191874290439163947706154535150653643034441225472308534188800119799677664035448281989268224705193598836547682988774871112190694770102474467894920309765772082815997975419882923756565384463836775909302126138606353440649475915664574237455441919380573647949283232872069074406474559812177271651231155441724868735925776898049209066403880281975480328696246174676166443240312374274264463185112020231076620191829417163660095698682607555792308046051531219481655174221957963553411302797516403191630293888272288366556683018405449874654280926755463327696992422478793494722502860350576182464918111973899233541835324201173546863041705360900743154941200326966857989498494760578352663308435009713388759574370358848664985110560906896772594450106965551795786160556263169511558457466557590337319876069084333112841915592516597011899051962179725095590299640975243438141870323708980374264863099597422739247909578799060234154834285510990130045673535137993034231065500038298841052905131512863636885001425500580305338914241923193544563545769360250198387504165514522172646917865014802950910961917291854124954891432389921299036055371354763975820254312416794880099158936177376093354057789986265939703361304865567472419802702096358176658280695625384331492413600331184626884611628355356010362833812086231984005309435799979846194289203162951059687069321281258887482725549924885390890150264946707011652013440781794308524850048122432240954152087915098757539409199128398616937009054346431893885122168102652979844717818274159001632964710256703601916530720893802028463207150456585716417354026611275714706387703126283399889407407183754614491527244834797775240186872012583825091181610384398400490114191134415218953153041920152559787483016368990188932858744214651766715470176343823763205327785748188161081758363700324647786220798965574556623531997832168931196370450290688307682063368629477880988307771677182360575899136641586365148172279414664788517304586430582223331988483829387778310102489954376451994049200905191736207874734025145162572027590532068830480893028489870340002950648959854919557425959512494744041537906219629640418525437567895081686233347734507849119642665187307167599576945916081967476480167835187178068115023159160177509707157938272687189597956435299807009227331587446777056591317888430110897494983853800392087807833498292572954795055976134676603017855206134662100881312261539729643956714888127136998818110684612364593816335718672527473748367678746916490655077817710392058919945163024902642398494539774217473998383659192831221418277273034217037842193366053191910976800390784112268438305500306173697960677900219605024024694279118035651816559835966202756009416196053894383392255573901022871102037957032216534342734573359574521865397194199870611185629232528602994572673127578279302317862245649720612517549865033977017098579957529157586987629049169374437450181906305169029798986165440027384906001284975173892046935511436729801500184397388382129292266620890300263598043671099115933071727149932407303402214222246070427266876011127082693353985357266621633671230122921017046654504483246535769444899869605891317823966638937349949629833821675238481361895882647810426734815709457621894784805972496265182497192586694288270572448289076729350939189993732676762848990659334744210403930099702005723510969280894718080305214355731950440582584395181000815682169150315822688171275298029680353806627647906209776247759334250399531990718062167882363724836061479251650568396094375267719343149433619660301747482231488374258103710390475526423623762508809154331344739276983128538375565962704548205642692626411155900366593200576535568605609072897989553020037091124605748459161232387773234236750646075300790967709113597173893144326487487457836770220385135117859957407504570257584085949273836295053909588437047717427765239000886574298621603694339074895217008151189771446806418527746781098135481257333691471031837105159223907422865287991308716331163894393344524262178828370776154352576909025371518927302257972941365768627421202142777443386358380156611618573474055899964176110379706355160508559540713113470351729451325314132118830859068302158276283088932817947183911840628328933160012934326338460543521331454101459188662417715729261611129922825143858997910403174960306580528686655457118415411209091723245492601640484874258458955451552414297682720933664154950285367449338476316071622736700434110306879446581192094946592664725299375258285385533157240545773839287895866036649331325299612792148868065875334512376582375141885194216312389043315365799666956085689996285382398037306267816794445025446790397195022852603163963456429161150680036991850792811691908420543273235540462172911799580955831165202974434425731333555591994231140019678925765065516234853512146856177025329967054879621436881968000606088425262064538884326084676909796006874865872401344252456932907360360935086783875856153665970606942028894823164128150692874900714212801133709611791407392257953069514897147620921276782633649189020855206002597153919512770473457438584124603943220713571849732117086244200446719084628883940097616424155793290475556237830651994295957394416327270053576463397050173357610079426654206689626643655664903564600356490377883216018146838254486743041851152835083835914239678101389281656513113128463858077359255203194394279645009260040344739603625748640426080519863443856202627439583764514410507512413499760995578745009191463236443219290994475905881945378436294468457909218666878450597325993195985340630988035043891954681552067740446924717628096156836611159700949509007024575386401095787243051004032037032860568698896828730221438844155448244962884157059764326793626057253982955685056711292752105824043678262367591277761763675595420682252930788948538169367270485111951486853248137142114351417628633270173716049043725957389629332613692152054472682121265840975455639850747565983303165092324111720961495916038755690021196614086902084505920423980233866779636825874435469879442806580590707041759080125497414089354587143010217328448256773492283562199936649326502696677887964056066874843956863975343124296441590311579893411872571588824909911325356731327632437939398081978104603915957188841926706975544966651107640601929709890747091775187020567433355769004051139345635298721557085091850596768180304304017011832767635235291523529694972798546598650254186633413400485233081637220921490755620280529108474543413499454031048486343818343717055701487106083393602484846956552708486834124438259391653426140075920006930666438553119839392952936031353528283297607589215262376301112857499727110232981149632458394778675631624765930015446054125148725650961173140247231239920888497680290859912789687705149842331800316325086995340471404439931347080594965141549893326806175400737408911005205542406501384560520991744610047696604536414875773614740070480305541084693632883761220952141420999067566906839721549172136457343993318355546784149373331958187512533596371163818773966279983636530933903741589856183440378933777225334650115541042964600691854590862757015190051605499893675705985649907421150257822819223037210143824692446089521304076116303835945710619828228299406811677909750581715801533620219760976064426108468110938647667251222277547986697880929110686976034622339673406456991730497127607103571924743042849902580418303825312235668354148238996368839972710854025156422383394598192127106966531638128106512278115199977127371453173143299206376055631538570895319260254009512606098366676750956847666750218267473288470032187805216960149232983472627843813505637604193299438898114214469226860506716126692053427611970162095949001759099926070400556740375183965703413413101290879122024560964129242782753746175465634280285450639379237706127216248110948780399553712910355345484477447586507844853662701714982268439060292990255977746008373250729728853157796998012209689780939368021967615964499381829281601073097761941326003468565242435411901817462332518103443324137274072444571535810743869422111540974790030819736548801869382580919730955908137530812339114162441099569196589065558939779531135504805315235110609725971312592743200592918271318709131948447241561644191394959497488518629233824905960860386819419100856699789364838268991784213152768551695517844672753839111807217354719767451868954890573496408674515477569324973831182938807034626501690760932994176681566840854279437926972893891850880546353684456283255542654145792445341991012852960350664181492699992153657682025667009171981989032829157312753857780880856462035712451401600470695419868375685692717258550798702567783819972530410947657463889747000222330211618836815476485398951711948215394788392069292017263631984102267346427459678443400063019352958140469712968220975249376239573158571008274303291422809821370736682153630411141906644499784573882691101500031395274413479962290235701958345062039488570016810365663232537406698906483148925177637841464454313836296759936595495515444643740878893193541817975082502138819397958455910552571497876387733376091286051826136358031548871258867494828511859284057356885027385013852890254220496304735459711057715060156583208725766962064275063900345408324164764717365920845914659727420716349161048857879625600212637788528939923296225546608551709865421745132742411516953564390202260374007318331772718834287298503534573770292980181842495968067107954998269843443008159800247993972851677096547787487108426923710096827858009945246136940293283332760551633233483705365447262761778858862781550485320264183815486515618027396364369125933634093337948901529436016321677932601183126956297796622888989830744963638736004183673678177461319189918366518313785824751354437185345707706841994106957756987878211866768603094717179254711805220351711310496747280307469465100991164313572731600226363387952320063070167981922010629654169165758726711497279370721602023308185477714803387522097986314839080685003739404476651845981619479953065881095318129511886890606205679363068484272014491405006304585709596999979188610985127053867767724960561717644219315045136274993551928932571648012654305598754712544909657939085780672670968037134189606829144950701017005519898818989653149380564501435738248491049215852801316052990017051350704970861733908300451725440750922391223058468663584116141715880677716082418191303150960608814272587553256052418544519698148973591018144317579335920010203411288082536475684945799478518949565194499875388720248469892943662845991644265234491348333946974085891671754510178311549604003563747186137697561207987114397541052431898873210320205203754786055000504143354400676511890865283657014303609584862334534809639991096082386706823075382787437435633739964906788290378717699868675558012372467466954432213655063896603721747627019351167847634849279652682133545968891193313445036914709815825533482179453873206897596682075187910649712335247311872184447447078409583527889105896291504112693140418121517967755912507249074849392853607386094749345916638192704786465557145895439499001096363062178011811118898446144318530203354926328141420111864511394238428512653949353405575957500870230245880395024240356763009700712442997368594189573634687050775973694998813571583764064390640157040523288730707028725431121914783082729251855394683200783093760185004018020340931883433903001809115144032529289891528540145227230235045326608820200089854597634512691717058853684669491287735813592046780605873200906254690846841388749340807103437756732615407523054577202889458460387243622682442128523719093243892225430866258251655953628916208731222193388933762699555270869696780121547828972335317368240312958330372270240576411117319906595333445224083450791953137019170008970193448953766687434057410570803636197013582635105454238818488321177330839635322741322090366929440239737618585900441102149136822798786051553168536287713947700215796546623087375650217731174493597380550918591062669044222455131648223205738043622382068567292136995260298426843946335476532414461579949054827692848730087147667187817145907488834595724147250624035303116680620162473146455972104398854768080197982142634385954860006099488957148229355438265426530975808718803982955988614292891395570642913221671370395478049396477404942564988368276734282715676540425319778550632933042213485183550915797463401011115212377430489600133983550021299361035119328829862175767755840333149465855128121016339311045215113557180792460338269623051618005211497165910249188515660871014581813697061813472707780526281081900736366725176813890378660710953141924828638012788357865298695978511011041494964035626282773512981069933795315212884822578856375677760110672674486344873917250224875501485756037581328597932102456543304660454236225056000262661043180346621010052026131993264152882666148512915731417734618350081528414792646275451451861744200608457362765909036678619232128288092327385832361860629446529339192027179288156236759048814873637995509096394004270116562314086043284136882350944801068442907084724897261216234706798273739114312447068212786313056108799493562318552160592581134500285789940425554478952561822320728251048128283913536060071124340181016754256481041986255461954879109198786642258875360247213827921436314831177312551203903540305404052849998883167891700706839724059041773133229377149713919512139842563876430037709733762675531711393261643131253406632789128287439798150726212961543886924676940881367622694934112831023739573204092088575988734947332059508056618687639066315823085553137713899804607514783424688240182221791661244867079369992718873358052385252441016535686829773445167767886832406547025882047463133789954207647281834864198757725854493506683056873727365498544880701587852633544709055788190367367157546262316004517478055120100954072256070798892910117693349631917620782588272041045999179484859505766552279644628539600120717988148633535319268006693555201639348375596420343178691511438068947491087526898566568637788223494145536143593504082049403134778329199001632296832692522492295527004122105355211498169381880124301928638164489469181584410077910666290014808585882907756563278200906062784836262560122390975048836559067109437915004469703810806910390524521319505127672582183121844361487557011868827730831283123075117961218771201669793054329168759064259670575908454943948592714761000867337651569535853879289702253640593884547144083913567822779076741050486816586285967863966940501993468794357687070048734568814160532854830518301058042089495715655044389300004112794434866671982337116518975486996940658024279934137184091804275317002724373042734748290010883417089798256636858232379484685562852146837399592872789591100644238836603698200666858321255696719343780970624844760675443485744380243468178501821925850291068617770141216017576929112850486457953975927854399810322868123338148184344010459991477011169557397982626074994480538659017773300897639982867714851887318897442063323132530939978657952473054696004493627741760771482971418575199095290838775124871019706992575362540787525926253230140851762379296341398069583985954309313190140048891563693902814148890664088956357635522854256638851613810694311480014955234049687111394740106242415417903812062367314153617655290691094321601740324500074573847999559228677476404825151160304791518811921918811906490951453271711776441901405054935330021671041368046430879600799149379758222209621084156240292092410055030535438422303597271185514728421384795889527216379783737651857326211098758229821059869273815879577206929633311152681410250065506143008061663113714766238971888556028783459537972644146666179733955543109375286003301176060073844403195312908796035634349043293510347520756973814100783463736102932448341667976917414591820003569057652143594771389626834637768926601491171014222899499931852571150706048552282810129087145516068514180228105172810459063200019178637838233257701484689447461291170969074792231932067404893707963558388215015690830520781809046457001274872846756804909108752512427267994493629588296639285811910512364858836547115412815853289284439437671596097734243767914138786808012173636772508714389629327085144912726847285508934828942564582295797399627188614733839264155854748403191696772509653106902239176786896276296192334189315390982214633539322334556961287690113169898024294574088548985005406836603965630616622438533127211883104589223663964095525463269816808137459442140217667210327948845356183915390300681018266163172359027275519508568421913241122282302493403135234282045533638924290698429925187249393105099942639754388483815413465015963059672086835143754381647875617118563568698504408562015449521067899808443588708176084130879129245377784906301230721252921696086120365208985402411353773960124170780674774023552914043229086060135103141306461575246935968816558819240283613286650887202370572945646198074984812252508582985017907598208039603064051804671401143727758012758967398197136020335014245425329727242636327971734365218845406924151078487067293249015833126950355171701776399633386036195210015243910395325664732337268654060719772371219422308067303671250859414120686798006857427722071488654615326205015983888107044404953958262248959785502395414182926334157331069584162494089719959991849770045382048973456111741740276294230292717265807170946220394544252571860865255506714456340023023449427271072921423359052126051604624158025084294104577100006223331574655154073517203663020436897732668730354218063415649217432842023283675550959041047665338737846818658836720599003951151818169079918067239514175807553150123762371773610448479025598725797580678549923458122815697278316239866057146491730611278871221672695128745201156672823735978592618764721086926554446569166976413507502711041701986411191360293021821936949139335025345679566785939830982522046581420211317951028198168085061141201389200971278185325373072502815859494401567252471896503853922829399255413209477186470796444247236092814935896099345256466113277635492080054244779729299593968668905551309328955066441222395566629864009067215103023383821122121751929303457287576678897455817924569658027011389819071320658054622872129054874975444971303470738448554016416460398267815238144475078467432688474667899709437768707452151476805298482825626866375695172738732181859766656790086621424966451497740527417447097088879129286504223838405964323634673727803240024807226063598077662047826679775338765995223162682106853119406808378558325073315284237615062435827492461945976621521856778302319673069961167701256388198934783732226242159720980682575476284242876263056692944243372718927853903705465512830996887058105895996778681069515969982926553515560967814716403690201592197775035919367300215506527992133356405697484466226044882306343035834525202577451728428221868654040026277029870937597179678798381238625045119626217438800686474133398430393763558284731137632534379989822698881935901701498556568088063073180180461155445123441463539674279144657544661628240797378394095802365856416832009549419273379109760276638470991474469526543132396188448926419517440624187564902575128457284617178796122971250254840045176636836042579211534726904388441268176344002821275791962138702965609348803373137457490366695274967776133113880261694203425038404177107199811828059280404998927907528218692258425656947652914056100368986660740409842507386729866837771514317340270090355576615213706565655012208513684696200195378725813953784054294616493721429071341904767659432173924800814789012401362897496619279048534362949908506315550293638050260596791774031846918687537736469080690513110799204089678070950603773947709290481584347091883001217476862883005260369170884742484415155766732293818992845295194571437808149130647837392922307688565042779596504714029243846143590454023314007709360128240451548407862449910227133423952017229822376513495791701048436632695181600068339581338178069475226586820623389276043127503205031410828673537057615137608895080799862938131412345676414686326715080934550440291104884358575820723344109326120714873907146474620804322566507719048994297881573582843750719444129979379309574097394541330083839878511091613929331578800291111135237201413691140778099769112503807407700786613676504158683716530193210381527842644265442386098606980251035145657666919299381092750936149983859223999098362435073401301475810630438929339418019591447098105507797074388334513040497677015344342505361193550204042179127228900206242802931416476939194344779961711730281934175716989014250175925220820004995907134327000381163632642057075269736404478709372162271467275931977390821054386281400227422634558323196053270846482013614381306458764662997748452434888808731452187602333330008153945204608747510317305550682167900636970537169014393042204058651513035224795872266059351912574694816832513141575056192810504197472775208275147797094548885494318349234907486484328836108788686178351508026453708438301886122582317335782731667733971458214814538564103389197655043761749211797793429850223621310713145348763616201423992837397576734563870393790373367455987946140007489480511935617426117040691418567530300418586393284345974946248273801149658265886172603639820753205604957127217204866971584719385606286646960894382314746306486335663166093399372135866965559536092953702740567452820689022281372371565286450524434550982358932398820152449770331306011982941670200307572134799189673674304179499181994359865775458123177972267360380051092336131336722863053762655629739103120017321224313457076806865539939316048654638207812170148405746206480694958440978211274624784906691206443836642881715566465767088945905972948365041408322983908832441824091598723120899670420711643830418472753515858077235126387342032560395586418090721352847114879405773229742698705001964345609795295887949831904370715072408779712339516192262330712162965876979222534897884392479090929426516507629523073681072967624395682912372729437244562397289200421255196784076800115689546626910436625420237723788996655933052444222289388853808301304076410355388132866511410089399331331651281278760381238467744214529923340166812490673174689960644461103097172653628790354853090173434709581260018551689820246209161577387219199581048149919113839842303156192796228157922446065558444062992594972138176225062413300514521641995481145685630456950592907385567192357221138398233499052900607639101353016131689410645836490256819645768464044257593304802024595665815038851456564348608781769833248759855565486296493694827118084882712525642527047220094631483387991309105651827590516666877002396945189349698631409201541194817877000332757361695320261235813902799833844635326901505839877994454979368088458173909105213536490692839233067949793547592653086265634993336958142802495565203750554344443550704335082104952707972462920083886364766480483127086057217946828856305683002501639720110222406879232197021451846559295737964154421910723724614787171461376864137840242841278631908697201810978027294983327249296016928416699369097980480905002732182865166966814967829128524472308311393955252098728379491606478037835461409789460798877045474326204084159258129270292426398268639018696535187701360336171694775441743654622526910468040012462156776464772364220505900212091335974119378713700244149067207950604064011822302558218427337981961780915778646804161029153729940509726141488974730915442184396031590664930655016226753969807705463319945681062547102822983472394739523172845284546615247828071117716365853846115629207333039661691791021000669967078651629810234366588743345114078322556863694745361191793674520436407934879401197413196142421752586324087676288282404297785094023221077692899495065304449538000264546583814943870476286682959522280099270661184358070890455686033858089942898216577206899510703265462491271649309787808175686469118196698556254209209796614368882588322894629013751593022712390834804775250405135129083519735951494889013594421112913007451686655939513085144855190285800514595799061260726048596473630677696399106925971423554622364261762064646447926379368806880556942121471775621281292288816398977459445070031336019542191833437932814544540664703152694413898567357365396758110232750803464047869178152402611846967505752480404331510840168592610377634371546908798696276892137522539057106709674076318026706197518557826147196138398602727760319031282388447966807667319336734155982282674376048782066768558885402203470072100151836715535366873070952782710132162125696045154833184240168180582805437497131803946240895977801391758179180195125669043707967629726561303293054031629931374857624021372062105549759405991853657048631976039710953992611152254233936330290810295485492543316525190163390719668874739339997800726464045525729058757838304708221782583265436973694851789264824316304332399815321360786294132399870120033351738604791362638293750577067231406203757995709544453036487680732441758249305236356235332848915171343695491070998836082972050289398937834152455068571387872672901608004061779173601295126671906888224994635070958107988222487101167575306486146776563259030996427267197634831862520062669797671479073050504115383838694580758973330422649248319435212186211153319395248900802425951812363184571072747270880173330801405637868833680677655041877901150830597605387780278138058565000034821373452632407493058301068274526096140518399182475478896641112285694318326096686709421208515883053463256121771360605587068235746977491507760364518081283813790639530976359900577475712811870009292779480336061932775747390642676672551846640566062427464717505521111324556806732684200487549278032934839261642542110603046689783605046661779641853809645415467774454801215975862031341523558073108206210865048909801269803340514992803296465828001951113400469375995445713428152186381489401185972160142870198604651175272610601050480314754571403747687855352901079641671330564363393174872828232996192477816596496481935981578947286536549039814268797574315848672642015425882569130979551232759516804807459803799060534440986190154258250498296770440171672761667349193518350533046036083520635530912939949738910160664648510548732539139955214249472212816351332615364447833499675207337508163641461204290729748409874361576647121986115539337555900403837852648168769982777722090411704123128866999844161567945212780926341046662425979287989880124169772152261431165763673112371126257221578785064212623326475501840299230067300480642460248683217129817762651547354691993955943670775687374424353539922207851704185331897943818461108529311915661858833294136612382438978490820522019152592923019467241743940789593858405843994017572537838065896825129300796123641841113898728485725670837368956632060650160750103254840609154670309373350892329968828844626656089387392045277636425889284888845624171927793974822036774902152318359106656869324841321101767116543700284053060067690539736858806073039500122331648506784776685656123491482463026308049223316037904860931640674589777220819927147781939051295481519679066168827486829131543340795268338382442213621485714598689164324758897386495015382274867055185979799194587005086402519931139956494860932751218421511211704574802272234318185812079281192302644064941821623075727187211197873315420460583534458655575656974170846475352784246804791580613939098188450442700255720572970128790749625699371338607194386315309570451887628496107617248854898536238112360421938751731853033937828807161227100102789814641681468283318882706765468607509457267697606330208854820825892328209179821341766394009353650997864078015106114910862795424556022122799344104040689170841595085536666677308388663108968377676227266448158630760931104408881930584186354590306740079896086785358450918965631754493482741437996235750663447618118171576799821374140249352469673959955171827990684527474534008552965169254252198541572450932391784860212714783912684327446773115690334456606515800791474699694721227650300695249408162113651204151875593547568846882446923436088842810365186116467349013936603911673848787112808695245996423543560283552220679124405008014463863031597233590970358592437558492902457456330683770905126370123160500181453473133063622549074893999573344127774988745438771962651504348085097090993857965964851333930993481568425559733564383997456957581762343725188987159215536903158101663853132661317585191488881236876864696252800258709338280476977960162866464897993504934331554739588727906210683909305559932876186492258559543626835855027397002201079428936234680129614326729013990756189989439518074027912014445742681545487987048861066979854588838556895143300182852473070556954120236902036327601510445686296921367249704662807075318181129474910713389197061720643961362255625865126559513114823119365023827325581876789292340799645910684192072659448558802980098646851369994176513688790774526604017410013788183343234747700344894069592649333009199971792344071554855188175470974594567280925821859503168861089024459721517625466460428642813836789102199633995278716941511751456478992045570265914058162153272005926373077603223003160706255085040841134663620174241182449754394431957830147357908751917364075163539785813771066206219041974315336210547065809749269261768892999378158943315150183643080784238107994972598821591165381488746704601125434257864398314188331877171923653749316630572695979935384508778031485164879046953458493709457199950940206096146263162911982239311204534028094430412579979562984629524348782926106962821785094877304176491558999288761868524232727732492657529754730913651772232910071983259586202055606964467385533196809818674088227149489605428588615770088137486947055150249246816928034308522816685985138915819101248952732364372118092147512510263415302875363300432754768425115876354945294281085987299314771455767723045537136901854757804659323729796389487145167882102060582727649231600708319099823776514753206048383378653584852827023437626759917409938095469650026374167222844274052265672889847550976741447136760854674460379283732167184204393667302968972808870002533465368271974952052190219542888222715248582588128584296359722834418479531527818458072417321892031661027075731114035134317874971224549919587502944886595597103527533196025152269002585456547910946859960160875537594897365977154240314053151662744006076916131108987216723897527920528475230321164510480636730145575323813815328809901610609557607133344677539502620572251212895008684030626815996285580098365732922789447550606284153416013209017246514450355400814354677889414090818887057576940763830223206366189406120361337506471318538217663887592836783025481872672848733449577241532837839730995962562056110419050599351584761438640468500778600932701752252959076026726280768120125779287475977709578813131365578185923274778308196740769981881803139878738114461387291251281493499774234476437127700255997769770608946881977797707700220356450784113709523412411119764347709236503582672766128035927164897574148673485108053644516871001464530652676319063209011566062922359548162539191732400304709691963643486887929539192217399387220515848141687821248129380486321172962787244064637223862576766428309643094155105337921026333766244990883780007891251564960671710595601205472026658790168249821157560845329397572581821726195206729369540338135292559066164717190163292795427895672944753825807422779707465434751952282889359500757417464630298689441461250200924667993410813127995330586645925706617713977982732928354963479394797726880545057499158049434810358217072449927956071979480953104520467626066198573577341493956039343828328163746609722231901990443362779310882257783535657537415782587914893403160794732082183926466728747527112002965168186771305228612174969271139236125341076633012524211696066451100472094131955191973989237001115164927631713543592774296276894372104194682644790760452901642172920538534445216473588380012543973650284332466144573675587382086757498462076909162303589446700985886373128616819572357863656381319024701057943079003347424655491980977655310863639017221695547812190151066365372980712733004764175285912721480903062480891416833292960624630820133357504050075367748673743344247294419627770792376296796168173094001300368990561967046614070623032664354697039830095190355001347929958987075675709567866692186600926949469570681848653632584117174723448094039158503302352891667547343287701853206121053991247433240029538829952455514349156856438976450485764836226214832199008635567626241806723317304270064894916094848841718328082424316349745288866908226167530756674647510481581649867638441798991404004574835518584986551982511536512109715656763820872161951075827966582813174503637193995350972718737205526962633734498108111440448687812841369896053989329702608680824995943289816744556322649261852329684625600515151601470778998053025830436195266645121309972499930897574068189144000570670973519427146937473672062108621592762254572614232603322262165849230162211275512758683866346223838973191050293168138670552124764996754574261305268210472912013000554166467400469658644865779859431332054753444386272068644561513079798768860219022655299054587248884770270574405577459770091433720302510892475438506924081285842897678377357114084879557523136124307851339399179844259341217091264413145675448609521797672006425912125046301314481813622292572335405888221710625459306676123688006984057815677002778746829325133643235869490171634515784246375989253270443707216843170959904281198281573382304150145701046560818917228079100234573629595510152683224144546133682751257025488192801838195203416838900583728733789692173052891798757665041705148800501997563118045556051696611904789821264330536696308074446442027288016530378554901079096874848252278096630113586616148729279317897076864525773182857297966217491102798608024585755108665782083416934381390845237623216615286294581424499383623417705347724534654959300525901241266143222372520849290002444037535310276865796834436223210590038905339320870250065765852288911578907019939265467479576364341048320631681951191585774405715819207160969951513145999987368663160770271832613521980327346707005824816545212780827813320680066494747862779807604646005613272559895515321912324353779216858744754220944692084754678395488990578296127224270700469262433401556150523530860668508428931553384181284374231784681869193816819391965256218215424975790397914287586361888605239185847700166061266549219245304299109647899455099805874458352722029373680996535185011594499756701448503368062614287106032056138257570144768286785147364979538205103201474164303254675705903824397411886282195511865691062989751711239370273135497545683301581667626704598114895881657981643445217071327558040957007895484495303756204777728988908798281374286040538020232610999344395533730277426265019517518609580421840602281500191377414873645175844446079709967889206742703853379174108621188015865050027568149886509801416686957736746376427159175047831027430803315712976327771704115059154990764974064956238689293950081881337766024448446646942701890088982255507742981887677370224814919948685512160966335367932060732135495491615193888796608464987067704217971844350248085113942741026642273252904106702668998335163497163574758567197377038768611878424059197423677900198288603442248248586345464062851419500803642578262192389595055282778419397259866020586777978253240364134901167575506555139137307286894251709275954641268058175135756836224828196923046754710325151760375144839110157125968755316123554964991085643729907502436757311004777555267385839380607869136863306968375135368473332689939367075307032570817475225560435688332796569707236152588708853815938782514423004881868492564935430816972352671575671550221274810864146073817095614269178999171155380525199524781052330328648242941181924281797973386105304068369420933489647251406108689337594350885237697923372740644268458000586163093427178625810775591340350263989415620796213787311424088954380906885237214620471425477968293468048211138269467342513589927961312272317953153401849228480424736055478709502546288525715468941524015458795914221504006526735089296941170548732472004727180329189226194191295579222050425908937878082935863487384601538896554676772302317916329723013429891032146861845369134547949885852026097556072999041500214088155484768719094594224278551450819711222168713911634561442908937337265128694071051389958203802314883755222590221008705014737863801528157519655076443823750125199455268512266187084989889123648268856868992336213960375558760170228821126192865783779213439502871957447582990628194950022957711233701596303549057126673826794266302833817907558816996848577868377713675647713425751637748942274834449978656838850937367460434549245512366305012174660406201948962307285727055063842587489565016361823208494371330557342762720701798218906344647703203797050129797502272499066900407749756085468600562060003823028128902892044127869699324308913112353279030105890477459520434778973773118746724265617934888389785532052263100470621001031010076212560783858702695771843671343465659845913142858616632540996758160245203727730243076013507910722455023313469385728136095798068761584020789569362037659271562977510323504171710057242810575259803134260542456520249282965850417862162207882061574983616833244039428739846333936470577023611453633087552615945975776664811528918791471509243884161860565290587273953920883719166253980159574983238127446433673700468565531215284328399065098800954055658871676764839739243860491823913547920666818335786301978728359377086455942171360962606760485482700190805466605525903914516612223404973450799323722649584174386505888200463933714736678158230166881249014935667497284763174595427679283291388465606948822826332164716389158228365481157404925718565993648635153797726085222048598579446248029000341432617449724520841873602159978322435472513933153107388591522919030087364136483327458647871119624922163065123958172802219133114504285074264483747169052025169365268417924802263352381634604955634663706402304015407876078647568793974066923507587755517940584806592380909502673423724130240694123069444040109565728559508923661612235154945715077237864049716629977972020412827223443681827227693694665970753358886248621673951203272632084638333722240822316007270661295064934377023126976125739579398862758796101517097502642841797788279506560847717090092559538090047648037056623574889398840548473449443843534278319961714968281071699494365237569265149877467189224957132805776909645804013658148433987219163285493656424564092586819473007761236673895618704210213730716295977796402406309816596368006609205764205900527553264173145684367734708792295157102270930757969223078130732636642176806694596875163749305085223560984954501861711168326031303035643273381938418587206944319229185247713962209006662451528955009470676628179495353895773638242143595796536226947373801740708466627336871445414029874421618320238758397840836716345272017717968296954178975637828331573202235175341390818516245624231114895078131853341326259178192921092493949362432438409300174515626593516344730563561865024264778098225871187025664283352790470122158888632990508113932439568797365184226670082312379714591193219101373865531234557608956047469564664538577930517607395097646338434423727632439455836160984440482053438732167920064921140593068842596235854348856044702023715618602884213147423032349217937892845286532561882085352249092256719922087964916648039183004773146424677870268552434285892281397373046016293922605930724212519404219564610144268680545478640005527762268483859225923237167451145550606478106888832410450705582027890205297441335625695465950071537731663216919500948756455664575730540784049353308267710857113997879797306609413404289578135590525320144259543381336340048878792443068815940369736226606508781797894484317236129268028777088913082461529865408494546024448440969210311136900110832104775367296706196824021583601321143043722433430586208525625132311102259829162230479541844734029100087947970353368500630316999288642897308861753410431633811230500517998471881421245587671362089183351357400716593286932760009910466892142536966254570429077020726688286181435078026915157570530543882587419720141214546824386523931265327752603044261674623950104513949363884510599035046851518927675052371546650258364407227842260305084144927164483089609500074163221333949636782705908857975599230050894346897726479929246465860552732165389891534218413192955853796305486946059172478737622032392765237950958056163443365670099844332058158949636893925930497089158651236206154479649517531410009773892189373535425502937052026840967350052456329153729361284626743406696322710707422163502870955816986979191606212013779764674336951089712710306368529370188108732045746340078240335912955017812775893712179390076740365174644685242687977007406372935803982560896442187153996058128633257866119111711105376952507942884143987729681346517840344345531344896348566201687646187943222870404157294623479219614673216391484845668655916941807861810674172720605083980551658293759768648598137255669406590475361886749075867696556664883500710596469938320418889208333669814478676624042292066398764566455186426965029728064058425693176030120678883103857854619827859867396814703991148789612461167683997431957299136736174914812161938110554435943972094808138877989478547752836367244575956265819624007187083298083883180230035675393384260947027774267617037557500790232501832364622740652127520866131517964182724559964240566104263178995800765330038456514487683750927908147383831922796517875206028209803536702349349864113543546208134513033334746344995567849502243156936476239328495155204484120635614032201359626934765929727776388684526231507737310539718918333706753610747458273763486769458969359921237746554351265654317173556716699505229588866226026940770909919538998134855889400385973888309972129518406012665120591001807092438428376129994271362956400221797814310058656404689856823746952777900081362774271809174984974663147376003927373075880114330289007772250742969545377245374578108704534906180357597321874143767256454241983555309497915280977340666748792238082477049860341377277601442188209653136912204061650489345962480088767152333717282057097955153369142957186669527066611674244518278665104752146073836553893185580192223114558004336283397239713750054339105304694131652458072394234464552309088723903008219860621171820503618250169450838357855241807980315650930572845263546194671801749193491812938657892000579487924130356067916989571346387871713856845323281977657931603984040880872904713593878502315133188234349468757666665689357922732977767808424450243051391408487204913469034656251160092328041220283737280187403080606583127266281904162602746512421274434776338607562769996170816618954606970088983808705558809543008544173800530428940865362499507601373777163241743439997194150646843072482608180398937209362212380547101996341855613944474660560844251204476554929164767917461549898863373391902710340167652828157097736176350846851277509994339939710688889654493149017267630975482374313062564921048750055226195470481249178083462760738982811799501228979807846835705221867094695428684843961139166279651010906253495786799063947543499090867854526191539710210956433883204910250981744843352344345094938156242633296208249326693244104949911945699110983395146850913817560629874958850752955336257628575583155345234985381709319748129523923845426246978251187511338210396523074883343699769220836296411795701094155406008122181749821820112029893568307340640672277578779823471617396545909147105759533720446691068003350819404809230612191102430832996590061778249745457594115622825079394597081651783671745667415622903283024404488150114348200800643922269532777000504879707556689792970645458632890339516244298257916684375125438993799280107098192613573145078448034309084086048431821881288626001686760860768694217795279227255395334664658751772510236357248969572504803445813261582402655145053908760562859059379522537793804831534441668238867858040554887425485755619745101356543307557333304793827003603488537320139902644142500239720619521182689088734009860661000814054517517706280962603611182350924453564380630374973092007696750603378534267219029821677116307679765899473813165283995207375032955933975476090299790685384465744839237185199517001097512784736306879034806171360169832657377381293178101395202176522708973067881197535924679011097272118739884838929975943091733817500218438286044165006950581668524652616209063636896236485648669741129141245293936400187322194471797375427400974227263030308490257773961710363581390916378695541138208834910596132475633887101877782959200929546092315322880589215840791795102976968249887876575206772464113789790229275767016003871710540391182024915595922555197634156795269482161933146617890437880988811776190979602682342150848253469630585838325051137429336890033703860145002487634501333856286166478287253018087047068756243106232720430796875156438419258027556077907834883080960316855242905651113687254051840215534340206720850732945790804951650951805514118824067268553789734216059393090058371757052264829389722424935650436083287954274041102059551527348579784777756340089991373081435525668868387264363840662881172059401952380974994472105979730781533277739047719890957573832514467359228830361647633200796590368315014553225785476937565999959040416678721451491964097692826891665268981767432766139520603296686725556303880119964304210326277553818698694603288169050111362831326335041756360042068456254104740447676468012652088153194651203556891193181064735020231436316171272137513737908110908789823808569200108497048092637400990535634704948147102290529720518063852012200101449479038485869911421750312629188366991937016424191759724577143883217784452055726300762430899932071485289459245255708660650055925484459882107037636335073362922034122805830944230430335851266019499364418959117992150796645393694121743185219118256337872149700249825970434034228417648763874291239320549269351330364284423980151551910346335480224062073150935089531144187359264579085666936573455349525793870005036496258746296643152290452801894474420643474879773328305754156325099021202250650353398970781063524002582536464715522606360775855395490212551190555269615372594253068286413441490098076158460092029267244114779711678240807037458749976121516335889696046276658546580658360678212133262890122392508855244364298024689951322096453115141953535439624785991993446964031091192248462788218465281012855551392960386862482251701289750794892177446429764634281937561346032223945084944686282795786512989104057441478337341782395837969754595814899630438038723729700110082041699095365556225328964580157240261534185345860069794169862640725761855343960650029887119922724847266246716284667374936125199635052845903163647290922981430364110848908642524299655406765872369725870254121838848398070795752801836554336699438567291260103330861567983452790529576217507282579015912461288084699449984020922294977046895470990232151437859693635468083637959092888304825185179928406439528199228182368029573058364402165105653364445698652373555929195483581621294402997329440668517794439779883495927982767197749252122207566634413636597111911603848387766557403635909436621491782515198644416228575040850639425497716219640522586343703394825330154008288918686967527765741406603802586118701050174995982802169626286201570917619977580455104366835603680414021319454193651701499318274362090471387947742010767432805486516833679010987550140458200638847647103568320370385395624169284192676680937149512749778153540742818815506020535463048423912546191334591695836378101852889626284641227753822027954090862279229260039641863243696562913003302998015076966417702555758464656083391148158537884783107167078107168503132929285868333395849010131004164028370813283465020661735494059918029134752597566981275158198495030077244579959495393605102489736068920876311632031406809738357118396859903669725792409578786871761523279736320979394598346747418055993930828017905074535166584208121144908511134279989000162298238316023816049519192271438610418380709190114882532887147302541181562578581396032675825728755813078995451087155164190381344992110379629707504260344409839985816941876309519733982603836806498291296115580362901659761698975148788755514658704431517798673052765670318606822901051995198814821010205080029346695308670996085994091479931439523992162737819328704011679086817231202457594806094353820685902496248381574861913235803418289192218382004953396461049577044371960068642668214018151306692944746503442216100053450106190986028139172314330924460885915055980796910126869259040416595981555901209247979928559349354392803916364880940490546926882944032271871193669444983954216712115991139149891138957003736069608922857203155357096446894523162735311558806539099373978478340443828214278604548058095046581530494375405505962957904965378880398287532402685611824763257108457618234567673427611323668879135879585398507290786013094617143552386455183605375779971549651978456821277393272978915895840048050561046524222812810742961597503899516437623067337925055563352986059180574056449128229949722126747306658154921071621289847889947829644094594865597129785161039462266830890781378060764240297159693667977898828468548527910572099754333817761631161304671132519181690553646343117226607679161244289114920529154904835435919400126873597135572643062303800818266809532064109852250386463315089142764485109418251674507350780220954831207491190610624043819555160108537510638773382201399076484863629286804660755753861635521564947203253517855873628997925029566325922535261494315542493295118792898307817934710910210414963488360773470441571356751704919701647259002226439157851898603831431076511605211274304033189041388133366105587060353979680490048249948784593606197845619148954924407951857764027974651714962067271045473317713037401133423415468568636342328133820919486789904697142544581736472290689285414353324633474949652296099559606152104802864524183889470912613308234514070795128332153513658637925047923557819384103585241969540890534162804916952719601041480391375394273952862252194785095725849914027043985140173040941895220088008933648732814503953573126627646358243323142497500036042665346821413365159762516698384781563627871605748891044102537717723303797227656113343477514577247548165217200214742767601018720568099394720148898485689156112033218356954694629891393561846909219213914608714090186316643629975646028207982701652583086006243084509094769924353271870418582789205545955081029140405000296186812215889060444193647578428036388589980891984335074898426336489858152860888336563237633007294703917779520965149542465573501706829741252618836798406948920327516489813842008223858842768059116818969106471404542543611589732314896895254621900947106888906653112444735150242587537465108407771894641243634238946301386532006719978810567822796238795710198420007719187302121627578217488761604053871342274058742114450033192824123548474317116580329733852533297507292658176593590518446425508001862630454349031666767271361384609078620003934376025024144771610419945856581369087341856914399804079892893138641537540425076435110726187194014201912302137017253912691173523283519562580502210181743539917980593973299209515542891078625621777378945344332531260249533161645306146717016753630932863479576516195828842461176367367461348237403842588326555098375971300039204403212080989358726769085865490048764625341483879449387325150561533427035966999560837970081011816086481450647524840243546037704607697774988107754360540193595431874020450848422746877365377781313044603310001761215797181617326031402070210620648995019786986062572105768034966362012942470620766117774609612578633834773814076957155174382284047753264975862058211890746115367617895086986959015542845370062793626046563253576305928060368914941224102128194158487121729026336007570877389277347545314288326543698533211391371008986730481093698291134264771408701673874756481729096177193285513607455426432290301697667943324673456848460249815253638836360064295307359141526630783832082469972787398407985429852617867549754648887497151766096231757550606149918239070959272028072380861527941660952682206769578852678239834835808517262384486523283880616416623318630602849416781057802420086496029648295093182653157073765409414764324240152606088360933508511051908475335890578269521894977391233136460345294692686663020890512758431793784058963194124773657517200301000582184694367560624832233462857023898144679726079757216096950856500637117399614473637123117581662644791672521980102851981589954094520479877255264666766953051059335009227871878496983970289193404038247439015003882781894972180606630153486035543620765534606124664499332568953399660348405390226657127936405313994203745681873109459004591362226271961605513171918464620560169074754168657634399083613410666301565216362415800154410499628869766582409794469326823978014248676986853486066647544671898380772639381419288028286287071325484346477091930756918447934647720442207354095635106502855377938176867845470127534368473446188360738686549972830239890900162120319784456715392705145818766301139337526401045731738823123290130865580586361139390577822476212014696628251280566270799716382493985808681594396998128012374475431402438746199788095114292173743523558161808817390924819181136890144903754014107007766373303315084694226863958841720840072639844885121112032412085680633891636762361285292703683703900740584303731950320640983325508055141167109132961865838494599055379371063695443801219976330810305472167815822253230702781018381649114506489892896117840556714621257221352732875300215997711397531138961172878062660415824995894888788907765721281661689217718074529909863874536825056291907417862244512686001698406371168155381115966920798420464141420648452429695887265531725019013655877468848307964084709459373112878368241244613331625091131504933394134724301148326372959463909688654739982792614886336003910147666800965018154257617907442907737715827551427761804770809115946771795963491099207407589758188510584831002882448884533995627911412679641526391837142617150168513906221154921538199951217556375379321983657738647208263240968661403478336195852182016907691673735845362117016120660235924142748077203055179460997259272179538819951590306508851262547480992618987165986761944213087410502860453078487466002096307856585891604877960726763780914042268389651657073463958609204475942192798958199431082062792849722024474158986693041182523005360028117202681451304040496519943960914025400401308413784668592916280460378803981297542967742573746073848802392915564556886990855137550583173773289085485913157658692926158897025680991857496423897951079106871660729275628419894883246328365186674862334508315731432624062216698108006128098792759343048970341280707196610828360080790104966069122603421795109945599562183557024530541866039916053533946718442826718354127911657724287632761772701990612672820501438112105370156792737906312560325189751339556557270743450423332426885236578465382631198924861370109491335255166330369314279049019197135744460562485780742631927763688640055060379984288099109485284632903316068470753514713483818458595528502935013500955657160457690911193569145014441851053419379478519119456094455441987156288070906216167291069951705138030815980756765471701612711868946990819641919932800767604765855650799110010584008148481435325384423475406801419464548311095597322963692075209461699878916079372603069728740985208205301484621672595376625100906630173166453668202945134602554678747624952806055983089463030474951614424285950337759552885934296918326708659271952453079381833908610991696547362007084621550848400899176421408880648346088545468329017113596075641382577005078918251606981215679663054074781819446369678023264456587101775713782234406115097877873545628656266707151645442016661495263912956396595590188700110338015295172493943080713003070908456202353412934854285584950499826292251321028593142791082574613309179022011246914155486334276087517320664070225883667463778839174178072995131468660247268384323993452176915178454188090475173947837057846997989557150937322617389413824483120440959920802790054936662705354815249470643305978890040063653705916600752074334347073856276926490750085773945686354481587448183286403371663957245230225872869780706689401723885278699248609456400241628811561006669577071749102672829781899978395887600088862450728032940951264546299056369047772275702431750875091671260005851037874176246488441761810404472876618229289226259138372318174342258439366140302104911598205660576965325813534418393152748352196777585154063435095414709384221322874060454497899043733359486720534752084099042322816757783925772062521425938149044414076803227387201439207714467687744251800270445491236870520086916419442773896753242015139096876252145951852125834891688233926571617370054779326953787840532268349273684004907133740200672306903042237835666097357142663099114619872331558593334816530507873975841634883960508361435549505417879547049565726024691873970749083414003960861023019616679039659958292271982610784694213485468619082348138090364087913604949035370852958342315404932962817334584245852307490039261380052712597043176175643947772193160329164732730412767379901483860822576543039389333332974239016841301492257134897534934437413566524821910361185778432350659891164721018530269617521467637856133607498286507110292246375133728129515161122628694340983883464428685155073385380594350339665137146413497379639265754597957480321019970965799981793408739067575539754812008885941444314862632290622584446371416699419667785982759285170108931058609189323618945500819776389340852613639020231799890010052593682604730313626675947119757940491405748915142004029677841895484995724338081528426162090866200216075753425498993768303004510005329830683149836314366724428410872337032884959562518283103069416115441809432629462884165691791940079730193344153433680721602013898331179874374915846829131937714659888980757773675316868137254970031398049485605545010269539572780245733754728457637820372208835675567931122258241186743725641512767894413229933914824373076187041507829375459226984955748826745881072976137301613358011001116340421950968221008747976828618772777014149491423956236158936085745878444329941823497865496147894673443373210016858406352081264080155084719238581913815074142234872088818825112073812512562666869049955484675199650890255291588721815959684565875355433393966336423316688961900047522704024613697457217047573751404653298517544925250219941389154888261896495096928241382458846524809681066518813896181418187897145573504932824559497297208499071670404092469390886332730672269133551525894344965075239420015870072752077047485029584644066550918852895649767901175892706242606127525360408113599254450722038832016974409040738621025401856249113800822761299245517188424163078754875320704011273673499170595911553336888988779651875922350908021179487246085121200120780428951701864938881789294994454637867860897043606138043379030059515880400193669357344620305465451037487323160268268975780185557971786674023173796803058592256011469489397005689650115306373107381340954118014678199680796649809919930257526095498265167339046234766162167176795764874455501915114781247622800125540087179995976906111991478314353357979809671193487693101208986374614314166016853963505083291814429019235165131033339540677411296359139064600893580308527020193892156569938303712705820838784111913968337263472556689261448254297071152959876936353259523920268654088691423079959043387703593487598665871885711011599377532576225390874912987365263721625445784410493460394021713199397630142865040341515770244949440883633232619913884765476780070254083640965657463102394542091925645196799548157005084712174701954896839828277424645576860715074627128023933580303715626837656800259150614915586382490014363588346911775451968296928560891508820170012289112513961812221270992645148363728912696557802093610016536795485254359029037729572596023843534989996960347597922595948572161227712842306527258202584265833391834562530944574317759657704743252005759171279464368275894096887813557140873320018477716970595219353521268644667610173536517462514143395802272924033156113886089630146042665889737723995902796684655513416023423940397317350303289831515642637134730036035584633993619509459351672686288213077451342959001872026781059856843171962018764438693441122988663790725067883493835244437885664161100320025602902936119159850761166259376592994961251257490268580576936239626064753940124043590994110342387282134693530761705251461523850579688423468376050849495772783177689552210701744372567481192899635729455002755419802349343204130232545559872612744919220600671968462541950834640546603783251476409234389673417583467422361452750641108801699322279581881603372647021470554001849613891636037169148528317729379061910946551450988289989175112267210090350395755142152066823302675258462263167057876184117566598849872735547111421115302714868006336248961668423099268703766081214879710734017520340624388361838166148751068138810724440258549436708774314615889976368174659869322026463036112332643483402396863694444727568532031629138947905265247090314970845785110115202991120869791969778693356849169858467688680307228979495146140052785616535565382945445407460331921107021048314764534905134764413806077809575883226659662886554802867370369821292288619618883635708394345093958045883247944941194024133805219613394985512219511562698347123599648886870618425363524654748658093494215307101587547037066440919277422312170208886411693453286314341153237446305023431703598135293095118151759114619097281270938237257477195484276468708588011597477700283961556715042692537702238100090497545920176234367032692125478487757214396122187368023274141153112102608788543194193122879979861161469108996614748425236787653320269645618035669388929958001093282678432568619946629434772499626261014908416704386205309890449632051835554628098386649851623785511581335370519376349374503224872554380194836583947094593618866081704579290855154016787823961348840085364272514590881953534169853405544394320982002893192345518592530882280914032211215273716728633795703283740176857700029685389368111835889608702757509820350094272060727366362983485517870233526010867420235163070651037175355601813452757252602112569734762925983320203673445000736940285990736128012948079942118326360934891663839902750565175735809674132267683733281954118079977499864420516227652442804389136580346633778501998222579233698214462959747333987873849042746316172558020495170331555083899539442309942041261431094713241160480320034790041189508570669393764507232732681300060404249908090711899772380756561922443453908596652616262144679978935171465496442645267368423777574954778444766541000471670429690987142550643576155410819195747932036633617500586493292971163149321683239401745933820251119695439834806916243324497373811818701913199370028019741941780209326845611982043170481795940821442443749583594772283074172389001317294649709798525662251066705328267919021924121637350170051008704654149618516166231546891578466986478602541581027853354684381899671771278113690402568427299718892156729419192372156981657237903190113807443732698944008239753969032045498346851228327088907036233181562110036270099888781390698694864173365255181524942593749802534158590083418925222060959427379532626222473333680297454997433840387053406428652704295462758595418490662979021943201244092090786458732865207021873803369617955926775663882940412370567018426784838648344328434998145231372616219353401308268024454650678781625934981630417525556538851801938316551189089257575197155341549167595683224833145130838860640082213488056100974454953138919594303698527825692096202843540415640801674341672524586729953613594129299505367951648880825987049522323256040097555859804296861494492599368128766768115130655238057665644584549638129139597715141536843943875887924002968976064734649040879481053857359993526588153127488114866408258335926137981810817428478459812101101433020266025587770775733249886220638066945368502479803168603727315444502737877378085776380942997621591764635313637513827187697166753839050492460699057816039779103510837469061909173832967406719973177614043346421991214786426292765019313545543166667378232524479682547173420215593683657060826935591442244104591748451824012423434356460295440771789205341991879696469902114539597079821038853824095896269439456886259852236917667993339983881532621467502061440587746591311949413656153400935822004094410737378606768338181896645050583730633065394722742160985551332254626174371819289432517766623376670609835855419161551475248985239496632577806085778414441633473131600543097124237100225772669694642795553912468397869840941104182033741818267984037532729160833202760772794579363646082955634987128035965750202995826117034125469026757829408308929526155001662287809351674173938846899133195291788237860492021759378804034174803351541266078300191535076059704906841774314343403324722832799901314301174396472975457104806253948570485611395730674081825594595147737851427463683750638373603331834285614408389127746829974696347431011661817544338678547820108062571925534020919379629504790321429374389732308957249442750982671911824197241834828811446063202704138529970512944427448143114014734981331613446556760926575932217445179117140624060769502903780691471081619406455581432314512807701342251372785824592923267162135420053630347737745920157877669111843880245002199790967979175640394542342085493485388666636324107515175263972615139303137589750043246875357722884954266654624289830797531293512635967088785944228563677232147398861653493119186072770207971694216069489167822369429993763893673154451102389933091286505032862241963043161756269705375525020390839237096428626567052859908474181717069049325821919982693951289315732155953185682805128799682648407140411003164709257387416752950545285922469852928182693699911878821317553367036557227917184423816096365982704826252458385865235336353409661236070510684764299358708693715044717987100661880416881952844728273281916634829808595468815300771484590200841476762439237655357248742323183781339742329349921215081694123256362978415065439121811957936978546282285966984513173130191171794117070147034714569331709803327343052268592934704333400841108258752347769854038836858665938094723070576220482914980023053484830894432590374468106702282474189553574340363837524148091172160178617208069012524221939267446551020575882031112671351404345355138811292874997761050962141273038513649707874894884928773420489943458329312335840543483926314805515295560885715614232089153341255745691738873558466490006880491401800417511117940721908740687835161651368587165107601421599357293277662700471745112135698606018353604721822813242177450880067088190685032563782680199386058796394709857279777213422505187020890035585019281398919653834295704230911796894489227556877396219223560886291574704093705582611948957466089459681449753725243059473964567739416935217555002214769594792895784566380019142222761998742484355514353325503170389919749446289218313564570544908981019861895376188761261566891812457971302362469256383488954498107579529741703787280251903463566918620603835006292014754793650162751510942704290770657360821612600383965232215697992648889820644401929410262082951606287802270601046945925266268461554525254261665813440249775986655201193431804035594502611829284604694567589971539420414114038719899730300409055052754300065464196598430616155949882786273796680886463549443660564404868090308951743363894906092618018058715101601659503665231281590861458690041107254751354405621046950014621279903047191029394506968142516499611029660832320232638136524353710401487997867707653221298042331737772102937342030728240369202836084345206113942456030564207690071448986664128497289865344111698541796245065093873892294510199312149246493901285954098000629153271754206998188010182275050533873540209731959527506537236028389111424083383933897877103524412735398610238186359558374836321623516312677471525316940086770551296533685636023601209627134923117480357038625391074485735889995335907556834331885199789346244388308847526664060909026572914340218866568727466979646101764788427888306660994702144841033261606653951139925208904793686114814866154675571911155048526902801594682238132786170383185133151868184204700966017906171982379924469279185253106077229105207757931667049403865153409264343056568428824030997491020772012614043459595236494057348933618144875802087548057567750325730734455157199001698047690961146023665743789954063324470344323352338348315645865326340968947124886659198068788363933424544806652242639140008547935270035556358658647221544187363858857243179388203161387539723594722296071017213935743747061025783322462439625341973911743899035986148533580309005124408093275071178542175362769695287169503716247559411103476287405607129500808733428940791155667622834455740874897478601962232819832474920184960814947102644057525030842325488901930950682255020170441726900422135231805183076422741214021405147463565549687988468280031827728973269272849617394675462002342611601025519145827222747971278715151946832670672377796066204981803985817215637847926923050240566287838353943993926484498166091290308116655336142985502240106006077826324986805502487151777047627644046746667393114454630595503202106260144695780141809172419171120645730281251284211479124082575409124234199271715861315656721652489748455451683034134785541420042606796101518941673087220270119720584514167702803767243242624842190066288623816927838520836476706742833517578247313069823814344726038296821776268300240422832191718800635450367390810514786384469586989982226059285270317082100429345860793733603948029178225042763222757940707969378413270215760914259703636116996187088226325889859869494036174172569657233478118816248847496337324685097201986240353633381114272513401937271935872959129317309087782693498604607816981692591097844442771848466995572782096059512314368107522726666677061716479251508931452463517213014963524167264629403247518625443284807921677044118209254570001996611362374581116043658857511219460714865844404520669622965137645574417614660276366028316753533693531607071218856758154847344423821562945730639764675050452237089546260740249815111371282006169085766003802684871830959139174371070645167189082117383797106712571039132925786559413018186071044432149220486258538632409641884207301457282197826664306931873027362312467344063594266817354779591667160247388752736249836338021186928756739965374360259982204408462724660166789964507359251630984169488978388046716561079025990286526014753158836976077395271049562054742339194599921174538053368984468890674766121850969123239508123058708456742683759609507535349659337424022455426853984254220203868331966782617951470585929996244430960260515433458842075778718362444972456111440400439470681766096251534848007866385649449048728402968897342634745503239584941091515549338865115024908978753374698421671128514959842095743120860562967181242740541615715060337217644666614842926599483942144729445209975642078086772262953352127003803595860496382005591940533885649164355133277729048233974150293571061079950938884911036497618562487612357954813941440078731211110945480207051543079026661561557417269895114534257413491025201914472461152858034622999730606494531589146436482698383108247321813284670434513990968005348993042227770182785467522734282392161267316285225467040142888879625486617149104224689099390928727154478524327944389352432968667454754393305464621765202536405309992856607819961782136385132911009911483499805520156016376802338410633830755429063229951954512282201167795251389499356479032299238625532053051307038619974659005273114051693461529677264267467923217873025471554174269902665377589666900545873813028871311015945637929733452169222164618013235516472341242491787254758995057220313016791164869154653649753345542545428851368639738789663435886945504554202339980711453834632592610516406404201110898006952226153082406589023551433071402688497203202823861547097069113764082042504660235746477212462136789625876238906129157403967667816216504344908293140640672334931363436174563133557654633966240869294616610137861854423362527532221505019427611641281847021469165301534565077892189690646319582815805189948024067226815618929766567922132102675587865846032639963442189534872718326502656573312876876021862310344653888247496280069408608935629069805740286966331195196014820278540928261716455420295706045830348239654461305707322684948685567209548160362969797861392963187288057172939985609423124679048798104919274109708952834992857524914604285685622149205674008602948870431484741685255713984536290813987095419809484669275025004630798457957155502295446667779351208171883914810927893059778745179518851341507271404331271320356488522612552735649031034247115258726358475205894117005171996992380790527121095485610159735532037812849431070491019401057402313265622134282395446578509429728424620171561110110812981890191662851058001346507482028601137113640977056833449309741290071210105261257094750623747967248784849270472325763108716365440172878793658029861069805264548034222745624538414282957492145521291802333010305621877180962127910870381431160141326540687022570824597886376049894153529967786344212822388575100869719128970045232382702508391684041480193829504562030367826171353312440370194216400904582342464911918360400968353660174159285627163057380609750487421874790214294865125933194927880007434942051471750345464426085366124176362344163606251642499316517310013639060190840022252874676403423771057198727936230080092039459739784956922908909502487496849235608117149534026370891224991772646786182822604954799819765797219907145813203148811961841603285729263387815431912114571122670931538585440811528873068610777344485138839382005643695199558226889081103938027054234927350412062141107964322400945328977985532001360701695344551438705247373699206365261456457533358898729923410578335902659127816418338070241591459239487032739043157776972038952706096765088977012103873673870421167929833516006503016472489359674081268070817195764111865619672085713413387251146451937067400570623913024940890107852005222351374530920315628138002566280284280104257033523225833330393808917751281251406019751880966103617257486690744211235357175002051503268195138436727186294773285879825490863694729642732842596034372619910975991197133390851064047533063027973238720387674532031548229341576662473449944009843488361178621938682588127316706552584635337913015908635165150278669248791058570991852916841631881200667281043629915706840505914112251122428837408239360616558298504588650327634167949483867036536845062697951587002518729871963515113864283353603028515797559415643913640211152405759823770852634448780630980401625680111742050266815921482241127830594519278488102791066549702084481683039870770022051254411270104974463926488871230822002331986245782366293835835250434348953945045020474780579850146772022605639318458492035790887950495634934682561780619219169976058619094513400864204121822180186057165801000113300166777989341646295377316785569983946990798811419435122200176459730794183880628656207271076186745298659877746263803445428846557633942874635152606405902906495994797696846269893921674450863843019200902177394628086804949725790038868430053437533301291901212654496257613763728515471991283219752667913488479632244111644816047316361595074729931688940506463138037252249081932204209950259628022435063377549377554248006777150496129484621276789148786699681283552034246319066729011145466036357932708116157970417587712553633245979401568322083161577631112275478065038692228897142494550749795398321558530087190653041323840875953997062205370797719051914492301902319072050871847535186657315531419039143614007464726699285034356766479460268119396250687931954230711057069860577951588500842941577586367175180844824679991115290527928518621456899411534553968173607558073319185710644951085505785710359150281521626753232017312934091678630307470680123569294573527638724947434817964087648726126504608145718316511562492128835492225559269137593927650727565119152398434445576871175691989627149219676876475847330756567694302744381046254231726329902866416042403766760074481942980955704811537675286502387429772764352318277407079852971670403785267183826247222066529205878813563637546689590371177589293144674556015910898397962243410742552581159171712115017366096392408004067072540235414021776977285656799366702245781793278821643001986200304172182819716616736423198000660446708152226889430539200263575661832795458740472901466329655390085120199399791865798996455561269917140186602430656134757482728363557018498400685143470453798974057882405196305898608411036931293276647661176137816271841303072182662443341445810919404004300847821976134453987065395382164375383952071842143759391592546030627337528630786825455548803149313087506256913668487816955645980701740275029804618760666316654908309161876281682816111432471224364389027403956617716493052748705510023154976767883532909241207266234147442316447528785701057460112799543330721388416890524721641648485860863342469441625330437163850293735212742076217451991492858872418959354534887553559605356808174843956046972941273509082061228192931880658292804905119110020947007319376790657225901912576488006677592877417721812191763575185010943145615004111558273275119302154017343087610917796122861327052066889201269399038047999246053954461956766652053918095605307126552538718444081686919422250773107396145431709844118274447250238807884172926657336188870968734322985190284731292984937524561238604837089231779916895700592827652739044054154819709337205002054838551261069435524348810265888920030436276504262261761551772776162889095014559829983733416997070367863139049077376501850354542777535412589821687072586803943115688706227946769045436647597429821062066151564447107745635536974704208289292554093264474657539279731484256934056566930765942165636502524328300374059821958321289948941080025404622530353901366935450565779722555723116567616836930876909635447368651316567879296305791439805311272223547734334344374978619760903301235376491787247037049443360358291472128545138507419726557284980491924445194392407812369100953021800868458616532300114137319911124798998556982732198701099206668992541046557630858916289337153543308321858459256307292606566275102772839315497915958134182798093135716384598203224998738542773955976232674731586478452524892186183241114545896212830499354676319596975653529979311396175428569525631477396610365001464379845588679835500395132167237269704819643893193685002274369683108679066584879283846116966557569144138794010190886234574835391829767827727015410145085383043896834785633748276322233065469677803284265788831137400388582750203194112794848556846887776682054099248725370645715880639732053852403146561220389441947623103264105265152502034254895843120887187646334675094110135284165941516500178220328663236092774161174093260968286511578296556432672892592957000723869688190980215206171413937490089571385698023710685211453635010918423979116685991283285233719952295822762073722960717832490296683227060550224876196581451721611594839019735168012905393885805430015129562431055761292776314461865592261895643883754131246319278959706705799347593977894681184370340836599991126150022896035282215199370073530712847991204253396027822378309814266900244599638143221282978089091519142627462991489657495601627431902638475205056190141943758587606293662356678242801401014298620962081762569123071053395775232528601392331657200705009251228834389356033853444286862246339554952462024226046634367308659318470369694585251179863588144845180002401318603659128988265290398026978555800779238516699261943712641162953656892230118158824748718888022536189941922678535353604296647460405175293884245772808681064582014631916727094863086751086321994407965021083183592506380032475119476832931565802057271621536335127477817519624386103859861215996851103335449369516951961149416389982382515557964530363270110670023263872278497579277688282187139949775776578843370075620048787195011698654217873700461658809256159549439213376426737379607898873654608698597070779180356073609046850439571427933549411941826218121675958594993901225315633974562663155428633482511991629952847760488692699619619503841798827854815780775517302360301094258216611891055128751356116127595318294688069454844742979869793176950287555194749953927172582774927095111453833046170009119019717734526515447925572956709105701396823659756591177455245265529709587549379986211830241121033377974861909811450794799515950678002406387540789753403433149818201902676721508715482514559104164524097235482279501762001473788399291106551695524253454999307321830004672210251859912472497760325806793910061540249929295624042419199636615368703167479611247509673579367627145555413298864712564264629720078976163322875871472943325401617213747879837711501318270589024232192165669507546302701816214369431267248403498862995871325883901529051964488093768001298133582230868090905540224027005028878157742033446301573034205151925297034493489233810405248695502908241497964870240259012905658603356229453049372434307559291134945446141980883191412881216712381487476147712148535149832185534628382081160754458805845261048967055784892096066235692348063478329823516446926757916650651355538213730477177715312858597372735268660720606383212099402140521525577263128655974564142160753388598429268694223037766925141686700337409049580963154636856190758291386253294931672909521076271682727478571627757756150341233946740445535331892191233413398825735190365141412843395646594464815381818414551308378582524780495977002518553800759239542255915270790124648767774665211903957986116743282878143447138225228814861678091462967025594967594148586965660110887230390694076249408683909181480672673485406527636876720826972956701913771911487269933047832798271486084544323074382111083249354128707926379189541448085607045071522618012882057417167154575868241160186908206041052790034959006928537973958717760141728883754955695541778434997049646152479201385382344700738051052021123915593284796766968221390198360199268414863203610197573761364122178146148978636454259264277310877556953283499883306972409333222037495293193709745076406807273740507449579078468094588317102996689028431037178589932062947354203214665048603726267699043988201662697264088991383691562159882905911224719158134980711507810148252109908756773582189692760192183032720760738059039719562660136711540432426458337256600447254134304989223506996180327359704088414151217547520839347442906489612974115897535435374555837916729934936133539613540107708965876506117625010791768844735044644522397486659287361439110462790091336925518297591772618316604736733298564924493310091056361796979306019262909416004250985276222129126648788357984489203532454832157916276709684663708390279383238765151093883125819558711831981145562786990897859183982786644070270140915308312145318032070523771095993181052160682873428378414913726811987888622223180520463750888174228051495494052411775317389278011390071451028573234402738978760636314044330995334154014031000142062923698702192167758884230005846803237469662673300965269607949820705988834645645550400955222019575630712147064684263236213343690216810397512781756087646291908273937155818833382279124157311674024910490390281850367877869105151132108328983148984318056471254257960027576399143853919709854010667210847861800869876094904492082421821049758457073403712892772322825984923955133611437823195405866312550236071051363332536203922748934184691653186272441494436471812544553071101852800896977391325130714070797497159100640920679164492067252787005619165297179420856970640962338181225853182574102289252857563636846249819769775229193801741665713466452636693694073670640949334854642087577213223654841721624008705944241999743848610338006689151445165163868397108308668401574312364343922802850533119321285053223315701727030125707613850042725136783289287555402632009627219555804186409259774903713352875235978030420891892874230507883345447337579779010279973365539348573143468056115741787667682568439197767152054231075813446489698183855825983027396891186438680304486397751257055541105546131916569543624027362632092647571097909134381933721813991408931252925853003037514097875795486082294496212175776292376419853686407418233679898830963737505069148284506517967921590474495512450922750850045128813690285577703199019894360082510772177839347666095063248735931594067298459960776164571295692118206011345431618057123279054177651838388711158606854355711700039995254402457286027610263382456745798958332470628693970622921890169584508794399858338002767235855232193826107509192415977193916723873836882869962373459387068317567540920879030004839353204151625357622577576325514532840571579710326729227610281477915849522491779849233958094408994003928701303903425968134809619297986169686518410771042921736597954526565661617222474875803586926639697824095735557863249854767571591784131167198318527564065542024412236840837931303849983079027325137231940009266793872366512782676448187517113063822628594215318451751909292305564465669103224941062822543727580705436129881066479583830382390405553122146197535550631171693211565215521189872893659353157067114550269724161453787066521119143473777684353537698034547825973489941066627042547613766394505207520323059524977828207798701897017237235701692035181656538301485746919714292991194690662999369170869561587398868486774068910117919276137459992866494993153974161380445527032521741705993505209987373724239746034617446011686456571817574589261502553324642754170726795936580113707311762143759259864824607864351108979045822492789443414736007189409229343718193096506980805495758306981821625320578113687716511865245934328568931964663919764917278641997628052092674575084196603797657885209423007541749113755577665309363249585364918212247580352554705524222326468678494851443560986445490956604100525685693554532392160234591612991050966843994139013322263693847561790174593770608109793044832086906949497159105109975142489376861249153849190282007098117841117701575939398146763117449700980007092894427777809244876410317397495516964568801306247612070380346745241223349497840986332050220341919986311597899189607131530185263663111195495279610652876142683826491196507903374399842601385277375757412881348344302411186630296940470891641711364025163551553853099160861901651931813730683942472995757346126605966882166424160880894098126252127052102883642939038536674720218738773237021113573119956877870544595225135466670846535111419278965410296653155704920511998269345726196398617320535700380467823677971939280487167597903000615671214012540438537853236922997040990574820643523956839683200656358016102307170582669000836560088777800139860553027631288042217489451049522919418717376727631012121791848530490906561245484638851828535685501445348501175212418687307489701013037118854501988472753636658539044942679476468706552994907920905446854862674570102939600090848421546154372168215571679338815339835708960451952183294123266052970744268693536530297040670943424929296896221409063466389961580053175453101860320889391952437741685243526590595571507906461786248790785586988080348664376678174142073790006227061255589329327875436156945414102556717205230312728390066381343694770875648569176310513215792174808487147450479005270719143855653100233549632108304893631517275545076139391914831148899630552905998351086446609797463375531213129136551260047996290598602877650956570977877504366892101024277704773872194450380087257161118899432064643454103693644834196795193752634722023139837014993813359950475039867933753156681635833004798280296323587822006120236383704793739048257564292231406788619769747187391725859076148286795726294194351130411168947618834315748800642589859379197796295892164564834477293572319616920042402347524994124839998142549727183498962557064762909307705981072056331414724231618691779356332344828690852464575709112589450647050748166321734320378940127571603487702873508612223963017502761798860134417898228891182713064001448942276108976966888363577372226991988831651770165963209129057225942013301130430633991630536079467919459456926703574744152922854830383955249300442634752204416613863770445109265282618796078724124302245364020659036708618886496990405620500662371173219020768952400060882236229751368049290391322309198107772271736963771648399715896005059267585976964299241801797878998116621960906402517004473667192372710445163052680735118869409048083322053360513867367207047079777362567632898437162521303083063542323530706729845484159148759753682782441403014960080888751159521405354524514627620050074392770874879898705121964833527355794884593465501354445743596955977811072635284941252095268005998783240284641278649858152329234922640081112405741515379938075682492699120021110939588412550028040446028028807249601369374055165382859357856781667690849319708703958957930072090550701987197744535211874047412983133360064137118973003665604160011511911038358031003131924846017495003475359652148330622125783146744706378940082393107677367680646415569833364382026610169410319880229722022658064771240020728294570584712558006163208053359476724411388202380438087445660382047572708208710596834339676464633505786163655962043761974241530932339516922038871693464490589853142054482560956633543944364645811802286118043622258759854975638712884079252581662331571343924611513679309643790092214508832174647060301581024330088961038332959985570955194193140353543040489998957459717445178441096453503579720941715277862353719362735318153637658666264255371189946491734245944364965884142419371485172810892891789458231643306259580897932670495091043794109604680618533369598502329153575912050145586911082323422410243116795872085825940923037129753812083363665991076739646444637406960776187119061486125176821580604823362646731512500212054431798154847565256083465048365792938781096369482518971613570393839647816060602881188066548261026443169652463872365856050838802033199665756424952196883899949074570040947519228826304941300908774330333486946474097928234702884190144262928263088022259389495382629728892957680973784878917103545462544839931537053744629525882844490348839973693224062437413778954094673133185769725212843977260826160748754872464357532736823132680683751622882537253956214821243847006845745290712106481905468710539901434945888952131865467851283678772365535139990704878430391727108251856312070962665297463469393937509561837971240202550658133026735517529467786466656256769872774409915423632604602563441648706888442706308246386575434166231155685444287579048637023170108550190968978821664355985124316440581111055902170154531127704740796763748537096116952910942420490857305279775425735240664554240387276924006698942262175152546929438176867172651028850418368926289243859527987345237362648679265101506188065397735550926158654408542055871324288460498625185125182572105631812021598377241231960823222037888559154804392444499774811471769523048990672004063849167761332559914113411894337145835754962288778337229655369283436685838572758658438427278151515191055759613146446268946070626722341449756529073446506027000835380640220255894274795004603985547402080714266070256832629159362391312415518942312124716633710888104418946014696368408510271300811306620222116755329409338903201804630104742424820964215657789820693738367228793921706971155514337641980171851261932148844299638783244018242465970526408697264222029394796918474709737084347229814564163270020039817976563697529660727003784004749833415306144738049577483898568811629277252037967644636377547928267328543909172681135382164415983423183899007647518097231918337188513773524641124392527905126912480680220486107630788314511262615110690900283841467849680366702895094287664222000856751554717506359665629318918868494332438108047041683594204425916937755380785119011443906647286458987987659472148868457877590283386710352792596015256652108152703368821152255515274343290792675800439408565753708697621988712075772034228638532161141548199227602735558831320238758682661080238741171725955698164427229982863817805005695570235186985297769154747445861710466600626678350255388096055297403607656731363900111951333881192334338048488790388308288784246566800606998251468461576107568441229579658331826020628814202317562393791405754969577636466057399748887452694885133315887646035318509164585414827364654590311788374405733476779943851114322435272718088830994795802096577027373636131368847451619359926681849166729217049958294194478440588657594122143964740248812527612939025941915870893388497322769447048936667454418685955104447504732189717371121844649106944574254718328202416563217166773683252899420297838509781852086600978428250357175463085834041411874319555502181957548943449925316698043455453523748468916368722288935277208370998348196428883735828712596449462616548556416193413565180284968550375121025985512435845881307415237814119396725007346131610119385930556257041529588168979760768181330805083258501688699926795866305864746782180176619955011207812581485692773975768094296587437065363158969070085444872895539768656009403173912414380409787078124112806365071244921267142086786163734379348782002231569357085873637159737723989402213825945572721579441618933610844029221200562317194202068615144945419372608642663923908724502823579814502338355764894489602095649172195338806963766834056160638338884502560146933968990665133910208936065944913149849765793529053665926906128855378217284578416493140398852093722655056770191454462952291620838715608159853311592387364361064264040624438311528789491795377017541457698366515996696437151534230692511511808262262230273535260937886414177087983705122743984444841054556822552002521260479909532675269498653513862430751723622668368606378758517607090831770776242307992088152538908719098440858333044676159419534534484307249239842200605993735975476988382640528876637171536676306923499648610111043111215381967338048805591678060420099143191195864831062184811583064224692317445315542785629487279245784844682713703637189593849445329291730900925758713009971663474485220631691724724659260157539840322910429883882272221316143851922113347621389588170310241601542397990095037867016644840418765635121073614800990815422338868991580791266018977904174089000913068830480975663215834307285707595103018192996967538367181972652926242647781213572173059690288663875301783193310231016728538551091100991419262882046870458100698203733588272394158225468604831042652172787790358526552626662278537901795295221693246952508314916401134949191947795604499125693763336629065727920871097064777854807811249963966902169117828115021480533352554123798318620914997150677435371031972168274573059262192098692968557354894936513250910286666482733958776842004243572316758616265800174833802719846523549034826278325150132723224902637496195558696237814117388767165131671240155345189032129359590455764742887998248004125392312552777347886044222832935285707553842376213412745628913773909345414641512328913426963483389127862098313797710730259310544585987202464822234943523217582528138827784096322831385694048010534843763555153139984036293979947650537588947214254031863108107827235586681225074329461563246646897863894169437448433263391052747445146708596254043640161548705099523957805898473222983579480783569824886735508826671749421886544666454567325280518433066285746030278154618414504418879036194903282202167432797043563737381959098074331985000852741925430133496348762963179708862760414359547406508883048658689342296806919652113166032407371330363819830103025604004600766506434920804277370197853380714706457545291806507759644044754137111997573087129653734311728403956850890585921516825023743226876795334266028965150902419695635800035085811274578680936982641875892310835633018715136516828716654293319770904252328922525206588190712262558498475997759131163514259253661832610263589181375049959543569757903042523646032957865111312021003660312052216877837586728275554198218539693901000494282206817802837232477907437347716312692455872362907024178943258543877276927937355072399001580053014796936344845488744609193419656758377529950086216094908387354370542865449741666621991585236597806196602081866945125563076231047990238194925882256983932290807122211931734687291766488300724714739912902698047998965829604495969721890018769794094695573828793954339319735614066291190784177255450244928043895067210230760313840939832915370576965073304240362567637597751114755687532912583057996269336522881161715822366577667636590489672700225794917006609877697382556963329343822033068075076999327638286618246353157968914302096333629033138076728442741806524139647034177355524132495324987340342566437452894975634292290415637465562929568903225664922042805795940807552208575063517301609976500377764195349659109240445553467552582023427446987947806627087005929866515152901266320276614748280958164960998721229485766764639326776880958783564446764200354084433442053309000887809454987736618459465923747133263890186121544441590262002230017883205809606725376240019804018829904233480675464089374449872646494391018654515331883105594524071209113442116246949669097987398211328522375684371163063616202067521297685718781766468004086143985706852214115929850276703433853283362421338019400069569464419627086149586132751587637292404032153191797565027598705231601280930715733480196871549662323695985329245677073604278537839188366624079872674164722910732422763904815209605683600563511338937585056506084466782891433242951106113920788553750730831842226937639922709336689627902378700008042938801225325052874588211341680980914682829698197674659269485074211035344556692894947109729151599821784269750634158886462952135936412548831275837447422997497435669057683089121651009121733991990760994590802517203528875933305445721023206434186216476062403625802391910495371747708944009899900690332546080949548042576691824365098853613230296718950914386926963032340455413112018580657406460498863979516202303450099493513646238443597637671595640087858129718644495414954343475739213704648666682697029313552414310791144089830842673135652556605606428314347259070903129035129336182368350607150914197628990090896069731921857274559357799908350007310089466645766086081257277914898525162560984301988705263489110880502359997192187105933010173279667234313578970837431441597672698832435400821254577680830199377083098274225624362486265130684602707944246488578294372502871170930707354973614796079402863339453036290817848587473268575942878338207254644845444493967298480483852204564816953605613413019665665436619831393774458547280712804868620310708092470660430872342853462127400674702346620073320501330913570967210069501022467809307716108252970922116499839742992714508445661249294603931365123164128580973801231290043053247593263212228373243051124090149679651460495355365356724532575973148903504578207285912833152489961961425149783490771789991602867055396107970325957537076668555721266731657832095231192367213604664114332038279900409176781042257237854160876909522230458172143918331404549550413992095546750769413934292965180738804985147772715467998305274572752448845821335850157373701310588047807666369647557565112773184468193709050616420884742234185425615149004106030402591438663515611424490717688212146826608865564452808131086230047574749542531625363729849566753918240305324552071970941775093791253805558952207101148406102681255831968216074760051945366266567936081145933429279682519872172470740266896284722506785924972690163053849680590615872204823377345790055935370281379785357176724799711302219720793890596115450563693108160454180896572754145173962307260415604826465488126686095195400989488346215062350476380711702017529576952178063073409647105059296523797490942053890576027359602286892568602353208023025896027493982880933728434865814983443124063677549272371139057202597189677719162675082474452088484032970899533711784798248326018644023633457947815085686156012531973818225977117539047696732228813015531227399982497094646159908262620410131778097531273159919613415927887401161108629432855448861730437622723085563370804306663487463503713279025268849036202305188879785005230386813512523328182740234461185567361705602223433668698951074466474469222621127759550655354580845996632322926253356669636814022375791438421562704948636528977038150869725866002191054808148143868277980468990869386061207435342755843930475120736329676392463378049439457987302960420830825062137080578256606113838273202052011306474679581244381012369882600669993177825876552053737852217181933417304046499150527020079705208285972982880732170364969569050336891192001189438374207120050500202379862131385439176498092799705133148264780388521958033972794517123632528621546817286002050455983929507776815514894595909227500618017362026224475969714982986595526172389402485748275644730521286109064587440130375163868487608768944551862029936230453687834493939760475279602122480903507742474063888194457488781163012418008499210430194040782770001337268524813477535320307535696745122441743002944333824400530779040799933525681316754697109753109425544788200924636071348932087082200071142022800128709023860355904467707778111190909977049375062284976891548995766282580352759562411903242058190913666871354150620550371430447577307306767881136442295307026153463030564786332881592482848388024297933985940097364786736387037198809420131402775887765037394055390253904294828192322570414687056126764345635330084276614049183270435084353578383039945698867397767072969504577756126938361221284193933060633654287676631161038305769924558485843332929061972492479717332757410070739637391123648740707627040665320813790850666679474530327484706986784823343407678961104582591263851312549279286139940267508999720649217581286447040391313998626855457085894603611045172036808320158974624611995618567001354208349674098450702373086717116446143614383519690207095622325399512635197681459573848209454887261830019056616320617736961191988134704674827473711723444710921902692917530767574426256147294705811966359644290315280899229524684945263809946595925242907208548277514648577068289334669415273965026517059950210223418918088005077814783372233321230486925236073695047021426056606937163244536875711218678619877524810227619942639860735799948506266508731321732594626486705151984456865684384474325075891759978957700008654452707735749133715267749396231916798339118584169177495159601950546077299660911362489172969550360494908154531951146476206747796145067046884268180799037566521542160512586058911509169466962844547763960739372445474081818954531139765712564477275543322799523428079634246651414454831216425802856138801386363603456000725920062201459330383388819976000586851139748742467002433490954932304877501476612058064697592516023437388115458354688250315417218187721269402998777824562783895820479080558445201180675813037852252609148883872833339942795805927835845931962670284506445160885979823596154068351095220639621584726253064151200846799266876883066057149448719743362403923115144525342460299138619830491790524488554565999345480312812322993131858259202624446506534609895667675034535652623734118395014294040617627996816128131964156497498079231247649355180911839553660835479560725846535075094961730579037074849939726889900008664244924930926247617726602933289017319248585639398574603121542981734517368451754160461485793378461398676734343400828159923130702485506475327618473450976281973254787649356657476503060954160376531853844861245516727707599820543077493625575296916013376238507443754630756379236504793657289593369228464979317891069907123800142022706525969859233431444340186407296684657763733483644224189214811185554228164490999921123632933992457501597786542176457926040747657412053695913513142214619000089244437667857045268337992184998519950222877100494165759801432755177128690082548746654776675479352239720472448872209047051100526012276906385678703510472283037172004675795819655301619439818572616308042367479074051015369879652482385527386814108162307215690628252400757395207459090460058591082299648060900122263126366474724325182450727272780829611530266590874057364115451503023609511339414349258885799060261556812377223812238665425438639285418700739527978411073144235250439551469021434948825024662927983911573612773083205954182776797915594785517858814675597345879332117605810351288639680508641694341733112083382152068937078744930155136293677245226272826049658392655167183992440614229105514927812822127638425767342037895635413215029024307044659216000063030544039808540382386141254531494466102538932231527690684222770713508281250909584208671956622542765837638627889080811015694207027957829017353104768418896090929693367914517976234692967227665628078519858643253572585929698537627352644264196866245670738920066930531147511106753853713304841061043750401552276619043320150027305392468968815355904794873370657675062213436955912916439370105638078947361102772840267338034769221061817031311285562380739778680305824748364576817439346157940179959157828346309713053977698156035981797682362267304936076487726047496148524376312962341165743361189308934798885332599358422592515725991663738327293681571331978224841048653742375637866130261436828886516698833473469544172491338040746022813540543497236703421552659667056663971030057119764028464258504526102269542337566417819935117676792762642464722629897880587565243711353111099369660910050934158409970677886415188091763418084765295563707218823386074641250509340237379696780912283642098839111119051897136816667997681954396574803531033403429471532812100482042121593501133423883987531842271429802331350500812025464770669318370523596073043335844679822823357647012304767024408572855183265721724318950345722354034640131788481429987071980809222850759185092670722632970935451725371629804737450286385092585192895156622014793723870491121539782670891683564147528013368926773115415359502232944611869570782576938090707142885004081130043384525262115456467338839874527451113784912308122299345709877231321771177203328225515888698304019658624619603435813614857557831694328536501935473904957555279339932406519176233649770201536716741717062101072843317320327472124699397613662936223004473417994293857731343229439398144280881390034117807447844033877126903850389881480018452633480756269262280270624205621381633695835016437626210949103201097090991889867162676672983498799256540853130542679170998568371512289578383981639590882453264147907808169003936341649033944459105747873759409121301027050563396217628140130023272180676489024155034623912953220873444636784673612180463987454501238689556780389343212147003071831994444380297715511531841131018238504726275392673090275467911259582694036460237379402720407736212617130890154983804489480388164201121097383805134598082057935478407791592769000619802654042383236558178201142031122765057591655883660788533611042808577606392531723534568613393392081019579717025183825326388931801535871618255462038692914524723443004349011057087469491836843392308074050802250234351782452796576256423752135876147685644525835261791290669937881400000038039444671082580632515519615029969586903672250437449478929468166008054925497203296940529399174433744490896430764523263840215555354414012477812272137226918047760975731637156507572750161415909968471780889907459811603562838523620974099748589062365560490356931656670705042218325216480146996478310115068839798023031172456191806259988562170152447410133476231056730259877818953224222254332121626032453098439692553041381675129219611620277052607205237267378336505808999560725691860427815263370877643538126171845977410098641506118119191215635216171296353953200897422554725820788992267308754074067918847806941831129971951082619821630120329550038199542899004567928478145035789850948722997556974565027354295848327907731137788922778413456842629767007336151512449326337124874521407132499589199404873235091299638110857738583414352883861296135644906407746776856873659284274859963426726427135258548531671627103774499737173384721950032183965340066786956215607772329065408058035715795243344156356414491522617191031854439421133580677768806257517094806061949707576596242978418897686538605179926220459494859188708872191728206601788548218020531234710054266498578954397778838702439151211799947880144363943948771376651958579804042783880568025557744960611367293774982614131551353116496975981489398258292048509350567990201130675217549767158236215192571856792478369863654139894012234198566020846512357295959184706116339022992429129174328558072653573968238820838134539416160619028671108925885979868170233488151433347074869339710702936938430943330186142588940154377884552541424925451153431062385249487138654401701253066758808652928545864755539983892579650238358545651735966352393542473291411369509914396520330664329362708840603004317023441714613447790625624828944369017448111469570177311783852651720567777138920995240870794351565473917210611629310536435389039386753604191866324986303291148788877047805392000648689402610953786001527803842217702209835350952602900880909533090539038113227497051963621294082032382829897139356032334387482769944392068039053079543657587287678810298372625539704402755333748249589447489055748382634839897608132391976669573426501144642073111764576864720171129339233819105902247963383563029564029071853964813435453944937327890474424137207488720840522079644588954211900423680758381804770942423412872564877222133215224075375411757890306704179623885195797483218002555181093791487698752760973389453790911041555699815714749181259319474883767979386992629860046418366497673931578850073116583376587648281460773251308854862973165543188110054185855804596437847792753548130623812034551305780974420194534803936286297111644172485277596959538132661212064064540028706726324177152837611100585003179479237834481995083682650520611203726601518287614754033169194768404550567620134286985647490931786461821507382721191823317971750809139163907892862059682771329209225918533324589887696262676027983763742953938115715703297172225606485754396514861563368929772912212151755812239172356648562237480339346022301993527754261258739645933872472465904072614444688614228615560429492108115828100750541499205369567677853246153228403484599769746862904700220413840565171386927829549935910395903488048615328399282639748150993666196316133269941477969938199282010892970223902247549244558953392390017637013664421110410773464305117379890758210677515641332887960886272154610516877266162742114695516919732762469637089010611653636519541916312358026477282982762293745182735845181587933241266171250767924161810296387483627563281201295038525043573323830990952528512763907219374781625664397157619542021257824957205862808741729179750610555873508228863714062292282159828471272417488966877796531629778810275881938701683865063288906182736431933697907386151983757028053207857190185015263872904154557422421408968114744012644502926517597400385676868442683975045321331893722910827509839729269264199069271625668023568553631670929630024366650231509824838673158239201661302849727028119465458903126434755006870230793188028523920782188493403330311774918026093111695558071687714675719498656271491869290290219043258850544263234946546001712372411087506917620241941157227529661532746860928611950265983560265103980712263694764708258057681507552433797931651952005090275925233547575552029501783203100532642725958665454933658193314815937524731263072936612882762081893839303824874288660799798412353648736302987508876892453842625889422388676415768048663721379610119361591961387912195949073838882459127286255739628459500288315245579193266793193506138648198217019963979583469882202406158960108832919225948497466069149508474665687466433947666915811298357716250985984000249353205030095930545118410617826606967654271826058053466394649110797910643154818252724634217865355193658745261390910809692174431437147994251912866317408260682103841666715872380616644182522051210406522910273434139568958605037791241984453431216447530138143911051203058781766276794088293106412894334971404059630283892840640637429545584133239740535423290933930597756025481827667160360213918175237554639606843806814952756429078639090012318130569241850001100053351871780323409566467384637032714251176480201953194537213432840107485265475202656986952310677061972345819646915417958446271323467598836320530516856923787060760075423287580973226852318568513612995143112399855332928621705906835570290840837136609292476411930669364435298394037505052002171737594952611598327260511335035045563402848322834637901714189033864959460092163378238681288387030746521091273622035721581917151340563317142171814615466580811825034443284411400623752267959912773058011266158657331348717223989978518219899963609232601090484070766138159766338677323718747527309213993743053628991035427486932873270249049866808203732356517538090758019578443140573374418835373016425611950372921131282800051915995397702441651168639087087897578059498612745739643681775404670688687753653776472136593104083282814987550178528447610163090287255922281264979007601146110974090091108752770291680733324186668894557458612549082368237664803210780164091797621289887296432886349533715797902232322492946300155814565490810300764701865093504181912540801149555997153840650930986646938066258774343208442780702623326131042744794360726219353073537700650911107817863730232005390118138641480559281507201883226913174994842934066173582531234848578570707404051136014250597012909504586201969894336015086132394102036557146922071844770553787268983796490883708435139040147450727762622007942225065679451189937796519084776997060285202654807670462818349773437912177907110496255761530124129281087971586150348070319131939675409240410378817515108816797992968948335978716728273678282341425820623382874841133040240453081148183463500242769115257252750983163791331369799599602726675994449296748944790956034019789164085002180587724161518015105458282692801766590542761605378140893237594811581805073806575512048071026205718378585200268186597699243892128733356163400977942677645925633811550300703099557111479337953632920149351050498354040713746128061698467121375168022256170919382381409737212782511133568557139489891783505824761375904249447084708213955428359038157799864544222956929132749979972581322034147193136439175844647045823361363344140559372226843189166431957530191857521282394144359749918579615883554703595192968697073936857510541084992485284706487434634005074795187540289881730366155676434286541426805939911706282652392769807599407959831085482634373460598352828658301259145281418559994128114767469607709779428180986702750236257629656648278825405263881737178489289714335429961346455945269215618447076152355959283644613861226464625433536477042324605923104994379281256795254122537293639972583705326874060540917177503955199348787341270557929502629516299015140997185832248457555395388355283583074570429250019102662833169836732845504515643266067347909781844158377883724259739036154076890481354932614829309228101402001448249308990524823043083428221250871586923215616280552301650261414402176190954931716578676419938035205581522034510376710436133050806969031378425555882957132891531448235598140947608132118759918857149649357476763349899282438496209669395461430559021954808314749603138232272045519195493903801069293731766813667528965743637459562481309980350415186410310981558998814368524088282899059750225014992062764933278504039889092208480276338327666409722970504921757208758037106717920379566065703183116311892064907237583823795159362358057381098143651980508795256308821150883787215694993271631919535070683463070167966389094854126904036938375290146780007001506543824278605671441266109766532210242943805735430028799033474949762374302068239382376525478533310156269159405610344258183815035714317693968086589945188223649281916712517019923295429690848823664475454405012151017504984059174953171261899786467260654358329806593108190682065552874721083743840775334150942754644514633481841658647776306786188588691613859768491914454866647565372622103282906224379797195748622198033872654577721706947858214608064985594631828701095738222763001425829194703334906276723892285928817635358103325752301469314683300153503531718460218201956954980658547186323476202027482235036915497223738426057565080292281078698272916532156655250587081157657632825812441599638263983255851546709589638922597560859200214647140251443975063487829678339018201829622503641620349077803751678398033945690192627836755467438827010673624014563957462576751127149908978852037253169639472644654832471982559679696440021054699645213479005927311991646814170749952921465890154925967734215647134158677971183625904215129232672427628558572115129128873671983566953817413979868171050650150326956919798631723292021846959570296829997912375405183567912274024111631805634130005610827436369757641618552978205379485227956969950771878823194496078188011954120813384869930264135404045548909382050693617760458336778132779612625110235501714176164989635855127759015386320396190233985107409705171736631809787099395428753714817184808889732380158738900875834689141107524395519905942745480588386287512666692082229185069947214893858864170172296192461131895836294837044448186725069144979371129083952192729524986590615651634185757596869925264126768989162739916533602717987372855085872344616821418378941621145572226663868820787055069536263143273931840228046395001114687511903058742242373487470725100072234594003862953896987034914773976184296517569238604349137880017368025618358841375484840499878544560913759981155032272976984731531671797002506815848322935235139571721215726758891459506725110820068116866639837943872217323294277507751204675740111472463000055721118531326241181613643055947018686326337614010915035081266932867984565693098844948979451851088243018197788996451986011358740043011253989578083654247192560512641022754940675357490316272616060639127999719791823651982269981638235076735783270679933355791501393794503380145786180072557108174510511709548020688330836769811485581491583183674572879092034912838195101307792936259076040268378157635271133560024661468260058337456076351411016247236315154303362432334034326100614229146607757794067431701371694779435382527154635333643063748760941791042022995101180777335268545568199982116823424434878359053324749934340484269885341959027542827776864765913389544783973642496853368271011058126497076931677672989329481624584354853213218337056850765794630950442983361257977577566908050372819045662684897579532288223913179674320098101157012967311347888481950754309773081969642686157780355683535620586839668527622592693780187818338827984441552984054216332240641753945546798178055678714700628531013026983278371262253414886487655503985214767066565649512232422319604042997699219130459273848543466538407591747856866147687282098872776234522500885070505739258773403439073988324786880663311418829805220722064931131791042017982542045786993477844803161527777079958976912932830204462730346797263694117370755005191060385397776279552418199560301609690829802567974712076813974707719539862401066012090901617050227930551730553894539761421915467408821840660530062997640862063105841797775757860674996491281096216072440106301652791091543380836391447804034920681204768967672274762765324975073310487061354237461790225615802105617291564989355630176135866372620511177965025836720114570472924918747217356128881412848611413487134081849444952605776012004518314547631834415823855184857643772148918653677762405709574689321730941500793198455779953340973974088168785592564692392582709176923397145492981924909586191078058861301377506531074640478780504365858478376715314096721686436640910377849210386343099924609415829248422802486963135048629601441029665902664681553762846068141228860437664879045284975722191264125766431903965153590091653053305693998681557589500030939723351087413299056013115752404569745346754736642196744349197044172773928058792947186659252063896848692797889683847026327072436100149978830148187036882028005538591294197029563246372445560323676176838452496440052591036083996200777881302692228520456712005540358416299014186484177750041183023367304695939887983493253047905979695990283180664923460941143441652455924012362272236229627691235406686523923641862505883023143167667616747206444075706027893696579165010963952396889233279927759113192565655436742741178407402200760283205587488854604831856635945845092994447949832898029215051614723356872414133286711530142459324288997286681182250955597215466320205513554980256219432952232608675156529808108009111991544363199946552121601774874268370619983840570256631581057550169906853101295231150149400683425031466852048023925229731763143432032690201302831819867365476264568635765890767975756386317793307872920205091075765674953087608806680101513733493994829161696235267215264077147941417447614339939303062144046735692493556645365722750953275140457527146667402510518581747093144577080433922551189221173424395869413830238296712512566510496001333832681306678597024803420953938444480356112112096953047107844414870694570397947971263824253086104000859735681832394493261388455431604483118963188411163116878877806795754953909947387419031120183815985024726458825640379804354561661801209292562458406497474938828490522708019037685108792896158486595429552501925643386535429808431207618513822197964322084684515421310996588700705093164499437587022683042587319954928665458058556694376184626846202266652040246173140119107177436166003509869798612812067978177089961905972678853653922026536575862932762352623427279119845848893733288986312242110557294155912286552743270741253372071007057162493023554338427590805081849497813477155235277449038794986735711985116696371520538049412709456764697345339187106186707975925819463733762784367020827253808321305379270908679295898073581858835886568503085099223031366323662271456620057660903481094462805875376760009668523899413947444260499418274159230996390654817056699795191666683171230594593346259411257783703351301786266505933563732339789864252210025407883595128976323034328886584109670831576895963788526559741392789521884744188736458886590772752283378634683288447481046680975510028313024045064784854386762438843111806561716656761817017395691105496725405307880043047215473196622218905932768908199333951218495468305400813160031171574019523372742142409569355776467506158220610767537020373878057091599282945457002271642045616042838522384255029515373336262199625900718936452142246649043659124585040028191882057224714784738340363802798916458199329267534883245231838485570357070172391487422679668058287316166968816968484001554227893433896015935235143230338289068770724316008979027841548024519135715796073605164246444731498720067124135759654906187746530797619778956057431123256533859465814885971980007239876111006520642781211373746949115664701263603764361990179578840091233051488886902364244630300370318387477634031791131864115420619192000627154793802206019509503332646479047790121597405701856327588720520316277280470722180883677561993835685157827031737335632565673699914679074965698428959808895323872022758071971859180083737977731022708673525376683042297887256987070982846999318673469949722542373762313780694367242090234163412598460513722177671805019402009383921428153503059021048812541276630929713978109028538957716306821797807244970667242251160125582158159450966670514860669134861303247092842846687085935901785649169467375953535022596290784045852666288539663201670228143091177376291254048639027393004069886531374246283108770963307070056330485074318715113472253384435893774574072574574332552473283315075121353906341775769652756704262001672787318576895311503931833512098826163972516075638343729405672380556556046003555769935061686546737377668748160425510852967269522275846273030032178213415695719249364968553024330470397265612528751918266505187631681174474047058642213146376675702757940478965961231152773619944015942528366828707285919450882698241850204687550006030247860595559551081473820286584224630927982507321131518218913856498434301480153352124386906742956340740420557134197293410914585911485319410268339418041443460592321750904432637214895924711311229891339099141692243262058233172998674666388794614991390248420562989062487000253699359927780190622053036086575431828464576116735550509617934125028043172854136299547069460275581239568181327906833479818988433750888457535324071696455636574698041157751242153738964755397274605993423110053454399409101466203222961818385798239583569859957189693715563792921832622528106992856439406238628173099901744207082543601660504862506193442311424941977618568059467666017933493380792297867146623201571612290904796359896446003231836415609644241099961247164700703039682972635238665794618124122782678885350254485420251525028867918184153904972850856870037655162342476601434564078461916293127660063437028766435767721566055169738395535124925528994928308680947299154199964774688869584957661531352638552556548875465073694647065403909671956565799467844059673938815661956429803083076322585095583973773616192390941013609553759857371206824082326914330162166875320970525702779224606019947810176110588983557644657646315837006212872927083724084455651098988377933628324438967454159718991115759844470699644675414437313637608208380241684458721280341051872389266205494022740393026657023112193592518716642589823118331686174000708712255213132320665416443709827988002544934827940527044377257088194928374818986933135946739931955062584650406831106722187551878202300385740230839677086575344874867430641055153970829066026831411373657759765856126018803886919365360889007195939466119429054016633279596280997805810677176266179902963400242731740173254911269158334991951971776502601559996479190452183340962674238668891089256410567155542222724624583927770401051145090907741010259839567067190227916245571256196280389043899672070511638980965704885508859955473200128158834454005224418842780970834504681367328038368881980861616615312844036126926202519539231619703579928917667992544180279594463808154148158789457664436025011581330130090306540026706193959670037094261459549822864175909507292848621129046756948841839670610745987152456735396051479672640072766269676277035394384819764204896617580368538220596633856377624181170172267463208452747665565133065930766092422345107354431184970214109098887986488549814575936378137791730624818422983469574257946524654788947641497025047559189567007222105583031876400542556395123517771224896823579675080702622386687029216061030029034003040332429886180787559893255231739194491306102717684039345900594727490267076558556245252533880163518182715319027199198641087008003065599877301054264881262815722593254455334314851873338473198053485065939284734995751290880871635904542615609737480208888556160635786758780570234309040675862170824687274819778479197223229378556953122095135996038538778741971586185267880274012094224965249174155567895881290388023588082681403591983604144001956659638588511222542569410169856960936492239009049394180387847977108381620867702626060165545725279786981171585752919359938460097223267835581013571381151844184284397562831448079229555464526213755434481675448649628470482260249172321252818756118191116172348937801962606990781860902413195598719919541510688368560734385829885615783596799605717978289628645631551547105566537919041006894617035836025096540144016370955562237297588437710746594990443700573288927866672000086319539922784442826778033496508134165363323273698272854612100702867122427845910098067945341122085918262432263934549933581393625321055302702184146924896939691881904949519483865779171246372116402357336667248143735551810138677625847775093137463207175585949415547716456816602693308168342698027872856728677629875177702558989336599734609535553379508005352529202490293917746470375936478891527428485237884771802021704196978319309998980417385815084559867939399112246085497922466591298874800351324885923618380701452654378951474845030514635727492440451032510893661410005624937492337178523997768587432569815990410787232879937031108911983500790717132372053295717448188240537255670281194600370490206548412304973933553979509936950761811603647047928641412092511768362910876150902469339549670315387147017920716616870528953063488025412162560870617950196901836560230276395820285584774265538199900277931131753627497565101588082822448293666273772686082104857853366464662793820914072047207096642061126913788924291099454158439841855771795854924243846538715332818710626899297075324846308202146698437965329660389281382175068601232297127203659013636342318783667118269614627248975894242316346293196071871867730558695915803027850666562226887860688682837682694405806136811790107530276090545590212045293521766214326692946000993576435190583683774043383519146637869772132398931774267253055102012152138756925220168889977481123702555924823191523919700517423170919456810686465101877548274241687589740200572790520207095383185410319926975772315978760827671448608933872029614379159057294258048192339192271738551045056587936068960044361792832600441400953465358573590992267071644859268760246899526708160597342395637005038633376778406043258871721161012809454112367872023548472645086641982950422267843486041710911423043266319672781237906325810370777108351338945720316189839362908370525479002959635869343207251873788128107996927430163554915550980964065301679462170936047902734743155095525543207426369420740045649288252667750857026566895881253152789217742393601005339428459057918864573307702804469269480849576140275638127160732300273968841762070086939147510376575789571483056366939074465415606314343322729731574884956622522102568054573251889677450319847738421646685897487134829139788618301130439826065510548167135030524544434223207718794606199836833116235170395373975373746306437941518311791067145413801252068763207964319542613914823671660754136406933819758100655509298780555874090870681459688069789951278894117498467855734785464167947406273175380278385920236373193540862844289023805222276394681687149287166892640012535904355164693715984153513928913146944629051319743022334279869176582667939580207120430475194522839119727944259790103607670759985777742840412539136457215700961753265393195417987524475513140467334396851186474521144261057895957595202134959686036669128309620572014801531555612242061444039300137561794754922625076162378825761875282342431570291946648735008864284082907524394927164315736329418267529441226748235842500582451564242366262572842919516782733163768955547901497187470873303888604323045522537272694070773912691080702495860053503960970405685222853592638423110157214301023036801958694191682358021929674778732001105884212354233058457840864643000637876759733708587155870868759110579124123967243266152505159077499819400177600841259139259687679380705907820734661926766804521542527500810292696327307388351203761596353874754334047842153533797601412283343139246333711766293718090392075207514979797034206395823263207810756505131427841413990506771533654584812190925016623314606743927380548483952308881831258542296791963356352044277094716695095471667462621311936689259850034453635629946472877265466446956535239676864063699240931757348810901300763272855885286571952780148300513456055978546314506699607555535985224634306807915185127449573619201845213923001987686699864052660391565491398309129850759435630394167637955618453957227456935666963879845790296733405637788138362973514700071220959690559305348165512381992238205718164919039197075938250477155202699096945433908926233047281539643829053107598190835390292591803520708314274823417410442783261552261295035194795628200054864913876566316160509763445127199144031836977938047594750069820358685835485409312777036282994243499933448483178795522312309788568489488585151372053942976697548203159917842051870694159697959254947091334121301962382099740172411175525442277108422771967726991233204846255263525117305690283668727752682435259557855432521424207594004105614282152769441547623469447970380602440828411353179301891669412081776358279655617210123996268437433626114604420240911851576597653245233865661348392783144840306828235570647175540833713689536697436989610969383509646635152769058071410666594489428219241367520147268163695976399916370831347730961766385738009999009000779416824179322260152674168490140828796080543882301878150008598154201659277684189932279100629512847537233185348716254450788948460079647119658722532626470561465680141666460554160032016921769369299899379915744448105007776941876520284459832772393194111836467458625599602638819422795811958497617865640063718534581430390020375263615330195400464879380563385057957089009669503706921381614380224332886397766239921997499151020958246997947434483948517637628701914586069016085458059298550049534386919023215338504980677500079295054516726664013312120614319578612828263862400359912828121135716053165590063448110838698861027161692314484463499978209517452070809263559781299614207530819159739483446051607022462599200874808035436219340911517894401196905023140326811270160869776510915985656442872900615665933731808480383649180734583116402010104782376633349519136887931542597944947919086400687213018397931292896557463161655680369674296070547802998678112530155571124212037949622362111103138786418262409744666213017185918734198950637973491741449881417628317373349304901498922740578876609476593310997669399889016484210554165604602944270959447937896164468158201567601355787557427174804617095362778133485856881546347791027741662564564414755085916533526162713268479503201888751700000478068985589162435510411770728961056463505644008377939509679312452597709081803849841105819782140505137019152131383586679344810479663790372266689898921464655615074784681971171255169748406153042898299020142791047777976810051390760481093494894121127882811460679728891431491496829305404435560429600929645605477549770394539006764690771267255594488649285517773378793162434576754091191309416100269925106806415091182532316351540750606521242685118226157153207051312552893666262554998463356305859485681629762059867794392282587839376559290154800389995633890936638187112508105696249126171922368091964291980670103040928718645722655617280622002299561119438871717044238955375816520506198354323998176829965234027774107131611890685504611860767482013839898186130260915017813163497676665085898598687963076510477176919695527391691317052334955210141775505745226744611055114587087284712410964127326049101739899079877815214389047676212098718172572108490868855070273180596862511783398406021656064628124025371832130813940169479437932161150782307753747657213327805447633719531264191447642607079291059508868343431334575284421450327950839571398433810889121950643831022663408337071539119819470182542283287151221465592877072336595136567746381223473468529881026987908139769169426986996159354707746007981917515448952645515843156236571954214555461732541283064816710820503315480081041814994963607679086186334694026824710702110881783760721970782456400720683493569470001486251449557605689785578606267802409821442810301031787789572329486672002137116209959677349362193631362363036321901894562407620807490976732391682840240610658217430443641671530929512967370424958532900668087956222386673808421568669664860511910430804026373520511849402070583557083951486136899332176047266893426113328898814604050834713312823063695815947274314920519770404022141359626423865388188993795303458323393725935080874374378396615068342231661479548282452867860308316763858897218759778819511404264867198513896626432773236960476831940033200404334949183592927388475202208474465497684067355379027145235703695140918620297449155069245606287689927472259982253522989895295247408926168230005100736286567514761245123587718468516967716218126640094757785389370472939804645377159425988200256862892721755116195507523597415009788775371391803569261368064217756786367278628191283945277146315936404185630518910125278838743692601810777144240006687058794384076817760017036943912764036706157151432408412712888199120792163736403037055699901276727937673620201046347763471789601243140280818869181607168960131168374115158338528721806156033000430777646210591192483404238697792042629163898378493676359345177119432375111633714721868070967192585032163862383263956391872694934383530966244776467997321165317993569052382401668269228609017271658360174445530785384504721264173384923702474003288102990263803902036592941468622324821660629264008371427053901814209313196451975969249198447854195881218653167675285845684180850597039427053630048121898739248042858700137213126436779919494122323930563694160878558489915816618994029964316151335913887868691967223286882848515255318044998374708314869325382764611455334947037344805008380597245043939493154719727497197649433696131952681003502219369212545780252128144653718749562071015307635219767181399817057882357587974549006040211088139838144292924379932143888531728081651208782687355033411077644744254842244077375521211160469130113174357269790356430282455327383152203709224858196379720516205288741926704529749997654332886297975572291533191529170090430117593244533464788904549931725776476901460453097838120861663600220328394048205046824860673989993064143725068595794644261609846343413988557335383830854884887209658100626504793673868293982332732510074083385456565687332583782985601461714004493412149839510548118120461781275197586318270195432293002264681878216577046337636597779021268376948615012292920820796369668800815679055359870775754412872838519719867787977987315972143200286683063678448433928606881384830448253458195367955712677698396016797643620137223039378244765973866034032459619860061898305835852080493484780314097963974556192881948369215513121979431291179254305087080875897295429176353760566186250253335680940238691126492349592478970311775326218378399272247940838306517112952924926192948740520451579110200833193847656239379508271007941280549102054502255662434293841418597654251998261221582545603577795658361097230651557306167359269967344807728156506171920808154569525623467800357233853601215105255235628332589914515779495995709965433365978456003247060725843369905569287823890102210332442754701407608169363416383023534473383371067542717227014956087016987635340202681398242094713454180931946428561618223022411882366219641887574894798098845578874225616205183216426952043788312763189424462327157342297505279822635685129099648433560388940908645884470483398731532077831554737406911264658618317336933950404213532054122513590908722645779718663621384513693769315684210887628645657779717192722905238941083690140015241452907109938150500171975886699467479444401481485068570953591466673032264196907242521146736524886440718321607087618588981004618974123136049622095481951541879961001232487418894206161011883452110915432549235260893197692392960267704505590221733056760025292795748842757597297186115233389529753979996036054826720748280009812521406357853622924388929779188114548970508944907979271949167743670048312220430730501520398157431564370990918773965035989811300115246285660947105335857058036461689944822501506886044027332367767075410572713265624805423244786225416384680429432005535307727650492654749719003771858660732671025381441156907532988584531398247191555530776840284798725482954841131549373275786915867880334865512927691603162408091196381912623747833756478259198712187628823189019004182846615341176312709347540099036744334872493393158872476140552078679868657552748334091593584364062540511052187797915782565812611787573005827235994307048015692716405164804475600908714722587003306066477482566261416141264448438768485200984447520517117926770344841959750288926301228903816158955627808903596971049051862907578249940184104464320386890195611595228864167846381588094741015091507791168549111578943324341602736788078209567869925892194769136090628160992450825218352939329371225094382136571663877683223603441996227885670080947188901269189165217796378689445785300023584226513366129957786550710485603205598811375392908816693596963594667716330571742990488742609370076675357955595010711234552290397479226194113131300706537861713997416932726573268370112017608905266923129237774158398342238193311844540923965838094463704139576957287191870985353200617118117058347623825907252924019753289146571553486021893201708960778486707337389668945418222610633120361479947273622112892384672747025039367128891026939881092751533118167793872038137224372511221003386924797834404693046184697412992749184946678207231960263065298026029162216261558838121246689805505388431516248006965773127805184898412701337670079068311394214473522169245316727672965906508091164260845406229784696569348375489721773852289892224875404357853012880462966782262286894668079116249258566415406951204967874300766782832005621332182867097769176786667250734016816245757326639437035039353100862278354152152249196385070559217626801369241043928223001016257994178484636017608001510092220995559702665012451481000552674613404996579730586436440184516186938815301970028876378448414306395338035114841457410677630165256554309681669013631629043752364204159878199723846269040004937313639825795421138792281869857160612260067114364546241233012814072613378788896874720912400259671464539875058147995282151968823512669838740123545142592515811294418732572414233000184423880087132162848532362779611815899428432513114152171337647261630546643309587195210664136527367113530869673630762867872168285321143063419115451552298748630875633442074540211742905483978530431047256703756033532951106150180932939910110336902588149608625928241049565745932616333127665076697934420675216577466315881171508046709247970143855404243725329102446652821694575178826087117496726322832641293396339976375564854519515250910927838264304902939274095729188097710325389314071610119614487744818803374388806818312349895476082892593050929606130024425836819535839137866164266332345812167556189885856728152309436717540111393414431387723512617894076862796224361109610926668671266621145590184175955064721536399656843530946763460081031365061804525515201903594034325862753015751548432053056753578986361919065227775794482506890746550655732601631187121783205407270177733583933723222727785044403729809164323013479824131717686097501704497261585420341194512008214802589604181360697817844334382764185345684315425286274009686681463194050441914527529233200239159695587039127717575253775801801148376083816851809890187311421327654895001671886431575485881791824973749353165552190221112799972506302051146795356290780758822178508646978718582336743009692737609762670575894425059958076448569650264030098197854431979879675481016377440248348001605128659965229835128800049220413540263983278017070846570412310097256637795746676621446362048774898802620602545066127779138400676519522108699738510675123971729047238495515405031116963414383129392588795315926465161506598669871140844048352947003409429971602163247545328408278690377788076633800899322068771437846574484364357354853971495914892335845264523021081687734164610311644838285132580727942124639615420330316895097861614341127050879632210554076404550447542152966225901886365826211352857812787268081731339806873008204130075181169633414165991057742274348886441588623954032250977259102972913048443030969302477949255885499537224084950453777858962819813510862202814594012105022261517990422134798192214210834752127664339319708440159097856214456621408777481156281772713112706938090806458897196582066054269303503973475193303435332310762002550903211828356841900356220441985376739739113647655381658048622645001013851306452490440397203122790136002215479191619819627217654714971236675176622254080017933834566207077999832783028042257687032932193523470070430202856621021689264196149239842393065413984783556070422819619610780872924257683405667327980091849735112803307421960079732127820843385476022837698571912906832712290070748848257303897277355645426762449540552718099903780771297799992249435833268289947069049330985976283556001111469958008173007314717015246277189848107342166893595481821276716573508402958666579893772850246094815536892541532707328922179132144381126533775113435621955181725007343500368025005979844177494075564568937837547102948896757572875886958547067466857693048409544870423866153712787970525828455971126115719880408878354888143940034447386376975694731939879941718789406947085555936152259271708610842609385432918311296189029091335949437264362564881974793089345325800954526454510664371429223444201230865040645475353219997574610379760978940823154369818248451156555857224161746662574656674643547719043962537309147109363761080775982479948390340176488130866354012083566934130247244582894094190210308159232238239389279750511805631712909772227788573499711096711635433895256364271767476164292382580661687265278537182010015090548037213933488196827892627439876863023804527607838639433314140046233146529538568435039638934440764018278433333049890587165447250769647921431080984341015575402762552429071127990282720624090084871648182187000542113067372325589515602654002529910606096035313314335580917926318940041706269846747438596705738853927504116710742148670295569355015852231835001164097475795802070256779612070381476009712980737027411215999068974236620184097876816193222299865071727118191512047276163509789060398506262789642574767899456348994451910486014249205723027559996758008817425251563835372258815863429074942751420849412817149586679227788329381199252159893920177662630575565705768278516825821565116204926532695029523934817199504514700364385279512420604163067245293574994886173008587304976839860674972338036178387329716309252616248210672521370218441437012836238853356560178611361483691292056188650355001368880833306328166254393631572016526595969925658799696449612140912811019871220098798932244923598777454176642972217150169898066935190081519153713748911297594114179238083577094722845163398971031008492300183668913132628292476899143939453376717982439102354847785933825946186277551319555993184846412339955060011133735465743463988125066393521157886563319370340997352049194336916302043983446296614834556044790994630562259701870747746214753243489217854949271299152465530239190570311458051106896621199693656125050794385420263406187290131391846512250254759378024959829433384941367544020570383767099195527460064724520997372906106366422608192548193310300756041213837613770984152279146131873091451655373688763204858265593322602462790526421307788894838170540957873519584996632573077186732797156510655642015673549957231823147277919295866222770955477161482443513261828124191286532695219049531376969168676787978762426222562579133327973671874657889685985282004881963830498798967470768007852216733933930352157508202731968638505130532292029760137508581669978590518370009703756937686249075909022567907010626525820739858303354491482162244069146968376148217044339096177919585466699926768508473529532957278224246554963297863143252780143432600109005034823150509765812702237183519929151976769148136970119995365334946348123200164762980169396495439490785237123715811526855969462611718682266595661386725039071055182654997260596244280857219696523741117743606122968489384297638453821486714622817823390591624392760610360744770563968402865007272612165025109323554299426158490159780266643428574129002710860946795778043604972105026663685870899591324755979025666001228043668081237526160144501489415930012686827728667872376718287151853730909608558874082589165812827544280202575046771147918964496546336723489137616398446910462829749166589803673266313469364981695783963217062317957743834323923204261342065582674714736809357322128897300378441508429680414767624576766310753258946745030321118609617636693818473595647810179611000780347821461768434302774147180334001258869077313098245881977736059902742773234739056858702205280984571951406091023144357514416227185444639701621472174585714697335387203714642915643461963071136918942942042271140657361225771570266492502414088879991823089129503260791533764327405095904045662358217043095959617642095668312082257397444228982434644239770132560164503231368291875843553477766408290305381965988563630158334719917268841221449106157158216984278374949261124926186032000647482200888975908100127628025598242602701191808760602647643535127475283161211423048514900932144122920963202655895299934229130759172252364506383890018651917262509941347309437619185104363953085494301741024846510236841424585877561278838064619716210440601702343707815898169104642400365438767760295874070668641704208531456896554891358368752856093972625078743436438008714416939227044507315304940506844903070251533694431924963034076336717073387662733700115893790538161054615728283059089544409266840095769683586261829419489565951804625029700025406156353955455380416867964248967948258977859631610156083689085669403682303024079418587095681065527245092008617691409245220352093234960600184440374711947879072656891614035991425930401147817163742031407586020867194820183927182144987792450925370227147579106560942073677840791455536487876205494946984980498988229514680752182134007845855570654031418386012577355391697954620818672235080834013053645314840363111796934318508172146184524829078361639125917502534881779413588635431087243171659732252703975725072798741382427202745275961217281032856306690949321306586020469096225825932929484527742352349744861849681732758198887187705027510951933037803230500203397580247488532801518611188904326528271049808561619626918574065768035142828070611016732068678452966196301003235292807725216761272813764018779762106166285598672589297403587344757043374415448278191263079274086656007890759456867555971442466176645187472153482958480703112973863805851197842156772982608257927080723283625559378010761034118134570379242939495292458107306946022946110390236793402578445306641723394426399202816484449596549907653274057907568699835202525162852303753594071651537275157512269215086879206958921664071275719831000006182930114424295860696493678386994520356230197512939182176996603623853007792257940300794725732120997235853653405297773457359739810618198603506149914575317944937924057690422014877026257865761586261651831937627793368311201574355078892088414293342050171274715922779757876074708318067490866517093124161140955258841761584266062220670466993876862882040566360102960247021058068929101901223011091376202607971201531197552323104300711568347526979976067062073586782575906618918017733415491085925387516173492591451839745216646812087904048048288860713187603684424588184456897862952535418577031922458909093944467781614303845161173840240026069364857047090371516580867140764869288693304345932534815173993944389690588552858418246813538844840695697979677347627670856699330449128520568836247645027306626149231091287387819130325705353481747138533309934297813236065965090890473309715962892196487948663377866932907168745703175351994606486122245802716852486098605825220929867735478602305373564169709886672710688935296976491865006392122282363905744128028264406095376125055957019822037541318849198529660608935351241949481473107222351404661288317160475212775021039199338077254530605968525869905282794001543892131754884549946333751378300121369746595266223903044339230766842362862684732123198830459828664267626494803117536936035232967138298646517669314200830266025393666077322524078438086746733346233500534676607206430833985674272031786320533087420533348085948801630190671356992757831147780085887229499695244675684703680349024101436263409661560787138974501625503310501819258216724833421958089339311559200478939020819128492755906639041273624338184094924331040180402836420015109564066861720974058168768727434505741829977208641680513168967259007462814069653850007995369120878432886898390590923307062892269137722779831208445475485382030781655385770049696637232339427455772289080186161603911830921392530705326666782189464461996459430586734405340993449541335632331848837916991361519268787479479347487238084378762705747973802795717273123482533408264281923593499554216679518340267937339628846119215726861773857177609049434629470272618007805178982830153396665394625163992679649627737923884286687407731366960968867045784114003232879157176503886713116227315013823618323766847795114959196253371796444527863814111711836917828973276585628414413265131766432770578284583224556181486973919673653140231627792280011533552696256797142231450034772842354903138171283219409430856229992017992184207510820588031748785203253434291770309368027711760077951555825620762190641267569329072988463047235406293304963687712401066582654255768978765618865714698612456308983191510439380551507575597452993320259198661186085414611083410711961283415196520316400752724286725674294481237556517427402936747669083253983155592579638890176936826280222036511696590931855797347614613034236952619872760927989386060503949974931187457248919993590194183851870795140888272249419657905434380243961160968961125241349221843192489407536191350780760420760868070785837730620656214429017971750330782462695946091535513370111891549140120089068864848677416672020918509659207617712958603949674902474684825100655082036862291748919752165276894748628457894457057389441384026296620450387344897050874024926223622179217107564246302659898905589083064151287437269986940112942901144155990567662105803089241279600043781775924031701687044227637388525988422322887177711518171295962158427363102022005665066398170249132547930132617468403954111248607357998272327737492687230193119399601595595644325971945994362752626108339854872947331621839248791872911056453740275039823538711311667312903578234871815901359770204250780060307454257264883957200014494736269020428900628323359697026887612130739016000355860895679645494733868727316170889930886316174517877840629449982874597646820927482453325304316805878875777176326453837678855550211777551004320264481020148176815115575685492713071603588573754171607045882978389324266413021261703178161558676268132910710674754210519003382558543697552645233726604038655163552527008041859624357644837694603803143145770800433859506312886096223700193314620286263591566059201737382717139579644572717145566208638904360022224483937137628949528726189050262060017626197773820645142525293234906704935919759702543230790527410004422502574275414928653551462642911272145873193846012456294789025463539070855050285497429555160668458901998895958878430499367484964636730629792598471403123373539343492531996062272135148188361940052653826390841531075718783538916889366427413264987667826520574294920594279856875900422365395920084443769853319529544637227334880712462699687287593905412899088354095327858969166894495913465011997831037267699402650832860332324197793115167075497955870032153876806937780005521655110938259654356202091810115017209892030871921962486934000362330582874057136502140815442994606723243567765612462497280964613995217223459601263677071613636366255705524659600749620347364676340039861888543694025504414831587165987726413351212133548630653199931528741254392533893891047105310315326098057139985294786271754806093965986358035896322191951297565985549367898392532912659208316197656808202808898360275144031282268273523386865556275099106953057190501507424831056018268872139385488830157912988163911218619827560988364861422628434490549540058212852311890920920372616810012963613089348685811233652217610363916058895363843670158174755609535620188439936230613692827776915371516483906731271669389067410990132352017535140468601900964091655455026622532461621148652744634195547203746219201600805539293898127677042196994205492901015067512101422067091745697945201843376563461649607863933611160914655184756599852378375645436985408755572072950038026081891445831357478396570631211988778332403324482313391730896163298275149475578229423183857940684289278686469759736848154065627765421628596802320606058176402660843673457802721600626098324088175671317685874631717180231067232120684719049990625066960314423174974168017497055884163391268702138671175510392997477744862632994923227643190843260208518497496201034600450826418759636304226010354580059736606899371405426872126443160783784871218647770394292041174249137229943903093274273710420426363031385472745332216515192991044091059192947284966950070483131480347787432697770436335945593609751945795712442600686890308944223627249220340936592360196982707261201153490384499108645877036209807942801459781774587691358996504505500243540203118898736232051848946402896480653224444802284042382982689411549970706653597695620278896472488465701264345513357033322076461447421205992165922834328329322888035216053636325878320390272521318319476515297919650934934170554815136404304119792125130742831873807450030369207446094302391514610043325152328721731672390564517475930171522287675934414599146427752981279637811438549811602520346765740441429963624618999766521322398933831566283834208581399655573148152225273079430940552160619209669472566673904734985788692677920296743639674946223297391477210802021279643632083353972158548283083156152835674927450624582072780118111047368340916237635085413627026611332330944117805664660665162142992149382153327601133421515963592514588226093607462776323887335164154303942195607691908846188248236068791708442434955187381794182221035588505463386016494049049843819037387796185350353001252092652773061212037866951935895840583658767626654131390767914532138135221552271209867572170138972009242310550288276307232448960295107749968921902938749067221797289093996285568940366798089249236261063135290652139943126126206681689070701482215324060949564240480879397243210114986060309843331098583744522625381908931790961993383801050110742382592007670782849906632059392562688915301280161560780236125836806951150486549613522733524381370163564102562737698771870523616131499611225281704043323196346501323990144604223276603829894489873167858785947614995925083020351558762763966702255839111286531702066088599593392454094471723183470129077335403414917620781326295564241501041869914430381831906448182723830069678536884895697549776939868553290497119497964708905751271144019003774527536548847088206978019420614860131199420865618776577984235505406543637244939002381406344757676852329720061488451093023385293236469995956696854282087276786775130524231383071954972410488016143986968033831231095900801030419593675544763153235698905984260329477661774100252180500942789117028883367858224000766373018836746708724934851935045561879003625531631327331549333326328478371024931316143712669166363926613423046197295801555822917840953037176553845018599083695388891910464666115213083855437477606452224820484843962550114474861195574359136889022675897705001285752166525175946938760859673439362265091862228722085226487446734691420803431286502576079309889450365250630053515160321836795478644797657934670622830677647426427720952713327278847754453959321001964757912321007124686344441828177090151229052848340054106531463196294410878508539533194775774691635997208422316078070334383568882828666990294450827522777397749573668410128286164604292930270282707095533879473113703853743988858906104337604095996512709044576398278618532007218868785713336910577316748566384592668598227685633047491993046958791305358513443105274676562256990073574305665870976235849920142331809358322497698750401862288914926954741218063391006406226221778204880990158384741929899733808900091172316465690340708474685177584145539429515649547724217662595861938890957388824654345819332256467428377979714399772455053423017441320531811493890950143802618076570994570847500416412997783530714827700956596116982626051443814034404201157922827497599879768152397998762986801535909107449842179314391163332172768395736291990515621111513195539250615806275315223678835247172136147996502506160636666113567758720450776995367739785781634435550689677011311577499057877120673624031929893546549273086740233995230101751135098006496360311910917850534453058964232068986210074842660019660366219400990673637023622421942513082287146011783487120595304465730705614553955846163866171166246786528921393263444621166470881218784381840746184989752849048421373689533551545520193810751864228022271166179656867984897417635262744621175232701730227092527658108943473269888945962939461122107771531526044442341550364137460685159060558558975835514499357630895326081229050637477501168125809621426498404547889759301911562655352357005466555930360424695704769466370974059517467971700718963195854149819439625462664086040045551923800972219876079976076188958788606501550535312638361090749285843954393115083729463855913789332026682256575527333067968852938521795557062033883673542929921338575822829254124402366438544404990005674172662109078170918071968977554996511319683201089325881714057846093417501578875234752380922246837844488126343096164168547676729405608020449936219988146288505613115790781736804037340019226076473370875398183404641220041945480708276920239035758646704746570430595651898238184718910004964044299968498942658347971045599059357098823197446052104086601179211203276342655614206776569423360981977525754253201399465092249504880799026385621061691702354461986811855579941909155878421779851121670154816666484259202833261050980153113140872402217194519501846399119814494313905494862183027904443838970020522815568319970573978497897107763572898194448055683615170631188001866366213928430008369826959742947291424979524862742713378629822626406379788098653790952269065014048808215612367185712708858834566616251762918937336644451567504324579608986454346079487390816701960048355213870794145463620336184677188119124924447756803482318190983794915664247673406273934938577268545801916792980298788436653422602853273927871491202472928786050847135771345093177234014854642886922482523752985377453848366227787475034545432378303422811374885434591730517067774945448900061374314411608041163780802338520172235272240761252942242179684838957660300688321701992992881168687690152881009556789545673877398774224470810438926381522518571442086176440618689177322279149585036900821008296034489107752211961361181787392802409226840653631820911880163169583004443804396906289184335174762326218222656107275332969227155174079939153029578838148865657493561696277068195397524594361541461700905749715388352072773868985443548457767196837560947336899774645212985609649237508882956452568300965385721503756975683970500682318437626582578206533139871987175581775498903366864826176236060957587626294862499257343885409939504956302286714950159727035131393483116100182048037607891352757158595768253804805116249766181198327433428996091520806744396884161467286581339065606294492971017518229898106454280176363401509498809282730290749076376606480329451166842452438835116833398885754367592394845367174963685121263276135488525156917550967089242870527271587042903896895854494563970532922264607572674902326544874318308544364815895388245309651517527071966979975919722286062419074616489283628673634735652256400622673195403950275602950777667104417281019368897547090741087499201387568497575274219492712530487081794139467631594115957300729605966001537529052994920404414961939730936825306501964970626687299821293689802259910293448555116561697795660022731266427713062323152132024451981293305820010719473683622042759559056601163766226988017763217144279701250667632179078930487864536803031348590526123744882605222442336583783361873489218431730331444877037895773300941325475751843239273499470727358338543551328234476177125374292918102820243352493220411440160083607651563492810723087998028102490473975639697886887920581664643973983392396768062798735624122220389766675199037747728577949578810810475526100353024019952640497382430740613550706685714423244739252796945233746254181760045795142769236203155610030783168253770318973480297613899992806527941061354566382412952590986615680862954638447381351681181746747260243626532767092703399969809194874553840564980002817595576609819251004197070174529588440327515594491406853532420748333872689542146880955806408905802299526342817450041576688765909804857235168384024765448964615098927965844313219724063203934899127962701209715164543581744672568305276319466849170219409086599927195116380700910542376478295496357075949261363030813874597036542685420066670057659186689304331376599875119677719286389988522394572411459609605437317746156771829403523535403597539195608537965088703141903820195349960082967149749427548647032949653941759548045372822592290497320666097386193042406039464713605022759670722610064001537878534687855373681257168323442104728817606608913565353149556699060519309987742603935431743996385526896935656497807408800888731118909982235195062745413179834676204430533677061901384442741965727444048178635689574489463394754792170714554544716904323627347989643125015166339055110426154462496028181766497702289981754381799001659057858892584825047419857046607620324780681827977613725167011015879214421915197911135844307584888837594731018561788077477923239503311782653626769363828402772308463032745199740584271526001224372176521226861601041046387843237323980440244585873153523058503829731555982156940112206772920302181404263555734634744034856120111841358080915497801125390516965087790200692561105426116590297586501203778085699072889518748887096992402160624712440799383505635837480962349919509123826732722502460446029317957047664937699340885443411240860847388538768076447078147730836385776242296433321239091184140003559404716187870703306226017032158292460848874263033376143846482018859955231692348667909028780953361908663936472671524286231290260048749076803659304280744780641238414493938222525166751409249240505391464054897187647825670644350765616413108883529416907196090651770180185076701507453242122593758224935292829278919029665399611057326120517804293155664166109741830424609217113524403055499823473009075253909188009557795643006396305531758184443923547581675080731594375573053500862818090272421087997020978563202874804770491543332921206961347125016685468659349768300266855977164648760266441930845781680283639093612764861484397389635657311722017557019546910763783984598029806931207700971185844789686270844897868489147259701590808399506823154971301574781487908241849282665638104716765616627264629217574663001021890117770754470847111628179488675368016055921353927122913578869630348446215299544324110078042972745521909022761633649678665167416672032987131712305260111823659099965950466004724161225835792672622446306124812876946868566978945237719079951111999285460204034933972353399831449623573750054039102986591909423146263637527116969997925055730001403691663037668962858649110415114879357383890482601344178940902057599683730378748913498102476799652309373391713823326956728856704104647430341877312053487135640294456658510882627264658797917569671083592958134401066760943093374400347704289441870108269200054661653997618645856792896643269038030194082108168685058092091230532497242019220900522051595061902356704849686623527226991590706611068406685170555356800320388436368747930870085335751762218511696513196339439734102741226356660752841905813717342037456369145580714825486201282033448728345130010238604099332099153279447397552715146288635320269511611783073058513772933868332005073123139377059328747690365692038711402219017016161846533213658018291999782935235175016129642003381804560009644582354555829737103630610857919889291801381869709982684561805356456306253640303830845742754292671718962405571742136323033663472392489404939764139018606840279067259469248034885800719873580127785459907135025595896436271799590699811023119823599540656354527389263171884827836063960536870822658978442640255462316898318223177735015046109010249163537339422413657331642724712593946386034276025105740206730527488293880405693884938642176441211276198345066022313649649424322701820880517395736398630717574762881619202727996862072918092593906755903321370890099835883193406693522905241860657762215944077991335926476919416175053610827020573061794509740538775116287989124759340848669210308814689353654969900412936285432126151736209299417355993545589329203051684067820931019254995164002595783813919374067493850955001119469554294173717726129860386747814930216376757688580623147269092441562998906876013843026520394382211198359980807340841557430569961324422326320286572874528988932745656811993127584551656379887282014619657414649635689731265619505288837201718334105571732070766974108246346316687840889069200147223195084885747785493040247803521107803988123893629408797244155107564377965079275532412380668250816947174680586886801431640128735515568175599117203938061281400015428224468482032658294135481477127280759884069381266907351806639250630453335759633500663141275565202365499487666106212895588417161640204453122868958996862943916376050516457196601358672023583732049811823944648266831381619236857344452413923624798643200766148148402651209782488588033735525370606582075664516170318227192513629178230138952665612166686989462036801628801727744243356814163686096548852149369677860287461518175253522133146197504746250633570121016453661967689293214205633506632183373378025568640696718180602075924950015968085601357312112299469405570936654485549283402858141702968073815877772036924757957417612995136530043138806354985571134875142687978724430752561178414558298658762983774689347459615815910336050901873246040036891407933398359576188020342417097530874213808574057930496904831872467322093187634332263598148409587321554909053692541121854528783313105791553862873362453792694927541551953709987655875050528956365488817800713439004083887177142884446781408211753102595084309200193950052541639421365324836803530025988874583429551933160667442193064636813061247560968942773198421279414509493551788468267615695724936395313316651048144355882118699432327119568841711749820662886584737888501951931230465248870996403541598644844484135486243263723381688183515003096556371142452805130574168891458853135866922753943487014029229910948828645461775070283859681435328818805290909870496742353456493678701175371271442334433699437414696705529284493743360443592781179073459019469272475891634043581809071425796557319503552056385768305217385641120997082383802836619020184511351429187894921673698761675805764227215584351985257579612760935661919372382244228858174303352765402347067765345796362956816824618981201338917997927200249731925199455108185713661273015376656475480596056045468773256617137955963626611914140991165321297765692454091053377913155833731021234539234780848600969112290425123468181140367041774657999437736504374137765070927049761742033602801171015264845747200702354975428084922661691345571431054062717869598267164957219048029273446563280023147043852432032133543593387280122646668896457173556549566518275975616329322322002531086740657233164339778845375915050581924216910005971323660477132592273094536365106059004789063275786525337910905819555814975572499409764988684558059434843688524008602200679561274751786189895747565526467620650655924955749827289554627792769362393268029246959183595872722649621756069327184557262015967398406318483885053346373758693308451690777078602988690776275722809573289354747727565146769800819171312235432882693044446981137254528381383549287356018438280821331450200514830519456029524368092540760118737129414904444452693441005252162233485991349734620773155040257014387917827607114184059504980866709333064959560244680537532652387530718578380928467668408000609295474676009172852973670862876034228745505439760070584173795759849464899104342240455138570484040433445221661646783476631634818577708946885712260830257765122689195528255331302356436447594623985630797767789125527272239158542570608166818697001260314567833897926643170933292101519881164362242356590954842786286256938426409475468654616014780206996815862602594967524936363097110671824471210716348365328096092679396773015446501984247306370423934752951593487035743266007059124216006875107078751819249890441118182233435269687393174064072530010537846937524200386285146507918562374806009772577371740169539890258579979539130877951508259583981218359075628095865217697969561592840453146584250674174122721721118400092728480906227578973662399048981071842136453710555900801432191510865483411455673044604349900911898183248546887815393160482339882501677787755960371209586162125950645054500541871500021359442143501058364171156630166712649851238318305517866684340810265270653307812125901663088246739427086998309522305607618620241785319140174818235629061323289383896528858031077075440180579220634220158995099389243464209575416915779862724381386018987951082882862072124226598702877726827790904877463698942881040291288138107676940687274687080701719104513853411308234593025816123625825437409370692174282322073675985352591197380094425573732438192913722194231771976133805049546366880450542696141384380520949796494699156116670631788350573595597554775553774461181727705854942770387562417990555084677944806317662883483173542549343174759637636636586509117496666003577313890012217680172974170234537209216131045909893693878479847625014653307270236266875859537341319831438559459917322907343361422873845933201453756980369793379506034124477435028853506888816934774100571759260096456849042953128820979176241300833964929591225432960030508831035919328465527012037023491302848174292134944812086278175441763734667021284780333088634938011786519659729184372917638815989497296124009443033660738374986121131496389499440942115644072202891696966627016186739005237475565052904685266995762398373428962106404179192363824398763561184556479575692733339733219233347147759218421092640032676539542867517762104279049939480181414596566566142921795851541023768351421061481122614291752657436687064546741337705077856293791051854608514008650932456319538714013962206777238682323915191674281090933092473708168156586922097094059455970299328366866893220830126426204267952964900536999335428347118249914844638067235955278778118056810769332042609198918027299445648168806659149878005383936876332287610590594107996754312270849198119659374010033798107408476969583078204974919187482317042815024305330755271344191363407394435139667173347238107977718564677025424560916354917214938010221567889337125309916961377292926613378846147044116606408346119077219325630702000563398549869608400704024423937666623659236245613098649490188119224708829739975938086758901174701392390561713557313196026937267168607333625920958625140475390014102750636649196258457384187777800749263393128249955863568913648263438111074580508056009923428614959710894518189732800699446370850870041085170723672087487123940917783640950882807373923439890269422474301937496564005890748268145790497824575605800952451907025977735677954045134152874307037095153410893606588341745504343114793713294640103231628456471446990857653970368860758611095510075395094851510328821789668113545239477784294066993947516750695040278627429666184178323152978798943244789284421228629386502373470843426715466545763751873812800178386592384782476360828120511771279945933404853276385520558299765184477409922895994707640229370771832964906920067447207966392123857987350585320205815556137565009040753702414540406707553642296782309909788919376098408944502286753820170673287299904178586401928604307975174368356840165530801900427269418490696415713565145432241593000667306984911716056617163676905633402346859936849217612398461882643281577667083708101856093261833382819410499844359940540189997156746155703781513146795739739256799429196122747579361445243781821987818723601721424380598733902782804737446777746845323549478523141895432441753745247814589713702956819579767417137453018269950018844129515253205792788008594643171382695333750359993864136058035389278561274985724160840994380501197463813983612673381190098569225119538311599082230548163476694633795312466480850074783471586081928913068450694597592931630768832999481345615705284795402763053887625734918536706980890500443995019810453288111713121300730082754328623670365789112071760725144620133803353077090910235286591450514235091159635895781721175480229073128499645764027078799215656647593863170006006729561144258503082657047424941471793352300484613261274218401173882027739740828016482204950497745707643275981603791424889947786775029314881880855215202337162441729117969726788278232710923376313314250553509790499312676421228551305066674617127051559719675608927199890876959296900401625519939674466263840444445428276350520435322696867417882069784269357453710526383900960227467905830035774079353740278827128239017728809250100850698051033276808039419811840926618229113499987701734640493296487604735372063411933921579043096389194022310919907275281429560562402629078670346289965734946467709424983650570492834247835185772709886231508592817335714632228196575386627118463074823744581504580699797195530456603060529760140263950759766399472515053121174178562255855565197878083460291037418779349542278241582091961555184795378415394044403838314612239471665891419100637257904914037848749093695058209705995751891135114383754710676168627965528309972708567943181108431480499048183745712488009723266070468549021599455346279278942810613281262957969614025875554354808340890168056215349085437691356741351186798612571366806602522161632797975251023575224239102484998016064117039661180767387142585623064719540265627649561247503752667027888521351391154767290129011454159829594227391989592901916575352265817474025262273926128531291874130357138994165223743244051891807310587070448043768072521795103733243689479362618527121203831106344971506455404737040896513097189378524946788084593320028578340063752023432048116212884708988300140791338993540860003428206689510128163705527739406043752715882125092544764030492893969089909169843216904083625149912650063262818748553431593364167093469948065251886214312323675868223064343681622749151656182234271127013304978294730976808501279652811364780703288500997868823380840161324004574743555451290412328069404823003486608641571481994040918889033263018652431881859269462970003751033420683053952322601991883292404825337763152391344150088923961092076191858244759079665785820334758284312138306340240047012979864921950484741183014320605581772309722133051542598322604319339401630176427741359441607093547514583560808924717343900052239225721701926680283215119198037976304771346956264167996151568059968390363702452520063305581359575296733241666038920188819355891971779220552548722318226052116289025077140899100292974922117178720227860665756692082964265296025519641806498084744443408630696096415039055535091986935426514456075556081065957828690235622714075183693048997062932968264933764414734422851633495462754374062176761671168767326081665248983066546717275590017842966101070349299923350911917301109290086778490586514818641132812774604280183502407752504542055511487637249678800418242701233136990439828912785692931059342893366489157875354606774769284672820897935433599239919784421949607356804825647608800179412969519797132217463747668696663511050835845354424569293466350961070771781774970614725857199213316970148153516277726021856614280326314701415865587976092871273707123255893652677125864056249380247100407606933790355100351603614162838920473928770555017025270837910146438910636012219677965304480485518936275665310562554147912566814563271915347720472488543479833196854633226400766880780733955607866371804143625068172576059943945941634154827283146479455016699684243194555198156602665784345968430994638928440151935268640576618315415747229975847834105662031202333931292674114338658682549900437928891245229494639327809128558878054567424741111444598581290286138259457334173521961519965795546625342501229242055606657724951350908519970244494493595027466864654634538654184973354675973550659186479910317362985574244084451094013741170412021654330583853457820582405918003614255959661443043820857919362098827087125476632608202788314116468427853774567459813089549977760109274482716674407182154672077710862654751027994305137736260970787180173959746765401417061273224901610505460722785743599290696199571107559696776686922443868815321105458242683799510098644942108097333744999726025723831939780647128261253741706423862546246566005228268732206349312577659709570050495771041932970610965204999949326671411275152043770988166736349874085397073120720008499713430505128614864072728009399950977433205659288175988207543660626132237042773857935146259161426072015693038240803936043099143772049451266567510758989865692839453454942848462599481933183394995793742369706588333569075976351231161409565910818700216669387519329559800562772365877175499394954873735845533328720629879873853372483192704003624757403848678905394059119023705544572970685594181017641873143630272424423980301723216551671353996066899736882466156672055243031949198723130047377483265260963632213234212963797312117684830622342040062919567059185217714793327869424349836069910766667774881658607527539827889576417107259148919575547426953754174700849574833175467897101977922704675216264526324643826322037560888904809367641269492392986476048215937973819353697598463467649995480657052472563203426426189385366603779233800023793499611775682327989284148028313977415444782074205963337908092001922302134801615835844605387991575649415520562671227179888471551744265830017381472347074258709555735566240320667126669170823986923423707579506979224700286663208737127895176107488888180196792870131249388117471082646705030785320740979372222429633241560046285340707752049488231615807669284372627637191366708192296755084946507491129403290709427067632244685385467611005154050172153879319251567709570612745053888040478246407748762922284175879348042807760938858552380328782078902771313602240019708160223706578016120412336182580702536646202533021637192361785457293290800113377546519694036450224700774403739347474412433860447748813920112553719312767980508389262685731059377258219284844495587468155467156732353896133584622979038939071232776736922341845201613043062949990399595210413426464099638126885728863759459802915820966848133545003910388247305661294851719052092977203832653076427002692424473099395486118041727651378441040700610708124929763275715806390017720244506556241185236933107289752713323874550050268718775386301933637201371494103776550197407738195251750924988102010979195050966343275029654650718167695113830779235190334304737702986284581809213284893347295401622771129006056759342355725551508013232315646152898771703922309931569576414904419481849343802612775220321176346553894426208531806882717795707728002780645959684681182713323448190302141265760837556570794397345754977605470504840445484800733101035382335696855166984336684547660389447377553960918200461439805571222031171805089501143024075688337869477986978348162848493111324596893539138902822954511848960889587720327168479084108439341895790833061237895644011657334200031498445114878421216034314943910835028704915262366200207372644274909510981329102146930914300128466619723800217324549426715367992715101027194422878481566732890930053041273083495812718531192660630324506335470138241193234144330223507485987506361775107168366912018708235706438689760866282162551481307612139830280256946495946987252281896741041161615219294535022153651383931716780934821756806078366710858165166684162921067300279403687763240017594866091846556829804909064906523174025363712207414982650235231629231251098328208314522607839125958219836348052796475200999273781462945565449804989229917146270636987589351730520513474154046529309109171057371007216408001608282615591163423269305866563699836529321336198929622587237393092945066501241269419749237210996125942956142169723027949932623583762649454708001592974259710062430830569992897515236798627361727493350683383566113584389918532582053152689565031573597672528821542421845875517830076366545778939016550229699900948960087926061732006912502416861163290014866087415708274062740749910919408072491821456367544732500683573811553265124439318387270557621847599850473242648251539444909796275744207033615730323459911762262622880585090278012169789935258178654860508028310194728918796858031243704664528691935742429156880562862542334971257198938575065602977481991362506768713424544888559400481077389265691431855031714335704102848979804891568652730043740400475720304826171464453962197987990312910701932969247110759706356724475245373795064612552992654062184178737107419823997687555543020383643987586990714294671245596952979502767425562782757814928252735581355568824538494192951016775510815036765936598526272144562632333501130701580477293553146692976972250199463561686658067376326106010155752881082825260269928223992617114342025940827350743044189906930480457644334484684668472159481351462427714610806805372041288596907896972399898602440838210986949226412569330457449488654284246008811737360976859809044356046419409891524232584164171782040977984773214360467191979805804025618008723061416437581332186396163173767235300235651780243759556230542279984920707845322666320383697956304034489626265661308853491540347723030720244038032723820382450872989656154393169066940919942543421944272066660355792552841384971008944596536695242309015381698522175876970578055820749010622717943851516222719789163211912750066658505265865545241422443140214440812629812256953590465373040575716724884424531830772719477456760017766871568254960634703673359685181059918713533925752451829322537645992812011747195505963239813525961107255932708147547110953452866553808295421402435975462575570038086887542155392998492843554716798632276336526452919629335267791121062603032597400593152833777037150626333190570355185364264067736446866332335400071997094750673258086884863785066751600861169560078523119208738311589041437386394291076229170626393060706185223585199825143405678636626670168425289564565654861171897597786067207893735913475536131155129795957996898936654084301063719200263545207833862970005169195159721669775405355018497422149260196834607753435597877712205115627338655454642507850451678277855677866649868379882467182263898362335036850167417847414498150869396667790711110289375028951952111474205926868038991347701821357967846662453176094317484140609414689971201561949018020360355404044533542989676258319800595240611082752666091101345569368377989833192283561692410595836030338824814535915408491518001412408874334777353240372926207445997513286977680427360239802522143217902541256772315669866080308167093866023241525624817786728058760733691279573393761477864841763160993515615149706728765074264398662371893890490668388380898207811722956013555566752542500081951215714631302379515552485496545796881726453716359907516018231405697514983390133804050096599163678090373489025667245559769753060385577197774330730506214377055699752857710324189299495916311750762943806139599493052810127132066696090379499992216178527701587730468510893342183999685740174153239302179512923048117503356222407124488216368226262511391522552545950194332753573121906202236247366427757521722020512621294992463366695169381089770599608051977292478873729833341851045885913977621835925895203839172510755588545734960128934289746681574981021913491020932656858621476978652517183515899586697209326824228928659232530115544973428556895545920735638171297526041516085147451434826373422227834705878515286791330714974025615582745784385246990182649510214123633687712099490680511586926206552318960561844519608556141216831530347440356429340709355237917932326643449929653956398788820546439391716728594458296030688512633366657259394900468396154745986229449598527471217168171687028349181897384515377851092903996226611419916836947021878052368881483845055542535410698036757421126192715139177746949360364999575061171413404345103684983952720440806627739238217094406939277387108746342019162090570171728542272997207843858104101546997591026190858414241833566436904079013609394951126399208351710832488836746064304819045854067260882631998806784307754288951061689707526035429361531342203691104216448257617806306407821812633667082160164854084897140804314073657973313479464281821218383133018707451618505441800975099945461140239061736658900081740003280684205854751606701844424815276117930876653868473716121271004339781811686875903269500268540259117891861508770079086528969941965008840434236708894021122777917339314194662322081470054594117040512709269823337014981504924349666013469122860725176348643112721411592333687398395706584331214275798469615114108601490264873161500178682756184420180409657211503483565933645343047689582397562936907330791285394181866849803561619273769168892690432668093941414058445563587317788559420872032028093491884746800176735702075551087403634673910031843280973089101400038974868119245246342799950921773190440807527939814820121500632553352949943588188555971313259624602194748047001211266559323836871713429299357251101735125102484171093198471379030678891974373930218642681246986424949366390576535951310152185487574406076586643943257174741767088252175731030327891455774107035759776227196250409323809812867218921815008268350342903957906652046277098170463490316366853831222022292254253787608118474501429387869939941316248795880596764020140356447587213281371707444653415419112218869923350446489781863131002576115636235613835586199641743228435172275609500923605988150521576789663803700886593765485951721396449716538449219890723758663527903011008804970356243567664605795607324316075650922681915410469912519564486365965788421696992646683763232736219046396332927288883744969308520871869152154496072419211909280331516502167862539537012046935846344418800012729358229763421662407945083084018277343261642931663026205204650755420308144723135516039246520284960883596766101186444454725592237528960384957094730983748915806620299657204074120441229490039282515880230090280916109326644284651960924956342705841941103857492093965073455141555824440749814689224417441373074682913290397278964013368918887908686421694807724846387903445118181226971535516889563642563089349237848722023533182491690906793543899021526614517863842169597569906240606092297846482692159887815391390976756901345713847988159418032459485605834475581758770165363292970016183894290868608929470931599942797441268789972653125430999324911742288010268756509120292812966326146042969928127948712518411898685726885356889301106511684440383682454218219311278672743500290836646843094312623995826275488271359952894325234743120820140908263791042830782319414663952742285282302260321402853850503203276984871890910575464796813154427998183526683851359983609729886385658115609988575670571800651761713560500456157225229205157446663416296974249140363157227956742904680610422825477030521025030084615967918118103701502574305485096490072358034498941178644530055319780720138518919929078817442860534524226730613718378044699208971014145236410708419401693071174313001760896739483662264527414034803136661767831962451627034705477094330312283761884225489641072685567624329859762287636703451650835820340638644459906019060655476135542660205832382432780265100671653312318003256527640892025229270282531968667780398871240438425426214683387704038844890016843060701979944986997489048941205825210689617109048065350813401623793644937501491472859670621457745779489143534219733729084742755301344260123045211054289880370417016844115537238976711067915086530636638750420189691475157676696922475181028835843367511523865770979684545038002528725284452467138637556807489147767643499472003405028998391859012784650013736249170920689313184375565663112556700712431201278595085423055916968614795549477951057989920753157249002180831037584299323256742857058149160681609421445226196845986561634841003736813785057838898262258429496064883496443443970664604367571946251348132279056461032342842818683409249089482475019734101404247320408068548642566609013549957288015703447842799052892546309185642129753996869602735135887425484229151070439364319580755836163781613193241187356181598023170923841034444545284426518813325411967842427157760970844706688216907364793439778393970822150972462795901662126037663042736422822668779877560858843389646203449332790707544962511757354654976027647658385623777216389362642455300258045451009020158193135437906386794595525258395932776880425330933378804568054000690812633115235063397936672565403658022259134207293172286096285034485668567105078321645014635112508031773719972306033910857191550018925216506833319249754982867837137013876826641951090131891255901132552440980039820436516375581633000356481927713548393514464245623550699992573563589866809057804651199660688195030455707415708323247773424529642575956759185660779828647402616368538462458662287866037561456934059891325807175839683678186519271252672825910020766587935374975842855269786303537512527968349986496917534355791597156620058519782127143769353747022072055973083776818229558305684159130889640286496365388881635058632318153113184907762561899382063368518044447041621394595419804985891262623760420032092019144926262270654122150537246114159174531512079748793877414439789961018949363399124881859144017335238738236330803921238431938758663438885243381420581566723418486943483211793651994289748349046461999814599567650775113904716637148887844456699455050582352379157310149661033371109334120460630613246349111148689109805158055885105464296581941613418601930825007985709409091210953410356874415105825210703585710116881768664409362532560573832480912291822888986807401710022874622830393364348219409851063796463300688963922720884773896110977822984968736745678011304330390932018348519491978620138737914969354106572241256623343275227034137736735029015387491279304711403177205186611494330298626113684460766640049170339288279857908686847371582006466600728326471403661571074420130748424054440717269689418104765270613498563009648808958586819360509992925914889342554880353884856783599724768925336050841951620975477416168684370290558140674932234796214889144507620009709901495464557272567209451630235470745933227797022933987519995666560819146318422568883017958043659334006570749068808888257554434555922991507056252576552449357063660044980774110578430546223529718901708913453535332239795403248152801876028465456191804169637372219193265858512577750470710818095657519379692050421834585261746079697603350395958624133786723674214269689611170780663725665313449286772465363410777139522351203489207087338009770521100977069637827433441846185070492587779988321498881710236040939983468744688824901646893029727407386578168632612983175676292771993634526047484621850972764872282990340550314049032842294468504360939359584871048864406675267601077455078684694573759162104841496093918502820543792153946348873732402175624702307329091072223102583617466931225161916489308468901608661494004941879532671951814655629377493879646011450516375434999278092245037067212581631850325543095155287367051628394071132413482339109986989294986322310940781324866966239616467439384247573533092060005896051597564999414718783194045033544239244274116265474354497883419355504944122449892820055577563090363646101936265673091973627103926312638838083899966652842465752398556008811846867328182207943075664123469807138215634456584357041086525189888865611816822348645858318751748985727762471198667804994337130255253614734668269673219262718270053460640476102266032170270703387036218999617185070142918280538112173481309184581348885974765922761485008044481853039276960200487338914930399087989419872634111685627806750059850621836448516398152717792329455102917486745954088959599243520887788288522975263986131580770459965023798295412616294472558898277514824191366520751902892326040267870655352309025118007526961088323136870356655227972589831888570535357545508104403248307624615918067407818869325063868671054053877128768392051028843768988548936853923269389935793168586968678717211385487383804521908589172249129528829931107384096151301620997832427540658998155918178716912766201624446623818358641142370238873790024943519719357679995825159567713870302366849623184538791386140680787692355005587069424115534844681289035075802229921754772705220372461929693808308829834453370385146734256936641252995388341393456634445792525888702338633643362085650960132588393322876678737776294620072807296461870965234426943023881654941133817449702293967965578331695447405151769531580663739739483698274778002230987770460893528697394624986840986164536743731191373733631702187517043802497715346960747562553874764729096887800838416542650960244231505144820245991795447597397195808742352331175473573219647002444538377222294372125843812598524556244793672982573478249993696475280560154334636931854147121771778683731901435010723116541324684006893121270543628190382295276039250681053085456075913305312704095894100642257531313870900255068369855485553776997242268977026300957670842553190848855441026758739216369687402698290325228524725476535231004258661794153022918462387706085090093001037574566583706545759335163000283332904327028308918313485166297260552557128997543940713374891978882486512051849247626848559830808046538393368899197576380337739844942958069403325087766057405144359093629717885392025506576972778979598409747897515934392426141469587934512360263146614985681094342548651475602708465869600206125387474787520894892188715488388955055633139378772404800130117225857979338821792156253554816432736559133467946704085885400389072022886225994552120164619736175230449833133295752403336772429997000152782280228263751490083717865678187069929878469487180983563034944443621331071244766982377983332248916955587352814530190353303923561553028458798342883787328364027035430195782526804693652024514365604129179730371038055450791054159746946854026891844182365199405821214883407727819676028217263070983668903820760364347056331714636631874091323198636886047061425144846768464196997552388526162910722042186263114154911579699041408159906501777573102415684774646989431978603393101722481855097281208750522202035888201573187626750265391814899710787178763804323318855906472607159597450573139540515316463954524837682646562677489824070023142941770663289618166774557265979515440703157873018193882718873180504203348652610758844608018494341755809301169426285520441526253798006446182022785489090496371411322641719468359137895813966152632480788438478868441799853801455602775418950352571870604817986936321321880310001297905885157730219870714275764944973622628778779378325852406520088342903924495018135496760307131022085171509477774981709093528594276410165553403855514531234993079750994927767300629795980564736484879158281517514488896181357332558746730967464580149865607576657626238453642116532468116314800541765613044053692978197442440602211626113382339094956458468238222700743248812672265755852799486972466171227176834323011296257500722057573917861389904866041811305158306511699414387674318846103522338017724780953982908044226594608795462557288031441591899957851360804126891594497878267687331713660557885153375131457864212457998450632949628027425798110439074846728673374587238963893285283451249256716744356492167614593894227283999639876297124041310868429799290704629230393436258792714207423567958222306093192564155806894040678128995182424456319596296234815114075129152835933278574233518556495629574221677343577577969393077747000252004789491662871638355925552700075805030817209435018860894171793579951754473344561233283474404058809902691588990072259725959291968451337318097303141513084634579010307572510786185642803058421229542662009787777026245077763588630504544353544871547902367927042015287152011820254250427877709949366345234449082178005357830938357894066956783480076418586679932577589850675989084906265492042136191841257661982107460413921439613339080580388285348406212322454108210953469711282288296950872921716347066145505088515816155619089315461139886106981518526328378514673292862909815012261551130948750178486348580193885458605184940275068272707139766186914833011660639183703869970674276499481344598084177166022144543028704369203470271666802858748868722055876133885753189440038646958576216905743872072793173641487743546150515803624164183373654161441199684625813092929904750687775203303117015972936706169602691467735766814138223985719423366287280309092705379198603364622275531885223563883844396475855440154644162183630036516637110551804010449239291433056474407639103287638612115716613827528577602944169546304824518865624199249458356687203170489478791372225577430472764763403379493730066396083478963770975173892516334385826848361564131306759183272774177255290575646978332539604731259073121198366340126874936472693160182487799518951297483601522246751033897474109864706474482046225918226601267251488721529665617222650843579743270636591753980732844999220305934904902094451796326035830557329911414911523582458751516201611185801218919447030579559371874767147556212780436327809106259202134314405352332930652527821413621781182756623883620579581600288013769809364793134868828186937810247093292478711020679932699788129294535674217766234379883696301000084355454172607581199727452598143830123161747106569498812990422958588643332570619751689969020015597348877105287634126385931124122043296201934147333189750666295162643170672638033530261198390842036378991226498067241930267060707763564548475580954350295029856177361534881421948730647699715352247048362964617631603964345361442275127444084969116581831184062368911732570147733654915425474804122301143410605426629188162239485971187773955331466934773885442137087994453646605461918422758609402429838528714909577329512105502573218517311677156849266583174216808646233636568761541398466595393791043726453869360632318722423941295234243744380934321593004403763500746274534295084094564442658171118203008554038451098938219964963216803015250703838075719726411314598067275600712598556119248721373868525758272876980907016053422878669209634203201801638720198865771311281823117549786867136677613078955404489856237694181707868826406602376905746426294717582049466901588731694883411476332157512393967844536985488937296975912244094036024029903906311133062879060508301556635786710584170185875138788056459975986616613909823258109902664075467856735547519676916764913531925530364288554688907653136715165238493049410979479738337801210545003756511205886994304006609201246494551460522771231886455630052288827552759239094005241327655516180053710293893944012846095023535518311371824241121156434733876944207774687807469334778641979417430511294731501409191725654843471773096161058194851419538860455158258892526474139708371603897806130895129952875019393903459218942582019630134779304002825379632428161814104905486017719883505760605795110819634926232196858511040840737722859445129242989874909113204970704903736417430558349016009744456728278778334522864152391338213612689723088633483313102076400386331692188628802023003006100195531219966571736345081012403108194811399783075256182649804807667001162583360390538199791205388675495495456934991115045200985566612585031878123972373122864850547912111244751154735050832418750995665630152018552315267614755086908292265761421605118432381691644023196767592550832192066249771309108311007462821491914258110800751109967049644194498176797373460491522735614630187735175969488823674780062310195155985090499716876518793737112300121037522545475970101352776207256515418850224546478892266462372109996960286030854653802328881432400355767982455434232332608970290721592375606427491774902620451960825704390313285182050876603098613369987589882434050483475638297287358373847068219547471812715894740750129659329102513946597064459833513098694019168553653941361637040290371091970673829896552017875059770240148462622780271509071788497016537888699210674820239631509364233878487867959705665548360567691241874057756676375662077374887004166649464840493948998725097711781946432288706939279360943083676680883119408468534712383014361532501459690669154502980436700477314422805139087873741473122842577119623614268641873197545836680499003790662819418616983682057051260095081845157110781920032900741226983512874540779347399189173144514499934186436535335837846996926684857094280789548364517302770054160701567489744631987824051993386338165297593750591089092391865208712413694680719380491051745050406645635767659992580101536586827357242571243062839568287279492910981725412769389355175590983044523050962950626374885758773099024074833339405487733876485212950718644544737507601392652907308107864106235663452750211696920036038088654252474374622363368733586714504366893557795882253202686687852698506892132991761144190960492545223229349933633513318998645413334467581708092561826791234447570850404288589684310801898179519047089666869399063892622932176011094466836296707205211619435020935269938028939499830969217700999770144369348777271725153445540143408252938809662850403427635697580331207026940208318649390995235883597077968586180867368776084988940299578663392637924398697448098254494203981512891559535611315816064508356356717473856910256497759948163063681860577917203483248177139727196078218144206420356341661885994912165077455821097030508887457054964557083157680499788752993041826311387433815284264115211602766610153380382433293963441913790097263445010897470905775733660455021500734142508219073141855252767729307977833199951912062006969871936509936398431014203004280475343734752479992601494435953507046392683119311547122872001210878370919938052237077510753805927967667486179890969171810075991388676596694637171315548551283883624087747599138348590186245433740471885255149078207166061189038044547346309170299235623745568846365146570799635402080316760960353562589490273509038528748426643520224130831658235445726552354965419889026996055938382469294579944070678614145205601471379761845928758117107990231487528857095057567962152123929241932300004982274254331493822744176538228976907160015325836776863140523393179043500564253511241912496704264532577360192900309833061365617961410135707124644493229094956873566118146705724814096536950873238926007977856076456335531849428514651527380295486024772185497636484761246938879196821377599674118669266917995040583145365769133108309265109880286929507961216359452442861486514881434317398304957186150437504659407563780274886081507788124744244533207214956573393243486862775157686147156586286478758975322504343117981006397410570611214627710836139373786248431620996216087203626121417965945374231910697138346845487838679963668199133020896332877848372211061612958780219353450564526735026427247616926819241678474066870447707033893946748175282058621603007117456540590774145417918040461774672915181609639001833841114870766866032757380887033782664443637645957429871919244410366029999087590047938467227168009089676925217257243779960946847627491639359642384993699321646867145073946221423187244416287349263013208513098331186030959840714559598519572962901306942407674956909904223996697672516808184114361081831330608678066066799189983715017768769421181138498751586806492842561865283013931158967885536651524056181425689154473168045630591028167556597382580217246550222993426963108883487910343376721546939083091957388017680125840923256091848889955848546088903832997575967214391097713996345391292692634603892342544614577116855329370014923174752982696167430023097127435776986571051843946503373862786354623915252994309844544857515104206002155280256733928432686339736170415875302890874045719737832276222732806157953075073457597297326597638963704137780388688528767182715653553447608341305588966083793897189862845693364889409598539513625514256115027317655106388884976244608641548247336016793183372357172576985389836242499778187182197659225913608683664100213902622194982573900255873733759871197766680483296178629665223705374459444903191236784612327604498584956473472660240903177819866496126403181453746490819379377392411296401706943336075632695714461633103338481428071107092553835498012274212154958752821728592898572024988446138532687808355584194930282622775030144929111669143359828517827428208565171710857237022081623865433719451571857747515202365277599940621685270871498542619108732215383784832053915070111923305178191136065220766812058356972117063059291249283253959157287988388965810209081567756185240353536450531764630697092850581368606831332340582396133827350499836361097673399615312728840060643770751890251275998155929662510267948951503467357808689357679383692874840737729918180777042243439825035322857206963190207856170454236355430636197530308522058477140403369578508011641869880028758555123854031140218837159848793104002091558354812199970084809382136155067013593603394252326606430187104331516620231327352926410864364441368957710910096659326822442910649768046813844496731289741905025017192811012446380165892108816841307964860520630610294080556748201954279519377638047086510761254512348514951290910111463928716643600217224697503139838071014195807813462916052917782804031789539709968691232521891992475096599421370935701190459176849447652238018660833366652330574100244528184156597507232129826874949077023665948242965094718119674551662041248612659430052567502275016094090010363895410549489301787139327490389229910732513456024220265655697610579777230055626903712333790670580092665846449285432135112749885054426213569102782125567075138043146215853043142451906837286494269274238488584113560390312974240804259300726496146013469148580424429931271915045374727591066560646280922468212654747033942348486426276472805351438128226042691224725824334083814838682863778457336813897897642523589295595803849355917411557211130849417421659732522729918284763314621718377266409235701108638950294152725625486937026105585328420400983520951706561502245330047377058607943906137254657112884248190429197883766366509230900961689387401491872164758862769760192665700733635632053524909129231121811935800886288995436664152237409149202761455103726416459863662176176764930377392262332718891461571708183275191030556664113469135034022894450714971352712207264866988111150192757978220074930480359994042439159480373837169988076865295881108428941576058566576201521823071481521782577937879092213554152178356392216816169282631016775368125906536085388217623590150371722553464153608105626768147567636953520330913967166886290218284305103607433019229609096867525641232664806279903111043002049552215427233389201605540060004425123142257760222692068848703185846466553642274813644231813106854458488810668720564379872807827813546668694271862215295384576700900665131111946594138437644200240021510749917287661144948851753331413149563674532651851247368859748095381790431311834713958599851680211019789134115268536492671613448791662588992027640081025348685904752170884056717907494747306507793977300786565880181245086869243458945227313556771438382699726215137911618983694408117683978188233016435297697465094850686112870045109253691051581212798378729494496438350779494922553145750975913205159005189271413475324038565707261744726543404561083037297426753175864984536974445644516865376650898740213462643919476199434198449598518170267013268662761041149972914281521766658080760451843818658589746468314741251276353778126768743430974142785463428423431568706322305034155039431688806019174390684152364588131376536854176147273284887161856023258084192209450411642326593582649849901647880854628090448628210938409743324717469789852348919169833127773234018195715798255936915322459586696960769620361177729481460462602422165467861692675630243439663760717575604251470478185856325282556715414539397297674894671566291101813490921733339445599447853094802022845373784034336433358251376062106137180421297604908957432273875026915801702438909220912286314218871814218663868660469370070457422157679910816247878133046697786344772616194252873111790838834218189119866547579352361835420420458824028508001132466452920843718178114866919046621002870596544911142735106034369235475920755209139798536742976121895186703166919500738632396457097962847648539535566521903477803777741090711693811417201491613599897148215788655770007539765712778429081591861280043415563040296687236757852755301321049253727544555098355219096131243488384430937225350183848303162121214272909678043031478689712344674992797721579938187007297475675756613814953792999336066720669120856671880603994844554917965934430804594915242971648893167744887479436964088332570895955556001975869059503891079330053237210133390255875495293414977052382880397057294234298871521768373649688359721480201479455699369124097492846715315330652852484018920654357462223834934708539687617320337651625700913791294717345861282714890777302642283184579180595279506893906874857300776805525946356250504110971809545230071011695243693775673563917127466310859721223314183513343012602097945674606968740790645142219467283662829405073694326274821468157139908252187068902251550804131593456625781281778921902897043042682539938371790477316028032875305845333567608275024661474802088652523246230444635617918318849924037606112746788118547325513645310879956180903586483267433862148676750377078630768565897482217460007553481570801421278179342005620711478876404680634174839274774649179049935869786516784167683101581558616963618567244891415961131557562014252744942542877990065246765975056525742803240802871280293835578579531457454198764887558379829920569840693148750086208457979883150273945862162057135596405092128088421088796259787669088820779802647713157597993255028239156763458153656287650724020627639061788747463373843844742601929433437709847183850201543526363373355041596491975710624309086880476072572359613196174681406516484685667413971069775443021740570319792928154989948603837990846890090650541713816929606100671660497172782089776528479571178375564171329844257366592127863379491482930402667383911370365971871842725509072039370370349534205765424437204019224751622716084663098871934872710677803105917224929114763664393095362691246892101939620906755481355374478957740669990737270020673118317113659138565268306806313006087369938071300693470932349993161415856495509830916116544735406772337487670016306579057103124220762080639038168431026880581843864834604315995303812682766457493437870689807785037323617901045715682522732612459880160794850024378785891414467761968359164035033206629054810885933152124461410647543737509621067183797521662918524746344883463703677984870669309799599383135328426434150885781623016598890680948198035592431714040199224474855814633042522510391844518804072412667562694975410904017508579919716712508469357040780653266456109602577971487094792979037479030245806656659792028691724654020034676612620345831557589144308276099843580444288810912289592199840355729220505999331419207536575974193203179569820616965268581341167675744888704036263792208300155839956009584555594954877670394301986867251084088476032793027780624760623942859470539032482470042355659098604404623184281504621741258841011314973944895863435479777315533809961531678848933139055342064084001422952198153738694244803544550091797153300673866964069885559576214434470985744316617231805666209113080010101986735233261713240317711293192702168365806525107289129597647422332799036515353489253229833275962471273540256327326804218772331986929256871609347376932981231075015189325008126310620354358009867339107846099279774121508514036991194608187396712363548064829389353503468996634738585650820539991218118132972901072138907105415049657928062739071437891665362772442212202336435976530231576148258777440589188790211859848417585316078941835301778879465575255245316167977581157347192268359606490633823283705274873637556419884726482424844984019137646685221833969385591344211854467720378367418901480399303238086203425647726084961239586971291478543674439044551071911144268983823716592994200520286201205919192199749722241193764552045201789808104309901837019730491883465473413127948330610155646897454545264562613797623243133744753742253593943429678031751164086855724950399372744735103888460317802399136389432792028542378168309322135574783367193619485049756329928435888824465879623608530611400970178869591005212951691520177197067445643960472278717186025812896997357879396476140530237113031860477856372725548412249028552780237872304182819256585887490022308676405644043734627619612954277522627752934558599572493377692629217549750324246235090015921721296658169076537257107322982414555363820531752058892131784346132960455973564985111878626328379242689927389786014884548649337821166773525264511695964891958504880938536694738479441117129185507568342892582301514519571697646508649918636797632743493972529685419592272234181578930124649671524557387095277355791231143022424441467418420808681317239172854192569023338635008143647002164341451460711086958543259196211670272058249736966607837837632621793627878161554804523983975596515545880247398407748338698283989441732136377258326381714175889408325557542392187676674591229983285502844327267437181793395487860177852191785879674534562335750954111013956492770364841117124905861903268762508717797787171836731848413707047855831450666423151318924013538647180222205184934569877068454846234190833101786722031651783137159858197467461130796485224796629515947845169104847205059440783039075051522114646420427029743212650189537136928648574149929291969715547093562392034282290089524386343968474390200373783280768913611847890523073175736805824782234387692901709376727254340190393830536862122721736289282920489233935924714742923782259525612436668534918755803174025820233892330170685285494495013476514144759614855394762484313647755754419929820482627022837932047964580467213562405640296744369160254869338966973412606743121345164048242530376902763092680494672523596378620088756976653594281902332500230741858624417171403978748571610191827311285859801586567500037422133642198718914658813936217615391529185833584425467507330284116431385181148307863069360760389168717105867412423116554618886877783197419164846991826247785335933054433582843131742696035352066074917764746446900444710625121766468632310208906823686791956680427488606312295056860084747714891537117722521565042733124358980623929673405297522306068415881209290492550816819134502354961552208405777465678716900892964883030958365961299271530435738212250653320452813620741822599368156845589270261233445609288174179153453099552829443371208186671564553132367878782006172804236456966621092810070819387285486338506276775336726777616945009036672448826337703535890640096229241275753794221569097407398664078302303166358925252476416237655314773053036866359322468850374305267374482135845708689508994086044665199682368132550522262715785550337248785123998285520882132410613839576086844199147312448431584681797914091148589107500332525832227837427595885182853969250541440253493206062528557405753825732969048123065408402022637548207740904820554860005361393663207601582088300003474842060976239705801612389822709392044433152678106080292732919200309735286489611469985525462611382826509385171003437723004136444402236452640471779222864084997474909838591465023038231944125985733481732675406132908021541324414512327256930093606688548257250754073995870508166927603976653811207671739859346389262340630869591293476027081725559277439082995376928058916544968625765287970690740640950674762792809181795284296481105428256530960079009362380895209249022880467234985181608486605798642120869802560873613658183723972625727758926963218803419650423726189376588115300015557092762176743043188934828730934478349332194904114154960268221924727102359465293365846413502503419540521713638223857296673939736808786926827370342112202019414361658473298296675948726307484168056962645098582664834686385109041918143345868485847314393693290396027947552822704941064999033779365571563519460847351968536636855723412419900659700777119580449597305229382352261815302556352552976773273211734330055075282916462698967515910589963693649426782544160710251836591545820839477066025433898537627136704642626315370442085180176911835350682456223982325196793473039874946502081621049327379095813021784255141657231099933874506778111666593392640373883871375605495286335451166667263875356021161356523812523751732650635338693654112895667170435117846416161281632087877565706050294839315916778423375222331907312223657951908557112740615547717213229772160228762257473100432436278070578572805474807328533082266800626470138265311966066860325993564398852335466044744609899146895785714210921537834456880162035478528272689847728623749815625278719452550465129530985397999136713437516860196161923676438861748015265654990783764901958928015974673826579974719868876613494484219674790759972648581473895560368064963594491094192359780639217559357704996953248817373554189646175173972103022800175540462768493934085625897041475634976662791991026650108556194306894691572150141851204345667911068722107792066150919936402681334024555552430199611902523569185845981103612492549924950528460047248062219200598308251244270594801318601838897275004311089207796453091825003164495495690283675400665444273186382744874519416824607200823863612510713037202773431747457035504131084929116518949577723150178539303236462659833905078230405361819504425905399476867247002675655501658196293640742015691181722825814901585251268307851941982409575757213836494795658732165032670316683493817765249791218850600945045529219856782483227935728021256142008735308607038405738904496053836434001349777149809743600695316428518931186038126688904270050516182525894684216575861206335271484752709781674648689586091337829350009008992474407049411611283820528570410624443528633439293772142301230233483247402784224768845207283591698793331948274524271286906467201233774841862048992364138286118963646961977995687468049200470829181492869143826159564132195473475888132443136258697221104915621061711097484894764666568652903521844703634444991142110237777881963095499057372401776878976857552040643914283401621312017242614371722923052164488982978584232500284185757343224757393046258608862444580742948902365173266871830941137928024113362567197238297705294104693608866783898016905874642480876950141774405711781368088469893299679711697807943214271997575446618673312519249755693579365174278799216291074878236893062017465287426048332762636782176705070274870103938073608502902184014045039151094583366238007106809741092872621350573639008692068964476263403660491117048138819923417075240491998066211160620252673237349051328217973687931400287592497023311355558077546773661439118353102914423254451978389825512418006135321576113492209024081604810503936750683119789874553636901994046148735440450532088793855033379014233449032015992485050786374807827763649322447338321816078081776772085099477041863435142922704151439502957503242581841208988117387798183827583472826035193531979369581938633896254303605674936560052983288764833456382958437873904719709144654259183918101956825152807233634953409129517567519195604504443325328135800205160543203883277189946459888034079845351139354339414920592929102909754557297165797094296330079694476213109143140015156065340097937064331926086010529487486941957432299420600316130477621737140855229851256325857177164501460233228894014159599660843812122844323958322889676884616728355159431749879552579671687620958108610441894430111246671324390321082906565121526873007793289310753026384201704098559025085813930772260908534223240247659857776420275541059853985198317943120712289210717392217222032652210428264714172228974294971230668514235200985586912415014041376050901423509888217395097730075276855836396421144444006867706965301105650387627919194904424903705139858625333006839103228680789829262571817715707253151724320227803120851172953926910424096966179719340093134803880550967290725988547536336734691280232472298985870734402196073240247016763566914466071040425363448240906548340557820303890185963203802995310663042682491710925155901832104594559700483675756514201911309636609912128636845607971273953540433971241310035298246473791019940788170422356196445454185597745856389325800088303753060157628092113487303672012950366922477454329180762666386893286968102870702440719835420442692792838975757141276475174272077798840325411127310780542079253005875285063908439436552975617928634055461352045254389059418252051676967480829005584259323216814746482735142874551116619913103394407009143070138910685223655228035545473722931150717742504340743195949517948164478870632172614939675691997425603805074920209728652001977422342768930053062863372164644505664709123270099204954034589402821928750877368439135035033735629892198000480274813650293704031618288581299585803458995552203688816276451606513884825282912215616967322915256716772008988318722895508618661933348802308421059370565646964189477643324997204278292511085849578726076026741971529952426106145393799337738387368383550222926828744605082541432149952502220768167299043183901838957092734836261636302316241340918245672977163070608674437201942459156288846583015592993126755405638504218759648820521658680417015970512525837396528086563509098501765035337678847136022548171635089333817479772592174105756312280205777001302271996492206635086066645589213004258504891638730550303225426798564676659396900218837095606246584906742373375445219594481534969837896833133428280713482033608279157328396961393337822861708958783778230479565350318765619816592811787845842970266791126616106703473731283126724109971483974651270173042809402286348094094876181773135561421765210518405259531839922949540420546913799149242196309702607076143742033196092083320497480999290824765187623141717377824895756809893483975422994730996548367932064588374161929547886815724913190064015809829495817987588910976499587345717970808727276858603376291772360901222934131491362726993190676267489737805323674949933259819642057685300471624358394385511905930434006655233959449430716786974971872463983879201666632345136116203141115032587073666803203675604634014849917408822299115945264726951874422584560378278623500152424663742277426836347821837405468604630869962808900190647502019093570662753660394271976238263639028426536059984056847046814438904073389715500457834061465761455986516682650719497299676172556620753299507006608863793590140327046870641051307783400191412570072475133366829071194572778665732137224854204731702961418660144455479776321804842202520656285325352053779467243507670263561069787308936696031771124942677892856194684175084421886330879608696611276149183471577862730524293959279908210498618098713083521639326665033009819922281680651650215750658513897533776620586647451619439550763555938064021129894835910257919711765571939737369127392754301193475082220047027804416699584633784130533681703534787441159048972229777338079343427175779892175792047990880577002115956381730363961332838483791236350834398069348428012007891476621242860298709194540512027298229578424117726226440803855334624112933543162219178996362775529327029064963412321548536667765958545315514672154897099083122990933025023993284558446490883751175759968369155661876657464035283269161219123692220858929729713089323520700056581803487763039780961135551194090098428005664733436208449913395684701089616712455444110165773007691039198644522194651947047680596157070311224023529535571454658911524394858699526667489603030162416752928076036473922035157537499827668985290603693923189246868159769218824022797125244316580618278877233848601685082874637895978342157281905091232119422406380189995829462688675393567384695109149062427439218229148946927120712961161576941967651190633442260360959361049795293455637140227292899613988696332478918253017182561807559363719072780898705540375583405698641990160602767861940736827227076822510155751479871529771265047238099078708334826631084942062363951676769464633285943630603240797638611411266570740357569938184978955601844257202005036676655856004789773326947140204131225038150214415518657482670196589802165895531384259999948995057011052555357061089062201810720833227199781406535775424008158058429132581861983786655256041066603008140498099562935017037829971023312642304963497544535447908883674775496463267055539667698062249433757046420595496769489679982886582993669120336075370010016421429081004058048889158286137767858914580608419815911662695547750437022952143434479018127497584931659438989592407232338106335587375408102310039282578248803301590343402468604458031105088291584526557419657017366754854157024651794054840865683600277033817250829911294240721691360203393723600230846102695851156934335944114783147031851906286608697348435036885426175264794124213891500610962847392593911444653232183901471966012473358120428591342621560867339349819924569030874564218315304703018659380345859551800461818057977815070380135838415632592309286418027698034660578514780900542813808836200599728473921705544546897790048986271261642541421474983114388800752151736239332782544298956275965279914117190765578609959465826640288592013253110480925097989165346435932604378051950900977052227177907442004482161451367810163509609560808295694717657679755643343367800430662604040550998538014063549330157079491973265936522304757845458618891945735883460598958766210367440545153304542657626449701117498523056632651628267863217853801639583952556132229817848066315629584037880382532193429430652316751866952839853590289816843063459042904553425234666773483808755488338667937072644808079489035168222277270883592586905126958703451015755516558363296440457544061064629481528884830750892802656922628336970633780415420949189147823321852949490996349898714031866946330971956949474694886435914940115083445472843424216351889153866394593277372496479425840567437664191335624017777565841785539903994994803906247181088300484144983421491018567673432567170921809600247998496092789303309457798116907640936016328228560364456513069321179640890911619804590829043247865230636756652675801843275129496290147103342030603834643073073628317057747737304885547380980947452112480256135976658247743920957342797958602897683515047985345744417367694373944600544636713884155159553187159420001564236639644518586481888758146798925831181563949890996335349008722345709296679028595073963951164884470519785091549433858007436426797327766458889078785658646579098720633269490737646459486306311738252774225379949262077858528829351588085079747500935703853014945341519827866167837039251822216597526249332321698858564346602675842653366121528702699067050327106287474426486769442349926208064853809629251909474890582130223043322350275157003835101012273313445403461876125405521184662708587723041419624301853783496542835228811373147103978211017528243760404046929525810364851025776983862080332387724765485409106567537718342134651471537216285200385078070231609177451159823432824469214446975192289877563743944213732556003116963546662843604896882473729608081883801797324465913305539600466742698526503156320935708998795818128401836748955787765607562165216739313951510478651840776368354314677282180907649820189980419929245315173352016879373147363783197872188904076512879479672754958418311407552097835762935893295887276753123932031791039820784464299198768054010365117296273226981550626899184342491020992270193848295968624769120235509348783916118163022861652494959772170389813680419942457296657892526855532239444731953379401122877778434624686229180052100358114373993034353480839911290468748654277773660763816089176462923191252783646337778283681925203230805384326740090008050023193486814958770710154984913865094092356966380890784374584008791882513066072224268066292695733697590563810577966830766422276292000003696989855935208465168813143833893051540182213141273346011089222395427490437430379044373945000238431241024694342257300036894396493159518580732172083532078747123104758331956099552625727019383110110018784759990769144931944828777345013883327065511373794618222889029708282467219802923501315541233932568234810190827442155914790944860668013991194510990907239768207382168478615535467977612065797134193663805584042759234454549877445186323848681239702898675558961094115163559621515781509085787679382082082456314681652374743936978077742325598947205163276275879779372938275029049539611719691229996122988214671247994351949760155771871465756131654472531787141186139137588107512373947647127771388518239605913366734576079368414220833761680195430079780399405500150412196789744449699949802763402514964216214337812311305229406886437366144202955761725519359793308784209405322234168576588115666527211583096040316324541226170199563282105356972311350512785333261392844528796447106008239650677523864550800737820770239862071708810387514923789669435512409207787384684445876513891876385443175573887846659761143581535225788090091745917102790334739407738102578826113666550427594530791631817906413764015445924919614985225891163097206604963940229093846829592047287061447940536487225033048095176786807559068807610583452752368021620269181218178132522235905327167634009110477327051161921355900239618064270213258998654975057113838006886897084051040089567419318127800054562980867343687319763459391528703330766494301056662337141150326694700752102634374864275720673483085082934785629544414460993052045753197436204517445941717594252440041013592187839428888248451546939758494572328397188491827529750091828795837126787383009203075080354669181438844167426456580158300198163201775569993034985173533064044892837922801906937174695639765536820265057848672200258298035930904966402799111708261289513964160666048737563578686150781455353056631143101054020168960991687512593491430136948962895555853073921057135036911419329882534712033891963597093047403178798628108178431434475933028521034487486530171086602464598818377155093732835640127440984015564629433218489720555246310770227878621831006954091561091853939494156324737427077789656649301353050334207901043870723654013577036747010587232977409381289898832989636696194049346072880786398338630297861146989606958512977953798605750428851836395623896988520820014198936623307834958127355036134627760241178124799907543567517460666102829043113086733497956747451646066527443862455426040122175291112223490671407542731287618982921000927378717491111264365305072142401978117276808147825969071759394360024695098055741422911218650132852127638124759630740900207750785081749032539725996947360560030028599199713560495448915783392254545976657280047462898518852167388620751483661764351607248273038460144962465034102634079201876241646776265940478859469801115318012861996294182123905227819410079281212768446569436683547910863149113118494792025465896431454375419706119577856491126303453017978827174584655472391542035697254144937556406205159033014487347258373086233655345037139408154268462625026434915506417025869083739359791144497743077733785688216130199451321044614915980350437038651021132839347244030950784076102525340610631313832331605030551719471006300901890184799088130360973621553561642981273036472043185504470330874533065893324950932327438295163216778925976638291446029599299901360684246037745446621520761583541758489098581596468071051064955469871526923370603931376871070994790476608581216226235913428630397347123512093414931276849080681049115867207539920527576969160840254556805407244271439381637791435250945946109829408254055825939170574487986577973402781607696725748073169984816196129334811638024434343040669560509685887649220627141771064187425732679454909520012873320905713097406207669153235597796015829699498625478969532787401072751938093975345990977679116119088204734952135681166263372519455282793480870068144463827380559874052224158358576996998187633406516775946910656765968925338420186059881298788807503400257120434996769408241661502500073442148139156395651520559694296373899038323060682338323331897796269213396716833486988995388265344123181576732219825496478998407197072370516318289006751898202468929036916173497940116618307674473424287525320823893764745738546520944887191244696026780366818040798847961456123332536170811019637941991343875225533582481903897029385636839475457529787583337725853091645029317251042131021562960794080009020609797625550183724407332450410511859933034298871781620900691724907116945752728461607851390941125208736284400801791965115719972056934891603433923790131208356584338659422780669028702031024893265451240695733111201524779539725402833160086394955300503464491630187328653169507369541207547731569917840985540460799416919569140179621328565560796030312622379338217868240723398473296711005376305336286259937015936264656175724437733893010492367096782120554953134929107271342136285273131765212901783765271173637754610512791802535149013837162025371082302478416367205523108886834781106288591227711961857329976468021463429424361803500362949476263451190533352686304327149480475695461570908376987691944697696308693451523301827699228440667879162699224672620925449105731339129046092058325333121330187198559170619265160441413083428404888683581086322537220375643291881607053338404070433259460443241318799837265107496309678798288727890101817000691404248392284280733246750638918194459742625939571243138369618567139174373867350632643992747080498415212462550392951948686868017449628052111796322874107133651744604943057616420710925259826521268941099675031808248924210709881045969177827583751374693180346350541017445922157422026863966225554483928264062506659556936417047819224423354183214939700125382063290206525204766927459994688233121552336690504109250991374770621807994623354782547644785867559949410206816877572691873377024019483598126952223889474795183817385231040724225439542265271448715302875494231002073603334450507476937053764990032804681334732724797032618588151019826519072424378325862605812422897649046031222760843583465995812715578603612435194082457726363002718336029871278920375918341788674215008573958156062226064766531559177070428805074823342185478942634400432193334008529791663403590952272336007817447364629586261238816509144713381329557390969834317539431178471216259676573874171383846579006313946344423406753296960251673623622568703497859509083646167031579757428885581349931263006643344841117086230313086212901036653602795974575233769247850117700992835738668662033046784416329748680361380967464617755027191428136045882678624277806301524007289617924636135512476297817692583897747780516156342792395696340566755571881083513654424526920189927316705963950114117927102461657928231102772777182238447795642447359714085409192406401195043021220279233774380370427469558731276689996630006748131829462817020207215410449835854591923205170614653519528043089230538842851575017512816659056173930818007870409516377494195492932312015862340543259840164415247452455333246968979655846588205787838127898740247057330272361366302603917773947827871198216722337773114925820949832805883314725885208145381746860114925571784890594039988794105300753207233931867378856859911478308866391057694791182081929292256982230218974107353575674757772713312131931361093681397108178304195980277520165464531372470487806552448577496409586878964079607601450055834300301582503856718947846785167315783979573680461155926871730446516985438003730257819128079299208239920123094517442461614107168652675520350037126704074665695508006425734164244823563655798378889099911445937607811569611656452417455393044588387892537987941443482655927482711356384386156748081786499306011872651384707722346598528308555673700073628618116414450105238237716852438811668628319514206531266403478943718185046768710602928837669688842866636110069157897283281157463945295084198227347862243534057946673782161236131237813148616297540573718750398544019026075019849459450248708808625588993024771238508285848667268210015154184185027769662463594460487351461471889500697736163839205346243190597867051362878140883105517771329717869112045927024787435836955242692910605735760409896432762017586833500033668526842120464559291668053167764229835000796568159857613249911043708094807547263434600929200909090305369372342086120583287529732633671822026457136578276702784915674286767181637343526209785833709486323356009124880949551259374225711581579868626531967443888686205911836050684297230318335959406432086306001351105582686396703843776338863142411060007688700200466103767032934181252985842938758180739321911500745093243901179677133929636671184663195614612430218199956620564959996572508823229608376355411174546962804860338650742077234778821622977278846285809949422330636651283520779493883660975871907271861656362954969138483033337409352743806092548633256296628806646510701357843071773126542075931401877106947799804499656159571953521195355515861409941499136048769912375487580897120004630207035453888618987066779527106124537709312992200854415044367168244785662209284290704557384941919567698207393604461449938424697856088033272336374314537156390280542647300081631715085077773134635284762130150799913466115485875141564876787279937381259499653596772851136596023017682958972601689721196071741272758238081840378368695707968450110744434136187040908042229006953874050992107376675128642261615322365402811821139988913531978594412009575898025031813100012547960477148282887583538520591165250566471916323999680108559497159180727119098288275639591273592944628620460088040149166072368051770624515566688779740739773603604778140921401585526890614566205605387401243804055513874551542136657244099969750042580174978074313943539160340192002834958431777522923563049261643364941857918852829798493775564528865216469066134388741357741292440180010594333896125516252601139136713042940336782212938312583011490991993008215553908864734154351366423492830012952793741587397398302282414864647236984829779804131510036598525348995818729192043450306369872510869127533364942806840014568463503786435607989702520209661492924382546932355049762786641610353165277970118717723708628367690367976135351288797035440455861500275364557992412732724507957096981152908656041351857381048077224281366910523776855772661432247538831782610669865723354027036207695770650070992124073454806073203245188041535191060065487542456591352650226294041826613628011374943205922042180365089946989778239654665024956532016080190714981597513185810405549865336752612848867110807768712339519571577790999538140106253110035292991332028362667882203865691705744915699111303171312531347651774910320391441215194602098098406909599068917727375364051243595358757418673251375130082040800093222991882837198458357198412234717114403993057625156465065954957495767491812825176123809752458666126883640041591612396711180975871152756362812293023028882514449311774581377573867987674903661016058569226723285588734755009961819904264383834180705571142876388180460208877066155247218153384413803165894968259445038137214476846653283810530914505095319833155286627230332196499722182103409952669518481551579509110504043729762831218188077029559076643652859081251013414189798470313245920837331409946634947098372377968199902432952966744979699344332638298479183594931192590957434614168708513336435445031152108831931078869000379772317673294118151950416071340559173266678026594803339146679984626730114787672381013573168151963214334977091035463813893342656267166108355689105809394233152487916163169737358052560781916350565315344190783580439602251126257525782659493825123796028734221577373909060265053999721038219708163436013483331423260147642951818878068189244241056412269743206655237281509188785082591945550789912841406925916999887144175465100181684785013151571424429252834121379136577632844952828497002288593199685503535590973605203090887640793226501166712243079006634877834154828398300467948116990928501421091082140363909514827343485618009917360710670471338152957542396947179018336957497307636237318324894446287063817722548433073376192469182013897029468776868510440354314844193036444357609333378736014336051655058489352004941027720293446485188629086389655492487938338934994885669413973637527147253703194634544818802169515724778489406821253669111708144819946812794542095906075641360418595187494874607504165982904248071399072704017074008254352621166939045287793634221282831378536029402863043129931007255201373597556363037231858487440302687973518279074182675601665607229102410035458620308244425820265375399070795608404685109626905860368855449626613421807173742307522015409918285942345116164585757470099401016158646719705135477293876578547849562992888007020435909499175334982245997158489097043776725899257155196351216101757151152673866446514199154437793510393153187837739241158770805043963975268280189991689062567557326736153954754926765246356769726838038124423372394625794654395052773064824363578804425161750143736848571065475814453511700760730244831455067441003549245405186032660626101481419334959017063128265557417742238258793958873739701818151715547760180707870168601274881155672150012314022403031405116995649392614123149418915757112621328178863460790372463023494231345563867192618415007899780150561183906525049608951324302332673858482973118701429835491717318442273512045041980664035991442344754570875923275214640581727611419606127103493070793090856202210314730341326206263214233257898693108567064620691396152124877742042076606701241391247960453182204796138710116519526526622569622543369296856289066193312245773294905955026114978369647702724064451437574921888724122036924380054219679363269240592487963816807806399012658868825199595674469983569683348540331400151690595318708349111642969977549706774140921513288505798394714815258710489613079992617480783989152675247567087380556974175114646380403143571077264551990237460123951914068917680249452617540461270063111488450261836558657791439185783658225538001322055480495215917198801522141849745464982459748257241067312614259837355995054967579499597123779077800654994421741299122132801415982360007055495775043467985577300779688064425558411693439570266694676980390166108142154760111855365303651423899749970399825464169450450210735583014120228754947237134111496169381668156648768948932304963036336863452622467326506988761758702724248638158150176338418264875057327460564307285706849450444308499982568454801695578858187653007485838203608976480239387806485855351033932103340911344462657837012445111901080283670666735467991810713771549293192633870756913817403620305444021389080946385446071183330918780380497610956909072109801714047851600740230260220403959281564661928811378261593320520545001438580215293205588606333711724928940185931488956935184450061111152741557220277060433858197146649164724657501513749587105240947472615983043846752908909003025159596276672608062569012156570773711534733268175531606695887421000715053368273374316751377505944601867423261783599139195645080319865820126123024877165501702533466756685260578011174164767494072142125239753418597496569530227462501762859577032599047361681135706479147165758397098365843569354105308913475507036988553150470454657265184125755762011569875815527123811130240160018632527786509217734582694894742409053891633000775146485614934376270185797690325176577864914361964826817594501763174950609522959218838276286924317571565016378240385410854660284136373333663341666510213668079158810551301361373726836111038611806774274902668146331112355930586971278505548742817591072546924676554107841324393797041460847925855477906497799545921393289263993904463773943844329980370694165299407258374982296883148721961232663827755270909883760526719656731398672672584624162055651231764656187424006201372025832567458641421962806479572375377146203988952317370379597319899507400178148347670540242799591084752860101682830009065504008272302064642126635887339170701954207552272333827792655971677216033496411547398446518240331460505571812344926751918651949608559911768606462454407660572790157517739406490988393229162698300511215121808557047280104189627014543033825029477280611314500836873577128113258441296850088069759176276707506624991477594124558160765742684170089129383466825884181137019726100241734390743152162432036415232576391406941330523281318436027549740182662408643903040574819528286390343065588940630063199860760645764607478004707014275038540594909475363905192534448157761921536740585294539178616172696044270518781400268204262815101679642990278119694508823311768821941594221247934588809920363228137765134542558446756952869519633001720806930864086107573999401949431388494887967230887811904763436030806814504323643954299196779966408050690018057598196355128837342842607490091903912660084405638151925576407751133149004637081591364320269225202337831178184048170192800852375422383905117852864497871763523406251428011434526345891941118141805660916445303688995688079420897847938112590596177882149071792521013596131756322569009861989458153022902923459087548830551044203908606568027433483230967949163660567896385671373517977161040772019113100856578898514818377311835894694421799385537956160185981673605488234750569482729146054140322457499888390033827715432956336736726868705014027681844625845400746453864872815920895510859300215529045934635174802921312912658594342083496309050050052817735902126094961613534022803083038205135318456140994346147526338698509260376481353097643656713927948727019199297683521336794029768537671857094745306509089965807547795471356437014499168535953035985426852052583135571052525750943622133533205114540926839443859202962997535652918690834573107016521783652107848281262877339901889314982079214468948368327821055793174320640219756929490581226481004722883439474133980702468865327373754064770603596565157404152732987011063964749545579164997828332443517248310443720418607431757968391831715318087291322942587518729265777145413355071877385043542498965731472619535527364123712472332014773251111021263465330470256699359622217044427294941644044557553568319500494245497955508639052203970566635450874905704299525042755653434042476213846364868647210991616506282897276686953644141509666379300731277023841403300637578448597628815059418851023851496369934561863406171582615646430594458915496599043704727689812073674728540444873731994254844086708529243202479312604080865549171396559949569343702457595904175904762757152213675107685244336969657721025679548384165654478763336095914037722027741673847422681037649025711671042816432935804724868839530143945533478921270684107070931110017293042059179914399426458060479015085660466768895025712376105076111825858610774424282916831929815145353842083480167500000776022021751840904023650390578025875823919216645184025894716306023072019727686574378997181048865643371136234395783754634002088368340472997326985925040857404527770485415368920135859200338210583756711078715380852951997475615642760567829248800791941254168169611619764378025690537882982807885484949286918074239968833928857052997872383410414319959237674791979121386681251149636461736791687064243320199467197793417478460886234292445512561648371351822276584131195868016031487744315086682650135182369765196077424327137627308865019678903084096157000173111415864595790777252683143382297207294312517455999209431414534510101934157580056085534655585310135644622579591408126759779542771179182327898146983883156151562600905949836806347907004365141099108102320137303110429671187667657523560208622928579579097609772347154113843719323412453439680077127240883653056872635102855434758211813003863774637460965747803329270165814508389438069988118871940598906654062610223333570016043561989392724968647943731496624594722112097342304646674933405575137692771200574419516826848245001008717321190964788151758863440455650892968762556062245608575033682424226696269556284279328021963164137975273650340558005720026888298920766400100979859560132912395336462415075203490710917632673784510518279286347787842092645831421628191541433022941053404230628399240405305863579945259456696606017056772140775942534314351759907480150689105644477299049569599302892566053270167898061905572622861139400227502077976692367754037743719727153159314314486995271949894021424704947513751577831581364538940680197600603290700177831387064826999292313464674701615416644622607285347317516556071454888805615061420297986950008986376106644090279109993245310911952702029790881542368423140743919446725685593018228072102404924687347196749614306874215245526610292137701958058981405976176123380860412468926912270861532130464458684769834788096838465004232639935415023849559849002569523877634686560967276391482348828067416684189533676501306684988685689290909403345078138198389379770464718386718348061870544607291788960094481577153830270440869638398097082949190494347897036762742320500870747099965616793333035692272182814949549102801759380637253729053477324356004199469497940346618507356114420464345186877683880290827878420829462747822787788833805803391015382740322636433655912399451853262330603864161158636656416111602836648034274936484669640525768907168813542714039030802813067905126561404977911162767131258979230977576284852906402240329918808848280682141208320218180623261045972044324813040703734337224427059497907811301347671395896384240750957662985425235866087250818695504167324970329277270496904326319127898145455722282946268399515267425785941017541980547733760774156803644443337052633973767856353713071824418664156080382956890457922235984394591874424635312293665894239254913585225289293585740155176719683318605100369441430147567113870491058371077203900431143462992289221890386350648174319149908097607821133554960861464474435579974486003077463635203427230384416274939154413576288072287334067213339231664623214046254739743157424432147491048662588646786610887992998474014829701225841539755959564457358316692894877095921001375902182072216849446374872168666278939591895768157466145913999206343512883376681551776447427637475404880747383736239236746629161437808341003929591310115635514440189570830100227526970010504521256552327184364684876512502416713556692544027277604811685716290094001013877262029430728386103303476401475415638358535690943918234685674776163802043491619544266514282440145318528474484159932078331948224517848163988116120999031258059588293126805534559470378390449009765961570565379289398402575395624270870518251370828486737099248464222743260628717637985112341870949109919415993257161230476048223082084049271288668391286709494262041758134216116216841138602357771662016579700921187711145929879129054887897902033585075580664946289385618225036660649009819817056508673242985492244015915350273272113205708276032368320355664398003642471073805752682703693514695292496099446212197683322662194890775848337255980718275552310348408750981111319494013655113360611517894756404362449375036912965839266307515308012212211014239774031472849359244083537874230519945813265163243888167949108130315988100032677739131388975903099983688165533365412512202201729233706335194741971777938564158286680708639574740214048577874756175683408515800822318807374452129261971670467894319289451224127238894079844914598750853240044796354390913742793891335695683204583635315343211651346587847336488676478692407302768001512707617767968817322901245168969618949622652832570171815472551042459271045299723942638314712171525622691699194373031942829280903828977925487533860793256167961173246047457453464613073756544191523002888067675956225068874527250741768478729189828859621769602505773991111581487016682267967913867061215421186694909631861448483469978119250875908275668032753262039609224448361060286185251341274276768388937692910708465278084848774343200830040278224555285050291076858274377080425276247950875475861949991674278604012472789219568866632386014350862666645264041650097803431534671051235079569211446958381430556443411228180147344998197150006387162449962846111324612431994529175723529573099911714095257300574418997314388917357892093243102510205113349577100925553568217570951193048551375124235281822333477007558415001242246334175158442721976822729759495307560231645342399390128169377045091980535621625040235580542710682711392886561187940052500570814718352050739262551151493343232367581048189162489345681936263591867047863527586174650020829696452760499665821312467590443090402417733700904059939551011508651214829712457019041095442639829407216229265343036453904976925853234527569261754402581490315684370945845308963002141209394815119786745994548097210993885027549175775302240889421972416771011809550775778724681119463515232350534926760689991787418731740375620180762447058613819854412351842458881829274759202381849272966012013422904204012588833627043824564140874809048580366697324393012591506183613924819087845015686069801265180045206187209653863965375620778485751074854193149656332583812279754129253898239755168560399358739629179209872572473536025466796612566787079349700485838209913165712425378987677388043640717282664957915240284781745213703622903096405814618868842617416606713274496574775532939599120598985028297805515806355349962392959422385023547300206475594912921820751468968956016344236528968454626924152539437297774833883272225031279340905578777345852546019684305638732647970807067057442548673811733905781528208188477844740008607253441316376693148982910127083930238063171498369050745651540284376594243857569960863747301890841557243213384990970550567532744956556802486244652254513949579142653123697281587784787691045558406771195476427597583559852457459752947201396447719276124768216271391417789155408298195182005335447790805139367757955515113516150984140178487582234030311438645894796426679451364573814805185752352390116525450910309834471466739310958260964339842644899079592494561307435068737131545193627956330577683175007932398872850506210039137783963189450433309988069076040881553112038674096111007549133368518480868222007195659247709258578168679155727736343947374013161666189396958750950651815889105394815428660120771508407732105045913107939809846241652303079486105786489454603219118221866407225914662207309483867553594322430288261646556906466393020031145060219586384513800150995606475945078711676123169724230620646008363897427064063433323808392517346573826018723034994654364985674400040246523147613385436174390948847396786807365520720548536064972200347212927862439744341262036596797559380185958761285146896149668714078959164895916794321912567180177102311008745121273503378510889125296583947208748271099296634471348352117250770773954473236192296372213011250156099373651813039517514890392180620995598892535689717877533776267186861561034896773637349311966463875082173498841263469890076521232572575293000517971842459833957607008777580863933694564005938958232766136663085099860446813866778985456882399816181076518711252243983898999640208363088815227551970542322233429893917001849408133756485750841158516188588416424218240120486121427369788503699804923752177482421446767856331042522668051896640843697967260532402538851321837401432096163125989298757404110079353198479921801387923681137014337074423642133643513325415327520201269759769176874246510628176472993436939129693121184271093945868860793115831295628363749116882498973524639176368099748960402724966868662682255679063004600011832358886276865001435539363917811529830689392415212711510899922419795785167592328756190771580979322345259715461752966803897159543949272683523924219297038625278497178083471826365277241862195503917126231785969704791832781985123325887787994298310678049502316837828892892109585192619410583466797473839471487322876561058510175111674999485257635279404929420404903551533225637080590860849180867108589637033163338757833292617877716600329431655721198664997612117990431527128349153195835410437054304841397762423998203171687624643841914863325595065587035888310117763790867017113861654968543027169239429333614753095839121237904250406486280024230211584608564042709867168929849192392676074246900524235861381427392966382963452503149868938057233743527116271924199544539800987467932107177689081853419905162079263875943992846212301805553866832305904564386420471149711295773272085869062711074324558101468952469110165636334744975609445380270215460631945246889391078307667597972595033968137954070974205033344850803817403075068607404380225952242661118986455892161655977681957519816897975780976029240783602118262909267072666396230227815499462508888343249899873349532069491603579538007065678414462788795156288389837975902554009630830307907330460109139161664664382003077815814951101541001735618794928203466937201669943751868639461344022169243039052452825514973682938115848854020750350334419712648098747748672664221112998708426696078915341151930912706224471844476854510460125620788765402213818119158213930773364025634428306574822547345938733885134366708856977903184054451940855097173005824823429922900246318587824006110883017432870946981427502257002968641029979221843732852742361179094166182393831073148363063560876920554987472456839763532224152002871363521237756635994449215119303172585563633900047478907119936454128228293397033694575524760977521893852923877930077239733656507822054645623250085203713618103091067429586195120552598979523194565284454092934989845140879905456677307218969966855829048155074001200834027556807578780869476035496466004711472576506654752842024099478035452442219813906844996051013064337563729704279979904484667657446690739555061544065690933831031374271356960122607470724381349731589487437304746282791118702492731624562494103797475345802455828383302518248349045789514186830027482937456209553416443605629675927894288211653987699783112975068661201034957859408594781489668386676425439182244757643868682268758546156977235109462568739883686996024310353823213606010510350315324779243563817507039897939962370887863161929488892236136154664048907184762666050389764195103747319557502447239936401782198668088590827828924191957680088873911484403597819663214684026303211337126173595351306157800205058707560571851221576220878611202308209441668081670320031260002754291264014955695463468223803140261824261956569570876036533907293359836762036810163158328529071972159975260110750279612370603146258654819366836601191348125947004174387150117660366620448328685236856416845031569172885356376344165391196719826319988498007842358645058292600494639156481236101467222963414287352744335486317629809649635930097906970364509904892869491589391996562357398423806625159812820318088451644844534080346297618218003281858441373833625023290238056214999559993442698259412573868017753159246379017330357262660704733909099978077858697955740951348971041815277165615490653235416331511354523018529332508141337804098249833768872239104477004594251366061517782485843451438094828703003049354420469254366831515042457221293723169028752664081821362750738953113249459612699781956065492660212051315515461493281691917795602606206704551249805164921995019110253981074623533041921432138636534714842737776384556540157499281365415929392105448917745199884012179405308694556214399235842629996594228284386590077701329849655911873252049885361710839704896982994431916112221867649195298068482240035023172642174586011880545460947978750971158008386327586407074591812075955197783121126654071310709473781723766830726583353444667776731571266188485743682566248016212709366652277877272124202976349577144090042278123467760684620285950989327935365525435089281323575621977512072134422082141356367317641059514595181803800673514644604940421001045633619698928928041277613187863697294063193425367717709523153154894599215838512709465060854023611310338239179475352008906883508333652487490784198443340980096470922542301647115114155085462844264206107228087066622853594148384967489999136971568653464518562776351874819391311773158747784321590170364958778159884567456630522271903550169062263378230567215580735725572636431166124602626002795492163870002682031427150642116472022725303373745145454877252890402700997292899179853433609527662041909507975131052935624245737659425500217996368147357913419761515262610427271680929168780307640457015549818212575083206063388317294982624703271290571064291772084769350583142523735234169814707542800998182054244743078453042794721350220546166868107196186319994289532286842083530001844018280796932031449771324578163175667655702793519893937048779376181125291809631324950958147663451188484884681266371492137745239038115571109254108857779980742003183263038845787473438337557931887051574088242733728841143284048568011062459951865507943263200745968363235060610415124708258416484984477880245190808765232656270070909029333017057479504907222730424682975324495318021562172692577305541511022497199471456146171476201794563895494870583110284266313025938918348171331738815616673868490738028267827408366936192569373893534698510992462361312188073111021993376504107923912933183700396459156379026897085741539833669631285661709111168471938428196665985984440863672014216321338093652308733139934904832551851641193973284923462975881315015121586660452551424321377303125723767598865076912146350135675191983882846233602979796785789680778744532481220354486518707281083268131762612301929588875377421252325991201228000610209854875606999193540217236547433166254249733553520683957621651956258296463393774309821402342520929215531847147180019089952130150425482572950809037519553897256177832876111197525782270324986933348772967447932696143200697497151202230044152016503294606231098239356366429244005905364216490395997120382347998485074018861394185530136901204163363926176445906753476989782286657798819458395990584418599024165815096246836262533680687743712980289641565473621258981179654872929496575850545485458314568361962827860919614126351632358922093398283360438557734143434997293775415330771680590015788818111091413066412767999026962826949305262657870759542964981308797994678578415483445081624222109285133874721087408939126302663808661735092364406257308857149266642079020743071917478963059433898813117873718842407876150462091406864246914426525092891980084895553979785739537871194502155228677566445224374770904140208839251963350493746957356025104729183633251883199846176358572563900921640966656781218637709094442162254024543834191829845090081183911422345130297109378365830011494833996848887732818961995795961938603751262360267353299952004388860205035809659538615564648002753758720675308038316572226966362528138114969317263359631292390368615556852050878601429236054477925640891039618775117186983254405778113669425523126013168860795567342261564556947623829397154962743609881599715447016638588032311890673784512437585845835140775350395841689890298953387935589709336882202649500992329142249721509821527810171672784083663302131310514539085350382784211248901483898372281626045862719925567473440152347712987298784466249215183371806993181643619225710182899231807665989958333150092753880690220273580184548683254892542746455875119438529589277896617697616528126743032055510050408722921774247754320415596940523946667634006460929545621035936004448853152065685207035608951496860206220535118228809843015774543204532368791108639634210045908161394820647178961824141839322518682567296460850920698769993543737483296888554831570205170792427957712213617743546558493030264101430655967522096079931803066257260999518844289410386762362420553218923129941389602716548342503166084394426948504308849074235329619169956002647943588330931763497908253514324012951047712815819039356503736141630937251169642309419463328542567826674780965018908742569855117795218573385669417122847262202750216245305239105922661697947404243883633334465616314080931872747690030666900791711149853548379985943302145838481783356648461078256262256147904012516667620493195694941359717367145587555523032597023933395151052943955598161739920296548955387585462711454657885488953647896615100064200898675555112520075920353488583462999694129483422432643269535461275678114494185232626869611457680835939473154235906746153003489273429330321376918900162377848900850007430055568787055271883437899854640294672028564881703187761153883337366204914943533807088632523060642171577929659730842076454539886320235409211371911065511815471204923348618974459181364649637977337495310112536086921298670110975718851732765912856492191535206667221422379720293864484816948773022782268877828277440284381904930528756343263609248831318624958038287837059721458470702086956034327845785613632293608173337374679348098552096433663684162634765641913570019260338358970898970774963389750854214186356871843265722218753652849996857810131832446254154558780602025452349727752704127108743713522357774119577553633895482707712048533471811380582709549411450740651758482311195740893730183938516988173666909830108004466799501129778717107809217401439299293322905608036426616250292181372326545648311741814943044432800338392082920531501647386559487841315932637382663861105486169201685566335157573989005765342896198566830525361168353123250287897782415263787003329299742606019356254289364169201830724003858918625683360921531138122873921693473564592735577366282946284343913060820265690059681246214347316026991839172413772359056458749413233778932513560981285167984784018324001413527163901463344995765369620617891903029797084507334905262860172290467063673313804444731375995672949032315839260424261500552613114130672982298680651918954832975798079941562135878269089165190815455271415584795499313404662389686789037844485054995438255593812318658732897680829788680820469529640910247319719520248961851692556721074344123311032679869994246989272428737761245117371627607867325902528739717972482906335020210228690156306596721394328157708682029250940162160225847153924553138865627160935372987874425373949031457402880656985786434116703020169646509640327140569537922660494662230261926681283623246286513260434479753453407209487316596277893619182583136851358334372449307302452259042086886007861983641762413367270486826020049850803193516188205761450254726904677128023468810174710598701883247284488135907494242989737911941821972183735127722814292644485705148817008575294097212163066919444446052805725189891194883862099055096817188319463907744463936796311066904915571105941750872272595518942342371029346019146434542595863500786570735279937012689734428536378798526788009150312501322761592338801883559922155678899830356627340768863876146855927054498391117190060233518994322612342682156289647894141319058651271022099469008299213799944246375212692467308007032427829895348186972196328419161229013559787829475407591887301826960532482540277380923134329950744862631157579382944984034518006792376089518083954038093939090910772988754782115720848584753459461986396110945766509723801503943377594053147954277068810735273023757823544446083812114013671994144853058167459700745384631964518465676181526898890212775552013371489758709573583264887553007885651092502562448537107876914097597714701456374021887504348492834273521467746377604624432447530856322497095803290342538152340761461933393142776293832778779678114677334735925054624387341231434017058986610198961896392436900545636215736867930992248605967160735357106246103231125703650783716370006374618274130306234076344806587613521023360206188459889795977003212482712427469053418045351150321543396672130446966576372130284999596370583149609656679909996573563233221932137751288366672780509586016308286278367666479946269655544657870983351611995672351244099300212005588926512026753600832771228116619407423028966042350270823593527576564024496717417764301922687752802999253195402074327448761075284318450899766988738295030469847279008307549544466838126762993565158340785589654917409036379054185243237039912751679749072742403338905636710526724923238728268379067447535606521653891632424259116364896930845682802305937712766346235754196482534607301864625039565159190867909777765403682705463538834042657883116368400878546368389407401141028504184518216640285989679603751199133551630379418538638213755727503404225494806187481770083119712475118842106913922235677180054268933895916977069049904171717673193066318814969071554532076668032672400934715844572269490492054391514027800451802687196326028049007354728315101145688283281823150613165886215901900705860002519180310899453707849207276460731181075679202467057784253628095149899245962284935989191829025634607543816676718483150604477915419672057439544549873002225121599226743250053510381069749565015939112621171623030814707962315641911073139689824853656646885166527135765844117804074079379940133458760370965482721685905757510102679739172367590755327006620988737322263611153396694940003370160432051111848699674379153767064974684772715840751524715211533060054797531571651667572034226125595798009085121263646002884378931689782203020933746297579984251217840796318696966420049060566610748351140456961786055358161214657479956435055372832265414009128692126130516837118176462441629508785212624232076555796437571386958783725866968592150563414765742768653874694295224410780129468716430909548713925609027224817493890219820450852204565720586342717135146994131493460295211359626981206716570508094099663707810541477449814030767723826869637819149295357421104937755865494635628507308620674626166177285194094842103271303086880098528795518236900417461825358142892690064942147523593947258826743831263181687175164733144904195587729483446057286571664994395769919699401537807663859989899462941865073311911877595681994186186909962945319099721581996655907431152350311654708417360519057412979762245131431537540038950917091267935102262389936490090491560081265953981850387752605390154766647870383640315196643851239824911600048347514371547915950560467602742786615815388012319742601692917972147258680291974751853975448848718790459955615300541134500316567203113322033423252109649762123413963050383983875483578352444418427974852809615534229708408800959111252930728463480945095930842532462697303577759443032650295682290428004452207702804271805792050763318811050217948086536026777200973094443889490129181785328788997768461024110295947492966550303516874596165938089863227652303632559544656916504069941406496067050188991913373874635433576109302384567063098492292370969914541724814740432527018752453757065766603865327461444426510393074641013865392636682843329333428567764347592965986498139897426763434994602628775632711310767124705508152265767818024553119733715304374078903288529072283562242468964656458855797645429076923056464269773763369933812172221682600482913452931231820704731944380762931771432385098579620414118035410081969720050536194773592323347346760288396457068697145211655680912302994190376656582605473722228975889927285259705268744029052489751832695097725174884449631168826440746957893153775054023088967753204515452541215794581525733849375240965732361724779134136591222927133422088332153224211800698564633423343847049050051335425730816363789959268349802130153446806637061289550178206938936478821677687278439480198221112368886137721638646562766358329444532627684309467248137769653807432386533377508506284549698909363584313557212358173946710229572106017709070369565920824151254771424014283181783614707551835882471441745551132418951321971283326828492954286795254036100127963038043176593303719540674590577847965377863275113897659062914698216756536973277414774996797488964523794162508571599500539482647810963983232664107405957169566585998454400170599363553102416012872782963906353053005894452083906505310790937369797573458362822412659670154575551742342144413367365754421900411028240670382650162855214674575241961265262958653529390496057424961985356554189822591603917659218049624540015606808651758278842061043729982907164704431578085917617386974725670216850929362634345275574080997191558412165937836716839242173111693940801233892491119633165964214854089383449136699435069376820397127977452955927134000900744046156271342641323177741220781472599772512455675027657158435020244336323348121832930291179408244204417911228464968309662354418774031962649975048077661813531983112197806130002246718768442811559221117852928463986884106092394761807653733817206695648259701480871538715165087618391606388353556492108366936638200038847613803717023856691728696885464468095017490030124199878865098015986131188633271474525996087317759713670719853565070375283974692644099657158409127390297478604239078314615865971302066302570766811076725930072278177406484616004575436920737175350631760114452313391793281523888558745285474407720727361430457409110672477569881488171915285832563253234346547969795689148234822737391839360912096035528013492031199950174310084416879538736337276036534545702156469319927725800049629302934461262885063990035615378210237262160730183555701491027723132050105932521389631199043966801819621780289218177680604126427007472934804375683199575902618702426459450213349645397726925296372498570788206777714254244982863559399523603697059259753087417184834799208640232016655019312530559547713370173395329914535157970711517507449869429374516714827801847949564637136889584127935209685406774072882031752192382977568121247420722329742591039090572002249724557433803956577893439486073837802848968756873212998834850987884052864869116988101983484421436610707093238554395029572421847800042849809433069850598770973933954880249135458068758232925657693077903365158678440498882075613341383864578633614015540867395385152168566579194702379066259672399656450623313673673901074096126307844279500060148060097332634835771597782824355806837266789872413022982103426971617380142570252839949958899606844754962693085902645407433663344303932248051003271793615429454117563101206548373499404358820359646013427031680257557221571176806876303799446146173934996500845976812049058553846272974954738173880753245018806570636976412801232559518464096591349077831838181205998273966259930768526981198663386841856599546883612845030239792117826931075627235095048100143308638402508093187928617704617305785855386369523535333598448660717984859617822863308442726181949827251515993476690963141433651980915188302145615151104720383774873465937635732473893501758797243785902611813580976895783596474783601140655612204776067135304019291243007114537736418790303311973209428359696398421064313098185704538963247446995128642242875378279482495929060507638250448233510010476660832764677078686910667273121923855947254049339124614131078202778353455142414743936642137177729247848803047776547807622032912619586922845959142426353472064665415755093428818463923660179674042820953961062359845955503873759639380934762516726844280681973088712546475093256103645328676441084894620194131380391774549649224575394743421135089628930389641833759082235212859844398194117720590160946895138838807300589674586553446397469030720783652775632104424024325517645084311330947558291904869509047936832647893876777085925944536958804089714153219130518593924444902223155491106363102503733115283171495802596967474541727692366253363604501004798150024052676903826848177834029494822735297307333282663395840964528646915993843303449405278590582064102465016096350365996628795237687220046252625083077816280061180937414249127509515936862766323394518588985339944757929623198707980182231600655067602578744374626819922863453567654920178328423612624371014417454959819960316636663669094294715038963835126345220203824623233824671194934077888543200641910210163381502880693507939186196892102880360884416730850506010146654606839464565331742426841676009331554605760902434829251049742077862070676472205411822527440263676317925603227988502368303084461818541025915926913988423965847214088933338046367775113394326369418176884113250301825902577640195751276798023997951421816835195674045834979052700022390517145368778016066963131398649521327376651409767610479880383928374647156185810699123388858212517923501631688467078915894261923748347996594445409305093717991984565337754616503218036055943432418945823381489708050057967244941902185771984405909662458152791655936978240163082092267929228461770250078446002203448537697052563422896153957534745998169840723062119612282689304883165442157054859004639793730311884156811523954619026838106281035552370611297669481499113181767946378365566668976615215221539738965572763683597839357546036827485278409351628299794942933005699014945728178715103506164400257401431489828676857413915209410068573839951491609224390893617575147032918021207216079732271566978732655440764216922438726211981768609792477273551542738299362789985400628402213753260061443633315026108640232619643529327839208719614907745905947881334801453619424099993532099671230783215167678603562608936188242514222055353662846030750372677321868004680773473948840708951792885914204212091445763600886094606002199892772005625825482347545242463228389705769068794510503981083354038787372707708024609473011157833052347204836317348050510517311892751081155324021419107766254164661671405817658230670125876284854951815256235513782126594503989298938444031097949085919079325624312717146042683990333152700347479747874124537901624118636254187376190470181673592197028386056703161704820841238236831395827950439788074240601109964276804082250689512016397712434835198239084345725831843713100461640992075638390076502436723281798542168237200773724273943826682975854531044251400913268138815913026898739473204345378550220880737195256788771397049424209113744054207826844581850423175152802739279464966680483810342154827457676063101777558768831724826167983132027098786313423723856123941679308162174767192312180411819494992400784769003932651287088267727538820005761013984180266329610838014562991335433354846822418084289489316082295666472107864539767294524406441735897687760671783554510612883039500443210916569710149751924747723227751137201487870740936959783737220217218014661339785793779387967526005437742392745242778917475103532159969280558819574408905031517915297750930682281959965992619625037832825407365625148676177567209935721440907272765088462780744541697120655662708560811397542675486012532787047608677267976771088325916227454807878934012597699771150954303678388527624088493539978771516555168417770053002266131359102182186498794171515029406396397405981532571036160395697681377916941400757880955022235824032289944042376549987610156208398657704356586394658959890661948849913156813436015015998558405013262208612475927484549723396339868402963056822697311801141167043084666487512563302696976884699334665256242089132178452235173733768939422912586410952910514700452492083703332679212014416991154479222651039681679330515239804419152132765585834608427021937744377268310627635277299933630776057747730239649775521956187802924810732432371601979574437549086938547518333173530904034467427308905664796263818404070244521867978617253325073220370622857348994758558528394406446064813273010582442023570457673263231715021186726390017307658085077590176373691633435253191319554402551517751058752455641140670512810720576962448691923677947448457948382828447365869568740694094301843346437973306894505494997844499356484317611785551089800726070668965221668391444497526864978314232567413738538392941000394343372380105591145566097515824648950186516288650146856587073767646985361266374915070605308517711960233061499043702787579038268446352410039556475982627545876491558387296936809389768611934858185376456803662310067253199726045273827800352473716678955768251894569223994570686831117791302744511945378461089616184764845265454440615088397491730834590126312090333649915178143792842646539564612956542294629788516920237275379630389695162235203125591482627748050552271610229929697713443174642570088765264372739036871812622690126255340779906751463658007273587487437492078253528783147135234598787783990863854063164496455551320888386865672645407670540241841952692120038640249525572300144953078058312043347707878303208333090697733854090357319837145571570703606063974030727992624244492509316276023392238552861663890802629105880079102916082377375111700440442398206242499846083031739307734541697707640029937908285176215436222268955926229692417288311813629824622052905962922694063394415428577979184322434110567559192683124406651104954159287542975661008379791625394304341596410234650454287961374478510025934242038409055227028361258744674500299794933422507197998382701172961411025998355236660432073217675735140931681230444955805439956034224706773850429190136302754673886351460859728286725151458859101734173915952006203131232554757278256745432902833270520252392141017757986125365467532888413663149101181535228379973239062224746486940330903238265923996700142399481442683651387916193451987704562652284725768464562289249300906060277885923047073614064305148387112895669785759117757290334466185395262292279548642725998173673493976418720355494642616611818216335475366938642669140391171643543241269834423140936280208316559621313558298670307003326326459604692280527722465831255488894335713506734400371103293791478263882875073837373108443795321448380189090736501421129533420320078755879197800158922113688606816837237827820102222072250620665057681862134175096781580477443678391430104958832845688164932072204477035547594420147169688926613297850985578003124225337009940159942186811759052999387362801316310992434465320826982712475924193904818353916190541934303370697489110233373468167098152943757802074566087622184259749349389102807621504716227398538176029382193279268545723679720119302025682887342818327575865355784623911604373309012901303965970311682640013804143743937999797850517041913448425596030083077325004009654445813591529623750241164959738615694740546710435235550124227888838300529018193403701022439185641241499140366452263326342509321641125369253639801744681669921053216008335919132841011663734460229479335924145983993943307841438814647323984552682655030627183279576213891860080900881160273073116035161317381696063416641754901190318631837364229730856891902433888830007610045710455482596491796788969827378975207349156355509748911674989195344721571733055458755738767219333117503075613395134253748336639244438763717561923403882432166342210060048423885442801189508712822973085021739672214969778540391299634870489848187828477876284540687065556737379275760256221730440230248218248136463222605314771279139732350397912884906565256658668214371447535950086409692664807805068706666494983503062465578166002216310830215433611370292906312274115854877412687470503660474050355108155274551919612164194436432952729256611009378962274929578937086214968607617746203085806142133598839339320560693199214180032208130224930757509011657736497689222866721650394360732056323634617076203643892153812216383347685178023280322050557174365441561259888601747002441736149473780883754704950518078582982176584357504754773436214903063472560333975105000746789343345456642444020903756042985963672740625974441829678002166009851882784951730160543658568476884145214180037742536177502539283170944640939061805785218481315509955860730719681256485109983031234016079855442605873148603959235653393950561685158518574596166192764310161404326262392817294536039050311999956699736797785545233630643246303384142341090629206688831957362277355708559911391744159909521241988011701169608867153239982596279127695466607045554802156450617814730187725865029691456497332395719330546827649204850526107894168949712324873460073684870607854906077495278186698263383583590553496004248133778724585589298753522525992261822737223160770136047022156764326057311663208509970377367629216320541557792406139826317855465312860325915074919825581583480998583199095722422934716326589204055926715695481181638941339859375743684329419143109656473732737374315395065096550667909281729467936686168621828140230580855005095993563099228284097529121485550297012346584371958130733436359991440658034928034661463532467014365020497814205618517966404307949984682593177674472547604807905479683056312745421646211154641374369513020409740874006224055565135996733946691408973178454586851001689754434703357319283453105524630064094155128128290559486270702785073031855909919260254932694789416880267420469754077723984614414170336757625439409786184717268180741671196814971312824693212947390235824102488932068389832107078725155321327678880376481611807120020645440478634030645039562183611177890480397761359022979511889994461665885604325716335653494873956744042320386805047733803076826665414523740098594049165712356737019719203975631039145093564088107912941443783485609864303088763064828884236500871010737864580201592245421794792977825656210272289869587208439256220723606540291496461045458620345552082399506613176878224171349828576014007990642813703244846697023095546031805031882620971109241100360845844973479711642088450684154796588360701643964666279085084195847913190501995223327639760977934674498146193395369089479687822243422463710254182730615703783822577821951167892608074479170995998076227751293833666776365752242621359107936517117825174882415130758610643251521671305139088181321154948743640342599904628476956358352115668163069821816887391515091653201268664284079751483473012760720045671073001337228764619552916914210472446093254901831406563738361437518648203012961906342061476301379391957434047870715235700841290053557233532275373728140055563534579583317940016614487190785724866605628061010568159965209775966118949504330816069922733597467783703817091136781795406462652332740365419808468048107487209569717404593228790451927338421891460786093538505608914018810588385470481795740458292557201254148560282933970574616803928164229468905991829840009343781218196223452383144121108021985605898366713862741901127369795494808704697507299979173972399360572553952309316556771903348660349072714032509752194729977887468883818812636267197083922957779741341433913759626540954839824841355091310886906449388952812010082244412172161922316601617415501533688846617404291450005302706652256420895263135257189578747135801398438053386719565325259804521828606844434523364132618633989671789343658939127269590538801048403392891179362583255009262143509222376402989798169682717383342103180389630510215210884997698829447195456271619908852835179162713820654499640897829298794812532703211752875404142908000891984804064467887567730865273345134999533259460384183664502605015585842700620058211126103438036058353439097738367946653335352189008310507131649135802288236714173814772013294481867854356632635205456192818033118816437133846228833163795630490718895357843024524191636398288573942386892601424506557475163263132281511114451219746626156859092075806680958960899855207523138925273533222205267779732390619209734595467757779103059447020056959622203377209112581158495344236699239213500224120515810656681165269084921415996667814057061205370102602930284210379456543556929457435856889831931483389226841175014611594998495905076982853937135043029447303854098401750768926702081656234768557382008025442950562069621573980689357835063448588427667365878029172921976902175787407053020121760122637727080691385699487421475836657673725671403773980375523418987952636725541771314069851937763725251881051320935133136813613152187448088364397988710998409547085098780571339935915410286632872463539743549696317279071326967587288615495538019061953553799615685342462236786914509508095492188016013484188112105101003785547383628822903004944772060544309931574955440647722819884931973797295749407513016118382822480021243690495334881255779851787019875168157875199863541111062419331399440782953988476018120439826405121026599919122402685207180397715705693204753090518448442494087840438418834751434485838259884927904045742661451092685126794422534649459775311924862624717158223484420886417016491752463200275275209935394915226597139554625862848971538427305547077688392853456801514606884470877446606945927377047842893290893248829516762002111423349217843787314085203412370288340385484603024239889027373163382427921509509319899362572461530259651043350735673506531713721674947506401417931181962286429178012101813119553013757224648032618295004017027855847318983743008042846968781321415003874945805103201197107300213142370318527240772778719489834689530856941864179733508705069652409882100885891583529631728714234309494840200830557402400055197396969809690596610633574231353639213410294892727139325370905149473091051149506283047944942664294169661691465171720216405504572986690230213489967523832500093038468538362456491658874319746917282253902779129190659486516295354259105840398673363832596592197348237973458875419640756835749495434425443160121615867715493484462679810355406838331663623227551842316592544868350779708909834404724056183952708668971821852898917354194496344215312161853807325227386088163239159834191353023067344320514113882097836752963664634522614658662077086474519360891892286686357390245571107102066560077502405137247195926209561565359055998162931205764471406170913168229083077029172813540417411737175426540839922681564898566529556371849820457234057902479876877321336918382311179233275343272416283791545531357199851189374031062714986429111050523131000154602963642358932016456880271575691000308804350583393877023182605192298818748666748192370387797863782370971487307332588467828380868365407829193414224202231949017727272912194866725990157116413084649160572842008184879793324385595716060124484955806934375421047222295400783712833798923896146042893634014624742137356268607854634444522857016068315250152399870572223463606098086610532279976444220183107876970133441915568449077689222364753288670293462468574050694010385469002345580848476479585467214233475203500177274741695424155365846565423360299957820756229426203450634561594800523589835943755046093376639483441057434939758708507795549523470662931108601119540297332194467819779475866924763402489062414532374806814052574673109237200292330404438126812174315216482722607355033781043803680905987409344920902445346585704180932041653283282390982953750292703415241367457937962189298743688034746783866648038049370836046324428006227289454605455299015155552859659851873932628975023439188109248706841547675422165684866138369146173434415844396648879773325044915936026149972616764308665691141147523646462855387165473484411045546428672721051201193778398365328936447769639369166687136093798684457598101085664798356792157740923986276381441957776802124104256264748514393521182436514878140995594207490156412350494447845956953570256497821682595818329991913200285867545925033761984810579471406338431608562568044891062190554300497456949091188849914294653938770135787388471778850181076644269974964945816246139932336559851188164182956106505215462319735310697839144447264453604918073520213351612681691527554197417756788401059474592726595013722073526722755881947519462014523232466359272994046453421391365982327808899003468236710720685478693456168892352472395908373603146838813533328048996278606851936017461922344407714374414736165579749653294342716307896320665656948438878955406951782590961940860123233347572492185785304807412692181299096402206129145700291473034288848413960224446019250448202043581421920493160951630803429837606147525486478555518265897080914819847384638552004666275743206453320927660122537800796336474278254301271556565320699763141843310837709129863689313527383816973452000548788326436165867114913192448037536895957259615793475610220051025697277903588885081353741972867329714460781991880374034813987311671049531579677180004950392093336150408117519377780646110417154983837806069460661234213802999480528359020070710374671215840267894592360484188547352722644820909305724966439024929291213662580971682731458264061562898856573910264045369494078880489651754227846235321637894596989386927623836274547423187131831362373780609766384210909199877760970789250615949630906181947891781086714766525055214321029696790593326831091438712875100402501946087902423291843407250958118390342981086675420418624952229876276259863764547379795875427109921720612149402032160637530213761638021227364932466654409641605631822029915455319141204367670198625907153302934725021017825348036455540290866680192733724000425047741326018112737858135105339764399463563731144909908937823217069621475115546947210951959167021362549695107878713697570623618937723066137348780086879830928649843189918871025529339262764156220756863679517298216489025404804636832036809359690147237713069042963314053986561436865669852390680905067522067677814470503766305037616562671858972675087647080378240907473258322747428445520779632558861239477404590694129794686688835882453872625768037066789388078445837406990175659754616383732483622467306930873131018701921625986930861979292360344861050970968908483479321995612932831014159256368471842590771460362516423834865204016827795500533130570726325660159604598718795909883992214553675622280214015300483368723897672791085382122317771644258907010998950526024449301099184999802210960529166084477315315884739543239070760402269266333285809170386576421779131452527264137778336017612981927696867247373374170052119219143679177738570390653154000917643149216188741687036470635137855345220545130896873678779924528924601001789301193036412781116240590531260898956602801953612950364079752229715389387161138222467651687026231623006833851033007387574268475050724066143413979475319415561780675388264697258391859471260742272899226892091218576996059617019332761718337856593055483275709657986948623276606507738396195330844629417681666761677214852345446395343962538073243999377611619623071615153476178498026040867051725412351445687944785587790944282701740931098154045688894215231898615239701595411811555298316254107816127313406472497006825076129400267303777269244319070727714978084239013350850312876537411952533516598056774959275460637685904673705367127053497070478840088867777509608937501096329997287525561840088912952588621792670027165456984056669274800020622522811874365921854776320092944773700851464132099571902572978259922236552765573833120182097968346456837097779271893760712904223336922391132660343882457289772950835493448192717217058244676935547876665526562610530294707403614349571891298857385129093687458596970649749879765906018599728583580572111802861080203924171385654184146579451680942491598349437672050535724563972254004433104601576911455337586574372929560324295743013221354786015031084825799261071461711031115131196036756739210104572882292475121095599349776670420381208893529075803529300816315731042083453414555402810593500177557046182752058030114563622053404937534839224226448035137429309100546877134355939651100870296845987246849233128093916666261102365328037597336061688501277841884238618522468195394456684388469057326332263084795376462124709758316443400384295681979384280685843819484019878448605044591428560243636990162357768424286159201098263216382385064548506756334536756235558886663956444336573923765403002417715205126580346660011173307339460090730208130569313372085038759963156353368674033638771690827819548003469407235766513187843730061788941025744721832745729045906231188015460621080339896689848989983675857109870169795650933168119983788904608602868479848963655112535370660916663629233313692941963396900973792774782228459188656592270375960583056853288607974758803394970329985481459063717060057124207149464413587985960726428946840477948416946321225357546986273060863956829517912418175708403988362576659438857612799889790582223142437496481169152347645595457604628129895860401976695969141870759625862538720988556090600701998024170992399267796254570307915725911545103901234205350275422754642920855875340766710254050624274613365904783836347324919810852079228802430307061865193174023364908530002053824369928341438952870570096681029437824472715934907115261418434744186413432582537874277894364131259390429482801178597299182640306583521184546758830634048756796240804717296902209523269170064029542838451129286598030265204041728786813389306815139196351214183829087769769103916336280963495757709646178339942681788878551745297999873233181130352549236497445530448298280995888117635968319943271789374179108624448015660887651244707948052893362149424349789443249595958988345489425715871234898655482902551766083002635216185645909417751890833177188815967272771064256776986515580912842796264611170516513513967743862114126482447678995865931592974182800047480804311970734370525036013948386731133945993183856758735725810500685625689004606763001136523004759920474004817528911078230754640437773631919773302322537026159753472848874028305285509892135156480577276363316751127691676247409368311767758203113842128877693160166410707315572907772447892063082025050011922999567021388679991110104684990876118817719471796064657262197139861977574363502956840386329023470082183369917750387738058998765474733904758166517823982043462323746051914184593997700412240399049389369528732644323182989954043214550881395841521513925895254779508697733658467801829825308819742160987242759181272434948477237698515496111891072216723419444886546346788594097907105055412649035331171163252156773356384270532240421217624502113657023846380304838752570685939633298423861599134557180073533903589971449975665745497297295064869576512504847981648941434757931959864541710249160349837368726160800416823105911833382469613623356374458642281282002301876865829831641783556562870794152806752822219306850175648160878246107921909853758757738676163384002064211755922598971305700446076750910262895115216760282083763476532875957214305357690922742230413868612339105441151769573164036030020044973877908189199413033637796362419984784582286020662598617020539114084394336997348750593802711362430237752972954804231016690015888711674588224012287190557798285024997611270093149260836704263735873850694439997752007833271629871315401311261245148742311149192322606713408663123904688672029042861176194565661651107154712645089914164746756283292158787686063844669334758940771320755087383803749032934901779359070329737658654452770822413080555564889690770594068589246552767018986145455854469707584394313821272237302368646976534135696931471817025030735887251669253312841619170685289235505340311457524230031958977148078970848277346097788347309226817936125759909385544290440476180796935588593834962795895125058514233906221567801653551951583400676116623407500809354250172585108932926356137623205691299690290651771731379174603225223347344543105633147511770000365256862070400871163126385717259344194907722826557649680031519327198312243696588669846459849007122673672866759986234980803306559827529266519467258753899608656010082353393349218789965176348047161146783458531511349291221635411340884891107088630088095028860524417037309772226672800442884661649272564088166699763422179240049621276583430305868754880756606563835223375155522912523549652003721318276770027484271596893586559715314166849981453276776460851882187489247767312590140057607223322996404751089236691320955167983352676700299642884036923811671935493772570568064183621718088051547932658264223350532433895520938073096845587904068681551481529578361095743511091180953861244747566855139868963875607139996522658840400446602679413128795311740370905809259134385397172146986457631239272897161294571083718509660692621467151063847455666104617818012080673335615119743927465883902124932963353296238449072003241828197039914880701612540596696100661257664712036840521505755605830108411527057189304864285034379902219171224177883901995168504013183286830427271572163531377986864650692163679503016848549507954892266575407826171662409772513953676152735816850829005422389423186684327368397126928884191190867619050493014753013068095136394572744608604418182916095667507165894589275558469629530787587449996819517072827449760256409536708789568526477866358667062179597163165691717555517733853479941641623938081368152976308016445047304334302588036032040449619767931015854554804924943379115961931338981179542975593957037509349375579826290879526962609501792458608503843827108691829212374825072039082256940724549898269913298691857790448042517453195897427815347711608866162379295586263165368261443397372442755342767279577114747712738780022054519803406612185046535768245505448217585655376105163024795934391935771768786298138794016076102462870540399443983511301658651746634462843298234159037581300517433364082840632938496133814335851589656404268883628483130835918538096517495569914144426247066409745160397809671685137099291197258161586336237287598461342940460386923552829337408108018040701929126532633286357949761756381867177136945971933358004487095633499624326835303595073639178044897861338170114438783759992828832993604060336614755613032809797510549793758262770188377857868171609881267659767701572546768228014881442267167227300973317330796358352361620748144784862225191848192981570196624403817748329642691210471728390147233789960881506031530440016363608866305566917568893441443758935800375525895489551559509247231243919750025518272720230797906202633811396505096718518879868274395786290639381320486188006871471475681023618868314387517617607849831145268427544582771053217554914881403611648943586936570204748761254090081159221453450027473821568919065169786045173575761579581245817047940350470130704241212272991575326199098346748155298355022677143406483494180168114232079221152850118336156436654590249860739826046187673705735965896620451309669292063760732541531147336299706315236449750406036752428785848089610049928878847468801221142306881292123162010435919802121326692825709631255880115010424443756316380402883127938326036615936270040590202932865391631342646973789105964607059982597869067676776402301971253133677323389521074197079182494376562987543255929082622534693220632754902712466031325855673698416810313846834457271517583081642946127504060833712163317744770390281221205430470482195627756127886510568309670020558595573016395130459448541758707740201430181640078378669413212509630410216843424884955741290871232917820541486813934042777425301278784091435883101050069939408392277489751425308166043579581344877167557564680177089143493601470015392487445455960187707064549131623461948603031193924927350368479563457960783767702226466058945088602169139163424937623166107323723749215186698321035357894189854944337507552882819681456695014660113256869118223589239252731468700005808038791988596684575053558724526738106104784822566994854395663341660029454014618268567177648123259741926374600866605846802408848967106383820352778567881769475759867624582657151474243690004719709021585045445152892062814099397696587928682758658995085721541365520665233421340768916067301283184479117944405873025452472273126017188439411093540433519130204002734105094442398209170274319098996014270421301404014385358941100525064896930075204359620543256276949876513344477891963932206200242599577983569841599670364227604348507492242409424810501295574836555714913529795973746899303008244786741773050929870385375380854206935488880886449172414371850003674832918995308098560361762634455459319309805580494543893112926559068481703753943955761483763811882740860288930969390654948500961294809029982653275175332802229202920794687746894417604687753062317316845699560515605633302267735445719980631923297727552037152222771689489970853248359305567746331493176133558788627858526327427328765735606252302748508079882936179995975544192226995384735829720130145099257098821525221454054694994408853304159250149557409586068421247487749277316920095177154522403655201306676560899520601548331141219718569281202746352937466846291362823690118722365989193772601878718708660018046710798765035370809927760276890331473088744125693660786710159742994246354732370098033028401656438277956023613279058836739405958599020225695111341846525139181232190799582357823681104924673502999306693760267393643406862285559566571630919701663249142257709884320138494468269312044921754556257356080204423603975994688400937701588042572427908146546896465713684724551784980422802234836358978422804891993138941733791326246357490460175885965454098673347093213569079870797488958309372068510357530302989966459239394408426590120898235718425984315535751103780933303042429792142043629810069430852377800520786009548498331064842168865162600481830228697900868022969851232854529988430449064466903081408082073610150941576101231513025951162825633493127557673235550458863670529979532171600951121221329671601725939673438820313886999301989719009607706550046994879131562046198061787439821285533371211813852287439197895086167675861668749800038399575882867298962325685730378007162484856310886091049900841315267300830116353432240377864933999275545857574200144152570285886439328142808252380427497931281851962740730070279728030443398180687387551219859549499099621665827881821825710316404272030439995433761168297448863127473599180636302432653498123951148640614335943628397799272285296293652950762992237317378330845531392379667993533549051332108233380369686092375324136381873017767072280169947048951391796090700116166597829301670563338506174654949854073824192971999142996653493155981019376845281931099029854334829405817295879175671261714962796929590155635872935814785110349215477423703568664042416465635147229323938754074692882965718623275741918435636065046968662581500990655934054472669433268577976715418949884495109012278820228118697773312219108095747920686037476840478212865613504905652749844123581940561331093295884442149436071503799427105762714212233385305793138831940557895558577024841402812713350433675180629879934275155459313002992453684793619445847687569564560045260457435794766871563908084233085106067319059265663178712080165771929191296117742900619349052074463947229416702015259010473432020873308692694938237521370173822357805809075632991160412714080646614115575759683726831160724305176702430744870222890632051734047740657570325779534409073757478123860673833546349595216010761128623836460261462679257947534906561413299747151694528307209127818588829185910283606518317678385885192998242649576472033069372277719999587935931762655918657604369939873965232830116644545254998550321850358350181597457887475024002108076565453976854058776897062646347150540014473118934962922188771726025267504586236547613929039384015019898258602615975810434393421705914203948383858497364740551904685499856394780893561138353132777250787391113201217791182327582291673668249629123958697883393515695789570936410415941020968199563733589665477172515354774879251784551770326488994913262019676507820848187511872413129464461125550922311443696570930407165873480450711134750703025997716422502462552674464037377503037624220308406025063684287520752040829620908999811365738810465333033429956073805311694723728420518793001416798700226174227853134481880125900269577111201638967188940530463608942483710556965796147575736367272183287173373867370403372518093803722107001301321161943367373973827805019986285292897002012742554659352741099860575769838265257793838356717214768711575260190854378124485870649153168039689357286307609541944792015881904417246520698310183450125108211317776524860087287059717460733358486727601176556111049055926211309903119482731736555800243900078483830118355395641086116698432645232032344017890690930837447628232243944381392488405663106333462031987750680064805881411600759563888167259067955211659982689263525607440901810658816753368571206727413940205493585114464095682078047018061655122172989894692494765452037948749953519442148188777430804054003230657784831719944136190584238278369565939260551285702460464231889184606387539250427428432715151743499571256283658096669696982727606864010538348083615879681496595024601802822521422703971819158881850772106367166801344007865917434563861131498815654630317145076519771404777444987091722887382426710577569703911770201643415054599992318282673806057535491349893052851086147306529925341847328487310764785090598939303941667101580734113513956414330547959977157870937549849184171853599421110435171432329711781185323186719514844530323301022049149916377788334707708896047179768560154118024853736934364696407724731600977568144209234804015061524433727332441187623960091832840119138021933043841998036794706475270697228057275013554103991349962084755377883005201127368089914129874173592029319136867534662410480251100569044427809065800192247292063262239343057378275617292277599921576213314057066520356538148852396502745536605866238101044950496303739395427966717418672459477650047552338295674748163727769627699614368727195541200436682602472478358599735061154260364338636891734249182059860259598051810820053001215853317100388990226189415269481794937838920608580950202340735583950409924555623151127886813041847841332819500012771666439496755855676214294946414545716137451918092875942380539607944554168348629798074227424477449469427295315425555666292630786849440979893973274492279132742924374901784993963110027607428916183348655055029742023212662696248692974903704064185507638220445780959343476186506237206312185840579045933702332244386002773947013930534571432841463216243733002319380069918994001711750469454448070521591692689106328992214227063749043861280427398599522960508044646063389506982491712129901777057423282942415430443613656018649735978219512876347743291095871114224175360749689294637207688862240992979575304808560700076821494107641807215545431120354611233368567566726440432526539117327544299942816032655646469339864120733853020582900992185217030363709118665887065448494683672745264920066290197897626653013048737717104314046666634204496608588995605488565632323191589197652109963664749843070758026444270395693966735759108815838881683641619786073906317559677755736658919015491580450887224713278442431905044374217990128980674224499476241999624815908400130504176496735481467931099135036917584997442287015211656145949627400607401423373527836311199013167643731660227820746627969867739203567031011063205435318912291277526651459550923330205844709012980278403237187412683905735663613682813269711813888462423531447680224825609499113598978932828958064104322636810458385456251115460972568084165807627380879384061469274306042054745880129177841939798987268811144804064314207963094577417680189332645784661201231224184336454433923079690134073946997536932886293337794383340188714028618429768594841748788458684636410829893173183308299590324058891744373948181674769762491232003060266420334364931401414243090841294600662732746858565809653439505383263118885559101961600557326748763863595084465645167891311435883442414400877434699258974043802144096979891415926171374669773502429089884508254103982417263266899032343676028545100960511603462794233031269795070682403496909328314282091204603565311287062575212829927811323553831799468365407007340136068220548776182772071997924839394655023500807316717329006386610620117198625055088660971203801539469112608187057968908468816571598612993461822604815154519448073816797855765091343524074687153588839398703112536599956810775767375033375396862430362005205431157782617399167020242706535355818679748846964048320268671739695237592168716711097272873993829915754349236882220647626421343410666579199508068312606779840171027449499596501184279259244054919700436460677188404237952794160568555677000751722810508015722607938230955295852786285850077975746576914580054166357226100041201438611034572647725748417510689494034822539812636902768379633557909803592476048420308843703327493298617931708446730963565317790862667653586327446801314459819519181703475041288460373694141184661451514491512295408442331362759796178942821452027729051593832442135475676517761342403888889499458106204193235981260854282429482218239429135623228347543680992080993878115400911333591007333646900741536222823122109872360163679650687276337984453638756791206510750430199921779198905295907928644865067834734489673949885391666929833135067488969627310141650021440093968961146131708318663575916059751583735863758159032580449154771169021764735490308743286461532817335313839344540539260298333637980699775863805758776022954306419327111255108693377876755859827799702086062055311191240552266897593801422389980933170480648872061824948515273907866349167804999896761621495058572522377063504659585879986593594974305624110975402427449954393870878190616805779730623683096175425170439328753237519126545430997796053218047213480383901528571748022349561590956025089078350682857373773863505665085322544356314930954898919072324846130131156706026072199378791838619571613554533382537983376261936755439045430453840793871664630438646269510844792010908243928746332506846585572755105498740682276500957536705155656653431992051118652419284937068049661392848060508994179675226641816623742219966893308087034277022393993908918717344307378014090868638763589835994846247096992747535024771646955139494512002126509704297300165581533248515605528892643950373892947764877155241774060908799239933172370690984512473544925903683544866505806293028512799176805548130187769162866745697667562475924174156380945598760774573231222507874568867236495200659812935334775610065537806420014630033099906954853474284583687570594537883464001378901191103049736330888077193669002404266271183485082796323170865224396901067181863296073137834339872715943074253203395444136428413903269581768240138818466948143868997090573277928563637436248736880105537248514565462945477505159117798148547862312342065442168717269005767321270514651099642997685841218120022438068139439168245250894732904918903759427548229065619796535451176857055828461981136043414615113174349465124102646330902084600684663471014734621290623472775842029279087308134885489720707869890963931538471723459200907665690520624849624887370328596126023357453666066234368840247329552550290952050890616838031250992027274079776172809224610934562480655091959566459935776214139372476356277559768438991831360922626517967471538229125189631603029991740701707797477597597304084392427587023876854167112493451303075701316901331365680641161251429490944464901186854238723641071266043381450955022812810209713805861796209348024827979747301026191689604642066895737075596997051118216383038245014939181334741520972330332801096271468034089077569984165173995764370399168791810720736922363385176839573860658575520639939532862386696458003318039610797858408886933802472366672583486790391696161822392768865500669665831926756043359987523057715591721241073329608810818316390811612640691853562405434158742541948885753668003503578792054179326833867957683753414141501724193845707612792146424403260857061741066867566996422841112862056812226170567135695160813527642601430967189325133932058486743407101326331102178454192225596809952483914638258716286389134897138322622345470616376328591569764419456796100207721889017118534937363810531608511525081273952131472844777176017447242606969119775686983067827255562935140492573393501888072583986414991243284077427688966270787194922442225619036633454970061446242144379721972942300917120315098733755423357445641643486937991659771943748102735419448842004669422782963157162061749420993909232676279828166894445634389954467916219676045402656665675138273386261263738032787872790460030504057420563242703916186817382042442914968220384187237720248514357604528812058339109280158122960088150630399297883819625981234746015360665379066005914236713237157748741947097556941783867633295055859128730242622564956188482571657200150715494521670164018800504932501049241253494792600318668628258696096492061100344477089277876442818231648054593346125683920605335978577212926142000916794328128426718856486491544247819581138082835636435922788628251483538481106157730040241921966208615943367698713565897694848667142593153837781854839482823649287269346441878926723741587527091218179798022844524884345029213219291426431873062214249124372224625856506785602461178692874911268916264910154279156297462078131734853721713512087550459569700294780363271377581768053925740127448704724830759367489002726559115148508925209617737623462972519670417320867663829562425359844580426855523956302607698650133758439595291324348941211237618718418143990731672240975673780744387930972202156375928080739887386292616828753403490181503864150026768081775141094254237126580302041531497479191596915495586315152240274011967490410851030258912281151073456726444012693433239539832184299201544177133011453264124924664909222687501632643048880402836890634976932230893404523874374740155310927481966147171893714118156092432246166202918187485126837658056895139673727722398116228936030460025606080886426526329248422556635363458006949270448895302612225296997418719432978176797292152494933821600256547145119646579142390193164580620533899294272363821093003732633742713070150616461475672759995149682642078487300854136070441638415789513174592929687210008498287362430044408904418013818465400893870200922070076920589046434101782941532052849392366001631349484142607848767723197252170557655041280502664934618973090338503793415359593438063721614609313307933672323336263164192414112636694371341822009696291660440008575529139069431598244109766236116783616425497766172524439273886915094944098688654507975727491775558623382517929737124232448498782849466485869493884833357654739480929707654800082055741842943266949500714743390601860919893025877443247619913043941497358812333944205956378950844073536488758255186281843031351820483812920724462315471995450414603875321506259232240033045726100854571312396920721689930221621219471178103058998299650405518670196673690314897923498155659577231635586450363354263959091642555932291153768618223552957498766768176401283620900301720881379394053693832663629106675115079137537575364209937939742924339054757860767154085416956536039722249757771567696314594424356614634604924837868093954460916627351120081561499409831090462412329484479401116113772865932296588180601985105254300002659562428292964665349489141902507167426737516324605409723077953588213166381722533706135729775036751710260556949162924579458666326797473052905848731608895005640072544971943137299726200683844153802338788028602246160839241726251747776117618543570334781716791259593371485391395260547619845380752482086322399085551342207679489279731073134716044907619124758437711872777988639993805010185977510346906681277453514018465895515950029745744891199539350594936594552403369627436871239174339718036068091685129029676552782747764953525313615597941326858153365952537919696273878432932145731943262820452448758037592795601885931555939330158421743222825934492504729792854707757685783440356691649773377504164025834822798035812590031217974420843154783460822238706858529164248059845085320258875645085740510225113052938578547106660006233043550754633899013847940119177556918958745225586623020028391356426234164419723519651467941920318440469568959890477008851224344354294575251381713758672564343148077186374218200852754918754377981817765665383874504417059776516305277433889285085534405918433726184464188655887742279455194554567781790297437638969567929851725762448398307372783751379810057502018458544889848868771962377411411650928642081797435401817679521801505718546693534418109945116437534611166211973858474912259153073329028759925776323815867813320704126440777493291411526903542112852193020020216688865205962368109525226030084701264226218307363105014712837382435770388204761975211205097229626876717330258360527923842324171759843190048409089329238803177553022664682282163892433843980103338733094808579396605461729066209628514253669372883822441391028121098439461195652947818630648314984964604873766243993791637610095385688223780353473241127445459733055477736185873719846604426736804316377099405626600340178318937893784188041047816425729162826221799358524423640042718769317971229246272242156694070682147793982496458391853453341642569688608753621845095642036855760633873916751292471597810122151069866492177801200024442431780505177405421312537762674657700763105923642107827640556624899135914829803568096133056272088479140109955426249238707923057617806741587771038815702787150107838239231120085595023824433339661477790180102431204066287395444552902994145940684659832526056348210087623102554549574460944991783817734385356907421673728357222688040474327561051003773356407936489497566932144645278359866101675958424569572808051246089379202303835305173404217327489308167353253539599567075912868494398009428823745973684730397044867619206772880742876223344161539691505926874142518462161889181375761792653520163444855086822769894362786275398366457806511411449596270421079250572557861918795676521437280364132426705669728626682512075560978441276891612754275093526512646596286778882688230444439434349063413515675793374600841948703527374280098493649720973273654528168764892496160793423945023813659146656761499954597799728864556103381380643477180680138291373422758901925462982856281308027826675398864785036416405823019344868499717008310361915763744658071603867258996146051152080048570954724147130730221952550040099440525066646989345270978910081832357909500294934319481418623561571993815973837363688782341534613017905758868811133246367660411635319755961736321558776893189065259137511517379057800687673101233454836950727503972795340613775741014866485168245235148724176982985268330078168902104950667266420855227922950970250322654021572645793374786961616072435578802160162760906204175820153197509282336733005611533161500436485913687496799815840159275321294447727336722294346469168572565986144760678082131952870022740850364996056806952523543257993020634842909806584607536489816840601650348507780566841513925264635232662522186916469782654088570888964275626238609218712050772505512707870078092469611599727523303654199721895726941141066454777653643809030934602916356982259319677902260796133816930506844229028139681685765948789494616463998822935963193717913753930230888242871773555363622967121853495710353093659885722625000782424774561288500948820658857741421898790408653072888027361340823993668406769156193088394122590883356822197386174525833152612641965697299107412381469174688796053856601216467757408912077684268580469785613592420642817194517892879529104087891466398149582076517402994606822811701624002050393880083689523039866241969788834447126982259856963509125025461802611389508876652685889980814947440094922824992793501305892108125286865041871876788129804875960679016646307636892669503166737235008311486271632560773031690143424837651654844433457188087353945668431278045343312001405070813488771123955545175598711061782868560732580834715111482817556858188052917821492935023622981190308209199630161467464870260976250841200387353532300476402884238238670372556165326377264778671751604691331441467144028093797315070607300186844618901852545815133054072655749626263650623034956238641181031010416930878295129790757269262179798310543058468183931395340737277877420896775171570514064552849189728459608197251966332764596418529051079217602656023868690292610672755150551512705805829776316651587612453595221037790212849100200081442458446660253321665670916217055731707001287817898420765212292474308768621348939327476489700511624770158620054133331347347754862483476821288806753543699981713428619273341943508306258341642700070301355168687864418094935190370285791485754908194984419200494066848308669034626356597047803805848657079175768069812871993328438233933260390761542183280925411765840981622108459786444254188571583430302832058281128243525921693011653943030936986378344712501309905974750368698485555888132347653279959840931674877338900444365227493932641802253448090943621151730015073428784787278611990120720352865602464164875358325260653644155825454812198583611747723865369164191767800361883902242503889259559886115822511355086406057823778987986822516930840382961937145377956298650572296045688287874442410192829269590936009599427525054422535895236361889753325354741928955364964217463624443560263871288010719682045301720383173929135733027559413893202713224290318629553746796357190629729576626179150843094175175314677590121241135731927566540293597959519962771528502776932145664540541261199980215533115124035780705380327361947525472028088439869509849361636310431787493166741690917580122417145540253910497087730757079061689516577547764505842696338947478415861320907789826238641657766419059948762190197911422694890394185623239316056978644213625637908273399896878662694721024030887061708377112771838990993693154927330599037110631977883113864374457097102459192025177494378636892197732838675475792597051474814131263395733394251888026551861965475812539099512733486823580068726835423205347386431953874639795249318198166038003922977830726472068011025584642943997521932444210615333846943632262831281047161200603865769807079346894487775814949434000251734532754863131767565368170364629174366175201238849236754088621294340001811077794767776822557418978922956632000694793664707593596169239985637387334398722338297364268769093297295615552415300674015365288807997504578865587666519770881360039641884968390622402663542960686503989539584196258047766942289603412750996188712227894130696979924436121700855962469421504923773212299499915056214973739068062482118018683242364390999417206154315333205239049360202611460306487117846108100888001224436984378801148442494357889607372316083503682435200880067590181593917664794116291882152022713420307412607047778681887702002047232315289658731186282800576065880673434967831486554753562280507355781920102717148131224151004391289652975933203046728813367968796019990026098158550034399339801576132248544326188128005508686585416490863496716955593851750042553957119351152631649586205945451312176417710026293088106292089855615571873196765274916895454163625142191238257484395950523300810482768015339900542325133873166037492055346369138110281617439299565995044702341913074647726644498693691392192252069276547621457737098182137937345154682859092814170221948962021217969763618456631418357008766980354975058080121320394834795876067070159990934671884536214881720093556055343947487838192937537756240127059237902965102440371831496333051708488787088775781146136012168837429033910367749411073931741804342471091966308459251833123836594678555209536349999645613377960976026817754930185219531123529924952416485638605822448560993451578359169180994823263626081462254802462526305413834653665319683165610664890092643537959880753632721902283402149598725436832071204436094751462476397499905442524230839245096053086865542821082194015699781829905475190630781775588860797226158837191180267125675731356825323211093210973580704371072826281571626914129006465863103835084524684819047711408443658827398036088803186620997144073696806545390878133652410382344810177990437030329018308653599209153007438147291146183933829172437600060988039306944154218080692284309609714865473983050616413292099475564522914383545503673164099375174002000103944809839054635160748116239910170982942814376374668775234192449952230914720748114169086131205363314151282670930456216693365630352538164303052362025429779659477101321816039894117439386739675497079485465043667348193566272656264339909488188042753433497065767505171763424314304887141944715955810207881296001915957633580543746070246376553743873440432373551109427037293765387427027538012001934660555568337417504137938339569669571135654534696935292122528413870397360307574767914978649786878609871517803886554452522685529440949735463072723077289405874031278483664567345628931607624889490256980582324413024735082870428947486662504327581466195460390465899626130365671318156501266300339612939174139184738097466206725399542289737885293907566997989569042200955558627334245791307325956164181693209064942877270165618597174978544079363864258292914935459578991435103133313259248052759794632948680192885781612438909777969922863898727790425276201206487435929965505927714887436426822266037180207546481118384322588651642275588831890765116326268086550707706371954666164508525657382412492020437050608451648122775424067934236011793123152128794518018838807959227382017526195002438332872236152426443013111181813044528522738736686961515134590214844724349261794426490905562653078030968931932059707665946685059229783122458820524496265587878703239685403267049343825527795466937628500866226863616943245694943222430820024844494053309648610072437903446394114768409402980213684646500483572271312045828147728164886304883236140053257322715643355748787685998126503825777342142615146363315589427029808185422193121742698492409355750524849698620230186520577567469905339528316978718010062540908022756146080353554512620764353472722788451110893241321751544074356378516913867891509053721242679921776527598793608586335451926063326658920820278390951437101870495407803847005558132654335956904302042003602705669292932432475819084755610186084360209860629636400788925403405000917911984473269701287291138043726114090216837983387862400980092667490170589598515663967345837341961778149416947942115548368522488125012715837863609217622145895217762283966713364006453783800476473527478607143698059165190595752973222326175000768382612252299658495999619079508210392519285700598031189405802979286876474911451839751787588791454624971671975624824086013308863579809722065755514265590595453490672073792685707940625104491272812062397922938241272898606966674535361190432554244475841512691677442418858103771390883427566990980422670112001629980852997376470143854598887298625540258521460219162154683401344676019497316954903058508726322207339100771265831967072824707318841092861228168334853149686499532300995239475346965153850016381848225251972175383376181155775810708596912434893232699024700889460517305946970009280301028372618318008054873177810337363706200366704692608348319382577518731427756413170221380480047619954263538315952522585241462450844411370453936301279936780784135863295160255765617233514589244261800592199315513298617630390425411672292852336131286985867959913607664675480160469781503039230695709301168923318875443399812522324747741550691394037831770118696889577957653452294823137058536886948350715743701644736058334313930291739527896696483546585390250884207029868423047196307621626791425482303563017276085348121277454100199959744721874496621468571641414376762954424417040443792002706890869180016754171851363867677756431760628697384582349924876757132364295518093657684429822991865898353624030701308817778930369290543607144637285505051858012122377396430379057793152895789645142993749782182412587693380865404582590150337203576864833921962486740341516778548258677980230145461813972335448722311221794929153134608673469734628138215522583975947067431132227256191826002418086453812321534012798609678947688807990756780035319595448947462864088689181731508648045956014172932614607498079644699942158847085467242729610148621254575466856967600950728043653864045037667838796261102405336015908455200634394282984033827961085793681897923848549594045720318204299823616439029607139278640678837415106648631903091927840746065222086906394212834518032041304123811928052490263403317972901706405276370719111373843365098293827742068422684453827260956348682154910332232713429788068794007843917165935773977432115362448817531488098659227959981809169266419803250986518735455479228452572451764936380759421118869257551432143901346230067158202086655158689364543364684407363035457108051514825105224195697162703964012977113005001939432829262263431580587119554871565635220336049596342833548787994511480693594325037654712826806649124786646168994566874159188113669599008694643348280132114481608542509093608001626554959079261765374727444318089626905280955809709023620757050209440554793545957693024080869973270582236721572195055617556557158759153469748481208113932589621123195811435188133683252610382651619835230176255270892327206951858892365482958194502275115904366832917314707013638434788916268794846384369368785074233184741512143450683281023944866520811101169727596585206086540328913613851687974240312010270777330288076771541624777569406370636858653888895815601577022650936415350351514481373364109080719931214644972135878791283827614969377866537084992832888790330371359916835392998641061117552089784871644113345807693367218125379997983101277743855781831333275051721962594307984842662331909479187305892707348130787224358702201159963244558787320417612899868227707212051830064461618250226491452029561150589618952580370463302995009836264509638945256995813997301128732982356171661792713924170641654805323095213532243671228897116088502056280324231632515233606287782988632302332964800906849938361249931980693836309590477456924789729482545236799301396611202103901617194996815994490332521846893100319896161228950440190758396592353508327323995923080924887706244193193150418430906442299962312535969709640215632720384637259676471112924298981171845797581548450728468078780357811706707459552505517501143864709544031006773409337239157395257270992073143165259798797209606459369231698570320603131828636909448150448015628480600747816312465514991621563932351202377153557502521241050208035697214602440973497762120536363607625720378067298876689922994940888616804289936978891633891649894302027748154690840085090995725691750477199714608527094544801598669074931085593070830864643572935125288474532784863587215126874812115429350336817784699979902552801605020033731587386583409457608334182712877711226994625805216685403215403418601760135854798673737379716793398356706608091915969900444053692506243948113022318486156154529424930844976663538854008738712313255794683428773531976503168051122022958720540123745772063587902304778467172943903256166040108497573757487861033340474440920773356040213049328878277352171481710839834645487896291676327634534477353903519879825100106694477433154790359259518032444284348386799494196024375883761296866474408312497898387500138085937162698043025436048437051924333099275633185140735752792807871759904896432625100924285679793987690123270053836996033128974939772406821012258211603870994364902499557072474912386927815708789368968221639133308326786549864740471990651319913530647269937275839889723404467204551404807685569567202533093341483386022416955678126714808511036622337784469391074075141518889555561924135339991185533046022136182570062725601556871246545138204564093398406192340105061186561028034124056517321395487179146424946464309959983036951484387466595138427850403813540848012196619630315854639211688483609096844581858854153391705852240632095882462613675447335152609440223738478619558019646622902231455943124895555291126717795137552757432516853453339865030139586719983923248374833922527262932929114292593971015925324176541826741176914088561689931162168479843888484921294402783100911546629262460720178526783495635361392600537376981396048965543692576113214116062053040079951031769516186082000037617746793167940402061303797466680833552192699995898149781364508392037490029438429960121382567516296613476809190817095068180800181245037523846701094938580003244548089472713972640850763557553217222095886069361974186233543633883517279449896234227257369048770844958002299254626706736867566202381101369873477858869228713054721932196272119748729313762903496244280024671795789591366823056798968992609826166949473295614462180391187864665621362829781363696925805436095625252453340939817758918543132769771382915508639806600001176663251752047580698505849932603834426908403110090412116729658721471057573025246172658034579207140701577568864965715444413148769547466246166094202997560022059537102090805519127985073852565788059459570431916425286910931700161619616954969447829049447974446591060784997658495067113833390550652653830510212984676601433502995453444483633348678241510743844627592218958857858832753697829485660998617336361615486413350671459846086371803585090955433945167913661871079058217744468457386886594311774641614421224715330776496042811506323366959482137668121373353780918733801788427091333133285271077450789484565368997269791819593797458522118975493121858946069539573835982591785995513069132260912429796656710348919585259564734240751220075434616958103232514459178659320911738666568562665199960801977115313269169396338410351820275175681376660752404895841357266094555337093179608879164038549306324389059164991525856525827131957115618108420518188278182034574915801587710404320140084593161608686674716233182970601116920406520776124721083170101198386821608005462708197332639679159277661187336088520692782236226734803545253720811416339206556438856732903400074137200969299352967263451032917302591678964177193790500153433357073447413112971591687261877570258645406420297587376658165861604808763768521580320355501758902052416627632438157010803105922347209044608029191187295938604731007247742071784105416663846033688221550019458329498235799262802585531522373953381547228551128701407388964055977355685801445078058147772028628359853558476378741383854397155754840767838212158192967396076180240731929681043078844118637291500972516136474901894141378248350612989688627846062641859806083055989796636513447221411789841340964997631241916688855569606794557162053341350448378564865933941442902900195255850266459109848197987213352896476339421178063018706970032185049530325739357384819101671895062554947147873173874423079099133816751631418100195620511145324413417974810307537393237132943293901194499725331369023088894433910734788933717170628024634100827437568297419267833530253593681540484623890950588919208831423499075761952122038031847207470839844031794970326994345230537391383207690732136281884956727700292032974017866474521157472854576921606111640733597866180513143615326513308320545566691885618487877077654880856911659258194987550496658312367654768164823119943953792868659612180918815221752314193775513006809712783319136617170540222215095926539246245459102862649701417445387713204729058779551891548339692975119486429356952247106730888111544190931710645573839278711809322590048134193942293786643325199215644073952017189398481153714784670548478357785171303158671690410346732014387973735981450151766703296650118846601134938734798478217629416949225611651030089606929350274932621897891934970080049437693133501950338331558865648616580547295676575608929319384588459001803692667361158768717882204322399889169797925387886588240099365789056704556245205046673261414104726852415838228208182483080678679563802093100333840466402791961694861009370205739018048489673094343143126884507362454876172236589933098954350523814217944523216992539270662913697757833515332092393332449040342732526148648734587147201847461296760270990296216940437136718213937573539417327274884194092858776729425154444478976081428128407429197119199892071263347598169587176134887198056967678214061739903864849921897579010082270364324141785424833977519473518273507845385829350814523076725995230649942553291293918604808596014201374907419558218601221106892729660448316190197174418340831124723206866209770815965650159519847959349535830912616135792124649463583662185406482652747022026713233494986262696659087668753883348324043535724191148052467440990749014066334686275541562669872268222943579521520302283743144336274281110911218979536087135192360684382741336064164166622546438071245634583792489411426396311975627108551242772534273615736015518074415093592487099505641423675823265578842548199712801758074203219378272920814499809160455170703094263896968613618144959569972792591658390255798274099831197571035185465821646761911486364182833526765526058021412808548836136672238869179725085627930568807607439697714928318556096021103638156052444652820719486001423089818029426895792026483753711055120699657241552573522825586866886564397412785333993222803176778864363266066702680359259445250263905388005384904627376392211961130356329785420950797079722390634909048553186666135806220755411900641435128666739468986500825951508283430549213230404765640146987634439054578781903881437636878932729683649569372592401578184572555593386205031230757793905764980569184302323784489010244602144949346306324793664342550781816180255622491070945517536448612107831648537896210892789876928161975284778349373952932418525214494325989501938330765113583107923117575839931756753927258013030862514177119567311220387413554514679853535294729331124820154711841758060563247396133584862270374678609442974855902253920233676296814313829752066990205760935532008024467402873996722433421199738524132762119934176466069953674142463847627493600874394391850277421281017978973543661868472419357461674397484576023337022857737666153516120566419314560030973121946227141227429286174878820252907334621394614208352406170271355230346949248809129557292233992536175221860058392609851287905587931513403742574679728335309971872780007457593176299885748018646971913834714220621854011042066044267843634761755383234004157424597032032153845985086725120792191542526045763547235503264268939294611119740246656026900743924395006628947887811551090518050036317873805027354048750703566438536142958411216511610290136764458029970360363476864017081306755964530365825706823598076835327199525842574541860386135911156973238743076294905725001241399953001006735605352948863688313887886756890833466333467909053506635147719816104985024324861660253228774128878418721529885453158995722825688469640458850530431146902098568230265962083295846953244294287122198312747410250641100505142507599691324985548721192939254563182450699459680837172131807243550024696434392825235035114505447532637620509195955691078766052564765608511243116903408632268095026162494761050960107645449041044628423327249199138557896696619991545794629603471552207842959528563429037105489772292728728501009110010484164964395332539678885177742884444789641970352625327415294747396962430193017693288590858698393381402426684476870839766208735993188649506665197101903679862680592750247117773119045216291906723791123384977312391769456501815549281765310332461532602433680228355161173108956720725388463662488862858435625905064091058762431870065277684888377804939827853817314462649406605151143022230822753026017373526457781133123292151833720902675722817172901319510621018494299565798805593184164092369516508697130841796720161860465356535450378459323188977089589424528328591326898993978104413092980790046550967655442240716493534516387292674650955646279543449769676270723972029158155395877623613393245271855823766781290530277558968268164683508545299776145780126945090224952942780232575268725938983741160420387147460508151996632647553836905840861211876896291310367189828052243987801280101240487632592576708097675980258278261395614630862906049459897343406722618032929473024017356090646712886774177027491194629947353556890914719499181227050783832990294702336723738409075728488058247188660919890551713641152794671518533860809543816698732149366319572459181561259631687250226744801288029420104946376091027331445041878259188781545110115916992223042992822124273481663463654602553225840024842611903889602862784122894790237973937010629440688632647490616718021432111956837475066057481177550446475950743511325117993645160138108417802928909857366500839970256344281416742644438901400141876319943223876302026065771095464312330735561405512991535823989141253308541328224076198243262493151558496269197093067815867194357398737785424254056653336247386739887730248266142881722212228371972808839589376548729336238435487418147736510720449105580225266191992923038779891698043760819755645617136247149689267095422051940829312281160507170536213494574373064804966136234566117275560717533555597644971089018012986270944287317699805571148785873701786606893573883678931760152747197906621883464104549709786724975259128801232596732597807906027529761769364483487644702824284180028921912162812019922517505949010511483647611106720012323517044674053475327776349752325809467126834427666621211014716444546390794335855340341967154961886767866392146710973604316331452436605684844025127021873023466667717704733794117607739481643410969345107539283283072396797107396597902328199924857985157267116057364082866422401257250580487296632962178171272380107143552310727292199217218074154497015709420921709236384474772098753524273984537523328547179475156530374762499459435249255979753880501282491220079369756194103545275329436065506088161815363281533157237329156363858371736576549992975725990821485965048934516157735972365518879814956740931589303228020707587951208507622004947932616287735710157325921979877642617976084827077171002927524374290291048672823713445619941728403731289285431629719285049142304490236415160729019852505989431126368617011481572266674152147412698007423900117305803618920562663029772491043367441937545339973427111967191368378744482010297166719750886457703515898006454865250339478241371898024920596755264289355876031356825001492791884749389809044573003665629205557065892927833485797365454321734266783315795294227821598082758358531537966259704689215786594440536932451593595130139248203986435884932087964372418685131723936498968251039974226207991039210974856748983983844306907354569806473875679490091327170343087104195523590147215485559731086098294939416966294717553024695740861462592859712174233956874028676602945631594712931142485119542898279076754341705379796572908170342444354391635121572055239562676128930721689038815793233982136931813833967505443059020395215187361276723124881272761597212650911862243401309675635526012738185637257291845519274956455321554136796070383907230410731644468343958633573652430166409803821809240616861464873238354500807241718414100280368948293689997251717806823060319201403870949729022254601324266218891458661148300461987803307913311825546627875337332008957033068214186704526141015389239790331914685913908089302478277314408557507296647450123658812977099041490630065967482206666885594447979325747487410878684988708493345338104389400608792102945365288671148660885999018864788520772610422038447921835076902348026042308055583682539208147414505866754795674623355552278517175594803629761687156597897005934680473377719864012487867879065419204391272393156106929692607932878869839941724740614895856221301046662235348429324938252174129839917967057555691419366356421682942878896231553924248824148309584360554014243979067799761806623692995519237991795350095564016404502760657724537112607761950503595425435311921090141601516784669047289760510970669244417459478345202188624003134445717980227989153132966964921912312434451561076734329010707901379904121159385917918865819309718383056586078984842257151787596885507193971415519290548044888699513479341170914935001393330579775389881963322180271602400654560038185682906048614137545147039211619706826351614182617046810577213420854783643456075734109668935859340095780531043061513435893320742679264496886083892033444348721534710630250586354446088496864894672074814005211303926043052733099156295051929427138762240392621875670624915705825736112653398222179417125232562392131496451768160727471150394932801719593804559092243281277343304251359303463937358738953860851743369119858336860584100104246343494437076098408939308571861709235690903859779529004025737499538127719975513866237655070040561140701942410409993970179896839703741716429563310724666408163477326698915778502094353243751448692940641578695401212168041005152979859998746975244504571243901173097553131743391243616667809485748593422301541303807965755024846400482119123077265260083419838282433675696923903615063930465137855873673054585158213831217976506406638349828581711838822609844353585596886239767629406691135570546805055693704352079223327162808071785569062526425476267307234306908696934943527175968438100589970641137019626095977376378221053109860019075846089854965890490066109580652599527430989142127673884813662492043959904898487234010353228794731976669000811485056929758819999593861831576842348851999260067591885565737883662468492044126821905992818284073933263053679180816735622002381584474483506416475794633560468967042197064747105068183613542193726864533284759000543124149460911751747720402650328255851896305527329226574095273956566758298278912210132736973172208652158460289842352390131458574751554438812476208508862608509695099960835909245349266670732220200344235918308650550010195981565110586925073428222942992723652717881107096637289351933529756571708363717388474999308197904048160496639045921034584896404143761665801853391915750316623515202358426291989159797803740105368261695012856893161965292097804118989487002547511522450479017510824596594490132905085009678324543749807736452370607564177881059450662063907945310691729993259940505674510340709572346786693435142455216558661445130394785348411511358324974520540082418343932178538009279851923463570600114314066822966444043682933563693792797692170790682945198463144057525848206819637335063317557542163537570977439030963845680997577730541458407158723625478874848865939066270760618977926031073609703149692797647132398977743039521872624361353160418720803810682989300402743654257970343943061040818367998282901764330728025304093082321051089591086826819397786793920616364965647726254853562502431606793561228851659331492633564948468502328846813537414816201326387553742970628188009440485445454309111373235541371494689843386895051014162231103196362704121163170156118329763392619804900890820250721991509995322718237427418719580128257778544419054149213907338954836978338528932022491176458495298269513997113831219938395380728314020135532031559669259750315067089090536679065829492596721732879722209303575938698586771245500127571138571526882907810792724962578969151597814081432173847183569597999906385992754527362037854624343472918390292609540373117974984488772183024861491202518212258660142509865778401145448905251802777149969923816412571166925236860602054952268134078005799353796761883575728756245993034030031214780650368522048553040314834058486549250398003998067655111501060606620595543783638902070261348024088909085753748315518813003144617411048866779638121698626384371599545929558560454640314709142380544532440885168874314353459483552084585764835095994484294204710597286217538674845367960341904998883798723196979419080933117967837011951424296843927380322773277848547563263673061872050432532996089538074894023284587702120796177466240380060066896219727500335958495816780062388718155264117315542680221264896203156079209830927962429656562895170028004153045823121801328481725749360639269927011599226755850121059906439277873952116933975342114079090053060355283074442450206968688488736386501502362277589203266403852412895533965135275545770443460766394280631374241794253570418047836993234571220606976923116688632645287317115370075160129592239318394449646155923556819271157771650210205344735505917791512999307554592115442913177036470817764935207865787452949238435482137230267889092862636483352794856809983013501495283540888779217857906357106667003649936623198068064201610717973307488663249689496102892829758981567199173820432187810299310538580352793739823353861416897864626207233968136023405311576131668542591273726864223585783156700060359507395951965749784730892663582454030331612765953546964630428717134900358653356929035948059310714001005347814904406621849525243237496237711550795945549564942514862480415537545830735604793772932433866808995710649270302045661152018999965013191125143078935430591342924355485438919909595921443516673739096566473699985387505331217080630162850016466159426199124165208187072948212982348409048073470324765439964698091599947361803508305836306766763507734452488276158496067585992232596661590384731493080511753612369394410234555777648143888403832128052364468683549098311925981010316622101270750228223281633147846455267754275385397609461252016115881793617937030362482618517684104064340935373899651146792075501906780995478157486151338306825238638810402572547392930706952087118959936961946700292902040181135020191986368749773509175325116901861917473896235458089340417273943006362296466733743176283356027219493591853304184796376191156399659740451592499153427619418213231049397748443505637231459274743037012939073562780953573439994252720005139339903056491780279732713032226645488803938053406372493473072894153390260057601340160994318245268357059498141383914244440360106482102682823776520263406255204627755370375864066097591436306955184411078949641095391845657498511874788732715793751525312523653054356182997776065506840258916880916036026023302339083834442946504618815041770981677488476782332208395476687537462852360826514352937255666444398730180063407606837952576218440036505704772044162845063849026562125037570329496501732944240504851221462769706543467918259920716190390659261472120394067592095502497233473418550099782630758777299467349163721275766100931711213735287380923864222933060219898320300538655125844857479363428816767462798164048173583339439281698855501501843422941966564741115788050509228845714849134611956511752231314544155951416781336532672027715849781303731966311865306548880478015720183748967172827886906294416475334077707862089064623246064346960862847858426400606857529032072243129290158702722787813753014572105473330515501155582468633388617482533189440680297182230409597459574568514593887151763631733597012729148652363761019023117618500996969963428574957711547217180023319008986141542269180782539778747415362682712324393509172206121024064644057514161125188834157966184591534972352161390963106253449279317043561123421320227636177087006068990976456958907771951288173547665788260753726854596028634416047069732342849892425023505928254994360179959858903102316608278936047455619174360357388376770745683611041205241373045991281316904873776004210061544041884212552057676074020939610627984172629563940568089448397057655141518595529303296921834231510334257776647287071544605293376368724985312671807414437625590496964967792950645107618336540932746650705027913234563832932496232102983202166694561207392563362252081252590356100088619654028743799322164719845245359153606917535660496960252678121486131611099531284725604925202016329525011253743082622915148627743285518622390186037413700455606382630337453223543999623752378463757149563953553581471531475341468500419510114282625441530857451579956648029057193755251586728909040557073184979430695976067523437680294677888785671912008790604445544908770160034338837512689156359529256265684184304547696662038730877033444714643610006909947030120537850051751527192312034258757920347123465765841949686507785231164308685688539763063186848527325015879318973073639327602553638712333893983270318317352973441160738328766676399990861643984536199704176424579546462919145434278604856504046582746362950063057716758270194752700279648642809034893173191576532621608612238781895858388861869428069978538085740923631354835934960753949173343560246734017155057802800946824963947227164475776912642448627134260704968229174964013067157736564258739314771827863770321526359101159192183468671527478107988677397817346723037632437663882675131571958239422098965578884463636716865786743985347128449180446860231459665432429012179617305102699216971642494312809416921937899717100702619480162646026520140307534417433676812892169474900169764352468268436185936099622931805321481856527666005778478467919946181617964275196119098457397146438255633989306821744051349949922306966508585837418341417232736646917463724815186199448469711839306547762249612990969435174508413157874160824497199851250542784618757239396216307591062449935947880644103555326645240386898922728730232857659891425398122884873887371630825183880232504974169704525230097672501368802074399350351257291997742139007662346341302521820707103753444054493557129319080223393122744008650672750983310536249470895867511965671874415081834611794108030521190103558223338164108823879240589809049823707590202555404578637504239194884188611246957915551169239877232282353345554792941273544799020332207343571579383953231777613880073691118255179303453146903692061839825276582133689730563074617441795504463502469297019534859527595662085995259422490386206415409362537208932076669536843613819056711876841465752226821990712910350323246132674194078721148470844540206669919578868111198937212976913380896447900781908081743617775053454646860708087759442136092189041585270789818398507396968843053311808674685355618684068212927351470898316757625831519324503537960683449746007150216306355829228625228262283373647129156531919723410280728345873046352347606747967596340426825530506439377048180965406657941250853757271320404762059736141408129565445078577840921383826611647368494209628354559357659884638918122368785797681838059346097812343648849999653977693666780673796114984035608843939092377571033531203693830051731084172848860624014519637590827659101578262887540751972420560607312341278127255349180489298499794965944723471396279157635219203383328259186298123792312821456920979344803293695507390267759701776821019916592118095723505556905131508612230506756548813166117356563537642072515575097442350828732861178354081756709412150871239094986993926185256308247974274475641383734642406683481022113543204337067523724282937713483083199376731976805540384143082849706011413256376667893455303598978021158271608601518788737294179456954985777794110144623149871625266614388337946314081550392569392080461647528861447410394682161896772531993194872070725209661040409780188534566584443143113935077072863694936188899860452640845705706885061101371744425677589196246649881689798889091454613038367961443121462173214304622744999397225813311557833468338132834730500607585866106333624499618227709399083452469695588685615551664792489448054012558674897575564967489298953740473107507978605922718775943606073073483349314773375058159145332216368273495715021422416332347315820822808805325510135259557624788808086009815607061252620657858085991817377785126367403568116394067971728424724296374987506378835555966371769187277012994394912481433248840982062224060319233014252360672252817481749722381476543523494353678713830255294893175558677300501721578932207847686581850391380621042253497761675080191508438651631589142687115247069060399840801203516091660299970172618121684061183004046997731978936310057585177126306830337583574500872464009599650316982178115422371387635855516587737578631650156476750762213332498958780794322977299651612599748925118174421674339793542366136765410547134896379171335112750595848605974912188236551666841284534980868027103285689059700422572745411864400562643879209366132299942749216928515680077062006902163652324964994959839443874743898127436280780171681512757112375959100308824759967820388230834642308599482558444431034643590364670318797709814070319276128229829585146047121253947346596928848988567030951596541023324513416983498549365229301606269484323485366132647743862139845634107781470042049949602263386411699567796137733375274318715718348721985827591676450143364377746069991005274266333454760149805290074409183695117848972589029306143513273716179203390010081165405264473856038815593382045530581058792707478136451154948147324255495558953297683071921665786991154639952134675348310733517345230222026459140794318789613342015048831593096317049152065877045671169286201359783161363046178493230375305965340240804117781979683570433371531852188552319345475359763069780248705715949582847197382425698841994522242769944694937207589727867584544310093198456013284440543551755294389588544629435735375301623140287376227566803152866613938923105195446923883799601170717865116465340893166837563043404952332491343538396488450631231553190431100171304938721988149606564581217079848590471863056329353555666000418297802439503581033843256016162893176553379406979255231942581535818967413467824249513574779528354021716887772359346091069998211650875555773200871702498660026816671175814315534898856393973856138538671327952921110508615205663827405791086383414158836493394624582397832070005123111429807003444044127431389153645229813776509083857001674657735832983160047342043987980021353524679352860591996668653992393297830179768504907611476406767865729628468582395415636463121512617085978437063117397892240056499246405971583836862679465178488304660235824994090270290010299491109407571248357934308018518350671713371779641690507970560455809804711910841439974455900670710740497438759774426668911651459090881938043677183715460699410027965276913934807793233237607100340124323533163965893430648671761355294533947253329467522461228126079563220629467748330337437175861692066324750835465429476824144375161461635032015767981976892964916999650879045149490062827319933073602823575011910479686703714640995718043786289008939327361819918381134435533976554864422296984541932229084986891247609162504459047235141066778214599449638240379315497171665975724350438233364673679205545772349069015464961208719477810448398437664422086833135137820628814984240464366733493446883366951120134325130444976698642092561070575443917529666784033956574480257870078352389524134997815851497508243256617127320766322145476086389709905939508626473590541452503346946975228827876107691139446732254549528660464623651415741462517174947630294713576032306127489787262323002721452192134495022921443764879498338799789525650461083194046682576980284816621035810197506309826501378902314711286487085571812861183278240383859251991567712651862031800570159757398459336852188420671446820139629235224940600153693124010391124305592218212209236582600001977208162251302062766282599398260351285051778833246447673858001402958149249054103808412938934069096975131817391006075481894840820726865170744805261342020889161222195863318710757894162564498431830551906511190839071443805590578728962419259055444734792621754238330164497749474672769765644867472863165513812906766417538674256585093309798845482861996726370292330914407275834206281940536140126152345180738320036817921810151534029326522580403127730966025104592785387576637489515736222970534340734479936699638421700561638104937134643613066007830955588819057360919847682453556216637714698951941678719025041375054964671980758223161043951110054356915869089477694434993535093320463879269137809576270447493877623119082946842324342355340777407694229529245222156963664690682196672615245646389814038820545056970580612414569186016300347135776397776179782938699183236837770675169940330532074671072321020540050178666586918221198503140533531213465140266391886302199262757556230158324421973243520804910601165503291129530484946262596459550365810672134627721414926113538883832128125094617517438570521891316090151549924557336964070618878695873327906546246277457133439992995862018078120306656844597806747844168468988729105386721644003466396214894956037563652048612671007240008581020224468852381035687208802353783634620057457705384673088323875065346786337579713768928795951797586467412318289650470399124453529390068465499709933068102490690369698061163874233421748239563465875423297445092988017532665723576658713018511460733292431427774471969970476056822597114680312396493192407633041387894763619290610001823371869721430970883094566803267131588557333019614028175119942274602158584952375145595036897401220034482085246666926080343371765126073372366307853599720222533530555463148155866304543151665288356778243357310685743239444705709212602739902151199556705839497211539064327449184692701973595294359747841734612911953711836941422702097058366551981035336952275051985204700412391436841329202778364502933446142816799204217625626229809660486566335097429603289615390744848608765547698905747464906404429276940047768329919946903925718337334134184171590842579130523147900366961163002453443500601588249439109797573446795674154460866594000051321037573526522510530014619526090234086626660904682986919206036667354044022527073744441448714674454032820266464968460975740573697231109284091072878648100186417296190617754859853020742238705688568081894826533937840633681502961125278772987786410962486995904222084083404627556268350299779998294440773604547029147414276938983242461037810882640149424992342566856762197559449062456854701011346537070205219293651563510689509103507896559023883217691734582327292419221572529169584875947780283627717259398779808375980454634413689666481507182449761769116773066583458807886416664786749125778434536779029923220827583172287297960514241699177016261971852197852595700165419687629381029217639335598579979964281891218326457386817372150932249298294001796219522623532760303135695689360715992114685220580572896796402732554370861473548478095889109654022074218555468931396944714480541405625151516118476986566700132411683648817432899519943457959994206364233463390507646752732073101001750165183217902713089080113050073640803129521496965077691485573432425629090498473753425765111111198166254987402929772408400182553981184154873799367396270962439183946584685340733421274317225073737020126006765210036774754787799618537295248384278970888204380532959605137432035560596027336755760771230317583348496056763433511792935081469487794150715449382219498795898063172346773646070321629808730953908259522191108521384827427755024426337809344510731207245550790495771487190413161347412326198392716489327553855628158407243468195984676022965671732325355246154964414180329873168812745068249717709548246870950168441315521960203375500115703905705806216821852258335417509405255249219990035708326379601323045208996010881803533201539242884648247018939384172414611607193753107359630654874675882410817826509785865984294189491526611115303452423897497135984463756331610579227688528418314604872996926994400601339768531970028678977569880055465525173061810995041053592739991738871586108767339824736562635888955624700722169862278615027797377551643487206488091121373090596502385369960451002900521790736901989644791396315944495539910632455792506549780003742286607386076484378670738775278434400173257196610795971220003649679636339034999404524561202092191686712025834731600383396908389303215336413624548365768294555409134161154030529788271018692968586476750859037308823897976560276186101085471849931789804800730322459871239855350009681474272701437772475010585121330154003975652229721140533433039740436166505499585418119499688525464089085343808423033103989097313037486710075318026318529398930215506523168315555175823298087195770921104576348072436427058454188992906691524377170955609425463840883790596952857141078169218783407880834251124747476617708406101390020321538452886055665023091767124295166530778589934239996371508063851891810732814101727231877807721373534102667876649167254832790813309488841995065852457363977206539886960129422410727083352658863137405055129820644059427926278634712912780041398654331602983337592226725089974065881938468695961978049151550760471478919232793791126452701300646724676522279818968834123848802061450496241907900258868313009422294048764574360160133316249971106226128585844183689570928154474598515085546190337722329504573539059243347906934566853071518777948870234747816349119636539727371299365445315022839015591443635124499239075235236539693873133825741407617901096525467834989743027058323078675101540023804745916073591176315946931884522237959270794383069589084314536259716485126668226996952163059826453413597049852285502712361839726979189139829466080519858539601967137641708624795338712142408416012708284777159488976047833229169605869543045469314858208335997448015774455693826375463970517930477227664898638819824022739905807400246994978325243331557346870923294856074485625125526069759514061945838656324505800932204271880828670674067246317143283644865088198811253821316150034674954965512612072069249978608575898607873843073919120855141787871785158237990765305918823013633989739160502202066558706532523472301216021232533254977902354319846060646812010844161421043650393864614703253270396631377464154031839398840929613850231850262636103185363642597066320214494327430869446472765477059537199091523804232367940272975646805817243704770411227501831708999209976993356889611822979185451430181055384472308564570058827653091732681259973795415166403728003385105546769084947375990643314019306565496066080908801971198101905834108200075233343551322185550114390742780759050956535952556272606291878474823867798711394886595729976250120424612383089112516897025123842009833269121553221108041381091469022757689478196553581309549092470025008267855189484638182521731652950927292576272505801846164640091489824776409635451908544396134081309696737770250877818489964392812446231369471304147556061854908298046014275084976875959668826924898176339734805614544939822460114786015598922884467351378792871926773871916129417305202878626458707602341183447553275455050847072437790083907836899984580415959354826469810145259601642717525550694141548862495329218778892512254762413156723725626150569652070001442030860401400158500358946614664918091024775673180700420606697419918202733189979675003581912581842011983690037374402750380376650119852364728961842004930830590982069419038472420993643779213424434473608382822552597988287884110612819514935443617025215638528292204597253649658483337040899505719588980435488522135255063865156635267705138800927190902532464017337979541304374965689870237892787625151373936158531799437360673586573197932191050612804141915370621672871010232121654273745732740846561154121331614952140511706554484452005243103012812386927016976671360940281111777469819469717751842554303401833329301742349512000473956266424479639039902644297088553429518695978590290571175194627182648777455259372098779803566735384196671705311386891401996016537482975320066616253714549908562868568615725700890408928512616925203249314053964696277876066765802488685811298079949478113308030041023820566705777531782921306264609906942205721447788653130065216256768941695968080976855434373159647703276274047534883390492466668530805043903229689562276304888073851287216449128309341537560736089199339303140178425764811046025833344673721273619732525470529671363079265715961824678033573646543858115865176311642284891136503089833595267333327831072757011531500052395274275575682875246636253816157682657435833299729109412810398520057720693518590522651819949443125037843935888746368462924591840371905956187728737924612803039986469712238337167439821852687011706069610409913713251261917756955219576926795862825522660118742411131418360668318915004330791674695726598443895943491855516598587412896693977444155666555943548375866866960220468701243425631950154984636212533161092698059512800901865219157436063828668647232202967654102824765322411442026219248902352824697131409041762311317302078746460593140014271333492893242502064070376625621746119742069995535494084459421638108459292922384981463738116294009525558510560654841896826840556404204723945886418398360693632881260724546917701089758720621066796114081013950992819121786797933663823617991220915916814702651951691721330844668679595776688947029457197651548789892030282146937516482796076026548246690923085808563665088370810346283502434604398621966167048034831196448110962880646869382980815070009702434290763842923466662237305413411265266039253664893468618359980210764274746914057546508054914707893942470314661541149568074258829388103326738113231612782142291055153331278530467129930434429735952818608502574796971069286564025964060692686692533089859419502537420436399968185629292418898570480405744395485671799148768653680526935471206204349919629298332087689033679181049260522126771907857459906564267443596190439942631084430135335201035307771017490957564503604994057288122740158064869228854554055322351921523215108420116998450077762548915030920645129095151328283403900062333458253954122451734512515211067238513673728518729516359510553808578295266171024934355017960910580904987493925447247862291437645142650024146383180905499027137885147581935514416778240456184550814427845980393654885662841071970955678789765048659457747714345206282041747264542068585361147628255982224693667659424758600863296919065957897996848997086878388833148093558826149878647506093921473934766941517002294795551237744174109770013943136471592088439299836929443641843997189106030902470908838524915626217304526718181001003845949890470949754816162080010362124542391754147892124348075727106067663505570902718540851548294950745970134279696121719972874311961527720623313403349067150306851546030630850252672572642109885469031222187653967613700262136046799031038829097750132820014407015726489333082511886326836039400213654699856512440404298909934867018141517194657606823911110230779110007161746545232359186275199373335279920583921700825676043013872330710060839058880697109801126543365989824269871293686125260676335744894050562045558920646658943821648958268407693887375487801578781143798710662331675645816604983028068253258036771461203398040198785217858593274718623541776175542641430466509560528453408444008138720686628419408042296237762561208701238085302490103371801854918246782203645605037983816232561578067890043647557049654220194526852577435688358238012986354555843888713079533105752981034410430881226908608642092041429115973468814477179099230095624793949808329653854741764448410549688888957492706794270065611324309870454474848025818859686013706704828926322440804143424530277677327580605033453394154845379014810968350808984811263831920408926318983117146787165450316625654423164804532311069237092403908683484437723820017335708515703679538333014901160564576837248719443615615934007740678896049360257145481563704764728935804702335958461849898032213860031199045945201453655038623039187854134231708303876340366979596561591265667290276486260939073641294053710103834227011766938424031803445929841555385608391318740429876557258974165895319964715396431539819882117872463826765540581171757921824354055772384647358193696538518171675679109757573588077535540719491314119775001217943488390620778374783120398766446144784143913669189477574139031256101508692916548740924419344956880733873130078248619885842512110831026540523313021206639474378296153599227220405609018331017616156149796211609432889018718750491375657062899311171088341489174497210670208922381981164856321585010819169965796601766965153169955747152463041643037903567639304890301983269319632935177739888712606158691442258012961685880850152603710613595364304237181517034070421831038272433501059083927246997643792799165022578793527508912299433191865247176231659207135846963352924416575336236731966714326838092486186064232231940796356665983042007193613236703044492385778754624324130670103598798578049222410812580413802526947342044634242694864468222216052757947823886389147358020228510875289416483570493303520839387301501509875299323802958496481000718220525839122302614802974677863201842431842642989849878934815694330459453576693275853405047826398536024727023673350067916408516056037841587131586844975193032572421472741096019227891897666371389964141441761865800325947946374753498783595235679210160648168554881947007989949398552283751822099572431045245871351908504833202884057412870487411627864433487372249016068942950875003933449893192996239847246862163988999989075583094963357473461409540493423619390040037689345216496344069528042292500783719059439563342999335023494810597386834660621088629903796807970678735040846164955756336926930204123638853481296338295863889748023588314589456400359456756184804246105394879943725079273158126805168126475276510404871356425338131068432620727006146443449291772943355639404757709579011993828689589643607014730012850455008273044165301568481082436320150923246203383001309590647068036586766537717139831737409530248284895588662442295088409409569502984404768081222280790803527431549304003422324527343479213409076311187561082904260668791908214205143580698161657187566677494020538482764983625870584282934329319087859285829446475262365132269061783938816520971343782360640005415347608846071155503558762756145910733364139324106219192673892370827596303654738282441192608356924404103495844035863997984910952485055310828810646195659718206464571234760116900753920641923196390109143517931528790210214249536192666054690388775065788210001040360226207036163732071716692078808462971313016221666054087818516117197606529052000957470703656590528359090061109685803330080953196686069435446989739218424556433085829599373100937389298437664859464324959298646620953054495003320494875049532009992801265236952484040741326250351111827812138938623642703815473588360774081520078300321164596684670282361787158803445578496432287452723092439074464430420029327558867687830661135530392834391480855489823218237648023280635517498909824684787721977713483254627533031846172741611712776730759471091290202170939829899314545962281892267239183465961866356518090166328750895334289567950029688102306437611149093038029174252628184685709307595858421987273548435952407771065091401047201730712114406797208396219731864091319182083138886450662100599763743591731254439942247825785153336223227801173854686600951164793639322357619195991202472683657447417413464986220156241324856058303697091007833918242791986369358788824570191078463426578195412632487581475961640756871754514618429712628995108461274469741492181714494702305692362878627378236552781842425728257220485703756873395321033363982108917671912055324917168094999910095102640708128549421760544892372751809356045913505341052771627940045448860738110048720878599890851422830109856283310741706032919056294500528547652951321374165069026749064056754637103330316800391354568095924890165019769954092499321943859026280970284387726110448348938244416454488779241134400472207016255809455367755227158825770032449366458181002186560255422719824574321101426256788385314999918611904702333367276657269206084167657741826234157134758175040713234918484614035706234744814217634676694589752156877187541634503815674428920588013298688872529022220035864251745167968769981893997701673130585393058222828640438566255701125711845634083758237639582739155184872595447750117466947401956914183519757369668690239355275727904088175618384213166614738087863656799503549853873423675554557708127895660741429070043958177995962965618427473475192967359689811447281054486447917375270038082824240407135766833640208152373463436476137614758531476498064823077177722073530689638153171063583451027300198566514322107555693664930294257899211902329744118866745863302437418239204738013826086464190654944538045155689525514517009392402341666003497275538412308588298582675968293521731286884568086850293969416575908456083388023974778738030203812399652150954007521607761057675006946190269359082722809066286141667902725954217079522148888640556623849782641912519463012852478013305924320223439973834412652465592114938491536545059754542104105186368181856749925482527586784304536345293832864529842420877121300218004043454671841196967444423213722539900995509372476926349232113371651997159720396157351924527120424075764594849513115112126706595074377930508039872813875155716710635147561431404928118915095997516470147299499008830742475936451099171856064882585991002765321369850069098989046800551027665148675029436176406543347603540771809997291473342859605057555492000741193722988256995418328664814682234446787078172977023731891054215860804623184432545871702868333325612093092272762379916760498192782658251409504508186853266047803931926075997218771100382982832123320738985213866519937585868590978732927547946648088106737635389157955573925963473870659026737130806015129740090285191931339175952877336372827520789403796145558001839929402449992774629662477421313196035391753877960988205990529700819464789939741169841612330847567332755219003742837858630953776678086661506031304371230495863134774201098302803625710465424718320546721938506164082543409551752425037001121950288546165090640106076459756387471096628141570942134220946678398654538212737590458041308248580227309157621241759839856262379894024230185081709404451696797125267826621887103304365539459446353990388151384958804119868291173322978759693673842596443392915061189132684280742742646650029197433560568551134633766667994001432998564540745320759174014878517854226542052086417307001708125893005047310048199423587979741392361344212187209882844835172467299063576034521471261900189377651184847574088153345898863257083677556022726778874311437222176942438386421940177206919924738121158912825268671402197395728071544044160776552196298107455902528425508873579318902014355460615189346145183523606873174891715840526456280517824248018314315002275987842205540602601067722348885557544501817750603121269235181638021254802333507768874832874921540402135469786282152383836125815885852236028081623950323922927888527358943319306152528262021873209460352620254138256235109589338211464988827569506750881540652444508341248562371341883770536500570034231980034461393439000553505862123485771926989762177861361364622102911834828095892992752342181172020549452084287129818869290807218309756421932659277883118377156803043085444480705842745691404323123083340937143793994090168528004252617232033363318542401153382727101116104491286849593737095766977344691051291560049965293463515638533677067382338955684114360038936784303174449998041561795727579365865298452786434886358783821813290184820102076720310026560184823012936409784886565450201303430107417240645377628260539132258796262615806307097711384732747103522779177095744884826474471202607089833402716605062413872751268258436402354027081690589963211465495391858984913547432018230887267386267998997749682887547623956294110302306805742181167224748182203452824319901443094459625695199917253040630701736143647255158650516588521400789363632937773966258808681352680881636354175489568296700593242506129348316552855391974833410278428774254136289255569088413502506233981779657702892476472502818396881287371157235640939976485879174501281021777963509282123011590037469629533314881970670172461859204197572505005403507337952537592188668490789536144092205446592331382895547832208096855391011308165808224674955766858057368544056231392870018160696889283722071111991679625761862569223857882598961696515540041668436183026533406990807695136584040388509609097333891192276463145262573009541546215333242325342067449755190856316807926361277435164534740872497885330181824524535563524701653120339281270221076242274392555359232895116415026164400710597736691432399234756031982732737789035251467275059920605638115743015567636927974759102163041517434843375328856809555817223620264492736394283744647358863016674318491520352412663826840817023996358540731089167785852142743328575823617933878329853164690251026422479112238839495425758523910700743186494866036265088529917062477714150373961365224671983826081380558065665852870462811510944124784090849614067412701040061225080924458395828958255388898738390093235327302645573941163376450300282644253350220539377202097571558590323167338663631594838730504875862909756918346104474948318752753500364482806222469755766373573564381740262522612970627944347367121945828745641335173399109222851021196685015305059789980421664736201596468263191417184499954115144678869990813036085773738350762895171162154067195463869888538870393317608058067794718339644371679905508319057582050132452832432612583568442106765928181126461577616123155681578421435419417487291967479952055074981455937518618394004148265106249187814704737998725820695864197737982473513497993540941751852207174974081683952331496380989819871559050637721991552600527782769080402023508052485846402050425110106241294223192821344659575321265252909332132658120174080054537786467762624093877817429189982965767732406346458169111655118603711609429456387996940983784712453840059280617606705013964448381075809778450011641088708018764060329554742905068879021949344362132163177060173144864644998669440020134527637373409107173972705667058012213106869612115057689442242317662908779393828929650032088003192136911763562776172571512140772096720005416732363874378017736153260997951695223583327985215313493540515053272257417982182324878217128317264026284597543357573637391597270765359302249757210985437019010344929902378521851009923413559741752777875192702658653522847405164866559545133411194474562031924588864599182115457983908811267283112734921573591042733791395052370663986194719914112070687709786434041892240025653130167005253465106995664712409025400733944241718339605523987447449079452386791775176896063676132127323643917625234579838218244830323467371945735947728418910401423613346512636947529121798963015083520395267701273914576475708615763211319844965654483768893418035365028671162397589262098434025735873324621421312261147865070507099941678809062899483703280372797000063115766897224091557789314144927531000665391353795120128784468770860137120114095882614972902804149790744306545465069344585874291119790773924183574682031046788298855795702019104412609068657331259456447486848575041951346143500448159968934119468939912523002161418474349062529299795618312330051180464920073417363125290850616574590701304797015973712862818915177419367703198167159742441026357063946900022199097831100412345253466570182461773967237240442656693753444867683138401238087162363637084490656875906461158962081851943720786938223849948202600594319178124831728708934587240208766360629220227570396673648978755331125186934985437431446766868637459073215930096241157414440190363954335941329905677861348415896550503752437691765098290214714950415684406462830008484407487489694988378047608381985873115724474333846974131680981930767919751351606600808285488170977543885844851868391584578183989208401289186546380972193227498293741606384155729702109199740950597249793986837515750939936991541324338396488475448510074353321772739830837562298922416906198078906756422553666431031766446999152326618038643206811300596085334502374084094465266308013664681420139492397961348300922948088657173702388019457963302567885923109220842342231928303600526043525684703450419381523914912256848182362292562164781204279727978018067039246550764131487450104431872614908471847504352190738450220196164389146658755497949596334332706587324002026219805274625725242357569131808975633990640570898073309787261767286042028994475398270054560472197265277708804382064939166775193664946547429618004669696181987046961536657274338765647452140441834444034147374322773011658718721745652107291711038860506420543952679347765469485947521178509103054398490321272154806845331919295408499615932168221233753773764189594533715229412265292881945705843571471319678909021188520202180172550374139278535205831082999998111146211379501239652499283886261774209942418359697683825534112204781227462446020908942054945534150336755064276025712829283937182316293551109605546944626208424474766532678516900973996923791663044555177539281932129384974362473817642681965303212228235954476509723463290317075331912149432795993469589338656908086596031284666458480967169814689210798379274422177140026064550071776769099518905145103776921365614631679663981542544137799812505058342145037708728822028399276717788729401634633201158947272612671193446531544559847158765528043969164521392800763317638863921292821470627463558906114226070194958903107476416548698257761756188977109751219935817887450189029741198845429806896707691060341090321633403469605874974819528412486356368035780896182747658756310631203128597944312309222722927996623531544731173063053663334371795065807649692197119360100488367539400930585895877293224576521972989362052561828263773958000864724320200989613455423953589863481400868424556089141510184678802230225728172424961243588488124332120132870638144695478809726466482098155985031066900554278821631097596358807182689512584107856683217608329814791219514389449650578659210856776923011929299775861088702710724007877686940351979252143978210455414586279406996614053606631636411429072117390724209151916578557978020059785503436204944276996331870026583238086001702892977050804889242242361071926198498611697634987032435349452541397088025910192439431376283790779147172343668838084693734706639985115258295627705578006920621556178649050820154351744674748413134421182077008940068362783602248298238176124117289372127549848898862105597877383305761046018723474011470109086223942691642082433099948124918755678697257959334156211512485189921545474276583193396881020089787698793974501824055570631729587938044826027905551631645773492777441554985273887629201393208985000032306169653365526476253735601134532518902121253612756323046494001825237063523878631638274793601232070791365225027837429914521061020110348287245899292328030492379740341924748935596960246524846800302737233758368682988058372922311778138529251070035456670421278555180598989692534691675405690871513795075691147913148499010528809166819675145847126181780966059764173149694009293730605285366159857505629532464423907657959516686184616983029508640256440925474117609306634050698296078097884982135113242224394425902384434527800516205843591666580767691134980079376098396734896818974247685177561302006915590095746277751859159921477578111635140168583308426437895402352710138373068201870184283836764924149703625704909616450317960059672720073915366749536388330272625994282801140136917992911609944360214665025276588445906136687327550414360100976415419937641843522835752174471071804492850509626955599658580030378344059283530781416225311166052267144061108655331673944523080784816054294866995201510898267819227492476142248259492958026753592235722340068646186053537734722773834503224384572937577810363808678342233911685745573209110867243622462174484825800325891713330701278455261330082335242364476805473027097094367065131449109609962299799701982928442470752731785334653586522730489767538393280699039186262342260552004828444239891741731830625928320837860791756532112468451280570219035371388355266737581436381773487348295603960173698961269558828308198688315042015152579169986730304638146499962703266339512753255389983426562478120556115047634491060755935578146165247887614170638931895210656083659847431001854945216257455277243853629883627504746001116847403345838957184777627384844709330331224902618971110888270376856239773959641490695885824598899194496552465684086061635870944206257910977793331250340491316367630525730451589839014796755842690471398817085053306630282115235637858322076171255102270939299928738074740429162764540725463057766484514604437820986254717861570006751894110035873307653091143709982548182902809014048432855872418525701964403564290950484506316157368260469593362729702545285643879027764697128095865102875030446414207927986037746371484765808398526391561666253074992629010459972927479602997512297696098960860636714680380906110164352276321790022816813914657707011881221328507867670609664007738590836493839000911174571359774694946759264877282145537243547088805368778792382230538359805622336209982736042711061592312254779847710992858679448860706416116807721983814545625058147381944641368386842532653592177639337422495896849558219628038536690505965082488966560365066790060692239996426731945512797422028865885821918674803329358144638481266548359308251610962058505868781670073693223789715292922067506352684274888461256462230465471455930094626579571197130426717870135160867350772470602668113077644551668167373412553031782993494661864166333762123543857835193767929231951539079603581624941591947645897607124454558052386927432538034675531942348242178990175821393464304700112243681365889242168562773156239043322937703497861742829888633069327025318674466101596472470625068987822364557003923362898574783932603186378122659961424488879668878663105045231468232220333860402582639509629712887949426778522161276207893647412186536910771988836814258454311017285299551190396513982305154328086689531002398634109487651551920793995663174913125900503685513523329526364214787822997313188978353543421173377772027273253924248665722102061005966857560432576793955086250259361217572443079520564767792886848118398703534903713140394780295977511058984592151310162253684197825692036672547739551698073503200988418842170490374182644553719624633104902979329436101089817670861496236644752347693194131466222506874883300220858916651278415609634360385810096985901092280638117431552920185362113702675787051549268662949846076650832978785168330708651270291031080263043074895474271062581359516112515994563564799299360227885182740164464655404103205910198317363758116705657633442275842205494593152901108719846456698013310815344236906714892725610899978842953992242271809079359186926919449187119382296414332804762187321460617311208104677371173717917189325133278437018884884773618311686408601977104591754452584444383384649221318026651826973355720783672726165628897502331769722948196935285229443191623559928158390691677534464328571717106945057535115142231039373674605551765487651167866651949165322201922607270462997016634161383976002273269804988469345972251257318781438231112463122662023197477902903066626275495185534719327232976001900675534331471349321233808596006044961837362228092921969118603641343996260271552183304460128755346583556578509221732843435283709465477443366623011667345852171234613479191111705632398302723042274130051901531114261814885295747616594428676040300781350654316885686214347049937417377138322197204758851961055997458928490560264993692906787836553646303615951838336124410714086732443084127416483482290249403339428090270336205455346052777155537843881930488821548500192542314437054373620511766638224524531161504144066934852578518642738331739922895571825618374009634083947000123618564793944748335195912646087939905117245796503782499450379034007115093686489149727039265009796524122834217213842433392235607589353109703196385115600095316746804339862293446310255704331784853223782475820314437271946723523415949165549649576883040378395155220121937041858280512121323818178468516295632182504767162106552964437890747824460595011289824702854211649841076249723943169716565163516287211388193266636750351140891538270008447843265704906415801684244640011657284952478716178803618612427104031647584127257780520833926819856134134468555740580197077857765519987965989708157172250612874819294823264582819903950561733131647937677750941330612362327424790100791438356385337127603253515566201751441537093863860214044966937248400327595675441264655232568295369177450799680771369502670480613371522277699394662025076270741289771981411070961938524240540890932409116740417223717849718317153193015161206208563331797126554627943336244764069747456276210112848898222766033886356530936932176011512370360563656215135000105983788041965165796864861320018827900773681063972928207850566835233192207791473791279588796445979776175650201274260421731791481208135193493541454127439943349075291500874064047164159048653023910858789372523485966354985112456162662087288397123592793131306767877843775583523000689073593034250463504024573094566722058624655212067239879447764343048903897478366795249366051229756454051142249902395101173267780122862770050485511318047593294972017671974437890750924884351814907120996781197145864840079259081324884981207598826498279403686380581574618249392667882327812313326997044135240089951947641370886668910362544838113002362760637095810295630068889390109460963980204143848784485109045807888386341814934482270781190638128101876558621573991923387389006710280234434629620866681755459215336707429382639686513398085702567904644025129118563938495185604278296685185871221462823611872512062262253620975741580790111124665879648601803595862750170081616264038253883756576760701686075700844992916372386929988454231305556755978991375052201917791541634110050184817535838356485418831117899329127801991237565751646334985351379865421868045128288463591367010536920454157530778040244175900784328999314037020909592848694489316542078116424684019629977630249540218647959099383001453935280948800100500949088306207053422787999055596196430455515042823491147133074356421712425819363811951552412109169353381012071955917849755328424036637632222385034488826732573505725678344782837965219850008733668275165349517750101045792785885749793257009605119686709683104200534660632375591816413415435069419633745399879563076770900025175385512504670455104803703755031565820043027689123227293866398182238601721173465848106443606224769687439806489692720247566395422718504005827623935108911408129786885368658793807844326700969810210174611872694887393174751563907648047650438501550818145167346292686872116168722510986804574354887965296901840425100098381582647388815632107500666867432294488798308105057521182602909656897689628572959906368743466712516585451377240445246599628202879934656511949838352124317641154446171402094464691228313117327835954040180784472024823838983316226186138567149238591017022484425212100803519613236375058977086486709414757787276881709090174730511865772708158200308603561031324562494655608930608070814865274990175197815179152619270345330772368563038036513428930911624272213119037579560941028988953718488937278106257073947271484960847084064758076122364537983655789089410698726201358731200172524942996880068352146341370816969174739659283110661270739807383279516302200811264365319893668970981208912667945180596027420214699634244345623129839921029030050500622332028132100486001728749906717210595571357606217704110153735193390447695109698367768512134302418140628887248282519860032697099691542872989607690977418832763463535023777339682914606245990840704610462557881110421197300693840950207389050027544331700360404047723916528322331721890278910160957832506763187925181809486203683411929002514632897355600451653003135088312929998587517592046195756168258439391654282031336342105278149374717467051500340641174502319220986448309482564986143296181708860800584041955846018921364479653924802304564296431392482770505395269574136769620383073851984953234594938354815357620679823906725207239057442128549169689670501614957323444124033163829504239438303664587136926971636536294022574451264833494162766050981740662887927443630267951198035723933880870374224747065881163149704894584477534689512039313883142812519763780272377679538935003922860874024334491585869371091862997664184037554413915976973943569537752744216702052698178855628042207545971245921372065261859052622661091271270096354931577608237564103797128481789044896717354846270743697703911678646450393920275455095684146355621680752058657399363008716242559039243233678159011175889713966912013156939965239871591860926160317165103760846835131709386659289099682135808820138193031000698486872694554295822338553144648264971292515623706684850947904389656832458914357025881607108317460118973276936222375155811910175511378202183145953772519586526709675449919759683686184507901130805050173338254404391392306033314847868751209702420659347394085772981432107081120659181717296613756640982035850699695643808949539336146372668800607351380421800468608771201671557784835515707990306221504342269059837821515918120608058870433420921565201989365891131402086062198546284032402824549669109814557169536553987418948848325484982790869024767802604617803677532844957286935480177899936082865690447105204283207427100403098599945011389680494031581388374876540640525214599042608802994478278397360312106815663512792338823694393495790174308003662366217774184372686730336984693028988079065427981954533471443351261292500451736454190533762500042993631522270420842646765447141366071776446833860405677428622884333711125690975542879370381310234477313136717652464737723099146794782981959256958432571674468724759412940596219285903978187647851672476658475515548698604660331272459228520627396508624515974560608080374170609488315018633888739055648413934640158895179578315644541733382404404698603303829983403616388135376025137100907387302821540083203177536501975692267778800665766166508670748521490328948827408270560160676937463819201721786752845721335061565554166690635643146232412736349308528097195023647287768707843091041106832635338196207880232196498997960680939996706103179308879486560919988627338367685187359374071339333636725145745962994315446425537191312749032962884540225670007505532567654995623120592151512222214761926084127468515541091072228622132334751518071253989734931459768684997877652945717964393600384917397959845370255679014671222170174197665126974861792449640108022866853415985565500065390451299375936670901829199718219218465007734319829704044347929787645999237520289402478912483481572158910197289280500357761962835971529354872867826059871620863048248762345224548676367812950907741398770149365876958974045785849091518191922217313167197329583678371083279992191315402963317690154190595986482117808446912703270825746736834100111427456843632893746347897204955910172192952626206923051204754129684701206131893195433418200958843109368105471808485392182435738237187166824858450798128038322957149903410457138439261538157564819430401422905067696859558540718941808550754603416318877538943354768096974297574656042726388928182469546486539571341799069404514136005651624940901262046270200862036397167694213626331435880949145611644941882403175693395997142006346313928098161239708525773378414795968083718308508184587161732259177866576995340739837514576957137753238438278666148274952587790569685570333852136402113058979561839107624321854327248381593311625153439421053691207169398287474346348682406288436823468499959179913577834135196338638499416478538427487492056507437121651133066069256579456313032949769890688377702579394245525683654320095915712135438321766454313958160581206556278291627766514215286281558814534211483152417949385743998643562200939681370314181869803931580534808943946813866747020835897565629405769464404963349569100435312158559529086962592429664589495399763001046883488175632435639948461205209263548125859550344442511600288282652924140884172002123921181369160094443818478346600578527065796396951634646403452326830039324333873491696610579648320884368947970166773312432137545929951879381810312664004145281648021539626677277557449157048939868125010681596053886847344400825925869734051949285095727960017468912877044847361005105511513707759001930937675988881389277863141153223845422970229359375326023935377094146875851184641143799058626031056041699057111211339745667234805864406671757956852673810346306773035572395776903601702327138970495586242121462137543553301185894886561356507166424697693638645011654286200520915906913079143871767647197884137933590398244523251250597275192585970573282218986975801444745765136435034288583514681845593919017073787135866339771706681534608051063097588741871423720762072900270670318739520348252457432497694411672371453261444958241427199671634027704831955569763346227964618712400681398808835201766493692613206037594584528679199590589382960701489375677471973659574741271247054662409973291482368852018982084981906654358455331165098380520204367278912492694514655337979365171189416872045596830757449388446230248485851457030709772202623826111285866815205051878216347580445085067937783936919062448101391133391216317272865906654760188935721452684734269261750606161860245510863603046009245659120230735511755736521755179161362646797058558312689503808711123598006004566479905781119738015294102714705397967935094683858138519834307759033500930878426296749764035517143125924033779533736376554508812619222443438610245264745566258469964796715338450284510152859385128656225783959542363116595925681768338504821331692868766085869110252382937096014695303660579449424431715550506420838141766531736473886979180909853796195457803022940495335713572298218373777999779328813920753102487164168195553788230672923758953442228138502226795583805298892967481920900541139826306727392580978600719482348045153449043927220302609577443838940264040247226530239663023538940265137071038892780964168610984569022430477258549532616629371182361800714250101077211810649786249530549127335967238055738611395371441899492812008156148057278612545602749735206416028528268019132473479896147254486086140873034296503720554542822657938774784983221447149460698968420352128223166356622913029033994654241398606576147641141406852220584361217386982690446260962006984464323546471766955009207905754574432386233561106959601496967184404995919826844409477289574810867832243047515428586804997915699932921762373643151497420893590247542888311684060803151254602007718390615134468510594599344680896172235805044783950681305825286954757982417508735266966244827569384185333236138886845911917392699530933226337641968197070914501337900903155945375606960616124664448548141984047520227257658342442660182774777268753555166223538638923056321812259012062512410240050428094565704224395696683772596822277627366724408650702065290652939516153690955773421698966186802122306242230593580913232988288618296049132835068666612602584955973595268086136906761077312373923564682034782345110981716558263920624096676302567570688068507173320514693875926379247912718193030021841708596761270164762813739826374549795212676286017460709411523606378633102007195535061126912138666589228268637037659331753138356268105892374707584508096597298148737439690329160087589464003039377950524415689974315417913326887923137779437900142962721853305140280398725960470246779639958593024166542660360361760251642261850173974110698288077710150600221280587133029674067592455699233879532429315342598602319291920526762050755523641701549030406060841961645293873508545919741770874693179286687562606509699136751453781125904435053357301643516046725109298484277702956073728014525034693842429165627675389462476609246955329208322210204366344365630572551243899199780536630575129845551860453275833967050881280941654756115513397121273625091238357836597441145401291524798701625661511085752448279541182036293392392633209793143004398642783539093559756180261257357920300376705284812132673069833969886938385312279705951421984962059567639585711536109086640788203826759352856492150505672180246643603354042870477907965348742351308092753273902134593999788030047080008546451314087781407995791343960048961220358244498079619390944018238398772432912671739649087976427787611390262683428210079486465406096170599639418510262343367428442270356137912576345030977023152641952145659537997337832829281103934421694990714241978766812940259698813767602485879468399463902527737223149184247556223559981066383558895133744471442455327333616516446851080683970887428527164887665527453856813276262811935285446315659854386879487589886322180708762763907934255396702792666812984603445237543490466210543404100306196258124698046319644188421226144998328805766993140433422793002893517572844363118794093662339862100604238864993690005059449057870431892623545906412995913710019636592184115308288553022733257571172654855815735619528772749944907531909042550542170641036097812819540178427150069451598944828870510363634479647676368032195206618654756431173904865783128969174936807328626092394462520984822014726319030969564539720797650930121032414950542769446890998660282816087832236794347315282320200531788778492529526063945687901078340114692887114186401400195590816266233076741789500167188310233112143124528515770644204714701008785061577429891932990282091166062044794422721586371319178343728096940184437514404780181383817344405278655978569568319949674873372939646726212284208112692015418071545974981551238062307784625008037456390069116638220347201046086136857509433154215820858706145610047996374127764644768114685371388760747935092379000940603723104670911429173540632480317024356865373512453502392130908094168746598292814993092288106703284843611020775006161667143583131392580983426706775492973160806820290239450854853513131528295121685431408180881664400164045596142018714805751447924785168803322694286047932662582316480800177122390674362574812042495908891478995218698349899069547616163975334035735721249055086454938516780406131315774845451670577196702018406263766801246457702090816213391390287777911290405075524890887773649838287387936968304812225887508278556227529287839164866897059932953634931132348999672986962151910363804754129722324339424396485593935511459573481073498651038934039215397508679938968715716101797931512433192979136814056569991475872590272981732439136996804388606760390855409739434653362118384240985211732415904896185712646003946842691845575272185342987820001342682154811453088388188408698261872383622013988649313189145828481259910644863639203147841577714009196229238559600075343085464676475740015694132973776046574979790425010389450110691167189243327106350718522020559700428804944048501580418859981459051642394338899410999129495395464113434108301946161434182948384876006204138255803774250223683329010638379701914068239997434775648703277871783092893729903299026669739503818333517955301726961127865772151003316892195970116738707399862432459915577056692787595699344383676870787491849747577684613566597296007032091450995216255832375984934639848660463420480387463846319324547407018967503242472263186912058938794661552156210713758573406310563427435950640188672349578882106245746262767116096824589239096414229239026142006191110200636161262619225045086898722187116836585379537239304696365130956350582123150203778172003383147339881689249418448206578325810692584737541382056505993006183690657211581454209954365008182074133453941876069614178698545267260954989494439009463091656987108112617108914682645867734079949482488268645681642252607115791940257343701869732767630433511917790887309792092463256191267907859638144524199536122747038118704192312471558259687325273018204170425935203346150879705556707942004689808642930972431348207103709096304612359880470389677660603458973016393755844100200063636947233781368600990608709678267605934884653798549972513817376296310518768861425514884133526364463950947130922159485543499015703644152543845661477437359733829092325896477492885853189302282410536230821373082200847066374426745971759901392240537266306783859056503606748118518895247031190052115196343911746421084718578489117535418179071351259352090809345557126631368311239776215622948820667020484186444537884900254280646867746793632247527170678514319189889775587492089199353973611663802138543789998296736306702398218092256703232102261095849063512386131112615012689722528520324007802146617492541300610522083639007824224597919675042334016285947570231752072880631575908753760232673203670209036397441186051441594570601057804914200133291394158249191956485197402933543327898809036053475293438688040945088391120422832528592117368874576957701074702937299732697329356476712398357678783398364074695575599149213943699271808543981253862758583850406307730399123988315182258021776459796844042076653910898219717657854960740777667040210160478316495772162395167603913561091884718926996313730610931810594772075269729097748180102322080730246427853039742986099020660685865186366833813321296546705042498825157073449845531665764139652692966621170713448431122896032159366103685953815972739289033295564423629898373886865750068863658233819031549309029208106652204678480963537310027154230674034464909434582631370633147671165188229421367266342390041698310436787328238885148035160046971348703828077322164564983756662942286485431859583461996548991354554337254591340517570595846720749890626475058380181505336820937710779807193080125252096514340205135200631803620759714967729069666389249627114127473775636776668026046624452259457996431751165504542423827183592051268804761317955586110927649226524551896186238758878225255507371252083447400677493762446179984612921414241501431865817167895668259498272906602145348035333859105857010508488819806797979566184715659635192185510038871013773548341914933737094599745129296231670697508886343629750615801720392237537730604455784038091741226983961987398748528967337150278212071494891796216752297709139677961844417881308923459003585395685931475293116324196021234283644784086774196545500243948138354421688441145494149451476945582920358103609696755693330410222516562400436490612781152675074571350065799813333756846429642368535021536523963619674872104213496977792707189664194613745320566861420670431536049786315215489230618685837866592119068252118854198488303067190771115595161021230932005941935844732279250703638558671214756342216188482196229051536666669142946134290595126723660966471915774918176554098664665403368012131111300220695106353742625754019561770207091373481234935780344812882040134700457128226923412390909539751575432290941437737646440239450937948865735776785215783321536750948974431118695463128443618454033765898108615373402042263199887696341957401279679639235716588945944720028912076968033978699454375178475666941280915479807305060274317983501809355599260053656504897697656549527732187401999097947334418791237208706694441103845159817766759254502484963310640858263193246878582034174192573730553375411467338652264947478994917645785103524795436051088570612966207514326443311345946456456829733034632184038104074646619050425654397258536565306506311462297352666147403998601260211605749849133129030095088803777503531670018241483228715901047379677050130906012352945627043944771669865835634313025941285012327308387312795610361537823571477283194756186632915305179333609267107192718509785956630623058298581393978607273732475389375602671813376484814355978358135204783175913490535225359266953393362443635212554440114755738370335634788270631711901520051340444742003677507732021163840089447723514909560439998687394846197291127033194882745896335447361440052465535818769150906649250107815733328918396020511393858696878763705202500539682759011569039338324273893295365663103284212438629847938751059689670574376242308985166285724941556061977374126875270315182253468149049363987987531761164809477278471103794932937081092686982390962487038685512834812120110058411741360729086315957151789810549106760036379348250358770691081347263304666769485700812751001586374175019334251427505682658790375740914187921744682197365343104943350730858818682618284008996684489790856332010973608477648372896241649502117756229613026697859837402393865616032831992470159654998045700747406552345517184254024857035613016024217561707382535839034951574717418970594200000618999835336806920488671843539780724764107868070966151511297255766290179637161595605192299256366596567515510674634084173143213278783277310541542460082923712685833929722574610559817333035227709648026937811172773018743909448659097410943256118167579872796820541447085973761194447554193984465159628967165016556250917429816564496209260762284180518403520782073838241011956612474142099237185070194586182991719323469194728499600675998271771506480780554207362999058495684395505521586038268947461628842384559613612422962969597586178922409912189704117313085923096708398658368151671456310685410924870666562325952468831672787038324615667271276031142579090117396314037102161654473619570414803109454090285763430659339424468128109582300205464727170818169424354970804747869270569313684250209630414670862753371446117497728915307985898627238370155522185436391240390445261974257864748718787714896511676858832280709030521968067164085053768473219783357150809315239799032649061897478135311850285680175018490188440171709626041581829148287521137075993442499924442563422380066673367728477020673892396226079002256898112536059521836168860404159248442164437601128228820308634614042550300729082054941030873510201520407567736134253278928131491029097010808490551600101391871990346504448495914625683849447563341348934312807910979407933862605459884145277531851014444940370170027885022162480995212799626655879025486256824470215188027273722265662191835867902706818200158276577848489712358115478307781734005592971127142758260518319886185349432713916759183994226245751798047786570477951384955434694949216518239353348388345870900103663698103812742906887262084450455150223549523926805366457487518207792007071411177112147712827190004027954968323684979025955094574953888012339429787986267174108504071277958346436185867710265952281548101436962415564367298476941087577388732202089438866539240830332457680288806077880739426684953041509914493513700193816973417933383964326532737687300609779145068257989104573077397760140592052910020986947560746718795723609540167350253857073804289608826245474316610827783564976600759795818685118598789710294174530991184351471157237310324608869099846987969311752154767435664460875674161024973886060399369213518219128807027733067505332173338518507616604863611726444670594941067223436815641534052778149629431760735572731663836890191958636170470535728914775129985981547290743286555765512652669774019803776399037092133895842039014899084833694383409064200557221351571008350576322822292789706802158276684258388094928266005031103305121231149255534514987698006103098893880587274428468869233849860085351052705503402483700838177519216886426884469900251754555774737158901697371093338864040505900552555825851986980563244950127805739135854543763533244654710270999983206035212283786035604652496585870935689958043003422349995656073357217479373994230055172761406674322912871072007299542298392626128495351187216537109245807155762705561813040869748738003268495541735929923054361615734341312001414235673276340248655533801440715582573181956144523373666749041909967889451437915636643486220436038207612939768205439402613281686919706785948723532310393620518391040655828167627676090051532589060447719291804873258526445638019629027878452747299109154287815745206481827277121916236792737091785893303397185361885173916803067612438613606705920319599415337543259492048577127938889307318400579582923808615848152551595556649078737349636804063226322842900351278227212389081822102715953614180480517823616768865542473449484628818538643623811494600409825779396479641940240815734347209002983420262590944093260955663966702136179819980590340158296453974752545399797447841838554894728647903417258992346182105254912215515481022011643594769358802647525339870676824285344567658708223483877627144741062229512466880694335383032640193455406311635085836270096112091417478890088066443914799087575008679960140493400632384450958142582878478065680546727517744716558471147742928539803647717485019582184716602807128525243497360526832176792177329487680147907853960704379227024120019021315615916351231220834385857772879312032015757558168050907691451887632278507986690353659224563339586192930760291267327682270038269293880808104046172989733282121840197061498195903886313424489729250188329491509519274882801183076839132229493008271165690015066401987472735322665500523716289145274825424960798105469958865747127545410804833079519474147067193072563898406752670366273050875806455480991804698529882801346462988050770911987924965328616622709544914403189448386206082478509639077665725191090926880905458206463444123038659332457161696866392852620467430582101753119922116840949704489952665060400652171529900026873830119608930237143772843958519119839579769225796766251369533155612936712362774997268072464989820626726681248904996636317520075912986958255259399544835313675452120451766273591129123778694696972279273391354857458588885752987537363487748610325106193867316501110702351273882253694805726063108405777669419190186155203349595840897488132343874156068498239125012011416629490995378671687972724474290391917787698384500557099343871661834522628284485011355076198421178332697333648073494903713431312176526661716383716502990709521069857534353641508613935180124930889001108379893551481178867695085653625991536332835485186595317007838360218418852425638266830768243866178241771909680703431314403431516440986156873350664700750703111964432983405915439979979032096116249798088894331196737338256254303597638466822503444196529266007926011949883144784347353475450004718848694939329571430178434054431525300766318544277659318690776243480504108803996744442018720515544552867798428212183503656991131510615505856144732538267483284160937415278818733735946690852015339543079699381817753594842001259505948156190350825045832487990172461031790101387945952590160946654320975418299351754780144711423262862555992173166230361464307697464659824455978070444384945643585074659748634410833056862179192477780918236798407720168922749883180898578431629981883887377336766057407785960699948408311879841994458479294207776922916541422823923964220873274756122102180062221802051611785883290526703279585178363047878883310397353742442199217849861633819301447341050396378482921659986778131355751486430080202191496439633544195748785924370392440914901769331395561266196549159726328111681925496257568555456833323406951132479052498515864265201618211223193751660182846615580601611708738746205488808335550778312613326781812083151994392612091444337794438027810139615429193667981001735645737128404778083010640491123080802487017548992243734673181820348316673963539479029775912724916733309845756196408354836208987229049165948556678793902382316385251150146966947487371285134996201640806350360847314594447343562636648695484758569959481187033013359980559561693924641499969855634759234222972992218997266911489482848683793647325593089911519987038784538574592792264589471259077327399924497068065037922270250430142240503960276986279120024655347858910331888164103620180543755089121083554209385540105375052141529923074099642932758573207584954720409788658248424303771741307031160721494565430187039045861490011747395328863396497022129203273748183934854073008381030605144020256383403241704811027842884094939853897684607296547810867825958724510716838835705707341381733912232126900423347246169937903964686410145073275275227717248758947209402086630363156119340979450349777313525448833979675656086526565892204208083747337631001856041124568333565832781086167329084252356295411032995323233292848233727865078011855394559049822935305213978372256781066118061553573387565432392024986875680975350403788831826522239499118487978737857367358988207122781680720864830262840175360898813799870071632268910187553862693302483474809572419085251433775768330817599621790463251040664087032338515590770672300999374130908561946222379540331340729217389832681933298705104571566854450520077597141162636517159003271551535810215069994381217841658469380708157153995010496557303628194403152264555552736888564536783272617473068639569938229371204999972908108086132721165207272624207386598914703959541832858038774130471716694195574803907289693136020704138049950306285388647216289661623113864363295054317758146810421137736433555280221874550004319993643327220639768369757841629134807259707986205370048106951145405850429318290299643630913693478991511375723592707199166664894461426921668875610728575185847355449188717090879375782151512390811399432845921405077998501832536207419163284600642002043655855268097171117298280711790524964106895725225522722883463034513043684275799127828752125188455901276642440015075294759591955377951510261081721054539208980515973278248609568329313604989747159607232685157977750752877338222822209015615036635363787607127345545258974961078975868885129728690062166176048148689583631577395843503299745085781340189065299736127181106616378624752880723390165339245482507707583128820397315063655031677929041690734609807455103683503072460207245313732254697409153242417629805172186208566799649600345358146560355881362648284725637275130067866918730096071418089973636412673485385690267796814065279329543433010851969662076618452869640015308398455367536233093518093094580436740503132127588207234358094694069852366832125023178453149319693748517729217209390747851302268584318496167666670257060056446381281984607683301410471914876552584009371443929577186940921184885576784657022431125470159717169701865375328947410366250524646632544909769835659319064719973460422976780991532109400910615314887098605692139027766152793658468062016863791664071300603723151801925200740022333314677507266930664968042363455404209153391037188212815694771423271238433242938764851747259413207186061806764819753186344380785006117299919518677301549718552332040823479317063577765046411154074058941064062882347500358355039055979344960842309409030344507103303902035247155247610183073917139445540306372791566736358538986706368446715872521359114126686931790847271931148325614739987002220017655152402885400512905973989540899756176235039330637057936521897771147483163705566366730616956170183349219909692146327644021007896181909321349874266880139776549750737948701956017173765423310709857243068500747139967562961301065022665348172854762764965034271598599431733400784866273693324459555951565698216270402870399242314291636799529509364143315334588951207830459463039723145222793589511129411700994951783869604993244721077672787143678027891416752869629553645567289641669471717496346214553250703296119348545619560343837649901354751273387330179786239240393502342307175543866062601071177370174921195042612160200239251550804384952421122217732527318657793331464695099068629413510866374260152306068780694725853051699704859827527546103116885441196805894819663655500542917799752891075758441848710634706156893961565103016508307482601811314105749640203344671565505764767443581877959219201060434898109403984651127163414590043571646265083206982331944465555390683469664862196524140575151069956275283643602847534836429852689274363387105370406044396342955714973993837268632574659600613292453505406262234431603427080757888149555052725685608198135046671248620351244487191537484031604843548282205509254755064969371905614489268432578917109267186883205582160134463761131843870785843416303127190975359906074679171218955777131824274542072552081565143336199321242020576769537250999235256098113436094617790036232126978963054668761393134564389606117713190625802296319134288158340185995208038471553442188390306489018464212150316548486537588746561202400710157982513410298267623573538306225047859526985794145432472731815036921066007574631499044214108083970235238940788385962548976118291148519046845746568189517939660383340062829804859337228327923442514213269995432177424307802185639170179609758058481426083091332541195986677339507793696219285817201136299095503223353594150983878013147031134390016524334735264086944990122181094690313240358406366792095421544486264749899117538173159905048800680296265617471063869335451540272713225952735094948464954788870976637875805834024919618563382835440244697447537502748290143707789423012703249576656260922944685183018770014829558516803961536852104876277317806483801334372057092977747076518440413429118380989671040787722723918007054317211663266036468526591481537876465013746308570716771453366115166342866066882220386359265575383988040103249074997807376207109988619979150542495250110017693122972262299879217401013256124059051620579737423082450042704179726035659441944615521577296589033234876296147250403162248358871236064333826573942089520717531104740733401401297048685705466426186765076534213284695485087325373227501301812013976798655525350740665602493947280747602751958199583856999697372727770150215842566390742400758030188214782511267115609061164173732702529495738183453486965846008699309823820653266039082225814885166556720180432875716688239221314865469029917622309388133169778506142378697263605362756421393078455208391044672649362274397932094771580758739714281367370184897220624858969126267369461402530505803734501126833038792817801838761354724978601788624335257266539507171849121620599276549609162435544081540913135220634102789061498567842067055430847913269131966185690467850864323513842190233266596171053873231536767251233206965580294609881191357108258492199308645182327158191536350635770400163128705321726726010998265101881593240375516913950361745686815258790250251458782772360163525975939227892443391372493842285793681412455366356526269839179739123613428933876303983290326052887121590839849454583414327644501117088031989248369311246591206538117724191384393715181456794632477391332307399917926002087902393836718989385334322520833584201947282088379878961241535639096525162797428910845187147431440212363107594612284254068575772395347419007247472525294034762612843091171675256427883761448406629684323291588797345657611491876086391794217307534874098688946440094011993561519783043399875277358283701150934883988903475140048131325282524532491109146011771431230867060830050517573681619769362969593712239873432508835352302616469391358187161071816213731144178140900484606205608204132303128475288973063416064797663665189076547827253882543096991835374709484291107911759801733717870237275260172167727677080394965991252599168983641777167325420801400479279982609559454574339901269270878266546032160139558572858047890807455069709823696581609588729149570615717511744412606589398244704859043815599422820371130470078890308117600403870570079552866653509315474343442066154122122474065171803977202870503894722986007293950005439489044169895991762278521745733711253746700984478919073260843674803698371034274456023581635808018999787731738591327446708548421442393711178922889678172501065256786070803863562328471903072823183853521803139841956442827942192507795157234339228260172535622017462275856618191070138063900925141603333291623204784833279767336117961493138979328375929895455644472407692187327053597002995597374384559130805736333997493024024576400640110623900012006543597400196724496008867927005592035534113960446542360911300547210088943980054149915916424193707845830407830904150180876272470553157208171081126625828512158017069072004360204306973125672859170781399744981484963767766325497329060904247517518070464781971469034821770887990301181199643536772803186783234212532149279534144530856841751252910110226976775406839645479166435425746552502386484631396929739754156015417834659609183495353391016840536007345216598364174865944990426471352701194856176209580274037540353477837962236292950746814164981254588405155216481748118875354494160768186454480964131682177440291477837491331106594366057594584784419414479346479233313292852047092526661348600973808898947207489789976618466805688420102615718289504474416142186769143493341731860755537190373421431496330959798189020930348214825792830604670216309052570463214247753407903469471429994055805789669758521609057331953670692613108910769641054452665931590668947789749669035762194124836625020424197063424931275795353336962260359542430737905850006012789932594742008829221431012236830091477956949056108873061726271771680408799783633816397678357318451539954247808575143865346953729445295037486877032058726211080389671110377521689154424926935097120312386060240358887701607566316967725404166124442378573261827771489995252265687782730804186960622820756903622019663212833719378409762749521139843677152987302968815069030463023152362132581053956594258471101236208039635962088121659199334131815467175133685807433945949387107185507327285994642032685743247791191976015582628993864735447741370906237582734069283320563104601345613255452862726324885330100061060909882240323131556691989123543951919316096470046606872324725550145307490241941689642063690159963604164777276187847649866382791484221294763873512232057404424643751139262853147783875304681638330367793714237165158225590830044140594678743707792722503030613448119710200528275064471350580863512048268298348408781322491466992836810560850340248897691980530423584507247896187887357686672117254803139764338891536497593913050009786058815651410392659584565887831677887637466239569992748390138137684272567506999856581455545375804397788685855555942658025942640264935438900084993292430680517622442861220036811253783562371740122628295631490121355102779281502237926223406570398395612192268778828592783539047139174693746730424957049989951981726673548809572480969697499124878196529975501241988357131389004519988281613383012298798108638049167062398490822335693136537033326160749225941971163952809310540170517720777874323159583590442181634870093786724992943825069011363023623009891440876639124398460020845158574580987821688548776316935879725558728838793111838075643490093245502032962295617005188812944777819255938865411033264801895861913643649335522917175701231317271150976809255279757139545762129552653444727986352246131715175796694206874884422087831846829815718354337373845032799649173591322485101358854634091164066343770011413437528249012431576088470024090247225106594088052960136464092184308493957590401400288264764798031207526545826325147404855630400921649402292858996696784082361409224774633849386855595147292107891695004613108634741150947135349993618464376449503843121431454640929322692146170831780056144109563513459648237784051409713786124060424643485151695213399607850589540560712650149320569808771908582086538886445444160943531573743221118180272304507388430433757362649896125818651338406556941132321836258459774513486433404202351972589459468934118651475655093047342280748916637335699779738344963042917639904852310885086380804514355175408474187990767753118306992081151767191935860086522067017786139682443017381382234830326411878255595524434645954780867492728630566879486426545816545479301270693225621864668960267906075392471923522258485592709478227897843239063793225415431451688333276696233355794996959103711057292970670596643495031919220237103165833259301053732933079918334924450047128002985388893767574351437538145121538945299284971319024244484165467759660436284396173228706983971415723659275422510698785022590293007288680687193603390675082676937586780703031029273111765577801353194334643665436181391234905420373215351300691209866830125934701814561434245509870102682010566912715820781040650234986015585111773382605665550537517176583450749168134804320840010174155297856833943507429587266674618413716974076483670062088641648991135596319912661873600031157195141025793599652016834257533777637856435168994983524123404688810129862244719944993898941194064062748485768916260172926463871519535842185760366208124517171505233404754020414318154581076564466923553033285145897191269385557063118655140805492592464530189190870822762975598505312362755963067451945467856748722938782381739095828936491010900681414274056932603396877926840038674554138914546333095870289145977820615159505454996003987207356918480999047969231831389146235822477293799052606652784733897324568870538418778626471119946888613144830737179209357353481558883990809733069518459739840156788320139106004075358379207802696916728007977606238041207196115206848255590502219482852783461964150806263702900063001310056702786834848121375880435104878379332118237825475251104922947876337790669790547255560228624750421270713660217275763274418341393709510311000213945208011758693324354219924395406952373318217676450503876436535904505347568305470495595005217513238222454187570354758449301408438391950310561072708263262447020874335057222559690164028077363787677387034118169619410863110725577330796243181811528544327246630059457411248449580336272421293002449452127416767391435504242683627608499146942571535132919718164790305624729619657064452967095807315448765223314017192640955972131775804243176669067607534138574003666750987911494808304985964607922361633585476972596054450836997682223436434190673730400312634993357495719150947660306404291886341753685800095384363189513105167790738695932593527399481906294546364182964230969601739078298779127932599551651789239194546552842616348819185672006490226629916056037046682807443661468223897253661950904943615293479772945334191351114218857108674240267922964861966492740609807286708353738019117221105744404168815651910734283521963643199406456354934101326825955538106075228416614265741522994866315627511027102332545555550297981791239724034367982791327291383030003742598510528485443966373054950029384692150680348771708517755982133745761868101149619144820308671179691482953051394920974367115692578265177996350740620993823159111433400944469302030026246516200302319195125433210938695909542132266315642137341673722888056221248368299521938180467674638179868174500814835425171460846101868681815022263493459518734132325301395216991508921671023606861101801260209839387990437754423883735950350744924322953104939833927351982943904136690399187175075526556806992179967869958057435479472453441997618125550355617820267478747914337633529556704436157919043524387227705597135365395945740639901489910598477408136597053294337454501391324773838131292092881330216414144269289841884779951072482997338352454611637672915704352616576999613499496694381560418171131238479376829047039609702223139254748088677941974616398214901205982252115979073583003365872465388232776930780561923330402320013100187886407229400428452768653646941705677865085393958292443328308256309286465604602372893298925418895307984728510039933853762543749220268656838101460266984147037191516573616031961619830526098164718325646904817481855590414840341549976672486188384986280278959371227673493351846636404391010127402003775071572193621376036409711346283955294082770445228906230137009160649858349979800059653135490713487197879154103217259661969077991159466796950740690897690474308681781109772049555737398817237620741030762067818943317622557234521695242754648537907196788540544556209503500840460316743818633621219097565494906733779009720584785676046224186605768756339382248667222776378216153403512108310563992648255646784018534201649400261753577060315974335519091938679570817980798545857251713553763791231985546266238708114576766934566783820447654727473450766876699793025751317772737529020647098631621720498846902474302415384565212474555543547366849487504901896285645973700402437241030042702820529632300680963078706521090849669723317395524298667400852708178880910790321362531968381122767016289100777354267531860344908807217338259305473559479178616008507568616796398059075817773831305174982920831986964088655692502179857765226229762447214736832581054984948422275497958823603599662343011941108811705885406491777196733713961646375794371123682100434316504341505565554989508386000989689334193925286333199977181620696916593470658447089837620212260875679914796028130911628924633204849655232540182115420397752540196497020770754820276604515667954350130902907505174574202584342923015306172054370311495745225226194161015097987958776439472233968987036460383421436703803041788296544547239256213718958241127621386305091358319808685136772365672147847679825400338466002431649315088530619812559131671428259427354815869531158840019315406917140367701635671572874639041239374438856639374589377552462281674641044496584392463094643542362327044195501558223825035922283495355609399795868370882207787672573020874361432684001397461634109154171868250278521411380283840733374846276539983528587855868957017271474373218323921287779490507944535868630995160476560859475063681581995874455191320358528741727332123429237381295019287507020301292932774255703869475675611848689067486819873872264753161045778625984408313692800947189210313693635222355621083247668508588413877998846515713210480784378690086916248645158698453382250572974333018375856089913095887681480860266147001468423214039677042693868723851212565812537599163229893102429748490297870788626698239598778096709080138468251347429392410036473712662663602538789416264718297803703294908982026885379573584841699328227861815860489249860043786418174948039922382534818423094211394208626212266673256838196899389712620931872021871230412847767133045499006342227552524794199253260782374337548048889241496761059706116455997769443213912893728991339408075160008121449142657974896641425964069480150633698713683763378647782887072637546888323866243378314197335143763099003843605639679233832416471252423592040743096656003058616627044201593709882820955879555100654085571319214864833406638595542413711573572776160544948296831308003325652132193493001258682166309390570585508487652647369009031658785851932087229764584044722698702525956468013754424514613202629577875035854260075918915500631337949527038084356848960525369269462618743135593755134548297223819883478021224946156871919450622816277978313417024697346314387044631659100486130078712069591058960690635150175790756601206611721431953067524147915920924378384049884246555908610220744983265961159915452133096699087142711431823302359934335692049211328708834313709571119846502519858474939221724142412616159963057580818138426569443365186666517609000807749835728175149583932706340800431230586067207398963000406296131661585327825770789705503226746386145843813361005511861293987802274772034701574310226604196743074106751441190657968859421482184466255721836598084651057044444914980810522576078284573466197902609899471095633154141272269898883747854490570962114335786359773690464745877157744671890155621385136172843700852984352222183592580687465562400705093081818991893731376155315900676448958331767499267849833717723099373107370733021658677741461384567636145665457598455266340533630847592825275225803271101577757458645399254765923079704030666607631092777126815467810458482962820334036297569823798901961861577528119220986025159419025606297996826804928162774141714226084191550401495299016529693373819024656250230666717949672230487231630590977584435956840595919318351174786197058765450287013791391430578147964313132306456003912611573962900311036954194933800037650620092684427266492276907320981303536658672119109306775948736732294084908523479868091541427048275103553500571933870701395337727129332974057799534338062255711418119983394013720930525328060843939629943010969830022622507025250676136017565603301936262559899362853932846958553041412350637123737226815725487263823562012050187740535293305431499930261176042581112199627385534152239933178547377342497577827349314076088963190134890706539990279797256540123112156036845929029961584687656024802957976905169434792477952568908620823870958091429990001497554283741215335391995706831149953528182340045273590796467713810420118508375847512924385239454274632148537591459228400332866145870146864762907728751186292365245436406444497682195505279815866381661192009429451468363656517038561874505412651324690909521589184732570219387267850352061195241722035707382636141207870406469597445991423314394741254340788073166879518041273906579602661987893064228949796249488024234006743596969563930544312427537682767246762296161778916255627457868839906472179796712761346708246321637949510058463432547711476697505061738051380263618850489291316949706090332913496070159408274023745484093588187387754886977578521580177616194848516230526810499244018466151769564093007208815556391998806335389522583157802597410802234807427679796237152748882128667078556192715411204934371395512662605363130556838953255334222434694669897558780958612683080269459761940248734900536795910058837596006398848628265660456579619140932980882227964570772833331359326931638175978713022069898247353412055450924531071214961273356055398434387516462059822024209404980241458724338633235239841954593735501096557549761495469380009162389854998482912290794312376568910607011977172146240091569209462196945169510544422392102663351659744300819484558836767424602084096834966644329521851446881593018235491104688262505679055356467517310727337955774408274047036446819228816126941903004209204400023047704594322562771666276419524184303309046346763028257865031759226130030950339109849218388732302171084551257387257396924987798989122994389771929741589854866538949106223512398253902290401253027648591153235452450369947792621575632020078610568940311167375996284412575146924195966847823002984896614361301726504079474173450713409089305907013787140467532350535202206782725849010312608473104761460069969714346575047493784708494751409772892663912475836227436409037445440127630889703901596994189968168617228402757501417578820850238141515432210268051280073257554766901118382966081548243535626832429713526765723254354739688837500261369406156056718955716148484369444793855918416159682835649066234583023559489847407648963106900190946716638108335879680011759756445565157289987539084593225757861872064139731573637783763667243921625605056180021561846613258265234381484103196276904558478836958038731764283854245048148364400998226740286957027504304622174738180184961406715517844949006093831596530471517709572991273258605413033163816984047580210991677558224591611920955703825496453120047753969068215271132076440503156610363607824183056245269566023402597554405940480058283051885079300292989687536210557186817152151621794434306610578352773951832514422406718570217286808417210294596879786148358956140623597155537361551168630167011896134252112767359403828739547742472453277037377582595412818469516423291427934709270012327742654038516070010647010677216486304687659267953224887910016252534415339162563265737244139897080871110719728609588687468171484720425270866741347010502714587384349704761090349787626154408604958378371524121814420834116320012149602510959529325361006731970376125781498893869671149731708425316126208210387558209102305083832472286064535308277240957975846117575711138941720477625475043929421920310530721464663082483037570598345201943140170921697409589342259734494915139001687736064276310332717042095756128626462158712930052996689466347563925845500845294007540618696509412703939532830157379480320453279694482248225481549076939320279132332761048490775758632081037376858706693370538521094379035306588466627855807851135054196983400788351700533206763967858631938525153243403699920127599643631600631724450090342539690680061894532744189284045014980951661185432709814783197633814467842709001294059936144372661374882695576234598658303150173694567526631539652453126528636529562736276075157558538741048026497809758726552758752617231066194670818195421746837975797102036143255291591152752094210202337808201622088364007121253754884591321501765961553303686548698543655185642533378671476235084477993997806988831179769600723266001086674992149203758042788265140170132374727713961330560735363642919727018329250936618143981169294601404185381930041101319160509240740574684759505751140817847538377220652790002494772938491803859958544955262038961401832781773006112268494789881477191516872548221513732242785995326220387404452528766155010368151721176066875012473713522125377334380075809126226117299913830104593235914688556646954726747030119114800486752662229933378585605860845078087028366547615252714838694887345843386217500677498067832572662861968125206910915515936192484912310603063450211819471263787074179757525125112703331510020848635519271428049458120855373803022075566409506230027889869834961879770639785417370472741348649497434672349881255664241326606526308435390976018501850663327294112148673196715344932592118857265191641464729958477644854129796410517915396421996409485567447328647613194788374279108461324050980927948550806521978417268640436196827083414572031361775424451255931733889152571396769042780636011339679089731462365846364291395449495087109944472400753162541907207441784841904818447961558919543240712423951855687809269395065963588535416815370477955345683174609674716711499567886331276366052442492098805174572710631378363265418268778743321393593024777418720081790398504624625972588659779155236050365656112616140243022869298760645277726776153600377629111227675393247244275574968955263653760397410836875316895847020457910742573692242729292814433208710385381962074017252953674168195387931386248299993156725879818905605817536009306695330824381802369315786097901340077558151466627568028376858573338263032804322262757213532866521069058885369917570786869380303062370132850377007745349650021386835180081798307632604484809760629104035506340328393658509285585933439719069755563790274383541605382517517357252481615137199618422229146338127894998067203494891896602266413551150062607931421336436171413879747494893955541079636612622640732324010245746386197959206322167193318752903150338302950511790392671878511687707411620066973473486520815468412141319090962560190866646452317316834243710500755469766075579345422998156065475756321867747827607727089120423484354778503453621979650907408595722029696613981927247534047514122973417474050321788465523459856707742126580221683763874070082991115626048793483700668131365397326094906026520701963565634013607495632078525731907988510885833978756003991666751959304068295446314041212997203952286301852363387352380932689773512114155947195630852501823152985766264844717492485910840098460419354373366840079009108618285102379350553782712705329847596587048770896486127181646423399336073028377730121285139241028234688915417617995356838304177664142506772211862596299171688585542000325799533512868807984456360054074336163804600249918500169843712829495838361706959005052750538508273662483552721627516544775635884663487319021235151134395703314642239110296445148580949152521944595991480166519525801807649124758609427231521516102954542750567327441479753456744612899433042864760089939507308702444308891964923756136441368805577897796213303114037222126325277908468513996311117812228110476222828240524920747161308776521307664731800863350245223965697601902748549196337902462717779417473573566347036453227767370383530546029813289940101787211329058159894041012703983131101909557122424396096897245586530402029984583675773327831980063634326094094295344710555674865867623805018533958481863049860165943982051216071991303670630816370673202162546888535229854814587113699459802451759767813496012776736435999707452678634718912018264560746400994782740324816781378055923929616616875338751255319259700270287281681937120092312109554198383230700032432847715814414378228746919144398961893727580328779275795783806629894320978231233547568104601249444556717995652210184425700223881348909317324558408941778631828610294290470970627781530085181705571689419280417842546999766897328530534820752845696179860254081062982779338595288963075390627434906746488774856575483313855304652426511997487810023391580395179238075636845747569969627424861057662726222514153571149118219813749588902433269112295291256508869061133111379822509023261090558957727239605347076439092236112609032427729355278320465734355465558688609768589594467046095359528080758070898279005575256535404787121071301139429066845816346135689073938203968009050617682083479448817795041187634532259608731537999973826013096520071476835197097431305545427432336118074708207735524973675732951848856948150029671230146205011914251122885809897002426340351757371763927915933830810682012686183819190134922245150829216996661982541849101961091860226529215619727960926347052785655632444300604987344322195818445283176339133270533149448508690544098201473311638418716497457307356934842758211723117684140795588652928074702613576020053780512322418459000596971252461258124215559481318540896715727611039517800853046343928037909085218352784263540382014872875161939823198543932985568657156410462632733464899992679671551678144296390958815257281166110296066001793633047889194084660404283779163012141476597478692720144591718691715920624558632083958947157813691323788399136277307724348715557066881252405928443024557918415290899196857232910628322712269614363974701895514534267566642080500077301933820165892958634852410884302304536019489633072264447526877022580649634568408125078554705888448235654905726959892332989766072088219343009410014513081477901897427246921300677971832262669903981844438922384076598817380831639803356087765457817227284581962212970871302718781340191913593069361466050428924434598649410869231278674841981471374911842522171932019413585612034648948027713061501952297394236912258724763272778244105977042451638964967901134631753168826083772465008112218713782402234238417298763193259904596290603697685981197464075142346316221388593316068250170969621410526698044511920115132390312699531180905103995284153326342095307847622274137429847707182564778696903690130440251262587814027571103989936507504656280837622080834578331675496105948936586799730052252409367655837217490576020034840572432823817234938629519985577809059217504850882613435189359768946324397489811548266146380876925771034028567327021799838308935497866679997830582909408694964299396028410437200586572957014246735815158484472772375149149316282614093229747827855393112472684402254696567107959394918101937779198452036344059893181414838499851614031758127269876161897837166304763217900776954159826259869391779524025567081455228622439166022912049681869005473316399532578727172603397654215042803661821869098184503878001954696865126591992440282803702458392469018238072614150710738773304424009707051863952157810394493010409776522703260788013132194290940192663029620318229651186268543413498218665299839488821259406768496925553746450202733716338553736053693107534663034252804924793800732446180040836227471255046725801079778807089825617417157022204567777243875297794936896597323694569495566283393551589653979249733941194471938280362825861810552644072718493095468753264651120241213607274487568707569732109540495199438662612764404840476601111037051554177441784166285159114625846315560140035722374361458916342306638464013086756527245434208412062027102394665407491284076808228895657404511127403612276451919062397152527042808899689149159670485529881907028106843953660060001995533374501875512925832185873289759302079732101725863324623767706562947047779091648941339566755988397137329826746415669806004275746547340538543355916278747832022686691715111883891596492053192547603773738636179395817344980843295281245142465174991045998176659995982577978844261449458944435945901998145489668926301851316345224571971567161637167138133141374468406474196752848986719651675653344215986138703551614845784412563271228203943633463093913246307316462096218074662044022783381059177396847220314486515676244676861026424337751039158246991376497301716988865038176170719451776120476387592204142874032511773513391021043182771142110286197470811369046389208649776748840701950126347756869108773127038665349166378500376260189176221829220122120823036652475857272563524194380617295514119607755022881292381483548782166322668011354202685451473496168279171109381056789673480671928321768410916467072572181537961324657290883146554039240577890699947668223825319527379759605153277900690074992147658764825307000663056902116439107504465589219013272342387387730469191440884969481651448468553843998030841937656693188245030748167637428151384181381617745946455635428558775651765195757985349720612082602061515008337653176312209922833470413235719070059103318512321850418501534508543738854146712696460120438931895941348763486297496141571084367983767827199120633485890708805428535128611925224633610715217722447875244836378134270568823376500110955064068972647957425178437875131082729610970291253972879286353119864552676981078393201420592218400137641951219515883192021712084547243758442042662005992447478752079800850337975785749268739541691968820430797441228161304443775536879383296606233772342764026483765485457762534158475313408112044554235100614926089830541550057073557849339159761917411449188400560289935414031421183037277617094953286920477868465539718774681367275590555411607471524815920557009606238737611424390013992500228515268900254135621648002180561981721952806687385287305442238709211460093292491599405779477643705268950412900098415800468172130230183016907903980682837813582602070801185968169761554086166899807953516354385935167432188902482077812567406444873363596681049756551721508194074617982111549085875166022824264773715618093833038287287316794367461535404662680514502499523219588846642161862697782071573910639496401354194671704017842459874889236827874090921745488773165086024658100574602169792339899654070048347461855815212552453114561478443802545025779506938916428778239449679426396804492655701985936231123562250098516514157474701428570910419935327562862698633317313883677456473688902327586369706452884116758494216181585519587602000976549286655826230981296236268356225834626502875748392644964367200459881486297556106922022304336198140559853529394770826799228899251253627290581520235751779199465175056778248510749924066771813736927466028263998432423703248692995021772340082646757829550761421413826534949160929805448605558288144844405960521370907459013376580865951508295480866184608636800980870049626318465853037025577027590054371383929791935993656985958028470549207345215059205762845207637770032425991181535795194317707134905660648311376165495129462561500923303470419942002191039757589147472702283994911522709675973518609782304648665849714175816401783863323022923172991636694098417407743620739550648182992221849389235503670550853300610337750690908716312460861361965233985820373460630443956163557840324190166982689831759399047789044761975035789016293063956548846397111784739157940701855910317249078587489285886643745292371732994100216019035093034004136477167397197757596197172921191501657819622894714018966654373411311963541313468383655287991285519459543338240672644112427666566831161989788941139975116053004368006210452602307671505554974874327388728938494040729480715509573891447916609021459639395539811984492603289733935375673431831202794760647014913570037859776680566168891791483585076733197105632395094199296514018860387721956923034262486059476082370738692985548750417999710389938379409815387164876016069668133138491739214191383912917568088794076313596796460687657269674497320057230834836793094616214330872355361958549732862414371869975454197975650181936991079934891594385775024822234389258023557971907875602832199025028926698917937947330905888007408808299272599146460381747400733908751548773976034464966076715027940144714503893397113777783569826175258044019623205890724757794145798124959077140087839406136831005169453833579975505488221280776968364372658448416311249708509774021306940013126901417040493464953372579055262723808290367702955482725131618956741127234803798070923787002290115813414418659410965073472766015630430444254509753584532162573300881064274216957023104495525798976060928713632738962171007427575774899604527321185800723072704283138723588177785861477327549265651085672838646746793216938248833212933527218286020426207012174694269098307594773006152922225302114389194987908996422527382693001561617230504449767953757931584489515660375777419747018613296375192555416607130849778638460360332873881218822486321288932344874220858134370075747405342345963303186514577982730741628637357210080232376196178899515907561012577983555728159880557935574262177869998454796688064506771100163452666095652822219288544176727955752894193141835699259300651362733006191826097542985356855421612520583669150281969063757964417783364597378239057944184055641063100556546593019006271195607739494038793294329100267046918571622609717927055362161798946258412244093714109843892299646262202855919658091214039844924985727539611503282643677525465017059617636457307364916846144322963976662705040988345647635863691569447276503986176920722177738771422562430145638642767825032892852490153228007416368184829587159295955888771496726850399508323666831034639199130168875367263508732711206911405208218147000909849775246371187007929628300653591396024035139271456391891549811291783752864801094164561473969219279179641512119645953194128362978701531025294358122566658319067322951803697627866356348332996492115414926017636539130854603804834860497468065212077876689616465234583906341259832829461864248781457016918177331425129729854221324001162802819081282761549416550184386837592222723070592461079536795922865019105938365870762121979871448163424373433397614126286912446907290240579931149251519318468497940799573762861810700388571043399968223896541498349682790915228766266171119821301937768527641961872888305418253430053499267107264881766309488500531249307486653853519734602891664151080556579540676850873152779412881276547744439644499562762935963999626536799422297261564196874787242784638071454159452575040301049731874295531736960656828423817802691799896898025690632860046828846907593243147013330720411351040135687538490280529537990744948436968566973605533977264535854384549046572769500697840098047813213599508737351614173880540056956738648405727810894685921758823299344997780189691248517466558325412942784755960286070986905714898158083428259163933106896794166307850905229300908599460028173368309795520398813501325244299433024056444191898696407186813765826167985842244775472005022482843061137480531717629811703030833136994618405718534274013356461225040992137297491794964473755178422862817001370540524128625242327049772034935038043733368441764752074530093326881199828635012719593695846480708742749553752292767568746842111544895770902536653134799194746000410804890633329365844969075785931145149686765351666866725436230498420871985265507678568237995038080918971880394192971178187871610845998427954853033547064331298309946534637991649024390842339366377789137039433259010732974150470886563076442261668284515516964996311625510795804493745319905512401178362082404503714605545588183773834278678759764706146552258411908373104646605508202601874873258143479450814571143972124708571523716449836223184811430180585867830743031260065623344256462887112926441275637187534668112969601554865643672593055546906814310182313037567433898256088268024432570350550452690522039315393715229396675597497535409390118599826031047095223235421123857121960822944752391991349110951160136423886556240003812432245818350760860545579044838886537489386976355439792738367545602862800108489447899978707385257011896616301978526247176812199127353053490828366458312818306312380142064883606949366093148050971839905874104648013783192909099260509547403003295394267539455667880151535099141439733574357655156903041663314389747598042178866074078925816567358021380705011456325120413541578848347719702032545162925772667589434989462817097970842504168391289482984513535111884374274902329255837942969686360312310614513064378183274985103282755004042063036795058405768302827963912170080586647901687236190623431321698832530357147383032262540673306979483908274750323578154706933073401877804455217527305734943636325064461156821892951207163006015175600808660541821580872752817230789633343758736486787080343812719471251211859931049656914552845558759340923750494211691162997488160759303515748667582237220585197763637298642670384767627646914534005813888810711136710296994986134306675966308171458924204316155122674965412431554599580567447313288052106099925177643629981417982556923213533168194379701073688567277705235328264232963208508201893941282452838193527295003183544520585671970441160014227221151273708748248386424871402908351903411561929420148361220882807069727138210975535886371303055381801398842416632481167757721774794154499107584339249451657235383530014713490462460406924839308799164812219526575822856121967370057242112225261704282216360563018456150548123943579119777164455069991157498024448138788120096152968865006483847461092696144639211526017106623544504341048653614812259537163388736567607299013792314430689850296711030535752474894818931275313327413013612204869985199001196523647338512995913964590124748379220483422837569176296266566434464617505983728249112436184015088467339311106918088311125724274643085928466390642571144857528754475598821441002828043853913621437177469930645748350268208987987378988941504031596285385930900626648145371647100771619643653541606368772139828477670841844918915282400346138342015627373849361284691197375345941561095973439428285340732973529693506803729314136707236157439625853095758253440865680073692897069370284464140073174683467955608591144318575277919780640204161383264129086147440225885400900261999164483389901814062163806380278936904225535571047465951690886092208899979315858009918557060048392807014115400753307593666635028898541991286404269477702046589516796682686117530195460140189705400807414208479231934086239536978433551291591887580177936489353481838707206281972366431282175258309134396428659915066470995902004526131974029343362192268895596704281123023950381223508609059482755982924082288971904419913111645740317360149969479577230955679796900042446292899997794581740720410938377312005663267008256167079262762874607993936969551442432568062124278802218914628259835989634510375175439661959522841458660281345805157370509273914234326324256486317341866170642294658180619800779002868253484428458337413209340026994968305698350561198883268511675131722057953202780820358311030446878076409692296745845843908235132187443590286845169241528167701726059989975339565088671717813516824788916150168052005372604985398250024705840681457770386457801820079289915155592109268811786503752503760623689832102192594589676111690681990806838528572516380493446496012639838964468239954822064294094671041430970784058610105361241832837297429707721656580225640262842896617707896108590807842429937758082793234860068650430020758854294480816376920485545589434518507016451900906883475735071087139195830917558341138326874663945229850620343829878956065186739144138166143924201310782642748614783931593300465699519769722474779724913504827676751536059318427461979130378966570698685614971790130570644552322852028099165802833138336246993152326593720319599045843372073001609116135397851065150477947574054387292090278741742120634229494352039592211038328602596673495250530092464752897905666664340242026237699148189180244136082180220779184690385871294502001544947279023883184864231064340700670970731931082541621143267549970584876998652151811043101745305150311539829028735131394591343946603010862119011006479504637645723755751647075443450607321778211535701247188735385727126084914182156420426372162688895786015968435064893060754988981508589464761021566001420608286329368061833070770648764143840003523976865881797212629495676324600191475775769067166250411180675521791072567791683411860139891023676240258286753264329392136948250407916405279779907526967565357151997552222626926757594988419987678126386346887864875040264037538489252881724287731505253915937239117101673323325173761754160630029931372044146618700112591554451613520470152792841680124559902155273599619450440767737948878668802080335927328238471311515572102045224204218987848968155156318418422202453303827043332885313223626035172945857413946709292208596750874571355325673263326892690759802216751145243090248827334816893166695091399210463957759384666259076656053075585641021742729082159812147865541985572903902870031100288130033560229799171045117197029537888150469426502233265133776666101227679230065124156586335745628680921626061232982761460275701334953016721572098235782082496414226440002423777771144735271216056757436442929151410168425034330691039985419498681770064793588382526210984528659077369481781488048542170488804966852379433855199708612424346676292905645119631803478761661153399657634640880647253972990735203286675246364667242976032381111973833383805964305281072567112008854336173310382132363986202895073290320241948979435686545143997566157666030052198730894653972626078139213945985030179343499282799646781819225380228179172857842499882586528174789192495985830144096464136584165059960982553263076459912292967697469984849433661612948990310251908494445362522987744336552550052870076738266428754787316345192706997956235468201344871847740582983959797269498875903174344570673228601995225637454477576297917513586044226243536446766964968098123977435853544599842247659456546329190951765210612436838992965906696510610536921075966537219845667330913955470383333712277515176580235697426620394752389294594202609616248124276904796527722972808649438198511068788977654287589219430057855910465812696371300274013549348071962794600475338106718069334149252365306567649264247065159528138906032047802873922104930221222718430386719867360883703946970979244216074392821067012879706749786281839874828715661126552051105966568296786896319762560766881963118372363932062486913374191287667293906497590834613578351986004243168270700448474832095113064605299481285812545315349901859477841192631963998452789020901815364430896472488556337699687535770707255615482742513203420738752228837643736454895892428036225910981401410732709371688448019135119061471478061248586297553523614450226720347405178165281369155093663023723349777672208135118483580837756948168608566383605208111269604960524878478337057687586052227711774748575265730098734323728763161311358301287725333460462742018098848550224688043865558354492511538302608267481514234477081240246153468249042368094805695015162482857973503124451227218078159488796506182266602193147544196169297613453540110888379638285778165178456859403938384118187328577861200711393792492391882448975102269956771793079237529743976820887391409586117430652884598631220947400291643465874831802485540290142392552770223259142703532337081797381481908285078204670957639845962292983424917959579712678704373541169983491765195095244970466705993375513665698117539747961079193197354362428768596241586912040187655160905902921290530938698429834783912628452561288701338841402787620455825492513328218306413946070600361680348463891874986351432387573820833043171579926697557435993354640347310696181447585153185592040300518748758712558360834683479218172149957936825698265372298870792062741096869058902058720056987964529040708567616510109712950869982410117308229305326817118584554890024927446361898242942955589056780008865079374904857045932227158142125673746995186137092629088874660208530758441288388501762776602048211609192417482156298091952415285229421355385561841160036451911650259278916769453263870736117434312177528707785226985888447026704206353307640051620066608229403066398131071044807049240160416822066438913739604809282149037683300570751981261894627046956089475010414659153266717079433876921341228775588643043023280077568361540287507381139656401586633469303755055696953384906748326614769276433282805571086914554842771539370466665416435691489717682528381405417187247598483323745477271152976267861564857293172437762219226567430245121438425849650757139921060097802747738232077642215381137761929189887686966566395406818653350941716899242450842267741229684223413374694139224686355521889888902723712282851961860335284189543850463352093512130810631965964645909464094258273960216784337332983838173380574099166678686862522854742184661366461568070988010960983488924523352268118493784702787823218132356805984728237958028234894973031890453107308029546439014459432586776820104814158025248104976385015707338765144331717548331910677261902218896849251586482874399384819124929125390542474878195361595033657171010236685187938014111987357241108642805544704554934806954571679389483813344539129023785368513376871099174316939116717217355739486926738348829673916639876791464329096526876340925375436803797940813992613097125127235296227587295497157040995565617688294105090139823256434621725425262128944204430178746284937825247142354078398144581607290277438967426953391905824281892566815954364340382375576661577486152113226130631889535874965753594020049658125488660457834066739309042295502073531041739661368325552172886498293078784938606461626558893192116718121041991439622471183200775452775258650326455617612979339790062157172624919871232428273166703699672256874629323324444518491450743216248127204200974836349520874540414043833762292539022056278348434213319302276829916364087872825728521061077663506204851762097383182980374402736991180693541676685780069795755209618599121874803392282871418545143449851207986239701447158990515610082045263308108333890226772040327852750027369407814529935630359122656321063135905304849887236871062270198588608133327502842159321110052408436395274093162123590615969091941812669193705769393050690927733772702422542089983025318730777400715823241474148387570954791654666887465963918877935979555224738658104886630027151776434863168289800153033322015406288750047115660649041779576908638524438447356725416425647681071439671709204093831255571591942112004979249013100016880329268549644033795674442155764602863465703155789879721117154204261347252350681522350852618164182153946216245439963179961962545168322639579747364936557885941608687024667310124495487660889991636283616989278013068258594245627425409126572343930001871201242670841521414728108147667886208403377037773242493914354436091905413323540728575157396128065392303316349860538117383034637597177922596050286686582076474833771787107617156354111573644975923766008282026127460791428946512922897186377981893598013269417981505679516841984310640786644182088966875925313673311370710753316161402633542265024249538446648508965504368808065734430881016868387737056857333969439497497846184485532715109450343026179913275542791236995993722009853485615943128574660707469948246778122787060700426284014845561716610160944701091267910103474325987439845203420865660567734520712039695896024459459519489932077518188686087426775212625407512957235563752283980497803560123948892940744745415477587286111844076554890111627270304524923801385137172835223331349450664588788595499115069331916651930200650409954647032271838911843495737802209107822653441520788272376438793349484589975896744036882064068958661739191088673184903178788076933727707090491701557047369016245235260433497410548758119974365831043180411527362122455481746421541456945309469095911492623466265253036156047962076424265074083736465343009479153393147075076351726781068585605221477974970112939599149655976441671381645250666234811763684835026903960469894619450138316947307874026787922161416324757115400020028776305735032176422196029259060911973196819761522128659025198944069290305615480448546287349106217729898357241129622834062210186387400239206109401878811588485611413858809163348630511059087303940349314430254618936544672500284232774787778205443038694092718567324002410740219396173719809750148408150356228196214449355108896529157135289440805488544206444761649854840475967310415745868588898491022440624371247734345968092332075995834207380271044050145324658820916667270537216002359519857708452198191766572498981420343683006210844854364856796783255941823310822094721964362872977221016431379029355343800179904384484879187995167477565594831558192693797941636160046751786720547037409404062037839503384677059944138120855842727483461015264203698747743758296026655872955034245451522243756500814346687760081091305154645154567856031637375993418750951279904289683389040864775901070381612595448374950076640521478187738487232485107940661335533862160798812180844109638721141738713802221986022965079372623797204247788832589236907652915027894194714096547766961900473465443358196651323757732885996761195738590179030826986174424532734971411620004729254853899071882073511064748974086587514381920449909814605693607228486145954887164812226853305143767124639582915820629942886523339382366921949211597296917118305507783324788046393673633679043767130214256146627292782894272785880437185449631233391996916089447449280289550213338691370940117343234223671699137296804856176986388862871549611951092678589671616020174592462353353120438932332736085703970795065549493615775534758661082920278514669317333226003585148486413602950998163861890349545612813330383572657687771240257221599129417656396677977033639285934169780746720101649543604471264489378977077346923485825876154603796332116748942048624197003651081020216211866322448697352532222365027737252584683144703298494401997751134298417840552681312705591577058874392809373003009123071313005559952205192061808350626074305210694731222145221297036633249231781155701531470754040900189280875666100142877831507116963148642608997890550810196628979857400178759217028452293105050043936601859946622107493664838054971006115542170176478031737558927996162577590906292779081777783741061498160783666857279563800555177187855036774411467923595708032350183985224065951541456201303947902674722656865948518473029401489272493068361561706655027679385255884344418462704429708429979580070814233947987985757443508755095384848222878270768110544110788191544872854969615244994713247206581025573541096660343667840691598322836005779785073360644519151475534538466841979023057798007920273892238715835856973057158510134227677844103331710111961521213427132218221180185353468408341914292898413506225566357547681428640915399226374010420595138999223089928043470556006551909100827618217728968277516604872566334247562364638422317796297249767856799353091655990796813731101339560548641837921224606264663596376482959604183311344914432675588590420663947602798416693140416541539588217318986851840627557362246633113370499002819688105907710205058552640617384584067268642243639008697942022967935643943341835865847016224441574343030674684251640008687670563330728658530557689789008840626888238313079731723351916569307041031641041348216077798147772123318589105838183948705889590196920534597214960002884568391687288863997146541621815024617756805833423344597332215750185386711835805192567604472070363651302092687919853714272651974591451241802858895033604142929095463414473160347013651622121222570070821929700757571305290061865991198992357167922442105309784452698529727024531219098840897148251815326693662290554142440264542223010475473880179494274402387029698077633255227268552415800631154356016328886196689130632087897194244638401356668155457309011670826778252539789418364133429643873548693946174594292154985969563459705212649431562583599043354112459495542652913026032143350372186785169906408727895718754701121540454199955430705734945539123012655680392725566404415410782137756213062587564530391367159452733467733752584922140422671382141555105288195529737389743330236015994368532247283696501134481648298931873886364882033176025101730531277474261119123894567208151175959609608849782376570152441691256452456103118339648290730001818709396347225480074876528646710382481604923502284712966276211780824033520387572887547134663919468357722020866540117543537739524230283090752260043503496425906422233898703207677821137603630328426638562178007737987731251395636348074295632482720675174700909361313080091253690525573612161980201457426973583794482031179382237055117483161718255005070748640416187027676685565456186657851413268415544587255706603026992140348009540541592576726631479260872413446737896250626376296589024009848248977229836493522346202607801086301376393685881093839773440419904657704508491905873500374488006307359123431626531496957043372638079661178133851071065474330533903862100429912413174139978136307963486080445028101847517873149940710346201547815429225097718528091881378647946016009323605663917896942051334130189847728879070402961189889736425127636414944667817343191095276202474013359161139142421424791551584980909253280463502516593041937890811560651724784528286805072350082021481776247348857130054189715194109070189944338793853214726928537696054684802674191708800140509548695799501436509736127827332300853787335073692096943875477261184161221252037746523769454028433705269297840129980172346232277096197097860302829534977422462096884222855236810273474242139326352107708983113015498909171974127715261958257639320198128673219875319978092718112212950946177977057400269800645077296666032062008489529077457833313860610442746649921756983794838286049117891054827626394410714341028982657988802662260260907501971587135693197747642327145236842650953495964855029466165732779843169619880783628258516102951778951033983162612573110050297550445687878450056609090545902293190142393159013643158847679930071459093448400368511622811784925976912071180297331077974798960807052671517439893960948112671122920631957096770901246532390124034001212036333980358111666704422023812041042709689888862975054639044945591588448564299970621782622245778369218589416699367168242269053006652037452449985427944106282977040446431011947159772863933384324184298611638637886851709215652872919762897746378879929272704422978020379223187132252927323397147617659846545057812114307864909907611327974715295086903745148518389693023486218511119517136430240229567236230667485235267489777535809692503566514028695227046473122908445857361643992835851581312582631939657082569770252352975493784151006283741413040143605885927200756097026584757963643840254045999204122292936919697449057039565834855179635104271001544311040083953509339290126572277726789394183329596680995480747328825467886736106609699645784690815487560331832130225900535211659637445012022927225453485566707376434968758471545637344606568433786200350848526226561121201139830937495395658873808116867223939459252750364249113816970511614888303179661607301247430312251959867232809106431106219711262840930066466355826734539642621862030180261254869032579763731521652251753785767390776034111610274859392291702048689148078205727148359329801656021296049384920663315527217923439605069644585776311541685259971154501617500746234185186542586247388194074506420593509921217337853820245874719433386794669241020088827514756214904004119967919260547829503075332710358723904191714067051891804837296998144700749167602588156740824244763550143728841874963813165628375908842034295062345434319390805164799683761158516174610082635967998142024847543584201824672670046121623866533594847286936475669807251371086234693433971309678507569842256477612348513683216634355776905611451760951164456517991739278705790383200913673792915398961460469966638506142529743619209375728641172699019233580223809313234173008353572117725432730329046621888881307526730710517877318856610238240022574353762746657810126004248298597624702962594189155135353470580046150506786909622684788663396147839031889372719125090542675973842311447683250114020418609047761388094319015759464095969550609566430998404583641301011742615798654544537741870674973784385974409153736620585598652548488921874722401340765236413116113923130156763009438262908154078126650916688066617650626604456928287609268733429429640480117537773699127443859177434819544793036598722051958713567846528885323253172200585341431212226326316149423598163857363960617691679573870978830184002359160585282071611697432712221890458646663637558115746875310761377975551704670641921156955283427640126375493447986704703651716954425977986692583652766647773128854666827110328812827191148948447978274472775507399683750047880475525515395720816018742540252880091248748403615042776692451213848292570729693203023462478790191916053430538301884243014402818661918675905836596710050745815810764750098735266400691314517629381650600139086484061426970338327707634072588921682324598282657382700977601023778918960604416604855785336543841340921702330600386202066217684793933090226064819233742080732188829527730724678753866848203504497065740950099984277787754617788704106349038559858077809285798748354438491036350418435001111471175569195329941693329377815307716438822656129573390206715140756131850401792542205218503322609633090763729919672979146148267022404951346985117681963920975792505796655561408043595657482584888158513929853876584180645736542831300317509916053491575854619155283954332643441041501053003902313961383937841950703312397452097879989896723462305328259112552174837010862962696121397738547642566611653612485493982422865026113554707358086866787208313480082176336652474278567516764660844234677106265959393407710331995547446475984905272240832897075281155238750392298775863993459221176397072253399446964293644431590399885903490924071834080756724508927838457578061515484273663320050445895968687764853300474310534600941825655541821574401025316150057059238598563913157237729132969527952954935394717283308101172833959115112871545876825773443719546380236433326963313794650678316906907718774433188235618354042302603229730972320136628835040307460872137753353673542750274308239733602652714854909013884816339318137438316221154637200791995539615200473380946233042450545786530399655860015429129440425516421864530502280630199605829152904656169399204187923169330411925976951921829557413340439006926376316228545794866219687952615878489718027446599627379380771068652454831760138593555400050640765001435874632835652630655102133226903394692673296776260852732659950195877617430082574381047666577767023692343184324411634658861536843508699046181059032705419198506736540812619074161623601241310940347252678703641669790258820066958155291273485842562151327655599407571248546095114703095274527045389192535197138568029280253241132025263653933759874544699519532051289274392951570232536924882532006047136707255669847068336732279076542522458376280905329167401752219679313733104246218485316207463918416329264152572217973512377446109369308440002901006432906618989951039465146651550345570063215004222172954596011099393834369490739051445825682122772287358284607567118682658994414221320554000415875397026233659307807797495117950201534965755273841038392494547177858547951045235895115138960954156352989848053018759649923349182131416429102959534781525179617614705022956875069951874734999886749383262405315481513717341322628209615614877644430606332797600716213634791397018830634132199151164240509400862313803296087100301694342511144777339470260833583136945893683251896247204906873530471897832718611801795260334513892717360726249044151230941409152772748866003944538216632328852518438297098342114887001889733125513402424074053120716131063378811256598943147642166715702514802894554492723182997326851015306916201947634077088936667151646536342568025679904936682520638069587767080741558895240838818077830861288235439645594673367642588865932183672335183203391182683730164915177447504032839219672033519070696876676929653922594810154142018730121394867362538851368675079519797808894465144602703996786849523068536314144235875075522259379997469952628913010633172002807553088176570565658887935336775723936897706133707857319028414414562936804630010595377102189890871618444187436531390881164584211710223229717697694779822940751997191841537183894312192422412390657793853721071298172353386082082368856177247511165222265941840506170511888961548558885469139664514075450469427384592314135451179744404474861218977318241022647422161947854305933962009990210466395231225125516696340113702934723828365363446951970899596507031543028532471897650326106133795733017970412104245441365781883585328093616267570437844192712289647361143655735359950006961368502769899618425505342847012037065253172709775977718718968631823377745733304332308709211063363130175802329845572860521692977680443480302661393599318310086186806874240531736278350883402628037044083393514761295197569644453317657972509768697586901867989206210753031234550986636175913188763640840659664645922083767986231540485504000598834516133137466934151538339449790388336604826679238234186381636623634374634083085442720287327111124723099466050302270379418005873718893452081616291841584801742839614178595365168714991124884661640871777647560295039818880069961873071993618721027965675819850655444685323523635447707641049166288217744604596858511548370404772890289625190266435652871577563882777578539702057772172429172388177685650784026862707682653437910525991520344795634894688586780509546909364362226875196796941691272654006041859822905482682689461447087315698673846740866272969120503528032921457226171426840622461553291215985108622598473971473947436424294360127087418282880992577575897210693231834040951249574399664503722031208723258475031005024243238528043461508928345676656206346309766587512811115068703099105548427490692966452126953408007669149262517099927054632804305932689619329914597287318737785352079026152897249002176014116655435968109142166088110427647354175057904430972626607429178146753909597537278453248195748600374442943750434435791795631057316693475517446846296132157968992155450853591700237123824434136513017328831245434100496348303859644956903255588795583144622921831368768489265773322675811866959205241804085862190695066292706598567978571279963556663026335662227059499404860610750669647244351960581906637122480173298201591933764433482369269959038805790691537217463890758036197861632584944498776414039333926585092000047209787323293477160332550731052605474339145084800112247947883459367241345775168840448412700719117892131037388554742614245205788897224815445908025548278253027551933742560412879222360476275619270222921943858240201301483844706855208128444601926085024326288621137813998273390750754648753391545893830653191648494913426369535085812436361999469353087117224883535042100653807523604282327412900472768390389548616194378481804442377041047001080679589635151697622433670507584448087645443748626129230512188448083011499871283701484170669130455930104682553490699885432723165298886315619418256934386356355997684426936488651813546600576352392137773230013631332844141515790446963065587813611693049086665265464225805903183583331924276425913953242914945652254706511744668492810859057930549293792852234900926321343208027623466015007844159284525120969643842238118655203032125088926020934928164410899517753246901322836766870736645958309528699613400859923111648384328806362325534804635850457389897462083432829642649556527020214075798315349690787560626351519047762336679015795253106469846202247038277565430432358273201937209872719646176085973735710170769399410332020417998628304652090660369038714442695257740026610636030227168395436770467372934840226515293472656519964239115849395058106029597838641374954794559557015189382376975889044727219157440531522109933836883303324823590574223036351462019144447188209481262109296056792685743165949641196884882808618258336213599654091958140593502231538467323123414323846782562688137036929153911868926743895609646546543028143722877136791859293717294630615402729320620600831042061187936871912834974074804270514363139284836386321469783710277071962189459713347381431780216553340931786008679471635126952575178402003672346553357736774847990605899883753789864732600224428457849828148260694604012457753044307722102446890306373065613113123277546089446902799446485764386644168998779976449168489354556674176574148424610635607512623273664906241946044340889197430008207651504194737571034834038099309470156534467374285728128874068877947081057690953842738014292745285698087736823009092149902437960906463933570552350205193639067890475079850921811322907939166179890376001131134475200176107582134545229270763016593946867588630667359251440576857633694053989395015337913896639032297388170224753502798430518474114420124440909002476494256656339004788227229088859018661604033355246998772376792298066183224962760814835791045644367262769960463590053338714050952525662066559053788405129245301335202265637597590691728261986162013827454652225692684296465312255599877030701170231988403862708258076326337756083019417706260722478950781086634097204433020078702386124511855777401977113634391377073330503139168477707518855410678637210543623653970954666998973530601703642847169982974964666676814278570318559353623955346834751379498684929032818964677099402786345422444855993082418817661640476858806593408705341232748095561631601388455192419906603438698792631328729769107568706070676717370372099904478313921113525149843903230258877321273526921272139860847414287376064541804740694141452695503003260355197854287106282599894249136472219163293120338814345409065358204763910231000276580605728704025106128553956286175012596462176416717996033311763102582183686152055530157786078266531868186222854587013322573501435611226768431778639973126230336627323330460595856217005868361529945251610898094538359012531266065297454692921727076959943134383940188479953523153306178338774601118137874165091724626585288532813133903209635114833218877255618278172472076858604238654037221357856891625427140735012652671716874714952227839896450172958828329659722689783909958595129611831003831972804593380933288753953257930747952258055976062149185601334573106992336380384912813311234621103039311902825466234243606895506394479805584853887255847689436934559248117865564317306561119300561867817546320459918021317711088568789491017829274316127050416318229848851728508624155211918295328799821888880735777904068156350648498015394703631313154848528250849020286778863643123564277527041490190816701670156551024193158724339910786422335140543603424554949348968503660867960269022965820060148233213517543943458679652350243616914725132050615302902486494301335924483895772210385842913015810201772124829394588728986788219621379358009089446710389691415857396153001999744786804252847076493006396415691255172574219111282021500875805323775799806882962927828334389092964901565281512834829166106689574221843673982563903114769334365580366367370882763233769457774709089982008623863822890824855184034118504515528865913266589500397311215865138225386226427645733148660903287986191021527723187672385862621822094471210334433708244232116415069004457936160770578019071230740329032560432820796845057960537999358605364542089829981421489716193363071361533349807614232120337072475180548511424260688775037464713868740947835670235804123815317793724034058250228708457390557883047066262403783727375859953612525094160858706533052094335775641102804297225132128691641081344405032875446798119630772313001350120332032811511478719266770832021984426873258568667604840136604642135155762055202866444629432479526717828646707557315579392161285371487045812462084203083423066946221585361944057052723201870502804461428195982705743543894511370218601064861374855913072665425444465898535533866115685057088181162156214090026972101796153317309188871729157733697815115311603988922844056880254066821855910565888153021349290248767816638104232254944349272414846332252284057309346008691983616421820713649399030608255321477701797196091757366960316913463415460313556680470984317135267846203338027427223151622547087191450959403760306816722004265243496772033869325890430124114671739776697196391197641621600976873904664330041576957662266111632254287069795370224565294719770585950032311408501594819804846778618722448923142643461949565660527336051495051310343896641775451864153850358955944182630599455377308776045644744664531259172672799185597372273174030014724067636652530031288805762691728863159607059939271659366893836070748033926517332489595911259762587327375590924856968724581056796927707871653639569789415596888086838571893822641540050917457602113746903681357657813246410168910616774517677522662178924135043344154645050248089840977041333175218349858570993816167283627170549311276381063418109993497210860202220451580960758332286080579098185276150507149522791824595037841903977446416945969003571140296502630595827180845377797893375448281516491692738711914918067247649076170037222002085193534225749906506857904257897175873279436848590740567175553175173277903736883073694530974682145920068291841101515669754552271508566800293136756201577271434867183923342442358037669703780027836683568216528731034281607123778637601236370901688716533183063594181887502562753297807224387667764958804208313344115471653827413029780066153479998137069127306660873327588976860391722066357211817792450845276403716389658917465686359669813703950039108908772073453079789119315691954905843509868954806088561072521204202524881436913291857582539835328187055798580147229623687981321642355034693381010391981432654633284761045296731266881643790004406234056590587151909376153049409663425114937295029768892219888489002761087306292787524302758722264170556080823330768640307734917512721794829457343406083610889016883325855489162981293710332850100904465396603743168223729164057078946491831312450096359814312336716193920538858583415650102627749021495181960969578769785938942363626386960485303587735690422792197692664079586558779686217085013408278120385294881107384076432417503197988776670490248029211174621013608389019084512239382978442867633383485472615991660020331709525504441642792482529103521486328749197430473721560322491705977612870713321103375868674593246321784372466613390592833009902814591782365679212561799638206263424883634367919921963566887869775482542146116679342567383094599536187448569516852495011842026975983034872675521151049042712129926083378774511082027026041539327364636873297365357100260327847693971368658931301993720597381344934983361561202495743559796903467402391716999923617341054568551735229289381412521616423155385327466798069059028191287864049128170774339873974971850034191983216242460010223598866818553913208588222692065388398172525679725325614741679344807176315846973825319472999247411791449911354205911290493009370727558657325028011811348118635988636926797436386579278653831492774235173334618550555128871131038354171243875446500279875953736838201383553712638405339010716657167291621322113188617464926881068356758724701764293868174777160327106125582440480497040824511455588055495695063971960689790870387282817229533938788948187979047852546685797350885118632748848797838028599386620325945655454595992911399988875587654723448309813502045422951339395586260169222417409119748446061717673212629188433804389969815121764969655602390069873473155869538661064636790041348294045438808775336183763336940264377779802724298760485961882702917227435675921220699176930897842171495902739805814648073585758610766048920053449881221960606820248370808124728465931535451886292530101666897236645309542978185947562323197972290831331130571281910358525395866424059594267297159972812908722868489527782037456037336477157078764692976242651816081434543210259073090003336696001876180187349269536421228836530731118171516716816248084860387448946982485365901007374982098003405579439170209502336598435019234468775563922016687120516233729172171369847766033640547510503390091789464259579601888523264281296949072409338887388100804887504798959590440621140046240189657006219733944046840306353012179386498713954086474103978740425914257499145425698911792018124306377926652375054055699414929406134221626279316932213857309169194649749539751786092643611855878405288197422058679408240069455989867350537900023541926655399407728111559278916159744465825841519748944748775969734278092567368791728474212495331255740572930139266165061205029109236455235230048487983553866111541678699546473067138148889666250511643193229330533827704753379984274033661662462664967265305925081037857518190155783661206790861035358201908507277307424704397108556567506003744983988622937977022082883597269569312972325634626865186139607304819341954852711125832290256229822690934942448504919008757962011614554741302177238647121718028441636552377609610551344212467005616822468001530717528493426675437858201248444061185139062465419551502272066411818356097981637843391336041949098465076567630334436203988949991479408718300634266748175595559689431420654195602050175052291166136286030282826182174291435292694439526307127889571971572705874100985069042756436120891897894085496837608568394735769269872307604404197375208688553091695743490231867866746485805792580200044577245462633499872542813191667135204134539570125104681536051795910992243439996890953227951248109158000855423410139269875949468854098815492848832735499071729874158078742843211922043022709171182025503399528887312696544898487682535679041501379561440847351765022238275968147677179534391568869547168676024656309924015990966803754600789382400913307368389839162328063388981783458775399986163984149400684334322126930411130278973298000582973010412696813595456458837227364935367170720485603000115172992357843817886473592888628261174579441259744023226696456526091647756760025368781553119447470316834352309924832097243341293371845760322772734803998245897340942484330884056331518236210597446539383373079956066094604396423318984965595156724897743910198210427083635662888479112953077707036701732160879785536811930223857810893187815769343933695488617526552868252477596271151280066353309088654007764595973737283443642841752892193347380371568795117421944267763126147599063311165895805876780251844518340170303051495566916086102949594572509693964464237112874718530934465873470985346300394680626475092998575269619025368181905629604256015489310249019813821323275826837826247279717977838775421887665033801743322959280160903253719305575709297351972735630807033318878742281688395526910729312877224559564684988300813192745811233096554944465074400991971830863941012477141929520256123108444657673242972419608148115521082498899187129741817485796637444707956388623172519668098657396287227404682254569342687989201328685553719890088785769523513654694542570457884325090743960763768275340970555299327977747937554303481158370380551189431309148647077108819770587430073624118658265578908614373034729934178910160852792080420220145781782775119831535781241253698350251822002252184358188766915594401873943586795459054472960250668891176162497096792728524431932178918691905602697420733748751117155988587856874108280026885071408881512423933711767906485358168653225255314836820282650082001787087491728341516229743598173150113203366791085804046883028900955430506204087427881040865364760628186304278156073615989325284384751837464599329260316755164056897485647974174226736306400353856954173228132538237988899420681983459864757011059830059966180282625466702604638152241553235096673494581466021795326874887021299623241628627481120055550352506809794364736274329208070767803099609779433095033230058180695848184689341297712899537198270189842779675957837978878653532514588186364619135004621714085708241780521170220542134903218944253014501598451742562418800068139356061144416312806838012699731283991264977846311003410957176699794984940633708866404215478545622136889188469852268941115070665534422436942174456339444396606702365859212049296948617266738505483584767467309982046207392948964894173757918939472178471655141104477861994884393564115065996540577994174368971241996984045241767271248849798814368596475276342712798279100190179109871131953474554678140283906155952798819496322581667963276417009785745842917860189491187963817619636159840426892490743208117012016669733761074928510065178457799298152195700970411489627700804675482838721853354901576651301931938903317903150284515533111956221853165465274433121320103144752099070633582116165281161266928453213522080402083628816843536434903256863767398136318173398349873674392866266632120571384402057534900253265013105373295992125501821120475120782192967669467357184272307948076338173037886719608532883956870470326894088437147490015222359315397140609014257939373799422696054588664399890115352232286952461574672094247254530201657014763167452766511314832994219662599404068647657390607753916593438249985503580246423947521366101463481557576102467262833807444802170545089681613580943064879543013561373969136501082196489992847859006417447805066761272630373188602529936187345528133050753912683396626218392724180216394142364038124700015852861182868173784876295155027973046149376851425858617956261574143672999679553512373846814854746130541197272857225984485449838232475053353268681817488666180068629510084063277717897224652758104953200991829506791407083128424262481469481623613960682081364057235698064618668468977569952609202649419916268656310795260931850182400230747739630738318450033090878537229200976065918032340603091496297872652823159082594372051315395210576431770292267770083926422568293796640690157161825584483007529976897372908839739152801345546743929285847570049999467414507083604645094122639680096912509557025456708601965921013263059616842887651552891560267471948008939677311268881171528665912213997914900254125178334934688913689554023844600122852334264663050127414169044965661598465527873337435758283496240147965159787480969208730185936930586126365415592284424849967246957833328327199901839469868533807019104085161268258166545726048070270309866892230562514764536250220740461561489769859919856772205680788731357011140355001200851497033331028759200707151831061862085318047034488397446503418156835862002930644341477641033762446507977412312963280433615538709803707877605319160306096751399922234436576547355256115141954235172716467493872408975507724213245149972789204101320350926494473033696481567887698298050704892047394413471258057677601061415827010099487551135212851952236866221412432636195026603376651543791172158930463339993175826625920945003072037590886880378281125274630238312733771299356821111871729511073970853222945277222505810961435901804601089402177698211434506741251299494829200546711572208926594694714306658620205667299182238909817328762121703207813873216143830608160630402001198891670940672411790590054446220053850235216199733079538807191169842948586753256569787196058845588518079544051592398937761309277082535083872633582042076197194097791594799796979007209094157429511339851166120304762803737745278398266519142028825024489272096359490870876252586302536384602751517935880814885718248027528609462929262930500914917113355349940086552733351218165895390731097075947043317938666180277401748848479890828708512146378664427896152680426894724085669709587587613263126559162258615494302281175817953421565697130483003982855243979329443731174174991276856827255853717799392722399048588156293003367081293855415778362590140240347952207744292138105249051513604875377602084843942795179169582273735880864605008173774082307301173281034706256533271911310195173698506287269844860460520278546516474065768658670248692243683323513267438896114450845191044527741899999518277429027456340577697950126814650681074807807495879744390131922498510012568633206947937484043149324589084215654768111941246498537201758583009413380188063333900520994316516427533387264690151797735732290371536737911987208801311705765070933563792410576703094477695502087694679142157609411940342896016040215617333436371482891316826695501309536538806471597232517033764607109469382054954478260020471637335569528078845912480279885238979788917208027568375436835277472667940754538549130886685982897736729584528913277617325616212762732799305524876204182059640373250508698106128763329553457241309792870427474476568159556347426493577168333801326686791843820832305159777909662560538924840476773585163147935982930789006305823389461852761845642346267128881774655986290498603172291098878265719598002957960023826505274658585657219932323892305160550043522913983101295088579547117906468499583516324891595327343932249816323758534684155196791899311187519180878360082799557386142161552907212809095252531220504983601472044166539390953566476767140619979559520763165399143512488381006653107565321455461701077906129513545658487869166507165524679825331183074604470210772082705686548788659800193874261590909746341972690797277565961779241197145889009784641234698839812262248769406545166523414313294286799985111386370351958568424272912700580460036493695701855064445730946256378409381795791154802773735721260972822118698633838731793398732847696078656670641018668973825013525031941241755248370891491274664979425896794808353548932099275525860230184283878723259176112589781164234841693682976399187591985107441032260781486753069813417062357319033742640921074705010461160533017080405001814335585373189965325837336018350693230084131065835983055025287533592515478691849683860314523513847881238470442258416741023176342965490543953376046005351797886231609664142782063741424451014977912359005532703433955920833910288422972535195773550558968661857578221969053286274844574043825786922828181398358786333273729836284083550176997899901105226185766482759612364604780946974858619378163798013233348137778093200849092992184184759060917958794735573830289205411829125456716287010603115309582693614197529284250531793186183900296100440621153580136867561561569923220933573396028280366371339156304706785160504926019163234508395989656394743530970339399392925986442224441646733324535575929262182317007225074182899233454781990380261361381484023530579663653930930054507710441493040971654207594225722835646458075486687835535573638529473990583247282250162913698308288593093773260415013186391485298272670583576145109471686210036509435457342483237722689371207749200271457902671448080146273828854059563684951316319632824077774036602978571052113446316737837279209263159269874520438404163197486371872980944779623196889631402865582800024832990624669129159316202794508889209425925036698756240428682233967762356638951639199896521093113781888023247442928592382339832692070874104690586784104631752003985986562576301064512155402003489764317842271311624900686866702637251826001234640114030705573897983518410326643774192188685846674506655773916208941019584205643891205814654431514422475479576810178428306655920241001388737218144548470748622149929145895350759870042684583514539880750391457166557013691371863596289438974427885639207088942020327779774899424373202873414988780189221823558944627736528430182903465590243470291069303979872547204688698950742094785043760700475053051975208831876219926800636706820648277488410908346579285052343434623736460807007300081431386040240422997117329124911397242196130257182123931110107136749516529182204198104713328605238892851514656914484205947577966431725208524630852412292452742254382011506217946196922622212165972703558550388029157942472029989689283337322732241924238154573334551116938728286587294203424190583907601970397736342028911410024572114684215842507676402936508893077755796618994617251442823808498482517553311794716790452331372685093454784941990724355592433965933560867080274238045778370693345273638183967046761677575557565580978045932052102612314369813013696085479234469091186857366416292449516101270665178358238072433815085694846221452693333226044549163891171760969388144218775261905580190476782907620799582253532491631568819129206075774737304864855196833135127380942651506061727654174912432410317402790786733007072267564430530467773931744213988663524993962115515647331224273952360477900918036814908558570768139467421154388555048589088509082235063156376324761883012163347716615331407027823127078304687090041022226208951251950536079998692853326348159551151831638082045457412937528976648371180319983514763751967335410906902437762269300531872304286939613804024921941277493072942011280765933263124571344372210257639066775288997106247247549854667038784711968883498089186639025009924019816380940413264954753971072508386985873846241796268500379125147412141375197645711816681356401486361431624504203925528805382914575055546456061985220750969111784218284819096488199800422359841742678540353138010018604785300677297339818734658591848387832895212616069464694852606550840073576216226391291812157419140340010921568897912535920025610928084414782398415569556554732890648388550203194806073136009834221274281439847191749428831335960154463691105885518559039507348504834818108701067628406421491693454854509486807214350085180163864879253111613400399792289747183585548845015238472855487115710337452549048094567035969527007513003499599944945410281327736958044329897148226583029065960863627940850210395270800313289214686906079685976626424696884258228175402316140325289787334285959285605734132109772509033185170973291111588860695741279066127573303494363279041246988487262380556062117199332679201303443277344427711610678635381418620335994793378580931948552224670014338754429519010258051695924602571578594236853778710699522349330511065168977824698508758623686876415870818249690282394623075853485614620095810452442249782828248438777783453748930218512773245892132382476241016099969473729131787547681272131717215387089954127369283530302785092333155059042316257619193686538600347258007043871044220076010396431967094565477792629891879577779545910701501281358073014944235432104375874954070420339820790608516113359480366232158388542083242404087869746114550209130400848712644552870500972650780042885727772696347099129411617775161075554713110417172840120655973515513462241050444413214052053098750799504687981297652913445710028389835866830493248922048453655829469695622016281297652342885425300881547328790841350454193422622353787687161293111522381576411332134658104985133378714675592265824265524509108290666376259009067313802614053461713605946119090367407716520610186637955279279626371220931450386907659658058566360403418836008917032976594704222627084353584922525710307956352774895075348673337925246432428040814995702813582511630162063069143991265315344712427690406318339893225788527404810050330415539314763072238905784567252174681478064602803700146473346650036614326097500169152555892721439555095625290130964529608268238354678324352684431820875130900045233108533267149435188498558860911757972283904109962338818426892092573361231907083253106433623476511674029596348533420601610299298893383558579795895155951804132557631445211539917251189351197269007692759621943491333722391106911308179248835010779344400099015177482767155996153374119440072297096563431498086855908784349669177377193106357176107738941914358857630494637597771040680339239285762310984677151830342196176006165156530211972653753359623048717921948678750020587553716879951820539715257514348713298516662317993494771734604450498476485101355220907504464664466288108120636367921696187736104905491260505562258406175006283898495483339733995229458875848908572445286735902748862653122769227602641668600713897416752042976684458864898253688332915397170077979043306473189532563695726673238703495315764124669345776597042290874762519505338966472412612845906791220975648580590966673750410518321124933321426770943549894174033434437900312540755558161815547706711910834531791017094450709504687287906280964375719586173296987632119853835236342541817014901973615286483540888638542911160293119556986213461817352931422215224855614942858434971681474916134383784052686540407868232681944890367580757069839133141870374969542127988350852502262125304413235353943686498552189965063796891865593890666491659710526708615973180765224366680361162687243357369307986159364480602898636542990348005403823421431004851235064970356953275495969172193599434166720211980123100372708620022299800451409794950704670112872517014242963169585001369273715153191674066297284587636476011829337301157663281359638608064854335468952848068188754971110348631395581795262329654919973770221422507108487633025928029253018124184470417113874010837178226905647598183680321913978664882324394534165526551463068497465971150821682754431696345203075526296529491639138542846797216198905213015493627640442987433790784565627543404569447138500401898237373468995599024566520038398166965169550107213021662199461519596348415019261641496153867021117747844755043253625928085655807502152616834608425923652453574540560226874104997759403923066561313853301706865984531460427796554422472730558526622042676514776045351767058727350281112255502559579918511822997317276867143542606355078303562206238029173867771875948510439435366848701563302921626473832384136204500784357755067763440742623526912120886995434160935663131582658898042775911744184709739042399874848337411715158368905681945626582663761932025475114028102024529881755514037381425720545343209264036986539753947591848746035005257524053054061492373510198628271417594009161910984558560666091242640889899343282517137514628601672546371005917355192682567539294673502542005693017655013746199025365986743803471912167190822810525272589985281493394365309405328080538857531818762210612221445405906781089193465665885032050230156543550760806182596860957339307803913910378472250116468712367576653808844624647110275363317424797105946814454407698327671911817511546741492945003874772591687472983787292240841577319652840238818194665597537969115539876836054707916869306380273728389162236139447401359871025062232714535209781953983402847467646918366454322647822666643016923997334073448094845360969576726819620516001749019368291355598795412602856744388227923780641507432440498218959618882258134015487586612444754397055792124903180926008112738797744594062856253876416072500065536777014213091719238530749722831592537168520723352565259197867325496221526823547554351536396580596035732589933770093558077623611527776457026934248681157874979728675691361374269150847787869059253785886902873259724618306044045687192752770762169453475817638430743170694482013577946135469306381032655188435683375937090523735701299759220864535734039674458353072219427420078304389493527928880179845956866401045259701755465279121293673216988964974171890878833056770784441827701369430279036701912969928448252712223527550871219756517866338093621381433533762138608935102057682179590611321162445901794432071639547962497971028683444224793456793757977035324527294631576130266765206160693268549350703882581899649473035331092209593733970589363666770851647491276744049829070905688796261249507482397919886511789027995720041445395380403253859447228429119023329958120493755791257088612008488915523485972210505297648374984137420462493417531160855071537576936444068281900274081395784502524577225493698359456862207232862245759544413126111135832532940331446405135017347462640572337583457724132979681074935777558486107340632659641214977836151185266048391835049395069354116864972128343640915374087216385615955344927172981233348823833647742578998690759059787188503176724694339084673642593327778277655842435336092364740248599437105975024366834111658835090427812329726472851994559016705183724339854965779876886616651235363613936959921205041723863350154895105847116034599784144504292136440182045155266279916072339034073927862010864044352739317948337299615823637922878731939615116131841756839452224699445398499205750192857565530650476868261556975969198558376815120636057839900104546187847309867377786432818817166242739778247306398431214159767973877875617971935578639315888093583495102654163714714348088315970169891749768035244609693081233840046815969576432077401374924743210936958485537439989854582781201624826439657109525097675113900467289009656996963436841404838668820512716289161485894806164639888689254951853916423715766726632430900505502914487570707833555647071093954558352218708031994304861317092205162913933763243026929306469845204985326196937411799855474687549041303098237292953221377904908110997408876208553849624305100680189470464682326236930427870829092655493084433374750632225684433250444171405174248161385726288401078240779349214136623717567863725317465926567614209234437285060577574469179716743822726230734334409738117770069292012437168962697640583252360318837144113844143933972708737759858906363414692762399729074728032451313305006070855515381290291486934645658714626834690654972222149820232614856600309823673456541947478564202308531470375031625897036746971953900742755091410053527668440371320891108637590606058977506965848913306350003645145947829274118373511195306019977943892494675724031246054577872401328146714126268914656202237297637895227777456111144867488830225553447228054679482402475396040658756019266105899105353105725811754002303318361736858704825701493969917734838191264076439708900298463060235811023051070235928648238602795969738744778252325618254168412896024874299190666436761064460343011120775268920194557961304673362889192112826977868039187830438342555691925198286845593360180303250493957865623063456816404942010762194364458961572135366591981865535700749124887289008956642011607708361222972247133396952852724939252223495885108827514210378564215237489018380927110441634400456079781681186049673948064262614071794714061321327196864076912624125844670217173537668685521500883835857507084163457308604581383859583312560047849290208254219957471076344680692484089588320266858270520907660486890982671573345183799196786045979025441734251331978002365955595986136620413136166014417227887464779301434194172714596565980019168394941546376525477714144327376042282715616797863343047105775876588000126113404175224210711003111370255235308753839708200467328632825432048709192843851556572385092454848064544635299229447089087097844851589265262584175519540213575973384548064892941917969577483040555649530105608404012501998991235960466157331539394470214962296546224481935782525916709501345470437932059176133989724303097356829459258884062165014214208526705683004121750549382777989145660715498494224808441711360110616494303840165211292879900369775152322450562430064201830566666599029174034612862009611809815795949430858526201845102648859711375456496401746976170376811458842135886145255835589688841487893241850444750881445267447163403146710071603707238116308027265491009911569528341419782121975523851855479521343450953312141664868950852666909685176535538741254500841580936622463778146938932669464588233717049732247008076911130635684128029703760718736991032595192593994602851517299277772724483817551850782971206790601417961385574567073794478171421261397720834681093896373348829593520318387148964002349430074796892181100936164976381280530843785870911477366300948964557227626119610246585909958318398975999810157547056558880758225503385781773776754656402496650177238953852708248569246794171798897356049046976873431590412754241314015436025185860136211076053943067720050832829504041682782239121229409266197499116804670737404094945662418002190480822570200099905939217177128547290120108499792296949767784210683403013846890053182937733655406922255399842904220320523430780694266581508318249079429793405444070347024148855448841614022487660516433361598959585994588560817770262123708909983489838718043752234713850436579643507655282670466808672901596060724584576421097026440655685879345187067842149718174285115958878289742163789308578951576648076411122676975332491109314623607895333702976665224336851977688946106755510351992051639026667598575885884674821268556372052468227462418499108527971163210142674546601115920858303081900568460533836021492118728343922838495819524991507799811712550694301217550276224458287563697502731027983471313112896055169185767194629337020396294612827420858080407881887545261373802762388660493806949961648457733076226135100035528524365493698980471838721995837023252579298537077884950589858225956004873276458311037572716081571522618977767591597534914463763747154853761670307068603582153682598842019667349589169575111175961253343247975358873779115742968117211357917633190900747580322074658423794431841097786768187583792556075174281414288669645596578788497237120903051804109945074842540720250873437995435096156069064434765362110846814662715185064272592487464559836560934318647221778819969868299085253152189528141492299864875523134752063840894925686217065719507962482902697160315600784970492014304699030794157266330762493567404822796927279218859118181912003492895824575171504640093900990054232093402027504282224475924373789252841497894807663189973750598898042120452167585190019920917574399829382486310983255326215904726931318867046113540958433899952899190662209049817392854304489186252015768877039637495651028254545095503874950328933647159734572658552954856519045005085048797426851271155821079995527459014318645079417799440854135978450418222547024758824312725698144389116359475107691828633794459314877826218105476004594961776403803350864489111546532173678909752527770032756813906428575186693282706931984384919462636952364927819339960635817464717621125561967009254833595098676962799640714060051396038932596098444413990177638990897220830006122294342281169486461261550560125434469883660844632793272902967770267240818734894589949052694929575372498049002065545074210529774774614515044463038493597936358583927872365496448528796361815042837257823032636905061325719873455110858030094301220239585583161899100567784927809252932135542639734193401041572918373623009160457564419388904871573641028013416267241835722033913519012776839185891776984832850273471637360677210522719408757372725292527539548097440351952603186165123497350829678928455735915757681651864607785754097895304395799707011965760813477854862927750249095631982523363211125755246625011773952118079949619456622788912453144789503013252379414674267898469307254416298607548852284499308869480409116551912855615694649241233380934188081186738782116875162782856737898205791778402590289142382069416080350270183317537503029698661934663088658089815606889970878119421631613748164631696619789385208862040427248446571875153677239407497979976012635437935375816687489068206844723213208291727608440859232150605550583101196552727089978621887765635638411977854043646437738446453645130402872144353002745205804505461149721478253409599028228391462006004263284947203659715255354034111156985996393259897216105153880473096455846170472361606670059036383004261192325510556587351628273370135679316465591839984132826560669154665799659019840131551269568570065001173852704237824626212718612916047079675338971903144810012491026812515700304656497035158295775467775638931605867698894820815935544732423651695843236165691228075664185832619105094992677169730274151852576247758763884392473354199360752420005505447523191993671954264900548708679258364582339139024940191772282388053216236782414060292320557564563493694690366970825167108405125100410258456191194421012873581667615123054269961859872629501149697006420158881183975054202130796651012733160042309079160633067918473911095509904513446879509987403133814517563278626840048893497974722412485091601691634092219167109559836931889064448916035673227740571410019929861886031405349161510635197845892026611493444163678012954719950942368834608543903684828276511289964959652631939287481268945873356329397181360949901914579473565871205982875948399463676792512353263539340020071499427666315636256981257097331413448143503075284199653292237227923962759137539955695799231217028617258450069819888683262278039024140190928784160154087785602382331783925544512633969728916182588784221963251108509486618891779997596309772980710651412817583729420082498839076439671680853430182101748152826659895497380009165725083321006044135441852444514915216748831892651427380049203595735502940856253726225670458293744530138269852890722858621976783961159077006970310807668349743335222462346533969597696080390283931076310020362638339651553947536053646372135526339998197982135078106718775217868611097741661901239493569949648284236082187789006954423315578008334582030547008623208929570724737135568364519450196749443760922391171430422367182093197257022524807018274017352379987276785790211171429696015821490352742922012522271956312797624603676042862574202441195348079029759046237700054162141684547075750824022974359337244104156913062554488493528982156273062199440144302178978430683228681642600564836485152011865394061283435520852643225805571927197386925725728900286728575398219659535684771584974525472057091690486522548060181710784008858801173417765869314408893883347671726532723743424029798392624458860794426023156464353717978612565550952996775825461427428327977689003528009511036622702693654194671965732677005478450011890785323692436886588860943067884444478017624056743561770921548666150465964098889080795984467222730542878047536759066976543803970861268912597931386462767669659083506776600327722219977962072060921186958776738555034658681123833290237554150607107318507102008027669411889253319154807945163857480749015605374713573030704101368386352967325711475551017735034923733422254465622735943026215158885431174883860830567911573893305429934934723979593040194431606788962962495375792651072772083588558246168412468922066745083112325180926643813905920946801872786995255139726424822928993553239372733994685890868845608051416250382899691264081791984798539281270768305265173753696556607858686743539048647641627140710050909022955626298773819340817054211202579238589779161582398207982703611756240805782896606109896121449951312873336533542117128374968516832959961682910371638906311232881138629042760082855542815523070324125897986431302254348767448823244959409071093500799694208890990808442858759859095494134885552621702446254614675504943412209337767175282012722052674391250544539080179242494101996148547517239520070371586167875682438835390377195529771656425264767485468000129130854370279370942460809138880873495672198666858492850712630668533777514803673912755771836842568994787119629901979876376950279548543744405922397961166684696198664479123848331443732256418871936048897244947756625752440302723942687018388507624666535021100081708405893236022258504347699485512188736390698231625498750236480070614725216859086174541998643756176227648717406444971485962894091210304724389639633750142891461988151885576811802356374555231026868473584092990012519485044247990402700698298614783196731242014795857694468908929384008603680934522067110068834875034990976301942920410035721084281863626610561397437919489286618716673792982511348068214535627528187164792661789596344445852604988374971496154282136219968399269876552174006604830058196450002930609211300459100160794577765687683798931066481628718689627841539699558883611663338851595708041882684004603218529012650825571461057124609016759998162820539265454788586563395199716211582494595492144586656043640784283412906948744377344205121099812479185384526697343678626446753637654704454350841677015747051161110781084403567968379855764931604827988783074923414059179378049336679127145698095596477223906953768383087057068220110958209432991484591804491027163983121209970459657766727041523687507112425420048144666109130773389145549599778607844312457023769979379584686750675166924372456890777351761431851754603528368704171288582823830701938305060372359128488054351713359896327835513439591492819248415371097001215455190859194828960847671502706827605872751993268594153009952964796971669180547576795621409406922584377226785744529281458900096795038365816263245548241046206337690921178214368981860840196956178864961087493391821729927068799139021475200332882480887112379658372554160615824975538533856075554970637232693805691767449900005139495839209593703387854928675123876446258464922790114691062798045060560847362090041255193554100000049395938797447776110218162987711508041865570131780409632115363297355474972490807131219672688295764849225480135751513966849721982779118807551132627953718038989752561732604665336757300414288884536798846380871454097140249774758065961962451824943967699989260498822317048332329104668740870644046551874874801218788197592244011575572958422871961398107612984902945973532067062894675715960409074071178135493399481696393362340953794763353246322293947176854377590781430583820589753412568460955175430860977549372750844048553676583750967207100022916520351733944087472629186696304904429112797451145289274548561420446730636989198754162990274347393331919005883546755617620620208954634329504085125012735085138566646079675793925775311991528360097874150759574981419705911818051096195059575931709257552771772511895697625122648067645827063765073281497022202922680929285144154370304036924053345634822026780233991443815740783082788094395532800554765134687569892369025874455190190867329253385479830627405474773094114247385510432696623020504363839916211641222670033709032738577263947796330869415404688255749369498260035830337480218233774986399239438680018860382898803416989349415418769883579628591566001399621416580828861792408846277861247472210917960622749454614304419749942383022929552818566435303485408200332650511718321793116853563209268740476559685714472240250661034854881311411941323898291225574578169490972329339109651480577431137391543357844223604500408628387724151509919392194746397489274864058761246989996574799799851290400652663411264916720849484898569903322967581583927572850712735537517151367128078109615910621661659044286441856707343320796173726246937972135245517955046353529721728562700268838254352168009928021916207838715545398021744958582986419610672728217872387408188275843749889191766028399809902929847696482318862960191072234994416123367951876811132060994725656908112265949242947943807273159864382413321544901387744209828846321524653636201749686954610227493794929166962189887632815447263879066489644775225868155483289172310233374826777585764363564281277276863929624965160080490995203721107297703733351901275756741402220397380826317163988361603655712497415817404141840695474721689895115618180709931545760755491690539676226377592478402476113879829120012066784820810292356763759384554592636799930110946648858564338444861205650842840662247736031815045440812051614221287189651722931235446253498883645145158808106568641395898525493493647146898154245763969658714310103611869326031179019800891545999360681766968796380440302719865433685193994163761751300808815096051955736445791550730062668334147821523664981335264375442347797303993186652544130600439169237644963494031571607019798196558386711402600609659213467771765644369356438521417480187389399435030672931077958909959843053537022985443004017401291982969630879544144853558776907753199323959784548701078963654990169590278992451356595679010723349653688234097232617259587154313999031029581441539525025337641046940022956972474270654926766530309980284864772914798782013704747243685278452803955668606071850878773625766739557319873136873093360768373713728838849744818189016330246263431768156613954332863878213664164914140634182996608177329083666693062744103126209405785510949091003261510205955036865885508487779973965232592327554537719844787626252756725770741197671395525846435256315941166065096485720076948451670023599355851686670976130544893447007138579220626554998744163834966666986146626200481590266901023781928159192297246562946954323044539272766200309403976233203438217466470978159553814820312504915022421628625277522677229658133319505482321143037037752144830512738855496962590508263396479601497387977059010327182936378686015191176743406870690585526984299722659838484034385796653393066396883286878994528105944119160885575776066727657880597391684740762114433688443912038511109315347492063104306746713153740256187112744783372898145813870657180973021177529890041028974524227352868220996557987826889766301652880828688389134657053894506803945125162020705936504599152411130789268979043526009816817273326039371478132302283696731984656917014388055776859023244000512108098267959822267960884392048792161615582634915143238037618341549748913103465197321549255144059754128756576767705813076540638395031197456622270885255589529739392568078803404482032875689941933122448456326324771764165869150338213758121262300122119887960357828944279493992419467909615841324347059679616970670045200366627420553176479121369593195206923588396615949231575015688101641744729962855189761547629696094393206948571281007745722830083274778396457306867980228545033424632154896567084455372795961338011458634826869607278218115296323132546530981393822510593925266507948324815384321867186031331018020606776192209495016103475497953717122553252375065549723749584594094932050442762482471598458616397174044491043857108879610933829388979722312146040759847234788575008086654227623041007477447796876023269748222447204872136177073157197636866913333652650812955588659534879444824994966969815693033188392424195536638174193968457806418263186360666368513662475496181878213972478924977391519328399534971384221358270784295771133549765540098728913417247080846785324001641757703812714628539685814554340789597300973895524961904107467627794060917577148763299071718073372802061209217586871073067229708408840420828506067389710992032820555248580053224632927701959984736303496711790592834352283585285123041476844353240672973614850516928182929582239860591158248349975253256039985694199892754502137229140696692559572084470678077284426132200698637369107111957724869870875770279576365795557562201148141144134076605340578040639940824669715053807518152434258966279116401675842036911181062346343105890917938221267032465866352279744030229907754563283137258263304127773418337845334843544940134474957050492715795733087025539080401869964900284372880520834572351666305257904813493971770178519725925002428459341892775518905871840352006139543569317569209877078251758765925240018973583656612363385324155018493983385554068294492022295273173066558480899921157254221576600343203444705800227143600071321376210579775954553593087774765679486931717171706518988325201884705055403568003586020876576809693146305434348915511561297442338239248996133918508822354120268366574632532457393744117853352269542451508111617104397897406392424864399090501905579924411983270688141925669697660790162087181779424617593708357515914300852388597028506330763626719747348119825629240760699498409843574670929945994637555876574333628457253221563439970037463563507624751347862745007325950215648449060588290406127670038531717026203809316390856663167135578206971648402818576920652931750584464422905786363621512845262365244108760554387296173301266443051993574431957592708640905378359276098083823072115754610390889293911635083172802899531339612573211578693243732905292117664934597737417988562307421086567557124942741755839056375236708425593324357816869539083815607437331068031063824544372767748878879714462395570809013287219158225769335985561436590130131287994576651541544267375555356428794850268011876967019331330111290673874093976238152883043592543434571598880712627832281150698671726143543842853631708087193433161285644968164157372740712800617167158423201312727965748555670951132417490141469049570426309568059899157241441612714122542594120674829300866142699068270671587601647622773047188373426259077949539383628659081149325159434257291868864639193028971573957273822025932157303335000342289732067328361029727005438999564533520862263609175853561409842666789525968693702706496412689115443724213271824883703572665375904497947605818619686415913380632880332565745997704086018271762636697714668764661082602418703688727576551343493361427225145841782003342149167695307086893848182706850659128958828580558470690356737628425354460627822342447599729505185799271792806456156223641198523538506240833460280949808318158799247879040245869587346912735956661990447464376003444422577057920818756773508563992846094210865742766657356826494961484548515936148812022678139168104641360513039608297249485503899591899392383066850270116938116200118760771160559242263763376853990525232603813449221931260171709228859072236612301094550777418599716953020559740791970444378035830154693575317299315485566319901080091803989386207000063734281549839890718150321177347130110153396970087972293941857868225185715484549193937896110991826807403481270460818098355404941745190543818591466108506089304247714869724047706742618526585527711622253299992668527862702248830848526595231740738929525104725138753842278742079005100336325737374312978576255185635667417886089763790980321099779482704699994949648517497180086167969510731655007429694916265096538913736148908662882522217681017160171944852215141410547383063012625711111122637777607746583163104699880042563022654148065064917183839693464620844566274443424026376247140960739632345571857054880704621347700945247767504221208104234210212412023829479260116530975310621787829863672368194633339413795457163109562024802741426369144984506085528121105201434022665380864369555191366035824469133980551090534103907952711933818907862165091919771165679750237902456546367794928171922201528009738907789898765787837155058271743978392996217876387812953808786388904852830444280046984121099017737733066140109814812581709735467412215923798967612740065224907586057293692105259949955456411022397483837617240103451669915914568839138490537403133510880857368845397861597173995798633199273486397060497954460862834625246164525382245669471069350193005825850685587524682243892070194532972932136258393481166719148018465321739995931430265720423756549285741743932457082520104571024100337991553125532757403963123426411677785648773039930701300893735814525369792551764866377478023217576199850323229177917996988899585058392439351197402142128264939150751971547403382577064103516786282107543764129292639347691330049655831936414356106417907776599196282112519437756924818225057220027909614340297740117865311904318944658817089826349519798699560653853662232115814038200102741573610242525529918895537054884237943318538948517367409220587459665281171198630633621045929939634980710191161407980457578023874511746065012838864124347083723649819938875580591870210275553606363392610738919824358098399955049562981501358050710386160048274909340526200795587451692111568934576312914276786840219502428265649570717313012542438164850512645238692118197254922412805787651134406820283019427545694427865187482234385065740666252218131197500478034783119209440692282690004830192777899263926255723061480136781988776840702521051897302205814675179366148043345864476204252449766309322716921708674772421168164789128051418662887216553908808736742923794858267863046616129787641657702591801725661936683363981864853797067677508561825823577558711466292316754394053282272216189595242294902556878006991581997051609088980821055553356856185061050682822521778967805275472585371472999976961394897206163318159915850634238898749216673887169042832809314923799214969170028472486800203919064260235599307731803050179066390677996240604988488818663153727249404099980122148885152003497518978359558812000316659178068790396183988051418750524319038731015099586902112208679146622579878741553105433847900509629106540760630550015183199457302955928675910271734345418860643275464428575144855237332635401161913590278415812987159194329309390592433524511248707492665191255278010667476673517265244637699470705054935822179103054956536535808202301338925390089058070296212313077748016217046549283616613987592220519842837316986819300041962600764868454255087198367231782068467083071491188133336999466244196036287972200603057002285013315701292542144308117911786929906614199341076881521325864995791921690318452284750810296175106709461405176295836944677587220683104907972377437590478864263296576190319725376537109329287203553977843246237335454870582254571556926065652902622801387134191762329014673180529055701991054773300942070944434212215304654227411628202199357719713602033402596436260676121372033898493227573125909292992038434678681832692175039073877666582492248747523263355587389610769970370903625688580181060915172086383590478094688041597765609027189548613342748296257135876620694670056444894207526227016149435911776815926088519281919702643396645821952386418069506365555577721831873036037905239988949702976276750482110772650447234208839822099637094803717092583705581225629481734475513858666681805057027148774983210757238052421499176895063735200296396737686595445929206100170000450950021093340925330811810765158496875718837123539048424771382165408347832752266335852664573056804576178257951219648790145085103949030034666692569782882041360480955195756390067449094387455369033981764478446219760831034255812185083292274742224302712041943368795415697446132718028024997166180613725665583895888618215749415083576735969488029325196651709619147395395163838744040062678562703595773740845417112181820026817013252634907319996360676796284288439292223619557704645682840127951251448545578671038544872662949668668184933168916491072680434854231354640564765480780279128489426519449362633477569218269497463072893765784017545044632671352449783908155736901702696630271628364598594760083424332703962339686406295052607306965088023643549527183038514302823786805931382923371461121078072838904191015060554910918414470182838350501257730492129011196830945631485319224490521948522865263649302068376627671709149391635759884417641815789026186498922208985387943077571219257327396721272835244607709089628038577387686307484830709146832130095831668922604777337324260785324701674704550632930460675712938325182823706627856636488202730801334074697225060065092623322052123042524722949983215584806034223156504127123683890626298675094386330677727712281866091736280675262918450625023861845502777602863610374193499189460511261829232707053633295858716740208766231572122730901578906535021980387796365387068163651972202236650704213979218231939624898181502286754460437492690712192842776108421438284162322330961424906812556070446614448445830029392977170369333909339844136946722444193307837641079957873894756128066797462262679188539658397631164386775653812509689485525096913803323191602107728704412617420799933183048427804052970568422988890941897017181596164448140277357226946624530337499449236580093744160338375373879252540975919989371852964822319830400675503476934440327168297899924380535604456738225718653622061118144497333416091377268484149477829422632921758030234714988948576694642537394047654886751910669205687958763767602409835051685782080117043023053354445192258648638735910150118760093287699005085464439091076735103552306459423869326808966836453893726184644693661500651146141001184339196889478916807331721894711547847953263869268255333102865816016617607748455079277120615800683634594055121421591030245333242446562891132395312748466633630990475058492450089537837066376226347728771190971786888514171895506460754945646901070377566763045574218625305753200910838563485288836035179802316580995031590128923997757516353133682415822868139603075815918396263399606787526978475495231364903335591302391511982601340371480111503484882830806387288518387430989843627242413265928954572816120593274368453536870033075860003424173173300466291817648217654274250568190512186777689997239547017290662366211627120687598422677534150674702558683563571274896506235143890792159373168872190491871215398381395143857295441284278370704026380687991802965738037656822797083508415589336798872775675767334189048987058832612093834706302293249461672300676811606127987661282945954739723919934742222123416492576489305337188687162682276165726901824681554293735936170761068346650562424129373919752086005604016574378853381938902168687379261512731022036016823492085691604047506473518614260127102126834272846115088602696597871187866357641162834569356614748487102572725447835592052092534170680506865294711210413604041563537228572947643777461121538272281849364796160142917385881906307848264613129938009929569254276049914477602729373575484218415693627128354471229646916016912287734300482890027812510073822316082908515213806021914626942515260198417283703383066634499892776885435065866590735191603129551476072233580136503600302126847665375227354412661011368268158643681235012712754809872302939402673645402853571977108788212979298392530610157227434261914783236540365920167844232226795213605524945565100484626007742847778601605496218432989892486569572904263200367012147403005151116688211814850063123417328459738544217095041716866336069686203311817596677508560086903221524494328265437352825063159933247750669543744498152448354575293850814746207595093808065953182241294033349798113295108964659873377490168519886649898794475760871340898876201760928229238868111673575651984679753601958348306613089970986911534397507917258319314264836503593642493811700528902621313505184437252352758289413056315835320656368057683170240606178722701592974175904388402793238099081611188223301526027804347550818365789736734818142945348003228857716045603354767034816233603129406071363956765733062209301635212651756807323985226573959209320469634010520912169234192887397812259099203744349200170244430107766219502670445696953202325413846466237949471279981130132571635197282631684340832652642628483328993773201257943628470959482457277211865043502099789962456791616932478154564408313922657301015414815433005390651825209914120714071521006648896365633820288837209220827751050379022516314587048570985683060319916832737139127926503643440617829136789759853058205848097925405980169481889351118461541264740139010726545344156999425677622915752998109988168710385002224318487673845229729011994385336952269441837088000094417247405352783138893541475569413562205241518951838229314262050627496081653226512941353924271873539036727233231664274497781646786565473727005585457292114722069767156242514655811809278142900647985228389195851124299233775370215724442656903493291905196153115776512675148953206970952078048000367274598247911708590129874906976877844851565510410386161047686637781830628917854535049929165705714860485040633250196021400108159533915434363723348594587605102012191664493445104814146838174829162432707496576817738468136770328220992451799307659857078252946212584827232041328483794022019802425156452899254018808872837918225928961187122077309744267443739779050241464976081123835949997446268867515226441708181192993880010577091793525159430963402696958042843891090429971964480019658539835316827373993290219941513283002992385569290902570839341360745085619347258894149576380177597768767925226654149186478726206668447338122200394729102948403361724128985640662313708217360303928064964966199927804345658548807819375525213516519443728556722509405483849217011577657709776012000278282789977177369767846798941652009624464878157336271838624697537314775179765448599938634766053082608951977666323281540791608413263805988422972557816789239064484341502816773381015775299352435905048102942347312757239432851217180095527469033074106129652638515583566440281546079255505848408774734983478726800835465069309891250933356018967889304109231298562973060450456607518404715600111180782520129980456149097253242881717678751290582322777244780535642818489569486029163691354892879096435439010834790179251793259133290535285349531235839239356562364010162010456462194685182871891203553802176445136698302195945031100119909325566662869928281045318629697433956300671870829611546828044324735800010368523410609725348252551946149712504669678628503642475786995444995649690112015362989843660041721724141550825540153585481925197748079634197788862822957893490936372811324257633568947923149649259807122528952124506256446723069783885140771952861159629789806692922754024641201177359741884634853975484976887112415560848321768496080361821111300782281775165713962278675858623890124853612261452488765791167176835198961100555463558371606401155757477379071252789083358665350374381717452310782497012522890212066493331999573243223016184289385853080614239683300340957768868956470283235142221239929884375097212471594268245080259551511699472172572175244248637741020026746003984322265222926526878638624157157429910467153159817587836636298178784928594095421534022477770823311221542608466497255021369657016127960045705858319948927820175158459198674836755241066462497855471898030926274499612442354714493480815584947225078350511273510038287851321302852941590069067168821684382484783924271541548302698054556838926900700005587687466370489671551763040679414513845672299507964224757939021990842678070811235036913030861753216593797630883787783991359734891292863553789341454481293435492802902939596574559204467708604690456227004556689434426430424330242163194570305897772632226186535255000838031543789122585243739021068275986460112597509496555343556664821134996619279597031736412075288809085102428749464186241295511008575272709730708118420319435299571744483346782291309141569782021625456828977071943134418799655152838764630555637574123225421643508511528816341023714621836438452375912113741835014470791668571151626205134995467642650745330194003765727584181638514840574780975567881908092732787522441103764938869432291911392804920141732772854311401262079373170630125852872881371325538967063921215135401535538414901888652478774449471995530724282640661534871699534494686332943941581457729453548794471003422287246177031488434699582941178669453511241959530237693565288512123520850824754992319039846369261137960353890609711370649709700940425049117646873801487300686520814626345462023606556665699911281084572039516992595722974146826431098072032016234452370422927458675933211472999111246872121704780678789552684035515957870392116257055919658780826515034246024134921797242094678054612758878861187626253768684695741145463614905793950324441717012974905918364217518856048098760938682182909666228551547335912496938793030679318091213870110829613393863311253977877418068994688135325165432389597995842383659491598505609126988731525649906336722674129221997563576743820922669375312820571897752146734912291434302252455064841292076419007578250296770574876125441985070395986911658698219774496760228516629547321367582718756445717681944661499372804005207763324560110918061613329812636801083899909689002607763326654980581629226008507508231683616506834359992710126411325426518819880990082971493542211629742749772522150760155671144870513175971459482248807641210429728289439273379657544694534585953187096095481023298565418801513416419452072540655989164612633362283973925491195055522034190005864701577907762889364704745519617331963935367564922825408142977029682522761340163568755840449606405954850251444448274089790217781342619584060188220178919739876353074531459390230704474488732113340485860690865366615384938800528163857692287930400664367056772619416406013725089751598275533792500791767382247764254355830605184983398671870004694376994325044689400819558721850312263090217979339353665741996712396942202458695738106201024257559819784178577008625147255362109554627134689969806630212431932577748801299068067133050460015654160920662796733647258010901881587031435487507588753746490405476203035631932617719806066175229510003069255208822110822334087429709203886128108959304003835431155788394718282617268776136202206523662498774454548629661464725264944895279998380401186251656007671723117451022821849442134160210860984664314489465104212309482727085544847472335453933376889021322969180042018743408810830693928702897496372468157172659466849976672898958642785646095597177585339454987478525470946646324359291692715839275352662391632526939300277860597158846844031699702161737188160071471987204971543537679998294565693899227420016299272807462304728662238765984679131936610282196249498873759955445678255119945302744113847470969762716379183641758017249176958570688088647005183152449307262265715693434854965250002273694998239607202069721819590519798009495029209943353668689349193612235232730173992098288426481943871785860123805574368773733247503869031730210261394462315087667156070666108229382134756320665381090666097559619635881587472451978709340438352442567338585611632783713710080916733317969121416587282947846167804357111861439334931694475799788779952564665211912168306687786651425556751342507847461736199447136136181086858928157853963485447382249590997330223948480064965173468138787119599532699893243919067175973678106108194834097932734557761393511088559210862412939389112901892966846776866294974849335170253709287000464721284798677612905781168672951092215190647913027828038751929479595553386112922851965422686563413094131979911591579429035549051762374495221720781142662576488648053661182294537010712631599296916415227678471519874291572111500040139600906547299464739697647240148349557565627601601678572654457025033680545395344218146275760257564022765241613549727821297301143647113436834351531576353837708571053743019475315427779105002485385860215108007728140667497242175095467601529231370345503577870364043319594809528580593639279758179475737227346389141148173673733985042620935104296357851656503871562040943546432292055284973509223701322781436906907338984837070610816247858953941371604553698606280199993490153401080814713294798849027317790238906704032331030693445474074271005682386098989772920526041920282252974573216227899833610013216621922622064482265590544682237086060753818379570825294719644141173340674598105192034285597098857341615517844384199002858107153301069723373893372745285779467184193151973972963031558425048250047180971091983764622483961245977212010772825763077639183105324086109492884823377772167558314559307748909239053687054297633309590659393335457006025197824554295548844816234963163295452437576689563527949447883158560532251052446066857242767112372582370316599397334027992388328076988045829187602967417152084770783895233455743695601240392429716103693311453432271721762303249468406677930431026720085122774615683917032700646690258339333547115035523829805625792733672017480054866687012859988951351733753013686174057156667066447889757154258101681431056587891911196817528908843638259155892557336412573065339793164202266969341489140072096392318856901441854994433454351841701347651312510233703618499488892481467544886765789457015675318649479966304266623933959035147017828075496708037879326157415181318066497355267797479460275101764164054023658598241025641923975063650308485104269291275952882769796474111175395381237607899534956101408906846453146378120551927376271309360041409749717433383136607182179182142711166647502443852884749906502087770716915367695437955603893897667004210453579569236025624288141564111402713068772430422814565994379107716103450821674222982361719403233521152706576823977550346913672651054383173670352078607963016875052048713331139016657037312799729205171922627783776729808495461773045142631160921797395461649834272751933444263971457721369757345372364415102017839783767634091537332303497045073848683834783012203405655456316770986602730023069144228405830689454925159309043093800201592144190020704274891409474135356234803785463491725898731713700610071631302223934906354148473631129525318477157213920632433093232305725058822400889529859193138068030853225361482857164145598890638657371347858675622625849673860379604991197300627033950464397788495593601515341594556927759424929357097567645743321506299033723746503378711229661046408769237639567894893034988623686823555309442926653970517609953283105804778832404044647619930822262538601711189854400435547225480271644532357441678041100364060075854579172131259025270050528121782184697275304886198923255432768583583388024931431288709572351625441104893859926052246448528237222397517066205639074370614931915144689694327447789413478055074970883198965835356011540529142861059371617253686639541974076865208832041616943740466950190406639178594205596750769375897861834296680518204698013274680265231052881047184488591176647251989771440255013314989834966148846726530330221930088274666876099759647445511012101739493696365556942903661760382548867229309793007462235335469996359557268725585562592440411745787764757476161850678996471953581559934489517208350076433534557649457009051216717060924518773432189576592135847853011561125799625307918476429145061701422118995933146188893232384576490092606367061486045642550745244818531345881235401156476181297321459988758269180157662924522198237925662789657482072707981102272842470135058061526778659269662579210042277095837534936422776237590499142668772834703845969628781288900547831009794489779627706339026245141496974519208337688079498388130535825142649990073248329836627555269836913098056471241788246627727045361351223616437936511748374405772367005215306748355364992256697687854215525997999281112991469399157188037108612847543098383897026575318700189929532752168161928551252347998238167240669338674916872573080134758056300373239543482651010608583194595096459858395015118374950737415673939000246013646374680999544586006694831867155689268136817249475575512862448755497311148601718075318528602124864711842320606347236548831344278086778775291736233746848584475592713455056662293879866557323256520293599891389181267717582940652223042742314211925734955764978751471653628221918128303566315151666643614660424993781247717387968762294476706800055804286927995363584526931482068582201010826250647004047871276939813491045533822169916338363233810003855886909626325975828118908968010670839742202588818152509081857937552912106686950301483924119353182337765981302449695791584433651906163788510860263253256432741283151737793036867748670549002911865399073971102036231777906859692594459403301106638723522114433832250791416342164502433631843810762093424765308641300400852623083962456782323150252562364470237715570312205197146071703575079429510920011961885988868759556599332590714111214410457831688432430651425065144967006025693947505960304054154192542109842861210893394249485722582445657111830123379841612293541247064779184391856387188228436254006807818975744988767079911240503106558929708204079432388251788593038708814852127873030794517529329871771341898890096647841920471986376832904099034689018342479449439219299639458209123703296472180689849103481247797493540681576270286044681414940506935727803136980289519747579335547822571931446003045583348744073088803388833302146268108304198282614000223892385423940340868322181144809906283110992624165084294952143340996242318090067527934843566230155779250548655849362228546863298338924592523756700645514711755690276833750595854486785364841430026806192494507521365001576557252852112527378583481608751371447901062990743719119140057974047155752897944441887784299096637256521568609309685810319689189680468432130684111590642783322178997135575768479179388361142137665109200092000877219999198738401298198669931460875223173049269670966155781749394897265286849044753701094192149723724843229481464187018262803454287244521564441457600679039431671184769984702600042996071528604763567849248292172330357506831142879267903075021532061982859187175973372252782235052846190506261092987156499192169059634695885704413535362326463233455580599185220973006743633414010134619221532218139027565102867138952440892064060150236355247120324689069959146758071729122287834650513180480241906775181775387532907357447937680223064006518393111534072213769134501969719655844581607702587473916981115495611127588004003475496445734972370278601151028122896870556004202311428483969504602145737175603858734716641049458795373163942733023064601319241038982165788087369936808624865001846456343410676428733587685406748846706135768460177509549255966082691342201051247826942453846585885573244340332691596417940811984449284113682762613903921764258892592326856155670343607329164223726997188444416210287916082000290563794658335531327837380208212947648590064725995245667840710144354598687098252227673085223544375879656007579256714506185621507445482031456244218459730364282644888823864729618664786600515449402138759426892978653813092983886151923848262934092483568846012841709742464498369610275434715211008726609110695325374020610222562904620078016201002905129199063308377601622979853767950203805424345014581949162809888281737135808133289428906956530095712464313125942481681883880137452369573213743466330074588978258686602273175918885475116378758013679402096793904038038597108494389270838898110265536739120883153938300695172607452530346001549892994834825136068243871621422084884303549664647323775731323212339891138989341531666561880083709421809682233504161667918261569268338337029115201146404921859609016464563011298846291912420305381378256393941012678019521033376950827482252643489669336060670797723149073433840458738092470694275396630276616618493458918878101732326874045642693474985410616422391554268856330549754912471191513715549722673020323577667095362716278465619490030743732076358943704590564511983767640681176470373008418823034134581945588822575838846785160039680156883043128448369286961717512704678581316387813745796558921091048150244698200123433618632053504122280673115552015169415744693597303532987452739141488972552690071745623942219578054067555945193321462629178685834315072220577095728339121859218551769285248808956601060862119355046176119476235033130762843476525914676338853988102722983151299903926910407304659638597272896498815141660614663459710066645509582642776955116013845874061743204338424973383099898131931529117886722582762186332095192137797370743046537190103932182925628472608341656368902050375046611043863079388392345019381153820240998900037924450694437508586390043081803707227384527831089247274946981405015922033315895486158904475940797597098642255176406123215996269364848657917588855511918273289287309887266091036739722553183293464572872608790533563641154915135604888923115643718459719349807805855192040920567826145131873101694001152064175224871241178257290318882340203833189730416715153120831635177918564244373234993707457406086348329813479821300382946521450166954167053070302258412961265945358471736955158217745946630842451966647730276583853340254572753505064260430670496155003956053264605691135391360651940166996122112802340133617741179728920065799159277244075230380266894178880190527127010600893236377823276671796516704834842738091842135335442637155284537115539006596592157024646409800288570213249702115186241738400279726953006588197487941870309142041340561652652221065672126644328697979861544478585163130626051525645705630231415505544377956172516195439669458281669462386372557037738269025866133577223585505150217782639665085633500905998996545432201409204067176489384006712317830591748871984830843709050598678091664228082955205415965607241415488078588938264149344839478771331906687999828779222201027481413354824813710621256878348072959272267676160378373260341129779675092942008301719583604187723639318493165930069810445004857071592990278498985755085968813678206481378217100489652106680189008621038128194833037627901686072450137363405121016878832507901780792948618058962473904138429381808238783750430339006559278894045077021249542084101416133115932125274308712423298359547092744094337275548793386996853708435190661306516653213604837540228682294648624265661574968780442161662101541737582977333889089612037328960248713049545983879263027494940008850107262298360318829284927232737657247060263240978386876514065773433632868459602313663861372148782484975868585137522880893134405514689635572378749164037390558186296137073061013514630473562656288781287471817821948369127096929291025888481584207876938297009699896505789258008285509614544931379857685736212195681894279240424096894915611099837666939082817579577779747810696804908095396098776498423606572854449811328165211277590753710335163514801430623414133994277315949460479759337561659446939980200627480722631123750299288500139686902449451583558433021450382199477534372779622552580934035593676781002862444705704808758549429472179461490279320069668459637904138708246962367231703244031359076649226067015062297836089866794668121800798371231213790004763676021252629154467233049254035089137310346765815771759375235330782560656013140377164382686456171293002724399601203540727546276117530346842185592221244564165892682559718114697562444941504379475677783128820337178326146499032965483254901054062852157177262857795706013753874812706126728718290467840033675998014485401961328437349246274377974851274293626625595819557161507086256015643504873121410420921226099161710120623591713844224632401084956142592793203351776267244892294171554805074353012542804913977316343992180180879383981420834375018870149696669102828305227277449962462822572676322156154093055660431842755002608209487036266338451167190015607889542767206514940558939774647044915180274499188354644197925056839311669292941953007410360476641106188532358613883140038267092013134454156215371732258576811664876748022939886261104059468530980691421932938615146402327272596967088704346301635125366633240142858955031840587230663883228569526338428990414682331967951519511636989272810781448302260336201260509844187250807813533368003182536669935524497609294641886280600651294728040247639987242272203208416465721271488609398638321868634917377786765111216544973088351670684614143568642728493050222852548485450625697017100110449265237862666646924224179060841914565637037294011557495663056853113290715212584460802208015910408759969884483534135790665273013487295950262219594075473488507215520591405511094675874785443833936293988086797673173424056853989212351743775714106203623533127958548141798282975724843268280415086182603745579269642322595613770334603467310205078077623798199618830634062720291981768861966235335524401460014306142012958260480672525606710705813036031494379312119591914320227721993652973515439760012026021607653138729378767819485759505739557109821988826133023400066658278577209336503597662416835343158131378639031769232806133670677912281067123278112359785298850599616760388407677960965704729470661552868835122018269252999307461944380061649445739896109106444204568529565875686565927220613729658628578220448645041011597632568162478145231465169959112378618104353380195586626380251227280202846043150966284491559027486848277797375201373877953471522756584391085495006758909776265057563375819977336696053827448645617205537299734050138168889847018756225082319830245703496119353652574586304582837790132946253119370025609147424694005666129387201282174323665736790081127220546865214569651444384719557145231142827211549438236216554597036683127259459528238046326796915809714202218233053885836523250052343573277749985483391631363501941363351643483290806625918350706168306511250857595623599189338131019087325346500099920434211919538929611279247163132100405979117626892919798710637021781669407263338107055860032470587656414393130437401870162261976726911853883071901290673374149670833234495260499736308013150075670956534548511898649766704846995689040544675649226009224265431796115808287778774485988828943484150917268626426089455582698820479913719091317453645155945428070493822635980553916580511386813986557254160917586858779853872683695109415167468418940135543329177743834019499285779535301494740175895195842439599025285815445944429251188667904976985742444486688017540477605948703051016297947708470025585844074771823978063550472218382989967681804024739907341948421700931674111842435624273788657773993009735655044408070215857715745823181788667722559347279252381249595783424150676898533943023784897480351729273773738184455334488897677410671933300993086039426049684933545366595574072366440327061219062078529792852310080211184757145071605000110296785781442865981860583003484339254137754278789560369073479726509776004214231971272060655404651485232903608198841907228382511112941959859716036740310580178526895605106483956086734192966117885433462270719794063061423440382248304847948188826103579885865508075910990127975351227204872717750248757660099546995717947113172429065501449628897223769149945727206625039481156696402409535939706205615092428077889025256131160811967921916290732944164356503617675083224082581626683041306609543676433004709309442793240850124390993585202794332564430607543986877992468495735780234019427501190059220924866329784674376048904514543525456342174177555281329379062243828579756106753666126430025887949242437940527623975168554321236040608391174471261039569445695449906910007580441023959249777394590244080767573695004396038987070787693462326976546339458782769767854917886618275906756618710651098751226340396869663276335235001135016782607903154410750089868918987040430151333957893661681944317746934218891658580896404980173984742375598744792790211910661094304496481808159730174130086209046709603650442119167810066045600722938900775051697947398177374120950323228462933843566119625289136452896353190369086512828990439305711229914945192634432011443737326970850973677590923699767042164419535284547320857812246688162310354933457812583434512160031420108893831493034582357246280176060053191353561482641015887029283943749364844118378166442292479241527354592137879177436016517789990980292967602838541055941917285670335336287588641100588195016193064047092693516320863968243192407036583724848599089418599008316712301908724403408386080239131243486993351465998723810092373848353742502754019166183582691620357835146459472298750113022884418798010045038363684845737978494497182717179714949768896832540665162683126152266696899142675155039202250203955376138942025928214855269095940457362131112671655895972050108797973976287148900918935507218865393279784714468411147870072192200680540053303283268808962514814688044981571443063514574534541772094681764264795288432218874405814530038216436258527926668630911928287095904910632825431837621321615312026521013305292579782734717873899988429384529636304232901325961148776666685605718258949667530164083222469285166849527143730419747319511329812524051131117646969560842901964142100650912392319765884921749041345869548672278934608719304845552607950721883903449014618744014651733489472432337773234058883357557592442079432730927503370244905052071409261119441111729004275354796740561576984148449752656078923485668350317666553991046387174760779872066224349484998870238315683037772406379492256500531176315690501344094227938522589104490625608951176284992442370702363855827157133392636160119357780177224589087510390786752361696639623083759911040323611615874082732802158666408984175032327850108061730956315453826493640901616134957406006295724397909604804990024949079338889175207285234261320844301172084381022657693007546742411864339048284539329196087235705832784972016154666901735895814006000708482523108991438908939973126002002047336926456294843262165703902824677923978332375595795059313017852596758315527670105019362398955515346371203395407870052385789954494113203708782714332326764346283654229590161085610160645001234738412501424474167961602735600925244626338328655818111937728484543126598263302670615130141550002188001340198257243033113720143724800132852046864842287909022560136074421386016243024275112665760127799502330988142916115972487114155442365412876868830872519619205106452640027672407995562578413937652411031263313776796820707407819169596061698332561136391997430962401607832091217707026713115852168762333782400777948818251782314170098222896411847634720161378831092332128459086320086068587862215314686848963006448143952424505962669696752086864947803226977866946808962354562035359503605987177328179030544291786469014750728761358488883519153993348220748212035580649341460490791847784821699280756269945783452439050668539862680423397429228491899901020334639937061681976442817325385789374583966704526606242294868434523854035203009485518754118634187253385003589665244046261533741787161910803183520413998367345341964154887644292692610965976442700581224884165278777399435184604353804055362266981480995262189036700984968061838464788718458557145575798876580172984458907876082725936833700184760957533806340455789405412674611755964893404033345622067893008823922044807397654820032843557995676876661976986383890978956345975319667186382094246324254660937850137891074343861440453856147102135585922881912177879755786609309660568061724932401045460176652609871963040408825468976710848289541023783832086346075687517044621784685078749934775636705082325966584185652366067633363598330234612780695483963948112868874111618276090807221793494688039732440173016721355549533248823212314290422503914902056386300356179159248679570679092533492752477371093937443287257367691254039794602848256138409167706595865363931412025070662669811657250934382964536204316812241727979132523208322591507301283270339793250642317308696314980158143238050074691479117839789469230342395044822028510701322095030741549983604013966936051724743754373848659767024954454866095474740155137285242455596614197975284330618534525154823466937402665489992180903897229691684719685437148184889171708536796374907722688784795011532790116431917361360630684525362107941166648958538114773145375804013872043972188320441495771389787518963653552233143967620077322758123627906761737609627512598652886474073438039484166910095196817535541412754518320026730023851948298387633252051599583487954047161944682909674231949427155204428517335170061250009598235342037806161632823562415327625433451642923917936629722579730042082774991589008964264953014622817554483369111108378760654868438027111246452933042751406724033233778388117738424005704619180988498414269120829341071710530478613908210315811437343494553715372175347872400240220833975831534025386711892910473598303149775954705249272269358552348536651793398898257531900544028995460936587914708651479119223400018669978908284751774917127873688011123822571581893584020976633590909900385934584162696748075280111994177308558335672578582495144803369561288991436736114735708038589987410981724282107840892191868020003504568994169204782866054278450465426801792348034350168483263816624691889801178482449616838278694925563671467322940404972914351815216948946726406788424090096653058195540054230677972387446512223710717550374817303892975899085270373538566669693152006537407228434819584528271557973577308388949576961682788939634820734460986409374155083337767327220590121644995704782432669252497496485393233076391652171180203386099104404979232984432481825792754967470999746251232547809204287249624796824584026769848330187627231554573899172908808050440874271226343541429765710721182298980790272948183936071654856737923017617738870605531855707639760864090488702852503634013104102040625808139729723454996464894887637641913335470167686940315526733272811264552945371294488054479664182994663451860560721713468742581669160339695839665416229898917393267950482230954906014461683965455314517540458037863693090137787519095338591991976764822107902155349315495696918141980089244018913580061051470584328137727102019914419478900137944106913139406309857038834352011676884343725415873839201763661558576426622868258446976568872068120112116699611258033851435818673839881400777234878160990932036147785189365994804925948742934837077416128206976063627003495180401053843557305042212410330475417367885449384431030312217520830517858410132356246719364266438861350350291630119799401176257653513506068448083871696172279219636852954213107004443119715674645039891149166931856120444785930831735587292925504762051275154211215784352423264973106629211981245107822602125243157123356734816839592428947639870154401758184383436807003588928798526514173421355598649198167137302424058891255605781333106044223668787786992896711534002131822809288552812480700351521932666641733679353200094746185199240686006976725378586797319543497148976862275250606342742921907056142350681704154394844337252443294245007149190801994248186727416122842394515611225436377287829114438075071578005485320549235953521101152870828093056334313504981852823895592975259957904692312520682991813544258391598833223981972928326653318264318850072946873374103413916113708497292271038049414884938333636737231985035325919802195019488619901486875271660085495243427625574768723398959028552559675722599935000481705153575564801907996619930820645982615359729671942457439246093287132985995986750479529272119227985268670415053358432550003507514753447244930617590536964543922948956941838708016435994555826433564309611807855632880223107473975641349587355116904973140879696942811266198680764873684351928180246382265169992749154764647029970363385554354147442197911027185036215596395054525977927382923553340271886522027234985391972607141343044027151467693546265041008432601046769770617683263272682585243343295613303176871273666948190413743549675551198176981816823093854558841643812044212609789068218520494234397534468987120280200828638737985743164462907685405263446101133001068449603135256759040749360418872353648586419237029571488996226803086577269696518726799018929176863681453825777607823883761370571067047058991787642472529253787897124570722630738241206774290514705688654499900594641653591359905140611980405863375599494176538423340522105995198085096594546715716013672728253972490704765204360030562569592509387993516751442201715116651266085912102157403393283696798127342765801254533520444749357872449469292408789804555791315289461011509194448553130089504050056553732874286292340231653274724231766159314693911715030813569446028569847000235481937780260346823111030985853385977374392942885794849849580275785215977198505724688571188542888589807923081969869054379071518387587817695432458636193192906691816039927003185582253981603118481880584946344582593344140553728091301263273446569221048468608553620894661473629074461301452558132467670306769820099912282013842995141879990760537602192630070213247648400316131348358560947945454993963292884471959341195305925920731953365577824696159720594113481112312621612308389001896007648637682532177216755737735070925728497035676669536836762562792870987680790221070960158784636230055514017416226115449338744742499623462743934786689550736273271411386589567280518515595314177372419551343710872335175619029014830295021282293550075256372664527762401730756073181807028825608053082968752902256367789516615268077563509740825574436440343778812698473155194580067439069189477101407265501788345162473163245189796956866103881211071155087448329622360782286217234229990542183786246993507093911730208716038296549360155327437506571480390501596757651771839120607173245562178034380249435895681635238149437977370388409748150238604783130927578142813154412140465167657256279849605008082619182097325215994990121110371305016676262841614705979740206862592239880921106479263371238723277232900874435792086129406635445892206580022056284254240247970408738511844032595948487923257725852048805459379492725303723498768195007278029207687501169867301598964578597051607180927389523732071189665919298979847186432586027480376428563306838922108698248559162742402641749027670802223716082876388677119422788430196004691194032664313156597210957920602356719750585259279152289213016659347023133714951776294514496729714135668129724733528021842264765387069656020870705157359233625257422919782891435310446753077396487829345346992968606551182887562494505379513174767634657868084383345660889028562799653977709653252938454090263711159668679129664176924636326668832909254973194746370623645074420113124452842708026597270120146913756096277906779464094646118732865126925073183809403928700053386873312222104669229341241658773388273615756536466190177334169477626603925671731861398217314656465941284000871358270729054140389001439439641859412383353267560119841260259581226782132944987624524506639313581337385265627422735691204380158853002950568375920155924317027754052556933564897515346030852692572705064703417044418656472711911614722465353870676725920968431518861386941628292491987172118407804515698236840080482645373944884980001430033261175304428774004557534168275555936406086813212845692387161827565851268914276179454697550295193518250891582248060209466364743520732913317842329446001901112224462321184101201279355875633474500250600896034882529462766089795244100769713052262916635037316902198152790899247670818979073277963498553255763444387768234561072782652145348720152411116580392127237558943259367544142731871542297912967616499549238901755324927986474948928864752972751876384297110790816959920766543769804544926187038498404331989578891865126703169474268630269849162610046776468789731224128649363857281517329520788591651245987926713619550450282620166706797456998011082231948404558694438480620215714273738425082443298038753951347934517434684334430722092665310879027705818781269066514502712680723249943155144386159624164327436634128887275235268497900496409902000060383173349312759007620652280819384505469881523877715600196018236637892182012072990652908793226963194718881066685242374864283892639914840520088477289708085939961212822469765763820045752573394867381230551919372042582537593714590458830398748907985511924575000122559375830197531361013382893401440600822167201489447727382448928363105942771809684279233668560493426381394526230839358852761646463699692396661592701537752429228435861052192073346530777202571925052974999461458579299256521219814213966960071105978779504946652854609663130992992229953656427306045054845582667859438410709189342419771000371445912791385180116212548690641274270241011038325840982126829461956752248878987558397900658325893482511862290544414343542097013910173562949480117623379307232218663012906583004983876235818545139753359753224191846702175205477995058384051913959929665585438476122891524245619238275066845266353008142388870299989357776238544850101400456661828006656574956653087798168058244531264267934441222048215971621932627652479063050557406022861154453105768365455329049204790289367062349654418477534187194438714891198155038101481267480842700410793530058952630427958460785947887586011572776645436838523361626454214734359055088563966851725749901652172613701221750830652779550754689217166458207457771104609501290951037236322729135712949650448297126624579817278224156511713843773077568744900971867469458455727505655339761435677161693641196323694875090207806686790372080490102708955598159745069461889673355593666829755213511660865454728431349045548187848933542014612819344890145743257328002541323545956020616834822453972789231087432265756086084637707975305259194899776511698511562938915563925810781337395780242618615964556743844622724801292428153236963482735786193168081595848052909680220864864718818878783666029870292273424304168593013952181113510806350677477234546051696241296010683688648462641816343914368639539201326540606463318562896303233941564451458809705878357462127651692645436368706077018963732289745934555421504598561149304425089226712211228672250818117035762354653128321172756287065452832924949856263321349343976254456729474276830952811240620865617640176348806432211321304842490352890460151465814036908406254167294996128148916130332333543137781925661162915444516515697550036007873549310848807645298657679538142912970895045128712831182257452488854860254193370317665857096516419232232288394514895308254995047439276594966985917830609338223257902661837646611159521652566919994019868810566622999284817021664284099896907819592368617959687350569165487529776562937317865778681814553209426272948544218945947785815457353454889714109017758169066988705546059334778212483468357222446852889565365103097251839198090268849174313897786755013697293530702973842810227015241275826302142079798243377883190161036691114468846703400095080798454706835104336470809282687922311631163085179368037109491964001924871518100898835916325759604230909287824087664523506585615603229991656040886784887648202653571707099182322477428711120533273420085855204540323868180038077309833877895360558260956918095155210382636283393206375857193157810555763702016098592315806701059232555381878936902365187567068275629369630626125088097034547101415782216422944719015739716139289650056291600700673321061663400906820845264039960190083452656840037131847296384921149909627289218250111863379037516919575951186266805869697614618181856928264168008479143409617390300071415461277643490445497925192048678187296860867409963911603929757917787706241197786025810812391980892473124839734003427972493071586316459090013919021065989742827692694724706865567585444673785536919078738791891543141823113961103708922663774635883523830286944341203204192807258787978537946587490133574405723671485428804521413875014705580614498291285517334182598379264131043944631770774635906293670816739543105608869543611814075913913829092146034512763100710359174130868844336311661494441116524101208255389836666671423582961186288103003135496228486826055393609753593957599304930871657075944771134491392884993484890837562189708944962847602603282823006727325413721179432876219463067703509986740816750737018499784434797845249439328648859989050051021313608078461501439702924476972706269729048664861508630617573030928540326957776789678748581722766801359589365029292196207588470430406323215735606718123056060359628457528408667419070314447474766293151740801139673573246276543884156944013494183167579521060366675726048462270439566850089097213915461461178155090037107130769725523358648440924855257295944518997399896606300912141081230609161709929095737995240838495412724828235040056228777469529058972702377434458649384238789108120836068917836471213562536549373308686444352675517667568566701113837961885881050111116560004312914612990132773504661598093642981251076822225896082357449405244135871962747858938907822782250767420211456314062126550139550282177233442582331664176831501007942176323171682492841730325054126529981627048810967020782808704822324084409347544924095819842406732504571305747085128819098007428509032485344832196514239864397400541524995133908382381414086039309023858325181802616767278395411462083016069421386200359279061037708667662891902016007421132224011268561842675475120806087850719890654161511948570156552809664531797687238592170501284581922916364701145588530093936909634024513709197947118655995062199497437111018616216797546907314216675435181180322164248104697397728346355261552721091650983902407965667908670171853372076637230317426674549124934402352175095184341326270616761404900702275582392073106302972959456613680123831581065603750800684235148497950915484071949376475145193774224856183868048851176342239521178946547827058277228106072825217595986241897751258551521594647280566026498190924294324419684865926282834168243442291058663861696189834806794460808596693711183871089875950008616409478449337411948195804241549011840679738718813308683661731589260547253388000776539022634994042009670531790713029522154834124518912929698745117429034594285041109982158525754222039274009545070342449656696808969935573626649975463003962430889535123445896626128926961551642395044336678836661924368419474718079022723970073548853616258081725439067600740533072277043426800088398608709775567547266706724245728103720309106565570252829237130841529113132317218222663592356330926343281992163145783453081314599771319255595066460944693958107707606133421089402840195227229322229171834759345273292130993591983029651066477274222755021388097545864531689396581905128672486856084687551194691853319395835980316393463806403311682137018712596797564656317976115519023754285027996867444125646191204964477889145450670434657842032165284106632541901649239365869758139057097856790729124952817266519794235294069712473642894024770851001296928699559278793468985169648058253877757443605076601560979948855550160098752661747126471360652575984160595929208044129132702116116101352986890871456060422623688191880731414474438195699096537321885219676780666116736449828465027854717265177910140838169291537764475851874312361099747065217517285326242146110271174480820582548492818865216383753910780448327687169067330422883813169987526511646960512852651699323926207853400801260883288400143958556823637777389267229770775173771472605070760329959785410635166145942724255791739930513157353349442220289357655515336631480019670248566145121355528907859919482570208612008989466219266879433763325853978443557679987912802824171674563904469774151900897262411648057848063174202902823746069550002843691364691405907735082729162966448225944343902987835732141446960500209362098982413838438601671741366072303997972755855652449513692858595431034532530861834574162360328326599596040438586950581578645854724474378518284221158236113808910263817977894658615350880430466449718173765858697908241578602725594279349613677928403740815790938354052369514678821795323069283907573137718057430858153367165791965564592896961432348580109718755278924479794707129932661935761378050192027246439778858947661981969425352132332420381847126009138207472753566346774625790837436431004990995456286293668205927778303565033286946045767736829535453775233897783295897115671362567062220894327574396152391310668704981995441344310310473988730828501612367817878358563630056430607230146881112900659044865592428624108250805569834652893278453574828571122754849702192577167941921212761185988479485039130199779498135073130128928994406313771205754033281158285862746600799463755903793476989530457118233944316401915658624900380795164569411740704808008461772202039712138193996821843668715687772177480030163858171777644817772984532108683457558879286468769849948526843229542800367496021879456967584805782736839894443540926462547038585678091771195986931074979720198261697204618323200086987147264662815953665958934504120424566674364854386865808256976998134108707207115404649324062295206178412794498906561799386708030392998499851803767596635733893836321891469318318352309808649151082254983734528008812635725883044007291940649160094319029549570680637582117688713754827832345999001680899648032700149371849314528657170510958727726989052227526822215879759264196878989223526434317162355077697258524759933997878318276984391791402082143562549363632514916348355056871142976190102470514089615077929698979170163620698972330736410949640097936439834467098643318843770331187801473334422485313679032426244315670861019832479679617528132556492279630603545344769724484318293557746471107401214373139241076127377856222306314829179283244572960930666490386901258357357901266065663933069749539277284275827811615269745387994218654188476179659350542950411585935403580343257167319224065273085185497539909380992174486859621210204492371987385313613350484974499235887589196031069868314857339645754994502349201584524181855688708494146123813785662706711874405210501832128808499712152067889035911352033432336829479074575832162734990436531229868175037663090476429038392617020012355585752253671465487729816607847144845637525625908959483118886252001726261171310400493721785795657506011434492033339566819258999162133498466234322122747638103611265169538574047599777653540345965345564944900891781177997445418804921097049984404978316552770150624694549624397054333627624038207736097218944714527152231010689079950694573241455499485384979120394138910936076178022757569477241220721136101073379234224634082060361044826521746348046085370535132770794128407549408165682646848822018072642859673130763125500476579450114686047794241042085833913385075188493944600269181674370959433446376993166819068545564418909643518639527561995382827650112175709550730123265427814108412284072588099098994585065830914510445092849947255447375573513632924232564417853785582483226945135683915649161413276277152772215074616584820450020733619912144662827898957492615645497900753198361601309888421751312569630885034657708067524082051048638673904156857556281952894676719290312662315684082261586836930232457234319367985184971355890003320904649141631192381008885222608873173123837980854803050407337813313192616322525091828344709829493811093099612144524030885822835608660975812045841036654650964175277577896128182453818657574767125788959735267806554079180744791010171422006441608198556024585527515510628921225118176010152486309179206208635576036050000147042646561592390181179785730559288612507695050180780909511841352603440911231925495889819547468393329282655412062357815215312573369029800462348299453667049242248965730298447194063575688716225114535786078564078221066806210661291584659891040930937247525338265824211236695300576189878507173088821061391950550776558452101002536192697159718562168054729469978938245727815044053976799069752846657049870135618368966995618031593002240749913569468565381344441307164660981846847642810978616014607080049822383227216950546611192296855710796256605354730716205218771791688200528866210554973151921774159819208843134544087638556059594381986962519526342345915227472757281186232898016646111934579121390444652425819452615729423722413931197075078382854432005192345245305642651721101264803190813592400373960936479127312655519281158798875260624152771199188491450369688020410595818719628713296152538510401072770255714630344843172017492353054615228076451371326964657478291895368496648540339666934592487491262800826218986284978308704077462686834776306247210219724383866350853576478264924585919821401336383170116401463435932216721345880739731687507504979984132381944463252743136253672128312628958111453047695018696552370521812089249674466972150292020185644056920971993864251402129576827782007504242549044611836316389551117375172536061248912593353633778599661906261699901075724800740127197068214589662117505772647642701820570994274989586669294449170114307341999551818690930360680762157274405854962865609812467966284240425773091497188785018124860287142698623458479048591155871343659565135736348533754647558330662972545040814006659741754721963859423804172808789045626764746036907502489625053535491236861152725154993014643327231713046620453470596106596206049130703062502002175242963343922171090535406848034639026501821648498026330062660081286137297980422516687619904743765359719881232780080958562210552610272037367899174200377561137911228376656886097108322764192153202098040612157611504707163769576201096817330850677297915204150898984210978682890418408107579072847604519089908797732577568559150766401105603823358775078095451817045418240550108458721071466888964948665840665744579089385121865088516244534611457807193349810626330641308880478072714634293023095553255471543671213839951994487838740210036640363368562218958280391943735880469539112560684430480700510424941849046288355406254956336762103788858557004312842912722994812995292151985789456250071449341384814688480685814178655881351696514422812075665224868825266712296235289645773689897944587583691189816459531038134956175864736830989897981128810707114800783080647082432125046097474050696744536147671229780220293266593014536657844318213620124575134059742110555417940941060002597135109687479757539688212921589477282257122155375576628908384597781526067026035732018377166149769379485550421611180213897092711342729986872175930334109651865516566123672932874498592682821693322103255426347687270592509926300427861184568267549410419376108242701918955478613261654207195221304127849003621837820464588463680723768756048030164488427119427690598678586529123792594394218959274082341558998066832370886849967573785278218524332048697334134049696328561444137722577177166435670029858176000500658084601874131515816522628226405756476781444356366689227918660841187854358501666532328523011393046016957836464239895021652288197234451585063631437806484875849837041438598432417523010101802628717953553283088239966230936757096555755125299133702004159939332435320078643156317895105988124206593384347774556843320530704128916594179036020574827042826993393852919859919168295339379318429224995892281095479883095881703879304013628837189676985223264842104117099858593539323537022053855020740000602689016357017591495408732198716989146760515126308048639851947432141857027090255182830480774615000090837717276779967716892097236428705481188835530135926470472310438135014404425974775532396245905933738157044562563187729303560340307295441591973229713381246404739078391931312856215109488364566901232360740951577810087921284024566136998121882473123671458837444578964783937888728740446386592852007901291247971028319596676762850026582346146648188494165461501467895292039476131668489335436456466605083687830166605342313383753908926093632154765898515865908116385423502224551017305518268552936677186874321760876680191888737201745547434205615416204286028354010369789039595358825786655681978534081736144608583440952675277095391644035043567618569593491632231667130406265148715562117830936522786440236457479747771440011387170232765750589829721193690510276407524457788540672975714722755868249966405768556051502922770606652179825936994694800673368720966276813303281439830722900536862842152555059952859093095497469503913271639842718647694551136666525309467168056951767412780763023870434003418872930210214753279901135778867061802482974791986578099914322853731335474941608886610318505192040659682052476414266015535886323179637289452411450474696575612236712839822317772699402442674456086549546601178557293741964842791877399535662168975078785003121158572237776333859732453751213072136563207318200256351439863949043985129633379034628000880112511722771114798247704618094909302233990945087050976447402010920281554146969929958697828110442079275661131963241767343207867408474135966350742635598592024862025796821385175071075381104979197667632976116442359305544454222483549040987383711672204976857103522638962465215857599209813007706286608116952804141757109190147210492848586921041477278237821260502210992887526238084526006173357578301854822536713565750528756895893600246402324580658221972427040672918425240306782689367677202142079698971555034574877929406898554823185142379184992925821896542648149923210654500638645158224084374075221715453438247985516218396820006142952274723794130987412636641280564094752068158729563605724344560202212839435771919124826749006941275489690048042741806398470248380613726395692994680117257263725448898460997169191960035811454672308616453134016425756000844814596462735857111060889334892316171885367948147032424690097453091530314652859189020334192182857050226875446196740298941604883142534664132795111646233657567818386492171012939655808631808732734701186326664923114768701597196945017195388559624235630032991012862602486044225447986229235045194721950016127522713973675562848876654083719475201852267082510391596526187545342422255478693065668462228323451224864098488023360471118881151223707154958865989648570432031919172843305010676613384321277676453689431367168766496230917733062717001386274661865857377587009646577610486984154682855932549887780960368273155005976208094986996291094372361842136722097408097527792671107339160348661061769744079213968504710815846909178475597791186064355774645232224972286521035210162671396258606089960976471190690712875071342915598664074980075023663855888830719567374654742726254965492981002020931828625588026644448810640349011342156019063552615329736901488093885375612182138891008877434366832264905519949848338584327625921213944402214605086959906646583059635099403657985134898581952096597444008054715543792423110453634096776067086533183137811721213919259816811491321104237578443426448060685698167184674665012258413745341237229232934349836311548527214047637893356699541214617225779904952255699888643831153705838262175009834159293902588412170069449917724531929746908969131449816489976524125604867014470522905364289851392243865169180488508966499321476800331691578822718021280676189479463243693992450938648089534031087499233488816841136457145126627519559994517873904245162961535088136618171392908907007482819382201434416510632484136240613309919122522238036777428732086252025768227280437171549404537837506981600749477121086851563282057012388784531255493508015620149582913880887525716250592845764075282321089779100384691677038229845737786568292992483321584684992015539968594423526316309374895493391321690223171325311492472309142545325103817107319391188376706360855642568824631584582212388249112077868785252709596183571333970627294497486027912460311142975049345659826207378801560011091235094869810590722503335207308967972218580853491560968424241889291004722503253512774528548308343300717539131283942397964671968587205698222106919261032699480856933227920588545506211407108977674395185481393889461069788760127216521763519387290537955020488585184195230449788693914908711664343382658908102171994398208956530989171545636800954460294757705443842262051705040938534510902496407296450978150796135808918614993728983743068610005838399334756425083056216459674951285931193833602731431883271442026403015985069861657252580635786481039740077271492732525559042411164943078417553155248253107757112764768697196229682339564041633768550983393923310304743050003385263557179418740610203454740538905409092511249006888993517122648731111196557172065698824371745781476327137856413697316639778621921632757867780789247050547588902767648543656337780930436603451749587078132392812167289544799426325843219053710305930201270631615655565328310525884268799891241968715479463514429738454436898124135701269978254666831891030964400993645419564961662779913930250335756960935774031946341335386996043164715950461608777367088873904696002004330074594096175034890503246489615558622016400016378581698856217120655557685615593860144838300194968125639580124398799756208293727286527524610586525200260045727838211825182001012345147399267008891604856008084692465040707258176575232448647251414319558625621061716436247261605969821286344736195679449932274824606013889316618366845995959815432431997900623389525643090592673258281928482093722342512334069152178793387426868601332358231163521123994539938273938658018967316786350408096826130443936125575775847623282005907677822992861484750766555139266944348096748002076637161547694915306193705826535210661384099099093126312557365569854000061866098297200199419159977351188886273317567883059329115129950415144177289850180783682901227924507415847272292963723081591816670091019385780809716729321157273374403741379462021621240684654663995352614308213569299728500437537308640279702238397847595183294741767295970613252840445953844009559015365490374832236555943983784802988422533939086202768447227652803312105850413053964700030879946782267804709969792360654143057462694203127941747646820795027589956583406208856605574416131393328466650960490886195353151662090571218818251246236464042905748447983526222031514794435398276232638953244141241170231892649183400857795485820508314876840679274297546423738456412319154730838826738067355574924166383401480520375269923142375327267362772798321917553616792007636769601594472345258417786650891493460925714588737014384661367038759824932357447310056108004654405291921687896584240086604647301457380723396128019369940617226807810846202835509992578634112099573315608996224798857709735372620539954833905099773187377887202173679235641610656044850597366656816748010868001304943648370125718515428450956368814321061924706671284725360083746809676558088760506559962702286174696181746403312992350241678223312592135753737086542502850709183112158582836020706218324412511204223802442667476824054794506999168732468538623650697155325254314414826670991884098355725796686645980893066984274790024326126721398728642840347814691594245435433617421530088816424142861115304006488001316252510166731069817103335059828149684937206975037613489604173773949142165897048841646292970167817761749244626588583732202040400018641828776436807246786522720152693728209686235785945591928931303183272680373375585887705864472552989079859956867479270052334936849927748002766056951929408556680738797280786036223971700471788149794282478117800250040210252095259817770671430097569300124789478770315375855607657938273234287749629105395301742593936985852929735360059365078075516008456426034444530141472249022641218938594687482640061361362853235257416989047059301246264894222016570072601038593724785824891002754718344014459104494461346745753821848032654847441479806859548710528240446844794657934424744519693640515177631368693754031480109385223358802860453559481241425151255177514271099734061984083388948568107957843042880384468224268884512631205632224752548165436677106197919959687188221045041389560013055541392097325704549023394355501003146979908350986788049629558957526029290414191240748438220651922850830769222081429712307859988624309668002568876477262657807928242302973475879341035634439013355618411105473229867870758991003949109286611825197805513686572464832424239928773172907348410340017529010876550317376547020124947191753030632218812460225884927206450849038978460974678716889192493785348348843803243680998929519235985724721746214786380014744648859755362843674989185049561881174983323161023739305424469609910826535952574202305168079026912497800612438248173906497864594809145017648688975077804684165962342682156979518356353616366981640676762805747376824594581361103176346373981210139284123872159540873569941968966855042449116210781238808768441425157361950341469623586005980743366206205077977630756701186616488180900720790764643563570410463510871396193405980365840225794020442143018931605754583485173106428233594381444411479758648522077260858137942277127518669879957733582319495834089793790982531458359392238341838998501557937917785790175376542654950707001736434804916716236621149787139625248195712599556666482392150779295824093735468484118883596314003176149960321612168143736257360005492852523288920171659951336080468425827790140375491370539814536203090883808807876265437457709081038726511799266839669736308373416831560155674031288187330408288832118336243318579470817748620164738901759442821010285303957467298527336905589631363656843906555578024421010527983585125971298297713857855028420008848124033952478019982659463283697801129574794929624786168101633410092290910721357662863631664753533601881096122897893624929155502308380513084747115673025674234298355144755989172073532517317914811832391390402271463668593351179420249593475987404398996188137057578900740324297831374026910674864290976850678021088819546418033921878294953725653112146383750026480432386782162471587969365965907278387808156264995272846606341690693647879756061830875717418498012980635545827785991808923612881930943851326455916767531812547119469049913237838680042125489535169120497759514450181105040100797538230843402791957984468803612623798207773919149765182603028452941297530120515716366752450294380421572882764183773051373435181565771598628503691014307931173316452093171144700403639613203677909676748399179164985371865990472027243327339729836604543989723479338470112743486959614262875545178456913800783451866293551927390264915926067566340637343616353046161299176339634029182827566770233696228359124140455319004351093988850603690146657747301264698648918540494548200440019008056323249043798929745488668181928669989223745530997799970911747201078513954873554641051134423300678860676063380174487277886901346821929429706726940218268333345302824993913091524805424391155787437467439392362649008976426606317572026935504654499473530533242446996341475731445767793782709361116209643216094912479681743395508173155478302377539139041902470622732808175951787183227981994517696952410514686083985600407631924429277326592845773329852360940989429337647476924515242405761427587759941639933648946280772419376420677492316073185613321796171404599834559256477381937712792959179001072159730370659460302981770894229781373163549370914669961966630374284604303035480098056413985857187423033864284711102240562995056160410326640022454923309027884950609230054800181751051539143783222871531220989512236132146731447663352197118255698586091000071025707070345164381443572413992139759662139748829091193379139485550990695737178141089380720685826908916455382207016622945530140719380480370031485261966751451700710757173976329049081183038985252700054528275637478229359425174139854631009061704839251832681722502086172321954600775062708012942130919001732373351093189145401223388983264087904554362702168201294111635001519937468072623571108444494503800827166841502755823825114660246238240778461580209740918459842183536728604354045601102821865893760717125500099695924077488693019156811811555190080600815956960350356616322335023830642164802995115011405833779018557183840494594922602900883249121554291046448372975905997335073527286151925400820287240437513077481549679409059792130008191535056858527987500974636257328542623108710692614747503339679364949864072378170070668237385197954981185460873612827975988551686642514179573231866710202831541775128030897373153049722148056117494548008467479158408227483935531405381477588348787258563895719748511802469215831015509515865965678256258142979543409509192247714879037681528117106228398405442363308343936610533659151178563339989557106151181210165084020569001922437780489106338158956104409327064487167468134440138036330591396124208511842284974236721602280265397107754048034002573070743373671727173573486623775888003163709632103966270681861504225500728327924575949433234188779631017143339794130826881664404564932823697167515370993865680013080828277800208458177600473025576274468910531054706744526268933170990325777555640502169391039467921078916654316731426934162214716804142806887031433282299902206279763193755620464729483407070800381490056995383847948098634178601865907394891764294461759602064743011231407602295619235140179819096000092191209230327347808992268068581019113203942160756148809078539649442273998760337054282656179861269787206210513621874067078958151233017576657246217779259102732878578383665261224735028029529174518629443645754078535415035409422432540494890177509567734804435813706159691050670458476513480702978108932853000848694143190650740350510360399543966056618973410047848040948780251133058521925872476735996949876109834039710946047672104289828124515367829042266800387652262013904549517459362771397722323581190906396817953713000398318722724822786880921927250457213804699765142940143841461819742721900088391896952050502245905670697053029964098123811802934228028870416147988846608100738479776953717097541660304226121249019428983474377113974867555725557313130623686760183752743519633517485418020651568777996570004671265525756610121010584427343612118322260192693015798537163909860052052119060282307915275738885548215883774918252581097630017925302964855295585696363040109368990232178513766087359801407486495542441509716258588247245617787344855118253883444938864452293587843725094790736183104590442062379597963529572852267707098627593219923756648048562043932203699680815401162529313577393373441095262245718652192454038916182153826298833592759148717329432505972709977588670573766163081070338755548687136718963430818524308406522741066722517047031414456173392934572618440543783857240972440487624141686289647697326548517471755620510369853965630579031623226737101578076095566544196837195946023708620670573633737069752737925489669217742063099836032641716908035815828412935235864390276967602765142177705257135057643526979119134716564688509069402961409259220928999135931317763749014388216187541803555315870161026400840243797253591379485716258768890729411178342021597880155394015346040413123307078523006071266273282783058126431018821672979329069209207860508295238070778159736099527731192528090474344615284981196466840159937581693908673465156489481766541070759173801223595106673152130234907764873545761396224539373734232725968994012674408735971368495735066177055453448179416962440905103932285938970810046276952306017382317724442674377455007999843553570971010771325114134881489901698848846949136457083142541348112622430334101948303677859857262250320333081850111383904654617846703855866781526659654263383098559659170708266253713256705873989370397510953785464100787178914747464930057335153919278913524052026190060492871801723795196776357638175918572737823977531434842107734826793296086811679668335294846824097964455125695537323169353985625787557597466903647866805699707605484876337908867526661690283375472066301432997544722801833208608852590476307112381579585288107057411898834541705606645028809412382063453236302061593386079780048808037071158494127092380698443099044366706491873268932089133033220122142637543926491980887013094346819665499732756696258185627177512229633824557299595922567834512028340438627545553144248387415559389039345629445404777921665593815002186459469666974481316835507691847844484735088539437122696819842564555827720952584292639684538091717852623068423474245764927468618354405649883673957353520654913263138125519820399093991657988062756276595779325657007390248565214864800799194649527817497818938417982133999715017852256374095391458237499606155747602937133898345035295274362919935641779069426698596867830826279820896316863725298595080937253592418766023645440942937275178037844508122927401449629658875796874611801392143647705881779833087459669742295645591471068993567942561490956672788525870976174780030795292811089257569337683544631070253333236615301254422425603945209773688550730622785120045893850005266555608368710639586684244129914995476767651087740976591036883539358842454243352646935696961470035042632925202651083984103747185946656900168293870684994400935157257724601456046612496624923198245893092869290543813879165798400653451619793119704876943638334819796848518032493159734837325082943662254748504325593808671528374176702544346349249656282206826895267102902869260284443441571582211514242526457382363759394609489966647823030415186555919834958081002256604343585742414636443162828238360815888222347102209849023230608983071803015694301315819849827398445462626320826195866559811245633100349533728196170117932785074440994894888350368246851619778701919149784365484334186339212898090859718107902421648384824920589849858714991719654304783142066745667595216739844759973052038415504829548731723784305093944175806579612351930866413788920820813649937396255332636575069155870628786226789356891777392496805668940334649447127277964545832594124483673290321741083387208887638617149733430840174518054289344629025614653549837151277870095684534077807771402890078265518897977199087001915929484248273196123919966601587792941369903465521556493078943810019293034884870477744334128416110135268974250359276260302976793624329779780126404955214962265795770447413899525458698821235409119335217072559821149838309889844673928139561429832691047932366233732368356808337434648540043729391427294609221086093103541663795492332061475364374804170666623516759245939060971754627338109927873587811870187944423816119639003334921352793050774326487126185381530280770620548310306636894047110695265643525813234443622969619915960291034763127759613810157533636053783666798438171712808470503020423325131800301660257144232192044426548882514298609565009730720452557621564970999156807846744712113888903416269789385993385527148554267738554985222489246348069520412998732078111888546121459589167575139615941547592071769291763972584624572894631236914463406588762404653340985496185328299288397958599346879038919057891045196829631091723391360726903706067750118221542700757268965366504391867426235558606363282810329857720302745098136284424521803090488268227589111158826904858192450885132657519487397479291806355677777274465649761924903133931226805180036617118327004264703240745461086416628163997014159361861970654326741506355863130268443425508515902087293809079272399835821636687512339527275718705828167389727624429581844878940482096322546206369333966509134963685010632038710038710172384393852838815376555233196683815485643704169105127151125683443435841154693902608448658405154020511094405280525206352832914867167923962506869807079203321616799719962598678568147458631890000685271901053785324281129962718263910472191651408526551361998887569879185454794927335008644319609059800161642636132792587379229237720133350751004033411004483632008762229696676812594637605768936465093737793023402594139878249134755413556545785135956761715098362285268214178585439163685061743992745921051970237838758506778346355973941356627839017103897699386925848375476246147833761314401183521254327143173053123215708069328134522423500560038472558173882676097451509416731540540048537836156151109759458833798029959781920437874511968450839688712803230499939236041709971779768867214185632253950423806961687519964494235217241723791613487265507972054074821231934314933888401539090518850405515129216321743724918738240979843746283341938613932032019065281826164883678606209658355121830004393686040812274044680013027968214036538904973528680096764276673631919417245278209884894667703270229180313219862083166426208057271223488635519526596360892451357900666450796572794136052409689295496987067578598506527662553346876195694261524965263743986653329962637720107340178116772021979651448601347470709772683509491367423101053850855762454815195735994500643811428612485032533878321013495979312207321149238696760536636331235971164765945486720956432261339528641825294086138758152153261072724189369940386937292902208698456558889245056564789921410374902066851787360508567304596857945017902852303619711768748362982868813431445352118603185632820220279938955527539638802562027177022315680720741582068547165292685496144512368932007434868067854635446104799622798867324433959601182161036706407746010359841212646618510081933854920908561470427802533492423218746020931140996620656188010210716719599681593955887867931498230300797348414872612879156424294263350231032830011028450126187454873745739004545812124590433471917134932729680650035806873756147177759257713581981676896003408941451761544531150064023830469472010799650289905406419977131895905931901910333844149107874673981410126609995120197145751251025086481420225708386922853736823074857869416449235030042330686570673481274161456666001940648964752904412256285142132855185763768818337875883637735199098849554551398600152969334573587614200737136429865390492029916319459515162556031681176805612626403549559234388353887355797805589726390473978785849745144598210873810668932671496507354073180780406615530589973755466691102478227583806741805431418972707776954221848418255068524921399382451076126953163272700517386433574152423342275166043965626338096937048636072944859028510175701060352224782899438765981368183163036359580806119208727452351717147094249908085288115449119897224020149344814652445100719197632297362058376219675752164512361842165263279284966170034524393263009841982811419972481633423594579909483556981480722789734681006633274796307388115621791338241004704706548903044800724207766312023040393396631756055918021369912645153515074964083267781951984522387182819535854051346330924640187731495832962086695908040554839542097718872390219969967280858576629879303965073270748342128625630076997543562475932900895073057299945145647862691473809128268262865266699700797004150032626247683902254688401123448095851527662650972392707950714322409926256377878343924314349966943692580915740161490129118464599817490626029261916052624155882706432893391053503905629138599318387565739855526527075404292085275754285832649974862641847472111645858951651388064728228669936258857587064806625580440927081718162835735592161936150551372726490522838172563961728204674871433836777919343983858715245538341732380371121247843211233028380276215038996548185998141736541555996292413656068218737189580634677652125925181491741789998170146019096238663618971510137962052281761589230625156497259948259099699133764628154302360122680708298987513384571495040714688113466826318489347963208361244353454964364995007559375993878540949421851100532130062553616303457911177578874053058440872914457628219448941829238993413723223574551452644090496832671456029595047201937499442199530869515503561063344423089200313092319842427533010637582986247383941424260734910781167407993976940617310900053515938432469627219426854016671761025678480900239954438173523365980391199270933468000074074354612855532666755725269254113934130074148138900049021657282029455225554580300382703015109583535725795285552498739428144675734059004530083958683318639992369872254695435167894130819011669895040785075609853045790101612367101870312222054671351896945969174806266574697807722115817460361274623955639002607254863317185091941408453583937350388934284408430263153364025533028882735425774185439273985747427382399107894638031471731272181941410193761929757734728808699815017457185995328751933641423452792536376477789976478787708375010004913396768944754518649356035113880385314205501673986299490275867736953624206513352470519661168784656017778157174950489855435795077673608140973646283280343461269038200471412505447648541454304032551844250945280940868557529237304419373196383095802415597490209125481765374885336702535738870279723446476193779876466758837554866606120073172398022559607868329436601284765648722300009081812660130492247747700779954904494582456583605370861229905547422244573140064291368274778851974551572169819249753427190840860596878508867345632283089918900391102646191830701292919573118462755745977546493806720754428714382654415720912170242164151391312702370785950387909013873516443065937189767812887932667722787600505985072207480954076030594294896056076514670663323278654673426410839888886770403299681991351958171476775853466251205432448271658785546205599208155330824619026710287880215818498354883576711016380458293105460424790003453634111982387761978401533907093343435578027192688778212643307433480391156350450139603578524326739682942135701712265065228280263954064783086466299717479029434693189923326624493233093497078395145118366203145983043000660996659603044061563171627614488829328625634796633582200783247140168281960065292093458665413426802282815011700241219821916161719462500233078713496184757539543615465939321626184560204281897734065114397280985337198455331515438096705446586194965768507303012012070617319215904103136639243160630960480224056016962023399270254955595436150775299838539489011700168714280387906402281634898275211222724138597848082478806035220507838496378179593539058404226805837773970551841446910433120658476820012518645597346766455344750760638372558972064336555811076880529213861658645944881848264659187660039989780988075655314986546539417473691720558455860101188864681800199545516266484634033597569364685326796896459458742140907636126196261945220598454772901426771057467922886336698281041991131317653973927467687764369133946733488007594905717842764399689016384741291081742220806626810336864547782822411393258845682900492281850548665035374000514192622217353761777557856142374224213992051068623003128422894309019961512916508749163277612352963236073602395008675383621271337078358871919740231611145386478512005486760377322884905464349651105126280235798205539502055612623066203348124648663331010352970387616376293941497351570543167455600505649742421641795759433443714669170416813789913585864094606889824932355740012375652403042422222677625333110293634011011294251865345760992337254743868029681527899517119224057982945540159960954521319001752790023227897007420713225630685883618672390632164255890020748421756830489979828659353711399453731789278128456422230255345004410844185476813773195305931289936955846362366618045069720986962818672340250351471745607842595822522207389664305282224065886358412707799500076243589322790035244476246871471240023092239023013870165317263919981530009907067235002296560826779993901494067285761857687499523655141869539763642128624871162487075454747177466420850714822126988658686116857527142574921890728454304651714259289935096244956335786603517350372463043143063243722503571450129897702146617760919613511514067956841086812771053800071084751606817351342803707021213641381433695918242876918800640219394975575323617558205977577474354470850172668775025928933412307500201756468730610627733229973292878733015379894555517405877690642250897670522596238182081090666335538718302231448564039300759313182592757889597263702360260677159036641176559581933876646264478762196614383321967778961310761702755446496324715363031301227475141336040022548372416719693304082719810900790542028564172782210465097883766907860625704325714315940706690961721646607095681163181431642059805008170001338319631642985630038571879553073436781215487209836181584077577174694744169435046719994026113299319157786466132859249612460707256343729261033620576867434042039370295295810050767003867173568973512293199209007529373190989577306848616185905098599854761688838150194677372927304204868224419065871767396626145490183546671393238448423967434609266957946342683388251905367158113548131049535248624271403609880235134616854726959894365701398692101310145621806080614095066574229918972235818858973315932094153164641883053720639396261054302608192810129690317138987162471312707600478625905031410346204175521105645024033393759911853975092642345747902155895952895244676437616777341168889761605688910240568994816606378690018582879135826422832608423949322669974789354792537397164134916191960548781953396342411717527800924456019056051547583055354648119352131805414280098658224433536615203571270723718991762099686646982889917624380590921810294446240999066952329211016392247328649131558577574806642638195685316762411712722965338219420999923937255330824680933018794562704615287386484975324787744770252375397184804243969090904197582936591901096754735278345906992228961376184222873510878236742843418498752123047340271968190284304810505815376195881279477796517973847858749412810548178357423632085413109247080397584167091515199503382947777643979600666826661877261835955950604384386344395546927457308154487606466032275977041559941171148027544779183604159392806163806357896687727711897045762554281163962631125247186661895201481187673203770594812315288230168016777413070168629555349500273222774731056230853167452698519390934460701644136556804817137103834947303128865657553716614460207814067649990316572516435862988295750649851324633451006175871367218711222430982453788268847399140450033397163125311732714470141943840152046155469353210809070765626441738418941229089194669094589275433255087523884331190255757572361444007500306186560762657714267327660004932872904961773854035094426622960814432287631546763121738635824805552683481223116732755364620097470192712405507772239785619057610340929504250181236636969551492840316570489957507914050783782054982252008589140309250914608372074763091217505636104501052016008512118786830979408463453967871392934866149176774667157704410273130016718684014172311037907960051587237046981192628571041376502271134233317488325907745144736239497912703035114184670991241018021115814896447166329053538969661568302008408818251534765594343613749604983797300109784472387572523107679991948026685784324440283192202426869526595465682606146435488998925947587946321931880930977090219902306974636496165702898653027430375335827940019395399863879418052371163604725189774908636897491381827011787584368204648801224584728624867429642702653567766408245387991962778371049409911639767252622462547660452672747693714885008504855833621063923806852433442040117466573226576245029841087567788570860512729611885821307615411008262927673979895286187778642721006026292131668235546244765772797211891642338577174533934888854996360270778536566480061465413860031660327246633679962207363027810810966259073477944320327608509364130620706192562778693261079925253648231136629161239756022135182272427901529344935994408644139288788696955348376400132994405566607368576143203967815055548273631980579017453463323176406472826627245532290892720107340437920445164327698860339698155261876387117897395227614550445702184852211893232623161874139390517150350212183699661222521067508615524137792418435747389873515255352622771320232829951080065345624600794542687434738872646587967678075512636546897788559757759249120019410255468072886670216295284912602871474479600895724765549145711052396435954594354457725576509135989751701516330067306072714622300264386403655214563263059253409646722561067805539744806146430997870891875719072102260340575045664997340375171378051309229024649292800811059434449362327816921543319083773350313001398981887493818964840470884289574141923348593661735840577780109344538273289922348630160222460439262679958104299448725967918708557719087205627863699507001480264561545108756421873062143166651928926896442271747384809805646405172870846862539422914121102299445665694730786197852864282840923931728180387173835626123184750225425624777350990182731416281690348133920065993473750357694034315322871540307421619596827777803726146629747451523962255730735515481973461943636782607869685975352108185167066316741225686122355898659531474132049319248245511320044390946451381007123457452794962998771694498237652813139786022023373890186926402315293649489044730750804265394630341726002723156666596108450762139175762772587671753925241075657613333018887008946336404990521226457807130365988360027900296170516166085427581375721721196161663086029737916418799560046429815015873231548216838407259600835827596014143590173402665862468312310681113728368553579163974822831860146363155413109691223057640389244579582479216088628136848261442086977749750394978811252149114963038071256373426171378110781783691858415973371293285866511436667360342521357479466335309273075444502129377828830405718672516964889869069459035074469147683265804740852532343243747395746646511246446961459975845789124372489647989880726704328122434693524227272968592453628331823895076163803445358477589850329487480992939117620243894717963902865593601311064058291524401784572552159563838419765180018852174707589450070373840556806876624590384399223121986167362844420463751329341423220204001632960633992821458233220650767722509736144024839250095051158334685853927452578809658133948221173452047586230895850474921419565407851977041475759825644861506191041366453546255482492482790202998835853315661211675626534291612939412209631645521333302185128600946480209543125940936802009493580555109676222542481069150206402421890108182489837621335260502383893349268142160490774087059056860933732709028685915184535114394148816244817808102397136053155037507445889771562108679782404626632612888924443878773083820970283363205833472776623351607551246925279264819348635108063348105811027068979394311668592336811854480231399298085889447450241668777497079168291380227496027032189627349098335352305698436506000833152095712520720718166497422791249907268894792379280504724122968176052867155654754667841663561407958794498765360507003670581411727243712849809193333367546196556519605731859184934692530976457198169360943238250098496099394269429107724534802478130703828781148733247136941058853838707705389744961310040726306898683908251620087592772136456921624941789177187078075211000635570766171001918977258420528764746891356854633868056010916302301093527886409452309762878313931920106290381916627992994798986497769166629316684804115803807083562196595667049706683788607863358487468267906200650264547784910725215304313464974997052291358310763230646312276077240804299054991969625696811728067646185118095990870595352703715411291703007999561533478129498987325734024130404704649787292807837782344672195920301760273380188885101926832512261983090944025783645867177475591004630595877818945949766082367683286853455994095357377465052618079269464080531481390110549039334402125797205412986596635273648535418825831125143088292352258541421579192521901576125195032233468109064871590191916023155389287584556575082933598808705481583220546713690100586785408172911438798408200239314863157243338017095862606217048581755874125928722546631220702770538430986310980621922784865765030318447217537454645753068632766155334141406295297928490759676109779644732104137370245686083958727317876735047416587503575077443461319588441573542588405377115958465289935474583238642714336347231622056382477226808905998957005781706847609902713092361191082876376529430292608607658860612657700615691120743155696575734049735014432778733100323489275556132734521724491854283544471581001731298678305205023834167463887458407958727704740389777344049691236283616437023305047447969898686797306638615558012039013187372403941762725289641673671349544235063631474275468325695028834702017332709213393253339009376698700928083071580563226750000560047348413022641758919333074238476501594551266942287150011196284971663282060483760833434303476283596722174815544595578224921829262260534733154632175548333802625710461371069742038620838093256545208293923777675544729681888789493746297635199935600002036853724654749776107700269087840840180802245205561280855038182703428466856186721907860618560415476909530237102000449008774637953539082392624591877021005568393964536198273379949470278267967347370320312179411368939351535548466418801726042106894555327236141809638305612047037190011803631975152859416216881039665127318233690721677236453853535266913125322403494942886329898683146122995482936866022679626996202563794122171581208118003716324594665527072145561954479367431978396483099933602966955589127093386576574839926835428530601435768995538872489500944958520164347365053930804570184959398386996525168143115277150619823843768677865876559595149991917268764002551595236743478199496097798236909402455880137258655884034660170682309410231876408033096605008210407328160454884921375955948441668742341881090915534739677150790093177751155108520288661403646978614753885445363102478661115799540476014397647181013652551369095583116282981388510128907248578665459945507916387946860373908166395571364012660072885822288392940010259603675577438665802910723241679547390918087059620931724486375956823423785107978558154669935371656550382980658380300154008184578231856626264156181888257236078748332463796797647048633460877410970292933174320046316570531615858335624829590687558097111378449486539806239313481798440859999910957734931526014947562341475839850630849161799123846258672508717955674927124796767492251995228201439116260474823053701545976945489510786241474268724135275666161321873709884442049893651189730541069266033421069511360503567563836315811443819796642579755739088410649128922747218463390962006362154077893373660367106465013080726623028778724976454969706683086908327080514082188295958822578195084708080447784948293865113688470012385687902458668093142587752038039453079042607364845251657330676515501986358018943039660240077367143253991185889742264438450249622178561340211477546434005540945027920664015004875252293518655677064354899417640664369768924643298027987589867961880490610354996024572342612568317835546444008943264461652610659098418857634157876602329936938652255622246539724566674146979539800775213422656157070790874120915888925301570819728475778980675262687765009040087772885442198343639022850275309906633801551120069820115305158829952067158111466091803054057273946139257669638737214435829438919315148252613621275926726358172417357959094923656309979151954516369501850527338147056691735361029360811050186530356856000131833352641964716419934739046828755458954072729965985487871681392126848864774200218834136080796079186182305594751795848938043406041697334879715736172726354671134949787677313891965925033950295457323559805801577526431636162862374535718988056094482773028136748145496641345847195449656203562579491184965743840158871853458311721153300625563714591750249767535707338134485252663599706568078383391529376551875021727542718254102107670766073974913191191154375674700685977807709067767102830920173597412776211232963497361283689143971100501874845342285056684425950222569785759502645400634803911469513150096271859766718628897356621198180023980782610049171931211343530577637116648399503899605617176631228710715713621762725364341044712825464887833083539888767531449907518729296462389262904655254538902027969987218498387137431055984304913143062770642069763616366566766916915650776802948004170550732130330799364820114643753824914360410437401159218672973980210893012397882422225933283534115352126030030166628528199547588520690652951729079308019196683187361737607144889169725553634557763984407615419852999361486637239225334107635806171165418339488114418367606822026378213469669120536120782372325484441212522205407444352864410612603399364662335099752287626945837623459711227028760019577604502142609517594902705534328055795444934830861574537474676860010499761225758629500029282663482069599137597243044326258213426679985842510905083486628520406655010426867887821165480522935764072098731784295730626846902095568138378913409517327317437252940595827466784005487700179079197053509640037886659379657155112994963948732764700346496883143091519431773858293223793098744530755342302734671053818724786003446283887069267461622705401551738300994761078977821209174414154021886896530097691568770160481516084975700721531626116638415303893039613758744871833175162691534811937558350682026258733846322982115720504859706556655442305028902214947559150365971909044668968047767697756024052005490333161300380258756084224165147640802021531068440082109698861400142786822583138062666567615958649344423185326723354673486506554729859954516426908950842455281177792155789923826803188798668525542300257412838918242790353962559941008574694884414187629114174762915132463263642187423299400945698454133662535884635946864531178103292285201168442281974954462598994128534947891483566796404433010467467729153845675353249872845817253864721606847556104689921730741954248533217700000036348864537498047903442489183125759753575551931624038076180136044544473788069585805438623967244828628448648440841563317297844188047595591720608798609915777509640435004559213078443488590843135658929888685145768289550855857374778049991971593447155012378152402782697462543802970433799387716096470208197370978645933450493413439549974000907200501226479154017151409751453931464859737405646638915780453498824734437718333854218235594609597070382999461201626898172501780819111231840549415504314231899114181083984750659774451877813519435346125188737547166253707420971554898173494989328171505673741726361865456747870802495809792246698547897372380129269410630951461321742327373848380865702294622932764712449078024327921290443879843170856745166534989951115021447310352315269823272161067378073040160747876114424353278030316971693798421338255532177260987574361237073617154409599338204758268573148048684147253893792438212473288036652276350618603730878680736131410005691074242105548235597555482004399223947678025386209536519405760930289689598696898031713472754436109096977314261431057232282079016088790616402171310209020056451057553140214561107657536041655896534631382600853499761816377860024418322256265880498615288996120465397659324283852337039956016112208269084982741446083773731496424282824503192964133842987054484893083460290241363147329704346321022162725223145629200025755441658357227584676717299875589130474961293436709336979007462267461654216716199096322603884599574542163712338273874648250650303550889688924422372198738581683161106919554950074374980067071460235042023694319106435993167269815065525284233879161287125622731676638916154879238203818893977076283317562860670704121787597791182287095198580612968326915273570502421964314897474944129342363183773048745543565391278120616392241595850791663351068913187106062564081456460126474947032124677013700448748717890726690183221951191787502597603812575069642966519405868806155200712439606898278112350309502909493486944334370704761240026527778648297328599239128024552215106952144380135210645014419474401451726031285674370188622531097365409821160146645339939423790931392936976965585966536499224561844200179836266060022017431755701254168425854332913845069203970036103429358321851649691349238973526245259240814386948556019488840633149965188775958950447805394747879685110739985033107793998124718631335391304921093531197168300227287682173890932910228348889562483737691669319526902997914773614538430693040221660031072708409644386866225712034663831197099815998714583758235775179521165315849155150017163645630801357864014236668509150480558230815269842927077081103715592863178261704562215960480655867532926357538327460667912925320280346563062861737460025897428446040450500953761500326021758347465065725457880480525350459132867214845189743833188646248516309441516647071950810243521286492448534299075585298823005004050877085168573749735086262354253882030092119604307248158674785409454070983407289683116643100981600209399889844993886151144003318923269302707704231090997136318403865229461513503444105220424905669606039350570876769089643453342278261647621313321929574663077179954936068164349443964887384993387532470243761246390474627666689829605821386789608045791440461376330698369999167552208739137851869951270186011481627057471296766826327979771568383977667057199551434651745671202604216182871393873531513413291605590742437153115909447830849503567014967439732389056855524740866331959594370300031614418991609352653393181447751146188992394333092318776486545480959247603701087717133748143572845220407051968876399186109560233973498005730701699424627597438946803563007829764495512361916270182056579371918976182836312872993715614166723298108853924960724931630407513136419031420608077873311038385821622199097770119916429653683282128844759685055352830513003315113382645584123187338152492381156141464283592320777735911139994404325046262241899945314800510673522586350664360184502887983099900643390098380268148004214124271975187120553497432236419580562523354524306788572660533620712576100444720076700352275011464486886743000753124319588301255056457238227510850274499099458697719353644736803263568460651354336703773310499142326762395114888033112189112750697055868885900605599220712593482220970844615160678257864474152970967008049330782651445079437533838279623960010460248247274414935287850519960239991337098715110334595550574280080354158354829506513706502358738095390119913825054526290180795559538769309997987173676438773710040998459439480818033295876742133319873869480906940634249612126135056003652237230804680896558326526797178118116569165139664752617594110178414890321082646392163571134091894166317909944195127977999991190684231806556719596615964392194690063462576850958325973432190198942271891544175379417409307925001834006579412907228510166837959968755358461905493992792771818874310309846339731771332025265676795950497360644928432127096024422417460849777860553425477734506447066959799112549272952148629157642403638447087806426806083658933703815834027526372835335352237344272585847247534004096336915901455823826105539910428369131476996820866561048600777039839095524759823923355614868612846244635725920219987186085092139753027605608933924282970811631293268000615467471891333057646873398834156249128917187253480552833362836090661030166001694100588458638512391625228862345479411849693820944209127253098439617546336732413317837558908117864334927700402247234978187246057404060949498769491034684697729283892156660665335228058627058991545659891603712764484722389856601357417676223427670278487101151331039567064707447277438286315433161249426977411638942803332621840863542696130155905741781017760379914586547017750291848295137135801162711989167991063894015668000821795851891022597983480774017536315551859317577449094339535271597927417582220333998446360879593598410822033183886746356639222210771780539156914698924116963136155910529844981923215009370304153552856158845278613510694271936732786434854047416805453500860351140893726565598340676146016394378473907714543379761290579929637389503260974508181913591317156368813014836913605983207729618191458741002467050817754160077141294393492512335942987084283285687899655144740293242225991475189421172764544907819377443466622821700660827273401754431355924810473649550728299467442878100682532068592416599616982817387080183800781942667595760582754659668291340552006853481588699601892588334013730630701178963430601357765557115667380965645847779595704189040080000222488384850647561841305642710473809623837203088878817301662675519621208204994137978519323115962000235390289420322839119580823184622449384932975926547889748171188700079735345244284958022649697306134163528015749290727966927882733432039996926569424015349175915680630527891220456231248635916342560467229020858270683616833304900262617031320864911101164843237697689176396327264079351241336884694076294804454337270819475835344470916643753459927319150527768125361184581381666382056477629269822116414127483311250265521389720122631168940786939081960574751423442674297841670075392196319169895872706978770653054602648656766329953707414206849741853626109140456576047357364758920712131878642230392650429631633066727136141328742180176672912245583612273694515049683196757032018916662365884540468179001374805013278059872778786898391763380240164906418692610451134377202818657592431908808641652199019069488256646162358720272233316072187328829449360681128047762008155340204521235797648599077225950017573467156493017689212598338748336792737675943512473141418486117743413276864694445355668140067700601529690507199271506251800910277450299205842731658856148522825750059299766156499347720050768945966674642984256617985558121276971036209336713292844051218000017183803843270706987494767016468421970498504514079031972272598565806966005386885464216473342878606617691910996019958150313300197937691305983285227752747545183068474388847634118006010978074377826897645124487693962899737067832564051588923994900806874220120222498440840905768477908756599661300980693185019994853389693094247459116403987689480950041407041405929914647790098889954312163619221733264932297351600290303532276339214710677089954395250886100736853357458842117456162772525674858021756223442272552628745713229136317019516586993444127165173687594823482997417025460410893507110919381360570396287297052464088397465025960700995666515947685199753604451614400582091151833804659366205597620065477672097552419944297880873309629337486931827852408610899523601473375855909236886424824324161235470886498544771573651808143181186453817722991891349345204493632653694927510361012629283003656239029805057713407569572239338208255200117151300988235147518915617183552247392874654062867378720361178105082706895591978279903358197439898951546120817051633622813702253363326510237966275037646659220977360497547079167516024503552297702776498256360078389211320804448318007830784036718026824516281312533326923623904566600859276037193726618707613622770061758517091986833743776517108930791424176326140695080798039029916223814124691937639262846039755330006110576046651922735714773773318848567250409329341742038367195376258155255354288061074928030545082922612682653822340227910857018916057166725408115852986942406181929517571639115122851044686696963077469654495207753239610589477090725395725128154332149476704115446266873134893032884389550188439677841184403976516568166983224574205248146259120731235697874032982300655339167722233263447490871896714943339691575606972738267902574226576608241377974696836304554562356838795818199604451506374401418915020454915680043729173600395237906259324252089343765086137608725434303650294499562470827428908245770804427037901281881054603395238857706991114080964617160843805157943127487258889539944371557914597962752107898700339064237888493782362821846910155588640209350893511724401778949015863112543746296568923672984509443478153164757749836476758741438597079598630099939240113223469946541119788260621669862789569252900525692227854845017971483167355094520171251278018342954958316901685884289563996258422486054674087649914958875784639734831467948307056718301780505187227526647717556313701315215505373838028101277990717342087306101250500934158158074094053369827485232664389282600744358969365096453307660053975520603136842498241512985340597551902516047627857330571862828466124842849339803186661471681031474460965086321039525917003436275250808756263127363792755713500874851157135487680883470790365501408359193106968107981077537005042170413982348029859078524512984550383055589052722660964220436545699987350481292972312050370821307325464011072334994588823965163442951709453589511034380324134707305299861455256105098255426730705680837361918319760977696399961649365062807638355260509724027499591929365480157476561851320807056378940724202413764310432270443199370092696258993015427703053434204113104072886341798683910874976621120528767058424701024770320614201477563815990913396091585352913343761646357427800386320916195801682748156401980073761097109218715579293467707023485593216548670750039218568435156678757453422889806179968516399233072349400183626450795372818913047927500540504327625925235589063058186663935047906439527497214745304226478856450985099312454194532870668691463650755720141101364701310878256758705152210940290842251448675606307143987925612123614226662259567602422712252518899381028043135350977981318025025030187641950496229358016407426217810825057252783800197460458270423397715402194616792105677008192740048258794831579047805021368721849712703848227177383958482547020955286209856220411526223794259636537464341115125008999335799442935519027372078826519472741681109537699999167842528422440146783091742126462508194744081170802499854142918400235724944558059575152068752477706586265890816761409772327224459150719864379320405013745032851423747452513236534335397230667564793943637196137661121012881774063200921667830896160515697985506267848352187234120422781110680611625907651646068162844641703917752964352756255779170582697773968247642171292220777996182433317549607991371071612787353440046299389771773243629324657694258369085504516389324759559840205812741442181466473522647980991738922231725644860350577598806261285276464985661175808691533500479064615817233012746788186252840535521765918436732230734036649816753206495449939643360740220118165744206043799512774774183871030727182351142611532064048610729858255452023949292527693599541625034635293371612745020132291617790205266308054880661130619467396765414143386486793973748863983494111830813867762277696746832086426305179214792816976478221487453500333819019621721084602413770786712001236464864779586712034574646982656152898949530248245439451659612495433524939679531546365733072914557834531469916156831764003830243063480574536220612616268906298184313744414492823018633873055910863451288707620422931735776696573199105063409412296749812576230674807840311004743204865459826150991290239910342112284188763161648803993881265633015294641370664139907862704869727011256218042724878351982503866695836115139653208079628546041814103337528169098597640168039588579717719504542791954698239049100949579754408743377234848650719375011414440088839351923325455785271725107738212552812735211201993367558208495518641885066948382508061166822589676559757434359780283936547797514016828727660396761803570313436651494888486391808737769233441765195703181327555091143661749678664437645580284641637257896156616595442748062505560378634524766397154903547389653979802613945292477944043799021042359659040061341894059093588409913399619005233729687959840849115120467388791808765096385826239692993530334738305975300123696537347567783179006937567596462344744401455297803715086856745946122567866297457787064521859333677167012552187163714979724567500436832122033841790609416332488678510651529817426598815671360099896579782181486017488156647607282470264028466053579094895175383394340201046808538125649439310183454171248435051907503441665265080698935324074569599680858159002466728642313088449235865911448138185432695907277100064603510392696515334138749143933679938096979212319526061659502459198457169023773833151924095400242600453948582177225977468804729014167689583282123412806929209307137944092604973381814902913128464323804908385985752401142056003757544569490936908618230134588184099518778409089806533328390089766061892228526108114097936519401192294444912061317532875526867004577297441970108320952163353614260308711929230081910302545954083911623397927839522588580900940144187184462562321623635687146996280991627411172131102388228358326943306126328611796386144841036742760786454064475044388213396418173788393688081832100569471256219157379998028984976316578888819177082748616410926798092269412784422496393283501878958009722555765472496006692371217928063795640284508252385164051962530896884137825657929443635684424913091888320103033197142294846626154050642637254542979001296546399377967698127724445213861006251974603929539757388661006667778424368341502577800771489910609998354119342790899665544875982354109642955174351788389729691680806418970312096776107273255284329782154340754224994182317166060774490258651030563196508891763868844276098625408625000914692072149409705364583757286878907134458275080830719943732705891380857141339352154421254637550091136126672217576747729224125567360168551326932866292020568192287507177836174759471288358375707202809695365057088687818837260164798742539453372938040494535107615792560240272103968284699884094539015570476102978230630945730076370951840331682347480851986089016740127230181123051929814811514112617804877067824965987777409387858624755471523894116411645853270980007091534551093595456108676076154877206162795524957347363214532987337848588966024167772501529471367663480512699478459345692485558271887511004032144885204971236856857707611162904717914540917430101864555449927413368042361579712501876759758622248372463763088368101798241608276858296087829751157397668049142712358887050557095960877671450079478157287306173410085179011641328040984522549290188741115252783615812397393861935308051463395445749397651282871303645003249092014279063353774729233380629752990680908197339283796621354570664435616239953361615704548247000722525418753463823560061079928970643014408319345979515442592794780731515127247258099691857518198295837408573835151858179175366206009166226513756798312883883245151919015723107771269135245033867382720263575759167611223484800341108240411361532359233435377768475633733368158528928593477797917676560371842419569716349091567262328982291263929060930812343565363914839951292363939047553576927932261680552922560095497007978339777035756468190632788997881196096530594122904898834980908769445112863077442931738327263983862198844697091980282945988869082146187076331390751560599373025563488901620640281592919677265726333846175513666855332411107271955682104034544970697893888060077641538752843402494429813530296913884650468875580288378532027721174867443197765202198504794573935637338568162038208734552787944386393713407741664710425861776650139769527401036280721003254473759244748602181420551632685966255906438548218092497099277262288010544082083583269956479006950553127727620600558977940257454265469563410006011503739486819857904620386671483344662834210877900450376160793165978531496556726543093022406352993748371517301250138365117162698354187663498472447373389476495516246551271483749764459990914748616491971085973400608898253764576698101384553100203724626077605420267074655140941259720686035646813280623643519353559920039793062830289678012073509253558510610137877300443345625162560423469760961722624961884443371940727129042531149060261725857995845342335524935959014827904295765540898464047181906451306093410175224827133819451161407337316224826669826371102756326684513176814234176202340107016223928004187135996058658140517992013280373040219082854723190493458457988231877107989186260736723700487147373797527027908295789243151820701721479162665307482656752478066415338905376842568103316095152278518136129911086479111835284907182248992875277637516504365896040216996259800577373606266176308455242750473006547461568945018949235739373803452161646077738546556839800380014278343528939793406499726242762149468779313485784199703676995370007225967231653454097047133413046466711273482466541799463128756953569008987742946523186354655029622077280359801544856358443142430343262005514975620756861331522750268062244062751121883750456501966785842510519916944438244515285534939879765248489494574661694029386839657100071899584468823538330586242915722779716906711407310288549770884191933692357662491713585168866608639040569771889986574178843487493919045596324139995123309846247197938379177482042391479712191169960758224811698841909278693112355660296929783292171948101167023861394432993605396186971609647468334734438051506352380029036739577281234160352816528919712585927538329879628998526610986062108391031377299411638449985643227890444741285155899181538339573263745838501305679417047423890665143347868022526058624805613373551256824042922166578065688832271235701854928840743473620324430996537695831931936825736211391748046594124827181353533605800292221856985485494937384220643100221567935117421379323684256921081023315489596419671191900103238965463520553595577876662763666499610594135817162054563413191537232762717426580117423845092442673776146511259143644316393511827896915619625370204173141771165646740290847529050465878832778192383250634503603446420231975196702316992933945784073602479526677408776440145846231193267871438236906025798411130826266751695043823453355601756938669742882963707621502051910894589886323553583834877109124982056413184377293881651434095255042310225785167317909579732932881093214648152998159462823424161332392055133340027437520467161857225349026584454639311669765423896627372285860576415410502004780581557589191102932925257233756022886070972317437735950386548522866937531331833219756703703428701918070507621203984763234379892453580816766313612948582144783546378802822642052543047250822470766772242384911365468118502505382348202530621612566825068516045854731703974962820204597897011627416966327267518003594804156441761963281837062461750407699066199968397592808227682788981898012012373000665103223956867597300499881769468215691613413326802503350730903211548553937795827443719006946055022188665563394767633142685941510660705286844241692915261550006857069716475022037376666955028079377189151777572570711460086027377016273573840744071966058391403724075783420708150215105018509534213683880947652572540142357842554056679510301704318521828504562504931967861652056261227579848902230395541393195191336097699405826555441624532839732018977264584095636386241787238155912857835936044515524688596690044004883265599019141496089373893049339581628574057043323858646986539771581971114467047073599030754407102052988590533916327994999848071305871439586093808346051896306645718949826952970781165672749508035914145576954243954434648298596935622002782632745616965394134307983772912961617169026678736864902366963984669807832578974342231463238882205271058666282926782722456967724433903410570134612688286517344571741685141542732806247805165971202886371756599756944363535373808385795382804930216928199537294702500294583949909969589834549819440771880896944065250782051656436373897924547215592416451746658061690399759143866528026679174141912150694970361038504453165738785475504466130180339470361159999140775871055183567017546395750057174397608377955371699898953830489370802901175924302544410564322139690377335520395132686492387541567798216070904985128345883329616419728066627857545722699397874567034847039575834455245695418219767247359978810712799798649451759632782480451974484451776365423389126555439032344310561881228342057043034586393355433240379569958038478521926486412690373006760976629507653501026220856484684541405192493872690614224654875767224402333163286040495392424702140622576606837796091400701223651280459162797752534613006342254615325475488352259967648838211956407002570935217862305695211515832441988688922099835227277975537780734989749156814805851695205250173368788383831204780116031192373561581535789516558687984060554923077274103849137318850993114186127427785108802006307407534008064045587549136421192196957197767872058585231287876401233693143559633942109962646783880871896973108489421121026595586216538034294883088349335002128748980303695322947570835459947552739539776162590295836933399093674549939382911201277386289502367940126414412585506734160438248616007440862306554858696466379283415113061936233023358534764937017586701962365427719454540278504245901496706582384259213929988245618219901808263046012105939237454086466770918671074337660289444264907386849563718773804194283898298127688355493868696822043904686491818540844921508500337505826946220404471092706664082480086578759749615164006447417434401496816920340171011344496606592485077416073103967698435972793218974910051566548356582445140168825211886625572435262969330577235769868108081568161705549885859747033866997095743677045945188001503412376497329328835555772029510872345713200882082849944863039389366918125159552828502379280393112375590489786468638244557492926017412014027567411114934339390564309862153775146035807229790235988176034533819374947251876330212821759983740211381114024492885210792554601973371203251527453775645124674110540657509311703781547885501446254333176466171013851224373133758231329603725732863765159470327335778896090191349048281835677488878497386046594885592292138776672188295760295374557972157543210513395983057281435763486592351083547991678390027696986210503930069586043538538888415326371254716863552414112135960103081880792202719629562583616137117618363998165936798269507678003107710283631446193508857762184582127899440260732285826002223090089356145598550028549203728747604359794351932424353285095616889538891348022793376928169838302947159798775265966659046778838135509425596700642207903377279485437899965361532568389213946023388048418492622224746654973066971900722019038260479209564640555947472788086738165924185574647987096033838182470191544364280614894189961580644560078684950061842585363412921212135524402808197350664255649058779411881897121634523648652475627352572739082756414411864996077861720277883279922129174593110616868274552441925889344148800409601034994115017420986311892705377009799923984010065840358556374204854740908901889526382951010181554958520809317941362899450866182067339197627097321386776184333012388898773872140017987617966216202506388539066654909533123739122325332828062876963311582408899693779581854517154156025157002748274878093220356484096016539523042328569570522036442956910457148225239756160992081887101789574560348282046743917946808224734882892653679592328228175642119813115902123567538200622795777745045888755203452929744676542174590055675080623077959746242847856072475695783229374419477517381067134854075069268995028840980566317479602552948235040081764082116022084067781648416096364264614136155473456852842303376539145189358904639002719151161722447963636064303651743889401975733048475212034249143763708724169682292223880983591379758627071646856398042456823587830745370233927598896913590954622151312494296339090581779702193274898224507850300660796095673470288814053711874718280338097604078410986907053407903858132067063387581461526129831415867727725974413438399801881127294778476132365396336543317954662408221675654073341475540142159338658325926532990871188157098951291359923696085359151162495606821230044915645639651722324096551911426540178778619809164242046809141139163681599087362945140250541227003839686026542752626994159443204490561212003878590538757831041604846162272320912760147831215259770443662324764320532145404632070631382298776450359282821056742230652737331245118145616332496070720057964849166441776378866782759771517215722079008884847987686449318585381675491603777422066370323507954686750646960962663160420238205683114726827271253932162743806938460814370695110584301097871838046186352892276884251070405352400978116186423538442249366743145718852811505870158847107849125402850335901621974362414029730591744862106205298404894481540030404724112578390388062924843840617511055501490778687500415790554203979564840484439712866763467853417093599640918692677444354879072143614932398125285300885470981719884341163787010874907457958762855232629917630771619950550943239792452048161876268919378744314673367667635276847508375594017623834994532845194312781231263645054242482490140390244618647773473699366144246021742482370884102432724404462005406131328804269452766113776443151145537319408321299763538189570815900566929631910984823351373294995538068293035234102748246566330599392919169679873364495286850127147628160619583866075285655510412875438281102093076601213823650175741529117274024257061513204920107933265980135515433906491040889879670020250351666318388638739175872856439622609878588202621234992198147681800479881612797714297689635718470151252099568404477622698269908553557183660364020140092783338380764166797683243747818113039588672483063578227222783796257060387635075832683385021143537641437022296511047510224282236436654602967251279385513820531215403343016759775902387921537746443857842453216185173382572718588937696404286394771648692980146569479519837255706381727159494400311235936939532376856786768932129777406119791780932920294653259386859102379399520594562041776247749701739434656125835342689699816759825524651753908941967424373552785633967867429765605418562506243233290591354652739136254876527945680518840645222287183501283158301850355300376715111552891043350273918449936505136003149836718404803500866147094718740085294516252769613275923784727074923991147553602997672637058822868416494912082255196339566398899880219039375287267135008575532279998047055490405628062945252286988031160313710866710261119753643716260628437603101251342860199691744374324552699025699755067111259620688481489358083011712896045826039197101046895899542697274046803223411672482676822154143782399024622837192829414445590416397713893038656966614614771619980976563711983014977514187872541999248143856089613335702632800765482204719863311242799697481177076062979374645858524603500069050986562786340425584496784624214476353685350731332960062708290228705969099909818703409242580874241057871092434134929833831159033626105130300275046091437634851335417341328753422951558403821365204858316981717670217673179605516555270485422461090582790454429980774878916910170206492462047165944091381169399574839960023309688348798542688711472481662576920500237383737929862528343738224516182564359435371808003140455830671347298879354749306340219649978021323438801144656252762547261219802819979351867587656995613991490150229610180804329433402317255461151130373968823106717997853786186444780699896595235534239129593519593387160111251092328404228706438790394083944525648080057623916267181201717940861866427234152931826838488334497166605186667412078849405030552182910723153896350707944897339502429019806517064505263136176678757566507299219611284065923025273882327664532012867760923887501580715924403112235452945490926619525012593780227942018214098389608043904634514348086628815922608591972678731279266013371732896302173506775367792879472226967750283408186177658592036145217995021552921063102263399587690072838483442388631720005543506457252624899452393791541573790581888638565235177608016608200305971987211152031123366553770102571488477118963329221391349428242910016778703614172177608704800206445126657740122615269453177711002261307165853521499638996049162902267543192314552114230572324813968140247483031509455915187261412330103928098795300560525431702344548305137105748651203170769699661518917297120365215036607006374719295112964756511618330399593872830581638475659249173620512048274866998267218888420995403041673561934353126229183527964985854840660356917554403910713195980238809795645191862245349808688435262513543691643493912729368837836620732557969233622791833569126822049381794451597650698376560870410109261486110089141039678865558875625219136465635984397249203678510418899726543819453443694714708637881267654160305458897238722653945812004312907409533375598402460876394714930039883322873385718836614881468014383547410951203142383136891977841610536517465589883238728861230944748177810836413362525755189612076108214432898896071447813006274786064805272061984027021684304872508730923894296484200813098323662735388588489299952484916910753217990852160883587043442968585044123242797320225837803647418810085559990865850956080649009635844382300701013860762135795025607023750775244343677415645609607739858386706678867273144000407372017747525676592685725535362452408739774849222438617917944275881760267492214127450915373624611918980549342506848661580040758225838049233595371257994984408680701009222843528863276646878550924203970939902176393304890817511200710303785051814446088172751964839215790745971784191810991699300158255575298810133879169325111791317398394461321118164791289609316337423119577316693226936996341704127671156058853165041968126191393680524389854981648813559334151945344356515513164276576255610701679055608540074950144639642165520662522703747320756928882041621945909516309602136160746402814099423404842208559364890073920211811729182201084522086913252967210823643559887406550079248324443786854869874186078671010032163737779828225832214316596619276983872573911004279700540292819877877821479066777993968736334984134270085601903894831369962303651430080145722834249687835587364685790229197344158482322735669092065622286154348829653836515952422055103551822894768503372299834170217109196038668577177272220821794996271489459776830040302757776910969342745550220156025009761323901185430911508722691601044295856587350264545510671168544113481313700459421675002162708523308515707879661896143341274785330036697061689500019291706464331337224725925335443199395545126095884437648837507981557862539442135882413025091823891820831785413740076853443169096698792939451650627154866948523472010509855725422807340826520894944666124414863302479283891341705571167477662831255911518998119017591663304045302195068429108740577334741230940706070201264736788356296002831471909104590558472207843182406658798592903757208501655611406775511452267194417812064179110356404485471012001399806610602264365476684059539060045221934849140219350970023571824002908445899094640636650857703054009064285510844762160888007635463101447809730085449590404793300809465266894635780210293664317405152490582082894410648620203512597404020310285372939870783926017849705105275086468588773350694062574216440009380472171838836906402024734323361391336897092568973886811833814481905867142649649290898087373130634424315267907266525588798461078252221690458259169738551732766737502688257376382009557444693052403202791167743722125702436286376411744770360615309717934584296895572950194012635981890629663767929955253738441696106252659335257677301559133850511554452436889614753292082378746610601217274850073864962041524862779735996605181135848684395817912710125860636653695983953363824670792717796762032818630016456900067670506666688291598853370739226316091093402849888262790549669647797211082433761702255187084171862016114964007733692544086252895807898393447655442905608773904119561440279485697412015707147612403058979862936295905309631381438673325498178151308422475870391145328241666866759489343954921004953990833372692031272412322028144738275023565462862528066575480517514621153282680694697651701014487526325177420396364149160408528614075620630836716103499434342126810573148210668827669955322485783770964673321597193446123053817994309930007738215945121574935423399842672041704101895709135937594281044282631363803983451856202075574341589776393833834935425616498272046349060737562200780993468289579240916219988444057825440716687676755390554310840536150476708347814560366933693218839983850121038014572377526751582257955437382994290651160285197970410081769036793732487375905916130885191803045475059204800406659623917759175187663621836312469743160214964283754867988914601187608862140132243544221157889023708229496215886195413431233727664988696641189215264768491939268935681669455110792495934724109018675019819494549181862284931880433632568104717858498291407644048814092437335688318746563089981836723553330349084279204356219753666451173358700069053354984415114099058875431117029887529518910190927186097573210653080379508439662724330083154657832574472353932530197764886465464993797931359870931649992579016403136165253110326786148677552110336727173922450084799689940094528768780646137440833435422257460062957875170691114281854316367523236512719557235967615739959014917269515921227880718529049337829640917652842769435098957069093372132315572571346772243673442405358929771364056576502048910446379586343270398459158759352664843688757100360100220927286845601390444503420265278408539418820476958927469074058311786800919386232626006696956063316087560528734661082517333583548365996885625250704571164625401371494897679633496915759734981442021072363227414144648209915449114568661274099697727203944659482534751466875880567152194834134058394883513054851735808584578061613067792340775302977464371695363362227050488458389865034379964689390758782789094976277914666684468343939792942633363413137388563257262417404527649762494787232802019083004270873620613929264236324995130450952055938473245111666012034582443707497416445185154437619957975269172040803601181310147558907667845923897019534720510159041256448064361621798376889800782067154896869649211615504339154085676451798110734029322311985429496430056709153820334155048376278191882413848669880093767999589549749129188216019580069550650639275816587202751402214943078134762165726680293982007355393645645516887928562937917122032455345753474883094229658237161189986118121068988143687280915861731696674522298877262649341602544665221327613217578413111032420803190356070763483644820004887669517534030899556166134729051598027824186299783638912673658635715405727384027883264551696755111066326977424772167279300570613600396934259102577607599021372386760076529121812362204916195760517280892552390293719728279753311445054908126459290888668271436435807098847260126445690387465010750311748542043615293679345722099476616012878581798856976547653062507202658003393016122739394612106579059154825288622634846198994355170784325372939845828025170592533769956908907775157974103761294807943833672185127461818935862687189414856925089125652372073481892825003732760469360849640954430556288403923131106747147374414266005761753096219899172595161272022377074727977133561827281959119512307338865005110946226689059970165397604862306814150969206346819083745540780696705262713210197814912143681351253024627399285765916732641759335740626891650627294372224156172766548033920275716625066727728364863063995609920619922525812157080076828976621105156263968682809290237666349730998355894259171239565701110602373452052057438810608146145874821492601418902643811761031516331468721316306865750022974642221713043442537304514965038832545169791979790901504379459049350599862858214582468214408806960709057156869838677093418188971205819025809500868743590624938976797287914139689590621533063098830761539202785178214816749711496302735998309890557881378069019690961012635480788543379481209346747143102368693258503757355266308308923189503910544786856062230906198530445767109220542688588415183323787836017969284393011644865454603686744613058160407129380354542726640987359406587230938558791257951190235914929378057555573703824037967179436707831014453574980235821643418277143323441789459464083128981409087791656257689540647469379658997493310349767250227761767802124996669326970086538506037880903727096083723825766510886423449136753220352105971147637282578773458110199747478597750971945515184692207154338166342588343986473702665141842686193291553050725068548376623536530398272575293705642624167160317346832695231219144340164963483698082822651481460059045041243705955024518328625370043948119344024550182590933943615175233410956573187515377749471583448893533792540423028431562028012681712376650187052957811268357546839616426939287677266880198951484978031301730083670851769534974207331858551230705813857827466511170749578326824435621587138570840392590083481421852960576743028484156252785620500646422612606717826614130407902104068649963977248753066890280756447542571918803407065453494790002788554267880814131143053431968736762364554332868133676087661862890501838507467825068407888036666049143550716786503447461194206704360705658864442830441443930491271147946639365238752775382177929241717093154876431161516704468683684358496547909700029083906716685288957228036990210892283201057787648934625515036543955566111199320444099539035258824328198645995192309725925492208684578962804239894760237343344602459529508241574667221730071588435530392983064023833812552174590223259605301450175460617557218078616938955047476566150323127888011775435185564204540190781253903765607484998073643376527307242148937834193711219748158192925490386000534576293484958193701774973721941689379473403857709900963100975918700338383759100179657682122216088857044225045499531471255831445276327531850905411079090733354451213376553120462521103147990325098697711871024487512625523375746797154523161277292738309345325740372808871185498639247921987565198730577160248302732051687143815636310862156522046011851579209641089920526804157035054139384638954197522901328601299667400051706446873422284696004365641407870597284812442229292012067422345074970492340988440057781188721359418312233337773780350184872962092655984071868554528708310283661546313832156819805254369256946577876033135768007526872561865548771810511906812274433586814710740111301890875130981741189397331306613542278376506606749221520581886574511849798790525976281901074932924139141920655731879098074745326519309579948621212021701790518102065322187215090638377322388704154636144273779780970848395902031091652099807446818887964584805301581047842828716635090019102434125687853322008961969197147625997613654625416693716389565691507739643049519597872434477258941506611431414580323097516298467752889324147834575029509248191420921871802369708749913866521546526259186060746391392858296672938347347120337496136105769543299470379669797110426599703859683193391926978043634915633602523011700260859488498799967947240943640941579134733898589254419522196715761717625575584119133036059007417659011685602340610528965556992007840480483754466612583009378766687439386984215980633754171136485796373577531962310024289002715213241688991315475596289079767763396602727444277096839231949929954124560914795783525121329495701531114364902183187859801565313553219152456663947200894850521632971428540383959364735005003431563273108483558399288988712896880201204633557353728597746643687577514159575543126889829437661785410694361389514219121526651968351108739577563500140051859957758455493580571546189720513830288274233463930573872759172878695146246443714223607811234797317125633353025598115504343602544927307475965606700031740105136570394463413533865538274089213494037870467241450444371871752975940030750508782303910989006317087498086124171587985194264500878990977742678346285323018498476923796528638610241790015337657503840281165042553763951259950477422109722457085309174563010267337612475121632005714357557745786480078837694687249849882377955939133104199284519993547723520704384400933554433633456631829640625424550640050905863472669638493169274359039578312427059734866650658545516865994325769026978231380021693132902709738060979163239403308254336847162327372265697266375184777251166585622873488433137444977059395790862856365321643394743115991897412633185978121490449689866790840682823937014891071229475197652783500664756523455948111241864481452945415436991766873733117125504373478956673746901820430157342665110846008895949604284738750898642715521818397475360423204854377345406193125697684896020240066795285910807159418556426414592068640341492070406963872689519690111337623312414124271060913925013030630149297758881597882141564681542329650064195107615254699284840217570164337317690222401949881449204516640562447155751022492238031429065775500149773293381561422115411261739639086134817965641917992536951270354725618389327986691524756844654369121587997225010753554902656527055005751733279228983867541500869924075300328301588242967258208413789839637108602417042753710443273439663291775880266563080005988424353627624705189759079142260552302723578014026201443378726868623476715290536955468031473988657374104557529606705436137207123424484782979334574588623849090121705364018929365810610801639387119349418378021261448801406198025814552289755292230395376633822030085874552333221999211102310461102930755638736617149169544269664668236691942827170852916070423678092068836054030791621291689307690196332946505342695755144748828968377948842930329187809191327108186029616415648466978151895790551020675292999154223782019678453004222697027444160156206114845635456876842477627194964255190787799438241960214489945899356602443477522117887837529132697672996439522896956135007658090779960923348621850367311380117226288446447692824769305503488987353645566772704816029234243570425540139664892160979434251568260173623969975237798397164347311337848721125382378975932726807500435056868671615326996449534966291075014202641652030771640804418480034269058798341106630644894073376871091891270111867863230098951334600562659510937782498661055829208861683244991295897495691086435906980301891729088391205515540320843933210414600576161678684455836478017126090371051325897494358788055445499532991754622666344314813827179213820359519603552336617259533113538100936088063808516888470019254337497311054001325827472798207727026107775974324564587469022237581810848466507155472749160411079758109591669156327402574903854165090964587897439909164300324637085725817134331453516278327115553671756778003343015683279252924612157492949955472776437857808412256276136118426313109867295979586068588603578419024080208570766251025809567216146057970600365742984640872583825349981802776749992079547374582491996472741980004375094736937149850077104903934176424653316206075744742909976174840055234393582258327570723723707988079834673090809834671112823082854194271833371403966524184392261442264062931033688398496240191250363715201108983557737690699449883664374044593570505053612965007255266745088488047697551498920404484619920985068860234047039646282621721905795864036884537380782940202728132465745197941293772314354800488798958966689441787874711309454754920665573625771381778794900389354786648394747148850482820240183837004744765254494009475738496557010385134941635885427338118936214388717892458096738770680268207821666828738087210743620224985553534803289153149724821743240618205693947580867368294134827879858379318891677293748357598759843202769159750365799806514295297877381454718339758909053211621670211602426488352161218111694268500159882296567418795571833514164280274483854244981258756310336238084060697685531312922884701009907984803668562887919390757221373320526125635471812194081499426370845337242982944662819297900190226662929994387452715270129344663185299999084729531506788059923849787702354637385716138238822271915207883227940923549824562519685453686494803262578975600340242783105791214592800115339749653888792972962080820668680789831601377767192137714333516508787999628676260459292880597699680776794654917832570685846717543537443853524969341544984442554736996181300405737450310230844160325286363790667319896284026532733961703948321618830213867373185231009966436217590307486208010505420839945863651717968714652590634204060411388926706456107019642866387840139840001886678705102271142738526936668376576206595193840966658712179976406113709098979771165198761119622046092845313858514672888826178635546457375567063599335410898871854074139880737884164598065978320330575091998163605456973940100827832923100136554607985599192374486091319175399725203007270310960551692562907321424919941712647903098317746205072929115007615785861632269345026940646271977270252103655200507804667491523968651887441638775123439816863385257784642724581033009868857230878691195049617218328843434421013759834249182195192286192526540191073827820805276806380920560363281305669782094385200732743950928482221916210872978512646642243980496254600223231957191957985307984923325171897751051787580105740313282847328686354662800212993834576948933298315502831636248142241269253237216087560976532177823992092698545764086809389178064664184824066667401936108741246553847312213285307315710829909848619472817696739484718321749619557606464028029868179834821811150944880840152598276833034331714090470203324646239829781051648899171441681123997795264589465592162242529405084851793394948843343419768676337677774342923750401135917876648991849075582090094746492949241840513432979299271876528155854864255204368236063243332515704281796759734701549680283210646691039079115187262454610034905928023261683688897287706483422154219045570902123318659364298905209744506631398386733115327453821629371212958692306783569102268928147445935667470370746120816913105658882255687679413712889345989059014162192188761634033455173923774693230391470707716744622806621570509673658455383308166398023799054924112063693057309941888188440414994883678368984206238693208243746892853802729828428702665937598044414784243488575484578775730806132826423709494056967199204457200033464137321260591731569128042174738626850779080872892081506638294126679821141940856191377445632964502827965454963758288449407551108639929717214374000591507531616383345710320773382678824362259486553265065258024154411072376028768555755502044332704708007743072583443046788497148370826464891728161728778182929149536757880107300624974982933373615786291630737121735945624169409807796238352443225603016375668671049404913449430019785154348345912117813171646431300304459944367558489183602548515734152940342436191744151572674955842584416037705250110841128410223813364561319980201526872943424397663822465711335032072230468472515719852328979834474579532567899150519904603639252603966108678736562970421471871275483479652356258259737369979570447116061946443382838546504021920101556814729450481362120121476194218687899374619021568124171298694911255986975893844526788470343422341103086870678961636566490993980815780836051805403395458372546027981048771297424276383094732371109205897032709135420627835502271708067923639483452500466641498247110132783624539472720446482333961081968446022230424509249197591727179972667788990646868231238377633565399020481228422712189895584203951982472344813971551853800053745213647612257208809705555849736986307322675618344677534415422444999199423778925541295935611148560704137777230429342185374849692747288223129978797326806566470052469328929846050710045941803138781838709061067725358557356292244001409172626246548439245576775586028349967680153822517100402848758803950984266189468697432867935013590664352476667187741616696916207274260740354314377977110845463754324222249881814529146562945792042624011790273920610609316226868076784597377356526710403890499623731787346216011540631528052317582034095247137017412154930076960288275760570113625922231692642435391075095440724498269389367622973615395398433679180362628097532926825178604413290508480661025188757886992938094744486031846496895002259302128529237488293183724085019592023365009596236775990817657510349589942119763601161697623860971750451114242170326510061606986136070537394176305289305326664611172891184643097592494837166406238189131116356453292822492898663476359203040132844587291575304516386743878181070858903248815051413030528611145078070030049750201788419863190746334098263537989090922692754171098561845956450357167935132878660007323998528062521123983250278725184432063911063266356555845920865752560364796255327462920973127794948940459007669078809775544625423638718362599857261825842104069991002561421685880398943351686131539834916118027202881748345324355963127285805670120028451402653639247126788986117432471326893878863091128771629826441156158833278458006534961025908687541678493750750853366448953824554644927224257141545106685954583775066734384347833939345597467157844221849761467552049983781062991697149581906809481663000547261084399505660319455364407650413893346251698011198767293963316639018333689511590801574790106466247660348947367041814966912793992450497284213822501015309420680974065649527424948983995816896012899326786522853600993289629151682559972102975067738935786046156669071776691330474578757707455207208200239129602716195612865745346723718273920170393749983450668279621715563295848556615974909195712485658159911306063261858121621754905613160621138222876433347724773739260952575027927856065311822185902816181042990648653457088660980624871081208157542581630295218225652403627507086442882755878338830553076870992329296633941206162754773099632956058516451040055884266050202407382686039658920999367402406101098189762697826667159151475726816511385545949300099307752336293109248421010480595323979634267689664001796331413478642425700874420304595515650087517680922765491468311020741940180982733315784254889261894205930875757667321580556406246139847566459003079791035633902946526625901011037691719285486582595616524255977533169560634970952938861846289618510600649228720313712611531011515056963709782635155161897793442282475244533749905029597792634449501299874217003828804496325731590138723647708244820631651344111068924227136071858020561168855299944068744868249806658965145730343738542639016095831696930599109446131122288669765145136225562888193555332483265243732896232091966291964870203378085900931865849380834525240073040088560977859515760034722451752752949966873566557744530729282838892835418408569319123487676087215337597607734723617234841666367280385524184624935220562938572157200694000689752101521030844407883339133757836506502402130949366096803919261810442119404878686626224526795309060747082840309881495750887914627787322618020968816826394616206401806151709272160800498911784001776284335898520669895939445123142188052184991434917578363574121425656202179613990544426006101486374165086356521442061153733264430628932333305029941482337772900116460717702726355930279554231858077337554855283063246621411441702117724081909886951769138507152606330798987912487422502939625524659257506024725892195093072404097343282628408096568459362403980528804566613346958113643386950015668537581443902303756698696596313715848713575962241031009857173398382660637107149259772876636962576530077172407250359171009938459435331929988263477257522515868951266534466890126017738817929194611789532713628581431823859179717911871928580626288916565043906886903906014940135994751404514200701753040329426450992904870031172618704538603243012134357590902288106020332126003021983200810794251326956480793760915690203292566845609938902709971619660074502232521989594446000114395798645834551125222288962334212061565632456966271146211071574172950625930885924280703293554701750506950082772794386770952426340341723300706581368765954501642221841289463045765273977984016071409956169178972855784257081888551490077148645480322405753303352545968498078360961886419147390057242964485814266664910441694029578574289710675413010546543656173434386515537235300862465620102076840743328510287442094894404505961415758835048186609302501464925328690311252018111147745406178471029396289698779385359204870926282632449144142685474585987074479267819452833964730858494346626720722066916903957564773328881509883965789263435566561968768099757066079204866802457634100660387827254623937010414580102835420411576113994923381494603548808957370610770904348626904154832917479802176392368706328380620180986493605829916207249995339442723890750741190702847329529793894340834583555976408907912399135791275548740202200633479948730030792463556757561949140266843768113018275439780330995541859401451463859153527318483728317366503396945418609088345134652870032587705486880697426582390761993916907910830921930897484512532813134257833410497100059193113237006484143824217033048828627386468028769407045052311416141756510143910066150807000860529966709036134092128171774395076144082468746116584555897698707608939307043614875744574817931075893173155097962327415966709913585661943353124934141650462455419281442380108999458847132127708442232557426071741588492213259101352594023161868818303262082196832065352404595309840475065834062213937776458875977129426898059538792900829703794702732036963588907877835251175782129114212928473750749492148196377961719486366896866505478136397788994657020401668833819009473260816794568986803511252009966563879063271498513298075000686605681270140884885643149196358500192236864162045515859088550367422327715752570798250977494573532549713981055903142737401720936476742890838296457252064411890922016843493836077027561037013213736209226435703218844714177600770924434063214876504817659265462423571169982544531512742725291252455724172337032861508563900802485223680333339594958401014673336794693133309965877048474483551873873562410197540757668806371656122129253351222341463295039300650533757554525687829997085128393485542791509264878388659576614550713505295913217947481341968131748074809308182876864470574994409117371661563880138951038470955845295841098289491377115935559549553856019922871733206276866211683016637347574407039351162655626857175761229831437428501140339568011196151063207872520767058142178742329584340549845683094103980470183958612551477002793632083842283156262801260550868445020419806275414834543749767607424918764432619327812661651364881571001094042617647224011813055523800399919340320827497781442432091755023661204796660562814872756854838265517073066078888675092483549158155173827474856177443920633670609360589441816719506921775133512232405097466454547970772519608339858613196725581622866934938083402589936659616474682603350520622982929492281921304799286372064071104004564669777317270707758029222821738393463029792590062169041389537402839122470621332410692770689718358540948100657058136495678340800249261373992771981609358929982819713491122384387861462177559668841922453219801942699594768832038388740841311090424672811980677735573303317903056930504847221546684481455904515299718589943474282251086536888044488734723893418901163182599385930574529197367337316440545937650220931892792784337573315738743014071774310864385611412152259386303411735291759838747610726862771788427185202664032569924826433396140073093260103084999499941415443406942577368004062708782548829753969794951273348369387501041318586804456873651696996013798129714085843545724476925603926801550195642016572705780783923180622687331300345841304299166659177658514470916588696125969282433658442518323339016676851918764432591029387349000830531966534090490210044335023576148792254544603655661840616724589154946877360393467901952760602736535896347146734261718610142636902932898834277891126875846051987121679577152843507290838800496505533971881245863784325732524694115878223838818596741742574588970346859383380500869146925779020715289234672290253986382755198073801468407586795669089950986356832710696438455301387597956448106097371945666646212364181206306371708954915229478699107429165440814987684120028901542499730822844436674270827716549994840529864264952173563896612185159958321325252436968286292765193222623058926900956724303504471638198457326843544534832786137260290432250505638013370856608974613072251928717233269471040633665195916085887207809450384595622009873986993538921140882487179775230294823314773181527556234228912770910824783220988683209669131682102389389542356152224177386079568874031592610583765491741386418874483033101362249644002993988583904540595255997152128892608150337039413596317646476790852436820296842617838893821814470312359223782855732609193415231112319933812006642276183384060981925716576308454085386507896307646309834764609669210642291794785133231010228918832418612529649600837492507541813101048386979266762638235035387995632744258651288454510823604179202091478595747597219598993342340604050618504600036829587376263944907059415510897651816677564906068498302940351211829974518024502765616165930127051248731504379209751365180193748918535034967424219679668943940349247078449186394791470460303822774239618985950243263279125812463043648190659325997630861524651046258337412518902926345338776940051900201337012620989699979842986300155904260368331171279826996959893727779290208733334735359580614400089525402509832467270481268755011626542611781761456115809192355696368509699466716936935349549588996152391652759041687782494391769052678483647786383376200561614246231333778245736991109887604025534182099999875688381826040745097689536487006975785798142628741522435415556444692325922607026166311509811048074409304454885537798995391136313788561580609223042184824275563012487318039730369824308039039646136731414960146789444838446634006184676846199193986017338065517696716604225719686335757197679055382167944051938627799979580366259114203079550892029522830074851918854295708647789620649815730898593368662196579544905862340889819448447399212210878542763125929287127456962292770190010481149425743950948900316700371602061159162330289141442091482329625120403390952804725341433761002944369967019143068081764489194402738071908049590024374187431699214530465513328710479083837421719727258915410778961707059024328441813767708864765792634839512441759731160425263100411033042504327206551584004656966729767251752193581612369390884375666075042193299424229878643385346471816398861740570633511995650836215061427296941696117056778837086393638047900127366387335392298193571620291134352688962420741474815234419439998614509098838761651936893764367166495108493669818904409617334468280002417078956927545323913048460943353946919187704792676272920153774777341966066378227759563756152778321265026149388995313207690096744582895107795765516333654626478877361474105925753705267881096397746034206481813258975941556606087998191269415644586441335763893211374103271381955384197547593682874928173309121576665992919866605219742984974076062685798663060637261075975834179041284720189388742108045438484439301957907605283052145195829641686131534489798406127070429643181256961710484578281985301194106950471075579170496422245746761122100182128238104813225066002993872061394189150706744621225480306382186767130433296675472550491021542415138357771850566105896166426849701879668189007399129354290140038097738510464064430019565665904496552074237845175172738770735074077480411273435579153003954883466931086482098527958211778094695292445135521183450566191120726890294244050701682217507192000670552542454802878175270403486382646132146989374247987390419992012222779730039186033748914352891260495330598355326446422336901463885363040124421180752411090087222457339884097077876688706931326343828244659169033489738590890059234731073948177539402956557643352671196889149879856975457965161492050594878395288065010911895097174496527135103990035880040712036084496163887534424509436080279767513500756923938471833788383243942711878793129097472769304468508513499453352022025198522230942111328880766168583104421388085443329330900424089726555298136312261272091762201530971085737799324945789322281226848345027450439230113304551512725469148269647317917397002475305224150380728507725664198189912784922670397301075746362060369212925845899534119622454844935256953487957705561713383136122549218432034130153436687130755945257736834027238744981057073343989572081958255626212684752780996070091952287128270226628368954107938075786200895970765167311930005401403259521546062633192971920417417243228978701698739823772866178942903136561280536999199981243127339555041401596444480375359893303304157149496522714228439073280252912835142160539224121089867599888015210443978284399829085009232679314924258163014262018500498211690140378250262498703096812129365162762433793061013728132062076773364875269661555522439764933471438042115121535832002919784101315697591442162058983075044395948753339649712973202571623509731278214655945130117204076173155835609004628837238834158840037703045798884996635345161521854617997223396854800551447739560871694106137140407147461378017900956040184817477449880497977066936824080031020213535788022237203716498398736227990734590030184513800568687883054704306807662534597750406306178855429828454307318315789989083626429157581211713766710673058208705034322836313487593348559868416329241698352055015752179784932300011478162839407697573592697032278375161702787685748214187756445550898655724779029301788943040094994670695388980304685203489067378660424288127983813329594171440752170224317872498596849130449842488066059647362983749451196034782009852496367216362805089298756295106857032633568693915849334816711729672439013186385055167117563017521801176688012685900834250684364953214674693694150358398272718899957511416366656172173899557376184913587695809042237496148737667577695754719023956474549498426171601384304814386086995758528444840963603335064230553265239011030692931662773867962830873832045632560200687829100121310715030007399309770484203238143344634450957794348713058965563442886122701331816342568743073909965418634052146589888704858881325071677456194099646083184445685087945516935392894762441622461647836204092255027224526718792322890767423617545654212061722175614591367046968705540707449502074604309928545139265507911271716705594833261006912006285932936629486438557692393793725449886389429397277781343655496325856866839713486568239770007162357892013230577195381110714697826347225251914274182809207612197184760691650469189244150082560577177159250666569582818299256095246426068252559131942603456757396906364912084081963481006302837862277265023971474217076055215291225776563637558085006170489061447019275564695495798114833072980142878858754506135897528553244353627809962912211894979616778791664630237466045159295620686274407174981962858608955868487119963182993356989337032481306111756860570645203486050300389053472970234252004641712219137866763207238473718826078868047251683583312828225247649401278763162438418385264329428620792921708192040179315214351466019630517422674097282498889997533875492920239834962852772062589445926763444961259475177109464449414984175577809005297402714648130481607800954681784691666554126229673174904340481993176912274299515625674898086513366505447887784521113369246125572637368811011517918382008049007055278239619331783341068257539297761335251321118136513407480856417865466455947774392721767503089253888122459611813119070620070779975302635733774472331946073243362805181715113197316092494359285830473850665982496050598957807533573385853630136271708154267635477626152443121285380963178938444767968321406076423526390581724061080748622539445690836286160877622187466357050735449054921347548180365949530322175600676261934096754946105943678036710998512810395969969601143732042298935746639090020927104150709634697101947805530332224610920639880691876499871762063674630490857668578831741330031368470084441273777245711272479897969303880381523060080754637482204941552212183854847701074880741253021604141793510502606446561773578978589434667579231856164501136171727930267583342300206442436367598424100493280231532037576166104696247162819682833426446293439294687329137216902794909446301200140977776848596892289568406508818181202721067846720983993418436806185182386010711856227532957111763799199110042712569275876673392579563972468267130911913777462493901413901345206243024625538663615809047024926705205020718282906663727954121326027461008468625540032653525951944397378785999810866992968198261688161852726440961700025288698272563871252352435740921534057227449574102067977313884324182536996321393176144496204564007322051026236159069517004524738347869828268388882047142281009702367633614571631272419696619354961223507872423427493070267149145291948469367814372714478098712935016485392651149769889533470368914999473482778540569701738365357219296221511656110010288062572118160049683219528711877665827116427753550250307551679986253174637740720706302897104876572968492213417543150041681104308440116465488437030536132532951318119200668346548653622150903890745907168372824521677079614046122391463264681969213555284675419541675579350519230844192288733526458918574892098108990159353384842561571534444857661653731975212532745560346301575719468610314391903463342010948408777892111368205310774581611794251154774039187136430730340663771984338760811803114883807069845492585355405249548898181926236258483822052222025960598597236497333119222540621278982013183849317151050993475542553253888942534130685727831437366237728121554174051202263646270826616411462394811038885530185225871805886988702577642404870576544810393821424525227648061688604465108215036314534378175350425148682842695783800296140622224680349593534680276485009356051150239058640791361008816588113569879678597576656988992621677300986388459906002378969036103117808156472972741910141644751756022680897224616542748718647114079440518022615211989806959687080199325325021315341204823738673984105266246751672936150714095624327874781640790257948347913051941548430897641366010221562822023452905519933545730607102638347379165012080824408542351380261404176050576992420284355771708226088402536383758163273162836091055291060009143244794270246593960250494371966322476400102083114819711051284373296709648935680576900460770971561819049557900843729265012039654694091558163616512145609373646078776613624927318316187401904868691074944462373655850477595467489756972001523394641713846988402475139056853841789770154045893325839019559597080483364292753403115057546266994127512419917413582239631830252975275539883234459671337899093996948593495777923238608981761890247523499608144970976954150461806597382374574538130614573069419694107297406826938482464826384702192218349148596767814856743085417232042526530233003081886184398901722790590635684058917546304726067629701782474386568743841264628089878382406645066081575217191475370263043092682341689336044835391698782303146657137813637838422859924345608221008710914919589150870455282343735328794421816032070777189902405673998767102551837386222446636816795989874269094272472106313343232542613576052634965679198675753498595765535571970898758240694178257442079522780866720510173413360188446821479769286684236158483631476501337487466328036022375117682736640429725690779715199320170941338795328999792390089214793317622566801600906902121270576035823795885682141711944555134543951231435276120471071954567992828292535759965312420722306582238511989507036973867828064380607913072854243053127535656044892949949373615027912238332371856980408491460869556736494208042911864937864854448881991817166567020907757513501611980133891644867306723255539629036446774205056428007430627514925129020441413531777689547495442562682819770168799057980555820450640829713106896876484244084176352241312566735315783563899851550152954566952532337577914718722379335681955310190983678788276153265443653122431665643443187240783843158955803407649007059188777300811194508720408357875462293822937894335737320734998782256864827115450870427702537489525467833385534415779950285630230576596018684299766857452327720702488819804131167507039257551715360903117899590234023500009603221464723182655558565993137051990726564805381398526356626854172936838218681535302172132734306103936677361659849019762628620039964648270642291369418709606919579500379553060949017575584373092495399534665050733105220547669402924974729328652032522629350454625115768160038296394850647172785958147260790777522455102377911920771202662456361490716377565888817971889344323240651081292193176330286675065120161247538917558626031872190029208076875040232427192971995535189581428025690868510841961563176901934550977663910729322397397200315758524444280254768773739575664626197297132485901161447709703964529512144823540772938038028373528781712461144804122564939577914719001192498147160109273486282033812967633095781891801306149995332407686274695909196744724885602036738910219937217022415940851748302934184679328686507469639329935448055778462789366791131150955757121531472000367240144582166342331345002285587242012905326534346541405610991881580084800446493441441561088990096258518711262143188918296640440499763952694627764488353581661252199656795496058005021341531181465819071104723526897583164935410771915445124414426367183699248171820688097537682952761640461472045132948395656199888806722713895969000020068379544578334377707783949531364686981811689963117167531174767218055874962028031506702691603938345971257232204346976382057404334394113276677304250296709080535427087817832018023173333468667785445128343666408357090949583437104902183922700430900108215203840053017200025598514022998597789179997264337216373563134244986111269404638484584551646475371833877516503895416241263764747443738838683837487352701548197051664377074951201024026257878035299979552927594213315091799959467641814804127828495962542073482800837032205649999696036869235226649603912642964722536978767071659758063640582005529510248356782641463393006357380479623382970906817813451572594798301470858683308534041547749849290698076466489737928964099847142637088331513087010533944315409721034722188425661581399286627341300579455305003597191288567106574085905384082698719035823832641625897683822182019753548725877657595242105169192385082156665354055723823265264617142582430879039229530949347075562293264259782936305313903924129590212232337873563593993452807862067520561581239387997999317166488260073761174977508330739942481169216674163973875821756530464314385909955855144818418004188500929681563801834430162412224421809217806301498442077825869677155712934563585265292521734521550644538049066446462733553124727845501791669932819578699343649823638165591250072497908596138585702815714810482769718973240712078480863362720970077793175054204342571771962130592870137216751004994833969434011993001251825539914560002307212754193060147066183716837664925641020820369039846378968182393511386279432345182408928324492968628600236768540475508454820532137079277070125072107920611773382733131741810428051033944101420338044347535100730283131462322219923229169693276857850446889251949910481225599862547956923912651162230684483616687121696851284777948979570417492815287764280698134522546578657999535844415391651996284415445010828354211122784940766781344820123474184284248225876808379848791884720664209855298053781834357070900155654044958047803242524949266326736838678898267478292476053008395207995360723680399039215980190501798426498696863355589445917129245923250998902614649127069896605159488840422826314717278554748925883964397661766611289038522455001592858772685789530472672226652181171194349854270170289966648807897207074762692650610794043737546240674694568678296508894161696035878606735570622323810173639347435841719784193141413173472096300271691290126318774399555714268455849149042263815457631297043827842654473983951637689750376541019060295812558751359229072654660409384455424439854456165020738290595051612771761735727264652435289344493477994157000948144621699698248589791321432912594995700062526359352579181041537311632871678759899683033886509235609872061160925284592150347868768481395663983913204046588741600230925752652394177625771235929974208492774222427588789267118821427868691413274343334893394811112531040948045019123165884043806165744577757419774261598072451615236852307295309576823088787742834939835537294789493096704615112022108366193534949180497914995628044091220998163937590419270707472902103190487174830771986922627921994604485778579696008022981745350194656384276432923825141539669457107257519459714575531331039719401233189815729116199368534659734485278076068179236493248499618314195182375464244182875481730877180858960875956738688045267712822509193586660932115950927534359548590546118784861318207713837402186290622825806681079764053222331360930976999361414134821892039751337319553901316722692477694910484919961764951649730508538763477420261519387211883516288882053760643699866701569837112314513004744182063301152468325500651395457803093069793301885237599689799930921521123661735987251915291140948101766635098030744285421374362660803282553443760346584829879672920859473378917539541634697055935617207389488754922113690969132980820676023485082139327248336628211449932690967132188108718239528356398050993123540940682126483342309931712702595550618028568529094483799438330652164340727166298985710854783662665647076098559363338269435481809683056854629711559650585980787748202902253407376396280423721737210702109590741187517246381784642759835224410970256274980846113913567542065084056064838683061089316766429644413837050636688703750968480892643500990540208284604276056021369729989541242813722963181464892456677347221760138672718284717556571617540204412010385099644836222761068751863638584356224738166404319703424098289799370431396658223672906272296506449588013236431729483939837821596641754469974548493602161401632533379030462757009143291999524182303470344109066903104740972047125936601059721962725407712170577035168938727259607194054901418629882972901160326017998970499469133311605747291264854988002943575847942134125479761950852341566043085894197213189685752819025912951918492753815098778301057469318467012789450014178361795734240592589883689716599761078478652439855213573940357293755366397359795663886727043270670363946925026136585515489369778793861413911806850570934011658930563166628686511629816341457012454205228857295429942118979938476618391765736680033530022979394639309463013153135663991288733686292602589671913705333257845951342453220654366289706047476981123476278644207093289231744728814087004142481119814530330244577667368148895022343249619326046610417845845330388066363968987318444028544831657803704391473874408429192333052480156005504906201296508302283333706641613117271380208188109353934710413936603791665726482912844172501365297355273318044798103193633887638297248281049905500073496966718503351886721283160858920580876039528903415173473681993186076994632292175202731254686234897341148875584015895186552683610027401001699050651035675622395747188983653736513624741661143383157627975496454070050789480040447729873431187117017339865125979674626789846252228370922037855508974247496443063817728279297968072583058684912649736059018351645767663142728352074186330738166864024621943568305221771581079060940363377068366418073589762362421738312141166744328757978002602936938402397949253642718949986343130335523075315082346164010832780307902818593942826289956234690803749559465540640766222541684423284849979305052933835769957604493874092440033430371756216161335646389719572814887818269583815663608176736759330401889156691339081211220846975887133605243399586929194792022037610939306326523475161179987837977650906174482027568202682066924393663084659047971338543190975087794837861498712746811391562514301794507061498062815353152272660380092187218736517592418931885790809408253037971311091528495327569047308863120119474929436826024483892356485518677952838224314427553724524872284166083841178294086206023608934536635241847508677640530413554124007600051666260113686161540972107436067757446892661137972479991670560528975357912576817247630429197585096927885072532279218844214697503842045151728888822168435119183891354648567583356456354338277020341148088452386196061248136659768651975255525512386336073148105520082303796768419540395848668880843192137508620081920908345973692800822605316429063935881683900331613953666239097402129281379992320992398358242911854158750769065372388833361576804666051378090209222079601030438134320605181785539052079889860319060397039110822957773342609144980839680351948284846146362120007708400987820819795589662236813705476050927731577715372905209315355792225619082743149322200365863465075375572531113926635157297877590652023875428094893441039076998125026668737735985046508599296842026231903465367027408501110467258295470382450549277236381097714891895253166608740134471211560540852595065798070768092208784434483494976240295700795109996743520218304043145474716238149458131433980363997155169458269571045605918342574277178917840602807888350660889594849003926773034399546428328509831004150960442485734046816559680491432069823028939038917191506266555344437515927889055314164389382910434008767088061839030141111701234394246816928554710872403943850812893816840907650797618954549362908420936407769786215124350016904175085277618011625699359060426184936390820913460304162835347589268461360107959910983399396789739643023767620920351960105303092767542021466448524627182721797025619338187764628909044947823727769167210802668997117613984699684635452033541115658016475491004663150194942679177843518029363718000962148719225916122410545914199347168907353966894170470848752877692944157898645037228444009167330577635674732798044848443123512928882736448381962336865956635710895528019785702086182323574231932316967236760726068634779178947097390447405997371535437565486775313603320755346647760285354732643336627889657965546876021455437930435238276964474136988699279817044988873406991924032334044782294913834284262222641814429063875291215128376456437199806884437753461569747698432884885244571394356941736748482514416257417362141223813786107351642328523712312978130483073169797704690737448780012367165166292218673797756386798026239100526825169475800670326670645897949735893583902254478111575394618922175780047564044116832650686130750138646451012483748489414097065927419961595136718640546862827493839519606343722233385649145715675683409991911096860930959548111695456894377941269218157061229258251238038864905928884525141756146935531887650915196140516588195055283087911589240750574956482131182212779368231442782572105019326304210796057424552983336532273135668694179572434614053763463309194982852567254672580165814762727034344881364730691045222028310661643447138736358767809197258215415962278404966272973702597808178945361914343036841954061769583683131826351977724848679283317358084138890276695815206428443681687407971576433395541137387289456990138890995947372906872132348803463937576580660005492837999986274003542368973042691815853521042778107146794081159252528444267431563132239310529547750598599802669395284066236304177148769621680773375235732953530072107775169195128138088216076194643690355014668411913870186113743393966577818976427656727583594791039923537141194229481930763970569984077532933017981626943395541623325707957391076768045707265444678028237685399398921344095052644570276069826165132173546982954432261128294561740364405377923204795669100518597037075393309690452727750194288042697323591095961506168978703430526920586446963297647967431055190399811112550872853053078121409103814061078086480746602199294869609001229049174845409749236946353688677951148972055465338147454686717762351846208304836646205688822055806302020411747484694042973653737430421491460751761922261892541159190600564451466717561506655549220627248463049522126458881303671605836941144997102741109664026132934803543244191191705896521887629994664851924520772492422868881674521171796500974856790196290613250081058746014891037737133513755824850098849809105106130885545700711792696363252280280242078357897021042328702681061633701984667761831071644612702112935490226725525540996638406009574268369769434873145509746998929649335307387370251427130139674027994321197286790280712762137846988716989754709775403380080457125061934330903640302110822192433839978022244299018360552924426586107867936373280211913417672380638751744854520693602045779635743404448188151735015932384254726234571120656482034612990870051969134833131028200441068797368972686595744163811332488808867448452666048065612775317577060572389446601584023911630740867966466800635602807445136208781727853218989454838802796060293549173389981200053144014872511877792885798273451730165367850727691647306594289787852800973059242256831015579577340783588851886375314005645562481572090283677877671364569314672965383007738361695426843022491876483186309075258899699328257060381209748703964127776607664216345681364973780521645904482404365422332595550690082855743040078424847160873868226762202444012824838810203650857704543418334209868944366047695143775815432628667115036466493037074380862626372586574666196631246243484871198514836539970066811542928029572921527976534605847729669432154922952031120446417594279611553989225671586786684807678526398688986452187683692289958808062517021267303254965348666582623594307558644694101208265095352509052768549184888026573068781941165461594770662181005295785413164767878384749049455377901670878947371731824633508793033920670089754961409137564518988687888595076093065009100257541998765009779654757509360719594931764207674966692983283835810200771368168601977170580340140450273613636976115257343389251876709359674615783126031779858187497757796353004434794891464294561435544510683998009427527525169242801550252799069492678960620225902823266457034076543299970501083774928998509765424840316235535982879021004562039813215556351165172682829829358732364313319289216038518215268364951856559713262052824768815765083082439807231262756930084218432344011514252522492534149925154936971499198889037778545604695170656576297646988180292874038531091873407454132042670439817316633716284591013946604779141618080213568975743946028340859775538919037785754729660339204971635732475810742057166761871719071741052166342545684140426926553648596016176052896373597983934798327565059998013840548312369948800527195483493292626340951221454683003879003565151909025838490294675439091204463254871627949820769582845360204760835485528487758524785567928801103895921923933082067060082726542061968784040953529291875377694561734134891456137204117366257249922108012584083257957636154805070350268588608616445633191606421907298282477220917841601461406449580395403779013833144310441644201557887142653340639983391179015968540986527263221597961997232262488936016899157789024136189817564899484679161521837757500660392584456812970942196575991634416851372944288825840761098478119572314182013301453578141765664339592920897152854193262343089231309730160043466407527980636196146869850177906405123138029966061167708620702585906779946400947877453150092861083479996614902732493315795879665609736831071417534312440421552702368561518071432044730706385476772209497897575965298247482243407476980670728587916896698207436276433363403804511835690408301356645446563019959372274558044554197353025704676847537611602155960748533543700769550257059073000714509676756744039632373568856336942130245492334954731663091837555729160955796950868950000599340421072052690851838951074592716768924470826729431169384861513300648538373624630030722229948307048443958985063315433559791189858000906139016546346796946042656612829777906560358411087218973766237228079395690646997676886391058979623368800746356874990146418221316068135313533472159229621250293790364281008772470586121765716055403556610673888636926590622609666044449758400763247440767836566513318409264501852822167998187869392717196800838593016721776049350480520176729735466281598608767107704883489844251821001288389125801663445001930952455165580631598738238385815933557054323494807062932505998743488919889779336705341227764329448346064613612275872749038948147882107965971525746275406153696549912722762047217219670603679703566411988161468220472989684890909594811918888186065316351938461814848907310976854914853213172564767435559714677370346879424576188969213015642817109261607327608587476467233941605441129064178411847970018639057317709550195805977936596579506346498266477414238017721100326123951955507763332852087033010514736285137532992447892094688068270504248915161196097621569829559103512180919888108836041831739350059955094079852814625485596171481600043377561577651248893486564808920488501434746728461695286803367454562356607104695580052640246995216526399890072637577550929274378953173438328449941440300728665311866467840316578197893760839246464995972715225412454512888685704459296422207789142813665427418608062453973805299414071790957949568644844377569417286140034430303499629909695898722119407136922469097033555231165739017471716876619628593689289116594292952820740252603100251513609105920078557420244374208144332254694759137974638838048413948703357854133424666400921918696164164852592183263838847286012183608828314904959584026932863000242372300688874016810807054045237478916312069675565018341675154215126109792994543860624509109425214341017376834213326278859923611080237361266882912101349064962994816912480247082363663334264208490627956584333263316381676294654029267772488991169419697695729855469520236060899926697005958331036501806599994917311166211220648808407639242917732952012589322846854080733142643462188413626950015096536675301929474890394591750356694783625394282055516889381652362356467257167933562594756436882171208590398830111930091593929298555290971995551501103598911324800802303504878845276185594340442663992107132378731460179124636978553786959771566946288676848418761093514822905265694978913352187762408472745577713736097797358143728278644470730445667136701516385076501196043989578329558089120344115000835917489053874373949777337375224790201253712341529190341370117748384525918867905961643769064129627049620569862708871372360483625596487974119785839306941221585365842681403124533317564308268490984109536874935842569938111131731472334515080900840519435602134695666882934366516344899551300480239927697972745567415121370772364895917511608922196423256552114685728513348267064333634183261075635578164671839148544679880027129930033393158861202041921405357342937125958469037280706448331391868168093320593865483838704414377803274760155294451509968957071187976164854533950308785113192932358435211095483600673121421890906436758500372761418665494039025670565121604058326488528093619594955416811993569999891356803902450689951631323702737263320797248921926887805221286226182150459402359499575838025152010362139265368903011746472001952334716417275437827849405370452290698603900207158109313573146046096258082481506587752078722939289899713411598100969976462753357689731492362701305598177098865319962243899386397561711661484418037433398319500413459038883147598681126157642021699585035483629400375357220276916286738564424811109258719745930551839549236700081581917737261863007868560590245569485417134685212276905722434953086180369916368232721002436854420523161474887745033791364580422946625325586221745124228804223862898609583156614736614314603262504047748619034299265196832211229012770631456380301678356389361684267807866015519183004155013049212923175114831172727221935028370892890302864132806240475967723804950676065245828161474294243447651946368900636495664978042063637780932710218440437125967872409259329803925226982111222540356308861158629411781706532976360133992976612933504628253753314235724864142196179124840108129420237391661443902190709398247380042100206193565918629624032182855997457932469518271288211820253868456689846349399601915135363074305369796273606551381864376187373411169652279059120671745496468685110532015604460931718632063742005702365198092183195858861266117564918655159664282582821100514098360314151906686680319650275258515658737392319084346744033882399318066475396425012475858613892236269975278350072173040998294118663289022397765959372055011993515197351515349172517215112328771914114465544280600233903201708648540232403934049468287243487362592749302445136060095572348184045674846515212765864796787220176414045744350955454948625878866954974132976493907049199535308166371557013433385012253217929523790004205420390342306737065802946996390196886514236506680441388526874517735198432208778439594973020506721087054148131320155230985273359273088857807051515823129347672003804694358753422972287612820632242003402121187329977089889687579305870859267975016660483095820253961197394784137236276433628229868568956187640460704802584802576409651423817849459183848613381206492202361903123129609656946024246521821436940960195486493203001513297568054522605921571703103634286845426081674823856588262971158129439797473169059496122328614686846866090840721329813582019235510153246568738689691297168747591901503806387650606342483980526785307751208338544871511554622254390268253305007400665157994635763091779227898505245869869846711955253758833101481656231810292226571557036191095166133794457338750276370407999576840908711525751041610515362430972038251546335178661394161887009729701434096736692633453070763132371702627897437379218583158170959861458418136275931104500827388643106700624429047664883247143014209975491574967663652723724812926896079105608306126502225627687226280362879446241288572499145349839983001779387660578564944336537290420989478641409120617532514731297900630979373258192514587816203787212626528566793012669137423927734136848881681079267367034205376036067578512920430393681642538798485559085918508063585748151914070185104065402891596553780681176074309550331359100788906598906006394484100662182948730312145492470634829807735293295914231612449788336102191090092219227400169270018795426917900594790737756221465016433561170994242988889657400346732073129834013029046120403965637013345104342657204763608436824148011278463495238523513311904224228433716519068536956532807589356150226921153892854499871881751771738687582811962592480970991838561106612414067369794339428122986795740733661344018942295102726083691593427513370345763004629920797271068432298260209418709792139340593928169039272474547544037681585475850480630038873964190764273253068987631613918561217764214744980050930612764067142438809456989215411811736001747910600903422947048723990776230491626026974099370592695657656145747287884213566873362938354113661350953796496441098918267680852088444993527912625260338451727242713392858536313417682639876948801977491069567792705215322220120131927561237512731401148695525657403267885895196335416411266752912483652282851711715743878031731620694443782342158824325324093856532286962525598168330307758209680516836322436476871106114370666329162322820713026339816840021405614467072539718046693795725119175777847282594592091222526311550308961249275992898798681272338559326583831351381063571665408917885784523077419084673007971728083294577697166490087940289756025751961401368582236124567879410672952386716971039541457891483234758370207855737496531670673057831274360309105606790166795679700572746724193055722160456654917876836492791429185120446174578369241324213801331665699237294763298700130793192899132484669425406792879540792885784059984718024831913982733255040402493556545952921401492610425254080973177442960074371323661265775051857666826485606785899413907934497173548624581271842023293653863587525145957474577068051335588694069417107673102395189185601375319938297931380249946367514216144057567828133819003289860500534908864157532550988479300697270733965777936010776345856842003035486084509255954665473066178605896133668251486767043111706127914349930181164010222089473849396644714034508058856012286134263435279962525839438343631655100323363554117318094983820929629734232053472713642078477338008727214179567356462709952114079751077244668851391687643297132247301832401553455387121349589715402115654603829477759127033164373140365054429576962092981214193013239839725518361164730606416917984229379472807960407031351170800297804865955029103193978808038540844835224197110914434723316191337178927578872820426164314177285296895057946429629835916189026056375926505002341598612473953953364848852503144010918767561950781362943303146671554204798742727181986340615216925442674483356518329420895505865299847856688865719601612412384194518570937674141688009433976342679159277384595188461767483166326907184794689685775265259900601969120890579908289266816353888190086288168082825560220659338555051297349100662151114883180093861722865520819934806923792041484055093981225919780610857275300262274359120413952551174152224366915857302872194695709324329284264988259249783987180995797694319512171675455666890121588839165323197184040166251745485105408696673927763381494610696749829708030507203101857927437349549164776398256156270808245180867543378644279778152526843496250741729121552424447283693583563077369626303618463815647700646776184174061519198890799373961330622477429630601547184932681755382624302457537259776707583421064460411470618554228502900657664254643802609335910720388983881499593844902030392119618937767575766725461896558701537838436787749348866818107439078488666126789760719365004298911690873997322310106220677361369146655552145045350439533404843125439164743107974465773182527352689345125384475511239316113769374279016469211830114606983510711576183425110781733349960775154450813101908907325911804242301160957564859867597618723345074226493290377325835728007111487777014907695045364767795241861064009592956040548166068821347197731828431125093504515898088817304203201477771004863436287581955636184320355508270679806097974405609530791888805006810626277294145932537668447551992105954667242874134743011438159203782387706563525895958706394015861987254078742981429512909007303818345467487816271558298504745016688192487350355178463726176822560500016147899166120459270149199987251461434349272002931655438553943398278147364458218787452257477172183472530341173297996397722471333207249791601550878783792566479142371087283463863432236530303513853935937375592421441648071687009700655211414019706345237644185345438901400209492871477844343203579702457453125232890074601212562744931402081208464504646587368766189821383907001858177288247832099641692341975716928937531743575321448345574069170901383125151765339260721032952799622600645730928842786151869735048403481659435689054965977914353238962099942780404749512010406282065930436141594022450301831308802305165485877489513358022300352137006619972163381651170163897049585331157705297886292744629736438772617046528363128307902436398938172015640641002317256203383653966125350854106329806938566254589280272030435213304788961966134875228805824404157550959038994294316306506172498329024682065881138853724794807911948638971923540806709716577110441941941945476002778534424921172763968720786684412131600344441578181540100176039437985709593788212167136866741414695862418492711865820400807886489679171164282555292656150271725901737619785847870759914260939143831882969170127757083725423072307576954035551211331478304944846225570726253894450566571013170040842049461596670781474094454032520594679397130203229202452946973028906798224505455146715620794178902679107516890963817034876630918668892953699212269573462468882867883540561877158322602709422934327547585356134258647217785547814527706233892595346189461347989576486686385100885604793313915608157028664550408625505717968907743189636933139436374861194690512409491566355148680302247265425301959530162904495356110215458680646383769396985441670931082900236273499988523711705507338452256579931052848022600324722308114691764063370035046660193783339679028612979464541036166635272895587050983431808859711639902192363151490974346464742826698947330270374473474138993262725874540043414673266439191315812177487426918132244494243856373838702487923142738779487097702481250368997988141273813418652515080899621717913416992172713657629481835361354877121878345040835794215259774892738784160997291736673349319405573739572261624006135615538715889227319044078945151879263410338496377654602058113312724176731241870068733778939526685481086898753021134494215197369357844385282521082109604277870939606219488611872814289852859404160481588252708350279123531872559992655666984533893005796301027346979780179406374250548407398961271135986467158539271286306430615051303672672715855803176090201936743096458366168602743986345435516907157489389549452817954127122731138973075562851678767829774034263077562870907844468130070785262489701928061424986928403643108184482372900535834132931258337357820232857958332328139409831439712543496991114626577237973781844053706986114533684940427140314916811823337263806872800271898648952555106082833250143217728479130182226479539647920849056897663435152272058014876872998956174280386673603499568908252159356941206046871592481871991430443345852477965843605373132255206768975274911142223965051426287276818623785127666073812170865895978438638562028872253509217593449224771678018655657467414086220613605141834259185601633970166768481439466712099712317217870379251853165459078040318658744251063850913784234345985792725725782686127643826279755350087000253512812206512838254747871366550239378479999862068420352907584038023524776330656892916913161106254263911312215414569019528849953428732586884006640639324765118856990804266310182263796731074062910733695310722801990589076315877252064163728665264595294118891133465350000967575671897691092709344093076737950542978144805502012797907637827343770290033592347194326932672247176933337715871945969705389832877051152488361178012114985848669047285967430093113976310670034206158839067822967507446453169193701006808760820456635856565555789137867456231122933557160139385340659058340628803479892750890955810940735051148475294220718694831288690647703163829347910583708099577795905688406973924336657670141161356774294066951932276700097060451961888332181460653522156051154328615607360000113580158795070170223529889729317382915258935353254209649285614032897875925131098477805913141181619678699053697134877000686825479896309463013882243011384964612878955519219783117481105891447881503635391004012650907968989104318430398906541103395798957699533308013252171483851883280307636560380260131325894305623500352458928512057298615006181710284946077721112337726786494623327458410094062623665105877010443034102893258970594923403673861968668718963458955625460224242469369251017272749422455631658922644121852769160268249919327808308237630960768360106081179059328485856537055509824210287322685664254026402385816509416903452814711868868209702418899659026426701386582480399358013187943844755592603862119436170282086914682599272425311210408688803944047342816262811345730272031268627612942929907482833099524256713613917244602282941637960528664018484420834765155381519527119917934861457764211201148665343652481991376275957131386038600342774107761135117501361205782060528942282881141853968125762290304591978446391248291400841909559928359036120635154415073013565985737860870345151610142257722214015946784522385497847525827559442057968789518116689348680762228116678478563440828022989526535897474010752782210502200962808800886556721515303273761718724285453447700475664331247993673980500481193004982840031338668703930934896572321231551693098598279728932758231422912960585246271215097897911639511442106774565682453799021023540983079468191237224517287382197443104162174635891380997976873026803085992520988382224673090674438402308756416583178395158559750268750988622716156989283878776819484051529283151988916912019232009269726931061489901577642360144562098713345041039767386463959439920699909400251395710166779655323897381353354587130770533967288728562181406495646871278354292318785779644254132053153759967648272487440263509195836279570215320665980054198265011487921825897242756067006520748078082829435043367857466296300817932122426931131394454224715947842638011372227391072614730136364858153262645691456780340952769580553452329822932168390592948557045947869140518293114509578760235971920805735352176680337908013972774743539175969394616627886923599602272967239370633317291956117879948672360382419236543410157581574754655371705325472288182851994620140104007137109250944207513590295026071871909057507032876588717696069180956871272010736589205514455922539913331462045627399810907353242700457219542179432171540166817215563594789132988606941619467839761243447288760258446640975270592770096071799001594743150833495056917316052342305673340974642676468248537592767388950168527957853860146004076177535260916191436753575476018898903503484225914751681979799372475292946176408193725250952100737386305482877597629961694970760397681216858322169314935715568006340985527774422556674896427954866039801018848289760162779359624357360644248238535036443338538226451449762654526441951505847826135748555955730174946654660049662421521918570675169747848161202857749938908386362494553280579056448231113596468080477556775741142388564902616354619643089764939738406991081278928277719713859347207187904266857271094508075724924057625267695714391639120230651380876310833629470975859196388126328002082888887662972029650373417228706898656824391888788246370941084096133704095611848092351713882547206612082985601918889763338452688645083198725137484584296449118552621481919324662985443785593802728897778086877439767935210469356851274623722865706085397602529802296198593776165702610120272850161519714332067409185255245956552377315049526323352002525795632550245393562231910055217618643594934170825697649488091230875016039192830975320469787907187298839455914492439526847377452826634782817664009714068868921149653809746161821194854388711354304285674988234756400216118322181564985455680278673319029812118139087709843930599545341803068965812609494919276346106266082686356262670807389148365763378449081066906442035580783856043078964159429632908141855303188303588446381341577150577316237143063092570402212524983090639575350874994323368902230893247805589124313758649973239181730974551125472335595929270649213402484829292530020756981963428581084060196528668634343744022707852039568591791695458304507416547553110440004909562262282009908906547816321313155643856899058370073035510653173406779360887903474047448551896439335196061200991729041087904102725431029566990525169506092011271168878902489956499560125838821669223916791131802072132364605064021776548918985689520371173205877789993136690954417704297217009178113243018464719958848521848947372587553115749286771212138806153120976393182421175830039240127805848127931142290015561691123345333175195421583174313377846093271401564893223166126247459653820082702137979401220257576093969753183992825400510609267952684507768131626718982756567252694882769062439144054505609459608970550795052580654233012404636363351745204398712253261795784334319271506804996796460447701773350779263724957411227270693239165545845995798382822628593114950200999472580250190104895545047105736803948413740257241006491895844466469147340109069352499120198617838769093203658079308063512637100468997134270658753395784931416915435556760443126663614806740461546620969762632000459179153372531676230124375361465874583355017755972888269840695339695583703395050519406768188139372113376197818141834377487042063279237953521124846487457794805464671083851652697975210383420852337058439102618917282649079438180763418340990541029249239186433749474711914109286546262470740560211721577512781960059048032393346601174667138749022346437199793256916749658868987515007951743665669078136219426455760589515737103688560264110839109473045196876661240047327366976770617178723350032718524860772336851094201900619347559420965223690327799939917641905321414545196189962427910737695591353395569985741791989531254666914066659406975845308911486653778324410922773960524000225362431296818302183420429780327144336574789975611729937120259362864224991629537058350869741810719591547552615110028307371421694704682726047554462240681162256285562958653096912434440687956552850417763248025960124969692214781369712901926698443136099640579217793868789952467487156558402042027722247150691907950973280335602096047579525967335803633996438292660645981390375251431311564285118144725132199740949788516781187398611647317297329767056554651307224383130548114602013893064740529451245043868002649179304652613420360262623536986704734459060455405080693988581135024465339774484529223698611815261038375583705880843848595345682885191006576003478600237323392290819992147617284192336082988628891863147361152532518223913435539815107229635093817085257530783138713327322862182209470361604139141299958161837399284574020842047054472368352391843443149708547379951073330195316642926186346225915417265428538081131467187850189146815419822219165990271258329946471405419222872237371852139053447106004471294410272052232342007994490469286351199110493505210060964828057152331907132082805653764730977043046980412781585112262912834553864197371147664883757412012348225324845060944560458709510145949170085380077076755724966238477004941647426497283754835376943723110675237655910127906900399902707717173328703949289697281470265285477208472703696767406423205592177861905552760762776674757210442424733708108636941798383681021220935583175126940753854859829317714259794789359157949235294855136581943355519871032047743032802911452813439667362478516015474972956515478830469237466048844848759618263143935821140215849790753441650139229467975935869748489478111157971701848344681045655203246047064249436223513355763158060598904828381517925416846667585973618350625279549963320151562675386830535836111813487150908868311470030476661391709138450339640099401971601186512992485059790955517213330021882765640884523930332243392772391110721929321173753812283245729099105354585076617711332339831384438332020010740475942089916719751170300179727076690802913381168262999892797028862702089570704895180910724598358519255744426285589675348487427816179688813423502043516013001020161459278557250940073242348816656768966196158318859994489601241455902315070329706952648014086827886123147215215168559019224944418321990999558362064966252590121587906530279917254285232443881264270190035644763919992530444525132544018066009653341465475951102341952178318985793046359184200982833607516997208869182857332629640225403676707955765744093816797639203462999537342661508358890004451447441161164455890082304604255714512428677330501120945824489911564094820338206679323199107509350690697818358964750650987273789859994063416387541048130454846806587176964501287478654228262681404143634182187676254997322367893640576186417691059837519104215253002491385639226986318403713343742658248995340887561666837538424601603428826925011861267842995860936962055035531883306553980130545819263862622072152306835929967213460744311507932825550359630544476403423665789360017058464814749762957238662214016022183527384444508311897784275485970522240755187424626574141135274583580341471661239449993335363752438162030205201180465244765030154352973300039139871692905529399400538958415677196729546507023302944529349793490006837982375755142048073670678859577196089096808951742856620692727178330235022971502467120419631484916289690838247747324973234729512636057037492223129879975059094214901000397896409864177180708377050503124421947356053298955055124048484428160025141375542987751418622260991447834523997567112713073390536770057244256494429335430990389198465413046233681442668802203898763837375936466706460624357491978094012455187515833735735557258956364228219904011330424258757330872781974710339005709862445208387480362621270722631896378030282487865657635230092280660817342574578481587207593068006343372966995823573177453401688779514423162029130842846399618340139968421439875539038029142212216174009209748919243683224740491876234076073572184998857135411728067743073193779031846039224334191656489016947231917762133580055553335526592828412063419517191964904160924991527205089651483506867152403427592050285511333796549255215325437507657576782671123145987557507926040491820707417873558018218532886110804978683253550919899689796481164218866700107507200095543208484467954963513215921116261814250748523407115286628768970990462523810417582113013283623300607502547104781018255912618929755890676849986698515513356721059880259218252181905056623126213649618763790537376708414912761711412642622567384106390024725719096803802046500182462819845951436006803671662320850692575823011242544564756733235811739081534890697185030603751457122449868044531271000388708256230718692684751038508974998445917622947862294157756999397262179066721767168866125965111877554457264327964780646971711952211733114998089180979983051084407297760693213033282743550464992927361729650535986511117727757845223758092387584034095894236280369557266273920003970099845593737652092510512236838646495265919524526339450090607880745120456737299704487054687972903667537620569531286299653330066555111849803378010625332098573198917481137859516301170567187415285633752132799037177891667042818866281207601522437722758975247925804138239583924623371751661301654086883530974004250444196372598884932491878230807116090588097725582530732746674797903238136848785700298584274857164584147177692403671375463921309457208344111892057559289419827211254020807279385268016569437099934027505135488551537633796588004193686469902046994864769646732519541387377023470021671911710511182892292397366690374654091513335360237398319965071329269602040900819135858574243502451753266752278587613814534203842622986197835057258860802601500465037217756599795003290827579747836802217282839983805511594413520815679982264737750780414830245752859510270019335134638321855679988014694807766607047190859738545292237644488060591575472935058708360666693184209288766821283240622486599326769110750361267286548806645959424504858635148428771060330690183841454197213960678881738140838116504934324822887527471788659861655306887867542645550099505114971958566480004213177701293342821753023430362156209537710709271003633978456145077535546832318920138117242650818366039507781331158852174936155278785940901870513419245675011179054842528002063592198916371206080230895973180804336925202605351794230310729819482807187139055592984556259906141926414005040924070490068264305517747792832037092010157138334192423523014999461491590663089332132214675026186418456514266905771338147303087853959636366854067912751959071925683954283008952502278617012575199015810511833868611392419455228135008908889393364946906944310239689603856623488542153491597696446205389840314526510427960554738930565196191658361231325903694044297058460534034633353248446684759291338232527137542993411549912019743176061376836222526749312960693610875023855288123772542025882525838639819805064756908399122492936966279658931743685609083345224205593741051643642569288340996674436123859876436888592432178483922249067764324809692784967566210235849096528074190254360244381658220416280742432681105916707993231065502074688966926677679634365467034371578801423957917918278861291391887043600304537061887865220485714135770104635132661817266216955499490479757056450858042939624961018316189368718984450148509920882108036433998799526766971368676061095597105512802499862012973835223091203584705316918434159353569324053423378018360447375600720277727272557114713842423393026048832668983083044555577298999214709266992724962223728359131090396988821954821755095896251047094537533665292931993586766404978543443120262731557633202281112101260080215700756174504795616593335294802853058788355687992460929753568541007920424872746384537733551858589891668880092726874865616548246723196831864267503823845373371377718945469122425066175114393309785901103472750036721511330782744084119758232518971390663019698717076982401582200866518411107917555112429805097285615184145638398469527581626379770709737098142910308035782445887607248607131004246562770086843467223963548128984626678794033602463576573723093952887411496112385934082962475623045960822172271673819582627465198816118174994522599861021003487194877133904436273163231125392442714182902823250265356666415596172356901559953225262970980894167357970877662707852281269521420665966885485922039632041595897578673687426874129189590096552497212170977876944616363675060833255272001742021490956673657790435104555860541776681291700255418663306048739930864291344705075492739337285617126841169091499514013793666169905745192875982816945404501534660386627763058718232067872051102429953518524978493438683156396080327974615858772534582523981106708935345134625131447031696756527671898180369690139150337001855904268406606160985983513422267652075835576670104425679687804349690231354332615411936236748680985701052152848003925088527988791085070980750089995580986963614855092143492337175947427911655620346545401864074774558491136103106193668163460642096863043506508728899402262825930062870384875316816533161500964762312089137319539857230609288259524934547285877957359429681844305052316427347836503157532312937791833691251922938217495375754688621473689538457588610804232051068262116969809251085810389250764265229804284483076035565487325327749054468077102796893099749551936200625157703077267449467811434888581164864460681632448504171417380768959906379829178875735697440243577811627016907523953748385477500386322213838927385147581167197676968239868160514748839993708027546540729222406024484430114785194515071094749765722617122218660144727374016140834300248478112605960691411938918956940819242466920494732579868805917398193146353350004510246860440959837628626581264293028108392768602226828525349511431795037688868832559116577933630434768867791692387024617652993789285006783302562707703235240374648718846246533657056754196258214004132147975668515922836597112672960843145028863057871875381626715471335663912049938699457820050683693795106309459326407624234664769952964205090001559617409601106493477177900005898760862723338725065921252692055606980821123899962347699756565520311509615552230127420049495227327632171555653973974476655924944514471928389505555435547554744328272381651571476726495899446416006752086231503226553756332038184089603992662354183214926534794918406457734132793106076702145709479099949188749770672749551865267540678235598898786662777915077409769970383080552051003718998016402901849101339489719968571421282382741567040816832590524609544046048617227693412407028074364263964258543560334544794693442963404408268172480652607772088041389924705913787140451845140630356383556882531794439205905805684013596817920619041736989097612661923203031934144816892648830587203238728184482677924849601533511336028167425989875407011925683997580127282658929009962384835204728626037478622463474313279879847058732273573873054375473678055030562845397263807877128220511254219767082439040086857757291499038533749476693923499676921576134355643143246567930997278330618396070569603177803015888798221502341168353159495961258520935734957946369502501987744600204015934885129709197527903121507389226444198019906895523029411699349343257846655681807161109447734793553344752923243578174286592917994183270779375141242585034428705823553406359344671892992322622841799643410754656502279596802107884428898612013345473961250623998540809435468552245520369404441366458593777917367905107662364458504599301746604222954198381837646154288642131440382313474793607028230970060207808307492512690096020326505926142021544752016456933083128016245411990315125628296596678014728826074983920556095773698824456277949791269700507463070126846174707039607569043540000397517605599034375809010941231284855960963467234871355173408379235087870635352012133376081394968525552490045862329766898112016187369639738946326117622039828119872223833696916407322839647529199757842730371072641890531055092247548246149126870402063184310644735361054878892480613143616527159949503558678755335686065100937800739825890241452421541220913730686267454749559859044242531613801634207200217366241503765389634367657280602853622452163870837823438203615143976624191019661070237574267273787099770558118378102201148521789881676449414350946306790625443132617130613016169472897885084360559500414570935968338685819683189537691781271112222721369887355289071386490066440820625263228320508960067855417696172433747618616197965363034614221242744031958446688690370066896197422671166013174994373925886226100987468200026920183574024589755254748075353470382829881735919336442405120739699926631074045367936325919657102824593928888053260390765208619031040234179382079388503337110585578387633780604391407042539143434625346135466662831813112318974610828613909035111759086277634073221853440195100788276285609464862078081659297378857757216194469535309837713587273400755682329082254360120764229799341593530367680195456939060784516101777045307962468223025655772831473466624808561392349737777133578795665496673019318333899412849539403570146976159067878580021819995977516656589798482924003996232621335480866193221942338572881083869693892665593516808243179735391447758016629341685878361400805502181030558735759527644970398442067077437204495144191820656383417619028191764148535920934117759639045226682051689959650209937138376020462488109263253488056066014189275837030328873102790359780983158405754384787483497768001966778350720100906586082578319924331602486169752893536800289613289415785219260197966217304154887253023298166878587967244602975948472082646629945502591626153431393551174361164224461135706404112409318900411067336555298510680382960880395858401603056586176002637667600981929984835709282997925508818458867667759296834131078614522425576635510936051758064654807173997948131698847062234899666069572297787570617449960423761339742253857662665431744323647340603440156684215003145842067714458350877913195636966111663665092020710017904417007812589222725098987161583374640870123191970505095910731667139358699302285638375302477088962658443922065174202959377440010729139984392741028830528485078362185705842737809283564915955601053400990548563669215962616668024492379625642372742953708890673307352865347233036164413633843968949958320776680852813817019790191982466823969133599728119800533305162980292059881006836500549998420798058356182979885597925876670417323201209980432829691797639543028842576138778357221258067490493965452350873538599265718560682470121438583685889509925399534221436527888071160388673413773289751739176217156046003363986174990399422559043720720118771807733416384567319401113419161335264026629999040973395989788683341813065750079900006158830481166044838488738673068691415597825981085646675963408925170268095348604803343854338407429253506959892958578024822559973699023492543903664504255127127068295139575455829984169295722731659712598348665272375561928083246118839922235937662663441374568503616039618821539138558895709994480401141092952527029679416677881090695871347388507878529011563071377594780676384819618260144182613740580953852338890765931329176231885621416452847169342724497489293525927463214793679762031627202017073403818916171428851965286075023327965221720080834965432298798623726725245312424787835579401381370886165390087859655993204493873617931688237774351589921642276174918379188547876887185848388398454633725616098834065655931646091432325880946983462068006039484711568940903182312543935644553549189843098743345831755197942501308057397018562548229693243146290645604283653301557946400129793955224587195984060514522189636519480739513141684717727706650577279507578334109828724196037534888964176800545988011891540820444251279442612532429941194995112775731377270264295726581599380178269866367615789563599331226297202134120900703468605721086895483617433789096357254945221688197911613787955790221814074935964661826102587713681687960482523690214869025115865624852145645823937267033471155603260764687277427136815248013672325350509289402085265542242696159103301153269163445822912815584728355813390311066981251059963326075466392292885039772519744491469879674514509473002329795411310070973308209788360914014897504611001148568967397393567568165274970486636902831632615142217278854477972533804127606962890955908968388531872700009289507994687340447673010420986845262098936236712947956391245073898934299494057046756025675808440314384349899884625507886985017945325267899229431937627295516247496674711180468548975466871286777996553037730144969617995767134495472306434992471285749293345660790508987836016876975350973992914210675062173301695302793717091742646739339282490983665768903724268743858332045918314892827676387013033268619638309047250520933216539334829510190586597733923143037448788931464538750513259006229749718850162776701745782117618772231044770842375707160241589586965252711256595891331361426684251627043603087920171665439517262757575976707581011704893421149491181986934972856710622277464502558349171051604925124525477670977613492468847458113609390058587696146942327519415108789960369489609577308561490546892534779592421265230870946546494397042586350080375538964917708651164209170762608025666466815697991498617835042353799059376181861632773442461481549942837217944752522381447376290101089806049196482982476819144050397539980882859780396483563079377753298687394282411084766749281319542906790791890568415969764946409207474154027335302833458400774440853096586797449026030851737742092014345456695525167239123543334917797514104161484142001846620169202738183369772978516531682880289723996121389600075383831894030225811005532134060879019976785983515986786536538654141174095511915084709627953364893433734303124025789220543610626771392631403082432604004421425119906060986574062694434774416269975882252673560927053769241416106852895967776492349730559752471304151881405727566984870988111083043076767148737470216922295479310695246694815840319120775255155444293307512184397567584387525239591187316244469965658191700985549099890780590477200239597020548335689481728556556401625382497984186427147375749426794433152384372222047774618426115170801852598480561247255647378166289146671063746461522295290217645169670457425956644870400874399999457955048635939600787144143167948723597556365224829437907161859079706306294105692221610545704846533975498998882986860540833243403976658937859801068364722600501401492850477496571363422388704200414325642175450965614688231058514754271879741260246206179870169092842234493849437715018922826875404801917208999656410360561751405271583077582297579853762251455731388287347548279943580917664545054223552353908757734979646493274893109457259819648075592433730124708177329536684010638177978797456481093221697205565822112132582022293149680870471860671771787181632712762395864768942313377281795077811250074252336237695744251788282188444530020677705875188128293294061134032417683989185932283723976627681000628606181868795405040751323435360908947802390007704441963898130350683430997460968081781770017090982850732315536934723339233080690114656983943854793688646636732259436464314079112339772878668067405445602621468754407931695823560675662621105450994301297121401481236083154433202030821089462623856817486563074491839908085714847716456906753258145052281831633951997506152091766371358629216631167901195230595638931442709251803634516215870118639757922784172053897210623483772126549617569405467701346806271985124253360663650519990267201532374942534372748981480373633855733545665207539061127752448802534902951376197843703828793408140436900726949700040294827720433545033975653379725391335432111411824631931064905538084538664794093551922350699605901369537587227264196801145981743895792822843316531305039342084733409208522158509690424063948606115010709115931367474675205594414291190779407474008380112975256497834733490952220774595562875050752184877305200014118391305024280339802205768009122369790903502231396070733861211501282117469564046811117190400232204987599412991758662604126633799635275455123898663767863754523670790689903958815066045807827915685433328402814205432384287267541742411077405865033727791580364711270409834918370329783272711908391145603179363880436839953860858329021489499714248009690935687272008442828556939332978124424182971570599505705255313142381729844526846505012534999701935705979007077350526936242589202615707730509289700443144090645619559849162486350110954721586114495879593475097096701186941317662078497636125996012461027716136162638183569838934940550514355181968371021734034394381593486832137941880855705860856874013973696951885005102550186764217402209175654569138801967066213184879348844726043878911923242302020850344820364767686461106330659076331973855426665528116429433687321915938581789275517649151817447974664593921295157445938918503610679158077201977849486693703198852165861805381585488957898455955588036716032833773975858924568030177917420669839623852258610724387596552486613023573747563513495932644701360816499832337214668920126713343461715511799187652050766070127996962372987320339352302594511336987151863586149854497233669794220038295166082303479558999136143634417058084632920612976764170285776958580600341922812901549487632199878092541888685192544405629123121517350029749862051820821587916998332397085088212747251668461135169707746447253487784859610051779429309297409986614969417350922170996362157181288470831284884265061360186565744863961116782771659545394977658402875205039261467155860718093435176871477358140622678990981779205577110153612848356911942394213746353005767465049822229759848755004958924163437116473781233109030701292171600399254872334035341699317641997457186786114848259311071148152552455019832533698253103250320847159686381028148070450538035480671962091441444865052665025559785266380693139616976543574206880163328269152832135747320844638131582790727044322320553433704878126326598677577692228080657101890494427389352836780681577477756652817835063998199798168650074164817790231348659795184491608720727383631266809734397314670098824412863318534139917749851288450473846096063750603120308205778418644186408019805700724971559137787430304093977064331565773887912918945732856877814098302788390253883339867317423745107719940768777537437381506121894234314872074259403781656654563870080337864266323874070730225072788535747718331481727529938522847812895380602430719424388847100409001888700412228693375623631427852230233042456703186327170749431586104513368946072946348363574976898175060489694090082914168259515485647735973769229649642572842892047700509919860801005513340253835863658263497010889169916564637852936116594629391922132586984947194346660436180214689530968154788548469013327767288914199026489361358444267740378245793286190536871054900098091047303112133798717504836402023383346012550881305974982744061408622759501213412045125414543687702819384485715200385607226598442627282805296142770024357183133133791426294097202507153007793677590019699689446039343486326500797663296880729136628294074590783672429400263059638083155089118297255509060469651768372866363471935058894502619672775512737754498027816867081521206000390539857691750791878311564026172865850719396170901960162655285667359531981525940325743100047744825433248339425211705395872598901791591966028954733902271703712381859263611793948944651879685041528021546383225806087876965412237391952149706105105571772265681176324758767404919595829052312600350631936811820580338988697523486166969746333854100765897232441180316718240193111603261934624719395758522928927488878393000261482561073483891799740008305142779571145831479506392767262499707590531185629104793298049586869415473995939951206099740643956262890365803378866415992205587276593822878888631903389523251809648169536107356846883231668049016904158643292505820014110345727731868057844536479428152043919683690576117225171716716829804512328138453857204008847497161167112577421830141411269990634207244812102072351623554499572730475921473604613433483312337899827778309292316619958624448321701241360163779087549732504654580504623997260698841031552900305050163478233657758939155369741233590933534908455982405345556256432290034547394955801877036300595947763716854622024293534902889114140199144583525065725203014489209816325332994564080082123457977963139097539092037791444142968755373004092799748133543612054212621848045099093941863727769200727139604553372610435602218322734949636481968582440711179611087249885596367919427626536413109330210396248711830884834094311465107675989084136280980554229440048622227104025858727073432868219507978770882832339628027256834995504948879407900702746719989517656212488839102606024989258030145740185370246980861390320778525820545937369879113988932888611813911968463560079544575539760107589162772442063645313173286847670993534118794055478024565662803541827404227251171390574151295596793577410219484844832944609367196665309892032539575419021201234557826997749212828971895620768876204723571657280591266042063146428206955909602037992652273245708282451545838775757823598521388511160068187309681836274431598950329654487374154928946828315643197374327619801734632204155118046093012137817120151495266494876367278060481930320059010714395662128334744770236315184659211972069398804758769159590598291407463434770178334845973553513694420849762293680871003038705825501650294245061061804504184615055409874292364685430282864788939654216090127308823394208368634265114470166200858575440593740550906089454515439543236864983447077037016617368236528391966051405451146056972147746781551051582180811325023493591001776266393487944988231258918237107189323897471369791583367438974265189943747064249207516795892500044945006370854801644952852014474286609104665510086461472220600499873721426443133196744289208626173054289689977409317908729782173718658831491715222989954023072212669926357418946208911125653921950010993509137168768769033528994046833246502866848847271423684905091551707752860549375536546377451328963054926907265062233532001864580474298061659733801078014961515696574514401004434915466349384712852068050970867744771888950097145558470666849323629676233843734789178077703963965464579137159757286479583415454981640784953653040858741944126993958990552858023798176686576121604162401114400730162792045510579873728024584846759653847510501299065176893304509632363437510859711023511660813362347277464175817347170295362870425427901750501037830898969762183131107659559618350461342018729125949833277751887816659673923918176741661704079918215739527601607756062076859917636885213493829773172678825681914091107638913119975228629235273582016609744620939073876873874607892152333264353927043394382330708962788533655093932242405020632672260362047959152547641438393162185555104721646433924527370190926939231743353239758371893606607720866431064357918696849794651097917066675713042376788243898020589515337913415524240616465459930062327287432235613291260922381510984471077463379169607730223589374819114274261153194527900414284636760870318249668762258900533877326933495528001329252608246206734666656742982396504121441430976244498756432669935921660768337929907530425640592411254229483536642002814986394896793005117520238798332557611429718962388220724221714825259018806142675831410387504907356991239244600318099009244520789106259705664206311546804294273957063231950833107443860463318159017052584183984019213541548888182172789800271771599612919040285695835467571656717700334318120250989282966944269634599088958692013888165154720997708148239489434866143001806266043186305494675125584841502191581022383300761374452570214735601087727017236656340715720422565187518248023205021706366211102556255958801710871769639993336287465902665770427532609322457059466482521305851186457766258332926933553377553545189721226171080414822876333623040384487505572393246020935991335420022080883345881250416960017953136017094386090173957438076878999373985781034914475982995867432805628820868481367612929287630206005723466609892365742498469778679061079917151684409386515359229403871011146559014861332869136507816903235885952639803450787408737175696995915206012872273643860090695338229319097473566995339962540092244126686631147781165030388085127314172743408615130504585263437115099591512065456177917326170766884868256207441405617980926641771531594349900516629762206298262572573435612818769710387436916313762222835161755756799420389473514871773476633480324915120358010548714376533875473584154713150652317844926811010690459195964625952414490971616539724209238638990042353646520528117638859769266977007717034195376774139001873133751938533699489433170042678237205386645028198075307855498126748398774499172957230772873373395604149103103022978462501628958255721830491182915574684176455363597765924047794280729550494806052956663128638282426389539122895693876031909408146370992976435452952020738696302775002669612763385590749177369828473827408268235703784152774707277559768740111915740738452805413876101157872641497903287218938575535704981151098254675804095017253828129802393069411412773743687042121700476747264710400363865245710971734022778936180614940518286783316713348898884869344478156240769764499983522753674953582661444144001143651052866937141799422854239781409777336714820525854279714198516735532988715984409617511944536441423901332034932831400072477315732163837765276069683940382103493018858030262273172899026749167963875640250320275804813078990854354948221645769924725983205933139083734937275451652016842494899671401442431643351098795652347380186785057485932210765104195560027584604982608854116447188078757567684570318795724684685822515721126607664965809547256329687636872155678612823666562368825008808878336311292717818001368881060266679367792886754922674796938616463444625054392386498397610593226648060921547616355321698536433211446903020554887486738321295278738118658853256858165197220733373330142556308355129326682348092406446330248528876024779650055336265531405395059772523151866169302499610603944131067282182869293231050104770160942492786772411663372473475929512316681570768154011325188218938441465342585500365436644283020599619610224016260823511727806916410646281334049345472014499596028031711857398849487524796455173307009550021273570100912555026444831700760536273590953440520805543257256373814254888040726559904310994799651204272854685362585016536145632299543653966627590780809075729617443647971048695758408978806191148183251911431360385972022310346255341936969595183712017320211530261344623919222886920585390875511509715373391850319984605802264157174524226020342936938347585290839689265758279137707277862795537800806004115994644937765364271070429181995926052933752634176926198408252979965026598695862904954961613380632734552969635415664980963325905710635050327681453053570639265143869642597173218071492526477964434657097787522405899277288671377638063287066286297714579355727741169488137366309589666335750440543504613363364224717645744172490820999034150224234147738290479022920671717334579860452561397481838261391636164632929021138211230301345710816750953841902688398359250447892107574255406056204216898169425591400099310580927609605714478341267134806021770047892813579216497306532367493733815484216059351539838968628972966219953836515893483436445957899165043383496059385580351963337280838226978971773523626049506924333133339547707318406927298551696767687586075688613821962214379161792698776551221094461510334412029190897552136472572674558869378587506998870451551520142064322121656975738327038795417660368747529443013084790618352266876162589476611167850914793504982017785105366566988269713287449139377587359266170266463139463190392422814275568867992266653987212925682309892961786433236158577322234495240663456416268002589960916319132194812514909550055830051639018472512781300888806347625758273047464679431295841653938759997886579819901860335061651812791283368612712287735065991079989650182020057781138317348448629687020164393760032326884245391241269948375752269803017883049678047586724862937714395149556078589148206631405081671996034802137021196508838058120934969391809333986007098322036513374802703496861348269618220226004614263827956585940226844703724768661481328426237291165194352395026105295809794614807165081447031958928160504042824415755774063997852116733406359432096280430754147080789948733133722555668794158335213664010207754757026221838967520032884929516665976996475783297382498155429359411475797155736897702589284352603775549655303506653290612337053097783440700701525508773479550058974444065373286958077988494541755716799681042834190238906115897172597879814424833167327751275608429725112193242644417530250230354483065945799453462003601240505315964626730835574442185642257515920250349212272222644306716798300439535290264330221526565468746297251657610640913919648313545596617668625012500724545051339113713466831609697660030314631829809399947579592541521327554385541399021615660129758351576066248248572875335560038853115940494753942988475938551469190021742132838862344430457167014023815623490308251813585099845875263218006997954729358933430173271680480895592149704570606227552107802237607697158813343567550326689819196514086843378478787938186316745712004777450806730233516232400534874092626907664780906497810610364209935717898596380629222223822550912745725471225502868826476651417478930935990084534763082066321790228423145598557772362325052912316066209328147684068982380285237224091934746124718111927446273750999696522095498131182579962188066596173989082619822647463761583327090173883294856528239687636400070276865121753368792532781609744791022011201240016238758300628507824014462381770197812325509144601609679779852747696456306823031328946607377213280229569563341869778440043365904070960914796610193214048377163762675643952922625591211456970822895879237662513743375164616651579548891462679619846001781759625629624479829488947033528406234742670408700245224540959937828979470985066111683425023337814331667318454056510201183104300704690647007450018507468677947290503560676069707289220062820885951734675587125117893331525853433411021753082225024651914545956985454205526661236078831565967416353851535982992558797820540324031666086073551760391304578736923276130914472294057699414179700837538404118231244012477959618609545716275427636671378128770796215382493740355695905527289382278637260103660944129563466840823799859850451530947084832539630490360282966039591378536149402398716984573335337641870230683830990757479170989692430231292267397541970490014837750409665486893507642750737979888139370254314101167427641983179680046763736845575224094276684128597447086433481757730444656396883666061908656053583228000213416071647234213684805157389465042218537154766857178617716851907046431788750713367480259339078868701433918685514199953725415835697130153894231107195411728831784478602193726450066182520336815227169498888276564541604902797930262190190057978205469760563584056392224242882353660372870078300862988237313814815017585839626010829595736410752457437799351384642837759517682944598712901170161124075566855076776623395978079359898036680608951882147262762548259397465360715942234952189292715092305755337885882329384231391001099892964442809456258819474934879658392622877835995519932272248282441500738823942973193151256510397575590587483852409221990231074599508906692403170396936554950798019649569152881461906603509444231797491680491773477453651094964325478500212806350927933449663594124336124406945681976637030108722481562512138008613524394286198369312192940535185720439888030810771195303413270292579810470087629988125622201990793814978049228068611904199373095552322940972807739568237764839114352362357935769449414631868180740757992002818208730051016431629821773185115553416654590382210211523841920272230327755863153562891365662213868626700287680068391832075090590077151588215149673450461252327740570878506580427376805475431482943598851061513283003725108385004489390573878703188415424655817425536620835559432818809702947683184406856486409620065963993326380782203390422860203786612969046553928509444911704337707165157421702312800233859723511553686153076345888990238502126720388353742335861152766431145020072324659874931957018771200790440864567743874635128002674145557797635724579517291999957591358562545822166907699295777594424047108516342961167676833564998659518061202455329549086075815305097018676690484392736769622463097513224086586188212685484908195344299171553625398059058507877419529107055008276089714732357433276676441025380788684426294485757255985138763650194834504815726384147642093927936568292357761676972342371231158067191078890949847035947913175737796383360086971736338774860520780477884919321146922275549422208824547833269967287276899847035879950070020556504899758130767445325974965107553482158597803128145239098071008287133270232490728618312366770573478092605120946729217335030470591685871411852446127980653380891758483355135587986948308227705552880880974983766434486540947561733358376255432680753108248497963208906069631993760207948806216505826364328203914039323864452737221449055167595573651359246334542969444254869500553674814652403794410666783902827692104586805207387717880353627860497028087035138987855711463518116025256632706142138567613524841125436531533017307835689232171076201843047301790465728306794740699736635666810856536741805764205518074189264625993992461240406228070636734543860612191719169578847523937438424109713294228432150326244492742899799655983761235243579007827901096873615579206971233020715978634613101779185961149755160313192267733329164995929381309478908040169290048670217639963423184359335581064573301644324675868952406594406705218100668526455543445124740215197150507253867137524530529795677294639179974062088826599148763483073830245789967767225370741707505878186171831609686595542732446709568739701021490684670008780549541935787602621075632810668681915004371938572405784199756037995148502821024512857233550927756971139045386845370702457406832848538941310486025598742228758389497194407312175385756046638333536311196346022464193041771879552446739923947580633307475203277996248597709366368024196003002750818721000947979144978508072209673145238840088406770633510514177389393471074931524538718049526097456017293979616819879810544202914407783026569462565448667431826211518442511247444445872322562605179869547536561118235776996766133835708568354650620187688536807712245326295247475887371956477195368866681971088841558809104994381940748928540200463549960898419801024176065545257023917369223670849393830516580795861044184257595468898295754077200403054473596775326169955455268217460503406609379094036749155109896861425844146281750518890922320464929842583782174399192914219430131310176749599324366119942497742316048008745426996082326110112493381870761920823603247883431853605692463778449133799215240889490903508709546670387470488954322541188224706806457653336659397579433675670314952645251234649551935662698759412587471112824148264808954349130651145773482219719555415383266639869368499482751626338548742366550173823771488867495365739823744789058417628422114153992836981657682217827662990758248329790095441164395976888787021518028526367045457698670244659070773108342357944683337358514776450003327145917094066524809470701575311010621689477663110755788115318836363054255085864788875790397719980778971749676756998697441870050754592577859023521148120177955793696844461232585015078108557550219867833015497099089308561721317631812674368352114115455057046064453950501127692496255795319039883209366955099667564413925113324326954920055298871880172887470147994911896839483431790011474349951671004685475996225427478716315935136409033219872114283313966883438199251538691291282040951522866634352807287631861996700980901171517479330658987399411224830304574769575383540886458516388741363894997969335253559017457165504253675069477459646858864182658951064028825402804025250195354992484374508352327718913616786634896233355803254207877018548090092160054702094851736913110383723311627225375389096110037660599998699798048182135917442869007700452651565760119724552083942425437368896571187670150885200153887447904451286826791902332714505499312531422646749402608168594202806904049657280616662841954095132457378167428789491256620935601057778389377442626538851314073800982999359693712522312369578479983708567850354453664861709983565935057695053764877323169770872214462781185644444613682671779221713543064724384533695543473888722854332692396357462966129236721344191989686603588202916857014811620138986199357232685942636511364218471054851925412471497742495834425615014939481021290960203263459946813044560307262198848225603001388146353693368832006028435434556293979615430708718956042171608425606460417672880613921935804756565344433031390180410043310494704278175999451861433214167785469933007208376977886706162101750669430407218624743868349845646161411931241957091593612983269325077082540688358161389851222421340920515972832475577486709711393631449032444632555413456187917928939262936078770781885226791353103559803850062724188093136783479194450038589744248097758202591851755630922889229654902266346238219824020164173863333851430042920601077181722437583938388440739593312270674970212224279197295756760157370664350129108687572735559054135167227419296750698739125931621438445627037204211114721776675904121043312538903167941597632498179363680335451284809016711646861041502047459949865075147490546090321817222464342783997881208519446698819832138345746064624689817599651501516352268999695073235573463399094624959571272373770164022520414125483952069503407875174275893109924890154891715153591208165431781099866844167916469572107374398515216106265477746249661336801625764657840678992066767937357138136128522299682589593045662797975419284261678441029351350794654927542384804700370279681661487761524057921715090359623542605690897828359378814165967515283311883704847975200968386422730773027649218294029689142819453062567640247175667042193806852100747033271653828235256195860979439082524786123211362993474054837980403356647980642006132507033685443962229182951361924120497126730789129062368834479785712552332002837040316260642447996128081648562658402444753691099532095149627083836630462014135705605135952686964184080665824557038719334194937419219603763529069454754888231229636119414529653914059377413464385413629509133484939813656503452229416028163351303453587090422526069004554201075327939467781169658793836636680881159982467937527634270517084572576937992590454208112329887635772005584759749945223131703662572663013466925620936602666769226656842580683313741165661801364152882529203538929750792556206578761646661564252242756960565528237449509846486280704370662769864089332867644429898735928051719085695566276240516090264343679305301381869030734433774969187134571276673256770315338160141502842283449822155605620378876812314318207585932331681090457249054554137735162816881044139299098040894677837134516839822857690645117052427817214090422089236573245435132143348162197536552279308167552707074872130768536529211894266365091522407227264949630446039432992734192500116551676794694716369794392254365347254587579374930747697578486260055379168848277319178460297655357999097094004066766384731214493126544746756915535079534821919629426542765752515464310035719353277806498125555687147265704048055838386463604118536427383705701375048484260135578379340708406367220439339037118041840825630746584937084597525994304378912250265644249946188695358682590725970221964721153842139684181220876385188522302929619703320824936058845323249866103695172775530581987232380641435546148329047772823509549171288133919828532259023550146167373379416642237178543039144228511720534480180475377193682485974225643426505473854056897977898979507699028974579553070840650680806091040924339546991714360436403924848666332516248936794809547859069279122126071032824110859958179914649015078438182436638110278360545135987991127614892257108425143294195266745065647640225641155658332267037948510856978388834846090271286234398406924531063379796967326014018316187721484571276080220676462327783952228627117999783506384341426479296487500845828532231303279853511083047638727018996854786881834970739044930009131076789034307855295516773492305886272245189634920969507349388195541205085774531343214739959227244171741059919612483528650092339121563422208179938790521868037465592347949547896570675384200184878802034368284528853088410922878652791603975704266455528667419648577299579089391536144842587840728523855922814679920035891625873252734441488190065618443308322241943778884455431698072226715967117927226415057648626746383647024023915982923099362322149932093945750538418266067510022339349270120616377128428165803794590147883616777512620842070941015455939151620240755636872025976102804529532153890450233925529446814469472140305005084172424622701813410637722766928773994538507421974143984732452779605681545224794459631175835003292555979326262649670265453196523840185011656600196738942336334007997558550133665264924184796615489418326206884063462996039807011692601961194369978138166724438111294779124397989500675712968893724066045206952367568778295712835154289010985359431771614533422698476672223111997254340395106297945477527416240300337666348718723198031159710005694844833832866820567452487394538499100811812891251931184755045166603377577626630332153741550439034090281396938631283785867135044988463811317201424483125760376684752255796739164877676798411981110326506317221993194193104489384821797273195079162246068010380564350491957977956104356796473958865332129827720469605026195810787592230210037113043513207397036971868891273629829308016550609727640300948072041142285627130139802721444161191390293146705327104056559878201981680463868094844012289761523821890415460064513960638842345433294692194886164743222011197200993342343874637874536761119105431071764614775524222617527737467371723765293489664876275119307150044455286228050625340406410329966889042463112982709798219993911101453474440493475649703023343711523185968824559580960890995510103048894623623185654875668422617134842964627578836117024293336273650800616024853075027247307425884955239998461378036338814776535462533490205932898833018332456987354435273982831413682067247703235502694158035816276446977994774516499139901415095305398248164294979338424759648872821374310009837928109832308751055263215042574930059699104251814393798354834311749290055233458258323009721201212758089065300631859547200277587356928917544151132003093468116561084789275262931936932877549815419923166112902008844185307552297695053618948946427109474457934594734208173358879387295645730935920423499223405284817551410900271734985962660664263066760103698238501411508355993654857118427826422111421350370731024330653555698595418544001711341021995154329654860817887697366218104631731086309124402776095788239264516156139301263679630079225670883054198875398786267503265098905158367192393048816488557833192809216397341276389254050506477733485056647645251711412111416964108694034948102731634114419614842586218315704139597018216146098734536749501726500117781433122577285597336304278357713541592574869354885907406974076091629965403130409679717515623663961258108459262333707069996227885272497586646562747560991706307782062050398827333095688166181503819768036153682927197468922629657468995286716251260674729933311377444761146541033543619442059156350590363999934793594610545015488824617768023837892262237036666707951191335206842843317564078159063004417896339820265982453425603266239701808698812363758099972156669028385103307555391868185708639973380096323597645540933528782355562899856101505120809129799666417644190133326493763849654782846072440211809055232625946372827331174421243396833663199635888606192534227239051397438690681172795004297551753764737848660700751921614678293885805129577093227468796222188055046642114943506670874428270745750623133756873368086216333974142707392236177181002877462255442975833883000073978634759443951786331190016547576068636707835510399402056560952355881238183656053115699411555154755459782734273629722522322197099552071882709276353380221553993234714173812193653789654722029920728763999765887905842338920900560333879787553305259812860032839270131753607364443230893606263185251427425405402746682380329054097103497427969008781759025968749702095085066414564201697252693485756640281395186642276738831396767076025992899958343979203668553065504092377285058125362791611321876281289071154543562405548117098546014294935070988487233354207595848263468807188952018970453967566555186120805424456128649919549096597520060671279928194333021547526526742854529127035245611946800748719267512022466612757926130188675988006485473721353982029013657266481888128369300975369596604122393633819874777499788929954701372104335415313600770260206082096807930036421983732411945979500215088058299881205700807551136596187143216560591859666595741164923072916145132169483918926748090858380087207775888426406008669631609303453382968556160055000789369642615620367865622001204767000339269167241841979991284690761229090108087932987297894374782102976404177171108241374713067031208358506067265868921698505932428330337077528391630203104497946143390967521704495325470586145131394531871353504712927139651321424084832798803362944400354653200949105497558484619824401354133779842639307100697905415479904390238519541339284369272059703610413791306210050512778520054694530027951549153891866058134764675451730800892408986490898477557859143042451663223625709054532109559211941554632652724531405979113152054322245861759101386474177034273951727789955644900402571442148668264070519675328361508982180412106415669165695834785575604553771555880133254581538816913330707611492721559931908475549717167021070733309416699859650770527567481070959798098008507206936541439688951887426585915447600595775244064828794445158061485115452621993314126043242273087223457310909114586083191926633200581086932953063524560609006043535759388297251232698829510976526380561091466893816707657178003377688812385158983481717228900359810334633243013450889248212131611137649841364557918421846998409788571224809404278497568629982592096972790421058247071879923168419747688253887105596126320239782868341989341898112315993609958560766182072636854334886117103128076525855953470393976673125989164217341592744342383155264382584116870168785028157805542456598178428925780174366924133399954714514940641672280003009738464460416315200153211392837092510425087178284492152233754106503241686107945850221544094362693352224516558783787719980201128218545995972716671425136027710484738015975887516415295621476351598261720070372945241707504928852204820346320890477275643804311229491233671570582241997013368811241695981864739950234224484996702966011993809700090067039342592212577381558739715074494892287848357488229859448372375990450334176916871966324135589171688001537569787905915067066091358610240484341693462757875092115482773312812753156843707011064824444594137981745373453325285215311271860481098877909493861635175209860083588712207626643452298536763151601392299241257874189595827233717612199478957321927578698514178057100723653739665320794777958558797678820122235035403331444823715776190731717637003187074207650755250640192672399988794967728508036927072005434111661632203019871281154664140081867490763844474672581816792947345816164985967906889016997423880972824563817756819842227730193632367735556043330851154809356175894755805943842043069971097440232147928181998799037688673820660965046429714010929755363025658774437171181121148717557582384165790624278430055929469037068020844317237624405731122622170897501311223806451533822890358393327986833152185893264760310274569889100658149401619184187318476930096305277231276931469060362144247976559577481990946494561896478657654460284795107649230349394820557135124385083716616491892037098817641356730752714434437707261541501738113936177683749438614655688093971206150463620576035819697844323685927908003671446689314191661315375265219750820981233639760088145129522754628936505897027221704085611755887630146976584016417673951519806550862046311610287935593822468513631435691686133836228072969911099375713407454326313146542152359140403044372641190035909587683914485283572320112150825264137571895738974268313893514549896171068294525917103279964263613250357793906989012333461904457041518216283473127458925452619626240079485011991566761560056952707797010031879573995634899997280507090620567552833203633830353745284043009395546632101109179691464350753334527077160412998105858426019599475425502224324100401703893903301487436504471631254911900028160190946337691694273178189942686659467823201196491443188795219763950758669920217976414248923101734094582136481321418059177644519017750985721271645533653497620716249278541986579061095926389475168445328360799908144561937551344477712702408277429892782404621081992453443748997891579094726717883137144167745380952383109213884078103364149274821478832813470392178964806056743312655352903751452208534922408528534038961972733059564903366466930720906852164954939688478959329830423399347789624073596446200754567149715253622065878579046146054306450707782338722525416589335631189194600913335677897921668955033605596180865893404630054667383024394306249165072531599605842825753201856639596154511558725219010829961854860785114844716697998969952699163426430828541381126474581800382079026851024514097453415385877674765275294383612503936991052971026239190648828002859091676835447744032919426380946087783535200615930899006158321810063614356965780596801353731395111003514634093939385835205110221077086004959620452262435696139605394314109368974631281928546814401316625911237403783232871318966541204898413600728356832297596689716266251894569306012864275303469884116314367266217445765347989180620873466795433617809145867486940821473858186191244264446691489150576520360033879526439960107790734130327985785074796143228794029651000991692381496116481302935147755613075087985827715363808607814677740798281600173150572275748525011100635883761032577533702492283735395835805681631242819341408046983524122419002357117991099313673580924982941293078995138357072868273681294418651423831852585395718503912310162608576587853267074935465142150992026005249535834191671513374200221508296402181232073066980211257213141124083105000236909146166738513961063243475949777696241063365569036286401278789955466786042857975253996003982433273649012108392192708070693848978775388336740626567288121396584389965790267260009697682738679796902335498205084579851770842007450731316296824880960921041328393559362881012867480178704747431134055482965624520225441649425143280291045750353294677294170540032639269149508048002868498682063993887112174441119499653262541858235134494724716093629194188297705270864780637533951570949303136575584974340622963012309337720544331628770838714009284879714087034873363747817124956848372806503638079940810589024350509434359887258551513911986501037239775968524329425787645422033017442723446745771086153257901846826720647146606398605784726051904055134336443309695835093217718301395139346283717014621603296880258751651265750764956774897789284437283788128796555160138663703373033240653186171875436949326910440600685755967903722897511662095418779492677368596583753206924286468112339758715566318240600252194555310186687406326435198729157711067519003173740076856550754537748613606019795477806718366173631800106389896120176366765981176399139630404838529397796680301537211440729322330342308160944141550989520252991711397185573695458311968886634800378584659072477513214664479590716496420712269366126989795848591367040387008548528169999266694463026747434863280034785051479312204570729751423421057688199702210290919732660712567716793772514995294590015747646716998650834330549420829544787899089478527216109439059437706305472078678314469720158417964181860268367800212792910308711428293259356517378002636430850178967012140926555156477758259377649273210580913384509901827577583342637222678842637805060723537050347642291993576052058004737143723963266889256200775970193690745097910400754917888994690532178369799952627796489960654872238043548367848592217475980354202340860004044173886488235151569710204412305802766304674754051697705332332833701364936270380943442143410363705235813468602198118319832310912444144094495940040990615456312904688378054655760882941175400357205491518953588730585875338180414100745281231823724887440753195785882616446633515213713965359741309946497199801907486167321638586020729983476506538793454461753815085379391206478940427945943957591819632539394430400242177963273460254481984148082803626741729285242709652239601577095436048526586675142700887511549295917232795844722396708140650557432831915181128336453381016395831224255200181590634428975035289585328409278749724164501786253974366593732388147128459357054392786898692509224836979342831156788202374970407638963284425160679128049939296452097309470349300408733441434218481637529751126483430215046072993880007964058664617298463380455872006229737622945754885784752907688018133954085173967347112018063246721854920238473186121815426152303676091573157827845432854083807028431975056412812614192160313508173204604645993285306779653206971466682139474593845206518582207000761261517410107638099527949851967973088983516787447828742490807009299126845071466716195335258700621603421360914805526258867454548261560425675070322817668458429608546906229361206425754819671754872597604427111757245392067315392420605739836966652869434375360255534399018077200646929977320417108265263553743954561896306293480652147436651787502615834638891821627617295591163446402340378575515344405318512639434395708021306888023695565384645085879742843901542221990475781104563766833809970944986313885056913578317509843694306779752558535922694589604145971703346680098007589432154011836835423110323945366274534846419205550781550633584101461435337677105811725771644781207134720408626616472542579448927971665113693163141181766759838041894378732922862913747850316535727796427661156606894317157604739795009069147907972189135120791293217256298530855817752221218428080043805199892552724678454921038274595469550958371413416393977522295517696238349706387782843320340762869871670356018560027303223850722201707769212936830128225650193477601646335519925394386404630839864914365159187365626583037841867686408025951691758645370008047431847828792151153579803576139701190599026659258872278567316776188863170672678796793239027872234105015166943295971088064273213069888528618470927993899990818382257796683011651558824724471501987446984413704790864504179690566020811511624363451236548806745132490532863056832299772723871772673274294952710256550476149771334569480158088989354813197553096630951975198828624226004460735905776454354799382991089680782163413828981099825967564951036045766445541916408660756359535898211122245498940887443542372347024955922299842093372838179308933223292317576516596835580779899198264743732152392653870456606017489402683354424237384533922821568463801053045431610748188516818803612509494262018287216551632748821432960030204357598994117288903660480484574786327455160358899643851441418122784535161983638979894566533033273617194463504973607635304882446050522146428409081127347808860056919106557524689376666087455229771929115129676741420177478543289233270282283548504297867041315269014427912779330105946530464253135707872266679651293541541913522683368037661250078256982060041333595664363260912000757355759290723352621906642021387845988929020026051158746626652939315200993321065695153746168983107652190909740825689048273334172775932483543977924415054608162171295366189168590129853666047571545929859712063051748759850444951614118063342147379754105945804957477779964953487018717159574571207797114419207417189577803000365502802269919237838495563305247903717746091364623807951338504372239399149861549440228858720343473548715258343215402601418379598984794747380332741809149165568618107125912682757534935693413716714582943829344261901104699466710644293382274523515795072692223184865546402077177867312324768207928834138643646663147216827549353094543160405555154748184582982964000342232217831279070826152888417737917750349478171285352110447176697463241453359142782675422242030597330801513285791846194771684022383441929513498527704231620214219917928339884262289270123464664491313287015777830214933386805776083743175222683220272016502486416756732672174010137844451132726077627324466052907232631326543304420027485656655076239761434802213931715196586040466628979017117301338424864933622393636071038551114531884487549901918410931450966658551745688531894595040317320821848195638471179671994108505549764743971339841231078627571046483545838747577488465004128654929319287231609314716774366100760947752057142101551271346616425431964338752256728502894953520146430236117404165262186314211553971847898075790347957215208996759382653184701186607187091114349056852255623869060387181143716299760824130332002526860376009713528184710180945078713868646087067335702999657548884355446035850176105817257559019196410684389975851291354449616610999949591891667564515532112017408157269547703633018885883076205417146269297492007647346962791710446300975184532895122912228974223092251381276836429422397341122979146523262852694452246951737065097102254987275850238284721018221028731645347813110249972814353737593683922803854801479330970218378412910287313911137351845983743994204288407618502120625484684509564910584489237473497060625881865047178009603150170382375655229176458253402233471972299293469651971860243633151859917033579789715304131396002021312795959097664122310592266626727469623404216887590016567229953543396250001669363890155087423851779648302882888691726111654537786218708187607996082420833362356992991630078519905647555596631137861193688050346998285639580083088061818373247752756929067268486323906243335461754754450462858957130981685385101528291463752151037193758615274791276665747717083884769986073882555209069082763863846390295785585253962637134945262108132738387556547503977660579874385460949518865885429297144773369116041341250310205370130081538254078129759422867103712885876880493492277376793392509824448370663023909767029349570208471477192253851760844097647422336547500621824494879895407023986988986370750841734585211661528031960209837266715500941087511018186325283518837761263375827381324642445118772714045151907983296270480591283325002579229047593857248899590823563777023259586138619111224632141359907216442997925902985037266452424085890545064930846159285827475881449640762394653782932418628384574186395511747989579874839881708457280592942639945037996187016439101643524947200606189248325503791385959209028043212199784302119917394288387310929911938705219887144598337215833319304400975246051740339529066972999037191333752984841951660478200958177064550789332515725694433852280650300483070602886635312685856807111582882193276045136086660924655796317404311550074972400593213640230529254771055633291755616994404526569672405525072956028319776390112684272647670909406151774455724354428300052857329749021147754399621784897895033206722002216995485903337696158659346990685763453816701662991016949451956732315659974293002081062383041828280849360245572656005492113421602395123315462322062871794282883194726220053646891596548692068920280924376095331856250406446331693198903667469257559972448345337462266039155927080648236987134830102506162826979988373894528622320828135386073493241860683945019550914167488250315554377186707129609256316963468418900673426177420085813412117779266122189241793785397804019104086927389273829719556509680786990693202856180844721160555962648412023293877349688558713189073424809762430571123751448647577642925212856636587239752804216276572344097039243535778041402696903321485906379953989482331002516573693216873554880615437327413883044388136789624499968564744516670617472610576474374790561779371733239833396625743935457970286315538864485196356084630884249990903734014818436151663620274583813944900517176377424350380210649745040255120334763498790945222568193587461583180464217472131806905971251045037671780352432808334761564496832820786054826736339724804737216948523187478164429519689090616356178125641855658758608225036016918317413439452119975886881498835579404945171783187438040783811823665391358494709709539544202625314051732118736953705120353669940297061308334974500904831521062104183277268014099164617482358998155676360532495205778417946541354054060035959930870930531208453055690761813469683425568479636258861298438427522365262964231073045882277718897103326120268137925655946662152038539516753545528580487360109444238920615812801994624622882137096187937457573895959314869700909060812591466962977370934567053209270198287684025855916308742042472631166989023969143734867145729804977828502608673175735327780800218737314597945784834282397579633390434703663113986057649568942614093116994695409472797019295781586633078401358503147404303447200066987595317612699085878277149567887436610434909897157020289444398141661340826996767092125576905914883658532449863356828147717468054233722385131875070986602612376297430309912570111123689138441274880041601347865717852342454724540782116079064646663884622583919501420158242571357127405012511101505005146292498423171182724319363736453844791361788289009736625798914415425991675153786840397123081702605193063226366541849598296740194380515636110047640228872622479203796543752011429166558576980627510676521518442017225758190420614873506048824407930458352294084895591882025159707898673444117350060689350634483220878446447719104739476194134841010971920627064051869894306436771628891407080833255035006461749557778552908144313134254284142427916223084810429503911652195758826889334569474846761259443568074527444778700663200213440687146281020771735591893592466556870792408993004464525286367255991444186290371176682119644237829180961425905724671386443131850606771752147499635917263218328919239320300011504045649757276166384606034940012095726090433964271831930542960815184499733876535034901959889297928416569122721696556733975913881062456998215499036069886256032472829389971856642631857381925448925980729021499934106642122585811090838776670281848954798515200564267553427156613707860352007017668464978111644269286441753533446581644533245312521297043159017732770082606637612840544705386672124177157637244304950335707317651628543596618887246964664994871987378660199642278264628926368032325397390816432561000139460515609509304491506425844877524706744082455666726315792846487305933256321154089043063648816215816475719052065770814324168859340318781812736798909679532424524759281160911424971298131561917819873003590971699369975860351693437317733280587256247724498047921150645716552834217576433952826847226250652739144936829656046007573346452468089243042345458835791976846315635577283172999618654482339254725432894042290872204592188109884801715592511777676739701381563187436122769879361151834509748319800548924173539683627126212186398524251403242493747457051126586348352363417945076992384505795683066021578591677703880447398874080069287037616917930296788565232694840206300201036936485442720201720166356592532450969513397822567302180548881129004854971289130349209912655892171160916366512723512341859632580291770690508433340947510865368967930669763121990043813859219332546379218538785691653142226191396586634967338221208323274184533211118832103126320486666423161637163758128402835456167196834138736253944971140869804745002150401944622682497337106747149900485163036878871612550901058019013934120486582926187946695537708156894013538396280670793799157488711132821635351269006868707263578261921890795524404517340830688308419455901681703676178269491553262724994500686113098718949839602728290797641377798061544786011834407576141522274179232579028110769499173901567533289964077249339806697457011550534209543604395579930899481429569588671003631831717259748641250917960784810633468432567797260754823393034233725714643120276033113273551729903158922032718620490027876652707499015649629685258860629273074127819678686600851701159550124428044324343389589685118150325967816713943192844481433022988897158165565847781370109995900627125175396032763700009742454018489856298968182769956505896853636660060465146182598945967853459622169758149242322382031821872130271231394547027721536933030240233044127074262267647650150064399000328409330828312457384344469250072494780235671207740797293222456018723490433795863905230481480114555631974526531449610496545037441008371758296407266958996803950098201079986649114785935514821786706566937087273697382147394210012124852426171959411986692969317846251108656599168308765708999165342010654438771446787714729690496848211398608171846357994303719002451364685199402801983589680782516670497404967602381287312099561723928805762626031444044500940255513516875826575273935416501367660988549723197200957664354680735663888355656506831473552017707629494667202912969477885091222607211382926813271099982123141544532510516425257763674260218243739740124899816002267085362490086593971167770274615031329709705633759132636239143800943516958551257379194393434035902889941959740904527450348045262147830163468133750572557575104097341769751170363161752735229807965415032775685570561432227066134265921492352730406273682234063696953267559883830998158461782881687511870808517575091706597511058122495918000061851494205586939756496600522642518146603185097636188587713446238730791568252017998111959550531687941025181624426255854304171223723651791409233317120111270609508572275841310767510389136857720040857146035416363160932119530782211751865503209454622606452629888774259382172486420305338404597206969194313452301908544358109181737646589605029201332607933331873270197781605021933899628515247338187196891439148637348179424953086664344238582004194288412164074161898587213679848383825645325632088368362843363397943079907714597365731189460633082188591083423205800284105098486413073670723871808368229678466006223494802939012178428076004618617747737253980751360569496629948528468081363862326577130577941596901155433553000229166883311309962703426971698184910699145548055263113632577875328526308026999803879636759502737631846292582500769251496606604942463663992604136601085470745913675160980612554111965610462800520798433426384457661809825169344900944306742559115926619245677082879499224697024354715624655095435114662356792931186395844015629586435630945352868905902778175791846241295530392863140494769312726776991744047971431887650921640786112955085278874822436130269420466199798010443867583964878691510405197058908043917279567365191587283608478018800657405116041708763691998895838319559570324414870208531425800866993128551388007404347421812310801881795556213494726489497139987413903774863114916207979808566375847918753262543851286382004298643589246524286886182661259407059535553677497733754416998088312382463223182559229395512112817271026753975507233479196769252977503396893517674111508557959543247127341230176122736783709674878682942370877303969272702861606551296857070699182615819329752202716724970673381563360441707542828754971109989739707515016099338812833756710806988614524721362873154890968141675586396840114177566287953937654863237264715897461849734357527840334935935298113492953559328371606438440514297821170498417313765500026355444717193659103061860257032678677473300051440016993047626860473241031350778583578880024205438988022237615501201165951176100264229166451086806805490616245350927376487672474809431647962992424483797801489660978539151374670567830190106327512139280433824892390743761583265428521732576780920887908186031839672612875654883059009074012703910951099318275475390423837679486178390939555971877006865432168367057703234168215750829444790354408232172104021736665736424501123615822329816190189036638626174627882087022330251050348305755532056144223061548392195691712158041982739565070122485151017199536163910834447333115504654479185537160177396878844647940757908917206442037807499344815344346308912863901125477785330391347706500059128533618054668779260143364107148207543141918178201595796133190773256193751611271237769549992974128070505826585009595327373388516534397743654387978113579904798775998551365891095460956550876043681166706731591629210084963635248820946570024658213731044748766360048421621547810856294487862536087640482623328468982122611648537507326076650301510086827111662839729779311055916160687372766428513227636193827504412436799320474097402389672785105093026618109975889623125375734865490589369195579326437369809631362148527169677509247648691688230979559769275635819698516118799611216827301189106306044477449270260544758493535098242696009511501791959676459187188786293128153422763169145089747101289233249900122783012817453776844508524253361383210510756936773968580405259216376967531855066152983672684421077894321570200833959009648363941099766997990287927812899306931875699614579107038207789643793629921908905829774095011440607267490372503710682258023499933877875737889128420538700189934987854539395531823486160676223176579414715023169083701531800445541901893456825489557755505018989923888198363621359806807613603160533519606464364008694232414021326279734429793782301012491104243281134004040799273038594595253369785229607173655065937066448232205455809867603670650221141266995083725041571812713142345444436989309775257885615954934642162988061662311135380497509343974251975415077551111871089466822040690003055544065295357159890855073987722568168857685874124516476616368379483609069958166027848079705588992183994940727238712686777022624392718590156265008071311367627378482770700758119905367822578378483170463688069920453240028357568842368065032003233566025815500249579741994592974468998632057734527758070269823391313727300730476009891198754370635436305271775712440497641749363364775640605364817530937793517477530571755260657693723439578103875341967314092186137142315060987888171872872752755501684279998033194349203130253353358588280197211889231026682645869443534072197426808028101958132510316401813083490910106918254840238985174440492363178660607772075077116217829814962848167544290695987194423394062853302458205200518857501755922479304481041532111831020305981062942157198906124734666636705918033678443293409048252362847421540790131507382150007557207653254967222715761703638315733658883380994981167896260273387762128771114501592153093937043345339351616023747916571700684364343655856408955323939366334078335990937906369601743457505056883826181781351848020899944756995112361042397343122301448821665554307726159461647922562184949818140808384136916100319954107161439190671988839909117958987245999525410142345284656999068760886565493954503388606904395090727320363312148023841817319954663584457824844780328844410818602564633805686489130648517098380276320849181203621672413400279531596588328297454316704884708353738933303742115831977483527222159447554367343228323078211953295828953042082094933157424615633852677944613162233394012053398380674062042893724129187852250290997854951103076723583942438554971974919657774894497520872610615909744556326831310610502432810903992627862624658985445481603637050697296834914383451707610436858202349021074052560961831777960486704813311716275931757478294378285379676195894907687755155253375862389029153036810678192144443833741747139266140618048599090939542973442530339257073760547763516197911870562026444973702162095074989411888029863576142574821674972560117587990059480594825284405553596126384457000798736857280221747729119202420979047284140831830429983912888557455392049775130717228693584430789565173163525120315011748119911176051447457314107650382159741427170638802073503035130084355650882253561011318605075265901606630928983048194568968265618425198804688783573475787037392575062077216576532935865315049791547730490341189855415371110565073543182607517395200659772521769965844990043693339466911316666397380602101435679651279956279459042650709114753780383378174692297371477419328201387404659816382416010116286277290195319458032246457509558934002767782995981497426408771451195016788981512612569988065324840534918816267092392748741825756695456791685272966479634813173002344823816218614124942112286651154061987396246055985287165680482487061277360312620736671045551063838244770591586974288007127288262163029165565680282475692111481824758394338164254130211261104792171592959744669982092600085413388073402285567781053547831228226487938263905309199923461848229258570141835592213345651178812509247704710697733026752263844842858410437047274917721700199884495237543664718831948393618434580203962447652880267473293516390788065759987136969452340673554942262268817539593733481917193139560270960154458065884200315117172464231689548913786983931868481613292066890746712716392389155398410758770193198556676890751709977386660234950901050192674487575487235958524930623192486142619364399402336701320871922584220309654984832106035703685289983313368593248707842336166683526996709333062966856789817043290947969132819143003081323242633074817864676511505866850916908993403007129232552334878013502128641525169806407560206392178388747161093140276081763891861800250269432342180315519072540361108523363113209640023810610560603708378026517652827627662312889968303345347143839530057854967398100989361104667753199695235177767610689724737917347087799013618969255656984157645752758834724104402440774483064335891272984814015032255912962628699174836489129265142987998072687887076443998537651545774353712085400218090498606973782049149323360835055261817022884247650557910835914140923329274126730966360844605141981067956665386603132642508842050755600130171084548486141940394800864181030472297150523823102564201647610753034113412836941394402657645324071335810659976017678820481931239595249136521946441454820698874500279486856343382791512662194995070020663182482622302289042112512046939820635754592713842450241573831503839315840887313614947622490498916189672929366670655901666049490111349960149343518334606473458470013813562576094942801866421666674072068415471539001732837180107526765984603191662790925044129894548205444232747013100217832997521326053274184987079134618675867037098914737560923415610225577548362044531669208988564845723974474697463877185806005910806666744254439334229264887292768491880265112294783069861129529624918957833623513809809859357963090187510139024304144614381783940721344543140289644815866595605017777792408785252531594415021738954466710851225150518845129754786460964823306223439180154040758817340513466473377065421844171436338450701721333729527884424852225062326722053494269651818620232763368834810417880496175384557865144597103764813173207480107569154909918016624432378552948958520940466896847357778373931367346251485580758169730292697640543379178910629813613818676798313995537406491430702198631993691989761813909715573364138606795559839781652666612070900768002073699455819780360204031620955743400964535476159100713007316815303654278546479377495204285144204423972171887279120944963295119690326624154588535289956517725119354339044829364955286635458317160239160598851223327725269098960495821408107594477827532684677278931956098924534151386340244642786535846912284974044906046103703637400120519268462701316828510267671058005614565544802453921084004354127227764905324285773217995729967406682755051099581076189391218631739779710765764185350975195394723889104178934360103177934144281324550735923566661616954627381552382970818322033912039899624441028541914001263111860465566915596181918204798554924098535390247657624139428175352329574142186552908603578387575100822685791002429412825467558927945318645079026660361861974194650983983747434541229895931428441108466862901970149620405805992937466060910294837534382209330271143060591376207569564262435990167560679591257663430869728567498812922387981362812184518496871447385687063320891784747616016934341457558520952514518103819043485674886166830119500823967296292454487567223539809700708642806665425504929940411568956977599838082601123888243423365633860772967892975046577719405267749782740585002048591790908910342427517191634068497301579322524389860523219872434406109357625611771282227787072225233258762374921158072159764737758390689498870213338365848661968469354574113613492229651482333998760694538384452359932043185823603556084930320068227068024342019006011445406840087791084625907904820848068553190957089066243177638553132146972990256730177159332148627465593868099723850130232272556531274482113069109253095286426871671544188012107797121472390327060786742624987213123346930390012849285345821467789277025159021621896378123082682111631947541397419459792589803975011744869774312338931978606814784044067295509841387607735389757999624672360281293853547098387862816100191036969519844279045159459701340965309503338224884253372997842721244628849389410896109475614815433810932409895745567935256286897483338795760199200054684891726571137722254566347202545264940770048110340781758820446916053484294800649139135598355915331583281513449994215413835041211765415373618101810924083828726445688593831847675148287978180690572025843596411206853210248871145327377807013541447234036400269658158575683869690575319856654942741793325470391127121562281587124915200308193133411438549538611425492675025899581018018175045096303261997225937884346945681556757367097612194392147885860914692521649776672448838188165196019968352412299582145255306578407565725893718055133673585987921457450235216538744156613091050358117824239026154046854908730876284606904853393299645376824789429065017706336654812820409959321011980672680472204415931010979172847680229743737652936410142113542677438481276642874827496186936278691699724046299959236768139212260046104491652154919947089606350943127486706044346601411802334947365975363771365224865708406392204003223162718458492880140748042131425698223172125830857005138134466045022493687420679479624505088828283540832968236572605928018118608184344516347113749019140349194622445977999408602325642314819395490521743945434700240242911218901595330404335793700601269392506512250918883665050444865218929669625459760563704885820123097225432331629881557777905697564286108369329623330740443675324135872718594779897439970152607513105446807139654671351537449037078954593551777433890437403775395714685900000135293122088531338387769637673895816856132340195370447153935093909779268304061299019963217358343706695835588369902107221307469385913513821275564607071010090340380200081211728812986997747920226867927749640177459725990260480199394248343372093622609338979980575310845368537721259188205764348942635817274957494815898362385430265934025272638517118880057688164765632447208224766481221561490639575697116909824529972050041114660912605351452853119971027298835918374344701460947246405695345996986613522819971786884770314676319450314368362653517906709791519797183109920626885740560006674760573483056078239665051316806360533185734574416680565560813101219207363148513925057820858706911910624456581222484674686142976875787750508052866193538416370112149485085244562399150196957240802597087200953246415317651831340738150859662272637875115855122926330908018023962304775092492824894649409111278072375650284207826612135958566317699642403185061617461737240159605518920011491995117437971067269824117178519609407177525860172208297356767619280635785833022824818573159717397419662775962445269266007447877927583499694666563649584138938037849167738372316181979614423546803233885285101088442054820732716369760865261422826229648111791343770479654928512517163682170193712421400993744855349056613928788207615337063433475859500855994737364689724802314980501617110551615599598392853704849226326916544958973381373244982249905391738524103001047113917011003519587252914010604941224746192492263254740073936712674377719020861424240104468703775027467166904475630135456609907175959930697564263559588781932471052141865622459993044777681567854380039921937045142963116271813065889062918903737283868504797980817018169711313323233594226315232664188588233733581556989907632933200517046984002934001923084537211579528920068939365687591899019239899078593967226281239421876180034584592150954616271061156067060085376389563862673613487549462678525166762615255648267408102750919176165624767566493668706970113124575601840534496878635525900789136405293850231847620893072554122845380052614737574416923450114497092485169389228999320937264768057168612115523001254893809113133715319264527920828945816034317342383601873086087638957844859657140413795185661961563485592260842470602058287473753614430874977953574247589503903084729057292137684403272325138618587441254029003812582731685697444345003375549741650116222405509628813421790335337307508288419756094794742179114998092495019932606348565597554049443707068266532737517665595369375269242780507093945321340522470816832364236318388832364276593536951421061790515820894261637318689192546517912125307471063323844751808968042976621201162609193296702066244574712882799026728903608127304219197019200216096631470651661603654327933078283136778268534592028777806042364671108945089233401548020033934406219277815609669008676041025987261012081580905331253409289970246785868279825384855446391692294370197704558065880362200096589457540469848292965099911947795032544447435400889831536404202271897415942837027199128022138954846164595701410039350536971552020792063590364452873156650336188102991484460277056170367976945133656758561517405492714285043766223354828942368135074779090230703416217230859332181570504360483186866409108909384462463758947185885559314162582613675949811295782938792046534388025714180207440589836878624818358637475909420028239824867554018227595749705886270605122182713715390306334679838523679345271309596805328054416433946082514659552161760733447994695046999031236186893183620434480803257423612552213130409113608509783719489859423732525792070098472567931193063346959833838968089203308946953611605109104119824334901805622778495833438078916523187393401219239295228529572977173571569759508484317748992307146874954353995871036560749139349398140396629412066429395651377214085337682566234074600627486591307577017706648565919738483464777240434990640329806221548009200650926769956852043167187520690755029805756242063003544376327568149266780154938741519108944692466299489984715755063180015032998366285644921305926604028766074492235610870732101680690866243189268324937732264344609419778201797649500445959660367400218383770091047048195281622496918683471684484038676924992796717959204319101495756127715517843962968771617013164270701980542335531132570870920243885857240532165138939553213386419278866412589740708530749896347436031383331192551687838907801111547325069779080514219980355341943283550767523615936718554669516614179395740013630185140702890515847817988035487526804861922058643371497968979981952625941920386203354924802234360727604199590475072030288121995547954389504378380587848634065520051181708138081231882074707067252612628863850462238895345207297843978186825437254752269516516412835299159286500180391544696964142556916765082197258371479271144407414592952855474979581887039703125709004422560329621065271636299946441301772368228778351396960137306961029532046846663821287108284073772192549036346016402949797773006498260847467905603925212153078320419257122347876556233614023786496867334254309753948036113350478351996552452766124399028225616934429169766129208730088098600815926152856765821902713828776707362869543681449423909175146204876263620681226606319609427742668621878478062178412799373157004144888974482295055964884413964259605768579819923885895969696643799054035114819493378137763830174967742255822528842925784323325172066824462872857353587219038229710307085985488057572619442248834651317273998702250071647470194447083116952228444251911816800324801975833805521974430507866093793133310576488994892757595603654731740653863325578351552927302097268928637752502748662977901271976349143091934830005925287169881648900231524106786077178432202828863130123070085698140044735345618366753647937035641918422886661276019799022208262882994304610331414916294158487456687356663457226195432003885156660796791470703270543033360964883267387055436893513062155797081551248995081609120830774133835525901177965834038779523714628704870322774052457006231058511691236518695549844315639383526538619893879536052648451341414075458238029904920359394171711651000069682971130275817627642464393448357394958400501665078016590435498436724960372770327658236246593941182368911949032788086150494457724538031025289146420895700563130925347537471318164960988633475394183128399946091708055489969106024112316365926083158222553788360994479100631441883784506961232624291294792344544438769870700424723152527285347023654465180021025177998514608857828082661186337887203736661917273359633742914181379725412923986032865431694923961059116584438192014755362919322026941537549583884117981032061453219763127831340496201065669457069477473069971423932052547122405266864054854238520768644497291009298731407546185890632336144581406929047479865921146427934077371521576667270490014519482442819962752419552895416505958171361641311250584322003470664855165614881744438827839965168163077539043536229906823655049696313099661703240097636277170025757799738844406606908631653337918314505241940561525442966261416047243137822221196916995023301023408340230363332996661328387627127786675048803738134979978997498422155080527020185474392506080736889478590702221266067200213553519117717043423531912012494779109505700393439508879053592841536584508403675068849861572590881760922184957557536652338159272133530308721893862257924417561801466277636325020049027359971523426743648722230688975597177480319446707946808613046552051431721962867132777014175907059921917027484437693155910942507697147077914234114478715913005864089136424362902657979099915905246615768856334093551742825509262963403641638464949294223309788503579625543802486944473507722329361835982443671686123762287476327965146435565070576113516616834717945401767907082946335474122657895046818838251692241571212706231432295125457139131099254465800443360523774320366490690747167491059631403711268456813809013610203608565072779973540038137691780626260995735898655658011677188921128598262852787466167651725977946646312486207877363568351675756798271272447506310202453701916450374066929901716101422032644737721566863224996493661503922273363715478688478667388546053091312014403937924385831208900846906179055087368232183916625243879635969230125732483716620451323954186627451924480789705848747950019747495074601190466935311863371147747639947197007338030169125594559549734605962110585521633272815448793740868316544449061790998785638725755784425138611094407933438892801434971022698400546941156393729140611813546511586197810256292973154328670297447592481860600526789072646164612474748168752545136751623686615792866468790599598559760403963753274224496822937665186876893300316062557529785383323211611502739526608003162955224281314260936047795018564391568853696742870461938104499274344301748324416945923583350807256483774260138250970151239253924288700239563977051298274747814304157106535026382277731805838070768690513031921681185059732781434034459460568253281908082773220864305122095897058938202911824303562902496494877079136935281102615008500479340251013079512698267037702150907031944657890027260387936432026648869526402737316185958066289829484613252810245773894530543634944694913234730828193454794186590280629028314827134188712443247063833926709052012344878580275150690193496799191991037278898344296418501694239922554321425038519270951688860664869585937968963756226928977637679427873327777957422396379119966401508541112700643308137169540361087991093514834454302239672384688415224666928797989847626840835239771412143561532650454656169797634950504904318082075716939235039989754991883763215049918804028720573841867876686196213534086119234917303048795499312253472948415747569474011213435241854859595365635825988307533813739367346620386964858282333644923783443878768299268544568144651436125856648063501731661197788444091605439517521555321328379296984827779184634439740676079093090879728242882501825912759856698750959005001355711568696851576701267379538907208527840211007342633092339657111474687020245606994091222286125670098995759054803378458861519767407188532461750342647688206337017836547810818912363602294753487164124096406055513192175409605371300485709926908632483502762872727088272482596190422243316385512398468358893699796242704863795557809962099653666873497713381294355322880898355536641805532285376607565724926175015197442333170227697069610552278201224331360801622851065372203228823229990991057299731132226051420842548734904576131060844871558581408004576815270568139230495241877530233816251867959967923691252591601298696803359221020721172225126272423364342807376930384993628304539571524512980911330961215658929461914401622119844103188879009412567195323208889013495507578761345760732240753351156226069556078368257858542909542403939721664130760445068519549371546262217331185590646386622842877564601571446733069948845356493164282621115805392069405030523654571301338493428425252357880840865423641488680848586122774448677325554004186959107136458196346399955126118169894890249799129923429710820858962270818674419016029281715052747219356198328209533283900861117769725146404747468876927975735256382934633091805648837268933113169416693848306878363847048196443047143271313310859248595542145304679797307264184208489951221683273928660128294682163326919547813701677602493061113383443991384121736536001705210105084522858138860683780944833449090782408239869712136666170833677231363545981338385751022375089382144319448397244466193590351824665336379851904461540530126797550941387854265340055703896033636217052571018410961454949895321888801639830383914309368626168650051924383309127973015154043184596778327235835939161000319159152259979411505587625807484736008262580699862009458699407150426268950146440694847366855950571455411254133949827985642746656614833762923894405033437798706663029218009764578327536700857644038096096839151483704916210587526293430771591703955232932812509364389596576901448548584660693179296202256573018825213607410725574968824659234625928009617278236443545635487650744344796208497940243044193375410796319259389550910504042056786834282037539101231925900910056867864921775693112309653968897794691057436442863790073674202783659039061558657227960707729310180260402778638881907368559866163747536066698431845191967417332276764293852827390794130974682081303648995217175463441465464850893036266291553234939394469383185828690967615454338304111015373677332699786429271252996513301643633391095037828285712346596248565575481961710872189185448952178830268967808381511195691101284532881868545154612278308465211782006181600071859341971678704768473827123147785903965258783356284970535227384667658510610760285598070580098177657557830230468296587438130632002197583910862028752816544226243959804479017136625206306126117018027600665090588740115781124353132154490156679356459658508765433443669268030107266749067358937055453052379606374800755133766335968375747094536725481698973082564792143676021945060021231289617787909607660067239512505644745830228939758072195955877732658164881502472371167921733986040707866984227366489390689641268664050143540537440271550388774587417901755764441113824850536671699936034148963022699352237388169888562722613174725288450874604693733597147423553954932435582159841685414328314989438313634860743516075891283135597077663912359188871903819294925445496778632166791585767109816811479319481577444339610687926937151141751892826421546301296183894573001451398309729280645371810840107553580706219566768203512619853799850952086298169895714219573133549082903112125111969210184143234876734412197431948781749706254636825932067927257455645135019564799300906515620757895985500153727139023101177964411564840459903956544953406693486299070806015532546811609312839643239389685290317033036010067665342163446869016659642563244150704888640917002940682399135932528224606138255373715444820557319165724742141186986461591890599689260608262105044854512662215869736072275546691313275713421565846244373686532428573838880556160342654759034407650584971056413490424020307923769669862936604366357728077551672208357837503044334136222879037673676122480551548121424523907664650508373167560954936605220894946472362571912546163738565455077656004919548930483933547288953126400726985591230077512639283455523362874067313444418413314593480623775720733295524770005291400576986972066693410669720187143579760159007989118631377615356931319113070664801829215232256513824650058171347879439026216212015147348332140213002824947212429825515934726680083951010976622507510104407249401708615210886809594203344884180561531610481207848421709805413574258280911437154359193636386840190318411384096206592081379114301916098764298075351923219110823706745870771567595125011686848083544816314306724540642084237719675797384945378529963900254169774603836019704555974790181953429302152300890442864113603910944975301872479045116760977082557617501329926952613833224667204791506279187104269152487668849082664430017426606878935586394927204427360821858965120309097928301520092190570061068035448336727150761142667772136031230429699823157419673650459706481431327022674212644516939593450763501706855330572625188118353664917125037536122202337383703214426747718081730308397736001832257962747877464416006932812075872360132268078938926540610948253111616591161572298067543149105467338395721985420235894956583477762759056191169874083463650057543374026096896060296086104470658552909970716496791599490806998097890789075650285333957847092393676665751788928713754577048565741144718301989556929470234407989548133297375924948385211705905024338783082159398940442756441695217530554989947478646062620819949893415608024011725152656700003639111378520792930461460692332246499164359118778390871712622915805121305221904503586849675188246782754987110254859588986362177200079879417924698960960290599625562268433614091056886481487248681987505755488234529179769888726934891359182321460453862035312726634548543255054821052898392979004555806034477897841071738337101442429512278904031430553601722775801879483742653172020502460011430327586727833387348932595961826579529358709122451630440820420338870038268544659667263868054618171685638178348906115441048039858620726383705422196786027908549104837280210219722310784571448401013322120005140201636719915029537055989906314652642394712902661166665975905905591449432847649801423466641111370834830883658552628168942652533863910294248363460557955184034005171861814197597012815327555809748516399025619791012132092694045026451899745782584832982724363514103301086765038353355366763731355886632652984680171563099306009038852080607367939506287138867886155302553075540748104682110227527973093542442436432245685960063011243602841797311977799126518258297039248566399244996440719990898401822853413278349370739155074193104931666887035017206805713297467253156356712197944350687936317552497874318138468794757832231452899889681434578334380885565657384283959023686810322799214697327753403676455444638284749526006558992158159714407066632210220434791945888991452436884684784704847673197779949482655669120076847270125563071475085895765131348253332414184374391621307796946101845319001129054635406777949433949350693674777973159795210125877146086598791521624924229868957054537952883537646903498974669932115728846295377072859003954072386527146270723512233637004292299638302439992126433970945923040214509966578229097608572435726845286766628382813402654088484281725840872262213472646185506360960182181738779772230932589664416970768195755282870765987020029998672137939448619257125934487930197712595839178430041333398477935329353475717948383172404936620444367455509378871583247203358440818074555596424237806328371834014800482418485223146901798621483120455289175620113820549765735288275974051487050237714824626994600535656556428634260291804143655775063376808298056085314921125606272330854100745617506673074032524701979673478864644102075723944742602623527634295844011264484460784861403515111223802511439279106220924516067507808509441770678637974430112964683891892895173087077750920926600107195384606119706584491795015707753064322045023035120484169395637213771550132046159689654936287428715717881150358698303482757907929018417919207907587472614708377440922045449985660790402373432689411051713758894380147475169782984271070741982116580404380723073592074387487510246895958629510260957932292640851563889621848680574798638505012626770123817060365228021241740395190825328938452739551613643028616502409127485087593783514718718406080248807695099723888823551738800320380557706357184078602258957898127495670038770096262719803228372538084499372803651169242727161105454196048625663826844648532119485772053297186726238268880186585027692539685303119141628567231779478032661985222055516048525885367714947177258089835013735900091016983598281869379136283210833458799047024179889885763898994893850002873714297432760910730253266890750950646623397137438554763020501061858588665360725052356805139864435440485837838275416020540482073923258830454029475638658720470422463841194345805913770791137153217210380589166423540370981118902236532188349877386344045908561973725367773205194225803167462408497654363966422798616644513971938142968262768158468779662568142350800905181783894565741733173374309174213343538975650939103122896531234045071810212462626278899326467705023349145177660143988910528841529972452016360136445856603127795942705823393122703396204000158844790396830511502639970870443915019953780621806423849996708604026046201760604200031991245290185491175927581935970230721246426270005437959935789784858231183036735457007900589533778514223168599258018820335144720737371932635696461647071742111949150235407471400073853736745841461500872010505015210467608877113306636721134620703181330681878120211422457888057376444873867639551381325326918660483834511867510786243035206152706802553525543517340385053340275594533436531583851009758601462809354197659227936561894252328888610658639271553176908833902321632809488108799609373395942455154628789206600504334111802350821235688713839877244739390591812043275163806595968782761107431918215483785690034546633759509597367361658522769382746678419376226396099107430391389792305460589099979863441050657493763015474050920915873807321209464034716654466122741898580500398960975101845845055929949991650813889882675932509298018466208901156600490433223751622184722566744852426261283819366160589633721117694743657468004121532448665532388750927133282344901243207478302846050519038891009469325321102389102842982054822704576480718727357175036914580816933168668476522324233991695760750505274509290487316251864442409306106832646588223585606489195396316325068832684225149104621994018598558448661100221515620184999091077371113639119054851922066595777833395837827514076888779328214432666516041446111127006457022320214503792958862758072116204196157986390954953973009934544126146245028762879206113008382928901239754095832856469020027307343079784433495448314044774810067725317929846217471575319106798083871000429649956586389691884780399077347360564810518859573519517828078414513642607104472335139589418642221992434810328052315618834810610412280001560221027011496945967815875612914191548224812930765022710027100223746944231623789328206125873710269192510843967150962000028595657990761492334701214539399174333943210065471685162007879474641462089178995665291876317221541389200315857296681003741158884796223472276579269374960153270331960677489362717261546458501899204611253028677375661322788162830326423269448539817119223375434759557504380808046228447183929413082922363085173804811978068415392371399490020910863966662611446652849434724982951120961326013239926260809502120169752869439249851728424529928391897995838753740757608315725924219380563884656526420030933384152337722647998351427146073971683790022970494111773628153053710469520315945905542240231469568640364441041707210471588338197015594625553985037185695040993254641019080831791648514094437784734319089371910815826725850532815650612258335675920284390337246693445459780346043829333176357871455825859713935578266479642606608644497556109600380495434228836865674653993064478924554127579578912055184006526120297789027556552269184625544770426718699427866270208689704069592012676187308879497830393099542817225229426206127217843721906709019993825587142494935056457256501059568907995436146636644485603872759127841023297430838278265168176911668519469175810355885801732099202207353481023005762776568155904310594410342849023728335320698412067377963626302893703165384054389540088604420455140101422354225746875375656069382851360553836206301457342085677177153987960418829918205534249581966464166043482083324905222935274185785726081689195404773646504271575792722720574679063272155596017052887956383698775838830395141303295279727585233991246041043727223014752239366838210556738536920915908633012812869946453692520112731338055315959109152119159534229723107638704104494258329770566657474724510024801936985214478194190257567533239846428585140629772169142661936070294396071222996659440218752276456900724180579433019336338944670646902417482689768196331212072612318782281606140051078238209567913984576491066544191463757507530954072978368599866151412547209897913237090748653743962761516598952687492715294697051267496055281925341507314906546435841926076755838433007801552947330341754296876428203292045253927597194699812444911047605862387504484513348103016192379645168006933953216234152611475394370643617140708781187910637850162126256100903426476193976764743290749289322510931587391016320169194141316906819792740962043249289042581793214471012656663118078859108765927189330050714789554271035847646207948727368610316635238415380340557273089461049832691426827273827337075873124557774741147821379983583756045307697495214977725638111434035581066759334102291006310363663293687040053894908000109053123885105950342094760229144414699990661688615982004284464520894537781785330763806623099423211391792239182004619879745598055690852639330531077643548152974791819113706597109573333113200224457035240410585034984355788424713987601192413262130614681276786421280637042181761711621416718748117359742757798116033226405674052034764061209111222186982753980662920073271657739981356231434602348044414152407795436248794180198254383366126642594728826902754814682538676482829229727544049905064855355270131262640001812703609201078550419595160574840610455004241587967766784719167553910672491490588833385301728057156928944748522171372837524039627712406974351302827337741082212271519380203057733453279040685090526219210182788601958856647013669578279801250197354302140316036376917720418667387247031838568288950574623903644862673490605073456984993088227894308675711982148898688616194723796037153063668331010776272008578896100872319309362148058212991936660500667941065985912840966169422064995061973586414177141095335600961322063064240464280568550875973371078085503968999567793412676832471821057770244727889244824194273795629449415565962554036464372197860618943086042821523065666829531763438284241673400803798502198807742322049025534909691855729325848906483281474498054542126227813448420236084590249053496748236526374322812515882744637048441268932922231494827794354694723304937576731435820920831944649368289884704793241906221747168686263232410154621153095239774222712398793174614599147916621972553682836009694609129599633163564813944099803376741097361932191006140258574243884605982015558124538880879705538129344451283588634524927693515932272037176864356781999803768340844793320347382898853659188750237312809853825045877145742308604633525040521447404770947207998939941795850625822836218842139834927642315939352471036945313118797421897064542119371090036569449534757957769395402287707855407062576135373197376128588280312630871756626299046519994968008140805782662806793878453068931084825903602624033194839223806712702999394911160813586371211573874440660251501348937273600047064259569362550768389590131987122836993393759679033391166477984947638660675394885997350876459286110951661408960444778018169146092494257931660117548808859879077183417803449130142270099366361417843251702296104038702550803402760655261174904956882296768871618994799765828166601449415288858733338868087761140142797286816148887357229681604733524327775077543487776598678630394589990643514815288098405031552333737993025775409026993182183935160824569220245287134221595163286798835003338319622523376750446251546674731223893795383519265783608866900105542079278583370589911236387343097222019162503167416367757184342713093726259901467477887206672058347060264530720777957294744974185287663218607552224879751355507925190412251795107569096782756081069106277722909830297424283758821435720348717011387663279333280288823857734291301793891135208438374260702824817104977999839112372849289119975017720259962314703894042232757635961763171597927167714135934843564508030705299038567121627005849623475167739149363713324481181207368850945448365718316364780809136934187031461703634196737623973671384096219695318240188512809585042720678772867180552226678275095737735757526925929056712045352431000939599900735672354460538331958799973172883465708245559058080780220359962470591334915822788919423122737342013223180663890193538711746244544935010830086883682317303524126809174632557992419558354863640391270553777875843839940020347015226357838005603853548795379156971522946630226206502366283839994990790713035919411964461295230270945841806667520265189930905598151738775246703364836895503126445676881433561161223789162407156675461380079876342249265009943959332327707087017186256204370794116711579593051097072352405369777375682455116618738720385831075118114867232361824752916920046172216226633653517453008416853829492564308730096471281313088628518967932584649876930336752384050004355211048708780549327816930066144672045126802216000659804763329679026296183863077563206079652735583749652224913289906969061856238945033386139170572915837762979535156581201481625044231820160187791163534629867841534056766604796030980065092775577297713771998811886871438974735784588472617715746868496456212443286615937906807314354806308365454058560422817218512748306299818797491239735265903766501538219538295241875101625451872783174798816953041249470763469965075995925664353337881349203697644738970800582088105200107911183496517628244067853939379111069146798598509359555423882373785919425736706930833812633320663421292572510242765934092726235075546768462128002206554309810597146974048364810740773152111696515385213035385782996136715873462345064745054939369444156501296328385697423845025585852801890240484588399812851002568516830252646161781645151698461560489073365242563006525680016504580927442744894269665644844684778528649803662643307356834772776307975530735482285993738451288720878058195171748245502256379440145516163131286248467478515717804368936665808256714948574545588367888138440729755474258971596271569073917156444416227852955923331947190827874080321685151755456199400920269363389575261555178901560812137538341715598011153968608501641907256137393003966607588708186920820412483971286597397064163055033097458621432861581487707038877758197916037698602209266505077018422166782291930179220472126665506867042331351055171231504554691700004972847641188535579957433273684637117917037302568205448833240447374356807959670774137848467330664726900595072171319423688024759761330400088947262163096299555821662743059679057359315704751583148762698859222398825715228250833179166811320034344943875874499299180701268569305217573387148865363446809780238154190725458403158544307806814433746196713235163198496080776995008256474914837140823333689291734581864352384642150803825139668208010119443923590752821379079542784035408710760290757298877745583647889804356126303940324007595075288685328138902457459682239494154858545461821538196005803772220163145543551441151525444577803469488691084137826655832763772066182292431907736761660941501138160534805927624796848425104244582205492824590787024564956535888111221135642611663412195553092741524331930068021629880348796419460814210166615356318349816450479437935097908769884251389751754585468413168542227638813924757076115817780405358183454746047396978961318949130923119234912464532152134341786469427127336813968040546555367287063645455611756302835412073922276121648341382683315981427373218736914077862527911657618962520470688362415745696051736148428020183896602774845487786194912801479620374801091769814158630827620379342910779975259484734601091806018295984422054881380292336754182162967038004587107492393554826251682207797048019648339674809256925460710360274379115744283926830214449602021985045377959023913918881716574358799829886770350600416912673786801816771073180834933274593368727056480469744175574448747574241801447011309816109108885980571760296587749873569722783414835163485952923102212030269756318331295728431420466961322393897177399077340349105178692071363332368362590005973141110608346402054783772391374722405327218943631975923049022348182342578716179581525785563532215368134305888251947266123238434408004463986914934247666419372119863478859265255062212303476686914394929334658127325185722601165440897816191484199732926298978417122982603321005373017232903373137176772365315339252464898612441868606378696786825187186150035706164486924724058316341532708427725394445267395555445371921815010457138601518387107711454014223141805259290799187251283078792402410708935109898572890093659395707459431971185344844479867143694519241013060170517345151700668493436138332087120800583606038373847921106342451892925975135286851517022607694251488970076415596855266581686699941206466870184557180431988233679026174368154341014633012526003568233090707394490034578385703111874232155370794467783030981564271450762546971376271219882186100873831563425584932621288915326689669863982986754117391282187135814270034026786652567729309009709347500756135990950077721031818168132717685538565868877081394881824579988792945637798291652796643067680712379595016347417767229845650606936411080974556476412136494202843558615396332723571492393287217104497130077890431199048352231324153751257935128307603688893404349935469009935356496410028258625299239146146588956760660840679273913612987650459210506395672369387520917833273332846516704755181281761513784169922583801275697292571978320393375167006355057759888992499507316487541795793045477808330860603733568148199601752432776380458483766489673080881661213601729310528609365824054129786289505189908292970996381151568255034534225206706573814989580460489347447335028208276657791779754365982633101675624536955648579322439611200965818554617965543109421984155600937996102561973991118536969198791958314442572386259925998939399782335607505394334128871181794369969230078563056020664006666784515202849717746369207564646266217871532638217498402476627529706526164443449755776758250663604187261520679942669589384334351407688139439339878327656698164774211633725160502414574473837724532010812377752409447087850465964433290527561011448941906204065935246306120561137515948699748929412550174640871552723912741494237780466306935576377341377546266344485486705818112955847878323129385123037358636407743213977396274945334272093221769461585664006136880028539885829076800003008014195126590179291418980935930714315294683440706449344393472880336900622808543068131520177685504611088718511039687876250390011223875514648342162742079210953153802744471344610791266047652211067920056960281297862716975400614691460703020977511492663700928150212917184342505346768903302370306538767782563092142716337239722858259443791872578295855372957022986638634260471655493641390908681145255249107307484096541947367402854325767612988880452959385088110601542724929610090529151808575271452449934169860062045819321842302383673994390558024328593738014723289088347412972043358506249218094972715510865408291422522868827609349748418155089899957838104937445811284690851295043486547723740772995610845424968379792015855154070255040908737918062866686332335756322808542781935454179886845377572989919116511916327083997623299180407871323930195785000421467386409625643809870855287432983398539974362051558351145336590438614261822426349633729009736521144083811446215762261226236960893618819806971084219013220918867321017885042637661049385373129387875821343826968228203095290540193049527953474696818256841029173165415965469151301431114397994859697158746255173109778646041400711313125857971133085497732210844832766137814135333809209188740012614896093323276319322638056000158806900638414530688528436980018145840201628916491972012497078666127496994189307337438371320122550205337639941639308175188952951413746220825038328545384543852460523481350911709082748336895057011444234274282494906070913000217545477000564056718616757349740359654903501150407942031353979586216702706414793431048928283649180519443965255892563220038007793992377764836725872721031841998781016484025142063171947569282465989040887145798130455067446206979955920786952603053723732143532332214074519925369855781144506812507795604872324926950373464103652391186409529653351659142890459467323570953508612078554667682812210670885230498821166475707362284831366382694153904203615777882501197060699311950076458974265829535928986917317532615186430852603508967272014915752053491780456189264338747061694441963093972993371217232765187124335703821331697571442838203849419063688859433876883222935599226347696561962618255353300620635141426113868983106272293412246143264378433865283492860682285534786600044726909486296690074249127034752141885605597574200468805465134925945730765959408244110599795712392030004528753754964427126279799181194420422186111059419258106644854031040834713477940861416118958027221242294048124475451539250580249533393558716711662963051435765053296309272675944527990697009576204240555106541560333508757208041679213844599029398624409254229843377110484547599621867889600932215984308741433116227080981743742584661584681610463449104261886218616612905284358612788880031204020500522565612411489681073586497246933823343410068984187127112412486101983475020194931700675713310685815722446913280384866720617180540823367341304973110487083931714199112437389456696644719872278339410443595388870595233404025136428534840470818928425732926506598371514007232486481466376247008133552609189914002161873223366049480045559765726342620068674413724313954134286728170655287376832084319834262315326632279860960691408646267709742383120293029255909302405905549031421623088328493127295006532265595939442712908201272456280196453666717333662545106290267781785047572232133814571290291229212413627251643667715668933841553752442649879056795081499166660980874858449173327439344553231702829186635408673881034754453812771992331864706022099331013500362748323974656102530685313496261997978311575245435317406361961991340888650735567441085138141494422063103696178017256949984550211474087159327554567029033763916562628125420873181375779978774963410320933382978040920856938788841054999882655606714651798109439642956655642825051215399373583591125378936497384153222683334918601808958451130359888042014928166393716941344479775980238983461463733080528529569893062753453070105260803279973753730153429386218130141719894066671357423194826570863282185219143434050233984085718717882111056568111954788396514356337526039033212578543982689602232232999469804569071417633350885581648185213557838270912465592481159626203271100660714207368296285835402280601236991164482997054230001049240758910472317119805262967168021140101620578251923132150614835467533409077230533152408969139142338062538321679384533637540481636016087824125709525780215577745329187370522070540364352819788915569211633215324330293172514197794182642305398566770973809037135344773984868694967960309180170341572376481237987618053798437750851899621857232786738383369925848617627570819602347071234394345266457633282537154977864467403852000319043397810780673148727386363367911075664164192404661150623221281621330135318637602556073021040951256733980214800994907582979520440270919146527631905400374459300468448518002346153568162494871640333977907507637648605994847944537911353233201506941904085307182560504409684838869775245933765667872762599548282478209717402531915804792575372121941849052919779303685399043241766962554611253163877293189306578234231733931169197532955143686539273216384286903963481302173823682301324982990978977611552231230435147583060240575962657203734963451106284850995587210098802460364408079065034932582488627414364262109823139578673581358730752034080396763393035854142850064305406616387205970016916899683379598614259740124409436846938929405959911548050286764730897271187822819509795234927970440495903831005274315319391645757865884629662346252300491620643042430207963697474017048112914114553705172699343889994697469793146553845011944422741397647430128520456747454301445975950966981442337857180175048491894598244823576287783679460303305623769889475662624066518495690017633554297708585649492149164406408495965338821455864857586404769342876231809032430401549422164717099205940708937788855493386575387313602025374016598502802552769599464268765178693603641033768204040297745699245099997660681987658665591020973662656601113391260372230872913121575873572838104514331147667542436653494674079447909276222975072325559340565308638066964845028516532670579285721042019231424621240697228566128261121770962035897418502570382086517613019751920201455513633823844873054737801031062666074836668674722818265676267367410934821652716044914188064822890928838101643193257931296357741245852749575611550571067760402458378170585200932491746959364574610134510821084203100384708630792171418194797122687324612378737523313705583134459590560896829082763229553068955778680835028498044367697702420981886259156217673740010689264994697109962440372691996664350301592017711443136393933578737635066091935214010822210160589915582042653159297224748295149505976902271710692593647046217534247705087761921943307464679665035080659067020378463209795785353316106562782645286008637185306997555296468787071632022481500683662800132920029076053909368911183860802940533912017579584088271941747638049797917043156004251190100495029751966013898429207317100509758335894233757503304740464817930286459151565557038615826703480662361616186001325060925742046354161034976056581866104708555925096961857717078441438357364376197432487038043471669338659185717174515619258505039162261647880058359475402782713217427034834547403297519381840906752815076568578250411841706386831989474278221380898662311868080377315641710618038655498609608972395478724307137639806422541096870797826722136378088896946127941227841298644626560691721798409566702312333968523968437851155317553917928076187179733054430700408927890460885852707900280875938858024055422724693562246045932064426461741376072574571102958653102095902676988621661002240403903000522490128526757074024233015162731113977421900186815833814523462743374626684507085383857393281119881757669224868978585267070322176588337739752312771988244195385239135884800820969303895032399518463453342372118906559007348834433969411027977733790274117596255792352475033214750475546772103295984291188544878642882056750855240652315491905486828874659678166474532205353966867139886475948934890189501884667532396837217429427294353054485468840019413653525449407009061403599183547637178349869399664489669702261841387953239756777540753780298869520896876196377675550262282503314505319236260061170529701004554873873384087020642086666870636481546464215954643147248740000758940507133448556919975911857515440015313990890725982324522547730454858426506689431592315251777419617264923893879699114070912829144017578648579419523669003700138598832601700951769697320148234096909415655953609396031504868601697495226139662296805434109191798951708649602075387774170449618981594179193343261690065930201614495117206508307395819554355378537937755642105247904075259537252870835268143950364719520624040393811168667529657421241075883343063306509910681364676441272621502466693895152711969913760592356431094237708262642131451243025864613553929284293398615977990506178281634806993107069409584598890020393004740898891500379341832037642552628156469998204632318740881425861952475522685625666845482559393015321835536332866630122413103315918609261973361967265784980858282192122349424896793706773183322670881198808319827186733164769753908060150018241951200200589412494538954012689117054211388860850336636261908485461437289349748114844135717967909992110344303627579770451510808715564092467287104335869066864357933367209733887628280144347942081781935739061755849198182257860040231745728844287243206459533695042547724779710570790248824056571739086950294002937878083257381469594097968174000175960876252611244291525632112299679290851918582426436592108516446514800129186000870468760352279397428970335804910609994576432823302261594184867584923703173868352582061305226922286189874032235910800269187815724827313812248407498400821522037311835564722231123882594040950453924523602702555653666320784560544958705947212450799125438770161826915219191416228321900098247423239607722045640131357259199788503874135596027597026274550026474453438488160446703413672927712391589103143602336202158159146746920397159227437497029750719827265842599713575547888831786102211728382782461459228703004493482322197718326328591890394413318520187795954673164628527835528497283156577962674352342151307842248919909487453578210163470842829277632010267190349036358711406594957096569198824583723463275523785335782448896152092097735917083746736148736207187877800433179637939828501563439315636344166479105010545632624323904860236828883882366061196373351171075315713476837362293907636824708399048051517687923649028633930579910500494369432956684470598019765264340688751929938212729247152590970936977962238742479396912225326321203576836611296527596476767905182261561824706792438141130479717263300545225099745560655895728673510182738285765650615829462383214469906942125879561341654225342450868256653294135317319894379722756715049654316618538540635858184261243921278937707906108623488551033064263518437410251838168006789980445711975189002138765132396328448125801833792786271977930132172527326472187529835410950464820233367405245138166148296895357055266910949727367620929875510334625364343234843461616867194780773379505359696250331182662070538234357437019450217000700457163720143711171266849750392695341848735190870396180522610037476535804944323632161107609521848293027453073430418339762383729028406541327594119157777049236278120234626765320723190428106839277173922582454687245949041144741359080863806946894812294912286774370584418456613150548702060335943096050059166644427013206473900195863671461723151018027043966868275675903864261593709903326578690991520071376052055232301992984624181970671044967806479515630950078604018132328923727943748269316979954270650686405690294004013780186673697505648639675863223952185804447097768206383837462284950577369765746921568979013446528888566905383608283851439378441458057802746435507384589371783987949344276696592013953222746797517363111465131605943475554951836959559600544029978722606032864386632630216621806988227480561266400812026030753519286625352477475034114194560407533104499463874039224060537060156120305663325830600120947589531337273466585400729937886617881662300947169159205283100859315726269999831841351039832206058138775159761367513097190681195787728851131687858692724391202854033760788390125226088402228976119246959159658019768723563050606964551039139268544095076475759711600056958252676442790836359249705465072530594504903357708910618169185310466836139568557407106468658304454479842721116738991650219733806885083877048013087023169980515803011424726299169552624404268491905724567861599198591249918084287022556521714546704977664354567494002839285204108070462421703369925926043738277398260867463693161182199772906375402172666139588530174067861150779027768699172724634551900509782598952169625634510686006471156096958216821728078297715404657871671735236690529397929329913758448011151821967633137661481176978512109866695323798397889618335317693180436491193763356788828516358844351399814601188827280153983847218670165721696020410392447905070516779580458264726305217227202673961616158830570114938646863445451394708371547283647232939211894547089373616443343427311202590423339031145193074350042239891342929169074795376555682870351872139690702464551715457619317512571271644394022132952657250669173000979178414235591534006622043225080948698973493544072753194424040254742517339576973895410494088930595881010435692829266780248757477201124761516816858012575213986626136673585480603295707726773724839384159422457750398332382096451085815570530125443815540225627654313577223364734544450982742030338853741294101217111880117574321300845241940794000492489038687547043287386379624544553819747690271930103990625124162397396051683471210866555383153479058612696643575368744952484158470672058522261529062017683132233071826682876049556500849307997088889052409311651099069023313259467389051519830866448243399929434832318417951256447641652729779059045783066801951414797805401773693387734172279808921893023875377072705553405060855713014244041266826840693627221492924642478962210124825585289459139557890967299457977247977813388089421962069259153788423101279817664387203370500402459189620776362288153459446551099987217810826722382427521507683423909722760510246645536337360175928523094661773049351322957041218801011094769366379979264551208520894746432706541066776028002935245104536831279135229418131538359952437762637807451332566288724104883117692652799201441629664817260525463195496833386780797090206915922890750446840434509158820737299851301997612749905080872338135337911457821598603688015518089342397047009834942520608236817010692859601481886971524243085713818743191321810521879061534153690058546110971792437432947502509905740391370314315252691065197661904001425719472407509262834059731596066498851329848631682693710656968148426984307029178582880753013393678544031863952463439545534712069700124186453391751609300294567384558369700046871483408812596019312179551045016078462854450595263126295099062396097747528156627257997420429262618375390956929994806583807575436432459463179638837406168196302216100017480074527419700885355588875394096953130498272379824456072569878203202538768272308637563393907204993848573059253463398871800885828752590641563640266654370295258591112905828401220720247987901563748129084756098084394284087102337220877622912116214765342000076011122653243808237921306569923081386880819849558010854926289724015933974157056174942702412742581665110542718412519904953347946533244763672908095124479190594455063082859226890702047789672139931579339867307568783001666181548054409614429371004646278889348104848119034939697415361231305194795690635236689123730382423575332940901293175861535776820137996978096927729327260335962088661893981369811070547321172838177722937921658398333517398321361625932756315344583426699518983862929275407828440758069263883024858824383001684989096356630006678514500402372406429216909885605049453833580759012590619739548137952396740000695961295188616693656893322477003420365398237113595088195347857877464780042563333804863335462342847384933441607064156822380378397575391091062419367921556292877156797400886061766713176222638756696022086199572607351777761850272406508734063931569046483423385491581443637789521747784799075357882827196876830060332456258162774414886689146091393483285822901816449997284305319318388999495317808205422890260894088287682963380212198683226063339230052703850029012720526329301889927208665523581479736359293371571047664139801842235000213514055550805998383190391308438093409714284632427851793359574752011606154101094047752201358416160087006789189490728316071775735515300090124226949564215949805530796606548501173676505136212792558027053846938379701518356988567531978709391098060713475326481504586157940101876383419302471070760316273897531997920121829430760755035240983587551658963952644508763486475855591857919414247232279811258507206782394497745820250574837976668506849794400091294504150712259309610386705515685956573745711845629316526735245598170191474480994119031693121110494120675807921820054650740604230301891895088686849543028428459816480958150640443596993398750905420346892829993103056662654327409613759398040836443178010158266967695385407028118515736528716750154474235144373394023653677102148395405711682251137021572093989213392374819103656897521994416867235211371283336252535531707285456468920591250128635593678047488529269613112988846879025523003240225882223309008235135411798619896223966431720226697909289528185825184797648311766601487012831161615056857943248813499216547420580852610459927513391824560708063354716629215054136788129284374495152867329320151782467736835591984015537051071706324144512710301014600173739019774065945867373166849413995265216692079069442008827359219079636416845837484279002507376822461350521524050045504999426030387385927195616861391597131460237986506049017461324863668305475089920060109097619598295066855457328021742753676873831201541546645905834246273881427241892901522592125381527395192073490146060853384626731539346304963682490818095683939993908818201758876500702360048593202548667260239261678395203380414639586035933346388150729825266407214977821252139204714222526394191823024479459722511615364182346982743490083361575244378025418006220889131823896985734011454657886098001290432322273173997419637884354702145274258410021079415009140476929197913391985724893587777847339954053093959802701102741064510309551187579234401623290391865809938110591769365164069977760275311509412483981446231621613839155406353550371047779944130408983592593411474096471249642761148859717332541861385602911254246612949566116270435161432902711618137506014457633854558776482422027814551969425391993214816850412184345963748349566759501895264106591911416711168335910957379266736442438829279500928518221991513639042307171225297489313859089495395585643625616739798596322927635818168354471452241175737295977321482582742495299502363083539849645965901252018108252883774038337953505569572195046560919226901025992122221051323767755036259243518475633940009073009604454446435362870015925797954874130837886375090830329343621966224899427306704231797306934371478219070439835666470749261041116661364193217791662544657983162294976763623456503795687347763482437967686485219374328442079943576358526390191341486738620144752225388082919689339381105704558902294704127994508334752455612461523831112670950476704839931681499706029627573473101065975456555204855516157212122576677176429810492857036291639410127362142397142081174528297598661777389622953960290973096742519956995319487455894781878539473375711740352508142312658525828077847619729881878394826814279630699771031725778079120636903198495262598870738484003487386293324495277467323533531125459794815078566278374540039982812779153843046295164873569810558056922559342075437165902297966946944228692123394136536131677205132439152646497662755415357161530108942512727777196525612125816735533739590591355280854296543198525866647270349059209943551215322949501370623568246418235146025857046464736525501833536497537307592088014652319781646615175476815586258269068606461908445347044180956796144821537700744319189847446419525828534406614904113044032944367221386976596556930498898606683429358421826174509609024830840805556692951121089803867928342632031832594471670136249057238731745100688866019119444720515155544633113951059595523380882118675235526008491142367802652621021768150190280367703723431132066026194402453453566806907588441884369195001154322998036762370135707224176420399780245783630736789440781093564665713075697603582737927142427640350876452583421012299881928073571013802188378609158327274923213322069411772218361510306764234725849803364716125072749377326549155975451597953101434758180834358714238331182367437233956714003193645099156678446357342617484257005659649209294561538684840839597686478827716495501476741692765125181923472580420640101986008438637174081087536523866693854489206544399309821943700211658414547347926264673732157946289491398743692765229319412381973930726743083158358421462344065537323531336750992244216413296151983176596814321586471400414031404198058797761514967318119009792630803282677037205645326757221717880870572469330691103417042524875719881780134981982214184306002947118548893758808056612775235253381728299100598410857507691709084094470452941698998214692373100290414538447967588239893093856394835325826187147949004892139066697680332046439136765225455970442097883971898300406180762236245871594802723448314520784291246667494178140414826312035614757400125418036472917778551592177528056179578852405134573377858211552114565743861102049426213951149745443222039177634952825120783557003927810054404027092162670754291037459089415622062251619093184938750306395880272529646599474926497814605243788310157712930554750271057829454261282463801328481896515306224227737234523647882282662529686487662400951337737641082306401141207417558096101253616968784212997204612768453725452216025593777268233499196405505111022402606828213127155806814582972639383451913977085468336196453717684422026133883654213678095651285048592448019845355059108983805634481669355088985519633190844203525959592767783849494937683150345121420559798113333216264595575703577665624171295095730113738062513312408043491406470755137488598130850841542902584566730505284213545309948907931532040287900231076319245239053209124090216999811515968801579602148761630281758023132918868280922533250767832072663116771556832820748403256876788970065332369503907173452229379449150901777264674073740139197977324434462872931819720366604983096989088550218957868958548847167955088971489720113213710359702075593902546788888980459128480931919490120870267929143205192089892848200869239016100884336410905478930537818960743667377170531199388632766899040837274278530567199445410139540784310277012133055682550904930352167899926982502898620152068553758168322357136286665440515600595823661103249134508688938382869980910916742026247475159564271310936710884100571434411005346804558423138466161149586892231505108327512824465548827959102109504491241481375330259512437523251693665750662546430710410315894640043759354045623447472534668088527070603385097045045257090437284910106066117911668613243989701159554693024910869629639100794043556091894643784961457410957472006660751461636814661802512146871566160247326936645657417040195469500842626832306252628412337975067897684278456486487657956762110205506151943982404521895617834938111362261579473574202076390662720956595760815047546759590873069972603526031116625903139438137970290159819938624301717583344657427445578046329348303255824020111385175318985141144147188705382078182276692028835814113676827109744288784517900997955835454707935651979426481796214449260291824815078729381737322145691811424185879866022704683130892093039276356807386964268091151660391913302062161249120338757358506923994951165170151633923613812082660450367117709540095736620124117387853421832624091904928800300357971180324537587495951486481985493802690436465394729898758761781075632344810605811781991304053260155632268074204637272226904203234614891687730586779293650798458390008632682633538213526101055065435690487103919234611668483912882142701345595694628461446656079887236207253937766086296069195817889660969817698876214234096490846680592313828845762298507324408969236087864599926748938926249557409208183570101947490968408541925226126803146774245471453347018902992517303775192369282201645250226013727763760254993079971216817681210517209037345252608021639519490635522059182225724432071904052339113247058597407135727145993914601531450488138114196550907669280899247462601171745804605948791003562794771125689187936133059804439169622807500262606914461285602824227435916203405300031401581734560315215524000684635611664363049922567744431840993597751265912502700103851725488429624631218908357648046467635491847677870251539608040803430996910356960954476453967550230796777146888990892461449734925221124422406288449314599608733622334531118410522195327606843711783921988505726565004307203965628940597170864901720582805147707348854096193096035496368321091085883065816345650573285706024632952805914076695420043942435059803055190164619031479154972684530971718754182299225235297429840245511280534194230331446234194975997537850082120546466232298684777155205220336303399264830652784166357118780287082197359604719124544380809308330629864982131828735302663163676382604563145210226554504463961251483770402362587658358089003681813378228014737956159274461439245486668987163392788102684232372248173087883719373637197032881897753283611845786396236507679618153372211006169913451402736157682880581917904282558494262060657962843180259766408848681902476949566618664981183349431835514268600967241927738401423156214495274559127773959879450856213573510236750956731094482616893872627087484782046557048426024547223586866069400786435890520228300404975967152692467357722664124391253925840884554971002114375694395208555520347707135320659400359257765619684874543534878759015564905684133363697298193566342703433981551564585352473599137736577346777498722502946054121753573126272133700889493579480033934326126242794431561653271150014441436812703011345916340637438735653173942323312330033322995274363567523572856187992670367006802942693492653790972438694039898076010536999906770842181247095257460002096735338166121942920099978473899346559424706125026068771297800821209164025540736091231327585553978513541503826219497389251734687717230477339861070996979133674062285170493531536404194849874245204843074558992693125184718291387288337737741489048320291102244206798800356548657654397057079294615428098315599741495661994172027971563922232964555127139159631960031523693910539285273923752957272706078928469757984259562143648349395755701002183408710059659545033901696107218284326276577842864848289624614866265472648509839510395760848694327142967064598830288129327546617381047182810826231488652488127378718262219239164074906302705694978487016093015263518436153274059899374734768196961031954160411961852067319668956785998258126246808977649241649952174386817994677763751992515461625159313582005194232208016426947530230127553900339177112602219881477607435358240295542816716837576471244367709403340459667480931856796525237955488412203283093665991263585329657132091847997940683455016565324762434255213518392871058479413367973788166537001723498498358485835843661105425578778596972112290425591467353428228101575073805055881420903217214163227389965513634500744420142480182025226049896886363129123762387413588027541999070374513653348509416856222027529870419338350332180147363742853002393821321840521169916848548477733243347994601240554382214412560781102498447053276773914201337887793155324073812348244214439516464264103418245909584803060773884370745982626045369915748861938544152183472528457059411927256323292012274320984806229351624565356666486883413797473298523642007422142770000669047913254521036785401834872765599106758646916070517643723311242132432268892985901690095285958330271854294540578780319018231923740948122694919898022291464919549760516905981986614312947035016900481936185048457682446225177401437926798043095472354552511299931876289546743018539899457685524617890182359972703358308988476663559017090635034801131129171421476976399882032376879024523978937981093075702711063855580966002252277323669505137313772500729124776647805167767487880010444149865074988873540317133378067687913490232553919856475561845863654006261182042562123859192964429381015324360962643077094871614003905684173361386528920417919899113844194026214868559883259795400201985171300046572296910496620949120242746446938068157132054123766155582922959896365647028608506265515616634415485175613310647741358315869144051414511847443298570138247421248876844715467498570453311139848792088078652608636490087312452199766864070729421883562159090327969449446782354807841812182694157703813199293311759926237897758470103542036153243402618511279383450552206116952634188708486853657612621689612899091364935614852137413443785430082369901226849665262501720995981545940086937519703553775282958737468882528485548473207599849937490525318646952435574499451732582617168182359620202682159538620797776258259659567674590517862665329601714694294203374442975379549881981836214871519474379861122812695235499831391435185584952990858300518306267943878926465859340422968623643525987908188606272071821207893787806878516694502708838306312405959357642351350368178371903536858613841147402052976966448921350175313566024172369573326802744995426810589583119663948991230259873525832188612567194942814363045796208253118055290091706806360334813313281856510889532652956104065069685763473488405857905710592383056051856580459927940398784299808824026211461581728058913409930998227010477094687417681463039744144863525670785890634926253359416594986183827921727530075506815169288601497486895541273954210944986994462181149244312379434919151424330692820769819532541547423019037544618787515603680670226901681916167036024544436627722082276483546434026384868727605109198487959548417089956869995670428171438809632966896377024563034305004498207366629964421552549090962797998088797340068473727094344415241792847327676592369291389856832045902543844003029538109956646059883255059613784504193729263913184204095328289055451357680418856656506359789036174776381160720189717720673131476372379346660282845319770688716962158348658518379290304322822643929277672333602589064513989556837173152547105824109351978311004055858698486458528111237306715723035945450851461531476776643362233945486084748068308269472325033158581815021087755060868712753601419494197172102134714100478509836637328075399066166194744067020978851518729198316849134648421236975759572207959564617841578427144017188844192606324596293589730779189852466466268470777028165096671958056216811613771956446379462185910294153396936468624310154546733662518668671612613873514193218380055573297119139085325119271994125653306059820372050230043293985753418692077820668948006107333818650799907124336113299405871925317241980679690464175164567672774159306316551877599293631319762210687822052484580776721705781866705827629991992339545812357180274005250521630778618292870820924074098514442162000480731316527186883500317051797707067988648487024364277341184025335316036778935330405280208083399070826929819582763939354522382240626408111342952252732043120962991322222129246427890868313457651513445771397982745609811496576693765087637251732571478504243170559246086115153923993117776737974581425663525319018504066554588016990872229235254197986786828454042477230009943137760336583935610900842647323066203708762260676494511641393880378859582429100012660337012443508137141069415144336931219554666595865216415601687468590601940733847337581610525562577761242197528607776062599899989229708978665620005967144841101104725028268189356590906011775145240285744263108866470057512542052503575721755591352847403871753754886988104512655273405527783888410925414587194810125180462018156362862791384676069949430763654659049595233175121781141200678354673290523437089294068788316562580466838947561942769957885581547679431958240631935790142564346961822371896114164580961814854015840016122728011548126614857206921462977661345829797076512138155092360196422422055777749406853227819568152424827025556079003102897844674896436028455737172501839810311599583769948842182914662699484781435828360346081117208368437460817147806019454676834594420536678921079517683431962102243829340530123610192492066611526527629465158007466933570911940554959187361385303344556233622122741361259697500566828589044860111926094888801857849165026301425326887403029797673327007554176835198349924652955073153606938164169306068660097367125586051936906920152735944533657788897607273615094690319391631882924525037731542881754978461961621468944961336095827500873981023434795818081044061102759080085247880873713126356576395111530394426965229158184563863118949438511781311909646748894628634229567876153831707521129570399805555368668499900377851055606066073590249847343999012573907296511346873161699912091041686814686241319898506039238148224609584070219036274303937696602840259261597136615526128315970239239740847398398238077857373487771468809092852999265982295441499341357859176967774352913542316388364999048351011643698255314646661206541422960566567468873940104647633234965722953528957381506740819920813839522315642165857683069387582466804653880895107776617723275436408561585725028683585604268049893631681824295336302411102252763336071487713325468778621692417374186871814321735547807360365523738852904443529641175344539835655150477613044449900919022843899242065841559251202047568373331365517383243132211352282392812445531028782026567493737803728690771673187912894940851749393213291394353604481749709208439218926156668246228515313790821435379235313194397402436642841731025247174947324271128558747996360192810343504398927572590447325853730332940241121549489818055492022532461723633327655636381346047367797888413011998417781118320803772121193111315308558716024827493769609250255069640306468603379967355403311977039985086395227184875101702269316227489875017190903872459461068490672450530478316040174971818843092703996343110258381815087071346813661243668360781756340497904785028797436317515310877813156320620849434000702195193343709795340959352361073791415044145599721064203343622221139891274348005580096048831647178047952756414713492790969339515734857497705330989967959906289888717510629347803522955035502715574643122632782101259860225724580345348364627664869826684120404692819304069166433801683400130515795672242417512309008192514575343466617163776045373025115172278896981535089282668547299597230406464893651981484157822827450179036302828132691217220624640260533248663720556156573753003304007597159713167718361066838034984640856560577407305414963323158859072080458538224761716677258233928779591180162142071169162855778450148486161338791336723850226938253429485180563538349181878098180888083754741583516514486086425441323788866742618658596455735400115415829412756536989042997655566442343744870861848249136871214797711601214098284528076105609637295644472840642402748621705907812240078474809731314591966253103669203190152420824407019148935938239909363211589788514627508781737962532160100571962913055760818417642085654949535714918460635896500839894887975219325943774396830591405390043579823199793668319603409341333800846233460249674702213123200249660101020550275700583172975702787827150995999514917603819106661527436667772298103890796916119301332376602829278798980273488382032908143427757026445364557899765104770283254866563791958706850556850083323357613083102199880335879665108576162240647078280728352427288106594370657283375662388940601396968024915334751225507535833349907025072230234199206971373109243636156748271816801554040691037748932359877715208825351486577293107272044863889731847316315584052047925527926435684195154562354769552625397656389794338794106194654063681061844907630030822714304153388085576380111020105622789182787295352594497656222758645463035267771596113058757162735620099356581663936656363086607075416755239030462347345628090895273198434861252082888991640165465076499324324243401186007828844581490654624405817317755818117244395169789759167745500245640406684002136525245478479619518030984004371463483941633488805559748378903533388321938199967935917321720288244147627405860809383145793299177712712013329872843366053974388349236347980570852199477282425803580759232637760834473356717571676862314842856341286784032820134706134727565738432538011910974419012094513298222435648596398538612017297146006032750247996447491404409747884413579216120931490305342094675802707336230790931552932090530963606653852751725177401142072691345611228598994231389702831285031849326039480915932317867610007094664571340124442683159868814224511213590320067017179288069177902061103775911681906438031254110303213172274318239451577251196703193705243367912071408191654516830879112617540795471817811953054234639650613854695101667833392007124793646283146678853723556772902170113976147121220384387296273206740254128053902779919175421910693294619645181543573234300627783155469338372109346783358089211707330064215922261940658198773212792877041783350576115610595927094071265153925602968302857337953813907901906583643759202390604551495755108372732079943013489926488554571306719664290037455128331019864732607104698600790127741408289322817132282835485286928222148200511903917108515077915365134557886443656279910504683595951155377447451373303456921237391282007200727385197667098444900103849163924272968355287499981600352212157347973866702816617060370588867589760034796437132277685064601061899571545665410565128821306830997957384029113725214809278208630489886682301778398656066602467781556949344627667204303604810768146821206406933137249502651410589438563710979791308175127221227822394433338313645092538935712299949617104201043965792581270656440368878617693319319357866741983815520239195394280272017110034793650370496860492383039581005626866909982222510985110091541439273458646582748701965743607963796697212019122081088589460359052885449105489091273769842720763436281010948074748341139018439475080122637848381550648846748977286201900257727421021253249487595349904921111948169166035814997468116349640480725482175530830188361779400723901988630648428292621151723373872442739942491855910019423646667478995124987724089925537727506984757754272860392492208110481577379848563840087173411143053669766731044183419192518203086515876671483386611170199579774548724861774998310420407573725801277473855445390655752171216225400350910618562512169280824251581664882131359553850946146833733683183745461720775992207954775431283314087224838228222111935676181175217870224989793897850072066611390373411202317338020899965867604649363816534025493804433065900386414086727595303526725240009846816465721167837025343921340248827816495470214126089435876716859205909894305145251275064935333998774880120462858526880905955040607456730770591908518852892142671858489381945852599308175137837853924774294759642920574516947527003384103134361663902650493231817222293400896199448912540703918155282294953906855326964117913720794897087684779326021502900421603929171398547711479464657013042020622474147659753219688029822727633641011050903537975302692448975003053326350895441250093585202460248571673321505947138155468807831994018186286542390304159457397924909859830800102036529762273134494743405641969580494676401679734889125712460197699242961004937750260593584231053379733662197449434445303304728620272104559349309517783649981618693891521112482982635283214682545742279001551799833967077630955089058761961314071248917750094068664409856354703490721658912356366348903159742136386819146568800038110268165607116781310576561433467852530039054667644539002042151752056389658116237939014328062165914901816337575512180690232158779060253670824929984187217053994939661865447332722097392916618866803184520481176897807470654405956518205209441579414302611183390523933253985878070347452088253389809855932929264872749806560160218167036575334007411033829221280603242458659285352308959012800510068494785790240361544754855682336047049560979986880416737248836144508190082679663517143475657976269060276492596530094618519074674009405313507671347116482249989238700406985738582030126249042736938428955385687729477097953646881394823997776492637141503234210359259075183711807185800123972346326784334152744137041367864939151362661094715863403114871194529252453533668875217281345779151610461908274688120704017550446923301357712007926834611241620250167690168888283226072055720707499975507190993534216377501705980947575978433571141611991389209727222366689248774697760853455153742804692614632996684830836878181241490405424986091849400305878898245982897287430756013905698929682083482296042121594455587090324048086400818022352735132714843786823599601535263851581435351821515275037051996611882391960285087731190271080471369332092545363531254191107346463998219495717912555653954808595674934855111543413702771875764687611247616558773755325308689961921278326248871939919561610142617699523993172832180280457096853565792908712224453786804430367594816029932290474121123048747367370588774716470841764389893685854506006708888822736306781768866434856146461597674889814184114074658256495985007646931944382706887668614078078178135298829357814267476052953369131958644808000332476587172100602087254825122614029330600209481132945334136080542363656747220165938870474016017324555315132585197338529294234783316527380197184762354321117716475715876416741171374560306796417922388605523856246794083103436093468866770380687751989867547354906689464397380890636195742416837093332585076699272712865562551584593408356757138887861749014894557344973355640740527105732356890640347742685351892616342684784508949890260452460101608880756425243485675465172835250268354080533271014334119491231139942515738187179046794622564349834699945484559816004857747940460698121643598106739159230894954263075352767404902277744549874818185851722783545522848121257997213253840037712083114683706983334591840991961865127217464124691121531513387529226468873971056568296657115532299952203218132905833177373354045993441924548533921125969869146939329572958320540862971066845331117435388875418402338086279065748408206348693375948941295308423006570154585528424806005798805270836507884957030393194438808989815069354355870718153859137406440578323347561147524405980970700030358593944989118470645817435371632894675022079588024533089579030171995452224588704542635946129150304305593337543548369361119641581045750222469309917357815140574923865320674280680936201715839722925771685243545103140836000041008541516976643942899512539344037781154518231806537148764965675579893765126483606464653010468061905066079418885863890054869092855893674155752973994174510544755535344324542527290834758021570124354716894798519744468231950868695180133083299122179507635569181923731424568654461856285257547512827854241574367492345894283707645093552087145679972240017087015227263611176858786153926250604072403255378152466419894749616976729540158333784417646116756335704075115444842411241116879248153607254785776890169454045443357477758097428548519971965683536200137776609055174119017996123604124887526543370504358354752511268787133996052154860128573621617786974990947149794744338354928651765120161080073735983230385130509661427147558196833844370424589178249415339841729600320114347256759373862867991909649423764767834239491684491544706443672979652757119759824479565207704333842713493149997796377074473743021691240916118769566066390211712125301013219925168754281966357336160519451396883170432358924231922057922193139939886910251680418718557514035571293833517326818671304594802144776523929847888504699147567362717716698869619317543027302125376476854554458742578849501044986449395110253769883897541266380287075940299164683105886286932277686460445703573135182912917223592857855205677146177166818910967903386029013798290183440014223439541303568708831143807913849023840607834602291019978552087929617655235742064894324746081756255640236370248911668722639220324153860279127530175689872582170385500622638462458896348800079969342514482878172712168636240210245708468159166822116975228304579403118852947758296645652764079637436090742755992026239311172586147511673461329584120811228731593086545133132230423908027543731803034902442472509925595770545290933038436236756255733177753341637089252073529742161991557200405397411619231459314621716448548324819398882863660067829203347631530710189528058045971390818783685022925470760287227474031975193764619427957108118175799273485925934564503399561125942057531985829071882100382637270534327137165690913114107090844093104307665580845177743691677618749502122540097815896184289387810662298646157337607360093335175590110509885576109782626736716146397491382789365101856719969761085719830511747096848137031161782816323016006812935241870400001430816549231604044446971079676294049629292250461295999693975635164046125759872581879280341554975354301237865619329103403318704238937847555022212402414252509955434428498351747444983005692217273843581295496323072233100643198992667163534015448813420311899174027305254059386061683055608245427509641376272917128812284171900974033756482221699110185592457600204789356832736769753859730937241906600085466264410151786990423420778787351830642598139688061797532424130131810350052886955846360424304712829874452514402426058132903569490307642787802128105493872280273350994846612660247588852385552308129146712946772988341818779247984105596929716720698051745180849982527531270972624920805510388960389830071570909442087208748102172965987783929489733805365013939137657484824085526143282236721424555538621745554235962438294919510391652300808787529718076884890197887041617254122316422888671154595098536158515825798350931204356107860795619805289939541768225910411882586728739757150321252941279275975108252438443391200700897182669469077385275088846282031957335282693123973166801375459942679554090592941489371705446440751750212337688857093921004346021996997566167482091386399589203768627573970224132994487113832760450470583580704942847085284787942517671295072632215121151767328685437159985587677844829287828730683514849080765012501845207576943196746226908701942854614674227152463192855560964731472940771039988916546440770874232140241989665897566623261915468898025661655743329093453995417839802862137688264632914391001177713781180076300223572064779199878717919420185915489478770221609267861903237690994277802156915689873745978066298742746531218108881184029768243871035120197807584794879708345471780752619669004062685484084706909591818179610612061808928759717069023834734361103645201503965715413421485626284309044996769175712472899995220470657475098641319711213430349471079391931510719989098882190468147092375141293387904935146591043959033206190016269334454450865231053728951279219962533919572314240842220974589104011585210628422754765636509332721268364620829240103829215966394729358644186190680379386252378140830805701361386322831050795546043593187456077984398794334259104207646674914095564451748099525054977972815637693978232469980954017668082915820025260449286737059788280848864220069513463519140257488518204642254943340649782501806387766115056359550514272071568274160470660890377048789703259146773655789469604175291982009761035351534764125632007427511683921319471749648998667978939596705222778222817456811930444620802091063434147665481427182444983931725795575992782306314456560152976296091415348206092717026937283809277759863877063321391560441750379493660815549109878942153966170460810364170328131564870531865125368257939779761876691618523457246328845129258475197398525080810598542599025552073743691706309199909913644995752885331941291581264511518276422550077170207386195116984704751306662270901195722158109889556063706349419426473589437376630712791879037686444499904421753363890085466017186521408331029571711451173334150072613433366107059516639392765054770144206269083974987928234019701798862027283233915576532118228257130395518423658226598459884973267230116212038850549237648098443385599031080223856693734282507598828048382926856930957292116037478651944124649056086309527766785927795529921746286833976958714062505625814481107814793380142025511177919475496695490431036478245377494267559271391734571599814247656934229965399094978120167946362803082450041143996077574928952707793137687720925581467564836019683381492919104217085429152519143853408514378819251444907386469482598258770791173259560521488970240124267922722101321675626402062278469832484367449617035564307323465510190375294481972814937852257299136099683301113966551653458873557237416782917577086384766504214844755954561228456047644481247075564226094676943151040426882072654547477143044658063494196622447874046479822651969834818719989461661191881267652115045614823235014754159066183359546850160626539500173520844214327233884590901126056579036337159521368607374930216820011716960940169097324598298660788131119425412926680276607834848523752015475915918252482742570565805747188133912347911356366345505473904842538774371081990507598519248111559509202270482832938466477818003091374871884632162023904994992498212318607999162617977960016080203109795929097604446899927865748652961329517563334716748218591964170871114570492614932079536242136801968886345400945239629426089109257800274685368453460608836261505825571554452904372645501667603524479724475021443108405857204161277848836286538705765043513415375295907339598431634437215017826475420649095928153846428490093525331162913864844151568805978654597779734329002278465764846176808630622869447121659473539256640575909011962521361762141017326437126132664555447323643919178595111361993137060885193002070460898135396225050469545346563975516918879824576367685727614463815057215204819053634168005655605974002927173896743171161911698525417954915481596898033325823236363121101773487103939668788136522041342663756693419878865871384654821291883143955571689524281730047088174337658395159588000944796102359898157152789741126211505952823277416800257484822465876873780593675180886813492607618237938513257726439575407155700242935822169058387535377228173222626492360332284418187185571757607965171720631190762698293394588789670492740040647284251941006896214193565485072731129386347698267388245532060114473261872061580955390165030851619178541298617357722795090880966050906492649929914346575036359893565924946289424898125354437576774703250423324905704821082270207375801182966680612558252408279625353770399376413572576646082049453630761788372815323089193328476829360456760707008578986625981870944149767744591013613277410455259028232562859782163558510325235046842418607023604476012896032414112197270053723690522097589388748905061549646981605070863153322884211626543667975686549758537303775413718250493236920995419947602413058145285322547949869525273003643828268145863056548575651526994472166494359919764412248333769491440654385280005017167383142167482991838445250184549671176631477350534385173885581928612102091387514258017766891847361535484100857093240374068196283193510922529140836030573564151984146908334493341978786695187071200472462079057595912172178959979479578679282301589201434489362309782189389625565826472189478587022362318489805321835552348101331927967433347458476195111469359227103199295711873910323105309415447343587620980560400529319155181899412341647516955291947915171757625260070275520876572672210879996805638642438870433938054135113193682507673091819147299949428836546155988326825830151376934326736427854776632045515970590000261521202896726282407081688827507376804926589593585023300792763595232690897875910668849000714854406145522191735693374258856311574331753688668553732161394922179778412665805981725513190524757103167872982784549464792619361339805907797681560958235346576078215971195026825726077274239670246672456432957388165652263096481791576475945406071111763350361447073510099265055384428923646358899155993090808393232618879673566912293023251986380394934295676133426106544683727871867794118901748920924127002552928769568418879240451023807476238631997852913942047456776246357233748129468817259102934448252425309489635702718463486716517139202299445059556843878448565185300605196699353180638900675321913019141374154241275661374005552314802564466052065876296332756440595301994084138152269682746807527605278065590204940768094935329939702373369685774136574687052052976382105662329206510338926279690182214969661265216491067170755937506914850042293483666984955603066794077076166684063194905473531025715014478352191346121609271423386236580001603600033687171128539113732309361524441381349950435139818433841007902182367899613134735454033831558731400603376592755504605940056114798518960338064912412622562776323635806820445180724006450274065383399854271547315487290501373525770195204926011865278348682143387881292245461893683527038276933922608987806534613346959115123959450993448465737644486458166602078667772712211968836437824302468488752408057717517827334151913940626420524643028114094231644284329100173025739378943698640819009236557258742296242214381563524883382446954215197086907700521541589486928472615068373970232037562556266153900490661036565706991875118559439932487688393171483410457689048527344995605680332711571245891944918177186813059194948756540890773267495284976294246516181085006855013288349507229174440737969886205921706717271470339429529121034420100201185762826360386172247812941527861112465040595099127801427485902884087985128706305718425883520799672597255838440682338671041343314192373712037959778453364173357273237731083168532800885463313592489957512140452296249143764424679911317071927004463782334160600778120814546822617484512100017617685986165856134370431880570227489414528053982307042488653678613987630631787213251818197783578519471151135370938224239109867463594215432659623485738365463850181282666411924125065838228748094841265682749133596987366873380188833443327262277873208216319245322950907095069171606412183515148501250968068509740168341996614020967608556012810992329676197720380995704734775350364464041345020147889672436970942184682063611207273313069307374745144275203303869720599333397581754799037300942403159637448879017651711744968351647399476435467383536150556702063317865781350411390880480952783720640020976047419614821371415305098210697876832712473136606354106266858616186125682894289932830429589590942856044613264582569729763223504713456672159787107158784293508885657421776932972570817815101860231451878027951877379181542897413290676380869355251387031433925407177542494116569648933057686206709707143013458970393717862077629361219860385268276088540700117188424416928789526546152205560844393350027716447460262008203034556281751576346940419362536575600074412046199068352871682938730829602424095181559917799384259697868770347815380651163434781802936869609910526044725520712966491321246456368196284935085232161450593162505093201510250353457222978415210245635126093752936988079903405753908149942636507675013936681628487869260873362196083353458086234697144525737490097708035225389391780383847752912541755676045963917298437746524420126222371857765038387542180130112647022619135137058914282845661987872701164005263713317350446292495316610226776352053550495985011317682126878272242370049479145482673938206049348710733575899923558336928369350714086057189039603052444231040969201536356750971616938873976812856357381279187038382286519028782200224457829493202639640942424212473989663757888230615074739977924047392182678202233122568572890365378444406542816828734986468950002357983963441045558178176411365999267003935183404556263590373585402664390444588707020419694911200270507779404331385626119872034832670175256275673816286277115310447087229165625639024911997459890216746353065139890455183807944104878614192679313813969428875811135752163403391901494762807048330107555770561085076723312157954029841812488925332153059829018050198180943916392223609382151480219726032435552319292529807946514151359769190712416268117509606363520288285338153045615812341635308657077749762819875344880493841565116103505483609802668286530391095191776528651959774302424513662712404063867084895361602629509857989496148676215126615011338341535783840656990987417165244235366240340989055144183777010211343344230685271275543488497019923615844852900240997890287945500186321183423537359767353656587936667346146584583834677188103318626228434537817058001219205874814775990964441993521964603496739239493952993870876180346387749421841855805904738432676813765806870578746525226830722952015425503325796980183643829474205394305606891802129584778674266195958565497750518694170175166082872405289105193570088524503938729528941428722162450734875395190753328505254744660558237770430859024745262041076048443456499134860223692411122468492400545503442668839114186025486991697245473324454502008309661133062661449719073301326998140642786783560894125982425614596498727528396879504397729785018056193331720623110591741341880936175147588710903338671392942599325275279352849981411619107219282093086213545921060397434973169371680920163495909731791735320510091750882969819719718145750196245962191093322587993192377806100051859581097280228413963871398217402201568851874379130323237731967305833959922300458988419624960240377855191274461033769574874212671459893538093376169350975712771491113961365881061785980058076073097838703019148344347688784193714056108953035852221692369561423559723568676027258649340214532598563915176423449920603051995773484278208335431693011261915117809021380747150971683061449797744650046215936192426307115157961941104194279475441565377373900511891783289230189461664979686644159243745558867987909900495599812192783771588140733572601434673627877385018367283968424798884346905342164845871501798009570345524373050235007179174578638262513665449324159373910215150154916333911564994099282845848244617346310692527593069453893082005211695163651894967205068410924823908903583541910925741190340887700879507764653910480309840389050375599546107183386957193986315803162236971645882923130302522801632658189429587157815137223314620378575302421864406652791618898742870393526594534315525905520172728429719750178329111040246581918484417202440711779935085276491938050298368018704997977600497831104335837553963681598050583606542969524156138702035204416422859531812713502756744851843720869183738048017420640305764669643730045086428888889121604777332447160803698306579548178688258240102416711204989544540893253648806483431509876312972865446679448011133967476282073617346603806608719462900276427585307742118990451023518177184181649557379632140830668462411247822939099387521493531374392763851546264009752261466257542455783014100454579285449153803152098745954934603133532985916555955780228223898153187018757973955703023798871891370283667352802934563673001273719650235525209616616608234839300735294541346612970624586191022780976118120201290167228725965663249178660673416978143819348627298899500323812366054137605311255412082335796760944893789239764306863237846352192171663205934305941276012640142952423461855784332717210377657414036615406195711744923384652241114539494453289644196444237674795488683019966528114585270194112682236849923634507698097011737499118589230634122109933383854253293024881867653004666932277109142710250277906124378590911707589246709850538954433550686068777150649544774533094971795066849439017648418959133350991022935845138840454591315577164019086183060114124379875653417154666797214353900640843250691931354747557864239808264089157027515408706743585874719467928096165931298833958923699457668352740016989977664363264706697766103700545838273171501641081323570353205597714562025351744170291686394652454809019273250735626692454850896161459028613824282373883351321196705298385800959588347630268997398713717680363511517061184516976653343569802207098770047837648481251155101052030417192133199408326374886769271013250499981536702826015375504727723147744613676131214510544667220648795211739643064610270370704312735390455097049822076076291411598691714631118499761055153314285820194951468086105522034010117375962338583007482612291817457360362647603090498427886081198389016859155368884597982111230326835644150335174572022769593153864759953034687681036206172736195167061911269216649143558427431301413039077749164222127923104848514694258552575378625431909245753257032684517372916241154809390068851061090049121116670848241936712466287769190515119676215166206742171509085663965559536269902324561331528355495594625161415186415157826413087453017925654995751964153880130443680122962715643721230704027850030781423942739818555410194880459333548058683227135809199125994959019971647305663777713924226177607682461311248813020802199260751307772599455249038801008139613899805908074109545301882942021394702447081942532496572476106413299106370969819809626105173238976300732530807561950219093862202963920309602774013283365377986084753689762543364839119578089182876442294906029658142219517610420905772685896838979193770496567725839271864958770071909018805231583931077710434309839386136672993379103001989455577276810110284003854226246984810004088994893759173233869249841928013549108285648825201374871244867885486323862843186714107058892759867297963819032921663736431594210065940452091787298236121794006533552667231540442696449445898426225041124711585662130874166666007999201780007938278448632958117779284999367286199204052000064615652464063841907741317903692988196990442254280347388941804558803463208381231302329446660688548579134464740060152986101311049548650468105463369960729793722223965268616145961943709626915334047854992166101460682802396419364281156252334382108966999759818311237663052443972512162327980236657263829921804096705061510486254305763775976745753089185227544512898089524418602865972950305179688374986577771403681777159412346977092785866256361554616223550889752464712582912087275407008839757974082954266913682974487190754702474582416958719799041967767652033755554485380300036890117522830388879777312987131145817038871880146971146260894887714944439151242519415655356160271411665571874243789026845328817416334843466429332175469807167253162143697722415884223105420604728048538822141522828963804331261556520680171341033791629151972614663755190747963657837502270144532213603226318914892911998150054377146639866571928887946716864922081957844099988468751458841133459838862285352000457368995941008789754854315655363382162759921030240409333065299845091921702523685998580139769203847515861300082224656523637654237449250224288679275365351583652023272955496238591823638715081276141742936701064322193846568432313492407534415263224479309632774388140447955632410676617156751575788131642599514698605494716864850922928027794122137350210040285168987879081072581196590079719651646455375064930713362798026951153096884917487081616640316618210950309132940787638600242768029627848996424191770307367963737868952175747185548542754447135927955393188985595082483876547999623226709875463865643180938405831659570637172431541994600461822719747984740838267428749831283867872593332265386104409940713331558576459413800238192347041683029680538782481775869150102868685367868151175846927698425407389225718429653210919529594782842216711213150219822938535492610173519421703348893785898447531464622568524492968983535543999829565552609105023780876562986969648674030884536882787446933654459442132621688110781002650434103788949027083017781620821402800805898241631825399222605649806597073897054923537533694371858567427108730779533195734851837138954261662746740124672253830573126642352225399044149565451286127605877227003790740622959183319799560908485762772844812709301873809932163420052046739709292627962218480236359043539023934698161955104919428111862044269136633395071342057489004139881745428540899652661557395867767455634985017241694145387666384213965908332640567608141237406473048607884098512464417836088102762321526047357315702396243144360200874496146440700976816349945641365859866047238013671312310011391850782412807764257426589797456408815733643352591114687302319411333509472963590120686046562496007834167239985520953027792351008816049068034214238155233784323648796009266444597144612628996407822797584387820089737404919168050652047976740761585526682143519076101352913681929398697013903489207865529273333685729422695990002014754378712724745313177306372296299825550939605209026446649706173205249580190135697377598419264591246453032027106055868976108628141197525283411283108719470588639873798391775406628389620682670443510309271507455022619671300580791229343179688597184615634751800068373167403728251371283763131875867799511274608347022439367593893374573030632776193497865021966608232941893979291187298661342849695642235538065151387750810529999377996682877378732610155599845358298806856977161356063503327615421436840759275777884901052194105842202222187368565998308840488230064547765507784487471810804078254176660112774722014528918489585755637167050902500940839692384446321276872989773744516540469658735484857311495004674606125451299769044827111388419378999898356857243791100190268485158072230381822471475687757284495290118788746350932135788613468973823515641290275656536949015734406007411242255707397412548262999633129639451055402372999566064553839797315530627097128687217267378801672402966372851726990668831787844689407390581167214433431205423601595266978383837743524396286041043281038732302198074842149331437735752622696856652516346272883185942726518131066348038711367819175735140624604906102552086939213131419950690361217366621377468079248281961432765949524802968241595984346221645591359792744179889368936650495590317684990873161417860921953819040935624647106470274660194227020013962405581176034180674835527899034513499833704952723338061681334886971303588028797743575600173257223683818901772629622479896242910032681957430913759279240429356289695956677849583275671590560342075356592835956331293031950902816128262985198750552337048808309057354795285331811127490117012490254916652146423042746225172066378546425537547948093332645888781689217814142718938075558874075223362793392270306512509078699646303892260117124866644662562550307575313108873896176221392787951993441009067199824106795608106372534125317408055247607624959139676084028964793160068982171118483004271420039585532807423006505256857497908699048778857156627677686665131142818939368910324233183888272252361654018420219155441131922845308886290437571363867817969581220317493551715882153457613956884689581151528815796853997766540002306164030051462207628533206518569252852783675753296525933014903330537741620521708600299645154044351653070762436955043823828502355735063545741119282929311051602664762613954521520655767215120824670870620058305880171708385904783003404666338950791960027977659749864690740325023548540950561870469904333371874748505821700482449200424743746159814020752346531876966265334988195253073104480261443544578042290787290896005365386381365594569011738835182497686288513626138381113604851933985945023925343430591111170346861681660986164058918063877230774812920913073727895124693199483167297408404445447901431426242495514301152810931297227477274086128349773359023832070908245785845834316182558912401211537324655200726860387224045911082530625713664705469337819855182934689898758142420912635543826777288729328897508024192691773132966413821657352575640518141971405077890409657587195561732368264953856410512749348226104796739165621361641739056708723133758936293473293506422209599562240998204774502267181648455649688207279373664720443339872900383626839099697477749298957925632900007704782814410921620634020308405000981394148389930481752285767305518589476345652136320800143015358950475026780418600154694089127309912751357903414422822347316917463127026434277066339872455167830983836949661660185594977473779703287310589447629948975958351859573952448394073754016797391656288285009006696546948804874940853598877328973114548772999318169583921248720027867660532150746455627695310922236687908863530591516594742822723758984016540779391132859429767832810123266269910442123265740870165169307745129009562835583535092419359080590412248769072157794805947159021803449477166263049650942637354362546051794630850358596044790838530686453626587152619157499029615835563606650644363449100414862682744333204291544558659965164604923103946734979993327615901870939986262706174695836942889726486031672949775903447435088298948428727913423954721525794076586443336377905775651218960617617445016521091738853911978289937859971583793045691905202710873166890559913299630029239862900426662632848087814052390047394419658233350544559324534992849217053242338185718743899732814439361081129681382142722717378137749862440133648406189086511813615234389842588863025764679232203381989486275192894295152186175237187915005340779706486084773145244676963729929561893166142195692058584052699010430677345343290421885548654717985632918274345802417392676365930890083229164921669094452895152193666104836328006259273885869010948469918707218609848868001311453205766661982201749068643702779744064012667865890422104618971014727146850299372894315277041790172725587473566967906094441735718917682570099774897618537369313276280929480845048840171767248857244633949151091297656410951592225022060591240031570979681249715722240375945716460332903090596957840471389043405942182031840913419222851140304912797153162798283563570797223379320598409610313963043813022395771752182115284479888332343540747801851368131399530162574028606025741056537236845193137646265987038680840769088719080279160499264173727131458726477117546054702707823663663069375606118980066117875387670175331769821421151024481968345582922229334149922561985872292790861134919062639703477274247853356584191833026692300047399738945591743900326136770704450824989501807122491220774887047519872128653628692516029797841634136439376866732043298357269296980303850469084806233333822235603332052880621389510548896557914439060856331188142260775889726941434754193444308729518684742420847776168795643209275370608018822320533886287130270881291978334229993054318794998534681650590588778131405741549720950297165508572943459132277370657967537363786749502839822065496419889309667874717952912090368891518529874884644651613253943940738069179729655771580135996413552891214486307345805938280213290547639227028812762926003760818063991543080433893502169703984968795174441928190506405436455764355355030207434382776465952679195751258462119942554520506598304329405252397511307900844861052219314311975942122524921571834510095602945214650064886518629857836380954291288577384281599045716658128019886642663241240613344852356527567550115963427204380790823596318110424439388939883879868031154247971387428322209435231627673172477035175266617407718234472967231399134110764367468422750079934916259203504179230149461957288760150256665758049987791188578866260944830146415171740156147680877410070772479794039870048646480136774990810706282060258125374979897336071755434075048779496834300504041662669137640316518257934527042153271706663414448097451100483971219719228257642898043098503222658743959698766690065495223399258022702130110014368052848784608789951185875400031118829186784558532450883212984038692441234061179199575718670031001658848400919684366350744046715036250146670775695889456581947707016954716111710531851435311011531888578076320566410093748695053446281956400903123550077758249317206706038051197136068291800123136213511992185300740919798999019659576295420240274738910988184098612739324729710621410754912314928248105548719965456191174100596487082072426558369724145911030261809505762152574293198974425304189248360044470967942695931191697674295588683211994099517272084687558611942945708294556430678841757411550820555282970362378607719854579936019212380383404339846988513423536299870833993792676468474860264962122138821088807475581800800582716812598453791049359238189670702487500585042845697287929965938407786616528653159965992061529473969587898258663335718400331576911003774062673167384513055835180589082045795537719855084001024513298952716691253842051619646369906288893721679267502569440100456933866586437886049468103661488425334528025851756211584198360104790108813172254672827044295025953271200173796246836161065317538579490296190017264613789770618346391949424281050207328186751820547994265699911540708059178078826219740696497618691093012780224156967513411836767622771175943706431897023759894602139421632420697946747967129937587557992074370143875827457960732176018916618619783005134677754132688116085022580483169776197579153354494357332193812695054829350449180986926469931159054025248689404511602844476903847789644111315058428178507060559801928476404511410547222893064479352230476981785458080388720354122625846002523490941053228176506327943689922827424384631488349276374136793014601638714912054329599618601993366033316727838619130205625920455154815393800037179978795003384049410781680433617821154426658689110375663262285504907914776461350421262691145718737375827011103489263226944251742952020874262615752687647787692005337788365141061627442323386200470262939767285824835045038378553213856184879007929412331375962802289502621928885487129825467282114389023156400679693974877445836370829185441073207010864276469384834220039247553715872055030903792803422812024084664538580916651822148741803372394192463779387317824866987063508867047459182889150091924432556978438947438535356012245362450832841770419088878689315774747895651721713082377552909062093372106063606433391336181101237370849703300882748236225435181438997882353780195663087974375931580294641789459561871738322933547640962957925111504227804407621643615960533870229719379002774237732398703375569135995829394650375430247254534249065668299687077905690840935595441945511305672177391015503236990849059266572923747946088696778885264798855738310943271891870606394835915578497659773048998253226077193096254167716563386935372751096160623010086727924203100295879029522035959881315400902667837471996879591779833808692214726569922651593516153898091919604419063487201356253764778610049267633986817509030965363829097804105602578193729266869820881021137775663086009741222157960009262796658410692726474626711590679045151988326982583318233097533602877630040269564028656591739704584954403314452432703530473109845139427290364256258647081719111162745978673972639272536284147562639311067320217738099658609883934476024422289952591247076640857351182784382878325131840578948611265371557584748156889010856956530034660235235112217969253433076206915673327449215378954679222994843294599567686998486163124084207063249798060939875109728380723892140309357984652465639550027368978083602412372161368752168178222145008459281283090614480186759309394918376765557874933520705343546627451250544152331363077965974575752903727433785523831350385336219363165593957893726426926589053192797797028830381604339199028205074696578605688371103951070172842545990285898145343497872679625971555515087281453032976502852035619884630972586098221091018049327324316677330613330962045986135227211157150098853252417731908039268575211719909246162321820818378068002161865595962619803533228240255087971627046994745834969303380669174022007260707361983718540564205810041367776429427239303579359153427634607148584061378326548350050730562022662294803773432837303679585987882623017063566174857721076922184579037688414131207525194644705233269353456566946371463191170712950852712836883549207041355895715956193868139206527561990495264104481256115705444211806925512128851085410112872248325008984550264435577010162150107498589843319186963964911881603359360301902852116767667494413796712158868596286502934988377056870875626348834728953070535302331540378038497452034429127019085092405856468327371553393876334829381447218475809794502196641601548114307696215556594510810182470994346394406922031173982155528115882238039852951998151812763531583180749949689854566467216480048865706392073917257130679023369985311279356665991761678533863491168440589150956251340220917951903486418319202454113622312643839277097932877313544150782405128122463188537414052509004981423568410179807477687888154442313347828755329600109930246724509227171840321320841633005591330914664643952641386135333985338368614811277469566933515377100400133395903377633650640258598828423448467669981820772897955838356415252152267231290209590763145224214990457888045542125333609432624980941780550631436700554892921050027642167633532469279144637742476613362420763801438041456627655965352079495739551079126286998624421408488445216440409130164001915955477182832306420847161835478478125853751989298003298306953416418188889986224595293470293792608876431227005094757381190589272616745430491283667918244196286600420573771119313532731097711884861572218481501038634920227174139289841721953613532807899987802777141643973815494061111348220337837750174690416804880005632757769692847055991805652252176317590323471514544067327922109823199052588580651989410595728197183871307246614445578504286861004501452793252127173279987625111929736444158624424818159337864873281303980649171528836565556583303133229975826755551502212853589143502184307779915512941555608002984429008559865753878218965760300597250103074622140954349361873961184635000711615246087786610088540788074548065913030837523686384856274236608748048349670101508125018313361348446306548170199181058615479177432274360414094973185849841010057356138096992604654934093640805239775663054916666383867174192438247066921466883909308813023957192965990829372074124957984763493334343172184731578913001492095313567698319637710272211779600720998429247541150184771246101656180079861498060030544965659300753938475193950360253261755129481024040182139524428152722633072140761369130078369248438183773360622838526868283817839713439700227300723147053129075380534437406321313090474393712340219203250687589964052249867388161496754612343953323386833951961328735318068396537458327085355907036478229378048711939925592017244204309613832437583552467621341669171036329574760757878561105712675446691955281858209967326898493648020987378369140508917200584488220280119991376719222827929675748441444109116356647812919411233171333108992796920857426954213183012549833308323823163884871340976730601882825129484397670008460215950174460570785657345372481829066410651404650884050307270844652241619556090279998387859314237822356464299957659738536411352638041348608612822463245093582755948762556341470499674578050681526011709981552287288833832742925881419437495741419878560963356825428946116972269817711249807540741736831091520495409201537837654798848816234073518657161642690725047937473421852561433088207542953453380625078485348567093242704798374873657210529911273426978386786592772181846774997533003510862656766674857518981096064670266653820422074905360860420209655710169888805673974020630418782561346339472231960488197603558044591660049677481126234924877502875913633115923977824737190960058145633977797595122700824751738402839289681404639803044906416371006022357910811403208610316815505384992045568561480866667579972893171752916481921239920898190468069229079013651774543939497605946603681108726692241157486143881223333108685082779505014912045668147716652007877705008951658531828375072831229142376437519888804200663419136036154733950519245141936016781954509389192584873554580604841135257260950698164627308551336918878982525181424670840182660438299579259112875906942226031600909775002022676424687080454909564949427740576125321301872930509656463734654081773551670852390982566043830010385250927387371657892936108257932528978595391461625787256883055100737423525269710210577469699018118283492531940376993705275310485166257867321490262165464740096342351494550621437686991378147334999115175738307436054283450279113482125540236796769642018636350548490262958399824892990046476914100273338534203593352709759634805401770142342192411584206192121202358016411455883419677484884855304040231560004751535696585429565320453078027880064916233771015816527519039259510076311328823054359574697770296932778914362894981595350838864168371238305277903257074455899608325400897480923565743038513501463781653589340083043731723484710319646811333905312631374021526918331740506968387185230018024322006318200165178031776427639349904578286271781889183542377693746252307190319609729268211468621018866715222129366158908331087660604697218739650420017932464195592081776220385070423008783724472694170933186520477751196125967077386688373987858430233372075843843167101922173803425352628469696723214456807718797007592713300771972349498165623779564526374543249804854484503122935895858028638056894149586233325843437445465324577061776292228432610801365482356608451351535759957892354146116116560785882947022197077999829250033510073582851410263247724137542736910783831690006692113104797450477573777846379434899291282248105036981930456820855926623785402841800859611643218613417119530811638661950964891206639345414675560054101479359368849241725959623612612174960005762631217309831381935307135758717451608422635388091956979547883951054210449703166362431873404872885931066739256039864646162723271567430417193886023933999492903354672572299860140880662919480473049427874081292160096802952017162649227828593366428363656127710447334831895026685912859553107109291528692790748595926427482456341788829131592846613077744018926619412072362758367373446095241867403972873234078595503730292615353116561911242539458160293524766647538375255347340209636474284769725590263707932175375808722237198152420565886948382005288562264552534742418677289738164379995578445833767512201558446192633574706982181666341046521921356836586287702543922312730931234146531642668923943678886819262476520012568510346610739946896868178862440278917870999358132444445289199770806453164309902116014720017214021876781035140828105252346383990716011240508908787650755257729598801706871955265183433355987707095204715111258148225175201562981080777377275081044194408946919637509080637685658594086428172238848632057736740038166483507326742281641530724459457117052114947679183891351209548447661912372489887493785449806587106666382652506302542239634297499638636276849386540624161458798641917345052174186979053639255351552309992235925226606469869406351362056383147260932970178347333809381197908581255036309536597389815093356992310188681109341203291166187481349857450360190662012696982706048448819639006808109096328930119605760972393641282447406833371444246708483177984927039852294433261830356112999801349611310684760949741985471065036008874915160406261353039389193667916175980971503272886268302359134885663478045465946869164200420929089987695781002239451085455426813381829380725467586487205628412623099226367120343785106569401420826284573383070091141464747861732767864904643175066823978867940918930644923449882956320035691220015218217663888750369277692433866704069369967487826729740147438505060895662413480917754217305300051109857670214972085990237384376504819240069113880403985873141593523295746066782156244162038378205880029165666504888394104070422819275852888968111040953317131410265518376642973968401313950231151867144742332346132122178081350482499273864465087305297819277023317367646704749548101237765340303727431888496642645667694670701846519641088655901482628931038401018316789128234243173908467529443486152095571231004136609070947682290105780628661544293761318830456737209201701777560041706294826998318752001518997987677976100964170653813940643276066914395281118269672774762544881061053800485155246979943094170059213863710128962216358967379057869478495018833119312042325162201433420710708458356140489959318492627336677873005851764298208613605310467754211095404691706502003729361142595173885465880456448638566189321061593953035940294872349282496067816125228366618674876394972166092507536133782303980625157487484510607287630471196380070748901882536377729005646284585376150233691626667937030482528352403644087181996798957414785586228409241268323400400478471006810737950031489943094161461948215232717949074357530060374828362859600587403053080693730681354030685736542162701016527203296611213259928183523811378278526322295631937337288991396741250844983591017378908654437152133776562254810391828865497701608998617819538429993425995178736715335065348730490812078008056751266578214897063041401388575511123095138147539399509101741304494792421228621802444185274278977264846751120567867764196280866521155919055297965158007552757624656803182599310698022193196440067605243971942758352376493499628394031416894086125471969914125866785520916669583960662789709537719019132901009206245357676356463342911531610150968524636398398528328879082416609575463954711632043640251964547276514322634195794200657820723349026488776358773852011872266206519149212967952827968900034222031795919464722212378523874812370082647505446984257150340830243051607277647180695976646031318647274866697106709856250526944828910834672690511775399588528520349109286768689461446036902368818233361808954742600538877334367483317573172280718403053766791438182951103470579707612471441627929659885186682812641649460740964479028570620153192465857232953139241973596417086126135830479096439307196236723206061083199600258935201104767273023594490545293335935194634459745925244459085709685533741640183581556553499760422579043279517515496654224016527831677063415459291658091862884949684435333016041356935310955069814875796632571532711909059201555696071782662051364932136716753452762868476415058559002503600335625038574822058173422595219081580035900776674763260553998630606957436614909509975312514944518102393004845072146994134570650999722537236370318235823245729847719425938973969806156214776338719213835360197040793906864560987915015627059363420808015714946101220679555411047877706378957244464413788575340964230956235376079288503222478046095342655511966338141862210409716892696717513736831665778700935580510627455530017726806660384294181528868896783454405597679364000149398346943910013916284989234043647615956731163651028824123348091476435578959610094215028040976960661282671765595656480676355896616532360239214329977529601993523267230953844375597769114343752472699026351024213379434909877293817832728501941914588548671578788408227468940295231915783715994864513652228982937111993234095123885133643134903801929746082896238211664883518420307555496751457934789566890367501599568698798407903688100326597718143395304203779728331777927206886984917044987513485178499818493152093384428755068285334973754446635885070928767718614783928613976486428620637301891844960242180269323632329230491073975629252642641615006171050640203571153386053757078722777447711775979929714425752861302729457283960614844632650907220413309347799104403211197706692656869479087613093873804163539529957801100356792416940410901280357818783402008334786898951442016889083182420249989238527865982708532692731840992662976928212197232462547952801854387434679546711543816476465894155692128883297348815040371400046463184566316083111971476144960570578897252535863659675494893276861053587906829126351481279057882290252056748453442523924304412651491471893199389359842744443950747454244580803661902015976701011539740062357934109458922896610606063033252966396682400478560129516928013683885431807460832463006394436965776098656053111153219921652618719434435303519079092628196200600055325028432587610545814694619772184826529227414335956972360227445468597325568067207319802201595081029269789305791193121384555060956959949539213737800880460162984629010717023906133290276618109820445940695420647457073579458201546589835268902170879929259601877791327701504997734768334842532719973966913874902826843171585026280387670592960619384502668806273034433352193802834402256183230206864431859768785291818433549282654099804379715349176126610304050914501964465110132184121370176937198631996613419018688675859434652381217353777153658857716619861978170139672449699349983985609296443808879907458814854864819132786501287748347301345771152441470313703192631112644450842845841713781947034685976250212094500722714848066548640247449900409900597901708452697751534088682253428839355000650526556177129519687313351186615250053211817258502141566804124573492562322450862002908820416628759322053863295144451989024400356779314405900306942115630025819577218546944275121038014549246989043905296558297772363881588407967838473018663335987293733939656158885203404245179965159984445859398564354527678964406305453840423360369677520834038637494265116464732272327485621540968885591707488411058673011950401921432565791034316575351456078483620239736196153252899966791372052394911523116089846879936066489327772474469504827128694630177539623529330749206151355242397544726722456952311473939320453148943203612149833859724774711090175594287502700909391408086113860517078027536668528543709531308163016214418376945352517478495142941845012479277985911095441852389838088046648515675114845156891670690053783636028071849616798030982977831495793653898071074161112609864160661981794647919627337098876822486626203960672504155713954337965215261830353274016158530973190081385507210287260551859927492735345989610019348548201242395189600486145099170519980520559390435824043389544923404633535467223800715041670242137356689444717067836340018336954395303668164803864523812189884162859561393381937842451276552644570273890727447215792274868116428234109101410348206025467902875585387268058418487197408967294603820448161302031637875842624388371316709034415731313029268251540247060644755983648870451139701953045215430397222107518259004294950534301940048024862450545612884464937229218740943325568426975157740879338515960233383930248182338806810016820014769481071192841462924098369494401963018918316127157440495581537630523449053212237629856652569274445402580730918706075493154627349427563410311181452342623303803860096871287618667375106729732510977290706582239096686755745077285271785957201392225351479692248970493230943442389184707515639309545556522427760179744600197807827188784620590301417502458793793781963710141972815581105251764843746040662728570636278938033253464297014316161617497344345547928170459107546384995556298463475199168666081810685843976546150063776963404698012899811523760441817125751492645515733515458596300037088175718683544940681767761535548495835537777439634676692131852734591630307390074515148947971842741364639982631209080650867571134562915395446788282218063423504818467639636655738436175386909374616386434004860777195975728722468276083437761166221298775201478738739756944775505801498271694006517369471367219769239511307023414598253587038677844259553412426238236685573685184026342024972065832740192567161746435405967640386303935649507593383337039332620168726675790608625184881104697241318517341638550155275341213980120177781603652266899146233241278510222646087469991130133747011096631794063677190550965568973247019148781531492414474308126780581313938622168548744019661580242763302815045139779842153464554366973346779108477923796520418955012873690062779289904614183300466599882231258447620523913698266896385058597978513087554394536692506128843894998073675387340890452712649492565796523141217054197577916439306757680004819995899131107457391365538421617317628824906903363126723755625236265747294841682878107668584006298632303901759732690337039069916420653202191849205483662854934720333999511302639662333793066534469936426111852744631732935988148616275752509900155630971915064932567417426446987182081693186932980542037151922972022221206179935127672343184504758769024052969196112958210202755471670201331239625838183131268080540998021989415887838207676768209401700337306018947151383825255387278089002471032009843516798963423621488327347996715661971769516344225778999434921071404992695827605648242261566048415238437194265819892284107327798887138731902887676370887625616484234482359664738552992478180276631334075178487491009117175396126954055759353298247118697049848384407519930735817760936499344539310661091648264407725894450005308989522238451035346636154472497840688073893724025638392849053552993423630422322757153051704144448407314777040213657058748075515264920080742130285528341665070648193448084541285871269176631877388244582410345891568140875363368343254166207532187000076743053903437783409555828756072709036768655598733341808017409198381570068749958787945891823062785538888854849208818372505083875422031405481583324733571111050911534545030496049162187864119438373481768782113181231812915869653572341138443280960295035981541175533147097172576169405420680537086112197684042719793653244783914664788791227133276412315830608710436616151391879470681833603810715589628701931860683983578843682675163400471019835668623514454326919419075293902589713736472831042504763503351898077480210487900955009347222817779823946956141393106909140924812144123101382359690195219024304808366562576526997321251339781962014443627769948875035825028756829728262530861368671446830817201084797359960058652438084686931451029695466114505736536354215199000076458775296981517554445320871935898181705849311512166638891523171439708774247097725845370722435183732739153013987083804168367329747065313808374857050399872805649292643689419861337749141028789490555799010417564278155871120307529024829570023771323030032988524879664292337088765994720839515865440446762192740367154478460435071686648962091369241242909504175588285324443977391763173689387676784717174568915024658569960745931983630193039829970844832334958603993016521123540975560122874353648190034034869557185063008468427612064983205839117779765485287792072569376056681744503474454218991169288260075088825317403737916360334454936234235600535268649616919503641303916624308149200731759376015937439373450432830305622870896076730694535096610594807213568346593175947779478740587472881533411981259564333906903122634923385019216357537226606780835428958870986024780839104308907135495573755330455485715232362504405199928856434125975414591147873639145049736559964031735833101369965651649126454688982837370197526513875664128195173080142649039805588683351114733703010999571211797706434746555019090728180368068736903010221397593055683509156531482741089597987006608901860205552124837627708790098351972863121880793015565894558323251931998870377688257631163411564390223982851649877481752438686963953724023734622159589941701806260276777421322377070174198499728540805585494646357431686036258638428155846385931902717058351221883581144529573000866481009413607149343624165093022222706890777221249383722895222970371127366957343423964218058566817980645158964834892681874253254501311891920358417148849094551302727386730885239459657510477232931072325343556211480216347568053516058974927059780259600135055978833305649797794218570409462844798088027927993512202621376734622160057244102797771909515215017194779264817430694153295644456896028856516838659558327872625992087209344087167310279666429263919774416237218574653716938853669483072925518940996625450971731172316547765935242919125063127427794943443876406604822319597251892102992995602390646635891334545807778733888076144443558832170275115665844320290035295387547983650021219974046215072579757680255211883779900627644044991910276783471019424126791525822920193130349238317256441376166536589090893151535010287093133811486327309097099319864517217725159984528997424893614765241720192872491340169043922944044587512873061111595355404616703715766722289065681001278174451717053847948927164814637604808255977027575077206797854076988148993346226061430787356362372884010324656883520361397676019855979213879868552538739654423957543306243603809658121383696183281590488184708047914324979385977536651474194875346313233562752223067938623348279088313420139131339986381767832385627035797396963319323803581268911596647453936549455164071867919944023271756925010125685944291704153360316289774502189809241996895471162336280136551829751961358167963378769439945289733160463575178260039062300068366071129967492398444493116147457432672430137950854949667862697605797959566657591398940237459614346763651883321710158599282416211526108348002133756421867974426374877133759196098051727805285264058591262283561058800851755522785109287401621520665413255132109207119602416497003482855112236641031610542877445656228252136437695680295931251215121754248875101134854596761074388095215816473867345868155392374870623986583670549582124163144734803173136806673731513160307802977010840043446228958522241394330945951372560588902022682008534433160339746806838784967854068389582450040918260075079861791447554607910611292216435248702278487127580435349032432565453395875311778093153314156740581413587445136919961082035831337317270459810515366834612963880744010245564114883755804521917881171705235441670406565061004755871120574490760886652594167483933721833416258905265082041896169183764460970325514927669417729917626884965544148381582655948352173081806979682628656853088819041422180889359492493254065808164060869614897891986596270128931202035871487599020364129754352389821611246068472858387638730609035768686270955579028205901727203955039740992344285479798315763908060006755785393442460875608612501434203264138582184554149579702021326772320038809760314993021191518570432377212862155415530651744148340116595323503166855199485560261178037056067817297036842737420084381167463643074219279731655648786750797064977118814102603864739769531443465268740696102811419070266249528749716321123961298333962937865966222941431883363741993980061305487801269004954490909165964277651609429693497882421202904979426634614062393120733851934143246049647766311292438328788478629359539851114265658428591278200992693785515919980016738612540050310611406553413040231735889599578161921027994197842454389398346356469715168886389191364214119901093612671230195563162184803822335405070609191924437587079133292219266155398139857365869785482878127625752815787727120621742876503928079570895565669575969017799612256405967156187899807404364147236302992456639385159818074199541331226344013808231123081929342580491612642117518299494337046475229479704179326424622541598542694894073897043741402281628724204367005961179381790546128753689391560681256934021575370910197516896475722170472734315802837142006529690194593569233969994240553175164522903542132581057805848063346983105381441693944026919579531121448492360901362158770420045258469539497103394569061502383751260307718610429152436467845031615605168702782446141276773898784351160475265377170759054881744596351832694421877156247791378849560893251433899208078781568637436651651775506927898871152511550212370266005423285760222808580976477372233467988056785776719751745260921752603821073814577647568737413866154809850078770142534800087599125197985493247887535004756302114076876061638289142375732429480158472855271491558771723177362456704188505271723001148664342095017471940273432165373672196856996114972900436052256980485355301243658629986744088104632369716743332363516236052843755192178842658067975129825927935688457678807772118962139433579880990294312508252576130389669581561526087987015200198444906066326479469572940713080241113899001094156028613584090828648496096852572848260399645821604793132014483928465549285702053063417296718670077123793275808713456187601272236697462981193298171740366596696248621289420201230941228362840791119565610492360031889401475305554776573990675447197933063560190636621600816675118720826148944550808151170171165144674543460849743902035132915120995596640699703864663804061079563991952526195084542120019231952095664818923240549374706966112909957306132498455518135462248266706706073154155431001926257738846680609320090503008934640066362120206965516975800552151865078687156925494660817560772569618770244090634568012024973081234058125832887894967667902574270154354258182566158207417955492587878521119862887534795690191323863968776992589240392780644455043289156779708049355709291880857761297994733166565436328655172687123795460851912142860082193647462364462226312618116569702278752309874948317876918223686308934167734364979715194866402294674150841118975918584534992970454574710702697594124513825585664897631909033976873314880440522183192775753275499533183966698484749826946565845827838190663770112938025164777427428144027087036671907602083665851196596940157807679962490409502592301248840250260974164712145020771922927422722400460216735515489225242591013883457501964469050684893655627234257393743806960613804731272961196914077118957592414274200810432560530295489221311285176467026777427143065750941567060842069286023689153884077190649291086262221723479498307104241101558208914674522432945085697358100012255613903952086215438863129317645846856688455992957996335481888267649934765672540415570088377103124843108324731534526176687371302904785769148152516521257492355947304975128515121649191732735085414849554055644768224725918810053644751816207519981354302907856326662479115443369780890440237991095257939107165018405757349926257672613961093628524193435224894644352715950351295300013934198389395501723014375863066859780300474913513840572431132485250282801402261497213424049731430001767099656991721300691090615940505333321137203410240937981109704705863971374171005304676623562930450395195676834236745639903864428433875769970685258247142007591510495214321388309793910303238061910733845727571026456780790898863842478416613170032809440299744654524144699251407543139546322159362368529353547857532921341576372939779933844126783067147624995875112738201903281395900554547499876559990141137758782078915039997380240284747654948018283451247493121584264133156597126335252167383211892071139539558134137732905829178515105541331667770478689479021249268686961697962354196373936016264108252540320957011006142265298878782174924061892475029013853842185924147630892252892736922381049627049309883379725344057976799404313949048471213012226008466946228519304895938086391613282250542910810601852003855902042985970235963424246120570700146638947794404272715738011298792611368222858034757614848438226783479068284446312929974574153274438420607316300268201296887227909945283861440274947803701376217008988358694506688493424593207522060779905717436348590777903305707281444905160846852665280842774130632801546166461759117302833311155415658231293926558861683381910383352871519362167521686182901799792931350287230350708978803852662716826902753352103354759658684140000196373140156932768295673270260829384518952374520742426387158442529206646252108627676792327966267906685194345038352949761169983266645545864787379501484381522350855716417900931283749047019905701518056815143153399560299917459218093008258478824411715577771258554283150622873712582817778298083949976017154491029641684478301354684898812851327435120396837767718291497791315304138884860022170315774434359033738868370855799217411821424666277052985967742644639133061359039201264683848271391389638284284995711872929652582358399381635694824588957674755067914039488286616455011329532010655050171446328240732134014748292835187623981559024793652827632686022898751448295610869424707433045903929011329069775002326461788657872117965426120649524061512968349627740396149888929238187033450357417017212004154471975674940665646977851648947189414201526285071188601684280064491605258736427656835475238282531224880867344970547810452502799599244957959653300786381809879207635042863945479761947519501820648499841474243951056868975087272598295102443398844354325824020366414946778958387543571346630815519222212706517111089312305634842365713013380574086723810591469813880833918861966451884025469291237007116621498572207264003465023626575926207980682444510282929928346794132273832605414671246382223104918452912966040562507355270561558264419360844096679342024559980317715005778573116224794590585979581294686669973403100326712550376855147557805355691851479804330105410691385406413531043986939537563079717795489114372376318660075850641650226045721985939485266315279172972980421459924514702100927257521735720308716599855969587075610287948274962074919012301072055704716808848103332610620469795080317128739501110520271735768538573603164443926366261368250951406765363310879588437725236403518515655312113727350613574699829720920874378739112591681349098295228644523446236775894846720461096458853471457159236168582117625799525137350326515533133521229299289522430293614687297867132221369244869660648798904174872386426745448707560950940192605974464928644917137651479247865061592524586897360126860946416942689303323803246350674507079962960636613366429943432055254807957924838423447081909756964646558475751538586233464192441848462305458289933008360321784090764570424281158573646839217662547671819543699314187650580279498934456125373460395550070822626952653731571804400868319373583091688664592443167610735124597162918419217302279087003275442645825154341012423345891870828435627799537697831289848440107076790747928102817514961499520069874726723636447416839974932534770024058750324112852733804267809799278022176047094156016738665472051170369793063734439684970414658127051113034236812678570584281017803150178876617950419311565059619469214572578010733698856649718628817489060157437902355051518818162919534678483141438182518131215569441260696757816124205136038627952275452658761170305740541036741709327144079009771902536383953716471353541014498974132541189574974690197864651384560785503732403999764058996485917362069482213044311329058463615419005600016316895405623346593977261190302149352094697486305052753670208688815733068560094605551544161160750355223485627821978173186673395634331918725018239313392050225017180637404666014631689021258576769584799312032572650888818471337300325666696503803550273586394722167279513554459546981170752711836353076475861043037779583767118037323637590147726681044857653994358371679293764203565423551701466852990306335246965430668881334410893272381553396778061912438781738839200086014339472261779165474929717934108483207731716662257258814762375639469857003019766424660359753714245366476144391933307516776159947990933169033627241690651096497172761846709776168882214677205341666862890442327281399636273064428901449382216373257433859924662360680129743904457125119671480911492146530475922705781534023711801076824086838343122244901887395251029668547496378718957692742940251878523507267081689447269988612960603022659164820801183586414430914278991909253797861456555286019814601281541331504510398337563165825020723970934666860636957981690890147939907380218275066141651254832151940365297216143013029321256103490116830507917312503387313021882062703032756309533343348549672773743305273566141745493174345165645131194313756121868355690919442513997210857425055881813978056190796219111887536630488716576768698898299515364424500490688234430634964947584747452022065123554953587235271227452330630305423500224167125769855991775230140702737604425519716814262085666987028114025334370887286018445812984510857802161976214581479618998549932317162909628627283416260692760850368035882264114702680538080083749838106459969326168341018785113854902704850275317101731832124171331640878173999078596758629322359950889823311091720947125551088435290934771465148599088371539938921133698508441150538516999551648064748747570484434020028431022506900062043849917125147937224868754462381707204600484641529111374800802909066816314302312508504522219808813645949291119791179901226049231513697264148808285915839801967369972355566291958994799642410477972006762857643025513877581234363529188315264527787259304936871524436026621469887435896712248930022612860710084491612833053385509972905771150833750467390278554354323100939771256152781981950917122873091337968812175196920079296509678819165882431910891628594586630550446023612224405396359817271269486552907761933021713870194387825567764536981767206429579715593586167265217925903395393590299128701912636055737892143934784145245020837223022298193341505937895628974545305697370237776788184029057466926974888574628850173281354607486410630490592066196195514831201538048759701805739944367018192537499310076753191223155246497972208781684954802186954863583165921614655583322402022302537207341580359420300413670195283998650034653521689686449798221791893459851701801666724034485058936162524652602887512772789065552462817343383567019732305278983819484483479819570617192053722398906965425531334475434597485480274148208215093087018251953601453986842500530021561418345772918666398490048125446608682060749858656236594068930142339783768872179207240742345528625380958253061149644372738170788997026343697548737557958462526326831929680245341051850025999615869520911391289412427634623487519225199415849570646437268037293094848119231373521123346483678524216322938920246946168749783686453458625642164806832062958740936082711389745948986216939867084218574864182892733239669728862393848138207940739610642542515492743523883403588708418268186746776991534544028275640800908342107596511099997747729455552405747096168393808933371080829222076247470175154127965773521800099998580894574479285185251329796665637487221636042628362050822095572705773983059565289505089183735742693503676138047004767300332136401715616040122852160555640689729680921954022389337571010184247650571037794402099465867262799647831234080288270219147561899031153364738515102949893034850868523504760082414156019829006615169320025750248653826283483341029588070020414781665597722256530555436140953282063191426899681618142470396028432424043072136901645971316669253766720926542357653757607274261755417051779763314370757011285321523601205628591911028202137648102197352754980894939848705134178702751291816479922082687742284246338833241374400151764097297170657321647834661381662282420780429304799627836131404522515866882552696525516617130536712247483908627019946085347175701813664869189818375635778462463731501169274038407615167495036287041088870117950393110385853590352396312784434214203374331927190107189282375939340608390076546759486155011110486994722677932500503202333453171356867039648460307787291153424778637153819356557772249013897278475385608282008755782521038657554948984633080043992197613229566804369649301884264283925732216983735816471567745095091217987500740456638753504620576176262705004488535637250627437861322602675364892476068829313589860758039589201051579341595067060927982505564291803379433323316703516556883854907676932907625188234013621744721810164018277892744560048789579858063950093227173699329619304666829319041850860218986418414612748234307843839019666055962495423535659430211295356582500438211832417456268290548035208898157696761887302409233105823274827811094064752064367780571913303280005894564453770773865714567079083274463745715691613896070901604732007588370770181389652704623735368052155166222706568322895786520623259637616705841030595046330125514629242163874298665880318841691669507043165972809886681039879893037815685169126986800350817569895582612602277683284361203677866162475955163719731359743417983862287901779481372729314618231898373533152783403675614783461667246608702304038671448665028875549141876212954531792923499311655571335282243838263123407976791226781151218629313547275256900857130119481558289291221731470761406907915466956201824787796678856868869768935681277652766559369002865399352004801333491189031907969925788106724747062122316114284128169126321608904659216658835790656658221315680828046434466721551870967249681255511123998498183102439289451374708727265087953742656063302559902160645991049747648478055788332616152358603501910188116861143639697855869783811787717195292451558575871707875389713461650768308865614407489886103154233104991629475389401420523706726631541526153706744056349123479425536283538495920912147247307769587783029030134087985862822273356758251492062067229576233370206822698942579191407966212816501081685916933324863265042105074242482536249264751238726809370021455664321866745793165026479663058808804810098245887904845727083079649163338363397934701320208594501865874864010009148464940196420988874997812747575449065611520661388189468922703208081188664817608265953237303165903479312678924939044705288684184362811787416832678590382804202529157360063574053916462877078336040270408223591506005657439369277913129970286134100595803931295857784619877120811728582298783854834359886527292130252385161475491750008092870887884351271605453880758224136273175709608033204097035911256319600584593169618723933368782615015296207295888716361370189854895373654590055375277534759262049716134469969765093101551461463490205802306842368707284520252568268696086493418847045397574851083351470932825453715315697329006765535262809717397646408191713333658507211990357128899072752097168490850188615971640256568008979314610964890086442512703566628774459525548744032189935436064044539485067192775260062350740139734411930189821919690542495968151545691818241325409133070901422337707280664331234243580859909120759556570064282564297123649850908863966154930160566524219554369391961095648448137965535383642506070600394322590753259518275278968720323953737929900962408834102721208450892638556856745316759025797198269538187410382938831216874641415091637386257959619641399002645317356045879090058875368214959751010784432407081001712881031665310413712567839390131067546632057415759964573744991923556528056185106991890266523964381626437257759288107416301290679283596631998475564754764906936332636109269189423035892593775909529039992388280382725853068715815449232080507062585650350323371287183756898561112920231678086639980561987377396752597327521051381678238921640163716820843892547550540155345615011887994358104612516726778263165886225619201916541320044303914093610840658509573217114534170662858723798498553323486851592531251819134041901354029027202277758461372665780750160010147651416502975921012121417789769971115829288331637491102448195204388946501037215380762059234079442903729738001140470096514145484663704330533433977962883351539077497496470667754637058260885009174518563266559280764601450685645509226681802259360134889036409053800801071554973913999656192300906540205140735113458812965223501603225340086769233258759343852435473761489151753232161924212488381228463588242636592476181395611146668504018169678203673021955571525358374048937489814040708390244547827728620483660087716341907193712363514259862754262253506322667349003462651837390400331690151671034687322028659245472536848502287474672748321279119112671517327577043215959456504696341594110523144703691155682023490146777904069667000000518013284112840093294064026067934365649606873970945524081163024924209824791830854584122113364065415565146564757517271478961447632290023511606787400222505179853179601892248587435310082879228015652511984506452732766209534140000437119849009030657768860177502641200125859834343335050316605490492935256896691213995290781711110516920098210274105328718920670058810108090278048011361179896734986694244694117538538020950338623171660261747232951161884319811622089905395798291686761118542738518095491992132694809078569084540091803967894940954265575039654365688913129303480696368328944596287635969591578530932548762596615261724714268064000657993207090125578601985674248131260264326659190450167528529248144784508514588105617451339945040225289296883655594426681459694024756342020269693989183832815961697163886803640479772711583594107511588074052682100485927218114476338777627887973346769849813760033871633103289537972586224617126334926891865966500281016699859155481399793662478271952782404693581196547643763782754457906452317472435674371960221944795794423860316733691455803735657875501319652274799599585333415037361863450600628265862670254583913232808157574991083413653886409662093669451143901250497261438560731119255674868517635866468255090009614478310061667929897879788695410733370474528442783210847279055637520714776863629776460100464634919673738191821971458448486265375474524020735643923305181493320693809240157708113854369665001919574496436962681756929792939137062952302219869471570834158628054604391459751522802133928657543715800695911047755964491782054882051989949545263131372484193195947704515912200045884287108421848350956017829814999160317401726054310993943004734011357929446799636840409194893037108182718002818707559937149981284347680580495318667539809079124534604722739239506125525402420855610770007786874816436428001793026470076100922133438637876072431465725180259637934852150195307422595925491761337767456874232074698085530327723572855254364428338562582004286490764942709513900584981817396710839483188456479958379195454833770678450993833231148320120657074231154940249403893593911164604915483715759108845316959672897956209881200019672561391965228608002227787630699756469316910642575865854959066992927420066755166926444686230009644437368879889301979707922157660929520307679293380188954338609857489162472544710021766040147119124933325618573666090722230720420579085043054992907214007616789818302527969951057571708428462989634630862254625584070887994631246273681113385188132469339993516821751806943455204935494605990051260329172939080368054744832035683397785820046971009139043679356574249761293268732881533988364593630441342463531385627053181693396796763979450554639300624437064429491217106559444510087275954500882678407129855988266722410865065543143300651571946295714948807816823008136598399347039201841325287009230018696785956038819546869423583646587657606743619273402187664459292881475985005647528377920916110141554475771000835742714411287947678778745307248423120806991897009489831696929258613259764164548203456108814492047429513284881318087424629454799724509707425384315431164402725563058579785209707685282412434955913112862015681460620778342429133821604059577104878528621326729944600327139898523243713199256363093183081903407421130548196971265922511092353470020694972721364490995638682664467493981293140999645142106049539170531002401679088515674228042038895523195658037071949678599604781853652215292371133390585386699580445503090384496528632531503295837926825327752983153268864005270918435057819129119118107588117929785448447337676266811753945909035508205059586209261021280231003921732734908399409034910260695512347102907284633864657908643084608157708612369678823643184019492190522260026600750071303080344285025720491476479213649156261764472160592859775615408702506863346264457755938827925441430463885982272892592621332373506480624497138643112716301316937097074646824077995023810493873644938799547222562587013181561512869452406883942787235322210533827939982924155502643467883288560035038878677204027876456458188542724550767563155121738626981385745785310054186720512040793994363913608999013124674573921169744317927663318239015393051498427008936522609529052556282985981214724675301407914652556383856350565152865043058008390009564790268066894700872812633372114505222079306592094688045372718452929439069231770576220580885442486682707136856608744701807612141098809303139775108762559974028268775183223051890193189386171900411464464278888953082673101532895952511619805016897833971716538289206135593587867523433520600209428086924819943977067571748703780503680906651853492791136921854194398429010524834814317517541413309312066539689259319574253510193782793727783036308114327175402108199012873527370653288798899807338111484873197980683683800033635773831255251565247051320873872323845698014226908889174394874423746607316627015530365593944009766906818523516607589671089846969196821681641858119510287323287290321608153885520485087017162825731080427716020241530881074536429556268016998222222638360174234803202552251817151032784962366844323499658391973130065964976946170741498304338059633835935021805584707847491190577672249684488290922469774894248314585823387765000146848702393883137350922628129782002031822761714777170973297955383205075185645094217354840999773513075404438877573537749582201891418980016009556370430876118416081496123698062735879899974145568295678901431914650658487237767904082200100075605754393396360424119675764489392124413247088351251924904867074091284010446271302382513074339964803303087080185962253276612997980255873755876253446570378777468081828198938119464306290915538086073998896714099526451747597524152097170662366303900466069077088787705304386417856437446475022332557265318555786957772546724894525568975377314738166191839608132900168391030106923307441751273164144164996417422116110607684938603542366927084832307176060778677262692151338718253192492038870009645968588039565591341933776383187950525223278089604103924905244257806004659306919216842799596456362255194111314109176333174386968450998313259054072218509517404184548731141867867411714606662664857800505929157148530738042264334060267922821781381864948565581497918387811515504199530771358033817156795325220609812513320633502382829474247480630880980361946433580011503730506050620803087452277635386407940141772793750444572933382080501242054956146148115501856483371578374385816798450880774469490773856321112910883232179530474068232836355504589751024672761033845259724317655828336314339034671343867652942069723792968838394969239888431822069322410363611997123327829775988538197474244181532154860169456446372162282524260408875653031796470609739669563769047841618764031589115099979591656698093455053653263106469052635920458597747180011652884244228432098170767885282892218767540253184459709549644345635385683234719637416241626392415522599461011619274901919770697288951203859675636551374156002513531557337693059588876629512508253678802249953503012762461090093405848769822254701075434005449413553898652663234299023310021948357951544135039491445669676950967752872647596718239605547258231705898080407658494246754047714252112483542282024547623705126750003132425218657179614773410189124013355188902864692828898574841328244844487569440389897664651705141536785868764374305076282344531623962659597009319022752877612596092131504179238288867730337985883207725813213379229181604648245511828587670871980488383149713895415566067322591457298122141579732874450060224570933610584782400195764733982567673214779818168664768356322823119033987847634346840667801088515479388818597973027760530209053121465602725421156059333366010165474445517722870111531669245160800621811279654943419608203196250068076025732897944776096517878381879207778342716449282618785125945553347063767910886002671920408445500029183184765945545987237713101462619067468072096679619462793409219047161882354119542605768023193361117542466244843006374443094090697593885736876648897680210798096130057455093078334122111691242758143707982549159079264922850710479201237842679925794230083485577964481671275310702778309234786392894026399553394123479200008459282921940692195233230149506267806483478578912691466501505164465132128339654741861296334958908745357289034688816283820092579611055320369239527792023616549178826704934022850780101283992357713142198402116004815726128881127262931972071003902597521765890830260030706432533723898073551440110358409909111158002182723482073035074048022579608171169322902148455043085400260048838431457904723470641904663932126208977614898112739370110533555076939219096977591945134670077388506539503165063260508177752910985967252998504974763307133217936365540602582997122986739232712086075443371228780159025260398571181871607095011255407383325413849504543709584124807839845569534041799567290539718331626430316102006901608605673792540427323479936107171630549015492929575763880152736303320012281506199815021524225177296756358563281590798129409084327413191549681504327917832209425858127109973966774376085116145795194398434236425442731224548153960252388215771444411507439188630922103651360374392961936720406353010350619354115872692893097875400405597830970027945228923523477577592886633249026563697583198955245452569082464305236055552657757103398337976524101772927934391971381373856670070069281277097897662864609591274005271617112473856212433684519595292980270260631623425532066886425289670908379583043802199710911498951119319254573730452270847973762219644042736390783671132499827997453083889399255385580702671726124135342115209761860985938676541076383492222084630217616084719108824343689383394775527772886524672357789170237096910328906857886191418777478461275475897340543324862140497990569134715356840789381143863410760240451178898009645881828880964055508570305018011961571053716700078647080744577412623769758922879445663884995623791069702546280425335517649212320752600743514509521145548122342971023367854241324757356124209057239581665947850372393090983273331802354736905883615520565509805700160610372549550631352194709504777848397403654374931836453681672156736956481083797611800537693772872282752224149151553761641617288718032614905706776557937318342673351455317799740904717268346807778186855541275216434016175843964630504358629468683971967918868206681366188779980700844989636689026959079231567193974884569933424585069130283759386016015166295705652766227178794125127865003883484564388567529408878471963851112574376622985172609365935707035147735613803927789661422387144386524135770120370891033448062194342658508534955920017104496511281845265002808446961128942753783766123819488624441144276249506978067901323590669614132809367451038276656233793438674765594777071630236742587615344533979117304515852036702964635799334352086811493068396545707407519305785542884129630584889227440053435385267451058415957180351597560119771835094159987066555372946849174266310269267050833384573279338560452842640552656275838785403093494960085343768448014740393106893646526969057189161115988820418312250591455607868706759090459991461669186380037324891450836583212375669835872796887207619693909010269641422859090419491615610899900034051125471788747099488518883083499919476468027072865236628952440562096283531716024123226349450898405667271317651283695167238655657065044523876509157052984087942249399078672392265384880880815364996885704997311368677691402389611787688294382520623404991592475180884881072772487917343329085194780574155035765676868316132936028154111407522853725550318062187486655822354000622387949129239618862354004820849252214068547717425579779206503373875647238946421715198655480635968716989994557972210169735662376775602188785951005424568792458468606875531268670940096719219032245271650050707302284715934018566203383278032003282371204893111013946242345745074066530096530965552837816674002083641932322343490935212278777101295215274366453439631561407730412319633193324412530535845964443859873580744671020638616383764055327389251560960531631926883293249734133111787132279243891234562564474705226536480697157915802117944469205207375767604761952674103066453418138697042750450618775111696220232135656446569566773663170994621556761094626997470840119660982540408705407615702346507850943704065705527496320284575488822492451563713329765506528680170034057089413699667752050325586369154762992391047000850815060872227173917909830360298569885676104702134412014270700720247039141926598939235884177757235680166813873278257726528023025887711330413592817133860147284596946400658414520663021754132663273025282966446070106797565769735787598615544549237560147744341895473533240666403676952780873005756323777748176528822489941940334072262229222381306110556964395018590842783586113845237560162504048617982434695682517633230440356711885207643774385722499010343633271348695377011813886230087545428867068952128160494560000828787163051789408600832060481208714332482337035792342553808644703014652927013495933646358323747936138885144496250332187916365169751110294754248520512337095342913087239124563244259717041370580349557221842899996939481836193254402431236408204622270607889182980193787309875031936136656141405610603472568022697685792233162179642261272174137700113268512150185845078134346474941722591432952764553723191103558917728005608700308360963046003444544177870596587020612420441466782653578437196114742957370823016070700075948204248629513258666772411519798128149458745991804957635587655608711124465827262475333488762224496629504952510662949439604155837832938154078951401315980374662939102960566522582437645528392784923333572088049458781619869555665158065516834819558380443073312217074814945902728414658347329266335505089454532326651160019051729488898307226378035315786196654560080802088084287031111929862629125151279175540943430025248476132825335077684151283808603440741631676800589486475404528032164885913686213711225519022267864458030770197337628779945536845389318486578987328136568025347125009172501258291899048988650199786937119872359310303657187418708963003385410101916145941642971262184772803766625575825621882796958539086162475517468806283474003143526012864605374604737562629133568011517536158322811261351452281202719037684050479733161770686927816563569197933508339257640152634157373248445681989440641864314267946454569946887506593075233310049757769610292478703574202100690683273890632159415462681504797898015842349443250342259411309826797973556026060383638074010231872888902381510502193734507146737753168906667185850038735322014008136659719725141341739195482921059572180854296645922627326671247198043354479167354225189685430833639448211086030441553242213796366853498005438011445440969356051410120215831082289130455207819117616663597563301556802685384039948053245299146264199709196804911145068841578291276394439377892173950980076038539062509464275035940856654311404155686771756485994822374070751490402132268421803374413019582276583856028601243509319284760116676876170108927039865573425899000263206662747223818493261358647986060563241356095101886576383005395647574095439382020455598557141270638339028678934836006054181019702513942406455487811559359596913562311580496637607067676204723623861740758647985282255903598584767290793135388007351259789243233512601236733021781365855440017843511508456064807001451732390470084451900583473370240211236044717742723370947471569062590715789860101991201290825410213144921345742722349905988787860944374797925755657443782811570273485278455116342487895926557314956177741090201680618630324095629896064817675187916044518393329970436437456484326161532764383974963317767728053079883380120396871081543761520651970769139505982222720814453049043585580415732534635523878393039297763160666250262603255437380654867075010810909525246268906582359323480734139055925572234920338458480218013730485905718872463301375470150296426960746509730786134226959008890051963827204667668904715635530250625468680478898240270051927449495949772313039433477167627667534230610726435913119294811702075986003797409714184221202186712787474793822891712242203193105400266238296699551926965827972240182463697875971635657661933707126310058675545967856163378683685107157882722742812875515705729065743913818976423499953302904246400432662464526048088542316660199439004688826728121713230762445953880119426169843173043549064818953240128473173215773541298764325727759538056255491592822990703326276214376169034970454319694486887719116422018457507793620859836759166786821968440564822108075595869317407153822101166478177278314606095656521299545091149190050659720544632106535275932159808753281156289348640168266346743809278415364807823465812796940386280552476239353745326488742801547442553010620377695557907761451388807968654374843096257000653896493485736418827514562566771220508074592323960795612592360588222372297443586906108560620017459388805798816745594991209648483070985470213400855367780804215457742845062241839905184635087899083458934016699829321324716921971928296387168707300700294129773492026798194310622648381746928524264447957296862435199122912915903677467298346165656199625744605044638559306385141809082280686932028623879478254574395693034259066946379687585565954064848359437656498822011232253164536497906410368547057930547318830848373162358096013892168797548510967121673538733255271269130593111582381015411559705684227998692920746334050319126936879689835406430305204276212519982049034333060239333351528247988359401921806045817292581930394259339974788421732134161574870307080695673689422368383905290147131703592947920194166903915782081267101628661208102455010689208100460433784967784925781771340879002092762274914196499041347671183071581785651765871898691758321341850741614097501306821563437430793916455848133220818312344202638516449063037414176866806899392364105993851743263537990891776373900732697994342006781689066752254013431564189865037082897840906373384925201913428852893105044752261226709305307691106331496161985148661225163809873541545108830754082275968234901346467553670654730090645256053917043891963030577203203750975321506735258069512442883479104700434879819305485326562881155653994884547686456573850048294641468088721016803146165396464229453833275781233995861728756533550250648938337752809228891768223620845052758904102419479883859988234119101572398947812234043249182088160762749059051511088429322585033336872803831023316139025979094369653679591854241584985227266298420961590734847170482137369902956126792090298879564153647735740716194863827996201109240874523287531196242567349294019436955631167119692923172972931597397856928239232069753033268963611235272586619589314591897195328606996957817438879082443536489557369638436050565976786517801198790028492163193680307959438812472474746632110415036056698885635012152288026060119196789236464199872467421286157680726426429200758170282741700777596860644221203129915803104988179060189658231968303678492916074444429284151101752781596919945661747366395513116877661199814710548322658630620811479609795279148865357753962684091316708604428079999993506703704087123733050284516358375893595681902634056904201249896521657590567441366944945126211786664557934151408132365400653175556265944080713951689936704165961376283835359213744820908697120813791846374120630926514599384892438228079435246484461053630162730309619505327048371081937154241613078940093832617417694072709484173714163210376051367310575131929302335410275163521180099940409842859703984493420782580590629590035017988670631464765260631759636722206197078717065560438443946689981092863090428983677996904158810249372035685456356665832372956912757010035637402774291771190599764915674901898560068627878796747939340721393925103706621442315995594732566951582380907166114775493715620538831935596003354976465515056312264828696107595383773011481775498734320370480359631661870817944693971924940419380683469482587730852405395313157826736358577195738597195608055459825501531125613639824843108451450864964919403633965874489551956135011389890466712323054367800659017565373225947814931567070134156295074786544874547812610724420454684108478863849995710698407398242799543730204311833570434553875669938196423044545596861982084394126136195766723696857929499401247370110189897906738383415447237847898136332963722813603515154476351146598630237737835730015321698605281283400502211123194352399770836063882539524030103396578096641346325709014777453286309799801889180697163396603530107649180992239019871059533014169329789582968158820440780479793540884394226370369242194936852977283569598384925805417197248337342790126726884889430508550916018369651765242399328571077937126368757734814605924087339015436314892511429663622738690942386615207640851111281837012308495611358249509195451700036886822692440279620928132388352722160479040520187078280502393050290038513487067018453040596682477429468186413871360462167802541791146752124905210392643815421305252286051503757342788943358519130540225643144231885877227695095085701417786060100118554794110534459491197065145114574401894819818997794443233193825262333896311361327457232898105856570956489093638122780923641677316009304555734632654935208159369940947709119119106757814500403133843726225803806271899872979902188207637186324894136860588291392105377392984550381120615372257250036730206577033619988001640824419592106993044811671764421039584090333291382719930958872714396591540206786239968181202630860421241785474465040395183766049786348358660444924875970099402380593896457152805165575199936799763041115916488821226061452147583868061290939293231707590180022573888497787285661901202408834085526069122687796364278229790875578476008147593277566001909520920336718535834182650879510386470059200623137622591597485329247417623744196624927968552697254615614696629362435760442769208348080437461393860833354408352895093201717636137405472926090014697648622962940349936655179025071996059446383114243413010132341857135992202645738356085857206513837983169123490386544922256557386665564427467463721158879456629555929940749904802198464478943484151861710672389969308062213427955748667289448207625609587350583318099169826540550950733236758298106341920422978369690687174427464983216239528208324474773870682365974963397894626027612217239205942441010489453083193229550163459645614903689808162756417241455735563482115071477407606990876057800737834781906224882882441909406154528433242056381255258067280080511262198227642206262983173787712140421500969777860808918176981811924471429661870685719775327937741377030804632984475225400567272717796617760757337205861135339040647707210916803473628482183021369817587214758360884721942642511369096952977356137409282254659274979110119929433316011201930805721051347056619964311201136461808670767287719516091290811965490661874791068048772026558344858801487010758912509891650752227388091882809734960723163781330818574902989619239182013080014891212880834470069642579588459066616296176176816486245474787492578138402298544511141890573260774982243518654762466405691472025642948899909122951960870322496889938176769203495314782456152547517635779041542832051772914262565452342606585079240112048660823774888801286374025654533325052719022965278174156974530646150714352304169451216531253212749660773818339441241127936758340077756759982910988634750060094115259124866913376708307685870639947417418496544649509632564108866563409647191637590392874319968468297485009506502688688263606224415621096991709626496943799883703057263912829316188719313820910054343122172142540733509879072139967384778381317402436215854051468715520222642200587502249379492618126350511171970347941286147922183269780541086031415145941034187036465576595429959794590813822116878791313236239433355704550916141958161127082066622388507622136595130694675224801339637111021199546706411805300927086514220127100793688503133114105397493802366241031092189686147202995516829860368161856948680156055026712945285333173296992618661711040481509587484802170030502334682831347158770257492180741179830224187984557736639602192154083375889102884540246578202063733533703846705630144862060955291857775948975354051016879637142564111881815917939163399845151513690156753283962440576417876595450626205003322057637843211357948715530326022281097342106876701791839731299711992237712399387463286629762858995203166798270164723598819306160280340361129403365528224321989332288537366787704150822843211179934151151877554928425112187629503275062601202604647231738152645374081679372223591625020542962181247740474738217982058501466400112211510277817849793167471638943796884449411654008011079690890113611964861570888993228768418498766632661036517516325812759709195427478380141515422522117415606510048349984020920210645774480876838242982947891516657210015714936810047084477361124683151963083255119679638742677684910883198922923500359808259859987521501571794406411470161014766622880415948785190820831579197350710116663780296788611753726767086525942224496238097628981215029374794413141104844697839203411604254154972302585572356183450888158967214251765673102874071423920722281209470997733276165932515617684221651727855598867616566421457751867719242332124658031418028339432615327627720042717445945885337130477227437229913882786398204532358009154560874925748017596033177642597541102244704327995172082688681056915021691783556529484812570554033808543948565699323429658270272744178193189431136027707984203231722724105486894789532418560406443738898252216361220145842044836620282568522098812093290434359544868537255605986955246837199403357469095959972070096267597719047335384957901940319307479965006689863955274120003723966992610170187973588155331778938099226100180276866380188831044000610883062189551700809660249267104884182336937582798302852136582673530981888981339202115509725900638943301532189794364327779009867777901730531714727226563723807296308749648180854627789122387491109153984247533275545497554896939620842969594241486395322742938744168340171696426394143866265734080767116433311553641709751368246674309729185958054430611975591666634600235182197100026840616652006650889718311267182202493948963142717830093814271886418338118807334494448670535906175764360959005843186928571567652838813609690792436501637277806189272781026963647015134103263968218015821698040477583404175060913829985334921061225519691855628603042414123516065194853031509298622281761928349920934112890505127020126306543480385025285525254627231909836807053047853534927050452749425647718028922817975448041777100581866116116720207819496698220459008136179770611293453721840558797587022415431397136076255020179357010694648059188193826162307703304206089188801832786452110752980701759803448304813780912536599617621826638228743533148888678517244684492157456273591588094888716040366711559700195812876457994384888307567898731757721463185866285963119764307924584634108830706598531371054079133386233532815332149986771047575402621937219424067381656454086479321265319185109897080825996851958225876165474530952504013781714442164673209534271979199998782364787943161634471396248763796545535764051486714364209597780253345701161882385642880503024348625693341498101560570685778118181407627483514592116214609726153574953545602961895014749644502523693142664218412624296488538416575880876143592441834839048492160011269187418807188940903767709241252186940152094063260569351244069001133538315570239989997702901196428352653042506096797506761901973376704912996805997221363075561039389563912013269212313744690514208656298542557457083399756116673326428103003732042620151024098402324026609655140073664388368371863817753582487295469460425731745753851006864774646077748191362391026872743473576784890424626887392665634483949354978993400225190935077088760651341429838594040639478664331209912743660382299181425517962713704947306313190132920908193267489726675265236211140845882139545010793075929053842702705576527336519184425259439583508502767342287840630827636087716644424583710774349702315398950520243351019748533127355712269261628010300853433072005155231378622036402073302950247212821344568924074481149234855032952645864534911059775546388268752652186485226555253036512941703281174782856147331115104025572906686795500770068683963184336490350264241208894677520507394914862182174074544095321517771004641411853605843105398639135448831058428907646097939577340914112820443481176648435365159577189954932560730686808267157178193755549829404457244367074781245265539213709010792582402749780375312317907972014061051716822349155235793254594936024677666966238550613975702667087911787150403680476866088174234138409536905234097512611309534666473995707323958308252750830706053440288692436493573098841213836317767277759700304307435524214795131713906989755633796773542907017880728327835912601476979940437694876236362267456147301844746871151076981962772760640583056687459288316110485553843655573278638306009382311706764828645982377735950655844181550913994781200295096729055166185181671537812015042273870874511822987005269881834910461950023443918253505676663164752937681609952165355878223359443724803423359779590912085628575403589800405648629519926495377294892565235200445953301633481991795262145596174623836156834641961555280259731567976977443675551076216273393144166639591508943902222965827964636257028120539726961283582386801595537736393822640652971308667365833213865606571232281379265698557416711049112604072662873622264890029126938719287910669804968465625645978085708104934457330819608583523460710449768285977105257261471529636268014028012258146109272812454722384979999948286482672481399166477743895386222143826317686145340295471381804807097996040265474067801738468833890733400703370620141115597331477588686463479212477292177180920458577915052603801311717960544378268617477835759887234252292832347373218839108273094459505706774326268759573353010866180408993930264943750177598626739668746650083731245017002545477367398290882815091929661006217384329072479203397596852526599661890758739952605869527928806598874813286713689491797369744647818216199636331029992467506915944641906932755446671310773182541733805559495221916106265549828616722782970657810699574522215679199736850340276004055467374704867696628712405167927298164922107326447660758110464718321336730312830204158928059761009805216009571754147109818258043517018873023638781970929539354247981686763800527982238030061748957252326197733109164382244583384703643185542447624362301835400732012319960000183397812316543180213185393633808766840506412243782614226149428619193109110808027816105235201592545979677199449489665853522482649747046188116192541468991093598888083300490133267401885527628841502160958993432096080329378926425678978576528126934201699281084202011649195349995825375125300702202902005863830731845982429696564704353200055094140444702851342213796096665846325527956278325564397328829121243156507958304884741815569389989690287734798974917163724903261177900558050078659816511513729988713304574451667275179881787126419654416938944686345400696894361505244443315497319353212952330171605609726889561710549713809923870606993890709258902239184840165406170035277071956636280571037928644602959049665810633657937631262039462061868653998740180039526699163814556172848351743534002763588728939382052050377634953414024385981891247139536023785740076867596052293646526693211582630474784483845762057833512386068376825553335495457579243107052117999898152207456055303063366507483682241329843765244871283110037813903709802508854129547493142500193185041765256923911278986814584721544887378364505429070636813582834796191869753396856570209681927634682804326073510696164139862262075465928372773304593917570271837985954324851271012775644045261374086967506329358461694405322520711907498808795889513442119144846610196766899074387464904887994001673432441413075583140146977368116423735523336462724942752280883700354216541523868292180151222245495809774529562268849450255078245480554483212028778040062150986439395978736677779568759335404631621947598568750600834093267748681936210052873037879175879559084607758322559645729761271751635930708463124614636062328749123808971190130112785015103935035681194857056671324498855711012174014948416622203968229577865205625719043062837531288586320462963490924089487135110251405546624708712938382571698038544617024451530427096682847162339026786571423025966043436598866404229124888085939284903940554617328598780882645218940231954901572433301564881157753765289565880410772929667570015944202996129904462586446088358579593654352406544521005265999110007372520530821673656486237887348672465484373305672134379984055617811416353348088492358770637316341699905677530709458709445540138826812109210524973463710749744851472028630703570812870542560415343966765977258353297458609733810577757194939090427128213162067727405377112630372193036564993433631387419164023822566091115411284177744251681462871207502258933198416923114045311429070382707980801322506538493177083326771290959519636774620305869879401972956210828718243403820110178555476442786367809176568167339185729407991445518526166947823617757632324367863852588706901032451806479208253113648137259674096558649515406671690901290495221172034924862384879236057375730679415149405658053243107769283455088761966522687964367084347647382357629896736030807082895875414379060371883105345608237699727851357472341435441730535664594003361952472369387105285256848505263863665287745670399327216376987788648653334877275838840915674603232393619728071281694145336795976490791128998974883519497893908655529294698112140361577860140917250100482965374821776990604268452559721868673020689787916934090388732269769770932747464600149369293220260319277150957524198890607037991855384756739602939121384766075905350349785044025708029733641000000043827695175721354098104359488067101355308674060636927459932924612979321378752341067005425021171395976505156909990817500470394838412732315322555477168077333090994917536710182397766037467850401949467302421367125364199012330263740012654477553032462423735015528455689951231278913882552714067863286933581002219388829362264650726068191993047648960645928023942095657279509168990966124422121208192408347889178299047238734145304768937061510840127782406227398257107172742189967143504135616607037424114824231398964374732906896894748383137347495804619055779306667460662979466755844892511135473880100949491180815112680980349235036928785012292239219356178013227268571710720610916972058646355114671217288667834631020551219985771048114518834211153011565919252041316203261770724618948309753232366812866118380023762761561566134952935930386133948443241182165030047537889998796886991894258322581607349837453212572184547385891777102687761473925190168952179054937865335411481181643384781418753719196457254707892311890148328997603904747332780783721486398105545858791270997410342949119598689852823388878533133942329918103764019802288597305298610302493503390916722503097689496933539304173856430072158755809258115625258529683861537770001267346163525144876742540305685254005051722662550523808215565052438191900838676020982374343862363491398790381965563292765769617690692391952042002079587224905232024525622127486258844241566564059723006538414551143542699063237543514096593147854190567545168639776599108265796448236976754994439417718509003276375508143981354897448619214374891630151364607062630901143455833357888889458744774769106887406926467183729030621950658900998966644303214274168002084689238410796692412511701294363615391047335204837751017466823362728093203080208158625462565726351471078734597516479327286166421470863026457993406957121925885085210804684765968977050789884813207159204272067657773587349028825491982070357554979018375330488238261684881055244746364807820586251481651531499001338305370541772155683688575279611542846515674435328110445290754251715925261738841662730242321171306234308808999699441842002991939865109962764796620641108286705502458667935270696151390272873899365843030176506785634720095991605362238997717194008600506028602978078607202543112599994560297439825942609264966195111968629550373897316673190877422202701415565696297465892177191462742811202369989104344774743677514253349347161103319322621110605653911769855536453747963383357037673959267361041264178340420934410283042317365636857517076516488266151031049542772719153758632496286104716898088430827860997607350448435232763133431511279174671420791445733790771587835473061694960122239446269434505248591057728326953868540967973378537979433794957015546208133852345734028562369733301153625888579682934191766866158079488362050997437676771811602929671758327710103679474602253050808373189662343781286811522066148793765326028112996625797723017976678605514308029133484793568827342594441772349756703663288321378336983806377463226127360468525683630670514975139364483632713195608826703448540281716392599980958787932855677211175045342197188521686679234969109787790851981617592534272872479381357802664544196625464214563476301045364468890417834883700319484684293525644190451292837750570638752924082249467168990316342198809379248325984868711934358439740109763617432569268404445427269088257587833997645550266329327329287830274890028691749606184152054455892743099970764373580535456611741413621507748833195865643386594628004593470399435458562659562841065594855777560810337295885143965256301850022691882224204781595694874523191778817209860212281558578483076028103666029539087522595441147223991120747814796443089842819281837032361601722660325103274511838613379721159617850363191993964102703065844230913172692741392830144377370524489972358895882458692494902891965058976036864562775083015649661956754492955869200497817159373564668913895410082545665820351880053622825707954187377024483708879269286281721963875757658260738513461076216876869429416882239647572074940712929771218031392141474551068039748454390815182980978350605367295261998259314085784277615740619584788380387699556711501113165857103008775459331695582656613545625989636035889008456246271700751866025298278306958230220108503604785975813881903979000167752125052827674142183898652447881020423642570726368562583514928948925516124362624867015317401279843928605582721421226434440119639421727836661158375535752066506430401099271339903479920840922333663078535291523750997751607788063054580108285947034730358820117947627215458020225821868473825970225037419894204359763646863312787908368777053597862553507675767509125523208643441480277473958576095002350140704408045922447369701534821885585379708019161691169726077619834758903291915804205523067866912797849753645027111374809651668610877964613407106278515634275199649947423651729388264348123566814019090403919081124727528609074756675466205835456382314691025939215999165884902939672625675243291048369643637562496957832345667647860170158012625587796017128463173246412497045621834862128237549978568170614112783336347089946233399420283181912178983460470899433081764318717935184198629388355555396281176622131250889358108827897715482345824419347652963636536943209844144935469868771967294547221298516194018659639930688703652464160538919608335276923807121564878609051139160911426369925057623107513518201601931762560208909465154385198008695592855489027576732570919909255393788512814971816905569887239361143378173719401334482728779684146639634793550729622400572661274317766152225605353797096336544329640780264453178772135961793410302602792088776629026599170582014338615030723918217838862758861194373407356049418984678642591488589350096844264718290434794892929560724044135069435628821696043372118861417487984103118942158675551701693394371657252686092716556032822336240503556615577920300910379889402797358259712588378958955726450890038916008508644496352135695138733168802937920234452438598452445667176451030450225363710715564708447241957971924277486124164972031772236942879660302315222288478546885994666951634054199858804655781860784433139536510367489175530866757919234141716281196051621909016753975869281161544380944818721637007905865929521087677612435977606502075075526328645563907356118849497993667020353891219840511438678548244122384668619850411223570124984348066932981676564220442137249072771018890821856565057682492604790358898204449292853123020980783191126254125539985072201864535825181847271123426656126623146789582217340138798211614880121298815050914348381958769567137507306376091303602326777751157977399914803634010727378067736262153624892350225422828856233555344837368722766587509396163430697583611898976355471445600849624616984899731391868140281857343650593306897756017950290677948656944069667040654143465644754834716295819151985030701337433737623977218637604513442737592166677359859186966382677846341122475736913268184802348754268118462534468073515583844347335054997855919153781280296532161446679023776341370702804380475099926901229496888629940894269958211338235047502407590605308378501248308882504207819561081550534272862028298661155657864697556945850716369270082423066391318402504433573382007740261909320994724394148846523928916304621775914439549858474056811570807134945890117706244584257785475985711606025789710489558433322084260496023600507201551319933869601865012115605606093945592512052704637653530784124699592585085421883873717559433408547560115169188487429403498743571850007852036509911014614195418704866282151094267713551161124034092124345375148332726976389986761971532220315574989097981998147135940953308146771200500264304021228542565005395064727716920533733759416578984115837944351359798762603892449655490961224004525746021172985816996273064095343182204800802538638346924283375547563213742852780740447849467825900798030920345266935733220007613508834339734637169462406664449746188032017170821998449710362682144266105688397289783495231255393403666457578991112338204444653802226979985376991549670855137114619873013682102006946153181127749011571790118778968078099478213932226285284674613830880986569427507963839391589355748313266779096701578087993323595570946887973660157134077581058531372825628432650745955900305253575001309680838718922580511532171594194421367514460212212770405586917000515621871683268494544365774413691680045978580955421246008868053045313358615932770362161777114386573889779961032952702514296858232521793773254675872697741998714335829726550332667877374837683530542093456598564751010768806632470645968257483220503755180797433828545805761026120071989248620065579319039376585916120994189855257661098421336397908553926568951314070852178184426384220473100283820886641383932995367728193549619720956993902374210828646457375449611683020766695335645965172000056456457411187074717927532753748751842572563387518137285435317101844873139705758674060000732340841652712438337689624005471003865678665650965374910810464655531064210036859236434974534105118185251692629917781382170188937516825172479773737734072145410566105454865185159052987566140062787939606976704068177791681029163143149774977821069877457305645230051150715128432276858818228848338713255134743214760970654334541176339656444094276791854494580278680664612081273744958231718034195429404125676081844545525519792974079216083790993087944604754857867601979795336125357543488740920413242645939887845366490648055194839181625392850334909305035522585639263222098929791482251829458320069653272697546796278378413841014712543504670237001307800312770725659253199689797561216792800264003477911384306033470672904432488462713084759204443874303874085668693105389767486095710117625149320548376120781443208172745791207444118988058013831775844243682764323218726225786684584271319568537567231845403710903228095261497381828798123658828313348024111556456960313389627309896355702054070826038175090285516746010259226422292147138582779988889267081451751407630741164718480923629811335198735795104990944505083641382705777867725101484483520508627037050429817910174913051328656277255732677449372746986172639861105633797777904424858392451790402271788767173375006422688119148652634776234333852896495231415702268239567287981471553035364128925025107230041646060456885952308314950634002639841331434302083205589551836617677240951412762373508175169585547642870159377242884299995310677279629364625920204688427389356497506252633528647270341871332571210679579437879026290579826660914781858286397860073480950964923798690651195129903102580399520615713690064120615443288795756954652193159480428877426284275827636868503652273491917689651896697078193549058215306070238170514084801256680195198637360589748711898072336652746863832118119708897951933411393803583740868302242670097749399541488684276059118671145785401327448715191207240092697060451945024535314476480976844953613856844613881159813686157340023819529824953666381165196771818612583643044002266563646867034815848691997487817891611635020714905107163006955497767356017705934146847098522468457037847202059668628652603444268160304388825029402692066767700578704253183202827651002753900396510126356417200071776361551504598306451330342073842827504880081218392064744800465718426252526177185607230516120979759348472072413195348014266253081865287395074709393005458941851443814694968273037660531584389656628248941084503618979253742353230606423944168503826875188079032690361587471770758373615561072633685330310587426326449663552106842472868004144379008745844544130038040177788516325566438091288569855792369971280418984134589980453616503344490047633658360269805772179614505884631467199816764162041676955196057984275124727137454994846325780253701847726227012068809845653955726480234128096191594923157373556542541320472348135959457138417669537005831361684754638692551953419756932169720150065417582142731257453459154779348298126437005452499529178433460726621741773598524755210720065671491083334772683909348383089542969058826965519395599026269704999016847134338236212056299289943460132412018659011280710212089560831419778484608858636907676504294380899927782731679848951952628049735072369327157967312855211570563952221829676422989512198899972460818385764927612893961967765135981864543409227617765280979415110440787275038027514042652468549102036313009937390160155061608145767781504561894571242741567579658522635011864734044440219823551293167979530951574932200329211211868264268685166789137845586265165297652130882385781628912191979924833121237779677583465273694233457155065339806038556766253698529770479463147013909975222075086613337267269343825353238060223149145801684912534381176717975937668805408947136818719724097555686913819906004232474036611776979672746317511657844575214928269460509765375644275859914065670909146487599084779815776610238155161999052273351316081803218094502840307621249303230489672917645400345510675903320681126786677660525792446546028767054973825708216232667488383555609936690869035409403314256196207567639825608924908968272400403012961141357639813678793848853450513641556346493635757818656378720625561535353006952667686532446420043065794034827948950355090682404722914284674057276930502020439989677049814927133821470321988765496769703652785453647274383069787264890555517450179529082906300105356832863334715695904053280759737403925398847286997510187460603713776031403316106924683956078929475748197405407237018626581010383200986914282060908359389203031525589106440440072250572282116636888749327950690793794877287276922046701341555605696473036092330294554409305527077480251651435254882660087253152934779244261198321242985795393570643774840084782172839605367236925514940570483953902622711692193556177919817182333262278982051912562275922200774983775446948466763133257054953344513484529418337847490306622385578998933091719536427563172447041699526203417176867581721186361435216446539337160020735897356514563185574010729425183961040113613561285066154386667136218624342495720968375431697970436902674447634810841820085710151542353377960719080760965365840318308786181178487891678895305239769221801374292147403437854701291787160240154610952516006778954140493221564538579806946577420509829901884718208235668307908663454322810389314155281595483374049190124161401781399864750432986523180988739495141808656506621723966020057070378770640827554560625051582106000090480852382437877613040092040937573720802726890137340337004699029450210793375797634234961112999914985217586624622834994388499988472232881940703630747228168212095426790086638040361215928939156407829780394296366074322417919676728496715614249348772520613408798549920876782913516125059814140626026391476031317503079419983980354611684256960921984975765091536875482538864252795462923927347395523410292494237204173940629917319234889448377788288606722487972383839649845500239774144166701097450838929081926812045444888062086641665971653723186377236014725536111025387465591742993321332263538975351596938037909405387411510408134477069613972587976583477111348504647081367320112536640874423871124850812369364846345090792528987995674611838150663549469939835599538397596946158203421465251523964232715411672823146495291720900124473593646860379362500976508147387858868584751731628623043432183831058034592974111618624824569611567781634781090331807740159714148744402995800114997744081632329123836443850629145320767433710766821681698355285802274004085760674766829034193636623076538673323586759885786408478763075494854758734093582656774262959649341872401647236842762524170652710372675565616633713816459522179672147018859857341311358574811995314563355930279920621604836154501525203973507442968693953879301400788354284899565612560226831920139723767345643453605798029434566320110678230104810326907004711229556462562710716545947327153123670067417898053388227173352022575257945839863613937869610391808634817967359659134919379829629367191220324836780211749709521182895408169282135667649880713028070244338392899604175575831189397184290976987673932637474070995160649158288523318684210829103791895428474356262095855226809956912632683943743466227086621202654398917994074455590688752920539928108517038782436000412188627800092915041498781715563765735311790095051316069856576386383309810956826276244683827273422951884076888029418767007645343468294209394984861087008465452027682440969177935443141828365238171343477428279457100057114573655081737376176588432514494563924402658870429728059628870287346262812564448842989446183744163830716235230457675816884602246662574620388157105536960115121791126366554065728725356189399263166157648305813504891766794404941516872447067845783727484050464309848871708111549512665808858310740612338400965566952132562849451169091334900233238063547471586106010046525055652974244348589760233237132841978402590485321489557061312709941447512981059627859263107154489406700984434062267788511687055142318970002240119220880244945724071828177480422062724662038957935645756592238357458961584427368205162456496003209165947854968892570256583196468414324557062004135752007383924104612952713404835977980623204711960044960207388604201089538806728509150974521141566528689979743741345564470107103671319807396893569870328952077254466565500467132916123764340042385827091517161416012766171448996564243205727761769753008043699300472259156438115278913350075088639129505691071329157236232858113726825089540899156937631786364358866959871034901014383312684833913323296567719289065590353450904479474123700094506401612870976442032829258010873820941634245230595907364709999834495705327986993320319464177796545540451543689378944559704834542898560986667617575375864098867246785314536984452560575493421093210212064414830145984636732503999300847394436621022207310256280263728561744027320164824284129589901614903002605599790608637322157623729504007084096864877654014054329552178609472691465291948499846812754449711927160621055189369853059982665843058126415335425947564119843941483849485001396504110701423627052571713021794348558406481746588219065197309438774203586763916537780191906826285639463801777877882502361966937213777388967833900863650617525519078987328620665197845751356582867287342236308940099753906297957071026026832553809098665209199587554792882629382730147719657211173480263252154059472664202861394745940382101351713502422844704904746923487812747464982493243168725414952523437756536017880316090519711205302383329870819990661080335481746586988871565783907877456302013479241641857407646963222966857554609339621758175973934093870092857833910900998761778897270457103072388600224481406476520431029434148922710549395296912346949890776139265015827768548161126475470142065227774692675352793811516297603578679920285270661167842993923327905494703744375964828934179628515249771811618768636301651172903038868244476664934230089630987046969860981365046844726334511706429721838935935754438402267273446719487668661818185858052100511974771059320702074107400631870335371115696952962062775724251111262280563968313569322233775955724174809517307413018875343997502130463272547752989005762687001246856304250956020441715108421955746583653508661500622442915554556289776003936502509390754963092953934233857756057393283172085698440339304217113280487311674923649021633448175401400995186329365056420783549233915789124141819298713927525527524146449152354448315611957006847514855568760586471487128430737930624541210088938509998480309272637024131783353844144857387394528214591827223417158125982797948797809888379483565704673069761924722813730822280008317376889030331967432062215649617478446122764261852881755603621355850000001900914110780765162726699161027894150040201250766841870476379804989579904368074123810939239994860413579830700508296316283624617975110461243679966352339567265137378693749396384771711247555286154426345839075696369073032961819315272792280631266422732296900294167025043021302491259743813238334953442241585038104214207729847649230306728240705440118682653790999934352174767150364562938481163448492345285500046542896027384855503969514718353350428217565747629002839270510325003153382438640054700486962732941784751725195479315678069580897836977014261996309065222746254401301196146676060328128648177097328170718196694972608046811775537372029190186478437796495351843565676935069200502513252671293669360016950331445585154702260652374708076662135716467978463850002946687809224944626852169362460507563521958955508825901081870559442379216455187024101799337656642406648414324929417057410224579968931033639295130849765145764684833047505585313971893128293864661982941483359782142602870719220200781731071249984348222505292007425545759027417930917846615610440733808754240179116343834048838971830226168939729872628831515727126959826832527795567281225731678678345411989642587478488126917267841196451122063488115744998939244503094003999204558807899078907514543391539998077328196905122180206445157159040285148542413047202005318085138892933197684281476175309111373090063721918789732119198842317061957105402020099824033647047621720121052791589967779199139926459554476171575071159066389564629715002638843817384882372888960446206711186653377593397579075057607957018723477285349976716588936113664757523272675518899271816144049976841100668474219428020477415553851254422038465842707508246259178015783701633090692547241503455023981475519440092416290566727688978933748981531859388605908023072041511326726381976954485256069453521306733430585012352698487766431855449365504558834455946235775083477621726490726492294093201985095399089512033748913399796725898047254039467646646184392411010266482393804167272571746555677176391559811329434874986553931772702801342571842588672104138182807021757018655740148889092207033345991408152732707203770419042631676660095735756381442988968487634642262492893323707433187829857987897769331567542704910863050385043788879143032778365633890269360642819063838650377421521703773005120188231894451121206136840352325474447724199487513209394160069342001697399332769517250959242329844487919145271199968801186413337848725339351678355652325861899002198869383808961844107013303320060339418201215722063267368208636753950355474838496933433300866417999742797655495116864188313880492507766801490602294224835615366009378609479544261102553628471711721855245827646145910454273074628202429449490252989383996381923753188720239594600556770064051450334808125051166978945152102185228257107352268384264248611064805519070302881774590928779696809849080841321128694157190625136856934615242637334262960730352205358522669978340709884485847370365978161064906304272660283057039711381048590135515026635757062687215508853710788873278466998526285063540616725265345352922733871545390146141821428736976987204085039395877096018761732838240905833394970404808170650291106433466765105053184287214027041571782439301403070778670832820674284898284058333916188842897961597677345105407584102086690853261973540759712686386838703543965265833717829983889422077126416943755240763115472445277097066478887198523067024573959157322376465379779408210239183744127612313399372948544577467537014300283339879845624642717447703456645108097367470761293545075895511504619796407671885798907235710238212451576153215627798151158682299516471666208467928495209413870170763192959746323639573763741878224837961051426108016338862750757103440667828575216147961559218769803801570751049006050260652554237116910201393619166916033076807176659782797687612202766055581358639591156096144942829815910542125786829530378534418729645338024687477980517775990366238223823595309272906211854122189729856439860653506084999848782431741517839044182738782160203103036481689666209691418175830543830788863280241597193599028978891258413452831009808906187568579352377508569945738039156085038707640547249555416457285208243234239231371511070750661589445955327569920464277587067930677116737205881087828292367744573840199051223537962982584398519978205583941340041249342248218519923552991288409239744839113215922189632503402296060989685643244822463655247070122064503420091487571055934043018740986410695357915342614925596332408461529804773919076509101975785123199863812922234511786795621889687862287536037638233817861337336230403350705146157985310237297141603547137243078464930371526357565306556856109002821755214831774944397584955054701606538055256327251439351988240756784483073600350323967118403942338195052680700626096483768442882136248730487754292693382298953729554596233159523975490462476907214067327823531359008099423317996113999743846428129669606788800636292449913774830853349451722340800510047103190095780892628298283124144911943614622599447808508592004980866535784555751995586571404852185092011832118813070686171623968348926762759170013990627326693866032597879078029752043154664931964904971646986041390850435241853128681437281173067080614025800225311268009319812358939916011502990275789327919879758902696667303212593240306247652334301291174022411009295219545758605668360246545666460917317897427976875239048734274899313442800463764285355893305510639201200091306734323540569022117492893727625043442986024258123351400920713186625105359891236581534802686799555453371711817468838299902504630816930648165378357042468773460336778862138074985357929137685456609082629869456780855936328414214637455226655420218340906757844131868366971775590093173645737985001232924716173506023860732889156897916220737094424536449711904674585587212769318309811974436308941942151812872238761655235173830929460266409445309957060857911348545826054408341991460154616613661659717470725711224687139856616088891674384363757650771662451923628749237644602459660997289913047658876517538509017589102069622319842820539507913349414785800232687768072205483119148313737031939797769814406375247964650959688388173981499142155706983254179036250754854575102689632989023126404852864075215697852246759482033576929655774959281007953368179072597452983303563870886616044445847153778499530252023917231606435205823740377207410208350375136154320802066587283172709911431381731638880105329554625524694689635839481694997055546806668129785586189348646586441089598141033275809373521700762752295026302330625233509097036664141785748368931644948628193242281276458518804200864243981626878719444896405668770675288020766347478366145558589867215372238442883582320339233475079718749999335619627153345799488169060862319831021823130408696660635467129598871054161247079802301498444462533506291407016563010669206277645058606632941609711966512111711741437065668746937470052678175223477478668291249406633860860734781511710687517082900685919593202450458373488693298818260973864321056890164808676244060550746082073288749010147656057510208775307842916585527494430480374746442894584567500598720563041164762603089304466813322801265755218562917147849382840203433542568589044870397318670419776838252453644433042736618351705782667514320202262183544590827604880659183363810846111854791061697649885744509211389256497641517197919951827083269149071531588375228819023928070063001315710779669660198074848165077420889099279555138222842482511035817921537266599042983840691208118588037892570891437661468267759608895847476661084159115552267856327530229188116159335215608788984410799719935008718050070769709925009615997916389658094826794655107311933803235097784653847029532390162611087149571384029886745751568866865103145016544273678807456970303595235250081250914906790925858093977911636361414100675020834821509588577240256593295239569004755133600040125457952514771905282090263058369623585775124417228352098683285314481381016337538757509821625220071020990014869965313714796718723700739705863195187469648195941838505366020999199065179971797965487512449201093493136554147487576359254810400128995551457784006121551582747452381836135140294128861471252650569610652969428776833880678084004495177008953947406983815480819185050478857936855080490459340662965600993720758957329315531327827111062436597418834846695731613648699245368557678864215476798490684981280756821999947318626386139780512473874455562330437052062998291051153206529677085610676998357768753092768750919763301913119917659343675969345124052822435766218085689313772853677384294132070576514251927572900013726912831954380774613135427425682484924778635643152986415497034288686632028757726043262903637274181429583556518845728025361750874481188550392278143546633264505319030366916035562903664381672416407518351872866294831701572262979840297900158621174243587928562711662092907060625715256698540210307376525126047458436464866094124764506450159353178515109085929773848085186788663357362214373313254005227855337645279678010591624210225518904343327985488867407148355433408067143550988270324553362754285428902353342872991852979433434241126249263128845658770030919612008712737106931753816740840074144640433018577115751047282272009950574673497857131258910810928213895289444933245534654358815388902591172453074618023279227813814420711385738212919995177428328181516844239247594328747340781260659042357089189188812986297406359185191316688603060641070410283681665067812361249525528371866538842133725060142544157033885556478522315876652149276735317710454969812351385877085394856435464814411880405866982088617430160463792907547118782711622823760818250788772746568915584209392154833040102779068686956907169497185562378457052408383124716042648377622647695278920103480801545411532336556731929336328002740123298475690017527970739129300823229831785413417853592629538990463927395863632413398517254653353836652071004051427945870703295698155988594337344455904315931541914716664306883512883734917348590660384095885565227959533237194251712549917868243167610895339062915061254344409279898109973520680654900984227200289694356719394679281411229825010632624552703583714653126652399424167256650933033607130779601941537169839417542475961407760344195869925192287099129977058999933281300997603413088292657651912317480006792224612960018204459156291006364659536294857985614330861851639867442128548754589348285348470138284914390287651400626551067522587072727795871455104999188348949599674766689472801059120003021196876876551744114620206735286455886596442606127706710761545507900985084541185397935460701535887354085607658098317044779687906387826631267862327265142596553314658297147029737686710464453578007878574553724998979955282149946710686713642965849264166094007418605927052429655877942186692580307710670411238650385758084032046060789708194419393617091049209796767138338801048266854295852201712389567302100033265697871390652664555086546563516406357036338604375347835437878435193944702306555756086900120073967583969341918815684973804682684818660208617468622300133592705139867790919153554559086411619240662876459979537014508533537979856429510870736282253791036760473095184604403622409437577938318438287616473441040154728340322527631997557426562322530681165020639688288547355216745542626949284040969846802846481757285623522978329311513803592473476560338513005736617923210397361711376742978826547922757637972368367988807121351949828659724577567366470505170821657224154686850903028926943317249196103750448899126155246653749243255512248963010326881354306814118339419660300386627475134990647074949434688456990970365068724295479568869969207943023561189427780781173363165247556390107590111429094470996968692580701826982090495870272365817911951095319975516484344491799477193879643889254152258110479891376104622547037890969976325893820477719810860779009600543691108141664800745852361452087513132745584016768177227042151777692333664501624610347112358888061289880239806003587503796556000839434060498174519615845301887457726898526782059241748816220092460527699408507796788852443372693952890675747538948390865709699258926146734673643854178449993203614268282188646369920222621621675746606721476962501629807684870780040073570957944323824921136336630917457013886242031020598602353772068581690065690195333592054442425779213058516610033614387910573601807215281179014147808652805867018993723095908246970984796674745734231190983002905087484946331889419422943320692016631008823390973475398997222159700355878064979441867453750120860211099368238715482173764893789349971652902472194855239907887116466581689575720799553243906706266613168132009024083188246660144907349707454094518822483058468217097749685752132026123379260379274108338240552724112566303038239027853119548356271538399348164523688662567482037858747838335272295216289324445009148777344192967516938268598122669873329788939863830325309688138261637930111862809193521737577246203021730030678188544610398605815651860969781286046630105359176448252325617893651502510492112934058201371261265478617350557844015191994251442375571113702621365530824041810073829433629576737849943372732543485767135851469028221471665749577076921635301885266784873154064691878493838791085938696964175162335728434887749918008982016578318858872297128444993746774534830938419340499576404066073210322450953476887460677712926154824441470174389699396530790704721374340370375758078757135549174765356875412342964976028924548523923621506297485714671091964902636617443245097092986848121196988347102580689108612552368906559412535135505304634026303262897315752838207134406926322639302377873766643027568410441547876620447972622053950165589867825678724527109901453681197381522464165951078584142904742127261081188098415430506169279196023403385153638315224909095208756813501551235901691763653486968160899099994235188172837799202228447523508261802128276873532780033257602892236047386972328739666482618097937699420009835205394395167607066871028280628460424047114042372086798731554830060145091388481631320115923961568226079218877642263616406615932022619489411787216489400345465574732481508478987135469909486684956411990184509890768481324890206941626015004169817564262283299922372988864890105683795198940448492950609284395708485176760612770865138805448218720535035900607214168031945420045885316263391098295937679465556059455811500296386621491709138158201306316268555569202038566746871758630276866073663758433966876500509333850633113022396449788848627022977534283146896829177689740792957031618931360192187544238331436096157868746841052894803056200833457874054966003503693354429548841642384298129259821554377966765316563536816854006381583819237060028632382085389716948293300158091921304855134875677624457367323927774302449572266088369146549215235349408772389725424321829852070890788935242102526888923513954606693699045528660426202736642427798271077308870621235035078825895690389858329837260051989816067733249689033929296385064939718816775335162497206252746022022266874949624885932227729366090061105311414868918523581644425944675218390021530780732564756564124030777461727738960333265803693157210516082040720841720308871415804043605966990234729041117172935573480273041219310767025871185255040197804179896083244004151621045152446636696820335060495406426986181475490633757459903815281576930687184370171972071794545394333928999542978410539620771555503280100531469679058391082444224030412159779426320571327104530914836173544745100126570484622576477046903171557893953359515318740608326899689450434551210592463650181582381913764320956451568399736788224202451260809246706034465684365061336671976177166544059189165536997610486182378777199789525044202404992163418910065858911850329049248981202849998923722488738429511284499231625562315087131124457687598247877213265547089066928456025333540869071887067412016903426278581073918769336344290138864119329783523812375697892900096999505997405570369536533082674979296208545814128902864346876117642622817275811844648244646541599773765135052630148967945254823604040728511103859936529652679733002095264107829727037717040994456689917614417010376644429199186854662492377274973454254402273943562989069979263559080151539421136309150765965598810188703543665623072526134995281521699579590919750656869723489623478602121306306269913429839318905242716883696081785012059820671796314723190490281112918551849208467655652837034457764974175188973944917564092633445942977920371409151030981745369407582115767746280743797229458583817119929599258527062702379636907835157223707314168576660684249542936082440365495046346130523770810817132793303222747951721107839599477611827133653995099191879338043585990200070327660439423132065968242059549093533979719887791509532317466977851067510507896146873000679960475908075767965604269872191059429978412570384492593969657151780047730073670239041905717928917951056209441179647970561913089426590200751850458942579557032111171485231532953717113260579918799952415504889667889032540256214639355542240339299037383947077544495836655381927173008209709167285771073567820544785715453346408265460020253135661695060987517209378777278179457982804553705550791495947881289858775703783751861588848825136539528614424651877096176636757715655740773739883453920402178645755474835097078993215648374416174979648133804186210634274455217158326057141226444767779217857306210554631750236293381439074577447619335051319452229654157383968558551578068254386261047979270665579553392701608975509858916118711818800349779924542503951730317250323981110443522283028343945851598415381479986291945186029431387734101549329683739195226395728002358096101743454025315607335006455952538941305036885908163361954045733744071916825022510559120987974565690488532579176134497648846870276877074006822901330657600628148855092737142005926519479491883378635653823262418387422338998329264610150200702318749748368629431049895397725823579659649194294351667268521101756919463289193761254986656731080623527646986520755845803920207985187832216056667761781405955640068920196557420470605921061961818210650816300809256681343328088141546800634917108667186880199542381089979267627701874955436231164651097879906411265317544800652404797019426855788772395685332002360267896097625770451877491723764851164753582455818616053569711309718740312437261291116899352873317199447010737684949512801305836170039684149051841634595803688799252674572433682709571829946073328562968329718689947893068549664122201402571982147272933843413814594343666724896803333715821054996767347299787994822974594303621321766894730877282848167930099953063103465112537144563716982740883930171474627355050991563427459126764133482240102028464433321888803486663257844264720987347024843699654037119062929514827717146220567051047382946348870687497300914804956491153345702988648260641327785422315157245145730098620399150924011914644915252918558918551351984339671658473471546099053970403573032031008834552245236499501588657284411479191895511827484036716400505417529340609797182841229413002614175455331182053856545427658880035297869227279171791444228729818510303154604428161257840212264485077024308638215236239655985462418480881647333638121989152925034114682514281171739222049874695334063712811150513479809404360285952343121812737419499738789280298097251270106080900307052575409433751243455181860193547229149299859697468903126892467748287743424095122479148234030302523856985218011827335511340391002375438591623790624229398918219960396663779401682131612608597453304311925541963976130066005913441479889020626952125520233384766713346293837634608694882235979110017451271368123895441543034402097754548261597374530316774442053197739678647010638730141365748233075933459308641928011302672284290229579378167312659770078869206164682985496970698339795809761811177996384921023378801746788243422487103561645385021179565776127429683644239991836746692594298965697158063753073926104553510822714097769826900944505664229178103577390633511444822863361012724470949600463800201317754728191945379141600004014447600412033576623779931053682688511287534430780420453767903803013774485353316274919415197744042069204304423731837846907118147180594186494555701019483506948198847970038286256195506858285703058604107292916526154507111649274269800037179035947080851431537330397072933165337829838183292471064511610168160868040935134113965391561802503550635241811220910419507206853648985466294716733083182184178842466331842124238062008761242955269183095725623067037236833481154497870159300444856712798394894572637847604294338121470460399416885865596263282468110253233980569995288756211054605751682764061408501691290139973480044925918837747042653557201913075924312499656217376901859859003001378167013825878564586665850142658119676970636054285775193079559995170668028796925948854621001374138438492986631402791166226647638629534090673014209739410391840167427406606671405200744241717866787989166289699435736249318598399759349619119422334400242355246547405049998138609965337501779186357120180639690059550437278920138692467135863290156831666100238049998749380340518820334684626868274397314158107742561540132473379823238586427598743105666351837254808859566337008350168587618999479158394034891572957015434739554827419628943599950464353175963660253544578565094739934191274118569670212518439209388056980845445621082325563824801903574051335832143608918456757209536934448754684256683568722215705592986225714468303998362380859283369231172725951486239469235420862380994107941697763315613722427689727075070086442777531837297576095226252629161002599357414520556851026361918599817359420524281523454189599856758758001002504252733709616169579265293814153690259426516885010878406694607074115158248914658918372408051672627367444030745602449814884960896443268567231480761875144857037864450099888376542294554504196985819672981024146893464129611033039264770533619125689682815872071521844003388727733346524086291472683091771990452214633411514980553776569959812678470955211523678679838614157406562797311698464954877273387920195469217429064250691857454717520469969749994119830455050624509867091025641787422820345032213425314961937069269354850577976841713529159907832214758124619629397196426842662308242832053424082563819290586590629986308544120650898209111686048759169466437131543259962473314279645864906900958549135546844403321016798855963113930826919286108622274201633856780314384482857367506833821718751119456451804569540074865742589170619771165269088680888648840547173287232973769186409925196683451819948001223740636174120458338519439670705158973358711452990734977429360585235196969429825795043000934060698296114300163516325358659806053178351853436575335140236864255535398015149953389831654106104421098568289843856759166444914721693940952510207805544636565917309879910108108677473489671765794958302107538236239758612855008451849507092218144261532683210590568572560161616640646235097019425053873478077339396047772313104684072546247703488862074802712533222566722920692711929410591422587698402068532242457328079147147354746376517369993239437097036541450485442327872556918449365065977624523373635274908808303505100090031693927325799542532793216385646398958178487952255944609761093459446999825363456336219985627766954199147733715269614615037699363776402316320599295352131652852613539944852423379374708962188372927069835106074522537132032869747628990191665130118960170744215240124562640593502927749937114034546199097742499360231571584471802740147394282587834934167165221615866291361763750077716087269881580641185623882350450227121582027871602488237415894805724480192512636294486080082312694189090563367213591570317233938301986041081261034449728533247055188777238994950821883414290100941511708658367082664708794843190892753788567718625782352730649277213412476124332076154276488361239771888893644561824689382539129965676277992099017962838290818054289857270743169320424389803184253123659929454064662140227171743686610072287363284244264233149019189325194872160857930121326696249874599462254419450454172466904557345552016554287771526377371646687115725358289491153534990021109270475756389628571918334999591686866411765721183969453878334325232159430481370564234944891376638039928032790145452093483082246967085627701030007716162238211613923757720554588355530153490481062864704272095415836974414520196443385778059777857119014150501702234647914658286789669367524063892544205732286165773185629852179645965155159592634029067093034046217853086711917727205699685389672292275135632087730846098610361984285252562808997997307727222276054164225630496603810610988979530883016328701708081287443237663644149523773499863713145143296250868909040231730410654189601743737147848378976088843066829147066596729388332049843552665157719150686430444140758338283206098023471143469645861311375166940130842572131428818583986593528064950184045708808441011563149909699460295599370142090068060388202032532853218614233813834189677441670375400889640206818503965515857505619768033268192053676455398685661692848067545714381665676835200650979000321057521512174495239902758724510381477991283815996133228150756326326333994933584922904452041426626960662477804794119719522156910061764009715136120690723066514715973963522727924834570320354613882855958685270302243620264561001493333459874932397384201612167088177544466342700237433814636326707834085908013964978162284305929251910271244846752444916919429017308579294146941329865180102531080312808975333101347674876066731405512911818631785171985469265566519669284577209627557475571698766189219029330331993773028771275229233562867590659328127888452368815510122057405431255031301641916473406247169043083598454494928975739337480768884234605076055780571209362079614884344290644051160491303704759509484035048544714245112863098257096326400266546672552226788216477797284929942762901992746681754270184363039759536819482641256353382695069530331025073597175640005289131271015553507016224734120496567020794957386632191890635824268708171356614132436584200764830996907935853823091597905950549771073146235860315412494626284462840470387606947971543123413494971071864125161806394647912567479158703811595844122097143424416565095815301180096719736401899366104189802613984723700585275226642930625052401664833540480751975203998436701344875589158818030910438633684069922747213514677256349635385176631628880965572482409380017626225309070849110962600768053762598615690663699410552863200531216998824628898772609896998638139614758314875876130319708745942533197194144613725946088715930378392480813805950558995501059845579838575555361663400428881837905105345628502855215579967889072869622671326740744801164359985489806339446651813636239786068883539590648562101782364687376364165736646959885968757746483548181550274745510629774853140387837290007697584806221137593457558897476795936330798773234113050405797860185204484542023756312350095397051569094254065855411604391580755362743253115407002722016748970508550541855731431489882088568853260328433411831510910030742109238415513657474582144825258816439029631749650497396994506220595609343897636295495563037185498756081948867390529185101465481729905084521284158968078104732004311797589102211055681261122536438241506510161761350705690177331238460640174387980818567365072078611811954376364947915582329313082360348975970242204998357761260023781380081883396391611928621793066791282495829807979158956098939867015392002878680969853752531258993677310320795005506926841900393403008521467593940262536293245302811732800997682519635334965823857054404307446013962435271541849721627637792006466749958235351804928936775358643157560658132972664538123457176872383461336631399033644806598843330787210415132912190738117947269637212790704040531594064122594962053654233208706566009718338965923887358504637300622696906383305943397700296892619219005498655856708321532975050942633586492336640562597207082187650246445119149036779861205037050497711264733408577587482590257000776017464783527001277536838410544713200598959397648480181149720813344404365186269544231127910023240803016205381773129343519776842383616748944961254607322199915078061130238076177408820973104862251459557530970672088000072572348860441796157055025460192460725133460752755732959036798289462577318163118020546536487346895376202386960774524752367933572868321814234326226827272019472470242595245414082013545427605713476086931310125316050954275213203590444904771292358486112165347511398131498493085469158230229604713537567738999612950608317005303047178944694297768908119480586776094630898064906803660866915078813991436430270549492807898719373067187168493284495420452188984785627723536750279292589416261673953344785662485492963433652443563635771730884516724741631554627420014623648339768298703843229186550383910799208684602120227839969844849773334356978349671440696074164243617037633877209837523866187450062290742718918192541390867448266890535709821744467900632075523524071995331309174823066543019681839265068975375156263863727558949239581816409768816208066277546861793633898709509186049155786294633333035313612648952270954150310475502473585780482972281033521780841309619485602316226887418447236370320256416092181583254484255599482558552770414246036976388556168861234637367644870456279112662086754394345388051041898680256755924414275924667386610207223007570334794000550622600347584617649507895080720025963519793216417345105616695011540052626904097805679080914060604982289715410898790481955450558689504281360368324218050244641750314759077054883840088622169770301435881787023951023743197076095312639859518841929575021740317404825015823142191344435508277049322508152913968112491709097312277529548408635777408559925279099852787424466211666950262276051660543225554964716157978599213691397145430348327987829854019646578105585114381276034377550797555356930875691421090081272445943550923418500070456131664904370313612982487167699681026437962325828903393199279843241403959678535675188898374988776423646287219274469294490659775211665426891620324459730409426656875194291523605636811825816888493089488221706262286967646651179540214019291940433249164268883111463110539877043301658939509864661135221033449463540519520188316835208969478691383432939073570595775420889306690434596080638851287139211336744109550957210447686342931467914791818628930438099442887205339960103393698968367713930987674539786835110298982226089152318176564521440272337412467627377781058650654254947969565309251188566660515091891416543929286649237004807728243040985111141372550631486861275371507184165237086575354121858385406308099507736803689564750466035181460057994041358363714844811300732452362336096990326471545750439043948121554047712127790086004320561859199678615962699365817661394345654852710350885735664973634169492983775617156229228211507777843051438009085687947018450400493257911984293795138385923505640102326182092842803851357165531898847557638534628923539683747693560689854496619454083756502288092603395903008241146406825441221942053255899140205796882881622198466216456648561317741011586166061849830221163163114275028347784985390620679029098873526740882677585883582713898951013633007634624142382361167033237099289613565923932760448645942729659944511605882293617796507312408383815582270047919077368630286947928283505310375033152343158493722120765429687095356587426525490178326971667355430936827386899348643002763144258764781920338880477010578085315847194766078687485810605125836518950842499368298113762131778446459494274982637991400787483568860864379536555393333083457442280770080900303921213797762815430805808937184849552465315176082129988755607851640892619876704537337240464022008641676760659337062743393212827931083149090692868401447807318046287184597962246381688143159603441322060930019470424811909183188791054574745218102898649402689418204138944627682794685107835875032173432047035021312620483688070455533040573638269927583171379771310069081448395068082822951468403547651080028097891081217438441299196528045462548613704397532468999263147810967664902490024854636248750208479873952522636648068354162800867827197525207055189259516525253231428194525191373647208896041718280279038689453153576773209360011829225066625910074674284977419934200251161178031369797776626804537714099512896158109476526828611161910852080361227214196122338806173887328035382543084278473645782279736718996120112690205931023967366419010845261550074841379544180819271226348927245390190968890879107033718653921019662784796905359904767811142183354469881596356761141314352112248249260776843033071321672494337081266506700558273577116064953611117087504321437491007100225702332415406229912201888268691007723689410905308538126264373025930074144212438213346035850521470036143841683901072639084437590208269153613487114734768054648657317479164120100793798449654129946005103201349113649126524836372174268824440323227153725301434463250231248887771916660725772966986198654289670382654300158609037740357098267607600521443364721201334879516559861041547587526306394007520140897686626265344691875852132659669725732976821320402960767171083250222056559870790129494190432983287221789259588956560891193640063010928502690627239298369306805467367556546624427741149796156771680072527856141639959417115061683149746526216528768203005889748207137743365796109440957091641747788588124424000786144562420584975669792513826333212823367731671546650045427198014413474297073662183750124184681504356681304018151936136505645172370829240228452347332732108678830993478713893482815014396393970509601086226620932737577370571185268260463584742142707034239062144944049342223463606359516789896568550970227712153516479557332569705681296901713555409635220224208651919120321480694267646935774506820535221664326017601014027771192409107337299226549200705367403784976651586789421543733766969620864266882403688843532746347446097992367101851175473862074100487473510926458865074247251190980019725060855899093775995979014557857372702805417781014918973661981031955340098837053596201542716010462255145908038882203934853913912709333162897378340427401221851116444060105383007325003153468767935226251525739530813447434345185873998852357578002641317114153278643267318844079939332779209869144050634101781487684888909644433069310936941768443808187050961563634103696639571685122427870218116228439195502635755634824490003480042721097774930577364140744352454852167552091934645142861824792478554363388473738298103299129237016727940703326117541658967348667599470409035472494172684775775639137045283167049208694415096059728793137816444390117406604286022389608373689586561493691226430546707169677953498052469518737310899918209495998815927582572335842008925770909988087198869597400228503072008713572044134987250677156010358562263898057288640753033388194811203206767087280309306537991280904134307032537215150564699312169035471641765885056785617041370912191792002731762583893078345735296205276166705325361380400223171417987060231142533165208806458497896973670928649301509688149358823371440165285462561504304398175071530423132120939878838840507059361756772754837025344276939957225256938664002572469337383722438295337102586075643015113322580203984017474149464204835884086344094532777294447482031874234486586373095691842550295240748151912256024793922458996720651850526877805898441227350100289558721455015202712069360441916905534097506103150693271260710329534369498905319918270622983915794960810346483953757844195123965877825072982834103255989992320137978718288918478194001755618620842515964758525143500098220177000378049400896702575141322092822844167185759733841739172112111948466318423642493740654523379250014673136522037632883612266229129875946110788035623715636295810432480677655184114803606640495457269989588436544483876250521598541781020687732594259591469894890230168154704502299519768763842823301802425077647326440088575805194260613299998478339181901894943589030225337377824837928999620814874105263190208816450490223351446901833729350523504603395536012481238274263547297089061015477052236982587318276155807168197174252853565193170077919264130320164274198023490849459540388532873806403877059137060076559591951316664152513772337187780218948181508384796964643496928024576980641332583347430007116427984623441434620372457485354122183255357333016709824997014787279972906461248352386201404870864301636815480098742820516566487732207887839035195810840434361066347269864598111490974550826418142312343585208470116125082815719104563240068718342309486704283471964507553510468148730409554538509635605654295947906193025338385066191102565414684031641873154198774377096423770462102369293976427458424603667729430657769800431422470812292660543685092062533674057227887390374288770470339858938793733764303249889095822398012569791007358834027007044674475687119219692461091206093200231646133693422971414863186810094559921192760772839708929670075838060072580347416910715354814863374247462353314175964051326996142593505416393019943378808867402422804477283809826658165530110436863992185670013676999938312445714520355711899815175224032761119544999737109234562054305409755950703148608186885654495872174151456881607541234899748659256543320823669595593836039825684630628833349051485015839643680215406745544953493879172574922787377375686520295596462408949923391690043084245549671697003021784115132747039571279020117965331520741214971484963734232586440042264859966843980814082903462725993748194747123568116281585953197762440051409086687930753090765034390312382236745173081209025405037739167899411307026669242280074066286399480018017800439561041976853003827230686722978425469833784899093211289890375297940480418757360746295225163162139585789995432747482429258910473778433852948277294725320183609602998422049565297017958123440267448401741726552265700519533597034451258155042517480341586834228774910498384506508168942955423000530177059085875841623145457341353909832538147579924732053369335015019089014874889674851230889726032119781138948643755600979752738803280786161320979330694149261569284567611346119613700797327899656966039971142386772610260354015116145869116385375947343881637369099701711499890805325269570032040336816492241922124119488455308516873010002831852093305438356635120613033018158124494406285762623672634508180876193227852790258853830160210329659005813160189083392357389721606164009991689964106070401021138298840488009765922136657210805311169411781310451952450964702806021591852723404863217476110916703038714022690055821032014571807214829439841090951371889320069868936891156293389842060882522635543829064044850776927174223641658310016070149727005685677559984251251921734045644394303643830843280603733690228781456461967750444599261152527664493226193528888511229301868325738253634938446937898090559954403012588132157094558712477179658122043775583080935148931379934993551377224192878515323015989166218169872625992438643465077260270978270449684610989478832586057638958164425769101819884497613052200248355946470391700929518660121915004188429725196301533035006370101515492704898961266950199003952622233250079038673956767727790861978575136755160979264322097810182647733999262038203952976040850229689755722101848156465683697040265063067266018267688362164682148435004850414414652439634289057167182543669753175422001600829482361655976482541919038367107013070834399637867709218295829097117034362037263242187984231786775591749670335722342816634045854809209797801395548887639464716052961980341876521329446744601145907316927590007561885418237329727688531804302268768801579408027152112527864070647462745524053699891061525555466670569739773203155244998104801213707440006748968624773462308853477554385797033057215801391012667607623782938782370989796920920224256881671518471717861413552469503054847756213590055332820153802960805011115608161002379596283169883385253937815650030899404393354202800935131237731824857252479753015819387403649365152641050192067222998485622477209304764512314855882520332640847280298741121241546259343217150487080626386627242886945760105684462037739197744762703038339871014342218505424045206728945040820040301368624717123301027192271232731368470421470926568695917045275293221927786286887791011568931216623280353016581046304591689533399533960610539537392674515931615611802522192979210017930075815673004170618017238686135412842866193717718546672156811672391364207696407591126456553393028864660635291902587268739280535170103897864555158020815273362793363185295186270830852192259823273185447226591681116922504250040895011467817769299447142769463477389953901891505588138427992973302008337458007247464813420234146935138558542739981004731714818777695816323593097812044431451535416110589364959547680199254085555170601573871025458141089358843111023090317442688514966990213206706619806325343505911091444055214348540266151278959165664721137541671873699829972130814071265099248694921747976935057817756886310004731868514326865728593321824878144043176058235730093987926732439819152615712405640058507940575270813672698720677012458611844168163876957793577998979242352084875334668083567733399885652558044313829629509875760945601547351779060373358568567407332079432881862701937514912320161293484775062466227363360069956390864612843012838808457837637347602163635057139863656642808240921511452371938176831878574089900412827373328482941872646796999682372984790356782343212558312650845976663229915751505659648174339237477932269151455452314417238938946030633980632651313082512632131313647456253866815560100577004819243357560413796703075413624276618485952712209873377800329965971599038696456188430699130225742242583798506484754196907614487899295595654033797564333778265054459798659566559456013832611881081659461937790520791047619097818088097325421221084833822158772717837421813005567496973896728953163842899585913729975849808787300976100807860828651761247256311236953038529498008429796988557729687382564161728144181388480620333594677852197530954118837761688529061490913000776890705223230875634797228227906961679660178488576285353453466299497411552014763156175017769411604073725534751211080317306346392890476348061938445716674282527780316182573177102633887468486190873889474982912855905094303631009939738130497579616619447529361547734932629742276608973168284213341621143325164483789183176479191809237568188137285211198129387528783807344273603604814340885967105209220422563298875740999205318567368155772923736709426199259458866661957665981083321783525218851100041435111542257640640176169705409424818024413375245477152832609914224314050786087559967878509519677636520725924882573868146839667436794375419213069970209841209652513456376989525689698790434668654368219538937525405311436613514190415113666480970647085954917967188708441858241549248230177690686637255173494083832484998941817741806950402290634988522874078504100241335884541435765325535222095827169259777257853497044702614731251844516804730756710605169681050690462649263688514006861983230622140593744313220185174554352875605649160317050814694353206057401608336112642486644041537799272752215214357960460972277158234815778533906442650652179242772324322091533017866114820601296633060376183857847480592965033929796188314579623653358543695773405203429857570336882119290973385583166345050854272065621822540371482397002198620933076304285685603231064999006179631367617918225371541241754048432052405844189004554551027618137680721982924977276179949202747372765109035351461343317525175368240560580655470876776541655321392903661656709075587473999483562722547785802697663878954145991699027623877672502055984058129000207720755885006083259468326560043346736265938901479196648990900053972036846599823784431132762850102521673026190664151877212952328209499469261737597052404726516114445334688550935983866693954041890478254142625265173434972975131982984857497638067195812421491815796580178936559279905524158308207626602981089502437391180178780020575549172663462834859950180374397023468742156509196890593814083670519551458268403953254836682178640765669713972279021360921838519921763368264195578609432590321908031242359536752033265772729191733806955385239721600042708049020269910022078904629469622165193034591377687501044543763613488272992478771925630121640964986316291385865791648282590388939751699381712338369773983023854276682953079468508872477796755446720239687484424086887415849059927515809901754045773274878641095790311278576163950939296432145109928901906118209912861828697280952936138772940054462132472632863798252617471491692773303769256845332796611330595836888337667272952645763985697861403127775081779537194439401099848571890407264125433541122568240739431509947988294386384769935768573399542998555555741795236130762522870379577606848431674779112101273135198857904953581287826791289764633223106363290403056656103735549605568898035799921182421582753285842244341673410026302606006360640968139006232897898539786963483334051751464979590277791859599602119347736264641536018248953916519642727879490693031618576112516424420752625481608055006590714226344701022632446189819587453664077221864345505242326421839059667549457046891156251375688472601286205847385654755850919034960138709011268089524172900617434601087016227262088578000696305942565371803017964113535729539880031491981710277844233099200843858334559277382756840060249325741949142139864436233230904831486284609703751075596406883292963057349800697557124859713813635943437403604812286935292056348056868767533099036582156659324967599831062031568454816681913876017478109569958327294276406362199218126083661922254522167164990599942699790155119291857829972823520927996256359832258121033790575823918475556700857497427242149804689775581858310708259740412050298663980423719603411631427327555906658487418304272204974387344265054010375491141376046928222300189254491580952580541217512473200910748166253284115290783297499848869724101562374235415086821837681644958014008056409014798348476641288476390926491178711934194674182175265198105002312784015737670124965359232200320614872663873589206078792890667563646465069507452720620504617744174821508828804209156265528502217303297585699488901506851820689073825754664411943252425078980794004358040640058604127046845666642599340522061251584544470823693809827481959603825781198739707135786821257037091043902134017817542366659492489926087467791439456209295728260074216340442813419981129460396210046850662525067252710227627631719858296844392862023989069748329768337562497801751422470211863475691371489990441817977076160520276409243969558970809567056264620336786955293495583576745768888449887305965471607929349047067527525138924043644464641983103475298655262764875143953958572740564988693782182394330652008327667106230882164943103506294527663108129833816551394490053097147015447203356966804300340502054843904668297737684667633167252974791385158644422061481954042580970329207992545093355889865852687699841121269566634441257046942870231590430777819334296912769625731403383036394667037897893998519182239496812720049177840931359224388475251619646582303807259226083821429009281915525695162106264169829635056599957524448252602437843286795142340846466491584301216140725065489133241086674978465859094479135652200137200671706546048449443214211337646781616075115608079069042242803304315647850147269859387377549274180413165887107559846182001790984084164387826143483052873558460559955248790312629738303790413821641866313639034003963844649504467608117836931601289816548151175264816192193852762923164121180911140355895040531282786198393640087917798093125853146188612867992450121333868845255364343587438235893926237177618015935699225256903237087079997908224299281407380722382585903227789561003010451278508439397973344137722873457453429830118122053254662089205357893985028843787378096644623228331266647666542732582886229428533074956331466034962204223830092052708341274835681189395020771632287918832475219171812046134502360225806194240045157324821266060148046177128766791690020277137002393100894876813522900693233378538140912153140876756102844647141816740780502142906279678605608404227322708970510174998325218120146715404070956259003455481191137403309924500113962002301030806494540052108279142605688373708002978739759248014835581752271400379636519339488349706292771039305673284241827617954060907444906145904579583202483142660444981148211825910882016189258234379505946508269943873137186432663188215755888652284938411536891376916027122320240920767627815750001402392657676119352922716135389411695401690743002017584616480034544175340072469352827884548999860765717050049128747738207909921378457385321315333629312224132257646860591465075069046432333843731357158987584108310594147461736902944925588882604631427011175309018998814106128307435602605315079133617156291608340453036271462512491902584141344620281123585149547262016825401985529330687176494504413383065140069590242782603578346191947958124251608356986432507786136859514905242849371751944755055714493283297252285293718553096022887655398592707298402250580181283125900402875950883322558860030401339150250032735558179032333365278977672969933370605865077895264984781469100254072870391062787845536358806374906073757439314472078015840443187257214371035712868215879274393704752989913234821495042614383170248406276905465391283184033892889773496036017777397422788162712029264275966929902230036360396594537841690501030249313741437780679671743383842948785052256462526256926631246842071958393203663070470352766318758705491456778796806505790353937506411023523951822287168179686300808582679434257897054750354596050535034001963648692814952674651934950107377831220547213050922205672473039524327315809154854571719122713073953531297526680912367309561492426229503386868725014251447727239420043077382833918634635090242529523891847801131254643238250956757546176312127795794150968002731170898792164802592797725003004616134521726239848368084859279409971315329783631169448010054270744047039618520247299956429786514113506361474895112105786275521477327639757383889454438332378358931473028878988887450984435083602645490515124983910863112752840186386264784763066304714892612537937102413012578814477449845558789894064747198200084854199736688553509229801592914447654951413463486684116213579358848616413230213594378382842141138687104448674263836658983208098219554839001044293366686095992684231155606810718098451296582741609082854459325809056051155037685945570826910917117466880959782766232462634705864238948686171116003321710740861339575383623433699580119141278936219828568572235707853381142927823617545438380504094494913362657246996673545304014307675275310919938054559248022999278955562545776032939235557261661009859696354881871970253096163866242259560747740406817463843506110516677945163682687960228811395974444327602823986690860257363949862926291525956573010777692698506250788546150326071940912986698840085303122697618794123150885157067816255518807504755324859052161438654038441619092759648852289568902346306649116630381687256396883679898709348039589809727291650588473295331794510841170649489398784487282404826120346164866119696892646290610796216207255139301333405485832828464110601331796634844908665697191782944405283719670256865296615402603571474187090573250643170557706239163687071468192229187759981804844184298448661453247901681091149329895294226069400602604530490597551753840625655295134482168685949093284853720593281944335186141160653996205561123518076147424882496362712623707326120509045198560778099134630088922516552615383910156752425763554078819228488669191724095046699598897606607129183716421656947203479380799904328458748170066230185730352622620922136071223585751379427421495817289443872150451228004844784597121983899771059538139434007754673352225702908462874113936135700303779735093747601681484786983528548988685117478855717736917379111587255284402592577651293931045870168436680005742062672469236931614812376202176536922444370272072213963323958822628072049226559913280832958648369447869983758742557460479763737447691892782538375478558288606157951810196109242019219060961221810600143283567259890227192659714059998994884535964739367763507984231730913385411988160261175036463881639944129022050157484655297371598204066428951762850609138071418659959529003831441936974644453536321732364423560465167139935661595767201183967367475768826024101987470354307630609936950877567493190630570647186813237461965762981188417150208130248388410362774325804169646038061023279714661007996316357015183679520720128443956560446083092301551618695605373883159457595804491334876990587963505244890349791035907081623980725150292332467806771278350215146433915054689994140044206416899612010734038563884181857502160356659396397068629729226916050679459951293988343114558588087024960235016503577431574528110575651233884991060680500547172981579762898417464889945836749612011286440331840663455697269129668475459569940255113388927968520088170643536311748667805606956843646715280282524959690504849579393257547129321190402610441854429046594204308989074184293087097932909934640511312539096349383347448634630648873412077801244370728181099845491917587946710809401698396541188759567331987715586180971172801097687211677691673551739111173307332997459202360695620786533922890723643559106502403838790395346465411038271474477684901684129048448129216502198958978014758604886685083856147274292245585681876646739506338419790477058892966422064017244618395292476283124119168982066627499888873196618743344404169199827379860042472003195081621763093076381520969816178354698285080780573416156416970990078157375391711044230069910259735466791106385384301309421839474714778279541471719544324842573458964091710071670209455986903300030819523762898091504224300198885601713418313930687314019352324607509599466680323522667105395094684933012643855697164405835026214828874990041545546995332102762656905960523801381574190596748404988123310441548718891854350295767271273926849195497902471184366357183949408556237407389230825279697018496492139209893309145946061409724178874333722831245252655170228624173768931152655728879574505607885540210780151125493363983935738565155979295574551694509025691913760610483073718335176651051751632075610411789533238705757781315213724897388407387694324603084025628891666961158412190543735041989716237724273972082521366532099724910821694488605005729722903502342552812504468883402895888984965294492102978425498755254149815817294978859716106271103143200579934536788744829400501578455427673853943947085913692032085243860147318753148094722091506751775373029203008965909999340332113430733216077612701441420899619101066840888516471463990866293482064783387201897783370888040138431824668641929563864948269612124147814395385964998725544166984727095213205718873646139429592337777503917745930907777525785151659222055352426314028365471353825948298334412342811314030320388140557653601227062067775467605242058609243866372571586484277058605399599596796441717788670262729704362076853438648206255902312844894252226932849230113970867082267761329633264871789024364610841358631292271970566898214791529988986992759932367044570429785869957775817710883581094350149600721624007914101534863361773453013581985603000656759857088680887607651973938297433293600062381613361479310224169631742937808614914084906806286321940210161906035149015300201502534461805033562995020628492332123392344682010814222882523680786981002894788819601460144633159191252135111694954133088092655399976103134216552020805059687066487956433992745872534922303943869328387118157409850712537619443393778740607856147244748053793721269590211678716749462015499329742012661001961116895784064100522190452570407701784241300933989039117570883119783001464656937707074705542896217268156618087383035583679450817780859085140886668554405426368103487073474581275071368720265044432899383917563261148736466622172058439912479213832882315863192737600638353939556426572704133541735606394863294895758188885583943910398847872717422329664077482095926085672404167582786785842618401038005268492778083195889736692234304217879407781155609621293458270314031849013567645293649735654405033587894212794793144646983050964478184327570877801779292652524557607447243911097499525479194892248594453949527093782122419915080093648493185952390078547717690044500790974599182058829224313194614197819220305243351471832671272486363001122727643199085682527320294864906947676311783271822685956043394605836410747350592878985433369569407607724062630848138269163406264623010316132145958456632928216794130777627841948577114328678333372263042913185585443000498280439795856389669521830502347738603029703546063192831110720373257408707882169248486433341909778756500434296479240331480502279708754873821940000016965600259906963086350072702301970285936565350407290139136984664980523083904071855209631758386083345767011518269618712396314817149553968725612643483013862794734187464907431069813755569199263525599539509292669110151067686894956343080480859847719290575863579624973524003295340575233547910269353443401377064631614689705298906034440537590240087028887147969034283894471703071065016949776469412179330295141121158873005183476947516072333861688911721156276713726548581045269790722388565050341334447709139919812756022563811496128497024812042099049889506913347989027716081229302818475027367407550332863429737883268328155053436058976323402377952736965060500593311694405328511796176582719858238535705163259962926796571186213674669545127954246404570404041373203240425571965247066966535664230629930495269103194957667181349210375804473547631408751769895939548134926138228711538075583618824088933845701710884293470329701351374180288084527712131217102828043788941953099125839456437639712031939219146814756578490609802316796184834856904094530623243602219749956283236732914828212772959228078212903976704857548133061958045643661232883388247925354845137434440162033941351982353693261204686400005482433691437414417724627286773270722559238621996922311787016875968359928340105967155330893261870114041593305421786667939002968678841469735203735820510056127359493443991670238638289812783518647734789401765298277725847216319406419173557463722702003935052540492778145658400302566480979466632983904855574110168233711498901489741771520959101975879966191802093406727880827686807467119928618116743735729131727999891430999029954671445375295929428450635771770183246433703076804334414514660125941355361080064330872048258430901970317857095925750628046847305104020624515588730982940823916769972428638064906513615597780051981895472489770662901091478902204807229367945392409603416245541774885649411020531315347369420528170878913697797856040138207818725440042647650820059479220745826757621521831706982596817742312345617267721165465156409580420569704376812373187640809274583443216830053807487857629434480963944880985989787960212729144044160888272390126200647257740024389855164119991989581448425632860770197123879193755175895658716192786189233703496831078102687031367765984500914534586779172733178658783052511830906740312860498774263827418693368041358513800122602800956404718433426464308306183791157608843959182238848651753486376476688157389744017485146916919878096726299536178818069579280119069975040456427637632034376749323735833143286550666321842246029685515185251717414770737541999316941470212373352711202302581194057726975606180399079973819690610894903037195590773488113081781019179308499952781935801886182882887893137184769227623956439344891602716178089031207799321865557794963954824173347815709284361751495865067453389573595630759692983678481386104422614695223999241603957440697813709923590940792315845400707609474295808706090011912081928683930237402675885512536671696711407737031280562262058611892869209449730712027809206577273750495483714819461277361404844197525907123295604117413182633271463562365471108708441241488161586379714377374415278906453070323513154261687196581573674750800169429976355177469217938219398594075843681340447390187613044822508512301533093530575429737588993601222930801130693677221984398704121029467852395086214355149991379133028316773142924514667191347962716518048895713646849836386530347216086548378057166585920793978332493546562704563410408840230065545200581117767820498856155649472397158009207972981520338680893118706601215054950705793995078876188544612416778202325346341895843588209079636791449883941116690488698105249546923223027155049979595365045109862666892213391763968375397496733909702343286458226291505025047967885640332673571673826404813580623762035752278557879807514324694617228230395177767571480621557148814263966813673730822291739806329614509675752136142390076653441348773294022286289378800037452159264434269176181824006809494135969158210617518680407027754943141401651971854411574185071177900412984198553783668304112936103436865673805333956483039390572577378868914752346726621337931308124343838388208453920841404399951423585664170134337514496047287532533257778072826931421313868281231253705276474453072941338063548148111676416534355622926829949996394033852624499860941521263916801221664535509649256312250445850091165928952779140474068987798325701795087606838384480868097816827904270787204809193767873781254266317205133771845284574069902608087211179811022560348747621231602603989137209152822336474006467072679480065491969442712356730818362297421745295203165620514960828938264640245601582551541504236165735996385664747691486660106512729772560378331181020711058067916893655200075526677855534992624374631543907694040440587060409443763966836063420011244973273083746454233488077330880570700274731145731357701623269534719177644038476811160915606048296964964826153243496028918580388604510136428598895665269152625034718776313155183127463769076423920928162973470039467508799349466954343943737471931635340130722429474680613979933837103748326319663961069239258588741750681917495887826587107230639532582895718167422575240164616929672724343984072555852620396050407914232436854942470697779274041295157441817574402921466712380811404953686678677737081972197683429012342482255872896270946281473264735594358120696661646465120802760971678688518135637370489996336672166894282496630358753235219688074446359806711992313293621302086059065289810961008178919047736635763223678005663772386263908067758519741405340802388956716504377471406306073756074634017355474956659625777766288117232511511464448842416331729908824523739157391276842385209278130761784180675452182831598598717277649474117894477794605773469303860815459464542036712757138718124372968669740797544210943701435781392912685441354058575430537295878789107153992249925462555265313528596025605458156668276371454957393049778852147521652897474285029570673880781992644120492477865892639791043077008016295840624216109529252015536431123969558963862919260790970510458431438711470576086746710059258494884231720504276652701089329941108428638261905910461490432951452464283134401110079449736677330778354892033850306549456879504535700246368039528086208004556859009993811364442060526672476902858326861382044154866045402229470186065369551303856402357288399144175935416935291663671016956005289493829646404574386034108733146588203074393420138565019826115768157620946168625508068382174582422381575465766453841543703375526390105682972352563530316209825814226433493062970416142577695119072826654682948036052570315751165868838337090936167876648816782765666011195439979263180163133333831274352858241557752463184491370638446992964643140171907527106120241539414099333056033695124415508675594187742363390075349721512050205755190137515374228761729926532004016633099047176338702201765135778899773730022546120776858590547567179806797411211839696948837117901119562065067307850254422574971704483058417236180636486729003000772101944607049472126905125198113840606417931493734761889617573449840034011715461693258837981970557940182997039532298196020508588179511711251062924689506036005953642463832370312667256372862497019743390198699445362685856180588896380635259988721661963291134725706787036413173374389559349207650293734917644099580474962785797637559568270559367481489881957222140853035489230415841468328213959634702573850159029265928223983853623026395408513261371025664061425448624205078516471177550137988358203875036332520498776363447687284358031660574704301281409750619346400992296985321649317812630978622462347046184105217267284411009472447506593701524153276846377444661966165159260222874385310159764947820042522739295958481648478369779357219894137283070862029709546469834803407347818218051037717874394130154484582761285406363341726558520685581253227901895874210004107697906013218548056966544711347055171622374803950568736884960364315687408482577825480577739287729589124968945496932223960239939468714670112793398861119945289571278458158945633990948708467245777695469258807994039641183187654538985030620361865728432847441185656935804203271438385923697905744958968281507347697373863570340253176111897356080845889751873317974735845664024830325493516014489852480271168394409434744532920735356547511458577658037842477102246887621202814335776010023843361263652318327714888205653270961141793689110298007171158488559264421044724173809092452828542187117493354732875939134345142510908383276980529594447160941745709705667171590709478929712381837043428491592558356575522119874007499687661333796971514672289658984648486325873290879821739766640569731596797620160752437823736682399387267192057742561867233107417243874374110423678044455234967920005439216008494652729722525622509599830251189966057221365542457325152792032168430476155206147228421487743978368965844778943163327696307865060290916869536427324630714335921386941653290442207213565815313864617391270578228663186271833595306987298488799922293664951604449840722609429118197335541856301558931192793557273325530222683832726067927179464026665189880500998497672293615344181469885931294629466851113038348802481104096229415974126047097997195631189387684820134932209102146427490941042424650879146551237335849777334823257633297858252961905697329402236720592926542009677395712966692328482536513473441015440498399035949604622086188419573018055973229142494442048599286915293966352987112770740448786022385672372851894773437149209576609220948457449547646268150075673490037016441529159757573410492290850195238401384761619256044471192143524113270809355632212459679169621133120214213381518449769013429021445562941811428944777857283385640339184403105700497705663127341025364583832548854286784280237041491887521882291359734694984418543253360932973393201699674449806761596613465806133699336762874758771063433721754691189741818375678807185569137141227234703001233477908602741536463114102888300076583045624979525862799823082054792878523442253216570769005972578990243787560550290756783306989455683497038255083549747447159697269660530828913025218512084238531052254419984716441274836798102093047891967238518519618989555908152790360866964188572545209543756617958738478577888985424504193322928657957204138820921660641608038519571025646522192159280974012588579957705540351852119084087978693962720553887480310303033754432347602088288605470906282184379991558588236820502790206338109277704614395212502891693432694310038285635634921543681787887412768251421451038461685435950294762602454137074606532307280262316108507387257153234702697933929738758066863734563589707006966627789977240204990900903239589472951422324326608776363274476710035774067634440049595603038362090317597075302482466916257875176257280579296758137295231923605334938079385914972764061798017823909886081265370036020371101010716338877967701917534537536306337694038440295990178683753474463929734046231664555577256214747446408024037549072695291829937803991406794531851184091353192716201569638970278704063251870706058802530109744723059759448836408319947720007302957164794173273573201599000346796496973264577769781305791290336253484355245624641841613484327598496619763779562562571706204233503923263862322667948935553161241209423039954789437732309026231658328414347839818810956315103153634390855142161656932085510209239642656562953447803133862905375560784085708950477895091064648505762288835789468819123758332289913467080987036513671777339853959083491952928091710532965618281422486241068570993201242114066089057588243025409637479833197605291360697287908890134544738414565588046823669158918080643930946623490703879678466718361552632257249699896700984284010001511193362327273592564187787003720990273464346689809441358006802164334376316798347643356015281078194230234340603452100210884090550714590176163747922282256081803945789049685590072250030363794462689249714871386125324444519758156615229225396121002452300009498642677576194349097040274888284053044153647001898469692757308107670089314032530758574166047497156843064435675531946414685611345273690005199308803912864064401915920567455436599907911892953784642886561633393314509191390831182131024690147341025588246259136700180469247476635039453022515757501152050209059954019165102241369743471754294031907126266048456402408441307407866646815489379494868406398810449798105450840627536968769994651765399204176600001213692502311328457248493847987646488312557158896418817587219399276670590182642654988591993897323131651348806728341830694599653889751284663516897161278602175157378906841425735144460159791910267270417881102215254232973868641356688780495340587376462128691089894048720949992604221938333916202348051354072695588741682910297419455395579632689357173279279427062747683665371754306714468367641105590373846920669078173958509796469857364436236865880474847224750668484029477490545315711812659214062846229439599467025968836300952490308603454584000273817764438335396888982381669082602906763209620471971070868669896702343305877460918803835964237321026933480955219895171110155294303522811180812968219758928107943836451694385354203205853121949050841043444812117224189278917659276187089023799714860532782017764818869481260613584445460849364405579753479779966425441393003430412739561593244798974604403923580069896563130465309335999507129263734475812511795144407709583024285861907034556628717382716347030999731320758831002207465341364753286067525238984479047717611998916329007719722397297270046495796481887936940503051928932972656042208304930368317792159513818735721139622468606544977840918762456513832859843180444567826493784678411885178361409704187025667695826620789560327716782854194825897479499776837518908034978087766399073259031052357409960457561409781314810880713534740721416704196547421079022208239945309644168477789803616632925171405231308865431788644679975777069222459105532605093431921352804465005655842703400280135502526361569823226766791213498610089649963464020617506822441890096234300877995231125805536021291761188740128802641161088828795244998672265945421273496932245762998043890056204293870968633067925525757358708677874626154733506902781839448061357224913206593215183574792029219411738572864481904501344052194471816874247658231922981216029371915106737997060602921928810038282408035480927627989190290373954420364089368255530371768432938224692697474119534489708053251841458758125597792520356354422493233005274830983537382470308048306261230380352019801549478997657416078754145254432800516734319480678417975559218701526493238075611481885740630138849688026660380374128405276120418151867705815785334057623742671630723897786543477847709514394737880664081177237232583384215090661490641221761140352255276124995774921432690802178976236254978963323375749240286139148678040599865145245443428663735282464467180881474040028110762814738005654069770284124970676647106502678280981149596865559921971600723482734265793471959074263804171990138126664087257333397984416306708402020341462413095178163581190063590215046567153496904299531360961422384426516475807971704722997178985866110195244382690053790891083998718867082374695462275379059670943279114048970750270275287839031525797043059634981268020694208518054668243524650041073907203088271566792140171955252787507179456764491748826210215747422334419197429606992560634140204229204019023744986356450663574359099604000868001116635469431862340333374692053242552175506503902119662341803858785483240729416446973221435875994595716903414970135497814421072301237194127074888037163280156581207601909768448452561920058783606605010048406503583153798747508395770859470061453754310615693720219798907245963767731979669678608638095812873121237278461394619444344019003182849294782048314184341493972407360793195498194613711553247954323626581968803842110110931649014600494326664897473654426519628954521351343377590897021002639453059961476478098835696291902120517170006576636454601605648075377673628770405030945340565298562927778192300058420818605688174450764287568450414301684663728307217531879867261664179171683748007798504554920113220267131549877868099108007749794056050298379046798501392813628167857238291592058924336862970436090706026563414220312921817263897629847939298087488198788890196288816738306988855642399753401152075393972314246967263053910561797240498277997685885180880380967918686990789175307084772814919288700138748123152887264751380471736348927058442396211294678835212585171890349463151572683399899063677769767676430184205582163040274568716382444378897596607495828996441321170138583386810718468266500304780952683924731473227541758062910131620212929174544443299735015956752707666244281230361500365813859132458840102633890094843377382983730504685098356268058630950576833247321520997810189154898428508762934304085207794392221277837365988625241202588096634171547914258030996392901549871584990263030965890997298064652674914358199807174731262340107862935956587489102791679879060022805162855375648205859431803251900930885844601885120125922042010904923649917518081993127301115331429008680096650348984527541494580910549378647916983933922527910079587874760150418030043959747496787995347741574582642542652806806216245083697747677743083648040448313759365869798209804071703287953796313764099090748361392591964605968403050828450305361657322282223171340159090999203887082809250520985293093201704719960624840595228888277505929743587006770721202246426280515408106096418386264622160079101840773605374700584160790283671966881482270037152041497327462001380201175338881910631754657412321658232389976465422082244244864580554608963332168049785403812507686961789428109360199767204906439939416615916969041016056086347578579583309664195731984683396321599648136517663433308900085434992253797181284115797607363766969390163427360526526064293930015632518300287518082382605975547721179016773299888130570449443444263084311571083720567763104235786738868076659031533280372297092629286886457577701385381538312396202043328243843962465191398837301802987669276028225148408199081870471168210091097421227389709548534048151005143606758835828261306577532126203535862732683588945244618360682237692263973533916508604067344635614044083498522039170344428429619390505202074539065689364117247585268365199674130396321087157486702975469595998634735702502764303866021600979999927182291135410270621574595256152248779574202066712593544371036591555273374103481266441972696404456821037313679694999312620431217272710181705640842945952975562760686746903867107066280561428562287158942935785208841119309165369778294671408718368962261126898816113919757611009195642885986436468999152196914324774231726307187331405068512257865662457102929532998674814445529777161075359354810722632169814994475975121872504188459888508983756008575112265047557120516803982454945224889188207200478154298368484934604832066480962722437475185429782985490192311581001248767988925710956927114599395705551826534579185439086868374317533307283716041922073868183036740339444818982590783939618707801575110883522336282439753113344118310607262149404033137768833628849810816415762457053372423586704530296796178130667231659885960032035479791127287559647399847355354423378161127145008298455779767429290707152885453053206301333753586606156998835776772587398595792639559128550638272222579860687389716847379227998500699979594161422181361422381366097458766001974622707914835365012156743235483021724108525015333697608982080447352402104255450819965463948365803812967771211513699170966901171912233171631537653174610223829212198294535176527428730698530068762519621025994369701626381903863359806081046207302675132455878991778971503341579080369009483207068665007678069092856814730735049540373281023191219781258892746639481731744004591209256582084203180824104518631462811399733675802880356681647826914258036588896968383938366060189306243960273844169313993936999934732705107246605000957626271948074381905134876475897141164473857503720068254666531416332962723551816216896753161239166363924354871538012028334918131413725298933542383725354709166805565357999305532176271553756743543826781372586145723393299920216217952764576341178103420955221900134181589007866944056615545824770681188115505378386970649307425338549090327586505813294789699916851046159393618404372708149644614910185580687391311184478820457719681826176071998950664663473763148277526799191374956817048730223344240741746629424152763058635512471377994145032618607976918773102696823447572988353366419436263471771634622825062889820569346821114435890940311735796932902681543471770559684639278026461933505231074885521130659544157106764032348761631836511302850769330795169886373683827753364828773855406965771184837285797658236998376804681756589151500592706624481882400282546634075490042440881208271363043259914966056006275622732408915708207666912499294375928826287478316718444798289005440105796805832356699374045808007051284134418802475432989587332081781132502164773253617855886402861928845036471690390208876216341012872757138194052413417901122508983972875265987726908531295779918387500816381619550000281572047949811227900187771981145301805103144390982781538740613573070928953524364001063433973478813569046601453625880223254456307253849876496500448308054421133415384401072590777150012104710478487307458094096613317314248955493132647378769434383314154150533535885382731860599681770125818406683987658010895657696419857479850487141603748197570265436452486261568982652222387509180603098672545046732955891762794292631479931825714857423361856960251739043659649878654471899878059900796433466871818106515569863873774909239791882411425893150035539361299261346823469832600950861007330985695546551689391938686508875087788750044496328426168651761288417682628265487693468236538457207296333339784697399819544257513320226747879108403497411168096549266389395139919292888697588870845483323927758810685135244427569063982318585961295449811486248995312416635992481995155159497773824964446567117388518536416896470658268393720146028720485835105899191784833195740286776458396065829050442197305367974329527273310053211525273765153609520058521355951630127198974083638377927251250534601998582473851224160930166797643899241487054142944073599090671124891248965098925138600105748808573180009991650970718768276273668619909692354441337762122468476677971177441619500981353550818770052551605742492742565961123318387650380423072998413983818378925034936786212519345577350455046246934252175643712616744689716448898998998604187894580142681450019804053036825238384117723243507754906790386032493376589989649176060143884873523804923783623816868264117056230073324554534031578207666412568873531524459362873195099833766373737653217947834345927031903984912789604269366957078523113915924295253126577055175238466795519295011008953860246952668891622529601872790441488573537850084894828157558763571791893130959507795723279804388379428222754250821770114438146983722319257196790290012290823718288664666643490034385852939567067580977177685629297988737997081388431709788145221169250662920733736982739342926425293248351870336458534889313550029854352444369919093730581165758352287124308401654749561185239045996535533440897424521424298530716100273200170938800968920186644243145547986807763247336888907757412036149593473544253867716620061856925934627610123471174512226069169432921466630605472631094555761421684690014557004462764522395009195384895450504063350243930353882902304034284781162499448118397674101584015027679945443983792682704547232854405928433745101911643179028303408369181283474249242233460114780709736310581468422301775557384142307465409287645638775709161262421577835871413774714471506681756338783565244547540640428055006801352277266798044108044964828672307082718997376994390842394040550631645004778853956276525109004092407809095904887428446976708930845103088689444663841288916470762002962658105050693810675763954852509685762061395932670007255684279498523602971147673143254721920624823182250032698668706979106409977813325332862023574627825111408661580271586891763346347703167958363865618496642512355019292067905073618124815015129003192101378894807305088246051416696332659958001715839005761190618547680496019814130710693270549842186048195636204193762632641134745031000784022342051682080880575124556799481277287222872647329300849587436885853848466502362791259121129158268367624382757056535361114163429323474146794883474866498494759477946452641088979532705674906415444521992543274837899743047116846163889363449786202187969310520519618681351429465962718135614688530193262437941846969204034784960887160894929288718343329519536222370689137228220251327075409097942052857659023179872343989562987056911442541545613252570929211397406832943035320367831081632029257568365228756376140460285202165039243867861736680177323449590766280100362330076575521983127344640304443495514694375863622224043084290543051652526220534687443575369713655779002307276053942522744408313852660507869575230968620798414858540403094419943342333778260651196785835597681053493226359174578971840934091697439351572360522296646591046160281075865740413427458049265732350718125169963852153096885325460964786478262781720237937082321430334528220732803833583890395911000630978684183498823829485312179313726787823726753062252114506608724826384291100036060768589175761274110357760948589848552677558190675308777255666813735006366603252886717211649377773957831229123560079446692571552881261913406341714035486274793261130382775056624510186379122735589000212511835017410150102960040842331138808422076481846341091742633524345755433231665544244465360009141206569344643110886331039383725323459954987848198826486085911212153121568145334108639120287381866581351492400377547818931264150926572312731306445014538419819741107468257882162106905791349302317209363361876389261370265888202989157983253327075228794246053787178441313385170757795322267668575294898485122804401384872932410280747440659775748055571837753560389510741716949061310835321048586831097234000905647506907585020479042110302200372429890680476944563943935449397072256927611581037050070009270764834854195861940063060088664676183331748547430982934947794646985211952696171384505121066146995576381113286117949851974768147383813320538377754696208078765263416866572520842216785260619033551309256823100119851616724484616556949079647988661903356001399687654230866813765316173165167681117975518493372906175445855729947173294566163935570599788328064403995743834231769457057234464629055217352565754217795162140768849848713009520993113124654797264681010136119206032653033550046192885323702289213028373027891426812854614808311182186151658708359153806450670527076224819632642598684412536834082672882538450661996524499734109582111219041352367921435933269620387025895550048498432510554522116102040820472265533771530084144043846181065980144991705742151321921791871460489960681656955757960781918104811754266138417909558671420439871920164404642879735009871473286816987827628498910201630294590587251740869719689825810220947993762664432677801012399947846284484743270296234365855073145122788047171277908114464510906070647736938169510125431164679955707901763488362493612395063469753483144732821423770092377746332651915212926425236468370948321094021475200986625482968340038863132063844197141961745818242527504756099184552672303256313651803105957474129832503887034237934389530642874840766945013394863565716198165361908605344772723990320451625291210750790106055984071217025586749180000442326555756387159436431430278739838648899340961556929080198177022173224579854334416374059051010453251333555160402724963914127224144555387753171056487336061636792529328920230922026318182323385798601936056258353837088544407165603127390376477281516247689788557058996974664101769486261077953389334288512623953048136937226609156409269340339771028008613596723363632507857777546581196374195030571561626744288889689758520226761049966983837034327187445311176196788383280210567614094375970192364681606240714547848911670004063679413553252170353004692049248670677729531537242362983739405894464527826265751829652161983984746683866605353963724149204343812037520793853290007654210045629150478942262621878891576732612782434290703791159987297225681131922910864937817917399964523831401288603155820946308723278529196021372807365469113166894578034475914913744165145144633843990325548856574519790328866461087604302737345467441867539375188063444360584647110676179037154869659516642124563143159945721424334697569968505717373879042100598241984951805290983373342439211677905065164044340465462337172375790061217371016309330477770473625016759949672968785383319249083385280856909629000422770718424515272898474247086381759675706954472707729191332860200042038914388398187942393063229666669950172447411551913049907238630109402079295175141613609202286062370550395859310752995220259005444461838839074846980339594267480659022822800630115859980045267571362527545942172476363162190264836626136471532143281938281932533482454591689034372197990487825301062975245129690219640874006961737289104083974575977999061501621773273875519561352378304496086657326439831496135869450082961446480642760943405968248279777429078457480276209990325320556138250142847073439382938912593158505396174972495035314353757577480464850217355132997719679495424793466167629964633562539774609326802710641023764885852775777932101947738624311754259496093328611478381903549807225384536851544355921256995165482385958697344372541018895216803649440361984703081844433104338351435999331188287158772871287247078994293830510006128548889249327080242599228115272785035066709849752992619021955014852810082316367468960863178818624307359980795646394843587808511136405707678382353017343309939074667530427592922795600962997182847704881440877497770683835162436747407400929668945931950700100971585193600583925315274357782144507051443031936776104021814030903051673245697849101249531936878926645427622685121179130401296151830805987922749471691826145043434624812139786697545498605768487747228922839346157507575950555463652718551179126765632273666820711005918420568650290275181333734151044653386254506658687880872978819236489038972616348896578995097149995025575758361775429020043713534779496626989593849354600142817229494754950509299438921568052253614046141039538376419164692017176523635161447298842811151214794913123535604255506048601136986715153054099222990130758620594873953261875287964478760174405514578074824385752500539727378424361155585740694189300096740032807813668716872953743148647655791644653482908048152582769699312733926783334470271765238142085965796128351419173532727407196139455049422478717614403416880196348887594323206629438024656934714750107525168793855687426828234036913550093229867327797508231650969557540875891994291825850635550579090662434995421933381067130866426051667822342339818091832540484593849889733282598471205976471494868011690067125099619180116225926748395517080175532442108210117792240212482254016370239937405538787112158655343976717792381663363009892774228792443701695652534727879615365218519612284597456239768232022199549386431497805760653445126761784970602230213539474493280939889861284749197929677630606890786191995381483753869523681926796960819239086546764465407651401494868463447227527943519054137946159461084683821824904560601861449953357575615437667844467346666578662315321346867550278814389812450296006599683241006783497636525660426489960393012113591240693230477080864264262431687740262424581157351575217858347737166045474550486830672155421974625517960047615183806908407410181958128365646187017439285354666761096619693972398839238181900333394352104806159555891266230446362298377922126823004974994267587961913846473236672048248917574941978656309110739170128861643324676097129384626089633133431495844227368517037196672088150127874952563121221424204280495634385922328701346606884485385652780418390517732609357089804269274162220105193431621418907280935841297610648628513038945909710394614685471862629067619128174608981180667840200490208299871343496472648077463695984782724016230190009224068971740286350003516757429810574870749069523479076448406350633960274829536740970828876059513816083065728221323922870021159407231987789130899471624165322447010437584449240928047169839208151240717482030607712135948652771615931635187916173555658293226994892085920706999174430099616098450388084334523325659922401486223810769714018919140796187315001760474412448222875135308514299885409669538263088673437301948114026182285265721567679094802970626955453551576724410482773674288338200041520685388794651406940591794161996577151185363092198837381362252500145441243900540414855840642400589058293450205354128543477438555113861402207904934905426952086054075820841226854742692029983464439184543676861054788619035565396063049837674827669555504097037403851104755918993592397050992700432403295179480151060463500582557594314050271778061503610150754895913657768193686334158420228770427154907858750423481779430221871650494803159937329811443864569833244355096481507843240507579527195796609188549811937036289234603726491527984126005105270419676635789001612287140018378328194321347108012968860139787364782989298189575699061113244511585011936163448461288967794017971440066412661840483217265064772478927180849898289348175132526928635890093609892794029091415212218339396773364891988737747279666511047075338242886337887160802397089441569420840561199444861795074012729397840911740389457628843288660574057546060694028996377591348636511402842778286923109957718271533931307870781265772471581338220948289128662331990267493299125487626008185776353117965038871734399555741637763172347140287475901686746935910106378356437403533519920508279341135405717266986139545854901089605390996384011297676789670448996357776888966305165450405009765723358219083921015208137492895633027145944955113824520062641264095982175070310020238786716791783298842757438851283886200044641516275477045400829764670782706083790194585555041183886125587332326311736884579757829343802547349168946100048141831353465813208019989710939767382345111558154599110348345364346707759434109092177742140652836320190776793628655574426509643913961966585602413692831319791006569993780573537030591859461465818258090657929031436052721625208570458501387964418569827534720470038934459152282579732153973763643422182799007153851006697661047681564801893968195773009449196747023303124326976003516655257386815243536397667896921814034868670454624885482232531433619326784831291672376995131781509652831996009209990350146498261440472130044776140232150377517679983454813378225859182377786236578944872742164492493471680518899312777646410944408639812560095500698587195333670759935189846160213161185852147562437483205081501106996302831785344654636377852016015941737610351490061977009805921112914678634153945774781591482482358194479981484923244584171348909690925767719382801058663983467061088096064748047629748685219249454023516567894389824923056715486084785379850009111153780727429841841893074484980837938076761523996413493727317198823537982433798522803871886141823177687881874569718448628893844827210710814960440771959655333850472815680691441105536490826224521668719798049638903032290821061443971791166686990510894575245087364676489736377477288688229298746184866816434856452041856069144917001839294079709795177504574244695897602928479634438629435865047227120407453079862049799797318715971169287570420572599013361278799260647629968261527415557678306390166279859030422113563700235422314220745577705915632863193433404388112044878234366826975383104833692416065578822872877528793714437005525637220699982500426690826764208348840298125653722885482062175171752908445759968641125527074216654593753869334672989617128821709880105078625806704216513277306410720977173721404343580658766449378088754156137766869076717800499778565961811854122667047382930562825437177981018429777671876433496460901375615988768382020182054562597932743422742890504311323979993212877914266811200615894431355333035485732162014754837985745773515658748135125331350930992141804462665578847934572998909010993741906645659090054770193279295673076511940099562283948473123315842279692153490534445268932442868111180981032900101437203842797476383940405954712387945520241888720955810822414006123152345881927925422279742371573772500794616199664079148846488529931393980711784952392159632266143035368769203684613395449629970864547131397008236341234624184744991315352315932243812421708328356782760244191895834381422898915177092297010756892171829713225703465222422636716026668131103019578879402770282272140205122753806234491018736756652896880292558826409052737611027041110596640467179749501763417536227603234251036817603249313264542358732145733275594355039440691899915791922056688858166217307645724901657706761013710934793696189395907242988115595957879495937124046273073879717541022796820067281977850622126502839735750994671054244472709186761708057240969415610456361055873781689893460498285688168907872715162088719727215806318943910817184501394703716705676194170778566824303480320232319312332747983997814554295413708080516940956876056402496422827419020454879558190087765781374269393624705601293582318896574545563437315830170829175750031730164291064986959663483012594748011190811558491167342978980704857108232015354341698423546122945862833778557923007969147496465135125604226655605620986757203150023059378627497402012199402187887474866767013954838297079277010054206053248693186864311849833580239293251555666222709444942765258370752291933715304209141342304286453076864988273960912925430257379868374650878970231713306091483385925461183632709371178677573987997484836619189139862216128904163394480501065005787045196467646967930334945305230131162893613944066121658354357420689908384120609063603153547025463128566231333385831075893178315789240918372204494471022690942897406999570997023536752193451910419856447681507253593377588710745405577929111434987670541253031917237799769830257679267292451841817943747287024746467962247836899209477423001878897802962061277970077462581787132769212494136433541077144477857749667377118725903516062346883596302312069472054637501483416567149028669675844875618491912401169506623685174227906852612504582772532936513867918954417403327626541064170562168817347595752948927983609053531235742175220013967643426949230033856339167688458404111299420575184038512883215137418596430888160728403446724873396988925805718974507861018352225452550412808324874969194431301091526175092880655251775628948841578864294943531518293896215824034311669195035115240619671092939086943889721726872393795444487069442805422349247954107962166901039974432751952255565051373391567691814460556183001297920830602057401413276498473470618223752792808795739379384724072471620893067460499501783927930715568627944915300792732241873938950105896995175673833666001848378287747077715684666195550620403393759571053553407614057165790970716702387218118520004641307112711515141793952543979007319518850132828266918637697635452265564971925162591047068461589991678890045347314109368982657530964436364928063311190377733802238965405502343484461452012540822329492100042619790302549080822721322631289466810505767437039119272730219789580839573786675716753797852503580841802190198198300211623896188084064176464218204434012259235006616500495451916312586326024851669375366139848728915478878158656066486945216551181094973878208859950533031393489374810407080686909501681860736484214904054130829800388310872219321311444231503540121138621290642531930288195057584643172929052473596703421925246537266482652666637607676030823181598890748624762085889107243101834090711201167354523785793654765833109026809640720198352245560672224100349963907011000728338842217003432792931670753997341631206319036979516534680573545104872246591268159249212577287716267294053683259814010234846245797131455124737826601614127850739995569267354053780731012937844619840464253445185900401937788225907637882094401656166064051579446005255314473697380968420781812788750020085368783903631334243922724928640240233070272412397820038560574745008605706173087052329542421937184862850483266462076717901465105541720593188151579979406669658911463026869047431548074041232042011357198459111460339153236482810526442959288893974095060136536989089496929204147291839972263044770110412643424706981185658585913790727138905138693442003507759721896856556147844307232976359347969805174106396064739418455203079449680023095402930495622617258318887264394645531855502198762550020487749829915247193945604852218258071654886697066437712559563382199285121367633835067709067207405288203509176791442663306481809433165565430555865339438794038524659288560138997396908730159741237473684648131994892078456865757028979005764018844704514365581947224499948454832079903460411610752149273149439696975940393834188110772721153214773837974351858175277278578659617037106022497399941355555681812111205993462556168445111974899849484559965859953501572959157682413756712722571280566948525642890517749547628723427760969640084981040228383403374833285264710636299233082220273175741552122421440516824545703775189272599140374025283746383932881774815124591861915318475341794488532186268314184176626400222308589343278129888129615783401061224058925742988145363580005472606523069062782021602311281809450578534695227891156895802431069153942504697227825095134330864789324623341221264355813251250656381922596387623873340713651610246214610494006433914277522743124762286981230488198918923927971429964031118476313982996356738373350785696718720211522670771567666913692355435164072053222046788213272930720276156282671192906420100876552755082262103670725667046460516676357195703770561042243285201539644248653524192732968231521989412793720645089378258087246523485917952878486849253744668783141416281834474066472430432082369162355624853463309903881685481807072043752048140080633838726683394564392058732996338146245302417165725122709139863531329625801791675742820965401507282186990569731369116858009968819379193620632321299369111682766952202080421874885313775299846475944487542570617726959627395161712530211598872031766768632858469490339356960817449212623604839780541006472753844492966808221590990081047035245225877367980002474211452253769758138469233016440939365674651238558764307584182832457809480432671932294746606662901160477273661107978995874555343636219086967887697256945193123776221391240829966577917346159027013128808887623969312747994300170332802851785046718541156848435495499727289614633219283465940000608291642589464150123104941243497724698846904582370428520146905897707409622378024764667335116670457862884032085333156948511761503252392783608735992180836355612641237460246007706350941595329596311367592397445503988034238811514530662064530200604742444012775318921009316102741823074101483769864498705368436033997549110548294822142774349395684359699434033487162092813143885468267315088779019861389233902088164363648090143281538250822504850459117344911241649599433958905150827586098492304116789584178171013824709521638848053693710173172564913814592823222636117262923673557861608972574849068184696321086178924828508662162267644060078762491733955925325235049748817551332883788005483712309690207483548338457541402044624361528885468585779130957211867161625733066765382549147086033460182569053497188105605674981636743148775665590167660118100443072690413269399002575712236065771482138478535193933988684668108844355216113571913461686354405779931853550664217411486919390932303047911258326025889850152560768681411462435944793094111281728016549848964156132369918554513728871839749261163819894708673092574316096337412632003551699712684178839860791455471186050400609237890131980048187481814291682709224971415478877005157303530038733763683436108792204046007866854329621189000173453423832821349092825095570622342542028372661165069923214149820646712348813977902770506574374502386474322523451444809515411458317746558476333835695236049139848618919965341037509479303356428200545500276823855363204365261794214658350767059218880010679947340423848487051219628070119530782288917986793634340588310000379686547499404420450864394185654628104169515824785366506094789481127282118385753051667063180877175361185358643622463172890456164960242297455886210858671784309303656914493130097421758075883706372765044012362087695613621346642830891884330028743971657612320487395512987597798661638771831091321561403849619868010074803748890727200335045956630745962481337061718469213148052202403954538691121585739111722449888431526905498480136955172913625960502627329659086665048839784472216451446332485783527779121855077399376369335923238683165493318811426860691609739721001879918628121606695601629158899009197328090105225455754633919041599970186969288108801872755187896690277365047123800453486622067277679687377724208051958808391245069175695945913083744079753121024035525613287622092781755562288450249132509896888319835383963119708028165063386652924716394428884769435909312862898300928239305424715059468318516073210986799707831412229613914802001844247801315575894841776883839425624899191891014972949859958032651301238931856251347411937595200714093772828013060103436747781996546783991621277785951429124442098254038072265503557990610118573362280103650600737354315727681929609880578168594378484989931530820248505124452019050417640482544190458090357750930098419196599423424643454398485438817479130049439062317665189687620602817295707230965767341207362425128266592972220698237550017809052653866035450078755154833966115235535353784185137260200626634403683009605159378776306937084661784883170374547368733978560740764200952288844878160113985102415769706114956915893373855716132603554454316392214235100787770184058996876390039818466501174896591671502059106494466133165714779592215186757214501097889319597509967454363462490036641150443935575498544985092654190821276611448106311123885526129411030966268871279513556754062551171330625710204451873865668455791847796092266732935514063000230155613624857118603389623504682592481225261650745383102078788707501448313641325505804902182707997224427774503009901651993281866467014209040656709174972328512023669968792338809735867956460799949589834097923307449212122800255542459493362023945876008675167128358481465095097067145932108837531522397128408978018155383246442636663853756343891610565652449669819212432436595980695670727384022362843663255658654446881612096822484127447790718398979543545513800173979283252755379537718705740463873119670271665495039611719826479123100200877318401333800363024206090610336783703566346412574180771543426383536863719171820352742153612887334574935687559184883674910293542493381714641416039614039903598878461426145129878381028425587897133332458285404338269450262050437058237357960659943170009266583022016743982707975206702520948804823767457186386983101039759859940268417657340288125373333742423810915889286219568370908942637501370429493576072493960027789128921317222487112847634979308171582429255798963651660610003348380385023184002822497889850311267044124548977657472026152979468745015501858817111074302770999008388361446473925747200938164571931076520680850755048188952756017045857384919419423209452840260485775929191031746625989616110346668332293233500397967380239105615180810618744237855904445108097656251388138008042901509393518036377588530028176910734010533335947816876083435440426556882650476313381091796891575371716237541043013269580106836989541718081970126185289161289161111248960231012532185275218583887396876992589164780949338154006095971987647852678494171698747794642131075796646140752044424586327922065660923549414989560294404187140697389480451155180779076024081609749036558648777976174247031335394754460320667149786036639138215628914428456923245601641162288149630632737876033061997185580459831309058636694047099581771378086105217949731033379594441004642291207569479654412382562083110845367637084607248164969669096836443376322406359432319146799928727106182026933219335921663109870162636971108097439478061810888276995166651385398055578432550643495908144793033222547719557492678195667904215111947535351771189184124168745100478724458416510886256498964729846197596827621700906952791634121161604694112151293193740624520945198239943204421787661287275120605755384544238261759206509643875495277363673290673916365449275230140278903228776948190802709354224448572976301161594125447662246119660493712636125994793962425274119507513032869223843612977448567314009866734168840019074420488558326922565955204087885567733717264533246193391002174445001440450981505058224246226433789188461187933686571092472157644752132792459009171811657534740847595829030119150330971180493084067234308243757270784573130845406318111188047415992824666966459146083703998593983274158565695995259112672677134474141755283984593338224447287093059193735500856183899780073325551511412915581036568875359492138995069976756733517187329756191324637092792617855788893623621395505734426436074488776399130323371007878706899873890187731493189409621713306753908297707864946646824927548746792603633169544604122356094443814877859894199282690004149721584179817549519504226173746875021929165639084078553977558108957224627832173181893971880927956934863230466147841185106442247899975175994894758061720001196796898588841079193128725388208327895190189032156586137636085194201952143302978146765520128234298554604524223631833773860322193029063278761981830912237816177190514320168928367482207812751627641240023935895189679156487169217579581785244864454516648793635749385579294272462586910051651183440230011056824469730994078034323873507204286479948160500430371097739237372175662915836142026981500192869095538891471007263808880080688116872952152504393888690956900092550466487228517192976663775183390363884944057956492799178040566933349724309696549390656870812744511387474130284502897106759599858977604412517023990423355021586424097980543433135534521788942035359930440612293224638860396958452418267565090651727047943920225429836665025118300386621230655157256701472659193425793772727904345424440334682827702640081151181385575176243273266551433560126901723287657160033195942605734685598656327150673838805971727592778802793004521689270519600522323765763220030759843671242614363573787173911505282198738308379854906418255778441776745426901642327346412720148655814231286602018266938968771290409782607840293913722462714957966266509291247310427941728075902138504051640343337250462916214216550143605100924000459327059641573317657826709199003959784159823305660574958379154707209585192142407452398035460110614868788028973630707535835897859178094930302813825221502794176179691089123312603668729342877151732292930131210799628253804951330406138279766660753689586613488114734938773782979111111465794725933556126350550312744871954047963603645008080796726522931676473388640195698271699166902469907356652564926328527068258554047874803927803563161251348358216050038349724683406608036825511611373701303694943343008045548719657570453742986265703174213916672811421092244946647583978182503215013940126550894372626639003931802389021691910699626303970650385489667819749165248127712803172382228905796528466140186466308889483392765728570657153586270843255140026944569891380489401527532487281894851865341712081730182011706045829646756442120681749318297746795304312981210476285197235000064294053594890441595941611887281355021578462111452723647017123788119735658628503865044689364207708908777018136069152051822652501915813216993929459989628509323220055593363776561814134462847304641644909702048632266599439491843496234509005595943127272536499452882623030989269664630650967744101675655890297318992642150690531125451549667837807206539141012208988175790773286925691386846340245491428684203534575510592256714465565536521207574052281019422479426023739596664803046291680269033590124847805685860905905380519178467101744219460238912215610239685246287980737115069350061992744517489927797179293220194612666018353008923111442002224401996805869376916143031227611720541448222107422135349734577911982702732447361742414594950106528873599997927271603924821398981289148557725857331945171365774966137461056547861239556907869870670319593564420384356593006089744418779896976028154411762652492307204463201819880171770787573345804686995034666403036771442443741579625053363956887162625739486758101727960321233474133800842509362684313557684242076841204638902314603046058669871563864189896151042799494463796769827932442697337380954341751146040121480851239066163494086008570761331627473315060103163641748476630274395459836533792046579048967095934306330826099759723901358521287978855713882768538903480763500728344876519659604728697013607380585046743312903198605285244735983686574811761886855365113489141716216293749419449314433493579785905955335269608396116133007180863837535767093911620924992503740262906338741212514550934619450524690513392054867745266302731224248632645351844654410908310973950545490654050152637344896573343558996731427213110633427147498958087252520290629805165720742104746608958485110046682249345069481129394615442374820203780996806687968431951193477538143525295280841028965307079571244524591179174071199207460695611312424260462982623201027032348361040278795019361730100139296566302092807760047457039708781638018315826555100482329345719529360026840251144149337435162312941241803323489171895790982181307313524458394100840579387078839978042135636208290258966321971001483703592815305344632209409476632888590746804218785363915094584376617669214444810623727014892923175910933597408338490989960042159060200310259198534587770212320779005616283515903042753218265487643522381107295169632311449424698990959242551214832261902131280664775852294264852682980737673063091484160323890491503136812575890951640473496860714314503938395515052521507035659494548939307906203137590927924119087767660775585555425797081806695384379665327075265856148674353299341437474399322767555543192739102216534616418854696881065123002051512229238537992201270726091918100002646894242938710044136457548343065436673930408693018025477015009240263901659661851902836608147707492981730584536460102519459425324146301976032680555968507815102743443599446656129738975957807182240268363959666249424852639932132726724455805516316789142159312350691372195890599456240591628985033886481837014686526798253972979336526173314148219037367180351078981372547248809799262008078585177608324070502111251494145875164115372517707292260558363285463682269407000928925780397932276747129372562319869390775803856007061484602575219223002898230434115378763319402538734380768655429140191809118577748843609841700756166769641724348181343422512238550045025127135939936046820808753165495377411502058914036998922178836242955475459344393247463908584107672810402374696478339220847730653058232669919385940598437822322823180231687161795043339603420269835414233283997775080209256754327687136022145274927494030003012782664172903154510182297605371805569539349881950942977695072846225445220223873610227097240441972085730298792224688793174601510891576080919169630710224997656971084220572116957557968180506546797921540707515325064837166370245552776354416197788739641168896255559386402039770388217849571022246425643705902705037744064473743428910170680983372637835822483235605912189964107060471324291689073670095983025039937588146139141845019753569003632809850670548200207260281029397976046339782625027986387289885040224848739232189082277650034054397557108915591190484513818535849533861762253240810820012393150938594842487340422993566389705342352308011260163693125922505008689320154257364655791765850136953122644031285722468696001892111199978881306212384644841405705075626691101882406598497692160007336930604521569421818328612052194988021761492245734814826521375873329965861017349421633947730448098958717531396573180478152782934466661903674337406809251009855053036477505553542064549307693754069854387740407589125386001053586869601537059148705805645900081558261626238646849357964591085041016721750129986514423586962755691910968069246859999010866297536552318999894070824884291305792081264252568132251517585785154298264017479550570637656804498990647826867479607987599331822477575660195998918330934576384714222104666094045509055491512699594518198289520552088820443779007839625377668249700086349364932330884950045959053474585626559657660522948936376426676964594847841064974650672861327410397271047376999176881086552922205186415444602242903015835736942440669566981063351994069256881615020625669396863580617055390598956969840138029330048386919651018027311908376207263373842758650611115496380370156487680381440180751700791946612343901404372490658671219235282348291517910825579843763488497868337841511965393492654052386950222416609362280639428634965578081862307330180917883999172121512571719959359763686517465995627097645850182558001609982760719586901492591107588014270048107794576358272814031713904813420114124813627128106373475722057777842674722604259133836913809034125756323660380287490432542874162247072565591152756023279926173049947323438708537933141430221957590064486355950191011286085377557309017987544533794958469346912991879166117840937596890057531150900589697674992756213815313097833108988701699684026306345969792915319223091569728245522243295365189741464164645431484050069628984629616707353828995781890565260480596633649696055073833104198134165762082664121900386004193045162982025537268397409076007591516683616597138199821606882179475463419722214906114555503328801758226368731135759701733863444030401204458577280047097745079082861545880192079892193841215295939800194901598275767965959967316693159636865117366529312127057437514053263008006161879171227461205618513123689983748825295576534300498847986653564568686378467859809666622358005570282258964482070977536306531023696426722085847174233369173892961626936980146084329328574506911963609794008802123209184349453660351840052019240512215520513210646201127327385651766224371746768225231892691133182443126515529433016755848563609622324913058896234304572449335008921813236008730888563361454480787248885263110787684231328968277469684394004072598228941687803607515862537667455919688048968066515878173810850290285187093796894246339184914691493201873656601029899327027465833603159204288889419553170379774762518112350569152093640939111927967585370538660184505445834186862800599706270940208726861470332455889374275768116784162668489087715708390473190530710302457202981302188264928039942349244204710542664672350139624938268549376353357958919551414903726873708708897366176816112210715484518750240971661696790442617195623958479880586817855448176922974051174045682076324058643931558013508711876146111905678947470765478875108417974935623006748234270558578491899833106769376038602212995727319557965202057853286727991242695704348138575148681573277312541286533807755508641517412813380633689316044296931786000099473435008766926786377169993760693162415544392460998678616690483108601720259824615795954238707151809193382055592150119165830215648447031008020017953709196494109084200822409319715458453056560337545275125235233315131651360431745007081049518697925520288303258365562269583535365345618823717181558689234942706627127033459538312835149386639751156823636646923500607719360458792118792951021035653895134401664110557777912291866093520100227757354509642270438062257892343712067342542612412009741031853357334410722868709578964860093790725468662251370375170068221977770331111700671733667264824329831434584681893298815609090364888863299748616506479289625739795821143804206761993924837506129278595422886587235603424956977290627778843042143753987435609725210196721523745281640180828315950922969378903088576082769633972524692793712878017973181664133888698795115751852989084645581404294400199931377924727790797492714997210781382704101988046996464880295041160845131255734609686314757482140814948991336890644182756339045114925695629376406123285536472458450763815131422505239593552776493077354237799556659202857362294038961114344460862729114522587651567338423365320131663443837354074753745916435644358919543605686945953151727631920273589072028380490969982231512327907969975961329834146038462783536053879959065011402378945038476155720972685556764314094477324804428322300462918249283063419821890337645151945084874733366555558133743224953535532385992486719251225343562532183456364168188664550934202112945070623292136080436764268707311101140764274204080368753579208731057174398476972656661354254388394183572438757060861647888411590202040643327524756845472112414123970080028832317875205086712998074751503064405426313040367273859291611414775155305169699100659360617561231053318554439794380553905068227819367416166422491626272202068716978030618286353414195567590897894772928289002919921106137867404593467618692410546911113724004886130935234585613935312268594102655776859502671149169461163429065363380488567352880512209580410838267576548806375589965754758254103238503790095901223212656553489862411587884355505741413772729540367026443322293524260105794764275355999448747067836149919939754386411855903660192937220158664634532304984290006318096220601038290852366581459294096382155038109099133485146255393227303842791091645940397256627206192509227939109702085809727561242283041574427303314922750360883195729854015285834406867316542785036697059050632984773022095577370875968556937952874664818606982121706346742835130711360482574729702327540049785966141550057658606217553957212442327758856865237730451217035626651503037207971484366680439393909191991461323664238627014937230205878271904685050578526314463945153590343561456338742117490357985291777791537551138388349151476746025695089144412431971151651741759416544007587207986036196164088128693460033173926324842866014158406543881908947923453228383536308554792808875741907564844576080145186280696651290651504973029049969564847941881758832084757322244287689570596525741083358542824189753282011298567271486089395897198652209624355512631818023701011063000520629762579321461878584017457030891166802716829739727787873172140936368233099655407947948524854182533280921423339162605784749950692165609389193849723613514045553100519499529047756527993570483825329530046212601724623199028169894010330424170878726698784858334205092354476134795377116931626466459083077844237369790252801948455379704068566512362525175096107968392524036110844736914389021080633535057110923926318008129709468321147702119288555437592564531276085283480043877863565406167683862273678251146616793283980335456042445799475063974073339678759308816622783753791006875487392327563294757026632359517429198434132979107809293552926508652190558424537113168442941413680619530645071773964696056428830428696476174385965298745270832578148775087859612841138032881424686616766700537793749970711646770219043302263530366784564864192310420611180118078183777657013777259072212436332940040142858181177712391466661158264534153716285899550468778875312004324171678296044361006733138261612316188795932972487819388397390018884621206380781939563677240708261526185984560618493157649381207757092637220268104613836942372818365509274495016695548664280631171252148043677101358959980607603836097581444041664505303889295313398905942501260207608726253712498980586122993611969740178064898902841807502361055747051668758819121483040096172075247829143282810423156735110645049449110995259118609525946996357774965646112555686503435856357110197690195187936106626874943759099518750645881473640315596226658292374340756464321551508873584634463299594641192243853787913731729584652038575068661610471208479584998601891525313916988713528824835247634541960206078489935890495669374278910934239317321512538967310016476956117244638674022585815164915679625368449497782808518274560907600256423209058535867520695560599788999361829211471689347981331217654765718929477542444973537474810873895959978754732960211151772342772068610845736792867397470474064780154164967113294193601791887033101598026941389605347672341681679774198122946385893787636436198529532754715399617815408547529853367757436260997669354843502748808644487293278299071441945120467910578032504465164742214536196176346603806138556669383453090951333740792882935179219529850135974429884419394795737305455302400710895063484438410710640996498919053393534596245108020469478486558968080293027569577754621035832172235829492298238467769207358273886591749407912686256168935975907734004572203311925022267722090126385884778156337569847353197946986159089456607327842418703866266929821944314259376305000594972348814911773936661247272711003613155291677391034638373934092302757181206636255867271012289473762254130342820017000812221353130146790444766108254244792963019141444330070266351583653444100654612968731751016561188251759442396027096185214590781448722484805390423964515889209173700170194933537828507092900616095093424332750856619872990455773442515579780145579745034273174704782095463750892046355255441791619747512562460891713219341322147440360673121450602148482055856143901123841713872657676886734112777656735071044886168956988057525549445263170287641231388676580191086156706223656505993516365193979863156147906327577630360291387051141038112192609396579580339346318297446838051295269000821267306822025491393197366809486650982317105654862221581557515166572371956131432338763502056802669161142300058087863658191481917884310859561363735603180774217425818039163257998005211867121959158743205011317989957635443066291888577960653098280263146015457343320931300487877464672533680697546556702870384226302520491296125074003138694196275551203208259041298923387539070642380939950858382099008202357529716804084376682293559924118112430418710596872493009529010631769133398137512081065286947947517549579475585628152644102052278530047815114827728515376575727306735666731704535607598066912578968829390384147464642393247755738381714625283671123059932190281217915997724984314858758844511251706700977855395429612068136737417499016643550233294664899291594440532609345678658806870688029676467234477416647337203600857684751427798073931606973118901109422925833915118711961226046888599979987255173263474115454966625382521899152423830551116698907636694512277150909185532500641710388271491519157576812211597634780747286599929585125334117219586531485151461830239737114465440241494671081075090017572344204707014523968690649365115445242996953975336177596806770044738903236999637337073493254455359020943957585158396826703149453683982444634744015570861738284581261782445181054459982558254235466162919662349286106523620509414174937561014333167363409975532728759639388641829520840447999406501493872209754397147146635193121287134180297159031217646775236528255277482307142561658278433776051944706009919830476339052604349091127957356754841375808480049761769198706981548596172345412030853282599010734389668613201973315611458634798937409547706421953671728214773364090475233023739542194238246495650448569191723940963567958344044938802830551331374208275900940469376840004729305364606999568564378903775803238980962598434833415597771465841415748914851619388387737050117243408595828393681781585013667328143855567354495324517606459572336164467575517006400987867993889016738326623407282496738472995171030022771044548440785964423661241518358475885945873432199776726577709016785373945574023247308942045781603975229525766383424001734164392276388591885000303974103525067022803797932292870843816056651041440365219977056649488527063361876572160811395495030874407687562700015684644908868036764450277763248700177228525663548475189393038221183156126292756066110371278366866903578841693309847057390419315153211208195061356795324205083462435575794032547266398314186662246260745658344897226595845568116840241788306384916394621053978781235255306640732770281062177611022432253875924866460260331021977702215490493875576824398700493539734993941733947460585083961804682614206884840693571164276050418372332707327093802694915623842022589040797113040217851820186421346495433083873215501474626429012167284279607714683025554962365296843718120065663313500553336666497181300989471993380939964368132159327836727670253521204497904974504214464345140504709774388208565110041788499235962895064202368911111460057589807810623521248530513650163128989589325497479671383707779930643050917319236516710941515950139951914572633102986112309234221691825412803257089832396655884952612220099793013228728566173283202558572228110931645747621927683218177815920105826980023157123211900377971702535376210534016296392425680968409857986162324102301462118464095293857525266723246312255351102308985234091736694026399222079989449725773609409679109450878592664102430637500828827084038034619144169409217680908769133521142075696533526627700594621036817218411071496931852566078869165789799292026837268172747787171005816634284893020884261873570521296182276958340273249563202611111078136448304121320789089947397796627821114508606805495679719645547438995146766727254646244699909055917808998631088106632022819644870815328796326002608950997794091986289606922853396562863754135231216354602647793564082456695773545509405761207258679938454172563684750995732472652367020044414982086256042931124147706250381840407591310004721229467925253353050019168795568682416409960564186562881701815481309899429554100015276757214284280416657369941929118654746877427943816051175639560041905345144389880173919557379436128163427060923240324747006556772068058550809564920019425036954489057264641446559955260646874092798170709170882193605721747327645437069936023162874098261845293724654957866927194212669654560174054387014651945359505366356557889257331240071635121436553081826858583485166271658358083212165215574735790690551557727859330640066915750605820415874284786158797954807365053812505757399566792521108467526939043416787148299314622675538192730637979400204152159481532717988560045447619398080417465898033557962295884434354338046051824886341132969667672637748945368580731244190488705124303179549870103579968214783665839482540432810291301194368379351415873529030262818588935792212618943730198712422023016562956131650001073915210624143701581893121111437230384289756215792633285454526365182196152488463153304107308730710809111826404233956458416836274537899533519393089129268822500595753588075439560198781504583682376377695936258768965101487053845824731913729349472935039133368823373411469112633251174165291228413355361683062102448642013069581872391521145176050704658832864086095317803163335810931969266834895020474401543083046790761909761795531246243661284029031106262452409523639017986276643224078680460115965900883852643068201282452491358152577602992565743501405598957840254430158461327974670394290965476015353831842114364140154183630118681681078810953550135737987078015621615243857300482517580649966474179303536244564001190522365825679586113706961089806883706020970904744814770983668903390123794132299446818150006245441852322168585130881095872181773541797371219315159522569680606086790173911598463744268798032576544416610795642402125417626485447601003545421777553379483876261914537331458782516404063273365636324225618518456454569267668288681349436868422331170901073264298327142334086244444875051252878662657019982602491582968763951143295249787664748121957156361342860369072360060047027422914345328263552712684458671820514731230654018266763434690191006470494942074908854841275761518012359201407716777850171146852235739885148579756181191833136107266926346820280955545785023039577237647199649608728928382728572709206858011185042377471452286045369739253804923946716811663684270259654742705279344957950533574672193633711768802186734008713295547278626310409726576820072690186437601339234805031108806697271675206034595437832848257206762535679476414717107115710304381192195704277173150187664698168460097766699379704929695733343660376621357069997807614173597600845703554421029185093290151529564802885903418408195004534222698586106860145201996582830308328007602177642828890727631978299148940719744297711830537255172231814018380580290305549220217117321109757542853924790266163055131935508790111446361698392971407039968752576616796259969083489732536202367631244166317099284286456466877539078647964653810440496690287656405692950222247612407775888744003950746965449249401839512743539500113474568741559167330981288494645111186229189645093407829344881782584313788948106361374211748775414173639121823424664861446430479892463578434573274602814475607870788849072309199398789430722852132469499650146725975654407137273577230947630999326893698664744913048389471977417555136095441836287167913703852423092549525969588435828729101346221799567875029584955657247068652809299384113595562885724393412988653405201378992758206321428805749246251055370320598555053618686587316211593344817232126508607818553627233911194522236709591940911062723454229017719824429933449172799217048022569184255679697432368832937209315000545248692618804838791988056487065395167312257326249941284996398275811089764482243623287270235352399259648122688187009073620734456398498016766710426845412708564562167121103285758652575724429777419384741055622214874424835805443113591697338975603102033909003106731509381056296535738005604475263785976549504230973515443300619410106476210299895219783621947525323528913550008010275280207804269157532154789217644712550510431441180011769434448644181475208643598126523032283834782359111829924322261315165986583234638011851056358978653811449992793546961625124940111107693628378894957985141688501777889611165552516519287965732071932675361845932337703735583736718212457008183979453034731057486200755764801863338493818707988173243111590604869056804486563979381189406650219776099177692288626214165824420471016221876443359486387855339431945863940692601770694190082569070592634859624088012444724969323251808279240549617701010776426520444409016212755759368219433560109082031140525441702803345490245611603319245553488888129156717032337885911572267011555601035096892048996991794709397878565887349637870351592340237537408040061254870038086357988008820173936172668088054907605974304383162306971809499446035018127724587854718901026047622792786433594532494201757655521556314779536641970209007088220818851697339594056470039165794052090605227817607409667206927007283674211563908903244608400066406803634821440687939080703674556811227225639077241429979205692030990013687424169903810912675939486428779586666604069897970922904009109462801145507548851876192929504066864314053524467136535780303689735998659752642574736550520592329980354283124580080073861459858474990445443641495860473542817273577215693989973288391661181677941303013313227361689533256183648880686050280294692921182411893562651667914304301701301454667041883792303433602532609403808666582777398544195546753111628290761075811179917030902757095815534774919306956953459115332092515579645714076808013239701723609698718198086563053343686189909321046292971507726088874921181945773341269960210849827979590828937460822686783537952773118852002277164949166108332028454008050615350884927261546530551034023294230362451707724826087343695525809858597466702940339437418734626193647139794088301819220086243032458571958864313840456732830594988207012770489107434717961258798029581171540720580017910201232656456533755326689476620210633290955073549469398094479424360590421751681274340932527416106205139519145671113479140328945475723091384210339378305489297735561205243411716778920255898941798814416749456133016326310443283472265527433787903705688398976315569373733056057082298306915048559138106031045016497831918584023141015047901674056962307469586304233780263741294809323737664952354391313892424856915453261346906477544964730002218694437584596848849859075702209163528018155065371520993032759195150681958964360772892640623673001973429168723464627422623178134693460251797881285607328219720001644721627704093335544843919507774028054361833706816586187163647548342670749397322368282046421215807418374937269185524355168695973881401957915890132158880495867681954054532671772228466188929874772868851803553095342061671743267968280603530804317520619176008277975098429921879611178530495110405605015698605057433400934055633741889087549073213512566809061384131274793473145499047756933071207559480837639870834008641163344209123421922845183760129553602082252194602356388007295980410094363941361596171647293217747430233686098475313454779640220691805195295413041071973149035964190565350613121201244883734868879915223881253855994133191995166244517215736620483251102414686297758574629744626062059013405721635844819784322236837849930361807015558290612022260087514637340467582781993978052640192726031966905802718124989398634754626256941709170740479502276925434590268797172393789149729319455681427561352812624235774348748731083013387591281985374662146357304353440563434343464826186974089370189986456739150150433648052734450595468914478515202882235490714236055856662654442226577050703940793213191798476863196200170510559544993265447252414488128886661457724358723348725172759241903808072243810113325554846824040651260017219971061804932734072294369830400037022029779560370518897069602204549457557229442685472182590860714055638109898175949466624651717205975311130928459589733624817385032219743905504422401333668678527955542493717562777877384351561473334100125723989626042806221071644620087211750736200547896998438326528059237758761130918729433788901664314877293451643833659849269477250759607057017580624716330473566602078173551914855956362702090784567780195197586331585827731566648455439632419639138134104129087016616283401153829243284199807293091530248347914927382676085234969512214380502014696218847019801181329968597969425143665985631342327168367836296411151434930835851495123882340728052146457262369661854199731977238035557929742238360177885510462221766635072388666418531946966069561070843302842434680276308515594231892227798422198286554756685719647320388780752659529479177914977337142331146405216499793670091256824910409350285509668679700166266763421763000269914254010375213780713108615865818225874908174787953334924068999350210003985891285954431852023533043855673761480049108420968444667090288917011995709171173618578291835413218236501668727069736321524901432881568366589536869512432163261136155433469958372120048550760557216931909047023382092099002823207072382225451756301300851613839789243094093103549212931522235131610643651614625377468305683823586125119051132002200296844974302220390264108418730281044984227917303323112534814932779500274086808111710291770593738217416796762627007146389379773978082566775393540833588691757998638971684150594599862878382854948454305004905637336932531051806354261557065181962892572191333759007576883317508844095306765553180537321399852487307666065238832477878426612524117342844089681164926262580423733545120000692295001768417638834461878998704705881832495039350476671903199427846455190520515953295708598650295452436314268701669375591624299995723886472791992669482249355440274726232667924791650100832422237086318944903181635345388081348281913707054289134934432881294509612380081111422272865098269795478412103205764663754439347466105866077094447075971078704232367965195105106554564370631534457381979678233346805593678971464846643790712582755672247732127601605046463725741762501120425901592315177223758055807518099641804808023344620697660570335468383845007255667142676134402476849402559332337380444624501366873417553674396029200921617175802247140687449399186831224339759782487357513909840005010840448309469473464834623022980201358949119223062135236765285594758709856670919360170795947406765609892177764602937390045685642820538636077172266799137032479679485244088655388466420211653635962369117898991191448381273904730208159957868705500468684230951209593039386070900921696092613846939623565512449491908455498918551619431177354977532323302746514351139509820077494094694613392570853307988742078828473744349058964285532982830488955759900094204154371854901212218424822132048937867968802324114478697406214001073110089067715227896979930512056063800109040091644281825950093600931199533646464853267695087062936639919030434170779088748155870555648889057325902612706045830430877872058567364207184823123623989718215740427159269226483757585976061279903808788190827892983850278174690185687371096931510069431685407788615764268644383527248568275606970627885558634771601541421294069936548584714326155041846105926657843013603802112447150286003190860675419388403001404881815847471209816398567089745082449863535979189339677171558845044599531364351014771406922017577517474745970376168014915322402020996585281920021884764775503516304102378795021715274073794894593259900332103473477319108825709115736641295738481624185140010394096761528866412723720033417374127831490128360226593177147275454914170655118300845276413001125267355519115193149448810396256580544138480741310392633327028404576399794316761500611918360712226293896733904256941286210633433769151332238733453022027224200448381466883892156687894288707837689125332318347835026002008877456817405832740367812744705783088677677503086849706895129562130181356797274156275810014577529412616978607114900580565589328154186705264681028018990547334111884261721326238913402535577944392514808694913968914341520368119088991530805921243347525923473101465575534555286464940134206644630876896917772004688187880989123362677389878771739268244071427777724455497466158050466871641189862760697327537814051754157716056386330179147026263615502185757048680503978181511209702272736899003602020840030682010389224921637356591237590338156306723741982069917378232987716894764308635646546552916899983374232867912045517407269506626823902777619495172031843905630948890191711055641834388417670431497508406239386946849581451409594612822909355317522256518301714090510456477093292519370172939542516112797663838490795041443819587121942665888183654106775208508275114688326806177612270081304356693247133536895674814090088830831732891507691423423079193828433885005944024482868845200022602205694790311783037085598285458965725172436268026013038640658240048649531980035597536190891476022712700927164785656862557832194922264945328860511645326862463427011569268611934485908447304232199518467546808433998143999150521551336976339059506025953650320936377444684951743072615317236247245049693440347068044324543287959104670425408163546776456941397193544847686525903316946834822833006880117851814010304014743478275153907290595410013383499690884833252576231089086190297030257479779121219517394627106818639912453181731734092688303316028832080465961022972172963452210984770167170487933727626083875675649976319715276060506046446140584889155323050455180120316866576892026632576584908129198632766998729307443506983117232347368756736879216135653960688485649523497387562860262413624502931390523104385051943692204490107521979252947480067262340524694958972330536474441985824773807449945471235484215629629972362114269194044354852837100172092935502200618286274317920342228803697544196705706019824256655838803864484661463439344359924889889070018999041227830658512735459069418647788108175775165624413023785434315959157255373790179476912671332233804883095463426147833790151422180639359561950962290852623936090238775881478984178342444907377274680872375292526732484269066504101721311494298821926117984285033596969816877575629402984191639937282830503058618935192765849162729454978713845036245611248488708681370809457637540842888129592742080956315168614680020503611428262492375289112986906118107658771859893832043010472064373532014669472432827455984675403148023049133460146861382485782938018275125711761308500725506394500588716925620495041003833858161776652011604376890488526505944363215368373953086931403059491592355210470520274202079841122668121293040247282421964210694220796333040601784708645815895923680174442023469409250406265520214734333162296115839145025519481039740788162736659492267948528448641971281804219326972644527299601983299119956652811513642760661146790759817459813139104501363360839496862461933700687269972012551044145058784563855971382252704634429618542676551418990719876626592365830151159111285864730306600467770778775228809031477991391299928163972217698440102099086335334951444852068640169519901148481471863452974581176579737612218961489489269721596886615415451418697345655788216963720558564256757631666236164840859447802323193837775973498957727498946446795391747550829629914803463662596708892396338154319169597954419680896810405644236629556441059856314718439872284255284103431757700213813446131825869223481448794449550562225257888555125384985623668056819247050934648863146578301860694553330187925468787444719872683961248460076348721724720932587210165158215946656644557560345526808836483365510036658972582583965332410387288103965801381242585868424671200148428687641343479690371221911062450005815453045056811681589695361332854447590947083204573627553176518017836504400775778194844219027372500321190103932646511013321364842687672126744438500571656942026299737465777540066376596817992809632076208694866512376101708824886692729990832639125974011375454611039101793058074924104235722751078105723412737822712966369586885177081421883129463811348524606044381871791409109385148201436585653358244133803464745998325147972363264201236999235718450419086968567589852271126613542550785400782995537781314325434033288322565606495449982342576430908230952336021143064205946727777525793433354392714657786015067740345674436854015080819512393256897046439515368213628704178042108853628369718466560197351672583865293496996835238388205298413846518939806512016542812758813001079219853055801467259709538021292286147744867924838898826900926515427960288354103956090256262493485875521345450069860056164772388672538104347300789318585130922955817464064262422443845129008816246660786869809880520586416906412884677518945580515826584199637312876785504342801303284366806907755714907951090706082549087117933431153916344239840867666427274209736131796673161185046963072718964048118270443540266038223570249700158633324394621616367624388579900132306159782707955219097370905570306306749663797272728753615607771984720104057268625699529127383598541121199412538388332795327689234525978475305241924853711099018442058518214426488710462496249638090621744211684893712867465551491370763949994529060221752863718401931940298081915890892465546326988421763544330312842974549805714727891216232836158458485372343741531777035355203129077655684235049233583884058492269562611907280604468428895668526970048878822909384903136472477094786872496488572981435092467094207117699768920146782359192627893408142159323116433843680600140881701960963939543013578511956760183859325489520113635346361577339445808440177384861140757920090962444777077105385181456643615894879022667561699080884473586754966893359278430329713805065460489007747490813515529108649024649385051604650386470976334048024145148676028819146138215403512549670169273028392125678827234412762374218379415451636431607558285710420207456742605376114066252585182259389792599527340182914835847841097898874046904466972855082480971204307024505779016331928059909990242969764747477495444430591456499120510624219474567590787118175164833750295146034980924967694283113117615512919814408780471640634631917569680324589092279698369107801127930046712245588288073214405136216147356641357920202027440077457332436702082984838130909853519164513435175526397853231916369194279993950372934760566224884405895749300671114360514945603627330833241618277613108205599071061425325537134574522061722201967571306200750893414151863972017032662776799930542876967417647824578319613518016348883700474438983144748392589968731074920044599058896241595391785017823150340803437058848753445732935380229635761801788167797360788746410544247925544962799432953921829658946098877629911461420867282452994289630763808091399829845956057681582322070413659395207277198003672997912776029273629883453910340339906182349058140116421776277762580235181335146518916237298356476582932661620562176774704201038707504349815283079841904504946827633343317517646061047581898480857514854888378829113119389755663534802848381589105974430884672346827640332395312070011586209257308375508759821729900978231997475472639037865742654943274660056146213610167006836695744281058968527771331189132807391360869354685375479248238384610402292065091172166884874530676594943507880294876324937296951312297954553139448119496407204545842913342779131486846398260139057242885913315807044451603501777409025514529813855569169159030027258073664837545731228448407105214988906788407175870801731859725767046357610057448399390018594374399006169227407307034267526238502693121547942414285729704895125153289412899515153953312739208170926880045700779784148477994437431403121017574397729530553901085900225502120525850547578800369320960617862020623547213840657178827247010290750262222786066978726057319955758462770571505369430214068213886950739329895249048693880874591624067370205873068761823924883039193930377917692864453388669782760956631481867221514093076036361631359217662723879424663643393332923345863222463554389287280007165816384127139671545214834774721616323565080369049719371846715474874359329649955513119158444702376935452667382433079932546079217007977428459061308962567324502746053532555716390574994987792471474513302386004632646296384416872221910110236467501725361498146309323017354336163326466134095482019308322338978594525957230611675737032982696172632585999437412352926773626116284292000239776939250565279313854908792777219309818190213637172420925793008668921646894987955098307034712702699391373230706383716562224386523920509603298562654450004547992401373621280122552075554306618632762383062189119119350904393761845006447058828217880647791481422360830302415751457689955863403082032516376091486410800447079821337371172787988832929884052893140581006235187740917849209418587475183458389254160986018469241891300990743136716366005126449943110599806354210664834402072106042045141018845425672603120107901081949406116350767826876565069874672777435832246661429866312926143823038786009247169891925132764326630600048018927559594434078780314645396402190718434786969269810585658348463854058579599977572408386239238381544543717021125311963213403691260603526049681815993826749334226150651315008525783043174495814392972051010056217587393967085779415652812674227878680623830711106813929806826657158680810281548494423543087322834941829353467886295673550037125939712517780657807107593258100306174111003909918773976572776434701705367246106603026235851038503699296536616766469939115352746461171311592350449237693164016329575096528249304536470487856358863122363420588942255112763564820295277877040312263769434516807228979802540354533266881385205890468570574034955547790943081920309073156604182453021291833101120330747275411043235668731801669905978808215827637616383067177170691096049905007629381486158023896792061925654433088716071403736476363220397375564652765628104817073959360435172136638836005847557977228884101563298428644958063167098593983846439799951151487154508972922860708817834768200279492210578522068790871084438858481763359803125040374695042530297518589664964253352322656865280015319713173066567960702645886413652530190662145780361669721149616049828061994348456906003546876548314463108058802225441627875255489380426500668769999189123031444959147072784184856300736185343837994537864662477629844011311767987644052511760977749542318307884337975081447721797082755189307949604600118106575393074741722119988680168799427874481166742656341827294479125012196143045774712236005836567066862185852393981374047057110951970739204804638806468197817123974073559400121722840632419942418156424347691496678348798632394027510271690229830624564338799025104984743576003260574743346587540873439458227503744049096672330906952065870844364933624223830220453584577587410367338704836007765530366430116107414224875743798479742017196512708853883737920003411147149748840426143815351188497608802116558061024842502404106758805133925917166542625167362112438983516115059458711183506357369296216779248346873511806655377051412586497002844570809870846272645439748670301006900667799192690046671201842692925009073012108301813570530279615790415300694992718833279830220718555842696894386544372393725225605581121993014616995721424309239409088752373818948594453755711613604986047310567199042565456301898539391253826248176800769791483801651498781767203611280647735700821817917226935479701650629607725379418563870461613838973191437546668897425177561114867352826344879568584102074386047038361996119175014890264398629534226821654410763767591664425647623048747154499134974671277310814917334464327926171480949234314254470047472198262712504770459176663816252254464373306989804053207583467115579733559199945581402028230853382868306190150075394538380407788793136369284144288628564335752599180197570255231631032729614823323486795576119036141587965927545487522373948310893854552720709848917247156939073610537711713781521932440412291151233476709431025585273232100368181699270885609343734804352107248901506060165991026353002511020737225118784525688598196369772015325718616174250835309234999711921350309804129346520409484345741009345905727894296247515296698569207080018658843410125853322014900238937386110010779516535904442438284871434948826170185186491731938091538173722457357339262684612258919896232806903393052702466349910103430766804856543568775019025051747970658551430108171928476435698801369873743117265406246149082452212253951116755975167783685293202668906158991802035643261869565981279169537134919947918175266043521098703782274628585393742730920957760425693314894509048495966059394212119314242115923838726432358706576078324088257719830210622476875080911298695723666174232204924819027426876895046529171602430876852752461455548113841390418502331143879324299037754720692081801008002053203278397909014087323838971483011952419422491759621582178135639237788933751370896487468189348937523999015809490392338927359300276970953340282214788953486981173480091695236894872374878857158558523986052083982434318248106603913801385741721398668219217937957124656880565092174808281252909815355795631054598288289337109532513151843664015339328295195111459381047668327952434704885124391055157012950957405038718697783490693697456004326420843642572799010974587513020614436861155251102348960250803674133247331616952807673845495729280892232094847501987723669485630044509484198495124975082821729955446810500093773798515871018625251641989329159851401711347819675837683348208473448347286207649098241496943364859280523334901979825361587695561084667131689091420445988855872576824534005163013259182578567218820814419188461366104033729127722105148001440054170764320293216590001811738630759417784747985540925885948200515672438102331172330671882785061568503279059870476092656322402446377092403148622288410413546102222735446806240477239000579470093149364124703167301864429629989324089660293937442788311390626375446052162326358055847398719984518784056733195380322369257214092641263826078268319744391258483240692303972926593038200632810684213891745978542495882478564924173712396308546871334966664705604482842147187963736723462603032268120058960307501073600463759203797333735322127066762068463544825053961648851213031192734508611387826653392664428195563189551005195004447836546859906935360527695300435128463758309967461231848508841129961161583563877163097477179782518527563799081146859843738965536897265732473806465307415161130430727185206000704727142665499977534813676125381592330255857389261093637739710022830021703980087224369893551863543426106356331096629264036011018349058148676754086266578697382608457678530716179468290655748025522122779470775109535144609420447382729120703306608286091055017945582930416165207172015051102279282246336115143766711216909113134532297639694025774645059437633540638714582652713054870439440543302767105443609323972076153102169208177119757116770216584058999753276149045625341584987215895544415418464016399212526974215001742471583762620506283394044883295224230413725247977535866875925160092644453392350266667767427606889004730895428622232571261693335074028898390489115336183928103662701145086501256703816561100405018143643438417546083966348190940822963654845462778093527422649176255783256847556387803071732388556966536264658582441984441521080278749449774102050036821741561829817079694672240651254768436357885892661993846435365723435505244357661201350156375650220899715571702360060561052615786143691630218631323894062400159373587587757908426435905941311252068478189107616841688581347083075683946443401220099736288280742988871678147790973956034468658171412811807658280929557229474179642877760459638601760029416939333572931852498383161497673384681467187812551118949168170026041869126795089727883025926522502932755616685740336002078913248907273537048411771869846083136463122357500710879295900126870092379845828079240471254064828525109283882150618723017770113237327258331571372431263678032040631641015673573565360546026953446295796973906218245181111321648236468458693241664836054486597825424703824874980094889160251272101025156900260431967796655947678890099633896202265107559562032321371167633042434925257903739230939693448015963501222845044292377677202221780930463233074725007848384948226805276474260790669278460233509381119269247432210371682069684369588293571374997834251082544009422173659308882205701913646300110554621378095465657209982861368365305814737986179971258236350887898760492349005074336046016468107328641465841129775692674679422729535143110282544091864530050182371045187566559428467149239768944866792700549227537525508849016419125826235766586656771019224616312475635305607509488075708423056323587720292501208797747133224504357519010231435488064073413452396934272237239779530672605891926339466236771107589697839224849437554114627267516302625246812240615533632461278987200813198856985403625918958160304206908439661765225132502219433804048270177148465205004252227456182356490754337068873822067329418729525850787302670787916382502127074584299532383928089542754415380982802701162832946234113955712270980511581453773574509597069895719981721249377905807218826323668337263537410227476050777589843517294459327480928978569132651110289153571308475523300255420960064975738425258076318142776867077683094398013355250111372803546762795804744187427348601611773478281192023173733788559675755722043480249485633453693369591712863465625543365536004930528973111558232697112024376226439963735491995704429106148463946465629606058246447513141478884603878062828430796801104508098122586873583819686476853697876505811917721528553998179169529439426660523372965314353635276049227954222893503957920079943043432240137370797045015799481074236945878135797671142269570993174343035456828569534157877038518859160954233516898568569478046524653298539610231006303222072486637896368060629401964718573885850304439748411016563119783974041016684172727411639510668932748002549725019643200537875793089694823596518834880708034212312943744619177942272544041553181797869437463744568150421931897163459047937195064901632717142207413754764743616238693317842206174073203149654392041076578171518430289347130831828044006261801711783582851734039500704594547969118232845329949897364849369358328878604193209009868861483916894720978001024701325771396182227244807107896708617244179916146708633422569452653824845181112076192600485267244794011931565490540585523833361534097470751067813374227994258037882357926863768651436801006717052012324679612360339448142353250926050855802953753428282634488819704531431784235961191785517195813253131247721170671393993173275653550054940376241567215138889659713432056579545109868232432862647494410170271911892383523469643532745174301832708930986074963698503013773291937758535808168074210502042975878426209523246171173759785715653035472993334239739280607078113709304265153837089628730006043073654268335108121022978684292172935244925961958128218873052523595191727531197255904626351051444081990420403428025451758394366356693868936561623043978136898803474229612370928718459687747472811463109815916825983287880527270064853563038662263205664388536763910106358300945665861795114081390370265589981426661675274211572670469433247205584317048733066029592507829102685640318538030883694851158730776497882473181549517728986578557943141855724576794552708618977950497511705274325037152933440271264678491217831439830312581984809670180940469752510900952454627321059457987843941564113975649074355193156556114809626421368163154997339173396473230059906070012752168772838541422063010488282774442137801834359524561355712844511642607445074725257458213506365159885325580637820098402670796535986746812895812423970058425739417942888035887317328063763266063374180588175268107329603677371319458176844108322569993499583684102066921894274158992919188385197757558570564902965459371890001399617307229872982203441041928730244633416634049651875239611282732811328235253304833243506701990355922166171856947122343200087586370462285098325610257666466459124356941823604673283735670690577593262632754906654777408590738726381512766992424015966785938884010091506493397721123882534787973327878643307501403296122393850768536646031692841194905508011419566756720171848240502142453862930590693843044483557671772430718056093428773181298920926190582190947242605985401849192580662851711474633287982535098769921716234301228612256679240825535013527466565410833823042500582339663248748741821662312633134274372181780709925890384154610119764173181304608575112742679905729493980640258543642796793779006083077957360471395281765240587523084599859652303869441278883567365457852163065627245807245061452659918854112199053093015435989380361373193415408570918804016385482078547979020051749834164592355819940941877866094844640577634011260602074429019162640293458574462102387124119534635404596538077609163615086115244827492509653598664610312606212283575387308930483160900470289301882406107582397025400765367114186651917038168909089330139529252995003428521411665800757038376755426057713172900781661236385817309408205372115225297748898128088276245516250188266852312658410740140506785274195938684716322219670281510409307391623383615749824013338800096468454051813815213348554462884968988404814153247047529600489781069150673528106508246906183523302893957029700598433136093970779922027767005625496997867570683653985141883706537585021506707772926778935315858665870961664588522718656798475380759328012259183937895186589790858725624616146120027175238424740789221009514915644389001319168715600814621463450794675601066638997678423990615101923054299610988168029955741297877699690390644497634582701575694193058532169057674383517865074917277652791823203771369474619998746362686363435013374259386894975236842796081961500091755729675473972600027867465114895208425121920061929408804564316194725587933703448303961530068303233982768009584929526612059256289829370313791039984240330712026585854823343138639427156792085051501665231992695190892893511691905563446485453810796783076841158479018959120835251120652698691726734073085129244442583617544925776311194928987802022389714237787357472065744528774983491152241036781729820070201305811784596275215051032045222550272115173193850041935977574282096189258125917318906524926703185635338125486703853504574919430734930072687940377033137860217580926851424945210214537383048991763661671135195250384476728699289756490563210307614783143579251708364581833889909309103634585068784035230544722828216631675486753370399452247519851633910217871447759268767390603092461292887787837539640934176211829114510213101481021774093026960678487678488318958766186720018641120149512204497866424546558265584128007793573537277281076066143490482922863300509324542238441157921636264734217290403851487164340578103955858869303064059723368476255781842257766141146259593045437439885869176527214476490645920773360103748511395808153046145369118150297269158129967406796510838472017018639404213450489332384416498673976621680138311260669134924001533353308890335564931150994598511703077331428754732862104513411472190117895003370782495174148580276603718231361373868769967541927921347087686252910841315842780192795155989537739747197966070790363167980903356151086894646127092328196106869827879841980925375557975011178111357096549215008123107136438191387491646663057240705986156868914326683278434745665808476291454355499315584560411699796514943843376861269890086370654517595810123759923729258854530420160281203731523667999616049807589721817754824650364652048986657352289064259360207780602094669374374912300196989505682018541111145932220719378972701730714108360078607675704171564381131894959357826142124164841303118073764856717459929491638060590608055115277814185983073912847556587100663243597769769281338474110761383912663778871413239800154807755641826973767436521131058412306440153018485779352533235747677675468679865995356094946275549929126091385109551167630250871501055980146707874775199450707538410996269832600975594778499978662776466343610515808229274155788141233140834688665479523487285666162352770645960327199236841062635639311036167281760339395465050170682948264149481653205510643498290188834505106712929306183583472717252247813785274414471349586491041166911876389785187477188481227093262313680217530714031185123172725555879784373746057844052323656333409158803530590499196896084273501431697567035352914028250570517092341595039250852427709205705523688040573589205836834876340477702360676933093155690199767913943024257699488000246823494479835965599881299300724654052264739631472653910522859078798252231620488303745982639321233249469028006732397509365047190017039718845302976648960471355887586564848762180490594883439948445751058701231707917935785628223232868988208925786935529216842393923292915171362209761315005137816014662248973294065161454829028876743803927682803533456680634967874361134356471913152160294269149331843776572283424669008623313431817955226826070028151390290342102542327148263855000546121425977704182203675273154220621332062076688626155900454862302829703402580021603206921897930462527997401894218735403319648406212483273872302710092307901700203635392040050114813437953672345869646566969276895442722171828377835609721426727709327120879752506533154339830758756399605486771093631760914359871644346497086148763627744399314323530653489654153213212521619719953249302788734971982447639802877161441282750298582458506485033857975526519831744824224240087712059388327693748975057292782375640295633573513160085668826843540791994189824261830470566244602740249017283733293431593261547233107522597156503749332797777754919317392473031281386292210621083142450872473484381311442352268323708874807417284454279697080099343759426163123154454569824761259923684220336043613495140299520651967331833872207977333543053623839712371936599955368291754653760110818349807143763058318527500267013946609637901716436159691355140673205313725652080036936703302481269533979405333225554117895077105109067635284744487965124851343399894140652878697423518859745436962629698749448963362663939963494432908300361565131371793788995533419777844824802953266906569027074524204312678082142250393872170261950694769594828336802621880891536823818103131600512752609079677557906455029901531512014959550603018863487541725171711964406419875324907446616963368723401105732124048733115899750783270338561694289286228858975386327670114810171462881016046612137568759348295351461377014708606930600987088879160334399672194612279938998636279118629984038879782355601465683856396645935659916960120925838566076406651182954461129039494912733289680568544273413968701189878740556252799884352774656705577851292364906443918944549562547501430198183282572282753024450403348349155537853098011510493598475957423286156776379403834343628153837162894489745497615933347206339528476908090654662939763183172675585218351647142578686872603221175557789053211270388014541304467752349871675734159792965137833791819534335210500023753612430636476034498859017459030534378948686738064853681073602714099055302657980582806342335143784495563710614947054206188367144998804562132523932800863635961319021786191483066747698849072906749300234134114742907657928810867943807892097015426751391686273906215309957281215108137217168189690292708936917286121538898558053722784813789197990870150500739954951145627846961518493455963779215319842537301295443887798845244640672788692111145063012449030147512332359611202995057254786938515806293449656296385300842496123290432443725430573363020081587296430659657331975423023052299937569647432683570367980468985644637754105188278114862713084536630029784181643116564503714354891684747247006720112821398995681084694958014243583449303555811105797301697592809991901060685657724660634167216878335567317547808145173532630086467025543523340820594842400477857648579280986052899233303152685369673786880536885788056584787377148519608020551381435423451324884728900112631710580013150080190817941139422088584322090209112451537560697907298617487194211185717078762494365747832387069492942269471104625999225483536619081579390739901695885197806642992859434406975929843130964695292404929468318203526911965509968273919414849762362142100157501422887217706349556885378415956643139329091039523733137848241743765814944558686140214408717282438113145806500671692530465069008558182585325582184687464620696836528052716420017889323084221834481365250255535990314119806715756708032103208733462718555848847548593846450328880374409103084994230011354580608795416908839263192213849401152961478209237073163694706038738910072849143952647612271006733303149938679214693770966936910605150340321821685244011422843033469345934698717499927682415483547257715284920597411588052312508272747307721447424985477774398927055893901420505080625402704899517466690697796078906329523706982319244358035035324152209958962180737535247392670763307427076159340758937651162692109512742032417293464984241390383161827368447352032155417401443224561206328189314835832831836382767596773884770009209408218205118023211785863176944853617053248847485838822922173611971784683344654814419784529010275666218478033417924032998296758213157916758683191534360584469836121709365205997587234067152066395576095863002829904152650780879745518658981884271588262136885846656491851088904765262269064527122883469148109864014405720811059676115061800756532460043809709177854653675302639929389237369404890712355183041201500105552687120249118365893781235264675017045153205573628237923555783499609490015762313951655824380665920740791458132112310929903503117193547759471307696518239264705792236078728329043704177788549462845163663651736813557237075233393949353355686678111289246990516340112669680504152123083894773317103773006515984534142415750956094749334813709487902102270140544486200271047194322210760214598472646298012162974404833808760396149609154293306105818123170559463281288709159428023371392674544682078766509622337527533697989869150807197430794887369468342155716160506595292695262890098900665039580107633954391529629810944720297777018384620908274773737160279882332809427241864921785770483856029156938693815429105083572797542132591364254964081990166512044281525406988376114477359581495639597831628317125029687635099547477562102508140021852104791194667449151101264666979296883714602847072973012955452434535966379646920980289748179463304791114554471262949858958592980457952503907404556244793654783977011944279935129770584873445816718259767455532599589952167269302562317084912273874496791990255347855766179617970376328448391253128052719567898776176049401608895629559092021924049622636750457238154244570792114640030866597055856302590103280525324933482113882683422042651126398504284139149867815359311181446229227170123045980528016140943676410638584094057587545671957983484246028960209517916572031539134440437870149779522665456241125435067846429151359109902499273457325729241147305398451793477123206109796929827568538525451792873747857095866594203296412841154801753360660187397870788052226766610231692752048601631928156694507882252339566681331725360239809344953259020860442861732069163069335729552419589979279686945340554552090876948388460969139611051110112228291311638870934978034088276239495289122459208051875682765177384309601689878557940772136686744602156016559800757092721993963573184277070458027559338211045052955948662610836279795227297920270277399483295192009496635077244769938624975908916683937680738879623390741330864599181756080866791518455490379753832899386702672763064465496037749534809371668158076425357940456068108397191558377627943804077864962560399480979558803475811711238483896534603500870850029293104237565771584768865836882748850342415849190931657459165861014720579182736296028789189822279597165958792361245007751952313274068698741336054748333267515328769369881411605356954075807715935677413215193007122918784067344888338713764945632037069862376773744825043830796914040209851429190687577116339371065958761251848964426973061629155935131096517210834752567021898418905612985222805605525733864528499097842467218871170071533705610539091126458289112007065799359818013450169116205890132730729048705822333538871820966122275772626304230737389004598332253251598218258580848646376358486288722980065422328737197229929475664068950901398233391549327898304993602549215012685197361161379691110085098378251843973875546454489018572303510631327059663695483062019097489979233905684948343869710205646061398328519545346801563497554091836602873535400469702833654783770103226606937251685146178931994531537082037532440979195092854694403735084872549060261874822163465712432634251709190502200703482486937487098922512627153744595987418153559270876547314215065012106535611901415676300149129295751144726767906349262204563619858959176265158598107532652762171829229474962515041865747222910086270081869695865744197118141101194218904986796809435868260105407501828346070846516865038316372992392364530471669825720486365440885191789841696997531000305239187065475353708790876764233742967698116752926725285150502063937549791058434896330249626321890633009270064328042059443878878366690540794174247984188996380055895082096267466613575484408832129548167081884535657448994219460374796408013289669048451607081345683190809049974245216721803798198437903161558459447346552736641343141214690398676443187290648578432979909104352243122669507266609253306266852087907646769959207395422535130072582489007897546923262113710296909572209529846362750726431819026351958583137507973254068375469209082011749937306468010737851397321498678870358706512069695544648808906156278822115854954748720780882486870423400693397212268876633817847413052216507317789171987067923473894628895976473646222836331888197577731758292496675983642179440873436655768364603832929864387994327730698213514149354185631457690694183411410570210932584802054745121685492276592453101340837037598880525450034544609576321937920375872305902746469840224996487349507697469919472197708292402294514456387523389381499615988326043098962852870186660317659144216041078474194287818213299602587256257571860629435029470875798064143448668758671370908674383574193610101563197783154268738020228940829186561392398378611388348153119281547858819705659043459639731106730303070409974024908153484685486408015908760080607801574366498642687334380633838980214017866238607776894256474260113894229110241002360176791176987820778399497360455851889738006058261502680026174371601395804450921189591235412554459663849031954027278499861506383413941878457102005576522202536993464892398964106771113493927324134182063277505600607842951963131833514001123705604936715415838396944520901338900200075710991826467584496569658286699786439439721510612758761979896035758863024784340688060513367354648497494552161390951566723282175540195065679585315513778705494395287431999646998344613744230249146245937391179475781626553979726009120081086083262245498169588562017262592586759215168007249354779062642793694430234177336904649127213570462102332301054354900022405272622697833110582279411957307199996362820203669156316515929699772756155681824136193016383861709214398728757299993348512398439320823523002789019230961649944939177588903702773224054826638250273676743519558878801219159460029685860686426224471584331572612744697322283782866146178456099337050286771914810486328364337215915276614343573804298076153365155097886161036180393706088029327867035088537511397394708505999608493760220187205091899891323395191580492541180295640755280774674169701921550911664791801110925618377138550921171404294638732848867884964277124792484432692139177255671179489905896858107003867823232070462545464626861222575970835900012596442910491669234349197259646191613677298826739493054709992415934713615672761940081090142179246673485279993981897444352864407087876122580964635913858299100866683424991186418904340365414884293591512871459000798710231931718706583516155028610886155113648400291975567721987711148024465357491539069167017394611444882536109503293844478856454810634196669446424312009107872719384418996944147957374048423263038235689617310056711905151129778108161889524727261629811861500919019039801012394210560187751929075778886873369745532216638538120159668838197274939262991202390813781119695834346972563522504377406836413793349743302717458171408231458395405640948773798301213174359259878150032657528929098699281764395849869708856868495873896499732750825977290461869854062754535798515859365916866752296489628800121235950810821409882841694378862716751092824855060974489706645587482851118111091802024730927564967402536425720880805631736088061890802042927247336032278559847015824309595376437953882244040787896799131680708319703691780039992136510812895313441278428750674725201142376456804387455068490298102348265873408887100002452017936237321527819621493464881478139528375866652142663894357358088050309620423615714016656818278206818626664234167675050705995627179111978633721721171535967746307433248946567929570747426065643773033196276050604614625546883500579538837088890884918343834495574076214121434230546843109105153350843649124141683775822746026052961519806538615958998464536374836786034358684159434350102880260299133537441491957074403483999612443831419987184556574920674203370257356358447941289964421968322271870318446169996197477865827500492114852649216980370176313394749878906233653555741966033294397542124003134777260472962920507573174491055608166882340961560376876631359192544405020103183867833912757188568102469889850846578518750040164166620139706571956116019624305898330849975414019607304923998848865322077691286970296059671882366960482653404530379787941411884237607520477144245065170889972921237485813572737715265013781922064043723855659864148940521251515492163157236148761977560014622850351329244918501085373776313487157744205574696531338602561656699677476384338831403014420962279902331578443897395700241207941148438756809070410406469129775631152489189238644526286077692899067541123386097066883577812328772823574689298897768390404492626664751606679722031371964274923647173100416295586667726047416748312111810184447703303240685152589879753779264193542957201519398143243434185350804496602394719458868003337631442065634809505157125801258065632522276936897036691610636142971550124573884295711234605139552764199999256880352296080134256279186250570292514223472727626842369328319243748366484853613109944149419912782419446576209841344310061719629637805454156582688820450795557985147822049559425816480014740794105751320884000164668223495615448466644053373944524260542622503170877685684547372177378480838377216177898584808809765478285471665574417323155911632422432387524889479650869169554787099873324106978259909156889092001312979747199444568388699118979943503618116456881794247090215928012334024234687411973963619731808867878152712604851647050159095873384342383936090381888934899917477694046236228586067013344183463948400001703531111182256198662254914566439232593494079900234360256441448771536770969917376001175305388602261806784326155761256757369334220679204376165741382518865809480769263101036072239229224999113207129492533042484660622023968807838774233680083730652793822829994204059120038835120654192559342774604125780688210985315556641165141514660707004755994221319389814497259822228511585664916721439458844030034818758823987792539834055468935266868644832448752257921570697886962986501593908715285889692241205475126674175907644025005514154852222508135852655062684096882300962494502683704599658182838258198142583478979912490884701187112825438337358391633091250274406957160734679520075877565899315070885743777622291338651195240205732922665319268372986126540609257301481537416660347710530334303968718660801854392917067875119698809088394289968848462490413961351297705602055246903646125684050112112501781399629466819574174804190842943002698419335846148281711189809325522430804451725827190733798693960104652092494717927327452422702809346988041319080087306106708496929374498736788008914823748012383283579715784571932584339264170062751639306677748929570671248168017705913866854989906470931291271052614657006551096787944865879748165830928257913119131053440651842544462824382963994316071862609338367258897137591129296906648783687118595247847324081815115893164397978222402411532648715843765952519434289647191410759588151211166263430271569189963648890725169797517569412830940799590675099582394534026577160593644323250999699867491813394727247434322977847556995795871663516546594218557914949938549305053670358249347300109556939409542390490077022701524781129428177086630066613118814021518217148410175409782508638068376075706093981626327211026695060763285453480959726491452533553842673012053738161214059540620209108531761444245545411239605532067012045120440485432192949772868904759619949716164500505442596558401563150440069500327656982901377774688758448778960507208395233683222668691850844587955858634689134354922843748276472591182158001277608861202473030986769798881931805700793617458911098293150378624459985516159617605755299284790096190012750310131648417826638589274402996523834399787549117633840754052834949782283276222030237478284506671256514599332310225915910670580877520357506767103530135435924229248521888999123458493664668877942697275309154346760276891665373342242001105509889047692062261740442599285413391983490084571399256513843474635059449940061481808394736738360515336314507869944383928640976994616312731939766997876979920648243050258862270196534445040746554594212566043435651135692228006949374827498202652398940223465373087043284139083621154288227687228070989336631040834936337715588425223226218541069928367645150378978750004031769892069116254291596022206872447272827847322377333108185408028457080944337194598084778463878458376227779966391597645853102047057906221145127744175786204809846434840782158377989482498166383485917765837607441774156673606192176681369086858624337223694036556535993084361126621271637067657789461922310126800239528520833563874977936995482944647984865555486633001161377908158274373524697537321659347749324176345210572618741534169817908315622140950797910728988808014232534488146405826971461424093261720128075713121932208946380777344642291505114924868098518553275309766656141133860689163005518859756564291783898919018602633841452377031587974864247459809940869917892071189278197107275845682357167198834061034138335427526685459202277561719832061403143191775516360261897813382995348520314380137079737939942468309703026203014075937924998989186064966811992256009186496324689321602722717058404295499633416637727423621315752187116022805687528999432661740963248636424933292578926769710498492682134071570546383353206037055483657517686418754053100242386167726708206059136404650307202807395140241178631581141759264324994930989237846326119003013197359521886986916354788364332090743522359062753403518628244145157784671919231199298991040769891291069022505815834703784014687335107654151172837736949077399758361837879238374923027403192820022485178601104737477676537881968855854388509525280948310168424447185203558835671325934720095031316594362546871220550412371136961926810999070726479362938959420477856501678892293986577686605525077128478979832925366029831753467039724627783585022031002827245527299706359500981488595337674894473971260595025926906631639333414809980064195114349539268400848922406229394209937920764690568740303614649303547285937705560128087793929291900642665990477222586427156733992947327492721666563264823863078608739170105642249522512743102986121177359690933137603278371086380517066279136423207795637328597614420804240283558448510230450958291735849170892585239653756224693872609269676667782366738297077085198992688748117182595866982367372266516397131977205103578403015876748080701423475960205320835214966983687383184949491942334271373837666475442213226133159453495881329319004221977191577021769926659887774938542239833833664094253645743006713968481352873538124914072176140276699907708785715696898194176234246595329075119489022544972370357621178087053985002210238596697498946480623506945564694522126451894540792583172535945568583230443684005190994899645269280667390110092347661642743547876271316477473892375927331185883620719130407711750849049452599524305871156730600850640535331390087971075349209985120032955770705688513298384977054985990846281653124233899147615321854477659575132523398113306976689469314371616995097966877432752808230736641162380747582558324221265557221417073906252678693827073472295568790291264367041425144411831511493039109705660652660606233983926490678749155450740615805400616523539110655698177501853510503498112203460271705721720331799600046813556253726837661809366326410412538298767063260786602874805950595106845109640820297656252084732062734784552532241591287341826469236562374507969913995412936172354426565184413863397841454964153206614620236260645044434568786760606986561735575798358605598321562540078879385879619028783558690083244769203349003636481491380736973073341373167500413203163256886859299346457452520352619544046813398737203446768267281118811307473842200067498005726861476765929019780891186568530303409828373170758930882817000540330653878105543332848506308349231245879939405414421123406880756264792239880665151440590474776750004096884180804016833452276942544327931037286283306009468239637555476743149237430250418245690240442885147340771588805539973503585477961633989906380470974125530888191311220990940004569286170470080962103437452939873712796314446786765507829170652199390024532525125140425835722948272463989241686582496125471789840253709627950810230546530403299520760553611941075373526182119904321758279969153819720324493278049501490462798297468378070277929845979041633847271794317691265517632080226415942070916821352559545150504052407274379707424548438455212690759063001783456477693661541889094473238036213792077033441852085029529840948482960839043026339405503378532944071927662307362826014347900923198310164813203255424534053605550323928314115804406129515700092533875568202529566939334338348613712707403468135304933976323979680072093368210142748480379502566140908146858605730232220716423663821406493179948693610743714744726734400424571481136786460743439763295661271480433844789633840790226159732799967976717026005053064521902725216789658439286120456713136876135981547991160240394087834983422115870940941921750509766298049426685569709067912542526744494082771359033142332929795728710667364187324978354858223850196244830792138279710854699960236628588352700958493600259791430580470176216583471223281435323278251240482068584143214307896286843324293601111527581734260357428658347578995667862649398423225680545943348654573898318763737569091975285401894915552342354144476047412757296191265777693959796299388723297793314400407677205269711490890815771075533802258127954342058981405879587241920498100225493041202031727819568399592263485730164168665872214721057884088193429345686149191554963727320986539648804222839573380698618477940914449541154737202964062437212117488803840344788261198171200594406629273515170663506948086173951104468549872881244438958590586648591932774824657865570469679082407929410407974913240194791793283514220345822367399570821015248159383050802799117725268357953104983216660338613270393239974749401061765835503533296737545013241913258736423276685017369778092428045733077207837886817701396066880174809517409890064925924374527423490839206486844466842952088154682297694520571009054335156029985405201287081190816066386050763506022721961705301765587856430528743536119992963584967054686013055568660998094988174648720914808580561202206514463095755272466491152192862463804951194481053554050325709846214145981283288698738633865286114458091898347104799394432463219087847708655909828547995279169981704929663752152020505616215530991375630438942678885451982363008403685954123354899463082545039607156748421242946340605928372509262457163813938562546756079720359137829055224213511804650129296027000231324521104181563097191605549280887154054443996662355743116454548431475006658962589195894699346703731356245310372604976052780707721550195000500598904613531489370396926286450439426894029745231242875078514666845017814331389704603674589017397094378188082352376668966207366709115459655474372814636520727103086778483146526325362526231641305205629359598957413046202666737634309913134751084110246949921547512455814724218133069373356718700579947878975548025290979540903274999395738887229968189598726542131764317480238567197148062308025352933192687752424327928130837223970045547251937801269656241765261036791503588246047217089313220939894806807713488636762533189345754224374300596478844784089106313377126371688734000555911231154023059001375967744224708719675548131165216868858375230142689464064813096866148844670538680420027905388074950261079950575797235744753701161854415990388145776036029366105801066375374767617994494146084088565861987614787842842836434584105980646849838597383329605356979773625243542028020422014530130441095910363014955501044349766935042040101276388009680240860348211112624698402601880500181025447519548626974456385237404457389082520895402693082751899293077863657874268220942057906223000692306074178779303649468512654642982211846609137076823612514464333236945229680408315788132398865081528190050345670224418441339473564274432487479559872136371867327729061901884370894576235464261125354922431753001517147162804044617022170809149300784077457545319272218964125031343872584158872515804796888170716695411057813456539141638341989855071110094866564402910542174217893232408171290168450461316296294212574498874263913236786074791376832204915906483923940618579299670031811786951273634547535283060525691189797827675122713402429769160358470518106989219384066117277585029225568337623835442220145736755829683554694314455491365365568257994550950521328674217188132151442455929815907696573449792441619829463141937099937606551824597652108038109362387485469085960170044829457762990361623250457094154407920010922361350970334022015793397142299267010101365699394633979388235372984557996211388701102846684910087713132511972328515376365681712738718292526874646020700250136677747137062622093232308819974119857898999371624846445855285629742398137013569346579787899029801800384821847939640343741940879113714570768166789452630274102713416304366032642413658716383016435591372077002531938935298076984476893557301947633926200203551936086492514836609898388050326081998038999402648952178037971023182468673537019055648741052157792775432514453487739474186801121241727695000507075304217687987677743866974598650875575477284899050762973807263710787063003217701273309581176910772364261735858602957374990051679108863657562657328759145265947356787192795111047374274115787462869800850426796480366223065846432221492558802118343933112155956264681698106623111207592778746357624490068993076262999625273440879874218660484493459428604146372115416563796955027435415492335671607995331254457149923427998524411987033781290415311977209002836195021343093220567429071777218366649295885890561830442084754677032207585076885242002956920904995805292308363747311900460238843725906671499722828872462372266930961827099283824004875221467153407390940502845157530547500738838653527580454321713670808274616007446327881316291819841147366913715911175067837810769457657699126211394502461811064342065259803636058585913013787057975945861405998478824950891218002045824563027028222792289680937238401038858048032613920435020626064771606968209232469546619384434992159009518531602865698997570118646048533796011218103508321327298184551889653932410804314965331362662796267407268347013025881990401296327958041112938645525700848380889473972208079926156089995053378343657107876948642874598040197358935957390569994223676346069297513139083579172400175711278039613324533998205524402089019257394101078380233377662684777031318279587940286058719528634015571795601106767137960581306180325686895480303360888174965677058012968033252761244826909134453344167634039424444168173502921927346844291291678805646319060276705030677062171816588570253207377000049548889112064627106415634125314561099248336252566804894585973182139584381726734658138514443549937059206103845536542722718559335337877055897157673877084318107670582413229634571897649072077317875242973529342414002277133159007086851187244327746540278616758551873588219016542896289512383567125269852517226523100817921755253925458767085212189628691924402078629670078582232196519395547130635151088090920748295091608462560665107462872391451218342762155864072246131191125899127544017607952854231280417429607281890787813716772971600345990033396846340685529596681204752345142036481604364248537031881287527803598527225024673090860541756463091429515443342744831228407694062550077839893995472414284612211443067388604528850840301551049625384556623712008668933409444113243132328083019871803412247464692233799863241103540502629134330751315361563703924555588889913049789486334598065202415534550586368713065462595045660979712647561399703423892271963777351295205072985933814211558118569476131163630551449327891189096887269320252752359370422047854927148323504965498138820519224960283439621604525120987210910224424733664092231290441544049652551358945033161425204511573019834823012806949724779035231210703319570977114944574889001505673164159576138824043569689687787852570756058917644529220549141968511484746553129403825716283015633126747487980429033703960364894489378084119714398065827347816793209605058996494252794903590927883780720194588287862516051815764450669075667774283412954556729190201181938278954104739871559053616177758985436008635629191520527368840592221466330338837568637075679684591075506881819285131247516140442369671708089952019999319009238131692638735324194830764176695387404428108419064961007876679356501394455026639471988195235285990790567167450647084889620787611409148030187156216197097403394333583971157181035425837385223939619567206593570961225384535830946435858891381887567115299769736271463879762329006796584953742072264186392451730148891804719937967680807045077175192808511291732074969786058907064912947825236836897170485756461052189522863971952034623138803262914673674362746201169479584608321744350805717139678547671005104784239371373152601104337379874055761887593706953272768563737492584177450354285576415485817042733135679603723496818732050471885433800636551898863412767018798014738760804254206647928168304500701210590905388577163098264958525703300495980887060569785806495416774398487581812464433709957703528827799833665992076819306570776334841138560176335901585557314677941327400741930896983805649752218847202252419455238677647493795491011053583255962572637305607149986875712183147390362181585887216578534355737580173507114989992332503145353283590472755476483561242618500225840528773851048176093367229451092073439339547912450124335948819075335948169756977099100004951241055696953701265410183430549525530242115499406041318761318315318365332045789990247491405502770017654027019368212573687782790365501712150964526160542031867934433361163230086673851964849571450092688643514198561190470621478339202823155702366249057750489508476313440901690725277339232219667063786022190713871224788537184807374741481695578184753569131743802370774975297339201168795837475107949545663411776464307680612940070766570717346455108943235088883532916782247578556107103743346083411386734770247625064360997273288751834891732220646644356786822819262814376997258941291348124063271458988395307107676590685760469630517700128425910472616168295053233903975817083435825053112953307841335726494039882238141401403423568976689744336671464336826944752119230383988297806139567500127827819202479844141349318286776072057503176904545107416832533275449630789040789043027025816901374558784568528887794887642163583045106641668634786319705982142807049775395160760550994932815170380856238998198638640683842011280207522595966237359700405335038823354051064685089216127157195938682442674432684032572797489754413238411961607572995164263137383742803480125342458073027845062493650835188339872090797805035010732444229811207235665523310416619436017738523042663264689786557127872577561263187728729494115600997168332017264085641735193851627884647341833996765941172321929160664054152811124092740746081836621610804924064530245760561430899492738793039480174745037676570518289237111019081592569425577824167970994337847647511545019826462134107652227866172863976962368922228869921122562597886963947807281632596163003598426919941411034243494777008192598791101547032415699557838966318626189015461779287034266232173198129600409739167460939816230901218835953249364672382052317774265114802318114985253787878266422910079110250088221515099542567185819225098685121809007385803709822141884286354265448201588163439196800027973430430815879733001005555754269272855180088381124347862203466990918742205431076622689798654787532662051917388875095422997086948608112484647592098785395340315766362024638247119083733127820182428555227154288901934996409935963167370032418739278786806576359373719404603058753344083985290551424729348980433380823469348191794188254996547523656498423627792454218825441985422333243181547053529311050165816007926477556379687276618169045563858281849251318297253933879864882533283658686386050432964616465740357403331689387404144989381835147238900399733868029165855705913098608131644754715912148323354138326628980379307664253869685256570574414819493120839587588725628633206487919899014872138446388514446824316085290961049577842300447936891483958804759578681410254269405841659592093705167103321710763051159796049488534143351003776055234762109767912118814794216954682835672164040848816813351879972850864270637162738361323659059797538877994307499924342169914036237942307897255541457631699651921767886532348117643098897052222438944230291188524572611342846287975681123201027268046033430801143779640638988750739559994958799382979999030674431946577970912973424128314403689154779493677795189776628515591497029047539045734261041749285724773906871877532056080209777628560813114324879199399190352906912123571245900827435817715407924174212486411410689974835611194056183841939500690052432228902775162013270392544841845366163047604788900028740252417219884177850571146908471993715397318244071823714952762824350128774730310953006407680036139508582343762401673148367066120646519408188610793665917592868143963892865904985842299200132672981652132746809458778181283903462809175365282498756171595020483533726765978613597962400210607378247453059628035063740024681529928216333807891557075487412946319092813362065311527042553134076715210464857797258371575798853114233138993683730829821187505394478763775831823780628900598328785784866394263458939907300119567718792001687096880275131837379597863110793771436548766165589399496250803661463296841192791911702345164969464725968214179116815240421653077289387875133558656314971792289891697136627562760011230516678143977704094824461569433757519039841254608947734111924703177963223244191264278815576879026159475237319628870340476283624597662552584243711285934157363349418016654809890219417232842983608350609506371924718480220896206791393452962794946513405674667798252286102991232229046771832672884961386683002210895765199294705444410548766260210094526889809584975090152356523559020443641534059279233662471864321570292795632828853658475425063775042424187605928468724652729596034885891339992616148778960846043005823658232878756539156603466115428421674742732676503469161201634489435619854268344995027536250415845623699452062451907060287189589722671662932887216131933152386174910228992583810073425721663540338898956575286346687726847237198621351600758054897018388241219277901097057740535208421265188524066952946295261189077909821281942215927739092518340478767594449269562440188901128910015803021660563490459201332091146570521101867948944156500477052508199718033585363836087595604902653641656791630025284277323542330074699433693643406460933226107889699669275310275560635494782441592039879491597388233968288192373922651986190531423598535639362147396343651796342321577872890157084048225213151269148920241540245870999896245947920122095134148192062646409514385443286758705991102579278753226548413018539395928940141532485539275111063635548265059150050812642248378900988633830216013257612602666124236781540830984897542129506609551472633940907604129848351655693272177240370989885754010566966392572629687956337984464302510330736798467398512065261750761074802512971747632489556566086988084675673004046792808145484590719744059572145098349090468592098731564652678534247947174300714706294105972992221202221496406687098695888045155559339689469768301171718433878069664089527479940717514310433677624978378471483124661185875179197896155133731982341487579291317187489292584974949841438653399831441230449332961542559768667964881577074763032710892580703191219388846101974916568937044290173009522670644204895132786297496060325487842289764721722585658985133229172939861485763695168997940312786675089080012242042533541309470872192502973188873726562240444363555693384001314445881668308592180544535405053289943729350501819636100200118935680388185312583451932143254647662647316445438585069405616825445642810132282071863299032616021943444540272223331499448171397907861139707256903132087253696916685290460152069814826462138179161215744225401168882486319820703767650866811945992477189201822989861435739802400091102503567437639034733957306813846736031746247058674927370100303814520467936809213654350678043044770459944208324033246515358597181199926566001253661097959714456848532403707772979748527576467521360384920531220414299937410132550733070450937273383617421960963764336946572936044509603216069977114415724933427909458677867603425763287621402364897922548229443007807319836116266381575437798663776563495951785557403222835104088635326064712997359150614803860491736297749314995237035194107515852981999966077011164831757414018274914364352951001812864689577890170894169672855264600024094954307303444398672926498332325840020968726179647905698142759495494511462520415582507285148069408933437111055737455330476517293892347646093524655146900369427970104045549274172980131303471457237566721122018808432050378357523681599940905133955490991440084267750332728801949527481961106599506007459092271071002563953597824935025149135401648584126403225341243684360901011596947019389377045825580244558836925834027877802249637016898722072538072677787767621692716370496341509961189832991989100990710873162107248774020446596942534857065029375838232974283463758077786487741235605749580790546182671811640061602584105236084494308099075289138406040736661484984248818897143053909204240182121733907672375474611256341465190035382798860024326172885768631821634626662861540065989294561807435892492345400800235573895600846403653023863162342329126017743929440127212651051108163555681138214173794313642493449189210888088683042167181745338970881008068561332533709354791541757978773863448426198186117941703956258744683109624737573812570323808743700803495100218922778932466149801995797774503170209237552687810085002398255720323693744624199495433533853756602234765382882063619231874732286458958070260085572956742267390750054980903937435717643675911327688619247546895135698886023993731806763823219512158805955665424828273544250310396781832657314089979012458809487611003167405487794654133900327157631368340399010679372282713990640889738042005754890082909629512006669293165618410960869179741166937045667774719849050581472329863874174077369113694552931324828133415585738095130199170672248735196321027281891290497709771974173864133800599663010559861273494347601383674982011172560607004844510125487435959064655815002346906556799629860567292856593406622530284226748444799717964753278977689459535041330243364168377907460682685859249591438767482588597444124337349321481269833480708021053694978232775594049173818474547604034629426238376204040680113042173072220696371343842316230288909018334465360090603370843737826451557647514819889542747521938119770580471117139485008071556188266310490398856701521087145819102719950460471374817679298651178506402782253731753982705765372048142709621627251108326833182942046089164411596163698885128708555622986955981457888675738492634450508536804753991425318661583304948448396348745147081831146006460207790489809663942607064388954458838646219216750502597742690925753271276022306836592110762313057601262729866675890377024843709728290984254581997733823580265071622301821861539053885593903813587513961728344751307988466450931738536343020434648793894366467350991465309189674169341521499150187345399690735792472450158447663800234418579359133174175518771318738459248145998861043934393536726213554836457985629757016396848511248196302793491801290156205810469371846443014740731256628446564597439492158476332173601643185969621128318445030135470236491221972439075328461457354805051244928391577925129254789391468274663971495886659651470823317498123708382351078014568421158310845364423287902019530453998533533159204884286715827024107213023106228844689385725902751359912406674874119555314234884116861420110268809167967834854233790028916690564142049280025483080386977295534512473845963083779430897587345652195573355960427565476032685545794637272040518024211074190770113635723506743796904572706757774010907880739092865367439012615818328497545770013900593950104939516224762397737497216732898706868125365665933544164283992942534714012507729019746428850962460237596698173063536022632477349816202621572091349438810377336269992068988346040688574220707546952851741489762978732456593320309024616320524406208176193300652196067502883351923819625188626795774687939442055221144954974909182833470258375689950534047546144428793060802283408141394604443342229988329762034747179868199301563782625200471007504293943984883071190508949216288670608741855029383244840670545482125039467957132194370576842195017051317778270988028442255750808896354690912497833372237963346782460096356356111874760411886117996633840569040766907231290964138204884195502248907612145437232152527854631313837994287862936494290105861353050162296467606520929159170859425876777252916491304815978498895926483125147530372070325093667225847707067970861177756143038708212030330292067887740650823841447315221000636677332947269385215606661927870925891329872785586401860177296765531653539983524267554717821348951327807151015612270356325964631063475912942614013206542336379905530525757486845452006648390054188654102433009524884579887784258321426639503601858842680560995259681964737307931960506047664329095389626550728421410770210626322091131158499929168334512538014984401480088311287006404742660130835807894147688230894983253319971055608264199751567410952408621828614332863978152701188794078090268634476785110772553005401190314895666517114354681851208849472713997971258513026663326783517909955402483389276476647406191509736627855644100081861685766225438869615607092759856875572502199424822417178444669741246968593234424966939573219211066747304162424578602110282574622467475951099796349381974370238975827102548131925133289736825427526296784789869985835240241305882989105588485848902142689924926345139866661799289198219431040816066770697015706583267457521209219460108120774774423555331391423762017346558508473532535816555705233931881117194880399571315944887817739994648839449960414932409778282618950081338544032626702614158908171493209507397393498963672517347071370585316355377988463931325857005497099984533587776931525765210338014508770923140045174825279723890546995835299340405055534490881925957245011896315262022706436774230638240042590424202070280062773315453966478904411770148382223172892497763158235980188444087151887857803798723420570028839016757934313629850627227987081665203155291032396734703766373598705328315613972542342705793856876844103113123136550305622637842094899781928196846596869330491959911371719187114115220283355247364631434005924645045106736501851011322212696135226766278877274799005049946077764847121107007431388185029601405569808050851273955984284678003699646215933014550101327729363856221777322565257116341440481143146118812934201542514627124936437830457600848426371588868800457540498006022359246104297806085877895122372467901721118311736534626715088151374101231483747785257255210149376862565536017028278399973202024861897418993537306708700792381886650938096843505773679221350965173197850974276997997812140109887363442978070988938267747683845103809938112742160981680257667091912795969164792769671757582737824330387339310830438041394663337416735713582622556336988063904424163033725361184263274034747567508948337444628873582421462316721223902795912045996629916767673887019512733137374777979537084827984464200000675475923297139811858812641208313723406101112191664780411236280923622713973907131927144893513810847052827523849722258135729319171630969016213990834802849277591324867806597359426010067926289432012155619057606371732546687794549615121712178918945625841281399213828475655453986363575703641542757877361241886505062882549915576957623818067425002722959874219350852951601528705275210330516417402684901421555105478886143655518183245672581484120727688791957664013033033262829616291205054280412299591463841416200145973065595606002658253802449794572735246091558685259107220505827742177641048320017649217971006280928166830815415838894544517831606962768447848019082691614151634041971626899828142261115922510224109018405084905678807143368180182954827451190111703699119620722550895761265303431580727233351561008983979265683883245767455414562412681415856977006191923129417682837640083553435636365097198961519833216887260414511748676813122564695562939447000840357507177739924081380321957719566058378937801791596341626441314978760042510719358357915539884908827977374492822549973188043383338422816958464870358887329725688472472573737482131465265397805989578655067582177332442574143832685560870463281359169275315917052756309340862307167628146547156404727508363506243036813386482171136895461689292649963154936601902103843278980578960701420801966606077045630195202316366625411894042029694427419940757976795069319100100341417280858755443525650279696701577072993231391079456587318866522477672790396054155883473929587216910003427617688069142711601199686915523721199990615637585730537923508323284174300075519889119447365155729201955575064679055388364793484596151251199345221467977173397563221134202370876693945018712192551929237226054401893018826371165262805063208700306770869764812969113192100946473766031336652194734703021746622218041995629975748362538661761038246807626472670651672646694420470705644335412715073509184962084113728685868613175695894263728313658082601681355552920824127860605625499690722138679193971786487861276484729857357839504316495449803628235381977214760356190011979742648853780112250010148830600595342250392310693670140969521323067107140205925478808893081267900382406936981760452929749334667104523113532683272788254426875362591629659422548730561962410233433563850582575094401369518603463824317905662316054506887847475116638531432319926857431157117089864908316082900066465087365603927790498344437025584898236103760853834030102564442245613320248049923608217750353974092037574190770320865707758299920775527961657914145371075866249759396140361448193867931743578136999477295217847782359261592877885950221321041025251400351364270013734687035180269149751308462819367464648511157763169463362828864163699546895923208243446100759581391864784252989394116268968278897599785468469565372329574019857746894617980661566142988722674861195057155237229641876224990192704663550710039773583215676001001528024906092438700528804771440992665990323300904599331497581090308435273856335557327929536028774599612948951362854584852094250003677284641022785565961209448510847214290985336353420595911838683538450696448044735034539088565225586866356213545739857914824611161095348801453645233639851900534451759657813858204423287713307902827570352406500405236033699325779228338860635036903156089634999567666348527754961980611499299401745343090878143143378666186632728034529186368904922149551612140036439665309887685162947869400610652970724753913941883054779235907098817924194077829980240404140147616082896392880556326718623854911616661164655143750638934645183619301488343147044782265610638902062951008379417916200114009636610644472682319304916851302057459781543559538554370947002968590408211472440228573330842326565375991591275265935523665940091079216000841645716398268824634761410456462434962072425649488345339743951078401821861490217573046439034918299751990127051553271871121052459017980578457103755036283752417482620264080776556942749923252687306413762116639010267926968170916795200938652766820889836412615078665721306841434751753624206717487527763941924536032604887054284606390069313112288974090644543970710422404853342813897101766659547716681542854966503099048284079743303684025230244735849794913343363669669005003886993034971703084852056870631809739826271595504932172507575129387661495386846347508392969600640687030909608461827065002191538039148505425568820745569692385301979617897436360720937521794113065394164653983061339872961361796399436670473306907502586167034226466470386550990276796940718319778904201841498574244259751091561492046589072098832684577290920849584936432405410546906967267456485940814544119303389211433829437214163763140468294210949051794371650474704631569156028047364189849474290531316055640726886446916860107345057373405762952370933397938772179426227292330428302838036542511106441203252021024799481777498603691685472515124506130920061041646206170015632614647886152297032692530226945776673392479673712016375191555097043729768768713277228902385626874345392885139088748266779510132262822950255361197275855256490915484904359410906461597148877604921836834612095673728824134627431127771045987606755499281190575276381351521637212248364771207111236839608524494167262698225555884767730773113188810388707525822684438037256003614971791638055057881441836622922240115395758439015935243346389669979267373565699936921150410388771947859498509674011590617482495575213248197551879863664808974522111842205271289109287023407438004724652016068374667751572218377595743410071875804942782573692634353479894059372895145181499692011734828032289741071497911518355037360777715686961599594330571545347774079614374473059924652232834065714262575491943630043264809948457211359180028470345749582173886753970063159854738710776314956977392205551286739203858767129356961517507321576136067310870554157119576388041632270138042388509592723623649644587258144060960688718367842601331833546520545749539900666649260756755923183073189734331281385031845355599029270310974336567026252818442744843838910711153151991220214362066338630717573366302158359764408565893369639902091878404596213772928233115732153310481713361336649318660217206341390954194085786966005734705859577193503430924853655552707487230521499834826902286991240089808397932579939091309350078007295736342302020509204565181423510999688931822284978764228950525290341758138962308938198470023694857486828019705313528571430404417981650572683682334917016799626574087057173240031038259868374403791573189859029446922679460385782233917212788884222849576637185251415527953608134805346890927942376611380522096159735937161344448611770380575055029216385616197512028094970462096686730861448050520178172424398637805885266119635157798836312206377044183466920153200024356958519655001704897623703115340390322784136587818066551462645632687858659230919305718030671547180880467919755695175515042556971738953497062778908647658342870815009699988674168318150095464450382569292539472839257532099261152801801594420063489002180853975968980490661863500383569766001071972837043315225390829476903568955166659988930917875411221508513950103836095745943337742422359105275863433256744537987977203465826478517859638769409076884143125834622391373413494606259937008455420023212078903925296681822702452529751724558226091470185434042072261936140763245675179796356192419090595120582943007856718670053684872504463330734985119938694108169012399979399351685185709947381752333128941787597388483544097281391359527691433895392038612975507565064663297280654290232333393993064438544374633924139213218290381391459248013211745637962944445193818989866961972339422814041545067545280134497108806384411572145284768840373818594820703281034456482286419155549347045206387207163742139928964888021573979607304013612034360285192086530606207126859712668439777942254714634782994441022926176936621312408634507048965225634524374347406392073159858290135201022902084687296861161988670775803998087563736814126955353571939218182986876623089489186860021981778799492475294483839390043062616869686527031687961309147477982817368343488835905440523096764978111710846822428631611363005883640020880230600527465973117269730320752697073231739962383964049129657704176303875932757882706222361281873674013012920939503659847087733970947410976201970861761851320499385121678409269083344705894576724837266344827304334162189369178220382378528268219460247263586609979516154742359908692473350025528674846422495277273469346778248926878925772734546096098683632634286613333686388654295257058794946110913039269380708096745029455427353484472404737887275816912632077459052111395274626891919886888800487394486388458957102237979136505037284344669747742450602578761351813460646050951158966483604907050869217582315792425210213659345018989725684232971078795029007285447233945231965563344378336781622945422956241700735604393619012350125890965546204712604331618112124220210869488869144982142645507121833651789422736907582748484752289363146611917067066485518755707653263831959233514088503189108309535545310029958406790066925707576327163372875675611062012326793987589175933425183150050520922153881617323925543972910618369322699863800003060328214184888955325152543776573124082152374204843470940153105223879755004647596045245182434291236469216339569122435281614597820736103395242234895248695005327859054907467098516288371688320198375833162976934648474166169963586131441831876482552214194760348984469237546594124434972743815473753370696720634624038599088867582645868020013078797436202056490345769551413656666243024720467744321602220741786218260416353950904138960328353645711640114055764184801594473140160074595400956297128099688134871176753870697774848112162028225634568863033462925909762083473162686107319372211461991457730768504750983387652431030146648459123422427751525493881990502905284378530970145515248798141808032845441981874092464824254128380714042478874594338166003726008004895729910554237770946493243580843064044796375710433622230114412660845914422459975451216199271357903367537243288419635303270330979343002543155771534874719082887229979965942650679535254172464106049921308929980883232744064558273605418287239880198961056573503500337042714126559647727207520949055925437255024661112222878809162494448393162771339520283358320812829747035618779389545682204333782288218679310452537211846913947552862613757917050474775353756053791480306603313348118323444745152301238620987157874140415577533378536280993901749335264000667102010473298101053361064648606332221778035142519516096265255168470649509108530857600303355396929570199803849015613150195886821069145874667266723814506872774092248111950205552145438551118242051117337572258149598941220350685794771825639804185349210007184592184653863739588943787551954977600823875285516388197652323105366964392842677761772306905716814971258077455449114991440804808566201581855932333216468166423061430413229992871444715681153258924324263850480515371587148949575583243425737391713032072806304888287713244247858046346224823304312431832727567979287476775495928394968950155373333469732962653333452009797867343395392380990133080102080030788813159109104724179381647273607581065122414556178985494723440894737638201567559087261913918637360733390850605262462401592138200842694665751085955904892215166224483715774368531937328536075683714800879576294163083167026062904393097594252492096110769865554090214377057700869452291592442798949291384928737165981892532141618100320216837206153398848098932787551539034781940346251712511875081515467393656212205710220834353377111041942781097628881535597319314141269721819636069229888254186194054610394968095167788527322863264051767406118823883470536050988345825292999058678870678636738085579971686654498713952270228455831770467731702543295862177632696660769490022793030948117456516856444579034140634497949442878737866625999705973324062504419726881959854145922324217177332012325977333264238445180038357306622162164010460026493030222152842006989136943347846065438438497824094756371858426124779121860804773277723756923448675178973367576860811810853557003046148862571589862513872413954024249158349260575908682889779607157510187804443765750404574026509772227195516748630173337843559452350437743094496768680663027951705787977783092186797505713787965930373107422903345575282616281584153439128598494487885189834098401596789630042437436688655032955132432324033512633397028993252753740070729924905874455950859770161331358118899230782871714263665701571893454203683156417410198051370335714003117879754414868642797645202342588209897748972834423046956562528686683628795220968217973429093437107306444648044753960609595131250228236429486528717798732423203861402608536224014454638662713042018119978630598047020544755624767988091852745036209262203713250231491316746996470816718532675016276428512012806940208556423601648048678540550435787676533480902056045072524712785544641997711774097360774281535641151307406890069928740791865224583674381518127127414684454922562286023701372653359336200817157113275589001406250266749569978858344778624534349531696097060245088437068895938371228789529822953746773945776696652147328869477503948089310530361383808044642107886857824209493408205469291077998862496917364819820433998894930489535938880110537781051663138669332159036696001388338327148308167012869420274567731789613854032297712841487525721431109024094348494012108378661935138475169812480699886936655494277397694548506093506891660307295415962706097634743001404319422560308819488947008145786310129265581464519202413512435722074019641539743332268328689453895124181064120296702840188972394449888276322744264945036966665946661760392404288855465549425392921612089058287199891001269754663623313344957026016777147061337211732449068225880458320082249909720520702194743488584921796646424249699740255565605012988258011074170758633822482397382507078823555477674307080713947452298956579816153648334773551465061310905365548786758418868679866464088222647837693652306367719024180332525977589432038971725573407127956531445151182576159630772322409564065540004229511029485842530844089588448301121758325757353389105514807793400703224859572109615300203697236465925329034156553588936931546720122327210517224030664803988023810051304949492103146325215070520272069642849355529705420815608446319980823287355781505880665504676994141202406390835592896354603711305030303340663805825378147188180664899760877692744946642862234438187661244361411394807305387388241266218006352151009075717312430587829297032909034760846858207740369836259563570403825578673256383263657611564064824615571647228244586517968999713085376488356570735265762350790230550261684982774925067747635991763823117150117577287780041696812500972149512874999285134261792923635924990833322653946035817079536276782471156645259590443320858116328067988267332502990780070594554870304789400867020284656962334692620628590211739076016604966386489594422103119751116371014423796038917347344588304914599319873989462215017120840551279266304881622754552905308753135792740321040124699834373122201643486676897124095219322048251463457609651368275549021437225587583483679383706527068492602386467378203238477138784553686880642916031847978869690986733011651177940298964835751647727542694917574958219468790183459710352861706279076100831715585350384496465875792088631765547478351320961425445828860297623509613980299108159279917794504549444180683788993578310689309573367519570696739245515472263459663933563042998135272310414728075491239915725031554523427538250749166867060953819589640358435025955820257995838284564544273225696561429101973797568025082721961695267496800800885637564879954919358967766491018703875079972136456621446786276930139876187633427085795488969613283568013746807400498286827482506376097280463375076257243564077172936717643783547069400312479488730385836656767107315511360949042887517182980816340132131633132569679682048518971826260194377496564951923346363435222468868902329985157656964939734504932325314998131106050392894160284559640612812072116732148948997828153069462924075759589980741279571058495997868380750903832198219486761041618720799141112983765559428457806549455428871885586278122439985703957562893638603031170848923520448316622555636825922065591381918672964141795830804393838851365830707870738289216453385908395287493099341036292161996919875866641706145958118953073075523182740119829329284051972719257616910352707752426144292871166779522446363928626519641181287084259624850235902499714967286258114764912284776523788055127093534174832216094885012679406658884772203695407956433968719878423594338373409673122351981359445398379653664766059702154131813632731308172631681783418194706004770972286616691478528156931378074347650401498139989266614237347056602142985174923529804274974025539159656119012034353077670935978983864749651952669889947087978032301212570952933163806865887903314378269860203202057160910583722712083645284167546832897293923629768011887696505920199142741702465399616416231156503445238409359615213542230605217561829895548878361571025265831645066479965044542625771391607229162769618686366793744769558655547566108243855228379410124077683072289421631442333990949793372088398795366881232495598450996729902638151878169063643906532122265820468933326570005208210180572190662517923134856179373494392732175177380193378424448434760887587305072652032534272998524538341435035499382534604526867700856976717461206195049731850863754904205162355887441809517099230201103841983366658947436020129399810785129931376651257159736936809410170589087207081685902365739511135862080288225149201769714270052514279414596917438742128537128872675256239520405367095673694783645834329691109416468851423372596672662607026708695581527806183407993465202801020157092374440869812714136027276015372188329922249772768655653615960686614682023848786284123352048488900544647653017584178175095436726550322546009524556486057574295887028621653003177784838162234677202624945036487957405137057084445776289878322496257505656164281263281103819731907570112243367401775406586671837159951718276920268579376876231900091806033272927511456287775078279275718480907154900527848641016218396811829777135483761519301117565691477686593585675891123687211719021831463534634309592852359797454655981320460726083815919566747625531588949213893770044384543304853242580883269361573010196866829354546907009266403910197846279535160873492943919635973019018428056591143665822539906879098665473516817560734790167061660908455742778909694212997292679524460146721951833318673587498182608556198350305669512995087102806322804358014418878422814871855929402894265775501848277833354620235318669574389222788493012753438817391844057513336021195075559921999077915707819211387939208320958385890476439905695716106475747750631875070153217213263373009809398097869407412231495634896217383080935514173394223898561415030014139875425597615806363146804980706004593277647060884730790459764362823534652720167207872715002323154947521088046560591569258856270770015457007960341132199977062930558312457283580651301432019739301524876608156049514927701028586124283543163619418381331339000741742050935832190802930269756345567895343388837528932616717469140808410798794410484344269324023820402281229141271461595295408841836751442737500884734266578149803178774076505082965465283699749930478872991439099916239535728474165068810106240532542107990876653013653536667164298486230398010201013479529188066877557057827056832199759485048813119190478515655572678861095886671275013999988224899738359098891448869363284275758531469498115076502151923967010562593404805171972923272213871598246565698155637783937307113868927281094018054558658221645527094251146222174332598104937893123552157256326851103072947285583421269944972854898577806177772140595587849602493922801425533561103807379643892763233700338017725278803974829952847437494699363250625436847186192059429484315929147237916019394640906432074575495775828858437772595797530334404005662086376550539423873092087037096371291113414713115818228290661009453179943597891087735072729230606638103613625062488866696667396594702559295027193355207526442431385431826874333397846294586870610639357197793230888377978191015048892015243320328885304746697675346966372618400729364697092386466740942586582413018005174418236833803308601805919547639316104379842410362399612739564117584168644873216152374083010857648808024914439025470143696532367851998928123940181693475957855328791244266889818467209121270790094910524054629721565753902421621588914623299630142968612682180260903838129902391010245500094641792953453614593050168455033112381928435257610173830679051034080414735910632564749511622034703357857751931087015698574167845166305603139711630981042944739164171653531634263943629306382406912209070936749615477415208238401959399723085546212391540527594201156910835524890847230438724981236144619776580367817313626278354994737167885999881036607324499042322923093613590521449431484417929530297976807445431822241417725489399637351279281479772311041470773757607320472676539668019921582531636586333421826551764085709241370082065455857916277842885559651750999581567459329879022505481136759058452570460985592770098966027362754873230560627870180024443226042621471985905990541641690091235625615794318225346901599819136225730629742694255664452592531423537123071193348998736120335463027401304000501968742611126101132499872382390075621407363045224649018299105930315696696971832593233257158223712654694431169444418470135642436824713579815114604437460598016830183858336444583136402414142794283666060906392575235810174340977432328926119748893665189526823171346641971113392525162606130613407677204732740827946612982245885171502601906243975650921172339300493843861154584751380102934591324649725905827739597152797327026651519869744928870930034827158540473705852296486946743543091045572046937140204882819790257775230734607211357551807279404748624036759015765545974715060837260602980566339176997262472085829841357085912166531207774350535592067428348036701216127957992501705489175455863681362575017892032029001273340540401317211796651254406823733901854475626520735143728873960313818465584757364388317492988775971215432747921889549953925336093412033073730811349927034142553711425910638692425657234798393876671978842461941381383668522475034212939265785806695247905799143034359418981665397423559860795769993842076443022435311823620258434452696296419685139015445461898868570783071308680835520311235046131659357868302485598931667280379533236393769436299576431191684701698162075473958649830269261380127076113225991435729581470274033028452376468084629824384567636027529119634254836787098043754508283278114108118447175238003089001111764322518977942745321893607353256821616148846333494704657982409755922593495523786341751888031199318075347329146528319943355504886547764890148523589946148460693058913483500405016191261165754143773803215027843555960077965297065445052693951111778614871718418313487474400923617565017109460102359610736200444340643824453720670178170163065972790001356405759738373744996834638996579370850748460946894937262441186893325856004093795750646282322493431724590158774665028831405256835061410578534585565136057961499020133129440794981794186392772899581468819904553545932561617415195304430199954549218554048976633151377944213262519961936511862023496290641446028024438074770162533395644441647122241467383176478981362199869159896468069166500466626339784591736320921625513913242346366041658995454426748103511983981758312276947135275610253196376595407958921257319651517362630234191999110950371857603987282554411671626314122905335250709307553833646530739176239866526345299684985193459547170134192620183915770306930816521601030398720893812899461703367710384938429481128746157939118574551739370769247132029771645575082558978530355508249713421380894571050026321867146824265563070844540350542326848996669716233754214877929049900272372824801734504542603035124133532659399210158430622302196825437134706056278726224290707728491525938372170791469648949457315236431086783678788940032163608340736096577480269735574531237150240316029091206092988934022290130870605179577353144618111378294588675584105447386688575598952510601389112676707030526283954019538636117911179298881082193812951249014942767718401783908687358109130494462931274431275908778241903535520724935652208130716282520406833869691366830993677928414584668083023931575902115178644230369585657259238128221630810444760453871558486286760777216728018250015386263128963819009645737122950609038848586363089298152710438990193969632990491602842767450565652306532450608298194614326904880934137453122933512618065066183052210074926809651812518627012996721153149045634640031628828053087855517224182236619144450795263773136946267335399310817036037811375391744118293206884736537083912041606257634151114632284706286237051720400216503069718638856579362380695373357077653448762471752026694068828100503144462750924638042596707341097126326639266065722118368118320104912178725188136112878616313844669980171180324142571946718790099800431025905016344128453551500456913079020876176411660115938621714906170270617107430240298489259548103813599382024292496003052372666863912172780535453411491296284364063913545785841139651488868348619533372118347135780516166035138422117609249649614509284496379349171987502671341453824923640223698906464456280423187508993853756481187269168761650871233609238259931813343382250059289374811550435938126549274639637205295270059683310328384443405285610966491570820358199121415449325249427067048530833013258113106546457984964683014740081298411112150978048639920514616291696615909499324936226203022529445769756764390085484497522117266094550855152424908386411512968067104673518290277355939227487097610574782700826310949234476723110038436814567855148015011349333693208767945735985880927316524301023953631930702194156179669683145128091827132494840182258895184845354970337496572568886455644110270799350145013678382722133703058820972067955828401094260735567384582783512961983416021275358224685287170371608898152074928482868369805122004949518312741773904435205739677279142861396981159170792051443945657330526704205377940630766695169891456215723030064266565341658157368695424736696516975500110470130414258548134480794480392826635131188624163909028368658702712308680262736076236701853388241871626166562331941137449140709937390870854909262161589970516957309735957645859921997994010084333117119333857860409536821809997188060074161221089160616528149431555809236740569898514580183636401742130349913693595482667489050164393730794400364242018585817683365844600459749620091282636098357250798776475568058310835875326867022046218496623577702528567228062633969872564010388841333725460001733304605012107699720554709515568978353335146134059733959661753620418129089663126053395093850820003930133587287839820108474143855160915250912794741311543627382243746643518894221521284463317434856498812383224292735316546996639760805506589644059535746186836935138684103403779577407508952967839505288271346947846745141651009790544649410053985438639768998668940066229898007317510930465696657295480743998020123889838820843373814773282875175691938554197385524889789244584854860932581000154710701382830732472265493239338728508637396305752507415689841787433995110093950465366236275942921855254172007064314572916168265782852740127725340715646832001892231970930289964086233844648796565079888813800587057662267580044128552137371106579581754498152407097896011989711525233801035162386354980520864591714856582083401100941260381207735224009877405554005152861275532697762327065120796727388739015577785179959904920018625699757683222052061428657939870781648909537033052771037774116428798227574610960993718018750902071393238330022410589783436322660053810551952877095977249880585317195841283731382868871655010363837537685567862001553357225548377440036816866610959550623062768139619089994549904672270076727652172447954747163049506172296660794784369224836460004012379228282618621009533775178994233476825223868752484125585012756947569412730710998864084930893195604237322350214518812882350700108273967350823611990621519081769708180925995255153860929960761674005445014330751702184315468196082716255232810211591905835514147881098738539351103796438392798288880325670951309366576020608725653593376570309703321270113381688682442190334801101334683722935351896490227876851662335467629439716736086185345558710520004403251417580246723635689803159128940579362544100528688409390000272826773791757584553092576735180350901115248983649839038435786140653362939702823227110787108304100215371675686286911742867500977259281065669331245541963029238083994580621394473014327224295605105366801902840268042796897159802952664682311050775447130428881073874330625318941316609596886999016097154113790631367242360783333190153537731907386267679523984504608964285847643426194228499245224045699705016048231095899922813164406138793862930495982175674361993920834126757320798443848964223029125287201725303345807859992442651038680852442516788820974965646353225015290946242280274534830558206430675273721916630147238418032319723760793474132711934755232580045726754113853760849038905058671382754305610101807172060948430347890207408860613207496920633936508845952436400008588347970793716092228035533786609003704798142226076452832475804920804756751174014518395846129547242238509925989904370296724114838168759292777374440703635819338373671983288204134020809685004443179850715607343210265239776455251025571821246549963921951014135530076680955928777011041637257684580036722527701729097350991708024511964303002512623822738848492289761369180435530974547806253144281073733851096407404957057411878913912647272516479794575120098628921305971562051365210189621516089893972367987363604102104455438477177403204627432725257040688096898106660689630626400258019615338452489278787452179338723808317530662688990374983396320364338228993342683534044405730020999072748037630255237435721305337906033592396204882900951978026398527967505804805386380668870632489428910114624755061363797567769929172200415540796598633234026863854745809938746467931766358964802363326141050259123658407931291308395928383833960111339595597877082070514965725482389188352172529811218609029312126412567019399743939590405845416124028410979022170140050864653522595461088218165980883754495551723297378891085275143648289592873887082190460424003243022256228594542935211532742026103301511858202333951892691738371834896312214389990191241631862870038225322794623259454309676738545622330051421479524518749122892222639244590322469703005468159945691304413333944534774178439005979898932033972334754306441085656679530990160514472674618654010954368357458092238446398611558580670146402349284062366613443241534729800335999860667915677723412808228333456399641469144368932080157408543837642434095874611762958030668757747071960800437124471828825701543737920187964556462794308730723674174750121817057999124700536831847424151708112237575657548736331828337616745343076214860867496454124821010125067188274888096014748418596484270165477645661529803087253942654400729096651723907625824651091246233949025761974591739819364400748950185101725971744662990983679905716765983392704124158594409876956961219438970178858273213287683323854756162538504212132429662047336232380817545208611025845176288284566347522382294305497852207085037334175188925965869348622888186565943017260554250826127016149306796611367432398743909393166331964127565999800160536272077517109431861297562109695308119559224930094900999161651936445961226264464657412533671192066998003844057407843650723026616133865538891589437111743544993630917807443010606506532939454053059461854301130844036664886113222367238035903267670841068476412505065525148857955492221462344823836906648704331412685221875225018486445641063602505020772039067641090397914983161927329328454197797141731769333892274605485935784272345269610912434676215240170652521169835707621909224297276969946468295029817241703533726870978950620356219894891415463213473863089538287535164229102495731323710806828636089976283978908814237848402398414526895757791659261867715028058239707938305251651884334075159402920723530638679701170253475297523808573307545438102460677748311062532263927161760334511641319305911846284574689568397333154071412274696074072831603017296798958235376853114299041699630474509277509531043001818601432549693310802661808731021541187958095884343378745019604116537190587056459843434539552870003267831602688719127594325883096392711472459647603429967021064123309934709672416538055562785007205069736295759491413853467619580560581923287780526481924877332513356725037772676937814926711920770588504898255886928644447860298670188060541994474989439433228191368915942147641306279472209662389684531474880725159380502179420227421892644303559886144686170392753563495783589701322336615379910324769661094535109955470027058552166613262770798200122561219410941776260226358347387957294428011738414505163115300839401174183162744179336348726997889376151967358349753976325355601519285862440650975928339229935357633063792531357266480782911631802361123911296656052201273461475206153553237556529238201581892618785373788250539877888108542034443232487114599159303431306328802283506561855215633404764177270540176346433847041598695937703807510963305488889633197065447747183070970140653321327725093976985560734854096424929135719506239573171781184438730728249996998389906251147981617215844523537635248774968744756626751077203743796012836552710185639040412146430733215762933305433279214378507389708924120502273600781829537600885104491992467520713549492502712380393688754673692683700804778063964346230174100574335955603572506576423639760812806796366661756154536438619026468310989798729046604110585600170994168432780571360274773001124619963264571230097301018353971001903029050794518367076306254327798275268055435688740105765040396250640622690942598319454420996249552617508954941768243568747658240681436884059511026969410221959960456945807683043906954628213356749943514125256192557893007364937775733813742216987568865422426119007726350591351384480944510383726852402341670356105469207675806052528304857714276882753421366755748910300355764485674477020514631084499445176160595514575777816630153555596037308903508927623262547081337210251208645246320743392893074316486013054126611005501735478124426132719081825918280050325789530823129171537231829561488874607033488667367073398913318183762810801001904655733253394348094875226011585108576859864504306703978209526863551224058502167893610872383503305402789266071902824074585751833652434558268700739097825556530940573353209192440763625858496756238999279372979929261281960486766325326826245573005088216733793261824944288216064260761604493698694491697466395709593260981495417966586103304443816188965344247524584197978639663724357213111034751114813032540794702036395940288594204061432645580944110585361317786792611151198205998026219132414215336082280901117509806315668207346489151950878425149967648886237510893027820143702536349773824615500433764115231621738899223481043819000801839768876857280037577701896069027454751367627838857524914777642414748961515595792472149724296829640986640957662274574030962562343609354430356165136088961015726347415937118913826578811947070567692288655465262625182637872155598952544344435589706880487429869879378662223821339655407657197497500317802040512492255174060574323543011978954589464769060903421519136127440293660024903360727910303105628791966221741198649408787575544936318744583698090171019985977897905277955351397357661854296446977362822641714906377885412279576657490181485980075668469260531888079470739760181766697455441340804860101149366957362710529540446929808659266033774190823576006069498797337555453287320464163356265257809131948968566535325761393496134424268150785033558433633675952123291089743694222925238225198409790772980441356913389958840967109924584772718871592077037164681493911151699389796715489296795270270972287533022038260414966342164516958877078974002864966400287572426160317376625622051450640860486661107893542125913965527247970195332085101308229520756902510458209264583555936636488497487159409784865000727953571999415181452820562077692712649774220997468050897328588748325345896517429173745200190959374730734016476876262170404840154567950035949986927917204904925876612247494647233336301570659435303960476519340806896454484312220362050619295073193124024541336766363099093398218085847323186157171169171835197194162115705114562292185597993261628340892489106549348048733811450291182066836159897953986547564237489022280155863299288774133279555297783383111217065003407562223518618971370393216092576573775158862958924404281686460815732747993015661300354310921661193876464715597775253890103779119751443062528801734667513353636360813876207023306001394411816579302687102591996736742071754427403433136863365141826164270137753590837017077827503546053775574181221236781872558255116128657448605693938491353485234712637776109617182190417553898094715225520113350397536749476252578672596304189892749552061493375826767206591384452929180260469049490352559341728050850621066672431018352129946102588763991124177636660828112775794827251036490661798845206085267568610672894875749978032708149676925425390706453081730996823511259585975288803958113241807366303295836166275911332991203252006613465987010037850777065776654933941686589410610878729314635213880753303591388776407875451582006864882700914055080323959864431882767458801977853770955878629828962793498137266007569569142256224388305560852606951370527214776502235459620704754326063934176069368888662704364305676699725395949532552392342753220507542512490935312207072205757668024456357971408905794668602232366229914316577886707030694641837792783511156594125619225402995174896958156714575118741405637135253866162858954723091787566154435301366264412692126727241765012403123040551245866992826392963950844651323909507881757784341210560801145236505454426417934277472678491869663892306627643855017732868257467809269423766680285621103659086779993264526915852785670960385282777562562891033555566265893732901367896423141974970807292562591179686352023092126904731695555783962304254555867664352104588041603021323629366984836295903557315462692760681444005269973792423438993676299072271088969481630884474428858784727229653590249787741422218154921804398936477933594206793334596253053536121217579936693371956123718910816927187928218045269897550206095504580006262248943324419853232400414686356391843174475754031634691404110935415676912006347043034251212765905096104503170582917429811639130397245452833443763030572056700956978245159964364603427904817514555622554817737863806225665437264713135443212797858242021591889882145698475123466367150496066313529305226196128149958615147317519377962076612410359059602608033673439100814107180591584700650835215721423391667082234607438758337560489030021332345166121869042870684753446835431821268111991318813341872812185313863875913691767055451804335211813771915235392625935829408400466729453929330696641408055599046613971438144113153906525059819539710608837124121164855340636331137467854482462563888843263121362131985338087318633857437349552234702852829373804561885970693050399768232273233668771795980750113880468006193568429081925597022164018845442715547183282246599009913030407083275422578814301726766194497957565583333880764287377803162262341384743179578932069011267611226891133878301497293938180390049916470172615530333282956229321481858860430989246418624204797306485878697553490300987258778138472480406029948811245138489483656833235808434548062174278476441291843176695673586061450310124149804813848971651713035748929653688355722381726097620845448387519991241326087447174480487098791034881888931826717101547638841759866689549767054319907158685171879774121460186361394224829083122133493738590211108670972809644559176629029495710846686553049043383844857188951230427601519804431156895025062157244161954940093854580607300374291073129438115784572131800240089666657404449612750388259009359018922618197142566812029612396920401967513853005706338189429700013786178827869447383273276830032341547485292319910393723176053645864439220541405762110602107293993657148988253645987815798111899776990552518920870879144543111338339994613061593487568459248986422449802680461866971019903798306084766807502054657387942949351923907631506121483439134137373907975266262683647419176848814796548748802354694923993040164189400970915197157074217934881849997854780343165446156520670821541158096964354243563952494676141275886082726951204667031977168696667854432798961826558057115734608501301527704113713956765787343286075039164230681450555264591487394130841789918852953869346353662376057521821580061079570186826367030271226158520991174925583286734720976667760797453071070785369042860012322044760537624353183695748881206875585506571800356011628155458731787244821794284406621728016119148602942421328933799483453877090468516042746840147420403318548064005685032501852064834471485941246212470454579144279018140720606560508154843471334599126896268301627075320728191786337893878047939261539288627262926124273490063351749966357166838099048256703771135112678371325726743891258354914928566602023047124268724255718932412195787571102282576478398935563261197913288546935788275219898705368049708283571342084736320316049391693943802625220061750983704333115231837095841129777588898920433190523836006842040616017378261185841492660644780377790949242237996476266215119377999632871974318862896815135978737575275011663330771810872192934326416063754433101134828803420060362519694684856728866921460877597354992170014795745559291194812685545338066360582229520043233678571240324486994729453253656513077633598128534050619240970103150705257293444515866043695083532244750462435711406065516524834794551150099372227700779314726128300572527654174667165577627050151787625141797071567279571403916732141884676764680553492848700466616897565620871029361753617006197828739611581423583605539013625864349767711507572674602540292522605623904210067881134618980623425955901862082338858586489485380751691335520391626507773950342925432327017548511935517742590952485346245922487755589927899785719902124017268747732808743469771338137453299492139511482403544515711241541402820158848212117002843316522000574137283130914428720447393073441764980586399112212990926453588373533585599293670075017358966346545007680908625004208459298686725863418124273103742886933641785984576198646239974350068985585858192888144392575228368900906778542756709050827553665814469145200759664314021550376143103916024994550276513831572951758683381709289387591093218007329605808898281076392652656386580400443224095875150734997387065773008448328727217453708425135811421394312148284414313044977288970261939270813799504695556196846214341358624503970714561901196299751739216992857917165948732373636570599989150902618914551430650337564253216311831548648209791583795831211407745639730497708039176828838031390725586384455109802669488926155490800323961006280287803995199159052259890767171584883838099877728198171777795591891023721365346167563233512530597992239024323353730938253355429184572176876627664230552669521564566182085246569203867740566214540341647517081577127959841017249052075272234277722334956824153671052318059976210086055236430865098683963511404547344522931058271385461272566219886884791399740373739143007634312791092298236810470732899684575202026087298728889323042849344584879212553082061216445425366085067617711817462813042765063286805884533478493303584686546446729781062957177340235665386289627829534969020061713638563657108174923315141345035231753155407728931801730531903335411055667647814350385514904242047755341204194554799639412774280913250120541376900536083879350752474066447302528055865224253311830528984851015510660120635775137044962417302667440421678344457878905177647725491334799407387654403773389207864667411523055926333590300215161288463249806036390508209570352636839049333635114181697902143978119984833880252289230908451131487662221933992377394742227120710946881672025552570463615747056929694768700374814404781649884266991695389565560798265441198558714547120557482209475711250712547326420967659954488694781193704428722782408594567014447350249572926804790630751515743505749956252149183244284540442873480501815825159744604995625444441285454232217013351685066618398976824383386695051776428604523999290111196490056835989372091570583886337798150316744369121062743660248951592064535685385721639889861136370146456321478508634382601154563976879260763471880868167126721521393341410510627641231093911303110156204148606670472201439699874942627837517644266464012994619432374841290323233437579404074410370571862138062611048937595327775129008770006574492159986022116516725662657070210363373968333576203790297459978739231983390537394617788861613557947273070712026105622205927733820965409343198792092550680068403416485641056016789491171143602052249491481121772797503144324824833932131572716699432675497516207653452195823976134735419080354521546728744202614209570078017957146036157504577705318220828846504914022301124208393117343310181128518489522498240837987755428199887489569496992463172782506975074967423543730362135958324833888930163539745165872448952603317745586736388560188531324728041856839129500181992743829190598207027283085864879886946695937390161724564638108076770743398695280471222014639782791005158918493414093480530179705028669934347023931854654973313185923048823317961746959489054509605991159490831911812809959431021604446063950373071228268502667032415975791783033414520435348689464128929898333805586877373274856390418969807994944096595282810143664430225821029931231363202850122527403383806516431016543736933707060302303337214849781436903689166577275281893143555460202817492492444757808575067346334401410901032539101444278155642721366998649608121331601270607323883051424025611133095798223225245803327519522920328517605902587025093381780477822937556635246860820274830060697266235670269471857839006984599732378481207934270406474151455885987725373068596997339824541130724612346311788802406926151624134216482648370254994239923832930590147957921510061466188192696126230076400886758048374481287616538687354214103792194371037200414035132494562422903253830901950488273049131482944117602096896033275170788072530911463444155269464028337204295945401587068754380335592167218893267534300263288593901322385280080133352787376966572686020101753877153223289516031044906986341886187486681864074108163101295905575571334434360048894777632229090189600785970489666556712688543545901087352854022827810874402544295000317105853253992995776813804095025088844061838583931445190361183408879164315369205431424988324178124521425204467128302552886240067525674662867521224884473163166980445701388979859476464905325985732009052476394179664758045384777189672795267934185496112469308992049871587327749869571886097099405975351280788451836512438509703467753997603819143702792887390471822027048647573408406553669122883120084487090825941755957388255465283735625561581331140489701765474843548055949135793674339136541849863556768252397869766724831200877828747128795233771936518926497492085037716318865164126770465329775109635317291292423014600118372507329334242145131927470789925278668812486108190613959551173192314191107509877413194217938839386117951831808738021270290546130618819451038285958929465759312326284883980265282783278465002148703553238415991586997675090301256415447505755028257409741671846666725792175852140400149191680268538304992718792111096296614371550205264448712115732447189132915490425083129021507452144175414958778425218178871816017183776110335034565402070077187777421812858506989495241052961288097999976303463044299330918868328854914613442029336278051934473344458818132131419677830494738726339520231852875821615238895481566568968059911104172530829864060874730752458706157598525128254227103642946580990629039291746727390475066896794473884745161126405827759998614405799273594732448383623818254886131292321282457120776249478121870699881795790475366714865085212514588218824282298186810897551578716848416985619556347839800251538231488172919572096631280600878222290927883101366462050260963317683017296313177366073166496958201902688366823363419944929175812685006833453481095036098124385253416266825093990487633155653296819922401796707620981656965845292156110417789233890317707478541646366707018614417794226057863219660248727185019480343677164476659188542180624135299570390612314308311963320680163856357989539458339039599645285539556111908107735710816136703250673764915445819216140421201437365257451944564018210582144075208846100710071570683014600011043324945822041067471593318278074931116052270166337510195192237931225820987157324065181799294421256272410881314585595089455966217691067699783867012056005391921502854158723057230951211197018616115888462255817665275536821669562299007237812899228402915725364845591112461659040749345620379732969371154959752579506686631257245357045232397507716941528978328734678786309398648699726806788139285507122664655249536079498115486871801050889602073533629768752463348256353139511717953913537719416561511536479130535382900572052994114929437710962343754062029301389177345073914000073754557677664667202691960350996899699072740264917905415430627968459992814478446145564585340960483281450530488266630280228090642355406822584473614049284464518137105969625697838368636240545393511029281420006670916204737499446090117354574958867176674323977921980956974191741096233584512394317207445537752136836215353359226309960870364302766163103281134345375632357988273394596970118944568737801248121736515204216484203283708927597409342166768565637595823143721196013764964211011278596250142471662591071382314777181696608868977333184451371988392705251988614761498533191062394233948046407513950774874106804905598855274744102372844900140990854010414655630951972806047527123395977541277284927496751955695908827627867750007613251848941871667942772492653742538887246922244467553725817982897658373045155155966971835971917544369003905100340209962576117447095583202602109521934808210037297509095849213173734780116702443642790658901452100853349179239245978892424618656021330995812181898521305639445090112083188953757879572140674637570953585773394239118420870527617971359281371344264577637745208449096172007379729983364903069963105324758067720531059443878065055579990431821549096236848902744998057310111849147712252147713483655597956438879006222391311394101613338670842222856303147348187389166138943264281586169730772722304243375077602208898423329526066471418980889997635910953522856076685917061509087234191364841764563592919160630687531853148867195795550015205274279542807752065543743852556176540849785811929782760502612029501280863047978483677608610696843004505097738215507362522634394746962586881801330790067479119862176928621782441298545399818538237377730611198703894682073723315013135831054693847476821221799362574779185728462810690227834637183259580368052077853849190867181409945459950479940593809074065309213975556439618235148442966437535254410940212981916456389763602959957772984217207278107506253752099049204922693538399156520834966476491572464706006071220939153169488660063386693040228945918071617147948056603386885000890977821405855463594310859816530062728195202726665379999890336364825958243680417275618802571736079182210046457277067805094495068036665135114502922537617064688290202238534455041141819385845492771380158530143843242515455869246247021760275964937119651209162650506643091515888539738666039980808446358167387400995457140322892336631076845256393677286349938881568628261959268981551512057696827147527410575566078829674527156962612835158809323123008457459076386881171061524365742701085529210919514350717613915942429662392250084235528613436916129873274595471882134960916992076594038550349848613712978050527471112193287285501305855538836911322485029479265444518452345664453783173451764641169068763198477438730590516116073073988919029674782172292675739438473617497283955087985682758000351962886423285633838101118358358873644238892793036205346657888405352574214960744426683736818155274679889470256305778629057195832774004557925016920424350189928896009697536029041149815137384884263250776083858019887097155712685734235644199726285398919953338332749024585889880910031564347266537841998164671402863475405579244761163864499608889232486390330172521068800509184429337743863061218031997459194567204866572016926394421436567397127229707134610942906439287048279697873808135360751321001538879824736748094749463229809259582181565046145973367133579114123435195426105749059108702655084005345032990816607427865644505109736833358886088159071202861667170444172172193920868832016355656514762125022420318582778025424688044100052560179801077419579192564685700479329394733515893729529682478507216636037663634997309527362139821230079196142050023803947160769989099863527850381863448482697002393075066132627957330077106114016397078818782725424744129468826964157512408625623200493396002610585164655360397417912273243195272945576887346087352724336945949927314512248751070639965908868107956658275982508229715735837822634912666511320724255864318986254692051280606696019483186825424840919068844181740480022953168181160750827948462622089371043825475897474466376018001851439281787715266072899942597637675215122439132092524186432604978916902659886607425926056965503658406189688380196870240536066985128412440776591441212458224747578059528248419320439583407715402170135434753566921606679321411132639497531759143281720393477891525916383995831072574718214628378109774179588130579852521159658548719458506792088865755599311854498095061841830747280341982852245817203179379499648462121899705360659372123472462193764978706062922640004803047723227062993679089677800049143295898488616148433097112726796631212511477174675094492038240365739655721242415949681706554954835027984762072244961134222019282448676312488758397395321231435875311752302901391050297936904741479413294362959186061082339698721770509755445103483591301782215542913427770802273415706486821845091419239447858148890795059028994673757911952180520958310691336524235297593303098240714446066983102035952877844668676742448523804918862381883075264227409604983822588718078445949062188539126310864777637704543944690344840597118947955037890054765843291459978378202386718140944550739947688730213461918993068760400805857400795428095543880893873060269111628673429991119175320153123709486312316375801551392433885172436495312518594250031083637267747700777006368500086034574086420874531444735931460860400405378729142169057708550265543222300915219347231510279587827986737883531339103552654607803001209113255515313558232060300184843953289507582036225678536377222028080116460505311205428774717578163779027072274985309010693969025772096306975731446271440035118031788630040803929945206384421264633867633299097455688713142089672950910787377830704894807775208483962848610753141819991521855006077149438862243705733043927117397430036453697754668910323088423427415418337407443672737504358623807547337460117289591167144031119382367178551255648093516095623964342124313559893771840667117035562516974054795846073356208275328557484072221293011305651292566961117887539656321809457386274232230004289450994659814770188471774806563115521696901011020562473764789006330526463918068129162122557251837404982336695261830573937535517399164787800664053376656779968605531452195200633940831769279478776484488612789500847727221489361525060978989610392417981080139164248381231822170594370099380861059569551286457105120879514289367577688024417162362301828966943380925367197693220989022891050492603286372198454446575621435984267192444781002021032532353599568722023645256099988278884718885782802514835921993841852758232469765897239373529837822187409246710416389736270749491504077442392313130317334665092274522553931690106943864671235362981713254487229051271532625474139352937568619419067486377312497617547917015704170584102698779861481514939726818129291894324427622924729508012495687108357256234524538458159676414334851842150863186574042069886598051739332389283483280461934412690820812990064063009962097275968306635254783954694126130419820829456425593673772617534071400805555078666034429894860221029447239564003594783060119253439011780333812557024928864646059616308476682704434640817562037204417158851398044534003804402382717344172442701878999103752397776794972660512684610143822675869565398880396826903377161539646495702621852624311560990336727804165416150354623258625033758470473579227755888128313009564957156087085577441711673654324680312868094715652757410797961720797048991855848622519785758851315339246804782100205556012527789075078805215758290438460857492381992188046201751920890052349270195690606922585197774336238384108558764689622345113636584353588534686355963706025791332588761698225959617650025939685739154283777555679636619505343940397016638346777790211717061106825178008280340577358195514642964753578506216616837287790065184622103564939044939920980399374707562989524821185712709696744664643041833312568707334960646889636686294380835258565337322272332884793677604980319453101980930004163866127589441387220564145003812254853221315428223647674183633614809718471659920603393897590611090423702564896213046297243883983319953997774940806004734659503301580540032691572316014277624605524313302945201648614010662033753985108381177567018157294297597980861810363696093848438018334720736062133873657069259813197725831000210128402758502239929326317932525768633691918498497681870771658442100658507979041195475405423807637643192919934908646135287470171357235878497392219553988625178049797776729485911671573421262804776739504440157168519977053248763188138883245781654282933752499512911688148816441589283515709642913140430552728606046889063863757761431676061019874782829996369508048335129636521825102047479650351783444008235545024158089724369211995079748865324282119149892642273580459031878688290270840581460070786438850760931406910711225139826918308618947680193919306028893427489328385903229729662594137683585545278255604126576092456531415047076100276432020294075009809823204128265113206682725921623954313868234235742137799153934843658964047869915834182637728629548175108710513827213008015415753159948662803003302292752924983717669493796845878417660217557929762285244799830358345111351742078967277994763299260691140058007260867525752496662861858206831720064312851106960177749248850601765756914812676579371839572933197007533892058901141609433565641371878550271173946034236851235423845623680310754148469406193442278254007944814012018705062447296972540706322409567045346313233545864364571323856690282825876949005960706282591371819741854811050727497835504339895048400516682102076269786038796099487151495434227599037279515799467061965634268221279996917167419403355642096173797288446200066373069024756203002929966488555047952154147441653379311249600838186097741065422933819030284234087654776300998237545624749509983195490468063197253691532014394144626605439578315130420260327881124501016614635286960758942072755741220038111238632090852498677504329395622797629728472837236785602005710049248560946754642191484588703128505692139213375925812418841483327359067909225119748365040659542496459665382545889755745772813607344825146611166644660807703654813668636500995088807631275375546616002648349611372729165155835389960546949878218247115000409824500556891833151310699249626711136678882176562556184224698738193822663407705827469146264618064261924208383160947424282483488346098289449198522346181553475783499562920237884455123644892069877040971671479988426904873366783459631434642998188865667549882651574489136182451783245358144057647214919902398723955873486237407727285005624617763002075836419097253365450007179479119999861540780282291921865172694129311833881500025681574346178786727649079864176136688255191635448839841095032526673337190539388778744189001348104890552293891484851950122752473531966073068391110235165163576863068246024473732973677318878435964672528001995347471185947647685010769580213094535283478594782413434567560559319493669971437858463580989592303620869249622423229441578320754419579240474458623725731172387832180833124058600586510288318186960635794222838888638653017619492394221416983585229053880535572809220152481707339665755123081522037334920282544088196114007456393474486692186097015393765018346813928279000564163430774024565489116455515579221473357556101790521973234414982143533692569949648893469676740676020923911992854309825540669150871093780557616881581328187273546835878557393945358698650004248521005381852443956119834118657321245759023259060358636393795728142606232065014838364222237897459475002804404850633446812845835550487508624259324266462548650914075692560718145960169858721548467661274693666854589141176604439596503542555779290346952913205018677748691848735568644725889981016227421896714220153239618190050425641013243739509970380932278178350875612712604461955891979020091181478371222710312281998203955260559224718473688825386885882417351330988274824051403363550547967975529063910727217002165475448384717516150905459560034474956392347573167230955154837611756012682790360563042839376272860037065802834108975181025071445634251767563668473043458393046390762367425621954019164245496293337735139816685475497600947272886451360451482348237596900425513650942222719540448316254725805116971027661222962243740226458962434699106503482220996129139033429058261424190501354941188754581711012424268551194174590586326734699349206754493549221648236923408239654238745231957452340098131008268850310827682685610725578477375993903936565003979328456969881755342996982261320206065367965531546244329537092520663166299359603487919203348281524622096283034945658659373009029783994296915275553672209683420260693342637578165922559901796933516942940924076158486065317437164501568875925247906362336743493890019236108363270471525996402059063302291090528586033476810955298569984943123272077313997289790817980958665408743489246614692507266323438890729539377718023975848685704523313341001952926075027285114226448091592235731795845225649865135654949223263649400166449717088070543893165980758264832598867142739227023310816128950495547812729686391573450037741178306287817670254981595457126123911721283460430024171226249283099943426579102736611409364019835453794301938956907698651240430921619268290458224425128730611694229531195932759482236212360851470299988822202779750212136428692384510446549783354153778095669521785783652679431764611980908536330806736307447964268079032325366537853698627798144978400406878711720492166873341896614509583111638031053161492302007169212639455175774264053041632134374217813691922790213495727302328659173228367452090144869066149381872452993664953817302135614904752564449490591234225385082457755729872650838047625124671958695178137918220781162937640202681049306910441617157595468072583251087731710362637971037591733274657646167180929720614691863227921054373950765172106565706374476326039498452841209583120714079168829160448156592610828784170542104933093276095542730964051229281962472688093482733780459271871416823657600701601932880593245248605504571553143131893664056271548002780601032116232314222630674267008733710518009243661114616381740056914229188960656524381942784306542782149444644534811473596817273915391441798115865124541693166620521070775802336744916211036862510119665035411492234806615568633895621066654364946244127664550735829441430777436592202340554209351586221283310584097245212684289528369090476520593654957612143850497831696847943992090254082945707719710051663382643417990995578259209321929170912296442537768539346160053047931934067412710540621043242545676899942263922338337112663143911898427569840665350286649340135896350294037063309257068917268018527302324379758426330937645548816970814086241956743581058644740058534896342291536292592070151780605707969796495782758010672820974180528382336528207894918611737028073113659679035196472885742011254603313076268557944280484278173983846236000642843454510014214449977500526811155166727803121253120527248070906985931236781170196985787112245318457400003170123714039793614990722162406407390003873507416611875761075851687363492950374781275277888696871413064828086670546980964592905963675844993066230481698754331013300954342097369217776842416097171387546878773893305829955286488181462189728816870381298845398755415413380219945087272125453978361209599181412085560665976477010554728547994586917461432184015317871138286586297182515981142117965113945238704171458292876520595365958862262697247389740268891929298951491723733324629566000374973909766435476502672024236903080119953633918727852488530714430985527854566685628415746068780000745237519506830774230391321439051711014294821218442235444761278126750948713795757072227098936293822573374683251772193957532984868349865230267393922367741542183020613756996265113303768532126378961116324015424623200537387729989014814750550709736853144318163762781038399310639021501923318764737661988954429126791710989941223001017381552421330255589814435349388315489357363830351493691006267758318871376369847931917696350835672327453732271987105536464366158380276256533818486178629255152437603116522761190199881373748639983437787781615920180067879283448811170537846230706571856263439247949653463559135130169862038060063110197638112936844040230164370105720058217143130648616343904549733320075099817039108087133598975467147930897277234973323024837245039711398934478350293914404904947617263483579353214893893482486784377054768498403760064791979780237761420720678488980981619970641989849994585655152036288485246544677874136655242569991456761317614812331010525950406546866808090902460273423640356196406620474240634320509533403279338227405207114352337753338034222790093611033921240401731522000481559861155719199787807753943796713615291702517258155492106029348203505138220759932633042888671383516677752107105592740941860899144519417933672070285135288569168470988157795843250434789482693234379973135677318885421940211640082920120359379984475922113265879028230965369570862448110772321662364690929011947761645564719235600654740952344127269577787000368911085474267653962246934944744468179547859290605395046833520105630049673562038880315701229224127519590257956375363504000251304809902945132820566615797117382017046029480161744228127826221446996187392840882136533532206238841852106766922670031301278756028643367241339056069592924173368998122133016178253835923475113530916218446656590856527236637437044898885208428416290318662718455178733371950056094518464890633973123263501976672298732314875554467714188069975237493069278604893357783825557672275374010219102551138811177750734201042834757176729056913473501761608387247827932700746466104284455743564536062198649875987472497430299239277016236950685534917201898815657265643921962231649591955782744865765519562454535924338764144477587863336996821345472464514444204901033927487744262951773890904333773291564876901414852543205533298839896841194237374196986141711764964240484077661603598493982764042635244937881158375851830075840081399373070804977223619391876920930985654641725452518279921056189659875381106800191388660572912971976751460431411171845042880729890150018655762756742159453462200255502978198948371443179550594266448303423866831378016481911936520512275544825322984514005600735707216481846773054113934440559869305372121302686185291713461776136033981720823509629257032702801879206132826294196988772557004615100472345243604004990686995212916464888245636060653622279859787858597790651423187619397633825737081391080139293763892938672258212918985553001407906326219033462254930300151790576496412166964773351702065768680598910503055480561564008470733505541965750774505778889457237188428454943680277115048114974221614273780272094181758974181259130292141746900253014870235213141374736732990854836327369320022357696407353683080197758503571361201116172020845599854607670158394024047861086505026282349575767621512114981109491708302962712200793250349958157968806780028266673309617808545734004080136432454686802813980620615397023359186282357202124102944946103562079721014758389186181280820281447803449041492086493609865794702515964086667734745153398882732520055008034625564478039702138356495333925441990628017314436653928458993915328691469085861569290204846227241270970257712082693356248347900784018749592140741739899840943153582952489478202167773202884859919008989925748661550482840009260297337032789266534364235896490891062887891508762010858971798573153800396230844899989219812802382474534021887546274276613855034628853188871280927482904970429782128005455439339676206026832378232775760006696231764211276378266860997773265281891194212466853281917244262599440319456979703265542089758255164182012560235276265914771176767530352503465825789535157406481184406141731936711374475771956927134846000786931329939957670570854940146156231534322849943626731500722820448362817282887202012261712145011755379715557294876810727011713696902852005993353424400046273890112501701778150733694810055356675414413841764396600469710483386454574131682458294375180918278694591820423801987472307440780247840711747462590832150118107330457186377424852819800080383849064205526797995507336380186787141981869345585574886131374372435969591730924506740377148874070853297574008177390846268892231096759695027427289051420208133970471512447765471485395613936776460171124233356091260331304301918694003272887838007681466923863406291284974072096342076980067910337913703119395229590623231772014786049495176419453970577680472198952089799796615749053589158238210866504267402092162835129041786479616030426812679039356900667130636856908648297308896660665036626542310853162020305368182182323204488435733740462799991780762330302988367972242107728105131461103863630492657182674525327440111781031646415330123569409410788381146884914935773424835067534199031201945618018704110136106736939899735365014841118218717365525650407250308539184947839052134138574477294926651177998958462206540191440547318741723127166789682340175163821287331198063333375581303421376804324149568087148224083894639434245599455838698522400994357419014472103882118645707504860720169145685847285835881157006443508618525300736812372342546015889394291833363301557474519563015662183450398826425987881659250770589511507771864129488052221803846821274655782536030574175144517401099988707196508060842095818274899961431355057156796372962362240764119520581487877363773857045254658708013096916799851033170568623928174097812414062201708398744000385927456145514481205475870220765545257959370956364790954471152995534879048022365154985454986634920934823270474490538734993097751859102960414658412309924260138214243358511573861861405864554538314487205286666279645992301563008681988225702649576358889062513651233095948108278855734233677364415891291840727366922698784026315985478887732574418300648234125724647411947176579676120251739009803024423488319290487960348884993824296004786584423358895160680167135519013990946866907267235868770049515311947048406783286013517988697867405694647615740711690438549006059699079281351518465442448929395562230616597073579222179651870202474412102173710343389544876587876601038796374393227334532905576716705213570055706475122907897465857153209086800667640972401406150809034375305048204116599157097376905706800828815843269794073486707355536757648364647064647279337450670170688760240554936775432671676491666094662366526639152965396217973584027140171403245640834358984154172619601368713730051146836469719102964029180100309897216793185659479508580498656953825829257421500295485627948332286472601745151743712735300302264277936830971787606724593806342837157876877990326726623247349663858591439361773722295165669480916269815709680068363186087882119230667323990655589388546040197791868088237385689064527214273578344740683607103488977165691137481620676958669131497400454866729747531003368880281240718118089653692306845921045740361832086890755657065804920800442978450145802018789569385114425863911947178446845757953222359403512621288279163859980502960935105180597142968323032141214115890227723231189363301195957056676623554825076486450810713351435462637931902037611583237215348622885670128666588952297834106611867613769403603702848832907135933129702757031963707565756915339418331240736669831460192827180996414667112637544066128630781709768808750792539763908882903964368398954450357512132054761128774574616366742392362930665461908947971955165352201500232704547298743998114119516023990894492970727881694639404769876868687505012947989857526591424966085897988655468115522180421935610809091634438835008459983767913903274664246598812327584299469876283912093982251253131969061707695176225215982187506213319526355927477265284866798362208500780587856419029646098530655685558372649134570258950605968309878545197403651594659695172479250071878953811865830566959809254318741598991456077335852835312561440294805763955144117476589645169624438511914794560322013866382253025873500598962443842974661186585629082056850810011550641349360934305288339504438841854073635240368105978270882055461799769919146566654668362492228546773321608844908786814004278566666959483615179835030822225122493414254161846290642324375962096914731942991305140009755954067507130519618846710766770818803454520705923559303120353061817712308361522164950359365222760861099976094583293750300965545581895488998530895637299953313457093173732562251992807058015807027535994280170355440574505952266457681795781956831372920195990747595116482166790174792163888114274791897232439126938271052609877597512501976541340004032524359393984450920162184691825246188376479518259717700437193974544132227535891375502375308626975898668023443640003519673076339663044452467040517237801209443611759420487845209690203483376075807620162054856536866588743272086860150598252194111888714782511292748498240772742406649206293298863328433695732093854228929545878860903466611283312780689494468762171084017747300445924064856787474273841202082144992820591232802877636599392840582281162995728795194444062923020804689819252563936964131683472043696705950306262138408420769567934525844084084198447201974913917869554363730596097770739373583586532800668689545015648775631470151943227709320448552066860950749201249898257455378169136619179183249904488227255491191257010815140268709344584416509942018521250290308558427104528034204123215390647024542635361248435356819403820309887647064220076117963625316182825035475402707796028598809653703509617881913556774014928480733682816380401187561423677157009440439634455588770387127266703800115184392582095097129225427214339676260514710069851670921569129762744575315219897768367992254218495341873947537492829234796277071518836305193195544786852118271118120978608552821887260564765220531679135512208615873741981867354012551606642725718338961325294457396703984105386843929570998452491441739385095585803252245637257483160344332180228875459393859220876832384144071712924205786446909443277947573503733890788924579143130985624012802310604822043635915688450326329907294217795208284829285359042253542377788829335416589956505619433820710599722334154075310429305419359288876463501490687077698332843658657872096506794639467766735420008621539582311173094766488451076872307589716388908029712803863092176735089055522258118105699836822962235110917488543254096597485455067303986917770395396813033599921123283900882799503522035002046662168945634900161448200087598299485872477028407180163916625960789057440392229834213810177365303832892330215021825401730077844334125847044911772494977100107966636639469267070631583690744640964871477854274299372479053054052525443967363843128449409419816884825297445140477191624106750058481997614168587835534911608631822771381910753262614174957918574633761210552849180203036697220738288984849992773675534956016582709013707300528196479935260094460938004164579643452248856914536620508262898019996703523411969343429917796947411679454401770560007931590619382762231983867204472667085231167170694168035019359388175262785332680756410161368597287526855391387908551373335833488942731314571754404096541814695318114484529671758154855122247458782986455396437457264236285004246917817006607236072323975524699950136388494035367337013459180198491304131554131668083124172277609609418730717247006153962172927542639127275972171885807603177708650127004680677493702705250113746797023053409365845231958329700150105221849920721856071570839870152367140188744042559350990596502124659930714458453757203938635073278693676410466515240782415416354684993676678473717478889404635489242589999976635734110001871699438600834733005626125842842879142827291225939899843091244648332671109004405621530377903443938620583431184116890363342683510932368520093289397190472250441681360145114946160540283847304550618481506000421582076912133952030912153364798828529696003439433550345864305730025923679028905317752189308145912421558298302265440696809783216236997472014439294820706426469436036490555132681632643676899988963948787454611458020958009627596385363633254681690437787183239586360783432237500157781592293678715926417036428859417157666330849426039566660216453302993296101199262402654204926558585569239311163432021766198212582772671517910094171268623490655132157206375024610637457730236213875611912154531097014195064508767052908108825775527946066670952689834421157938516552639502732976709443353001465430009182411818021740767652546117614334046132742134931927959408546844409919783222270464693278901396219611454567744278814170668970346723650215668813790493692381593284699269752031473561415198755280280328145851835829590061722281622986645688424459907559526232032969108159907783217559518943230732773942112366285553055842493539721275170925383181785013637635305306195796597280957325591669700366983682819055232669001516768333798146472380744513963489793711691992833773758084408847716581259768650068417407143385610177922635168241061285192966336026265387443778414789913901907950421226645981153503134061617512408049478145540977786976543970807876561874771294905102649087574210809238864279184963938010161884872807411528169433931033773871995369042123531397142595436515525593277756101803492529814141349284884799181619939946697690660017271585240593069525221971889190011933723000606772034398708465545227041336380070689643193598216126286419057082338771255591386741954020792594690550321175832290339908140805676929260244722632333866854381377026282623068200377514978632398877252375184140511996119560862016118799185319538819354100669923199063350940595960553936818280243126810984059980230157385114359307871687471932218625512499848796823074051717769814021522074239211091721464751924470499563262922015486343584980233582006834918427763200624763299372008520148744613189424645149951567877145453898267965953217545340687565748766932773511735797774715283984979698716512983441837159824572506681001438247969248129557409607050265282032300007904411488851760501673032990173624526220176418936902417891935063295787761960437208935404890636487584778825122704125265090434202611388546575914994678153049969800515508327478056160408835186219008115537836547022163874296958843320879602327773620931079297518811451958170281266925787117472453729173179095741809842102351313911396534201256695894253273933025888240929453667380183001915155797632179243577934660132860232361948808164881691828153635036202924099608580475152962950421687585009233675848831334705315023621423198423286040735721648038252547100761021894540409003812172724984551707299209892692439649518393223747780986408060714430667552599235363278768136256856923532097962900748029289439582469921246255677932272572748059409959859796947051990606981136510348676119991163517906721988147939772570444119284447065691649652147934467938208594621415205393853159092066081228033514618166387173823414229027765823880701452226342352951653708529387543829218074846012607328850951419154086909456219366262522550641558820850532045403584749919033384004863959069265513067773541016376680879433630427918769324700837380904075120012486834393788337044800929536771943341915980327727408243797179768446359007258364120833675305067238539797212940163094481119291388229250557458644888842536648354965653854395101625093301525452523864911764615089767430345040109412389302252227762948494223664319683661443123808980982430510033450336229912312934919326969573284664669335500836787996082276164377689845702509544615710746182049214065041641980459222904163715816727912109119430316799760970958887912156184362987380941273138825674423719197814032511375644100262391204298282887183283094055878339511776187511125057551444205215879065817208165726039275806557415876189640668589146534597379049356787836496689534007623942493016688764179608173859850345936681264748404265387279054291134660087323795240321737220071427099824250004982516587847662237307975842205189693424511842932018149535312559119268726774320935633981256263490873340954942881124310803337130452944812814652722178318410131286248318285401648911348857157328893408569165630612789908532247294951743060972810928864518493942769815061504341450222698702773371357002375895880770853296183495078008468804808890628664459742011860931566219935426117282997437225214487004048609749717487399169605668503522398959539148762073445495808239245001013384953969128033061791121442271393849695629843771148549950111457836485934440591791245101033947464045378274553869064143840970180179088342882638849956226593966692691276969387758080712891012674061790262495686889237812426521583967533010579533306488692677201259371245071118786414829129292225176041592616978423324126926392770597345397212767919519492786509371845736071257063526371441744356694806444102261912258189372541600736167190404322007757548817838179616922204168189115118075387396677203292923933271874272953280429803933613206251539086069914028344427613600299289233147844516783681445063371128758932354287807155289847140051653449375140005453257870515957864742191608400539808890439262484313773229435658017467670512671042593670986556038459779694910473650022933305132224732624208957462856768881429020092977810812841952629186180533445400652473767381902233782228107707868513464879544891446751949145800125856498712347832249909391169601034302276425650402498042379008394418231377542136072255969311252532143207683101822672192777834951913109013264138821979641574196512274717278072927878645157137153452790485567125433602461572119022311914403082525657150564469092816649138083667550576176433281907733061529139324866478118117787243834318565579492598091890580209483504115408482894779693706882423833767002170147193663331776427211162219165739024546215781428561298699598368903937602013223607870601679339257832914951872300549016018462543532743852102863880623650069282043192499410271815829179813661535562393570697527678879724061931697503977562216589022281343031172689384088792623154084262842929429592753646143824444364942275018090809005163549767002723208822625673348620655538937338256589007693942082203827942824351417557954239945237572991873634037244458726471140410401743860419459149655467179251554971467469429595997291823387310155182650800606995297465357291675652863420399379287957992784017827138615931444354269250702598962018697019261021875830968008129226153717172009908909721162866274486611720582348785929617024688332749419259291860755880606344083664059971761885005836916691001827837096543879143358594982444104137397508226901035111280441252577381345408850390402692882139120724074718423869351496521628434827820999680237050442752281512038187334966215025665914271098965818081907820957259788814097804872538843319784660544419044476817835721725691664814865413390209887201974965514783690491427013646826853816646006346226431620366349738233753375302936440114394056149818243437680934717486187969711015168343279239634890500052616008464361007388291236926286361149576321784065443214958922517954043981275387112690420066062974568401589201909523043169557910051880083796054224840895810086547702528291807758507252016588884616083418715746958422398993773907833485364082725697367582366066419018373766243407353933040300059859551738479954093312383983971716411055563246932030797502479740973144482389567541481747289277308567878952045264090710338268470152737860574094653753536148302309271177008889157634025426272204958922341791679064261461214922458265360233684944477854344935744393381329811745283760665706989848898137243342831329594183093385195370214955486894368038099142909411213572629788707984868725567942075102586092222720240970038118508566839831065688932548734934801184292349273441538468863188145697192973139732029570880028656567701052661840773909927519532203722803905060085221497192661781933514944080519998861876655218182368014861704181579138307725717937094486909602559528490995859155466091405362745029673032400478473532102335765376890319085948462515178115908189968616081245729343883119310669964162486094435628643009975302441581373418683925691369132600115167465936235482478211866534747612665045525408004131806286421911665002154114635380740500059772943886566675543023288469794961852477469217524721693735383846697144114367714512368359321720822100344403690039176120775644240731354087294402499580733159353932745838406706580755713918002789753576589094464149513922381743510999271811590015982137780014287221252314800815435123898871472380278918097143588258432312682024644805875912210346691688248048544651349400073273477816050419401691685479328623196715182412614382387575210284577078832165978481054432950201129289402341666774684895507394912101446692656846879403858989184325048443851284844330589974482001286427894646004428149321126043207034702973916799389681574495842944559935253364339112006350574368735947394838002705009679169003959464061154809940847197535562987263310658489425255639530152851291039198286118258164590336526210920290666658944602030489260824037138122360981907043836365537637029334609792998904176788878827590803926241452650813461144206259941043996740462177000987708382212279402549794696745678598895257458489371357649041254920836036551022793093865866006038584510465334190948158144013635038293221761827078122073995259800249220623774290812749923496044656892496361636746788355836207503876451724319806010490664232310372236188625428443643170689127529106676813780252353395343266377148120675134482735934519218759118505829665609932336731622441852192930487410215493945336244511255214070213979483919949298770297151405400865131350203150990110432290480429827018002507311622527317966880237883797855870522134591482119692152660029169430968943367730456173275312773449221915592789613719774974787367645212195753573590941302915730010271759369101850950797431102741105766513033641335107931959588115815198363374840161641905116801568086361420658770326464987530309263610111621656691847755465399750218761622704424180984788720753964596678824040718379258810513710927187473056108439252085144812189985590717919926729221239089929128211572982580743730851788948202979142527592794850684381726208309810653840172652543060467990511846452549326168442997046208435879951450981302246418887706918400256814886331811869646044329435089543356846213978360326251434189994441167932186773133619384102837932604230875364202546907718408383090553249577410743967045139597766092724328969810673044822334579450474500395263042536746988559441724402582042830787165103428541688442091757083688119181374387893650048102402645934514665866144468902539903723690922692117178990872311743711545078312776021604533697196290213427952989197975765596107632257494000528534643264814968999476514148854328415273388908066089303294510206835883652892279701614425734418729250053965736518359241650790475000951188927400520493320645880042777722822279642787316729933237269928815865872056464174166955653790907438820560805806029788345692894802016180278969338145599504783669050543339740493838852053368879156438846469967309669884507502170408144531107421747375639069079433292590694773885556867786332032909177592295379738555392065359741839569088735856822082126641074692196858649299612312841813255542757295779333820884424818309118159357050339061421337442218603484627605435460078937390472299632458752728702033650087613450337788171883317710741179073851143344199772031638770949840786711166763236929587576390949677244700013211490256889912256409264488569840769698864391160303284400731160503274664531842226267110247992645925613552279185080823566866252448532879075379382436040321573831184259975085476730000388153508490451480008028017839632809302495523933786908861112021513765752077555782765693605907933218705762937633790596509114091623673138374892888584367303843848803986544777426303602562216122310748329339648006645000035843190237650357144866109996395548393303539501491373630943108836445676910208214352989786726275802758394721403770924970017085090635461819671289890632752773366017723402365734147185853689091676962923549107727146411685485106947319829833068176441105609503387326463222382846810842894153224319153864387763204805858373961837960893361953153528437363405238138419847861652919345193022547225947558062682769238503751644975840794054001560991650378953767815241786237142006011479850574944018733352378043463377246369361971100490329539794655691233474780069362818457546740131283278017941937371660733939035736866946544040839709654767697859975187558688340997722250528255994400712450551076687609106049553401733577384602369396586086864859597430408168061890887328194508799206751513939584207476104584743038395932162313128176386954492281923427855215074645703766486912706397711761793931401520581916558321707172927287826666348486963034573935463136120251951602080734725950675804161889806174975018958442550581660038919656013215183608036424890333544544617778127640571513574226613829595112279428575161313643739229939833588076670360663217625677383295368272140268680718071006533044264137109456970338714479874698102334930895962774871265097385219402075868749760485684352334692489899315734502067100492776099093608435392116234791194030221615349398875493164027052107659816480832104017678360828735548628722999204466678681505151879112401878585366576336170809034228815679391529435897970235699317246351605473355456224574238835453733764235032008997079662179337627864740281192319118648890255804417499701936823281728394377174479216498473126255697915606415896141592721729162348292432775534343943156605813044410099275996367287188000924925535225891699081047343566128731140096595475440417175643840844941784170442957220377857940880078554063148925226730092828074408963081216976940959989298701070098690202005690453156840159926574576955882980945217338074019573179492039763987441561139669607916386111011837372996389670980964811195606123572966546458573601793102842995499287479500395303543532070363955187353003750910029021556070310706108138590555854186131885842808837643241932747321000542649818789206862698605554434583179430413466106765741634480745832228174495484891465178487356754603305559230343626396896914165795456894297670606224224239592073870568929907419459412247845154536715591639958224828729044365856225172447877891680055799898523832731321460741058734229946915487293761974488681158826310078737350501493417239864458624615996124403287202702637353671153622063449943584858197905752145490174305971547785954417662709107157361888814932003335859968555326731862309165393746803387577901323947029660334825497244102066270428502894800986426885431220735190362912175920507988463787687476711060843429090556436682986788395219748898290432829698943465088794646371537992790636643085281658961598635872020362002996578032281343990081425546865414703142505399505395448801736324734970684936502664779844199146570070373706057620253781840618314688669759888148262453899465398016748153045968161362058299400338703836123493240705436776829531593803454861011082233051682113148826345203336031125143530121700400772711478596941785732625115774345788839553339891511937067937959678522830239864021700582980440803274046579393190539354946970082549242020254917996815454613174109855358524829434749098076111784107271131402517339640927144895480194852429959927181261044552770025734013226576748565043956825972054499272098206512047863611908649863057068229837082960888160327363724622087116461170502230719582870115544787534271169267668830419535530622791915683922379805290378106278075732997382065789281208619266341473090863704539952566469410964256109409839936512255376183212719235389065680930276704849952331891991635351190931755167631602332509502156196519989332464236062907531598708624499432349815705598686344874258059074938428543878558818102014284582036456691741841074106287252260807784087744369066367833099362348176641563470498280833385897945952647467657893768332013495850662716639427644378666579231900401516341920984540776623843321993781248994124227666967470519606965345889954097608631235927174974865654888182160166706425281078620972282161589570741177638187082604993093671092705440954958352738404397810091476766655588787826516697480194789305547493740099296204299130490018738198623049849482904911042519348824643284589379774354086380472404341293705642818659806922805126384495046888980833410022664814634462772019651235011207098324447969791847119698753675421876281589807835526221646224706889443770530981950368143026660292853575537658218575902275557479788994584727684002821085638376285652070464830016382426812791519052742693136853993900602402820732415086119450598041649636572527289961268497378872356133826554881496487136922746911641215116986562462491959406224677007286055793414623415600449114069470968902023502344867415083530532264351376016825148049484295764059480489161062704968857033743349282654839209538082044050444991249890648518857700624126175852868502510137274964944884006332496152320419595151553245713610756091939356021878625824382073655159897518991427593242493639713887729892000818897936933725007536207516641305343488150726352595729296134311116784620110149683457514921923896912456752559869327781646237998019282554278129442112944580869017650785403472960298111503066894955921320041629515656859274269255523510805214885257331482305725046030138780171191788952641030257859394373835180081568535220059345580374115804744689856464002553178961182258732471829660264743734714334401770231544278676163308279674106022833108046599446367979780801305184575150479300057905681519334158493922723155227960664292200318987214010982079675603120476693098213379157262725228988621521869387938921426338073635208816364039989310367508177592373273109555675696949031949724978897290135955062890321995150731875567247810554600001398387586232942938557183639388351742328723153224606982796015268794389507512445630449970848455626302870316286314937489089266787711412076761912679862098452910069742504332054127042775800610707415876163783803992954758577828655166880444942186917861931938205494530843137262276009435304302974986325965422900382338879361607087118207864650095648318207137166915568957801300876639011849162090436434646567477050896397967915291841492775629012688006726376053860841507865405616184483008751836849279329697554672994899977355897016549903867560868409015975429237366415209449394276829180197834908924838033184916522887812932011090221860990870531902547005079543401283240798344594771637627825001290615217764174201223386067379344236607892790361606730792741595192159549649768880527959987762465824453963199173139060664336120343945801745036986392615453550959281367561819325691730440028559171203271397571060554774015081110929424331743165936407811966656943984021223341973804154261277348032067441937004043604288061121984148972703682222252514057741742516061173986475890638638192078342443244365086867385852387418478948700713986728295201789870244170795909266465299381342919990305916649489911915832605099620745484886266575353908440596728528977012982305789436927023421369162034473909534724830688625326904812790760241594027320859746653437931125993296329074596627661299545120749493478450674724701239155343310973273826214883755844318425454267096749106912776146568843774650485361197442100519646972727186417979933019356080533071799398635526822513561703384287767496329646992746557823531000756674549298937840178589679395143608330524464152106239093987730070545939090228226285715178049722771122538850896319081464339113313533708225059015782788641718989407061625685570075004996004926006974626756456003713284776018651045723661539817367066153806206110751368520517381487177058122265912783008008183586137509216736319178816796917820045210804615014925292113649886407399833110873304676068992214822388034907350796328206748362193999985804472337730890694198450620925657756926586822311381399191190662383644302840514187524854027506434567037390432405146179970480059820861148114999967314181235872702602437481184961641394958924676686141261590502840317806636214629105169566585820420414857740868515664210043384577958983219986489081715262103227099966542528274729822790161463484282543109480934321160664828438490237955369260060795787275896413864039444271782692160053554498103341293048846887725402479052978404317390864947789221346862883364035025807521591052908715934452105608823460338022394252876138455321567336650145478804457055335191575850292097083997239878606424253277752929886175347450091122389952070365435535789222792939418575778473355916651740655091776703551452427696129916230790932358901102320619464063713076138728671497325875515597315195173778562161272929318693556667130575939057915226056384688982848923080359927130490852963979596231151382829184545657456491201048826337158423328299717486762941768174960471882549333097434598577162529729900912254457700233544824581751508513716160874695587185435247281827601944718697390612997028229260741066374444226519575754377761798492657392473126431302203722341378226937527586620538991206413097915220706165692458704465004403494027482976940960089558138956008677808258310830311538705841309718019979984652121429342519898208851685068701196500792913401495462579237252201874693947701934146668252277844892158649804216434528450930875941319410661988013707618299546902169007080621476916339602169616789398261578831316874321437117167231304240758294708422574489464060818633939514010304896254201897297927188763947953616109515427881295559848305344474980726369568137270203344374280903347852858617250059226765718414680440723236161425651181881648564778318446469475342757264337265173587536061568850687327309150856196158516325188848950392498489165782929672451030700931596966671809728478726769265128812878060765322448789908916802803657645633985265018434803311504638649534851297708092061041322271141305598971745076436090775567155791265999596518146352419554460297300798112476376794010290048209405266646337126629250807720905607390195456508674457584567577256847255401455300137207711438243092746610650040521518531630693772752348236375962835614345475102192253069559745656044472734252300566877350237300431569232586289637757180615267599631209100915281499202422118739149991564466692145002541042164645401603845490919629551993440500496557682063556755038553621677128667932662806468096596773589532351174792512350773456197606036381660706712709589007540349573787113318273777834592974197482748814080166405838479174873940034256912346813730018792506224839114801245354032280922736589486438702924921789865449738184180351980336166931664625146744722850751889142061684100261387794582946277127683319223691731914979731933716417203778917871740912673757556831775959485658588863201774199480332431017708662758362262570818532452675170578679595589136647959604821633493915403584780688559238570012296395144343629925431209121168565068388089309023425116793605819824986288326625453668470526517970907814412165321515674722467923915678052230402366995679286959335316334433537332120096049060014248876643607687676132428693394789632917028854188909696037503136414079559636735074053472782963499913507688382448641711694237502988661787277881668118582120236759538964138517208697459081862412471604641052397932425400846559215223765700747255162408605875015630924027009024242190175552428662675723234549130332983642055944857351196053100861451261813451959329332188009152789246640131104616658459586218641873517898153860595603978188203323206663118920184666548682279667808828914473099630338975124003878343943244889309824547978182705314928050514902876402176197767724310686321852407481063241456986725975749623232251569738535333896346818810770016478445723898802021944518585822080335761381734182596679414354107246114380523603303847457336710386496770001158560879014596577036521157299707248072256775807850598620527956175308773202891703338761015700415618920872518658245742422799502735893489658507303624402924570119248368755382655912635932692277678842442613732089011136424154216548941493237562361770397305393875664201042448109424625898977588312312119000271064371762744004948219676601459236373841346713058309063537014077963190880773157790052331714113209813162593849848266787123457257191869119328363117516346063019206593428376501545670132243268520577017392925550672424468348166954435836140076548309320961490307111170360475493906618538021956516257940572706116431875062250265505889755079266342401705916820596010399285487146631242398445978268088211488856722245549064654417732834933975763217286087585569080290154601952450678908312105862933890190730413736047929859997540902066416713370105197342414174505212637299087087399939403163106589040249013278431094908225091932914445281691452915643959047094113326198788562807298638693319668724278071531394509653945157082027903631096104902840215401426577171879766884144509913199083193475394789798076631615850766391708685285966355598091573884722921060619552353197965976586803523971578319897695498119166482573777059696726774018199639020371791751448904046830462087688148438072805083537676099990512445199875506815210106520080410562222240292005791951223584356091609991234564618390267230814283662252785394612474831364799238838069825991303261575569936453499011309185209340145115046133445703404897650345079027213642012142140652585064294310174318653191753178155697531071089664046292134496135090556871287682893260527234865903623775176937324351518181087715490718980289642564686031286054165980728620038351287911113151800923604861500241892820483190936246672628905903605132060245446510418641521384195478183479681249148301217253996212703196768734444443054942649024164332801599579416523466229065883891943874765888131628133284529548187139698400017552780106686165107751372533987211240368858199135312325856324378998208856047535475759717803506262865868104723877300755822418471360502568037189606394683544374369029019975282782350743088405381699204777104351017465055611355482546417257954594968822825819144834012432696945257696393519820661707769579622514810860115010731175878140065493165077145569683868475324657432076503430494663358055621636744517587288775475634809825114588956391026331611702680118617623880980508954249718598501402598762569605125760855991103545667172198589659548005291476635461865871636164645987181614649408701294960969650957597580387159551421165119341382737670515962309307770652859825753225219146536668449087212750263216406134379795964933703393226250027656106949129117387344521769063483216077617136450810370059825844005715913512382647538649255714437675721542321300117123658249469656641914539315654743248057776078425092214125144843670482905509114235744933066852206046342935940570543159285186671901336575940997718961691631977627001378483640241190692908280931017732524361923800374486961675889820839499809344864508967548199116966438663978800751893790631954153225320802565957695938683719936203945856755745818690963356354447555704962909138855302817620207461041936267031503829499767906119015573733399477184325665694693981440598085366784951553500765688069676332509731140010353283772774408507311863421362790624959412485386255041134210137814636063878946201005323022270617647348640399245078809815954799538017305833392776144365769769649261794408728135050269808886515635552470428699298439886827823084244251046152739700308168030626116214044595638995377266511185661691958176344488323865853364064002521220800537772360945893263773541663068485777313811021789266588671693624199311302253762943829454018325261643372765978117776874109500621842970837027415373033831129219717614741160243252833754602923938713061139886434860434071373312914605224746228556272854007698456809286030655993011610492620643561436824864259264468508968732242501435563254121449152499271533000607077563149717348734071841941129015562143505692590416543047927507584715622025885225653409736315114115763725526420509699254111346477690212294792252166696277287089007131095050347343117827727701399407485355810770540154900793261544617849551167591328910154752242138873969616140138882139545792255688364469540820587669950424202492024344765135097395333369004482505273999999081840605285231143938726266807459058422329946040164244283546282573843960709135266685991149748785742593651383178918743689574525679982429099557090668489976083735249763297303307736409034368946405026815988956316932270997041073709743699168880837022606990676938545987782764282757305481686865653238352518816117325450851256103995165393837710653000183585085636751750828324852877798991649939632758501847476122007521371599482766767261999011974851085822657170933723439263123650313841826976785437726660282558672239350243007770653258023850920119571338485595191064280811418723054455753979885417814966283060308189030136775986571132247192845972244436950080727969468719396811308604454888324813551421803853911308473416977585145380854109835019486464944030716206858930394051810638028290358371627115290474117869047457700643066996149353423956870397932508183618498347915083132281723846124457131520303980934001937844932621815500870553044613791038001531517790327514121880903487188642843680828965229824642045547446886751305398500304928617859382175994300584106119068126395880959866794641317979896553620107243462201390502103849586711230876976535157925932136043837206370194744033860798269900358433782116000900980462976559753955130873782058551161325007297681293867591822388336809594988186296989231864593369665356460432706072809028111901616918177745805595158091598723154649532223744199385200584780245915809254656661898530511655798980560603126997878951643089249811974762878196744417899354160140945418671938419498668727108616154219907005616889222178463081149852747330678260767588045646517926689635669115598700000320953309891459085758111691927055113953890435160778867441416817892511706529310237181965454245160308298763470283309963102372045327658359699401079281396393897788547615867627950588017056420386790324750302490903226650595005120911256539125293995942895780213323061077499422934682492007253208999311009154206265704120596206670021322695050470951476176230545155838349451482879611927114982945255345876379294769437621455678508488280466805201147806160944028961498939644114176752406439590954571191526408547897245611524738482402096413224050076275597074875360276993587400328838745887795521651153014072798456573147040874956826701912259237635316321828422018729380152021518982082688087585897963956713032923131496719447799564694640610609090564555014214184895143719060055906269639397852834287428097267542750116679047677204944534887182651258354463444314314352450728978034988249753938698615752298710491134906875646732703690118325184949799148300701989225066427711998543283002296833684683144325270490426072892208878291783424961373794200678466832847085271196046186268936417496399089961504572201170778560093303037259696833969452220834430151001345380034823915905359141054019756573432936506966329598163408397851936481917828541406022322971452861534942864722637567889582426643456811734331490235323698904858442162305306476904154030111063908138186389221539113968542593407321557711295127697926339194392823508000580544248213703941035915762180301251333454579399249986419715680757723719807788966297588726379980033760767768349607622404137839698609008512949350954995513364238999384571337313083922786048681649533486923123874239633318149238219249995036965412688634446008737090039784164450510422757566173463158217367211359901822260469923681790028893112188033274501618284978831402248753857669713844142946699935134253451421467796802295396269679075462457514049923811965586333436967550183335398027231904261332737040373183663592194166635542096891179176503456767560403605248562107850092157100150733595071662599091281021860473791887724851468887610288034827189031507648251725294642034705536724028617589566798839784797916384240938162342846973429324693602904785988565647468463449513500215444610961408713663300019552339506271457147731585612169275203132515221919048459373129264580446178411899151023334136211921947348058533503954164530578982616862565794970510537057409735441271254362655613050815267235775157541114307036454207575502340271092588407921796947368732323159648449122077402433997109229619368781627171211168421337622399091087279765205348751158663010220475335123234550661073143505695725207919582896051339607156507775411676504690786210089511719788072216500241952956832584612616509306380227161253645680081431291170839979749938019902340623845692488129316859542954235727531425238096144303316467448578260830773589972882593444807956427136144645725793482486938382974945856966223980085604412405804759040456457956521226968615664928292694379418806199732275594486928300777239142466451149497274916903813402206630786037303294603194073013871142626227584444273788267992934275774822841759465433663638519452549426036327399723740840103806481796503388072870076961743831546769433866717379068952821509674377578939084266133609041590350419740843657785500522643806672971589467366697006642568306963905847643618408348395566699261713640988514739852525736073757895996271158624862943309855410275949763684310532979343498150104512040715887689342847581659558646843555454084375011189798559445278043630305668552029159545203975481732119269455959129434107326535500684453954039260439632883953002887611191634299160538280437989141882781856508244541150642126861510686464704951431063920683835160304427337278772040051731044487704377500821687199218618004702674590275540827204170868474822612497827714264340121454265429179423762065359342995099004148556990413487444847578292056096285442271257306898600829708129585491738623347430564577184497501971687077894643373499011454190187072826325593307925386428806617436318673744387358609245031494348137966232789151895466389751894319060106829764599134221364607186662909980339454346986236242858533226007004965253329781831214526576052520068363484339834761849806367883341023810046395650777370112910730631880935892661677302744125625120053059507565576883724483950646582929882207477345314422872711200716446062149883917455707297627794446704770768645508839145299270854855940069945145402994448643210653134624080899337239333101143232936516582096996802964741269606374833662421926546192338867015958730844236615254997027940860182509999741982057909170839452525410319553728280821587174929578354955515015503629548210757384493230480510138909942267650327317939067011610678770533165620526670342332605224836970118575019640777222904734823389349435338312984462173478451426234756353735580843395414863686219082247510585988692128152181442339419031657193551590718342712613928637588653639355906350687652346357662055902985185089024773511423549264656295256431411143309586175620466042443053644791399267177397040900283095598238451486150399876687861584142193057252047255561958769414189762798330511902054763775886463038522343827088543954204954220090552555631564738579012971755547561826955742522169080423103807487784810117231882376805847915607035406271525301738819884410490322753765593102397247769398830827995358569860016821638752928734840866783846347373917065579578132308581327450177413668345138550394269431725761136244068454443164752825707769869834427659987727661013805348927052940945951806466987861595042127833502495742499734005664720847898108068205285003507313630142728126015212132108435626994213235987900992654982291768181391035718132105612860852568509690757943165791218843021852852173566813039449613237215435803141450935788506935232195001192995932054657703071396052628286146113029986568016728581139707003850217302627003551641356202019863876766078324936651147437899137771004209496236976894495767561435732004740899296334182192340878480033727329795962132178778889167321249875041653765853699207048735295935479965650246175909037020969278136284497969512407245580184596488164434856156773212580635146564473037115202850071788967915560369750258659442249906435978286472682238279620708836844673945291870631095709094715223530349448221808387954418236251556487581844831548514780414758191780707429772342769969665754898512796165646475520642408070040834074876364305604438289458555692663054843922630493700429533905563325633137580667206709518580479611115119549433769904702005048865431682990422686384010300318075292091840215049717197850788516625310357039726322233407266487967580435639461382614458876725239353052518208312414525358470567503832857840122841596638603968380935788986260500544506587934458637839042819425599092921646416469943995375499884116681462588908188607621442263436644234573474173179178319800246091270914804454493661983346275356302825726735255627916525469798473453831710751268423622248410955468067648679118547812848186498913027456454881655435398199270973715909861224860260306597114913700523977805952842036598587537483941380135509708780636043413837236030453680759604091108033041110157134700080769587593490556541045879868336484436411079477675673313366822867370118705606423163042460392876742522976375719570532677614549679920232509833841536925797039697490798923521591310880344356467735286229098334940675044064038746713147514900302679128853974336620813595037404382742574772062374138736253589145607273566196332336188577152234905254354663972504284246724506108584558539023512808629462983103684688433603419215438541507707247594103464929268561639499684618222816673516919836389777402838185587223613848933125786172686606340973179588326260563468619657428362880190857893100146906702881457238051618717651986282916623608402841359044488418161926357694348548503391921578289852935010770168726871140622176587178626954886890157053128895995711254845249924463245363165861347451313907282399366652972703205736296817754983607770245627429494270971225032321444206459334510923867114290946064061584812885120164323767948218621882618892363739110027618197880588882532101014026935338141944525865463009446955946650083665266794956686093308674137287108682766171844497510692219936308704233035835036572437956527692197547583003438194673129536145527091070407545738673058817404210346833883989991417331320275041107659139639743213836545186794314786360646702214753493603339915308435638804450538717318803446588966683798688616078477696569378520092033593515054151617096877860249876189878446740861356486526281970605692620225801070801286986216794061621685494598393484048732661165320313875539226464041100666045636021876440412436605628955669212585428646027321255534143649519150778820782797404851697050446814858367403050478714293347937401808892827433319446289228760496773657969374411848408003479584325105072557120092095675728510062631596262905296888310500574262438833615778371326669509113952282679079019180581004336483916781633530304024818486287875547878048242123561759663302163919590274285192443639025247811416481188091365830436155740501502877729824847338889206298624368387319665759157995613116939858660318369788193470724255654099087043613291687271702249090434148496609021641775100683463293965818594302482529732517086144624237712883743386108110605064756919065192297415061645194575317620865597279866714538854609548337698485394930741332742026268014183700875663430202856881474424951922799438594053314501085925566895894943952928680064382532943476751258095699772078421726088908456461840838742959335887974695178233214325800747378480644386561590359397180422682631168257525810099694270368318500092169878055401807187647288051354511019336237367378031629721131670165789285213302491822740490304797211588898325382238185273002680013912898557903788174665056944442156498809689085495226486167999040984974924258902665029741756471786932755761892029860385761558896567496320007064158340838068640411574505891546688629981164181137153576607798618458723881938948943369811438321197583745142525574179795566104956811498241340765151375038714813629424076191864437005982616315291164793373468915869640776614102571109443850992012223203418679729100560281630427020062940781028051325125904050571159595879191287512444160917523144692495596313286773562939273232634306166485062415269762811773972019667534458934629926996616743891870328527427738106419763925715617738178395073562718290432501763208525532403261473809284446534213814426960932178907031132862064806358235435437586461067458563700867022307287365228269758169617516535845361229251964781857016413285867268632041174038518174391563986254813392331609387624526556918873395685074807345672007513343272169942684883527776644116079969270864239795617256762629727250391038671937790576778523035119829719291534659415561785710215948625739737440846878060020060458252725000134781663226539502599590700606253071254864125152484430292255010074951225759967164496108965240810990032455259224338092582175488558293478208095641955405079310073195848567108966170109673181155039592128951517828288940997421285012617521932368935381482870846862128543873718666553646153593653965155753638867891187903578603513043780758107046500222893026769061162547029789422761196096221458886869605147074230961133830179294551659562368632241836080999413275020631907782790174018201351085593825759870628313560614660109924329609113655501671752231206241994537127217039408732871990330314489553331105772347295920025252167629741916772969048024266045264998041642223703450515142917459146121525260908293552846527251746085066727928787954157900536276009901208194825690789749421133053306157885233637174891437056117667483350783554733831212890015492344573128674348981979465934860289571324178804350691470715666189545220882362678351044988491669326879915575054450323779432482098496325771291040746654262244127157191750719738959163762012325219059672969671455017745418562937757919574803020926841537537565837623908512439870618344493038987041490631920067729419912668683679071985602772028340566124832191658427912350692423414898448737212274736573850874562193309942570503088906466179611470832211844108840610137527017493857649044134493634690189969651465449531234526562314187540202257418142200426931767429863392173312387874860188601205026062544284022502561609643754517106097070110875960691536112054172389088284026502594491704804999631984030852649001769972268097556991430853311219051386957514164236175842180910747266999750761252589867333632471060225843014848308192058785657148700017696297569706184382355571663826645988697580423372992930081023165700293167689960730642942426559255165397455526877826195000009225705555903124196502077389208385545265133183294204540566673687465165041378048131159300867958944721539937578910813124079976292657096691678139450942633529009182558233143533160303108550240032259308596307948199692717226566426840144898169516352812498600834486523097621865864285512218733219250829966949214863792557585853235990016851168165034635573642314027060006628006843070226897922004733063403510561774918589902745714679423934773648091847365158905992875167848508872774280732914547052522477924963732650415318023471087052892269641860276783752353867890150013885785600150389535407136749758725368604747977016141602372071046626371086411021549681496760428992772224349501662252416709993420932079117610312288218841483790874117354449456954971548457290135030932907538504783008344097602180523309782290591118958297317404386048643745822481153598278897596748287031909069661746553284161803741139713051743184114286691736602305193117766401407732653143983625278384947673589878053604184386161632569393862762313977321071104022537855230958437546236929979451116881397468855430563194056493861813237951531483110631552003396012778818066811128016382224923355869974858950934888931042188117829936326696284857808231998268701089791646559823188826106168624568728864233812418547499285847123200603350690250764882407536432431093164794623116342780539934331032604314595281479359279494577731009035717485431733335405218838498959165423133070512340816766717741175188969566983656595994966618089468265191127547661263313080886870582269079544347778529665952506282638413309530080862655493569753114832476553207648919968829954725596920672730317314073624765063129157531456818190540478997563962340789739504035847681788340430244542043035955448926165615574131897579991022294026888441149494057006272766879180047765536224797571448205575402176907110623883318966491431556685136789686068557905254690838722380515919288016044395518926975407270751420345537411713660243788460161190015942226587117974572591274022226218647725444121433383395229205369831464962425162648117836953545718364876586408264994864867074791474338043976875674907444609132146782066312461266449560396111847868704549100063608814471930982168308248134920561807986316428065056188156712350857287920373997838683094737992693740437515675665264544509369276769780286707117479076272046642244106817244216571222319987521622274737381360837662322215031625316611224495823213565697042990019723546776836289155705762133767027805337518527803585658065727117589633650517082437669824258381378533694607349608777127447970651332035733319259162064563530431221339719386245816984593336249001929332076974109407579513595035398432848784181399039520801642927725962429258831517159333854905083913867873148669131037664134130077213169463020447995994768697650154560952783129267334162514594057672696149312479356033502826239597481322024939662805649696570308387784303121173358790918159850604527624558128436393739341253629785492949135168285457812162432179791962685139069272085123705081316693798375020991643355064611252856625151547847886659772893017655352083956898069328542672767648394328577019225503742251219348618972890097846728981570482769547696619476210528562573427716792018857166285988859133938092173559286075323538483613042338130290365435716431959371179378850749227299751208477884118310764563624654706341499675213507848144117418566499996844583828866931530090758956577090579604396409406535298405693029449635010169156697414988627261879675790649687986354863963105100214038619413820036919651599680549839261904461045042134778779307901472693902952707400344595849929901297814255583873400332977628548582611472091056134367625811762715128961472782948699607863817737435909124025271943305722731445028833151546648702054663795672176849792505855961206112180802711302794877152901629205555496473892228082205504252155822355881537275565723206035905025602917971912378503712321672766341349010701929073755074624562662823672981197568471569016247107937239633586465598683907211227219219480242602024215908233094279382683576832966135134847013204079172618308008649687842046888570960301480099074107095105582025160395979231962170313806582850695970537264364969549640256419946802398033270686495406396128666963347606598228208134215610252783485104389828002904923909732375174820080758476728144576054843931612481167352712161503262562600126705155924444898593318122241931763645244991109902760866117927701806178135384311518430857826626610742291566098964497414391121731802632672955128513056904479359397806105365747089772041896919277739191210201216426708360865247462535685064032921177413863546080499552029686520192498756629881150988284462914149143862407852357720465638968445652847964404908705671308337058486566561713427144870297611079464641417250496584039094664055410717534994502938465740849168771026138847332410058646931854133269796720267938593018203395765836433724529994039687364838861873206842195091536481759814368721582676938307872872365298374386615402355413334183820445541385324424119395230967347373097639775952311752942798017222613500263764232213906013361247772619583540555866327413953493132219127279635014995047324359396957750257840537329004756839775976974030630921379704586019057525337981511908277910990084420145628963874602075687061522972751394748137587960872611678254111253111927317268111741225624955054744242364362708353489109768298669482421474261702498118929454863338919549418400661224276989008519074244785166101644934926476444436933650907439477725875263765905950358576156346316799601569588043871444902049609516556446073567599080607055391755458856630024216391674368894389896023318203548859498872969468867134426052160753332821826844045935614224393684901838891502124616420017854279994626687842432067198194590148254056380891727316593031329262043050720090395366172503326548324859911392360225822016653832515877071149820846751688366176961210134454371657909738409537516179542613705881347769829889675059463187363844313830667030546639467212263674274486562442836019590525994748019854368575523292826429123930944030476744238768916736526144108381612556525309408544079350288450129093897294942627386217750830323272798808460553400050517132775739790350652689990526415528904074517447751994061033928741682956014563761598432515324918350095832980058209733882711318503086423547360172874681411075231632157630363040816173593193831640223818500767989576981669603927581855322235192448396196109548698997566566182684430885740075686873054664976679371204028814608324570552449765930676962588006846426066262093373247675802641655032985161403379304915403275871136247555801328440417314349531818873064172978467348789423639236913841675999170354242811706805103531183090295687505224854199749308617733881952740200377958839583072225415094536300121274575550130797314255982364945943768881582681118400698069975383008081739281375454909275945564629508259831589080534424532164541248226516510181913267884764862968517876114043527836199605444732497414723002032304744688257211997467854586255040557631204988803024178956739980739021672027295879772321543881045473325757476693791940786265398766367853133158575034131125657957090944908674674244864993243962982444475474402697713190219701583645788881234913143570961035405768516304884869189824224668303170996836415065189587310945571522694659652993417727216576890615086484326624932085151512443893144157788693680621370943213605760480771868313839873045591237816373430404538206716285116181668809852541021112545707041216671364076061190337487983643171464829568553295553749299729351444715435756361456180681929845078894906154216275120492857579943779248027225740006499465776291700202477817452760995676361411980951264420217781271668395575692400611368882804490525865393383068543642097054616299945532298530973728139440658798762132622139080212040469400738120971183575523476157896213679052301694382254921384662480719512114280409649926687578467669844027333299081774111380316108528163842166682321115106370023667980267367217531482493658828625365117746388628528345776206509345382933798933158063838724332278515740707670111949417084309979120523433196493689226094960269065413633493380498949807919510618607686491915627689677614652121927209840079118058038000238503414953535122860124195316423616283524286661151767498389084548262312628923011132787226221659829198705387700778472597521188950005140630507060230989055315916484674655471284946670274686478697638665152212930859928831662925032578009702616381172866661936943056722518371359481628332028552400385560965624311600622924388815438086510173160468663502896476904451883860021587676026608366113959875295160843388805872369219561749633447926382069338135845203828506638457894403694876666786926978472784987194903719703516507983043025367498783567200227866341902424189742383787488312964006451634348727139788592312420215386236804232271728988091003139208398694733859737039350262792680407563865925631339697932775940320700764385042940069294101937070539860984532168801853883275879813509605250163881486840359663098723232684346463882955471789645171936841087819582546000966515621412181680029403472041345269223117071401379700541366828895756644318838360120662675053467200001545602182358215211531315346021565354861333121950752812479730176115299879652048659119435511491576326746949383132619616689851586240028032282049628076604048932738815076021043252724508985817301988683518500504004322314135671673151024720394689994214635958840180770920694918919127741537491155731099369918250235162336516706178902258366791282573871815450140569377511258939832844049262918632009273025685004898624335619999110638851794577768589707001122048959223192887994506836146850783997568014401206129109925257413070401268482605645638156018656762670058860100806759158640891272739904238455363724910062757052776144109678783925271358780440972165137272014756294111413500032301920313515893246026082258969631722294327409878295893970027492360905475659155627357045519817365887393598614226060136082743421384504630315823094240177849180555555441361112048567585462666633569903467012597999200217961830098243311229690891125781573876137499254946717112440281458252272611060882283973736464417169491460383110539342595795210324993305722859983312626224679061258213695904813444104160693876529086074013433523859236397886050964133181126095113615002091214365523031675640555428128043465619571963157120987399169413214938961353033930533112534236115840257841776982866509302712020196835590260586485237341075092499925335739638818485877651857284120776032771518267585069395841283643754938059658578417519326373882721438540021744594091007127396075261068165552043292476229086068494588080775302538774573570572042694923217882912830537164684751209613599550703527728787695717121974332917409345312702159779215973560752092150449517096857281940965305113442380189623901916788464871467940912880332847650078819066047018966235443377543638911131399709553578767426644707610879928636638898706353241943670915683714440656481737597707879051954795840564146997110334643748024169546845824156234846701966440449033799587468315125776351669862694561408851262345642886220828050075739996182294884730830919066678930250907886825294819495828838315720287114184371948857928124768617757441232795083809413484630109695842872011094819944664199427499127584174939019426037439313291079223369392436105543419655178302521894216640658184491873515453474978931353733141839814213764824825551479686803681896407159293035356589187238188299320107414746081552421488344725508318408078614343283549427035778303301048903960683845391624577949083833487946307349494369560113211314605895182315490877262148981781045656769731964032722738309749994521723236598111341431641502624761227126748234416301448621495287396026971931177944909015209664457287701244875113632811221976736633925306218535338510986911116079715166521305704421828677502184506184257172199740730199070673260516158679578507040273223743948683225930316027165887121656336382658868823245980349784366518092481101384020738889257893651341129412710636184473587980771056743740038961278748875501120920034854427206067760239257633993936664243581216659993446197913056924629727254903035081368639011099874066954888337013264992255886545272743919328206328887102169154820703601052820832543126509509124838297171339328325262272293911251806419916692288452094978405708691293531086626833917260630070316619964892250092586651292591924672327923307818129669927308835154286154372526523421687043541092866829098970376041426655156069859030864627952112882512910391859161830797895731308554976771010682025770208688865596202863711065115338269562666398746598281074674363828271428913656272786379065854667336596495724984156061842478652959822310487900499010601431203653987906092084597084008413506084634146128462282268247455504138293088795516539791182127884788857877502042289842522537752458798458435954221515215904349387473487336711857889805776717453131240798271056423071130725767810984933565151802138044929285547621758159121777997811232891061807052774596340892496815559901868347991322722817883275952056891840179542952464221575687421191629172185607365381399669074156455166966227837032812668293376549925483075710828006493388376614195983187883526453413764317600728928285634092896699341466284720690496416237654343480387548010420144217912523187637129494929992369818200142408216001162752067938979579567538636568508715295377045185574502273068385923247659751915720996017650311889230623300230347711272477521373980761276937736598422753509158351362824867142737105526760182419612753100740891901833201979837287625891820538889135756787903234692852781265959297671943457530140317414684621464128622229771876270680696597008902840265579567421883288041028537785699789053333255858865829250386800428161856926733881223040427409463934828677649309922223572412120693850317566256187266653595991147499171516693733230842339860683563085730861894034241163292201619135402410660720309776353260179182477134219719633342103274782087674114007496780762281915713437793117011361334403540000455339481054645059351441433898710195811283543579618976439999631989990543781759104254744968525399113752924435088356389127649618675769681189259267913180944481190538350727014237017803485967465980272299357821274885358766901832905253332939957552632521004004682178600891896585916137710268972298564698398229335581774129460384139211880903724417942682146713872182732999901396499506824085295017174305448956208657920801614217872194888514874014304826669390659461337561284523455679163959319079710377062643960023768038060885931164142598783828452075831330547224738358981911586162394288879022900778107822819744836473092433328605099852344503869775240679727383232743371894970035704866527310026822579345339981478099974200794435964044353203176090634152591711436160621313360622617805122258648171245374590188272056074869917806764552397217800795893587980914115934877200608666898828959442918862855190503326519879163303975494466092497350744578770076614885901314099338698451793581367455740102693174996147292573961172246164992731156069364145319769791436562909988122238893061676072597089656603426656012074078086440529239436050403128407491421344464432050770537313843659735125177225217670963330861074395703679362370927235922208047181456699239337505758325352488241760371271924004877691758250123453082346678474044863743339996165077696386380082339455348393439213215494012550983977321920037798721660190562136629619602074485844558384120217824114493517876899029255501169358132081815451317979220453730001011708460654261995724941510301559478905190393630969177549524687128461770654887805767173193603979991081545843569216078295030232544289468084798305743892414389632186282852724775055054621815182151477660410911542640502160246149163850275680423174844694527928804885945580812949912392708283477985708778300173127079545964305198075543342101461567959016165237300816452347104984645608984814582819905952071653114928037307986330900969933221434125200451731503286489118881771646765027908108195535649084448294543008788713911601616673635976270969263545925751366348661218742756416088374945397574921004101677571939903777141193507592479304702073289701822314563506202939136507798141758612778011663134866916725238559059858973180257884254669944956781360799298879176073262956685159635020656850640750493222311284265395399881790357536787553517580424752846655458495681198437602206069997102318817778599112939392659082975089236992173937512668333059384950968118720736828830255753049546325502560474897302484692947150036089222911899973705405051469366932147297336234023131632993063474615780510152291431906815948502441446877837712179027299538968944412146920127399955730666974257821392639680377943080233355707272752202302645882695731639777808676007661566759578647135035364684412557651155657909263286505015417448019259376975541738904540349640306686732170742925210389863616153582529699103408999106286057634969032125824974927614304530192629242858170733572389297946519447635035701725416081790867441434182548013654084525572164929166862361307304473562727264422534917078983602386561280340137375431626469837540244815899824791076310758104631438804962429023013087444327438452357433750528286493951987191418528460042573664713314454381245646814001417684989339034912608513489308654435408115691666509292831754945128248162832056452850046918458087455684657979883576179871277638707843915566133272977878299018574619589222839114944089070494721377108554769641752761089215294033921885457730511395477806223148923819021998037348905143483165780789192815065355269513491973382651518104141972929575097793841575509185430405835731505351589691364910115900860528006664936742631618975072479910665367751256901226903794498910384448186656968787644840363901446191621577740542750146225393387684881282757362952383555219385118987850915814085407651360253684087078058521078661973185353692103471259774210249357985141073373818105237264782812682955977819852680468794661618093918200232829838841243081519290895293663111915614367670057945771361968142425060523453948713895421749200999169234088971857216757788339031009389738450517960673073368728913963948792109256195067585571723941796858847948916478473003610094667406596351113459574125480045896766036866494802787835982985728955176931494234051179065739079585474619956391992789827115815724542468549964296989794045931934845548959092346066249973949568355756556220442253009382471328212080848303842234671246780227952211156446183512789849330716146424437079731377428791057621484837299779667568440690241563441683820493859033887676435418048753286526043518051572465332249274612942366696796630312698430384178839689302360127298803861178225645655919276440873190283984705446602555863189067826129735529618423358803210302431102333587013565021943648635270283912319074397989346185520145708147551730732759494518191005871266025901106018640943297881941416256830443473176136455674227667969641982448613582838037398271685794234517029942520636988874793685608117606026405569395726617954753514121367030494733565649153546108625581344376519238554473547205686871611432137209032387056225602024400140556215439653701332302174544506942482799659885892085595609039213397220277494242415097045510666603119820141074762869899048325626468026413179732513108679747468909186077029281175614323698923175876906186374726972660352114834076256941462694300718438784749092270554688689781755693383740070115713609865978124071867412166937136316931655674698469495678201805811219863855482417697070232845494980592387345114611056486918512395795938013354118418716835250437301637548757374863760145149309046227434287711055157339982176284262960475691755075184771037082417059219074283526218937899134200675262339908744089330713686769958630424087378450811940405254437116097820991994643839292321638079894783447340586514149238484207808559645633282891403948167016845351082743571940775355507514042857852102007611175795498993172582241468238699673532693627573325827953011782077087193318458445346968357121120213630122725976470363772494064708671230352053279313998473783818276775194012858282509445216390657231467698721604060736866875048157309101639009766920296031977708641698378742788951072412412113747815875021367723733038992284388584970477543846961960756464118987118052568755755699130096004025283891739324331556447179059084272567781770104870811498527582776307145903147883224843093100817412471812329043850190598989553232747491115979991147769028900586028635300800731291331644738593701618898903874527833565410531205547399713490833228418240404520237722688810100977630070564712191118463200681506180396760918941398824631342383637315728334343364424238600292210896875903367233612399804947566130850613195762292506253096624286373203149173364592584478907399051330559172369998045223629217297253759615400223915521812346892744881926305341136462572975350249044114153718353575188293121865080378451771279256470637317958486879018611071379913035008165629604306105839497040499771574078574546130321996973496486142761553014861156498267513755963680514357101490517307062054333923932991638865767199886099612123335380587221697528620593266625452937813921967983282869790652995743040183053359169563925519463356286287603449807861519714726975515445787355140157497171460606779436704357196527169560031603094146788073956189982919351419854112136080285566267837403809973673032535245843010854799873232430304576096104345168461895859173058871410737901698782767681861910833268219372553598050114880256747403061601595811133061019952304562752682324174991689400691707017742988484893844740480733083833226551836636653507742820989519747537313742881729983761326551394230064331830503788155007432115115653200458485927562355465674139641933437407191963838273725264171496380880973060979947056709557052583671613731459249962284767426441439865600934271263213508991824711405762635061104062948225824626437851868158836388994838987517028237410919536158643027452038460732874240427090637265936993101087216679963962574207363524898244243761736336018848122800206037646824621612631106608342292455661532134256739565715813922153543508119179445825866939962421907460037376399492371392651819403702546499868759127376895408274041483512295468755239485370211774634970690075514230019772087359796688085055922106933801266975211116827204935352201419998672147405282188691489037663337944486654324652022108404279187202718428104877656399314264290365725406920234390632544652363093149296622754227994816302470840300010936232819899591768823422185774446292544608700924154831628607548199885876715040741974324854637185716161576266447268079692661464206509164277677379394520383880530838984163650247308524438566221195612307346838308453437864773230079820055137814644322129482338399416375025920172699120937422982004720371056063591138824270309399169888614666360090254235815940482140480956285884617924309681513228532330084580443849706334346885777617269693812927673461503047532423876964502686002617866532722848263475346478940490588901951451350182469892735048969052803513608417381099970631807303145764150944903146174188295112797533716648528652850175175437815055358585127122622579199414178558989345373773220219430974623110744097404757624427673918740803858950446817848670249523643307807980112522459352175846532971569026573275473832696044864409177723269828181499178743864554433014936822866401386421339278372345928842187447529320075044312127677071115422534982207992485727419168619389377795805020741143340635857018112865004110791842019787491474611712659865143596439749183515955324147638210745489116255790021718390628653801393161559207372997977501084315091150638753168193842896758205427949542815496343524903651357389020608611122255069446478812844432992193253867938496063989895935757136712656453556532456272928395724146130033785156362482653852093270853893205298602825975689802291351178802063338674686142332299530553397667840276887838503030881630769723813694632989100428947314069578626281278773476232701801811263798617740581333205272300372585723322379231149591994951247933244674915853014974279827066938330591748650474431949598052379442313060858109812088009229867765981271696689066886054192549075792240217730633336030634845140171048122815112834535561402110724917713734752159501311653317127160408352551709824046934916391168996147057333518438582007938778211406858089305424967212509473923484024572014490193632122352539336684716851002326191032748961151581358294113154486258000209841584622192859048079247609287577087357501688022291172338211387076912075181278889288290620963729104027118397096303788312529471379475860539749001302815552048171615640693149416629450166439874740961671568115208084814941372120163310832199608407966488603915984309086038813616440299255955905004092674066591389250814398011621396496467727637505752424554553140329319075524260994575867588267763619594998850601791187782819361637914719449415752040593808839477244854072357287649538107338595135465367696880854871642445042248916031467222367795778800703216055135991967883921966403367496783618626361512154758159791959389561307024254375558977686758379531984096847559907720730072248404783320851102301476373312272032061305248722441405404137698732233930815661639732974947899123612702854158937696516320335764718592460239693452481907274339920781759486271666107613230806780862972552456830166166136236388712858629021488447375223738010922354506701414396536925951631542552687433600768489111684388229723607677618298246623691007507155763622773227798641494870896323861132342044221553518052019408647417165855914932920409349421830358271213097402535375147771971694302095868958842375333917336513707593005803526960410478640157393191988460719974248383679373420384134434512351073885089249563122856767642178757153221355183346536613554325700414300582719641547487556844113134296656206307839399231165312343359985869784641839671773667515650929735059189566064543008277635199036740631011447362591368831730286841677238345945499375844871259232641599995178827326880595141938870045318723713115504416424633058308295098861181399020248151025298935934934046292117292312037865480192966713858346378463168764498203171896027109704009075485045083142455231948536765264877144611668637205327285517650790241456673929448859743218704080569908927089497659248185548144475050190440831271487070741799295483202737073161792049648655486461975078903078538224498969434982720997892192674641820971745037414717808129645130119761294951288688012518656502919224692453317755770909034819828459173601552046164014812676777566581032117373425949232023987452804944329241747176614061012100697546661487700288888544382991319427629193572189484835985940157172728732761161123875739298162725853804831380945219592007688478364549915528119568776133431219661814062651315166957750118564074801837564600859222057107913152140793727099488127022587107012533475833451384295908278533289775317252503503798174395338383120903058002897703737483839201888227516322572720344546118381724458740512971973834335930369432026185315635530752000446922620883148989989606664282467511015314849721036998226484080018621853350705886134473224137173877143004567503750172247812782370979606200028573607105060727690519615622251005293278044511439093446080357354194509731227779731889601730873761074657767330806288149576558812465144190743763503659517976716981140495255791040724045713706102003835329075929313793332932417665925960184325728298819330796410019217214541544408912268716929040013876339091754817101854468720674553815977832282277288403898885109225261302043778074254523838829129624800942174449306578872656386470382947731901036410302726733366045253711285591666038465068590794796366954196537999162927475592296513861903038246657569483095474105193590998840862052282302723994749487620745765414792470713140886012800848594730491883742087769520275941911143132055505353157853990955159004601360182901807327300202316121677256793029647411480541018917041217713354263082270010062684956459768608633431572003064134276051553187392969919342216391918944618048848791712896549012331476127679438707582219316712756645448874830978547460415464556735921429194118943788997082897663629585503512160553240806525265115325997151732029765695200932051811360616274709656430196387644377834968799586847408500367436039282700395057066495565104056101000206994386873871011184595032938681331820653370062929379054459231540260003514811645893159617057075917758257579154301135581938659847761664334020705421924987122370259786069857705984302336692617227987477752193264966020779565684065750852366246939996157059048515377525606066776162901824159392450085942930453024834075240346226986108263995283860416471420817120911620726849922838842618907383459508797201945264861988894622974836157051562070959609810879236390839430840503278811859311151704454867855923041492843681785450901962772049671132542682154348387546557898600966211283864666034080975655082651996136051262248616141674634326906728607600783304564543821739156606718115884441127292707558243800453312272904928772248314300447089819362680630931622565216501765236430593809404248507739057175426592572280118512236681031424040970075673577639019313261193453633137743345288236430688402756281559688107315323052919835298142733982098652565325320381225148703747755772501122511115440358522951666588818823636906627015626206132376156428993279826194673474793003681432324496896399731310832108614503861622702567332888136481425426077595445663833961261193165308933573659506256034120483017363774082666196157133241478077490582969762243234105005212023873814105138968873253144331504013941392305174032591966893131355474922123295271855252186229741557732176344026884751695797458962210953849163164980953362834751239457519644868380011650082371218086469095436008515701874881402123083918287985673278581977268945685497954625673362621176692112758660413741634313181922204195431583858187908326462602991453480342284637354169398994640490140807616068177804673886492924427026908108148322996228159873525088308341661069183859742481234940472209162902857626572306927999009859641953900846203757620638817444348300672621623900426153790740077057062241191652577862269995276539170658627965757159140395869866740202499251150039364486680732932443031409949750436854667516280698725210149925627996542619315393396608789900560832254138609400152607877425462823380238710583175530503835510585105752865974948412531624694230992762049459159275582249930373309548816134413765296816557720191917225986571866801038861852455138045719691271928274647312192746619864587394216604113328452779354229367936850047884190998550036083891732790977268856718156545050244735875089429430381094385237747111705591735873009579968659254692432088437688063639748970314838336528116090342948992235216668692950254513979801246763347585238269278425411829560769293663260069139193205284726377883742815836839996751326274547651516853116846312640639172386684433608474230432341739567775163716658869620223218466720935903556307897796417276240506637933202422277843861122821960054495015535023964475480639023582155062982381010045721483474194006323686481660370702971733908285871049044182231364663487808192706117402742833874416070160712446557934533593291753963411833108827033521602764270601467996615208525778615945213143430914145916253724741493287952440069032221001121593589519059595608992227888934102411615890750305028295364795614639961520056390371238048669557213101351623226629498836805000260446498094018258598513992823498638807760493576973297955896228472631247194627079348592631265251810315321006481737346981762543499744804904576743879996884561500163042802048377931992263935404940461922966569783780601315415920341175663968201331741727224911766612934983044051005535035756931522713385346114500083300646029599436844744065151993012940001167612142829826041895512933204007042430307610671305931746624298181262308661875604082236448321162190492354054413538418525254838951865742359281009497140263175166810201724276157586637628843156437865512475254562223659498624467892911022449788087424892308159653416918102979669020970192434194979352756054660395391742058066942127263871487822624716886900514461044501524080397354047877844334735167284806047936690892552306311221443261465939416254547617791982520801268273981544169787746862280877457212548814319908896953636295205008143069960069839633968353599880170376721130746472439097250281290473200073701586515728725919217942911477153620317462552606062224424491633926462529395285811774173225106122208716816672499960106202584257516659907544693632076242636198095603262302313958672484794173159195090346286409809720521779349885679531055556783117573319124992936951452247318988238706343813072059339165094638556837563026472820955174942463271697724515100933742520293399727265188883981041474404200725360143759510021437164185580416114429006525273666329726305210894215928955392164117888774181275524542312513057300201937212541772692784359243256309409095839220764915781246510256363766565234294075076626438989926570036155203475750281114349057710564365422677158862397755077723525906085293712418935053994333293436912395922811183109143869642936439730410887851362076265864046724509824588123131804904901140943028796131314565387570697288547566649136828166550955578214839972567393676478622036929186646194721145777563906665698073934172134261205447266863084174995995214064161109348099503407978736809753852019434803926108988830213608133025751238469367352103933036230455652008776136413032117173043061791259929780851107967666913955465348367338315484491849517243280103491971915476841459051281188877398063708010339053275101927312486250962388652078189937976569302631728116502253973202692159922043432787432566284775727138242664306512354301877148726550350035948723456644843257696259775372495496083090402977548362907926839407529662326577232671337451631577837400158723120763469849549097665863393573937318438457031221425125793837035022397963060690961496851315846923253761000638865235292947497618043417600250060778827760635233943870506225862488814600933858794063628073874197954250618643370167262901443790097027919058804276573346585673935950098397972080201303160180643123011546402854122772474186541027525333130073702037257800978129649667666122372335571022568392202395707378961964421914667683021999862452477159863630561618967718995511651828906906384439892956131385439826105716226782154201901606636509920608756806298135575545861030651273628288433722834475915351491212640388505819195318420430971525310433682647901673752116705662962120711484913560819164674303153791748358190206536465518018271624677896454590955164890032153663215763969177455650915763622699153420650481743636780360847698223502351932499598883255138630808600093942439160377995708451884572689949633136977804775206852475711067682663950537438277885244775833164309648417382939543367897029657984153317193432160677045893214199783705784812766823724211700937253710379461502065017765248363494275743342766489021630571535903642494280025271721139108765114875688283346078146037636306836074356009259742947904438596414707559202267444785387182612988445624062544144328359172958959990694630164236961939535008354922656958149486724630761262327162594018887594953145454346651224310778494121618073817495605897782075443461680593409848861100739116306243343874942710256217627358347644233557732099250001265500015292649653044695505463161291080734564044912320356930582592365019723978557939695140134905014942796048307081106711843449682508485222872046286403118209721910386690016918474932001621901306672036134740467921610856242343813135572283882411764849323530872482545612965970357890148046931078066101208532722699468637579932049091247466581150090422638971539325324229580751100534781543113419478777974101002221747853045361134093816073089255481406852386946054010012787298309782744154965966260496072586565010198195926074812506947378809254383594745893063212501031284271646982567939611596249110537124256599841804427089714302217580875342790470439363801181469560427098612919727025161539815136263523041288770077943767114363758201989814217193625066764384676232207051641859711630627692772649502092114459950524238241907767698681549609515115057501982382653913947530049923994556302069280662238515140994209312565350557160149919986310323867113248896993957582199203815484654008320788725685054715776983272887056971122039773689199582814520966236242116922257527836524692614088870581082132396568335931272545692391132714741176401549603743597634462906599208025939579517398880439650457137257019198148537931791267412245763293224969788022597917656350527550911731248300718534423407509605521885155941263868814468165174462990955020733825382254671406306721450925289020800946188774650389020074093053129554482882697775259823852157007122863805680396847142740672959641386609022693351405056382029734058963537915248259736730323582166799454879667778488213169767021067065665905466319496711352862333632605711798733559723748320187670822283341465731051835624121061506906755936832212884600982935601861294534499865890912311610767172468261743739039810625279151853770174702185268188106126668254591022027485520371431217296612900807687093914681789434921461060413547564911287805017560291124840288713557829219835558237119681162937314525855422712888692131330375293366955299698235680845971681579115047841850302527639240285161481888742785113213738702714816163198621545602658827894946075385762139338384646296700801424473564244730672017767004532289902571759644563296051525322403230357652889114000187305225038547202353933872482916848526726383372599217293528282322449960670473871476236184142512232771608073805499837080819802214412080713787014849982075455698294898769611564813614020038164017552496009975124774864531023537103997018692857640204077048055137907262179354100170332650784773130043313953945379334752946581922814932924549373819011677671178483788431343335450007800482321301154593920674013450472487333370803201936616340009753726066343164352827693545966012391434226909793732201803372944957925968199379985196785371801611247700735682464432492327488393526005924069849572387411049102499610716494304977992007219853509286578216505372568814199090175840212739518118591042512697406287732786119710120812684849231412385195300895755398146076182367276771970087991727776928326160197827610491802446515466458845042349200553811350231401197069807237880978575986504214908732022115005875956937345885875512406327488523639269667792651089433305064069861685641732645214274163412155606077816610431847875446438885677438281310705751489066446767652969615227017281223682385889753263261283692056308081164479759796283621891367690384405847902324322119006808342634223452987925831044060433775101775580683478539101331002008031254884260462526013658720784484195240099738859133236465798611750776848511408543268887600527945343236480393934377547282309207922200391326297393122813738242215348433496263558193989915464058909236410970194423386984719082000163606806882625541614060666407176401498191226512655465162276369128951052446563496679825152450596964372676599328519944809621515316469116367890949416615310211185434467306750275319618920109359187268395346633013155405506875754689774013885479141734398456905133564594192979649633889175316293331968701114750452891041111525372671384082202795220637250173128714660082160743768847522177916928388745090505375220378872050026509231518690061986512858985513870120983143013488763657983427922032927701634544530817997269967184193815459739661439265139323897495445455638204127778964225761990906554209655322809211669594682662849984793764157933367523060680560846475539784933772496389496406146359510265764088963160470209905651655418242862836626654296625319506937601629523566927843863473275581334047063710377512365622024987300003251587325260549391789175082185965076806789142834015148698562525376724643295308002928712232577080625493332620755493056603578681822431334156988016980621612347337557801762742025747695598767957393291370095132798521676603437542995452093503949968167067724948012753691125551440962494937142453037371000198577500118329888790169903541096699852023797808168649515158174066693612072681653535060571186124391243121895632701186596248033314023592919666282552837632629686391592132481518736114088083981510402907743322141988424061924766383955261440852183765025023485035215473780948081788796202943132324262361119445271230120672751590164721581761123699753061942962211679306038914757831244934179108240594191389967143390691471154399891864219864367590003889998883839000400586163682849770287095466719290740648649375449439455381611618480352097372790711237155449972049653920004515795014148050077714779899018522256305352267966693423203813823531346144647679397694387390658964060803020227390175465356655217704228155405946141219668778407755008977432283914173059084783932210409118165619586934240678714893974602993504726792054194706020183273089192101489144149265885716849139978952904296575891628092879682426479322299879291467910504403369885640148284434224422070562706201635095841994974196220872951884574183862083852953417689818307415155184879336272437509902216459701190701751839929619392865290265911197543360858723111574556169846183475453584353117575267713235204800789034791658030471196360628482838843075859160476940434753302947186856134499928075144758629781609221114902276521956441972918743752357742498809469671193422913845938965576300709225563743672762378499274797300172097382961782454408844588512894319419444128259877099427711453347573916293079905227432437157544487968141867350017581208804836056759609240313927621520639856257353545570820249198419912227201740958896764950846353599969500478655965826753321231388320758278241249447869352028353116371801918234391650712324680305368453215000472054758752100315076698172798460262939672301398167830211118434934282650864304930379212560764518752558229354851279389793994127794566461083874697497954996321430403481865989394506092698260260659836033975513514529154457998823127406684367748098125369392421143829814502667020963627744203790489142118926042039241258630144536011553713903323648006919116797213005237030667273300605701355316353531308215230254425951993879952811285427310084892295446023625167263937852191954926087796405236606627092401250083129268996429245189548637598367947879293644822607401944164018961473492059946841127921571383591769197873725291226531056277686733434156242799724498763543195276223038357487697233755883682141761276909457641146074118267343021554674441415834277647184327003434644325898987594778576449737214082314656509135730571320790784963460257804805938379171555444927689828995646629335021526515151895753099722510681954469235821042898249035016493298767647888500114775444808415295013826847769449643070481036595497834150654828133401960047160409594475033193996207998008749415230000201251563319993300944765208191089148622138787135993210156734953535209320927020073904106266673521154279678851981696326929101349806186439055455098081950810139349832751163871098877654487185896019924130324673096646050352911484581590578529016538988996275987263811920823191674345554220300403144442920473272164295432039529017834340944313750687406869076215849703673190582034030127480786305534590234553706676566953489341717013438530211548991147766820932491708568315773686947157763975149370587350844158795734220690042518415064992811345903242290075214357506940000244988114853547973133198159129069426825670825304452647750713709912510616954851355221130230312001160813748728620542067536893625877722024335974421727433805946268703138399033950087013331967397774836165377090614072188708421650083188039486273046950142629592860745620219975803688323083507468451552234934174038830977092249357402662004462807555110940532581029793335707101494633907591060466574114797207984915688695469026960203714330042823134938483496003247033324801898339710272428696893370524937978112742550458276484462481606497774344175969132389857809719843468234727868387825468631721123739280174877061130300038080566744300967750927563150380506158454308970200011650346150062410708078652674131763666807324790062876579757429168413585702234745188620902394605238381758820349026668820079697537460789942358786402433142494027431765367379873514023748636385211183045243246550012930726794972257876792434944137983933914579147136302676317384624968912964068757690854019633232683699716286474166935074826635893846543522321435520905429885748005934144388567798482473805988391606778503330354329618016853091780066719089662936166212637298218112211952846386990029746787666110094012396768915833543500628113252782094810704471396704612443117964470444851354234682409252101918869916133983769891315184370596467104252835545930937500170481875055589112445212025129556836855499781332263302571904426251690915567264380058196261952649259954347584869831601289529459213004128846971302710885144075146872968279820484584264952872161558736290202437053744129676467641655922073451677613562189074336905051129899483410179031178293241599437276259443162426343317531214892389105301578313177304698139172147243932237737693634737153741224657593312903098779953128748398099515341516721029448639541751571179677792168876957932374202469557548435451240380769814886686122424714050538079536076663443129371561068591911743623783079583533888260489512807085738857962144460517485152973792348319841178315246115916652063010804992927529202717102811972738961625589242460653625516475705344050904956479820252215566556666561654491845350598764673715465009010470699764874032385462897820249529204280870355945318534953433587190489468251531304930812351027478860210765971055868479702744832343723445597401633124880824960923789492684805814526777301602220277643661033729810748844702063458330577044280045587493357066924836558188035158343201471083595743221180193098647058336785986256993017629006776557569705881230760996936166273671144747063983525564336761091480560520602944355027117309989448495187271680682218493797037243651285666563656363655163449066476466745910728473231495725245350770268216764352473823252819571239970954095885115413938888102484852781356499498384971281270908109942234122392889122232592686816445280142270394896313963215953947386445597771968663260732523349206818998633552400152473216208966760010315681044434641093361354474240205256097463872294011928111340586238330488400732627072671942786041436932417365752298106706671131382716819796532276471461048764558769386110189512684963673131835628166599644245497337554831759058113343292540692254574883867202390336925825369387605850948548957498478585995735247717784397290194658509438861800629787278192250788568837885392138339843999026450510237750678286254424998569981636026970639852139000593196213519709928001770848432077447326146158976347252575397370552315189713227613564544108503444497224556220782726531347687535510063673978881999752044434048764555029328170294394164409722498930675546031526534238295059155807256977947176383873264595797821089974485102312875936487556884603723797742098486318112158507548994750155252329229293627960055785237676163610255909943463015961141283820990659261937931460785969070052655020985893413250489177452493308877952666784846121581281901471452973354744155448074325275130568372708412859055216025711565407894789340743922132992040308887921576357247224657326210952208743358917522123679090691718828190528624018760311509347564285291991994790573852592837018767025608016546914877962685076394352187812420350558462015159753732290404525621055479532264033295570241995524104612255146659246943454706890538900371045762868812036143254085286525530841899381565850445977764658965462558311729172476711701106258338787729361630767696177873618633702276349582105490011143517143294696995553195827686070393394739285091433506352115785584161611882749981862392240337797350741274920304578000323153023511281101832277914016305512858116607946348491310366376342539307059898415873282092915461541943271415012988775511257579261605134970060275231283807165292158211672363177629690881620626614817202491746137975026773133488053072942824326895347150556646451720854220350283375048858555214237923669131296367219913718835925666963183806361574156194244818310843883204150496926355234307446900757368274998176441469832150082913385168475006807918649001659538762547158321614180599706174668379945462926273669074844756728189987382472496930221074976851450157730039959964181652586035815584946176112707221910232739476741301870659362931721980733162791722690939061897830113753104754674314852360035908426303619923201974059475492632314832901404959382655699514281142897899150493907669537755605508427633085648065220262543604481858962991555822539069152890872987959692761795145174505566985646681732511743511384479925490778569918129102617323844602086817675590682340352600645428772519543206434225244268954680866065490589279526583716333641730697479506396753918197460258084861858370613120224051736709984313664531915665082312917915585448320421625905869763953974835494215571433932654074356475993399479569011698883416737727225810639107219090845008829864481501071929584248630780436489776020491753221476852607717197366112428921687755923787902346470421098066059354003095402875333197694267296757413468574785187240280740423707238566498327938338102059168946599297058071935227688368279318772866516525456676787247753164395128062237371240918337348038044482504478571927190705972355479556185020227988529317774318972610098841583910232299135520010967142260497272040982035224063639198744407824525239697114782425030411884531956309014516195300687354288761201775691909352473221159609406498339122503592409132706121823372121449558923840413862762597589368633454231237341813328021779050828240950688458394965810306655179981524074204238684348631232888692156131274810788154371386618435005627214285494794314999020099436594666685620606681647414515024155261530210143736827034295894073981831909011688607714732206377135918302843767626597265320610330610103040181044190216069418487994670335352196129880772975737635945055274371039572106780404305632400087612707232787779909193641808241118357192855339269930921322573245746640438191656843122027307203338997977461659194123590619579304417667540581853077163015205253401457789033225540349230154107354181265766660266171159273290730267684165969945916186226226918918366712634598798049150023794643906253395306452048932971734468927394078790627477755966978584415508722409100992263616769565157919219447133950884548458355251230048600103229485007015006160479553065104054254128663065537952868311839814874727177852536759248179096086125826696546081670105939784569503289398712763271385852374577537303129340156917450661784543883803953041103815814621666614605439760439312741924873939426429827828743741225624143938633269669965812161582264000257756089408056462632175344991472208697059721117304543457472422142643370792411321604581974630974243523063983895408753034143642635012355577137835613190072710620704559116170102315326441863877714054914203848413887816076782296211975805044467607448714576002895926529105009385219585394194119010773948905857542260472820729504800807371029224112852315475041327959370329445433917017471680718579246975551869970740671063500332270638013907846378438605108140273951240823633616603993879645143869877977211841833932579831469030253749251987723368935775419524802110717574659929963021746787808992901457715924322957778974678162224696254839061619880584460146232333830148944495040121171190971713361384167064699456215042040163702131456586343465952004815207721153158452761742708413507271061419223276641522945101728432443660723898885406483900441429461250963649872803479318946777310419512921522204492732589704562435703638125108459018544807629525448177507813216030054588574166735796373548056578662180029224560025983262273083424912507723673527634337404008648208891634171742093679980692200171230846598275245571459616718295332861166342305088842208141295328763887437050531329929881324414399910599581160290378690562785262420197677968968136550187865915753494849734727808212288681647270397725202153752573403391606499416433909979950440045188739067946023569591712279104297614093852596000753441187216688230789189808507233091841345222089242436140385309573229268824289458520862774274198491316974139053771273022876388954108570846277720976381331123484830420933848894446172686693716929875484247509157045797840656192058555621034668425322397129232883314264010799304686478679023646231680094422349417725584124433916615381480213320836236217523925249163909333859206087456441777540570096887423736136527325968885168114697053546730882423580871976173876249962982347682643651825344761628547918031775309570425159932342204985937293796795011665752638353549786705340060361337612969681307649191819636915626472637107214876541386622503406181785070037384492513650568038877245371078519045621995788793165533336769805850039565337317923864450326960909908803623334760785558341908366428729190691425179773162439775561827725416919222615177033677151459483034664158584864020308933321434840271790487265770355285836578933043231749355257882192144231059482351067711145540871589624253161175289517816116802735415527843243350788330646064253558409905564976815148595866664379649698978669689551641835233808188769517350117056552168206506965855562799199463145724840217588897311298772615425124247061884533425107127150458638562671676781393823459320946551699382947109891983408456614425937900343426325575074685961512517645475502143633905841015552222574985328688093913419498006536921926409757253344722752388182001872999220710873641003166592303886684493901786835670853691450970487155443560818975241684893929874078774230310812867394997602707997147660993038599054522718277082223015680897821975728514588817243492407195741264543805139551104711037963201373771370177451403319951489764309273614428354174604031891387922091468589542601959349418546091939892226436911050748956142599289796976785580709528547722819699302808111259943722365055019486928447332798437183415513329014027614422946650602374153913736425709984471750940915966095495038777354213343572543070847565479013287264810460361049206543835416209994345544329418612454006713552271211873623916511701021571227355245305432183409509452943037842797352753715802189914068515539476167366973218217969908856221185285893033655205909591646099742696529113552462555663097057931373215879350889467651584671110192532548929744906841421240012114903697948550533135630481824633336437890426702531572605711493512419613818845057180925134978833096781874848342511190429370317436644392147906208985210281345842570321129836398903045589365036089844924672950672198902141928257144350079952529801709683843711024828227495997436149912866854194412087340968456353852663070491074677407177500144243308107354652440949529145570531939305512743063596635305840893189835465839034767725392936628332766926768525970683399782073481514543368504017263873556607534982986897525064831447485174740825030105640173192414856574549696998158853898850506035657418402798303135931371600376958712082725653875379429075566139283405945957253879000312335158786569707544367497610819959312131553049748188628472558252845092491913479031948797341836374932089466575466970994340104884312584926341428151947455774394033694637451516622388986193803362378820167150932638924077053283305234808593182730541486778407212601532403059416387779501820183350252181071881139681839585790696008874925521613614452046975287410295345751333187943750870419944672737569355308060872249254046976797944793153590326443142803845836401486754630303185430349059523233682305938868760857118862127246387510341844395635748254390580694180773117391390024537998921964409538888572050477760831161743130658599423403024112499987778303871747303165127513181679760672819277284893803297408305063455931227441140597065493738457470070077632940772668982913199842550318780288741701126792105884865803945059633666524425893763893753357016202524447442460368954424123500964969962786647518987056580110317449584410388446135349757102597062491050957959827006050405580788565989534796981084852526691346972880430756230742006324801537073032089367351938768761086573951363269808963136963751905002897788334492400304856663902515220582623355646337179236405913850529575362222800559817374233458836729352677341129694670342906597993910161302954280008038355361346466335076528343620357644712879345254074563044126052884477723880916487242403007936000810915160365740943314468876255443877123147958413324142485178555741090040972703109331470621051561977781633390895343023686621576251315392932405873880044930531962513279958804465448565850484078356471749314956842970410000716473994508028659472943211712812164956399819149165774398617508063710102886643560493325916517219794373174411594691188337233045727001027892065782682314465179961302733607180752801106205626612605169786603132875554705494615517064477875885074898479110312314552184810371925937896326575885331142817263524727663254148167577636696467301332908270287199103605581601406588909118537993254097732442423428165681267205367164999004957898305738534982904039690595580889430191951633425812665420184587705221335177754200671384633518050555711653745037733651344204281421885179040071945383187361014791283566599159652130015591944356991103406853651079778344293167084864184493291158376280186133640630590120069079073928305739591932033418758458318012109991483577357073312305252763047287978021951249046095494294940834899852826259082834230422155177403403065598352032299663744349765469561180165726490063671241253384621713346734074351127540400703923942416653009160191747224771440955162388568550099988657093963973818852254681652016658623998489157030274793989307636868351923506370755264577406127940126137711382725861106742871695333751235087547988506644095551748232303981284047197055233148523467086498942526907514804920461682703465490539587117614921129895455845394527919953999796137372550286739194359967293325822349134735770281350899788602791235622096087732565017378014621296823404248212581810723880677285894835017876725695411888579438173453697431620177794685403777620709000064402619666444057211055399456262471085249360807347115813878837708157438621463244217549182894569060512581842259469800588071561707516411391644040646376958249333803044979896580696827257054316493116433446771236702277920349516852431034918144113776831394207697937388238712016572966721633062552923591486694078925802576815448116155075438418335285902639316705112445511200144887896009538478662452120502403088388329204764964798048080260531977801718823743672876710703741414854394299241364429060095551494804651595697864301269453215214988171746235852757699956093454315763203756102049435755426174482801060912307922233076589566006229957294799457776041279571380494733744792012552576792132267431374596441502376880831800809600993252566843378678227566011959920891517284785889988637271108353633616889430736194840305898927644751922429556744289764957150961146305474613056285171622178428285187960548117072812262361658253029896538439701210274763318528050785681122322683762680958890125598863572542245951357757351169782934682154486210514918903391315719952218118813471638577520393501799708814023071967778526498506209582669436908589478188753924505359646123401998320442819730466152384970795786957538681782716312890350432963717768598950133910725670941831405416754587413657337927942191955640316469763140082181297550674531828318500554209425801954919580859922333393682887362237118066262907099292011929246943089153104106536384588210899156136804414130820578955330021886850379432935359011964400596532293971066885368942603599206793000752589809498824654902634896330771585544924983761541639104277017499508830223565305776070173644297860001565807691127757358269011046677309175211800267833376232415882398927874808176531820307582890437822963542516365898007110381868435889224049440814746074187480958470676203458138516046470600362288170759214994250673659963371813595553567585871301095027781116662643794735342967557155077437022445081902780987038399733359211270101786742096425878610094531257442633315971717825953705582992056667607125421465905882353648763949092233248357094173580003535651158504937873352689294805586842889950253765880686517478628620014159420341787343600374039373232169045905745660057427103656791721381434683404556906130666126160194546894841314518987841329960334870482872959289578877206604220033321249794400330908459102252313336735586644382413323224223642337465769706507617672756901977075167110641896353395231399121037735711480062425973677866185601104339815394674793881048498851894808985818282413077935304654206135549660514080891651313597802180745806123770356734381979684054552488094120081187101311554652733541041450752956030774607260837782251154468408167917146094567129901190320703228592743618986639030850639833839321594881816756190210524018081376949658550084835402882658485959963609281622506556844764302321248770143653385349998899842770107382413505263874293695397080079921650530837425622231692796494579151789451858744873074707573538606104265698422729426273318555256516806164885165220212244036312273241433056371915260513526688548422711018916173562615055638657120390259239425420773677235868847660152452973117504063359000393883386567054636941396668494229821652080006955322766200375661264745767259463384556170175413631213976709695359679637897000438465099555388703131320369562434374156935947449216244404278424560744817195536673962495699803420782444389065153786055668155293055531937574696897910707415185885458120693712533664448804301283694496532043516516307068169689631969090340713469677986513354242719256067805383004040283765642702943141223840949755313094703673525269082084903776715900663110130472425989427012139750198184473447505733635943304165955566864119556384254895792842558636218161119652890078132788428803370932255312476534545967934472745891260935177934051506847504088181778590359689468350409207236763165158451724530411332509176273467521752792390131705058011238697418348118020479806226996530825360406470990913260566541560437157231190730259385090668189478525831209470298840304566343188161580824078821674419825060773964869837283900684188406888987265715401409454608568550789265568115801641320317109020448919605481894756693963518017102036669827101654193878207405724435259731291601991155055107082982419368819048688887241007070424022993642567914012226616898412765554067438989896327667461659303597137037185034712458765476945271004200685740393047247892433180457622951655254162090127486635723031126893121468333228835071916553667398909257101577050579565238388853330508915804087148895926883240424982154242842577091172105140392481719046079335119095401611008872668098751514588905726743851262936094157804882596210204107081850268921555144434970400274448091218449542083733458695159121072517019683118374202144827618149691128823123862167924535480221116195034415019984586205872798034770814275506320918695995361634146065694526391933053327020115148531859268291490202350417384796605429192207847284220752237261610570914450506628143360016685492912901873631287087164033483282824865879012752884475505109991289642357831085939717607007464989490437524653848516747770732777615800387181270382718772230722365437153727027610256940727259290288701584754538464383469113784031328794674865635389030564950311914167180086764149114793972319438654675629859758812723541052389172194219695629864154599958854667355534466996774997944394450783603135643374837975790759682044972749540195900776994173672473451581500555608238697523181154250621927309443386359496333803354659540396486303702106273645110006340119993420581437185393896917404788238220260483603713055869392908424319495067589654146139296939239334647123792045762531665382666062972843885060482835016714587219199841423714566268421160355635268220224972132400340430716030147321844963110076273919723544814576593940140088139383350086140564473306325608317499336065093263048369324068130502563104187180270191212481370783074301146920301017411425290273546815545095122233872337057731413462086518806427296871304000167185830819044363173622510325210627880591173606368744854465853868788400303412036096731209031254558576553585367996909709707548292488733363933263690796633482855811171389262948625110099867679113948540230960263769867499022757841721944246394334813021725064129062186283027697025439236500976630348252025055456264392588741676030099886369825066098482179596936572673465806359395273710128346335637697512406077150873776328189829012137101504820385850053786248879334098055492357233719869773395727788914199439887709600043774931001331365710686807788676570374235353972033991349740781300769305996675624505685968447578879789287255348349143182692565399581398618601269730119417824148265790036856160230959829632647976615024354983162585250572866502786817405822396858738795534882839559780775331907889200285838248456582775668242538260992585622369461438133032032820052914642012877070592661285187317586167867866103043563864051849033392851353194543429229368612006480875553858596693853585365119688018638181159185168772714143098641032922225232207822799754375472970886198051345095763360773987342720577575659122222501867266282230177193290644676526446505285826201465601800509269203625561198063094679183352387063280070919355807890461944871461387396956987290856127874516319526967304582473951010920121950708123889757841165032703824665304033159922693225662963181354700842345530237122266591308889807111131159325161129880751066312919386267844939625210784573641122653115389223795315138495820278175098033475419464744110915485318494726065429977053008667388090471780574846582362222557396112750815799007503257212266235807601457600575571508783167662035729602092961780048168005547806871982017493540752810320600073239492867941498088158767488127448756787444446913798883962444048276899025259935949168662433824551324688216101391175862908681835297826375131973337842527586937465201642876947422128521082265493861926408248869919317114749667912866528085790529672223047369166847276031920060990079833499898387049923790496073974943744148595470057093165807083165012095876459426842819866441969152473495184479271077379295724391165927732287380863695244171011019341134124942497592896006378489053810043503292118945340686972340939607929870649777420652721437111614554802288735721541009478375842932066682315628467783026067044600502557520186655139365430541530413879712425835421060832944683226947351065875572819276520757799033994998011648700032306944789822695279618263177413833409120156747387039284273060656620073177384664744749161682424603510031346630418101206552092192978829456993613815327818023424784035486657536564564818886832084019739469968572578945630780161051277306652982137641684172222361677878451819095128938863207383575531401533772775985652332497196648629091925530574710192303128085109393073997659467323710761076209271466059174347680268693628815518251820335267421959072199758004443158525523994614842633061744287081645586665204317174662012589757716000892107615726321230625949462531360236512611754563076170244918324360077567076134552399002676884010899675949455506093206929073109258523507725004839225404186113960879791125015148292072298492390273281188359521676483605858908629785698197436240709182088474709799378577727576963988411455458881049890004178885283478226436917044771846733486687110425037705108850019045284016056497281724722084975217240443249056167196940006442316450814266379129768387415307528013474343453932356150380223977398514072995429895116524149062101989741487766348152252368795312498433652626106064251854943421200410162389753920473239542175429311037394555805569088127564492785795087018114010665232445176510120978346589341652340238497653957864083848577454640091355788103270322796107096170956461063446414079567401240556863358980802783586890949562730653867731893559793490701435708991027289763034106010307014902659673246618932898536085172009643116788450216916426306738944564998275909475968673887150962565384273614993116955785566227105524808457201414868554359987823229496201988534302301599437338909734861019562781891244106351651686063298198371879561648290682092177816593859316700491690301355590212078662329349842902294369078250059637126199252523284719562950670090830595236253080049425160160271193825031683294724444996232549555380343005798092787565740100030620040544327260033409398646907286728655956341483238821309547030945898873688466490062748404800789094277355129323265488290608876530834764524150244903748667432507183201987818653977179842167717479006342425189550971998411846674754915862492336770106755679998625609091514681612635081293539043307232574870854155456523604813659908579120223473468402619160073871515901057205605450179326754831209314059922600923486317460347343446254187651282948254708432936685296496847939192284259248689976610805433434264756491776516737717953523874929393466378376861075016925293685647036771501991142496416102105219466939958853757995941199476888196588140745756810806821651385762640971440635288483022255977904187013335221835525342276596328349223252683737246299567776672865032322065839557468996943690207326364815409702083934683899924277441049839788356791707029769298889999386098056885357000911232954746568224450823704393203727675904140928193907482924215039781562830396283590374080649167200140113736527577865861006582849260172431894725483278995853506414822078028881478277929396195998169015643295381900246191466672909180078108907512572954325097384043766707727596711771416666651408301319199684448066897347763937871407242158853055385474062875558594291081952701115441232309675264150502071071336818878200019489554668400386707880252207835185723041931150970250931099058738909274875617633076273509028062784626065311132468222234584863294874715526996337940926762067188397316744641482645231270176827085010939332246165530230521384442601897544042468816021448560284047674979764527647856687175584262576871567246117039296807450014264812569618298285204733086195965628460839352325689972496519460352644767876859657082441569388881070570021082134762675612348337192968352399872492128469405549455323936586665949426506961165933581316597214389274746697204476871527935651832991966528931725318570031106847712296816357760217762981147682551776694440173711575745521689424335510626464539342794871006764045847406834686241507324384095780329915607599595333945184448978005528372412582112766082222735053906225816779317884213970415015852230631890412311966792736861436661071742992304531700193873508864772657871179948461004353227178855964387324938984801382444966623211248104571732419974765374888242050216248412196741893939167775925968610836708711594496126805237631474998291104500608236605297439675093028464511150929880808239690873426829794460235385359732469804734179622160696319973240043022344713026404805731499696159096205919640505852088169453346933738318225565949700583620494004316340042098424537874981625841769719388159691500240577075727879402250453260880827178982713106253598921941668905706825767676938787630660418861876629223993367536128042489696700876616191316571022410163249439831909724376502023309761370720939428918836620002541946108472974093040491899587174954545852731979989716432655601350139835896644280200421941550020493621411121318648355543444453920847238861286459335400951358146203416867631280524629689542011932389011654648667762715454140984660165480121374161488534933929331917801084950635575602329492969751720477813064436493801705304213905068440829140492698266665858636007689577226714273133402383381553567988365177462125550974491351972461829916798691923460572153880272182982856167488235893177872458693961554209908660321714540099322463906929713920886283416675259713153666675974689614102407989691144736423229595340829928041788786710397791178565629486816405845139429632768926304261163915001698526550378876037850833842931830015888879955364959422827321971621023417765321103879431148886413068118713591619216800082826606814757607614419648768034045769969695505024879940380354535965398897856981340859348460269275280434803638076153085452924004860396481289734738323114902284374127881326456965130991114883568550398288042846478026744487848274989016401247103925764416024152278342698410456926276040569234164032868003060027529048141916595968539495399922389789838717005384652982543014416577545254597619377147488993093341200589418304680604727309745019364945828233342357505653717006950222660901981548775763576413135306465371317743797959808773405642152060786742513010888564104270500821747763309888908048634262699651176451790843794558187924976844840838291785729534655745277520131569578829113224232951257220427002108336367786999892678599866819150479795454760733799548770943496804013943992436798580186623428053141058714504508899658346223549099813398876037543510908357524398487784891847199039003115893461575516565743503582467375217021205449136560297375282895717433831199818923551140119907972261810374847925366380107181074674433549719503258397363767212691343412253944289811934792822762791060683164877142808226310211862925716948369553516350835618939606063482223909440786163669849376941792936196291040104427975382474632829387554187757497693675828866589026950418719582712015908022075917263260033985184972515663544969128436659281212504528271389470911805979190320689779713389509930195489799209464959432754440442204350897884894832939753671153881012286064585705510110534122808997310474738449586904464939486064876829562874848631266496979552615458409626953514135314524243219697237973807339212504166347685331779574569191319090758377026842512039161166899757980791255073162298562200361996875716435223938215150898399476841536018319125950147042300878706702506340970807689059083137366546526901438029604674567358367391468015570149209914153419456200599997506957842857445958434093596921344355805856463862608311081295524141347849490406436182729411632023277916363424709497996864757731818384137145359850349977994929497528269851034027794601532986459661701737524057200975845095922672595510082293906883995652772145994811234824834650521138425385706003454920217151012066168813058147849861227512851518977745384655288514193930225843013810895773015162026423605002662199453791204650472851120301935711467943748854748136359689577417192117247302736326996097391260629904566081459430562917262754950914035037953726862290261449619583355915359532573979409252680737178826235733272017177503058681609556881070942532252623123397232120293835319182703937143662367659293555783938688610500423323256195470329019514857555829072773649129444453097638030263546440353941915431740574218614694367883789186029103886925606379516640000572069073373343689233509314528647411483275134580617062132765501424888275797589971574281711787025488882199196096732173827926917563542025434417025342764014243452081735323521760553398399282189927456688717973757312679011913188152133190579932537499802079787348054725652473608530164556934560946176797993892501835629457327254085832938700478326508129315712073987751899666737920284305744390958797187819090490140236473029408999320156666661745995525693936756690811121289121943684473203518181779709672469707976757406580651374486718494405724461078293583335608131746927007430098903918755910270885798462344322942838386737438104425048480276539899570068966538166367210558062571826732185523809813857753015933539227583142729719665405699669157910232920650683749381920947519697395699856720238658929875391749341928313188960975410805324429938601729889306409099091136786793376481107683021236782934062085673346082851224867036746652604932151234669406607329480993063731428188044896902576899478584057229705608937986199021821737030966898989563090001015198919304510046927666177310613549340934654465535753026455876005353497823087102602539491827373765406963543839374446510946502600974778071042784306199598541836538307016854703456722580055232222746176252783198224762140556513174363923725453863840995607992585866135375198600123412563308425541121850135933918608409518550073786688227447966478594117478784719863948188845752424859916665201347598429081679679408551898822971004100033294544396766732906063793082552307804464468822759662434428542549712681745884906580648619647212879793801105490141258545270229484942721521356808515177538867990423188749538203204795589415164138246566226594920229707020137410895151758814024191043088159419664364099959786312908518889894368234426806073128339402434346204814186948116875217448601403137737237863427766993092846087288736863153867866382568122260377311264555706078016276920732925631637114291175592910344016298851871094822090791560529002197418679640287687700505911331961284809625703926274544052734018368485661595591083388973686199239648924782830530429994549928469027517321979308099467974458129167322098962423471430240708784742134644855598431423728505865670746010174165972431393094388889510595327490205378137786152008159397382511685663015920602594981117835993777956717224344774262847293289989436255863684762851685248530621586316821339279505352833864218158318110427005158354040475881586851012652347857716546329034158796808698323344799186686744525630891491832276707112373854662160701158408535544073952579956305457854450170037224696902043583144819695116337260847640313529109910180696881172739701774568494531502853918916343969806457494819373784473330510753902953496793419262096870565579269453344429489690802261999926271672918468208020421471481162222529661658453098230220871686687620251408593487792436205454420250129785493528390790412540666529408851284335431421034358948421848678892392428820432149962868326294156093971074882537661985916448919478331782517989718702454359365307531969322927058745650241158696614967212310428247971893013357166585407629911047706265733324672126778805085142960309350784768635222324636413444519333333368383331672055852094735910082566780424615440741886449221830298721353880319162324277132825036582828431988185573520350278267673802987017136462865872808569943401851976995598187021258598904414899313959483705011052193463813340127125760093206221854463909152609259670134925124849141866753895766482800971096955430432164667713137250899082392964720560440767734395360054782102877251433874627871093549022170612034660959292498203094310389091292205458158284101691216427387839629825864120817044769727879606203926377865361895529670441526387836007206656362397713807760786179243085203887213262531873274563679331078424734268163657089898743153903729306836362814158514816153361600046815829659788207382626925365542626880179714918323627957122493149763552434127521214895211697744901157847966455406619505785502188756201446856240508935004340944306076264476536194435590275290742778535130018087064564525436235939180623770199359999586359449968093780049197473201017425179213519597396637182630588943333362209301211744602280122871605306085486101544857516991314368758599598361334196828208384449581461144502015103705040165823539606526915865883421524154033526048038951178853101523317482377391347143386221639980069279530119821372100436407465348062838147369578635166716545575253915488313418981701896122081933146018641413384147498157419385061890501089422049047386267800586678933451725382599150366170181246200074005219237226466878286731291201345145709664664598753321863065640719968828957625147287251876795309442868149048852189723617877181858220406716936029796641448464687172975942808005349248736407652750987055889612484856214209677481579051587997944822400399443376576046270079479479366200707405412392654501790358870219724129985736987622988273213421693956995984249623903278373086654937195638112018627078825074443006840810003920437401005306649958058544704756857659109800290976582794844768870142187666079305765697342221695079928677361845619499722139871763322124598380282878810763743846374561187141542492618584308599383235964728032177014227523168198619021952373471883029731164068747654788707250580724632415982400451658789278050688761986351926143940453417952468526190491450967426884702662960241942266167784792492226972208515371979548015526614249884799656053142806670439157225230431876000108311039239935997725110146241926645164511263232541959042653602326070816715917113437439139446608295209794462070940580928745650579915010652309359890199733841460340550143768432979780298846197903173364067420259149756982857660149725744927147711979735822237442290035192777206938852343849729829922372007859030008751080293608909512620641533040484213302259039275654102685671733923466232500220968334710235814741333468289036403869143173641332980179374638742249041660027833654021357623333608262309441579569885899790935762354643655936771858898819464440135294012377920951848326862729157458406327826907863927143297917065418615594866409336071137377304737830136930527565118133978840812449909078342582345847379219967736364510525364521349154627529541804278099392748721043048837671846267625608556298104575545109974962269808450997464833302499270002593735842436859357304948994764333859318927420027260664357020921693440260600493697831165874334806461625548679318238923069429789141210728282614645648640512757861954599320149995864650990392169406963669893369385857078401743360329781624580230019147654733740632369250682432486304637487638307517661296826150582472894309417227822441521806021070590970815018220185463333985963780793943288823665640633241442261487643853840272515044898292338111517929018768316345952098002229902738585670643778297166827197938186382474373083390587532621747773755626477615410808529344969121731789193903100365627706000516810010861711541458236644634050978466747938554097685888745462642183962247622801452774776974898637977836304177218650874057077856457545959239772542880056407569575554352031697378757135030544912778299564007447759599897002374962994160627749079016081905631799266053955376811351445803790551353854608866262353256215041929969178720037938569880966716016490850023999703783486642633171486712977490274042361794917987152659253621248232949635674440534167202388596781966356970607544973186167292044134232548886012062958127360786942907593828802527826370022358866896784574179909473382794115320221036582821081027773249971881908868389069782523244123948998612043752965946787064210193060958454578604510180131513018691909960522617380796148036773138931336627926926662122242973013119716790344882987531503168424015132890631420295600348466407872162861637585621116627500807129536007238386763220129212826268545842213056056557405706600336943648210003243906039847856545628651758741293703787499914153959307320967478258217302093917196817099268859752525042176492142100568489200169249911061921678044169386908423916487427878179986408293857636918629215486602230559520594174306008347289745961650901533492393791143454294237962849921146755495341970524271369485885758819636762146979669716522336214687988166052462915877012561642719331283830797783029078066819754116262125601317369887561115943613307981139892284305909171630206097928243919913015243426698020422020810279088179236429529530114020835575824804027802746205928206036565473207206253806348706797243149117571114989783092977383035520418943526459845473145835774181961599834343546150663931007533245490313429183233461287049026801407849813992735199890036687696606653922694921235334118052412829609972886721384447543641925431926577491402862142957798313389966887122794386575087315015888745792900002387224911576797215776155669670222069315722303752017452486132358437343780782089644616225694838317286233194037971547869465939815197286137880912311853555520486795587458045450232321426394458430080256365058429170880287600179744872559490476623000105273435348944373630967532034023106607769824093168615667791631635194616493360052039633287957566444714920033809753222093001643248326069872365933173523536820725195898344122811836775680828927433427446419792832105889039928446895977976383276582122217477929132218279459701115450252627630560206360121479982178447945715951579703808128432737488270440757495821150889398945884940743216398979478734536715229147863139681933809536772759802746915505611730340374001815716941882835362870927506889889578271302673477469229676632917070858672989938678812740140189765810425412217988357109266184733010966631416952219443985458831145388428968493953611866992456368028571823592978683600898599201974750760939936840477785652149513004283303432551515059660002805528531919305271885934382227350068244534550901751880960233005381193840809016857898622567411569566151345769695194938479702641871489230884275414916709173631463523447927710351898903708999258306208772529361337748082669163069215174632860956429408761254699573974935321510563053324053733348711543000077017024821540863655106207907729566397552582886275629866977355327319715201534550831917606042003468664836355795472558686695678574909508296721011245709171510509717086924410635105766666258584306885200175178271924499962834028067450094727355136842814353611212733322434795887586129063767420559738966217562864260928608638919958302747386118574160748360235228885324987222460696019146902532316435032147136683553304028294478011551648553614044199997486455136958298752630141879103137890214553412406661940603282358004292516757911926249906787000639646268901281546644699107293555498473449656104315934876785529920996639899238031987444530972950237290414449508678436669174716073682280919979021242887352930565145836915677041327753982117386591307175024977782291873054142520543160191520684389224235876362543158036400651117477266610630375749169629348736766282214511033677537188155216295416782162327971972050893476464306125268965210055109346288699333086917114739698414359420948990153420836416317352329230459778197903332833721998149626943554894536262776530807207490476446811243619724756488081778501066611906230206434106925413829213769862581290188076293915216169432105752459598966813151123985469678268830310483812318587222263615832435811602636754264698163961542773643137396553749044280873765718921166401897829067144884842248793558857329000297495308409389925313190079739222671896678601189709809640501573335692539609124229820517388612249231343663299893686939097385210737207982246080284337654893319198187905949245070447347878628269961416155447427149890499620821956173148677571639593350000817286464380379229730481307590341311750012059338979393695485761584034844278567120015456311318634648878058280595012126217095187928183130423644547296935156342556503602138776186054881076506405195116543938913379972045760769356171200790309852451038272598286189444840732468994408494567369062577116596641696037600434075020853506446765873344373041936236696632229403539882717741803037699337195848535620606930356770069243563958566776028912454139600196858111584281972473645044827922939816469708339934976068155589913655582102015906623135094441566851505402223406631177531391382388527860750460170313517311320762645539555883995039353781946722499982581747200933839706380971026362234948465481421989378537684123448247962617908130749309179830847900047528256799686807212050330424703549382592221032860572743914599399163618786823345555871527440238758871910201888637776754575755855121341437019949473602361875922094235290400113785638815686345420197938527343847954583595005164506695624875595539064881767515760434785423464452325133125434764180570179293872770369183070144615555699121821418564680521478748600592810492992408368823006937802345828348826773442733322623599216079254964540067508699207901733220542107085598019344669780471079058833252216917763241515326505734551247041273450132908918256334251389072583471085071504290807654582016175560281134057505098305643989916619179953498956926608729330704478661660452748625006237048437733176433592045874634050038585337967773148349894139905173401370370564428561693421592833482711145396367037295678624190714556538576613060956577597712216259792434682941273138548386991806549931205045249009350109711978032471204381895708736042464470921153842349520166991386359239032583489538821083295737141534708519955529598399920517556162046631056006764883804274695806834097646526792876130716690013469267481618656386171733420530615504987602142530778403595331844208242350068293463517896329541980967761729471117567104670777191025859768082173080537442339423647146964479934048361679144938216138299121413498997240672553926001261204546472459291344341462522839484800717660039917166909253314580715770642250096073005033184323900390268234405560784889121221252656111182828402356409161566034968100846501677667567038140285516121261622943751429434496587484848488373634846736173655803527234131073841237959275601870207763778295832567945928602472530003845378874837049145407051553157164175775301294136918139571724328120664304008205889355142363380345992609975104204662237081298656906972079166308770411819927351414105830041378795044500926541084946593793117590661616967345348391975305387698597747196814237882787543242718823117687411360397048773660085661942406660113015695878567672772831376677473054035239628607941727300956859093302821888509305609637327919901034913300140200175648807309774886942183198824836526342215816679481937553576453543119238904330893670652287215297076105084163954494018801171635478454528540654581051898237555795149691176565904419093557909241613236715537667997593059728371900043167608348576779739165510615093191634928361970068476274892745503639550827964390453059275852370768918910991794168703764649204713329093717237414547631263433054379629471397791194698135230190017820304806854129341464934713909554837239001554949089236772721983347820269282577820374089241071989909170472755462443946133497597611564369427332053430771693918952157490207212079908970437605181906001265244934909713937130204330769431164367138991865655397781143046913337673732345146358184616859682175477720175857586416704800976351486090717177564859194986770723532271420361907337836187756869617230431425006165313316441380520402643434737104097087149258614120904084886702477451017524201846515226009108166355944040720515026683612790488607885718615657485102067155823536141895893827291909442514330445341401870932324817439710774071776459683574836437405694469596574135470939122330294809392122533988290617543932493601114608539160737629859410139638238165998953214212150840312122968237566949530189740712093333545736887145696914130739787357847097736668649506573976278033752783520140665906825103132016035161380161217830600676332563033196639153394366546370401497941936871896595065311047409861736350131568264333321646503042184103036142227154326518620899454652775905114781460359516103324636492629440737085393405663247350464250243142127179575756325671820824156611754620543920087442485031233336962221489654655222510364450822952194444741515254889973171849394668295853063233850380121788403616423799715550400056436843013539365460631726676758690045839534132946322459683455341400630520076261915119475741924101068558119806459805122020432418887700620920405241864201099904727695715379322938441910448062301101166824341255152646649423185405772690805492388662174558124085230820423157532425871281721489747848093638779615272231143985825504588921661359886228042133165591159259605218986602239777706589672046963883380245004233236833158336338391026327687995610312942215788431137969494668694079999535242855127079753191952531628053837347238984398453705279929935509025823014210441904496133581014883930610495152498993500701889070603443492121433890629798838658123590046475877962002039300313617198490272750708247886231542843103505542900580479485013700430584043596554925557068462293966718095506134194703169295797655997955175186328573754148497913970955968749472937475232948314832398329960400347635863807861539358568746343474672427523499669442049571414707420495169645798307111802210971888256418798459827974703369458536221507710358269629674750841674886303025716871107026316541773680556000999583638558369466809384320074967546822699544518624959612553103476448594004347662305770807642025794605499967032634791669162772453899246869784622444754174039711216367530751117076873472467675701573988561716692148904329636962514638694953951472007276819904439674207858536486751692747596979733584122776593375266246971715144208353977119398117072023735755879744996977448496644105468412402375801248553410433423701026340356318863416879083280373146548055036489587697533600560174250665323811135294818836948494866710183122191256437162788639607011025580578695778844775661146984981673702824166227601606002564947934831408981494873729606996020717090755260758760904838363720736494540626650316860809248156435823939260383994249930869849453914632622299957959347041546194341842923927856670465807403594161394446627111367646472809223151907997739786500483417636300489417163321122912096718043725701335957688911965444277730259766263459509431998148278220356164835142222862660123950774539437701973627881039176312046974725661415564234055149009521994207186653812905916532900654954726086458603946295304647463993223913284862470762180979913778349361590930729249756099557625318313462621885989628889341254265560982289217175608310980504419120718868869397393428852123695237431372904671306883985339469299838971670650106246620011040840086779434030912080106148895011319477928420933262115410899042584681285092574832831378691413711636014439378178717755361818930462455043739774957959141102486693107772513694984846785038184203827357239301146281624568153869257917012160846273908654498556317681262256450000280666314387714595859725446989637214937775280105400562802756059331057799794845169208672994070637237528763106869931326409762626593163059804020688139374446231468813201457224371617317606909690261275866491993361931457048480982898609392605838687785762132849587634688847460721587269545673204852087890792292963928753727380990128660901902331722293137191271394626176295801213591423290308000365956369118330596529987547459530316275569103406989712336469962232068463215216803348627630217043086664377049168665575896568021430869671789389903821105726933151988434481135735050091077055133853233881774193255414373728562309792997386168332552222480250220077599109529792608236302962785183268000876157230468400803625264386392640719145431852295001403087455019584143401833468357807755124343702728582647110122917529917659459073147365983412106065408818803647935261514136805067516541088572382363843275029360177281690752467246246263267992116656930198706263952868465690111399752487943286207465283691359161336360842188658829422684211517741917889705188222272386632012531705545633460133966999621362714198708763735981302932261084719679900914942670278427688989017778749189483470020440373320680719204813456785505874945494185884112412554699267007896520148242594646277849029685880135427225829010075127174917942080039103979493387263935612088342172853702187675858782809976435017124911001450547609673211456392433550858430479177790267551396185465062205633058168185188151236824302265513995968466270413642622298122993325840583734171572967121745614135248219193485247319429881460856058002018538238789280268140927812874820897236545566696433350983511333102802267453802033354625137027534226138462649586005628352707465806870469447516018651251772443388538743781303295001050581291350320189470888795451619098333542827396937167529499325462324126227649854588242789563553850149569748911885553472915977979911498526750500605222165477704966638935196388121791063728337663126692380873488793868549755933198260634882188246122092636117596141114875776094452393299231866454203034352109344807232225678164826499317933023683588664711661166369156257786798270287890806974208819914750279215556717199012252879572098651879224435591717054783329147289183833817810936657218217280148878398295839916735174259242499738306867660278575039231044591538400715836155917743571274059356277816051773597191958856502920242693713919660483077568083964922669535594179358909050543919518659026988204067606700694993675610110005588692418118612317365050767489551274171310610058787394749683303094175830381324410726653835335095098494935042805129716527775006423295254033193954721948941511195915946307396548686356300365216965075583961206091367708338568289775092983364195078941380713027389991551783284601247165558982189077093852197828286562711167622023195132781415756021033385580403362166659431580689876317318916379254806882645783803891352851048377304327022236214354589563679962186956606670115042563123584774540778498236648476846962515245841714486481452615251113349646900261596303515617633853144011104790685668947655280901289840015214068057906934139898413036277364941166489262789860086703511648212634009592856572229603737630169264706268982745159016240280440695037243205153377799310829171733900966086317048885555118628398582121588524381934374037999134922420075187802649486936877373925682745764904241863530472378452600173587458804416844366456781914850247108167611813635511714475794247490611843153151844380600523633591674999833704191440100497284513468720912786115913504523398760803629297088929196591176054010623569723821199644843007299678982699332006768995508345951208537797714087281239327139751780607034419189016630451382612326849971536861788988881495320786333254397799102381647649319725605983986315860670564969101675487880680706866103857443365842265598062093729480722251604703467611883327431487660004023661524670165358396430302705698806634645941853019307193601605155053775699330142487659689595428991532313573854718779813917650139953552097927352818027965122404957779468147014199344852311262707796176820850523014931660376549983843883256314105477066965701918016586591732756309824108915683921269665218541416589502679468984286504864198062079321004116570495741617842881927835522715133417969756993943670636209524115973514944427262933426607216853599761656586334023575841459621832330327574060519683186535502258511464963670043830450547587129070208134050267677551868630786547015652473467600955334650244508499904126415706515278492177396459794543743227911295130715057293632856839017956275647385954374304129232040101678330485003788875320336905707010578745709622384315240635775574206731457202607273298680284391424797565610781525485692290617608294706073403036139079426879118614374278990461228072747062805471703856655789758280831698763744948210700419212828857374061857050058935570389031579023808621687307522738926070203429463272643235719231332251819499488985251902734870954362013342313264772863951606527263028719154294981991828931730659640592433932200270889708306154523813366909394911658503823770458856876661471351218636395797070668372479823254669986858944333434269132754717377576601603752385596358263520679795283346996950274383527281498615461673162737084165566064212212378310686588088941990026627438078964754376864678684231696666320240498850399111779611923462182465545338921889345130427757534837921787788555785016014452262746059062120663200727513576166407754789293746727277227207331301218978564238204667243086169157170864765609396255355470137469177252347406509706063975695478990406289273786495988174832771783504327023171225238592694950017653185734279819953681382568341615039157449035765795644880439998822212179796607008740114491837774764154932570502237111792830924689340507513114983447771234433176542631155985318933434303085640038960883022502351270079449428745011770928879212248215839006596234839668832731969355177085993553327743808779685483041801525577510276638555551825174028308428705645609330017861072973231790092343919387281921712178072613855735174832064106537902587498362628276993154442940486036561411804502331597104590052047081584662975952332651721907744080887484468191234991278367392365388360837998562125528992627543190205663027384721583511397854762084633389621009983950041888740054863236391771223253772859694921597173315561480056377062395589892749733334514379145824420740066557800890881045810881934131663475580939954281719660189008240533169724751521158244415619705836139894034123775290557903784233947919345623444915314134983255695110752222437477665325739293514870213592715965315774947650013409453386731197075768626927788405340917454747757347267532447537847535618033307781169786663279592562795528712790535776876487569538359728471083093265018514254741154197904134465966129063162300767192804383319865663370371998607981415899820388673351410291488072935226293296951667230915931525331759991842365454464641627384560905571315202909587583433922710269233879586893637066971457155796845200314146006824240677601610274186658287355204803642960211664204350939881127610786642037279851282246448421453125389343877211041123316992390768764197108081080059350881033631013409542410279030929754222591445520724285429379491236789353543997510069715388848317320284963832800178309572884746463032817487339582895550318748675030024148397702412334653336704488220162256547676514027320508360240063512708191371090815437018829485808591103048689074763356989247816312813487571502174039759476736982568028068247692324471993539929490163630705537980256594965403969475079995948297650416870515959494253322970867409858536357253737917291524232933971903377455764662490056026459829413564134445713724024318673749549570331208172626824338886645909802480015641603273875907963113445213663230536536870956325937538923997220246515300019392412754541632262618795843242714496452232023332829913295236997699529899477254741287175720008515198481462579820067775828801281733309856182501465871751024240766359810922699643593114335955611486719575237287046725125862190031601042142314836866460913950860711486150599076904256602522038660141011837025744727178681389403194685654150190513593684805938892267346888999605042798000259772837711677184324108367476225283566124911419140777495484710145743902109558906925678713141990086293391459976105689658740917595142231156031620868409851342178754183693956674828930589573456686762276795919942307517677565290009604126354911158263242451131832853128366972943192716935178710191611661766041783842117690595335213214682977999461044450958741491078272022243917714811087880244560700955546735672844294273124522950789287220112237989194273215370137373490329509487054013548207677460848008085209037433277118472948034207337747437386387652852662049173088243743417922527835433003946141000499614999035941935278808455969288976857633594434963620435596364205935435589680740270727396301102269223870891728599059004584202221462752313047145694827659791493457736279347937795638509061601307859861884959407709842730534246858287190518709986959811614628762381207788299246172483038729328774784575398036326968862588366158917663312946687051004051451106951247812856292660428011798764674683037988984766879066888352889663606864226177935940488402236725524764304068182279035261025638008411515597923089460268863602929232489787644115324955942209028907057182096241282685657037392505004494791736629578887270004585725657364098101990834655485345222065252375660421638367755284332256446924428971743674867189197857095229263335219733858068130896974312192821882893771313692550176223801289202135283809466664503921832366409585449508161325531841735937905380804917751296797216825596428941248450417200487925282274635851675726612572768513309441408018581528517469204756486369928968317534225129224506638043071418452230006878588371132325910177660421965865303681827771995777002102163753310631500581645255781087056049216710855156788763849063570215363416482975260498245656858718193131491650544182938264934268492714760944935607071410287146640762672926319660247903971014198487656725374539960849865195424308578088452893194416661310332145318410028170324563011526487189617175659011990943250244765662227833226563212721706762789059770621166976118209968889382236640313340855199992117142803896822918283433135338605933134619653878229387715402923408626417697720048294682819233254472311069010062464972140586451560840410100803350459195390471865867541585237414596899637484741910072396552356481027842420738427669295280145802559544631317780913134242514145904181752820549833635459246610973227101711224460871976249704761754118087124058310375091690933592649245994177887324637687882207969853959812470629198625383079344604700898103621348583142570477093799429818432533137405882974516240467953947681445357386724314449301112296204315762430793881089543689227311373291582062730515063839855325240378524148776547174774566446147380192921493650952925956284084200183960691126156408131142397137973297160981514343997582154056279280236871437894398179178105221957779570404231908665209801634619146405467480481221719704393777795261041824491457201761071471573683450171295410676254444028653990061049703110921736002889127990619804861485072043618837701506111633507648569148953593305527057201385677163273525399551175011339864135069469250559243692938335368759760563235140449546778690996385211993748971389774867431644114325776829740527671323228120793177470849789266941288258240315109376901438099317474332551614236112848503837183344667606495089826784784474502674826906586265564345216172867100028917816379733158259981842172688427368214563215589305207672368300432340791113175843489830473283470570227064404925302681093963647890939464832638467125076322114487957458784278455209253914018478214467229312703042439154175182245564540880409566095452051883844090152924803440325140267498241123924837292708458516977781942956920161626294824201473288710981433083356051817379322974385090859343157946542184028502385717524195732109041291810038983243872143394502375173782758643394831412557058634844501142801778486490537290159618309268728787020966461772587507574183102769339831456032668937054177668279675876278545254936095107299904282368427261559895419080671465707437041519993477844512715417387156317157121544398515354928172589972123429339098050394081933168321766113188680087960979689950574326374862299181119222576956619422043742020168756781310394936187349057906655547798814197716051394517320465422879120406350557253220686290261890287792286257577224392210208880226104037245151927712998004688157556343517729003271352555342250054817480391293399600741906459803262908001393569147226005061841531200977590023483276053297872680733746738547097199570873395157424560109939845558414395968816589728294597330959538372353440287678068941933211838386171634669300397338937986353655023088767851894451586680619358389513972462245051491991992470492472974116083464019214336744034678027055323738317318365822902006645858617958122950784884010912405073225309332277772550229066688478108649199403656203888045527096291518417822021020525157789748862116928169208185182820008340002570855824724726755217698351520109994635116929838459344065283220179397181791393392037142248376139374550487823386794532130772896923405026481508461008363587325575306653615895835028829748594941425974792777543127688684775301695733490699476586510248054039331199226663315123661745612952822247482927029477760682044857971826889808961854307602363342307356916388558776336408363506210006091934570831140226446500869668834514163132540247092089499611917319771895545781685822971024037594540745382679662916792644843582582078325626747178873301578600219113881778976103944717991196688142754966723612618319245304480781848209700783241566537590007192339136427240426945269983568436818151794395962310891443375358501190069718664840128409758962485920852432032634729242215842203926174275305033533945109372625517737675438475114215592473090090128231599702392484604002717173276745876107431817798009118340810153772349348684712772439509650190927608254836484409575109259769065600518373496963319288944732915437802670675587720301068900692755292330186351055212859395754132021491590463289270306445014139331655718977096976397479530304208801549683784934152909687528551665797864248588435524087004215687737740383288533867534076283263641247094941925812176624105491959893311108801839461022716081053556796725157078769776499574840861156469231206724432509085063073992103943355531489932169342132944960567387086881586245243447790918821012128600200683737933724659101189786601532308496852918583179642476918222723420720920317396737304090222299799290791508366474424444773835204797156157076392901456751909257549077786825485646261894566500107888226778828334676355655829603547964767793926685150022501796140719800403721200428446654839660840197400015857899255105323055879215297453178333055127860116112158922206579699052005892020249872603668617036856433424308622643518886684713385635782078862311340461399792219031916708831059572903927315545011214882423922386542823057380692134096973742848262935937605055252511245239164010489823940468103629550767272334526817472077447275425420520679015055912612118580307584006043201043789097393064399850633463012896881770273824366113289185216360372514481299505462520502271749582632218184542120636025782669038436095081920859025448935703750082861777634622044776446169838274291990079487314377843432672886222139332569431292651258940035304478396774837699352942540064882476229908777520650543260261747117459835657894619211801459280509846577692004592216725542581755340331703403774746388358163402496260706426037688876223987945520364382179935220627001874564116383187075566695005484720060057071472244727454203064880000932549432521558324595803093910579579652894358141716154502739396949450455335592527087233142532600694972722051026472198036190616249998232124437307264209963935238313413001760010570871122614042325802810000276452383164974562196058236992809338209355905030312574809744968867095453002114844650807269246443648028248665901194625735952608771983718197481230625358507301894051319987363562410709356101789776903947771833013789019364213827744724067778149041347270263451416786033672451967340874968708998073503775772938320759713763261835130520997222134640279562254211917517309518528464421053124774563624696930835367543734159774447445507149341649290038827577496139528281869992368489247701345661579914861499998715500719942009438946082596010482842849080241857866066775289099538610945769519148748662600717858861926836450433200433455636121848846546049446293155093348372195066365833867648271188093505849920153363738725848291862560921677289176205417625611815701762406455276799998741408550314646544207407183690467242050904353784515192395321638469148574856491727708117981177274817297553562893062179503827047295531441484325035254571305755655580945086209683113704824733259641806162660783649654007549956718345030667084234490773015632999300096862024385076056331053098973178977988519606056525851221980629312120607137535446431822458002557756370271286461178601842087892862672364864065943597499368112340366207442706878272859622407697219628698277699162235425906040580045807012542150443205380867055644639530490395718537619581416754031321183734885227131253192530023756728331902088219099968771921870194297591298179065259180537647739222329526929883941735030503791207238760228375964441785025616044365337067928346401373694576636042598231726995187555113111737295190120656197070053768597840088550776594376574534150186956682028855344438477982522111686217252482914622720731035637901044187501127632694696959644215992052295532732021520936561945812406762146922817370435954251526241210176540422484341748477192673012476388380927597882709982184629199278562048921123289479947842978910136501702371720884344509943155723621849408824792400336762040825657709438013540674595829884374985914088058148694564307925848024359819469972258299119064365035021293455399130558496458256833588408269634682937150242069729866657737147501924605354792759472393899965160936199671570258181531668800306841031004805791668533264892493218803230084259731849389756754999718058987455130970536820991241655910743079666634890157457382029100975481668875481423798547510736620336954056949057353609403880392913850680009823020042845907004602913078253825735663334483196163492482908196731209569821116810305931633157807648245768171260604653826290067383407964380062831186462152277204910480363247319208617733745820248821527351210154009508364538821778259111030849722113861959057473773079564088274697023676776093152235658648691573355473580419008919917168982861673933578754628238952065010628668183576069364055676597756912362646719334708658829358281870560432692671852647658903155043316960245630929140961716684811236750198479724782258783524471871072213605186852771549820665356226445140361933897801445316196577436864084752071554648056425836846174502826056028169219847168659614793843233639065691491359824063747440019968642478508943942300461762945502481154178238063002863229337645117912227929710048576053455758844415896174315486942277524684317306785818444009091880841937771291202610369860606715372274532775081490512931087481275429823992444794724505100402847633120026210482251552335267336974746688391295824127299221787672216861614961376242416382160675917216177153616923865160993680746335959097477719868618639856713275966714249316139820663387978490216102552239777634028926656456999354734149276104321030697138215815264311178831900698187125547758425150572880461741339860594548705355727012116824676037826525935006533429681422083798455920029973442452157938006091085091902484147876045124010353561936148040710987163930595522281039585449112754590840841041911536507228507158925632190091910624409569822362201034269286591823363946300049651683639439436105695002920481042103151672439920226984569321335481977067802041677173898817839409168002419085183573308236120448222849442789960268295414335213657755959924626036723375954763356436557164358309387997517281419542638645674655461414154561586701127565066334008683308462040962570273992880449649383110334534375954423031709899804672483716679103482377241679736036990838110453243211452234636441299303428123795361870223664437536194303113643326191693600708276004059511809862549389492442915976756192395037492219283072510868769257186893216972020282057384759486155453512570519368427839054398166783314164811577282072203813405160759720236014004730823690442009885752232570556094467973438879035450129302517014111558772657794817465691448573841823339175768064540301614900621208398539830070696080527489556720367122295903042080300342615829867214769215981995994232257050481208871753903484927477860992098826540133995753615306546166536180137462941299307578932020068747563565424835131036141921280212030838212147523982081550413872221415210098808862508828376118092045891619891705515159455840274611704214958679681355268805741652103493930577896109754700879460802038291182655888115977379864566544659536651547623450724195840453742820643814861496855176529345195634485438591210691472259438779339605727023629098836939494789248399394242443445809656136098144405989799914670491623352970311635071524774879049373394983777337331347601666342245462278506579344573999211493964188805566829100507762810591637688330304515178207298509087794152825681087417233052172019462360581454203929833106906763621657589319577541928482616222686884232387297177905976235317488469313171754681257845752258867745002208478146487193549498992765721491146610356577484269895103729139409783352162442478015580657284610277632626976084005765873771362399212509864239687810600058189247137985557283745523811621842461430612232057015454544090775665985746300263876839891240824133112701763510691825400732154976618900761960007130369993017242168738050930872106345385156069331716002780891280588271338710199990344844422721763778717043663724130375996654691323229186226627336708972590335996088565679936208131636805148638104503844190862822638267584302009828256824789447009459818089673605964264630514258422958391271564959857406646566041939507419782469214162827962808504826888885634137309213070154184412935152304055911541786988975872975207360140717283970872162035116510779032451298380833762702730286386687512578753572524072262058462154596118926777597006768293499941831754139759425211552337295103937278583112429782145410631993012091696240537811307170617934112771827141608601530053073649627922880434865315143857209230384626557166224874004944065250942983727254676941558289203432618117846261427715040280790895472784048738033129092120977686900645188319560646832515796372619468830267245437222955284820243292239263175501474827221442344352940285277838515411130228404612621724203339029798907098906223142975466693574895662699890519186195901077098726079021650686533383616396951502000012286882938937358714688460443352260097775582064157822635072679989279054116204959573594658124390424317430152786784619829679131368724779313536914522917919074550061880655524734282553169113206792943763406028011414943108001898840863853041343783404845084685037776625467818368928208093436080845949848990404381037328113214969924577912660870158100368448016134393197870052933234101797825972397935502454813350355994354689620251959963871374135371835737197633710452991812686666947598811109348090627536219653484587784859214986602931377617044809755015560437931564458088528056279592005847950541516417093379606159221919544400164432806569029564491191754053847764708851940384145028275756955564722141045460275736696417730007237923001838398548658310757202456859581275518015046168407971417405665114376043319123108727800217016136656624953520991829202550149140337970694970025123966035509073484148011043601408210017615275204144144461031608651037009015371597768904031703006090926682374923643205885109492324043420318705176376964196875705687412547648554278168876096931533932516631809395619648637211711517523888130446824261147382042554086296225363659344569824710465089506527934968594163741420207074624635652311921008677840626153636531068884951525734431425951445389668591267283067255756797169465636369179414860787973325708572159105415937761142957186959236912758672663920857205957313952589066459634565776601426132568624058021475828576185092934591876808790677817428439742365662327124605042738588051632380545880584024714680022953992403872402333470218234257476824691614751595799351624256746202146487716007247913968161608796650651962381755116520768400074332731986675913488943238822723620779160277678710711847235326276920372645284847064707080818696319363984173434078266225725595612106436942483361440685843387031083696695936108406610621261195672075567397768289045150210879226195284470529030089603844806928560320048881656045729759193731457363494611732590723975681729478618057103876372607194968446466200638046116706560435028603378066605941578251607396045837028519058241902002357926895558075064604571045177555729568586733538381624276299597257786913916475320175348139511276177158595031391609147783428567052106838850644428015061127811768744743386160178209373292260700160605254563301253788429735853927363999485682980021911205767158920555736498599405784878869899641148712459302386298539332719374935227257231833050748413241413292230120674184657080218014520034969298603040001582983627380747114629275303143429154164742558111839511162971909093710730560683410476910307316995996307183869714520146794668639113314694115847503445073957606656530224281290445616697116240801673872220686826839908341040899329096739496288714200016017443076701298306473174299476764415678865702372573923073442758723377080147995408387887220356140647773615650863953682668408865747349522141237146242827847945066070756429003507479821999162862314909117710270649813270459844423775293595940166111336178773443223501213484762886161195352478126127555380233325293848370054762658534435554622019353179275694501708633097685475523230774721449386404416647671303877905062661231148836879362969186347561534101965950219630030081593676308698870745246804353804584774187446798194703738582323111538166033166528253653822822483344085532722770169692410306999630697326901549936672908856892500306097725686988049739921443110526905902411708075426849283410155427799941028559049228610621015798692621967508254714056832719157036252381449270895619907741230924669626304281273605731075677827200719363677918242701536364812226429964680929359958652830516602973437889903338891761715435296166842920485700292041944425425380390701449483638314901984547414247312606185287881248762535999412588468019519360274271808149647679801965415998978536287289070290669396565742209094914692590615826186289095657094784322013946747423713475760212697060657165452265092601615909558411414983126594477753096692955931469014429067704774713534659542692652170355131845707283712805220958946123483055451863150158308762681266613686420442609487667470018659979779750162493396267701607720120898418535207771712988327006010292564237142521787611205478969072548281303470908318805953312907734575391052017187064876861574029041618131963426433781566220426826562809021956065308815255562195220668837125644022028683032013365017073164792497336743987959911078288268704414902875370428597039684355227261093186662725798722507241337848259640785825872179670710546962152742994358521333486362277105633863568462524558986925140959614370123498624397149504424494600425093294476608670220185335587310038136327443358306226370115705641356342683054435270915750532441809985120316714023022725465224049770854305007256219497378839884510790396064366738417192675775992386227215657346056942033395565579126774351033242198854660955688710419835789763809647379952861593922030758435660715460259461749967666613561253979886438382658727409526072575964968716548543615247872668939594764261231337913356212043931104995155362262103694894900561933173315842329847153655803107861875176525370510728596313924352053826741365468670999993072466723432957364402674478280178615127875938076408080793553927579825082913070553965871260078934194223853816194977846263153930042575702789502999961500614120489881785008030767011790196081049588635964599477142142969552396509490572861193896748114470026250649630417042154751819647208125032420285081994717370478658390131613363825156195231154809367049933098625759567287425594560743713168056924159122037211167585307404316838713409791934885077323012453351421111615699449172735302817574003552970404981665523702094594431801179152832345862221999553411107386539634399120016072059990118380212075730492964535133338592413639931001361696900206672662386437110338935647645028747298488991392277257880344645730598996404985194218925067242304777796781725381488266260130065612570783702109518399329935605996625699678052030536408174445867161856417506574969539176724549773597492880628758313352367305250952164831196688829177395650254070409075659430111537354861105586808421290977560032830462650943169279783220281099249930137683497706781371004262970802933368103459938030388126291045902324149018287156725898792058783668991945130775560119255992206708165244355008983565953842237445073046422633227818892198807013021897914679966650279028569945344565106422402853819681927717413838168005134634269099439968428849991979311246579983792329963170541638584056203957129118599461946763934995259188757626227703242745157600232843208089475356695529702554350100778297613342276061180715842797529513385759323408400845996690912848481242880648056401775750086359134296776625940647017935428576295023772858662492174095599195382454435979429302071746736392922309677708543245998204580978838565649908236438109168933190384969653130270304731289000598274107413806249255478336011570916626641892104271606653091683203526958514184670492019483482098039915659194154965595454995448338071025215732578540574503304516463758125403115863396001620330554479258438213792157135296001439032664650033004949038062553231780957211375912336641763205024907168889926109157775244240190890039295306825636783832198313125525664753389306721575515426106210749233936739550357833643549730594363129483034436791179687807694759027131366805454172053599396829622300809512147439641912976319695097019357331341308127638559349247821908022706550115751492349786588555011801976150450372717251076010744647275765810010584114488957035333824067162406546491122015919927398802349613111598216760715864819048946448317686318142069735405391043943586050388352312535542386085166344150795842724366406987389499204569485429879883774630668267453181952954184070120439716058591778043657741324482046605045200366030114711334917120464274519904525968444092289114103621569623780256338563717012200441407783146471575214537876793829675563454393479013314060023708244284881274963314679464436278523406239552969627725092745052586290390453894213878463210902399955451795140695214423817447249180185383534641505374504618325066033847943970246322444954291180567639395201036642810412579759470039719876279618914709562896721745898817101218844376921487818588057135318554947325912232933074050721377507837224881245315995109985746497635467104374484939469430398278748585168355793819127823810908712995807677291104507534393695828420940919811190272672736491044008611253728531969419391560459481510187129942700396227905159735124064846979499169942528613928467233915939065334091418854328014072613908633318215601511730444629606914771091846629251142117388583506492929967905945354408689321096959571162120892984885813581226022226782240942997031939470500591834228655625949052739478286143704583108215666679320150054980593800966638885140679583278400842529654351321381799604605246285388922448410654035745510533868343477836439467325960759716380085089721669698554358253338003707492772061647780411249427395542399405649085693773965039770631717701778643123966201443019293517152147745591900503171520440383538309191575615953991754125387694353592208015886458810854983041425872859463000261903367844089761226333285175027383921942112055815676102739225740799339177390487278376684410234943879083039042978961814118794302664364388308599446491235403140326604193834040730623494349171035413051196119531860699047995264167915229541615232222816176189775917555729099363646436484439357857891360198170465610047163169254825416019425697336981642117007446106306339691638636332148934185222602302115310674972721671255102142420025135167429395566709268706455408444374757980709798847720591218694877359850119510111235976699196556678713644612390467475890077700746725036723163699633617349430479084338028500365095996529503664906760231283072507509108447111386145807377675042646079072547753268368708985871503759878757063285545955123300009566074755789963859976517951777045189198453426856629113349371451312809875574283146362357695432753292895122586635032695300852467528787073376048737383764141831576549718555956366149470224507667507961633511095404248280474725396899533705981503888021541078610677979597316144657947516447993354418677625238251786847871983269146583192892092004855566843216329048313683867145891267903167134527090463287635971454922261541085490746492301513946166576402958262723902240789440117469278937959650346100179420005622028959032723096420573634448176371648253905183004027227357891960620281613946756060826608305611218520308006394770569674941470668577086201104405895670588168794147478496872790285748648779191710129039018959058936694078437134742475696445018501709147750494364909841290824504811306642817673802446044521644105631972115685324770841214180575800472090675798390234197549548206983355609513716884252831901277556736474466116566584497990800815408720016176712635514075720589798150926048765252005756559060248955357220235130155401010010562539855338958000882130283447958698903986615713924792421232103670506607853325787524872395469506506828047932447875339860466748786705626575589374073908587557101202105962857684330945558901326826040887396947265920210228124151376418114720850737636078820072201534154988377147685779847047909883702226928673374538809505356053371787579534029818392498766800705511670731854516999567320593913604687863576094415423836065296806061530657002261655522537755821514210374211450376782642650643901901351618599769275577993367212672239983986445054290702788722344100390115118285947249839147532485233517032170881747104121751442994126343548371721107376804658535936561995636564668398215407025646210807309344737121986596038024915718124128315580068048158456417181374279000105955820001646057784913780895044882817018687321688265730118603354917559771119294980022468878686546722793963207952727746904687601929990578858687102718600723304262056248256642423190728296760854302892495560147977818969587380312317540036466943458519318368156351000360390925619633331643086250471281365058071033367343713309225742253487539044304070743125454192969997553487849566514579085093754054827040083117367320361583842156527552960233231093163042485091764622797654280525524756130581151391003567543633480039661872819109604142302032835643941415184188014493506821008475527577920383236095097902043166433804129267152332770593159082496830166056758563697446476929606858804572195185964410808974526789947239173707165384664731298304551399156841569471011763930156237285741108146732985735120935684829782489220885888942555658195052011809374490289880670443486554463097333131392584889620796322368404489992292066592800650399604897850732181940461168067340891697063261092659677286240310229548906423265876279608260292928840551861589811866175953566275485474691633844613996541000046416248390881583458193096767202136479127329503827985465739946393266465320027736760773353179657426352390524772517163078635446045973050304530418189667752089400852396864669290896684161371100732810214514916483118387846445251671471208722089729253219787186952801576926336937929943683599699411706794104178371802669742430464271259893147887367564928097524898763916679603319419414535772161342316871395194116550384669993372522142472984835726841374045899504394643917746436358036594563534125951827432119590335330265442388287805762988348597501670439778840180113013370953334457260111229427569785398385340102735746584261992385449037242732092781129650568486460079017746371517712036800589625252968799186495821130448414402271262173044919717296835624663387905547025754825906418377557196239317174683402296071021773148220100326337529284713971244343924413628342705099839728711779201448309387635702139112371708465938930772912765283779868645079461590803253913733471256086730915834682513338105977471723948351786468863603749134777145197099288720026917241339968093687375986776077291500841336728960579752174287106392694445878032787452268184548852770693100910736657686848198832194339902597772881017711346469521151273043454867132390915935363870926171761436428120864254232888544409967502366950699776699018475555068812828435332779431146496902148624555948480928973722572835369436196974698632116506165985639172280615736349124714185541772760228162849167667275182287506227859232544060256525457065244947357620961718902477809417357416035432821228158412623447752149704258452017058985772653158316352981244497552124668188841165363353939835860145377743776442104300119330231638871126329086994851553188496919184232177695119520063349243226922450452949740798449974307956824465135212797390930101635468099464838183562786453613738058073347015659211459622270090991863417403678000396476617042266505342503530097511068973241722797811676311295493043003627137455775316686656588712607173294636699848288378457130245735622266133567242957516532915934690393488280492547629017580419107241424681170618205403267210084313821018143025279490389578904683390076779882636956452749496915736846982230658687944306774389529520609731753307943068820015681697122535042711387555845498862854182381368296693661264924470706933386766152137155201649627326241168364305206811546923990194970681515625875439220939040051597386295360658015368021328313079052987843380056033179045912934405818483276344989663262805286969359482634066437084505074999981991087228777747562773470161009815545411385274470835440039610139903835156668140265997694411177098127777993936443338672823411269497921292742537656131091952281110030554179486934475477311451616635089410331227583140451113878022415812550550123216140703386444687556729143622235471782269901520736479384487716329366339283145342949769848560353467947496980528408087363627766103270401276733056267725856679379338640029164283321035513826197485570626690881174989645404467680214521619281698506279985323730821758414714353586935038582380205109976809719585877900090758944865530670650360923579767571090166611789283464720925367982673814221845379645627954923799081206289744288928965322477216651004000316120214009544921971005398329458779713378224623698720157368264731670960056852576283887130096159725244355194714065278405626874835753869974293368836060350407317180021682700860524878356010707884159481964328852582602158977833775140073646111386740948756295560553160656325070894271112393762029722653881729696391051428371818147367397350686896460144268342967689620588765523049497121198929847038606212995013648748543212953179136128843864814982935196254234968749237658562438780823826046120109050701302977611455177540038040907642337994965294711202339293945468809354255678593832372510392272346851316121731748505158411655730107667365240319765187179223580631247671439211244645558991985803196766617148200976029263007522499778876304083065313442595328331391116538856432689091849291242640645485912679025117101500466372398743332214621791303782264579417428050854755174225194496231133139068067128282613119719345547894240651194424687212581405577663400115193970598659495724473921708834522941559412709608803804880568471584204863262536350674487093438268379939327614534846822621528952206065745767058121639003067374115811496242670219867817866598962872887696004398037561477204433504024236209479485976095190226075900224422517582415732637765098461392477438744010782389051731834352807827414538733967162969258266064677908110181569066156015344389091750365521932992650171268105470366111175698809891416735790454549371879953663432942105776715076119396709511987737754117183520003036821362233872121820580009112778861308272999605506642948481992401664965953908690194545271543836410449004520138373583231342968599043141205261229236002622149774059458404766622667145809032737800817169165260182211729834178891484947785454323699190495979190200471422626539275250787328369636434556048822744172040071837429921853632141889978133814407227817362699135007951633575500719592052912740903704926512879974794914286517186075528307031107988592459822056923537650208103486357690883602587520776984773778447215882663921788411571425818225269437546561716037666063114073161129356855938660754093364026391384327457305101665242088807851426544011070678421960239232262832614044996358682907456897646506500885770927273858204543094926884226584874581409693645147773322466799892569174599179797909808717702680715888880394406904145112600036521493234725025055587124011802067913662175177479406844108062800589038317703233133802840509265673114683613170897879005023429844133139106785290298397647394657578681708600291301060242040959487563173772972194766478527878701259668786826391913328106020240648311640242300458611424709158091519982384491574846618415043584343960422314935677185954833931434582880129749429161808545514883574938748395248403247661672513180884928202681626632921677887801793949408126312105298583964147264000066760862591249960420590630133263397341464567560041636170937061344458658434351997431452272313500241883530473999027036439648274848950486015455268617143826022839284417708246098825419932548460630366243338547913517791478434584992443684229209905525217640272152349319134019717033224048612627491753838778147343554679284845432396151975857198861937616804043490409952230975668927398127362029484775500449560262365923097448666795233560302992865206943759831500534576847242464026456362219601674806753793713174201339791465334089139250300462957753002989216053066117750701056758063999981567670247886002111060120676902818537074045234551390673454070931517604123511821013674375146251629967376036024874101560048780597467512888570644754527261411039755423943644901043987472342259155482316555162770448723368021951454182249449519027230392793591351525854019822876340037222278134349400959061301387304108450001718009680278047399112309822774137095483386874247861743167912593992794367903137983906773197360049991065699669240445925485442974275074000315402555021662602140561122269937182177614892074447404277332133254916653900401885112667948466143624439825595351139303055434323523701210287596934203899236141273955760942659340575321826790891251684810256052799448689420001323204513610648206176183546502754083833258462094146579873627374185732837570209425865682070371741422057321726246491084626956786109018746187279331758817101602687305915459527826141420015805846639757513878475442851359341089530952601458955955012612174840817014316141815657887944335059677625464641979474033234677739020409654879612852933844312899185786385824502906937884863720435777928091861382151552691978217720612319464164894950245438513853061924297058493761366443098674722544076547907074483905346509454130998369077998363775046757878841549846549962225249110618348590374762373285128066092115841140293353327669167675372963723039162784461823547859701113963101675074142090049213508673156822517173542994195361918932706153386883971252184219179473379494655822383387316824113108504102262892604102951578210240412488886452632182448506869522955268817876927127430557785910197303450703117228262050923020614767338597866570527274392327406858750351121755395680098852172749322822882687412698655722377564118835440107559903181715841820464567763868016641792237944873808768950261559890085924281574550403714939140939006082196576522522809666907779868307271472542625683482247595781032198647743103278917396451753363818574058770996272507865629920336528587830861161896146533768243643090817317218183740914708230080181892739420150655424510598102825959147986462141675662158539285798507082809522151689471011309899055218676224966004352392394515786740449695493769656228729998319792652560102370792794722975636773428602629926895616958086417170797624459214039739874055484353981436272581773804203415569575307621846991689013561643801398127787065001652476105664495562193705412514875634210189337384969239217496624811303080387926392411257432779870154016289991463416883607099498530119193966950303461391347056883972532519935647756860900164463388729458818644133967031963128638629268731022587266067290665726727497435531337234289357137366922768302427424786868989867876968619973519228343413955943855993201535209631044318589321610085107159799499848091018821605890351272045950968546530059608662435861764369134422828963724498621499294454574477999145765370329609628800909793148401824413803476317948366995682514624378613012260650467347988267324347694106799504313751941526261722265042601261001650069762040161714937999878924150772951038308513193008514628896252451017209580170909689232851919699447888470289652813519891087867329912069205539591481136656630795573674756975385039150087543686377390591245820114722995438915599137696431244613795544171800295784647146250912378584860459764673552233013969679206471623257098654236807654545377313923788684878502116398670313429059901940782579016312865942995311197538508853102967921739958641368883624911333557496287218005236954472009333017385684912228484645066959166787839128449228843447078959949622244448563102523164596877398669338085642130633430916409146896002254705178099988216062238943726850298875636582598042427709809606783574114631205837304717775230323115685044306468079929730336274737475960604750183183625511350095601872377486518722983084281363495739809181940455513868958424223978169161781111868180076681227829752193331142578100554979285714432130331577845257673721335015668731507204330947487622492959939655046771452903688997814990861834169081535710158977716044377528557221729368417540829949932637177932319375556441892825189276062334737682245130897016366328018884070364385415654860625742348671412278812733092255854651453680770087168483720925477531868472783005071144784960845383962466994662208761083383181104978942015546359495775932430690708752563213842171099978749989728628389448432831488224591525773684558657081826250262966142193902575537199189696270180368906269282000075450431320725135445959723186916920354031157289765891135519232028441329573717790648765396991088061975531412405169741579217081424095755830837988232138460506765827484456100156953640650996978772927745148904780646342864117532973745120553365674346939006975238081900159898912526788522084304534745560300364822832906734654326782539682909316068677634684330475036340957646541773167784001714035655061729321408775993882215761286017675395361446329691022394666579347559626616072644876814338509484953380348635209577606219659756312396661246562962357497033685354887771936987104942421233089922183124343625048916644222650389367863467438982809497121084685754560273272322594362900511129676515928192131741143665764126616203251267898536643172280048210087241851951990801398560034236879583601516210900435840563021212054718478440919239773592063343397862209640314800603923936414381735634863069900318086414054708411818311233218860570031367162329746391370355005074421525536660214045646041831583434660686293525637189850237998932566212454039026359594339934882623116686073142167979736920837931305171599235969830532201523887344459431545553668365903209026825516812099448470888894667670017699628913269743895113075820260698370347557678535990846532482610106954213063768634911482903674373276757394108878011353315308071689531879709337721308333071636183864263262318181564577961510721133942672946887699284238421518182287676454932388901929225655727683669363839772543922292224069477038769923346100158456144741101494565899123188506624413868096764524132493211272290559817668729224435169941383776883313707050016315821716756051069198043608535950371129664058431238926603538498641553258254479298679907693024745005854772646140533510207244025741438388466166168144406322722686692928208317381995266352244931439697211860260844447083780945882363967548377974259631156409006015124087483439711659805317065338260880477614503321682417363121967711749177349216218288021405703380603589709358822628501180913997277122521055413685372607304405720228399642425164241947449599246747055442603880295559246339157211549015926890066800375819113741436029118017804147006996085939136492820353203876901115493981706225463735177083020735050978532953511095511356789865402703262018332337212163491763743397481999301052558507079219344743102864668534330263196251694016114470304686752069007613045119852805512820706520669745097936588015703198491889137587521249009633431179478384339064310531212238370626758861532681566741684864534286767471000346390697090263793403845367112740845259816111072542518592498438438303783155778798236593354213116391591686481697880157742352586473267103203957098201974661534549338809246392818190571355621306197508889358831959039761943622683330106790723081837611822141965533320974969574037314753350694655218852676997433771222920067043307132906009245308965111900869276565452796550553840127745214500590215124993853101445715324455757687617436215681753157944773688450385194553867815294790138046489000612407035272038606043760165449042940984441614585538567462095870818880801784310169690381916147815260370080578503432454680363366969066147738944217587428716985763457766706058447455355328242836699232311881084020576483386433466078255371163827251809783727196816555721729798571417897498122896914827522076701932522391578916573970247254164625371813533063023796656314058344415025941708547084621050485483190894154875494244337462467617168101599285809330289868878839051798159934769454973789754198738500646015265176980099633141695173185470388377603495846214738638537794148948498967787655965934757103300182818427515470306912678536017109885564407704359842268961579033245703220404290950800967590614833076493060625867013709609629555235774730661513159702222601234700170583350783361432327762941278267076704465172678274358458060638305772005656872075453967019343798156537172701508878201737967430780980157020632937361450145861902642012831580878860162170039877425761009977135282209537525753181843126097093718266378138713541047448953919207401502302993016407168011126570316501940867956187794238561542341952186984355855783101731527961736889734915166400567300926616215178262675658438984992920452972771076746504789846409191443752605332390790151146285225052141020284498481857916363566981204939688667123828318266398444327896466481787367707396944495654255228276104709585890216207841219615799838636448980065969512113855883335069894954318888961357078339831309442936996416704046482842864590638229480921426630756991256740538216433110417582757880134629754685299704740967632158020448630305764784958904799965135807383460168172745032776238580583076782678446863179082900023396445396929698730581889860806014282194982260704486357061803868094973680114833360327065971376806391879009149558628580714265170650122445615395963492254498551626115747478035063199488766267648218928117676091076654634117358082994248761388175364250950004155848964676444918499900465272406626984345174101865459851845356842827598995618385893837186001945863947068661855800627775817650818630180632955038392535396045003046846926553232982657754009995224113823646965175817262002625869410622341825243344764319231024802407720917083416516580507374216223323601322149546316235010619867243009961689066684860548365954649078867003011915159659600986499837668090697725061747341350538490034251592441843569735285283988113389232575476090920484381469169048531519440739849470131907639543045930708860419283670791348518499119031133592506152488230850594838146779867975305163352676657135919124152494714938153013361217961203221987153013591424729494601884535205495707477831345670562600113236029299810681581226969112858466388819245658068289597300475331301127238485111334015745882970530567859767417647609891340677034151041271682493620327485479233386657769379205973651443035483839643413185473208063752180692321471085879826515344516432127456809030713296429262025957431538032954478980594529489199799598402786820988766261067034975430447684641934778023440128074765415970300032470387728980910558044450120506356097020166961551192390887592398862103612470808992872676163683879156684173348773650245489089654988615374280302450507035275586724924165875024302956958748046653020083767706156148548645358489622104480579701938519596927133513608913942771025022183418110286117846148030178547898047177239260498117377806109181366870254850215284221382476611478926138672781276231176875904297100794812473800285093800741652518249991276036196582731913745537176183552824850175485536905525982482504617222530932279692484985172084673985705490600087722445095740112337536194098625442471068076964895370572136793685798509199620852351601089911224945361031433301330992327921125147487681196667412583946285223766287677754754765117168356419353404640270388565713231160463169109346382987746150156501571776618215801018885611999752293680536091123295250150566206035645198355069803514784906626506668871934551874764955029949700563879286760969379874981459425772934159257046860686999016639668963267300756824689374243043334121472705001899699513807885652755406562653144022385754006178902657411822588371397801197640415327840885325161296080712894918186512966361020372533314744936797061661580281069351140477294747374225076370452768046776873720122842331472696043330798435718570345627187704703249531589812477855982462679030368396090463813318054154125633427581742298396693284030866748839689147972342554381131627503117749249635970421712571177756671631573819740131050576550580500236023045700798992105252498514764393025260467864077690839938291329517574906907891320593774652016432263293777450100048300879659201145937234356813706934510861086973564008869268547256889692161646084125989142306490390468528669333438269467472101705572446645869636454986199045277409735379259764525672975554449823097384282836827397717413577571021317291920631234477969216472739458146807832430533388630340921979855962460364287558890068626686823482723675006353821812555711344287389998539103578804227643066398968913618662590039297269898570143179356586601349268762538533838174182764627970984171544222999117748074544054053893249051873681952627722851507837142560952612756562395359940584080920963104128232344533088929829971741441360228714844672207372527437517675144024276310577612206754106477502648369984641173792414566643808069939658503893379655551512242360724966427676938091988592085443163730860255673091532924651382489260507414410674906334446742628854856676500257708602404112103374840586002483788040561156029537419773442742967849314849206210740428961079200958119674798632894343923668475860942106618178375967935643820498843464345835513575326440896028694407990296014429454212620569746386155330173597466610332440782112326738393030796751355060786580873734942351911533407613661144867328929926275945974320396228957380297315661643533071743152624266697042587338086653970148633082026200385843038534653058064260309605170078098397597448511904287856097554119461207748151032820267960685970808013887261441737347613498461056287181730302295558362537153496959759429727360000086287897362310093957905433355404348324684937449633041735448636264581817107680882075127893373851433943328493415554007812223194644902518820904477686705997526245501160609174057018796404832511839749776338087629897208799732413274969990617525332950658245408840802505959514909038792097372168177668246162268004931841146283582997238167871138981281904897932169063531396723346392920897939643769037136333932732904510850406520517654399652645428613473872696467232425996086381692721488190852916550100994328062808123281878292304920049865098537580958017604878029853899892611855906804362780918976380858803876385395791370555283602179654030684714479859875598794158853825449583387806031211102403573360146985885827128375236193811956700061243450758604632510673191456601362073041505133290979960817914194206502140922957544599406942935744547765397043538793816315119537709024843866068836779650827226857964104137911009584702529854163891401154824369314529311108167879465257658119706410896414636171502981280048138461538838723044604161790901681338670683458960938888356291447316161295244138596445324561216303376065393136961086212315478666559725194537277927113908619560427971720775771243097756319000510032592874590934682879819217116747912878293837064833280148273656230430938016458300184091321585606978995023634289186216955180202708462943346231757513448368953377073975019791916731004252379172308029491578786939890853597400480444947311217683540273374732355281004505708015226371038767705344085976652368347470421430423633761409607144657847344229002620169711238048475828604593148566327685755281057102106832799738126918129036330607194712729005820933924587552017700932454472888717661091084200604860799573262167852116587467050529153316033281933932312759398424305751469856261817411822419581193329283004311757151373710923584688716082836893542203664064979128605960911768033988940715905162145916630286176024994637484408405811839429564198355924446701436929293972675109720019582968303639078947212572598656275086513515015829393201915422242044783187616645579519766792245060476352785662471822109119861517243614602039408073504930311032949063736814938624205299892824023454453749888001513948296127899645992399967772850502516718214165400248974641807784691728316509406559610675835486237237708902753231845254639114149800037199649064233606114876498844329548245765055638456122643952092921122416619095002540814884663706365454452400472070649524218677883567444080520362690491122662199986455821567107730383903761916970581314704482226149777711624301849375902130123343595004997392883846363025850550271542722558540933819426773905435419213717497234778885348252635611729676729832301566750066636650656094722700112010335734873008611944185400019884504439341114969300720918891450738951862482942480072305248852238542251517654167082382005204313325243860299992691933899230263279485565926958599893673048110494622328011739302873515876855220109866688361639334718395738235344761758586633000597302085679297189835032503505036567981596494907338816387289073766700925917207684208387945990851069408359568686239389598617675590255513699265262197271740085501645201958377758345082610534568011159848809578352390092366638568478242408638016806365381509643761417331478359014391143560417288937197085371106863410364921559278238303153658355458595780306991039757804842618962946032372722090429806404205468358755952332342402165956138888294815812318367923873390721889945654236914398504445283505365112284033663790590653942782495241532302073783302436415866285488594496948358178456829106225971665405379475902832020735910161397492302923853728803285580744441783461286216692286741674027341421610867161174604549821244426709260421884346421859912747254687962121968406870039623176268737878443100291386534475485771918117320349822175917652574703095145985237087715271675011950186859842997275106139841333565710395651172359521729723724199892360578919156776411070504896294168210378290564554977692763106189890146343761968670665221801498310633037895404973502292887309715019698158655899058319775108207020113756384085697195620890462539989929099050644931337762013686594854220711060762090159911200979411049393683838474542829966069420222350270073976225520754361499388297923784023642122579543109654477042339413239494088433509941279545375059426892865550273599684349396071336601436628458133287910142296249455494962780117191348678143378054013019686806195631210520650401052385846810593822808949643836465663063097744128836464863092639735994958617211347255392422288164857689147381590158272928431286663846538683563535746804419786305727469836742256040394512697565798135731614935498311478793662853463751739231013199376684833101997270991382272948549809909304109670392464942651555381530502822845578087762305651143697038725438100758374048715798356303552221003205439436649322626650008827073516883138330583656169415432785314288519686471925965669594318347093540121523204313499847411529429789317270856548731106243581313321182836227268174524001317183625091708830186489612403850789779847051972434926213002604290742026097969898912328638299292309124077970945809829068564083919214971985216691881720265262979643025372368154887629728785844818454929996238951993257313009161530460947502060036772345110399196398609605912488100424777703249557452056631479737583620107474718287087139772154323889572754904969892693178759732495158547574177042636359227566353538010917792014242337474013855801045539666059144524144829655063559169002722371072412970508838709912518834950728419812103126010766920026951413542276247236603691714272328528028521610823443839896551134633624449820618079735911795161105990200802926133578876626374337355835530039229594267086572674384319650350121087009679068172205048954699152825528091315016976669814973888596895917825119056067625328093904357248916970351849159009842604955796358231408161758339912688918387957681608868842134161505705690737828719117012833811701629762115044115334662781859256238608762439912708779790675980339707087855997097975936421328299238525332883713670926750274267337270471873840122647634224603737522499105813771879989537690576072267479061002898431198300076640372934594830552409256017086596675413506209342353828746733523671271010051047494733096878313854542835251877357146377276274017549903775204117620070013711721689590364440232263981646502716895097092844653899096167506188577099407188448047139898973029096396135513082782377360977273550583434229810143047915033052821416709626211873814195454209952485400331965684005466930321612774245618317915189989090812600349080714897450736422205754129365200690601164113753174580522795158170497412057349802250590337024735404294268023176210451587659817545766979098201687141390887324697882036246195866273183134048236598949543352574836041234658393441671397180282512466140477463919416458034908187711722605866586760436205757276668659328276453548316589855214096644615035867810665212045908269944914644148126879031163525441428810854541535391801311196828216859823713376940651074185511393504173463655635539069267170348408710672688589768758611534985272150396754162990151517495291846172601474102917073116966402816221952126455787101363579552475228611082746887755693749607024680478735755126552994591499232069624512643053852275393414172722745723699180337028524612573338993953361542136447705310445534358983185317968306229266581665858787595829535832512229720294823281805994124285996166314805124439560752181364590374443687527466192170014725869170939185747764618808978197570965336872160178325981714685575410076212434702265737694971793188492992876060407116407090538629099685017845828570520405682683792895288956567884397045160748385387873186590323363075060369746458859072651772406966675069668705369758984169135154006484161659001404222167762199505669221991902173096870735212031392577385871095800512029528004913533901334069066976603380668633329395225325729790678124424544114398241476758679885290017266009486167674975485962187420390630524547791009891942535780909855688195599974375643296277334365733495794886801448871163807442250226109559278746570050677964350255145322493953136840580238265738456340626212214259875912514326462200617290727585649149793417336346499624821804800688049878763115210223120548333234025538031859040856687622113037737927785589667400365884278301854163646569766784606578464372974315799743508565294555104549643176407126743589385961111921844502337172450276035280843118689147886126851582857422601961467842438768592109500116143100216770206240378018074242605887942004728900442982460035741999786232712181599274296694594816843141366539504980046807506495030551817743593271298876494505052322253124465608770664256110276225506325373721944490621269379342297903913187381292609551918753397955978681692500430824442068965879344720163984532245881160641941540708750946157705165323817765067169636763017887755533536773946004274775173185562134333946161604953034649199933991134249860538634388282198939517965998168962391638582668730241926357724658664380065367460846780780349245456340034204149261921466436832641643056034826249758213544557343759742819523821296187831240228438389049807432092742392057045308055847547481914482684882388456279097868697899954486500514841067869857083190006077625150724614110197955517515209710259896320491674584708714603408560868381643143240300190342749552788206382115008769849687497293831409927753271734011294790150814214316271905724229632484228505013688892480565542404952094599852363828555675168603616340693305324774659447706346981170599788243088211576685369177899186375072737542726450980339399188834105544922908181198568638854524098818232358159901538090011814569183754961834151013138127397893998929878633831540070951655708965587228477633921306330894920201416180895618451846488904441252848772909372172539287497152389713885992117590083129012279177519693988317057719889145395090033546009055320604625093482880852023307980302086879508579481611934030099116360815377157033004513572084627117001350020598495564134371423584520522381006480783837789969512206584421891275081082717607608165588988251044470759025008622792784860549058683755051173293903550903837916820502745911016307700530948619414738705254185227984917443781721767877087168973565930823735670902381414276562192928356922320298713344948479178902397285299294241252365616537587563032555488794578214050614898212972790164820838333416614984013034655258092080118293790620921484135614416988901494404708405337393012041287616270179437405417655346499398583649897776080880508487585177415422409130111784124999837236973720919954068808461748308667423074736991908729942509665750808433769678002397064351465752475820756241916984203398270082157375993286834844878392849277023842956783134770567557855800351091633261191153511627259775572733871832089071194747684528160637760789301916771428008696860402370135351362835165370545783985486429940520316795190679422242407924208819365249292517130406658417539694779070424153109807051882630761767727597125463732046368930895833835202974688168368399563538194647780672928604392274477919347398273212516950526338644452518717749261047898343974999006451780932362859229992249195442897923655200528785394379011755207036187630563357227084341940915855895590914517652315780274208227090334843297855704973007060503416135599886674184634300154339864811463156971832297868924918837400617239664369159351754843236616198795515800559870208742615944535519002169966017892456887992830528937022686211424599220318071977522666216969931647903616367241931741083847299390613331462367564970887123903996295334176472112798470118205952074670360856614542179014021424581209843919694216916038497008396715400541699770970565071110952007406567440668722901754311312685174639669248955316145965703873412966279263741658902253644911843051636321056706727582069381263951802801011182348051714320716657682919151863380076140494090804683288154484587855983366312643098277098528838950870841326157607409574472193969528777688660507595044603258480756744492990086320203868861959995817213518772295517503296125555322646852713731301489457502818244502477650249196242647287375037941184262384554018690619097302751061521504715328754442779300572117604144378190083861127004077324699162637436445530602831469966493609517350634645394840748936839867869564790433204715690304368184401542598290151308883333623778076407182798650801669475731884765436456327516735869764077953597390316054167064471716978809407381328528198138443119233072901558562311940405109850169347721255772896897041168134273219583556364633374085116875540068577160454509472729670248731470683297294999250246079628108396640602546445555557725373736145911387918199853445433036487878277449433416690959343368158164198903342561296812967322520716075089323719584201994755428523410203405090751407896105239490722517369875697295116670397039811826847898853851008365065071268385893470435260053949042659130290365645618269409697062649782224516453448153920787981903257200405154516151956326801240732814962941092820388122009551076960963904588523262396294643589090369896083754279703510348173393610596884255363881970016749180915133502383391883043232842873989063514553145053807932186894249023405116572405102166488677051898803429698701416151794768927724533683038912630378472306528140361573976440929976215380794047054056596527408758294030253205514429587924885640774883080972484514939986212258700677884746041302344653811205531862079230963957795248084652142907427829050423072475114488331375615421915742519967903522827807572860557098869153904545528814407840704849659078543717162672468462096508773370150569469798012553771055281020729585867393408709703204555138721399896358704211140904797703501184157289789049922418755964591680260528494921859754474693504988083583680060334715198408079634469844594330339021118684702786758458499827117292479035804455405420744562982110847457942720982042161578772638466540708681563365957693380461341435469711272657728722089358829233053954345720053840679260121880472653419811067432122347431827671620907644879152252777634616360389003010900305802574939317923182952860495231692410750527971468398258971906930568360671885479865270632205155167416131682852608019679830890655977022470361858607594456296966476477211779451196849481585874221974296997807979746310914819981895719898972185627158850128063106734159463621907979624947373083455694996613310731366942047464900175812505406636067713881106631635861937737915078609404351276475620080138348683583049634668577182943705750287775892884751105513407943541413567128635567447136217353534816747935695662795191604215591645764545565693986064185062140626925323450684956716328644022795679356188232466924700722944915167239409098987261258279353809349740881942012162838728690218676755101474025294226765049087494093299948364039246431198030911133976648079513435475372700462679430278368557133403272825514226091026509931808013324022979960801230223466512673630720589720142939196276954343706395454745376971615197195861168911017757445332678740615542877450648608508372038213937493157766027178823461504757811400768501744152607778411936061442810016947220087123311003624628993975320521194544880089189683462235907633432489099597043629118616785126919076282218038213128431390787845749176920562576774375280765863597294398994229983324599483502220177078260374419807829668776184418889210772008259775310371642456154320118515290916951095169192094242462043697355203840253568400755309957808195683932796875600577565187666780213945866214357926324888807467744774725714658517906213177185157011051632338882616357384489018159720932379398751647944140714298256776085548180386480434951651529981419616049417222509690524974303185402140690570993871850759883802987683911232864972194954821760886453849327433019190604353970044800441096661711372229869154330873768879802283440363993603590139341093822919638706027156702385824417761373384903910354196322063166598371967455166822751169830069281856635380920437046322802679485636766560113262194005238371330517549730955241238751139608186132453871748236019462495911872653171897608943863289162884254651972590405962118502472537701410976653627516541212799648979422201557339746737663416256486471999222895664320805685073215649545128728139753322896687081567031944801518391739238858480649585303458278587207478674409536249503179210099304863039853014297004315513210189061718236644713750883082579666526658923440722698073874661000847099576269577294557654453253979544786175710435244489410706212025270753990926369245532407800119896158729392806780389526318049480324810752381909301490714112989344867115049241038328151854900350915917035535642169079118724338478433768780195522014380879571180651201070317488931394721826593690925711350870244361881479334053790153827938219600468250359040380637475114286368835325392926115593782733488657902065747578001809284138042420223177670838349830750900666774372488229799926164049734095793459465437113145964598112861071874355468918858633081974258013380395479857310086726279852100915748676739289749637015046636307472117064150181082113427406839147889285291263087696912962485692034308081337966316195392030448860080323840610364570892944644420130133581895011024400830204134421258940332995511186958812338765314434735220243183550217221834724346369918236902260481957647898936322704395937642166842339444658454561313853149280833323308963129396638647975431846761431987419212262851593087094081178600885081990032417736337720086673141154865206715085778863290524381612925313423101454344615871885831471435814916703221342237975740497243388310467268525979971124824950836077845496034279755996688127401007414421862648566260933680025990027393958939529472601850716178627824992317554502402860676715869664150630818764657063391751846466070833047537100260562481452881775310444846064912939494975030794156551351920842979776501593871326330620743249420410153971715322086754082018044222428834546577899237465393759792293612878617605484919530251596887616304104610700021412867108725827725471641272607924716064721918296933886272542733670112934711985663158049320714378060205401063120383875029092390090811370301407441552944869383432996885498103421123014814630881481353138728373470468916307425604348821095811358746745035757775580818144311620022578525558818001296173682124064458843397017231444381563878368400279374528769101646144659692097347246973377113860053760218076939655517191554977783977782123884984552504594361540097390969979727500060960720838780889891276724982330126611864370212043881992158159647440122004433504697199982907212350902716666062215188108578089572460560480247241179856937016059027419049735011452998152968131494922466455322845564825181530681255058596201803953956604038943782068012252645918500727633515696019666549426653191357367933639971025699855209483680675402120834553927448126925283267669163067558415130206381047429866827943779635635349923716946571821520879500589073982960871656987190541021174141739989332840030236787117195648857151517183371884720645555233037771876891736301867139711545138500021888570306869540342231546991044017985434498095187468430990133753159330753774161411978183390695110722913987058383182743828908323100816687775763423730488982619214874188965841293078697104484676077004491392133449492050465684888462391245068618797934598966594581523539551728634995766767901578948552026493028560460852113595571331467103200358574227445532081622836658473302458511694581986836757977307473656864015823642191300860644546894046805845241471311766921164159453796387254722388061748454192299823410880157497034980183318704477975869307436456679645852424343710475915593302943606402927215658045375570317012197443726419332450079747744429772556299712451590328880703054647480217748472369568433107207163471795619423624250459404700664719185101348642070461908799501960931111668207386812857278386091472854369043850438591538944291567676768940099939495545722448502175643944672633383610395480425805887224533523724310196087832499751285062056553889521476357798184679471597476637103497461811942428190237760813674689031419728522262415919841103154221389827769102947845505358694960993204478471175953560168757059302667780711939333691984115128061633166199407950862516597887064690847845629439361453479418975250461439459872490599201517027311847113625324867272512032209609717391529511917437080139666125634112237011482021041077556149206676832508963073358005594012123578338316249129515964617560327618361356323555540254662170598883955144492810642185458897417488470033182930239089955445990899710435284624243517306119161145848398509713425638266841797528511337451620919831110282715300287330816225905279349208730818142884141598143377590505871000347254149218526454405097332180049668374622834991017862138221023521345572629521848535502937926290606253808570584385251256369677317448423295300215201265135597978469162913885576101415184522223806699499632833639095532600969659669396139459117792742996821229581485837231708559685790130449806837587731901199473795042039034355893436192243032578931304140275459455492733445829112131521607652170640760679505349821208919833370364393631922077800129736728775940471422135063396786200329099938428136611443118462127355891960880736964716680342427209030419964750342974174403433440074833055269116117313157073465829756341111996115726586918685151161416696591102438561859398686260259773549361212585880757441046283530719847588717160272262315085939584580915889430511572388745666020748273084314529907951528180284439236139982836003148064863460543239969015309675288450318573953717214198170919638315375818205926937555226736103972819924145390153944020095291501537882885880168250437527424087121626606791515324719149885504527641694963073035394975923395915101212225109845904455935559936128282558543700725446764081394687513662043884282803305661160133798687120690203563111420385928310610952305206187605234818242309182656837689478790300167797683483754553570499091698833301765653256940789045813131406893416028356731954487145907009394421588297108909342625190784789412926931886916377609714261222783502379611302950379738892643729984349052683416079457210814544342102472588254173310869621967559967502959898051323314605633846787977794150631365728241694852432368019805032664301815758106411521882452336146446267264129100423573490701511209451158770245137561448265081351490339208284668391796271618558387815543890406100245786082914054731929436111744495960833672752377561846679143373515755353382666439665432520062057707085504190902038760082198054566881551454596184142564732467094905725504116170379988248769646334066557746398436973161509288311851650991533136045991668833651155406192520854809361907598210019164966527010761491452414507998098833968775351008736227450357749788301945279790957350461121125184319928959772912991116796494808900965625681440599842822701668771748876782713198564882899793155515590024714986875141609951536987317540586624166557334033520406886422800450530258953488918048793217319658387813553428930189755277984115132302013743649951358156092664207183355346408142841967480320865919069876362866852198859595670501909576686829077847652436320743967133960011974050245236426519987238630744438702988829818203576603230134010238746193000423734433478329264205491620792823386874287322397113879566265719795432897947414552867134218459107345461297598415845774439471997004983365888280914174624883283298163822177016912841847588792816564736340722581144358521295299758372488378543520366358034723073212235852080230954687119180718164687655998222722782428689438715677132150308166817951136060468553996451969052971525239832936996708237185565941495330869544802535076998867053369022236461870519751208234433820988947105645568980367616429006810883508012759546310192169503268222694215792412787878525394146331825268775735328728772804623217812686163324540277680279475653225349284980470377726264775792377589261441653173812827391300114125917101636327548205667407404027570028070518393037808867032254482877151900698304011478292096943280923930004415776503216079295536042686918915135119251595469366240134201019507484102004198255925536632305644542439542653265902764404697073983160833468944092648557945456000856648995346253035857296085287349149663000946748976308645184277550546083688467381777114987365040702782047015104234436144337756819386049866552232337605301350863177353315836715405779660552688721212535636624816311076520214757252939312770021636049496056079592327929663737745766070390775068873403208486617316146072790472069670575002306657691702494505457261450072515543106696075734501935450789675373080150555665764142971073501230905471261571980063102210169767466079486955664689614922870075135366440861369622797397059415693916523270487364264694569218190964048230120398789570568598447306053198633238670719779061906013442868334901470029713327913611101110919959265402109487124801567930882599922339125999006577151361963677457498308493468432165655764252553556067276641797675713089924577897113991991024723845075535042214989626168795739425159139293060823506440063379927677280727748544163178345291355864520206124823388633184372607396678613768572244518583339196451139606969288469973096258064250285732798792830116936944149744353305426469856637976482350848697022633150165375910253841059596317177243796564814636872603306388045425385798927469391538273419066602380194824087398194179372602650834410107069599038131325759585096890594557244235417926861143780717676181610515792588631204045999201628365707030869297995251154210580485768556791163590539722360893290074891922570875921661079874850040368653682857805952870564318697002144426495028658590731533653925636115086627149780214970205496670093774787060218171403146928853105025826518619096255849537503841762933413039887307317078732796356617908220257134528832246938427892150929976550896400651307686098444965968312348109565447234908883496335504565579226913611922491311711700256956265011176256825648152654888593977176861865125445742350222793240463159588077600198017819396390498948370744657249385160574755649259250987242604762153020478128028308062777933398705372721889658965182940257569874119818036499414194411316344367303544247683407590362498564322905336658302666775664531223231144157145204404318903672090621906392146279915506777000911837839017122874274032549863060458221322514046763645601328649526095188048400213916712942888080275064282071700281817350323240783906807745863206651588682455926859926169061205947392358663368756794992745658069474977869412781448909640674580218844789981754647270638693241455362965272933945577854523265635067499199066017902708470095110536728771690928229627613759600484895674010350196910509242408274885617290594614661538082829900016584095007439439064100660740576201974744742762061285807851304168418572195185595349234810087461776381483020166187787011489203357426219714720087777236068921861378756700702661363131682939348332262937432026828646517277845622534531617786507907357835328438796489554709775732098419614520275975921452549290632432080401412047112235456798240613600343198038061411075828777537603745130761846951475414561463163950961736090525038245874384742187066482054373432725332189361474133178840175668019799923495706885582335509571493122755689408291492759110528072575861788067879798728218867344711815799659206148071122074093101958132858400628655478009951733808136905270607552274950107780001274575896763028916151396574147345054575915459268678276021750682180994109685265526914955652730627591358566893515424971933629492250596118901675837304680896038623618991477233310144370301051563832645577027212687115209429059709672359098362460161519813723866178117623619671765850601278674826047601084951632984750723695516815479205441844461248693880877003507279857886009798436255242638429755845374692583333345454029457241791476714234813509628265734567075443686483646396003353090753611759203566582255625306905266707012241881559926582228450514781938307522971312281597829599082630689785448989930830865923427238425231469936151283534291405251191588754104150153965500641465646649169254181516815201455356881334262146943703110255989818681702703970641249429092584878740114123531812514459090190623516647248208183811319494951456322073480073524649890701946901870392902178350448174543523564853323753315299103215972725596563932890902509665672114468617714874243451016186310606347536897564074460364871181174877549551051276776604457990235994857428746486439286592161374064578002314661903850752883834074546801929358570730558613804701518939172506822922038754806142035505799344362505914554523186230526739212519227047530189909727874594520154296550356850280784968847390952602314644564497430207655940996201276590350653782719384883276226880273838934140002947400688747868567039200713975283562162987328781702296218168251853986441631672748472915069371003600785139836579933977320511879813511383250627902305831525059610787495263010554088455781289257915581839559047383454615092443284971328856229302166750438744376351026611473051807840421867629975140085374509385374026895532826648729394513308657786147610134504216035362081866131760635183525371481366960060603336974789064476638515026471644219827144160524762250989035845703208179100201031322960289101898129850847009037819260860007097752342682123428763136496225953284583224557739644098592288954451160512350979683277958814709925173703766059853592150217999049356588975661269329609553110720868106858395662807642350194837327350804397299210121970056889075359901951427676994377705975246201632733109572314392165089251667063676383153588831753096544381681625974378145753881206146241464826968757765677011409852548896090332324944710171808575138233866202617170572553629420971914035870733625264872126222650273198525529607424132810336917770215843103446779531138500188682665360126833570225746727907192588180032734369079724752260797934604296560125521234708295168039885876770534494475831571185989795473884135651332414289350976227673717819798081880777514341671525413885149160274052865364854099357723024715434017779294250648267512129456696127295748397725025241161672138851830564057184988495352551742906293231375387901496068379010572713971683994826008488163449004419135033945190212926330405921667011691916149245896555573678429381713385569567658833948633258426066186728409371274987924590241236968763192505802650413768689662343757299252836656719487210135062344541984173940426829310572829487614884083712347903332202164880750956729501007997034735630570556209501833647230488453057683691687690472572407907064553502135925765229256121402892434921135318658267427578942607070020029931733032750435983398737762236345812592290913496087852456464180445953260642109953953834926393357247251439057171292990766190922968073037196457895502419159810042144317810949758733743470829708894439515161080036428811396392940165671894247019513846988319697576672296592554449791965372063244228574933859194179561949951052985874150922974003319443055396466697425083306273141664771214436051247840855813707588617539859085912566344480564622691673860606229924526498826072905683073479812319292215930978801928708208966105261906008700534895095080586014590777880561887442908051228276411483396786329594790303636623530568440808075276747662852394849830530615757550384549701483920956320359941210547395160241307290655986612324555800568292008041194931297121886954763600478994405638672696668882621763716555430452323079057111772855057715425237309531544744558374310199346538551342144298069754782531546738518976081234415658323957545994855983787917194262951544687064085427632003576803215332642629711818421480161416867764183028689510694012608174396951903414986935128516428556653154648519990457159481210518245234987809085587825174459128876747891551070194428417156921617159671163915254888212634867061194734380379043195313268634476149007559018471339644535692527541933211497616056786740738522897627104156598072115043527128633220459580367269601678374457979854716599337244274981518758943148210931893497786976432374560776587198851210004437003663939786059560345037399662217862728949233027854533405991625924460863466047091259324403049506125756358590265516606656224105092428262282651816353450974049813231518550030270869594822806036424186379413033246132803490499714722611133233233163061822294149767913074716516271273836967518754127827440336384344172193428810334423961514347005202998269428012917650975879596761719413756731186993091782643560994197996198659929855712742443408162000180494879024213492393079516711834006741730791346954115209441959468113915098924301043215206028380679093265618397250163743297232504170118124992394704531692123468802897401376630052967633994116493656790195301945760158907009627511441755228052996321198789521557803403472150175026029329830908923590284204381762666110757810064236929315074476284932191973071382054555689534242542293758628396540366569784443748583434608172802211468467887746306239203548235184825514719246139716248350275643396659835981621964249880999322352841051605476681511103673744343726441678288175704488359852774432825079605993985335738377855207348362979223475751837422786992267138839958668175192903606069710067568672401794193612453393294122873399225724272686457921061081148170832774322690991338343449225709915622082044124858647403741331401631574116673998933660206852346267781008768328203397272625882260145452860899647046488877780207941658394147546239050096625499349650993837911805895570201726322959402351750110305721493639236687056755097612444136709294890754636814844412406477161363368841687281259486604852073350411407964712419711443713082501479089484578506000530246381624256931950521458857731268165615003522093956560394577704946747254062894075316183069284482206766672976633896794087302657104414328994317881028551061724512321823467843719709281386043531334505155175466532484939216798426318235742787986245002066928401181727112873269018308492283983054419779788928219142451061077331944336341489921765835319474788257603084117408523958204029045755822655284789315271349482986187730764005549335156698454795418623865291316945339871947186482776992984207157001988140484545949167815422588228441894250363415736964217034292367959314759795184747171726654436339248863919488621438902442693124375574657307422310489704133292089084832259000595830829924861209859384392988182543520452855446231378300890133664214488526474972871338152445477753299766490700290408409530108338534677861278217406755031087905930524743445176442573208219943826181706285937744844047654119944919423359434828596845156820190818255682703652538504088458705658446558083812279190992665722206771565851534255915718026527949629982528114341047984793595356503682488179704261419007361171241120683776371602309692226813680439408894255206726916045433756104434180980305422631448110808634166485492386661025464319871399520036212785836012155436613454818514442422787080243382600483803407454264440711904247617749288087449071219424984259084267534298468142336189536825164692662091671038758823868947431238100573858975002431043845533467788966213561782817996203071006606770392533640768333649529673292154209732087012343486317400815790644298019535174624495310892787290889504060903239088952660889715641137514854917956469640091370547796357481688744473846665650283269066711121992771022724185451087077604729832335154099504708227493530984012683419123934417817424434571186672650143916156836732627357106741486732579730585940686566343005595615514647891055421445670406082968045050290463538311410032835449160218746882431126633741049217894137875369379044097060605933750758527845081520224842527493559696646067576860285748551277889317329227565219415267920298133573609046542195519686919039922104783212289959089060958160375170549228509022610734379632983266983873334142210367902881311610199069227507884094642697679206105237941795100958719725867837721744613979539368673589706088997665530314369702997292160225019772626502727893674495281139333628823913225990244301759335378009126791317457295871805875638340610948290178477604525593315003928252415933424286581891807932934231103653719046047436687237178217253910434491996976647365502841662928047248075654495503215172536003579331649246583936661730799379183370667389222339584306680378313763264731225545337886176657515918212673047255943011524831307096383715620906573262211526426643360394606120082178736565089178616800412701907569106041076704042752151909173415125109779555579763692998317546344561153626543213150585084980969589018261213241619913855757457425666950447397770012281123826197467413751914720557651877970085237340293586418824304474242660579605259292236928633281268189094633908539589322644966604085021378074620314137286616836431213592434269453571573862097747636084266608253423808157457740036358970119450001732363496635530852667425145554030308200179105446949298824670626313491044381281026473926143357778621385151795719493316208871856544056430089763456511518711001718748698041143683312137942412048347399669375114916170206542280250374296425374795747257466867599724604483263982433638565356916377240966285547147305739029285756750612435517828137806375024906584460508527609753849513363304932012729770303644982344886873420293122925886047088318049206089855693482879507318651318132145137558888486153771617605107569271655382259629445128073195568303943757875381903732731822866974954617099200889998661700175207544229461855042716121221415370281692085700659277151442387231047508218246082574599970206109426755535993573719303427813758722655481348140254122709443063574212572350334057270673297696404250062384033479455903436584294321393408621760964115922450964501903338112338017580130505505907784507216470190454921138064302843026199064663428406226293518667872622385496435134501428427487827507292138749913242777351675634122429823436456638759364235573331109614981344179038732652951010583011742034360062131813108536760770076542313837050000696617596110890953760992205782277390099005361595566513559391109656077386049386667460780978511430625497153642635127790048828370568836931246727893212422056912625087542114735908904639810426423784767939585148195117830616998811743015301486976555714097905261626222576196837103044157696169314302814651647129457258498792340969023199306455250380067442183795960774878093963628637258615532809758420891211558960725416689826960153571932804578960018099697408870427090199387054065044677189009612104316392631446544977142391798410249080708087474953351523705593782104903984244079861904616888977187887421755086187384438112413379986213823305930978910583644382793263257065469038596804278703801446007567706369991035411001611713840014842207892722505717721458617042834974886386813205652636788929985750336296377817677382806141152158043595004251129468492487520041404665051726550669274308797430590677743450061280511977368572631217993321727895503581324079800996085682273512286329246319219625945443502850234960368534411220612927481828727521859992278944683200528476496759117171603509660241095621869116617085182135762105270303111320124314311222591410299939734238553713733780615915088446602842641777993263475150576812939471794298231598939582386326792088326866178774231057929685958712334815905709422824427244279127306375804912004822621924585807913555415106007161523094136648581745469140537258120760573883951589375205017661133960846593683196628933540227218662429195314074422800657660874536777032289071238172070139285700164317536826760617921114814275512511950485728663084918339778326619208247921105388599974327285333079077118123402492102774017210756067173431279023037025483495128209484044177054097561015747072985393869754858928425632430515313700705434139521503607033864015948132436954459270597009106038603551932760659855852349640994796793845161535396309099841537881776970187374726556576960069880234553368583743510632406010200837852257412281705625670352210825128163680183388493948571783021667716997303052219165702348586984183761078655347951546294436653063317863712792835569022968959712424153333531569088227236181976007853279020603202684511703354849982434436138536312121631420884066152616473780006494642465599059324772269545085323217740956228205760297064966220251504746693451161348574467815768142573208910474856872772097885169272674880299671748469904642802159413940810940881183515522319651059425663428793257319637829541931659896508031252051590524429040412034720278114556532053573308674684593736052468045309143771253505212633989748758735996634935172446092982259620859238524334602266091573690467158810126600909533688721999527923167137264499897780637856245324965838990061966812208389964497268626508978107884988638601437678643379441334588426712706609663658354949121811823714481530945655174971587089750582930012025807836286201849380950834549467020450792910208066573980000340966535385398762132245746130288834594095075639543173580060910878377179250093699217793877944089488445911334307179904279300080255071928631527172348419383646614331779302534501890586576216873521998762522139150844258856909049805117567114572334831696379862503475211852645225885428793319623008566910704685850765196473747327965910786932663532596474456304606474767005945265063026084800862055513822140329176858890159433211463281927425086861285216037381232884596749401843116519540675114904792371786920445227295614867141951342622135108832563296856146556870013186558893612158990416822774830953513784218610942679157884842402535572488370545126140119543316167441506993436926931442165630714268938209571836432860863752956265601213687578298305858396566781116944673866631407888311809711683802842419438327118772436248437226633472389012075409513621064548751072752439428622300169407266718774903865396426539974560062764770584587801425046327999908838831377201004521602695421079068462178839068851032904773970058542662877511063818869230046060338710117368263433878146580199374690984330209253589395812139443096126731453132221009021539035143713130709163466559873601233416340374174973108375930022514359324471235176987874951045024802320915095030868314139252031800569029848544631030582949894517522956640776876396410270445857363756939084524131525401619494295198966068913932205839253618552291533079310022061440592760973054351634662761124753638919085404906842371454446836616417856522498339424257988090340669156802530191944275394064444637965763352832800223056610260856501523564893869309389641285810856514931652239056546520281491870906434578319417168208719700437279776134579213571480719865437628465406384197212748854572643642831743061355873403053598652397420932004902328254679473129136819020334290591453722160778219589975345147893718283870774920269028335262224175466809283245879806469621290036185545098151263234766494870007419888866219716535656895698955082523355995792646237104053817467905384941011373966454706612164972082626976502920432642321355315664542291792366624741349233434840585083234439437117873989099026052119760904229789133883948581954899192441705182249168953954939466562432703524537438666570934614780089701066536767760542523286026041505076716738260933824474450786293532774649143186951286086080847663786602601972256043442359162272089161991145552700978937784320922976413583663932178960866012804506688739639710880596796000868379678333537499080697513491830916624158549711313866558405248173401599154447754985478115880311547937312566279843886495100344407680095540111121894241257588194261222302846990057717712195323868121708985092474298551512572355862516762330858141480007657074751602981115448872534866591371302709651994679633516521171671211371233650855133928356490573161840902804076788692809054672777871223840100803243803602134661895243532690324467666368858863698003462345101507150238088751375174103743709862962306770096193413136530499967980643658555133538126657257948732201818241536258281450411981767908602372350401454524646666556064723025714879175708660690725920998812234441039615597950070909656922085449203748835516906308368673592866824007803799477118803739181706342457922540441890220214567939664719927503076042411904179901541889845535317741255936728112856385171099736571590488331768914606787833552998146673801810785014635565062392781494567648848989900959018932423641062944529475535324933352071251553213923686856316924608885095322308574377601972455551933610931715695198689107267002025722506554216834404141997434517468460438240972786002154656007011588013524675309600301572366739624335028624780179330363751798327925817315340442287235396792819510347291855255461881026398659177515110826973176860759514083219814438733838743768666258513033716493266183383791529922332979473885794972653576227570106003310728043933063635958721394836329842375515550321836340467751331427326396243568077907677285660855652093690643478652125220698049676348689811119202142901198268751197844829074354342356976961336250752424619419882027863202575358274725390333577558810568412398016464317802131919229064034764099898866164984685291902554387927455403161555979205437338417486400913265978531514513951007688111700793533102286225703020911157507853566738753123795963421211962814087020623892287377420280832144532619563739773407132339924474001272252099398437942397349067419808656892307239211019659921653773449003772155864938452313258894159226020585914167973115161712529510070905557686882910566028395144796196065799759775153853065935023094289277861280928398773130600232858306020556203611308467996737689272701488235446300199214989706848608496901509546885571183882996046851156179100337611905116176147128315843875401097482745246316304440280716326288309590032577991385482573505125538907273221627397781255695778130471775806884260695884593293719903104684429845780045607204415596177696073253495793085896379741674359277450017096861706737972531197809444918968352026357779066084824345159430163866485912053685449979456678246570758561086012024340640794939414426120012607239675944116824770703695653231891733780254478683653918295774425503570226294321443772621591083229839804308531191954653419148495923399368344076176462368124462097039525020104288045661576561051582256441774423128634633822406371474966989445645825815306147618623109975232051377019671572722339724623706518022215574313503156979346821669366370574687922781186641613502273983645133489583779877977688449581709944216216915682377313510897939399259415478326654215346280779287921662804258012806238344409812594729380530359363585627457415009257810209639054493995227254531749138140561086159824094047346996597452013565558000076799577560188167119995060686761489064806441130504051842959390172688065593253665456817278944493494184883021490105955039257302677599140424904503434683870503239504017135299412738287325137148765963766990553870739906809749957648665596791416221856857605606807993370618527656303241454449116923881949016086620324002465046631229276675749109089870211439958476603186008562849517704465603386774778227379880563727179348467925885792480247446217129615183242912971696282828757770474277082156782916776037382712668146911303492308987154637690687138301533136276772929930196479201921690454787066963043051667761366560010423177275825782780351203450753102926565472923826209683091799969233245582072472123574568616186468082994913095292880274592105350606173691315501662327256890705248239235335154695519696398567068568564843351661411471186136343104189582838505407805370129426586754854080842695836221767026734835128350720634029324931467810717169515791850950875245763394743548450165190632663847795119743006178710834216506635494803455054450444236500679720152868361009619955399731964788037397058503539620977530737336395232649663419588778442427701403614838427410725587649913175528440916729159778273017490009518539218056866816620447017282826560101046351071891050637008292108841932507923433569188568160045617310314993858497628585544869111848179691837848772819746929476374273756019821778056651496531551779174617171060520997395164141512572939513978967599411084941897581727299695862183744172607412887314535184309715154564692233842285193017673209679417214718018219944953867772157602670839984141057538937840582045952446870911747464089643102708548859006056510289545558114869038639088209106575246261780585997538646570134813536043960070195933320562087997176006840949773025123788978100086489307158799978317205242528021695685547095723223069607447546972557842383189114398323045751696741976407915990694254431396011461421691206275823280477708916894252201410117179652858313247090821370427236795796953956809762017281441949895175807241977571765559925023185772190767296629203090521460305698384717991513042092183080372878191195837888347718933285441922559496720077607095720223856277231858630197873664876268787269245585585458107688330471589197154052196820744341394062459655580371663538922784823637659831936601092993080381352426229126064114542607990185722846971350629342182374133330596916766719976510303577077841975629504817041005205282493364682728001422837807928410079305825536085768344967857959052917034774142577350972242053344076993727634929202157798634401872660798348465119136131365813148560714418605263620945802271010879661645977327480963461274886848045931966284411352344453424245107115317532916433114332935584760150317864075974739096731765976727483906720647321009446796256850562458299797046214321978327747812539608698887991489654190112019814699444226723746750418531973840222377387778576695975320395437730163270595977308370821854398954078246339600003858143515390355501610615425585587057483614618204815835319108606131128938450287838460409941342051911800235457027933656467919087228334756228240505866802728227585284962072196984963473286919994126034145380127470361797951050717396551370234344334899225148576999595864987096278047545441057936054733343727130317752226289482333381446636342385255797286847459693717855433753425329344397390838480970915655772593693000088454273311589892581340099764123735536586610532694958145587944454343656409211181366158468546983395453139533243224894881689686837541028012605190239289261662054679519633346533836740344174308512151817569790041282409716009484693017341921605192466465702256892521587617440524759385695482610559838780350340173875732532387988105627135928140615394296886344015524629213902555969850115474756136958616982110449736564578689801164881144466664414398594400027377484900742221416422235941597678360915946219318095947244845388757411895776511844778205886791642584155994752704452949727652325147944087127685292080917384154301019588345133171121012412720815451285836976520109985047186204819592562331503524719087147156001579958139996598239185971235622038064787089098592804279433854260878274173978646326352636013563785373129367804250806593981639756736841796692229843991702529992865563383021708903740911075529294160359371361175207589791281797191989386445507554744522723903062590095487307060195179260648665999473254048002729717644457659471112794143520506160603764070172491081453306784052484488597760829823411352881295278539154047391571701914603562921213309155047948723489369181831104308589941107788743479809013921582169218565130813313570105470262602398320634368762652156375690703022005202082614960908886816743420888371691130586391318414105253485570059490917208612763574324999915901651333611395426999110452431849705998524528293039817350100858220913332000024252800422843623910575034804041081466478396138693093276924068298506162455771312695711720231696067390085423100919811145411433624632302403730874290144288328994561924539411244942970720382685436715474132267298865299582838272694016294141956292833363631314080228993258286061334615926791928781024217866578078002811937618032455478538951856765393520623619944710785354383857277923543753154784106528942958722832139953854372296175072619600299187413040455758507300847687057465753702026802046220947929374423630670616601527640032765356090228413317840923438349161345051717359193270335320870222651936010920095759034605162130786103492388602898757201149706869638099815932814141698498823847102970998912924783953097591829029121520039285636782986949980239683057284299904712033850570005630256432254947445546783177965144146214222039506646806452667068973960647890567954272337305506037511099898152378886646200468045516286988275109677119194473034692115079844476025454775457927409812949503689190589279630207264698619393796185776206870999149929450357225912124502001761359008860116664530482722078719666873188626150981644232208322148931332213295427494525763418091564484581984390905930575020806908609570274585785887294313920559133796255566640929979073626807892128343310013203409625716593091443005543215592102371271141121949363020108333536000957098437090640116591770353134687870973743159436247522131169321665300131954913014083767273481190145076940488410769050587446166001583698741711414604829561827036244664241568016079951697565998299851292232499682024425595694131426004265150185569092481817823749053923930160466913582119288892193669796889490751266764665223241755437649397217086464862866501893316393094355826528519992934997180658982414373277461482301638285927670710159085381090252085568030232855997441124574783145820588181386913864513977233002134819792287170390399620199129368724184248857060088621290093435748363745056524116725518643474748385727751516637403115826529618723670656260944096852086622449515742576007469726945758584646424293854291144001321175647913358702182061930563954555992345695840665340559590658153508166926175061724796417369512284941228369898258596031162461295915508108593193429870217099938849348794193395927138018077352827734591937547741507282853445262637542623698629418703800216394668103650832705756369543654159933159702070859176567626381722349126374336835287598747608950373129248448987311344393330733166001341776565503094085447613694512636958058046898774318681986787098604711161383055695494481024040406275582913128006109802699183063925982610298478417846243246877444133676393439240257897348878574688302828323655574900042117899693425040587577295791132493008760636158075828203980150524360269704172576751051512099913190277156876086171728862182621113197336861414161189522485010020709932500350437176738756905418745329501527884119425274384114901221008785372255205854515296839068027589399362825995056116545360748434438351151574312418725903154205561132324221734800410190275378666802200109348593292518720206223342025470178935334075966939623603984469252599108899640156238712755455059708996656834369801642481378714286277672725853141075384482940393360518242460803340097551408203906275746070401066060616496940847161897539616730756245377065709285258890936942496509833490530143955051948444795901835904467843436459511376513779803629419045553587700246102177196139804714503941318787501571064887263174817840634249705738099401584790525271370585368299460373843222008821263326125989147302279431373858754819190884685587761062826788259008994088067827796308413151223133798878364740734423790540341621227863335503909652437299360061026857382074575655874991006830881586498877753334163856851322863085870467525688444904745979138577032766187091516528386697547929165773116379463673693454924253623774094842029865957087871999496731174038070277690157181742874141039470569618515325936157489521097494549001272849886772383663169314108775070243542839968732243671469032591802245660014340100127422328315807726825169649329856332059405921222377003792380783686936672177472685555275899442513041461237011647578919278929923790385423760001472301315404873619281827125245096612608142959874101717575637489153622948892894199981262503295774801126340929942435396243864293789916948701980094241337935655352042243691155053446967116088209045112537952931282363374996278384126197567955085495253930429579115087679094618299266602840037225412455642355295271003283579826457394046668015460613155353605520870453148452973195709772143895009365774161850560634365218720033108387587791793310872544721541532216390002241137822803722118595341915426084681186929452737517647067581625931205221112344210843623196779737217134106603082527688162229512020617066796326000824534265715492925121800009722572162286622127094021477446333822644023048077687851187260533271347178180338296338218848224393137047692781101335916537924023685977142324364591001674647517492108280527989426628596721676787294160677418080219675748747341238868007027976607564709971924894895082031420266615745521890026322478534138381685977866546566848641021836179277382712918025547983375423984047725216544339388755002568265614837858834649226697264431523970369245207858990490781218225223670453133585539472363561193037223795786120656326304736915788528807750144312188604503708438786966294421892311779760265932609746359720273498311295124486230411531221917558050996903127414063595123636823416419880091399111206199662738044862658902271953346392713175959464238458837931968353536783385080793297819440801975818751644518927330282632463527261707423429864147178726851788987960846453150285765513689354219204154719672468525959813188593333373245184740489716111422802853813040532500911809371992589761410098672369979543384855469595259465678636995942718186441245397333080248945292521823205281773377299763639228443117130862401766976508704897516847616787991316053076259304484813738538515132283773299304133861467805392178046409043257598705013198249816554728826098951662003638969137499479623352126042845716748668445234748691557658886578668195591531812966215046282336386294337211854424173236591690098128485085474163278344256896680997765495014822741757734950957008710393377269839445423958710241479186730095823168688458597778905740160542621492692625042894706189957629760561003229336470461805795368918554076758909588813102175366861883959081425202522775594500153455140147015083910331414013920594367896578652842958696733466756032797615122087469547299370399966456083081849224805902349088536675660787568386696587330533749082132891883894309889815675277997110450233888742406405275916821784258158955533340879077859501195001344731796588516444457356145333885055904211009653129659271879358210953996758481191913231587203333606904432230026266514269866926300515220128505178561845099605169203602853865372557106337513777756382721684082116803676501246641988291998782147806860715618777822554531107601967136393222741161477002247573528214903158224993354807686490802172884891598839223069415897668938260851604839092402617728095360854707043268637038823445328742663651173630677440316963309663027329567545920709352743438898511612557310773617709259075723847686888199439323368492505355822536845120394716549234783258486933342951075244600089421975797118835202981598535740632437843669737389242099560795012247348981064815301730825584950289128791144117997954220786787526722533975977628644766407790414514753550773474780391303847558304367320729789043906061081915490797087037722002697839768234454888859315204947998255579137997191491535680246064329617690960175545206007463457448774178423871893090054115194276289965194554851468353843863362960918814388093859381852856334349395693434740362895031999916174678736404118951660260436202704716723299223063259154192467433573409290767737923828347293935072830160176899418058869113959486508845949689890594828908431065181252426230482147922373900834010520484537297929013088232190351464647474807183130591706943082214968217943438939959691116622042985278556861208312050600883273762873712935345759408650005014978270728418986856377290579429383953339948499395458808045155456804009136035329009365105494887640970250294647396408890613551455334293499504227798947183941549876055810479456764514094042074401638296271154875753296486007373145793108012596483441620649700028201391600046658679223370154130321978001135957746882910138270976110925410457316573272863108068288816623433586600786890229251554828498409566337910643206104786055614207233430353482084837039036344109008405265326740337977679605160103300475673117748705598642418670144522283999593133950255882283283099273513655341176404016802793653384986227475092310884656723986824557592724818725962766371774854277148988463732601891937352305565493184914557636964749087355168642070493530804677912361294197472952115759330048071819670892739129057683941298277781314019803287614027420910686500189208974126826027372634143710248109222929600036531299457113640772607820327611508296118086525877305494145658875786110944730723969301765084356923900960943356693643000321559080185583553233727995885546034653595119677762177942356439011014187163498796472640680522798496990755241107875435413410064826423500317391327121880079906381226195536386155798027098564066605740195229332137965024318988335586598203440770713857129870723575475545421322581069209519334004575183601282423720900008951537624046354653109560821686786909973980974733732141052252278795076868447586017418345739319089284249540738444669614363516171183945502851900599116989844706782715522442841733176900350616210006563189573818923520734307727678471984715300861361523221830328115435048715835860841486256657826412276371979686589715092005820120100130134055873546483868498848638416214070642569479249054184338972465364756785217644838372351737281275838928065070300226685630478464538303049372453668359816255016012742585112981485014944915336401360655214843842504279019737873706095872807863973024987114215813624325711905034691837710318446793342642498376558690698139476873811992376606450503751497254500897863700973301040931231194566268673730785512857883677653373835436925202086026777736342954938304550403789510149054195214923245190997405038148535182862818095442703406351118003367781568481560272055431640083129727151757396708127068687617717426782648082085782969370801160618038499642785640972994340771292957837032610241475524487574845199846591193742524558072518824021489485043232912113824790023614782372058427022248601654892617124467731766264466970630536149264793048649822185756189956468742387806630788961014662132638064217962356635859035028538800117910730605861489431734189511888814029774168193200686823562457187922734840807336211995458526535144994510552460580336950526107669376988872564742129636047923182179440512511988799888319410653580994876799543860967919789445713222532194952414841423035539281180127696860464335051446976618461560425654096492900905773862736192643934108683014108267310529042609302384035038123765764171326132222025605897231528500322066471716270812350237344604108914402650368911629601669487473333417484113775729822678499567460046002412027323439520149881061708653884956937076886955668531709055972330398292757032523499076410827194130121300772629094418139193618682576145626116216289998056421122578638080131628277687648740398415396598763171357087396110723161229104174081116598039214732130153378719818365981931214227468766571785190210246230834063082799147543549105671285690290990833399565230443301711332571073228541108049841120129289810371450614662929822680004807426105992656887850178652411872055049216553088720349165375762414540952524891292774774315167792045406897896032799365002996273415624090566572512252686813857082304206964191578798130405273577914827963610103885391226267845858992246852230917628751726936446892848648218391248182456791073202679771915489674981333359676785648911061937504401715877875812949067514198098906945612515005807583710897543540925948538274880497237803444412793173544983686005623522002231298172818250723719029908063393325037877364705865681721477771139290122673867026602046150576075045319664377670751453742005635795522539828172281212268313262142745112665890010591353614196436953355915151254374594992479635574153193375541845415160006756855997602070613974387615057021028063537571043475899084352172814695304988346780678249706752891817389667424184923992757290359797223374773047076970089491960320957267902153426473333167106809021071523246690751861506629811910080882826914678611791381264792156030153425420795086359332857658526360730687741487192671097908011185488813595767915307264952665804856072609090211776558959429188040330734178157008830651907759164762321715260545490458866461226050078602039612290682669818774338151722526241480858417946399948793613871513694746178387425214383867704654348451132324515224784810863024999734875555262740915265330986368411847752858950971685731453509875197023727468292002793578166773134206926163442523621901469048687064902959104563334604348018789259095997882208141472743865990371857809285715425499822346011513327724484707946616539268524719935978531630051134336349778590548468612081162003875096484183265339863148587765199581206263343037006279807387835087927429872202427565521681658508677056445892435714755035327569472966634554390625374771142447593322765232488087786596526671752175929471269418520142278002121335565058792992117971701812288306654590359308978985849310625823389190246246716861891539787664381918103879851233098139063724673157508774911379599993615343474304269425047175602761382046107048432862889242088725753627262719466583159659452582046641314937612345090116666079668966243065111678189763252423494160712380781021239136272947322891166569102247745863826499211221741295301944744314808040723670328260116653082238330328384134541129296807998269380586374760844047885575557729906497136689148618221507512079329190026229388634088822211585904015548597949341403239368739825722037682787111614347749069146078008065179298999929337103483661139896215745698887045967258792163881618566810024330990000459867343564530298338528253056310864488966884453069536203092440811121677167057711486998461757918929155616190553495104141164889073939752817599605013259287355226606614229342298009702591802232374135569629178570578940360196953068314423991371099359953434033506677628299895456091575034349481253427323679896986496573590801662931478122451388100826767677388008001824801060237771500924730680503429726544223921774652901117371848781420124290508575245974185605791129815018372582220541645067101907450004649372636349737645371889596881290153654741955038804198961416941724867083027772523282592843289046808002903830251634929007627855011193829215771804508519673104057012569502791475944592595222619688408582269518277974469689467186510059756100497776276566378332733099698505856394421531209315771735489052172519568576100952982477329253388016819724868755381282064809640170923441379322018610698762118628781826448904976649753606407962829547295603662964172870424074073153163082681356206117613229725422215404330482658974506780091304600315081244994950744334310471056946124590723865337860591914593020777125982583066170274911145740587640738843501472490536583222784204916892975036354028147541672619497531192348745641724780207472269766390125698482295020674097317329788605126115416796102256923394378873273047086929814674543044021849341042051334006861429265758928063983752972524775183125529043172775252206442707187376753473341446367505503359488904175359148288028897263121281380282770178146191576151890813269186655093788403883340707373773394402760011719189081903284381937870834412990379953792513251269396082718098661833066653175215832057432311356843605083191515910028716371611230874486603664273814039506558186715711726388788237691601619773846448627912022705308880141925743254802257710647101864810503727071734169346953258838801632675824952628017867465845768399176656821258470879842988445582408522773131063316740335461592645665523714859121492869544057444211208183747860556745189709148473295975677584209625979525384230269379397517452365135842520958795172737988871269406611703771797203198000439645245589397965238988469040182387441251559183585335770294287268894600217358081275594390539938918123511741602835207872897552570544356449159986257844889507624285423091683926662885108540936409056949820694491348452738373708289159771711612354279888357086221940164937764847084471961237549421658324266354505931727977173112981153654674385620420828042796910212912770608605826866709287942728715135267142309363042479631174884153948591691241439437242339392596446416998918441507614422473282694485463636208972876609341690167922046440632239916126635434194550430374317479697628387221011034956261115451931732017185831619890661714984576882638224604231005125877272854481503411557400320815845213802959385973998195175160196313231844407375990152253939646218023061666557940282999028293762325792420220387768803302308774572914402692279238102874835080613955400750855559183522460972450994759297729742284840492735222332087472348554660799323385243141296685024187798112299756721926370782438133406275880232140239708861058977196270389850829814637765281888375601701911120469313274587000686478843030301977640219041327919137218352194759804249757304744635604134200711250598960703544418448712127983079383410155573532065840412095782515050637253125341584153951514325756953937804916639255937122180057491950293328162421307554796992107882726371563488989741082917123591752177690718592781521355908352283339798954549354061144487852060006000226657031592815059561213947316963344170588661821002360046320316371673081388113841658665248492044789763485657392094654154912644315821263689023162444561493169811535998393093735743866024063131580088163249925786303517159268281355617228223594121287782172852137235485131222746740183239347523488405628142637393283245551557665552446453564508756643890398355149056648580485432718496383987116797653624572484517764530033747109228501852297218171347367205000263061196081359283728617000064484562436887486901930452875726616729505870799081579587826854496139846170109205651551898091813622044644146775843914146593406893908746078065400493142520704292977519446170587658115071092083403730331167288292599637105223981333949700002798089166173652566458966442883922207953290372186564989046711057878632824853672181996888610984499334333880380235911703469981380830911221854320132444381416220657112881587653392910962083667951517757253824460417850537071750171731514958540476276731304072483121866887197641272913992755470566773954776504187108496695077247185779262903882223606494233214296614563371837977095881265563312450888967720811000106933494828379846224288019230032248063521090655695560971618965575235340156259157884824401595448411729252929940575887161936017887575182954014557195639439221376525000167447968469648211548112758538603901436788440958428091952188114844411850742048648006734504864366024424832571640993883396714659391311739296474074132442768690920343225374876558671682515949484883218338277734276075659503276241968488319438903015096568167382366299446093140434659021251179803064426067635698998029778433202749644908565442148288438711462205861663033573891978444508600521096256135043789537664526062062222603636125113166782209181385344547270458954966389139249944872648466268470442167538605940723126684044982315615907952972372006894481681710877455310284870658708153216971636239316472283263247942392274555581634334017456963689482675681126254460288845457795934195483628161801999463767818040086238113352457577270366067620356613320571860859362571895960669949826224987705785068368372666462635145835527413699505325730935079653164160085299474460888950636245881373157281679679661743744094175559328685299913842626806181148466870499200958879081111790891941925969386191213946387820736769707795448153897133557538741917145001067630093028832828776015227137742920655452184298102395254271877945211902145711760810097400463534091255302636005836236875459817217960397674269066256535406572967107135781887518638345078819709878157550565538799553978475142288084289266866267607793291810237317399123136764747516730834228260475435750353363320171378538282702620481052274044145573240240681338912204021583499470259170671653908254249647521047635274404437127739618397444990750354302318395838607124508464805867401634747051492019258833868792122937809245175627915006103293502446698767075370404487720417379079634122967299628439220537247243359906680904172730297075251543071419855351054549637217453750860471750760514650758163893224980266995008495380171957300404769458372725373864932758902993427968749430112283403453294793440582665910246309126590434565076754118987972260760671943640335513227905629676203316481775638295740570105921136082257376089364944172118318225519074936005208915111355263342052314397334176159672113751161572128824945614218391256714039753987283696056899858901810506103921164696086343149104443632302578928522935864525969571835987046157499872520355951635088811255528362033436488603300873802521211900327707544388385737390717348456334687318432101525841701802502550006915377194469845205021816581968471507454368703309128753052966302910759339468328798800505665557029947215633091137761495786568827499396791979443381826257705177767218459229165221143903428769288687306955146010677228686813586739933941172024929699738327719785329750576658413171363080444030053854950065653909798705918886933725646533421021932608563717522202693379927460898114669569419450392446716492339384992212119521097935639178603048583177205630738283794528150095340926048262408035393969663397141187451536768297600324135773906726656438124495140778950846102901936397030358696522168185610820182488699074355756316710792897017343217158444687860452757759250265000862649299532133859444205071400309811248901434188631734563082194461168841622907021559055389579004521200926568392798231044859081746778684802888168756979744525533438516799332464105721073259277237536227054807005352121153869064722176529161937352322228590754101163755092732350907159245704499178049835032437017893519471498269924112549066380111563978556436804089228058686037638127482574961765370481523787122072439810493934813542622028401264139313500997729295109978873798438127165535915269694881324026785627465842475679452184160645231953950931150201769686920487938165232170885684094292976864198032676228166464531396410305470283802050833932011830460252735641516654844666600584354700855033551901173258067684030169574061648081231003356799364532454748863221974876896948752473646999479535748221213561882298154736357609813889185504846247848335687640377025081110085956224361211206068796349198463021942542034584169761592464630154107475670199932937270394744308354007131038190793173255536305840150339857719100228322043620505491629779837464001338491282999865046610488938268627148323488134622862806976783484562051467379194778494745929842423810543679082429157661493744552491510566703109748377015889205650624730687571817027282144916295814131565273759027606267432703414274253659545486335176592174396588863049749635149892480478484030934709609541591492415342646649142360937654922153663138667732404259867165147939102185396102326657073085494643945447614022870903980233023938564551270722867019198258878665378156296505548736026876866540269441499312063261908413766332373547657896524412012920005903993202070975233385636825352531254563040334689866176213260298870316215595753206842533541567786454155921522576778080327495591648764785991242356265741096762633283913394968536833175573884512528377231998950986149762530203117301666489759208892686294587806758083819426872318197545589546390372801947208207003735429974406416820592648066405508911495117814265167096980876543892144857658931952186256922309469541732041153628170581281380504862291196751085918187332993507669684205651442822010634054354938189587202881521584828050923975824140411752695345504238887988161440459995025524847801003187369540304334845715305109458523584670703174310980620118216209649556718329023060926042523598644816077942614637002136275145157876735411465165089729822930497999669071233486277778269486159417541781851543522782295104318468387006964746157878117755633626050573736592978633404536514527416689161850223533773457005987979558123320591144386564307303080784472340481388125153767485178567479131256209324684794974103650050965280970303016762978442404695163884035779549521590520622819502595430596392515321843644717618543650991816443768413271295664067128328868461740391324981695880066213292632751804960019014054840604837258851874831573597407380722400261031828723214057356671873078529148521562878584953117700637219099669004638225868750408404406470093689747586109534168727436416403191639010998210480327567625047510036469924481905470039639618841634188711560976295269636556547307825988354848842061141408298663038690077050200631643184377565272235581185811223908050870804785489296260750610596518757804206377920673379491508593197306851333551149027098438791752058341249827860210122489135798040429758424770159243915890171273935180489469191431958726615730314328515657366345791334222536732480863922654145984974469842635488596376448280694980345506163060989807951866038834522912548874274758932565204609865615875341770618543542162854917486454742405799522143153268576019597073243957884485602078945210008540888063742037820114294019608862267482478880575211470510613033153700687366790913472605121155419523815299066321175999075033829535850338033816534404563161404855053806150902508903709553320527413573866296425004108114297134524715065561857748553011396131469219877580267256940264754823612478813288952853227066480040860578683494592320809450136787534520106562756626672815904566949421986021825426693391607883021543910021123295808958479484588309582057916990874066976206680124787557847523807002982160483685352122418261762118694576919172724341063927247491260907688056462597585622160939862952613599302033411207127994280012964541626732604021112871296654046470958168266359486599609585013120959965285235240834113655231145054287719217857899866312358099421932849736352857312583924330534197898499718682886567622322040745021478686758888974172916780277537326636508050030071472334970484152485401942521067447349613945897692994992587674805538470088317632794947099659073697143532922800830347161587478124636042609391822645094585603971078544675550620598736509097501884149284984545225447493475132167440559250926354242882088127197843904463525767245278087364972970096848237375522556594394565150389340402471527427696533274900747635885343670016193663343221439442500988879784393245456556814671777302874978739819956918998778846403255192953841625758354861102901812159024566870390088143513226519117091761058062002187635745151673818706807636650312323606472735934505602070159382413025750267487698142583818388812792102054291332120805912478020705891404945747403583135621909293245984386778317218373998074882971052328677022430371480725098947470985479025581660328039331736588969177357151275832560642594305582122602686956269092594784198769933129158367811763913950271371619768996687201984933115911437719556160469875865106831805155307559625396279921642896099044938098827294162888684937735853054796748147700129561346797605626027969656315049440126788740985620389235789825861707338172020787490577350989557820808882071779805762470803989559127184724141964675528069435991910674425558731961795675420422586140256789566010045441274012755967161637867335003576716199209052335651332504991659439776114324720413095787950779167298976071035424188047264739637076478279828606666155313191261798329380867272852608217727483515108074462213462839635416704349081778980560395145055620429042425961199963621031123129928995808401482656627750477140196057754922669270942760110857288727966791340502144163485843595368728175468980228909542774898733995459045078529636506790969205764824929077805621994642365948032208338441436179239245395548886801243021362187200743499866556680653545161715300993748836640763272603379818933404152026650049549420615653172447672904343926572228956043847130107936513787763572186006988827965881704682783909876421148229858079687116121807616837695427632824305492498600984897485521465270625470776164639364613698120011295842100306888424031006426476333866086160390479768315876789084712626736456658704882224828364561669669822303041883129880186726628218568648202068275934102033930120573294828179652209534109456366131865055729345164256309858271695249907537652346003140876279088655578603436987377662912590935648435692065575997167593298413917443068591334938979838892223689514404645424516101113619571659360114169694063747382022314348774907230322874626114359379775061880172914753557976860749493904131030428210430892105991866672620672001303922296641989047566015097123782266352506270633658445660807882484416158188262989222781016509260094692088084096662376440911249902870696409296340887942898964272333577654781291561351282025290805228961410688519623398822427171216337558622925676134577819546831283484481442772670852330995916598933995114352578845670107633782883350692054506659899798322000369964879972609014655487792502411763629653079881575060215824048508221007347020126047725879633866079737801800684603556791222954106067291339008140691667151915947604430736298101844005983090556310942496797504282935743887562744133415722774719866024847639947561868379705995154667850152609085871127183748917454012545642943190215194206207964854796006635168849991581973996767777361620937805380878889896249460940714079171262625382735418530968854721230295415607611571752105208956967375465815847152321428757474319286091504562761677962254552610024544448962234326967127039163302509745191410912852933886184489161549207377149935098240479527789814106824879427636446198423971846537410468445446712639306765601433287658209082985314369148701854574433465135405675336045158013442826535096584670320611711235947752939474148181039977137961232122824175387650379101092756628472398391664896281708589108325100525899573847609146247442309538625533257186987863211732982325190021030247634540930150084047744130815156090605500124681961169909011129171076469964836302178457017558531027512737741565425858766627447334142319601613043008350440667821549029433046173385246107494529597592067115235611116159209484415316925311642409493053694348741860670730714713142706647336833315596970399475395341595819915857656836271014532928813899801723735011310294768659677620176126697334631135382020102313431457868447511834934116164140236383672641282345815802289589002006071226143920514655827344797027660068609425512995489610521667525036870914514126187120961223433701696420882053878140587348440361729567836150409553598046443865763712872308231697902300317930761839076967679977818213154380069381335232749098059733382149593017250136457516455297642404027711450503855994037567114236429283364056708223287223401189949485652913333303711404102844388525781627188573113289851938324360374916095512183100212608568655723729905083888776205485500420996892941218496890280055541301791784298508420603129397405226813764048837354605454761500008662799386972606428813131589437810507875149300454040709236391561414883373205278342165880480235316466958118986172556592557492429626209281595114234364147627458682004718933036897399230877979229413890727677207439332110809620832627732223261179451584943746159125237159811718980296519822809597083471223155500927776632358847947424547109845501600986374373492843378459828893415338929958257401450167297342086618464832281091673424184822632807559616674248587408049305464211749763653815258385051311783499803669119518980591370856296946118257931770154365780654262862566931356402262538739942986971528717566386220349672827495026663180416333346076260895738816837169899528691973685756741264073714885207035838390418028818229552888159241843330105616633238563387994956016800844455900405547330469626055895297080734826918449091739210957301846134180006454899232062208235611720094590949754686012669442488820938408558129703562925830933346960477814500132833186128625616490577579986642518347419780494093087507496526241013530339760154035128559494816779306206141470830241506685433168062961048573178119949963979773557675790370390732782609921272365531193711857731062954954231704524749805544205932147136680969127217489623632178722897411693030390867427396662848353835919652988787306794531730148817745734829104448508047597046695305314315958184431884815003210969337777506171822026536166308959051274459419707007805713939049938657985854322795382920970952225094635502993746809605620762979397632879231976924642906413902330276221996106984601716203437903760540699817022777707786070368538043123816560042418308920512917047196828349388896344386022809161843978221967898652280254828529724035672241285939464990509748722012467738735583881727971748918260855664064407361647465869347899677374405053566865415255302000838045337816099750491055909388942176023458686012509580857944207361367106391370139202539812562604629215790927529194944667976644432673234639779496429193858647787445418771386635249817882953153604412422157180292253443393222083768851917972641665897272559803385388069349729132063924910389828753704620996849508967219243568808970789172407120606867641058710914465259809223374460519400955739390401539435498576734503561912586553434141068317594585492457955199178291191638421625902161572276114952648296964924753420937497566404129772185808076934362318740610703652968645466098170093920120853802497184157888331497466695247004523757237427751356434013926810385428940040687019997082040376408566598874823872560092864682994149453706030314984532319792483935294820047629738305936249943712817264574787707876837095061108534987729370789631024640945336941166717910173100756260321419393967416249703151826743356789162717860550565300319040180616703823514839338033137943826935844369249524180500549567426561420571093384239168726041116951913210707297208371916548155524382693651717201468314885279376774274491238698583271985369478200816155437187243920442441082168154701631598808405744365236509421973022694999468137455742327627056561392036721506247496958357870480024970296831121813073620222611971008274972018325867897215661434669589024341116731123768929695024170552343763888831152606373402518346148941149255924224893993309984414836240312942051791459964120630681762207026735675252619469460332003617429352285807084370089658260654432542374593642382001102341940090251844569209294904073661819211393073616421642577620791878118607471308631569252242989650919626195265324730267907459935842940221691741462190024063601676630702929173186218623540667528590246287722680763726449174048737860395360430198833406370833716065234066721375310945153629198316962437742713493170469122647487388939081187055469119213285956737215248231836532035270744363792306890167926186823546435403149473472871678567534502671439301196116724688326327423470845404798158776822858890777408384132943150865840594984815315637470005294917123257944385695376913822097263301322949470051475173786572375832119216588925788715437127045765372538648536891842945544783838562021020053138949655553985190225520261017012680890716058387071286440051340886709851223927617686512093209801200394891848149018263676069638157892418519129615856537539221589955038021076665862602436511387921978769794002670772883973879942874854599028944161544652890859366506749616378277511935588956437801322999473352575193503011663280130192447712151822375469724716134052651372378397312263873619807898554352620602688556960172027684341582008518984664287933268540990845008049098484426227731269684725604143630855362412281990130564943371471673643991974112731705328857272094397236093826682431384504306126928566706807039024324037371143917968963573675641011370091759632286090820292369554518616256695994142936959772210494797116813025564423578577595867273092221198148127671265235795218955169301405501145413247952523282021014350076744965500700975658389527384714077212805234091492597274979495784970680555037964225512681476108166584121341342021011061469089710389533867708616733503564365789845184957273146136748388228655565817989479876514628532606601128857274446485721216292871395823805448437061668013433184784304140639743109682585017652211359499676109590561669901867917286258066695933085250708610508308954599873097951377597450040103622480297674822420293985386089586602001091360550777717454051395477605371136091845407423133722645747466915952842045430952759589486881069283318596367130092560652204276960187521279779105936766616563057559496276313305083697117755822837602178104839786461542578558621640476591653099741883746145558016655838496312387822555202292046131378878882078229627804957636214304078287942301300786822067759874229187552165060791664499530946780348431020623194092148424930534459338160009385138805657676395755421574106279550708914640394970539151133522152249521789345830205831851040396417912665639007129885737224879037676498855209402110598091146267668151385620131976711399836185189471382455738057797554019777276137595459518861692897624959333570534979662568316597401782613653453629586612899582656442878911088963212483300767386799408517632520418503299419730342088594857387955233347659844494687297291507391096081332827924331674116386694082203188310067487375565962160827509150003238102561292338510252901569064545266420120643431614118710024566785919074796509116748929037566331200988868853563504151231868529229334128568742268177595378619148562675737444439010450706677516324600925838229174171656686640616077177488143328459481963434605011331611717975259868722647908647287708828201598856737678817319424510049770551004265851733034115289163491181631280362182463936387376749252036958358467751142269242314389481103454774965824889392627285510540890369761500908781051311482348925778895681723795685999117978766999029363779329473941863039120748471735929807280157643662824160185074546380167493299714035598454841999063434586188558622286302933207223379925638358756830162258435959180052048346968667330042353599920195586021805762120691851880436592508065092918727989951911178388173687043971843977669718204085798223513748319045005493136071990630560388255024683570970656551023213982381910775268946060847510826445499688172858008574867967014093070783080504417728282845894965297019530819043130713776755359230988762834648728518958990310520629234116114910485903077532032598047166444751514931537657732847766508042323813381592844204517295921066528360626150899558287188394925660045282724054946025861381635455090758768063002703233754670124832750245107488251470885340123626756941018357074917604969222677915873070018032014114922723709121002252423820719733851484680461360564993719927982793701292531156103673949382789656245697418428117704772681811703136995089479576604916312785267555848146590412440281095456374570061270802502099348270864334016498470267641560122483676598503655300562682406078523582505804377550610089305658621258308565009119811156155886606317873023014978856184082073713664770975678231660400848448371769396306646218350999658232037216724474301207677562171169205406987393001406267124710622032473304430102271536383795681999606364337474290423747039359255252007692855326989441307481952637817993051146784277490715089233576551825284293952954642681779692095741601102857231673850244264625017112305912916580150194179264444176050816772405018970384919269532031319548996759194261267727020187614818856623891446196791182103096476096542455743956154505466112725415289883224911620664690453973130287133030375562266399598441340032009050237522163276089679158692428030520512996151279040741190534369471509035473016093687637953081286625071104259360816024916741743185242498142669216102180777283669345798089775029017454132217979821456070265196277200471482936773634978254676971187159892223248704188660188845389479532966216541767061299969843564943610080508249892469548667298202163659448455320368182091996728604606518570571310679542248112797196951393727164597854796563217163552341697462104384650984789978985040521817823501917396801912116377553862215687082625213512061795092637934172135910759995583274561067020942920533675421501833910150932351499863613278779305889981697288099018297004091003576169713058283256249153100372922268599023228819668929053332076524407872984809621759117432219720219391875451048624625238538204929449860085350878994143789228605127175315666529324392733879798807058825216184630767825552145653587037496646434676711318096373171081275955776895416912849917138014068172039477206238825079876606383356826356696712706955242576471507153322498272290623704570612445942361059887407811212830760456580724709694591082857168848748303782628351244843281187023085437325778015513055246363808150711329060504467741986685413538379396672441824569553387734813622352259878046798085277643216448317000578347713340990266696345628627207845527709759656600775776071553326310986393373898964892290355563291732506471959438827463380089588164531280251937529476937583034982930000675417574376506556973567206502098791535771093076943200957305991587493726547990299105845201936849068015671695666833303453988944173074338048972177998028463969965546109893000035638358955382842248549775992390460859217458377570661600253455571714375806344638264049248959648795146727289599133690269921975283488790531052533448687136344014444173058272712639466294287569087848693176646235371412550481351224665984951573580746318346250874483223867302647143123604589692213726037932514942734339765323663618822188879477922130991847043322817163395878476362586024200748141772204814714783145041695553723533819383440952802527383038731781748349266285811060592800390203862110683470077360522472245981296396722890469810835102936834309427400473782194447687420379373656336558667927071753298988311762305232035986300664911375738965431858083832565349389633209872857302382460524451778762269576476363598745996133755767673023070268331206509686681388929894180861497534725597138000260594436780245762124371260535674531540229249435801713618217110438021005853570317911871275360645740323755446580737536123121066325568134742522655346167221704497317889455740389407966952701379144868186752762369055582197118005103800413275265404414366931249439262278397059585064738673686637387950458083609742547973740548126193184123291733942752326515349992083218466827184664545602801147530527262335888734049559171957892272338786721453147785544429597368888659566093832289153087872234581822821550134350859518111129143682227315049436882422335067795388377384308470709986467421034482099230315470500586362111417505090345749117696349273169907365711796992829758998317493194326319399055929182416933942892721264002519089971459074907941984569487386943758997250784606021320641510179107830208966749834712847710369015068009999869636482944368974171850584452291392337756266621923486580173029002762293704909205702075769062941205853928996082992943794309532831279165012665178115576689295840186046080632856550546898866502235010896165029173311440087248300233726585491742061984402529618063989200665363265920623799825149464343327192491868375063202958365018543016488596652067398381589616264674801854241342219892620048765436055468526795118044745140389874677675095026619502545440306284024457078890569334574977581059911549616636299544947935143010313157005310823287861147032984879976924405165095379199547028573375146661776783142910695139293513407830936831368567088599097147895353456001714699699246910173386843999788683926898531995011613740074305248904291342885003753864349856664498114788441035956961412909841579499898120688337464546727140392032196136890702900114703536160537315741386155237066768731644377603229341500460984939853298192365334207162934109679407186151076552459993408146062650433909622808680332122622587758237589140260593621904485402949514083798638358483432377826827519343791144774531284210918340804087671617599445059623933742011874128702577934175003392242984042406161042586927484104644688932479385878563665237813062879986182554868067429683306521271394378766193132022637407723918208532891465193107851308239572130444396898530925412448208112719525393020748077062848869207665872153378763862629100385526055392283003086626326511938417506124920933129479132672442974885824966645972621866154176108204947066987872378818322863356700718963423867790862431826823566247482761563713210666439227385738035409460474291491858870900657693803818410084640323200270120763238861342256733173660997344745365466460291954948088340762199495339753882130862904696971308892346609355264893065547862554544019287632093681500478353435137488322208522322501986756203403442451806661721497973342966439836397419449035900442905344528947468106320080350111367400166118985576263615789491096389078779278529686323394668391920692011072171215688682134693423709226482337258672206259376033376057881401157091026414772902268060482150213333485935016263982392661216812258550662460735181257572160278489175845376628736151430996459301162071841014858469591397411098322948130970280899525956677125093135265796517778107059438740577780240647220359069677474361774572612907334275586767217196629529058446191317020898407471619359549346201115682053187509233943774734230137678778731831303015377471102271289331627856295852676978556082558882909187559000381961908974548496087394164304721817368547028123035833845843895878877654160825490399915141548168251187524385458365759167740723737257012383143176062841608910188686315185829369841698405037822545289546352726310455115773785240442414021738930848248165861620427578308559257053872606673096001652287962849647463802297826560226054375127352674920597740483193698727923091737715255579026661249777241107964332693811800308976060474546051073244493946158446976022229086240877579490031338214047692382985852066470838190534041320499498972896373203143997952328221320027408261770028946118701044258040739192536512744645855426282575697775121305605436675793895664940719956942364035228397160507080972164300174201135235136507021025437915840073232115851756467894692476343045148476158688074931322917900149132296805250508388607154573628245966293118187995799969771659410343612466592783495842308262891967842219195068186721037656156715231887026632695568057086878158872651997754136393250546886685891113567614451622452120268619472717473293176073878544221280080975651941135951714320499223577132170942055439924049727705346529119705634491729732926087551933044539256204315520855649261747788529434967150995870739342845720657625930839367034114255465510780374492676245920451056854552981464422195417708137403695420692839098044753749169777249775179117025843269659565000884941554896169272275947121415638690520649856449264225581081394468962871966773922813822930820126599956874452417819159074970236689423898821646998060089429088987970343919045412036500570494497185864124181497001878709033183722902390720926257987692272331015604808364595797407321878974192130126200906232620404808228776159266218162174587391123079727275267945105807088744960578652339148866479043361236836956823483682350250145101377200105647116684266690177508488707836662954735588566844350985940421811811615700033007416659507104239640747593201826577009898628288796588128298841006205035183277329825804017689219795546669181308981288207686064254640996307081288050604255404946042448343973148037349823601964447493169422841911460888951688822843687993075918720121180936696144483378634689617670097302220416177591160101047790119184680933662004823434866087115702929176115607845715909795601821890337427204478742257900143345086679110752342394220249338784799769950360065500485637887891984097821333435743154360706965733364361104579526154124377141375869427475703061997236321430538437365525699358691278431130970076401685849729718874586574286765067020921796751703128682425716682165793875082666053493220132542404161641385376285255149889310703590802478553010557053633622654378826048775519897181714874600710067692233297238887784378316929092357989993574847567657377718261211900600464157650120935859076849740231091635111422105188166209463119761152611884286245651276496909724480355269998034407322142480112968529602352084107039184609590418198156025352901770991831493259762255961839010626494380988369905431218165659426159086527103137769744221444561608127986857768848485178254463735233749809178428574696700379005351214493408466155379692704732313990392444551550043371610090658218828781710112941167459436405125935731164810454993601441975996720745317388588583180825790520109402869909103842243389075023791415796792424542683691289173606358832645901851206427116329328732176435415872364320297593062004605022176573339528297779254333237834776441136130125305799691281116899221219058822616460961755794425462935046927272044021666907662098677258263010748025487782543993722300674455355816986676532406782872367008664730343699730833889104514667125041415485119757792267993939885282302316069845332289358061105181475861923752109260798573617689569099140453461042684343678171791324420891104917715343571762374067371291432480980247963798861868110469296348441532291481640109038191776316552838741789910353134017892536768883876710357221735304542934438455058274304090897659238958199737649050393423854763604691533669279479082580619145653967678376944117373501537806205514087827145759754284149088225509810968649509755874196801462546667137263196235654644126492682451919734788228321588307008732088419050354666023157930545602958536655340916623079980257768493880401889382110770351196646479162594334710989157597769564677942052112757641573432283090907979325854066477604012436792747989482842877231121522337470407794310440425814881864285016539600548545206440922221438841612887511366132979159531727032807681879652249716247655988595896982384612042673895041020678926699676465890450769622693061387282915974121162129582294628655296382917968551820954258881274806890277396267089857273042753236399749324047102977173102021409988980625160404555156906630436249242490682407851684494689409503222961248047108857913207393240023101163027931629534300028912299794253353225428598219603351984931276427387371317964759539265072065127789960366037296327108922805329862003460457702061587014565843446202927438087489731229822383943354975957074871907402206314862300122871958062040822826551586495431057612689348000812330189921651277212147509141600646264309209101197759094000049445441115334809746608991921410971337993860191236519006867009658552200865483667433527857988916480872135291943820136321869262648906667439062958195871084892027466084684527585950699179837713426490609911361828396303849998127270967423269065402253999158552703944452334729316411072349579608213903716229916016099860322148380293179481899006846421064696678015990854190337875651414644693585908001084555820804286326799470462081840375736694308344948623116611959597418455966316516423846348519798212825230645051173544404407810350594083265275709667100784308221347291519906472451088207535337662641910722522057931442176693577185432841496292215868109661940760428852608521626773477251569601197676409859499494181301620304463232557260394801696273116281843733242051306627961655197273448460435357742189286063052032279415238610543200058612945731617647529646239638649139849809555588079490266934506001462838442334335367055700937743944758226342420950280637370041266388782158691413342062269584640573698062128076479758431736226260195977292515614757121306253268555957031645139315781289781796658175708450079011941181873597651988295627988075998391780868437915311930670647163151293201558032875827738430220925767430822803815365430912819794239480948335310400901033626108038329485636187848410555616317027606402355709602469295773585999777818551954146790359990946357343564422445318276416961095334096383819262501905957905271151616044796891957474392528270199137435999578453307023819474657524847314825073010999570617083806664174644840859021658185297962261916148204693350385043469950001694643369018427031045529047669168268522020120821917867301891867817905965458416070303208371206710104043162330712126435536113203170451349368773932150840289150855770226589078352823049523758439573168894765364359244360476809207959150047348931112169977173041718375370459360448385769307616203589976695412533168234714153265465819605491045094001093815286738729778490988789605039638863531363360354795269723823408364750894633714605548253022419679001215630704814505546574159185094346779477925908523906385464436021848472726983235010918062919027743730871206907674229222750435580132828376489018509356056896746262982977263725035615923127019660379412570784364111195061504352594005116243743082734247352921925986685202771619301339191386036613915294779102134642225571620195070454830210166996322684105781704708056396967733392632479181517498680683815659553481844551377229695360549528615264409254890143564059324559314361148922757257744595591436904704289756334630714597109814370201841211666130420831013044786341409250307530098354407727175225984865725946112195616428351596059416819905143972973407435506908760007012320483938976952265707625661869760092054933877865243303558123200276615875104371731025735599516295107712837724692374269162958947674384623636910926490739587142475482509208989654713043547182239326470046856463747739100261810452099176027755709772221797175162092972314536236686518231630159575154064973245547802794033121794837950532062559240042066453333113158248743843840876991309320690452058710780252347527823284065687396366119203570551837767296408505394477213451856656232305707986163585715878856719374715284494942907466707740189635182358712346827560652739135099547008750711786512633148363491989766454358428220015871898509032446377263228234467236234639675848092659359716307410758866439133939499885278767126178856630574770857703516274004776911125603317802765357525427934054730779271573450150085174403115467079186315540720397377298170111839403164174382038117889907884370602997893086919806014422878947331868265375573783346657349247019972063363677676603990946267265685604445895579304433318000517704999835737007748706762018630167993173331282018578644665248786520587985396463751214838428743305733004081244315927929017289963598044240715275200491085593842817760999976162946764125129483535328492355287833322589899827457467095994018477621059206907589453104417236895890325170644069247061690586011287777129953778040704504740920348938157107014138949231572799569437780667916252401596500002779036051735120491783497823412795037391018564077501680022541764333902301070085643166293859036213380690239388280154586127609607419976664296446551028872475229095296597709071639607565090930437339086906090706025098931868143893428799394573490487555759016385894998089366192235965569063585663558102899369301329634581968909879989422227769665599477747326451675304070013185864048426133008399734246036000897610121732959116597265306737668978874758520813008629146239678767078653945090358854698853867551303993892035458656736342476334156941553749021832430209559126421223264298427028952019119259107170962667210807790061512585009197105043823566900941247909801962884065835645082278560201463458360394733295541223156928789311056509749037255399724883310518342944344513148759052775960201308283236963026810259752052370970511202479164069304546008878064606105835084395299844078590427266985508590624286266752654989496843996255382361200599355798499320833354147335384887061832758253116250064702968326540516804457563845635342437767361889478866119406867443538606701615907015897506567819063942949454987709878245896705764905513696986520855401166407366973740791487405475326601002949514265761291880206678391927559903994009608941972854269200716555783970860469042416381056994235869387425504856089267981312811140994390924739130481469914149966317094281052810782365266343443555124792024320312265917352399969023100963331207210833913930178504317395140285068356670337555186511937717602170975724409742155881420844514680949080709568391582429543451730194029070627624395987463186506106613260299829426758967687638480748706998787902912333909818662464019478992632901174828508655214443037422993093982349091019153309580533567098212544112843219773677944010382188872153315334230454163885092134193184925205003942730819144456602838905037340513764011419086320559779634586181481771574532022464087356611171439718030776807795844534131747011781427400010360829643165635091897989677705636181537266580550479483829958888657954237156409321880000762271320761319830024579538202359734146978730024568068729515817809042267733227714262556078125644003099466010001848290977763122415340493132252201612758969945101912350703372373058687573198892557901721420851806192197576760455434565726315767524154933561030911234912055971444394320498250855802197766519987647087502750890672311476715393815652368649382313742076797114596310731079119133216799644986297489508132986156600206014259498516881681795201077636706404422622236895948079916337150741031773843333883127228141198356716852614249166412476906521236004379007353396675555471917291557022877011059648665546502271073254196539101871763766261721028286040472075369662206239104836076094541689972421298557843055716417417232641263663042014784230951211870218136301446795476166161643158877331820685697364039613959050504295507667732275196311052095512421303415286588925466952326461174323942752784960108545815084745394312468971813323657386142739534573649917936765642136770207295457912694897844325994745168514895730976210825008495283291588965040466710649117013569301231655958944715340345060903744554820869208889485854772578212210949590261464679117240108473722899111148727559739737933809846969354781573969532457687470371136056367707118190288940042647212866775410952936223212496082536516046486761141779988925855743334702382682139514034313035338264124243453572773285770068937768562325094533818406861994551071931728780118134362708118908784884294891141026545689202926837256488056498799109769593363555766435816245181860673816698113056698955999564663282706575939084948760350052919491983710856850583795654739123661678299219673226728914793836471366970111636920634235142761240609117532523144391610980008880638274061207744754246352228860426398692160623892214227939447290206429025630374181209531319498549784184559491804987059316494848206768205559687778942670354819975810137575199117458225293693728716116366017333701290911681979831297457225414225453013942986487581114061008723671945862638923124232805553323359750425885030819078459826935945125309382817021768612325801445281633327362048946474001315824249012560719761952416461833031734589603916886920422469259387025211482952590538877208790462139406732531585147167920982185124725274377173997666627373237989149318469952860938206905380420620675345192424126500107382803671634151398296710997579423596072032383521914719021564067513405844531743177960222424178507086070895869621273060079302992912159386882544522225030067585528389545382038755123335738450248984938483691426926398089723237419112054490457298752184963398352988601014800393969599611853161199124655409875514892657736629908645950641109108401491498335304931208030880646145560653355740007851470192404025877578026326723483839909710467012723374564868998836946339723334921776908770222059509058712028922093027628029158005895375077907192923929385979088632153369611683685698954983325314671361312719700400355450237782153585499727496543443525597803771913687334470626980995673250532775519337247950017828638694252354428522197065114850130020400785242693360230722345104290363930232461279552024375701086879252634657969290633474671627237987675334203109639936074957739754543703343430364377286488705003246607806942751314023728838349992921684381779914343364847242187492540788185744966633499491219064017859056821877901419726039786067305190762064472457203788747251224899166439630957436945497648100636090907832080743216034650694694908272342492163935361119734571268665398887944170344296104213783436470915031132011722070579886318630611884940693959140952296374948862965779425188720614872633608047177911207071080125430950256601605969499803295264868711866162348124380671088329752570666634608863295854900525370478960279925843531125105721243923447877633876572981484559173706982764411013463696476701111079214849506607604548794879325575127307867008057232441274926875946614262508773609614292019170781607551141982973311873584811935563795962781975151168690293587130449832924796501045090508213904162347901711254651238921245867182852057962472382753951673561705552647913078354998460337670679358778860855729248204775013056373878061307862971026364977366517193197937989374747111980944431820127506339895739406670164523828390842341872140196748578834140695166533079889255005578795342399752410885857493735705882172741684076808196114367011595929927370778487812939852926528037798154399922494842361977077658853303670075666462545180961463837971306813889887323335896220747156521450329145183770038535880701915600154869336202888698011207032031550754776940237440585107750057273171002966556395042517021614379911148038117056443686129849010148383157680398586774072227400065772702964878940188840294148929522098985825319762490853343573230893434074417815105987183336786021577439366458719888261036002009159466193632082243073617258168820962725449349045112170016190175020748202277996326623567119092508791900199972199961261571224366057983882478615833740715680514833281606177274432184073922307813781904781140839439881459197134007120988676554050725885946866311274015665644010911843802956614971046550680331511239269474868226447376474644230530975095748871105651199222698581262756668509186719976900241587452814302740900750935619082443999456380741896357228220477603398810040858363154749345005273018797480940114067198697530568206892980151886673778294091394948121168261759316336827691318988406259137445922409460884325860842849660053163564234820050881798866750743997966728517884475735960499787949184104363878813734764653570770834565338010631570293110387854839397640625354366862401868442232237878173218647659662980150212959225937797286397993783669011571738052644746912039155519493044676870733006059863559040060351477809361631357180160234850077774158111077587865752409948410233649364200683917503153715553705549136435180069107961762036357736156782537004611286932070339475962695989823696571488363379085685070870456118823850757160001534860237203357680601071772941081988650916415144896962336939130203354774893607442223814478174202101443033478449807958257598122947624105350900975188570740506062288808119839282345637058999109409847767324321019150266568772110898797452842699660102944808628382698336481198463706954980184584039069953562738906974263151019824719651356184317271047490571804267006174369257096779783719025294291287721594667994152240238965606275812244775429293878717007744590509861029240530849789554142908989016966215320100316849792649836409827039717288688362194663373435038188136906150740578039513806330648281722636037430040919192567434933304552401261764014730542481124518684848114806631661896866905420892729768460519062460375283328790972113626204855923686610580568240405338593568362228157085590378105338350907862090950638724844359760823688532309557276106427321323412963011275884825968103615676927829189856480661034099066482780006135101089372147309795418103418573630569648148189975975925563601571117677867016486541428172903501502606785553524532345594169818010755835486232403982509571386817395011020494716296101397893468063034940323949115867600169076704075955542154680794665955517102433209466496569094037602296624244698520592652042506333373149182190792012797594162019723505529469892559565193343085455174773154413159911420849571168792149317248416972995519701747085519879677527685891198725888632689757780802750839999251060890652681755121791316721325963841238559502248929935069037558887494010979979304367527018560478781054721776541782048496876637482372943173660470211236479150859392097406933905152262556822856099245910705647225399596672551393798487517828503780905159076945512181000272104047411948126286176578074138107944945534916636410948409509224408901779365129505733158440675186448597734822800078221782688168855038779899746798991348581408001118961295633522993942935662483722666606787971843576127707968438613893487287401279180452428866565577886557940563027778340982568238143040249597501340752282118854225306552294275439125445651460741015953991365765453076915372032807041223341716640458113066244261431708691229908324628342181083000842532819404342538989050812944937342843017820066211027209711098301133207592230560629081908271317229224286385787095067463969353579442379830936769424101841300328721531132015127196986528893878530146136199138867391079755162873839390396027670219869505977920481342218825904736306712360036286414032046261714815362006192573968265072519676587637458607475364648167368759413976551703148220277956873448914982545881392274278102139386562097054343298055128284086490448007365612528145951783315264759873044444583612451679489238323266075454490859057785233026586598708622274133582424248892989024622689732550711970446914886684893431901915949180666913210270829397781754469452552761367465318048677662444633704845538230207296350088304423048072739211464404078633582246011776856032018676969166619202657667911980267566280192181722920597488194463671389088664792552864271683776940301216475253024188142688540268874378360694862849726556819761583241144844233648384823399246284457965834934964220684587961164351923013130955011983495711444587853293060555065465057186825934858269457429331977680624390085659773638565894859164882270688497824021093936663584254847106937410197578642670031026892389813910142878721891339176874859303823614342112678496676785718985937966964778513925755627787098318995557737060853634111506903887873258812132848828779464632984022867467810980294812261409670472899534404598080263686831117673099967082798008669477323733143494105244200283178714093941329032620237744481928683269604277570194240618919778379122421758654368206001441025404239272585327074623229977232066453614873036908448855000903503229281707479192117483286929260283437854932766373052841250862954568910771248478270444493906076930512300301093695953469627175195907119028177178447177039910330512431542174417519559649803489739201575162130034795595910861013434977997243871948796060497924349704752981461172529137958690235808060304909321460196475028928267394219722029742372380026411468533325420456847516636100671840485789260011430445699933445519333870444256581022834254416753649023174075888444492644783786859523710843020835494795634320797446228362392456390997421250930715058013383903713925563381569974253637673294483768817143820515637059684519249810046314470866989703236560601907091321552431061510276547475955971524429924013637605337003550767159342470480850078859931101704125762962782350435995864252611580178882499812463118070953484887581832635176178706406361092794447279691277757358696160623274759335453139462447252727214932228543388296212212711056421623740600848418750415727922673540693430846718798285407077060486747078639195369284351919449055143032923936032504135463253740899171799913234272048719347723426132867537770089575259753851411734366281703637328465766620741007358584714197610345064531815897712638911611225650415046845459535672268662763071024223875600121277819800286833782221166689618595115100136907994243923599623397609208402505933791318093306526546684320308662219200761893686198654003041957990257159513257881771469043035827443016220957566446829802918266302484006951466466509147750136340870970283118317548981642733594595318447492401527506796550170150430291921066415986281666803846225107459901994415187528351357213031147840847593424427066261088326244643124136806112998841250841893751797990155522577440804482596250120104000157688909189647988463621696064560810160184672863492844636775709653042697848186143672910281298170482754480433911901755688986764366873709775764966045357598831262027214268991694695145949968473487696347487853265391664830352583638031761026614038240684757694703493629557527315679755817434331585630392364336744500926321690670888438787510190977119036144543368840596830054141865877777533574988793619030478447886042217839152704330470862415783157332527744410473560101413082973558605545165179213235144047487330224433774532638788809654235790234759395980406532588420557995225956171632366827140311739721501451729689538538377159433159793715945631002891841541405717000343706383811329274408228042233491144791217028563404783630611415365689672088690842996983837409884925854582393423633190012467495449574457582785819465437597402750847787164211689218227105680028474084523260480285064849559188087589171758273976626040166929381988138136057667981060446337990681409420134785585943120880437623163261931966538594710388460433235629714527570908360802108073565291116821042331151420780187115925431077549526558927181628700477871549130440298813844934133716174799060136867245108908278477101799782096185390052416662969664405544092897964709515975134373935460518973370471799639349311371528599511618248590138380988300211718214248776821183149135617020303618652825414822695657791265900880784086211334649418594208244307274855478917138013404659450970526469288265005009686886087948653065732371319917037620027087171165040381398852845136072446758817846559515875484635861608418227553835951192798921305566453877241847741964738334480256352225582907445330884248258809176526759302950754062758261484306273956108985167911654320418719168500661861420188304876034297587669449508828136649494291833537562516299637881553515575660312207759509833498404279286350686833419489167554392149289990423710466636393529456664681078192604263911857981575333617808223917892355286036423030649116574212474900289647545998011269386071441950128018884271434059045078421814697678306774167597974398274313380253402684942817670759397180482049578144135702638164213311867262000149690078008335318896766670945900756372352252991536265157221489775928291849926885829530401539642574641119697379546905307856787801670582013243283395058652701537071946465045466085280979339637687600670981974753187553646111836177053908636148663870179049084108838044686405333139828124639118855770797013134492567117187920901946754881264855298246712751277567163421007173570070843110238707889541399838298606709689069444979018317076969259524144216463066593495864717083776871867118025387380153905439332199743362688724594345199224923453553438061110049916326038131985011172480519931897927719166514604342214526431480319508607868140003437225944418865822733271597701621676237065146646789320392332915698025203878368737145848373091404363368673227538969097193104263300820939612622859610436065331421350541250116324351325306750181068982236891546888354570884052425819876202916823783384960165481991245438129278048531835233038321230173702580309862520761452379364550422275583246221643401453908166794440015575171826004063723031066931076609440111497812263801222412892760832246746847328462300659670309448503996632952349194393143620695381963160967972914509134188414015641050034426526722534675900199295475740981955874052431736977129503853440081085113002339787874120953455640340317443561673780040380416801833238569847535198585614428217283690600836587203493697406602417299326274717309679917878131793609144238035122706540781907439679553266153568297444802994769801088661161230041813477268946778977924039688249670357815989804822031247318614578977282007647070319312230393933691598064745218399239490042801109618609950482201642078180874659794415785471248912127874009277501884411780797141801141728449773839729088448029516602684318262597167332776591101622731947202851507211120728782106665566827710917023122063142087275675490806769853085151472771839570746641788827403178750474280960128685868919982293678157458608858444750111130747169659395029479428949801659219021241435045617752074556811361871733594352137320157641463934933061649989994511979316813689740329374219077087275507309797450387231588583428081085943572036488616749190682547165517044807072675067892088122231244019521067696425715078956381798154111623969156583825188447840380231854893517409617136843627170891120743990762142430359642766034354527837550865820668005718171892102088771488044164151419613520509254752018468714911411180675050623663590060375718761071256004247767436213237150230757076970950776095191460456026865838436598158970245088003716379494556672146676243047610157472512283817688854764419448005011994086732254298740589559458406307578420597985768548023398100354009120023584496314552750856546323170404994601154516351622740075599438755815779625367567128215420750602879547370659723247572270280803679760501356806640690829056018288236885425285702472582827473681807969000495637465273324515918467011816125910575616133315353716986969873746800868936122262690857734159246237829119730116806515448356628922396263670575817607439189901484106312604309586905182225981695460439528375773829507498160786603719062551685886069791301914527759231659718216072534576758416351354001862046170623811533171580505383824081471812500699183854431248588492976675407112179867138040287388758218952037742213755937593913733602145925745178739606996126401052363741127132991836322771024090747656527293034805595064476959821584306341182112747855772630281284251145694043592187335039033930560826691229180395902854966708585592208989508908490384792424988677879600176767068571992231470224536667028808788233546181871329292366024891393303935651773333902550575628896588009546516834265002530667841147312843921827132742180094862296236218976881309480697177764746242408623736648003057826527841762123732729978485235677011786466626249989970441239740309146723890784521636523753819318856979734099344838895456395079036711072338516883749829514680542388964669698755875293669837990018162491124851853849000778474404925484481759424339256421994008831225462467382639398249783558897128119768502596239822845577438970014887566706340241336572246511396574938153215920392014117514099268033096927293375592021642572097168734525398263701118491496218551856839264259574342001313893415383708672464946924293571950715544470280220271277223065785824235704398390476262477936564615202705601340049535501541695516670486775567783355035554693072979165618122340357799759346998936886372908201152124118805172567555392832085535708098164679971914588587019828726276472434870542818115169694623293623879990350839846307653056215898914414662430988271813353742798946536247438917531251068875750459192168374905039154226135447446236633707863491864304047078398592455626125563062929975117887014468512063815909187914069059995948986617547320312657247312866249191185744308368898662784900649961189500449492053198953677350221952802308888706337224859578503299237513265083208691878827274146754792980905449562100809092942495839341738596111902219775750760100236017337236646209478223628545246361192192944608489802043779052301415924976423744567749027414467531199889056021280528686780278153641466993198204121691402987983388746001480788455435590991666311010229356426378867257603644163010167039850162895990630146473209260171850587741758668157121429166212197614304934559305341980321894053587712871564571832123624262920373209649420729989544109227452232441819556616935157378221226619574022556826723437143278459376412847405915217556654913627691475837549322721778228891999277057560851627764913082210792190640979702946382829601492381981019153978311593231101811673556385218120782452025134683576723961758926952288801707299734992559129794919380761271483945584323431776817934489162787634013594078047006396150600857287404559495172339277111335782038969631940626794266611493852280828933724704099340697374800907827031496720718303519561689975403308471235588336187208649819746995435901627801510723997020949298961006285673286196302082675251850011883253081011119655925620766475171559048930800269732042730073433931017637787251658142212467472856775495810661554758990988566401376886750240331534540214394915867646167124531854474596787938094017774333834053806292641746932410939557046251808276105338557551813422557168234415175531872717063276556378802298367710361159582515320595213528171950334510203577720008077332748390235854030465798534911236296110418075848985441321389735384481397745030028501177958312405192170017696748862438289828140013285699385894350155686471584401501136908943876264575676915854368579574307816976306842449001730213420827072991090985367804274103540870901357042438410361423816587724181229015610321603171122737664723303834373679688997974672029716805319110922261140908792094806969065256928377648995644625590709083680053477327969341663303085103593902892429873642512832587278930693878431588673099811435974703698375390561047118224309765844915926628022472768398800900437032566777713317978977397277992590117802342214289563849755078994480893499554266182834998987615948357183639117702273176211792628458261849785560648367122964003363735511039291829966896071419497329143493871309489833859440606234290693717183682666980555366171852884312495952737074459481925624171988160751086738530871987864997109718983790954943980713624981010235050732128635054570131346153269683713083279725840109612007889864273242776421383365095347812857661097184315082589445243691941151385513173305608570452973881185218028043424161558196074231791880217550332682078411442691004762711200955735576892949294298489588284543541752334228348060189148848228296464403564057207380934823965405741420020196263744022428403313248635227844742439312174237796708710429999655509371871651984367223307560084813505275636174959705778141674701376931097611652959270468749681420114464069263687639771381827894012105509805549016275952958213620313484713319230566870988343026353795301917791111637193094809189530788187625762949996904730612568359524686579868937612872170470016620589323400446815878368468779233040106330472301970877321310108340096307849789275938575488159329880483886512979070585174341750546518130552107892354495584853958287666369517178484586439187307867237599121958817989379520171047142044162419425563985897779710019232012703714393739082274664927209607275473709341779272223770846588171571849749480961061405235919804523429660235330289455240233409744262732599828672712666386091760618508002753628435861594917153600722943188742004372738358067935360418123375015104274093475677948113633905029436393111316797295937456858252319347841755073137500002813820919002486142271695758299011156423501647412285810685566277046841718774711291785260150701740441152486204442878833696385524196405071002063002276701462100010563333372518145073394457950076910599089425272147980241102934964780500789582699697378057569064041088637651474647353773020198002766826080338310630465705588458080316329539503201836166130859019230684032843643822587175637785735110594846051627233395687122493483657283510694222229757877433836793448864572327363018307769116993575247656950387865339055779910428381872937129816541573327665090924219918840062815966634942046114431375021561791884860725666421614379131959503938585805759199675025045699278584152223442080999500179578782593946107553025903858179285947608968490551427875708174545760622570489304404948730900628816989714916065426232952265419396827616100385761289804690616336387624930889530130121795295097705335962553954698453224446004719681431995739899883648810738313967873661612469594898618675088620306884866473667328832186541911917848357879324752166371466092434217148032815590469856570294960226168040868160526032187853304427109215184402129424896537719359292290510388590949146434202413679127284621788552638795174079363722994053883785150488549193796383154339317014107414292046806833733987071298265749346122281462756080040638545843248885361817096441094529993539781706472030136502631926180128454039355896840625068808161329096055798177238503226130466571281955369458347346689211803273781728883610443408956315852019516372932649151449586128476102203657638957463994021346397224884306881008009009491866330244092986007886114306534670728897544326507140280987357618413849687587647767821351272749026696337151905910977333746757939634993222284202464320612207406720740795869912604918040012999580166189133450881597368985287908562205261454182953438332583095357170924966315990162387466660620282234038089358264903577306436477263538200560153050542309336673636669621077398976461954981677168657358899092893907936119834648975994792940882405219560166903645784863979771402406667944764029817819808368953428491016453525560165739454555108764886399523765985283015504232232456718817022282336654596402333612518260571897187811116110202396294614662972825536758334928795986864352943531470991116169102927904173545455450234618051493424763186907443651389454385518632548610593152212257153544934528269621774185629735009866085971168759168425996032027672974988139054774019824621547305020776879082979792052550874661668186481560865259675809001644022312262415551628071936694206178821163192790991365282930482127103236862144884630207391588146275523747890517918411013026531633554524643321108682533175044626271826653999992179027784043014782726970420955713179820900034750870960964071080235782966072412798132126009992427881763823741222499700637712117138448864238854876899823897427692461877034969316971037368390914115598906741089283549640185444141496399065529282543471453394973718581939150671699920721948334804328873583917504027040613736671700070728010546352377489724651387768481490003822116332003452719967735773143529814726990339514661810250143960490665111889996381752338187994190170143888295228544178343224687382850731309357377192976629775162528710544117887359311795667320021951250976636427432030841855070041917497621352143962249510203748487846724507363654915172369599547444738482146791712467586641325104955701695876100705017681872358260020435020979802609565042229244411587369013564938686325406300353075482857085800741939432740580390235165047533117376417502507267827412411126190201072958486312103436367528411644813654165878141759695473005043451361906599810692324378041513097600143389146744683824194268947834464944389271208331694003043839559153825023286584333536292079092156172613036199492476910117271268331794777173968687729915327275190984911702441910444871227237122087281096310326793270526034753745595958430742413797977289187936409618470129856698853343324582557921926989596108160866202635022258965439427703408818729055722023998159182286993206651974613900195722735076731105820435613420293148079678496325461901057797325774951635326617600218757405811103133288015359193334460600864372366350263047300824219957173180034405411951681798449607563591441260015876336895737714966361757751922618614819469790960859308333751354449181763881149032412017002929775207607527635187129398098138950934753720877033714465241365205407928569029666473603333495643006100562844631860511811651246272015128476839117147926744155018050617138500325216184856407713275995197212178453051782495507132240055809430506199809576029075990035317225132604086487533596627214614544056939907499565356414328986093102277938435946643872018784155823091677840259091728343767874054354340538424060160026556773067639219167120445454810650084902219349900214436141023217849717856913241356424321582316246408464872199079354002757562559550410674827370924747898060169471495616297898684119380341771236941232038619730359578706200899099462560306275185295101448911472873551213171373758620123657242182842167342821808136824184921217688650754250655566270732604441024738943760963795840537925544566571789919645607065726105657542135734669524749521513005220319748896819838321203482636981891676592396838577073225909054355436387232729180965187641389137139259515149291581823735238957589392742581347493154111485852426340526192973999839560487931806923896229530043330380375206184851225995801876025830360370152435080286251143750613637146649020120002602240292324287635483751320431391682595380903003388320539794832394731076708098966395437870755751770301471077601636866295150959565230631194983386847553885770088871465160291554460454794270331644622807522349570152263702628008940018070552619101936361570655455100571841779944210385847670591363629250932746891701672865318769204030052192676260877301563727745519684270078387172131639958014958069137868243085403883997211221132461760432488714434173962152626626536512287568688581966978107116155578226744639920739907035776797191969753662915145099425368916445885149795497014294038360473094865103426811644614871617775011060525635806791558472404306653982528396464649189615267244489720324871094430920273477556749244680880111206000292431996603543013577700908298124841415197656546660588788384280173713172494851263893976957567823402339009965556221382904539726497195312432788045241362849171857885394549570797049714019856563419326225814642813621418886872086465535268728319161939188986437905504204718552464112428422416672107281064165917184568431497006108331437227528635274960879212303809719838230441889019223870930327192688713980859700597631282161536054708443475186992545779894961869203924338897527022231036549311109280179810177252397264890891822371251255700364791184975728610415608936240819892214727815004966857479233969048119909495027892526955683201828058046463953461556822255890668678014630397326248286173359445081367376575292424156981774654975081093655157088816865974032402288437570580070761238305334179305060642600961156282548924910863244758287923492654463142465501837100231909982349666997885426441571772853661091546289418095596764864822900666709927744821256902747475604236393669214624986989514457464859486362095260358978048234025788552276782000365224461673403711651548989418348486546795097568824374899745120790128844643650714489374646109273939889706995907499596376530186953197098536266740666872080764202672542295798329495943935118198806920201726675194947037305823486469409299980824867719330539687586877625643773139455485389939411731414528565399787594460340722915577777218371666585156592797588986292022526913427447353321355722894484159541794586336113778406092671434116620001335964882695010615119634866039306378594656319606466410640497254136259557968007649567263685902049677982169673846539068284658217276694544625432697070123387283846724403093316722277943635710372066916197000094001808042984364160925880377508152401516471372613475894634763625039116196168816898732580740978977815940386350240195631629923239423101183017642007053379944339899607437963461053117218625625058846584669051042815511068324287452997252125798110891690352517965087149985423348194663784506057687170504152192567840758585351552100930363137055075667090883849972391509554967261913571543946996206465420969305888166209237109195562548238115405286327480378279531306618935544644894691676727827971165422658308568290377871064704101264148496616276738798828794064758066976464824774541856873536314993111985192244653355933628988370925968910337936422815944794548215484077855870440715099420337456201047712890499534585023507631252768102308542189886994826825120735804978156771658334401914723902707285939824073665963342001689448956112130352274673651746093171270333168760685288229638901375132807297783317532868805454462047738804200692001296904436313100351368612001535865336184021381452884642451409893730355946348710062800816764927483467876411899729226411801021511407498680720483825677770505797785583794976341435132651556210546213876290929553467971198452842862006613226810081733477552227735154492676071304202202272532466556031603660772835413862850377465456862130944899567890725584161296152007614917852303444601214404041282608437262424853942427319934180577809942611060702224223716228005476641640686447909884088606393945518954517442610233897539637955813704786562999918711741430734164819767545164210971781112304550519797897697867146791348948382791130083836186770723330871960523929009244581897189071418440484579142435824195391222822096464331245572922389636426814127542552681782599234670263305815160918774012141325770034352007084685795270868437021604558661262414248880537764516998476693172690060758262100931799751051849695814586609596644688908877209203973205781342273731980843200683884763249293564646896491646417543744061746970639601005429510171392851584897334519859294471231450319000137443470718699154947991305841318576739687742547458614941944179248640783094941222255900099543841894229659163794401267714253599577313792451160167733368485314184050673905188520727419179670358136653730702896139588908469381071887145280771032438449654939785427394744255983176540825111194321037257142003592717693375285448362570585606616116916786169266742289192034939976721547038230751845807352703496432237813726322200571788620448579548317272443203787641030614726867929812534877772836657369761322278467485904341365826597230181099139493630273179061992206291108610032448282528776697772872159384078757066338183140915908115412861680237347404612229779139301958091545558018065017332316340437145513750706797622796877291315704914701527288682149637473845669065842004080654099917841903393193291256800688516349717743876003993551896558098399240215050419019996968561446305325789599903252262930901470377841597465545264791370096216979615540559379296379653645111226717391567650159021903690784911464626875002474108838247428504969973910930318585727555080168601155345084722610527566291253915675718193913733581517134821523080159219680053146264033040079168535100492181523044984018129704301468972971421313471514589619444914425681389539482658970933861086344779577246126691356269830805426256700001800041737883390233889809356159648813581555066338326544678336271604643239128311681134666862459256835110294276051859437825642690171719362828686864528399958174955424095086914485812503974257523913456081082274809527615244328824067758586271432205412870569923761117628507999127516679176248474642056971231164325870169795404089505466723359213086181482476041709898027415688130007921066561732768851647422474285934360087501936688033457465227672720396078316678407411352988113637167836586988057467943998762597688318793916223350194661352503507356793572245184620521462136766187551711394407410970450118353424945350586284662055835116038469362959244973411656796270164342716821610541929811613790204121652780034310672064677095687250710338931896381688563949541735619695582921050365989064987308047218889561896373928322757214508320532756649390115455975790662067406192037012765748270921132024528772979248932693171664741499468490858884273086129462472807397881102052506997004670888983163167864952551048194446606084193716774171220206277250389971735074099329351909195408528447312215400288968217870141689605770996777305979054795142781803641047458515318577535207645080718635567511951063147683045696172985269093957638019175359118119601204831044542340846319725110494719195151074742278759471795740493583006733220750739946584522060066964297311534353487918261029766455973265378985702423137948093726701971335394075302835562600558790228772195026017234938353717828825466897035293897479251063402000116634214010552795637478506552616681925851525822773910757473206549949293514191169610690615204905916822900719064452682403354018552128702030170644389615083052332873864264937487734825823323419171533866439091370410666285670099890142902690942636581051991173168463834717897774473018261910662102306827013249270553937815426138275240124164874164401301568064972185077974484676214066106066505825310003030626293154043153444724907436380142957868250085920771237980619177861022916860071792699248970822777872415668119163798339415278112888796171261740847012064658610672784755695094088621738645951689232617242780598826128645271791767023146350771461756575411677634185742978451043158102307001528332661613899188031406140472492006431175256501046447261137912997601620938762472270652388486312780976641048289061050143611907342525234268201803932489054649104504358227785494547419137241343921452660944720042430938704590180125656219821481661406521461214548542032580103487313227926045942484419932845555267119068387981929352671692338690487436427540031351869324086539204499484143295248219091524791900583954571471618827945650829041485236402532691637782344183323705641353706031390117118997638457670820126166811414845120552399266524209014225528186747858555697603523841923835437372597882821529719835426166278531383741913538319987358103935968465904310756962731325167082663927965426137581783605188762743431762551156835062902349162141887535826548919328277100819950288216336421022683339305841717525503790851664967217006437563093406605774834082682685550249188256175085090344175366245502025182729921111276072636064366653371277176200166435988451905572219971817103115925759408983423249636338036868853348198268015165703072689076558085072610041287082456551338897984174748868774236894618046745732840190727377923969803348949471959776247366633620892918722328696075670782174710016620391186586557789686296401732573952760573290595992395982290633329628392357419621326428443459145369804534774042211277451884358702152563990041161483094207466719695314944767626862264041639358456610627215693617116202654188147694490124171593290528802890782772220657011562679468104387839986184636614715771554176761512596847121252554262044964871866698042737239266843482614905761252645956332269774824227253726905169930004713057893749972839476255664582736908590730730901837815362634012042724133071945349125220518352561862054303253807305928688377831929984009563819474231546715508559426851080494721837970921793397293337869588412154958625843862068144897774461060827125741082787651617749108149436806395298515184747985731088482141918883193585961953591345861518546003093236215141311758221441892381184954036881490565643369541377795606629507858942641333936920823453730033807686590273432415098704386930824163006685319203347259876421074180963112349271577653342241850533685916822072041423056110276220999771172861646154544753825749440394629091535060543325831688981491241273088143352211010308230371665994156017079052133311562050854776632506411509733561117958654648348920864743143232287327758632158951378910190602812343326167997174029833471054172961311244631949716209021768545583849114320647652993292932185338076540065231249779493988742245309057117763100407784456512120776156494402317675808651547989729046529281828496599951463263243206092903059590438424067533484058268619383677878484329254408878734675593925781293780603780167951161499100965137195743519251303120663363119370624954961744356949113599209299622458506036338575988705308418456581315425560875785628172704307272684285945807859865714685082269125189192518119719746461737536751977656169927068004227479801004534542542933768098155390221003100158664366167108120095765300876054073965215574299896017315242957834093924587965832368256946042598838193375708218098206165010064287954930199454289190112737593320198388468664134057245744646577543977456273887154127250439707590637230654091522334928175498900344539217436935740632658577386310405375840081353806793123132383345850602182161968233192481688873982311581988671820514261370053821478711477576341521614791044827776697954800696271840916769799937207595418017284517912649636368123452283077350442840851308967249252256668582843796451058786734285191298888493429190833866789785718685503290554254198886971213573208279491901713056297569305601270856555170424385489263888140684654114701574985784946734871806972109590813765436651869576716245655164196835918331491894085123764209480404068724104365810275164511205955220463631992389503495013957831309156724228046583569048635348525224078560059591312640026550099089774075996374413144880718941086926850397926945562575234958688622463776925288148550138751972064647978582546846412727067547434026139072860232763374510341616028999921491728628083980255375487627810996892091388438346006371349279437425071414679325743376218161295823126519249884300567865022549482692789854720272557693723429968182894070084789582612625592802510745041637401206497083261834109264181403243233255905205106599728940021610650913526066820055562552708384431580942683481851029838188896010259591150757158815362251795295001426847254336477365318761804366865624413588361441910185096620153986608027014428694466796832102999614125853859840351135066504304509333700726443794686908034554426582412681641791199868552812776142216036061430452155928193259315297789591942684855100150905181050381112278005548967604901467723029595371897898654967515760003286391774647034725160280065522867612673192909869898280655614255950700495828268029486514247209740887516907138929079198399370239378446130698559821064575795545920497824519269451375247423822670623934742237995952385687165357260385722140440494752898524416700306357504132621911133588577267798997106610617585615241082877761230022192095676760005096708738870663415138542256260576764988780058311508786509144388050002132476769446181616680751294001313026873685471538798121478130778932657663253726384355413646449996497964021248216796532600194253566230731710087991791695552109217661625279920620497095319002138675751179617127036457220816362845737364380432207157388382691784593417238673433261271173546930645377652575383915276774396448452259111056980248740042219393797915689276679978135233638108229536008935159442374883346796830748931367983896508967226106865692379760793915676310510604871579464713685531066694512674016505440995970840353477338458230604440460047800018350958795906294381036342702170392342673724583621148868836629896724368735963178953152734707769635638230707018534820293758497007546615905610501084567387567620027763700048306445018357721068685049646224860223640489493405191268144428310306266970290625251407637685824676122756061436140776840188289802613195603873543817569439272147855679171606190988922093473142635027420208401141583442968495696360056584111280488402312954972891415943742791595708021471912364828555086893152720940833209008544563233724009952014826239694234053688426309289308415064017969040284588057308446411494503826466810091684234801326199280750101293579603166772481461562914031337875008293679934934199042919176026316713353371819261789076708114773713167889029574345793056572241699881306977582562815349409670626080470323581134244254981871273113866961358814497604762330962370550951368921265625467867749111023918607062218577971112382098509933809967309473349331597942581768425666026523475330318497701778643868605453572421170290838471813382473889206416800696368295580762691449849231857096419369611387005346073237071593182209392897959699845151300235926139055624929111256192153794861991658142657382180173079904166252551060596372597071309589531448440005757472023636320974223317522844453623045641505400928370324051610365030188293295559927270430022820281414548034390529859835942525993974979015788893441286104752984281156240369592339145402717888212628381411670281476047063532574752478386862020551541065332172460288434034365773043391013193062057283249231790317341706197377453587334567915136827657245901328270150034655016446786935889043703679650409633571420440242157141318058542694805733509551852333942722555852871994114723776222619077310296279113716771193829348478631573114227425880578608857257355393627226756719272371961088228594888570414386824056188019569476165366318961131805833356298250679117902820909999970001585641623953314637097245137685472229739062831930910064702520509607749999526326977258283540262216608487318574185095246389589570800033412526785600895883211989707148019944121717995670455568898517738674583774439765007749089309268236559531375718227385458777764034814410715169900777770447970710258882548987196738747189008792779702661908068767577619324525225341436741603031805922355560410032811559449681473187448089621487822400322451410575095443025008057011274977592943439428141926293421623137929456077495308157863455732013567586221178523489576370895514310359401892696359331769825574658537152180122506847967479337289839704913202804921578444286402648154482662829636267823474692584250197035985922383715672108727388025904410185308289788360747655640292468512608456703209816808459407431341834991761202026716482705105051948904946531519986249679751289032282540516632626846679986460551724938918235360923535684287650841008230824672214761832019276166083664811404708368798589934615224262764375974966578271609047535755595616585676771627587615068241550504406318464351197506987400260319663116913424037541123315549135270198010527398309225293632729145000729069298144614934729658211870646527184350232842785671975707591663184041304342121796402404110590784397120802752403463049960226646442523073671246412807859843349093905797103764817093510398721649318761366663018761697732696974483578908911601146409848753359712482023313374301030910644085270316818056056402127141219495715695732567624353581400643872663573498626856097512309731588615042814701194350080631685196769395013405118492383569653602539040994785001323777933005963437005718735666755343535356790807571496446104299593629671116967335990031483197145283530231866569435813115660187713164392509121565693803882827774738271510112310840940545614554757109780448329388104370999431637771682229289967137087200208560247449887029105083641445992334897126549792020617161875693339685905209268030116538471506420631708632066821488094903915549358592358613202287487348566824398545368786072597319319045227528384852344274584293146277046385225356326842998634667471831125602687287255148660740231099069248991829378251833938475938924531397668508733631638237762001713235327330665288459417446338851354483421762652790708183289942257567394760152011564420002355556430863215758955771576966044730797041013198520464769416873476062869487966312161517261971965529368325337498340645178008523230671591257989643725363001043976599995434382191175364539893528903463550070656732251661434391104377198611279038715212101296716878707543699150939847165966337879120436496897450559049958758436177773554353927638061706898826251601696764606759960611268512609614752587271121807864521071460960841143802843582853778328148737392254085478103768212396671583765959294429932266082914166436336812208021998520732775264795497246515292746980795762403676496589782919311884407301261659519519786477856412645076292110600962001885725510187066879892064888815769587410797907719805212550289716345250727641408927214947650256600988086932074275241527504529053478650146662539477886820236931043019047850747236368063740378260258750513817644817617309435761901472292232488828051733322557367958670181393756953659506049871366518340576302938753637927637516920305020113961486287492618802134109973809289573280209418161156085497046383506477318194804246997560801749527170463204378370262904907977343714405752514219938871964003914241561057856526300193733775456381419385593484383454921361889871385756256568649487856047397356659761312953531512925856130797830039510606175516424480564226094621440752747612594513112471746999902014342139752929527850886428491045627156792160657531620742941609429419403155566813347275210938267816845102775631366368888836978419006332714872067925447297578442165293280188249446668393548893343200538697104379945055218998941920249872801519616850992400033183930649231542806237678858098523217028216895413926329304632126013634348523189305628392203792029234131409838679199403924322848602459038820791894919201012957588858741737088901412981895414782619835695849700012876495871856880837267369289146328635739983391115929925478485280237208238306733248075428980112003854372786314409638682081670599978222149787232769631145361316939832444104652608393336156425800620844684591664731115074472573053771079360573206718435486777854918732085221873740921195889369556232229081969336790186523292764653814934048591508891667725843545791399220431622410240633738592023890461598805271652206494507804771712961228556965193102375418244824869197796695563994830263109095234916265279089888462668554759677772896887294572721816376835693132571699389497876735829734370850197796281722707367928716770040907660378909039901855119239024427847574723667806482266236041319072322307543537610669892268858095676139359653687605195548956630048316081304981841051748785064634689351972565634792712295279076202065243211002951127708496510786976653345577273117955889306705563725751084361572137891850155747097737837243491662713381379680078580072719557583597346921176946230939631009843522469406738077707930836520566099099924241462413543636459829805413351488308905937771061722124253179304782312767163824405625324553224580768335147444832621410878432513449452213488826742899966633012909414484830759981228454349908437133830480625776770095459332734310694308588263763793470733784544137550410444570054813152948490855567960209884650813604792725358155009104560853108577636732467466107219560780803325476919141464244602135317218692615332872991098392308368674143365786953268242894533882705186648643062291480921578771000978414950346908279786902034976828817605334503428192705647137727420054892031241654318704933223348234838248975808303578933607863742747270056082413715440915748800043822579604040512414581559623651880651110439468877461794700351339196832206626085221634425938559842642670478761964941109092249772203865805834813145036021934338477311168230508180125250917317196023742784231043964302321340421290928069505750571053445508995920293808987504362245348273215466997077623662702739416889888631148103756030866695804751173517859955437602610808769732728145408418179604466529268722754691651785013777627657652041086460390180321359964799615347030127315981203059531874671918524347559921968497675869071832839287193471904939910445518563675494708304207836600721385928013735417532361127006744520354574067449884835552219964809925162237537335465521840488002300623422198463309228336912579549875259246022639947959804260120807931780338767700385667620878263214849212159401235731093969881469092193698036918260874725696350244772943485906297063003687038233093724017587179498213682121807022458866862690050341361268062077193039733886251224774544071162798302180269273975447809755646328896202818498922139296143691782914618893075762904320013101888013548736720264287708501386562810055990805335253405449828857092078028120125080188896214860430975014428632603328860532530555623209713987616252283133019678843846590166123557360806583871535056649844822807693511945396935590896160519269361351890575558252116429609525174102537749795500018207747413960813788940253487123587474867947881953890927198399678393707175473850642771352431190963233434276273204032860062642012391965871371336024518231043301393155608970131687935012244255783865862387987776212612392926559957805965254273554754192903981581177694150779598702355499233485402898970234893899914540386886221408114126427463960810127915174509761700801118930937943375209691818110139499454287275574495849696692094846140609971527579091621382597871542974271023824738431337431936208027064038326700762022037092984064573147682585732483176306404013688553917889693298943489184454913498215274333411048407299899951953062464043007838651895124022282668605268288509757040844325038350895260655905453837872066448600625003409848455813345818359438730974836432689428588307929933565843023915050726260286909938199113053688894431347367494826238981678250670451330754353041355598296969627380602576435789994207879934016122540521912958567600993235469795365909081485724426015054231853735202872237246803396115545271813264834331212213649907328940205945973932744558041894767420427698388468780704583731587611720029975900990204893639025638767924404225361679114915454693981438202270416700484446466228489488276375189044920917491262642139542056721230488805367502983873226515411253393880971713193052257464788408717474648495434201508441983308530648058137142476748717134761011221389200636170154110206620866233510601203732358318390839017945014623422238504126725367095033970531473509391159162472189660562870580875559220495041157517113392739833530978924773736696821760723418136799460124370457274709696572076819677952606730743123698945883181991769114884503839944179043689362508368146973054203567911338895520620400065621779320376682401308212281262710893434289648011736957242225631585856381744941072065291622576781773726440162733696100026741849912080956447704965991544620066737641957315884608531784104468115214254685796497031893961106712244567664850447354218673444782710415687029044299298730735756610076123549013376652211086450196143341574812398804158477693171436508436562704869974783784627136715949685330086134933703278360931293009592108406574307876633181630850444692705331516500908121620265161246178206713635011243368056003413134631786757709530965332836345811481640218897093242833925057250919809044837404616803289073325170257109249002965542751075391470562398932720016000052917240065275798332770437432496893959107890617567445346128879654077998232052908936722029238939559835957093389489799242992324697149490694420450298941325251331269158231184301366315413146991018081774476546977182470202741164975121815137977591600248047465154571195094307907950765756157628905370276386202703699060653221486224600422554754345019420605993943316329683006237774824528445785392781679683009510599715922060066935309231290353400380108172885545725834916510939717853739402890625014117248119250027064715847836222714491598458283035452202321434826283871612301839892247632942945472438312305874221580908208997447290785877312276617049871420330804573553486786639951163300365403687711054796179991016926556903940386206108687455159064757657834610809610932264632646934526733067794173789995592242408962157726764649284572095729437279327520744956647681590525315478356834133467627333233737583066604723224167726995907168857434300424884163487811700669832114582825302781123818417862624527896892504020252304275394040597686677280911020059678204078980476600051318497914372073536539936596324668408255788331845932566578702181178069473653345716860689037055146219827914409982547908205577258536405561422878886173051808499306420232685610947352496542433058040517969494282652359598407862123479132654100049413890097505918987590141148067909025921220408525880145208201556281876655735929718904101923177600950540215827779058464681749344710168482157633318710782730575587401331165350270377634647960721473881063616027282318850999247165203507086792719400926320334970977574750379896258700134503533630175107842599346059086312335677409525707352150614589094120460696809998746476390647485996662147856122537808423486232430605626078960126855712760764832551646548285640934297270663707677615673967854142806888559670770915249971392731030205167382938895979156312156264163545826592881224085573031861473293522076545319892064987218130895105872536376742893563029110199261114869996566776447692397407710349941046851544999470168479320948438796721558253248674788367398804280696517158539027736131066978906175698192511498731283205442762492328258067865230153554093228092135375635534128441612123654207477313538653930065478319843684333611703388589540473298468750317337741366270410784147912048488022052015261216250076004635807129645400729120570759056521701214190030288200474149714271470073942768886019505741538182688041734865937380582232850021197638689555140073810430092915885888981847798700030136321804256499982977148342097025073504796004286197580076822881106272770375507291848869287378779221099043260916497970970376779167209619076760174683162658569038118248236118560482163371395741176429785000033794494992058379830818328464801527650693264417263994843825893537795964837782300509116835266013184753234250606767488782417176105831835589072845950337993461372205089042965664535591488251254816404498977415614401810261971382790374367605355902496296636460215094706370282418367981722541916278005599710667687784774599397484871693008866523184193167552838097032089404845406769641581481347910705434619617742979161867956586050507623004170286072378391089758664461799049107933461361911596497696276123346056525137568907488273407128953560382427922217651486984404910403094398234261351557249376504545317074099845699598042364879556939592703221141042248860512501349084568875287599565058863589329307704584941389398155741801163476407404344943708876151091979199210071485594578828577190018556592869855153758098060793378258834331572287415257819231705147355693750939771181426212075719979741365226260862249905237878733024214743142616200788280656441430428780707296838516596357799763667514771840095649084040745932509520518747251631498349593289133439605154943325877611669710333710342853710553059989896200447588905448528239592628130152239747151088855408383991635349417125618193392314434589445738278084375159082044413533386146842570930169801173831789280014421990482367515291508451832180497152940262449544806328237564644653702050668769397584026844523186645907194692536393939773281399521198425141025758188314100154785847611929120466342078289031577571437459250343607654174910495076595429078493329028946021813296566395141709241819319951804621851035841526996053535181290703552888399103067215467356874701469532625602624155064662128305796012005866968677848091965738487391778242106387260695013885189580155806570790939284493909138272523182548383228681850976359717365879654604884445495939773103272341698493095768173840165680649359160939211595433322243539813858906139265950621171359238776838551383479650549849092221681306416163105277689616524202295919669654984151313914750546755230832648049981528770985585928081598794287940580459789790759699535620827853189311197749171989748141293918347977510129425878943281945090199749966555371459587290415041335201817688053986655814106649159094739605340387942038400702653948235982154932176496897795854517814454773186130637648294674731346955029120763821302919837753577225259834682411478575825631064383960763208238313588454948569225439118755573796751775840191183779021341598643852363623547212271760460369249829168970197319333921737941206996666988324545912335559210814347030530024605796910157258735843449633856088958479172624613138793667700449648487002950199660468906980426811173273983247913410346206418074724386346367411567216963680495403461394662678698624279689814547456615514770276778348243442097095374210884729300139453908974415880006651965511643664399975171547580563131167464834445371480339934788816554886341735435426642964920454430448991907496508769471537388255620861110050151611022772812610261621287190320022123180738702259885006362032054443051157787286529907541160669700738201905442721289517000848181089800591045786775052526388882191688602506211338250999120596218314697564490793038695398509323155358098994454727883969226471413898837714790405472795343957331626624583667802555252648246596324932051507354552208081794468728101746713872587325849200975629615643169260537315340992319064878218915551130812498049965623712109876609203803011188887394133179766810517890977715204735509318938036823989284876641865003791290387895832734286230647952380214482262446067650688519727149834382705785164041386266911230088654659973315749030094081831884978061672653287444868900049121250494113421125938771472217095048754337335326003827092074960686299792689813787363436829627044979836477853600616176103187812038387539366031396450038916642024878960574356305287663182227423316262602661207502522389031143294397378444794110596548458282307097744086241862355531458462933837702858213245860582301240651377084867037900641514375489582666174305883708114776295018717651092932869778027332921225534229046356893746809261315253783473766712563499955714995043832477322085147554377227253054640624058681791504044910492281672368576757806463719796147333509063619672436820026355290519775851708002084010566474805667655390245452052426473064911875240482670850023928040629192325031757942708218452528619762186123759739489721896887221110799671234595250936743112242928937702221713349704569485679038521099499463476122144601415680516157287501034163659267858079495099178097458623290658349745022811571579101480426692248014543795897463955188455433535139450440328354971359068824874267160913790913120673302286895622770435483433401033813244834024001785207988889143511102753830971616247979833556911277550656862653782179211086779549754583601358389650948213508467274471788162718333407329548032503962474748120911872266411085997532501579081921240793769269984865990731596498261718279822156775719825985231077919263996035291200769870178094064848039807280871058950042470323802049590558016965137264756016862790493985104861950455714430464772839812401147108148276776886449399755299582185786318925986043760383179102185550099137467598013659212605175441448272202179442621697341248154142217425392440339750791978872424514271024757532688765868138896042415970215822732416391475025460358361418161732407909651745396391494800848184064766147176482110196390167802467906635466371319820043439938118846507277668214145421958934399186397595064601622103843732635938333676118327717289525797434043219569860789404886908397496826317328776797814344143916110478639740153127856329184261281346344607789371885815527554453192097526946690348831138474503860373214812138067602792950729347875036014688899915270313657558737281529280349482895935937119508422279542016926441636000827466433354207375851209936825257850540883175934729338937673421934200249089461194550379045363584787952626763499642617550813360141917029753651317940928890707980609381970277484742397755397317716623275148093211457652140252425278286481115642873598197061485786281521977636579123407315818449463696479713501994252922438925656427274114053427421772500111032047151899841958714266942095716388303228093889100994652412935623584885248983802268675931465959055942211610962242067032774244897107664070420394171111873572978624880578186395399337316609994205448979635645314922737886711832556672725828685189138857023036822778254889036680762549325262255397569665196912446293967523801937299701886605414014604726987682753842898332401579477975306536582062236078901182467426414228669989331828973551140297314066049830215945800448967463849125582144458733569477960137025802282992797968749418399632239111195823478924540021249292398344098544851653558949011810607866793317728062037664698767572255593249483716394931910351421676548972363673753840190237555000967726918246030330039531849152794126625215925620073862915088287282179813084949459530828199272099847727659567620238595546070199134609016733872073161854903573045221284065830087267259363782312639100929843460556979716484154744575099140168775379678345005761457074083931247248428578032750738581028203216222028457684604525255790623293625467820652404311509966165582932545925528914569227557317378641018053014643042110940527252838966174376506390149370448307749246091400052910236335628176026026935484402554819688058529852824068862915876278539790244632493744898535268899355233261794608286792647277917833634318371243008418615316456722360217537886046626547215321739532250323509032508270185075015509984103042507191077353637379847121484061641733797428517994462372175551825802431468597732366632503581209942694487394852243617761607691515121301882581207097189500137062178783959154948371291699452753629419849580982113404566727025636157180807108106133766067688118322334300811660859642037125113136242048765103337789254509016414322661416843789876055451495681667272270434628506733480360811634271316786111774125977840838050313200856135546191426861643438056470015381952861909776455350377327759684358062285002791011749404817753468062044534437965320287911994817468717389390185923543300632084448759903913520348769773904633264399789860362779692168028228241659230154253907775541663025572433482867918225411643036469545515870136747806324318022802698961555592480424451955779770957973538454168023409588490753875444447807756815394049118438492706489613463566255810181638365699563237424461357225896691077939814065367077592622671058898549172741560327778046048452969883147263834453085864633466053852992777064686880310048086027842570077137606480802834325388288556674989612168092963585156213707283010822360823631764585757534085040228785263652841386963476346169998195808637589920177596665925374822616013726664041398145463515806823471495160659034896513520477843444501230472604313941402437313552728064331359790023006252198498808908614070886065470157013167400211602462798191763863397232166124874595563803782880293416619505257572649489536528671898084579240907557265641584183864133937212227791429331176608517789777674890660594345646989610447412043700184104612492133563320156589792835814707350387984591620703838429795579889115704142743193058719278835495944035848823843028539833803980100690117298280497750718697229647916898877290876109953668624824927563749800748287456211510137688828364731602021804511735518234174151364804829369096591498423829456638054093611273917363824007644145866789518025114033410076694877433885201767843200476953873723588433356687558311651320953232233357728885783128481403315172958347106242310551075402972407099803657559434957256625504467016112385163810627725467338597961427859039094035322186406823925388789306220273663444991844171126812987028083478113956421391281352828909244149650995559502631004036200932064373310157601926397698503115527607850921475940628357874093376452629809141926662234735840128396937981754123625225663677196649130614075255750315687636786231692053546718693073351185069431923323938100690149070312598720937896243660244298106849096695611010400162680668337764268679461496975346402122830856347060447208803602944963162238903636348068386004752575934544378902960493249329029644274962339710869307247087727408766117303885867520984370307664767788321571253710678358598762418110330351452545320715971160372298213894531568446451412086391463644531491678624571405018972382910756239581925620399911898545921647487379337751703771415812031564844214980298765956559208407107076610461819211187959881181078076743265937411782333308942158551611220603205463552496564767162245087746703229496023455685147244546932099170966058929663752471125773946859396293572587064538177030858441298894572560665801911301702640073704428983768916296948417529813507122135337494380712837253321610655773393284296020743303939299742892121708069624144043294978693967921452210705232128724105817263328304661953660672141651911273901207631470796901667598170940266213539463912535980086336053432892287034584282909572821053940899082742004814784285408729330040017145853533196101052761949198167027184653349976404605250440576241867588994971457165459077583057767109553894609523914358459410344764680766536755375006826744160701180698638615282150027114095096963366959884786049999025877906628419445268867242237961429054237514123803339809213429072785821855298165323120449167688292739994881074265280171973617619407474240628758160584900486324601879443091583021714331426745407101892843715414174405859501447296082347716874042160155271373208711158916267433726602117037575133027971461496366508487381773906289369686751456413809894097865298286803419801556082280743505873135904386491294536414605962647449619741074853828059778776052730402034685329645677442712832043245066097274925548761926280821912132762670716454930078533689392765834402341090975908095722531873683473777888651364133429158749383780613796955983227152776058483168029532832845555741947668230409867090348675784217608542284589739125137602877267545870839824100398808201762792518121002763143840699196434012101725647170878531839243461180829015118628432585857754994809206345612736254682062411165672910025231914098826150390164181702743729941687179976898502734511233726295006177022277590289505238870281186573798483874798044011617923438022614038316853698074499545402288700937183296999565507553349227008660131819198578906260019379291925237291397192168354779094124440404601571903956565977222797189547167794123672896397752448067267301248166038587787102564904233027749575177886051437656972679240407843576866258689816450672740854946557768440695504409119891002160212078752624851642068603671703316128781056565335881912869314762418774267247566481728512957078185540383915083892158718319994550808780084034791805398650478411487643703849388075314479745941672296844649653437352334942845018598835285853781845370923252090185975839337227435858618559776326978662753365959183092371361772671277869500151251752952529776568082837777005940285810133552588095235308211132896166207289449340058166316064917977357466712387088926447579547492391819826897144432081494320889606500370281828114197402529757741203593172560503193474616998947140686876808219453838397285990187169330925435001723277118367098997746950334922219004915619134523338534152460768233563801110522799906874396085493050482816214243868866553166044079167909185680092200299874794716729937223639205324031225922812025172052862599059542429102768869393950792050310086065609197416855878889675255603412001832451259342872610964204889885620047110016600919007633901826683863241952222930505004122376796621027476654381416620522787043398965436252849415490025267250708733737684492441535334752122945486596472180707501064591916460774997186476304287952453140466448494329662170245621259882370641098939277374119820680889728779721869799338135709527532246049490243923780912594648152018776269058934910350855290890058743762989407583142499022899909139898939986442983246209162507311518741314527544721893882145605860791306347084014165244939549795423814411642589014256316997322685939058001855483186916071336986236623729589707314052093165325152161349136277683903295503780664460979559607448801594679750969626973923577368653779455342555435767927058043622396871166316521633050917724267049785576172452031766536789294865437155247617457396749733510723509352452655264754743515016667687851263752500134046224421374718423736534665471500223120922509878395498212394487725352683056689940514624091163044345289444656554979892779536059079576303542751118534674529383405846060393010794782543298400310098881594815389360917087156349235470879122669161862722439599491399822875162853053149611416460117678331094650990254783789714136921483003385683614615357213198824655507583496690171281769263597088417559962933603234783708822798764405312879113287118459948564938441212870427662361059202059119325018078828228033270475726759502209870671095889950436239548593744202538550963627129456429014462798804390192201806395677212618624720929116120085375790495131752263443945111942107754577067450073869456536614719121411352908083737862592389080304549402240911152655919189536499965051066610704310908361203927234372549797376778417844130093719900455777250819999375681072922795907577980948943303058649324998056190024713569737934555701874326783880914441480360386086464838029924797534967390970853627279477454307878080453371252872521212520146147162448380995905941446156019994537842275059308995977346829676676222925617931837836791647033096936915245744122828155760599096421758132185157713585439710511595724033839339044184999088989282035008358474458265214130370433045789270211400815711228965353592048969657205915648247309611904494704233871961914341810153990808314734451782263773029451357970488289544838450129596374832645132826089345323284059743683535152797002135803651802675689359529828808268792191234814975963982421185625749235294438091032706367142980526990753139534600026308046258968456816932310367878110050721044559243401391496737643366225244851187237972439982412831267321944552931232604785825881183730574336204622524267076402837469096359871637542091965851762514432147415410117181994190278383954375414656471453995540444637473168907981084470366930097088843869421775661273434515602404541822698312699320820072101812827541304708009691309091937842701086361568093365095074674780139141645369115370190728689513893961920205580312724841427316333426304112537221008900955612842187954413660752425749794346628454162258999927486570115238186464289178136773889506159706475298511155713017384720162213969130656393699934414507419086372124146198145587812767829074580810914981429083973668755306826997018492498258151504032265736734277758757046082962856386888457427556192501342092171832702075971807631560996964786233281840030941693543220101166544325429446357704044981073909256950312713533790359545651451536413767926460050475556596078133529884393364398526478418343231639167614979076386930641450281626318753693313448267014625984852440991605284646000550734393851410001332823150249040249782504075450973493395291287833691890697576998782557094332594672771054962782091209627741314668237084893078295447417680120727303876241758366569581999078459525314698439181555518109022253484304935303009082644831655182434153814725391056757867656934824892850657414534021846452137511777205686682640274291467461054320787757167272147320455080834924845253086465858549658226506746461770861924474397405614827024079758447836774274302157828913725280579981541819076178849186240462733276853684018962217569292610448004389287660705984510374285445798930344763466969279579004793846765718586748543462570552461030118143317230836968980964842307187747619873918711009673721600174642817701261061731460625366925536487976975310288220592230457055288843632186825411764054468668904960012840569069343331924616526450018885345544045013072882705642047739194342869102845797610091285153427314249974060879474928791307516160541315229575910294847909004065698163411458006808156227291182773310194539927592312677825174185460027045651302138979818459389609477169869143001905531015009682964076812392421323095536931400925756703053030094686472725608350923507703615786803905882812468099926347222643142174698008813658410429019698716476100093213846782293312074775427986408340912497478317889286891200021232089876051374258627547735570045176729884091374807383837136547087489269582842473044407140805265748732081419330344050081161680136861281509988073398741718281091827864871767330712757688226602485582013610479973647470485529271550693066713672311039018553508918275233655778265974376937861317593141557522213388974886367456668912486943722482013654150253265479233357741475044907379599216648779174074451437900419690314361079766386710686626658403108123669473391684490110357172965412832926954447151026489280154380487383651151651525483332874615661308474156835496601378878964759993180826221684758887300122882492726462817717023554799082963326036061638222316438879504405256592649469443327973982588463828852168166456536356746467543956845706147634020469964454278021178643966747189618403148066823566777037420892963610412596334157506949259717718610778710476214475841202516349994863927870164562018218436329102118704204638435626363604023096548910747290223755060888102096267883677556704500280933144447807621617972660251036950765660757869745372893080706156244117309691828176250728515029147136945345204188496098047512747955422746101997031563772121531184906025922569813508169018806251804540608464155401540628142672925389805324041332734251392902459311711747187613683981243185527404353185719558091004004884257781742835188644941509692899144265416306967653400232856130332876581618965294779351555272091166859202109886544929909114185046584839128088404976355441790770631986116460249887562513704823507199942208610077497539321093063329114474058874311325122935078889999539713274595526835397631798562579351308887072791907985626597391960441072317340512515069343365704198015682515189096807901439528318682132335576153262240801485307899995614503132479164324391749538712761415133937565415259947476322950065995956298534412991107124820084228571246908378511486916546293550085753212508898323508612403567010777716220201419550949199900221428301554954436403906816776895932899065106220546405957413282355645216168095408336022259777043239762309364023153644623464691895646832667248172929028138055400320177893467316643716001960990361061231444845322062032076001418957260512775724774140998207723127948877870619585295148926715055241420080357124858033535687336464521226274897101816231751887019090687814192827971361766827417089000026596593373543772152578058031912107248931322023842795808364644916493688158978397998952039957107934921153845848847943312132996614723088966979699377275948714318587779254672259426729256585522237231436104948425633385192487235860208107761306635320668864072348572100156187421579657708600329119344454308807168392497293405622694536931286433374645353970634399656102956298159167013534439379499082448962252353079562932955698650040550495950681094256103576355889709515898084181791953953404826538013809625284446313281779631726736127420418199487595014564963146410378591810862482740746806234248529103797758396743671135108465102157482551407796966025213978913396750575568334515818288662682787954142878049075813642466837032065075098109886802678274278440785245715314585408411950981395227576007894587126939288961142633032786120245440062183178475498792941640705044412963890780369549412918442375600982724605395438879001473688551096655327844688784390649930956092028583258709143586337928975472556336017067218150414076799926944054304722382522126938410569800645545946890092272589887967668884470942018938185176637517880473784312278502186457533332361793327436757314099957321631074369000010951210411449723181886004135689333545210688825168756692411324194338007343217257909097751169309339368268239077044214963584402913631509268021399511823996363218109032024233313370376304113314007681154268266007092240525686248357303258036803560396026842429818621882538092260170807209596695282045767220966658490475309234857591081865428295190929640708974260389672471145730655485502507454569638687473074528705104000933753659723024134571415172496028501444676838136233350420409976805912986804066659145247207216302932109107939455467442728597010081313498229539214580104391400063956617251771192403553602776667040062256126010142713802550564865107102330692956673053746101446377907210312212908626239268001856601847575765686608226529232322735409192925356456980567599887066884409792144960156646626376251851488390623326116658476233663891339965060354697732822795256757696459913630611962803091300016901632943899003148814152120506440627286149179418915384086378349369514349724718214937451210538678999576990423124848457631303054154701969590883036332746233883709515160098605647148427790488419769101352071055522798312935631260078862437937945875689226351188801479590456435147230480156646974625811200453290443552928334355826335004746342002268116658964345139594715159722143987552385418164161011809219375937073492956358871985408397608151991953364305171638394438747490665196902200987317664601575094150059418213713760520751518233668781794348999171533829727912538905389854316888740448254232538316165080721200681445383760424751940012476006618362584808177334638938852040051663149120392884162984141410045582527775502176570367648564502405917789674076874068800520801523257489201715127454004536767223254208598607001677518619853189098933819066825713086642969999194732262511988338341285612839001890639206467234266224713152799444340343431562023349104245769993300073100558163293582788179655394333207063712251272658917075903731761642048715957054550699675714022087688725679152451965186708972608186898635289642828142962162222324761894838793564798959144073332513481028704269919078718386774453891291629568152132677755817609278529335806580862942047470393311429601552577456213043981692186204572145678989365308913843669381478490212514856132025951770014896099974784921423009643109417224687048285179442079289692664800003359442928085886393509816245803859101957731859866645662013723999323279996447818106543521798378068296631892881812016866998796705930065326050440363398082427173417481651833961444527837825817859090524648981886477846084312076607838304491776663427227190015995504743137348870250027030125623874706799746729656408736987461257272124653569142031946780457629248045518206964580325304460775282892774676245347868192957104087780105034980602144767220074022960723953387083853621442394908196006700963561620952897039327213801927802422418656533867593060139886512313712422782368197712237376655611861957923635654140181234299418818351316284799491775129351145294958567617954593195047886524127582371195246123478861162987074637169490585521599296932348916942988648016904467555289521197043683332485523515963533882631089183913728341861671346918311050162280099146950601522016693117580110129265486930009584689853969984924924755341036397782648248863393398664386208266278076360194830860783255929890993099283575239642360340478615747155090199375084462108190113354381032513910724399657516670427060747754517147970182215258305944935361829266583084841268707121039042690645802239459205651437329949237262112834850231786437746065306519548147431888428147084776943897046094144809187306037265023745989781942028727988190654298076161590014024849920590702691038596797081707825041230037117998105810194170770364694951573465688005942616045562837904024315049574825431415725311512066822218522197990614844237241562218975262654899125927283467375759106192384571455543881858218122481610530823458911440395587626359130110352050554078375052350144238958113156729139067382033665707268243436204161014350128098983716943878056764553933825743802504493630432799912185381169346280391269003855711635660059483930521865472859780466683418759208346343876274154589175227953194677410432942403953193541824972560234834899841809365677245194574512354587715684592539122006515651617759094985142658021810995900824686818708545288717431272114871804605769364221750150312579128022296647370617271078727413702096537929532648848506309100738741171544417829278529469096845229369280419373014647371644702670033281136103330226342742756504825573622510682635254272226890654318851431748499018191190470962657472237791379491558618117102718468232490456417759486883942496484385355009430970906312772426978241561224674445158716834207880060479428615849991273168759662096280726636673982169770080271008084123449292421542763352391641462803564630523609769909307385110696336484283715038804978040186273638536704386007980283214325502382223783481238950709644353758822527356998880334280641752719491648559097345518932660128756630831258659319721171436119342253123371429673927135221296551125050176736103613105492639893152085860220675822107314675809994169546042338418874002239174099267032863088021077778152259651084117010044368941098715609540564823229649282248326687559707479113614832458877025179822987286610740113560145833455740290722015602303540729419116838471496238406977673986604540985077284549716789216256859765300633070553093539914034894867099316899888580901955670934385190886725845322407751702766238872436624493672920684641724576990452054736764006874960048645035935624358417584514534001707949670626743671406850722911246802021334817224772152607680854336904993520003755269035359913229941624324536972587491199680492244444307418543787218968009816063740588253809512342367947469998766771600887694361592025709908612449610771728639755934956160415427916981406188042825255279201190864572586957794783585221401586091447304133650198833720456614609445796397512349450869501702455462164069210234702402656809441844101793887191031094551397736158124377749015140045884148243751199343945604430494614179981514504101861069868984649401530655446375522604192950045177553976297862649185654804016805559345406559360832641666210472341819184142406361529199798702001315471156976769667657552271928326372168188325438796455072264434553363220209475143087339414676265733811184376623578967331266980181184023444138747181616742176053457913279801230195094552812484005802318157557755693275790635717374202277173936457296646675047950908425783142771333761041085739246275981225256852567565438485005036376222691169776102067114999386936168519375518142856855711857740240868235627555415896920531010328062507037301975608105382723690117850585625525327612294724150067211819387035698717193952893158994785418426635549283691842520860796855040422403904433863710731462636949467859809233368645915239855736647709473390381225035861808611505148308928815969984167068428466120744871031645705964027566886723602076192916925384762693080552952604705090745380143512469240742953530558825425743613802651822065681759624680175679993331115836590640347762052364777956650856890781215125377958465194621509294949219729669571829872250959809225765689154559428266400472683212062205002165692811718648370067311950587445400000539853675594748862861082413243177950073012590544584891880543075139237559908263180337505465463968568449856150462193264104734703670540493846444889363139342213300595354023429997589606411186931494501128895333780793485120352996537508020537556694735601370085619692026978430500830099537318342777270328975334753022488128107787886156702354453336356924236035540138024220126233662644650475261135125945219215200815554405851191826745158696249680484733960965916465867541590532198213446855144580671693886533078211965394652610298435180475121511513949599282378949211005888284730569892418194954318790167343908595796706701612225084531352111381659701768030789009076970106629269658329375096529941542491672345789459181091528153430085539108271538513268601094213539994952260736005386992316721293622668710922154572791064453893775956955988100536104309589386298738726804677543737894156880283408660463193295108990554505726150339060647922970517671326998919009507069557096507822285307814934060060892672067563662589154110829881112235208486627766186630130204721299266750377076107728238510603717226171007540201894823410778923095839403978644562153643052435005346032292385638623102165914806873519728402455049612980799020967480891751058782356421678323530693420551328867965082542821001070356114034848681333279464122759781831141450370109664350953659883812877689243196671317267823212994633680266452870957125339862799677859860691169851508540889022283855649503238167042875284117984572489707131208023704099393987981962919304199823530468010607650528447223024320563946838274698203119666684933724990986611176731735545450553483018870858527806190068177993405427484773985250402902227947451635574685620348056831948242459423698076067020631090031567556474831382677105092287110747621256588227061249661811950470011414863090174252993385102509547871075437538145700585545970849040477469995560870346950379673452957417595342680921506909250613027199374151094005843511487165490705385956541265927068358849833393890548304617395357232416424167829393343407215850282074643602347440574980130085223459637718061035143151868425743049739136077071943287859463215148937986342456150704611107252938768158468597839103628063205614381678072574391982066168022751001439547174654814154423070633098041484653182366918210189217865281543568296090171862668837674256235880232816127995391488741977994486510456313587641981635172622077072364181291140113832243766413419596671271442014857922208792105394213994369890495427202841199780242467003414879575531536192196679335960331156011696984810251311975067596620961685365491874885989703202472222738181110654597210573459664565274859539449802171312503290624563024002507746063199099631419107675142537295205902059565385956405048628499337164055012476762737436839677140293335322237765204301642412284012208339505992307697142709945836418448356301185877277048919864156352080849611147734088512633345863345011658107019354022229079383668145441564911612797983130501433918709875409706987793152431461375252446650582814093148674841969579294548446427457690292805622463014793387556788651411088798148500579221307999445596706551880954538545781013073730319494097996444978954310631562995387022572421856001116252680082323987707538546620943967033918438894111727692163765947551351674395972105448558099737719865579478450751877509269449232330324153454616618437834600809998051510453545211862919696653912148781140860021434738710360383255331710744047471951905900038873917286875508094979544806124008298790642850687826707563088952261025936529712292190406723720809507273453295116801463414932272222024776559881936482413916398188766176202370814750274014631723047139958268646080269391108190375314577949647955041985001889770214554704652791124294274981759092103301427253582327887188495933527533007368347291935844485027225000109863222334796576209804268001598174734110753584929699983594915143607769681217026908017023965972121425737757015992928675524320972957254054544993009131348984577850590437851481051955511555381249517023966900357268106081350615132157523784578812786718185266326165592590132833919783873699772112602694451286838925038986556854453572431668290361165573577745053180243426174193461341187881997715592135492486452452271211808240177893699987255149117985872923327456540785936727613224044882098020042556305432718003037679674686495393760372131313088328717256478034256351857059161689806999644355325772484183069300355731933597913516164807448755034798248388568252118461187248230471148496162336985636782074101000347804536500261805961963488138381711442562469022781343103493365310105933083158063603703720275318994767049476567813886960122087999956416270744215509607670004332297057495084965367458796289148878416896742929321910428457035706367896520876298006203123143162526472041784732712605389605572229218142015904721326235969938976797370622106703512868896821054555036813773510487982185593299624073953924923534831945854908450730062638826860549918457834516873671260175597641455329719124810367478468672216883371693069414423731317300776327846078426264188523793398167778705846506089857442860968368570588850869657220993873352676799648510334009616929448495292638246918225458195218628640081599148282307369627894122135481553146186969270987743566093984410877761287698167511687517761183046104910420109586286125385305208818566700810827878289842756006652795607845012484627541577592561299165947005355861523178404193005775759375939993633149998031705195326840589692553407543128595260104487596688618600549198291535967455584457051922879124285136822868296122244973368232472051968792191631033686816343891039954406327406074538565817012971342800392141208903234415977804128383086946307663177875909770373027603070009330301965150125149859919205369358435433535337711277783350092738291543752640683496139074954153618833956386349501205733092712256204336810180988304113071259073858346753823967599981399669428217343084443599035196480236662920544271864767823528637280027415143989774309292916425879292366746707646166957613396057561970074921406332193728163869807104134843398430800590224550032508843413207091552959523557336783599859041608885014126475973831736679272984081457658416080670856974459880826641603566832583062098526649418915905183680834251064401147094912719974141080259940923938289675740070824975305496421206646465827805434358954423860178140722209264097949299081027302453234549595421810411346163574876884417547512009227749041943938063453613094218437689011433584961621268993723932702533657499780534145436776655418672455040760048368645184130256629705376489961954252379306262667725844596275193518466223918714176067236865343236594918999663349917461648722807364893259382248517500998029915805132787637433396245443445201299214229106912851285914112004121047283306082656233507452893981592052634246523832916789122637623728595223153013047182302940748208350710640607768326512009671666470114679847815171143641195942015273101709673025569503451022633472585638193217540011772386456223474088101277779722197989954141072670514094723388722527217188266383301186379202164770254298371740870362910920891785461662309602614953590946101354465028894446642876839192119536382056863694312808354613238539937844268515256643157816213821175318298357016884522928401064435433284792956292146700546781302140173003954812006852443101045917364622892624146127046185351840366352324063404048980211776396338068001347651972134420639122291332855867245521254148281329990367210498801195688678781584523070555735603671257143066985621995888896784029080248853494449726385007067324659066229236573237702822622684028858866880037470010294115836516416023775141688371111621140604809114738019914141352949437193936822094051607177170963843287978671306319734115780138776880895525535466494918680547223270270424318608357894013085582470636528792668065080377034969803793736494093433377155148720512363409043601846333446601395894087213980924865122428395632724821780965199241133008542511525366319603101773536472863918010436107642646445399680161501276946265096808121056572835309360893543633953532260765503898959732844597483575735584308446692230794117448129820750880317079554945197636265872587462888910403746985582335328393886984841628210859590791791801461127189976486788451543457447703271896158248098740329131178205611189938695944735749042942939198947246646355049475152689361726528946932028903933480577552160710360097517668970111211272402311363406669644976814332596879035629512750478927582766738279733701951308032416767662134918823805606498281654349100126530732849130486897356606393386902297311180580102659926040632043693429364822067637809698394065240507991526721483936339860563730637813332502236483159014104027188682697688969356384941580487959666535008052498421059365000990021758891000474433497803751787617194680025274493159754407123520631622365443710860434973068052463020321782291669146845010413167673839596755316147598925164050171807567922702253433011808347648464440562773761647846815329209528036952894632604191706804460390561497453183059386299917530513624299797317501701368433037572449274308088864716471517948661352773888215920854902417461949309109901590093193469738862799450503445648463067214691290243651606350765179227514017712306396116206369667143553048485835511752770124072172924167831010140092461181794771679015805442653938531560769878680120367375264263277297664201539691889231637646168730075888708186375931341641606995328019126916853860515513442993163160360484249512621748224493152631479692443568626935691347497406590204642187729334547831706830847044284126230307069801272574664092197224159582192362729785780398640791758301857187827224250846841631120623082063596721740177832476254613766631187470739880206219181468525387342684638446587861936001364353043813362523295080802885522003651657289947030101178609690373004299494485640918267251929053379532349947011781404883112398542833128530778781976334955203223682210242465173646116175624924074828966580305779540680626735961925291155280917724087769972492688937994012779949260777371248820888943247386109984110089959387483967870967364177608559784763792767294957841760884149202684502859202874863742272158881213898121527808208632588524186766202362495586076187236345836109461890851393277602207553263511816546602246956001753591867030882733104801553808429329358682856642582500748802435828778146807429877626118494668577013733917050022464329618574941039269208288960920815182123713775026900858610895844859361981696093038136353184772049582220225025765505725111545591628892144460575047082252787952019443735541842086689242641390515351185754116949262834326008210469116821970962745802554178688661549552151589032353195579142454538252403213893459628608923847265284491347748677326095387191889724729148579127102156447149978845625591702814208015860550272365203701951209066189141321554412277247836622151320455507660706955010150510888835236602707279521500164699144737621818280118322956499165268087810904780308420876615879993545614277792310322185977818284193868557601314191954168141298785732639046538052543914772302809443672641635801012916232090382293571937220109987983872798417190184338616161265589382154556932736615617047491397237378638520507167245269444671184759085742650625072467053715778944333740166550040774450906588059669221078619758846295941138424432492481424869321333091097352979403798032438316634848150165596382740046114175000032659431343671953869442184322332394343323837053054048809205953530987320708342874716000217225877264289037619910787333035913376409341699577849677504676119985173434826507529485745172358406097273773359148282621168260987965515913506080466240249172247100283920358176123577612030198938952473974014872469057227046902630546610961607863452974929919959342728957588897482973539532900349668540730950329225517506016448774794450595845049561182497889335768828732253044180291131423957907749920889759691209861685131802358119117568802122486429014704585532039306564600085745408303032185872822017043961103848619387546011277588407272522259109377285417170340652737072962293819844244147980751766815000363445532391912553297189855038703359242923251070479992022784556900286664723176425221331214813871385393924228969784993977713267523091936606532748704798556448814457956428093758939543823744367170228940733041768237010425503262868397881049527731463077342664381302124483042208103635706826536291948263563587164754328120720807300902095975160595178576575145491289893279534126007581995534323033487587210035485523071311547366237833349472107760299339855517167988617354915435186049655646637122413512355539825254217936311381232689234429580859573272666371944512903562532866301552261701495294304463045130536633348991123377870337383845738418335610914218832745445077117118496394166184818237773234009951842543516050549982811609983098915565228257851577981899257605857571589615456718248254603158790597675952840614380823610835663327360317272014714722672947286933413047494048282905569768471354274702695048155830926595245755965533672215519813467793859214069762830529667597238032174176424916072379137616090249190660648225439841729408437297288916682161921441296383814016860326398685929419481230094191469574305035274242302519783044048880027361093247605439519130293509091920213663479300512209057920664884944704985797117025364271838592258375516185509997220073333767570626632055114113312488042727362628994268631085731292258378600555952921438288942412057617459245618274096189551458004808644651180356871574500701929701680508871896633935517414093993470137589496480722894316329851448747545422769604548125819873277242410482606123341089063185244732681281099943508297638656768823436903103128473321634739939857279115352939332740812128538793993661660297282270083876539758496230875128678878630811234505160973123784707479343209276843464717220984648250231936686236358081112052038227676251031415706622534461306255876693514186465713467627412049936310269394169704339416976759404154949842677157567920062132570268020828234243428649621277061730643243858129590661423002280636351961494049733171277807376543709334261434306138358813684003802592000157463686621067179209721019630503929758775663356426962754375532383623190399109768777425804734031928559417221171310253452888808219179914523896461450327189511755090190897860565379505943756162297461398603593879807792531030312858124788444130568230769735416953940318523458251738719431426667525485792220229010458285750347675554490191565417845072988714321852914492105871037907139664255036600383130544567463494202923193431541072235686393372393034600467333871717575738645464958995835205835750657318328217044012393682108210276138265299184603630894540625446890121070733376507083749860965176979778966645986522947322050604371785071994590605603012912521362636381042603179598536372041086416938827542151244686374777838344910331159616144803542208505639044715989796254795516307420122841091815515769097487856272308831974043001637034494592776158699648575360801366423763166656697717610296864626267685883100742288124454663644892671505406358862650786932030117478548251938340519138057516462113779778207225732148836282056407804068495829495785148351161921686150275371173170555078302461580375182341620173750220791058766595018447123650959214903017634346649376356368386922194720837264852590699837001441516684076405692751814392613250699395108332258987625650187364869687108871746222750103882944182372266710332210481864375538143343813829419287220881426656666035594586434131325549680148543353075683266324309792811269716112227223535432146070626325669478277973755985642201937913455038153724824327789839364420623187871996640754013236572007264816045609700138440108739385645042536351194481892849626847676624172147728151721775959768295240093688188741305771834013522881680602939118009540811667756790294465794663816259491334573149484717036517675970245391390718770624509325310329926658206140669336812005552203450787059125028224556006596382929194984666093139733194394184754180090682012284218270337977608618635106803021312328344512418394115895871828477088498231521545463858611377461994097967665374891694424193657310413961016568751042161245738081847378811508373007067899780420478588909117414225675592371145928815289039608397944130276426713971285906462882401935772841555527860911925892973216896883014599322593966153171957687662769880393502013920123057792631782721203261318691617604989567281665040458408936729637949663838214772158397695310667911059783500704726565349557159916509863125718949150089555357762011932440847032868891160778266168027774930364585146949521133358182783434486148156935677556076012464690178217077806511548819516027817657401988329594630119410698875660885020244237255278541180918817247924114422579174202525996809053646065790039270389902254412620970260966752403866896552312453443674370930105012280063131704665698534606074206167245875070254526471141528210248627830849507906704937179078261162616532422787752388926922103217152461754255946832131667741777482739019817284007203720933383550271514500711793540804124387810057304666790177710153728197432865745974856838726137169681818055845983472639831404281876737815988620683722905493450299387709671027198983081691478503161053630065584156844878382716270817550110198614135550281545167584712488764634712893717876824564896016723258042280459199540078597362774597202209638274908649175241303619220567318819335225383880019449258501720754689177567979721430809517199739846864818996597850216024732761428486599076571664105399035346323208399459396454817041480522996841495945826063212540681297003422425339300520825261823401232865235475033943896414681835908490954419612934053168109983358841476328500621209184595125542698287188270929443915642348754271688425778100315085270392038690220092229602631109536021169971723992773609010877659330066655655502109139460253248331062560643558137577548090595721584828891675908238401294698186916832841371336683011205899212943432828704297848686006761254237630189433827336778720774944731682722221938995216019469699840320499446597014337163255670078993028984765192980000286450805941037550776391553768865586531423060092717394285496750694877598498794647726760046284544964923948702571015641429826226501983276040393161920960429014389109895508239034681743097949116698128133130817717813054673702830997719368367149586751189592390340034888158721697539049623271174728892327185447495342482733025936451559478244020068668223417703160363231317721819876227474441466702118979205243039187024328047376427216088881541536502143789956942609294454820130555677787733375367763994773387533597016152902190942951853129613910015997040686728679484819847125216481002503781637478483985694556260170343699943342447627647351391951239421112551347074726659025579580336125622219266032111953125250006438289295223420355672988936566879510379456866124883499354769090236934069373162716031237000649393490972815234040306011159045475604766703701839184314000277195655398738037587732678419769299163301396579189002126823408048216451473756106211099125971260596781245534930618322604445920367219403325526592765547892146644142475427094480341359901587502617601763840883893630706574698617499948863828743623160863139892128348627504155306946259718061082705974052159146780049487060106104162079427988993112883320775245021663710661394999177003614128182287511423972604328985573780970701200633184525685266506966793046917480861397633153472309940303333655563698720228256345195389532406133667765161195470829476561567947447196043811580276262630564495898640257643818021944918216473161258424938674022735774252350498777894746900680835637020030955482295819443548586791285127172794186180312484203133112318069072328682115095062172558837505260030181802714265893890046836964344268735224293943128575975596793485439571083842125437178759625635489026299949431621419689310249449303972687878311207718366768224484896974317793195424575231248878866981154207944675029811449230007600173159095816443792386529718189521667434551962407897507349989375166697486442603102399456719000184150640920182824883123342107372794768619484722162060810127073631473289961908514746406180045759818385828387254950547028248088992407877167830269442169001154133014326081485863946600884914220745456838100871419951955870495332780099120982913684068724059259031824526504740345316515119397199241284714191361551205178328576434676801433725680440516240551195765466717479521050703737887467511690336351144259380584817642802179383191046317062014327293279924194449009305363763027843732506261544923532663397756670169029139450020911854711464608731640953725091644849144154331778002462934998521925328979282790232707357720423803745798137403138632370277661893208024094480544936306034365540310982068100735845400143673284100400592711509395428055422247763185114130180908636560894361908957044607735592067596542178189334617292731423983726675158585322190142533321953449306426362904291290132247688480466809306025967619231073036540641568644168180849567215884486811330166527780255392660540353896279456393928955234491551317267105611300981567513270909090237304861558359198268517916912645954077252383099649229295522923974752432173234101675544904237944764755609223072158031583321521003288650374011599336638250726408648446581956454714331587633002298579422123286623962298887598042794189896830281056028820094665321551399914745475318743112058197267841591739609743009843427356418503650210282749602872895985149984348962344537000712345168721418409053398948422261213219465422838665063071714822834261634112113698514877349348863460931599145849349915214728613067687804342483468893828645039983680712389500239218625270856153993206140040667232341066848874098408318920451763929645980154318416448414491671609817728666751426155581513700769075653724742860025785920370476566806086015907599321123604156772124737948140883420335333378818610104361541933072927374859552655627271635389909232194559714644582561781593862359262726934925724617797580970229405366378407084708947266833829490273837480916080789283375706884971243642011926340175273635167079583276788390680218298788219003470641500977366161412900460631027906197445467394454399863620288317983784050237981205341479807673372938954805952040477459383419758918043665590729878931716611126357046472286400287521276044578438411606551772898458741983733215516501445334185901998528756140742569936204549744906448509389928497353211629387714022028213885277545302968392007262397094317128683969799826808563451098239923253291560048229103525665220306455990563693198724449606729782724462992335025045739365411400650240552278622683455993120290110584576650675384557328558009924978868031373323398392505980367971359601606782184030939367544276923118186291374428371651469998401650822729947152123294368849824805047883270447755982229802579628997672571716559891151242801661747854931183373839961064702326410647638002797109253661882943460629705324440540725751768880899343264541320357549900061278175304145920455375356293357000153863126218067354518182247328765266992621222044596349224082140834153296934552491855132761091525412623540658472605310810977772373375221564472137993836657217460974270290269912396843630015212360133734992522476727189077597439068654649142922412732251640271558560145080251462614995210122138437307546604202644057390317941427691477075104056560830084454013020913112159478003302849596286933732101375566949755642039953067916079041148148275046067675141301772394594461785130347500964260060955307033671107495501145737539785057027802337400162614438958349360780404453037695870002682555180345786936601552259563543282384735939248358195932396042897726023789438890687337543490443619276885277187199662371673354524419235266129245903696081521946954549276407630019838603822490625364362159323209381859418431910521915677079818302681469157006863075044652757744466712596423919093015505619319653761559449615304558844855833858225539334736127217857594117293922410852559383591506468654163200209423174500901567305816395826940689363237482275422983524663907652480244149119589564895905652094025168775968296472465389839086113053218091118166215303138463914533561403982291136529053004063146194214851556700977068289439187861585627792378162915493998027211335032068855823668646820904152003441031088570061812023320575713792899724722248116616730869010404009911207601097735967721695589015234967612424464881731710513038387614399499182853312040407931184515612632520038285192244762137104732560346086212378760883839595086320553260711449393006517402397431714429390219800855601679744278012992949117075302625274734029696870836178207073594573628857939283885291789277867124181115968548045099640607952034869956585232733325275803448250814810507172309005130201053201101362887743890096463599208651155844014505919139697486894776667610078373766592086950774180197125761912470117464896017435003948169588029230452370957391755586482118558299211021700974623963126792564711568141099599988262035447766087806608787444046358159317310290624389864559362983704958419629702279134880136620661257926544900242517106987428361191045941125360668744574798872865583673837366359985979097801881167459902063988907372187019530417859148058315546098892468160995006327175881472220216283700514706488263582892317364615166682576915035232709427851326707645138935084794242241866191843864375799815766958193883738326696271528493274724764900033159347143002484424451538744589852197349179321478351634127575456267642679006535865404154730370630782979827467560384562106552610641194884551438040596084498856849269678057715375660311905025790698055051642335870365214063379527373316572275456062868195832945309385527269522111766473066478850979501852354435255654859287269170144863813673514630962595608415758997961467239168307810214606345782245683811738120201288774602337610349299255759031747351694868790181322114892034139950442799932439471262145276343085179235175291905776433200789804035367977099114800959187843741771492724886528486515504220075561786330170814481965294441173790033445733840630807294339478681095058189221560070045499891388433861729208326933386528646242984169992502349581776229646247419018819821554727323264408570925097479458597426119615858158763010897097686306619397640161232150367507771602758795499199472249014751439134866651325384917851992039261730486074715570712784870903005998011527144560427055181050567969492901540941910532479702880772997270113341010538766963664969773098955332102384942987768886806388477408071268393988554947894747485325497721342754264215602964923780782812245590690886256589190793884583957833492686414111331839261304482032783140636951324395955607317436032222212579818344412174071811767328011262509646087786186054207595720902233791839493424500350582760320697186717878579588959227204620445520367147420601215599062018503443744999458163504445690285132420374569637935773696398739263278654403097835987022433929813918711586730409454710380612215048614274746074334229121569032972099565127206418053686952435752579798533035034348853967036358122551729715833269113030786607507479663896552092720833727834358960407917244387317419027365069727300857388457139416628976552445653141643621512049720981643205265485252064902572222764061123523573074296330963895177315590397332529161069536395634960180548332915484198033494762849845885676560358234604141044737506464040233600450516398839796738185818370460631939381764661899789473208640179740739937030634728706621116386394931887100001695173274996938478088664902195275891044839502043903516128836867087373922628724728747130918134298438157647331923229741893283529186761188034900648413493722444851231234174538894828876405143198320407918028451452713110254779882629697085048437409465433408570193876554970512311906511204173884987415554770236566306994633208052908549431914630189134442162782918870591642495439258249382985616331628228039818673243344346247216926014344628604344422272674808228346021749265765617766226981584756607048984097834205805289141229222420085992772150660160400530395968691900994664553950622670744042503505985052152082334444794465666308999273573506880969052665770675681589633102664211563431873237964493516303177893709572746393840604987505488986576955320969002588117380609313714940532457640245225644094343629814779398609739642388878862041389004841117131410371290957678405839130847991022736243199293043407192900978281226495346187317350958146515049505748580172263428578022216448395359992318929795170670290751070705969945486592015481454778548239733704532398830520818113477292005951979912236106215606769995323038418395693587517972829096365359110336797238503199373024265595548154522346544098524120753373687637771639511955895641686740274912022374445562310648168339864102308053266830825745246975137248169739509172592849100743642538567745494539101448114278510290403508070583016800288440300609690992346472817452055622372755025120005755234666050751962348073189970145475153923648301934350180645295889727749000196746584384715072877923146241517107140172958054017889207735221306595326852169285972780987929650412195268776663993829100407499874484975492688037114293364207008569397805413746832206920297527234768667586080037498825469944051019826754707900243363769251135040283526749733629737185992974194966497905262424830606111089985217386654909941440192656834195489109005572364496378978665218403008505600302443577733812610107466610395906073633622825595934107777894774269942518264959696757695508361926558163553305127145430064316729802198946773394691368582643300304428195548895731392087013404228369293744968450560082408619498449572297729438566520080205887016301587687768590367618700702719129361500260657930022362014315098761930283917799351196426456063999003375244043565876096953954022949971164826481376823806355903592612115541558032449115457966382623760429882622215104572271070751110684213228264055376240458552121113790145250875079778097221456591995527327427455703417389691962415315348100727162926697236720914691918326527302667244201589830463419084091308509519437524677388335343046255867306167638011010082406300152516897813924208567878126596219670901674185563066843372641673762753477864228739746509080697914023036536750812350655474389480604375006691036332677759968448671808014616558578363075924508052581705197874237377200238610513527497588271911816551964903701293821057166758122710738472010069908935862751888353817763917354349100178227799352021271818417030047783799430558038090174948540266266982174287568629322413509796702860668194290999793472251841535865002544548418950147112993506321604714526623744430899054083919272845115789017234599612741615167739203405259982700271103850725877208369916705777701423572305418218144474357664959373918969570860613257045442286277301687869493729781252577806667144655434177828882378085660315927522282728556935845192073968699102789538204042932408322715515306454196023223876211931067928921668445707268433398266622112026908679936847050976974090759645782406375268458723017327398407507971263680387560718118254928770478553138105044926209911338413824973341999510928872421539675398029996003847992256682008794568210218797895854564843949708645097383930627494643984155866388086671759190466678577682615353885235836598280764553666353051217407151656542005473042241280969156123715123425246690672579130293204197873711626980759584426720528856643410373416631177602183197447193778263461294718111586108347938321619518264582538157401537269683758524101066303681364385785204435986368020652102491795520448092699167033274947522042134724098310292247814019951259215687486088347836595324061972284294152059511965906605686725970642708672571387506405765274693918843288323996279740602852839784645590885387571307077057759509269766397409239226122134578089315300839310651334590268639834332739606695218577869912743907981729525932488322078163228489673763741570235943813075183674605486829260502569236602607734745327979110442115117638238226425855615834509796485007115657452917843479366596974485068819592572663548458599009225144297708084815833309109865456019374615483383971214696999830104291740787910023401797004752107502431802785304003711410284349158351991093623300321651250065795864466782160333877641850595914443985030232443994007364081860058089612298578091784051546816848230329026844749515238773620248896520756334776317139419943533058416777716770459416888918094753748967615192702201457325317890079145574361166259224790235782116063216355370645367767096498299179903566482776698268169883326163389179030978772714773968265990624811951016259037684969551309421804860310664719108670210710148800070262316327586389246080631988382715546355438648030789002763422078795947071424889312960290309906641339150196312511935817907906974559933996468015557152806374325229703004295549088480562438675793807037118008255964654005714564463740163930450777867311069817665911826988826444938041432946866039546431346734565252516398326776195118326118429683258324817080003524887579140023204485094769913826912631158620287330980221401729355174165284748146654184608053063356618417749920702978208892077565999046764845702953032621404968840609196599461979967139362310884063036117231323875365598193410985813725601687520913097782801621630024206544825647132350657585325713979837956148108051583706421975007012275151356196787112280856815760321667043690706215078030340476917119947984466284172316829641808532905464053509536755765249143230217230906308864433757486367848135692148365176954286682246752466569834902978259235781466808155942274093128580933069105734024598844736475426360655503158741334674171773302775888693913190523305187881371506967604343931129482029606067302050890857123419375223015279947747244150114772953249723449411669839136248256811770802225365420806177008193495818661307307911148937769686934242409618651916457953280610870479838536716326332299018875961719885650446721469468178333335312213737605962820429652655587324244436545286585068071940346879121489754701006259615550466326590050053108381018569828742311202426784914710463299786311999220579406077033461284407904218970563566193724851282893113309885714127088463712888578566575066892927625575294735194672664750807065458028224946430603139930984503647598111204653988199445424990940252021476564424404695716555633497311145470006039334718446488521078518986681549748706162002620236281497142386443159303570698754522004543123447048100804975740170005638741389290786382694394384047704561717571342404504232677608663141778585357144078495448795776171639775172839626265627118530649234953789843710398911003488679766594542728204788139639654804404341471159163557745304537881290148251981605525161351570910747958823159239496005739027878958184111649604023425872634118478485273448429969668500803429474184657102883073923466834033831875868483925935574286563048084298651574355583249039639878427331454156250588743260260695646176332422692617769572695092543736461144716866029709103700688869391516013560845487740413074003190271328718644692487315950191647273192678601097182312245664764329194465725024257237169124964841865080736593092705118448399519610783813005225219338413007471644791092772905319256756739432156297383956113471161628691863639571945989390417140026987578587508937106163621759131025708680850041682885058872863333169361705980204126624002221964746324973985758226834653428854119508679206480942108032668933723485856778345744682135778037176476294411678794083101750670839389098838107569790122855647801640044165386789870209143384956438575864155125247677286153820628396509974662293040898182987844706482229142400418188438682099888156115936193564830231603902158782452287675215969911705730590546137389943971694179177244185822449043279695952008299233874829980035180600706998685849093844779971038591903471249450851435947621368907171570990128982604447815908235758897553787539214433573137007291613158720344748842385669543691225109405305062087449947969534518120407476940786945641969503268372760518211067780673741190551615614656170108891595813361860573293286946714767227217529669701554499846140903456170027578860277103353867330139735371507336434113027004292663626777517124889426022134407807665747281652440357483301572612273889296190728320440252430457478897416417108914535466207747187057215196494477331926299669063969536899314966971858170863866373600191593637841915187854513009192809604390825633658784324856053000095087693380270633970910019644683691378020074559162240061804263669532534510537282441876997990004751840102509750101005019063669506480002861240555439440485605708794536960295326768878220137862865845778253528300499717889554079894396841650005126532676541875767183172784475236831774085066179351423016509754391855046908068414342199289650036531802014927518842257723287222519980632735349781129817690532793910233755846001016067998236404924393258447136069978454289625495494551761543977244497855500792853124982315806480743007067468127440403277721974670334062450491484386704804242285281966450462351219825023339721424029349285165483245223925617170699271095394135239856940480848353665779689662873353050539769002015177391559978475486898096451908508984772655376307915123932091251247773546463501207426297453663640007199429077259967547851228948626684004637618284228490110312061924230100816454837553610315724769565051655914490103918908949950685911730600431064402024188655992583910377715079959313257189606407359807075551966662746448181916834560631141227652852563052815665547779302596517712903306469040178570178965943379672179855592871048171249692769363321587668416250182548842254197401971719280539503332028497253001692698932485089661545548839862130284389654968201614203307120386185231212586902334446180162777041404418496556933488566781066668973561509726382425828721105065128145561110778962373241928399187496594282405433621812859450101452079953413195606584300241885068683308860085876640196990947136465871060365000312383590382996161332978531568610766805793609238002261999931631118038155878019229661758644379665576675442451492806359947547745235704992331870733805359019232932695582923634563916262517664569079597786744733366489943530162000074970917516322038377290197032617452399592089185138496885254626434756464534284289096663637191985686969205517944335000862512163337805718594689700462187747020422567010495089007798116976088577608873129814425164920929848626599041598266036393223634031678988018136015894355155388276854339369994982705786342396154630160071561928317373420642566786924412558328197829745115964102054495206667497264957320763465159320381709192642102605448103822227843719377357622619954427608966620182458944821774211076642757543071740766144142880730285816303977140357950886064639982979341496944050716850367468109569706509865938647473610102906361884193036532333408238572878349160857204275340664416113602627524897435559946763193228407934066567196136021936574426473529165186892844463623259526702897774204243432421756009943965921080198100351166609295466992081522296171744300803107514715655883175972898495588939893806409666623556846839419922404372511969009313496803218668385251767474360249732996869743869070464311571793061228814935934747201166838708770638095679411579319176632878639357618012240042459042362782690935494241533802602666908823639151892778723884568031069025883661394532591608160329323191296610145675580190556174201682018606991851061577062816527565535832468586426421381692645899630871468318787366270582837950347210154429370289423666636897099107986826663930904135715823851688492463513846017918430684998395252687933278274671594512278575894869759086782011026973943200911674419270457476048645907818750749470657411833713652537560460441208516935810525556567419718030250880046529075757977613284369447124291236021864204010396211116306576388722041956632620079649845075060069009826168835438611705732435778698222727753956426891574377520691919056819561382124468317694120989977698453827572861026974646097912984931041757623469256323992900737434792794797238009212226878889405706281969972974400012626459373570583330022550776087713871562720118314852817991425077298038236997487572398278283745670295980640994765351695635385111217858303764017474271510864885537035514513651903180400244890508139821226276114954687886395836843927002376498803464559832899637941325223477135632321607168059754179873648835029333982027163789141332408032978016353602769311129985313936958938713570975079676946024544082667728488346210824170880872191273010853687941454424999025030149871501103645944339689416492697805225746608709072772140110657761903660888969334067464862694679560968304996319826639271756030678654707498783199903917861154013780341031232775740446535360761954639897968580568782713881774896266753223472648118347757784918431754810339956560622681944607266129062730659950644209564255121560298624424110527307011791318113421300424965731919042427635568556170910445328032852103833912709534803921407162488615410071668911604422456183189450536608555554224084572223263160598320556224662822659111184116106792337052031151017452361285698648994498281643639713535387775583764200701748421520188709074637150760386525885394787039121783323361968503821094636385726281981453211175591335192948493713389599644553819838429251785925792045975316027336949464965975041625520937250178627307298422545825450230866365652137307265364295155727359470087995030791974387718181833201883361856683011014871477662069590500727725852775425983095741007823940908086403568224310642657186306734775852588641062180016937407083183931687031491461830691951245410113712566661248149488571005539739198460218257404960861377269389775851175410028430352036129348953868699768291107030713715948632570082207920144188357403987852757241569917162870405779665792799432524689073409921110948794245019827316101988817986233765065869627830872522794477716947367827241891708357282753249533815902348892034707981457938197522322708158693752418058707513606658071528332204095473457853330572453055053768636321559502937659605944092826826206741797333876283875331316673040584086627212164732500139276543177602538939698013843717303863100883751919092541647843386935338972983863942352184106558920981743106355183688744644535722542586349391407098866522930313984675136786997163597109738899861029740276102310826149010094685453878658882503699343476809123362041444619215698683673359555421164160559553456704433355995425576364830472755570337403306583253113041899907684440691221466662504740179460905976048457652655297664613798618894292289961245686286964126141391525717989984098200487431233831966027562763685760039500199318855443283175992948097546390750657610923561723652637759190545713912534058809336427059218323787838761617478485535252196935993018027299902374292843431710961833079851280843967323769887662592904846146051568105378174847928288456327559122849857969240047649265591214624903743917610556397580869042344461817804802774098125335888817616351795157194916087131146007275930888873761943760365776954081182520883256253476506946980086070661275832719961381423116655836600487848812242467764804066924507734297178832746232659462706844509717304781529283519686005285359069979469462821971040771848394567904827022340276968346843111975257786453802525405805365709124082646134781757594932962645323402445844733507520651380035794062085285395815589942305202876726637910913427948367803902045518056560429486955174295229036720139630780015586141314975278305077411396001775403942410268099155416264327218426971696881634077344542301408163614421066234607330076909302461700089085102672878609039140917025460559413607949320002973004038428281069695927204206235669990462181681714961635332549491131516511808083350782713149748777889037044631943631099783634587270490358522068461832274469460525477640999497585016441536633303305939400070959297475946260073358836632205370020687111216406372242443418985213763887805914081199824057726607736954107109716643075831901936514112900396944110776864810111615958783125472339908993258159480712603723526374743064574470784568074198142952488142497250422958850977826237202584555699317619797254851493554530250148454349110834784416403584747760284119298745492956532633796902306573868576113323307547870220817273974273524816329283270870270768341531859136036115983158766706925998310543735598959491652268013810333993033072254552203938962018681480079973119456680910772772686714121946182498878907286773667442694800939529141479134013696002134419987553286310288639358193466941894218072841493704404170661389442100619040905518611002457598663276700877784656267198860165404701143492058767013788094389778393244825431233556139360542941938190864327290754877856044770404494909356450026036563121722191741943097545596200004054002441171020667640352290984924616211466216373019472001800021430708356250450872536278118036417045180236105865190062101863306131146875209179347173147554612189910955671984037094811078053611979479373503722690191655241648507930420584665480930808820088985243339336738131326744571712216197491225755066107430579507788114536465548055858614025572727105099194977077569144936296811148404982607898644650386396981860842082891661911681478371480622380987151916131532773074041737776987985364679176774413616605790117724894992462611282409399341722833613319652068841569017924534484040809419931583665270172980241532942998166274227199579719856952685778407715982728348134758202459738597136541526494772361993361040945902541675898872195002458565953945505143529927734448574144333841737361092155200707890216100927543246638386412428347783599196109483997594059617502698431479111241332408498469074554565753937503535043814295209230088048634029552465187053517071474552877606788727694955760361708741700380850637186367579619588058341237271268341679249715809484084851645801834163709181335980228794598163651997968657565535963904581708577701083809130776546218163030766413610228312000643907049931906503440368750667515999311555581459149390393668241340254436869418523144813611211023581542311168344119631282179063246249699959728746064546800940801347751743450590713854414341446993085102957322850954075547193310342626851080727503288722967630087330564144258853652155938510080290906471066833218712054093903356484024810435601280212925752967282927938882322460378274014776544699151857485709862332973036708925169323260505636923088125612883043327776157143789918710755547290264869166863346191074497346822485875109637853666827862222526951873242118121505496941542125216428465159119301302856790847146019137108937594329252704799878496445051424099848906754934343760427239020336300136754360128479419048574363675901404400659059228150625428068607340797166943861074923892117903960234961970541419866232958026040979247879433002768675617167274794925691451878944436292027385111969112367541589026127597090376884429053169846657985507574154794798204257219098348654747684338264160761601805695114458554609891928980395972595463618331664623615703965108184774201748899433182020151550105942151755004848394801851620658549189429343957656928144468200937575460255417598816568717666419208424485247319702481225624505913126356967409450866584030385533141596328394089751558461161285604877875212221455851642525746770365610906679604121474799761601079218138605218130353725915130362691963852340744214553534942610701382873719442314334045117411154521017195560974710252980169636863257804845406785762906749405606061078700991052866831070286123584160551470856768019210413259061119965186264859577909437495804771312930851620008093565411928710704928043499084368774923512277122583322927247918918261333694482085151775347476211773138940097288403343122438403397544990943309600860272918772166790246575566384897286825079744070871090510118466041003753277491290325157338671445230946849237267785495528673437798975607102943082112509637050238858155501218402588662171123019170138048905148699584123540263933451656750821370197408604654176632292420033218904253305831283814390747880263770859655951382936276981732895259936665329310997239849754899753927731560881086933184418858621863184713775159797594097044343522652089911406371274681952660072412123222670892019388990526236644181107124865972949974416525750739910791620080338179150204381653036944497482827629941928373061856664827845919537678545915888314843338815998590647798828477883663573319498061672612124724284643358626271156501031782809549056444199233409740656705524663142598764418477423359190814153639390601692614365690008027162495298537644085104066091338811480183857154183281727704019422906069577416366383036492914968094370985306817278303584275882691737154532192990590981119546559690303736597255545687002602729351129055737865099786682471185935716705034573333108157918806733286551589378067369682983416018188289960171656539151373921940538564052516447818167334712387818558543755403968845471860754923778055208740393948667744810720533113155894846692737669006096251154362099139335936871478996003346925429958728950532179007044094639597967763678964067712967935660982392611845681620777442858177799585221899656872487943138547636323327940204438625819314809003580289595336754472508987984414469647276452897244168017649049872442897106215091776596031188217645792655719583421218648602511807908217994023769579892055238226947607149221066286673129075822204721999798502600337540932761210249188805381814469804295393748811745289966945262053681968772685045572768990500676808743418717562432643779617584833251128966006836645070978695165692945361455259281402608382857639958624062135506562839382701018294230679039563688128670911977684225044507742567336378325648453644440658414052493908795041118895382603306430210532832107164716380578089461990558770233990022401812107928207613992020838550831215716130089337103713943059831936576329769962281103427085637415185416072587560531472596879515567863586324882328374640252555691646660055561176371184865854270206898065979080408906915264202287314340394035787476205622118140229916868921805994027892603616381016519201948138096790023671849978846579773947861495222873978586866672809408696622399776633541195251417612519051137088680047097486962643210974698829980227994218873126196394415206636752327256470090470301026363194242354112513838968154723783083333543075193257978969318163181722767951344836359907530402317048386684094279671766205101903094607279569411279080906553168476790754971152717003131033118101214105002611533187301334092981524478011603494024014907022379376680563450512872137143439451943381262370484266037136163894884452772115786033786386755733861306060136442551194849189012626997205705900221050207577496210681847848932117879510063742308698021255794387839049397276544335857662585397636516560718282174915199741755168754810039283620848212980157803351516720460023059153146596071461191654872129607881648191893249636435368106950380677174184849941994798424151235442548900670786543988284540819432221927054751232583198441950329721742152936193489381052813429711165822625129538086841706286600548455784871735727897544246477302440170345352475528440266840483951158649847865114334349902759863980143896266717862528882136926302316248733506321646303572706518107643719796743833123077310019952492713083251214942531951139796952510218523709851723490153791279817889442440340156371153721128007095666098283009982925250284114129691701789164432041842313829422079746981068240876038285806205476906249950444298225910039158798056906018286036579686360066024974972922047653058659990037316258852631560255714470386245281706570099206045911303049473294649658812687281917131766638936021047873959855654356832266739931654835362437609736187761992325913416150444821104546630943013936941955937515721726245251399923044608938411880171191889150038752777537179240152832187467945486498781370478954216749691765637523184429673983671543430304376263368781520943590254438607386157388712936701458229074579429472652774408473773083780383516064177020212541878112730857417857526129625259770666928645573205588720230111753640705737871651534557819293830586070943993080485855567623840359778813123569147512474003947672058997439303196561436987897754310894274050440693770766727800790966278124562293633509235431393083126756248173086390101186465799197256569705980628092865882643560460160769929497374190274948037339045028176828106532695526345513253766137442680711381112526716422392293269908228836339205435015705806058195971816932129836256759780676120693932516732137121580290203929079919888565330366206929108535730369989277753121661146130812366309160301859004649846804419715423158208377956319906245094766977256197885013712472054502929456252304207240100539665100967174501341686073450807879549497042130325295576946089069489934007887650026954925448149250058708032791399209876720579354295406968410868797046529511210923609744583039850382763319723923626368736704637608327192337011222068481766121111507508560419885402147570238614048401417299967646670497694480881987305964998491663420863262477583608549051030696199544166552982066650607642284797512117067996975400812901494916889477590990837694417520208597231053449154931572086384522732321147907449478308553843195392367736986618344960199498054085503593898684514056405526982704645634749551393340169423853969848229000274363819698550575857785658969107071443035276302659774674395628714764621258178807372900367886589966350270328291235966773049240735798883199028782084228673435678656614443978946216002241312456873961642180272261061282350593789755680904367390394237589763124568989847483281365493073249455853618505688215273394298636005441798012361342225994027288970595568051798717854882996760741098732516339274493987355084108392711391895388495757792460443812751273116685635655244094661760127912632546295275342562512223741503054021875283235557292760112625185565838877471363883536421585613710749982890168577808960983935229201052183213651201480874863576406258285579194325658328180478679161940066343430543299799588063639036583651879482450737284989787371777060176642375253957768750976542691643040680137654352481053560913197276958202717680000155427026180661525714212773774693704064665083450888691442843852684503448741670422659003180314049622942580690814829176720552763193312085005541289845325497856324547511148306005525444010883995140962974959697120432959295475902944849377463737677797374927813022518401508947035144689063298862215429208064637057874639800606494243588912884490677170092661365022102215779449818636345766428841913175719489031969716609898807606742952296927141511172905001323631131649590944379096618402924628283794624115873059531012834824900432009091685230500265729107670802545669086961635722805198213327564880248900713479564798180661596968650552531583358965079978858416485164874116852760187344806425602591191471593854185234714734338230969746291604454859238179631223432160731402812202267439519651394549610529269224782097548206309451543239130025903830293526630974637795241896579699735850705488658207102092249923321578725874894776264553021094868198847358112381303397237690725397976525699496982837628449968237456131707012821683389310372101075542689220064631769217947285057402098066193198620790530331088848444230368828236301321229369226757792593632312367746936719645726273290903501229431119627176512195806403918445321064149908464738011558947049679972210035408361347516793490968994983180580745965165523285789413486833965967283263908859313165343983659478560290948136989609800834321862541300522252076247981410446132094959607174831282827183186684162792936805829368011895458167916299137568722795364658197451225454273857482625140098432612514307751882784688457472041764446900054127845847026443088765440812631160536859814374611651175726689079730429262750096808841786079389668191451130167718763401327345233712821037846684501443555781722087067678532915125412231382209758720695353830772795392960873503508903786884602951572202387957186978954481119100776665723365801820915764097660125572546014410851969887750620079892751178738501052600517967858028339669633107606400524443648803019921600034183231477457908693684524151389488707147798028417341333295837471164299694606384310432909760469483863543319566440876499513076577411426011328395942210537369838755401583095380900696721149983191639631094219912325830291277126528342383380792342015151741156676915034880706226192677528922557621513241818257997460644994975286481285970907179660233334482033546198805036468279341078872423440116779112965293414563794976574620204257678078756177754005983451587366302918008833472139497889127977441300895127167781543921219637600550534628387481863187609570056802214799283265109440687205483194287293405558209073223451884174924279323474222216032756518691593555551285349189459213016678874561144749941872104836490981990100004316989352774677937420757050953521066836357106507277514550202948385762006329177236674421997028104186415211963743234392658457342528657456641709011307581281611607214057584683079440321715311595929515343976319876290387473345072468310812767561852540101199887571496625773557091879606302200713983377127062218842474308846712829831761461505490217883035025172301940102281088444354356758757448251279369335672356275533073735282581300633335705987297835798646902639349505373688689932353836616545267483783650431015964215560129005308057877871774441380349873608368521665756959402854873826969422126448839733268361595208627710657211211332974687821297815224410667827943608718713854432523870804218066339321510553147504921383182240621918672702191516905911535532608312847188924873085662022344462800424572074678428658551194518491395163102640683961264730464403341779191060641207387932533173609495071743889901015742176019670607014809239683412888977524447256329904763546292571334613661050658297614750017381565258970950225527596767058152077997879368802875523899116331602317654287524420467381900727832641434326572492595367778027778307227300643315242474774155921672810689634963427095823307574570166794560903031066531958754834662408313012680700540348580924958385908092692672333602854209503175398704658154990268098864395713735449770855960355667070830200698321960272080123360000712596097413138354975103615299915171697309237078039933713341115254132357203535406092880573977137822377779475243863360859188028810333603229379737376862975076093964104803415709013748313662843328614656972381475504428028228316070100678206694942912715080559069388367163680459763514068811111191495056108570564562674651106780889123038295233026454634828342996000922374856913706721279439333789339119883898641087129014531922172571661120544799089091537910940807693249195466320159527296060975446138474274257463559423282189963693470814197277337177682672754568159045638194384347383131412816135418669742756879732612553041989020751730266859362041645315757447134321242991477264965535943295505210033691812432249437009408467620559907236968520569762743104780479777110446699136408191986634177143406713206613978070377662464317441123778514126783604823159224312578538243094687986370799565898005506055124411232095579267724029283400381642456730631286594205522790584365054013727892810714446475079027809622998977862374448830817340789906791604334567554433309546111490805112048530881663749666000443920069849814022158361739126746929494981094542238867895432205922720482321632496229783343264216386041804751559965273732687780885263223932754007499970316930207531377374140022155132645954896351731586357347475771771089112867289316975897800983345580953585828796543044698163232005852117182239604918991256346181936089344246191546767364674806261276342859349336211840660792240536906202383447408426689527994742333734987332279530628343541766760609310466324099221939780972750685197173086550012093046986679774552643118812436956343957083557629980165118010657546369852380518337849828802564002006451389899020093763470256078441244204565042120640938476076104259135179787486177535867573480410111171069040916873459593893810194947606268987735033364163938457034451282382540819634620077710605191912876718332212774463027546459240157302916442675231906222517436719622517992951416977278100033721971775371299298806646678432582677426720080070059271878674971162733766974845145417674489253360803216706500030280218039379011936460319912177051830889588190640515708457304643649686247779478168815209779365076736504999234344961492746558769172825167894970345554589358972150344765883510658336298283245109581354438608717156499171274293815245956989793879253253035803903636206081866037002742879775806450229565918555066088905549370932648221531340751752630509553698854419557637673821230261168078323918713856110574826276061902451386052068086646382839069823696121395328349439104698546063167515342019696975103921781212670466436730637711137278783284473076314584553519003964020180336390724306882087732016170928360809932185387984126955818654642472249355506266748509883996671303483698043880259146625757214799646469049091374330595280491804078345432732604985593986036912130210890610528772451420992039515933239523588759065822549057476604522402892772529530235324328280639318782643789551453011397144201132532969027120930408829304976425747849924067153214091370844995677611435764227530727285718901356447400888905170382811184044518842966042244539863002378125392657646697694186298066202098731439916706458805052793319216192864876278465091994656507765190059118361195492569709443457577315682348850739543504653292111482032468673582411365823034023770729382025348233485874998379760040270319849651947809409693352649386698300706799950005507700438345101404921225812151882357400375990884297223028484952580294319022198875826607313054764748622470049987823591989627297426384029602945238578856682360722631757002194501185973041905465746043229763117363003467661665191684073282931577944452300191690472289911682805975987676606712726152500337076654940116429400627655048643463105117587902291774558040551665363388533249636308671397695411987382972222841275679393459101959094541221994785993768221771939766787326970224712201535365714742580446099032114600088652280498918500372372495804742286639632652118969901453791429747955147251931641908851766543986755307277661687886373785626471292112664965783621772803187628406154405402864178534171930227467103494957187862978532945346516593325317405987390119115836403509262616856501703181495399674724598267449549907556054242664314409773233794534974879139693551229567591052750348789510912143021059637130989112391607284806761645329543802312054906215572440148489908274809392738773481894285915602151586521989328969927710061174147559897966468521575978437488824802418930237159021246776087567952267412850349912972783799489411530968692037358494449231169205751141676018136623320478295812851170808586977333707063454414378920136258727925229396816782248624753089431184185524331374819236208215036097754135857371280542116747755678232968077210776650495520107152337841819334376180117879715401130487054512353570519760560952887528372358820377544187489389133455642393236736938559426019016247437379883155508134144109365874437358137576185839797312235417889836761008085854531370753533085045566211140701329511667190693557263364152724505862659323442489833007311348566574639072639606141474327283820326870202751671025460878854408031260926872109504925448872149758378849015998904377635638665244244267086111361262630227865135816653827497660151809469355696376582049031889985394126045279873266859725831741177151370886896881481396193813614260983198564238612020896639758691256562046473814312675961742983261419381046467640582216341931934883879442048587529744795424752373371208461595158393534743700184698183285813194094674395315387656291326319080244117987967518499036015812914427152069753932859918114955861685364032505274203093895724997711592186906725097666610978658318761622913530411346058730743165159988620959316279465021356452577639481332024636174495003920293914497123001747549227756190953525322158370317285956144616004243657053474581343469952737549352933778946079226237859494725624581046099835178718317772136970698619014135645514486532557939900805990072094294098528680458208593977643148780119433114717221622295219029319917651597919335820477878597386578387574905806035552913493617328107624063724408592790504736377687878239680572807735561961077319787921346265645610745399584248717637240190680542583947635403063170739536657796800379596839789927355728712228398483149487198830082034260110670669022909606556306499565714240169684100027684236567716376347978301768408197282303762274286561447069156553226175666301563158521655078949825786885700329762715641820584333654251374098210183245661189563735916314366222580439497168163399264325449269221887556034426359570365405878041162525656534199554633409811463158563586380243739876349522780862216198818714200978570845849173505309618612483336894756870185568155220504289222180008587339046807787768511402027893972442942868450136835443061100525776151762900224221018706059363578553230224447490685467133593007543080704438186937831307167564108921205516742962606415665716909134742912974278134463423007576967418366298156909899727538731851794626789307634774680754579510069504009962135261457602867071777718219798002331904583483102415406998182266593582589617057359522641480613672004995052147791015155545512555792557535413257063393915782786498637574861341681251971658880070356321320106136365707793094060725833405469383604795985448550975112833163149672841224228469623508284438980770434744154515326607140133073475489897677575065792985514433595451121434763286286635044121205390960508524388634580962261793688307189158071198713191162574660660270311325331650581254741290459814380951142042034719911892182699365843463293472896828852568575803188302222398036896400965167824863250574457803870594122037892922007730355428324874444974600852698670425461633655963405213597094499443086914842583048670858251899188837098074243989978161487284518778617358818577630784579163332932071186904169472564534850548614580756655028351826885397841419044916917855049110863025338165598795949346701610879890839472010646442025836808733292295923558684415090330274097782806739758541549802614553211086503294468275390190253604631359199625423709812584404003691146108938434941156459093196591132192343180699990706491746781772763707865905834243541075758548995402198621488837517934084258992590879116311846216560947435702778731770026758693203438050867410763437724384493978834951319319960136007701614845920522239006336288386954668916654855332891421538707939946133234153693253254167561503053387037473769448712389672560030581917448840299466338836238531130502426942740443744968532210451092858664334477569015256054062048905383814680020234465109307312253801428675606632743921747325452073256327227579574476393709487639639247788697249754615540165672780324429517630024821160569577701121826598642818477107038578490336757144275956881001686192336948425703054916186715579437169927465341450398176967423507510324651614041294402453833033637557994069555328945679897157959052866242079856668173979905491707852711064117554995998364282865524318146955243069747362696553326841122767198253477112329190629941083896770406386753309565317299700014812046215818252046169844135771570768488866120814813584790616214177111896869462281177355786719079380115430058561052960530607403049280564990750069672749881088717117154886969974954575163462142661125554971105723862150126187829992919493768402612199144333506818581205225690818197432453843985458718565566194907221819482741003349399978490065509390457075224703360376318566804729113811757753906862293308779444153871374957187976999050031467706350099541550745287354246849273211445236618135503412074703992193900207637241259450747179700213504877492817400709729200423591923076046821354704225081570383642904841287080659797280619199848364949721217575586291115142255409554394612366556228623787569805666412948270739470117136409889905006389073080624970068512640488410965855591320684565089473233087846679148215901611266729193662841688255203128974778546034907887293401973784690669051380316371832589483484436378443743348556029734182193495371149416590596733819994365845232162516983544748385665347356767938426366071920594068323953329563514966826926473625671709080965281417396972552940843762919732285243030619744266153704256715841347087178815716350967941691214156730885438392700650797733890073991993602821641347343037419137702996831126736239429622907888399682733636402403681888977291895175984758161487943754118444695614269684934127970268975782750179659357009366862869175749850289578261171873709442313289732597468705512481534285275696064342366561207288217449318286677797840080445546186179418076611877473579120843991603722235635768088850708411814840686826125628871819742113970124472884390009896239473446379735502178089794567859937804036807253262984071452509559828464953687146560887275871687359078444875606401678158229764454115385938139717706343889745153557704969964177049964392939760438191686679849918461562540578030081914020743238441072406486426112328178950804797461029660768717005923405942208660812951160735233638095930697887665221584831169085758883549157619066130880252747993419543200724485188400936434565764128754876107663859797320414215625231540996108939084760321109828612394720646408586798403999632353964509005402643670635159781548845740134315148992767187096673084208865833759344423564434586044440066033661742307891404975038211989628313557654423932239343152155916746195617835776440764179030767027526249992971568863349957365362472240570971787018309875724625191975782834546854038117147613646146911505721358845219871371967919296971951157050643802332575285154665351798456340728053521543416761315019445740608157157602822185659268217802996033109790464194611187321530795508117155028465913276396915685914739230794779348039528369236702523761311940632422366552159597620868116621083635043085051903387904869710894167767646405470374348676227751776715815240551653333110072131173340997256615783549514282609519169533485560046393623801368400122461295225647400524261504308411914145612932273344522834461570800267990218729524449656719485312005337975662283652401220079568656319348405399433134892310548630759372183593661133210738096195015132666532813215290857853119240110354111485211319299303537406799957543941877335019137296309423844181733625931751964699804411351963768377630086660008826700141759314117569794764051585183164161425858898665326628785869716388543270603441699050732739021196713386151497419353445731568609199953359922285561033805103374274953413642431970328335921917877520744079578816363966504435276280671415082619799606137153505588850024763677183559914201520907401747117895546353234524706557698570470746460833926660644968253127476024888489110017280088663543754484627505679887417228179267864942782786073963463512919396354225565610606209623495193219090598419068190789715438485158229538174080799620834180347967177558695624130726058898730800488650981722560168884128974986883525526825454511844828789029545042976825830946679534992305937882906255965464733388754766321711425781441660731836016293744123183247626194222251243803088835478488760225225150313094375785618215910252524157760409675267705016636397949325899920637895984071987921463344384578649349949505948189152194069967678445467776504413385184850230110169180399936719626024959959138143334922816475902950237931575434102504193837030850446493033004155750935351524984920052949959634656485493449833822215155455654228203407684865121418901998946797297475950856069331666276387003294829864651048470469513638936896188602573393741177461616467611901216347278883851244885212288167022323004466591945953138947991765363135837497273538139621213130645239685287345395226592653340929658696521407430783563590172536669309997108145930503574746012372556858186656747092824050785520014807555016494578052017147177099995673756403253008642086374663034198921598736817856044509928389431176508382329909456159860629690919881779183218886511861372493193765299786524953679687812702709388972896368331591644703675147303482345410013398317913044387010231881548216063874202084669187104133896752952089294638832030265286723094475250389409109091920226566079510865326115986475918061322245306343250400174659122750234650978075638181058601339020024025483279320727508787091049322938179081690782244831150228016174632836594232046932952640241832189427805428293301944357915382807096533835361538179523371968471025023484719344943968698091173584377428427141116383932468025997087024198866286654994698377474482330508219598573429847017333393525139124858320000848204936705137192374821199629133633741117489599662170310570880056087214696627744217103090852482089682103264809333774903781963406927761964662468319208311199816542282577892216231729916523418633453695066492646038840645805939657280483245859507290469063699505213730645176960824976425321820746529101213216035182867124487031147354336585418257320151166900075767045337124197311743218916674042905101324715255144138138341952055970051888080731353782048175207394128617648610054431454559730687251279590433805556880965069912215484887876553077770398599340054416214142902599009766238244111054332437226612770443417864155072387086985924072406463549126297362259634573723509666798044268119959854327908866543744838500959075168441910568741109235737008272973350292406015594037068144663521435907571170941994020674491403882243460532895507686647707486328294020027451887230437108314651945659319004281913423485256140112586501265099948705198713367600453307607920527769545129302456539324068621173345568238117520312771953057622430761239185235368546338751901971293331714618715761035730722387021108247631091150800767094781617365332658396476623762171495483108605503416804154700566331068739060475820915554298291570864132580767162318779873707140754261597528973688131425613505337088579816311608454367099262124618782227651887146059087373020594735631847020552338285267891003951209824051011687590941519899958994461259157162357920177206548621030666635567197262117626276649583497583155732010816887122376155916091758242242938836813814456267345254489990905587128670096703562486188530366612281484067909441774624713618701769771039447425546320785247506896854536315927266647236801865250805824149433498277991171970713398969717780823639836178436466908288634704367096178606560259569056166647661097746741195040992787555461861170932949312402370734544239305472351254133036337687078568836628843791969946597166455205482286371303563700562251938970631552760520018442571845261116946438369841982373029486327398135983916140083100878955952875073538510395980330119463471381133479768569638442943465714027312002036288259935487978657424607604153452315991672268329124760051220400921414286260165752746246344839179465005059620003554031548461809107714060474354423242691869351692701747838516370755559721504434327553266609408376458105205411951063676426775226545177356318386468253274971404947476337251395720770497672143790817202482275668362667519189291103691351432467049297028670315803959278359914429030351063657273926543788014469592514883354873797808805353740354524541144647145266828938631041822747543845722513851558770164848188665682882901864317049834650841860768855404992031904999342889591124087724420361736272127504587059578444874844770779464794630782546709928148748907061925535965238988696694647744289680797787703940793255154925267913889663294436811136794888028808724628129489641334250510721175590935138292906757877359893950545833347369721998732161805966296007796401538204104151096898301834910323335690439783325922698585347885364657496950058101950121203621534878365757597671500113024702153042166735665746825511724609519117119922419779856391299701641850117812696806691828748790074626414399552140772841911410243954490601453636615974242464753818920936043119146330463366781590705179184365245271392253879857686128606179434174491594242231036826240101440315255440491835125333499129350228872610370209837436442686690038044395201070300636799811442643744614465696541568373602436079670549427481418989519229258108589599258406866043244774672158672788963466010680893099176283691279002598031451824883869158510415917440364189230813530926779425119013317462322983788437965358987706777978889825243894421737089587556789711704824731860984969149724893024919955795651842577859229419364898176997995627125182446893011965405132703642055236209142547777515882013029542543364353110287520972015675565835679852248647119372914741536976722069465438102295633887302146403020167836254093455335788166254142227272647136163212455467918951044678248636300434202369900279289801729291669673041799965786083569991959089527819382433988870262441528673073448111080937439118547160520051634379791726597204016790233912838460134555982948626198120488289686946116469181494799781863080755614067108921616587127064933972694460153589744691863959969613806659091802129016316048607144302645279977418420156055512150895153083761824287913750878732430422567301918961746877417751639013432618371289415836334494069061342045222698301616030178483537575792789977156840035391432710434830646781087916045768062262398215504589210063080134155108809328853985440000250008458245647007014717462069005435821882918580110898051464234495565937552134888551202857420927628062753542566695637054358915822879135803232951324451832986191338096076219451668530923620519502141040816661060536808561049525454166205123956049223783169392424052592596366306737316325638756168894430935850007036431959439897706131381045999856257402803364582817684380024961490583761414781705270661664335639570184652344908740284058763076023980762057763147903118525335034096834402637318066882813867515701942569544401987770842400588677074362119573115108559935772367578155632281268918626390813758573009291246888198873215205931049237129768246630690195003843936252335232712160374135302127886615367389893117964819549471701003892309722216531376579534261388587668231661499515541248616170027984550780400943148420763302323947592335250833587068755589981013082602172327647022711121225934269972020604134665757738989802405927946458800527262840856014017726951487553747244838338574810907294703052057245950663652846499102678862037159598430242307051977058550630717528138443721904622388561037731502963461529492772645035706921040567254258251188004239995672340345323091941466007922057849413546603575990156801496127722057004492645847166886190749105721037502841792751616153363105962369427823963166979234639848596417469376557392048840541467436573321698045619118593411821164634232502280233646106460981973573949476811138471574005217731415370447209559784798049026628126149582679238553141913244606528618556601715048021479433036542576568256025312678615330262506002306391581217210320231028932216598594291463370585750021097533990776283911864348090918781683467843537336977129055622006697559028691751112576006755271568420350558662412053700487579751351535830984320313703980343056102418849053770995999953355885595664800530570369206664202524587924942301872391097916882470735650636496971412757806261728597619579357353068059783001349125444099940263745014721228150358110077958934324912518496237393247999133016300529748804121899868177865475998576561643351534867379992467944954163521736467368312774256324428623083927866729428673169643117162887616704550618679580812139782745764142823321907312480351204623796470445655828106142012555615319623480976060576792773225485003256928547773789311382272919384239566345823080658086270796423567305921914222066099337469664443413935196729100549793103396559403478923855549943342138923172117744086927355475332523506265162883495462572112243484253560383651930114988230118750509334651352834141893309824521903436949299607336249473662263358593605645034650086156889492632849138638252227741746711183758779268578397565186127195170416254188282419536590818602886997100804312590859758921475740548081467636413533502813655097476482101569846820505022948545559996652217723267694895877600694715601932677122934631621827817933279316467367217032589853587883775869288341003120020211508612058338437054989335185469053620317166410061043743872542839615774167040126257219937666179426217180149359744327731444444914155514629705530734401208879398247673301920747695935574010156163773392773553232938679904818100702560628373774521003391164355367676172669470381115155770761721736343213786119309354952693243937692462869607063422463080350937429536080379991606122097778218986164228640166628872431550514466277381799549779767630036538145152372920391900568926657445709602911751489364062329608474881424678653115375938511426409905774451871825471429986521487621539787538467450896790603768570371242229009243013760110577360637964029233604503269384760119893287324173940116555368528087777210510915518073399728992444970727550175328293335512840773569609341857162622398655075800818554135060975481768720327374826129460238890895218612287899454120317424710968919538985028317457306203224533547846804284723546762209967822121761620675266193018870982918274659457444311706326631842714866218044550458980245129339999632266168890386650208287244778143098922939570490246864625710058303707019438375505892511614009014822554405765099920823314851427605866622125911684894726243304380000097244697817250673436070090815473162073494626577952626997276385686360921944514132627574686207850592406974473515942984749751626648072993348820918824630065686878945610938621247405482656510703320321759338070514551752464275508617627891285914349707300420285033621521742145602784169030042936909269970604393705222777322049009211157295982777342036194605308059425934055831451893580053095842963556514736835260722811448972976503374913529917925082335333423738363538246505725782420268038651829481927428671556585808324075241463390498266318113331499717011346315155346218352401341933620782666488464888594832718545171920762310374104501030105597179372672321253728324076278340997680846392545884908309997516386338781482794992434769387941137339109344891541298254645065841802557825664471350573533487802019634108557953904529468564629968942962021379143349449518256955198329883522644253631087591985328636583646951681810328572721353188227605839326338719557287851261837088765263654863437609153901772323516062388298484851223628017071906246513859853866395425477520467892460586734336210685027575651016705541375678928150326349939538857278321109745025234757085598624017681179315344324593383330343957332373149027995069518574533920114275961570321552088447757556034905836781047932276700002181105386043890394005804479006106218075938053820945344926779520043084325190229017754820503058745876308333149165153628092827151556744114482062984459672166756117512979754552208949183044064028337452865526265777613243676739214644008258105832683320829876678110249095447332843830162774492239250452255585514939713574508918328013453031505857625073733674811562425807161260343816662667076613832571825097884920343218161005529512755769279933667890274658372480888773357879934589329931976185916857504929341355873401648944651373553794093110219748457959861809328300039600590889279320754161845224583427724436938885819884919217249774047811584746235828911957302951358379760524537078806207743776092723512306492410660884092217085152579475260196976508161971056779123583952409716883621529084129132763826221612776271377863414477424425306638142240911355882383560802010948529290215035512801101268936434026684920149224138440287913587132748048518239421658562274802366309067803854617032454923299220518245422504271046620777860216437623187227167573482611342015127259071781287304363172301612893165582926604398139856630409505311262704140922265152172789807056193950620254781331619877421490737129759184297065418674468168366140359997801779612054517744229241711538068372581826309194761786564538905626109647341733600434579099580039174755002427510723023988594190996971274364913994858251568917058911113233682023248628705600963075498055052170337442984178737249756374329836810891772497981550198116765847376451898329207416789737468955395704798683223965900520468910571217008966114415052771181352131859596244584021948351919729968410274114960331562433154382616254827343074829870147113016692478394400909553758010101550349686738628659456718426279996404661636544809892854427016737517508081661628016207587825687137474814287185138242660024265778267082279184588967460389039061017369161531889832780324359131019832061524061395985867479951856245976473089895562074765152682842225559733409917469143624090926375620084154031338827135544630756424639268036996412985469971653917908911702777188909813549673501347671801006104339798121367294941179207807865624557214467710788433225617480562797194461682851936844669118205828551798487698661840110575232585763707223572981072673928473680100624978406549708700725717404866471733544979088916383738937652228965363589913100622264848312085425349706846989479988472631988834662477982691810933822284903297757732090754108824738548392592765007658853828335905079077055555118379928983983511268219246324309687265916098878283447220080080316683073906359073997126866191646572004957282982246625960944693203949559906374946488842653195277019072488650201273668993266302262579390951632917920068986191472599482105304170411653016518871486226613510514812442175905514498249692532285113006118309371319132573041880450403985530936455804105567869381555897266861293792390421682646030064196684993778366673644762011620842645625813841367643424167949554021306226210368710417647429906055996868521677042563002633006285727991309595751810589214501913870615211186765933760367450881302908285238714486180174441391618496350005793766835417737743330912746713023882628372521442799446276647145966222353464413617287545620657483593665553656883355743850127884843837847684646854326700776587153525128981800600285476237760747360174300670951489716118243467331756914901516305311704605092635142750558362604664417618031883196916258842801820643127775004038090589528058911100541133964733030686462016925748179612320478179445433342770373877957676859997677251107759725178183971914622955624489529842089952612631749553327135097193130050152103047752320471034032922605924691444510057932324127385915157140510282245954630944822250271888025171852045586959063433785950128001866999848277050855494939331972897234697737548681548210021968572469131691004763777900902477308617647487656630038712081185307775357251102404796414671227436552934500448807611826328527476908450218807260137827749449402703013605847307748061646896664923158457585424806608102418252970222554834207074331737304089579925263605936119696555390756800211681444764671817214561502450245888491875141882971823649530887354943521904037338090572965953184822464973062677730483378754625726242472126670311420737761510831892675290123492522345426985310686932127740483935676959406508046838980300229720081790853991626725862980901588650139930453467643378364216466576479920313967342153638277373403938277494917256611113655952472780498274576960640764237137827142884559672689175509289509449348453442462112461774645965430228512967761833073490493377683168899620474523462464590266020455506225830467610521511281318202748293245317452946198459292894002636044941289963113239673161464226958828734331837336939269559322938501696208010706113432719125435286249070949271156011962575492256469782077102312308050981025631623392465690439653018072755649499448740002893766682388020335295221287001320995403959751688368542236658181414892866374638155442370918857544950077125766473708431450049723084676688421279571579169888653679600133423262915323602170636211426951078787440916297341786537992914394947471515263769638586335691678465037053847134664398968470616435690199994090711098070537151864858323263851482978778787758522463152868546777234778618328680436645993239038978873726513416066402781867991271976547398188741533743978018670725022954921014940388140447423624201319146859829612766898791519413727044869010549379838668947598806641393833965682428113035879375432089332565352447978943994166628202962631721486676576815588447352945136840786444574217536387081240257433416937129146269998407611982852402912853607401077601979795748955386113069414622520620609158675922741655794711896865076491330439777054787119830617477772776347551531501844092519303438062136457885991634203429452918181841048953356965212721751625020547710443354749828506405524306378836750221702172067549530705710638245730218873525880679681135602870436850375352804389309119475401744480813587931780658630972587344063639413618179511736735042832069010930986664651216209757093415973141666041631349144273457004894348446080760265429679667391590129135960759952455541757490769375678190367310899053243526299575999791820498835108829128143426226621082100694595749748271348864590272599585299866968601370174864103630755384681393315106214045626980757724212646778763430622955029785275527747845542258618287994822239064579560900524439123280823447444350421825550399144439310332955861359024025949039623361906367237015544825228329805332695158566853119707589880574642794696703138749838439300239929595404660114610104879636668862119827754996349841047993355866128043222197890435762151757314812600564759893072962290846203877882351870615860908137678412059305123596694139598469186665142456389323658705345569833701420405902210939061353114974390891432859173183004239532228497934516500519415891437922752194177949905176576135174108782101690662273734621442868429655402789034387315534857674651898637059679109523164523363849645008105433853652745239652320330146007258954687249553631016268135797248994062790751716752665260897568470397234456922333725459103103962836227593003629009804777447031041498415140992067920733062823285801628111984835311199798456268157566764775103582140425507840275311813259631789289164969776143131819270091896132840998202788721589907939999839784657177276152220609850207417509556690046177793766362715875344264840475778875506784056091224505988762185085560708879124567671351178224621352904545613133260541428560208217149937430315165784585758957257929417092182242187246418638933651233943849899390869342459239907554195040590894559748485761082988467747698045861412340888720758931523601074864552146944027951875909581199840587350325480611528667940402811566894660614907233212959026510877376098082733752268524341982122443706835588719678858238067891273794027904973082466518891887638529252183457642419102188061624230065327776972216715976701449769561143824690094148333132248843494825921737789108998196347611465049685728864755311326514223948747196220395691520096590438404920026688445186452038847853250852485743452156119036363961659030007507424640380412931216103037496419648035017051424857036996176985896766023519812615189065102064394356499130858413217071122089498322322549343239774247376815858312856756485877724102746442257658558202605074096939802134779312684279764568316812766186670232392197161666362740723771632699475218029947898088804553965017031292616418678997312268927838667950854259766199948887281897180452832988495193356617182493086175779619390427117076106023795379146002478648906228769531904811344371972602822507822754101600083911245484311078600413120302905273329495602175707612859982829273525233498728996047083625899946222011091327606334593495682836772604408181132001132726952324946887518301641215938316502355573886443240862492707862641370502259113049748739931621165790497240102416467743647917623160761230093103592609195135013880702364798035055776403861481008756418631981484826505936086831198479658467636017849634808792043287178551664835156776263376625728989150381953381738680016643697461288667153642116894673996616349871330831810447129368418241013097064928697788486478679737803564462672485617468882109284298210261165949855753240491250230670624068473142425382437041497545365611239083932305358561697633926781803221740065238254599354142579878334426786976319954077761767348971720115902655758244659746259008047797994797739655176352559470282302268083561323089348456081316968247822649283610352166610826377249145733548924407656404701870899130115335117475391485117745444688817298771347918225392572480571833942287789963679408069089598635475263335364196884351199924014173701153166675772341543116791102443880411794974672089158889628526821775143696931153913777813113789917059957363674295976495111856349580438645309290915733032805627376356203982853894690382078634080588739714057735997257160778232023988478148046744070892819874110534104743108615359751361514728697088477807389730874106739919938050375489131855491362983674403331318291293683193663639254675010281966222273687601007862233341015466180477021794872470227777506748294162810671551552024501949808528369455766474703015679129119810305096503939271559027071647748193887372065009508866186311920903186081685403942161156741628514855536707354907085639253190845158752202242831142772628048020256192074978454443261184548144283560505972636909248209653848681285403141138648079439130425682602940201987897930400750487007046929509570755750396617464516550898743814880673319723690538217908129699022542552270024783550965989017304434656825268937062592998343381220188792915750896580257667106034868158368353371061708385761098919311713618998051474236841068425006670653777606310504191018139744457584020288026147392920770945653582853577146032619025557888282397790345279218648876084603481253070001854327722253731744530657202372634454619917128159973730725030099073935968100406848519683721737560509025444227035816434522247128467721955596323605537257788602223296597314163390758922860382424796158111408444994026557162923594652836624034209248044112456838799160315850934163163346411849379218855235376386705771300123316193057429853093495810325751121160453924157931043671454978172045469688245767954225918550257100860058878158779408550240058009643190645894480728585361066561715746985208337643221196809314727823219816288588420438887033378778793084859291974344152761446974788144058452558272838817508007366400760843584509232784919301096650071925067454172909741997965931353723537275194532618874615368113743158156597959106158557737660174804375000789847503930136773900846297277938013638028926817192614770873934210713632266294528271975666067060522503489999295432335119529769064936732107758726841634303964682980865354193184781174331785853341760017616670950747348583263380207703097712039543886218694538253896567848732468235232628320820908693652501583836068653371977130556069979010467873832200616694510608361018108069146234836272726016762801027568137469417157586012132550589958135238496530212965257815126276855602615379956724502406817905261027947737776797153436655934875312236786322292456638612842035188024409767358665273589658463336755945851741881382751651854329988594685349499875836961763848440992517494703360034138410741484323241914522114083366817462552483121991855459504492304584947570831870361818053761135985570446701428916359126368635295601220567617630459367281184258919402758924494187087171074434272982535084882415575163927446939998809254841567797468100030429631109168618739599291492218289028605618121508409867732808873090309489567855478344044260170169227026736916897170127763427699128122293984915027630126857086478570391822302011524545084277292400444072502003304166077153330867787690335741083751947861970421861289671513988263092737986468517357821471997342795269234107824470899097873894015195970348006408500759024861793739158458199609684165747422232803435552577809873729289636570528352277032904191312022777925245067728485851121603655595072955530813545757221287920322286696984923076804967670290155236619192925119947645250127305031714471338461458972342709808011258860858523408556384123499123888018863128208022241664111979603232865157182448652290027057431863168002898093938609932405223113696944463291500725904261737023643947991855750859990655284482184415722130032608492120228197343859378729948847939077057492230943419828587430294345442502844931466473962095429636951115066662275046099492386909158294605290204271661316236041787647007325264218907663549181183750837592655166672686660061643791697820801788635809799750272749560746395144124006961871975325497925267838620907152163433794042383829047022507044544818587506069491107805216145067159504544105171670473021335699668260129547391014078891002725685941680630516784198503700768668233516801637915803657245760041557100747399545498857218928917827692985533796532232303187624677092077420704387170889534934571653269946616550168127273858216534560192455318078224076700965823514012466384458934172060604715971459293212480317994207414884173073745798401558091283828643024346818498120280844149185318881503327338177195275609768975987988908493210334433965339105741551194756311532656711499642811819824823045164270374728765176653339921251285921078583997179679995594421407494017448170521467937883545386793482748053154666833291026312790199656247397776286645472897234365077541507696400335782749790560250534308392585745480541211760823171738599405222603880442459646542054870718876359006097471033647897562551160442744109656531568519959177021873809522713169430071696347869055623544265102891665686479327448759024922272498916293726108751048272531403063743117015355919048066531784988035855038206715495883314413500526077375267097235943850725982034458911921048961614699247083123734446330168773249553879148917245291665115129151511879134751548996355081666433509942886265794885927993171263322002150705069130438010543057139593400826531488082539042716844927745666359140615491238342990345987238073901572983081222466827204947198468414792407805388992651497686011646655094356402401311645103546209022272948950440475155589691770035493719690266014790798173408894766342578936969103059994761711942080967783717642203185877625702242236671056720255347001465113515735076018628540130263963834144193632008081686636650339515862207182469211988960791891817318426132617916057692967821803772701513554694490224272744092483774730366706781851671155982155371909884354796217350903182155267500870306011474824470597060137454922663709364898181398591011844871014811731419048646571884975092351459993577993963413974081313795103400525506997865480011762214172885615107606038960667578864887742211480469548973442814596898869969601166811752289385709974570298426350727389754469989109932954256493051703472836072262670522241491459775825409424496657211291392253695428794946538105423361808956222358967552838536817072611987423596353473136513535188467139466734429967388610569500379132801345413799285644640837640283560303639168785984074906538344708736250725200882826214780707726854698930268394021217850284703597752074720653168734454166537436843583576864466449012637455468029864737171140449191146542788786235979684936823959531336266484636592198186605584610193724473436197125649453388719096435494654939401195962236231824959592622108397552740541877512436493825264328545189470130011212191772609504605736607665014113640655222859265344781724297273078085191884236373988763868252184225089068562670362200496749232881663052947212899803985531616765801396814741070166139584715168973737164077539014444078025930151665471856495915404939533558369254119904122895267320890942188051161605825606009464245112719094028014774601233202170985800262603200475104975792279778776789252153507470206746799211857034828975514336653114525186825945069070518743562218690328459720644378505955060847218818734155532800718229229293785066554824646879985005837512453274315289977121573962795785104122993788855194778742875672354101328563527054140527456475019261104218045940282245741323731485465458953170775354601667448313198809947581353614823226459879506961458479197288561143421119118928571609580489344133571960466403214600941636131871838781521658984143652035109434798799664804021295277325701668828345128452308054669094764205894025903315285705334635880084712286645254007890008642330722558417193379002512117804167363799207469587528009403618851788403137509721097521651657879042768235719307973314174422792263214442982246431619781087924957716221559423408123471546648491111034038006525639489902684528414165341953635507987004720722552141662617783629855909914692851461721973562427962600186467895030747291835579221723488542521768494779793964307161758664987787375559485320376976073234487298698862351171943459277770109197325728312226250197375710158569421484923592090518551113474971489831872693667580712904245643214046083495379882461514530348465869819829372476923031249103296586053931516869831519582223243627825268344923795648125129655336308200117596491485523050314205439199675873624159783282883007166749669016774185489368679883954615020905471104419361811346596417508237824377571740475986707883333704735547354944875350700744540418375252225963586903887944003329095263149411822592664464465901196039389544997435669468955733823055781265158844449267231437554991940215424981979174474469475561044752511493024299373872600563178726430087826105830901282528117822984298412572566873982727850251295897832943783077110074606444194338198309550724445663892622262365051865549382424036312486411855692664647196601756259078065638904983668834785524131921892673329873377374367653839563428308246054689276083457405967068826161292373727765175296598090634508771407099264402130429542901946888506242451366365900504385532946039863913078600385778800840259997962177851560406051339844575379266857885118489078413731438229284369468870403571864578729508469930117325489390408000393749571556895820027057094420446471629355739037122960608712885464500712638796225792052700987375715178733186748413783338339274113265629474716248987596960406233476065496597744614006844805612108078331911498436104046477743382965851100249398643927509354678967776883502015815707671803952635067901753467696190680106616385664513081377139501928808419081747833932286454282154445034785437596714041962803936479495579368492840911433909524306520175661152103955816446209922623710920482432078946296584918098479233961524764204408551643899261474598379934172374467365959271539352926770872110722737245681046168584950477411606498692436203530093417531785319322901686034179575483216536156771991294720507390172291394213030063148847380245930434565618811878789723608552428154718312621706097819707521357772205593902304801470650791250105161426194567871690631134246841082540135327954756785424444494844461869714723983978101245320740375290284831012643588616902871697282946781215536141414507614662539390809541909067815072903190413974601767348531497035384192657048391126518468245310399378240227318255503942346465184376035850011224793758479489163793976574855467580402257901001947420978473072648434143423631559885074255422033798832481020890592005240132231650828975648638001307845852892065262754017752634517690840116147684030074254114315043146110890139990046468224911439130576855074432803242562585239600314121873101775991571855657689924976664611937375277730490240748679638322673958378117733220756096005172514759536271422202672800438186570591871999078822980239003822184355187723968352316042374645721072297018015055702505346603321280863647484872978965493975070266983173901841655412148097872252530198468086534209300833723248652046775185432902561541865620521857679905345307502628442246793059933903216186511054863397156306233061593334740832717633626712330088192341261394407411444496759446423854654678929887503215047725562895575693385489566261573128659258500604950614707215639227308086732068113235645597524801912043130746760320208111502469604419748292289619139843320700561713052021226184098567572163276730675132215680952474418842091167569966457003275208994795371459408235887470081224210639176691430895434295707827039722324150688059693236833172732719184776353922593332665082659092895949934774943129445328285619592011862199363071368797895506003152015790314451854607007527078335289930694396803889265610504425274475944411161821608572204507201105312345598531728423996242756436357269449754791939719168151789719986877342133843366670280198131261943301667780033826372893554551013227258334044745301465970469734008756873880264996284997379189503142960771612059720685873825351621755689839806667243554186379097727497672773888466425425003371039093212525810410459653233208196253368417116358478104508139094180088361200081714958590461025222439102824428528930393254158406414408303498869295966373115405226967293197106611297085854414525060309154007786090185552994323078933607833431823926757248108808605785192268451260274918582364222632765053038159716116503180879891769538600399253902589258555661636264003496127374785091334455847377249325884924369178884744480303304706282895716227992590972031235237775681987614256369236020055130513940585779007886850416639164616063356943356796507984668548313296093744514853451889030148218919850570406454577031128904239724138809941629778926855335966443805238249413248226977247720616842244172414968219427590684170461170768427199498226449534289891046876661720847922559468267745576586412512015164022642566473208918062860840722730319209322928114067650141094772879966003261111382556478890819555726688852260753122632549024039629730671592974684289286046114473620774321203950008940951752946081356599125143482019775889760943493556557987409683771769957247006876430582881952839383365097834693133448800773639857447811417036162717524686467162594364236765569007051129810790495668181497902186158508657762641890330739788063420175690652857171337367105079568585524893777080060993160796567870111327986653064753171578854923751734241540795141784222945531468557994323304087646325713896646307308951732995220845459385169068112081045552949098568496655210142434608056941095413793202755621887368165666000843310294753523530074875308468844807205616969728284185660463365541511205567483530274898529217730523729485847778029466755844536346702042322558167228083905123511961299743436605608502469825764622971622512221857919256296144626662850883640044273750511059334176283128110099159036421327959782004697475492419896398144960549574051313621255111264923546234925262334372834798574176655282095166755543466707457981891862765296841486941965855993718605401675976141954666513481539923374143081896874961498288574193557910577255483221280601588579413151392188875614921032462711047873779997453981058325554787413123594160898238113766211962685966648919312335713836593492370026802415603374192342140515498738903972160760502223252470309194208322228852647388552136540628540226246942388821527466113083681786759935322981082310545903303821915366879203165008235269190588519975740955188306431937438587603049614888509420334626404676934137840185611860829739065455467832435706751736413102568590229973009845806156181556511889329555721668304174016779056105369877666605560033097171311073774040389700739593449301719635048916073966339543455792733744564747362318838738477351523569252590116991003192676913572576299868722085276110673668068151528207936756244341585099707954709651671957613899005389791763483083524352309088308790655816262336310630920628257997674791135865500677174278541885909409169263367457955571486253148950035148970126947091829138237787417634892801759481734387364186873810494244062516097152973893660888925587090297225842218392261628919998937504574619487326600242317618709346217830551376366692790308554741886411377097361082520950040238963256610746383828168449659941448902165783605707727263553264035599972285317466118008533332159818240006712037397721576274433414011933130400185563250322683877667652135454974319608255799545292251547090563254255822997503046291095876059600504914144367952364026895533588600556929175871688530212317914898157085538614333549159935492437695319767647618465390643409244311512596808129353603112600319651993024552212129179956834996164709887355818807528930792165410466530228756150679321371339331053253492973354814359280287666083582378788572959591010259123035018188888257830169969289622862583305075940191970959127050937557837107771676750329130212382025098261529489102498334965275859816442234331786162555485369612262805808157419571110585431765536965707330768271218434385560371963113348768512447454248537457098540334284220794831384739377461799883994000187194157179940925921134980398814401841971431102729924740016034606863486830755760603205996539635601069180811683887685023531417596387576527532606126517117859093040319216302527630379474953123383555407085368343917161522669685942336754020520572905555662029750744413287694120919278291508924132144538509557547862457410400717684160277349210748639273807735871767698374870406738417172853422920460070606070580688795303024613243146318624022394304972011295848614629055798023765401600404777013554321101985334387560636307200859228830443866169633589528437004629112098854398203682479238574874650852482994641728596264121095087283039477261599090962434691670143222722249287901656488589195626393137098539213058773231960175361015324125681656710993116750023828167103309060349379032866519369920072039503656763907555723880516523384672713745169964215423973078499191134129334560845844376938394257685485953996803932453209896706246367706886641876815308589752681952226992893222287630542978608528761718499831459191800255228525380184333614171670072698665623220536568933210348109942629458715629035587041450447825325026960428616971122814617088288092048391481437107788127080964363181323582738482693623132684748683063261277554825807866027491594312708555693086247329531326443385876130422899108495695510708769183526063452236909750740494920110414396661831802478780376224639278017071556890301451234752238130775472182745778046139429691416381833848955106482066323073928070172685556368755340667621507663907312713319270228818616459987652649841270806280241120926739100311832506333397524890075929815051310992005697501173750355949827587135150770876758579289936674163486885175347940824520672995190135051143160528967143078795278103325865276329157625772456457725707939211684277217443451792013768023681696268492112682136328389304628484574631504665121082252009451907820219344268604518818365728499991634777118524669081081864011370969498651243243948470720073258418294046716781993105082544080666357774924784570529463996272992978566506906733530382817508988852225926025009215054609727809372942730597712240622420576725239025270042647243037758520505930407204364208187532594778526218216911004832953027202435091161283893817622848130394821690576555901689712678212099961395539241746584405836973335558111103552766370965561257064230343944172585831462206856294774295384166980530790793788812804232341221582854698918250436586873069428239737855284124450882653048050788994891392463800978197359588375722249708423555935661668260146655180386338198781518306163477829103729286549656645711342789164027084153993828611498676295488194917597215183460506575691895315279925911886468538047439414351302369427521217959699916242786740679127576032013712944725779083826643378770452387410850861776451096756520246690340442193970202268981791706674037951253357690204307109679234032508958229553244127457551471415093908979543549973469418996502180007064124833067479076579095404373868706747105972247036458093516661693450563316687990731069737305591314135657018540799193372309987713167684746803710182770094530971093920829897310977710259476960880841702459986006284820935160064518784971300534504964129510628411640595356706958790631862384344249386148394459442588070653880113813414045845353438964196440741188174872502657358590934898278939862777837070338843534695719864212199594900027294844282423594556890454656422978383563787452164157418823008965355102546415407079831789191640920290203591865261036697147525126427640017465714589020636570496377262719979001280841021211318747619017065584620396487932560049653366851887383886226871956270246861220536679948605908385626493828878903170342645142728674169719475681187190788111192406300435680967969798920715575264691025796173238960652516381802265699513408759734115574992435545787247419326402584210173657564728492541445544812475782971355303348981401405809335877509654707907303495536660335046170955357613998272605677888602396242666295396763907759630863477464006588421439364115185601786958964992919529538668620762571819475708653369083900106156825146852212972850255181528841666569999479914127215194474051309551384092243916611078038959486006168951076636607127015589772024601678071110114789434517808616943384300544586764770013776558715352684230982699362043022905197984605794376279915950010848193306911365586636880006219498392340874298806577063779224795563204786449702377086355613589656163778555813057843949242265200054526910280585131506819661991947147504040871226133054828934434533907564580584126769070765844563659401813239482609379297316837998056448192637923424654917180533278082574672351265832865403753528929056672418066545887005860715244437013444454532041195112153724159341171862122385898648712041183686395347580719820069351658587594209392599738764313742435045877634466818255473795851251865030313285389788809165200130488973745340249398278529210237995960238466650347914813556594642135189873021645081286285794195293748377058694725517490794225128483344970923332480627567266693693681079458542836305606938109942157437806659530395077349228013311965677721867060220998953134682826975990859953329373170097578218559078301484537156250300492038511234516292462819093231209732789466013789790662671170096899368654371291801568349599222910070867932348787469662214003585482110922366017437790983364304020716676008207076323759515557518875058688686727516717610603955047802583068348533310794537962076364014058259940178094833602088705096808205915137874191113064695474594144880223606528712652632268032046990080423445134435416733610948548553191373865141565823399015834775821598914152016688016850012871060564697586860579453273130094604455481885329014845921274210691997111007584052377329012247630800655825597685495954436636654554331016164495284239365935690119823029293127960940369616323345706115934938862240359132593954444844899760301836536019416105865772585250866005922678510244751772153669799359275148491493853967963688997402064970199795965120252770455477994187878294451934656644117653625970998946795883441013915990234885599981342092516257949281007835283682668119545687635900937907277459992436620547003837936680715582239301058879865155625881812921356257297394992875822911728599418130854191078984893312623616757608704932061600156826526173969553436171456161924505879291281531180362420876471916321227892204766741404682596226885534115295641430005207569352382955742501563351344558946684747570270889378042828586186676624577213626892859603445664782350426594131396221248452552533300476557940210721909178368849619448688898880939796381141691729071655022568963751083871880229063386337965940949163553123725276285223740685432816705691741396172937484641660561756297042188138248612407073324559040280232074411754227641415712587393391189880238263156414216081228830948755076077660062886432412816856938091893761138715127128036674757023494463174809672586769498142649295156081112684931734879387504485408304454800303016150247534580339272302795726274194038603276897398648989330738986393395496529308171979913605809261367160522669379627218959959571478957745324544803377989238799954573060692086199025967104093856111688462607235210117675214580543481979924363701270427880316982720821615652791434204580971915227424642620572612906606754664630484903758913708477206376936514682149915515485718832779243594342720342989940769345580120076882295644917158504013214214147513757178557047135173954706358776598338758344787987483719543089481569903471215931301762562970149670172967784979776455280894834291930569078894200021467519980186533206490155641391156404727099480202065081203341848268064802851694041721753933785572823086038147976915773350787768921705416038250601522918456079901300545429455477092290642265714457813592759307287473859747772835643910384563348283989973690356560974915376094692789989449157341644943041210810110355855743274197890838839205839687386298202279150231215700955540596434960014610364735540044515833609820142295940886869421948936897559785371833228693010040007297422614991821810870038014910136435869555362380564218796109546173185864797424706361675003402671518781785686067528023577460737782262120129122045888988872801818752817023658780769464716348095767722085718683680454197249407645386592308707725997981955362887137352170176575709727385018271183804207603640343641677907381110395783908473104954344364200361595301138690498469564897755399645412805036737666202220811866193056409727292581134339246092638945473932438767439958395722484974248508588047608536227102468400367732321886893399735867839645026112087481953509135673413623187223627188334717653564132936573264336621108035760768521784453666905433658583168517285464519063091725903870658184137821108237105045114073856228256360597871188512395107709438756037926836768125336110040958627931972816861655783806728429372109429732492721990474618854030114135172199743305937972246351683131672037277800028856157328040131512504564098294702098008269787693098653191531649199862418096141737289739220881122647624167038312448649167726878396311991848131085398128615119947560109464985663220900261400707840645702181633527519179058940157263051039670676158974899279170581798271877633025212065894195717537358234670598645897515726498021738404948261001979618088226075859387042884942207264797165334358252250945046319149113740986027823713432234979216292572182770714213978477401821615263230342678873083557058149333470161236302792792986550744266851984209885270892579768521192193846159382692547806973115164072438759382852996512517104555182312628724825287195091706861107017380389535875157252244556735903485855930405414967633407053399766356134601781692730261266054167603424322189056851432684780339472838969659899706459447172469344784176231675687912259532741977404890010257007198218128556597838748955664661503909402180617289684408842831132957861225016326620391482814881852624306406417191129579861888439357645131864502685461668883576356990389267209940404907380398134083940038566421678513300860815703138309777020680123058675147872612007678730766931871308729075744978095739566631233867867756505003553158380866203714504389558738530138672864716341636928721965878427109181805922565368520826212512948914578993025162941837060701809212232842638709780023086588031305037467217914233786964399586072135305497478387795512508519641936087090147805697368825065211269734270998910570416103414282376099077331562178493606990442400481412270375701674398145763063147278559344585793758027796273343201912628732009731661048628128960011217969346368783200798617167704556280028134826009574680519626416612830802535769252700941021631868607978784638508952518234500852560194430765570256806704623649278506475760815150460478028400920401451370472501524017727856887885312666192719416095102916485571838982723722053237757251120613124394305444031834064874032708211114526814661793064687659193720383128305214654071795647537386388888615450795556427632512055567968903539618013026808796100778126981591495217082938460462383856888686511211632758644017951619454246628432506312727851298868713838491551527155366584299532261999714571019017657895253108051206081762669753768638778735458107301857751201738679644999727492725005618778445919482866748283084987983638078463756233183382640026015607142018203822193871386193965594950137452206272010312277982963469816905599561049203169870781400853652038506972083187107608244852771071296215297233665806841549222193643502073329494809476080764175824996329084440668155855556845320559279973696267836052965426925521600784584216956067232049448559583545206824549998629746968285389508860097492259622361290159439680294823265885504907621218657036250653372642307865988845757711683822781847661416714787658779443136097183091111892006126648595022786559361052695193051724981767996115001194280816410004249491060975653195257456703180000475369586619995769762013904836387825073723748583203474056825475618793391722124817845879208228627275567748886462226237694171209162393525787793710923358832152541359147605592558841441176082284769020682426714074495254112771673187618427124324889847536563359555907264256191125946785686759782836016009519067757308300172141937211698449630772794340354950996086542153897271785247050085637544861023209277122877659637961351322852578015965139131994112614690802380700316946556508205166155836764774669450531481122231822078729183111439586748698085113735118302385870216291555680619902351426252401461222897494319634736906577335514646746665273871299962565760612270848132617723785444516461237042781238513936545968512243420701211324533975372157114661325346287858824207722215198357477815280991436642167439956353105362709569264768566745500351144203774269766498536005316830180278174460227432551421972247956932237753106527350542901214832367177650032637239046050840470558674086684363550131223668007577455285943750045855827527517504194123963730865238720143731718373289811834653753383544268650870771034586931212662767218789815347343591345315556805032920747128764474517003211327686962130956953460253979858930586145997039702192532721638085846103119748144183952186930673366064494468119414197727151114363963197781609871300919679527025980937539732404129698933292787298198183146308939251613035016221520439391315614316160391271051513187636569714964217343478343804037274720482283875358390553750182134293888222626320858763921238760182035271121055983114813998616029561931278122341491836156760803997419242688507085612903488399016375117947731593024016167307127759153812214654815929537588191777640425608410524610535929291089056926029915181033876367653213626903659427808784138126404882564107530135312858333579498329721215401903555047266094042190282408357798228681533086695602543049972384557408937316314911317237497344088690796610638433892295987371844916236050856793596950537626174666764029431927894508156166450421891162057072962106907370110295311373564567232811118476594713221719148681660248501349577436441528520793548227405493604559638366795092901899405797692421293303466517024788449534211137837225937092675882119284555047022626040108002029798731071380825210800465674192314805198380017698452072474167378414475767926969674380704599885718015021815667578736433007817295619630486680614042380899524834383521499215571234706512087460937290578954085835638350673141674662143808893543595007535859361806484910995802989529292090550184205843314918475855481799199839612025368324780529492475353863774003046686615438432647655163339486695728072910196593678403012592820189364870280259224089040507248905262250330907578041781969793358378333655734949955249822250409488298856678121663951944624438868701696703574688534238920317298365881241348030502585004024970054799904123462930216648435502790894949817351325065152919494005798948322658225517808014123790206537962754192690284475450768672434597298039316144563278268103843094107957086132188486585422420969402487798414243382760760645185830719445271877392257398565346306566680514310997511347278730792007365623274180497620592127909943340656208223531781653505373811697396499805185467129259507197868136671599985041403747398295907169266913027755347794659208904094220647905536059989027994150025441516161554193039535187026497387608120075310050138299003478369344576840843191947162433090117237038544656983829501463604188733055465230351981511805391909360947004441245888840281165232523916438585129172499916637369017914260615667306510232103177544795127664052549249682111831649043119550732887884189138643042652564922389781687881181437674673795888920001276426969655928185248015383380291261083149515265012558485921041473471563429218358346920872775024820930763261705720950303885291331594627351365300462211134847716659473524271676100198745510829787873263920783812720856985013945099198572361242596693461368220653303966071166575980912716558453279908335059277300789902115205679916956613590096609482998394392036623376283591744620246793761263143724524493069318181873986463746463629764263291495056883178849837788272597927692198943704218507403561013269305686618093819337019640255365424054601976847304924284321307562198898827907194787573735745576994066725816866381628525995819997930797457146682822094963653202839122908947168540938149676778728885278998944959367071650661797847507723412642198519585996618602531574993239721626431818953414758328563873539790764646082923501065720029018333749689096488332476404979698604966227491226862433178990316076697964652509521566602369385589995406171491215052363474691539114107641092530415047024489833738307298741622377983245288766206236925863167118203383148363837502454058490864846814649030826538483297286375570646027239630929994000136473539355847190749245094495825730186892641019525501020081429036987631606892486776596647347623440979949497950627702118488333390342287787396668869000543469548706341833470302911981342045451932507764966382804737486989899238916069097634816531024872769125087301773871785382373470238554224869146226192479747029146340204107696378513422724083801413442721977758294718442359065378328463097300797122493302524706409914653279586540268807140761287201659228974229469870417846333504508688066382335848011223883311878332055457360282338038218410430277354460458573551492604407840717594597317491957560356877948920946683760145173644745562303884627296174006445198242056144571853037607699042046066406132351632785727791426607645039653162846851545018997919532947215601809292098630140571903483107970644045473318096725150710676975764061148888417367225713026480870786483385452691250311346144955158141491233033091977611734466132522056070041828146933290758823484444043466916492603867845830124059430819819459584445667579504215120933298862421331215581558426756281391995360335254991688855969501727772480415719066743795724084748380223282850582526131660246804185221779876400756723057511554594980400322801552558407677708223964850965192484858312156730010128119375373338573363323441295761783749423895968802281682077540093610979968679507216498012736558297685982997656619274746293826781756461237990947781131982214823886738991001180015945814111701803654811568495525560719898067499099257893550561481921852164988071178155599321920232567986416170420815542219589151088028672437126050003650642146514909398237592095491974492062417217647366149775808062839255437552137061286771459638179380805600914127039505984495635839905013491670167765718104897061573175238388747585051347037140610201483729885092062493278412055125550904078054129873711158085919794293070760760746835090213509007430796798297465299678381234655163318830218242473775628438623685274163231075684322196965243712428288000282159706146272877690389236767837551302592774040695703200635649674735532687403994301808378881578332316501313752501475890691955794412175953951764501893306469011053504337332489580546078764576252721062171268055457652595042027923533871375043879555839880608521100394522443993525401665723662160262525325771178662675076955351862266052191309383377607966862654668148407142022076228509121018633342614475281587467307208417371769788252566959149203402461523977803145683500386764577368705255820335051342222799449035759281349058239037375266795631865673242901136252411679671363314601262747456222799655248863978812649079087375870136999017095381667022234214176969011958288459090557948767193040711914950124369540928430332673326841324049532700009882997140553374120932827963539720100180841702106627370994327604653281643725386927980147283156694639915617048712084283739589747461158916319208408321854113259311015885006266992214463179190833675363619799017108341315340167197240228937783041213253657006966221828522266207212582458028586973429755831021241662529951273988675368337168727515252508316776047786962568172080708221911048433012861121156796882793810346305604458797892213035744796522980306191148298982730328897083052535484171699533763244802702524008414529176205095177874170719193966645747855012329520056400048772483311322502272811735488421147312479047470994203241782840129355833961967419508176696187187307477837184631400185544274760522043424685468068107931945094276691287722156649771934084286108587089055683764156970319450538785847854664981507574872421867211038571506269398033061218700281304614327002640891841396102493907802183088018187025754542616978015581287860075314552115141716732938649852800657798535897152176012917825221378900108569459452040212660302244522091435836587405422675755830728980829172810634607187610032933059341880329434446663097039137558685106908284510820444839389325267461924767595768551343417601703026911720229510881948623272398319511228517656182865905214450204673332234459745568084011985116786063933393058643026369369525991392321076209820837194051338320046944004649999257123483166714149704670201255839927118842551259722586981130434984508236471257684860374260920270452366601154653264781740487503624699347230375271677336783050634034239706277171983283067066275907293412046898727795541153932535912719082979403683220408622402817187274750588628913581326959303469556513280942623172825343308689500370220679290380999883795058698398017095418440325253482948032401108845136554734736011404115483443879849662892019904269764086510196334149252626557282673097552393525090109289453208625131779579771641005697337301711594549530316583527654397392176123280966811377388907174966072088894714274448307543581257233323494960780516646929009394979694388656934342148436789060531401497673536562475291897805534669788645724043702717855841168771829646209922383184309014296747901575438033265251759430922664514877387418972915162487914944264706855278241932444444353813134628797402898535133582733136368835237525272277718553267408324378418492057489824712769622133199966900655657439519079334696804468266413092624691257393359849090956704009914967291067406690187593637040027869687307442655221504774870662505735665963586796772680047481673832925087544084185895140341358372463912022245664876321833049079895170906708338343626135047514160064622706380480090064809387755412707633419129318055088048772580190428189701661583007149084480938835601005764113952070813876224254574489863860224816848387372875420335735583313215993401594383266721722859030692320000222320513521182530496456956914054953197307651325787936549194766176832424957706663640110155377532642087617231152716851828428649943150215712396159637780933322635489454756172500094953556857894078631531198009009538958285255244443046213084383957536711517999838826318026376853288335614587615967631339701419067189469431479295745070394890482005334451079340727592272443620393431766596382861398578614780630537342591286993070813394586747882686991031325479922322276433827147485835505322332437769719947731534805530678945919365058504048362050306892861495263397976898317628108688216898363987951810480285652071220581824431132778565234537761387172586237302157558179321787802905735323052574861982552361021267548526341905834779598080441352409433296445995255637109359822501492664782239627204856608843421882458457428751844045959698926942350430010362497430941640509087028739642508369752358725675592579094978529396363124173623619171062048108045882423004572607249681507363582106019666131076129455636923077948966701391303641940025537092089715233479901731604055895499545168765756409395509438672510089706297572601155271196175400967426971942889295993787617862416196411623730210502914719932299347659552671825684622607555571102893478307245400074236107803370319782921369352221852103716828791201533745826951319872863034341243267084106446180610435561907372541996553549617566879106865133422330771961549629054892131300424985735011415359970258750149292862352397127523585251891611198908809118464964518480938690889149182702858234118524095397080104813633943461570742671275945443058501596541378397353221626098994459511172102228109859809122155221120001127142957228896536184241822560886856226124174645050357687226070653035635081082690669400718216775853786221387577190697032700715223576422541648266930846697759490651237953051700999355733476995463863897050941211763217472645800939030969505243825139025083658683786697481423205723671541690619254674885564893323874389093944795358186916994840564162437957037417769059238978840592666568921988288247861298135699350801619098307749249640183047067809588716809403604077281251100601427080078536685293273746053963276029374087163241784826621340271201494715475614392290330961620197625973473373987244642068408452819832978095565790354582878745296246250954845015596212790694011837690147199478655608252432406623377783639327181110757635008840039674527414325316950764068010399204474692121940952153625168409438816288106298734411132414534207672734684445702275232738451319242915667956538415874043346032472934781136520930612809461304886443982908098959324959784491645056620927837675776353249871200357557343087350195698965623218615529935383658325580085614662532918828860962947517613835349276917460381547908467331700271082650260783349402944397727926850828366134775636798807759716551072645985913891742645900479535107640711399453431306846961063127296152776001492811864037378208213631170678769389802630876815072834357643616742020136692680187946647536560328435554051713146366537770555369535591428775183660904608698707431934697898864592091899892149131695671305493917759809400861267596536605237793586303875596274233159968538473338382686589710951350586666960513512369788299115387770948618099823637160632826138092491838765330040128681512745909696149027229981200444682037578527256988094833160108799581516517270064294999503542893292859338149446021065539591906944283262292019117972668382625328933104622673552404738688197567614469187635839279905398136709273907731109493669296820188999098618901779404655919019323219025564702110930800033781879760969695636290374658855667665426993522128450138760205543390943223052438697241605977266335810087557969953949871425010099172022756297004239778006195399315219572433241104751522910999146713434067821909725465300263028937884309401967947743294862927513520372547388003593047987194247083538847323593320077470898084260512830648667658252921088432742713131912189621058262942812075778817933262989268504502697465358720214931398856291957789614151487189321048406945583853601849505490380044534189813904771455484394598455697773452600095602909511103377913860854918327176851291841906912373541233199132585520936948711908092075034191906619532539440638564653658868671185944102199826210184466071776770920282139987909834285252520036866777382100727485156475307818927565988503725325290837040821057467300150832176035844623255177268444796591869755969536060373156285768033840355797284445428290781414678975832587229503105211877965902939849807045558760920727461462452335586694394488186070088572569753818806222244004981379329375244387187355045440641646575647249928381002463840113131718903059597712015348795998635277046721348530054711854862611517216210695163115644995182792728334836188790163550029963557519873301687529576845624462282742297531057950387958458123378827445886992398531255083762453741895762448203410066465136034293576481414519643974619918685873598938531340555405460973073902739537079679735329320287721460667367724865766944014792098606911531873588956122446342899783983751359325165336428638737766857964033687634213138479063491554302074438830627146411759016339402623915842563454697608296310088485771378295017765497304129831009827791013878860347947207146520181403066488286954245199677897518881899290742437681648698685245747355788337791661055789565187771896955628014606792381554565359529579391406552088441557642639350803571793273045453718407865505907553210594162105624513995080450372215838908437583286851896114013524663792620523608019881920901082669562318177045789173828975556794144601136149076347986193934743812595008098633305724469154679364585957188021223041640229129431005808910672137466377256475976522123491263017087082234355024887756841593116182593779585575589007088797560986639362425218258458288589086876809730496590950192573666986865314583473467405796544211698926985882909445802532113499365048911437046268552380255552134186030650091780041129715202009515932096924151035778043896489504303496740113652528941830695195697147791965814553606202548854582031176423585055982776071921657608311805645845696227770948726524858009983076152497982530129204644835426777623762924426370379268915823922363046200700133276735673446248245162664563503557976778473209852421828277653015274172775299926661912048992110322745025458092529275200805971256954783459507587141378985741944247753500250977816266041805178809837047685477401904771074165885532448948140395341102056132407831414448637965541112691862431484091218449166312284699573622748651913003675078939353377762745327040319480164546069196455853537611596367202132532972301052792079125125866502572824150194876349144042814865687172037192616958540635377816823105254452652698427496870118268756713688699135474275161048038830287450527804936454133970671248500040319195604862120827781970646251824706531610006778180809430151686513033069974149900214583995115960444943320035501008628712751196110630646111042652034236313612541571706618623635536041148935332377132526441634076692344656445076553595617079788363218730824652791576047817070838213210705608519546487382757189992376507451472608000968241051481823389155974131428490866459386828588024483115219686982158869589990232862602624269541781547816160264984563146715561144516490080713186001681182680013807966232306202666150867193160590651462262670656859592950142167802707150405363565913198069287574163508513438606118958552511956491389454920328254069168263761230774652305961900800702003981307969663478866266644547843966581572612721566650607601333563624477757248484825897451021065572229074367709877060750729403199711847123982005472741030470815416963532746640844119653132780099020763717196208459142203359465891465824556329084142004686776438716951109597172705969840763576404660232704253912872094207237971740036195392693777779304976418685026665155786750257154381569511151782349101404910924982800964414764278856355275469506166060797131881037616764446354473582356911992569625342856203074430452172403971257144031573878044764101514773446954235477519283584761133187944424708380853497629677808899397677360394857331129455707298303774534460319431860402056678824154875474920001991369078937708233934602386655268608029991157964989426597212514280487884305260264178401209812442317278207351858166075022047782183575674860257467165042898234361372945498605835725336820432015166091611139307197670227339976608631466248219868374582334245270780998282098632861642177246512537738458300209865403700411825914032449994619553999525542518846710963011422199592367537915561823287537830374553684122609097332764882850851747191785017810553741823458643769736944733834989508702320945842745038935371049884809565275600721448778565560725964842596415548179324018758858791144114605021741531610844868834550676074342596564697039314922472169807869469228229325574871006193378847748520700101637419215532869177400143233854688690978971859887654511592734770095023573125233730464817550276360053346302111298028627932679676899602214507536440106532382036344942343366178430511391031486946569560787146315274489793690460123359435091603272102265884175536268410478048850703862040839592050964873533284521288775573761627505555232892481551512235862958321521263785750114599016750319289357382991976481077958534457607153120449136950824262892445454233679819614207373769236710534563440846854450598539564878311141387428781283013459603072446430432284826834248900193709112831272825153417081963222270971356287747922403658491877751199531243821778298097195602461455652997462714902950776511521238131610137897133415457392668682002416473051740297334735837392512989674786132238968950831784196972444164172219583828622953320535892476431681666139381860481130426935169354350882687885266392283697666451478870307186336259536859960771970203196849060304121429615163370980658686451827086569765127352936308022076725713082602536866679828895314300977576308532142442992653688471145703756645895633184693970958198432182897579170775847943785813501122004628094372627362794554414470847085317648284674669444429552350573570711512630157262180935948876430123765347707591943650813671637411600182097385969399556378879137997643518910530666047537884349437734292073504368086097383588745611653089240660360867113103095113115042688690163278623875618402735746482469423989225673025780892650315515818753673364383142068412919185687269636315457745557521075203474139803925792294907496386476047813565782766154896997636226297334402412985151260523042815252283490980046745525487999056502078458879734006809710832841579127841271265858202515041859315139530686415439660945856729421611569252175054203909104251350941860427387702137177730089885162455052135777760865777679899839924629876273606323865610029632950072972767864323702196718928580741319649326685190562010561107080408713787728775719096882805351205816412812519216214656321953966781349111656619518438156968531973254213555299803668275626689081562527721382196398213395443780369503661491366783288940805481852568335569784587812591461886106227279914919784020360165925445112284018697744234946644881829484835009021666874605322795690745594089366420038141212213467776713785670193178274299482068151803606525852584508757687610529759828860116825672994949165694279257352308388011531165730256715513636657952570988955692117227937740289523135627873781570931209038416766234645687640971709892147556798044373942817533046688292134138877102932371138220892544974476595068463423248295045669267809425882270096978140345676187951879901286365856547875427415919935862799436191205023617910439429861906438003990884470191893230363394500108114209203419841222297544015886112591327378854115298312386675305491061227620775862762258599364520415113470985155003643544540452501177182632692464999981827804993674204445276813694577275397342379171576070896438151374501013811310093804807271518405227827690600186918981429254334692507637110126204249691515913124898699112978615102158311097661457495717361176704525146514666990037928011816377515452656315003747009184951047151981273947058307831912680075868101356412812133097372832709344178655872005069753268696255395946553929627225579845538350482898159368182954051835409103790149945048825163546649056969713648559115065914307684173249138419215864552880903993719020394075678269144368549647053471606879702015565098525632490513659594500675787606187938887805051056842526848399632290185318541996471900255148055647915046889608738335361938655869950487197619120004701120851924077461750988322497832177466091236653262763850609479754087471796926897719762391126814312403707190720856815777738455881014578486394359395663825403249517987449328176366037755888826430521406873447661082915454547958863201434643173378743574869225086704929177005329739712440995272241604272878193901489443328850488976625342365317260496736894005235331603381421279579478500667837513836453636772723418968897207094031854958278719143239195990646504906161507770787841513049797616604409094322803909813647238170070923457984619945270354326717021326896004829176951037585928898714544899981313796223500819234711899154811714645591295463395852586387961539842583951771978574993488254344676160911163239693599004771782930854377252152824946855247075419821743366155116096925540930800950729198145506887316073996003004331434163728051656140116459802368568244133522180426215829543083591210167439285193521439245986266094817172722351923845967173816596722536009467041268957645063360810076525808324566480750430851762196035248449814182671102782378595085128316985539060112264875283568909342858095154127473181783826292704174096537420091482561988225945838897795296212317310120130026667186983580480037286183690160800442445917476025979668662540084495571578040850201864432464164032883537476635081667975687007361388156026878021577885051936294707106348408876470158236113224553580595267554067669151008189472707177175430525535901049537141758143832359645767761624910302142077977851919482712130525936307136384852156324511516232153279980061134241087505534083540810486364047695426688757803257827408243076518020268956259654176704343424092199104027673382737929979624906920824193458416050414208153326673955532259009434593050437896978232377510176963786645052440461787441965787298267512305165042333205621743342629832544818122196832836355131070431791136906196636732017044056476138938579029070144481656500911844202038285825718250459217098869170681526759395643662256010825719923379203965687817937184605737446598911059034611730383721686803606888871285361534127916791233998060996064336714076624442281562774148421884912377516037168428789107942440523386349585723397973746573738165009059149640469578229040142388415045393432650034703247645483770140415241895665165247502561128989302600590658275169053830355731940150738946832228856777638620687733625363440975449145841238506452710268638335645411609851073705716899132811763613585526417464820684280591870302373517083112696471770580154891498889552694089253093318533072488984665533860310312630523402706335063790703904319181722303374961224448381544291181277506622652741190510701144726847524358304243771460856206371442489583317502947413324869219478368390498713063192920665956109156980466814436132846697815481850353647776749531284854859805499025078674731903687852563561596807544039631559739693677554770297094786898335277988372813654082166103195427674701940979377703990403459259762330950984814892097693697518942569299710302856166646491519306647935722907319762314053114764800103878464903859210033377404353350529362716766927309131884307984032231173267534963863055556349289812431856353583450294221337346310608137902198409313635474448576422025326139300953010239298764366006368816752697033519408111660136612807039408883709976190134844287873224272033715389713786034262786047176990494933744067014139648131884352414335556143305940617423178258242058078883143827519609888815841316208184522621291323002098549680157912817061340973595383697371091032973208555907262679481230941667837770318118443561394080254908834095620960073878916302062103613742651047350446833554957181652737530172853554140004149549233915655252099078868143069812310060211697329731075318698098482221170384049465200628016246083776779871748439843986388286438233055864751861715927621411241140012533533131591674217724591342025618335639643572376991510347375286352125722564452871942830656026202772489409988731565867196906510306252395887719303853321050390278738649390981659465827899571458554226993215094685403979837581127126726074888842134380630730600687663367924149385203626269238162246511168805053751899119726646415617346848321877214416739959143676046191167358939826728994714278352071421033023750356271362713719285193232971822192243606687567200537797013665725824576931173527511607028177948389200051747813767293688776714260565563597191826566385820006624218859005744177841944876223968683639905409812923786203550492133155397112394905660055920807420262771938558172372852035917164397647569209547547861556447299436767038537870799787878890533900462771444508661166729383197590035726839269243599408182501877662754592856084251016181814056742262629170766261481187018236695228494720427944024991473683150717577148210713666157436670157356393378030333234257532419986896903175801982345625052358186584149738689397218909200931629944910305711487787500360035152740104190818160416800872088052396031116732570233316836150009374605321188120308858209597412788416989650183470337344725121530751303807268072355444174695160780040251887142030584251112339926843664724312226541397504621518724817137981341078568105908635565542553304094433692749400824709360096071935170547398069123996003401956572897638028505944905251789420930226300564732693275991641660470869088605141021087938104020197319450550543871498033857574187813596804598917261170098850449189270815129352053310628756321863536183586976518663247269476286215547585315963273777347257909222771952338158666555248118018007233738486014744017421275832306282820687817383240722532701168154073380307005356438043897794956916422035970138068383162564952377915754194524501832971481717174234704795904808054877287161405060001111065114044596975297585259153233939294512196414190365354424001309550342922453007785982268536441222770462037283784411863160248094857134398125202814033376237179410995744905982794966370596435365462329024684894613417751256113719191898978292162764520992794331439883102827279837079995687904276796554297963050785076528908420087732619298591265447663293470598873021885523907147552406395185851079558922198264276202663849313737366029110491732802232210539938156601933680105956294308934423541557566247522759863756540023898180861796791218895662200179138943805231245070486806619936637401838476783770519700004050356195186451248349336666273625291451251301775855851848962939466009500784101223772485450971417719866608604415628028078031981729857421261739264439324484757137875141543814736468610752592544085550878360951388693660208037479837638069291919985805758381987597949391181900907919385950614910319156920768481503013267802801517138517330635018995696645278160952889907427365206903635542672122107449914827268426631132484405952358176584107703515466089814261802552711542657717939861492174133908260362508589913760585001608906166594293139766409461191111256409430092152590651574928691968609567864072781442295341633303589116215733347719392757142016551539392209468755699978016713130996445583022250690782253539081476051089542243663225250373048580192828696027856374382514186116047709943577749041851098546052544044178536025790928699059685615120126975138354293219214786833620053337822131506615787840839559767066676276756591722540689775983194744965261428805792062768246589338971261414928297060243202203104544163829960497920315885106604121173623883235093185190170496312724145501956172755762005406726084301723223258091118247714315109620998550159289413719097788818708933878154308093497739576172063398905170371276087328968709028060096145256405883465379111127182275575818332319303487662011117085207126417912777163161768605393662607462188147494431970264692984494061729951906176726860704895551665838283752651598708038724114927655797907772592989829679931671229927792634714731680475899363724287590229570595640202663202395411454466408056022278382786170176028558697194902448396407783941565292468770735896020256161381776257745632389023639384564178515776430133317282802984310428044619594301357135655989379428077385333595109630831243297269770227297839088302029514931155337783001755720465464090351315347584873924094906518458655150912358149224868476379185314908466276384658634005594669134346271773146600346509080512119770920200643730848922710983244382817920711957230519292195772048354542993749839687181349458261171569882615017174284882104339698027723262537719304262198612189303946318042905770901809120807540793025445994513180447885166608778760353978049858698928899547960243462760206051082850526139683636786860232996730864893575434817464386367453396615476741998732984760574424364263991348577355031282457521137853492820858742112782155034682513563537554756350853883131480482834980853285780359246661674920366048168364702330459378748350179918865788542476878625954261253295507634360986810228722827683633107366032164549956846250595417888332605474242189472210609673462893007282257609592397414971316387073358953892991385002334247433646578290215892832090105665526028488777231605358893574000254586192414228986907274914933354678541076799363205680751574401896221240032145689664626857852136034490748710324938229499472569763363883308925657164486472892605576177418306462617137142174369341086256033572240399850035362961558611735825842312938522036904929884491374495218648192534185711007015741844682664550524795118753508491296697735243608667525702131642805692408827286260694776511024419665132595728526829198117746451388366704935755314530670231500790792457099343582535289974645269519905181915305532508535400887221151305680874902103947744749227878885370803017721089689167949407508351862541224477209239660872602672689598942636249399750467242101883440309115352847932691902013046290632299748533624907166770047212298020085236738218520486500411613173077915254276751801199656201142661213181327745954192298142193726422979613557252090117014045369902930626869223645998871208440177806900119057297948456610824692678278345789870604318818714468185710557290257757361379400999024566436181274697690293475576601227113177625029857958839458115164582453082279356900666841386425827494429522667309475637551913515642245175733168400654659101692147680189921345251214577444630087026379696733091361703778911024959879278638716293192118710405246107663600215299681520279131675086809610782075721939071315227229636157997010559351364203605723413210327796194390756741157993396129920710977715972260016378287744244929709100762746724444054504350051456089663524275968189721641311227078290349900156920193502972790628599715023777772840901111494225456774853258554769514258838597259223153028845287168429062700946937808479457654948343101304035618994960705239363273599687224540144711523736787535763545257037518424478380376820689979668721904822209484712861906428564801766802120237634073263631591579386622877330923030045975280246362525591699674393886108824462137481751673146761104121915558238400736938629054365064051252502871212941257221070540678613062214167181619819305798053131669397836423395744523844730686368530996257569060972914876909537446933265499890747376152053191072512803482382569130140361889430719263361128333077503487973793993148057619689037862214660984529553966938919977582230137110682464606160549126501561349441355265248975321593585627802094585822997367600843916067801498756170829120765522930122383238538615334424491415828836740146609749999132233091223011141797716664087848751234579726665355248398282503980087830053224425900687968063753015123775962345405280015154350916097217598723199127620805267498807331448651550505974996304865108431435794149945833166300879913380407866516706527980134549692772840476655459908590131216516027302073177000793875557084111171088142795724901524222006550415943876297725081850603600486473363637007907698292543054337805308531248157925753957072223698761142914993199745118540060983138779510822876384699834087492296065229460745070588222855287392558912791780253898268491188885372045995198982153095136217813149084926686804123220785484127651984183435619134429317309156929919296692100740016728308275109959069314599412165547750126201966043552010874860759241498117705196563810090610898851247479681847087837113020989117642633273344946118047358925831795333603826114686785883530127632035380677222460792991810550946516996939775567191795515045133584696202571855146852415280574634955725245063479171965272808604409729341655001409376817968902370294420892411551154449238261422239946873946204713741807121506367126774311186835175631692884775895402229062057378469877016456286377747025381600874968446511184951881621514846201213378933655536227914784456592845296911344240617081744192945089458303717352022965079264842476199223791074356187774711110201375137842350682270557846292941214380125193611741071691482964015499116743979810652906246830862231908538356643741562478521035907635721514612896029861836732581652415448094587967290101772294566647397180071845632567814869268749493341775431787397355264454894448970096522060377400696304671915388629940038300318799565562419207584377247907931674487291140163267776540543069834948160118898454165729975261613977650389490742203649923851724457202660401166083122670054546589275034460282027117972248520206467945310462297918784874831699533150916833550469606433223521366034742444338073120083502251729396000386767774067729559226610394326542885669614692205589533142698761231525474426566697393515172074307603545464651873353102215706939321702696907799123988223617712677563797416375659603803866031922104202221228971073417474598872092609279274997587140013436242988709623371810425353611511739360141993659226169984695588582641887836902068089350393438290720833711819235446851914188050445124354509506305630147840520731975645998985099231136749207579239322732250153964164829995371522756502837373417746713129272140405114401228857639762812644080681834514041965022513220152230756379068956449582741859965872611052326056207956129299067112909692367506616906001889705134071386148826932464287646698414184352229116054161906699431847652887787847524565719225251503631368276732760498031196428950176786268020142094871771835388782719910583363303293808778075602704652109824707255737885769199230709523171587665243425815850906888203384467207987999878438359007882681967503218351674705338551511954407448798245301765176529366371685042835444264887869244301845241614483654659566452220253360989147667654070987874132966953137847958942544418604729990669811009620639810152866028000586637601528489015877460585055151399308568382495604160533658925657675800774081300536191336579998076116818069539651927034621883270694667393065533757542030528876443281754252921325602554079973205908693146070357854863944602658488727790755510941447197061515160812959387961779244220123668933748382082981184700652370844129152969037911620215778173298596371326357298187051826992075404633189772476470176260107778960189834798989317249225215916001341358032414521019691504858468647181406642290308347330547613202897741474250490126674463808328129463905978807365279083601161175491029433672266573689923631961864984176648091243682217534900677979991113364467381635603006910312803912133083979877633423324167335344018218310032613545252927659041741036259913919633111768759451191752616080025708866185653332545227533233776548878873470048315127395883990371133459321162212985546144950525264534068392650863920221104879681046712134337076004572059531901884973697354110215672669376062202257254170134056382531587625689008512824299506614788419919470037301796151007888001940526048052871101320708214502889375387486633385719190785992536342736472296090645470494305211018256559160590887592787694928357558235156565539636932288580754114858708414835479872301452819940924897875352072465335493372580074219089667028634500499109535222292334055647671989930793823933926833203438825702936218767723761524695989966752532099247050277884392005651526143866989541798985079474113064541185061789529127567175447903399251054906548673105167813293356371568043487774015804811798236036389311888526432295351352695462383442955281496883830806664772120013949878326400464301070194481846095609321985184734834251477492260746950267492158505488923183094418257841732274399336425011872873049526062942813440348965460906742058962251879547148012465865711652762549569750109990072942832148314297039012404176081166410097875863279117222225196802625395744903375749770532389393468347892434725710643705812718978391915535044791298449655633444359295329103067396411030426169491466046041069825675586232053056381367908268169468405197351611152130934309287323450313379268480624829418904320248889737328745653207998363215433604549907806029778458806958219919553041386292470719182148094735469311170805950092426048527772116276801189715199053420268808163804534878889631012043900667428576037717880485358443681484148665558706637223790550832147223217718968180089803120549199570504076945520249614707980825651240293143290693460576031300822554253334439157319439121112556377809851612777753904826333847449028209710311485718213344547451193150641463956693380085326261736870649545227556812957297269125125159972605815034192314637528155778015409383043819471164180140458753116846994840942599584572579702449078540235920902904234761654744873011522093643641288677038930614626252760448245288958110497607033805854188560484174748151836991614104797642867867856422036074655223662650783922901598799004262361037071289183256317854087848270396670706364280919851064469431358786857205164234236579404632418828401865246430176031370115390216249236415851174110121438615825671413506857325182861729461059264746524943451264909499380526841341132650593768787294655363756126678433257639824807962485499629464054693409567960815294752243816253172368101850829329862823726027599414006636223127520123771915683289060343240910931300275323218947180647740513813005177251508679323169903979848360444259023608375336638136763032800178928620395404229388457702803224888677155148416958111178679468023047504640648687926495769267050014671034409933249769664048924192085508895357533456370337787914104983205540366093411200383455808669086348314471543615188741910680226055165162051995148768958317261992346953729745529607956303189131725843126546671216403961597518196497575428465295740386235727672551598225974771146982415154885045612180659349114440137686325962538555912733938914507256575894549429563556209375610059929939251506006665417347457416805466085157995019049427687154388162765201332230714751610900213652574931577688250551289351797787726658495037715413900945014495747967182897194290874295773335117133777907681753161217151405480046839576500019488066767960122115207469732509785430526249583532232144671094890767330927889681684479337831503299602091190365749429672487806230921469018145996729185103202074943297808573942913864693558302280735942567659967783356239574576850893856115762844672921117011331095335233646235382337501659871620255957661642461484129825220448769130274992087367141083323653432465926915178836039201770523258668513374571851580304278517713963614597602688039633424791705653186462213060291228175912536530155692514162360359218747946107633320956808306400039258016413158645696659971082092172129588888741737078333306387381962064154899571512546456334448362355691069242468064442806016087611870962114759755438283571682821687139722905714720155206150144272081934963570140881403299030333118853876251108436053145137637700520959833951992664559785643924422791999645298231593702917531175699305970875132339442964147223166716638899758494187110173632487183411426057353231075811368904303114187717952452389535688686179296344361944327631694536430260296439232456310449669197469486358062739505525853087100255737833798428909327271238659611604138375922688233821283931685367992504721475134019455651414384629255592862795901246018284416764250652603647223568807298271887086096344201181819801441650931866231485814772971316712115606268199281266485372780889133945897553572069468335563874013612679370764091541335599831051210653318301079856805429894370216983964170316360734580299371581409840653795643383747917173820318542225561424306199529745918963599200028420925439289781870714242608108281211132696215396778849548945488664782401868049228824889617970085939619878027848728480087577338298769881099987879401305008942249865978756574778707983460095983507446698568106277796457962251822000086648376890865210753444876079291887844255162629555705618889192866059481815983607588228066242366264942614492961967251581979126127846139704845848672865812215517704708641883868777397357592061628175255787190776501334186266136428138838980969279451933449682373422387233041634242746738137554200040735328912007486751906752345701152162740906289328039365695011773491274920554607992832770053957799573214536282149677256658436143355634072163054199448538283310021211045712621044015129557999448958847396129437284245759602702481195638145156775103051714244879950011592168155478758281653552676324683870266928052607489689708870472873754556337095414734734135130631738568018596821222629352674087148149322449904169459298620055638170202273316328172607838517302523018092462898205230742568855162772461736270719804449432222651588270838149499047129626842305478763388865745749820486683503452923739176442273343222201727177656343674634293399999310911094975376371727946254569467198821573563818272944961927793614787090130270393450168191302068715415877540808696422274255807832542299093606031079402147342749227591074973414156669642568654235972460661894860103290069660554732095657274971691125985255698929057506981197024076047968149909425798406246497040177074909401142761786236846384806490895103037196495648082115461188648202360403907875532845414991993365875312999454712627162269301432365216549828056582623981701672224888245718451751779644722590537505594064222488425446529472007514265628021177339477712962469193632547210843441049546179836174859413598624641591675452599866394153620736041721372757627173513952515386735010301537557024512535934642383930691213096435172127925717252129423674491807554519064870335500891568368852567376397927046946716631936993328275459344810112299966395782126771560565681715472705768308212478186577119480947731647824257784656262462747627571393726662216441606753402531536873039817073409702637131002851129517265961523321288150245394743195562846861488987791040376041683699161080655507655983450993341374996319246270915385159948810953524856533578705796528155256541930506871627496946881257357953177201832134517330391895595478503918751305041527875322161747720534727882766097595272260887572396740416572242843482341309157000795024347525048531779689302354489334697569384539901102695832049925398534745892218865720891349781629958553681667976820746574614515608967073374846248580425090549153568944817332491883357816605979539243714590392390895099694452194596269984626189738388081573377510119206182676767508607120292376204859687408739175924737475077284116797293096116398910499548999415325648387951270757108963155439254302876608983708292329972287316376906151281279561693849738793559762629823072489018915449609464480780605981095975515779502671548475637889026738994901802851668429029929398091055361755829533014582313129780231226300235806271450124694454826333101678696157481802899338074688143217061151817133132462383108621424100575163407745408561023448947570256228232718901378186906288589175253807256360725181110779291986311278392543620841481782637084988178013448468162109084721285847263062439545979706763275070636824494332169420022095279789170088269230282020822170193873924452128571966077024003915202389567540349284167263069261265948352815017693734742118669845157195600310934310926821145619767434480407480962673607919714231772256586040178728758820660601703853992124321721584012562398633971169549243724772762302504247996455269854437510391606162640226108879040115335223916255099562776477137797248055054942176754438505556001659363428917675556154632332037588177363998212652922696748826395669245190179976170413660207482020971914649074185321589546332059672388427239542294424030854921527391916345518574851405314944895412448377582974012938801922585383536847332922565339413901150846424383580773835356837475547731956818677798034666477563221610346203770421532787213525926562892883353758489409431377280759831245063647836789503982574490745017321495142015208083310125124153081831115495542284378010718953123144071828924335857136707637109071168986938035320314830632589953387031291891039837979690054615744359110563525247289870142382931600437657654714800678971843492142555332352590330159739891290513354457047430315298697987443535590979513460278072516575905951973959924104815517030552214382676641530257217046978905104288391796014885762387068108355485398697365286180247338538511601658528518510737482556474929170811273937787654708665218273053422057709655433784743303904324573897975896109711762172144427275642290012561682963826893181636495386520299806343623043784604913374441020312765665468966153589034681210048180924195179767879471563119311219070959740393787266752363042559501766425574677004916135642505368477806392644785309709577055527771035858104513028680747842746685150944079169026274950061177311224970350619531818790912034392077138946705129369387587721822792908940997136926488895868343030478059884155329185606496996951248841883392597835200265799981419087102550060109082310251853727013034726857510086463941617272378064613420197246325592928599936517103103543204461658873417117982298731796780019441029857270172357412893986294785386299180269434412384408632917963377960285765143558009553910999726621642202668344681034368941409535212371593630903495934512198653121006016565116183560693711806264193815940570207749208862005894744577796382866729439232728301892704160454687747914976331098866556641336239345837571666520201210059468441361198194195000465252351921272444240265450605179168191724605053031073076408360063858144774811731907197924305198496616948508364720061650075485310421976900095425217957479020132950946444622459015290421803997118215045952307456160605509978349237855800736873681186063361789364860873150335180447488684617244511659710749483482206333862489167258345564027182902858483209023189899365622864651895533224302523083612109287919576391613139709054814913009024691338796606702745842414861893636977335677055815301900166211882631952758682002692777485280734171927254081918550890736184975920436751357518213962201733381703005178826787796890446504636402102975419924324534110063833321783062967478914273707762746008484184440952681121126041365285733740708138849297459414008391207606107593368667739816603932163439490545704435293249245583974256210276008198970410163663551869915786863955262218974183136989563718794337034201115298104929903947228519937872431519202705764541579820096131903003109249428288498910475300945472265861703191885039610848802009481032107884031201978783315699584432186185355332893830471797095461428844832824875753086398856368377906641776538596881745034431631434692179349124146033373825772908529377979091453136855710538348496190782225301412074978230227357981354233224939055617067600728768805513926363539630777688797086309562411186918117189133499345223438238075288188100369880692187318620441727769875943908440537075450677934593117838291386320566204338941297357133761319871541257344047842675534827191127593756195124708437015168862820142990393617436614059972335264251437061505955261528963398098743854784633409432644447267298450353184932647095374263887635253307780014365327259317997967692485641643447755347701300118531361083732952518491617504847560522323546981378152711828432853085585369002713944010059620590841233496103241718219933131092402796069457015696168333951463058642141149213531201242460717026306229379228979198427538131783234856583031685289578253777608071826034494466775890546308853346706198339379409114852611391518841503246209387927064607783010580390943917243578390449570021083265688921064253330347836569089345368389580566776512347931679687546311395015733314393267305649278777819221862166093471330303756676359169083676492144387679435825014610861211014659871620557904512856422371718964115094306852231026599841516064801490346360710864218136428148982657186434943948319932784952285330082781703761451261028439341788755316246312018162442755806993536011340565312333201337310118298694913364943702926085406702852297916647595183190419412093942169947369514749259971977573592996222436463065739367826560727031134875622956057052408332268710397922331118563642563272857345660694804870234501380370380807205070935623111167669444531761875059308831664039443705431212433861104105517340028000193254333217253326138604170432688869576066639978370231868004626382442386345918971601845500203777636898290882328309212236558195346909804097179316774228652974725631255750833465720876353576637340778049556275820163433370886157781259216738247908388378371348640955073561184426034861101127905559428744473358698037780854992146281860919773731247519323201566251020586097030024473112187356574012178057681514886796827798501699391285036749266799209785645480264214400129387889084508633248649663667158099716789647611595592897948355345343660998428557430709376955910335057179135541839766205709546667193315202158556826924708931997693229443430803059773801682816357423691049332092947584915968994347803079915017637209077215367547114152009636023488471672194061265325422670852725159234748888676094827580338686507143374983209357246707067131825802273079711625020163275997026291833351079981181415341281398705243295234735705431850548866453198741216922367208001943624870831634116828655815433667123145150238900217452115041287185058068178205268117801681819146911532675356121988910070403844855007151552220147933795775000904350008619567646441799082634704207242796636295805597763591898182655256798821015296109471864258871940793155050467468036382042144671754831277986076914974246824585717282879918774591660622809262464559004689415549291657848505938137242628277427535757537986926965510347348084460110949082527918230114132212203638986481891270433700918940654813956883176247848119475607912781152653168192527673176697185674947576248342255522623497891772001092494168485036888310820610934735019283463961553348152387506741355298092632540583154547633206608469000301045727469970390205881905316132527395564060675365578709823605000825989412316573873999528895602356951025654659717785833179393529147416821858354564820729167098433110115455451753534984515835777954511464273836563030704526249772910765107939772065921873792472958165368266131768393632705651869100713218565319157453469853440682109743362667124305103212465093981872711115267917085317278945196534818811115063701516875149001443242656890447559960622816225149062768412323401496596908576447122095647916381329590811945317071943452540074402624840375518359479992504943700905012683314638502653260543784868919386731500787675496545273178564119987255964801527509131168450221019325228244559652495441301467531155956103377771801777849404623924787322216465523903505283357748628547956659046245893009422021383504464022488407772145580014293720619993937801814869853832076090686397437193841412668306966653614802694569184075893402613873908957910846992042170334467055920716982394646273260043841600428665219084314060141259729408868373773340658082423434039757594058523435663933039968368376109643253037324913645081780408616822354044022226350676789047073487960683279445655919250588363540695169109865841618348259742998881696394233323594026071004862703540642586622232933380209056037050754693673019300385148419433277015102840987690002874379442733307054677813617189114922482751824741890185981321366861532355888154210001376698969550534735303816975701269701595735904408022146985910632295204746371448427811371317155397607356766917112285725229600305393204063798558054569455416354913972674477310995936994026785389379645429161810811793002169041019640591024899268664969936451180463154370285571823872701230080281742243414021696748621317066361596127837243789725110332933549788075514642199464041297869554047774427192898777176510743858934011999943842502768112379719797275967411989421242969750607757980896798251233418158031880991244789223282802440928639478350570711787830496391154270539077592477791377428700779133180502331780959134973214975117488632917929688356374319115662147374315978514726491872342135630699119185435599074192496245306703092147732747215845925986170373955192779181768283393654694256350908658864103240774750138252021885151291393837945161682477498477991190903803095653337257140688621795744747882225506981847647115578223821790279347160326690821306797452499056365439142895501210002934952986739832550411659548963391581553881414511208763577446854503606546460133334335219812010894636945165575556319452781208516479364554928476037051362549435429643175484313083492021277138316863195788029140763913494505152006897304856591244803824582991204034748141474617217755591874532367163616403967355677544157158998598341970083680350959741752354449519677254486589944285139442212001349725778895098446500483815934428085409144110309977574298706394588044538952354269748849895764598410665277009008031034751559138785974771094664298805063014330568589657144432247045751177469024413494139072395716100638523452810986781970080401457240021536438154225412356259656291483360953100300658694888340062364570189033673701352301907380558417442481899209112905011127307551811487586355142576397841558890079552520169816809042731760127127009286801346234925009312070883922633000267255867856160532473634007572360738929968936565315439412508911696403394025732316633121630775413761236826214334425263837921984425486047353907156183345941394865478499107133035188809511830452610318034765063966698950836382822735599810261478508592456190226573515956284177838115339302060046142966910453097411544332416899068299194160994472300566436477311900622193864335104121332528188973561174857249711727876266303900244234297387308201479637819438713668913398344544786593096932892817483965642232146889732985395340109681414567485904036722717841949939084546005784324226919763489811033652756720061620733747169193867843576675767063389890522975820207844166587562974447762420289858230200106577819471203194017112640704241315469099449546564420843044043282936950916543259562802391862455565470066659408572800709092440780649614143678780492797513160456659073447790369592516345458218996337520011969584861058329604752050135617279734428874359719011858073079477404252794539794696454457237490659400369482441088742846603965569653504914877023960085137334458843582357617583734110865196446632185505492535952525839240924015736669798505465166205920559452606274567714771503135296599036402713319319254836171790802344115658355721435781239755518432819013299357604031973844776571621723610000531055865147779043549519283868690941040090474366330907562878593493367443188676214342926629661661759300921117369432087015875277904810813319679975750597374878771434223989287656511964103765871292338914507698016886358680320474683774332162426169827208804742891828802361917677672688248914794965049117622832458999107437577034449434293807568843021609691312195251219866879531501466807615455492903013947176776786535201801976733341851789083429343070178146581514434540956187888963910487282646652919398036343075469737664662234863133084992908672038481549999103854391776548606387602097936451147186111694484677373644993313470123062645196513705150902899747837627058994330407300449363799179309528379692375030946275382688969133690713467395220744484552018653047207924059396178672684536601506971768486957361065520698223408715624195610018468360597319582417300542039278602864469406063134303085131967763980764965528275032642783916449783726507066501539143524463227367354041935790094786177156220139576821349387169007516889135715155449701670592740690154884572676299660766775851819954360608369571852872855974702723015662897395431506040555259057236375377414315430423551385907411149239606058017906838220324738548326147215428321402011024742306478101032921700991956566603482266507548911567238387073480757668572671896540880661957908605021178441775651256517953284968182106122771787242614708865969570571851353292606469346346714116756197276385871827279029572448470271107328219366204208985686260234226615477209017815650605453387832667702794194618749042506026130993305867218483990538874481981003169436222033959776353217803592308370612293582042400225472081259977498172380583183620049798577314233291282012062096190151123948497483738519152164786310384991563645579245223390723486054808903293526312216215917390962442853387065961490344553243873455811844244062316775719671940702946892361576226513910181916819918734421783440956667890076451533193004411662863481155407605564925772689205297530652632908862397804855224328293375468516509774515672780586638635181301821569345952354189457365182592741079306438910073562903228878795036660461906092592782511428955095721132243957317446275454630483879930691712202671150904238898113465318980009309643776198907090259852002882746859586101479971469123160412490426831360500511457520855446823042919617120125213956192987754923928229953814100470647559375118012524174614980360287150205839304015480404293971579176149076482842339324183261129336483157535181296652979104550743988388646394708690498639939777762789317317977817630121554062776060654453746192470506074998543684928797058651129307992849487235910762074427046236014108907230752315996015020896453199541463312658543167417033207211062437427916666396446329763559079610275948390658024740051846157557139666625347572437490949231154386086736171703642440463185497839942411194958526232172188952470994939092558495460327175254223568061988894045514295835578412406978076630544213152557075533178076777758926462061987636178661011841257827929060015382984522742026047350059202107496223370709629985409676247676080447063759922550802459520153851237620779264612762027732711743463560598962034292446792937221606768194170248746355462293877142022890234928455618946852481368465311127959624580628649721439191148499448254937714709883651244709749147832651866498649784808846310627425927323331392788420565363500910134220670657872186244856177150155791213381256712551564893322265637968180341133110948208542935853566980548839672329233716416037366329853339688350105256418172727133789411733499609305646108187302347801166984948645366125791197174905811019747714335878692031908180872376502906836334774067383511134852228443738090050721786543332684794746881000828923203323551405143009583457472365097425346653233429470430347870305762191568007066690769522748411938305910233788024204561287908645387134981874964859020379287167642564869698522881876569327606922487124530444085450667683472575734652057021127066552745546584900749579007177294871858632297817604766935515808918834500544921962646227908633920986478764090461523451948952731558214591913755433298536028075073054747421349357596745246323821420826967465325785651187134246805007236176498193413165174739566920390087484265423036196041287940761073356855633631683002767423688161556094869915067768940978692132884179702425140762150089126058076831580622492152253896221860214053880577019846734969959272960789936311590338382480666237767521279479102818889278389746319701287608303484646819719372925492654104510241217024045541024123876586839304949855260012552513283211351644328147518371403268983023461900483188256259124240488582753995891256026070114061441546349436501649353794996772173852868858409819341931573976761333732156455564380690080592169719069805534004787137062486926164323559891523905193866790365589394793882408202655438768220357207549123002296077390216258769345060480685382762895626706744349521242052436989101251401175862842014032829498898993112228444159037380136997214970949318188487386506974921058545731206028828048297518610840389864649676281564940646577959863978159356507853624508796841734586117078505548425993424473313195449150171497303118632637525180270811596896248995690868716986533356304637600633943439490702918044753527411575354097060203299444018156776354106132922945756191318231540073738316433125453376521003520749261885087343992498013295411646147778800750737241445870032990291796971620736007076982075155602154238384382193406090263594755050530303145802004197849125026943132163055532863492544337203171743463330464676257156253727324385167497738198382549681007715414228085094136147139221385654616386405901468587270871085284933100752291200524338983808897081432499917616159095292792216268782634964540041275612164818706309612197021227884955507744749945449810877138714330456094871917352802051341648752225198362388252232285700570544859574853740601696442374647267017617472882979554996510860563339641990714942768071986451445171236248105994657302576768017769782526600358077887690788774877835839603073733370140482145999144916533092731635326842608021734887201795097335140931039757691446711400178420068371262516632026232782934294882476951493386159618518851746335025894196795233444889206263501868369921730828250444737416432688654943934454564489577109330744378473077731631258711056702514939906012909523200532439705966827481313676243710941704623380452613892510245750234202701417992241747441579421487016157697521028700891091893762019061330378704529963489181703119894503780262822202897037035860882234338821238597152081928048744577929765953563090961180467393799740006503545173995151470082813195359075336295291385141526263441801023790331418648783150995038186866156811635468178144954048847381736793090030693167773306927772805167852301913596389185122975574725638232900956336624410127061292576200225017601831081776605786386790302618881079785854608249339559037937405076643020729764481995267956095638690348173585082468308322417103593042129285189574286316564251368065661395647965788524069761323177903521325173895439456729964001734444375343746485321043899135958413156901885829634665808912947610667529520633584338347325526466873740641572958987059244071705110174052058443875859525848158933651683744803549780078457774596483347456110419714071312058779313834560982686845105864211162256803667232214827699106668167948515951536664824335549932752747840224527792918859324751181063055771956121590636095824247734496380086546520671967217126251009243244443491299881484004509262355099400922793743890255977541096946963107668949608059097617600138832607210320666541879732618113950306870153819047284951760899436994315843448144039369940172258423254766658669909872824118432227533356279973560423732697053233575355616892377376483052707852509284492375284235481686024693174919524631705998930406891682147254680688324448076592665277967070253621983392729432559882566577194985788411133505909932553587394437673997428326135919535696910740739879660351496427334842031401590905505433035791069793957910984330154979524657667778301764804841528214549333988613160833878125827044913018747992518885340084519867849773572402290160066761083019424808020083221129953275881808212939395990830685777833162976148464206922632675620362978112525904196887025677604746319699608320174567677108854930686302887878181193072215994445613059046308019563392704389665711498102147269981215802884063748171187888800104959383186673561648908956169825589343379252318843131960128461279065191949977206954264293412296415605421508005077167709003719946229259971798496136462240441461867765601657821955999184568096548529693843302496435414070593411609416696355838599486719004804545225300947002165807742956179841493179032904216264645478407620915905860162376461208898012758134605985451298538956830850935561763271711316327045325820883099172249074437639658283686211246070482053129138926531707118913723103406344709660936969015193079130932555272970974414890101456113408935444707187029386887860713458432687433020393216684819001280275136660132052636205780048554733342361759288457021054711320391170460747551423648151884551160278156983107717012432269149758572397982506664792546163401129644996539181530105349223109429153599093051682391344430653523293499482548199368505941248679024895628864803623664627829421045940835937016567572925768854722667554262201222468648394099088047801189386801469769151847435577483669889001750770312887828229380033818341068106408448194681166501360881144355593330763029973852481830492105570880805681732836745194281816624571467750857369393530265600095977068299588234604754229211237203458712784937055208689023984566698900825404151754776456520889873032653295922208774175357103883037725375809036241111738325767528184370253543150560045420765498839141669529208573969402482926963347767999214011409395770240891738924140644419030906054066580735944265800315788660763774269132089279361419396844981850679830995626090580091680057544152453783162315237195940926361180899478394582059357885724719087607560604875799731180566478468650660585919932638715188720192401767170317374637336754219635604903695593552183894714132993604153417814681381445517087736133426161791077918590760281561085639317631094280206222133951460859138998695130635336605832938431484234997233568299794294770735768359279777159188155433467254648462320389283810603441822462983614134161348895975297528747449716129518748994875819463248543289596488270933575605649766467221612035926698072418929013712532289311326157945602828611842535605585958544725050264472789435595215240149792572632256436262134967691133428880177158143445848495262107638220421021220652447651826696015832893085233094050967784528136283945489689223620461580776671966829194064687684935103920404910526677507146158430201733037272678252885508843674513821456737369686334578083243653322606210138973914043198592182328843189901443680497466969949569940787207578010881735271683852403431060207803411311226447316280088707019357931991736466253064560640986301712457377599013541760135359602186546777630481091716658031739745198603354092665977213968356613489561599921881017615426569557723397282056168514233973358358485245196007184532923779956565280922461279381371292416344802543495801481495852798718991425589900885010332888381065850305295364583225536518814386542775813881184524417495341154687424551405369704712740576564410447135269988865351042225670053632604938408429315993287808633389072837217377815290634682225420472973285459171604234470614477050128400668039465671833337274349621758802821963594916810509033297530760638591454731281279936018899558728159145122080207989711522483861494227186252067241076856279297819874432502454854926491660554937845831675200229264305358182690336152497994205997526151449328458669478423016374054812821562842942975926724789750162883634078889282316364087876457179364008443418557251117854127118073919437378731216318310431451644731309807024623838845536113064368044487468369855717406348849856977169091228956237343599003960233822943662817800318459082459397047362696721962442665674485043776066126168708745134691988541324875548148404678591794697799918342342709591217292240294821584430501321041704967738383354861422850046924999356635492879982989834823602660799009129029222302853910528105052966077089339835157394411599609743207912215518763173404490559273128332761813707575376418856158984056985944893351618548882757033519527311799015698822001793491680225881787270963403458798718764827655907547660129011908801138867846665963939126585147643000593652883355365873425660576374500346948109732936616253974011579161011170623871289004693123039617198934556755101097733409421289632154303373489837813787949317631627804168658888069684086033221250093726815659882246603197617110253211685097836115642309254179723706719138762401946907743993786460421576802451906925507699572441617539896292850471254352969368316258033566820058463956771222343479970939174298805277917361908971589101013463270515485111206288199595983871549524825112502043964945036542657372599988839526582109214946226039264506210746543020973800296824563073048064819605061099270174063030860154711937480361912614315183036461056732271090725836781551514277314138060929790899244551862280003885390273649977547066573435310032295111952510883204621118759410140615045173499410432902035585160135608562259828979163604269363159314248141735859347197158413823637376598230612701358954638951391171599945529609161379392145422288685275601674568471846891172294294426261998999804032408770163473019407012299666202773869778121772788074758212652334204151431791680934743049871845561627127952532481013961513565741759586151516973823965090470408377909159324705000123642541237404162539303894708676086578889235706795525393052122942972664458184188068845236129528685532458837550301582183609827289142829218029508951964174551406202444789020498056026818436988494784429443566025285850358686693592437489522821001437815216801846337860956204358673090255458524565337783487042101098937073835478439929005561368817375931811821723589969935231195140272603268458290086793694249071744230852673727587588070902072440824641167071505422853981948922187326149570142753405215281623294437806296437344579937735948791826977924281417691892890964652954368103574731071367678433213999811574651798923653509372348150754982158758457195249714347087878475791482930843202346291187522107512862724798016881975667270298517268279321322178488309394855087453261011454895374082071633961997085055040647301493477505447967393172065364495645805172621238612935517575260857879360692005846927475025165354697040885733175538373787728528376752846297939239055032389399761188772602303744836721957273120403962082409023175505472091424183674149901830254993123943984861536813137142085083441409405372733808785634810803517093964081640348899179242123124763340781562225185049362543913584783289091113862554061383225527544280785701678258486840047620933057775854541419353531373646532906369259046326814269558424352650391620915110800401092729733072296341449486547288731658096427066796843557079133163711502717519225522331648360465111045637778800939744432688897900633888192418960175024185020011978002543359504967305809751989545827979189565745794835902877756701773986163854555022243164638385154718417128597277771432391053504442577848391592595855738990117525863808017546836484772572169944611521177573405805280670628829874692191662420276081902758662722863721012251051467476662833754283477720918508942659220144544602542225877082105490802489882341870283666376667305073202815999435084398924655331049077557888519383714006679248486284600852634701358309493689373861021990723300813865558175495127362494548202614963795434638269596291277345387463567043654310440392962270982741605512154973744735283939569826630140766336108069582880452589069471823237207610970987553469577517745561219725887946382619830632732256575605075840644524812940827113614371063899162191899651027032231914546748795360662234760997487013372417726588138522176240892007105477055045163671476418741724079150770740258292453314329897476672333510560228696267210620863466081291896557216528804034768176294887317857534477181888244213555084251580700879521986043508419461845033012360828410735192511870071784823637353959829009612680571169823055942859091193651934728457828477827758980545919648728999645198124797781020632640163251307959252399641176745185689059988062905999068774862699926284848079004363754774986640776685855037807498511511259637210575498023062504216086635258768220135341580947516988254577663123905050748943153708768047162430711797962568489502216629510040553984656255437122676215351374039170663485905393078910613789932122440805735754299770610798905452046608685899202721038483498239496054801954260171062852160278902481821938147570987290773671895247734310319319841722263132797951228244139390347451443077890554974208794429538213118416213454507612144623036746101589419605946574896400557320914463448255282442049422979987348867002979934395275178199069025147823489133669548005163519535859576618611571552723727127634982529635562529949754826197314552688435423540274836886870929091586935212916104193822226645569614250409245399246786257564120874339566384462626956205655453233645924030839149919813144821806020441176835900926333467915847647658601118429234476341941775485693342477329077729395050539582091794984228928424567682463227784217461894430385375083690974613751476208629515917579211515332652811316158123298931052107988266205954652202836940773989015610792084468693047251039657401514609996997771776430580475962410979105988496862671140697199469367544573474887479364724260013175182668255216662558288231476281347508196544897723678691070989293760197685412629593236020501899932484954865240068717042576148368327668210488104524822588797198154654036017407753586051517187756223679424196663203552826268002697522492544880361885458452642554397721306026708798883369578434755206340769602143716639964626295805228586506878298061862544301363122184220816295940916108312481472396272510036901039386817926915443464657524903014568850557253127309689530123247909288345398420448433288800560019605140274194532539937066886511235890210877208640809884533906513665325107831248567533126037111950101151490478025088411658651977587553281226316204842914086041829653493746201709982611342784606783119600355690845791820347725837692669651738145177186480970502385300135146076119567194821240873543129802970138408167392069795239631796567308640208474366671265667743290571260184398257993325631805825328071118495749773756974787879171837016194250237176563115034453219699614537299374658977238287911861870228006320032349817301719282507699434993932206073010964026279605902473693054006443902527104202478176431717330443413899433401536487881688264301017120106425342788838862928380294973046330374876024966709827495737988669041643055409420713633108505146683166593887538849143212904563498181529317758616215712269025691995266145343497442530724075454075775938131771338153796081502476818811952243485150899046857374170335096558181908079790377359541739303723077276161708416561823655071565787785124381006980498532873783609172003063921905664450614098664926695110518611163044853906058088554797645350197375440509755740063902035311380897510787751992567444647915930976826785858536122066726165078242102041546633776541613388940436190943684337169683106232955282016949944353438536648146618185878930851453110669191780424931786235569119989067686375981144471180543671603867863996650135108552809956716714028423641965568206809001781627312674043429236290395325473229572764145686030886695450964657519789690174954053068448550786282232623289439884764111426149787163457003364508233437686770286565862980586762243052920720475741301029211083001412748452704474798691953557918615209209205809576859773694209089579596261634589045491060228178359383549672840864082293731391412254484858004323885366949165098652465750511521597798897605660242131450447355599776098721348525403508926199543754318362969711430304683268761640580340651891988881255909415843990905119238298917531171637053620494932827031691018873936732832011050192679052453258290398782419142252232036164545515513646743668558462564722395232486516641174254187850931999295545059836936318214762591937922183360213206972658211502543582571024676760336613000907778872128717868185249958383725308213301139934262130416100318791633967789814281863363901903199695393903614878411287734402571041577181823940395402766906273989779878950745939479743235965352891501145618933845909492701139533625674869381217092863343082326083382004615214727680792451228369324258935094074797790137511546006405796544189108067412508500851106189871676770497768376822382829707498938850211830530108857514348557758643351599157143017407479432077348075724459529326313962275581296925730512227861516709182835558712726216716773673094592109695178753197536248740920054864494371715219495401041945255187518019401458260098987787719856457231460573484417039639292627243773039496676787845961115675965611362717077283511708216432631551784690473240543668092034704796894469768335762098240834239673423235573148895724708031766497712463450137259860165708846280537765608763631490047752552298329275202494496887571367855965770143854593202426494959526969631937717096350137065767598600188932513439196968276649031671432011571013224775946560702749372715221875864393737157878788880887887815360181437255084705033181291333172050512270584283338413705974410875891961158063918030279241687308972389286188660490934104935828340121536613030013337481107012030069789513060054442411586125305634652681758919081722751137743872298302198927009706580829076417609578421181513546384633422698374597963350413817966872431575741740965225897520555309636938974301922757254693668243762492393001614879385161531771060862875618268664552959297259294645119801741781606973477955297468502816789740822873739215747007732026395227749606537846905784927148246900427733402176622942638410837704551768533895818741400044376117259962980619251946596283355754156443596976045098255036496365235053807473646369864676619368616470397946189579876999211476463388698233208585550714675027870373148557050612092030834162134013847066225782190733227035712726093687069983519392720829272267139403263323788065013154596484049407672679990498756305121434347834047038279295614457510397434689488261650850860676435761532431393422391983655435843706149703098925617205779999037537940762216510291318030860974057032915318873704436832986546696694550482343863946506051932548535778877214718483664585400658463918594100931759658078540735080933452280034679012882849094600225246433685214298140983657356159565934444180595314930987880525464019210456265505060412796118293688387848472082594837819671462451399912843650699925044368876074597438722486695016708644752121368956393389000859641186058256049348491713603964760501384536802218856630062999904592844713226683760236487926021825051944363531687525235657918751559676602158121734566580959098980846307297774166054889471245218051872711843088584660999288272400019977728113302587986393401835922593142213759982065031803041256433149888635785515750130939029488593041614428007436468040689546168866466380031770361237665757184074862689385442177339040547627122672796122245112198124060102835562187115338622271381944344593285898501937931090304780454824640442021115489335771189451168109181420421840700677914694426242994096610483509995388798682583841884937824883154027136050574911946579524024849199562666490649845426502344163713571263085018624746304643846873248115004133849195863210273708034707039036661264444942327644982847495684865353596611902347721454628537701848170201924538316277153227005457295893795165223570256069619482970043289929450919418743240627537008985716673828705547882518198509035922892426422001045378831437456841693035512767994338942210521093864879195770125150305201800617594098736770722941468803463089686532789214923590665330281644136932647172889049522377885584135579972235374002513594914822180922092968521570262293048046735007160978561896064307358192022768860624681234677621244370971650258275938729332308958932065070437090517153403629699031847903787659699794862341670694189472939303562143663783610312273199391512686531734010496173885104830726840272506964931788020784594003419053088539339112778574513481068222393975830165607466859289283446428311628676605519914609377980558455737342212055557230402452025803172004582914347189787924422400770250868516860586979021178665481979407557480173185953591633082302394814709467778457427424766415407080681982555569462201307100580524975801906677112858337771754952975863610339603083446023580325731517299074724235592151455172913936545092110155790926912524752748628115229356380621605069195062600108988006928653902369566409743208152470338868094477693135165840053297045485115369149456405284245142174862141378038633822107206714674715404045741818858395365105776901627068055971234894198445108066934336855095242055372984552132524843892591843791253665843686783138152882491840734257619954742200245963209145502277518705982459845575072874066495885157052231470690170509738822881976048651271371898287058159138814955508139951105255123741536007932164968570842180035545491121548745760625956165310262952486340614880066551879131691119314331945779621292193215227168201678655744469384518383580689519395345533506023303930624759855127523790945564577303851693409998231572856837039132918139894614629602190608870194787260667015007561464060407177804124014257405483511353278480771614742676385408660238324991950257328416583383174315867418197840479694118459962674310999676353337389366408928862857721145301178756819413611489805747913764068555729970123471612735747533505371623003683766195825530394593240636706582400117632220844264952029054855306255976040800361949252248094504294295415675159613036685614486517683758567817295075701544626290444046915606148720174712998498245436602126234404945463330790892648583253394579831474957309655359332078463274543439076724446897260649342737694393698949672763506692051654088190689851249065015759833883291646495383384086651733590333908369405236041901264890382138979104813578382171826839767965246277293794162904479146348535653746284541229242286904594036323407491722179215161965721863269133332044646243385990200194767056286945587117965287314616296960735116843528530367722928525142725092303513095532904424352799397386580933053681120707732856304707377483568399081670831667132040561470915732318857491098072334010385417101293521112080354383361756081332952995982935763454096454816976762558123049266832090896577521921045514525428788890177175753550846412186959272615994653138566793251516856228203086153218666440733158179851087688022274584513992447114591334400395851328834594668910291179440570150380111891957538527766394166943702593574086008182980177307451792509641729191370575505171967437920199748189938895416316618765151179569798615438696292112863258427375692580565275826828367848105570971982369907185993865168928309494488837169184320080153283877921367597876498975522628855037179587544295278393170960382833193755234607866159248504767057774114068755302239121864337943577024690281179005196833551805545107466949389030312766400468195860019888669180017111175161455764283830676685463961659588546223701295481795722334855387174625124625579565560518248648698519695036664271211082978594614089965767887975058916270068247323987152217732748128412843062138230619369548431760152685760550474321865037342531899949719062239049800512736915770203286607789978054680986126758041422851041712497434296803777943300767219181607888194206617098187669975713421896430817737511500570056453105617197747368273719267724269065331946640538034817654167662740826186229863076216513792503230314756420694886287037805676631570136634392936759128647306406965143846990260887798455491917571939078365934188860261845707742477377353254891984229077921591268567707282019423048060600648489427993516462160020697431404214584497679778976040809785883133404297371298761728555525360479752294116905283567210763518886194618414957234620300227343824688277088632708513395930111121158051911196299973945919400365677759521654237733473567596757479256839851129707582365435256257176560462329371106848589310594343890360419355876321253398054064028407788390508170554076805431517267636203599466146560889856398953313603744790132692569250308784857685195494819363853752028266922934822450668271057720184107928139720151961871049065091071113804117295302293813391936203416320465543511901586728526798427681496231579254273921891112475914514287866575903924547341550330941509322893074313050525334276089954325302206650333450077396159798025420014490462512754212108900226142117030280279968095141154320329331548372286142870375683886101768161372486293395835143789812215828719940009701394790929054100999279553394777338825866978497781584904536683666391371263499971949295754509765110475791301310246690198302551715236965190194085951481630938001184777620428978738466351198016549638354053063327092731926765447913870436302074702193690895823898284612476214835045309927337172178207056458817483433477552599570221483488707401416044344158425863207896600700850294162241291244052286546390188660820731878052036743574154844912118421705862615365854252715458083988706210401904060724106697710968865604540262551877515678757562390750447032231242326518772258916150256278731642502294058269378465134419019374847206441033539103854059863220862733340728116706194572520618396372758072463791805113692242390061946046823873277969214106447489142042446959246655412848194652659059965457770614720391486863277918411246074359968746103917365100836475302227298035648214217840288572832112276391508116084718774436508094597481318310077001895417245126320067022886172420991629475527626810887850397285829163394498584453239064876304811749753064329550142407865091575702205974994034145875330300404611997124782405654356468548925949194449790523211585901535230057687987747641503089344096502649934089426315069271142586501102460768011458052004267705767187355551595584051453763841459318297969753112259131625661072477653414608399057753427803788871750580130322049344722248824594264282758257391400207343480907557913591301351284782144842040182427749103356898701336785880547382211526541511682148174046260085255649095926133576465385291422854765273707208631155313956091193301147097595308608857161054420872898506218154124128400145321724491809000259790340048772007892132012133915614889539138582400283451287423558138186901189168730694631760285783706612202012328343536215125639911263730517381708970867228854783942324504475805524552933400209021883239566430998772030773028845537149893666172931202553983311326495192217042104683401619168358293077740107839682185100170010337768211750897833462514678989600074983237467376127145507631825902132444563119501373077876093408019924757462122693465271418230193909523898029410252783721614152028577823648766956424767472526038302421084144189107109885419248033353743943968463685307396867750350183562332529068611242736698518827294766175065361903363204155537362355512575566408116025008025796031508513567138572309767525734427838411914171887542349423243252784945079370454553509791390665114845786562255014112167902971090600120050281705825390643594870769801594189862419605808797882948067154357657834125836255378305597470156162774195874775056671115590589872181935933554153064221800017229618484715094112389246785210298130266242796207605492982669573260649639018970219634029230000783288182929513380011868233406635366258102791480348450906796373218272247436685146469902515168178313045921702453821006811932306274426300641646275249115172064499225790055560826376588197064522671972095250513155473374630064426350848164247055400341520071910933524781952552338341064997197741492350330254625216165757651564839244917805713871985975646624697458252049001167054858822724043062136858407385749019110499631625279094664127432997336936813640044850068027329112386120642262763090214039015172307056944423898456453962669572159180622183021452364396333051601685893834087046386687643130996251127612060446820545232554354204778042938261739491097756271873376469384292102746011658662056975159127934852676014712775541488686907957033669874003232574415670229057884986711278783134911043924742198368256016258855042096760108670964535555372171171692161063250551654184499706187767189744502944771740801187773244147442177449920265268072897636494124608392754864891877272578112278866172617707384051510999303288531131600745923713415483574719882974532208725752051199884873255234573706490318271918758062231235716771021219257427164110256578106856772230570385077835758646034763086086082804434204350549226368528811234825485481708677230347204136613463912105631806720033127866089348235423940823188219013625588466102586368882474316250691705045500358265556191353644669575614647832147086004932280971498048367417613334911973661257218823943590410900541587534348905594794367662648526777337632808612591087832344013781836061944741733481196866635966062426828980593505238117876718640014963322036292950170780150711901748928436977146715812247415177494650028627953522798301408323282593202915311613756612317516555998730878088886578803002084212515018243649014280001830953734036367906380856535584885291358610758856051296944764495914444164806949696885083891748017037709838157640818613030309838848864498796562665673832985973222456070761363362536427619234279588607273356835832678430412264693732897805986887364724164585310364531681529229890071067183801259390651502028247530201664825180793407823853655213311270750436497734790071058259325556431434446237355292994623385032717230969449842866572792770710665583218593209610770206912262081088570604614507331006138194572061001447341791463115370124655157775575012654634454774130556092158359438187874290667530641741380582753241593997690145354450231475827612819885787747520069877495672700619198216305816306321913474537603751275817216651828513012245940160334284079676329097636411252707511550641436524142558218188602770179204659701330098569270989197581086174712493381139151673004760625101921989619988833611673080425529890835696516610217551484342192679307505410875848340167428627607994913913038648490927933732927467722221214690283926288261722717535282084471711619590946664161509008612357179645031632582289179324873211663653324896893030067672420581335710670956941413459301206825081048974612288744533885185763494598344401253347269419228714228966219056327367631736806595373164975258372586176016583638320650079899942013591925107069302083028853414451489719870435297210413790285156769848740871552564802442067304052617091468283274889892236595142092967924231582351804933249266908547887561973413598603725762168971502448827383004136776398471451946631137723195884672138436041501828152148476767109341633191037440772428667416108337790473707504002728951571380082626365253151550425905331931880867894069835630903314427375811053513204763080904418657835735744825209423389347383835728689643970741695625549793799206496616484571796577293144081935051712793089413976614541644256155849185918844342562320697901895485121459389284478916827941959675635122188976776759186367190547290805305154435098449927676253505457390495089380506591026012956233226514525426372812132134614689895188593705738491901182072917528731398432341053396901951807420107772511784207965472319652065013516288454932918108956103407521989101109086354882649394178451359996981283546318578798237786785454847528249065137919586511207044486425332729617427179486360219715996490578913276739965020869346175625487184307583012339810084605617046708539252270047324512158206020576034628115058408250030673277198879067709261487791633067140153406323287484580445648936756567990037250383080931005211018063700098337326285953814908116627817130305031342171511850424144027577831247088179784309009580092147884801315559658849265131527763951552960755465220953296068093011447595201764915708443850960816321979010996777568333026750774395680243902084566847320088576703310771949491621452419768002104964311010336956981749599103357741830457650912011995629223969191342692860109429228552289695507413288395131038816255926425658295514100698587038388115880446473209846404530636162776063732210717014749091477479633230417534995773279851166174745325869749699695469591888393070660010851860201122097309607849392063474303817737327355035280802246882997607779267001277649685866539100981106118937777582284138248761234352254358246042906792520406505668101526672364252406715695028217674054113473612961018781513306155635915428934213293483607280604603743250888737645478411861561279469261317027620340429802169274046469355807028578484380840650563951937109618466727063163610163081678450181639255334369307444825408662306787549147975603028892073203277078446487385263056494052026184997924160107736165375054558481992843829292724462272485440267850199780918456414972087258610437597892667060526654533306366865980830044180752851747256973615484799572737547392764272251123930166488583750400942905487926335147711565273654374115498859254745401570598049413973079505334124663609654004038052572676179762444215568548788532992329583692672777010773404305163454254093232585162588466930505420294135229935432323162237220726045842618514690428068183050322166147835160799328687289164887691830902714793917220302620015829301483582160929255584144080518570193117299353507724913980659194745011364453208092368444565874085022503545212352859596847314378363932674327618301366691924389282093257335950937377270722527690111320060532766965304549658407780571246776560302721315184282086398697243991262042627507584828071312667593949653287169090515075595993785269499812277172963076815754767718974583300659749242340261311041353547849630008593041556994511703257717902673593068893971669386165775140122416168933256260329810563194228361433495968160107820887691089179109416642880271357782807683869512146274903143758287657850952027914900204056502630099506736801211204835578966468960960715202675968534879629408325432511149755407041087641596752835811546781167717131398381422873841361157862802510604613070166941526908967104238273666519043432671820856616518056602014498786569068917681043915160898619273025930276549895749801806276656601207009133115050134672475926227418432014307310668312814408623188932343445136037290070507168884903013994924161880477549923408115996118489327195768316754327136104713970885051401415576052601846232504057081827714809420645182302526686983918912476168620706226542674136698389853523051462129581283286889452867722482955364440549557922668201052700034089240502370785160283525119548277908015734445651695852203916318307807477686175588688370458063063480982633130037480049084201762281896168436788061654740776512226405245155234808243447613425770320267574629207028129386001983466768542246473692682379522133935151748888215811660020492808324252185711712855822108829643380736121903930079415159686573269837855109740993643394581345473627219534529351033317493795908554111522784568056084730251528100423884309639251293352775530637092664906325889859651694761510904154680071127352913160670295130674537885375953128837907085258183171379109395122291469061572221944486612391521602949640935654321193412743654243516588263330129686664721514251370732907133991693138702699883804483304097107674086382667822556577945648313642420040461906777684786575659433009345579049149928344988678438310472309925200037717981394027530260635425537380277928153191129223832698357149827157878150699627448922699564326935202810967817137798177122366556463507720855732131266765798253493751841241071220170663094261532951055229282586371718140954889771208010634240425973476407130009320688816260990496632496201359911293348366217281204174039245077269147262919588879874844099723307369142635050499669078138897725755211485948533119415466617198257302685919773041229545665605180373529115489667608894106957176685305360430028365751195522919357168452994722737557664883336012382130646235548375575209210532738175937125603785506245251727349354206859857467814112719213392418965992506138183922101841419544846989240327879952340383170586917151687322911744538715543238928522748501775455365892335098241310190745804430959148289726753545753832824920166833906723887877775107689147039286246012729108860264276590098539231447146263095749939787744719709191103430356328990840536131127907902555611970356101049584955678081572295191999941789625173142218466950346147242938272320749137340239960953912862406979333658735421211419827596660426622998615234906533371387394686913412501209183812467526904064466402820270167036786058290928456218245109528084057036704384468407772550295041656882151075127261011231338534827169161693363900565579941472844874404829860896042296445344342910134966845882951719678375638552568669753418063576566212908225846451137409148610009321434974064214681753504403157358953031316899322445161078344235248468738660592765449438997013121623201795374764845000093967121336163124357470550604505989835621216739332422140947269256940361030329195157134160842765222370702348734147554011968198220149990217871737925231921000318657600096335713405527182574243747229914172024760855741539306606610429611000853862613687409858554942329630188945999628750825370262480504026821767114802013079069127628099748700149314305372521142885239820346348905749685131080535103047354724173227882187685605888180629768092382172875894784347464946338777112510237177152532402476288329864515017036363428870853735114093875978591479001082889262495400938919289039213823757670540481227959002157311822500879051682611746635936034294106205839344639321647790597893086077569468870108846658438044294456541230257331076019860735902883312922491603209933940005224792644226639264645438778139861141476580186475692856887870723770788868035464415030192344851459150090327934935016659110742090902251737369802655334525782105506281033519608005923174130441011795580190560652225721820525145045093864098883625988616212465684718684156956986487018125652365511240102241336959280875806950859020195255253202413270386493551662794694356709754551032135346466569937066612440283779098999472636969611464796620940313830659460284449292884399564395177369875334722791482297318756919316965464699068400163828615177660856739497362509559211122728147181730319324776218096982621799717603148850187484178880901365979009927611481774884467816592977956102093761801607413112303295584273834476076658429108971527798652774693596315137237512709568208294891633885148342908163401358093618547127101087033272629265170119129090370902755743252408090566343986030747398133577895391459750702928256568163824888684206826146834738578712544115633161350554230543735202741297085530135719279623868348918742813578365600669391016565147566463013331579637908378985978388919015733997637548089544098472097656320594783780820712523229821190798444194178600712126184131105254080985633700739129113591030022337912776045548515847665399908666234029591741959697855825498157215564493024388399302924357394195440306173898873672860425368606177804888661761202446061775089362366208739723408912719559327285013110235709520784508035471283411358496510922038364924672481140894232918543034954347593564466017587068207242507905195317300617257454620798667079438396133317324230483060824649926281167478731283300946039490837972054835510862944603081382143992348330542778582460905249212288654027316145957518751564761290484120207777155953353275058652884659318104170636331883635301367113951839610747069940370810723386115474935185485027780412893027977008525605573213880843781416333786464081676328796686498214268871245820758886097157302403103875332546092808366493207389233526341950564130057386470093176689680962672121993056163990647742081409381065846172168407724984304552573360537676400859232111523180719302302965250221202670301263240835438746168462174305725241634806414164194507184310408060159320131403369036459738401772588369229043175927382127489037598064340098706789269614072046312658756674846007489592248817715002214359408743225442804644933587733766425171767755384482936563806026289973276788698201223617796647424159611764620632502115798219783812071529553251162821062716342300846051138931297529791393050363167896437524468423630917812746868697213400833200666827408684400436073891301920240530316803695083739937500685278562080550758454572425117386157102595610046561100054322574447037413230782492845357181436772621724391315415740702401108042393769422675337406160941312228880800758563372884725798398053470655664093162436729152889019821322157095976703710970321120831601060309641275691110136987789011187467954682202598937882123735324484863672165142951235362771976934473745150599302375529523778857731150890654311283433190261129127774968919703442012740458045925454482183005461161754590080729074292286832810421805903930310988266464551181461980678415860404318400910708251476567899916263385049570368745900098091073942332163515563840790663371051125534406627241904819549919426513891974029444783909268118121978669870978069684272536419724086192891442478893227642079405773823217013950335798690012909605905298141067570639315288414785155077237024157568892092699076029086396492237199463003244769272032226813665103926782601413413631830370856041552618803435405831843450542340797964977887232580515590998442680326882256491731795695634926479499819585147685569470303713176652771276767957528885493440321848011908135866187471249769532366273916832005027908975036677619172391847510656821602511820078391979100615371686709342252641318413558759760839436578742945965953479321305190105922186850018286835254518055316683278915874763399667474286648533094632388634562429284325579647756102984856967204325807156660935197535876875295412653495692374127319119177086942722859185658934085093278783826288463928900797625433886194562810928182726515513232732866133948164461702381372823314813156832864224075004764805295977474158364559148032413723310247726937744127614917504164991179862281805902200744812274229820496982237202135492450439841364702449604712229312381820187005094227484638937094421330494528090496830305504216629404871888286635382384556602542739194094444026323048461355957048944792044832928938550743982795401694064334581557909157476129486917929111167061512982409217645857189321253811558580352015092237508526114911286705983967250470711542161052410647060645921720428129838172813180260761573400776626398861316526078649726598717258861186291608139868203549980691658964602129286019581555945819163220238966514529157396110613592454910732376656781230643519452938304901827236191555937527853131363254193781390206156447415782450563966761598772023093527822589542900552573399186895497816205392482556012939843654051657016359876993519179514115143621765949104548146053371638866805296677744779489428845561394396683703528895578939512353625884983401057311929070209649328158719921070232800097104519413633653946827471380093382152208106308199392357797573449621761758868289416108171959166356892334948389785845630851971842337122408272128234160714470679879902381153404197908874070269836981232026302564845423644556489203489190679807869822653193016536142852069090341823706739651126785844576490893002949869372895223386077229428843291440751232959912682617814953756170718967303480486352164458223523244779410753935500650290693353900647964743448899003119804963595109234297753815673641098115533032255543468283597502725050491599822767295985714616501804801524598142283341677531128210980146284792556808399476049263937686997996618116441459757567825959562529075549483960564923329319471737129263278354729501947672573368542672297326942572476939533339636582857192981120925383125326455499565361082215608601993046225341298291593082314693900628636583045687828839557411659803293382404656466132785888268063280268014674504719108645102360071370869484844898475743764587217912916083855041228201525122114534848508654535928364357658349676822196509366781441911279386130816098112638154694154916285203529418329065334456081683105035756848414148197202460914556134803347231439286045155370569815799313625770782290916096082420116956687124049361134398662413432485372873095683270290417147170048992589579255442750857344420748032053864127881083244826880666183090877696499526987981140149217866809228753791072943713594734488668080234718530201997916503985703080695953006985554878789352565703511127481356024956617365357146485285568087055785373137338724224477704678103538590381954671031731044531748689331317038481361121475813785329505663262383062533121984069502921308049723912053469296129044729779905004458261029610529459922242882001619138983044079172869096572419575561884983152977750656443320897418841676478818689604529239257535851677769548111515019211754127736725199398460544152903803695596088308213343796591201153232668405118202100596277737824613353010990223055042938093578294946506800686053918119841322419106949691961718917419812051681940156340602685840327440633570717469072015345399789249913578718687359583332627444617839439185354597155130458731592845131291153656845684261588494262597293750721032031275708896237349793585402893254499587234161138630354571931075461734906321634789310629854502945212868499760020117687165378659020460809339603333547925422231894785676142399949807479186281765958717784804252425010007902416892446697821990416102258611411435345272513836588164257474356356248299536031195664571725650619673934564245595639539369831529131058882397214579909723949632258326021031763675408245953916301272974578228141602291300029242636735681823599568205279694514821870098582450227782060725360000162330472629714849834011463829887853188824345837343764951798152233649031961289721344493523804037289127460713402415776861154301749413030760745460078627700582689081557905279152047722842915785733246073946217312347292501738298822351751139154290925485341642157651240470115153339056932557464156354220535555711926780491326759948572020933163860328201109139738513362481548010313387281956389855316106370242747512270927037753473609214801447886542391411579540131330406460807065226835059313397110043954780479542636079581785094033537048443611142491948766869230218023863899247878879563439485833635311291041438895692674756862761408800542383542678637023349593622693350880196557406824580985176175056040323271536378163271464539808886120183443848913039173366362254164335559790091755091252381464748925247407776563231660678787852533338950639793926676958057151096186793759773691040925456194410418677034215368714993993987607321239335965808436369799898374496857701714860358947329787037606210652060800869432115975047113314235248243799893974331322590157344047670719816845015508882395905830974183363581409302455441906459509682410826564388852098695990251883657083617779337147151139151353933717235894345327704650267894909930058565651614126559754981639573744969036455391823689630829596283643682506969734092679147407027954879037362929035546549615562013465377167371235897513064096903435282579689506525651208973271119576676863956909534267587773501665587466942435945372092120875111888156679236082342226923847066381741278205188286644819055478468728022835845586793223964710278329333073569052362351246611234812179419689543398574069800485800338847417503897099831687818285419913227741294783907663534097836354918124262497739324514487154094210674047242232820174449146822619903118799424554943307735554899496121559215253666579317587756649576827724713338404205988433654243745035927949568021210937382359951308718803510656826948105936176443172311298106562384533431019286684753128182735184730642911141039088622493099746461938672949767555654396130244741072037017949975762688258021989120276048655247748164462958800822590762757642923015371317670937552707340669916823572357889334795801067001536167245140718954078731661993212068685770756171180449194601637001098953165321841648878917927197740520298142060326920313682470932133598000638762348686935902818586276260162388462985146102686179123466725107870858683211364725248932783163390530189298753100200544306238234881982053173125239407047405772838596375281506139973199014483557295361169775793989905111676091877269137027016426951341210149463614187503239562186375059719704248479078995273188239824257619401902553530331027899059389642295731776390371004581491320659776742971920735612694939398946762971809880892984957518792993738986397587927748980089492752647124265190428764445965620194199853849744599764623581006947070164630467751543029474126499329317532912418952203344847134869785608834062767925059133285880784739112855472893013397394180644944756393165915477376433171439453579239496340571607772514277611115183581765879209429993875215965272771494268560479824683314313094825103637245257506873037506044211086070190429699887464059872435992868568072739028434004179412747901633874128663367943673992049041810610141879136063154404847229042628475593456079370944693685244986142745641597836451258960985114219063814290502968145530817120082295066124599240321408031298120719960973770949504194191375148731071910512957916875715129325320847117643253003826594065843163945602595522937125817248260200220336889695302623771027897883172442595101169345529717353327574646892100020369370312563467838647497077740640684796785888893183342237863177426550782970437037547645249558137192162223658695485543400828670439052775170508101448650182598721936352337295375688791224682143351040016598797390717671217642523283985584473108892576772045440468415915315000485766085192073339862505464811447888194743650597791362259793207902003584370525062464591185259780832336845340778966917182651909270805782228477998386210584815281082412104558755398856308345602706578477221028049875537528150266676398970351871217888643187888031760161224999590358509143921825906139261847674373572983808102414916965792448320683346566773144230858162117569703783089920834569771644191347437462374954705155071137726416583004937896312295144082257526141871099502671945773417180508789378637859398347553324045946986022176467980597466864634006298389740397059350307851166889050400641046451658268156961731072349748908064775702746629415995391515260796247872658693301447941323233590469796567225143087729568041146431547861152503791186546145134384329360394941746326032915881863982042480250040028223091353907406331781081580062367156822022609664494997995827440833961888596973297767029183595207876848944704970134176729333222642205107298434121107973132177969224285828268288316259783480224405205833821593919761576071016496186210423371406372400545689513691283805364697682525159878184642322264831947340160038324682942501598286343443332552118304303150844401738172549559698347274399853646090708447664746272745113261502647841019823715018339634611898570908086436659551629934923015011388101196881375081536544519871631282328225736982067828665075454558044316092667894361094091898964768927284264305599183065153698510999540473586456319166682863764514730482324428806544470320705627000683981796459293222389613702562123570168867872023817149789662572731076771053977890905162690004419816107924258621952768499014174162222164704091884393877218989057614865926555564972387802839731250580839386453322510822210920536669970880276496835129069712596490898974806779730103815454633445660933879982338344197946545370485483405678910065519301872190308787096017692443737552915674067978405062616913238351527237378187772591281204544585573853922601738528792377250739031828767081081613078943291830151239194649570782172368424803070577067628432838296254021276957747856445892847489186522176627045231261698382787941216670736257932975670341495064847779941340955448375122397565364908069748699234252774269122779050957392597700365617135270061009613695948342436198853444396334124896492572718565336288549619445446269983639984394628044407353569720734797399254194119595046368795729267593414748525703116958163528634384464244356578139943134323580052375295439222682249752393108642254756105750796488586931094894965395906199882861227213185096451826288274644292827106441137062605061726244262466658746787969856289086515443955243604794470264678917775323567598529782762742951739549083620548856010925583478292892394125794643492864494864187845659614066647424467096384710415937623169976500066081740188784552892142259248177766518992967327772562769641199274688921136441498826950013558185999387883021843310916134976092608919317242335022402728866300631419762945783429901059639436751550440283749449196979379083255993616611937036450389249126948944466114567658488981794507680928443027543563852093899766607761446956225555625096304437656893831455919242633920986514695875079748787316040315354141397097781600282625193427530213919786360733464618903049894163002049695449916538172222359500663930218654814808672567636256909480297856037020346181903588993685357873149524123800261896649563152890255444007635123486882603326174527082108463315939525823722709295724786040898134513868723349972530090886539421206674901384951779474998940874217037500314957167494748320616170430431506724308815646517967372933308490188764807446844767644635972789065252547645589847379330197876215803235337008722557442688530265773830052312393626502559103166700883123336938389474525217598894385037899847646767254352994037821982380372331324084481369658496616413704203127168235283347430226566039474201943160130253002598539926003522482124942580427730905540456202033746833823784613615476716564752568108644267108115876973985261804718728534263383313398407376226193145510522728189463165325371504085145589042099545093164023195193313789830225684878413180853544639585451194268606101250493492400796433625269158723997059404706695712505755323328760426938493687532408686224469734253526881536106188116432350636892198085465087045134705592599890170698775384767070799259889457844500696894678640705590385656769423284952464912182482964231452455098329551326973159528785551000653857154586475107930300644961756823737806947967812872781880592829235496090417498966794266542009237492882138487434153584941289802146209857515977353495508673369167214830892544395002077383840767950962828751716621457426890432060795009716680057128572427592209354716480893823397857741198963753032909966886919938045675460956530755553846984542097279970662642397492170381401627514743295232891297793627331493576200174922330458198787198829463440314803070173237972286643826587289302824253448226285067868011963550750157338690198994722558765193212256721333542573691815623995713226795791822908059601954763378878996824404236500288921987258522589725066371538120272604733220509047322029268899092389207158551223429228163868019354371812326623680433587901672729116819547931421492283497486054845539761048741262694494978234047798697347234812425789940128969511348906687278273777525360444127649609853909419139689245374728040371975070453862868690086792691446295068948214068813126450948236514838392122606478979698720966760702379328129596235300459533459702744762280199113125599344381802953110029205651012234141914492791618436792465964237619065863895653077175364451772893147044827831160432049444588467672393114772514653812383179327354784513186981094330218928850354573180677781223491475097440022664763068093018296235884737760091884332293234129753633630361047495697856922289787989193583292539398036691068835790443780410936983527999300060546863023740042351228420081338591498448009684307720236009160869177770071163340978642069959204716410710367174156605444290821147074717477398059580355375919287556123449739077040245193781228408158844178978747223585715929204132220415946934616074287992292653924039939332637829381527689621970394845284384449027710177513653728455820954028479778160978703158046826636914291890039248863083996242991792622649699369968653811135195324290603146319327780971975858194987696801149830267203286839508679727829698187794597344295209941869542740613755773494158879062264931864659874744797057938862851539411059708960244609169248179163070041139331020544346634894493610405286736016492061409278749689546709791653289093319008256198761305822756470020930894812052134466397804347179221805621619050074101915635562622373215137334204971344391679001556197045438367058292439379433567123131513950006536729988118938540014931991792115543016228406451041115270927464651352590545960529658973788356074980013434861789306630421396097509292297559198173273819898737353301039714936277105268057820491707935310275534479581703614006276493523394811914477131504546037882428443145368380683680600072216894341940713803179159054248744549331374782238065405746552065240593461248236049258659015043588540189911392821001906806563345310350955478957050855971811467751666404909141434396443058683913794897813443283568329812751965471043244846527053107707548462356878593255280758524162673811818794015534703443510684537090966093592741522741274785281773106793755675042188264822060720657678589330904399209239206735630347423577808183293348534016240251980422367376427893055167378022821732357926213677087282627237532901361454104330565396711395831953594851901035976568793101479727281065500336532421118549872242210892833389900608596616446289451707158096493339036619439288173629302658567367607033964858245463217418256806453861660663138731915156622610696844185339204001779058044237349657214981915937853065223068037060216325845541410164902027814060919652645668324010896548252700883346196602484631390540547527597678473939386231288829250297894451998533414947935584811485636115918523215609306792117779078003931685426929876010675404472149865049393840096202139498091324327787826289765845752461138576885920509316896116992591487667128984336042701729206423352186163217956174020046342037447059276980006359133934837764175604509277379481480062773838768538768563555869663083447289169367547037332271468906015502856346915032832806272452230979490164590229136218244400715355707314863713535209318586171419782811063101431068645772583356216171276317033084138652444029533764382304638658969890818781355038372787097463622242241958217088375127702238986844693847578988734530564663524439350082052650161434319059333285580802537544247900930528635521521314647886679250289254364271977216195600119061661343493008085818431441453001696968405936903450427054695082872514678929129338738832777571672021173353048671697975014753899273290535168048952722782346646029353065447526712550299855358145300806567580946676230930268546744293629198025334494609390953912070939400112615900544419995380649110817240724842464105723279735731051828990352615289729268547859925861126308339085895016133959572365892561533312383044513512788990607213637352072144001558244886378600974347291258040038899869337680412627442270257529189572587532927075070265307198687570312137365783245545404097727696176529743132310201254302992960522814933797102196259017323958272133495797141653038111855256479781051868235729186117678442249893949211280652379362686346965646478692658882078665323011752020067205116871836522012482660969426568220938537919055345159048973064507246685724514979764526158171853176341552017127388599997298183808989343203694935165432297370554666794784625586412789152600035153193827351450867340773824391593489743067415682362248057815071942040637381210528867060045092224761764940041863756617051422726631547977057145626499019555930787054336834224511379161052128394885941629540734978697893244453620274720262803721471012724786608912629227591095482157185190270522053015541657520438759308878686796278740388977003414484467172497844774581305898752043116033226945667293721485538248765087490935383751391396692576472206367512714486582686825507283441409754123737836862581473140730400714015021553487010176182139146383139773036363213508735141700114061401782304327986447357510804178245942019393606570704418652291503127990797460542672434260517418694175583727009848682294684966114742413617383524795396692867353336641929949426230240657370758301782197820015740497134764602270549204703232349829973567600387353569887828032141351951569038869181061694421789328719608419837493835931880635432417527485827629838633750119398873807155718611705750152712539046043257097631400339474766672228613605607603623740419708542791402718074220273532822537976129218437814080908222992113648876890756382352303139515844168563895354538805356638546154132094552462092563128053602419455348714632854965234922732850178568973277094695568425689362156766950864901547870304507256386059407695019437023642745800587176983901230731802266237364369005345358940801420113752708901863825181087033292584045336808252177026642826894260792628052200540565585044154951504531479878905451607500755218839897512144850198685865797609793049042594148738306162746708368934173784940701413132290106078516138481229667469567871616057194345308821340261290685571214328667353374136896472873971866099177183886245560454676786816474920072687400064134502858761940756405514248923634050179542664308682039297579699502872933723550384727506168953314234130804802359632594172985248431972618917605336424882298085203872335885257757413957958151057923447856074047181772663935884279485504622224985117985708274154709346386544778150369641082439747984184751466120645971713851689206446452679417046139823745074087428260566627185433027166541638714097987437410428508567654363373664082809220427523266626740231147454261927574093900730982036285437642419935485307765205477411843424081631425726394803648118719283940914032010441055442496741202911663656441212960403102958872793654652904773189604661806922153143968354073001901060920328785157168619173283076419046428870025592582269273645504136718296908751258308997119857247688727955610189946572151016109621715509488163987084258182327785139633128850924796105128703981720473829973547970149175571310001007678556512179772518303952780340767579395091727144873962527157368588607448924882549904967031083247177602249202786422080743180179053901673792531647494854882992210473721923997470042018648722509430122858688334758850569088185911916455926650012443394266336621005084093672111388210254666893978979844758367449832130657148879106565856285540527300774005155104203973163317366387674798970110488933296124459098064623687507633839336979829761245986677173869766892763679739598142182802941248319646965806121681254257152289487132042218996876620958429090779499578174159946172395031673945272077207413869139940231309531765852525127348190200743741460521052553649094869258324115534041368353882455053752141069907611746859770817305538220533096958924810926991168244829404280442800151493589092121508591574349152256254715160128044782217344120776762043211556569607532658116951797920132652545513013521571027553416248417934644877108049198235599188403751789800748028000258851662750192506257151687824950970872413703229161732137928403355108670650948985708427651976255108141249908004195638793081588693437370390056094303362719461433466962831587680753742953817546169005653652361956240469288818736250388120532821323145002578554966551539119986012083612076147091623312081554603021505822982322829259129026797606418276652284593394873202625812318321662432850898932183599279927446441627142187761276847724148239677525192972047276092738539716617129604347794676788908928913982060637591500917776055912511199074772008986008794396963175057012768479055533860013440488733338297100259886089248906796796332822524268085143275473640954552225867821752355952654737819551775821907061939146581690324270689671354785777752846085649836803742881027536609680539316971555751610816065543043760957897741088165619624300726398792734529768938494166187687294839382866051611615108026788502400759060886559138553344679431079801962092910397987425619469865292954515205367148622129124751713170321646938729100282418200113450961201717938544816919897893725649667175660332876929102683410836433627904771858753294637919271024801583313090360870114326092653888299916730831788787919950578385161895450283271670715654246024894455306764031997621131448173827192511032787474228225621925767397694387360194022310294043604271315430520299755218271795610161324740591916812631380132777967923394822257149365328574379692761263704325563014378056395517287849361307538645481917392473808279665504524783129903328490495345024835338405868888923989751653472309821689832868192042824400662468791112726000013646121816281940365058087712440982612791348367519965624801654399862146645803583250731353679872722195998050989102417038100830672316095100965437941157250180895013475093347517985315907696112375321726563062764743180834076396398469302380546637596225054505204068387030224426114629937015137351998399055524332711792330055294072685352033790651513335991192206413073114466500006740465956665522115508230526458357904948476647418489771052389996249999180814905143395869085723466912004684701613545075383050404451076231766472522562559082781439644459939166360289475865327942487399912788623154436720225304823425969750001806378187947606873728722547473634113690947953535229680374646376872221978246608938872109551216052151899459747343687492486998477416039100764229127567131343552449026502621941431820238597897622646697519330274857172357156241592147408154641199564565497667474137397220813773996849288539895598575135337263829232522711439916793624031965019899362451365571543698582859910864659596682656169807475825251190281257267196895892906532195848707095164693947953521724477075695339819766951760728380244897177585706683387932828341755976846920032866426613776098809595522858315239127706803501101488577624448338199703397138091123545060679081739385582810080769401921236458145540038006390079679347820494997213758340689884158874111198772327352119668023482539413698379357274918143253706281307990189098865696878834953112426049966629408805260973258014572651449781142340302335736810405400332771457469719677142913686610026529127908439620243709203664411365052536102604946202062173171056869115141918154819473508646208560512104527087143520217485975865185770527252743817472178409470040392574022762755086924363518726829980125942776054474699850699827349410370214639784696027012231201283146377129806004865738983433372666183229182185437954725307146536386466280491658817106900886885281277127311074326613876889775183705468812595134274722731902524108680088071082491077682054494961360161577189103454674584153723915262655469747440765727397168000656935072752234690209263131922956260274972568869855069692744602045837164155850059794064685795878091874354746278025667017114639239492500394837532745165328464643860809438413503378694018989950857316487714886026333461070704128865524303258438422241970259208419298963512410541221779477538699645983092701762991231687602769109726425255914484910372764282549869290732686936305482598703280305569985195451606227806402667150842420736046832490959292145280668225375466838999201000078823022852743571352214101500117009909329260531807775683024574259124141274185670499420778746952285490194983367270294992977243128675181407928190466344729242220121712331556016837709509602959429219433916005889603895461707247264556293701733909882743743297391720268218119146391225269421328029308226812273206867086569058663951501526050765147421390581738423965516261468869790636281720392679212536488588201299316374390495003943652160604790280522934954166394322501422531555435049818144626128062648732805493222092625961110044216261722458194908365695954439474057976809966764526010264321247990229021075075844766324778552508679954830110142145812408055115383787350229859501667358524837382754182659050681180208581712722856019243505593876648962246897414153057536526624835547950105274030554316149613460192245475683971821999894499457657734168661699936306629498244117605477435083470844744419432130312584999598517458873034242354031007014364342566890310035686814364600274469259638525250941863992161604946563781475993957810313380044864637646917048405996135772354927613005305685491240518107637233201022946244208173488889811308264538842047678769070109525471776483685284199221812175193484261205043321485053793054834449179104523465157256371736669424901090063780725573051062857539377581470224930809449620522440874187858434267596567752961940646065295614313487673251480185068286190095278200757040898615003329174584704838190208894539229524520331246833332624355075999697330961407341734894181368771701314228486429370717777078544598934576820589234273834643774606242604197835781186170234388468469300179151303348957811433447981516193811886863645529275674183375294001404194077995065533503405407722899883373632324853857678233677660731643285776584322877288839314416010541551964197140561814940571172195637113795082983124470101386394380140293192330482403000299479319219424117293944081305855636712465663554552438627588712385506928641141496024365393853688558625253502053195398128874031901930470820641168026786665243517687759193538469625235351595994449377328256947764709383461680905306083619430323466570413348749340542720247982368540262340714132476069972663092309024994298266894957182609587898542820286454129234484303239588235289240901277008153842621757931871351183565211728309949229151058408986296026725056510714696953069508185847012617998477298374053596120800476044006407929035662431200334068589893463123301522174938646834763652159830548803657185405633358226706752597780147433513961202336166248616367030630342226512633127546386193061934451256509051217467669307545590708247948784174152455655222719316559205947248750795978350838949374141250281075255783060023804626917089647746057256642764253891934538535270033282601554556414584595158133737379212103706395027281992636918708475509414889653434855434038745968048333411937311906033201572344414609927750829135284493939478880132672303552077232811253453049652669596816757404941889672628931294916998162922702924230697987314367161493206208441445676327544476416026512199909172326539202893236106148993062139067251377112172187528149558983353243675786100693158388860873454693087339192147932336197829420918736316007400480367793403279644211733527407254061094548586382526251462332416968148582763274529095593188582323890156957922908900154082246554530778090345794669720781995492841062472386482989751195853575632491540057598664816306279848824185252436141654335296142495894991200985357291835390707405149800854084525961805326227250259081679813597325316657472096479194045706277916463222881695076913337671386417679786169854592583332881874613758418193504252849618131053210155560189966191859665798313118481320433883585229292490482576636606958399538932844332627328027270451607716863320013770997807773225470696413152642823335280086924413472820410860624151467639123385010831813166712067194086089309237044090918267095490540240096375013206060999819207933948366767585856257454622348541574595171813961226951702133410304723103907643660384306784177203680955058650844927669477400908716358560295631713667308510750547295069515153757464805719676044916644223271634520093402637180798249213458723016654945281658975256586329603506336813702563660549517498260922905966984985162544646544238663778913953546008153826869020816742840790926074368450298870288048349041187734366148845147401763319053402689955636573152933013495078512220069970191960506700378390067592289828618150802875077712485688982813368745930423353896086066593723980569054692528295315813989357435631193264254920409822742018623694409741941790892962791583621867917993648110093451744936469736226854156298948514564780687754949113635854722941253349541106609141936933641056842218316805229358944903877751023573549080965206036368937190489442967756116838965801884744892168108558226983148514183014060360601874024330920586051641069520417313332312034574063752690671480371415802539005054286465451828686336935169582286695530019920156578146681482644678876968119315171963655248317523789676768496059089515165773438398334512649284011771421221758700098511193941905701745998134276871875403360048436221633006383768571664778913064955954057213529647796293783481529945951165473898104303027422965441003785753300537805479293414157262582805698575220534737891691486373159574556242516702591848519171114883876918987904352941369748463204015841795833404713037128236516089937001996822842847488732945052760739567372475423909268679708416648161942140541493651843720869065734333327443732371307938760473104624090706801914937433588492141390971263259894344796219521887132956756028291734198152931970608383945536120233511162875101539193863004322210951445365057989386100635639631146907392814726737185356045714258479081553473741939741654649433188766559932839300560278657630341851053046503567113002922190982864953922209044358189768310590715205109828830725330498516446518980838327779668137130699557304192737935218179117580755616817436921507058556365085508985062139379714869480204817925979955104388465230253628107107638177901486940341567739332406911409357078980460966160857851767186224938170416632303215703390489337124093849863107566503732545398576774097998760939423388212016191925465323502110832528493349682019461060995095889257209209087890927449967216669589573441508684305355231583943323725647312722577325345766990284654436026047706929472232679180656303245393977513860197515379428598777331872574503903269667718821988575884582601150679972874831137436289691284034331163520078540927403915530919110977010723451415728486989281069552067182277262498628279542265344716530661412668243042917278900781643090097522344237930180762740681630492712243345650859438736563572898175161280824027959745642408748598414644842173937749626390353225641133207739932945269099567518184240587371536248632070566805811910396110308032273856380465418844057756774922357470694890912299094470378442888731245306249413612787970905013963968028990723884851647536850603820060740880119691075465064757835437049368354832575119249190542691835914896714380278255592174559503658775559152425268170100291999849243939404910217171226612892056690998481249677583825710951890787812717611688634538685714420089170166195198076836368554083724778157608258774269833637709089233906147665943998300557652044670352240469993746989547196633515611091677138219693604743984799841232638219264712261226951069272407491458333642998059753730379736286246972110984702577273682839340410679873024476992713044171288196156203799312569975923962624864459654876684607108828043314422826741852910197014094843607350595444651430491420479028995564121537940217188630837220324464355785694505421548475722955652700484534661509120118428419465691530691944672652997199670245141158838213496381627752356610110117608708377829073261447230587502678638021491533938211900154015082400189453958774923771251112725535085319837404340376161005209683978380200410303614954334156421874120110901359157439174421836604485403860222334482055090679228416157544734726924481046740891252820715567401789682198191531068199576469343677233267707426016496399966204927382731256070244649658334059989340248650039925591137336574025304824087140844998243405013928815163161388419210220632501324926139780746787683446462536387317818026974083608387907338785493141437975424222360731087525953313802807868897746885058777109142758939070452306385121306591902522416830788027807249678987701796801910199479274774265257917086388342124507964297023213278710240206452598121973047451293668434207325347212716199549899400230821688819651241606503470180973489488639429771946304541036239253531216039293595462725003512855052870671596647936531421165657934049303931916927357120956151416689771493487377066481823652918083227383747367345197749089513280907783008761233004751367396521846129456170437571731803449008809132841064172338630189953479715150465125926930194122453462119461214183425322167154446402417975565631477730295452540787325286118012750233164879562393305461978908317629059366355247710670622433001049521773621466159367240015408856597484015857159368208168399212893613242542225125451634220137613708412855991996043916823309709897395630547755619737054514977992646159259349022827667454830744980662170969137376005495523088712249777258069322833216684036473361015473877530227191552277745217032969783693656171619189338643639671951367294873659445052777733495467851677293150383517991342283738011632509300110252744084087810124137464357593364878613278859519572642034219957697409584973398533300318747715290702503221978510561338036941193393076774162678921063590078751385184770719404001433495242849404664714357684753561836483379491353287765638452072895270810457107426163564000191670697055159234535677387662159056975629881728533567389387352185768812769940011490609853828320721752815215102427044366881074593206607595478481736086461715953240894691380891738908932743294434648775940695559190574394715706626189883506694607826292758398198096690637719336520235866415163083870721042422345465057086618652529467392969581521495425309351343187227365788952447609637564120909051535271476658557550459696005900826586968678393459742833099410363653519631830240447147475345624332399068180751985746901247662441180152319203524063367339105391758343906576552404727269568912176142641524654934544943038303558350258954158128693547345209749619213309945166672778397000842250701132517757531901226060628616508788328973091135249236402825841224192919003679895180945652649688180222994773345133498253257879118611646144275435971115771280898621742664286433898258565723981528127611460009748847289067787013576122001740994721654001139190900257241610672308266873891806896823494703003666162522297973314615630595234410791587448572418049958072442277540545235879033862575016542831788866234827110308861787557984675257341449996587928218564350366867902656583104536289127529678593354591548976701430597296446203094568370579593030885211687712252344665855705717613159757188478246900756666393263010621141193380982360231269985922053524087029809689328709579930220567970466970311095153620623317751795243688097878808233132904868390226767136206717866887461417921406716940360321155392332833639696287041484701656790979143462615640401318016751108163218839314182599340697304127613130297558393850914198694748482079890169148457084927723158039057776870768978032490899542060427954322463971734122183424491631710598798316410381403145824604248117471910807526458270513300498622066720531920404358200336645424813496583908427073029733845363565287783095543850625940476904024110863364063547913260148625602257532767587948115882408914498118752136296370624049429796241763965135887021472661984589807474751709673180402638267931623211442398138209438167433943323118963501140712781334688005122199435306152820554723739036182464091250462768812135681076587293749589928797090083592072704389135447861179406614573493100044531107892374916401561298711289411474355538054227521268206442448581060457153679670887550462626570522973646786206837085498922305039272740914940976941631800488460694125591114678374787937190066159227152798753659805984865006289525841388914021420046565461371041114940481555734519988089514020674444066287477609631162169683977066324694737152695452282455534660640484467908326582323304714257164704795990919150685346116267533216810498596251378178728405807084840832521543107193351137593464454040760894949407985579792239807308481979358624414882278304348823839945700187610438062099288379441717720109210688610310077760354561034536177875819707386567397167463717360542995745726823231890251306789982664095406473100536845873159099402019375216587894758832064383008767880018029192704917000796242685658451137290758278410366197479674647197403556049301145336138813841163633767600486763715867281723499087400577328056784336532131907336861513170526517345480263891325229132083880424424247976621825228699353446180192260253862066322667141768452195588162254438745796108150435321251565515970542507210679780554016474278793511379356590844186633585138281975471863574536330000394941456645603638609225100683721588299016118528882190881435153985846548317433162046626471182217147998301644938454339683448428843452955703729670849552523398095547334219615795311730470123809108571080099184737125694475148197932490593495520058411890540643467241909792540487993804494063782933016414168366503656359705735954579400541607914005834359522940175540609532673036873870844026026853275338562661634140854012876333197107095711778005725331172233024095291039509842169853247212845115553470932297778538890096129694755189534257870502634336088801360247489809440992673728943880244864728570683435575000162167893839467943010377663207087554864983694806809038730317195177535751775693908152954841526163485869541304707095111249549324209397667290231438100294313109780288224043144122191247583768346626696710233998725457958698692885597520433064452606330986789566014328090726480265830656552386092948384766215894488539685698971501009072044069942715017486845421218952047080745755679021547629126419490257704494727834309514319683206186379750739042953500579519249673235980339816145777800610594624382341349581591242629400280876239178961814506201685518098262534804008694937683949496873168362559347801904674516166003730571967646284017897265114144225782255753158473504709575144305415876651950127564413718707999821808897774709764179662599616076629806192023223470403126605248173416864223638120528575932975924834934465512472573269587424341874739441424437935171014181429326843440601899530145154663161777899786290901527241667099444347504798431731620318569913321879665879835113943522728275282208365605716936893380331854104933353577554759830723863647035489441683821262694069117209832737363606663972904501031248202352954792588159073893580833984082793972008102042050293033901581825228227831773418391700339097275833224104079822911696099668614011630984732456113410035916108102927532957588636053914366790661606189641939183492064369033128508942549578794122922341255555067988248344333359176086988212140658260441357319882721679659305235871621369917916675968561398163942423655307894215975033246396806111135042887198858625413897720300314539655742214517252565394812692634506161356076278214952774485883994267237886533855330418278856118163566465286308935256029413694510170433497664385891011291628311273657779400762221460747370380437767694511996532770677269111148449626509349420721741174769246280715417181888498567498345506404534163183620575771577751199662546641153893237176840716826659731727680423643525157838198110866376343483856937478901776697152191944748231341693270328171328194431390483670692343287235440920178372547195208475042884645568761302926815595708053964601077672931205925071755319793619963656666469518245894522919378268267116911415130648503626464793757829670962443680109298494760580985976837212629764084053450162608959200251443528145314340746322914535924071637330933646260672701339903321576352688681575437240185454078760256783621680788302433329273320379726017951720610650653463773787326660609690755110606046601430826706572670043417415872264534096750162892065457485682471592637044714417463596260772675579287684312238998941892784595126362452147426404957840328263627556551672055089094970440799215241212076985099262896486275817880050321185700061955762225126051018650123907319683519107616109206688224606896870017643521014980193553892265255532914138481538854310572129891895315136321958138643572555721533944766108269351973449437615744280933331072993516194434503988746161974931349986749022802705771852530636194080447411414906999528469877741196123907979796740667650423722044645203646243183179433280786644601345767271020052007406115784030829116332696150377416130836007813985760390320437387946503166034726831213413934318889008870643884222197594747645575640769400801993448994075699837959159585652436476278092023246487179922251792883978452381683384532465753628817093182014675446468516245974669571477060084849049500182300803053500540217764856690418297701514921240626094204818062367933736937916120544551656679154694108042508260576816694240989147535683590862288656921891712517421530879868471580108353682342567620961844141517523468897306934372679513714747047397303888212444889831783948984578093484261649692477812542979685895747557755122574728442510748739240157214167768144003426052156381754240082540455404641749230943430989101036173842303283392740960181228706704629468110480715852985538096241780735586186186830480612232302080088706494579163756501636957824338593111948010977712244016209156796859291373864280444075843631569213127263867040571447670042845030267460729048333840322882585883580911262579730031429109351389345352898765366045880593313257857632826009879661569467085161293517650161158994238414180961747686319093737769055376143375695162931938328844314200062384840538021869327832935409377200204289621399736984356708887320230845085313171695977271882259243092910623046322088730401414646288630426701381781411076847034011962958053873931104129272271551729396358132285096468895148053637064667837963070176428764363377866748164615073953135715215198292060075241913210410725967728415715037944946185465284693475582378543519440698353766957400669233631615704680329507245938642185923065177915923900149227695067515592746530102100074618879845360680446774685533292748925561682043937161983944874747568840640501622591835289845090643650629015110138916467314038166879135105144030894715272507812299609741565053652969325808968376541306009531811826830846209508080135721200458448817832755380913463953522585894664865676715084809772528400096852099614931113673619900437411071349245893799954529124394619267589877479609067244054355843363288356828140195299111250182157376136296203343511314137574348233970580533410034095960686091561122110594917003664117555803355475867838969239886135977652109203826659859995251330423307744914455306832546259927686195454500787968244064006611117730008357133245140503194746442990363461536870741146690800574344991767895969107136763464743666906541237328948713124346423886772533995436320044578309129077252860851498018551417722045307876523215060533562861038976607499001754178334600029761111936594197648532721685454510428919647965204641242681128462475271534485832121690684183931607082962113882173476638432909251090865572166702575057139178319877517375238285894667817537154275136051008872125386742795201596794757790154340438997920054552720490820459644893500426531536794213652038160015459281530543093684292654085800609582067613238181338910418038056486760495653182163452594495038614690425988174899835311060221552032449003428526798267989100225406127313452248226496770698086555874889195472699886733514562904329132382406081653583864094109047333951811408841765311463012495856506462293530734409159987434491901144922967391619753823129457379279200754812037596488577876324767419421797308726037590894820880918943868877502009536222272802727978233151135412999534449495130770456820886116705286317569183886345647081163525458328304329428084071403179772606803410149570468711327195476108080864031109318632236592178011396882125196013770069000328527015616856054452378406060561143428449535347699890479613678289887245745863214968413168302509638765314263474221245041519979682182354520554744963887772891996776671846171697900587048897144880037320143709701240389884181379146315621940317082161318092733478425048795518677680201504222304599446360981341164441079596972817095450602674123177655394621359300669849037481900257684408114888833013044546237662813166554594529769497584056498751192916742008038901710047307102406230270881537398593642582922376517591873536508861016730193880664552361926926587586542758475671779319108417692481083625376228884326429747815631894884856135749674421000085938364173454177693886236239293984985523357470936760524143462189843093675939773073272294034838463736358615763625001130319933603595058387480642093248878150590791202903135866938590608162977857607876980434091448621113316627698637621933447562069527855320445324544629260741521973704498979999294803326169014340261066963500645065651428452428867035991343516314687250172875229231792676564021287283028935318071927378328067954737134886884684700524945150007561777432989072214295162459018231542072174972623728598808356296058684324345700720057459349348105402160635185175342478799727465621024682899521701856686583990829175528030294799876501731717773327252901844232897066533675500453926008395495654331168461890165746058318626829115143841120116638734544653555533973449916851100670295304779301393980308531578344524405483698125092204181681159622111145498801918730184926034469400778618659238900460144431130396904844608481091670263724459599497349100588317881103425138974538870382023604313421772146574789709011718959886782441658242414157482554310880502694832271589827090702118051413290339041403233485786710592176248102187923333607893903429745492934889669763896946682011431834042180386803153059201253574715442577185865841905292039337330251063041967588862719234688936519417692170939051099758754191880572057678958940006142635510671906476185123462701385401536354294040415424516416080185678415736236789319424785829364445228668175383960545751901788282276624409408873314876509381689794081472462001484198359067379637880207947788394187091841460402503331455749216783285962651378886836242615914245439450898058555744396495079386095901710908537935800390014762094054413450203950584247502610510172235578287879236970446395045450900917144189702282448860691718562817473783350370479413188120356167595114841608597899915267634128541241779170133207519476442982944241386920272167858523780062007406798459312394837803840904445670977680699103678411641802120481157036903093975372514872359645264460096523094050943436604680688594421089887931088673513326250677051752779949521573068583591544836226721648826226950362871854594150193809184498491893843546527857577285040483011576038077580355303184536684139403173591203465425149775932294883565871350053251449970393484031522088161534055297986098647147417627066302755134941892002286222166531539522301803223076459371396105051846431519972959528139273216469899261018729600400568496253794911837385275000562363144305350228367174734904269928752678643195127418746521549843063032044305882350720642022708523462613646646634467364904272608319556745802757336088407382821944014189536655040288946340634779372196367984137518006360791036440472608878886377876762765547676067470805815579447384219710278191665318186412422564789207856240795892178940893448487125018659023869476506670752121567602413066900617020802726310199865244352825376856527228386494661893691514659919454871133692007288601932427573261286802489775830762820535805463743481527258159105361533005661311192715686819015133294167528169380973199036842121177468497536415361645181199231293979638307159100679745851990601462142358408977530069520507952133700987133869893021559837577806489511047176253405551599423375403298410095903960100843286253104307040863125871393278756548269027100674873392114551708242156037430216147559621583957740423746005156109914975172580028307733323503420148838501589437975854998976882350140638140815246416084990883029423908598928745654521161375880325235757410121671494281645625920668998094835535134077283159877954722863625777219147287440016043319091044331129332127963074827612959267770876359030505550573437642609066590875668916657526143001933156141216181957602075815647096990332597606958132931670097690773165401203414967130096277536974276719422657024990281683028804823366054696929895917293495228972305328158345561199322404630309111767077149171173076797185271374808821122777258315739102268894959014654059249593978540455231878338022962012211460635116065530811319913766764818146191002049313702047501290133915531101596014978633487756992974578314177210393008052687823746061815849694145111774306949786875189712593441736480046554283685471485322077207305543725609858477991615672220641614723753953702671561876986175832936437484667343801964208920375580544862931444159765479444888551844279164347526284214165259309729495428440574775464049203380286891021640782252629161637182495338754350528999630248066916589164200598152724490282008536795078733004843433341990603785252115206854565803583887768125147796439500821736943733435944945655672346993435333958161383765929442082063834971923602492224345194503963266159219172998754552766799841312789320682043037973946951030302846650905894836860725439804873754905858731865796127293127155085089918636204631115007905624430771325451256085383091708167395453616351391131787408129743190373895797000915892411007362594147590218673869842132573960576612034775307526548582097239993966674644438031401907109379961981250804653598318673044909158299000098852280817557718449182303627562364579432120756360862714056082493707432954906880163720365057095934697182915595142078682791407461590873252502393897121913717444359079314239958229853293043392779171492352841068447797683961111211980359658921092060561598379184999546556600893448921527724226795757696300246822585412181968282186162419691337812923685911107556615152572818697592195962835076784045791670686945150535471416607666071868547426856069146434311226277491361740709518232479394816572642828900973427784964555110435244425912021302235500888015511428800550817127578986370291186332157661856598311991519434150481350633202601275602223731877033299952608432627556303473906102364652266015119954556983612203741852462345325298750972910555994704267507368703407791674278315931400199740148944853855100198167593458315696040923709742583721340055857817367056191140788336510981295050971922850437282475753547568646912326269439852112757445638415537919704188863292806487907187896947109635207752599032379371650733135308861949373711436656718291954873044113041061367989074415100296266681571807647892378863999949830980064191989386819085908443588634687410164106106987276730163292665967917432457187254471512830169104842067637180070385727483145512534386400772159719737531226240807498050659369159606337908844569905919877276906067954587043837692401340511843195962092006278085356326682992753820131366482858971310114205859632038986115033152737591855950334483173923894093310139033518245284166139967312758274714634897258602536203899439162781699988578287417137691930192560500285152357254614858723501411997486075856969955228827995412104620992299137844695939690265923239878233530654035638206498162857860837651646590626797626402094592371435043646911053539837535546375614046719401199333110463287252524078004023749190558442284243194161787309098365975694521276950547204873795148585734884291427111796759135262621508409943336175797831692370696815373711293220197197482004117277143118076063408759203855277425064627484190334620393727854058664369077789854447581660439598971328129366814349552407546549803116531361074682167760411746276799598526002842732766411199883788555467898542256890377491992001341339518444360723880092964446963703561526679363189413596017243137168033798849221126834397624124513185002330608757252607834972023149041370680317521540416224143709049160216050593964735422611673562343276363754585701435921416955023006384972168749348844424868115536047891417998307079183859702404193878033293107635067588161812622768066577819129515612833003227765621706878454811258539702801396941481324515113630913688331055870115564025080925309128066924037515847383176919657443953071047979829101370453630631202122739293183751799964069366609890441222759045355693805205377761022439983086360256153378938285522566643255679979260941897866461085066934059282868197455236717705799476016212022482759676443532087442944647155778372268846843260583247087930188846041300648447757069106795532421742083939277247580198559076204056539544600030416434207813990639034555858575123701598550140792531122321199682506586875115546460091740027658286204759264464443399051491896711454388352999066081401706599360171100475123157659545384047859380330500368349555956722613793301466662485026126272323807227512040406649953513034124100701097367827938150532889710169548934430008191872717220231754172277835837297088281202611884285744866075363918960111639371271822259574100127050082863229755866427907257702606910910865707972911421004361702414372013644311983667262191116077398371740377713973952287823084958356204498055666754800047670547808958927425727209727878703359662718931314097598131701384001130903732578634725130175644153372383992616578018874303064307893597288934488800951614043073101851945763522588673171034103294796352522265080143692671239667981614909254934457686748830873120188512657012495383534989697463147793002713463581891421253867316489053919239244807184987245404894420598667608603941560338562784964228184582956471734615226121641722893837320695958084021231653062860326242548581761424221383210725206605020673238068737200706241594501694468069699924831093177408725764532784936154930942381966360573623505413965201534884184862702100609165025325217310214141284840501884867669318702363964498661773701284918591711095454295715146016620072044791086973444375749368741639917835826450408873139529613157173210103267806579742934254629337836605532478560255376174141834754444006088578840748927809971210510417640732691352035069518145225274586032624292034549191059658876809191782943196135342857371114880149309509275509868611378877938672087793367020589497798770914382727579548138725816635705286429890889684068049118920530050315091328545455609896407140414095274719496586363868970449825653876746913298769985353947788516809353769508307556903695334733952108812160303759422543958025388041669284592837823700094946107156076988705161350409236551889499490995229066053859852521984536022729286283704637928912187622135779745527667143089801191764268494067004254215682683373500652808193799968203916084955556705039701328254149954012004224577437067002060436483681987435133264106490506763867474185657109774567837983183804037892035302425677327091815815900354879228710257869121502751768795356402714885721413213730883712726937175596196530263107353682459251676743953143777193046496774673151985378192452548732439049042717557910589108174326197603703755455787627085876430988502384341043392871241865058549887810550157617466069718146031768196438695310861219288486573878154932472922095350439617243517079228392419553358810124397509573821578242258717113982210307017878795027094679465607015622217961467618342581929835379369790944483768144925238462315046586741918560238417471761514196243789961598750962211984780099870966245624118463494741432442801696261213684161838663418617076066986891194601598325049194860307175053734136176730776760071919943878088290691893216863541098736095535452313650728007691206432398024595243203471635604521888305390019265868966079210683047814668340208770289089007947770900515436456703482872048402821591455934827690449146437093483046017678330015942424694703967996119678140656514430190892375960419581101629845826692741001575756572439375448495709726188512751236890242575664760748007520554669107604469524869659362648332416902304137687900675014300477088565409436314038637016574315702224718389329994227155480648282497408338986105857529215274477746605002017594275689214666159082679547353266448960317427438989406937015646228891302995649678316315539298656918636485763525920872987772056286249011277278652314965149944628039709621615645262119564736982059062515725750095097551774296163823317725425003670204946707857959252251375031753060058547670916012634711484671551541323516253015105724491098085838171245754467060417233240306394280462322567023895655405783611495464976129851825664382309100100643596236936543578020698586959643556683780497995090268848606972864945688359712072960304128232305286570257909914311531683133959746759752217322529722611151622939217277926201054525926697670244925706810593621136069470546138067941366649642084307143559971145682139631565788721605677066551153883185813292001460037363692535200926936631827844981932346716522788177663351812849988291815663593902411563721290253873351468110261177843370249094203840760097296455713917138116310975994395378416587231109486819333669967358587113186366624349487560492671424669079657308826930849448920621764578325234780260448159817935792573521648902532878117295348593029264634959242068091797503615266090831418111309149954224120799439908454055721315979063066627930054739594955682524368682882545104530987473898157765912198023082110345530175817033120814337589347241140693667347799115501695632789376785133679808682137562785582642122324904234497523583857530665561271918174749001247839138613210918417805921047846380989768560628377042756686027539151640823784453639602383676394669268131691982327261465485122392031336201673322431572444963022334809850588200623032660271806824713446146031527446350578099154171361891735411732801183319240355206766877962700242788713785020222204679565505551634734856922412775056506879899653912809625662764293334683168261610743015795349924572541530245189000349625012951112443745086341288361204839244483765726125314157072448354526608993809950394371881300580667881605167291812605596307548170456378061472443917391895450804097051734356930539129079194455209707531445635966439550731511683233175642946485779717784663906323146715645459349518356785601673181705686539512303806293962021078894545646384039495239201554723214775842806396115301523225101633414168826533341932568106137610358564513912688392514003318126307335728074206168551954945277827103002231977352954469836371403730485082290129372156026680940538557537286037902789501822765149917426048542696161351461912732808815451193347722964297248533955812559858753645042361604863968609072884513557710505317146438091443007033362875757431877526838499069434541886459713013739990337807938402666125747202642527231475555640918207089654591955687052485134027085742399760482223798449463300827261543411423027692696393222488127773374820216523512657183685484713631689357904828751385802870423757132682196762105274984015605432482375860938422604931278151743946435018263173548814030583964240109106373895590212032268294404579267955033175821646038928046625915643182467495789904380372915053381935803017992122246814019208171850483461672029381529686444892903807645260943787303470131705893865314376000529095182670281158127562069144037767105945803226464001864499025240495656886078782599195069786173098515489734716383187273106920863879436958939675780833260697908216179593994011238133048477784248481010743165096036904098030387531498995140198064372086551443614198407683225126883669057405579042358814151156048641066798872070203689815698130221306606232932875223688998261232393933496064000819934243571116394277394969053605478335898082237537535590026829778572473593788300146834822923519642797931196612529295690830123126271540539877830307502326645609759153406093312420648342374411530099162778750406103884704969560123086725283098522181213339099158767132582468175724949655070371198272606842298432079029053899075397091790242763861892305499159195694263428807703837002971910526588543207324945363212601494940943378410053885409690503621068894797959483318417164437003370431026568662402006706081968494377406603713131632964997023665627541733773527316033415793086459920304215173651917133201457775634854959057388794901762763149349107219571262259969153430355422643415781133110846804668536033762957099138340055673293179345093638171685870504754393962182141488815773897796111732139322603560446968179206680786951782103598426224196277856799182923271218551401821866153045135395818591145595256562732669513861302514812879051191983546762511712987841216289378857288359552271595439499494352135223597169098490715526279774569706877309186658347092158026510687909615286019890855114685165164858786243795201402030897384902247277545545412053574691994905988626628134645081685959999526463241337475015886432630058161627093931581863382578145953185497364242564780256966847423870464169733346534170931803806469029699879329360815735011584387648232666288395906739502063552122568869436782555860665600056127871375557556607686496518930762743547488821597215557354836570548088140534666651188330346077760934566701421755023835877612960073991727052293933543680340276580233508316499854366510441421889649899995353473188234298008991949468022104998034797180073195371580688545594728878337896471810835123436222782569839753926640696869848364008293056989734260296521725821215746168668773706108561732728609592731764586627264202137020857726559473043648267408414396655941375836391255390662628919863442556883009573496963892564821956520427323071482357006221857644112961222596188853350241579072924588233815013518064455088094897321127069913798518651423379523938683040934665534306989267259855646604828473782460335471705208631030170332446762598638923743486391856209110960215262717855323867761367627441178770565296016420441519389625144094070160803437989084679519285608128189650132545360859725147836019326548032796378512217450453899356450406310801930659707517666625560240997680359751070122593741262139156337834161230020807784501818965817104963154791321879465311902569568614405450836731057726646276478152651406370730498166352071901914029959493653007815197162148034863666612406880264753439135588511565508635822286450158029640115955183288253296495014323935498052693924540221562480521421322665145207992135429796379514087095449330776599583363058429902417842595481589223930005341577812119687975096063746354303703137942274971122531224425804893750366971700720097157162831317713300466671332615271031020369039933381961154241998263269395373306576167261061641381795681110249530646295657968112455939304632286048191080776545288089869104635661882440285700290525173018629630430690055153376168354060233138344487049435413662981546232635234997485697646519172616160616187709758824080938158138560263492675560756520897509915180674869052185517055378040797871246057340921305763082547372570747382550033603686057303212197839257756131640876126404184652966820014188349542032327426718669777490845767101748502512674361651258810395746370156698252474763627413145325188422222163321470365787770992349063866442579048401228659526625854427240858373549183720078190948316625498546693413129246704259977165167006633972410553069808915404922776547740709678364262965466531863355163773807382856081725523493002472316451886987171286678465238723930272179334435340347353009630340476887921873820989525723960468405582468925643498749840831344710379565980111800709012279432202817220782770210870902275176852827008413621513462266353207675276681434984539055084342505811291885304532935294654020194246997925883280676803173998420302878402465104251978058827359554847378521926471150597365336849563701063321622253634854121635027869064814317119114695618192017590758594841865784582402750921290894391528538597692919263730666454662799649116309236559966972632269288033367066402806623647283897807507825025895967782398700112811105353735518305138870021091852886579438954003099715544080420752624805515649005655548498484164074917798494330553620938444106180260701425667504791320898200591601956504241645057672498671329827745177732934830255096888346814237876724063130811293347073955904829701878356267710484434393097668916911927012331613354375354995886602600217525453997765653056027874511387056150297805352383322259727431497285091876353105993092233666856290521542387004903260798205473382242992249851904146468743640288076500469978745382510358543788626725803671172123376014004339092212513406910519439633598333856906940895168958433715881037643204869858185405276458227783288023710085656403224184678324694821017144108953138079164111498289610965135975768725102417390972566823360098732869825354598132422311706284790255080392586476940755292659391819211288805764630718648664687658666419948917049766212523828927921270353657765731935140140413494909917219672610368777634590472379662870970764606547352867095609971694861232033158784705061196965957357344167876457914709334867358898884387464163651747182988359345576142836599661746365613617485348293181535659251394958416581690567296661000067183403012140113654908353095810043847103612876165452961610677759080579876503337122708649365213277862643526199940449676782789094998414320321225651740598648875997575635264909699535038555492639499227140430638040129910523931667355674586389320875367451544708417991032841967358324989871499261337877679501654457555146308072979273022086067443076412326652578003885439706062198579023464378485491797921831120636270186805530173434442433769748268788355486126347041470586133550241624556849379450432218696329085233828320517799031663167778796684579347211613800686879540030925894993907883588492414966606598392262510820196147526931790575614465576798329280757088378231992883811592885936672503480101907096534812647330958540281604066268006437898728266371313085149150140887188198737827066885457806139528399193608492406156389967928667471651718962175765254946605929643826584371587481372808710928091508769077095516586196983558434179045099355656695385551848765808485074816545238119812159016277897441263850228049484522584974687828264095402032668853693083745352244418287560983456693208117222236887719873805379031917768542965256916878720676343326503720611547869823811021588480142842837597073810426429107244505388062198526767242491380520541215535171677356621493144928190451195732424920498624577565189595424127293265477886367762403472815184185087627957731399101102995932741584183065609667978850473683027136312620714446252512443835678247905495618942615399680348726164049849952723227327709885051994260099700060936994372710865703819435681296701114183262554191010487309134853842101344051501285997319656666996913239398889222240316466427032265911471213695969255410907206082058638288970901622712176217386479337140928093620128085209316658680521881626694564084024306588314770236330028799794027510248191335575391981000790531302287752522300930415340408955070368641824556484920332714298711390663047232164072019200371680245279090429642947232065854090918223392656932477023811997244429071935593212108912626599500571065624967800299932039668900698338223127936249226774285222818028584312886205127485756166214806230393292387026309330435156310364781955126840664772913283479165985922143722604320730861939194159776631935679852384452757024100735071827197098649627745497665913729534773769294700716918110805337941041535448267504962606567984174529772856860233833207649025905903616317685620792997656541226152439988354673856769174688611258034079790647515168491211144903077679071299978049172630179479728447255342760623504838873996260274458248624792223442999356433885845997336786866266993719305297589274688987387791910060652940219466916631626507961704149029096603468426867464115496228377489979244172468337130074300867374371207593062665121302259105561242786164033266641082835238629796440549366389340358305999042724741729077801955624543108719157776640275501621715836806446574447636526249164320999633927723951353614481698126655257487685236199124124974862212202722625240992884207473074604152028379754090039944173645728701024804009786466570178331055122896351679288498039640813455998144600661702000818404498548518308964481153955691675170981732558664127476834695655401098920240466537608190016197505467890476492064317338096654732429729210315687450496144963023555641225464124532035649548632137864482492818254808108046456220117022981603906941270776550015961721578794666155762736213569086041589766584788697483145483273690580361772363242918771422621351326797248562779368462619743710627003254096247959833920510240966120202325311908710647851838794826193289495693762456262011999073176731408568717057598781700898782108807662538503218452457026880803607222737000345987922011275703287782758338860780320542897466423861272601807519031960326821230087979893217442076042778915406051749362913434958063781951471555133043750035313662818318545334142243207395709215887725927764309982861483147517111703997771236105038695887877329046910682224716072638568377822961883975479373702594752998331835880512040284438120986352930551421608412288333858677998437866683491585372664561034297044722001090768002372316094485664496315216815019117322882883994407575155858594620655685045554495554098413734057085377828092327261995926633339159262199029259488172213184021290131673320204026441567047868441186693080883622052249108594425106401500842917657235141234482783519363176392550641846004672439689512242784490161563105120172098553369734554266669406162128725057680009577205239432064993523706182622398405483487710119642633587629547536876437058349820762052977737289617037944866602454315476197580548048803886433958113145121269929853237038689321535866227565403777773726809112133031851981580073760444304404378589523183920841754344069582977102853522804104334794773711940069894524415086851100379941679701669002835788662943710169717680379430561142285503980635933517107648150367828899314022441952159565446150813608277743176097421306829340155776210112763927312707552068228903010765252659211949603346586547372535293740826179500451838241462363778326489039112657556607496106286229252140105688277512763478400187291266694056188522372661582146028689852357327088419257202593180345008874243221176000907950551881649975267420443880172125076644837598908470559370355321682503456578564168548206641892377392439960249293145039620173367284266015637405520087362656996442894957103324820831423274478628292948073017230402966530918003588498720068285855050218149190175604783361655886083785453903375993209291256315513842198202129566983494999125220913732973983242856883072907203658643709274513393649922830556723834558600550684262393988842361442670220345830152453100663244317045301448681885365083573513263781449370011360524646598882456398657810233448864637980727720585009328882661432902014308205834270510255100057617433422681263191845952259050333395745168997212898288538953757469304627926025490626335387303542837177461292703070969261219810067958110448910939702630189466641431846114277595568915802881201395696990223311242788507834967998904184317963185732144091584478486428400303476243445303773473606199502062038329563848833316359862529814243637354569003681302307356582513790805827884059567812660568390943330199933453493843705499751888045947196977163119398639405371012600466164009112474335526804989586726802152126572054113323803241075108428627583555459493175440762317383976827520533458013726259850060393620727840895707261531679723901361106382661409562062846757387352048355525079803585754044548933911701940299274232680241192609193600420784248360153272865877304061905344990029451919515201441104088190158703758398268958082380085675962998909980492833239327702187848431328433500455493685043698599860098946842669773714705227554033370683703905676627396744337125246657112661839813431747784409665840365391388209366186729382706742184792228332692595581327539688575542258466792077953144349445189444667442696079317760986449592761038535078928143004205641074020269584630954947166902540330614211419719564544796873373885527785954486319448887867038712683091956124764588726383105914232328626115386070829396392177901165474595098032304945573054306565484502632768116023510769007741334578459296551459333839559540842175252082018281836141486343844451258447867726447979991019799492984143896639258645704368521316288553940497619094373272278478611601342996208331408221914396775009887083121612075676426401803490905340635387962353407628105456887103426430242519767131526856685743954733543217248574363228688961619956819080780970197967630085156917326784036544267392176357129886963894028017243792042001414515686097725738968011778153977419671774819600710760407160530139893064322285702246913772505696836175071903383072254622232514082461952772943112287454573952213145757033625493317674329597708468863815625629113949663936142328732881994095466949966099692263794717959612543842463859872451052157471372222200572648699493802743965937578621252724899019206060244039568095779323017589908124740539991393400164872576050450511801555283513159260475027919143692372902502241410607475002021618418885597044845354574416872847827406599019021984505864016968616779792360544425866347981579479052759009219803165108675780768847398965278375473247943461341344203490371950881495435666916391194503945152249046192763340847563611416306808311503801579250029327645833387722177450383743992413365785052477042709505269181548665508806504394747240409640126965172613376792814707327197822587396266700711614151386970988769825218907047836230243602918886899318956701497147252184063595119111625350479899798438135323950052687529654577761289053256752050881365889850358149529809200887874940858644217786493800077668929017202636143967361170289247732766605879729521838284428834374880186103710601721725550749842631533345557006298406440454164542807565870333493580791194835240311085219007665553828477844670090986382671865426144826913218155618849724106290564479333375209558095371435907185264255460879403966744498132806415389698158554991171813236415958954103990520768772269709922743258051074201817501319172835632534878898435445067441151754159960591036869806724774944311375185281256266778932931443695269564687414205042712781608192140255625718064499760012930891560554674604333043261748943176807683427599480859266354985208369951981142142042754735446203003470651941192475100914662282240048798499720963438799709763638147119993733807510742915897084628606105096424654721187525008224715439975770574943822483119737972676827798418792356500223982589931781734341537625730818723717909476851373756852046739145022970513159437900665376320660494013202981004494853355235776627864932458951835937363857391397209062479662699803118662545446181802102906469496470923230144950138629481595050106736827832143788522675682351068009032977473088064064622750626669881829510701236756888026418792066503001396278919786695460968917049070911582404340429310100219336447571319792701266411027481921500811979504731086347468913237129487908502916238892317520893330574945512771026598006730790296086913323539498142384438524545672279193623373638201241668479009618605750029017892146243536162635372059298741503029750855666238777504077395592490242027345355951802944549870018082296463998397338171012440844954831730811539873878498797946178194570179229678742552409313382024829089876388303622884812741077610222679777749548579390721014696998319821900047953335827051949095699326436487568525124226368158987256882598821345146942203815013478425586850387137866859991518544343074034115763756907295755975416197183853566518098791340639347993139351439370312415211394152280779139858446271482637954300562658593733001959307665954745278443660734309541502524733643384895772718091959389552316708596936698415762010970986361390351459343694124351510779638438108059297756690924438175223607208491167105705854128470346548313723470546697010520620925110723083351929261892356142430537649799519869349832092891844974872435129812483306865544571858902461904285800828252610417204955194020973215046672955754398221685820763257384393432600576655008251818971596939576490731939841330976428276210636048579830279581992854710082923873620798714280553420527477263777453671806166617594114313851227739371071354397595048456648971123871999806907986317359798275150462846155953178303840551206386762384349492597899647190992372501327143706312725045817135612216916091920924937384983163420009677691498558543638869108211255615280054685849051351224990749908371147644486310470798771525294751901904351783592433615653162091023748436365532866137441768494470860771178659875581409337421141934606364300649949382487816443310428855648702352426091717030008436562469674180260000941545958837922783802383172339094895185215959977701879217521856688076801065451572851330055941102580520726466187904449799083017103855662120940341811516189598439538222899182491430996404008992053109756823363018789165887228038917023811937033760198114279330788451807782452791208126500087068985943243800350968148115088277052144543664309412749850878814639976910834670265121109301902108817094065395060434645691099854165266330599722897160758639807927886751030224225785737698607800076500561623619738446081108296554192466222537275617217484126884796878056246022433209229067795836351044360745852666500672759172181702979097842510175443019267090054955873964645571493210759785156327323708628808978825836202877592831787789105064505306993407146324632573306879428468234208915092072429811350794205615689704036901153854020252312345266737678210403143639694289031018457205151860817332037467771076976669008434217768889262982647937304993529623705767283055191272241057746155848917465756192494128381462309491001120224826544321144353581698574749395785992398002875891481218502219530738331285438295861892791057053109613199521044660468869776090987884566544584701348605855680559354235247823193456913685308870115932902274790182706220957781817674496154476786451393957393726592156341617264566553045634906161321510093241202854386142012162419340115980024434291346021773837959866694036307089843010199948693026214262498816537273825535135876927862101857716590124200672783225651938054539472302189050618153721482402712925628518007615364206578087700215842004044136113176192170181395898639263944464021845379519447622201602416022514144069977801208410070519389733686699214317539916126938939485054929060113476183581664881447136248381483256210736236810014951407478622215075528100411697373200398359917443907701492519659351912801685132222418821312369938046627036146441531616728896350551150998693571548652713275629686339686716755339274183111971562158154941520352450345133549245059869587695767176019131633513361008823876745487909570211335585877237343834126731315306097262338241482391360286779843808222207290209745486251967211899315817161617031943438942578449457134293819488304253813712897439125028289864826915903034062237474437808535205204891541394377311813251927265607800007789203329202936482711493721150863310707243266212626141942371891319898613826160375547979878966917542757841840629399833503534907980730205830331205172994025221165686590293620731074614092503765232695850356741928281287837721879717752135086646716254473917616173555493245742338081720565399144395952062776317080544567946625242554698218738495637160750388653915509439295352054544940080583979942409424835029186966352087303335128138035347304995394822201215082630241854649198218367899906700825780081626562657619872090983915460599275557693940813896856716927196948524520860275324104636228511360161307932261104717794919627891977324673511672536441989941826555128193856473092883287881698252202052283447856972662522258450026984386185606566594738717322599236428770334340070033047137358153677790814768804888816808736329264241880857653565238753524822736364777535957883776679827467534486812274559277672924675228192055431291664160333179341909178571993408012099049906208281411690516406644611277842151856449076038908773328365916210011005492243846749486554099575606358284224236850544407085223966888870725105884088725494046600520085601240804322803433437036158774413518961144269345166267238507212503478175576434610154566771576104426102103323124194772084492260339332550650487959222838655713764235357402033616320203143907525340866493515237834482521247639634371114789027723820877672705755799183855847431898488426341859566922893697880352550343880610232131336152464626573258574758603052387443604191246358760136992073943943442380488961242117661429989648595136956611722158425717992913865138516213989151656892321580544217767546890497206280802914687418574244139309269218222962112270365321573094687066521093792775598002666095905992532384611307631052859901502384889532495512568858292761281936275338638816817381648053254554013572423091674327847126434103430247281163655213624957912654639176725217124277322280371748564018841111983655025432204650767071124032255266621804897874868522036565445468256613500754201478442512502337074349740941188255898997902997121552953096474463722192078081776073887818229569860308664792999239911863844002440583186863747683327879664870887391746035151740508053518839981685776696685092438164990491619236449249792401643498757607622649976863459240766883366845398818674910777780723543929375882557364425063321087716712734125389991502289375485748276456168163572671085779493185579034080950005326351459727062086553435873458919924133159376117215960939816260347038124858195218374743980801558974338639456640848401842061371564102161435766308940808119484529215118602152210387213286657275150826933140959082929677511549827998075763566904013989941922294654886914605059378549176820265092775129211407285903247224631011538637416550546345864488932576979526236400774277150381532027253445904350173020353966984536387797797727579283426161233731248879861695171869047676861731074964354336840590474162394775802769031020554918347517701732162048137744358115109570097674714934238364624004699619052880603894104489029749746939733522885365621632057727003123408937765933719426105782749315029897542299497043154040954013274657865877569219681695775574757219627551250871036201253179335462087970940505035216059766850787122892006511442143145046984371695572657161206052980551999186657943742384019299186257574553392460217133543339167368172974812738039078987274620151881641970052236906423862511013090282306711669138341703061518561760380533996898338967385333335932805580538946445219611364446580130045520785925277807028489718543484173222671787196387273523725086543665752576392263974114724647669135201700493246366096914115103814611171825532065338097624247572775480388038471898804898967378783285134355105847143967868971109497667530995781843400379613743477711806584271930090053369510070742861188727855402071758978959344298568986844360420748007299574376882454120420969454496222676082216944894617537021363399498248763740347000364539347831805651691534364497352928877776527182271788972843167669740132703689814143309859732795822885321414233725155829849599263161959759667536359063488306573832126909506511643779080460204124300940984533162401292725278375940213273311814633249227873460324840208731613685992076024693016258664070521033087034824400512956483078916101379389620587730949089520052509867791124327352520341209447715566953153776608622438910231858806291721568904161287456997751843203616585205216312422613450063035465875853082335066865436707033426924218076119185620242006946708350781277486290377541859403104373513061786355534087223887063477685429728381846830480721486686178520099427489907952590444907308563821525969325485710189977357946302071427228296827627794238248699418412540714776574833911460050350456330437371276852418538291117071066985587688169758823564383591774578078214886035117761740650253285841111672655375731848906568740917055612819058540868234240953089850030850507692248919786111552642694635020148179328053826511863125203827368857116407422513815545776991868827825145602599784127718668306522219610219350028848088993147352865159137234471427516964665194325371043281629035954004288572059690502818093917184085004422976881257472686325965424139952112333123690019092136369686451539233801986023472956562634382438375327726204469865448306344442036054910551508278297576696949700747813550798902218837664845848189569681431164282050292662095746453332062849153500337921021555186080994036991759528068036578366648675980215244260526857716666196700508705127219426857942690012940433076496229906570803382347152013931688959253380049022973330215930612366929714561404505125698376600898372835169761939584510465225327432986498081907636740978472311824643221820733954576108053183917858639073733338877327496313874341415005456390471277925761742005292581151679620408910995257995155633365130305116999184125051182436742023597833107065161675321595050958365324688540144303735430497129761548346258879447319147540852931913234308797475278069679717376112977658834511752256334421716712708825221009304124520505119134603079641957440004971211081468045092464962241817748144173366832204931420655280328737941348008721104779310458179097189318029490317578610684832673154237694184549800711222586148935223410657207932851836008876758213245110062943366548113963411336501497290719917424372663680416140115104565575752347219743844993422586893655194845302023126521463069016780371079688412027227604453401194468717172059212165541686513032683776596527747935070297989044166458079492534938724456733174936541695448791342823145154719096808838790392705580589325012041547912855691288906521108481424658422380637961368301931517978028349171542727313615493979511978316001644607558370290479994392739371240245267014880057512833907894083878778851577293747129626075326279642281138160961214633771889101914949935395968746582751388056736497814449873946496329552794597977178124755252689207494631608946355224081026342907437871388742509346041792974980880141490774017975526361850250760317885787860330089096559819148723569511674791280618671130512683156641811702211143639419221784754732782150954027025352754869419418411940533968699494068986368634784572037388557258480167624976959659065420509015594679903349735132292474847808005896663469470954793760404204782924323060535798754497446597943774512689338724558612255354302320405016540938479724547508604269699816563097770674278888060110249413735233622089848347842971577570703620928363463205156409090287003004007871169371767553372063514075302002098545592103258759532848705247489092610099815140852397952722796610898107234367007939644236082665238283909022150952226466412188608454176181725181005635154199590011645637318001482141471240042966740501864128297560076075967020821106428266204966642617984325227505892533779367784199374936317500063440367833557788109622613696442983570606252871582587882847134709763811681364935923996332672961191116685165553942764776351113081083884610639747972708252611029958394584335116286923924611682646040759738743864341852771539331508027696610204429666154518399458895941004073852100407407710220229144891819240685165284043871915373898777373835994582216670118579527785706328198563895662601092225328867227874449081225992292142908839088258223917701972578728341452109618275460297843474947776792058919810467713051239492132993828507643985583417959517025246865793026932770973317207829786598473587674038059368902568039442311843081715166987410063859551532085060695701044913383938987544312735092100195633956376518104973099393985608376331492231947899798785646143497135094354417256436763886751485353633379944226911625767437989770626625203039918728590773985203974700504061260534753058472934579512629646335183263326472319782818488534948374823130813695678370897361783500350393471607536264287326491021815771065162408163852162299862474675391051760188118938306938752474623992454810350540790092630418916396597911165885898792785726415981803455383698562695821883734209287370354527015714337806654945979290760958177603178212405969873349881579371947565540860745558036428820387837617644545772531047166976766780620717088543213149481059224272731769050905412667151820963115127022037698444025011767182001551763871367801820659781327826424951124745859594446273799157814456918166897661411322635756187021076587538298740919917663266936404929878626486514081571893778082058095961601068161730132726721298483083142930896599753643751007097150939561236219147972950843000713552324809204505351241887927724205975230785350849400476883265470579435504087930384797518332710399213616891668382209500541268692964347042944365315376249182147247723993049315635232653680002600451887088372145588102154035789125734173103300747696556534260720497607235287292612870952268278944231224401744726868731098316457196692524619796553266690026911508286241774654338149600914622290773614877747100579154487606960901897124981151233927693468517662337499446389137689595331282973766103478569011472922827525193668174019899828724443128690667166231627014539618655676007033532840271867232248323135397353542660411246833556191809740803789351643229094867800536304588496893063098669963798737831881250815512587453733917591565144785941921400694251907226115269061211776406434099170996275595363132855531116365505813783816290875465661377458977940984473114613101106134678361034448956500196207410258034786060256113499611703029405252863670932650585844974457615914455325644256288381005256569042399929791713461133286665873181894706436934876029492497040160035195968300308515269884225738729369622484869639928941250871855145156070828269272390555226844190542942561394356510598775042295878284498352972625613916786422263145532860822815550475542981400076896432896931212430119400685079518419885117607331524752837742246388490946651234714982412383379662888330929038207354410969972868669380809136420253877522396912790555387887317888921331183804784419114449930358534882525525233719065430962573526968446639774102727248979667882633383616033278882286534337893308442790285691228173327720599702602056089480856944796769485869125814633065632525091085130316172362698889362243575255520647535486930724391857378965248887203268933550085077138978310161889906336147628889874514919331496031936923245707373505067021836601230592634638510423010816700306603385181026005595290029279015759268424095976956575164642429505295678173054041549732195202606865288159940501519332341919793751912045741571440275979033683716047347664903894481368976448430461751461407348604871911405865423253527680941256009073198949776791995876403200817218952959461187567721293137912642003434235459063795296056214694224566265473158431272258426135503852406077481307191277031715958441042722860926146526862343916469346378385272600768527367381376208085635055216844496668283696008370376109447584388359022154943240255802932690819835746924094493454376439255374175824371771074728029863150513245051787544690143603074956151029926067205487030629637937848607976760314393230142468897128965856745260703196243621969384365047683355447852367626127981062845597589535991036016216305552234566795978265681642507645822554070467648810264687036430339701026274517506061985867644111641523654792456862145558471877166578324933858205653840242521645382621362111701997587199536939724252261754579049746120604618022706592286417957915879220047250241334101118193869652199733621375695881696868908395472730812770073835159743518677691452262853410337572889988960180289371527764368718471859104480303918410815876034000853922240933292029070868309191183151172359756281057053377978169872583155183157399246867120766076021231265967042574149060016087289194750575953431489856553449058718115492439338156845060740512250949382887701780996417434030369692598373181700080809204038019552654031588397822108945576217975119167077724773655085781696403303789097610944771916342760986581079491539640527692008961659392601709861116710151976058994017140921102321189099848460515299089415812454599040016449918808494221140399063431772467749209034806268952551537790492460018145842548352275727130403350550574870645230213309319301174697597038088895404778254890247734155565095796842223759826584622308256956893914478337404549181702845795837089354819984904938992359021254615911534896702544712167946328297395972203083516947856534768113549644584046197181116155448866887012710220470495414046653386482498285400267846964028948834916141383777431392289685372427406788518384347037423422354459704407114262542011123862659576916397586584461000233764404370820293379043811670622006309082494003284937532480408194178693076295209692285077212932124158164315313570022269749351577582861307803402332911306326677131511178819728710571353607931316291866488025654685554089158197451260603011739338980563336509203546243803615107771484006247773226101414779166205490565787178685979587047395542000159654811846661449379022978050802532070752155177940042352821235475068449463887092852057030292001140410723915586055849671711273691037431713597753471944395071879219877086374316106816304268591875404942042814487252721279534632074323599480024171368609250379305002006980910242270616169278104370545016997599541789325761652947993867184715130320328294565803882216314992219553457046386847959102228381851380806112034868592465293624215307747985408763065602338342518970778870559276386115825244972501843597191340332008438468774195667899969578092387713135220489206476928758197390277155414430127412251387512525337410464148194640935230215439029777176757827341900963981059421202891221405320644936773677118151716697466256835485544253624801739435470571324623127923154414963606519919748325363883209210998600809832890155786945243885243398438557152203947363225011745048095094889397051861764272400443457048188289548125833767523676695089106723963176531789058051302860142151304872755883846221900408544958762131256829958857956185642033325155370701075484746539417417919801453870666035825254183791536498007320777428072402060275662191474220844675360271143245401590929176804308748450561065127385678128998250925150697793881587849682848297914913109768779593748680405763059099387201026439247702515094187507778790714412385952709296158339461172565556032565955485357211214827137968896306231394069651340888081673629166224022237012234516006314580428922639310621451928972087784956668523531343330361496305139485001016311693195572365506904860980937817456370942256112629252406348798003475564325096552588368725371816631526110980782251200362288641329755977463182586868061281449042899194382169911196206638850933876048657852177808553628606284032258630136894429801276276569056264224388277385870671845647710376650812407898984104083865275865189449753274376307007331698701628791626490065497627910079030425665246594549066181246221186396399601453360833189300019403044912458492727804000424130473983318765877648913392986028652407302218725965793827207652070885297910385225765593953523103546883088309463027787176580804334294185702766401710228843007447569975097339634290622083956997777286759513203760568246976100088309837572053238222732909893452858287833803615327322977966630864093887245075091602679164289242665793392534312349097889679355100250923782824460207708367271821512621415733673996535723673892769664325948668808819791157516646852145942291763074493900223571345961700872283860198204774188401853783107053861686539690362505977056126712820574001620175468232446858350267720251618757262616572207864725044383034066370452273183371651830791441160269747138976163889983359747847039858095536896629779693268757519707216913665079218947247491967969114734877616487413758372452092530813563230255821205502771815301608103753563430370535046799713416219909055925582596790373541262183032828589812180894987883628265494151178404518135760005472408179502270234242345053954664856940837394270559915183758457394506613568643017224223477243574839411651866814747364213817234849601236331266723238646618541568037751794261925410844755583233632262011602874234389539955472318941441621722775002026803625188828205605622218189567494189224884846223071504828145788014036345977386623045694481520540634148781774020944620257180576670387543274783227357479096074183228093487210672693723882809966199245526912009634929828208530385860212128844938744420902072886298088950728120576555445203750509975620848877912745089007116568136918590606551092398353457692843137812766814530652470468083236302414183928598193805111505102814500554961666156467109657556317924367853735115193906950770356176520893415711634354673821009734476020966969288535794927246419659648669674679726373840447845494549887862687822611176332529606266321297092469036189587532438453474193446019871878359584066550291012229251808422094937115365691383815052532889732515489387330396091362748610480145348516743095450544941125803060828469391034524861035064571330349504693948971500584949153528120062409508457250815754301092484389437791602744361483500739784310362936006480373419146451494021790584612601760431111939496153389750743567471612113456384372774533631011627608687597242063125425805318591116229056912090593091927635146427987274743088367308156654245105505683958915072371177991827042701588168828577737345973658528974748813214118823677814163872273341010195214584842350566150431739380730010600043032293342561557771760416809251128360831361906294639161354533966673436639441371628212936489508500627414056327181569364741339617549445255405783558067308153609144619536722784166729004658382111592911171934570522557009967375496891661411779891881174408369437764281492153611819980780364459109020473517534146747741457325045531091665220846477749031142585162833129711607433257263832442383421187016289904633112904295933166491428853138992260541170148356424016579230854720435449061121001469773709883084859381909464427228025870545367147685438537044669279207239455082841346357138816503637126672490488318762286227576896322866146515158811156835848812030560980540121996970052462640536290831889013627107431967921072857374638041882590092591678716805707277499989301965198161396980295718155735950329109508005760024863824679321720341049302572451534220112377048221902679728339239561472971573024462978524721914378035795258162408848287370258664605071076447087551717577544042350140590588765315893217795996330763366664388593044653905859814241967005409853773261314421045810851983747978452027486650295077701065916083905708676208611604113255610662098274394477908170010777642017522515872837918558647207323085638373161466663926029843100199848606038674190155137267295872793319349869963302545483511078655636008752913252293968079060681669263303272552614334149882664606808709709135933908999733607800984994306837359311693384915473476317426637633163018223921780836971262886928654764429371659343811076373076629640924893385345514816595240056207316320453007718361293694776608483342431730114227222646337841256285882800367131754493650838216697938122798564776856214448227112722645484485677394263256262753483781276691891105362036054354147754048849002927023857370853845054465796937408848926206785349207104370069874486430748112953998851022510232804886179158401299314178706871141770425289678568311055781204558068466700625607418596959767126958293306921430431183871929513134827836833426829615141160092498273129794775371044411843148203614673770713415616742157332947153738587518569472993402910775069606840317002106616450063553986416526220161836455253405606573900732079342433411573921324594527802594379377035801460019502011244673681339750076408321482770782042391812509401768574506002828553402287702553225613948001848891675308766995460757018418648453814768681339744065982747502456407684580197627853847120634527789133036146244785943848181729570029479295606993958982764520165429724715268462557074127784310298391709587536887774480145924893625350721487066336840626783604540772560478079944362165476380433843508203331730299082572775187292767521708483414041604995431896826962677687871638784679245194177928550231706334292512408879974574722990428179271087925677762883555080792152980234122713235717218848019327504571518600777874136000503015631704963479282949517245154185239182422352307376018461218448129293773247595501776138891542291247851364942545634445605438224529325216886156033080697727243180761676241310606480128541087424282649979487946387719375948855016923076018058192444707718742126052051404440382551374667090543281354367292053369888080561325984160629619170713759365894137722225919452861748982018324880948828811946612019175596623159961885177611938021235746383436872972101025467924878852946766371958923637017535523524921516621700566400962442074023093744870456978800861009131120109364656093026439391964321596064684992601931627209738516359109699137085791447833218257937309036410260655014517299274900385422693059375843996744022046116357473563022925413941274798199505902780279493509789102801730723521601183944057484591965055739057719144567748361690326276733266928573116628855422243928703563272351381749484690073521769214546683209656237793700353260572809158203295606831949052582820348594613068227304463644407894330737873089385555434798407979407379590146448001212460138599253875689467985050865666031879192829690349569395782155518529740654888633694686678109107838165953304473341045292294206155938051500905405843244698945990259469853805646164591315685004669578365509022930418459851532683818468126958591897219969528692158028486005226561394827606421718036622722453260106493249171707193431031403997584196347438754151637896616489408535891060254525872364659427104656066882213910453542014634238714448016955690582901507138279915173226374009549970397578729697642863418819520497295629064765502194060830259420388884978919046022052097100527468553383996525114954654141204361883563669695729826487361139694371807994845306618390881310929978034615857225614047539268679260401167894404648537335917190804833558112957170688384796793318336492491689582064540900679809732201612483743301876882245233301605409095842986254294084482240392856278689453197147539772795410329850545710843704437962746759428880593112255002720154394712159267913518424314828531056515123017525587731742649999050345469477836851224101161129940899853865882786572874261077444041610619342565037066719485795963751244018615170185371027862033655126508894096689567977377012827421121487113454958751878847086195291745328278111060685836101090243386822366273025178117423590316972254083122880492366243250446555532970918728114652067976839455459961567364789774688427627337652809717205073806832530688553744401977731856240211544090557277468387057350518040825812766858643564967903054960275188517654046866814652572293607808638021251251576992391931251234837278541573195981414410334018341942350354915097005748351268769198428435603794119685487764153620332478240631886457772907995492793429492819958072424588096518674859409503221368844776543951957621532367871939233686922191780397165010801688468225955102030996434210349059071872215652808119070862487813510935212597973395911934938982961996896534568237383640610722785034682398959813583023656548205514934396004823133330420010768270860036592246171740616980464541886316633785240612908491918675655016597107256340183228491110989963588041386634939454839725420749227766477286166467618595607821788270202489602668008872627635347976176711063469150126735160614220990307663121970902657021856090497168484809543355160093367017306011300874179508671296811562436611739433226884212236263571712726046113042499642106068171074068710610449224894553379595645511409550953333697689614021736125212995545826312806086853249621885940699409974910418392574504044760963036339003598601504167667666358085424601965942519149219165118798485761742041073710059660408765723192655821859195434497774216536796456228217871481765346934369859287904380793785254718591106453754583116500001812102917825518959714419679264453374259234309052204262286971446644827970170933057781913347504815063250803207050423560847129103696790795223385059807360209985905513876808592760734059833716411508650933129457751648494824162987954286415298940626483520530620909093653997984033954081564092779886544053782596846114094717473835928602462262529308656113769970513514029949275044854109630835133575187722810730561231700458324760889881816827096092963768479357728903818698281182675928945811056489942836022650468191125901022049638819525991788723435055948027548784821186256878858070109760124448767879951612346978060915832201770044626627969749292512423536475334757560249230251334115685060371448998289090456337293498422586698828849165882924850470324712190762432741323397459155545023697637156585012592158003820589333098080558072213982972333959324967650371318071418737308430745394896200960875406117402649743845324861934078828788480813440804454292051702171691208308497727766311476639323086210407350930295932937469560995204009533377448417672264450475857414159503266604894069184566025424434726307695933436181289599976461650318457134070338498177178188767659269636913684626489208587578759944207852613103641830824452012735467062592810416757754262197011692164786406303012693680986893877392810243422101048196516794360624997181736061740747585711887288972225270284116743821884884614455376730913034177096957585166472759654058608513622750812969580817958107197586845288098707712896904379696605623087269077616378613725559150008380193144698738641680506232395258899292043408950979108589404700546658359856436803233594520895924559910455053183026168802798580021572216163274435889438616906284757866561151574718941698162618073620482026939625169741337856131798814037942474964226687087951571972950950080940278465128392888709859742971404178608573117552611491954261656680072627276511402156341852871389467508593884384984077703244239978313602759013303830198577832365799566261197322447779527334441164606029379651386820554527085468895746711752735695231390978591179017356098994902466471670371046398753959490951473858690524126580649823384555392224703244755902284206742504154379380733326665034742146942037592211494615024078201903945427204599060902325723221272681324093848875991989458762221910459947895384497702151249564700387858117367049066049058799029932485007005871618489187442002431687152357241804965527014813754386866867919535640877384393290520738724096176092507761037024961890521516483217367969345218023051095002263978599681495302996868950418720949216230298224009979239945061043953536280179691330743544617484053165511245042310250854332422545969244092222661635006206053567497504887078259210490370407954355354894797593179604095079680345523157224551048934410726882243027577730294390591082884786677657126033446272314419431552373874779724092763758154064421125723185693309969002185521340521392479015153433902725999534276492548407556472897148610258314070636244812146944116314976648283990116874912519950691861147068066975499644112219207345614255959729097052400243461788665603058803804472612103492605112194464563099186825474420504573260570462909116135105198639425310040466828458509721765950737020483063785148733370624370077007719776226430879643853593207453585025525405902105715912319294392157139129470493142667780528017210355120679929705537173140833174310989273835087111987761992092956582793633224527449489624983156097980891797572725382709314900952806583185143438697536758726740237046936464354481396964155960682475843676566596812842641103875996412493742264950578237191255856244363839360002171722063968253277045674768386235149440054626797065410142824716641645428752779968101554790077584353337353284618143015091142045329732718531553719675590960093541282363393433658896431425852019098220614962596559957974964624855481192635568013776368053060195625479873005305729500462126827284640389666918193037623770468815365677473161833720588734219015633840146619861095298086981216654527360893033854752162195900150340706581355574834993841845722807493788733202871078244326935069428465112715503960988455708971403094925388319286208246980038971956842354207673152196798955238150576600800300851084304304035375573946955373040883107912116432936825024412365307057761093296401637672577117871186375795918989250217993840146505716931130619365611095715413098408986524342928334366654833223980588158454134861619583603423991148992699921317583396347856155549356615000747962635516648472456093162657041921704216633772299904781217758274388367924086547375167711748831670068402849140175482758590957162125911795867569979803209545063525294148840713540937531551532507036362518098545389055628367156312325197101726626508078322572639354747780324780946716687734696204674277588149483526195137119002795992146961530910953666594819090762564199262990621319810936845371163349547422637521015003097107241630543670347932909247603393891148477797817537645161327409077504932675945259488930835590326168524658332768087398712827963570597675777192450519019186386950217011653935749560132474944447708354954491927092447859622508073722819981972682018227866500072579183514748019027436976919339113263313890496624327019335971096990039839793152423574004128943134784765869564947646916978738475881809306517728822421424672036923807955643884375709361056651073908086510146266953931930078816095302897208966012637569529052649408070419949869396902320845591321424971033663357699534678733545338926722959573675324999347864581676461119820681810793375053271351292965271834255489854863722962137028325483125846667834793270441428498279154052925260267114497218027432890394317127131131155039015031379350654935708491220523608099251858016616784784411417884318346609669101444013277603923895396571287473829948925818378037792370470139009665909451313899368086197295664932020455224190836523612660257791959712125169496038442828109276593714255209552388873500602231335890434837971911328322819053763585010468284792575552613797260565314629353478704800855286918867406961460722479231292191530169733678384317954963917813082341808611820808681848033922050227473169979687609895797979426922240148054862792925914557106879582511718538769793788684964300097006239018474361247213444298787192335827715539920934368043295494590943197381284251530173689434434387921601714420886696759937031856744059748608286324685044483552610820788018886521034136881790871780212436385852663265191017364016982732416764510756810730155507359035066884208829322844758277199929611995621573114960106087773728049915353373967989024806576888937542766876703880946268006799034083180361894143624309318943716464582701259943741352305452077232720117611121782687110473861234361583134569433125135651940047894216610784612805448541863871086219110708789736416416382227046823607807435686891640937482527321639294483376832717494554223102150097840517962808111790981597546708090675522131446961355946119664092366457401675229938477591685595603069625982916541251431227656276558987188937150854787688291551894780778611646373268653290564246737747843919501468904756788870123379258462123278578914560345286812433277978283780804274942585966121140426834637898981938430699975436592361490464903780355632751951097170341742623602292851475486963697938222062291702223541898037024463432390859982246122531681109733514879435743363909479514637297716801706578564858552003206864721141770078052914826527553219355217862686426548191217147224758981830737737078419838688070652908468093026826609878398827547079738803696283351265053726801438372982667907933924735507277193474765905888210579169856035066709896911636903792335593880362083679027935491977442856875244442144522893846861964507749743707897732211034116330046835457500943161885768341009891139608286717607650898297534987373990657057690403607771813521789407830126913701760035385396872288857085090461686597101990938437511023010731953094734450114143037485557734940952902140002446568743763576055037378148768475765240259154778818446106480004335321576172706065987100270006799521810888163721462872671596398505709989955313936466952804509895158335879529533389433594224142537167394713428426787952744729469563236764234154642969717534095062278682241192444256813260193372213243584996024646308233846230164603267146459736809674436353936346758994114009929281781562249741106654487837817470089067522042535472487986620423786166064795999749143301285015389855219107111702925862327175559881201744779869446154198295158068170486981453576574822365243248200489500916674646795991540817534563006260166209698360215091191387158878304896561438154017952997189734580870748334818975486583948540909708810353377538111053287639674164531416557117496612001421386833578474679220960443362984895685940311102087844930123018274189120998834806777352821394646421288880398601842298150042628491506503147885282496343895929542662155759345149967392875171910203313183422363570992361719941470327040781910975663777567134206917132323095713558656706263333638217775620664579244751468204230065417432833666483585951117607637741531756015884792001970435778416952007596585875492076878909994948704508183514561333731245160519796793716868465569595921955679011946631819810734609123906576994652201053912854025495553702259798969060688474264587719162127587201179611666121231436213796603832107731391524122150178097984523938763545996318615655302381844518226495648988555970977361931178442205529728087006810443451235990140223318950539314247147852801432447797985857000490142926728850391003014994376496618942094046576658830272788466221821188268824766683941587423766134797097287803333227142685880080898149778371852117808295291830010578195006300060231416503643041996643649269003359251025746600002368910664492181567746404235588500123977784275653431277142871560810479725083389101148373059547628528005426469644316613109267603463760576565145399605898603660722452777867527977135221098316508763834090943819123003895537649913016698018395232253996992572900782746467493135869725349690997370906227186035228388841831947251876362817183956406657283614244193542825625637435198771944277770448138931650598476395569618943336210147351748004071819910652093632152569219654563633759571163164287281365275020850322116218263479035662693642861513429636805896657383693253304842782763225237846764891299218586716976030135941930700546302891279281447561387764316967713545183551738389278660080218064115761499443388068586327254507129350713343686452272004376769122208593248048130444151207088669358366264330881061789277420741922247424393107170110071086784209253781190201537792551372559151151569063130619615391462853887291589516036271700547490238418262929667909693440456061167495212390003310171034146873577141579349895534852293897299170007262146680182750538193271408416613669564086888277504396342777486036669321189935901482965220479578520657339242299276883916433806936769937148550687664788361040363001645792199579942828874907289296133055830993281074076768787636915757668915175936802591557270593477604859338528470150738999094891826616541008220940852049669896406455240147859811515428626225879590526622748945910456367307746448152718782182904772623310497677605422862020162891133605547938270075379073526416500310818596762613135123850892478853097799884381636294905991259460785911571676496440119528470048636904918061191321297012586681924254779033596749394627137870478044959627975529077507857970638712304995222464903471105109369599463060686470389775630304545436963279724311639947201338488077717836375349775292205193665147067765597180601793943963780359708920498686334701320210198704517086731880753827137765649493341937869027870462434567653816721941114038116789125315488498876735977298305386818133964944276729286076645316071591056692785302268675606312888844736494704355248529609698199147856845232784826231631207788984553722721150458261723391393071810411299413143024641714807214069479699428031481503440798553092465932056656787524876783668954366785996198078989410304399658793180849618617658062261792307568239199803263826131371082511978034536089158306993871944126739584659851392909845327796142958391261247251751316862766550579872537649007262981628228038419841754048668880770544051300518844683558868156329332794120509009639237542519351442324966173662517295790804569572848706582144355088525611882688357927546098553312821057489893649743028056094533364269683956589327597932860735784573875396235827157798986089080512534840454119912079348083989540267593317229476752076286296108694271093614499040387658656589574443856242937444136659337505654021902361732298952173005271025131043780420631370229775840050549535145087926881395239279362306677525962364914067631455736639490935587884746178665524806900203913869429372818625135733324650081785705117935649056096029941338560734405065457037746786920594891304346651197674597406137351936955903835629329871872902160414130024367687248838897644022406582864685357161702211588182784840675263274117016556267484913597582638102558023479551217834566568544787226040596325025645604717313457343959101961515515524362181761523031049106184877782530421573822146169951259189415548622698429671860085214292955311407774893128074288691197812769775178576768369918814446192208879830925171323699123158229000437931354101946579881195041254274151439254839945580680564529804445620597456365028626329450854541546568854191581881972320356801128922121191315880107347001487291916252665679535869187829583446912577825221389696940068503365190670220895058460545891604067165071004899174950825521374253901975813082933623004854694669026804206150374092643124229456434625487319720749892144767673019891596910521337121230781763880773410196902439128367059616822649472466762757907473643569734451215917884384280292090701405029344659197141259511438678449815166438761205181579246018976799484880944335955494617555225413889097831352563550514239496917979187259568399121740687168727102089279120630208926978791752256844073360298405039339050744665553264178917422955378495866858634107203031077860979308376112406664432667991377396132274830172788642382315230031430882267808193888379515058952996216313429555542140350609461038430278240310154287174096783100796710998887509374928484674888244357030955722309874668159556525358973706281157027049602848317133217236354330846409455425081044416032209145026867438739963829416374877384757352796421521761448859030299090831999872625022971988081194123224037452181989643903253992319951708612496242302011242881698715850791287492014016585951381933448423076164579096265261905764883308145718567283439909674897951914870977082578237592174862678173043730623698333964873818984344600046584469679429706283096585446436332215434935749601614296493436633674400460290120511662722593050651965566922270480645847947300388377106830963872375185674539270081187736467179045785242712288234360257042274599051178743013872872605553831089701054016808647167750773765137023440231264720894610672327642414334883869293796817057123480927916173310821370234424511035398504735354277228856286850448357801329334684228871832137790675405543536321548792562788893254203150360010728975579340265592480221254876789856515726523530037416208725318233216956872899318607533033680876793461362681003138771232661314315391957080252627757548132684372353866394378036322770815433367538325423242655873552627712488945924717421320053219564106997742967632620885919040949121073764929406587050377845780883391624600908905713281712381248898941112798634182332536063133105014980462851937107462782377164675964399448860967147805013341523741541880723463298266771299004637218153069988178093337457227874558226961654028725420693254117311674034100236478783855196009060552511099837241358655542463644995832511965543343465120935556946267230931900119864668891190549338570172475261298925594255135477871307436462111967382400290436696972580980799561302369607408103268029686307566922492758688776761895428156209480484028044999799303049554936261435059692260882829220583066243670609768413113932580971830748404466274526577876010252659206445290088841532533368054501632120016003274852512249615708903959838107605463534332288977989160071179241695642675518069331512573756132195793727282054198626850713577972005312572782541692002576148870618002077692749210943653416654460932912825383206829304396241174641871722017281104577085612083950690699251559071978161322806403159086553097122344535236301194028494383756489371033857396092060562717109967524036595248845843005975772156182706296461220293192306575349270112666927695873205739271299658518899343049203516632931773817018159022871091674926700182227801648709634520201177678181857801778303067231082815488155083480599096824429788633289447344297641008210926232188245891316130883032302177931516190315557318284988297535216843401258332978879096729797891656850461753586055026468051342336693564344769061758648960626332678305789144768019499634235006081544102422725464131336762501206446919015414920401165958808336512982896252463622940352389326306650394931477302065997187506370810006128659984838941231213432508139491105752549693802676779824453797073262910491788235201680080980342669995841415167618963997750909747077663383099835582766718724293917210678543616756521779879825697692109617831432764843903576462263847378535019667784553842878566637409285555554459410081233714086753082888340960256479168781073877917214177376297856854189785298559271530455504089617538717333703724393617773220399998814532845314086763823008676120792115134073270142558673334077239244035129726282550237415454187432547827761829129475079249677519605048417414843312059946112252442755749901856343303022121484818473687922722768629165408405694839259028138138850839597478985033391345885423094960545688402862370255096036276006285554208616216316558142183546563273876164135536965712380978693567802854006323155135293391670105684067662343142403938477995661995835047079479131352387324126669504033783426654050824691424603046926709689478068244733336822200533762780173260414247600886621071199053064210680222762825575201047436036421579679845943602138176337600473663609346854380836500410296286139581182498790151222711455178304311893592137949609122631052770845009531744592381393933444673039983653079393745722103200234660213006808374133693876287387776864879515859376515562604059173375304904835271074879124956229661500308766257123310250512850415288267391318967170042701162843011225330540100660400982643223105207093839232551499317609991730931452249206846936092514419256854438495068836144759092253776065297642691112655791948619561143319917392140906020204041856362620996520275774530466766541026244031190875588686736636975173288728908163310934806917221732155369301730543967060452788252792361988052582578019515396097592439171266073403211275406587650545725285605572695764790389480768375040260418370701435919458818675241840451053109522837606698608242810896329635647126826220863206102446749179171293926194666721194467374054405459356863082724199302110713011056013197240310540992150377575763004626215453700861974301620641527502008527201794166301774709290769653435579200620908481970083430772922731328409436308508347800586606196024561957615824098337371343942820107201485023124510490125218537104497361312835409658573616404443776699084565577491133549968265497992429297815131329974772198948277140745166161342346116094436686068148669518996507601445836609792656635734997571676430334610435498763376790354545888029095809183444580206634032523238836236874429968707987881869765844124970266738918439486287146913151692321930208052246215960558308307410469255689025773073935580984511033531118966140631863670796287269928528748501018660216798311017527924570595516766160166270071597667697965774247620130041766796916338465113358539868276632880605182032866009031027731879255550648193326521933978846797269786966774901312496753260674833747383632301861433587849908489192780594833138526411068732424346764658181448812774842273636323018188885293289730888449096560323139570840575083750585151080047137236717229690660325713656977335604359070466137568824538257122712174779643013456376825670036387990821681173872329917953137934048014413753803928688652103650011937481651280556512337646225886276191790159610817411323272671160537970087478019022235467945400309743496881284120752396469887211805111776791469649582301271248409407608758862596757385893579360348169182204763918334531607046863496430136242065450896320483819128339599812822330965602707853668217303295499930336083007794355346748964201351851598142290716336115086993092689367574131639015228330156457526094408674711936185163984677870902865040666553712667820374562860144329114900552472941762495690416914538361676186713032151038569581877664625191005772855653616790886901870406898382705155566865357868515397136359560866141657619663743418082741188157923061306163420684052830421843661084925265264262013227300606313179603560330898090876912341970138049282352083414766541142497382539475180685093928566134849505023416433625557802611313405026571298440975590066774004624770565073562519903942916336877594081180285967048665756472238413490020950979720453681178562296556759722406772549621933978238524063766727395348060898116240400722457842040398068630735741870852605936094972688406536347482313488197024093033682772735379103240753089601578374163364921710365531983438199480751028137788590787508399786474852147969490279454659352411064824378354733861057146421307359185310145106132749627361983129405886550798768922379274740190310036656767759494649660505147891099108792656548367826079656548164042344386569065624307453852415485109562490621560252609168943338249222254051513162942194565145079433338978018031726476422184459498978800242472820611646843769168240208819304624117272175672668263967040740631893669052438302306413537908240036092923699565233979456956536258799346515799200297090181755134804720441105800691142237618790637350360976785151975560662706532642026394230225800110023894789722466364811807299840633201139437181698255063200294154534203986275230374760898048373830454678716813788001122365022553394530529297116937321661614067890285925633557964054821562414784363212699196690201818769991798170499557041145339508808055804035671540583651973666092114027239673985074916287285320720177557588830432442912785629877950230132747287660941062936804200128435012529326694049502815007842288073310516947619105177790785627186020508362669289095943872947817742075037428553266684765500349750813641915844823505749055216551233675742868380015104235466415072484078904313910907761777664251397415997351079038434883126271990233041214622145151772889824073089278557672328585367130441564488961138299867565192898507830001143755602354361785725338172316473721797198252781499464349600147292136457905959815972714441091172851945896402906113197973931211727094702660527732175186365711080960430252484770408944675194578541602154253926900336189530696469794340961002949924092609281023159888251973108265385869333301276465443853326740910406969056230053961427749527961907078278007709107171208230825530181524555960671212098662928592761637520502486090797551998280874272755689094437562292813671540320029639032890179548485800251739010112599610025205232228031551556526017640224487194592310278391094145706634911721604868518713783579537983589843981406770249341065706804570463175753559916632201189896311194609951419964239187888078672265286817455784364675067864174018549339448400879115132239711539369201112197716103118829484143007831967034319469801666907162716225009438281867601549651006881472245468676852296306399265287719778756729451953295009423780567131197176851059021281071716302420534873472138301117242338379342508857685800650143265844828944769629783688767279972970839010383795019846941272031450993530942015709676291248534424014101530683310625224225536177048902925700807579448071539274808557340225997323572632463582951261068885543279778334127714025329554941173820310396258855841450218633238267947639522716414199713590122132141772623068427309398359257025960611767637424734893435066655758235800576291651453794632452072111280234775878143569267210596921039497115287312780076634615043211039125008675243328109319526518406066676627199800848243847776599650971927834825913121074944978412772291193719051083114268879271122450152777831278639044649886453130715052574987740068153828487730105488125037898443187305482087475807403949661501843846971349146737041278365372597404307176185888737824870967828697639250991625426761317458408598080421913915318326128385832800970725825261260164216828928123618724387377438812060910534657014327180249262324085094363535389816404427977237453670548526618333007524519429974616686664153327135140953982115423756325639031833408425012568827263095141673205381093352058725865504379290261177120306120308911746051878007879047638019819498369115412365737703864352227063847063947958018573168708296509622736102080051489465620371078457017469290014439474645484435491153887938580688015785719884410142233345398502882617481398817399643028920986821801462215174521256408544155300274769745344546357379027228153967262532413172687517062956164227047684387262695039516299279559691884990369575178162897799783076174585770004082867045432294422986056117193700622807691870442942734528977748341118471140362904412883275416160077506875339055790060316464938698425216307703059653863107612307792942630754516653538170275197703875215954048393242684887437151455591843524602376577674663745583520693926720156905797627470665545187475801774958013723819056420318515049694757615605194305130515412842775368319425091434460631695915219631945201493355317713919877040235598140746802487592600671746376626484254971928725360797501839637982610753049251602625516874136143682996550463245509893719879409683774721683658303060494817659589844890462161175655074112811158151018596922120383387148380041381410387986805318213335099132372448122636593354360919271084985801849888706180127633668106967156720194277355949200667922352797279969572025294346961738812225656833190123662314661522567673711074571387423865544346772512340176527443953290172547302803650319937869994431558235030333816772221086834944694642658671460790836138655346145975790635185219098230297550057816948740005148846634679644325607389643297197656466045059017279942659657021513598198980698978246651860751042678517008598640771134343809329654428099320467398961559729623059297117315781156361813266733674363914163206697956290333201954830563813355444846570074571069133285851562814932773563032481173082029939846427568570629531416916236737587915453499242810721056617452036536862751937653912183982253342006001581373432240375358283000140443938513522149795017469040055812033829225968988117794317102536805475962501016344107069351063507689948558647314424527933882653626758325289902923973934696377305311467447143127849867170620976280968743559179647717715146178756363225153005088782187680465528951000866572109451723396420769980180847267201169826340285845400367621817303700972479812145556845036557691018476178070828606834427812597412172189860829326298775117538556057249778412067721730700759685851175076520878172587326335809756374529516859076545726832322004325620092464088635699184437556851498510221017689930996098620293594262403166599436418103681968209590418625107186381706853983098040904140162627524532233429633269622641803824557570622466988623536212430614626029154824927706057231572776785345187049672736820363198514008254844551537781962888630417754232781737672288222866141015502851610307694647020380420019939379293501209160689815905102822616342623906057520265227493797705051385001399047836059937534950075959875556556329037358225892742971555223597899155962330067194585127789493997330447938121964309414743770955411393914958263721982809828495384447551554673690192565137097116416736979404062262520251997922759591307751595243544391516200896750527757088881199754650892270262940421259926775474341073095489522465916547198801101637662716362562365052657997761384358201113474360348843642347229596036568824796826619737980431547185764380342685773841434146558115155111840906952192445911611512454896238686186344892601713358551609713254554396500252198362168749933333694080696434786172023944202894124917647377573028463527709414948103296793720533164029688420761000904997898695154019448203439392455063025805766015269465267631063380278331112738561822321600413107481919824041923905806252860903808503854819506920688278118521922422376335562089121123261209716861922713463224010324256284169621637058448598446059593905558196282098637270068792808588600337775191218887210116187652886325685804680114296220434608661322351398374578906774971346058910899099114854159380986103108583761880645987598477431712615206278785314055264349594671549281336449161962280111077718722950642356139896317425395661495232248703152098707418684618617522128981227742534368298184421378719899593863872858999570520438551606496453405709132941217559670203304873058292035381694635799087409476502992511187755854323751022169312575446625173756249035017094349957720875277578205988368665263910031404263956424789079862505359427123384203083069350341048673344357305703129722657778847165171101291077738298377832249024099713813500129503404421640395109969436216562851360913627778283292335080452959747725245833209043997807173408080402722036541469971563629532034308395180027552756835219486576370456649558184474285147403685772790672312106206784492468175909162135246655147986683953464153637708619569151317483980544378169431267775337375634182319788706048119521362052721999198469016786841594161428292621739638644986282269784013244947561991038252168150875363114145787328940746918273852316248043670707729073098078978725620991662898767729469042649389462636710073842718986441670586772770376314230636562726581956367766089759910025935625425986609628388580316154851999400921421082265148097335167969094456809189912888136632846678231256266452073975013965355073896586799284282601908865013870888402090205066923520807145493463159712523576854840615975578155974362622088914118831092993408610967783795530583745838841588432518294180759730679117973256945746294089906814779493214104426425897029796673760818555394096447180072572678127051665618355409114086402410648247437682227378482646261396052503649827498229446982721578437286611287920137010531212125779027740974502957170964390204196782428510816924791763414285396603099636932492000613583265803909687956202136275907359270023444003996348648896518527222445339944946018175867663132419310084870738855566251851169723552476099208875726054924460248388903767161351243608482482856480162230725124579478546386641799870082062702639574227791351300466926367519637332370591331847052266832506493204381719535626457061592399101306455203256916075677703134348546581785652954491529570265425746244318920592781654938929033773354077319628278449944893344297867510227352849559313234870197009007026460833832932222746210360023395806040983200825626522306323500124328067479399976680198942448730846986357466905461726842703037804799716503397577626663834461814122660306729802727850839791511582849167005568516851426102704510351888197222537269747008647587738488443417295432365000910521468657773713260529957124748602328715025301866829642564188583688832884326148215688168444360753422921448235373144438568006544189020195498601725393344243005052882410904850059692811414712819204742526198113585097782268979789504744126424270721775987555795360520206029278659300448997740612571200501895080716766496034181141136467354034801007495695748500748084537596673351594995848299736086494575621922603975890621426734281493293502137743920349722188257992780499009681653931379972429363733520059418586822726255640894669779506845833561692880612093821547271859239111967711035815904768042410508880410012264464649878516821755590858782503448694700136602992619640000340638460079815673550338366991716521487499695032248366025880223818422558793514200084308647986908624948677651877595170143387227155835102730271698386461869875464756399411921240536062269928532953754778436147080776042862993203189643827133079949367954197046125547617850534848635415907976276215958344584599894093367043533441521708880979041123619726108507056155993504233568154784271585575248515982143430629881242213735011676014107429172365380006898554669551596044855597792933719867673142963634111009451796006132591863758352841705634001211057402993270710262583097272309840030929741615547677409503696559574797046027518678234160217746055321942353088060831341117643010985660201366693860923512902854153075458036935017680573684023711043068679346235900828850344289167341840760380369650724787834831314400784977352021895340994266743621561795878781123937844715148265146669340749859861277576609521056685274824994022968212044853861612248581311504243932473952126598064060784125572756361202018116236235815400149470709851469403215701379053543062680405046456666729643679761923451928587730163673448548665302069324898242173027892577337949293946567851319125679709238648527020604964302756795602851557422268524721627343673576881318128986667953360568333111567077543801126377322541451778269832852235754501323371167571369063283371820684813045322876401887961787563374609050587179305776671440768028294473402291094982288804333707316093455585919470511040625026666006936110531462807701106068447286100137703098668478779814867670702460570816385262990163224062296421615885701221838233661792390234685779803601088991796153477295108432143444757426289196574951816371518273660442390446100789249548321584482597384556660161450812940783831261580481667028411131381321489546793785208863677063235387460174180608688315772213347846773940948770682574547426723550658508287039824876819964760333800241803620102628595769723070733596884898660427862877991606089716403781706255948738058290398288533394655835137348608609755164112915762660294325994748109183895983736454691944029192623286959280066933492994229118472405381436139219356295649706940459119601926329586184757734218853997018524045405447177002831307534850716824742457611992848131155293499154585457515137327222600244672167533460172976319601421213655912977207613414585988776866080442960015120010705661707266889427856739811929102867696974775010043748789935744069453675903628773947662011843186975912726864750968358585614162377653691288309226127221716134865567677264780298460651689467124753117688855311289060375273553539628235298217376227445904950847106341083733542724357346230165095415859301948565710031448232067476836261540215890197986432005721441937620149423991528089836740184423987351375311952247756423871576053769391495821879458194668094523895284130298855081390808650281419266292088474051110356606963575584606960086384307532348913178269593852142843514786752217267918026061234487028135269328191938315783991681020016332424734762061273441284413060984050919102798549219348426053241336478042747996141110679052593057836818632236917756848475600040186250802533152161732111557550386139149006145769097250798754882806419880456539282861292909386435094653052254018202135527676879337541301153042240386126413663529422758920885899231882970321328659740175376834547228679379768065738101718189649093258211569811933879606359138334800722427767212403420261148063358233313226331550360177521764632024812185600325709606519074956232685129525331485942709484242340031503404106899086448026178947496080595866415105517102034930732085987265020836936198494736119633361878989987858308224656364708613541559512438991645014983806712138231913250353254342913202309694711343119896658810486185884338565269582192613884430871694265150121237219772313336824825189157164341690121004802375006745342676617333007609453183494391339578361799464528935841456916307736453106095970807740475174288612385294446388316143020629673255953583484546506989074803774568238645044080391556756383336867967916364314052716119309759512830509416731996145876183273844720480384707386914343877746377478547044719042752103731876359524885396577863727687030752451716337037225668546652940896105152960927543992881827821480168040262986780271807990004036481041342367394159969144139809891496103082738081593635902108886121721921806391429554204675448479631484540559718388784121790842803247232954646317402827384285504275786170044682647058536799277333550759993976236155711336206803898940288094842199320013607573796746055380241000931598756165152539724720379776306947907859629108919121981583433256275213624777345669967797525032324679361239277532348313933406913613459211458193613981140150618912061005021244940686972480694077118913192644225854052138476067996916995028808720020964195770976849153400794626795429137769065729342925914933595687454031883815384018881241517337072366220525640373729391494997137059709835348466447237660462392441174009483212845286959561417322877352143264324146873053664761519411771711822505921350307385982284010979845831620295480968747220697587665397403860700538212883140996467545356572597696216677758589553609697835115236791507407014935083352148073319811732701433827043730986970125198037585485707127706265722081707570074574517068856080096774775873125688157961078429832237100064130173144334071370480402380159740600471481914093139648497466077899615999072846619987557943682797451144104815437765218338401962080581874942838370489163023941579696493564877189883866977799057286909941493060686998922054023152768868597139404069041719956017676094370056383121965775393944826139852324097001812510945652466490930286117655356398836433306434902432802531120293525100480771843925110408093944130719852313276977433430290167643478999342389431814086298756587296418907884387305302359840071090692715701750742678821768824231190171953493652299245417684263945557019467686969584244280421629411297247925194572950873043648231479248999732725948828791128879242769258487756678347869890802808414398669512672929125313199338109069423252289033517066402696632227411881181035275833863749842069204419897229751821233293159012595361616011285423700263141603624232324444875413358779173907162684045178390638413163959012705230520489333702921407929669662948374954409210593062832203902884948458665213466281010896100756242373085860953088237957571840905975220428130921473437626723950315779915845969456931047629312833777678009180610445817890223304934758033151103088592977011908753534611902626622310310548595339852074485434271760843022740527099950612947262597239548924732017670797119060859085729123555616588053818250631275379693731013128469609353144237897131825104690303404759691543869429532997153575647721770621427195542129378616224094895000590367184052013429621540696616484818908562985052694156479026932906488285132573722830764060890993222948764198720026506285142400867717179709846824693938493118922862257549202048405113080691574861766557977080197691540005283070929372827710564929958482069105591712336390558151452035192592705667308260839762898463768177439128574033848804601749861526605335618023676903796360465756668902902468348558232275425825852377312540306897676339675257857396037946749060771461375564376132060394121066190083620231070517899445295828706481380358124577820065435345699620428432858845468343677138935128540446925669098661018215406225127725529003677412439194347133155636740960181365139251996465556813127179961595466955733828106675343020170077808135266123551167262918327282809307336223527907269903565877227828020553924685823986625345793113938167448610408377739320344596906467557838428925315245229250109978151206483014511147473233538890683066229316132829890629468316474852489590547914024162380158177929774980567647575419322203846764596421943592768377491045671458112005069565936853415150953673934510240292122458617196935130793557721884311778086577798442991258851813399157163720726008278218387852423745744912177912866709665740674329029484563510259113365456815677172508289643991280729662146138712890637056985303896369487976887707219999994851915240988339411122254852166464115826934177974147380921255399414685117703828030664039331606520319547711971589953106085500640947248335808498088599073738680252358947870529305543154208945954420943404193256321105242622901155745622075217817987758328275940457397162368954874579007480649542003227577125075553946002142693728214668034748018585352235036737508414829900211552673186203277623771917354307279770633354348296663484144647400706903852077748662975353006701232560972654793881046610821815996900669770801868016291988700648604414449740073042825381328317660558666190707876261036600301776551580651054715199057574390903291843614374624314634461074913286588855244868921114305341078095581699083503331777038489611071868701148055575438939649053626007328693546437183778371541344406673303957458307481771418201311925272490032949678403805435183120568418213199694746756638917427862983106366972075841080218919845785962730509437490489776055145908833493163216734953507250810906909500134766818856835418717249806168501938466088597278426079268133828073062467483322399199889741733512629456722808691580419938052988646052867344749413653498225006070730019910335822731065323757539546818056740743625076573576683081929062284572382396333617585206453376224930886411879637468916064780063015020201759600907728130290428992806123990104508444224312312602479454256783097142155663785144286090391135273551635190933217995469657521749672549722123767933565708303304915230411800351688025856090933946107805955553415717339699959234544969772121398688840997125808987967797119695599890934568970020672832562187479918725427381277604686353490106456899879102996251838527392783672833484393188380461332033134591936997625903487947302049087108469180775705514392618750999563500389890966456361183513297191238087017633696165094106033659553494609301909628843870710467491170769193052855351503528416523497191724926466905744487607340348813821499748418882529534731975591699973808514999486954814476018797950878360054695790011029385832787953394204584638111595535462657100435210922331061803138539429620051167403910338597712746820847710369629298102996114124910844883932294837916534015106430228846198215429577070250538065891457524954762774089095767148098912507813076926417627441822630582107232378182056608926838998532647466723067264228255248381893648842541550388816688821327876004851011440276730239789378575325806154003434890469993686854265872475484361700166624101879060667712256610657964676642140032698317921953547684868776668039440483739808400255304018954938822084678923888650487061972905215293266165719435553472925441930660519560702352783792581869802589999249390321797109527384182471912798863718051716082023871988224962119132856209382657327382273981367593948863853601742455442591020550290570859847886906324513787685382906899249586873748608155044662487692379488550508886651401038342971785193425099796732786643890071139571483678319574341459252820996758993042300389288306119269691934317366306690164735603579794140695333656106822925292379727548565372380833502575063038834631158309954460947781707907630909263366755919703494469445398075909900054855001879850372261411706588589920679407525059452194765589354967657014766039587708016500732614733224488486246047960219557875014600181475144497306219237714673720955604231972942313590645701450887137005255838780878542445419264426301856003076243797591179602646555213519684538130546110179782173849814895389904100641613364560161237236231224730294291657324688036382512447924157427679793920919688131728914318939342434086954496485132100265333474747210855854355881155921208594995220238164737277543746701431742692173667529610959762527563198476577723529738465371416759719493862426452559048501250015095969353871230762940398220411389639024724829418096105371207622491470986873204327990934911479388436373256496411794468077158373088641509463360777099128482842347153534257836863276675116404914492671088206636142841798005068803594730446244102826368788938423955670737129365656248459162670678138922300535997862019308101443310774573007578581463140001458047231407848846891706451110238434539388667081051812918083157907911644987396964616108957173328236786937679548864544757636759408414065172545172981663645936855184560418458207119955335266477278524837977430170566874052291544557177577990541242205482397088094111307718750207025900251203241264451801140876156778090728282897618249472938850544674404658942104816912596916054133030059750424712093475884406643388002925593379400842103241035923454978617567330817932780612929553954808663978473644461216693949932549015471552431438262746713068453926232890467003442353365013182113024995790107967446350757862106120590824543250077631405500891628725438413697643002424954998934981054551981789182215315599695706642998945536622436009388062325738688705674380075267078578283478801381993632825047685296485884409881668321903135703993786133657476899552150017279133800439945915154543851920458002281050497168720284894580872892794345582063708427330710019442764925249055240440643270395851944799172998649216660176306607382914835637463504534337681580993286036585726605096703666975101749716207160423820921351768979852889680481468976230574818653732122090870618727295861603121669883906274020241108054197243308874034596183111335531507712756559085797818944144779865847735526204792304582474000387485610423858189814291040968348664928296406292725212440879463607187321600159174680482695005588121238079118638470624240156467214146960030743733264040678822730719010185590261026343909839169242007541354174558789709678346521222142792010204392430816108556730762342454039032897860460843533400432143481128553195205403327973871200684658204213131177390084366892634014260432359828780663150008533565228338771717558067573204793541788520494729898368232122856315556447443612775801331101842118496556917887923157746004266412767540700213818243681706722278330322923754430564079284947800953000884380860060279270730823477600065850400102850386841357183157569091370836843929931741921128925786043725700471008632271734288389156284058777277853028547069940502052333643721617342325461971173379368154504161352198553355732375952646792450492984769727726027653314060368500751553006132318273404234309902069475460992097525990960039630178258827133003185441742484294239140112171946117569838112840595202578783491917344135306098939129963775808880229088103434457168368533525078587397850393281978381036884255736546962788766449428564434199844429170348978528842381129627495166200445381897514773978145470793158496383343436835711139411361533063634390879568206305753140143303594303647003498568448964277945337400105444267860486886298481499922234103846656981254435289584773248693397967676143096995992713018678818405507738976929599854860389371304483884809920271585890442621877452168757799679332890269348005971767930652503563133286112229487142427357325201504329612825599946108865608960323820231477255708169219999442286279125466421637730842733179520241027163758560691861585476420433316701527499307446344731318049017792176145230984541876317623876805862832799826729196279904727810592502467367431462287517154511153462826256004588851987502703663912797871316149308594025959035955582191750687654624821589426303045019502897278248547046612274594160109511194518686861112004687223957175212209347594447696592442574058798068662011111657724330508176582810094288488086584185306766021165645693283613937245854332257884669575881639087256204819964064201495393607142294352862744100455911538340729680584357216914054980134419930436155611102644616667588971315042525161457019539200394769798752589426114341582971502915726686012718381215567303032197292354349575978180847625617817693151550594703692044657470008184428262446850640796663180249761525961074926443637787021247196763440605109694138208552499168419264479812173360492513745741394989817596380232790158266531617830599726993994180069590508293886661753661022564357770174001120094958534769357112676636621131208708376647588220454839086994374996871042079465125422564853660358405746728674193275645385832995421153000903239279840944929057569464486433192637272860144913650486800211704121292682023577521531241952119623686995887482357383201979399823743810552537098580661187902819415086281231695874745836682268251939240591865969597153363397729780994137890427571183393879962498019387655204468286210128496736929687691335494012586146992021729500768344102628692252912902470159618617123240616582506271268368331037217229035307091610569363969323563568233096822911145146908024781742197892831457651628410409119847342037111606346946171953830497865480938187737495127056237433826775572315352085384522794439420640572391699700876794582157333973724281836893402245519036906999373476041291633236814488626625765383938380129584158434567898800658339811821402887036002628208412236537556381627654566181808909929350037856932971493734240145230495346759686837924421528729292566808928202133978316195146161376370805597145495664706080196313185414825087830268523248638700198241868113397573446511589218530734052164645041391220400485235309900844103250343772368421407055630082917526240852834030542994800650034158860311128922931916982322159302651484481516092004478075462421406194511140576631914505834473057340483155543475631051617844996290952168912297248744828593330144182440829603808436186054799213055386713016665332826755165578001847778541244901683302330861072769062673770811690772129999923852460028913070929438895447991444266784705398431101601145229709780277009042869970125387109799515835650830675892782492829953515144359806376264320270711441378009550528932857521993175336648268643094501904665230002295040870778885182483702863189967475403141017101075265650737403931252210297499765354720387775135273248562083881534698194731771947314796734107554447972514288585402789196096001277538628951694547793475720682909010767916968367916155302935452523349627128799145792627312280922763213096664981681858225064725454895866835539398622039257068978215417513969326411303582507660064718696035154039426720414737606711435613684538405314644638553409787155020696396412643273915089222973304832264185712718862434961587155335216876828068535299415775389046455402249475228076141142148395612753727500648240833513306834534935246787446101498680199611774410864414735201381772483974379100783927403686887488558928767143879400540533775286298420473080195296747713796025269540616935267972705243926162776872438871438764686855103275853816349093775953036472537504837358096320132661110357329155577181541777046131441755339378498822957676036646312809102974453232641642396628980729340597122436595243700109590703874917967947886539552751261041256812865855491393439014623608811666068060823963394485613859713920625010939135861857564268578395166396077364717911843702533007143686661796977597743057850137192688121579279133341732448698801575183888312284965346370105213152635725846851032148177572594672308542057390229601365735924739938393462970039449149870199212913134597017702828957085851248305496884471341934501478046798817175881435817988972618532771573780821696766830535203458196783243182993854298335163833618044420476911898127842342055180884183720504153876454224028444272964510048097857632110566662553748498806490305421200074437125543939691331116055935426409969998860444602092606755332431278013647424016811817823685386928398944272602267407639659508393759334289111944125688290227967482581760510358644186129256006368612001384869031142404999756508083672178974863819933625415677076289992502981566215241816967029609207071311437921992679624388614601758498204973146953069188662033403029838265871513888041595394139274073328071924953792809638680409147616862109952346313487808238452789200723252695289758444543966289801781668438971811195968178029380269855087900348559971070336035166952628528058040015432619272584419043935514476347653828775522669401724950450907085587581474607780668841613758882702874501646065420935223101957070641034875180585557098303742619917595265796920334310684770949547902003431310574189634476520771085058635419844988487401515271721204924653267680580876889689320843891181253531860550824587872413747285939377300095820128044884551421344717999353230258954741990827712679341151558195950438379999243131953908419786478952220690717765868982622751478463739592081509004053544982571717342545797904660518419435511468859243360461648986602111899292039766857041785877177082886233483679830570571368726121899880835009046020525434939253775765953800353640462692429554046955613787126377463358355574373259583368262576726457766456344040997728525186908238967112539566146267685637030034750610041193302635194728932543439690583589050649167817297615093305683136059343427477409130309368122345644305301807878517539016309480763924107429979194479563946713068150972471879169276471149217597335276932236066376501233938054860643904327245188315746896917900533285071780737488009409829769472089836508480088080539934755389289422127045570671506266363159048814819288283458190723311712381819699252000857661771529604077862632653717693038015033968123681214419795297492594915066288475953855055172221409923637902735701822688805256567123418816881809721675255214481535833977208719633156665396219332435675030573147711302220698496586535653987841136414622169911545930055362476281214137672524622208188965938070594725032913153332300572976038049845524014323675366086012424049393800695398560781764706467963980431391328487984656518994351700352272770184057352811974552740694914383890966046285489369268873611403729682516568089702474435103185245544012364566970021533610857920726333656717205072921814434189798227667160918550727920951341714766456198869217535550015220989205361850125007278715213295072863161765332714153779906143215107366317772343210785723086222557742316756865673868114890844872563609194343239622966972445546663885583084633540554904015004321697263385832329063627106101039559050439346355687763208030106974924468346002105949826645643624660603788510650934659081909506622277788950038705812306633044257876457677587273683357449231890971010400388289978911205458407294877985258947153647673729631618918230373743483743306801224258763071523990685211375819991486478315072627793650357929803249777381817025943355879363882194300428084858682777586990324974979789105375052835372630556448860752654585193660547325475245126558085711819463209006029451850851772903794605595409409855363308437038288644209516533536197839789274743839237853781916455388522745603953328182567711883385435185234396470462856326526715365906959491495498821004772357375640889177187019813969427063200900839028864672281227559966355992163927254836892034668729852350769473037397283632022198573379593008282905701010314198120149175055866750125335901366221341372850729056550396590652759474303832407452552698446474763528432147794720599996437378633567586941588363949273916706301680828262963430492476607921170442839123696948020857047716989829124147385602145538120662713776357484539001238337025719430474459568323361032400422016007672110182143568274436143521521557985466776510575845988092916076539488196185985741441440256374894894142475349231194608348154184997761947667587504435477635600759956736012565625664569574405082103716982112178206926458180866406701233691195676791729007191646031897323915081885285635907717467166068094397867459495945202768536475146049023185753922558825376194313368960234092131427706503303784559855574392450950947128787621528725309315925022870667481357550835132656287797752050734393203167952392787801502813009336686774855533713582887263025863054070572846814355961457327193363343790342550526592661677461505031777458873569574602573810385739826251486828249431817083863908371789803554227836021803983297518452290928034741459614858916122341179117073794140061008336260093908993768535669080318073824118386395146290387088189201940750425193402437800307244963107171043849298024700065632740734878598690382941343344892528170665337772947997004872853520341507237077858737978944367667609267114820249817974156866359637012830883955045758756057835208245625048963573332407648979038037147955935477858027216636760765296986725275194937734818656331181752726296330947995755350642639494022447961991159333733309081337328181394804007372598391915825086756831845479440779628877989288596915981730731290415654113728152784874430356973158711391444082578602818036277838126786080703896697196582938704916239189559213669680991720745093949633891323745219793658589981457339863037382242521742124276609426819480732411612820963010581155826769746922080796286892883273678540206471590874335639913913311868237971735128075922706869067781388189864413935211240221814604605337766802099896620603470866631334943323933415481508290250927613339194549680234975457111040184621828878388093738793453752497844388131931948511645472301295914515521806577073949144463482424443951761453423163502944810128398272991318627334483782186797740326685856201543401166757205230271938989535376752264217781195630341168582358399207986584905888079692371408138557470268119662811991373728577385219771648598091980038845061348763154184804164918079999121831797709087825804404059958575966338857433771508400102653135282848686921568493721995521279633991743579463020121106371632207265376519199676522153952587263253578094534735836046837736122305147917912841007468525127352991545881466339123537901210546518581039161143540219382349027333505563577750531271585260082270674488614927877108156511697041067478537219213004628266280118558644284408802284370567463783315631184020089233638009030753115114841656648320968327400083656040091863362197253189426494010407781986484416708389116246964328714777345668553224611333704462161894515397238952076918841714004822679099380730814562922896462452873442258662176725222502214799740428958188538784769666903997668910676489382172095660013775566078034088264412442370069188584961634104383766941127406078580999326668084711596275831434802951358739649523205944028286214489070377125041470717404626270307924343597796005684590328210639925766387997874606880611275597372593247193294746811309006201971891122636847178769074097700288718953834590082563630755129631621337815177824435839569294824167705179157514389908253963497800164978017009308524280160814452561851283436570901694451111021026463110906496706573496150435178342892951299400765815895782239892719299008614900606192888552099665250190962721725202717453843550581868718195780967085678458874815976867489437910754795863943873244425721865116958801249533509073006280321277476759512758322951677702757300462276184761138560372370885359373096686578223612597946156985194995637293305593084467255358923940384535257048098163436070234928141635048402490357735923371512822842589677088930787176674105801366325299174047269391529455300184838337239067960900243127150826531132331743851625160662870848876908205326439496379072951644904274394154487531074661362827174138451932808177933681266531374913250516369767410130976502325552278066326343497824552335230126345285145247668376628020144357221128284982736428513975720433425576127939197556559290711643879220852733379644521525718144224138772143643612182735690609293982444672196965590192180931980696864954409080109909354840348746942400882872717048535644058660581252450969817228092506990046304185036956570169152935558592936735577634025427910011268077071806925561224421980071854508591867068012576850018807659221202733802526247192318556832093034160856867803215406248008139590506482535312482163208462028478306285192398689065516670306789902278112820704178650961187754534210693555200224984239491827604901411616868650992580053540518552983989634359704967726035393649924235171871079423347386761178496350814655841967142828630201059413076993167650994378355065202687425718065428485989804481763878074196316598561399598083282524208636943068570761068047062451033427135324233220951778715468652823846003901993263646791554914966305651870159326942671314081978959479451456264539749463276275233529620378332634808814740032924287798194699020172743578708764152101507952376995855736581308680195199044538619137996511881183624873790622245020068994709704213552166537695064621809971221154086249340482311837949797766010861205297158649932056193239068675996030623502352130959799146672182002624804684631291568640187190858092471461314109043759296581167068918507237190860748349922627523940906794854679959818872714274463442800374208016338982653217191562067854295613794240429475102521583696469603616366329388693247604178720947017209498213484760773198767429891240036731610877415925413863538124701519454181070422026758220464985437724184361182711405498913245540032567862702256572389993122551986233496674628122557372246557148068084425148899555158440589750755035151743920100337954990777753021631590860761178994110585984832465343298028214133160285331041171962069913642900439171007940999068012213696088125146737267550848403435366884691809670032281980526381796718795142534704422826245889038492019763673764378496683773329222150891286024555998418900885424815348927747094445251812438975720976670898966788852115447367081822565531917418607826282436837086718564678654802767779090952464613706442059418037975083183025150330068647176582206734347201486343574752575389913238313176441749055941381478637681869420355619972209049279203713065805511579924442270315046770293012118402436573745568802788237110189943830431207381285950270304510364813632565638639769330891214578017714246511958520293732883400613431411200874680433410260129187465545879563909895969292442469774306361487038999125157307146113509750591877786220883242760745104280433319434907575239024452689020605864505578795989476853155202465120847212811234507003914265285973415334123632403414557660317075246115873395545298377161036644337166406582207545865933106743398903668815831628211436456792462815252852177092979471389747795798506396464317553246025259574460219863778545562158919782601829493812560735347618551939421335809876538857922969177512049711117955663679489793199893003791475326114201876228132134543334628978769333164745323280894479859834870856447069683346199986570184162435857512725503580770133588405473737351839719111264426498629951853126752556783682077644191638538937949409244184965018182589965695697886837244380808090638281493475784809385440819053742691192617337879049177509859012042810181022143509800895643815272460468729405936302224832098252482667823128854989653013952707492310991034060350181557692938965589675137382709526926575250471708810321572197429664460112115522287304913289142384406487893679266767193295794712089534712062694963831502263388520282556161788164966383137624986398569712867918024200162117770567408351608038056700643333815585358868714338162012017815082150229695636981799133117737253878372990950405875978815160625452963937188135073180997935504554398424458672476087269520368661554626416334962830596112404481509826970101039461254313344944579649111801955974475367949680573547517790604891740596093802381042290584504796175382965130366309514839877340510353415386802337460460756812829217069972073665830354755248592994986851506008749563791143752787273072793311484929723048999760658901090315827410142752259786820950456591632312022151231299046814136605923054094301587327817188495543096535000395311628438093816840900066098339231950288232279695451341157543648132119396762537725718192931213719924036052061815038906810127282021659324731468025876336367065291070350406565998806348646844516423654927012474373980254447247518012806129797467440374560846164238671524965716136911809303923067621804481777311636236535311376066487559000175708324334239335576741598281971074661657847680174328763652250830466077104481256515126702694891358297258293307280469167925258727614884537843272759295750868020658501533235354236664387576165625114195718012811018381310176900526505776779256275344974396775474746010750547966975977809058145758207444585060615283805618156985706396107914250004975832095853626180500216151462486030232036126281455827247097655115014999606435150503797188781188272099792561903757714408995897798674108271451712930314222237944422104196812894550366433273916049069468574091118422171145155672168733527088514234338429374856647756465582471456298420771101769754930507202083675022348321435125490040587952094091991261381648534416461727196031332687703884872436108828260099899691140500141297589498443478288929625045693525022321777621560486400826767766479416089893230337503147527312124110473961143413981364352654111776984156073361866106057382408520581783500631686835702699340575846005596676913918039310148251444198151859859298473672661665184494688970823091774064481964507340417097201128452008052544279429364818705835623234457636590280053336284142964015618421273111827431291786034048558310802749353376274549950237669145736727161872982379056184185547571469041834333578525867854547978420691582330755941069337162199772100235514617020843269953599716189025858342745535806048110862717578819148439953448903364754906699950029257191663356346629627695714984605654527959052823224316734596919709958772255348552335449973338098548395466040349170652836026792040427557671412392465142682459450730182985149201530050643326703628467419196657579422428232936292352643238744934183428821663936607118151098290053835007840689417726273538173198193809054040621034316591882669410086038688373280883803281253554442914652727730291021853772221746510723360032898585091498767013627152183316449786781498716582061965324208189582143914124917109732756034017824883606768718155690909806584967105176127595998703714195899674333213292428405517597343491634584504749387959511308871687159660389765432367506421607720439162638152600439950851900287563314512838569341003335746725178260962672927070246471910346696803444926931946683702355245857052504812328955337236418051702046637135166906905226925024051218305210035419052054470185191102625621687048492451066526496698165498594245596693856838189310788410530613653915301131471665822450910000693644593260918868543745376865916148608243509512762806386314996083234208652792201028462872309933804354830128672065162512860373972780726019212532678289107379437328172793345152830421406022151386646465422623580376417154946628243696355483638533646476521839130173541725843972209963219500221799236667709718506473976451604688600543840914277262075029055160010907963499038153323256964676359533971195296208174966523949837460170674560654996843448060017369763393753817362193887317090852015981302171035528873452702874087771041462405008749692929978239300607806456153903414925685638848382017512251691171665576365484071900213899450711473574340008190055749945109101856041052384566139126329269621672949038396037191143582693409704935156002610663902632475296314383372619044476152389080947219309513475879546259022595009282199927806394497487782345682316639120711541449455937638508647719650179908074522825568207945566948322328625243702689559270767870586228706207241938726920777558820017085133452977242067950841590368824920618748882736906614481184596246164067614597900350797641818781666495792266310090277776110676522339951693462212283300272482217906430999790152226218818256700727329092798079767731127504346574234045808637380254633599655073778762503926778883008626926956075273626308659804862236969655392719793909447816998268248333635370150654993147576300215731229136639323626050625519727978218799383308079107299677675714751595207592829315480067710724034335684116402552470675579501404348895957842907573673460123935996858491692018938747964723967760908260164389260324225082341681532206409099450554639064220782660388576383106739719476856529423026202752529020702008119100427977005395174077610193009229393293467292666346351038030751576697158668681038823548187330430710430909693361982749103137533913084200720916644962816687503373809514570171020674462794225813433961058738393033024896924193133592624358076748784460731469242689324716421680673458936594284262746682877534109795695300961464991765503924350931003825808431754479008289370897003152690230129636008474488838869387931246568460737246759877951854125218071650390349827070194900989351389906570534553976480482721229585569082151992102833375460101076213590494420376368944207731449521167187615317528739997070963746857264895166762086228056193933860857942506181134988590244141042786417512396483899923575346728397741662386217212741792000595264233758295278495272685208026212219855914804923084798553848470178014160681962866400979272980224372992104999502149779601558859570149456975380212808184346480222686491537253758785413434765888937515342914786532155257303773496429310382002754827232869597162571977403694086445052273280014616641088079897408664083940480998391393329741844703423046692887992716602539446249241279181525534907389942796321035552133963230058178315239907110693459739869264953121967213594646157481737931259605482949302899892241537736503622342857535208098850282010138327462980471129560764568749884310533573605197847912962078506435387840767714854940794683010198234946826899135552902670714612556904363059095350754410467254973246907208241815666291413947509511527245221588167639305254525898178220161502391014523418811703390893297615178100663010166455501612451414528013416495331480245254277165644136168717347877037925682392352566530035624639779986158601663944917643367212881609467984076991210992221189629146463722657591259230904545575741566801683203993520731857290806096018184637104692027059825171920755904799104152004893509734094713413041585388127202654612945817790512238934425294063739713276531979208191025861407629506058909476495587807824560700742364273193461973026890685097343189875375133142870763675210735781767201065852331292676173771742528086273001381841027678703517473919921150796157934641710370854366598494581378726092242491846213244178680878681913450734516456839727066025422973670632654902167267041923296185451859380817115411321779787291501416153975893915919016697502241446998189939859956354006409798801904028599278487699486624054930512813039985244274807345609425361367160516037551379109793015810507450592992817723216698722580366954915904947068216281837041536672203216726705343632762523927534650267260363452457978399234763087118662927810628152926301858443812404570557580265955148725534587261775005729997792786933638354702739905199671452249562669513090661230225456873181030393223774480143936527672210406519292328947076777413329909607838839869958307448045228144464530251594247146258078037067641119681142539398602924885501101399549013119465962065224230326764475799263328379551340638577517226759432967605815065720228400759595212889651265177251723957719387374151994689613988462870294250938508808795734673364215439017146238265297936391189042888927586404822254169991482337102551309001114434273083277289397436222960246561436638095972943953229243572711636990006382114938240212907557211282828324220059954184856333458053629438993653599458595138813880214751967366537033404556252584581701186653585912765794419626444295243483608582850291058013903445134426616286159662786897668771375839318783054715337995735372865702029739418595545799831732484129013178954118269712666789776448947267026432838248468105092353032118339847526697938575880373970260835274190744142493179905632316648942348642265999082704770066202528142281822841144824538079989569348112625078326906633873962304208909997521303390571648440825476570090153813605076174320027656960265124267806050484273967346975591718444309752156513967180726016117892927304859526414142295627651955833662676676584745431164597128201202296983972964829526081661828937836991283022782744903277523626361822909472932998430439166112263072333204751829626095915557294856555460270983243178189707448087933283922287762922670656467928780770563532401097146335649111669941302652567313208380074870864205341882113255558313453224337833629997734539540717280187829192845116916804294441760824379354833091572623866851258224044239162896551166606597183270913208549862189427796694995671929913159334552730032397946704132879073758450314299359099735563221480807004384574394389546588284780296409653248796589693647809421550595398800202235006419352939475870212465970142471600015948668337595823202637297864245071103494656066084721072831413059652064530846673023075027012904985794478428561237796026588012121940996603113358990885166736807693066811447735589608816435802666212246373131458754275941626690768461969649152328050299886547669233122186930454316972194586814960225192582759299954963839715731318315145159278969186067891347434432397751289377547133455489843154460620468623165089335040491790214242263914869398554742093020661165781241089056485039923522574696734590405946099376675801917550400974225102967358524551312048808439776953827346530900513911170306551932795485896780642847796057601709668754875262786553163431452145794121542341175172616579567675075662018638008435336664208720954053603574658449347296757449868049219768602184338976025769976915183892379458030192548451987476477628478034897121301518835332790105237051600399573659254641671117103599137535822599323436760570252398523254046715063515181360627853998115100703465900077472243165105382876340512803033008804920042452796808140968051823446486414135243131074827897914788179806504500618830766683355407334228663346931707365124727805639851931144166410338878305545803336174979392613554142902601929357615305936726526355278030401284489160978088782732680310261241705534781486781124436436449631233304643198279912156613459269127177582446235917453048373405460995090914275210596630028667929139463764937205787290176821806612812864795901756022778622337200616173034004499443506597824486971130115460989103821728245882435425430573483631442686578206475360123696774025572154208497368991065218991043925392426475456651068508054094974931668748042960771110436664800298162555406410253998821639708116274600292409084277284592359181732812432534429006786575146069777079565627090184919282299246816356787913864731991592937810161431355223148839921929901619365303049320526818330945992103481539882405643886865911110104675251682702228689970126859204301047087522510356420825926223205255345587617170051605647543031755140679870799347626531383410063046344196076610615672064277720962213604607247303288351090513585807363218413271820757989047615020968469711291932253491279660274684719002497726819013944578563837859719192872125473839261790705573189392181788638669198894173122205221412552220857975107440131063260060114888868328822835583274072480018412244339640952060943807048665252467344508188442477606657060827982797524227654138622929406339766683252901903194420016481951435553379741549293761632723331084450849253092944934529470135533456937230102750763476738487271804398958840593204064886775651603354428042050807271575005771345598751685467376620141846873631817961814761317471249153565028871455099431820672362161083641530578110721493351979022098871765826385307141541182956663688864671500002511016218506638103746761062188801708651801199496165375107921213783726354263729346621006454433923139203733288702162198651855748684913385553913214539139601587066788578315159035710794229457060104618711085415950565353772831791452597638227145592900040745296342215818876627821397436446725865970762099241614289995976583533071968675417154236926466383023865248038258807362561361282003193208295972269287119555161109203315013044242579299251322724262805935467557403588386281064418670270331852085670682378323836381232279497957318730506818897793826729635421687287676150105061838882846583174366112603930259401248301137138058695356055478808784110026174979300669743570493826631557873300609865644179495954186649194139332817603923572713884319407506268429004765732795750838731823690102626055959956028217005421340452515961121165580538262933504374255541164429997375715311335140539406451830136392022728735713215773375413660037072742250091764501105467574043903824523450363725709773168137429341727243967414938339536760453129285023225166255246359888088837861084484095811489782466917728879768662702793336223238380325373544244372595131334007858704375106969089837310885719587036083449486152911913234188550784932665967525261893245150884110281252933747016743164395402531692284785985158952421846411023886748226434460929547097158907222443183626209495172488031705759791604738352299552984601679243727252311978219863145840119745118522313564843268960630835162422449875783293653042226374175231417527561276103999778295534472731853387567159868524589948777041224802666085950147859595124577536746850836128730220608095774119599623328842473665456245549802817977035905648722736354412475824459174015816265714223857803483059700492249938165269055406765208598301611601733525482491793045559317460467646277894937039463140470218131762514636731590430689568061926536667894314250781117936110285667311704667701201350507254291519646113029554796955295373671255128833198780283004981089356179410137121904784819461384214578849562843262455912333499812588243674411934091089988622058556808117379619981885913174931416062330345362065609931588722274832929696050209027742217070243969020863806421731277489227914509762046972794981014450264580516305785298622822707560201362098858936591127699919083632228624307144531550303616117685374135815676865506091391579494791351021440797146143353097782448195111819686674811238918992565282687592592673791951091513202457088945755370753145546716771508688739955147204303652469447299440135631685752089917154735334119407011494785441610532582125345933977133186730350979206888129940385902955674305649987816503497620205909135255848873474327031682676959955066142080181042118416563827546217444185234308948090017964764405603074688734495427853102371834185130383580246593391094355208535133433195517098570173574556226110871622051601133369664132875006970778834640804104359130840063891182139926905953825798117334006815390713908122450351031216191903458093011833340756531057131154188713416402191247248805652274091826199387383214138484588483504963984138935308610245363166415038237522177478943366680612553294456263127216362225483293352375533175240452579370919041490059038632045835361721286743306024576311667314655153609894541926227901212850244804708584553887775442760896270589682121623691858794567468785196776971856074570802455382817629993755970166451033206635003629493656365776302476062669591348940923279696651467170979324258484115469084404442366226104075177244355181069965958143782885652062552699442693180609542733741347108970571633028857130092815835903541223098581157311598177737545128899180370709714657891489936861643022069087560980510885742926784166479764739565406565731427561212646046247848395672513853112780873723023549145653784238086940009378159110710331479723533219106105013633499364083912879848516618559019353783160780769576934276595840762003655652899013658337566159115488352254497342277880245909157115802666746108193148642015639249352977191336433635312491505917611273111890183016571442411960853595368206814426265512467732581730358761897751055884845384352569617237699262926186829876623642552261174541793177147229194586291557286810573190075617252759607132764349924566339207445005658966424355341310508778580328580593159585783516654526351877190536483434204059329580039508000606959818725167429395791751720661013377091225110497407296837110174139580308064341639470980302840905581596449880502642083515896214545526074621814679160104265734306841356426602963107405050010998870944137195807458326328199701037623243221052272228675217685390997725875666405257347564285723549507129232158787925263026597793782529609177665982938812136864350576087152252345585598316983686419681771949214803407874298900151595180759515035884059121862542247790659298870040919251640330513444165423743071759584847151986159471143994840580059109677885863712181712470825181992817777646549001570551228529368090582833500545835081092837486825745081355306631307136073655891131203188529075960661100765122019240015226182270825627567729596216248443129260894473260375986275732437057479650704717580625500844600528980111797258582327294370083648854557373873302009261637605465995216852460830657309925782034904533541746969767300213340849846971842222743672498841414572675536455091873068911167549890708966644494728390125067708225643412458339283186704963098918703184821950170348238167952964204951120137467212720608301181717549664997077953740375970395936101067248708786201851260253533387045094774872768067016689612238657828187131692179752558923449772488944322865868373161330184237899155101384155280503370248413661859840601927902476722885872372274922910226333336364016563142950765373872469227062560476972632485146254288007809189803892010866503051050695577704366901350096603401574418030858536473112073600974450928196040804247035018350609150236400807227904949373503826981861373611888829216219894625848698536207446818835455706527817059941463506686620625990225995622742232065824857153144681972890338317821507847081638891184757120293862243393100766394420136818841980017086579290784524476761801061757283013816261528068495791271697416709453169111762316843217666885837561730494115719085215899873614589267683301644500689058177174240368691541670154365669480450320569950864202798009732705853800586705197870805637038016238515765207509532566410256445283315885388217664490667540158430800720415167597382396475495006954982490443747818419851206588015253687889904330517626431663735505831655600510058106279068527661462501289854783178763100387416910559602004060137616706367447175536276211326503609317445518648264429695854053031535191626090956067489479399815390494701544256675212433769702004178071536108118585577769334326592598244222672342216650412054523493279582104303949530293618808927252628701400488374048290451102653395316096283525979442019953057814617846117415512302324965414217190104798956261667658895116233017780486816367031883123561190972889833856217032075601115329101283760654053398246741755302631564392598260424563046145252238490944168044166546888026846165462152839163494901358343980376944626469664141996220796619433918422681828531820089009070822910062051982839600398859024047750970977762677467627059758107204252299022439125830983581982081067606807532184806888949631010449107001433661688835268864595440540383210277389382942397999782704238921895615016249507749159966850606330865795249737842060067530805165507984913143596782399613201359239125533629116389258903037372617788637624783443227447194989659118562849887426235914868333642904810195167072412490069175385102313778004070978840984896372393588758820139185167740632737636193357484757485518404001604767514183771376792690919967529204023973697398277069286155702498409028062234904375190145399753523463202051663471337775612717201266706839405626233683613407367656939610863614403862431122147256547243066914495606780357906781169392610936470605378019720548965937545691847748944268624171522499235961659825067764308693418177459539852031408078556021858310450036470832056540763220124328595474078087362656215344317248467448817880847026604070479846125026324829846979288022796782774377719715850061106839439306056070122793432582602392406187161076195708930308724756147599617453324231182834000854167293675350783919268744418193593352547623419127775198038518525608712349912786704553180567362018374330307366860259265968605241320087842415373403669673082835282040324962108252589615391090165868492982594614206573474316472774248207043258753001102465109707116544343559775195991875382213844188266341456895414340423487396637064446921338485164822862146394454980392904047060742709537637271176702819053993878688970089110160292797384079501328476534146097618026227004814208705434581781044324723073277890362439714342376859379860704104210866482723248504643539744191691905423527782622523673925202846255239294109633809720861907624795849856677440871836976570946620431343023347088554520197410130461494930899578891613773637123240101463873790521845866587826275184769070304543241522440135896661331394699372513839539029777199175753682048921621199293433105966889161364633807894245866330743305594699175210422236479742557145732187696345445964203271813632477202311461108643735335896044648837305771537383768925324904557315887834409606863144745400152296675862242848212189296395745410013791709276771141979921520586986930962356314712989723167228205935288252896693329987270776363019362251578082117915294677958510820779576920456619156299839358954029825784624859059820545580106661135152259764597460571179867632175616327756028696902247450246787645386834053268068408713788767880923700700037167992175485882682542958304616043078399287451420822864202331468354928602060411200268372163428071866143724520621852134898006771699936371584831415995961095676067124407950531753551818320293782662915385596440574708436734245522657545675100890230617891939705412961143094481556758612790747876796263159089872868183626052297336520458043835350001527659540094826235690767241466682422339220018594705437620428422769524826113345759504528900290336904480395702632532778120221968756814788235997913368511562293211075819644111989212494304646380942273449955580684067179550457592095673798036500234903524153925373379891801308550342765136651743805360722057739319412207821575734550464643482289876858365050372169920240121914524775487950509468145390133417446386353278991050403450908160422964129275630235959343671411718366215730612177356586881564494109375100444261888570785088464965153012614436705530443131628803467834135908016896539457803573780817548922843507583872080248280633768890109946381343303778451276778267386116557296375437738907602510238158725767939703726853560414558971135588587054849691240429079335383301154015406167724979650793158703522701069842577069931426576222916363747842060621368927052649561699244430775780972122695017204988723551333552948234836065829920272839302771454173872454512544639509602373376788050988553783236511815788835934434327321182900767305119097437126852084765626615391301756887188480944541305728469175779244897541177342536529949205609836059645923520300496503026141353257808520994761646998790000050589193916228448122658377630517569394513261065150923411625051971244491748294651312061480952456564217901949539340512477612261488511231573720389525738077431638755376930245968810513823411991030832932344670077294427225868731463600850802714344027012989845764259618566479478822766556263525016480594551099206486005012066405956513893795035653634955286426476105414835621039145799511160932560113617521585635127437180898808473427016405373879404481402027777524405398991733655891849160682966733903165962327737804049057847734468680358501753966879023917063673472747793112306065609678504372704756584457413489534095834133877642801430676173519629305192047447749757358163965660380868807631021076274249453006333416015694593137966891752445200031859918000366800674914430192093017699572519965130583123977137370002617458493509210834522470682270177099871997270296676968296786602185212516388465634132744729319605084494233235055197802041165905199633417933365738411007276800159315201175695745157817110166654892813254401257367057671887364613044165443137795086111919854636689941078708156563435996332299544642675536682075249937119538716018824136486707248649946032221614490376121760280523265269761667376648637776848686692892098430945106274072141817075981967800108176002902092796825810662774317797479228316060215579522115428543815884324450611443845308433568184130384092920095127903299516493564646851154867206876404708391640369638240943098352728390537690036112346844714003309133715488945932319889350884947767579104423320522984127435592434598822636669988941093768079576898456888087811750968603882020590812764784486543376487625071958719141991643494103346423873846994315357057405413469109875344396592215065525884167131685059444280614169313989563107458050088050539044923253884558195495420777395841195800184132336860595504705090386011271940350917759986804786498923071713743542560391361617276884552253785678788997653461185430813570935471142977130900334753417295273985078250176700029803438769836686305221280370681735102496934090745625172088451760699979770175365851545233697926411968362989803521228959405082193258491911922961616607233592608954678653485229809983163999983183534126346336142862240726671873164681531928492622152073607521306753778317351182877119092936122770490476346834016906221380085958250975770710959157311364527118994366494403609755789599266031053584376972470229809212764956056869863166122219380172147338261981277946099727642561510232238525758214247098263890023570716837662320619428590009649873631983488615286781411412848419466249998599983522390347255485948889048463494221796774185681695748884250054051821901793235201937005995664207887526535582554057834211849896291466033277438237534538692990764733321599447988625435456741964677844188635636665342612530294918277840254111578254807270487342735027786219777896569843827969342678851162328092294960156179749386794493098173849162776712001867079593905282500222232302142492685609955256896032223925546853628079675163030720736402268480551645514077275893569505929854389980816899782177060887718943843675114741836365043236370687503983533204581562247090539390762731259560222782253814628364790304895542514645777608291636816141589518857355415754622169226936832304424808301997904596573139512697475497068574327053467015396299299768833947850235507193196167937284884539197891129238400654782042839485744203243429442886633824842967197354271095040483562808949554396551568501272212519240606639435238657758551399481232658203050914042348337472013990566217170287569338831621879496572797597850560864020746495911106754016930251534652585051787966462885280229644246302048211467387613745240201231923052157132742769625959129613890599750487409333774829357347631719718759817717170950033104002766785784846334008996930382141811888561762907255037824882337383056294610835365313737511770670238205581980064898811703366242621677649973193401981113969143439030756820296840200175749022625073561784184855371919819747019443778090567698670491418933343440804335197170662867572775524751844647392139655685087618934932199402451638871162187476098488936370598152753847097281900509188643365196194874668829372999116367333633359306215473708841616488298303547007549721845142517202714006563903768212353447774453032373068007536640587159098025859595275473164394993594916627911173692315355234889328928715498170527110894498461799412417801144803058877585661434325709755626763786549548654070206262840105772170484873886216790184970782708850748319120332907592852956863104144060950003894409604765896838261945297076994569092211294178329973758814953642796776421990852251885393109647541332113507343974487726108530069434267250524401294800077050923024241041831644303037127982995292159441636258153230856802224592452381443846457668628548007870259694846248808657360578096012618066898629843268789414854578506803168856642132820448832847342956680302665764064409260559813395202792688755452855075517623809887991152630280121996431278773703351389318483275965705572289397420961836111145587710317157014447381824199239376831705993452906756362278219987466983231030797940318592624461472018576777348179073912310947210041268411122903242820928453756881503541403656207997762140195263355188012318254808150838088647533217151058419218827267441763885986355277563972753017154865243106256902516754360139313614154548840433792977672075624802149358126654158921136745947400087894812492892285625207189769838854372808349374567318872808949699813128343434896197541090222559627276497859077125847584477263679993976006474747174722993721243505852931691706547518573840918032847904059749431358072285413458026845678013329733293417395553365816621953446417871863448375948727288356404718115064323138539896855327941164609970507009460382457726335845977697032555992810941414861154457345320547162329878883146272863416394041828692502722128581308001020510678701382774090003210651257874783082062563144444603860098750912229455957147396821510268055060944870327392135945677623290257059529781848380672449956986154010097548004025751372195941831201786947418631140565120624968669609408786431662360479127568632131592345011540116560155747393307384149291544269926691784476437698758848949421468572692919987473736482260823267541622992258413137496391887790043594680377055955512717276466020328791736991213590109822788357165242946650952732704908270187837304846989867284736888179850981783402459275932205875396315836532083562983015772574002624552645632531599603480043864884606284932672404754018779345383445663052418014366693540848500117572292045749397884852162649344675675548851807455190352895709989881262150956075369404335009999026643236424508116842428563328584758111421380468192641123214412552321247341609165500232096036866034710159795944242272607748982510271172876743086500293958849835296187840737824070243288623203811873566197677463915702835985739861104966688769908721498993955451743757145051183890416177240354099064683079061051889170527214106609537981309718401412235009916207434402790251746297165359129870696279132037678260544941632701299043228397262115778825243943834279407321441543216483199028348709110194505773538601647612678791874509361850467178141074986667269735835038334963512834257807775549485029706677883003462110169781599029237402604303082439914963948897666935384524507485337202017572991460455398104210220535396763714879696178465210950509847349826845247246830822507441047950453686469580493404013597828940835748614748152232374425605151874380430029078508840444812912141802817594071268461227711022615337422087377774824301224073541941453029872563762068931786529369378510104116426275901047958683005603290725655249530050670116987793417819596123211867072251381901606269151815242245458926431261403978830179447241539757729226363256917931511500477008587286375785976349910023114872493762757219595944884173531570640706198309370743213050054011725352400949827130695784584114047274073556211463897984356315941394122283743439647939119961612182220150675767968859036772321526086445469214277378806248937982000100995876311593899079944605057071289224665731033824145572746247452081911060848744894019090347551111985489940935760767790538572143441827420736940341237000728208392228381901483100947963347543460042720164555721067741902989087040998600511137521503777390372385076777349516304360259898459460531337006604139358521292906032856686867260351326859066016799104105920518579829303251605908076351663850408106908633228622018704968690295186503280288715217060383067988234825254299725735826769637597950665689065375070520229903038235393840528866724720293063854071618140169683056652271793014639889442118750323949649327235207585344683753874250314337827029433400747800194302468242889214388411855939345279731637396730957243038648426657117580604665829241310821923896675604637391799122663019977553998438830070688098114578937374863693006955073189167423446570597189531984962095221163812937574089815249653023082047551258388731966395406116094035467908314056097824201458734457755505792441972142648732883032336257750650948203455217256924845307617338734290676884858638810069604116642965768269640901172820728815834694133996672305039260523038594928024674066119722407304574245409340429238095325677387311813715432274022200120318105898005504354714125421885175074709679373736838771018082795504353400017615021938475835437392429071517532809780979481217239844936413141153981306889186619686900942140225806071480362695590070487873586331464714158930532410550256604259975589527284536175911387573465552187407306760621131156533121327587029646026117421690978381745884133298849915125724297108408357895078642846693129370881039025815936456145916720717501725011457525391528819656044535703078973671543626555906014604592326957393155146399760254255341627800090288402104567772859293116520549218052610605316260660877582097396764172134956621449866094939566948905388614092351115434620956228362975210752610784402814323669201890930474129353073731353908985789558757546052692814807589150936524073567348956416689167451955551067225847618639058652673617687357819015459920651271408475157448068117889273923772295859401954597182860302838191589826213744088203028858550449908838742765036081897285152278059844799513360657941007878498909126145092898794005289110441161381434235464503355083700383413838045914838874285436545507564726559447571502639969146433242637805095382462118380405295288455473522446325217800434600710133769979520091716655888841584078351883914700523142088689886781139768613137905002365327957233608695730589767071378535042004749310821101781162042696095947422151271935084532660087692862611588073203780985339468779590325083658812171134713535478786413649902023087293875276944892292937451067636438145325085438721467010341550841504775886285628682014935504975612822136421723177741398959016174271557528166804618124411417686581354510525049425751780635866749595803227321524797217428188414710236678607845851078528841657276053447559315143963991146373796152561923414614216976697585563536914852723049877142194908324689369982220150060468602676412190998621955186470443598175400962247337761331346559299849996465213413027107401112168140571243282468016422347396132743299355819390101297247060146053205126304693131100915460161100568763635055880397607413575517037020044645526319703745257406026207179238272803702483839700784725610879688091549500601606397939291548043625701330154714656502058337395361035891627380860113741871491198313946090492145132834922726155571739087392285546860532258501005661051860984989247897963931145507179083656835591921328607735062105322408772994315806796556531174188868800379995161426011417298788825196018423986182273251125966910904793837778497192944787504070976953532355453581456643265038780714351972865293178726081385379777704707963031332568004974874456559140894689956585199471759850373333463711494906578612711274760579628155294200617178316943901336757759887482185365741038384421485048940756453165086660213167889832475606108659501668776718120089384292641308281138137502510603396346939330904885064383302548437890354672269637128840057382024187403009477714150372563712803338618112780122985452916165371740919177713622529076364660896274373554331630193607749216558955551188124660548185079680335706603432430626579577242651834443211903358322869812661350849912040005549323109859828577439740925647558265807981179460932104357510527349535185953227320188470825272300036383153587238173598721361524496238198455936118076439770114161635818690351393963633526310057805099137666534459642942148390257383738448556258589789815748426105638031000105530900274515753594959339283431297748268267137552397953572893129116219606241225352195958857157336817383834827269103741974529126924611938766751868308139489648031110999669932577449881804233463149874518642097681213408380004945389993805848589814435954550946217291212312764266268096139083280134507947940874501570153565159863938753955250599106118715461914994993067756418261705558612046117424665376660065129881910967868516232743246890091402430036536757589281661509446327871663825719435292887456872915478251320123624587036729768606333764236279754410475773424507643780809546700195714809228233497994701816697826902852335069786227189226664487454008491414453793184740378922376561474239210812992164424384348895106148029552559801453179504787709052873562895495133029359316975756542698167688929837113185280883618638964584835918706825291842119213348599310851179507170034931602420083489309789480967086576690341324648513496752254383602836791165939780491565646645996170574392482465053551623409933734928394944356374597028595323300935430225841555606890834261508312600195341015043930688433216345924147722637807682926877647493874630466993058934454211214564760800819811921876037458201245054375078403248828401577873057940580117736753654920755684675719321883538610536224703269372501046046299104993203138921326913268823149596687114518087885482309030943101504524873766272559999570851753093040443092370148683423902442625898794595912704147000268084519532970626017058209882238629993563357448192143602640880916632537148289024002615735407669676946386256125194289970364709253096062893759032851927704558502763745651645541854968345124123956365188450171233550087044096027812125860258136028107278728244989870755768470119304528999182099311029120448084288955536573818128910148246200466195895693548790715464417109953259328026983024174808068987988894867734657286545152608233791534645328133656278960706527316647194127639129870034879037137758641191428221202869257524213576914899236478519103982629935953129111853277932642827986335691201272657900661816853571266721232609967230864078602453392553449898150755886475757726184036359762887365676495685579852536411325501116397262429212327938017710088591528007142242185991841235189665181693238609248591131423117103487927544853339928977123392349014766208652718755587614226035224849255288852060508535714183268172918244165962233477335209558394878585049633936111320836821811969293658729408357487954220565931223891773975796788572960206498914181388474400126063105957333056640238700340364595768331290012518899068621655942256235003425873093834269739109592526979087245325862855006744315220472788994032568495699713632637229462955812749538055887864646948789491882371254128602726639964912273562984565277175693340316322705438563609082713345010895226518729481727178538381430979372494318583464456490430576740459892661873555841173441859484562795598365335326567253201652004790759634084117019399774274949820783125162072623662861580962900137877762955838709333326666326838780324118806711462239423239861543688111539171015955337967937353039736624953862880351449682355545247925074655897493484215016487761868517804616533955698701482292590350439424343229682017909665356676709484392276574112270504708768921072571458199738291735819772986942355809674644170636877531874655047219410907822878152783742705618751837888523339779328406930142954637218228311235880776364706625419119720641978125855705732615567992682867826055826639376136421886794525126310500300223387921902400212707962796381214986816003408168252847854094249341845081058253065604053658847977679069569365234681041157930991473704091932380945718797538489829733976497668744288827644837509016402077533688435039011663894660904860184119377313629408027833246922359496815693604836637850938215713430583764734812402584807673072822263305052111150886401142973198751493428919016567651638326056289220943467524505872315315151902648513911898171422810195560698688206455244210041634310119577941554499185727882247811276750942760275676147031508734797765870981152538939107931048306514218712025801950138197345590048461762425204045494067250535782583639679439899671785106688400690911086822950615958918643296334378036789514744506956399311727902207481435219205897938444522564002234534664688590562221642206042146822160416021629635361793247980198635113089162265621958109406101353100959840157353440326080777854820844934247516498839770182002357474414798603757054002610608188533538118204566969070456528753473505117293002607687519375566897304779875561856036270593321706344007137503832171541938447985414350505072479606017264934739932815310096988558830554832838115586669396472109859650602717312813482132310365611036230385687193825494356169899235872108328282860853280862116372323503504582858911244295814376237896765875259202790409118415314320681487175440133385048878980808986019928157118601528375327649099879611690646345006364433997211808749441046615411797088028828612570415619135636020662318843138425702404871412055480627008523760723479769211691244105283391375500279407819755842873194394054347719547236053585969919872372789322385643726126592757996968386964689208706643179128649199633236802709460643075177825875989600734510457433654288380764038338387555151829938848407350297933186499969171465942301025848579391900222711259377020352326608275434948308840525903363899946600908621812433024913793341618008187723393022880060093722024640450345722118955384054726684161209756765146562750520450055163029282943711750144227530955704154042083417119437188324597962091346906705407975949934595301395554375322278384911229405082817944664114820445186125149033529328397256369435767358894762529448248521037808993492634512413418918944106035304377111671740914808470436380442854610496981218071401315671998982608309688398934939615169831061770989620652839125351777873651959605761214193232937983782811012091318930383619997976722802574283625944989474150400011277088705645161578426280458660270641440789633747067243962680616792310228312756846947736008071515584347587527177690159684742813792868097242313862889769975555668826050533851364026843462031411010870493263921904022317402691714885379469880993607151593120581770362369058911776908706610350119737539805740597404509737523459439593787201991155992137848537977874481738392867079471776239543799621254714481940796585935186059571744899042735368393743645529262240637849155828218242785213897637228892864671250667137360155667409728661105529738788673138509739753421543780609423892625312496627485088670007720026578989974643249477738865722304451284083176369188520264414060712225578972433397018035007385193425646906455342511333368746345844463768509255442809135958402014543327658402275085948654293361025100321110897107496384489402336900510558526349758304490247644333716414579252869869275914792821268930800437363044595449867382777555037885538894239480244407534080828017970867121428750000779920450215048661950352951243985835602880181922823827821029303002005597761432807194509056959510303487355200690832392044718803897168458267919555292832956615519892763511075690521833197619203685348935324446654385422161091967743318906623660092095387798677990221035508507544192767575143986834457883543597795321550038417814744316135522668832658604995956330508311673734352641709130266150399207716136865905927426778715499493724738502254105699986528723070539987262116552976474660714053814841350011578496134923667995855080804789646443851136978367251200163193939974912689919741088805572090586607172299995084761337122900397913880639031603147165545808910222392240874903359701687134792394505515696382434594240094513947050248257961859474978740744163371460980706052306030615455417552773003861720129019835052071169293025630756631295491463552567520596388339941242504912872603914574437205834435995912985928516359529560665029344352502982100371841518826426949089756545487900299069158982784046244285235006817088142679735429521005556092629705163459393426101202519929988753969428508233661409848820975621835627960167788409719209048651594025465389954906883911359940013166688491712280835832943278065056548583730653157019316617568299336072453030376517453152162867109687112522113180472962338611549516039808771474689509400164640881053792525367572668258000519837821127496949006909627124561840450765188390802336022430082824350955216569736890494193980333243090622353846510743784835316032332541060882313349637132294886117951096086690705413838625013320975630151375118584058958717624323049385308573253467150948459015452431402897953964276443672512241555489703390520060251761709410923292194472915550167259119875972925841728072699322563851835396170878508333886134772065403932411610987770786860907257524505611189578737778083948287377418235981783884574560466039356480898963947062549178571986381076659051906534263132197364780409450457273943720131162133940702905165886135362676382879611390522706989277688273550195366106708936345478182019634470448937323668516286970563789230834062985098490051151572831179620461190981132554862347168933770997343814258750592964881356535564218918551005673139462733456409177853274437687319256913649167319184404478782236105347998406415856846913347300121378517387032270310069174745314655412743487520443140320690107309421399028867871666327680832804596199187219161171232336654299582108568720374256749060746142416764296214402888105926042090364211960225424830407602612360900602575120139786900677566910470092103794682085975746587731003144581553770046559298925289255963767510433917165724574866822207426280887237529683363192744841966257147131025461489863458206720941948929035369481014983569778584167419440117493958835888466645818976792465150261414511750671101550157158521028943920495545055382205329617341915320243988972856000721577178025064901242987106414907102528109391281787334711501482890850580632952030116442532371126135760109348263519545292512291717171883890201957100721775381408926008528968832335243689754960574809152270041358590986472103971673513343834711108593784946583594480938381559020267222596239229947674832218216479301629903628296514386783707999993943617498788797898534769943237002777447033346749450951314679142501069700155956382736585951064977593749881849981212328875732098663840758664849034452435110460709974929329678292271239212303180321858581755444721113264867712582093784224525338327503269416898198733915853983234291955823316323283416538438716400448309425478626863007678314750163393564528068823056077963825196673872776106563796185443948900957635514313882774784446724693301405856101031643076133194837035393174985015216066475126427134134411325587148421517306095269385808000448713403623462483033404185621111345695638241961620254240029786936010989697021203002075964604125501032771821101366842341269767891493221879070324541051677001679329210734780578669741875033374170964589081260403749105168896671634283992811349577277586877998533989219123462873357625344484257769984973076128285926285221176185830157645705917349084551351044922869536811690194349828552414881529343213531954622689972956867788272675523535355763515422428259268026585633804747723604706799035443470093406685448073338263564015522690590209390212339250724328025941513991081231073750612610436308838418919889494633447275419939024865857263651559947259870862944527875291147873527095205000703751088357218844483860323610725670269560212203185039941972278098911711797760068903521997910067129950853101343145757786885089040717242435541065008434364773905829797607346120040858960606207368552226381358852963111560344802219019679156559469217763572037923021881455230136619296437104272031232479192580593345584283441229779482094796154878766046195572714672872608266214644451781550547018330773050555552862333640890337548336073056699491264415025563301268449955691111934577765486332781293021948662644959354694026262607666533147472764800790409895800369352262738397593468644049509062572808599202671398087313770035069133050861716843977678003821795007913147681277330305122415094448802230499914136942980094792778972508262140945816529861751966407599665641684465497632504530592071576343995269810244903694395657000681575136864492026355433990594822272029280471593313532209006758916372439758841626497661722909327276317568088558927414297513393724629418115662149036517810627677597324411179735732056285828143824343653394469368147364045240673122666985452627260892609324478318012962849125117581523593214253196342516448913488732508881836612549270293101498554858409864144268218233279701577961059724655543579677022884229595191034724726083799007419316657065520636595340042777652416659920577456868917405860028154216469615875215207650907489942588078582553007261817276525028651556016908083714792706542950732065872080610542891333646503200996245322495884424436354378180368184489477484012545950675879670230448532524160338079471930388344337255250189465547176180850511484049670665273657233289427134879024821047782483333964386786162268502997020625812820692091239051438360750672871090970607546630893514682448129295470349842207543137507878981512994948032298514705127683376245588553250953393602654292658679127898473234015411494822781333964387377862375147520393973302092755894511697947519405623945583985194863953914740398211622571372183454352954192303764479968528546465551894067621478942610457290576232047587288504995462356058370000045650824636586119099969848488467568389424213206600635008132962697355979138411024133013294579821711217106493810616659055287897553738396216582656342947566726557970620295572917865021662689594296411408256272336797370888107606955585692468618418086325570465229331234316761760893516612334522917091533096070879539586489635467783583040307661471478114841851142162118909608231033168242187643031556101519574139068512118378805036898394974970502096013537333282339871466404564149458506991614965802443712890662496807154472713883885241176888950590933772161192797779346988194266896815948318436878347240344199065689836549861605587870704775098531958154644031821244020996666403681904841227139258362671187065090149855834980029844397366779225149515783599787532880737726369885251752025616978710746835422520792685941999289499823300264291843264100793904096504636865290163359243574983052291717127403313228712741855007931555569435041408649441204342718366451275236923357078792652681806664952052345676829736474884971016725591158469807243253824361926105414979969679186336808954672139318531204154603368095995031336789590329591365066947165398506006416771818334206493413303976743173428932981031820391257717920559672054616328702448651781582395439707490476076157830012218594645525074599310231760634322781414686257915017268250925018153892038186890163837082662625225751779916066466310604294472098717577311852084094961828482716621259195474151312970313770484984356274297507357243278947905344492785499842649340531672208714079821778917527238864616224300215008966585354347385842824311730092164244676870596826901818993406675813425703422493854850574283332109821386960376991767628522618301212216737849452193425460004254934652698485477551337026431623734240883505974396670594955057394406197298182827514374720736910475334331830382531366168717148066119470686859192593718351279060128487009564750618033637354058618677049249733410978658177625450629788082515635840535195554578016620720274759545454158039809647470820272839862256964463342557269450146856551585126076211306700273653052303432064045832991402785992652416330006138541138250615251706189332708475781762600130283344337914452789260342210026421962107909049967208412227712942970533294245003397113787064981251304878446722188735819699554438482284596363621992277487780109416297707078749248838208367456217321383575522192415097286147752338743225811130001639571929281618008661307859058786563644482433334946144744376075752291489230704781632500850700019001573349645300683700037533239955705460643478176311297507623887206059299915164940511757712991748456736131647567340120468817975185625380973866968520074464130593032830836626598713820637397567091647049224313745971772223162747670322189032815540795823051582283510872484081988785807193338772041531363577097416239846109017363428555015076394196632135921936083204654823069043871657457602032488872514135001755403684737510720151113805062664597267508431490267947011599450662345961973272155952303235078039689495526993548873205930925140484393284434093975267900441700984553410369806015529515572245723648184072699471750928091542478610399345394289699478522485070017946873850482521052139574998705700200720773752154764524495728184401452333147830712255976423167080352614369362119478267955428325525040945378961892582803865960449556829043153281900717396437365113029897178571295981379217908699069462401677153057633644142533218607345179470440141356354399128071473608108514149925214902371089684807576733183669658251631641722600283547960161314959753336856359911915585823964349356207148711424194581988359201448455875018556930199051542189003748244153527103144056345971572979831724028796284208329348053400739975927601189092891554246646366149206104809913416100984371832852201534337782610332402304086123380460428312752250860275239499718066027589284588181472280255122047677233692117673770888759073830768227961748990240920465218180987110247822571852417495762349483847443773625680708415478751196902149812660416710377742279955990744383642861354948065397626673651254722634281710892882534355068623071902287852464164515778867960954556007219300870298894862987352999196109137047634003472008624955194825647759168682835954922756104136867462568691507485172807405493068418358980927034193390782669262470657981236975852768023587275752511736085711500829279760554570915302399895312588530688339469121614739285603907031077540900969600205947907013189293657642491453856611519763561665645801413834634654300178413003186717351150885515340982212165470858325935997536561129043012270038818020878758319663959839691920142869783050562415691458818307109835753656384349675736919601277428198921831022880806289830776255176567947659134447981680172691259983627114371853734955848352495036762294947896575886919737025939320649350843965768313225045067884514659534202365286681511436672179908695738893085553783454987503326146542250695144981692857335047880044263764798207927664094021096377478282735035711788781719620886435175113946752503557601358041137178710473399573183949556074340712530553067931930440495232424623908742155214494042482173914619431506515545414741180127488376350012054598317648192575304571412889588548566207539515340470657596330773281913823658880215721613549451561417078864354470147774277241885880178449916877655129636964236258268123495327523361292278372103791053258853371387847614263748177319191945432714623072499693447064686604006916276940913002963760887660943648030456025678345324985509383941687104751085594001991273623191851536049530553069914745861479268701162223930105392048211415570300572819557171534607423883299239403726798025564232807606822427639390837210324532762946546150191353409727393541070411658934549214473733166459560237096314586084518780761417708074657076496129395778900873612966663748716337092346765203714922625888743595551484534333586539521139104046296997219468377480887739158624273571600610584907520553656967292771986017470809795642891694259729509207550075142223726910832193603021566960322248438311323928735052067605020807414228420512905013126412311282825884040314811467828450048014926144063265410644896288375065862550628642507702059783603630235531275487958995515498570148275427054550294316932735398732437312462567500612409682247522336540606390895550944042634954202399378798750431451276393903358161397773212474630455672887766313530954126629727491286782926584359141101332990308013830339403660840475198227218939228569575847948898182250093535377523135491347165454791395083491320150475713504564830161428398655298202001295240667452947507887499217999081768094467687220225958282521526296086696305023297013119348488018486420763538135005025416159436411454448465109094089916889762842778516457457732764519741124562396062699211366554471736427209757914015384934290635424460654356793595515814192236405738002117180212411930364963526431539887727348172955720453690997273159570737916157298826991736170706489530773219746036019321132183143346576755504861574780666680525317225181266448009820597345032055376231986772657968746337827177134946093843052162142170526280618139033117526794625042070199420259199405769713424842101991023235866146903053781967014426897250626944223443238704402325253037566430718676033016828025187523612841632829380762523654528533504372993583010884968257686798944708163024092227449868092650852690134841998191000044351040806678943228140368716033389378263372321996930661050626597244299541181934768540995771299711066821176407673134367210491405244379513008599312839415996722146508636429249116968504010333587120471478520302052750073310402111915894694552983092596438269472533207789508099238736931266810982429036100818082135082143883474741833612407145201154225049286425571423131360584233003850011656546361563649697182389415169175195601502143903633165327593859569125075183668335522981839160081160507072970428752328265894687865125470506458511795904983624222331625411619928268639013069353725298617938108724497318183311526369428196589836318131978554778924471637732603570544579641842629698328646954432110410398257577302512735029884824003539419647784413069667854713506517860110564075384058714399970287073562194288941612476413924918450836763823266465885813568710725696235179995422492491117775012902782998971790476933479133879140108700047882966537346598944303301029308461395331461373957926815978596296590161850856733802952329572960008000656765546383747817996215039827408813800370227890324488661582923930486281126859132146291084243267193698282966390659459850932875287101138807229741629192649277616101955939432343386062912126170122622271437919924069239517465449851749368687059710708422178524481612744823128893332337421271411628202681353212115785120968061138465940781485600630404983867250369908663169050732697812748124840414945217906741783014518136162215309409504280016863151851260997597265255301196322231187063137786425500071215890534781839076135277816028413576474516216198443615800415928211207268837208320543871256071971382147372432323261146139125686183188357864902616640041601947542460544757562522285080455420858395796092625937377553507127950701885577897157735542870896731678586179387067216248802090846990014389434536567741817198413131468485947872341607121661149301805203583567299546967797286724738977985521792267984033878718511606189770563417831877187137851608384418614459161068030578797633374201140551994494746510351682465055129705640496768373971060163323168109787307839393446039292230147510014086475933236645648259973801076155278512002810910463668019910996673699654765757967756203204735553475680659603804469607971159890344164212224172597438725566459318278545110202993026928350712691820006809927311087556478224226313025641669485066961939234345734890367229959424099937788447936069051101814384241670030192326815848480822262994314153497115155955397535218037528481163031722973351265397554482992209411509675637047010742781746290849086809919996485177483339019782380798427460806850016040928989414167173504135029380075303112541326411903242832712090082986109151916678503442126968919873984942681225753603827566189324048410008550444442569700959862491582345002123750114065311990030856680201446657837130800532121442955108288535352961769353097655564493761418812587369262053596573436426914991634008006884151613716003200200824471626200471037730997053004624771570983928946045959522081706892290883934870840438323165625168989199928835957719017845738660774597756753323999210610725595253729308235173763028710361903883101898175286992609578674686177914306431045721058777517499972078365542242606380254816529497204039236166009919988403657872012874768713970567507270589358926811241998202394435271899663196438155204987276904704398841506684154378229541470742143217669235003917959429787924416425830884250943509487313210734058820981737716987365105501828547743717559176624539388717957155486559377196506068552821968285979555181807145388822191623111125572556440200147492165660879483180101976083520397476312691008902688816183742724150021758742995568492450548049015757379208332748234232046865478968873974717416150011976653000292702213134182544175780494279409676718895044122305051507803996674171785400687458023170334906101240238829556691391310662021800826459745198517918179555787265366563567731147435152699393180154690898117259434092010627799656190897680979485614359444758762833331803223367690649253433491047864998011688291410033648111061088262946769405189435945904178651415122191936695703360775681659643988454560899029495664147318354504840478663364499841370943270199616509310506193956452086735972234740469755620913654317808058183710202030888955872115385527117761677073888928905429530331704210008481473468768726383569031970205692741044684476253104617007508737078400191818930757178792213819617891390954975679792254283070230043036078813534657011665520175124111225869233924793872564724465106414467210988907319456731763471935316951559551193205196127669171595813982307773933780601785079992644520072211805531307037746635399911975215830290361372385782593899248944027122297633837714169928749631397045631882690756056407676730195915871595488836437088761463571813774008512919994910505297052003253369292623871062557703525894418779244363101844617435130169105652084669586357589747240688017026493131202036476713727057129821235304551166972215692554757837081697004886556792452894933074843754081599418403555600674256836836792131290907738423590535288061958441059722256069024768091898864236971893263164824272947905136173960534612394471521209073337985467339557714246534063240770116986387326909999057359034110320198914434003459392708480920950043045364933183822141656693803422649264393328456840892800834273212274974154393486737773067040758298273371114512888398299438936915847786639056807835564338698213768681918527507893809376115664567488006181049353005067165570233949061501693432753984006227281018283755551218522119119873112339914079260570198682395217844723480313106222600630518632323949813836788587907602360095393410039408864557773869926569207853464378667669073944139723151529581817824524408375713166010171382618120354152290438096384031960223666933229212939817652952162755625303226119614168533077155984434577377140950140017524006271298496318367329146683247744356331914008275560572449715935589734934720475975038767926062066638314628528899277465896052969208634252100830028533822413801089237289410775429634843121140856012815242430256797830908122792040759494537484956199236641277163462945165679597256771819821514196934586145019465840506407445663087246518422063203433869752607257228651014221215247107763101862325748632719275402205565849236718214768774279768765369607279557030170943755112259030934580304761710777696690238810259659670934237278629718179152817927190748655085756511996459291254672735582834841906560791486710304189138942869236490909483657548640341282123295299531020063241727572440592992906090236176292351273160886317161730881767555928566768033603211805320220184613774203370175684875129763281083742301545996962860627334880779529169961063036023590328221251058354181699439311682942155243633325281823242586069602201023203035161269169457699901031987985590793612974067308265537308794534001544846403430562718332424041378046814730855567656520252576327172778245675689650320331730829295721698350393413420016163836062665327309626437755976394518723725204837656745601148528323315283613855802921532731434188321051519971080014408718861531643659221243194666364455087434750800526698344767463594770325539762304752048652481127364553540889690587710356159792210045661127435489852307480150249102818112194654816292400167924390125786250053072281255371903681255201662144710226774845254382977607881672672052260443397522389302778471958593077155972945175885214209782627051334876273079675335762092130772695428034790093189294951524315219179939787463585542824159967427764931600535354238591804773321775869297017862510702956234058465826109701718251459238885186109569749692107067018002493563207334505844342005844529720858958758648401404709334157323338700152663620090925128079205744313421461445888511574816099396016080436879794211371086453251795534577221960468200612964168605968196693529990402069671160594624225993521482293592039008497094186948120767057362142564669980699141407805795582175350113695682679076527542318627362347553883374623653538944659725761113484187492928880527761578770935960109884073600152582904339408353912236506955364663044063180471125673360834080191298401220216414107474737889694555908641737152663364709935341417992591108098406514258700030367185710295596131880182256023247950927084347108320565209977451478530326391409873018244392155676695689945313349319242258636189567929199133725363338723881995211538571715962428038144202846124174922684261916591350760774185162289312953420407431196244956653659115768022418572619126827826508218440261128216924674989553953663360836702995749018043819372183688768059209224220501756326510490989706857972887943389857576832216213251466721635326398458515195509950374316363761185946443852844006990680624400590525011665003475435289608441127907817098323358686275200270882825367403058169196288085011552543030158146851933500317510695545578502450172791797168219895933645540067914647244938243212086776876922674552491152182606131267498753440680148506493949688254938391938941698974140147060462357637185351840512763287966949065195482980685541054038566507781100262020800793415916774303649858741352555535238562762271647499355074161053212730885397040501627704514918758992235199968133472384826562033640294896817208076969234762322721253930376379417822753337891035930604542983498918493082547113726254148072389596067072637787228813093690928047412193267897685857957832104592100106980333830508345160143237355069633903493799189796904222226400142282198920238187982236157970845026749696796769069117230244469629231385773763631699429565481668657592156549709667012451120199854083157716436005015115963338176716142942235465052694507209778616644828600827255405194124912103026121553692411426918749450542280723669755303026656246069042591856182539485960969114369038136628627406409395760115036933796446655831094081273152534761310447262815083708179711256629975445933190559531001433788218142397994742533770897991457772963811193260015885742541828148350139481376729167277330866760865214722189161217245487226730601408634896540780641601378148274483760372069546947569442339305139219538238445716817986136690349304162772832122665633213503045870893741790988614856888623730589820944993328895501755574650238384029295881935596940760413009788191652230402044517887920724633345522858736553964108757502048164156451103747848105603510905891230256093364360540615267426499250243864462280035673703508359583642652914496245169259954966559812839407531421826061316047271381671890532766100844199820874359782320968862452768392042851237888692192087297494421837935936204748235394309895299024575914613903899033558229092258488682766358717128241008300697453619315602594039580771615097874659581968610422690301147722276344668839148360438958452710017211139071558423103197439700477431478811295033972065062607008416594156425255724963499951698630546978452928453664398822536143276533100634334381082084002878158862555846840136255063676092291100847447552578296334966879042637269333323522876333151695269224275744800658758221015233715849826303348799137081331260236636255982223093302794788893842802167124320435479367948887490863933096160117533439139525920165614975059423661384297180506312338738835515206172445455841038995660036763569588781263551040782086897713287495567815131220249445668690100292413511018817300992786591265343551764101103278082586657831250242377041634076600539012208676796959689804342174293453166311053408991972636257612248801275356378289733548798249026997976156060573318906240387632963935818613819915195533758707619600222916256782688341729630061547040608712379502635001890945684417899736706541238339307296067252906727727400094391375374835717094383501966925314685824204577398431247412363605731869405112486271729502344064224285274152823538955735163283851513638267729177936075691410376227070114520761249318463974319653758181603371279207407863039985185626391877067594591588944888576391901226804470846357056988889238654453368463499078223339972250604510397381061762972090858036647636584941688426876148056506542781967423809247139063864451931760815044498914363136088359773464900049779771672018885289188166002606548444248495506597156795006160809725410562798788719947684867784092584050371826265061457617047062840170250411201869996988836192355631472110335152945037319433959124016537618957925818930152150331310232756902062537351291459507445508453070821884502796702117063780216165072930872613877757832297184063478926765785332646670994693092901779774180259897317309271408066869156081482745657156706331515807937591940108472487261110613287906232467149811080787984004568031174977360555267511140121955648189608383167468900001541541054301547355155641187670449949569761351905616684117712424996725802675046486339321761748944201162940430994353287418480571774734818840391278791500437784347917994879728100633080414226570003695034479342156970863565174978741087630981741055072525710309748318276763992708076056779906005466107461385091505857410967301428941834969321909399685234449404660567710811995855526015610202528062205732528889903188439873227935398730005306551824766315587697845726989944091186213151184239776492447538320555002591875654642207348191964267078971318372843171992816597268192233984795191333356500458758839854399196493254355421368770563861242165690735116548170741198521822023330048836466535874205752800124785148554715589743140632286122621029618768134837456027044330430910004835280019037301364059593837537808530929797959610870282323083740561617358211792184602099033773765805301636872380948201067460984539288139205445685518828198068641422460335615603332619947456200388854782946589894789869578160723716369005069316602313173621382239792843390294141777657032282897020911586806246487259329464333507346184612082071203303928235052225600863656772885159857918292467500080703836128529753178692895481117696724823590177494002959395867217654695987512927155842385415453964198519591220582761453419301533307106842044275348636476132322126837533290979361074269572873187022849363795383171044271378896204364690745305800106025356121276649157065903364261514986947534395889777928822694236974410019634608322176359955901447610997249047122100249047394347109679725181067842943969368458310131799754116885871864232096798694925481917656104029789879004725110331791114661270430071975157770125317780056671076543070916440626662074302556873973353617187293089619917946854353752420712114724775529337665414941370495710169099430684751405014845501720486435811735869429014152203092059638642402141558111177966983514145383078505341989733584148287876786814938310750240991759880336033873653951643404189414652592279040505390917924130263897162796606699907140616588904131996787253570247249313591505932833938080307882964950838619336336597105154234867488713302092444006866158954243514282310336782401512135773262969652102791480198687159433758826358841004159917810605645153130715884842771980048004523155608624579707027962687230101759859208540898692814528501443375228146382464230226166299829184503437239615895336672008606725145398615380117204074849986910173069045896036126443348729576283518051230283536633617068205448735315371405800039880537950341913924919166814375296221191071133052951500938493820260438968992468444070245793996146847270816505946194924174890036152069579778130136567796286003090650933827882370992813002757154159190316305901994927140963955216294446693612839989281023724569554317018190459170419229238073512375265153679082610831235538211034322249969416330055857864763541446504321312262379720760611012950083496572612306129316827916188633884413833398719752571716159214957594456553996293831434106645078323331852599433216479816308865617842697839309774098787814682674826418498704104055431677979001926850472604228592406856648047372320077695827739673639633079022524655341092384870548585535135316847525357260837606772839186267065805557708913740852712128827346127278637843003295414201229755234235513348362482622613937058883010195518166964192104959289024621699130434937601961479303164220911316023461907601619864534638416726545346332102888733860780878477660582431238495283610495780721233663222596587860349036159611831233237123060557858727253827296091093051498908229504207893671851984741489136518237519468563156445518272578145492445502820029866189852181084323998660106240041770282837287575324576581798125009175035798617682563354500492553263478884004504782684867145826500912409454233517838079192996591259281570534763143106507440926964852201833624587689764085029525875394248486625758234373246400092396861863161964815273233254034773373282363943537782109963527489414832694582976575911814775641721390917307398763644110491070640114923546005234423185208314922339661141534833352399045452091666675534225057234855609461995016354972551083916259925558901181078368972643435239281002346396496619553358724768630369397588173999788066274368903010543977734328041957151466237352512834347744113780387526731530377097890437352529062841132757031118578127656383479930619599415418654471277881836782527559431084664068725221444891262737685292308135992151826776067311520919966750613822533838083005756787051603681219201591923288654497628113540371623193659384736747397105699792472390209580310636026507717715444412551090412201538218003745665875382420419855515243892402363013228893297304605550457302948624108775227097180184666559762393138886399826411217210086890166139586771910727107380399950407353584382875589072735800514030005894883523650433510989978156044088499842741468827641223974361046556360534485158788930602796326976682888100754552902578139367291844782086474103068866062369601686745525983987672392114601716694369565899819763245574630686255569285644981970528674032072799544153444874842022607415565103805397213069219533918974381676768911008771404452399924807628543732512865897965450981454110730113127953643419797376049620860807426332696793398305853776050195446024418114678220908675853875744861539661310552781195151149694334881341042711209962735852258502762617709228887484365850178644399749597363810082153788607284197585160005495987494667282912875431286720388206738489942156985176468919554724792818347861875274861271878893009449652438471295544388411052403080189748515472872596686290286607994936395828258436077370634961352808043506501604837550475445666424909890804833118520893924330576566247615842695506197783991921152534573737451179209632013354600080828730128413448118191046553349622379458812998014544437450439199620662175693650278546337720299660441487601840108730503408945469102293840747576399868895073298699245083591722680281741627501898370905386230012621871288259812163114831099790458673139530660325705233764432138612414792941811102598922549353944929693835644457366203916783261031732863207043660361264978862957743215342032800312717285334620920273403459873900508994208636997017846680229497488103855845641219922182865141797247580227959767716844083993648778421420445195626026896205311334684429822082727319537982699441707224679864429055182373257603128620814070004148449632423598747337827520906246611142518892513492765531742940589887180731838061958917127744603608078539035827971067225002461654114886077799637595145308661501662779905584167650711771332578037839518379939633125880502554871951109027352422228092323003734379337903747484461518647352565583500784600329127290352629110093950676467737201074301469742400293561918947175405390749795430954038688803899302908050627573194453975892384319768728390167588000129554415760142505722065905966025129838380028060356239789714988546094611168154931103476230907946953180400241523153025867742866213331385543983785863556261576091098455049406347130177866138253515480096974169165040075153947358392971513912931050759279931057843589908193445314402621972034090870803402155762258690641208758236785541509983611466688270719260960146712194268505392206587359035122734338880625190546539994414491342693478579948003574762302401679305388566182839412747785941937759211835398792088176257237239325883818040291293845425473802745111024636197723927205471845678895857568197214040533370905465418729034142220538581809660733365165989833773249947059243894981747865799804081379889046307147595054450142124647217019332368943296078990364526808590861203460263609273088501594896029730065230668727842299994121578047736095713904325974273594626593984567071881819955933002234833707032420844645904383873103906900169929149187567940197294049246522114088998746698408624028762939172308886248503988325150458224298013138068858586914178475976783156107849454202194021284313515933422812871777242676460065257106522016982599008181083745022911712867717223856298244106416495761889799489032450211332370967204960259732055447680017111461239231899320341606009640879640924839313982105423795279636718789171081787274651000217839377623348024700788447255897304440781836612436941323311470250750535947544505281548957304179166902611589533562864232259573123169203317751199972827053705186853629178381246825423537505416483713768749010058642110816234120696350591911025943083438333724815864799618603263451894135501347930777243390198658409508385103318663010819198700400256092611428826193550972838614585380715625431820493420088299633298904300870533695067783858789170276554163684581168513544066480106731025183113446795963178036102253274950484673114958836828337997505386874623030202220894659908903939598726229050340381582486224169000363891230929093178059579122589544609376566703299398668394860847602388422745447714454637558785106029200522491799574787900115969525084370593134275157267649287036454033822885698591861349134569527178251768898492606467626110491745921836494325229513432587429356705799377511208096105289893485513710734472494689465546217424523827049326446005913832408318998357356517761680414761960772076254581861022957346401118263854554278303340301634938441981684098674538878572360524014721321276517313377828703470786809826316502411661523958575461514698981679230406056740237713596239995060129853676529710395413043653279329449848744582853418960754821359914184256003286350205837819467547982377560596101643174481339295230083512449262753035627770523358361161882753601446579557448869820929383222270621206798643348741657049257721258663427337283418865266034832164124627117097561634523413874038407566102191540997223734969626084076438788515768909263211122199991762600130152996153878577306637337440862832865258658048628448872789953790980533058512973567886331548573895401027268533066276188100385928539908241718284649081554810832239314439652663110435045426548556045817056736421799922879989850309919207140675721228401248975205678436195879114364810228472738496700868636305358256291316169092935331273942114598508815807838080063590076398740134664037023048702483483425722685474981990681105624480370950618215474255340278534808402351020288867424039806942677409489476019657138740815835108441211399503458060563712464730113705552500366304080845413546213293606197602079090474898908073152612506700969926453629514208288467565986971609184141135361320861962338696247046972849368033345024704506194353061512238100989450495899092806507368832291431831497855481993753680335122188819042170078450518902477991933354570946717056740067658894080192389810722420686199451999483771933669989140795863437357843097795753027621703921992691951858990385786727783814390955258061747352215840968867375232141967973820673288999433148560236888830374423637205504758592054351367697336447212790938936145448357587480776950424411942108396610622552669877496493638194042391016457171052051829477883922415532324630798216092980269297675912692418701767433811832820502272587929470683204155815981603328938599850452911675065465518108168067247951070127073768337934636122917084845038865241735154170492153947193244067177427167104686928512331109127747806404140485288928171787100734603224159489337624104499238308475875958207260270246344991783992476383080507001839287211665192193246988904006786265353356095793236200117911462481438989416999255429425471986549916961273533779268956338658116938836926416578084978224374564867724053417624350390100649830098830335872351208783917264857951378408023544175512185612947134622032554954258497366791998365038061280501945620977039085008673136775463865337270268240331399669047391841250091537496413559222352585951228089484385945506370911558759098103493146966116950164531541444085234557520621859596054263904711559861538612849719101288886166710948238736892665411429736503788064436862910650979714577929058449397615293494546635400760646617598481773533317945327566777068373717015262576138567653466559890221698404661322383759897051045195079968052865646163327989888804705618960774745695219054203130163261983207403940827733605323954297760927704556073204352921532814123439070382882483756427975106648010546979409829823345795274691238691878027010472072079873783276209357579717922059306706095476655533674335411651846666275249147350845179715322667621017633135703457891001343936778944441566410072402730295668272802362586529147017896133899846443488705252175698006298245947747370329430315073244180565061350105395015956840765495541371018981540973578586725596465288963375154724899092469185480566835301890825499228036557789711247852431110177759745586006341944587077896751625879724536044115761751558288160154683790902709005880774752077143965166051715456136948667982399531082637366750949500125551114481522571098298986048757221712352770908205315202227476180763669354699147303223232241681841616122271632994727646478540433536945541376926336359258356082575345528012173374611159734817117789842036883321834195293601754114832122085665059797294276178819702585319148687330044778951975205391195943855244025769204337373897351662196820130647838014227128899018091860559999082392796732856530509404744177825101549763908104943139504219258797325167895762102454473290265226832969533519793948648780803892216561354010760591193856068083736303379667456193449151828190441047340075109869480413481693450641400698383105800158237216378709304435227992401268937187132652848460598063031792826206404396702164792439250948687568546707405202776248832461209912382973231342292004957165492514428462339366349712570679267758927895453210462100014018950813157047177016619294720610143845017856173282310475487044910332000107655480889305697075168240214492464089712042103756343302812438723266160324194550813360985809299895425504178902341226322656858094537569520107513343376243908159023324563990382206599480869301644600009828904564528971250990597836000297249275464535194349726006236953717533019225303754065601572859630041352029965229338427951939077255076369331190105162259066173157681717693809504848577223017498991863693176763120125389734275772314114376917008829340435267893536755617875441101260952159113178915016274154210325103049971914441114192559344324963422556827982849201087336331684410106843798168092611955239624633951377186649443575015764423369582160484978154341647577172984596132879003938959082703406031377941998950994271353658351459660541793759436005006772306286978678490439245521907090601555352046319936556970129350018599979037359912838564638373211961580829228734871020851038775867587417266242576123186901086295740706669300566719811757519534204231755421989248954286422522679313268898596077771448659040565346131709561765686058928848495516400149925242016821611804644748607265782140681727790300208496318232812878379916627130202018333385849285526636339985386988589632229549592044068187341676194749385673880777357801238709580764871845705917362358827129602128595572527061182369356654418798505137738461298597191019064743014802675039397408693100838288907441606916577568697568519430035659744604803551865571836832496063233948869744210684332606190765502617314411261331497057269924441183894101502687038778192068086609451708728608121570102740570513421911225292200176339199934404044611206848463340703079028067322073904817336506569135521157071613942564406013520551584274957335018394355664082414761227312721483976421314450276656284076001785440188080272156190098845172585710223013525248834233880382086308044764616871188354738492491921040760020642640588029514300476945204978652993235503372478720202065055452549759489094320792644055983013712916915872403216761494630886649695441603732559344790768106917086427108390595644618219731115123449817488896993783667853697831696421652960727199525037113196086094336724864645088471488880476401454903366325306480104206433266883825458433004285217944024563543033984057252013671925993041105448274389108648646753163469391207488265380838380653486750343221637468605721902032189171804848785311482899627331973410302636659296973527102334185577003643544756028710720931234999359341860481654923037842771932756524722089464189420607456241066506376843593827521911357742883750772714101881082466543095834564232297638072193488724896252641849699743714950234604298046596505675060619282510213898620576576533946788408892425371363156669481700851588902064661048956813126613108439377447060962352829901335178451995332811390765156680204914765586772895725867720552595631343060411084741201190831109990022846656322132959062387753291826924731841218290714071197871324730374655167655097606314355218449166688223113153553957232688365098940980796174320011563367224911459787075699859366497288203350961089520226962971913785229246820930913326113790972356178872183946954664911092076651496626100879683274486299426827497239130423792454535955237041350537579738689505790054812360504862801706653121967079422088993508831028057439200617637844785995986805720329031976380875205151230084666645138965496182413897499723725713869646516903060412505524291638787381531736466625197263222889041570352695155801762241188707294666711510667132247791259645142154291953633825662935358405856566923157545989085189055321994426441420392811457965795326187312667898701549951271521543439514070953048393225850866274157744271189611963707536781300192167361380317114397263718155331184303481323912400382091405019507651669812148417450770814373380965915599047130224679753271657478384504303941862526629270547579481441282792974096572522227042015000171179656421184314154162378369108125302220406496551788822800237901553651663283749822710256082746629749533727212082482837395528735645983231332867840440976373257228677445166381676198275453904930626532671512290926093189265410561238141649848580222824352134404652295067250612551255510526795747131647276761301675553446178650321007175089268672510705908075435850573726148193356927343711536965086657280188393264741320232892531281291559168592084881897601455225166403183212874067462982177758987700309760163119449302570599482588806224337837637198549272756233794754183439733316294679509649901756093676855119588191103412022082686877414991185776860121264947678092995015837089217190803766857364320851329292865368125590723403505700595486815933156209215846902203493743709150527460618917725908538115466477719540193447798121766613845170879867089608990678280458612585865443119311026785651557547453366932379814652550948134209582087076358289128468476859716105073374929639388386543982788252326883319086244933818774529641814367608268685392871943087144124530754839069722438448265123841780081748739598753577899819177379369693535057694420795277470001351620452023651239403223365870010861366397899369674705352148600279320315508914741949606706330874701395780368231387497425774044392899021315712886605167764966420820534147545641320260377225717674982816069517760464553886489969431195199505708255898791438957846965744642683838719114149479888921996504672379432391241731066689776018388946394200817883356296115723074016513007491536659883840909235825881370109816900301699352247497331036431807365495715854911387234742198386077618618780270566851784960217594054431805668711217190819878143996263879881244657021413884344466709837395629580799933488053422157696999198759380531143873511274842732102247578123018889787442193028029271382133686559352040270741673303149805666643824728495270917101706418216446538694835373983790297466912636375136810363331770429844800039253480862848318559476625885727457786487656729037997610973656742476915856857133519052276219688389098384316781229012224921304570596083692557386023107212938336061080012972832972683148550238677149915674109957990973792886675354013075882457301311671787604766684598077587434048951476342020164022557916804068428679371251443448117206003440510048398501945671526983443172449228957084883903741270347243429359236492018443184642265361114245769569484242825431933335237710438074740830473711756749553196670807925391932868107304868140016435791236629366582159609319687797951190965612092601296362563071380140056300502980748257137055205999198464924220301098188468588525487975519106711052984188757035835210491674004909454782543902175804474758845341026461784459223644337639657133876251522742138256210037047156028897854834116914840585825582607884330442530040860256010246216800718554767923569871442747384038313294882985601036925295138171319391472305389470052805732274510727544657822024294792729031408855181543490401456988794757413275991541981480213764412024090720039877512218815307424860534554718363209138410668009409950843794019661893861125629052684244309451225126414750201599075183476397554274380168059021242868290634813116332319544045614178489005231971115305766809238539633872862792370801026200399887081422606470853936285355284206373961101420601151947506594228933352146029057327278718580284439223402255369849663044493513724052978701357414985370873003993535265176607117844077997421663489031981960310154688759113414206468656974655566473038414274133430248277148453905009428394410820715429133883842734510756291735380241032227617368232324578362726085264320048927756516598358601882853963268879597294835759010201213437659443826838945545504061354078302307697041616421957164057843370121761604575561676622872605844663028983915882169674769272887689396181775289561033895537403694658164923114944672208416965668503947949163209410192743526465978791625844667772460535761048758544391921337049965097267076688343104020188843899628316061953263712858814245029920611730395011615740076085126342443403808867712128287928085074791160408658581404412909517469517747474259725424451571053205923682130992945421198580577614008841498253605863854928197851604503466796901832654987831411204476603813813184528498867322313229995254088931926455566715637549932713929984736839132404977152605813238357496356003142666870582297826442854898727470776686521053492172848308823682992200814528313155239105283360220430287478935712532001816820454505383346573609275236963708351621654923479189827164718884427029961444338319695929130659365093059575181654776548184514421568600813402155908821831950495739144992128185102329424468021280074992095827722626161585577834258853905766279685842804672065501088620316086326082831608197362878924146362129336913061556288395042060611904352027407196958528101893555744858720032679179048834152256597205038513161192220436504099737376667235584151274680428855229168831976944073947161974950849537363024379199034681428217146594851291584581494732034715058641109012610735183605838763628795299206397815686990177760462492602597037149731835281131512127277371808196695713291984355231380319564811796578830380619444606386924756491270056940545701664649353534525412656100103129205681568961864609771066809449884645214047938040284142697215790916658377015963041223135806711577251694684638179577587615944456135801489328824411296217958974962842915467767329482182438963348981082101964620084485274616636325446056622152954358752056107931944970387890384555589797997105810092259860250011423831880558990455777638669250744586577101627828339984797486987707374557040595373133645487345118359874560562780192150696155303576819615116960903323889081951466764430249594492694848264087482014568524738357425070968610347926239820675379636290009154305392239407786407129888115369440464071764224205606064385272301128758330542205875775145343115080090462628504127316701437475237241751359158383212402331547829527046111529872747228595093372179027160300542398394585845985320521403009122684317604681917585130435012608579576338629678611096138252765694214912173698576533467512262505088664023987099066496651741263620158135838523323585966108211119366608879134832094538533040293439975609360347328730705920264018841564952251702751727802732767892770847373384782378841947701900242112326550609815826517940887188424684277273603524936681532762825193238935924946952525254177856758091869799186100256879676620046663956913911867966368607423965564389346267559246888853694113734195712362316740667151188689150976793693402725068837627951424740874475997108241425594814595479154394051500834815308707256673091536724397798113261507334523593692715777243162343238229771216342166227187903554935575668640985375158917732774384378776610225770393356614239614008971668672633375971698583991704978611155843042107980830274480596078901105288637253835415496961827172623344933376142479772291359285444240460047849602292909379382675219428174891947337706293536348902702761280609613390421748048010801898397699996007294770752204035410027838999871340099163663575408705642288649569823163953101721669817927704920549271499536093506193190267579717039993009403104177887874508682987902482515146496137448950888150470632790521059103146904093642567431388107963116258838668837770042992760533027917704205791177906025803321504628382205648997010041289736029467445883011402914028592254173444056083758163167558691791646047259313647669819006579599711290938054396550906258703599118583096716191870869680182929459356286981709475525287763082852829727126666130109490596844415655372537491254619465596712703974129559078609078392718219782948136280424023837077058315725929358789306538665247769765705253065032849718387733020306138912870673336116547877022782072427938740186673039858993573223709983386747311995455798799408900526436796822155883462468535304635772576881971961653376736210722902333543241582086836290915950220174787320152444624135878162206414848711351463564069832397984852804233170979058755510755578605090978744449976307359791278676609670029177298916773935562169199608494128269527200726681439985981809181877861274556739599379654551308329823197213882452776431691552047543092886167251805322057936402363164869151537503454409390535421711004730724684395271672774675303049888132958446423781433245198509011972693047192773446449904752599249316507817440574985026734463858043983113864961473226156115828265694455829124760668228240014705048820201671697016744570689865655323545909032732314320610310104303568713881802986089372704607924768216085706597296846665628101688047423520082375590999997776665503426215549131653945236574252275747666967622880727359600783097314084720049638121813659828986318734731463566595375144022342888095903900996176559302459119880117480327671712906383341383409503513558168610626840069109985876169947064960692902577393510563392887105296349814563630107382293137644962410111972324387588914017068360779203202813640550970157375079375346291132752998338579908688380810956847700479818176118514616647236152970161200987949164391766789399853330310883932383624499492577559058948758595661695847070113358716909858333366184498351530379671056480477229346103402370406543825923210026153985192385957018207589445327040380773863303097982378681370202045408920138171909465634873451154419580920613697431903776391249162094087435925308255754045263919384368727809479799863822165420277233784442095693976443334575928913488798238486977754965679307032857082669732941145253025748867776290062031712088751849148296136278615585158903531495393377512417022809897818836311981871905288745058879368707649577794726712201371230454241840325232340083892060009021941317538286150199041134401783337759935240032118238247190399489004114473917288775606510257595625864348820756748082969316359421897587663142613124959229401513939573903812349870292353136852566954356495025016653432435164871818497804804886300471120643742074200793483163391955864567325724367238897893381240854985944971826411025179893093047293981997793813303748641692645615350647343462782848838292611501541828997466813187098575142389752243478632960575379949859132098061431153045500532645267022476437556100545138718903268613874336576729368962611926833030872946651721323459486815929545808363777922626113485699363284080539930961025631592544348265541738953318323088801156225137976085480072918912343535629138991931106979514072185618207835821676673368863126408306592771118003662301624720585231736620878867377343732575237062428708932859579652334389041078332180238237966843580203551075755303276464191695524738449481971329219490679009832893899294649824236241114046820816769034495062237207531449710310632672991960263181054415285466446897371759847769370999269477530892347488537172156564950308410911125905188080146350220688550145401024255551909975834161179629897328031660217974440735409054597527637192530092316452268741920709030867250030795054920494417972529272747197980291215226139395170509463390570874102207615979989603498224531668006106494439045299182733837640671383958471718973329649049197138932405556092775323397841258097018842739075624502322556104600087783832527011602267902518101691471844838865760028744020348771689600147421427138243020481458758485197674182944145460003775958980602093515086338492318522759767375426983022485701307419495939613275728278433989624517883114780644886389080425756184075958001075182379827896993828056533289532696284196881726542655883590505994037457604483666044795261597224230188618716644055305689720463905388521190647042718024478872749669366614680927406251592927323072392595815136173454941650936495710141668927095389966654063522520689907587624250591019186034774373645096533166716659305867120150014528616596551907178072683988182004479683082623790816879199344595582799806657058565730893485280847471836615267521394020832060055292628819331663790592699925109079047623266809221382562326361469786572046981987172750278426135212369775526892409871991108743542279336580601634553326267126768995489366876337822902598967032590595259250316547179525963476980929785888246443704625663361456292984086907090142882713262989899828310100543135721767761457263865062442906375944958836872060286617037464832485715199676489155740253858068569580824362202797038310805616906324669600346027318835231691165791911324430791299886728560966941013575261462669923979866116060426734704914353274428464425819689884328767878448088225698971900035688415334578861447059441818740136137621588705201135037422291935614972800668059578823179313980256238134175727875202418250955476157511602285570346772384751678168570629147670955723502136989398017591201446928833111322239171291440593880248237696915635202181411862970318704489325762397646166626278633717441045995688883198002691059578531900795517731683317582777419217350498750698639435149341735752880982632548682396256632662039336602649474173357897534033779603670582160469831894717748709035671552817385170384364243050643552476162775020044056961532234270678614740119554313782086094789473657267286575643939428454990090800257622798010977017040752747861837120324587849793582973050783863957334433011817689127705869396946081738140212508991733798811271178959682441581725628727301734590967443748680970246488613459286467190640037402642565645185076024184979784302389146347120980535313228734969187992300233790227133367450004246973140373609161022884575700195098019560030278471993415014015355502675895699935942432687420077613554302806450767600488886313432197918000866096448765549441537545895434120259921537123662336706615939832272255417278625656787534429330296334970514842925270221219046277862395195990697787679050228875759082368081670003985995102504359013533052556881036998228072916897112224224922295259895553235156943435945064134253909417852168253849022421465284931821698305417639207979134693178788839790542090533219627997601167484070762166329202531495938393045266688311673260893203276851778442496752944119629506231050724979428618969188946254823745280850103940172765097072756186431066872447844143387971399857158917709394892178463903982407366411973163162753294595940808035106378315774628588193642134029639240849340796265442790424696012799790663364269236368222818946629126039711837666998972902910463765874260150626568782817120489889156630932249189700602302786966541888017481686101448609208134758913415389886881306240751294686272910798998137544328404005710173965475751749053991350940779794844907803892991328310374692483261798606480717008901541053738999535498614880716085521456836650066558116462898351350158434854596311818296257920764672642858689724720778098705714792387906158101998973569029776997931373070206680006069161310728285738930698760550601364319116666323121728275554839274715565195796289735612675508964912812222704999414304934988689916019076029864433340977026607267322082132475651295341832283000764379250487831755317801387908587671535923155277023815724929927508722674123668261356896628972281241766947006187222438966890174144834660865697871830608079618572672585993070554522578361280208468048051278227025385581615736452223185409900184072046967041086748368606936742777138381947796288323848727268848372436776680730654035045212506277849452217562938097331070326935665640646875592113334938207194357924630159672645562414535601808200524039397200936917613852380265237605634863789302775050576559587971311944320184232553416055702640366396368747321672994858414016145871201170050200309946453136093103402085154730171505122234750317343992784778645883813748366745123672034405720402302412602255628593183166043953701801898378798151447584340324332521845150980814725390058392182360252714143447447508830951908762407312992329581492082919982825919375045321592641667942805819034564418584820392718795720108039064539946680296194995220966797606255795392563885696987607818541148580619004110364249411731956527969729435834617310595827134192817919373626762583075401570250496514784825037092797620947538606077098591204589283218853188457124268185638159780680777537303259344976138125755334831962111250700587408125962769363803178136565839066157808871445556092154458234424321602904016079153084202617061708349743316581087333800038262584450451774002122744606025261172088990181133261303099137669799338884660296291294589586908930613006270770952990838104043448511868249307565857976957591004141821073666237422542677928406305032483000558263572318674092682239016233352278661725050910554862519504126929126063566915306326365503795570364601999403913639143532153866052785600302153182291824980985695020494664288803559496143952663215390889024021094928732989056914250459973913687572225107548218140533539649929490846945122580588850884502688239354951005969988327380494329543121733193914703708065359375466285090676677088827826393717535932266943191697276823500469954819092657668276428355578981877833734079666394297579035024865224121399317414379082134627233078778061814524998864109217336005467519359020926399816716576005004101311449880284667728315876905509763082997548538347966846376483934391688333137382785414861685848921795485263481362941064772808939311949367495234911104256214733132897453707689379631775927261651480500686651801754387459373956868339427339011437762757406186731593516849027034893318674770556192876529195302083247701560836749491861418755063800157321562281412514249412445474924797194288091812822251320279483633159265153108070119461367445999805272018982701232349185775389948670206205814744665842568939866652500248112778208299579641085111105739208597476032855905326435949530442142299228590829523188943376592474104197044867119899046693439457172820360307646773208716713574601958563140052574795863365159870578765334081085117014950782076340840735982502215474977731686450236415690925145521522872912168376839087312835050642197489456277214836946170285930272079563813770226528657906200608363288654066752546483543997297661778739532113507060786518174522801967667180107815579367068504856439851684609842499899822051816691026990770944014702760175414782863502085042676695845071957004667025426798537148541549264022204523110453936509310233140181790235105861167219233194554449303053285392505296206212998783055022929036681048571743515554382089300132280744969500439132623364345383369561987376261103884526847821635788029827616483733796734737491258668300937973602120721876845267558736994162360266436694621646291201814416247099134650829768498938345196248699302631824872804917346405105950371842699330442997162063093863769613152134394687882780778289858975897450861002776426199675964893090079634929910559191242862376046972047389450441057935763192357696095355539504619918154928423894410301361344922735380873118962340471222604590692657255660255305886320380944354474126555668018242457812036031622891029841723662121445972276275342975150035749089307796522728003046489698053115366248339792235849830186496378804355859259938734386668160064221020847272174761145371122708701712186066063607648190848898862050113865949388707965022989718433214236287980645166148100407988948921367905055651605974825010702314941148841750461226733708375682456905002437090882533321490675075119309679250694205451408086729529269977476134008022349316205194051206519658414499440997759831118515252188257798422856853157392034309593835261676573786501733142132296028825231784478550725271923507627667986259415451846748453262648447819772582303828203099989155962830483777205359815402160992653333186350562371661789303444852150339092727289747933074873263074661983566321625935426842351025323508187429650827199518014117848606979350059750832786510232939438976344610662824162741843112933862524328912543082487384815003721453714794934399848866311975641635506313867238563584325588290686907394587063939773961151102917666599774548274214512456811858913833771090708903204214968257683081300601996744839544168258779066056240496584002433471779519815808332557162726040801485659489382188617716783242782732305673665359603810766325908536688753457960052690555586302348249676996170996207862515526134044213712343604037256808293253298190982123632358007025743587657484688998873844619734803856116993123106266748350448002569413272505714477548500743484377896348862993980517642125281867858162210636054901804974979224657013796405651193359819063526127234236200173277964886077207541799919617815669961816348004279503937811410669010795187044869971092749765485738387124843248095210375429836173029910740068051523597252188139232283917876073157153759962669839192819018576161658542252836977506976290257571040532573621505988241135211796104058606897160383721634579095846253715789402967325348483660857351175269038106544165123596938119101900617389787701740069740516594074579631518768553240317251489709637365385740697807228530209501791236313895470588732441031445895631912688687266783295568189172371971416681568383241290852778819015195776453979039956855969282946040629502172071048779517743743714484491269442427107372128103795896842796482914852526144744496665532844701352535990081949800268857110763804148053061353454679913949048763826390147520950110188312159725006370577357484344082341134626533884979527119417241815358463700574794789559276060145015865589844481666498192803932582636465297088631401470949001737619948075710263996030927685094201771874936381157166099890556995811848032542263713071214177868984215804872944660455591089708076215874750104797504234257872382713761157814376076615530452909981690340921017196847755703405504993817623244969491453098854554580441361420547518548875536029899970946272307877131422547742354479097654027836169727973131152608591835986326490129159014522284890751581682778550337024972114747213180658527397553721783996000039705836762887069617283607678617538803093196187237805221694414504052326944283797644259152295078041163363240734606398008719216666119705317656144723521953319378045668675600589126006036714545884237220549446306383941150640684725606477196871010523756639806414880750065864219030476650298333763609977042240143954174165220806354626507171889406329453511090132261615465067517946507005548957404813302724519657805889126601306789147352785712426021209071870913436246700832392849517378459576749713486120388839448781927571516691597572546423697840850339615703056456566338348362328659071729981863249599498632779983570268266457428673195272904080201597474243555843495041611559656382043948758714088016300246497338947573152631825082474275737778634364121453199374855540618922455860886949116360700496476730994413489894120892893038178700457761644945772698261825792955772693336638433114157535261153259180952299914902743389732523484828132338997969249334314278171420492797048018234630980338932002413013698132019616796963642797088306008368606811340319354764823108866073834089905041437147671758332233040514492962219110421820927666448754520507085609980323243736933341270393905009597944974876146568677867622281237333438532406062010957398560905727147663565240446869093381836821924528422550071131480190746484634683519263943817581980247407803535255436451112850576443454192932824146637942079301608951248412735998055965154260669157352525586155842823289821247089973914329597008551304569849713430417614848417416036431751469119426192360499518907320895287222928392431345150714595489382778779458107904910979430214658042269982494378082280221422911821780143683184793199715436788145113396258539132144477021587757863269524180401119732346636961340961261923918604788841111634362149763855884015084814144327150744067074810989974519916866814449001386408490946159473569374323978253459214321066290060102243257351078366373422948956465869010747164172648907362655655395857976551883910498780996919074905000596102363782711156349053833104657328948349744067495709394499110914030958572534881440990096525478738951156018171863190354632648772233640549673421809912116316644530511359341218939621108310636565195874791166537929737169568691293569539676943819766971779840201601012966943445921640534715734623371438233627277633810894577419821466203337062881757844416089008756646001740504872307034518422130668280631275946788560558386493060089378812630232786287993482534498096409632523409593979236831648310632597071096273364445720305323678173201995419877332836150662330372167491414106957536727832584592126531212102800712278909429318590171068600204340033460752091818163338628139802096358890411706352169620136154762996920394310153440708784017894609551958373027678717493955746932838151128196186228519225548621685746402755887982753069730910903554848943145781193225994477033303653647859317811071206129993767074898510873802804451698370368236769897682075424034548706347168350745393635169375365440160989918188533598948257021657741928196721921759567300799928891351493327947675847216942301644438630904033264279558812915631632388087774566020807690614413886283658621352213735478916548397215622298471517699968065806363069162307372377244389861536195074868552779739769077847403606048654349841951009454369235822000976272803172123899634682657921103147047162838098436806914983179858110359142293135840372193836011227548544355877665231437457910104785221702024498919571193186550687468733449094607062893536796449311880264191624913868277506033708760972433710569825799580711360598425230965239720890679502188589856173140771354996354619593859168140320009942815787064362658495650885432518307329417237195406666915093240210517015516212168528152319602036259467469103144694050724870252015593106043742087960392842351891509087247199011963693399831094888415910393785603604435311119109980822569373463429369691707329388599143210509116292877586960473404076306439250904510445982419481577763923918467724597856224002066442554038582846318207005287938081581043330825789090295963957811627264586053251475255206287654584123266043616649810334345778104715476234969595212781059625786297021655506004709554870626300126084567303955443749567776122175124868631463891804097038051040293833848154032193247959376947379714610891196380698063670172064709777171372314162282884046227795615237654457995542256774081460983720226961197077384409211234320104923562247942917094507016192032138308842485763638209270528287889356926694516605065355165773337218847293507291229366723105384126007525626694394297903083651788707115868593422977064640538491758510737744752061001966238290466303021274585360616794622322231425154113095389348540595148845458637677573278294220323450612526998681569275918836866101956822340962089924327181969869214456450023721993013378514012813308151551973683183281653626265160065421574817698531300326328821956765711915578369494904799903888039252123706863101174341077610873787933068070236151499408293536455701965553174051495473795497527867396058623124465882859996334137230679724024958707329085839887852995292536909189468387658213736306001246626869887060739751630994436620172875915805678663024168368949561588430280951425801155344294796873012081830737562274731384558038106357243111810610393232164142082315093113154025817612428218837943865063085471451162179897568142936850343315340370496911947473510466555936878086380855001774714135140330885771390981162446381183136818320502956939991983987239895466306474574008908501629392847217456570915304668828444390724786959522493702232768592483567888705098133616716522715818898544033920567506196901965695547495975455538839311498146571654028932345178370259113140043226399191541454499849599480572756283889866510828230838405934279866802971684027667703491833015746904635440143704617358685068476960885650683316414898305069612192149885334190197372872056283070620560938974876951927367571197959614149734688798162507848615078555974973380586447852321718502182703889112481989790809461421778688266098459521232030248311809049595293806692817939168126267485657948141059459946135794072905569692110713002402187707643642988664989342460814428999344333590652579393058316504208392180525047758417017034288063010684448586722211210939207155402835462947685925807391361737229426198052566038902909586293893906268023780917063483697135713948256396689497262295864461185733419767016022188222199531438120835470334374593071160761480303157500522575602327703772510669235970190103141003217213522242489398576104753109241775213959748035106236947878684680199671802749950623119794932333894606313307481531104788518076204148169732474064522286874931010522916553208572291084324492046383541238164976811176915752495733753266352431417989373892088690856831703606876486455037819532097339643400707074994180038274914775875308553532981197458227921831334724330721381156260982147329568981853143938760588694617540024819031849301487054535094365425967967797379180120111879415991821620330466124196133223322855432001750975830991740686982506421310818342730087074649070451929812839671073292504780357724884841326344457394536994481796742529617576898049996565335462774606731078681678728802679783941156457778731028646168555635701862244217609571543754135532613126563055030273213571645594525594362676191973655207618873371809687680363167450272635172137560885533042304550959922299020232026994531134283149392944530280179690051902726514089253091670174350186415615469651137573749864619706457088058729824935214238422334676414034401105797498918053588038145516850447209887020784354425313142932256883926516627971861357152971054750506715170954126716630552062471435795535909268807026909649127570122782073158645603926859511290830608039579470473240482669449629252001106731546355892500995754912961156393865114875316545586061510670713719570143365377539489902925518851359076668503359258805605614918722433319115134920261429381989506885930630659994002964071377683574641307833037852226974305289534873981660673587548472140115826360047545518776166401056391324566898098417685081623538738903008680644659943604529580409347995793510306781593616811793697066950794911106317491728600835219043700978173911435495761244760409346218709444179572723051899698751655339588986156089756073457851375992108682242597932857651086156200725607107598366501858399232793021818435483149050635716906233989068922816620304583866626250877133620720271104161019999777830228254916010375892282767303344760365889718884686139046131795353907586602537562000070666064015020870476458511961151872308071058918353880270809675819827990721661640008721678379906114380404044753561876942951669011951191390491714728052834242066213082432365938783534834300041038384158108125813790120471038077914950962742151836300002575638786725161489978147791732946574218488383757425001532003835204626189516968878230269009033867003861242131431027370585454484242523607625313144006382713886088134457830124345676467647440269158881299406168828537830650140029033353378970811930524652238391792972567032754948463907233878519012430680924798733338452362663244969611815432777870082600944109804318406861598776472361787328553825298357763561356246591599368696244790178900306043165854099749926901074944422908957180815954569107292630754041538616044602672059150311270465612605076399381172774888544485801969483970891561612787282677452225512873802061619074717543860949875185138676382323458066532706166125386721125377906639759571838045715216531057861928904918407075691450505085549456349727745498937610402891023439594835453891298464065998526426157952341821269643786282011254710366951417546245990108226386665193960714717919083951077195469458376656110240711459306844827966355858125016358612020527259375043470213718988988710137251467518801979936324682496290412882261228298654913695683265075606730349545818268069747718279107045731499309820946425194264844303138664091093539461331832623482410561077252082030336875016680508147377010493667027626907537841627868235716943757051184988537530984311905247673803448210017018705491419784671194399637969265236344226737351343125129788838793524252675662086126495321678339050713313473469723893629325571554914396692481869371563342179418455187079645019855544111053992342436068508481148001069678454094908827487138162142662700681891578105422650096588231576844963566876229842202651454051655260736880962091272795964680664883087871748553234387347771594649942497748559059478692016742230624646934056650349984681069923682866689587347098047581458903847380283423140116873160092010409385347746150455306176899849536467683740920619127779116596403045157211759427159321294601387266389885603660084439849267030773708259962999017051874874008164210214808593318163919966337058193423861168887882076485166675873500692104227455459524323665192274299382845497059998281189701216337419923662595240138835138852859190609282610038785721151488121254704741894609176933425530768087048326272678908067265163242153689779985035695563213336604392119739351534697415813314536325521491227867820711700999028929973909844871594456954183306073782885538110497377605844910351629057637284192842561058412123886493789870055573207401747890897259883809990196954072135071533113048478556271803699515726758056620706417445217881645246605721261103704044668114451535380221143760395647545045382911708894528915570966338981352362162498995346819359714679658708736025942423989844934808544314045587963731278922960889657864568594915966602773007293813819067999503632246225143128922124183460052486861496620378707440615492130454985644190118219461113076410848804208018772131315059333750739490258218145689177762452515600539159516717413954927998471097068232123828265631901763384854342794646984748410357945889344148781927835123661445524160107979575674693371262822532582924386571355891086218861431142307920091853450546242064508448717012392504934188755114269489701602873416590095451728146218607604046247909364907314372213767986058684210964581511791218719191023086733012193558281273807704802516622507620482307431615919864440110942041709509418737297861381643212991640255837255583154040824026060806809750911957527497743800741239694000951567924419713586239110767127575610146444007921565279232777823543237885367347775919943990925375757846534076875176771882554529636758522719988816613750177836953198587412052949323765131074118282842497045056023935782878140643469164754440199474983678392634538471529895583480396889229622706966660804944499950869062811446649493612513543619991515382434992556071694483830257287913492304390371305598859899239616907463706363890415839276492806094967664912234389374146150983775767016911078275286054842437517003248889332499166244113490738472750112590827920331416972970001173869024906216521628766688953272089036878241954845805111706036982535946904508612089478456638829735219740130228296910713094125518433927351897658427096453987865068903900075042746126966879714235480890406040998567751578212571793040596426627413715121538162577399921125964099152933433163437849259677586326923910797731361797310750679465501396494978692908982409404294516627109413716770810157839585557371236035910948401415531286306215189417217600919388673459573436301556627497205298760829948145940980245187422978946149609763484871950877096124993383168441518186643690216111149647219304866184248584981296375831127276920440904086487348793563497471363494712956334215025416333425227198979888891637137266656902984395242928003271430234028973926601554359051703923705596407344835970617424552672496083694152975990542914830275684752333761795647115550213480183112880539958091103481485131000800967084131233554100471325843592096911901433649750930170493060994651892309626696979881991291234318580903285997888532942693222008762555040824900023611059598532608386376268584953437018101185186717348118773192235198920839260827482888432737640495861551255839017564040537822818034254572697970376970149293138445656247957244462541753339576088663358471648428757117395239158044539911455098754606689462071905163652555500990729427349843107360355089917199945331404536678641598375231987223396708604988437411150619099173752352274731040260894436520949210197621580357337838609644593288277093827730988504355113618000683194383347663818766893157312106513975860859338462586195844148382059278378646027499011871043470946949390859279746463118567690300107788816573461304527359060117623183750435549005223429813713764111599233974169180043954836720541668122892470358022008542832329676656608298448277625420466472579517289837568027138554152974099446681108710754846535973411003677028251456610371158659385756984704800811269210687667074473347595040028493367203121458881271779574942139348159376748322191706330363801752308581180803318315377360754149244360443343140826765535362941334648319823772336115820934532203521457617680481461089844806391034138034087313747192271186300825596660002452539326409765956779066783396939951801637379845224634728437602118916773045799213594567643721221313872560678781198665207911872135703424500929701225450479400402320888714499422555918339669384046443061894626722363451810870681512649804616428656617599921334640155929460148010265164589750914958802981235924667183641928619592451569598548287943069329951678709287418668494469124267459955529213393164255448820871903208683882023746455201292134855611531067515256437331866980463411332148419621002466100938304688823710204067212969829744969983381995069033227591715624422821780722990860454725843508595721779802261733156535268586884471051535585557396646398609216974406619778310999581935077069039516910991421140911314026495474457183384281473754939636963489839641699937525998945451918806486088567250723122347169775663365985858770848217214817704552491705172926138332062532311416462165665838715193809831983766798862781799592356831582542032007195178854822033026689571923215079578633582646931817422233709668589137578871547586127650279123485227749634955120420772065923411939168167490702653229754883305444615460334835848002434721686070368306844633072862380654867681274442609323593247951426793711041844392676686510427822970935182549149469317182115715392842416271940987876798563719082040424497071017736306053456949683532617262199580703509417371274613648244758828037052995494195225409811564512763241251543159711450992606256324947406685342769764190182671029551466231200150446229162823993628506283857693761907549478155943916233265660011500738991395024036522693080755287836780643329472462439015020916177606887964055746078999270266920503018497199234163830116170624996984562166995725586713226288373574204129830936064425655543568343289656946709628430191540241181919051937930607327370636993789018507243415786392680367189109286386293192649902301500985183333105764142168304406432817565040636746904897596780994180717178701204844911721547485704920682496877391382804682375677832862874206052154332694027086602950121821894981385633921648330677261157437199660543087837286849043030295700190393853834979722341083233285599104779017841537971266789765797097481908480726819638815866172940460284593174296433029770533232447558831917215582930300768576825496445944660433131427508363391018434559484288267533071720930424661066857288722169761725651649704066070734072352385363788809959280100892864863015922243171634044034007553133412548576307000321288128545079770310684239460538017928065741814797481670243814837048453737506736133150751103703222631270402961934791754191744262648337633173068971691849186383780992839108153396301178202886694237882663485251544434062700163318176005403361378472117328400675405100076828473361022376778473208662134715683172042627625757920330379940887025939320977641487892461452827888740992461415595345253574971732752851994366230367951815720593546298071994918978366079253941502194800220764918165126607527139440139164836324009523396847622671529806613626649014126881470395868660072133502327366643789813317957455984415149506306932553306538748654036781753428461323152400844913451845403733001233003569650027155826610733323812766236226503450712803193663702082518979139367673333805282509870166226504944364394408920130262809312207458471703884775122749870192183270775690101816255385533425632261754937718743654287840868524941294016409979562386342663056695194320026881846080907850945075963143363809780315257851853797673524869046091447574479245404272550750275482105402715923655067963963179735139978723719353706929557409728822283754868728753805183706932444934994555184231819106032214125069119878112198545046552972909740885544495242225756189866692494471289603798947120113296006078468762228587218434542153799255771081240236526072656023163744787865800039836931469410295163366872776661823723740392730201006288870147632269805711098216852752707311540152139240653078550274552025404585716473091833917263922522031832139837009321162032246772987616816879663500338222697010074450081166144813455727256063562130271079306710109720940811975868047779552598139400949150368847592627210876644487286960877485986274801978923387919460380793175831767750904734064120094907426747558799113472468156767129839278284613785029580471793029021942201636773636190804850281197804311920812991248371856309367070508771153722938315580720902859539948545721653564875552663849927272070913663054360527625497679343320519804579795059445727373978760012784736981882872818224713354241221464242783302450996519041413845404135076759630936481184786321911791490433978507241499551469258880667720093600030971249629693395199378389789130082048220671655079366182574235988938827451519507509282229815055398694185953740209057139352495705392922905811908081559699798826907474560444556742934801905839138042974090516098355656837162075152772592054832590697173349707719943268504516800328788812239333484194137698208915968133458544185621291789625288868629311829606004164290959566192857365009344247812060399665622244199717756702589731850126106539602359814893878314125706179170914196144303354862801587807553716237716018397447467004696187928120350941303689878136508040908343045397932624617668571036438624469260574282247553404366832095693219178889717771221995532309011709114748820022229817055389890210230684029414396314091454176061786884207800071157648807494664743391549038726805708986909970159205660794702382934447350337484811540708175586947795757692936706148189148150601296370441181549881137568020994519620262848813295118478182278377315315259188821959089324410545965676144340240751754207981826968718698656538135002911620324241814205739148534812267370023915307226134090628556810308107626245636608059885846251416799518042132742574296359584639463678977665922272565699165546252530059567646651048930631716177017732364675694010841407868108300354778986172308971171513096822337088332414959725598873868378248009458735732720938473103609140301233380592419867895139136484193562172443740064367848010014119818604178540345702576263687686395720843039519913012479341723119902131311551800330521885880016341020846516591291035338633269060623186985849633163541188164373808032221085368293964296797158027084401992723112986037437093933895184113688041394184200511603344465762505572859804220244815006792430597408643427517471309821233275363332138061163790510579042914730005347420636356601073333929407219619194151469201401182913368716039678207441615064300358381807883059051304655430142992672055966387293509534671194138721990611922056680789319712233947716824019593949261723002205489682943204683561079160917616247212182343829536149066632702633839906350494187074596402261443580685586907399068455632598557214931192794355812579528797188335757759765645718724747381162225314313767657104682896816788293767188175014368635223484054293284651416807707351865391372835328774648623828340463024412411891802874306753406831050243485926470907011182856288287721535314233559634549174585725923000633116430982883649589199572670711303908495785726381781714578456058496705978953164056602832311121666483460770082055056083703333461257201545662444565609855274874126781472906926027151024048471872284871016410844134442144334601895350348320238064928799058154035113425945022459669403809560933433249609006088373016725230119560546341583714114691878804986834471419217500865884772133051787339586758386094625178648094898064683853637803022525520178023830705233783874486373654114268122276518902940352174925825313221003908796445645274872824941280562788515310280287559310393590252205593135086035220634274513279100015178561050306722659329422008635994216333999652683542405514632309623844260321210118657297001892398497016360149524640341148138048759449937600464250631438940291091166558845042312323317788122487891834908172201812643836751096588843285874174046867914912224532104044584228603286899143198208488086252441956596816709038209962244498800034994946300731795419311049669747333738017544708057872639466185747789958482020778443875359262676524060121495535689627251803294949110578739047547805993938211761135073734766472421626315257849057453700728137304976557881694949752281797819064305408051911371864999116322878099770355864175781187054584169380588952629782465015780550450189618358365001374945152432363719862905831176504650083005976129484699561693467099064223964328943653367595368453498122580648739563887015923889420176537777196881421054924881459787320440237665664977078376161519687318602584725883035029286498736979364403239327783145017729099687787338857501180655118777631875821556484861500979927622614478185813021678788840845067091102039396453347079189198654115294277640884919616038895692062734600921046363736563168850652485400325563235967464840420420881752568379722387740146345818109738478845532138083430342826045228621892944361844308510973366108706136581382000668878203288471884293174724228525098062724958270833625467935089231998067639658232052769840523624170591724018027183576233069516553018695935379723667961240818745463919790789634543329479528040006589060845599708942994378718432941869281044499854428761614695644656570750717880820446519358391201157334042409839175387725608574901652791779313393762712172926985826028339009189563819580508552413939694601490122708705023266107064372919529369819458599049364742636816950000215909297354181805650959589658762671690362742985426278946977742100434103456262818859313942331825652612792099315158583783377466494062291723058626536608098172578927525057652322208178185341782614492929649548945762546463207736706666463716247382228554466998300383655470374767341138217476556799547612452869366669971438366992426377822875480371173029719432319055702093693885908098658332556533849604093819006665971540871389995347733531517027140160656570696663399923089378542268679270057468309489859271805579582931313600873308994978514364555668734685176767354517347684121237693667704639279205084282270772205524205427167175295091285792025862886408220641574464317797816310513090407153640784178980374076516232710763446419724655606747814081393816968595315366651709168167864248711779803837775976929091898268208147186422036253298257730527604145381234264387063069273766896947838893219925613819631881926442803724023759010408295339268672040161087359163184903854609387168982246449467307323325374854536711479573007827202573537082628197657532983004461415565900167070401496221421794854119536185704077659923099927875727672022531379190946103167794818094535993351362016749661912625304976796686602827518781044782235069518406050081996645944262456593338579225438595294980805821022703998893287432401911469275665204709153128853489354028286897052912089388771172615533462630505656620752449479251466958325066940004115781858580468376278406720542497341146112301780149515345729734949570391523061441375656944312086157108700554632826856614209535727063081243140556555104434276687105156438946020590701976578244274878597270646357348868222640712160788062141983967123119208996124763069363568586086036083868217588293244576305113338059134773457894068776347873896576561632437256500156771648830879698913461487058278116598138624837358615788856108334082771038681635042754149698731893103925732447065371490319894534660089640923199428419344491244637335652880580305537772547973642256423535727327405791176767496755801082099957814244133627518838862187296885943437363891015643885484738225599580581822334253232016191241887444210257587044978676326097825421499673247309657902046321605338193734232029974499388757254515386950012097591359447985002618589592169670951419024989989961687089121226246162989301343740041427861833213687800714816092701978499442516587871411556360374041154484508303241062252459800024858220500196152124023922402402652323995164833476664063587681484322684331077479371780752355524566790761375793297352388484897222133800296990927554841319462895666406082439854341819209920588368637181519019513542451993564833150201042789935612760872646965753410510660055492322975324938089036736752426443060528262435903994883536035801231506218018593589813330476527721217500876090067058221614877867611362703192978597394001088885355323989885244668895560095423334442903641247929325658429828878350752406248736467739294574528918024796040233833894515190018832581461365612834088685730720963085412895611126946788016322195292786379519841138818386684879517778943883885271128389486710115316377984015366972838102524474879205486895225418112028106473135640054468645570710010773619136361636654072599567212035913532031448935262708278165610123880328598615537608604380952521549970848885230533645116236707780801371634190581286692112282388461035736191061617185587757580619733173571652517548806280200397824950878350708368439913347751935561388653351323156023134308717161017768483164724575849526430268488440905798861825713297084536650609527503011109772000984750704602299843801323751778376776370395755888070461255820546929705457207473439119312663090158653342183939164366997732846368433373001622196086804137115085106228713533083651909442558192431859702158074558514715965218676027053212295165652383107566918570706007664365224484686081314222089678303829252900533877495320073618289849266787276075351406255530660028094360904546569900943453282554216471628238361522960638352471450187612284847615071431852250321714337802189145896434113598979508748619644698633194734164068857549322997937461772410401682190435902633740476421884682566260868816798358789451830193831234680396735137740436337327260492222421633019120074364079726626619184804332253810439093467582374022117364230872760284983196997895955293056295981101856608784507301529664948041936194277841592814720640521784694676087419666726794580389346826872028087861456176804225009115715264388905845091126360792803687484909301304745809174338680451674918798911123033579365296859670718731528771190969405754521180266385553904503105055746714209784334605603839167371762332038439088894894779184053850766524155610386721270092897302351640944374021358226926705591708368804583440194335348169005682708938109134587304404452916780833356254545574100365474265596320454514695292121681738490188729296235861276509617630508878527811428644990537379592999134404357767245739657713493108738431027115404274062073284091234334440552790009422368282508033988179286155976223913723542632608195563038722632580674324179249139366252989744095464639372433965558223190642805508948182275020167432901827715501289833887680114714859283039689925705442158752146076177078118031770062790215846916786769978399078325811131970049750303442780709557941216552870162548976200242065531445040084009000662765051513564908852472565021046031820390433666676670543949936834032699933608554201966893004450951581958579408179083375342827294226590898966094477979659626816691068852339737997963643437964119159180823936496362788676909387460631871236608959611133688585059955040858736389100127268755421377947460362385534831719427279384783655571529219401332029652552937948436372488970485474858455248342484677937750184405033450854806763971769397984141605695914297470918623419323077735232014098733494632147012256472968594601741763930392366110417046679344844421910294868807740806992304737496731715425773867946776722369924736593025342351921695849045537499866566073922049154480391383857217047986452828563048392165348275163766662857224549931032167358963337980786597147183932224774536081805685401994116280213074987359837204743490707833322429933678670542964657349254936771879919448805426215213654283487129974476717309355344178847611733709018694098292483131307929011583448724017103444344145804412357057307515106516434739173964206768340247299665447778577639655853493794963437795655483048759723837501380474236724866037887648189814664160761214997566464842478559739336849030943992079493523027431209536678332356046252687436777866957615485406342257846415179830942359027185974711104763803322299268694558987431295671468644996477390826943624434230183372558652620147039529537571358323771823563421214528017186704088820953255975229817918969400473357516181484919043582847637484083593998514922521708895151936156407324770190864230770120373802332400334518545596105153820155874057715699556347559947051464656904427606621221497735531444965450238352425017856630672557774718563608684748960809657670637555459569452148072037082787966578590010240137883062612991232778421490696223925957005999768449492753436099533268488518037309158370944549345343396504328815169678825449051356577366305954803421301018298478675313933550205848813626210126730299034404170782908573119355978577865985384586879253496576294934337413757222562853947660792331514475177105389927760924709255706724961148357644477662676633387746018611238132572193037940866986876932401839557363724161063815112289661477250336006576078808239063869372357333296744307081993731958117883312198864533127344440023660417346538191550858151383237470088460764049650495952048496216756600929597032296235627845050188496182420231785432242095060426237681596606022580684424734885466504760674577720827670490826220264403305218091977395032980970333382234522524218694549147159006514483513956080760918196421636566433386786054472126757412991968595436470612281521201642745385411283332009682117854986238276460696789471864796671965129412474129610026677553297520910866849811241994025560153206494222496456005131805367807396218157836101878386184969513027717400243637293988010521808993682159781858359184530269935877071351531710727033865216019611971035246820027672411365062744039988673815652636839881735722753996889745819810545987281722403134303416761940240167508462412828510028994964721240658334515878486825715305842631799858103218619376029465169927667891440488462719995730336532775731777686358520724643174554957183488715302782129116750405307620777432400611917080037770638346399145157493280430087334080934228978861256773581144724343047750983773772860493573538509072785155419670292206825870029589962857710273871542715281244139502681114360361661077498710017451589875425229343142345590281127094074549119639903707526637707497295189003656900734152289511953052069703537743548104268109904052886055142228663842364537840495434734324470199657385259512163942438852490257028989596488517976778243777726582377987162900994894379007177385542194903729678468472116803281345308762254248863921694426393600996129711982138889235333721682519575538078792871176026204129638768468062135477256027025892417309675459138714185307475447960768373607140272501820586768696803426912362804612474344021561488905010974567955369386595184159201586051566304161822555676414540738890903278951348760376358814803444489896206476391197874303242331596317880985478126799952912245148930641497631465036921326289988443235074911589858067226117837765817442017415826691832876005443979908139092952447839609279685625077368393468087933393854434817308663019191117296556313584052916940461016949886878535068591911050264755771627033272443392553431131225528318595137916388860818745464683421902149094338898450120146056326214051065477101736582895724846430142501056439663771042622349308765693373663955917750707222237499637845538301222272697625738974976201420411493777351843924798878235511288196348174082839705886366151178644428141498922967557432899430812132180231754195147551549077602832487304122096247817237902147244435841093221256031825466516556064130494191380802847482531579488196527570941720990319899824768512446464275502286896374578627329463106052885848760173228765740399829225815766596372124463490976350635290213087507373098430299415776493430923804366918669788707977009422373623778798680444403531744316816419952738822466265076818203567081547436218788492218587686330372687176959661619644504323376586564133587365550753984815448255104468171107018952668240700350838013018366499326458716160650040283051272839489956320559118112725740840931961638178032392327044955485151001879169017218920431551498555121704561826423339939837425025469554699540085853330550440423862810841872955877898687705924987018143445168799601095489446172505738733919879498789561200440982433484855165773951770508641889971042092202201255614357300353247424153488561223144550918854555163942597837457104324235195371296034315227233205504976080740060446605091043231412450617461881045732025579534127160241082557897254389286979741335153735235390402772216692155068139937178891951315156170581103231697424831589556952736834053482294507211431119189486449522197467527826561697948967716378273393443834494404577926895344528380846056872032981297304139441243717082632160497211134845198383516200050877627370719552971845550497640626249138282174084816327100806591692733751721204620032010526319636071941913561072159358586003724785780616987826793352020243607467071215259756076324529506647529346218271946846403263028379717252392305872612013371457735922201789482212039106096946122536029421468332918349510468266724761107118960619664614874661100208616381822485199237441998937274003565054313286680298073799787750791062374347698513665672459030792084389873966771257269158352957485072956386825267196937912390145251975045717138483568521376380354267563950989065705038324711829509991412577439222305035770465840626481735540739275857439191393003863979562424025956118826767951663004703703407351215910275818649258134415849950136849069992315707051228397190943516726432257043408918410010034205981015537814796682603050155670172066811602402675327829094710678893899568972597230750105996673638734009425524476862516392472048030580704747181996964222579124647695538327522299221344172203679601921320741371103970692504103638057268515905819041813067244054554896765739263178925966566291395607058044912868075899206980773046962679180337780796689223550065795964571510468116894920503098295450143914699638020513716506093397785289840316068544739691257394236183319546708956039481564673321331036593210518137627065171940446611351747651872167040755435286075742422593587745953653442878379714249124155668842470798850226984008955558569418806116163412245330546585593447010947197996604370969788137899096839239894400395972877596099884261981119109659064251221611953404438221476387721929912344642165712250542720870023202431113713256095075125513001156753573007559906440827788205115246775066977282095967361837339403408692711043661277236293753949505246772393482989152907497263839925202971844532422102795485284531670893818135683573911997965344713409530055622897495255236545554221660406789862883253890441606378285018232327385308798347756010677618422914970018593061472374880977702573650478235657665672090373674103257224212069923005222362187937187803659979011132067084777190854558945987388011360481825498201246304688858440287589197461414375826137698312933722873989482141904487233469713858367247909566098062404975300243717308179877959540547127642917703534694230612877775752472362482527684062856962219330399390408381605707883657440818425833073552345282951469512544239421883507998611588749126962175251126963478783828182509681795951416159800184993672135021938377660249880296754826943727231615511993538383668195417648071860855277642660676099298081817903607457963841624050792427864136556255421934593154222191312376474328232598942067209408501867552104633490797681418443549116728051505722708830947769795603259860542779858481553220933173062744763324289318927801466397423657870399075340280419193068437439832904970679046695835914970233516608025141312265853708031328822852168989899958771258882001053363844804299353449381025554957097658783619579178899144196206774601251376732637819058778140124060714763360612060309891411113636200432376519713410582920495990266433236366933198045571356794223884478058718322856426000161715668256606829707065921158342651071093450863958783041366493089615070637123820675909196151828536628580455732377719420736426102164920291656527162439881659347709806687839173287467938126869858706680202526898473537628209710465815330908892119679553142078782235372665569384183658597846488119818880016972104573122504428603890350229607199822782364023416642969344101080395401551303299844444139303162584931979865176934864179886999699718401312010637165915517470219709241905071296241048309225873155584812750374196580310200167410339417288178429725335185232415608864229507275472296693688497881205097674154024145734315319189496112370047276384435948611402337931227102426495140207302986909241067949984317976566498119964361727237336599162592519440370727047847653038021797030949065013159745914674540765149857961282016098573401961324545683669692357108853476383230871592235058644624342738772543650971723884191476891209397582184254356015889315612640907336304751391549228080044052716458039732152586496157206690849953370343617807070746706524345449460250359965948421846397188316793805710308918589287595304358889768534440177200602058372828467580438623261134590158163898125588815184162278873697233184433595892198089946778840140789819522782022037156163125348803300820659890993929611807622292251796941587567504240047298576574041276730429010872715220986202679392189883402064177087420718598008053447573831586247544658801847297883687393843732903701571632177470420647330809473330104796925556689835607195999275094469019784313204724155908654997289930722756970862252932385080938511839315462866774581630523112763988611555153469684509688146193820581655512806783387897319573977155264885325747642093562568193596740467365401836008133633970704973974205449324039339772125186774935853879275231287574703228145055454005774644161171185154684486653500621165467770098943836331251711545430581148294195000455393479751215599024365913149239776695927477560246792803106296669192528984355817337503788298795718248045360973491018419355156424946077597779413436650279676965778011425140763904873748102923934446587533175883781425871645494118734476106719477978910396904291565951177176254045848439643013592120818772454310034250288538975260326821718671182080822050582453677986055770724891716250259893551151711742904474654073432187784307085232366156507410570111769030143041458827211649148143511092527559215398587926202298442631282198770219733146512762065153241732792177517530419884933272871618110094388816759351771830100483968259307301914646099012183588644560686187384128156404593165575559508698316679643181286387261704363892904370228671935583833538933071253401321215753926919756093637575044022943928187724741303339828226303299851055790779960374618170292814326142053275949791597419382713651449320142580931402283637119081228439407841031894784428114217883362335006418616125657980185809559538773994746969399509443232357189795650148462980183822968424878109634564714474898970637665604511038282595970531167029412102422922945268132228298876345516373934208566629755194469857142284091798799373675158867488108254693887534436172638885360573969620955529105422339191106240813478994635067926750627823905580989144044016394170964066057422310915002968639892490311328259245542244781583564337655996983545444452596522758893523253664137753285064288490010586263961706230097461484703792029402136049910834970197180418502407657224624742350971849154021126742196929158633733298439304325029618470660861910417071441169850079685912187967308335453720377990979326220573998767660565392312651519608584750283805152445463178681668548975859684418749329427668234212904671040405541764757304563655814333439514148118380716478421721940389698428255981487300499745539325981662706320511866614050447802380866915667487232091952459828780610083873101576660384884485724908726570110896024869190165795159205749621250091110392417268870550081358365293067017330170490695605950355830434306650941950224461730506195833873615011295604590864492233950460674643196474224063490179670121602154172509128332529630146485309793137394926845990314124860152686279784758276037397311224506373504133147576590083154068312477858085578335306180188640177677143866050868881786277773367688345156495353197608476328101304650192954132153898871580441028159580696184853127401532588118317753112932299563758477393405190340345209089196063643845188764888229884852557047061669961734921301460947674070474563771265082918050413843159702505432625509159955258375174634167038316410054957738464711578357137667034698065147741594792059909167019590905437912904635085484489521331431948656351377020353348203121817035096208425426300383849304829148377848220308972624639295458302962624618784534766596565757869656370974364165099510263069936788330359624866494726760970254350218802117274697121812622278883740982473501214416337916628241678599863494550054174690519885174196678516284360721812614063288755844408583894372236399114597892809046452906387236624625755750792210434629231258689145233128317805782860230342030238099938766655666698280742827673330552993363146499830116426981922022125961477548315885126882861760648146962431175428175656649847427090402578424053187063973085658063705328378461348086884396130996203305814303869535260717050310571451009320018713296573636472612472664842813001776826973222776917347413452186842935276003785711982178541965140612871056596353797862451413255543987788067714792871177851982690703291792828147503734577150219350609296093806724729703892190482582932726336998763282354497123422882075841503394267150897892963766916805181752198679068919583921267170604826287604165446830543695322487523733884140686998903092516882737033452076636139614585977164701597567087743494283541594993115746253268274829571811326488265648517060260245104616180534402939834744745655990501030908225755731532049400120849418157264327342935246254295679734877852972628044934505223998486777253932818525008072354192170783747402359694446297008409645031247609870292249836982597015898498050137809226787573430851734950039816598184811049757993905521024231387217579228546756741001898771627573733681063665448545100101856950120488873531588598261733561183599629564683629976117722539307326617705198409322449141938200181427621217699085348149710124642267688229847069825308711433831854313444029106168993589006706678347915575174080157202845599350511699193755065802638220260913236691347608763611814306036858257925197483305021493444082232077250073530815747560426427469656837344360700470962840435626646996948304215703475918156213764372734510531529110826982215137540580484857630769316908272854585498468627317079951110913433894463944952932457485424363049935625632317755624833765516322607335635710995319246698763167332072913341942504560381184165379281748662368067376552100834681458952327646200230992176603252285415655955127514527576177116003023928090631687834900538600396139880729969410780639754272884922466686306273653280947737162125578571937246097633334373719624864710454696692824710674670198780565342086221428302166184043277614664231428392423468682664284797539823835018724350952580166122519010601010020677626108779588268430127594843891524478006611302626342064996739432332026186699061184949900937300388608975661313214345176352168549541565515822720056642315144807719887598507768503772659011930505764406978398527598980408208785390859137043874089904217123427217768395603192465750753190528262542336370356302301390638653573708634560296502446558287738286980358093534491023178148428256648251556511925300399660894921686305777989222642914246168330911412184543406447507085659628320813330005001988860244794566002249151258283056628030713121297274885465854929372780283360350956702865364415432921885130589333921313370528686148252179377962866478596296045691115910778997046842959497540702106611260280367944612142944477819890758019068566256206930718293972774191659601852463643481713725069854459950251303200160719056925591192025729865788395668733614544755755901214458089280904182366553381220236423589911104531466889259414682183017845527009470581900969193603533184657087588458856377451574877428362803934039606887214818087359631809387506431047525707932428020129309601163090456100134265578663571946142519358303771881149148685260442533537228735329545903955987050476673756281089089882082946857068833334203782930441902899096869078351982683179543387872881843565395994024508128278062702754124355045084856761842118927308369052592008662578246504145088048184820553081887310976751515338217175983655646877845608106323711986775659137622793838173427876959216902641596322108877468795754342375235442126259785681510709263416996998244560676369899113171713455454933262994342274156551036360131280213387999499213366861156520154402250563437217332159495591208308758823788202798920015078144811854177563155451072043519684246476684154394334019533614967443499910235757490692075503515886544702880769568530450065457625852883921604515969253200749382806276793028263889602450749100314174751032438341897579433129806895252030259532821758645385241743944337988501368820964627390302253624808446041953679701362498946972673462674501585145808105263980354993982839951989544540199950163799723892330987908134303820858464053519824059773731659374689000210459121324688572443419769494338840750984288857817819563067805070502956361386792911807091944305145082404986197895605801234186917001195682846586733670814259958035601191141980013540670471786070109962299107767401080290069626743154415690883588969854426708516657012038679226601569729160215465282122688479967160000322311538428715225875912288367536766629223867595081742673451524099739594684636220556639836454773598742373019856028899104563961138966846240429363533126006532022151125010434734372207264877395919178462946030182355065567376337550718764627274904213790248706852351566293772025981029962588891939142583554614089498346390752020177933163153861296708603075606308458366579555710456227743526846397292219392644296377668201882744031906449858023954258028019381981301610668392453738656026790858403160885093514426473660168184271510827283560631387177097608415591768660606794114353240741986651777273449339237733522914324368073264042868650259171213737439961507918488016436545019984771535248504775889601492902799840001431387396508862515927897304159336548332065969706760323715400036933538743755499261653855547252282879477247573605873378891370890489002110326429941602240971860148886752862624495561838568292940381702981871878937206060857751848731773318703037985355841914067216869639394922353756192417957968041619127054265897374010904970293224423031035350290511004123150702172172563126918841670133142625449646118358840161305502746148401536194623750176513554521366509481393988749789607047185626822960977845920300251919961602984950133720610803733433642743020823166042091187227751290706786510689572555373043595226718646601044990732755718886313988133869537780411871808044965047532529922787527753365441390173341890262747791027031086567640362310269969864158826137867383536687966545511037147043319148266506766231626593304946766061602603611135203017716883923905614103241092510906420922116376626731217421868870948381076870459476257150362773974178559603145338607892899859471766403718039247416930993554221278354693408012579172432651047149038089333664560900452783235692600648586143515597762162492776279580977966017894770386062050199827187059495221157029961996442271134303299170609678850526285522326978105260703784492667756824146362546707452009263573566143070073673608672603887421307075862543818472005753972325787432231073691993768343488554857191856150353125552127429596919543384945177758294932762051744755514203656710150139229177215690022718207985468091855951616953815859444505185728467119364980653559152132755451665594943590058114037054171175330966732734824741132564526922016037869645253385944249121576645648496619746254389017868165246573452915886551224634924155880557183855529104731132078000352604980769854419629464861523361405492779806458032922746444860012708186074266195943169540190947545961065032648599790424422349578050067486510534013077943030082345173166114761689733745626074581960036683489912916726734952640746119429201621740100896813997559953815793911447272419505860214136567119293825179184539838995507016545578248546181641810497495932055261098196734277193472396868629593526759755345427554745243508782568988278845112853577644249136333041718362290422918018740606843027571367779609975716664930201408079268994633117946960233609546079193104017238447224440326859180191107117930888724222405004920607787643444840184669868605253571390353310449071246510218013622165401410118124674267377389871907747688115813239403503405659776547097012711448487481671180902445870224659860695638637428265828572952670013238326822266708087144034533756889686819924221181120804681312228626886907979162677644928924879969749989200966311537126991393977866208075485746707955545624423746116220661918085249822084210441814804538337840888798174399154666589335253592363894268900976117872416971582788104228716869424044476224477380503358518431167065281248320038889312038559628463435244323001174133190970861330859877981898324757534300370086482235931930051615620973635828430870244724732228266069731153173009777926994050896810219126873110278080920663922583871020945949925313553799238357679371860889174688298419376089673562202660846154050128950245285076241573102592814797433246605804347409482331328465875558112895927803218029346238869053478129744756949769950724649680333246159500574069388242088362794612046262432226765137733679849674656684976987566388220905192091940357191097373209737487508468990917230919822493683398355797946584232363782431095410663573863954919484661058938561144979036152518271903257217368991983335846046787595687921818174006096698170676769286915790906109004027338620466710778964076983077469035152615852974128566385785878306277184991642478714165127177056896085319444426423473615135380422794836888800943937074725748781490491468286674042208864935679603468733002828866716864122504393856834583290290209083143834567335909679592585293463289555469976402405004636301242071550563326863506469607315593372807178077258069763358767013669648340324750231716287061542326063923834685460801348121267162961447332685084243529517357136735052895611957118644121605794917005455970003294146338559924251228443436619634886152523844476543833696613889473033944271815147754273444569969470982345607132183092402078411964860939850289065873328814932654253851668710219397324898895501106783257424609253418203460747841203504134038904691465475484665081943857938525685035738253523514873716543372536711210076882312991242801813398460689900260865714939581657602465227238429315413755370301411131395099652289583999035299893426717076293277687551205055215338747489221333603683742570116319235316021741333299032038226575659700704643187513170176548461793632272884547266969855174477237097109914597934484299357574925483636513671536612253693421345082339273826403756646068664783133836840366383997990171757977432667601315873072988009673199251046145028974440319589721339312054195247722272067033425818431568626590657260652703649423406000355584692153535075309068160379633973353929697891366653559934960626657231409711329849911382369135565477147596804425979676476669641245462913636703545208684770779926477751437013805442758692334341684077655846183433230832676233603605577519409467212649086521799630131894939842269074957886635420639820868458180599006203782748043623043611618923282256382132565294415925262826770989297604288461628377533356208927046786746663922302761808066527712477242898200913389744360435480802196473792145616707961350445658493307124370410751379102349444965335141809810354643811359675468319432762700443054842498201931210156965575259965518683796149296377222408874207877096706954937274330176666342297202851144944561057102570455333955512729059610388652272700341383012482761009233297857171692024044701828255329427485870170248732328711621416253648754837066689097346961607538138359634585481428107075559341544050101279078547146233226336328997780992549636346566772636234901039512175751050622696973996099583972037286355364552530904800901150635121908626464847946578136157985855829941703852062932916728267674691643543949078987962814007739950807790718307690046170720986618969535705417340625897411180737428099914864020567328119387145132441656926847464568950988344691815818769224953460625056047993549162751530654159712028146235636786430788917613584570553018033458899727382857191778813271876408665899743308198288403904821822475025972198207876583275414566682140670309976299210970716810856219489177113416761831651944594370480113433286573715139897637658504106687455992432713972962408581208080200558713072813927550049132169140571045388405888310475264114755942971895951410800713015463948044288527734026214790605463531919790896863151174486006605223084642046023333186549018408154430145966259584473184489337085763481661711870370962363093165400596719551806509242742993303518771673895046534933740647289192779231097603287228095350634558189173809984308683384636745841321141189315070349010463007220833983997772912254744698430823559598785010413004301652062610524237387228195857119902847588889821546570805654494922739405454689128626497639844682274589647839638418965606519261994615124970457350130439487001328958361882789889468093786407339164209415845696743880647205696314418535287945312792461702725960086232832323243090931275759603637033424860904142408506869259401859871965175900933881512944422454420268746614535722434073526290099230295532134768363216969786126131888666293954773675346507300610912525761747986563075616297555733327109635106553040070266315823110889917693879267887175119356291185913930720572322929583627761694149969580557054990517015458103299797018900482511303047729313745078004901909524839064361349872058877353701857056424554062912297315651563194699639319606492592807202854592244348112996711664648822516302174059602052907352346763169127646786888674969147870310173213939271066598104974555217502228047841282294993697654305092847516961975550420191969621357621230593804959874502510047940604258422669776009075241937199680638735109435809649346796556168240441850459455092443765596783216768924734976600522797617578006675148432700166632901354882327965293042542412731020255757064043542583785066940769899634468498395594496777388540083024894961051430722358102122704520275478578072826899386997325036231170254128524330307847721884967361602127633871226349461267305480675551344858770859824166858293760938507907665918097942523035795283496290019061384351640737733843373953933890283100408635205786176295984048222730018567654042067518614809414219756629796137795267336619727517026096789604640662077944916690233960794617934439995763062626850417943791168034221516724118092090599717771043910275864010628861254139666661191739936237067876925810002350562150789202140209514729927027552488192315327269897283790730276140600866623766434022284276462190590496938925146021508154809319796429854546631688066592469200572707199982477540191947648472629930403233000164990997259963015122627257785183548723002545819734822926218623240084666467453749545259242814913125585525561053516452337103945072290451453115952644268904694101087425968892626067865204860958685535361575457029036091980512067877503301470631894172337858377475370418633051453037631900004208045765542583334260110438668668611014159664807430862611710236856022279068927472564416563342848964865392482523200043327201068523774536456749566855312316256688515584120628522139687361436322612123838754237621788535295248265033993430804700154116555440541057113840188372064400368744768570392785404450583699342168702298442346843635388252538195823500261827110891744491074896305930015524924298960586852463564743363754902545296237906258853601395516068887118426419410295657666242753365857271598300588861651884206259242306704755546556038357785947180681103802298798799726698967875932864871924901703079232977209013720210364521573625908702544670035631767926594182518518976840644190961551326070247401792300281243158098153139928646399953198207597381704380075462795698950265592473298770190716485463912617759447428895925886722149524162448303505676166975864627275374380722516154408268089247732955050103677383044110636147177548833698553486618713413448168549724915135706039193733700147647895619985233037083801555580236629392551522389495025378372851482165935082104454985207700714139732133956369811355425081825107330590899107029040448046524442218818615312821095943645727815530279379273681719390704256009292489469449747632570008194946610116271184157054704967700072062787805757346834453784469422751769735756274909080577616510332798998514157795054038842449180579097864714424093502447067821199533317266956342760737974447395561676183080501325237597322719266951813934889076699899418226503332178250649097635155537071765635895748726871923784267402883295573524015152617246215491486306523924793303122436268913694654643678936494806809686065973310775954622936552512061462775949678281124290864636740287266530668942516478422911759304616483112338259271489455526391126639305550590059148774106231668827837020693902455952815515886875005037479031344905627029675001233890217305891236951034808675631436832871902091887597206051664015894587748986493864967231119701399208239669842618662425565969754709344482675013477364478907387595532877391591984485148710883176679603033026351676461301604813002776881495944148554569085778501043681807904733419123465418824645812933957016502862505829076417341426819846120619305025129605433772756469188374857655361273921282677242351621931483419179105921245488865190988869417788506714206836555981135406972144010969935024761806088542919244584923953233314824684586498648955649302512766742317954974628814829870298272108279117424526241459397946104357306819232223415864571550458623729591540779060139062485334754837954280209605181654258387249713359605903354226184606279700933166966501809374736026017394954035835867410928314419416405799028697939180407302317047899203823114457896246054835529556590258161349852441288195525228759924166928181456403864753703532502308806939553424248694791160668829649961814062955463311713552868476084124082790389550578189637239284397154469474184909734964005404143562833867140742484857372833773015013538382803837672807633127941364456672893529497246864279181658953561677633306387233937180767272966243931654917820691145447780469098753751431699395184864422231074750971357758126069351500062768463355138986089779848256245055081503705676134332259938980576851369914746839613977155204287708702860108333327430179704321217518885520339633731998569167420002420167914018619640177239734644530960266487974413168860700212644975516219705214696445831343168623681675634723000335029558156118721409930464698693378320853525313418240700541551034346881312150271760888772476285915376964647462743080779000158048198395552474352516005417584752771349883451472316891440113329325521036430878153187857191422127757711741649428109006574977990866652328230689703990401509105927837844708951588184658801905337115897410391301649794360025902998844447146654370303068822787941721641820389934804910078337292436761689872070990996644217531375184266571941507310455575116133868430149496101430687640722357417548083196109600519151320160691891677759165641142740872236329297659519928058087518821147016447173576665305569854822161356865295799833252297709833741030151928223379762016145575149244392300551580008738384151219008436189033880176952194140805613094682969746866939067913214965975956328326433523962786951149760180684210364463647541108613038116354050548301584384888415676106494718114176194121001810268349366784655388630984434259012140665885312446214225996011998891542877605546367154123926483046370327209687086835160381044596614003706887065887270098351842992447894798771644042632864363323409488535974776441360474382140444773893690402176500335986786969117523872579539767495101489296577711102322056617405131942629884759152165683432077918834406982798881292258628309549212412756316339264261824168908693908165435662402951758949878780980196036670053978859441919920481276100762004481412538744633010286803339789346591769378981320875619690490889651146107986670437884036429496928635055564844661788659133089819155994133991117934736109025558358983000210762290926386187060612724582843834970482574780428252205178211179892058715862681161556958771628296759275119268615818313806009717823452172663472044693405331175553175307853756208842500035115467795432731834330229215876858160049296243123850426118371749649293807690108796389015092773463429975129904441467404016560704733149237023578344691265399415861633717774629916587089397417677205446583701892668689640420437530602978075358890465206831115492512824723569171312715586940313509447917300630631255632811392372955812479698985650761386158827247137444192282626758892875635634923979731826214776440214830758958380628196277589852553605164971006875661692002904454877320888632316837932653418217402158992664687922334268448287152428524675747142525246211595826796046431481465137495150795396553870422938544858967122939331234556411219869270495811448713824199422673475481312657721815715826796757629663628716137502903519247297582060586660966107742634962449120773420057598297113879092246308514860573585422732015908064541926019215743292840493501657732172970389401283553440767307180419895743129855482175068357371584032844707413126015020386608278908473064525963695676424794842519741105015840970770111462291973192672433585787753360411507674852256881699465567990548194722805485945416766476668418401173048292098412193445257076140250874388295676845479590499135088099326258667833109922859525718443977775007383579774440121541929273618357476239236372439348139672109228540607485388692810392337113515970054693902285613434490116092601338287785437563110244143424072196581667035821735930480136030695354279741122185559219893136370818223898143746201548609288589127205987642400188381502885467642705789496885863534460245986701150414356430256718046364317854910490929700759653072933741980179060123042175878504214171777467756353986888820016908876334361753976044654820717921955136902487903791977916007145354778713154137453590001316423076358220362984118264650093561935428913904481492835400438501632086608291879086618484237087195641239706920643368047522807751127907582432125474665309381047290623318309928601423021190664780247373995526428411928215483203819183828080571353311803385404885150464783547056174630936246444089861223676011913494413476845458098579098163447789044502495888813084256411093931949518963691096501098744259477110963674596183300815119612859243531751127995004663317214398881406055012134296355974407896922886761388904440431359003753186109690468361279838023764998550324450585557750957234889737599212832394135883117706483123254180695870865972814964263607470598026794409310217336366266081509172238840789995813912892790964457005685651965670630179119566299511028023768212409246434413560136273203618399520750642022261163780643672016316680743774480024546662979442213776057013588816342044944057879038731919178640376007830343181419099256253271995529596758175129985689521299419804076327972768536731534572157768388319083114110852222107553307455840644383647737130787893140993623827193638321822407678421028968704015182110565789721813258734722302904823324952149384206272841138088542690743903189393473099406586877870986555559469866862497925267893341812960956716282087060267003368676106077891388862039425261671462927435490804874715783761489184737636466993762101699699121148310313569406193135118508707037614656841170201616551716823531849784459818914197737672889747679051284751463159923450911519351694852860420357552276522880043355971264433636498603235143592943153580436067426986816997281410571732393802181439875119510253570162133026840067801317637684682793030543739876866477154174631062522369792856522844726330693946982779073751085076084825144161342468278278609267796034569060669898829923713804281787387629981793687976889606540425541576039820837830063532478805843675961913090843869118243078852941389761670124562274593365283449253478273341070123549247558492955083262095813244244400588084648360626465279199113131151987313140758586809213791423687560524945613527643255828040811658366593428463869783334364680113453817876713135864656421839305604598816271185677466853996768158241963991334849235494973882910908434059647227673730158594543700838638112162448356619568990909696686777838950764131202707245284452118471348495474925878614012678606931387929919158325444101089673520512686416112935567098769164509029991802715506393869886930951877257361022872675696969117129152781529183420061097139374141667911954315874305916387939710297178094957508112069016945350760886120584883383822539215792561938696267630745917588206877411544958336040380618182796186906942368332637632891864805474095957691807898971096196764455385537159660807008775637964526698232380669902256138404294910953892157284254837934389391297016859273722868041011892173013014424969184184098831537261067132051893226481443388290913214139878998176963650531167899957138262991345396332074949035730715118918363752579931764636939374168926816081627828394297950326891503733425400121928895268572934160420254622257933839612311937544305346429559351319502838879668070426038950481574567469517205063871280182210032474447351127138636325886839298574981952209652323389191650677203041315177391632049024238919513986306509599964424005596041351572576015083668087766610000378728340066407171561515278440821819727885082707389106639196907859968270757048752365200989402825111454158265284166093721776745188596384336952035551230147855451964890217317624982499343997063041026224280616731233026304497843766649675087988856215003178152672374092727992492295808607622301192921116743641731339877001050754133813254685915242642005811309504907566707590330620848151433040596521204824347745863858028462700300314258246551429903703166318172920260541110349758578940229393094399869592266846914776481320636623527660839107144359222085290333865948937916730921194546289675357720111017679462896727020066592090820188609731072286229869408398887775194368057305151152318864903908415739525279817611347763275015647419266896991486611845415063727031598769782601460622498938193994273892147918219841746568325943305244370331892476114120399594005243679766942151226136890743044058807791958498953891466990629070220401429678637427924356950203604649386226184642360958778826195197132734707565975299867008178152886809282823288893294819830451350013473674620307439976456131858253884550697269606190548426905623169322314612216256644736766507315592542565698805817787727758764608065247340664732638510398456231922288520703174336505236529390144238439593772572056978244058870229711769241226984780313013693516445325191113008778220712417802265620583291306376726599425173323814517984368859683748803189132357158543656812102537552674238495348944104450607217064882819619256952770712136848136640322570336956519931645212594178246518674198377525416141854416676872354294192285440843859848755440393749088694733872898176452463646350921593545828108975964042218216741205298565848872644735524991118268351536411147889810667157333498800610447096840993090654785670083284061347424147787412499636543664551490894377676443668141397006479803548172476950117733727289443516438823131055139670455212977297316453692902767622539120213546821756456343414478644969549774826803892598246938889954747021367912553443209036609723964936410392295410914213169624353422840167919251966201070582703491617115731062507699738030557013191079758222402847088356805463737831917109687847288876634509560256816818738568561860975549138788650677939765216165456689766309486743736118934809188288014545689480094410483134763044786278585981118871344181784696226393973495428347714398159340282379911867395716841825108016359566900822715036627678438189263494015470939285502769644282138482047269774105233773042439977823609591748043406068998627762228447754766152355696509626341108502598490975598232326210896439161731132052881577722601706991642102783872382753193479131490483803210169941908604069635449797426916645374481243753991326266328337088334706209965789426631290819986406158480985132075596475674088149837469644282799330650230358337338750205935015353244562727025006335527331381669283411277153047725808318691797274852118528028483869860940487183078860458312997388467668250448252815942742768262710462795080922214650483593716693573322761505281699304518423059173781340873433508613900777255157463486776994943682336741407438336815336950230991295802229240885859935970730632332258589152697216832633219502159842421809627017438260369635551830516304827975868017716445575960323653767990052525840570746162018603936393332910918377238803154221428815282331939755185541565118547944224931263250978078617205043790925572159152142415278549863278871554890977806004207350582800261728360564328098703002327143367297560472298826031305730302358748660320071165353680747891377684014935319905001413099015541032719273460912419086745125606456909426660965888466742890985449576651090520159412631505126943278231091111317406019636014739686479848282030189650256969765607638152594427118918095128476418687346547122313556871600030468602618513329789890008779995750236986068706185239498899045426179290030419287172036903451379669350542811869976502975201972133460111157832049301226673110490711753628604341574913097729211036620687570813006687820497432672456391207928966362056184625516580758782744968638986612327145716002677788880573696275158208445704987544557014193234787356072656318154921144204404020080866891147544372084231204041819459278586356451330430486097129873028896756277602152954060791485918092216031295852171826101015342471634173958918449266066695364287612597847047508216959053068098988331206880855511798730298310002760746673517883893329350144836827969961691639932503868268759086389262270900149334678522747884516507381048107475085455459927290119252448433994201203492422820810592016342536403636152549870828063410565492050015571103680116876814668781089455230348703012820514567541120181385327492801244215616979098987669098060524442896415333877795603744239585935086330138568878461155303236830961556601175953278614746099595925840908088882789983687349199494421074119997038776431107380924373372617256146756709055121566371522665523646210549992889804214421522163030064604171902161090334385429085956807041522850223744550355977296436729487978905742668335504753306040571837158578677305225915927882358416259648589201234747996299564052938492984732294193607630164174252365655787401103398303280595595854409504690158601660208616310528178471930338767919114179936598961178116264020360130959046710966638652758932224361137351872748968594623528109289905474466519629547386799548543987028722283553861758546640200573221236781004675934304024415638358358529234018666352313107455770069511146233824360841767633693852854748583239878776590902220728677879719338097326208461661151038821583153073791006731483033457776136209338267094313790012628680538656581953277215678552082290232986540721432107709001724663569076461636232464450532590749576843812118864629282163029913899575048688232182327476699568336671930194959498151794312849959376407416379126153893043968883128493443266791694471943874833142649130052057259497448881468689787844929678242374900296242028858078692337072411003165029780626240357040878761576222000339136239256901051367582436380284611246931898883641674023737710862173833537186713792305249996650776931703451091933114307031421648658034809585655241947262090463115867367616590482665148190731908137656342738933512636783255587110877399554336958873404961164459842683071729963226177625099853624422594881292750459655106625160559528758141979757101378527810742337156071203539359591648280891164339213539111319603991899360765056204803290879670497121277547627254249420065033748946953632578863326866669452483338627415189959538560779173354542627037158940081488423809172250511504859014583220460205742421264252267343314818128015495967291280205144596562371959038076463352745214746058468884588558889065926613313724730486722460774680103546081338079726865719894708106808416953010112391331309724831280342645186142688245950675782970676871639413587738601174197617400173190169344764728649008682180621428913005983022600148725025731636936883317932001982746328945294239990911991184231480573456114739826791951459216807306686655835115437471167016644549936173256282916619006526009119243236237948251660776362162940037497724829441578188413088867017592942360932775552614945085091234055888831685248888677802668625481407844631545784097371673827354898269878634914146128976370474222187319354230455459639283566245983828197693835810271577982537221732101015105097254756108319115772759257917489482319533682806939586193372327098293316266735286250433115156741164462431785081528392685213789457290856537650183505538766249528761255256282806887640442875441767938698392624158989283044025089488586380869934659496125321471496177296118636735005616591699060198657594491305237790269075563425299865931079930493168067105257223157827076278280154553484157960643313218941820026493554003090090293946310961982479318141647587146397379585970836953569616718398174664006582774425212871590712793478093862418456350669247440711968467903149942694423398659199732931440449790151418538556718345010982646612501494511722709030730646418937858741603058874425075374360291162105362316746284214616993488362028560162061863983433643831071005296347542527721278010283288540284164939512135050319985690068712693566300930759980724171741327165828385862402018685963465498869152078454761165727645521433145428328222236868983468199542197837391851812224775901047637313382950381426122890099883930456126899103803747656816807494144879683096060402882320208264402584870866184661719565874920992276767474563581561522869127711545296252088877689306759712740783242549740687463098948660505588924804081056330663058724398828523501131225838589139836376944956934408815560603196159340380814585903423751840531270184858949929282390601160677328957620607380700190634336153859537479013163423746504116425309540936470273117654057022126365019941083373042725627670075001635546338447941569029239566640031134820106590753536100402918930198501581398333453833861109367326783034179255886692309623790632021109394261665075508649688344721532339102211081844915836393042325425405212433074818893626468773490026226927061504172204978645218206176636511819455548781245069733265089006946096030357618284221795842889757959321671599402283748366891540296532189967100951033787119116148741342667844735396570674635483957711918375258325209042675783500879939887078845546577322589732461103330681391959407262017314819543276081571828048561790786152291356780552918869938444296459914892587005514033935685166683163098533945710283439034397895209444253844967245022707665335263851139262892982434475661872121395603313736211800043413325273724253282307288279253820713071243687822573107110742076205060473182663216379941067484945295570960771712503814567130128899225250303921820399393335661985744649400546544758654297663107759404940124997193595290196885423979945499423027415303029673706358192088977281493236584823975500937657193620227994471451247896177800592990727232365480153832315711593384440578678356154364456865427982010049809581226776647327029319070358742362836908811472390158781604404479048659339407606273913408936355444448969602677506318434334480002827989998326542009703446626776723623240257250837740536511043231087879871568470019550377124467043979589982162552098622090359103875242420910405467270738037534189851212679042752233898037964320858658595677451712610482729926810954890186901035735746178945271058498640926121203521954096002735379180844147203160400994770546026707534849839028726057897793649443329216657397205109650949893859390108993792732343285104249225979117236983431235908618517579176557358226876629091594038523996485210255580049513962211194704492532350465529713434050092139053535587827717882967710894858594976324962568270846561633954232779979910696645013056930586314910356712990060461373947242304618916965711778320679898398647738754331267031649892121135965267032071889116951789373199985469990813363106917674552794766125089288784085444876255781866914724935398740222792538310629357067618528383802849947407869439528995405651252404787437657589895011431154805350101719143689659060951246888994421259186352887854525250715940105050369081167239069654192278755569421569831847091539380476413685271206368250823988104515220451763253429163651619156869096741757072609300449753485083937927408699360214409010233150055617948712522385786648501632694516387964020034270748184336695199305526896378325123218382250070909249366086487828319913571594566183279291997515451572944258709380554892222632937854482008428200969260220610257049906791217503727380460528204465655633537893498562785879722445924322946338277459330132910552205352128291688983069434045663291375019074803568048579694408050689383435548782186278321611823146580738940530378551466333513586808340612216695433965764972388708836557811111687921322624226861061979923684793078257053912891459023463671847426128653704028071161901296003745804490322800427473479105598336517388222940425404861521662752002774858720308301172974766291720074901778674806780896621781854385945029842374596946029252423374731517306647058156821407025972283935480131185494944734361244828871981111885417723470701886711888537690674576604616113062343576102241826679857608463404521906274768408838136473351540674677557796534365719476335533483167170152964586748961606395765137785762680446538273170773487739010833532618992285967027547195699901376057854126469875120828146530710236830207308336624925692066640621293932643485191262711565997529058379909672356306360816650008469927080304750137712661019633870538288883349219527776713080808152835378188212602493749979262038211920646629539813663553815348609766331057195101384250108948005466319839903778762436804944093086374712561780584660421553096488572765473991755446625946157373121955631534608134179184015576311584263392642289877743299105418712348238954051682225991515067267516552925786419049442784432535502061824089019906461725994316142876990643972542796248821936682953519137053517382965983250394675672831340707370768222367156524475069731144323989468545978201441496101518824371231102767782706204799490415408692252676765497012210690568666403392967909981312077416573584672452283829120587352522030924265875308184130809194438225991109796125808434198302349839580792384847396540238223468816610016456065418270142683188384567978537973748422169928540138820685385726229569979602619618575662457139761939999997868025615702527552546654100020288904523735221905626101660785261239691148883797246528188849578386797417326923868716354920201646629818889222568827218117444869059687303440553134771863200913545514010775572970967919983107171119534265225155886933230990751818818063571784910500043189589558216407371517163291218289175618299416232285925290420341639076617830220415818349998252540889464272208596453670326000409636606121972291162655801970635842531969878334897039195685189753359749265208804319723477796824853498021500420701225844762268170890000664306826864913081728835161987822904546205891943345072867216558922597299393310072036784475161536804939442454370991036648790263175738391608014145236707993424897269686756313622688215572635034105412869649909444890059237582168075428834682654956766936361980459616811853206134458782789864623880166645806832040704676923293199561707403582602316400686147109457424933606340151270271214978313057087444924697800648631437952359688893694215107047683461447155550806687312970276726746919027287959910218194543159221486498612811818009265213274702529546636503880200573088697523215553239498501929359374275124986102466687084843266201099399581808731377713514307464220675606565763571192398626768740557622760772112622901617634474333820747934968206756187441277585382613767120753065674789029489342283150709096810071367287595950202054488208360680939186355197745920720143980203499536037196028696388964540176440226565462032273116676447173110574880769013215905731543233651895801109931768234240790607056401824735596683566331698593258893757800799642976353909132992740422019386434230140821899795304687939503133512149507459284209770003088632807899133423495204776410721938889046062391564512036967027843500589677619618262032425838379598082464460377465179748981407450751379556597336500576811626979146695909799150947728336803575969877505447490796096531072714754855883087057069673476729555198023865334374289940582282161958382770069264387611583725751573556889028647121942584228703140280162489061029386322230225369356916188287396505593712762313166406723899575726700458359293889072128651422558855735221755911070664271447625716794537394885844268764409518122365420352450344065084653515196991745142484038846735780360617748306550799908256165048595921576980696162050974846685869045895621053124068126843595135997062034371184035157442765610060924056914801381743233912568203289703943367977088596703897885994137934169719410670473806808713590423669919708579492515109806411732990027898777607386575944085791240157085206068871988186170795122439169181490084965889640952989221197729625453989555516952210666253272619472552918910599922412761317500793214968675348530169976174599709650209710695992006710161512094944447054351564014601088404882012335962078146395099996562135297523541844094018297609964652155751854999789254140374125208931095408256356242058845526776524993750022694861947418928751450840391893859428436288888158079711553211129201060126913941424111117538790899113629138503444256163182946605947064174696711793455396943306751498103921361873270808667262326243514436659932392349131329662842606738461096862983214149067892275607938696608788646051289350012340069789551074634316600772416481156341340996152267015093836553892168223274438624894677933611688868524671080241975238612972961747083393215834458584241056716527285097850823244312049598713675510007584831582185540626346401674041038196272874972528201538008284739530887725729016883122348625568308032450124459812759664279309136236613009150571203378892438294456730984713254220348863704748354824934650695483463012478496959308824357494645756161291892815639573876422666664171037047854471475706902275569000124701119270987224654884044383372611143004962045290533766866255176870415242765474802930234640600548869070924349474644191206032488419989896249741788579464101362377282645159893814549561933869585616767836249473418764000153183332847862574589711174440099691901198537518193499942159980466603402524592369720428698957934497105730195834456548475830345360031048758504009436270943448758607550447848366159593660544798345974093461991814378401193197343342749574773147719968714839868478349073598289581355341123817374445909009856666845231997904236203724848551386619257211959502068286527489033171852238252862321347798236337827558484631898446322001104716267596707138427454904518521928022480778602420567217949707566462773879240425790121647972258475841610243730421139788100991355626381861928104921011592867015157097653086476298105468089687098099981058139329945451386076874550524202272087506233531112197708899769992917685291144274940531020163488254943155776708430067258629569762147665515103262452225038315367248523371012707447524495444786449416658467277607736717392558552437317950036251051685539339278685299235367247502454947064666004649081125647502220971615531062264654406296132387709673600566114337797464153145061135307919004993871772250743327976067399970066390917197561099627159118111426720940673574289430127609901334138676943202155162833761208298838609059484754034858138101134618219492748898327691201655136572000059970874354338392357893174983016174510331006433736302313625789437900456420928928187306888540691159102673059340883198734600612051132046665720574634988990980324910086185836815049287966189885907202637647109160038972473239866615196764596573154505314221858170106051406691194741429954376321396638521351768572794456059383738483022482677713023745664427980849819166909912095230503612467316282858313626562307830289815582812659938690455305412197602787632357999187419661471216337972094584232915150236690174465105007893487711433229165341078126963919546117601186265278326956762352127787431362285668093438720389569912996906240244848914534149742150480764917774658547145724549180345666599568506923591264408455132095449046069518533681970977508856497957433375379762425887474122855826661897581564414976532850006700162636708459086443258970050578010585304188267737473949310232166747575378148296525164432267090311737645005066040438874698634977321036464310345403961692887565870081897548676528372470809293588459000016464811771236491338890764147088159967539892704096058190916708013088069662168445754981831470182261577733249264370103433185862222545409852592686351977415359724855844661733426562684829572514421353950755336730516969288414567852562829546903539499827514461690567206067699451460424312750106855462721963651760918657445756901072819992556803337707403225776727040999021953603905536501027882887123057395857767971356697743414323543480506485743748244589357009382310987889827107035300747676643258489529098743527965994775279709583403492657328975772542498525215868786325669643706110846195722057409802054129807654391668820338107559121720914013117691530588743292772700836342673757941634234206052360312516185030034105134168174098151498734879924588371213586063024392964742152138284571639119500585181606957607124402989671825420289260011327283992667613966949042886947990024239373377508262209822140969387477218315320811295253005035646488374973567318336234739293728108892660192611895684205465208065787600074432975426477993373012731050502154888403930201001310655095285346013018461888510187179937874466015883024924162707214314290029152448626066248193327649894906394689469511398714560051363089072043155109637821494842281908453011084077437418132110407915619826421664545036555635649114677235081813439727979753263657909008698578310918199575627689743790805351605753154460406417337923398474982561309158773177731735275982891840290163064731924267802554549621612212316828590558658389351931891802600482622930891016276142212175027237307960310767255380100342304470052494750531635347108972128395143337684441693777041410688064775753574527918668277727467827659780691325411879497772723897094600192921086625592916818604781045068307499961833414917212833247432220414054939907514860505909292826180884037507315154966661070032246353925106276066305956376216084335814882881067471367749885581089773575884470302446813020553805520416279255913405625525588369203544170040473316794662035963749772118023309648859771653278625348322368366662061149537690273897857484795713950726347440928188761854033089568346482855532077921345512535562563112031085852162763884759986807280260412633552127740235807458100120803592610796565476298247416367393317495779205270857894341744765602293726828181653290771774216980549046799742366537506611617322021156609047501728441908132752901655922464066362281855721969473518548146623299882066975259213957766084357735769700613683152898653315613321159349517488082116770280547608592694487373812318302408707920787462169777900491350412808096316955588091822879093433252310091111545503343358216795928573603601845962165155765841722174540774821733560014335611804795699174880764993644585733384699052486969100451398134431524601623916362602864420556095478794498542485562773232458621441787218097756330578265962049093639677282680423692269887432242697777960226041435411693753702858056680396408625149430598032807913271516914855973299407455465501071438190194448277246448945459678326978952203668234212341376982812304647478988217843437966306334580325380317575198176744352611217824001681793750389005583360769390724687170731949499853010433226461575035307893653424192301237790050273079776682985165984054872578543901698089012211553324618886304756836880206920092412099188350233352070521564862139008950094700553525809989949341579235877389999828898406011728638517164542865607815461383769352175375420683482390004000442731640140568299900475037465316722847135624037420964887716524032175962673915427171977468559560802332349384933143280096773265244838549293890812990871980608785709878084489668237575855946867847409499556575867847586013162446733913507584167523659390325009646790861767275602246469880364691110083958922018257518933651084401260113373086329838835054581386626237311969311783223565979274409130042806900967024606107085499402442914140002951582825543839355200614720126849033032754325618374309065758132784676059597659580803163215005310336312274665212738180590042628007886621140208559766395619815211059932674698457047566756462375990619936354899102614531197037409145035137317561690437650357772660081224013134758268975701773660230775505701780521265472139353407850607965413436924807258136033018232928633358454026300779911478643512715271803119854466985524134743551444184394686102300542791318687961039052131466208702533247913562222801637883927986424425291297186472190392756995671904120625855699785459840953571205854614777625424014025872171813714565989233431362389032806528951491705804141828311218957588170384714153235436131090833064383114839796256078299429902138628118439554181607794909712533165869243740784348074860402204825684721715010742415306979431623215234551645001205590321749801946293618570034352493144761222933083776846437488110717474575252337799580147155187135473060425969042361471834159100409308649673847864230145585479917417930083991568582191010506157512313716165655376773360563208554101375619872369366991749782071253680123994698938393945233468378252736497371087272433400015547712678319317613596597870731169468448287787400370164636652210556071772205197130596748137424135005461504616154839488248090067285196256238469512606575673789525661289117521875698876453098578498432537544786596217705761920684193937532813926321923670317087749918674934399573963792709897675102709043837398369380723741545826472977885491840332667233002066949947011569632060067180241155100515166875484664423962173048759213736942482879757753253361686773119296796127780831920070321724401178797346176736356987986362702482909199560695456698863760242780912654407929868385829491295466541244605067656214781485740175452063931181854694897224491516432970125109521944920694223063760331877471382898116611578228088800285467894696502006728198517268366330850440907146986764055694182149510078315300218604549277326391426888863964551432387531911522665981367139849657463924252466710968284134825325686739468872527946434325167987510158161560576361203404650540682027717596351702091755985985689867158249200372969803413919902574379039272528221989690240179571395648513548403809505725809381304178985442036453253805519357172965451004455940604937003850075841367963555152459532481770755726695004071207074215786239186785887900845642044655124993513681075924486845689649148309516710588865288152489705031892509341231891349016996839418927797053946497547257346792678061709131222545862400814862502560762066708624952515689831541105884137334086900829224897224544290574365385683159555867101039418533732176034270964546085387740372983397112102106488730152544936278294248995336594852582946322266205038618427307731547090049136389387301893759347122498498419990055967831413223229933234932530907382880474012412974476649171734044189794154703920233625942311060144492234594592536603916932425175435447890901441652080227323829248295332936321345998230000993253395146126102671648391373788733235339797458605850084829316724634020967031912998075740344830900775439931406559693857047266394742043942421712865985236304334679383990707949000039525419276706845654636522763963829428095087161817326307578411095568042253296107004440231780013684607192530960399557722999772231263881045960111656205932057313959329609970421419084989879381956241983529304962805896460845041055333192436973941176424036982650316868514689055115285694268556200427462809424936746503321113865509402579723909389711560810869196730013207976479220806405902816195502468277566709237466873359525513387245532512550793622669073714550456634553765872063652149550814101774542908127949848525472534455553719185702374550782642635213905986311022522527365658657369144953604994060562554375104531909901389273319033335095667967510974890693617407569274936769929662349606174192523176619007273299046580370402962341742843777613049970721456597583735469999957844271825563801166327346015694382004724835587548134117286652672766264451382726908809740415096693486913111615978514006359337354412300978552886183333733323321935056447826714668839391685954335972624051485374058011619097782220800194954666935678955425856432397430280920712233097178547265803792242424989966580128069718735703779086052481216253628644568762214668338420254564851750575850177082171955180402095673200406609064370210476896596978610429403932281871895896516066742502910939730385560474746981498689672406855883933221123744984916407577231321827057686058974979763196216010395981291218554595010666499488786040690178999256883399346524970427624160599881811865678173529767894856131112978540245129304725305986787544613958140292765545120548365360532051976388238474976092631786628576723756961702668668738472851646507735045923075269089243068329209474714004010361915043830319451343854188761432027420650466085958042656549392205055078241850923655614701914686732871512802391182510908231931650407324296125219650032259841878336684662465199379858306777662674895525820607116569461500020224676629573340321364284619478910644854231460066274873834894498206978130547325672630525862480589321589419423399902316729172886748230479686930306042385884640014039405907509105837108068546310029405946403837110341061020458221004459729053931482902130603850353952972939379598293105394060338819884067423099349807607793948735772658964987433670901033906832101478948255495706184141228342940305785768767442181857904938200078769630541645015803649374886355029326080201052476191490321633334677480832128484051952189323351660216341354254836048351479571392783296101680574246267394320579601434790617518685455067866007544176086611807050900730680590666392808278347036586758458220077144066800366020122367609655876506110525876135470362216753622262156262101013747516394000532216495996967408576849141436363763691782914627930485493543709610787906914170533982106230455081670084679035426653268172165789816595055798676449647250275360604059110296777903833179211813835940966105341026422208272730659937861156843035560937876707482032573827186415341953858118956434512784656171806230386321564405588695058835086114402285460141512570177709034049596749507495277679506600172616019820874078894883853800486151795016547097968469735725821927751965039746007816619187621727417287664739287584934103395314486895633901091752417759870672765558330727893567884337913596129558527328260728357722052734250452632051991384854248644026745113978788652229119307835577634513064164480768578400091400102445699473321923027639782688582763515977915818989389722925421095931717618751307991273740226890430847809656697448269715104493534691234026243478239481860501665657752684117560237652823971526220654619480027143315953407261509740345377982094574391039659453350202767010098395527228686337383632477269905742424898018352312315691024730002062971284322918866771470379665475711186081873658355793072071257526249945448273179702334490710652055564111127055223699771977735376611508076308498378876028739056229103237510341839890840147548117570084190744473559001237014725104058094826814913054541915573535692164014732425086417984903204740179185557029085972056464718704323528073803147947886843407248163450150815217449291531801943942473133463035137399927651813725767911706545965760524582862359732495943394922921205532412508380703256822518648161154606198962996644356921646574788624838579921467748514454283098447700642883476495878122680137897604603716105135011427364307272159369017053826833311016379530004519971981493867624271818133065617594159449209869419076976145070637459839648986673091217691708211240959708547367046493609826628006380103490838819793065977879004883566362717850950211329565111861289021987069129432435701781434162647079173882225952158236363312695759942419915225887828605679552270733766846574678309208165274259477924456797093075020291097113528321775588123845173542369634650394718387766240523820075028223792221196421353576471397108666348152448682978092108909641183294739979752015675426619953239582938920958787395094567725500760591991670313547613389240593301515782232525193128174194959798224012833668349926750140577149462494882936148377618947215283975191067409371498455123896104220231644440433595872504791780809721945573654093787438351764389626673474528058759593624362955936377863422382841038874166014649082961456027785578460610367247125311443945208040916004975173814988788638663372809542157097558221047215621972469722879025266187089913052188116981496975428981177466782290182046051912030268787971794936788921685202700092847771731350168673510878933221193682763686918046567302907957578700668220536773340783070822680661893321236057935819660413091620714747299981955527519724383834691393218801823490575940662272706690172994563689822247330837378418730909142984548612753437176602603521729003783296592775291191822930422499395354807865170490857632680628841737440527389176996431634516744765191377314402887044600926048168300296396475283155804142544759459676774314441527297443273864826299779929846972688925067530033137629604448161551138315713566144707827534740119895448839173851525513184966203247298386392860723842654489102285117676622300555963597831612793102966744491645096749621033539987947499716350820599384805372351164175149694744762279588804383056237469843109276288184539801610810818461099444391668596970878837065476085098324543309590618962871777402180465497295800518561888907045441433908616514718510192995791017123152807262301254006799984638954351654712597650639260778361985950318707562322538292880996885109463041376536121119845520597939821056157845310636691630476028660234245698352035442623428470645848028678246329068320404451601321901221770662727563768617582509552884997216844800199258770941579253676960722084763174334530124770843316543525045658856009274106985596081670110597189043094036946434949365622683064376805372433473066578351826324071943076313256812601728749907628302059911961246718617191850880393579038506360047048384495635142198326070646999836472166927861814663249696936529113287325945787359978724960599882984738981930293181602487975069161946857517403827566420653161778463910893380122460127257216460743115861258708975735834353066740159202355842248265067709131934781059572531313570736128659350309064143946518777881494822472934092007135831719326810082867138886503996673524755017195085450898923926248632683415024081758205064761347907365375201041109691544279366995265089661977397340690734886831063720903603297334781752976693035177983082345594531561522316651742672732283938185469941309135693672108915894584052961608279823523768996723692719403751815222309534690401397594490830691738254015320051480152064980710340052342674845962610438856334544178643810519935656268215069667493080572330338394101710317590647682449544516786221531744282135626958618673144252333269736278769843877408610221105922125426147558788461271627291298393763176151500788779894255276284072388069639806052293640586893894299992038940421479877838567672519417089288198681144234971144645263619779277775060784707343623002067886984886998032555120807031415026020178102831703110133456628429216481378018760676821237548336417880687675175726271637582789507324679153985399652175304655062390855868284018818703602797236915165371622228438748470167516077896152959462827653600391899990980992728251746616748910969327473938953350379027057099779112127966957283254342622006188333430566862805997702826127925479570687821735837814879371605585260647022551509413270192337386425423547726149003918940579461292357917340877046349978572039854836706529439269414331470219339257829061205655146473263953805237483156602110800455354399203559889737746077579130633729088356399154561529267403543626994983562839037770415033735578599746762758305408017816247349470874266838747524349026516352033942867691891275435566773915697635421966207333607812262802740581742765201799074394193265668291974970652158661362241877659810494530618394647191382407173116535080412241047528138872234171017608198609895256051131161503705018987353419080634454043425204646337564164134973186342911906248158373620355750435523405184100320272205199423902746075655169371169374064943749517181480223076931079263176854813095804148172330346546510996263947326219868254461457291969254701993817781002340556267602520049040548548155955110952736004540278302678275700823638902897884750922497258368205733414205957645336603825453904057513669243871194459086798057471630607597617310671475898349421320364331781986134982255300165439280424826225360863573479270907610997452219553872647139449767185043131502639099491082699761656426844495147172158200429570551066186626475549236435377663137792003796791844975206354289810565244149837376260744791963466364767311580817301509126425780871785267817355163495491086680704566104378136082792877448786781525235333774222952264433395211483884147021794101615214457696965445329694748893233564768705510423474375648831164282144011348842997648655780750221060636023718461681345282360740911215051939020307617788095934759530730467292795725205427491350396075317776865313668626232613300346997154515305604428982420442830588718208228869569185731563469741398284672712438552130124495837304758771623494686402077680375582579109895721981552232251462175157739754664569697373966899830813017653731698566342494941685275817152232918629757385811820870330927162537737979054815931877473631149286996650379351371176891070149961844388539482122825681227211262213465647281467988694200395286842579056772234356036234716159904534210656476032168503866768782175841945144924117317366558297809895772395635634430642260047991202171242205299942577491694565669544946185321169645694492817876168133011996776472745092060359582684602557702058777787584377181431334797594613099370676448880326635220443534341874783732687153400670879019567864132017556260367140143066686387726840572179288090873452087442087913749999753787662787207606737489339071197279165205736347081988234957556981713675163348480119916610428083304626526707491319801680399552057963439997752664497209417069998022206057593326794435668411022014127115155052687158604135063861534007893480300783481918685366076701168403713227312098917712070051777813232880151770715740674882243059975192654891450941708399238369255215338209745880080350768372679886446673315117766656171576245133227745334210327784442940283063628621928250437880894044796128804679500525331712970725701433569390676380190358800394670314496080395937358463744725957211347490477179965497765198380807872137846290911384813273449385197998318972362280648034728469788931821285985534839618756227578431409386387422493911549748363471603149788405464945046411563695719448017568984532238151910234725295939154502746847345001959101493822832499684363556251497251547015942778357996132953670584544615650991377001551673780383987932181047561543718329000073105559563372503952041984679938189310201224756226795903892118514905103474840199160307575571403680723787131479782455211896092456039499015887849585142265425560467882659716218793738792431862202817971594133482142547409495810144070016598411118831975929837055973063827882708829349958098563681174648784694152310464388713831010851426305693461882634140082112955762349980591176607035536021290617686705768476337372829636626769544006140231057570913893687650764476249619928870060221774153919208455832787243217254792286085012985506105791292332649555453915869176683776553307926267942645077618016729056354563484114469162744058637018091598047556142547721157740880327178663277398790309007703143980814382426778831602582545590974799563541465118831862689182332558591203378608888012203972772914718104933602296426513795475225832657244111308160716357930757072586666389851311532105896603186029058803331831582925287206233904301398956995043117204859545263901181649145444292596693374012858170878972875569003390794496999233395623433350099584059607916636522883771427258727495786856839307730195024009686806522655622107712267193208232184478135120472354005890112225265645771733686109546525637682244205477790671604339132885100326309183205443166181815153140171012150876691089423181555392174308361434086437465812049344425328872110021255309052438271356924663840600215791995560139672933868514319280832495035463223344432585450554149328647900478579086647248374705804052883607725837162455780736497706036543201446973936312402331991789189791737673077632282480715381344212596662269347613210159380389812373072490242797226145680277264756389350142528827956541437018403490935557247006854260392100269000650241637597630974249634264998198713341899313007809035437460277673389007237239712173145859828138276209935434588225403857866669069603020054814293656049028319349961771397912141819899086984906932079792329135146085348908784535885250080567050469816720361052260696898171157968566192179280965272222601422996222698076518146494125440987395337183344403877370054466504533256530473921859461016758242292317256397908241450531495934520648279834829403415961524881250642033548180716724831087125557183143868083646732052385026314554109512528720016178553239654725936726678371042220510992981167953765999839776448795405939833480882261222738205565401923680889397514006148103409270234406960601672432003142860899312100975123573392693974928979616719189780373813759410563748967457367138409635897960032278999228476458533697209198770643494853864451957444430568910541826601232156698484947999248614214692271359684181606751895303042566152496646681938449019326167623342877148090476262445990350835567311736692745543921657096415632559727587409298653298303697562297326846996434169474879870733710282172774515247562956702849581226960291195961561457017374769607254768049958676875470736842367111726309180777651098069190727267855976589204423534731032691421618398904085106878428346159379034007916939940641533273066154990150490931397027735855345540160925282441708555036534471623897349973698186608090317273549037760273669159839359405801432800546890793715631151890011680736223528579453009527094078124540999568017278716500331055605034201386008842327025719448465621618135168395252686638191733385809681874331716249340401323797953377476834810134018558935515565847532329195189005223220199373251926222178704557260658672569733848496223265790174218662680672802569466964924089295831480975119243157672007792421846359903098081098211827299420915370894446437477467341009114946348357672594106066033107904375946746226128599467991760045221730306229348937744123587938528555947629859604746720649124247519809972381691823371729940200062193539114039949071216473347253843014082455169929555445773870973974570148307082453335770101635975604467783931491838321187390010962566278752347781322620457319203211465691858106569129622208941038210562877978133009170437304470378374793043380263890327700320209717026099366919298141909731304320384019939130779146511153809929249742602486357160940132809030117627031360573042143775770323551377808290110007108498013200948239099235349688445634033230945453012013088134216764380711812306456330991209371572054321177821425006556195925780706310654740254569628200260467557085232178971300989160958806769949286255939290633703650512784675774445477507571851775457902764988531389474537700062440595616065990708545495784307218085305184678579202834651074342158835696578784250736465363860817729378850430693247334544817915033958140816629429157154293426915094295413356022719116703343198478953548999073671437405848561063183670964395569155816807113119596327496383673500850029450452761429249202210428553453573796224560661336092721576417280666276626570689641087712700278432798161500259121856019305752063529675948128179408160242280668846329604851262601963759257973434523396217397587471846837190702050953172774874698846839036739090487549627202159720126219014832692359659192368054704775660318744365882746145779568843470462455120647871385791092016757857463817093269318361044938496986755748096628677347590964485839894706670986031164793429262714722435647947787766567680012214284375634525953422057706199383534622954122668674413236861705160951260017656208450682733184865428648503334780570301291874078699219415801441821383345253716474601458307217355871359599281908847516771706851605614242802104163325842109645081542919075819620786718905048024521067722433734032431171742798069713971396169530605824534090303280830692001958894647031089221268519459553744310222425543900658070911070917160170391591724211462232516545468751267202679478461427851388108137154568587380748011682348604267083535843418235995413027181881650912511106111629997533983007197776048918897555895854212875865833211301420935014056497521228338893516810128999490106929735567857499848516867570729396290850407355804464397993586693116932858088655995941448273764418751460749234559723007896690617246656955463187356875982652003218522465240041872559445570215970579670901250992131571060894179085258442371511112469004087158764392887647106200899111249666016398773052763261820611719558182069695057574771231699884297515569508782174836767695781439354924633430564889127270338112198038763229864342336140598496702816894659243580624353961053657358254397159760345490632109148184477054203580346268618467952500020883805124959653001408843471002631377696804156791831346683021119934922798754978093182056426084405940023856043621173883067906973409355291885037286970213296639365433702450909583152069211815261329013622569095203867905343401329205355054271523640394201859280341710378336021496816104525015792837879082721257118444836979457237910253234385382132896478350005317579583666569276851579678549050209020436268727522373498553394203103702718674097146294844743051734482660110425932735840492667722129422437884927262766477398732230590085137705910267056402514400084632447309946802809719858933923389505418464410254235175964783924055990319066985211699315474289427018237036913198242488826477589359901927283434545237456546693479599548388458760856244783242868520421159028983258629215683607386169672296331820212401763092404222385838268855777479222076901703372434415056424999966257518091483813266966495252442705183242485479688220441712782591482117227614719095965462519776660971271351177066498054096510509744413650341759331124254887257541369514448730227769307757092107798105771783121745504245100504358000157146437427741623586326954455904795950402233867909622924552258910692204944529764825711101314306214271070785152997966968459705081746705784160220007620619776035982599404192761001179895608618122803722260062429243801200560028185218900047967810847072107640169984805187923167787210201026906383141863854522566580525502114281982705024019922682120397030665899643643829212260771563202146833496960943546425210276834034926300256314830840590260303497166968642279631388623530955505873914494409379062385928781002089578876184536360280949213100283458837607557130299956169164283286692579033448346011100930426471257017657479977930391510328393600248225773269750359556475876677627023704050381562161653019586541447730393730583036342117689868158296149924451495234841796561889252194633706969903865844701927427225548329570418006204592648162738320424707125051933295863431144895234570867780504723848914074448949435688248060462858786741937019062135148396355198854631733999538137754314181408231401411151615743570078230840529780134229165336170295528610969466114358101852144540803371606873229874627296165170690631791486610794380441869390523729908340340791613641371916177412981897318503470702006168395522029009532406814171566725976881651408141302080017023166401944524760742543086414980315615633115466406712974485936085004481867248260085654092081963139750942732853945801573667269738410548492876332917861052664389626404768200790084850288208601014875636774036810480702886446090028205196424260690911969155894163194555009581468234872244377357433487885784204284186748429145732733000920708038313225795536096922990285768740061615092651699046092999124450961326855415156737304954700194002536974935558147743439584199354309392115247657239036829331580304846641286440333851946481344116120928708545359538335051998598798174946887678931445891410816038324263462451076992442049528906530086827898118527414787953775836325825469423135471861218141915226178085285700691589721543900150873420581309665029145392253729247021276846602434892597217535441260478787376106941213219187718169752954221605012354930789714323129207456685881865078581158481735753988073639391132178979523188918083597433474853064006835092116698931457665842098996870914669421149946052731349762442619375064210232689769671227703714373322875982061123125081862014362976936714655542099733397830148713071867908386098561891459326175768605617172699690298300659125300562633297144714952754866756678873338371194308369730037036271063362686402457998472462756500129170139046944301988590846857379565865638768629337809866120032099335951471548451728419016970835057974570601476945266210709353281523425020034789585328616335633539493991982589643105963127780976061341021686302008156112206649006859831444274212576967729986928803767447673498905922319859051293726394944974411257452331552099660567931542469115875279245920553822041107100441152737169136063732923670773376185453607790867520625589823238393753588550544465497022255938317913789391974864874345902194965774077661012801177495576167540766963991023411153473387812736972544103567655890427998613418374471525312435432465056455005963660255364147939947807355764593111514623892934181314031671527095698391044763761624638601053370947964472962494943423807593894367160361577980243820138775970378817583094319669281382022955102994545811369394988330983650309087211390615854376489308206296961294756943660189973033841770920258665053598906261297071828517695186926946853425066168695694806425973662594461685970909091812854406607620008609605234292289094205547469598606412832763715100354622581237666492364825909433678255631722484941529084311856329368416885839706362853686783879535459277625480004486454408109362618073678214017755831815089048076727707419498375195946699863667923638601704687916959294012629358922018883115835589934730754388244535487199540627745093102327275192417676844526561616807730911949567816812503845678131638963531230627806043075419332713842863760403330095295850140809974775215605656290169340398038382186019917798109079377290190233273947842250177300702328757562695916454177838062285843779638379308658188081502589285737136438789449225743094265979600399464146566042023162233044267350863378026544920820139150358472656975771955906290793376880524792110432584117788767862399169741014186923777636395896048009408349320587566004176790102549637670176913003198833708922429035252645464528205710397191984123645732919124485113910004136760768802390930306114386763008307572379459049221780063221648300193546197202286765033904875269596354737374012276641601402384060760782372865292480433650499224354668525520884341412577296120519305666643861475979956622455228529040121341610636516925468716879020070449572789250759559475408511143868947270974189949454017599038621775129094730391868905675606420548027329477276864543189495339955084384355083251237036381615770981255133751141245689485869934597458753479139111686883576109860204882452279579377527800152743624978995667867328812110713968854278256311896759521112156528257446348393362862490993253898991418534796943448815242294074883610251505011846192006058096205846295674016518235796800078750903884291426122953735144245338739336911793621387015850650229727565806271041157520965627448406113253042092362073933843608225403969320168753707779825944482204266799082902530835894707047925114850738724949521018681603069484964519962486028245005898423329267148893069127609941623990158526144442332012922078605030244925066169303379238261499242946726442527964021884003431261008614153125252208733228223472432544429863667864455546651700659438254620124003858476659055514720345587793594117552546713640656152240729305291213051974107404975998234477352177242991246158378886118319330694780038718192093222341949989296504932306371228712620802656284106182062130984068915948032369013447098901883502747341892618079261805178715740201069575880963422668714925876120712471191711155779715283855208067278106666544790432944549772044810358762814465784522534345545563349501556063645966207056400427473992072250765124828114234007630026896595044081266587439979244126582988332918524944656658894866316902068386551212528306472325296837847838587049315322579769973099685176436086417593648173530547347141606304268691707047448641346175897359004725096044096118947870692963437597979858873623675072315080040832194907113139188771512882340754860885795123451274036875080098178865022992599699262353970421925539852827725820917416184275076925823300001569021015423476699198961251975172158717090466768649679477195186326767452375711074398167945119677159656133469220582324580376636854881783814702049379339983432410987520073010517531429460195760669339823876553519243529270099754169836597625228879612816405785334752364594193890689916936144118168158959391473716446320923674140259089820596065677672620517598623848967427576461139188985856445454085001320653239765111482046678278360366241623371203649423690504857946016059992349646363439136110041188889121342213323086741446412351224584674919832580725367086590382521779882135948943375017379230966686640375291601655326989556562173446685386411882677830495085227278132352064614839416004611588631135608716189478387743463946486943078466770668473791904258740995822599208716252528653506175857919400200191041170164500219454250000867919731251110148296963929923244031281467562590341603800556230967749088156101768928259753358682198357397697450321389639932655475175340827386915143758694643877522792492208085131442691304933780616775801379100552941373258881525115366303292660045828288001226898926353007099650021391691647661895159566837214289455506667130081189854781293250139276968919047168023251057190087679979403940596034467455964852984674312981949443410852659599238980865197527554542453174121932654695340492137312349462964289654150421811685142949737220985341515903077479901038639448701438448538493474866533104999800441863653078552270499030975063447023065645328264965773956716602683938468436168946170659800547082509978584845953420517350715580222024433025564519423621530720948471524186786238170021724747384730426024852350475836874069726758245847948711414352090399149045146035539828216745386156217286663004598275858413045975240353970775414433739753069217920677529425901128830835493062793811942728972409149179281938827278592625754528098647215318131724256650253328157019538299044139352279868095712107040384557635223541234815987925920140469266875146077792755841872482030889050221993128302008609765776895367940650388311520503467460072089154379544892469000652875753794900263237070778601229173961259207700653084080991427696168688499558847869948355665123128641065299429123541228726615047416111018145410547073625619812885230586691146737712670095285442498574899514662697572653447763797402988594616137591993303418715653411212213751943976095865482137447497167826270580857402129402236787571019167864838648663825137742769019421702378755215914585382589517989203309726963582034071788913092782099396709840457583292364503561897329814710462109722514372727009412207533146522896394305820410561649972498017875503882149622504593046459793244403274650230873210780171006709754776238642203259342361826406153668142929734920470866629163856876644407500867208271736162669965873282914632762309058238105323051552878814192765093312669421749991635266298570006582570215450585066458749706280673119211408319240648322554758879819872857501958272732961316980326508360578787029359414367373601158037291008374572840522350261268806138871810922167330204353672792581723520753130626368548304935086867459271379154413126696335606142253315589161402985053618769486778925814679269677717253567650148383556360095461458516777104121352265226552417371579250202534137787657682874212103018445585960228671099931249361443068015314160085482327084712807226783196580968741097757742607697673878164349069590937569893556710355518248238619649374278345152128110272062205022838072960764079393385611228639006320820734408996983491544187235939630478565934121491624297156515344939184783925720033432428716332415736808102024464321810823748849623056038248871710268189827910590135990059561958294596400680224694769609477784567292548606751700862610634896906586310063000865148144867195547476959981189960108940812779711493223161751157294566163518969496758105483193754289799223244384687360847447940239774990763488418880360623206732088081135491806399733986804541052053361462312811236231612364718472151525945855646596847898926204783677890223023604861806910480152804787304555087441522115594829352320952914584582936303776567071367565365863684271421019880965103728096716573645305967784884821027842524439781390142187867227173853063143104367168698073629490222330420640462116411798789688557322168353342205725593545496567347239983646016249563713015352749695703474655080785304720873156376224866137607454900793635645804386911555923827309085533459560035861463647778211340247669453151635178264747491846480887574082390018296090379757858848384071482084837525860733177041780394998171091681032027037416837141837459796889980128071716999155170387975638195691694270865306667037153743521417506279308648502704484586042642549923941888184830140320146967878879290944722952065088276312170751127516868422440436921700691431083640837892904526533917363342880578670892550308803704335352503948018135834707320328517795747449944012223463044563272157718457169989681006564682289931618582149668088235150744359186537754376862292642227258349083075209535550913559047753561985484880903106072265760054260657342765370675188555942667216172532191236484231342829148957545711535829234714316534477306925602574409683227004757219444985003286858959383585011770373707119429041643498468451135303080775505462984347537243631569774048999574104099808981014608490751957319810775414049103461902972264285373077097940986301588371318733585896433233869225852207359891863867347905596168400367853249432983933656739731836451701326924589753131564710791018813922967004066946929410673303344566704935307854684598487748703891158619357317015185581283504243119472368860692804151059408372780813549589241012466117274713762012143831932649025269267183545977395299028312370141281111314618738267434332863757913706521251504834268771132413924859268527047502959451258606789531204339632619554391430982739210145346829706945246395772271813810360920475121261506263895171354910054465619925471039257321763192743845390764461607995769329503401995550935021832675550526833339728782328103023048421970017723499704232947201690372871705764459522581259019392466557016965757267498905758646168170942354858606867638494400582589726078620526008609345181830168389833272348982234941882567183620027845194573915600493036511799725966499207628441848065202896550533756672061187742142663653813352803302219169425023206711090441685082438029742300806649965082712552938350490404422740382123989348560292460843076120745688072004536629204061704833317954684391262571990993518062854164592661797332730548200119045765050229696299369061899663364884243267449789065523257215014324238261605513896779904186919098984529630700114169698340866160083882222289516409540824619341208581512338694336641309620542291440042712996944509717720343374592706468050862690496018321899373198013303839548896162237253500134336063024495948792702364748761817687430579720505537878961478556525285233081324013016044444602958057769716296113211885700947576057726372319399870580847593079755264896221898138361661451086862970401209525530574830906612253092010483713357359156483416318552961671205828073434712925853711616769860268432992569448058671218595921026532195644727710184618922128025675694726088736456373549757581553202282778207390530843917971718294125641099550113654531016556712692472705230942885381113192911311099461629594026712558537547262525381058293749567572626854785356647392115158040720858261135951809023274980991477479437146616205471527097039493214992040094101129708983078461247510199443828540259870939317954586152987843811740204293497050477479036169151580553108505153067789556250020236422381300718567485793932967665924993716566493116493323835590518293145054729280969504657278115185591813973618391464146204247187430319316152399003857620140396113803249570199594119825071052795047452753190605395022081825486355276909554484764535857293081912329991447458944292851427259363689376129153189447487907577721823494891126699289087149428531383258678044697431813453015333420941311602380300412135399369661918403129865029806586205069228798183781011041624291425790541394175810089004991044589713620454056425107552208579842423903222615076515455783777003723364178622089416399631448686072712093854738410019487187179683111941785981293936274062685304298736761076212618277143657283039294532315291986185431464448909072597099471031661136425289312287391282607812266409377850266293664984530400797560507231979262555715277765685110532387393975939172722524814906384324168727251881894648277807818111980279718241448562151482584613461074089516928037103127579845984376035047598036056703914463278688603545792860141382265960329728500098979545523915415602728960601242678646170465535089968599991461715423937512008829615777434764960539921267297338896302025905351489063982235760687440357424350634096818170757762457831163847433482546803098181060875320042369218474053230028619409805608990734454543771831419711645362516287781552455600720913481853357778883459660932593302162423457363317408147106473926964529971674810806376272252031063586086041169478289362173127906922831930522439273121108108118777217808216687792645278310187437730486104367806011635377224393817695973835448979085662068701506747001896237632722208868913293139413317170761943322118248083841138198466048572799474809321258414945385816625611461511771047826441440910015642242891641444466630008837296202702920332350834416582771418932412114165563742496557643196722850757118831962705256702344804040722518794902816201459032866828570668392242205408242189660796721392149889353263905499115920453161432079779796374747027912422429884625526663813344359867164872876371336280933039188148925012768848327636757210287388108375493750870530221978607811273486144392204782564273890580293427581032177102499634326493855257168447139055897646846940820325270062825446552345239187184480284075063367120494823756524228616531649441907964427173475733732029207541749147746654576159817258282893815246849893176885265753101381143198547192279937128847793291096771978162287223575928730506308647091868880062588154177380924391177549912848501043378188764981363165052816792257926185162721745161226566178704241171109355883671094741536099390284053820925195754485650789196598498756835118162222573542415867093527247403328457644608680978400373989295799511790288091257904864221972256468062708256469389302407768322626514321505561773092214093331962130244448067592713080781528283946748421728889280385728054336562629698298010843148212991190996095811664547781216853494153889174613699910107360132424874826283845905475093808071739273787515180657821816336069438412115300623705783922061217188899808152273018356034797676950405616919875722752147647635924275977446280867122687389064125979627864215154400741802360159558740865315769994213326817235247019445069022771134473848286911721987598761422755966256815910203648525353835329936847984638228931395599522079659054648942481792816853616678956822211873616094019889058127017073477597219197559885867726525782539522703543724828990138504282142636771967851604915008859401701987624478027647300029459805195852677997460378443739927457558784361791467080086115940142440888818951444282596270083994611897725192862245344308855189749414215696422627679374782961704296023571971935918052007112365237532923532422849041993386835774389116275609842869621612822368062712159740666499678222608270044490464443341829418653163893159402470751548084330068587680129164268157661863832425832550016654929493313977403709003379191570285083422887392884003091936684278327454491008221805422752864382336085008315644673859887893126854622460731121437981186891009803210266397118249564465282026824526966287745613243132145415625861332160037566561081898440239195195877972531285577375546567002887046918780686993903726975411034502442739782070568997273525125689776263758744729347818440638608529944725391426091092026989254093274406476737033134564029046869684669160481031848859154980586706802752505899093441975279474602502621166918877574363659384450101087075173347490921299421967342642779873440288377934579151777624274976336401622923838382774050007275246746578859101122764935923921484516497579808915857511122980845363631679251096858077309807398392530031306047759132089818078472538438122935984621671425230495658623839538463884265674927094084639540458114830112953436282821480232621481353028982641399062600656806787234465936186900109196117138190126515761315975130888857909844592752383321298206002246184032131162933034027347441488914124059605848097093152013314292139188779498698917780895310917274179481636902012941735287833481417334613966263614661589173474104480352232355121594429836147496891648936843959690234113192356293329503745609950100323686877468487728703436341915219421137620185191378968371379588462160921467192532383597665603951572855129657551769407857092458272440007888492073126672458050579694515692240798084887891523546182933962346339610497880099519154882309793566286884399082412582183719517880423982141619747724001449331628373249934795151722995554169551540909834033055322154411119721645300018797399869149665624739431070231405834251606778328582579044541093236669328059791827177610334654333639771740395677222560646682934506863045950340574652446795882706586577840212131981312701149700944186787154459444227648230047353194251168345732115633456615996876883719360873916506052020602264113514287323116641420657043532560648695080700066936481088574798598855800412975586320710869722724469915253186439420476440066221188661726135433869798032985290383982949471416731878751502455058895607994899129250699813208944116441712170362159087265487987074733913288262408104436100184955523304957069735187573895931890390116173722532598917641737280876956951671283189743677256713980721215583786566717217559416347676800148720865867871184361052960052530896703804727365516001012652678904380652842622603441777268347916119401637332638086105907583895398272927365061544371308399273484569794429090850500329261727743043883803882947945059522719165166901349168350182934897562700626241132020044177603572289292803129075031168926183049424420387623719327225069060067674513171564773478133701590925403578179895586377220984586029246656908394286906629773732332248728434732208884766214768802837388147166086174652751669840156501369971117174262100833286475588367789129438539715129681740297710742068596759841982184409301597088754623499269286669972535583347863087729911358688741503252443326466478329789254188980898751157950840799558476216965351692373194519272610674470260948693460152852124541632098232745324533605998045906057405263336079286423290928296913760299216101051641055688651459232304394259303050014581412343528587430683676642404681458146101709114995708293382431545355067531467877716643065125312473699021371856683101068683407313168865496799156820004240003407522692101787730949171979498647336515609391774470544922550403792121658844954653376607325266462209965193282595293291225763766288945972295905104954261599674130644204779732424021200376923959991079139887976387945107318782126463870928913769621935062121399795938318012226795729916452454107049839181044001073830783903943054370198471744687568247677048876143060368241899312956914794951499942640488819428957463912694800429027656100403717160050253681557249487280512675836299302922453798508172635675330385759311198800454940187169432796281873762102002109344639206074316767819716180174047292856223966111354916543029787948406802535826230871894180549322782998886538407344946288265162438785018080985041421320864531310652812855526964802255008052018611624948196538467768360582383512441386468776791198554702050753968373801070192501538438655268558138667852261639431314420532670777714940801812050979178512243200190726718173181387645199068613096700664415300377384140178658985289769305543633467171248229446878850066925848152488410985706371459204578082628574093093831931641340729370535765293843204997416927410317508298942109078953131196433068781754365540100030857948402972355010693781792228176936098877251071409785484849422739301688759509450033179773531965321827722406770702868856099300141537683658938560128370252595916240049875495458561441949970659592673351823069379815012045014799298262563299562845576087404721961148882201364400285028592342280615635773449663190955078081708822657383606670407981314610374724863544699500813376045536976680492366178164955330673182157194878525836157109176580524696567964725777176115715530875023316152588933377019929674251867630608855428245161229031517856361163931905243833249170506601590040925622741037626412236967731780380098459184582225561338033043235850763936044317419651004398360110889664880481657693265022586510924646995469609965068112369293044119542069596031257322754292216930016866610453263328274787161227565694916791563316052637368781104463423013761192274105302736549694891324903849877144226187471547814369781648348362664262992525556384799906317931640484898226164990614729439435063276234079653043778248260646454280369803891556557533572818502119747825424744506718741023369965282389570119403251681261235059952053601307614362395564483453436375054736864987345261178836792980857337939338099861032777928780352703597252960351385607080683618722537874771038620164470161154536701100448372346232226527237306253736442737929800429840408210083391263402683332770216440625483537998872308540515085069787008045622266572370615216658036221116617052865903219274501672512697435829219635833846542026532749017111284826733523517413688581823622457600889378973933388098296956486235030543064681274657032423890803754742529035004772518326973530244787148693718739812273307973154293824510753332047600310787918842060826329977134762020467559234400559446844343975345211894619012053885161999334709265739580317704789768979821362268319461115287397669610340008218644378129821091122732443827144754048490146907659437385475881561417385763673420786847373424077055106282606610562458799046807903276556976730931438767134573307124190919145540580561187930768460032040562532516630412877575644850977928140834508479439368725573768968647411154057221138018832475015124227328292851111881571305158205711309482596283588570842944002463629356326155876576444108113084373123638561578496069296779515343334847971754693489030724309072071058223257165813752665417020027325882835352773989023101724902208056491710593012023636093287649297977015741635743914007101328663110815484811920318102221478758865625457654384184186759772605164582607002766852446553770306645772263119103652562133532120801809252937563852419524699436050329734076353821629180960585816971820600134876740553848151489740900151687800294271527010115877311003057418533659993101159619542457969254628808063391303684084532629320451528423555028616113447728378674114575319793538882483958202091504494129837305763324089802060444046736630082041256360304142120634678158726283220964793053834881707278581953037751835980285719838243528989721694885535564037070577488966825163733596114686655338583227789737295354600077664654970431070909145633298743571716394769554550994725742133658296054699247465105758769932329221773743154852170401118816149308803452375361412011062123167803615003633256166881043708342053403045369982869638922075718699612348764153307228766223866975844748748876821633326704606719180358297586026057273333692406038178556982517001158544204391502477705699900648096766778466023795546459178106312964821003846537115184938370381881571580638796241704422264089709818930588837578095514049241722049340363758416227189144799959419421875613717873938862713670693371400975826236321271278416517309265186721786209993728420906888454167169024903104065326070522597796229004774619557701536425976417955902507090251396148741209343708747463310704215036848072134152515301153705293904835048941451863437612637684677896864554094007724442938573279369068424143479232189193990352906804210113700289809411110543575812072757034329344139763506393994929867296281852005453864486197180408008372912065738228705498708785880226565903826916424623111232055876315607363366816149696390225910065301464107258462366901295113979631673158613153557250450279632857456160362313765541238166448642449134728248191868618593194612180658465733927748893550427202077554041340581403205583096294074766390548963851301908941465960653706777490785789493465516814891786476770975349390639783207111147494860429220812303249373640704303688700509950494888815136641559143036396080586110402874345932184702297363904330917030334261172001704456188156369004304078341002563614918404021989598482975438723888036395085595933794126853077787809977789950553593654285779966732691292193232086186307509760084935914196226777457041735364138947298124244688958025199827587683263635857697592807492606545804210828241442518448702587991026811875380243761315503075180340379963521552554148830202438286481503443464071200952141516922530015165089849440217754646954387031543632384481631493213413251153753621748907089539977826465017090940318169814307806880634342704353865194257723026334777129338171203205292036493109432289575751580163561181726396447738754255527792475393282649816935773846667211163912221938218226592482554764604075033693537362997773603010122278657934692920084257917916100503437357661219664616124370309450260172074537975933761835670648249549972062579411574267861432763682979616055489102568521962302968100733466739225736305318582661507685432157984568876250324322489980560078522115988618781247240303028146261917105948791802084449013277243836385771734521615419744605003883896673373669930673015577598198370732800779816803941554280767072848449636146926165334621011945443228634882536359185519543506991968489086909031909649695696525995605999131231862406189654403896015877510388963506904930221755792402976035705913681919365252483853013553747723403983951593224962267982718736273321042229320395700542062706937672190729179418838406938402701896374265974127419715275079082214310040647647279569266258224185509243500846743777887927609317167722721364001559277301204365548054822254078832573176476221315952467556691613194567137862365180006474474406044175858281186824354800286397223638254642900739438217501774278440529665043887034107865427293431559415948974791767738670960352446749900264483583441612466308554425452030689116914826816375545014634668230778475000947881102116509415559147482891866801911417299617163143828047662296162524296340978871810717110777171917868254622543259540397095854765997156373825859862781864260883765676457490187695293383048342353562868244629083234279375096079375438394729800816724203616111370195723519601318293688469372809978788084755922501380691778773568559220481732128819601178072581215744988842052787211112612636583839945905527987562047562375799160074765688044249133631992238541313277647825236420277021639457020805865558227468382602636528656192295068678200919277423854158965115784627308658439758067906948087178683977482585699551070672457837225654059075579530976502319608926021979428036477121428531854551262385638042726582251741379277091622416644913692157506570753943993964801982103212522597419895558580649190679096442104445765409660628518495554429849578757781776961096904334479311603598252705082779074699506077538268004744664755091609114399208543640815882339792000116450068989740453028413069746322636625742277521626637425336008145485725846357024123948777052191575425110344344483842820592111154831925387398965128527241424623322171338441550466077603385498220706088643720425869436630129705317724558894087261946321969259389394297854628302987942703680314128531297875663547278780779720597195979422037469473561179895789515709454133187323465137426456527726180315752398082148175454562447902679129041072159882800056185289620073139562969555320256417719398036921005962204342905795883146337252907643210109613782296525142951494907734321861623018215495838987874290504732327683887105533809622624018533186749001078357085326926484612975366054144244734624519451968902546834832693963004533231156714122235087835973728533409411142065467068115576201474537914345385865850464188501484352699753975430973313241694460511078376146394071164170674585207991566398516613322186894253683060012849485583228066217357393074076037498515485735553786794675443706523562661092883467407736947535886013156632491233675971669935096025407556962514068240590120424633900359715523468176738131542125071891843071989457018474841575105193281411632640465539607378444748069836870609906796638057111575514794547247822773068393928510432851802215303833231142985561439053404777094348500738813097564098144497883389946490053423623509341790731899636190017997285460609081571688116314973016101885138744869738627589203370033984338475137386567797724099308504336594330617358565271909315170449396804182071491033804555617103689242952588647189581707055928531170770111729555184795208713166913821264639634684946957908868715740291233973363646046494026977953680816596935426450657035865943240536484391177691841650823589081362226938583568747252418965248442854831796822904916038937296014948191923021575269600139051914687604653470017678643347170598978196341207606999360202227718930012564950205320427664075168938733947584074854913782961484846891709656254454041598461475494141625744561296380411696490679285872213379544858128165294872956732377785833639346791447235599836577313395460010171693671755667507893958817371092079763725234108178196985402665069971447557296293372091503304365167940199367937065851994404434801130826030809737751025384739502129169248619312324512871611672689744416081165451308045955121420204349709698264937397415916556711216409325927885516573828157377967980750033973638782613198246541235942292072132696962840338182835774573188962526334742761243821311714625279163711094602827615763526982086203378014110927408106345804182889380108076355818554885304686508677165001673402641010086490665048694415742355538498515722618520082632543158449732406288708440284126812947984705034251198620759095400235507698312972280846120751375521301693426105324130563130351958964343664361507145950896631893729220568008079576366830209539976835167834793579403859566563044158826304301305250946871058169321382571284286929418893403442948996105751826916345583654759667104971320927247855277426573030580399678744094653260195493692150285093566638157804448695394064992653837288615373590090335607976727956231475407909302324575076650268424113727151467463557788772336406445987853741577297869123438777829233367732051567444026647627400489314024805557341136021494273604944902344107178864226267579292114190213318360268378970044214276931392788379358324345685020100609786791422916218373820279119068381782398562681384909299855519824629660138719719721830024352724541181098616864935141795305482254914641060319971141558365000929139806775135010186425863560061956555251654023934289338400329770490302882902135550215185820716519437053228363446635001371527600630609062459474775936738234807436763381891179108360739561095621999056586632004940717993426990095320160042652531407360070850935211861946760524256237439059171070625965863842705313082618246337134604235747712408642696337717655990927712440185921612438397387354535514709539835537434036314019709214620447821970887027818166771617716913350081391458502889226577981620700319717483251092457743679983392104192699304461592858175432600686332488338782191818440488600399693086588946060271976537365523996121767733246250717619333140605034331739641785640274555673183111519050131133764612689154171246568575071637387457833690670360030904830767773414702568273516339702793927008451072926610000386133324596030837558749929012655484261177829307020794240732194718438724441983114644196564800381361750066750553659764238802909376383807067347697440175284272666369351989176278462836053151381048829855365415881648124414764840510187982875135847076122900381545922210706362231778966924733349849643632176499113730444499039259298083642555923872970729361062464385312339562572602575656495751785453361752375536516806168506338007371380669117389094218916624334937014237017564297807467620231783051214109855454161779350812471056420948510316280512797642298163119500703005084440277722781304821960830042190732177804693863581865992922618169604698955933309684292925117622331151669610246467003333308706181967504226097850075089736690574751801225444602384066456312843981663882669513927966103033662986263079465981723557795234226636442493005140615285227389066051042462056880067527918876230918581930333272149394512918885040792174250886242247420248819328816943521926248671557041202315546825241534851676332326173667384340287861165334135975436211212142211130181517279175099211946974134892562465939459205865467482446607400529431958198845316156093878428295711105869556256861412538174001861497434569045158920515879604912792092782992969454765179406699941201273694952819750989203997697697570194192539185819778838973849335706311286107832643656091695108692048978864239659885776592990745905958957941931864655042742307838015418657514058333201522475367807423758827181567909984657815339548779269059376456202252646569053558834764444256984076595725747012814208532326012056747597526070639142745491834288031157687557816611722842722888896926136648846765811870500479846470483791008637226213005065877808275054005767456114077971390460272863874114234415636810798576658979779449105723028342270047266001706449102012970894533955221416353399147810371524600058133470652300824116298102424670541649301291498235546878990824701816671980203458586871297054906209571276903475307720342703962833378766738776237769189499302527657347652478569784450977655536934297773657778993990124363688197347794157516639203644208174160541959534136900585635044292156747161992434245511696574644902187246890501694184217288729726410024410321028360824697116792032265843267649097440509468477963252866870721010035683800015117064428061877272007994101619231330909979766814340347579891393909471668759291175080747278166650008267551574366430678745408298197087391324644611109097752690664251864077409799265533415707464664278155941819343431528240810522835067987681964280713140265278993036511198311609832689370034558264191523983276367692912828148016314863808543610632851335316928504539641644869768551651385059894921160481343806832585931427710184614468080204074188049335967210369738505112367692269652845376735782483924211964152128768525830921878299653270991195789204870893427171741782178238093453450908021033995130245375425904586209476682531557489105127537608130587470918685713710583890605964018445498778963814598702853768609274976737360426393637738380083988065220804347977412401768307925396478887458255348459535735593428951896790139630130662316922163628643876773959746127155122830725268288212492664785346044427229376086557030735992150412904872582904457793406652953234475310770296789723636999852187834936301125160155638054019783354922741374499756950494666580584845415234835260431407782269850301559480722055687431489941611351742818683764910997683731213589072999207139461351325373245509736422458781708556098759220859783357251729888828843019894160444586251054368907624188958787742041165678006168833038712630017765975210495893153113216086393112794560574392722622492116182194313658515895265649579458680547483336937275046906017326616550814531841167049476555154287050253487041412155462726076768394235961917164922948572826504901279903104756124507088724049237003084543597213892775375468008283716790508625077236312442171715837061221991409203557384963704937273212829959529831727567671287760190092546866324302125670484337591784941637340175162428889686270380518671685364051647429277519832234724011940744323177173361281420068790254832627732483094754943426502986590144123160339900551202591991533288085122374991367950425990927252373810084600335452831291174808242071158394326927119318681574006992910301814845592452716701188774616762300705240607137184305662985806487730237723850088925695327610635182184697502569684945426202575118394145477872314866475727738974505944434714736436396309766198330035290989187184203926664936144612235893608758808784005707110174544646400590738910362691996481257085112254057228357733799056981403987722265295213931206238607885361587469818703408235090542775389351474251322272437928678826555293933801634801408389163064549680048773857660409762553858460146517907911109305902914899300680109203397443499368218257115827318500936998462699885591002392422018229888411973303020595646034171318928269155995166555186363234266105551657900946270367996184806710009719393443607759460487942288343662108742704834320712916260068924498575944927496355994975780602085359026884341172684000844748943132533452433641505631332811832886059593056918696553547913637687919759047744883786061376173455993469366330135631914409110819703336867746329377094985127649983711830965034434803120321822434708667703064360769905013373939785795238408810323120624590077839436290335232523390689896412014686503814565258757806088101275782489863604317586642964819928690527265225409307728124472244198038465547826843358705520084021274691749928966126735967084569271669664908414188976446107960994214207008643697047248377822165910166624428435702927420953004766068195822820382973212282423778712268996205190157469151267855059465023213859981360673136356303846807507229741001662647055636005990728891869149301184981457399698166193644916690444691663721328043732166750522876093700617853040331495856581500494476844074314762816047607846423118722533878181816948908471303116644389079149444218385623976115235455585038583152040540988036487559350079823040000305514235502058041448008720805262080500249601510212476153287165212738399706022154365185984551017817576391279813772592020961930096754624602295484034672568550923760695524655568139714880934192814639858648203324798781578350496979369840373008549781793954552117396510014873371205772332265123894363804169463915121448484657334014449016901503723626741641972311497143242923649809611508971459031700409362937626999686121611679673538101539505806776177452702120822261553631631450801509864758739194819988124143327826031489270012953503783161633984342434970015631787315746536504337428758767118750192596287954427726627352674411695489671445894371251750472448042257981386729327119359795008343771830155558771401902892128637157927471495251807686739198848677446880967328855960677031383186421539521958854797671562475182140241973154971159823320120311725292841755430565385626885420284526069749682810104008878769082746612492767005326932630223436226451263587964090432055882304251006012092498977910843169304182706642357330857143921362937507114544304729768414898640438093347671878789504923439774102540889268760575373608221737936807589981178096182190237004188220427094540148560134856386642939362917061155713724229138241147196561509361948600502440585590872718653937931889448073486869346305341659908475550748035139740498410765517896892052173042590626723091302257314423002912936293628329720830307117255172387247310084154912663869386816192170140407578105544230101867725737886859645935725121381985519600770271562097587346975183651088383297460632498276066547821944110876320167590977624287630490031114171420285437797556994345486237175372225930638289772007110696384922370176265231654416138637308543785401034489344899725167120910144711882984254574558071975766980393033957685530207291884929254182195005581660101870991848857353432889281958642236839289504036187560721662980417208252856926113599480411098309612560560430944375720503044805592749231564549244714213098899666969021511000155945366980320070891607619341272334287168940091501490506238722889231410595032658650553956085799455694209089688412297425208033563425199045165847038360568303491208294282943429755023832158338662137633023091556901457005683711785340359104318497756344765754116310415965421624653060604246987945353434150326693421003402781280931382222049395749425509385040310372922928960155857130532684562029951142039648636356474019783502091020345979856623390731239454995650224355247632967788009464216890174142265615810369661825993147752004312331979335278303391191394145735821778229454505503548609170603366961388817948156043240387354516463385496918389933706778767283980457468801081568027962132462946043765906223839870490371987606753360341391052318127547183278088366671604143368797367804961773720884840796219154045352273323744659046747919095399020488607312646249234132802315248071380621353203226369922176504848966394832472791843085163376552304489733851374304340138062345030090204954439311002540750229345140451585099093227741194713361354189141990996189372471928746421510555299154992633991473098198680137332349732685017402306794423567300689465354749420206469423873021183674521842304137629620655595688084717966433418930898345554901508910587047335913819694402252650068460868946666300444138017185091369105696083990270214450974367862256768702245442633491153778206335300438949270338771297321553167812318491498684774846950724163980591809243024444436549194907977681455991007424126320582583900381733975585701075409874194069553773066486986946409838250958482155278574761090401889699754781221589663128106685896160166796300732939870137586098349777647832411156827623381682568187244364853386090751964686000490674526315329276723320188859481959170363022818715452754810377687134581415985506184930657649239030054877039232135188519929014589630167529880504212362254498907757330309200484949459382479876119068107508152265538205354597014741299137690345613360196575734828259229608966186134025847679998957612299120477143769129876777086450904720866194488384985544472898962961332607982568425505084003366693563007048436145897024864061279351563285992474168456748519907231883998021898540052320488088872562606877611911339466377000079827187064518419909360533519304386797551366271709061552106549741390573011881892387196995451173978406289672084479689468447752716006231573860643960793902393312637483805529551691073137248295381188349984062676997245573363508268178990636888559580136133396514059215415996798858380438576738259749261357092962805421462948981704854603658147594956124350770192967634132984924443704292868537296657429442911950965691653478913534610069824051121570988684984070143629338459751059069960393375657668751106027227989277655588611250498482671331846162015129009789669488288512744097472014651663613841684769344406582087683590274261193867698479920243012420999019527028051923101935935604986111236461697087759037171227099262771028064422250168399799009305536697519066705790705706109610472184751770997035763347728597411587979376643087340392457529737972755304459800198700442923342017520192799102051443453310626052050463005540493373958118435344340312860760260880976940308624109615415171831067219141224200145218751253983781954245764878825063034340964928775658365116861884228308071630222317120833278163479630623309748355951356476711529439849412845186564851891576411689539673248141698717137279098834883030314983362008727193418625784876036184626361242940744779826719561838702568705483848531649943356784828341943489179331313513574266223241566955203960556808806630195423006125347411555853935916942462155169918514735693628634952726047038644798660198092982112420660901281433131039327839063496108572667040738111941730312222947371426195182670338770037167815332968503416911161805313670902296279757328984040382208384815687959532054860558852247232517960463851803187724287994958685547839632812400117765428536028778833338688235875385579084836635402244448458069333437427355657373642493950007850673402047913863894911984317079017965155582668313969990084844478565646371493808546328724852093383119993308759361195996996437644629004727469553758826652934538483452978773976989716762311911016006610158726442699257313524910529736444722873888481394825935370700532362171861849180904865684236707797871033995305600756854334814796405435264852809780536700625028876286301790870421559964282657418630077977130293709950682448283403141501773864424599298081274826334582637930639439195368002478225892719039084434146589678257765994259436717003108929689928698796825117406074225873165785641511809093505321201309160243884093404242069487723212532833450152795740339984301639731070575812247383246834354786397984606389297258245306395071825650419911072149993333183511520824390941269114283128454602040911414848442295837552094750196613273142838101352243799933401181815608707914974582451276278091746609171804436527834075036955084751001804553711279122454423228973520539420731037048222003254932433978305173446595582837754983370923745989919020325901838062425372593065994608619978641743316852338466204776449390266871522117456724569935293661023250429688891303744144727062016522937885445498088532739156780705090553897089687841913389371983631722379686974893861936316844796785475312788751407726864219686539227420085471269977286258859937314045089024210156325058086479196869921527833519733475358778730850500945563229622630240267488880187881842967471875856662740036225827358801603879904478025345454637987578077492350668389933966029197982771813392377535545712316488540390472956365249861039171375852365836829930617695429914908163050828791484043938376174197960083695096057765928267545164855050451664997923494783010734798950724713323691752330277157103417089026783105492088074077579213112587088490377011818696023326229814716955997677978327159696361929281283023759792160727708689377270011360852982459817492924719518932038583485241049902879382851186581376177942910767739691023598711026342408527452414023121206594426602103783564704967326567409824633443868373625172301055549072540323413468749092453573987805292286618117359059725279104232020554273150134886333335642382913155982467887106374270395579040247963317711994870457589019222365011840401592508675594735850889205147925127383839583655994627555388144970323801045722835370460766091758316598165124892161093725102340901200678470325496340090012573143632907061821895526249496410294969364429871674560041820599250985164194422831910709531433855534408370738920954818096966853096444109112277046380568450851006028527516514988097977345282074228272914025081441607313011980874279251554485182329307138080937826127107689884977336475258520267481261780286353743364409060927266693712040538814826182404202445571378694504612781910663770080379920678904845150322350217793613508389666008437214716241194411311559599834896331769238241109168563584099229306874412814309703108880099962591439854926926528991993521313154846128377785967119698769670655011724032873487514849411933726949587679999751595990267559241736990010224079053167603800101051306233994132712429994711075801508874691490489776583697827780216892524831398317441610827775553340164398956376339957340375487832395099165278047885212352626309654188145391520811349901748730661057706370901863866408602664838081151292858277082203047691144786889622107860891064128917289309714886054337468158686289674406316327376533850258454974732346515958483018095876528996393560473681338021648472837359767609029160946427113908941191675516701709971757423686081356741690093341116780407748109949677907103026021804882510842297267418217682016549678327769053394176544796241432343831193746194671792521911745584102907007876378461212189443695198791798943464941578130218222253010692092089554735708109908992971988430769701369493056291985317862504821674912399618391870106555626284211843923588013502423945564560838417980949208715668905619994680958598868729591873911492660456424054191508001331046948187587057330461663766630635337940117795895072373227300519648669459795879144631148724319831221135095937561955709873750192101701604799479874959198898601925895079673576372652785560677458881779861859633605901167249253041227860541964744650896388879742938097105582269445698282838601518425385605246121802078783719475664827489850898359394463831530714666212486136686311043587361070579339791640831449466098146213191932991918200391604844981847720411556853540916282318557868823267422899813224460819421293029328974375331013728693868005192979376340453255514799618885324436411760546406377903844941294884758763676248091584437867045403459916677508401699872994047492159622305851295937450816331060336121933502012308594664697663838256264192516790742667714797598634727764358030853570775179501665176066027961900495274745494220320568490003295054542097785126553165182882915859498409005564920218586088690392252410485105110014315197033899338557364905648677990492686604053716014032461673228913006619819338137873611813806038078202998673220807751817550392827116475124938094598172788287765929283423410958789398736659806792212394475479377065062488304751459671688275267817917785687822834951800875485268410755170880510028265194476086261006251122431928913801316530804448713447298795381605140077206193959621056337536000121589948059801336392075284095182041447044793814629299300343572155986318501579681089197606557699834849488907143714873561755156040770407008493944480774487685421999757534951361888622436998186733002208458512174026885912772014319784271712767013063683728040924036205558952401023396570026742431505832242432672992173558548682989311597059624529643300927462063756577399963368420832160084216930219667639613594818661465349435395068407221909291610228975186088139218852351376277069619597218963329209628033997126871131658956991486724554432212835769264191269045127111118063198952063387871662783190445239912384602766069805707465838640719280602044915187918382901958680077971367540170629493236322831032361547001999270134677909022469451021732023733146195110569177662608683556954961635117365659024797154607333986348144139669300370011106888615041819421456100073200555621986021645031104762851603387373229975242804860086787702260034391580662420079704181353942986087431900702637832908195088650853575081362828716241452584380679673949375857772545291864542519311793937559907620524423225644746622420101541052038003148192571985197779058332517095917865689862889477903070620302593889922565782096695884602975689141625218547175066276079705964932699330822863827099537985136539022287520637977856872958443636497681234215770871362925812845409579126163003056818910765994613789998426647714378915875507606228424376344094744816849839873944380416397743769265943913935603899073882027563356933250358861487881413394178413862185755443870625557758670959854727380655189020005405810971468664683970695962207319372319905704850428064361175599051737236253564840511782924348246047574444426154350086627233127036245370897473783043749020437600781438585211684503839263944744840723312115848919700615126263340179499635527815435503640661099094588779831608720600031436728606146267962374477208585911300511277764666638560061145583032361926389588376150432117689368507508777777811109779476255066766894415623256376286585782643011806578960396955701435966854835425939409022076331693307122997505369961445672155576792920529428013040381806030476967020072568603152412172666310896768663669997789217122172480207757382524547901639716667109635580557192171126269513909207299076685716985455887506333378255908616162010197535167835683569611846109927342879957087724241800582795535472012872472604864065835370757390003390310550836623235772768010161377763666165033343569221590268469606794183393511249070185658570140294216021956696775698349460830918778125957107708304428418378459127918058312500549926422867079615277976620153757428824900814339597158505157915026951271881659243021106000451108171230648556134364252799483517013035727606796493223791810032790608945046197144668212059409850185090040936387245602154323345051339292970544632609150494216417245210180333053813577418334576061453840150068923548766516023445925030860840914712273755313505731745911138941449401365640143575641350382926710731205353782918485502066712065953355993832915462618709471450564397328520993611932618429483294972456755468869164068033921703056611288444301619919888315093534558941161770511018216380522484963931995850001711792886555925632900067630089433101213208050226113837053065972813735559121629242964505884261897757637206431189137503316688247489747670458048146804344839003393993203341526393180403055578664564256673710362052896881152527777465189891702447710830302671055896044420190856592826376546519843165050353903285770031086916938703108445817180533380518268854214263408788136361181395552616489791801752428329959934475786790149898644586291426981258597078940213435194056425750684299480359510917206928547543972987361904018924197897334849429058668557371784765579833237459528931783043489903715258540722312533775729282577233790233561407950591216168229611455523363686222599125232492735336457568661260689650215221265111909102834133717170429207064429417969349391862233641710505947241728602960262845664366954529716657454437071021662558378243839877674541326436752388354336160863059852408664702984538152303414767378553692757239265216001749886878737588995536447237022060768458896957920950350086903550257633629443189691398903793158079171762326790786614298410402817383766248990824462414695624570120629024574506749562884297021121100988998294430016934668158237458014343004866601934457342347240411655190993024335679368189406086849465211966508545510499582446419983373855247615204062489688046245819545286053326555361714942686830912962056452163237888648092110481425619998807406016038816128422943899340251898150144750014340009661008459529794813868455374954879895153439591487121854006673520627905219899722785960286608660808512593059051474709800573230497291231244624451468515354559425899687356428894186328721559854849886356542100810832422621207555379174555610670337739443739428081314724938527131781050020537351528084061394535654967864992333584397450289363966340130562336284396928337806741200481885686984743881784425240441033537853438959243397194460912348203574025120102175552083849525727011895668510792941843469099081310533954581339731060056144161369355708241835225680268670122158771843176799555443219992894350766666751015126237805573818494068968638035909384061453842020202592938658429257277854899050777216367235252437767455578835332477780016575488248112000260924747509599608579705150143597289757543880069181691179568576799214102870462295673089069135284823950617283682101056203753066070211106887518857659422257804153424449569402005559876104608930369354120815257985890580995311688858733420596467983435907314249717422598705405851892022823554608210577036169323251483151694098106787153107955937093420163425270554234069885283782705929303578880714736939534731710634291541549853656892442682608468827812008093788894622895285457034958020360977402799769065455078837443647407520751929125690152950402289270685849090829189154981353054898203960782714238364291909226239537131803723243649927869259564351529744599267907602597868457322881227658566495356117799664555301544782737395966431057471091941519663749729701679294526426865546588615053057952494262708422280246388740311536649126940591120599232640560320511278152786863333605714389735773340415950319020074189492784401035615718436626674181587436329924765282266619037152800092493675127652231206191524510213111903463644434321525213094398317397922106112401704706137519050993959657744256287278590015460683626686749770774704323893414391414731499367930638842882989799017535514981600923132714452260932792513929852988205595077467561751292127980495591514896247524876769530993146357075126849482929739404140691619737631837726474226786995802032759094942091449169752840553259439408848974049018889965558593188687381410982966116697675625940837345129928040022044295106563272136303106729147708117176765560329022168506811934779190491010632479867974971013827980977673307349472513868106855085639824990397818331295393740551723395047259159819599478786958871868959528766241396704459019884522782518447033098508820109003722576679230262031620215519371160964540847074380222212753773128149264775536815231340527947875514929456503687362194147863904270013235053406817176773043841166117401181289515936057184273599361399375705617590782428248500955214568423039900599025745578695406284517999800683408506861462887314347504005986049158904684887196346235518715956118604343562096044518155812674784247332547530728194074449165550164991177883192129133524306049903485329944746238751517529273408974697915616451553629796814830211851398915668656361430475790142559622671138116706849093491016051166244296620357412722546634929792373538170631752432548696065763029971432617676207628684321437047966788314756001989242964168224797391522869795157297454415168029971722846175909083018850131619658876333678860208636356427577296993081806425418187265481829103336098779230216250983354405956330192562685458868155259592210278803993725674870309365780597826946178386428997209186584051592223982832941771414527597384883296315802512993560450079044371835195305828412756396002604805822985151078855426142668742407829983017913224115596648722597500448209072174731435405137045077359892317077358378796461806233181887852014925702108893758582248494761143202666742484901049216039111486909939955836629619801203188014020431354695252646469272687311018964177172015401991774457642219231623551758484838745465130340003285082678432503963577078513518812060990921052204691139616821009633127598862626074660048993520910531967032184811761100230319915996472061066908897111003868089423612838168284051440359084364958267554140141186562813791443302723610045001476466587716089084547271773889232880347430340192567000898905934142152813370424511422636390825771835265992992247020788073641126384568348738249382742650032577426310855518336231484040729794779916811682541016288769776802586552237450421234800309815669749087582940156685323165339316147312812208062668598767055106387682933661649056693693147499953209230645257820032171948976181766758948132814605137542691661232057009937515697883851302332131312465929139864827112395592648252659971704581943164114660812265080143118176052720925837255204075194479412760369916328537888336073879259576332925184040457753918274225343141931890084035840610390889577959787346149452243597447259855827819751578010735332660741922904754835675124774465453070195494682029406866522188682071131221945312979902107000684360214966098391889613079531190007665140023334011634915927869423842275481964535223383811030321432820658408909967114427408131162322930738856845964052646179429214872903859704716582257801806026437311292411579325650357391627393076322406149422608940748792507740618480700607753401340670901812472097667286958659733557686608377225881982975995643687632077877703184850836497357343083791041663683886441477710915353566338311373825741719140461564067557785783988932477751393640608115800867382761119717133396048732497432314103569172046298045673218433993277698154759195792665503539780071303073759056502516342798993387048562744706128479231184541996468718016293462101833634418391319970068448297665455422365450342434466052261480741016262912242766955877883102668599088512602690156666926708259012571583217851691824088433204332569981350214740747602375726867095475764834819110964047059124606204047769886393011024540564697003254494090477539681047515731341667715595784449399429998357624556251327979367315096425038651271713632441377077908561477999196307178553846583274957853086064202821902203941299270639400617838243483746406873744944991964362395238970152111715059011792255378787632953278199942586609233062810054728984050954372684886983035481441138791131050668687446050376988163353423643487706033226555718799472928472732943118767326748774736371645042784098702420523461322784309735968686298634333675353566082955691891542412609107911927296385251901860436665218918390434640844775659854869258459592390476618814316383920060852552412997151180686711118288596629315663658398516457331151601730792353624593902280885923887186359697163521172673016871209557367909524262858413807296893674715477359765054602547363579751776151012460594825927121139794701237364990174536256531637058936781398340496915276174692720528404361548828121992490056057694153107646524838052155224410787492487804833537502546712209695588431597721002098638085285890426601487638694381759552039454918863258419677808372927935041081492308124128388333623539220521060855873951462541196053271011253174408497096087653572038884711285844162479904783052046661798404663300941597405916261017670186136642936343136071550340900282226880673249219210285409282061681285030205474090746168448610038384253606875578162886700611984518487332936033012197885424083669520420644073733903883918006418641218312911065890715662062626150099421839785332734515204775610671504579063421892171213467716261921536809183045606568760592252103312586908601995622891892865733229653484983348913873764342227294079475378915281611049033694147916441955694587513937501739492660437268962039002110301626536414419789979400091537228073257971914127370964025293070659260232684403174649893885317146930502855372010543603428795328876801496825844111944812342955360261160185892769918402436417773582764605786717778935735730655365153918769223542168451813227028137526057480903625518505278946968020335466390306092484719720885291024624061508945322380116730062153414733338961678998983290771088198158764196202742073322803057206223168993499598233655169429663574828195023431718957368040608852617212655617250299786939742356989422651306089256643318150626912594851944292104943881440575751927261310561136959417796305392132771629170331906256288437973411143416420847158118953060166539074440806423319097125847710731046720489791110179597232226223893022686705437740359050182999952530905984076650872771904381400280836238190058432677664423521358160992981104548615063667614504241775249640176408481737735290786598575318427652007980848520295768750128008138531411777579326266482005989493507844807810720561083285813908358781822513672325915515614556997703241383169851991578288743993907439340837478231509624303861337343403361932223835729501382405931195032269463122105268431143364671274155075909667394031659037980454248504686888084332100279137272617149998585325616579845396106163930327586344866877673382845701492421445632551891814792364757032836539133025099708726333225743376692371876487930411892044634529308064929499917335206080227031138225189507420028566370439067225454148329235462526112491474632135434811910488075080624113017581280771512281240059679454519419618996014596598782173358101400626002488182950372227975748731922432878437323027925601950773113704686015314474352266759352507685429479712534226128698740228188514797232118013922722620312781763347307787164152954117333354476546521564889362982969105851818758297099763883801892447169540290954468829257823234016082825418261850088718626421028131666235043440212133773463420575027592856513521294918543096634980525822747984630029216353289275013840009037716034928625352630434215680777737742893650012108099963330806135613813991131684996862364262182495316221453122542800873143678162925927876402595702875896741107885319782692645469361090811863887987701484222409428522904839075171612639303476907546358543069906033037892479695843590400745229217960352400273254868151681153010164095222512772727630904383217321436885499547679835773474360149810749933182315512180587802321386150067762283591534828977511784290190671476502179311999272590389218064583970767747426000191947358287004375177992720627187911185067774870362320616770246109124592792023655822306442951226126658324494256121916072308746873647216488477044769667068141415315888543851944657360342932576001928433785906588744180169780313688723307648132387961490398702592737174380035396427008257369735191833768386924617445604886360165634295379642382649012988503275746326951483694464315445752926035741382437322557120348314033737687282440442844606324821869858244263488102923511743984068548730999023895642093461450777211119493231097797653128381773797764100118774405754894369814285161380646289294303653116904602711444726851272384146047315534903433549271490368257529039738054032249669589948965299222149788326353953993881412588868116462676967849811685289703095746620592930189496626829274726233267999339500333418362662499613724525602634267215776383159511899814094877725764622847140356111503469503679236803785141149893772468778447819915342598863928350058836060965107503001988435879339464619881440054048024060194790468149740629949463285157704736455358440460416219094062756710366435864522343037384022052880463122077213411120718178924949952974109586963375199542908291036625994987306531402935253136163772005783185955373396567445671260425212311072588678241108983381882172169118050600005788787975522357943673542866748580085859989764575911194524215834560919152212889879565469124493722804811616690398180739240124446569046674807943875658762795656599231940011887137629245898329090601121571825939175827600762619462840203976170504850276603396908920246033328418137453113878085503963707240461578126282332971094643212212485048602469006233854147307278866630588904931029415103044249411864617929684546791898570554498847686202036262813658633913283593549454996026981357037400633816540768206633678914492475206276144877172309081954430468366623656091658598857777758183254869312218291308356599721628753429620026493493928200471090395469004898330456040161919270208583253463816762200551151399745936513491735987765572188370603491043485179451758802333078569023557824759225087903154946248417522912127169885351194690200006710321650074263060931704012194697415488936208687341701676423207627729711322613636520533025293903586412600587958685930381289438991516231028143814551093947261579112325061200192166453965816966628047071606935141561121086467352479424812686403439932176246293394676944494531347126009974259295460693432941915169241830115512750815718764673406765654996876560579707991822105244202424495662995511046867169029681447479902859347216962008862142402985502055749509387403810458715852372369931289756431456316640057992832958961292458194120342927076474109950889731182212924999786279228438355690368026672689674950456939363519848908753231260301284465476212647163778837685535131701081109340005898256011385907271721237526196721821357267894588188595555149218012377807230642607774880290857990435655352372053495188694269883423685486806532199493551899136858269855012389919954004955438607828166646086116714839464547015746682627347428107406402918839720487631908938282728807437776973354138729213616273016822487152833696721918661879067971756783160728326000246138549583729830398017755832824547886826438539516806464139869685364834414330828989040222818332138473183630460375998575574978402834136414588657569388286180307151168316388987774969265974580873505516922018048665152282265215489360088921067817272767276951143188546181727355190977733706614679136646895089737622521377505268967338642417712968666449563498908531014813093741368234095882745559956956315302316158257529765461827933484009193462590008078086684986966956319327308225983267300310135747091929755650698643812389243236319727461800396455693327969629176729260985838883021967065502259743050679452394456283803646374225101866776891298272323477009365268529243251257221440246305143859928983920864580452116058659652358621671844722496969584699664722088271676868894490806392001835916983754536823289010735857500852960496777690978213016370632950848824343036862798617331634749677514240412723406305733368859720390973703638413417874302180250619244304581281006282793138728376463678639152098920298007264626962531111098241422705422646915609575011270924676108661560367125800285386140260697575415484753784448707846660761181725936406362196312833302012872183473541182057264400876355743593449291714525118461406658648863474911851743554693414161043750036491332128238721552937069481698869445719311669536368413090952180793582641507140469092570961957773607354545025768808103041049502527651414719585282804280182080984899226869056195307223050924731554452482128835989615537785780905272803695325954361952796733274447366990354878335556761917398687738359521007632892764197583633351664070144899865886320867523158944305849656057210511695278294935138985142210846068030997763474458606966756787906374986681612516215794740473634051066125311066399848876057957036215300727567915220573855425117320714607634214959505824538109242079918233712781561552211984780318608475579971853094634672562959208540741160046190259596938196521635256750715766029010147735128853631793389409885680568624433485247456837481715932905213183882128870963928200124551402837038907493878928187110673535926050013519475975127320352384539008600797379919563291058149711318149450900498223375436366582465690794392223298895304775564665257835971903276706719499156010263795245355158566462117516658061941165043155455055332561170492425577527142449361575327244359667971509033885686442917225805118812583231872991616744524982173069732266674893283742917602061423570719438994958533257613467630393319382764147042099896282858096097811883718559323962871904732155981825490321655833916068241047304008452642147617518931113147138513377546628450536809104684748048808038202364540943196372304075174504722055217876073007467818977710491628658218623294173104967064399720374875444054076225527487042615301287020825925794704838136989272532571278211027519560881475015206164756688914214929198632203590634051415115714002698560700175344372518895963904496685931462182809716863482464972844565707516977846362713680864691256094271264969645793493710761777398780819487734448307307003412413873161968589838064380204507530804226273295059897022711956518786965934413878653452898933985154776951504703166681571612837967767791238584849324567189708365786225811077514307887613466854852274397946761722553051228154261254946760950217723695911406741188131763920917187956489799314946798725666505560535020964793070722410108643464585070574504125087616333004966409975770202293006869785229290340482975096763426648921588251175051793214643593301021945957405236778265796442112133549712810768677598563215090181053857276657155127819113749353998135243637459717573646943778550824413067857130998032231325243794878522408898672432046406100846309360769331777432094230884695247236496518167527171848924597330562890008485595415339244402238807565204187563208633470830968789177841092271536581712473653290257181860782950754799810173477695039935122097050096491903767785371373770837958391056282840123362234618751614259599594971895739322165113799929879152522050369824789513614776850961617402271375732142957249348977567135160796325069476015117649114257726157837959758053223444837437608688051165173743979787752544105697739913391614777365673277608701931183223945264700476001632844067567784177908269186652876177895964210047527401197900946656018197811223118754358033087401429542862594176268896988937936388729889216105683822223625834664262119857363868444730195751219636114412065077844059906641449346276018979024928240488651638853422116606018870816976946994227624854326915384058966304715203184616348336505502508922869485368904102044200222668042863217528989654523975500963290391915317908790884227537102664073326368053180591031644107471349556781784344008712716439540885729893053560366773647336929748528593335705982137316451752474189419088084781566540525052532601484707214022464237900937864188751695670561979234452284560910649844288696396498988100294406239450870309396922076494530042467618945818675738189642035131146404785853428692195822448668625434075994553581314338066638246601774361494932275482178573178814068443580566966941742526786764790232159642460755327012221345007331995347886032783522294388074605212956187019687275404357646998882208503603931500423030244071330882434075896594328789549900462009891134764857265182438089164086770008439282056354843362355587214784081114299115463252277771963167367348885715526303443912957148123933203130257216308568507823471460918948938841103811412163143882575716686834857681014761111261532071574554588106534987223626822674733156282319338659923170334684795234291999928455543186043933524564313761470996313590041674566207426615137417009294747811750938063631966887799126528402653544787047412407603929229467463624852729667955871570795252126223520729396669424993307277869216658357298522897480051442560101439218069066396811980804135699634955860391262340547694022560154906615521849499743038655061677159553777583405130059232800064728912340133547554555396813886867318181575324399096637893124933494339239614234094586218981023517626733560869304556731128636448219370585471624768466579512624378952873818704844442517529164952126854723460104816117671873114809098622097732519470831985679252490365072102515181431638841481540160472049625043763787863481264236436524865198201856107673697530628358508035544660874062785501629340396216080098703490107480820520286567549954764410011285026127759576750924262164321552227054905874123591785618414617118454761839817836994632386082117076851980627861569720395150959840932341854017785497591349465145131945023999503794428621750582374874315029418728860717443732226653317940048061359310531914654723674210901944680972093715512136399379777539771326312704735722248285209700660956655729957851781362832081436701682344782170719405843741738868363763021862913326953900729547073692524218543420971770636860699136353039039467088865501716582598611417649077694421185393612221877694125445569100361247898525335725781836486569472826469721161624366122573742096620632664993568752219517190823109825541901282241921335391617236158473131375796739017523675530262904888663198086163415189037692362771290973054152170636823444000171665644535890306345425955439317246732718242613866778663046604413748061601521669193902730563548876483987756926067216016667226806351977041198492242555749259191955052970845950577357892256879487705034892540047076658886583915774077179237023088993506932990303710038882410495588381228992499491288602067679672175858044042114950966873197213233682663470962112630385154890585695093938971923402328883729522088755687419106730348984937397892224523605195906808634126502605295407896802507248230336852629856395928760163981067425537173110065387166144894265009387121114047387643829322895153129952525426179442880029398088726530451781292723737749982383036985939518206693484737849482344846698334716313518361294708754053360250670045250510648708867475109823368739565192261961602732159633254617145782014933144195953961924914969393384201247017426287294689622130500957535482617030907246293396999224940639009889516469555415468119101804614729756557061965115471796144607512271372880320847678854997904587623909726888306418267171029041723163256089464102091807359099737903517227170921971267249152942211563552274652706470582699458772354586616409908090196850463458533912445506231457086099359587459900837112273073978258818778643989098627509187694201459274229016266081390464012291984756229760520500922922538251773203163362293785071728204455264630337677207810226812804277121733160486429487768563388430474609728667588010315785909895367322865391151773380749577680292074960265292409498269017137803488022892745868292186010124560208778140127809245468703931385370272917146325374953120769971328080317228726639398364240514826781923813616214253080846683272567961591039802525394469526426662835663705295424121182247242411969887694909570126896407561154075627417360356945642318012226167216566779723441752149562833977965991887473543468606390764164883084694285615164460874959309941930474214929126407083866273774890766248905545129953705151324214016870937585755887737166748811626868767363605832361137344006519190169394765841035873421977148932080700572476287750215721704194208586620402465208692497140160678677067328960556888593167438433020983846934840985194388313791977096631475239735718955195972718182477009641898290096584556880241975816846448197687008666877428639312106556072447715642788023100358425934111583794173541155220867458290696799841266469425964202944856036716814802092164070993147753709160551255769531566629854267517577250104492002716533286020893797467721393873159527836535582557805839929601833389588034601450170582066570678492441024490251799239414339903178577653628532279538924830506438131345201516781167704285870913198781476435646952129461886852338183753115030283222320801169750402754108786688993009418101473831386703729398930384968004181604573423123402027657971596382668718197668988983159899631819688673366746260618411234543973918873177353668755327320868285392793508564892712082729130262302257696824385551352815128570386326838506224410268339762082263653810732871957605601695507985083004203710182836341312245380102025191076227387302981461824229153178481510161044474757591535204475358329589025606042575058466586022147787848663803013279306466871942092259157056675789099597677683482666282733172029475351208423653565224508779212190491683858631863808362218583275876871119296188941324306981597946219222558056314044418721500577321903356855002110902916858942516653930322889752840165061218521470716757932181075099027562204803900918935330281215385770517474477414867007568298666804362065145086426466951050956653997549305885987031660811577411861627483949624766010179781689678898508503265496326488777426417618967469609875632807774351654615253072457890883514403326410780146489727202976599430540590331192848927202856461841327289910120316026566166595094012533943498259654732834680108461647591633594309037775515023112324453083548634807602353034890196545161369606903950811587101927567816564341188426047585136890751245897974711615707865518053213810622803668815329709986334680658496466348713099807525366587057857282158872127881308734383266581481416587948575851778456384934459375046802735612445298947406669409963455251915901939511934746886710640464686072442845609719304593770241617609335090019951638555669460521759507218516409036414450313448128120723510978757966426789334137087090464629560329972065920471600343592741961708401653831784239691379636206913770905689679100011862580097667300508230083177470888603730797402101247525604422218462482101915456814750780360875400019347300272068389291098224676147757135879553691631189501827952442394610225509684404125749454936404920334214844096692247561113442889945634378434175391041644618550636523621260682143541236000147722459781180202342987412683123053582685884684121035966361307706703312558324502324727027586099405992485083192241487868050663820506292022700892050857310825045833734697357933032422876526175246111824184714458014407010131542933574428940511903950512098348624711436306130307324649541131837495119027276765759820219859966735505948403274346037747987742884549885547821155248208220925332651041204152854548094017975757658420569207087177674485158189917609718381049096424878285047939249503194530569096028992721698339226433873981002894594660844064333435589870356869765015791120189285489147369664907878464246005357754405052337366547784372940957040879472440214135451588198755701276518482715011742458983318268519631023040760021320626757567358511992697359929556533589942598530799664862674301072446620036814293364573627505790471902605858566757317280142583348752502049381875340363632235341198771941977733132929109538031458437776358216963671731429675284897085132208603420606023464501913995132692280280235951611613590719692172632189449308611624600824043825105294732670407350197571530603541797315500142012243083425288416271733760882047545545866528163199377536988095810229462576270485081357285560410278374392717417177673229067667248387291405839515020052547404381185373034617238794277379218908855326886462132156938070530559203422896790146526552721305851834620484656740137192057625642407742512715011043469914805151483900181271675052408002462978081050148418090550077974981714778890662771458609446112698584166637609150102847873009433810408318137691577013366897167599661833421413927825226097966391552115957340085867747622346242085155413814121209827689592311876591270056664047317847589947142072963192347869039817890138538259058629548691499138225462466604616254533177334088511811751913496781146737029430371818560386160699002936413714338836248923356719225339088353545417026319703197702641276566214469981439276803335729150475758556789669597480124080137631158175497495775234549096438966822929422263822550720612279294917636421384032585261199936617208401583660759900560654020419956365369278172670297778100433935697333857229080292005837501641238721540245194827044691975874714974167063189265186767410712435552928592619537545317581767184802024654082821259805909565959259246337247194236717037809919511796552209682844489364954090801235554843712765231001065367208043774800140663478940492187290146861811466862337750555503860760319841199219501625188066908859988951486981274382227230151457736251490218358327760906790616014016377590692841694466175003767467849245290313495531586341346059867602609458780614734193967604226345153478238438163937468791635480828841758752812633156968511794630416670269554317850676738608780823953684692674863514083896877553061718040727380299409934888686282209642182553927127937577690406482088997929701619026782992903116749571376894428373285348903618166600915108895827807487950832185709583903144484270225488691640958717597936193440231865486895546315622983464019638869991165677673276854876985409596698404338204737884898850401411781873633603839373909793186731907766707426214309823293730219593520301693015749180760325460648257044881946267753151451013552367180697252415589422276331313131044361475887066899685222678965534979591801845795794715886932164069215079109210424339069538740987734116863260886181408170788580435883427162654656915831175298114104811238824004382966016656728011617103539904723624191828290518583443166343694970052385136365210902747487223686195263927078541945697528227510226115400023884626321823362082461070895869515946632463735034870521750574924751415011331300989738591077594441559122793158918289469837115850718463026141594984664827076836013936813064344812502120242550095028182594055584854436107285144517503087630091940272868654366139590081691949446929636248134946649887837883719602904474635606808915625968523967209353122350636548102099712062955613685967911371781175918256834904909300516471008577294740619213221642362491844708983496721542795827975144609251423024094801353217716732090579141318117819930291875207843185341456883905262622114209843418864065474413830726518607781471682222160883679708042976764865715488847166904322425708438392097520724624514598844911590109610565369845159754764569730866236555466296976656878878150874645285042715450999932384481236292308769321332694733561824078648875471074642965684565936012095943981581118570425063842284638253325118070060380080293881152891962524928800874201144406155028022475874008580055838830327657911677766965895493161218798721550170583026879253046399948520487646538029181968494929311478787186391691627269163503722222496971481854779100324380459390836815808776893394442941773105357951781984574203646053007580363233500862745248698156971585064047669565005399870617529273095873529633363161656783260197785821076320491497332908742451045492962359340094935630197085890312757729067308841907044366494611338613512239255309362223375403994327088787350050150062937260071409079253186838289848527933683640563393730183836145317403348920050782944999537100762082052483372967640343999602672353973139608593612338857810461065056966179580935472717878141705280962233670775472193798116739261998583463542074683892764691383442089799117882612145490895168479389690422334359539060193799032029605291004154894728397895992828876385373639940937395798407526511215879560975603990775216490009596471938489548966302271405267137697517022045775310476183828045886465796451554058671653690328792696851642687009692927735769186007269746177176490029785724116163572135383048869203333987622578353825724183311833154126640388991930427709347888612892649202228190270903915515831061705984333929467116575676351616041384902251607582414430603784211354234824085544515453695279430015263996387752120319688581577083718795576237597809461619336085116010539766539213716982319594805783921937143282727555213220820516019308137479847931660646327478886815251759935442683409413345070286302637045984935676151159370070590996038860038229418500608400750359862618070271730621520424133155818118803211930863140801042059105836900910586648361022946677058902933667633273299677849669632254217311509846793988755147677128949715601683640960511711013801616220752267497789594735125487366313401581232550250029729456177783443048756600154516382406993327843483648492619231932865449258840349912839457960410429159600597944818145590826072693095545037169010628624878430358992404751123305179491384251060133751974317100581600988279338156563553080070124180103320144789659368450247680794268011376068167194133202076985019779152478355387588111705011018942511462112228542389638251010547999676464935678807365521588198639051663236210535005775414188178436943684413618091433341665147734019923601306793108107300076621179296307902772252776860559726046614445060761112645813605203779223514184485536913534953329986376240219543467989606291791906431542221652200836204030565124912468180469736628678738305519349986159770726336251277337405871242220529854196351135315175827665159361518120650640024382652285692199796526469593501590660492514099901191024873178809400110538522555644787806522528720911101395229294077738041175526409215321989589774236177318287749506648206236710554089905467495096489988561869618769449525548440209411558075551039880305629931436389030409563833888193716793043857683835418360286837568018118736726690765408766168600494361481083836094431480081580763285605537208809499636946969492247417311582051657084406149677338137279457377783172048515701729444453108296762236091627450235657396689820399229830215398696413332731193531023721819107609077030325205643282074904103756480431792500250655613588602593796844650814181585987306131433072868710466279627152112003696945655708822915765688233139312676741303827587375690494842716818642806217272020551485362547921236781222610529761621723959479539450251909853218544492260150378877336428913322976484437504322239088126470498480154726195923763669827738383619229612075550348627847585704336500247012537594328269560893126982241641382592475607834346413566030313116133221324111297138960653677827142392060635120224933319964513274623357271483921130412268663976225356721828656303995766552758587868861048105072546433573842611994738525437558575176863918387110087206960328510216469537424263888427866516477603146477054808142320050163498146041654125675420059803964544016785946269059712397846477102740584609921780679545301051161129756948396781834186282714926682602574595204703516957568329186131297859513565157944786186405417532269662507040536940247711288714657974041328821013375924186100801158847107316104626947310111771989730023743412732797914037526061585255457486411309955761320090944658670040761240573596914188837962543279627732764292010228373449554333497990675777159642439327580297588505921104286649735798467647770245418399291463308340391290411565395895881072408296141623196837185371690116965761750590105249610597618807126915529565597489609296165033704158788366060663455137940965237997873141646895644362812230852136640334172014977762538941792023090166622659742676859932421165172216961804430545320954758400083475189891220365594479172397963568554799659390756367790525119774498969082001656003987862243679639709871550452685596604549188222453763397518369040894352804604994741753488373864463430827445754275812297559003611495217032118571291908868161127330366570241053892325396651518045202908429665400600187043953936389894605608826057123040197879431257034244885382797053017741162217668689495519255262735208505777991713248128389985116637988521346154216066274897556297156417030124958715648381566754862980397152685343400392924094367252723669368957236224805185135785629152022768620407362824775973610552619700417184422842753592437218457994946251378432125899197125480653499114010070663500838796320619910182521180282350280063774513532748175562612599814375813721228472782679084975219888120143776764980340774112929042748309323043633149851781049490699611566984375987765086435658988671966028822405380560739483318087807060905717934659181247155062927997302250816575782790607341260235364490982793655669645651435035405899450881699563608307458207922573111881437050426121143045582595128765183045037198183982945754657043761197345636836912192236046724747924416310949640676926010017595049262231267049237431151172282716851285863934286413662023081765976688852043025464676826974282097303104691203266864176947482771321294204291765618337362365163078995826444672516475084343982725663467069072540641224808045710486564690953960853743665373818865533093973052408566608857683926218665328370310555346052481905096085532072272579972273629477789670742130358743422149465791159498556098689849889585188442810656915081878161906819215274437128830603912930355347715916543185826805503702233335126027202908667091167060936724494942770867457303870039595737338866240928585435265396723091471849367921516777319637114560293585302893420712000008629125529170543760065375382748572569137555794111142558843928947275317392002201209981890574028841400536643954684285188463430563298224214062665730870447121185115157902787294923696788651326245946580523327886177226246773293680258216511656031422838584818120940758520502447403826199735032850001982218848795977289260976170468816169848315134517908147712397133892265388758046302966062788931863472788584097271141917424292945206461435464687209572733227751746288834545291720914191862099817871591599599030942818481873788457656420622874646677731666063650371033732234432466346820748049780176484139275200264718079538627726860851967835844405395108531604552225308249390612451824312410190720134562234170229349885034711542679102685990136705613967982158000815937693038418078253751016567351599922010410433296861679731822268108729835373236504013466519449537740820613166888744634933617700140795012784464920148315699422175371184357146398024090262093981730464601097402159705631334522200564147279411560542198036138627610807943715909208764160005171506301385282440340952907190713772006006471842855027155517842165160780404282657592456834937425313663230222821680348683720237603767832542468287641075364409606365410382318815417611569935841453086905242775875323268545997870024017046503269685306040220586636386671578461322156264285606684802155632275205839034983414503551737223239988627395041079628014281881836409679660052708120299347812684451112474998547841112705184975317541695628495816484166014500973079916996385351843043087715862415974987750894059434896586904735947971616206774915167348262344129274191480825965646106217760641966831766987861264056063202454268482271739053835078268761207729284323020452341997108155417688038153533265352145901277831590302373106902932616901057531206332986187869828634610819988690456578195361859921670453010864728079096874647035249156676305597057306438877787793404853891893216741564087222546949593145856868310585044556046769726701664665685527365128009801183156451315848269980020443962964933180850745166478687292152609891381407338384316072620708175318829304632760367119516652382330249407487197627954224542776722230585991359868604905812402424674882191719577441146539040042334577033878080297701520529617704371625241154414233086822650723336281760487661506029524858700840242674547099862793307408731448040784016849660379984433278438133664465519611489615471860369197147516284332626054374646182686617311203641646085353751722326760488689824792124298890741255306608169788620343717714817643768437920596010260202233491036613978209035179307678410022756944078126129045964454848499256139235726137217623037357736872172853819415784623530475644401104744080173138482160260211388598622685461093718698160550646800214302648104832025823410998199853919680228928714432491991884681731208550112219848208887021912826300021022358110353157228366110904554686246144882150557445945955246470391420312910302066617545036617864602603372464515680066082379063824361807206961016527799612083848232147900453813872985912646347270838940731190867337497581802605563514351342360504313199260521617270859584701698013621129348827789428403954020147641025567447342559181783828941091641919502437224856805492267159340662856993830935632531276709626038602008143346026531574222951630969182764219183939329686153121902848520325012460746627785866106018354049074088660077534838714915048379555029304024769061144818441421951991167479070424509075135886369318739776438149644218325244480488554936410824409615623788678122574418967410128880263460472380033534184724881432507564446468916799134441012566183972881741437216492100479739596482660253473010540775443293804177055203624040884248871373668879569671633850807700212264144289180418505074520101282906613407923637867680999445101795934711219101189258068106642393701638010834681872321752597553155376610514878096596027492711046940542560265379017017693494898145057788086117178785974937313243879624510655021957163622114512845957111895453742158181222441929477190368009775392270581630917185109055752733849068935338500232506337837743824858181547121885008052158773206652850743270305892961489167274227544441092685860407855785560440949843339866311059020569945676483396898637508346882159555547952453403661597408023827916002270859668637206468349863074968549827075740593377320353900481579289539425226929212132172715723190712852700627771666875226684347556810229895701898529275598495050704224174509442460975639428318782408071993459562607564500054732126155156801951740276880898500099960762282262581986478043460311801378181104511357759800120563817535817562294581309867991966654539268767834142413342792989246319442186128523546983286499384876838076903110401870870482645780214912958773262407279388235006631084411300209881300383858217872989188094082225154645291001721051124691398013322576294546837466873876666487259691235427428290396090154501016815326020652231195142293859198575952127794625282731898494979971833243227240667571693158528664635266279332794243855295292584171185368807028983346748577415067479948151673055297693054074845006343721614368207400146037311439701492399535177610313075877519345251905402279598076725776772666977581994149547200284103477444416802927888331668274878451518496518341319204768877896719296521136445360741715818275304960995330820828640466721803058532909251593039963743292756120530299951998726908252172867385187022621423061976584853719854415599583259941469882417399994609061579051267930229155857788634607959826984624818229677116308348525188864394175371199161947580159886862663013738522394643221055872491575531101896159918325360320335712069913282416025085484226587281664456720202154286707448106590479523729437555126942894305384822609641674348803145685599121044483731018613790128469449928863261873791848132696729077220479175919063569696547477015202349555221263911114756384496102705625246779526862755194841190695384149001306172477382225316742907501057419976256895332234825670127955488852569758124964028225411675709948637367506683702894567471440865987822505513218709870180246459770011577480266515279173567446653861198944062539885838607753746550485520263218402528774660737441513053340491605156282329980988710943917296139466079791745654710442953851757286866789253581371901591108470755932350832612401153022276494154088089129072348671023186901426927456401137193807533449710510550205690485815362186567344269977658929624307213721132797742978133761567554098060131191629032732023376435022670203586308316897012410821564424536543074830581176194794776936238685174806431169686441121290587008484085105154485105663881090151812797034140860470108943814402764896656965796519772650400212653643792890096487314269280400507248754885640693230498572558866470117495178376277163435268006048177117662116247580473625831040504802029826105678025527161402525140014019398008939666731174948423102043054059842761519690605051515325069310085367065529155236432270675653446790335530701604078347670901180567763685976781735646378921443473695195511668232842651355696440844036907416606837518136502411246645075525421433879728246788311755808141017157548446117114156119899228789622775135071380129369371368169852671683314769935228310900805314308990416583291180521784872270414054170385939347625838404140714379710418439450275523277748735916262103131358332572693333701891962840578350426003690561340988283919538968004897032696219160856934817774533134278953261749314050325230027092955104403523802674778538482405220230568911832802845489833705544557301411768541053408729844632866073016782574921991810887441073231771129661581741703798029026514735182796288608919009237017315191912973613480152487931123217924869826112641911613520172033607201042656861008381250980980855110528602941257087580177451039905849835688074463829499764470812431266955180605801489523912338309306733750626662728245760749256974833888518894123793294019270859481670223384414054557847703442749145343570485899906950126990005192146775619424697074688265045446372850607808831192863664179171833455833238669976224411982479340780391065296326647377146651296548306610054925771576555839611637085830590665592069592833497217287876218934659730288352757631411274067259155157125341902420753962565103246581544307569707516629196121542794906244655791855991145185481188204215456499595794198969850334091925446245450411268779234139096705216834950002721244230509563083545464290661700826491785176058771317044862704224718795409253017851004729225889840620245282971197526693012961965396972134717228370674506645086960058872060564787611332386847077127342431409778290517140605177946838542834221765675345983686133815787972239338239289436670762120153436993362902689513339081870405618038379255174533204866835279243873981285816125325535787059822387741106420320982257996902174484332074627413447314800883036286936952085097730052945632653573938075812260559073829521483697238770642517209800454214433793190701965051149736731854113869125510650674563068487787180602034090938050887545759787960322812976066084537494745590519850654798545814409132210399000187758836763064601963283003255785159037730414173643499119697728427169133903094366127416704500660008080904774621560419624445176102286157984931092501382687383578166929105363214127168637240760745783137868580228008367704464817017185227535034645838266160687540362267191531713625675403944628460802147203173794147325937359142600976213207917836532553124990484046127982434443591671094558261844978265376418232682053521102538877377069441488580709526000714533185325398737217193030552035724330989715499174660941155669815773270584723798244666218673341647838367162953930459005244096113427554374692855824369172689137428425391411976327806474989499072781126369109681623828586729671790336174990370641682106631440809300513948657339123263792915736743108641590576340285106446010972697621155472262661274530347792526614236155459228856882276384734061486374275431959112415692482536535118915789059272141996821756481763915803864975221485558588867666300468305742013757660351552463927974518094848351332259665966649289199509657628651869055355223642501555225181397721508961571974443982514710175974144297315159275974185758306237514280099284473651321903415179914990015828973079997409788630536221852973414145394636811045525087679635966662694445480721598807197272274553457756186852948166089313804637215371589898640572606520603502481657415621891516261688052994277682722548583553796718718937905865213835911018489462076861267922465542050394549749820746041824193855397961958815619748543709006398517026946351299597216364186874764410209990336397714445264947018508474323309625724980968899696217312304358842225718767658062730486381120455237484396184085569242892302710255181080028003617680320212714975912066139693951138937919436405926999330793329949249787190056690948050509035225351666278423075689715296539390479334460254736454954680070504093705411429493685101272289572172133252280263422345735627716716690926670771801723524596704952860461094218431981319792576304933541489852970243306021107983646294228933571793296278851650724164240903318401299238352667223959922128965160370477034660365340774275107624564051942197906153072078564482081083889542974483071757375979314933978177089843187220620337656581802409865624708098651344265943923669801388718844999426513740831441209493633760273366037663331830397767011361892319089372452075865854838223990895566544375031489805286414746939498441315812077695418275820077079189852200466372837342057505882729513497567583082248653855160363237106534974097367856999119287449583312136287257115769624936536824549566472240263521030559185431378091342532769824273163124753641954135590468725271392995848107807772388275232314291949362132005389802666531635789008615595304829805717749611851071386552008424489908047375217789213510637149265301072335022266864464512075420531390756326663360149113616041857673820136434597699611091488038844880218985521048665526588666838607682958860656735633542219576107238327725910851841277842665154174484173449483124877522612613146563525302869832623602435296772077004522100230968177113859095016579768509873859322762106925717038003441180103154084333397225028720564003800065851404018212948625933543779924043665650187005880836947194395653413956424452287470943529043530413943726060319869512212328840849327137006079446041397721160291384627102285672725137350844033185518081623596536368426105488097088223563797537840288350781264237558249789762528514962258924953678936346207186843478165601460270360693125635360260437485363316047104795752598838495264813137683495006051633363158299867847316351788381044621747415918548003682486230487716113469973706062053095267225209314978092174067177739714422065487131025681361136658336870221447146853648627732636574529994219967447459467457626907419763339435667819187743224075937747883366509026618250343500142647877316538219821571934809060637197608339898057995595302945394212597900488511927473487452771142423610633522841898277776497781459186350942887715385075047720228673842158669677451442823202040011974509375564861445348543088566475963584714809420788005859996358402461635819183435852208907274902506255516218409261392086545272610766259091470214832830934309342154181768928874228142836223797522770737017897938429567538927519144658974136527085943123199372090118894819598413365471796014513481802000220007576009015666489178047734738849246106170421421815751646712027823999575085002120661081303222780883641261515789662623856177544418040277169002772835033374537961724011099802498716219476507786944261857688039564612983678508362291540174340002203185079057459915999936518704912793489506069559817873903209868950427473429919243936376142984514073296779886453992025101151459580311949044796782550097609277203567827646688483286703770560421172626411594992486829835870836698525988602047478177556637161985335559231976074020579843542834258532325809602335144423853540646811769415048605228498104788640003771860778444203089297781977885700507933382431430261879636958290669035781675333664896680490530738698316549317575342878632465221967791307270173052350584970582589879654843454224338083163061849405538926169544394590060190670130075546090921254835373302795939965351585735702522953954501446082036323184726914004506836642297400254548548137521970952610349205015637699736240087535371250264405150836701793276353661364427832665400586512244761842744821980515227021251787059445334861823711986581026472853370593452584123198957192357255843275116543474144779014978929276991437558792962154360484203040137398140860626288106929362535570873083696383414829380726413134851653930988705141573176568555208405918983274811394746519361853650707512698400710010897889092369599080491193245596956257162500614377141405484553309396306859030564426684928392765269165942123515811308829066609413160549186120963203488849163358797554255679904173325775968340769893708659127541400778426868550261749570711050307806036924243546767160126706422626573434001685658320971400780065071575317792993367068233944975103607241094705395084454163214834646620752623332231948576454761130113832821594847122314545067184703135429146841097757167474844807800993870573736008729598300423630244003909906593754715596627402936820176345899543014297804036714727606891384492670490627920282477836744826561873018658137058189182640693967538867614990187593447216830202384934814549813587915906626863171965525503462021640207278621788198989584997269250658798684009125556622225706066208678932111476120526148040319956123188129765295934860250547604260396963668705746552486060136750073226748517471978168327972136152757123554963818218396406221820499798107111627582761500619690713185987900875257110528730337243821272825938939645466057339235825372373739111364329690170997860524572301410369885944558815217339084426776803589543230462982405998377467907915406861139116738215418069216960054308836922283771763666778416254221458834532888678996094196132912239394798695262971451367226722782973233629997702115913756996303072639121703666539385548869350982287642201820614197493628007906028588287706041200978949318866614229867620707982963743528456958474710669186575425930469969801617006572786762635406217662978954544772527856428781666458766897357758844794331331870547007318048371082379148523979102177238804333325981988134716725800410755793087111858149930112643553716242179605509841751267343891960214390518265328952119613745872051549499305639868453408064966202941226575054897689162696937407403889279939307364159929658829696838598031469485821435600189548734821950830600119397714825460856383086629313091308929149649944620952812560257630851411604548675095596104527146667662042097431895808636910294991451513313311429670828910425988801353113258771121489263509139132190970215132320841926428992528952992998070767802284383905151286786695648729874775078831621687703287843685473233580119204520052860852646746594296488670983371924593041641118293717115901260594931434169773902094574453748304906978708993750422647589565080969046689877934599736678324026279371906078293179861011379571280717064099815271851681678225164615507806964329510828390550480922981399808530243838806968626395304600037463332244975809385805404825777347975736874348128870928476461922246174901412926162638939047035350002213226489574348214327939941248053448926273251023754447652673143393187266028150637409589389820091587647966272443517490779759798255528561682216594562861902884964065425926961820153292508965445944326670057299826475715765145835480212912587372213885489792913995911567570778461360492653047962442140041719060898769211166638566434015973520043082505403954291504504274216874478024170762646448271870557342938967584466662605419902263880263312492563537432742020996898145511360332096052615312928811607215248900025862767278862226233156592125224453310575852958331163096934183392030659641408295846391574034132537477254623819708496640088967669665246303403612747509838780487376471557063358805093322961275301089371271406214717954242967893747877459628184367472859490356698236482715026982632637684333424728473209418268142385941698186033581415765515304351859198819081983199455404272098986629915708707024528131480606575082545643808387421358913252167878446638145816927092840928888036718607996869068712630179923944866713968801365602692023150818679576921458659501065574539686643511651750643078893060223449415911521973566673537744715233536666913282673680266033170887405770354237121934830247290708459613111887735794771123685205379392761611139605261294913053315238978591619465028747070202835481340470744170361904623003317767304208269010463600231185551217861442598818667390884191350573197938564477697379702911320080155133838704492640757687621269128164299707249907936002441546659739059816423200730433935210267347342563790661297514857082839039438533356787904080914770736740097592475497013655845884971268194088997435551987549139688694635816290843483928721349009745140741631152463307884925562541615366858121184431470797244856742607555737743707915923208879094908425316214993588601030395832269969825270230342497458463754466298984476972642753247316637299182317832360810935825515246843225249024279278141623941483255576593854754986781078711959393889523803723625680987351113069818019892519800853365927983217109641984854520454496044026202101365487218725775201175435523493587462490398190820624498831361635394770497176038054238776755858954712298767649650998208106569145191970704572760828378225295867419199936906004689185463448012617167620559597163954457661255344372160800051885695454267255233606990429768733228768761748551537516219218539036915865424739717291398765144303052934399799265960037549296063830634745110856320668718321374467268930819111240664477916304428132980900898524659356823586057790230156765926557167209376502998253020297267897773783194703175751046510889789664556026417606919961486676413458105894347200641669036740014012988317690804329787050680171924916266624930410941061950221927567572523946360482525981457901219213841157630334700803259114011049888407521359596410846413082009104638925300875530040232725027832410682649230208169338175522603167224078233616665118029697824188600275602989975438270679096324008158014983075616394576216390251290710584232529344711113971070318272479731176799147697181043623866089172414062972257945463065970674839796130540916337476079920033792778623383242310576973162958024104566859145615636936048040678630656444501687931219462556323206281751828867520138986956115439077313571083457485879901742797926455291253352607081132609556646981924157563672660814731042966501577155893603934805282812585048987751988413930516400553348019924742071127698318574963259629988138776060106697163141481165804354315879829784940029132175506012482669564136503743397913401435226030179082383976376086795775353759046107703054393710998678355507140031890418014659419444499235956427837329809175546768476991047609892223215594399517145076712852906345011390168112880911493314525852203148151558684617372971376517437969561973595127462267182998460050014101639849385224147668598990785702723380322226028852778136643614610352988108621972011403464204560482625155891410801832247056008680567260622720374337038165687731759302659553364183618465698919578702610218745495585517730158608150276974130369113647079827360348900359177425865992289188838274458631794616224722547853762843244909260226396192407297800123564661140198364060040974727657356169012874574131983247723045967048781009092188673961387255935425380657344359428699144016624898794356771786835984808702535486532542604584690129403516800646973817718202282298660602655908322450113713983253422657179229809748112789388158371490861973344697655562137229294355881005066326364559371991460412993221759334038243534514429270069963294065523040861484968734451412104595236099602744330088294297741948084865931223882662063096261643462071638421485877535249971267363686755094289851821233952226657901985338692757187816098065583682714999899760024799598836283272164644015016865916757341692816338404698465012246404053832530636224710297695083367858660317337298341535699097848498147767134457964869272227311015802943932771830258248222418664358542287595030681930758263901691878191574321346435876870170169393891514547958058646285576568252595889999548348683688096817366049647629577949367479435736578883877265879026853043814315903406401320544785794954567193681838464495987966111761220421524148371336634572624128122690703957605379362911467646514980841923812702252946748560312620774420651545083447576676415124858519137571926832403454409206166045760844054757198749540833798239839000934355030605793161784103611389444812983261151392551918930027977631819552669825998403235352886098143136226755912505665446546275699956714509600983206550931708324775611281534058082363624987388741740314880401730004653701770391665748167102689845688197421213565137330423543492060441120555207068850183226090229592213539643410272558386333560084491437075532079003724469791149559085760706913957062142308651592283460478299046467258030250564454302014476289180543711663956999350794164800128222773087915085672509286771421790918663312571742256497587951139478008206454454909584346724786567185196250207864519851286903221532250503696357915913603899260389844429805168709090210141759590726159066908199575015003189398248535346020800243059324773464603997615088815253201369711079030956383700423399572836912682547534453175011551272482581452840325415353206852778561594861232380949993255823572181952637206007996243056505569244129842157294849652229528435576021133210088438700685381914593289920147834075661100400798969487101781064046573296042567031033168903095486810365279961431897144658592954681510746148574184649354795176234806745537363781888090268004118905889665739951338341223715269252980522190298021855718025664374102956680089935086193088103563517863517290527166442068981492899629922916695391162741055658970224861065426141062197083184414771112460841165260676253648048554347425850949365511729155464714540224415698592874895874265322533571518524349489995762644075574339704895672733452162579986616815257822645681706272940860396284702896621135610518045774263787121793353748239934607506432338639750966171075671848539230913794835123067241066027829736090142560620599259777969108188270109015055576516483313411335717343408429229032431801218035218175250014514788147871198444710407838975317510187255048551415150837336192430623971294046804618628337189110631734809879915330487983305211975395625003072382459331844551518330364288368625307653997542961373315456318642956510054753868217604757087080130892899040610625654167557349556430233576117314577483936848164287100364044082429792832450828078322531690986777762083037758527870204614921314204236898962148963911151489537625212853385665211297324739360120822771433952867308085891573612788801776537604042368744964959483241457929263031272398932427650940237957770006478869008326227614343128586073911174938983334257390993589355864099836697975288214206614479031888912618873598668440382986431699293973617795771344063560582470031861934201763208666748324294718851298761716374994076147740582953379407654433742158773310577979345364211608127297196693601507595737033913981197452655385453965403651853978273906295570413682843318792684917885558881830128991074569971241927795817177857314909454324649741411826273808847548757088847462542958428891975481806707928231737231914278962781035063036872375692791003281030185063522458792456258224592896587710048888435878162317733284431662514409456134761793155878302937402335236682215635920532007357984239406606057980804871866694893143808838656195197844475888406789335899838130052274491619541275779461675078438234409269705279214459255902609457918862234626951153442319126691042809147637514185103147596691331027761874445864742591863446341543834773537647813090130406547314050163042000696145853207395319955788743736197663899475199668961805261358912612203561642682479174409566124976113897834313555358599725382051010627872466403381332266846782002160161846710145765740320399316445591917447094609205855088497412039285351213339159757610721300200208427346306449445970256279383939415351831393572488744258818233591117035861300331617818309952299184561123506225858963117004019052724864921039744945886005582854405561315997018277969239916501856044560675503589008734475657467160339081350610020935413925597450371445743007177485037203070838887969507879456482321604533725698879242803547823010861340750187849785339062744102765323624322255000724463619861346408891830403096205772024043177736367391869252779555846427229925948881372386869838559645350146309025847903861496915033024444125725907409154306923609672881517901346951072343343866252894216531562765995237808455172869949106010458056612036688715093553258271058379110629872837181725695013670236544710150681682046974163866889486496971180596019627675423066202465222814504693404272444113374607383752470932469764752175722041536306320913341430141435360750489628422192205481371881546344339856166472444395919301410403982900388968673166684676945676153223930888746126337513168353213408736726630571287618674859583977881973395548609581671901939967849905813237550265806091824590527637110726746196648918630281450035914119894252001700012135489804530458209175243858758988100735534654451121123447639785850215724069453516998448638539094927568289742529240122440579555524565066014678431916172729724838183466299016119593546303629151613791203226127153059676983364903855755167554960979188248299499886907441378581739168847463440628439324995319576589506355455870842384521882285181751087332891972341644349744513653118903446942638926932855043090015833915238596797565997431841573974367573136890537636331994653246946476606861064111031320378800619509050438994474604487237962005726819029405884761834576178479289964685234985386960211465971906653153617086391019742595583040911636995964338526764070215377878949377451593005933361175786679282869596299734194225612023289569359323476951259849615661759910169812725912375543751602204338015907694725331609939401818054011185191142539004313477994223010740452593445421835543512838629377550248180038549765389533988571108528556359397713807619831876867984134405588243573263379304149470557177181501494853160554288377268263263396300349472371402192643872002341155623527854089203532164878833084199039592606949651680906373779664916124878928363121365027934114982241067998992322866607613129448770223599674527064105565838760859573820970530532433840707395019797822170149900371362539817548110668784417661599239297864823153471907218760032887315148199535069258968780356948442273277299132585677446658356034954558948599720950053907975531922834506507368826479069679007166793976955282122294272356829688155905649879555179938334485584907748252120058017474304415186060422691835658842654271231392764034130024295924905870740084277280164935161636084282637116830621947029284018790639699543644703959760491174074716130793080597699670540175838142082693724646270971304540757893516601125326047703621447621494294899986723632524802757630219773656729537916758599985256558250384310456646788307908143241572959320758273659070260605877373139574592913396594579896555455390304614249045877460961842621215489829610629390346659278665134782468076649680719079433259028206382450781508637090565353481923099129981404259633690381868914390362893842141236288057950855665180226156191754163797492776488084843166199187820358347280606236790125458050263870760750068687135405949652610676358359844275764388003718923577808566461432146939918929826402261808781694153964664332757886839463893388057618948517711482779583783973525551073390142790382159063093697478315177944335953797281376078072813432645732670278050622547981428713130606980351822741930780236452617687938867094424791734591131587125599704363984217582384903351039483469253314071439525291903015431462379940767278458853832445986711224823848178460503661205125502750910329481967542754057400686100425042217064705236334970695745092629494662222660772239175181396791321385912766289852824950295709727243719579439840309358565187619139994885024368556349471589694961100041378232671856028356522147795391109181006435079526085226097511533860265256788271027162650566597990715476434313825410371394951552820662102123891732539436147635051020298073097967637686741405179214356240454406503802689743505957325205384656540049996519061281713016030549685297665912286640343616111190956993022818720713407602563023323219515584420020337948336430521043300708515294370306331139639641357283441469365700852398525942741376541989111597970834576444100814046588387682648212933788712445745024162918884687361555712789583355037155617264660478935172083504006641561212483030704648089339225800753674346530699590336325960597307081608968216623404442317938470528396783657036271146484200266068278355721071647457891962371478621130820052472846774678718260125646122677204691121560522310885857265891470456814298389362404289892707545647594147932807650880524358800833964735488402766647409342919081917693005188203330504504849196666329150120817774993859065520415163709692001245918005385781324750929782321781681229106659870691365315013198801408853831065133012770316089032844086746860408170936268755319742614554613684154648472683835948467410876686092246921494791817800436279262251155027010111474732609682521638976488365874494346419252543588551062772183378018178940724726957376548143364529582997031181469804721113739036683917414831779822222365281112554982955727293262018000060537909739441145195458275030686224006188556221875727794095659144708269384473766748263263346181907718426646509348998568494820476062745026201748835327842732897702973910333844610226475007870139639167312664637768496774423174597201653238204335422129600366525592964134237353032912872476326429121694795154959652446317294617379128333915031022587280266331774039846547230540110356775904513167589206606522176439225717827956698925899560902342661336211395987296086989287085159109863904085888669498562088214437122364658866163865234498291196787919361814788713923087353855193114898855244305853562115547993389247831058539992721345478361792312422405597760090989700885591108615134483850279737462507783012333321501933594168527152784913579573891857926557491865404781632864549017053531016330799974099270103818130975091351599035846499241386292535850612270168812089535680238292037084441193823720364372097641994976798934455108802409721161525330389897730345373021192399359710741777101729660883743751808492796557747565433013502192360488261463994552573519775492864818198752864502312309024677256344905670060647606637513564498569953998867447644010300606460595104130183288498171651880420356499935672718493627761972582510902265189901239253782189959403072797290352799185933156810736331726098079558080451370157998214369024202560057882720356797313736229305548309759797543429717090629792172463564190085961387341294136564815126922613850238915472539041766610820163248300697947454057309171667780226498745695451749671976104444844804896506828067458626758674610158640068260315164681256999015485776189831339256141334466513268701698652482733398400851637415334521989417212531036714439513031471283463546582315747511864372262471995149509641355546662117891697487277438589242988844262722180868476247700954910337816158292373908861916988876582917934949410044284175103162619017255336424818376777350696833420317217970008264277074399158696922818293244847755366849241443101633563777493355733895144463424463943089985487495645075354795020831856832942885528575224723669848368387679361611855127087433351604460994309514695361882972687081354093544168692927485555132844116893535742685401567897661799902362387008043048289446097255495307211880438753202583379657647155773413847407927091946159169276117298735239080558250291191235624128930494909150288730880763597298889405625525051486636796444317007685634606881729037164279507410236485716719438029536072844602505969508315900987448786547116297607688043352751679758165797992662053794153287974842684798776746341156342406686509873686391198784485275213983588478902166433808352747622178371619608143961296183697606804152321139123616845401375859140838604235977550266960814166662096773653484674892884679201643143482654862829891884634535418105569968757664794818281908275228844420724828444713392229999664493462382564845987181292820344314270959046728607756369453165449875267547306620666017158549975560526965129833036021001760910281250437578098906953873782884432176735253030931944327502474759209530317531280048981548306131454939759163201556176259181469199107473779000232009425723754090657716791302720880818339084019619585014945593908945407954456601969027863395308315328381717346324375900858567805030243703168239499349814201378317439489302243340095012059320434346070008242501105787463740856355148376337140654239154663612385315785104335809037123417034811828025687621431844838995539485108834340593729647901185008473483969771515266373230757935593825368400358863980932182831577658598984399474350208269890235190447976066557093649657401069372325253756028314719304949778835416012807763093793824819809913597470587705043552627740787963953273576960917793256054323976285349912952949759024132710936159292801951013231707129564779487124197854170611766538035891182548974006842073613011996825632276937417188509304472287454733335475348635121664468970367220503953396194019251714440492958722929780646325806825959864421293431292348272371785711474134983927305004435614250964786839123893000257044215388020702772799940803564911296877138486295417468407126084200360454699307039511421947511884433140195356455642459321900904082749897738235210766539231450117190774942590333694758809832721477009966992487128962071790311543608331077429329955094860119066276760277943529949347598389432013968978334262104109563956496062338936586014067026102812776906366904841694321211563772068669069493541872822915819522980105248554410452448444982054486857756803465117522024336041918727394657598912619349581985739916965765190233835211400967905075676769199695320919570527329357146025472793951633897101180227132313313503804720466257511813132837029249367599488409485164015497640794860471090539458880828182092060465420061052364048872775456141085320445057970326340444138591998366223869988839331219730543817008640075852516612877313985785217030163741172109256383020551882928170179239277150851121001391703258110327276722448142565281179957455234375845938118715502507398510702478545470368087979330277035712526063311976298156301259264484162274547379595048052704506256803327680422307668015139362896069791032782940619089429012218307454457905649076834729372460313603607715286799528647756448375075184553299740150367935606233556306539153786569912468484869869913025249442708117372112627205983387251358372611243355586443333321988361706264103906541400923310162177062666631127041113297409125490337959940286409406278602563474050361179610690684273150511138510444510097427174470228784697821868980430728479111080527939012477403367673406233662440785729325882309298193215659386714246344965129234666891711085418097802265682499850090280132326577103592404036214682633179819088042919867867079497021039388233042305104744898505841722508365000419600397881448235326961586590447549678281483118325989807146590437498733280513023545694052567194534215379372683510327448418708353105282144064491464728906262427958549287887517024147973111062635312086600188537081166065507174813534514536743040011788191382074117833481651285088983251934163015792313464498122275134044523694307051268066064451430513559341043356447447750456698959343804507462477063260369287355215718690476854018783439720943659940143758645514187049703478732569762287189996687510975338797760571541869940518276832176674751766960687883394722518759626938632167796311656224340577670853021567532366171145063690080120955804797549366469125828019778654994986315847120379576642535548510616579802418146003904114950110927636797992718114262737306843603891534230604659971754756671095629739973832648921526210405841582197598352574362665185650320880903732588323752012004084978786375857504769473119387708583687495615154518417596587005548683408953689695420706571849794150253229485469870127350909335016800576518002311948887450188194831755120541311575410044956177668272596548527869573770921606989422655972004218394389793711478285707930204649585549846481994932062079324045260448890096430005082339233413294868452400577149482012647692498170653466977163134650312214874611564330015113292046098738444500874268834910832504578273036277932330738036206194756411349423896834621799057981907299876569094677879687657786411538664042399891105246363903513169713480929721126476714055681193292552840052971662557983131186568601542769240028096963780783630180807440831642517260566777208094789044505024247543922029560599308471495324964280019723132110831136886930541656985091314546324937215686996696440426576485587559555579350724957867051547061785643045806463140453330136678456999274104105630638781487026199314840974224708519970459326921130679341675778853096867496334599695682907445833672547562787218950794751735299751511847426760538317211366555379766612774624397894198800455995075688226421656723024744892266166391540614108823202293762310707112523711130549856501630500317857093239740007473585639532098897417053908501628093827501816705834361298756778310295278151980090395357412971685793293669419959845550356278200795006644337479223579437301642824550103336413925069181107697870852343530183350761923335592835997236732212347939384561316153178893562853513209125651185409042846364483644662827485992977037425807609271150864383130872473279502583292318781667279883957064344546800774380874365332523321009631383691304156180463971899696117349262017745705759211078404721513141927092867499155880053005036283649822138180935646175197977224862648971755427225927433029427274644857187738650361984349668673261689080268068775045447257387125840790766470786479423892539633776419636841579521142093961355885997978144492734211784083472077966600211962146617292723915849672810735713184194092193898812669661194531869621842146397653471437296418609035168480410572376361565460579491849854592805639917901029701498762437959132288441098178289082107338567866768486706211081365623902451063625911862144731129483668764059521129712907131702581144681820345742474523060778885699969139648923958175113952478503828949409883960528111458200625538298778310135590476157315573550119260865423784270543536191790886056168770772253350075561324156679248097726524745726518583466832506799218479217186195246744051659981696425887578003766198583892523681209851700734293172374330608166271021932423161563181409076080676468387195436492027820747896147037336003824418985460407608442387432331918230358508375895864192908186608321805115717406834699373655530813662196806958831120321578825741037961937903244228728352214702499561753930934607203211647704745380888549043683766321126235092158692783262018501975625963907325536368536234702569525451916686926107438556235614026761576613928765651348503754289392203695370107858586354773131066727978031618157842164332466645874279493860236477266446206749979868364737050123262598947242349799576896914185187827881883282256932416483860500793972914471347657474602925460908686083839864347999820952305329687476184562134226005896652147548716419416642805556216011084446780548477156499557517007199128666750300181928564553239871347620267352827893230908498931014536050232317675033073541931377979439307813752781436132571977072351426758577221428184279926944302272614544181859435521775848374210939904889906066281417363763073747359459929107724109908499357013153843644930057383634543205733653952715152364149506178722716340121821560824303785836340309347970800219915132253022863755546563397760359087484152568833696448411796727149386723369600742788251219894012018764757261353485897874586034750245097652542583258244978373713466419102935727534190854601727113649035293245710812971621039097315261335677917053833804223191843525223244489561057836881635837331094555645692392883788983562684133812395707356192357100855435380358745674931608720494412578560208133702610266827759185238418253143342807824534261012799694931759777146556426651969613031388947285429999677710129335828146831046519506161926362970566457685944356976781043450846066378458409211487771383774024633221520669317991011272839494605756215051953064051175425495257568827731760934789234136617915961077116373151694013483821366552406413928520356717423846344125519909163581551958880763800547593235710931654221219012867682585450331497911154472191447887504947530091618495798525808096100293320132720826990382973281591977917802437453410863427991099782958516247147118567310936899127540988342297781271039160727088918000731800798701732396664089921799041154626157037313719052931488966103386734974003687613679049688922024184865060270581995426741903330528561014110970327593230398598945458734592413695204816175871766931351995290926333061713706688395224585764599651419378688680405063601132355407690209713647577632910432496884940260631623138119868951124014205870229673213479385424561992131967087607561619206163081675479783397560981540223742517950402827730533668296507457226598810459628644185388635491934898483445911480936457161658698914929643619666960009281450636250989236647044566750839893607086773997509669268649827797423356860235953089160451754808842229661326125629348236307514014055366381650800419014129081104385429311746998389915623947313626784605914764791861023979283477816216574510190167655749741891190144332268991474220854084563614002168226812656126981437098596123181978994449929039195902022772708330938937447842446651771021871155516081023539035559413266951779251329545520134509907400471864212121711312042717052012245377531502194879384835126196108450916891105299589725753144359199900005139158164348307832342560954443722136922555168311796994459793264976663428695796436361261245052654745676882808983230408154193185166856899973044919341850942182539800370916834520248318554242521842442500013164544348153863860983611403431521474783025166249823413506889091043936221070355749669896172147553912851406233661953214592184837491464646715132723795010008406171692525182753345536498539194377690756418830353027647341997306133885129482037406709954784095024939036843726402259883210684132928862671433581108464672019395777479634891576516373579120762882375931824257529211985470116834409479106308889266989898878684660973935021727802428028294149557253390834917419544463169413887408150535397023490028661595655423564525156838268220000904428183561090606783279133219274010500418116459903168080396752917599162566018026692736478771087857895154054088455826550881079370984353627267978148582647313411490426804467230224258885047812831493310679228823057291967255527411063828447380627592688010589284087900100173281298570094588212881766559396358421120873970897388182288458632924241896376904205613440824895934504095689811947113248340476795096142428240001276030945550289310139004073624787761236587132738594950720853735060381156266672789250002821487832456411158659985150421912575741386158567632667953327844622384449022463593783586280395237522353145232271196723937650615386436311067864249010719441418342680460302214217524930954555026804284095608105628495212713587313194469913950121266171416768358680286443631977866280521871969313099967569137437454004586326576073251342835494641113611253626536916057821035075008287161792478643847103454133357329233103032211553564003458802754554712148417176792274175129831935599507931096516537897221249948929110245108566078073593011686438777320226478437799086567368273051442242534021468475326042931332769326491719721675911402848133392897218988516789701444066800828485936860540439103416936614022562690600488377308334750882989321407467659839801023315232436603210789423385755191947059708101477673949644504474979723900603966705671603748557613890829222132211905880942306056588321202626478950260759929597886099527533926975943479188628213693942417777143806455740352772018760853058509180236735446629174588711785857422600894564127507284851806166815422389281830891597458214091073253918913328857898832785195479132623611873456127350154757034319103360933837793161971485085005607625869014645012316515998693155678585438332899953454156343103853648901404331593878975354244429790724438099377372867357301423100999209511659848796837773747554189860464929100474035706483160432811843203713561938989647863831526265494992743773945539437351202722940634561181729101675032893845891197890308842042623299084935757198773083534334636700822897323400211216175447399610587632021964526780890052229502667048749161918304404532572594654836386040644228333113052355865080967746218164212144245057309652933031220293755582756392657015577183067405902704727021279664991968171004883351499419960516389705168230924350041765156935580648402821415524117128936549069711475035162742334353914780091522766694564787115620767936998143358785450725155893912382664117617281974978530504911842588499602069978867653167173955888931504997251088438475903994437040662240033703043571054338111096078075649691977382483911243942943534796824956866418359317146682014363012655143311671918061825953863306976641214075900545231767124423239838873941685764740753137947795681853028328355834732028104342816257412364231417043346054825666925722559848089593918039535727633860591625992259452923083373170513922675510949834264558397559197168994638728991168310472048106951912129641067515188170259468914126158463588197937820742460313101731371880275500111274507606935570023908487537791599882961481385624019115929693279746846287522435077478945468821663648078289059344976381256764510194997389590924638828118282933888123963216446147343747125532041020371553199001093337938064775393769147835318077053422052283707708794203417149981796430031905230363279236768517954553291813735957914349832431649415130743035103748324803401127259259667848119360353068194241413191035212933947379867204137041536988669348336743122249639173075053400929221851267309026142019625259781317403290604379946929680036584841053845095587346063187063768463227250288700505839265458355893565288173450471983475707781593382561886350215694045601942186667975869439141759075284749674765846673534348040503398944168909656466195370212873394578688032716230797367511189436885951979131191411300238057973878318919373542800657629821716989903006040912216134980464931534137286680852746230436710986069538848035795276332093750480528225784950913263680544074904057014532687080527164903934965874411106940524697346721994595945561819604843563192270726184146177773413015736114381853479786094496094247888840708229539381760127831263113585236615858207223340440921099101393472851773783222076757343290280927962731431399748989989068580603557617409257224521686750251173104945247037294625714218157781543880384335283310984368890833828737564966229003857276751832009951703732850597591129926790046468828275673974339640436284654866527306290248534737952912114036551643706624197601652332303416551559881009343277935883372145123284779697468417852449473002429672726706319944451496648883816558894555659293320414084142954729335591243704752144539609824375932355782660908802583289922589983551751357040063615394449013319097348451898833281871351944918796587004156748994257797185342598396299647530602928784129630397823329190967228092200278125623164220015984715936219241900830176574968030927932468211844913357572599088211484688193833574810003538146382237208262253906760300265689075965123482287428467807206271766302967234507578963661135780391652307363894154263335005397027639888725517081186376041014613221682279928227032638023158036187963968379725746924923387774231617902345651806932708743609304311105012053625626672681078328936315495803863827962174065352971249512251635210707660326314741210192921369669780970001384846568359339948185947216273162568357329474544742477706484592661051134293152098392814205841160599948378343323593327803040502124534672984027643927840659319809501744385813401227894319872788225815571809778992674746095325454467192688642359664198695503914305296673104780776901449012297141951299874124855484909074631175990603760841589052215696114830011853980918516765262790550625710275194754726510312914657238668355798846235949962491081244775596502870607423635686576382873300366188824367204299288679810559964504830643982169027442554710657212504577838556572744467732378741354541838824287800983890917578893325122753504894399359194022302298737009663389051963118138694174836594014419681707160261197910507898275047406528516716591362393040348564377724424979216125430364718820358960746720315967123894344704035493100229413972170137978925746015177970433956129464898076225126442115832228097715033297897830344436516613393326021883107440225912547494026606275334735243711300745990378499573125331292632176297401022733753989399962398104546683762398393627329426507369593611726456123268441096762377585772582130217176586386167189900596148577507581128293178433376567246411312803464698412958752368809353388883656660588686187074892936456712406850398709998182012363908369411477743531659693532849521390562394931871275007017006664472049933236348692660538336313740774844184669536865463515723891444909853652905138189285456601292103638488827507879522920745191905562724123751368926554347927907544089888382662324065618194342906097216322969488585559739365544211210832899638157208408470349465832649904365247735017826826862470406457538682083965726780509987826821654232075088186264331541111981426983134192439625077909713065213031952092678721059511791578973917976264107277688268756356307885323363673979255197769711696879828849358634043570917544605126904178483217151449387362211638271898998797671149718729408938117245141055319223087399613824068978745119413736853845813577561614942308257412080098419343162248510552522640469549019946398696437182132221357423880370590758449594750881343526913969403605859191015243039959024394579479155553388378063399357157543274207813177589636454936002228917391722021272559103522400531244083500634988768403445828453572831511990663606310805625975440177314963569690971460707429643160020168933231076114156423355191730120808881739976309137784220500275912819505637183580741939344299462811686332904259511379910823653015955968447689387086527637678236562250259175470354834730935235803427963550272905584226248517633450559603321044597759716178566382448141426856371933900239829694149124610259841656114846341453379695854591318404995179737034592993906990236946647871413938790709104779355200405169981210416988405999941577817315988840365284229555839658982832378688458076461603068497080692272570560713732327525281262339587662533466173236169140281019269503380376829224835914487105067471893135618952186816997706536170234457589003874405702623686114039326985880535366353302322481375549629336363645477578500575620358791717565176234559182906581812343778938030939897911077257444230367616682607654412106079622901065247354131904237165287483159517028937175038250289423812703071575727492961343455782522148511808989560167988590930334582190461050990560515423238716847765431888561439136496150996075148242788232724306682447154935843155482596786758552949074948000636761546075397085625659822546602801701250812324004172995010760777899547053460564837441084101184460740357340253030871383139796824613779724524205223853013753008325379229347788953643459705091750242789398125370462170121190985581827884209108373964607836895881776600745581578226037931187057451399735937262127176129676736596403317074246269649244171821833501853307473676906512486537470731878261662172343027459187605016104832493077005266731298109181648254336214829712663645067032346091687591175755640024010307336904495735862969184229851741494578306126452132893920588571083573669859185408680055965232739799920235735205373441657875425795135439986740482377863440101686069381626078962912145360833999084200798876630406256445555625792508105372561166738846026949620112481090407285952049852463994945809450807938388467439260001915890540978279257552264790673562701890418954995285877976840162063620485537913524901647986208463356236190529919362782634395664905284163908003904005908585005818202656636609133033498719926713715873157482170924149546263654255274779825435560308246965422372485194957194872116170589413725419716029593265240337169646993982621002676955323728725803691852087873958252568605813598097161693271124639324899294306747643894546542321343869989285881450874404913202191528185365330382835846897845115759849808538890050309912079946450200444567877690559889606731440274414614555711223816075963471364738056533280334400704206949519013845224970906125654764083677268144752834866575376359755290939681180206603553171109190425391183666575740641140108284509512494402425685373419415436759094387410281899757526542792834762011268266251771731284822644088387422588315416759929899563555411954794153201113860298555527938717280647316073063497675706706032137807171972634880013709585639849031873513643134966177491267856585822759663857577951942108736362594621909427123080560206929707026365761692095072700794676805895575713024064749764095122528578611476255254648625398974536408550647807641527033062215001531365168206084183958252561877950370218623727503501242816798456560620040734491170564146747399145915391598606104590105819719738220274007917609556517664501023298359374174883055645291508595612618503470727035211712468552011880236423421962561744960409566071105174185930439394205281369463800661095942536449758093410671776014795418192417984962371277250923603474792803188243198463193798816679160743254366860531145854371862635814112134511031113067001270227215570527023675267528839526951883821798629458178192919456530773104458285973771705206340779651360130111505797282565028905277125348719187591426148116481416711882375907729949025686290835329642454012813709032137513597438209750331285131541063316348269700767635071346633302499899412165785846428735614651771887953323296538190047365561818579838411460344880415098436890931853330041910015707685172175128405808839146736702272562794828857725410053220677711585209004343238239102241602234726030306211879833972778106700810787739025184380439408380079808872873685454195982881130336586848566969814199768091535079886890869166831368109342641660259842590956768535258124994756320741729330666544166572092282666110021604595653566930906528326715825511400750544526864433610591858526200867704298779544531527157074105975570562436486984733833680517179831791642800031439008794424910594531977904208710026205248287999832471197676624102069827621599834543013498462684978526296411938872038932775980781231632831787552854055300971220488025764949085558726096391108550054408995633671617544490282891353685750248229085122891240352716764685266670393852273621786895997758937703141263200059812530588788345576978163719276161477229088471679379962745436518076561601658367693489257203986776792355378127935134844530579232329377167603978147698854258583772404535788340022197069989211840126689049052379135034541782668006459164579341246818258181492846353452633220019445062474820358592886876448420065679594844584771966240485206440819554882396979995883680395813400921748070943908116178742558080238784969012011304327837543824985785204799665529334160552725776197780266930503984546484193516297542324732939532380319479067274169592474121973099001352387568608149883936302128801658303253022581708520599320304541754141550183908327278306691386403718455403324374643717521527575018932408887629993442011231453697572270727705418715619316720871717254047601058325937513466607807566369384271090035304081163537414309157456678709763933724355332730325762202446113245959763285723595487080084829043642674409361153885757346826447389389180451042452547614327315955513962299381893772271057927104688407403554713903409258101893538285999820107428950359061517219784555891614918376054214450889442381111764453580277840151327231878799507660277918058995613452382903397811630583238099343350186728336825801170511479255527468130038046744774005984342619892815125897769454808000128372420839093110995594394241932404017202860934603422712430457228712794502445866865830915156038460652752020546872799408731994499005439167612585016527491919638614342051447808770990462358432131082701114963816560411153125251851322105273901895590183098588745034451622303777761029448717655427091976889230727987337349488094521178158902889665487579495229491915222229625939521519590795262653859467026091926120330004792132335455716465089372373687290816488475456333458287584587781859862843348106642175571877922450484310373236626631571910110656743254673456829138047223451865973690848577204137583700426282418363972156203884030436495155400373675052941077823473491523283466939343001128155057008137683945187615713384357248486997178198366192356658091776576296309870753661795542185882085354419000672851444902916689744727170070931389041501205333525840227076336234852048830228078605792517275005930327476147062273020693885298156273015420655550046637442027209454730698469793127555642620511576046956900733053013619814003333765185886775570651665002186543918578672285906792483714902135530039810770814011309403840564520499548015971400428987213983156529491111669655268927649382241887201059957707441825378042196603371702338141070289694879433971409020688019682326161409002132636969640713559804198102531459336647910891033635616627281026575238457074842681424399336431578096536272773860888092786225954514512932758905438024105734107068104159154156888209807195420605687521899710075561000705528398404604186396213201516611296757543627060257655582699209780808139549239016851615333446613355490964572923260058967713168416041407348269869098414399334201697467952701569212617647978220661184382030941064609255132027341061775997628984257812190311770859037849312527558891959268096373212164807857121266370158118986596543335042199168949851711923357907740874240374987071976477797792556520074193610039233626084438450237074057278160587644285510581039159068095660068978298425475401221110317469715016837794837561710036452577629936323602285176025439114034819849177001808368803933319407175439592438299873438823736956981866457796335859461163067085058565067520316499729278374667884046914148485028703442261728545228397870844385187624650539714776779057921452318637168271453107962201639903774926683169704928474533642159803243918433352068054597060467266722957743288888156890183748206857313311105799948794928572239500705291876688602037393906896263581563649441168817798277906798690779219599576302401150864349588333078978664635791321031490157336299261510408965755685398913272832294332986767150769835030990771343839742168969728117647877708332622643421632176914800859085519905222582336529228501009603136811165342642994988994822877123907134327724666412476301870644936105865988887821734748127307466055517571736192048322913293205793284705331911277539244090924143352852996305751534577125499454660098373414736231618129730618933789511371054877669061822922270621863069093643973484430627624069873632713818609855457799089622837471261349496277510095494150754502138103967737178034263843410199558194126811002343434267013545340401362326136653053331802408429992443557898893031194088896126792756911830922808833394003615343601039688771437353344988348582561325564532111012149437094512613161679820702485143188301289043057379816078492077159185392888963678355681438489883914500812839802674902600711910208118559477984645028587189237862632001493143972690000780429597780189970976590917729099753409753431486863212895407634099966834788907490884787845474207710778235919187172898761110807911479019752940001506158587185242273002616271438726260324756828005867058401363229743114325279120491454827738676867304830988612003820373591229064077592516563938352715156246278310676042750487141470073555625524538962042807098204027632678864197311168330969216989096613949597705569260727417124956815667495536491879701316452843907449444914377716797355741847029973479484230210718017031799600371519751021654499206595717502208937332238030738474254557487265758123950887201812086001065467395627794906700984178705433628974357710614189057293849054572813743693199322433165972745480063180512858598296360559475570677515292011739329013368645438412409965492133850683235281366058512882045341398966826000947389095526684447435528568200794115973031666368080202709587899749008529870110098023552711207326162275141360853064551326614323324315154939044479240864372765997097323850077252430718625237966883887899405839108155851167024050210550759956480139285826146329512172560429878941601043440998535250544367172219604676809122076215328022141532771032858953205466186174022797833885799092864461085278962084177647222120044000198922794579542297142147813785696341234323374045184871051281755179265786169545448622088699664913938456101218245182083633151623049732252797473548093326763390913258172273325169619025002577592722790856586513854578190891799443585530070287359255087557363611947064956455654447225921187064054421527632046356156355816005981155103126624111216027211895366656753863355470258768138356050770519680985656361328538676814963607499025911149762133130007408943053023856683501227177193894856756098531819184482581678100371851140304733826544547839311455788873145406191491127492404919328682204613089887538177042615079629133728563089621967547531855500802513466178841736819726022408191976083091894263605467908230896672456085886679603767115865015857557731465886043377173835806790630634024077150097786398651822315736471520519089198868927941653875029236297420015933440831516533911784337688794804780060799800557870832390031545472794373169368036200090541686902644015422445320685641531454272120383601923208467243374998220119662577629483077406947516694233537264072281657735367201191062027958936663366183550387404856233267979639987101768469439607273206763502823578266558473605366768271885891019187047752002765033061270140241708909621937760419849322179421007337098486410464977994111585197672803274553582026049920940702680743067718078019993501638281118696152361375560318296467191291773718103052683171202869068008160938061899596961368935742405472667977307000445116677802262303318378777872321129167385112174901413566576588984438661519090999142768529254786375511584947241164609256771803790495641974633398359173521860241658692249628565983802355236010296693280775107668739901582192410686355926876075104910708854040188699509210921551308711394151041070421779272366044803365372164573672794881296023797234587506165076266583179506769934444151068023193322126429766736558615310243709842943240747507891676826447935518352585449774452397775125203269199406638016237416132118031878467926944513515923571153423774932545966275742778972306670947069667186342834079666654245249472871510686896745864170251008344236240571728598994820620588475562785703630201900326574233858673542170687959292381653165499434517817826443517723794412217368165021559751271617833961344053525167453452859257928434591086398638858218688559973638659243080522885890115142919011305665127637446735385860794679085141589581145978676520197429380137198311730450402743348354913202600731124812236782387186603733014982080677930187967252594199508757684386478584925459132529567206568898301673211473288868956795741122308237238739503693902868516040478580681079698327121406879589293025671271323603361904809318300794104946116420004519173384251153113297161830950571906698774352140481610641721295993083918970920856851261274553560245673500455875146393975164830125197360708628505554104118600150929133654721224919890148029809958680627483440993555621812787687906598248956098000933653504055294037503336410889645872845589737207677157486916051057212442690015116507593401995932438655778252741423794759097377968404978483638372392261247952208381118239844780908090084397729236337302286567378822097877353104308039972988650864819464926268495952718439988717016635457933934110166301563972846330145044809732143692816000537269724861688730000930784921812065565328599324335149965257158460465755050033008424653455910378809448083477906293727493747653665917194243230158201852364162668954931377529320799807003339790139801010542227182096886035984112496186320341898243939265943331483607620793755276118377565575676293571256411765382711441973615691739987969991650815579791137285497509952697228787994253751295589021445184769225898828019612866573992110112700104726921547578708377917960272781266450065609344082129790722308428092523254496456671870082431965458953654456884977150724023483721823870025398041001462779621350877345829223178987319334723064093182571911665760308701702832286336463803188664552857867134704432948030711026296158792920693598344017575392706808564296216192893253075254567049011294595546411883948373659896756182082477755710376429784008166046581041197410466073145457527378206334756827974916390088192452495788915801875347827081926881798346426367547812110377502018191803181213004144025026314243827555907577598467662353853943078164284193995551974654768572801062006883761424781625977942808211084594425003989942451528495348336742596869796963725372138309136871101819872239781074179840990505549979379952627970906232642285713167347222507270527401701731845071279489139696527914758668129627986670697363632292718349652197752799686331044151461109681882691821988157814043278708078833411119179224291667323865851269426036575644660368607690274648847441149446569962339599523728211875532572431329150531949811318756618171779479220083103196187033347264831229524110958167165102489440519893369829529845269266062236259128783158243867989056225222409263030606052098992488718582348210555784265966292389650410769498493824809536447751333774763822840356254694041491584499838045400208554732281257321182439040343284388215149300202957902537204446270269894907852972956071479790041808442784169293277145876924374651984443880540453456607460722759673390737986896126967222153339860891608486541159921618021189315714767453360706815654896003043986189632268340975161929008115107347748194665771054618586974618450210900544301209615225645109958472811479451300953732430111584375115420638259152978156279964937325258030726781898535932774099509238638528127289403051885693650318439454987964704453906482356593081439058159211562555934735566422083461416977086047544821500990381378680091357643893931725002500336110590042536867237156586620819602003961665887669218985441377696694552148740473164893362928417127799330057277313413285850724172036334754574002007984524855566636154231682539490260207503890918378700552254106609411436703305998001390243801018120165421350412636339698871026645892735319540908587276819995704046716281211335130558089015846772234622479252151168879554864436396163121004459643238764574513113841534365232537812431223940528169178850797729688927886397544185391331062091663073493802315132281793157438433854957814748945022375140934996072472241959746700417323677003339137590328388012461855260720212802230309877230846454340488930279980517049497806916208058015745799128718882099980111336328123727346719145078774459266598135918256427442799046995399358268327510079937746861359865208557128548690021195838734344236196779983719980636238041367246020010648987407631038110004784669335312283077165310315944957122044353131173076842332525669157039265540747445898535034969710089858062312048050580649925548692428682536779071815427745768642221029367949470199118507365111002116984111530853435075626979868241999775913015922309410127053485108226536513788956224632478835394826558580273096197805018492257951342158949270747427452628781019176531263740212304736912768570875358620666552444298135591348319935331617322992041524000633093797227013569757243088453865232781207734076495529303728620808252351062212759068218170114001585603644232333260203203123112937903426929893840479388369134082102352590958321364384652545076836246666802315077437450184907572172055429449153149097125139789240609421286111026792647120962456610489031016151386101878224164178251228062302659055680125750860252773192947304273383182990385446859192630351263489044323025954054913820986278032729644906801283771701249191415987382421651192913675023165056782849052211271870103098511661820029451199546636516837222358996848492858071371422131235746281258099173766737195432692694324882698880758037252885488794899853193887729230788306430077999661201264005664576923047822807818032410326313806487295718896278082629451528124915451749363262480080047033944252125661466557803146342098866135619040558363039887743920227735983993587140848181932728866822988752691310517779014744427614174034999925417755076370215255816264643476314292464015368780476040176954348439642648229702513919211839243811299881154709785361008364948380856346465709266130635384941266829766632290528117326954594258024830740155525596070917293046717076819006858038046585986269924650250344721724144278430945497276023052123863650545951591338394069056205996012579533799387004255722078885048678480712813125605529566518528513095016167460444778863412162099248100117780183116693685906897404171632093612855024089060256590602941850473137462015822639462283958089489218762447283666351535968572044614456877837743698012689428576767540280872027928231932451265174136136926088414827022066707022631697586210495241620819520216777690213534049236927570466672498086700020763089152037500733612929788188546846250089245927982440402632839834507216169702589650048654170936118513410526588038589513589376338562892925288843067756545702248292955305525588100241687448024076125747859444344337963743094133202705310015583798560296828366699329113973581644095568087105788141061834375908279106346873394546121274158144464278195878090740191783998929462062184535976253033622323604482918718123654336278461339404521343970684596985193575620965360242449558249901402657294008484052740178882345257042175532309491405238559914688837690680667128274484404022808450168786019962047942519853810220996957213453233096534658051126297778946028593912244358612703163230397374874416546710432959216819586160261745697671396736657755954018428680117590891017948712454881531986344339951149588099717460420649352589097956794120331217369084097392931757234606547059962674157637827701293643423405807493520617411618569045678372042195851066082901213496080878546343853900447022350850351358173427133561986582125906702562314706007077953725632502714527714715409037425900959542850567784131394089782625821893160615427508124270519753968697455467632970876964929869159478119692985997270993165270485498465546019798822977970032917727252428050538902128445218728898050402455410263503257042963349641168919728339253920279106982320249866604209597926243386693752512392425037414780128167821313159063455618733324129273446704480440635518541315316143883096650285721995300862167160147722154177919584502056474437679869945228140849467080608211579480284218157591858086785838848788013368658446762301373801421167606937802898727332519730542601147162629010714200080589112650114762002530833857153966744306764065450231403092839851170685647936460204167807122250005469057191052056811944618325162258799223739902537793140932504854845887348483619051667681131735905984208444476010290459280254188116149657557783598310881260264699855826987338095913439357730691081137487393745861282896991834904876515747504732504684315268903214589851299489704017924034631030521410285932020226848345549046038387103306717617468273827447986878294033632859122138747220444516999120569677200377804878376435948692008483370309986501015997228038355516487223657406563373298438920770427145737160805398648020728391511752564787742365945124103109438610211065876419884671698388502704543139312302802637791180545009224699360313303658189716035794694940684904109063400005676523997167538589581214805052807377260109187789504928668427886065117578807820137727032737392028972206495691653409856481457857582278096804614620491534377189628802730836678980646071002052034448785794008514628085719698065209000990228107790102459243186483896382791178839525479411078176441120711657398400727799673611911277961690240823224520354610210940815590023226358312113430171254582013759704453272526466480366624474459832606539556667888617242113589478969636785382537635857702032227507529637005987106156083897043743453860294595494967251057916701535298131244707568104872613764689304007452030746025140773652813859663872815639801254455759523452292236043344625400699999602239760258084641469457334452337975263138762429758371570552516006563112403453335326934281265712644422930100042447148826524381767333833134623678801870753684435962970071510715986504529200874269311202912802767967204264698493434100293672809808993364675686676896423658478056512688100595392329938328631628200293532553852368268437113119928558713120493618277646112017348970994601564302938814386530322588953985874928274868129066735440746100961142437785055443235529314549798510691650377476290026570947445187491554360879667852416013521045255601078810340057488687755490699969807985565302321396406162203609404516120943318301692435975193283968067426248650908378452234324756753881725729653035291887928048521800849175455835769280705828622167664659858855972590666933391228185497269657635590454469718967731738619086453812627806714604818055612549041607540927438254355896884195337598626706927675039488651909540212124976486431138258408797662476099334794199989466330188746544662528098859522830382355467469523691655122555435984890277111480219380633047472245706404960536199046279817782500894304030688299507349632422180078838194597628363652915810953300068882844486220983863446731541746794052767100739532924348774436917248522865417881808169770309011686706479625533817577858255743344898106384636355968848641376541431621053934748670877119249780371319922617477594503706041343170473489744619613680911594746271809467711655236962768189070096887392073631718082663933357781204799282378885758155958554326026551177586028769742653469893817995450806992888529231616471081581099325049435871199802565864882875826835171422254971187840011731554621375925613915361516725155097168406822793178219186983983585097579170946604827767025390640387395658219421587656666278329029132739768795562593494841350535229363064888968369638094587693782552547809595029657223982234856176125693363072712321933382996180435057088341570068242194641314316765110959596931107535173692259748656612862138027463062611013058097785328044046725677444380788744128755206665032887262605576452057999036530160736918389597291887448667938056641505272512667337596374376373523241222291833221789708457502292714020423948052230224612027504843510265167951997568279912598199935411656700845150092247692883256518712288700099760487980724017855354443373734777490269450737013156114324201499135896743814637576141792357256949568934802727812266790809146054315686114362967047214613025662462616679508847083735088175057224077900909118698571809029312759531116375303759214561578687954480746179207837047987402115182210958423464616191267868905164640343131976437466336211294235421251346143096250848901955679765188070314085966245284850754733647378281555596809855150173947072743919567080563850600519036984241893210126243988317823819463195167738452472102082594471840639553879353361691867688629948383076100954364337790742958951042130901344140390135800875076040911458443772367307660166108597665972400549467625477174582830660440125361851822683112804944140368284102306076011846383632262896284772915854992047758056780125628886725006328686309605817677086446975882170564786005474600868672068729873948720441474397042230568688453939880288030058182958373525093473435906809584211223897129304271694363496420442522195538512044313453922619087957278140353439280320729301952350424867436353268352541239512093503971134058432612121490036058137639364193488679615530817721591176778818708824058445455912681707447734699636832704711764991612957585675762190990486377820340896254549032885464920209462624356507891517518649116221287033967163710293610178110132290243959597722652646925701590243998038616120976543709268852875350132958857066191311420366304776475913504757437722971010531671939833288905463300272963976556261124864129250230701707566847611706651878642897848580543906503039142374687118528668966796295684644267896248880148290654711510139607145610784441397786468864116119751469310565426980647040845467630244743372193712490236693530113771068082878933919351581376903807161951717100275222073469621681553709791976833516451276872474078866627406319458442723604981613987826503085888645964881292502823934765085372325860893429742835250346998164165669412130668309385916302926976440724483535279467685408495745139713765268948090567393135148152710918896496859664620106478858082757082425356691064064466981658452033345987802007078682120119852250720154173735583238000192366477709410419034287985805666567322767676901703320996866570883068429544165256508825383670106908940438004506081487349933515147547011252275279749181050195742253699408807863288575281236515664828580058738903791137326626525294575887646275998278880735235496115695680719562629403566642608928231201551940647338682735103982709782204458664528965152013311154725328131175678102032877733573400640242605037112476018496268071038758416748897286615457703011675792445291782378729972675384941051827941623624146707693199444388323445108659703462522027171146959314285164421853448657692365143547293403834829521259819242055303609430215359312538079556976687556870887123383858798829403507810348766250068373587597051172900738040699833361143426539272919122314654576613792969043738161950830662694847234237361139573842393068963406886849244824504808238832633404947559472513389424403752063668068184751834150251639747765846431886466845091771412238237840100366536107117377842391016580348969168609324212643420562780512184562095147412302663404609667001708105302817681010490115410794278297265786124160968890856888873608810346474552126158947515162291814099379375291889969290548521670914321018078235432277928612842265186584841975083860441246186642110416219235239880736618732580951479290250157141343409066164354953112534511211812542525946501618215981050654422018963215274328027760562694815519678031199104956348334088987097741481186514326621463677766898005367693396272209164893563316637487969816203068561772122545998530351624596884782821300467571838557955040712212358289495027515097864552473777959957260225946938900184497062437749231489667374714055279997588507915700949505411808480566729583679430555119265691264090939159840972115507073098569732612941518632032106877237029136919492986793652359302157767112405188529924358617256835765613980770055271911119858008227979173367766743716877017760147565980829070685083016352087534105038686907781649556652798190612883535797812062990213440435139862298965423779412749166486806202211840236722530413769608235629269490308210608391519452724377996600776521895866664616836937861681987584117740736956074333141656924181185110331088058210099683472036383473734041404092542786643775112308268637529369396014995979026551247890339154933100360619061572223031695720278136690441056641931962917491153123447480844019249598538863029331209625205392366132498669091754302670878324652641827022847757958620183430053015640987465099887576856735672141980144433732622891743290403821188556660182461773451117578109500559272181601813651582114834549947155076173414834756957463241662625019771614528397472552517564011643965826369518304314787999631478239160833596894299686964647799938099853581697453716876498719235455996101586208094914046686363632244228531009492221987395451018186996079130756763779714147225313968845085637839244954321553147565844176835019367662910303433046728576245362300979555409539028100035072685729041074920053131810193912420084693533500876688200688732511511115783492194527057793251404686617760836930798020517426867685577628162942598631245785192496986390296220164272500618707094806547348409412157794411293070070620575306604169146601269017963592656529255136462916814700497957762378611835433815978276398696593598583409377707468855004621202448334248193868117376738451896748269589236024077699028103475615494094060587549357695637689771979092902329235513741829810821353813409233429435802465385342169642226903898101821952847696685944803460309202662328036864533936686595034358736998332918288473269075803863350637225637813269535675667823571500954297320399276233760656509155116988194910643390280454235964342472349330783640232660446658622541336508049906096720175334948153953927832785562834781356865936362757612870977648938805130856176743320497540734688467111896404330799504290054279459514958794693787474554754906028895225120756234747665565780854263077495776848775283200017854874955368460157615325732751183080530379848278329241512093297203478692793936128355079383209448510894385793862340303115157457962207036308359953699796864468575358399360469117805745408786392784277665719258629389529219053351899238327965026268589308290692520063233664024914264661535843792016789931875993602978487347695977649919375368890481630763694883804376446369048702248418329522327195715888650413758636725248885148626462951240797278637495620276847637399714053962866310212470842474158364987605325976357133868281026365895412580867867544576084637961898282613907866580593485290585330007115475728152408385133889961937843734284550491300989847004987831552046895093662414018721447917588885871724759165536019400588891395338872700775191904353385362218631195068481848332281855549784080452247282079823008125572161138460501640001297845989375266837667698815473350440699800320297149949392947372907480342797571403721531640191635843764433540857160824668960026319904555872869844536171068185067238764578151572681569995316937089881946770741905761791376989284579504233209445793850609641054973790104291450488485243144806057458708909928609668315111677976319136452498313057157520364154434380996369456748619889944675321858525838666070620980617544916656796631144331658626346410683839002744210724918856883732316013555421526178176363259483749704447675168964505938084870309714937825078686817917887646022321963372521586255862561653566250986455117005237109403176509048295882175214517182269086238991760391783025076568413558972685491591230440028833599929260557599434035114740343085356073581938543218013882410405785111666451187518112093623631554823465256948028560046243964014487743270930471731868915937385615685022549846521843426767284275341164097769073774398370339197961032172229606944687037507042993409049066286303417196264676158002552530512765947532049381956554776439290979631073721141800390442179759107102134428653317419876954832391743455807645606072140851202230632928049187523446441961239486025813485187109290556560695166256902960851240412002925423374164082038962197923168656699863178393777116390177888249303895376627731456301288456568487717871006816694733893549942989693052199959388143451916402381037594407373506126983826811194223558658607606233253792242206560164804718255290740779815164979548013879734553771309453621139494141021144849124881031217380196892483489969134065552791322491816618733784668251422604145917320561225478956733327168366740279849227107120998381169663617196951908862769850855694704119142575361510865249876597948184423713415815457068320550498725575102327820216000911047678036909401689134780461757862989415736185022177517497099048213108749837284332689086734141005463817114173856041350320244907652073243874911818156037133550957502352179678642510708053242954680882957269041957963978592524801416990698734522381492529809240276984976520873413667044051602710349244500339921857685437910080897074883137398685423514815774294357822255924540724065595118345218442896279388441110274285487001267081385308023398334757479010625388008471224523659960921481280181412718165733079644993690297934283667423502469208574611262342254501270197758911368569536739044589599305275498593784958540602776154446417633651557468846068125958441097758788646581247412325021570653351019177791632027926604257279891333302340061561193098082395198230543990891089488203827423658587231904054345632897999280163518874288740612977041415955255084142206040005963054424813735562217554117969627707373387539362427416419908165014382087531769836455581625224712425971680680608506635869053081490941423896774603706178443649233866897027728086053106905754311944519182245498308585221915380238298755708337988699631494320034679381897568855051575700438142623721443819867087144285240339484034921014649157269721902679076701172178230023966675612596634962626453572557953936312506319656450715261577511401990306537741289964169496848850547712885571077960616318641645498634750366576068126467345661135666817503951798284640344709686677685467991655350564126706815367991524474102723768493229522951945275422423569379604236535940775723470079899069917346532163243146871389230526251593507782865754315810728781125978682338437842499044591459401965356200879641379680109313952202309440668887254812697425468983345371852443919437567159283002606807376311777300695157063466550738259949642531757018256324249905555962848938564484660981457972406699228665959894040025708825802282019657831314630283518860166714145904013072799270345926718768561567359108955985009458705045063823640132909070652799749262202280682671982443175103876200681510671364050290917542465106004574718247570558371046628571759415331646283505136157296305511021635846055055834720888779294521716266873229370505019936037934547362761890746736651069253621337051054198354437223218239754157465074457858929087460665011649096428368550203362075823968773034307174666499526653540992798186247637666008439767354620541428761260405684561585447016355571662824316027619095817960360112625816614877695043006341218717802558934245884519423297289569060619669946731213616071010894674010345304262876795191971641252446691220391818881624191822383606914820269995872090916864355148118119978250110434092325530006025776975724307308103949884665804571755327958219435737678884344697205676429652910938125028409129515077718353229077169374184418149161244288304726859172628830894662951996948125788729222096999269109619152651660312934166595425425993386750256595244690597735610677617573646359376858604881266084803756500525342467392352186850472347882319485093648964582193955943791463581980254409701766472861218724759772329896210200745752658171532918835326892428774107338957442210470987841538406012061836225206053133244806583458157111558449637430353780199003742079717239822848511888007917838549845406798663013255170144354196091991193650634741746244729313129450047241038253995316816283274269930628656172699521576064562388657583201603869637616179147791048684298634330182392524619219070964328822699559954171580874563161954764507598665784640180555407150013789158653722363496283015223237026492820127918833924271008561653660936535818650391624493280784179948155753108863216543787147664134943495507905532379298161008616695370887404071932890263946388541276462492604974298302928454958534488819874589026544517984419932878592820448098304959633940995095360176766159871068622478271277783133369912651858000793545540224192211847857634244032251644284107837949753638246689857642139517109660897852427541734096721965260835693175801440887010495784504553812961793051217637282425532030670568784813729167588546272755665628913212357380219858496116326112463665759798993134342278922995691228027295199733980733641185988499592866873511012568105855919222009350094836560284166568784870133528093215325783972309603984680274334462207523461538213901565671582994612346172966690096678466640744113004345907671687473347229183027521626345939988850851623101780612862402038642519158704163107501757710106572877461530725834143074596709333542420321264488687866522788881351338381287068769760962043435369605425417693056440459745226905112368516234664108108692329390567340071542854903264854752840548170550965115727382072211800455662109076595603417266228329466731830355973231052588925770871003669519220848066010823706516536444824730542730267458337677325208525622204183748635849960802323482476916854680517713181665204310889197194264965968360261202729179932307103893394327765537074198663196803420172164391234614868008125564198523666252751890789589821881573211539342291091155282701358375827645248851877446546311837941562428565577321665407243881668293216301247008091796054233947352686100720899012275771329832876896376295902243609726570857697494516091680267085701220431290713011016335087146875585390363804080129433123884775311254877028797179702311521078692388358159297109561126445103969267284716155375550479717489100912312166102854842976038277450360082635706194610096622331716505290046247518090604870681656756100202684383727176088565069393016136175739621876222674618863292413667473483253715805139270410115389352908870903781112384689352105201022913412561960520051444226935160695344552063722620285291361966247667971850608397341858216281862922547448525738776649882639044907938705680946755276334594308421371443679269260604238740196546547468219506197713217334484194914358942757271644926333284430349883881695178091726786372622378905177739356122420082736088835310973667996967794642958242106304363550247562062605884602830904089833323178105924248003878221828275175630030862924601740256716539748351455659006064775579539222127961852468974410708777264215875300892614982549277391378000294128994651560747958559952836044817744989623939904264990060859357260052531980352101525326599782702714376274245813475977395522090033521744878341437506810167581379973296597959923146288229116177701756671031642414215619227696052804965419542147996710625440485701017532045435077134099785587459755760248029506971142364985130309186060984772701680528774868096591728942173198094789778379395228046617969563035753618164645991311176224806149268243396566572700952329638626862601767451962551097203997223282038004189890231600057857095540152706410983867592619945284493839015768654903514626657974362462392422177220555676872641307745297014595456165505520663745815797396978335433217163962012198280602505485303847469126073647615516705856652166616307058859850024191369520672477877852582639088697750241154837925746603217302809835398045084147988137456985127097301845165068008618265495172010635417951415570266162714230072842325229952139105635624190192421003459521579672152066718218691859408306887116857245987883600579113790324343456074638901443151815575183401339077583753670925847327661487031368314823614880488645748250987220257445255325256074253542788409396592512153432897574101984642854837298997287440060806684537719283131029321974559375599510486231972424056830828354452317045595064420473983805679434871758986524591071150089734970095788735402421034043614574100162369539745194727779460174858866053323120763482412228598382793076998884089334690182291910219314227285207053668128675156469622928376803259542022050256484159530645170759997141281634045478420123674268661402600065844128375812928287704067105824243285519194563676306634273392200165674244073691583408737846532209281215626344072925924770370749557331398499765863850842083780000565182292530580077282081492754506727116603243434841045847093902143016691123426449076739141915068254305904650795674007711233705724075577556345481811210256633420652607008452409010134683274356895057591735886716550273415597647135163398894368389154303236436661720213259484333334936301907944610688401294418386121247964265248459113443157817665601866314456654503551023360502095058129345306548326867559804784876551909925043585709103790339744328068634289732652503415685381558829114412378333761486307592976174834351431334233170356681455554082469029750887468230710780866359417735616639201712680860096892507875074269018434118461014456551438509210206465737302870791825479633148902255231392210997552705023688862177934647273185206318549451794173177760907840769165643908317788128927113824635028094562620521780369239596817251733775182841225934286735350456620141833601159598554727786218864763654780461106164418290648961621349697206031598704611136218487907280541463311069645299820525797117492964354510922874254825327126951414538834005657016925048695721897546024019298274565539071110855515927275320436108452117228948989009347944857590775526483503563642837264478718541840979005917647561038542393774859815260035670341980665526836715713187840013506893955150927148080406875787949960090128080976026563727372464781945102949367538698368870100864867234573061692063794195675085868050784121436729005247044562319022709853946467682106344348427377477782389745152446077402828360893456909406010988605027991652441601254489096378444690534876753254642982844485393310136675756047155979326826709157808493074439595068740481583210542603186003974706289456313401899805558808497134514442927064208531192541200145413542938176525927147288371560983895164718329361911983567061608255963054849959042937903904237822874449441354933201373081369516101077968191152625657353638792587011256035021782299340344779526342644985033129960855706836619588860450097279375051583012237581537405704753931025573191513187155516241377820086940986506035397316631025778808198295813069324235069498908870540649449244333259700409512506594006576767698120243113276764111465839904955138943415656964012264588032508894833488264051393604961228358633247156077880363069168818047475280830913149734022437339626499871467175809134264665125669797879658441331090323007660401277582261155662511413157664204999673440232499156653296563600198509824869902095634566146671768838608731435065303765521244666692562023891818259564426193064284651761951469082331342787147710393380844576957219911209139187012823609529978540169380344266148299667964135421915304302913656409326702768540618851292139738790572425442119947752197212784365167077403134097345861810280063504579304366028559221895102777405229968010061022131540546400704549367811891093876773002848174054471851390960396098422003491004858181125475470640607470573506863706762944341964859237297033508475908720106101561843278962851169505829515217292248435124796298143360790563179492221489564520488296196276229797184849123268566462761113151187229754561498771385647381949656068270011208826337910601334005959874481846209896339820583296230075240574023519013940886799566985779041958987735721980084854548225906322342015017331551469835273744171153721680392426504296827350824451268884937510391450824103231736485227528645809119681905927293304387779486309055403769493119166509315344488489980831386018127848076335426925336575600384699872056085953924359033772789365401091887024300543206080976031018537821304224914489309988389936265816431256767491025174660605669759822471438388994926364393051773541603215974947865653291632179758060785962507900536774337285104511898475791686804414656027295725057203746073240337557323026860090285546127346432364170941518422289956833716286001195758172823322614296675195032354117080799275778205097273493654961993845304831127358800759718295599035297661304068975754762277708149078224300657223259180204739159101021778050147275549331756722579413629357795190679336723479338377001385240335807700895531621150392776502068155634397933730498755529508960736467044399908125421283123325767075512196705144835486720172971794546095117980040305622083004647198211517529714496078966491854056349539553025361498081405679488526493074557555131060219015753873984501815268662727704177740784571569861388639200392767347245754466815872566817351930719130184493124702193609134864688819763357957167698372189960750800907020105231907961780815957716468403532236840013072349218716197846630290140022963881117795762777861693122145300073461139538530569220549962509806214969922665645289205803723865815407577462253676836850060388728730681094859221365243017870395503177987231558986528175085599797739705399636308954442685374773056771323578574417518477250189280192119891140817355255629161070391728511089366609235055172321868314968424678332054095508031036647343947997461582984255336036686809943735552248049232297835869043116726284986778124754017883044868435122013825742438940334085843223809490806743323021097114993210471030464701617813307891320785697195422974184127980536410078256875686383686650545470158614291827104341951030590611525841971644466616661924361243239564961357486191537978203233369450417454039761301677215342894110843460345831948151132348440770029043890393465779507587718560831219309504236511416200050873578892448600088514978270744603360432082253812988244404355243265766106052265193139676873416737361058793213581183315069814442772572789868972600182638786654771069034910647106200128350393350134509526725589130562005984240446871622461493020503248944826390772457833901327394792985190028360820765592147610501286594507155283030617122551531273476583193044832453154184145992844405862906981849403858014893971957256847445771463589263746378086114246266178969908388977030737938717598482961440031177738372266299215044136554427983566444498501501104691515853844038639488545837422503603962385557870085872716359802525476895548685596610703568837403234554633516903156073230098840326356241699298039034568791796149077868764470300609557357263205548028032129503704592293578620009544549938723961747986742619044592135906796181109484632007927225930126680028018309950570382844833076477752976541055425359097316914037663088079020720341828928992249944656614399365465846087454426120310987288329179721662482826096357098637408215931651459790061358580927657863106938731767650667884480410449935271544216342008733021696218565910246446768986298029656300862373295393634466403458385095958946281987447785107683274195208444147846409771167844674347320255283159064230198839612786179123508920493068191470246786933961279994135087125394357500546806947423158913126884336502925113168673492855648391166977097867117547454448643938268089612448987683084786981519162875514559812735749786063672655440311747665234576210298489193485760239505650574577349533586264715739174422635794874764921701012106599915797533178117542934236238250975649334133818772853029935280559305837406167857078992528112748826535617243309144253032031109316817703262181841001182536679669985826047157682595587777377641349219623397287098831998374792928999708535725259886572021794901192362974294623109941333191999490840448116646395566586769939669739584092443417282320820989006740055623937494800083355799300746141715479300204716038761272441312406056106330256771138238455883042606154421873994687466811120345274490907201615842591089433661873130118665323344798798776613488875773877572783504863761726923284284970816697322270101948474044333246410252685679723875959060847491696348607892646532927819008416384321785283067140501199083285661970312144120381832891568086276892335480038920887216080662038203049277393175349068464543371773538308767077057340248761933354311335591262710908803532719432963965610937972720166120650499387506975346094537291568341730531966257094651653932062081347889958728114400607708083935418565249136913585649229607513604761034689718460501883003585784168760794103951016309503240151882254336961047491821237348300127561267049652676931584526680911228905995553958963471688384254584501734471329596980110310173540303026952240051713338714570154060831587019514267738002467206166526040247936957714990977825027354225352419726525398050269403958634571109282602558731067527757289113516231657942053395010566044185867570564110525664601408846439509680151064886361105989681640744911541058246998027162541139070138956253651100887015647123478944822620970130406824705249337632920188412694169136802017309471877918175560300976755461820793091019434509487605377911416823302177552065945737934732542222203098887380338693341809177233458535285800788389311829832563808539507133915769096924052047858894067202384197870434984914815741863366073078759871010214005559980964974701019164599121727469488630557716851242060497774363461248391693253789497684134297466047817738546141620701595441307944880461140248148371006696408584771597571393958347339317083907558206889243013743519716520825761793238762820565958289570750065725336983886503109314166783418526798298896617157295931054225262109895687137659561508797247870237886554195150316367564917976229194953790403258178224951311426428188069587720952530804508594674049276599262154415969549932073387105552056993676647223530217969094166499643539953041154802120109304498128426803983612677242817447970093965695288175016090305050416965477182889806680272412882416362644479974993234489829257530655660890555590907018105601970962360722780115322578970329249267022056997027669664850813224927635676853224555485555049526932492150137092230331152344323961549640426998155839418325617819401591006809145669313514154528159626867745896583867599778081074567170373156058463401782015727624095596429568888269352515491259854405941393167839536375690305608235429471245977223630772267968104420996202153709168838902229699107794510845176588504993393849419066729520809627679614138887546626832267906589570273022852344738335387960324444087691460086443560434926179597627976063708005197129220404065294094051353858229422343632086702057335972670505983736832518651246298297501394997238313431464356809248337484021263954034946450520938355652274479254259612423416744553043196591148994658582187873484793080176165583296711087134600220006540551884903577147183127359992527697229680980794673415371174546841809850977052127398022755733395709587692857279566594276631567915983503735230198548625621914176089410220527680588690011070445974757046017664153085826946660919603319367867970865628917064921125334853657917078081543524072926057126179713462293402729225527560174333635101993523435037323042025088618518524494040909881886926601899601924092549734437603731893254780278379177918402172438035259875155242938886443901184650844706791107811138345315342161501110913046724974923915091820281097323126330978855608982086245042255680989441082682196444833588292238993704329363527636518803762929769451309882120713949991632604142633093390926802989622789615297339948663459759968804701256471746532444552692668247074458609610318777882293863910227085916255282434089629632755445638358174284781604972077060105107217156940184737067070733409461195076417040780969599639378310184410758228835291597768681811888825799785549251798615785850602762074569283588336500690018020693092512108203662615618851345739275583034744186713477909054890306378623299602243371889971255179916397576065951320054279212329485870227509260828303373224382815096711316619218139357625358490181503252433895064596777797720497474849390771493877947332331780158715051419633804157822320962862791154112557145539476290553615362462702016767461513002151340002040309037800695576341899810624864167570763028316687109906832215402217784638559544684632281988570796844818948305568036913645089169976292835143797140394762606899678075709402299340894987555872347682100489096195538281449728821863101636882554431149367773111140251441457265308339546262709425634305518714257473218393398338883001403541016992428297047493818096000598156484052698519280058949570031240487768871912074379542944001659160355735440247316065736094403651450081161729625607047107632157257013023105213315036899788678782682653047115892235306727703698823704820876257546886595873961654322852474136426884720183692302294176112488730040161122373212960138358863273948684215226706928073703018524376407133147141750013526825342154150878821029888217089801328775014025593525662265729980217670918955838480116542553238134606732449206820396414620025613801546088306086454113055143030436817243533282778215895693212640170686647716168163450777213217395378556556098247255179539700750868427887778543204660731249375079782829513169746803071257131656238758150941864309667589985317003583267864078345390455213881953877703752296248536553016041888187149262336858728956160149775926097713312023012517766864329113088116002990545097663534722636458436134915181750791675422401274868193045536394396025249321169783775391866349557549354990852646997387072515787690386910450726520796183418785746457298490496399006711345131725157363782954653022039503496792588523210820734088287343000365227280390143706586725953380301192348704955899461208521615984576325509718300520870992075296238923133070686918417970720959615714914199391379860925420850069903731934174353645102675246217433993416462462533111665110726218395550300936644583935468962283929287616449573272298482711925883554941010057611885837770485585922552454544415614422997152065344224633365807480633350158960783835432203083304109666055960437188999083292592483226422396676029173420908764463664192111377494127535117595148343527159588436358399578186758750575875707610309996813943278942058225462620572006878073909591293302920955649630503292850873341553796473424261009363560435657716980810187322531401558628687730194662458710591581507706217810879652353318540295907293091829183235055242945526904236678056072663650213979373861131075800144154137953199214256440195220571801161061386684340492711589866096889471230705605302859048997478769178424040497177606062487791024930729953692813479216532063611943657026015668175747265504290770773531738713983601989324540679121957515893204530695751160539079245170001922376634177590740393816439967271633441923963516386900653522011794623778211075639871615010773367091010347247896595135238771609058763492096971120685770829644113308498645830531060886805361619400466458287684138383548647392423743801967139333415382788490895019598591143531304984634133657190506428135759610860542515295292318985843419828405162010400770211364423508754992120180743061473008969362824078818213387596737321981218338216512516283094665786885696701442522174804986085820834511709814218203318439098615645710944696684268477417339936390359355715332541706778674474708962437225343648601096347928349462848926130698572463100918708242765529950163107739643646298456156158234024008689955049691714435279556370535381728722775180186524985466580043172425442177257162510437063688057405505576183544706395872202818998978343983351133452723466986729440101361922758423571890880761931581280068203180621366681976888284251113043716287817407425774927324638007105875101776412306591978257863680198202960923747779120044321361725747051922857466184166246750801334517257769274682366560885433920975561703287143835040373729255060800030793874843700104038279988894888861055265162995941510298806959798897131960783505403455296739636749654867484989823133100513464977611571318470090114119234178886851582719999249075754717295738953397179875720881491808797091605901870417218087271734609918607120401490970321504324135023955958087405117445656659359168122240189146571604647553424814705571522281539373501904855688769054091044914681174534120632341243452450936395558879016594768934607335325971806225595201930933161981722103012059082350209402989946315700446212315551607427832469861210329178681943876496353835285823246601451758175474065133793366113129673710571437589165268454542457621662606184068978588818991299542960190256149469358693303891557217610303478244280736634130188853913245143246155134454968011418485250842095891057461110021227978620134651013555421590024332117517850029320987976082787497799609027153476106398456375007342147300855554618221933574541661018005169553033048052046985354862020401856107505886645589666941942228872077485393880583996880166173073796782981360146114275912663745940834839616255513903782602155238489617523402401960317819037681023300875340541885756106965026491186889559736158220833797260671207944490240306538210715523948374625517517746695813006080534630455916970700304140018652707371647450507796847904352996360619266427967035255065868389613738779866840942490005246928461292626881136586795168764939867668386226617017946383576122131720469461215515684140750686812977345077157915211365670408249759430900605484904774514250978543781643585709002846705530568948877888325935101377526158878877272127125871976723184780003215903971919893124192180723299953350699243266669163390596605933530132501106985873681952703382397821901038184081374981675259929403878555524599352660099792690560659916032431694494710595109614949861485200216288058633902885722126185724792397863528261747355538681149559840641341501922244164141660416947509379240884601547865579422514756288886355014072332796541882991345734987346886945789650487437817355499157933751700631985431866117488997598627613567179652592695377256179039120604401835464576506084932371126012983319597928056271947331272234612764906686010634196202960871547503202762194798701145553549156802706824434598778319228318770595513729050399540199007523047804805083877314165558053909988618695026898762953092907305443183776514839547645808278676106456309986601861417844957611892920096713311223746424006816253317973496796305478605935754329953672502374435507178643825854965053031819729049422591956626143938634421123695374356126518052654602147523670686674185211334005603955941059503893043588730687376129104699529279168876579297985616658760811030751162486313218596806254141776163901435806296955112087668403071024151638110396452343822542113978540508629547504016256184533051318630191028349869211688952210563412764700317046422147209651136416720640339890269087416904516971011488675275017015680897297714661411476491370946448732225966656953089142238315617136328243541777667713323268638358072922259485905184296058434263216950206535619468214733887951785434451855459156004980402699424033515319865747067406251083498426643285113137678940009801813798229602022052130507003015081336759950324483529036139745210640256119692929482059641795075222967677795713669908224595957043127542202679453166803588811084675453461570957969286406655792459069073846268166771634506267969432592203727727262356709679499641045142571918737065382792042424585987711549049798261277555449349465651501104500050785961798932524780320626092688250055998848781302990989821777167341054960803757342617437769752850353935449569389795989960203670989539434585837143859521541645181588091514977203261995123582630878049063386822134240594561652947467114151179121526966026748090904867988069050425104990800707003197608240267156468713510633515617102729740046892803751378625461840038143615807561030403340819702447691540265975909317733098214647342410773866629540462382429480852422207251032327348188581952011858627890762348202278055966675003486533385686297445384563711883162189664003968687490480467692216727856003796112323004656663247801548016845101407254787081631944567032425357158528692453924072015240907242390737119163242618443785659172588437441046374618614442081208500493509968928668892335238981396255552076197273122788323994463606040612876942477610821066300382091616563456227484853047052349028523237101788376217151156013027070504047038361138849817234478885091017080845294578343813765556423804203105579313780821237166079356985138806987306219988327687470844434091246252268128172113282518386430439530379011318334665184874526326670969176818040507205873049027732389559650078967566181175869471211695058713883178931211005037275340835211051983548133617606652380816782604216123448384854397769187571931830948649663985673787893156952592096047031671751351471612545588108820865256721793758618208415344109845988663982039116064724740109727809563939060483199992215108644482323170388762765506394026655403900302699310193087636741217223639389294768713413871993341457886325149603179727351183227303129961907063446660519285019687847875621854085858876868389620930032794555979406458466224224141906359413713257731975017434915923278873278559212792113251764758133017622898091237853946797667386323228438310518930393127582754583597771731986730274173718837778231649263311152696242657328975655475165924870546573114154040324093824954941594635641349250415871821247533548255320194701927013939336547741801047541584144912434852098406436237367487123049245805945925256146169161438118155946512384259045893216830014131830489424358581210886217767502375927325058215464434517593922367061023131249144668931563762917849156281620905535081755452373586127583890510233461393830786291511311542110932461921427346887206738551919939061155139227807754409460176499631393401674956097708536035680952856835123662433113850205113631622412901230193857998499553458660144298387204572807845948032245394770851570308810565409425213156961534780085187853130988580515868999463402715738849035083956241887895399517434987171753620070205720716335361565677987642059519430546835279157103952600476501104927112504346895678237770296046311382252400101312316344890385134723200883887981417431331510891848007613851327519919136934437796111548414524182068655747179144224415696754008832462679470538214604367056464087305883920210372753464916822328200208259740545926636428225632414427404806110119882638363449974982644023501913672432533510882555361099351990390439151715778261104906843557132107116746744335695160820907415195151398298662679654259493965199821488759713658990623380495021625637213279469037462578064360435541340230582573675794557640670289658788288985033954599647824132618708591418795309300947472000320154316213160155474878671585297659187560752178376805568812216396030311749439421762669528117983593593158753634666366447189883349805503967840241495600406462812119072434392449312620381444379597432078809776486303906650418364264953616750506410634504457703080301003565600488996680133292846071474523108254820749179288865253127302685557738188996980577523470764424689355865601604408977525507625807885237560442932191619366029210018335758110939568424794052560745624593380073833254224093597599277765828974947485936176308068381355430910264072105248362186849983473214276915879105449621791232630515811268169173123289496977717866342758219060027063262423559387231893379769504799023785745320935045844490512756321292675580629072621909460500419315840534851371280325481569958661248311376313150001801397355595304216625844096076717578702228715278345995264316196293287362502953315791394927275916096746538322055040118374368160265355896688699794345039852868935240668440171752642528709400249694137062982462944625872227160427023658763838233610642261381975266441760586496808646221554211344604648793706159909920344331408544506476252833459853146069932932863625202629635720400853758724137421128320591847705250245227485000694090225509195077456303920698454854079121223392281991888754076157208616824927268478102783401395226727827805979634797553542330846926590509682854549032964878798006626451905310137743757135212257996408999783764922570522996679549106980705327563441053532484419684362543562342066891953736489730968471740288483462659323749788811865334448190340827564471940772245869792376935343113281428027848724329550336537831616767685919190700493611556569908923493651924009589678321460246232934793822159590844860575592150018861118270408675724887777278738793170864409770592004814876395385138062786363708631317518880582539278991474270161340562649967742707596626472297653932033150648854614831810709650154826733317135174511774821295362172733493173992898041152027331431035284941185010495805238167000467683631980386529196453973263573892216559659381809935882127024066178811516285852470954355555956801993576544555599463771030504572669685490646072811345189384782955099030850549017336749356943535119616028351869809720170881056718070086632541037095816582448822862192820975713603748302958170277547700014413562534727590232939739665521182563454046442606309668476290745877852209835528360558471041195149709820199117041425576570322825908816758433405774571462018771811564663976369105509269261571518790266968067693703464907776934237140921960943528398891902814662728394128114034262806985630130606737858764689572110896489702855038727617686574328103578079239656232962619263043222576183790970024678410125036537155497350054768636927997020836561469105631672829431672010037674922140715703189311605566179679892432109678481806839722143211207973547861566757761049147539012195194400502701380351730711986613757936101715080279777140666635564391873980923803340959506696852361132966883504327999431791387056027751088037316849432363819475513546451609193607189982174572320745459642383537520926497464272205759670319233554510025575824593179356959429568423183933489867438143790688255137749562947969742533682011933684441273181648394679495847814512800173814055202729519045398701306703131994746049792067332389635548168607858832402378265512790645805734044823577119073016272506753800790871093959253921330827054276893587643566638294251761876302630880056242724572521089667695867529802502920383953931252182965613542041212474926283112851210272089726065682347916183782932747112695095381635620537789594126162396760892513002047033012761823722014186901195747611503785749295781989040417339207791565970876441471482476693260239234829779090390853403092911967659691626564967808317854108581607154923026982561133379505922304068039327555677446517402876713111953210487311131285611138317821622013259552448054797712300875891835855739449000806057651662320585356270227594872922680927000695083617763842750319970458341166130633613452560902459477656219988377905483564934378355067128010929886475778744337508243061056334486940414127276005979215300391285035805330455599578575837614133251008103829282590576473289016100106221410058758296948247316315941222111764375460501255140634249618101547824487770896070417953454920606226902614975587743153471797501249320749935280604329949303047616289338666714991862889916988568754493382691250984797289884000690301044310652766246948683889064036742567498086387979798015771926901077342583658041107808715805132665329206889810366190778791056423961343574539670913221611817028149986942353338674058449647585278172954649829725163267985923905095674462031535176748262481374552722097592367712054213708492021870141945559964060461129083956354212802368182658693397634406136338120455475117193173530377393579411682751485873383147455748082049222847089197872975591647251998487089809782322250541225421935987161106422419360924406683582721287409119612347419875992288120552299469389167190510675584384176773655232845282188270930412663888919237014403595164885095456711525700361797658595480568528718586148273082030076070123627984825980723717113396688083458160049907159806112474783672747529573468068031390106382052893107115450888334461079707381514884554226615839668260683610000429040720377455193334508709593090689074841563593412491290166879888375215765419959083041044784313444193877832216363493769170835504522919015972966128196761642742875097339790224905550439572546441075325365573333037345231424833836598841372917910784363568911463214432785840013301364729622544463848137580117266951638708725687110249735470794835698317240640701395045932130514392630215041459713999275264408841331585449259286328421684962187175926753947732089350413242653376155917639095646300047588020636763052993396805597863100574528939144137123223469132283372229974890139769228618910977492005382617000304413688783987763420170347352401086403392734356639929334514011263920871639783424329421977458497078318092960745951415169964199477688134258084730337944920764906948411500532211063760245551394901375830516977704210392002618200349038638483653051110486188288795826137146116078852648530287746443966126224612823190855463861396974467871441656117686114121987783041482973138798035265282092573977884969040337356866612513692338627128730827012812347520743652868311018305301700809844418101890752523888033533436558028410037990102337862384131744598847940200647487926822653839799440010782429267331278129718154901426641438223822771554761729157609929646074370206574258140431825124332210966273266672662903147313381777610877962194276707258330386166790329560818836753696904583486383546739051761572626306281562137674762340510705745042181596754859042660150794701861995731114397919507639075113582478822751882610444787355119294953979795802331171314773680126031202183748581733125688019078931677440310853267781016581476788655179349324468364099465838787883582483088811423293141925834978626795835983766806463221552381928157937351601435396167909246777333787396555324711871187470625367768057643035697162661646307444652630773618665534510369968442204809298065832683598627367953447396644278743797384456161546270786000331225957384735483776413984460563849313167085272134612474748413101757560147239339593879968543101258978300830540861248262808264876434935547904786233427121624135686279609165593458810009100896731633670256630492371461943492316870089066102030279340684941039135999683089687472998690366030608970674603538653637937401904238615982545433019577170391670734324413324005719628891439789052620075667097962787908184413163859520473795298683539384892113733812624659023095787510125096544388808959451696119009356334123543041471836765855915971634795738887302504467697624099439446693281719872988627179117443963331770945156621002021042601790075884327128334303568844181497182108257709519193492840965324881786756672917619799211440979757171927474305154487336909763289988592144781963945356946310964722609583083010535973160504725550186013063588989976968030352943467528369451214836793588700386217392981144197682212671303697416876416851798116604775550996547449457539516444763061503128357979781491231850769620572126449606205138592375912746507905961188206009614733505592496456251033424595678755874808095834222142524366661635467769660358424452913797039508756366236462950712698190632119138009337801349235759752708175353120900971497094927904583364054853362680455383246682132641761962300428745086494068993261091861660058991472854935193303979856280339457326311919975640312523206480025849089812989007461901595869854725814859193200331264150133428046282270776784273839675951008687244077299362563225990161285720124741383217586624939057334956297711667899667627066653755862981713152500933127555407331115577342800296942525726626478652012211063776307730963321490006632286597240735417664246894187073545350726490595979017984364235611331323270853031509301558896491098820535645995535512495881113562805913140700448285836462663167967351373017118955531300507455162691618834321155574529039802448097027194464216654662468004029603842440861764588178346903812294507234513257420875652815474236940443644353273739381761459276233052767307921438835811843487705662266215895958040255229428504241385013320230556709903064898595196147448867728715865981671212607907059132932423016518856526355516668460846574778783655583783792897914065443045869465427949280490280424380177030611696179976794786097307310874520793490950138286622280636658130984670094149089442030296878596011394088301652589068946740229881280462723345624216886355352399499908149300691124284955769935832705050080884939158965086549660415567474512885318135085374532147056705218049565097588515011974424561542209363569746870780259850239370762506865776219373977511799118433100606693821794908334824710255959060184563448146545874876922700666803262346118479198371489910149228078026899192850656065379093279841026575568377031375170479547242129031577286352952306147764713448051551607082774990135111916382812170910554186142757923649342406003948382683076473424273433790251258819848599488844820444438322706732769520492246436316258207892920140820196959713642177152699597720112064911289038168908240102574365498469250869158625406090246874442411593087653435769629909817848285670890082509185279813556475436963846677803363985184095610524619915764081105841931560820334329866648353731687166587894612783111504390014876519075619836174250854885105017610807706339862161825557403657069351634675272199248221902873726096123660106424186034572272512788477468449109776539524280057444561081998929112811004491269464800728613192047984438242463240478368725145171221693982381539592759746092433399346599500377144765877728869612737397716935325991869098258420902629947254065848889733839413045386036459367596376737925237021530759650998208277277782799681437616191661212985976293949706880191128640907938464918429976964708867170683409001061529380964771997359489136157176380580403462901021112168558011927887175554069523265524769849077746661056311921183058993790156831043820383627661497429502698145591835008719004582658918510551878223244195748133578151834342266114793516127360747839612826031114139308090503990635395492449265494223459777436809389842774902403289199007821508682830381126826397383351978632238433759674233868124634462646813027864609379626050805591309569054444481510137485322019273917249174218781356892981896486090576108044221433468380401634111004215712576321635392172049679265083469404510554230335880319727833096934487727312058797207447381142530121073792471466455876193767268427961101975141531114347888424411269408859531012132884614236436883612521125313666844007861390641069191823830795638836411833712032963218896957149696926574783534279064511938981381409601385787498991810440623224053430721995296877391691537588355647545122777701683697423886593973976503405174271536066528676592428399862904570277406681135104723025892588468263066485204467368059394114760692082370016221211162973664596521710581267985688159817865186147528637623439484635203459522596136016435437218913582922808355014707790325656695045919008668852789026510049915717325889277416734183192390537344277888171676735236142474085158132438095107185660254996505765360596681788779733565775908573322280236125740264812152623265443469442182665689643875764953749337266556806870635515568683165742820277008541275341743033663527365187304452345290115506703163555086053095002935999925220126192559185393437489417907092859160529634672014700346077753833172084425046398492121380637842661542320030008093884297421486988943758891604809668419666398059317737062690487646916368561333401219449462184261491116039850591248400621994383632865339544405919632785221725310550310560551374028436551974588814301142643174096524895879274878607834273996744016671043170407357922532733253286215581642590043389649111372886933226926708652178886489501231560163349503081799646894630134368181040283330938163225397768534083764448528499691981844873558288693072143891629984468926318170698431325186668571383209061803873643690069177564744890827395059537919580220405061549668296744896434397269668008652147385585253483471781459935412341487885154217873227651519894791420456472864672709615805575126951548945291949950580504249042508542192801317752171023072432800755509938354019892517030795004046090183227447999697802455299823411764057595101023301957856125934583347753860476870276018821997533180996366203160317499265257049984804541314712854883646090035153353080586383223847698355416112411762321273120318836064251817692696156352549195291558234315303336504391409156952127873620088964730607242878967151501620771145580442981390379516550356028700733598614051543775956389542535487481527457803708212289164411677298535394326224441253251809210076439464058270793551142582004046638544255534617046221495965879767330760056494948091242822588277235996186887841689421340835143737251961676129843770701005966642805060637313077086612549857662109495894703915036628531470080864911994086367169999618497618033391926594604146272228493120330054846377873167632941436560836901193703212858886429763336664270888478822839131182069626364550551040403425504143459088879938587807155712550341480290425234828001926728469422893299160028819990671290013711796833592695096619691347172395296081345459152606422046882286189426613026774130663497245268012355105106842908436022521715065846499204675503055670696986816834634566140192114906099978251371555231058953759979934003232024176395742447125760149135747426905415188244001478173026513516101618926024847299283217340214446395394422028904168392848505775313493074042459869891310115870688509174818069266007667923095564836291552539094117436915572604223377775456097223479708389234221894230788831693923848703704439987122079952144380761724164104164702190167471734127115546205553405310959761801446602357801701245071539154247667158824263242322317329001171274597241318646948711231459732351697991782532673004226383313685048422032770025690055143617438511777766960650478283473500181905543532401646494834650989680111920198211318938892487455117509836687636620149667612456622262962600708684842864657304310199621611732957033176042784253152078865980050551272729970694742174286463476758715686014373180951503680079649774893518466133964100944352310963518112321576080693656465866120739226895849410654544980138320369022299007599928876787496866767464354573416771203906553951209778063344922245678511008987841157255191506194370849068857819716129869489612205349230468922354445948668515595316326636949342082712928071888513345209728939680452080144792823707807538494674133428427097115320571258387284616119753734009768800906212680199208249454509103098939585285495152555284772627292218375580153354341223999863887575222125859036823507245572244026215431291893768317967551878422987136291896998423136319268072501016301383111774058495357648686564182766440233328955720388694745161495296201544717044365291116090094116986124164196096295297039251324550345484210929183685093737459524871317671346614489504728972551097173353978360178853156188999613764024409856005685532416407446768962486004801644530221457075497642110557771914170305577563365447995796242111401232542552873624352071582929385160044366350318092613880353632402463707937997629216348581371784247555653275358928063426342088054043377448506317756658462777388293926591497424309613371806816553252308273000564394753133343910649136089848053725183055300713797549365892105229062520824395435585965402982003138091126340253900517341669051113082044959442037800653170987412013530741668594561619376055359120848828212437023540290088967408223633010975981862782184265367283549844687792695040370659502851566210787912005471489571012091956290655887884091099255574285820986887276944601465416821181127982977282283793198657274687988637428242413412597965319072796952548264640198529134427601903354538233076856471972913794319664456308149616828421278056398746072316863281184760792767036223863696292903314714896312756698735907735741151070037375168540598786549121138725515080549550191703725710798728457478904234522685616554437393548988394830579928276978975380808546124973497366790462646394443077379376906592870346028906263362884430862717613448725935628499376397973001045686609370643839665459137422234081878759426736405396922080606074002132482259119731243096804635427008967419872795778118108934301816355986398775776728925364959028829175928096626646601732357739647115911589562273344367356529744622447442996843219553925484318074410991725774642026348163423504827966303484930369924219655452488061230481458174240265701224992168700139541628086319699605594702236250929725330093739286390662963025788341448520597176794814078188688748948552016696555284565537121878275594788100764625801911826613837751070991901951548261182613008512876178406518844795266972387018054481864971410190285200749310559695928306191006174928828049517723261764573030816518449816776394410220702060349941115794144507025556061430329953378345874882156012944233817663444941773351812164182599301330955427275528546878544386792376340380768339693282592925259768671952541242125782704924503738520497978600206213309103899720512268348484651218273671781387079846483436494199581790701820071674845749099222630458325148836033558487632502111055831125521912500767564723276437536560431403524931700456197326375838268402940745110837438800276303036003243608592249125427196404308192347654050976307764603726163470567489387415053153449821705209295201661678076853482872244625196739005258133453530958026823064850287935710943579269101933156569091477386148604503915196389866319926589047355824370481426290130114214418260595167356887079788662626375767185876973968711501938284648779100721848474750763361346379952885964942797994230590574414622159290346770924331146863377304585698519473069860513252754349516430339514885058222732092716282542184023842805674062536305394885012451483187244405272081317491779315583720317987906295409505127227374766742785833802761853626976662956413026621874232676700047875898010130295787643846139436787367527685522152131104992020429261481576636074076019708511295665635307175610631397776734253243284704580304777799329019314259461983486158091723747405214028352391898260583365944838687112139869899568589868754996578775171330803391336876771984685015847362194188012224993388518544394747225071457745409202482657813765135128793229075104599355080225026775963997728850835532549942961170815081376107871355220339514846682306034373385214928555525772789449542440034883586662177141064958236670332064291069964733637778906303638227582842455673989154730397999649236271275391117449719804500348543834298304780362790297881282733573492428520682836242386971652024326620386504396282133607304177976362223891417089022205077191930288615227922906130891720497159860288538253481474625936510579119596048376657165814890308950184553157673426743357461550167173365316468687854229906784482279104343895599677527632923374252415677215321509999229254396522658521991500073805725065255119620032509990977219670085048775904581443917086593472343968064696115583530139933890709621052630328428965985422851895107815852999918128521900661467187150492925706441366617012891259154042645380642410557337194668536296944291598123422105272208757517229641720029655500280016960007675495828830431746917238056837413272936942679095861171920637340524700081965276028458615903722444134042170785279029586764336495312745868612618632218553706437712827847044210326693025317748152104735877327916701619514766838896430378909709679858072183203524304262374112812934542390135274614351226608781144001420658409899819982443302962719840106903992227565911025238332135444868455746578062924869592487824144936681885288948297241700613643471957917284644492998693247919845934541645973775897587050134603294681579789208906138899695517834174237550551401044748741948234499128925083824917163320974578063059364374667845124379937526836768474373863255941111030649897080961596401177720483508203506450973511352787219098399488650717935051203375811853366315365222727023712934854037875084764678864189665263331726270993258830849383037111504502834185378387709337584663803723255348686870704419029533976580118400416583329397585117957404521210312622328750296437712475215948741392956557278675879716147621998755244968606318988311361223955865881752244414560371039724521259326742468413503655520762387181172921175408613863059688423809399817597903854242347700777326133034238725435864268011009959148760706555205785704817889389600996337303168817169270279722912491979588057623962090252008891015414529073983429417189452286570891251871265899063814565140721666904944038892673099758391212759093412493550243564006330774682768799834270151570807645327646314024904746602994685443838886624239821928406359957734815139500168701831840293830083242203247848457633902258492251722309698164879141986517318853771412577502438826081612313607378108673782248892799765443119037945586825266651062608671599981239826072491524379979104868747059763248859060961562030424196427353353715365003107715181423603115303731330721888669842202659729281743199795039359589473013854536828846346691620110610665110095651757891211761791625413434015329295404775487313698972371778975802488655340727171583085303112073292373691699522223354355412928455149791880328840231708736723630460012885294858467795398834188464459406957697359081155941311332997216893718428299943389525517734369698613652304203846687157573977658803933616116302754166937468198912503080466664232489801733000653764858855589135122776432415443522572949139202161653769806613503337980200745119554692960545252702588751362301002807801646230913799795047956869529561335953924739769466568279637645476581333430343443689144957652858286825701739020002006871557661472701699600534679823703171867669190662085899640137841778463697042918179725550685912626491305435195390490093924776016795608203165651508921004848258027178254499322844350793367411118989333724990085083751310148339913205359405005674497939182910561550132911595422650473231167364953059285552087120222063451230907829339203748673933736367680554611732632367043039378599968001599264380676191333251428517213278073788471619506439922394368504601220495075085346454305366884158456377016119514957226300676306221813876621101734885948838053479259124489380084382056684762530750317779562951844924650728859989675941697435545864202300666991187461627286143773272497240398087148027665514041441361520660235055288848877488633095979467841154463489697367899048481203306987551613072044864721568597664852655866746622993643558695229235511859704193168528683465364016492628844687324243279908420708514508803815626290250497771780285719672722892429960544557340772368230484656472474553384341572414453908384013172525326445212728430941728757379535087275997187788184693815740939288744565080531154438453464093219642458124618041920448317007946274001416862442745604253706284374682486918405744602901921081736809166228152278731490289732375400935498972809500607790737840827170778017045945114979085443443984844275984075163021956604153368834999303606064598089694526918811233378588370539323791491361231486378876941886259537319785264941216532704706697574517335818988417560817881361592819072130014479506538077145438429546287246573487082850244464976769382022922431891840518878857193052495520378818685678492498521681513725853597391688549118295542104197730359609228215439479701810276086477902936215970104693794417103129787319734383796827410939662694671378104862825500027441316282214825106512155168633267564366444341702613920066686776447556723630375361585493423588737629088785462776919477034880759755686180232695800706604312080986335639002832331347371791775775841476955133315488535794093815059159878563947640954386757320014261273442158417364194906576628041380292692289506303561592226614843237022709935430025313189546397340362096954310185406954198646534521845073792492610476213611335843268973690553111073201758777144531875242789313854540492260706470465401627760146142143038714022026611438694062802410197673992415015370831987020800723319578911651077239425737447613095560354236391964577407890361261605423235238360627884670810873407104129200105682909025867352820719443839041234961242775871959448619196176075196201239389009407338169423043727355282896912232590502259236257902934759865512360416432378278843456758770086381346148995101112658421861507198562754421831471172495663671412849564800981504867957657895604328853051940387394810775815856775219169646468284852794268497460183662773181676810381303532562194181051573857689723297755155712439308773936407537709341262751691200022722641742542447458239220462735015966181037632933996647972445851816703126533786513389743271598330718075084316429917129084817035424367549598309339714616768995409183330635098442870914858991192236536644600194755561907740026709063211431100747671364769937113839226491650698367374180666695061844067802115765933764736415537145667657281185295854532899624769848289681018355371043443138103307343152477468617922532987551846178404221468507364645875033732986979193727668145107070643979313818717718798215268978649390462906037911446217214491858640338647040456286757045287491440331987735552912559686213324371851083336961931830414634522374087918525786554548504317919506324038261867141785652880114305151270786042347853312393199864699858311736275903908240924390140221521207944262249508975875976872923787349134600694611516453131525267826170063667835961976015784852705598759244409231090819490169940609714815382336335939417065876223903717542856171620252406709404736634408464449162042625513006396803257159036808089914111527536057395564053120735991816104533058072088114717666995326419982182866706260334069906935631808821428254383652058889313673893435928881499710728001992180624744377597041447180340060464970995726815009855615363615660078980631446698722184218278196995859160465155251328555104784831091256341959679374130123633352974287707596081615445744629275342214242426645812898156898376759806436936160953507182787389715242921703050286243601945198504038086224793354779203428412289124429872005541043271512994441213880323685574040870008542748542765310036310972537439296088344225918977324531599567466469232702593607200750519136453189493722037542420796459816721447034552610376961066038133501781709749331243699953856947676489249225188235242538237295469219549675368767939738187860493353495922391036249143940802773287501713437710357172000929002813674360000522225903656652268542096027314683730033550688901104990867687865187987330493809933377954635916280577312983589043192952705117760282511302048443260117739639179123334408771355655588285654465905122761273473421037287709071937028070353644137831830424243273092380173028123720900343264843626251813151536661653082580713315058477281210300684355936977531754875516211469345902313060126511696634023234801978371811516813002517528092121383735302197474640105097162966858989021499406286385511380605616616933227927975810005401238486596016292813385215679820679383657154207374127232897692222862482129630309510665591562664461833308180568821331457610777190600238914198081469607374713006217645647396506529906501564600540424320503359303895321015937815598790014935881853279751176783455455668185126080111921801373003797838830287945524985064824966711600394195051351336952818727424098826363772521858607646095047004620924984476917564531449403034659634240723685348498816871769710750715399353063887424353663158884242891456240466761658531227978270700541168738672104556455886963609091152471033533673326938378405092884904169073778877593079991808601148620964223452774443944304609485440792828746776831474672819147541733260565674926561028050664369748797397557595950666895448183868660148617672568665721593838031179304256533827140609889355728810313126000838999906880671200869921929893514073969775806023898544838156961412976545641816275017055011826380802133783486027233558068106680678007405244846083120850311694531124032316278987024071275211866938569171757325999029627935580871545151046857537940448969429078663197585372727361145660228659864057133408830798756888582187807352835451169025142059652208284935062088479992419409749247565229872865873098569668341638094230100600413390941586227087298514390940483279947612412877995259473788371919959618288833317411896332580211520938296633759763845741520322969992894953410107698338885994107937728754888775984919299205337222424798442272587568390274118904120606290445562506167721937077621866960421559446464733123030107412397563310277374881522450422511300206090431316974049515731109947933154106125019733194041112836942394269883019451788918264435350608169594079160449407979033436351480577997217232745969247116764137167608817022418721105199783989239013891537239188517524204919592439274334319750444501223699831892073590822086638355671061079193554352955923628813242015423665277443246433682766247025499838466389973937883481034250485166364455076114845639418996445348399214877552334178904648254845157410600696459840443483621485865128753620830761630995592555973145225726739134596334182269711259277168884644600555515193336569570780290461893123898788619799847545919777676051216054305263711431025146186476504784903679572555043681792789202079343200038423278576272132626308975621084515819093468119184438190562385568857152455884781134061859750479504725057210409684729928739847245704903189430236944170314051768149720019151824684009476707119722172400636506479102577792176429884931110668804567118305475225768431522683690705867321265163789758575074173376709339903778365910450659216833271789863065803126124704177566221865347935771879699506881909533047630595098061208375243135071657060466314586222692627378634321508672555973757941897045774377219846444423911156986033744174122016375907619793421898818951695017432002652427343027014823604913863495794246807667664920586712069970964679156000158005357941230673072719450572569781911964666014841267118972835667563568012570059486319326766034824740181393044053739553675607367815296904127950738310810779794380361565110756133999820351261689021476264897850056384395970916315606480001288433280491909700000520622057198596805703549801284933548906155111033587461657488233517145833164659352118399539156955067353532421841095266048242962616903941655756236174313781588365932478416414024391715365942965515470934410203368602589385649841945931741530893329113633396435923569702471308589878897524168534889588308597958250813523278909723204325944448312852029819883019655094910232295905182335513330347730926711242918637508651940885678395492296442333833591850006250659470784627170071492352383829748011370004853761685000167438242977628355002183237962984966808858143667494654415842375141708467406746733281656255287207648542677641176391807143034384233814542607125063822458293332972483342439378545910305190766066294136212183581837416407368164739692282381955758033203619082952521809633219367205958993962454446956475958370554792694423651192899572160756510570172306747755174796584619892997440227637019792167914040210776420429016493433643449686440341616231114035681060894265676606004341295330862365433316414369393297910014372712951259426466957424574952735770557590870607830601829682582803826440433975004281143861786691080659826094205296126420084101902117624759845616911351827509210725397546169063126013442733274310350095064443126900250603192885526126622324538485830819321048887667153127000217412944233561275713181777411219739607802149665351314646321756308748908207339261435221018654109792199527476603093716760371028748612679865194875287583591012045783654327315185611760018843515112344939044999391408171873023046611334350840100165759998090165287465306254241912033677227982618701333935270514492296986628968333489838468510389857556964353919265285985245788820995173882751808091506777735727786131470691467795660831370932420416006202266777610312090171809367914278366588284379552945328188842198938340626275388242599997431616725852280932327071022887128494818585729945038123276231257481775902436845937629006603441021935685453405967100373886774890011883219450813169784068853789601674436063877490874157893831392651355448593563080187340723038429322432597017669731848253045063264630204471211913423907550620082576166290911311545941421562455005252766822011818309661047402919555029112699235389103439234527734423208957767218664681886168602927039185212218981991360654858434751006735331571561702567369858662900013512321641065721173888466493358464554334817440156648140773063161397065059747752288772853818780174837680948817318263058922465160577160059373139852611194597499688864161797219039796663457168930477184039305197000995783275066551790991823589463169491529645536950834176192188836831332308917875917450797423052331882867072527115067339478151962551656563337328435498256055430414878821586023703940874999677194120899127921469291603978901193226156058349603508120867866103665627631372495907335415567009034731088995727388223368769823656899246839235828267966233153098305502603228612920237269002460666502070534531071367145598563566855829570591123768979886237090789334924787347668730589348733006094589852656202504313563047274936188847420820768301873564859094690301760614341867682942620801223242469274038354062740317560108602778437426397836136530295076357091264917767248530774702821875235961426421647155001189401785713006452725841405523726506962006812701636458206623425871407023106002217233586682906508263302323354198175464359368499687465756506345348000524193183473169328943989295249867733794050230400325973281688599871950990403823302816812700011271582922174371627226748777634237772806262188706324076700248898313765520047499794361900494758725771542892592791427497488721587753848233657219531145494799466121797513700776556745470810643501633272664685926709653219124051059091476831134986333434183460841075446203879132920894699189160277869358389529714946490849327850031700239302259361063402950481868344490780508264331877048907794269052750587905037323189637685733337950684008075409273605158350808709467187496598200041858017527594114868104269504424872657236737201466650500190578743703135804288681713577402298582159811345664025619185913826395865089324025290845927720680608803056265709011853015286073378944530973521968318917826090007486812329019279245696400756427229156022457366088066494412003590909369809634550598354539096541455152959747255039875125145536551811780968681740850063665559491660777964874949971072235646761298851908907908478126943242434527684089924220163190208616029631874061593133745118372751806225362307199410903190568377624371325867335907667337343031525689456609289308640915253174986302607809503594670455490819739311801892214765469856087390436515687556497541964097593891108469970373119702980597619997941056551551857737297279433841171955015279713680496243157991486700005425160358939741162241014396123599609450538824910953908982367054418031452063791494357280723054172584500092098206581106050858052921805825064705779288404373744918478708589125773756273382087664879298922222824770258281391343104096081924470335708910518839187158500829657530510604158522373509702795957486062739727320710694080618128237998511696260504989978421844204709113486100803042113506224333642531627483826858314986588614992101580475185964713501498970439750336173513900917458016415696133552135090738601815160164732801712963469301175248702378067781384434523028688838452558546559633795181179750889650889837834077109407015856698405471677769158148156583915805023078873902886384910950550581329449676915092517749940642037471149320695314628235928613261998622994283477402421638316991514310931184921326422373170680951071602744417139936500160674521431095223649994595623494395028883018444193280861706901328359582273825273966313520661081205859401388809794403531139213236131137755697422362206447982076289650823904454851192318990975572564510026968417123587206353697458107789102611420380852244077133935415636095865429551547866135758251777856385632904962814089962900787967128948753621503185711899472243947174077271586179824387910871853629813792376978543728467956181824869243487748801291622501530037460318901004835215580850670792936170000633422355496084140157017208868154229939566403734120595700029037127455963645048159471172614986321544445446075028875627402076436864596593689649265029082283251842833257988931649058742175614881897563828489286835197001824158319838735380092095101232092005592586554835333312141760498023707423359629262142265457382778865419623052660094527292445078000862166216929650464763778691720233660715793862338738515667636414461943047164379384327493226363743401326242611809592068033610587262182498624572387453796741347248780849377499947811855207308149452534700552312293923601007512263019401733929866140432775561448339168361299600914013461493465827772146205127810624021570370448393747624610765103682054607112285819756575095554701464456904063118328964014983142558329284880243535316939580429850799514529319867362676434480844399429644138218645217391580091196680913647903332833494467213909883713464478997634648961807867126737698458681874109359132391858120582407264788921298951843800790327974280208655313259255642161317103638700401318258695205191613896403669345481660819994745381764149684558060417703962015491246423885650428299781060142411760512505524643754267086108376562162122676631822064681114810136454160746079199382160133594138511803193856568228998887063488091329540862203385274702428489045230921621683181826466878067610270625908849787146929789285348920086293873392145003014466793800227950289093609858837754525551976543873615903520485168884316018234812973733864317812094968329966422816595922149685276484398274850533989829972486937479222558187152414051564504127070464299928423556092401866003149770255517026036463620008012837461743795279578451437111267911081400668903277968936157673204064547100016510961452633929782540807521852778228994575047792540200851212104715763371069648364663314428990492013299473842797393573558706924861038265526855420266654639095059082478569733663612968585975135960989643866672128112132162371453497600128997293619916463746408231557252311706164641910962676585671077948325817554579908861756506473207890032239489140363177765498810590266312236360759442278043206423433736286779941823587573683526026378066256086689729624293709721917726095898008061167513590100957808462512752774912369714864007759585593122944355505898086704184394633173469872122338272141901243070984488037853417154064163916244093163173272420646053674128104499398324728618493436512121494537086298486510150714546467286515032878527228620331861828822421159071663184832795688150271212323174449020187318551974231500555265855104678777785543022207356549558913934689962147682610618932305950993348088051909033332792855631803558678894262629146600374553329682611513364362909311572446672866508113388504433383121349903940551040157826067293733862671175667937994270720348748039522032765079296821535047369451182893156402414969266778511981570881898341243722933310999564860956886639161877125975941270642245120666557986321488911910050805668060067753305918751053997150117848295014145915154254491623468105343726214078578834125749108688306842579026066094519940338469778442831056713008058756213895873662171460814765462010753787418225395363951041756982424562895883719810839366852427011147876704541748924486667585643448840491979654722226471705228691065374963030068418697187539549548995413840039643797275761957629471996167350081541361301777555324254565990229384155592090928408841410415039522590822087246550512687605894207297247915337465700344302125394257865943972083314792871860189948687057245741008092794438234332402949905576070675043551415788514699953431009939987715728906526207604358834062429933206202861186603426354748525591363387399144359320210295100758222736941639123331980973765254841247622821176349804994863004370528327136853311782694849058302538502752227902486063614810536918411968475923402736567719153779457099034505453277337905032376786046518418779227598303530256802679280902994103950281479605774794023509697443421994293694290273760342454506534978255982329503504939109340064689434793203738068491625041397183525404461634397087510280794819095093987488124732367385292835156499531281145107288679127147955651556357621226988142471224705575645023067864525085525186746666778419802361319709404842287124856289869693935691150422896445800140262686563106103904053057929868275249703020359354090174117168742530191387554091410572083292567061875416749006543340367647996457122385830320707093530332025275327399901030086514051323844958376620577843402901478533447182544499111145475691063922815047246227178157537305975427035565865770826493652357713498866063251935726976187494892383165724305488295274941088507689302973246393705600629231224615121507475225231922261838020358738318236055540998674004778981936518611308984492442634392815106340563198648326107509856521147394418983974177591451439917132230058871492193027845603366118543858110243766621020633996927445878818626641927280207006731508605145508591404828725099440758282989564593546179539659030252796613281087195212877354306095984234236332410491242716890988359802018311913589657202906945918950878869122576031198988139750180718188916074408118871603550478452168979146118930593764363783955879207170163130073392866947100987172962819946197653611635507136978262176671273028393117891802632429698748561859902437387922047912235600357120309270009905608362959543463543306855902075642007067004247864966970228322360329979109054533034556324597744807950197266880825377986022612541907873884546305174681144557206088863911942407149625691534467784882216309399455408332356207100153219502302100209808267324850772478967048621651046751845670888653810682480140330218174858123707451840559330858711817632057706575602290041808843463165740747829655706924766005837369997580353603244708879750153002509975248465517733633985229396700706284941182517612981076996652321118162692651060096957573699223011893592468369439145854240540664989546711317275063623729753175780309308458939144418296112798297417613826202588747216594024538230920091295008072799175287940210255748774042766452120457192956650879542628503291698141890833272930706599988186572862301299108964790947701840832923084043469119289701944504062890529993432253137914804759668540803515740135011403699139632940619125913682459298324112582673306809722329009608700547165663838537790586551491952960716879693412803121044177712964762135851295490602794354366850312120112024453611006327805279038554936544400542883079727456625621037614740964210741218831381064044866675865852808214155284145099382885334671844786068331532401307229269186594121856198979581920892416851409710907029092749968875107991576038052788722900650977617277705856859234511085499605303949774460200872372239069813889358981595842121615051580351972864695000578718152635585707048166849895577872609710752605925791921337327442359432459486462227768012363560672102982107424176452263701276279403086980986416965547154701986590305242899275666944337101270419226561127709954889025815324122538409638310949644362719480682075735163183795305977029466572436449641220005137895401476220541897050835356052782624134712019767804036402224629876495181113906342304987284200359453703566324173144717514214374955213603111155079193100145368688071847522772564626826718534236425004796008466037831814781599165462433757817065261433326221646613044175315556536588771533092232322623716947303313768845397622193938306445909780134051203503377542820728051691636887358133679649522666224533955611397346800758449827776218190885540341867733481940156477905620995261252836581784943057754270588254216808629929827117978754475160499689075778965253363765103393408859638999831750425068622613332826539407917716455295689364157186979235264071089971646161844234413586775950398259795071512722095988802486353443919065951560965908411629677425574076089359144249990677348515196656471101270402432538177897215709377425377728400923467939257478253731589897943051968701319339673274718213639847205320204440014028378739512602507410286861123620378859782449871788240915051556987613932158638321556440689312235787099486428789206950622172859975487153236354754659245123834761534662731272924773848776388633134710624889418512731799342633206262879237468406468300395056380624981372561245821639558239968084883389891934858457805992840368850930468333000256000198770474216015177539325471000246138901468968023410440314972679564219566525590068531689927277240495089698293483372197195563177274128742458746301451275113753036842674339639910967959537530416307612660297924083260690017694774655499732739408187744151988729805934290680508265508720036359711223795049353030056449881678338104176263282694630468932233568699601941343681383614578238564945091681559623487586617317364968159340217161798613416820594099297097066229432798195927563294376767535964610972321147234174182913509604368682297964967862331754191960942260610549763416297483626238788962061348722671994215151031508037795813626886801834876036901819630138903784653326899053822775846477015454612115276090668934156015483484103060928963213336362875007348342739781805713940882087423125229034434496300574829761243297244839456669913263212524825354740814395099646685105062341020749028032472266253502817911051300270254178790648217526176775191271248191008927553500519928462343279552201452990261244596444472052279204842552964026898178187799206347215717664171297545228109423208147399567336330677421089217682128803236075376871112923467282416084455658587144152268109212543007582595839228006643640149886699654629430363979205991456006129788041401892508206243838472511335304503799042410089582986093080900333054392027607394931251779573352902058034526513168753071074172288380674138088379764070864287893482832666115338817660693977421433029124322670629203314224115720529235914919642888403985790503935888983512012459138067270687710302152451581054029720234087784628111047338749809937746854076347735340224060931401801454013889114890721943933818818691193680320598175043678322490857495014999941039879861931091012173089927000560124314618990843077984766836595676528800492046429795944962025091272106720602089556355272411354912232375854331830774332438815262255012852491294184049414344040446945409490339559604823232813916573406143374872252098607056952481663518473474655285805622044203308157683367795599954935290077722420822156433829199649990346144690218912829416011856990380726542983809677858519257287950282711968592149558627829169533526463531838363632483076557199914244938612841816993795703533501693037143970180058520745983234761462208727182792938538453433276635204294817507110074219093239437059345267707380493054984881800652947583403088133894673815583276904262013512378967284077385742896834510460004115658240256931757032141396582319927911015559745455052247480201666275552504187449548263950407065382613152293007388659054188894949332571210492952708462689062132119004476923301859525491005554880992389453160488941823744223796923360683945422283649196926377871439799279636300144095604562999394963065053999217169623394025308898202182684434327251578643884513472437543873916071134055951640042288862552922276589965720563954500230233625908519380283776881537530317460888317747242371492177046560471120882587416505818006163908172952251099430598782125110592599909192477625464846510103913953760024254524766080971955232276390513054758933169958306519914668389299845553844710562589658916187706414989955493682760560129546340153305070852579468154098629643787460510223597184777576442666909180476918880488141976604722022670895272543949255562899881713410985001033081656267399423833126102134876244719511800583865975377369416242878507896221583146836938695960857290348774684740918162821693698208138146477901411749845267685727168113582797789348477070083696974378036186646176879781000331262978610620848065430685976379079437981449747148019807559327403041917426553631644487656486421507503951324147804018277105818645402766823497386479122739115387562860639188344133438689534598750629775418109492695297103568199807078735998192952855381927836518183530682779201992567661592711915920620029965491856150231452699515983909004994034507174718584059102834983400554561148963071870880540729067109906696290436676772921578673084459343223633343599356635279939848066138536365683734360001290094493712709865517110706621092791540459693351657022857715469187348492126509342435530369242390614256315375326304585630790450591673187877857110793295768825259312473865074128612095513009540621809858113921596014544179489816487448203150647722826176517244238025184184969122333633292426869062360513697981987568633123249078707011178529598763380516932439428775187155044572426026494542097498705266615799458904727904713913276797545481518338833656055244335327459077443720081691007203634330847584511720366944634489800478456170901255190473373843878948255816907977033596131449454592635537163126393279120883105165264427411688064263637798986453995777305500040515630635951344957347960298514303910596766307045385660145497956501005145255087254119249462629476918754976590742993030008696703506860167212030972620036191065107206491465520637152822424476352833703177087519229564289833009835836522009977915541223825752342688856355354047410884893624176880576771526775727268166273870198671442677857370443565142065957382818337313596637232088227267184965178795987065824331131642880851410377541744519610786900366648804323466858851585392404633284684933503531476664142082352323479983875813729815929198870575195992948509588160889839200093788558675593452649869858438930795120245192590840360902497385889725626398636650878803028810076444826672783816104894197941957089297720557507987097346733478257579788797438231737755802814286864918219136350904816064598850213133379076010167212012066614235912527203716506201717845742049569197691132423903576223407010370940679282677903506613955869607252391674906227393939724227459088897418367033915111063152439857057639227857140778496451510176709288998925589950598302219131895533022181674301879552865049659511970327718276832536653172352186467475252048740232326146451196602761328813690461955389125942291018415633420701391718244672573001106705317159666592621609292679081359416851604185953109387070502638449127917793586254373999457953775492525926896767713198807002104028928742961360442311969238286058456024706692795864154579333191720080654634716871119551683207553762891510169358975625765172966702627650759917166492755664483694538016503744397529833046606528231754469614332096211843910117236480039466106947584128681225658485641483329707159483446837970963926787633256968271373589787092040321920641870703433690776905553902304319457375774946337147404107539342765462052806917767570780727984344716195572879659401572062447563911844078499412686901057728806923984866224490497615303512237646922987556868173397716048575520078178205914814120683377556834062081458998926746235380355099939459431322655150005975709913618462902697647266016730836088501113918774239528902913177177957383446514825991272487412935695821109045867216215047806583149470506093740017838387046355759133559797415156561300328218824842168213365682936823848310340713285412810547233356503618543698355915666284524171443464352397420396062632075057406381945876313199674724145047280751577358427744043857715517857621981843725668107351922296688185936907314817911559091795632658971536595123634238781842140178009532979346693214392109960891711817037263859063944614682227303741688718297950346254729360812788991049231823214580700291412896262641957051891628936156417282250230350894243594364092533885264867512328223151202320820849099990055136245055820962298649199821557356028439918016697897559737016781740467188609253614683943285888475420942721414799195729686699663770013152110545443826746198170864267302081908395077332099075471736688951028537556624815227273140646712660977663565655571646646588368022990576784989147652430338570797448414617046758137397890207108170612487071862594331801395534165991150194293679669645361616135195991603131239199266685151000881628595661411967661468497056196951720429183347084494297189823385373810669503102310756036713613766074084888112619000680963651243769861046062247429787847607705088115813754947573658223993832125601498776499594112196812023613838653139397714155813140394751366615338591165299705079641572118055776919912314848114396684180297358844659742532411229728645411150681629857375620546393256622665283018076211474210148714070959767940481684218810289939807099659118226048694960700192645838349893873225619619941319201002556701011736328326097705962053558186579956452718930914146586434818845962299255890316079746010006787557124565725395251215145921676129817770120470576254186935087071565366569259245533286187418652920468803549825474673672111522871148738436491861602939101858567862252255557029446270202942986581512849754753996735279336470359368051657071961542466945924098781926050931986268852243572765722016819760485429470542236916950610047902353883832962992959256483925224658663599877860763532613247349755968469864659316968752439924128557840087557637110445438238170279798503940792354438251515241135308306944995639246516340105983947283289128635383370621476214103477193351650272468700807566919441106784289722026690925491195156873762070673772418288214385498586885460386090231937284949181387553714337980960759282513850882513613936684445503967424116714698438486121755388644738013185498392834024893290646119956098257501478449111393889281398527931828581530574621537803267228812932251440350119570842357202464528135361564920282901192248640680779243414604578037820491982984005844878007437067054039388070244546002407988793407809332049566216240130298366367541207870933589773699661150353277032742163919617027056873193382394819134839075844666150322067524610846518646829804204256174065964852620952573280603010029299358234594643754910423139260034148524931878090406105837259765470495135363611858876196191475014951393002840877061403898719440857472075010223475996225676687027461366740785189778262469703454629940934975082639885275566170139779988174056780344946349766869656502609166139376296562675482742954797508154916555346363101461555003248207655056448316828221098228822643981657340359318611415125949909521602063524265506936305968775436151151414227464263696985037051045694551323399332630860608224733902313374496586891239048917546185113781347010764635206113832491873736634095889275748962438709442700450021766840947805275089267546543980399111066124419224288149336539064166141013444943325766127264021067539505180905309459181134650860758415454145255964432496726227467682249023829836488029016163401148560127514206574724404539963809565527786173198925734454330572231707106182897266429788429414596603220270333780561768686022278839396423698508653882742448402087715473338819495243984406714110380789574245135417891109803838411766109190016048966721447180934436842017265674391238342231173074752335020061307413857456029028010593793024924420933474192371211191987637229470203601870979320904982116860159611514300499685200262561355424923477945916234908522583466720519855851789438907107371997284132292263201977457441669703143685805630606845539233780694314272750365099524229689240939758701177206950682683254859209137568012157746359957542277759129372625322660607529183679231833356452623834778292411742885661912861700355229373331951384129195125501745926787035224838469702070662119330353072972915981554100725685675905087024062926860332722860355316490051305420469995668196603421711848137157139495512991003820166518475592772515997605897293220851444471774901215621065458377415092030269682966440646231998778308654769533128278708245834153703330921789712114567201127175328013395308492708802945425385162401121823987881393338552010272470196332906370643190795675287024410611259568509531842178787546907679673792389673302905995075309388670855051184430214577518676384754932077338470843742472287873263162456176451401667717196422469164941776007741228026658094265166856788100911770938804324742318719916266092298498388804167746347939675705878016780928486307517659242910131871678184357079767078540239797947215428355280646030094517558522276592653584880369674000032952065948880046535396758490461584052799716579268723864478980415782950540302890366636943823223410997540117789798514924391543596536597834589023641537535555883634221147264844935352661206794991436247144641668026201757710841807787897314808158719089346845656818919650093613481241689238477355005219846978996818339247712399773958750940987963286280200612106674681768415893784554158425697787231045887910633417620872102497214595048369351080261666428728816807654071126564441824555046950385349609061914499559888314148724908724079487497003950699257651071720898215762900777470566527838419933136890291728000958360778760468880050315619111352761148608579638698759149571710532216808690646300648550995598654194262130199713175555962508627989384960628462291665216319435289649712725799497585180933062157646015435370460150405083887515811563325559491199682317358600819983552997875003969327685701949433009190116954369489533396259509803284021219194711011496869008977376133338001626306933878295814260599592158677226335098077507645233320552635011770292641543173636538429164574398773551480866849261709026707315204052129785738987341657407283578695004218714474436591422263767280284473425640267535078416712298303391490975590770325322942744003436178253635309070530419148734361626492183492775151355831066590212201112039589288739892186083766927970242623186786204159690152733473320639611901650523509466164397166583695393796740569820321333956496607122105920864125969683618592649909188783170287859117942228321651566738430431417929655326839886948760633498887355126954618358326051284981133524072234064633262597798311494322422743826035991572462886449519233088204565590195750313411552409529031805843424362003978202976183552906552141877115568240953312661914090038392602260037011816426004952556150391254230046019016242906500120417292139856785717148070005312057752258153186201529407830804750826718008498585301275597616907553867701794516067593618855727184836308822574616265138126348644443569302649683806691270638187871259332562312136954385729644487230068656401744649163220731492198873848928799549917292021799142671349845728976782515807931189177368160735638373861572331897866631861348274465137317541353183067993599779035140245160999106715624904922525975889060025407849650167528473105207172838016199421978598548577058267991310866751858936935695495017025015331880657128585954737759302882701864147142194907810855649144156403208176945917896310655969376169387934071749215937157578951764172404738653036333406775781892818117813120095015557316301288430586091099399748658625348287075068787156742319909398104538412861005414362588974266720497245335167227596183368666757351354328853898048552678626679469137791965668914869594020456273621808266843931672364755703812064228451654068586024898962778403849402562267921605740100263768359979816195426010902480444977668834029659508995300969711309749100845620423017587730731571206759329560623732812843341410818890939903465607059696169033826082150716266018879077294071759826293846386012910444609540644270583169673782849096274720543357359043253363663866879004022513371581599327933605658651353917956958746194675400325426958660304557522885091742857701794209619052251305045652835882662300243112968150930858614019770513892367697573279307680680837836425202141432048529027753701027173124344570208520919701063217829244072470260165742101726060365944198316095258742899776648292039379078166155121140062580231555213902293217416652647882036650830155690338555974045974096724329720158246431136257223491874613361756053683554315974318568629567818067608222088633741150563570894806215239179249138626258671618585322527619416389075076622072956873636295074814673603237086769774212169136525076932655719907149482428873949838431140818749233148868960201527228718614047132643491910115321054339272131416027960104882810961138861364174046189655557937372495744062495849082267005033241510190198135840845101558416839102220426617128410516642544573113300042058157932624291461661782940452567200694027014063081481132136322420973912087356526192415467348336546124962667197637928793460224493685321414608254447026863250295720392989442108614105063111382650134987943200036737211780407276066040605920892262980875139416675154270190014643645030159600666723347725285043566182915598404826974886998446532090563745841455074355852960590936696965720552428170862326187840144002805655023906139563151353265358041361866901596296599695305028124280858829979185203463443212778374687507102092427339263388833550283587862361653273732980266088125947330271312887821009410097031315688653600501790538152310864434955098777432999034328797464136893320152201024307634800177277351281813931634033535180590171451377067272010998687208449664592094666040787523927800730305793299050786455794419479371180453109523722412503703308972217099954846417948460506215273929134613058047588706876900997298163795576476714010751416580244454183931225010422025529499533701596886558334784594272033124385125194626657783375134476824862486014673116855872090109258950983997759702994987251945909454077374278562185309940158602385514409238350386710235695294876463111832751106029550738021935416129946560366727342676036782438154539595415256184240503435340847847411012137157590945539429789191213110325818327584898814717464978507069632699316833069679776945095368036354984481238883709844514291528874095251295369705735018528202879157992555102616725603942909332298678234297771172160491084209285501746532597573057962170919779742221861831141700984137284631158139471461070663011431711991314917156983185309063296762041302275321726372494645458649358714603417313544968296947525019027513655477598195031479971777447868044177354597258333692451428572417316434366204139935205666158806388937278211307306542277532429313032976355082713321458664703670334432950264738584883361174706404737017349225017670801430661843590947891432142261815437840509415616276775827313503872932424202016462642147743423036977163714090587834437342279561611694165046798533324199534429131786456360596379791408227763912934354018878057933822185386512308266804786885828330770073914677712465912449381593740125360611481723759206273013175405955152054628631901154621693952287261871464523871930488089734122103205366039150890880571393996984221057323894435714970446357880575198805821491279162840902532366001202291762717424031649231539096209765078853825660979354054934166071103867852415852210795649835277321488460551089183471168213282904117048852717006699507898341847276471444509239633711082781424656087802470489373378182804365415507096032464843462977401788906471910257812778439167152750918871647021684379227471265845842878057389740066368070415406980174818088843679828090889314732156862127810548657401827015570362543781269308253822009337302438524430402352798674864577173368986983872222037952864193819576043644968687820147062003427778516854483851781916897196510181285924773789693757373355052598228283103721957736383871175492928084296499122290161571212587906509367402414689545824631657053402383145385077903715148133596493226499163488849700565096491365541356505413840387567493314574585572356966261482298658714012799424162000564555702930232685501886626392352989440242206460186325274837695162614889917046654213040527659558516508504627897627797493500397178724067745640380954576943862606525104664731796060523104672603207100304649451265369974348448731122377112203257325695235916680965086988911625091813254302546494958657681855747452142845221765939716757575044640028818807126372181937236752112169452279171200690299069082057707128513002913386168381118311144004404674372637767157853918226422471047979054369902618825320368456123546616928992463359580093751989466038574990065691865545974727790953411672835271133855916349119903830279339921222823515881276897914432952042223513688434366001209617101809101273418830469920260831019449670505345819494448844287549546338548939059865256626395237864349893346317040657772089432194098293456279453171687082458194836970230116485915071379083353114582675207474457149997766092807036917605598515706325259562770941857852664965139019494925151437161550838253295373703580013768063419111240966220462470034489463885889357091007676265875295348432354045255068224615571828176219895829600332167621776896392350481708200058818807118191426701875537352681632893282474656876505097114463168617958284731562049835141565422049344645320861547295914242558098464014420288791588372176737577635856862104977579853685284926272850249050298431745548039605130543469008231221646566008077500922123073688832107590429977216599990155686346019857244236252955029194516489076980963579385242601145571798754417225358625721797819161775345108964767368989675864753346645433702576476837075988026944350700225699312530228277588606892696130545997290089413918831607895920483715955268628334249872826517534462466876496326145949234030124022574473850615827020168549905666125180001186568492459718560511211236402582685183148819129221347892607996563341829888616463395274526724257135937850798861690218903744267348958852137729303945160269880358385472566710546697453752258100703782879960979279237194723289001415722696368661698102470217839803701637380578830858277678529410722217130561219102417047898344318476441407774512079143725571857385914729752194029266039036390341876409489713077833602046957007901552246814966178830714223667821219039542709515920899467938305203298113092099997481198512195695837083742833964067455268949628803914026033297174055693344147658492928862115169789985940773049122397625974714682499836752660241008938595678134949515789464457847435346259380261343417652944003540928724236902205647456835277797953873876404304302467626105958787667823217799761811209985964699816510523776818002788800634697443420706131474463262985359211405261451300080633389359473771372811009223457956069817530987022647559471787322065933161625446788374649767219184391644431388722157914752109427430986405899307240539375392669483461065469249155500968636590246907824159920040170171395283461139522837678792061020125580758289235190305842588739627373123628170695387531738225445717239474260931051893517723119112034453074385894164054635368539493018922093747704455288469392243141757762987773550597362731936453130184809348540501514509316262356383590081353833809364723035919863122695665731888427001579560223951915267862001151130023337171931930203362471845996859097931262853734554596040443701623823845297414451708394649429885665846540328138485166023875406995330059829553007673066709001572877010475555391480856207821681322708736228468406453976643538847526558667181136250858093492313603875335038394770504023695376630488462427743650226094518601581700656284667689594408074712733987522757835221202094477319742039202712100841802849216126028970662086795764773220550661297983435805607500208302604038087412655942107549012232824369492194730550955638300659622265288173705666743722274903966340653478361781385603696566691444816421404973635457670205920085735377372320422557358560420581613888349156189691876364099233442955442295850831224509464396178538167989384168553080282648003390629920555998311255957127067342851784145687086309782610044196837183339876038317500953999314538054437958961931858609972714240652229792377055787952092778144603393023555323053843497226326775178856399763650853927134787887221902417144538071172312885584395449012580285799687117268078581475463519676866887401995799669197653329836230841451490936145832873705214399567177469192783572523599480327112820412178990651056767808518062976523625653226223067756125234181976900907044289460728232014206227927077688603634414072675880100302790839380739632670555484694836318376830381935021658311284414011088432419452764777359510426313564711370019536306676705379580218848371513055221581249775279265411030741446185608955845313043752151455860688611211177739107817750962539729328694124533352514938767542851284914862113585442496411042222115235371930504113259788072636125135894928580069082221610428361252773745918434953834534285168074462877949410976831663127600197882038269537951955094059350035633442669505587823382458719983856330289767414152069874440420850782828730250707063642344966811311731742009563499834853443530429143464572893616369495640673771862017733094490049008935495217847016242396946846454994078692802078739439901549825267143675738029347233127880661147103821265950064707569870645631119954717787159342101281589668061517397927830888277146629148465180264902660508677717985072792736780596731647754685943089698502658097206888654962763791375214432161607006205142359148134021947928466923510452185771807874622716172752163137195938285617553782877564075529523229109136747586545280884323504420279486067603299710736612687078682347510620831734298380331152393391391927871035563064079982919333042601107775380740345488995217796633267355262326115086055511860382007460808089677370834101818742901153619335275107260915169504461338913374476583589494506598816084785896325890620508250777068080833332527176346161442011362345501854409516227585662566878507588546699026035385204475344479379413251297199346780766599731218166296365789267489566696294772823035218124336050395086685041963016781260118475638504225127344585558640150996325584719903783879036289679100711978993320128135414532469172891210807219040839419476784032373330904311670335479774384207231512261420446684551338332808992947024895042896664211737160503952549989482466286841918035487720196693000124600766793434110441133094619953981999868017440676145965880578192235251419216655799082079651455709958846433151394785000008028936301464174995228630392055353654937782115951570710172139564830667455977563296041168328999404943041648350642573251220916317256990919893521903571699407231063003563844255083066964540134541845836238805173944744023448915413297890986035228860624129479416059486028452238756120644291120814070795658445760108695550767328802850250568910007306505229673417660644161618295382766017554037104390395287223182132899664367147545122843106935406997668625590812817840376581728815275273398648111782439385591875388404234702618915683658697583578738605123863323538931832195452829014315532609966485043909198954165433448121836670175050617874940280854891961140003967086134862523931252917098875691829005909156838413546629023643800003175950040543641842463356446245512939606909109114116853726127739451734024048177236150788352904883134077924323866137397011783380654155683563730508799021519977310015975919664523578692074986158299921229221669642032073016829072986463125479377776876452785294914325763147843662925324585904458495468826055046188783203369830780442835329700478319577357273834670919720066571837604079321665596223319912386225758186907262412123062467123516983374795890373795518247352711783287755204117045408207927188891505451515926908824836469047884481375273649920619438821146616228193087055250752908289660680096224246182290579419036264822670130679149902174220623059239765148568969868028027439232234991608598518677669508303877221092845691315245583095079546994379630767665323110431147408004959472994658677521869448140579471410860435998349002680903054757706132141507820375471805184956993189436424873594484085577075815863124587566173361537321282460047016031050079553716227911777563450690022593558322480241006886606716455936914628195543393811261668260321969666540255039270506689949650395181969003386073851933431204666885279203206507957601585924816052762679705914792048940258197597527447537909714252322513208609385324308360721950670053590819590637483530655836871908324301681048411050830941083642164640055790940174202639109142075845941373363310582977391577537098569513609415355037755081579606471225258362622586239591899853294478199524065655076204129069856384114492483769835495244579734525588702951026898093008592066033637080234221339535190665038788820994342850876484237666370031061200551566946352337177408277365749948488354364448710055060418880738494152051006700885314847899241143906780949651041992877540008187444516130304195174898547824269035411457745763687508932683428423799177146840246253036052912114612723722224768660288062218757679861853722065409003737636140835811540954565227344412868861837863502452523686908230671593078520476995715886267248411166507920025565747444595418044574050852217567785014846609899049303917550318725551684412841914891116086969467517391416532682566473454785134946703065700988998057597975424771799498773180112112099359425490778867926043929087820669839233145722397145341901049492322882364070638809109468154964131677718366996601208086009641970585197856977028797636717755403848833668689424574405283037145028849944416428303566006724876454437307378112962891522550939934480433290162749942781120946687387825670891972594082786969944129380625267737121864949750081049504579350367126076939134281046077022168026326417254757660632915940178705119724180279216196637512979925315001664181399088721738270235497087758941308591990642134657375437767094029599132660863285291964359356744351349411478446145356036100628615194614307258979787408979121427249234584640968866505277856046297938267889101860918420231566482874311068062305566256507336285432109162171081182601320487769639834493245028117349990076297288991617018530104660088612372647215338170399377272726401767010983065651937931645461954668832106215974060502615915864300898933614013200665760676609168336847000361963056807667971491152783056906703629124646878579485463813189699452174352044478747252423374391506249367747864834838100923147209215500599730514960115022470720749653086812244068426811189702466854538068369684000529587143439922701660756232310112012941060054295341772720374878886037785147934184773376801911692413755984023014068768085995585511900094138203805910469090989329649357474196288627035225803082345618576991330737170483941717319530753964180421629006567760686625020576053700487361680613722577750224636135772852944496353547466034070819478572390476575412791692545729772902599615764706540846916963661298670924798967681045768556105031246161825137146729171332302554939364430006306388930824440880563820810088018884267434618346004690559461127226037105509411933638591992357574514582064531510779333689932150202964360552039977306376114696504417880241802172575880609906268362060266085926496874405872845753170441946792769285609134349423406318190791634136034667181368448707161944686402234522086099590559729537165296203485383800492113036060623835771337394424483711867271915289341252831952688194585067462333493722249480107631021785737498407000385540329539506517495476447962746775020453398129047242970975786414401952648412502828617330322035099872746699489574613642150042186880509174458556729761340897470473946310027635818930042270094802469524834221262398684753125244486679148890511505298096678574553205566026503433109753994054755965101638722675948348142911878481871622312260458909981759948971187483016735824698725555459669153510453973467703734217767441245355733817443307384669233800165515478743386276446155413095642709182419425870810100533020773744073355505116389593652319866333632427855816869255505485800871982073242929427563489801069384606134600018557633074757167487402517984767654260814507439496949693843575775827005484611599908676750093146951768199968142195858611583380825349200301250392242655462052044927375674195301034388544345516803329806500448326810858757512844494370152751819351110859929621404021494993055862150877995010938667771891739450266068584493339824252872942063052316829091252420918966163667225723786489535570818892846691553710557180585542808872425549815920128750319704969773495093201926149851843484089014536082314787654154212005230253598473214402427739179822669429618234015458086109745373772815993445673869716923006339328062337547329723453434429810368682172131945798372903962942171588230486655568454190403998477049532658686549606671431195038243111021614657328135665081108338720202346611893676719926497293352479907150112842515575211304011405795730067859654293357032669781250914684001207198269522974271453897310675355321114568210151973017114542779594236771062913526300521334217870419537917164515344214025928530720000819241909915122301615347449632434732564343443583215789104343601525475750480262552092793758742796590204541073101375525388105890426797705065619753072886835691960957819686308733957130585757841742437592275141645150859425531550728450695591673888918924143742269779053206890391068483283867852400154339426414494686381357570814823433362850054642830360179192767390116576316886003748639605093715326365131888333411543238203010378607684364646597239796113242348940819782802649103571171569850552112500883516007542857527940909879981004305129662607654047184658428939430245798807287736268467597899762607704332289516475808706730909227764987495071993613443907846474386700246965506013966999794347550300026341813589042109599052024593108436296216777343351227415996784210885425819725874594169630813970528231775248893521459783957596268411851668630000406656184717893812265640891038333531855772367278389315322098871502962213265275799374062108795396525285814050107170547618972831644388207111728030062423663933408716148675738366571839525551209788010418806597660034719671191337173652800775298402997404911233531421158542790373224900418051316950955817709912338397801303367061884280033672498510925965320594996647414636688371790850297670063503551266957821068705205158107862716945283119623484212435727377683946444207652627913625161147607177638057233838769569781942916482982956703588235357433385887550318877845305243424846136474934646987692269611652125901290382428311846419269170093088556895935205954219801076958480269311557980493451741758904932470483603880191671874876027410025755853939636514877088248526590121975091009416234085099704592059282671720956015777313019000212471772081346227147068233656873989059730739457089669334380117951916901551680518079865215476747404828037192943389412209719050453696955424292729259450494710978085265655614685967499585120923979259240200314522674410435221654805776187737180660404766798882714461004569651279989368565524480077730912702372097193612052454423976878858580136819118833295203741400972795395274025988947619212189702038485283637351388840478634872865157371193248290627580171036806034211399698124889772633279046786628214160344418131829259757996937298983987696771414542589216248039012469440909020826527179992092213686462037330669754429566733287743068310053014606045109315820430797172968158979987706608309001423540931926318482837255732287824761217809951956424089402793220602759382534552850703757000055228449332970601652545546550697273364634109525536313497172446436310141273994220773973668859370658229939601477123953200727297030321218810937029235007170237514775036073507765326003268674913163387021643120637605840047926964644930005576852632005228210984537692600637550526719106511130805274938390675261955773964302927861120817270718076286453786775477872540281995283046732859838832075447156752973952148572293048224120914864772369725700178103864351241628476248678171143515421716431415198576806771762279516427205549996070765902744885982629563863247628832836063757133121786586405335740551431680546868178024202833099107824034986368022828444179685148883242293639443636092539952301556282792213205200890316471352999040931068718505053886515137221619068814436603758304137112624989191567526184624304747175803185104504119130883142457835603098691202564674528057903400954616742459521951366111151968737428722359691821204654526894837935478569116773115391107504293576610257950877170150166247386953355319272551784422509994311887647591385654292612549118444270920031799565081786146723388334652963427289431986526884834657960720416354334037882222019245450982510547450472420924597860493107530160238673918528384752539144230734256497763082373066740267868237867513954517897228736339653631143193842398960820469434786639381731008314583240796651292493354462651933576296775580705750297732783746886409825073111000590576606126123655648526014175440166130734594401846330180305973221044651782260580271241395846866295682757372897541559553133419401046804498519743161764649846307636340105050183790143747526211374094512282142596997275062082920845044006136634885984809957093329995683443448867944238733011733639369059211541770638036682830784990715480077505867696043122710612469778826882653143774771359857953517915916506930908732404327883881221460473788594361572183933457129866283911334949808895174570259311281458214884013836157878767655984848913502755791878721484351348340831241249372033367249093305791332797174021818660102572562276485665458706853102900496255280802295762892401695510350900823659201863124488558184045545572783659271987919706013862798617444381102886072071165861854368829795069036159119240973081209817966043731528165684749916054859473896245977017606552993976971933438443318650383543079893277216076955972737153959344633442039837749357601644020020510592818124872167334355858505979483724706896323377083802694114048957606144732704064837965315611088583301793760286339310482994108857104645519789685406409064152724496792375265575257373250112302871413567753450560277827975140264172225089434333770011549595434533377140356071390751157999032786558316970326446769291772187263836187045705866049113581187687263887406205366131595489780080088011466581251922220206620381885054784527333948389589478206707976658521881121398478019038826233943784979914345434493922158941370016166336629908733172056150621443861251820170436159315305075820292738479604797317610429679067223494147672985363637132592729684411911165206809469347255425909082034092290016275006256830796999919973857714362056141070336867777854436672951720043351393979299896772159225356572107151165267211245005420987052553207979802203348159391410012353992566784072146394239571685834833279430196335622619735523699546489140754265210398983976493938611727512618875180792719871474832840812936900208331333674843051636808514029610017469428271136799005824509471345492099530005556779945888938740206569116920484289297437937821884514911092578558572384014247795074071971141398063275660538512758835489653887309387205384139627796280304267165008665943781171323690663389841865425274035876128914169473639538075159466718882734986838214654774608607197807989118456079535520332611519149101754590552480374312995460969829455258797139825715136596423942221082446094568222925744150761155342885307813177674174070574472007001194077332661889431567092513878335881176779401445035251573239622498031015430900989016510233765078173324674347252723434603074182519940496549418733929549716711855863496652897880630427020987898837890255266474394675895782922620663698627751256828749236459755207560117942402903712579892125915645758255095188096898261432743634919976628662439866159581214473787162400286172993415240077302989990906411315372937670015795243318168574643339019953513979743872838178297689324253721826420800808343106516750994192519230670036244761675003280356616119716024979161343879938499564035122115992107181731395821811400690222042985369262437304842893520828147974492765933104392182304260867680276697213760176577432915807714450467310602663694107404636856475783248463131103265848367096735976933896259037446637355316716157197363768241857460708949225648169019868198789687239432879878713332201905544791809865789892501615003144665100379237977333224679051711578705302145284747472096558302922881002504642908497508800013076408794123456268678189750628331678992219860078307506800302302594014118219391639114829508340133108370339039966345388413004847460906330707014514270462770807033143121196560134321443189762793219115378724862849223990705678086342045817294539067809725256120170415565582176445798224609509735233766942441720919231640886787602739371321015874940935442617086505604592475825157401686583824390552618147136914886977842677253827473707206299972668573505558974538142538544594779855804673161612154596532167949387698899812856295419531677357139050185365527912078131452671447427301368789330308251402404099481188563323411013253310042530921897988500428688836155089917144262818230896097989260474089543650275196336789106662385987859079169970531319013585411958143346685820672130603419274142310617741275292732498903695541926336353436972581696268302903717372236804112478285062560526138646724744778141204934940363046938249257726863754279360010217735365366840373391123555549679302708060379533762064998745019609940985954912485002818348178774899437313083380659715531334336196237691025646629194999127648299149804009518224017221987137984344619755213349372771437984018493521741152703072975640511237749839552271078295836128922442637373194028265374734010257891051379112107950353145131098057453483161756023194215908685912050129882483221147631073158013376906145480236963979005289836154206213202275872314174150930020830397377184969529459021959359070251127353769682669232244713962298772474955281926162609326412214612590795732578494266337469306455977428352004945958630669999207775948839442397536185976579180364835819840098441772195551210518839573497038307515187879020223697291824105129129090133664446801398611487104486014523859777136035011938999829726823911520986244680869245137031925112377376945350913291225054532506798793251430643167952457213244938928250985335888091559882225547671763371636034032910205812645039449504717573401226818984770720823475971670816459060104138434145698279942714970628409086456734293407119716451078483717824703463110788385174211621169465786179274166114545254308931823065935417227357604346017600407296150372734919790216812749796959812608459141766427227438938287207609447988001006351780772061108437998923342896995951190948602957126427808175500988054411014009355546131805003243688225670379961516243277840320735802194332349974908340722211165879534099967669302666570242440317943494381942068313087458511051119619994370509169748732895311001900180895495011603241207042183685733026154681355107400368312871173378184819072971492626920933095998646571421607653116164374728996817273207260508514378755499772048208256664205305695763388802255788108727724073929977326990330934005779271982430013810602493689202583517071145545086427209376030413694980892761370140242038683241949287020533121805485448492579957227012392606011921137964427889466511619785689039823596015572482358275646529806758762052829286368991418634472649393199195120908569124542547276714273872421059045469638471294140291030217118582612045035402188742577881204330277010719263346814624541524530427416799118361324752538458063137384942740744705136152956757894984528737823979834577410979985759595756369166361605561932411561124811022723239703124694022857326210233392812747735289707994377885636584409757917666469051983359797810158481355045862170523393332212488042615639107060239395398498000351098691340935995320409600677045023942675194944322911087557068780108035640696396905475715266361158250737366043376806610349367497340253027475810190386324449265680318108222419149991983252686789890501898971926677986848832050417477656941377807342152380661316826386731007414868582560915378445774142406780641618628820075040814559072448187404682277056270010905396932628101372301225305292977316483716212683154432193540731467374651699858518521316975024812815763219672642971988910772246911061210606707557363870222191709607004919681738865065947615201527463520457310334510230714875112408565988248872591832325381436415506036124354562378230203604279212044215214233323185892014913932795534971779989561052760998825008500437786594501336960519914234391327142470207600967242289344624517318976452290440130601349889590379962033810074703337697477867702791305666268244695796478782376591385780911860156598468276080416477246280192622176619465428442907092926745840336246055580579094025735625655049351790744855174054441073021966311576069096714560624187302829970603234721149221686778038865772792368884090094634769336899842138670027642973316906219133822737632719287524884736923488397186640470786549027819309752509257330949840360453219372428417461811867789864902284679015512645241720710545031713575756395604787709287736268782213210710509995355595793704340628701079354402691530410227632111628162013617324805322390706314005674083047093131107507282235011507356126684654609584615486716706902970680362807049951775629169975170364399886165358989839060078912604805064046822662654988074978283863437889328065982423512696460996869365867242222950466981715686406066614881898058398157450186095187182949364014067289046547275541375480219737952721135793375065933549816946255849974542245609753548172336241325359680642650156729926998208830422635315057020748154919891253528644845503571836120166863801416722216755222708969694474623056502728319845625437072743442160391995829919223668906412907827184973535899012899956267133384230978718909834449924536297317060669484109837766201217307163275607633819802765620914340199544547545064279297840913987310195432756793265462360342040758712094600873304149255706767975959921958277856971149360080051461162020729237774983678127261505280417658216044380830266197712077696279585163041106812555574625913533911453769320071717805615354948564473242904147961123323821921090405047981911621699904806256704257651919479037433609571924646258395670946928738146906863593734719758771866997501503651907693306624984381724433773442083334520848160909494946945416806851051497008948806027572002019119140614529435468813112766478566361735169555224744633391802022722536545844572639122370537217778747012785778944163179512563333917658057891039218600505369463160235209068293770756103975588308808377352472199212636960465686495883175474713007283535328800116479884814612263790085624876115741274854282907281242065331473188000874042018998508204592406629528131145488240470794200548186097720350638043211298572431872894848436011887982265865137125574538969860754152195326922949275827337897598663666042854219591431846282579422159602938713764439168351267520216183658952708199130304762180177252865478066333331437548730372945349351741756347160769525801751074968132571024898676162134661624053996575341830668852488231162877569562807884604326767746656759817129451668703769882606187362245719119233798522435852595530850796432616599124617955609133935837819546383407537754534732644484983331259083762457075017319956940091165197776210137273804380009697286995146481398382280440050199525291576525770622873592407230971715644382808570626516270997363680206410117212707900080611838263304257176732570522264481839002416781584377295125037942993024849781638540102512677651758261642982809950591683492213414550494942408286081873440380390005574712054386328890607579725646435447642207772610346894406157101723881773034948441724501674519364956148143477742484098716094607840914579445278134871827184606706730817389608778910950169344683482896608693258606583545162574490240092654210815042598756596419688614251190979837841183579699202455716614629597505476542359133678463889409015103845546128086360491042914106577232170511628513540359138254199343915318101560504013850807937830040654740021380482630805088522434636350094877813061337831500238152229739377023273039651559818355491502831326333610826977314135892725084947766099678084824432605140795799662896703320611705826147468543360473158030114059813352400334405450707202055982515002802444482253847236772260442349173742765262394718538336516502294998911311179478856047748147959549563314930274625221665053316596352464182825369933927199540964133635160415342633897800940021108435163964211892722543303122079673122217754544492481439279545369189730682322481760945219824641984566966003034297985522136463926999676746492448526508231584091475036867017093363897893253162990475019340531345042618642320038108419896366329351047994965476451654363158809317527112526419118551552087444303000962669183512937980556723307855413111565554730312204559290888452460978017459019207090775549729508409722024995586645694741643388291723699988041221787215105733856659925938129813262025836752111389963724407064941483261990073303798754925189733085038756020762613405376339427570172982370415935870639045861281216421092298560590507713987168366588378959530298697302875488922445977363148454412416477339155953347759590866823985200303429977526701264628005374759666480486347338260742918346431517937689498617342537334218705985617192531868631215638038350826349079958260080429367775983405686543316903541028514192837097822085953887606103155243876449955445743392740855524290916311688171952819531611482732647265365896076949553273019170388873919644597978732099817432761959729405248761511795123805078894713919340863124881441294792452116727098085647853802722894069750668093274066238515176590353458710655748159018635604319280494820147372477670116718984979050121244412921239064588387009108324087036169077880144712321398179061663168539300734924352429600477702327286697251480852399849861368664225373923185064525993036052113806368915192972876361543581279649171853695707479180260803622298848779233295003186801102856470298040128228563935047928794524542840242525462670118004866369484525734002345221228157278825566236810669768374053308763398011763569033221792794507468738073882134395281031556109206289257457971300172608911408532071217900345537685877139610849515992106902210866336325766469616596922793321686356256097854647674531470989092468145956970568446691993810310780746004511545398557094351437439986652012319360598823806304839859226217215443756827354867140702151257520619163936071220564254017764316470736530231503138646183647618176561929227479255343780118664272320971090118640589156484328135317056214534779286777376120109423661477544852279411619476921394691790457079011239170296492622928964881589633929108834769839675919432268975957298956299215064262888641440026032532571263107363961162767812690383338869431297740415217420957813622498752413463608971562905408931114275218840645550345530080073519273277437704676472589736139485224266899536984077635357561596754513987498907719638810736152007924918312515796813923506939722809240141846458198048754153207949672444846204361831031155457720537020478754038901451815600628650648077878952024570897164955890166841937352887152287688580034500018118331201609347199661662799707858256323383218969810530007576840035117441407329598257479480374932856169545002354020200434220472985395543502813559273303565963805114240992507065649513734434143827338545367589835041794254470018048675379402115665895610509683033024054867552029658081783589713036201420208633917211505686326534821115721674888513236337581795665468656445923823210125607713555731732913188478959260036359626923572082966799441441017590928932915109790876018662094253554571714037642072284647706530336407896778817218295365774889143766677320293056292731401845956009050346370602437003116204334896478591620009736283989583114164337498493026862871721550387878160178459527809772171811898526875157543715633504986026202280527989002652510512264996646149451312702508480530992845724548933950497344449245440251666575041725232838303308543867084681435959434792001540181841570821530527905127515433571701004381534511961036549976699704264038468407903771638122230304269200129896851439473375337044103598473074368724177033950932193353570909149831313276956239303667332491861213005543426278237685099621765827224262590265093775118877594881173827929771746415908614319584532773324999612888067334586482825788173894088706695872498849339170778202525096213783821689073229430695624567339594133355818141433879098371581362620786154937260185265204588213896946421692245864921311164246352937131381995638855752239588881507480940827331592785670770240597696936190629181294122616922641958092927952829984153522095250027204456489702105587302069760509370187328737807736375122278969323610478193346041861030434862442386433204437675234046472376456129062636873272701264347803779468768808287422417051312873892317031016342118564259326871966397740975899376835842678661421029257468091912653968082002225185621405532933282396171418084306325605105853129931096103086828241408897686972925860114325483899618519368512374969525456480299556826756414217890264963860870052924420604596937816319530745929686224138089467148161559844978341206872271498521253183660536654857231105658528239679966422980060144984912912244313724261151299511954312019887246339543265166618103107542951086155280836219512262271435069714026432234685705520478807303129289862620817747341654716880444712417921057842174762436527655507436853465072549890537666147448232857166407193854327048517871826507780270723227919453743589772205538218745249753584850110768101615266259965924456331860129102086019505809186147905245553192880464983668724393920035880788085901353730320168241597934739900313863347534541765759625830594815306351984396154655115803967883336600417330182288356296020536300197442248708742030997016833730212085160674250312977080862945214426040620195709100136221380066911283090286061814251359619889582913508484625275202244382213026917361685726126069056332610452420223935498781660770603244530881763496460580908752384310884840268491644684445254488787354004998475453827329347712795853924170729525007844767293530574970542900254087012992639676440910767403341842288304672785331235062599491342148942373654359991491648647865958270632871202094219416076904273784771258019558517549865680367880546755683560996311956728241043726305976547284709180381622981481462291359490571195102073879375472635483017984435019196965863617536969181540429411728332276749290673327575551841493769278017830094270170736754229542554608848578382366409610553502916831823884627777205867467206415729854730391077216039297786732225863239372594010750502559420127086788678233564688232569107147790742163269782527376842191538236503943597340215451450548968509285314523987178705891585612425093204287339557634325168024381967035601291333866723946554449939300754084180279538344088979419358257660114642715965002660913328526279572438229337206639031352628857920167725561940388638159750809836655411647900847421495538058723736062682728434463027107651186759652795609263247704376731068701965064746005934910044623324061566228330454150433526535961295970935672410354979531904064557219440800635120749390335858374343216842466105213865202860871369076591600386941934836856739150118320290451355722355927792662737710388151815806466668629357565077092283491439885676988360704368056694178715120577518474834198962260652505256502596197026503509898382876700365396317434569387717764386653577579642624460243215945511102439899471773047412869168962511324675121194868078565735622146830312806821246529594203317112907722320426560922671584868831969797261496425129727251361698652303520545052163341148450751460625923246668685531777830060772350264346456901340310618777208261006219429291227360138875398877937455761431940880998225657704694230392690111639909324476499212933117398207514111543057543482636953740325117323989209915120289246118947107676260521035650536625230313542290617176883281420684501458639244461953850760807154844518106717705369460523173234742431539494192332578052496529201181318567212784650875363277363155697268182911598326383142419032819156492459162740524611159830777396884106208390674504430839475520185057984175598830868472488574429270725753087609045226259141074250267821299458872439529926948850305094114064058090814540417796153797225061839301592062027869413421273318251288605236637526738367968026795663118779764972483058708979762990803816252067241233711409139338745023647987855592333951915051052592496677444228025196634396043574502811776982165434974638386409872869966548599205452860708316906653569617687733586855309012111069260140750740326604530793960324624349567882318009428624089609484903582554057104457682152452578619090451903206647684140149270338723111760094766334369316474351964414042474845578559515453387028753190778544598249295542374169228400398762690314448285081238371014257724493115239353909417967146150113767615363300112362541275936997171237883094526609480768350335917123103053785198223688963006125300701882665866441008557287821221825076713916212954904172553434646432320396002575952783054050284639680636659215370360100177062797391903730152242772149234215689172955593650414254974832215378375683830719663813981716244217075735944538737220822832714482965220970777125194325449673753014052638825797983403932400522055083609673694778247235334213638735334839098559872584526840500189332426437690826727317575280151165820578760144008475231055209184179936124210175081552235733172644570426736849182669482350728479203491251554900852561361157415315743115004687182868090569534334072634451688430527242822801945486230266056036852006720931499883803930596782962142587373417231349745792569685031556104285656768958013547995624285374969592117702732622383616888627846000795979050899371835929500613825408594169158049919877806826987506769706745312117116449481512976413443293554319759161212896717347030126506691966864706276958193631004757941047873124417161154920658327009050484895997900295551611117543682252350496212262800864195456848979153949848077840406134947237117267996410753937752546262474746217228047960273051156058579196611649498921681912836136305453868629889683824391538510860734625323580020458682950684802712984037275842514850398059656619861469636641782715594977233187679430586504400655025324601868915585410416562080069308891099497215124747638554023500141632609838390014757216751430570747910989723315073760737975982495875207662480841113850272976852253935289276825415869411288724058933927219379897164422248001400292123865104442262297709658544042307178733960903381879244998040949227914429733487831533167751830591389980614994098696618701224619592330708716630316840596564239840705514488955081976056701031978189262817912019984253111293465355158367698322871127232413849658154106715342788469089811852818962533652134360566961180535237224101877636412045361605977198015791357785326769908165522296423228513534158651323998545820839259253008980255978877689780309599657731301219638039264609040389715087063335356203425028334906211501386473504710070762079425032876899894247568426532201160636833011385830834947546358173295803968701782073794095233167312355299217521252897932155438638792920312847100715545141806384475942830961746268298703446088846079115691835012982254755911298586904565004689225527959734478697054489540888752353675278620498199800660271079896925223492467754794635690912665090663197341552677530722055157952147697709369486167232586941632740367746300309670916879581050776389576910723606503157717968983647067445494760198288065323214425732803825244723462599942005486171821365280352891349965879669454583334834661964508812199343837803919155677084648895086607661673964487901291612489084331019993819500107272944774325372456229891829617406325282037796322643871649471154110543761309374169779709314728905766467742948837769741792824032161467763984839375357340019447549676382841117935486055619486288488629971455433402938181569274723394239664681990730214875996375081191810039482360517575051899475631161788890347857679009194567300266327742425453725130536077135734910890557709425238251683765637143281391783256424497281718784193015725436242805731459204795207793312434189450361553046179207841573346379035349809855658660477606031355252430170879368148326919286369523232660603841144032347487348859086440580103450498456949705530458081267480772874772213328670264227772822308742586761558534168577519294558262898140457567639621237632769825258681763997875412476325121323785300912183996959151591243779048963941938235965899389221083728964051584539307727252768750769771260406346713514079429064079034947719962585445610531825452042707799925271154208193014331231177966552847252254628434803930807667089170762808280632364098304448716209046739666500438181998605879738995369443577017283662034584704261092685552252061109682624821517744607440600751418410110637903075880062828983635544322260669320937430744551586818971829223763638612031996549511097243853044816563242964226907399952599919925220543000255900585551278333455740880777633946763840838958272597758333262695185561593474962490833078438953056457247396007779052097126276486170109543876151760673491874137721365881176115225816440013046917980802963723882973804668976927245451168612695747313075231108893774591956233318704006067685863273364147125978636405723993489097731576801899903862913367123585892769328126611458322066262636297873942092895237597760479975860444834017661845237577194713596038894207627770586568895836360575420766966230575335441543652804272437216098717790030584197039698130753911196045979020846545424912378875579668170321818710764972762210292034435859460278048521468213683780495422916359500863861544481339796379508341897687725570999518298834028788296923351002266118351288497486786422351854995048255256321046273244427420198579061282597949056372550711639139938827064271700801333844886496441792042510880324836965828244788486421773233967127021784922417507160159188988405061402685820249623993660364705312213738621550254926475148748536862449156230190508698840284158588875753445593800539249762923811360489752466312762559418927766108174308126567573779327706931529247424458688275044191964116425216416927080125912147247151190650142769269067624649046059779161126452069442830314850726848274715571433490161181405290692525221694201874038097769195751787768243697962593093071728095051417380033621776867930917753186702768589473937062824325116729800725413258516996765239996245150530659053360832999389830722579853420045605867643350656290731419967675401865623913406842087265177232444040048339072678342133830598871375271384437055333973095451148573073495389463724999896703220809329181192491067622248915140698754852221209789336971770789259984672448721743207848569134591086717022669155473956358902815641737922678794337583419720704507186866252577724542840993756231222223199963068783178010727556717326134630160734529141701405906813319973103155902060471213828559060270736986099257535644456754437110472266468571942214055116662452281256152306890381720716377083723125532810679490518078536456648535516724698028106637014097591969921355218111700130505591709052523659074200879052754235609177993249890811242988262617043969297518003495001240659754455280749921268523076376278793367269769736393468530637667721739597277794133592665160600140070914062872061870104302215907715399151473541634551920526136138953610948751435327441042960241803902540606631681134891190584142902422674941088074058787104125312489192225508709928990506980490323453290040022742022212637151804031770743309540499427031535911337406289462800537089172018686385395869958632606576934351079243748610482484480705098048634941324280409164307204831460718167440193636164150367750557060522446707872612403114662514349248710105771152909144502432290513629929786396618596703862684312276458782409566266722920044568720211502468904055282067477766307173720925715775527473091544221368746820896431846924298303546310200659658772370056851236459726290342328621453476848849395296277747503440952779786800295885839997635599128186043904715831765175676950667390837006939350569209508467951829378425188159177153801038594609389736378517379752619037590796118127022894949565791790234872742695480394116486753353305627822153421784189175979516381621043294345036984314352690832466096513115624459974558514695140744010542418528964394239683597824169740097834935663600942297773580633076149878503418075965963081497458346318608362354367491913779524745296530557595230229969738552131511881438947916115062355548565438033057276518241315553753333507835167903982188536761402157713517214355529447745026402322696945331591363305374311732629619023001008462769214964016627889569398257045419862018460833554792399575832946001190021199862515732063196509388199524048353138027766433190591823578039900296069521381811192889117249496739963438865689680453193752499530561202429917197293266502954463716222788617226839052746933814752616888389724421677326921263411018328823927114642682383339608149598913804611224197819588202098683745269268273699518199647934398861234498156044988409404047817725737222483739207542727971119450994632134934448496638342574132146902155942422727520582759840592611341009195172774447283111231595021209514303821271420828906578464776869712808624107645364560074060494678108458200365419227360205115519862977018574258715040679288126409340245045669622700197831218871385086616527241925254121068383648723814128634148483020209295551470664210290938600607542220554194160617932461661870033806983029267325796934420966840904665977946734734923242530704823541512157236852789193603999696881247312023979426054132475118547973657686695302850192987608161527114879663842201191681267351162533867325309563392378739242492589805924071940591132621807776903398570646712732446880800446765235021473520829244228437820702739620970085814568670924614048383983119408991324435811343369862400375377011934563787582039723553740521511728814525393961861471640625440514704801793688430383839569615581379900078206709099060407790881778728418373974346781524278253913656884993250418696209377769686165945871978332661849916037721673243101514363756343322915805096324894791649593811644232031560932474992774485241210621382325509855897570821296387788710152004769737919077145461273882497102518823974630176018282354256929947165640791398359671293824321762527847257422492028791195038254773892824363011995958908317897610837130002700199407076550745582034445378035722417955762875436613605388540023950179263028058541170238277910016434628283284500837766396907291497501541226263016728187796809846335635107163766460318133180633237157818636847035405023090633646995240546883874492183164803713761889092674713299916713474667581571406453091849128022182678087416144088687996335268012474472090882283485872949867187337299863193391575634509877865088759798231576806918735057373728271066003179139163005950878056823602845696234808238596925256118349685481899225089356089820100041092190588344252289693810164244186401402346085475461440559562954094746657136870074294603828226934807107278515579589100103430264160260426799881327098385404883895310101624453366543239792601274254751614203597408869035512295925264896826398903585037126055612372732334323744825061926179844693566781508015537298015118123646977156653257569395928146206135529518541843466202708431847618389329949766571771066238476444334034396785609406165464353977505280792160171614473005237276771279732478061640050787569032370719922623252611353890377975243320266230061214502695457542077523603332086666014730243944674013742322658577127057699544973388017613206112497296090902524607712112161235858009446332082435743355062892748018718861010606808707987683735017125612476554058806504762393522358364149858276410629318612661048434608710856560018937037484220149536917482381520443014351809069351082881037507604669010387117207753863813444288036828931103081612638280757756328032681302485082385500047570232891840303022202660182692626933208637196803312276759330466204809610163774881820381169090269384502775674779395841655680389423438077872688162651734053867644717630947551592354500752859457015856616894761735958876630168936792242997284982026220721196492516703948374381547519708193789567997619564471803231663469400129405482453774527073049263937366172882694218079418973724895635644006494879465117388706843544543942442507801786836450721904198202602521471629599952759653101902524634256523132288473223536738134707823072945602727528920454121497637966957541044712917144373222713875477328369875942934414130620598129929159746699532510074851264574996136870433515359769317305531739492353525413274194741817254133427578909804462742794851775370908070955704036462356766757769420000844616286017153108487787321779697981997190003728596837157700035399115940322603699900257174990509396796875796202372147511898102585731656086539883076115539636244993586108168996844256113359471769912560322200022407570607016397745688491801048636843222525084911726095536620862555766354352465913404584863314116141672402053590002516571119933166302950480587625822659653365207072699515457864135488323745425608496371209942769254798537389156541062081361895667758122360371951538990347668763928033743830409939655490869519897998481491244168655077134058583764730555390356480704987172180497431976129726087146108136064591703984995187952528450711516922962162757998880862172059295524760167486976106639581913229079344361169234620091118951427824168551460782840476583021244561193499348912780620375589651231218220966380262466249928119750648501274015611618625606719937479187624426000598686674818202654911788692073445191452288959830717869402547586470107325620977260347606018007560833955969783676565650454765746989520413255459805278098143719243454673137397986771724200410717425466167461536383239904373700265227239294430644172359195718637107628811537842138527032706051587843117028070925849583621601409914271759841562950304964422902062545132351933469481468366225603168443522715140917967478027823386882116083802013831570114905352317633422596407752029586682128682465352382172743209816433464760265527969373894948216853231042858013781603724468430424458946647713586082988506857446346712390428778101029119226266667477665307311463267515297701447496883908928882865813379745994987880903870395687518679207017513111049570731524217114544124544509270394388602095372034122545126965281146025961222538975613484936514242957338419862624208583502590373235489234782944825654275966555210267059445322493032654978041657451075548372669745512983604135277457720336469701740467333856782497299488968841949917644844751029417913937783338172779101555009520537721350086152985091213923533171070091698390247404354400471191336651004211917986881758295974571450470899734569201309667346242530710720669547842840080160896656140762413283970930931820259951404549807362009536033280174501540889757641677496089675156817490648412584577846143592161893071854973089249448502323600206301805275525569435569843187555314946965419535705542628506202494060287147291650427710869216591924744943559304140233515698108039784320385627031586721686599149440964032479666875750287284066474275570734170624993563235332719666433756755073188320857414134676499642937742424841167512207648979513410410788726002412233650828567610786175750561246254210139980234794931849650731394035628270585726372196477783468324531667320286241058741981213444664605676488463576869099916648648611984269505425416611013101744774704082451202016194220902227934534113177402638937856860321907304746999586559986637958200568163404617243117917661870488049945619786617651066213036690859024839346091931369369280191137482913752799943032037374670228750384152259327617673457472316096318963741999875048141167603296664103759349236868790885551709223297345599048252989680058665346872999310920532476753088295767798790532887481788608806691245984561417886218666005396146522809263978721579628977315828724549346556539537564853274384901567585569053757747506451875126520532507468508157158144431965418200639534125813927605770483379427499798726921375029766627471703731748321776648611656112627082325623971016983712247125614801194409886860709463231437850270014407486657737024746058313670624644363432727894631343845315833777380848632651326705547028034823949038235823210734891999586122563115402829357838850162428476366509182431285261192375965516630228934852908104638680044824215918575719290800829361552201993974858667606047541596504929265476421220107082734735939405689700886021087945786744541305198827442926402453009947953652814470052967605713295122930267303457149406696415262631177452061544050543986560745252368512959478260473499332348872917632987778807540751677825360854236080360683058093073988940113392556187211247042963603444585892586097831501757157088298234047694605850256103884876964362575365604673520238800847142154748870927695588668430091294502055645306477920518565263644066026843968867521011512952979882375018477928488992012023986010919243727908031161859910759813575276838897299340748271084490259824350742542712272062824442964006755451911630408970751644631695513772560051059258203781137305061120807707899621752542969289204599734164094215604757046942019426982511829492973771944660338078382930049958495842360349839144939192335047739790890176644123306421996673203516027503088059379207358800599092077302149718933215659499807247188481034081639360130104613684075264021906377803146593299961023089974765777302297265126980504048172658666792978817629937910412386099934773922194772420453872495941871545266658814261217719128456297503497906409616003343893855951367957159961735607576179926096402127696453280185136224521670409825813481476573674465279194141474036355446661449885033554608825110266169027764121505942393666792504389751402785133878145417306541467887999327544248868098529738183535897845802313538298756683852520176540324753415831928638504513157984163460959056900628617248165447499467947918348810806627224272369648909260036207454676610075413028108429467581422420882575098345273772662489777698736131232274497954789966526343988411258236853044383899832354678175262979429739293797473951708732416698511280335433471660889341202354614964936746912225837821571131120238892049242596657066449575026688570426168905465635200564029378263745592287040923202576776296934620162954137496927256299018199168291008564636532518904242120893915532241019421965312762972253994162260278467223125770294165470202097319306538675179282132207956529945117377512549710926800361976111064386185699359622317297345813321950825746148927352886742491716300074493702911412784952894682189086321804538010329611621993234664417990344408186989710866382813655898849377453296165727893245433433195743238360996688641504425650770775467447599217665280005196283022522934352063786244822864579986981144946345059824754616306212144817188222588111067164749634248438689639951647786150644365495643120951155042974330154357370557028267171440491671693182269406259278228812650944964757091712400038136456355342450425919432158775737523582214703750169752596581057891813864995263135155923069803323531465519670180209861803354394457635492400365455893665446131854917678637019435710934210172506496176783961187121630324129703402547926107252319641560032800895853319767217878018000503609373652781366231246717848422177070465585791308494654685356550911496936144062311206343900238912202585883111784106945912305863258565402201691563881497743094896878691002281022664277492815084614133880368010041140194585926641861444649154797635034750588153468753657947562130800251348322432950441708015607452809697603970591664929956635610994470680676132652532684789631083902925115974633402236807436644691192689360238409808988067794638011323946346924830980768669853326096900783156345662985282083646203057392549881478366833927810152949990771677912548315381492343349837395186414363128841627241904987009999937682527861099638988214014337019664975082048852603700700470410494256848532720589075999130826046231650986795730942995058222954746847773701140485181847513652964524400858300392030216433997428099344737962837190289458616179026287352959291290852361000868129894098647971603377596153890305593392748369727143912658217799067359152639487956096347698902532646567985794621694563739636752786274708752751753148954872970393608806175299277578253007024975107975797362037426064401636323334099877161040037864964023140598550933591208001113872132726626563688617097438246109862511505037813790220770148154128757103375326181920541707178887917414041004121980663419411773316922000344741115904490356830816441786106941647243671253185077718431260001941207721402276511494013224477153547001331998998832616862419145956301541463644420585793244621588665811536743757281535326806636977536915926707325971118733404876382192548437239353045356278360582007759153713994129775084039864059268158770617788350294506335128758779747424722109637759451487576830283506256711896596902332875150880148843231370729410010121986304583605502751669319962666585032508875048351080502171257167965933656038474159856122735137387450092356507467553174741562732023807654697644398769023980713432503912822909912666311505741706320099049767322630784518008609652710030403023785419083089594541422981465230974352607225914460915549212842452941285976703223792058332416693763700934565091946061591350449118192370258052917986094530200447471864119021505446751388600529246373819520039823311709420105180588629936671323772748399209862956361067981013599649751238675099744672200361306976147155401190486185302552220754118304997655002643069350493470691443110724273059626462177785349353264645823603794948477517200908977497912034074867886532772036406225572252150433520258409447505970270406081322357682972258491144270863484110777570510298554169211206174559083777311925743255460840259764598006261061004520455311965486941749469878330750854412093090244374602167628460930235044531901493348508680863580545450977551314014709736303123203910062518146139681126568562308386394002282404191894279902774662676953447818658549206607922733256403911048506140136472223988541081271686409563377373484238930831665849898697308893604192657555622360381185268346386143758278248167556530016322059327537391224978843093480990961841027950220166244899968706794446629466344703530664089643878357629136789831754093220288067907665179450228709601354126191075209954293613508295337790338779536430398379898882972959097448460457140241500614906108626424132438604711307223999454938218556851690512557206878096119431400031786349075715261236229942609842418643647464865251643897239383399346257529026091139876293378768263696551097468168248630384465710734729662741604849650010404397370657081399058280438864521340528550814724271691850330381292350935810234001365893818553778343724778688341537068405301895842711977022230766223506779888634977354760578178451110809457454040584071951071653420726670281419498991574001331905086370285207188977266956132648194729030054645544110925578611954703117913259472479613640316285857728174473575561466055072695053490769574437891426448752873085632953611538789609009126499074382670618234516090740680287349316030224098647814366510919682594058273150880904186066038096234838943165955651357886369085218947661127891748655733194592443510084176247135809832260768886742616247927912724612477723287041172506222556249904958054101647466895935438197826523381756228711607305421286131474534121528160274256242217429502321555477477089364999650780984356394902325953738856729196189158839614761662960662339292556271727176887200431392979304519345177678799455229915063304844453641868689857241605885022873956551285570436544473409020252936954739681240488847159267067553716843189226623949130897748372257867593011951121961765351525763587366212494602097128960760981817383848544908128145458617272119919370271042454997704875758540022581365885357133335468832025060987921496826408458583954371232380932348170877174506459037841391828299287732122326948345687079735391553060510811275113137696984427230371305019275457798669035308455363388808886676826576601439474966137178600226318478830836876297065004075859661117304611081600512872019661968231206309153003164156698754239400963702238898253813126703431882739660373529819830856758405129730524953041751707427177991068421626527915793791575313920764300984667038151304053017457473767930230303967454455329127465792941762697996711998831132265498500470740200985510933044592077391764004930644367845875941279172993480748863529112568973553601560624437217471775901679934014635807247447951749592024400929771656301096097243763666965084701017873398511219307329583269855948210785404169622442509633554716359442151386819467679870992574274404361896472362046516757795724652521539551619602803075385484450333451827096044031562561733840422895979473594698493809806261478345597735212856677132605110212253626363491209782389644099847865835937132544216113782032767945756036654719315984297448603814748030693723691710834640254180740237812492760814040337520605648640035000145065516450026353655597519934160747838633584585017247326809260481453317239894196773386791060718043524141771886588510283164476121846632525474628686584938166098530400491110908637681138823298902523864331481039676670434830715159045611027575380182486501099329325614608614347918418700645311389423921134686726150382439833719685579712586596944168626824840966169017595632822568837233841131017882949716731258458896100866373071894747856748355124539404254242288541789489955372366818446311225991180922873612890744438375221858876522258466153146889973474953243513293269993380021625250010352200758688457262642702323176556957458004877795069131637802562501969626744406695092383157303400109883553804123487920113111584018243005883171071216022253853229801741015417560612319986506420254956438837737024493415213079580637885615320662311867454778842987013329127745713088107441946440752498333223846576319401615526014051327242173904359284617559814864348339944308396717133896681500103392680567551434022312602049300537364075025652784645217511398773227207542673507498884736209166259003153911374359496109343304493493213813272588838480648718998629672151169729093614278535844356916548353783135173987518643230999183757731492978772523838766493541698915565256893530951560405687088416099692713727694798115815970275495207079166806482267514929983180730928765547923511407463836715996884317407148480076762335639374610008929127776886774131934827914431214785413756235229116092749108142326066634604833786433261913904919623546781578940172533614411325102089015197872115858618354417325111470239319302572574062701811182852282261528305310484511157071023712461692579442571516134556940885303920783232837428629356540774111226591971630364137603354474785746732092576867019980748535165379981784194775852848028708107954436061432673203682671641235889639653000890721435735163191517686494032170957978019921538672854819809651398358394154648273648760889080848293045556206730907072983628507640930503839938073644445976081216631899660902231778610716241317028877760832545340360543782418921517366274024449267445763112654617199092180489183629343717393826500252393229090655273845529098507343115800097964982126674656567429008488381236180748789940840089338360387607124297451128198381228044155384765917366679496963557747544003526017426873962380513057775612915226580961026768331052558378554479177423350644366880708706122142150226683702219939421223347375638681494086219601045079462972362034046700230859919442714167313938058489658344315549624778425282992424748770850577817893190768958190470819391782029623953019327029945455891503301324467217635321477449703237209935615563125660428341386921717045917949230467855431025946026786197404520919794829267510648235968757469099634459718284996225868274563643705824443341255197300953901438510402268650165772704734773281378317857956826978826444024887450645320237194997041524732101527124306893153748424097152362250599996589836374092703227391749911186635078255669905189243196300191550054622844886438100323000301886678875851319267218021889949223051807954617175672315582217440753170363418041503812219017882966109493471259503926622659270866546061392997352230131276554104328831043039445192789249055943072569407918274469819723113311407272491467630201401147917520676636365092615339229151223340625144304424945136304450832470182467618816054860959049287123188248568986645059947543897635780187295996647504983006984170925429767695230807134210285107279676537767977984778496723845677524404506802096072801582992782953097561689368924005711173487579298059931030899323822577933865116181190325068782649615950816948176624687544715736018686401726230441591714129835554831472754346725902436626832931965221292855699877270971394262078952629488552260439537117719575685396519351072966169854074630171008471502899711390526817529222011777503524336670329810238651384368502582635667121738371928182790104989405465010065363552741386445315102124768563915443550749435995248597518534257980032723856393554183865286567940097410532871114920382916583698553336871788056599961950825631136187012680867276717634158722185900380664556958365345360084901634079801518502163509223526059348331987481087555746841413450387730464270758646724088410118873800484110464265499379269861767946875915654242345454736590179299988054318248200297355772271928906387600405936782811259075904427265368831552086621545225194932566733139127942127279146324801900300583019072891759852519793910579704520208077936765620158026013642805866740145027349446064858514678996133348854424725542248730243177803187197235008656028348542872021708327564054304400573150274611085287772800365635918252152085762558851366272760461900528718989058291028088734337423567525875969956620272370895398222162454700664816428423298278271835591612653321915414061897996193078070664424111627630556671541056846857507954658947060598953115264859317647479423271791424855040283466464921677890334886709279606532496146343312110869990512873435190313959115533949261159586141821699578006126159862029632239085971360026816791358893252200782800904455046950846839302745146965943038257911280561735289008178137223257796751769202653406885040562418045389776429348210850910212892569577148293471206069115757054277905688416698633943930649754497932394351451996633306864859945864059537525154822560252490758931978477577791326997386870120714212297520490581559836491664402586156292021640108609048077579501085704667026383316563066386476606851067237389093779650446200169880195841438445076339769620820237530894173792818541662983038172223010459613716440427293344167750156642664532072463000538114484402202530893412465246891723837252689442387948067627703163709663702813832473810400880291316882267342446392508241634343451471814702739659476536451182640102951576049129269187177925437581401304916775059378438779529109886141606169304095457543354675187642879807693231444676495497441417773305268255532702656606413191969132178675732075088776681177619766797581308921111368525249880916324233200495065736490826042736889285709185793254857833026208404493025170019356738718073232985749971093209600766851969689700545459708339462842994621552790316170356355589739817199455775348661377170550319223947194583749122577931903071299133567892768106352192314687139539411490158951573238479439585990199721141455959630110994070358722561064478685442164371708196538772993485497924481890112849561238029304379057366610941831315644370655982754506691327060831512510000033511650436792922966077490986079546376686679988482875672030398385491483613105702121347677856310030977119110879817811033490061029900486738306591641069835375060269669145537226653073263039544203055950768031379792043507954211712825495703075448671557964297510743918521971979316330941142114144397535989335277129420551200334909437715837566372568949576679827546127020012241274723837997473394444770536928646023615805385677227283854824328998457561804253041830835493380420666459877724404654634079067923304075967824116525899408731727262236907198757453952280295779194941743795529164973725615208176529096808356337534280199301776223999325524833600005724005424058713988567478406957635792628651505123702282998636795016313628370540721971861922299371221299318595116112169954257886868306230184792570233836166075607740116136423776562997646046125900445715044343992082036479323134055413231609419896845917347770949017954664092828489495315757191198180432066534367233614967564143528954645186640910680842397166564046424209040151069585449845031901958917784196553072137186687800962540618768225596754056149142240472091255519483302038924964696013549877239312798654194543886704988241481427953964393219645409715056574178861541807520040897566961104006695769760056687519689381648120896805860745417516646806593908654710662081668195645553386029521096211951834292274995715621386662376933597332214093320345467152549226278482617927127810177868130806443681484394714565011491739582696041285992373840634129413549278368970017258413430485101156727534094176930783033502158853033489816995433102795384760732619207488369471949265101936066050370764268469198898685545314447320300352334950918093419465576937344300957906722612107674752871075607062644029128640965398502365373407005001334519009693978148259772526356005115137598966718022501928275645950138141688916695849983637810989952051050943270080431236685022982718870005209672448792094415011050565613606929793534592017477045856737163553472600842339553672911628036344550604957018603331207725890788717351961822093481947078747349629948026794014137419858638380186563047832064523408681127258918690490787055812960705329520491551301447490585195177440150465115598555697514198217764681337862848104462596947599277677531138602785191863118512393936441499513663259094234201621951001603326857082906232660035000279899871636081022855991719142809405603938974487993513727820493297008815038831657000126844092445510654122799126393520667857204146415577844338421995404262169628450488931956488614388678834419998770261221481960796626983687331877508185869204610614966428991095208903865105940318465448255488075530299943505139725894077678263491092199286724944732140222665735557982540978182862204044775802864189193194984566122445455490366196679849861706009636150446323894993563160554910142091649462240857391996189981820837240038836247777821795834187616346668628053039442933910359643979864536375660416554914097471253699677270835877441205497618113847464464390025640294844081812643401898699310005710932188407511534448921985892381948636065467021231639576949545426699348999877829999244938414755345748031106665629036089096801278843065873090820936520043380727064058015745207733015329780710765397583425539961178710808909740652949908564770924055481423358350573861522377289955495565159407949481307636978386007570159375951642486760402452235536644109755999922636454357515150237923443914253010394312382830930705354168661834050268995883860253398501032501447644399168328317144888575692502462876050711784354641595350803291873885432357856010965090352159089856831991025916638083154001760865469294841438839279823104715954423760910050802660981754205318350889118586297027507185701525038441932525448953850596987867215495652257827470694734272724516445841991425300746038346346471083791934915387518516001826867832738021656338458636689560623587030135695717895892808677728425244955333521418098867029797625706233303566322875626045038907396592526235924835783055041098385690003967466402991117078205769961254658084849318308775914493630220218426796138497448470266686603425142601852012821340560376587401941165692505688303279716724445443033288064745777475213062882046686297601522682416314442782473674422613176425577428195204070637346643637809405623084080938308439020978477995467298402271239314265868853950484029468228827329500828349606579528976172458386948451132712276771500409698214273975877971678531181079249309914295809683540501824820096633772630842390486339749011777732410989465252947513364553393893214198842137704384650989874925418425165723685104983336931290929451023245555213673426356584969337717967147208673326990025154322349410451035645728285254166115220744320021864282895370184001641634166383577951880019952816657403488489413685747342348626818270243045591523840668570855352849950913628619957940984787764043058558557345586235417214637307761835858159519654694138123939747949244540414730106807215329288893228104418384992171864217998160030453126025519027499743978465601623511535634845829607173479957676437331052662426764322330810558116855048204277091164214640563741769467254922296262702528490522591324095830267334363430475217029634393553738077275304094260536495446055915447972056165162966529251127399455030474289639023852505007423649806489287355917654614940862887286733325246038943925582238895044980462327915608598485770623395426304543420527455436702975696885737465269281476973053806421239794293717714209848054893607455668393324798437217239725592757058672415607634286519757155522840737013280515806240108922995500090209836956797176513215596756027410039006581458057792047982989652819718270575997174125737456505966265555679979857840139461779297129538158135803880537628839587547619657819747670340206182277223244840035887156014942574294916507750976572664338467733637814230782950387771633741021591023558446637283738806250805883216148783525701696945526570905105832047000104770666147888849192295603198728799678760250424607395087843374756606936232685607800659557005557846723242086270510240399631944594621955482968521614774601560928077336280216088823642166413962591658271613577761571815070595469056619910350331115815414303871784290257790344499979664474015895698454237545181021432949066198138866680351075513016656554164001368764783674085043616143081479387741226625474329794514829708666406290641212588521986815944354027558728744289662127050353087384168380262013464688428241165514628348438798795745684190267856353546363771210956516671754234545496478455238855575532923369603812969606655282276753603898635249856940836538938179140336305779186533410419594050113904499988760436997399390673814514491098966381557081611535152209507386522794342551859261062571455443875401103446913974178872710428898548518215806696187089683141595269012328937265554152382088497577689514597537619338586694291225756606826334759416874839412811018434388994431642331090492284933896754001394954422886255189284559857131593803422704059463774856938073506802728535316255544569280053920904316465073140812735768171404392317590790646403326625433591126034790285050889199803146470121197383120353337239130891117563259737092825112372611233908493972452928703582322234801045812379165386584212740496301346897239777430766753891553656315072575473441085387901903341530686276772722779724312652144078245855923881258272453261482960756450302923859672134596714063746532154866836467825846641209193815570398438786897098025544075779974460692186375060379449634752417712142775271287759306727354897364507273620478464297610584799231692243109887629353646335018262205320618801648281008456756005506602664680390843462515959146613946781668418929626603678799559691734229273979991821270058775725382831033650585568264647389354647300548052305059733336596060334425026010194663439337461711453468204904553242128630655688756013329557272728688885940597196851698153935963031398991215265027502930919040890221764423934912487278150925565679166920583892958029786985326941281855958655589094145789140759668156411302898195493647176173947558301765120289922770951338149787318723226103095397494457467292850790544436609035963819712313317773588146929207193879662805914764975740489216795055187633990668823406431585658237666609820658067770953571801950112215184040185993685926263908426132918180769328271846428500002459859953174163567223922800569526444084438767028562643064713516559449547716879655126801097495407998023462602429049959486393549797012756769548169064275776313142144033884543070841456124630201631787026785672898761806665470006188326052165641199681067856688524154581903974401740776466740676131868288794155279986212999320655644844020891228700768703689140887006256379826747157962374357857609501995590692297835445248313698183863758833847374286240757420217912583667753919888299119786823037954974179120529800978788254699674911529895918778527858551569716513430140511970296794637855779480197941317220151412039572326770477659820228116919890165631027397630450720831739768329714246190865964130317293332503149792293169570709597800708623133860583816861674214556187197749744302160067391789856070082655136340604134320030160993120577748309470387694993887072391317462794477875934348560400137103789165290579700736049542541762765000747271018692123404383358607593509515080824096489360197304706098237853079827453985197429046701021435198695791287143792431644404788709091931922919434709846675918991635040189912311900426674623929392687122332067308888171746620545849275851371084557400619438455627631077201923287627365211754394477068923704722453137971564675082929804332636072726383174555575273606459483343584227601372130264754992662496095805894842361844681200704721682893529488066525989354549430586358772128517260467113542999493290629769679309468106666637296778115267703191790038327038172534653447879959010316249175789021023272443251528501897953186279536409843488294663748416683502068287035481830563972905179753790732713441458855941321105211021591284914750970225196980743491058371212247437163100165458453175895667547595979708414501096209796704786181140308964017787116870047827579538682976658470523331274796586018846613435046501028693020091950951114130813695637110313801690155061659314553341611178660595085103535229330106291920472394658182296112749461355375439847948024709780982087399338891830171372501147205471433299140741918056905449245955493376828044563882139796174362636620411788627134388617991613884970773827037782785529247621973868778286622497315003916174243928982911023864434202320659400234838090640097035452473282129717874900729424103998930634424121048403100400034768208492295206115889931503540227437490245992301726634030143418552250577474263347936322791422324018913213785225376230184438074731162568846900212419578075203366979002404093436347480224199742651355555900385956434572511416204318848196002025790776229656062655430537803447964706068037457351416260631298085015981618127629729433585316069474227029094187518116643226108303613829773499954743117874385816998582700218730438089443990061208285818205941632280633471622958848903839508718160178395068571345358800525085202739654603567713363847015244543232363055262697186764096100107113450993904109110051953269132269295734185067569925019315831632534212704898585160688606670803996615091674439928717735078475513317112414080904931707550618115635330607758904826724307125046513819069640488166384674675297832623469613174493605383792802840076867933433518623798996270345688787441701552354723493367422902139118621891693924920441810849462893489565270527394699764306109968885898309832360889524139274514654002408218187591764308742066239349604155958818132563427909019729605847967396755239354379743864645052642181558270942490367329800241447193541368218726585259405425239677488307906291244872193128672569728861501692710286431460944949517984821475344205014729362678005814415138744608979007609654056747016264586850664674043688540145412875433016568187064948743414377248972392824029729057862711060596857036888904400234939531326766231816336727241015243341668909348614791592350146827915514296326018896400579212134109283036643153949503197985223738950469374904363529853062368990973483249123804279617905444691810215930361983267050758102981840394788127017930107996476719660806483422113151972590565407520754667041643305881833764544854181065386125739469961136444944389221780256333605670246929646211232539182121385758092448860183047044082631385296279941868975796321427027152066504690054182599646773649761092520553498168930221214417661320907757706046755675697377154482101970512432770175126118413024947581284031954260938799759077703762181395928927622623801740129341820425961146519013853284776387817050336532047868541751491672067339713927172157685113258628826223000461796170206619475922432707474707518618373127271265010124312800673994855907371631925477047081031007149153696067242916225578631489208030591552088382061384285467055546786940123818879048759400496906172402014448203093818931790120051636557872645024873271808219619465690320044021794242227231725404572282112200427752449313071719937128995576177541460341308754759259304988155171236372945260325210226488303452393099085855408184122130064079963186510179539025366142527647374360088472950352166894437476275363580575877652945742477966697370945421416526740071907513311993135353508635971188680510537286831146537551771628689797345449681365946414436708986706719903469506139533560018640025865175554352048054045776616013473628626802321914466072238018067095312889611250565558683782294934480508375393067969112847854181963136468680244793544717457104304830516549346618792983943169660757603023837679006951182750784665891998468146251283726341934204873151091828497530352887441040173241233713897875570764170333943208707395401590866088941364148166289245675754345053156468392636443052666769790434524564555805879423130409776825034959713676858021517771832231867231298939742270572379947389308690418255222390187815234016533491261564634790782751941655005015670285627211591630888898009394206265666366474475796955945792714938195627131721107674347764934372427781010516183974137027314993037743354441643848893632594480733107629078904090886263874919954188573928920262096437549261260498234559943209376614719741937055044107688087530116045227183415768956026031204153368157817570168959024240010090257954091122125788368234830735113773160615197275083910836174300214018997690326624870469076595698564161822217275947109320275103888258980739143501796705643780116219375821546281959914663555796253424926330016723637208416524699095940114051757326941053112470603847174121824118692771563673134772491044228290687414361167473063560948212145445414838795538935084921273861856614220798097187605013146444375264373761042074700129644460456059880060196037881755350745934633266872626398007600418545081850254376916781923064327786431415790687449783174781083047091342465269588325381022981699131752596812545450603618299551759371021518857111637690363583591025264993891622452396209002336346535144019650960577162763059426586161538446746548882180176543559737836552976038003815507870719330747855269966511516489159211257237517546290537276228060123850823533763070980784213585911118040699356413925177985400265826678888201518126366889314039739118033331873818541521270355175478397611692494328057371305203097225121640480202243125264504239655508954632580534484762263061390088392812587615652394931053208305008304609115506273762556551259079338159643149494168941778949379266539989754602874294125444922908897377248323615264257259424175554042387562680373646321843157018091537885004581381400867361987861468338667463062549824726151935092738070191565113032606362655754074182378419731427465970418195877684249664920058390268719231602570703550239055334506369305491291842099812902983785338043321171497765905097338638037077806814697175006833760770389275529104092198674739726943960428901346700981182539046065946524210814016376147101609323112714587362424183224081516561357693952833112582885230868930856256385240580611352962878835669117821653631985943718739926983485600191878723825648290546180251977122685825067931201335119308125761699105398755993481307613375855516463805384031498738218532093029448296663220130569412980966744124386508258601805120227542505770206359975541843246810407166118755432407993344733011742722602929260639043148617492547985373615088540562297309156239703297188866775850964863303781913801674923445251440316290646306843953764309126467549357734022843292552466346030462401072653287511238363826734385588769440137056813314298578635101335863898995248064516020886203483988560692217270837465216848641296128712649768054646800042067131548338792388377057137810195037024271461205213377205574586363983336147340791249414417657965015475171918754787959084347926353766538820897165274468581899402009457342733505720471798062718884954924876014015969625247887258020260002322121182570513453047727052277745273329393785498527005298145429055172553414068366486477695265034348429484950996778893039430199049636103499770340896745177813169248165648608209992801831437348553436319410216042855456926659612772958754016132852389694357739278411171795570312476527040846500749060803128335915979727145583111831010491727867220858055424571879822614866892714850968450704057564954467622572275014048613707955132151887265504202048121152538875408010205265300035882460589930306299539307799954532023313418402323649903133334662668597570709608156903132841081515207136564877508081244284423147790637462909377500321816420687798862815240229939384590649498819740180475058868683706044943332393551261136204123007491614012545128661097304173282852446825523612281596633697733865570723276356446474109647413561986673118982216902296889143690165926126021191657054350073818527259413474871195869088698479609732537714940996766972529695723113768455375227326376289917564692275728178839525490609216350370186243256216480893379059390302111367640603069860940004263692374423028388872289324186748539266604207668521005522580050806175484699915246557406119580573312654531804480402419255391322353560708045843464354727682812455117071223706570161600208093813240112725585588628278964133226180481901476204124592606281795094219619496041936293556007005225284888078810123918139938622931023062850401889401305070567758124523830988153964839907420515238796337897949371160458743602697166640813814965969795703829145674348560023065087346015839710097993329899497897618728891777430056142551351948670575066321142025625614811263381019796338586622976751399692099089365253906165746537897360982067275985757165347190838504878516798462465793054996551902798136454513371655986388288859801497579326319689819082519896286874883826385555479618895328395247866076910332586853677005440605844785912165471289533944488937561247429222922620182257384651784601847186313757167277567208690198251771023108995508972605685823531615653944860245043182731572475296389661632189069678988181688270186317839908577401646211076560397646312541741664966795607497058065305092745551377491748941213562505970434861043563655347340411523748796276948550888403472215028264909426175584142548080752700171210821036548205529097568462953420300472068614206423006887950116089133442567774141619056008929216146367054942190264312651061385799209464909214411334931556004385692430019509342623004053678815446498748849066938849799544570813416540401956574070321870181375613070903357390704610488457918433283500924506224767056121037118317328601476099816364343797343451502687303647037850820859200984230182670967000247952434311135717837634862382035306731182286936359359784548448900672491586425086175220616344647687380227004526254698515691454967349800724693738847206519086348388826122054963072716990097793459924982261385627824305871150272525655430417560440543821832538897234665706132715868776520413897016543847161840324556040715778552785958459596958293896174660827221950738279761048844948262318260831074960233579001421494796379413263904651031897309383769166706462654849079706958170846683459908974065200797886193766117243128672893448215363170210402593732112063459630100589656563204325812949145050076280268701841689719893516824819154434096486895982282493839381755070202393476565556072120348265308864260227613032539260377072279145754418414792807859051618039696661118209389330996335494084891425854956432952514191117760078608347689369109050013432781445228973734709604074180267077342787933319935097161865801370698069246334968673811333600152694445843790937499486014568102117360735623276094442776021520062112313447948950465986551825600712869613582599179142206152020256611715753377646590191513805141608836424623040342480751389903828366183266701215091204088317032947911907687890582115730639275878638804811128966139542227327854816361334089913474781184530619430150808253880055260818181074409935731971869084351709134907614550731193869380426869356706547362480129512142986693523294386843813395486056015184254091446523230813819036377109100425246446399692215638360320460786180414532181423562039697232084238143183196184175460156323376689882611981213929543750250548273992983519468449651891730916097129302385991390847601309136461794984585693026430107719664429962851546764163218346384094196697611525416350324601062279194303572549279736474715721799147386154115967355033658971612540601262695628238967263339041351618546360795082285158712314487750759570722926213284385856222459154856909425392380346655177224106123842834690459932654079154486808707685440109700856022136234237115571701560606703727784904654504054690756665374577916523544613911061858638558410193330970471439413801370188214837889039447698946290891843273732544906944796532400405037557553106617645545612362052211185301627824157318423736633752304835269861395429194328641527673605080538850375568934377995052831588906326622093941799682758292124917135947436506938091523837459011855864255554276820399039284536981641962651752554094518530236162916808927204073741759668768370111460788909734599737348571088889912888079365432161713275985063769445619770586581022948345524439034154108262791198761876495699969036187451474591801101992605235755463590710994575939740491076954245665740858980799994674330210825751822696850661846229245923450542543452078801067075581854509845486059118920803060876904020249006800063976815244278543620172718448846570634785110411489064561042952216289570733302462653274513018124542063987939045714366405160028304244420465936605388029240793402652585792644352685564198888557124574197657734212074324839208968747222117409822796007531388429375808880226556232329938617850163570628698173436439290355183410404666349117326900477107977977002545073671059638636531882886824597441496595397640066158947769839516972133891754301625532495447459345065937441787470439781496199326303794213468101606354199764312192454847732634533453687437409039944179488120454509580796926248831329456924320790522767554233415133957287269924830594887846360167135505678723688428268200167669206027507377076874819289256008468129807061288723278750314115386835015649119771402082790431545805137051434501115874205552221514063170311297109103063597470749424506648705087641088059742972907374470963717723389398009589219943035623987565846495838041764932296199052912810403330444230996711545503278739863462232438981677914010522088260562658141356952170825061298290803783571283538519337311363718435007759519419606618576308517510313306787365621286689326551968584450843967098237068990015604842181151257593984783371813463551999174265385137402094115098874201463187055311036947897270901748038651265616436490541368036599331934376172321997726707906699025257106586226692205932616964947794947522106332603668787835924544328488408085975924738894803318067285654109750523102972857421049218973195759605377274790408701675802153443190507290152754924010094690049905864560972424506646816016991710671103565081780172579969354432411726845881736782598867398497693563672401308250157904504120481322753403808628635815488706346191142558970181435508207799377285500345962016642727908985308859070401279240560967483768790591587135937089654579111181762851019077424744279354242852323556955416755721209813561661554243256454926445722743687783996674423888318630243419762353125181692531702506760273932936872660697808837186314258198361886393393916435777615876248010406551685991463059111678387990106555122146018942100860702791294623562837009995889468459022898377398341406660511507814675588438113017666144679630088254933185798000415742258967222190481136481223903140314906378941250968243762280037253700466641394731015298262410683243334431915688329529561965589343003288968039992583702458726934755459142072730976012613503793230468513771817752111228334122166146979191647658237161851833948538212003737431447780714781048826319710681599847533850318652960955040488901232941028568187889875565333757901651564077512598890322751876617558010898723850467805828802411728989473553339412678555831694156354126663791758467523961906441730837155800049216401544186812382482869991719318348629062397049654876518578849034429191267532642026884373984848123282908771660879336172555525471882746641964248994011527970090333334483748002257755670349329893227578894817196233333016264509216255071770931118191058715187550517888909501640345853127045078240255619522179238574502874650753861178883893727270766971757236237811622622173802494254238152859583267860966035337181722445161774281428786243492080725292741254009572309649195677430305796459747820748927607876822915151147632348245518817173303245783433698491282547661181646471413639497044239234316103182465031205542183427630450028788465468382262087244598746243954798206605688195887596342566074194882417781778561555123825849416558186860510351898076954969577504214191211316154803165342967061326517596834289533984109373930656672064428464413040379835569806000818670637104534909031164622719827024605015243424779827090761678553390189635205675742166493919522504551776654546069809416714717280543652030031128982930468830010615097906705981347232354444517552739706098280001079767182361812834465203759797998917638330638842878954992758193401727256299518586666371763857453057284400538582197135242976445454745692368807549820511497623245294338383556146541933009914982248061884433223506643506997133864049598123437836681728792711648112459786015629730710836587266214815330114624682252811450281353031895641819373761729078831369067965223777252662228539146321513804014888217932299389254954322640216044863596875088437335199049307834109993144081824427954475749194423533114424800176304248071043656930503993338264941946979255498568768950640025507054076273794654993430498147882976047189579215021165081982836891870482680694259727346073299821852282880284287447231121239258784692953713795847619603940967311913304318585798546729380807394131574589909876224060112852635424349455854360196612395402942109016492615676226675565737028551059661031077600230300071402382783311121203771623074041346976112998779378675641078131243067206310724843598308975350887200402701323620541376638742149964076610875716426016791079662856065025676960419197878200605741951368629710572716676718410787093147642419516078953574753732288506011131857471842696870504866310138039392510380912630145655627571972505060854728044316678672926161980552238581771048444007832449488689754378710345664323671855285758632175728247721826181072001273045458475771395136769946485155160756614103140845714555339469873733878381549211702973889642836277395840357290033090848957747523875346726237255629310141018762861799862229973258501267301556798509593813110673644275908550310161834527274496307227012285964080220380025803299917025482299315816604800346327415718278446384792675607952045425891202416500054500641970261680386191858534470446200569347730021624233167249906950287383866568124400483773564706085809141193632111607308187078825018440836165226215304108606203678548763854718591394371651993220462606655920536333392804991482535939340095220040021453205811169572401513884313562648098505310956388672061603531096455265197271088294045876246591798791047315706465382149491519419611076729471548380848848651103126523177028689787846308931642210850260111328936693508599099572069311638564108964440314711937075600468195012579812129769685670030419623437980347548689230489026007592110311620452297156509663114239998406269349752893602642493270062580062872756113729352188628524632925810962276380125778885664222993391920857958348689943376505916144066011578742565007137725137264926922482362472841669613708069673406176121842740975083056729325244214354143257791565581273353242163076285111815225110113617308626915422879442280943276233206290907696853851890353280081249395512308234879040666896159871913083362648775745107144910049782516863509239415321946397546192432715598441872406947852853151990414440471065122058367337094636439926116606421263951550914569254808825837390376524775089726474701303516924680648480684777955574823814905835789916869207796606078238535886378308517283700666779379189113584387253038892808326640075531358622832866779861862447321362603942791764802172745317988863258539046281402571406261198578020722205680181476599229940926884270728182912097633490420447699666652724235277528181112661199617846948417418732088346315279306289698341317071174052830643771143490829764204769158340744440608787519944379291812591941172534428251980304715431452942759506007778917461206820777726522509524970849531329715825675189901817305902535274916936021171964376192037811298272789615089741351761066261635672087197155467114343945779588731388155675045988573270155484385253336917070644189084788241852796951683359850335223392549635813840491790677118243617158235984552731842756431511710434249327943524580885953897522323544929276989115463625991554947666095284746466097638112796814025795000606778066631500295237575651380097528533406103564099665428442971052465773221660371313940239226747856259762056526856507245132066695052418094619022014576094347582955719783822469544255795901853042929131683549606426853195860380807724722975113206171016709368078961861598803965480189942094498983468098501299263710114393132648149658078695291283919509949068448962561206696359669685417300149346699141213146180221907691672406206752745392302818878306461160933153332186527960900548028717069498054983967612531281517315831810349320262251328389297602127363734239073448775875522574796573784590670123464643917724602484710103972702313321300543697019030894408626641311830819859053566938608993386148091817974209330571167802653638552204475046124407288763670427532539587638747332014880285127735000709473165988030131467728583332254194560069532516139675524714155931918399448936432861582832075316779811423982172842952176883723657890108635336050070714251018528556505809153053852445419552686097717239487196146009784909992741025745659168885089043096807748020886472363105042541228419302589023496083921086116495887796152125698982452959404528131117457216843988148572551518355561137244494040549291819295634513241896655107770604539873321684191029719840138724235389746836068927677068182234275360346461655667943824280573961051014178118557521480612415640033325854276153953247424921490248236167999561073803191108408541239304323265393640802216496114950102932860702388772168840415530038063619583975914011607147401331121413938493596418342523333990029183501403468273401507604815890716015408611505890929220197579208434845984465244332222591844931336168039469789491946465149002886231249578759299128438490762408762067584195400624358132445045013881204803134350339600683364049604387399270159538227398811518651625230280394775226004712199693691873134580141595158649709930309100804136922830007504703769544448987215379027400333152586644178896712447089744312992564997225044899304097056962840429646008402633330281952281253058256912606461491022379060709437140582896171219963851421708805696312471797401111173010893359498810426057400449045521833397171908522347893913111116524485632934231152466782256180605521418273055330181313187658216154226975088290717149285243997563359187900922452897400903734796099970206534622075271016831798257324847598400197595709299870855839895535907924420813508541849032458354811674021215187702186410629190885128207620977752729445569756810717353016590771971400818714840795198392316287994834867361271873089892607754518728998831001556984223548944333385360577771712085400926721185671167382296156813611891397241247111892025354108125787945701586179973605458165860413781117789966997175204744845645114653418949344045275192725871497572845932105836722807195956462264940515075886070784203718847926066327941141216648121770815433745133628924695828049168954698835203237570916138354223783925950840334492730887814388574989084529146816960321393759938340803535539033884961880670057847153503722793265399698582193829114437511532810101426734875836513099416812940460059062575028933060782336283036893847561285314464436401647280097563651830004305127302520600538888432530704610391383840725634757349427316533820858607461460909513159187808780127518409922770165122290272011541154444819498759924047875621138694519188106294830121580929111089930142915259147299941543473431445430188957301501345186557747124263388066651663363063685621836503401179378646169065541922738229097836443200939484558647811818740205542971917788669676364245752064726695969419851249631579244416844561101321002952227140413983328205056257639439856333412095077924515156341758785852714874666099181528695041990629407638505178799542412905329224808620590935682078058544720231910406378322748295159995617488257910950790941734370590888202973747608994958957702414948288559192645076053345571220789609483195379072652585599387753115867339505632492693803751873671729042921189519980060475801205174270235750365600572639044312251652232018818810342601876705700128195434964700451089340985998977022712563055107771197340052294650469310955228217310517296252931659357333093584282309607754338418529001173099953283606130120730947931393817484718798660625473323012100699061581255303965323064412924068882018056172919702105541163770606752434826580276135267348131859528726324078607688234241703098290514504207870323345310769534354089459716504721848146436072314160006525977838235630299088490297627732030200133868387467968784262899048088800953023632929509730915892140119195319249686723482085039021969048149910628835521369905120155134440810663196797278764009372651918322431291312083050567371963765820403823579792069684486063576921860001869693100568345873528877552299746566847087192400327397924882799446760366779721253633022946876030263985921987415344246176495781384304809593473291297465698413582362052205751503509665129312997789876962866187064572521596952566022130480743286481704111524254067120634035924819366480824889209772022863139752590090004057739100764282243598848844298890372421186404875558496209676946795066086102871737806987546126859751626224213886992299138950301633433605143330671939383510824920826702631791008275606094541047061427585691725339140393068617662056955549696474320268187631819849913619998957891418024482217877932561971578202293126127456117690849943095632245479385445111901968753846676505494384694465214059968598064371922093526204955394755408867520906812341449976129830399495227736908153456029046210443836844198024851522759698848452456007167683828815908328913310313677622817408438475053113602593354004760200379574285811131860126523564664828800914306173048010232138033635539055600100188608022455786911685633608741557261474734081616532541476807151872520768923537652980466861951494437385281005157914308663763578069119283079978538235072379895700638726642565518511485299387457589121975218857769795602689238245091439455553626923211104767344011820933055120563277450113689466604604024368559782045331931980636004392336378726145531979221259343113631526922203067165130128459621108781627161201355451081571612835312385403907582637597852602012330142705084514253885448058090562293894546915404925806329606005878062675370445596622006502098115442806788780947470986102860234955929097914786260745387136471051040825819115171064749459723947508757340388194116598883102029969424754589690459288897769124728054846937024780867679210402826686878712065771688043958221661262859692388745521913685647389723718485972871040809043616117681714617355775861781863794498602209681220218054097710718903073157709437715629378546869664523271379270897656678562835155624729371827122273061357897795237306433616179300296332133178406189674954101400039327005428500208302243522729035130255489734755698118808660906458351288723292704991271771555087191566135374391664691874381500569373950606100655916971098907100787249740098996464978435024374542454733957463085512196230307739638172064484878744971494053334670027930965318451381383358932478535329261070100249735899884209816787454152771640134689575013066389483030484790054680033023203942546856119903806065809977409393135939560223699828820712567195035800622277200368049190418112195495533869013862611307790132367454628395633786960846744394359348266693128904892217199348994196727864444902298072728492980048055920180995756249299703559149817054342572760802859170962815306430568286817812291218616988179786151935840767194244102433179750502763894372584813169614648255579788216423700644337689962342317314557643854170493761251803576548209073635320330788569359628927361055156032125830595198060503949196153433206225254488413591238098099854430558484344493650677263178371922176913407156234454405393312038579527343776696139624662434968180597882551499284547396082937903280511601203312205208177969326239727296963354579022936749458446483092261153876511048010104540185678724201623225535318555574986914263967549092907484550881939643582143799170998075248047541100247383952504724324422461196005593807425979510893228679539882808954750989893797421860534492844882405856408336343296488407814209668070989638988803969537301224597956789518368900308339746068265973628464569384465636821045502691259118486074085109539185612707110216008777796893642641257818875884594332077350599310939059443405245911983709676293063166361163639025467265765862536199323464642025676207232187505821453219718795437298047899647109957861764358462372171516359809333312393356814492296311927369991981519637217615545693147318243984650800696434753088202706955908476379216491811317084744479692466414500762672806194156595969702775962416079595516354195635192304679347801887212353289878738880415002310849080252276103319481318207487077804578228413808382596840527273601934669895570470373090424548710402174038343813548456600125728895932746368532497852411237084372810169549808540565754038757680097721809369598282387732546436052726441326114692788391502072420057653324439004744650108810838806326472960126704508626947478013032947106937732059037449589855311711044898144520218371717156142220844667470888385240685587190091142929445529923205384945675164807083715709311185324695095871237326194359109185287208403328455904666133834522673594957983655525694530654771254296360003360484261315522788895594790732598696708113509312673411127387396630574423333463756567928363269009704083566570273312137461326193031015136816704211375135110979125964980578261772986910028548282990967128534983243741602063882063846969841930378944292748044792186397340646481668096733689508259158513043984055473377054135073718214993681538330885939637280144978756672660570428259544760712251833299073119482695958150382377338699779582696405786514727667550687417025535231117046946121225137570935383788422963777402579169031334235540226061323219785495990836310947297414160807876601095640075738329723618851796266516832134182025336917643970738432750655297041325732479360969550049867982547296790894198488215814240661794584535606656909618790810150056355304302957168704519469191723930554733106938882441833431504842183843972214001693667362765760233168304610738142203371263197778441252171674783647567343730780301655645734523809050449526683309888654959759675405056796150353817167556464362239435702811404729593740834358977265010733104637348018449402381048567546466582149096082758191483973198302948972726212002897714738424122890205333992675602845544373004674469344635020767955786696177081833466046563139723366876987913524604149526860545619111012886011193844375523945775421832068944828273386016391521204314018622783077067097841610860211493944418338449570251927900243777105221536980869114529631745858099269880512065046851892873566599488166375976828285546892947168964945433748850350839564361124755937128998569916235740195404909963325721282069488008089712608018134982564513127195987670577328532512879242159799329954227288405884070696765495952076697542564826925294765533744309569953826925666394770713379533538866147527540053956597621787672987022000599035176174158242641039249179706409263907187093254186009228909197921688258880369032009695870854155049020811013419953946241760144100794108155341730058351952478842008541838330234802428879597111352537155224158621012007512299763712654663073869775977686683864347420328891511348379956619315069427093908197574818088372790542454884791574381171565019649391414952110235757902276425999271849218936652426815821809496428834646644328598217406752253184475275878649672824061640893316817514619242331344351209403265402622664630803248102924926677528478646077780913193307506605462134494055004424612970956806180038164761397049431831944789851301307688113978482792662552754812789139882081028211071733985245151737979778317119183869793513238225119653988517804164331829658607304068120488863479866741323651710780367977684370549398933063138307610203025830897343111115943869768968984955129590572603156681190506451106519402457882694072548377605711198795733505306227597917031301973157111850334267906732677984966539789568128595053638841672068681161380845884733751812691191082321488176568296055849575708736670479548079335783394527796724807447475244153744286026146771683816393001573592482079632049108220758987801144918014487986603579624053763620043527209481520569598650616188855885384035566166316466525140612322297153167408880779255442338730941200663298659399677402462905389672439842308309088071190783935941424099038740729616178796803214757159508598143392698979344292573589040737169620019364765062224569941481634851261675841825242852385383165161660458728345980531033060424369721091145336065516363212375699148953781182709471558799280745075641469181339795532468362397673859745675200047342328291538108502270519435882713097427382503751223167706470559105924756987224092527572971044031753387945328539406134985977825673208039326311989210543569644870378104099994031384250814053229466100059326915550374375548859833414704056539189950736110436686221529368821998581570935954098834839620550703586451376969639059350580148360248472979895452457182074296002552075718743289232091810910109821696524887824012597304026639786588804231716543049613929208113284716945639182206134027864432614760194536898988808954754275591022776065454554172793237270286043509381480435306778981300284563312986832540719744967767138575498506891744405546760164397098543466790336228105401396406302549389904934775724165913770661794640732018949907527160484525795794612313062687094987136258995920155799827650306944423839302695595047752362516538766348578058584291139637189122095318787568073684860482165846721843558069137208821396539137119359514250058709699236172229286446236841495263667423375942433048405656650424948008516369097972666464498465033410462465381161269330415990015982951463526075553183061208398938402261135939705392805286097518905869890656264263435708159351028134638884360624294762382774280053446887007398086891376497314745244600244677460827774572816152504673696606563717294293878924401448125835464958906985150508453555816092008015745694874606520980354584957953518804122734139157267543369728261967395724623222908408218361446840167886127088476696129045694245626016082691066691471077208546185171152885447047129668233770682337109790831167708218319855944666712738850919086339911971138536603277375246623404636812649085727754224658435448942901131027014914285389731640598911638740887176024589880918676543691595657796492157280431454728523420381610830048941810727537494470797429336609906166818481671049386355615269963731054614976656098875356254021403225751774163339002801614850387826979838667488938700835323251683297876369956537058527517296499690230225653017835276761363080341313585575699877073835841555001296435206937248699576637150040651655843099335958370831464304703091641400139955930927750926222981518316601201917189109590841258365357608881148392115917213796630418382806914343546853307068435975164331796168798616211657791354195564910192535766619023983379001825493048110509126074419761931381905551005838018757217223491436911440410726082548861112790423906491330862875077335243828514379996544376322549290174932671180384173927578194632139352379478013776735444519712143196304015792457465704557922475496643408893916338352360858398103602478800493909974521069426787451158379694323183365991984944829976509967739130509779078466412698374044711581021299091500004795682633286702203153883082222965088886786090714322969509390825442525504865618476540378123228714576849900836591686726551989327665793460746608042600242361886485148851785165392910480322028043600723825703105629864051709705555223794438987753709794461751439328251551137986214097377815455270742243917080672833318849035485849828004761829571782509328527184616625184119879731001588325629130233403393678016812862647543689823055648021781718194664283355765326085720926604416323729578690322322497244150752317595057881875817700223952990428677180619059371908373999962806049981439211098554158342438285278519414287241068921931770665413893371591227211025957122967842164149141470522110433698015200033256291849711670666903570763858468428230388736136998703037020808058047753663702964372068477650136756580322112196822320968611840491577839666183721985733331085601612934776519242481302572203862982686014253909171636175990246622189915990283203054716993406404980654823151319740839852191000492269980123219340210735570109826244500423519946188413201064946737119595628985029277809323820355973284640276195707971559833651305511841164671335383043482472792487658194197051803383237055585295592461931702995849989312690662423078670076022067098334574924656424628158401570455391297833017024668042096409675499573922295233605235879530478506458231339510164707470547996305052811273856047923010714550016784696460484949136135536163607361132047972225711801657950813641003176942667802611665438514209841423914344079420258431318266775043668330293558072476573921288082876683621346316769135781326572835299413794610168864674260737014367876508091842389247361195576733025181010205397913390681153467406042648319307832295932281679860927366321619032020618581863063989627741747463798490196675315592843224312068313305280509444121687090230947343995210165040439910714016209200278389928781112632869023729409631470088801868492539539129794528417895544597179423597728300885548745944870374592867843963327624270146797031621012513992227379156499892620709952446075821385513085131635854524175442097338688080978944961030234622743156803516590826583750025897293727546824198445320471696088488336616721778560384305786784429256794355322168396019984514422140071248984467758936068916638512832645074097301512078962047860476176976730848523568519201837602173092690762588960697484938255746043696294398828178046815225987558250797041745038840798731836402299003717520902163014622682980450630335121113364020453559353910586023891287741081882348684010070267638995424436544813955057795804297484935855824869305412973005220659019398351146059245296714619359995747674127417651905251717037009608072391047449350893506531955908682536898156519710134738059488238870627203204050071707456515737151536780964323697899335031480099949999082635985186780096732481989014025376440741379632352090868577347594058452389554386328996817286195866307987923927450162916023150610370722263284191363391764526225149173243619795523603324548150077947510235031679952544465571687893940999180481213219145359042360189029834766713251992410079408132596397881033040092675934767965250272541465011245202713948823388415411587866177149609067615847810097775634867276267841334542271744087645760942125340406092699565260136139377149149336232463161618087469991688780044946293270283919547966450778406953363574122817487421812834096719404925907968857574695814259281490870147286259987676884669851852539434543279487384950455812053037639659309394695167797018726536089479509459710462672610422163688063506495557358232725173368700955928563186880741363798055394315205984140869491039260502451683968387979799873334271091409107886756181736312532896337090365277244536387976924086263777431627719851894981751455676202928258863459567255125059559081725884107979717274881383570543851681788739936672745464272160160592291319990237967372971243243238430549063361407910974211673962974414675958337969468080827113626177480288345275262987963634787325977430775253083696649938191680076054957361873850561859143966753957055894537885020773250614074105857304576645346934029406349160355297106974971696739366614892352924313750378940167511628431078562411924616608933014023933662200551627071121480543412538706096600346926620292550730563190485110038268844284540981564352712970665031553521416547275628557770872747935082955749557761487163746610590806885184104065318802822108929030188714139806764701599963362220769360568322638709804389112154322838508554282537287286381308779070913522837964557887930927800641685001295178008450130102738737432470492477479962435648766985175458243461916544228908176000941224049349124831334671617025701669402596732626093106851674866426694895546367140348134054981081285473966588149708229422832717027437477334224921455901911956696535478525343685487750757572337975851696024542479626022106051366663108492001823175138995388592609624945412489532902985461511431178964468381150614856506854983240245126689554251750237032477588821016938680599096202751483823635328537333532603296120985000061850047383879380129019378189226332783725071156410312919008054340292255403524073031460953140438167078895880041830347460072442979904722640156341519362090489164181561985398804525696930703722769463087376135172185429958885148442944780693559819629034671421778198652449322838878534866681189219464671821910671352013108248492484723772223378680402995745934864594499468763086537020660360051460202869056512376427989238267969290268604096011828582923850267629485587748360064367944737553649648006322407204210144233758848718783975246833472197769537851764317895603389021242287936566682807696492773549753168481736717522034272169274929062765761122611036059913916254221563217654305416881601072811942919935462294866649489069135383547895664584250576365292509094671987077034892063385537510807334471607119053489416215760587808929547234689071995918989234290335816893837406623860464827093027623649955355505801157792396196579566383860978870609844392126851706486334715405962015152335513062262486310899674760434756062056133072251370895920290184920944069749921701824513523076547608750250118183959984311369580445568544641983361532204618196623828531718021194136324263014604778749324824725112355487544705910540814575476015529017636720558101482886992041117998092413655899583360592062515328592353674524553773121371878302620658362644857301104834665383951866486062889758719232773846557320866538512836723153723590543910264383414010809450967117893693298246788987785358771386353011426889096955469911028166894755595404006775095365117218163040366876445217636807389713466325935999211305975588590879809105917162686935431479050793016241123624036180982230588738508888288573179490257664631754321372974027458197148828531669323249245135829199483906953074920230657888470084592299883280246742125279012275840718237688717672449991158700299082407102148473489920580436156266904085423918693233018330280978583560105667928949192546613934537938241773022502715887777839008936071620522334018689907291142823362465621852838785128878889614700973266248240044588528863014179805467078747520023834700767292280740851563654862715715968438498521913458549267063638318337625520207490283125426405236305603524622496594514021168659337173422807036323332161864443782057089919463344845165150236380447663428211233111356135300519256620838112867676215988289269379492710022321827677367202313191188327983011275230412058022559198656093241802847469271618680972352879666523906828731250456446569566790068930379537412018578396380977568059513212929066462959022902683971673106694717068616209565461413861468914379254243074992251777808675460105549288461354658263925270878806846905603030388346754702026825632289154959781435779584849226344715362524499099217512393684174549691201711116894411894574523744028051733033211631622535630864520770487848941058161129765932825672889497463095562054054702732946957926159927485772075508543283399213499940172682895916915585221466248324970854835084279460603524253845914696461839387666985590915740529120903155015578950336266045656723398321992152522314991969604112330401610573732523024172743931380103057699349473172986817903320827769190777524757957325123361098108906536673947332786727106273685508098777359343223364840087559687271355908810197370573767596279251646112704086446636844586155267281218876096744521455449521721743552525605736230169728924855477579001647583122371307833858967191193428572726487368354735989274039286873185473190038948187416768790546562630772296190081829729796524699081591840376080608432584653295424541634040086477227283456142232910021974984758501872657605580113936657585467801732988716985403630933709816113277190022084884710609159289012562095579832800398418138064577236154955990392832800997273062289978747714545918184075646332441896065163026851141169339680353071667742890233645201080811291537170892043359135329939388528148448459265728513575803277471177708803400927403662786865029252729314671932346812198983862707042430159856653413934870961783226112570151652667324124436758354950071389781713755318483440349079755544545169844495824150078546543742758546425705515589555487096169540653648410500261356480334633158707199244837585004726303797415464445094561772815768533414149893350291263193992782356919281334282672259322687125903160413037981701301265103718939805374263359570194793050678943918992258125679006335555720688986865353969312539130771453900512305571630909804575098855326025235842081075126431061335746417088195939306212531693921521242776598570147759547242495168688518835184824393268613760099940408846408366030863033280166847722053355626694809740434033808591090780410728642667194109858844722496202363736823807936385268330135694723064922055821406912777122687617784864386845824720226555619725340760328298577750850656064491605132531301006878647924521240137852419057826031137715714292119734071694875017176420224293607782822698154545391819334592955394166051003787861673315545096166288969922920587127861833930378263501730843737200573918523044584024603553810188035283800759320516757220551006111291687941225961863760504176457740569608495052093977719129556426156920393698783441166748029611769765258936195439545714179807897057804538493146903075069651164183245214061789143562822835931680170741048585604568594550060228508219943754478092812670978403091958411802501536809928884264689046208765731150645832405367080171282171023153829624345496402148323065521930272363468631630563117256967778877624228787349871348258530174424682895129832340899671408027857457717023949907092960940945053438695811248984934812547687828187595901044923959162215135104836804467507554097493982222709834521996901582242912257952950221612269591764004444993340528405899364885203206236752801266379075702053954382981369359328002724288486827169867730367550740513073238600527733241987484301237293714351559545770713327103578334381178601899710562745328697899451839912287741407802504759812903634633831000378214462993669711887166427894026653974529072407058329875990983302746288749857982278117190806128317161908374582825849384074324631823950189359123685913405543144480899053035404854680082268311681156751762380825450500208279232598604182154106868071244598194241433056740262558377781736007356080523820678370348911999222111934065462084423674619734214427802614842574860035340139422341112375947788699235608606556440982453803599707786497902461867096903907813537377965382002495106555359905805853443386336816409556363637661552947475772577213985659006371967621773644010910846947182734544863674961529701663692448412203739362307723980457149391411186141933376025826261489392762966126854699780972886950618116802856427690954470996302691792091122329305400462213317240639508766783288405151620643076884296070512894684000284718504953281269563186632279293632088697589397053543531601664681031374682695028102730346865343243494242398416844929621724210357174916616461820119823065343595127772654712558136426037777127999910823826328075515143519499677416739932613500059960731183681866734582601035564374863145018700567981780609228540405409378906553443188463343166576022536595314558632221283978426646922388219249375349862022447769266207406536599415121441281181606304501157528076382611508759420313251162696643228691011296420029793311472220534103315157041423600528238007142102991801289800456954084053495228237331728643454184132410524411652397956959780824039261893347542277922466521731478343572729304242194151637249589208896724753430409031559537300479205335534632717391966153357276062187785564421256851349408075868298375866481962442189289702826546914394991810835391584429241648272769160128312103831862385979180173373406079559042785129312298698777809922420363238584711039860919729175445239355630684271075556748584067905605457101796996087566974036985291577969245906509936495593208889332346779831684004030225949856920308087308017665654706884027825240504280519457258761283241711360493392355596234427635951596682817394886286607038014395313035474845082715355094678696415836394077132720418281822245512358133991339202741967472242988105761147951937485543138354671769873993246443454127696459958262236946013195436020640564079977934861795746575171222874267558987415958830282593224116245221959862226628876287717650304079902071005483201334212399184300711828259011751163443687900071856250102843396158922813222759341256417872235321334237513109288345860991234712722850001580216595790424995056409395589021120188898759526181823114300192222272596980140472798465287516712904183087470601888305275970285487935397937218280807180716927573250265509211878072251553471740884328118224749982151352102027561363201557140633960993103723552926006415653013515173991918085056500061870221009452829322346976880552984350606928325424080562672188951004820068569121526131635034967627336280357289146650544107129908059023253336863901463468732530138944918883366353354199767049844837217092174948033453286926113740559922358024712988688041981273325731937201454830301130805297112693717859775601394308324848295054591959549867651647777534285856335846067781876992216159662282392255657035342994344521209481380511277750691468950663208421106079410131639542900061338997829274690778098374531146920796880991084486703266061803494961373020321810559429942554558557592501926580946477438954224300154028205375557171925586595488636463436175783589558020667033531279173438119349917958487449830801062944181144975678586536728337701424081176411855464711915587694470106158729163875201057484115721436324668479261332796265287427192439450982369117325064431321960414005997263397097392250566164561411463680181390985829516542538334482601600570730333749783271494968653085629324709229434037694738154672646964545682202884463899556397631725786060117892983887611259839296428074253044684995948747317491112861613289873385206894654056569632725638475388923489165855026061213031046482788449054944608436443913090232530424466025676664359376348772312589466478179403567961888134177427265816528476278417372673587400392160893805692178293384428971646171210981182091642617938925841625342299120650115547505926256016557471071161987462435899094259022553531885407504696534612011138142037021328466955227525534773513735251068487446084071951959683280496667352130133134246327549066209594643253260346992508475930397559214711893554756934776465461228658228666086087237853417313348378592517819886058669397474418463457082205808281356225490207044702241015328689996575711550738050792135751041987577759977747759902488020452245749304416058443600625069048164596795327033094911351862343958235163131946994876188648966510090509526175736437396975494128644056709804105729736332269131403852094375693511796327088222483529031224290031418837542466495754500153926236548356102327761350813299965534301294426814509533100802247775434251919166954688743201407134262853525526177921577662524407358850200175499053152217089712613861090625561689413446164742637609370569539947721631922272648319772979157570317556839606275434816478151109395864748098051562906558633599287026678969365902653354437797838685026681810717654611108324761427196578460797597493880516556922926147596345253431564296108138914337971660432873602566749561190761304144855352209661088156898643871819749571531497279879690344387130791338562254156053521831380423176429015149668361406273266162596506832855932957404620011915816910646352155725085942827910808344736007906409814070752824112109364448163159203494371219287826239068335466758154055268159536129051522828128742531599191255688437734767593728402757669115544108346931698682049878132427433124956420145826737291127046016175221667361176387524787720290590803443041384158829280508179385744884481737457153001127793174392525362215159550507996462343182806149977061268509929170155380396393164616513353896514681251565541834938112227808147927892785337712611188930594989534865040808818078109209411824745931544671112430604952845918693123376663474685711525739608842777768156037815570897068923428416845824856192877270408235455314494368713395638356941739639146384020500968007422154310804573618679640543622346818112375993756094688024323245321197812847846224375697622419884394966347467561420585538794920348880644385393403957054946645509207446937662905485507458828368930840579079998576784715020505226255744164184784716906439963247561632739506818427301484130676428826159346026455102880363752719826228911723095206960199125722035805482845788121627595955595812537632081009455297091405232390265144924354960882720654607600526696934461345560645668324414988624939960384020103248995377656445558094345025849818679285491637301572196055594250814764070053847326694529592137675793548010241667830950620134928900581564849657959318936328966536275090636629972696074203561435252465870463280337925317358452427684740177546341714263950317015097925231908928476690131948729733699166181557167689305052520265849039506744204496499534844695148682067634445170696458100918686734276802171017367240521249832016624033426548717187774315355761970863298038693394847274023296834941614221046460073570372206816023426841351292000928249820569504157297635955614672754202652541904338510265985110883955930297931724914375629605552020537196370117728334137686013115434795849296549304029706855625213759535342280465949394844154561110811743485283948959883871861465771364302101562439758554483006829792120037549200905952572557675466332980210895422878951791365196551493030082094720029445431626853345633466294262860986823535265900723504617110975624514448845225801295895600932404731388435519160378385524193542881919730230236716736053031117978959350098756984979761437150948269611713615018675855791983198521409507677291276204171103889078354674908839222650322657616714190191564681534960289054292453433918474807386927793161519282808867321881664796134790883334340990902476734475830526218674057649896556733496639407337289280762600149310689558349255784746657176787784188399721344515004067699047237902346827415780649177629443362647520269340584475619303478989846071951735555553878684112094626060583448535035489062342193172181370402167626677120876222297761128098953323446264512046576212082239322839618449242300333888925506177508833000179787391704484658871651321871386983370536878871582242296965351131305739425288401272040183493666759111909466388899292017834247165988686123751832556090306030033990615720346694237143402407511712917762213704838983530351856392776134460748284222704839796937140524678766378202362407948041118346845666411822462832853460533073369704151651976961320789789548997468059337190837999081444716693658591511543236145449731009477003441960825180318025706551605145446426286729224722252107698780267007432708881002751372364536993800193386234287762113747168703745751592158943653016762162695618551510213095125144155449756113720692798196779637490925061423666097455131388544873406745185685038244823648060795238492596236300101022490149503865939969381597370810485325934327402683046109980501942424530579022107867224966446371772509729894893549008748283929953921928842846826884545160685303859585458102202745586992305764134508993268773710462202617622679595888670402478593088573017693958067113692185111929029292041566055798645824138991997390732260679629324101170718543050075080729081850591837714270297923042389892712793843230941860244843692217987120931872019047987447654248274657297343663133955618052508429345320762012520876406888431684511397272960779999553863728971228025213771946695574716165708180614163401884196860956449830988427117793401599424592186638394136995409719394055943250609290843123285559762142793275784515893340340270028930754152402952426443776085035958105686142167598007957218353881720306437031456871043375362212397238595746551595013560340500242600320183809395062894509390369577220721785399205231772208697583842842418366055600933548386034941594484219281166715173321892697895348696164693073297786462812800823941283322576734046323284736167925397788339962202263157495197684396723291112924039260989227974292824267907318102255642533319821541146747952598855651589830744626764871346739071088042181291247885543637922287334126309687123091159328919147234087300503735772839451175067260545614147915551239320157576806451126967297410342733441953025094999101324965005434353571646963814050380502333358511997891505498256144033770351743799318404615833314765653203104769530932010274653282490127627639139580944449115565020611231014794859877735333802031995313158055552696177335025505144821846326961163627339339925266030189786984185746790944883304111194032912589218888851815975655563460394604572835237018071220979519945282180270517269314923804909311574346642280996836964562308176772326200235682456524388089545413726315163756722961861448915617676009560490955444115267026941854173261374794214088138538553770131603312494079202971706353093439673890183512688690088529128425954156905111462177671955474998223723664079941888543510365542947463840169451155460611845783186358941788378173102365154137309671805609027044549700188186993380147492955981665929704149268726876573854180765144611182920579155086719624405480554721896966737180604786878694678517772966030887248685617257965458723896165226710748319952310961575208184643805172563039980844842496563254350802898739797886149402650914990578326186911699044355847821093829077860409235278995584598764801286477762015691292661796079004152466015568126576940208302929199685438861246073353504642237404500609429077987727878474852747993074458030429498384758260364541402822480321572559010917193645275761011215956768530604580053962222968174764583885975495519437799537623894341934243026263641496575097285636053300977162610920264925801891874830760396657752025018674692791821043193104747469400347346541195484240825607111502897457731149359106382885351786359616121799539387241447713518689263220736873430582680176786994763711009051630283622833225791322470590897538924697616197781299296916267702048486120265903942777257762025252485406261999796108266949415395681427977510153069545141121009556451557249057770385983805833970713875015018920610346335139964399231404124194002290527478838947399188380866855780451868716282698141300509672473433276323511933886601420012763874687678914050966781820801145038328267039753336710448731900165699813673105418763306426345914180758556964284489343958105823823414743420570769073490693586601642037036461920463302643925430469334975040729616682396093473841856637986222027248014863816726888275958417618965924636446459334115438194854877984371509995098435187813568450271949259127745447201484626430011422558775491360894989503216708175824824141531122907331375372098616721440299039398051620058208760220730114472657190620695343152817707329983790234722011106135061498999046113517947514176114375681869437469231535128755642255588334469766018583870776370734307348156154932864615648834152066300314328311336611588466796721996455241879533710569139815970754061906996877326429267829144066343448032941702008499524774926421093540594410743083241979091422047415224974306283530820632121972952852161243961235110020564983277668664216685412581296780967475884103636477989097263592995094067248689666777738837027504652895567183939861613880892225384399951989278864662618551938083823334699917720485547948765337195687853721346420717598652744914280547875344444005795395084290929210671652063992020472153230130571712647799306070219422701124192901507256645174546579282065724048029264586287189657291804127391066822919138214222859208852446949848451108082692292227298090891066801236181209939390683992672702255935061442486449378627401778509215023614609017984531118398424254244840244870816585182545515077383497604662700226175696368239415939721186566698859075486247757624284116431667465948573501178383447757268054104085391833960395848777618888296575167160381654764257216970344579742494981324914478026366184527165839526099263720044354981288724774139599781038751960901492105662886440823384053381489300152833580596391007684177613401224103754986693704949592031204949654238984241237581835252411907960362938623063810103383237194681607549523693639531913879073804683498061362869643695248675197326917527736332728697894933221990457532247303138121302078556958937302058497083909635960490182595662913138364710314780914944054549281618894105357317285535086433061871645443682417191737344232840867341044065823611010182284872560523357034870662698827679230145353625838506294519632966804143072790269514474788871647075056263885635067603702602412678341603358559464214453532111029900766888686335040712766534196418480692962610244981390154134869055392070242250621844687246743070204772271905483551861687870171148599384947268737802508731729575118865361345575293061377027011958430697737393964246744572155364833794279807486501814257493221171433107252114666389516634504942185346271478729907353066791705067722913233014241413029127661504851998141686968639969565555467572795432756291932162672366312981881808178207013812812348153417654876806174149249527506037132143825705318639933247020975867855729026978874962258998047585413397370145093946332209442996581885785760195403811914749103320938807436176013666184887594533848002210369563652467820682610402858991531035097100689268805614257886195028604775026118537470030980602876380658943529395278308634087070513176147132459347206681655098396541771650782191972588075281833574025814504721800643395707503500078618597076903227094953854370156030807394914660221536728419257277360753742066226388285488693237394347253227321422613450216709213492367563072828884335028704229409426096731522665532233698008719224896694273212413107315057282993692557661804928611188869243566530089081415404150547174385266243428339563084756164466713177249941170880694668364095888699592085241468288960440832311527612273971740544736392201465496487506408348282228893480939329041494225331692403318110325707884080539537156458031833074280046968730470031949933497916037464092348134304822890225487463123514254526249432504267763475671403248545859525422454294362607990154254627865750525164877222935398261324115835476122195918489812665879654015588402425587942433818216442937819120317019588724002668518303432113645753455969153583392268253838785088733216873107934126089812149438675056184052396900185219900966229962717939207254194254025754314463423779228799467693164132391222153721649182661554549560936423600187163678303582426615608722534695829126947272238253346005515591484206357746575639203825824657251755548751150359887903817224097710570177482007834427311021140690943444594716404184986683927216162330184112218833501327654421298443443948919830213164976681831585661238074609887748699888655502626261500466275352592144872222500266362661075815568953060032924789719564538792600328066574850393018469293951644393475731797736472600491049448110957559479861439711191231391521586438869135111646921824762570425934987250368555661261374096647994423104666408885138109973081754469711983500836836381992501829102382876841094369334879927930705997547435346586322220928832787169327436202909524568172698972736003993588751176510769508575267122632793418738498266470719064904867425517344434925879951836776551685250727726229424331243840855681422127429667154050084101867560032559593872109815982941185759389103693971756156495272152550217206886927918398610077696206316280410084154361359068302586225278193738143362246227146154969591538292359387258562705158248609651344278933348414986654777106703347505283417465278914092104080128122969335601581266223508495312527558609194110007336431811148215962065465677175059411247956720948884346210129136353699186629143903840907588935762552747069374420215810207674417507770383591277148199691269134586438213803946291551855159585877458208159226966765824562582774075024975376241713911776222172571216910763913984271547639207703805849231440451797574955845417831576122572361620638992873159659067844321067464893433710676429228847349175335012761178607299842039564738683737589273868159443510887839488865695680222359666299295668683993612337501290347332912645068877026576287677378752756579520795105611396305442843932603081050670230400946965306183182319555906385242584033053679886633445364295635023630113986221027479542654576951356940515422969400671757847408132505557622552643249797533549855252929332761303578351820609273309531797055294167349676488566100317899060528110344357347085535109893517723579815894189853888449932758471998201977366391583201569754679404200080868934087036628413553807939761819000137570903252853543556265607312346490889936764628139980352978845502173405575589747289747175880821703497489195270656642180466148107344998032685708186665721548358569704319505979737205828972805238340631098741133103343567032954888595602572901170295408255750710957032743388897294906913940293864557609684412502405684716291706101861336620705002924389589196617055232324154001706448070874847021395719070833653993500120594350781490085161724843065801380030010529646225538719661190603882620774528399619570274856339231984520591888810373659319525400197074743901785296008569419236744147311840917161668820013304308082560634574489242604138034265180090667537270048662853000538085775940313562896829805995144409871006008762920770673343590566017572126443929521717211568131495624388115588699924487857788842735629648670564936678697297253408166402597524087412467847179309860140718850121521169035327833226312430204128295259439761605648830364178201662517331796937759755248007064768751270914736750343810292460001159348244347177776209051860944727737233558780945472817682113648532202650590080225127349626816098640289251868583942214567000391285637905765575683363125871408271125651759120364681188176733109756750297835026438688671409214826599828898636154027072731703824712750637553692674312773964225552756534225629665202775448281934533967725614922139865537257276921825601565575191050551738009597661572734740798601584072558842131876172543219627789056779237622590935189164522347848839494312425068558625751610894092270408372374693843253011483556134879585861920114959846320257510101253277369835092381287051154606243779703769881282929439514904473297029237522609704147068197310442551833360446806059667004809984615622173356731985091605300626016746231096423597555697834135782961228503967059770596103520784828947428623867164182762046906280570474152676059458601921967263934218787069965714477548852382896514450757391173589249381092694977689829029840366366778992850628667223613567790452853878460132301081231326286163478495141145910612129388336250878095948690730190747231283200803911952375087128221488167975951504860762875959309284164958106915270315123601795129435244651031302650858940345386767414207582616194394444865301213286182560780966523631902688568039308178705196525249936725474363659897964142838476499593743111922582051110473729924511828716610643357389830645204372981418218325817375101629235483353213535488253918333938028524284948827551115767784822439962241824540440635761950274741292852093259636576392868880303847167309436132030078826774973019760326102563018815246496204262013284457085321347116674300092230196969233413928921799778137737905838480534949291811421257149819367504604717059987490278937315350275299673236248025596172769641478524884681991346951177533185305655018505538104554791987006959236560509607902096951504247731214991461914499613416350363045796210501419562655917131171350071006484771257791333777776074621182429085613642876269112875469962819695424307958361126154864271971112879673299681527651299071448120210906513138604772021973001681051066350991279803482857032670917243644616166578441575848351866917763902722084079703777722234404601549234647994564990589472826640697223322751001494248165626705945490251964600746099625364861730726690739782080320887656657462596875066712420475860661923496670926951986835550972190991607228448620126405336047296216692399529680971340623692881799388629186731621078370719526610107992086158228812875449174147350154301690671827489031680742521371966249937126286309535757473487018050927467212464148247339308930458302261512293738661398365418051988596601813037794240665691698705501041039811580258548910009681334372550130767871639770200486992589456744010335766698227685183136519049506888498231300719839982322492713400431152537352517264877930903243167961729170840967927979661719852852188276231986868229006198986944657575925480356026900493279159835879396873336660567080197695008543670862325951035393903274304159335587356645047891532694249250885198554315291613395203153920244747101041080570912332328667182174136808947269304394245230890036842736279321073261250536601604726493655981738380697506125292014943432028227314199987573708965309418407106451015450980434402254592508685789903070668937637225234427805045869036160051136321231897612094258875561241824739727923800125446739766147392418386859415980027042849586793200104005433480413223711270281397944469011062822661941903592129363148149416883970559025369432209170311048229575825599141564805214296135988614641094535983745670964212666945125229116409411965028662094588724217921649394314375787954216182097785142138556193994439660295431429578585397496926739530872684631283446129888224146987419313582724344365389530306051170021384755608917187874536870107644589093867485962124464316155149012872644594236442464089468068862157942953909910261532006831443031858321438997550994510718625789719863345208750922047752584460888254871221958901058569948363964732916282131880063133957696531332844144294346326501420186048289879940867816872788612199255795039321225298504290155849603888433551130476024979437223589071956698514381614558984191355888519032695786613322530546103772872183312198391858924958098492620537509622269272009017164497304577827147521500502994625467201310537206411907942287691022751777076901088206245336696344088350254266124250368483343496605128173630466917491753253178924032020173367369849250203183980410074742068054831543370228100808217324617525491777580270596433447715184296362676187810126665433736750841869893227499793038696019241899350329993103564183134923024494468322256587691589301770233670731745467716187476303708196073792941823257920422195857549993157155866543134827742620674024255672023823037487926420121129679327565829884133198294373155462637813687515328088119601823006757895350627086448538220601265183691073518090543629677679944594992399586524080135375445363977385564072973641082258149650185101991086611183375833688210675433156622794877821488126643989695219038226446479907565167479525629938609840433245789569521889613083868439522674760987176792404692438189942064517237718732721080557431945139915189356563766175809927218581423387536672069636489819341187454429272807046327211376592723660758435080097002964173458086037841444725775220614289160261167177350997810798964428456420903114860171120040559080994496154390076732278852886777906899430609613226506367676089787157319433495210013476196248605375959705681538475406300436250660400294839293684009203767469611238067997934687491524886077753964254474353457569942721410527368493690641199878822926958081460374254404270266536915792351569637149964552601164479766035171516484140861880595804793006906642365016417144989898396875964362962527724001322426074588424057842134390161246522322951953987257716900641682373186507702564912635232168755914983016707726495658001821736353106727672232894769965304280221148571368212036753447147958530959089607087649138067917737017255604299000500612909200655404700044627655882446195595419722039270342010441689948940339792767741637804959117135625888855826622725540408425987205500418774542329796010863045624765576651358802202456887068870464085282978526473398240122531202481551858437545098833357607338435776136601199048562876884182235832835030913854905545041621285471004040541421921378090778113350450786016397512556990416893249330233621580686221999062574735448976732729790804464299223378532982161262452441883142001205261873855983360480165327064807486067094206869815446408565693095715553379975031960293922185343092858647336584003723935367817509008529465573346639255191248221127610501665119137163907796312917275843697910012361086549526793986585204141775400926642431628003376142328907254663047367570776702165117658167017174844159409066320119461281147176616486089537027308931179199561738566953922991963500597652610418798444427632957029550201114548522873267548886538658121688123971526044754369181758439788592386285558912992468471021278495286606853940089606232860489979390108459792060325686084407586129270199122614391130934617482450833710711413879250662862692019013422085424192925377231697098374562408678632457935869585958323419871312188818354377468852943285357939769201351876699660837833154787432187724810672163950990555354334179032239877776886330544300916324758921312570432295843962735202742028492307171860244747891954693167312987702316099765101922571675415459805773268272442274626977986374108583030869672270799847619003769456903460100116980815683554182954522114844875935291707912022934938147646961208947179522625154957208861243053125218064956251641685865137160495516666298835218150609288087857368329808862369731867552594016058057767883317021083864128063908634102992231574437109243762934452559391011640844867995993705790420080195338090780299574633514737988750067309555798797534670186750813673515427755255882956761399403733310824201154650465276443944464675077837150361401671716217533394588157634770734749936537948691771722450032587770683461587817922013417316004309489006572246555993951151323477330043521748229438554405682043970479658878468448842367174540204236027022431785856211772126373988142608939623230254691023725963858509687142020892190190782269976476912772184833560990023915927224037291636557032036994378778104072859191555315243586961662478676341272132898948900588493138837723390187294880591230619004560118695509589053564628684098219038372705463046315464495289514043902663635291309260000278417900796484330214610108098933810631205866511907430374748735468253334765067574877833689517323243835750776571351014320297782538368904292969105645596860896285079049211088882102134983137774588083703227073520870344372352597197657458491383783266712907114679712536671001963624647237451745202004406635414980361074276431976474694473220713962799290791239045867865727818261016416971531220261932460497810842039624003133489542796714653191669801954776061209124068859078109844532443521132251211651193373625977676297748131116130787626544629226353610084705007321645379482583932160734901756380666553537104299244861829172144901089103750006587015097185397883290649940135380952936656590417869120697933704385399917836253586779749241294945041146503676973015260547260836312222546347746205764543203965690115172610922860777455979842622408632233613565936135634264314081332339920570558535847769685071127081261320377650165164341210591890332759593666276245060647183465221332244704053631452069173243472275835158445043574651353324419292400041146655656820569750049204094527384935204495017486436667482018994699697731692436105109299278338071469495169352086082112330588382214603061645112476472002341841199337641407271328770562387106356180601028556995669535762110781902697453393756707932313940646402972797358019659542711749949146608439124268367275693545882893658118304716406760726013150756003252078739831805278696324216121500151650858143272559831000000695853517549863737535778039364322948615194932978366885030897278196342725554721105299657757326365826895766752613348667154823429387499866322793026434823132125914146802490921763076251055677647774430893607585716944993796063213349077834959131681110667660047729483315568313665708549096953207556100253834281863159979584085892479895758489814915368525966120947650567240076055810547335492810946421471000366261389394363075817884025075185672058014815603176527172571111638812760094607175385263846126864753496109304540969879689970920784568398696783332475525120611263890278228207071147325179328681601636213178299775206285339151004693444019476094371030316244069946044316529900479832973816422201164118819666257199140214203314073646374876044779388161906052310721959029191042376883234744254475761463360182799143809852822830221907925035734503755475257692279633774737443220268858319258025226971165398234394085445727421393344123669029103080460050099058400519400289400859635474181327435569918440947750739735506567346942539497441390513602239340051217008292913007938428543732823749540017363345184887223148246428443763658972513881560575894133571455493188124780813166384080545515092715375015055762449388700074361846981443899153208144658606176774863335407257258067863389484050201487060872899680841027859938181283210342226183266980613048460502491083250509920339715676680302283716749722945909975514641821588494517567089868351044536384033801572881896755428864429746019836343080592079761751476676881389628145490523712314872241720288568082287184871239491640701942811937102549503973178000243316580017324968974943895593578887510164712717216235084355275933666529606971329535981939453740442706291686040487465128269868768170125570053024375170007247745122146471720896369630122829245161544532732274680133360110871209101685411072191647755778429655779007872693298707423936200590580373416167331101388510434855918079513794540468796382468949530942614318111677717691103017399044599161959407236622804367403014691591240340891666016907411467198796858071855413103443410562107944177715146163915302722430787753219486302018095834595354668407505500122220593286118686903185508001620406159985320126817528515476153022719687498051565325926972644768881787853027137861872278873485512153088125440682838521816125245464245198267313414932507552404554452824071225123337953885319481613780166012041771900722821847053468692494356169767027129319833297660841295321865580317277206867394485505376344486431621025387186436578606632839830549721635631790448879702951446944903723379423639337577982403029445295537314587371523836320033943916746247631056640964278236380642491199204611829185838880932126973765983277792353482464351664216081675582129326873998790793071055191543157208853492275151910988747241935238771974271515748920657285204407125749479321071478170126269972818610999639888083558928564645411735948868284108317016310057403174525447339621394973047162606504041040057227909051783335309299650338081470009751682582630668906437908144276559499196800619849162090055576037362732555409764697442221763627876689763998639156245606291105642865563590047261651206175829385636208246687808823345669534551511904461230470068592122897612636505028429192379850208983153813679768362004342247412965942675324216282595543427651195524890930095149103309883974911118910644934117971201529945417508769864914704232199892887828327089114799805582101883301935147170633807060361193365299869600724035881773415434177590773714299986380351627006474870583408712285593473315605830192609662644966419251900832151666465863898502732519711920935144406520373610737245504714022601713311820556412753910695086539163071841635829623685713479732789130892247807256272067862825490035602750753477882953140736807603955207266838566792872055489647734532643203446732776054258959338041724333451843245662002886246325399351637594294034816920759421101651835551158234789101710132882195725033850645637701636636936046276243385455739981419137933363229228116421215189267333405209272108350999710426177357331126554130876389831523890781868177726900596415396911231546650820304434580604871514071821780918461793588084066578495376850308805121632116739874454720491490811390581119238552598571051597829575959353213060580007881468353236907393235272234380448829679378943681029481553067469536339021575393221205843924513612676292167806149147012324832509265018666983587666042105803833898932656333803143072609313380044145291699460586397256615352063398701860640285891630526095380577858134802929281400834064724761398207578517954589467840076769867931271170270472302553326449115756543728585727352631033071287659511456192937745563283529968782210090841603886131610789993672777944183583734974606841068273498058397475347782825764346439223383121912857219327257182568420848166502104168765272389435442588876370568242205997041994804719056040170223444206771808027305808143882107989885369209463192128977913451535204138136985977410218552119140129347120765019333884594336378207857673403488709103887480697364830433236807574688206281610439507214594425399649315098286086876969326839135256721306564925541917203895220157963806001581878609323108607008910173659904573876273517419031987835429167729635837898187731153028032367085164245857446934237738945660303188447926878474239053660983595648999099354776177578974395845386103895278603948267823372846221823417740818048005950383748779550274591980137395454350917864798443916528341313400329537065682842374342164285896873695279132256568818922380105299078715577345741871487853993296181030136520843688082196795181347520499588392905011283652620586954644709770176670196216861825084632998408399556006788750429997313027603813694907705216630600146370441270855479063841647967521527170398916750882680661553014683152930755841581258671906158323371660645321161746866882545816882061105326867055096387457372163208131519822956913457900619428984196288297060614115263915809297956539339037450931190591905429242418286597118566330310600775075136669753481870823417173382146215203360378584516169287580849642236847588321132747270538578547855915876829537985269199170864325186021669414417101847214416710696476001430549806420872503510602577278283756397603502848180106995837845231547562715404769689285708158693803705153240820836505807016377918424789607911127236218789662856982225943611297124532549730985056408136370718250931508553206371478818114521013577098177921523981013148920276925752275447411833918727364886246236414960270255961547225870155350253082881618316188558276185049305458248234618287212470863318006802233912800469683893478156836288685306086575296873737650124138227024588689744493969248021358795549533718744148977448457079818971802209729576714851868851652838182000260854182997495032619179983192676220940523122407379988494475216540239182715764061876818127045366473320410509174954240767821844118138601167106156841619460915022817565885281686354662449019395587418586056101579938041516649753672718859929488884351615405416343909912602167274516647162333916010030256383308156978861669429558354809345975174116004977449740752054556819664892147104862520214067867509028216042268542757012124393193907154264518932783468170106427853612243698274933999313327746292514860213026145158374491667340952180640357594390021812186345758204768674411162253274187530458625942850114747040788816447315983266628663315601477436993260164809809275214322007315210287649736130258113023382395569980905758645103207678425590686651851708260503745502178275832915799168865183071883238296263785086714786295122059812155959267849606968222515416768205249402086568573168236242641302934490076369962816068201984800559846164439956606988972813047592596594300199318646622481987114784802443709992770462672515802742437425815745149458895491425394377138114449515377956684940899608745798798059529746433870827255291180395667891432426978600719791880437232314235085576100749314788079374924024797216240298075153983521018259037385657957051356989428128709805260260883726652293768136283338988360711903929355120042276784575624819669387780727831423778760453134559553720869164649916046336741804876785096169260274968027818311640951576971163848219084410309075281264062443914275957969041398277906617728049572941446098744129522611349124006837070814889467845950864957290472520332969055578532636977475899634602878306309835758880594396028253673128665423417213847486574729717020981318246974828410973745524112985450937750395344695045685601042108854245814741595103843703342742315293572265537272475389831515074124738012745724375910163448089489646498595265945537240580403324000532149963308273258906475727450301111365990936981680611857219912156878509118475543939050197124677071281937960306169871962876263292347986086793661417225608299644062123308441802982222508303168947668442684312335104966433550144583810434936825885447921541397526524564773733351590921100873355344265009544478917701703213737163827003510916155974133514502782325234156400862383698931285835446646930884920901932029032930679083870327525750518516700135468928921855837009989370075275656677570692836000534473876534731463519694619799055970288780211042637501662752666706609144443306984598429313095809897094767267795438512179289957534768204458704005531109657571330825383970138837890051193375316030687362698995624819930848944470336084412693651184792384039326799791400227908671771965933140829204677001217980788889445785000191045201592504712221631524267503445753481930261418661307294415647139247222989555287343628322927029018499368045417806696073937188281737446006282801285711246979370181119600403316706195419549492510770256586052938633244809292045400781008675968626392660654024016091056214119028527627614674873852198721421932278041267456162955170882256721109188232569583687491679322131335665138020508515847242573826673969287949412976479874806805370993951819296714107415902529846175979674426992338029522113468848907524153349617033962151673106505972136142048017984826094471775649946859025979709512260921145107658796889107040901510762758252638035755464818486456910333098417167480284774985387671891825338348641060676252236061228170610702145922055613615766610223237660291974919036464892518603231089883037934904096941621213559589010908260262705015568620983359166656606393329374719708893522128531275639088623803990320427464100624959446557312343312977660171671860708646875748947280270626073261672442233368243603011079796568745107777256681549356808434764616825860377622659941994162723866974584467090587334626679080645221626021585744833606256102694661552768182575612215940870376551311037156543531242159629567017487530151144166362500335317524964541945838591170409775803976037588488133202709400662053454585205546290792072292336885819801970186308816829761909855513847378692076340329742035446162633622375016820951059658784173267366245147965131016239817235708993492778048106682354798652268562811528481119053973050260242263020753944954052807878394019969595937173634097277031866711555103132312367284060962423620958130311960812015648091414536420050499056430172389293862218492256802261987939390888054188850534299010503741343139914846349310495685930661995340769264042813717031119459202197168254639628367743525968160479920883145327882647732971559476960367668728813178202719126534120864970067513344826779236434180734470591415226212910695415213388792394974955026804310642489266616699487611176757134693865968778769828699734443799115510387348634662276225812662467874707327931586632528794643675357385791127373718178501191160651883486152764521883775615198820465586171431128248992679437098076557476802899180782779502337537817520797990832917337343474484389647539071300791421266759190585529054855959345662277057316906584861570685773049443457244865348389890647267314791817294301676519780048724161283953238631411650488241292677446069712644008290615700328016983451430599541803101700459540042799346680062167016000001777790142684608983768229416888381809213560935069961336558894017713424519416304204874492421407969203367801978572327303874771017662513088875664481789443307519810796946577398853138010103510862568916014053845251503314739507063798510968589148261949651831258110754134236325731774189732131452147019839681284885764880239553655646964283436696396446025117666539105485213845436288622054629655355739974452556064665813519391715957023149276356842860151528366643199964521350676102677010217943587500695799358905893052155154248822812100682490482294067518216640784999702390840023053929157789036300479632600700413573491646662191015801897134773100117295938086801785566721216493811852134048326797977884030293305188630174266547221562507385534415863813173933820872275770947001368132717631122342606734996466533238411116440577819750974826917307856013824780907958011621950797737408279429844097197824919697062520223905724207781913463231934180935632168460149594329968468414161882257757145048471827280340894361231590813759473488257834539641354696338977764452864828169331441281350306122406526852576915386274241762901092993841115603300543176930002044724566591510773783694152106975263282349017262359662783394946804611973713138863460928724329586978121423050948988767846350717720530666234953797484018530954553308694181343725803706153583418275634664509321657604705012186929834704527709212469047123295042626685810129568317726632694344394873192244860333941276062285795515053109637936373798702695098905004512618870067839829223594476657712048061933271756971056259250640024370140345691402303911615469299073419328044200314764684199867933760064880843414733839298976836484687655556792260617954102626067470585977021599261405509927660550802267008450323023870609879655844728158568763294372081056099256298056711233094832906742875409706205917984905542327039288352556620591405614728136777952921073174288566074072407745030269558941066920646926860056538624971211628569655027443424824894125630665909374770744639068199389849641255772769378842219982906984550803539165205879132846196401655481532950244162061996159336518390157939823300193362907617325396354032211867591064119096088664847367005623099299865652665978788104133331205424990855629784290260643151857032742933597025305025318900524945620761100284240859822781033319584056671144011791510176390424249885945404609019093496179165087921806012899248780293615043050444318016220303918837639407687845132218115910903328454468237618310448058429452624180298975264686016434708706078111992955380884934891837042523719629910761153918073851776058196429749905065227194813666205791273785025662505137966090221113335527060945437190562297168449074457215272906315965261034641575273531334798464226152638854870088031006245376993692658259946675920929306960829935080186638404416585006006062276428537460029704814841025793893658065062359114425686183593181982839948445343689823990456100549522172606176434482911880803068774055126797149763433981473674110898311826937787215800107761357178773193148576573487894725644623670108379806690215691651609818976227311533725530627023193581547251408800999478876110085946994518470116433742746389041636799511500322297154879579922940507267596444826969421544789179463452153378295652622189402620771240160355979445683886001303354905320280826874372969515775710491918535755624671371948261089352595930871231601539414443722141664213550443510673071424599801584767319657890428052670473052960116210396629849077080951582192733505408823983558390994636900478986245010113881334061746559096952825002142939919611416687833012903871726569825154300467519016174634909158113041757790773111565653392271958481521858105713898270660538704894064293032562255451221117182305462124419996855351594936709357227866703277027715253248822156644934177097785757470994988041049564061490286065522680517567289753695065412249609133282059247195622395947479908796182043877953520102456844259702524220011072819835824131633301663683006889239082203527601432516039163162874065101181066711506723510206396105321197038318504982728589825049514889526237643915594920187768408550045235213521137593315702074833706235129366226011252888010767081051995528697901245884421065157036733686533539106611086208972095303031953018101079530837018254133771076173614242755087831810816751761280205591673686664335375114369330194182137140621501135012823028589878001299700437165976894191519114992000880017358883403828643428476340554493745917174279388750301976565617084686715550632940444048981054186227671655003826697576964406802605360859867871615205802916666033193983908032491630663952328511979931849719130382997965801221249108617878549886388010685472700338571167061253864393602417381156810260514908488396937256547129423138212597273668453879890592272240880263346713058993415215733410008692303115812833777440570655755850827653503073698857776858759154265670542664440320023115310899350830934529641340127999093399167517867849768018964308816948696663793084693490574252771528362969231899539771189045503090581938802948467811469355574647739558038695017128661341519796157248457643835004050022221248259882300082866537409454008303264175094843285782234007348118794236114008486563698423554665641708468778150695783810983689867270972343065542652750405770707903525271467771510517245936922583949985478765121549231076908498618334797555018513674602515073352042698329833929798843055298828756518043717598904526991295090279637480187357219093691971546603856957331348634825782709634555499548805939006846852762854158511804686767019662762832592114881567995614888909396767322415657695622611577132906301103386744084180715419764306180796465067802589065898185494555515054352400336679691079109339355684504711262121556421913716139277080514724248327211471423587257261700905553761683593016326958613895173652539114968224966425169598093300577308534150557302755897107943998960434831779440477893899395684189816427524795459671314598625175906815242630764074533172800388391513918830166791154774966508775978036589409325009017808817987070943773317542243934634722665844037025852158132665991502285650040092760496812824950757831581088382081145241723940505934531390527246050686270732048807455939416447502971940132483193836614342603627818703823561466811737657269493896234826561989554749478036243517005525334561491275443683045884958582111939207486170433260519086737636002884853729089082104315332098414321428125048767729420085992069284056591165900889446471185887710360957867709593982904662979632001001481815108084547661481135122122250415067053707110273475206314850497046639222008090043535767854577780992082390609838766632016191754090358162956776230444480898506193447388565668093400740725172224032907545703944289023841506642477105838758852704454273547037829846075039140221883140159351928327859054932698277876325197249649103695204830404405908228839405949542871049427519409413038814398197880446356946669241680415235857119380241422969870645870179171237142902173796615057376347689594741101801650452023979411483108916197673846439132576539775276684170593550177812579433919055599865682776535651626254374985392399403997038599010921222557856449704487871161451346389119466499892015019720871954100545628099784400305090374637417840925924691083067561519999416865556312955979087425958733466414769798297460833406943819718334872650915870087782278533355142162142696071064175887783397999628211995082269894356734773419087745768469237675772449084775904663628522096301358561866341402059974862489391520455707691978349857953682726162098294075396901926792197863947653263138223962809828994650593273166517128640636717366330401889580183310319484267008693503904545201256746693570154479326628827203682969044763086204703508410494941680998041622477553041581635680591784564938266899440726998044373822272974769813947051269612692877003193329327018218708598355985914609445510783962321658966416528902940196719273853812607587216974689797549168868449986153703452291672725207489062281330965429300656351520922261155274363018543925824595555949912140712624422899635487577187365981562070169055825900977133772662448026750598013694573369512710634947166517447023026906058949753906063074334735143951763869761290622628035865155551443731390780285094922128803594227910236554276958439820323238393200359305355026911875696462937276508855449308037295108685611370468178277840980231797371952045602156324920789962324875480393717226853137790149096684141784674312173361879243586903417292665434033268863554339976045761954786230898647935553006396659159510276597341470911032700373280152758888115090875719087117327971559729581336996375826743706884322331705162176307256376562853121176010239929029515751383664702096432767914890214654120405767664783261824580788634334399521946061724677971926653520630732024925531033659855430128329460705852499751189331622637887863565785196133075541132791705838508926432840519346252033946972232757307705844080691777765743404910102433448580457533180090166757986845130267443059610536368392123174011496842708591019163155245730557136698372772835459250675230857506764073184511443091271698521030652368837051410848865933546987769538747205389165504343154723260112625251872779196140797828272542058727069912433567010152095488553108676817378712198109957951890565844296238481013477568023055814810565744080254666275040990154789039139879192755993584930601928775270176276357019790196626214379108089271429842106974292985448111513120672727355348502701569922153754687716548478065407446917107997081507661783711141921627165074636814427008803487700901869141921983685639214898510243979225504132674126291981411565777911594374751161216395203775759271919496155612596686325305679631602663591350021374943028451369196480777518318796869759234939172059909301963787846497849309082619581591693843863297167018668419896358151571557265703233052408036645592406962400990948462802919198672849839676343573784808018919200284530012035899506726272103499338950197726458535442465352337390937833173744463453434073936256733687780166460041999646470050922588448340760755856028718267554981103196517291612854075056787020301759196295991246253382291482244175136830816575463548024603139121280603520301662080866395747164122445510346185854131893478020955511819328980220150128756059571283308904516090731149838613330391891809260298243025207532222030258420818038284789309273446413604320038119924306881577927790791535790663404279357432010232969022213631633052269272048028648167958784132890648654580284137860962012880728039034228506781579902181910309041123533983309139122457964450205604158649195319151689505024313940468543263711119425299835170845701994659065402187254554312939335333946429304751901283339120383075733086933767234197670850441930530110379068484695942079796568996576875107318328193793707462539037856489104545124418384742148283968686724624089907486637839796628932741621179678519427228812759322835121834625830770455312058360460100506055185903008032371560001365386857022819157606948816227972610047251753348789286610216430363944192645315627140096905541878996648551676928419802440316016863992343501469267745301788645436607595319411756328641354421582378963587445109618539056068045742412027309510855816488825460465227001868471302275817930693655536875297534661074721535461556597353158883546333312569950782413890936527445892939586100209857906691483613933065718739628639418263571665983943789016288146534344038055951285834155411124581884181618909236237114987026567269481112104808358356698099917512253085286662682197288052978883171062734922689599326109094495757013165047272710279806416858476290243031619138797032808608148493118281213083327600851895537485026031628157743748661291204232572419785772184583587628693734075969254352407922191519012777735883137410632572993576236361819526480651692973022535660208097545729633178406541207373670856080757832257928177084954698505570290576922722397212770712163804919557213925594966341175450445403691175070060558397737387783479329011646001844779098697696662488989842422425330654351924893518439909866872986064956665225142889123612652416471767673119815076240284468002145155958761076478435592877507785363624606849868876710060986799865550093916386351099600651856550378181509762682706527285528335932886232546524369078712136814304442334692054315025701780151091493867733751966774723496314566349424007386768340884270519560660446624347595626015355882244287884963818888623839981747576549107678103012905316664648753290313915678331930490130903388404199024842460606087059377136921841900811689971366958953389088164275857045992649040255356925198848797543664002924644902904655770262441383019656295471198418768325694058175928498937804573741404054710282576938864029824496107326909890923368580102306044316770435852296941856523182543450579212965203145000775349239571866233974675261848593824230040929133498232931704554480392172692162263274827030455754002146653378235730527934542951082933681657923948649940621723371390886017115112650610836950492810044150208106099944357251068621738705786654614771208658076966433613232219914473255951356762532049359159793365888946384411902103648928550512762911096456793423163558429419398989652393086900800855811721310466136341279684670860321631839730739755713344587611629420160989068821760044488150332674656206550216758426849201370459577880565465744913328321647748020963292012001333333786886757473484477628009458011582025308810134804686145182349707637053714694682224651453574442612040201576671803289887722607442143688392974955935983706894661123635133402260341507698382847616352094177533042768501333037348013753774890133453593224141675877675453562704453375680842444941899837105001878323475686888976533967118405673276945349730707720423611114503440071292394167141285203190416013280690044756438369493716727126464304508455778975680523826271244115251889284776726776867899217533731989829281388325190178762212557416370768091815903200978703877650664364740204767253385444229495328474978653924801354704530647035695632679330233580826113032203970686824421801416207192281936143557258884962453903257026739932458401249378468158466909379116849996356651716258465792465836423268004214955115443933339812330814646648108579215835126963509769721822063155952399226191649855019492483371286758942159685533509677977253831811659842668921958172105042363592757981187579694887754410239008177156732846574987999395901896231090183567699510136319693464685853230054325820683043978940023086598952433204489678176238277505790701294865060616117428117986341810222780627640841414729723002375691853629007014435575620738598967419778962136428308584989102432276216908837397139411109426075536840993744966553015114613825853450720353649848564381830156167797621442098881349755274269117039292397285594785875734372974386624195986565538399123873898877720897097405074290949134664813086310629017609198338205911847051249637632894599204284740928795929678917254703246436967338148757945933004307245709436214515600306042336898705430855032009899881521654497802376944199392412876918014757567659665405310101292438148962806554582761158445512730667345966318828639372968631894243301066204230279004910881241292617415013012536424787247785126656044202676170272785680059878525236969108523758080460825629355384946064391576136931331199207794212468890704888125148526620176987765746379849975954782547199000504571767248055365566945634705164412259064477103156108934494114661242179574601511372312340880083926501764768174293255447828312805141619618648776643111105675980518373626555423021268278346923719955096583489442137516305538746408753053596482176118050929317695243148134688726358617470786737557425209349514089409761984230234655702196018025456508779497340217037030977990640772623769930701564417276720286813458586500815905941586993391924336920493031406596298024106724600226978927026694341225458345876821615946607982565381305153445309264492411357885033895975488005564499551567300435763854219751501698004568728446272444045773719998594304984854907271965484553844661122008498073875912261513386048977349241047385981107651456708176652339918911732063312762218092530298098656013316360097893368915450593609991803104239716032420508739341712754617795686204593657567310348530899932429261135602367598289195587425455329499082500794949658567810874682984646429960275708942278033357936725789627108192527492630843748521948596015391659944816155395248199165961445720630370512972014375932508610081569074302922845633239904325175030104403479626001017962173329310000096894363171397092043633923336567994748099512159141316008158901508126462802614817736902692265702433586541839949571940290801723778369068136910858707516034698406225426002461793707805537397774625336750988794796407636041582467422760215663024085478181949718343469718170249356669483097795458365606077771789164874939349020903741535067795869011914289463302157360519763329717581167202880132525207119620578359723053802894664455754972567434023332314854343249505956925014526550440991268804568130748271465207222631408886289413341268949115570050478975525185664975079878445834264405961985318583627609223212393501421843188520357404298979887318330798085291592853220592940315535971032704458657809455341572844738420639488089198247685760505300007604901971652618413335703806934321875126455061536815765257714111004556224790488320314809445512443473382652672839381710293009828878042887334181599850699819778312472519613239149244515787755851820873171285537156726998298591620775368774389416069726886909940999801950116504034625072564304646874363286432772940398716314265573080731925657938286065030764111512442769171812857217594613116005455432141660040222652444697714422143376629630983004916890103846877911436329132900446939730547245229380352298992341955326661133769495281128206306066673118178106945577908796336809777108254147380482985385569460728603618816945097365575952120949975407324472223852770178310459545747644137060228791025799303237767615154622441064172010149249785282093670055682710204021335885529684255381696581316983684835205390569481611294004531573115916542604388527493426700873872644079007557240921375297910930834984976473070114647839344855184990712307589643566245020531197625773716340162055876836742778467947227843939065412050103741882844782257150474019880366947283165478162322988107594937518083088955460673095570265332658504592759762239623083353934184676862401137784689004043746311603297484818662514668600621956019455689152019170756589913298623342376570770566244844462636173092967079926527662827932609263352066634669796093038659337798161830208872653955532540638177733994217627450781553242940431410182158610461650480546412310453084874661799442367053654370842640424025497539253356518085584264811965862475293061942536284523969979698160485997023426672330157199691167388720447692835241663778411408547837925800347130883477209597707946920167339717746263845181628877299617001447368637388988169771222409989577521985807193511534665398617210084267184905942042028037114517897554123534988415136112083869398536906440141762635582130332657177469719725949085957304366085468857559417047524961376159974014915617616671664185166796338328032033982258264685887065648515188890035139879743843887480759759431179460094323868997559014989740370221635847807817221545082431464565007660224163186834540010341236897920758258457130508710275094864507086605863048843308333951273353675283821921984869252440986288692653627731178657276284899541175380604522124339570032845115430890658249961623948276367324234397357710336946260123392872286700865605182014719832880983706851597629847762644575186904194499210176117928632448279085733877246475270301954330287379889053807529564605586767832711194937555513502087112143834018249607255603842855408165289197923548658405586336726087083391502441690403483574037839272969514885658762303459519907519074819096910137769524567855634304834836037791430463715927826335333771741807358068302326610765131166769029788783302431119814572220049958466504327683950407469029768377753488417212861231895823926940609423913454787279758766479468073894722110504282530567825901010896017775149489097715028392974117168148320713826907771856175629234150741049096465061209704098806265702966496381015454838074285972859786012682382576448340679038086484594565037390462822269614336759408882505276457499227163469314066682036449077493410307949100015326649464330367971214602493854970421728937868199971674616630303209075733937912306884125316323767093112471926857189404219400911678252149447487712126136379630021326015750049715479805650739628671191240158368403373421172743051951237791145930583926485137754038523000257160942197409523170012630684158962160879501128051127206234686796981317874387763938668902098851061521133154060623113676345827399102317692643177558456126138194906305070690263374999949843655233361704565819620857271658048022437131663525646118622202757326790172350788370473846705631595710380076182399877218138547552103163149951763969791625897661327937376845910023056373391205673804080240326624482692546565521821714952957725938068525895127503421500268776580224105627394216537350630487805197008904989273495058480397360075643893364201302223705408373606507680225321113483201111586992010881642350621014356242047728064100575883220576436403024961964809819099922379272382448069034073052475326958760572164631188601489638316025399425332283197175539243068741641673105361610579551725149466042601243314711052153009589841644318076261637172603707228013200575229690026134401220003547525755105425784582564025241153787479762225753145095374887665537426391832586740175517664695547544628405740117341490783018722864201001917553153949488605983718727086378988191276868368306236216006026008132313093492432390275109271995697228738038093069733223574921467525307085384559452144349360586397813804673595090638861889703604519554138129298315048217558542829099185052919471424884215362810650916215185655629432181223464254413239419293887221177165313663956371030903917417886802341606078100176433566566496948183825843424705194324760819631178850203986436968602116992671436689110613498110614817372396197940127287154329448533881937737939251678563473814763195336778022575204991052251628056279687068293829641604877296583104234420897672495995023534611337503650898260670000056759806614817839993199143097417904428303519698666031153582491762965025525237194275293559137901589825818651250675623260926665238002893979747966549170825155128989076874270880394007052090507640237444276070018817206397422286755921202042862389131122630035634618627166575082513729206550764583740742141682256515442507680827157993467393578426732963388494759329577478367183121508938159536525704374589106118078262468259761195496670229475285235292517275617474718024412381709490940450332931088721686402884898419722420544127996746118208885518910472367951629459671146122182787950067764569936600565643018828510848838800306043945587574643255503076071309280578444448819422757213811506630250750731338472060967588441126246951099143707976407929347904090772469986193747679449966692939998391231627714782491088463995817475461332833174260299815049010100898927215874841409804137720033239107746322950929810492310723069005438092190140548729682446168641414552689912548343700532786162448766750814995176899384345643673852151514776945180328716298636039751410591673096402847928136471613096426059533077595151291667562857120720107651022255722470909113320033806532231848605010282573282703889414174711578240938877317781741185740256855626542263284941819013951256535247118459871622763123891671743317980592379166042548566557068105115017625800070181621408682395760267831906357142727790689944282030403368721018094626265744098379131247567134878339170020426276132920647156359153620156273841961016617872951296963748885689125960774788873351984206926963024702745281442710641802717305857868368417605647153331838578312023447520117776894834231411882399203317381005929844641860194411381059199149168723938248908252651525383088674853741812101782965786614054175228739635661736690471404392671846644892722420846114782416143620175444929953184880386815157325962185022393786169492615859776122654708933298860670208514508666306719774441622890865324462612967789089335205748953033679790672587761888139378237422853710990311053890341444218636262822711021623948529113723915468720052013146981107962676901301220340202408178045979587315946717863079077964864138061621858113997511023720684766433690692817970478011473292777711427227862009050190374850482438076070847905556904745920016525330425543681654210755262346672057769469310335925386422103644700448474002354937938668859465099493212818071860143052984735893903854166132576418211723207456935223044016477477203192180878735653203598285507133885888555658567025856283879791167454770765316939311980915370840668152921548148242665939536399177667353164059356360705125902296236745894946224565317459034229855574036523129411778939364184833642817764919815008255454427770513811701446363622986771715609626979768225656534590081153584631523845341878217559342106856436245196842501412719381330641437877991609460079519128761456419043682703217213302585337451472488171147802748406457066676209973120048505851432754912567523173294493919850922007351046111049953736443489792096998407454706108628372621205275210662508022040198842810024269524857903886980232941384414405343742936971581765803256030630826410694096715457710236050542476067531075067347798151463086460340147987132950711642090769652042979713511598993082322528226556195224721817289849880461454054259963693848671003832547103458021486222755513449499333399591427918934707727571456957443215785444990640569032526682778741973270651613756439685836326617411533166416172977049528803014870451729566223130408785540017620776709852384049825046618751436597177086161011744944313415401139963393981618094906448754269120560904907545564040063340545933410734230462212204347524316093480632605561871520844071734115580415309425382310302971986717126702760322553067857062121107161243788353184451458364654248260077781335002384929243263029500771754406845735024018913726995615726744480699907075618277631161191945085646838578092606588511566169807985337755948182132910096045420477008001613138785903513198326353825634960430819829118352139861609915532713311283545729338003923781920241766757390011232741463603173086966602519081257109968476440807892604348025241738624078412211089277527036130325349416479153336697232691968974384009691508965685295861401844104182624779886816481283375751975076479279631385677546313963797502050768696604236794784401514802145158064347805073838788168443989208957149492049912144426678126904523177456831540446147919476641684825569788780548604389547230765260884527030238886243637485707174111182768891126072234090988655427982485917706773839232849890445540978630749311927562211251665122761613594683598796618163159570713361769582477509554859307213776134005949323147824847344907056145027374019711266833603459814232659111198568560554455653646793226965247154206509875606910338389312073740774972275296040356094122396736571845601022275670234583761395335559428594235458796337846229793168257863763093650981699538274266255157077682434152724458708018310565692238092747608773937794123236997416039184533107929313035737012203621276592567420621992854607081692541156948091306296533907146041217810373632099566011438347256353724184600781083008937389003195662385608684366728797889740747289252843205985262968454460336889445333055269170798376106961800194525410293408902662381341435577235988518658274712456648991406070972896527060724452639080774348296856516723924461752292345297472824594978833487155560329646426613113440930229607673691439701915987524706917772294385144677577936699673591414860993046057728383832664110137986264211948537104061833226663288552610205286561162243479803170385034592341985989932646899805946370854611378347026534686281962277365835730191911365116219228784547701474960285313348901736472805117745992934273288519893130525753249351116033680143796098714257216893753338600783809264197976687482886877307139418762384467482535599449600822178246359954279183000450667713299299279851140322083184759493569060446086998788354654014448880589109101147677942634005373319191178319427162310296411815835700981055513434419327285235696343537011664233807729337461715134644372156644667883308724185657985322647490469598047860014605450233174922162297988053831365418273327129101678388595380903865982454940832653280040921442858463307323868098801788234277000624662939780957316369163729415659357509732719607981483746534088877262892042056672493121493554771718356559189875618040657291393292108146654021072841995917034406889043018218642688103842479008145145661561727224233719091805663055921433253649591184892725104107603623362800852207082953246331007142122425967571619796780558617536406255393445111493040422966878186385488363777001386202682362973664919003809745712421088218148569377634872070022748066903101678531405719513347290598185042968729943396018142855950930003789476030417907334052402091475577854240147685922964777496017646890792425518592384038784351872129422633531119862798181564996560737862795888204290539930755864206234537209068853281622281515636431379431298678382993581227347026599383813231706276306218166704505662127673565894391320822283926240643954622663334991266378687699064867334511641342914879382677985778868075021404551885563946743202784625497065832444703846817757421560324129141840282195647559151122046556024264174489673697772124858211949318111985236538666066389297179563610368367419223684228601272174342933936660273559002713649266546716137660923303062633534045445133480601698997088770110366939509487820945236080934255253377302936785200852635347876102798945720045131838007769675120774419499360274259182926194641343067249040935061238683443265631550946430271046560795402799516029149596501076021414383875623852760734861956636249686419912902851591877282943964928329271051190826793600071702874061246620835418543226374834557918905699496971414438442407451763871505899889035035049986221043732381299604389425636490860211571353932736170331317437633258226904232720951994945916819587242318554634300660658010077003583254513281673028702440649505063797836253390537852657680098778669111173574219122015832811916160289463907910568493356224414326622479701091891803847721344375146491636941883726542485919205183833567342359473694140509330674837001486915649358169454026390999049003878764998908242919957929506275211335450854414849838505328519744559983596770085102121568766560047304502674889660937135092778780235730366340435558634360870274181699708356288743304749085092918374066490277179435097430607501060018650321269076522318133323037368998287849319720507450732812772343375176761774924556160878377763906845463155931941032961084248641980117205270393464429341587045718455286933855152326808202222561354692168973948103078688225819243359205949266153676057876582617482348455562777298910951058858016547271057151808870136341237584523819189681082712105122524787425864425897725033896955653674147012658816459584674768694282348842898862326433107607518149290881662406947915805623518945529056374563212901147999609748244920880871048653395657151810156450417398014761551265008700296745356535423953590715842943084334403499667264959153129541529985826959034924872503122353403572500340198250192177624224780603853988605350358093602584575432069850666562938835313073047645032187949968850922027843661523338717034352749807201071996082623231773467396240616253968866430669204964352856582479193592552800170202992851421517597203719998320011437407786819443010760406573813598618559981820615196334760761426294692497498989152015735009191089642806509002426484073814036984771716229083146909173721011710356262145645431542871462658588401222035962443948401590019608938390454062755330426036149862774461084255911814353212042551649508483753864567819928423094775362012396506933960354796757949119226831836548332516601463284998098301853056378800242614126596980709996894835972472550748141505127900013380124715342376522183370359558050952006725289356733551843248344206541351762121899612981562559029969515121988763141594666899554512292900190368000870038603032699756632699795724117598967314381353679372087289651089325265912503630540510133764733678687713076390511424197209055373992259562783431153488302234786205152310568305279142200949784876869129723047254258829175991877040119816860767416960293726559983125862681823900541850108844105708410251659362045298837100582929635521806488889830641585625435567426374527643970944554793247254099590627521511372857021544588056114404835870793265163242214605329829245241088925241113462930871249029277631617246952125382435057689619028558889122313826596180449631068051107517860470175801863475990705980413002989081115592828339128115404581366809948035390126241139629485423686535252607909227125615591250693987485137805136264324286557012676908015674037373853316435318077830579959983813827515730330529046665153298692079134261108761792036660050146332078850975627789781440920449400143936204328025675551346939835285622390625408683506972960534728344501356189903129767766445367690715563800022620967771864678512461715646824436060391567963509003116968139899187686215656840518564234875816727718225090711802580151854110748713575940801047636087353730246037340086292932566394881330077047655501958712936559695326043442173122729024565051240294719592617039974012021613233370064200572685212517134292965785670731499198358508512011438269023711701627689172436261441083906178846115162292583625135682115231214620419427976632069452550271227840499841606827345384968999374448930088324700503565812820572272165981721908796679741937789261046505783630258831451018617390264278176298511188454000431456173191372577871650270933472062493489198530526287981887173853733333816312361464524668811329331717241567734324531538663153755129534796901471658713490293044407533001110370082847916235808705228934836395463432219832603898808734677057016189658943555966649986646941108977466178473563810822906327858606014959620195674212617611989599117365741431954777030439478670858853716891909389451776398638475502823309543545092792262300867063710846684180098263226715581550443923308619994840160785251874797075715400731682886047091881029235397346869229485992015991961714086335796613132638108376938130164604778415185308753239903484976041863720536638581283733095116182026570082620344848991674231216974625794830977663600623824466060917860775859679614591076802824170948086084046612986029746376365952424496614625147522020329800269860206996969080223336446990656116665079307305245992144643394443452475055813803504185875734029930034086285262897974407731981391789622545165443460012692151822402429979535515798241585235624234371981770811170205606958950156958416653239270411494606195643593367327343429308737598784221647016621183938995680922702584642811161232634750319120593745455808892865083328759181571828183462346555834833856843860584949170333035152224343117309363901442179716054268067240030630422272718543581899914190216654490855007691572454793208340271150977057277640455921249746458175411699658469072313274294034671201711170632067731528972480903239935353637077591530049168505190448057108374919295496705472703866633756199304516495490362993000030587447976664335381271698795776072295791030571922119743081958712402299923301429532478652162918283777368627446459543065223693336958710371204327258405298800908084883497810998263510750959656319005930819722296986537705951824216086492970507482534348554205619557327033961131066088636486675979421286164568128032790610136327963600607923884469934517289212913660855606630465424147784693245531320161594326015981662458791997127922885272851863804631547044851647489256948781793163717539321474827388073413102335066449920992588880398244395023640650783614257075525163843341712722919624032912754193386673545453271093111296412031708734253608315086856857177974050239477355092241513236654817749622130825085352580658160097129926572392093469461577270774970032226676142718473233593971060138438741344986396280159870274847627467543324172900653418577189651660534744351820247731941219242391639454691052804500728143859358614673648623376928417890300213969775635145927931349214603254787588945119111530534007572355725169848739962373881182406208013008875124642959599997098189720181292256708229469361879641477476726971099502566425584223554948862983991767004174598342717108591696237142580424252126195663187833135413143296448472207948822420136123746385379959161877096345934314179526569795678164776096034436996505329746756269627406882270435360667174954548538458610405559710882538629310465512441775881781002652414306687270123807605864457774721317718936735869344869282435395501704157212432732208552962120826735251684295858461077893381136558147312969920622745661890358817222264822819983540027445356660808158198630613303393950780757892842985727961233706731337760276889330371781738246804960434297671842003182507919727823401414685716407433732825179708983532637720850585673425048528549995998041675860494329637521743287805583372727649092931426916054389836315124821022467052771640159539895018938521193281881817666822607705504324051398575898418831694785411735741946918187917728963366718372336969991034622664230600946664066267394948730761858714765184102665928727770990273027621205285859677706555754878351841600115275920974034663649213603262319202763769676317246374434206058407493038392123900210691584929625027538135139109816136457458863301241814693304413489293087840156777884674998466070598731375631002374138202809238442470991818380510366353488922858742789567874817785781311900371547982686768902785579761006517215704669190086260391598216469519803200408833672532966998899430316851979247821808080079275498745045708491070409074480333094239450777485722591517498408196509025772286792887498827459170656345430802147945870967286174612458383962517848340333564799742647725437442176988492475754012574900070478478089005495846852819982420880878589171474576242935960631748319441019644692171764132897502387406172494999986610531705059741965180046356189430058931241470873723316028918454981638973019465760381421254387073993631181406883105493180154758995893417412805178377537626534460223580824150247811445888584950191369109122686913811489065643814060872104675616214443282858402987966435598092911964253141825671343311322233763690580356327586201945236998443532829851776963650675437114504741956439530545418484430404086756487024841313034488995468180712536141626122768130143007596640402415816658988260413698766590784655322906315961864495224316459559033069249661514297573180779486346968295504070584780228442263536296404358790890980014646251538217115027513652034460386692219998877498022694968768042701759618336988936190916053805825856677182466882436023584607979765553488267299618425151081723212978170336624078407704415589680519782155134696708169884712472426931157573517000167349165940871731823273662683535030466809392509822228307763925344714788590085886242794671674075562090329582904679914507314608909006008103676873003510631248842709684443286958558017302400928397284847940511140822961616059214658196679765554068089259824857697856413251869661562079250148857861216135447424137333762188342044676893780731143243679114519714166676468121916373713090326035025232301657777552585589076176567480953879394517328347472784081071474811462181629971642435424406682103615910510769727233094587631404351520198027043452922892396508760551396439487742427296244596677935252609356022538907436245682509802412912225586771718258101661693254865624406493125146691096425283334425924932331422041659471920983806218046830602601223786632165901281790551275078556160749308618816921335034302274484689653884830537423461370079230682769953778160659878755489391575341557332713011465357912605243350496672758362720211611537536593882443257373966512432909266635286779009902370643743916958266678172897528133322174512094597107027034335711912932530614181356689977367786532687597850703566715999066405460731824838237097458691621114723034710238293834530206506735874920223786124264489106997163305149977813860504759400909258117004626635052362184773275760375169165116720748385493066378193104013319824483511097516161307160788394473689318034222530525916592508789631632859617659774132658235696558787746829260264803300051089337595363465473113118707118910844860690295602536732693436562189871722099549347624487850111609539104964120430757101258110033964160407557695554399414992661504842168860872220063750951408435394450271338659011533801215316933940592669288162927297589610390485176647913463525343605064518222792148938938335719261543901319848269895629828841615939231392621430459919052025959156396001164416100380253243623058119628880099922369994738944330476500094957431905300877756687253889897486836185070830608998465223053925883297127640096043787576055367314115765469678433691523073735130100435925702810771155545582903395737582169657872113159800308799287036628774970582859045413993756498104321928551528409209156004689241672843943062571481248975214795810294065923568333223367631468099695671255651226935767163412495157308011795152709854584889690498270735581395870994879365476582913316443959334546997960109051243173748659492566754345486519726620221067968311730040419350671265666402915477146894745572546200452918534484301628466617974921131430912129066164823091293355297708696813301137928953949791121027669996077263757499873820789775740299070581607267756811897417954930082982137635982646113582106461845653538232518540887546068380936872388240438095944179917571569516723763638661777300792040102511857695224459829341187917070180764116610943764053606585372710640750051770488922928248082545679390937048195719191087768295002938623597072852585677921876471369297411473689567731074773980642756806956065379871151139413172225828967344623218554508003034646900169267590584333364406396283452050962617370264275586976724468763875931311434195994448376324307250468069903941270787352469343842213746702646582545151109129292032764217563104230483851322156021499980802717982316043503552360989088079097413114492993352039136018226769659991734695023678241484680810245560203747262568857211198122765850919625858533376007141573437449116034167789834953066816439212301267069183359627315144138662753525756594044861290980167293752059187267502585168782624464986588346395477342688817610900374565743646194860808559862157010653672791421482661290335716104811820436210874208005545033348830248647508774786401033752696120614524877418280969157492537322174547147065715747625583054225441629971165800434892980941224421122782727916140581362232204199908967344297948731749688744382577312491928944080179300791809103800666722872646956197167060224418595791633556931073449822940594621120717480277033672731019274327237360161554033498976941097844461610955616798515824256783408134418738879925470406715045039317616267362739516355934316362925255375129540720636349308214477237339045257134675531056129685656413390480789228254772239651631636789761881226740930129475234139017534406119912876410932915497857420772537041167087039849137979209018651910441556792770988121855263449739709650330377413357087191654382448217972500543057476688293888246008126865957140436174020592214482501042697953823585483539572025248999892944568127798159946196027945814925534941676885969179672064065738822144210497926699691628855732087291803333134650746303061353351635888595995372392885496266254651722997126389741384606997604428472360157748410086002329794100836448045700658837480511159496286014283132422893562779796631143030634874540826055710852842915723784138892540888884980544548901049626176014614446663435714800220350461404340158581269256696245148956758715631044155497729024191451390758941658183679628970510380370195351399574109748247888943528417844974515184045148178912602688030048016822119468739742908052160596581057666048932670182504052159438021405036871783125354944140192324229534556859904858506063702898407068966194252737651997046552502812850812371090559598580515924287705783753277684962932932007639203237781833711355869400559456617340471666796598472898719405283118600824313453275548850104267752012614273250268409783569506891875096321748761318514828431162334742790609489948999007324067952816072542497423423283555309443418712783906411993178243506317421312632519688686960654625920497672814648739915649209038351505642760830343101269714668580302128019521143977222968899158400692018253328235634361046419656810532538622193957061919902002582616755484965069324788115604596106214424033753495567232637399566236711523504541960887252677167317157555145214379209549082386538985289757280272708183168439028938967801719489053596595291656170831793528143499109359527227369737767075709945888149687333637850094864450431229201055614046505347880453465826627825348036409316313491501468150514179969448080067835905524166861944744844363084902296919767911219373671256936567417707501515706635574028873073926455665785024505382703558149902749777876392803418700955998312998402918022846770468125241609997879290902416654465828876156240713489528111728425352708371014530977386004453093916557348244779461626785176215091469381451230652933158090923201605428289742609363231840443666048592114051057220024854469150559794010355677876131666211163126788717915768660473443965230671663469231749640762372449290880359084716289490210389856983841024445861168634320871428581757050296735774914317629268578382637206123636065959192094287174912407951886127023909750744993607108203975258490953047156757581866087314719206128424246660434666922532533624052027740607006011854002847623586140326766219032633516179724689339935709116921865939465818662995470037152100114852449540117701244646445386093673744829730430949389300460453040058823958407570189441503682039281301159639043537389409253009849332257872334674089701004769685504384804589187660646395075287961727564251927155443150001181888050118354307978973533758226666304636592586105101346691393115657668360061578001562256555776111336105791437237393989639932197867696380658786549975322694676144770253778164608861769870030421943768018169761941548037272175660451866995895484546045021093558455399682473196635854678200523564028263579127934994820036662515674917378196407064900942374057618656986072385403217031667739816198724277915135081851707981721690537812230935328559244187838624533682178203978278327235074781708641791789398726189690931848065382551007395688890555123732246037900406954942750539317483262523179670285030524221940405912477960989883401961650296257227505244016026869510968824398948619749215264553075119451539722906867326645950586550696945392416499857481457011775126462317339295439400851900849767528304961136383692932794993834550101949996757742393784303249720173307627054172594605390986336015225475703278170409492080130015372436237494310325755384090707144503008520849597033088962679477272116235901171307696628430222867640767554353445705573631720107504024352191499094441858807358142900811347694497268040177992121526788682602117737695975026530080298753957097416353865320012666914093729459258641643013461558966975078717142066728490367209918079476257221314578617504902790604874893963907663829351500833532611103009777290524160555740814102742368378847216980754500134842956365487090984527118961936807954487227004029636196260525357641439214315770306027840631127581249179176149711074350898163051170416663909456797230271536266281698906960218410005783298530706122731101541099215344292195754790175979369307493526776490424986827175438611424660591716716676347873140497184333310763820419136508590680452911084774266576524242280092362437533532244822785977928793080272983453817746603142610233105807531279149326845942445461870518470396051767926840359927284636901342580125626198378125058849580009602932803864819397183546094815924723768672945001874560023213232003311747249132268602839707238723702047910991034788626715094607192154205947976537279543853351499529844531747543018210547914794790897346472406855348407395065461505643580349107676098156653170767053841248009673253329800501134387186349286235295295953381885677155456524331898937738629183984709283926343784013325425187245372880057285274390535297415901727449210132081660834968153973369411296071786573146371431279672500005353789531382945544136284613237894942151231581785380567344078289757370452216733214201156948463376609393036360931091221676632560405358758196307396657624034140105056256454796570840570804910105767091858697184668921192745648284896029794986840660171569746526376867426926762585447787453845285082228158141247408853481068390998620619698617464863606134209788462012275426149486126929648994136882001994255401410307661105217818199027038119196806387301180622003517066555631454732244997915370687990171147712498663181557380281374023843272287254362200790657319998135336727078100335434519102287911114452234463520558116799390780530533142892471620419098758536928428690568801786416733439650132786159261395462427540189050424276121543450573025745600001541945461767423934287460138595665374949173529105565825624288707642402215359667594007427549419780169055962284318583581239973625646109177919990738456637139452661570674288255884794659510108441430405946908458721949006261148539372171263466619855276828015308553112063719124779083320285057990520383658341734338479340145815850216896623481456324965690665441660127247923324499262518951362415530344174540068158882725178137062486281951616237089823299116045414501418043966383016255225992335078386921869357094058940206264040936626114564797419364681266805818121360128859876883914134009218432686959461576257521827664014101881855998436813913073251650947487795795461164151271836137541598854066543159828183748118488287941959769620053641147826794501394943917394344070060089432911384160591819543376063768655036871633369786181083135427792494457723149655793983956488950329564698625934102982641247862121628020501673539226321575385975947524071807275417982552985378512921086886684106671136927959563811343170557704634202307890203689147343856742789261805568836050214542975320444328550662117218636011058726586291422168358134351765552213937294586925894371317562768369594478489930219378468857049284629085520849112502963746668134227984474174671213370498617021720054460359163495521501225811098962692935316659856893331899050771457805603325371229876252513775141392526865885152386379078464090462364851758077269729267022357001339553787822000249926013732437766893441357244150778098410175168603344755429022940634425787953712860142372727858933802949113250141137096668539139239141839243941259720793252609900733189570934142745723196544877383548765255599701796933245303592959159534639429761582818422191729196124029088039061581962059609295474873384069669054650527057599439999697171473727104105086550185423473518957016627035609012698781721840997169592860893958972423992915586286961674361269570704369085482938400952543437710554739768166671223088107156059655952765521591168041047669969839293962952419518133186298742207715256475694627752139827292563760378000567544545667138970704092469755886075601369465587265395770507175008604142562328561210311995884079259941429893430706633510342133475353342375311767419874672857574966716168220598201589453085082529091375272085619852963032062503440285588826563649907432725933603733353860093438943515313080589455111009416451705792938148200868494850125973990324017350681721014621592662111712082719862992731474779894779861801385560020112767904844220219794780571522193289064324526009513651078212172816833661573728135452793695809348351655468464779231037922552410666479247438264316041426931540063942138734345372443775638986832053342169350795027216604530525211737217042711702591524632827151563203529526819891358195370039416164554456897878727273243766005504899903686552745752828899113203744644376001809726343914381996318946151391987535771518890215605742559014682425118366734531769560725035166140262819516571410363898820027739009037711083779166275215073951947019369097712688377049095714207983229695208421921930087530630709049274493463589450655234580337320955636543918746435316148169061569248851866608228129302622103388186761711771606842001039324406002939630629590587579501090056410664588267832902071725476193617632319312160220880003176491933140389562804695951746638754256051322876476152023779710697060707653634029949435566551013990435366692528374897864825243340505717929767507575045966208654699239778958707724978308402433740230374488083605141885777925811186019126634081501856942261380882495752093052789857274592452255442159090487168673202282134751189179468418677160525006578146481152794423978182490189570050690008920013700119497671295956659186644939951673585658276672400821122914505362742046799008592264240703933126485989563297253924554400176591136749916641217562723335919835089233261221775991814925265426202382348161002556240014222096494645754074505037082386760327347983378779330833845334878119996959126479288377297581577936143884968042486983514031439036109569745018888340563008512352859613672078210698930909925826651148261696114557719351688590963325490798788259682744414079559085272807404045041686873435480430067622661833427391948778935809977281435725665304661999084118733978887710661813278986917876816853990116103775933302947214538536085611738587625605390047975252959389391541446211635275528488976651257333805758891488753074876385504551016350340349078958001274563397830264228822712107590412089490170029519739803480406477167132837669680801655332003463625132635273051570012752372531396267999089533567648757289516495148564855199565423435816628281748764186220411837692575123223870525097591935219458322583464089474077770478400397010004559522411421776823971221860819902671281273429102066372010599370447903222858676185073917893496755199236554557796642332192564508564412670465450109346548953596732716417616928513739083009128078957025572061046268605860850565577668048166790620533740519624193264558116727072563499135619934664033642893200452984026451180873069436717914060462356465742094978116132445733036589626868757523600341030118506151325887452301723759739037207335051859160100040230058484641003169906933055456013275419394530044816894725623909072829682036711112152521966492488244779339498804875107063979869095298020993999817054024665267521390907007043346151699431956395848899184913089809627277746557848075578271596892771970635699664025539349316439429973526723127976968535239245837179930863004205631099903704875076483186186534147986214879213877861133190486906737882051791535258751477128044911027664327570443788585393661428738329580005815558692472067077423439932792813384413714409464386422874838755426344448112797307154288584817943275538015279208455298350748045579772522344005635467060727581544231534174576346172738853477572830435098845879093154635532272638871407932291011005647296306453974895755155847673266027820262822103543810065792603609474731101212004209573874119707307525984836550877590456574824238825489940601459187088524826201416321569993674419755700281428194048615440122745243137691933305653476026970100439500564973961262633738819936989391324195380591417461147927536119211465789303891172481653188909547934196447586037204649281770380095848570584001555249288286449589579849641298938171006603895608975285278035752702723603909554122278436690243946801002134945971117565998658428644955167615618806360962425828257165807949522644514002365010253689059321928493895329898941677875607967735715047075608816630357445093424504753688635970663911419714566667920016658038418552796097979892372060160088312829465184663735001970764294663224787335889068048604549466489937000046551646897123007932966202900895308497095459094382173106725628422018214108793751309521584999215501445172775687934214882788852957192753064144857592474160683378156209024706411103902496014748994595893052569045881834574856142174844516268126582724121763621822662174452714893053417786663942732617431733805565719741414852702855885490149048345709872149253326101165412393518996142981686312867366002400403249253914348617155783185868743278031766239545447029506532997596337149841752637910983519643990796432386794233446242926731286864451840660683821210388840364559651937120397819650038802981219513550567497900927307642895520698145591832046592707903723557945563036892730822879489071480239698041953670363986819255915096919872932310802575564779187348511083139798837689302816567218690019706467341072469258687603651318885433180120551557846391499672205498637855542738296324650355318490883599308094996150128104098759788797433727209429822929351456852013461547853622743941932274823312550985175507177317166344975357344657255093077935477594933013742483716301276205084147410732988787021081560912933333750069574165225660118095222783740621231803755009526907262759344733036630198493459540552758969554015361142448295956689825853304314658768423958408143277546675864330111271075133242677564920860353410163988122767588409921195740015836649224117824388466059317530470883381382915344393448106263879653053093417709540456169723701329077368417753079601215920798036721043082086449376277096488281710533932357337547832060996243267521020814785504813683610205038850538733795921219668085417349644692888628242795301645448687250383197668563972451282915052431137602848655663279943019062832167225174109193978384035468892457993221321055382176292338232833622765311608600042948074884954089418109298347823384045790330871141994504128234053827542145002747748342016721544222358865940222789023514952078451975958794950258016311523439004218261292161813950830673601640291029809798365238522449311174849727932666348845635432881642724740355350911068381401094679259443245121213167593949085656833965904849314117577288361765541213442600530544284292181276025247294129406542787770231101232867498292636517007419026924157494277063093537863085265162641342341171918611453523338374329314194948460272249201093710425588737621384519641572481788158442244770450958745026290573651433809027878676021670995436692059783246368463351882322449599093916502869044419206498244696756858100717864066505095468847381726956904126068573004127013821675821383138552020076018618820566331816803509171834808493606183477293612291500201773364800899583731066074763479410731004430374334790131527111989504199434610413353443544446978499263898302888270953860663949793472852005030130556650678194325818037839652807513464568656302408009799110731905859998927986145515152638040157725186061469622617872271899697902159138131881616610646893668984049424717452984491137054897424382826029009235079251806666666474522729486636307136995419163011166908156237059876646932771173360365519194458850658522979968784493984775074363102223791847071470098854108006029322921033807631899077056807993842031393945718652722620106139906573417276725228494797139402188613127789512332302511331096964569159058439294124568668208791788406944250432797046933499816280699095208135349219146964037427502427688006175476527591331688227278556955970617147616317929306127660972823026776206947139831041447380832683482674214405063813828784444539958443614042704418441645040567444852641475978516115090934143626163067120863396917700672881526980888706011296590363375417760837242907398736366451242498420254325629002590346190865060440688672608386871352494387819283887829630447170290539319412828266545249671957295139078054887142666591685391181269023916548598064212861057853464590793224490289687543485202254752165505610385338147406724000210952807743489964183657769244061040927248883596813171246532729816140828193090311696649552339233615135598213352231530493229065292801183475726184212576987753589493554573981851437600518959662208461834977445607297394132154362264293917116638581209929963990383750049629573198522147441524212781204101756473508938125829943947558704157426553996548195449211473579175618410246318404387889578513239300961034957238847274962967045589784289763479370906604647271559716565185401203716824644705470054498080324665092344492155632794240207042424629311584724778912736914451479575098826092248458077693185556961831434528337611746983003354129930300585786768457916269381892222278012147595646368228588802672943188333703257290497456828466107662229278762351188908372870493115985011316812039306661795994099925612154412108494303185324445361484896888275113180314165287985024157476657759826470864552004176519989441482538589618793310435368622651739132052513304222756284545570261392334207643510080409929784506278086672522728073711503713427356644078537099443593094157778642363158830391511505275226016781868676699239629317145993267503955689928885240796551765650624289416875376160486159856796408632530643935333246304991419443473541579459826313396889672827780351432291345365450336951031400175865874318580853434614044511387890824476035440433562725521322084459685529688097981117267546407566804670380887864031216606067100676318988504469558141880616122260221032997886042372337800649686237832527546173707858108705324253620501392724519959177712537634665282185368606779754177638796263216781758708858471988572014500790184418530960927668482060127474098398076055016928664564094417475499755183151803729112455639452768427074016744912432147548949001547524036480584360505087920336570946013552732804519465004779769313099305285187840825275185386361205977844208848432294529963772342457800146337772749643467383379682691655328278065374726738777650078973623433957709804434122557899887792992152726425941559024737916969226513635635823748986564301818629891727666109128741562462053055570652157546007278381183463851738146961506055325460096688363305947608905751943815815742229087294148934383112399526238169993531432452142685441220910875185568523810260946568159082077160229004728115368010467579891583156205180768022061588956601908676739480256831661726788192236579033013107237735965389938011362650313153183370815628841560215678721243780075128330953561363656379512757797193120229871277870176053416453622372119902568608519306740832597519942741435215932743647017777634792129202616046098496244377899008691482141508145778641627710503297074791176110377166986770648466356373192379951140814744544030278254508354055017477904561904076870177058397037763740344895685088928661515142468205057244173827512313266172024016472099731832567199016031439732945737512036119570069449382570976981325963566737600856389335277469176330173375060938977348721900163820963634337479229948801418417180104606385142361042313065722246303158322646664331514789271990702684960107387606946112538586893243931047480586755668577685593384676509422337186088966316375685502062996282372461308576192000575682277118873591153695397176550524508037424524335466695519698893838513035267223724608626380597108644048511991160859209433399029505027032202328019449075238664654227249633959378585481355077263897760897680800562443190071408143469316964355005195354388650768432010795780791734577304212543855200034491693013573122354566066142325746959219789368577914332971393217158337646816953326376992699603571119292798960919158888254986148658886113525201966040910598567048962639186489907220932837060369546685073196810205877748768179987651877560664201943723410575887488360211341457373385615899892644134291164401943262518118828211477807168653203925059784121806036469221053116261423005805524267023994324329265616369484045955726324973429649453943416641490282571917267503674807634203533410259594728978051711445397003813468287194822359855469425797411372304788944756382138919407283307970754637826341305725721651765096736175167455492628264019954847231272961451781687744757696287549627840593412583333562255885458451837749551509485539396132060321474250860239733836831108885135450808154552479192997040223206623915210972228747889616792846030501700947872931150473321953080994907336425878357820562671059811099133584586398297252856967127915557611056888139712218610090900130568516245844740074671993707299156391912521754040120622800792539864652808608931203702002832553464156514893090878891743799475245814275269437931931433837476246563283047621781379476400165616125508461706817208104436556661657408174069490952025469598688477239590412210113858964349441337570919687952811728036510491676356409329493921920332726762103733054439042282082138646036407889744958656667650777210039122164949571170431881778368755220745750390963374727382574972691587039974025256773628665479775140814056469126959448776288265388389810331353324678186862350154337368215634719182449357327469145866073795613293257009799516742227723494716807940893188958823225035097351613381085859980921851899661954290919535107410106554147267449115723606396433927120115130658529530191458740860218902572788428442851165198148874593248994091887710791682253945890652176237192826258417163169726703651685737074215095423280280834161524579946009637786491998439592022900100008747363092937287838253072472944422341252548027647038456511842639931306112938121080951476529954913394432347502097364200359719895799993013867559426041474938864472508735096629409428732167090752580028653257031795574029555397346759130085110355176426995243809480178565164777803266049456345672440959359301576401545348920855149455827293432163295059065640759757728992038260890709633247918651962654776777411710449643720841328211293581505033627446741436509361447728600438284471520322459227336228946309385761421418071964507640696001026256477660164329909678054056423543051070558122685132222076968262951339140853143829212216961905067848623235233828249450987009849616462202459681259335764943401631353746395918408192556088218937597148550552141806312509232084135250228974135257706091424137786187077760300781642050305018972891618906426853929908866920712861240326260153692053337049495456088811328350605921047810657766584646310056472390935843159710670275838525897466849120552813807182677539559577522277921792073529052113857256323913752721547619346970636383116774020786484928762216336253237878813732575281414452572916170038271238887748087035373988786016608632100721911834629731492126215241610464385221849511221502709439312782418449189074236633000189106785655616718935773176792179420004626633728598624577528000191967979305637661302260538611893503814489676704336620008064412705063645371423583747249264855453835699693807579576016000798556462324901451097631247998161269146710755480766652782889341365987320282491370926094445485019939074942080261412508350542649498812601499280070052686243139876109564823368303457018648152438849994021033003510647919017322458627356769891243334660045647080512291912378886798865710190587734957093609594827753916863350320360048465089965606901559396493211486972275219752541980512092520849723583180391938469693857149863034378076847102928551316028947038021160260407048966776648872355968993908115366132236768871247171004580521502398070709077559633731021711922910104806184390975275526472788531604195175813527705704000347292731831417755268909471021892131200625464003379733674974390783996244904126684940821047125828565666510837546107980076169506994994418884911465084680858250948572745003336567448095805769209219474140937844494094261606760918681609156262684470310067233233546245807551807424068112079968420461197585598340292760293511528683530978306039472177961716877214524176800036523503231773838375106410088555584859073268418137527381941163727488507650328943156882673152133599884362046912094751420603237287467973535291665825354550778245059366117756263342703278445028922837936792086771647393158164916893467184850634727129889432560172035151736590386922727808413865365876596769833657755932906801737902444722113630263708713607441850168471821952180062423964725350732666944929488535550660230138510256489232224207364194313335347405993919262670050057228369185809561935728720053828070090536116421889356531455169412906469611244911129159860391222295511254648265322718389742312572629854988535052533013210991416163470727981646940409241086317021165333439981076281968709306491152659141234358795050822116972924815924059584755446833035531169402200058295877661342428555459152670456276456409686843366814974062382508420990208333925922522553497596091375429309532245432771169916943997038058723476446407439272329083788898090672715930476971171712273395296094793156004117815158770249413068790720703607580894332457153835393983250987909551075622892220528517888292540504141222755449444122484438711653478029648524040062584125508315129681083624011766728885592215000155219920016468144941148168589840379849046833907988558517516418029059701715421041816536054189790313351512353756336266926321522603142786553752531352139351709426500414032763492662842401179699131927598628672420662453724189233970828806869749754684205854983982895468500744302736209392937999283060479109182206260764491463612545628066600724139851211729767113783021553936611888229681311532367051634135682938077342481247281957731789946026394497490880618572651758287207987316869929110683359750578822010497111771557013933920858498423038187043989056071948144712886203231891553751017836583994469721837952946590468149161796979264006259434380373685595074083051828095320336356690390013636440795009524152832183792070990965046969600340697234531692071636700926368544514757621636955869640819768653471048071430699795223261225403292578588079394249044032910077410121028620026815832004571275936602843297807898890025667935805979532137834111129952186704939715403902996464953843643426904679341977753797332321351996259731110672198518211191378660329722198269411190847332048313276147339653642568018081824141620055106907499813460418715685073557180569641547765091090687803578280099859996461125090672370415384483717744622424775483372010196983135198501695472552576933770373927811956854646354378372434748434168041705094123997799991118603903716874992433060797236353587566736539033996980622122437820613888183077440724272200296096033264416303010229268974380124727270664423918816305818923240622644537192789339065469726245619783130679600890098919467124637146188221553298229758211853117799674539075084889293846323436314799059406595954218486992471664379567992860077916311774211475705176969436197812557577581122518527740081776379389617832702054211610174814328278180072963053219895462699890896241619201085306300676076743495838305418051711958519268844156538256376096944999837738245778193464168902147773100679726489094467831533137182997113950713668121358716215912245778199802239330050226304983448493967973885763993628079986707416431140405278156503357704259327078106026559574754794113029352740335850349143209883917076431295845376900863883171758193633806283483384229540099206166568012439971922184325961580397638415263927938111387926277953030379942863910524905243633059080499304326668839407966641660588111349186859920161277915478667829989570717820384842551656020258466256326029441862738452196716530539616270685058555830789229163360852172369587524066968325882241167582126093594127993688916100690927716721452945931555118531079015877982271347300741341706540084607462625525000018435663761587634695094537046774082825974403796315035692553453457221390413900792679586522493515139723771498379187492884613752782142858704282884692827863292296543382230599865563379156356448392042816194073271525735979311492134502373424178696269142218197864872284705049350033321105630175033115586474696051109110512284801600392949873345602318321125499189834654138763230183777119577377905822557255601921196604323818878773394288516649181669338710081559562601077093350422598868052084577812161457806064674233792721432695435551321168868682668765092658626319998074449166125097537351378793401370832132857119571636029132761484804053033683647676513219757479865743991243756003569503251227825089080759823862826072782595633775118212741966605206063301684796455810165021941011677908536521068883747723026311046634836120985623100898725117774472627096868464443658846194818319695492907764807168924537868621457290863853100669440029274175307884846137346463559384458850512615539257698217855144059704047881249725566856423671190877830096181395558806250769768153555282884908400337879689592349149359813286148117346649575477126370973343303082482771898428969669641201945467616342111143742365712483197266776316503320095669329355521731303410499367622864285688552463411413575050729214749473498409450487443680372049250418716556410514049915309334033823602467530267974472169568509695873995793089854328123256531437040959027075436928214096000540926582153632787647561038686062331156720007228985186821176086615710281692371749409915281044383288558731253816541678062378772999719041549272414141692182987937318156527914464189522889417936068219424823527661005771983892250871262776729043788184711398453684241530470745839895990350520528882830202970889398352771320313471872498054795472673730516890934836022242180012101833915959503100034217689464153787148344693193435031769886465704426602316939398136611350735617037709653205030618130530287048038936842599989146551359769539652634518230107650132625340712580988084162676998529736432487025175019386984890271165576581674404314175266883124302791697697490444279437769239579813199616911751240872403276525690340995727714200444166432585542656542169686423464669601180355966154727466706340449380149262437019766220818814194750602661650387004316820166037837934694529173388601325131436144152205568190384286526400719030525202143301159253176566168084923358048217837481230197556481782778053611280509673752165545846505037927306261985201648304043739295865284245922392256722838651982364236806688358444186612708803945121484720909795268669578354477794735718276993391558762014871523138086043106472685288920231134339865112713863096507121595528372094177702429535709645662123689136762155156519771546197364370555375923037489508683413794550221640163620508020042521394631614832069623308354206644002503970842409469420488775391821199844258027898719329001303336829794633551125574847056201471165265878822380530392846550210551775346077105429963116537930255499017922050725796017497625657037234176536371125807587876987821174076339777043534604707292383668893578884132031417339124901634360616488454181839772207206169665151395174481554436070113949314601806608415975003183602655547794779995325875092797108506614773321079953391543511716572881410695939597293529904372342299336443513446028623426836326708519979358727997067584790705512131730786637749185178082737308017912072577334943173872704052014667620500713072672914960098433766738747293263567425336651091887372826268023236583724118432587743399790322677770115776810480743782626461542345520744881982863549659068091522004830918844831044478563023169155431588423034204054176516780344384460746294678023421944790577977775436321067741248250942091075613993029809076809635069962606281049614340297331163323328115914534644058202955403027825965455505695514458949844949963098443588366270811193682005257181478222015569767186418647596464482794451711519621077264929831425294810937233609990332870083359948089489185819364615337952038046924334865470890450355486168707612344158393130939974023999123687390248219509237702538103269394487264468902735257617025499832041328345656411409309853357949718684581416707756262877327635666493645574210067688152027018636238600380614609893999649203894944921325605926029686854493429960655050514534791609468753966792712777759677921354614852365356988133964707764973499213728375882531765126888334229457265980771381318470755865807398013281345578155976091943785741817290036138975665305344964143035357559869427613079313545499519680477929403095528361942811187771615587877841453615904056523755579009329235586623637361633677698080242709295088317411159749483061949471229048766562604604410880227503792532027758382867861965437258632754462605364069205529149634974129284561435006128880316571598654863377120106384646637203675736846902089800139755940027478249357156297377151370676852927633083298360539574457925914131852206616144005750949939437928650294201363963160422856334256823595217135502189439512801980479628835040906263401601367254587864249139574279023618043020856387380213847422875209517281314661398876219434636674231585555267192500363580583410096533150239433338955244955251800407128521022732467383536806381741396500042331575156419932749877571183560914099284680060278299827625985585636414936595618933502008345132896145250175749133270575269567670282616245796611464542819778942722229002644410644614335372469809313012095487496108094507510375188117988651564015611063771953409942062816458940046332711352079451606774647857439108844478536002698500058294203639907431849014291590572171137886972344362399777155403984893193050589910802458780277209216497638901010791148525438526134606356146712886401474770881200916304585516221040469404915369585425545501531352936215066949987379449635352229656038141879958103480105664769510525757033559755752791876289333624400332489630849751227143379996527315818291972303249122589263974044762261196512062318900723942617985117476975768736755892627325209472351847117063222326162686148106977265198062921805278965263425256391210790883984775838582972688051830098765605381552884859667689713085532739416786226518921025005226649985489233983667461010848262541454821695480251488407766607071279668201832147064980120263565681891372215279227428566489406697154654705814189516233591170281757192258090061385809096534395604944198604861350933322749548686998749104604055377367319785704046856857382325560615554763763243512030824590817813239896565835790360807707866132524176998272865676307082571771542779834810981364485799331442376183231352545139576367982617977011415912646168411457147387460832580850524802478620409370929922751413635310645555271024950875448768366388036731513258996408866613351618469743929731807329036644730116455991498405323698014430800778341197882005952658194209436788039026601328742361378995823434887363377457827703514854583164116950916552766351628629454120498542025414417240727005652810145314343285197884938235840371768090318128512721248913841389016880002892243554434653514647858577784955416393706825676876027210656716667061701237297894085988004107847756079885435637655800447475484601065401575373111215593907705258413682854515548014904363355195795950797239949590453619591424394253334147132660335921913249604631076942848588568827680318347961335308349765369105589445372943008708327182439339116687834036815954991913719648030445657778674148320689738154043033634531549147325188229892394306647437513917632754098135604958554305674183766678568159915378290028315582324971496624093433372919172701548783837276968897477225994061512639907147118590316707087096445738207646809623257334381104195142176769583064669619231634971199026167396728724011380076936580029317749761297184450648474212241781281427074035784921977686235109294088355999934420928882838209471330937083335859441481981875883274613679790622038507113954399296804619679999413544128765685807789001677261838766999641200656315210801209041677733671463538014308464126185196758888323285455015369309058222419953476925036698475558756863353124634811434669427592972845651605607534062841755650404554794305641770707863420972313007626976880573015144997654944083173200215991816807121715996442851000907630491978336360038940497264714089053265926220681839587333741426788213215468338231453037346353892331497664367194723567120883520364136291967190739927889651183466495248120046856993960958327393054895170423248280057371784442002817612649136691799880121969739733217679333295240582719619244256189044977947723598486158844717517521660700373111404207416007157201360065117675440098032755906683958889596871799783756433981577817873117781959226161917426192228808387446130919181876109944606001472075023102154795288829615845058315047769400845233839423198351252695016741542637542784683349581310252471914819219884924978664068651117144771932496869543444619562036222713304762858555548795229380234841170221825609800917042108142376989034691283806230963287649944513374292823755979515901006751846108556212213628159888435978345901903488140711965567077134587174533973984137592075025780575342061911842321350137194387735864667022465644449985120443809879389025031726950059655924950099819088657156697863744701059543737591124173479620946163294017548834189082872442729405202842963659107574727857871305842285664891119062141263037745186241236087574094086892663123499985695512675204879959471126933840750287404009581638391257676803237499754803032879177477480877408376408806772795205321145960916496190663985555982746569916669396833984132429146502562258748539103416494170573944285755640972907126637859715224399596392541181060167953007448583141789531517287866621679796863838833700599980984036209226164479961415378310061036711610015391337379579015974887584403945156377229672184031227962254826016127016070853888271340127706248611767675243067702350250975667223666206312343506619164777701847931342300195401405290572653630054636429169337061771697679678648601134599303904025874598383021411449470563586605289125042909516082799121841312310060417049709433455445750340132381799822021183437088476512642015761465528814636688997907664472053651730272244113726278327250537671133920154431670363360418273532363909720198179009498330710198323266513681507206723644846717681074905851225156449803584727785143285377180152620282321822544775934185184356664088004293542798445297936268287512541644412907507243451331349025976197077961841753356743722216921746361263992489499797436377726509019197604672932132842702487416268175924655741193968973301486241034280060807026143310223619665660884221386768459516355039582230193935234469514714275494886310901594768196235204121504032206279118789308520465182489803917019653465124047090438437145054275282321441670041219047731097820094780437555987341952840383483421832586268479292886593694208003572830337110820028550431390736135822356195738024776203409139325873058219312309951187038279681984863726765087981460097256416355495712189914793175062196926047780308161008021519895131114071815225916741469992614487923558628119061868984315387313503222245501541241113034306966899394124302724714083848855046682594912656646708311020049359343494133533481244058977332819312998286850881593666152545458563234206082673087937861983154520784017346682984083951359347637446426078028976866478433858660319475160909706794684161621389173736931436763423327086941622284858186755283687695105991457629642663106473553613008730346857486246540232834604037431642323053897152001660378655181946511509399500217068375115951255671324191967366889459802652541591150136094810095467490651839054342408399722984827256132882222043420740882646109623258229181024758279450870223973893300524982136960970140890481063039016493389083963062702679168677079072034482217473518263800639230570405641417320429590710773629360286572610905265930528924353525488799232127243252949696464019360484294399443154719515496313837411168064757556279351033988199197322479906116349908878826288208182491442369886168825223617641694349386734331105997878510754074827229638417442205760449260269024555405371278443994951061607689754291941731270506471534454274466838662815583709545617970764357608963333777412577085493887339026503388890837322822197949250659317051655644549986461727782841187209507123125491276398363498442254958649437323603022036314367750479546538768455928756427301353651778436482785366874728909792186281460235485692242382444356912149648622083904515752157337694476857950831443925648377149975060944711577206399950652905639756125040553226095968772511085222329505980284751310793365987682812157550887092502502317348151331808106413552380591117347327915429190212982893676086824624106678224250532521144540874895332585349814444061453990273326970313285585417832112971231620018985314167020693215488035459499087000346877371992875836594520318172312643246739886433580244355466564836470564386119056072630562687475696851953426852221649702755365038807705568642430587094872539918295492661138589367767304237532546765145342194268868899375241877644397610668820405766893485905652203282494931448620750661412183091601834398729115104111599006828431515703307004532825211773392948503482088025037267603795103056927271496335021841826325344041348075179855617077540378836767186744938903684170434806540764696306340692401532057556928602736397198970418083247224745805581077725749604016646937263532028897213952183658963719252937735631262316760022908342824523432392149238922495777457467914963820275539583904728014643648299336973457908381340670361306585817786293216176800884479650879591607989385224283198512877080117550862339065710110078222798893032596602186774198244742246890614484508098834853184899649299347989279299576360735580865425134122332810559162542539142603719659841192927319891599238944290414539203286009977497921359069864681538964435883277087616606447414700443351643891058603178335828224221789690972875686038153051443184926872343330836752369610542554117810659089632984038296683139451960805717576767428867622436576243331862319185079497741088382135928657014586396237402949834412255871807076791048712987132578476717948737904718390093866685141047100665804737635752396768326702986320257241114032548181370633249790829753796693896945107982713338040238212347879604187828610565687427092917674354938751404294099529260033100921233054457811962540367606656279096210000924524664038731936865752882121509715444903781347299625311340763769479701871721274296445536767928490600972247087316775794203423190481369456876673728155726910289239023607015012385735103959758569946116494071577854849606230722088925829450453234812382159733086972068913264909438412698686858611144380721020848882971287531568578635164134328477223071609544902165713048944200455838020259739336928906588618532271461634911821914815616276687351273410865042768686479854582577257160367557314335528751169988909057809593158562895410203072428294666346688330779018711754293998503778043916938435180161990728747059538714947778024035790410106569494361470224024385664960859703291324918403236796914277185469369668720666341689600656991067700505319576271422978473138115435818786669535612637003575595773986206344522701926963129376047534174404315666489615403851592802052145594126830605109022187980361840754097643481231616816952748635381323266265178874845245343125263643448837603140124591208754801565728652986947518894867716174994195350389008662766342016733309252765166044090482523155014176190928250279393647387394221885131611075682750216131325760408825785134612000123429513219973531727169841195987938686894130495265453861656936664332431798879938119089585659506659276426618669559802014895100400636645182031763335050988947400128651573839518347912850485844372519339219970980403172301326153098067468232716827447698406051673621035924565476741123991122243414740026432453686506805480680144559752349656983323957868480689175866687072963618810102316334236454507810462255061577592297778012162743542481817144726222319462533346956920859299259351676988018482940535535715400945675988519294928034328901832907093813888398806382377104394253856054822295525221987788605684868305232092954603530294319300252870742686879391277544050238715171096423115198033080797292967348094552202593421907526816811284596717090424127903478309347804647470226030471012736847911411470477510189913125600922232334521998522822972441685076200842787821356839596195458549259690589019702151370613925618995525498826145260347040081232136021630741995960927247940180445656035421397403013868030470678900340084075076173041777494541753689800144825350378462542738989594795900426506817912460818592154581672853246528526224373460602632039419504898433654734417641374466820678673676150934398833844274786214885412032811720503217032892454844241725982332703833350438837918510859801616626889795695960394725286342938474848482303993573133690954214024435851771516313321602882736899157230539638409697424829257627429693565294759839768306293686241928308864065257642597059520740736532654864833289752789466086948377079240790177295714934391781660569452535976773025097665756771846077830303973975125164368817763343594975600592684378386079492823352687204842888146758930183630591893775639933815956446540668093459324735264701071218667123093238167428249582180385381523021764747269306044039343396150563691199416635686069362720062413926457945869497167393296148663318725636787315847670001475433155537870328699380522408009050008069801307286899128015235108890745315212711430075659461057567948322243246759924896359831819547938961229098751997783272062589782357831513118790346731746736363449614756097761858332635451027429346163115121119515687253785538985356662702954139806745995869550842136839441895442027398118550749927162872967469805359384315817373654739046608425571893185468566900380753323052588419523361771794862049410608447306659981566805989634779216541913910378785457747412548751501827280826126115539364259774483513321205051168459838297131549300415711196021565201805273174780940178221101188853419979264739120738519375705783087987357650743271819306591934205635720311523430337062174229860901066813996324667187895825387944475775270454501138231240160922455155635676544865872044938663493250506999731141626772710744020572159882869258479942632807166913105463332637198502210881658699084930582980831767155512316459416840788187979711502300765149480285278449019692625081720204384806997212718399631240333768239969973994054651322124534738079868678815520137064586492878675808162940878818269040059185443587183667383624152563923929588197177993609445851753625765619633622140865043123810342429471105340005091438703548245148523001845637840075393551854864038208534890534347746439651062262812394333395868658692753740452644475999013063234534047742129835315353413246509421406687924653848423367526588983311646653782595017441188526924469647210878642755524252877795880276505523240727815333230386107853002783288123186919837857214531491042442003972067825300307556498293437419120783507052830880773383161316555963535689169401453601116147262323945314897231221493879659836741248083938720190949975321168876248561821544041363288832958239936329276619669729079520223809218265598778973171367569765061669726393339059985026512044914450884805080007059619032933955508623059959566781996741462205773214194652529045028191776331469628729418999756626265099621451544419923752272318594409418621061964601689036875824955580058607882845953686723752497877818221842774486720948946955559251119480215400203850320406493057170772002378742966701601482144431347244106597354092131396811877766489653184801630431380553866189844774061648063305732939066162079443020944368202016304356107351674930250240940068717777783852166969258716125940384844917716079526386294440820229438219458903389220082530385743460051854900614498632543118599104866775475468794786441876824445532268505815789127098312394981277234400476312032802111456051604998515405352728242194837214759326907406891938804539512987722457709102100624765265796331867895673511916204800926431520485921314437620978504441185368072721019002760131948618576610781450806994650864113116292096173721522609723741387148515395287334557546359253861916892561166216887920153622574540342722945251367166581078893680676933421291640906974719407112289850068010347149205664660900365661365818764345955494765833855686415713374754510582181261699180979412386995579999836830065067273395239929017717486606775096374221788318569866687954736363068000655142028369123448805987275368271595850358176718793466269645984149252056548844810878016374196536488325361793353733211253319059973536052102432312056981727937482890765596896532931244865227468010532426399113277356326982314005008194963985987162947537972145800425951204919999241061211326393771575925924368587729066697139251188497164874577318272973013900510975748747065919969155863670054136261359663760738077560355444878721594184845534446157786527407767083846909231133413220699679664711713176540224242143980457553047037711698745142077737386647839661929345751261723374891802524683518950729494119226528402316277321653831072587420753388790011129722358002767942734073993384597329046593550586748191636081426019234414317821958289890175128302874406849995725467686866140303445072973078076412216501253466505092247045606941954968851681185906267592022247714507715724518982734802156436598969508314162834393685181835867687561594175726973200170672992097970792536721298298446465290660985041296442432164810814832639826790711864782951512983185033952867968479624774146585680765967699284674272035033041099596352065013299975618833471951565512584076805625715177123347729999704336137120105110664376225431365738076331290474091806819353258450752090474032629332728786969923262298737703452071563241330618204374058818904786630289633873694478289911522592464181001814980436488281578028337348845803544803279285365657854286573782648986731943040300762393908350535298753809874518051834336091943274132664254090013131342107533331032616242597669484256976720903350788042300058862040783657257169230942000792852361129003673744888156097939520224087594084896970049250904006696513478185434920818108482820039859066043428437032129863325583232373960401214551644236707669092741426117525550104915112438817251920998098553124060764432371984292257523530367515659061349154611067628762763124034157709875355429821373575580604665499224879797188835504774506948607016287285488119954624072678222677599581164553639932972055418125176721970000001369804129733291631652955681997252216028953139105667942040315915107464145890309894071775172036047445502739058821688642247963450385499102641106280809487190515869965837240754807687958277955388557870711914306223113498453866910925403408891926464211650630217781327898034359996311384971739001293664867919857314622399497311742305381068768545949017410238737549046198139077149385064482033268653607688791264884826797857823514075873536103302566985531704169769461207778612171814447591724807037011967479660939299801167479446543021279942895805874286013904061236035130433855362984795702273081437433128584412513281015782937959623997213477539043536541381829618246503700373090812390227431584382371904941809295124437097692504350679090212118241965390805282582611399640053892568532114534499408890893581488035077844900804142460921649719837010816527751672652044663903043362373969445905703131566356252010917843837466829307366058708480320662965235577862928029732326722999623792225094794430316390083536614594118334152461263558674436244252487698443578355126658652202563726444265050264813692611910832007782003763669154574154572603380120314997592532110530972062763102657979555057291999600110466060667179484963486360497456987859184589023518778111353969080226279484726691437342970511253725032265209400160188565440562443409994691380122096992352451825687388292100577240688332610921726873787205845795401068758398939765054794716781493069520715556519549249636259722882525796948567023409793311074233881480791896896800773950690178445746836795787650646369883646504460387222992711445473847546283186055851957543022790932057754210170556324652301279712510218220409244356440739676444812904739316022826043862601559197819385013201263364242167615555788730564726823720266767842457455490725083540426418920403083355701834626813843935479460628459832672669445561033715295296081409515582490924896048923384240374159502480568254164775199211363979357101356050650783350430351919191429690411209818556017674319203543363205332857841854370870721827841450000539099093380791740831874759584923307937406900472508413802436819252404677420124454033005953962526218051874404902016929003964055563731904166822477269370365752828994698642099899624171367604103569432239976211644181255045775536560860985977399666996874608737696580615169953782744395296181076576164399101993667461396074955712190290064480735233487991554949125455700654981973816207486143516796579584921395161609077425367984330255766822136715407959005924254067141989947776159779718382297072403441719580560171603712133629906892575002072834319230256973792828012270599712802624114230183099038958316002399459919195279367765329034453770677093539419107051246751967923967592346190883711073249645446257102600587920926651331378137604153971038711234565430876257666686652578362725312269817020426748727711694133149608387750514673856975461806232155989748545453454786682310021126825035038976967398482775636931014521057523770326948171418899936424497429805069785414589913700957241300354047724934502542735419300161789209408619408429214077194427344961541582127141251025617943845036067786921470360493403933168786097003235852120217620122118037550709932754110473866837852655301235867438525151571652883078785897017310779061321172794928308590144743120483976773045861759953310625476235259151091597759516313344781238923464351547194267809438716697739176898042860891996469704612999012764433885545366082384882937126433425133951346031539632235214626555023163437261124081675469392988446355817708582152812027704215722593546508570648100065306210123648230898243878545731441966016791246987677874979252741027193193337152391871239060879118825988013817599983240394389045370348882176499226557937349453975908861440107746939779290241418307814019980986790686700666183122317050329459885233366384682894021344654678150252045160336371164411188730883875320944719301541074080036395265359499516941627652581300924908371274093066979422458029719542398492869678264956635532331951967621040129774634369441944461541333374577779538365499245486579342251357081960773667473129839865110477623322727896510431196672043718884786744183462398107885035586590397072350611613089556137596338309643865579148207951608968527241564311758721243871018196520185045568175775310743516774128174703009307090636689291771042023253827883159173892045164771772201883986625161094310421138245036705409418127567665278714783883224001521966341764376916328075989911777093162578746930178362079808247749570161514611908407307487202849954841883160803403587185008793373577280348969464926062986881766436335998700729506680946460766411899022964189771207294239468414219890018297015339264625838368532569017935204008073309612097040548129604353827504522193216251338876884780964783806523835523528282136913888589121515075523256815769709558225337337768653939489909963538388311431916658714782329521769294347645566750000871667305890584154461769068434858962145395308918038153325235615065682343766278327930654038029015557384271394686572657608737615929601341397468035849254228443758460820157239287443438213045629128643363239693245747337260900618550940548992201665446625803921056682735666814544007544194401693908449707946724217009410119153720308749094770167839388828406743824021089091968010137511244344058063539185674580586919443314716018535074024389955587732193407020835363620327306702379731865697920688283302215043316178737445783335195068113377585414548676651155307553147237510451205119154706717337196701056154249456579045477202561496805997995961264186536876830467768857352508464013426214522487024886921150574365122083722453401679979840883237150402161844248264293410505181438279176070256890939010197949214928561813799136102782150524933211940868382362555057556975196716524531596672088016829506985366149856964913606834208544339444078265616112727943289118161809754686940930770765609894169942863060800711389266593984116265305013950905219825565664886197176125396689496660262700179667286839089496480958028884870346168060151203602439332969835639187075074233945959412185250574735212584371497715507032562589908749755261335919130834661171768097395464345513378732713775507060744371779215163410555011711612065805743013764580251715825412843854124774370271214350675949216240921834223605055767587645332980364941970161059121127850584332580343080503993056582940289035808580205490829926778192509881813672727756728826981155330079004493874416155226459976836781830650175206917837074096305351108752101276700607211628122991207464184969989599541191817378474780751902457122650153543850875557608571652916494273320033161099110889235791136283762443555381642117823119487358704784898236332018705156571082120940019995401286950264986710788419502124033910437881359849355133022223743961997982630438759346109637194533302415879574491982756458288500511298180359135661423178803358791475658652759084843942845499577031662245039077365460169345531717749387701306648375267322671582269670917474571225575749025602317753245880317729892480035328569242653885939367197258904669323876613498741363768928472025080819838268370184911378082727657783507770911323112909553641979728216490626004055379976774885648892812856127367528650308796789524828413968905514178826214159138565865552426937407040616662212749600541249326465831290436830697534412407076433436634350431052335994374939015539968531661453601413978772026056996043379673244228797291771412795208042363986083031965739900722473956758774762114710889776596989199255145249521320912252613693564341862338119046761263678682929004450586365500820416797382653325163925519936736689962880699800144851056394881504704875622816969954728208775013257272584747671735305739538037408478957534345246536193896432561557474218786498303147845840340736931849682599641906225702221845694264665062471913345081393347231257015294417376373111726900127272695588378297965626296410368621857455663768928553551479362292981392999592100432088945779891492035746781295818544473234466329530577431105802192429454725155567725056418222121327748919216164517653285588831913690652810932149242240388563356678808426442529569358389641338986120867668727032063813013249029733408026246216638006593433533955590933813969836531502035109927933227152110115682511204570104353601684930685991693242994968777028010515997871248882074214563885089181691838466857300931519403593691180822959132988792454636544724522511444049056484068541504244619901366319261619072386999520472567627481852690244716016622561435510574416769858814730031148137703906598426245361383987729832840767587821363588698350522896251512291176479487678504118782394041498583487825135325465377910266989827214486500775288669037968222266109781161236202313659052816623185961421710924790395079455292133174181834503748012840065573841455547469073502013454231863650859203793678143039257250298540130498769942886817797553265016199483806872513318925186392936102627735644376747872806169307131268260066091999233445949233801300988286049279121745383707344143153231744448270465660472788342244348477725071472734154117291118091479636148425584587494449228993360358513642238556871077823995353563170332221783629551663693926191343291466816884060394797004175682044828354551068164341161735800170472165569673109124649521233903542074349902938179296188948886739587973007748388564104241678308052121785587363153181602057313303291852143246256258996093966192523842654353652887011793457366829178413040658319533404285025808138954465326802228683404343080207717614523322930242833413723266064334723465670389157326008047232999847063103815989617375689092122602070430468626461834253466102303802519336203625070309727218598078515057169583212373691798525995707008021042725880966361546358653011549791221465410457719810352366333579872303526933571231043749332558390259597228895196715102458662333131880341442030647269121225568310373923831951950877260789692698669272726471339573926334833894840625153920213575212630412619750872932689977117121826553972212192602832493944633577242469831726971327440733608180830881830834738449322160441373033278231182583266219251503305897302948696851064805862899552726022471535171264190828023444343714304306708792638792087087470715786333902736240915750128792337151636014514806835547908575995002590930473579972631422095187702675801566955276427578325582786316115758933847456625251839928430702593823691390532653516801516908197781941530884526035992604284695039045017978104826774749266231542236802385695004802847032830516687806888145785026423758861141753449660373613565718791516714519004015866091051011932786092902845932253386223030359202275246045770832573379032305080812408506134671542995296923026021552217168422864507295438042326564052927633457916318854959396360079048982960280113058626743340436747348458645064644195155686224069906469409410951171597045050916548687825503717674151408463665285598621755673074314428659279233460295682021207997468757014391454161190302543690623596905383443721790168232280566180818453723344792630538387461449297105821060891139997302756171066727818825643170355062040761519847558761064446608246746298459257159626581481019068768458102504930049650615321222564763459113375615069475035403424432969711916464429680649906316080033245042963732285283492271929322912151472982944380484057852086729056794394712130632011653317844192041103654485831012754232795336003214085467299621903897365941232088295077626174270774990647565612540539677182236718095825732677396805040940788661322229093451156406741442350241187702760691107078576979875829432192873839241232943116552399018885216810564651241920017443574134127505566390052164506149279067054554718853594635685617230612833849675107783521276629149109092153786862479421638070055804343797382932925316611112476096011199441059125423140970266112482438699757568091561236152100364059433507868213796282839375022982708716114349098374614796982955849227088458132892617318256933238152813016570376982073389014400973199039558186903453629674569412753274233493959285367876515681984027326153832117967913967168555552082959723939976164308870253302216898310517131114083141340977550653117747431107060074152460277984309282640999689266786922961446874147134293564600985952323640082783814254327235052710573071771483510962483254401876287669168778564743669516055134510895241684565328997026249534044498635281300204626376568165272785579074398816851784194021223610474590772307389934075060975994777062147153915828062696720439039713593432752292616685648680276988397819662085774912932923302155225875540147923115686561199206937103008685583162958168685585252494645105009409290470936617675460516710018656699194823196507654899841636201022615473358676248187118373765053848708088359825299102410200440071663293635899531045597271626742371786715329550722883778045000532868196104398796162645370625808689533820935468564470563680248703941137207046201893646378464555021914106821385822824489910904250191437552948588474737961564024322683055389569534382831910421854654374132846978729337022978050840804646583567787842067340363514379730592936181574109313124809882935869805338589013925706148788940635507784723367712949777292910598685467592290257020214464553023583430471024513844972398108436258740495093759454388833361985845265840918324538115392046593428543923418404312799414915395298891343463304356417719965538895961926919876405989732455583692774270347812598897933852251109159407612859262961753645884907820571830247034915574314381668573846963691532572471811830965021216111007478031044102765200013400159836932438846318100021754883405000047946303594110786209972035909223218323748904466738102442497141945233905334556224471334700628238114437995647148542851377704288776406384549427630722258735797236267421359541002807217366911210200407885703184097106034303494841154225910390626562095524032167755998429085069436400620559257387176122712491130483987385233554832242807797087261976505434644718981101777932598107092487158875682008974447450050963499172021865774500021619787871948189753506060892944604400883537751548420478338441789778327108371155621668676342456504956461741520602228823472844778445536550803392540058772355120978713427324318985221781157219677508802110420906330779703806861237102676511826816757403382810125694431795409645566913818735815152335414269717992013882397252180573413842926138883523255868816005632156887594947769473345081986984878093191661666846460622633221336599786750536062054221902136345568925513767499716815759516021377244094824185153628880314871299804837194207734477283634256084927911727689894116287060644407096509047366213083981029960614131049345806303325804143747017702918472861052901360706369529471417952344363560646744023003221891121448686831831865359859534942725729794881189629550287807747605325560609888746826330071429465084611435035397467927543518357790814462688195143716528931077759568813765815022214745240658983477123529185482418857945177741887104375120909179933400147730858008894562424759360857447358280905365969615759282121822952931381971800545870487930028489112983088036734475086525271930496599673707300280950688140471274243320624805776994312222233385609230541412776635009279232008674921435962058022764142256252209652638418219697265640718335112324870849559286707466831255846489521385471704041421529736260747439823236414872807405284535541022641445202218080443254175395793362517274189715313111028812386508405112553655425765408886653245277633528565269445568395184756546483346697973498377431222567233845545706367820757544018049547198265762032505866108279922199094370051774085298453165480524375262823136289013522197663669029820174815775444476554527233013317978999295958397689235480766755025863783484333534900518009013581892535810704459044661290895672948267179559227535979104593859603490030330404535286460391332675906299794093146873795075751215099041969155482384903638975037054276876348610982484052644271685287020603300324945389779339805865243729664160831639324290637426818619666334399335973710548794463293765656039145868346884403381958170175554485644769214905656202405351576700848114376072131097254071521262952383046773927246817016587369735463809824945615235545835529074194885486716495613153960867878021932202782873032231532522835369952964597037370323468253413019919760211331722379114162051503099404679249263419636650461285897939350957056910794433767224224342448487576531473430148823040195902122141908491547765114795866178599981717755945895752015645025663520295068488171915294269291818951445900173327718554135817875496803451659720470474392629213570105442400384479915983268336411178820071489747581896353415086862397245403153641998113804957961785740993627795414657285811588263632264016096882499196180623439131891510556453170537281474971984211441717126341032184740864324152469554256903615636428978728863920970382895564443056055578865238239367183853363560853532139812916383596540133079212410603810631404209854435102990842183197554471558576476325004925417171596795472585104116723977220755113856099628099067021558167835276791095928405208074717600056060332460267256661590472205593238363692200379123286189859509444260397379277046627169797627556231333367889623853024473377521086030896524665574136628968219479381834191452967336976864698157662614338373509839217282572867898197101464350239710000063183192448059650999733646938090150795767584033801917116832250186529081442629667740099343273829539408516730948767722811983643475723661181854669915279724761016908182448696237882451040404817933598310393354188945094163088186115399886944663131044053547152458969530434388307738819270605641890455215789530266259318859472205932571031937357181684245434311039245845511605511302104490969507701243305120699844109678579137455018331384313160059853848101650069514687182736116381064151936925984664623861096841296747609365301941769538175756805111393337861430780728711370864320220588021564108428333104457305808330614046530438760777244875362333897067095809430925925038118473348611335475819768665864039380831227803002117941743887033270030011693389149606075788743591869990499915051840815360572228641686872610399739716906854536422982037886283991319143939557978539720670269130961344731437705242925779169935480717655003896216907948499901581411755344191252361716430617804567335263533653789168193772774896994433992800898647298394304028948649354152133482447684292994907012673469186594386212007043188613349117313131347555335948003040217821900623928729632780397402858039523632993869230168611654049754214453919691113660117356142615203904719724557788017817587596249247577139801979941369140033476479927951309841118748765937707227610989084336451481090842945107259324956829607700506445966692237809429732706831273683407562160230372154277350929656590546544589224127463560751224871377221142857432329770081333631020894900298468089729881614984416666308133821271996333527700115726305800919266791696932322317914700520243328010704945585223035280460876710740966299408486948453092792550438110843088700270654177276019019953692166182681139118149070936514204232540771309213835112867709538166221903904809217599297270912224776264853674820236462335628300983185331437906693045211901027331188592004977388453635845058209959400184264863456258302470444398366280758657386232731629983041468482366084356092540703690353872750154761873265053558682459500031418106195039463013071638530226833685293358532906765562805795711308851819725905537572238090978123908240448757929826258447028586604335631471315410865732029580606610470780098163452224638264377519788148781998374314941800183421981939715445302368082490111753793500630439483897775098159483607402795263693954272972769359625417734573088272890284137136431404854508041840397148997421766650852883519896115636194051961309032683716970854986253814458974293812047719236594588766778004300993632495564062898800826129126727861009257447192856123259995220997451006132292429857271794483803320196552830724684017393074249449310647471569594301353624907702867448170553380490242142043642481323118880399657423063182088157561318196066925843651528377522185793831183081933646784212166225993013753246889576046255173637578856203920043842467828305920995079943999257721500495969221580515323034216055419517059219099293827929190588964919199112659167219452507812589607875335234650358204123805843995075578640587094046874712784179147905927561204016655092359989872290362316532714108581983922847391467621123239456928330785800730376115959333188952617988498597019306216078048515091738356491329329304418885852285963442104908495091610457647708096441251287335234648709232407729638335933970011606432817278098387212445130695160870826778148579316390157919100723688153828574321958571602068570431813668562604555147498920250328734564337419556081363363744969014220480222779988992959573096806230173771471471088162548755445016613806141670419107573262245370411301131402244566480745439616216727939537292704355682593903862482241776436774519777648999373435801840848760609627394074323391191344626538717601651579778556276427612075190477264348601640873271227184640022744869252155338486700741573710138394967321592995920623269891951799373643468003935667919820112016642419007162053751388625172805865428522244486333509900502074217106911329147309138191825107806724206065585753397698700320647087899476348773468717500319115451356358867106123976400897700826072069631158078331016736798333530363494152427226879938099163497991552555319381609030817835932165285549208721735167585573018551704546444866272538112701638778046593708179701517660388771213989674836150398312391407810544198164842545855114467479327821698047675372272047849013298457775411729481099827187505290917086380160825989783796141547738447513472631415810825343045591407578741897261457664165203604212663649459565336138292347618565606683559349556097239402829368577390365702155520420192711395589923966864885382776766634095871865976966006403413961745457101514821562024113441885051578049367085912310783169477219230054689930898771154576899585080095124418421725664753814290938657301283113570737168983977632874193318724904015532857831004064770843228373317240013516531162483160655487257481661588344939951695140727766497838056716488542830573265776406243898715921384862778877149094575558262812158587688456727252537908450133221641491223061017897052320115385360230849552078713431013650670390726713639261648101870843165056313453745149676554328384870059718528455627140262099186878979380992217181416253802079736615455909584963334781199683363462831042889966893940870329259126888856156097621645442110532642445387169698795148506175650747132963471859101363061725485538673032820637753424201721023157430070236978988143856093044722953333609681648375601332895995075358228533916218864851528787107674994735724119619677046750562150278138240831826077262255452804978005422729652278260148354120391414896639040852084354336287387208663179254652231882755222003073218628985852343574300084802673878407213720322833035284285439503043112368878987970278918244104995524261815141236344300001414379079388469188140364297143460112599107009580381966770807512992343336779903691656377406051421038337152969221233383978203668283829858058227571564593758713875242078333245283627616322710721593941204865012165483758467653924911211579074041343068055674384506777795435756057597143919873509684249948581537442648128161987364185599527701250849577099121521661591019215178040518080091466313421114017539452599738027147542125902744730923626881129756455618542425519103299669688168174843374016729340250372070943964335073241757667505233824929671991217821885570577933224887933871048504168375814239636682648375279799451781437671305029745165467709838063912247234612990102725667538839991270331407365416991345732501517722629717838901376620422010041467647203316312782109122555571069130087202444304650982990746142160357099569803263162195642093760514751138651991742604046582687228324417261909283093694229890145046115915163937532737666115961621096881502483554742547152495678573849319551113585662469801125270144162353396449311093277155856526716880367039533549538496342021681432056982693063854307398315667683346337477256973778112427404576012630016447729497012685466337269331009952662171316784530577540400861120100759695251617767323156056053695962986602322406634041706147717611202292067895631203779237800804150973642534648410472117523581048685876590405780724269867624529602848705462759877175676288872591758953535874344659058253056663449394166533979233868497565685376560896114598791852340161177710192628779168344978205372906301010328293277671014096806232001628371305286481066116081060741007329460023897447719718419732873846707033113527347862642080934005294481911006143011731578334286941742725887508977978372330060408859137807070011175075447884525553350428611977566187148603206552265548545022913964647405073855637504047306557044882986809515851996328745010522359558086810418306047479452179045255991191966554070676823647947404729441659815060519549903031893126050887637886853043926926318074965950328165276381220887879546396269555526203700309870959671322964197359813309613041536319749298888955071696623430731728159700061292299802662975644879199554460837994009049235171955113058356623162744583104057384868550986018796753224397929114546846260059958539654266435237385505238303624880947029387186614751333997897077300665572337183854048128400359607510062778644349344044085666538616794197670288614258928067483779981249744781851526478608579674819602292726002981434843902195264878698496818168830085914600271828065560294308514805861185942137296660126182129293346511632727472380959842691810284977019055413954056492708380056095549859186482427989519315210502473156960105424387134465794331733558521670115940449237130679798823718492301966310297588735092779574891172900274516112749412733291406532218762377101601719312788403158555370407568790903186032090309653737727199507489320426273000902384802616899096466358018673774855579074003074681340966199840660202878614059701804139673300968155507113150627193124807660128776027667575646320116199122774852023677288081370637361878824422736337602840436853223044007566949833990743669928120272485415672419064101618138655998636466244617982226482053728694260171582309089799870627007064972141914210008098299771094821599446326574768336656057960112055595336043588360238348189663700197887420044600897366690533783803628181827688108508772861664883771072939835060148841450182897510564626543254063608967039272658262380387783137909068277840481415955095263418392218823782981590427568455548760270704767314369665794341905184951830311211014359725866680488156291946768463979038100348906567250258301258310183344081461378640407704998352933453649761700257342967564580487008825022569304908686199004155212969250938688806990933670715080261886573001871948144903513153781521311413073561935898480696630100197891857865721826577654103956157509005620490756258966185618319639280627363350070875931285051726222309405212359283563385676436666583835299866720050035492637449608765718122651983341375071418705033753716815855294527105817768370213826569072101822895497317876947850530592341978245341000312400398507799816774835495027454019081605987195190621927372268830602998700401486400140576544123506847835522348170000314200332702467026335835239374467134452648175305397223309556027079991437647066390712578435102812049271764835914704024675318107117076630756467040612691994930931665418627720805476267464784719418560898015333396486008370544863754738656135091199335012101884034132759028386428712375368571423407271702091186666389068434616548133083154180864356044237355036733804336698285619996256988292687440073008553686031369258284642566861190636778115786740581129805271551224464052890971353035297823766761061922341019747258536298228845632243491369648446538064701915035593995786982800010057811481948182820273917730336880981763355731606968141843356914372326074799530388565917997470455651637027627014019318902702684765503862678919019844764847370147123517962828676640778255846865111310469990421159708101469083635667208978006531893521380864126161160080388757834434251161134587140555720699802254164580519191757826756462735691516736417446211979059321479209534820100210517526736731802597518224024658907517187771623812954292585407377837884983359207256156881535206120118785667079852965490422643649674664237453136389740525117302964226501894063987057863893851478647715091994351191028613155467653370571934392550891077529155693371352863995477141475195150980041536388546746867546476505268456310215608263003546312073154732729341551004363445246406053378630922189815496341991843677261425061247311239483458898205255603513048440372132590185442777475404919627326811623328104295604611642407280026962709718651467384935300339017086310818184755650336690466368668558121540988058792974553973498810240539039945341341712549181957259722860432920234858869079696391287705890690892589244412622413146608807960100827831749590669821907838656001643192842892212979342777360298574834638381767063647550229257400050772659090169843908055974481594579620576545110798797208297898035523428202000565839753190950826087792371626245597024511386557480977838480240835891368407184649040912079428241514309415375534068696046687373740828670940042750008503984965868413751113325603238239574120518105981943854093477529538309936546979738759283606100471212618622123347615770135765861072241604854135635007829933322181001823761002115238927240500101114186269111326319835385234812021602514856599276205227848496482075049601528799157526329337456151883267032010622299550782544849792849806352657808588122544898061117364169465795843158031249303491813952445963793599336857184608085269178674966688539856070603396454211380432150044479382209341203734021154706097321055310468967041245969990076239969815594295706939327183617027976748275698848786703899078683716107835649994001622334638447643309446917109950529527841019738822789487452401840225693325495957582498533302050115185354773088571423022820075684179443621123674207414556209234726647558364640909103403344481580390074897661563826694993412809742388994024213466561022542852442815919235161621423969035926582009501968885025271241180619174661996592792764796857113123560077774388238096901833837711518490639423252530599527222085626774318483988783317973463849642232020164510912214968690364605217604244818416070188065444124007688666579822876926646639155843895975220214555223946885759336003601068834120500169316526180943827922956593855381835171411271248263725602127202902707531161039450757803142403626831949315881144720438309934689622318212154456577369406887718151064002404632182294877689087262734403380822709565939689834675899572134647822511009247625275866051242763470349521658971751788078642174736378884024260235748864864181397791722808612378188533344420967323339422170922911400472264069098294186966975809671306614929677718354147818600112041178509926293309174605974540971565630943631942993734061901006692143345243440784703032757806520194129982507097917785170266195535412016159626422613808065187633007431830472264227497214242342544713227715832447291563216770133124104095782735384088776670217854986433388709118139218515679191435848329163212042934155038419440366793132401484772652310822146182247647622264079536376295866132465856909305577939962961626317240398449773299973928766234993702454392095663359206810100735138926380711137560148468484835751167132065148104158320130439889666301770823196285210864149766001886517800724809422882990307393275040082923009756659709191038450967086618945761212486969357686254555775940246356045302571986967037641256579153077688931130822292907320328462199745469822734588882722993508460504678099579092271401930568413848406285100843479553019839426335680894656837803354263637931710312543120287194812711332700467233482399597575992912344258883759310589683497981469353993671558092247067623165311567911055473249758413329399362217107345547708988740634045197980700110317897389937831072941404395885254318451358705297816778453509969149817568601907736477389172297183438448916860678199318484284811228874991167158736067936480048205505467718902112174826561123501441014222324148921954943026499893989435695831637132003353712577333071437268809698503468890349137043947052310575118718917352582634123162128675821280441583025690205841520300336578087648057723333941938714696975650520661150500490321010827193063192573447812981869583314039412815042075695736721488466117904803848900852838284671398140552974435997227507414441488699419127342008939371684571441744403499336454852201705362980595955053836282381713899034411364792564757076646023853620803360454948853358623494305291551171218702063170525758341185379221689966510488606424683367319890160151389113048234170050228337434252774972945852085561435628545219838003599916408320333134881686135801569365354839824062562750022804797089572472343736687483556298016141037409706266957264293620491353518640392486176171045403903900651471952710934154374026738875967247631503236451981108424597420835012036077158738042602256104507133616569556857163238242299041371209626882798037518181485181809090867990153209740681800687513129418359637748904499293217933461884531062060632120031937528344960220342814406200851059999499293577457072408041021457441612740517265078849880978319190720181795630225380708619154887977504845093115114925068465700722494870109228629643463751592507844462527332605766795330601786333115783380193242081090390416869408176277887534587023675587996578758813111991707815104616873204673131032514000522487962369261839778220638678996229945384006649488380450418384805494633947119173629466203550917553456027917064846099159284626361697439602704456314964439466833068740846503262111627313182655641426493754703554948894733651723496470487252550190997897134652975334090600098359526410712501373340683981178819871336498432811025503638321623871851271521071098534275363430735607734035579951550417017512845564993519010434209928163692520057761567763983321731259330464808983213260728726250272605744589432147801305436044804573910552102470582413866215002669253693781622166318723042653179047383727271056221592820958779329356297903831759413162944294963486361454091181382451268667221068669257477912740196578024470416201929668367275439105280336565286969457352976384744277616186075759231951598143454593999255554082287530546197153263068587749282087597129177701450698573873614739497809185713548733653128664767021244057868493720512743400966756576568021623134153095491003228467460309045670390144866694430707956085939165690715468012952995820125794501972907478979862490050704622917816546459344123869015019352346440317430128270300677634678468657242889557471118325777054625956218542406451614113483023729453459761872985295917509680335145238046166679884988573685300189644753076968142599993434930296220558158958489635317439428818140506715244062591289685919931941964592400334669256481116365126324689760179691163035799171223763029732729853007555912726597810177907333919311532500875905597686843578054517069736003505177848031711173066908084253529522784470127777653774283713476630763727630596546032596276201238906303223577937349522510345857648490242465097014649144892817848842152340577782147141803735547057899351233839900835899429564782500596972474595066954932234054067337016684470014792961740105074447233232955980067732579670715643623876214290378883228213856805849226936200332858112555874162080775676272506465345151634095816238648913890233202925508050231531148126281854699529966747827490504493696014585174184933002011128024334980392045351426661630994496318186124681840344624865308321128756514379325781964281388347817998688339345637132563558396506719875612710735641905280976417468885582889211624764135023151534953044860210626006416923364657688365176415651275099348976665808062214282104671265849761827955399139875913847874233562514911743445528335684015848320313300682351192554452279351810036198991368043318030249146451321358492193260003672782608564613839191175023863630929837410064056459938830112102748464455386718208526207611309525030166145362713473901078547482216265966325113914241786108824594479002988966635060649815424229519017265776820826605738267773144274086920393744673555124730073087954212221159468154647620128867161994377530370413170313323237561578564632656223461683840407630959661606094902860233245314807850377666051003745104419662544015651798941960015491560375386517832464011498802627860799078792866797347756902591924047397335107715766973967480794857102657240207678172561449860304046773646000091065562011750714104377816993302316967301426280076487175395656630128029581032567160366528258965117639658609010470800923363138653180983967596858612129386754058604864326757383652957602436791744208917287132815035204492724374457529596750179700642842418419203190987702313010911130091981812456610769137910746505993079630724956270266717770598446079191826480080497435737972662059530709752216066821660062651389795772928584739582515294778551903326788156104872628553246500519890082034870984840191415754465438582952772861202785955785308975414421359027787310312981836687290671208755766651646937247322919225674604669055073613394283910688786375883021143609070333248890109346234298769849720184598768966917216584847360635141923567857341771697802028519115425873655332583979064314175466291365256932001897960373906391123703510616002774720819726871956761068989800483523918846196273274943883251013366455204012982012471465093175140563225619484053681744878835977174260709056565574481487371404688237086911130891913315162502660051190124326321528141002000113141666207855504483048450590743967075684272094190681545706201066673651397885731343078502389220659672250997924988221003355207699366083666579561035776962397182845459733318359919402239578776690108984152601862688039771184334820681563275419313118311788501496807511177139247403208277476514993886698890044158577058167227225860588291290742373571852969576521454771813313790038571938283371887870018113985455808616554902196071058141043796296739678517957168424454558692111843897742484390629535550624829140359570272816701318708569395942277413198504813288663136913829026877146624466817461672834626555922859024789560768544456058127370017679323053425582059740713624702252947447017760898782557108363831555066341621000332925492967725790430891457641612875149669631023567560946818208374809917604365698799233377298899432820129250907896674277199526981768716677558782280655662009506889558030754207724259117395331433451593675348630176772693858272731796661926247895653702634018205135618153206448832661945310935056252520426513424863271902693442179578878341504113311603303684272142963413515445915812841250583884700213224283068120068958526638006499157168350610715089886122776495915758250324151919826307053245522225237834544853306082189418350726080981377739438113421499204498171148912438380840648127907155147260830102684113583240093606068229706341181998351144527325617506866888735314130061720965993180002734142262145935728953653502908513453034303771981223452122415203283033795324378101822222553052462691799196016707640283126423964376182377941708885533986717158727392919163819607036682613724163449848953271517890435920743904439567968655701979889203240853953918387295447367229507998502050152379514766845300110971512204239234637361408066711796747033214789971735343445928494515115330005821046994880662095944791353889262759065583083586065795775816428748813324449021648926627817425829540488617620861079346745581088170283290070960729766374102845025282487923349406895887835840266688119640171052594751508491067945884883140046032234435941364547851102917924535258935372147040073612525886256275447790812234295644643727643409634119483341162899798877677013170503436917846476486694721492540160024819671778287338614326384573910591985920810415951865747839457633103811166176279527223257194065102617026074863154010951088563586501873589580740773412369213868575636465498859350143257330905608047576779234682734699298489632917765176944731367672544327943303758088456555071875943922919970068577211370078638690843738688616829925894623503564887248079050083907890610458857358838993864448061130480789261651430339766657101374700939703899482506914652503279182991392073350925233629929840169943369508004617540129607915119419433560047748218691954309705163822176190432580192067405414658551474432971807802707777615040451144073264012832335930559740916203673723326395823784605567675116116627481195529425663996417148841103049479097665615688806287348217876199307206266711542003768329238705664786001351812324411423419308593059528625803748466676273467305978899685310067574035822734932044095033798723188436110834162356154786757586283603759300401208523046796908405647453240049913946218843199294479482925440781484806609395984692810214877018808944717973931080482366979525493132911268609048224312736649229450306699437904007115486899822689568533691192671622697482518358341256994469113248804307962662667270809330111967960396715858998627215288387581428920314830606867707810472664173852707680041455744245651379914583417319852344108995964667096351169461977299198930038168311287840720734369088308413663728153755572012626902541297007972290822057348392183573261215839668788311187670280698870437570056227024006698219921742254155372985292661534987280166280840949014118960520133560044717893487664405905695348012906898386802220254264048464428145868751823221906849811638176960082146769231625884817415574268664709169481644613068544652297884145713005975128350066480461234351693020812442218800132932382027371566692415064376124381127536549239988311624361955791755095612239260262794151203120351696957983402946857336847018299943631914775690759324566406832920881497977082280698174455343553305342263729671376052517681808611353645931300287506265049138768920252246231085988376833358095520785694104329916072895295095560469360034159430467548006546481780124641483156545552375927381286590491456643239246712318663200951700441108575886224973331443888150470958818832907544290746181175071578515721265948069489801963627966274115559213403186795801964084565375340641729721391108455205345063919220031343975698166497190694380215305121546467412308615886967575789866930783516661453782182121731022998033535801144452253224504659910750173510742956762154383932247544780156751664182843354366273478292324618378241097406992409965295352822689024395729913169544520953542068532658693598070286617572711683063905275024377341297161295612724687265537573833478663914257883909148150047166008336799127353980826909937803748377045101842509567379907883144081662507653607183499750639766242262878875703191211982585980930258694104173629958187874080621202449649405386446244672937909416569604306090619317924729173689057214324220916181304614831395048543169933877361254947066265852040967671996961554559592065233769380350531103479571858522324631653559085333487761431517272469562659930162496748324560919385341701222784401499542977305484507170711764572881861090337702558270975963848350372823897346911453925744085020746596742291296255627292100801458557920059225831964803211998867551424267688104181787312470953170701451429559724648448992272226747746079992457562116190682617248532859139919571376958377120120335029443696996448463244360754454142197042035369579622132158800040555904212683361242279296275921560749074407728444725770840643341101561260874296887537413123179879318642205210734855063153433362083677657559123562829256976888896881301209032765674171356445149691297773545288831664776039388636435666528440429997288153405616742424807701213145914437744028395559140337126547572479879478598131856588909507653115550925070388116738082247217465124707163646662281428143490927994301506737696069325756980309672387901267374292352147477756466160158012904328173277100250854658418589453208940178978553156069726911144621818125188745260313053326386102507050891775034917447115812942839608980307339501676247921499064491686457570548474962719887087678559043082398234679431938592251496028371643432959276618294634671531584360028334869256691746908337520802500181841579362424779909049733149818618792172285703333121442146976128655235677364462891150604286412185397718138847824367012786579349209598435921141591119620700364314841220975280404703541309474513218414256037713483394766297055060230678237567561536237614595143645226009471277519657802684298844041681830655194336309603561222153027221070725468508452546346663694794965525972647784179631013099077708623857903344997866008835386597732453474378474289890456992733043642124860963702639192988229654503936028539634278167707415912154404141514443140197623496850034787703767961619013895519703406796337720230563509174289994332756502393532850332754803375751351550122913335191893682653967677084744042555442025210445281882747277670884187534980237769370519721578006510401497426122087849941118492174915577785058380056415224855021140644553428607220951403946658720569743026261429959001236527884951057689940312246754382310626142467179738541093159084560089946727003531563370494797236619422803239553661133262313037475235169621676347231199087939855584034113578273096413555348984342128176483008744294823016998907790232975420615666788493572648928276677869093387159090804476440120986323455658232031011726876684055437408733592109143190883992904104176300179769836456546150292980414885421079837633319685373415775783193969504404095820590379417349262769835399053068941748393267322668303377208522204737960599852244304274242818839162151817996709912343059295678876863665405481191460311115838335579978532509409955481182950791143790640736844387103075438310432860283199418958711800686108850711256084601064442013290666356045010524866969643445633485022014108275277089287985628588569001023583204811969243640778956783636289261495639885858779120746561157796054489654640148139300494032064748361733700131853947621769875276782860754313324547919826171024665546493449753684503829235321767737435309912467507684204056067786953189761780722955476653352905333104063522849392361712277340900571662436867022550847540477949208591011996881731419759700742601255599888624818257533850921168383084683668331345017067406313841093770824876885759419430329646191240882914637226447335511422804692779889104586885683878089881222949001773300437711404634061047481968688450265276614026587298229784033733674309828074758029706009191665091055911037942667333447607889650672986073970275491536932090824362390523000550601841884454477640363123458438030235969470151593430663719556189304987772753816061659917613528028758306629751109495005335131881001523294516664053115116278660707605805368039038468997910296525704693108721116162608984958396496282720117641737753415741852742423266546546155654593133955640473210755181374503384421737522023051826442148095214601853865424931982921496517147241992004272264354092611435690898453589340585521933913221779001087913801850089355277698202193534237254513492619228798398609101561021987682234405534570904667521627044928080543184714514182213409762370161500074827155607687935355486103203507653023472430945930677778497435497016480003097741099521234257678687472999679870182787488084114459631228991590347669564767565449661423607056807547234992516008212905067482472082604573205059821194440037743782545564205500541654725195028442157695712358177665003160793923118577015600729563806347550633264396454430504446932880525662936557939777634227335552436697162878295097036600779933363596801284908684092675336521381514548705293352907785444656560416260651378798199195367636878678441516726314606718051122157426806154861478942446983284180440109136514052634438370175318737263008297217228682478428203966579130482568335020799186556269053201479092337394075626720705523432620923493233261982973196647028752604795483663984032774754666290402258587127430201953839004202791136320509911273283171650792709452030694681122416931850797108368539654964290017411151436918175941610161111899882858824425871645025380864404417191547121528468268658771878246459789427256055287999572229200262749855500277222268422203965544151753815058568350965847083871163781260975926078905928824530401331177110154423426509681811763028828340084950161953994613980432437464690659391321470143522170687497640155192055025076851090002935899736238936449588123103771684738263863429526814349311728753505792957898660259979461659056278682104130864178710238397792352956303575715490897499933502338862922084870031246941062675650031248717486486004138380133171914622797046873934591219718406149796829153111939768336302882696121158316229997782057929757094735859813697448586728189041322735821736156070864528809255441683344351653757233036028478561197383726601032873790636626673420528136293724432442252071921530967637416760860650037091263627124934095314850154197721281459462561695723377221049380433416564018309951420958313884624823411367553405823899860546152069933391710663132254612765722074620311486223478905969499594986410471579202228444657504500035052240473879529063789673323770160771592081693645011596415421670294980780860917618383697997248258036058741468505013812888427012123551237450974783007587007580960408627714018044713162587346963564460508498562375614223975519867069443336503892740221687518186876196150712850551341219629856623615326566126319184722281819489797852503419729939556611549109713138062498736955697287797015093766924057627529470408040153527579323454236903639390814353036664856112542159019519803619028590009686368635945978684988970856266915054657477425952952600428306782286558075709582184529132586971517902951734336974788251052942563421829393372679588009035909462125364884638776561051423883082476624307925684316634586821536731466416538217642797219956064791004322572211568112050937091469781574242788680295716442163226134697664930007121543904351241133581062013984546461566736627399229104493602905401898970665972348937915511308842653634110699438337384041875590692338438589425920571908741340849937563682973821134430206139520225494548753412937718318341977051325113478008735339102050291206746855318766082137471124498800067530467189700347238316178027070014488359119772520700160880827531326211405683537269645455170805572380497047255070010382253956605557957830978656329163956716953152356868868441683457345248296812348898653221372605719222642767937540910991268593111742120486962655387712499755809025164451465666176728811660090758997675397550328528255365455163163052928234636850880718511478436336523323375975739845907970277100166891418637771200143492388774324631842869724879186678366396181319217269127843452839245258624283739637751496039649509274162837615889325221358846559929591529922707216091286146683430652479747125452390791906438000832159535794715387953472898145371617938194093771767828185417337401830184317054049066570802498015744391097204808055081494817814135889482818252958270702527149309305437294751826255128853704099210301334919252197730625060331723772337335489528206894618996430521928256995612867007157377965999735169487512446864188380926637808411435516328397248060549477811996314614161602090684571035874640116874826441196044395941212395548537216436389698056380783302615967904404533473919961386706433763832809814867603185551567339252827153620039553386380159461182570280238281883215724089840156575085273740849617851006548674069014381598863050424346018717329498574989559592261523854125575325861176451142107855806659561601462567364698189675452925743027295772290300522524852790504650667226870485429425071792886908143307432942991555080898840022684132002468535432248829954825882847243040083719593301820888489069772392061551173338666381311268501451397726827589904374113261168163402004393879974829496826583971685548365009680431530553263889257038300922977054882956497800460832296489192341912634869078255116594395004743115013031610030564358983913578693794050045686304292501226543172803727869985865734107325031610950651399622186874641462414608076781495253379486200210518123055340101340716558540242553808886583906361385933903119226859867578199455964367440488358884734919613983242642603197789852597963436258101134291447808212102847567404207160528692247126472391486353632225913408283157176333561624315645081387945964701020620092137711364178683439799531521106623176011632766963035316224439791439463798757880491276151617063538440167814478276825580185458304767525433212963371895244871792336393750650872767359972795647615718377063172754051266406959460079486264630272582268268153318577467462009987707052191529359008075910863716525001391976526946286141324759877275143807014609819186523601651308186663506178189816196640427918196991042316477033207380864856090951354497773165779455824110982464578312649216051049701744288498495801676763837616622831310546311763461693660276976588928080929583631822128474843311719391376251401871684224785984036646029710602489400256837430045800350133483287065599675806774312357097193294759300711553874297734353488213467997198729732556721058272115747791236807379719200736869751847538518995684546332308251331798849368675776196262413249822594846376559841332653137466696839162138950134230592527917535828442979135239296217235550606021303058127769035564667217580372769083527453464679316848578533847778127654877638636126066063341858199380384069541691855910134424515972280705258180529492015936302118513676861435327251068460606564387044079735019352977460700403424398485586356559095750272349540422707134546818662804536098634779484737284867667404814566070157972595306565519787187722814326519772180205777320847602390779878249572586036796815985997975649363375725882056482861945442969371467297089488055689511792490920642763358241309333832518283050749503388277741079206792980949456080741340951433621004490197419996370289319521793002094208672766359154322051960813613636324586243344081399678681347773012746290233530242274151391410575148658792355388594154963876378442878074425524358926324305632894717146788696809137316028039927123595154701936546229971678726178328467007642689177152409832627020180281865755547148306161456001486649802141587839891438378699107769423778164486696875368080178826924025657852083176423814735378952643159288989807770334391228177268045847895306141821327559757073385399526178083622911244889849684702360476658518480733486446939644997370543852903371724612060932787027689014999254468666424180342345497309897786550903411691403860874647453207287456180199570613291151928539772041687881601878535990581979268576802682957546566221864413495067136469979437417320650016533773605577482092024753276483638230353115738219689918588072631319451091383050557737457133447603877516850633531670982564803549038151503541897148107859703546325499706713722261652297653323942959012610772386602557003825937378625978174373786436344556717386287907347197873198502712734137096414289335499449195745867135587394010706216598756116007543405924608048817391023832191340765426464471440509002215926108388605781679141357489643681039473465176710164307747537669494713850895873193188469762431639514623760228288805071555055220429381403814295601396201158781270514133663283973065008876148925826139389128610095732240786806075067800128844027534866665750107948227641520025405876700570722262950614036693608470912781811420978512668668235364432562446724661444564737300667911877508719017900140220073544506943296562195078110678185250985435168324338276655864882912869563431283536868949367569015613746603706263564858950224360198989326812606202263433059908915198822408480500474845437880922805297729787672442379504933709991952898463111469374182712923230070737404629259446659430127648961816772974755569387004388132712600123088778247497325581823576163340880525201709873708973739148405428170989628834986800042929620288563637813850252187977409660174023819894652607316334309258678457485600388943786981161436053241070457714714269512204118385851560995125069217478833826638375734149118546419234749657213565706291182413102831035799792505765404350812897258628310899144789553855809156684504672865881096570226420917857146473103304978443317780237345435238391932576304698362484120162298029531361682590526722995748577327881890212621082857719449678285509141843330594685218369563196424744049770440538087996567057815767158610246425994490090719221299213282741549746091904419169559703850658012904232806169793839320867332173667750840970957939943823123655506712924239033463859465713515921935966519056646933936126518151919326011365511542831438598169097134349107457130307082311038889443809040887872866740271821618331884037248057956818858004578287227348506949797278254670803827935348560085834025473316705918192343266703756282776024778316366014390596077820547054361726042295007331147618213612317715600676910474629225713627742544594239946420475048970695422591664782851841417948119690071312680822990775209713569608201054514672167807693593829641659480147158678702018591386774448151900596780081889963769393624396677851501090145863401028373844015977238418479052626064710085158525462419679852661648843341772755195025245330900762440112337327691413737704956426602201991711809355433078303228756193174117114160978106462778191706347838635700415761684304882028572151331197817080323451514360934423481847143508797417553047943515638194683655529926174396695233073960772324622744103549227598254017857474120558694252486701767295717891903728041599596869085430374245743723309660050948664267622020243092403124442050533195027243117821632064064949275122078990374872902318583483839860543742667147762008237750170016347240963218313689808203116087589064704527377765277967578753736788240314184950165847604175500249487782863586956993465243177355635922262122387424345445829875729786992951194579663625425161026547321075730085533985377430160992727787006140560182551673983360436397118009318794710977030867332594738694756174373560706113872326511372648166198768782412466689979089922769523247796126431629889981507490604964195094379295374567233073461595962971019559890408403818747904711887340954222695507831732451816662792151379275359425043663758610702993890162211171604482927182048552877863679698566373563396444279156507961862927560507237403420932983618528603130750754171802526935995692458061840976709043490433769370325161076320461751970281272305242463846721180841134712578058230188293826169015261217305791617939589380124464519325462895343830809792300223331949325120410077313284489343197130254039833674253768267310463283650308513800152230954352152363267582200718420688071659970531694939024964092334248534620312117453082901746279706620268863094848353595488523170248334870541710777215784375402256916674492553069920402043021184686611827559303596785548635261521414106209496504279361088610582276185582737152664559846613578547217245958933515947552556924676432903440968953566363323947218429003969850857531078449746825037497620596335887285004248588549593916760585706483492780769134480045926327919249865401706517338193865652326373236818448949883714871260481877975677134077934731897086173159672701144298202419004140843887220082269320869776161094563114340447232406799635615502279249556798202845315317135336096039737159142257146200382059287973120454493761754750627073947708531699196191194813540183614723064998616902263137971765300044477391585954683169053331462552328443360449372171599347489620116458403342599710234893879885428039090724823556808430959257945183524657409254972466653292550322147865373220623549494260195302071139723001363717867272818732892569750496345888159182042191728923870096962880275487747517369924945698968247480395281395065410613371375699585646735578704175642058755102239811940753409505997202327446158363634832261383985508045956396267658302204703855415406934868145544186250748270792738502651290786291218817818941410570645732729399678562469248331431232799711110210425966955057324172920961041120170033606222561910324995426191346052087879101085055998892983295957880796040999027502049449489441647122526732668516518353609656212997621624269206847154143935937972261116649627233716101935133055960508400706975237764541653494037605432628376887375727463144974457457525282815326504263833886385598884702339799496136576875812724642485663909199915504878739299723383372084737551160378285379580104385819899739456556265827272531167299050159275021443628730332304959147652230272976925842171112934184976186462565273779080569627169945529369686274730798549225830513987577789055355332300124862341492683700264789354879974654593845678892983661973123978807785305777542815186864624262766489581247610237272905194273507749136442281417517121373109244519248925716015904450804177424043483960019047625266631536697632270045583707010604281517246558558601660677866496466001194215470282673735132795017753093571148772241085707445853773171024352119408017642758991400950902326731311857113804946850678897810355942082533315703490430233072348234281703784206114161795181678184481711795528263141446099982313594455078358682657867561577577052346492458809047139949999577343847696343899444232804280461750646868388148939877817772172410917155151778242806113043438689359243720432455322457382755791570318921537554423196576655584489426353842246297889615392349475087089036399926996928505977466869527639872712565705523972854634744014337528913231638765706312820131215211492607483115735981017904354131010190474693070124604010436340423197198133477215766934941529253978146637126338889379646355265883760274105076589234011359889561905116506883548426616780749670943512750701989300156609346631689407431824253862028078034212510333845444668928923458553698441941220899610330236234915722744331972488493370957419224158883279508544323738951668668667092194288310683405779049052476978098564271835529150292070147725105554215326119971703556924873425149105932176682917238472691205785469172452456297860410300379290626108939134364852886301044240633241928904269805276376001961681760181971330240675609200621136344260158457958195541672294990189033887524095476949007621757823794922029264807946960529581580138521952494608460203318607349423162702707636070330990778163959578371374898353982034262235743633036163443042540679151418867402936124354917297149253847897745262237445975245510790577637626651279030973860941867053079228023131078284351415327810354019955382072434371574442232189869129747239827456436769338519099304744000636256446016022857965371152582386762180779155494744152543535165367583757011405108028193041705280629450670930463147889077862517762339422947852922284571075373373135711913688061569062271678288926734023292438113292000467562864706247316294342635504500721914067894699480981926353496341027503170476875260776599378815955756774758501621570970093489087869373764889124924765093988960145997159496275305317123585077405189737316576579140962663337330951368907761044109235211826355678285622357217935241127944080120336636850472955939164985638249126720243818114111797925602962158969715926053957953220155008668109303803041989180970362048797103902222584686569481355822811862833014515831603694773858821109758558678006792114994700277762169172773773162631162397715347466129971167486489889233423849140153252896228228829116694369467968141593521312219104557852328554305411700656854137120711968533880330251323593177779491399179236177613844809128542006255342173163735862758637946375710325880078084206225804112919603201992550955742977616968940776644991835444109176541609108334082774656096864473411104270364935823238710266901166717739252408382772871199486221318839233819187855244006625979454639609727306989707827838074555628308072826992659394586982513129135744029704643146162224044923661965099327105497445114700283703492793117759448949342102209452307934438828856070855884987614638089584239100249454381706534826619987086678883718169685673762272060603383208849912844583979300097335141329035265390522676265265871389060386805482964625845605660870280979368312218716450909064811021685911173052259138655768654724598392893089576886648134489917760256986174047499506319443425593160290786270763853958494839040244804535658886361374426596164204198220493534477861387203736176154373689079061209996218387754692561288872502830427591477850294120974745519443192817972607979364233115073833260850887163085068638019384650918659988535477052634027014513467867168895738876216766507748857575824148275873805347257597933553502682140736752678634540143502511677491056072729600154336421858307330978136816112860685669582126809654189524153648906662678429100413272870634373722759474839373095688059859262436351339044781275621115611647696153579353567183345761103650823407388425055640186687909382690555572014448724948803300130226422830352142252723445660628636947157335826057465972162237776481845071349130359221885179589806065196532459139422743041005013243421982085398679705605382191213110404469856610294211913015036301050674013983802388391610269041465196973447810895504743469643944628786187551054060846908113409141546365455423756312464229638442638939693716011386130619237723578962052423370483594379343134676449049762513796537111055595410609380880490372861217626889221202072222304663307436495451567847369955193863647533395587521964455570164398028200919574229200579962819585703186720364222019918904184058783959481830684716193013454333226651436931556806349907044523313602209216921517922663628086808926773686275010654874804275018267276109581932398728370861555168769639610332158895896308053323659710972560535256091294542258761665937422573643059352802420648523037896429894862769076785344315188717712920535615189623657120762576506406403610285888143670827938321484031755643809084915712235403814118820306238589212425532787867195733976240338707491592873147386677382889405981307141506983926152503315886809730608649739479166254830759546006953127466600489901730946655923864904620661033609371602735619433682645517871037846610710536999102290621982614503421885160510274916488332127510370260942892200321861667168050329258271514911195561060935056841512510959252718913041499179844115548194388890686282763018568953876371706905697556556256335529350477857213879997034764503318880147337667395761744494633819583825200184471060235384677723809469839130638725523162950319513448783076692176627188890228314378769938439213637166518138281464633323957634141459656132220851199299567978113742180952198506393009043391096475056087256703824136515010481266993595851092439027962754024292992568644943376620337317021395475784039938251059103226182698969422112611483825990429786186356172711191284883040186498702651932247851305790912460564405068974879011689713162263059292237457008773315515936083416642064980908398278212849025046882987056263371911266632856424273911017820001938404656683363144745634382663830209826853886227887045941839329895646797208585548967898473577290624450646982482979978082113047784086888411708060366598737731238506237979962020975036216104142494567758128234523006726560358403961724214813717207957770221189424931197820377324565917860584267092982968110773660351428018004189077450758292974604755467114352530404097505995807737695435119370362883147089766769253700789515241738857219175690145766022149157100914874209536202379429938802735947999210601098921494889313542250484563150613885412827302970239251452619515678063377764264962299415950275816042546069534403078594914603748350464589374165308836451712280380098338767632083729834023441434225671424921964946124274481655754385059610299415044142146212202236907805301340117508355845376614656468434407521676802234197158609556844252312795777205594004571267046265707767852468135549559320598877439458026145594757908571650252150656679572373170296475844116605763304142765957398851265029313279815337037152694877196797156529747276277949214627456456605233835762453525827876030601137300461604889412787068186030088856248845728219605417875797242297841250717386708260603819282416551323620854590675982783542302649719673953521159986250691744709950950832004093945141051439273287467171416458807054267286212979471855438077322324906300182919548544086331598932994961921592843414252800170049232173790493097961511249784899344219156730022391853093526016459850325953151427193741691415388087097241522548181678353997961357080494119077702689890112176984647378843982301499308673719224562036440876241127289804852694198325539537927539806408156165087068961640571184971989715141356591727702651770549228260665276043533794518871366220244839033169847315476836087521898378347110091978478335716816465425112404670858402377591156309306761903807552819531550018410296174552255954452321160741882992220469918424970237782052388979154852651051396567391069309042925036075938151599372376332517675167499177074560391645274432890233608071933042386358669916276957981351231301274683134897276456960167344508873500813400433513343146021215758573608016257919568577774491863187303494452461641240007869202532838905675719096223840041162025308854374968843799627242788057572066280300180690057614495276868159926006281596926391897970192580459177649224065404845199767050999842252103709460435741051645580665729494367136016051388275078904698322857183854160269560310639090072130058858619543431584643814905706268782016976696815891933640080176620761302493593513058553643217290501128197224790611487195651614460228238272859801340347678044133288474657589445197543315956932474352147980569193322239426307494796872086505142200851694255382753149767584601955579272049278170085261838077074678442754466296926487881911677267603848565402898110975703041165067987941533540714247320491053973304768201865482324226215587203447294089596427331411241106674947921067615105897538325388207099651419103876380414151082284458185855816182009948733039361862648231454097785964030033214089907287674435432333019662279873364493972167253490733464791584364944806581582546044225007197762019964135702808850220819122707167385774638212666268657780535691488540767004684162768381473184238551877208624741418171279261617572651835471088145295043242056787888476230633313366612663870442458975193656077983905442533057803304002523694659253930264941277111801142682464721576210647820706295228821159092280654249389018348609413462077098258008029880988312613802626286840185141565382674474621767544324642964737225997725544658657148856253597652665058881952148808154873359080606595773421326941918220455727700351034974777103748387488612790682757929396516968393722565540886954896961499522882152319355499003060441073247762605215392749310769402472449423469616358413893838117777985856783264850362893665117737353358307887459296852058376525335398387699371269557455439122277606846068016112602927611157044083065943228687869011686905661253400957815002537119684764227613398295148500033194013636731126184846858962072277983776025301256481638052833828178898977704099845972002218706399878049841754652715545688894672856860177084977156681056835319673138143647916321459918969609128749194443902607063428207588845921476317010542334483987768986014471331723835682994219307325181777074593462842254551213069374262741876041247358128740460046439739965025048766529717957545188608377943230662867851563887955129248218847474476649713143273398353249011073749187524887355278244821623343425634930920103994433937306934001219565482572821706503573211509762763706266365497591438711726262867502074164782663549542960152616262697419185776528066776506065840258933863178921369950702601082080995960460948059181181844186259582021830556633969481980684135281223535593938160944890933474005136697434395910796168910877801114563728661323626434566909900457534455243265821857778957762394468428663007414889018259638066479712963054880224931197401732620895067856178038933908961727217899909064726605399799366046745704258834662955256721231491243988170757091272806470149495749885118480043555308212258683583103372243397878104136124779873830504433548940098841424492838214471697778476531892404976676923056229278236592222151813149534741931838910015855065876111819597724127862575708795054776887018655447657336348291981601598778554484609142218037144794108806563042449639689206107306352374658153124079374409296895137207147693615903393593580626945507081082603218224733159648640295028983915267590150150430148582753467311991371431207404855691967939646170970793561107560339891986096168421712533554566785938738237779840294453224347341528779618011392031140431779177723409217034154399015554357509078413329834994634575734387953017114204772147469366487282162226214944572210280772800705468808845652069324071843238650321373785232370007326780438852305286805662180195873657578273294706339522070049974178911570862121225079989316754617116540853171825418162206958925576798871900788367903010869341560800798216754295455595823860754171486651985390700120710480842671560203577645266704091473345378488061283836673721889642631941904888770775677195895992275396453111416034100942224695307232790357574018669463551256587268282673142827807186951076984682250390863967865045604759673461786670303580673906229160557310169596126911278503257901928450244013035181447697592580013915047757924469411225162351047350839556190464564849784683086451703732584919709399988101158584910581077978071546313238851472631021964328722581787207102345772404046877003736080872620842733627941059498822457736273536498514640359340658411934765649356043156999844070425288565953766599290931741105748636600446388460258391388850054001717143742061414496719552841556803264502249142109601389605581124671502722821754820535817590631826869953936824368531718708641616204239852283234242848722675594464657600127120809792051458607715094897617224748408323430030365517458585767521698144017968471626713175519638493577306660329940622905037094512694864697098676772018207638658761503733118281437535878606338201009291870529237616953656168765271198486751425812461864217403491539265813463406808388302898501277945052108851847964423131414162787623834793532549659793755502366633563639187447033253740205708324201492013375501044393795408418578114323214870515620235474657353861717731105056184989834898975886644430596660072542437520655053179605127350647169672764276685085770008774503088185324918295050605025573355049052929229542155966665764411887123808365757595827472521754579158161821800801120813038876964233370578573053992909690073213857102835133806739734098379813818361186823203033073034155231681782705612593923786320035382145149039610495727823815685921532672568749114444997979772779392942118385784950133609499866090801452865782292366534408674263494836500543338433125458847755989047853936595747023930470311895142035739901583251120958442990845553788056031484257014827599911681056188699973650592270620391381055304334519207149811719599477470402139625145569310738960988702253621961077347646024498474631598201058454222297181626292155210795572739899268230995630064604576468385155919222539928639268055496034026672101659690750331141434188505290628485710468577201638079395066356856971287898261803447042792216560858784186489162057677117734671793873027916805351708721706252702924192563172169316120005813059361271126752714470129290019911343695453451664679580026692608987184117691005957921549492267066497230754505791898299904704989488779163837550815135863026495246667716050332627980075379742444593130414886143917996527784746268383419565245593335166275346945853554795846379499852275383013163513482044519962935281684217013790021759545819133529789703896202523037666116890751557566269028430393195998561334188103307681539977710479323382138461965692697928470969935910549359567876772224998809493745014491174958386309966610775681484686492808684870727665904296176628003528622290976652371063517647259995046253579114102940504697493328706197524438192750989139343386439692874175373496140059825842307136368254543289573013023902691069068181078408919356667644345890451057990976664849392622569954102250839204213537414330326288147130117404384320291391452753083464056698003211001742204684350325858766998438658642844766474411460187711701661332647716848837035790348831640105064460325726305773411191278526454819931393218335223381651630251352857991052658008540841038043199238119814251905823930626534812932054827607159304759676088824567864786719100833047156835361739980050815215290135704109249978142839667953910467644976885285198823745033591641228683788694304375795521087332424881994532889465241874374172452554769927094939452774595253825279477480636386141595512560963642444814826372143401254678907866907452136217165026708264229154056680795465396744244887203540984461077686083417295156298594626734684158610964114073515551514125631440489481756234974211052271443247560350679802829405830165638438249205043134910123113862122101000019827096767000405359349841733510744323698088462603765367427393682980272446694709236607517593395310265090045643181345994210098008400351737153793860555742404948798481194278589751431325463022504312818175343028494486135671551957560011742733699347051444130950985727101706210462238157138185427522900126103246253163651082459864993660832415167410087497332476297909494995245750350038784447496517323177004847771420688997395419955181288018785598151252379489862355326331367091857705068303934403940108253704594537020292447966849776011187116645659567387021224593941395121759435638440509671407414618054266535272907066955424996674014399926232377527296097501277856579462340219784839451614365811681348470220705992589227145709675032650060750192992024463362853661004213339016829654972254075556922293303395867966593791647195100840491636513221176661671725726921873340242892543132210483600897292188042006762827426804578353422724292478368057043991745386701993735148473553396109673839188817917855734155608852631896588275355581543064523489374371569646086912921576746742780954220273271216569124161450872242226802375279720825542712525976946140763811416971887118057124714546465637573962031976486404658485784970067849295467775604515637032900470471229747214644717914770531373777100839784855564366781728117533498923811377677550415482568262697723397560815116533538078252045610392085302855894176211232275929860006002667560391519416859463134978152823023456708633648982873327841073850372290106921834699584364658336048990043814793451278874149106730123916264332143921367461205308609926702473093034323310120733972679210398131708201647335281945469691131617370848363797091166506084032714092305737233348889531981641394284232898870448590710610330465137207221895820440086381395013932621570968221228806071417349177665113110506835393589803820444814689561572128661764304559071262858224918785511395301967730080524204804953270530256107704426223758489915384860171563808841555117242145824401258794857376362533856491570244212033721308652134835322368132448480708959388088928937109459033090961907621882190052637737708727257225922376804056307480386538307348448366396244030967190115284139444240512127915514731767351520623038865605444172495697503446999208675845078372346343786872982716370482234141823525473905323111716573418687881885990598589775352446616670404372521137539628632716997528575152564145535524192573979306099239468805323023904558135905190210317101249776320862115607739799255203313192726256537551191821861091295466233193660217996902032191412793764821852412023959109538252523957637002011659834923177140771026279950867861434137996507472814190310296205923561460595591049951161048156130044955672419798428117131994995896423953708361726181284511514856629502146361135923809063233763155134142362269641682176004302984800300260381570100933549637716687375099212082887318910883721351611528321074757235011030403567158321112045403048758175856845167340155152740605032248496801430501484849054726091684629521382552226249601140554926207330098747973192311116532435474658339219751794960996372586800273750917121012988285019719992768002069762851596551849853745236264455704996735194428715783991125758218174172320421550419024102533281737780574899813949002558279480291266484758730207363966496018700170566820913153744809049016356363838263859297254074038272948701630448320118045996658424732394770768346741349051207874889151940412726285934298664468158253884854793796640650350753409896018388822483349665268862294354936405182107045573706301130931788947001945553503378137237651456684589463976992533910065167108880347100574069349168665909588698166846274634614452491068806581453417799831256334853440992345911344475810857155902131295779761187529790061638943817084224839352633932965857598012448073012394038890165695988491996609981511268921800065050827312731817096248982196143730890388613361837662233505322817454450532132058967531184827397669618861889084814418124763486441191461300503468109854380687524597672904400585279592025610767052184193789242553731889108471451767615738048906581026240037945219641647325259810832325676547018424884249818923502042850829870341115137499198485562449781435102373541110236807206901011579212247698699979097892961332731628258356919314145847793119411782029631893356426943182332445953963302299495244868403106891687860286986465014251950417428400198804936885483496083477724669607685751363043352277758725421214117386990416888988501424081900692681863672337716280812837394477856181631433748219096693423842825473075615210200147069920818416801006214702945142500658015321976370784077805582322726141691645646309440917411663289041679154740972912769322691363948116587265637788360720046265153000367378926008647041171763983165873892017400055907967960442985140344800019624475989331666668341477355646337781237591955694313149530820585736872797243441836257968975394597651051223311748353535251181282112401849925400665568248928712647677772570479666520578474546061405172380497081713352548605256664455906272158834991823636419694397159572101908907955433920974135696372558480077155311764061582746208686370422386102385056345529032259211019200341873631976209204667281116600307474508451391927275130824847484318732990954095485814019561662140682329353003176493179237003041784405474387617387359817111845219610053203286857093933454939073512522153767460330562420337911874293896365003803754948428863980316358616956544686245060536507847971281576341459785297081529290884262595516986120559745675363564321320857562646554532183207480031533614201787255632110968127496746460718322957709543248115556443405136515610599180109437634601858433826541658033864425610526707371030919576719054886974141637283599098276432288370747849005091422509564831384328974539344295454268771939798117558471462890799854663468768759278149334261204669757594744402109415230209725021237958533986444724138534951623164100887740955306391253774566004894590141096761447013275807979518667559862087559753768129946047845878064356230803074102216398494452503920265494367380629227026437918428077442274776619802611088322797905536947918263999606084712889164180368587021498402201825837809606966509592900238573861072347638594230432087180792833922983631572716865169510126690260828993940242303701198625752523407132902232239766339371825493784498256444983421476660328645695857714824043658152835838418111026775261493195043974709090312142379406986815556543563638480501530237607372535079641560385054633042969277676685350523340819718324584801883919826391111571919093739832880598872466956438103118516260897290940013704864312894741409637183346362970737760717993642878519784586163774351332624682167304624485104650034021721144050988946484844090434972110945165710631535109095010789880370789121279319901666294489425728837298369233536409945461496871747664408506503766489445239228883977117943884582246806739748132194746399896498701154738768527147551495590901767739235562382134885905853540582055619375295936907113508131149185609113788323334618027802960021960661616566952097478903406478529145196720968133220763020114066411123701209157911228667186714994256267987644886924630297664683983266684720228277451520688820401609691070008803204132177386729113899636471716318927092910081038604008144889706367978194359044922693687950535086052091330970024073079173962434516385427353770105632081690668455497589536991687458829868563938974730448086660072052557474705374140043145171939965697327736196821752938750605742888813318669203666610659628200411499434172014392660811788701632346371547139654544700541895155025245289730544308847733584171874320173670250113277871435157381588828720059235671388923056068142343251924226772454904606719895509333228303144470638993753640373628491246743684427200569708741721628031450857395040297588602200919043140363213327457745315669161076998188843510160403649076722201293166431004502767699027318259077075393069151891095771367061007500234806999181975209209933908443642480445266913404948258641866886314302412348640329688053820523006399152260945599218764717387432971945420553346518949992043381767339895085473352687606866443857078732206448210189429098054507408854674313163658486634949424324903377533891090646506499397609967563266965084277224048360365000830197289924011030080078410705939490560810654801926793055007286749896828941006104452930787794714523322671211155734238735193296334971523624764486258580795041272458657004543070906695692552198493949000164026959197735517156164054630045245680645007607190022781470983870707825955825322457145750101963886806935782362103555658580376794245874152537716026246033687334403116559884401405488055724511033835947850865164690962071518048520209233826753398359019419090776903523758340754958383983556189928388454885377124289379784690858698735438360802666244136863185752589583909036597213970453325474991109903584153782535792211682192818454423457485277070152897125335297648461218093400409187406565364816471798105212299811447142914668718827563968147852702064468264091751476195167631840440139851160052577188043678645674348273709557532056008812907538316536147465318193600517705349143420249671545527155684935078661003039282435356819358422049343292237411128892124082870057364172526746325051633211538326912075982090610804435297806372395444763339668285967457333034392057861046181137704402290758373104690818666740099432908304405496208251195933470338093269929823374143983108489397569411774018117493836263149323394005226074877921364372104632271567083878929835214009518895682306889329999191488157234627230274011673239383861192262553914224748856819719317934692407453442200927240348398662149914251610458502968593493742571160171854762359050856707374797761134237983548344754104103124448984716765916441417217439162875868046315048922773876119730057733472006988135924788658671654660846987785559429805051443580637482571264582581543757198443030181094600269189948406993794923826810989863630768681841801603273061132807821012321403883395917238610367539056934986569306579460191614952187010158135641968742120932972991485304075849745512312899264576121323045820779578850244197391833591171640412930682997780750777347114919585051818382359916384344526229156150780675364848122131799518777425139069770984962862790312866597973244944702108317610056885920455943353722011007837860946337834246520281519006294228196416320987170661403948617411958712669306530697575915129618470120628199696325918833373399774562899303505235336359904164608983670116278715627797921224252873004180675242300019208483670421960513953226823866611607988160495067658841115984160824148722806543898578157488859610678186184980643648153505618895012810078514494866440081449871365609687512257124731569765868850561345713443357302111133934818255740834132021591340523477252242140423495398437178020735451177086790037709327023092801066133408704561539185670834205478487823151776704885743233477107582707653860300594367298752042647716601350828968974783008029903197750775246845811577065354713504429570062486821713341726546738128573949658668391377042547857256489101106230516173693190597692644243068331264114068374029602763084750684547335856808656224086277339500216555244389420857210216460588112110245692772319796840592426703600171378558439794737893483522071091750682440068874411252863804661519271532474098114338887153436880211002502666442740624762563686692532212731922610661952878843332785526614868931025839497020285901425503093662124322209572141023453627695013037855781698801301810731060162612097749915750955060620383218214400167596913818319407756367614629660560455696745073209808371201602744200130823644452427406947079271476294531312314175381470366089111265069317019876334938789686863006804354404181541721863112885329394635271778076333532465333506496519098963862490742282863083615188009269742820645306813994965061320728311711259030768313345734149263447677162158529157828911193943656918042195434226039524330995170409838610698154918876803714264385450940493579480917184660711007797795781813907208121147937043161832961654739145208003534301174901697613958910117241026442974120212851305187683685655165382867499123993954497984415953748014315967386831449946826409857722252730020968298875472368758109099253967525760149871918879142660429522668154039785721767709786295346289218393716524717895005317918729243475048613565946052896452142608913110890460095792512356483346315430673038405374188469177147225976868107672138006356588697704699586137329761137812142701601906753774634140198022782962445728795880055823602274420642676707324961237506371714802978719387828872614408016300550547295569545169111054047404655173298676734245779702547932898429794205453027062644241857033299624757349900364895859149361576299659786629529147102120668679902404124178665790084098850163823637736198905697808962589771067640176141727325042116381335446846784353474901746727554445824838882886870856972673310678668010794459996803847143306889111202544344281745553022579121277705106056811945070466975174191867575551547232915484526621459186467827860883191715427024882680828300696742815174469262167166199704612261635881243899067823908996513616527285058645393462911798792468922094994419443490843839644277750261927022291220208939426266752807462599959592082095994822813940847534282871326329854847156971899657750430531451209255930798040970804108100572863867331947453233223700720034205497400163901567618330550314047410114348111928683282229688458767180512388869423577391674311460978038440547152967358793426206272148207600565083125500293598505614774485035816486892661799330084716247278498467135139018757696248418455198500294793121221250031516193140596626071506011170476963576943539748026578077402488810646719213015891031129841626746870244365503196494470231300377939937387197920302089856318968351791921167015269992375403347916320636886150969505536895214639482550580190576370800194422250215910649892632138705911743417703335204244542072341936622828025214128439597872118819028753645021940020648668313115105600780969232139362267477653079185749193873024816043440676794590002953449864970254620339838606366531583371236188324388105462184475239814444559499435822049723367848443402927684023518555618942112663039167342872579306457003556879664569392903369228782809749216694115329996417322375253239231661660957273446592250570064267381233863882458451311644401803179441656327585619340630153952672444541097709201858009570821054177347546725329113536878379264197380595609454823937988665942058667816544479665518737988960228392555271825885557604048173643001001760970462868072471024759511423964079575203526500176473669420863558503242917709182816247887036764380128047563240942370842182319175328378573634045109492907757352160098612116184227469149200116902640939693497169762871794316892704592267245523985000406938413378258566261005314441123512456692817365929182403411773924363299048761699706660629728051501567115409156801556997713993084822221797380587941340129713314196905060544587573473392235620957467666368020610299051458147978131970232916205648182017380051226557500390011853905053807179666177312886502273433451879341147506461797954604471199346081859705296153924157344918079679772324680576482551122815023862149001496944409391342974926973983833687302474509594417479235188762247902571965086890953793096487794434216593135194408364045057528550552408375076522098441929422888468238523698760477312438434068996729663247368691043673816311189009743410475537971385814753109028044329365764643199297658492557052620362313141740162327145308531085334466912648007056930000967879363163796467474489594835509417582746723952636517660381750627694782426705678042390545960131171707567324053576320556873199594109494987728167351769270467965989688067052292780052366917588163905318132225706768986880608809229202391213472109953789043603460346235266436653634663176809193908576778047474746590907980161576987019317377830912006057222937243756084199689978711987519733204595272497811779351017312226789336523669929601113777130673694562870701121739182984571125991932205968829095226523285734775961625168119614355910943988709705450886114044793246588614355658677220220716706574079735078970309804414003203104725767699493085644133951476942606532285127102612291319063875386798692557953546406384025649882128090555665972038414568838016632540830358904108651101903539665780664586861292655885385651064142845010206433376428053700381948153954869319896894261720945151761838941577824079061032355333821555520616608908064208940239125605363661289151316253432694525792216842984748215461324673290039048114003476850650355272286158312467363521250741241175332620621401953439852412256561376331935145947366946055640286982815093470905984501232457570358698603961473711224247711865381507506343617944404760697056535667028532885850331600722806126127222500680865006874501304352805276167856104345795737091807931235235573351089939027124924079766352228441896358008959556761358403110931918310992717264872330750515392971151895269667299265811808761461929631656831395923261404911345269995206615502169086901865784940309508159443850091782998057251644418429185474830176611550722618854028881094444422004862979848247687046462164596313996030695324364676564271976084735173923964356539150657648444079201745067263928639548815350569561803346038265619121258820523074529755625459940222893300140988107908839764774005993117956489036517569795179496115869903578156863923238538922067685810248898763947140232768143955219802527565581530371066276483930685799190234421506006658804503369815360721450289861241857432863106553830231262685456286008621096412991915062212008215669555595982656277357639239232368325399917668396724148525693747236919807876816794704356996532235864284135408358210392207475708504657665331375998494571958413693550973422223725468304833443902536226799756894755871437930648619376293211078777097605282183015571177964444678408919061322217921122829764532782481931625903981349453657469938833527306312316616944636849507814166269336450386429029256469330418805627833421642467809558032774621333583746122045194193791042224565251920292351859669915458749252582383673013797880479021104548646079779974025290027281475021479648572675690637649468059660804663823279118691046162706942432548367547352491829637837892731290092020737282062352348391858934383157341353027961789671985704153275386424206343957733994847042624627151254770628893080124172342961145059755983944697217971645508966297273379095275073446385272800257232185622107252998932536070068178455106199013867783435953879561507688131157055595498640295004696242617717209407552798386640723745618180160335282096867818698884910559856029527560608076911652103522385454214891536885600800086419998485336043224949811713333697144288683270254922919471177783904304431869720955535097746871020268555392965146976300436339080654587849489907767065697317757579701155996335491314425509828432789669848649950267232354575127092054716612153516515920726234036370541766916670359204085902460884688601493159932126146246150103991323587418457948573054493871414312819481184363014267374155533049838469709824905233586502551083094827499535903796486246224753080889636957383702548247429773397779186535352055820791297437553698230021582857767670027964241402288828586707094167847166517773098928154498511381965569539503939185947732399366155464900719787311811949826445928730878899783294527907276194522878059410692963470725657422737570139669390744933467846600274713668936548987706843891892551753823557291362123166132476711800196851558531128956963847287203861287186499948668047233382632619358391365793535828368816858831908310235571072215866985567049138773100402244654752561328532462268151204948108146597722692982384678561082720655676959080441557168114187777214187746817815683621346558925057903556810766995801340772358964148773168064372360647480330816776959169598749905240721272134186555167403726336002121495763731882830933069200619687371065894548793547257609366361006414737759733475798720321541424795886772577337493234246477465104200058507850514366320437791190689187670334306989209591971289070902933249397333984072589662044033461249209227155152933389224906336540277740672916882007869334447455220954347313215629018130669060161339306283846527630462031751456070343772092800009539835186680723444329717391790224887797140343459339327225958263736256842754317542827627355901424758017817328478620140924865500671983965916371813635105126097989332656417895996417324175858949114966343013940953649379071334674732572753176590125317092521944904540855470933432975406911753271871567079847026843827542202997576733505651211446823471172471966555116045793165433908143126760913519309946725235100687507685281180674312186447869204242791347178878791258506122253611679785161972598029912215735130369620785865060101933559517396570095053922581779454139971766256753714470549153380699658054441338014041459864357862216477579600025693705937685863715937564540383092122519636127145815999119579462980311245449103523638345600052849060802550816650647837986001605418691698510949484183658591244348845411698292852000993405738892408173563022892558185470183737099188880285169581858402319680330405307865717706363603484425726453941482982041271434759390080407339988683236040100442712528476046915631379561661703452059873691935785666062624496986506356309724193733854539338236570108582776998648170989553683241210570806170942570071824716854217220320312571755785224372648115596583227331356795220933553491857387796014929937536109620008950137518913601353245457977366221314095901022742846331367030835826592245366526788569714039015119844559103755191525629812516731913915150746848485143220165730111979183067613407949706670978438760662288666968277389089003583827311986567246204829420992449812439625708525753431192595989512874326731211579292061542181560483599790101314087019989931334614406238122085322614640700125328268273923677350386336750576255848557433959191126730418437863099543212976414695564046367475026754537102674575503922613258568772102114004665901267917207565243195438608578298117454094516179405772498981215888849785089061425449341377861336746650056411365034091657130013866210399773564494551316720597102775932638908493621753705043542938054240496648638812633829636283725887440616099955949987400091529930146357716690981494789823561237759823269187682665337120002287951070733271252178390966460317669754729799165429606585249688336398718817375618987614233192480642988885337112934974348603729058114316745587024569234897436548718841605313135857162016259361597722970275639459413374630387549683324588673839142857731543774953268593990017034133738291445911897924650015681215526058597002231007912581906809345798791892615985055120821969957638574042368905373188232185813295836883282436495529355409803071776001237226568471892933569213736453025435522709165022899995401393820799103982848278600704262642868076118430214075638218304754346352592047086268626300674941050171331983930216159972653238482093336708660061960741884817819202096887527587504778820485233266434842018226965125262970836077002073474570246702644230596202861542817912373469941797561135469879253075999481242788047422000039255613477713856882899250714034676168939235861381982949435844122622508153340339936285778493268228300997276295500630485700142730932614441029558978864886875871229057200340676885231893650866131643957066951320171446232194616902680740929247161952672475163574201547772638177745974989065217651812741175374967308457311209032510517955581232337416106144255667629404919875585274717268092524124087134438863635836336080599147203195495958061945978875098599827967325750054162075198387971411408566931103237727136695491661712420674928386770373481943558409901778862877990165835006833877712829307387763320280895578804205075971578093827754925599643749761088496109068410550223163052317798574858117810815985293542229009260442059759171222152057702799376742443944718756723287319364787441497855860428639344361478907202546808464867175861118573787181015470969956451058331339262730949796094270223702714378148981359873176513551883524836165160377356219041186937505173137567070014153336016006457643432905044118130661603652280492107742582659978654366661119767397401820295867138577297295893867868784722564132261191938570803554855108009818953604575536606293562963257552908642198293726319296947660558589468356339401736235384368903679851059554830093466623544559637094636670741362434643291937691222551706147715137831821607270997039467277628188079650529499606791019517727483344895298285042311880164846556582401090879032234567208222550529814750647304282822031296736242396095222436680422800413739271186969544573750048425329240447837527020494571643639739103339421655170914767414741756517128291182548225356961218109478912874282917432734870883124641089405000312073532836811949852347953515022730828404582919550603394326913339639056089656255645008867913043284496361094967774270522088044766394607018653498048632817536882494225997596416241017757325591080061524068744493908184347185049050212276609976344255052904339799908633304318427178924781367896853015242689924021119000120932911405913102769367665115903118001674565761933968466714752708351753787222440471898055967089322120171253585170632411171873758580348595223198167295180917000318567032248724449503925118092878454475641054983586974978724683249579588754053224387207664522494589215196445563529399110985092496738864669134214219436721781394230257999312950511495388104181188232616124120747872885447303570249976554443685079697957587216901333638649138667758939315520603848673605685186715123555658940418275541551166979989438728904388297412932075394011341924311297503872720983326283278708687225603210379059483647811491976768525526422797555346858030888764515228799093600326799730387746453842652849006216988022949375945311551196111218640906015171257698541090785593853246301289538326017469006917205177453070376449530453997641484250109901542459106512448734654289360961365318771452442209768430804795039585080124135978490344244598999252516362177011964880298181615225447214256570879764840160026077371622329338168608535032390127621072332323495024282827678367321121610635427450102076474699370135665190834667796332087650085909550983871358723602083236415327668464331047837393834213148566430584167030221582162764958517075359405171638648998226863014012702509323529157584781800080461615180157215396028576839348472522035904520153194708570572143607538811011332600413354329825015861720053336977514277200295314401304827655103843064968745494476876073320464439952048513930224637513082971413069942004176961458895361709152665021817292144085006209312285739098634688021114937628895615852548599060746537062875240270323297732268244595372735076120488888604563028504352242308989152425537949142325021220483624637595081817094978058913174661520352203446523415320921284288923344192202956799885920416835620440415773210602786537487846667005974900064771333535402930915144621198197493186580807491466988857382943905392375914603379850068884638140204783495906236534173328173641116531833533254491696584271457952656877826215280610148222275342121086772118127976145219416726040901801600594694878638248034409809499091119797855451120169029727442269800272355244159378048215752994882808756711548917916637601169696871941332238039324854863511666235000595227056897699804640420742575152090827188322545224137887499595602588124035915181350526834671154178018553973235736638509326487952809479647754609138252734318601734577712868739911444983899274857618434083919150080956234678414477430393965080533926616303835066921862275667046513689769360616041218434040609615401725483986892575394040477261725648205167105062821302289905782419792903061622736441253689666359957675826490521439046088587115027199009644496212410509830600353967795767569718043492156415701812346572750357872578586166444220981253830845896533242828848061322913016021416334062191551861878469863157251025097497602584155886812544619090176096414766691516663445937184353512378242842848692448579910760136737214031360056721542217923769669423562949388227788837054657243607531705709080776042691917515623977296046384257063800115264119489558110566754623154305026571997725929779365965441554738450072714358681504098693370111903877880409416775090541075943413439602325467363240235230558306815600211832672566551901859657265560803550743214732499049861441776555109141255598808442628852756213537425692770942800632316164021841326650004940788851798210633057300074253401509689200321531689597263392916354945131326949662127768256921837281698636586108634382116584943262594763753311684283087443166637044243872762585379376143957478639357658276717755173980366938463920192737827774070243665985643615437035779509575835336442968430228142241040299997595377834391266536741060876412160277399782438654058307068702981806232571597106054306691204567139566545537557351719253541674759060013518096134237622478098149045599008926039643598000764097834289731745746346577942566647254056902921445499990985607423342155056976906430120361263750770738475681998273298501800495780606882100008957870431018234295493169575995286825448216529885780936670620730866876363951289993147003747121966606089053646645353585626662935439792564577795445234763588081196565455401331125200877480078556291385090654084291207598744427393021456011563137285619220704549813560322763981796287172372999172219033292398454336362292597164214735020907273947955108632025757767565007383861121507415970915476432546820590795218856443498529813632472523840488284853151492799184138590496217129641708029627925372200720387713144178484807554062728251414672274908105618936786277312947026671922714461419687209943642631198227904485717478627043731838928332200543034299793813463194633265512493143109511938078440946126457693924179783871523020159776820123775947240316485428605640808660507218049938302073265789622955463963991218874765695223055823081937424501316339893615359939705461924508999787025691595433147610922521983278262178723723776590488856102390107863838046810424900064270079420393013978873100646451970479535992975050029808307784041984622916541151396666579670884989584333954694497923145703229075509715814695575426299635474147424082037313798693375745533351457870404304275937403153543882059165881405598582800063890534411729093361744068701205009288259209054437919569049892004052929646420221994207745927568967794974035642319324937293536489550937825410281789133356626697761050243013437802451925202230061545940402327001684003087606961262105574003453928046254401073211967845974246774995547782422524620833439031089657150137115058422141419923850608668198768350473948843419698214982951062147899529761102902947295457689224588065953636758023927892419951514451150433790670783762227080201798490471975759696787705791007474189168991237109071883587271830202242794279687751406133131591165622508736558327466252865541592050593881227303478452001202673857089685446815516824254604669592889722626832883480820900594687262335386639797342042208586690155813861997046076318022970439242940152165379783533174180600492779078209570129018458066387184845182844016908514144928100634423179534199583370878387483589434085779318717360009323304234898512440650235580276330158054621639841063925820759151719252575508204974139763784951903944711743491046914229992327287153845001145295022626685354969667318467238522539922054317975242238926069017696347713699071155595963318110045153649682332049135628023785658939851480750204228308051149865212762905581408175045981586519410319623044792341071724001589653656677853653813069963540142406626009799596347988295000614035916925314626705188593266708120320473274684380059044784920065198179602096597097309938243780701066178795856070299333193623527809342674012162023418723243233336272880979269150452994681220451335850377966777488271426326394005662661952180363688171115745076482896906590661283438574607038247083206482014655976981734373530613911258441474706579906938177329692439215394725822283151683298223933953525106752619534700732673286129934948661514255401233328390072048686595028276337647077162293331016593496345475562816763215841141478801022048691863436495194469320762514640441452599571546461160365556903114075629247540547597108557533891059176151859623627358366870851857697906512225447565844376397436946002139422535718343527710190450028765773810999453003257178937101783333168828411463990373197791007568059474608553917847999820812254588939538279871714480952563621932043104477556572457704085407626119544671188052926799050651438243355643364274834713070728306319598305306777918653438539409967022679607793678777702030617930474179035079273907612444142006497276621634762366731222176888581950676583295377661035795421331717661496457693454852089035406398354619513660361463999568265802736842824800262597368044006613159943092315797521473887532461977677749972541428458752767921145111567351940090167077976384911428020529566045742669565756898839100488556646934454676535655054502180045657621321442473179670272410514451123494085275261140830755905367032260698792253302168980792823023344396352027212904812811665598517197182201768699767837718449173683004708941212407631101645834429637664897082331039758878195534505055834451833452839170160029700430070024338775452086824961584889504479091635101186516011779573889534062862314615282785084803210358125090308043422916811292524419684979641337173316984778140987464295010941376002084249334687557717662158944053896315652473984766868666553749689207829982416286962765300790101381697862121625842710697712041698329145601469200680845782311303536331170694040008843524737223297388824438000955487068840506559319701983763943300473013338663566138404680226167731390516317692330064866064568884404110284701951056371336637839280894084621471295976187063098975526785832508606317099946493490190054830035829402637006707960188774013052545500039228489367564879795972921415909933311548579679298541757812579143000768767457222205139440192176197375451360060739772481354065428109381845361857007889687222094429725618802597022738563860331903834327352900535914330342735790340587460838766014160446204698313286884725605000246958322873869473288362390816743332736153986402738584697579976896048885854266075512408342062362671368682772322452807653888562171572928332954958764732983356220999113681790676169529111818344506651109585351506496947628425464642365301361652428432409427551445405718752720644855377891176580731479790570756549629119768714316918680480833801409519888275305007627506956210546990046761423286517979672974989548127584236355663030324004106142713151342423890921970221133686252713677376878728045259286018648888069538041198328147217999922613308398081368911304664222036139070909553574169037025404372437761184229364043014712936562600309853732536887486021120072746748979017568900473086385901182734770379235202731825422431346311434549773109441946141967521948814612401990926898514880389555001445816313458996457401606482964853207489654885412575567812584531319013490832584855494035764164660212990679252197475375226796642879725450518860545054102639241814075267059825513312821074534132316436065488539335816974128315162004993433111961696113267524354488374108012978125106024393173551026051635582810405119610573225413019899848319465819034649992991699303235556832835358846489128639300471954090828004626748684280286090171622902470031824317244659732698217041741166707225127506021261577369054105403200297534298010511064182442924723778662328292961015612103096752190353648727807805198690271200089365652095615562931362872667249739117883226259326160867980729223752111358823043924733865744409913986482904462422068569274486323049452070441693578514895551889326060341830952230782460845541354566228366438792860962177457944174203291453690271520934890223573500115570409494601210838225611711142169221627528040117331888188314301518172198987959479805524234107407354702342426266580923266304987376163145719648209984667872783117838176511119088152102234217075334059602726928502789659387569220347472407998605364776971680046768916084219700260617424948837797607286813479217392286251955144642361993418002729016711378845083572138002562981245978762616615815852579706845244634633121271453074051956749737396112731622419325298345508992022759892715218668235340733408664159597337545966117194532598145072957350244865961785953674522349661046215684477252603432071851944706969072250752904636299947226116711181060142685692653362140122546712490418700362586211396371739769720791906023855381343237048597444305766076575299202604705596407068682242035830457204364896801844155141986667997386155445856641323067108413953315712364881611538560642522928586688827411750673295268830662021358952210909693868966911424242337239515180552465150015388409784427763446703754771666434037458064017157945342218203526593947773667329698136635648447837545864519030696650034345356592023291780851632853777055085744219113129848644693139879981380243465505600692171030563358358444937952355453930123859202601923483513745453350669296811008762544760865537534859767358703029299144679633177575750177489822714196350126173100771239008110882604302322963306515218641458000111112975357117336022146728081362154409537125987915275953381219662371853423831920162541329421969728744326538715867723910066027621319780611473386343668378971321944437077370597352279234383368790821090937615622886709834167566557744425163882042692532276670668609121177985240524168961710049716185351949895109235295432774982408199493193140205704385818307437164255273111053183421427610841177040647788848150984341251933789907442336615615543665271848441990117805406520115489594836228528963376481148483883484187851527112846662939536295981978706476103555591681769078225185191561479396585461765282096076908115023044467835258155469353949410619668312452029307153459396819275160078654335048049357368943808074834303036995350411921852338014498959611039914257087977240679389800553865733148858514140276321747262044474551233178827663838466069028260997804134819995959323226375951193765962514826723007380318353766362688129631656464140892036138118676144621621212382269953975100659016684058272737237979754771160584839856104684638868049605159469146391941965298810388339808615210131704169789333714905445028806941975099347655020379241509048294396364097184854027437530961295862952900556788896677221905961927910869457721553275216187829807917938346863904175265127441803734270557219043840329826032183143691338168547908111096977616874837253596268330054738164358684641865035919421382556601001090748218072353764695759660304990434135551451804467979967535295543353572593648695643080918939577729326254942574564415107053233516000650461760212406023351698000137002364309437027009620153681630250582637638646903509919345865069077072672324896623115556337593283529390960330704373295644840465306400048326062918979462736906368427081872210934010251524370984982206155880116203151154357476189632889506394515801048271990092907147829182709797383506696659777969313275793429714374051799919269921127704567638822747778478466162844263884003187890085656494282946554652045465278300150647432068214171689316572587736493762303523512997531949934478269480450501413463842846358774336472859053007217027275774428402413536965743489489620778784426560964906923861522121823374822436660998960468722018559568405153041886071120497794674956050865557343721103361860631657975699979566000316802213645010808571138982259514125257420293458790477455901557743342211898773023921523612796002742692949790518746515357156866087168224284155116674592685635529456371640859166814940327747714547012435342336372321519565371667199820537818307209636156035335679936082591724503125913537765873343127616501253143903738314116565225079046596721188352515604225349090600578081314260519384251161036587395231733652604452195746671759502082323740493626983059472323156234687884280322575158745127246118161602085078019423454267606889067947787948874222029995295360517259908792982726777318589913610246747495008920339862972616459748913998852823989247902080733953814203707968197279373746033801286166639763079650503621785658066055089683196989525642184860361924907899159053936210257534779883601093427207200355545142549064919096883628054860582485601948200460845884080506856032192905810405622142346326639692286426012511946577967649566297599958695609473929044979503245605933013353056934463692493254020851111830877986484629929335048870434473112686748831792359837189175337065977597096883115773082048299856024058315176393271598718658327705694457386601324092661094886081306596131378102810347029504587137849259691778949182121503544622218811602419978535432222811826786629226864026021749078829669277477911493716966023983690977964159202865322367750489130064808023533458201901334881573751495438819051150221784539158210135697925962132554241529444401336955451253321308826745703707631335866680458055891988584126699544463481977922347669756312526636057692989300452180133720827379320128478030378461730594211770631680070616944985098289459061906307441059590640286977953753403092726673414976856611325143986163107352929566641883533098596007189576888773146429237900926677991082679590152136269284191718465643543966863620188634455200023675929986026457718614242191590186912664737536381198664371077332071486647113789914947153287341489570164452473466193706184014730572452596682899404847935234850340211795341095290137629831219839620729379474124835689788693854538163338633638347055712164910128112849097166840565224501872365950406911864494707511027575877720498130325230382575995088837642790651714971999755609623653339444838118429768472550261002176520488949654691483753648271447984344942949814919723726100207013875073671836376217422330661731842245820415181238222108422559860581117354360634165555522194971561024563466641615559620844237575090466701295129423291519770258528644184126675283537217217608206387912526272804088281597852203382476379498407806976402074792920005582963791358870845213977519530898380738527057897449858974684676967849641847594521616713485037561205918078460178280619234968175933062120488723439201397711679217340261278993801514438027967611686360379998256538517269393786943813653276687210084384111032762702767884216119810205426820572014668623742956692349751672226499574447687085613978248190911854652574172582384179598192094811744612876751949141739682383573999600238291694104436967606470955651329751019568697998581697872945130210108319770877876210724678105482218648488951663287316821642473761018063339933341808963240126886155019018770402951278858747371283473857434878534389449480462257732966775227090016491137539497655288403312140155404891323321387752685967295096398185828630059420651711502861637899915922600764317351571003419026522135449598099174654360003986364627325234701915223571950033039267882471829529023700859012795456683141291408019164956258930008394896456545772681329253060826968999319146712517033225283395919985704356338499643327511200787965445103732496347460484963621263332324541548694866748605245614347923661991677034094832151102245512030327538631529522544556264102429982311743398050574974241670398901320716508448590945266718474951094667383640929446041081849298304934234710100249295304433415083500431814782455931346403909427659450271308070694245266229039296006333615176558219878873995531515758333866539080726277409089908862064440114444732024291597348859901099002043789310119911652153175056136168008924510630341069089861089245171560152212295781275075521992324750879864281542530161990355428252322546922829051614266848820140429769729414818493416902895285851225030761690130756419641603024912418120573984717405091379946249872380422517183048654293097178814370794422213799473083964579533862410167263197579019444436032263842256934361328660118108818856319085994019333612580186869584670639996099011148258319965901919678182502653285477471520767988869714573465087053064346542141467798965903830489549823199855510511448866499902249242094057523735099523022024458265772693572295704852325992216969227926739821594557040801038894255950806434184412308814430031439498310993018830979736931506549944725728356526454251860083805942959042514846591664013977986657859753403051535355798896565500422735439360890242064361636605390799377485584470630654134831185127276928324605660531765708865884585936264220849930171975873865089371030113657400873292217223386007569068883481755587389690324181028023776555708366975502716222294736865013275398083327645658335432031781998193578299072342317907009469650641880645454779981399954165013202152172609220900812294341705189542722115316775495531608981833260070696509016523756692740235032520428832773229645773618388687309273142069943484337995125477200354470636768214602819288125700984685985388031571536698862532775930866982951602771856536065529063430929023663110179890214701273662581059451448847828348776432273125820455072535060321258394856021194229005048485504030057488861691099702796533487788484177877540944658422404272957194517594297099440541076996607770666720298846712745782784178970286772869369512973448842408597848328515389466156755967613837448647940175783817671647193173793028730866978659453999938672466089405119586732493839222760665601994561343329149903932025729355977760988845183142545586914830046750755479678439084227707351720933079114586804920403129471204128463269207562320595702013296807117166035695299597839168204233937034445224595971531926940990710362170044983141533731175199834191128216359865825997986373812136244160843967949420247292522334089703821861821011663462430342902189398896784680597078535150358444362566688191167845833049590772852307489707097858193629008348006389621584129458995366561580122906880157002290434096425013004496135488531426623787985952109167314103014234331667944658983598797511393951311286272397227795103533030564766522122916786145935864997694182952827760297380690838187756030460260033827779502208391879681668377410472727576339063662149928033214521881112384440368101658413069497360078255555517777467647752743659844432602300047031000555270776649716864621770715735096092134634594905261738837540324527666210727259225467859707234744987812128317117742209794847240238378279577029167972288716221910651852939401682660445070648959919779976617908244874435366409143708667745396290190062873327641448228408468043704918361907037567362574389356247687205721565056677783594095059212057831956212435289783016361723195636972703088334427674454642477804098595789883356168167670633781617028482252862894954644357282290342248766704784254082519215022538482772061787503058815701883974761521961315875036887459053619577063176807894853013483196718325054927988002494904397361767214400486322095130257700409870601429866744855672777421391493176270222448146883036403285021733964094485521068220343324912953957105387039380990736467666172913979695564499978678860500423902322989781262245464061189128774103338643504226577692179816651686718476042716622147580101759869456993356823598167724684202839710622354656191470383202664949127044918523039097413859489220827534783011529261959270504490407295992762132713058984711817289184518276466224552251818847450850904307133313210394953571547428286222346622307300920334086308357398014862349623073526065853271610740105529365075229281628584010376626955683692418607480850061231669524005598560269359854445121693233359016322683347441932987051482438297958648454613619347156596222790495035725633797017128308284320291113884347578028206312258987194538549335973039620072246733694270908711121615208252706358318586847875437003881312619198941222914339298898501493918425463891596092901962784665851620185685808737884723098194905601368500853787482488977856460968304541221815579210571027955561519899233731127206411209692258119903398982943042744323757083538380654613111523870825586924834313527637386520479157206316517781386144373738842587665346940204291944493940071178985390024383967245368899458648673406891599835995822867564023700878320614489723208274968631345110595644169938751688341445046434547858163348668759470009860603357616137957693220248790227764085969481840918477545495785018920583223554619124412786317796466950191428502423205736882577815814870804855608924792176411695242587341239752583376088728040189430660557341268907290802077479740329894037856389426780438061855379353348457283839909867760456080521427281497285858648055876011160819857677568933158876179465602894144158197150412323151445655456198030561116416083010761441166901572822876561525649732195088003189963020126309630367902201436138257657230137960274510502820518234567748878427245106873596935817663077552198799184312840482721729067328005684105400647762233630040626507232523792318373234325338955062890365994799166231062554687784173953607103606066540145622026549407380096593683025007074625050200662516120305589570531622661813994946690656912133561188807587382770855310147056276110003505784945251035331596604734567244131170045890241095849908529199171361305470474274389416088406759973250121759219519593354808130694225162080234496435916685068278390454985512265514560389746066025310325054226263186720633291499249235310644813649851849596854832416972321401827139174214477672268683442514603430912361772960531976751038310195177057389654988520950939971388367913422549174331039532835563528647064790661970514666446426457648541326774557937894228867902604903542824562871260706692833444645456566616421439035589155545180985574556094082269943108585306262320269505035496377142303288659348251029012340425969237524140214875689660256591522132811370371812288806379923968533888878438888686474214361444927617364115562407384102381708096164943129752709716303548564038224132908045792297716476983660334722260296751264687227747023083556884976720922258342306660713601350174389430344029010328424801234738003605241806010348960612572712401185664920057852811669578184129941128641825886452133209347443637031675164937685382695303377790175868553039059340998007309608324515934589133618816204505759176813102490313693955698156342780756786063047423616041268194304173484004832625272560339192545301027481631879240874981486593857440191410131963103926589509538748984626116205493955690156896724103276625694121855895206039249796660407628620449186866626209920761647780963130465934248815008553452809370012551113722269309772346538565814793439894181277655203719542987662052717330864080220793406915284539549295349236053419697749533707692196841440047049312579707325036838789127302722636437732984855815743743167199168421938358874424918852379522336022744797808877541414485728769752663537415873780600847500867464423033946905696683025322522783506861055964244556721727549541648026668434183919668131083596369178500604429350415806243043447428807671877641876370174680483530127319409468910938049029195584331121682970618516571716146410772529444307110759649091863158019908209454596967465749034139594112315196189362597061203907067776066530837288265307023701229310646633952894346142301921947296281201048342095398838583289988250579730523970505760431041811603637524042749948636024955026549783532524871213163293839406980686321945927300429465130809011697415446132220914867338422367374571416109183633439047126199503532840957869555975923846426406920055974434117388645467851732610950284561586404395641897622319931518336680161857875617396410103504409927148720754718354450911157674567456347950296580942512712738120889324796604541734346672366783177775309430330336049880461116549152602179810063082190813781057808474036131991078827560284277609011030624297361151939963278793299696204804683709138986531115103711494942338831457890047104044562774302824278081177847492770384754284225823865363550517193235516957832833051629098952753165636681927718550867825872955856754843173964667897428909313484129540877187898345284508435673314893234865923019223955206112247391617099350885995894369898005931681188154914165672966953604548902952209072498508330007966879447827602408136638267300080100829746299867208753687133600622678013878834625532344945665632348753661699371502403907604971727552093433054017063943456010240869913518954325139851632643020748100164918922789277820690050304612537418380099470239001592584554176011286276792576381870162276068388631517871230367911236003112918653253182154489068459839628922628562911445297309340810244130562712338578039487169375778555264169530768172880088163646656510137324414135857326960533303549070735803405280724915563788833425233409957866091547228196474362846489165278837955154787964360322751330711510523903634956256609464438798976596870549079431389733338585915626466210839318804887265716138330543175503147674399529490177340849477928285447132542631372124892086549659907653040052273763298980060187517185733685679280235547010173573160933728026940422574707916844222617701751363062192442387877782598257124488984225068115610012554702676613241808448457392887695112994466925860863149267159089639944794394849720948108057421596519280125012075375369531951828288136714003206881564802176354654742445210674118361793447150989981067457504131308220616037639062424312224850559043643467547327747680671651852132935806514118647842910679093011242311630640813037686838634024165493877432081362949720085451880139194252983020845236690584613415770028042868023445433537675351453708704426090802532955596745719191105192939499601549586386702594329910148582063017701930541691366062089141866864128931508322526372020170006791825485589733414308097531240713796468080363228050487910944199018781810943500929077599712904751345953126784993660307854840147590085687650318713256001419257733902239852347774572095867022532673017967640275334064000159723408172605524478551894892872282768388028260750382745438492154984037260972340117315544981000106336773876549653056689649781617769051125549313169119678388639258260356223413286231599301897528180776685892400166446483394026741421885224308214595645077316473321210132863795603741151902163786507888666439079754452510329833085098101230611329578643698424502628195287381853589022547716604811641481106398888410795520903102968845975068617308473174176049255023746552160195489158363686762408192410991563605068290452247716025955720360531550512684805479603753350899026838483732194272210821418257072683955897354488188932744054721303088688017013500011611721283842973994284664891241876253264750447196563235143182604873156149129630395608772476384797396748204800190763074173978443232086232082955086286133456841307254671675558699868364678358620565496950943932066560232171912306264009442671762284558918701397961003226675277095571213851692048077854198827103189115648678002906094168776752631525733662910391920873241065924569267277574799393498274674402702542158842097329295034918917895822949497439127135548774753455762758205547644622754669806724078480785716016370611673357400894184295326742704639108199115140580620744502462117791696565015199933673691523386949141751896789997067458757697876751078221462243348691355114498952874323590035834143354717852270548425708771744960802189370620127964328892866595957145330217794012835175595507472966762315826732115673456545488918811593398040897693238681872616378394464904443419325786299980901635171049008022878236842768314168780988966100423608429322123003051609171782185716321978185581168818974436439757430708489371531013118075444190418087122593029948718364703731011713561975974943711020349275510734109805602344347832964933741479418121185450039158906058588095908085796528581157408616388826121124471913394494301366673702473331331094471200712571991972952445336135293017890784172757418229213675006765681833058624879697086394295187254258781074727854520553879242999150869987905522934751826929038184804759733378237662718369891646793809042183831502021971066835036609732474874207950218483489522069553385431855990100165821998036499878693171883966535656372201407543509749669500359525034547731537053523142876484589582588300896868922667711105765245841845334321850557203703373168685634066866172238112551287441880632878333617210633453192284761081814636618564646975774647756103390524122670371646858717876094330240890157285961452489211739882378859186988257904914669426729759283645230429810371890530309485869391087070454308268580164631096222645729328892046786759714231121934673656698884590184456362659451994533225780932166901754626639295928756790163524899685503496106117794023089339840040141505159385413978937894323600601910720668278959038601897965851707664425379502992548301064529601536956822952742178650340896070666089106977290187429895487469757679344220453760777489458820681103310434277937390177805642706540307419593409201957525983517010435529641867289149237570608029146750475828733010631833613077313354633170767445181279583040432911792653676626809372217876822361985638240463312102244809735440373626847671625191687356090820126211896401023543070260917015266139071065348281674702946965157742039497687994178230942078790348666721732030286803483057332614391915375535764287036041226103128604140345820306916391107712092626785943897710029977619869396481732643441223602943190136456992651797943911191675243277008879700681412510873273067685737868039187429869793367604553772286373751668115973848972475272190205968711632275447666472281994063419041476593430758139545930630842776059821259859515918330135939662283835355377998081364298047143599828071688119317820331988960256927744391622820636096217806522778927336708578626615536298388745807810211655694218080591807265839819715054116439876015378584689721813136215395340054645730602234828104574781349294306020464896977281990691970042402779137265350842841127012336716799256044015586622867476231159565278330920868500565227896596696774852765443386061778016384724224031524871897634975385924989548324181681777318016964219236389857265964106910046332962720979627740896856608893171265327467913601405305484698141206447273908325938874796803557046242739955196123944106118881228803445104041471669804136934392496369528684727975323310985314844413026122403346094879599739888534076683214570242363864435552580713090211674108396754404775155774265420921354103660751825086419291979144409969196315261604193838515229956985429320648449715216829581758376014362674881748057400608307997994298260376526440848335057676860856971733989869626215348746633052717990234807332568375193071569240751001217625797100268348307623855457074480851731488293692581041385210135356062538344136421019405099884338612840103012570603498108928490593201469994835851300676650888161048927239009195571539133675653564469579381754380212760227530620825400681084543137803361778935916034743637615287840510933217640990639557268517089352431646652529498161917176719679990548420942028155759588758392750647967200514725229977619205770474866916142874853447383063451423008362157011295466720012949927436306838632746113948291244935011101389945428362094330422577029829002733142945777391176148011577428067713874543570993455122096578872243281175371967773604924716330514863673227772506258254130708754013253350323742534913288421615894069858773057504819246549630040939941937337683139227160424830740194389203007628731047679685498081938571059712693542258673275169582937486181962674955477870062923752680290945358275582859115414213813557635630169721432896239381885273913624269479163211066840145023435668342165234199509154961446292304996090601969896370978199187819377599242070977548198786027795611602555293184454653932638272752861852576208607610673603391766841884238629856919724844511487266615116570144810752585022098507597541833685294257627437748721076862949286903718605456147429121569019887997024160164169157085010391292229112707050773861420033677106336731300268558334882628538744410877556935324056027645577114277207439077294105145476934317180002595573398005977260843131164721529604534613106913788766851284669708907215579707992067845645128549363867994876884478767257811500247700638859887016995281839376621310924127847951248823193352708490642763779875399405065297132374725166776717637351967052394247343125479121548895662126742750585534055069710852272095086856324769551539837112759516545765174006530436365874080140663007271159848050903017262005006180397870972972334254094126777806172123562809037850690239126114940102026555848199153521250528469762085807750597903369849491367225383165195219311758600500362194699761800696559672949131358454175808078630905816246287974014519461551082599726201654960748921922592481242686585312603525452864494654238105772425318344751610780719457367953140321058378081056005510004182886182983881410334158214472102177359798807867598518758606984471742275009940271381476185815580189523217206440276122483622417799005502482269307439334458002838366503975281905899417053365279547992739567311406748436320672281633177319920378900468096271175780565999576310230871209997890818679465394205387283519158972277556052724239787037330122623459400893996103646673721862288692123177332085042453214736804851978979112536382641985234673239679802980890697619092201828656538187947176708081288473467621991806991620390334744172735414797292930999383895118870022363245200018046835966956206109224340849819122708898118990007457183267892229727342260648488741892322190001007475971065927664355870407750715107461616265948703590466943122226036481972242685257511583930898608768445278341935547558803173401022747258045015737138274875749993530951315990451142251114424278236345957837400874087471069229090524155569907612704601105013426911342060983339786199044825297882764552059351736549544330494855769220062429747837914635311106227806527549053809139033516305777682798860106611150982584313888892083148782893906318842384908213189787684186146016768154529256384779725254538337005419825129396324053129547626707519672822240500326592218196034282873502779274870767232712304251620272899554956049004821004610264698923239438103929482199164622364976595252229939894839239875256823184234546638061217469104029723724977297688385175629067717038763878384755432187910719533779474124472582604323790947772534029274405683107328172689125781451307869126907676837502343156624742296397901649044808493454480989903123275267907097753644392917365085807499142732719460917068457180073045301639525122136461161918256140840979432013108324148567566835851136282946806164393093845504932105026309261507329821349876258797326874956462814934665600109704131654514939302346181896764049060663764209323657692919386794442106087810886735342100209536723044778249236132307567384621295603144182111198141170064398211651188440597306465325300784257674446216300283931613126555016481157775522994742383080952556220496932738524951310250959407407829411860423794907042216457129970528565248010460977060437481982329021024613353102014041419882181378511134026452871368303583997228758361752944733546038062453955466146164040950158958079926675255378518322595721401633733346938888350517705657060551766857316301204877805590771962640383536258146411938569038936772922109607464581516823493684684223034507996696399577804239187964922794961791920310154235198975543064383499382698106273207814951487404321914820500399709210394795273219070665647454178811228975903903342950621450065396257854328289793106547189226324054900175862331762495500352203419836105230384495441659228153780513620640935559718843124575755316136868381210831943003658717089410409837006228946971954045414047188499467926963120790064912761350289822467986069226816997405601517026282126115967753407631165486151218506398501465984410038325027227784521030899101152701068151459406432566993592893290713111847262889899993310421173349038764429741118870948099991770436483998392196433641835963690361154426135022981645473466779881619555957476234212781060751185211844151638569087555827333296389123725893459760167202088254353961610034370677780483096619216771943591899472933319345745245790891961497968478511202087893307695738513313563559296511659327646003092410943464886010798049033261653574788622790748843581989126270517360944844639717405972727154885177306644176861564703076730833453244186885719183487788292775875940699467932862551089603542998191600092768842284725618584048945015834850394012471655601848892104476261213120551133168776928342058804255933126868892004458823041920101817754585568808555780631274958702761183281268708418040727021688408603252533432175646201252131191992552264369010632993741350484453294880616854285988467864487364546491031577788928928438453311734817413825815305506122280049976331760943250364928884342747608456640839532673942004789007654456123489497311055112517353150531204800407361624754579736818392582229011490922638478444946115546213876994690919518057781022456762271503484653351318377161919732324811220452034147715295082367322591019898703849149696764854249141332996021918519524994726393394309226818748253496130365107544527707849527273312529008999187898416887728702950168865601832389120314509927496032838941818895279719025935419544057436384482656143168671599933826128244252713524061300385430030896451509275909175780818252994434959981110563555440611723413583336701436124761320389091110790320975352924852778192472383615145858236657985223549676933786642520679432451831396791482533327569195379861085441032303659651845370272842224430140362946146776434321481714086468945080279600523981424710029467085793875095210555401262882286763906078458552259317096512036160696982748263474844628779825417734361521255690875603874726648223279939314909935143504461999921023417927704163456219890870721955385845504921528469374742582319373940142105264291672246043272322175795359473402452056224366586270820455884971915773291828141384352557489671412069026583205783993674863160787736326361378099405467462066862532816857426541946116643160398815212625488193004301820414419100266579761880597656852258800219298756634965776539918502664503877199375589735971931756844332189245213552377971895054675668626955889261701411476350135880706005489635072885762753309521312329379451783011712794801309257596726637426610347725931835713974888563183252642992817285267873817096557841976690286852175620490571531322912220626424118185333831817423649644787674220621632160228702920852399363855484856378145884355629277974239923032485754913938862995059135590394487099735469756915583338815549863594296846244344926867356259410387721852051645589150306948991950459385034375075791886098476464390595415402813358727585313352236656239625791599309086791573551022486237781071396815508528727294249802970964327904706701150018782569129095828715879040439288582544321328757624205153732931344142112936514775888908014520289852282104627775798944694683793567387287262015891598135592013995935157382149224591989515846930883760954817691346546991451666337518172224791602071129324328321292292035490124607730448647802894915577100147026985268012134692224079900918758850861319257211193120055508018992844776507209715733639088877974699260277885888489261507191218297799397357722403182054627005470455394046927430518267513277090668554757069076264893380541228350375263323837004998250250696914214408363038696172036232408406770013417276104066496140783809006938974765897519447925794910783098980654082994399542409942153146122659004354574747117429789694549084825883609967319364849859969803370569828690247700820917556090176512862441531479523361180407526381144112631337611418959278335780855036076423755870794530777268017423602301915215962568456899966875458970515270130274610959360192738333462727175219374106414935275086831356551306269718539139807905481362148908462498168051062071562587365576642578133003444099937638530040154141454048913836558355229029100232236148028352175963975372182443058460269780048135962393611185467421261736535302405472807454855025962672682305451167954868925594163492922573177882010932293880947990107538319240398519421726175440861727920862663085775781579349594969366734492831529214249321392734823303830424203102624238514190944903157027385475133765049598425125825292339024308524874348761012393726596871448961443962735921775068941204935883437443095709954400548275503353059389035305198489532754430853258883744580728643836060066804982915257098678634602632849902627715377981693225686833503652486295188040600089667773812269557198962531310306058965165414309587970866745043605837523992262360731245598452692693488895910462469701739506374093338800323065737534981383618763976787567425125406692410643924623928588312173889031456483494954170852252914132843109093776242019556653334080023259381052739579362681440019572607921591770136738039871259171206366078975474552501362045716268477239090551414511791902429977660162266482553291754587139050703627812495015616413123485521113106427638981367553060903570413726616541297507220187775027665900869841368928250045306004035017851285557269582321379962808817554584650706615959877354237828096324511725961655455644883862917225717395454344908844365542301095860519949095850443805268874340662334166873259388513481876689928432042318574486062299006902091505360673112865580335029202192181094833129520035244373536147618075860498143498385470909551210332640409525530180638585126210053041062284326975859626990760887893052871905265481998331053606274070843623403200889100338581251611709472986667929099665261952802669688040919697751015653473558837395030669288855686973413714782914341869048858939166244533019991336795000411121074667003416512004526243049381707724327525385407250974174385658787173445852928223868692391768134041216804268781135711626187392829115550372675904576337080952064321438642524112013608940164105458270679846592070872197625862604443651261041593326202840026097396310951207742204567332573439022254090371753989593016993339654748061881801721837942468845764281154514215327343909659867363118122726304179442566233759496114191904488589855408215565583279444627204642967980858788449944304841719215911148514304210195512037780410604701558889674450160062964034685859778265366604486457693690978097284583683440432072024758696456942522578852984208972944535355177110280990440014731056500550711130224226503043019770739413098171203916093002994401570228473650979555075325337127991600118063879654785414705286119691227723468244077912504244029094968351885569941076975049249007704368131853966713936021867701185177923057178975631584208813966094586043049983012454950154349392277354259914808790158265399797674186859384782193666884594436664517049632958005798024461597197865278160833321927031038612171244584420539346265111529071339331270102378253694607565639096699880916466721739885382693604380831378216529300890810547007469329059638370545749393566105411995392027989229107091396225779339644563446830417023945709263531030491510755786576174906432162308761530488916879053975104513794225637411791445948750763182712438203424901455798254206954910507949047508847739618431171155110894524409256215244710225859675183538502361331319405836558808464530706154172288278788104755390847308366532916900663726296250996772980448463141326581318197729858323743926472873048036983505589217091089198101877295333576657773717641938759745733896560648253940510426849791944967996385387081550779523538908207342673531454802493272031887634506442706070427380980670828467174565633281254574432462900737574566903291188869364646410020499693757028118832547679779267246762901632068684518603119345799460193634853901536156791231302347634567843915126479676914751336100153062695903060335432863455941487529981019731042257172597051270860959289442008217739701859224560438417521851001569223751779550260057213363136698569460230111629332076584494217970507258696682878167006449690914885438985439297809508412413919176122320230445483825957598890349891462523404700858205646078772985560633826684232853636124113476226428718669767904323917495127758992032171432709675820651651851988334543763442557201145248816971753387653192936190326542359511858254717046552934573643555368769134399327181642049135924903747896036712621294365782175902500280322097760336771322138557236136667628395682987691075667244560695554801024158925356842634751093573582436892395434698706702508713993877081554880249789649095472053831617305474679543991605056033550527831931280604753998444124099768819535173762632432877942686227231767855158902186046167550439039379904040273371794379557209956600485856628843268231525851172992602128866610985596925169403599111803771036906440851748317531635132103394971836801109534051915635898155869955047308262676687830650754686584432481645240201996770784170391921464889545353996485079334796508014540232413375278888665942481860261989870214379928080676838135227533978585920752370712783532321048232107049274830121094235089274074163734036089402652201438937261076896896717319216977421309933911030499507143274290399412847445811744538190177279172524443195790031291241788279188902382126080933320584660261643042283491801736206704680851028393680920498554901658090154709105876147554643854651376354358042128908189538285626756251164489735186201026600422998455057150207399302879581909785113630807954767563549449487115521260239494845279302627712284882423511474968450932434699088528778203831877110741981386295797467393933594307551953254894428556496140008387178106838039258954424014751496407117447384643797209908182571602529120414680211765837372014739576623901831591260213298214395910548686661436132204799338171624901122385373632703568083158438589173004069919884546842128424178392276058500337194163086906270364315943680065773254906533369888545642225101625125755871328926456828683652207416551409102840513432629890310943527040659150615767497938250582424079054445221916116221155665619401187789330315628134185344947391307346257377434544462232604247172337769583817420566184830483337421832138845654790141108159935377484692604247380957767561022418779639704373624082347702450328967979036324722903404690490445798369035396857109240895304971492621576043117066326356379399313383304606752708896629449379232776167611519257544634007352663559194160521324363351091914977342383515943105309964228121544836073906266057061278036991478615364653297000373935197486866529034287274732388003813621384390235104895367585873061218998221499099539732806902054811117489329223698522083559850717722960476255867819275496779727018408196409513571316875443472496534754066423007931759919135217842708875307532848500385320981004654209187828969006152531259977697595997218347672050926691882999303480200121137994275294311078455332673050929976603193554567504364942006051769113092356281915697156299464738878205514059737086395835307022798888316794360546034976273932163102932334411461063938124477254591582618799279864026614958191970489953574157900387701976032874218181992400116955210541674536848777081457415357031562617700635250802337531465346529617194966587904490138674906136422273543381455919119526451591978142150187877716940443135561683719921785262127092035231610636020189435481282602712278702779636765684004520111273956355949534949367912638612819827844565940282486694001012132337314014949684497755372861827814896189964034797451364550387999906861994599367966377032619622410879025475911960941275860415967685792253483701174870516617552644787556484185940345306677751013213469374122020540464727700990778147291148109723340479879985607909049794070646431228381053093756627323810776355197861625140755378278753838039717236109635026049582516151053980332389169174536439641414630714942322797472850506279099809731478685540685806393215943178514389666222412883867358836601626516179073494897377778597347085561049824929574409281516715127869619191182846320163164745231096681709351781184036859609726432198066635389664584138468160514477439498289137272256432095585479706376745012661199442535663789588369436725915405681856430679819943944129633859789237333371187752173428488723997300838289884388499587021901810027564979450405874064971897243802154234792973217231541684400932358047681550983100756332814893022590058463843083028745126966441123683086934063166937580704178343165477221899554507944556500944068486995849957071403040704224714742869095483476472802321863565996669774148701152936808318585340594232387410712695736462748636042719455251351192386652927558285665154378789582290427180552139460808015228036496475319132337572497928608187846975871977539652497607018428990860354197152376375897301455032999866924985956777813897353000821349244177095471154362123839898804723216410400855956700111698820527493153387002529901396481100089147853251540449465625068099868226438996223056474103730813490289440012411759483455948588291813930715128242942927737918750703301163639960521324650509175240058141970206339440912231495701158536322499973525632020954398290571010701030638074615024727185857514449190714194662327914287043799014599562487311861718641253846366774948454520410481930279556746490618057180080788641632014280263713161389696375564955912805006256741273427559978269682752070641767573772271388323635712443934756788621710574890716006904876492982654769021038668078826975329916700625561696034299394005234700694664607607442304872457586545607780309885592350844923186679641863496193474981889159371811724086591717980116528564679694722101139146615215112304366532074932068356811870834308014354964461385513746905514786192576654614436309364951440071223328853755732268021999959665043916767349306564759709230929013578546529103083289901384716120879034998277414033639415004286459923536243204499219029958771340497670917457466446130356605253660887492211276445864815830400513707188460912667648782198738103163342403894312092560731334592860664800665107580560329074127871420596727417473988291870744557846485100807490220132341736719475305849289497887552669595653725366681774617766683489823760810993016355843827405573497198994389129231222165809936266504689505197114666024889880367182533003174262073729478568615911475596279112233500609418341106712092961620408691349053930026542701275865139369313921717655871707756180862767047364291575882768841522032436562371084944074625355047372738815846258639858786079436451426319271017517271381405915562988920680286107302060814167930383893433091242418486167613091130756668652547432427307130351540511809861154732232366670636163923711010198414591252819711555756755808609157116983264753081231488070179121710203577500793122252902601684309648011455067328787559358720869917742893653275376224244843670961725768519750898523820234288186756107465009755990969488223760612612943781853332516333945238977731523011311391104629245619321958477407247985066914621903861446320793903676217742920991135469053820989069049625328295548635577985949243840990880432951829800129994999960341453317954305745480000574505949064338589964359854410262367264363416964011845077769244007276520199823636079646944087815064392167867054713416172793937781227139393623426195214821157546520739053924481632325749178424839354104296735148574283806678767010681100187861377361462094760404483134195718281268608602500425955657289415103678121034225584512099374689567851420147303357519704394288516102233731683203382531425401365105430443916373155386446367619371637325084914578624095963652346553332591833859493014981758313273463984262988632638854853079331019280808538056899407008471904034931305087278817925775439863290089958738172739885835189498097043595048354332234262399681057287438843201819852848237817347200062266277936645560446593259054267914710237399335261340001587914143940449054409503957279456023423422621887860598333237504022574668876752347326581670649081392932637491610564554706189625327184759706714438853125660871725436631568921754825851719655470832581701569947843409404201153032539621815999649425247414657796398934680986302512605962125086761424553820751659025953883235140134601448890020733390130997823695151909003776351763637585419802118547320812789311910296611210905556691515660028485149061672561019997960838047018633170933940097542299728272420191561029239825002285762482389799683984774921674813561657113331086161122460021811676082492393905481505254017882353284393405282326493497269094514316837792608504072004016348650889319937554630720618566314208717325967027912100356247362674740392949260184683496118607365809514232936795200929498046795555051741619002991986053476121455149773677116400302520106458209449495212058506245616631236419732682249166634019170094110795217198034693943658171923998490263737598041654813886942049205606213093503864600702678050941061938828110106566589588262090936312139385121044991300088231571987842668467287451087742475788029120201956157573668533181112269473162805429187612309035487360016807700933582682842739289455753247913525321560506815963236098334410200368446983973820305183114095598414066252742490811933309161986650234938700504257055649029962661099772976137217046240176028832033200961226011172701652156033508089467152262709636312602679981737255009614390161642426672106360075025642771885828317254748548527099153819509773979735079297288558335463099105472624761005760801519220418353201649422077340113609305271920195221869695111000544358701113328526450328984439494391660561553447130120254539374229378980735399717771745381254710262940190489600729877827137021150697464044188852055570286048929677301139209723863449015872657768183053722028205599915246396351017844783454387888617009209406114674461249479575447039248576455028218741003499562856853493795633064029275599821508054346819485306638457577159379015029108458324019450082641302396386171330821175187946693054398724979882016991948257280743835027813803056240149873929772108546572567075488045134376891507511241355921485325889103146816509558227835066829402259791285432745243470051154737146076150683873400192123779665794318276481832905950215696170984904599246428618002578107725982705253474159698209687943864510790855187182337974603758926335021807580795380028859175029797628486301984160451121368416293968061960470653546828043181613038235113400752449523009480136075617482368688495432020841540754741014068238190653822094692177818743751433901990702323568656107449628489696119434998762623486718269215743451350392062787161244720583097880704247345046621836309228934230763136442467734461541641192523836930724154326081877824887373640394228391820966729061063265274962686898664519464983725729617957518906619443879792031965026170637505930131184733458814472750179933070757952188951051639483104497902604028369647686884632303985539838905976329409141100373267586943570820198532065847564789038318812789157074887431345074928088676026754730462650436912816731046247101011285094938709113992054192906682426458729948927501294269138283496763375863913005490033629506247682733876294426921668407871760020043378641535802297631708650290870625099814104094310320895911800614331332362019192416470136855133869094631548535904369999545684168968438511227579219663265621346270822257961402154196756510003613118946225274594816941205988308347345704049734629289357938352050422341927512812945417517783704532957370847205755058608633680312314717039426718583321858502854775583955461016267910855760269805220840612642391523998088706929838334727991668987445978410450178816452283528907599768698714161596235174563249317753306353389617562941570353680094108848757033365371052847704227984050012453067693910542651324748778321155924558638439503864617324644216442463543522108041393348306523407212565405560075757142880339872761815894347007228616833848343688796656132907746449668964955842352815494397014444510313562668492602352211899501233405250785628464537240529455014023631142187668729674299598483769315357545436477865067018884506932646784196755925026607960374945253343202825288337862323915087222468315918370425242517962248620630064989288008152561818539430218542653848216849464884155805558372418077916003173225634666891452991217415844636738611896639807845868686724690635718077557303898247418247212346137625807515006527134810401046221452676388530122668026136600083750264426460935040452793892838325912461046650184039431559767495663211068664975403938489515098466504591308415271339686402525773868403280621539427949095360835445840972017691298835047674496640722736966211638715061015552046224597790717048212489533892664719013190244329728439856189437567090075565900368682066283847648327629699461687691671918044054485266336364906678290188778505869883619779280270563627120675537129488160008454903684333339034725378350435604488025378284003387228571268053362216280856691862473109770087148493671252375407587592526879264749624566983938224786089097706164312756957159121939193899189820364258387629618024035643330865036576397055812499568428932154129752430244802789699788649099033481124337405759610067621034761497404925972259347745975788736217994893360197828708795146592378531125350321118607459795337678523706375702920345540104148006322797110464586986763165691407669044190605475123573963211775247430909256714514235373660590866624537164552372407880081376286527149891009653281080118225397293358614344189743612229218794596593710584063973926703890151617938822550070579783467349487525609650562626333521131756807991355427911296393531483890124748184764099651680605085982033831361542845481002343217812875385773535255684203051801944918665499831191681003675830940543468452656928352470868208365034758557422814681068936941883559155987768963450819903201799244690335225434474592834782007710459368420272758462633455487549521947392674057804895675275272897581811442141910104241250095278882643945127925634109315803239717664029732101579785837712372899930549952011782663461551034893733138253276464222283736465787274599028595672505399725415006313369890387066170174439375440485588152033933469941660045843883060606148536270864555337780095738799895750746828581799507675443112567831536892080606937861482959151120101985107521614882153696832379989505557901559854381322993489872693286933841270051738867787927937396878431825203434294417580430626865668034476232058753194299573124862856534451587517619555829396915045886782011332312726036804214365269213416720438953661502211007280727260018552140284377764968725602836696730238623866678045516840311061238469972244119663729825564837481460252143426208791448057922407431077196980423618844603205228060378743408598743404263256099360956016137392958424905160092934341538564642827339761243396454792886050988264275245450605553702536385120712733718734125614618138878767507629603355896844985061455834754219483298823032354374960701704268800484109174229649257403540445218888189663424119935704757833100081398982079900199675091121228569922672361765807942142108375687546675051265980101729584343793017352812351799192716233461185298157645012499274001069463212262621551580456506367872776032025992565835946641748346579026043872017867626114900125262499528054218313155552535274347645141287177068027931813023588840916681830088262725575438372652544163426278490219878861577819014052123673431695443061628533419748227272904306238361611829458201783270325639299556856406146088069094594673533124103286111403304762033837791249867900692485625733059507666291868467238679450974271178890430752236628725248561112973102621591135652081448384886683442766945904936493951563425794818978420987037793909125015090145129860422358313075078728586268936585883458250025944440533942106706346983623211404850942751085731683853957802036584339787708757852353117297404519993711719789807944163306435599360023340024864849951191071274984627456909388776432876622195637356127026151398857333668584704732998919061697864592155670030713915474338998178238304891452039162733798956558829725941813363172940947634435471026090504466621766417704628512795887649953278400642668561045602402257083451144004021513967824488450732559746750066668024904561032543496259524472999500535297455619864835470236227819671791794217383016275373759574914537840024166621408704316162804609848766243793699899638200346948794722513688639263679872142107184319569453223300852292932481472300208730199692954242047706199664653203589399916576268915648268848497699308526746055937064633134919391522343034932716807746796790310781953553648171658833242785262378826850534987289520626223783349230059101646112240602270980658000399288737000211573258930749096085340348315303943427737710392839563301946649527920765423768551038617397955644338960027083856087977409343687060890622852884573775688321743167158794747196017605865213577477276490051747843078073134845662215511451760364536490244872185612439798138795854681854795328321686350590954747927586383473332732930236616891413562413187063688029807605440419026180523364209385092886818700008108326593713013252713296625702030014151674134772886591590206914068420658626699348488407825185270540121876724155237706312234184184965115779423611076265813645887769241426337711483513645775226016906624033375495476306620601359374139243056218593418871639041312801617849746049633888217972592922028506520325106855704492053821100669678443121450720651844535415343585253130351556996487109295953650045525254347565120902052398495436775232213728836696933384987335861284850402987738587254681610905576682438963008875393480950278566285220473392842005650760529440138254422221862652672817494261642991382762508766651011104050485679936958877908134642951845819910983858309010815550703294831201805044928924515114718728186461340968462099230313543753878192256545595142305113214753355958378091474842334327789533944249114066785662353880466785452316024530504873007328206362646840933358241046754554946693724198145639491388725578052339016702741061508595339242776071242345755811665845604730070459202791839431111236480556078082750092864329110676882249563625910459361471241599880361904717255147745362837688078846126207506839840924197453457459517522425672685301622907120919059419639663918561525370608370401450697917152177909108467667509436880475627567440464899543368276790302441675281996579306641135465066657210495704134783010487193647982978350180752573133438036189868596705344145541039314246738145122679779699083611416096316241304369257022232174710168825191001195183954503520690053192105862583338329227324372897049745459076574237653134562244024915073875859755038985819297379403027602968939655813656296894621887164988555641090586269737788026863151173153654944816162468534733530949098308791324222389709981522634010334717763761465234440393942283635227742241292435090244035616671379148472648036751447372490740989522536955879230203572434727290439674687456017516217005918123621577171331629157909885262187018110622491543180591347434744542793591109269102341741862016195266330148770240063884328353100268881865699531370113454373460804915313213256224895877702531292608118727786478538939739379656484430459171966829299693533837077080729712730137496819437630599051513586138548277242477593202457164116937169474185613374671268797472640843153926908439721971809507108633046676463153040185026686993440552899198863198907834867030951268423454521918786213383988201301019342248890490147111757287697716303741487446981292298933439433759831272414876744926162953187208963187922225973157076890202171867815740085599614188757075421302044834975678867805526953822054971156797603179928074287737414200500610665056228185452500582035534801733570906186962993769592470283936859368009912444705074684875314430723832595395066213841198038556447479551390788550833517447689825636658888600340392557309457633860465326046163053996878398687842761572957942072889271567292322224344697986499779512652288715249154603598224388654580639883125451047639726722803775985041799592071682393930836824956537824587143853228511821311593591400884912152020109652767418869273087742174163248035403834256777512927638662579239674556237290098211946034965919774046114304736519545897266663401411888519788241173426747378851502545674680797525073292867937281827899947727477877566192534633920672349379946172960503503675283923104015060998196531316115184819159136978462261483024413986417660807691680249862019877696509197064316560524934113764941749309605594467482795372970028559833859665734318875992587656094137432705809294138361797559791448472398955193868419813829172409691947058968445319403298473925846461544300026188813030101316805694002058805934863952976218127671094408289136432385498676872710560800399228115514500658871152390350888559098033104538154131315070837590699639320499020304074431005765345325365753003925507859242086261244610769263681069459830602334591934170217570389254160989630287158620511031330522279394197019482822346859124345873253066262571185113874435726255951058023050272548875716024431920609208646193995390685257136589820679911548354551026448633641319093357713910752140777048946710932703670965767223368074596645689762244462242546298850099903207341259146220173714162903254142958732324923256766749224248165220785159841458534061996500716013244901574328338367522291785918613699969638414705280414221854872891562012572796667237884734629926631021288044181252364991585811890651641520272216977632200916539399160214697064864677167900979126687985966227139883759970503444405445506677731853563787925582795900290026753219854484983780511877850533435876727161621299181804912155220802502907168116143574676606231524047015003221025850934721415326480295934529293334154271061472361316668074473728573396328633111676243273908573999414924385426539190669437492057295354639092629265223368970199035810368188408856151988398245041426024806999906001597600205091850590206145952791960348913899300954564768824541382796504439173057741154235759456566892784986085154110565450056280225896040133126005325518811760484554353671959492920350087452764736673806543968897603424405569118379924407214585659955502551784025547922078360363167321284516621332112752123405099761240630256706507198290369834180827702413773270124469702025213755068193850853415545340762037649219401863047852959830404930418587343698231930391183246577897356120539037684674851685996078621784330530155634259813260108110990652336805102220344957805746486753132596035182486017114089628674242303959101962607332175410883874707715154713695139841617224667661631261961140063430698431285598349850716869772662355710934658024254071216995322352422749648336593143408005044978991761153299887560351013333359811776680615375308224369732893606437200040204070200269936519323957210903703872559221856605694587761930140155701770398690191053038284191044392836246352912171209973334105528774250768231699552471898886986638857979504541396541206533444348835399382089570964543003395448069157904163859215561246591307973147481609168425846047163406562012713220651754152922607599765995255197847194079224388754329397375300943794176688719058010875993408279023347922905671720138726685728885452556816552171157236319333897054218275316949501522144216873571206563484918228769230750108994135194369674875665563909893662860979512817920710782873244144869449761603475098400408635822077102103583385357972121791833806761671683994559508154374815838488068784542794612100296933298987869621477109925952564420861784977588962302978739456507021766391014310264374604976796489899653371701217628630445866500581714363434982482193667386065719907968251833085905809457791746241393595288390261450773045786024227022301080716299876322025302448843814490156815027934746705592165798179811972025073652917055602788924487557471389715805250212730077786897693343193368318917122269027082647612037674638330856578056620138603835278046725795468612425726382312120908260567385563973249713048456437098996736782817595649072126011803941618217112940756028767289829718773713547268454843382457166931117032587247862977669782737344437566462742519766969463296776339233862663420346249776349266769126931509337304500846322693464854434074795683287640577760483150104933689788244678947364040667723767177647545865153800749546738382313681850418658293651181695024375348880834727944104496601373345231340269748672315207263297615934635840074600842754392688735669558786508181204038939296860070159970699020765964099465155961290986468638439649210805156929798857532484755439923504129888466732939048946152047722877780651020024090474444011406857613459532031344430484016401750666382648983040020949097220525920298502245223891742493559432177634315043600113132613902458489283857579174984196918267093434096525048258139862871764377464160137730993004494399386715357145518207389155699510328062907989110292176334933543418545464727848852275687307470506867704581744768239137798362790905788511247460103805915661412052760568846533638376982871982275265924208294312126492978842139332212890005305265233947033171479009400182281174575432699230930154456381245558655671025005005202566860946725533608658802739651284286218769118656010001859140132087614233768829941470789318553820421337111779219792648662120638714272256176658274011736705305954681411481854384577131344837041771371587924841874907775587875566593175690181260695971078834153579247698418204287960462139305043848988955622434933954216919347175024361977948422438665980376291304880618523151583679586871717561183550866338244741745292541083485796530707542252133712185452294334645148798721297792949719122901873847347416478741006581958855678260429338727570665854090914696322044631257744471417886971802933992791561998229001021840272934769948734271548054107165392884998197757264564904738026297223335595154003404225520929650492653964060653625657006080658430385016365014237016315457193615195132179243402793041284086386038796127778456511729196123715242161350445604122033398170878898122660868420215859466588975283013002003115333597328217443818057179646987028833336782892920285925922884290359674272511054580523663175578528176590217233182261576842969780016327479922552500643172558550920967208634453326709060633069183022726992531855790632890895303451292198151669465663626623380970099412676547908683536471117232308245543732628157693201381541366497205355764567464905410686970849145830040159743567580935395319089503654639447606581653237802886146481044527753188009007224236031324725035985866273273534234279092373061080666577419822521342747452604688681057834999436058717815494633877496019391384420566012014513146844289841229976506282325299311458386437736319351585324538010399900817832678680255775664589815894737189438641140228342794897250433726575345018584705976253835870781593209070201207776571511582117602701870557194650174129800756688797719141121871081923334456059435086718576418620365000935117656952155976237197652210867549430491464540290141580434707173243790001123824995762824321092267502216564414610625605940860637406343094595934086676034090868595559396849601862214153983894043457382606663333455693442130504940439008563251462877554771653383888378899174808886534514657136458544353234316906496741456660277594999776642297276367423183263712828162851045495218020510179051212725579636652638936947215576972777848089793839705541785076446342471963798416090872631769448895098179915518186087179227423562188195250767656710935958364875729157878983320877067370346983344702348154693017135619337523877379151082940927201272698282944735645776910379022190651915812310653393554817604143010793841791297366119598677111629880928444582739630913707052665859482806611508938635234046668908029681370949315666208626014972190805287439962962225962006142759826101945583402068773403369233803992881696610801390368770686323291940945447897585180442437745297699469852701714878670944177531838792837248102489757653540399943572962397220114676012994551455585760559493635276880217518431776111891266705614910020269502315803829348541233665793564304398176830445812010812562504585492490164992044310959421633489361510093443358842987984612268235433306401185775966908255680085026124709679442335661038799649965690202851875798524298805366466267742139738664483701879845586725806296622345731179859927932136905616575244096764308505046333833592448864070593607805288002233272650154201513450732135000577549984685073393462501092321151880914865572102375011864352261626973885289493724434129663966647651324427466177575792872393924313592040711844930560155181460989944261581520119821151022876264232575204574669154541754900868523019247548293583390405369805704509633408738308346545550390463144933248367813718069149753398201829346347672713569184660448983680409470786560481038169870753030390408040138451148814334469269997780992786873367897347130003535719945975436516693533374087262833392640899068050524761497609037006371861080974851125933676080989418469979427706037207166944709584304035765039046014197406261398873227756121677430674142165548811043279105724340103154264593716003591842039688106351340395554993936980524921105328504475538166391796937048261320493677036259245613992097955865950921328201367885366799924871884520886263760244366461108693468635868973598535112578823921957783401450800633801538319828045548988427409832663066248791770514971175010643541809207473847284869475154526278001934334648660403338589281500543278503929336503656709494083039630243763081125330955695670876779197621725508130903239056887634235678111071144496360231252538537810537964592123888118474284958354275989042867981321882292612148983302660882901408315295807188843343255812540377657673987739344596375330363355876750772612517360758114156919006539643241457099955602005037707022470140576062769814349370434464624391053477155745231923122546780174938696738280929441000528072061755531637664388335691058541953892958225932015835560671544259730114109570485490628130918054078384100803587883128299785702013647918901002855039412987763139422392613703379125308134300378314148260414171239839697586151585395035494170805505729535195881724629596160784541900394623815668236707048393398168342354054948412602793284439754587570386198430456039687030549175867165965314328618156566496660251490116088706206665017260219438657674519728426885074818626988760081537035622973399575567418838479455303198627090790584797645308759794970688261363211154500632335152819905819199920020717896175955737983140075482664050914659275369594468102444081988626367901569492568738147136943711067353750958719133316594801349174733636491617475703154887889564882972392528450933455613272432306905514191949926643150022503275513969936508579031255782655881725784192336438081856506623856979944343711451817825925393684214711639309854534626056833596056063765002567773959427187108638821923663947788384500313006927741457465185675729132666711290742614529118335223837793392977824197703772732642925106363969341487198780000921459261864002250977978583471740974773840404772486846397546101069591729392279332321099133350517468195337648578140636107423167465908829898584949049014345251452480551574324363382333420966736041971978477281538052942007638790995593371749095090656867277454114353307551729156532665384080448156328200428045197912043877703733618957536485431517156311180231586241855204443061335397390023280858263363612671386034888664036955349211379028559238995669308275063299218952394921800964117288244714396640098150847777756808658875039138579522143570700633340293282798345255754266612504163695306442260282262587196073326803585267456253261449145373217695955052763040234576426513402599706583693027928076801742821606552343713063558482891081964730537570593466462736527301867866068159783360026078530034036177511868614614710738017872976863133460233630022154442518796323381224086180052367803143893844672382574427244429196445206130558157135121763747533430258499298508154333063153028574899500665299865541808805804780996726747895921743769201843012182989655542973911908089363626612735256436276221079019725479110331326831596619239941439037035656016337139317573575036665058007153378091336886141100601790929987511754442070257853701169629371848935407142520268369894533005341476404647739906629657697295578349904549507369334575880533832911781939837718875410959966721430197964182631072864918178337364711767414775153941086752174693475646689248125473372649665204206087614355333783825139487679390721053835347175695047035910311221448662238984257618689981139301912700549151229640454522287378919337432211552619431165040552119738641029285810747914099672107449869426433627723581792214933442291302143561209680344484599475050494982281849751518736137255681252897340759313903579471537552334572627333832491908912367439803033444251915806571993813420742389884986318114049997404840034119684366954289715220546360230833013835784805514045045196904830998930645978500797521401730654435792261703513526653256687469822716504878816478195005500798622551165417265326945937848086650796914577192020708588606735154597119439859090576739611675323044623886608497819224691222338404650027219573715368915036895345640978231622203621248165032572254530908373548531791219753752413378024089404291523375180441959624720339695217543416413642023007244010557235153484926197550898975880500961498390412197587129786100935230516077828895349547979269504807063676564145266788704521979222109378085364880934543655660622077444784377141438114012329737302182426554584463671709076796084934793999512287127525890305610263174854556360287540124173260300263632492556223967882938031539079688194182900794117578663274595265851296945497261446666937334889811160706041845493718222706140679433947947534022834287758464396738021052143485872615341694114044270268380886430200731996516795519778131315815469792756611890281715367300451980487222682958398029466660599013914910851463784007917621630194242154142752593795173002588771921414606468720083124665755031887207642399054930172921029619283508043496766036323022425824145399363824559851195158541626098934749152856875666162751814607069256476652285654732308405712988709403635869257900668892318886705002504716832951024901884780514673835848404182784997347702508754239982188123872210607405364663866351949929632173230281581628395405069599208283416971253146490326702681120792627056253572285297181448256633174950876413767332414510378428039695435578309011101362278631525288412504452630923260116661979807240305355569102688158104199807442620823522442859289109665212406085997733702560735782775364630376697538825311325118607335912316188706625307048671679048695148597459945120546254869304977253946034999017375519009996974206094004217624149838140313827007058196659600469369629684367686977396131451294011979162586998754054960183617029765866751796652104729405456523380914368484020142909745710889003928275556490450627715747329202563787984353050106914330399267332159647090674533006653788594594727905052395764728079750836843063687075375821364617514081868107548662036246577926830642576013594359915391368436522111719676922689942531250871111176743231933292591830069232591887363585338971495035059059862731090213673653711786093899657369462338219871215361075052850363817692201561695113966328343495290003231292909268669935107230738183601637471479780266631778855172432837310235820040093995739610800593532827450735309786254766930960012563304000195861216468755316534387668787289843367970316782126328975522644637504888965698550046657187141590683493587477140465043530714190469308758756097292648607876951672419912059724350833494818102614857021839144476789882802391559642622666438175734453783405284285836024824284269166238927256099572483107920365901382252116626820546822172578120016249137679453853590397078280670535875334583834403655445690757363966369761615336171466519096154213787501575887616635659706550761151423775106069258184253436374310702355459546770764208772935090315274048815465589791534716201998729086610639142705867750402014319603540817268598661738027017709507773490672088342034941899605435848946062671498999691515721506873986834521655920212419119196385110074703003457528922126840221989013388964003071581725876092004632829631354628087442073048092796503598907163567089963756505282160927949166638248188683584081303916491690955201918550253923272012899870467972768690230930270837720894739542655586458403721723303620178030727057314848809890729029920409599321125301904057988611369738255344057980967859491578419386167603964998413097136670555551084630524883124812854013097572875980692275703347334952146802468696919755668676700514467621809688711050534095302370028263117970093509082025775851198459877332605701883179820383657440185874310736988007752821465123599280264804774771528910656566832659816366118620095413071637050634537485114745083681253023498913401040856194004652702826511458536335635040359840979590999905036540631884949318380003039175081408437001730260788218103917745230566656370654750877083402319456799806525522023029578440832480182595136222385948676331676621426156197892066133875544211449160869408997845773420590666703726898323027439925105052198426669258765735642159401412096656943067342018324851369215239053645592137667853027532531884598377238408811238401653607429861384394388141353049125622445884460465899419323824387711559903853684886271413634270756693830839504153943256731839801657057339981680104096224285679803798973729927758665145337440701345217833194993221427637670680027697329113797560589163043020065706185973270443118979168096713408347833024562156830758856174885574951230528194473497013985223144959864339796307384570391027148561397807870475179941859521747430224121994905788297711140908110465764430263883600487050708282098164011808174573552653060995323167196722101452347678673491479849612678848489458966756587920019074165153763483088377023982108960961810865024330044226261710131085163086420388795192230742777785329879903245490163611402013499815088682776336430580698575698422258378304036547915006783703244864331717188294362891819209869458506125929962970426699028822435016328556925943592799312374590734147165575124079411189976311162305003508854081472365815541550345015814856803503933309416180068312332980917849257109002163847366217004454017002009314636035689776517834584346776342419599255769227191789755285476043028921099520364811945935655757476255236885993842236068736025474561554068397101108535950226208523017808798964220581989733314663218775131893233941622254047088789705648492011249269244497771278329333556901225022821810966207337733324404830046582270013503844828512735414551452095360038198083954426525990747025117455547343848878997549526682619364180083640067372595437542335370084606447143540028420609921579774990658096887967400676657956400492102954035085030597640074557833113071235974582005085752471241421358286352610705150990163213288705799371334181228535044954127092130566128127063743177458880511621702056603654900237038924741651057286430309050367340722045335188699814256275312864715673499089083133938292377613016806500546439121657533397169000968466420703547315139612516283877563164721619968325698487377644292598071546317506652079678237886904799319214654393956910748972006664916648614930916309497913909528572650773461954597245234289649117762404953706123587650930830368567962092128081560167072535358459533346399940722525019347601223250450174139503322398178493903800164367130158238079600767035005934429927286665760469385904943760386684434919254018463051346155524154142368232568830125666248471397465795420787747212129128129738702783090108968529164251586971088443862718705331312612185898822660268211474346920283701711519763949343670511354482192991550271319489646746093889375565966667014348706075125728879817249406811959211497338695867677367343141562183637409230783628870365900750071822639124710674655044509741867688194573732815524495102217571185028224216825228049256089007988092890418676573806945883028288571639711340160780007398877353853847845169008051073504739740849641360053504917136030382369767055461567756943974519402453422400863604340582341782543907453414143094655978309884701359733145686952434584658968977156287968298159666247683780032212737641942025362465682355912058462929384782238746307432959997223337492601254248053672556235338291500596934614856064364811662025044871163735714043656242704117641441534145100503709137300768043179643088313379069703505999856228109909211172148632378852835089286689744185733715884450052276226012753486483919842132134209026907576462555685781659299938190301043587229609636543583945017560479683836576528340900057160907267763048265136513386198844609658808213897109461070099739017885388090338194457268310922272516949266570089272173581337205909891727150570692522660316283843938033174062540939936996719092802932629690490426801907346285442176593459948310072365238427096959585332727677221367276674316648405519812403249421477957560015287630753867119606985520204546845588543637052946022496692676553036539829867949250942590136100361808568051867552796603373176249487979577429667953091116622974731425518041959033510333492637478937178326942325043630121101669324066878163154044672546417326534945344122161532718148591071335977616545462324268184693463873011908559025074838094466265567637836408886107301972065836763192023136557210662497552605034987820049327857437478772608547893863493074115120794281450789126025463381215501685320183773168802178951607259416881997992860034989401093371633024619291898192477868140665984355256401335643401436007249792684810095500543501799937292489214674997446925313966619429717200730437897832520409927548373689896831561450545512673407069722697640282843701734100283491684379688440064233355579630455568281175502209124680975187365010734857671869577755450785083033010485273493085152511959001536315600243578119870492629495259746413354747101650240085448146217397268356807616289357856626538152311318587124098973346974338515140863110459322223283477908054835246925534855335977665606273873613465252794168487037164229883935560291060608591529163615551633364565287877323209994906797930299496829660456738084083765621136839238004107066939002545690588305489806926115066365137704401801743363924033644672363251077984880956678133254390274227264318237153809145242171099708310369091029935282901521962310638552049151822929634134991931086161032632856191366235433738752950198056601991289426061634759412302866893647819256446155236009740874130578616864745364797305363670917176876839161058600812016418815215985807795693278485639381780229181376232703107539089966335845789487274779012607073935354300670226632181653728934421357169750646907135403669092705010284761424319111077057447492997497701972187726025705316704390744505310622450336794237664762654302053831297619789423412339777566958883117379612541180555267785988158108832584854193243005839297160332824722794486554468669966777472828949506235591860156206023953305472315644618260168319858557678148950168615819324602332679147699871743772831094081309453418672120585580027980567598091799471856111150693917251794715852893658003624737176166498020079492322772019343085018247045423882271672216389701076984823140231523869923848101870011080886123091731054032054092389145986701320375282839972770469706062222456589530383878124770931595929379073809979033311000104080131908261182155780916705278408277525026923625542567757755752930980709064912071040585716449952110914628226977621415033009026510048435897385846464112552873272220948696228292879584890156133298163270611733136137248061125586866189210191829381208091970976713385545982784176300144261120614271047926388038158257358474850042121013790165693254829484726923243869026909436551547731585341826316555755846961018467746615735380656781941374741903244476432298392077575106718871666883719423834463399692922631517387075803513160446969016646435330156316728659511572042603699851955892873494976067932619252231960305295246608874514165682363044303132816083449523647441540099127771527790207898679189501714786838064360202839568342268833728591304836051605610170033579100552544148566092161267209584075161991038801622652078967086704043053724964805851418658501865945517819379497580300046696256682105769914687119449601327449014606460994009634305589603881512363721932833021825582954768643349905160347168503090991371788713810297798438036677994355049169385165783790955777877353709767861477282015919199062670723910111878068716431512695061610040456966235094789265079939837994633507715838147618453023497795538276456552219977888175879330541788431459208833171618584542429604386181188479456422391001244192135083346762904823634864087168212496429818630160279170628302680527974308670930683268643504522497258164932008094744545933788471744287656977910213976124901917560831180175265109267994382856284388679001235713272827793172274299864949727882577103859156953393006502851390063352877781324824149215725753517196232799899284471042673741705451336211209515871024521515708813614113082314657976855167633722107769240937525659704693411760146333960131107598716904931014017320781313188832537592213345206412061431101251260027880130015243667788350004226064605111715855692475783425562281920743086833846725463302649098081857619578781755691854147862661064037059380144927138261790357669832779305908655938332808371906169962396815370714712416786170038854050917689969570225956764001612773920701353772795213481845897261829926557724505406949574303519086140455588435044622366958389090324691932413122752432229262998398282249392154370904458602678549267685485108841223790301031009207617261484143949363964654520765592298571201207929780043094522401903647904448207219732641406537815195715966630837621961646192784571347858457821610872035992757231016762506837595587297004170773986852506503386231317700714425762109356296281636114948238717703721187916923287098627346238546558675441151768119097554116465297733772788234628782569936494245295830874789884532988496189709539661542502653522360320719162220354502461669224799670527978520829248661368818256293466714847069569567510454566202766928057511369827765393137894673183049876741654902610927001217493967060132858855500291395787237214319037935389169758881745030970647752273585120163143790587908561047637599123348677306523317394933847665547273129915921767985029937528701146181972655242076981021624903895834474082614422116989472915926032875058069980088052549241039696240985854644130469211296878976327827523644050681954459125858081606030314342490481805199873711680859077505799391713095604714925257338605869053448040173030450440204075683578373541106603548736089622316545467450633453219685795961991564772662749855981056968644277869364750468035098050801020874635489067952098848780803430036729909778516190820563581901232273546280702392313736441222183015067407923296986635053518372580001794151768402607729595907291424881308369398616207735115833172310250999204665166077571510834484292284238796544636441325782191623887610716679683388912134563643034680747415651959298719706482461374280830026466706269405965990590541369798079659110198864138836898917895511223970883250081958289020584392630080937651184748305361876206863678837274728308069392942208935609942381501264389320326737343798677274866567968911295237373159616543078330581533789652830764681387257344395730317748287400077013086878001703391515703475232787844225722400476248255649451353173978403784757252439823701150377759997593663782647439677255931182900375059109388488255082915911975616427283467142512860778724777364528864217987974640392252677479456823206213039927815516369520828731673037791545577837879146291309149260722404480361786408166925969176455131363128132697812615880157503743397023106854466779109430179552546386485135667238423490574505575064608376916323245056290460580142042942625492175601644117715709110925364169520993339279158367104024695641265891813709454513385810514676234088924832185083833775560077590617816766819693075121818219216903551967660882032181559567335732701551514405184334844630229490018300799838954163038398938468577204534318875158898524684576156096908311832480722083118101563472264218015047150606456804756684034411624314601002320026981461992643214365556579824024007623845641366468017855032012569265131750976016184829154099765155895361103809029399232063026350603416078607281098174336063213091344092483604855769816408010229516086985898141859492072531534293389192836490142652204184306793269473660788178817618838277945213225552842145105240588528585453718213430816440295489607275963986409231363997676427436621598875204663161237542233615182129263981649530242814505396838260299362113788043402671890732843698957869699705455225674606625123253544608713098251309391203872605383074828149528914391578405539253096732047640225572842126110814710903168837080610000343800966715803879556861538735481221652974529829210254644561530880358921217303980985306183084512225349480988049331581841533263115064807753174221300847493900696278648959822290246571637669256021828233319857371226545887337451136755158661692745353582266208142912732111335129395401177761443866158616728601680630479944579016398284019641284402293916652940017610835876582866220595031536278151573126472840419933290689940829014861785685091116059688472620644588243308901071782275677262622964710540024227923725549144666293522514225033262701265053959508324217904964105103082571397991158264715753753928793896273186865732305026266967812949591881490055491519184470005668835735811840544182992280889424319234443041909230446353433488990783100293191158921508420646519441900962178781976126800832550404548484624654353851193366524089901939847885119660716767558094536639823249915368308262923324843325564685878442969894617002847120988087288814994956414466496676078263888187849723984236654788710989632067843188503426201833542395186036636600907865165634587310118491378413776605765189703937655268238017511953450856181438151370342538742955794078041633477955639834617107195046488428178807034378794141333691560810476198282407228282085159585684264275917602124262536953472684336226901535312668753052156992659548194436593062402637442589973743090415927560699261548047742732669570162431182496119699593480715078060241106531102515721559197573765146355256339170940403623458478851377056009786054464571134022657313610040238063598899136710785766497243684694838119991078899281190110294756975490630568926695771691255459324489639773772037503249599883413143910627838298307775559244530599987723459096253790915950100652719160018214226090124979157330927786776868562931992860472551988652990319874380336386218649976633054326208719487422631292357848335415213654465008052318530457218134847978220691696445938919957720208262102233936532519306906844480313682391626959307019454192824300467920698416090213890263864846319356343578927887820569352692010505476233550896739954711733526665060663421922781247623377907039165903875267985204547919208336022552546142585283407975232449186248498809576070951178547835277460277591681111558543523648518878982680581531734099215607153512832243099273355659162058357889938729242452966636379843197502366829042635162875084991818947540590508005831218532155442920605817213975608214704545965393836436841486830676247786531446501557596072737917030974958328918415839452408023769404174741933579930336064060858635701402356334377885459293094955236527752996215344039367515222125030687983907996008811900602336700392977033287117012248880433576173414329878287207657884348312859692155806265184252279455642258615402386023198848305485896547294756043756521597444660503338368412578441776260825731277284467275192597800761683812932299515829356474599828474534464784701033471304861163444228371660826903999919660588143754371998373145723662119146984236482725734401677833441167565484326849806701988374086404236679886795548831891179688816883991068504384988683123935123027712426106709084332045582129901719835841518786591134191345308109985101580137584444209142611038215310836955039655095543544942610725207787516741790310568971718400509464155566415816163355862606952372408190780506425897994518856922207161607589974159423375628562060017266089224933717540952562540866468881556559211425397204608609425765114913149571183412085267347615730130403200789871917899564447777842136861374633410714510521720261860392419251346189547736592534341490190026265980028785651031111560811658284868548197998643332270600993692389973387243548770148082965345383784946629018564140557093132297587041511865439303718226137299743682103149468837471717856469480631912849872745937560903537583385123037254486370934061934496103402712483635897769920939601171532862122369669674674726394177264093296553520726640230728729078726957109900139309664706374231692731492731034835563393523284060922300504228071159370584963836299276863849357301093791414957893894473837108158747399601790979387184827759186207279450224633872713817573351604116618272951630041879157365719982248086460323910125934425778576449690453730302703789931943427578457350334089739379342720541293462235743048256586975135336074685841465114755014966224468694663041546934183110406991537909676494200247027594587235838283847918781149127280428043574078948018978178512280917829971616231671244001757954055304842976180152457143524097365650309074391182063956708590112951896647915133261191822449528931609047726783223983827561090176898678188005863397257906745568956634580555920487342718260802814745744128554629210798319862359212674001770651251326835713656085901922736086245441143898292380821424318176283342668361667896643353511916149820089746878275058653437678722524718128103321768935546202722330819534349396806097919445098571939986571561696395314561496229842114192774176895467679882218523658935757316940120820144330096831092061545611052185917971654389408895637723875759153848943473454396175856579401372513229775741194860129067633856054194136243484508846602454060708590835894990135506344965215326281201198836721400851942163803129606648987199952724882741255742468130401742570916652887578178943813543531636551007001834362967809979643954222656834079391020143149184334019706604167347695367961955326465916533026966695887126422161577945358611663907906944756997695073013896092454003420869522385013056905662446496567990949310867141676813480540645957706840884631457485479423191116479758216940803105491306426656151106352528207742790391288627856354378588444286329172104469691569332435513466092019550791989098607369351243056649219189836610776051606487756714512393794352199820602017926097649367131508824554470022359969715552592747934093216442794561910199577987308627039462804153985346730135004435547495095431850277143452594887144723299867343213410506320936286251329713628047059885114641841031332251864941755726414469048529212151307633912452388931298412661050959660046376772806746185405006617880656380007737017926468282684610889141014717360749496649949820443798456376466510899886412963663238823581191242558059054244695902960429448384073333194882400081091999489866218489149921010348721454438631721289137684951542453277899870194753946073856170920690992649984639991597811923562718716820933346681334166973991440015137733651530754089635197982015914919121037682467825225427129070836068901880823337508489079053109794947536114480839269281700118667446362964938229049627322879500357820369586863431767797126915706293323389741535127314886013281620230882657648445900709823099356037669815941297976838878564272783720641097157514193593455839946568572588434886227332304983990307985102745630201988346940948738589390558588826937825691338466379878159189538376223451974972841142925297144769028331239266221849833284103092607284728749868781091268894142934127723239127977316574432837219776131766010403107817169738283340593794950914560465909250768558285476583214535192028106098500876165137873287017888321467770049756782319808147679964475871767618674325701335767053307332331703821260743235414918105526462430175416597392569740586793753281967508967234039242223400305362550446581528839333762738501018205229140404825474181738643542436113240175082347126065306161147863419614772368947087776236920857294346173220321334571576745613899749351899531921057900496872149622531641778332394580008697173643658740070427953407263416306221048268031777549027180522147651458563222109366945227678454788620059819080615112473696143746184437786810463976716594767078522505863540188944905019091741643553870681766814017740289324390440876952059123298752166028595554107535587866329373186474975099373190507073231564872553551016558102930773727145962560296931665396553162490972388880633321673614233109338967024183960115247201898551794932727518248060070792458785694913274975502603427675618755163190118549043401297531242597467951998576306505886098792191447049407828515482404819175588441387634088723202322165363891428819017288822593302027906413760596365584123599182905939425588043438671553930586231161510355300554389494065336301543387403042765738969621386469289486106435614624843986587425868358695442401573637377889293913408873608593976993728560701359510224357805979368064836619799893518120094295993423600070327182250259639667963268491875450832557984503370173461692456770278563125657293744837044069280992816210956702672294023482451912125118482847150459201202629951141424360125164229896498179236311747328263264500323610491510852540962916859271987662065500255337134425458305353837996223626987532644516219549409393902757615067743586021153942351069737643464712423768928210709455789814754626680465971567473842824853292971310930210457010208252945406759214015181910021441738683091414409616785965946810195195622150463399989093166709583602782183240549330935731206397275941319431399338518099124380490968493802519478475891013895866205704740220537021169708871054532982453514530000564866912753513684299714364022273558413421784473684701679707073468087344084821953595846018643983942295648285720487412129939524005325647602380150688271149517673367279064348488615679668804211549396107988749908111210239024377657899807663827374030293451815663514657299291316944028313073133650259016591073783949971669355871882121615805088065427004978016365302841506877766149780978585780953376833465132507281275091054516233469530622200719465111067765513775680068882778435769125782462411369640984828371033969143674664119147322333134621605719184297173109821855574483896864520577062646178953991742590300803684564299352617708159952050168559269684725019989456913563760648842611619030988939256746741263190445342631168934495970196715664175523026899020995889997795607923874082487834902918162606578147664513130825138360860651903060419402207776200943645962391921590828677625030165629798784831934820660476162195950143182044136388164325099462683088267809981234453676972836849449931879596240724404282984880556546035164834375647809749888113045459357653131614123916898158743252365867706730505467768449553068880531710444169281404010829420143268501035754597482978063514952743392467036441489777670769968177928178923848469101244684141993937193412193971339984030925895831686618914688077802123950895222926404006492486184595394096218864526304277209724055037007580185981798373952397431995197949984226753736830231956290601089023836655785774430863069276675825148399065264282239954067987775250216228477789378120248035069245594880924871123274415799827340525534031118258846667330380209413119961645474161468718710675780458984706445680733901986527826768106695944110391279060673103583220801465528364320385245766064495140516165393165936825610022711512664261573315421164835995751678405589589407520322364152689197953470211939686210235121588632400273050083719128338543841718842150105931328247194989534139814831795825857295583248981193189067856270314058230662403044866308337819828729028842049606506873368114303138429416448691285593256439915509630558753832890449735313983870188103936997633057871011226784231393154707999187693397625178888455310426183678364424496471037851776716596516372205932434415016884048553741954636362430322412814988925894935802724812603113014505614528813398880783653650220523235025402777143194444323635607942368198402008047772248402251975650966491459959869936596437398337178580961668375768288121989798331994046366717742552304899981606089532446371428071836719308669932781867326108696167649537768482145670572656288899531448842213269262643030389686656779729041384902902801414870478415802923134798242188210323977925288532266364385895038283682493712466597368495833045110872922677788922766562985235055826741228072005168093668544882452119278976248088960012603778009547905615821487614988910392954931733346389797629347309933188039931152180353711358182926511837822629328181951525855062668580277975335144687765439969066577545435022287420765799168772225831943879373233122579405176662074437771256945515722521066993501212309152991314541588818362929065608577423413367964653346665292343580538740622869472255557211124703556484351477821584912718953128429405714312212218529150129280620476070102497716882909746866785501420701570868204605426046669127119971980558787443348917194405022220139981146897281674989820827703964679854221876679343188287649520711097173225971551196223283042861184322553280335070948675920360282932629051838496560985905185867146840437957949664385926617406666898534561112927408422214222650787177052500057865261924147986664710286007688343771206605379995308518985055868196713984045381071681618909974139350671706043920005763400711717838415758908259082367788715233032073911171974022291573598766358373376958652190721955118793427146374276571878863317954098788914430018376961033953666703397332501437875369505902308060039732834951660668005075481585312972295524225964029372472691109873684020642814198289255264954951401684356215072995152234882248364175743682310287120621711664297203025083000237038293051555465206175226259430069397662660135741841362453754428905669842024372550270065525934176496063332034264228447699940592657362866639092416938369073514441816175647933729828016881692381024800827150922989218460747787512100989718397477108608041843502395857130264420092698164661478910355903051679545075187005395231103918179273571676031912566030387519432733782545349674412638783995512308121881235132726856685335142143726602431161886958989859356998064307290889787783239170225368121222254789677297768503816496603710156423471940199501836956625793736638211991468761165431693700002056345167454440833853337978589718475015560641961991263827737413304451707155490000390360266854850616445779197917488461989693240852300422309902721135323629885358453549129694358558242208728425714214177308081043031683155942671611115662993073133528868140257796647707489912184995086328105738888346370169984273467799171925358560271694230046776919398633098953787463328313206922001419498588585030645797323171716498739618829181237783958158445270416672159931444227719699946293707656947483302078476440091858215818088501358772445688103477365109051823181254861432269850378865733195161893667980815280467479779517649000288530404294666348029887177473299730558974002209137250888111760720077053096341838671715289433345847171933797773917147662939677262544857699000428739231756914450004989097345267348383125986830639216191309817591175699497794024941803982213147949161673578087256360153447692521571202856016584586892143168853245818559192896627211715855223484404755510421026563232342681686088927928063122349991502758019327572717625196484385779531238782429084177505402428322740753324383317512243850356828875143974028314397853138109288604198518764663405243434923081551001219930534039045615480982635953976658458329447121059587652654384242417400857751213305928612254907747631336408978288695212711242464656388293731835641467980548138175587666908429125606124939509397541427741318358744912948906260434925254762174366897970073256244781766510103039249697708060230558327061643582288810056395973405701202980981851312905835241178932798436292394487892511311957866401788755015209523261636927649591877250861020659635505323312949370603565689082981871143897227613510363348922765636455545702615770425604157460929469224243020845550993248998438881860534194829202043373700758531946333320384814817267103313733851407060047776689128651426472622494996579885077038869313419256768584143715842910754862857529431533361083299394107671418297419924951215725904740389235926952864343285889416096671375242804236863522630691767806299457652647113664883421390728722253259846250878044673045544250579634910335629369240292752423508868758444229068183905435626987320889704915263299201790610847018367717152501002940598437539139381023641323096731135914671427615029336485179662316774829933689357957335039980749154967763609845723042464465042604726204419248104851105646336807072746907364815827656817283828433780460111706243279999099150852174460267839853440525122967734869302656048498996082027213534242299665856094529478696771239613714404699223732841549826884353186218505364264733211291011117130393381515504628320484055862870800610631931047868857408127541606512176324064958616606623748589067635705630223130596241644764098324506806984780271691827932568852442681521788063183172463387542461237242104871806244013811620807108345616254339827257286755751113552273776813745553501231911442615431424735739296272436088664777682528504940279099701699373857315639481691751454420999966812856089137663465964849024542915669065736116395757656954112647629870606513768082825549095020011747500531075207218537032082601617446529313710264259468377042309985737878185243450631756316345193869967538279792313941024501822025620284657392918714765071528940625326373835641039744604879187432780177427136494603126018458204507296419272105378879679096693069718071263655916620015309780340365375049124360355948610980398277618601314852870721328007375617759144269893468446987554254396755656942403054011366596873743346609045858127293248060354530227673335779658062576471107870608758171636178866764062554098733385065130934951392317784832524542562681295787991889221645082459673769114747664750843954167486396792051103407424010348862838751714611112274759753273522750415448313646448831391176890092923295986705093023373261872053702562058375063145608946936684959320108300926240661241500628798835600795345766929131721818230572108961599174339280526373150318051515711432786808369170341323908470833248173560683359224462563280185559025867170105164946156019081664658343268164392097585630920648045335007043343942912672062635770884112354117388246433623011207091463909169893342245255441473579655302955879583726540936314548741781464473013680492532209365430889344600390756241649238563533063671627551547706990816373749280356876879687445125338311266814734828074813107584184060940440793534155107373380970607751263821132670024261095971284359348920791781458347856473234316129225940632219923527177570846261963740301650627652146168690999802399712188910304711567859787292804166928886393892804047478234350888247617046418304537502367842676247030845357657353959561848950882859860215193758321955559661201487582507235016642623563602222563608931712004997940404070211627537719595075381083723565253184546087478939519934567971486976984054627939316848505440092323311176601319942631936310973126166857378700893330525044319553201274916028061101365906003708000018903711527217030848142435892115359131092498814642269654136471638284429635436394971119918078837010594445246331997807835125202142277358569114492519647755520259388051752498894110612376039106941292265367402395898561208561815993733637354665966773243880296932366357428313724007979598529199037889139569150425421182571045074422403796391071538733135232234076396338822892332562956465355291126343196263027791757128865404317167185124122426494881744130023090063406961445788439310685661613664516079050182723875943509076100533245457980811768165736270789485621697684787094953166251493884378714928799880723164113719426813239968382075363634747658706374952756243267273410739027327445214028806273107980300790427419130597150057042292562456238437108422074211695669991140732162742374527429767842116387833201397234906332289034694919935070192285039712989559131546652569176908976737312644274658900309700646608362629015414702934343188217670631111562687058854882683429323599873592040990613385698918063088486026351425689023696721640152390368920293542753432839855885364980956673236886656071249802558738908685894780308861057466585572455362178027007843388765960888554027095887817288934215206918632073773149236256420341743042769635112137710375455276764325452292184837556491873547273879741107056374325333842632424922434912388004601086651331080983568605950600102532229679079429038295883404644764438151761168943692110052671394485745238940948921315143774991881291522691714780951219361759907080754900515459817231533382178988581818165540079558212175785149426916065582399714307058280629060790038658677586315679335825379021420670546118545781771037228683229400587551516086669582728130677634005825278330423730525089876515384770942801100034556411928417791800605207121788208424357736329434533827133093382390096712162140752141873028452724708726086864767351321242916762357018713583681700531103918667008564446333238582087634750923471811095034258039824053142169091672462651341967376815366585587170829589667174122453079933455930040733877583883297462209697360757355985058393749341092226603276504140050524503090454826526896679530359642706567127416051112987269687466556266031026583737444573963734136931524055901049496734797620699524448591152422017951280128015978386819746918891129049958670103874176063487983618583796263808059986199722827189037935793195290909618702906258289798581762675427503714294240557560227984644005897789494011378217054227636227384386032971979864701678936898754103646273986133533097505847005470902354026350118316307231647092758779862548636206599463431226629537585185164189237812195265593907879472970640339883702395322062075007280752536883687989849683825681704564320832240774457722687762543547972885358905654601605808175641927856028720110691524081343035558120938025349192727120551177124544299998040018943417456086472607347788945556292028917861242160897766386112911157104256913737662573408805615568049082175116318895400344897063411638758893905489965434402377420122375682953650317007048414477033120897236889975261297960939023121055542394961944344098048870079721705486878860615829198125198884274892867484320284047278628593500104037547176351804556223765509724043198236701544975869120441827435879085438734901536601787126912743026696408964437425924014638400539217726699574396649860965959865434165824440982684097454974596521497513163146348446862410816875291944174236895856301604743102135522821566438643754131079612563256999233660843009389103909433715055703869270701906100578052749125559864078656703957204225513455012428568064287766118071882864350864241372784353321072860058677902260215573593168762734292588940841430428006557945148749859751224011685074720448664743799315830808389255925717421052798543171173976114682404765709109881714993875426184956575615587955047468003953392697553892823784843963898393793317316979562758797054341286418383352637947346190412121676376822033672228395884428974598316015832060590489462979007498884630348281051045062986032888846462653703353810864431740783729094683591535673812695270386373205640432951394199875954163560442484549836648385255570538238830229533053269651874982121830049977847256186575140217327904935735330264198847586002083961797054804244546694778747675962927264174980341553621958106737837834829685861315218288694829001256555102352510557008936067983780815509612983888462222811128426589554112586990695625467115973839960143911562724116500850483143770104270895376535186188556933424830247346961830493894354213339559317484060482255739960002700062026848536207309138250606349379796431165913451198174469291206442640799103791469486337784024471156272471135022222536068906354772175180932872796206617122090294898615247608639175209281466321437782001701665915545172374868176243176769100095343174443008117985256132972760152138459179365383455877982710114541960013859964077342473578438966192890239318638838633466384028664147260254749421759586407748837255636218813380339000838113546392804746026869643506517110120232134144786571678704609650616727980239599271674376618883493663614507003381173604920903523628755227068361249019700285722044972685352544239424768803853942306311467637909083475476034420386951273583944096835581055126368556080647804544987012852514629902987548791577269384463546314342368947825532215562920849617407099811352040447844844883815752407550746132648987498066950769854202108465689834272764622644721710978031207750431194819942954858847498069519883589079397562443196255465983454742933814370526416702751874106733431499492960516882796032378242953937274393147885688664319688171626068667819324287116244892129660590558470853072059270187788877560010828785027123985044217867019986323750399301480254478797451266960563504644330187588276500933890164445814720935642452827256651627251297715666514309683722602610039044416546194207588215068575876045498649525473581311562345972100532602646513453461402245540680021360879640140591328892634228609884553974234104065164476012833492189365613414862110891214490247117083245264733825490774798368239495824235950913716096596926782369962250117414500307189191792254413845127103365225471454565105915641946867964551323098886896324712255014308645728460196858378627817239197177848661785324297290850111759429805481156568981313266706656677090930305455874697055851860296101747638001982681631071098825878887693405679617649436341380561382432926258728973597603803120247435167859576075082807020896889925173147206377687356304930916733990870644225862768195130776340025834562224388004407201499264808827336297943322450895568083370630815343035425458354365040079098933872921657209740096582221920041356884734046200085553738041057099741151472960938621761920005809227923101065575735071254383738139348707227854197038480440682242650437011580549917628867399824409540604069288540506601122594458128034542112324146844960857930191396139116480526853862190257426910446152122452466807006664285445638910574878005126867090025426409922590867922136231551615372945081567737618952335665080738291714406739066061514822139664291891938021808992024676420827598864989105287344334283511194772496144477933824588416125083282780131988284651576483043998485023748609979895575641210157269316802104380332984784467339207705984720641881152479971715610817097222907267030663540853957276362065022391389121281236967324663736751730432488674785476711278093057561201147009365193729696376444331201321851158927037810958165425139576291769371453319811859314785438496774300434751947468407837404629745848400001652333142996328040042536455851504210405114819787626593380106112220450891665794623608584551325746108334720640070780837316942751995766880819655691292960086791300053873839402328525376305464977460282074708562216880626145859972635438574656459941004176674370577283901204582530352157232437954111567651703499906449395712703335359371981564501545977861115454974146921299219702003227503006434501915154907824050236562147418977572408495619104567073787632108431983664770047832686718918173392943835899770178536690747052798812099552535536111806204564757769702764472444486247260695509116257106492990906749629658614432259781547194258055583248520248097591037849304210491220521636878552753794580400587474593830850625020825563806807447355216454703097604645664306399385448639314710213337961432052875945698290527036099014857443863811461054037228027717738258345667583037886374207229453405182205345355865701599581609889490969787787012147056006854783717878473660172858654881948271594287115461525505447861803089342305045038246133971788509495366347071149258972932076913249130025743316141538737152422710556867769810818510144890971324893995424287616841792765401973370983163900170465903757552745864004829403156357114516775730461745048815991839983242496925232379606640720416837539137241474862715179167991500826276500969855370276557073435744933341551450620926615214800282568017642191347082392732955767518732861631968822836294359100005604908639122364052868253893428902628688782630901456840845118813919226106441021626421822613689095344722309477805939073890738665661718266587062421957633209244690294751694981829556522789313728088360165003573618273168536588763699534999157174785017600171242582150616071700559124178302058908036433619748236826185097162508099545005563192429316308214998163954669639529765357656829482228104834301074895769949352748691258570595600324034388261967182219902069727191953063568561603793201099548782710794831917232609141558803883009638406538327276010301717307543377257181609991772855091394291709886491900297224345835348547025485737823837289809615989918577564161343885080847266369860320085088810204707006855351711854579167034396016623976734969847665520550684804313232933712425078177174070793073838629421271887058443126291325677803954163633352936936207296451706322544165535781545404781713926422549014007918978831573329364675318484631582637336881072968249518700979642072330092492492811586438363566110144227760019476379656577532760376881890871539361988049406946298707482157660337837326555225747777213741329329762849878413551007898751950161601218699675319974604271092461055680783524996301067379506672397932166601595279615070415290392728741943637568091474036749564263034618149762115832127512406609647541440805090247757763590346876644707053012269126837897898255087799601568503805368451496225458975815253523654606502350243183944006544219546846559012257132931498332182033458903974229624033715430324218858500400067307498049958171000208739544726303253758978390956510854517321979494985663342815062427277396059096586661202181463737475796087527237365988199120988155562653115328259570040940744604739161826547400231307937769293681492497463575390358679935307517600866594290532314701971640647676446417320169564614318567589656746457689745816062663873691034439686765197920222346648263718318672448945654668679345583751381345458835568705732405926899781926875627548484013880685635882926198907687404553732494373447619844921176542397822991447035136665391458601561340871276433402927449610587271694257809890846804167467098796305348622902546244165850975722490439911408845724717448056319571514329330306058981610737041758529706113172901276992211195536141579304279971128008832511253569477719909173067059202392994650855605887396660689081161165999942716662847068442052568039808750364748618845388567107157996746746250735498941833877365510303292733348614565882450306063795266561726709079020590444353106583435494659782435908040745500823602029487676048711795380635716168611173632244608758303464483008947370118679625629091103548189504871200275740330572945039689051605440163321307053651145694953938497530563561111724661840674909692422785659701365225664766001223380366014552032164978688464697106462349403351213564935362098406074280902160863011987432891960001413897278030577678200064499392284341553916818325111202953287520664039708714441406176642732234749693720543405172777111817360437455188843282502813041634740363877239132953393313585395297155919724608665266492053222342055841493566763776743329155233984650525022726943937762560520031028845927269610000543348612321757404218354645790339899439736861138583003767111108920402010912037086055879676746807188364070783756555349782536002224042263528878602331018983902729184289208614407487354016794625546118258328404091710996335653147942660260227754614604513855572099636290400454250192362437803155987262221637438953256781987738729057861909823057914650828180259982457588991207505953843141206401039457045653767484965488019847355378290409954152698546203951337725865235813507191545369419869181416442708104755539031684891620088473505171853507547584484445836511795458414943321607380596560866798359167360852571320764591127138036276696144438253230794295407440208370463592207129281767703264552741453987852369311161843981619640318693447740888877013828720418519372479379343702270626010149981828405074458867564028434197835232088992674854412088874736838226099566048819016487116520143350413226640811579920040341354011881196828658945462216319698974555366829832226199295391215808949698400170240820875408344864353261521819208050700362556007451129221008035866386255707122849412006655380725482309462144199580650955102134642830134318035432884876433114184781429173686609635243929668652348427722414575775882897273566937916002312143468084410052452380218634666941194079244962303998570711740721104018615439178833330118263158848520146903704668775984990527295620835316118012613321512781928167256404431496264148797929034181716865077493783103750237362192287089471769302410396089878768088457418679710955925486467752645693336928092067092064632570743137696457327787495565395240513503639899213643577801709741235007622488759431128397489554229361810717221036693034372198651453480036073453449759747514551745011369288656799125880997381393884498625771588511793157926852393164996965582392161933009912409683769170643358419492774697917919461968592146601924158513840908260121437853109869844462402012860605799508194899368331163598828088755777539541331431436157088413284779479112094239142429021266975533614748623072978945648458775351815896131879490452016225811354420600530412987371349414407290136811334533986141700726481334302368652843022910291898016683309253154504877983292908042338424657555572942116782773201431141062878675229118893725549042779912124371032009409200168516803823950674105571562290796378315498864565938886640150823740011111348830402532023841702856924775852160072736673054206105782843360600866872199269949417341748568247357397547913894517893519391947133702222752929987669192367785908907273658010303862257970937632091536081495712148377867548776269810916671586830643977450276938388355262210659283812023689555883382641824583445848488825610622571243117314099403981295878243346834503802675599613084372696435687999001823848856689242359624480759617683765404274848430900019153271898090996029574121218679067994570668902844176328495427082943962691857098943465731875664732179994065149061670418377271618219730414460459784722973236560750285690880719964496574243339082112999486924647469782981792564197757966088484035587707209616554821123616866419434676713341426350448065493410291934002620180736608137873427035712863692736947544579008949935517640290322902847606403307730183421122164615271145645197246917611585651948934179461982825004319454934514886322888600053737309583151876421674366385459377923062083777513565800334599693023388004080765885976238391671224079556834065660598367322487607478736631230110389738693249534740256392117153578684031158373786956814250804866654040976022237651676669280677721580956027405732152912053253577422786155397234399762764814394874977078763854855119990885214370869938221398249517871948955060303912548026760945351704665982697754487726732978303920196661771258158744202690928459430893058287273029254838409163221288545727387295115664852464396568121677054857245710779938289393347839882073036620022247898288231753131393109916744967119248805733301842987900876626291079878709580313799546191898630546879099967574234078561664073847608473250506531948718868290709393198642716512431371618398807242641492480084545407149300276552809105939366084161929360900003238877095870866205284822620520708825205618508346920503947723671014709483442261504009505705908790301804877134902138669903435111537872075504853888718920967825022829523950896887239436595448863266050393111603207661293680777324155987080344688142442768065915012861646390033231785112876291951226240402276190010049860211162104688998412425608240429512387023531094623222628544309663667660524831793502257769973233288273857775090283524438750995415575585531718213596276107068810415120842682409687506515636613152724947023791376675686807141525759566991753155140291371603378344208298249670666187032561520617605071885239339134164109750694440435336418776806632581909239473197654396541752135409596868876118658211815599375177461966951548496399937330325818286896987439746937531420660592251642797452903770537385955137537852151557299174806534872333021154116015710480667585975815249342788454060989488191143592782537609174726231677829902020482796925529549434768698691682738309480672744158618866373730434333049508205542827863443158929549438806478646615143556474010888116647373093211991787640239344942472879578977228005631086974173929500207216343856143354040795296061999057620203399337429913465516552896013815233494082600018116574528201237084197958512204449688378527087199989279529774736423667012336298615653648576105831148761178052465992287358340585811057540212673969269015673913400207325482382609904588105379048113179262190221164838872938800032884779337914807790726660260543615821924259132745758313543138892010813249131049874702602305872844633013051728287316970071217597893378912122556605750960193578350979180637459426751925031547867791570122063813895384633157347880785028378940252326027228388361285440503350746106678110307218946530734018070172515768484367358136417561508598383271907845714625486692663837809165681504057460509946167622442710615960468856215972121509356839586788061710774420581090121732664666562744433356244959609815269843979395252171418489684368632429102150341998585159112287372162299134975061585144012581954019354114591174069778429314027285182272417981356861919469622694287054143247438462839610871982921471000295349952344668263258669603860994355849322920768071761472595940037603550427434182952143275807393006445817068924056459314141931874838466476031140757571017019315560991123020606373358825882077309237126688782074567954487192409058994950382624835084892784308204594842294715541741957748331419160055874048126671776910881643852247424157811381476957593577309267016971977162341602650264417864764990107739647452419756348343452418107883821668807980740463814723222134629587274843398181362236813486970510737588581911036898178998951718491585359313274367002780538235995706867613550306534303741853366210767328050659628226401149316685766533355095676382273531990622076914990924248277097210645918473068073891768408696601971997927593008151812569650319109380830926250143482002437554012992331980776871783166770447400354946535548175489698372353343991400354445616554347627336885055935277549063979425156619120924281273303180437879325339250434143525046917046917277315163905596349635601313450557126467935940104030469261549694403198501994264085814274834001845897554968476505942999169151011597307684885936714333825495522843049761612983078802080714385232128978332856960028252978726774730746744478051778281448114622726601968161885888481267148157706081556715493386934120499208233751426103837339235969098863491897470863021019096494824688953984227623552393990431727622309853911342501169870074097828434446200387691542871825967352017827095875984552462348550756836561580673118367947120550691131126018377019735800604467049701066082236213480346151118525649399096462404065134507986283527429907426756511041232606994449397088434188194331757392210987645366550609119840973307696777405665269234633418229720719988060128299487078997252452048261491503270866059961132072103592656152349074989331632609388492065357088454985798179609092061304603525264360365047258812849604878644018041058218999323534742008375873942640353967525294875319207371413241807773136552352982546800271956113170795316476128826998689830001887469999908470999322031108242812835754177412656035556219182799810841971904166887072737434143052819269537369004441061909149753890509417278420898420831771895354780603322695119320799713172220755981568204393131212237705437445090267511319489265115276251941299180212588925222282095025789378204162875778971976942065745529188121420019455474590484099346925329285132720771404388104051726682619879607744421285776636427629202971412546867425775383352444601974691109177100576448858023940895390133649555884536624181497542624995394427522318271325778756125216048776795794019610689243531126880642364615678016630282136887805237166276946617054386428053015731220864390254464656625322738013989579983175780987716878296573990080963353915940273291235308934827941118293800673036759464086726118614577584229575844083339055436851880865002567004862040298103738623701012576130153265246056539326066512304503127607415050846572653002015036455131758646618755591279897427428845994960038516246391642919366959105103726642201605602279333488675968579360612525519016397883033438619234127850247771227775064522747886740720398983031021102680623195097879968737858568924370370340937520617118800605191450423139258441017492895414966793308886842579243851004032845496108374241810453910025587778061195148167894664520910878411122054042932810825847211620629346351398445687800105885584729599251007735637228611114760427287164365762626990160390373619427857580975933855163906958785036453352716653523625578680237090179022894144311115779021700741204927413779629675615747820448773501211347976546673635831074314185282233512516601326346218894235265757975423143313916677527318571380122091714652232794245763573401501203019013085029047824564855656000732112779094860833640965722344856273763163798500682189224447440813338296222169405383651950428423881315995329676255799265874688667751984397509690073503799232088953235005093071809831962439658656762093020102430691222213681967548352356644098295687820442856530210174389414095666508018743065319266946102355279926760693024099965408587558513436520878040245531707088144694218946098399008271996993406827810198075166861317889293785189043774399344986439821220060366216428588290830236861966677606425211417456690840507545385371189796184003271219746133185301366901433796577655096235613272123253639943036248107921171775469856267327633452500678886623157867092639144901817314934360376678446792195958765843798809064102151896240621703975430776471626464515449228750467851208048847668666849165232823077242257178986718993167059674089796951796866015128324778167489574123432681725248071754978867560329344509344640573849301215541615075255819533034297613901096455573948632391768612700496141504307338467731507949449683543261504759639363386902719985115166154879003042414149953615015894440672808832502217203996815294992829592724191617940437348521471225131346438028216365620135796824445044384173217623951424127003137012507731371624332459112265828530985145063974921977748053466431636259052029423512296724555983456040451936336424080729858722806829788379934072372855071962576859515901191761970375994940687944682864934582863333882208445353729107892193058090717114935257180833886824637922671494964486940328667156281967722980730011752351871415092815255878367716378437214796098460777771794500217658089156018542953726379379564047768611142241408231454548939951708736398723639417016560679711315739078546259797550263597577378102027124126109787273542130978316340294409784295854950665903417589040918354376733647295818230504761057525203320947800161185091272556010096669454601120717385331167384665152106306368401185118102927994876228916926419940313758511916410616078693973854640953572513588566947743947099454980487046479881252615694234984119965605894951102922042450041544613841035607849541255791680647558461568487669699142547255327852723619250990770844411659035797866327718102322181763528966144883607677413500095166279964386367954178705142901468665932056555792136070364601100106166941786249271060726739318285031928773638907473769565513737339999462751496867628664219423390811125215558606310327286101004593350115925682472515261842391533655517961966800036776064514384523508325762230975552704356585696401980787876688701376565399827535919458469570136342116348475459108982489779297839258536963156454114810897013742598805006306147730383962783607380933870815065568763911758162186985087642333585240687321427895978958304465894945264429540326441798094583942628352573032754826596990507669437633194364611508818611005437607886751857484828383757826741042849083273736869071974054154633602334936106893094062433456098392155504202871425034776911594699365374003384325876133521124672226399756184135508312167196366572257306059332038330171966108482311681136724359180777553374481285108622514585815985049334908077324854360228072325007390716945118436624699042255259975108877502281016861753211250141287095000129088279020865901204545297450484545942868645471062122669792207221837619547020282526621076951116245354738846925543016484747926356235221760259001531774791497454157874145861120448422888087116255591753983381305135671369152865145891156360910547372443884521754596731618968363447409992405859746552310094496918961009065733145253926637956542418426034805194982895036309583482812107109659410418489916833755320066665610385702864565270787197983890369594855176091023322158304387442199579211626090361047572548857854407930830800148287957679693888906094970322227291386182234477936432980694314017500726950774390089672646478573142428995665014185028571207986249095057177911437112060929384853493273489440101666302014414509717908679331325621141013345464015751081477567038819704275290892763327258224005166122381470193608650543147833178186505504064344607169199243914843632189753890517095492167581626319901466793525456200938344468471805507175296840352287627741528055325449450787332548644612880696144761680235310690806913179959071122210330458291367185862833441323276522776440819258698021977165175897726005546310213850972166148073688082411797582145119282482499327917511935318743706493063381635764007101155365525968214276423346481007629846067778131115682430788369316918279575853207948955535314335534238610675438438782024763966258534729311448062382673731573026103768007742488068526687246853572022355116766954309293057069997151154879333797783315638249466247893053262355482014453221026719627165509917837226068819324580681858134280444150897560920803361078706888291544369734452783260008769808143735230839356264944288133892362033310523430139741550003926574506720530812212069838175310198557308161404080076209764408766590099265895861519580483043929901522999626775348439413174346944174357504402332588426421093878530852311833277954558482857693901660023988794223490797630239259301394678216626378198084602843457236450318589248157878752832910455454588114473592938515471439323951155674987495427060928119300180161240347218062936592447975233013727036622594977451360898868323443943976421748998271944491442503803681205901527837477681449192264669591177852053820397827527629710821801297159533339222333468715910365458364042251828391135981274787655601056896481547820272444628042446389591200390059673634346106270078439110423023654054077786642913000325038500865050934767753244792694572963092316570424673340703677871274772559932830254922775022924612378603741497963044508940272376947265908514481744037843315132846051768181990507732653653308868102758400515822658548029605155141344883743658264946299375316169305327434819821503778163554591965755368740132564886891013017520425662221663948749906343019318197264190496890000403237190913901009659412371971907074028792452701389221245842123346284798132090047395638669973965407782300070446272013157407599570562656336203507560232796012099057159993891449551217104236018592694719806456024066698308410848671056458729724526929772113846132034500889005802863510958396255007582036942229058381798684864465349269766195825865975854650469367713972479038953423054329199317862577313608504178549333408761915506737284376165760296578372150198220717273423354417306565747467362528746145368532525697575200653154784324658020077628111885973920284372264243434839917913305798751033222307905229905178532160714693299979829697467433214375659749324216290741906964797100917339615513058763088768924714896905521155156643942191940717788355442176922056430201983883861586551913833740875827522590804335916301981001291161219130463564349012872404143138179540108837650650604564948866638757208305750683207781903188090841131911108542634687210980144468084766091477993975282342545786915578154150605793510868402303282546157519856656506613981656871018272782543381383751233651388631650679616748797993722442108229994538354081728042677606205607205310956334651863397956312356535823247775045075939353679721712826156371062574484076813475781640846063976802143347238857319093966125946415382940856694937986361336539521531094743841126691395765977148013105115909511029869458114692176480706780329944871077237840973046776713738024635214976639480831268480859767147525486129190526059869760353331782153333027601372580101277348670129692086543864910724903266452891890539838669909560288430447371811609535427528986397183929036180528924731504186576429030961037360085211200889203449937141797073293482422953551004608997772804943595972601388750150554042402112632773340466790477349902011591045143871112874574993289622380033275010693725447549857318781877851065283409158698859245290321381928660277792002649203229443465625800763534707728960851082432935878613269194713642374542488315325168461328812758087704203024100221405724187690982239799792903264932035078552538229472403464180210819918630666388279486108721092417029532068148301450020800870004930476487060366874452274458937730037665549655645611522211866717789946813780444862741621860901728133837091843881532555534487313679983145198628468653379738204098110435653765061312558997445958918041107733204709605791983133905923877847604702978651858762440331866523371271958247689026687975502027673976174224910442020004059712954686847593530365953251011660011685939137338135720757559814591599900770566871871748272585641110200020122530654286060750221258780149741415425873025830911527591671222282388555072060716631442015372989801892853853087469570463102928453503665390257563300654618550344600992649686652411156812586185747195119935730561170395556461566699956669123107258913320336767529226937908583622557319631669127892540004997349445287006731484711255902152864418279310577197964234964997255282109726806095062596167326704193041449912950279618262939422504021191386646992169881901448259151697264175528533709322609144904636327718085641570816211507237987007095420813985817914546515906877351852137529732957660285546011984381028171860186833846139091590557714529895350334553760542835855560726925262541580217045242130260060751256876268169331615141221755364971928120579228257060976068342873039992636290199847586628095836048131057867633343456827791459446365508257275549199363860828294953751304273095567713768606448878464527669482532503933642807245256896109607855638382309784174105083708047811646943709309253748029581376000141342595729979765830698919994337927838731480657687881332627333708037384446969633032373953143207378052678404168722155659760851649734406078764746657291439325412198845037847341878493585569583363314165735997131069710071967782046971187834127500548576660769234440012068024347698081867041328727298512081940266376591388040322431001035033315231793550672300227538622635143010105653721344655694615189786985728676140729841979867318467887432499849055301484749414970113326948231420334226015800355640896043780709542404379446235352483261838715414919995051484938045455997856048480973407331201600357224065337493147413068241641521469805505720266173186368123123147220979979622807151444425694826448453731492039300252267188975550689442087421512751158230742146019660357180762279959255167756268422069433990724055042385181158512600836723086502077703716621812379559437641923212273702582964119035082258843667942199767441080142110457026002332588681663412795849619889354246276111943824678325422126288857778197899244338491943536327932247798537686103283281270592217471160372322740340729224045857646962176676403990072448448499687140709110714760855279865683668551817072929053766303975045926192230455870602668288642821961338087934522007800691693438786341238457683389008223851376875728032740476416080531022023809311015859446939249853272662263048256761041100878432382039704008720581109277550951571048994712518889070381249538389917312222570424577195108996682597100809495377355231758399166994928464889672119925005384076728047890792735556276858572972500341082086052141130568199409244156090846422762684164132510035398157070712321413274311141852990053818266683693610789382759865438357078278041751554515183891296081881521929904986016533690303664027218436984612833318504059856031946792321910967766530653451654097826149255111426930389614759695480839822871303211483601639494689020263039466446944164605683838239577038445590017065729015913426620535903411497965812070952617015387567097936450427413457233413485878291342744118356130814240672894111786673659018620270140939212408585004616473026243236648558565561751421202168782552114086658625838582532520714988076675560655561627718108622403764794210949620940773547044286770680756437368669612549864603007509140687107758162109588513845471092577774357693561110490662709683299620274435527329091027279207144775963033733698061502588262653212693121844746090911530022019806788342908117550681353159910607590407704701962206499517698753645185160286027308593424120059321256401809418127146187504174435925737595857003127910427451305465991569603820988500730549136244494878120509297228409979170109538647022441879221098854064218863031578908615376408353825416397205793888748118762706032074563937072651079076419406612010420478174076931515168359258559528790059433384162683975695359604903828939992591991209852330645111739467436752846454498167509648334851798463602319877995293228622552266899299856072828958965130436465012393264830776713291122436383929794740189796749494788690600552898442807291476590287998278511795913017787294635501449487448486571169207836903823041225152352207581313026033202714402526082624612550142484099542095413697622743591301281115321247195657171033866672662601040833239190574992336722737495281417191199592724427510158845286431055459769374624267955287306913533303514319804984299748872474228314445600422035007893505330276178549608163525088589779346305106745358529084863943746538500159491994099320543020421689591559632304776027587308798314884869054827824045282355668473261800522840504159624935160963214525910709823078800219808056971339129428611385021500588192218338020971298061152411908976562790381877707230595200113310523882621678759431476929528996021348594796678920517546041690367491262130321981240126644902894458734266523030803619472758067603468763593810852965688298657778262892843141954612790144671999469034388588015033654544525577862695534731556123433621301212357117305385269320138145916464022575562287246860246877835813237352331971398547188065776189005754273118677467027822275017843556783241085800779245592065334064926528513786190605790031269447355878998591618490989565700564439546430177839725780373610001673875954218586288063905352499749289856557252984875661719355607440916078325815427499183915885906620311021619528066558870624367712429840781338442435724475284257333756005555939185358647120348490184476212151511708539744588383120356040803955059333438167676301830400757758057100574820070567776646744548097615213816923162353230255687054616248816858878948502283730212107480516825201630317089280721001929019092687002932593140744842922326842428178337435351983449269209941295139413520505988788979934709898497830309456732122311371945894666934276217076992951855206140869498540266187034732314236183151621133005765181785193869918275745745806778198337934333001721108913624160794881794988872209231623027657428090186102130313805270452074322427429034027655840461254243089340216278322475175179208017496467012828532436977206344106818122191802174195873565530936403220901370102787129212856667725148828858046459415926019687718095492857517893377273584156403899259060562754070957894559145300571703411007212463385157252018666219593514275332666839050387910255476428794322806529507830486957747539614032355707062829266930954365888616140003558360855118849288688034701921644275678034557675133008508102270775032992324113360837634803191268686756839956181229676508391224208521361387075456768772237477550498780954909762990799336851109261295967250794782485360479134175410066245304891243292008752769315071591395378061434673871338374041636689794931079375725706927695106945252884910528589551274683137937926104109334792586548426652780595040734590904640060324380024852609212040885317784083462783199013489285041918303943533669197163924414846265081199216628653028838228827951428184425727055159682261646785810793439637290688010166921144727582633284417730568635050570177917681325067973759763790575610562851751521630120314860657540159562772897542147416832919093135215589131600177087629542975799265883744393310795121875702994724674785703197958753398774779099294195113703778807215412101559381797113985402795557803242723714341143285594022349052249987806977204509090024692806170701931796377660568574616062308734216623633076273090640866342328728343192157363854942011933690881556262061399757555996034041701419038305348476611613481266239057062952257508810148902198869045875176907222367069269037478053723646668447902733751368760357997360771172025561464395869115818085574411710604332296061106606995050194439973765752792924200012303297256113090945259120830483310543441281552179596952097924641114553729821357215963352687033652771420679264817280113041575346901237132742973893209217403433422233631956265423316429699095987017385519190535491314743761758985722765124293832351461361266541680909292155296221342884437762997087889522642119985346621860647387783462578261308864241596241633135581022494642138625482113544830128147760749861410999045270328180044061408178778612087785665244525357477352565503752887288941202138761884414661397782523172505745144014415061139962828836270188561125621321298659267638909546546966395236076135459684526598163479136063606239643161983410893781100984490542868288916437856042570757792497607087191218892656262879797948980792427819002750158125695185064222830995334119716204444590805790691719135619160662163575199730981006336003648550253446414193714848191969485293418403601169808268375354339775739156309494939621397187760842629670073686850922114313059697079961117539374300386338789398390487025317781502344404676825120261796899769768401529597165632026161606930812725630293185001332569153354558608059831892828396706208985598899412239795392021742459244383317039875748481245528971103110154512914841370335994862115844638740988407322634130571510204299689635588243118779731557401855131472967404748028293191115769545145503141380199834682261334345932301539685034803276705935584038468171062205792248501768179773057682537764814234679785528144381217326844994605396038080930337097642681809508688194918982977561537858638432231912675085057066764505708644104838992176910949946341526134305015669840228761104340772624431297998654553259022676936670437512183267965834225992073528699559368337354715125207738493218033257881452704986739955438487798847272571765887947185880915821886483670302875093249547481602842332970926353920969698452388455952222685585656887872806462094473984137831552920783980387600546958519778229239545422447667421686086724067710154606897412247451067488795708779644425679167187587017215672209383798399045739350789577021654856427360826968417810812133617432544120978160261458247887736150978341570189333689594392402005467487690135937831016385811454342388637856060612194934493187530355565620229566201870498388721694080054690021648904823682041074951018056187446209325895455027332561830631474732856336507988957861560637101526596172237425778012018575253124328059711574753806878017946742373552051173785815976636260112924296164465190185634226696863990032406568323310997203664636600853635105992270268224257650491745856578438099620966521530618512289989312452312365173769512281990665765913246720368239517879392945776457204685582089922235758512278607586024170824924241103513235297609421551424962434521321999192756074440357999730937674734640658308537860000760108945091150484331012516452225285368939516487944899197518482221089212588338859991495766953830485410627449049150435551836355690491036905977933744463110956972710179667811407932107579469352004905880768226505562904952182433074540896662455207131529709252746932380568057721973006390076365012144816699551095771543648242471091981827686372869980945161427542632203873760001130589168155845245537168209661301574009542440476854191630351442834527416905289189893626447577866298216963643393189658222128741550130567676840019879803643826837256031063586814980142227388206924502261316431995763531584748849203366151950717569962982093377741371906782546618269698078534384380297841013185466711459600292688320843282928746748143064369733514396126768847987291389341083155568000504563524026024611775760624983411275355941397969215940442245762204986356163463484580298193886441240061220659922162039883931322195734053195823004118432336519386500256557049391277527126678000148454608948570560277209000731120665790759060220326584493788013208160610185723890311554059945960106063697135841341938077792360807570948197395401620808744735150564162567924524932392468650007229080744716460686047928526431006032372744558997021278335940138985928664842691728318985435779136983052995180637865840461053077207329376831595936552535068432113351781741502081053592250618496248914732280303718391969480097589739293178311430852537561181172822354601125105787964821356046475932155737739367487441842889625431232778991200274457335754891620543960789122743314401820949557271001725973598985790775110040036634257604445479445662682913573399814515673947209540635129062347204517744749897944550485046671922326653548995058400214618572297571686222369514691393763075883063486671495523825196603339179324690455540651957410666133032767810622798063079460208224491360870520407762848585166641467317613111928169860606489475586169624133946928953470151412547701321632199297383906836613564573298537446538355840149174695174938323234886175356101260184441024901887966213887713855695680474466878714042216877700752311021848858990806129044621572301935453767469960829875540277484041477928821337079157679643780181183200720629004119335208450050024946310096836534714703788874324291695926118084030925101390427600657311896252255151062383264196303617019116893612663596675376062715901825917891708893397825206561746691839180366654434813541195702320223647562554364257915788417901439695862795884871417492468622977237513451239893109436634834006529591567602142695655594290148661071277972801354024657944754312141005919991540745102584481434431082643119782392419049832560874541149478162522370741610707372444272923423245417046407110394197966415876089631577540116016994120596860286558735422049152955648824345322477938177746112904425365030521369823856647472627928471204510204377695036136173998434382585539271372335351533106349084029576897670583576265183266331740873493949915236394252759625247001545466393858753175734423816585948802739001881311206927959548574294469526766654388261365114658342391669994897231458575490286895050683665653707390828725207808404142194352864738350064588271061973826150678559129471721528731173703870795965849846921988210355454955122662754924207284675537830170244755679353326760858694430711178703703299918618232663669964867864581098357460899949495340069068254879232866061368163913535996376493866848199562781309494599619159560995781112401086964604470330092480682599933174772610353228828754433502811235143510150786767918395750430095533848392362435093059653881917478562360256150376530901056671988220939427857577234368128045077025590247156926339726466388193437845445200965723866549217484004603329242774926120184735254417659419333587639038457054049914092781229134758379731668785641893158221075785903932507052222756100403984519521420608265981992811222192265032013937188483001181954150579381104173758329423831598308102810903502104130518816570867059763850843029611355811898679329006626285891840709568694788907019399009737467780403359661778052992902086608866798614438158472553895309107750407564922942150773097612804580915605880202922452582442019501122648764056844287471227709917089925711305090240233156788461671428890540632647185662110629619088234165369806937789855378431308142879735406853464531793065382946547429514797537742593331540920408982685221488296128493383961431451456805576863251105281590577023666090733271310281694435904745459610783963003785243559004175808122105023047836716821629100855529449911931155845520380345750914890038952856704776090161413377627807128707480027162554685561268426629570722271157166782698227535882090980339306515483000696470647161836877177836580986809966303752872537098694926383764722128166967786040254004060411412328299238732823936677252055945857842666996534098926271623279292385003064915740101060754433808144406558668949150599789712696354113801675768146280588180656823950471520704500344630091368721735037698476531498295473860655461618571713534215758932461106477880049875829246081554317349099899149707535899838924689327467155511514504332974599264303899281351337319091408204131731882681689210520601584598208003588050944127748237179900843844261874236048619438114402790500183986263629589055608520424847287132001788255455288926801879037104088198641717998682818746270517632396833679127472338308678190981213331126965765290533554302479315531559322831167072028564627284189167387653877475865040555861797214629438252667954597035485898604899005374330877572717160086144382134198642478709306371020390869708570652693058965514208176530504783701967470517544512100792844158485821920112360702886980005281329508412791593267048443815628985751061673191056654060179143575427699252794123022650794034843660538632211060479672029867132074912889466250048806554688409608208932128828095403790281048158023743508055495984972783947044890677630201023427869472479866995765871652160637174456036667956369235887940011585630989744695108290125969976606912497064565810727437270373049985105730087140127904807464562610565679590647098975439091680144853879651945080426293843796231529669793097822794405827743149896738374868939587972752471136335928505227533489887566698559043947387989477388611530506893358501379628195497425589261726318166718524888341112277210728701610680620245333418333425573617234041418974977935022773797221823687513762424208568830035525307954676173409846271751098150589093612381526024308180046430376883622253680636107420704217792645795293211112719959082723635906586480253105766129317770160164199108780369863612536110836061733213338512837245675999322763972586802920095137430648762011958012164070203502476579026679970742779018545087749153234672745077393979387196708807219606023585959787438938909658877603489697606594831748920724087538291814542815530318290935647248138014475600673153054759960782951670317945718996884426608397277739692414247190029213723860322672625576145314569491917289467728324369767499031581633879104449891165968870245828441836952759296490011281552081390423193562235891841146733250306477535129732923681699579606529380190229942187686373597238802455008297101548943304308348460896367492140588301077518841236660838680402132683547997148328032258803084313982709932291985956879199151883436087541618750782877135535315356483413862300166344169212213581942829833008296577814690334606688139820593321665112213064502409317148846250875155896588474818826499633611776403081553688668034378760571308699250187568267753032538024231156288430404545366305483130372012295977574909474475652539226940355829991242896644943702947221542440477294687646349816710277327494918183834444718409385974752440285539306457743453287547402283344242706122217135891820178935689093807833890353531992510922656501495404263163642658086134279152619818303271124120453290469654220547942220630532604549930978478258300038964225613296884127074726338066900677314880213054475315899633479404271922140497645585993513349851981081540441159343245555654204287001821446480207695271073796108753583369392570175407265880530436109832473952791658840998540944394034311343045877609114475996188514097615694175011330308722952209072711667644837305404548221175101788838738537762272545401633771206983968295965834553800095488340556982134346255036558187301255952412358486315904587059772979719431217617868326176140186507323575600733418720162972607037137499870825124757591743530934926162907608105750583929357534615924224712537870659796211568182355352812884938144588297855312975246531213589575238609989812557496165557742895438084713666727321888542841621901800039439548667686097131428165037516293070667336746527770731981567325425209904128109588101048440582093476789414873349641874508246350378638480997120825090997072480311954013972080092890465138023032628366954931545088104075798845456534356388459934790686046588650050095764291742409275390144791378260845696019276835498722546827093798026651274160059302342327120438689495990247137273706416698849843104046313039551389817568468954776768420551213595501053028422889029047854440409876093906677084477686291333145023368447885746176014400449321265980637534357852974447173375503196547277433665651892259673698083821115017811692811153107884502077408381011827134408474798489815573296222480183006624535681497134133909314560235784451815319291292728259186238634371394425769981126528060863091166617061250217204633543238410697188243051253045339345471108710966814672795823662047515122924953912048916055233737225399380548966442538422245018183427874135774925025771005537028297973899247591306731425364213709346129536216437662286193922765714372686678535330093382895263605342353696761429832669462175841075783180273705526720477245607964682171017595800810310081952659348188591891815796094592532101359846960717935204775965935084278123084786720173101064995280467905235020041177205882694685857803448390317030257200871615639305587127340222968191888193182539706572476471050053957864224930789827525105093695376721688172129637169063153322612153118452664503446175403760879956433288439423078420178437585911404078510568433045424463640835308634576749758221573495414569224529245107242814040776164722975252199851961981770663804548538496154997185251992734889737053932001970621420582739987692931972461659987418922143910279953512166052050913236910981259731445229237343875436699614798679860715425770930299674907162893583070317548313201015465615863318466205056753285848836627546335750515156777134205663534956266980679568725026381508495269893723681401366720672241548059369860076226736870069874931518969904630356716010592327297639804170614101954766745555783486861717631528026434951571201373391362679613335049341029758240950398585703663033262315262789217024865258739787303446603793330554456684613728104697333189668369262434666376396998477542482974208535969321382749972359054833669357998772629078567240566726620931131694479498581048954628028926224383748081970148402017908319887507210026273677285630145537161125256830554203088750442651181685710939724811063802161160314948543179998019095634847880540936690938490785756571545591201994431978320253621762641751263884801218752667146828362362184857066118245137069645855543371874963730599721192413517531087965154623314190261924183639568443973003071179417876266647932460466299693327927192540093160640187670053804564400306908983089203131643463058916239510401232502710725188838694747289059439167677725234548997452564207359687414196363969931013797272950361256409544772549403471669877598936520198610031894424044751908086943520130229226318457866675116217804748362359175549276732023900492873606284457885913311637020607370889790415518782112797773454252443248064780147347201558773813596413071584790125059916234296089393497576909538477430857561209756242518122609097494702627475454462503800040212995729077415949653842481724902920274274205566325083153649603880200990394671990521200771630879635506594504418273730921579003326083961920097554513198875736118113739727637683247830377319779374232554017690194609152759863878517654333019902215965743718798723712848888709727959401019665554994162807370048180631321166195117905125585443832543269949730489376492250239986822297423089561110121365612617157095464878608316067561863199516460308956932976529399781830100389853999060298007456631941491804963062438922173116401922836940212475194825554714365479169021013910692196014048923343839090871182692045508811443898906151401877492449932337352075714657547881363852482743774673494609445436797871902173273817281248347206894386800731404329014429215669303942817654264160266452267148707308514978682650350867067790818339164551022796462442371153033977088550894333373617160360878442949081723226037124241413898371278833096141475476410568945424628155469658196265497354993903834656672464762188390683527459990306892397395141045426161617808512975837858934865144023745329919734616241382820333053898902207898568484894560734412283717257584036226984983052021783891669650883347323728373382409830209929426881372110252256375367927620795298025032416632190204738628817916299784092286243085122099972104911716184726970488472025574300985102708645722029425251778266161700798051182618239410725809553236536998344036588614398854057817946092829249392574827165937687954256188287585482434791940137406237879937585939752676147343141712668946582216625195004383193367490103753508689638533009228844032704077553170260832251871172382314806736780448281559008954701108068577394339633703629316685133191490309628678291875067361351073168535583409618829367422389195136091727903542506455144769568602878258234191582387162946228696374299123178649429838539277701843444465862973910518616032957166273042816459326223514676950804210674488270428813126951796587304176656721753103160218473920127874891376253548079324204753846753321436251934276727153921957183216307783594210898630211837681899503345101343567269832245954391708397784296916919625463207850249106350932739829554848781251077135048244428248307023078035613858917627489212361718557640336419495929579790988224401001790471094957242193902325660595055657421207833733108264740218815568964935888333166105176872261480840970827265838197628238511690162804169577811648575163602892917321416462182417469103376839019989097721084297557245331883730060222956831795633520042682140266634283933925071697779588622664734865177251975020715365742934003270116439903602987737621679639581863613432944189472398627954822814331772770755272837358296762318856710094836666320772062439620610082857704601015915455189545618443793651517026412787424890975030725341484419985675993774824494568918568160424910198744321811660779303959818220482148928286850806983218455816721093474856143670540610912411313257404449271565411306109530913725596164611133327586053935322098145990567103483054925914441998264858227914751815085416467475693187711721714215139210421258512702991926021596349705045209332631378039822007368161423312029175307777918144988933376052788048784403768235949825231510629139981867181363203336289295912984520945123466180642575743746062303031775446873854671839860723729497828802988464109203978803258394803959126197919211056821840026376879271274637534922707835249245091604214903213703958863151123668807141362978212764040317917107574287331210528462873474328935584176915774275421180140519166549723700006455212640319357029791150789180603980184668470049436601043725142967148615394177620103920772416335236222868057968598921623921117607800149609361370597969719946409386701545632366707510130262552399604402135450285645923517539998333603720388104235641184928409923331828739242797882756660005413295543840926855635031224004559882075473296286553636936599471417256658460105662731289300233635646574777766669759907074350667147005776704058301292885824025053304156155694289400683792499868191362534495147799816590653307132447877176440868353992771123334068237301960165220790363560165337302099337977911857989731554622389463220664373812784886982726703496772566947886194962513247412740598758293783816300864415819520591783524378753071302745875587772395577543433385358851076965717761652431368211291978692530858338843870327369040152643476002717974527720358893294988694143179300995887905912939986106463141126957892593251345483235593261727328536684013563285150591621354094305597997352777924961157529657117560406387358536095500293433776390426287345642271400477367819748382050188281607210715498626837473701778380335292640359052458684562428617256563428703705483009601197483493942349994805445707978786721425273217838470325100457592217629659171408616766661725710608642755055415493941419376349568065275059812176785314254435113374278293597694721459731509872057511821985166121155237771319761551548508930309354436170104395564815269053528255662121385781198912507396547744575425491339954481454019543451201871792535451301677195571953748839086277862764659027679181613715221015627563717485930842240724143742911505863738997893339513475371774940405654445021389355031859021143425152273394879686384700359477081675880901956351020270260628480965066226912104183016125216427414166600930532729485414574061255113178600411488041544491326676656305927864758280472682583485670051929164040729147062413251490738539594294821013457533090797679787155822397049108006108241326749773627308634489546141416520786219693621027222226697931995427556967309475752498790706055018492652799266553553628972484093428689504787076135794606364995558152241383860971169711424394344734219884252187475271601136169597921132717791307528483798647939342570623938069838148324711948990522404215355149744291293938980828138231203526979211490483150884507499662710492409480602551158273435993286620985147004434799729137300103012581545144770144950805229970687286363857724972537283030298981719044140647112276148546931246148097266756828718457282879056182286055684051198513338596815051089888254626329680880445856037459843474677964517445850325251012112082781419694264347446875848685555880318424035045646685441045244595213468672648269711981766026092140475597197505833054781166187413748419728371591328876079765755676895602512530892376180442059921468877616235029064888492746926220951708785195422611613283459078205655033395675848740834092800140689758031312550922371421789482695198708474954329157715196512057988689259001805706074940116946292414262387563792706786584809716160571563268497527239394294964285734726517792787565798508379483602048301453460691168482272141177532083905583978357766325675898787244206237162794628331121024553957720674311124352393606517204676412422782251527804704398311172547281157003232862763814840418667754329660100085456544591166675947602957137215834324665512863881243333520080649895053999734989340173583320443934653628881780768049008256802126075224488698509628875021004330595839216783225964640762186859083310044724509658781361664384908246497313010502576998328294419648494959191717442728539293794533269946205711435524238283673144274443733697080607746245007752978689665619795969131611688235545651900073825980042689911243916523881267535198404135008906530887887891019365300951902990332054963504600405350381544659605441112025963648614189772858856956766707146176858206565082826843009587697240102816458450797609245694979820499264737601131410998976966322823942070191432041311723752556829679945856284288100283742693883230415993798045604842810760908086105137254157321677778086690958260972684697189204925535533726444543042340803279732778020872670601010835812482244836570140437266246760233924891696449296706776475080403959690770932521752672587981736836119751452516594243880575625969988290621873350919590097360063719618082362741069704973639372361710418112525910361250465856191353324615850146691746971481870602052673557090404408913180774066525713813232315469661913364441424232277508948534424801022585611891177015502665198005522117580524513139648607778416470948490872118393903635631964140719040676181904958396433009492926922423956475516857485555688315118571672874151244005073668307552387242750380129045600246564517027140699194400989440920035436313794120554035342176433885278432392892860239324433950057444174128827468143819627009782807970674306604143241728336440653066044346207590607828220758516766543707540145992006494816273529016943771652898747780271489522255226359732069711920031620329538868454995583468227959186216340161969619458762801212583497394303200679862864267233179373782212869869352892184652924397182805842543409930839461311120751887286267445602398008887647657177978603476268952349685945570994573682416388922930419616180608978750707068496929601217535274142363213328838514086328407887930893067474213882997857612237011028391755580812661821856978402532961714528726092509260245708403402652903812028759012792935032353589716968847805417019948592905245738616772248875815581472556337368150586424865353253509144899217879301171784107228837856253809593358064520991018678376251367077594716072790218327575852561915504206977281889104809808030185222677403001510787116350372682593830344009268177333445142707518271962935377327385697749742288105216953595302876922012194936329140306209276853972635892880927564487029605123942368931394733455290539346957993912759961380875151025207764047483741239260929667055362377419555096659965285394454727395197162997300961067072204820626843304606747952686155326917011845433631825391743608749014344494230946707727696879583646757867164094977046320598994660655042690044010075115337545347522204050435422080825145226994561008269817280126405565568628144992600512696939967981512932368240967528858065846964613061321708144748797502136208382210473102958998590726171635290788003585563271089722399130356526600902335511400696206458794634576721822201358604819072830811080371248181877554162976798997588769792891906742397725451942079893696482653204385654884684901280745932477201385455881984803389382295536885998244286791373939717418772754956983128388570344754580081921383588291784787402740784988646371845278230674094993374876599599655618712402039733096049764623298176074871805737037085794714556826052929145945445459829444092377494755732986941864604020676143187470821284198267937293239393557022593342008560033657239957526975181309894961944428618844993687679114979911418386931760559368460376817826256005187579676323375691052248984740087642048811532625653097275723084307011287448870605759460005455345940807390840048450248259692432360733225565359956346796453344552142495133944249681883380325605517409438592022155740786181079584145485233269646471345472553993276038650008808227625235121889730961749678841856704390441285818267681144908833727761114387631638820629213449681237261245208191885276705837479950002195131199313125064852557587527717259061789688521745439534797828646137762729583399703452652974813190850495951426506532031027502269119822869021029177214027868799550950327737017307438502999671984748499282852533808388485925566793355093524304601573321707316067577429899754642268660263405468572871753711873851694554796286277824328948221245606741388901052101395417968651210075387840495728489305309422677242193193546697497333488090076181772896239340686527457080258204313154630106190500254552031605494225748643402376660571346386692594406413388519478710306523131351846272212709596560905073912454055115052743031926498065072023437647294315281024066035218909546007015721379130341680432979882283847049222110888768024388401961105323396770462818545461488997023643257235008434842951422253580793616578018090634836392834117248376052021737774551366422123849157498365374167611850172383657869779368266704325775515403784420656027122012407031279856389417872360054886508165490942947388887807152691157960019996537379739805843355092062479863702253547122247420217198645932114331100718691346616974864407186124602804379979287592377891615946688390840591031999811089789244230499118356152001143755500565276953984110082685990495090928369046750044228490924326448731832268107240361582890783233086551117258725207916330149082259548082140824564237755184896042583835257727618608171305946233508873687704475596885434025847525327979410182099833433217733381274356175739858020690315811585881801136154828886033741416964836098549227865853997759478389475297498302146355205940007088549049405120861241292149811057621925263970877780722182238256625607305810083236248831564204909724807937669476233118769833493114263531127997713236491625123707575551829521410863314732928460683481811517510542987421438145436049695655496929408890325985053718486009775615810655071580065411049887555435179232615152405000291893994629134836025062212590900768750877531159482480224226130497288840693472489613974877963750421438524964458477081197187200756168299381249643392669924612409097950323034837890041844406657193673224516583174715505464921265659413591587308543193227101335694587187355248746353435623421759364433183865350222272842470544464399708792056475774347324640261995587902775100791029662450690122739728431502679738845047423091345764171371803512182922556297814502571526196610393308352760351600721841085615536400658499742029667179983671763571767838226068928328998582793883617377871513680633246470281732324950157376095341304111785626390983813557207795890608598676120104384316740463887497042114563402639462264966796129483725399813780798154957802766620598724068672327704985133417805646293129936459124465962226021543882902560064463078218985338267309506856433883709784136744852245503112538476479764309307676636668526005714050818890981327099679231860452821106185920601017704877458982762477378020565249089311941692844910788009777068665590622422346820452717769847894957761098961815483067747972906786265894078080760928098436013299583254661725737013571170306036570509199393689928115046803684830390478991865188886981158517134901796074655313164829478822665758112993499162408811314887360085291096097377275066898665067015415287570863956719351389935350836869613447824737720400166318350603334149967438026913751375686062010758812842208392806216623586038955284462790583549093481230876816239088249792150738742414224861942709003624714234129503383610298727228390381978056469932267903044640176769783582097599453537920686818433067820219864934184042498741681091029247866966737755812990697983144797568617095722949408612532874111602565904818309787429807194540698819057778240694669906192931605368328352545716333426540021566254918539539210971342666567454049708248752244945420584411876300347065781161128947071123825294218906837218904472421672545990481911785633880991010273815690643217130634340263958752167796303524579253399193117782928643089357222842565368895243378275767502690522893487818260439010471588781169061620323692820406000031330616269928488046263444213993264665065223284151321297206825379182950439490122959269708123051106888265466138856411799843292446238545677701453805072299335409210564799021031145007322358656291349585141514113415229678013014298889832550829364935382880125972987807341352622586144788130884273417996833852429660627779654254800351789907562857250736096752711795540598282035132647813876544914235646826993525289446705383619810286267602309987899714371187146468167378818903170140718781490378215024369348944650526216206712022851344403652774235857947680742864864807166224699388060966615914137701134575321455600426973851420731770565690108261413014907745753970348801119653167492160098769077891253948128883791180610876143605798699242831919652453904404825880270280256172912111827608054874781605142626699374024504137639211007265038570868734179594715445978482346143801152053449739952854866096763852470435085314088517013421513065417017183328221772140137286148893904824094922961321624615957503569826542926181864846821952155707696009810517034964206384457289565208507835948646015251467064996020218290499774824574233900151499065442033253502179227989256778331586896057163389044124682025876165638492727239352887691270683011589711572717766816748800943748674489749339157680028084832554731829280316218764720849844790279438701330419910188691299667357652800441862281715424259148842894379371715587966319586959518370034992278522544947665594886696475235887253686268238572549365000992696521746465443289907938938397221726891907609044201165562125956361246736634272621819565594039167364704055212206687870738276994807483362513335444450391321242645569664443244560643189193931011105115616185516470141745720874265358693562070433070543760321984778843704716904791972091320736122096028213546340786550440053084670696456424848098959541714159888618940183979221680741241896829317905096762266434730635391393483181581514046937914581253603392874934162612122591078694345413761704892827808540302094807581615089631795194256032367316683933799438262118851255788478634218677808861279127438144293631889480118445873997109315100751070542052941807872571771546470927743291000124761534677099833547185435043614870193170795206768164687021362157549572031234364147494532316157794228297820987643160914482502624199042954763110496990537533170060002930489905554876555903046440531217426252108168326290849941458827844783951676371169678844444204452014904280294729055225294865785083329037198361139758536381480800051542004562621806876601552864106506597542348657335096015596191661683282083555827177223691788402824948065321068745437840395278767838994862393238236283762251630528381437098612756107976633535618288268881770149409015941498479285915091884788215965332012797658536745300192987428802836893715921409598019398497725188925135693783795882300589885907977181991006867622042243173549798696703315010470164531100916476179612005972170138255612821786628911717008989621113734729153892979361421765018292727674210766876562857868675869257102521185877929320146553729011070936991753031130557227058487794630069066821126379914524790435634117876914093577958381581032906470498818232376997980887519497650352430634683160402017599013733683141735532594845505300403777809880871369503678749049962085645774549376931080530837486504388357979513053631971181263946978281837269654722575883512420883037094562700635039754491126476639541635562202122964071188434033946174423425923191511589114970474824770532182471952088302020072940878631757103015151408990590753517731423997838514947779657630681475877789475732268074301780274265037706584129377901015246855037025434139896169927315431333445421036252530321502249759232967699541055336848829495095912809500038632711952557612497463410780773048807352676320378149997031705233397096421986400997413472396438247272462993876609968429593223425227236374118477302345776910722717663357990682044806363289504137284408277248678319657298442080355396372286208493417386622112690303679427937359953862483533983747667407283840853363703635480027454979706467148596131638475411584004848106662313364816523959707429333457398002586960218337320342902209137442686891732542582938991313134659860173370741160786806450369454988586822336499799058094256268939049606493761155894849546169724649754899431259092359217653529465599042159710344906311452013343892294646865348417325969371216742602653301714022458879140368994674627335081611739955207162423358358714179498800076612512696747671072698592030407738590000515049462469065797846111085600332752410599172367803830712706591868199010292723266328566197513001403157474024026292992944792661560185287357113797416944717576849713861020123047665592930137009500672042006424907068605320098135214709941604050444500936792961431515704305024751235580577022873876490198067603673411847756222020527605323896672600715718054669295577687110441858631370200127359891225115996195833300840261376950274511697779960008249554486464304453191739084346204658510946367016261570940262973968706435020709793315990732473269857138692937494840825825318853770188534306707428524745780639136407640543918200929243800327175160049652726055885924864093653669433736406172500712301149901754661112540402960534427300717377814957591810213572933383846812287704480799226523136887028732930918395375450584901101095236874249944949115581502457730825142553684183341006451768016367759130597492795226579585066093451337134111113066991266428678769307544924012173088014876017164333932063437464247914479381522661996343805221883113486151996781136619562413883013674018219270728284082277238232463001941062381942786836536073654374090942507590350661155749410229147805217485413843993072375641243665624186890786715154987806000401863802453144176433075585233778489133159888248890698214554067540072013810067506910472495433702975314306249698662434753886776751374807218687078039752823393858773354614367052970065617906411894155456970929681620596001640564024587703301644954473978768030576935410010874811798294586965822072534845411593887066172561744050081282564845713079034149272109110540514338011480830244240641244893543186917862252210876759750498701819750472438026807338282167560930687098641212773273569542304409944054961195514885003014275188144701144432352695789836111635384102973607697979353961511603090480882399000292645131384098314399485641987110090065574610624458212334727492349254290123053037808013238229788623047370029304748027452095068909166060721333965020753357679830861767854948012552637555290963487509041905573804368266160309124746792829471187359030069527982926481911632416545562489095045415611502271925333028487016045969248598034008552019829248892310579202274825955982379346877846430326597105974438618579595182415591098011181426354786223797338297409944162528734912292428236961619014929758806909512653483196418159182212468676322880744469443272357896639240319434727532241275754564993578156263578431712728368868298652994846238075163934641426290965526400828493425859906284538153930418302679467627312363689056552010268865274959781946323278168546108963357182135413190129327875276098223197146585988125050343246728592749733574541748711787212766608859775818269089054289524765623252293761634913563891539461062178913993221874803099674209084806181299651249674307631270871978539942201424970088639727625716502577336085682454577881123675968722506624340549045633997408529781515751940581649998316086238286068596243820772173193614373744339759183786411392439089253518950491264583253458940971145040940405969119747620479841872952276543987718729961707049355031811093033114314652869395567106305430510726129003806189944195775626993649097902737624619621714465807753760107282645152410507833221967194429207844257733955913976764843427818512603776332806054019065464016332121025691452573102921239185055227568073886630324059706129075616587632528271614269777210378072584829437478433690614549620322597168677629219174209907598498609431021885949846758565307484671387035212735456320013976482176803136093851471196687029594836361487345953620991490102827260235344704666721166846151330090300966590654380313018310870705336491830009206021472720911829585202108060647558396244118620988652409953511433998621704909976512615058332215303857026668957766380647363443194036021974775791298437480907134209067121342443589043925469038047320279016253659397136567122951018582044369233683150093451428395870656789338564897860831495255432086237008004627352390858199010624428196755052717667722038177827806501700092235246893786795542738669410312876246419211924944805054416567579802393790013020707968762459030483714229577519982763668185724761260319061821243391308357353535939859610750611288922796636914201041188276592266418313424378632270818848367332194139828826508431230170131850741476822410685682841474918229601097910008225984074433214760641060027934727101753559331100717655538093285562456196885871652896121707614604004535029112078047511325761739662505152258083942026009348161699066814055088534862842781967117475718493925388834864131422140900718024783807383568091145639828068895303229567447980172717203444811636784838553223539995671065380731666958168123172127678696637850848350857493700079479467149460101390446527649745178641920843425915383219960511452677263394065738586647455154042893852625600884019532017219406543489247820730986742879168202246592626422885248644385360201164385413159702064262863132475419452970854255787656089080636134286870360372517130056034848547090518880317818141739100204125989923354122179976709755208904239428547223631535654451888426708267116167935057089230573746305866902504898712184070483678255633549198913911199125216401219474693988655474762125954210933104965388500640130904227141560250005347343086027063751103107847181957156519675614699252518056308996224140591439109094059129360638953544454810661006878461100622761178487772332746598481208488481862809080671989315048420253327697260670694832828547989072388029739372876319465825414301306475289434368635776673897727088708209468271449496908846321783095473350363755380412920346080541144556173021830020210592510111194289698017795140693498563885109118888568303178622633662048474488260672461340336093925834571622956030653127600073615956425189970923608645858668799416841128095567850900525069404117443743257121267495740097670064448784748762694433821387309719267437661503298647819509012218689952028848976338681400406264100194079968620976658990235076024693695523988716881109709121775244795482982475436327152384949573149269536729629175647150347974773023182892027567593935758614396791966867169057349264965729904980604408142115783957722140460029316467928107370262643413679866818871311570869739395894001052802915526382193737758395072359871580178727540632400698998297545226496260103194671031812083633602545022111077443370570551846260009883692976162365517343929917089951641290972489177759322609343016400886311149054712105555811928440758515912486376091982804025186464978567297881568542681987649847327289243093775425477365140774717174420120603002644258780129851353222653798449715523284813194313354266854928644433864500801406221274248882135488383401165949726150495275612932142776248679827787989422698064843980889840690692506345283650120324227660119226771081796064349696501380796347234289990628772217649439893124652652611011087300154412087432862585492724848801256956201918920076016878244866109642104387205094754533241671750091086322317499933427671335690813816889976334133482614825743551081876053817723278323293257559441638086045908955464121630172711695675461355620789814466868848727636713823596439809939547259381578692720074814511536651062008864010912050069699366936377581774061734230402079059743016624289497070410948526628542398681768395334911228509990669571152345368732047830668226819809408972771939885834777375179749444053963104344516666931992800143599514045682474609923903843806329126946050643237206437741776071671368211162025380375509929537103630437435966458645817252889809608133980413010237955664548998225238435568293768745696989103683005797025513820461229886811692109487572882170630338691524782388590140599931474362711389977166161356390334691900501448683057338632983718683092737118088216515496952603075149762868538160288101121531307998811781217607052953506343740369820176833777104357030094047140927430168231231397259290369637395600372793034582466737364035068034966296166365189186925239195414346461708546183918130229223469692744869470571701193490166779235793986657130198591919675001067224500081821359881162373461346774076885547333716462109729123823869760757207791655122219565572093400672725956498654238794984595435301398424295269955842983140954097645149949244789971516559464531705257020112773288576654752893250410518256879909221751410385770655351435877981846806787008951575845868129661152456420199137154587406110473685850891642964752980857268741899349152990347495505536728370597519100812154158008575396316595835525747747270784575771248048123364601975649820903192865262685469873548795855209911360449811353353043706292757549308848429684213934666425769525844968980234044532478705554377625493937092372511467786945149609793208071645279671308886139935306369607043356768503288804118176770992695491699454690450382355825620803263032877807162226729865644447095475338016830576363246831500869047555595839676027402462072119085838274359350426618986863638672691842819620638809638518666781156028710885691110649225023322170939016914435862245396194333805040376805695427085158763260752257997336876436153907503378975520229601145125633809888134204032075176127342407474546902945589961007686627118848302526278897758950372215870641640693891769167689237223948996935936656065781918478463935360779594775359692334757579686903380080957088194891774077255116066705926591445795925381201523738174046683544233965100897716026007535069991473882034423338510155413116751361258804742536182924362176689526630548295252660779226934660991926143654814371039191709451008014409604400081544926127109128845598621672039465307128697212453920542936354777722504370846472768721664514132783617301683055359254991980573470679016074829554398364439318775739576349264499112396792490822080834733377858692410469423978326810174475209443549272825853728144008938549225553492910171039970477440399438871349219474954827863069191491492896051110113008167676852011459124712009913979724230795578055811447945065908891770120469393535959057163865887224228214855447440935167353782514831803489642698377402466603053174902866441194537442836901466847982243932228359640113774029045308911918590383634547655155419947699871798886177057784396766839449977401909850703492964642567084728499188014038123903782693916308761577761216551149244706970737031576724637076186930865128303521529113347327444255114428926487745961493760933216916026253453819292536907861722705590822589580952865225394957139020400980690475729981907953533639658772856429100602067599227424067544378358377280788309470402916011269895083729822017193338495900586732814934327157103323898213787306200893880639472886445959579487611077009872790605530867277144629108890609450831780776445614023297080475215228896262895660277654377603186600650546398223946020722775275517013812247057472278866122851936375495772371462454937908735894655586689411383632072497825527912923958476338704897443988399496098497818285835708167235600174652585222894132644411258314717651502039637598738942427179729242229547687264363680638656134640314669347419422352355400582547759056688724376995005032699802772059805628383663051539120875290833264821449674247975953157327182896007533380136175147340000883397801998997565523694243211724456835860040919897587961362712276806252926465003485396794305186564348501486423323573377064296995974644307484141793052743741041486647023723018892075462674599575949604039978427361195884565414050687959471368306194378179307163861802509958402907542746163219972898836039807823038883741462147156929942024465071876749324596080652529513891184340994363295195582740173270885036005358984337949734895229648284738350231229943944430828935612994348649009334727336390658467639782662437188229385645162057176034821808635216775971312087273679070219285563415961175665443820613117632210741354070705030846897312698988018291933556655520407740470692442916071412625243844907398901617506680649227952266545240947585212391196311596688570459404361441964251922083597906262636921284720051618179754409088197060758592223352879673470060179598951946750678808774785438627115511550394331646510455574561447823103238202318727045899115294841269411337064443961227855136971712086581496724245790302121302908946965646124246044968739634368923516854898454552866294938221778308111229868039233925810460704777854298916522880690077412840288716167474099285088623947886350356334034936077064851495041522387385351741688887566707467997677991846464997659261098108723750219684344380110493494198051358132460145939999924557452000462138064669540855107637213415866863644100165100626865481714820798927643288434081210731216673285688414260160447353682160200893003751518043276024022914884892678110347466257500240529140169577589276383448658535221358668239588767019594383765253808498798972057792556618367517700250941010667057156256935301522156213156079128689369774005962861972996549300948072268658742811579609061043097782956562341701039417089422117729440290125187320634834367506561712272164361658348120449400394749464715328813109917872710538966052920016659362554755067967452333980098971906789941443701807619140941970992845054130889610503561976818593419820534920937927407458302483250832107772348361953222044507421488623071583967192305543442843560800025847981658030092094498967056494995547283061469520434698920735634010800947221855473311224593160783341231092837086411845016821279054928494398766469354426718195906753707682692892113567035001349031054500608045703653044505889634314264955513702738751627601939011256313594132249694495700034320954710636233909302374574820597724294830672504147490467650699534414474785174427525731442092569988917655594523501207994072131951476975077477860240538390333438690485894255655325694175705763612253992030636975536881506664348535558380930920137984513245618465443476082470324300301255020524890024782293620670728858368080192031066414537098270596074146364267891009573412443450933029772505617339718342226362808373220317216497176142256192461586191457182648280727931186793480896226500671490866612652424018589472157825083741351239852457024452480029097852971378458079622910154773976273835285157391683797151007867916596172405887260325204620483139482920154806230881132557087542722910153857608116121644069456600160401772584952259162538372577719119873686059706462374891502545367164888522988700465005454741145142553014793518982274533205905114455724502620692185690919324317341758706245349260849910804398606503147656453017968633325433010574139148641572241334536313981191038390199400418352688283335453173520825434775935479980866944563702531978176440197825379997639363290725475719219409745056898074067811646777193369927539604002093976045761660541395606062988003998668203887358807141523245801338503408572078753945013837331594172542862130451317988019129340242635540896850205815087825910094499163895156201996973642115651719893993528313098730081145888569111903225851960625156467084870530554971970190698478095378791289572516079102322935741578357661535848228937393852947485933741449934125240330433256380497959654696074617399805352215557373648760360148954414531437372923791254078944139574586988196408087445056664667408369488709157533327818848007377375193413730805641489896498175412234593217615036700588539985599171968493847108249114638192884125613141384313341802449523288786378649909708663089468747020255580818672812703759183570908732892192450566255951887645723764516608816924559812626272952530979988594531492519487534104620300700864950585364868906723803666718108167102369810972601626187513676043882303631754805408551880433742441344648043262477914666710683776049272545078987361657586028632905424061122423846857792966617544324001799636323013863442685364644543052334717242148166933465598934532512127120901115317151127795875180441054479440419627866256402393023136316347826932255710339732855252950224328598292011901473897136083407055710414549729742521697109328291104338680358425577285385660839444256363966128315997536696489486461113310663563639790564854605486136566042845415828473310289986825160294750857508113318920121969350663405563454351141311746367818441807312712414011061674554262200477976293806201139051200036997441106495345225893508887231070213240839675835256834324765081319235579843231380478779023622043711134747849154908761253307172884794579249424388952578931447472328106284075557605309291952643590990013734094211500517513767169704387652573934131310169704283132635161338166833709242255327177123049793895242346053486077595530661098627333448462265547491189668843493828286959812442816140928933974777122145997169050355723016973718697585853531809688538329772120323791002013835902434248812910850511337948222040889189038794432633752113031884694645551395259976560057363000379380580412467359581358476817334861342869615187297320107471198386761439532689098091531675734273828160077893218162877512893008594264475227299181871431719916564045650504720263242576269127053737528110623002492403415487834554089354357480727663998128261586256426176816168498353912925717845638864672352220523601311870841897656451220592571446931224171866771564694136733204149623449610304487306113578780155483017185971103353745273521279520975525719227413636080209494555981460554184758169505950533111468197871393116468186752332709544906326859865879603601281121035677345033624480177695464707180368169013286916827303340684325024551332346941167350833686018539452730444656597143616703989822815114300937856633660879386709381187915658508744960553291002786044418301129369977169349134483982307671828741846454916876619232747511889982075987385019539952614786708490546130468702669347911706910198159252838987272495074639069580220566482613227467060457314853259978499014483097388493258105705270743136549914865493111741592661061021458581388259274932806678796937421718821426630997589107357198603789546760263279338405829210611997512010678220894942120332979633285750216807669373409798054448903466390251400927186670635745731275417541853697287356021560195859842772624750047543983055930595825976958531013538675277956328809704726505508421569978213442474990345733765881881713289039481913222291635890160223159613679117523598450865535833624968740384754273003341104575324599022207733388696433463574264226631038623023963973151075383670722813951681218547390571540747113789489413907258368373460434359695568306173728453898026119844433355981879279069768866043234911040421196569127453097601390197987136225360824024538620824857173119170856416915313571060169280792465242778910504326991879836717712149197559245613330652357080200037486826280745572342413814038075118319590275818168871461784010496496890503041525792826489554746178857572718025902065224535320708585954566356497955759408191658957213687325463147141491777583953745928795163443501380411194682690098358420230857592244762647202356557622131008269348546426583822853461581540580081088150906145727061093826685725757896361876759651092485797986807410468487839969183998247707193709658644844390049846699643124238400871346985113238649262710241815932743146318177160648465774621014388410222123721364784847763751665679631821319883966163007469328866964400128485449260242753865210736922600674720990130447733184772963394582292406291470945424817515097266998025154594127416792971890959738940555196016021703725496823546243048513525004109364410720165348615303671045908340753292127462745108141019987765066861167588067780216974888196027664022073133878935537235333912267042440637412348564718046281442230558679191806706181092711403116423676882147312823007781356618312008562731575155583236445013033694273535364292356083626521976457744171904930996015016623819769347253846755331181300622951653124735317693295139855778586598096405395906875096790125029925117790276539925852733195098897970358786686611371121635775284347012689268159664463474092652668154242874663322633950142311220914415133996570558750966524925069384578372950682552203080181825822342508939247966838838665620531397724676429915789587438693584406465195256480992848386661502001289111730607926431686139765054982905598935128366265224910431034665218976881388828916168704085667193046716834848419767867534457916551536150111752553475095462097836748952051534059881258794932726045914225847617104661092954839663567905298643828972265634617661039158186979880367192078098909620709722381733794837786862762559281400346456877611761173101609518006674555478091631806729005300541173042594120486037727354220973805884597143922738771459903122493543117046475165427086778411526240131741596396825820562420162601899431629974235976574376247704476841623592922318006466758755032795461400769332688747576074224884621491275823528254168045995443899851278328237112516764803890081466665699746913415288576364331489583366836054655322646019089544885079320419344547922378789231527693686125718653416489868047289916677177981989176627377617014252644502575683593146322802529514604409002138853601710496714190339954618163876625249793988914972920687583274725177551988748143438539611353034632020845001750233660423981184694217052317217179101050731222374338324146431920079088943809993843073977207954409283020258609596558375552274285054482856595319949031637403784246116695735882593225197989990202273277630108204673445403375894675491392094996174547664794574424861823754405831146300725686416522571003345332129663364967954278867050379628500479662012477680418586476086510612145833994837962134841905865771197739025231171784656606251522942265593183069558513755776636959748644427578972539055923976224072268431093402005211594649509980893993370714282521717983207177096002738667718628577603706429366833890901225462699688515226776877247132285022234603906785647689036842909500964393355728726903413802000559871796780705343763993883865993963213166681252430363251669560889394443107357801021537858762121760467254980084621785516368879133991519044545422707363751270582047634392378056212438899281072783367417990902465239897156123774481801142339478207237643914518364000370939960010688408675381082722539847677165707268024089988345280573098610051902480222004699949400859462440888209925598071567812344782477380037859188752029520080033904427509634347062017086445567678884388527960010015925241481826623808339956456261740434490848569007421424753837064522716266286863808018528508765737937095345869568954214693720657280662874251187054554427624325753862076273891815098406818836623641055254931336372622611915288720290500767651518673506209972127442090040244801051826412464295919798241287894224754801971800430873816591336764699277546446909710123777151879968336473390190639245938447667781897274228367828791629744536251020883835920068653237486240753023409513845967089871423941698691075745778913377209420685720235825721116184976735564987011095525011101567919419287965665052779124528668249466650913402289177246939669588405328194393624386975442210631735490666039824962007296877734843428132141158871468358352573167287056982357563834451276138739240653868266003714327949981160121166688877504827150649530072158134152471609844458921866343743657715587562379230930237805546353033351606389244026373688823919237225705707498749671542061084082149426657083169845739814207790998080132970158976510498908772436165339092474157132879931406842881540196944918728981716007213946802214163813758885035017807970518208064064516552614591251426311718695281023644808724235758269252897341927806672685964039830555531607256898933955341699696744318879293174914573448894755150675691615373502718426764666304304333858887116553804446088296335523123528508569145617739411922241186039076127924097920882549260183065288252294586648474521087520763914806224877423852705503166299555847090025570244643286815038483043220609111026302657195570932934370164610837340940599983769380442648193362139163989143228910322144629728309596495985668740962890388740175978822958791245762982298659402800889043894906473374061099687836630922912428300020506554963076183692713801125499895362852126059146539998203177024172132940245469557954824039918750629372158027109704916989644228261092610208129243343478494541177922171357762053710239473570450139558786654738500257717710327963993056349118800651266484566409591135324038298284166461169007714883560540984090997515150088603055284947372626300423324945700184039183397131682961013161548145824380101459953658833046916473869011253625167272063436751566624314596815611132254197691767062682822230855608283878533580770954971873156152819815294568203982991145862953791225288768866004676878512411464760389699865966953011916522627067540694724396268393446882019783981867881909463749885793333742861433127043753989050577775998670169509974605411512263193391081099183288833384611745117102226331731898275354320321233805093094987685385919215568853833924200862089437350609147051868166243967049727969700807959652888869422284723449520101247117389642104999690853100626821668752921354852644814464283007345334274428157163905655212496305287272055083143567944754077312708935236655667851411012258540743433650915067772895635798797794677702366936327631703940701569586359879328298504037591926599728426159770622877862422321210889308031706933155117346173523890928101257900455043727899292498021646777534795682845474552467115291143406356761037211261991159193974913994565242453515009793958153184968832710827623079088509713380083862418785153528324461678330897105318158831063809563318207243830625004039920774778514537881378841725633475446976533352536632098263741484291200791115166711655318992767085131451661201026072630840889511732114844084536155456189134938834066411655462918546128085197473445714850278352012319121088455072808917579390544238189094301609851743117719220919622583907653450410810954001193656430488716120164526524765274362086388504115871999954487658480806322910399114501261841974673717649758372971966768537918259291166103217532133323875037981533869421586740462795178627847278502858772518541893715116419277500921665854842380580440322635874406139265113860073537628325090833681386195697051385226515702169580984209806667438058173253885582932064139449202128412622533803462093289568883960482257958487009285110380099078842485844902920317330577874066640724642624028386471706558049082616807351417655443650336334654526121338892645591400712908391207739892831046113462982225497035131680205628753298435179951508880051585865289289731954913290949804012251900336689648874835812218721687710941777793780110324693610222494717401603526713456268905346294348551521663514320659713126301459960957407574868337419288671132987473752652615372075330201541863359084570260385895372861332361575628697861736271061965591981757582617280220025389387566103317017367140161189480588003108694603077348615293626450901778002127826135814081546677666020024636799466316923019235233561019672715136859649066060757672272701378639383261449162699039369600526003720019703664235623353860266991572016709916067449295368700645246957029124833363776467246915400131936479487596295065170399067106553131737317552487847624674034406723675519507234660799454595902703908310410485143342515847053053103110223008335619382333757720090696795839652415727354793047396395049390780084144100433954733391705069854224464330765995535754617061332544976825910604738110512795311890470138917818728915427548839176491995622105543230544489854033281974605980775744182427424428632121111181229744563446722690044866047570594727078135669457287952469253188062534975303490863297415382668781348262307279515728984397147885190774885248196675819494699058134783729091317994065459563277175020466650103289924531085755866257260999039080360408311765662253099840445242279197513990426264089687716768408829295782528865074444267154409278940294778449181671123970979034539546803057501966170564144416170441846597023691213283321026479615022285419717240509684980708752879052118658136433017603005979023230896603758097172540726158134413957022351425500872746063805343311559326499016456115249931864195794941859287302609907637591983183596983248116734813236451112254740625568954433446639470820950577069567549473130640983654000276022672625990388510671298644124474481257244242757845157413280831261676605804616777144680049943413705869629017185601139378407071011418663591531190450466144207259864787560906957182445323838877575377414781619243631574961105763915372655969091127452431376262278083415299592704221997710757829125115337639183753279129393646279881439483567731286943769269558431133909010392181253880313990510623038786967367647437424960894277741687130492955163704291246983601045297576121606962487577284423539699254287797762644163477431795354750556179261371732836763548018977154688519903903122081681073536729223087656319784768009690536491576790623061251800456527271985383292811135936389686921620846916890024536847682554089090684082391228306582004287724367464156051281264932322840427300044427183996384008123640383009979701451556171858415394788812757530748091185459660249685127195538452035910258337828570071747724167736057225244331101718575030613612385971085708501833324378622637139829662498187309968326951048642589732086955642124068836330361734072128624385737064128984503500721216342142758974112650717308722683951035745620513705777554694847273114560730794096668268990273922860511057072705255895344373103418228485056342745910158956208985320248531277142917645678131891350392179354897540778693762260079392743147904588158528290526132264385795516209598157082696379581718420003815963785824535930181050170506451837425644283832263337473459804255053004893349296322012203011886251574450250560771546200393699174352257214199258564690280903595625049283591729590652032932496874753520591291059414626918580576476281918730969153617132569269337580143953296731598002500430590602689200960842500508656388283113004124285235867910112623659429686909650632185735706556103896606882967577564499286124462576719956687914642012811329351992664006219254189039341758684033625442292184371620674705117861610752601381255890729623109322177852294766837132488436215234612196500016180591701432184611677243739889799087257775507373758072499818083318777541635679451208514803483154626716511627523721747886768309179935750224909014064283040936135183178256907905595956927595703536779923563470387806907689291706192244879004480504345181350565158849046500972054267659648220191682719277082110548224085350315217489463069329109299248551044025603576984445610232203717636338080001279144877717207624652086107054707300795504966060108075219178528793147156687355092755841052640507645640386753467692908268976154148827909677202077904965980405705593432279258404527526967100590973819023382816331683041299290456658671321582141774767523298688031138235884734508798758302365096782047796008884539940244705429146828469935607313168504043720039718376004944610989645616641464776657305625748141939815676929268739797465787433283583037526315289988056735594118394067914205094075513543454633608488541643089752336963556374707693219968254430887140984947692028658502073503590319600456039350292698737709886653071808497662974877012887546276673562211680963896003153900694822232411652562709959649117953909885145148490239958610122670475135372928254942690414840087734467159360617767694831464318861440300816690830014080428907612266635790813544726887594904446618247287310126139785973894140788550642537620723967606918525118215798276443485710644392011926582718812162278436579348434391163754017078485704406740866958720775957222842629608516665561188783008385840853128787807867485558257775894545116703608645147999306848940226798508399072648055645334867561111782346956690370010702883034911258750420345823756798135092403487684115280742329784201050741613228176687184956974346367879593007132767811487918280307871542134285773391456313737786638532072325060318133431423270618699907348698673570280191426333608555596133782464768928563409640983119420903337304235518031671674019773406271832764025923906614688951605297051918907109949630660721212143733170411162164607342147265408808956195997923071474875741121885593152735582256220450348411545758634874204043326414037954614557992795759494584776150579958632210396124722435127355794333912320110975394237857346724656073863576319811742356107187309681740489550287552888817535549368599273505542487214723991699204406926134521538991906890073879034833921564859280074602048399457824095567885006839238238377766468381011030550539687737812386990721153618434928425760922935764397856208568356559497333014654355765309040726697541738276547233659562585736031468140830055487471553206138431110904114512062040004466286076245108245866809837650864817730078153481287700050377996375274796969044774504250874824942990257360019074018798348119234114727625349055018117644920709990927464101826208752311107107587345117334811368217839376380612579637465034927722987823230426985852437636864990596448329517566626416509365553255586093039734837219521234784076315129567780771767361917135391686532285897022271702522769791991196608468136483461360526022849455947725257389155109033634970666064275903143836736066744852039414475901414910529220950066796636821031798095319979449323568134860335485954099619012450236659423959108227889168506030018361314859540843666710162527767768494360242420890054489917078635806518655640269312858886567532429799141815746602986565067200566206271506631715684156576817344486699300864078554521325026076844061219098487884368516240633987159178827974309362652691971722633286190727528735161062928019097161266747492956738187178337562751421430508703501026026605037338499238867822938443472284741395142165086844172322249100532590171475486248352022359449140408516292346700930242996551265601716530730077860598733765398113371134649164958391378403220823837714727840707133157087755242308657590363145418546434155387048048779353556874611348680988031481108431142399946553784515729343572882594474480694507454290580972547941152804718536340359373033705330534135444382280016357464760124185067316044542548793805139830381411760869236146345389814481371104018319439160373432765405136536256018334877491507413295073390924666067684704349479511583889786806850496338262191610020711765240661023488681584702638047453302479275362772611353706349170054467780605814334757283736856350674314696948431938306048581557232855304701393987353708894298982938132931499180557617489810638286483444298073691887220593746763579065062638989561151191204640787908111757274382509716374082437430972894330041346734447368793903323247635394019442315448021942865774490925438735643832258944325553883807931746552056295740547831995157377270166615301013477547177181004702023429214649562272615121610919347147754183641233523531142578299114651386315479030920894636398212863575640956596689746358422429187195561962168837716957860839233446731189224620626940940573715825334470373851497762787631116869450627470478906057026938838473460061102311654927702546648791751123220465950787129810777193935679866245692009221105255298902706659079411693838854767561828128066031875288434746477473561608114599806167551893658037078849883804764362177331239351126022518142848348705680726657181549908559298903526580900822756138674568315917082804343116917605102579562617505826648573461965456882723602678065500797527200418803877282054637267663619112200390371278938692585059194192300607181449303399941984375744477956298158979403552084448549183038089010821511739472926250164851391736355247298558020617254653945006455958425328387808638362637199730807913150905961879605727703636527681634962048954954799556470704983192081607059840721331373305013926397972277435766881076585790474537428161798238388551514700624919356655234611328700839730456670507096950855089396122495840114305423698709986437358199140593200277134676983768610320706218362067503717985418663151254434780957141926689134094951552913676808929764040925800385950923216575278138763062015212948501092542943639770963974669514398200646398501739040224601315383658268078149044937487523503469223842720409313948007470461077757202233810262916088002479433445434573416987158823080560840760075055179615537740910031856249115902575863969171751035109833341576671686875408475763524893200348115224939800426199090791953534154254778724508080237266128383028181814959315569228381205815069732908423719087149206721408254517778388573412276710637819983596343183887908895873314338763257248957343513584176213042667338579401194098754907953073288792104120705624760135603138069035479901108175267403695650239644317034562186592765020272370599230958470877499055148904574654865398697582046423344595270521941297812377792010455870159939804511528636234008716254493618133564869676730694969628204790745609156123081184386582370980926078802100803797434601572976206085745161063668245628270190861654999851515956571003484161324485369684702911206250170153552972715941613550118922403167770610987588348780325327203827810895114469039175732749634514393252868108312065306697429614355217134220422722091162934184622977839387650494873969228362993578880172114089880165463922172238398936441050732769255936147512104031033881868344308611510848595637897668120079668854808707597209534610338890615925534537989804391379811301701951500234983267193085069662506656121795064461256975242445733308802440082136143342282063909810880614077446484694263527336405273702254255001758722960819269947099783756556581357793971450701132201041213196451787153314257412849766422978624279244678267047323425155589702898193939042602340715922548003955351092234372867913780447574955770827299634344407281856650465530770374888917159733762795407365594649687674088777504581454927695450282961729640232899848138736057071628619903205863616258774199574850580127186424833371377027412514576659159202453498110050007462401828484747003856568415232793927214955765261924481862418634469081435330071236842450631778690173772531288100624333008371152192791329668094996801839658110935404749133122103136958259448273816402739344395429547175736856929886096108006555258342516497796531899389935816346237039456340225665432252069270788352473689359811702163646083626700440613220805530862073552330842213285508187183610275442343466115460192836099096741765293982974351137686697755184811036272271280511911751619448568700892855626838931175591127822915555092642572295501609975779495347402870722911871381541237865150623593282843588371062747513464731193229397734669113352035261034833220813110795776832694981001909676426997951583202573774459265499741979994834590123186091491683531197355920277290900674159080164270903060677322968498074690109934525658156530594114457890146099856201802061923562567212663939129881953598401844501345318031531432613390481301985496032650917124031497471912323673060846622434546501444066224187237907908023639345837022458897660807406366824301460698705418645641492775340621048442527413984697898335197253309962746948285791587456984724397088870224546552683385222665415537761543543668127264822654602514947394666652754094482841570379646243297888161925779151823821966902494220082660165698099821992348774157309521267782734783068856785439509662955600692515279470378941810670456498560299014318456027003810730674416435387137106702778540317742226778676953187842073084624605634299928574703081805650975812335536313044571454386600021389127254580067907825772080534648814860128855667226706103350287382445656521388745354064562489384044457675337638671552861018911120905812206265897672020549485060868161073834048896828311384772198827952119501743104645203218643465404128685727378969673306575180574114517881231458469951015423029231994819302459123056661414869883403752121471341782826173202329268438230707133945602851350101654922486259979553967547506547639824122896938033546656934811955437308675928240923630472102024068395781508020345764025246792184661234362992986564828103245467496827621149919788131770706922982374663519429559464261570586522252958667141666365152146751005187191754495770252885282896782971229703268069156694982880340313890772618805929576614185460805439192697094863645023355634263887021402012472995873641633395755155510069515467286118705479556367156895839658545190104141339033792367810218074051194499355771019342994017521346587947453372398714835281672852428548147421262465046278395493067117639471684044142236112100257750679775404186843604791431915768293773440552118538976461144361163723266377077999460278874969939472714670840153161900505485319232763067499759149624096708369257075647620544276224551693315564955782770532907728790048045045174122558366458748104427066733396022520538202598638505855367426076618457372200231252809790743482436199235128440103463007516675093841166111339262886058874171222431039407264230621301646639269222361448658294562958766230377755713134606114083636555440405257173123046783273083983258338937181013803658190883101352375289142466242944769200483817499832486182427445732563578800775151024827508483215598124348360781032434569071483641993266177545606255745609291658284115516853423194232000697833603148648909569753030065024750744777556909970751787266039435819428134184054174683025329178254198460833596174427187084472489699686712419981234443419650086754131869434586337547381556769412260890061734333443242881354781348717556025353512506604398174986091225633405758766817945781146351999634793094196895293657711313889497194515511413569114549020851530967215562023495649457589647596546385426031154955359916419349827558828505193608997636602423266249504238795145040685896026156107554415040146101981496802648737920637349413748050300929770475662654233967856749320602739060049581338140019639592009121596222775460123158714401479274819011065475301528609301295162221126030079627643873761028880554121706512751302241566534957463154534634857509572887158527367737336977117266539700636363518439725082872327056698591638532661690872631475826005844756992046741883457284393789013106995558093860504751635871061240696102927313133459069683135587294850769341943328369734763877561149004843728390353876822966719274469143412521685114668384325097748076016211985325613225628233345376239481876852597664421493495647782816602434097699321182178883354462756528289622790650757888155813538812215316555623262036310373290505614608496681803801548114338936250892503392191742044739009127005351257286796034327411932620308670867465528845139034779472813969314942769764080634634855601044188612739983561778868345707078263510359748783449880613470322333249249649773303048289772519613458552958279202522058847411600812782659350227708167634745608093518446147186236687383250275422657210304783641159887218761239358024591563827242227810656037120717148886360772526655604651374165034636029071893047059255364670385120940527951840249539657223875157604157563718343069427969120232186976819756957609980748808052421403765593243042031424706713391045473949633903013484872032558735942494907179549098385408883206388093238722263685746870943191940190344619392269235017824667388215823735966719695014153655715545085702024547660612018441534444991287100944836334679677488265471559016864255580216210210286377203061927886443261754423178553838339195461766935356356932465009976467073176762166401667791841814315138664523470525487213048037342088152929015375558765097346848804776138167681460550874570460840690495899115467053749513078550222807696091030626529887644705525059134230068542377808092085502395748352198309171328143843512704611627523277289107175110000966806437455215023335529453643716144974432548459563405404747975950971769215948495248365745796970874153747903640603546032941685476058145842623439354095328489557479176428639865152297661397287290025999159523878898147180903035858565614420953944089663280587930509069814399285682796669427004204771229075027250529844319226176296972909204514488861093026014225386385002863556589903038363419214483967126773156803907146479205753163231001490436740906890633544622726345550641330413025784025703879356039217133074052501784565921756976112967781403205348799736817599643693254739257239084752910408766814207838593530219517849950281397505301875728242069199078925125078982329831208945677967526324374096863714913483330296186348432901320712161793903310356469447154368857508970183037499082384200156457749510043267583400826770361763380104157174411131315727330304060022496781483546814373056328968758123249655690156053267602933270437137305859972377698604446135947477080677058779070853153302341935412711017468758387783839378221637497682633545286570537338997358952830116393300780123664384286157007617996915646807354774233157173114504386829541596364186802101358624236478865185209556621366956223763474279748216359770194156006116513740226233884106355756201421187110870134077073467186545122598754593362120523799493900798405577361458027853214040529926522543349817030892214573075204826249141221731332468395216502732063148509438636366930977852807199593857089491793487343087483922150051573673972748063594325236871690023420905918692670867293031794308652616953127174233262245705068399440301641705484327236871650222512656562531751613115981933436702779247529012586246731709530873798687911403088966089501528249414124735368820566553556432384897521087348502337972863814959007530250248161953538882176021933933949067665193916648596277144293049361966973827403969654210467458468817377816424033316813303804688238256944807799875143936207576428224051043330052899509485910586436719211335019856564661985547178787263962017132686542981711744247113485401199944914295550908662617409819867810469722003512143969387632047020112665041674685888427646020930848357598368983945236048957721536338672873050436831509707742364088450557881253387900287054596422093294721505298095343420117944164199804427924121183176962181813011527232856720547459911800425421389894241435502562270366188190795228613192246172286203114470607855653046898053335573967962016439660666049437198531211534193279540520279703083630121871419138170279678051062783915901083873061376474793914442542409247705916966908440639559945086296193055622677001977597610691563386823490642666449419926367179154342358449866549294278321595815623225408934756064830706078238303236888409054687399658128652370013216279062072311507020073795851742497573471749904469377278114967262254857128080956415819194116103200540500663572628364782582079008830738689349525568782699096980762422964895280001253973139517241622565893371793790813475837435836544867127810798847049268972876351537801757540371462942311589604657061454440389218649687235934068677033791511466611390712315377421822577229208311683512266516762458613486124945131327831255349573174733254673409549069707529216324413431674706373647523544161099356000102233478360694236935481214045213134022559516486036988371783770530850271962966785363168789095880107283547280696762723189988108863928106946192627376003476436547647136413569174956120089856240148961574600650121906335380655028126052534052517516723874031450936520992529061862539761075303303187990811942365171773557881938035972255123148194125702102667753796387717616418033522930536293277885407078813543341366012826570148232603713552332693025158770159342409761751459372500760898380434436297092561510018404373438463713789854529185508624513119635673551137248361920181117685344135124244045106502344305601026456155404965844464432201858775358717513042398174892984266267553770279688067947516562345238782964642191091062584279232996368321126791819639382517414940084036838563233364778442598498099574407061359144172241582771284084455086114019876570516820697927536221643543147205310238138145118581952596452407833998393602256015422371194141360317871016774660852353162989283727462928561996031362132437895534580806949158755453603578569520533635968358773347809884720599198053788336885770048574557372985593124494851065690689377737176565648767753587618462515451292787827421765152329560171544920489743013703395173114365512752763924117638738408622871591703064015984630372332019367718453082100174288267989163728839496292326675074902476850152917050667108435957200139929652841238862240481220513450208449040265031259453384515044199492983717859665237648682118174683540776263929856747781324480477917420244142210502211533500308553429522583278997745582638804718452169741726373027698971075449809262052598800922172087124743130680936100129081338838130823972250527857255241992287142474557428049754617544614619089291000323800461937096851822689922670807198849324183826713666037114529815070439595463090104957727730445135986890587711425009834612643240221573306662560675413746895454620781870076454155476113020732938442669164186575357624253757589187845360173499474998401900965856715313135301462396143068798648809486234757237094983015550747665382610438217228883998376380081227816371980510973222226672195951603268013477159444237565267057090868252633525148347448359215781549923461066708632322581733447067725052445470350146582680187531711750896381190903973338665973310100160656174477891753609218694247346477363302782111819312160272455337008523281766855514876679326822876143203792367159081899457685169634024330607943792093221424341226630786309606251239101252052588800170508456932483849170800105437994007953205789818042200859367912570225099733982009923487899798694281180527166320906447360680915300206849117373658497351273257108729433583626418461071925167800946994615620483759092661370609286940392841917892540973276389205786506890844358264405874896501226282130054691518887257920934575340175442959843107871594019636042303412417847651932602340633788457947252915711407693600537362798768957831823024659569892330928426266038577775178588579844525002613386111334540830721142838552363896630380781465791972207907640840362213929708619634309782076018698156520556613245897983030789329996675537232095894302272026296715788288744064501644289724666748170363307138979485689615767776944090887240559318805817261921617221120323796738095001771926902108365236750873284872955472748903563143896100524728261371430705921451772381760313411665320319403863834494227769769994058354345494328697561075167398758206532457636694706831677865481303297526313360877922108654358174702888618451089021212263378648642573582803033013970902114168803660449819649316933223353672133589573360854019664365851831193099549234968800849043968808517877975215504500964800014995723199090730343718350814484081238626467898043529041902866809488251200986685796565213299141880809020107111202333691358920479358469343481697695682525044551209111667374469355022489448434281239610932814170819932415583638140152710452639586372947214487120978154412995437484687627834831684584120873250951956287962982981599246094962171685264546620898899008533981318529777977647186114677464341442631273359146471494392002871540556442769391359830400361851572807858191502895924727701435125651342240429041997920100631934238975281095474389755352304970564674324748487042085241751190015375049260586980184756087559920112260939878797072724135821489044606900942956290422052316771841032481945200445484450356951762182432877323092191886959497305561521445433709062150801377299369101410224419518256430840481406443873183053926086121164429566651410270316061206676968407241770755932868569947815625776531642206053008738614203590136388135052016444114764535159124515439540287719380406405031704108394775162080909180967542552005740639893575013548763808235185181960202571052128228012861186640090424048728790156748622091801293276309643976323041929495861117475346027336210995829074248911450237892022336123705050135716889229871434518484137700036452186522109646208984152584515114117742960599523492787437201148210261055038452815866912324281883214205773558527399494991015717780194978501287158730933540816790010607536465617326771088359376903821640036780520833026342161299356432887674999003759362100383419924987982053333343156861150435296530952764982541431888145472732786295569956969979650137415721654673228473068506845059965390127167787161069212926442099929069625347467676803519071917014048032896517641697434613962205670170745255317112535549688049107054926679526427975642686133563161911495338021667871047485780134945606909273395113620078602172538743601290949160595722931428365371225844943101616752695768164395251286117140156349567854812270729160714849612784362014184425447758055542499918646227171692362197965734825431454635182766676631726396895967681429236731774941083228812991376892127208505315228151804689603633351421227191946344648523302919246776169892878033775832573531452310982319583748224884541290036772491265626563654527322533220528739825765782521715751006792232092954393136367210895941327295141107196828297966972504106682955525712696066822217345867419187775073114641857074611968245849200458785831672690110087936617735951142856714348313384682733687745956659690511732482892707868504726816996017408375795256713560363479618298253763540550697498594435300392586558984592291878824125843941651267063221649347839044629029456599466917074978193867278097087405225594548207972855598728358357606632923838100060982641979836035706902649254161872445924549592185405558601314825160836448523797940206994099778030861823822622359478186651892092473011701215535544140620553948162651888968315342386730287864273301735039865987014588007102945404475876992346236122525237091898885320307041108001655279502518097640084360061615723671946657252647375816194343472328275763113107300525974971331418098692337354677785431080101099335627487016388607629099379219879995743219335926353527828900717173353130194745795900782041146025774858310249595417576504536849222308247354105275034266416911548596450708837109977595785047378042059385939851696221118528585160282925295448774515612466709787241184379961256363803750240704229326385309036375736931703973791054610905697102595443053507010250369996019052821799048133339446107811443745501824271086720769841629706451376673882811234287314941460934027012070548175966823136324489877147384841901493455942313153697119177486071824584066504513083661221732874350983323561044978808329375199631839531612248910787902749823717497624978051726414403412487121759655048630108180811643024333274365929174131874957866324893172858579230153995936562091755012095420369294837365209816735814385018624445315864413066405886850647465022746271230590381833402877991997623982514330645645275549746208914038575199387419561508833564620305536141926099885154601263906677085271465432021420267181621029857396460248836480321393826890712805964439749333885557157978638280718381206810630226514882975060810175920417080228231975322987048100031417680906056641854789611787441733362001693733377279982865607176220252192375144528740487659142855564969591348714722830904799302502394711526020903944655903566138557498291372415114460602073053640392158874214578048315877407551760513454055524201884927879726412741683963863952984728772351828586698285485271229101015340052751615938631338341668589436247306648149612344310654382122085684537234739060565167571510188597842831747403554980230559355918617894937929005254915410312152063283554228047696600204809748233115292711462815198398800298685118886311772881473325121722809356695024476320716523302545511377676461463940150708191728271679807478873083313031926842390487015884243016847243793244616280987714863864712252676797626877787540861982213865498617419430066458284225145136438997669979256785054262229699466713907147025281150871687988925428363030569328449934333522443185013096506522830961497406797271064899501097489512500875389352217674605714771787267163037065825962229498655468270929528316604713124238466335467843727727010795468783696069227804973079052068910431410950673542345139027462383065685076021004136136971982855480276319092198480077623453369294865954608711409359054885521752862507285643774758017832535187325294099788711732826416710013814582578437384508987832167644552285590878452385690422903417954584629813617717345486359500413678063822024603179825122069987167307977977472222815608586734434622091559536024307095657319016836648472034425076947577427213587175424859582976008243891660774877737745523771314742432554294983969842941383604197528306551680869939665008341873543970979819150553148033544761976524123439101083182810106288309554136900127532146652822982045430061938005132754503273598586446021949083482979892079596330220627166929885290993702184768209879631284377282214595112121223703872311385135025922300355630034296302685136099409439225352136272766766890035243196284911306718662100275623653859029795020670599415420872532169653458780691425061624654430825905776244963194215485118850382245414042754601869554271518522850479621134550435009051638030743116903810078833054077513821898196727302575163263669621052891984050138603444937207894374238090876467502384963008166586483759428804299622181764976388044706508429112952726750461897115173072651058602453747933012674138115485620185729319491791125877045919838926814282122048835818822530116220147745812589705394294534224337545644780853147791061538124384412741459095974205465967260592761019428072781295571277602656013454430828826829505533777412640488487601150117557574893146756080742505917741897528559827943210912324635482406357867826305813662901109374225607336504812387296538024744224715667525428841387603550700106365322427288628299553493911753042972515976650456887004860131139595510788258472500485088216463314793869655635440326412729857471948389594404651274350515438522976907607369206493057529330274365955371895067611143624357356025563275355430683104973997657991604255160431678584998911217882108280983752816467481506299087456617315282397092071337988447241139960878144335914039612386014425232673827319348603392369015697594054707816415482877390335654716015348022052921211950041752377321530635440937787820980517025122337985362414354377880741661166844995998257303873323150228734084069939880022647228487660899553850412148749071535040798056390710941453771731008627760953387729310326930421424698519152336197476707496876854120439992267454355105909451296733057308816501822677207431484664631920489329075702600434253299129909767107444064378316656790085758218572544720685119323871864099691231995084138628107584026014024799545143017811656500732827308508937860644081042328446686370809055000563467983857536681522756630147527119435082011530515309774415394247156976556631206484269625998849322597406282580488726084222884592730925068677030685511569857863505056853945848768808489473261328707394979948477654265760134998304336631895561204297047744008463941358206644447451403379187721841659940061440963014531896759220473186154378098123370148347078267291116937460171653856647951836415926221035994688320448269725160730509373700958823667217879857368667422767378093573612251797110339430503217406147700183937512736484027780544551614168038372060201056455288634991161669040064751011371374696263063394673319635946958773858595196199834537826168497133891254038068796531189387174223627404899569311675011696065898713421239308101771337770689607891981418384803952966980743814910686032692171542328808860821214686968645044906565688784757533889074828273065353243843657980650192589270147990588132113565724141843479884913605619375235318564743469664296201715485519211627836592442971813527979436084157900000172633286196139392071513416937161440039926158598840264236208163266601879173335010517016450812267057793946417471262414512754005282100936706652454903619587938322734876878683695645998050299524958245379740223591181929068602414831093231665784036037222639459893757330580460326617506687654839428805872359559023726582913508556713929376231721751104548558838842641934358699445481758075241605143286358938706729673851662896119197441304598616650881588287655887965818556504359675233381392700147065523589108809676992979948920153754083641736443075089598396656663347006585964798076829682413046730049897220010413815311119258870794208588219546789672071995807678815003646628737728834763018406765799161734751858269276513221607337689207008731191650225440787311485807530972681799673274590205863660208319400389733044471134334509442274681672090016981749120953805227312373514245068801942336454599818996006600570047151659593524552446555506916087720962405896619652368847684770356950622124494858686130762751948628598420654509400185261061630080557737052523892054917752971383906836707207358504169137009603739020614304539978787681345709337267750052157536816634159855933906441139450171224708874256552543529041208963429950407759585148984788897309883502630911284410305310140784851352440645577048519617642898007764535805753258083387235736887903758567693094061176350130089416985293393912203350792567084035339198547130904948969660984839657948033560155816828351612321229053426423723701079256466451751478805441831641111152621823539691368231246718908229189697917242806923831995195617782386417288178116108238040273813298176488513475487340937727741361716608626192973652381075009127148399017116617858021091833828195654971030302890152538260804374425473369788723219632385928133265911451821791130133948814130710051842416608692205613954694768472912267090523282913095008411780139117996541190190295204426890471873894936261139287914207691810376994922685824625314721042953530534605190509219502026626480727827923729965660573394765761669168628245903724878809693629441796311967785001969933094774217907965158399322914234855070043751095149983749148961436251258509288309378753824739641393297764085940346436315349371691699128859873775589147569379882829358869493150460216846557409635865077675619493757541913641942950707129936749712577214481256896725500601928970291416426644782447979962961455736596438792229152650802782993643520835593624503596001916512218042913170053459379638151189400912130853153468746065003520591238912603859130318059664468995642905206410926136531739767340988142083297530244091613172236426803880331639466111087707558189583739219410083391937432491395745802508231144163509000193593647725076110686873557164476483745918045818600288796492650522161229647295447773421434805853563130500179378412634257466203382762278489674299486222387665374157986765428499078702166153599074064301793866822919263156779089947302778851007303032034397757776583491659028109511343227364258763809610036755161526168338586175392473918496606768989444097814679508905519404520819676901774044909147976039872359373568450580317614938613442915958644654266375726554206036208744085076827259275443736289767540893705255700906998082081101941327913938409605766397687130710892993881585621817421774422097481834495693916626326248508835293247103637635865578444405625728727376536459628436709789930019213415462049767629516328225641221210045010096950392854796427878076642729326398785339058243098529262195967424383443910832194750971693421873166552273193008645156446033789956012210205054599836439750478115666798241375817795861707573622176469089035454551612508749530374336038655308318483204810661424771045356936454199468423195086550240987416375173469671826626428170895859897364944976694252199352369942488574041399699752847417766313900455179682139099677389347407150836338817455472471904320520874487186573685548775696858091451124102134175611230232627731017028740603502241852739786101053059538898155975266263625810385491836280279587096213218499425681641747386295997990355469662043420444484389193807531358667851768793174818946752916147419649097122405064699716112212574469036814420380976190261896994357833878300875857705082841464648490801980265035635658531910071981416019249415380914322949416317279751574614871713692934787420274302857634343633947750965611907647430944046436279339639724166650698287266291870680043534601322518119440357613200043083130593488771177139673031832466942901409813357229287157557109286674285025739025917845048703891832822855769904044399430923411486291972411731239567154287058192928790491829505630839282115338344815942056185782235384263194093631885566745134991866481525103631782370304405563483663974219037596024356951465214121711380905868505737151759242930379240307392646538786483877125419150926248847642629438345122559030899483648790338920159595721631518017681289833828278961358990501817070031811347190766839836060332903180041161334982005504912464384210534772777856318831070105917803205178953170354335684272280978450726791742423573304272500230889683929457441311788135202797014720560816424765941789156316059816545840714940723525982720730711166370127813659333179401485055556341830762694087082585249154665689541949858532611903871795000091505668042330072196172183863373115318539392724403807447839401329414194841703306347391258151515950711950078783442509098165579460240513333599536343150391671845578626517336046819702494609815816407758350051727107474515477381506433535424497272453149244279727321981681373996841711579183456276388842799207308219459213728140375296129208080982317598495249643055321357923163376922463988639623075658554604993092243844448687182419204029190276103474441818893802249200778798298460511330287532778459804100292318371479593714035615337122688703118336368369739838477891712758875104535933173938361519123088510240988501064376510788621340391569885900839149968081012778150945451780735356517081567055881320120300938368675973624849272944759908038660876084847067329334540564290277717547739684160122043940191965273361413118297722565295809946621513348057536617641632965898475869770873861237826403840811665415325485546834574537427723477711610170402791612988197888289586154898508357161531259871003404170720885973792409465901684838774551827570881890689258560180928486406505501728782850894149442235645715607825359213850665364871211156187666747049070643475245114060819413400328936169246581444653979458095527390035768421468390666571498996153108735484112748043680886623975864761254560327597063496630351882396346505389746034207500855990076008437360846780594991554227158409960469702901181085400172498247207805577690295094371527440332900300947665284626597633730516455930445613391648303576728693524093272217506390199985474834076062470469178220288856270489282459854101390695120172436095797321461747414737282261147942737515034994874985391569164839718063715611856362252827091340748475923728554705272420502752207135962144594378558045863151487314728502792479254167925774362706951234121567425972529439790613859608394441147094895707654965786045779687521200601142182973803427949674821831129970700844997260140465810762395218940012706501852260120361452235374805557107915877278012196804623363735183175180112800065458820619525549385629340385768964692265781519643833103931419499808895517491744137569005578326822693973375882867707730039448660340928806755681067944056273191791542296848587204455704532697027855620891833300035746102622548215990678281783985977961967477026908514376855018576739613083699027288201683053233627288295652165553256469076325103307474784334315464444817611611496837252896856080406971047747303761033411616064229370057522149650413453035103144329835883082254228774995382269445966006367162560690542189759608358736521100773588603715671902079236139326922451104713795508483547624129910849524038512877888853111494960373241872010520541289828781227464471389567205790516159264844670454410638873995949206873408872098702664971091843138464047952027709551978489393526772104423403035105111179850194212493635845882918560470026421335938402684333096066139877286296731423574102447317628857004265015399432043812090511682522960346362308740589004153699678447738519311568168496032522099252616033418082423171955267186463315353465090225448645268059950321747104936339159702863294385900255425218802157693925844390295337446688502027224169736893091211611517204285145773536843277379220778218618191974818855771997751845229605039840314728839463901217491443267316542915805718382774931708972308285728176640564370814057496158074309942771546327857093671866014232954647097165377754185004179045726219072376742589764957327179715045877063517799521407553477966851476396531514428465592706106467594641010082774384575419789335301084765722290042824836953233813786992881938142351255597886703615098748774005335382900670230818619424143481171549433933211772452919732070177673826978285088130125057547078231501181048268453805901994669188353683835059668426579108411734228918196886423599819253920926080198710463299254637782891002931105073614074799732977391229531579795517874960972110960180626359914806173588342408647334823289848640658559794053130098973980942113694248489497169502148773881795339348665951645973176442195054411758205539963486589736694219174887413011074172508705827663088104774885391931354982580061425036369306117118080943358563210052310982697157484375863007364406600074371479305028749867431063458105334490870009083238689893472584941701898290306119708861950569153657693351295869175657204823016401360905530772970285063764807592402134341766105551608025000992045166191687530585508488655223998058093925476691296878733552252664228334428787071251253655230817208777848807588265874559000767646998757006737141937250820780953990478063053314219008002270869793855197156910315391069812128161631953660774561082644507393458453775741518712663629077507347880926021140283576366633560476113056012329716002322524386715026679064099424646538061501184834405667414454703580977726061628890471046122384477896247992926759575405262535343490763765490655759864218146472228415467257474781715957662318718616537626837354784951546014790596042050524354314058279820790750876477161913582043436462550884675349606354404690769216816877451291924190703080391092905208833123083664220474134577432362862280146232049728049974671587185725386232960306084000989491477403779025913729343293754958965766984885713747922862817210063722283871021612232106991107423576507137974498530714220993044766013926443801824226227721025665208707193078676069192804158267860468198101234077860854139500280177743552370508019382445484094856080264369704598504299969618508525911186914415825473684695469972863332885677684435699194216395592715525230489820101362454452312306875362779937304469339048145026373745097971695075039615634485262839643269384555869313224484851987080416443383699874792451158631088370415065810636097744364865414435241071973736540477162991975759340012114355407287810178504739550159447779902136891063891370013900405321003553672701901610776669280046661387396332583213414396793799865181846020772135695607579379878410297639170426456101338913681733166296403769296399530329844498172456889160123418433348512948365759697942883343040780187879997514913647364895780444479719319714381390124379937029247610346920029161675869130468142111713157460903933169135110399972071686059016891890912171097780518269356318994166460984669981494960271095122880593824947369474300654532697927739604783370038220302277964605555969425237668442538648349572541378676501620141765198632421586415471041652739482747267265865013860857364107584651375527531654263805505756453571521946765884969482560477006384512703099663893353949279958186310123627214901090988299636745981988584082426610583010071459198956983714244156315112984127396052692468819422830990653554370453531679719273624469316397791815480707738572912450825706830152497327534102155456935293367745719379093975267614123741252581185004223595422504314608458566762227444055722059132607322736860331121835296647190471750667252419579186395920864529697274094386811627963928246333938312621043265466272987459067551818560765730531531089423151083072009146006956188011161968072756167604429489434359044793571083811872577486752356723535887323401326227245082395876666702050696933793939203644724692209348050033456797738346895456321450260838512388221005629261187031413312434060615205132838519941407020435438192056794978958372473175844766454877481997233158348577111146316887933821612611053568948192698074246061123716777893663484398696372257567447576276637290056686365912296080734129129479054054448130121647938802192120251293338780922285832650394138850329438609291874633000427697793149632129636428875954950775932346833795842978175758904424916021562649467979363817714818570955915627495537882979328383984679546905039288075915938275928141417854997617934321829524603635611571602810669443804849382227080990058752687988133047307696996732011168252512038497666672688302392794902255333844403281928672168874540777555583729978102467802244163947771742107541470794112832264482951190628418948837777581507119841921953255825206129158173764667729045737949391612666941134878676422348338503537316332683376039621760552221239522463037229958056394462800891493979072219474884062628249061788835927521004696318504303174475057615045551748495944768053593035549603401619976186487205240996548568153204473356328634443590952549251453992597153999505355019393332907069464033231939646393757046640598111280727416921637478882817645699624943562397790181105271613424944440006384979847681553226930390162505790889659254270560505008322801383551322610404093985303212841599662743193598374745201260618815134851889466895441216101781058444139094602152676998952957343994790751296249782098507876199064678247947296395150296777044390817573951854763751679892203367864514968031420218024734640654059442388775935381732072928460551374349397387190959870885812055870529846474572401116527662731376290811123906909175521640954775592958900710469057816987837840858787143226067493093486883378639954740895810258200125754449271501334301597337898201284195950322947102489877533097304741154190687069738691057298529110514419245198867592035898133502024070703475702924059507905976316949779350548259284468725254025078110008301306520219817327965042119439344207326374946383408453391818193966242643331996656999628583092700451995898038067049068013212223173851196783364645827945907940164556020555016607812367038830882877477108157204957548512594220526241979831804450596725631243002634263451896646701971580732966562925168812536590735182599622639574199660370631639621278424159775423913077243202125025959814536405737087893288679873589880878028016155777114910898324453589331777441596147139016799297648317545303287009611396440688791679441284860979493351209413485013652428400520719818363313378286495378042283623914661623655252598692203168851868369749097274049690935205193587785491628118101069262043723752753135050771144249439896809127743726339852220015484399096511444631377341421835164526656969709120849607819935207125262140842560997831596305679558470396900324977387911905183551084588721172378191497864524756711508952356771302811499517754680239147108138469517281776287063540931207457428825934254572984615267192407284209027709321765137108129895122676544365573722057509115728800462756293744929753838166446866565868830605445111891664844437341190747446999439786727171230681650705936951281836015325791763908169034273817163913085488729195398095472983849448722307275188972291181552397522523180796128488779797505602087449736519228825644005106617244423370275350302603027977336557436092360028074888484471810337981856293203037769417830636841456922605849165156749328337477667412495497182125672980959931543518198241760667298762351032658948133333368727023022573240088931811558798040478264161636673552487062663240105714151804339096621864135049374811509091114283078876922180528566616464699801829277982601975500683192783751258039678281785267419030407102673489361040885688909189122572510745704418992061485453039982216782979503259683448126325785796215241035797701295522947664903977923957731852143931930596494757342829618305274185513642036931758369997298644873308648078197005351932354929552163257644061923924527039047359993751364471474651280622998460451270174085231978573204065027418390103141609126602314392558353866849404700765245030285211120783432958327836543230184523505404663489188409594084754001674252554790941951251291807540910721821973400215255713643867568465506975422937840690193609379218631123863970963425027029793795318914785492586588605094416744792186060292226371079547115264162438673864653140775352726506870347168410377832198321014787259104430564812673776911944296380585515402282836111262673090103219195566743606553468076413792737595770168655303422947105959075094936168203044410571588051043374727303466548368495674115358515040328758836164613469351382141400977310712790331948241920073920785105819152271738530121109508939808523631264138536811096795357393973715578876449294293833513216083740720513623998464385094755634189577404396340907695184944912086090112560364189804954693798559246573642915380524647566991592024876707085368205763050249458633328386590418964248498481878623885394476132596264045545156144388502660008653698799851330954968033640449352953045089672078954015332060369521961866059145636120792533581776824790363480303672915283607096525847727898403693866986862469266239214131825736907565417253762542641698948189585048784828439907492343913984467846223863243825207453125172985152576981829983215632040623218028097251007174273391230521546008489827342538535431950888668137248179879119847742773627092939731639497433130220821719761120641494314237197287131058763767745907600739334496913373682489839644250531494659279107593662451611471642550059293764660177792439831205302334180957116592313739722867016990756924557933018549712382441460609263360946686577589148884211375749149657907871343074869644505564916990566709603495339644985068851303696409363051691539938111863385223060565344716515535570048087764008529848642391949991338178856117784794245947296358941022098529529163952925262091836188859392399608151435831068887585070002313032474328593581040797008651497686442840366432645691873064899659853604918286832997656851416032994888805724479772111929344489406957093791196645815613979898104985290320143907663270137999607960191223108675963610501538479845617202647085896411506080781107686285445307990610859566006161625019306790874148461963601168388448075191149077897228652783555528926462910220311851948655664475584678204120431408554068409088443117519302721581111190537854206001975853870459022198666266248340797884191683940619611333938494481372964269776109291245117871761087921246571870688382317333748607547192251815661829868059411581543938694276473607088706812042842096942300609644082367412929463848641501471976307506577388557457211458775313758740727994897714707189083006095278954085440820704921271575102789739229941309299845986321342031144895046181136065893478302592683618199441243027132052495360861043702482045832938957639463834273761325325705124989156184822955398689441720296564099695404775177311144563818828068810311415475336842353301980085367538880849090054810001719228271794913124718250631765584291046811604515776276556141111402107165169719665715561426705684666025704668726900954505483849042266129793725163655260018293408585154210165632298635521709255004617674042620527156627781851199891251010679577143014983749207781382181162613062123042525765443944194528601392500247485121234810539605693118619409310291795034519470578788865540298426984794183709277025973604193507948746459755745481748246455132457870690658847596180568207991124071962556818415033579068751062260640016512971618082740250009548602307385636661111437352649555912745603290177039684179888982382970996545016117764126185023629423974139410013600105386572079729624520570707654910745708178662327264852671326652073649161195083503146446897327224858470875638415726242848807545928781112726647416478946954290033123585406468075145525216210535445626169249516528148579916645527841984386236102235984179688562703100498733744935355029824165798644473675517766654835261703855503865311258930769571399522562915990363884999347607099516748243210003498873177149902120107650298250022083629669391285367579925119697491226187927656746096945338490885861181333223222049781837581720381227978709429735395083645777387375863775088735798722867004253949340954028614361296709047508344448061859563608371532345175085630164626672624649845083031337842045411786433920585886561167703339918713011310629636321890941275525106302957581187118683322347559178910405403073881567159983652677044038048666896885839456601187102329349716612380293665419391339999398886787550520110717684752084921713296437076366875474679288202736219955565426717477944879966431895323716031529189650839839017632597532437884052904339105893648566690384044701663784143507944449890073783045774486204611757800197240209322468930656488229305100487107264903192367914461188252162927755191333621183705300737735982153575399266528648090338553618932534038459550119221569270198091316767184594340810513234597620198726098845415411757146712283286507963974115220780227077847946044202880116284836421229479498852382326721578601260719052947788448318863247522749720633369310764887035455425961878733032277837441672660013812981630975367549542156534857870097836502174392348513772590653745550492475730971695814384127377195918145791901323195622260232766754372323172200002408329033882760309973694302063964718901844910303736645829328665095740340436144642083063164558644331499062646914719385303836874100840060610163713528072182020849791998326793313661160590289623700409480017607561506341645675099013744453602508661687985024408755110420074562681310335876113336650077013349700036085740934651680359639402286853765101964942954919366836149179265321931457529196298177665754287277870979280620226946508635954771991236550579375653271319994448215702903302829955444524110041940148093222668469475119500174837873726893769317588461872324762988961716097354258755668434772095804285140287880041217313985615166997526995584699216365017486734819330793190165757103708351021269258256687712187770393763992300855765959003120474497032309712337500698904553971265815779992777627158854161535419016901258407789494776126212699575833198974560075231781000151299245796188774538814331400085539860059209528344443262351137448732836126589966760350939868757682127718021494200884226378550132037739371867554646652559825760128130437112139527240367491459698913744835663254243549239245509945825610066160421506825435198716631454114913734214715582229900716727640412683165395839095322032897553848384154406598531429746333177594302572576469374738790371799462180541682728185855575274143519774435463053599708027337406807012112971397268253088463524724292206978190710668839079651464586479393205489766143196046777880417802846940736048719019456366404617013794163014776749474925662917895422694282667692318732497268855392062229824029715121761892819423247291247479047952024453517322020121115969418360799053936073523343389219902480902767187566850199222009052973122012352372578680326394664776424491942782101296247324133976333140285333370521859952652982084884565733764719836766956358298665160765681158016814731528596061032418753693058284649898096568960534249524937871106352074390060122953943346258456965222962022223159714339945609721575272213518946500217410164111728266674580766185638460261750010189318971753437940373474569237393080467032968521948316281730135295072093917966440037022864487579786411962513647998214419093419540885193700898326425584466454978180364507576380215418835802689135935733074595303071560907979039288774755229234724283230340870638665027721971318200472262675979325012522902776476948508942648464069163982121068667981409875056097663772415111478714249426771927545500267098815224862322196568374918998944062361385345346143856762983900024672977196040261704920046767614500941460094779042089607093344376125254385578834595842952172214658918823298309628483085339250830490794389942818784415575869178029556056357956074211495757804710805852456427458531344066742808007423976233610798696814516980077832780830312017615307012860116835747655693263000435653380848119728345985092630516321855853744654202610646053234742254375529131886740281717665459017122888013712656282242812821886959484750406229114121427675142442669194271122247649630894518333273559123190019351519355332499839600220807136490172619913517964015383440891153796086989783268373960949099635621820298640104806503042763708384515068347426930986019463964994102888497526667515901218764480716383869627564457262093984894355949527681066457208421401674889171169210562937608162031106968777938624845803737600058027726408339627076737788951753138552887038822975443460200132709532614891533744913348065925152158801780108742866833358683577610053073982003699071507675318418840822583190878687143579488834518911234458916279376816448139428222009396872743749563431818882630213380065589405751354349500854339518796243562247549965831429802538450855220526606631850665388874966549415212952617566907950296193336800664592234367247016311925552348382374123408834739162821127814817268292615522847126471095233623450228586433355141105694552608327318711128919048130595602480967246236309312594094310358491815117628530144028430788111861381470125920082434756997046710327355368689543428163543372894574526927394957409891190711983585134796647856760475078550571723478666475159197194338914294170911701537734288734819789194406881980636441502682426244330192589255357775015481112403397155722880301107384007656820581453739634315096744502573528241642324189159409485104250415841169669562262054561998857475153169824242596294606694006391282281050454839013299622644198189078907609317768103920020548440559594872378781834496548577743762790760775656826543673088860081072987431280622340220160254803117729753370050033359266961980965214707772380772138255869403903923134545394032800422318571940778719567037705820879380977192436463514928429295267827369079220717099993944599853680177646708190413463812104491253580246859562089196877272651414135773473447409683112529346473961369421227600451580612292346188774479030061138233545294369865541126618482303860355580020171111809914651514171619450460720851785526300458678481991384632245657534737403447240179762133839577170612781193664246402888196349254387059619695861951387769421219388193782859927883452828944368229472812496089824638933683413551314433216830935801087048689956622290881395121425857257910435430641849872735727629686854528495726162384335543004837224817399138256086905107578857079711283614186312665672929385723793569244046454995428814575667682639349414249498617840346623290281776188121328441439845908096146593179691404605740959541931043029729357725569748766509382187014443650234751545940593754904728333098337685099517620318478552165123471868692759960642325325374262408318525376795517653666151415481488553422702812327496633603390220717545344253957183774847827247757058724430832537706160086000876166200669164421491840110705883341790104956848443567254607553266349429476607934623418285868829139908950787643012192513791521434470118418677766609796375217295447789449833823670902096038975876284396867952668804359084554634787604630187389909915714559860918802198791494269476020644354166872494696660093550057548099836166218998409522670538224562008622592130722499668827849844094307039007977949940931213641652091904443169658801444285245278878644511897080946371335445600242774344996254823577438547167124556757273949277361662938488280381339215523156387364435832543515025278022501654431464756706269504835020841617308570486506959558611527002339370420503123980727082135579402614191683420631548255994547456245902179143263258457154884630188002259988924397852986083338778446674244401863284251423161120089308890520907923511471972032771482540908839740472795146509905707491427198214253751009357759375376696143216349064780039019670659500302831512286862661280821715444900143503527142671779374005697089724025816464100216613547393262848159589021582317337118986210341953402369708372031776195613239114259258536544450020456013206691731248620056683845041675582537872784634240330241848918325750726459933486596275801340552102320758033057555427218733059061691359547830493321653102342076127351287037459514399494257985843047122333185357098793655606428357838126287660122301788964233790940727452384905919660477506700008730958589870406340014322319366351810121514367511947731782976901950020346239418661634138915655584900413419409251628366049632473571075655822829177985459557271390603775861572931659134279648253827639523183197022528845258283922208944096003962240292201648375693120427455506720863545410932368394608732978487183259246046590338815423081765979419053229989427044027454112091923056205639612369247651065541374731920267589957366779866035617003657842588036151846439555086328510979420536124854960853996488377217994957350120205846002693685534240178323520109344215208903771097208525140251620685882958226128379658664316897575484564720682894510784170706603549443883220967722179319307343205893893184958248885937616362707554475418446787016141975893070296335422835809703157310449819263635276287675158657755361930846462231763024080008971955809528450417991745889603462297427695390417562344487320338457412428526114340075791885320328094427539652977809566443850514139571574350245658317746167665917618742368491973498344149325787514564437737635615977817449964582086244504265646372329909920990050262870924554246467388669501886285853925375933080454002794188186857785978291425295066278165353801288865960632390328184979632227959528086817667647688701953420098463781900596739537567586504100249306377613244467405761175097285474155448322224887740999570508255749331611486190460875346649544277674536347685716892182325772787883379181672030655746634604863053010812213489583419001909730334433887282284417534900749883670749363322444290457741988075086882909982990146943338039912670077737081963077221905885643775842872253632390757392724483995360998073610360183862444167835587778706479425408238085548434321920988198184988453800961496352057269665402871685000157433482117900326884059330636073483138382432476612702135042216775836838896090962371508280101880181827043384974327823767979090477819028185195108777357960497603285651997694437383895358212504728521757307411238120726398498327616109769041012222824803329179509286599984005044002016733230366497481740489300559051910537662403796055228308298972869328362215833025400098000501195154609947160848066460946009306075140043542123393548379662877502175309614689127054628115517022949300873427892746006230099221998700756188436836447927585030923150155502218903751740002179163735022440604075896867090509829637151053681704589479909215356649398734293199602297407306795378533239232485873904382003191784262002254313952790719613142080628287657833075907914349715575540628847040169190790825577590573937771091978030372273810685690263100531104143451545923430276183223407027845809658107981927070646995796629433173264914568401492754012469641440903033854935348658386525528128084264453408359234215629942988301115748497337339008413802242849604884859962442243918359221287947361780884976807359267419104615416487828987327850850744953759431285361148618515333056400748371120743027422530708597918325515359832920668220125192458461691733079768872536968158305698213985346083306765087725436408165841905731171321625854922134643611722055089109478749836849835695952228637372126767833588903527345620143052910999251737398174521413772147977304840203123303890262003651000073234746873922431579012621251493779924968185973354108221215429823300978158781242537625253024148453345314520931452824551314600179119944510907587182604073240664337231986064987372431118660283226918661722587703344494589067603042945542541481327330464569545733287017431269742866580868088411210059755427234369759118343126649657065952591509776020070771223148812822289317631384919751736169015773047970292093006548733840490457968767186654941958083516625612723562847354964316082822607835570181531343113910125283639481673001949237436950022150931273528439731283504067836351691585348344087018922280058568905414032713540453493185991006158425193697474104298471048699294378193770788993175243868516767953400009060200992737678952598520662519743670932009828024862058149552644965485567094194909425995631339424981224572178592821296651435989163342067432105096319642004874777354204527758720208374606761376638452276737054253868017138289500683714366167721285358506309416160907795319175879149830256367636556669408790599409256774822291946079704147164561057332898090071164875879894375096767499163923154856502719880270042923434761716392689963490130523313072867472670139621146214527663389725666768597021990226955654110516247005559674817272139711891318140078831805907079324943150064412890441099525794945215205819777910688493638712533260970625151503592332005586052541819293876165344000185895509626556438231547918501344629914700046175113258803559603117224951225696007663147953834089363393992587384456604690374997482961644539123350259754290001856747482950462786399419435361906035177431600970241790039577560006786854553226164978640133924243938024219750467604489125869015803201755019244523503061457762272080649596533510533491009841825945578292151921531028290771044592164212907794618744342013558120367528596600527605113753942901422829454992824186691074226468628024466836433344164960437406695136771635576653060650852447692227673268824244153825914257961767148295182381057843442072778812072483246979531261279991953063675995080473645263011813851877772527805632760525316674291274403412812842654605820780547825839487265622256835541578071519752156494380153589099093327447087985636430312736284332006008911808146536367819423406369354629902922651600713734879972218831556744560803067968638122629182870866837257188337878485956879366778236989520711804763031453867327801013325624612052232924935580503766252876226940629405999911996277161477992151323683226776475801392859455855026202417540967732105100548635354419730645829389648567125157256729415674917670303619317898002238299677674210855564137853716376634940848354948719668866907614708351113956594882008653147386019929713058040735038981451251950605698520535926273610464185460644954065714366692947805455244304160234753985049814212080788603707924867856727995515376258632178431200355084417624482534988985599600733763464154888768350164806273260399417341814651138173087910698214682207443123468089555090857232402479247157586117083262857334750735289713284335287888965378005835495304437286516223265981839528141951601050418437318643204354013346791652001759545869411654833469763408302242531624571185784985256189507041209979131614850744571514077840763310640199014368830503860407452283399302656099464825887284145845117605649773416194852387258614234192249512827240199806870612370751194408449812634706718734564742886330299985654800341206622317836411465612277108427781705514900996960720633961219692849956197614100424850825550997374815462772586459457297596311559849427876111003791056573232507775604543477874713340422437566139872045470413838242437278058788012172171088673686124167506449891719153983009636046756572447209186922211283604232119561114256093090127058792903139977531689670108536271270745387406197482769243544800764311882204161234601158473872751901326948462084493356739787258171968605958992953685731794294803261242134682125172069487361465802613637018348245159451825208561230022915630850557109313666909543228838306366495732869158163172032994285791222761846086355625847342742408635066954182691091565268156483294648713329257842286411657187684410518549973763332957651990794813550849657654770485501475041203129903508255548543786005427809066964256635032760460666228650155173013745794344528071632522134281123794425008276172149603369533357499308334440458329252706914710983021835993490190547257307681832965427244046098330130014551604314611971398241621499687484500789293585532855927922519491996885677196213956867735491451828380920228607591143759879151060080912382333099623260861607999304079064456554803661689576727347972587187097813115291908112780841338370977419079932420270578770780813752838281944420493229026967411836688337376225858109687706400115305136946272898534394700904130335999507261711180759093696124013460762816940126525288201489070490081841941201122446431919474614420855608704624200448790345856695135610470639696848524246656709878664941769705852607958599764215498024321089972584952555735828081069688264950712682407311012577517364739416563933931040549838611851879472089544615980756842383821505763558140537885753569852521872171016016912746888543411727256404031829579104987930905854747798383352776757203503391789093426523877746794747179691299869444654193545569401549641067956382100728076829773328675436201402014748524716629584662595474437545210130164430647834673540523386790057345640582771041333109698814492877496241568550638204821389600602080367865509393386571795567692246098940695220074720871768438508582716373304911064448516357824212565487401402034364877371866736366524183575313770424235401435035891695697908079651120049852089571802457934502328453438630255742807424961676057417004606138857977107060775635373824185765371700058107503718259885664113768340829896961056891355590587905465544318118345062576377155503688423684434910479866065329141977454890867432447994824987491351203100547299228708139678780984631758494829698127354044170186798610626498197943667526013647080093813530865679271659644694832282347500833479258001789601676634634520061404141831368231234630871994261696175644442386509341449200363870720403921354838473626405382632288492010712141130952232320610423987061973874135084507621850887453837666236816242887187211660852968703575896387549171406969916975414233484367148227430424829327098531932418647642872135441876028821398193107901286399125041854604071650242670170542068241863054571584259294608357470807819636561873173728822731982611200332137664023734694584223987069110933365031160313842819871496194022454435151070608983382207175909390101440775261038851964336282255393571157494034640749714607137930466991064651791057652727937963934666983065417487716542148747474582862320979528713325569858422069462296659234247505215734559805071646727156580557856513154025563411049558030077116932762101627037395411215786163251273300464317536880739761262802300577141146685923431657738334432552994338047207666030621086009558822992379816959901499571771516489841505933537657644430766141236055518039139378066851183352547128716562029169826552903146574666181496433294187236250575712839891580631628305830893093656159853988862979044494028857003864603856465180678597882944103763932143822908981206465881028016581133295938744857796066560104209489319117844920028768308085160315234440843017789617221529706380041222271431016516895673908736344567961533940736436059248623065163199071482952101057009071051578235626107640270698073119786394795707443670837995385215716411399550797747481464091231777057531952099801306148362920028864235127686209873629134401145268087131796695198806572749482917984123768137825589806353344413448867497886247662290556248475087898673963561812504786757346760376341763920162375356784786035932045285983838889662386960901451008982831749784989389530391672715421939889986654887975814670772283851306825003067015553410855272632830797732689244726046886373105059856516577043910486561955527989018939047353190627071161934826279855793447889179513336010900649324697392317297990006226484775198581950876780696533984223156293535122099065299109392273823195503804019851378699229219027706108926052826308359738123397404130858067576041896938973450049724575586989423964783788275728164219306877979659032438007156198698899187257257065101270214381215632492540783762636777237837985485936473748489771918644801856207710616459782646982481462843533023770403460540544975084198366135076693087197407322766205151263201029757534661328281620412888292234265620553368577824826568626918710053677130798140358120602686440172991884254793495053609396989976255515448306759365429575156573356965435797334628946032578912355470037112257400547895525306423064562512959189477732713611078309952554692138216511251362094949712654536168212468386760920766428493016620040577290399970849655445085100569981461785448445985620798652050521662429097269192813957878245662922219559488943602725504460527789332591389427077080164432477577421038341877455652189356451641466312114350166527268492968727408497449557510021033905771323706600192465802589202964802558896277942188159027483609252307847618697302524575158512634347790766576651699238846695714145487911575847127417502043410175225270183272205384913682050874222462951012973801203807714174990710724971297683371589905151899555222296259126841742178025279738775075925759171914314200025548230078445184176399035982937223936282216659959966179939877306748235078779290123729325611867249133513476792755747915902433976540512421677456343028511263762946697981527806025482271785580049500547452998118575447743334557215820900036664608541627486307407857186249481458639631341590374877044971099133552366250763468009223767164041968605043135758731745005860442911027961408212210583957083440888233044466420864451228641075233814461824003506965774214457737854924247938285900538448143626304055695320619292670132017194783954999471153562991554935958443888439551328448251580499471192642735501061961971827086752973593610742883518999259622835800970956782101169866815416302569034567715111768884114063139998118460207991541424102966877606546146374572980848967013998016085720087184775559099918196848509650511807488670430593311734150144560066715281276718511139212695516407503671904895278055282398953722229183027518660968135193024863216278472423622460537411467844017786552413567767316800049058331813810715920428681921043206866345838523581283114268913027590049315132401039614790874472124763495640470153578166451250260734377193806297002220553359429898751501005056603127625165088550709378183118391846571517450556310584672305840060123952246608562577494009587668638322899977998364065999590155906415655584546923313127286320185343335334334045447001782498343304820948306104624886235391262545732694109881270944458466660365504672935732075879292790916827987081392718193405257201467443487851721709833477697034861086804013344051998793172624152866372430888218415180274342093503613022932533038865428065460341214474810200722546625124885703999880319004325285903051946226056353308425448659490080598353549998605098620056658497752638398670511610929994656260394372083003899521985908138461545814033106371503473320796998419244865212373299919771578074453120960668260055808381148297078133080598741086605408822572605805168665079850466747241351216632125411820051360327387495740501694658890920249490539291986252153916140117224314614103646253963524788808268443496249659013729027668137042299146908279810379304137373500890683812170127331312455451365284237120563042005231719670092114093770610790157951919662080078118619476590132549056963522978620932132075346544637809913057463418046900764031868426466822440955037980162122685923909723665708361821336118239974568093417879575724511515365712928507333553311244081013803620674827976869243227156487950649357148578739340224892959989177941831404502308280349563723647165894064905556320271430821616106840071199688612571122925147665688770555413450971109244544527418803804459461360864111874676354954314304302993134513491806178915476929490060979183299112075067196619648466939531133374262324522383461761631724711176021752333519964239325012322304366615180411908204081572338698409711331992899514387876642822358935147696572885080191476245017325839117506516865045389250135702126482122880787601093045004155481389179112926341926327579576367201723284607810113195637402423917419225794829772980333876963002786151996920571776342646626229405119490462073385006518434187170817966435040084799870812860173319838024098428336389112961414784980173104599558771466238702291928486302513049403780564598709746637814646024808042966078339259174970143992817359810694121956086765154169461418157205721015925689378038968569129813341081926911392770207202888004389160080075996916262855914209103022447180659517827997308501677964252794251363479446484183177329936303338816809514297876224859338097325222713416458871195729287031723965020563407630026880458972575199502456552250331840142686895858046688528442879032538050179868910350763443860834249673671308133682888180404180895575331093310993193651063407167360820919157785563271931022374766089546862426085342208267957757257350725675258382356389726261906772438718532699774861432954349271313020972229860961467906035265473497253048487597868649217140971859762265346294260781288320266078259598072683124848562603029286082707559341092343136924124723646054640102557760401698514370178965802314684357631390721873004344410891167949913415320923803935067682233406662087844772938758122914951914172739491944191164459354326769850518847824010185420657523329805701559204943463168859093114795845433904183028701842072975760351473475930936331213338973460125693883845679760485445129351334754239149016425231586714611666648540445726236057437572345249543071551202951574297381904690745178995796523678182688833059916963421827716157801424087893297970397281825865479345855372280175185456926555585786245337464736332243438010089984871142977595298037693228883310652299657233254376797335625495346266338810748322847349122758656087570273471862842374496578962906261885046304797222699148062771719329998317496697045779670759647070360199320430053159843696277312382314097793202677537432787072705477364498690270827016809124947461006141153124345383292484624656548463770686113318742165500223677669636224756244810216281161249018523577493496190093685409944831574685724922044652255290267447670121150004061673415049755117374903100003065911749936620695805058838109235967073648847647810577316510118752661621569366073873918951286222141318024672284766193981340046827783162400884209417092198158321598512936568529754759833637234233590544070169214939136314551382370657701724385278137865719404016733221135579716217932488177736588983052222769469291056847315056078657502746115777343985182390705148042353839229169738052756591944037172412161267574732819891895862828017287509901202722755237896872107924889783471976923209251928705154951504928561974186936907597094286424087803231029743012734747994073045089779198626051151973101048440856963504299730863057697227947816865838981959785469443029760820099240435475759062072075097643956713457168663240567292346649854904648576294148075845385562310993424611835840327253610029898408885811690508952805169537595791212667584424734929494772941571563976777889077094361207500304899297274712230093064469780377701291425411158473352536212829753445686386464685006120866694866761558037914734821969572901822740947943182969591432649295631801011003114202193151684373807732216442948976245520651690045328004705192467144141249984277556234449217924303382484613564814525315152573571644798649889986478227480635081541936369167535691175156464807531519052579474586722539881832731864640185552704161921262100731863213914224621091027609327129627517264646562364426982140009509425320317590954393739513271262434696018832872334783228297139045466733014194507689328436900000285584398898204082193748836707531680133594347118608838113555442697509135873108398886739256170568077662109194446768203363759632995430361040283767139289567727730932416901104157257431203223367335735159054638934603567678374873053673522528031944959313449996154304727405996490347131343390354514358824381194962327264045342074972848137166553284725814035711805681706494157338653483064460341613350997030678249506516962839203298253358085536989207259713652410762576936736959190037976344385440403230817047132126476541578530521001260152380565036376706036629386915199780355784271368342156062084644309218548243497354336558392339710985145851010046496675329775803679278931352844151003779488132478140039337621388849226133746984673298325503794308952809350117289859237458091896305454504926286732691902718842935783572057622754615452343547843145679000077316920407242524646634852650977958421982223161395168540500843535401802834643928632359328601510131180564427362454394442364398504130698026459994326244690427892161549090325723796964369769047859328598877714173922709447133402032336532677066586750271426400770657809196468224556046228093499216176182100403139968467027382701829345337724574603263213895991014227652615712335424448482571143265330559061862319263441977053641560291830716877836409119280704456462183992015147689795152362908983092356272640556911433411765511301854828255013886871026031298936353234898982592946447433235152982223038881657261201366438641981810028633028168890170454699698608960283004280032757533737730789563240185225573857960539372582442066969095308454854366856636346341314871475816055906224913037821940451121967610673686325154867083846014606485308208398360075697159493800787488629499776009595140401180848912836636291945174755174928970439759856327592138167876339872863095138307092521071215301749188128625508729807063234200622110157090479230768224850695436187729102493548871391614552293943054478339456702520361151658403263369065955522619492090232217793241508457300788349869077936342245989204255466737236098402111354317705533937822475951581144535063346485872809936733849418446828816653943075378427284647531971018690010286873807148917923566817485952667000266589293383060458555505043181831447161664890493969759003680142184764408852344127961153112759285418865306278098469780273482941127594754294567412929083351850005969817684462257421891153413755370245646623623034579811018813201181143863082673237982440810795179902784010457912657281575382991989375464702455942518783457835830731126691034687261633527801794175320840756674649330055551343530670764864236344812632513257253360458174076605091658354986523581748945958371350074201050357202853085012793417508898444276532880381640324301044867177838197050903617908609831423200743256188111299818730992359023585101020966884175281027225855937944514694831160911560734822211056691157637245739999154349494025082040250661000724888862651736959529882404707651205206571617531761702786198336841140121205264481855078738288118139841963958112263247420901830419921792718834874213878272135080237486973932444993079110090887605189282842164784315254813605403128269944139234214502179147260592379752652601628430144424734712459051051563631049226782668431572313697358311895236858409493192507828740278246421131459256097954694484034057036753796334516377654325875354404232509190322597407630979602984147075330901167307620161501985040522291894174667881499947104083337481193386887559837405206856034407712432005961123359625095046272434091242302521615907949751645120460888519892668521048242259179702588937469651198652732245879914303240765340376712013211254604648681155253393773448567497418535472313128771120191079575244943330853293133162218535241920655539082150808592622403273041335444066978739760516351973525849640425549290321563551152271193509879848207308275979381986418311309934082464905534748499247848207507618664922697990662537201564810990381952704636909001486822868363451365113114546412932679458626145353976498410260597746754288564904273800601897685078924934778836443392676378378648615525091303991614624135079151434285358565469921911389263501523789033007331941245005069265368644467507812188185957110244625935229478103019945063484554215848123625927460985205925513582227256968466533565389480893092640116279393285857604406379318323420073075089692689703795836289328533681857396648464040902760751562791842476864499874897946410800460625460278526463289780365558012441537702977706879586335215629246959672606171993453105530275659373707312480060514261120646769518160494433059891874602430155715289230827981964801439071046755628078168191870946579145073159559620414482508975709939844282700606981005399327005330247536308446732587952676383244781899598604702691834095150750641765711578204399111343527378074245672783479921109552475117935839774605820838909685571306730238139161185515849990742850159933837468881718633702318287198135644467726187876014967477365901920089060080632689156136338929775722549936493032536390965131851619798878126780705678987115373220992097068798666119367592800238863821513387529310261960330172256293103490991684278922320461033080271196753200157720872008933245494445359514147713460480872361131800306711201103288972408276789571998515902259043477751937875578984147037770293211750352957773978181433384555446725115320674207796595068196326115889420731442632993118443153899079964956013994704553904470551299593105316088640751521716445572886027134528793530383493466392607318097799826503248299874003309255802958656156798094584080690951908585809474193976476230050372161906028027174308465919235801857622206886893555937371469247274015581537560310736046484725228985202760824470686164947749383188410800687563640177688990122373951282358867154478893617216771958248167143533236355553838524054817943120160652500868596312241464880409802694387632631822906468840657277065076997378559368416522093059134397600108900919661655627821475231377909379624186554645304197212890744031466159629028421873005051415619255395287964963966856917078355801556101428005604778640198831309386267965335753385928487066551166133688037427515707265818894039018030498717321063017033702422257708340774986283900974153820516669073441776832035950812704872448908187658738688005985407008055347719259967286372102850432206128065597502933565563852889391565108504648514087472075375340873759281132598067484022022258581802558277112489936886245188009363073640486890662471624130405401583769685854663042298147811824344517591065291024574200818586154976736147454680625619399576802468638730393542734029991009901736168571611785025611785425788074538416439773148836110109469473719665668694391247324242065386180884504137949639684019646029452283887967577820523686278883293986823969762586952735514857092973381316451675977298961428690324226256765580469495243122751549605354513600558307838238746462695654436691472623322620894121545291674056522050361632679063008896588689627098728400260405532620539034118391677669272270805105980351412362728489973508922884864754197663430516218642126216561879747903600121732948081195780657742434738665487408752563076010665096106300478813355926446208875714577887280196882964163890500226468003014861497361152116621792332354518764643845916148285923386200391824576526895447907093169656547924163796196990342503991044853541118627092391088457085011483436193523473473908938679012684624988044426448575119869490114085195222989319263867757722054444731656472923875720863662786936456288400965076939578227609376418987028803323410179100338835854222045923073164981622884510163480941825081991772145320426093636995007996187523477529706450188770964178676809573040278244200970918272235753083036855008076143807499293186373786724654945119323207876019717911319643211318795760820236587651224920262193172716641198393211241090631998078338981249578787291079000330569129629264349765470389689576559129531934589367160115685428199879052590153560737949345025837235685326443304436252329136040315884151627382161175246338230668221347920927780816896284796797221373471406920974111507207532696989510483560508633735672538332807418567095518481146828988891194149550851755595943492491989883188969763223364805365293881271565401754790348724754279596871009429055242168472335554563598918252618196295049590854966636631832096085677041725898740279848925767959775787767479510514465895322743038694066862706061218239701284917112858801372017160777119050700758710116305437053912004760685090316198957680452237110692977009690909236337038758801885974084467080687633379494363727957292269133123038469668814277466174374576957784926272689954597508423187847162152892425729750179816315615088947419764298314166415563356686398657569748564474713116497353413645905761426239885734140746785556448935638423318407721263389463658898569905405549288686709694050141870064704807012045768348414752472946611452692180239369529266771828872238550534401788670576515926177419609082515261040384918444572003204448692723712678865059345515128819884472536674947688054741111497347063892303342762514873450958853848618707768961219166265769289553687874771556936399230381257191491546057365543862354802463358997501832816963803393487310002390323023070324604755872893138058284316382702648464737169558955576079675513348747992295289651497199135974504411164593872333803907994691649116866645208936644003567425936161415267820798344614630366957473871689635633986662120718630638901697372857707284815660090806323145717013773074079433101116836616751126471734347438659572516478814423336422976338255588594463974143014789554270437019249714502190652802598310066812109382497892575581347926659378062619077893025741160836827730597541583038357825923283116869072298166120646852269157195876903251666087144923773274733067325645617380899650163781487678069536351897340547924909160396914279063373762427800585020572741419236053038278592445141612626835192319017946307370434592344160482798944646426895476643957120352834469890127253945488811470201869403986595979898228953761366642474879723781656541028393336791351446969001746630274150454616523446878495341750976250282714237049759349672411784359855421557109437221361609879941545053222476052967794840145968195995347020731305274984866436147930315075216370396484299547640424907579721679981511167807996244473974469827531110546958326757526703973433394302728702639555253250905024736120077665406369388733861941633394927079597595930609916940890585727026330539501611793770026412304479799611459082153979814138376469592059170587162742373159253879438287220375343910422571831770675602904998142461349946086184118986020062951842948341840860590963459403006650870653916251186517052013912663018255714406243358388836793136123989055096723849255451748227596431419753058106787450899542486861534763385600732513077240226764533492676152334845901813293565301621001989242453683011785819250700414264140232999669350373131643865684846336370919694339204798774744505692806429433370808539952460606243356551649212277308773806894336451687203954193194380879300094312753202590486817604061811330702453543196407004090481173085349797769032289241383152087505052343482087841735041706342285843796093067732169191711540496470242107934558595849649157590961123418169156779839277386120969025789874649682834172582192795808600148973126644613852015394054903720116655673309169833690815004179910061851036195223323248868703287836540374427011630600568842359545987716573512543971788275508217301591914976893086677505752746532420738653403356724733666578195082205258233005292065517161357840293992218224294612641031888979278808892121337722411914336762511815786601316918876619866257358027454387834240476874059152507929009988700327536114644740331110972929212472083220423469524120278777075892725119988321079476836445090614777712778871358269916590531288894266210963189313413138239139765175733170447959174340286773917251553365423254742506412790276395149314100654416329578116671220576889532735457333305734366134366199256875923469772544257731293010472763775280103340086661158173041925842444945484031643290447867180333239400970888649824122595381105725475146325930658049525401458526787119622616479434065506711922434838832319586558146776968015665404619107312316875823142520568331964588394110045049247630293960359315139285058725333626936966793880354078879921864574871418630268811903102619723936249424623315982297475856404849761739828499449110272200692387037749024940135559129830244805383669817785790769584455456056625101935128523749092640513191560770397498196107382633012855129922275772356898920414356066498542431092864095522073247939621699053724277726479426894169676150872582921222557166477218445740474326751204097869091317193521838673028606058784382199627378096737161821794997639899581448463788892961569221162658884874754501249655916289285423241633169899974843914872082245810116673223473790481177339095729933714793764909988820144139983738579422636954868958222368488932012023739461459612137053745091200689054836841247430893807510339979590867599307411373831504364522512171952249761931838084955853223543796287687095995345976994617475408163217573840628490229154425144727438342218653842799396782813226884903985583943536397988014240583573478455807417552624979967911078294293571832284196100630315145016542714732826036993460058323737222251643333412880426634562572153778434922973402493767393696367279535563710055068533521774653823317584979959078255715774181697982615651808097362562491925344640294537315852151093898850292737860613057555363557880980391387780766190331868998412129651908393444314720277648020315814984112792669006473672726146708370883529561342546344397963069802511200994833755751446278342986582711661777474078418029911363646133246941592605561205368646942129258215059226319011870460811262874051430731063157318370869606304702574050205054610169360100661775949483730474263764074480503019643908704790658639595686152473817265859985989095098356515718690837514674266579133591215743171776639480189853757414077071384777550736759988038326037701960426699399461426012947083162256704218550578834027465582849917604839720040564510488848233451805827392926467148363531166659477689594769259917035769695053356990532222506740028721291336953834414188164521923373644799955060661894824287886579483364590930120201720531992211812231674485392718396782632387048503984878711735576357040646825102818814307697844491057396308165366479975325571412007227923099680716792186908838939064088126241838150600285409714545266122369801770253391152673292600876555289839143970380208763622744729621559603499372928879325481682485439056628522683722254093613377020454825453166467118813235898057455821559065654418557256011640403203568358697085962157954918265490129540142095042732725764278843327201428718025838754435553213153898859565826460741515544575156642158860156660881499120072207744049360032284837628408043189928495789173806418237082982253960235153278952384058730953000086876253150438928395875687743472225482817488154449281507589764859752430527085161645836439030541311904107925356509959411437380118578600227361325541772951627423880660237128274760498990052008913002506395040821028027473027402720278920755283483542465879028322092425601526335421840501535388343678798140101661788057985058762804598882422833593789663130499156465274420817991361222541234457764926116628507644432721052360200242809240041021169680850812637007555177299756570225624144095043257729168570505403920081119591931530313703597552034439694901088160368638596947385327095405327467459208023810257406064925386896662599549383579997769527803187489550269138378378759792148424692774960029455306973102287677927835430032357203210275756372302487544353945419636292757911300979468893760113135524820354175991788574671942194840824524004529805328541614862965682436735153118903874710215967323534829773171009271556448933638083664448519956760643110881913910641829757994127159101111020082830145242108262651968741025433438342809178384658547976736995356730107415801780561241534939728733738009048570602273779378168200084563847710627229499504123700119568990219109412125866621714645655535918546440207999344705990369569555851349011432754243964190066010076641191377881781431705669708311128568020919971564351580465931603541803620823833786938318171106720750456276915006580785798787656541064928480333451494222209938207313996333916779433593643489093428484134352087132705894309971700494772017232644199905949982054514988411850057894246035205602417376948196747901397659327733387470768790631570360032616910321072697010807942126222360256355869465620532744590027579354711678523579155465766083519074998829312132745016166778853264792128262202356644489095663319886078855892734348479656613059306079870450763246347875818611685268376514976811603275763855485218573836315235067044874265519063974278842353374973483961069318266585235985596903784251810273522542958263699341274934953148143759704744478205554027712289837775330158622266243044495127889383480867073364372267348756910174295037177750285964828961623646730096375593665490761589617217107162979920171379555428532457906290839589528349286497263395732048434044477577526403518974902383552730801104170966293078498959771686745423180465077449561176664791171404408791586839997918395317770670900132826645526727324649156356937569300365042423235129534336191408584617316964501035322711040947214193931706096666069346943798771044810857463589946085976134661729887059320949510196101891683139282924169842789316712646108073743586469272977402100114304291917671656201038914274099734555250127357718517577350131843484353291176659681043711203727159386686739473924960356837984293223651277115518201153733843094900463492364810299211973721041647744959954465265678631739790549778684730283048172940647495656271875629357330447652135078136479273861518308465188286120915406988906252328780885245557569694575305739815655114918381727192345030280750738893415814290648018425625300315696635618383885354295648701610241463959757630105006322218270620000746020092164132056887936850102193207256447215835555253121452229375445666910803389096713748526137733137710906491232239830857075772897940947103995997761073678458815034823143163303997440617730086327470911658591953270711153150337791737293272059284154529778258584088031807433210690431664060208053100881772213365122719723003350298396661946210310194383678437194843794219076418643462388361086559031681596159909641442380745564944596376105378258721933544646754674271379866669559922107389950821529319037639541078808043937374239089691476124135975848779108245716019601502410188238190408894308862447398635520579303640907777407882531023860043386236537009649555424571022380687006799269769970819119528921730388740313022138098005122655387318064984932036491738971274655793116127398420568961964594453042919581638749416427213422900914139459790296098135423683087516171248518972704084278143837656507462818971364917616524679088102104608860886597167472306349236233012030100861282182874219918356709958092010981184749168324938338254102166317470496577192919208626294960982424436765112449067914642771055702251468563681871705234177008046588674596595358997008046191088932598622262769826405220488122108888491554980329942356658102651306263581392662506008187961337510701670654995921315336204259692240288360708744306138758268236931855879110841247945015639636177174434731214521480510269162874558977970808454385819353097280214513880400368543779518675085728162215266037864203450456620657246609424007154358600640864059594079231678759718063593837825760979886711136436927320672549822527259906794782659075803714027310250433941741136000074723863379349257253787447327544528113685981409819807224443666363578240522526622786129520945464164166082346869521762966268060142647837724122322421567683262713008964406587204440664448288621068781941300268946925773549305567459496730855477373100194402388060845131434733458100093314670976549763078900407071559856302753264043573272439915682807732754330115341779075137548048335906230372653636380848795029990142027823252319283757853393296557748383897251398433022499738569526468628620931038905801514727027729024949007747677754414019162396129607840580238529183428457677038804469084769962613298956936758720670784979671043772426956122963039312807086091077137637083126618844779839178676187743429961539869215364188781967856851295437582249656695327561256882936512799973849955470463074616348211989920979396478207953410561185383434712278963608126270834326126744082615407759121578074078310934485015962582416538157857165446031203261957078984523026084539048849123298198651465670510601522951565149585510312516624812416464887673672693721951134713011512260480724078861086471961329591216503144735634541961489267038654952246254843388392736181362362020164960109901771345904720919905147052777354363237092627502802214289163235006613065179369167068527716467666787241598885298478052212601959626563805994729178640611068252494669703513722029126280044448772361648746598015246975598362399345191081317992054500520789971990208524037676030412861363959162151546992929811725061356535103094452343583457863197571563629936973955564469890404500508434498006314782462678708242000895657909160360231415744795974153625542752103579778555203053488683937996774977605394743190245527091201718294232396622512629128948075588176984580959121174093109450023651981393171461654968725170868499281869671679191227942311482729453524652486154417974372126887638145921068812623066573872252534783392731353478543405828187060539255933426001938568777048528042992553868729648778104858815821823960369611067792748585570000554432839007582363766794841121217411800661763277316745496183295762872944907039102479933781668120236162198516288141569217989437915503441979591469147603741932699699640327495404326347556028117038381900932339801347235205792564823424974936179951210913117858058451942173056775208275630753247369233026918162928358300078371434881881707254145641061690516854439290730077189566820796413311632075709295315652124814020472544694694776647819041427847611815455347552688091332679020248805001655132832830431059589715245489539190597768220247572509565196770539155628361920683503361838863492381854276946228215782077485733575703105939009543412803976311415189583318857840436064848891824294253936763863349169451628647722687016949155372111521600723071665801954117203087213863302778816453845846655887314130969217419760013483014577818687168622847699295505594810255449079885269019661969072001998626682576419258229503728829866078869792787663374094901082058326968549542061642802282887048662079653702299028798253223768723055326358100240382995457280364683464865057362612305491693913373376511396524536095192882131410506130973565729833423594441800952328909866474908909108433967742399157041812668474207350211657264643056429586859971278519472709529710322432082532895897493139921723574502550400367255438142711719689970442916221332233619143955668067294416877485870020823272619893714311153492049515119349749670470562448925853821046826988975152901361096622747802652798853708639264307281827626352027232760411461998786529661104588860945198629566203771116401517848798668186738879785058019299191151922269322008332316697128641346387346672219033403878734165876986782942934789757815206256920923051418529429743998436254330069735007698187787455166940357343484633310559701642777237719535944277480491366680551054431096799925316661981295879926802737498487273850613008113666435772576514753881035535656425227960225146551148596654305524334939683454082658238335697289555923766379321827363583757888478675872259733468318119594745717532431224871434366043760759299825013154087070956632687657022204029594607280046932010804556052346982907178990480234898398250277903919767353676140523781344063084269891816920619532365810902396885029117569107446040827163986876303883275201949284064501979800699951109390014176846842147577276150968130844216469949460960542838206495252694885285597785080921860606535484979443553843969266558454222761905061528450133633993042219247288649834035512870567254979067487914267823348503010676980172112239853019706049015280115384993723765954272827301825725244520325628745964714943022735670154854231700038003678791532245143117511748371918305596431312761062395689543243673907699029469095575055029181794513465351434197798966809061149949194058178438854979702072358077598032552574958222036015878704124822668554339382923268897514319364674796441742096266423858305238648536342754192227862351444197274943000913827403065872593406539285183410404073288410312656057440714356449663826491585975846116536598255091199392010714535156296307669281284210158936137991990664577671377164570384654349932223929681576789726196009157691456024481231942283193430024434727982532192737233554892278617284793524915770501566566350155512694632367070238191066954660439852531865294799168403122809763439918497474437810079955244992481419253689110670333257995636299795097194030620144345174024400772037619803816921281046696987408107514246119555053133633678367731589941650890744169094982300086050426483777757839669825855695402171831170622301801191242072535984597572710055364602701718729573402137681706564955917114680599267999581671170780251357357565112032827538913259866930041414006974992878105633353427171413044175309138858017782875088267559955079864952424806526393760190066097243551316698813551283269612525999892202545307977437944853789732239142018806751474063479616582843227655361288983466647653590644807313540036057051722382308430034831655924066991739078678826343225713129991823198253794319134152602283830428688294542198980798778733336483702225267261645116711050177630981043703609447996921939037511225880220568181810253794705120175860263689265573058710031754052235165003857702049540846553027494667346169710947752842976926867956958686916700344260365023646051502574292460030095350515891946518297577645511267767075083393706594498148464333472263308786284102704890512390513529876116695390138839591921165302461578743071535587696051609427288542016018993634530777392396797639292890980173353787340665708651176459011445642242855520889896920604436493236215014417605613908921937378104865443381229217531998377433201342635553806269665537094068891271853561223152745223711678124961147743599373183749270445552059502984661003250037826573953692112675320417122126341750130957480414013719673329102554075329112720088306170225067588370015808900108308910679241985054840506896889622427249642288169878930268250241734806977389298749471767962164408392085846051720866800986785509421640130435388166909454371577194518050845850382407217025371643990653787112776892633039298190199251509543643702124363160700563647817523075176373702242436617058926571655974224857305144320126434999456721819714673308211854577532866082558027233481139265190559478361940545306827942442397301781326127918462794268086783024745613299411327279875180436749788253382570997545157145118650120673439482007415903322779059221023249743726883705789045284722551182221049445556227935043590815544123747871334351046859065562214186316221611358062746978193878659454087383171510253180038837059780016363610909017779495390823047488542340227680644941026245126406437983056103524650485578652855078920455864354623503287969824082865258160013609612913652942428295713002868686119711996457605936726284073886940170414829897957053682139147088924495133293922409908671885141988001412002540029192691630290654227171510782634422639046278898148263627309158005436064613206385276488336831617280878670994689765536822449109380974759595176840644420000610497961563465336405755141313439664942830598555479401975212171955616671802611389056714795600576286526766377421846327913674746315656888049531143033188151761936908971666783477704802839433729307609904322498982370875564970183941159402139228629639683581736816390427304145745536293362318490064080050834985600374983876370264100463608849910007600253280775211148431500330752245555535028923552403099506866151056335666668102000621774416274336479194178796326801482160587981587864043821349374919600526007170461535228186201054910867131095433314212800001440435105354526093036716740300465031253208405745172907884228934011062854529207523412842135392344990055054682485589607560380692203489695840430584803452188209744789680980816750866134351473676325783834090928328301516986140353209479624847516096143807509710002170521155049119615695116399861381585838853691730269970727299178678804244757303864892290773054697012546276937384060017855587564175927044441183395135738193675483605512555169172338494417609051434898379371284106010274922640419271005586654002998813264810505828073929385487168323840052292805348511498584163105676306641718823070211614874483746254146927014184836211138778518256525679399968937872416058252251468688791842651681962918473592312104901445367282911781567660998965022547728264243457734072622429750942962128100329318802343905526444951225765199099961825364766464652075993697147343907584146383316292832886542279979022555907573277455411765655050135908591174516512071178396601944158016620893656496994943184773950282196273279227999966205651236295773290019942617969449810315936193042887345723000696520663171739450589003279231395075555086889376772370092973744619314627047951777683470590760739858525697829428493625827340550352634587568612918926541945746936127899621424061864538974006891223227033330288058129351923000740833992768703880072461883948520339059650017745626717853215156574022559988710921983692597412747898733104847525734468275662082302993332044666727740698658862470666322856663207823923365863668003931690230916202984395057537613375698845877693523601595127638657646958921906528904755488907825215166443444198822673020557619733708030408926433440137539934965614383064702704434620956495652646058464714904204522076302399356078698776284717260003914358383865391714983136846735877477950233076725105345872566197645468944765951738290402158148220237364866260401654667811029231910371740810785840763230340835699378015263950517482169315262039983373695714205334137855879591184569799903569460281871993007435057708555479247440551618313869787185239460132666270377911220419734062151146780102650334704285141902684585264066083265598389864326679001003341730137928166537532623383270065881498195759567372864111059730486978175898366807521556420979831149173046908220484928893289761421508486689115995920803016383431560202834595602914804973997173332975111949883941088379121516832030409784469102811987452288610935531056587878224152901980402311497224445130708625901151100848133733390840066445310421041851525074638606324421212932744024764651270855596383624786241354898634809611955178948032173069704846098837314009330441349163069212754348024882641966694659698196233702100136510031630529460249655532843406656355201800452233447999692847388940760390090173815175855293858705217065860745853333812493018980262952313664945107571268039052357033090604101381943123743295079433213755377289935713576166006780297340571948426033597461029598040532428576395373061715558146439698432299460665396047254442909308164508529887032857759195092823731069823508379791979734503211550567865799096506041927914737229138962339747277279184824097802898226032528861887692142546309676251700909304589383976888941727314400641492410936529269503500056242281382086019029168480230116958386368714071350840461981094074993195209475068242424420569286454095287479064854548200086839156258434989783438046460364494202980006739911763632154576435408876677158288154732255555396761851472315854440733134352365404639612969889467961903979882080672375131042024280867747606467873244787921613218000161327642861678852361720272355389949820152946901967457518159669433438372737702919950849281574616369964077945995279386473833812467678555223658111951448832669746960223526938910677320518855012616136249215968781680593692503046398468507068515714951445967765028555625550501809982578785451325301639410066155765094745734611051517665082622890709122207306019775781441616787491143064639596092240131258529765437075536356666629676349347666757674040224084868717924772007727796417053539877730496149664693986464003806478282728359986555127790443125900632481226478776779993543108288348320520480545409778422796749906186586757971501103764517361089458641143415301718806846072457137914490761390285870828467821525422006604914336275439390294833162475731959965138282220984051028254616277594741584727395401166300409601133512876063732070735519292466261407199335978996954789171881447393016937858630928293513648832577838122130017796098234936108939395060914578166658504050343707726930957406481700436495829116930609607859671405073428561455957513670221588674761831602752308875412956839475476464161448255012222405222503544990032650573766059892150424654680270750990162042484525054304387035679700897366212950345239877991542945210850317986008401386124187605057976303439212927579627323703529740194277980542904944649809858779232736266577438741268524427314493077021273819926045845038577481901078885073682690495078768622306576224227123700654520269253814436996356862420167589272898843780799317594371848878769805461924283298070958502570065917346922569092769640499795859907498590232253273065481100401099277784593946704255129818190502562704292810632477972169028416186546632481149016946754393174442600802037690541758659648822332199383980961954055288429581519106861804953259427209690143884403260099864253151079343778445888992763554142758798897833708311915257498101986777631718473106806927881636871259822290421252164156721314367688418780822018895354100643596703398091130195094888369096446491805356279006115764402456987225471196615885033148915551660240811117214245034862948626360633558246029913009187407464144568482898405050579363825269716144967900947316097075494068492310480574614277111929672639396413917270240130406635000595324517802091024007920433750061805367388339061265892621049868505467415917985181305483770078076405085493399858917179629791072232090340153157482474434556999321843683871691126557940612813114899914958450392421479421156803912889817586760883933965903249970703191754934642242727665017017574061549659161761877822452005783020164400310375849905534608556370223483983883669890232803433062138438029025555826672059289427480461356854362432094924194650947978239787606518164237841769736277170875038318019210319521336413830712420761521500624618633983581426823842290921054375423163230439148546977628742487965159919175899056969294733454847789055002782750100697081830814444505620606649174661184200617032719941853666534056229962719719200862307775623587148261641699448758948062833224472728095614020531338878551878971175607924704907292034854439610755349144668066944255022038535911576989381687018598908280769434760183345656742559209356052216254461551200453381767817759902645733776159377127939402199626329983387635517820358149204006396527950696138261289764633558647011592812575696191029525447768230571040699823956764397191713033411254861012788426109596092105666680679154750351655186960383312232239983617045585493868013246211895649959619516397960309741427878170945370429065316733540562704908365582912718180218521548825406943956504509340303837330670098706330152883082387188042239285095149588458450626575467908350671120679580352907716274519252242315747096283432424697201355162726176219713283413918587777658252490382485234776799658064822993419104707525160031953839327904863039668706680641548641890512962288357220337392264599769074888675993993819092338085775580924071163321144981277039402580550895966173406002816924072530799722060428812679186636998145665803145439628083602394517621943405917082840541298435622879842876414261192358213244444799949354920987447808350348761595382946226982430414064241150882615937774769317007703713189557743760648611424569212752587653975925492335710682265124264065573493765023936628019435656524262668728315964108332020398090731403077947810727726257689522995635776277070744813994687809736016632211466913357774700971284575649817718727253438991087468962940866174029599925238798330995929722388695205108955453143377550947120321236718040222515453859722950922636298516443751800345726321087931065358406808736500029987952652997095951373814077318504874549744674585183179062811302443185913732100105040554001433005880133806895393900167350060941347301586017154646642234348449559826420419292730903321291562656074430154621234667986513452996060351710472755433913276560650658404847684641284372988730950795130655421450691951013434441961169117735758862513026870333592247414957136418764084175603635475703011517250228638007728638174507492448641111430568138772691296197404258721558928578187658473073878362650737180487017109155151312779098508692717451435731307930675382871897093058152776793325627504564649218805719086335084257841284375176113202894914026409192790782499171961690388427626667144671390022414246747855278185632844478321983159908432978077019024222898421371414783098453795414605847886371719944829870502419056613389240204746870630028741211596361831251103773136777866132981699617181233666609404225561740929208243364798959600187969421063430154203151416412980240327557670885900920760499242242358876172867910934821178609777157270630830994751540564587936753522944673036156396199037303932589004608586032038994972960849146860000088990416334722312603041297829453941686460658731145395282036825894608070693935961364848069419533313468885716843342934407074620365688985109846223723509026258494249113129196263881526883997160817280970681064406896481576632512865439113568746900067475194406252560905857499781318331484866650055173471092884836020459241007357876941342342161347589173492720904278300253125629977671952546179297536954989917372340717976682778236849296633111789443558427371663059483518740442353188383211681509162952052261678054018998017675600079419863723604663343235694323513697048000612464512850568838930515709058171600612919318068960266911934885409890957735317868609169201347482667668961845321471924711429474950778979894791957934198768983392653674021392587572418435031393753397143033224442548300597681066408218265068939898397241779976990829369924356126869521051733651915214451958944049076762582084008559824865416910920753050013162726870909073162596261065608705139232103646192337024794034225276659876707171148474021947810617188843194306049177512203765852952855614435380742240550943242228034439476922784546797107821171485197777128197026139253201550328996000638285041319375845074063838870141787890562899570256455385042213360478406313820340684371066384850202739921134574018376067604194112882381071057331946550396270745387376274053330937950858791395674510935859036263018731653852744319265191637362788192626847096952542466508854333669947197910205691505759944091350571350546692426088263453630930142573465378221168915308338474715157207069345254668432849761630115512334481947365871495008612024597017950085567031686223032191027101215682075598161963480747725921823693603038448458208071243564191061067182324633813766606001065791905390868538162539150467600627536397992525310479258738841117438947441810210229933951221257322891212082697643936253486893371172244520889425337801951444005418713477304004577456460313012539792903225235042131950295467745918965260283367538611984018835302954120856436786888966115020993522994870959027700009458729254809150223896377486142908547333484466561515983491509466037472642105151153708296808687414913676374452584790853996773699244192687028654550792071644856988400279035450070861580064762596712378513121572062347363825236747134381367840138835862531552920694829437532838465465784230672073964035322470514617705497959267678980461569842475291018252159533100709957116631947859986606684527410059603815273134565893165123148203572919247269125857661356831297446601363785593476920754328908726510691532883756704381985947906448750919676075748335211330871383465838337648008304665534697114830292916558160849253858161121088621074465617833990312200770950184504676754248021131442588448662473019713784320168192832731746274065611324525360066315868934792378218695932762330477782682486146573831398618000484282258126517914481247515090785682842697939773777337669562580175374573368740393262099429247765632661820216928906727341961931547444234404892303199606688981378486322737022630502282685743559775303112362787138006417187750378342783670039596475957865829379038058499414308446254634662146165084480802734871296700798919304582697138141919400108504336610616685626334798908278295873373479218473615509218865159078707791130782510458190906656396238541671055844082740873599976311834768643747755315413413778815655069148886918340655708766949329141566738764033885514535851984834577818829568433802199718945882661670464435453966653443066364641208709858819798226841893198356706083856972679728162863954609476637243277417219864709774549202412529632249369514598595572827142605911937714415607942025043214228577373646994442386454837588925520349281604516288969669331946739507027206675205594123286011958283641480034514774968301166141735302522131969396281765498308265285598975847558466954798505176604140209987595580830160060959376430852787816852665962287379557933984817491134803047436767721364811006314826162517972030347082625762387174348253263937254596860483394537972964703770923667867194656737060097517383295959577404101211973646836347801355580978788831281951177400324045082132502353119946967869020339156237706485930170307078996401931868260799431633219613717581975322841161667499016883618342978246038645015560160328892282384128364553668905095712489612005805134863090787339986956397373587674169100891630518799868077095942460495050754385144269193501979281632505385591458505938869171857801192618170589007628071310037127322436628455411255856820124836970516268900085410288383295888763102319870508777053281342776354145507759706986090694649244925763228452573198011834411566583620386528469844165005583543337612043161080387688119380806540228748968613598911196829073955739745995957509412985272121811421685269720257355743536850130955931844598104132585174467025300607257746492054627889590982294353454908495238999574921758071938653352818048678533102458588661303837510359865253613539582796955068386803048500231890009852305979159248966770008837166627659559961619421205761019754725221496677532828646854692629580298272336899519354437098654569581040567429664518810953274654879935616356050073383852269676001721312061301713393016593326781265035396891298522611068330946545381588906897025803544924522774460602627184699187000559365025810289618934173582021564207028563897769168980728772886817804862837081352812102123307943948438434806199250793249435436484182659069126480398597800936797992575429823112934665942518130786660030980821134353148564060691576894522982240902474572374015454458126005046932881436540277049154884529012223286231364876502913139186136045640048137783542837998693157792365173832339937429298111994925414614154502135536624237093163627841757938019074180525534841601126849982310390331181753731011021579608700215683054175373661954744884014483687753512344410123625068624083814453781117547553761277684508223139563804843725448490058405895497476080438459057666181029092496096390315765810485812874197047270966538410705837979839796905758823033133850942620595192623275053154204855309828908066532078581223921325588597128089133469112329412731820500340331863790997556362196508789179640742089124788792676218179125542314837387203518249278287095128987896727075615051118202704424265939393809822885235446232367521496483303833481604241844516359711298457496397772235624480678185720116970102451395934885291643009181961546990601825179352963377275967232635682331492559460184847978714852928044805925133666395405436122694608937597449110367172911603665646282989278448626057146962195375122789267165210882097779940970310968263495829560669653068847506896766913225411739282191681187895494697331043153878101889923213227964692853407321236738810205672553609247541195363705689981244718590910537819033922655530425755264611274426313562704827781862442251946168600648299008278660392891253192341389789140736597569607218558774049367883102903229963214410199314326977402648386207775676257890698615583196566367942325921233364651240795499916278711240914162194348801833193864537991740862674491908068306670672391700853236994475636270188886626382505599941836728907378572853750598212557172188182712627460162781198356431661417869126128785644339664313868709338633221785488457497831953238159107724378094483618780564101580901213329993363425501944093546331999043128228771434922611147825351154903583302932542599661861521136091367074230678759657277189586792367046506989724237772003064761042114706087531851869014335286374302336667174878077177247968817300862100922294634266554750032203588012654376627533144030202896886735887734389789622948198648198169155537939648359457925352140794415609918623157165953604500828055929822765352045351481861728224451894826480019400426072325276932570460603239144124685115416376988556836631292739430713497284648625683859975373799506935541444253699009075692995129147090455958644745775180239297433663706873532178712506917175106480604412333900632300498696305004603010202975504456845181556549851777648542112340693797463601845405256090874673828924665455715723604736818324628811564548695948304011188798291905264856061086003652189898901645134969833350909091492831652492398691591612479201381808847692539363144154218975611472035547690988019454902267504580292151826651207866170490782466429168668687262495395823380030652588698336867533444829135944270143606917104951271985785448537565100054474944126562901290786502019435282499482235074706205875252734646022102306805711777955027595575203735393225695493172714359610827127585771074356520183910208504536618519659135384336989131033547050256063777312606341880758449721776170458203646941262751650521349772271198225214602692834544136845107865102858229708910907361813796310199911108622518385820894993016822683003668876112473131017435732384703931382021716537352473174375432600278758499697566229106371334987711808115801800079159539635972518323498332311904476631826912298703538997764084612311918489673582915556809884326660250155584239102971242021574793146957599532920887316441882679198134471459749321710527741668555106650992632931754163721166842680180204371125120531327698506557029033861387029208840008665171338776610748790955925029654620730493499631201363194796606894950223356243830903065641955925426248723932442963175848512993473648009144545457990239162208577759610364371038938671174776066309597261186574923412838832493525180037676060681427483893160932075161532884807017129386232104369893096920573927472882485321549371288864654007149710689762135156675557068774666060741360594815998601111180548599020419223571106577895226752900046350950541066822900149546999007988140562481494095642414326704099362478330835332015397450038962407034462357640723618962811504051248478013616221530394889549760048749348078676215875626300139669904069173846113784263580000168342407374424829628422619045077061241430848628819829365862308910283704477071227360120553137469024974586792776512788395344203836539429480972635655744018373426392486953797898262672341856770575308720530346396666411741414677112060150953570743860736237663208951625590015580928277442582460853716090392318160623627044483180080434201460798744723751044426200706685585124570383407708269449528727055861106375750965949425279487302328874155947193780658361957510642781565513424579965894157852508785882244400913672674681797926014901363535708267453943009496328153602822138204313774223399555585295469749600484763515457987296600240868880848288506045063745075725345027286169174802369338945775671834341866623535287113431079333760504633819561474145056036221389051974482249464763490001624238953511873400309970769150303195776388508459651211986451079181622135061475108170990292705674146591878218085949318778431187397087722092420703281561908580944330057650831359902965542585833424793252294982950682823844776379209949582484088736573854844882807426533290324958808427842348975333893168835189821042629272212919312522477503023677713318372550471158922371632947646611235797239831680127762093922029069183294215705604504527499330364208679039671697269970689027637217639834622725304399874655883339776072532489090431408027604026351960496139245068941271875753454803327016283194492653548136712664397453210380027791652366057467524683749577032086462427519921043825890486506251705415050924507184197966468815494164315520757259647764870763503027937050657072023370362106686000128219417006253961697904148437819558288949033051712967469963078430876978328543777491333850528552315894548809224584496969489923055559926403045453841972833995583007977023835767621341920120150763142160072761858683850182694808166057690135848738135894333990112497370433588353093334074248881341515949464157008754569376910002618004649951759914879670052925673462354666003785259228414583133777877333442327660173928748886306655130837853784821081950709424988842039188941272472641665698297102314981029721961263677248770562321883496800689407758242422393417640935028747514525166668150248084313329507135408247277014478303406640483735181747468033557229213670374394779680762195438717521728616014751345570590602246429194958155829698110560817721954397736906864910953179057257938796917973933230935721022713342007740936427752586978188290569689478053577595736666091267028104746154447911546713727545619621211617204322930201636372990484075263010124968081180373728859795007820112093945024014513527299376250691593656521459370164212994214434487016980056061278432926898761693254897173706736806034261612393911214641472841947064954418531339247539434730751734748241596937143839058370407823983104098008087989321973472873301185960444489131657685052880684507687412647447558829414948583146397961238145229347770126339194683045845983336778584700384209405253840104889717007853903490260016167320431123715296910295384281478939192847998909129134369236547689968341585914156448058797659785464130242728657638541536671059183145992488258660079969833268632354093092845620083620205590205721068379013270688321427212600106186219087836182650417370419234531198387253970015834768844140054366557605966114128417692402181451383145552343773619894370625370914817446283848456807069987481575571605082618438397105546906077999525915566194254864090565136003150565015191332076357187506560009358983986160656259367919441731496441035310743250665128066344884192835765296643636305975931369834228250167847820649950622167937053437149246147090366639836075896694921560993832209096458791988907505839928203698455357747516112822479216971037615342497955071134184299461523296349361639889562533057029336493835849915553232774107694641071610466563642541787461900613574451658472028007577068463027917821826799506823285519464791119481597821743997914259863013667691916098447110727953169577841685790578025915870938312287253764838362210537433497444808276188393140044249119499958557001351734184848450820366012730880797408075598663024109227341784702960187894886753550713329065775085796925868639485800640689940245683101672920049505065401145565566872500274937923840207470620734795268971164962178134411415982638827707889496642907803826284222517329440114581324928257036175656522909014641662430189347829263084765777283468579659474225144856686652279430106432528091605529376478784385187137495555381924425055993720375840617332015468624021879260493511758368441712838860355552664236425899488368205163858920550856892493488170803265866927404626246102536814502746090898843904080544258461476287874330519162719522205835945683753389399421363326511904256492025583536643120099160024933539962691625770322201102538152787460645168729609802641601709804090680302980598051045862109151384961453231740296488948390866765179617075865545396552775439526580890778347396202147336836699942830964416694222257041802105817409974601465888276666109426318982417038196055581006610472622686479734405055411563535151294442994528632970896564172186087066100544622718771519825748284338950669888026431096367042084268001367692008303145756757318696590039135705399177722943182381486268993869696466027337615599712740522331153773141110535010436297952716388996649133623799642578924804693186957463684704874112858045762485453897961127489399645281888181202422624543650810297749218570998718631796102786696285321680217040352918062440761858436073844572142498863750242352176013566091859927727883374375326679472553195738872838581249455820279388148489067608662949375779383013360238447129629139759288602562637042494835905027019418112123430606325289824803832833961501672019473673773677245220795227179941050635120329734184393418688996878374078386093811537068778828482550402516734237239657613127863576444391163781449732646607381431121926539361519189511560132705462276388059784284188633194440961664246399986430087975805501102568680765817154302251909877260796530092505649946078114001772404149433597278566075130130848202346223101726639038420292210763627807977679467533294371344591897117041707970034368692572096862459221965598664178251304074674999307976721485277333424708092001464902700340305465631592036424173814220923350312210126033269714245732486657360095966056484784852833141862155327027030519370503418574700338131356285270374437647920959816106280661731228981533413891983136590282600635651245017620557295987163088964418786228346057194681860169721781456650228575638043313504555537145195459722995190242081719347908785542325217778600157249262119199403576189383206458910696079153625025332135581253516202850400019224353586019376656616801191820935090962420731750108118762475170107873738464678929740853648159834213380778846541967551873633639008398611792352129429260477934917681177834148707483733406808814070475739030714574476385826677066422606448834026070592876526172694891863961998123503290190450250258990707933703269306928520543077074993662373983473322792186137624816873274596387663816936026497002703131281650622851687230254467790870207233336138096029245793750273947211937984613939562452762164330122046942128002583810817026690202585575785727271726257625521347983624246149843523808516469261197607030991458746411153803455631555639686559358236520089904845573633330241500298241236135438455055206632715144199880168864467809867433919630128266417794010487288812021345688457021293334207793415570978676874730207951736758755253941499818474200501268604868075914031910388947410375502092287530879556656761220660204112804711776580503200200956984711315433697872605847654548941667127701586756981473795376295195742188594715158703027191525901170906502481220612490192545739445302576341289361878881352815973345472020699415119078572023498224643627528148129938445518060322397844742535210757708607400468798949039346944292925893390712941732690037503679230573158765040647444551104696294636984583651721642326049020245705195457450912951501118584897375302949123535596335131099370390621710584729699913284912530369190639489629370395577896630665043047599255778762665751696047806060469713478883869394383919310797047195359576063183140568433166316491653189988417200957549896403659783754499187640748358371402306420097570098739701580719592219495535398113945812012418758504175655326693722686971385248540479930308517105912787894669410678152457971909855360540994117750889820755729164399860314976851041684582925461183099623370999924665324715244605778829335555965163441983846266172407678922714773134008644693343736687280826361642365317324930273245881457034156926537890625214307918990066068342665134197750396974157188232572353327527986418966153405865985342483794072461194448163599210852034309843597273483008831222104805295495943108550806231558930962266725477071240726711897520093764332133055968651344297543909564110223919468514881572546389407537378311113162046536420568026112370625016311379133434178151940147881612895896805491159707717320975581792997988870237490980039200158427684046962148566644210659885396860222187123715139460614748784634652979408315466823754042621183735953370271569116006935618482399108444705931069320099952037841432316338391609036848406621613161059628197653668325943406285078944729651246664057259933317409664166603405658982628403410730993666548083456556538578203299368730904495096584471254002294598132534048357251066885468611228347008223778193428257714180708055606855856628939830373330893963711755909205735818497901190986008206924560174757379476900916359277616018233919608878423297583709412431297337714991470215062847143658664271639596373025094500891204466611752342054607050855402480849092991135389890092019283610312719613453375537064987841485261636351292829372919787831708614720029511669422569907497696553288048493412012660861123821680548486361123566724337716245114424662819104232238728981728691294092377752757610729490947481630053578316288641491352657761620531948120419486774774628630188859060730951488137003265789279770036450891933683166672710692960907349818255380773400556349335239258905414929114642830821978561907569285422050029830461892235318622358109639012700177960440174388099857523174638285230685796004153071752768111837479536597437201768392127328930219644340245278095395333028757386952755673723478462562597452661476941907611818993214516773471293281798300807209893457714766405140125506041599336045025052734535416282435072533522239615079608288406895914180333369750054849828794265934988670402244366172231796998976362149103013347468314131871870972155398622111618802169753949531946142340583566727352817146062425662011724399218329105550602311577271553592547242489479189233125858447772855617266760076684301191302900114867862967535072227526056660347022429276286831657924610145527453510353529990893961616981510834858953853614707461017184509697344940162285901965258554296676607160784780446719727469110024037181654045850318934849596685166664379414939270847063847080100203791244790251332180571630924591093650381591158780228000231465820580071337914791129521651486517629466674748096414111668950786822188587306127721440385151214322064498990627690551977318695733958258313833810570568411888158401008757919470586823703245928884367647298865077158298669065577852999638489002437267240191827146624422380331899766914904156658877586584539754652698821111474605827925861681427251971625155005114500293266459802119664455264991299579340578841216025430480663867025511400206263171915702906365454783450689058372812634786821284159031225364209194001857350595188239485938520278731018034383761126992262982861626929820192926955867720770699668344269076458767577758468433006600691789355443614465484763615577384528386788534030210843456839428337235259504349642717558275475176329048764862402669281138058434573245754689073536166227933664165564459852516863957413335082164322793368433115850975910445062394011520598893037899931874994541382364511405534252203319831659290716773000513393551781673132092989773728695651131120503974509294638251014204256287709452323692697012580100391439992763128306626156012891266076797606613537774834912392513982790633245763398267969030789688746339485584383504675649262434889788553844297437026698758364654624809088089713219800249375633139313280330545103803506867887009587372157582574877830864612695475973389645427484407746259405033021463879258245761546356385254603548731252686833634153528527733900630242179981848707950568640356163305788294175899342816898894472296872469692603641235763589602651168897529622603842077912988379076442407183868436697907449646104931544039565577777335557447607313151152798084726798266328967531086274067297842447729761998759664082493081602886319189766624245888764133766933914923481617099680002192125766822117790875904031711152269883661480607038295519941272566358747332648886094978949834748243753331037616175767502969715492351034206501251470888554310343581011263151843388914480287213417052595209400086116949159256501177179135065159754073037203463505140875795255054442577413075227204450731875903007715898840645526210932110988685555416252200148550139381654262786170669173387851862708027889507951317313593138886948394204935631948774342560680836926941409894263028738497480876936484297469550992757839792017111393575535730442547913732441387169329289244347810773414841767490647176009687590130487068401491981765471068516506294050504276750752285510176135475526708987585149468736674470620039932094509550178561273533725189652428078452392775098136819143165766424005020203348832796792565390660661815414863948370525201300076802371751302850607265362871524042476521147757334074584956888195494578379089315224794454495170200081151438262643529772160897303419646047869350028644076854589736278632375221610055041794635581356652873685523064198909268747394223705345799920000285573320879421757571038412693780862361600968931443512209637714529306857599295962348390160412045454140570716974393807422459228978556910648631407669982982084845235628478708425134931654716097660879408086726681392246780742458123497808597211804928201556553801488410767060857879945593801213425085810813930521579840714997710626455836131028877244098683000250388092130672761383798091682622222236896086886712519682466302067275894142991893585065919502685606717766767324735380663656634466799896019745039955196696315109885280267438702951490320225962350632843163344953189375757154608367248611146088735238756791945580717858916597103959719170364273286080172279132781174869268266504683110128574567777236813978656253914380502156473785670544864882320921283921385989542295898466736863136195425326458551017684684305450302591419750977940127834591734998562856386617132769394162068436873551209445951893508709582655954125003507042457709820768316241257741327518310622816943035067286928895770847000594073127214577166222850608741345237128272027397295959228213743357503184532908417503085241038533446012607076853685306590955364971007241358817444066235777579191572006701470777680075188702467098620714950960228509307314059997602962588261083326392644610968100129719377788006804181044775824732539457491316061396957079392534457162589585405727841482626239474602000607722709364605106150458662907137493156413172386806559741801373467030257880075223026855396496981424591086091432234506349912591475983067984833872356204306604314454090699251346994657519140848274438133329302979462856793982077915489925961337298361164142188529507960327095263142240340478258980126061019556442064532759365746105054869393877126525408035874668722330297619087743666934649132903292013710970693047555231333891377491655585458512603823889204368884532020985357797264450549824901154219744731292201195825284086855491266717661293149377929589758615096667390374938861508181488452605284262792507983279476013108598382831704965888055059737232901522406569932064676300207076991567094336898954621096972828702636628614168993328568341552136384677733703057433267602821260455131675328716803897629337958246198516395824097583235552739391630417777968861028198393729991954650426023837974519435325893302838211498811715074889318019045658031685302704887078185533965436776623940978640753065552465067343028533839778241404535049374877560450582487263407458216244032121434823954155937237172905822598312520678424497917996003858685326009775770991508912005467155551477197021847605877060417475465590668127456100865663670063841742701966585696382495873570927177007967742847101970000573809638429981034543880921810287468657592310260790626893333322769857761780181828817818467424736117599541377933089600132698000208521335639373835222226858654138245375881575984355084805386408726833960475572054485402338065656575606602193863957948258081853451476867950382089346255129082714622777053265347035378198598937240163529013391148403429366145538271631170274863156959762010883707125717492413116580980946890236324652237850941253579825893343513619319552751300193174043328138980800975057144031865249080619474037087528047729991285427230979839584327331619414160324694614389619568119466467159154330167914588922814623654549121442118686538049123439916515015349474619192563747424393504925998466632539404803639234242609407034390404798424519464720518800890824446622601725507562522263184544401510940940286341522375832720742790588810716816551388446968623245793316320152610323112681289053136127449772584134916721130881079870056222064644912902357983516890599618930438502996859271852522277455229589961216033100837202201197578042785223625380476692972232792243580563387189750044451737240696681692375627337593527025534813506753484607277680497325463016442958180202252126031112214480779578090532433228614979452398791842651451654223174300106807782871801555443318222245679108334105148091969111299595592849119710437337097488132289053428836000547047869753142491070922403578216315004013481032725208149223816482699548668888641525580683199119439696669937582716062860970814462116554294750139133465228458868764769932744372010377311577699947317075957200863813664553871040339435190677482550923034350246684717506996852075826984302786288798194471363471417967910831387529107261312633407356689675843087694348309800337925713131507101454067063383946931498584011779894623465470457180750961630733344815236753901255531442830382871665133284335137129403766584582549918557691380721348815025743214319672490099722366277479987806120591672189230550119474129126536467037543602850055983441835052420240681331259438949013824171067250599143720715552717477253558870751769592952667748431098174983117744544878242262577755045776469997054951880635934241244764281413428475816051689056313049854648026363809335313654225620547715797995905424787447271136545267092585052775760950206376376392602316164454295643336562760059461086735767543621508412207753197234376401122201325682901389347247945258400515903742335491102029252011265137730082943576467112923192343159626215995451215025679657272389536744048443353437578002247669876916836952490774835422289063933222319628577785532010117397200728106536279489701563237696845567982715322526533327226067440447407003116716679694278200389908538796836328292989294548961863668249850738464664511665451688166776833224115566439859752661724092917709758687504892713385249977607571820626772822665565048967183415394994704559853166392232122493383438214865652240258543623067653745300779584106370142484652249698708150168200738837005530103704091368823213496427768596047557104027319373352809578626505459055776729659981074671371297561488362634254175481256988675303999327655010982206961029117481455966045366197814748207774757041192710433115468426151128552874132770388346900897692183364934283674534238523899672019680314594701309049243929309460627791584160830960248591080640182508140417047795611913974088129464433206124278277925474692378700483613464585735008964645339825283852521933440992173565493171865923412110754110204663118211343867403159728971321483444427444228824028170711244237431591517066334133665604776116708954878984660312028563640367214211947704480881915723866848960291678497677682488505730952719000912581360751243421099411424995219934836423383693331366708739150140833122577105671704976624858889579524440145458223113151278565031469394216686704239717097740354000505644477407360218259444841076492887658332919708049552565726061369753087638940494380173876798567571729430750380429153909905482322613484507908487671341408500239065553445057244533948228929045998846987936633166353501097933070268392937958012622120351386216272121671039137124044944452915264377305703245873248888565654064788380329348536799244247868397699654144992299710773152373001814070814770124039822945717171804803442426061916265075340887250680242950916888545198922652003407386627547837752349189662486567522228242103929232425630227503067661035158282820585229133501677518555308924862984738627078539745465723186020360090947718819479302414505320995891871548805459632356895644022530043344737595362531358656269325718968831460219373459875244099112307744338218767800304154879511328498281092868973301272542287263811944833818213394812012926821075999282087799789641119623750663851593978657629849871939004813996389906870718794567893981400529065992417129332827052850237027819111386932909987141611951062323343394194226044906624360674076184943241187986745523674755290296198576471819657945153245706942784182555875423420208715197961974254189294050447330750228906611945568474811885235323722946713332292427091037858190173502158103223981906979857941941466113244863668578477186475758285939285508320357202698228393661830119995711002102220932697354942729745463185347120304990711606743285638588922839581924572699357602985334674524766319864399779477897845884016664802397498918234780728561855177658091891313901302724126602166807733187856638119173223677237868611046637994035771129794031227333812730050296066468440064466117905683799396187870513330466177005393171669744808140981778828205360467067679066767864927331080619490438724813109822906226699453689529407240509792648888781043974577687751538949316054377284881580773932607648651439038383244790500743668507157091348687354650583566284752653907369262088700692526872262727240977579028330037395549482811156598678042777082646432766770696487756334413773425241636400154430923816028956606157471904174417530227334284883611989124702560575482564576402950863173851937879963670634636304930365904254960772140442677302891984679511394246608648546315127918293419139130424581276727117162400473332168662664033202526330266721507372892131799960974672148766023843266025494782378621478889522185052212994379738067522557273500559721576743054499779009258491796828768870094734682702355199229450037674013378229955845900854101332821310360155200162119675089540102249431166126628954651193648139104387771250237005135209172372906776111210956792531781095314087371138765237683204015319735651673430020643421312877382829797071668151677004898980592316502701455248112748668325335250716399932314547110170533738349076994717280410201859463018330623892533733574318820792934952277633482285697924725548256823010445408554466440084893048847400876337122292158921751902262871241346479730745411409507495899761687531824349513481556868196943836260889710301559605956732896752726847734278590258154737827533134784946170161434241004378509748273241531428891750030796801713167578114791319591260701523000718868420418027465260693757611320644169437204578546053276893267913499141869379010191392200813450325236845075507771313938935920856251162280914220200108946595312612269342932064404325012885571716062979558616188131252982749680359958855050266650178772425347344604908991808995709475358824535240999902439609580278652773969817899052532448857832653145695907469616608704110961673371224857996592793537499113489120835416484400300453139669535499858574449391328168871243098487139475066774978688973226459981865659809535923779344165372024955940387228969462497987118467704749391172626898061264215820605925285756960503492513212842398142324968386162033940465027042383957172238284963260846024739812749395402127677792080036974632829186055341450657520987241789971156824655219019582514902457042459799488833556747107121094464459882764138523747502852214521136405285537038009948964176789720298906682016035207827529128338279462823050300531162775418179625908475299360413031775790617527350063705472729993660565605256414097220869495790264441300279463861573531886617594791014150319033210006229782592999918255733024774567766886794505873439997434919580141618332284453976728657841872624786659771614962064527454187817095811207337555999660360815955502008504614028429355877871975267067181695987831147975506718940920776212999268350513453511666760312401662397300840402757735079178628978322027004210223126532138102927395340395095652019650223716585781527875171178926392960334565721578126558131863405995606371720368952812356995684259742992586672950409047593195002742835966303752659977195548642808968680617598638916918612010830945371700267833663197300166870026962578147847877644896804520129727548224828665710364422641052564432915676802234435181256412516074465653495829095220259351453969785029165053614560965521073085925504693848999897247322333450596785892044964588482986500185854864237810886352972911392105680418658140575042345672644224636603089645576080042983825330399996085655396552665610051805026328355833548079856543671346168521980196512645627329947828109031863786716762999482799227600064670407665466130543294245859224252666212383448092324805749571927214682368520054997624476855931118240340155544175451632704011460790086332853417001703123473203223083286701516582648117470135924766677681341128125030661201371524531788455066991101492376178790232442167285978743906184827826316423962220030376854415366397395423276912942776145450886243230754693857532333929127281793776124724441953361843162780069883108741236064296387184376656230081183769896886343637460929670703705507709216013433305968568444870796828063193787588746805357394772672246249337318891157449394341867550876282987640200836141569341097298946056450863899213751928012654568836308892716047291323226304184845037546791045697338105298994390811342754486870841883620343209658282705222434957134179854323961511222420595346660417803009392920528581980668797178956931086964696417902923819897886335508701458956542719590217171410634411029485831789968426755635878757689863573477382855485327927610812045786439795532941338784743080415590073910758516507200598472566299648990663646099259020814497014490127881460856800639627874704588046664364515258099768974286765656091512749818261318139876213007383011261808623554732500880322890225619839505056662431330214874884898414304261069912212989498504095139125755576689382227651461306471090075368334237348301078877978407760089765351871297742060367951054629072783628174732691278317190726055715161419744283013717976978099240511225734971983755803435725424217070766342205097871072246057870242632941875163696455174698503073257198504079418031706563454372797366271954588972631169319921907961640436404318488414084907778070378407349218510480662000225592723069535224474500022335029406168664408055699532607013951726779670578877524870081618164500633538171710527387624469897939654884088970123568298608234383984775598516954401251736707091701224760265556499535826957108718989080025003552240937799059664486337311044521233779341485668982173051254673730459600940208880694688942995693504563323468766464651422856820781409274524658693811275139984394089766509929268789033015398109413151879897732279567591473894720671563849054408558389937885851051723640410639606241278042040535701502061362689417138185390644242938931389241410473150888485956447498079271430959178276823054004498601862571556128844925255721441783150675440323866770493606149653872811581329012143391000466664252436746134384221541746095670401910393844648859515043941262857958987757724593969441281539310362485343000722447223175475081026869381674279742633770330399947687530164921869586669464123014168222285396325835460990939362673794929560906137926480992169783686756825313715622647472672856988289924265713525428063289090761236464704250752912893330588990515603091366956271770355536102436007342357771456312819600301617408737377124579222293241258034613191013834569548922625014468124874802452332710216750292820481212929611972059393831905481755808150695994275453451696990612035576817393757340118355274055260454336121947589479270033078424710792070303729131459803409342531325441659956474785492843110619009524215049374516179069214315788932348800724966283668168240363697418648817852734245616472411248945027941088630233901854994908203499707055284790990549124957187475709559319586032488181095073107454665088463935688496089775279044604506931599147675275549423372014995795064512749192822266262652299658525930463840178624447629901249637943113043736293197695593357344778809963743167886753699757921352817225003448584820183118097053220297480668447374331274657298513153387545339854391404539262876991625783932254627363569709423142221935548657097877219422442762045455271690026967465394721579615055826562526812441352485163747974204036679190335136051478258546798631031619405381010606495129421627820505780376199310043971616903896120330799947849764653700067791011434253181433754436768476080133195975277677528768048608499332643427390917327515697902334584475331179829754080425147431506186116670043905393337919059718173328810492404987611643768203682047532024167143199666463487008690062298263708438600665939606342893338043308644068641886575417607201521357798141975892125216243028607272418875753124945086996835228884792672504095154664275409257455696256920324637756990799824748207439928127233371182065254314920069546812719454330799235191198462913093963476313707817635516201325587700859779622731836680285620227205401312776937149999817522711469065295758519546486332462321210259535403851490593462274738534338777222285718797598633658742528348966529537416043628847840629806900372542054807415057268102067601658538039950913471291399622534406072553289737811376258109498286750160516308436334071876462106988616549417655800746313152206137377467317681917103688827426030321365005816658609556771831891136834050342740482206980529680341620755618009901019634587023838513697045860805313831492247338297165295436910888960336815301758319835024235012623842874746746478670230523994182940429202442689880092677592595798271052794078941396896018042917895126629182692128545019166947194551226447576281850671455523058601394240650492503008985679789259772000446603667846362511942904867006801693582125479775091284057684735088670597941125029621171006700844121339607040821887182711484910886743126951207361861434171824647641697046242145604836781917588301630128612226301905902657789632189938759682469457927966355994799775152455491314655430539663485030757465195795260696716644319823211961626899487140144433800396762112074380470225279408336168073696772964536478131125279372954181458485422181759392112777358102839764292959734157048718310880946898269188949737021136054676081595996755665080900793251771153904597531801956652380642373030373370253144654229309277531421012896443953124137386932229362125969306548868199760186659656871018760954502554979017781069051554545791470896973226523886039745968136924425066954737448770798130682649639424330469970628986609800305793137544993718834705976424326755952391484846234751306967869935340945636956835167421602087492128954047742793344916791753731993487870477808103100531278592965646893344750291628782539084418379048209076941250526977361526358507251024430178157627326766370962963703400415051353190550941312581506223096499836328632955267042090625884473027480391121673333978871929168973057381746065154553898215992146636944990872883530798361814664620335630049582033405548903943535186953379689905007818098682368475241271095135331359802221128512907624297070766806066348426378020145869082156276117657688456252493226342071891259774646299108523417169716530884542795232624783137693323492643956733550591415498033034142545196018358268989258819119585254057897759119720335252835089683811062444479664465171772441586920720139107722456005407018014702076495082957159787134870172632922542829784923791597749485481585523675754000172690285415970688627939443043254940461544563678029332326586914524154344925758538816360374793745723198829882459437734536156771459785266077186970314835535816812398627974332242526467579900513922161490971318089823467575233504042788870225373131593115459885333352189994339286392184055196253131126020691679658222119296469498974031119044191206869650352614491518766429161093381100691736370456985991476247033499056169484635274943112034628887432335654590963128404723787096821917601934214030411490449968411537438571785620212734914943868951858673871212054361201122118755629340022208308169993231609202213075622552995110205581427054753603733008270630789548826049239167423732489060945906570623474958643307087184011485231939341112839263984176333981165945417847090426100828547705064478365103970666757495736963771949541890024079110010347380699588061314365689635234000218820037750755094188952138638230187571071247418821098936730852225571502058467600947501362759045202465216522997664104033545039828718521521998551013310052352534789314729122407012787337028012140387030239366033845488398934309201480784313125664776741087677380854195581057180771686795313246580685895521473168502112824117563993289566650744219615173765392962327007486280855732590560504877432902184379373877052594724237298215177040585689851978478428112447202822623149517806658369497086438754530992482408698420076706124914484634871327177608870218185561547560531941381416884522140163099340830403529330473601706842799876627147240672725582931742242571402090571372851819963149912612807393490022862764118278809060231687312272162384582103534967668993762701990556867456911310947856523478342742392715406643343741280460819947977741355676364441820166297486752010015426953253041259186575155943664181216084772604058474020242191454764673540270859947543963762294358198864197244925590133333522445018733523671307208433613886012615894743306489890266571089903025146599103760195046242989008594209941146673994352752122644501738436418865455755722224240411588419740608351651218148554753522669436591679454343543765457184356122683747608615339153425551717337544159863472814550616600112091973416857667487288084407612485159557438769973033057660824813640907492998443433330126721515799456589466924574231558252258337567588157514864530195958329200667603954002868925732471127444176777246546275547581458282498347028562404566194934864695500432135074738739520470084705396989566668154427591476960293601025532580942643551814192285808740466902558549318725661388760800067042574297221971069791709508886505069015425218267890103764853110188606962762019757258207941803498212859141533432246900688590395290051340266219424474869953021482210804996045977971653472594627092364665856245750861562056473849711344048178455237413755013237570395440731224407538217286841425878049631780364641467936971210486243610989208881393559298461493199889187060309654228744100594329466370742071442244958900794859682209590048243308664192291999378146094516064970424560062716662941830450259291538372171730759442072879086485077436050092380381716682773415993540683539512813664871032563788692440096397477532471977271588380963254584594755838248784640477947387056882811778647424946439671336986365388628960778584145733532663293665384952014287827983138763150337335086459168620478065655501026946532688929323922357288040069401934020088243238058206569361718489987909888525484273815847176903423402419077136193561298189069781572516678658018654367700874111022494933476671428003451389193885380678177210680039418303545170245296773320911018059481370189350523597254783509199939491655091693643133207916220061796469607388366301478067894490879156686848151704873214655665932539315975844095788164167896091371549981308918970496042285495189963248219246043844489461826835701092209272875517250427124358053046458626447944622770002535242755597040575569167515951160541523835486819553959961706787705016682468639411737341349838982265113453589987270923015925176846619486475889862582720173895409623986596316928975658075304761520994984930702172034788257506738623846944479191412399868729402139651626196952112931383862961663580514014641140511880758116493683582986471856072201395518822683696254398939848563540929099307295881187672251535856803723051942933626749435365833024251405825269682589375987318362377939206299670485550068428505045735009698024462532383204818193305309510282900491568145271751260846687091025528072581718934957707730797370747506100351899091801543281132623374868159438738786358931754678215140825916600778852116578520417515983053130642084455559378344962200507224826934670700876349259410424025444145716159005939640098020631082036648669855616392784525624296165698978624836276904014409308576014531239735894369363296368950729973198166343772687564352988496451595977775149186249897056873670064265455191062513926771661093235303920622575807274822988507838214833443141096097070650286275877126939890017638240742085482360255237684990888980840758695327833822214945788596447914500284109270491250294093010708417483302104974538516084181739498140194355100328736320483139933307032860146310944524792673188027050315574670704533113542989465509794883396210619190236798539593764940808917479162280843582148973258752853318562102640358124926258388581373453724991370923971857317624373291246827467255021676750382053382510729642386093090559462510375337701265265590214882302183420590623467589279361940899302904541877111940668556977792175040207959465845685282563758434389667573432591616412394269499014446651407329575332737765075313272773803511608876958530211528268053836914653196651358540659135992728900906382343422918715005367674863623010532922650273095992715622488912479710407278638859449039295088036167744434472098311330349931595937758744560869726185313996767495633820399080462928929339203427888861826557263928575033601762188957884110843392547750517335944631414435455998687146569161023679733775810378188541932763995326858783984874611947006180093175090919206146682344823727223498335419948073370823950131311743142333577594487125376474410245042012390379315206741577881989748983318227346190437074443741334813567158326933557026913772741614148351991763072846652439381778689169391629148782492013396317615500665994715109915252298263045073779984906223117267560424758562935143235172080733914874002510662016455016728255260902744274831781169730540032808893768386371471926252331840143154164865865058901141971054276238560320229676227764261845933322252207451537153949682322296767746717925206270893190821774371679912225678775874028241284486868294228479603119053290181495156102141897678458467681711613701099690809521686046895078560224462052538480445443461164867562490293330927515389655122689701876631330872184143436038436299830038984140248964839966547284071353568512384611222156644043601262570005919671709572529871189651841283097847865143404763325301563562767710697297849795308385383688129461501411018710791145018865940340930328665141299937715368592549491013910840964236562630301251704850094924225241035147514679672128444219523086186030365093387204225236081558492763358916269930576118052845458655453759235694109398118205929685380676926733247977128285285753022377006560529437471341922780871854716927863053906856034745993798776928580110454977148596237361222667767091207951375356000287162630138243832245864757425914915553741841118481966704356558893684931878198388865864334562900204675084331899243851462153616358903679770105684441524487344929324902796173683980949021750887820902483200579379107917685630439370637165876196269191186332988242327483817057907781187156561298429011321768355537653541697645367175097121859978593152629306718250413298575181924169427018667501210135860223895986273321649461779355983124614117880717515173882016231022405080686765101800702617170265719525584900240032540694206645370148052065062085235215263996052687376196125112474842618169971997695254069212903177248518516036645434172249199996690107114486430207409599054554211782998844707197630799780915657325271609796821658733177449725608437547025731880396444112811831419658090488005017468662395245042133687749685107920142276910074783270747031180031950384969623358949616046412419312371306592936577608477234479225328981191229336766440476678901891921761486661433468291381851298908609048293753244394275521076586046537266389704969643355419178242143948074495273960377696691717095408908082461856771187997890582055548707147399577510471610154964371729580850706812875701055419067848085453371295221239131970180340924157996623420165774000971733718310623357224925196453451948445359025078342138583152922737622430706747426065034218931992346535222957283557112722951919452762516340189533288267117825453285481698136867093850783294502079655071604280335906807641899248178818678725134413923455331180253661541197950377549730097616651689292515528321039557333226357292863557500853645049332186513647752714809103362084607186222798523517470021827119645890850820556833232087468105103327905131683364241276166729574951254406689542703762080294620508861239897258685508935768873395378768388522235525493045200952840532946652272913523077595031312735494369619680576359600632577851682596024569451988177801348851049344473337849942086242590786708530932477257518163761070982847542991254851261081375351104041236131382712288393395201862793728055751316725110514199471882254778063996068398175773482213381095048456083269705732673161681418120977809727816257480469988458742468324073014302208181513835293357044623189973136837227240284980927015584016486010136277163928486223691568367353325696482831041279243963147756643112266914776182002119427330341114109607226359307244886032391418174255480570653797972955611127275683900825118681285682072451821739097898127840711172686388939709177492499013958995793084176279444656119689260312284986475610692928134957461978557598739243367508841603711990050862777883998345414908099313821456793107155793729010652084749967153814423340137314150511841188866051763350295814121164309449813098229417983116321903057573548237348338388374071721254002318541193697411342076264627293059738743871981276845702955561554413046573055359124662742107465861474577548652700407274363262161476841459999532142848287541153502991625183710781167499961811339717847114732895533481107677066369517910704864374669699707985041859089373515597133883457015439615249189261725689012992575180316460557927415144381057943815207090347787900165108193536091710464959234045705408302583524086068284125319787545487182966079427905246758626131284655799201808740558598787151718648426636867629904420840737130152395626799664689725189341788380404162890714425849919344002437360672945964922784782072333396900950700820669029965326636860357078108097552359405737192073679599538316023245937869563591377489698784204623117184815218811830260356629523543461826538339193516001950035221223508377153625879001589004839756950671488692901757288228672118023668877114718611236271956165881114445169410828853545295181981593678255599811874358079842635589598866260700029253346019301378869496515068915641612948122139797635499832632744135659441626350724111387060392498797371258039771871526187998270173107376225326643604600599641808860362811088069180576686278243636367260069569402436454958996765183735239482226205100582532216721667440146405821572275538658171461037933317851217564963445378826710497856881447132289605885845073665308216051592082296130789503861748328160255788316052563267869872461420384619513050027811461881685232087652381947667291009104556073387367351132138335741947724097902783282008643385285463779008788760428247473818252062626499103281318596358491093807142405535876558358682411622849999597086890649223771062885686872759827987890117972388399120322814443586968096102148227441817822820785212565088883234144612055178716738315259002196564090956133179336130245616406304933438998306959785661370704665502979132383386564797292765296986334908022162457995595015964546754011520014900823413648241694217732270405865570059681739183863913594854234366416082200583530942366186757101290337672971916268090412453474494222741973535312806046435340059433032432997173041145711390854195066388382808846177738890089901995465715800551653652653189942934019643923305457752856895515048685204879276442083640285755900647903861376352395536656421448183204443267947556521057720334879452016839466978355370603961043862626125987485481730556012001038301606704533378048172880729846499839216387310286351586318206021245381359294871008468412628502781294268928288505391245938687285796866931366667229175820660205210826186380693010915721495448511872622656589424482658583404540908033287427067635680198960978411843533004701533835250466622328935111358146104567192385748830079402878827606626552873731518561886055945605743558700916108782465399837960878042968797148099058695937760908220188599293132011820492794433860133476866644304388381518433025497020442709929865448598214302984689947200486092300721764919556066072374638135621012524604398747808672546775743148709679633579534997573336703475456080544965010777001916168865954070116875828106248255049284170143282200941619913189905834980150426899172588784577435142080273490170803001484155755337577660228407439503160686824211894442819164476200143497756340128071893893780239416496833776777341584567914864456811499989439620586284534141813072869361434186193792025586891172679945199242235723961958472791382808441304219372077331184472667722245597123793058943688585953807856854600935065867881623818557699202209446021550487505862235761637042996153776183551375627618144222082319541141550770607326837725193766401391707004308176213348039737841857926812377233098909681034924357462746539186514739834189891490638442805504573656912286492458622885132716124056507703830145346682737780425983458640566262011991366078682211398243494206725876864169870389485125643606767885207669313054300553338887610515065253063880754133519423508584614826439306219237358309207068901234922801089822369641784159728302989390822630943523011447325477337402276421004214925786480530393824649836208064576987271735551046955957877798920412157026568840430578788952970241757667823944049807201860227445097566826789171274016086505918438941102065462932055123458109749098334397762012389926194102937938150430858498682631118774814034007179342589486491910417906304732963884202421489915241170146399696639791553205241215089275439188751459416902615228923148056989351570338408748913090416922850579852564052802868588896706973194106025419520930104971508688910062658200272252939642228964552547461693618568599608827219901899405141947382032690026973250313006142527218859698960797517977349183215066203152554603075709212320694363889460880249074298910399173937260658315016994210661955871528393521998453327417662276216733605384012119929796845148526874832632049660416612595255399182476310842760357620653426944092644655407949159967097591661984575565073473222061996287916074210463568514120281169911183026974314863016508994886339613364360835391342410660679192484564872361361798583722806539652392210679003605817622176823193594960610564602223880882580786375090943602928507836010762540450098984930237011474238529488729018079544805903976203232323068769258283159875211229675358435551711786968175234437918643314087120271025509016933158866998110620458504872480743327668643063640242827313972318469777806558576924776089168562514007460479412305255646030275947447697180520379823826600719774861520840769349595165904272280452691950451154670703673587470974051932701638677056690769205847402787054613136275416446053570212523733025685144641940061432337080188309210429220932208566372081009747175651188381779261676995745063511107244156000949275642545181402583742245587098305319840836270116987222449143738575131947000801596096433460829198467517462006003309207073281219731472696118059570463457979745957709488212486930414330433071316908092734782711064323646212496128232476100877779516035502031013725816035863408194664196555472805099740579955691990921584161640518768113226290684386062635704730365758076605098733819518956520954050333901021802194536601496718102828476986052173590631667316348460266906566333291287226445991179725304184087931124607675631914306150114578777286444312573489133443786487837145814232751808669900814054930673259700923628837667775191784414147324149185491695485232808950729393177653833969762919025317837416020699901165989966067266934965172103248159406065057495188160265106180624974828988232629455365036972203052126509457490857795164309804640016519493296866220986092139163255237239538547892952708191441476273544743246537389491692988515304212146908961369795789476487879875954999302193672572326287782399153112175486320941830828146273279078214181833137633597012669466327880450039512512635710641438734739811858155766838877722678625674014720292517421218521879759863009383358339410608200472298848665193422101049091320314925772214014903073889492689355741090640054255907675984460361563179000226873453372713353125842073733404870503263258256293171163373760983061046491476108060948049662963127230263353050523810850726036566326446105918890858491796704618643628057837538146934874088304838693057862060214283227027397110179927174693761732580275332098229724045287972223301845784279003152776939868266838784382600546294081241159248446661067195477138858083602246818318813268803963275359290282434477207086150196744033989024291224758026702551539476882662072942463388179437163452471555170818270363042119521798353005018622650316848513065113120082591692401417033082079562729200201591192049476730622402379812598636036526722000930691920326509540654121896086572184980466787084616935058355967647462781941952434812808081913644614886604846223379207541010192772119306414520920956292064267868582502600119231671011426721872683617539489366398721499438361064560410110374076049351539153455325910954720762417399584088537094244320196874473419786459494898852130909381488726446744067184908045212999455928098234365626975162201819861743076368537688653884584592740049582017127543430339681579544954663801977050512569379771022388265353143039877563902457412937241069643323098652340701494303692737930782019306262614783709231127055781374615707666499867405926005267670565747719882403217630553563456091012543079392668834888248153719389769579245784000854935819740687053050086820625969915501403298617659897183389176787271781424390895660837328476642794431434887104689214801727616396960759639423310137433240243847355446151017567356230026091007987857958872666667985325044938951806315028025436526199622909645749315108850569243295216120689333279854593400706900398657672950928841536062317292140250535976196806885578359494240262620349828934862055811037389600982615562449328938880326163768153696177725071126720483428625711726142379268981766829872044973849067633408429441129186833711890821690241740632884232327311609241874195667841141061207610902840740871673258222581685880913102611677123947663725658819465118734521611073320497069256849435344250002704929240103984023970233272510848129576733847058705860771568110395214781693818010335375333490815241343713910471678517927379203503120819336256636804989204890308022101930096688985855922823484914655653943467966195446635222018797083928941108025697829550101310904229602185694600897459372744123152300583064937616987386744101264904455443807388371989795330571019362310679576349130781836106960075824582919301496899571936299562880818726081512277315183377165113809369135023138046727551300858965348502489968968234667751789435601249971893632521535636430676469786020827828147213367265843013595099221450192223525430287791606599260676924470205222717484427191444518938446381202562709724117325132288761145998854646279024802140323675231203536266600128293962536163086304041689528758691131672442799602894042501061571563830538943341048264098835204028596337462006644517920935232375918597536809352570337457921197684148858737977563837746279304180644417141227963841431209950864250951915073717092664006981925676762992432757714778857161469424179770254514133538471114090628761910731123160389824910050190739578503470885958735029509773518169470460501960967674026108115607537509311412596348069924373564824216906988584396485995943131859810619969556264122237911947996301690554737466940339162538852751025185247900982089683143538347871403364666428952128200613654586231264613577225483807695892281531585875528365013224238309661931628170366329965283550648897580665837081573989334590423125929089856976708572856792050953854964092974642406894836895094941303647731275703460560760448489506981197824201914519279030635573360989352477899321760880550925361595650922315374946623147937561092171166734307764853726789514826338220620248485479520836471855040747957922329873652970023381962233161165080542101259245016026931876571384745147859618957118658234615394614545970657585316428129697482939938397911210878051476253486717195854076969035281585234300613976880271831775337071813929299066987238264169740693674157023527855611736166742209618333196120237315887462130552330099089074863220165255829991634753598889566826766555379484292551953897784094342326225142748247414836230920694650363127264579615432139364580164038716219227217562330554672075440540693811799853619969624471141475094627236003445401330150192384673476832864221887537034319316123589797895842763975670158295914111181717367415529485012951453331506507148417597597096202904458073673293775217407102202909181441441697858699544890773049081485075221231629310256117206314672902730224961306468278436226114874713479584815874007239965590401602811864283117554235667417307399049298485615941550152462037539263481718609790132638717122571951448435583995715841453388454301972268027870462364907001721662852249461695951729210429970665067070365226109633486085647469677251097117855269918250409702073763673348050673219098974621735551242427968303334821584161374735021701854933261145695619309978681114716607998491574376212186998331662875135303164529558202607853982890048339304018625482967601416855056596966161754157994515910506470813652862160519511178022414882861702258749793195870624657172408134975176157684508970853322594539949351022261898299639130717623848670222809131265147243319359789041269404963028255433663260903550339765997573537909900751564591604067235007847322071022201431408423488434656601733054478210057273278817936769466466821561060433719457640316456014089942607998525921804074196333618106418033174654066760728603858041964146279665633882906065778027387354697308630544149928473872405165334271563825816060545212211154849544115948502522862113675305051853176130223039770532206411906889843473941110240339064891229602533226838432969115398142237572130832192329495320350152220208119644512352480316841267163571137848789292580469630306600746492769768439572819083874914344285137420418388683327755604264943823429449892821332211908248105926760190316361668630047643184785099155374275663693852970179035194736056579492959714520153508327031274017864911941321460078997707067826650350675984567177931616620823295499160662644434019863438774280664372739577530249761940597179310891776019192163603778157303292261362579943397401509643257335489508692300824643320996776995429913828283637031860820762412358120915944442268363928143209824498100899137607546271441883068052075148365936640731204324637945201809644513335156271643654514630420629959201664325477746411351958113406848974990622841500253683130987151807201834360867984677874786167117548228012790515975925859032717985006008718165480808881278909322756078796142864507119852242164155244986532835387478118705128175689598415950271563014916349072259844551897578232010444420912093581826832111505242393858258208246028130002788099935892822889502132243170778381145895423035548055812863912616412261133045283162576589913350296475613403467056646989837037915448344721621846693585434559403614258680130647524566639193292666363759701651178834557682985707440785893355468875673214789307205232408925153858825676148785311072506147827530584324981658184154672989872664249601992735658986565945200255682575878486045796678703891371024317895141250846193940005857863953443312837432206320538556746253711778788860204316424876446266270104798289872934534603630015758286455797612600271993205628308145210466068404827761007803028340661356422498635040966930468955613874546546314532944714096025337437572098921964790543425629370271131314129328235121165463411215932045741891820469841800296375270413448678700580102196760825240862040998610546773058445227763419044915685289801146381291179692920121890385190228591758653941442742413053835747587340695740544001346611882202863999088268373785296828377585291421164141618121555827018583483795526912144151539706563193371689422495423701004029551979157720294444021130654786097068635152836293109043596917284511091124337538759984827840758574164087341962628535888597423186999556525791164339913651842836223143494963513964493337517230469244937184253264262894781531712097565003811629107632545654744028807335288477329111936792528732868366974338290584057887689984402351011709774174474953482082295148156798580357266164426821098011404747619188355914496071391945364314498417484947205258836423691471863132874314545032828127214818986488322492435410402868029031564276764624561287447147595823070586625793462218982117229211131570253326146775270512310792842320573666908416469332270371050902769718092006771736283311537686968548812978258500468699163816015006874607314547109155999446695098966703278035015456254692721993555204599248056797949385341534699141181994309561078240010361763927724171341212886194845141373503611357775147252516592943263501783853667961870367648651731340312882703754366323227961707224114214789281925394012390795824230196948028799425943432121488677728675587066021051553732832521571565019988811938082511375326173488922797109331476186158497039184584542298920178002602443090588275198010279917524786529043386831518747890810784053950672081267910383667583478137618931139379000270492783339320176717838449663051711309295436563242716598888031954639738979630716800267062324516742727362779793692954365615713732681639287725368436291350888421457168295806720059315009537827659908196152237054094825916175426887163367761355656091959620610632872377899944495639451153399917945417320328564904737048058248562906908092553055229459407581568425392074315927802367869600183378086881966726560432099551850397286047790850822873606621830982832124502960710564396272406072704311950993041177823786135795280512677914996815447399841840690834899340144545006733680578846243298556083172870472155006530013373454256742988135449293270054441937362855325655355225994749451868183460693490675223908644761440857908550248501629814438616954280881009787887312755112395104280807400628752699296529039282441887872194484638145675386077488601224290751955802667686836345481337332366678792769456139462494985706028484660995327518702876112388387194463013036092282068035570992976076485065710750629896129544145045989581209992294362135985341934812515204418161201419553578228681061759229693602074038599052338103610261653739722454530621914439627484760226049582575699240703096987749972277561784364498423934918264915399241804150382972784203801891940152652160603467632838416411430737387063432497463004623128653361795730583807225286896692400304785505299512256933914987497041979387786246686601036435317510119034471917996339375340126921366482418070753825814084873422416173028197035467552505084764511136381993710420578889874873862706781601591273465299646717299481668088176852899423071919408688020914038616341648219712396814530333949483999439450180144528650473902487004025306080795196098779569791550156670788561403101405113880713363805716231869350739312840361109434441530821406518257998112478508353033682252978928224008825709524573954301767446169776561742271127404549341945187037562804355494004314367867526024675298283913304141732337733723849909132591687074396339142477924730146268103620202527211920532410960659144209474567801204867977235421439871704390768998742383256890156201650162269375326138506914549725775868386331000448329294713735219776148825461793364829844038496722758410974085049745305752052789271226203070824066405264387352527513795119949152898534316353600474705495341344962202080456156855439194154068375829678631255701009263108160953906352170717246569622341215123547537196869168326520517884887806184998398768654431459631819592193054644203347202390412194956633857410240408092911186824492109769565365080367630030041226105324044965892030700326479028167202646727454768685582230041485758044313421809774855919617964488247061344640765514149689694181503252390825477980698799762811073336924626857900875835608689259462790935628209115700136211150355234261746103139884447936899698740803104674632811476144116586006237353559790468077878479813325062193625869059393473653899564932892631983195303491959343804994764412201861886070811735274880779691732022688345634647474635595154506027281678571000635493723902382566677145068682561633582428211272637466031127195935243684540778502408526975475272591065540596064713529653729765323135649296220799223491394610468143529348877616007462239221477374844849371950590401135244739857905490216385055060345568840624960467011689471012895087589564055167315824338485986831022388426772948659538867392423562784578217640552517151911357079718478263266641622297312735223835503936911304495579859147854472259008491489394549080432903091289946351128684094889072069678968796847687140864013345760046361035160395960745164197666318525497133702965955474853170534248540885363529420944005371711373948586491059858170367380834282229221084187945301242069957565021936365141341422135407223721431602966805493409383935763776111969101925458944136606366705940638504558208852119156812063196517970704485571550664141800168744933589150160914379323143183326934048077818700635959869623422354456664552733623861040931528155354389947365432671115565709359009749723793224653424619237120533172468170787401329039482031052286321876921651010226211136605691571516133335760303263130467365394359037534781744869124329766338960620393896963695034196415269894694602179391801986319559083595171235045810368298205161392646194858518670499495281753920050994613892790416324848321435237927130551209570875566218286929846433684358203470812058156347208353340304352694947527693455285259335403937674728397971181669679439065737337895988991268790262478589515476687443901895266728539521250640233408909152229600003646039778248067528138842632554666042353917413538711137366309967090780222477502301293913977774820478594843937669544790000365532175035479095358542676580103746216908887866816155884419060726675448163615200981302919547827852778752007408736117341729098623121906550309721267380325684438219755271836662520834472032246682870529346911918367104111416974919092526715453836827064702464891533596465698421963191517333845322757767677036601189300484385272812228994468579756002307216616679085059670179669814719570843745662527284699223312833819727836769321137401153763692823287338854302410277976826191990047894313860575910858442603464837193602304627324940011173487507985907372999204274845163544863311534951212922627031275314664739597496559304028916298025222490850732228244244759062989677968380154114703388194719715713139008202704751941987925608595919066283971020554887549393268572725393642137619187995565586951730786919802009439791561383056893622483018856082805752746887320918804676715567509002931489520281741965088919637136482534012156794647544904759321642880128087900298506529755308799467709214788088895923484709129028380363832802840736880773931143613360024435120912762948299253835082040508685219477161629004620632453789688000135964518057820059589148762149190146885093644832893568517394157422691353705198364633590898895480190414399256461155581543290645728054359170323142528719204558875764087488150804648448590377862214492221221418198527692590993969998050319346225741499326336947278813662680479563347482360349997873594070371017154616091843869189168409036617895954867920439470755558220632621000795313158805600263006969409513119696029267417726836399952880639005616591080040676935991100998697437954224572791530396178661004405667278728367265920104296890628826894390387962534689154160087154041153390267592327108791493546526933256643450180596708131415878154412709314224915343127255752577455772987622171454545653163693125572295494290894372541849518697779892630566702678055393285732334359072856744311601351523115669273729242123696586019604990716199565025881566558875010386794300818711022204262543773337866607629560833053210953880830395120899353483184001891789682604039642585102931939214633307162734720428702546861007174191338954102109992884977460729394229516211822640344290463477189965462432882609604392464986943673130474173031736219669791322857808630439833014290527317970340790777778181603057570984754859878129172863299966707427230013585609936690935192612451886169506516076635056721312838651439476585074296712406666000301949048414277032089271696485257517724857005671321448610418813381076980373877211382636581646632133372658547225009993687332737834799267199192393665254590022690553010374861915242599511054572092663887412740093817881532033115969554574788993953668515806874534660851550126945660814466999802460103722069782264281099667942464504124568275056528642741174149918948557727183072211433388674308293584041162036704099188398970722968379622176342164344221936735402535608812039219548040004855273323646954411107210366946351952947233982965831226390933209535247909673385887460327330176288209702516087048905906731393687314094815565735327798977817823743069400714027371173065941210017483857089912459911008355761246474756895019437291607407500439089778566127174088670044071019885920487437377128128889636364419147303521838838455787584670570693522100974933165483918179584380877617267249855312642710570617122251621160093766572091761185670531017869145314952745563814167422922662434508653712460786969591521781168076209734805323502961840797103444823350711998885528740978176394894542818930280425803057956304815041576325323600645242236179190813645547345693146973366124157601136266887524002346116582909182250778086795731673301242590306256540795794751129340274796011571397484578431424149431898964342852408570552447545065899509442916779931301025409773678743612902642603400110563287140416939629908887838768654609269251120461910664383680144198393899341071904717882511179152792898132311068314855637320590164941291068808950065804996195879963931011757049089974428480072900961805527171468426164208920810054043695075206023397053824048521413402983250235973701689912072912644991601684423184923801096199905696490170550652711252994504960272102581822622620765845984414343097381702026312990187793503995691746067992396550675676177220762961947566125201057053394894136496813266368969260969313463484890501168436899967237548393815375009687878574542907200025598794546930317775925798905449736876967461937911667606848294839951032330292084872458557388803186048027595368244968730288733284352823619673948930718871150195250832601925355278494696757274642623001022959683922975554924100911285586287298718003171530561863605222365418707388656627508096350714965530724810645996977209989623101041423837885323706790437406567903575236822730048337054542325565117426554140693286797686353138532916850884802031832427055964353786431129276573500530941567785373377366444574195102322789296588672026104338971694037728496802891490543165412691341197528934974457657058178234598940834248147554990289795102602194813730975868904437004218898567939730240300026684310569685137154712824261644857523443784438485917027034822067080098391427477230666489325635381284370529623361970079050926043737603029930733910653695799837236242105189943371250989272836119075822247558609244450819833228575296663423366344888421429971124573423977581121493818614445641560998784705996456132970697833485695964250741444839654023424850804523646864577665676528366760224327881078857233676436575257987685629619279531696802194893605826851572254305887592142366466261569575998041527984786525791069963374383790804991840880264371541946162603531467147044882334965651272535789254522057198228436273227222067387541323664696571444527976375826543177184612990192690957639196238274826908804897014048934107706694895087618803319609261985624810687561371514591852274052590446819380583441073503523299448517789932995423525598037425154484644937322324610641566060551584635504527899275202415583705585992847554576416608784762105247422098005795326809894250927549250913890485960297561472619329858857689759049186154060157328465693828218323845486693411149766832341638810223621937097863666595505201050145902812550300976143436312203074263714357880166310105507225007924451809637535674568969988427399497942429656048141585792648524746603907127598426745036844301138246123216532957588957671830852351572552665532744150621006641317668890146694209896203247813568990448013597519744100932377060393300483483389829705474165895917435210058549090670058003174927529146027226048841363893050948234753247216954003370047124859652736728774946331245036817398920312514761009765260387596604606533996869830124297732115299127601464753184339983953675720352361579383293191997812632008775093800835528992558312452009187471833459224080730009148892371375517921541245327423936422568284888884778466858574727371440098238613968625781617199505835228422969316369549839378270622927791115772802862375700749700824917650454449830812190820502324729585651900945987431822800508115249042795635444139905193557111610782047805360708507948669951615366653193597555421013215791376987990621614252432985091903660810120095160774363511210296447462618088307684552515819111595119419680602585471911441974561068040580088878643710879482334829362826470871399542493198514205301767165341110103451660561706813457044668215069798232814655757594445299888878623481900862966329658454117381705252779835873791794117487902382982127859386187831626804249201497933278947551417061539509685941209637695400924526569593247391431229824271666087699651251433635595110578068338729696739066973131541030402708384982846838720973408741842609933224295505941510365672227003592988240182174628780514722245167703184815079070999897168746232601260214147248013694329052380499209504070920495779223098219562028700307609001442695456410246543426960418182074046922220913072033448282081416722059062681208839952853364115543128994323095832793659334000610056412396196272751373820954137849886347366120133744080008807944036694485844800041443827089321729254352355229992045081710846647519147849249101022199524437067885407898890173490628191136029982199789566352860494169639303366693918849027258692993470126539994838777803401429314953497737448590379674719452861682534288506358469501092122890070722963721719197876360467410969178552991489311925984914466014060535631725665334064401625529287186398121942488209579891593970788067554168675183028882403381858513816338310486023671514060824529390456340304827130704615385022023573944146529052839020602273606236438285046654160323536812100878874865274875028769242888885569257489665826335801314370866004014177508375937500171462621656622068744869546230721813908990804106140397626293959117738849729874474542217467354260445675776882345801179805167542346422905370691175259937051541059182384743995290806362341697183377113026073782689895380825122001923058845536967780433268183969391578443599333242183060520238517610732181656655060325360388115801714780023949571685355131795970925860510088020219357043758812151690997335908223972599914368583322067335903870046119924659866080045469301169968978593421708675443093042441328378529113239990466992118134006638812818429505369135030639101526850082408018274401933018870740184915629758894250013185161947348961867548438807823314775867203782176763885377259756792627156924652956709434777319156879377689155738602797264020062857763314204994449730760369910290198645646106708412876883659082745523564269923157201865660754134086091187780217253557154662573863547709849381156655730325839885516728710457063998711738237272955741637504855917427278523194427636384889548714191871242776693494769173684501355213296067032791903062829230348743697600942503908092448284727138985585544427662271762973482785284517490679871258470095201323475119047775846814158220932924075942050822680224480630626681563908767940351358774413520927036923142913796198667318896644868254651580744362788888483188501891326782365037420239238049129210645787557945364966282174511526492387231171714056197419694626874537353975820662334085732225565246232268983633435581628180393687851895796519441317139368772256448331773590744493335047216796270629243437528549902463423086819703318679575782455505996937007218517142417683242911484081271967285557013559205272779001593874983169963932564385742174089887240190646079948793766167947224599281307966664473009116492634141466485008825115828127545669080802117554714104265315237847919883527988907595555000492188807908215146738432462557927251709105159773397673101716602623761338211385782809651289009846804908135952591583040267125434826506577196764195387167261899335089387868146790455181208317017197919390252467125098723394633253352200326797814929375959854885273895309736452294116200010319182825136581478166279846586205219782578776843582124702119269719378161359711599246651587080739425945210505435173669709499579613779404300954273527594181377846856076153757231178809678987531504015872100839757138921346319256374049892969012517247657570588832922648808919463468966437264428335889058022131687722783701183991678087547897655955201539569875987199348384014069389947150913630767400302449695554844535185893110511122297935611014006992789074603231528928265727094284322584455132697608032006988483411945552082194528496665409266500473945380137275586237082961025333278406198879033455510575006586605781432045680875572341929452780711435798056840642123957536578587633172694981365938680394851398596074193081679633926122037403298404250249543955684373580222633989946413529948755453415627369661932150129649205190262931462425724541144296360485829841859503233595902663411388995610835671189863144691504300785106947616506865738289926388443500944939568305086752217033624163360827112069410545165094361962568415280407635661831662423924731750307660880963060071388464799745117412287038155673236231980695139107473876331802943588103692040953346419719925482270912171033256533922518682307933952502049377630395208095003791108379705840974252601982628457983333991892739413875785401235036934297238813466115405916792686781723296558465660613489401557319465419038021059710336701809587208071275487034154712758173379406996263930076418243015433263096197397815828460739434353138183987385438575350750745914386580634498312227775360084607228366938733008525667335262159547309659581907490067728378892892375370976043507494844364752218608944361752116915857597649640666074823137212531662436866967965190824903648127983640825466818106154021807381443675764774485252911807730913716931749628761720833389097295618195311208133541791999869056868738847677904540509411298923835356041838357763374149292278841830643505727898838219922484163662810234944396291089863165443239348226233835547929659905551794264234274158594294936689225557942940145795218921238115481483084928309859280309353564486322624458986590322382793305679343091432481278080433566921492379779501233897358118580207793284316457369985799590838981856628047996095453193863237663342471361787602704120719971108319347792968215166521222676628847387851139026508543105001682427524115610844407911258495757525637592828346569640866521226217161931951689373443159655296182514278504723680675794848496455203485617209780334582696343212463161437662366168562257327051699195472124548279934077635861906809510366997394537513859757554457413541730393394899600469022411670001380769244125971524566522388193453619735620370368156978203362322978202280506522229376241575189247376198985892835373796098717345767359858801328435655978080396652091615641794426144066101498364404600435801385528418293226808428174546050193069402841150465277819265852812296467468828250043391757568152151760363941477076782787075345997457322641110345674375014559031019390115320833496950152853724995653430037662013151988458395121100319427181779786877349477716466194020235129464576334770272625006421268002368925767909414515097909390573062894423076147455363048724368539388169279458207786238908841526075482533296396746733267575092244534833061055771099051786798268105586977694462762335015212197253555468952219155210757662655990535303165417390014204418898340602272050440668410530342276058278279246891472568719849541978049694342948582627534225489604254002151040719651308008091411637477084779313930941129605013360138836099172493240470808406498007958145596750852832978152319775144960858422345153706982938377432644613705132607462948785164364580307479537501196724050654521996070741806494339873221966229754353487515435991372437193125867843594178461289860456180057910675927904268726177474309842068786752754102316262392186905660746829558283102170989860096259138275801330439270175784736950100063709327652581709724388253368658500077494108309374767852185528017948592764405882010913696992249239383072328954774910689001708626609593695544861067525658502286143713942054281673018929928222579761176962974854303975564916434809093609482117857399137266673531050898122607806015609667172441790611609389060414029856880438312533043886329853887031153911267308588813874305352459004860439428134577088567699750886629734697818507311513426240326662889966215570498550196652909648866464446808021786552476507978259442560828947472993508554206633957208352230183746284109706422369487017780051965119684597440046141565147744860084648404275555195627509912925767963886767212356678950620588689521391753391392205410888050266562607461207496965094145719013756127172304627931816513416589382606047638067064201121705013080675102411516222248927323968995022522760819037631046234417769379958818071559660297027880466064562920573376816233743333015696507879270353258815756875417745196477429720068507834806001837661108272832306815969097230838131114267453344247311639863833046933437917402085341901523835181008551700638398398664639219609303765118391064211748636249532446646921578368942347019105080747584310436825197843618557568258216661945416812852751655858326129853540892818554582542256987873872345937972081058647609727546030286109049379268436907187140488794138429902083305526450044046613097505840464730080166476479634567584104321774379690920426154642893141539820316729639177455961340327833607326483542272670547963713393749946957163567729231176502520898032564620638003642349141625015241637632214826122324115586799731207087177153865596075781769906499747009943299221856376154494989389221725799700135344322179548818365006177488172678093206883390380367771181755825641779129887893766900582099150864543292380691898812511007378834103036072265138405407758174837089432240697363062562452854931335149587504518277306918383793176789831498226874595424214690824182724868821809998203571208206238463051692155199429888741353936033751294932032222037179902114041913793424696230614675016020329842043727379723852435294261504613945790641781281624415108849574984206306076907053059461798662545410656720435359956264684116592822061119005253130439048404129039653715275204605835339141497123110580461598862756200399277591546815964615456325625336767049341435500740533014559514924894018577946275894867807984473851163564514464658161721078677438414514821902188661958757383573322072663276767172410361835466798957427339515593562726382229447035227718878814961944644733370449861994232018140198556235636361141013584113671357057323266331537088997105293067739068349769160302327512564454956917687306750033828480770605308152688830673932713301372439719958677501047798961399846750013924024504655286107001393922343757817458276298875742514828067278052017146759953358447017061869827636900540600104545160988278951998941091447867933929959960199974054422953225006584045179849060158784779450652828902170834489746673131454647998668558110803848654934229916023322494582723109287120827701478389667070571150967736804861651384537908530387777136678513499300804174629701861415158973661178524905583102773224615770580425682530197618897887637665536775514588020197525880910830268665135392959946472323311558921179964640508498617668683249208967063304680516228784212731368642813200016079799935283143904145315137239976905829814799503632731297011262430834282485454375077655732376164934307369512220890700511359170869793631713460307667930969219416112621119273691314708500344756230333919758761739619517640812679585179211001159738751996760139301317884668573286085885691972129770556462561048778138042771276757585176862614183087188160565938902656649359072408415567319983696576896714040316457428508084719256670340825075929083031054520102185119079513972005561442116330302652263482671394549454223379628967146654282675848766523223349277618573068105904187739510340607817471723725668940557239790148658681527000827087513244317824488316285852988716117315215235440824407510383540214992053369434596890116831129152971283335984495957488930561144628981433208792762374718295973076378202442712646798414443811097066197375007416079443225148862854412720516726995145305583948755592496305782905066093035475314295273469961818536252309916332555393273239197983200653172198318827387735140548616244505407839591414454809186558868920084473270671110436040003507003019922476590044920699689060477566618555127744236027806349260660995928220165788889257222804063038873164855192003966723257656876414938367091010266866909338691638577411162636279895935374582086376765199094825856460263275133765769583039467119322744779213007983024741993990780880340381898968825402387373584530204419831908429375353983322173877382728370116595861818896017603523168174613061070121426931891472219041118835071714439435178998786855676835852155896266664181754214160060188915154722278440044480689777502439510039099263405993144820043446884799927286732618710131252832922726407849345800504611240766702179283064521341423504027075030591080855475287703285924769001913663858630636820673216860124391291719606453276218900388089121674279944638831834888496196443095813527287844976251518329717909432372570892856439052898665238534911845834881686721361240356048736789558416112490335400867074336177526201891006725164486644114094491574774622341252517893750912385327764617123201625636456902235708798797498252102467850766349436548617511528846711664146283053602731732824169637018426740663701815420938886776947084766653020481391759519952286153550663747002546879605108663640871016252394630212769536422739296343713770120617793148909313354057520108160733518872877517258866311264619092334991700801246179657234736412604361193132322967497251435409795959944770253759928699579113288608088793940494869372556197149143518468779082360130460344345481894444826635671041370620910176155696143887816651617711143281225193631970684225773146558495292330367628732360236201606149632517125968208780442367880799759908591528585488198128944325266565126687604517231542435517134043210824915555880397009845651279815363285510441693007199260458551653037765774687136199480252020463024198503722426233985465079026786294545335890105175121687274344364663653800772082150077630296950212146244851241526917034253883216050305046244584912643824204425394198591858593692388949016615191695124285641841487793293321037341658592021789516309567073526167459953741321653370979650628332943696798769239708377319983005498829349483833614930720709205307314041547122365140892506655313478905792556207740067203716180042795186032257698367757735713582065236957987849140803589966785357433858021491914061974942192477566643987875507082209865628305430222180493280986088439397487848189729101031744787111309416610345141401923069404895003941838957159828171079964003638123509010437767149337417896465643561605969357073986072344773670930093314754061347435227877976562116712537373965132771891612576192982366241563474755126487700078911562335624190917445478556181097019688647045145241013758643412999830098221163320814020297409710042251574610209031868212942326653408354499530844238927443053596427760868436256068609414550525600014581952434288241894819431617012934975275725780388340938167322402376481562682846604427145560934680016771680197743312622943076799082452870175855072617299912451584386954908383294741625406637429524924819724863641227638281196637764848384946563059762745679374273845030493524727620070617915882794878512037546114056875520948562021792193207877979123575406555863674165105293116578803846574150615970174564803809643221818533471066939190617554012253282933632114443488484000196568155104411353580428219146819938136590055754990727058547206131129362312042189752323736082688488077820943633126825223331720445306396149718446779489307946158275242913967846308678033967860080918694204653917362496236070419489256430249110845638872469491776053039108229949103333990557121573883177207973461540780146766672483337139920542812554171514198834115021411009982430668969833019886958580367885025644482273855463229709696133791366082056211761770424612501009127089007631838533707444491321476858618921217050172046171490478337384917696289856136381658696818860364081052521385088758673555106827382250588603187746638934262758834167614928194381980713302108834238215486994991591260830363657446427176548470080654381738109548882487425705477818872042305527444545782681688477765448356217969087597208796202343871123490427986356256549457621919827095170967289622313244086157176207791615896568349491956576778160051005059269226603669078400115109768697257242236969246014035057055644299651662212628674361205025068811955331910772428190781420144329684647978348616281338054767904511618135281785154585811250256431450103697830936771177185637776893541538766106965195299798535156662364835893127766129618844704338690359780498995124908106634545291286661094753968173158451793401795010837774432881434402421186736997801816837764302328153664295341365807279024060342673516556764376724296042661511737537017791718178478009820212184703792533679034480127521385061355392646047717513148406074043370747674774409615560588659429417776944578401941315212699151885198689246037807309157907231128155182185322289220203000679100089342008531162362740079063410657731855303510942034035321134283177805104805712037587646821859093809941777149064881423670404156925154132525160427313186696924002511332953010102285561092054536186248827001306784862751258843578914907354319066169359743394902380588792889386867063030329990326698386473155969340208121267901466354827098014356894688156410578969324599165933788507661529731171930290826042078131617805097462751806294905319031746254909186204220288561605515226636891349449648321020021086574758344956384055412263227139623150782729846540075031616256139321125661058505959195673947620524394226226255118436337493227410743166194658414810028777179610543063224895978489256686266722186731046431652485484695756036983444071096239978297349215400858105145133365445014057767374654906004084961816831174180753572028961979755357772592976769295638447143711984391169264177308311854566016349593179801841059504154450762507808441097421080590972418975689480750357423820355999163993306351204385542981704653378860436112257817650450078513892242465368934927136764595519887262122622284134776482960336998186711607111907928970939160338996116248759507455269609692211655967796826893995284786348576386170224349794733826995965707305277554461945137760455589636277872184707314814084047536134959186758472032593258235895656036558984159957282739456228363165921189096827867388581828788385441743542486696183858987619777065428303713289327479258869407938062698132883500116354003597154646426326207365723935483124793819095142477049069969634239737829114261806939090781033325250003294843693948058800036044242057191676985913194611431868855555539123887480329803469845756009203327430319578700068368856600721914832545905516458674205026844178055577084330473305425466720439379259640551404264643849821161549160433539706134808213896047698666701962586728958168351075554924989265218139926968784290108664556093172773196473972692494281252114862887176259664648752763120718011984876109969794316494375927726106525672924773838202348441185923262509757751039162481001034040035594309245594025966203009194465197032778114583019265872621167351477101467693029132307914296524560177987584239893761046097551073885641482701178878881143947976491486884741397411286589588216270079771415737909353985299136528337491969138109413794790443050885601206567884552981392480188958532346915397041800093809504152461749473793145185297033302865386330449416902906202793344188943458957531591111800205234349446890012528230794692905706579031457776773523760579159620077654756701783568174007954397400465100547755837122711486200369561701731821721363517753353182781949290551475353843128552412398853702884688380767045566947115062410913672584939727659996617202721807233765169699859625377191430545596956984101775791561194835210082540601594125818077308682724372015305132981533620172233293613050513488549205026463044668206554479200974483539236026986326652096590744917524523410214178242565843878877464687362732763005307073613186324240880085972073594157011972287428209490595840196408605218929304681376048559692045369611784725805541211196052549536565504169174845271780168457919559613132218550645532303266566477779212000320920744450595892109480615087435329483795690803503392775105752764898395975720267058006992545144129993652751997643934103957635833846100765610024291192708348637888195086044210275843918616987741122887136955173278377540132532093518019691896953871171038159307932441977769928555449578106338114522135337126956696634512608127692860182482933538356782542330719826792008718790118045074179175684492888585487596508196076384807972859011081895575479957005587232732002568489536248847616757583591932831416078566934200944829774914144733785499899924704834810509079407555139510542867939602372865274983706482448923945691964296005406864483460158393501693628311774144709974909609576399319237491398025828772199075697548080342859134817115315431503414602317740410933527376973061574716966667621555115965777717878609693728371216796778407350209719909639147612588058226453059870326213289270840982201189602576383447675352279385525778202673173025512138841228324229864329299429109377293082615841124417183277421274094282762771413945206084296253367941594394938332663062228111117402779085198213399668433002207033098157453353382558274286120375854752756394942455154390893816345472872152374908041228576383414149910696232546669740782214406282218378362737377977931427697610713031040991515378532112233754274014169611102044127449342097396425583148110940942335610693822178420434481137860121496179777016363674644199771017413134394119573518551598617103408242369360137732997497950115902198166434735169362449761717714823323494190493924401450049687814009290475391463561096887555629935571136028724539813450714410478710550194619484221075367890844514061524622240491892604937896741608895685807405624929306632479296628454709748044134812167514642208816183535713288775838454967973524581726943674753978071419597983741624140739956905257424753576447382204259135115150124585791322328848311071988695378163177797127207796135851396143130301340687950820107126694453730451364750584112012934229692349518732390428161972040876402743548641605359842931301759312830710372073391430402019011245481283652363989329410574576342901150876701815915946685722253238635019857317227734212410496418066838824678597210719630753893205411471657900796980861536705835141984945242557856080404848128212970553474600427556853357630757539067223336525479649524926558384668674738680311458383003771643217526123124381737770344042738284527462601915260624815779608178510795598677259845128122104239314233781709551399542701986067186922350687600106666622127504991884007382667117739080169892869882371250275607093011022556849917278475098296451565187501957715428691734237678221768575543774996581667292255219607996047667411424863473200678804065072390298589109544215520219780345236529918156184912899311595082322919864243430556837343928210956104981581963651317800414730443338379955370720653106000672340988460131273035431853313005788836188456399096055060041909173696518763494862323765299082881709430232406724031275522469672249588331502768396285466970671992235331602524934154711787777167727584140041631405177431968241130534335886601772769133047725612595413416448882303360431554614805973579557553834792885268292071107449910355419380644770373674529552017649698428134994075209626911162687274609029828977144314677951580258149622764978415197700433743705443485075645064768640364401003794882638116246000432949276437711380845813717903072536487444844347960971428377974389117231441874882149207647462721660561446767422515951338375474321270586070658836051573935390065611798527427054259296516506933736580798568213864345160313757880941958252726283953969633674675613022571446050889608892552229729006769542986606381719162554424408208300663569803800298763157826723190534508398464977487078673061983807713974302774703298696172394515995016397350498141095984064179050866459067072991586858287511061204869068704885574520038555457529058844622319550579113158862255297836354692139827465812118746067954073246492231632382653265006600210462687779379213593363471499312342499381537646698689756286304943308300296444657492471157824524614237921720913707869031618442821806254071004047060396997405347639381363674887168309214332605110313520226803863817742992706191145162415494411263291148374850362159247297702422581193369634586580754836975144995129402982582067781752193633979885392801817294457189194011151759894819588745311384813164558693220608830691072924164455871616683105313041387608054377610697497349033606544909016241690096591434002056347061397359990145016738416508308067640160536704067112983768181772731826555043268105602724721475995527605383896899121447490221408123043246496841919921029348118254133429219189524406923265638157382420654631683655767255946294584156392265583435705849653548243199210238360466737028648043479661862743741462146186759678680295674323438082924254024848355676135796698685991385804468842106057974787328058398964203001921431837754656013966531737475619178394163397860135846672948780486248210028659380381147790508218310766587325650821654732033934696141832305405490606208782651529630814490384564519808764739557870953660887666895050309399030606231767618351513461994105349049698602241749002390807549951292176503141542161620484895322083201988921250586802259019721642338420182718161393926047710590991017027865070213025370903311655831147038571130641947534295045425258110867704417042998388427530140983762633751040726167243656133993281234329955898884114611164043836105545047401164193868261247660668076275197931962238238982199503670526213608709375286799279582011643654798077988244391641217219520724863817611638827624751383295771609168318939486587373643886113152258140144567472560143942710654329771213351136778564731009344285682320834505263319150917905733552116862830278409982852448505397641468881321571147386658881036709242161954730404571393703873366935059838264513481992806477775351378173401513395453201334589984938251857097996693847663765241743419540540588573056811080927753060252028826464358085700295257495615596495390216533145235024513139793672111916661247791162644678139454636768270666328590442020970641835218882679024884908993794313937744581736857257409372206317272591409943845513624963147452988024361845768044576886663252736396155227743882458507671278874690012408634076394021629112214157069110318280922931845293326229748494685838867049617581561070567857155318703559105762462533376741594797617676130749660720276312881764401501003345986578884264649442489390734144787404108636477580100919243278462128978464036661732390356916617518173054460216576095155533975686011417980668165984080546784085656586893995554852755234734729538667163011907873447990251253536552485523219896530091554341730020876540444548310867037887412432793916516330714744809805165800601091911473138278175419981788761417546651836338860590088559398432065027624708622368114011245141953986432872628010637213152026552869179336498697675195058107015503985986575469618685259973824824566397516892200289800834239254816466169513213644332855182852766424337298685683557776291524005559761147846290387019995405562681937625158142703508307841364189841499882262007162106042535786565781958224993518720374884690129156605106593619174307786723866733041327908143219602624681273821052614063221680932570261663940263557348040210993233574788097313818272926622140071112310556024560396063933718625667575403970800240925700377052324635687328213105000620287878170058854883214211455616261198478357192285712573735561492936670420354641014705508675622805562840400492475842638223867706647326070179735214375527405746489108876825163778311502937971543439372948535571067385156813531776676474158140331022137030959442405584766468859496660574100108619811049295431886827265917111203618378609492149640411413368570928968626262047435734954521950620217112607980181206225849833371275946871603817397619255857979865108701632632036765810089137747542110187579965414015683534673071778028305720603190143443608008154324343244364737912419120755483131987647800984947296053650003339622497924619673906248801864663564893641189144707490904758194543398401378592912489014253875865101709010488103982400618398344729758367699147022599337604093171550415482424416760472973200407551571446944692163289325871990756909699055587414502280679169948563628344562573368191420467573839993714858312477980526723499547925535997686451262433618210363401266462625286173983596999909861744227263586776252566275496448760737326765810950923752723069656543457735974180131999869213903165512533213927561858495544213481583928862893760436733672655020571640207520673250728059339351747268511224159717721448561222374940353783732482616117781177156509107270381689764874326365415125221641010379262027470011230583938664171102887034266060921674282629324065264700576440314349992855052398029534926346770480346684330834532488089288147332658476695619044955036516016188631505274678153170085339804573196826041216338632628420509650537681782397044123694180567205084446438313099875356400859187427738748853489155123675675178607694999286991504085011480331866109258948500830569630011370553740655716945536160210247272318954472253857467657753066090428738758533545113561747693738134083012799243116283251933131801432534470674687143658927975233562367055469116007494002901615221695944162802967917607156649121180636734509870406712184576769977749201811525229879734592728020578526965345363438035936873870912029009975968827092200800371929844135669335052669681427416159356621953392708485547809636002650627735847070385937006095148608324684951555405642574150052064308778281872755946666898252545076457469370846283636429217451560151251850329001467313702705138430540189505266134801254350428852805789690708768891567078894890966881367801611623455743846008879585130674641348421683495327166418969866184631399760599080916773411681068473527361670211581047296903074735812244517718938313455587140985207477470916404280800085747613534693779845706281520199934027063781739269701169782445267579308543437395945441777253612983776982936082980862679031648516834322086127423474808963282998690522178346582903363312286750161026075895325221677475588764055179198286282824063760527028054581702595821796554221747722099808549974902581039103354598572836500579171608742484319349508645030408385557115732987111475134610757570856220705389492237597654408938630090284377172396559749151164443871205144330313730107656569072725586711340686864707416193405674151023767393892311856955239082262329318226338291742121606931245228180672805008638058960020896990094056223769371375238025398022759032974907839609164484724279496655272449039741127795679930424422294492943823149102551610540961660135736657665630460050641124916139040702714765677479888362605356678729936826024487669274686840213393457576184284513032894810855354604903473661610957358936283001407016581617970445926394517334128006346202620930443961386983977441692504246830273541239091193012857502386608904624061000959876151739737924076257572008031933489739677325444489846946761847577617053004804763465885863089897256864491902898114061706938905048441283995943794453275080251531286302545190380130430601208738233096333890902769787677545693786676367997926875301491822385718763556461464153422015713995120426429694970275976736508213493927049904624975496917981962711219208802493300381476740254643785811447347875876754804988715118568891421529397809803269669793922660708345113559974858715751432775375825438788426257578801781357665658124558877710331828516291627975440754628141934251659711348881259110270126962401175033928899658394238473891662427836211737159725034653835823193447971502124884434537988789215540571465811561888969612488253323867819303527059070423124223643524792411168259783455873763589701708237365838013133861596394308273153736770729771613192763251633181813164955642389903297944070051709015717857118833847044186858321973641431795802750307570015482206785379073080539712505643866298326342551423096259945598838190354297164001028616257280400579473941674155158032502231729152838569432335970705555225824244175041177297998503124555862934873467996872504158960890876203805035880489827671906790187997790809962775456012329153824461097415124144883189973642308134263649839770704328352051712097312671022702645817955235067729215275046533595216852057774078556502127334184636007483732749683310657752782961726612312150851958018517954967143142114287038487215133017348744143656255390044575372442931737829882248669690578399935133916393213830717130826951658959882995173965361897971048540330664101250597724247926210445382800404509741148915762333402490417060570750202461344279050180950521766971851290611837712035182802457246686537514915685183840498789414708710395778165190215165653738117943766230085112283020395533083880787926348702026269216601265669101370988909354502666979065080037827260853043292858517862731118684796589385282983077479743800364712011994841676010696351601840790034162482619916998243085853090752689508810016488884067305216839646809120022903605342567883034651643209089494677624914229884065016751142789588460738596235465799869277709140557774334259489350160166767992938820145733450012824820819874214707525115863695154028511018574532453360303279951083132704120295232608499589516846425532917593926378082340814232488299093452562955425446724760221888917545623879339889201102557227776686231840020811291532643038897827482551133188313001036448098494932955583317312228320722097533142789876104641652445251628057304895434890548794332204580479414785355391593110401226875005812364100506466569551193654118126260040483379736393609637556478133780140188507067545718820851196129312597743052085015401705410372804011912554644343786591122406714786578719887264282957745517427782710279499872876250421440272431264735297175494768448649610359825448933244413096373916732253941964485728086495299901435809236655947534534300826253990711681926362255573750717325906097292925978053617860606428239493280639668682447561779549140525949836066342927271605183617303895320154076863304715234137783949138621369571582458618455348808425265704347390723297665711994456030357819482624147837479571251476955026689944057485261561497945680038491038807181322020372217102959669489419228462105088198191407078704170525076546879529422515627729852914235433590015432658665202829752858098317224618990682489050113641981253866922127135362426240288106374918361755296901212353215572750114000092468740029279107054268591874798654266710996261162306671804391177680376217544390373565885978430114284460762408151550790020992790472176732824734234052582032710483951413776316979130282749448978557207872557353733183492085769289759125129168295140843560451747974779300029286665110248261588923072823212865595582593670225502732396541827665147072275017424263758223002011847240166104741724172316309446720007168576675921491213955135030013675322006231983653473576085717134880269867158677415096915762240363031914720722023676769372236038657460289216572039671777329108325592569819141042413314401776818699685516947311552970998295194089312358134927683935378158981538930507652060785867807426214385699314402862349682014988374527277965994678035745067859924962940986854432073359818546370574338275466236160727558222969548861463356419824610036708091019959553925491725986650117997122282623123886469591265618786675180981565656912328099203354973421687431293847562540800960477413437018284720047609458901190523725342873598098962153324901048976888881093663657325557468548162433763225075254440381494804013233862657848156214293862495385888350687026790212407719732238611332956313246314066966307445753327440459810669136572615474536975455443253050950430758710898163394627047671908342648625305173749536713724684229509911665179199490729889580573612444288303568585216552184107628232671434044938551289057894577698164580578191657165659326515774126170798802802110749617500588326262005431352054001009761235651162044344186202239409638309736415836858317266381053535445328267418853361140792738043784056733192500442456847600218402325435180856582282089025208777379327566254273307107261885845575777403541951477620078851982702131109327864012367969984564027562395385354939369631576861081969832664037917265764540168589824872737648998163324484154143411614708977793825232409122466027476058303552013748251051739973778744319001269362465957130241321635872203854510185789790380542099370909655302246195442713702019489256942082651458680399333269812333375061961280217590646647328234879990805066776781810988045167591158100785543412907286309350712157773930073218654521797716504740816547078405080323657619487549588842172651046083180617178020477599071564206992118411151023281003025421229289415011682730016046248265004965794547081712154918981884383023768886504527403827812819146736160766011940045940565884588086821886536119537271995749061267659971620142144067182537039197077413140812728653968455060414768354507280143409265355834487457551228679510019238995794128810637656310798619937689504070802539549583350083432933822327538775891068758500969039540117085934653438398372927707016847778273016578178359710338710962905396146749560233445415450512499615447770108320103888321025054559039982178125292441815930952402016549233215132018360684375140433203303398184462263889265569010528613660461709571356712620916391123040365267409120996256331726786911842646980017553774256900053074248555322651443588504729032213303353564334244339757099778360831801658684037038146284105609704043474864565714885690001248050316146696323312788136495562552279528853865404441178807776515849345803043144056469618351558766495853895456617840925927736633733060101906027497000010649964437359499876790012730502224444678268021740599406477299393398763976862033184614098457021973099163661524201111129063102936983724080327263507280905417359973547487115604155585598179679834523662848478068700393497825912976155436850437367761638552790521939228105697950055595728118440975048729854743610497973090748653780311425062766503510415907723123461109152673451784822658598722785939987601145006298998529333505544881361287445364272790476546090419908438630192793770836771815455421426085787586505842970404765734456277807083140656368778574245623919755549502455024180734303873319614761458573513481739206721518064984662585226881117978066375352026032361450447957181253774648503286842861750312369606352722068395498725311456476680819549871146707756584845124730901844852938646497402759610524876051088990979208337655259636669771955734028473138522255671915705871568944134373728820725972756278366401904299017790636874611676772777502871209916557329308821928532232021256994062600282754794126456736291308736135688921643328128571230922198746105551952416877880288615102969392710106802829662805363004347267870861102475908328409225755396381176804875705151577984387364747296067345446429565618209414335791860514567476513305750616138566222960912227551243506656315361488477640677140484327863739499984746647116342157086119793508533214973380622620191156648408151062561220517092667509797482655069405095910607684016914810311158777108731963549609344027808893028746430604422306133354942310517399765631814871781153796735215013380878327526340829770154489815128044680616632773331536619425196279381997346725510300880805846498028310852707060641115915470313425890415355337695700828474464875691275463107926765068096537929405412146796819861709361465783910667983901987141503586827960452475448363599444642142730145387241051320177361082912493556291636788384106513275749140350533181299451247251207195610478841200120304001032398891379360425006669339353205016461935062139345029886765317604517844792678544075298479010817061436252036241586359286737204484701619450760326501127928205793258047925578228547317323472090166313016403134549023403884550698947423950711925304885972736206187778729569486216055493895091297502296782995606914405380991401320671215363308854612134693113304891879298967345094440879253445022295335163976139117119423314669934295003148147911381600622555967536190824523456072280514041889593527582474368354427135300650432613440142391818837509519371082746450234589344329592711302983689785375807657164014483786399991133898958816177551863934546030494241690253266205369201041296664080269246620127730244534813309521542889909288436008980588244794085246980093386217974733690520359288550520516730656347724370568662345550750904705867357842574296359117724812869873617258729822799328861160825229884138580819090711724708022277094452229113481845059257272975861850106953889941503942697892527445726156769685893156510159715824505312596605385992339469438920140853864231744446148838048640977557351767624887887378808332139360114613122078853921251208952355503224701659002464416409826493978296188035118336429652792374884498367276266022452215576943723520475215907458021546042906359087339164260013068936939742365671181263229224901093145830380249284798083195579615786745851990090693737701078611541057775071596098895446334460435981170213519751388974359101372725431306448919824169322338638563855115609958074167735979333334499921120410972530165831827419867845880262484050468851657498643007608242038238138299007891595885987014130314362882416021613460191918249736463672038895097265992389613812240207509154340131786616806929079807047507659279790447973834622399424879568991636245660418252086114867269265026763896785142366557924333836642045788203854761571885516999881550066153014959870086328884113038622006506653200960370124546404937609846426177514558912772319815195615943541041601601646875356757126536941581571275575729514294760226918989618730366579999710139261044391593000913506009768430215022808063985077628846793614475264748896393109123791922491633321622268573571550060379400894449997428848409325537689298242969041590962713278061171063456805498712962403909320602950054333628949661833498812025532307469471872886140853940037467017639108934638417263903082544297126552329285803269200585788193924550737897797544879271325446336481233888701279692006967509124174985504002567182634202387550177986007662228217069958186345301421792196704250422100907581148481256077839184666369236104788931326299196834090981328850990799840836107888275453076522157838300493009062253474174514382597502966876279665395660224983672289015238555862836579641643860490284033240065664876979314586800355476357445952382133735484851202623883908230782231699530012559054120781012322123985283015203598978542630689190426547641376741254933546997914963582153128439787792917049914000870175850595611751648772403991709187302719619494863741456906551702833440286239381662080420280449053626996206610473617639990658590207707829151908601887471647221373741937759556933244254437360180163016835890954170921555561531933075295523941590252941334249198469590679253412920017995708549945253585559234893589051547896923481158602564440651677455849407910431943375203095204733268425670356278340635480045412051536553941272904481129848435838852260643607220469732330859782325526621213798464085776453158913139872173174923494038158431791949156462110365781571552299254282561427830609755668721554514228531143702364206702613765359476630722004221276805391772626220992967616836719976283754168566817007521728466106199116034120004747872963349133372345722033978749108219289936734885281432039371630345156825784023842660048589239254225610667007735597375504934323208161921356585677673090605642873582089396779342945408881977060882223267537377254037590935234704805755949504515245908457085088162886085900085157664566201277470643251039386398637264247463694911791617975752819867888442796851032163693004600040379123543856100861230422329093267047587246394788272716208524297462807254201682669602463633683356682929103854270654370649681613569066585330068378467961604773386642665167231369517098918622702181562377280752472678912787808484458790607000740220219418658220855878110725163540015245502988711807989281593951507332012367035933262783383126352645703769469454834530194605433921590764896703121219126500676416210740642681670869323197656599121405007084477186495243073607904722524399245116308125315354338901027257076331970054585542829099670747382416356081444979502695619041264399542175568758924253674510242420641093971999772872688416257262429201496233151033974476265522489222033628597763004741949030937393824448742926161726574729957078445189996340579204962398767304450895369146327681364986523213792479686194132427440207471024585550870746258876432335971534558627154740591220831249723301106968515111555746483686559738513588773766748964857974642609915848903540327293992717958465385349055727712905067545957531655764007964563617138062901338473597358667506561819991531500713832493224994726679576390268839645649942286244921467312946508611618000497676608245718598238005983321110525462382843983566094336309228104818359099007567176506218901053876415466569521810934747348320525372977387683243269600516338109571322500425699205984400093857503783297357275596362018038019667810532144488260677199436861672312702906828276630322244474045067562007985721723498521194728830883898156035360739025592716081677176889733088107933004835242525752391793550653087843365617222811492273873551328607557717365011758688063925781280657875111045317886054845748663034630249734462251153396267152578371610795079731710721733664387913852337840196697655540087031110312063301987380623991842293491914023735143929698917811262327805500391629656751634636995732598907737140021129420010946792406925265860755440504366280913486943506383044041766541977272844118768858203565373575283686784492255745981965577957517275024166933779262175226417680824275452354816404607643337787846478185303243127161497296811732801730570019964276305215729313323507414978185450549879988749938576305977005090329720722308445984151661150654187436979364866118872714610531008619586222762925877034826057566754098774167441386655768812850875047115451956052416959594476198532980124702222534731747651443133300273389463954712290257019931083944482146428328504697390586455412789968876091120955302920871667371966011306353731797966852745970572533178136892182649910127510531539835288085569387306470832744196284617970128815733660828057736845744879821207168333658820812033195243294679444611873852951927731784230284917149669805503437201412009445423346586982664640545485406164661876180230221762689776516625257423260057857607119377692045708385265518958891767667088418836229981529065036479726930640921321741151008559749193366876765535845061182501986242725979293471361584668928981302730768403528713287008237852125001494909776393254360842952389643942031389394720870132966673471897023171235016343519805593646431460526835237902326160846237871744461505066132613997110094850061214350451024958759630267009140641162582334244744654663159126289225639403083951707700478885753161020531606008254572911788471239927082570716295761663454122345896299192509409221982855607432424018805397661413278264947355018708338079685195769445913363023926916188986795678752396693671767531566785420385594777016350929041921931607382863721924351676738965744495266887294576751272510646705849388111137424991402992386873117871281719374425034306862652450469499196103786852728621396253938386526091648941143649772726986951361182659488143619557193071522290084198701459753630459075038382798344645389563610918011007538400566236080596905938964985887211514541969760821521566515825330104394836672095266483494141901891295638932655234814480921366382474482279809584446864494675815283783319089515427160873634795578758759157008764863479202975406485941983540410647377947417643164557833265282802935691608533243467812573487818801162897069106420536325675629197682902185828531178696549065264955276448500510453135112119841145920188871620909736395903350881172837296114632056271800217844535110569822911402211618506390869807082316792970408150090343274077362401894759162660984687827951203831498360300485465488901822043485035584048594095052426764788929176538658089104135490101734174019875840044246147183209917771798963793512545358148074554076092989642556020912344257701071697936054172110834881233932260348197473750160239707485698791890382184140592817468888350600690121339245847001193854493384125036445979098474791279266361210154674705788449033175280242239895266351880578771051835113544142317082232949822198175065334400271080972973100124444826085890967211807764414320698939320155616324490127706830948068306732761208172675029584459085173362518371910984582524117996735032366897031479805322763894472078973727316952196768244364124901317795539047290226132465310065655304858177411112898933387123296240726166904116529303192779352260360984857879536129494520136498051126313914108561097577217710482343622140376168105524051201711001815935448419019260740499641933968059938413350885608790181474929473106031442484104113032939164543765511007579005752057125465010168473182788636960748150691975190340499567239462287739604156115323076198485268881483349830359329945250100549962615722917659554617441395006897973062892789511585432099839352743681524053239559253479122858921979358311258791215720043921882883149864764158827962870098769779109953957088545717690111447143512044239449678508519094573315327618408089982163521011680635352412135537827950838374761250612077319813903666373498714274163405507654354725258902852942908875367548275781028690345044300249539488337151818609525584691121776564720698786171017227857013081251243765430106955590445789124404753953787001620649259909848921004885246910131890614653790602736627030408344313949080879051053400297762544165874024620815883982641214785328174697072711810393385810274669142920567558629422010115910386768464125355442478365277142302935932158734010789217228280350280211294535936184304942678700186710147852407939187083317233959762355278343725469411394890984177614267863409352481303443316139577533058430103159809103201227448943475394311885366208304014696823953879678605724591881170995663674979579659020821781921165242714565904950928859285715982102373789398724711487271719000364212097293749562279793106186997963369336083461694378352093435432677670833970389004814216110931355525267921611002422952087753013151597447168789109862011589474356498483504319933102814217042219478144555079713906435391239620041315903847276423583770713720837215872219631015793551221361660802825893725829052076288147895516173656333909266309874598548299063442811060947604859188900817364424688096592236665775939523136856386983246923072964587521804086568419686063058062235813356517389709376339098106260762631390850842505921766988089475485532743392264273664675772263774058518818103300464581300651171203632099250677902787689954203563118467632909402141456286889184043448531146045310682403671562791586851740477026154477399202752403790519133415820557530243929433327135620231169414080003280865452092383331624925611833169985041902753777926713317297035887509196999906088409628821920841094061227529622333244385782015220692429896293568288422399720274969926427696413466967016908688582063400832544312903103701598973316498484262670713487541730514846414631438805682248509452987530612491029372961931398786384283015434532395178777236538901695665990537794042759876589379007551497804957933797997586944669477667576994578150945302014497296620465752329444214428895264319879316621961364023899644618746333842543423485200287637013160697330568292054738552139827837447872501436070665304128464307336910670960416032547638928803394666358261067286093365306269062626101341590451878446734916503344271006110890527820967961285958853112167616998281303262377691601154933559208451389805073946238747849858509326404125922009550459063294926828692862523145624211598945317387497848506460649010457138301416591564029670906664069272103860562139980794168846693366791977807640648050249300430793205230070072176700446601216275622220049090176684110016876827250639653476852851960962240489896724745597324496081663170792122929408756489080017283036794164904958908911319574684165866487194852734080611423325858793234448321889715106600173954132374202147169731700073278856781517234863073603337239936762414173015595492495330739848796758825292528674263488498627443522769370644936733852735776482408316384933227471460232711292164970381197321103887877429921997135934277072662625551242252542852067821901075618230502069401831422725661686902638996317393115769686450489598053530661975547085817824074758888568051566474781890106485870873784805790416557489045506085547370267013756732562024007286058074842267103618331429335026330179458821483080595519525576482062622778500798819362022876336827602535801082374442247903385290885097856372815755235312613245981059875099120346191725503276097383935829313682583925572156868270236917511269827263384197109901037045992393004353674090679299266073432510816793987069735825736618667093376014707449896331949768047214550064335246478538238078358117811001307742621587994743611271635614199133068521387957960769236570397336243849722863761611106512857906487087160649201453066837514262349663035771022971251336717310237997756810219494845011450415162409316082224839447807073195307460385578232158326624720396323784459627308581194119622277072305854542758069787941830670213834510173811107371238958678430954601245967997218973051919790961665325207919218882401918991391791331145416656265408773369465580024337746144938446884159240530402399906132142239578564388520367937505616734319469448843876857186689379698637398034766048914279120892764745028732133567388633806453711302110171928083588645698717970428675400338111225525780872891082901141707104509030424815446432277847030925536985503669583091062139713577942199564983282501314153631574336639654115288964493694872758515281547135835224048607160147402471649765742958989218111821917038273227700217365014057064895326979869816188551556559059412726976662571361413189180177243138544585073162801334471442114412714422578015191513845610919966123128627060321302657847528600046187467359352976727740098662083432968854408899549100127222640438530152579189494773089606612192944624836105924654864765154548339031744583765873632755458116445084129984775304462436474963378862125746224037887237733346090086235827564930013523145253641159926131233091831071344081638681972920476350820424199947449957530698603026885148781924222613394633791381363479827859291479971495943213899348385065992179666330525684226973913416622496217751418471908042577099383892072704361239586082878811252284181723447997781137208697396477650027886350384636921779467346536264756526145965417252498314478018027398786737366319731566718685648533599776194425002736532662347217942679571997979642189145879919748069075257321131702319629722129948974050405811251391210029198506922203712163677429942539231272588585510912234139100880568205294870809970165978942229619077822107108091801503632757681188279272724229853749512364724826285905583864952779188630318433011105556726039984246639350911013051607097556338195937322430174223602610103645261438097828112709256886417012957393202234407539752814678733857148285433337237460066760027570171518921926211381218286308519489550218278860632275593688406962654900638904698649770310020479316537138574127233420459854627591224918194231608134324668397597492571584669789800232155992695773429259355556990359459789098815857817759759978979869868089461006580045268766749628766734678746986563416139900584748265227342567856796228120442609092199357675770057631262251726075288969474542442776661664878618168864073651594280930160574335459526507403042115514417163835253054321636226763838511561341501558856264543465925093778920890192892011026106273990574575868303011390954252718111852652839573542131811795360623214318414694612290195075942312148950315468674877884814412567861407074063030821416467679585391342857280413357079402088300989025726728878456129013362644270586228484351013977510634718722524347978606848946534181192005573308642068408190605922400092954867276158111685889375975287151088014877455104920259407688069621378613055442622523521870555255468317801101759813973746874711398539158781167878850955801358134778144206847455155709442344368772386870454492980783543576927573222384800394032058442067138467773989175812705709309751820949500937428830950785913569487238149179524087043432963977363683931020689583371916924703973206333784853842657309307768453960650988374850808966148268530814848358126110550255045147728699107943490822320347700912600718084580304779480311411711436857160751729575930515365474882759664804729912764142155333228319125387114909034983681180380316355932850628087986785045563309096572772703230536897105077851239378946286428367191074052766463741219732968264515849185624894648395001679425664592987352132537655502435324590266872942287846707732135677258032445508135543027784516986087502413994877070348953762923578966914093414379475211565771268585237534351645181299049106283961150638138929799276399822332487934090988614294798233374401426123373282394039080888900839300719987645284789195369204260473455716341723622326893524128137111849859954664741195955841127876708260735753641249327038106212728028731225371026115758203006849819652582815906675260933575279160116234955890764054861542186730406133641696578670603643595119668576042001344760393478190423547452593996591058242748615417149717938029193216780128041263049492412929477426093969157850083900214464652604439424350900062273958602119085613782730897383005403376940384806035424774422619406419431869270010302986218060934922386256396696837852249487304382285892214198765181829965291442569474196996689527459128922726191676139396852637899944558251726295479083315020785588908889102140721249885000323934205493234065935998703539071611024025449777551618741741455814114571444664978159044060081114208138076072905867601030376163139426262337102586595977715537770776805559609838249033273645720207840122713063393978063483347112204424063881706429663546157264793089585399106348307338376916871900194421579074518237754543694834572114436869183662387463083804966391036450813094120502257200743444575712609719380174769437327069051525459312132348089086355871340165450693997662983968696764030176861339414613755447396446755350189555923302286185212984890629004165026906170063787990741755879784198517784868611692191497177913420156841123382610285171969728044524823745878123295771010832761684224971760538606205107768795256653058570997514996916687640742863545512283049757156524817869245412045103655252473900278556048311528341316267406107999866686441055322583370998838973901525789324099033323979215157699746463400505296411081771407260567266185740775989558090610351813073228566420062667347010534912594668614111298846712367257262256524268504732697353587466191899326342771701464968582824722082111415685123004309144665622914989311044545377716613631408802790833845884023782164132730887318686636412658087541186440366760964196229685778906638649746979191607360363330250336833343995010845643987080712316124955116187036601859567945456191648512437758185886260403786535136312613123908498782420612404911241866206796364497951171329442522012964808629059247518322572636481432629665656972621739530226707905336834666266693720230872962274939193725603158259433470768177843252934749494749127538422314465255499478633727547603851748746238116336818210314912652100538028943456897466605464469105204102248992867737531132528144137832048448823167332328630543513009780405125676330924164025343156186682978571249021586790537121395861454276420838851422679091888650720284661766792217203234503113565238700146913858970240760212886498246872829221818015759045347168267267799728155164387031647607994561030420942688406694596413367189196149196502200717569268720943624160572878469406272455738809204334132692260709939211166515731060416639927318941048565425685343877106740117572506445876935919514148442627412424072811693538404323067687640380690058968250696577595484836353602030939841435997150627530184988393475013776948355662267938992857312781882714688744413453230536267228901013533863193510514091687523331446177332935932021348943183153988715094203560005023885192787630052462611492201068202621951768688581767976611730209250193739477414303683343930129342813762357465097089637468372824514646147311257636037692052038792665492024678323834240973262640704934633664712577210319352382257062572895054466317179290068209688355518669504351927012897209254860494691098988377762070932236997444555876116134536046468745253883270821928542089565041415298909161206802011531869924779925579810827589182524247384035300829261952019204038047768242103414990315576938208331366554735459473839352206064639101251154518139223651579593935214339362205419289813109137973920379578222127622614418000693852313325826240211297572853386968173866006157068460493910814841744967925049901774785542995502481307432276086076407077118409123763087071693488344507186246547462816741522158466983132788430959752230786768973177724723854817352906209275000715299853507445912991419397840110225147739842260196564731269578404686093179374504132522152028424008894609040783675272864209189583801793545355182723964155879953260370664199047247196039958603145411117604207585152517671073684727070898301599939740844975893468745313514006283463358789996256611214699160624365032900241986656150380442483843298575140883519672607860435699330252623801381717061531073860352895347851184085048373750833532524992267631105246609212822259391008887426086923739607281414160256750359183290058702748140632102076247726526936562819836339427400667409857821451540902873262300832807721595129899535974028864235496712256247154181594629270926171281029203126303844031757167934951063199700767386676707297667362229389233216450735835453440522745594433697432674220111230312063426732265308149617803107279754849056435262627727664410903110641257404741890089773080248865840279374459407706178151695132507190760882110396964942296411119969309034924529852717204091916690765354506575133587977765394322641077432881196467714605383314527749938847847833321325143177513465300696348697203415792187640913206963273748454555405736138307717331406942218836088287463359413016254357665080816224119433594789063055687598499487285465502933074618878340907131666149064110354237248071949758817052272056288911256315810977943362675154743601164760547660250666683964385774849341525593131585576618077308130948184256803712545181419400849071812549075730710120975458480433878284457827802059376226701837540699715893353192137179285270192491012454025855466986036237725312892333917499622612843970369268847109755523021124195839717631334780057822493148752064956169095444676159264050988835935897855423934392862538030581939545481833931271759421218971854976391367666057398648324930851949479760649074882488283560460857178224047003021819539408314509644850505138766389071481756323136985203452570887946317215302588503223672636927392380239484921850764835848060553491328313146268969519923654826854758725294769484102652810487474478437101218781002482673539646359510824543774188794477722843869148774018692882855146292882775662762940801855716354779279742421387856875052717214093809557709489445608238589882458863845219203732178127730153028413527744790754902548847388550495279456676488268491844757732524244559353579192016200418755858456664305007818109289087626768308084652811966678369882724629298321065853234442291136080907791490692916362695427855686470069209768520984739619728379553799931331831216906879682398201876918319330500987268234545213371415373958709400281322900473066480773283216542634306498668897418401243862566862550724016860679391273114441736642226446319296178241171768061022628938880026694666395564973352535478764534516038605797012588629005230222537822760784775075680100093409456152433382610355328649104987042713740148527891705091629792444944058917656811797102503720330532557004278692312032487322902513408529560937218482383432129186762397898646411987306583139240415299849794829536646161521692708878678318272922630369130599895459478121197552845590242321531944801192503905080748059081174093171717734162638910272055785939416991220323699119243404264305060583162019636178622431802021168999346521306651131402787504239291133898653946411106352008518865708278448189936467273848228875662949650655679970101356533357260946763947673987807235908834826059481338212803859998298198011542862008450038759471198394854281148317748942820635373063164252257956838316747129962480967148292377743281336934760709609729246342232631313338584276971029290724066301490228006302209397985562863950186088859937940516351333863621598751487174608281005042506981320592024344800471106147201652189548936265730684945056347259023147290198612241975372331230619814862874489909227842087079012596688559508038114921897500243906153097137922785599273807742384822104549760056100394817787875109404754101148747340326631991198827350423551379471182359477524755513515608805700345415587333262393380053951802513804477183128277366115534803259146837488656424637662984856417801724614985762287353016720215863753956909229527981859305904866749091658461228823446721150965984719110715510215297702623850521150239247816596643383401189635553938457261371980964905746515474795352082543457455882518549008487277491923801068396038335599164518636780972733697594002788947225857954120859482568294521377327369940153045515354073370276179240383976303179098280495939819684961474689852386586817034315430458688932178877568226717727682179096262701377985828727767731887646516011690608777224227027134143103990069275709361916456678562725026912955935478111666088737342027415197056782898487633158433503693200377882872452970505493541612056891925721850182332810255433225624642646749237098695717887201448244426403693867071920823719843038354562014588305749133144349046040014485042617834972437285375534193267731663501048236547612007380760417501759665292446125086872532497127684510690952806408449494607351360116120569489121073644312121721238041552482040684309060173252944515536399796579627298447259522203396648727635008194172927306007306380457865766042344337567839736385930028375584386445076483919879269086961296128806600900647639342851329618777339941610128832285526937014438861906484679916116250975267578596845114460135014149944837354990791258580861237405752373529818839941655098353189967828174698886112027321612686430328899733401074213272383393559444504325414543882250044696232926337384032494883102082265059000093048015235262725036041827319567902731424498733284202448529048728258376182193747454001264669853469897752019686558505021738543292909394471479254342553743744286407185505736387808570477257889589773569688938423442074605763730362659122346654272457726193083849759872647275992801778971792146570974124163920902150998445145771590170811643682514502367637703349109232269812216762894636275457995573787447219090294275255407437525543897495194793969074537741877824691181605946121794925666408340320278529985371977461411700804524338169246715993342120339816815033416249384403015119306965532946247989365835197429314141734072758384387291474054923584901276783841891664674697451933312598410164418182506480501330796440319229988833946506800420032837104115362725031616277511663905253702199120143313984267336259256516835720880403224512429643927522859657080839261923550529029532880409290133080363321322528954898395683248974753115335465025856407353075807311371723354327115316237810081197270369559655752619184705757576755440235524139836975618772602431320559385566165792838244794435232825207302611440051288632765019478106687823098733407015285105970418305173094729377373217587674532595052008105083695643961515935832954501407997896991352757497400539201283351830173383422560166102908462852906856168794497617415903814048112695818872089797195134572712902574494001759956065880202392832434663442259060885466083732539997244134668099505505753227007911141645685038159662860297745843032219598355072862354902280004179956483018667533728354116103959538411683434630169024896939694553748617130534572059082298277805771895535293745845117975535461192733815090003694404648723066715385147466840822143376037720250301816870604473664411746179472736922927846848786553746084207715509024520263294943800461471550830097647478556376356880866135560642756844221644210058404557010503159718729593147401944216955677351324556620595350361207147135795751708151465856588666228629302779083111399404643879219337124839777303891416258787848215292867824588461020782937054306671970438814074515604759168774857161855815887482237730824075468070682610287532879154646387555579245494502807857297640487931136126578082826010655389695659554875722695221619127322599935737604656942823565082807309671066841304280390666558111446495110436754405465321160874637649988210464644833374065215644986658768140268099670042739713190767357074304695464117234688324787678144337459760520671204918814849265174916541143848620205203870124863445856928756117532889873403510295186620749518209917427935219615391838073137775214771051063448490467949058781846334535969576149913166594136040552931550781204168971673350500968154674970117518840794898102509667484069749304739030183704866922468937577148051175171521788314877572833304060797454557011590858118574798333832558493805327387925616529894083174421746281837328289034864122807798516473767613558367719869774262662083081661616960608308990268954770085748788440313414511223670577501778750450453453134357393250206277995938794364458370137376164637107035969930347066173981220532738880284331803270220385788337850682029913342969928496062594417958022884128029279660430277756354260822500901279091366687910409544671389251660742802903631622664184632279618075773848073880980710696659532974207516557958926444898108367094451299099959978024161854516512027893622681486848190181431277981094765886089549937933381466725257509590409095735108116963888586206985777609252638105108761420486791280258262101724193734486394105118305702043476379729958365303274586877509384681896280602188853958859519501490852250272197596003647360068269603743713665643759404207199654619750413367380973768149177235290315910529343107220404056661836376077664193421504797098332187107909252757489032908383041271109335838374582814744935594313035582168318143723229086447992768417588174095140731494049999319474188738415632087221426012866983800795423129901056570688191208010661466113701418118722795582505823802546222102642227139385346159966249415855670673066511506541656277316694510491796589319666778803881012050237680614252237273778029538687921285061348637056391005976343933638709962845153390192657162389223102219732765806911296175481067762346436058553895964328428337961147833064833624223245995041588417572305480063542989079600352131424632110694275032634654082757192654018432101772789735742945863391497333592752850706926277555879069544911664545914404007934416407276290059631660483194637622438872449379551119590678987254392871429800512382301572023580294327428756956510917986884355832198279333943784754640812664894396850187945467601114625954862446766106497468006261594637461730687613545226052061192476960129268384956537300928642173902703090824536724448978192055672604406060606894502058530105726015969177406719914769506705522080787105749142488004686733219531221041052599042988384155150560431453253953436451128025414378719826666812548281581626269523657657707540901398025981916242663866969630208145413630856564406795458701425498623762893230196997095268003320087299077825358276664981474019055210727092281059715983738449372630364583795714345875279238116481999718224384570188254441174871599601077424552766377992928891126909387644405949776189990202204299727943264789103163168861710871951376729450601020496055608499034975896164309763525474416134553812767163842045114012947678580838295882268431736220966505201871160925624271210110486398089726894139983125380159849738567066505419889549731087749456863269764315597659960665359546506779163856330921971615790427560668416814920186309921457482185055903119250948049749928908381451346989129532969975010252868307744221251249042769392823224085964271386098914196172988198867105998946366806219515121822852885009108189742257195454860933542368754310407387185216539558158296007998646129534697783764086962625361817053328896612236503290157769224947397659307241888439886440864887647728989078805943758876189128476872739084397257482810695155823417355572116448295181225499562187133923940320201714897677414949508437949187466238815924254214273934178756683525497003066060991778431760778887887416430716048566082823778538078947041263178250753387382627373564473744187502981368613895342254768162595623556108868057732248484180619190017566276501006434938078311043508913159499396050038442069723405138596527263982596406229759611686134096467729550891651551199906556820332983493266631604667338362485272820112277312328700945101209172843192255469863632212139778770289624381991249479824541829750663020832846310829011123986479366813625655106562029459671010358662007200469943681659033641748351688384493817122557910255167923218160484609537788461795464691141161104123234009986799515765916775064866222764791408227781009816772325148930508765332260594447467067049154799948668905651301466399592458508860567618786337089333489413926247687834372322940193727026968223186657815715690292185694319824327005705800273857380241544512305832599841878767704131310960094437924732506301154125521157683173899159855531450449941065907012760559549724934660671936389452041608483961834581442960241338906235099610234119773105881714832855902971983337619051485773271210497737349177950557012629753631823823032652359780300743641023769703105358699113459353314538782085722985514079657640840325064120315913629807193837059048104826111151683332112167899243600203435926798876242310376725988701654565494163910061947564088174457430517239113648868967996000301946220047023997740565154028036552861403078012585029463512409846402200670815151820932537421964069713121170386886182435006697866904576431813281024148530682653934345030887675577611666491668574953593057561680136145520913053351772095163620436478212392830965347258222992770219200500193340298653882262060974195882782490329559179264774592531710021226897925131091256096163181493581732361810490024003977804161451306729049959582552695968876037951731433995301012282582015271868938109479557212133103544414436328344543465562234607348666775823606173293916305886264544814574097969974842907652835311003406782312782572177316820749976771174252362528416760431736191956665945715089911390883620593594634208490310803265592208651834043703831125421324066273227925336535699933747922582183488978407291355853739744373336571779260200431739940531576911698688445650436896946779913468619876227170438947749073565275150747251370709789049707460402002833838905727873933189955170901185420582193978635416195815142536933810010623749415146980856034653103596629563183209061519782524760938905487940277977151398393483704128595360266235292463592781224139298667457185425185324340987185880384626021236171137158778139589925248398274864784793430647074774404922469752852511941676335979949624964024167642677368840244774704066531631354206585344509417014292678752735822282369768764369043922739630393591924598492429902615740023665280083025066303118073553741922353624538043479663675516468922578779430235910017108349683803531609598716446983904133121423767326510579423669469574362648454074192117713144486472916646591844195986348294236950425428384690965255102995175380699314494659011013484625994945070047641332849930502324489109013358930745103739451129833532631133220054756400696022989704486687131797692374719195333529129962663388570287823522212558795166822849516647302046521844662604607185583420387990900641180190874877963083181285370026908647369047590553530120100787068036032230187097508890407489764665169466390302980190239303017300156343447659831660860100165704023097018369171812633456789511701345893185163417562779612413404474439221781221080472149877648479481014196027663515769628687702581505932486051872607853492803276628090874971943477010445423276085605407405057751666664399804854914900640899324632450799348798889240150324556123029269768760283535613463215221307822474250280556842211425245494846061331018963222255124534165650181851346527278801174581070521327844884598996267328697520312789792509201664451824155017691237082583338030961868636613767138354183469520659925103822544574239699736950865961784101037654986549383372863938435773908332370291503214082853996246512327698343505277173641982539681293510127330999931557674976480341442726622613221510302219565538332986481887360302279732738274269572413271760775427592263633720474077313456033604266053501751260981654447052453547925241838844948535875734038132855537670835240987760476221686621661206586800059341350246187899154438028557931462479895781094046553165461893326106202488916316553469366593395725215967075576231453978396157770060011706697548887658632662347979635608191030721031884040260863761523984546076425809634720864140949016577191274771772483191977557091278240010987953308406394881530361391476844933132339030304084422125908720062848594909700373431336198349119459151175640520888660822244004083724032217462639521897893326256330020343884262198018069389103844385282504117449283946406360787641074442925799889177561350257201854388728135308479060844999585061905162233009100460758517219346362516178175544415646708369114973922786904832225906016392236785244450491591139197104966763031233297359434753295175266113645483238873767006481443967463088022012647428348493954811278871639921177779936436307562559077936507320169645041027889205013791514035416840744474095822720482652610578109545632967874106257106183354902786610332753304894746696511505137281143998243226825276938862842842668945045470909465184581125976269769397433522708298612134865004646373028665285682537687691640606633983080854447898051330926454431573844906887571602185287632728806002474911092803593305793176985412048867563757295972383675600900596095998203053000069436480691445408706857415768622443642887506842461586577236429015309999534691814744018478622050912145751674262177668992148910938494388901743679066264172583318155416489191330275530049611189066208767703488716224859164921256826737848951367747499787496692801549816833601053693767386513868229055833304078576540003363662843397413708679777076408104024448243493322863481415584230374593049823471408094826532636767594753035878922174024937670013113826509359666177464380585003103489008851554797745757502016015466970483133404898238325805391824102216975913440693710418197032240775563900028583963525338003626283934901211594976861361169186707378237073301449436576948343528706669545206562303047709168325979305339379289941714407081788214123102434758719558874044711556969830669547323886086190659903273252047958275761462230320276263288681850251817715516403191366360712321583352829700945324903642777370144706621237514159364703813459959896071906759071855892312277622220531357339373136051879493058858701853827430769154947752906186748911375270270665423045755058627041811087225863521079776129622503093742643114837558102787535938615356996747924388083367738878723809951491421972188387809641935071491924115570454181278412231714182979633176345863928934624780885356856834744219170596742085705183769662623200042733746102230679474325127970125462496208658042765182330281264891367961439551319703041824857039591602988385966403426991511448855543941579026466487379157220925789445804777540736882745095855788965914861241190388035202043882951384063919264004804230753170888829511870514495957044263084131281341024315186404114985793318152345890650832970494143934116591116927885765908493228098302725052512915354036189727503552365059727010431555125393271597212695856252690014569749438252548366582053139242254132509099749878177091132718927225465938915506098489477255053468594043706312075518712969200614937463966715352322468238766634228452087842401179670348040557378199840015666268447314017588613342545059424289580516436112510895030169718249584167923350981633053603449075924085537241553514154444488842942647856275988050336296877842661262809685715060486902579469039853225313465058678809298495746743183114962821831889770957130160740516433352641968690167361634686260397640267547687273023408472763829445062383320412419030980842752130591001630415647924604156404139662469420714455422817954863537525067652066580091665652834627848118786515826772991493902942844579611479631851318702032755466264834561276224115782032245543206544567635332110494285341747932688377048660752699826498281620180087312972650053137341208821943245182951840511958038543952624524994058930409576057191236826760199647193390829033981987762507788015335771699199174096168297569577299978518994626812025418737249187487557465275254378989446232632813410668235867273304623171740239132256365444632284455185434821937684034076152339113171122296898694237518124133867051905927525245098681817403049877560507439907293351480077617693557389812810114616324749884265333515500154068141643195898966177722940280817845072880340413944015560834934250929190760519260180521848430249907406178463876157607148646012243092647686283527173756561386060598135754874698601151404944450999390596363473904439847462646535319540835742281124094210774278146364586462420010864842975443398562884175687589594042576564726497224668687666252916793278470661327145633872170090504720517615417862024747096071505010182157177212388729430186237159373183681186291533977587565965864723917511552320731788609739502857818987112776201246387401455612148328999804773408845794495009457564977605446643767851369678524849157969904356276647135433711217573399257880228765904293690129838297305498393193399124164588603072820429678606508667774320351064699476444358886584532574253395200116146655880834930035208020209844732126850610932120785515295934522393410234676550275764532028585650093515921133979309195766298156986186684902970053589421170596218157750757591226314262030139770044838303477475832706763578466188416627740020900529115846706376740711843197727766806284836809248239541405353348133176431999905714811289702791821920370257836497510773303708609729211463554271349307954576241850234591206015440676836215302295432094856100284486015609870655929536009155036704326406066968521942251650469084592982668830242645422813071890527703702030478286261855716818981675244882172587539209243122184425947698861787212799289363452851775292896096697406912373518493762377652870990744740268815197079872911474008082492260461796188085519286202506589133736628556141532493664157930754259720737220530840968574183446135569222786488914062193962329132189138456561995561506623480243099718137992743819183712106338350921339129997432618382575432404515632261754928176409009973801897880351447825977392396044904439911133871531454806875299884279374592429230313812208553301452852246534716160115289769248474313826282484565470257636341427065007516716975290821114969926907631507217703245346146773012295251077327558161897307346818376620391035383571152607303409032436813514232815694921244302685034819147516501126785062590314004710134320649323014492730055114970923411372372389615436823620589414966255451463767605419503589927551900031811200485626981867707982952587672992879753330684155961585124157795340592393610139260822302393268837134449108788030628075425500870496812410308749173556678921569421874162863231712468144472783461666488878769561856933687404507141631300772619433946192264050257385239409897289649764360573212594843688373170934167028147581796550004909129572131584939156078844510078862247566079119936660858866253012310674321550186367414576425729172257001158418243738549865589907403114315215359328306792180750183105030925307339692039792686157528031584229230547257092441624253655684889912010797437401791924586482646291978840012563068061398712749586216302333799429995256781854753417824734110965621892073115167175671548192917122334200486881351468000329037842326934275954295102741674213082437664309204703258999557656312818686869374019471521262656160176406075224741873834456978520585869195638194311579466570608294564401497347069710173658674073316080187666154497212615803131966655855092044708623557320629913299123960924584568854075889631135691910035208414505243244748603629202101548602534745914602292231772827178013018209032511775433862112712292402364064575440232423792974963147248701962769650435543610967840451859238007534434018286938817985078464045455759286820696155937940145948204408490730065794264966724917128399376388294044528400284966388040929517408035941809919563420440237489493894418196641086509765095817541556944151072666732541723917027436907026299012722646806595543974587336701374838097413892938269130938170648364272612551787110052562266236821184994658901253471394102810688599617433752909697430432309867777116274615226281147164461405270180786814907458385681035073590045193466720043458558256787921497559311254699375302911035486422575869160781651924914721943406554093329298818885600823206037468034154833974798563328310515365319050666771296135101649148217561909722062185558331406525972084379562159661746630989556745918294205874455981669663823276562049340863730228885739726041575469848056713393537387325521402900609235737390711707181901324310692379898137207971329241887149077251248028411027363989511241586006768608354573813332148595790024257126362794865860697945462830433262802079284894664081076325375045642537677371974568786256894149950998825727126442000797465162768416607525708587246502049192714140629156551878828829055623342719811538441147637343410857365395585338013541985738338828460991799209816479614672601287827276648549797495853587294507913200247071295233516168979118243558466333789588362167974901892415865232562744615755437105191662647220069347817129098377313690215048589213165880279927457531561128282958666267545992407507005123618811694727853016709469522426082324488075207249113751453488299828598685453844932863815578147996409478220753874344065885147956946017235850305166563650817961320385230178939432875952538787169392983010930353779124096235340320137404012185436912147207114034773096018048526170356994626457961534912608250871403157696601144814407897399134083520167619531810456613344584668610183226026197975388774866075259484863852091146840532966511158253734991303563522108648975055380311432546320516302687850109559116398092151817891052509609294754804597291667966307118990823318387107385392496920790993575841899704666385148897718129147584462580203180970669050184382720859393831665585169413868271874147860275699538286361628247097305985673845528190511150291466959932339925189261467631914263843294939446170207411594468279102270315803958725586831028344845546280238178496927704763296632826553508744844931730401422231723229181283131135738201857681564577208047623348456890436206134524723398636512003368574068129628239976471727425420374205822836209036572239157182194581796400403261730020149469835508227010169738634074482979949432858750113050316194517076790080970084904437256580800509102880742257986502478524117533650406018140982190615198717700926372181741694240183218260187608488235699376916976453486329249119499140551528038720578684655632129407528110340954990077230778612802948673969370519314992650420643651325024972964462070098461063337082872851023597995062476932036821226207216691209611481819443252084201052632540766366583280548236525253855922572734793015706054019861791623321311377800991131567112655634241114839697750234160096185354621035944352899738071027028066869002347925209881363576286992843567569817051880121034018005310246798113120352397544727407721746510064286242606872746506211143143043143110225903502046121618783745941069519470653531298174996498113804379795952730962803472716004459337866531691528249615283140946095915550107286560031517428135719693576429346691260132792207647618523663717623901657779533679928837642030310877392224487280097810157530135592788789551406778652199239857918131210516419129664598194627740481315203596560639802827107670541081809328106929308712785691993257033739516063211782442327881674364214684362188011315586419632672888184734871106057750302268712313034006001899051843112262192429826370265673912939363703668722160990262315048875805775379300769729450893330652860120537426343684295236289816712052458414254036870391106953624847557345241013062432954681753434842783630357338794641079472292588095029640462924638707503312626112555643151186294467615059487580707330065767366895720425384246013210042971552982598755824490340341006768213442194855559535309324428371226903961549583368894535683093469524868219954581850586583918267164500322052482320394915238760966880508747316988911826193151201420928823927823144690757617703139859610721683231948234908298791103688330722109702681929678249834158480622581258601513797242022612295935855856290137964550949963511956762803273016463286887065563539554339767569527016026931759699189717747304082595522290964924848107232703394166409611784583905957948073924053899718935016910501511287678926313476834281213908887694607391005532410532926523703633327126234948570254986795912504319970915261278891950388613458057167939364729977605031844628426759846267129851641648734612404826812467712753606243672743764322733883537395558307046629229487787688148501730947858704508245780660774988357408493561195127013878925157833079664812643440324244252499950947453194686189323999456596660697063846440029313983552337086618435595146688311081984040543594204449601504212104782429448026798295801625575908345044983462306377823816080636736857106667991762356217101057778978922531098653712875574818066933989358269627974276571893316482125370924335179456414085243922107678080907182009440842852291696195946271045897647065277914352617420318596925476869277481507524812178081780292632877893672421100526744454672041921831603720575467165842100297052325167156028008436120427871593381642393677096151597972312478226275324246255866852520227261235881165939103490291071563236266023454939180301603929257576733428328792928450700087101673173689853775389442362205953057832688527380950999128616340453104328477352096360906120668293963477766738101774576969347072511915416299981222859102511123760060792660951524192517055679897767099652817586773457500337789141768429696375206913271923044805617498339166898637758872827724780793311138666097862740997865148631605025938104144916030581883191816587238286955310394720919753677185437029718367941678877971276702219702060558075118985999699111206298358212224229484516169420449507045258339834875216911124545704923371003678657266030792870910909543310536117349512269171984148258817345601321707929322591368346154509214395597569148101864260925241167574981721505039468338155322112119004865942008213093373145198437892292773859494824016317494956015928681407841886623265462664275072715958338568152953154055098269058570226273667987133213384563013819862894943940957798119364672884520606732038584890054032423480892779586873190107771525504846382845014067744915848285299282609433559660285981655671753559068204306889934889288354425995237698157656764063562427485991296474558160254073109471669145432047823753059468552940184005330758617151745738586395865636350532534979761289223164983625568185564232016040705830835868481536314155052184695038988148896967908221086130021625417139343732678425010935615493315569704428882776168315047358246384043395456600669874748122485267907985983617970822689370339888600969490051262595718188300602558784621947592058462968281667880841210423315155283632157030315757635493587960502945027614919273582342601017435209184159100742926177241648294278465903204951629437940814163311086712173060692971930378818889963717608414877104096175201736312772094756166978196127980011962430570583453981612003336825215336766393979007870166273476466395638864817770139617889709946128242647532389805155468078408238102310395684668105043588354726597919685814708536039141140727676479369801895245273228999138328518140608526031642680908038926861842806153666263835045395210341221577310204797590959223200796986201085220702698430857494917037443918386755881640582606818987394063020369104669537730394187409015329089664690313085495394446319451861644672651310261467503014901684297816236253439052664425206889648213716891940412913440004905762525045798754967816173089497960293037756136920039421528130784685860110479949649840347349895171002231515202358301270806405915618005373503138738698992049862112857049408922915030766503335125241739677882461108939809968245983246129905290977485553289806900586966171816384698047100950037976703313562518441665956383812663486500238327307362256675026042058513862978867191039868377918010434122287283584240442590351007847412565305025962496316927915617813818640201357209251220924886554346325224788647038977197306003606779216937718137099120044481798561469189396504616929687133934189317185274471822669618253837340149766075660207330123801912879992625998211428333536828330913707287741678729178934149997851954076290301443946058299586781703079021328399379394476296817865921334628556380484065679667036520914067204636577248964732757771130413524809354923954519630376624202127660227983059284988353444015224077354586917019505661124611793166088927203399147448026174200869647865151848704946601751172951559736980702828320290440281989743219894959698761016067853286158171354360921479652756420539790511381983822961872398124082683397045212399881068369689592536949674436507606709981458638128747580137030766591313220785474563055718319548627968975249942971987106577360531053525682393947557208194027420826908086647780675989599300874738742529357039908357013143280442273849194339450089025822587001436317682891404526409789775404448069469060854123853449860662713671481567151649711483669566502983837517153117568096498971585922511890655278279423426366940293646709571144093002603837202690872459416667465505016360312025571884554976420430448625516503437323565623265923458364697535601358447517544442608807355831142280810210036358240134540089444738330518455917738269376688372095209746669949856257191458998836833879467367398379821894874899084940442535107963103677169778543002777413640007902548839438203235258488442779581181055658792989283894487295048930346926085406122176584143243725812376474441671913461170734200307672103153348452050979052407770094878229321624400242809522973736438620936301935740692173592851390066807580520051850302319235930276850358311478346520188967565395696843610466618568693834055309522413712260615984752433364399865516868295483885990251416090529219373101778836986773494512317900637310500912231159877044818208194381622909287302869968956890654593905834628475264009511684728002634801668321537968142905641115359208103859848989467694227079837585540366966678558378375584314008749294526085811154995964097287783653657739628867572968932945960224757281989186312190028195369603739249503376124693167310301893137354558866959104384662292825088564296239283508437808632699811470203659265769932805527323218275996117147256739044450625251948667556820859652841012644059690825186948015743022234004416358602981316289964398353451703953323376075842959325442539388131964000491995495856848206655293384359875709391731574482539727466472310969228070687431761719147991190006780731161944722432114082233133465618051436396117452415371402926290079164922866620999096711352373721666917239803648988038258349507635936916553470521292557137550343486806708037458223814951955792478594671481054427642651935024225457394865612047859005711337494401303498834306472854274244629000119820452583262214716801874513347605867360182770161033541466211730097105521157908657573670456502737705855592001666114039572666658751261476365810912970886468165169395501332338958184694582195892750004167631244216329409992865450680873170764197173939687167692583910048215730408651367219709745524045446127073143255707112860081101565718422512742055309506796791100408644510318913386750824524048629793175844495481828033810123535274195484412865632092272934236320382462181705935656985580641100563083472783677319156680373204402878786583682403332010120448602658846054163073424684348263552260701870825496785955136217672641444826165978076246346172786071133200545768080992711478595783655859715761066557303008431785763941033793592912271381233392986276524123364416807163224296236564784040588325483818396162404331844583146716125601831271700200025733640047358804937306164382888357956918400974177788399047297818792279075219153111547244800342496141204478745514302680040464550794674422677674505929264028762733195471798548720610151388344782022869214548329301986066497401553523465064772547086420290019189522851841040942444333691250625579279951674852434468498702592348749016795839071905884371319734652983817194421851400935191542348839100342547214279634433359972212657506017383344170482676284327808910046674132656565604052960570242156676886043751722344883684496886211351200589268570133821830647711142623061911795791190391744460918306105090053669340052217723524570560105434138365528828535436152889176509377945437172321469086650530099859868716921594822737730370355849566628872574098644425977582859766163715269802635909696050236866286283334232495810019486930595437362180586146782111493402807360179916071877182226920573956365754335311437494826524608204945882159326681335425633249202457276730079612532750317314829522532415648841160106811030128964320590984256792325344796916881176637348836387466847302075403613462855909870347565473319150369103265021008540305497176257028822411300495566596382908597179464662009546135861486303801732200062429793041523471196882752527580383099729441541816454817776351474660430648478448657480602589345578306533586343845626758377319980817210505534723599455746251906849130288700799368659036986909675622315721694209001512405728007091616763424062566503018740438985031504900873078923623022449035308767529086827188475291275280494143437826647121877477515694867279091527787958945428566543221283397386480645615637628375447950068856898447034916417896249756595535792025587114257506971447488976422937709970014284185893204189982659637713364884142514026861196830353038399496438345795588607667471541789712707616089524910166944821378344599123029609582421550397943669041376180192350455773531616663730498836491282031319632165290667577699471164355083845351736039114829817599929648214880767643949035341761047475873064568317798150451365726663689568573456995065015536571143348845334790133147830854226299108256525609168071051196733253546158416400981195826835953465743206256826960243498203643243105791249344635933825857587653397127796273342302995575076794304770337694075547641456625522954860620001199329643522876822427899655554402559776440481418264140207234709615401092799405069904568911180190140072659201814851129605426696159821037111544717404390836897291586624386446225424100699725366350004687301609419084781306774794999788752861214922562033309186886843069043827759454928454549692402286240847990395307961994695368330823403382896965513954450412652845791419823369993099589161967615891402267048990436156203634790807312375004742562442353045219051455158926156273114428438718956195678928964146099128026121648968928792335460328312064498816326542169138291494479355238915230879534696657191945975349055181077618727680977192698164341691121555293790747722625444466730584459391999042561093611171023176096522796093961971721173941317439839688916811735862702550399237232108010306586753571500520204900655564088673520842510442929642260996053736861400343128714139163202615077723800983443948769200670633651942677429294440205462310980745781266413392663201405288745624091185383215007843466137489245079331635926535281836287371728825582390205561239341684495397259489629297776880544786273592964185702406575518851641386286242798971413437573567955906577119931518290898745384967846080441863647226512535748504243407700278628373489618037364765351856064982159987097466433145279519919164495403346064608580091912933971576291168509770461743296975750023939713351009375369170228333747050250989575284295882351376143232047131657088399147106562905192937228509429798859056721614373516743524238505942407654808226377093337775929964466324710397374638166500297964205196461257026567666740720960937839206561428254079717120327561855882585313888629965544945167457724755324514500641705901301498665468744318686713147768108933076989092498118855166336370773800432614183831735617282808012515206482837196086991960862552186686843405977060032185471764495732020267014493013958910296986417557444493716536554713680935476667736908619463798619735482040364549971536621960058531380583315429179347372422194786139156104965962849001887969053097337589897192768683036996248320344253842579002499059297240585155100576028844722287598912757901910097044078913518768918285050919775417023563513326064074545131500703281560241597075545491473678582970427361394902102936622637854842559733795794659750559962335766642080984980373413266180064558189032338777959480967338462346525906669067668442911843203456790918391425535750415544635395943005971890299943473562218856579852261365426352203809564892247532126405455580724794589561226273024474215821676369977185589677945621748583409199885571183799007232556421586187838076655080354237963771483160543795903222320085815696208264093487184449876117003705868335103613394241915677623483510809226010548744218314355641212580425169873025761863884288650297870603206406020291186433485012690286012254842550381394746767341234448771091587759049408984817958217431609413729792078902790675391233650131573970854821255695799020449882404896843869923652061513838787503705989359584930029148917779740824719807710136193408579842346673048592611345311262686482867723314925659123485331545578885108236085558342354099592701404742113694015826460791299245765454437407550000376543479449396548397676325527408634862355567852844419854747628971019243084072668537956343593707371162142712300805282901888087170016707319760750580636536119729743056717349416105436823554775893094485265992524172448501537844084637911587593000143926012217157509266998854537050300214474557974095217432251850247645764559207926631750332423622205842164554649024772926139505322616522673842503195098840616374961150637379248253452596598513934426689537042165067251647913763241921974731784571448834603602157978885272587668026934493694740139141727431955473424464954499792092277353058970393335826112447316440441234885642744032005514165224429921417884241152265528697562281722549936318231746109488086286584837200951592652250784759033010975612555529503957826755323663366369283071254693517429249108633248426294857191686277917527287196892104401372192552185665274275336922088110670395035272260825857712464792368749449681558769728097392977281457347836305687966803198576708393260158884366460966732332742206938439097359294166994033522896704198510923926699659374417789596874310866852629350864820857782992677487025971257371252573925053300899343988835453459015522351411984671879405005188065807198489426309176535846040403599485119591786899308788927268047067129917008150640230610840917907469564716183153539340053843694838728110870672420061518960491053766858049934432720260334934916569349284115458586152725579184791065184457045197304902628519552625436948350118304714046696024915750492882587090999819020010580849411032281253307415505097734526186580186129876228546134132186194546565268542181197005611292910722404547820566320325845566011781270316273434222038052701233745799404749430861893700681936283842807135191965113802217473823418086742127397450009270358854491397666158069231115032947379101078866363431955211628282272729396375346159345357101898006066568742625793150218414341998887467272639421129226122882946648074299094135233855690326615736382828338101744883318047899986691742802713062219040786698496904668995018613471465531329206125494946124046705524189740715231774184464480990888218400173700466458430285811604217516549034723297886175428865706533469656351784566702331772735488338950058793565942584846654857585041156006649222138676834737192146590013910105290868241277720230403680727544804802163088258452701871056012423707557722191520964368960462197744997606665747865939046726455636017392031679775566457901985308513036129192377435897680794127477967933050215054762705902598068731826809224287876181824884853519512773116286140427809928180685354024346175092128623537107190435532259295620349283764233915879728107556748906786874149845694072025492540097785317809889630612936753695781635121282860206165271778904561902436615268004572151137488268943511926651937239191904588661170973620800299424699344424365319360209584163758287415518071922909095769026256740659798535817260882184882680267792500434134208509349836632157989313520065315753515073805148867593188404663862210070604928455651690812735062657812829664490725873731605958023173816943948140911442730527004169895819383275550562440790491122227998397517884786496707767366892093003924518197225568285255677643455414274595847552696167365953010337953352196236112317438225121838669875848937070305598831255208754768134378028643141700635275857645037133622980478611853366521747640175188065407129012160481093606880167983013756957207995801898535066085452239442512220429562901607075175960425347355861619486668500402165745611372845176314959239514112566091408288993268811348822428795298200636661422209094156544308730604507561227502282359578015788844105606832819149210243714787708456405036544628042436674924132243148120931972131849024050087625662370360415756430916076739650012581092932684844242579227339683352805421719358449843949407101578273394190240300726789326413684294268553207123665036995921126413096102289145420317108424527871273201511493421371388311422252436133843387885140951712460326485233837627536639735224848347609764154446031553785641829940902158478384421433981631467934397076043472503371966027670717276190082395717774091849392608806256442675112146218603651990299103793318150787373902246304976371267766956519538692141289008410487936352686323029393312240365943766217688037043553805562514210114205184603362833571367680084798339569383536157240052279495715237108792504512649198685444078525046308057028002967912823793477460167573618978546209885441628353576022058563463503702834068392363648558313936186779230858355305055240341303482068366612035300478959393567325714833732404814506527683996311220928330616842710072166491959932572714248886920150351764167741310202982055932967439955577709475010228555091227048583632041841399556542558164141658405892643990312346377782799403502732975293733632323662869113825991672952554926139712232370476561931142995749826848856765571699741743118646879550399342802999908275560401519415739386686319721806682902047646464400841127126209094369272378768116210534032041896894079882993844440338871047881641425785311942336846718716799190086354804832379153307104496784272448579500815782420657432689683725093313440927658615116961815473006243573657396034219701990679191871967908735612204438549559256877977544311536289701516208484209030140831927482811466576321605165008016701306938932767989367235675040572948709915261104769047201526591912173097861554787770185882012237439450339978280863974085048941446225443771792677097568036095844449106967041890666405452077917427125002803155998518836034746294689744495505014629631740139393010425991965911279873008926404717508878217521589985289543894335731181633797673573407611369627599596672570537810236543399739824636401659044356258869542477295781548182252307188956019110191818322338238241093569640948652675470678362281680123953455839998140558311495277316047499477501858680151566882851493909401256982357167342215462231203085705597085651495345808393554406090218995082952389915084472237746121778824275348633847689743889689503348703506511364388899812057440593232214962516683098371364731583455407826143012858234450970061600626381617343450080602572098333469167101613509240209725969876145392106030577673075322895687911088517659270297961021485448674499741527714087477269734247984930718152799030470025536318476611610406746042217667037119468273565516252021527898958100625021822628049213832909327322762084131547428308363936177888265590518390306824376345815984176689747373447820805980878748269679225649577908142273330246063244311672078111963074569230509906782757555582831468824158712809210012155745793977096299589898656382337026834678918152810242016670566923458077351930161555195803382836832537089017792354812915286327838275102067092387514964984144763704148417835244320839612761626215964380667679180466673876745642784983539535745223834193011517622612961587661294157569069217299513449557481679038864499752286787345786331594083180500804851785390100434314171540052674979373922678206606860332694727336157140678232120009789403332407757374561390230294821578172251574720779754195189009521018363052001585233951952436497882991070748044306188867805598551271271719601333538290767487159556050985403140253065111927338697128343171939461790912489529732274552962383214355836324968953122100918125815248771723063820098584837517721251874884800175948073012951746073072301403307110559217400322249153759935495537237104829974795850863749724885180895251233272346597589718424312874575767829186174888437997912235961361075462359604000831814475413603591804888250163061368551282798410282084158324971699705312048152172067154221478999345980207706565455026516902342155388313148489904431573188950087990365959898136060585642192996592506701610330407034140600204806685158197715874322125941342199664871229103563744803089914843850626519132518509184847503917487615197678926770775712346435090499977812194791809490921410083384319972649534987196983859497369733294637458527543767628489411143056822701042097104910785831434841285158740524793688229530251697006242277683746393601309076820852892931984831576544148016908625691155659393652995094929139319350447810818099208155738682228061925856180787751212211703342323249048476633724795454893776113338667848726347640140565906180808374308854346777192191937093092581090108675393703674801259032868428453959051505037393196759227236750612884186238282531126462947798444778265699477776705852388049634165393215718192730641092925715346028537369045484057973202160091327499142365997697307306611580223306274785209872788269613977965451002737484139814103449015647445972033133632971513496715847048028246299290577920171912155178440668036618403287257420219676635231879179578721808643383902920191185864724274893617644723841155502090927195261092281079336544747968222244202700703847314436995978148492930178817646475113144088128457703133749821311879433335371116675323297455818400683949712634513176400849553588665508695555236407718983623733724486788410961156750174407796891161483379286300785027417691338907523110632908705232373725759480790048550074765467626101736122582783632239482758406747329563781682077340454493023808420859621344436971714852877752550830443516099064720760245472732061870442123587535410763267029857802180558350844152600250019162958618817477984379678528660973527045562336347248265705732626509113428515031258238878753034635575018354402873136804564607030067103683348570477935401034381327359788751237498152308594274382801899417880200019026848916841933551184754001725572314512306427775643001064164359893343262542754235313498698031591156942768276048425512901633560643533353770439106818417325461674292433563497738109893601749095375076232034698680375253850519351526796196220714850280807118093854787109521131332836178057824439933478135604433212885014774527491164686179258911408348145203321024425354329534779948208973064730114802035080199771665790641906833846526023314667934119029866344984153255704142883361571954646528292854107326712525129159133284361402034329406518002894348473223826518385492719642107778921987695007949822615982928687892197327184655924838410495037326093369569966455742962394225870091968765133351935452142521295750906344843347948960302821943440953891980072747800971420696209537313465944358626816518729524652205683349516255378533570084246008692383027885176142656125152941581710391378626550293149905648254857883578274853641022845118114776362036361202417804811430484453748833398933005477135250300100104760357921711910795454019241141279986150370851123787902202068960110958756300135159421656832649033499788550619199306521275659414922301384936436498306338864745848906278953096622758256455590114215983785213689804907993030627982305389333478075023967909134281240186892142412367727220556830063264549817946224875070947305202743342238636073508164244654528229351792938743839658715525440861391500223576279747140333812140875747745616891449947620379853091751501275960496555469544157563155695118651894649023490337393365517106409913684677506192044166615686131812955359509339571049031689242455054791696590392331123005834963608043926766914045513368359877815068216720529842539191701917677387063706900986858715498701150175339952822943362894038885221688656852934285226684186496506500718465076762653995858398591276960671297024604276044962653551213383375767768719804059133075008964802417340455143360282815394286917141665308912988685001327273997004553238106025617861067038166474137718526945391400947440949797824658891205747279063517566725793517323566922577864511605513192872255748973021464863738271299434006945778061655474667513114035070476229213438496398495768170318168420963603189895178296685373370805658435765286078031021110124744677985683954360119855555402998625664511946422823122230488989464289225056330504600157558074730975204672452596398971628758811800621625105077338601279552645700611627544276389324945597228253067352977064307228466532609397824022965717773847217333668467231567540484119691361471464288944586377673594484263388687122366236843716546196389638658573030389834190906850771934454937884501393545583267762183312787241078293802463530346772366281641127673013335876329391182370505685138192340287502795974986250933247294560560304371043931043949478336694724479081971551262617539092650459305474099353355659859652728508200633595573181203039517014909060462953252348719854747993780279909159779390111508548692479978415585933550679365762783032420813130437263165935723545090037315753944582740758237579810776113426954923550684044461579971307204152979591143423839846330012237163506702665129471232229343928224906041132360146077072505151377194998893779161728203044344757387746561922338797365120156258669321539100034369682375980484520455227194904337039118991468822715917995875669120567794814347006760966919560390669861211560495084503302926091650242515756616477634515192290801467804919719211950479474308497615698015432548859037943485296519790500668887195867457014055384296236844391316876459448445296514531757974067309263177616952318623906605178041242557452569293747391721414795140984797929764670788794449237271101206050021053263466385560697224616188513145806471941417028332230056284777909260442342047495003090705334605025853287503678777568934805029077172301067634315037859622932071861737659665734198454871829870028482655789692039892489487738471465550789049896822597901069338512593208610160483561768181919950117612479952910620681279261547527762248088741742710624506084033071585576177001240761886445631256409404226956936942901727925089951539887990153422997422421862653740198076498565714913549412445758149515825244330198572435752667077578767418166988278894721032668227383651998052691935262032805473278917723908431418679227600718130624379479931798366951554435695898067353226067437686160831516943691455902972047153203436936418699685591346544992248940348092710131504683896580934230224452306855357368946576920561615654783609543011821482691273897331475742867634831770568517397379105792068532523628323229424549194401700829656778218878472198505425497724535569485873268176239430474446828066156836650038112382355035437756062475923896827212731683409305111416513666702670403303615387298965217531106394892706038638251562786934607315144410537207584952564874885550269272937020870007016380719695946856311512867015474956960742651366607080280494143300184620740479258336958171991167062368011132427478274868781102774318106279023039916288476154670119790386456789808957750195685215731573067951646039585495023511334890480502273663270445335493943786853181826524501663330284904619630467177164625121132174621444961453211247167453377766184711934043774936791723164081961567266488437315396056773225824039599295003152178060081625232590761521439266848339774500478409786453465969799852406185129824909827136018163499535435442940312424055896335864498388543768790268798629967583966019116487276151692577167445389551838642946692536297897594070802192970559452724992802166057536573847688881870042128091976785191674751985587198598268687802156524942317755545537022230347209426641563407726616998144744401744238073013735012025641229810919865614660915067603433741877839568895932121026562143585680003584253941902456711125383134231746162052239361858331971559329651533844577700077998773683552216465104188981867588559374345052083733381738535155202552985087422377469077823861959345545036702007951187554974352716040796418410351654650749251141103232018996021904304046969431226267845623791513036757581703019744480829759683179783631518353004385130812904230730241498686154708804420135997553752064944776029683853931492965490349000760509581417540215777098831281258416809924257637177277180250311190876612642040548270210114091644536364022689048745903275991968577489350024300682573622421479479117792940262780838033395878087283956300790119421303874540486040106243347858153530482111758435384703656228464200801519815860605101644956724848024755732563789479139239129264756663536416292522712521747750764339509219412384798007110943431724728627610633016585000692007250393863248217706136961947229545870740642731207986765313753819142409437741380395745407901566532129406048672828787733873175936766796044233160766950153333006012757349325080042672799881409894127140479857867142578732284822974317206947933800821373079922360777841509725590860108609662822811360469575045808411519660279943596654651633340855779378473552187222411465312996088390610171189022946980149743638171963415458464982286364422306831172560253872498581606533265223874197832870533234239795372842992581388683809488045299651281903943624705218910595166260378088673266401969975005004292706776004585198524099799936362181345917573558789641039316219565679935984483565128495017262794321270273493784113261047926138308833265559604935630232311311226797931436061235284026725057313456404952811101191972465252365993163194365255866320059300760457592470237660796130704769425995326088997169126490653400396399595500210594973524151052799922009222515752589934210549243121322286873869884191418799792020763870881986416319690107657457700041568524196378202260389731323610170572433090265822466665442289650390884098591846882247315890592606912421434265732146321502245294466770585162689563147157223632866239808903131836358325985965758443412764466707497958026682596750077087890242068949941485052120878622789988249886225090082424311142822159283919513119224644786538676267867675045743503951161965651489691936399387566875388395034458872967519407677475658813901057820855191453570281051135021648784809582310455644315252308672114888681143308385461566929164362527299343209288301112253024994197181158891750642633155991119997985606837000537530449834506136688765619530870216918798029080331676177465019493628164430138399573948890653946071856635443822098397368648638700012254213875713257303927520865859815226531288352750383540608860205425094399105941765310335346078704173852054204128214674706884765744410102999516924981299711171942272899280241070735648273050378792516502460979065663291085637836448324828792582267693346092088919978912318698828235665156043473018635210795399165278968734797869447426417861789156599688675015408881324519718518713187528819876047251845174915805795139869449699118998719355551308263531474242406773624451374816752170732054652247775499135329442491035460327671701301494065534340424327411460520728381881477932687798920465685236195829786616967329173344473287138110190537722102637302090774462968921377362505080685907864661015305034689174585711381111691190309215361492352266512713628947058673319562964537278847392082100948918038307467684830136522113960996271507154256257663812801380977163016928476692962252664797370401253277649985096221996215383252051826029704224443730904522887016471733289436123593164981464121953482694949117243040999128027826562170437924465427145114574452730874713613443757895902937207122854581847138051775977232072595958591750708009533119491056948701686333683324685613370592072349357366545515802044868741313674273321733238795114019291777319827204527037466296796666460762509380403274678510681613851715537226154932786532461246166620618232330060325934150339183052191567183426939111202134196414763311217563046662326717682529826502114622669525845266532010652999938055520681490002868696594436004728481094432139747860306849909898411626480722896495006824167053480780880728762301436619695138177287038076930317865710840068523942930784785376042971574669261046260945240738959810603462354219258102548397774967207911668190061967894362718801513913670879951358663410350383435116571158636157196771297258871830579889534296457530898829915595431041280774388500921397941162130284689920095970438407708519980047969586038986704964457824740998693541475973949633547708157543250325072996717616362707371553639508386768690663710783992271034081970523898194764063763543473584187790760093388192847667412173405889963884844315729049748009521283913284545288631812523270890208541386499173950906680832034064218878016073793316883134618379141175561029429108250981473308741502423276993303543691793485691648534405871666235075528120604384181252676822459751260907490992120999060551499991658920198464103161750152888595968314593287784497617154449869722311392831135222936990520675051710994756573499277262742650307377241711503628524837142178287876745144005441885823271974607315449711116387639524931919172418276824067396905181233849370153901285348760300950961998007988054213526443382451593112515536007855525214251850820070522239357962899796006033263136973713203236275043494642605618315629154309349464369594109913375888081271457824897596640521536783248694514843464336224626114718494238527480086950706339894293683846156359208450316612145275639633703216465697245205323082736519695317114778625015909903992263239863527752446360996419981930486481307449662789683915568525186970780513240643064253028728011274452528170747055761139205729824845812258115235552246751039974958943235586395341189536077399719005842223764240312764524077051120169816585951774229953836078522863746784249010498449481856213817681054693081388757491239219821056009141022909457548278174045309046166199545855310516392774426026031511370696733906457757177595430046431664615280124831574199043854841268374374487986549622964842639074073569954450388445747705264478350417342955372239941477507153969101950060316294097405421406410188651416831100376860756913977341940484616194130287316521952304275658660705060692249224369310588954771114742709069337910366283242948219717578958900167790808227419011691398884457701777053525240332908287345723045045581031177896646545650181526677845189275723323599502535573926994382845524385045287557418303377679078933051654925896080466442519335339159803821127118600369583361405291874604870392355855110873076175059059251119742148076791287610238417668964064877792513017008580322719373108504948409508071925011281783632780893183482500786041287686489870256041146700335992548578135556448796070123426540827039702727450753622129133944549123432932047619935387262501094114223674593457654481611290728897274346316758852751060125930079156425329140641849096470233148559889236376416441356351770398062293492450191586663677969952884194568130300832304094900418124483224413834057247305474750521396872154857685064648170785142360604414754501729549033542825109960093208077764203195894643341826523576788031052252362869033392364051002367588125063595463991495612883977415310804545710457848122217979840951249621185315490510277958828698051531653410664929673651652893986261049247847619532732707189190556640574848606464360459618974349750883312328575795877385158782820492264594771391521165181722711522363669119692663493707498405801079118282459580157438255668914930281473777827297627294800567782167059541662708180197730267179841900737521642029512330480082446027285903966958971095848578461998597196108807120376301916402185725421968307818491997060822589217162477116439880691570391006377650854774776821606076654162427274663347594459043376016465124620995476262457445262727182748108227457433167059656617983601562359560975241921759094132178983510948688403493781711898199270681618834081560761880951606156436926051783080009965806220017090729736166090504454849007209388952584333306838587798113563677086655527654299570028296575104728660058631305823800278641461974017473243519948074406406142510021973619376476303445846838127038997336920575257175939505192769466477207161943602846371933851438294700323917594358500229678604529242862706248279505034872702399691464990166009989872107014961863340691510117604940019581591129135596507705720222462545272925261957396886757262778827830857116385106059331098767890903718741023671562242043615872708420264517889521711862547665141522352827202621770716073281882171127061106438506931437267537727182006714312842372025584401386907762377698191395282084232817250339055045265217956241110452072935174990678313560002678100891552812525115265107778299306561082026347717410548344281948528743398172837086642863107048767121195860502219283640547937975772724587671959601652548673144843393835193142637549231895489342055018175781688735007332495199610366253261912993082207130353160534022340868151469108600726694340802985497550675372401512626675003108591590050638320746710675267727489925021090806531767928796160917481117326539025999842882105266788249730119597151858481481296863579115604634864509601782022352606819331509510490356693950881475465316749793776914077261805423074142650827604965260172433542788726168592996873495109704915792497913200467663408541848034279077585440584751902997074286633201100481102318788674829390282277595678342947326000642435792551873587671221276651936806635829819916907872765422678165823813969924756195977660537616754028771201856845365534478992516135240741888763299044043954631004735041435303440224254619782256234041808038632440514213484636425143790864130890266623275550718251575274780724226969914652927114177556438874629214975284107826316953148403404355094474224314133539833136876853574660427467600811056780281080605824533257583227048551113301656466963557170387511048106590698454401469721741812315116556647745346703422262598282814169330634219804474229514612128136393685855235484186862282847784930622087186858637583022798006339429621587783483793198786557082397323321800804896071414731445365150844409690786788169420727661214526968480057123820121481755653126489248028580897520613470903880492190545099043993094530538310077109834605414262196939529725945648664985611100909338783932635315806711168645020292933227296191811503755025826008212652999391553780120968606508149289896388148480361061825511733487927393940126850254605912516266134815787122540162326674703301901635723255103307781626104591238917455848185639733666626751312106438610078421202181565978089588369486593714216117387785681214063812392817513762456197533118458856866792887385155151050490121021384643615792564098747124765609775967760758225500294859510305824625264876795982929685312701169356367514949826918979507402261471924286441911101056532617821300748031697260537704525773078096901019535831297649260340786059811138360466094143384075582132717753204561691287734629385434814822061726369236354764106006462466924112573178257627970465040611347778019900765788571902852794490875393667477815032209817092973872597318623628479332701063023657244422341833395912591757637523335320691740469312284310364306265769321900995247476290630191724484824102645322794431442110649415348750786359336188945881427954924575462846105401433318082545131342890866239032397680247306419989954164057800539841010040869962472045820762406921366529890775610101058390222828773881368362077539797485149667982884125401920582961993501422260606419705941176105099205557756951491335624861575447843094992766367603551389250686023933655283432584566286366736739362507216626197161872913304953516981158145707616853965434856666746765589679671583495936855187325492426745722086618874376771872850782384408613944057801883371457612445820574077498297438708406129848347284239660274955028326328640812521153203947143675889752455579184091509771205452003078191413489766914743982375312550152014392180803768204256922336500035112896115625778729445899817888627487785369389864944323731492393703105865682716396184493542060047185539731240652107080208255761673642201001877412109517878406502971271733257907353478505610943624530915519379403370863533046079373176033869391306225268711115121217372787440136424731813742961035702357808928004893564716918300373087830053597976563129794955634541302091565049881446064248188690268486613461462677535032028688956419034121944508633901639934904919392731557430082573691257648447748891368080923763564200992752225788028105306336605181212363668816250054467532024419728225052018196860260749852535609656274097419450425964479875398463194371980642660181566054417377009132699916984014645448945542969431805337751502829137028686048363025008550656689224043832257636732756813485039526639000824242565594063867822851087287182223250102876410822809402742059421125932197271702401542950385113295288363669455820301597184444894820390528437489516432497163119160014313083260729608240288860261782064728140372167508676197235098661758511599796650213345643353790990586764509277443400616540304453402806346738827798222128892998330725269950927517601091758142014127737469404319732708336930809726683415996505382845147967609762830358653787674514240816706331448227004630887575721714075464439109526005852215876761753159867114986512999843195332524160188945713418698897356768564147332132723899548579785810718158204786041564270151194335761327015331557994949185600579423902989483865895906373834955117854416731007395071765431630260581570400837886654397791614756188869582930802297832895532872048730344827277236975766890406364049874183525663470023846283394929058818641296161495863465500803671108829007952626108173989362874528806639460814221313045001943179251201790778417033552027089375088592545954610365678579874673323434162703066128329781673325896650179790737986612246649315618283397482251461024510699046610935999692845242475744919474997758488101312775236107895634174059213340950086107079029492666609363667011970163009800646730045591875604115196795789376784029423261386046027184256030461531600051490656225106836091825713034399022481435237565569009456430363390756783691578790653397562148055377681649755949444693735818659716053935680053115806834210713223502015710077105954167608107826782530215236145053065854058051614813410087744557546188883326396212937895242249618853173421386299978467541630470242763098757181835482473832681858534542644491722271517074630397720153664875016428720864081618738644726698135663120725705637915231076545915437347888702231795885167114483914493498701392051205749234183318019082929355175169833370050684601485820451781015027822708917749360635816476055088758264440460615119623657585991969575785567839667041905382918894975349388831217744366944001567292795588790526950900444637935445070558198441382339786421013366544799548934827857782404963193254061913510045310050098666693903137860525295861654795144842528387333897098244652586453663399946361997538860809518983513491028934367526098930416413502340917139525716326804096054219887605363972067922588861904451192434835330287593758816064010178785571795107910581547975229132410177758493740045744183607691280099281086550534065925083265133118589097532140999475136562235482500546249818762758273892211459162552057379034055544296275979991493029360773314659508175061100090206229170772947791164159611459868882405547177127003142230282359346720135999549760393024554968497820388660666303402323355554494753290341630396497813377900145094295501794745648551805492954904407923208132485151059727440303130221323455591400987028925590947711182421800888828449958251854726724451360981946302377383929462607937969558625933003575957648699262372555122735286064018044393840611072541597395600994777219653740355023925063623651088026326695809658801839045227553350594002411149586531886429808860760464288348955857493110630832743888972314430975982536885970693811510541119115490544047664328360970114264811338180248809671478545659398361671286188026832155678299367475686230803709561992049923335192140241603867861344708740600689429942979025132578850491849210407575950483389998037276962848395661260947304167237729162216267339433307164771402683744229051972500771335358143662180467344786223352619642862331643773446225875732075788037300057519001853835175421037547756187785322482430500863868814482344253382349094155590445741966614081629930692905240979633423047479977654283119608332877389714164970567886093093007399559042930321306480806829253367045498068103458650749407411040972497452527849989367879050584639463545795680029277567072927761315142245890204558802091862179637096111658487511772222907000049452002490057994900208891182764104807693484311104476460999317199123845045615673179199339274893914524363471669755819469488342355943336992733663152846885791357676679171010041455837411511234482241751517391998807228569281274652615646203413198055357154467485281468475872086265114325695641712589074058711031201106376841041298552289847943753571547440104790278199540393141438354672587617870415116438455412095017595752004161890686414205973870136554472631450720043609762930994172990755030492584768870846335494389823828613246788655408295938556856591381994261578621844897978321930878205731326881059181948759768362249981246516020906156685624201257231106835546816172129201123273244456076636293603489615590849842569982426407749894563095451612903179150813800843548245285867651620396549964585503117800068690170910459998202117963944377115146781793373895636594959854190499661530451966136080720981636663694013403909618059795697772489895034482378850751374922983109797856634422089265602489706463912727164956557127220627831415111502329196586857789812987143824033434515854681750014415787344675126506398723855305580646213364054714938669695368943128558295758957069370567982189363688870273391512541520388458144858049015890596030988174875883442598814734590647039245879624372979970728286446410372402591242366776136278186902932895127148068553471247314080368089640571660165913887869455324511789360260704664749926009574700362813532040197071851191111375457796474108190628745484746940359591486743710199562140206467119315721489406003409684980342594871410075307890887627798608484119160240103508189315934093548280654198346718443992274460091492803080180456245933537651643159246388586445475043206318147339754769161337492156237472760718652156403664034895579700465544802279284329344036352756476214684070962051122104274470485534272620202272653142260057664024619857924974975870188504247876146917840829035284427166521396298989638586408852217803516527586362705452539114177317722616244342812635562685144581676689236267736566031951627293924917904546791444201451103752685606692400956534364251310219552463160297195111487216880228987483804162931471638781716481236944031419320148422329992132137068593613252373852166958129743574136914206691492223576051943952194930726020136801624801175998677218849083354005701431806749112845242511466409168717836028041983276704016310097223568005293579390343022620796584482062983759139074889178676263564538591745642671572671952683383807539052620976943521861456577830714366469114407380335501606018036329917204386926402983840785211701459335781776974629663878858966847754871792873094798130418121836278323662432398345362000004311908250155862814974729611186842799767910351415150215197019567875662775433674611514391533279615583968461217308677299066316610295121794127455603309868844327985622005806014875042419433640369097860592373757377235934502809958945862443041551142301082527932882937361179830562914006231976499373951362351245332705178282610765330236814850188477515211033686018470570535627029049275806325051034095759451294279209357258732943914928465322842295636371713833073519376917905672802880341145827499551309381452394308378865678817190612563235642889651392895813393510833783539369720958262331507966143906944454255728995805864819600532744967061463661431928279649040339285372311217606731841981883749465596246404932526002965235564541604770595365658741115890878170675537189268245526566802461146933645629883051016085445099018750881599959721744963093061861752849837513665556316134820781892906487079359618054561936360847861003852634550732370942629948007787919531820659941452783926605038225031203572696857572125434463022769681916475376738178293310797038417683695010047066824865726850532863717368452029011621110805872154185382964933758793919817933404841438182476923464821879724552906140085761292034789796897723832852817406819360951319724695894896413757556529899154804276162608851245440082875587260101948658401790672130712106139137665252130539341163773590184445652600808110379568275811217230535071120924471663893007136820362219819389721686877583796574507190581285578885732538632221946000258483202876243979486678826699376458290111920010865249364277936772394762934231253660508444796921668877188977554378483405820786364614244426775427142563506872061804503286634516443709706806255143620662520486961352618816068271634609475864403344561711609103832034555256873409671779517649807381087565437432135974237503805990610340697026866608440023324735699503156442583708668215697153581909607430612096367728001346154401753393891989239266491572217663732191942911394292302012113763222898953518764794822651892078490650745279772217525688925817761668837290459520458430748769660155759825495221199343164895629451507792581688994431350641626988995702984484744387567839912934752394383995434945166535646426259754534988635019383703396788423889887067434205702066239885694021264024869573625400138091921824908224565138221619291466879057855293996233948542673477445426991317059133674410449105174777272650477684121266674089554793924510107048817411161679000155209017703415613468765199261029047261706877873760633479169536918737819515841366728723515877077168734003778140540710943328027084777008255610631105213679563410681705816592329206011841952939714956014035131622491546957266350112197397894055200495141837018406693808788834280933825123122190815806188112449355390961301888828040052827224642267185858663087447451955092724750973216679928838926122024713712373468596949663293934092912765690536281336415143850477110132073072172067334688981113100615572930687183885181470975536661439514623496529590823381620295795616971375038715551686758347202584158426453222038507135478455405263697679446761346312580429325035731435586972279907527282193772841257114833522617234683824414363981085549845568179966933450348074010545541465111955496120895369252519733932649772049183510714145269012979895911531305529247739961814737998786399525000455021375526780136296491350164338743556265437795279163822489302448357771357082884406122237968846323382252300126726049989728430989476939538476437599240162591228780281303794198138133850079293636793042557302861798859521473324273571575915917310053070274714784849093851989058375736467164837259400373924906063218291151361692824481048317532950550021847639335014513723429576973784123944949187577013199190744001792640882041358257648356057643505730783998488761998556979399828495689827421899594019474237990793410066590169847320408634985947673710610634765068154192290689501619650366720993686466512196028720504145926515506512349161414834744045186047476139982880124333921937687692837558361031591356417648311307922176620683678242796693902425270914350452554415236124177593577416057235493748588521113759075490343845890236242944323872722494959069885122811294033463112584541370064476302367282161473194375542182774458255600656663056473031549433382879022312925382059873701334468468861219625667848080125473310405449113598331996769397383186613257585057641679447961130365459022037848420517563049073932788911411778172003028123190468790060236147586195232640227874095344535000352850484310998908292470040980701072048888126900960925934408065325408662066197090730869121371474470991114609187434937563953106325635623469950603143513623031196688608581270376136639827574510436374677587266905186784469373011136044212723115578755774895376779617579853207467852109230669504952333659016578813994317088287890362479590060402363660561116844714201407068479347304031844716676862115681446858167583416391765640591656307467197325775618531908790591195040216849621624380863079261703466372233918684876014977697102621377285974386566728521675556918757667778879792166230356654089681713360545911449056714082926101147366205639408588441487113957095714242710238509848722101094945574218333413910528869920339140252471404069827884872589113007753248155036476206767775308934623986511768921291680482974859753168437170826122397776719395234775014378452850080536917844566519106950031416875022632506461389477376443668633476264459644779938407383852756447652335509648554590238811360206774010843496585805976471517911533433651600041864855112579294323997398524298252825026178697470905005442632983522693845911018373423682665693500360733177104962628476479820300388997017209303150850663292688577849127728025679802513211468533001162646036323337087185273866917884514153368203955478542213249014084836150805597605022156133296709991614599283400667284953113792878426985750493963010201010883563977444708161673013784158804120990826986554659213945900843865985180252749805071982595724191976132290429436485383248015576431014464449751110047567417188406613220862095356645320454102170514166570967460068988508930399331627729599599923447699063905712975745108669776517772244849428041741118060265833160023905193528264365453094506068687809081802901392290879810490993408503303348399445512315164862892108925445541190979242463433670351388006689661437124507133623957959311471292529026809541440618019152951994339193934007356341105159575925746633859785694634121452926604092876851347597170043959193438206367715705286222692800429474598914497010222160553097264143482111341941547601909947986711042458263560277523348133155323571002947366946047937523556382273428343232273635753126626297751353363998541084215250369173894235745121415425142632951476458392410276288846209134622890902464557516832594184155782881547737827142052623744462474822322426119390263038766370057527424384369101748256228089711553216135830466050582888121013057337409106414221255010925127926758999612750897574173440009117638725613987582317565313987392000943594185812873843619203136602003992147534196967855475573016866039158538404402614843205971668504648120495131262626885297490590752890710002310594031351198122255861774760085166441783917915458551879130484667632265789020925532517864475576117166224140119413102455710582297551904615505708573577426269542730186830846940353369873573712995391081763617872121269532024583905571334272977991545528753735560063218957144888098168186840464478073547659457649963686318086473487342467696459489193418395320180739105645004817931220850947169197754949802867832099407578328558755879829252088950765369188093399518591739886743563184721355811298030420482399874783955196886200378372921968409675705362046393917938824969455082169840571814700036749924719185030081556215980890105177381840021868410828745777298056903933526410741777831777254191583896575911834174860921103820835226060676289171996150731680168084338911886834666988667352740489092044993002030272540653671794221297985624152450278413670484528941605882426710417504642745510434477331538734480569912848276677097921068085659182601556728665388736769313887782836086640155659829386725275601880501075056219054864509237764140451098555820520426896450673740871843105800944666072804903061965250429914384935909971622192697551501878846348892532726514682100387809134275906770628765591583701266737714646506464111382094649180072852356030860926745353028526699013804880539749515842358949834798315224952867991410782553619593003464831851832092860406794779007944379572393738544156208585942921775681474736301381124925943641090393678234998310478066724137924755492047407011155080127467108391564223357982148261623608521930483916580209027741818047541570054559935306384586268949038612915919102555573070382759712909325432280470974183018773570405984428242792246599796007022024574398386305108323806901678096449322125876884294703274693398498747967026106553727640620991939978135072370160561376727719212993589189141278417526044533685473384931949199708238130908245582192151602786406775980717540400227773565263942751259074588953693029969317829598341667930039009924384943430748914288482888863595585725112916628540500026241022898388653302274493756721600184445433665681451410265003731556499821945264013691558718348755325154694757581363244984915063735945621101598192598384498343627530616493157327606996068487508995361224299482927425779010717298456050397838906690396976013577245661662945182763221826961116830299149733527415473735038523496492061714846276901145197506170348261518572182934751356632411365737534173763582979985967224804493822317438600901079894455506724916681639966279740696710663437629932678664684033348257797851139571414493310376405934915130214187705746689303609125461504462471751021230273568609545567647559479842899769186306935586726781685493203623566093527080522010778716439743966315415023200929903356012151134357098301636406178507877463915719543781434338279183786300876358816574213146661143285438570165560369696703858599985470991667185461678468265652981589071918630163250987042774801869880992532492740132036924438591260175550250849414842220281165997230190479683240911706758627508381680021625177473183012429194147824175153990573899439445500871625738103383437185958088661404476860683999771288445579645820279107582526813345621636510754671801712004736326491460503878814577587724048687081887981394635473522969510540726810447258227687015017290205303647000213956384479338158846465580811036854621628104435261863660554951917034908832181756967095646329159620402262984652917350595256450462458668078738719392676125278756632841092860059810575570880962115183725270908042896317697431251555166563703571336458366245042212771311859918796854830271497607292660998902516396689565892215535421218020348239250055967130538412366885786653034695123579035026924597144466553996012335532074043598404010604031852571754358628446314500219265713953636717529984752136653489749102649475514722054644446247748966097872143317588601611651766547977989961210209448480234431486312991267344031922752938029127251201523910940793588091136542806828337587593256471253475810445094279685859511653838157666630706868887771523663548588332445081216935100086818748189982557803355962542816981942473082550090009868135103249848254718463770881555856533304599828426636452422591568447665999355597397526176355898673646698265783367873222536108679484050644846731442637434834389246443713258055595879394230458492361788904168122721183993485951784921465140066685928302470481420574120474997633530992766213183562227030829990462155216860548676378177418994640432468921330921952411634978024169723881718034983967680648794620066551583420995869586174921960920163850651955540984584427622991392071291509328724361173219850257468705639595191647200171021529820182133349536713473088760556928165108059207559791678304410689535157787585864878515021859514763481747828922064299851770595862168194098892313555614417837486584579544655968861913958517757451064240187179290834266288390310921370886754224708503596791443864961842164656481161756954918312578583483371817251206181699360803631237892443079147164646032955226989273587940475437404472328074325210724097964948729627065917602878652913404886540647812194740712619556684172155709256611934452603035342035272058518435266000830273228920617580093405137115292769545625132944779683553469401545514482640522367687254358084974548227263213139594460073155108017215650113943862231309261637383488483095816270324883042051992293735337643123096813988711545126677523649358557215465215216209343914497413951530036580969316294037162604439067432284812111636596775630497505450792153518630591309451924468884567712192065728000965559613435588235635783567245841773448342983049551367021879859148515336537493781820547111507429179733279762522191525038209475318487217372898911992590461178428615499959353789185034179576843032781451272087690974118144014642464465615070943721157353608843210366267431208185793963217073322026174182516356247712229622885126802260358609562389499433679764971351908191716638752658113742494829074366655146896598142616314052904011774004133548079100858259387838954206033791995148327835218594998312676944275978309941338278461302183263064255023970246129749944155731317274986963370265083660383601979575601562132886011515265765249519960009490200480766360468757315757027841166319916922430347648058789966260535408780308727904332998629245233602911371972357830314295242280081540185963479896677780357436774881281792415230501085804933783867077769269145221368129504826957054443281454068155753345887046041740052283779459884119411617097649702948792541653093375292080909765308976416930746528225424216930827379463546110149505731070806527458003720803985663074175184873433637700793233760455605321873537988498746446868563256172651289166645914185677293811697164418169576211762646363755199354060890704254256148007268128130965587617282435080991257269614912660685641500562539887751190217644772126087330267185659328300330306217517648601485793136370061981216941775392050784821644139799661254785632668453868226200646412709911527984520646180138978718035166821815178519831848018056843180631969126557129377779013156865516025196952164999964306087201307616424715178823253999577173692149082534903165340780788427537731692221338195174068371228420112564482047488951816974104252925776750808554283088718394554091294843454452665759007662303984402234052019262986838372708955929119330327432623374306589053726642348791945130714189613616808851104347933435637378498920743686626512528931570440540403708533346339247309500774524274984414128812136409519147885168435853931049417119908447853502237514947245951341897418706233666235515756019380080818361378040696067013903726964577531288674107978920955511170058315086965797176209274495172034428217200619642165317177128228183773615203555722335547146484997548817325897227617014208054696127576133276027036207519856742261550248051543688722597429870491369969051779008694439920025268974000282324914877919656115536218751897198892228012334250972537760828382977748219969295707347796791421079849899942176924250260313498786519048506280334998921682578301097464731205214084638138753036988710387527551833610959209023172724212070792674200602051493921285906617377241365864324335093477927080792458881592154414231254261459966101703845284459009744920238615572339611453721298585185414354244231882612861464883605211068194599636675677506049451048513338265120869244605217505477460541286523454780539466174701375622724475642891222921352519235200714233166319396807006791612171911567520468483443109754386956754641371317547439594486538061335775039229938202748546980673871064343765590914568343052030323906109665033631184529798915336066393029501504880932103695297248438632434878115780089942100549959716807721621535795234463076292383872228342588249902822389697667053180007413325494848781282771655373833199063463881036169238086313168240668060453128238070514422472492155481033179751381339402363978626821185316050926173715037072460008691160432292124091211303962578647609132496134752974028299791943120182887369264775096403625039964434790367743902741467553996781497593519406790846261650327180262211863804182284736153686517799112697250832014785692394512891703290251411285122423132931825361504628203672259727611197085184639871381742858149080525045817115046196378395789635405529706080167394114868174143655182460914414363635195212734243939319895439950672223575858315396820979879526145549708304776811694916883735315989444680435333967193981120836760944160139083160360256386370663583629134419558558418697864237059368013358084081772034299527568458285086700098940956407304117019013870254586837443560970213371006818626944985619917692283165919242406776594966563433467494924673415817862673380527889824592718097156419209652844830198908374439379935582079706832913596087808301808552386342855723710014192292058965838906919498746143790538735830288726193373891901416992346965818371090449688916625007007215295256270937385583724114689974340599863886906968627468729326405710519459748061589766076607562202798404974237782077041322013431121455799237597314950596832939144498413898974621271409461156945099146047744365554984939046418907118534848602178271205636188052016875237748330820335930693463016930515163955304719037987403275332502866973122097664852281001380208614307495334511549056416083552829063146739923029446837091330542580051575809949133765292077302027196774319169423289397256375900769222413961214180260317583395882336073507503173127151911087892972323217910105151325738483669849736171845012193574049956568482358113144852847569950048591312951776386324691817034218777089740876289975355200729209120745788469956290640198746931479822166288138227663911946623709131754531315478622612569318491129768327615840300080900164776992805845147025877215248190203804763937908795657594537629465304056354687589546344076931482608290363107942562995777805865932266928863004418745344730244016133479150522829381929475325411272431391259340952805962432786661870136990426746921537886062718191286080525814076052347959876079070267742067254516972630347759072584325614856079417947280012468622957090821956328025326572544793908325871238652701789314526143044874463817267607885814417908069035546034816413968637171522126996439729993961044410492120336486475665494342208504181333733747627847838422412232411652759777321875958860291059275715384658015253088661542759403366592343300770604283508620245265847395858151757703531569625336765958412885379249532027085410643197026394890060879571693045472001702980131936326604532605903244420864961153765952702442696394810775387107419175085585285961231675215537169685996627868482454735174731193713117347737722353870089021485751003214128444439945950290553676798685370539507109033116908055742662472806350491419499563360167884367081634783930930364288750284487277792673226165568039345163216071620150794687316852872617298963363417559936127756061520719721397781897551943406597392823777825514112373212902672444952929993578764111806835484731731720202674986687568610824941899388129158059451757078251510423420863508317962311332997712703522300549132278241997856536875005228247447777288638246709565425012009082303114268894589109793304452126613276922237709555893959957192784272309707554473949867558290381195517589998281330899802043628349900018383092277333224209787564275029650263506603520133292336532179418131548901843136786616660887756734891872522709718401393706371865637210068095491527899532512960263365794216264937611198113114985538423442951234814654719002354349039040928699089553180481742643792486123924107709002645388696888826792252605065641694786523330423785039117436280981125901291929984967269931945486170314441987199306481970203831225179676096111139080455038638765308637787523913196630118888335810952011798535562783008700648862281971094257974270233166511503829415455202905717307417167795699544648699281113106844562384419218887426445459899900152385042004035333797360027402484653172912228482710209783502643447894315072671472030509335021340847709226627175315085358263267991922085484965196133325736581394620209853343243960523735323354820666492539303844238194839095685235660822777223906303777610487671262559409694277123297054914191481618119606703582565652477220275992332531035094436444157219834054272255908394163471677900680443118059353947085192843755945637456145632903638663681864180979664369788448972821376165543792619292040889286883632604044039248112085738505158225836526189421960422740242908698425482454853718652624442722015083028757242493578184773145038499776138110309848739702346959012270726568574925865777926458398883625499666210866800749539598111555189507185311114490007826430540709086326226400440708212887098007531614252719734115895837949853765370348917764123534379130892444008573257624038073149367691895193392056056085832371371980501090925771342208323932997179843915770519176458924226949555798340207832340760110834864868698235588773505491040897499664117374280841140849412850575284956232128270652161671238580650540749090355949403554033262803447630568052864208809448496227578996010963766446698280422828450490969263269675531703204932741792763197153520224990445782459991106771130534126812405031991495335365890004058840230680056395740667824082682952781890419974911333959471002066069021585535015843441274417411165490553156094513739176616946356264938554296481992829576226383244156192839970421277505857558856873882476478690913524283315611759757198376742085092154688886363916989582367002058864666588359773984398865022524442371933802306445571680425146337457044343343582831522276070114832188338719204001066731863926862744116395852834401041280921782581531156701514051506616934372208814935891812790583139508782993413847065810983684778919122707959275279442357037666672318457329567583021131586283195070807053914441027206782988722699119698378791010695967731940765104080883517767866107791456278385561417549694921468126240991389096403970116532091774085234918605097210908479795701323913893513006601306564300346056643516442985190483152657006255232885287141208087014396945107634308597770782744850416463860699187752160996788623536006492306101934223208505003068333088883410026969664078562114642652810252891194249011670291486563605241936656760871574219516897400798621798486466035688161425259503757425874550820062225324357678791786334300653127897524687982042418892573931327657224431529595866528099079739682578768042460193940857084460574514188268570210466113400218227030578506327367803647778365110819781578728035946584156552161395071674368994843507333859898522149303780987352816344953897581301419371268371928280662869094419960667354453029946137385234579440945309381896251710693372906172386560200446460279124312376311111941889292715462730654579198679717621739771835531337063003785806296936469377968456065677718734604128598555942299809194332234809270522149496024408868187439767788043002773597324175708590254878618357951460856970095788773580074117462342257361447851464766475713964437257109647301022847141155452225945635215577846289520820023212392778424747361215478520017958914726648458986484297959392410474384007805159638635972672876136006010149763106384020601603788326746258217500421199342270741449652649753459378374669176651184074619793784522630815053303402033524496320038735158660803715544261872284783409991931398467517416581803151022474172706232655800376557159102566803759637738532601714582642259191649393945965535255609159224689528927242075368886255660891875036088952497711461470387395160172669778256110911498836873365383498687682860498523432381333102125648366421186016372989171541864256212404305795648032898057321109260385433562957917822417045709384626898896742616134828895438180487770939251708569287656356666714679774978807422354934407029734706530822834626529541098082714020998246246704642970245279030348468437337792202961612912539569283905809744951759702833783228392828623942401010393414225314368406547951192766583435534705086722201732055383188987848456710573718422035669130415421677596046937338355956287964148355686220391323202077472941584443096552302472735777383988403960942365810331048741181163991847151738781931380351420899268410744184516258816731727666717183819171848272760507479624163387695036015846314946708851350424627511014832779510183901438000611181853107001030893784921994115129062823086786425642887995875322399219458957301999233173347555329291769080310146446200538870242269778146398429559165901467319702344901622513019584495495710495767983362722492627082616089487960524906183621154680265494297930098005166308937175847362441668325134144915838785996123923129344401100863528015630138132590845756499049567264979516310169125468619328890132699668687102057582266818379001500960190313367397673702798536203425197902141969095073108244688803217091508362199274307088878708958454950899075167444342159885323686714695718868803018371518418894744299561946608719003700354816724960734407491775491234108596317579768555247316191333313637100496097376906982038944487247075887061753835521210417278680220997479918367768744520110766690316696504875286184513466976753228031731329338405166556743239653884082424189773146919314382128349302970389124053345394275355477825666814720162115546515108304226420528057401349665871963352951245120041978980192311192888138969134323902525055619647371766744621080363009537094092066364678199765242672721291726759428626013626273077720519254003986030820652157373378714914102357972015856779255772325983661657216687225647737839586750325006746935943715684346354280836276751219010843708125038964837496353534319097260885697867626819553973236182391686927165610916023630202899738240425181321962832640767145333876999113990845100867582060619662033262098161786334085699728716434639393001781344614666792836171300659326475787429084147762695774690593529392262372214122015796441350347309564721435749667485604152766320246071505180438790346095435639267057178260950805481917299245469582322881462801338976510647219528636443421058789987998946463722828761100552932843373983546493984350587238468725569084940599537268559409386274871077085160316620550321311843457461331582474662177370545219659051773470442460608685663455477113974810696224178100097429609741486115042800425851724397479731810686226111187506366530658782787629382079322276747511078166414864424985449572672997748109376013129891400079974855202134842070624418119403719763155761568884507772564529838073247241278926177610372537492190675654358170747515156041948352640835894870565779398295469131227222591798540386992303671235211502109720501414244669717054322133071171965960042425362163584321902772484426876272850413312968916570181973517892867864134362057403098082568597744651282819002797159177379056885165853112331485866929222401026448017620837052057661234086716033996207681083645446741272572128431187757821700808718857810713739583312738043787538993169283913021299550122098961165286325660148433044140922693803736718487843129416294616503132965293307427215339425117920132764203822074028748940254940076161994339499801322977871841901960730124020738787711296609423226805772690395489027754630942335957808303675756917572513450767516271662541134936956710416775875996303961438869759453224427740731125273407886267667639024951318659300130559819533396987813651016558205056689525695443441357887931093421678291713350619435378515780828930285261206498121611073224216933830137464638560323869903314053048233329552066777027847326172044535210681165944561002572680888259868182738152304048549891114783815059240797701228107486872995080589714155454081526542426015000529558142072160387647421433348533022819382031772741001799374241632425749884066228455527610226925504511786314852056064405081631140164926932611066617828922305721213579494411614306626480635019735287069173861152719089391921335583523894632895463937990713166122564092988905799640044058066524577399981882660985139454473666984907634227278624659232525236981560260104778473898785212472085387840423524349311707857200007001487644892559971140447437171517693938143727856584098700245007149015176943170257881891312914288841868577024603560962361220249696269549030055224954511472545907297850242107208196175757322640843194096778158307467602586103688479653901633015534405963815924980736231333359647417107282137828233629964162105331539492023345066422793868543077843681315615210460549017886870372807892612867395502964013011290644942908965627966857651648220130400343534088379868350008085805465687821115308742929839975384792047088758505110329062510641509336688831434968540961410350977777014131492746882094553473374598449999187426124173101807476538445996827811603407824278795333224526064705326425330799946322964619880937948341211323102796576447488821582809586551954679995024787242815920942014009328018372791003439019313793314540578102077189119778947719182306444672916712952010008426369780629824255631383822722375758562190427712573172906961412449180904779955588316421044179288080221687126634605007841866179007229789768770967461189836671329759658344364268909217554145049567233932868433882178785423889546853717874374733761261841491507201206620481090212806935447116165182943252210458583268946870903912338095758512334232087643289345570723775218773190749192322252457546234283794337557089351533498990298553528627084958320468950393700641253595244171992548411325422342727645170023220135764837780850338825016524455894852263533508836500068703390125045384478752145427469720736210548301602829768054701849730741053188523068898625546954778325018899540893812462778616718360067748316332968821793892097791673379295275723601254168114704587196461543441714753947419503949321758017998199943345466624937904069677772487561757189730562612103589706184995777035287146036335574131821104218322573910403063078890337859465937929167909235858503524889578415302872191032143167239657787208380878944985188696676569379019663939925356254097227295244189544263262302925532499993345873666456071450560853681968967816939671174498625394606270864386403247853969883130275248216978273377980677792720940856146966121673393726433967550174804312118013507006201319096306226132903812912974282075668963600121648117794884948440732189781962754481198573812743748637632596711851587914578914318857913329418171011106995742366850132678563995497166320970787930070263246443405179539792079135587146261020395478908948951975218236086712996737635162492962027251644966549559633537360384832441923299447533976934679498902547409572564308792625019632782696570404954209861088464809875865796022813520568737604546734699220116007434676753271111585874640597508138463539321919139593972817766218868354920931872434477436834755384106674667087460537823846680089887622120214922902509209969809834900688291169279166037461231530086421897081856511956315132430143502952279841324565230735002420250542294176271612192029442061141665253427916090654041795503463731879110047613067900103297253599523735330716153547887525087460507648989712488754502668534430609701837648374444415701856800695848099441643167785715404788694395441488925303960218954001459811309484758817365086484377540452973848573393738726109691241201969184295896865530772885793127822502698600251109230176468547724805453339244343297620406416515366506591092528060845125705553389385768578457340798841581063963800272469353078385714530588233272299775053003934075546847467739581635246257026439978566203965518313093491742388918318537462961077838876531870373268117677604011100758286369919288737467247832571388494089999156920162726445305920214099651721638224353343962982449959248430020533208236406952205735909331800574647915290140597051393183001866555519453478430333777246815395365076709702035695050326455089195219167858661075768526132762521028147111061317630588790736765958417216712389841237226201363794886942872419919613870817613427975991816090396180469952643692324721385610686849028974742553366455496769905410944401826365701757060580604519881647072184996207008612343409547640421926045805720672384093754877973826660559883597557905336664952175996156242305431875131662863700707828102078200079416036505564126814171494213519560645601108884860498512413691722906720512905919635410452185157168659695756636896967564074485176657125284015995183260732205816449632868219537179083389806447565368232423666449148549588960218282205259707775442643657318510520935899570125399147801188213736836115387610800048340157180556089683136943769358120935426110069918111192750022200358470479015879626171106277622766341335879186729642852248650206778782162918276864217419910186696305524748136088504725043230796787382205846034876373452529246677083281728090696442579789611692867003372421609668326386510310852981129976076422126292725329395002382362908212977269505908733566290816577998737321495094160754728194161090529498733027956738732403182732813303827033528884244910712987362168331427912256990169842406529770778999986249407214553022636412627981187196187567002076592185038051862132860974041544675885709447288221571897126771959673447532656198428284092450083484338071653509058044112519702739015776240913581926026236654066234443639190659072166858946861588256666764952781442302690473003112844043955406285494306977992305968447640682212764251584068725636460696492663890983662187771027698739444574586067155020254033730277236846588995722036529584206640801341032502080823494386239562540550416458729640311661934902112264622627271387292433518026493222850484182310019256869864595941480940372747949292129449568249720794807602817503578901738863109357813618778838928840653941095158104559877701277206373441934193898191817041951200347730309291056397528667289333701111243173340028806690703795890322749417042885365219748455022959836860405894874640317847140323036526263437039745626845686904742294930030921868873294986198871736148611026966563773954384441472349035956017336190147158135718975961943518500359013098834838448682922200776180963514452301685009216649814558345751346552717567800526319692597588153064531235847820740875857609893596109691583913889701488048073799009423842622500277339944289506629214923991647678104673357600578795096310721771125240096773205239970380348425340321823947778108460832083354359491455041080881506377536337411576038031439898427716177681682449122504923854772310414675525398503152987965817911588186477876991421486087296661488737114940953530051962429063707337143582340962916672291386169079065491991506652198803288950240213036159740614713220067037981425054820034182610492640965892324908049413270202160649483032758113549040824951759572913666553235206984696179726818938054710025627369810014901454290504781785223281100287960867448421678727435655883096929019826668867696446968241578298524732148005414314054201150688532489707662244095267850154801719658107135112373538401686236697733091962835086411515897135438282238136437140420100698464321863877993089285763488829928748284186353653003530468439418693861150969241609625841860216205803565770309292410674590888697151155864167160326865231949411559110804828956351985246096116652804719249276092088065569097036321781184904113682979787570174762057507849598206974649947588551433515968511625859122019680823349436466373318250219062660233358689384056375810068346057903360894751782578331927956269567978109480922587533942825673796465206132582695531141244152253034678983717019598554808943912168044299193046588795651324705604623549467202368679452077875370708572572798363633205974124536462096939666386222875450133710092627320865941379771788964452048578376184851601774583290864179751011015166684681292032498832901763675861053200349364839422080810919485579821400390800438854626098872319388524179772018615704842558915125201526944738393789730812837215145655288299477240917684021162333443035313836817933409591534050924564525738617921794913899241853007577352383108543186273482418209775744604096992723836626912296719519513698892348057633772706094239271646530258641551768188298532712682536716491186933345000324558966034413101629734644211046410979045451962332639430289938552254808521987722194917768144477284875124145695005367739567438864812711358305802664703550312543710475772588494122546413420868976154020048124955330571442201815161151438172581172062887669813276276424920775690076966225213291491325385287552289077164890302501127402763778956512968457414449993116426831351469294980830971790426479486340896771349215983616774954779867237827591156771495238079740245619370072845349307837669642809381458480456961689629828207786617710151398648179458435680265722480976607327155688056854692329075697032203369585179271494693649353317908030525150515338905209941797172753043762390399903448620643753555096910675581967351493579184105475852943930039235540258879736047177696827999585652255699615906149630262688173211619968930828469417686661397316131815793074715892619922879222735692455644363492834191554267448313545698679436470123822101106911706915109308369976448060907259940100667976935636996222092928700246687698334202363403233071705900300791177788932104459070762996075113523384254586629450888299535245380991805374131564029690589853142793436392609951028401893751418971787518012579344147474510461000872343191268977913543829647974478948908175229459100088267082964274874473891677589284800724981199615179979562401061740628397939964978766396871033058579374991959003672773358706047538299350136404132440820399107095667185368963952796620282785363447319613984713870685006766110909718205256467012700565023939446456705894473039763063601796200982936736967707215632396239724468148028674021553675159298830850424855412097492750308429013826472829364642809915881005574970837511728256918846911625157874608363389162561282336765271944201317374468171385132638805321472552684127997589025205478330180420318044657181555910047752954949324373196991382933817877487675552142729217461046545680766264539207461936077142105631557648812791089319136511347131444914670415611260693742238205727278351300978726262366946494632392336613752857372552389029447059766287981925019737476894565974266368908034895321829269414466261956944236169967664337398008125263952380462190993783613794609366373079596216387692334982587094872268021761551928807580614850519206812075425584096533772067128289256137918758800797026004939188678594445838265593875954921912888837510385793193736165237341152800835924021115586634310376043050431071825218660723032554494356867293187969354410319230876145641151603396654090814237016572951527016197742097466512449528530678252587163684651243538131856821282729126480962027759628251031966640270626199278998288208929012910195302143410679584045725040442820417410040431751696966822959302547989433153097945405690378979321947313840686300904460175516482370181305164890298342113514253168524879424625072071732767653038540419132194218344037673308752091968574108213807985198565673236892439298233131873583134864563697482333464785562397745728681042224142534446971930548356516720768935300437822807370105007945056482739683416033328581227392268105212668855013735619399880805233300759184073398786599064554161740669415631553414062511315318645777497790850753678616956308997892714672911379752241708584020708936972057457324078620468477353987909575077817698075671610599760969396521972946868186151033710682789638670514286877870777262572599947708006003570962283723443556216515003754322982293863434432791725625223117605800362070055619478382755491115278469782527997655901942983948861374891381079957369366029625284416660589950386612030495369191055730088156060885786807391010263323228720488234766605396502886467322999490678324612923162784021678359333467107117164247581092168567279193434277175147531585092005063558462979568379292326314307073922389227677628851335472271479499321809001934223072678148847882004799013868521129988950740638415768921477446549303459678194858176728968282557195050758038611370139515033121455736222801804697031905774636900853688187527473930169426145380898257634202397543191616118489999619741688412424300343109102386877089186368551611471192311064956860697354913543180930659976784977928905464658425819614730259132148335576356562819556885016225778169820302427368204567506108979723201225476049209332370316911280270698825900804910863561926551362154872473475830060204908001766930242984286390938302002896725852291173245701894310058429758632462203341697346657162514676244725146800784684480900903788814751422190155253234785849865127854929009895325526004925758854764532323587317593718445039980786877756907549874647229141860061760056042483781221159769203885458890283917216499636344693685933310736748052176773516255071375542619765742175882298763044081375105566093561887542216410629565093151720196892494411761285095571657333629420123728890486347549933329318350138918014916839664508524127127426858082934572335018057630889717237205384978421272318179931025507002524667435461880035287184390200261929957298209453892981621114747456202990629104123988961152446516469153662471700931576224190296128113732924126634792978922258719749537762677677858116541877274188136014771470825888746821115723840819064759944658768904466767536623199427371533084033630593219542096892946710316680021059905542135417728855497887281950580370407096992240520161094845033719040812427796227031011138876142999925913985271430226365453423763993020738665779281178649809559128391458294198669913789357613593140158246906233579844418074782647258332288162912320921428543914366505774293071587097402018377506403469497299209138061975811931670899776374199569100856986840027720431583444983011864169332584270822267363137441816784600484289257055238041904130250613904263512153568168859955048975360274741128702980287236073561440403169607405830235968053699952701731649229627287066434127956995107974945437855312406569827175053512614656051314673863081109115313971877526414370910681283428942856108359336480823221875356248599757890802917060201835495473629054428817776870712583192353876943359097005107275005082705483465723976186916413391780746155438157702637923682492724523841662549463370602769216046589075858576428641228966754442966360083416601509289369164134091396710609143839021927719513597186061248816072749999997675964704553382716586422578425801016057119940390695519586025943609790774425695728666382162760861012929125901872767424362789232403100624449503268550527764220910079975235015637985071917730258255410867905231198045193407068092277114819025564746713012586985411559936775721578819594377540412942952273546439726146469622647939189621172300578121609490691558602196855341157659006579960852110957907727502365202549836064102121567701422157247734522882556498371567892367297084781939761293257421049568910731369613225543262144549135451047746848552207648087222176095735346904801031819695903634899666397809046987193326803969630304383931268503484074795907866133910396378803862796637150633965266749216758763874372642821640842647338901597370623662393073725398392106368916586055822446089043945183341277728685143994565851948376711767491896730417012644318964817899586704995914624128767535382906125908069848597623818350795477472054839281994094213739959251977396682436220346683288586552221052487477073021410947790302277156549974533542649513746589097151863962787658107707626236443095720440854766198283397609735234971057487561943637948744117595808404388872999489049400860754460300865767158442345820788910666591038055522318154604951896817530953015792126466494713632601343395457190411949403242620050253325012310313626094271134960001833876894117411953029112032371480405828295269852129251707014342342160599705870947121656548953774848051545039593488146983662120377634875015885596522073367673012462197991386496128213727419322730783074333263128487469492816048442103994246969821291807367584323499405889559759558987016447551813503618456189602401662706517058022224533306663803497309162049085522849126509125592051311697051797859116498582959526697843913199919838496459803429581108178278853195308404611379316229866553355551124648677345846674606926446330293472003606902567693248890634467803217180231283418871987327112638624691651086425284211343379922477012703139360116640745232580666818679344246333150676769343392433186173892007958434471159352840412524498282270823224348650246899691786716156586847076414674583268259865311917200295684906825371652959320527876971795115179342463248550257305618107884012795001733728960098099556127938475715320025712231053743178634196232348783773570535782935686819568827897802825353628068483902358999779278919450407226866826309252546841829047196433317028824016339572799839682869160766109041558184739653125678494460989594319443765303847361233097003751206766432283451778740340656338176526075091400232703027976534213584464534532925761617545884997409031032746692681646535986664174944844691169206767939188659076289563874835708995628935875083071704373683679925696941091659897592097737703678464838831931935056847882596023487019587299442753361907620687248164088495564213283798130151523471629675135287016592725860770906516999676844268869297949667589691776518698300670976562446595747994370018738142104263582220960855636192078726854607461565519428969491314427046589468185964710110959549113547107949006193376377375909999791815602280086845461405601873373139504383801251469692136701751457242778447840044325463495139805777978826389642303018853201116065186222053005054340710489413147424545973980970894662257593143883821867910320474588993502965738917989638957402721930314546040402819781013196767799149801491581370296207940525412518507522124272846153819798390232304481525127814373467041952297853410832441279468085659230140867145743666177085902812680573061328234881571628219213868826137995766043258960252345419122171016723588066240380752952602762744287513590145211695651453851891226919361377668580707681165641362001960333579490776244553526666629323294623263616741323904224789688896604896515377818986850151431408380155326983669153962330415014425488525443981476694257898260148303704974217145051989280861719104897371898513487641250006598951314491800389894712450506736878194032074901933698648069738860026953350634638103049597582753721757136487182910428464227540480887150766049021026239786138850990595500640101658422496442090410161351208942344626521807177864019655794678585348471749504387994516865836935970721679880448396585082325553543949395945729659320933795578258288783730386143854735430775399947549514670143260273401052217835272609558227226938815348911335940340621959850133222740697508461775742346701126215042190039359607847615016168951092628572688058532822254430770802580078394362894851070752429890079535867911139152353136366255278113535411598661803141140012432221952861112319235706386380863672836646340696507068320199607786939701964767938815619841640461665403170587980811590277340873542442006838906747518164641392718098090583711236653723457510373740078234343118695433975974127989243318929116678732702368468156903640339153555980329643304199288267572802268310291566534771462394070665941015364260466687665887900667779680124100177583144254177728969766334623245807389021439035703762545686765570481707114008333367758248586113652999216832724233022185230540004472272792716043856899526287681524485776270492002682847119205953635621120033183023798058505439656792280897980507225303273214881249966237214588613134037166915174874483338689008441987827019280875591411709979241786775503219044527292936877481426033166167518952846527829478623046569644590982438421328463938085585047113387105287648841679837363596571171116162196632129347615298798195465259083033732908371940596237008612164954130224598159205282664259084184285399047653763844574124922246834259652034436725105826816787476512133061190080774111537638124287767172314106734567058483760936766237094749523855654630851667375386455098821304258422433554494535762030987357035051136785098052876955489807845591833935609912218463940282020375562695415587185298705457504445773445218721063786414344397238645005808921783997999346515700594930684545101039709345711315776483844186481441184505591310510889956113159108153969463109361526185987909031242537175209333061013977379959257777853484356891867480380202651790478332703007466943365864867324197217371443451031037015749590440386162581468896808315542432095398771379483281340127479744046779252697683215126355293303458782542851250548201209889236786822577747462112473563876358411577932744212633274308516291350443476467496509054602253919640376461880001409086067365754696121548628551334416114718667310312003653432870389290583202413312422304952419358414517521377732647397006917422864987136375149335490588200568931931792827507791338241646397521043792598518183890625446226718379673148225167634826055760162162965702222820860185951610674408866993834195832533210191862833943424949785760163277582023609390211273354903650168299266366940084261081119014320420616535867023638893459581804654022454766665375154302636831704271884501200626902529538366092800753789436700700725354069589028589605319321211514356063394190201978999663738104857171187393437795688691797638948641811999705415559093505796134281448863369698784728865818557892322721818326544527429464262925707112815741184537207992961569654634486144298578052638742617784710029534811539257534635794612811044299879746769988215253954331967609860234636097573652214174658972293649210642150722916740543025087551159067134692035431170147204808545806207911268691120666601521388072682814089946511584518056799240692879319544222908389232825441165215222977406761372038107768458007893336260806262976965032694175202474748838802121842778498430835273325930589449401913255965778773308518604096732880810045363395438170492306526923296175745246359110175795552715306087859027605816955760947403908760463207953118038016122865197852430047009337724210803390417854134375733378925786923166513624687275104314047157688574574154071737145680153449303884629311775427207688246580887812354149504308361777323041572040535065918534141785467788032967516044108126309760944811951105290680051252571295814470310071384243512616766606584406939002310909729869426343927062617279306971479830553881458013495873488844993980995235047023442614915364451049367520776692840799845634536414203104343931059322356938218770950025730407957947448381053052389584613890592787520132661487292127308047532596391876895678661251160385016081002689676741868269093492422799131415837414720514513327552011103176304040308195551959814625544575435055418741199126872348689351879417019882335484255398882770413980675427142167545422762032475562979421312686739293378478177932446572473707725014719055829293857481030664159716836592366541142822692703128222396803871948594853590131272091732515497462523192998913233736851590605858501189560550015045531434443758735260259099497381120979430700779257069375804769402435958436485869115524407843309432030814542785604987493138342011995171162514227927354333097067355627832208069880347828024356843106597556329148992770017229553519594666167655189156364333532106218543311145245315288727297660643334704338595102731731185888853651772005180746413125496126841709848935749504625324817558798744970016182202068106978554151520345147410455145033609900200630877914180554819183438258096409165107938200300667617699498970998201447803428980632840878728790224021589073601590873605483539245955642690940032971284753572272343301074743149883126335367232114947998801419436812681172239157990665614945004519900891690745259285515825845963883410031424944473217530848753661154909456165821292791957275096821266788247421287898232253865447213794425285304866923171393560134275714325585249252392813392445724708263289655131085541910916386775446398170209071026831277027693068072571364182196209765311848173830108362661156271443174775304525792776314959000173682558625481685422770926497103073555808840053682214020056307284729693677156874606836775759677016922755288772542692395524831276539049438917534139795288445160440865090304530243120806399554097583444580674463851270221815133374272383926255694076761947885632151867286234183559551266006819506749035912204034793141843545759405669508941672885811759610074122379956645620025229336812388143195483197303795507584826251879291719514087972849328866418577728159596165544421052933062333532406077216227332347357245463095181462260902581793930829942403549364644115673576588648072250961200498792474175547397768704404858333888862070294991466423469484722370800753013997543262344732029185771043273827054229570726421821769719436568580655064902444527203949328088072568830598318377867780148464828740799287556421589499282930145943656631492519321420251620360797974816775096119788040520594918629421862250794588156381797934944234376548551777816410855105351561374174138082902688588725289771261322681658939044683721017169239327882190192386643439309979946452514843516046173153068915974112671862812207895000172651255740088179167763719847818622363949905986444069693548389042696738038866158954960001465732520483374214951571151569534682774237043016373198905022948076747057507805354715897290286282308496174608544673158784181583409631713508364456882338361819600670518382037102420025300352110179684802200124668621705036351404836060501644508641080101107560394662703703352169876564644451613033514662331331814120335966265285374411047427824492211203747598831547550958022544901151054935288385678928203816237781191196809799065865274864190081741554654584009637091127330380506465848882250700830708442696479188715848465207460715438488368400884191047319097356964325913459907627284256290328254090258836162886354064761806091457836533857811494764228109830355255248279139317650983622708514196972433557014456699322546516096312733738857325044940208586922765902739852456174608517610689514855816341211801405669113163546075931675427086788638245876110494683850216958227900140511022387124858271688471462672062634011651115469715041366864693754175819724703282153113322093941170001502085992991874838823540159550482824136745961568329994561644913535563247010787418165713294087882888444459187619130287418521805573186976281374379513113331539046002626880877648504752292497868642656849412455830155695387816590626783608897243917941427407922439590215660163847062256985376506873381830082871964665550218011860270743468346631918717647681164842939555361429334612731279882746549359736812441659707451795024526634571445104650079890139235029038525867096831732824679038724087414554200302207866185169947570733053526368973867407821867235431022075970219742634412480940134928763507015307252466798271482542661425349072653281734804823270836121279418565976947470586478718620063106620883738226516058447746292868035445703777863858768893096330404448763945150122762621178332993201921027962951142720177496910721164962080117741392525852644925885650120529417675015883679828779710979925311027526845070430778154505181956710502986679905767591075926940012763866813343551217289720185943405907302169514563353759693783733617082743278547072629156485760173336974249574838122145574384481993093134197509141132594207069753020553210899182564287966475533274868637604331135346565627279515734747628740608824486623275210437744797374261791063974009068076037710923339570116390021543537148510291901964827393684973093569617218454783417396878146727250416086408413457961256594556659677055434231333585109582500149155452398039218756296909256180446711648640925910807027846745044591095885638154590370507111645614680390395195555856853412921412297023184732101894803680600821732804956904944910469495530278242335693305284154997723729228154222078594062334283822815455276294569421902290678596022934443927234637551781041184649680645581530982487734034299841389421737139932835462694825027735265767936277588319342345707752964073541575359176201131283424552236122290938990424572246390023721852423986259025605743933042853149615056708995824860976107435651078678110926255240769205494347004769960279413125779721930817437123939104612552599058719460860790331664922368995308114886431539664321326100490482351930327071380962452540265228948409272005034237287979363416926346179072418720823623717583614743197536772435692660772050779881619561255712681196501639433746297886633198478035071997752177279805486888314931408319154535359067254673438679872542432931115841713404972766154252151071212845105118824721760366579165392422414424348355268973292159271165079321210920186661240748767015887602696439153433225238107499126442001298801868145597673412912246983927185064896179900261340742732748517115206705708791460486326727867112356682352605967728580175619060061026460486386170152882183411011202096928118943588554186260867445247351216232105304817511363821952012734062026307393790981043379443331276855184213150410839168815719165242072409636784232878708468009735119230139849325613037774729802887989927977775737299149351716703237346591823152619841308064401289053311059959241339618691622346686963238568948354896324684369465592394645443529954630282258082330970452477373369434119783108164186715641334275574795437053271217430947921070603329564507964779143731132847642379295973097073261976607462932742997520490140816698849806897274921661917087843801300876849708920196399491785457885645559926940125558544156634370669805847529204840573357295754602903258454515872097540184732638720222176596368768290493514119107328094878640127908879807185397587029791025850146996627348456540008481252163018755388427075362525798747038874498686986157093084209599789095757074096837069964087909576584255494149580864332884558865638473070393314720796679747104414129614709420702522474552458691047086014798686742656115094249465282084538482475564766250910070764183791414524587329494934658912688586131695991465981434371111882598338417953273343284817155078675293747353031504332005176494699872433998094510206532491806004969368595630786877111979732729111391053386263475105839501516121965533340887822069143291903278316612972121518369620375721033866148489856544617740635868962499167601873103914085596496068958700167682404043318811222369659007508255132363802229228622232327178764037174972020712915797971756403106836696448975132486461583857746965626678936775381634540780395457588516828027613589547354359759739358339642314616839713041488749900052672272351995495781575487343554990587070338152223049775184916472201861082583585475761046431526028957769814274386002525865014929818210546217674271130751216951413459634236407451927757107285069537944357418633105420032511286078523448235380983184334934274909159763059848676047329913045794215729358285139530520848761855393420181429400546867371227356623500230847017916414981930949481227398065581421506325761030279838950652173890756200117541741680482630626052331095513608607503638852795780402431862543906165946589329870870684007932016011536645540030117136334793486161614037514252977067244546456412805880949130245309099310798189250697675642412539461590389535061490638027642374736048039109903875224579128296342067009350051455725519629080314432854503726975788260866390781758969973254941318827071087009374927457088428079050113011241642780802214594531868729675258121625625720784413617770231575170600288393779526797927751577158602743965717341296266644009249347237264640694717308398270730909203273894516719701025554838831945456332851834400852381760468426551703699393827100863007498753722676445858231242666497813365147176525527009719218672986245980244414851818582262533754638766928080724338989055345802667637246402082377267047042123340484007363356522677214792532130806827046371482507452548746382081336260529385203853842436145921819634255723988517478893194422540914428255778699923968828229319156532387886820433492026578111104833593976465849247412942973569783975020979151062670866656770996657203195011653071430329868734730856930850786349527967581133254765950782150266252534379474340148448513310856138261684343825942938236185784578495399709254559729026142692161992029349012525640437783005535190723715785038327042287527183494368928427682606327110657390923533730357647587786701832266782744359023340780919666182703009077781763943619698185167129050651908873715745421151233785155153114073619313075696757266772146619527138325253551284321611114234364637833995445215519741888589073764050791235284767136360127092577572983245004140089811221154100053660149960790168550849664991045421001667584493285010730961010878148482439200711786580850796320141679775838376040582851504000241293287597691306749908744319520431572073775816645724638713571714604792116589181267424957062559151722674801700611422692578005868080026106383914660842443358086642089344169845533755327316524885681064954344214994274512502861972854674513810801952286595442972930282917145342051274431705366986847545526321589241842601533475924672551546971130767868733732505898371739876070034711604813366222726800393448278594088937148038478462940359507488319048615518036010726294856073523205716845080279025388767143745837762757936183408355369723338916575451661133619022983643214053456808721603094167627316788777192815619049961163616018156104634290917688582735506422407782545434078018740912039066786916217118535847559877044816894149473880912275929706094388872243806290721379898808232611409138467318952944070202132313693983356227833929690482705240120589330095186802235054578270616802159805817567713679488621644084698756415253504886518787704727641270813799587806199245085734481429166247868180350171245790815512475569858122195795986471369798080214379955099644259491990664648696311629605998127964039878782149703531983756342108981129923123348472346600050743442260462595811492873946580253407927506994806131980168672878806003989240895173938745978131973037021750420151293190458197602607024479426300769963349220475504773905699063895095011528199726042294918939083658952592412045931399001784219021326373817413071162147971717303703592349167833464492299991226996040553805157377458735523495645363143369914807295719091173330887971242133548568211734272700976841551688367706842148011945691508952608190739593528974434402112242720503903844193682771337329322725718884695186868733295216089182590484796037149451259417794188367906356710784762140050959270559336532609106091978718213449187643621412940594042228917080570956842944334111846537486120870237499287395162518466399093025049824669964181340536754531614290830420869347921852515043898348048731104913129787531691837871580137839588356934502636656083109815452617531789670847049588638019193840505525780191049412128322977545202829167693946087786918250358247520287279241505021052051483864529325828773977004343715140012942059068411577212207899355842790362482075430316698768564586363965759841871961232109612305278256403961992821844366549640764435614093280944258465019938472142893422540804886061929749042619236320113028168645868147484724275127793191024807124852450677112139018252230973739795516534620251576640456296674034254265960834091956571428662793904679862036103821623653360234749018224845110573310011703507722546698740582720001144762412595151910789330839606193639645774154756496846721344527210500051237532286113525821099149719583823626917114604025190464245317489051716393909572783196306973877012677047959019992440251636304530686777746757705613784245297241015342819789273192173289861344899454252969462832340287886949630867988923264229581674718043662432514379727701017430732595910960535076299770967630064471694051562503993653493823889399147362045391754349284188814787410896565962906453584092531504574502647786906509429467054450917828637998213565864728690632222857186540246573412272698359057898315149177683470815966002362528460658948772219971859620607320267852088546081026047961606147278253029334499731997688312607326676915159670353262642262029160456441368368333043908073846312125821391028598504962051545583220091060576254607994869293133573447268447050753200458750224622854599937871471488751737934580064237471793698660211269598189031825471215513629185979609828335265402754838277285122011939758239667549166261214714287519491722666562694357321775763561956124504559987131876037097782431372737069311484760026419532617121634499770552823881682712187357260726331660519546835421121096975907604655862669291152159497686027445097316911825684918508213009246217023478947773490663030102845429405701151408737603230295769056200472238742436874967542133231139311033146211502369092967306406847730005565013425823131675690227345301928607079227105835675663208653769544671182039137989992189469966927446693535923598490433184560050163795785153074817000701738727868659723653720929425463235779038324809620479828249047399138099236469046656721777214598009497579504413645995111065381401074589674073584508837877829841480311593666259368415148874892450489754568121151495955749552767414997929475295766535317224445712680951961962886549571654377526788889324023155121328971910753114632113592280046419859243520003974514666933666996357198093531842565556645840110096227289895259165071199336826960448373104152209893696171984272393791798022715535399145707328602283815387808906198127414925704577441105252094071915576778586341245371554541314782095354444191121362296667894274101362365381313662282935145560680014595407965123609004998192275431426080348065530794630790066103797489282570446680410412079116495564337206603101113239960545690016107557924654493119422611985195202515390650884430229298590988910018804804623213442916628691016378566933046142915173814906125106189577309146406141399714397433578656313442113138436738944601362405849434692944560500096730743170276994861068302292820809804952340199809166445516623791567033150521073518084053468719541912697789959653843768771393850643347337076201781565197573745082267567996868541053370439032313322134884878226426209799489775988141214132018616899207126854004736217788467074739498204893671449234272653787815975362175818223780043971114781903896248766295005727375186145054367419373605122327411120527594739650544758304131352030454268942949827994951246090189065000546489130683248261296507725652631711505031772849193125924165072291742712125971271331832455798825323860230783200158655719540540495104601586863088358410403716598109354527758628833679276422167330988889789707613308051476925395261650841625452201321793098031089335325898045329712690673820179731143639520011770372331302017670304207384105211358767548201104388480220772986366635342238282871448645575071841280468887825751068197873281677714555908065204056801893230450881774365588381167331216823109816139496945685105238144520629792529922512851921128338917696414916540979026879152789835044938455490790093344451363738273997095569615823133144914471733422626013170534854468378187943353285843290244179612916661433104313564286550500671435026716545188798131508161433136573607435455566036350862560347054375469145252997594961841891961196623066472541623825942646087110264561289287882285495783721287833046682679708185198074153355822256999560810528039981160803117673677471022994375930803391208718513890864688865179077160705088690540162059627266007973833809740823876260045054908293442165575564031620662466892832770226111923486403718276257447988361407542175453026010040699667289985337744864274454698487067806591652460913972922326950534366164655453480393274362940603496046399306153239307630245399260006568902347341649366650899118539248485438824907014255699742255252402243778782009996943151049392441763181703825969197389669422677474362296392172853686477430884333699000355582611170673089139301352422872455567541068382897706464109740254067927435473952806429623851469004957850578834769229967083470153042760719953861790029721734297798406988230892824514560061313181928976682263561910487221489422884177376399017967371257016188650482374146040380156532839315543785049164816939336186448777584332052825921889076586417199527883820000017974658447046314338887600397938550168345470503608010243020564290660369875374763836970013226258250961406397339207224530811351238085076860260779975372392153196644905809559963864805947162901588184366643644892126987550013776278590486005188640595404497663373640031836189084907182458151847912042307846328526197078974969631596502314758532912955841173265941476536152659336245273695245847878575680339736617049673115352985756505243568115051089071211481631383598400036097307213575656379131867346938251523732521466356717058886350452058649442768164517044915834780690434385983968334975619123742979499654666125781140037616211186999103998820461407901677487182399517717498681431284913600276769113603990817658040260963704714140123790257879719256799648441969015230149869970995666188948813698624894361280806482429139714866116529158119470022452765281633064197289434669497044123082757675684721647653264133932795134593508440773478131859938165304513489579969164063791458397935680171620262345626409483323836790807083672074492168744733701197073125515072904067215366337493141707730386237974279269551378077261039024228592411050991828039025529383016777249310247948969193015589520213085242542892046769765227282082624017660662603658851195483531514775325229387324733959096976425483833817594989996256874677173238324939049569324076717209196915648272861521944940118180973383735400672560744385941873878182590091256772644107625312944022683136930928396131462040923090401333846044786590833913433395480935555061652260542108472163996907147270371800352918582926182276342445764417905151692078916656867305198827036964575125763319053832137264641367793202609895681588525447117050161200303984742016860709232710606037456075799574977850871184495239524551515125837341845015314956015473024780418709318379653076373579490497564569255093743803919107850849339865521499268523903015879735738179959029302602203609420222954960962545555877493368153245842854060415764246768166722278653165753354375947927052656485684730569462193944700295918440345807346385200837153563772657234642997648352772755297087143491394590196878640962113268766713467680482458518855439292772463498524430313538776866848009315648668274693134832386884213293879393446809449302430443542642819118953426742459349200598773946271311518498762353936757651091509093144921544365061162426187434287999941766718818351918337001165595415808773893081110356028866778231977010750814967578580976019236203358965820305951251969274252821204018625184437277471681772082854723352177648604223575711887553160221191069646463241941367590698991369259412579257278061256327857253833308149033912616744191369780882495988370257609963186523175324222245539815915005483257723267387028636949660978177007178947115567988374117543181762271559142685590596383645917390604506422207039924335866333746394723749989536346757190250924365695677164253575488644876204526395219628070587584149619239679009695154368624383621681352118931777205631740596335235136126633771705015085697044128999824819055126443219120972881383455689395897836685796172819168034997557598464186123177721638052465587199187295740153277799727200724736667682730063710380197837783558711564665747774927117786985114733380027413961228833546808783011994388501020635718349417420182148836759513279586337132653044925763062079522895712124766376090769583919020474982334711197935869859577499033536329384776869782496836596121463214830375367936211009858205377617866246040432699324425912618790827216860550323033567444988106288957942286326420156293845040243303709877469707020087990667692019933985470074037450464235590217551372751251467810812573273688436108400648566109164723949320374299580259972641322350396556426351765403747043209959184224147174639190573948406255116359583496753705019429390093349433396825151445311178967315915203259508785032263408373844857827521622540161327137207154775628958423481130682340051839783883341284691329816242644927630654416850333324650889741426709611877526497873100508315741036587970578456977496809291460659549019440025833407867244387920744559692459090830018553205545001246390347232306560053681502869550131110257789599234880065977676388365932325965129429019009376701960684713015267073497293403280922556118957070110295025582872859517629782692994739050707800179511737742265333368381505061491164303209023788911103598700342174465272028695685769820992051016910191931896827674283975300779036305898212798290932533728488064626007951471488429969813295394354192147354739900971649562024356585839368199406717582390598813156187187666049717231611982768811134871973938851680235534490394794397857010682806822815704601967371969304024096100655683181920159619495943808242829778762232490490663622037188538506476351357204036841570086895432064472388855615801272882363806289571121369046197971393852747109168451427368647864365323880669980101729147647856695119169231526147713659923265046056747554712230977994148843581090833353487108465212836164225680727556726650098896866731811607133365922241706279392073965957552472218190008524414745365283225091983600639458132814315543834126553417007643691558488267222912188621712113789192347946447099320350453029850825785668784664901775651090698173811595904529075343902401344930027218157779228646019793159290990099813546646588339031330531574173557646018093486621471133209487575455369062807662309246991114434893899406237548147318476661559935522828075185819270346837672971997653632756310774132621563351785874299621870286829089488131122927985709721087238661635250836976923471712973677727781840988291600307407972752255206339674395913678807787530588536674624813153784069410651189521348669053858175239796800197694802988152529468381639761925798137809688402417186278343033192984381775264269401918050309988938498740644880679859241288885962553258051952293514217284816912560163866292639902877588547496083254120541043817754914768932490306203697681040770257465963986700764283542218971550950723650051461385477791770142631594197062808197754982990154232053332376225345464996698783425301819269892202884687832495692017539041569754361243566523198647135711500056743037840152034133151602557416810033619161587271517740545126657606568706611552764713800836574939373454143392328891690126141006453586138083808444279785612595614862630418735482235952048827857789201337239956948300114608806126164779671510302555099450200647241877631702941770974073327202783656749417740138679586618526715541637493886887039887441838342568613349915083562323405082625149911708202303776903390975262223791330413776153113634311722968026434506248227961361571139429722067694929008835937549071164008527677651309345469225241785127876023997334489562290825272145495289575509913818597315681143833574083433641013381971849556446322193272133061564993323299905842709559031442647952548251039927546824003087111742678754488986090325189668215603823072943175438017871339479643677804967344707055194801843276871799184430012286228729086030163626971577129505019346271696355273846032017327257647080711393128991221117641450562685261620551965559294485246874866709004117944437495683297561471887703161988094402607599515680258009634548153978432502447792237544824757620317859299397704129212599189188698631642594271061130444558274915866294649029432309098686759131132693538084475730710817496143822607708244839843909822569608159804306351609005770008102229478622346986346984508981208092712475959889506819584464354107907786917668909524348163435569663937773855016483596591398224249040761566342376596801418018814684336487032831067350969079722566823815068932236489826861034904468404402489609432765506455177092057745156945491036908307775303892505075613509701265778024112713101393176431670335033793086557244913856312598351527336104492729346365939792242584102701911732803413280639038741057215115807294963250800563078213461813679740900541518151066467600005351699083739393563658632883309276688408849152862841863181445113880925913932181227074340765427801578717412291629639537164259789632549220869575222680834070764148954712287885393429818715724121885123768984038324358260039588416694626496133145050998868732662024129743439470513666325387456321423171371442753796053982656706985062944191886140532161629310921090766335015848174035691081002464762701160443500957436949486425303045539571977290870653895064699321177435578156476389806876378488747149381716911782429622314279921424041794842737367887166526169562868546969749850758697524687640044736143034181199955776509842117977077628086813086923669357336004402582219337555989308219841581292905389368299437157487845587041328867208824077803361353196948875187994098065389771756989917655844246235316837862988566868428099146782258289144412447855842924102013458637809216107361963650296681453543372893505686298518070368181144932758919367046663654488533815720344332944664780420891877535139016732426291673310713886721569342886622581411514977856155031407001665917328011353642385879759143190172078720753416642372948845428274510829660461579115804656526340004893542789476033836717937367408402427690771206152731333413016544124965634872719389703749674080068862300888736276845152360839182455702155814748631986652692798945192274300525304404847187436081663415495713520807600339081570986056366355599897358358731800967974185247080982671562020356504176364693369148027255369141892598051054454671771952583270465325357234486324522377188145847599757699528010765226030940591469281879654585145065404081156076670734542792114250160776700441601539364835899984642457901279308042535694220292713516484063161187034404132117094533035866110570766056206155811558539335290505233506704632981215535582850045032623212446561855355440951696720302489627758613010937683078439383926724521079545379549325876078167552252490160454339827664533592531811054943406137431703668615366274737138099062361446651357025251662682965360783817882974918098719628651700445331347987576000713101619509782220623606265568666838860835898015385831031968388866343632196733147906502805497654229913788836578262507139658441143870159831377179359788032434398025961714457787751284453821652170227902688518251729815933246567588021022005418724422159905927786726057812588506798013917763212825186233973763978044451503353904203684762398669644175729778261803541285743978102966671051841730200863243941233760052237006135628188015151935211319800255704874918587297571684797582006070979340868686248225573331345860366129519724038982984467534383626033950146219892660259330638713312611332742884223486840762468899126050894779040461925972061755278405198626364280359164284364076140745202700626684700046091120505459180475931198465711291177173272661621723591270731494539789012853520004534678952101887151655623198854391120749309692650153184190941798029267643024162390266509929731775006506152158272417751484261728726436396461701867546410791021750541855213262071145349445477106192523197639856096088204495694300169266744136093703864632806849785865783264079136266073437307339747160504319585301778571646979197395702051995770277037398706000338058183865807467156489823041193640263563678477366101555460598679741162519975696915674280233773327104711312498052229105389717465442948513830624755885194654231802603052225811233223451307764375038462604372690219170633940858529104534167951697835170628674822122085707627867682673314558416301285945778860198251184351749853813258177841522211137190561598196746497253857555427721672746083923596898643157878228959321206514347417299215290476441907182497198071836068229718062743209992807939871616596796806101880743583958681590385604749749317495431007167878259145759554002929400847406980588484003150012380432112173735408472769678638556972168208786095847252183368239441291269718585393259154796044794896913833146843604345737597411724685084313709235068423768082931924318096809336495312237020516084139186062898841875225140471130843030221950184996082675949257287754297748017124263624926979588960803473726934258812845045958771685507266931124314565006205609144934231282730608004648676974272454254160382242147941037785829727828946587528450631910669677294390306269010887674195542502743823940889405711079996506061239417571188333637492810371310527270691498769584126762450274188640192929052562940420148035878956503723480181498603536257349540835053214696500788892117952140784134251028422386483777161496971854346890163679093469089858882636436189426843535667674779198766930040840939427101240145032872995563834846303520243180008866900111129727309453736509130638938521588241838839166003948257919031675101542617039690564292315113817631667550149916309806484422063500243347786560872746074373449020251045182579500721975817257631775400613454809770362139511060438428899174886369868446241876808738481727511089512501999391221727443420940320051139782676228449790828991906182007235504215748413282184788300151341455247943654786040494050985456089779511728484100646638464746866735576234713077286181315137028398842792217404730825928970812403389609614615864011165845040350641542853752506253486831513289539815366792569424596822746062505551460512796984336445407459347033868793595912075481057939986610317399260871436721472498134182539178240138980380984487343112665484869007035692092948287262085910042543326849839888645750622236898657819058122440890831849830385551636913524786251356279976946778369753111430831756938346322940005943768406869018737865014107337701446860533802059712391838697895659752402301938016212348541588083546238416171530021031792598491110929730892373374750734389259804368279402979211916357861033704494893210940196756574476617110798761578482828798694949429396224261690186982115973192962681397458751576254115372977384145093996206631788274558922224332437183428397994153712160853405556467107163473497609852893970379316526351123162160213077690234966804856541878166285883839099471316969386630232279975516148512668120552123503278463938982029576902310541464025426807677029465500739264802605360629264737297968990527356155135708322389882933535698789997671265442228612005711675104928603100581970511010971913082111685093631910314248163531617944617514434971448151164222677373170034269456377195680868318125609350380785768649188520693022848251883897677357450416577870795054645917500309041423241701565043898645262230294391502377313890480432036776907124660778852086718387573713265947181848317007198431831708479464054172772992776099445256642121229197585394804174574145746351397241540694262682787535471284381021715533247036236317863496217198028376409317322865294230727025731129331580842762673944093302587256220836384607349117934829091501588661712464500720582861079764956553138100881344850057800774055940429989767439177067470962162565457059139411516320986504748176668708355905636393651526997734302322569676973442532336553455247756977517641298599908456651431444075195995041297523124994653980898944877121738687565443052798627793618484188684378132631728479773150145183746596592519139899538796286947071002965085207992145976730213764115150708985040767643891628067745685186724815806309143201053236313234039728923207486339197929832235451667296545731106703591503368733777975638850658626490262512133019738866744924570727596616777478097776236518026133500489773012035966772578620126577920842955525418376645309825758774335490565764327971891291768401148583482370358956858648565104091073009042730036314778776236164157181669580781570537224905792564870140248467312863575493650581939319334573780229664508227102196185336933055294157628267824894662790723614997462588371981898564057440557184208985229111116693353929781486746432054085372680670888814600446811780528275743851984037509738922849948377512960945958248822192746021745860557242131095799687825793362753712315977292773062333351033798845421560344705108608439105557809753539912674574177802696110398428517200841112735582781145513930703036247715362573962921825376017885789071360728615285780800586924654377512499628532305043305092047511567490224933554293506452467625624360242039013536103205379380452382393049052085376402809975338959876403447675262543859282923034635430551985638357052801396856269370165135726441184326424428883222542984013976005441859564193142968961700065410071104058774931012393805029873890352361675278644032932894477547985952297667240786534128786228970462874843509897794469965867883002423288797874659799263202236509104708810807634082771691259060062056374764850364827474781672810058493952052708296045575501500546237043088709561646577075753668230416983260751484364880211553052023154965052420195460636299870362328088098227472356023590515303898817341275777233229191923812227204833697423575259786676107431734341221369747637754891498932186271398179362082147699685401578621210982582771785144802514074078776288186995992959843384915886081710319256388041155340357182475446680289975702488430847543040527555768293406975031511233360236816974905686263125087453416302617101932985508243429214639657464780243303581793213915695173919896252036094481705499870273686347810740843515716781565613731307446631425164752098567390996314048363478209925537057308751335512920757684207847401418296591672079462356647060481354270311429410356393175834962132910696026327315019708994478917179930245787173865678369750086887192497167253170692491522520517060673248784405896838763610953045858210043235390701270544123290618476780252332468075016767896209125258129012949896530078592707319119143580691343854715291134935280888644514193791286332891279616382390822748239069892463967520737587123473926775572157303113532796917043006599168332898195775085847106540533818217494513516706727977897842419370933672506726435443390595490607635856964935610532825689883398501929294099309851658965789747472844544311368908965474212290682543269445497259053960192000721835294685299083511797698535329458556885439726732674268344802409060180925629833483735722114365756251599136500194137066155633002258311012732392263225628496076332069003910322946696480034212674548111709654478573046667540433722993633817127976042153256956143390251505516795734289542798893153796832972199517001433096510014539990045359528997307012456061642030982129579212331676700102308398618864126086270380245381842468788818862653539163094898612435875768922381838395469454164726025774896656450922770126152650606649492846099201146125394773595477619039028968034264478454939693681719955720322398527375588138965831673002666052752077178513815791900111375334245336399074170598233961049617485770795425018850704036874455661551831321978469578816780640049885006097174825435547376826089697904959739688464839560960601425298816085784671042093053806264271555801523130357784663951523021495019892380329413908151680722209913104865708318383747287868274653730667346750820428919537467584966609734178144652820538234268733423633815741888259457005682786584976572493546149403907564219051719010799646123762878336252177113166634559186876070536083967882227060031029397101263748487639836609897656745005938392365809285786448415796240611667094670618454628150245717806713918671890091636241441769211712437776265258104281883806814878842591845172270918121196928347471787000409219973756729704951326529305088186284983949551204182572576364353124262587990185739217584807195437433998809091949154325408386077640236241253685385362231287912649271993729082018045445174227490476840794678845728371835045832036602739643880471696511124291263032320095214966449289737253504124752168873211899306526820244131179461221247462802687771554194177953405058814758931110771165689474282404612382835599248546572844440285085588328891162843231959991028707795425583524623176131509663403574807455756141990898919639604278172144064504173696327661663254132005937205990477827488558616808323465110061598273068990241504875801297888450050253465372671223395492961471119441897958492547623725632706392677715276928318692097042449525700491978052543532800311956059203021996184220282030231185696025753131026805318094087662295242311605140872449254663049387645143890976125526152804294818099127086756413759806026605991542741437340920429811013357812996925372342744641209565511434792728302242303473941283698495692132819814120326125737283229506193172505070927363785912838119568160461214192793688224722543587888137701891282933548267187985487073573854718439987227171407192098778213658107384894865822667385905273867526614450507222685309749507152958000050657063814028816454775025694545089397161596428321509914419691855074702535695651194255289608823297008126016453014918595523338188188653555709946537374866571992890065980107177589480581280052882315414565632249249165595240378140039166342064178757576955572829268483365658025015652656141061771504809895014569907922736048170071224632696299526084932335872399722706461247716813996113073284638080362538111733772261247046422644213840258188951909183024612644905884762895456098988631005221890940104617176184257382298592474936301196729568332240253405803683487592927114221486327601308672517177010416882927118915959631011558791809781111652662848588466216624303676614422975722700736267654820945325464147308197419270926992216128667152640294808552361495183640909945784169835265269469447808786580760680342691657317098415905422709969991621441602902961234745762820169471918618993230614734972531964833405365331208679405601401877050543062899690772215263893925995955771326509691180137796540632937290203623845452261649423972367251155919774919754563870835645371242114409027631221922677325248908968197625204455358625161557885296888052665081811540432853043328713319665326365754258762104455748735459878776317250275598725680889294184540979505865903412564692039668691720911063011465754574663460907080586254206436860794970895957355234916872445808622682276068567991696009129185614926345882059418487817512707045880402834761439176465718265714538201514089400922580245658834229878761446202111898739077271007237572060579024710295053031105094350117654151037263650879059173578428661906920207903603933475013647666028957623718491141956253098719392034509259467746622033898126956930701491247337907645250247542881655985948814868926267453297045127307658785870652926550256528794692398335102302630599614171494319181136587199525831025619813135405399960670063373257116167704111070161903026646337446635306350839886493081503220244111988278084761263747654884177079282120839377801188019077580082936741472521776615919189431024266246089031255809861391189819788700047272680381795284882330640771517242091804708827715686062813892224938773899472077637403616916632769948541024215147045645729713698485800140941550256320740397997373725485338544609796557185332861029764265758404445411341735950987284485696847977581373897599163587044820645370543088237164139699021789858844940162943029002979745299365356363265876386145775262853557963258882103969347417109716063613985043431210646224613697676152130720171820998793507103079422983230300527465706107131250690915677142626297554022779036799127201784212783721213791323671632213884126938496021520629874213883685423427108730050690049219858503208178653109548724620613637532986983194078637840602074887029810769762857955243256254421750579382600698423427801373599082888875218586156070887366487796089007660465322929684093464652171563817806691681989962691711106739483414655894637099612499946502799839564843742889315571268077800586075461292649376035807180358517016066606620586878882051042071684220376894164105741380262969913957309773158169747749921245917256220991562251056811871268950960037476236385235623280158172715881226278460495273106571625050081395460243435899696789746013586567892371397718929781157278610285411702664050504299392036549076865965966173107004444038076976793810037918421047370448786798114345911424832104283435185968793291610611809244457640130494682498129244184270485774023262656454670959499607406907747093986954263566921956685175304937171522517468885725367879400991424175812377642559017519029505129809893818861640167619712698174610710832159141161661814968847911744104787135299468072210102365183426784314257899545092829018321208655648052598738136866815002300935644843078570549698484618779356546794143298015698961590415216610192418160226964815911882817609884425200388988585242054977833205018017268381107634407058645061303807801096010089045619821367430497085109767017703219898081686028238927438054428260223181050313178851747166250734394749906376317628149312954916835452892777319649169530356234415288997359345279750335478221387111502986355581839303886387466490500946595205658064049597421912925444576845823510267719089737923125411421383871786948419382231252079585824048197474460127637448139419970841667966111393809558315323218516573216340959019602861612109358306647936583858789091510899290322113805780400379968023397965821188425319732151318501064187903060092389272661427646056612388449096199894412546582790858222857222184970368017108697080050888114973823557887824858079021679692705734063195301730020999428195237480828784968124846552051668374983462795298038872478923399246852969558016826145083786820716722819952736244237543358096584171147367101685396001431921767089098754592193540866879011953781571059878502605084716927502159836509728913886029180221966453402096773042273947237999059039738681518523221060668632150708456936706965939255354498860430799045860014094173669273145495439566230674762988861052486786697865982948138749769864325279739425792750110080964525930431061869311141901348828684903495005951637610853510462344285342399013986847737780174397682865308090345711582611648086376733716556505883663275278236875834270576183218940382326474643293621070287317772001126649118617768012775866202693517284636328887431051946042921613063080668329868103423712898012323995498993172026325405337285863387340630396365066982526160037915529334450199164527086037010635209531657496206298717919790806037475949168161381737523662425367868732550534212207002318058805553401351428775172553121818918525309579748503759370003008887766496895609460446437391794673831162138892816689312969938031533307759701664541677866584786904228446461843305741423940898065290407573352221984089048155141155605693297824005711412663652020144532465270084866387905463829353043318510236738317105080878138561916670608593793981944317708519436130898028433330597465761368145126383192483847202421560921952657344514795160615887198883176859733743807577886303638775182786314053856923229771329686199327330276596046635205816467297551387492023098710305172513427207992174199711145171246602020724790818036786644676974338125836789810993794869137750947753765265123798037569344618412890147893431337446258488478531474197205336891128831309844523295846303780158155063756499902579410159680218682313916177594153940496954115773042644629343047758928854250395373234316219076913788183351688132640428627785765578481921428959257978468655808394923659730476812502733862241949530475086041435904092987813746149199193173338057042937284228372610635521625344055196074022563229149047776992555897129385643300948054730645511133577822722226859752263828205913379731839168448322619636801312272976920103204330825874342887757844813305095115005019298737614842659494940875153630762585252340889315618294369924649630962734219693058112151498343882332728928003536434637747230435681385801510560876693114081915609724989593002083894376333660862208359816195141687336236396408801875582084844815965835614970335463850551185329244127195074990210705071460443902596718762591489826053986267891123882281639648204573952369695340943983148492233073316297040370830165893178750390376514788326686957957848478783568198478624389572640674430544843735183911278390031631829193979630496279759491850354632674875049428021936701736533995448759544720554606898301686409359317452397029257968603160834648800959140470934012424423313025003934150353897974849609244052544743122967780877799754847173926196158340591730868092591953756127094631265702932908611099862507861035207850229120471796020463750814314368464794514771680004162602221605336230176091775938891974199705823611720530267779781646948593393836733481087523916675858589510419058874607591500151452468043558926346120201757387225035952670551233115985988737235907582342233043127592471857808334863911871426120724995598854693531767599498441049651890876480231861738794689865058278482888160589978330932533468393043867267310113551302466510775962966791825215782300757293383769331730923223153186037107611885496618876743101714145756786356239731729809948755182276220517448110569559166573168533594251059769203453279575629817494952571727993641588670671795263449138300857657998063559366499087557326169915788147013612921873765487222781993537592194151187842963790976496521889323877355678106512833712471864100814276224672552808565125569705393319021059123333701722455207308465634099797116889293419111748974151183693200691692646083605792769630423569966832400934268731778681875034349804104501836802992887269448936192903100392453783907432651286221229172719027551816325080730461306935849765366653428406613187604477441733518467213493859456257616308865287652214104867416287290086933816736497868327465538463943620366056082730976688245312704030678996432327289535580509076328749184488535732471377594199093440372469954690915232604024609896057268448917453212486636208226991001371717773116418231859326015852301311965435591374934909254993651910314015833880323204000429272187596251656568096398785523445862714410853051598647869615273071413633918805313294500332172041858282932815406221927940496295350114338173800410439490782144430565438371399821572005909707389239326778066530928037257573732837423519442437385322575226476141157206301449903280371268973083502114869880758981667543492714094813892821315332738744746284427281991278377920452327476553739201081433599370132157503828454457102965170411640592991196015689249964224121816626681549931584530567966335159730259509126094717278204446027247829348205044644648519783347968187712652997644437466741102476061768797505098328000038349781862742673890323093292089386365263302517185540171963239858991005447086646068738528229293032962998099508416724404102366040858041525374661209687651436594305050659813015459313694233656741981178285637798122211871095858717623614662170949631109592827476644101931211654884350493915747414638383479155293547843233636127568069673179673947076806796126355079665421107767208346924327179193553027904253857666846908664773370067222392038524073106015646210242038467885875031221453822960406359092250966486881430253654111089453111620299164240724659618251950170474961169532195045430502364052243969029967123165239635448492440731344846898939372285211863143741646027433201226477845483036960757302552692009178115124687365826520058286335481727389722031366141526452082049698213789309138136434585514040884870267823909254304682327971084977783993385524800724735672303480079751131845635934494778173115330037313942861544358781995802626858107393610270575312182510826019542544601595843519520409214485855094470599689030282495984332102012928376692589153990289450533949923404847587895523837575248811701779435190307665768580611079673248903927199193254856442202086289253178919944480251293303617646658397598096235575344889528901378402223890162873822629778847179862143926564999041488937244182920515558858741405388287595554192258414735826492452700146904035463699159939344781955208633967401245976959916751076148481202587123818229910898283393583641992279440946656706454087216942035417334267554914309954573226414762060018259851214164542240756319825705595237689312084144849930800133774781636456581214291465538644803167261171349738831800982061289528948557681286325822603111080622882443435664120301563804911649009583633494258922845875388443374501691906082634816099108676399661981294989086681662998399533439165323715361172977542731814576304165968129060222071275332271090773902578162920857583531825968023407272028085392839034823527324439826281069718971045365209211991213605354866605106307412733859152893482284273665059439261095574302490636602692868529143022779123321281285515564801049623487365888414372843298087858694505243597095102939645010528591132884847985726567138306622381853736629371327804363278684451040443661377235858306616844865162990724099119542215260868779513909245643761548484374585226257738470802759172646409778124098640031273484176392351981200694949458564990172557681405521541566761042917831421522722919817880545580058272924676672604796612898489285774230594161371785418043479337002946207859611476489313921796593903576984965604954204782158058261617493716391629404286801408091686081155796039278348057249928337170412040451866051223748683254645317652948203978689998089195673226652094333140453670248941521584269775479758366401408230358096046623466597890987102310301207923460811840703365968278716619335611132149925312341716606205560400179076819516996726199651158412822751889875507100156540139494393634816462778739455460677464913935232008240666273532529396755196182885621162347341051650020499286821905436603241141535743184431183215300717019799019705308763949066969853635394944598664556963424650301610135195369001715857362415590836466305023493026904557198875832898862167021087872106587084472782695348418868774141954047364477802995473350667969101961075537971389309279692609866951339360653741735078357422505830628936119101738130720789014296007909388130122034479906715315798920415654598540712523970992120359736507349730204522535777367037703780561799082009690923411337049284118627161360849573531237858578898078410378437447627536672677843937812296438772080132639788202245617361948260023526577877837680242674469546137169358210898834486824774420283946622607978705800255872896750783609606963707308613266319216548096976005030462518752454523460338061007168226580650358246132214224862171481978027911134837081886730028696684698301942425489524156334739280702315413364180261650607720555125400036361115696718972295140683753468774026753891604983235238449635122973214199342212249282731537428609928582824479451926948500326850876004542306412707334777751148200728847807311768214968699897857910410821493867761941668117524766627039301846743150805857987746915782691761730173925729493912099162238777738568662517570079389780409562918002398430229472186857035262217808290862787112287091692332157605070158993189794592130106768603310672339240362008015160397063748582543227519605290910706470747823153247973133426308015726204056720020780226336838573121087536898650113537209362714152695921071939139187142019355345097663837117294365735524201199790116334851216141500143927904847746272091204922292566007121516407946090503537144303924840307387361103450905618102645946754732510001474741872130537612106105621865449922381944490873672031274693538182317688190281666408513357809137462976180415865040506186993747353829465960172770895894243138660396246854805661911391389077077663042800668349829825131540596366150269022428235180868320113443181576665649093530305799485951456717954116053246958756892863599017859793532387022477890067287386605551195101985062657137163181200827029637538115063440758200347561523370390081639783527510966526720709512529100717925588668239607300735014946535316330524718443260124459662766757559258915393076566577939345884459287533685215073272242318495635069798376539302352083495312726615576170835244064773205492173290369742393788163152949193408136151121677763942841211974075618103109089503078508853668915696572901882176448507767391098266776872854707584508199671875495790975822596092177269434415168679378399026096515171486831111297428763847508337349216463341345961574116084534675777414161336804769872094625537191834378887271270134768015789080101939685122001283158780534141327770339050172537340206040630732664343995854111347861821701057673738313401247162035040954210316246990563803597358241904786842580418065278502468955627286008481548627397575301541157200147543508913240213485895574567890138568227372686277482927050105720156196598837828472886215315462224431160701650585649740429077070390766710412356688093520935785091765652173865879207640192694405765401213362537415032838758587361552727881082514997104609252585464701734756868685674766737716351571842610259869172135457515773921666613373119783487169437648989462557519125741083474406519495107013725249172220894827837558279420094639102702152143765595389546377637175466928058261786191628239523065490818870799239378193298523345154711062842097328079274857679364764917690371151918343448440630122940215152277517442052169106559003128218378802577366636871891167127463430621838257043905961763633433995287773219937575938781178950203734820148801924865035476063757219988065819879266431422976191762737446951078182688548050161395657640688413197220720446634109981999167168136562612514012441168297434560983885809653275129731131608812531610494647757154624199286523758575194138868026414652455612973349795261341197443765533473960769343089779090332567053155844212446840892006755086056938126900211293944777239692137375135626910872018207842257301468594618498297344549859404722496737971001328616053419803990030385215845576264661436220574615107302371423860662646436985177972147772175326242110394734515687709186014983406942665881028507087675621587714473360061636518978715263980149272118790896984307564423152959141018324177174307413586335446588941802836123599262405730168520926058653112386729479145163059854227294042491803877855250653759969594262059912918910632242587447744747250677209491522396453169677998189336278679931360257933690113699867770057125409191022388539655903654805387168516588629929427842361272721520842630875570878887468491218031767505624514453248270331652885699403483026686623967639952213926023344887960914638399211564640181174080864960699021099081866379990868017383918999439932042484915802145283084220582982983106677293352380887281976503222109582842403070978863914274019607626294525141527170113330381701430362636463417904773764070365730583827449700723563755722086971495584340472866982993666967345631968376358084613522675687414347715132294914741285908216990856958263326915766596145599208947075444257317040396870897617348983061502368154524452953087911110160869380239734632557914936548834770165492211506886757248356458266859683620099769318621165604957815324546441849336948834696057428730193700102954213410342840175107060383245408592428233895796892054821579949233909470695055974735639882558782723425716748445870366584022506112771358605913299613569076486779989999850473548615337412076238759450151226166933207933432151787271552571859197286380692613541647526298276716649948847190054233277012779207181499496949200207349351748500463170810921026562403497402815147282960263230844151246510614202720586441654862704017695949153325716517984412955266470848814331937016226925171690812462510790172535519349682526971483168751468730968385879902464080304668981491671732223214710048135082555145626567650657048770784160185619757888513001182440823229685003192105649687390145958227283670248910031564634920022217960725573427634114488647719377992856818498577924827790803700945340180977446977213170821775081194909481795228132452066876686751218514084277547972701062563048623623352379056326908464840891203887221199735048595046725400142619489176598892921812922636909860304679636438443365124134884029067636068635207831136718067836237800566909137403926783375801172186132798560478791903937811447627218436450201224823590526872986513033705408727076904477176768473671922474992682294058605196585467082411416202653601141981567087581975428765858997077417706569110034472008288589492873148160220036054902339868569444504362343858381675073815384539338190187785852815411866936538951674406003227816870386400185377617453366176495643436653876888010715180604723196494541580047182854065654293872498098481177666820216878588825065170632962343302383571428637483865508361872813401059197805489470578230882849938600475456146111153471786074337598310477633942618938710756297647329787798363890176565528289762489064649123793867783970192807215532718850519312175507950234563583346383866314404019510169593960271003155840224787211612589542199092247383023388274734990726977798599038828764514314657361369134807725573169611228401064393228517093961662445525064087836859598866208083486784646619718870424266753287534219375631137579647706078228187303213036554722218887381614635813396552813832443251761202271153591630107260895796364397232594576498099173167684231956343578650428932043001465096602404482029615217486860182624327327894511932235557081980893221938485862351751817870806787671301636414603403009924329545511675509792717634729739639984554251213148108230746551093295957003228133648058634115568456677795022046875070460159182656878123735998143385218609929378726626367100503918871693080193785315629731481087742112807106221196996730278683419402492398825253052578599504547267674619620537350437291258396636052582059225378359481582874488959004408646060749220845648038374034035627953653638860285821977251584615316630006133227540863483987377473988442507440575625321014054026026579974545073948315008674875646773269763492553223258881776223054552845562560686387036472026395036427181041951777007783189121203587861119442979533611795188034277830137212724226312475673446639671535277485059832999641938777035520190527693724578069661329951537783842686931516957265727355352754745350692037285721767606683607169550919075194383684711900784794494344028158242270460248924818073225908923646121554116865420571082626667186830579519081850626897329395704224928173978248021897955103292069215764720638953220651533840238702919588901993285036954926550731740738874899242482127475794779229166588484728577904027908754732474315810700289862798023447556738934770142404462197930203397006137295871683650111069113035581077145124986171136165880233533028952207590938221314379416303240207758340456233088043781148797763107418546311958669722090772148952212616675712293246711687560653044250223846219228833114918054635981356952181120909220025577345952553940536542749328278359189636174566882007318050581293922381729047024469861401579439288990709341731559412231250875374653546898333556693908535821433878850551664696646963983168944988274974025073650467578797376419164304290209142182143473337029825249751209423552443504071240902228302316963818608690654348359953571154568686681373748984345200796294870112577144467975009996863339401120822118221655494820913991308503367203631062308725105303191615066228452561024795606403573831121998553972757276196994601827740002042048513719887341605704471029416490987447401710978839921983895374181841713505968169670325212868780437903419771548951963034715307607958579268633105344196441413207085940210661165282992455487337223238579529678179944017646213988650253834837330637096466475349009332669258612821249122441663330426879715317598253246196104935753080107863928018666820297055596681166504637155205379833869601681896102362747691208004771127438814943050112601603319901926063584059831708984260728220568526783063601589597025323696181289878554356929571580544839163210746069292641315058339290725167998073476003649370068308704688914710734122600333234931103780283612733943100723366241885973927892243372333457898324039644051672933722255626247235837748454817801743483993497764320068777869948783167827751623193699954323589734381819226291005599223555895752671979692693856125102552740862894600497046806784783727330665689884116827948030145287444042339527703739570617153918713931547575958998013726347603637081923460119956098307024323735994816971420800901263467554207412820659832025508111001511484472082074864983769371169958333468003572522661053242253385518978405369330060173852997043796866924598443799286518257277508524058478006164223995522545976812466345356599356997859827960889731218784183086616643502666205877786928174892730919647888682522633191950823473000071933263444477027142991888032192873549284273708501016110714882606510756683927667552709713648594428755302442038080644409769747007782555764720519168669352588897552845447308981350401986241637593792989055194440879450997724661355022786775422961446605931350936403859640423091343093893612042268026803576346482908461896142202145625973886036201858616699731983698459281996467526281200756235744378463209926882621729707670387479077030698109737765112755200541160314301467585218950496082035786745176596331666667966005731301431168595443912102532520076802557186347708750908840325069768786729457694578507848040891871783351147131517393676537930583900796262798410373962489963119000274919481380628861816258427184261078227095052786401765826944129444062678647408666980396973296498785500376781632450190719265964952811826581623064896263727317262294251017787658773345808861629487374927232023734847423870455985403702137528256720756503430741545733625124941764685292521689984236493208703746003619435259592507897474992697214662119887689239946199952443237161936837724277428198578429083349731772519588022895242278299119424449340379626770067106256406049928170127966120941917461288407957108551537603498177551158228598451260388038110934595830938029493015057171226910609097572215530609078395592110536767383240276388692388217078084288274636717576110677054162590641616705265417896624452596228246139207367357347905258134369215645640818846053173951242569254178215395733788672445007709012088529438253108238383393826427102276918513375797278958984484920140218884801330458026129559268436555199285264100482627022807173325841137253240506646616290522514693849932513861973973611314684839507126660139818026220864947882165529730452223207745247494897826141954422114280478435162582842117960695878064926634880875161408708362603248259808731286394190232043221175932111075353172378658156957923954472965146156765431076082371520668423657428398528700252547248976383169013878368093802484116902675526299425337746504811081767241803028107978173181748372838296611551611225784754257104795690339181926719881962055569263675053714218340576959973058522227315772387755123227570637199638380097598578917821334417889823815952745079028233693703477917084568338370310354843897131475260787576561420543259734735790862803518141077303927984042746830440204759382382049756284105132523218615591451159839458212282948547553438280796040879687990337102345811476092770427603522195734282825417640299639807094264248504899748814474621952066726559641782916123917214301921291584675257882343971932934241640332674761885405427414649051709676258315619053332786993811181882518422450397627181180766132330114828189632766980436488909106319676273148611944278107634454832498524001711213558240786949135274337896740643823193420381046607634195011800290429771608428194026264683251493570353707185733937758738623458130792962632754165840827671142691215839361832020150785991824169047766052810818766458480012244342621978592768151368463397506820647952139909483050183550462713420947474756594305747658486847604355527632873871514052288953617929104885309722852613064416581329797937644132777274446103686278897032262474288168515568146650678454597505594077390035355085167010524398149487585644504697929190225697835632499777041314403680193996318008071069828916273063248760064760174579499575616357466824022071494421001232911475316371614192695446719590085931902877700158460532947156158962182470914027744896349308002536969757659583496556367953231670829166071095495487855924494718279414561764531521736468795264369450690118311985259775902754398596548392129326832055331462866747032572968731264724222067196108573023287570967053610348232614348048311493000742774928528627952158709476245630130356820182441075371904126011933211524450081815735715965377919053896134729941781641312239574861598458395902367683800520486197280602303685751956708117178749896986259677223572541889695610079579637511725651897874873078667547534195785332766306410341966204047775616199436251869348600920740084558561876890725729019541034158777729201656573395464579052353791974069400764594999461935229645132364616464759734662375594304599814915053373220832341186862713929634331954213303471998673433052350493900060675418593874698792116636678469521154104761526103646951471235744424180292236104819918269895962801051720010449610180693745296378978348759815030946781618310989369331466633057196663633877626914247094471764842309894164675052149667561233973767807806637168611562853541917973275769435334270825093040656771544554906292948525290951181743580936829248686305451873804096059250368941400084305605687525576904597155055511841071295308841072091615753122182079429364172754929013333008178699844022491032154339679348722481132895666083067733501064372087869255222228135512565785102887792704347644120982120407153004617814579418320782837995146076194451836246643055712254967940493425910281097353942204562909132230731080897616054299299226296062518433257657475930299632730838279469946891606300482354547325444477872259604636519708852597896206149846991566832780439176442040232379174667177013741848240738175716607957886196867454145446650498557997161113244830250961299850219185378148779233182139764810050933301880233633187954687819800341043556434352755819857984237621225044000648958282099628693054874552699446166035423889509384103363923432630407083425592044029556449841656036456937732405630759689263798366379892153410713785064981270915135619245073476031171122394996369729361931011547868289034784687158529140807218694902558494724929377268409422128409813461155663201688049603338720194097562300704231288370562873914210205468829525454758744285808868762002016180755178831752092318430286627709614153828163989439637494032552587628497944051817711541249672449926558988629822480044617729166911643837586582783181707151214438947476300203951999707871429643355714047220959507929946271115853031539011274049594281224668060182600584333334956400484822699797721739549405161582407613082323982257332453869172988062286094447302234306730023110554020477471387218923217222690688160750323491245076138872136499909411567723989532090377204860326461182626219670496731173192538959977536396237437538944039188663591684804698994233515113253954036461677159072465264583243381279985162409567178800154198359571074040486083500222222484285340037083127571916705637935539599512012832173615001668040554257872939578018632179112744518790368481710008874634820165466953538795011018652456604882584184549365253998585392769027174540134633099787930084228878767336417459633938935275906713622247639971639825327907629317099303511574429046753252327053703475195739592156546205358241451765307379127489426555800285447737783858203467828869743073956758434702921484269531154569009617922176375709462893919516801899923065574140779376534068257151407380026074278755345498120415839182002430540224524925243012287191049603039599049351686012095403966324981106454206526056374263795046527856641746279806794068444721350560458526075033626188882167140694732023235784838824191735881792113314704159942595579226074454079584696166811717697540630515244103665558508940796905925338851588505278392131787347753388256936552583071209241142150575481173290442621544286457175170729022306064454008734771194213496932116672343586572455909415383637449507718751157232283959076078955952968450494261587407039437409641774770269762388879546018973835675755852894051669993073286290606027170265863493825814811417537237196971589246950993073087813806857441249453712943700935300433577278117937277635968360103517790413225990669452862405897627506617730115703777209091975873529574360792906136676871558112591899495639729517736549105761872803066377736340912473393170702960037798234813653108740608405701569123473574860536835270599378155865819482410373278042984537803298154817700157358085201506423864649026241961956219606712239837782835736474052066245323161661493486411648971735701825250063805642072756533682115777731748906585423318233403009204320610629108392548012856046539554542892195792197510324153548654449160707091364326394241702396073085715986164633832871213933086601273863217475622086987339793328315136818541639302552147664952136478806131025552689026473045209280079484916178300428198426881093409591610616898186280683456553427468856878747483189986835493609781330832043020996972751149913024149313305763288593818705441152040731118477012663145637463562147251824374755378634817831882592386282420947215466111380720708023069303266156473060806401450755939243108853308582167243589234111258872783314389034286568725663140825911945648625926741329859976523672580417288793703628864628457499041707711017745502441269823901297140154214091642513702148144738198922096063747431338296973051723662194989436323353404519747907104045326178927305473709752309449796555837982279893728261739816488313548774208010988488570568704870726299233416013944413377959802305155373049674286006697481693395003271924391695413613812536141420665370956294037210062966066024576194313720159430408036830010451547741986724174898731437523612021864136596116428846041935179636261201561284440889838581480112151884308560124903640791058421281149941288692255993376849830315019339333234633430602820232961982204109131628846159582657008649396665227201721206392974823569069236986458381121795130352254176266290896210380365848412157588764372028499160301466637642502087643441822470989145910436984216844081907598851477287125108097881188100427060615923915966749712241423484786205719261875459690770118692016199704469613508311967970575737444955641620863955798707919944445390268590161596355319497857521772429013709495771756266036822562871292280409280662902749110053092615776851013474554746035988645122006391546218519050198624406185668520440686503616361416804664271186033448823900652896585376205788527719988762523012405752512461464734783586112178600714748304745209349185535748054090386895130433717288301628442661066267605280706290808481427205044246074525510611818028036865808703386244334909252731908343625591627427608451991467187631243416433954464328868747062197931663120782093108638878995311918652979601294175722819556205953289180437611807913003853029047599451194782583986530450169198074488149669447571820692919124874102852697495679103757796200614404409708566730592167768702011094125334283336437363532060925730570065142537387703739756079853729707257809321309794162848789175934609074835676428757025146415544324199376488466602621697987470995888762125870201143143783626618007300187396715113435202590245605348522928654418404199093431602889387382290310732876448692403535075187748658452591237477772368492213929894090576087950829232884867540895359778327453443514883758447108689374614710382143120000081911401601539034462920431928610045020744127850097884881218385500779170818574118357432717044380595799914577025141904323975297134450083317444941957688267930988154789133426391303795451776846941421335179294792848059396931688919467989537230237697098914254491526490869434973579421554577190295776403175761506861848190364199457679402465848019896239819997830326523010904914129147882592430035201959909631253185527447300271887734726378786995308850560673381931037609968086025725620316791904208278997136223793062414089833440631504841569532882538795265980411173687242780684173286867332607627171474869172438804838295359061711036115656901356758397015853640969222238753485091282311314241353619395643380486982987569872279703953832760302052512156538585112409049103286143966648410372112140147633739413167638962673957955042648221020142519071628645216324696545314486223396007031252484527240164267666513237854501503676968901692794150029715902167663351563930827217419874224524260653070176913124765041095510008698132650845492148868397391258002771372594497237565959472492200119335049884095783522908435537735665213916262350775402688041830020661741877636020963984886098135284728583268269012874303260251917957711259411367889624379019085242729907495831277792452327424910214769542044431875029799526481089110762180641264884757616285717974736268228063036892947357825202947929318315382188555343902222230861417067012608479011541491032617555154117364996849396650126784511776912370341543107386120755118313035398067513909668437545437100812665509799943997108814190627987014589593891500444342416705360534709673599183484272824469164564774459172679123360872076672876588674319123422382004453329609446116436948060892725596266253421434452685480313816899018830973810887186091868377288315713348190709565392038617229319769693670189873788233193496512921189407288812357417250340153359323265334526037749486923137975380686811559829979286819802606127471833916802501770656410066676471858904630588847604552632391722301437758295508951241696886181130886842709896958370876712307991925432055971214789084764363596743463398808793861807415850672300864807464965824090153283980125531103487062496295294174116564571681653012193269194548593992724399955985985964052293072797265785720258988346711075071062858371105522698629829958392437763222082515581262576168669867027989986516467034460174998906930925682740149548862114881474302850878528081324938229684151890705910622801317852070620059002953785263467117607016489516662982160628738581920923296825098090685217257965534759389693912801962149762115777738987081490842267004208785754952965920477680088278138848535628110348408608273941340471374387913757456484703208693880493576180104469695082582050345401961537329251807695120151742945111053999848051965218733847209149592172533521555708655007175888989641159492734360027235232335660668994460897218117847021583716619096769372023435090745852433582678412184835851924385818577795320529061208572012307061657618458613072831278566653862858069986356348436400569160777306776019902309666915907491594384363519381424754607981526654764602532549773993452205173501207466585439186784335245406549772033025762397893524539624558343668332541415073247652066836024422469622022654187765840364108312120576639320476028878227796488559970911932560196988413743202814380604939021512331654967912637240844391533342662671489379089152020730909895691962204652069580266775620570289271980160329848967390584136041750117742316994184280713974762406621455954898366491631659630261241516599895030484150989306043975883491775471943422229059071376461950914205469674645557512206105399341086814619866980367868513405858297410565140876448091105697214026893597108931917765005877979707796157845111434596341542864478180966174166587374816253688813171909905712754181806582638687672793441483258613747425621818729591515742464604381822670675715902809750233822010951352948665193427517320230760848064497719886215789833607425804959386592084365855560844230229949020068947023290895372412076515710276342403112769954021466181571847001847501733633031962842189706018055227119613101149589259090423436418404343512572768613852073331379922325624459659347712425258377274698900686966657179804711292311887667815465872207290267869513835620205886882995700280799526932829081452789659103129411242795681000382963933200885102769097707777002991678959149950177873871489601523868119224699779593691072923905211987605699039790546535472408671492562679838164530052657560953226896410354869161078973034106138911717980691074385509548214359883087555946139016958314551317225255573272099077798587574729583372745946269221132424655945886191124221081170862128192153577751909130412368188247345186070316632307191432749454884139474375133666255579773018244335541584257611572853268845090085071763719301533944107235280076049773052078440743846126991797815205252671251808776854166888362885210081255198632532414267527217702564271924059709558933819655475540183122187440076474976179451202239910702131647115393314141162187452399471482727866060432891848829696973321585537699968156852885398598192595976793633617131478618352578198499115094021912918096737681269863138925531448853606982854612898564284395676014447026754761406804097844173091168691557054374355240230906950580873349794654506071357861763101754045068834160464156777799940277096553078599230888864980426307943463698026223196497105090435603361300957958073242329255835207969422540286264984285279011378379632437927470893683648612703380351294723822376646280167906982380987547558626471229463532493946960044824752152852885241206361122756639411689269480371210328058945586727008963474436914290987046976674687463049936336476198716356652019141472583316988567612036401910109345397962233493600859904782734362433276950117838785341666442930484733296311014440210404508102674972867273237611187002273938452541748433693115165296405723699699151542720998533161748312561823209647544356877250816233270041720502468077599930094424346137089812822045991159307234665602570164683270124074205728816684821792063293315187326916695783119519082293475561645422299929159830551789562759586848627854244535334127198274372537359350272120980156074568141752433570734202069552960971972155949676351462301007454253889976714340085836547149956339792088397982142164955960577241777016433688750363986627665566595974110760286922805217450411167913031559428851501463955629806884428776790500515276877971591762147743040980979073430575574487311497077116922022689860314015543716236817228484036084924248146661696939851716049048306001507983812770528102079783661857286182961685028807315805223641025960698719356130701802240330137159663683407725025143471580828446482971527162421143177425639572865917194094637587315825421666300116355513451541946638127339025290416303659872461671112340428940549682322169408082571298244213168617046667764100593590523275186713464310763208209987688159940628963571977459496993505528153414106879511101550050488385616850019889443000253118450698933579077995927293945477928890157214398645434660749472399264443658019490277223334165962389510455568339562291795423001731715587583518664762444319859457789561643885771351144231905230407502479226782209780260379380452821200272822826154185023266458180317646606997905761484339529666881296758289074497812169510193720143755986059623841218862398205388248466457967784178553239795032397766358364988783204253172496848110544777048445367179443117270525886695320669919533194244486315772140101111884785630225826168330594725548579066001861079273627953496355483030080252262520542462749113637350981089702134784216801893037744650471626835029766700203605601331604184499241570945453307785441070853251603625876383838527365585518602131320748141470677802658302236524369867409681249841412512461689475944151819151672096704751722981512201737131189733091278130831921502389344136073401555765750784316104919198215524579682932990888083702066205076476701650459814772287326162579798279340048178565501476553987557695709914589956921083442189179428976074607415359974204534888877961453989020467540404091995121474134970070778150123700129725657678297644891277125844523657527288347990102457002304632167715117035759834063461846342763240093383809137782947923042951748342180256785624742284144035945559052967955937764656618339410081995202723823720393715030677003501899796300024280392463890109102832265872482106467063705718140462047236408423034693364443404994511194749971645770826902842400475688521393447768755475872214142949979260843692348195460159994615226962791048473633817568363746428250583304246549864140743485268666493447482785859275285159259818152387415140287794372161741254494703998113301480426473041944670190121646971971592374677364399350270832626566573036710461427363089129406916525215760071062249195446694109775388636824591318962888307785841594281691049913426594036838903424108862654181298730647711680052002385198751975311927477975607494805677879805940831362020736944066214685608781334148884558802662021045567623679595539050825976116306724104354870098581654012233820167193374917633228235881470221249024481478163039991836558417844297991774792122174860472600389468000150707862852605553745661047583214022854885096518309186271169644319936681714371895379044498688188934289138823613615618050447876491830400732409711032641019461905748976164225499479633525410783526241030978906001191058072118349730293653738725454683038861729311108565177249884667812520631392061402339256984879530532946922494573090669028316165961711590640622948201896948074943329535868606931972813945726114370278540684980072561705791448983977335535860140415139327569999379224757366382595529844126081599102091381082012174113653573869451995939758280963421402413725854712002647870810383805626775073625148555243108518685522688289786312255218946813779702393894113006786514043178826746223741322408950716332287418218132931667125732416820483779558688581430058975266117674974062653900480906038571143550354589553682195485839300320582483326185098142176372210916688692858404441326799446904370327732939367360994567233153066212690396627718621889482746712132127035749153122970517263836398454463677678730069864367617468627398810716060110847024997309168704885150003089377826001856835000476501560097429945098701330820704722276666716883129825833113849221497169548527255002540465146221045355737371767709113640805517952064442803393214200453638529083200156828864541356076333226952152011975329779458976441577542546132796402839636356794440380377938497241522358901160667333649845025434467881642124531241947995133643272381230787442088031265336035707420856351564455818318957951144390439311288032050779696549900153901622934816250912793100929566933406000540044887756443455234580905975521366318418934517610176512819812904941392767303944548181189261780065683534051600482755101121678915669703225112188651383210732047250994158774346805704456870921837566569386326531700931973198212396103722929673265492348631071194194520627900507125518753289031789109660884125096557241754963122084820815771777830381333710065467308337896918747972038171869947616959080661061065178725889126197481315235393979638490474564968463244365998463604999714892605965155904482298045688974205902581262805337191016921726418086365538463311860993932548533134378065203518905421659149811699451704332754955097389380743420427281785264035902751151986543584162953033712437532565654308494380510725967591758089991845329311834935109853872073313192447136795348735170477059153763388848215625977843966318333587285406051811195163284339239428202771844325174050863485198032633518314958735320863899864085842398132906936387996319578132746025718869142863715095944123385542732371199209674854350719943264209307479009845653764289372801865133187935939433693007851819179504145715516683125377986777871927644422436195726992067794492477504517106334125601552446442021754171237671826106248824164163798504470836524588414188933529683722734361138298593541068183100403670244671477799785236098298804903626430977905494355552584627381075947611128268140218190018221100556096087972010946011259784330282992935174303597856524672896237875069991797976816712586683437609914183400891987443646297512572191865278638333552071875299523272866482315137052002706868216066292431086407627975318655795251085246258021002428978758118765937960314027765788583909125993753575903429082046732163481220288264051792850037915853649992144669501507747083534768026959024933352060486635474548964972248805737054417565126612639078907268692150508569615247003757095374073960832403206370063552120242588195915220292599436657343712906013334194409080663666425737385776404852103732703073062495640944853097047439369896628038125030226937597369745635403836478698984635619185518064305612877209982012392063765841499719617599540998995146632369697736593878502386146984995201196852131163402758666536543046628416224755962681778113923247268494425143800423097593424897897624364937566614156704618085307350489320354037119561374007104897708364271972959996657122411773819312448510511101397268733937559203275407907761842795326844996662993814662069052106045662393010589317837069915791289875005194761528434265392033430776153145476820550368071149822391470667414189757721859312140995671397257253830680268812961978786035198864416336733595527823916207607990441242219042391086123397775724958714108450812160924867348461675838811610258559445488658763030382823637699912648324687008489794730527389942492200328305796090735735697319859851420787824771956626175144110774407865381110881418587507561730862739416662329774249083742672539538551783678576322730124687901913349717638094792424221620086314351806847290385283797005066963801699834444155210676735568506902255713286223624836318265810617958530328420463337712012194742111890296047619429011472339444302064846725064654415015430571889703511567803894891605571247661526936137517301774644187843238152090769849047565067810750256911715327732880376150336726496056635109537660970829492013137737762084885379116829016276203895879346006438700389894457510054932159606925303418595484998680456041008793553130390502078400977097249991734814879846624797836090588376853590561732591699980555033829018546775868748078347909416316555527365093303123557462054776291039041338729937726450302688282319802668579255482341751942840163550068567419702358941142560210492820525241884767739792710030549012672962321028084655138591380221050756250364052361490628501055810421418942446953149638425291071249058526433477445180621947467682855078473427533416372908724347229105614133361054256744854144854133918747523509853292000226616190947901222226271806315976113044998115115264514704257788116418408708627303181881718013305895943787110229680651856407362660940645968957015217179663930849623717039720277534082138837248784186064078219661875795847890977538295650939033114835057106872359427751707535722140467755306089650583599716546379214268065261937616776099726539592676367952666596642024479119136947679187592851495268903553942102696844397960591278272711776110124353728047317900851877430607270100185387550279366564106256833441974681100914392936201198369363609966620926013659129714308557189716557385193290396116012570075042732047716603656396397573251850735989789618583830899712282285242501609298014660460006707947971399303717763336573750555992477316063165937830469857082057436963500854833040875275543559111762337768090922962951692837482617360222929841722289670794052049786949823638702940034615732033160824506113240915233878761938359197344503364088279765456931062417869179991594534481223754907484810844367103324843282164163103357407535481768178368449183229041576709029574034710050092669789488076263132243851933250850263369967914848768146857345727407419378402302579865139008799492463112776474021033321986547128174869451014358204853829518786061688293415110047421607418445314770467754928939072824094736124267581265738324210552261265954214185487939813042890492139509150416380470402623527861032394976218316207370232799939867333289254297742162310256742094920074971045768475625722138111932941525710478170294840074320821657957618214669944972580953298507077271120453720318562657413516215139888430813091109120160129106356590946268276337014180185575495865719772533010979842291651630951356523460276705207721117604160223897781908499101031265713399595866193360128778826887787290883418265115119147261753675352866853424685097410003017961628662327860046508327529281498758510807004656079237830091617842608137534487671733689893852904837568934862559199921247150992938780308326908745196260616536451396830889417316325510309520889964773123206518930278028812662080975285598808642218594698368905365289458364597429307934207722718469859820105810875744789119902576305188100352491228586868984405227001484638187860452179904902589522217117345628161670409487582902721589130867633649017212284010557952789333534567382631085067449356138300011423918853355039931313127759628018253976708132431462685493517332785425794963964277792637599943250600745725516425658445597313621405524929095092898155010787058515193766581322569616726100445644315928065330047274652666363668397122587901470293145846431994062190763395667778565343404190497189344390954947239189941851507416983333610783209525956804042244482078569961528010568556037334343862361867175948084454455317202960064009722446373031023716886341630231500410456517283239193679013831069212078871381023512465011038433662410557076581791344756362203620882530713388751645043262550890495669036705810604703963893710876300697277184189554696349776760388724349844960131476720428131312747407523091433974591748405056711506095001030508273267263770635956660895066512156887268207837392176948372863608419029005696883535959745868857767801716509082505529993068197803019266517379034283704552295020838209934648459355919258395986343412306765500391870109863261437576763440009546158531766040047234685381732990537474401007092662853738691221690722988066443824792700194435133023884601827217377434691192650758655706494790842516733715544638071443653381279812590924198281024377249996981216791497701181970040342181574185302975208403058792480217225929356625684229173094179036451355217974029280292600610402572237897923763318708520447159179734741004089210232270856351023766367346468230714326036740531644212665769592105495971521308577340574640967613409859140016135189019341388882979174640398530085708264678710035842943793279500237712944123038223683115324495968219435690611633071744452052384041129111272280133314821801465044174629614649599244638814510958021609724085542708332296818987700958965252439580049606729141803467339467230385709820087454853921138816108846182045597336245453909906836666385038960336752248113745079826975016378086029292274474240162209793491592777741450480248889904894101056946757091782870829360117137094199022656410498565980726551385895458311707132872065846778498257823770550158738624049411493738253040430703851151633843576180323413330651930424141866508717842289175131179840834539386885226163631227783152099466237879022659199095060281828768358914420813372344982376426340868164206912416115630639745884471772195408315255396567577382151030812670674502933735140519845436745457874078482403476613643120493544426345203164043100753919942196600633952817851148917394939553020783864835423976830617276017018011925712962645080737713182092379723209413087755774454458057106073712366153152060141659543318033534235876289409281440276946935863803133257704536682701427356544813514022915581011339522911966761632461812437523101114089699760527214724405823965321172271962962881743014772859095216068898533106831903035668924331067377870533348086542771300471419246416682110795937322337487662537702084165262390048588063230123209545992430529843070944246711170232030991530430845002107102484288967106287115741952888825185069048488022704912739910916233450059580419766079024872716702288265473624783027783128691440103914237551097201816947894975065192707309208213573646885711840859932995466421881027398912949907172049339861576286045060899624662426100388431804937945389066673118103086687988236211698043865880343691209637705251552107438803422301428962816883364573757609806954668892584062189772747778110089386882955721840332264689050176650434067779888041017990397659388389985190605112024633731886407818585599999665406526433280096904551114759772393264485293646999074675410869056561458075381700263796909894553713486625334000411278745988736464618252708743130953399539255265116438315592520522929231764151932127454889969400469613262282017211929455155120080360267493627802137713682042469102685502946761307585720145158343339357002741826468334096167742392608813656867775012273414496411344435529723073391499445506206077952041176702015450383408871405438247934787245193583846732705122843708928530007395852660281397193571818486333467863724355174673465018066403752498471057531807681405100574602407898406715006741729948824972811099287750224127257048960221964388739465195139827543832763759951091435133517901438532774362060281298151582030151444648551488084207513465020522943188356650790455937536748285081593700762046791210972682846991762313181882447305844573986567204328702034719997724160138522202844821437152928424633609672828102309008179679832956217787283270184850459982797888306339434981612866195248549227574018620284211617641537138860681902413872373898842218740683080835947410602206661457750769666819373171725893112961672678442948141198192857990442068190482601832070227089462131429880040534014607140693804896467656776991284798500362965771294551649810359704157013765741458569088434635837583500204681353104176545492817636593419501639024876267319182792015362619621936059008670092518826944016727362410090389850234238306516480752980943857095079408054945463150470749872247941333738062095610351050526890452667260735297955454658312152871259146205278549270227744179486401827698753868946267363553080626234977811167892825031337918998878765311479134598148781555222258795189369503662617933451485735958195042609902129202082297514731723638484551095393241178253495406182529298907922414498489848766598338567486929854618181091635844956617663878562450231996565686543069982519379892634523789118069353156541163085172728706607482172220627917659627946819981622880259300369521022979077019317576471030455024318568365254257073227745957454487654953526479435438776700484345996445819297796473094494816701663218028277393827437720256828528715602962995892225912281556498125701700142225428806264177850881425370208582173684555147306369350514526279691970687788456354543603279252436319197810885022648347377899377884784375177912670960018176334750305308006775950044936348441645859628060022130262355002233486709848028910766824782343589651349122245788899568819158204174540641748392792187002400847476270889247907733818438818443760690235285250994604027560265984316260170176546140119333300331965673905590380006467111432930861361341170434014838330302335709238690841322096425139925686738664929831586705984967077775236546462219212573122085207444923970966055684792835138089871344858157934337188981816453536820222368559773816189991676349593779107348920803391475119280501175301581234291700846957809370784769850095782954167963989073913546347554525348295052511485952479169972320611305763001435832992513339172981637967271771674166632292367597698301038964293560459027748743214343286976077673298413788782494748988002231167662434247503122414657637884155852575254988607795988462791993401529173490456419728366558245886139249086222759319788056107592710612236140012686519085583353690983521982699246198313427390121601041010465008889476630507292607243577330292578579489104500854920927805425529757693332818509834081768780279230571311429561023619272806318653248007329521633002025494329699941844867831716669064497688403244279203205426696482901111626585035909066296582909378986224361174592351426415473756480060949974646898073559328218559298494605751096893352644902199145170054991010565045355765412115573380160321154684717830380455688559617066588353536278973810605042223502660203172484671161834900192122571997144552171774549685707573558144781290043151692484296345177844813006197316259584169487421447001678322795643692753570035145591303931811194136945011780045368923094595751462014582134321727545851813460112288742938695811088615274311600875814594312121945728217504108361941863599944963767506449017668728692598471567136565713329941735684309649506776336438016619351475496945537602031358049497915433532194085949674526554420411069898222796205461692070589856783849838606663666643295020829019088510756749108968231694630304139195540773109896629915462073526672048854655945000025396735798915127024367747469949654476631321425006562140177540534506508053103132670948238537094379134098467989996368434646606102563324982055105757902320238073471183035720160850374820309230018906744648189887540796973220449870607787254109517931612600561773414678326266955214656949741380820936771291336234658358158707737883588060532709316744932337013280350574784232995801994938344848317925825735495295117477672804801710015513295391095359942742812998927551901925966993515313772634229163633444049185460808739927231466952409449193374504230936604308298800476736510957687130090755245894620933439030708756970747391062512277965348378541389299297208098510753721106568638751721024284227317571437245077884821734843998885403466901075131096204368054771103621802013738165429653047316035808559604615861972268432148488833097322263616408966515969155401585532684169392463593152250418201438182604315529461780993266328090230876505573914003952247615807071146280369125209237739024487506995330327001169924643890793456352696132648873812181111914569080365521609244245951749151689009013361877701698159388049800715086766266771485475059084757983633297834528747456150733866873751329700613766616741045586082152983075631792330702047796649600790434448906389418444972175684576807037416719054736818410008317040710937989598416487678356031668901075929958714716745982222680223608946452872378128404410225101515056303130679687544782394394069905620741036326600886772899876800600286031892487197926774023891090962370953221947343497641683074096116487349720194757472806439523422879610084781053229327861113727054294095355726596923464975680824395552257364003935106441524121633011177762055500565688622864179615714421519022771168319660337731339188381094206215171902711526969369425217542371504263904679936460888833197173140966951923103851442523606902265668677566824956743571077934400983112991199465076318338742937115787453188144791829571607058654780605228344947411176089220386245276614626137198033225770458660990671878829520732677412537944951059838026397448872291990309160975795156437194538992761550206239662876048554543428542844229128683501336458513501138083324948032095174110044438379048480810791254862649528538531149484109734878457622871300070788734764893902546466179984686340597416956836225056247099066102737723185154869950338544944775050498585199878775302448457669853886853693904088031772408247086397426180445313941703988219966578367742133051064819286550983078570624134718194606266196299520163428180216598533662562063755824965976435840121097679160758942347319827076046137012847993317038917311892351152795936061912287142783394656455494709226574572699293557787195392894147074506857526171936840084967992214583269663032994958950490442153355873384749387055883184981631835087321511442748098641387253396518975534113263599525212699478070673787656851172617016384083396671692867446240823848046896603151242572610496185907388403171008338771309024613736050916271715776481239110637750387547586101963065588198050251661670830686485895089440192266731493484537579874016494618933136218540984899289285227594700017583689248854164589605375934534113287087277121952326826556771236827621786831283452147052068397660164250771329164962332163257825916576679046034318733816491383988594145247796238639323752615862270570878366980519297079256563787438878530496321231683975347924479454072691138350262738745329887229139216519092237048461551984995450276847412851187906518536679038984195871842140578350439116841957426004961201355499001135510908681977371814892574022003179261766222595235973484871634057653503476016017271004569615099738190800947750876191852795419055098028380270218756148532302229144215732683433699600385423011223015746316731500251278699594761645369557210426014020397021520633114197761980056628407326838782146050238566671113943611909222967165157072305773892635103602303103070843550977593207906180381567412488731397614895924272611781558781441227943158331775653890518026231871797945014666284658632680493573307788763510860370300640803693397913585196871808889963821987393553856092008156307721110885918515257067097127136194916940843337207654927504130503917461865575370953196903881478352067721955859475234636722155312858397942250190567204745051503318822643607358801238020615481335517808605434004440512290868166483538737901333671865171145553621541176307577453820191577427438578127207489572939156433746572774935245301097898360136614294555098632539666016283720109291185729843322092289085289089003563680140014831362278932469984105812413934397385170327975441908893068248308553591341543011795486385179948180822004361372276178797161680879272353600462991399056981074664776873849063669998245927486807886971438505101483359866808215083540024418385401904963257879636858927354565273832058874285058727091663669947158052948387052995289899590501489886216909120895341354986456783178432676752872692061751660168783154262940482566511935985136171478345504244119496545229829259173491366222508683280761018161106026384114047508322484138313803679383602944028043455288707075909223618738254982745651550088555164706695097609307511576090156904702060753905738195380451517277090912312098252096629900097123632296039890820930258020186054330313589205412690726340636496122854026380675056011184720632273740202072862272243880827492920633634360026906310610913812883155365861101026665203834503621397956498331657961434114157732385343996782405737709346369644788390433762289634400303507339982659722783750818823711045302116073989111839580206894672980426341590711650287064263304761802192182953492429091768810774341336627024679106776372281458373360045140156697175924603162680920907962986808762216715816230889772140043036905446916285953300283367369150888604583050681255963266859653318560080664296203272462386854530953426504542595981855271321152265446439247372989858310734949391543507256785907727018637460467209060633737146425164472365299909361241413549298977795957169666172063589216078593342705952600306851271150392988748270020274107180255104115202783562975614602956471725270062476474519950009573540581389345674291454543876827314798115792141845992824629939880272762028202416378060479080557047217973287551405093116704860782539187639970007714535823198728949867917214791281891940632928347781021552780956065822480979543482659222997794880729297410982393047336073893814646601072029297130004998915643557269290303193872109853970171908451758465917566376710254454636664217820926195668700110584533254775604169117128575522805788220522531023694826663153909784333221779208208730292178995566119007806242355245334100371593096839719192816177767564302176398374516591572126998714520041672348655368790134673900715212791562370295366932933948403251049862409637536447372531247212591851602327751382446187991595231825294828037205957869152119558338925769002408054857569779004312635023219971091675551383752414392625961624293524512205373852986370071173477550021073351321788662132549471472804101369397832581300963213768037641464716201813674856515675477244966619647984016618331618306877120043455327233935848270357529906718967060757331732862671186055102752542006037116699925063884530743445716424975402664514973843698522001466199468383442559775470202072896828515324176087419557837531583242431678886602585240202184178669424417202915449544895844616848995291149788067996634203291807990467462090375592300034040577077845865573723651841672916200768373716317307362542572338844603563444784949718412064572846560469085572600722248782215052894245109066645541928524299008695982176287816751899235325395489971411032572138771639425481463554959805795310714625532518217508460481273428712913605887514953945954709691949921208269240234165095053651603198927792184880952754891952779778016817112292526787933921099165046522054813598120692986357722473386957186065300744367271317092334991442659836982033382926151080213839170068585471639320040534979130404125947901397662430458680630417744707014472429033260027463250588391204937035862710441301144534633259260187821616778279185197293114135336290517540605531661528533066178426108081767802866837478165664572156422250827146512381561487809728878294663693749774748951564265251119182624127802667527615704890350610363577225044483889338628183076979684234897204358358098405932539079764038213362601377650132292512938586260564651057857910856540292738768872988440479268876647009968501716024082051545438789636100244265113381547118292859381792797717676966841605813559593951393870522083490062080375152347236060452684862133204579799960096632578534535947103793279794377686725262888032298999822796768686160504216704461240500213869019620652727224193389892981830450445149601647785181566352152450142431449349824465437297600989003448816435198771446210698817319442116992317927812147698606003328995594836106952576605651415136040681337849278452173600160084898188311965691092590050966385507612816302248110447380480897244784740152478326187022277392958736019495235613311387555710957013395143094893748808839929901681377233509927488332378535764899655359054669795833006232041794402295778156786088501259462695685910974859234722751402874557557623981638425493812888613730557976879673233267190901447457657444204484787193602594485088178446866455909607559662720091204368954047777092203453736508578867434491380279140827207705711433103231442295054009237074203767850829209254131222059956522096791282553109389146513027668295786430234849729241106253861388366211395576735206950338442011497239248293799054666551939035452428358602309783299742405788507571276298536659463704376898361485539271076008219120868575307167523174998960216780293002578940791481782461920064610593529097947421477621979873184348018310811129816993384605008396192547725900226920512648267432937978577391754210311211126283655005392488614791347492557488983555241308915722946163119749804939016386146494367605306041405616474760871781701155566023671385458907749744351150306962569603386805667977670608239678017285668023431216105095189683825254031120381168074180221864576610327866445702694832942522991347823167609334360872039519745297700818213710932281278530817084076633235999627683167557368973166844109012899039460186935753615854674517975701513750558267078035680290161048321464254148908070738406084255540239118035306120702538188955918964232660576069383577922623720309440866402688893308865140603164965387184309007506595210359120319807403367773665967195893471600497257064459530566963313210198716255139085539487982709339130105892672028240590979048303355012469253850191090435162861197065846570421032811519857769005840885451450394305372901537031343068180654678604887692559577863769745559897409865948128656259414131816312841095597287960685227817568407068054769630548149866445784358278920542962499506325246950333739053070943850852695460889159028690673266339740047980322292573447367611008937574510114689608954399447946329851505415246873717943870801166386264942113903471797291701322715823112281803584803128874653479664704841591645271304631425298805567247326831633285547437925780876432840072056968176146111760674223540778058840552150395366733457336008349908028468545086871714561859859028478166470029599791076443399504928347301209798768131999088529303767426110096926070371683222020796093747430008250230672990052552489134696712054078290893838273603534714150189765679528896439799815384050655667103994474237915301710002376034447261228260722318451603725871630293745538272785603629539999078611814948327006714561003489077258692224583346343446657173279832399179567934270014398896568114369760011626303353399700217949927219888892467436328906209888911144222701594652885093969309538776160217034774204878302945579767470007909262639875485820064678358036755989097444659793236863025607179875959152484319509536754756877201310611788916677080583255268076896423129925286546078208785987617637981391953018565802669569674710761973284054638221232929273357771883746793430929824264812154860805267843558599577944710376009702198192450531687440184696699018231354847576890964490221532676454817977569400750040085451376237264238484566845258851957690918739502786512490493793674780004410363951753928055765286822323800960738988284035882184767750609172934301316001997179917315368882033298924503872029027771444111740451947825113648831895540353223009080257514216619449696952482826385826662518152162748536593700000101809008621875855186497449991550587621888791101696821832824711830979253146723451101210957466753834076239924406449235037599783711937180658064611663172375631152406570892121394537978077274884483902995020506520661406751867668226492940372949189222291706766876995674131010213391266321047980075286980822075369113492283575557891012530834999408587813259149605614001067299934101598745724302033060729368607140070175342402101186852872426830017780772256598103222925006184069902955017051674619455750466573148225153016505660511567223841015791449124355007114671551195159687074041156776638811295425972132580758763691637827226198701636648080699912545141156235680469965901147638809951411192404798044756942581725061372873803244759277884985037429021852312892348967285357706352989022311899059458802449340826098984539913103234764554016221130613180425474583092170969603740227856176039427993312183000728423125256642103708660430576606852761899784438422100863731292394842918236995740966164722560407617032986863652303075812613979319142356571692305903797349376818871094286892473332953722458592374988470044843068795499059492143456213581162506016877300963558848241677565153817948171242958878392759462946755618052164894189144534786010145407873116261548339744375174725815000276384544794219823107363253113247875366393220660884920993606601468315219650584135207653810307423985555706200102338090332571331969129286349582561214957334370885022716513889889279917936124179895188401424040673607230654200353303081987087689077685335927776966256223590796074617110398221374344297077866547567809656473253488111598259443674070578256892921817096483433620401776043926384569453541675836750856621372646762044566108061203865537880193523724906918234030925298723024978734800817402809183105248980087383932799649972584055158503636208723851422005133980381426850866253754640011571160860107975999266417728398972920970960173963216452843030183171127237823815170535730793160830121097943363303360302555315314768334072689279270269768012941787254157656544957726656924066640263480325762854800394981741743945083609478708496195493004613743949335869381289890599198433425233795490298383669201665596254678272094970270561695462928517513834324596360886780954334557638933117664579580074228285273226357214842641776696760572882758230951895423719138205477267423391826455976155193469584416802023316293126101069445725152023615326546871565963974818672645360124630418424961549979934899637114865896860293808202315752601906589587625595293307103345005417568394134849410379496508977568394624689651544745072916302234989910847650523047726817225983445553745418920990870615875485076207480587501288430894961195828128824195747407412435978765064204133716791890841256188500243922113129182582387956662586994029712974972618355706708782404287288652083539577010155263746221085816509228555902539937683564985919465480355111072707676314863756711003696815031201619877856329855429426086579489336870826607942777067380227058784698625458088106189232436674020112350855057546048037368558376167121383902894707358731094916114225565992424142067451579998100478864452077991136458879878618484087882366039690078848013114943155958911542756525250393500589559810020214067711923494717294911209831739080742841839681531081633262092684845097318948479431632402048689146577233360935865576752196554159743867605866764656971774333043669153528590117258592025401874133341633111054307850552254996095270724681683073355549857364624008450600491549778033964632863091428141750094461492841253195705322599545354312396528130333784835795399872314086881539487558365760224782572038942270188178626448287333073536462593308964861327156612204643863757621480725896176342695181434925205048491383715140565698864071010158667628932349983981792694038740031002332928273298048859912992347892042596259993368680275876542000187194808061395697199262558507587806546004928181674547742739599628651068193655445750988338334286517650385713479574855882446567365123910258336506764539840260756413634267928740165941650167569656790956488221772588472542003417738128142233262842968026464086309577283189162424587751895923818035335516156717854154365394071415833607609511651740715555669182415088798157066186707608111604574602322079701987214060074433371032596273623517883131451562176299848411797792133067540144751926658812739050234729571638284501128076410846131762707656865171691753609538750903309085865626644545172721515100314373260796618340855902500499889584357644638524811467072360559558981194183354656763966749702431454868931003591602381763210485264363000531812788544193948339814849397905713004075635328822454300188909202909972740360928218335864408773547863626620545757238802030822549599745641067107744603762554029364463509111491408261989398552910995203647259549106563509427857731597389848311092223812924892613001232570554630224115145448191241938774030158933023676682550355846378472360853865857065899938739843403162500064986335722109204358283562206547974126205252188713607897984326720397193822214890972220615122171818516862439610771843965456290138823367555187639870461830058092167938921954503974155429306111697261836216055088337133772605046062239754590323939641038769303715097280686301271481414477857272342236203226725108787800155508902104375360702770461460145498865349292971834073286848325857364076425081163114715900893850082147876061917112971351093787706534573558071452684765694073216074633850668653604093660440398388851127732297140379224272159603234762431028272746949238214643969511998494068751686104853470855199011002863232654123485030280687385499158593469318377631109619827193121184145496811146349813126575621121977473743384258132327722036022206061395862514702215823439491069885305477133121543913146341348341872626250478153543872902187678088309607913569722360713584980101507013432276962172762910996262268333891058724178438836923514744536892535453507759910488137431123833523028726553734934913079874947687259120229468709212907720502291559011027972801986454474344990014474270674966749376494736539892677723962309839538358870119193916663470823210373732856996050521755478135825491134510739086494354692861595359550223432134881118804372489023756030236586149188995436185899118329719169607569526776841224812049381002158585218803423221044649251128671593710481361204321906006131066876673641380442613661118954737698215726401138716617895321247026108624379909083372895886985112152404520827344956883086828472034417041255323106311360235617425688624075756404284411750203937143663662981916941381314123338329465595736896082084974752083729672145498581364320763133877189005235823624720615379176023065451954801106601520253401186323252839847042757779768897445719972504185940035589600983312288313048153952230768960734343504886082280371883190162600443156232570665832835369985504833661356547317325215368322996456393525114039015685786347419843828448380454091467761050820078706815657949597194960779032456425733756049542477283805998888522433138271687511159486102420726014185568759801897774993719952257062249905513288155544174530612437814600894623369064928549206740074283432990827530459343999382626671424379345256819396128364588400072160424909780393522612639000527140510330183093108178850358802276866911435608536132689763120739693468781656637290183909548770377689377408386910261843556646421320264203540440026986378323972412710105026973267782375958894422279537439946126472848663601587186387152303513942535415978714021482370124440177933152546074185625500882394984301325149608393455357168517119383650482236616432738610970517419823207147487006717063519882715998113150496031863414784695673889853243740059842048480942281565944239981345529680224082693047462408297201640769483557126976383099947670726461080133202355137341821754195349719255807574162767036734365460224330239192433113306552827848108090743120212672208333968361815880276671485982789006906432408457032445491456386343390810725500990209669258487745283857266978138976381607613285446025380372098418005231247701433833776658419374635785011150481855880460766680108197932838097670508626945199133098027480542874821081388826270803734577126360554296932909591768879436243043450501437622269418117677388314644007882918873580450918538062754918011228609823836053396029928628991016844834938981603760581606906415671581620995686775053429058549534167559060396305389553241335948155495296489148266079296168015522953108721156076074975946781055377932253417889213197070373814148638145612272470311375064244993445415938314779413398473607519088931990544709931592426571677453628465084889131808757712436742663921942963151974893595151310906133804880096868437664658238727851647182905397540955120858810042524584948030225838597379901991028968282205345334170852654777715934882247350701363634092486368105519218944494786440595739580922028981271731712767092895657966261240871132116881594058914922682096339165670134542177865951064915199661885040196381681850568059694497856788375203554812519519795665327184700964146517076381017811502535672839555965705314697397719150421872841263480517765296226328655718114633009070104109151599807597985359822154084905992754661547032409249991770004238314635035535895413526795428948449941267378886265139701119096244810688097043841329396830881951878679861610285413809667300475967096375568947865108769662804505543601033006889111594806122168847831198096881541293725814870480920664068719572348982415219014997743871149520078939295986855500892162889713609609991683987629230533957687038123738963332087553448392317770236709392618753662873885777994944807788463320541381091128527138635631102526165946197677741963813804703782048022184534793328166374757104671118232570515062839457724956059111423485313034902785592360183987272363649937168490710861083699363976005853607915163088394793901568321072343696789437307334351373601716203236837696067684554427379517991525357697242617554250850402461305757557485775032109059344605060231387592389398915414502812799296406251362091180722164877096076946818815908006823450244639408724628196274926573179755674425695673713010942599198600114576714013017485269575744720239403607561350777764916653330808827083600423755265353135101082897008526976298379087342855295392574525756304423480215701300189570283318734660175499742975454320911564864481054964840990877744521303152467695318294687822596097798786459546742185161372040813209116381412265714792790313274516810221828432424302666308814544082852144432343188101568610475414478536616178512381873077402939244354326009617744241532405198309164524930077015326401550638542567944909345754789176888248876960978219706277456488346808409231113372872097886322946218012948172078502125208030915916091052118142333403454879552217430629292465333784298209366562545759140454211053094351100426168765963479156062876161756481291368660254506496666950807407195247902943764245784847841124389100977131661759307423267399065047368798368085801868991459635532178221621412582697125129448725043710145691216251226076842896865005756815341299253759956134733816924558822286328732134929322007115806744619206753340575629245087636402555180652137255945818141821129787246321753608300253994445846193853030945336697307558096256903574765284174661327838618322185467763700878751147176483461237377027811378587111604621909091846458273929704093128580507935434655292489195499224213791487284033604436282298460320666964184031874366848540065940160033757074222894885395722727152961036406371174417693770745646747968424210545499061039781365622611690410711081334438297644460174558744728714303846952970906502276307991715341467444886567860322191902707422044415663051348330860546468801239784889512905728186831055785727486632276730425936500935872164134647331481254587772811856722917565037579905604781326892468486412191959723338295677568925925886701879095957938655621297412133776411576223165233406414324377555660699854137434877096885031532707397301753510600593567790969716886924324171031944974687211012705597786899984085509667537655623981795853973532951595869025020169844794598993922162461860943550650059215492560716042531321528367639278489730408390770497719829282591052495986557047629888477592498609994794569835656525845294449681038726840868721994225369434822942695135242893509311611673682076246298472399185390072658997012241965362878086035159617772882356542550629459068978026820721170226356304201682153961219150935446436576852368260589045529457282981339961682444770204054034204178860346653181460642953118083025039362035539637917214393777053883142637479940874737569644000688377816605003390004967565332720730492934494340986110711989316195955107988290133785073440785927250468168756556792023948447802917540504172101294356859850280897559326582464367091253922034047563288624072984317960421652133606371338422007855557918324579576005472355270214116584092315057805453984566081577639984566697376390803877006208570654797024791647994381475831181946378012590084747871505713728152499737562820687318897710383638805781402072062275305102383583968117776658413507284764329855677295552760783862238174721268022492469322171883198189792710496167832170808998514395008729246342510935149304855059149992157315139789276995814257614596718340710196536183818621212013836412376619127144757531507718912867852165406489843560789936050282285759414113856956238928131951912939118851520656619078248211477024132447546438123537785648278564748387922945967057238009625293808735050689496647498973045234783382241174952432226546609522396223757161659217756575509404568387246773220424578505823057898053256652391490975444484520510428328837636957258304214295560304303211321153667482161866977077483525101526997923196520711615876684118890632498850046091801972281736692770006155416147436383697191874709517931871279721419473323234556479128041250305413846809543031811935998789387658553271862205086725522191098432776787205928052165174634618285872572896671307215264338781294489318684745076072661463016530427166103999938258459536772354024441432823968559285314561214470883125073364639791661815616728061138609266101907639605231885941749045753169760656805024807032082319903289089884420702027164748656867133066518246360551314156786358151671282480173510600237020514875000021855071289329956045125845409519745995185571875649007610003213434875756388629442653563666086771540292390726680639681688678871743254978916169435464050125536507767691150399799826504506901413400170778896669301391647611338123117330239079070130386421163807967167983824281266764410764825483151059689935875998593284842871308851762973904450449578000565024164745553920138759233736241866501787846441329784239436502451273347472762262811239238274401454166333013101440784071502097120785530133681797265141671673519925057900929666874612178783377337852440965643215699922153063481451675876392437802062773236669019282158829454472129100802020774638417050299333119695088826568156627457401400434299970834725610612174875400170359945142862674528385759977063311625076473100158573206282752929251884755969759797112826273122967121927212425592261962489974648965912176620240730898819770764404834073293271761003147101299395678215655390016464087858646635131375836555765817393777030664059511300590905854682365965065243846582626229355528703378523524632734221936335615942711733393457982041928714764346183608376740359807970222131236633570727665139058538773896609141731276648592448379474095559125116406791440149592990347684163516810540343622738951611633791090518989468742591422197833827428210553788932800626851146357507248200507924604722652448024473087773729526386222912306992618109294462740010725350671638906762012950053524099909876695524749624818470239711974552473837373533634390159757488130837085157693301241589160776967666993553565647603227122276754887728109330685873957850982918324586634684371087844142859072050358283254671081399974006362327980765145893741132967598379319403316548245306922557630769247648287983667450835389588566557068595849276289305516860106683453944619710977276104456198489845322402454638207552594176476148952954632454506341903236285744246135581497783021073896084555619612012503535105414746624685680487499534490262952600434915896355402329252794466061788069280722633731432450652977868285902724277010585072923631038193391977400838405970779855039647100047049024244127231378687402562574710861336969851654829911543750819140208830174511464711120286042794293276298677109904675036528101199635921367899228984502266875978283989646127732891385732341164669266116155126716503354645569670506369579631225075162965344936553223422957599858270811613093774041938513813243747094220926716353271791362398960818591331907791209261469789766285676289626494054431949762868207135443930633565284546849302816787214630094867628343614924965760347986909850356520058530446374266610725818630628781873957908087515265050676351244606468126676336958952390999875318316322714228188073329160646714454816487058725488316448686001847621010982691411646034929390138535140184230905409284999514996399270505258960043510322149386016450905304663470251037652465091255512052796279120650051254459114505342807444494706892787424716366635062100034870692338853597656822853534116506111918510260295114506010630151013979072147634094029759111914566361297825682289194184976703416730127417334323950625371314131017651021380928632651927199464483097998953891066025285093585037218772404273226254186533900529033907306924435033015264955537498742661239137032391741824188511916274693748097412564968359111939660943385105858138108477975566272490641488150549610154662293575970071343246841467017185830156669386191280761940803802134141853982495847901264503608581217075256125062876039570118933778445700727086832208861668164320275395163211925766953938522164603321791640849995815486918757368756196521362818813077888295167040422478696435257471777606556813399332118952021646398523770947127650402724225557529810479369887347040076174075168109971521888429005991606164245050230709325788981784245148598906969479392748138920443900411511998814878144500842581953627511087328173593924955169649721174994585488011589045854502249024343272410608778197797389225563288992917728343368209871433713868982474210705142351971712223451654883680880105649810920746287319306730120027323397897792842747800413487338039723348883134003435787976795327573877644213084816342975917625697024602464094525693047087136940705861042913701148630472855497442947576809952230958983813774433200253372470658724857256075448616450965278944923094962961202339356671024140042175873583724471908690999127081998177909923246546707947912717894382943407845068826922518958528145655902397784043732557527840350558833398321455198887893992565676223190822462766490316475702965646656053358585442476057536684303235111116336352963303488484428266421912154968935344279469224409099834083005301025459643303402063762010999329997507947710879309404121961535425836075559335443856691470154269339752707618722365470061239180725217753215472472859306344484796914396760096345210757853665799357608410283983718398466398903915059281639892682208349463624950501085355127524117502775624261661601448595756517175307032922050628249977258982843715782254275221825529199808191581724392891933926057561055690902352271587532689652182678488600455955198687157097174413043144490356099003699465336429857515134908952499685898770952581315035114569176655285316957238796065446640050161516482789051127258782456536980126482476379826275965276002308178632901972222355440434017192589770448187030447639524968261379666398952609010901622015837581900874001304622429980572147816697895924304072492678044949803999871136022197391838944681058810370821349719775504727507584658849126723856458412358419109946378859878583213096387199140635278707641179269404898631900161820690466837924143970746594276081708918128174836256530721727471384524681861656330420393617785210660826997890783618698637416052063816969466402093249243511021822690379175022027220447207054751307784730831770694070839363041660692523288072825751349133924826993688516455670637645504363642667702607464944755357634958306080836110254660251310164075128989505900458854956207444018247674607277460732418182604951414755548250262216977696161939179707259212135918906311047461563436078247158406062389220149658649772232482174677979912900723928714371834344273063747704936383467135221302949904777023841445151256709179835113213295099776728565641689870520399396553119001779573604333458421329605250484098307819138647035185007489962796009689919756416128478747943470379746571328275451490184057354780809222745996316694395857424897350529011292959384462325187729298453861140423545339836624606934175142455699328677157049327805902021391893120128944271277604828767962382081027025441434552972398133113461095805011064728486963129010254598789206563557810395042275204928423106330136880267847687910960075503577047940190462593874336217443498498853188132065881273146061737614033176532287732707691348321912280242013328603061715797353170823602109267754004752014951920174113964307484619881685361312761965103658128874954898010028557233695482346242404674279343519190658361539300478519015868019264795599827160624550101528329040244327984557524740482417444441223724326585313470823539872907160105108917306222554219023953936275758760402282127415723720775144831105865824855829599991062133747628220177508698665161604029567167236968470371813943961541178534250998120694644282507093716994967896927287558452479395111141057299952831070772981818119690172989151777632888919886586517108710314617702701495025527443698769516096860853336622702277197164779152917335939310549401159902694703381659340001563754087809794625795493105237890252125782845194993386024607121773411960108013654930949647990458937091550861692885864775843987502069409918185943046841209487348105979118968426628546582398001154830646587286033283543266358914709874641519806405995291320541371688246286600327981980972335754388023195890564407720223882040597180060384326086390957291878598986760287461795627877993426159280261214355395887332780778454890714901927287186541947700384257802937815030220466623220083160637817382407375246841391012497230776970833276651497999818758008851353118786586083994701435177995257446878968045761244117797819535438616667285332153747430701056434814601172539097633291834652112844130072468358367526513867336547251912245047326497276840816760160784077491843165951775921326155086666502397952539772100944964004377650674271273129596792515052954031448898379556644236794458985101271868460459274327660876191573547739442535121655792028948573722889539644641414792531233100461319984083826753167727778533390866260899275444763673307373485262444246047329201980807949044088824187782168626611163008656635175909549310079085234314427959512679565119293512852908394021663372281278341639499468132338413259087498077986622485006717191086415009547477879442983608967786806522234044333682273609447374647453880855300772284512114779082291482986948309474526211610364051987388918556424697807981098391216418921978651521520730312165547452646965268182885422064120525850791240954378480707894964994252354315040215753239144534754100406197530686215495515398159462245636023275968544454634006572040254747172518329025868980330749992407287706309221785206347191146834264198150618211632718012122392873658207937288775589362237257289479160099777701910202766815901832042008199092470471717825234636741537268247575568084946641020980499822454175514505214752325509693593760857987925449490996414827368328821046326387494415597590628273179624675983066125282590157876960231930322684818957022040700482548440182210407357398467613142188205835830950628108139730714707023511501808473336051002156612042888141781151206981077450096429704499310378734503947646455178853785531534043069664164975084681121494667027733360236352893383533408543300394456872514182052903536673833973482844241019605677861765372841665615482707372210602069054477185106689907258367356157969192139816085410653941273160421756387242048264522311243126513183456172772819528316841763727986742664383434584952214028083416013936610136151278387775695358443448592430906114195830898569059177404604380289200952153528835529410436630353250708659635205078734777359813309350748772663193938924409118921499786263599286342963921298990961009986882596148028099564341274917913144083415437418800913695138681686806003809021033269231428541672904540836891724889303467262139272789548245530384473977272018452932197907883445026832210954856848542823813198256796048818512132677052098615387008544644024313069392490147463774661516489843163754891129131892456411929185138552563188195724933911579529120714074707225331629759048589310704651956151773117157483253164350006576169513483248402761930167961021399428789960828990721546431141826043022804938619075198621591202083241710463163861984359144131654477016865064619647220653092288829990881375816416564421194511729065849742840657835440230042014557515717586170453785580812337045437543402862091537348169911296975550765365994857936275324086930056899943844256567666471461954068308244909922357181747552590481733535143227246653200963370701880854875702205812926828910500008951977689392628996363003440389380739173966828080261233188007025064970886018773487084724635234982877161423635951252874578221888592766232260732379353528185842183242064351791430506718382696151709288113750079166274792898213257955984076957004672471497290796094610001414803038386332730092520690247028413519119717248006638979592056964119053593955547562072114751945087344579878755329061975198068194709384762803816866806702784861061708547096146009225955053157256780435534708065335689480122048424438459199991470048686161536392902468823326035153126897146955577506488349923392532774617979985314516621058323784222796588874168513327063757652295802319714233849264711909816157353305329110853407270124786671174899497726965958116072146825278775857112950338433435055636400792832686739976228944897677660062566945216370408580353247154305227774295391227436736536538073620553280497059027900235585894211398806159266183838339929335670719852549131863937558052260719738024872273542331308645523313534680211650098045157997308532024110549020427480942187930420388934654831408777450592907465354726258741529799663066146144381506653674200436498893372651105295995698769419834471428993977222458781265201730560711990110590890531039014594473652660712843251375358736435359828057943028687296938485762840974735278085832955627344951865135190645494599947548939604509136443747456396196466455071536727689822977482330816376273767754868463327758225025831707470022475012588244663083984321386899605728020902105624097224556914298087183206279231908371780039746943180314288752246092494142373903726751040050909206769802715491226749807161150218989753429043604323433750925485881448265449977170363788895896070519668513734199150020752508763179105603130988779950842533288427238645135012483743237246794969297305795214415498584641240248925202744641395225025371160766597430608991683763454162446919271013431876247096130262628484489287622609049391178828995364367544343987436890909034230673629897405453311273151673710038653323704172856156226250355635196910841646496584945114645295578014929428933751929926284600309669445821920263387506345044948069028793306036223133316869271916479027829098814962562265986041446538933338646304622395293404645769649356240552575936413866161023074720136728417131541738550164157886954544776067151549887829189438714541331980277962295307371135314779586834072061701178710278596092012192953906215033657209675178693278059502066341126642193133771890032856191729498258490608385158329662474611528939093338375167626371742628057246063157430256601105140525755834900617878473233475905414881178981902282178809031148198971691790628373234760754834054783415554130678723680621623904052837381161598448157847721572347118774536037510413084683415698961344476875467009505126606837580937794771736136066941614824645275506279881056225134771707923331005063982942604707029775524162357758655135452673483303064701625296335609724985216804855283929997743041231962632862092086222059358391287200516165043878416813007390445751262559036943176862646011251533601884163916949538787600306384292588144289418023675463747144079776871970243528340539120040428908185129093554859253762417065770507074151293624964618042880345254526640612531337881574003446640146837376833876563914920769131254545117134467131569304385244760102440186731839913338535756244280445368992882428912139677627839522324638182217925209408672506102163514781664404078709195913655284662266612186309224013990670606528956332714437555251926391616494857280183221157448086111837559343582236083404774702718852101590583474087036093827008914120578388953007971988429993964192411720028889799045797639281681731764032429763294995363124795453949587060123838634403183143607354940638906087259760755146718684704521720460425901055034725905501410382677741610906324642816525524956234224850706644175005558599515734262438726168814461456079014000131780169272933154553920161527720604032803812506769543213301855166334356143035225827617841005598111411539871064791374052531534043089208040218120898703727001285898441477389750186225979479151362425256014618579918486693862253563949300027682632986143965686406749908067554834574306446870989475653310403535124233557971640172491123808165058424163816379297154397212065884127123372379308867797285098102159476297295208162127175563171818268161210326237622723310741029704502825349987895385634488314323225826488537278684275756345352076337315377244058753510108826490685891626153699043788352848434072505978178227984758172036623013520196084616245248186365302915824082501324155705328054544725984073298846829553988014467686873117846402640535078664207117766961456951515335981374682499630829275532312786840598304015595218173063553016314912447031143302382042081674445482842201622123541040219182008259463914161952065782575094066914799541919280118160225070510166398561670393090389181455332890745334487639261792858638569977248486830062499534039122055197645349110814353998678523362998292737776608305320740282950112020697632555039489075426652793986051131560925735827488502221566916234394774569766235712288426278270777601669493732147111809892607618211022416875208929445842368817458119756621055827650014562603908150777992926313653906121842267522005557199353539966630349071645939983085332326038408268340112371412679779655189848769899787101994213398482528580547557057458199116809326716636782862570711827524669595819740238290632213917566535472681516211401400681950882732742601747424860271553750214224950481856092005463804159480731309743819125060146151699172760395599434798393457565562049778654753902306706554573494468515483027348201114490345002352000126467294011758628618628031253720451348321317277530185235186549515532162962327061996304245495558298757920169686675521100166696075699818266022861630185207887465406282905629383584382429877570977745703134700915741049375877619164392481324586759832746632941868836748535482876954868772219350026673858595227290081370255155182866747812308506829157718265109235066216371169812836939179005505856043661562338023457226075641108545287933873307664428203083757073337948982816470764638063265022326536262865704111838876710085773677653441521804137407403550804240096188463001635798196751383326115294558698610991273777140478563924412987295972671353984548286781740518588174827166031342905889041113229716207466744702638781904149227051383480217556117149868621511408783281235182997155759845330177535097770828550191605247147629813266699596832403364024041673545518301800300236479652488489426503957137515163804152997598115891929279629948639840889494981103090855501185357873491727666077645935022900263777710621151665522735880278766379893686902960492974682178462352009925155620754228097103544224899822602288257775225502243854738964025325836608580882814915128846873061977046675722586802737833580509956953456247809615798164753029563222160039906540019278481228928124755037756224439971534760056762732784158551606823182428651992666219723347139704494034702680900360110937025246527655444260156874856338254330763972830902752150164312488542296101845204922542630913005681676896425078279258022499341444294592308726887589129838130882663927885513736854931389383067210766688127396019527622047800053088723279454827955980623962921189978039605544184687045632418174181807381457739444583961322864735505416176620055275711887873633625958016335769234061148973009113235780741881103804298205399812633915735713882569980282839054215390850747458910294076128902399778457041996936659018013987613637651848537955993388828837301364197079544821777575037256228015325302520180658261617550499940830976186073240787285936744211631620012471740383417083600428832605488777857887269053100561118707029315334503134532168869881839901484074794646353918115163973307369621361622594734757341208418510119756605962274203009105321796190521846347544309640996481221073308081553809305110372419814169523403619177611034687221090036658794771283410270914932169081437292192452018535127076420091889801198384303362111159298984326442254596106423541270753244824976312532807784218618313126627355639444385135698563777769338064460954505276474337452929390109005657691754130059191490020053039008604596956216634854322055499011989114455500889896307959050022853218427872808851534150825824749769501355527629723946931512144003391072365007096197857600617388930449593901472852522984909487058313226781987149670432149869186959741682167035388541157127333420473129114119447391226942567400977253398459890591611080485834333474100017835212014867025315266119017302036543171908127541922736564554586393072838267864626763297793177947692205983431105255097275861047767163735645128201907568477456715895796327625934088441326614226515584931309503698842071604085734351845862668344413701191315327811747926951501256068331648246933028782238815024683170763385902488783294443103303185515484295502122799199795490362955414376725514979339976511918397624298995072880760906543871739428837054095182476827464156589726637233059860144952117991344830050662515069427765859736668303530112919183395109667462669760235423925697086229712503409860572441713331257857026626139521845444873664790379027102577446292510552891060940116589337731904238509898283170058598869965860980125954414168667966779340873608284745042025399562354339159314561177834360272152253672287426911563011840185985764514820426849084060724859059919058432227062289927091578221310429474414549919596391629011582109166060159152020323955992485425645515549519255806041447152161986426160353253772561218653829396170255262649558742976318827488927978596741946462830488087433861590751611361713546239481269388094748768040535637987591091141288203167903517699114980940570324307203380521109193097717325015218656786751646633935722649240172209920676453362285008356119475319309481549615465523654315802590857220396050411026368942851246052326266710772650959227313467210759461043094136234529170786401198090065020810787368773477445853013911090378314095554199860196761995786282269296141097625969429444284723041423403897264450092746985210392823727725954735199572504667966989388405750928320310435247257894854705655344742191733424094511329417576770470076805280389963061435989280983445040439443425099347068854632379012538066220055433652211297994799600541960694738436600300188139707116257858124742575584034417670264884570044025973132398154961038558801554319739999766166450974709847716768354085566234916580565413698708172615305123953756378462544578882885817757694303327558857095744039682560155492030137279228137330719720851851321863776202715314719739094650913980715062903810942048911888490526536900023755360952682139435257764931328194274418710273689014086469652238043736422586943284402306043561713256824764581430516616865668999697897077237414112366756060115345275289511648068940334223367899829636796024963037619876386990670147173172941523041599469662845771168021230276262920868724145661747346407322950811359633154475172793611860223488869294687290404282423051689394607185644869839445329689741386536668414276270847074401486967654873458537912917178306146545005190159639098937994051867535705127363693383636334061780667383427434637470376842551937411344856806780952510806857452549461228390448875073106979591896584245932099448687409096718782147517941192581902134539770944894481701887803526119049231058178256291791267947361472554663927368092536140735786929195462112072649422445808261364944330926208118876204030652592195995397073079695245285132838023589353199798488095348007742891055808870943071287837807087776857576840887797569137483944312440593938622412304218208144485948906945797557475598938974944193350003599166979598264095309824496487907835504546890117893621505734289779881899455237570848778197396657191159052663230670649351916435106026557186829715005619819416655528796456566666457173531457656445975383952617763147256101338236867831392087758589211777528341276266753197455855940955717722820246487811211687712366901151898764071783057174390966132161814783795148453626357989797369395554334831241948397798914404462821863994734586511093720059435677598508930723739243442286763189821894674413267556047131531305811507899091502135397787793512777877968378575527186819965952885957778007497692399264734346427310368789365053068708489543777318543691036448346340886078158584451939969088481855627701852711422895108785755546600679773714722192753401011862941751092851221833057965931920215705578266236775355164406444840385821110182707615308777119287791618722843835739056142369708834068243026627177930108262037756683526076272606657280396663990517333064394874623589573962067544602670922394329735225962568756924391956765923160631388947586627721018618242045446351828688828435308782900969220811583861028988157339423693334889282633173158797070374522040588284173013418682365562848569353636027972881449427653464191257033180958397914879231267146369211761061551889377978994607531692189105631869479201072373081074628915952829907601187803649862383386696478836887900329186852965368742501787470917592389427539279440858722136343242528187635743421673036093833558390889859631765763688408148420472183828119049418272447221052430290431348483146918021433193827495284055630050701233087720583588725040338953086607120073490414828733886368461696012769298233975126179427439401262046147699462860173670664716831772138385135611088033271560410991993548992572127461320593481848971288940900441892516036422396945638350669577683027716047669329673542350541932632309267369389118027317154208129289488438058702814841783023312073250360648617092062074511024429620909993116136170064601657632561949546646776096488198765729364063035487315172155134862564329510596440258853007784541926366180890079690498219843931653202778162947432913838671898610791889982595087311635014666405157670880196949696904647909131987950226700850685907406018198040753714521796892065779954063557032780278904261752384918975182830944910853013061144075149599145427877304025392849636649834663348599833173892817786066662204860343783977250702631232004388272021073375230832760285279109798423745037737372330771410348483934671088879037758284151029128785650703288413361694889484593900084654872691822987868692706593669867181843314465438359507425311829386686543857553199944646597360440799597851304663440563512348758118952842552897468154476070617648259541185549051649282201957620442105050363466845991093184571474115816217380686093592576880579298983049102792345416149192316512574776312291961287867563126677888955991570760402471748251663388376796514023758184343576605025652370422045584353141331682773609744732995519795803186328183904499842496825467238603466611208053487991173467092948754159290514271930507939715776910794993573714070793169577695262732610061543757991005440947948378948125188852466603593915257941998809221547242903306938494204297757026846161730413209845082563564421264026635413275534092559268941373101184415525234954531934103543469648425186272248943283870628954787703655830842701794141142893727211493820830060462286156653177089463099167865242507759007495348638836307060184476591340160994255018232876077505726345603450943893728083935755564601172554608943368358683409848274827547641278531963282722526500548836571015481847579475626121920720158808296276079311029103898834290117899050593650056751208321865403356999428326150546221963406747637681305445001328624843459668521899638509947184629009595482332959696126268608215732208327789353042490307031425616124180605540318431300299312232112737186661576705777152398976156723297890149859232110906368628410490612077567810159714153317613672107039634875497345515608333619007311763389261277048537670717283750047888625911442631823091837980990103226813224913278798605660659744416121332323337614030764320102481791685351074866852051079363483033714973555244389268907776881648589826646749623706101528710952110759921289009307576748873702104622415291353387718700982493754820920696043688655634175683799420895009633770003924936713696901127200665891695444096991428120000402646567867749350310852262852085759390720485680587046053196343464817104595023467516948429613614776351933199954832636417651757566917792088288197156973803723552556328084140285530049767518826867373025625851432349810514077005183909903801875235803504089217526724139113691324169257825867449115806260159915614012840816806889162726836312002818762687504996383100542823638041958747360593871800453858338099779274823384307845521927545232655439841315045138054019994207726528533232340227573377556425074271082995190130972261735611977815735201778070998683676796172331533878985308317716655672125458016539361652608613313791776201424502494156652486303696583852733168233292846944724661166183867709612451616404584956770659137032744722678532041383895739435295264993394467503232363236093799391276878830612339519807269076669706182608127340476684051152140099011150215116097765707636737327830462274782915579935597041833759812318475116114198255415000800947586939509759227316659088080060719241938039282197709536633210377508509816917871851470932962116602468411152625366214582228982806858466875669657412184430764601132386466319426816542041591588531990658127455579677349982830478278463854421345283594812031648345651334976780408075865744044282995344893121097535887456530823435695739471809548034894120185040756426534857744120249760117367669630793518671058529282036444567226773352246688029862694590568855056918736511667179862394513206503472859304421116039597113629456495736715738035915262605476251086502504933857145232293326542463129538857419233159950195593953718616021565155063664793281021875198947163538615055054569162759045221424286323144798258884465630375076979123844997488646368794191084237477336334412246914374704785724606470709925312590571374235795828124621953245114956187626441490712632089700065040696479700526205248913102135503169769085743762873664250391979415945670900839828986650117821442423536027611979115142140205188525662923453466027174867966891528381287246125442128121678670706550819130080334324763035178198690428596998175058819381478445627962935268817878147955781611980107108651073891103234503533182930647663497013034175827767535322231766908989466907032116646165612602701030214155079504351898259376012739089462629551598672769475432560428910532805556539456623235479939374720131638933466180316906679430238710971070953081706589893204033405969413258324689269323125083998163749601362074106789285194335734939686430786462068799145400270847415913776157412814576430685205564695572862180306815820400844867880193231662751552809403331195584871114220254444339411099202659065763260928522652374187595775689365694528754491186106247627625744969923547111263889060237193328956443531520573728963298487674485877302302650993873993858019678971103991089321937436149830078196443989652481750375441498771269522120320041098447192774111950379124646993551898629877184266980198039743081980951927793207726397772297951004254564007404941598982849865581553835827614680910094862494029575894162172742060703003133985775717459599988706475001410246040067680057570251088229899510530912386486551406271822703167655467680630045353225303106321281633975137142843921403364094503292029121664169129214299821166850778476101221790388788086788528137980756224856230575429444953396906618154018958044649564512293124466160355905806351960424331339251343768859215245277360904769800260834251665459456472003170278717900748488262096277160583250405170672900729240554941656807769316721282774952997198430171936624461130485016163633955489163818299899673375435504445224545824457425499304834575342363499407076349168500040153839776943875808803611152703029413215623810002420034058713386306145390013568369841956161280129940211145607763700768914976716674493307600717164901688912013933604720358095602416268466875946548761890668460731662335751716065289324474558084679625999709500534316359697719289016277608281844175447099159008444868162163275737681515157136782856343691633908346556162946631381825206034719757261486544725374529061748290441646222250010163989245201715459246756535118164040213944926301730897630028830824799564898699791973984453526895031152560994256618536229178038291698427006789646853228590346258123105079865272153320164029200416541784843778505341126507856414962695078906150238240645809828471909784182779150052739023456335584909372589278419658810619700936332183006757429606931491878748598672957959895429200529945001773440988714596447056910221570247623308465058922461092403095456530693156423388951371900263860464690703696926835037945507131962002483712628237365635810749308840157734083838305891986947371089165524660969950070181521962602287289832561459442251614549150475901069824023007178069849841875097284771223967452327168973747310602795203204848079481334369245845244175917394508593263299712336049500238038083728164149322263059573289688255385957130971463682305801594972729830777535625049975657196732547041475889850797774079579906781092639211370529886810618536743555982054939254544802825297027394591400264102788570905069133967580881078549569954881179507980691963027947907049165528507760783443944970000422505924861029662010950159003322930710840875931737300381888745402068784135468020958402333831252527672018599300609192944958815513798183723881101705804078450344259102709529666502298149817439716576300731801716800933766637297273081302353383664457910590361087283192973108117440874894883344116247383394236335563689907391495012723426404890473739385220491895779605846487746557766250568057467057983553024996868329016712713519153683193871707964560680510916592599815694722822197550897185186090912714813120357037402231942626071775122307314745627437423414222562115735714359536399473929726646550826759663469984633060248886051354623326559347002108023425695162575032051113307475738162311005831006826909685518326845659088256256828894529712864582949426213716605241322789981881465877516828762811888878648199883460279824478340947632466547500732079634890805551646396810992048762006073039395438519922082835813760065242959164208945593547694154219711066533108881029004915686058757511820501627708454857941605518460972239610872787359637527640160279569147690021149453854627293949862679904487117586924039979674758036786665288653390163115621765252398639492379194014081849035462617812493552051865363476012383622634032815589219983455759651760375086323942527595144126028514918877225337616015657964675289522165564427018662706767089424465181691251737427229397672298170334147999447384464175741288648880186981094196392734787662154536600305846025123600476136761551277002350874430610654304375897607117269179695284594545506078354419401266796841577143586609058679667826495011200420374469621309750824331105794772074521993759847148713342272521294183718729238520926610022652799335594045751384011817032480111082436131755932588057891964572308449955341382999396403023098748407333206084548502335114241394635704483038134754173174524565193879407461486668273653717334451162279672118609237270093911091327049509597328440849483158170204218733541450505782866175142871610142101024422713340619930201667712206094117465585251291700543820146582578819993365589377394241110075542537543650638232823826084446896151847486534523370767243163161541671787565043929708188185850877158317070950795448592293422909129203099285499039510976831643315432534378913896547492378832890398806516003785965548244278442812971676144302657254609992859745662055941089460679432762869773597821871919731046599771487005731698546024353999481159289493117326107047459523399296375447188566911961163581093080644687774335878596929625107942414149208920584968491408688555980680218826533875904920392689781042914380153967305275332279617576785652706506014456561391742941605081455123360339113511074335610598661720651210547438123876652861859125284765241610291684646626200002370387187065887576597908969996345152232314177181635833827015917503479103007890115148876033022846487714018315250552898931665997886569111356588820125006069130803623946361650136525295966290671220618096256020263200694361800644906219874995451477481405560689207494234366640554934302868916317171876673529076439173251839999483715190986179706944643031944262871715935343287419896967985964048942675040920831659776488925341643848629309751162990093184389281774013520217679953688569194142458537841479708350763721315572370240047031902462186970794869003540120736657132738861329914560419950263247337544220259273473873424272791937006584943213720414434375547665849258145374803746981179117808193190744304247317080125866728493284108397198016200745052806139842148215334138739344436596399744926183071076171142038584358663430360635178976308704396554364831871760354598466263143804652123539782776442930117054879685378659374946742261633875807998102297778997327497619351006072926180101928444743522740155038690359245271899713864385802850060368518650394042337508930671849540266869407237926964301118778404381673693379688539609494372323355717426075032319841254252437783486080103315487336641255904690688146975768682297618798238367635241414619441267308281167214325605894726136253230999847370873771274997479389051244194837433197650805185115868532615060136610135507867415706619408850060680466438667994713795894721505662842754269106524922102534120833640523473790153907252483008917493004600122528645150429611268927547168851702783271730679148423208986882352083122335415123830069102790227638347239310431643308259158137230393412884452102297809265724758039543065514650913588537258830057931392227487807972919903619025711149592773739134586097385791294433028031736849244189638269013016209683941037281995524609738049779818273836331280232186265608200633507847039678814899493343538956038687937907082733552354008816805550739951498399623062083284200459295604868983382861848420490516820015157133243462952059365588594040606523086872304785995620593648777524970097857365689816670208716912810757486546640521573601275785287716925737570174852331576491001153406705408527392114107214527905828800184799637689107265283963865161674389467285324550629482893573539109324642198486539978360845349282107299978028078690205711857849182057905501691042901969556286633061783250466445829706691541203078424775502780382147695419764568874204842559894681002716318426422061103812884556896675549337667031163305866800742723969743589726350778126425392615970773187176346366148978834358560146382205139701841939351114086697598924682222492837269200442116006130472129543060044779752814636575521250218246055397549899860427147067540885935862776027362762966855601887871266939657386934766285167999073082062547810102442822760303092120356055986370925988009724865552938916433083749552297475577816125781493262827731514440285380490641605047395759007004374892054674123094868835323162120048315493741863094320518672233286235699594944019652133882062417690014905124468885877433000343022387280805894682747392830130725082435403964342832965542986622503877375264753742232685344358569613729201915675610822620989550492316726447510966086903163662533709700375348487485715072549195629628978909301802563709894245314291621149502953920067878165858592819780762203717276852135136727662156796841886017982875966853523150728804387293956688011139531722649884771246040430994848288362106573221548828748966476894344701152518418813685008902100560164279611726905030575581850852456510516860281575711034342060535343343885988297358059072208838471165769720318945811448934303858161399650333179966488104366772349155880124081445816168388632349189965005503759789294993140087611184851530555406569919656258388878412936657387519323658615322946508911990563464020051647053609745710669565213274406549475027316919890379540669448774537743275009917845517481398044791157266134758025909510030009929584152781370286508467169930438587962148872390948687143176387108029121889860057070813556593761400224793768346641623477068326249796314456108927390369410258568282356306862781525874863316251032359783514476625225270035157270637033410284069522245407614696956739464711928573336592497130031090126895315749012663158242463278661445139863799254226748381564026827471570595042545772314497870832935600933013338539725177751399765261096250892894549313276663198248942067020433565058586230068870938370438306981721668933643664226895646182167205384747332462728391925383486107504176244705619606219623859658535137735304348036449704430741669424821148340396214103511090878370022884553928131507245682535904872831751362745223701761818911178377961343294329620911083588411980881221965136537747638270431446832896872038175567953565008242175119175918756048028439266926990726133345026792728201332302492492610209236559983365710827360980737934149260012658597810284557188952951645013048561656847886474775754022723138675520706023202098004091584307693366054062116899978684178079873887527784930673222262075104301500320550461165437142164641443388187129954582390786613257904910900035445052062912222185705482327891018590482080821518717814064695088252699014723902528308645722143402751389501695965693352627916031947383987183329766657077341434122931352623507849812668316507120726125098054213161849064201724086459866057837656270918121072940750497913431008988498227493721267975404209883426863353018280048648252513262951917540085909645927612708042290692936830255964501548944009772933049337141094504148817389059937301578761390015690274860218309713407370113847760295392886837306541977801372741185731001048403578593482249380986000457709768034118362095112423337685171213353955166717623281347212049469629627482421803184385529868888849480081193813195904542408361985992863359058178752029677521832162769320148042118470064729846277490391647758739302999888920465688641699222963962817791715464136785840490783603085786114917196589145257303974222889762242923425211179994904723224252574232598841327827336234363687050628427074014687822503752540136063442808166088292845763455216585402007290453856379160630908845941262208659362659518179166180549599240161051296390570885603025959348159738758528326759874603623826272365589100689516090808870562883934230040366957565328632758678571914173203328406280777718985136728374741589530044662816776989578376938628331095881136291342790702260500772864553460163981116163874328434741282865534978787563974843390902639975990117090738507194908710235281532134434907815466171539185673285423204836953414089925737983862915864175242604622636280287174568774136422266479644132299643738051560226238967000786154796091744351549179188202423444928345894894810863220059100060888132333799212956939005545281245251040444989860293902594765872286933662464602288270872996264125750312937859873940000994406474168111622449355127119101725829040199433234979482879634619033361257168666275853467115671367352364389255465639832676839638356205234705377948135385712126414159271529906018338125966843200511080968834396213218960352594858093896779449708518229057683775321299512089827112450628780433587454402204487126331462786897336666262288768281047687474796409234589652300791913321553250089596093465486596042959301582762264479732395370499867905428525035127351393893333573647839346280592888390394513797765517269723872590678839087781254827514564937901392921128194620324938216936893703914510776960490229965209132767035016187855463221825957096354429548353199372954417440372854631635589152079735951558532073148899364676158251994268538485172277041611013871006373728539294864483985501495048777094579866470952140024235320205746667871443988587297563139626951390859389121184100945523570097885962294278393742245775313802665492200503909911387354216912016671980379730186447405271945542534915195066613679391668830757512309054285505331434663438326084539784200131645877377657782306716884309326722950493283818397273205761464051982818210644384667306911296666003723595431775386400611623819674045072363289510260024048507144843403632262542107684179864421080190360109364149850120790436012725236378917344706582266090732894711909125391237504767038469683258616695523762417659921957798922263613923936409888538409964631283380981677035795627935240952212287266107955059170389106376019257673540411210201718999485568737366927494799766942244603184875588140527297694616612302144062588529211064505297702891865015912798389582523668904100747945153228493063580657218245114202267548207132289953719827487294318435461728298575455471174925617741698330303616755268331960309937159280767233604228850105595804329334104841264592866602960790374383665430746440889926124358371593096517556417195895056335178170923429419994262566421193432159393678978948248965002131316121248104514032339895465852082458257707959751721681158140194141793104885418809467720702098022048021031726243346967131703018756254554822320138471649233826407241503363209805908705725988641288172228240060512420129300769230151074828304637775437887969826084640595948409238723830981486299724767379548671141737196265172178702999133069569284531076819814701956749040335378701931252288942076585447992633717338917048704600530632568838871040401464377206075040116472406849654893161698858951143670054611417928630593953289168515513461511989600889537465644911839458287666650486496243984994544436495020957692003417832637071853826709600860841067519863252845371488142774932424031422165348971364450550016992887853042776118159277671538833131742675531843736271939389930184253275444173754284860077790266860279579109491213859390409665787172633578501162118062481106322785169486086970500207493793412964550425036277458293314829636764045880605081131443660037921262951855249185122166313596017057778138557426814770826685872337981057890312923081112627020428154355207914390209678568854519293749264905420986174601423984581365240714671230470221344463116305020830158856489632142874833272633092080750951426745696222096390898018881674320849439128345407180991130519290909683539631589276910743631644022009042267177901221674896017860968750737750292350551008310588256061938073097888779284349976614538872647298770886555594550399089487438201608028330418198714076174267781671740361706845249913869106801925327339545572037984502217543547863424655525251665719136251017958653806148144664465789211216279463812686415513719810858342159956331786943258467123590927786963159088620225487665162829153757879555266411091358631062758301311839466148645201046206979620965453554264876360062115213949067222731252272459947443959918712528020770524113859468131887697179633735318738875958854984545474614648841198159021253026104929189808743418545214978895761418093001243701686866914728759444594295786990132401573080662258986631185109405226287255392393898615840039328274535027564315065785672840856779071762618727322365393566528039762042504297499271477983873182651354931687385225290604072783472730143650683156263184698355581359967420744274281835922445402987194217374233030155881828753081146585103509057835446085751999999562063682367576045333158730171599027643240357579139376723680531300771485073491290897291450762292287767661806876865131906089602844559660990317499543817885942548156860360209985261994302349117922593238682573552689945213123705666891549814125610712787678550482795928174980424295458968257037925017767849398918845493066450259321610021226629836883414563330578641215957156610342634584185488783783849128352678436686609724941966667554205979710512363106174460577646912388902033192329577846786710645114843985217699773362359901104380698700892424546673089220765751072919352794369636784304468770704802696410882188030657004233008421407879112214843717606646698657800673707399026049697562661884471891839754917869982757039949886963499406043905679524903751043407295373254418174448002934950777048008260813571261022780841150151413664577555431089244921842973338256941525507740394794606151324478529890002730101300914951828359363587280114744286941398274000794720743076416915200546851153914940014392643516413562746838525591510608900559838724642455948358931116631482842449110319625341545607735173567881901906484130375135482549426842578982025062822663564883314076266331110127802356805322889209477302469067821608017228185307589945498312523044306911731721801555545465378637732079300795913203976693325420209943080558556030416141707137232511143612766596480093589640363421193518490940452779913230129036890585630407989227938119208730394917465084303379595833807290036630575360805861252814334893572341261908330699345198990314278919826993071892955355951384468286986469971176217148842059712226058842893681136100846531511777819329656362366834224372309120202251194913066346501760585898664762044899104682579467816276876992848832138130462784650140174343791573955490534643359228392738103553966715589050967807883119183343216691751605819515716066606026905503667923412663933721452232180079969287003220355130611740012039200129222961962823810285015131390762598415741145968890284040784490271685136667328841194006887850086272667679527149770724086912945550552695754905217213118932174988328199172147419722803945145162774090625755467177719545408003311797241702809393875547096605499642097427460280511844866328733340130554847174003721083485509670263840732809399817856557875696144572951691570338832265065731086492651816878912939367154185644175866401627842638294411023981735937796403659447968797929813890191494304509662716607131668079077188879609416247376825433134594911625434065104255222557287300717670673345669347105508993159561934697197721658827623239238064191403514574047688529680426650990082124603701648493834016863877073202705503510077675459325877424344051525977266078884507095137842965327271242585834194146953880760907032728083172509420041755987504286513415820694723737964710050012503066886377341448940109914394318344251358456167035696954227577188983711634415526534319312391909839283818599762483127596136693916171843039420820685922804026091013223511194641145586926163622820865423087790085322203590567172092154970579613645107090559551183233605906902778535354357318913712630977113715600054506785187192321446896430099720796521998074707403275502602082617242543684417488176501294276817291795371872769171820153382889235457389994969188924922628643741548706973605860227150243204247279631115185229848892756677937494163301376923031856868034317684483299827794338180611203183787259398462980231103939555016287641075164094080609728758881734054976701562413896497669463784160638349908108423979061415093722418320427709688187962346077655102173456124020039181400927613231666861853025951760778284596705988969461759632771713311949083053166498106034411485433292612167127653709656089704765996645238440289880170782112104566547850346846278652832638538584718495941755023313537240110649742702213600293314123449853333007289658477249270990022537816399878082502092092708268648124532781127991735723923019653924245889551084407920451080707974830860911191301490132205428112165798979620748237487043038012175686426691262480526664758124438235882408603745534431858951320041383335953086442649333695026404421703143167417171356872075298891700329867586243885363037486276837321911314508757030365359119815767002666389523154922227977140326551337708738375049435444405108758883639146679290014874232943841057672427431126191925003075579330163847887243775981178292570465262400875514827044423086211611996905568256958172887361559976307442190164012190554448423981619312386641412184097655208841882573522918068199456647440724367565132847179642565610224278878516497395215503717693496634258722371587001283752354378993698136315617406384648703952361654168182631240551552161281323220100101610726219321822129387082976015214023082771036553208617156003072102386410662077916706987926938723293604922264764090804099151565767778531141904363263983994825528405632619941217645905230544302458341667027929889836753032734777400911710814439927935856836648519248572091087349004989676048994722598178394416500899346321790184381270878965566787738716974499817447724628209321566730190145775855455695141505137378739431881780379975670151373959640115513802784382934044958623862396108009373191029189558685751703068211694528441854948712796263954336162239624208719262846979122957264167190168224278577428851562870266010689104548936061361175416239103918817732124903193168020751830991535300570217329529703445044057339188201434210410433400624553171211638684455745867087085939717593529477855003249909766661798751012521948522046433169630078459383375971379092461415156699005303610684102776665098781298086162251199997838688964866561529053272274369087219891011281181480487128043742333057584376881039050883558685320236036633317814509026782150947482401074410872871627235120976825326685962508874917201486063067952302476171277396108520312057099187737158828640998053977932807968307764699989197152694574741308510088327711596184157437588336532375300952270826380289100349689199145071128088852756763311248296422881520277165664300555837502625276355118808629291624221006838960831068179348046167564845931897922937959950458198445505139716996666281233776212796817215474899250391473001954917623332712642777877647191623035405295180421632645587414185942892174842805353960525489390575289062691830543318806567826336156883261404542425267726504298290821008709087713317665100811902453274770444264252609274444012877606321703405605646598014408798946542821662019774503366726748147674869420141540697078591878314708490433791450673599707134798961553573142286871793019203850392977054427480592922203821533998636993313506837245018436097331877566425173883692412441354743883752825392008756564050509525434903907988113325679975096692851703731214190291925815389284407246771452558513094639196692910515015741488103857260997118600196207915239382189149502855723367493579068797655444822799645599283848119938518984557572884323183645387749672490457770199028208801689293829557420952312142830784200061752144111854938211630613113109135661550935540615142144607971698165040746874753199024472207713301523650585621070762327444711150541433311457211248164361423601327286334485312685106958645582024666719987961417641640484134891941033050880997045819317409921884766023043871114072312186098714507541181141447313980308756671685376547859120253871348297092373196095200861538616941041217798427462069028263141162070420080759588044574506378004026212279321687494451572403499193230412392402751299528751516892797447601861935545085468759179478663071467188185259015071349120402419128115684183731228872039390916272453164615102116123258216131138652039866328838164779694243557151161374358762849152986274455687704280357738801860331571454704411981397400194395567239010216043061983861821820523838828388317084610198658296706084364077649802342428149617210715841291778208353331609680584873261004852486527110221540191624384521001281124366651911334485320936118169801198368521349244664427495062687300275624761636614677262010336632629536246439147329114328442903978927596046238792685408936014231983321975250614244538011067921900897904735385667557249638051933248138059349097386705300671827188761584936508978188866917409375241273755830246058157329220260963936449698527624188100505617036564912810979643068045253792438897980892326873478721858561989336356629665279820549835128396167312565944379091413785308447972128176025719020499110847204169681274077596294239545307489736871874502438022275928606731744203704986253780147362398195094802162721149950496683378556458068994680880890886108051337949378587064712489186508629382190654672263928230216772502903256365973547483601853372001830609283501418682898246292442507493533211007976272021732361796850892766633784767567625308395013023375916984723992694156822789248825240689838598264870019421974128876168321069721877999418295111555516243611633411951003701161298052183127722717120066374316722880814536066824787633489309210082100124098290927662761488322857098674776396995048985553001348059647475357075759539023374166135340905303029357436198547146358893849260126193228088264474878960373470694341639095382312615373664916677096994642026039371206540351881907621344802829595438213089078568508713882688472946843556968425817349672516463170646498457698857665540959894215744959256251131691240731821423164675632480815380909288582354904618925021139646502904155705543709538306141359289035505686552542950341232185374291636364908073456548264416041793337822416694027122941891110758525647592522918107430806031158659151596830312871105858489401665063891418229658721780087674427418563631810051489392644530350136051723360842084805556962305028206953857864398894205019376831169555086028270965464664190757982498136256719778352312540358160465267566882665126643536445500827349859696227747841380424494193701256107361828160295085256257595231786753511747207519964719247318452177881271964975341285726261646768448548286526185504819363034343907580817828061512333086934737773691278877454414224212109791386223141025420993639921485257594911564645248548923773027966258013818422107320890524606135659766998778345901847865133630767016220725790168197287124867639875138415858249732954715634119862524147902491957041318462882130461696672973542993927428457211991656566236848190203462462197848971134815205042495034095816286148690372339568301505806635170683485256517918425541324265250033354357941196095713161681549010069612356866049380943271621036861618806988234515800749960292777904729473610207636814864190987406416694979630866109195538280698072456095975845414682432743385011512281709683358897375022683822943816605846118060270266611043709310284502525275257502451532924205035591308795112368294376208644102762578440318352546424748431979064041906745817427106461600482932047418434875362240649137820115586628412383640248524511358567961103366632896858482166612880184843803075659417960850445431048348525176890835230913218843687393115051393013026262828814664162687096673729809437234299615882566215835146877857556072920606968999585174541607857148656086692960419625593124636983979724289173649828170811399220108849640885901739916182814722937664106728530761306361746101665996795368494689046264979307808336377190347193692061466417656891294613764799171520264397820585288708726355618243987553248430320666933090420287515458767824248210490443971358305349333133647715844745117520058468581179641869242025335325289578535389129554873578003680328747493524669236321700105449249913976507981221269120187795132304815183728854553608412449720767531838917579354257082815405999500996038756947364767268478266601605026685417700810718921020224859019811900655198909657561002135466644237132860598189581730361125892849655818866981511904300019005088644423221277525078666033061771080898795710293764631468458591663678181021893428117737838749986715738978735574416917801814948534035241665806180103428254445370342741844119435203319522667145343499340743462426219032341300840445497977458648718284945170642997351031719065837018186533261657513755281864193383089907181641058766812913288457989451459567108554916781282963862336352315730637731295150373005271651909381761591108916610326778655102411396695032650072210099280714415306102658806180856937118747168769259901185251406600934770413434427264611317618343035404827658364694562911670853893489674668331397972992277692175306392250012603359996102703662641882664937499388596066448399115088910968227085283882503860122343446246622663952970456823200581426837480863075191774087785354581444674448796141688681629316331488397596096229054683868491573383144113153127911186030598669188499799018904045340185492725202776846463493358365836765642720973764860724484109519941709118104083503760305567750628796980837205588342917744050021661978072383867994428240921875167818086643797513451363098495987144890682600532595864672823855878557553102265042022956517513510845989356072400916416192316500994834552031350325922517891336874997507919626894775761320462793308485345130312981916173746000913268980486868663638863901322487159464250809711588101751831649391102914776362517902389724983252823793736293718236782013687758432388691319099892182969137593337138065491425134540022726434087237032403759120996368623641224648855497624844668012702425753626810817353770592257718527009465995873072552755473927634799638921105507302602479542071071087095347258005937200837889555992339134659057627094599668410112804687025899461588367726594586086529412371438525815766751549606087957387964291168415310318402143241637235481691986328531228035776684668631476665537912463299066366225249127573014554901290090278107856726089268229558063928334079119289214794665773205650522146831565737400019885977524947927363662478466823412084213973883913697087255627557359672842266219349448980421585211164806373855720858495067644801245131440203819647506577340323777387002841606791425741587846766182970051156831291668085379989632684784543368105627352996420511415886995671464608761155848713134839571352979979218155607404104078256385997534932527051216146684623900773683692003386295443489248782112865737753875502941465934875153556098880216107255083207745789457843323193364442049234561240692466690429170635607136233094786359694351983933298324038210121405186731916839433359761214238696373779841399815732868221700817090923380951400595586926871397401134628704669831366078610178071685064710428726568560533000290741807385655610777262817194566997542594123063280832533084450965920661513017825623168882040737457929933344552054457218067777334959466997164075071682504425912069545086334344589472004808061527697569996424093881791548621913053942779944473314034349932637517742982404535032500064920931051048008934120640780690972156376346510913682687989224383418966978563503958110031676070323754809427446423791497130801159031221163541217011181861680923860613515674076544060261247995107182270640612240716058453913913763448245843128369545029645024892050305940159280584868557130679186133372156570337547440474111228684949835000852410705931377934945827168821576760138390783535163369787905735681564359981172719046962706864090821023816976087316980434041563579135468762577075893387702812699524531434698236048309593903013147808770440078542673624107608999151491968382484715758157398352836515289800402815206896758309675118029610208200210922771584386977173027030298300816298911363842886740268943036170936861826308375494311747436631435432951199088303378671705280862893815756829249095373475368192186175490567143378498799599951720319769380748004743524321679890986257485957509222673966361234302038868813617810165105667340240578407958902306515189864915833336199097290415724648975348073910200777958215725676788154366241522264150467084197502373074542529535174246870095660758758708124060660953481967337935911340346616571516111586728470583971363951644532050874542254840517928426382553836904009475194001945035405811829064937059399927456122175982806533045579632496081311424097751831261334983809206584280076192799127835417111287185955139071496541067118319120442512673925458809194302403688679081956691069201955304177375536213253458364230564415699543678272982634682828443242888486534454660821994639475476283420655454690559875853612196960751450782980796372545721372821716934733368409731355361392005786372444189334769754921368318983319561181407186457569931168729209009830205271926737835862680276455165610822502823722514692088497631974995979231745115966595130582188762406676233749963600656173971136709772210696531628059024624621764242501751727149508514656847879758914128696316756642882745899320992025518779226423215447134658512070300930261605151913567133983149436092224932974822609036766429164674874791114046733845868280868928763795888595075594863188672732037743115135555728888544211047595628195793845140614658191429569375314833246406939969172877435887896593846482408431698221969094675012738649889008826449070255677688039965562508018601574836772922578584523486952536372585404298053848097325742425708992814144963381783599050991992622558248930929623209911426114629260992613037798675583789970408935280344348654849499931946986902688921752695114212197580658016377115383026820669875651148544367402830208587900239581024191661899643946346029735009686853863463968763890137230055955185999652502692803427530252185865430959500111814398505498909891530621833490243438845138603552197195841337629498665384763037978858796676125598408254491465010666527251971864998836878614789444487076864418737391289619957950204997209792168772091219743382960424711695778070308002485237750653203280086580763587400671360468183058815447731282974583332873969558629124271029197804968522134235969835576763238298556693689251260096993648850696248109827052847976547312161142174033331835854091906864745560336571399963117505084513733982524496652937138426105498625510733219274371145613001789070615761114035848544139695388473559647945688135188510779520539024519176743631700874461972303156923683884326600828208506453621535749817363028324366569283922641834903224024315506454541074422142497227038303143171299505436493522834379520997813268013055114353148342198705894795749428131905506976104246940867049518121090739157504844053941684706973668259427680435795892495993962365455797379491337303745814862899279876715873871556266341112784473085445161775083515718311467205386725334870204155112509881967217625751319696124238275605387522427556084039407895472958599441524095140522330595607335480902666063246244828810582794175134177951069952365569026556916465372510809343895971921604381661213574505787802403282149765835225168790513975010411955616536998472656050690532419274276348377192458898335312942942894745387337044390818730695301168891858631329754868775723985147836280748813056335976162929409018045507196791821525332003547461515593905741335338045377350416517266054874746951110831651904968614357305406341059209507815081962816258363079300450946012622463372817412728500359180332056559040059156604702941656802657485795708671628911188423445755944466265641360277989469820195991968168386559672377910938449597462605264540044135368503459022394044155475856108913967904460607309992483092795134798988023507810155696166515091967001996734879808406335425136483450165877513927125479334254619345612128200685781539679228182015659358401326988541848981525650872738680691628947731886075553667827701922017051897338339854922912972820821605887203200313036299451324561959907151158193370150945078418806919825237956458593556557762943621311906907886805783467171772856914202886853865742168331191284047424559702414012408516209511133306708474453851132894624860676158418378345184748698133634626530129268099712168355977427331313539161450462970515816799699762164260788071408807898513717271957499217266861354814259293443957149665992278286853188077664934058829060466116982251801954385677015689066211395831636980606399425584964372676797554986630787904760683796974091734856621365316398717302980466879358443165895031374403321786073782573598092349990839675608922647852912284214303769606324980774106422021535238129137057696440340143134166788137444444176941684016968966254964203513888849753223804337429132784734262503886463605276722340659699257779075481827372326749528783090980815698403766277652902315688979782450876146733354807292921165143863883533821059731239936713899587854550464518463297266045962719040989569673025751241801815084586394627528548059884517573525702816962293839684987179434014084588459014680864107706644076378251293744673133910484713070696992732821465942202372405932594529644011792133094227934031425889225751249218979388691125997834722820241003990220247082834852243785037131007286677148865859186879796666194074527009343446393450691363490079774200180237468673499514522319581646813034643734268837509062492754265398778434604330424886486265752594911631178520100895764228004670361589290128608337888773123760941204528355030496453154206807975168457999707005038611862640362938864960206494048690078544605308119753806693459479669393168805538534732587909532707528417238470533254026989844619150698046702058823383987323474626782489938169200664329855611934505733944060440850587681466783864723903991233979225321183341737412588948615774348122661322304345494722902075565803246644120615700068412422440480797642095303638519272295861131336175603095629564461926843527554337166810137359037770114410772979914095399235435193690911262998798645267946845810199454348822499988925466287507644583531203962640125774948999578259508479048283665649394454121520782831610808965123966264523488907304913044221785099244196150670739669572891354963592816157252359097405664956345785856625616002761823796101198647628722392142889049756305851396297576934664752642769260659822195713977727063719802781251500148784612329208212801512453002456731224932238182516122799679893135465711946281152956467857431864279013144432323926916797798611595712465951366132383143352120359899774057861591679328180405183728342073913492380421897029326936231673145922485453965674539403352412795314656880654751627482770586295984538199160056998562942100135434020411706616342990548599950684165590545122419431531349149921055271354395969193274612174917438004138692820511454524689885582195180978469149058996042894289223346272864580550673260669476431072562130227163154552621378754880192111232630119131056402575262137467814923812579388998277716325759287316660608850663102046838887341342471433674968598357144935459684179641716689327987616793610156768213396028597111190148916957754404594975105471429765488738442566300633360834595941969063777706560191115311899934137527508896135490682261005204797353661784337396973792576277546341783000659734084251761112369656793877702861548280384059478780254805537638304613508090738648688259357005273566086972862982219208088299492981259410711690647630005598847724801585317128610717297307910498080198947554693922370878581283116335563020195036664396407021333341511503775047380720540813098379660518817298093062490757999250105603038845988119043983566029322789910784739548446321554308559493901779156207369682826645040757450181523166497398360335982094257473525017446156816130343372395092261908231836196007608962394621999376450632891701457924573588608862355281324624065035019947627136000609709142326830764904543114002594859961173858580011172711700323047160914244092860665541088321020735774373670648456019295885537793631511904041380261533191921918987927252928349706281735523781019588485978714561182661633892327453973054879411277796914277535209750564789410657171206987107087194198594883831194465102507888142203167226745564086345577981348101945319600849218184105388773251625294805541179481712941227116542510103849303777260434235586755612156606380682714444106456011749097073949070876252040127495046372659390396608764840104077962372837358450301338293017572618509832568829954357286560411631444431763302897179385703752891476147742774273668996897556463768509290982025433272782387141856690027416697885448790355876768802712427909290363322314131113261014999539891940078023017766258162667844616445707379835509156177383030977928286250035884599894766369481059697390641644612129287636753027129079646945218131605622935495229808569027855757360810173192283038474974197902586439312594290417151652681981464355500159499437728782407002657369178267972714124930598293949478080168342319691373828645535362071116593442411666891057462620767175476861576632439085294669403978931270544761332681916090329864317712295982771969408667319383051052511635425802032338842079721643947701354217874768811231032269679913258140676884716190650639054973429490367188405259785613384892561172029571685821483014975077412791663416548373851291915963580420471484900538611359497715047175923051526001650533069214022993952555057637780946148200009727375098657185925112278295207174381588983540580418508553012066864676150772745505377732637491968568326512334995154330184366015589499396910007176843003127285432252061981382064199145662843322194386777630174669598068439836851744551843219943220252391252315368233821202596918574634644633122324551389612463170961690014833005685712856304138250180228162367471584830478524540369213552993334794113339906556333476147946357528078463113576535467259599803139201403006115155989178074379253050109720433351164019682778970256995482498228820944619183270867831746272549878173511361666002854419966264885493652134160044503060102920240512669733006930290545402797856924627031534407819161684246065076591205130682109618614812759349622163970128389228014378957879417287106086418322122430916007066075355155525272919616798806601766183079368291758467782183778789027900768646451514527783231894243342643970037620901270012267589339325892962539539764341910328346744667097195914720047843011620604596394600849046640212379377411382075269143943883881829957275738438946884141510467623239488338997003003483991747825913505574538708253073671219045845484418724662817859790047210225552072351612939600041479387292569804648284087996635636266497037142673749185057416341951876347388359010722898100584706036334305141460599283569140397143107909769342919100760887285868466102791159560984306527221142678157935165093065583323575418448737361279461668872269197159112170463588256752354306056774839002671747296971445616995547538967068225266185873764345033849001195452236731898125692468897225669859570996076909734576260261468122276646248984857065557519894352380487636239742239584421815380256987191763584204029214511667229819773094640163670091554417134639309304106937941110511146891820760664073865390756611573161924575411784709117426946703102590998114037678389560139967175384879301195282304350348889873539905062104336339318844146505912441845678628223145811748566995841027597350623274332554761119549190520501355542437601031189687483373008516353060728231292500733811073397971839710947995984884489249330609188255363839468813319402083114355557002770999475509404418488034048434928138360737824428323281928106974041019993045463474043799119412968350209558144953472817172354010702539148326142569299029408356229947080500721339819117914738698091326749900630001574590007403035403376667150055527096966567079522991508269536714081486591978622728632852166121338986307121797653011626907948381558786720368316371682125065587229870685563709333875451517043472609935624945564450713444156176179758424659739131152518438973118006553912435839573229434347500981830365090518070015787038810668872987438469715859641906827704070518987522559063801510155431357002083730351473940987325900774129952751794578168994167789944961491833760180842662345310962591053827406294668537209781334965408434421712484370634703515821319767614438161699311383983278359755425387477890624197569892037155822875222131555420076101077838776937471038109743760570857355634621875305244358539038296697884906955045616205682963100157397309810250988502006825832728509562110131529505312872099144728099518952586977332079239831183045480808459150858861102941245494415517744233227102437275772149552118831994551420529090752719955147235470713216082400431707706272387435844131220142462098977226636368766191463173672743009648373324445345195554852497405409362754364425929855137963723867345676889850624402103591530726823469266547805634228250510471237041506284645036445990373881764758676119536818534493248912922177967891427942108081163865253362688104741606931670213586802849691364526714713424228298637698550309127197919356446892334609854968224670592688842467099760192469461169488634350994418368625026502517126851095576649945799433437595006917258801923972362997526468386972594006240746050784835538820691642547094135930598374967140027749909554673822075656351034473299533517192428939264065817147340629733509246710137594336239699103008235423227915965076476404211221379694284863995474118286522321973129362829462647111597623680670590067405114380862069187417833740030142863171734385779428177754228600389652952441755326570004074100146453087178582309991849131786679085410431062211348865258688768652622986229029464415350946227872645511475422231849573938269064486425643717645614043959781040828384173132055847132821842436414388903578669088514628643813298134262731679609971824880531949236320804342920225651454988190856124371953142014387069913951999381418616607651409165726169897753562408654131480155015908826053702980641489673360489569012564357416469098270949377531083756917017831099932435597878248329276074114907283953725893652414836137095872961416956994289209801355743483903373138616778649317971137751365855608307801835874797905700705295828319690607081635448201310695342464432619223520740036864183309027449442959975494417266808124356786484619896190771268595400951644034987356203189215747124217734050348253867505714624637577196203526718981971577264794000141064127446579615171745672075722759982707876551159164804840689988923027348147514750392631864642618817174818244766426942183941834167046857175132202592275715337341209314718621987070015696063252673723595284654117690035658189509147827719436596558107985568801968917999800215975076239361944592502549442437199341464626727727518752038865958596291120933952011359178122747847300550266469062887122787335592488009262360894763484213695604762495728909711430202912595570356387411619180752079145223251364589788199463094261675888555726471319318647774428607104783127281868107009565631688299186062206370795251956242667405581830895930924475591301001566742047602529175119013037693014551457277227761851955661927183122912313682875034202431392204071239848700433185612049048505186548009092528154113807798456711346782689618948567782848937815562271776065909153574156054669178580119293818097728743467913693791435953061447638519851163168602809534834470544978700947450286450902808246526491558603374016066125535743541493506816684538332192411085537804248826120882817097608885331537830020346298045030246137590445672306062890797983711272103287767252290704829322208110624809737001521311740677699751005897789536554263859866779598258066976603385487358254569421674354381738650417367259281430304200345356123572424430729628252236463673627799836329904788425411266702439363735647999474772592983234655408064075381201122518873081065241825248049587047147271599216690671250130310737609905311851198036442292772585073462656635295629940600022287923162498021410543530103677397558762039150644150294286081128690086630787417838287727863130405681710094217203443653543662853974799354536818789141937019261740803390589165620316493747602821643850328096212422385481821441618355791017601263299973223348676077278498170144768727689195202096694037876275301780629015896093718917044184718286727097621588174572259977518015758569398606476091992629951167860764897428350406143641392603522262174432646865545628181126049219553878133711312276649524777876891233941485989747659715781138266735903697384883768978999116101527102231281516198630859224634531805715985153363649574931460513698583035820195053573448254935354076416294600557544484211825112970186678771153751718429937339298922310172152399896907216424272562013392508410090985809914809867420496521360184517355860739870706688832016902491550559330679053118187646346682736650396150981651387566702341332207508917768813377772765782808299012802389710988086476227428424172085466670903306655192695183430449989385315471413625486721441303481531516459392896553937662871408588872468574263662163100009124022139027197160921083534042591775009864301001823502116614788176456932897380207181021496312597196646911473462330238186875304387261862343698417529410105068610864649517914025980659096374372185809770662364388950121948652565700306315878276646009112333996237276054605965698083602686789947866176862013141508847894140534500217743834442243550127606849466752285147574860503976870766465742997414417109098400894991692290659042912495809937898370626992293026588063073921615228667325370335166808356450516851584233962556380645974619049623433043241520596525957002897894361412891043729962900194757657992666396841148785210044653359991537339020998331861630909264464056233921795961278609329305494135734995444616388367550365297176759024519581367026076535280910179515185577405706782982806631354372779976798043454211354587367985485980586798637945462493417248381674074002009857936470712970923852146394493696426647451514974708763762710334187213553024651263585769275773551355747807388951626465092479093214640689287978141891877271343726837414705827554526643013043026868861123312787751480700264799930480071699609685464475347835485826449727483854331818914049545826856030775329986691399718868072709023262930918939138998014893359577199569082825089935461954401083840275649410848615022230772442131717785398419823424958007776290158810197707609501319102822571431698609270092440528126266012304393412812183932969462680976231107141450287024448790784293438768237871803021276379808540109183386279726144854328865191330140475519869505661671213682471431697007918131090829239494602685939031987938997430376370665018713207125095891190443174142772098839403649517045752196635161747072118093851858547309197885176944958858797759479258533121366496129454172061626925503461507769154517468334070695526714781835575423746572336453532005635438308023944915211815492522515827001166492790020379500721801981497934553095171864010759441528771168440437341263539678951152931134430666404003898846921885603032933433732522528773953332784897506452674664642199308327214798116990698299460497984631733778969844017965147730319866015984971982547732435734301610070357066410873909056615419810503925914350763889113405116070366231432952740117473270399444521218115567398887452562743081929622643206315203324264555735573394172343677787592955618735378522902463827125271012328309477229916656239412466139892882042062762975844749148059161844297352096874727592126179942882704428375338234773416777405445447584939181483290922427717995584844195521684063227671581028166607866185565104440967862780194389652917378681689561114388213116515756934115857181464175928567312951135178119683916955884354895771373102002316203633560312906941999885972698792283805672867861958297039042312213599248610261503850963064340423494139961986916951075540451977181359389273211411537992332745798164925912023933784363095609339748753669491389641265199185483000322521458908452047643611978926160667706542328930222044773082098577842225786066781388920014530515195081281752332519324122325681513359398794496471661178062687407939717882501101797580507861734492132569229663569234904733473825613631396146630855908111220952627833603994289932423006596993075197493456309897930847656527732705583707107412917344779219842553596266915022185331570473746971504577385520474949488883154093965043809645090168505817224684577410337427853350520857451032587677306383820040807664236120861960202832767760366358017945690909381022470584617888945024483309619365983332378782827773444374191578653830155814888389900809912872104926836268249020170999188184690552281087507162822445417336856894652585762141810475205822181414051984727505008722788253447143647932432274328683342966726624919182588679529757479578030849137515992221553797473135206970794614044698101979016882465566639188786817071085873468170478411027668878998461289194735212083111991503200578853334591586484307110591138052431155294775071326409383363599395408635105946039816289088652798715272987776775279231393471172573388917316802373829610900245722572384445191945405543235376818246775432902789431055565406586819758590742709279762113567171373029430876557027522221417924312533067643146157240942407452714402967448801482910251916809763414717025341130915064819886205938432648588823248588210419538233364187820603113027819197449531182717812922984689484036539001504599025020149665153570764594601641000807134544251194184474538788669398161762546571563848222639349573623486577575716482042222855687288412592084716912027179847725513601712101523588235244317901132354929964316943807953027431021250987357918839952917891367545434019736044242709019844725743785223830410510960558734046999093457704281963848645795770937982660797975829139202982381770303113781500564169915426040071466850049433648437688468037216600739937380333608044757542053251831226076850196332187790983323979340116499464756085560598642438506797607887803486637098476386691498510920427112217175203005161857848374137653682216188042279046583448961761397929076141389586258182260086610025375517017287587866095850203461450124520840173764236186324465671552394989250133419856482939240957069388266131924238611438429117094606231458098769205200044529114014295099725444031682758921752321685358672250348397353561630491287684901818934738493475497830759571045078785028152937857851196614214462511898612621317495838660256907870160205460892100443782228594464673177569730643379203884840158170160874677827547943532056657861687519206445287006833576105940535182039510570895469273324799303593647526734887038866433601432229838267340313138569301507969142765902457147814342060171940500704280276659477515059452271428287715668850002356680646173051103683497346116166738008952848705034448882838108907189620748443907644282259554107382426407481794001608423951455650698466695639284805799939933666027400132943404743897585527754856299636681498900106035077959575390711906744211968311800162319898223535092293554486170082593443083009820330104683496366529877892425690439532250580173966015372712689738336247169905162812171449932648588747536040300867631836027673221490518656248691631294144350394748200188777724224527510608618611663875308224515932690772658590362728427301687702345137805222663832909193009774402208255437272870119666978982522128212993058791293047453886665067554654532892196739296582722132179059862404993085349087989572315642350104822866869463170937498854670072607510243231330082234367155527470321303425641683622264595669088907791245666787258722387199069212279149212855152680316156685927815320092150778124027081090463881819300043830143667007768881774996534236300298487677442423075307361828881997260760322948695813879792112970064174672816696798830084881725001663601779418572868245436665843963141590727139946589253210305098798972884462454421010808268926709133671347172354805933393062946424335909980280327473935581264114003699262373283777768891168244970149389461729384909844661932681556004841894374995946377559974534364875058693318385603701678253113320571156700729482503325556993935667947563150949316431124701379019208191835414445928147808185217470255990486734404307889521173304107401625656110422511914711960086865777472403565276880927512935418862986443220411384571828752956962093904514928576429396552560900103930252837084720706953188140575309656899725784257456358114397224383760645638369284870446574214839973340376918669080421471973531052615784786620768584255769728937546644425907722631408901355130780273744269243464154289203219349594520781927211650005314380616148765629269937342240667494000487614388975591579546003488486331126578476873486268783426244466242218710748043886569051725881659961391785342018052773501235255120365012307490363640873728233193684152545228311654863530604750456139897859562978881986697966026214519342482067949800489790048458140922995990613814793138292381799121194969289620435802254130488176550732968882046150564396683780869928028716433208751333973770238313554758461868251596321453811855754047569750335452835021619367535802310996457074123309949431563286103701079431136784947847406083965916080150809613097649236230256563102414094444671567476540805863681965720751451190308303416975903446679223462269618106799766019113508901226462960243272380411795969474648849903024139618271773163666587483149701051791357306618473197246896555320319142169101176901959008679235641671248560833760579630322371414753195641760030226090749141627800988016183709673165600080110307229917030262362471311396378230942851837606912875562110934972697550188902537608217683030003012970059525347948104664558568260169584497806594886605387435491170419346266402903104210234321900922986691820672490251628080417141077722604641888420914060935732097219444852644519625773041968363920478636647074665395932030444511091839202911154694079971899568590970279891927385549898034991225765977657489781926452661056403019575643270619332232757270206829649182087368502543641662416366985123113633787641862483980799570422454605623916386887168855534135651711754941578636543792127406859499399636738671995362687390785626985165952485368889090894187120247448243427997402450696649776278336368039754252686189860967335624487623679168174286428050150640387060852361427760035277509984076500081452725702902425010708160631123233641786142474951909703035810713846579239145686010258036857559669656877474250971344403005657889954370033128381294111530149490964378486087406668090488044540353596943960371098170527265963043769725384719444311424347300929447287414101352271082914327504079809585036279963359563892158328112850781769426151249270908176014619874547121475453968747147237801977553870451645429813050389319876423137553650239396497593259061155475685026698265681339330515257700713762990743573450425781242314123029465675765482783574786880616759226948629391648641134054798046685100286398884237192864190664985133365509646928094987788398523843335796009539948051603348942911323224909420800207901479134214327469731974305319631326045133517565705587617783684248515433573426697847277791961167268749944907645307813874670593409643911772132912994173962498078977046889974144300911893839752072118215280224672178984236939395065297657135140328020076513212547718823052334749280022009502323149774809037473203217954547010671300824560258689551899656481159051201690942444631519647124076073151766933487174753000700665171684499189731224309434900113162971018116275996695561318010302585420004842219690789811697687873131534077711367697795230454427063852515416538411339019046101613385193041024387495688913891274909882322314166443911109460165014967446017567434598644344120342804758045807948697533212089918544957548095451087349438555291264376123692216277094111172547792570540842443586129070663416890240046531743330952190883780685147915002996111999608117610833649685036010054568910352616909412160005607274931553119478876839767369204132452848981408565050803205256780691207749344931734597028169018949723457547157779018044785652061135504422613465289700362624602675622406921295878445563309848407488274563318946752823377143192303003922533395814460344973340890383786418250813579796401768494687217156736434341625197891885508442482256626832706695391299116307412180217178716718858647753494791229687547428305249872781918691320490887378954391035725431103229117334187480025490204580941719582159207193558627563455782641707551346715934422350280252544269148547488879862624829174403331839403822716401723680888822181091968054566025248970228992539596321671291464374556350376292540067528363370467943259917198483217238724255967585104828266160881591726285554176302941088127159964928735620283498797784673528515962096860444398316234627895621684552928881446607476356478881361595764410371617533795838347184830888802636050119116618247327151447982778716439193107526572142828460098561837073390125680157757175887430920284063561364130545364261556661350489407897352215474320875091820087533492592039413944169258716819313762575547997050366975244524351342281902514509547213525184731427030296350876303338985105056743577101700150731770280839815011207407812327836322434908018982324628854729807717736468891272337185272594450431009569638414415140398203800186093080320808136313508249005546780410297715357284456314629701242036839535979992081969669949386280822507705898371489377705503332845024917139628385058395527372403577687764969435036925571245670256394948873133133368107006959605219543504821479627728698875299018703849000979068639120530929947289989671259096142012701214507863433804154562403763138276252452580147314632842497600068388080967778091479180401654530699667891387333364969109719385284704003771892893002889845740726065383150764837988782486158415770171463718159839593218571649960300832884026506752446385798482722401963398213804466183000125098446533764152653355315066488458474433227104261762751754302881081526026707423275312918041164823389675761448696144879545439285137305616319379865061438622257127544732186460310541078280288370422211064871413838302222719512292224782487099654135725447831931770918522187640401363043262339528415735444432990492148331051833620390829619323753961120818276884161656662823745527168644478228785971875592244850714610668458677017904672284587184249669535058886107911556915917828850466346996654859543784363156599444703039905360005701061585744737426602604652980755132299978446906398778532461800439134729211065819670371814772335756138189409586111372203777868483366805491170821652001039993826722711764010077127577810559880803014257415343681398710926132934601981735464068840999465987235382977691873048710857692510110433853722109334727282718980243536945336056064743194785155105803498028983788298573093147928503113201175675414576016480634225507352800265724916881734584591343672724023091821521205786962326235132633755727956729175312380139897004723330165712474538455507217569289586388006240769986887282453051126841266000892854200387580769353998685697681035168373630238031364117874153622042427369981691969762185934429399932881567206321295217468872688671292453214719601568744740899936792419183450292005207211738878258348047227070412422951169868014277339411172876769024266868200726219370380848424224854349046924629333196907560526117588438397034574271692684138152751210295773481002731939591017153873306263334214487924940980785811113524864999853006191300367872825135067703586174016005534128934633941171214832257631149057380215893267729583358035299032078297569155520696386132772696673986126248011208793924885385666137420881302190201570882991970674542769854526485183692680108581329906114613400453045781795272263544595007490193211156117951594060804882960477662627019320974362967758002873903857100489116585216436457207182404233669489675362733143737960392532086437984433704650960427869029736796546435677824274838176915645392703732092078249253107740064861838027377259658040681810412174936625441242823014315959684460576891530080429579590146630242578967793612789603225768327396089543554943307684607270277948803771164982040090907014377244945878760847986387358673254817216110762921152062240855860482698604477295754016683283779088811024467416025240257780718574930670380219610561340077518654386310323341199929794308702323635711851900353270182377427312114027566220984714335969064763426930433600088258558318504786188642883026721323151344955280197275121985893649693017091325282139192296223508318500205752651083367092749731718329016885979322826707074183500131647657198046656956083754242358805579465017020664370340710797381659395933351722089935257031387464352280022701857109771346786429770414711746484314834889148382248286688890140502521443256074134774987517573419402218949543968403731014303778369581099907897727821130533005012417359694029255858392280850853987663558859013410696182531633936971388838927780909438001915006263123455222167766770416860110415580871335136988829808526671989792418602861410697734474826887988996074034669232885412431048715541881576459092815078761091149134472638200933617402946401097568551847293534570840310245526287069535295673458906747599789891185067103156270471380702870097143631953974558557626886924971956727625966658811106469218037023540774518560512528020322858604369042968845434173382158558774424689301200628654453668385253291728633735014625077448381495400124841404981119867962618552253482034606505907732967313616865101494563187538296008968450545207857605807219282338542551769625760820051289399468557205992074607988709142375341576818909915639295323341443072060732889602639923608909144044885000668607043104179152538774125289938255076433934407938669990680370285477734084255554900861673017900239589240209937790066282068260141210769708885257813603923283468118233105097661186755199257868209026391252975337132431863409485999914601327650292535956355422540441982882836555741972081292914872573223745145791245646569975599082436750663599886345470387760222762001764471396848136569230644334613004465049900535447727734258507297350599967300041034579429718969868033840570475665805800783781796487472742406223245364266686948761781335895894438816202503039362819397015141579934679191926092461866911600441902824641285379903745699731562840362356950547698714912405272101339537875459570360002674324958150813703464002864170387273616372947905476116007832331223801996720807048624690430785943762929290372274307895220994713476424789562942925002574824853172515343572551106365042262849331005811181875367344071569607047468140170677329701604945406108059193743014439649447652432638081901490732014415329515127377414105804870708813710881677871519455710640609482680995284545778112679553018450192204010147384382904195460455641584915967425763690822751100445056045230339875648058595596572550118267759108140321746842059417323491224934051189309154223141301347059579705248615968422826271995412913203853818760742543286230626207156351395421213750381245898568083823143657664530254522141400483586715205437119258516365589777231453089850752924686603824998681663068983831404816388589926007827803127011902240078739020777348268030273965702238211589843621370464556266825127636957324810054679228200084691035405206886772020958215143580511069510454559558150212630768755275906506023310901481122014895892241712230352697941800806147427500855232586850256083326962064467292618896433138009077501742030393409992952751420706837713905136863348667050587412133209877584547032811230622823114058763313549404619414493322409971481791591332881671888298720686668635419067366088220250896877430296651216782978634488057761271450649738773360124084224998845864362461174972648328105037308358100586378979336284372840464617030931452658365775933361037258439863336422500766615623893269439654773651244576144817201159466338669367523176248714831593205287626369218454526396595977105259870087215917412781504871052644367388451304247411647230562089109584773301155672519470722208766647079904003492677923632145719605712058150584708118003104798747139120674241905408253795424788031332116747169713618871007593663009181935614629789721930062810205900754158556830353493564907677188576024355348324900872340302239009511324933989945400690719581793163145060617137027831791778830736267694604565979706640326538084379175576957676035100625067545560494259988885302416454750122724959298114099406305625807716616347466759376303537163507051268879854639320231586978227731404942847602984869579784368198463545508760353681750112142341588682004635550442508409423939423726245080833712427603331350488041838821129506321762121383171880003983702690967581007788145489388410573121508377347781571054263754162323992669641694951347653424845766812263815182354837370947894796303387667614139633674618249703537569133460832120148033854872256614173204020166812322272182667977868575155620532535879999263203412401178762166979062557402664962291405408883917736757558645364793897826475994351460953659301159691479001735321179610623289021315313857702764463924785369419358211444681896580490568420136486592660942576334988335470323700554701229190086150577965501608424882437022038552921695493136712550899990191975521179458567465124531818472829828995337279608749432265488352988361478983707788202203035524588843745999526453413314031553030261816517976702601217583726028884090473927853442378947798643009415706167471886522299615106163434450994017318300930945276568488242464859281738616473440773177064034734501823730051081928315384622122283143610207052048424893760352422747578126661178000392312932579172006138939413435056751859294590962339525042342353223141509275546718389461988018859904039839588554676688131931176473361640424983437416604799507689603882171125758670970268218472283557880718700973791156605494017568365049544158542757404971056916987845372897901687199026234992793109494217285709569926603322124479857110836018077602089937820560632809853564314461720033688424046260008566253948519227168104355596538049025949977151028639017726033782387269401955685317584120146203074617331542004119048478031514352723487041020848049867269120353013977936277264977148772331126571962345272141165480345670606344280898409202290864445186054195345772891879207509180372206922827830729956285029723657822089952924704219502911267936991295215567903609398231218294807706345034600072139524566580859984589391076237394636148981027834072088037399062718429335388488423695936419004358851551916500329784820225917187041494387022885986059485107763811099381315235138155491827963206777841218165603011670558476040435634893413296905056782695800102486586742666430563362176539550377542762162737013421669881098723020077282205156211484003349353404672902619609676117091204833665703831770030099807400076674616800652177399269659460747200696765049215732271648662234782866286768393400634752024833629612817315214235651400613417404931151393551851799276802211862383009879088883235672037923405734073101466024089155322419387795874198105886230949670322792204328559468315263816638169074105236239170513341805561248747753640813408109604748901669749926593814859558727767092582890721311994131597141253406720965538031587133589793740980999103327223580312103573355839847403962861318113495342142144603504806355733722273743597091235009972034739379164218409301766047172562796785630553056371046995325040768886515661625735475249350659654460721177986737715158829215366844138407680315869422113070121234853208942266956154786267371560592351329914733803054157596516619202731344731000048301470850407632767279508257552958434807892572968727183825539997978770444669938096126904268142364047886884465397105597880103670886275824136234654951605898504388777671577718452960356221240395520286445525352408291667718845640286178233137981221610951422430554738662858416545551572178501156638335387316797233972484110993078051468291023734035052454690985038040977547988741123622344457108375454561318081336032930437716014693195427052493095207786435711484395901096289392575113160152469947932019870783002255372688825385784653509853705053624822377238637084002335662357612581663923881633830015401407886765105451430591054237916833050421583569645008631051505239373626928970155572861068080346513815865451238187381134381188802917867220159068411483967239616204328290469908802185192396674876304037152952501979273081544553494438082585626837956187532438762682080506898976998651320871458361449164415096181664104171179919680242104294439060110795936547014039848414811046324675576157591960720576045560834455520326187104009106889776610707155152887624476501215991488706668902405721312995302587279320416904884499582009504226633897672061322271266492428020244528331255013863130838721436459173290748325722416656119965922156065815431612418080856179759414816728727753704208930040253200534485375587567964790934787572297164614103443790603813278434856684891827059453948985835059621106413547616715906624213084963178554628317648676637580391023490568325714163146471793747086047995727960912041920208987624171595132383293912331502902822532125184849837644963257451131051489916702251045444836559759629562781857772299678682950439389287091697670059946936560217633907032975007270191282932653753549637120286954722016519324586595933861308693220823208853852556315255942589282766854365709197453151266217357101520475178374142238595924424624324882524602353120030852086098070661403113235116185616683165921756458790348380082519198450089876943274604568744804784021827029965665085320994519221130678741889828172283248518666490012788154260004124417149438038788554493581972108207894236964576591352049045276086475504463929343283517183395765567457055570778265252493578942598715987406177635519797317205473366514488178113843308113420937918595208493615017385542979377657442483562611290771060860101004678250849962078831053001090401688637872956458631485814377940003624934031389966342659475152979405502296349284998412131088682557444908778963916074287270933231754724668017645210400217269413124112273632726749543694958367537116065936016659529882296412207543365683793318358017702905204724961782618037161478996024254586206454029314799754447236699739568265374280553823672820153528424482210211169373961007289932805984532937847402038084210324343861141470498784449447485518183016219546267377269979054994072981089544196618125814517624733937277590755745426350002263019319753253833273573655156753019619469394608064839889900126194558222121492827428168607034954209497525079029368030362819857301876576810556305243491607252789132042685729263582189544450167774546315635745825852019082126591586085388232652038798194886036972965133022262357878849321735010668852797885993614032720222750936754208574213382485484067429529588774299010097949118425566801521046843804705034839084095333491603084834850084038139868960787917581258367360513313366903223748007667462131452399121723699046360167300947770849367336815288632823485121487204672505427146256251055042137110204157611241002826425477646189151601542868528652106253418114308588140217605488935081440441533477389250238876683403622553839645574524993582375977469510121503145060017560740359951713005659403351463620178112625610905692175341277660882928282494855664628309569701527496083091086288847677471901628086772185428649140523665229534820185843460607820376951151464567041923593419894146343690107012975824255114158394993840368362123511101960954253757006825717590648236071316209576908437484271594934945095546678474059027664347235048608486195421843395320860232201849655667438543438784150170368797626640374870277448286774928107431847360301760371291018882357531684143355996473356453743034767980408691947909445592906737457059782414109349526237506047056347477463125574632486753474782148851677093076050897402307369375819364112914437274435060901789817927801901659106724778827110525240190969140959075403035437754894783996116795087470944079786545053290500682987099398975725597579023493399549610140788558776652674341773256950460383878002265221088430559756112644304178295520783704181686549946885159036468641021054191016345440386165313306129499128016135092226672502136954248218228711297109625390548980962280833822015090526558204293940071687075250754707185370740758759791140441952349955637713064791614976310608074971690493187842468130085207747700959974308459389574319224408302620104780788054613179374760018556569476045475046853653580797160568982365036542911315468731079018664655768792946408432911447551596677457602692058446181459579035991417850671398571606303944192849813284024129787366887657571382663628959702144733263412078488740440139058169693608917512521171903759947750091022325911111090460399882301121785087970982129833124894851931963160929582769539360865212194827171536927543452615343455641605076591998984126449485964168554155405320893738996229622224172999126378766231248140781714564460786896338175127429423916663212537943799569877559412196233199040645280198244748467737551527809825544475245208349358474976586349976291802875219657504149482241730444641893520931936475599850862393960317381149600627659569882931830341911649160295103512311136079795730668899047086666765921786916907119068720141548128977578279791653295132854921065899056223622820522286731921254390749371372787838569499454395326494983122798470777190495701953072809794034158516570322371419873746166620302412189041469254937092789490910141046422114022312817774104559851793040351583027406868707598266752352693733839296102671790139366641117657923675976243263908321352980929160978756782654077536256329314208133029888883084786149832038357199269023725955725488341733589141309744091052486034560899434674091003705680631787812303605725941287060565925599482488521346660169184042749792745034209218810088478205804370647807017949489558854188163120727159364673772296832709246311618524392618331457998588161338521676859752824345559456136295440774087763199755035120996985621937438095171065414406461731136706539397183526344536397952232750692276769217746085419782901727636528602057412671046054964793969106397326561285864712166177247145680511209297487958709650168249655061005961235209512130974997309343631858975285958872978639312389252661568068423683718510939282205582179823622379662224823884512637631704173134608695267916380703450161788952736934462362726334112277250460558612352999022888288452817453129832363106533407560386265023336922939066057409870234787198120289449486130032945677084103957106788826493579397711197581889422130627948967236927987657261895897773279770067995106505122762841437667166186439732577282935142502932577375510550513865551566450438966096685311790514327029241987203522945507191241943027432597707120954469225453325792427091988395090080898154412313711420785956433422367333452121342321122782643797196564142758343994030761151101613588617151985936205522928808798595604916298162152588002253139120878153133445181900017566928784324549756017566265465162709001099948113997464283154279207242337896582534972402970732428434500950884268876192367501124806007974447266012600111507982292150208388908587214644916313548072986581302888800979115031577040737165762638283508635319823423063043662993543987596639283691429857647131447589536232419842609157230246086996726833099604206997319431028819391714369859579633338793084326502833938354781377692303263630099887470150972207913491937162348052379107981440475670770173497459444534539110009774469396703107745185831037581436959546113379628491583575249420611578661137557032395463178744713919202738376628814130341200474658428446903927034670155005029072353381555407556162559945951786788645629530432633531535121447649500216404261276523831722844015388383692529147061672903450021724603540787412562248604087590483972605021339655489703717897078565470458089802828312784314279203318708232021526482249341615517068747615424468619545501557510821675863337259678001301591964651193400128584434857514512449085787415717705834433598327918196526178058651813221526320221259792906125799090000921653204162284171556000202791352936599510563734874031110559524924175349842520628520795783984742055498896632661060500901987635700488921248400392976886779165672142342980761226382911839978858945703957168652403681882099571691931900678563474722840638406859954225667110149657251019046491071231468345909636844767950553232949019775735746572857576117571971212596502040351034182852551161741285347064299293338882430318287847141869157806740119861591134859239108893200501143809695035589801866255667817228522760804850023623978868568435506208778858591340603978339035593763220299199454304890287346838482963384747179277701858577651449982531606816835271659938703488612781473024886015111245962409609791149055116917122743821918638908039361859095247069782593456028110443314679731907526524556003426348601026660956626959901195685570222461250272061535210287264989492950724160129018707898665009084542985124883046220455073817088893890700441242171944540528696454439513408777617963779862083169257225936661390179818417354177228129460545135556549448858841187464335843719501855212106819732010791652471542459365273806848976748769321500263152999181309904392584756727891806128889229270458256623952430558812258240009748074059893131885046654974198515165277324926745426929070144268464421420389951531891268682203764518597928696582565637111267616194260416950432297286980289081632516179458234248436511794377085047792778810360412237110711408425894545169386028673746915767709130621118014001699575125391175719157393631394494346941478241328816772630666846603721280228226148895437990747700945854873515975494782399298902896608448293233557736988349265102266783651969608345574676927008318821780760073928687862012712961692229838260214303721272654600114106306633278151919244027194153003704949919228080072553251837823369034110376563200334494460771581210302777058340471516828882290986193387805238074747933245561388054401901895885596754528911149589394492492261579719835620204951468718488018403165741563891217099405030875615928986469039463119708979508380061410439458569582964858871779499784736554308946486645290156750142712969364671966846223786256036591438917214280056995518670801263789455414159767735953075755371100398774013658395849631841474187537073685807253938247304358469518680384314118987289527072829994868231444756604043665930232119452632020670101756447785456142339394552428459998179187461620112913291353610338621458061151194975512422981280327069013702011685273609097127906832969681415287250052677916650813719068851961079299473166643145413837470877762231700532326735243616573071646482709213168360666779822941359071086978237886703311470208684351698470879306403885381598464287838274385995027687111314846825670636914472968565272264459859986297140205336663792409564018522208867305694603110035883084641095286603049825422601936455153876527390476781755589877919533328662318222597786067153562405404371676788857767338687739612212715353693165280293231917857053326143058705249394725959984730331395663963726973099638588510395729378892034291045777768973896489603096783707773214018148865943850035277755152096345826062239228501823322443485704895720159668980537674914275602019087707393664089214541159677530955228163369889492726612708828150065970859668188931589408521366452931994952831297605863616663499798547036642252775417676726297029585509826040564142357103272146375340983649828411385579028260156385978073403217319224489989634308055525192076167738880337537962085970472235230781868966291621765103777697562792237859541192418199811831125911403340274846485374447011094447121596638527535189146101654737502604335659831395076900175151784940394299845757660683481026499907616029465953545487737494767634384411130263702422347771521049514117623967578283211738488039301832314308251137852831579344887991392261871103407174635768255962478433984768571420981369973134267124680014326601718369501048909137030929427882508373235761717457042913449398002123710818446175011453395184983529867159457399707411395006480137902896553129567380060524615913573945503804305686897382422831445705322879929113265050128188565565094935229780618304056319965283839761095049059195820796521424808096996797543843060900229113533613772849387158559709281790512850257515664644887399295618691397010272263189888004148721370883902309350807062013112825161732250318809838101302866610165747803648423564589582629425387769210821452962480541187083322674174238617955312693728023309435606345123589184466331207272145513509081033974406623188518241642631422735226985612318459655028026289692636714680972135317283913305692409991290053793693271361556065192615856033014923018115648112410538836010130209322322143877886850614792782193002758999353138633977499100194626119233266743317956176630938480294807512156994749541265048449588255099277452537729709936500787177873103718364325212707965050297144792037575744573039645424083433083134970268939520460542667117803591685653356802219472024083054762572673409365358731387078419986057803746212688711904252558711495140330983612547524327051035629489382529520805265635260157565335758569490600882729127158091384875234786847335277062188850869929100018043415737349791013781271945070507130190791387100109309362446412709653458702263200423342344401951027876845194349426509229757186626984557575737285008222853976586885301724277832090683190136333852605672513729112368525895426334820674802481629171262873077169044836878188428034548027643823745721326149501856619651003688825648230982529397397176396559657658076392673724783362726168816362579889634927919553791426499820607190017404863130576624315846652518130013463175851263432397742938165508947707411081784207770811897260578064244484784786487611495844352317702752822824486397248148145000836044344681674980001984246439812900204120815499478432706114071304429209699448735311900968895687763215188765127943993580013477540031446352927145427250475015845659815554809600159686186625942233359702372960919482659173693958760436690631399603299554637841850412438441783627019761269934153808492546938615225181933457921450106314847757144889377183813398835142019012044647983342636400680006489138514730967329833148999553146309087333899065837608646525702447298952678874625000717241918107702289710071394588083793543899675338264025938284571511248467034694942679937898616534104169005344047674002553584895747466558551865609411564669335901683365918732434038608137489926134459372289575645939271028598976974021936201174417353493860340957905233024270697228223375229644595897545846960734830769402517736134006526374276557058460872078947248725049678443375478640616440781393519029179203135029024798538715017136129506235386586968312041219109675353007165737420320699544615179436552461980976893322486769857266497900382797112415457267125666239963836196744587928617469749242476211148483283618177149577687610453329812522367508515112387521775705029790262620547688646494741607163287120891012355998814954933825542018021814256642796090537674179479865660183392539682595693446851332448412910598377214613951311734053247807196329605522123363220861322155622001574180596052720635085324056025849249673266930655525506284951030179825105083396671674535401828853825105602615155347884109614100538482724425458086462920653118786845333123018184123254691983695980440661843263079060766688040905493362121838435553815083180232378344549577289820093329618909475199067340552887616165805393234405381171613009457229776693435950619555535664101584422802262064560290461921023380564143847029648603655336958709252829657260884674784501472538727290323264707355239476858744241905953886550104613736968158155497663096273697492054633422054656116704142716769397894159022882826508981888647215062403295944665245051411030541357275684404365214063246913726899432290263109988267393919140164747096120887312595752775010926605520077951818386803908342504308870438949077091587287335243023270356917299992265379539416919867005198241344451301432147436631198993684206357849683481327804315184058681255353462197998495007879790675675398576599145306535148389872549026899927706781038971089783680883305265406221961210210863676683223554026127490506811814053859579068488538763595755999769728648858181120954145147375603620181728038532030550028956763869791152795568042016584416365290269428483346920049320845954675077138905830464251558268511703343092828201523242647988528757473636739564315090693086847507640517294704076184840155300528342400941672809553987358539318617451373587003263973830546513348491322970876215400787932965295991916973116816307214518431463344442870245598141789924768931767684172703285372372461299757000028307851135480272813258425431943762967900338052059979071653305121713192673183161866572763887083444739382571883172425248377654654335923624890214832633296665094347910311427172126548884755059437870283230250851093770598659680554720685498366426431436771858163195516312137303241132043911197556810730316330250637214985987324524937691226268473291237974814017880877248416975533553162469183714867897741428593858048630239494126640302324718907888189602580885564793072676757556088914140794749621221532628954168089943853857305929492912907993482591591800591598853364944241709412663765729436718665797912473855182928901006301298480399918379692915481525217593951308595254676957987516661913016275974528122021485502084717525678148031668261556677203134126133704913464964291461021142459583226470700359857795698229287177781217535044061505021251670077470037012589954335277714173156718272180951461069198845042686183215929454358260539657451697916977972283185234070547986574116387233453874219375652127152959630370935768846234297444248456315137205970320042912823894201562661986087985604152521775815363369394490005097617991827296166640187055814951746343684762558708483273948406220995052720476101820287040184995902441963407485891063228789977733224429981436739360291793209960862415089637193524652367776129342981723548418836771379914259890871973649105256384361192715132093900277181417250808928313241990870716749759026519920483896445451044960675014121514975068581252030785318716180503889619043120242733108773646047246244715873557551261453336378032997171602446676491525311936244300367344075170505404135114502419940233433772912938468532996341338847018506317285331228568732832166435588036221892388435238148291490640562191000620831010735662648404418848124426775149242490855718603572700888071608281645522351635596450640842927398797929086792846029286616634811901215792524252275709634662137512514055606903667241217050479166136565127626124836675433962655191725921911795684714592544942783923456906461048732286908065551467022291874978918546190753539729095022744411590336203829948224851560913434605872520282395672771164264513803864797428935968271930737607340493811739981424265382917732274538142143894402239201577371507547063181255114659184733459877487367368531389138847742999344361626342527233235124361264485936041098456285616226362864626626666056314712377139272293303945761511681436577564222871865899120120624111821411597879761085220225263940694094463482639216923333443942164770905689510198135609647591426688076964023759968479387102693727038703416931573026363353524115267022663822437254534081847401811893831864319682823730700998097483858956964683763612963142864371296660043102491794347105352722251154472535501011243612345223632733314216102641766016718920470550517779578130584762136202838626177076734179996385776224388417690882970512041046871867325283336041610507470076376511626584902424935063078630334929483357637820381506896471646817742431473144530726762873980891525094529783526782726012840788041974972390141223970498283164966033632979151449472398313912091421768860471684105711146876642035840246845972470905575373908377719617435476468981436665198110286426237526324645606201962176233231615317876609945631561266859449731951673747323657513506372738906925992912794045240804642567798299720759118965504686692950526191973248177790636628166084748845154696014814553454936595064839771917658568627121700937453912518753011506988975663360676602073853120167463731041552723337923725429466936506069709267560962252950265394298995206389258641556939497606793617968129437001332253814036873345799922362206451446149656861939587620132910537671937134047932663362692013528751753155470474572600189187205305891825090082175362071734299158256037981282068433028067687339152982830043330286225059564779526084769038242274726701157573161151162188610457071759182756884816608207927779256152693770599587443023228911127677284537421697475374043333095209929014271621866167129382326876630811973519634847832013566111193440611157591451245044747781340672495577795267991865242159544392301748728293374282498308044547447701003433914790268821218009368258323504320109119249677660549222003446610459837424224288906277147525174286234330310214624501081546667752301933511782797283844848551695567069829364863438866813134859933841211663753877959763669134552431904912737718978196994567939726278376567539536749968813192581279289035180536172001439974027665740120353190011603618534839039146711262567714279535960465663845974504832429085552968624177066255961017591738292180011663225424164596675255136459400439917458179945999635981533661622043402378254153105777876225591860812366608343369715958612600498815614312915941139165520562159448103738252212070411503325532132151850820161172901314125681613503228936943930843241031807925183211188932332118136401807388394234870487411881195769249901687265159525332648512681991326138739738159260700553350591476984804546556380005892434443007066479019177182193665323902229037817615728303180360503693635330359432570656327102335917972359290717506451686436289818113079368538742737227771971922556038479787326946135908741180480183821693443889245340171989628087211865850874666521489722786448704225308692987680842850668217718936856602063018167459946511563458851243875378422172924365022901599667982876308049965059814537910503378443839471417294729856702894286945728812137147837673403797103354158117203390417249686407340203811089302091711913354262503239908122756918326633159548776853575061837624049532429622522417019133256311418670478602620152449143873499169623689739616026124647389444122161081092350498988430045003543164208953952869329054460487470549695953320626730122873088051353765104754115645821500291949889271940783841477086033413136337648147743721731754393270346741929613508090761432454035223487780699132434080255792307280335932534803833232269914297219178253105327327093367474329994057396191472173547952556696566382908008278021199227941301216850705937211442539901942803571642194963202885266945294420473032196306360511981018088034096682098140372696731616430914371068524086541036749252103866364395448086549717357635087731301518198784987880670253622351152483684449218357180059783205860037121024638530156484882294083787216548702652434556516481686259071235503943858912737445639279529060051488530902413298533801307799082335098710768679255605291801703268210611193086887829752661956125745950467184943395256449798230280746298488139786175697140409086935875634173243965832049035402060591173655658663423721518843387847226693526740684499573079753361571795457607762023578009151976484625929211182541281956005403670242507048719248071157899827425053865221276581677071142680019167128888601435092158489245869717323516746463216914503843824228115177029518564877950215591770420557466134130085868680510769595612612185631355382774603747047845831793933313768441157140120098774969046076862488234194702219542141929277282374078244956934977997070735120014789645650513064943167387889230658483689699154152912391783541164233406954634352344980278589694338722746517287336780723327640842550181804888452909507434315710589632043971365693295980321135400699299551378216377888349386032405928707028795249413990079613543574586719336218641757329141255108682148492691075750710978956453893670398276871480781757900794345233389367329948431025879576404067476278482088007290122874856805783068140974816634099983034102859256732000153882046152310037000676723567179737783050421770509732099789520293777586098764997882772265897631861528272478514009070871854182072707791037060671380206520701949815694418360074611811563291765050708419094196773821532922872869188806916625322091911344899699364833939364715821859040495517364741726340674988757327990915042672424656686261219340484536602597758337476798423521265687307252884558550536946714694960790951757176509627091820410257605822201880922338494788489200821159685918370110047014990067823795135340403073483488213161526426259027689316879156296935338107664883488418534546948758393743851198783854152304705349301617755362039501162608252633344328976596598287718568510543806634459127218933576268303227744515723129141761796306637560309212645414204196643680634151216270243198066475495879193774442416601650278221902964419679697209989586248088168920791908866368007441749063497809537016079314620684772078129025469400527716835781847161416327658408388355291223219456715172754975160797579854822420203760995498588616389863048580590843817464714887794928613767815709817550175199631084535936471090473217125895770133535415344869591645845571347853124902088665907622650003819642611298013059910529431248542188336080583922936818367166728962908847549308212794231041283838886096077730556319156010952115084412837942767358510420530559712979740792029097427255971043265806869840293145556796480676817691254704306669042252608837534813334138095226125535618032109592411751841280691115800487880379983627572190529661104914404626618257451361640714995358736472477029892164504460846727400771661459118280132155915229538587462288452236705498946508575891707014867109959880745860557682548090355584114798492999237905890745431525348194216390411867633604067188996384522072632174473471924021402995737712644312918470500366196747157492745512742601662598812637969870500236339052460412691091220774067449167920470189103744146815175270846329601786855179371280716110674174322825054603070346236259432801428183475234622906539428026043244905199490682538688968039829642323442262499331110461194554522209925284708194870436667885984850653318915943654691101888209587895176919091015949639199260341805325861985646670083315120709503153496779992351327551749589390483375612771550356237813317286281801992424713357992449156709711476791243948488314140626734392230139416208328909781733932984666665527118657864357112803788938740165176141600735807971893250925158717442594668299064346973798219919832611580524585788256780573091860141688431834187068784614092811270945763161828777027373323251143700570518531374587644945171672054858363334152755428936291189738984065387923113548557588855606254919721935579793551448358577389541301305182846480069459618362812567798219007963906716445224108584782141310464480754797173885560108859392615755927193398079135503951297615118100000704609759246835413977245341144160997121262587155379219456791473182650987304577751235706426343228925700893865775549513048357010524090715500916490869104967677808228212834521815518742688962654084216809010757520388746084398684109007985733324314755526867793872770179763292398882372531697837330802297867610631234068273058528110556956232973238851962284331008875220256699843319437418291923387882819704565734247222201275355863896263303581205096090564730014511927677955547148958878084484978370608542993365334610069259036716200286014019394620125846554918555496333265590226486283310338349737224729434043402498208979261254910327754275880048664034738198799132395958541386020211184646425850283196614454983761312609979946969833697772349947547425555673186466702525616406484892106427024774086700137484850401806524012605295149783396043094978192804260364841876050457149209120444671768631623958766842374894442924412064697742531190144679398336292769280610912946319987046899324503173077889578136499898883613038225778971859701879173470340587093162032586093406417758851333105159894552760705691991289127356068110282890992300215582501179194521591527675071350363817343870719308198309633138440349338950119295079031702624750139899682970068527899872097395329583139846913945394076033697785015006095332199343920955637732677054434521966243125490499278820656228679854538758372389675126083201298827734916859991103883076480625421204989602892845961426195819140242602966469414527324962459355162884964031157261086167355566214110746150435378036018521042107378119156947746679123259149607945484746282175399571557474718702332209019759743003407993662522399004197481551573784550907209662883035678484961652401067258486985408295989368401806464054338727437935234587801768991330777980601826773078126174690818737956688407647874766859793048309339589860774981343453824244022281687282890487445444341218684687211188737153538663827176362743882056816936968867696974962693649916489667637121957855174940796361206271111227207851960750755235069319905893601912383323502372012096562820453416765444850280226253796168050701130358736582099555154792824072489240773514941954456096285105025170222562212230580233191543782319825556076211883919541756106489043053731687351391016986655818590430927114361735000930687979099515147394171425531261352861765424011377508967676331538133660717760126524623546116154152663642859361506190923403003239506297048607686875389469636578404298148244108906006457387343223272868956677020351338290965015751941566655205849465738112849176181358440589878567932612749136475073899884661484316274212129876187969779177758015540462679030815318550598836919482518215799607269055641732819675210352518588215429083966174325419315756693106019080465886415427637167078106121113655781568777249971846590621164238931511505896578843913435722746664438658861585763138708254805487436803303408046994334401348554077566293099378700373050401778683492689016929540541751605127989695409571403182519287624981510856903585186038546414229249946854389074972474513506556174344345985278003487084751350132075944060997533963100607705910157342805096283126969494906743556571815724851327794073416911856909818959485295447183499901392019940007615918991922088264966394290434142349645306137458137358726130354775155612984569834544957207834124421205328216497975949204144432424944621845769670842593806493057069423355836641342378126669237117329692104666551818970639022391472667932507591809151018278539611697144096875728411641811677837312054977034732592446852909554243302156342028707033137108321183079267341887294622935330858884152180668058385381756639797614292722640285690507398906380303407455682828369161625203443315625286439842404700352446179097271776746989341863686061675847338613942384327279013492331322149441876326665131691735251756809394178334068903265568646354439663258437948574281753701794916040130844179196647599906954338985616529273452027167082933915956183635297118050262219971611336110055412926873866045025918032653840327557979331626647787604304761791960054331875872242261125995820315175430722691156259121751302679645129789595602241906319874309219969293265544210909298539599955721276475288574300659518322234600809534111902818262215948866206904381504234189286989127833779972907955382684629308921549903356919226331726321953508134553342214371798768780769511556876706949430534435296714046625180983922513929673584590994340996407333726200438842389164842901341148290354741862003157895387772772948665215929402089129571388646287615878655417336267427927553341487366693269589199584131967385917202830448983908239932991437163832383250437437304717630042302819947171435641015377370579720076129117740925027087655207526298599170153763701970474090217275537039251842602624205829022589450902804241111538037023124729781550548661484771450450654578913339836916162119884479470959903020671410634446602270518604192555069529645714571947102595232822479597653307955290643249596542829709390568907054691842094511228670300707664662856578931900767169387457536166092414634429595450560597589849430376681028104734485278567303479304854344417326834534132899316408094013481860127190607432493740303925446525204739130417923130618066924357714944147503732361629880095814445786944328361942957241550290541688937670529058484008592718335201154088316464529364702513139891196925101954813978941694888174987851508441197749400309444325630580244012524871898237965562324556086029955779016711513991921734907124352495727934932539904940825412033744928251972558848921895610992850938400559340465410722109309851363801943973102296284912990389727034749287952380515340677091901061643623248424219486928235346399722853091154221553873984879610521808092381166578699961889198156878169477871283832890552773358061910514275335809594141822031967318779527685094278322126843202387512081111835536351030930890062393787121676680589054990823530256325875972112152593946622052723705180816756647571095472873255980962165178417919764538867308224872946671340531384132688952598294304756201496727415669681776815467746822912053775580652633241153301946497900671260101879039902963711133165354870726379628159794474652984575405076694678121061107822191700428676785100518968280195904522478160383040999345465548787476548513040386783823103611290259272502463566938512236271534915358898963723415184265824415141971215429212836436965682150752499165630939278541786222607043429364832516939305542552139538622049337659014819515655909361560016255934604138267197533791757561728713247999033035037482379976108360971037702678437693384868900453045556756381484827746192179675911117632342378132936701524637614486930889285084856597624261651786724911883154617029187268042515508607390525278752226581380082749939594704990865820748365203150904159632269467770883276580544906520967728208513466267100157418905772457514100864894259805160419443861441332390688278840568282675979823370308097410794003340101096655221825797414011502030733136278040866533039202255816553289217604547217875295824484139546625831222029881255578027976793706372574188637069313211345829645128698407095072881780350982887332843382609186455488291202742669678933668671187223652952927689542687086631521757779764028018388558156076565264908568788677931647232823793642646844903280577158293092473022029885286065310960974235966544142368497914726384079971540409356186374182568514613251395030775499965909405700597932578410210271351868428405859396841024013514650253382358365724199304802517172058940423416805880778299290798051690910071919462378267339376361032210356660421151881208742207232490775631550005776275485973561405125337668675169405455128081937433255622689647980932761034338925223224438935080029493041326209476722195446641678746849697892635630398328145580339479163586581793008299765072599941587548382522300373097286172753194574218160281056225128241712286492003289296070977816046399558483756750908826284060670142764333993666979049810534128136717166083102645492680635526259228140624102759823055894541326561550826769002293841461803463503102821237602353837582643444669117267156196935512312009152113158181795817611546007268603235930269037507028197236846624719878380846102686180050943225120195950644364087121081769817822294710848695074966983506781254044691109228406396598294111286990530292989374673892589617496529717645630057859107014738175364944485497576033337592712455132683223414642563836972706271891109804092054275464889361731231830288539672678498252847592362725409306535480389754627112179281547631881867445192260797339741739096755656528163156603843182409998935731140884408347243697134938593686054632893007916263019907652282963807270925510224399025093478434980211000027776698257736769925644919194770408105600196079597644312772082146037361098242446214857805757576590513982832086949981388620265133440473146690768876664267576000948200021053878857202661628132648517257645665225300650606448187397284024440881022276692958034508406451521232851041346191901406343846576907114546700848640814738419872692447047680643717071826161171316178361829407851073210736147263194303848141766904638654837589758185628006168987724744757679687213045644430502421681945992912182651088644750162653736259291234027673345394656788216708499792146739422687389517129271573147424698542647669935507941958744328315990656043940776915214624794710358157769816916291378048638877101493389342239520899148457584534815833311658983002511084626314046852278673577594946812403560847924881817782352692740998218507947798059652099452357761600160031925938623567027791015188671199008426245453505943824828279450264683414950997741782947167722158751157941061615564254430272985655365694610995506093095156960365223815507536935916860516129785621112739905947403184557156944732623996423327515130698362009046198915002129453519116781019136191189590624360027839925675672287655532094100423853809378189740749119527545092124024987356647528035074783621278213572893842826170287089070728178813495476451099459607544614787042309898672347326924632818892127136092061355678420213732158241576811565858496431688501991737186483017122435946428754879472119155354351406643772640627767622471359666103057422514593623013112783544311086629215277419714697709406922656396166920603968137463547976981325231169880982645329664422981797753377483362999453021589493829248945581041826778583689574763924478672235507572034718862832147212001968463310311490553019659556652394755034053905320417848776423334994634496070302040114727345067634175416720558258001276907316797293245067448322388761385052711494116908672158397053478144356884877379473148998617902896288891456452380282856077346099845475425351114211232783152783612659039361800342182044493892458012241945315657780115272034875719254912362476433859957431856866074933941555509129026651743842557065845748131969181901402293948417449784016577773969899131535783453388165231854337166620969168912710882720255139763968192014829049477936410838826746201220193520914464556064774481550732549943908699094705665762715373114128119227172490969313794709323017678638414957733464475213691885462784644242118532995143595393360366520640810456207029230831917191718065655342718771076746704230020735901977829894071471298379236881732455539248814587330871657273156292764945075687602913199258597520092821268486173024275173115724508690309760725884388277584233507087949624376480209353756298525973175498022191295910828637042508528493822626901890310613812473217895691602496954319242801140501716447971421377943346737533289007835638756874102348576371666236850397163894119054032970369080464489636162460031427376585816903643545306994110300706537271744966046477386583210775933236869976152671637004915019013998705308037304339692784527074318198169082578532320059318582685408775156771883813464367739186698267193637644919868967825637368348919176991797425530833065031246912931381933660700658609473099874669670333580312714919657758276953167052376196858244690698306618123142174140949791940939244628273048389319887701624725597296898489804415828686873500998957125716291093460749929073843792186360009121041369455951463803935507259678694943031730777682028692018824671724009606569103058556647062096238090912898365137456464608064772136289062122985932605371281636871170415805541704216512517356145939310912264830419960838226492741772254225810416585701852307807126798875536002973060829831894262119587999156427977886994181885778364827615991647345063876337052810281426716543104195178753734802175235241038785200614105418081121673231727633320107591285465978449984565814974811342856838679127738002485324541986785571930734190905513718196832383835970406156322746792186180449056893189132511293807060545715346697804530904382707739884741255145292474183190831679614807399564091856059906555813924923468280817141141742832423973027010594692998981207123822525939475978415801784616840760419650839280752083622684872449726449252251475622233127656016888078893066869627114945753686496365737701475131954112171639533564727639290621607258896515217019079503074721554658507981304338501716469878863015169582361531226561283326396169030846954423830995704407483281081172705889083001017636600576458923724381283003637911360812070638546325278048166568162741562603826716157403862573680933543619050877720614478157956078825638863221684119101227275721617584867407554970467218696178880618116937690835849961799878022841712662722435680031405947288931404483330134521685697881367109953299533973666965526183267454436252199931625456905745286638961700558036278463637590916170759315050017688141549502321562422151789591478829330475195755895740017862559370984198748515325597980059439695676517968346353221194002437705171347776468152999998951350704153991444402043204823396257082217335882461961680455959768270857760796495090555302321332651540422385090498533915161537862940549091616998724336735716156103336488069685135709895766106051007500944205369042362126475736682499077451475056891968051145751764118049029992530551593011190939573958337228750095887410593932595671960435098832501377331352141343122273094030837167584577446484762710194488000065514368472368457293578118921286211595117047512998665725823461369690459378224695777076506886338589023525630049207842645444065525836662366522932557502650263309769510279967958757003520574825646182795924641154340958571962932319342591932336014621110253636556777461102192113992003726701147655285877907084788070077763719883057859312350236738479150176488357666879278499638571501264038354565719928089314122902899464053569370050522355327513986745479756129064873639840441939829304356126496209265875533318767990034189527683985255020847917830506321431469064761771551309391148050098651918046566069890925607871676964477513153316332529760085545717218673725003381875493904517008893611798514808041375345294066506041141982770338324107660167348635853123600629354191662062979678508269490604279902252202451111678029020803022054736258854192908026403619734697486956332490425992396875937225225301958082959619454086912732910271984343060570558785618542345415288304212415974430986297992485739860810644715133936430747550213781280698840770664779033739738188874539260162765944018696477340503485058976834022957918829913537895202149674133129124066447130791531987151150769512235217314100431907558132834563676319760614183507788098041899016822119699591959641646150146711831257881851001041341859261066858329786474370415186637375499702639446394893613363673066792874253420328029482391999640664586318995747828784827882969711654331236972320600940026867294636672822318612250536012716109986926679465847824474780098395282563414323323554719355726478379049689397316695045126036971772089999718492240429914346530769458299174816860013003634589309812228777678837563179564992619743681604837649761303478216317504139983217120147820697328767711615810144777354323163097882695574603750773182071585687412289316060148603800702722309433493594029481467923150349082755249821206058776809312309288193030397909319162570251971002035942487602293329491783941047976594734546963345730676210896848707297388371294063021949868098365465292343572055388441591290819306137754711453707645420094072129892027237297121640171491305417989774081186158698861790465683999106753013574750551792903978793111207716092803688036414072584168476575657944580652273617172921273736859029850987073706045771642567523862584402834837837969895405314895447017475595002839201656872941116953520219488637811033024090935043223852892718813869208128938013388363157508034991609112904745979369963705781675472579957905290688862719640614599799552011901980418170104827459008215144393860845308542933004030800120382905501784676548667934167383359286795342426412829345394591707689262005065768920408572382332629068612312519426865906179680092232036264231721877886050647331944953109241567014122938607614129081886869526110352804563800389107259265770495494220233776333209552253490677044141208989842534266032921105126725139004757132282099349755124547294385339931762452465574786518364297483935671592500223358609802703958452963843725282328356352564655598663874404775499694256304922233816205542489571017753465643234097237933698263875973339778738395764577315260071059214565616211047570506836189442639775305801284347582722589901585880290840011702147748973958386146312417853851338549972526612281029970892161919622255282317836593599756191064076355994526400737928119247470544725895544132656734103145143616681408039617277792619724808026485765577797912345321189409016859574936464764087699022100729659832873258907848017883038033069688178916711169176020399539006236897669787586908882335947680828932554675665182759946932223773217122616182914300373437656099389078394440242387800741688309100600882148825058503551021013319815951992876011544044669857672028736239580810251991221121141660031745428885000626305263893783902397128812390649731551012985020663516024668678811718624659569174367289045779996394647793992326092235462545666144606200160615297194101056816571426343608984508127985429433658476475777605172732306001172447455664481623484598205709367325457582805352036813989529343693952771244350249156298449998312104010428346932053191232792870471834359317469911356729673208216740667050250291951139573831039441191956466257572124624121947286843617727885170582330897018735778194700462522209756428039742904876229437713224839693279961250982618254869222831103245206606123610820273875518054331930294936111657234744267578282398202933820818335507949329618818602524841248170719470589463995978923320624163756059561508724675990930038136445242449150771878522109928398525488254924669707176898398819070130044322357855691720761583669269182436444775105578734672284279340716441280060935920494688434480644843226933667124747847451389521327525446966810525558964328632032855936770732766596190272556811426630606173176290513125060353241827678099061993337927536582902847049714353845755689334749348164562610924817638720246403209839282293201985618321511816939443207221354376762500175352855755116111007831249287954905616465197583111915151473883024202456851737437786374559490250695339112531358935906858781730833580954345742758075216020319068854210432639801932955618544072538678907146539296562232100806985290343868058961440163661866980819023798579384188170730055541242783252722318602913368701888260348286434269390877392242879493891157094973737824157791585527527331577391608351190293312523602186217321407164826781108776952850569066013884414099657629176671039485901206413221197107314907851892509758683593069964643859084558215901316516228390678699758746667243698654235802718981721857682200342686202667502843436301437904863765079174621821076483488887577748590691588520408118617682993597603451713029978604723837394561503783602836665040256091850082841702903514386843307288031215607575950903960046202685615912290040606538540521454023515766874138407877327673682214808281842938428689082981506818777903194481967613048888563480768011124702725953479330120963707204085523795621769367067651070277041959340076470965065840900164450393927909643148621741839420491287173891768602447139745796286534395087472188356761790126605893540845940745495900296499806628816604519968975241669640889496124926833908512450036550936328749188351244863679164051195982262731152965804274912876605174680169793257492068232807979919355586466663187074914819793620877574941688682448270605692278828827006853388541686002702120238186461536102540536243586771280608776237873222680916664575709293013022229752671287274050041867885549591463879443370969731758288124096873551490090315977181963358378109022007766596097390284565914610487835236496966435543214351453648506508500895492776247547863394772440224581631001556207191584321924925077754942131541914061771753719740202657845153264271315040293844046822800859500866953749013527820806279691781455491571079681098640365201686716816004718087817715479092599629542158236236232172462296131948235626422433117446282282586349145007978212934670513585265800574333281154434972043858609411607560186907996383496799310353513829590303423466525215740629196118514344797389753876626393791750909762162742966236483611903706643026485067017326563946925171299319311107259485798011879672406729552131706445081644853130784422704409559820462025271633130003500972062310437213428135428648994626721785324702156405824757066565712812220297932845597129478899422276310051652731839854553200485811257922375668727141613364739490567861880163637284214703038256887948094677393599872375631715357985819884298989794708419652957939488615976617231632887190166121112041157483348793219643620863741124268966662244471552006416194489984953650479836848525508410068935763066357908604875661197875845440451819506478159149794324773146939193506191482017032174872637107932374046478921692070250461542342173667235080783975805376490844792402741768364015282980046000919922635791336049675307140580716639986496236966425086645402107585861415399373966103591846632014363312722049665341689622892077991908166966773299198039103391590934064410393550543758506171250411342396392279753720982922037234077432549996697886454235546949106645257138387347768209950590174200065761285608876653704814016611080483808429379773237643034217222424366980480570866685442887007159449096374753364455300172637354090585745191521686037740333477690123845208878762523302149658503303274935861306080483042342247238476453969380516718521223752398462783537425649442718292269824549392780587313553446216165361307896173633367358560514896930554945595420741765163591782295413634944584614258356127468847507376403347952189547983926411120562610881073351029698877536903019000827305037163554070955230906236948105526704766350777752102117108980426624933160061722093414380897598701159312114738382763493966129192757991183311331612214386877007512525998272881492501745677244202669852249360935632390624932092154634699498688112271204153900960062367645163588013905464032144214503190581299930207306367366776584626679888071847931327819112874563714028318959487055975163467331530163328290300429382033557017645150088269108083815378642169837155616713829575375487772586779782095456946488165882375200009248618132923605749889386599248350819051890421119458524562221920616342940337314773302023667436107537180261004000657373426952353136433720812796559354342388947946616717521921414669843049396493332447217750185960812885029925629357241301098149817798673861330747873102803078143748526884521920165678054111767157925760311878605365111191515831263077002526808447814371564953302281800266214783308748233129584233052338013816252379425191156683352930697956654720113623937580389312300435982527053857169311450755035069859682826311660742672077450988002313130109828656913119004565510488683567734873179291779443011031992092578113436502443040942390893315749156609071942258426887105498849543748364159007827524930411364982612029994403812988764187343485728283962582486265020676362483872687719253959244830081843855311459108622824930745924311475703533229564449888452543249688172385737931312815033884552371067615552941098652155379154496205415105704014898839476909975483224802009716088243000653283333697305290356382742155203884291194559941211349980329040274969086120639727777923643649792415771150493322814022678458406247907658476280498761108277760830314352212641665334087863015195575245222779455657464057865861875146038579023447085093938498774152491314408560772147864685141692757194277612265063208092290881947574735424946525509836558680820391153874194893829814621141284403679186802882834931385165286263976453374018327832509832424435603453550601354283281699399467992795485207208562922022608919817622834176251805902656921418948975364470515552090041938124357961275403915854985293830333411410221226404657610979138848262813527347009411289778421340421868141661148317585484377121471073933356028089708427438332893367903144649877188006229582977699996747250020551313652517738627996996841129505489907227499450737235473450491060904575158515250104969826205298205849685790587937117584224825172648276132771427547390406712084504606400814996403950143282982650842538967022083171716805182796559223509246937482847769165843942012477901674906168286952654909882066465544420933443472943019581062621895642603859212099205674117051465823621036053534636625312264674277494883734058957931981582164705240943274701517764130970428831916886967638612522068068857458506639095394268890323600572306250890110873238895985810544436110603911824166143142362535127513259560444461304963032458098525518187563336905495670527966768653832788053950358702664942464346164213665805344547124203626720931661759010074675946377272070264586397785554250157596005579414609373117845509801479001434593117023501051273196163656366733215687993077816294568770684415899763443344495622411544741084333304118238479253848868470577829283272100464849884879660562778488678917952759977914807882147119818232521725340402131631235152104225602458438603960400822370251094980298087396484991332260310517150025391400928969210519388037315647832565883487148457238393413160125123303201732822845071006636895358990445829513568419722124907754066017812055960267409201334475197772022330872100317283246167263341564959039560435099864802562666722061884321729583232962734798016547550085943850059888844419183729263427991111300368875344287800379203380015000085119557798911374452337711596001620800169491489073642226071520940709247406974423966743464625025038352663420103146213540281361996190422355125357565449010234023367927736076226804892363155387578103991060837949150062205525362544314315320759180010877412858635711556706078401859204720884860286884276321667947807083262997793431010926061498753324875532985966146115057217171706491222534955597855189082871174883249231405765978547724526040790189323092782882476388517920230738441286485931876610495465620073855874073723135143834013698783795805910016021871634268839164654608482894368813522665668137004066229101969963091565677930412810562013939695681581533456199898211685973283800356198033827753691379075529626350459991596540803158351602690791730986418600615887751597337903390287560839737820642977075505130658715486511944097951548194451685283141011769086308923612456438882922208807636994223847345293589066668634184698444729921924409166101648130751202084342542647776912621595148025088804855533713227318127055030205353758291396575574727393571243430566476487108188669230875628851544312913260831990968943205011311598632825382129235719994481051075342033082120949394985115829991491083143646735188553873716008836927119489228574394134211916065835637467475078542062415583178277395132707148325901069340707423799001843966610176898063238504459463710471313227003926229642857680026670690272522875753207870221334588583910993154643858114947664873123662543712390284387851300595622675971200786983635720756799325417543668350185915088790692558289367721709128968939382516849923743118947181244259407243329138428656508371267809180041584636325515793629040766716569930163783404653338162519943998624967654910992679649252077087584522961060397766885773353312299246963032661603007325936718396590471690927493329523837722369439228027339850102023104315053105541499859705640722202196137516595872987702822520122368653898155454372426419813535302698736609363025639805414435417852890525379231015886063894426643481264084580337873789843451479249106616832489809705641311573354264567882155100944007134829321605427085175345176056597819968185404985596482935311475756613968974938234865271694423001733511131110490621289288087912842965994664149028563264283343067905887390040785128645093349352500242442399367720015204999792096642605196878827289569776867803152811389188524977639674787326684236205181708199795258863992477068743632005039024867506713665847130411010008021301694549754252962080157546748914885862523575067074735299675294141537826862174053931182012537887090641057054483720340657871781121331472349399998023774965628680129046662620741108292789300193274258898609275882134298454000080600316943510569744134291791638954836701280530019411256480104578457896769630145596701714987205292198676312191168213302996769476967242041444499143523873451130425700120583924636465102154395321120608519357054958623610211692898748749843842358903161528922523414207468322503792081218466194227087317393365243033996432878775286359133313324442841206184002812859476733861766797915212832925372710988908509555654805762422802514623039575305553150113090262295774233222272316760816806955923082154476611653257467865687330989494672760736102492589155921940459577459942308247345530612371428740690660443398777362212449339282326207478271157668069410470441820087979207132741589671211728611460226781677455259089808567105687576127406694430338618214708748523505704202931306141860154313413487666290896222660296788107313811562124133945100493621761802190008112335133783460432008904204568717838534140391447235221363883446427500040479299229629747253065448882192140250160998394643388166431235613990498000851694366113976744329651506760437274681432524117591177117806975827994394125688424727838867172165549697870759345934783020688306343233786427086414759128234429937654345020254599339332831152008875942184443539793279479621949898578954815859589533612680086228048820422463521863226244039611259131464597469093854154044008951806751807502185882490956974655048760869702208174794114963420990404149167177174176245190884216752666739436608383741789509809105093131253792788245287361534737228000674428548206615857515151372714444001369506574189714157775499166087692859896323345409902566512577986766090972644398930403628206143775821363485145986879343856866000160622098233121591516049237567834148621279280620034838850450691981179942825155866780806123024601404043585916214674305326468475247497803819046269630049036747441480544159523252894871785210585685205031150123920385629260451034558276517074434179891289198566051782145229139981689133672220861656885183238947681228058203641109157262039320997338989426645100759324230601682899926115809594545908449180586509755727314475793813450530707597413976431623297542803063846911531538321444390175046208500872797426225787236728466154297356211140331476112049581239567799115229102178466213514174697586805558766921858385142513122306971151871243021866137693220829209388867721037969696718748903422833299830779924824612321045808814411346048621842275666862738088223929090756617414810071485310929091120046033134881042355860521984336323301448111743012592041084457497811204475867044468394640846701444149015280725151637766248334612630983885702650031004995717861758365111462734641677570484579808309900201153256917308119808595500283912045552493418717181804857196174831964035676695743101887774696249916236889843596712238785158188002637047807195592286035416332382889470510415291783680646332957328943979679876426066735756900823898877948490429437461222829669176992707009214943512794133510295078434553053117069462915068682302163940420850019276907656308790735404215378483292235364132590080606855200083734056607050388913353029548390802407215668282928657924436880533149896702102651500893848191529962049025505065959407401967748999419253517670268645583609954079966232026132494910808418447821138637162353183377457891487988912696696555336526310496100776472252939613494106523703652152190968433098414550915612860288550407679246866830373704896535161308926315681115487058070313634734874509500898145000479117063801009013404160087416644368299259007145587066646575922957204933778256012862479209605309256519262141401123776410594793722524193194027966443631996486075602771830436187436278961631225630785532127088434779202158212413535246287603772426550269046096725133735287425273524323554993381647188998878801164837942455495597918628495147483685481108709143928994171526722934226651778786455816615475594559177988336577066667176103845601527546825133422734785458855759921981912649881303895207413439530136578458754645097230687429768010942685114300435647211715254314377425622284450161656785690104411325208736713446698509122168283895988963284090273198226793862182880579622138794881565312559332206124728961071228883487314525658313262845599872997468251284259204557403824755392147812282441257202501296472489988719606785826155006480698528215683957358501673622496584497585840567690671767588997647784940772311244741196300909058419511171554435452718605248095467718091867889827836209118571734767094953879977611908991264563241747083926949192477563607404871704761795147368050286575536653576123225722351288704674188128223188513149908239322782625709794227841637452699375223094161975816507404452544443900019576317216671547175922851378016449262846942946168620207522673063869276621185141614701506300273575750044194191164639541215471493825904199450739631417889017122411050560686626625551557404698425473433503289420784822280100208546593637804048639467152917997079456886429134151037637559916656118034133360219191842246106763368163521677955218096072701236967650450539970061438743011929730426401946968813073440446327511575711291742415933378133475197525145208298035385693216340354006180864333024465899770258192921479824281082413197619681200991414133828189763611887298732640162098762929861965783924859658519094856287998934538174885629687662339148845477882550412836350301256548228304970317608589466244429600510626111476563457119426445484639145611991750718011543755164098309647502451691849757524740937194421237960905526536799139647731406248696647206150741368095008943334072937804094306473668685765916607032503350899657604205452360039129355987596134414365237821734425268906992805083251445982291519528273501540374774711749282280811639627377097934339522626819779643925443080024502263849010950801531913479477094270596515429077603006187006481608858291285176578837632259499398838636854326506849758907959329547753550685087140167642219806330563760648620409727496641095694641402795785584946702476439194281397710073304470606508781979330973417064142613930616153942163661354664016494819157762199926316240380507349665353737340807708324860305841045479393992874350727548849732585824452644334739672849624746662611418241555140974531829326590749868071313382283140780085109851119382553743861165383870339085359554386642978394326632198883066540718056561852351576308080561415088811147977207390819406713215661969039554151891547699726750941708829148202331162780914937699764717353833972357532697411973418245139768341644873022876537610053602353656581289683268335442765634591605447150107637799423948762604331425060340275941286725493448351392380548309458703108824033432972741925255409803349429758834683392552359000045014368928923567817943144071791887610967696899250843583574786333065531709762432830787287383419582893749651778162737251515061887659983750712871074002101315566127031959733983286391711524818283744425772856089745410854428870420473185918579081406489881679731095874768326859012043162863870007882745999185872179607904755730778257570567558051136534411369816431640204334476968311441366430305962506478723878412164081911695857568346301090081601887586093466997398657173160419793217849393091887166721212134355277715183950206918047288566932735156651737460184946718139594880734680632562918216304210996825609382657850656572244236907440189795543287737224129326458106263430890171165684646171586395487552874537337093882449548472512416763264359159303353489628345510851835075631293835926912857806827588445820616132222426761985367204418784337907101943155237933662064558123528404924555004196760614799647062000870899757151411200395388601734015616642968459995562990219824077372903833320222026802664017934334347366420184526155696596779763410871459789151309046631675423689038464528404721860776395040122433479073235376322734406004514149995933576981603854990397671713697721285710304875382211815469304979573301461553767093762445891328949530983460458520850848709947816477586406271550871891525860354794733203780612953887311605514233009614422458068993749592337481642113694561430661661583653984170473693221826453110914338836261885727823441978217051016716458486716070241999827226372448904253898941871118807229399108670436577096457754514044997576318327900425821805992752017399118719419528532394245759349523443338270708098582521081809669920686395723283327948427663429378754488399457380082947812087261551214701366424232896135941917594834633268222138512096922331544366321719766140925459539561475114522147749347494056233138664544227636111674090197766430023372280930969566379078703061639397205369877251376995132110956660302442011174880511542968780536025552263590401367031729048524247465460847718876208094549256385436679049223046073589902007974008629992293260827403427755974721769738746914640648475914758873177521388426893596988378884607754078669227839574086042665590928816068012401233613757704913161214250708567652646679150525068419699604156500055739133799175370144475216463186488940490826360524626376015974613997697554792137039600275956676359346363046048065061533396510817366036686119812479119392045086476213538144210043196560493414666621809963335778617596967385735467661338309928889868776804870434205246715077220128477835120351173690042532619790486991235938865098322967940445405082659596182622958905600168223403829863465136599084823566058000302861911258695620059477341626434212165766487854381814789921371784642459068582226573945041067178843268005113801646118315461335007377634447450518572601436799170346467431170726477107748202626071076453597375661275427814939328086965339152245012050289118296837060249930595728992797096248437965378866051326893546419280572209958340913285414493902835741432210638373658655206682710021730039380663949546857285676940226390245413335937561967784786580125457056028566951504722811525313793736549973729465136473838521485508407768331504641264120266661916066079877203477466585641046640768751799356891761456160569805334939966283797480126847210200204692236980710295966706262093873799670428071604295250223736075804685762498678917571885043424441244169275992541429364464288987000676969077851356326561729447637571209779602668602726572713954786068492476844548945711639858148512372769395724194974575123546685952397429481251978275227447127917075245025298985828505445940359483133975474630994355483455917794832930048443690196466110277028033057386830960598296620844569177161374131417422349577218982871648377916400719756428140482345715974566576418881738527165461531211606233993016241024912566795626508976861745592859510121384107917333816431361630422051783993960082529818867136815853064821844574348474922041390755490825854886139147984440342781369351911560925539205690629126764855626740128271532221474194286647740119782620441132014457360846290784528187689216416593953531600526078284589449146356202383106932104084574783330737886492142112874335979884815690115528770478081535117739166041395420802214146365142823743352170616857089863228931278039798552538467993220811270604926256725366255953076744391599614730865527520114295168906188123155666259660942548832609441850570917701154088573737343582797510211985573694243684696892595851175954573517447373020042389798377644778023561434184081485390925293966436444038115026998123229317647258277815186264133702890291952390493797976309530334525003821546426818396264326460588738214423683462377683385314582857124136423406819650374517350000686568983409524734648016668774631529698836954719055489069404663850263414614924372766334464391655903808757585917478911049850105861424285322925062095566690776734261263867066418128605090844171366395223926305976814129516758147215274358268640554714922860016252337657383659113265694442687607981124015481590625107161128827102584363704565118689440836932162747423576902254787357605237706315465609241345318182100889795566338197461503537454217715060706046877308464572630757887494696347147902118993843382488264917188839662220336869534813306577837316433843427155122171633377586426161951698106324661727325643309910860619783625981979598846761057331861805780557742145099212654941057462168111591775438862561538248789108255439546506864680588444538479826890532446710215185000512023422808137053243348843234359224379149407466653896484732436976079912773888658009438899943933830437364310769147186430687710617412776587901259320286357260117911323191684156420688214290406657592186616183716213700117531197560006474443651647495569192773503852450158377679222715741595641837587835417045818493458025422573067828103804884348446842560321113657793429856281276054088213392968762492064286726148924817110780821024930707592922072524516957191055260696889484510935913444053151885024693592524231646781682846203924716529734305551759424765321067477066062773125309558853365445768156183141746581472505927961122493030132243237526976624270189466049226439289974968381825467810799665232276835884386167195073369579567726795358262944273594620609170039687078917710352885538570757381478447238695221070743874503751178503222528217682367040376167852692550479920922712339606538929559692978424217772129234305510168200793148028071348693105507659341231746601442522806244410965249198794455801313618753878334876672344823931980714511624074318244839272905913690775643705472317930818403848925559955773116937827146169897671181794881439106771361907784831143890266965206407359319485764872570323121368027461685077534046029515949992882179844422097577762588521835958428179009411213739118911202164777731548775484291630084443081298178458159917567826243834439935169977336243062794355151783277491606409513794335734701013155046386779593453667425633288081245309691266137503455246877681132878015651217137038529474043697429540350705712653771992390496314305769509266039937774209035634765406226099094296584932612523410513066755680603072341469778165532070454739945697307676819068778788649471170247838545482990711929116240115774473783799004680927332176987700151851919787460227368792605985999485225960281593308037716680829848327512756393567246452217493060219803136713293634236615333977202723555630062736118035029852141457700569012878066069105782962972676604129171533650999821988073256165693151874530773019060294698906420836918078790152566639359402435475910670840040847041933230957453407499932676195273593767910318791285661846458876247916357262305397871662612334002154444498777247558740987525226037984352246268748719625950735896801222597618494038562792528794955817890901740102439485884765322433308905407357758795201788415841897529531536021979014721788016747903408075241842355132583468842365173967409154954536949648630508572022230324859362111502877517483512078204054199869290568893728062872936456172561227357921778796827440068525048627893036370222477348253363373629109621317449041715037249534612029962612262626848211062701414487027040224459380496522022023394010702115142947366477487243843757297503264667570570669211534166934103057164918063881594439605977555102092271959167300549752891207590479002630208678202552661113825683882280567973172808074446176953396205956780549096152675087926048671548091513851658128786378276613031701222392186033675035835129207331561169001205262184093912812912987619051371324222627665948576763763920265152154575365580644869303918619346065650760998941959334484401851022130944095123352303772956327037328996979760131922961527205457924484207561539096475814469851985272620239343707270448221049467406586804075443723946635614781690051250383094149999022052614046903934275687542281305839385112598909137939425285523435006445521061452336619253238274648017909451353884610463985445570117051346989305781055446088657939404928328319734973698566214666647205648154419386431045912035299939333481330108664888090281008367305875583981629352765897878091737367392957426426793802849779490253714202290169685644888168864496313784000121831741417044763627796996824606158781070438294810991236995261959436464761794550833217452752573311343342845124367693195750936166000744478070716004476621507630431972466169272921911887086857464544485503409573142580705432298873171256048741612535443822958112504446844868252398182276517314636678221477783762096253899526619427390994249279651950498863008294335498635233557304054453165477804127939929047169346903146294423079432835658041260870035908722507335734434247114451208384571704756267418233386209027619951060668409606228262010833152476579111268858927876155031468938345775728551522035440240064949646633659067886633865402699993749378840905005552665769971488138787457938849009227721222003945194460318042809824108903511729866209835500152744480623800914759302495712434633704665682095423756830982608569020228129064174751250242560988972064346555270361553558560544276847196374417092225947016362230498867893084716806766743891678497939221284638393603203323442189736040161655488865697289284780614251292469982350223695031779725152982883074210237816040061494921796407489157904060000669347681821880766491793087016455584259494060827279080284658679234540180095229754555878391052911095121017242997128805068181756934630704426774656541260378369519924688473932161347659150708388471742684536808536372921252842761803653043021946911465044717492151359836003671803182975983916387961929276986403951597903889275312544950261510810913753763228421254942896881612198609349206871757162146799652469316142320607415686013547585084577159175169063491090927848842863250685800762212948025861537327413817201221190686444534810972183297519293864168171249537086822932014717496751177452580162391537894153458481375198169300753656975172708832894319036888886345538357506994751651193230322160565367366180253712806750025996487698585512547827012235665587200108779474849713075974321861425755293913769439145784638496925086096449435435886767703843749667017027663905224026314480171881047876317687132119883139885959062066137186699752145761764530149961261177415566445458150480641898414457585603479807863934748598835821140640676234624605837557692793832467012626034167941385941073906303040999011483275666003697796370638001561188830800685148288491420198013451541287711656826208085238294229185478897032185571045588207132575547540214197629310291527807664819593992303266786815592102929426274277433595110714614405029399789297623125606467768166480237350258357479703760655360082842345736010302276615847442760600893112933427207358609791563653637822704421532660777370468109395121931696064336951543816702898956951015891931108757340245138839479595536015739210800417651401673093311649776239149816784075183352833652480913209696028474990806430266758628528941052638213400140609417431924245713096090690096418458255391782454065617169395277848245069393883375203893094199949849700503605882268560312986275700238736421110981745491115044702147940430092517998742603908678979917085438178648532132953694993710272018591725996135661806311939182108722497388991064483983345539284820032611423888422693607553550580900290070721255294982011490988115446327840258241903756950996170538179943643797534765198091117005571432019624741580287053557491520579774880001629028117447552564355337726104215111203344337834184558678863141031826294250015635711980295637973516107235674642574091036985432234722274245177198127759899975313174497155801682987633986143556948563768017305222063860142942888817894482006904550145793907210920667716045652631662955465912220667784047687231772144259257273008433308791440089320649407835778937035315248889621678302471445312517003495259993051277512371201373516987272592651472090809172356575862826508289672337582045559881029298512407201855750494486828497375680650940669577210787525357382988746300174434224243851621821262565415209670012320886666995291755612288395025923922816278664994285460449066488139931625429205306501354061456218279578990888115182326420720281500523883128758472577164968382548036309343067869163900997717556399770519765770450758260878137434833352968590348912375061974627656106289338328193409212077147779330248214069352656279850911984432541215432934744779233978984763290713006930098435633663204245868337791591755781767864545514288092103431863408758257509113283032394875611073083986890400513359136989361362887182541874672193391783358423468033614756290731245768386479599258135929544425463797694242933110046918722023911870343221014816475030973831003810119763999572159413545359856770073634380334635621770759521890226246888459935524992664667967062804068074240208207096499868549171008098479901474469765417912612129242926404518103685224199753909104347419548300566213781426056970751553408578547464932281692636095880395576399094712153851916130901908108231888873056306138637883915549063208420495704433148178010958678173226160599612825881689268526064519962363879502305838131084046970411217373909495689401405084690722699276746897448775797744895008653252497253966924855480535580178615598974995611049118529544221512534138981340351920620605939469066860281785442992652323802486437338528887694275676610440755585064471518371025379457729012806597898712570190069379493972936108620302593961039720462866788701696371498416295737373665902435105989465720145324795990205385797172718275564860090456800379670762006953952518520514829775448352001981097725853036506617469288289360766138992693515441265098614007837770166103162817828304470441124321839096311458036571831156922856829766755737959740536342298644096963714162833373934503908688982041446610959080107316052700497762250419158585686326665777243385225982942346009306414168172386959930238642365379245554109491887519997058623975940591262069478104960232151229126084377484243175097701268526749880663671711088734246082488718639249294304829029575102645140069339857296911918037959796792516825179354490843866602373529397501728338068352791212211573917376261061740558612286693675719427026693032301281236201897705111429026804653290933012918592900496871432183582126033271034501669619469489436784321031532311388616568001263882131640917021169101030182317553265343759251146422513539194781253950438264786334331856390597966710471938703264647005506135998248013232298676116093216248357382321184811652164409820915295692506266700612531258035826249388624360124258032156361946978404895536405972397781383974631803443791670167611574949818498034937984155801191348933217260792967652982940549506081514369966075036432503373588079003025752446486928884784278735265719465259831320891801936949725455457292982687532431571428644843219293284719126561622054645955187694940386189981816410011906973733723148619365037530522480107120536165692797292902880565527531291712950514203059401259022182178668537969831026135615072893148062308704276291687066602121706890025076394604460477180531424881318201187242156867170728592124677152968972355750551220253591629918812873263974041833533921905766670392945500079503821597745650039897379867631814566364332891897549887368206650221695108285340336007865410344801649107613092834534962705936527861017683929399288459078725013711686077714412884193495995715566664313774373742510095090862076335831695033946401659422925870599765046916484697998006908701480919512243614367896063209587314351107597604508926195721042893144568464696874639165928955381535900755390505615301309321802518171362084857447671601701466850057393801666318233962195691436289576872858074309387040518067792444580881880069981548175833744864752526478457065768426352315765479197891215146192258822811495250741713791032939905793274167337016058100122234790073365514574984453196927041730216466929183914539864735383086831161786041736787717408829183545089078122975236002078141705873699583333024570552714448133427081427902041077956612367711162896037124979543439732010085670776379470530592891147178433715811117761807050276832413099389944593993635633575788091711547233937335947667997965848956549052309196177098181518680700278963114124456338375516606629375293489151592668357251665158654449229032300159008430022815382744245904382746337807671505997252073832070862288571507730075109823535049672732117006322877433233472973496500337755777855411129315538968097224002507038016226668828321833039946797442553478036689903772270555122617956095438857567122214921440755385806242655128696511317318608904168062169793278505721506137855136669867599259651228793436843950767275795902294759238656155832746683928856035629793783856270175649315594750254178230715168326261030418717496829194275122867208535291557992620342490150121281881749101928699068281891893840170852087391290487085083471449878281570483364195868771903332090661306409170664569887982820316097003508329024234407729899677219298170463727229944710457081352291814270068353529768055663632148633312575816975468316739617725810427775510590349908875435150964366933274924871286886517579936889316655590994109027463647440599581036658476066202871557132705572392216750719166153019540002931544185040417272853348751884179558919640605005212479327718358557151546162895421708963431143457176108185997490519979438935184959482283970371708788769201339512379038389195429123943396021528410724433556741320985564883250052184908123869875014109559663843746234375771331089420161031412460635528820847452937312761542830488805048944697657987110702663777222042793762965695773962683607131354304258371795859769304112850164022956316541465123824517294967752154484451303120184932529492316273506086452649163606682139238224188458600409506385656607237809347920604614058735491707083176131752044762246718717326453328101840834807041883436200737114191857125981966398826522069932671285028772316444605465287970216496856278339068378797979778330955969948812479053489457661686563638100372355086526988565597948135226422380086515017776249728263801954197068637468438286429576666488998625769736048988693832061084371004869487037296423261588823823688881826599507051463271250464463158240584286783874130604718055850077244015742380791065125505014619900281808656061846870340978463856532903635303860674318946045469417503209990779955940532807803249966919321337595463849271323696381614758723355889067740818681077686385733494396695400884555307451984540575473796371862768847550870014353498719828424359863879012906698089441739564221329570766151256903322119989229926084845565758530207256649458063127656050798255693875222643833654270248350347431682126836622757487728627914392138869447039095017741124160455688571422368461864179119263617113606807762960013186396890045463639716330726182371035365535387199493577302035072074452905503183986081057883919265265614882125565573945101031061384963222411921897046394819313575396388458961398952564322172545786100594366516742029489095244569686463496315415893542422906789055466134586806397462594710306058879408551845494457880853290986133289464540677750397902318511818022173725471302305523271651464491993262104196313554362252055119716619273258026389292084681857273896416015553573427878380412360104796584954544586318140149703747625835894054613938183510481961136751790788362764069202323427707708659253362140301760430466167282240997295102432276724205607904956698171671565345325008087758928432437084044114010058040774533573124407791972420177674770381217912031559996361380874099286538761727655717734308196655637221503328548484800676939721849699040110126324764021584739679395113693594819825306385968989381715651979664431986962242296619459632807921900034224860003802212348599088769653485031018912900806641746926947863366053717606458336049306955678459445062772503405404126020185168054755866406926653321504893112637295667170415831555060227898070791029171031832556958598403226725827289256558369853464014697372784801448914944588655897580382653989667636952462091199689653181897157323079477811469023629129600979116574821267876670211865876597123167096728774050680233419362213051615336929928462162656069129600092020437980004537653760001105916579087979833363658506882994763341116922092638147849369684908913819807818855554851745294483588321732391317997740023822152657343780355695337637251219809555184540068774806295731569965568948167886801932899838691600213236982552801229118951957365425259148315759018289762407004484969687370877918995971920341969861892798784400190107585352004293568479506401463927981185989640268382065994066582824710791618993996540216060402797527814181229318580732085058267035835510047012247318349703812158551409279420065329129959985598452627626451559491037312536242089121561645222012297218271513515896881438413777456965284133905946973009881152046765613281574533606181129565794764830331952350319716517935773327457170050943160411217315364543273937699505465071780954532789434375496331643726843612204061576444798439038857345057519804250556671656686629108615739802881722699980546631505260516854556489373685229868756617522516564055919787685533756799917817549483786436302957922145640363220529931025719547815479621005731426911798678393205971112035359463436278230388279190588401114852490806010914917031316798819000445525969940075252247332490962275697896135713751264004427398729913526832297972648982185467997614735777504989444125540478410053062719623448357777432537820750816152332279312191164745075890807582753074418483556586233916896312868456676188767960861660452585007693613211130317123384026428594219287310538346567733900041733220300924340093767655880563321152169250178593290679764753600603037570271941084554356341159197893015110884843478183840111113179064270281898393538138773553402558065782578677440777986601232163586943385280881843414459881400287407067361442201285254857242673015508933372133572811562277593413244844414525610332628128887483995665535064812950868417414890490707894626249545676623778430438034408270281719448628932165906020764652146045936727082371942243810334488391123775002111235421044021814801549266598372142396204999169719177097083026492320687440217003208667205879555943591930141892276492119771984487264251800329048151670965313707790106222429972193207783983946673687646316481841641877092826697630743704531190909928748910435259067288173257142623425603449598042595665887212162565666142941423351918000638696572140636543099315218404303826990435218440125640243984777665944446917871987719446395221612298816300596604418263495715583021974536108138430585896626308844603043551230617019922403946730124206596776202651709107962385270491993803724336761455275460433486339688639281600408501233143066856570326564739064889474363039760638655749090596835727714653244601053260252127109434369096028391572656311949971819274302149793562870490557633260596257529968284203166176137227222223354905094124307195327562470385494297546215926236302623993802856082597103385416165458103501729178622471170520608749126155896613083894605985836295321836149445040519542754673322896406954252630868910755598051228083255944692350067608542929862311163118604527184239283402319573416285552219489903505760554665099548734495601685943838178481832044508009767090460352992962623129794091487559082398929627864252424680581100604336084420090141707576446466408138723798994166613634129803703757744676205446545856634071611130011164562905722506805747373616073634139602888008239547875024664296632788332744784532273868828013243979727405543018483915684335842725126832570867125526419158649260168145911876326124518283923024643082422759543279080103976596959692898904709034450617167368346193647777886897894433950868608973814175389326002954724852659145311487448553665807720588356234415429775762679596578703081275873192704868875882317926127389391790418489728087728338985777842424486549611970376730503696486854309306355569797586382552947840369626868867939915599628030778947012528362711339721803575377763575901477663314233599784979250672528715368714444031461278040465448142730231367953015525206784579345020293199874729693890936213505966447025508769880532840211522909394176792870793127959728767534493501959900774773918116127696367431302735980210860925745428249873191771927096599411265570871365061583670311197803859101446112663679055031704187132261931629576845601444996171492027085882044695962315567655197923949110914234294692770904182847611410215627866889912595349070378004354857008870194758625293623575784405448539817060560162901997432362232450464890051099839579904231373727986552197375324382444012252777481866644117959728660788566131485513583138216710086912483459038478475533503132656357715093334541212192390469947878335723171234886368272723782551706883037504783334447390999737252165228956963631133220186797676036620410763861644455996741513213896201927137881691021795048032947131013046229088913705521336498435412322535963366431320587706755065855917842404920784101521695296447452822807795057187584246724721242918590802599520107788332287541044959912770614898040701421164612665365533253912667083080279011683100871834541911570050610548673784768398449178740451742943569205930897632803780685176179030019148288981933953496352680123707603576961200876851679479152435628609764790344802918896558870157888894570175172139411686929008998584318511327064173511983797959293794271085278494900652951767497692761916870396930729494247903587380023059651809453104868114961114418254752162341838059272730973380177484318873121482906852829737176736511115763348235798061935134607558867327351573462191855772146646828264361312993636932369956170473666625470361276003952492329060161245441761865368159557472859070736055418607531372924599930438099032446593051684240748989344639703461835551485368223369932238126021678498596862757375164628382667399112866771669349657318010405978679266537076646348395055098689668381383199671670964663448879246236438636463687141218495458410640327540921810269939497098885334344311590089979799984562979804993914799864042539538648972306314223357842558923374538212854099414000339840845005802060075698776493208835505514899309168282983190377438469704568153917112287173296825837498126821422943254044657807991010012735860105993268609595788932323630306985702768565889713179911334445473125803007656183260469388532014090467382250736900041039364766894521129827414773309947031235413327738797054445768996738592155307465207661656235175439299380414537313317398049423916278225935430840714762115122685567807241202395772723721599666634697612197188737782721291230342888576786930528827555161883280380747514314668169948742282590852349725388666812611822914639919751911448304536754437112136702918401286901992348234955978276659917841309018984225863065965323938499659418456854497029059386996504443201004097254810801899328253299479943225212220189739537650967777597436415193035275328896292568217967556120842226354250364450179852010425262637124915575241412579470038036347062367981789207829494285393272898705399858319674477095965967052871848222913355543425434636192125633724118027154806004666716301671340961108087518496765685359626641510503916510481012374930490892846502149919011122710882438082543632253050041042526470300268694213684057657381823346998464924563387540246099962418996192671196307024757676517179354277329204558289058436569882650874679382920120968938194845897362998018927777148325090033888446224774273349950800831956908911776856785600611733949101768600189385119120022078149950587504483067138064250191390031783458457639789644565538414523840043977616780013091308574209327294386400312729264838000315763133983091871110720155867664238783823650387920085184878438416982469396890542106060356857917384766884841002133514154751337264727769552326519125386051159774623612689447854373649080790557858955825741870506693875769682222117750000175216722478846987233320472389005669977831422963315899858105253635533112232434478067440362681102303261221511641016181639304281163132703890675886460526828694264966205433930622571874870480136051313702106183859837079540501231484103540464357647712744934357012522571463599450578924886336441625959915532168446596470795963362367815156149429518326961418566258036582345089447734553054063412060500817341952465086206348485599602392830291115453321903914662889895776398374693288547562239661688497304072792066459935275602309132619188186615739503580420717577741567958096283372613074242013685627209033289973596803834769731146888240657602320681554259363923881951726913976331799806135886653770785222537500926778294005915581048911900326190383487958888140004879376468450795901186577686090293070147972773740145550773224072187810057070150476139908579324019808218079180029695513761097505940008682326681535448794060959707542062259802275637807166524112969317400766564560581359205889682961062776121788224047466410175325667927645554917181749717756131737718565756476713822629269992329969439972587494119475422415959799960864166309104169859929441397548211050899668675376831451418584149902772554511978420054707100501008429446703230507321170714693607485757817057835698790928610752209803507750634230461075862198238332245059205020197833612759811025751997072654526723283335013304831627786930232111801749050133964060698563121590148181794294222570276351636145802213817186331649702103120915722275156730668465310015197779499004671634143464845502602395080339404823947011724676484624089335702089339747508447825269276726149401451262571569008720230219640331124209901519075186756944715027079497317782594192238979470799271649096849493155864575691388272308314264668853879205778875467071239454247153171054773528948052442273846617808819103906095498160454112071704726942974793610687972034417480002060446362878624119862928997094632081522409878115339867798447089649394477449723394895477552294742861062465459514845559646397627774981233382598790531230071965906789567901760605546267368966863518892694293970012411371362004803881130645576185215138105806989602178192614329210146713780127851150040370526716567421224170943250113456569793281321766454955016775395038677372658688143893613642680323577681549912915810526593676287090758954228705221012795904567545678665803893837034420588330539045682978000750639263292245843487843901733814237130375421119864997886734957521647769587756864026031546789221119546371108640201806274445598087482423830299915373300256505558805528151841038119433916093843243470135367841670489738311914739444727723309720972268314970991792963378390477446692806318149873347274584913410215066060723222596860426101998283112284579791778086003540499480648537525920231360660418427362895259225032979738399548780923921520075259883648388442584964771229236251423486022972561354516468091875154004281767971439512163125458869993437591051299028897761421212370457760535488507942903058780023506729461423244730428296718567970706307707098593201270464115769960767734960584497415862916634535565635746101117555797524502241086525435755509729391056113723630871480789298104983945530794981685175540720841487150974096933882388581267644130738176305955716623447405491721152582444181778533062539196856275644005853003652597961218013236566629656040018852466443328115672209724351406941880611905102696937541761807763462139009674892825165155991909587376995709598567108007521886538598858049423812249061789053023150027937018607487299969837968041311779654763348894991934139755608446071008606783308512098900630572389905348519563701492311055673644897729621595291257803304674248003508582553842196291652320649305305337163399580412007764389422735702987514000932147016026006786651271930298198486620814521017714701063904737045055921987810789311998085792178796677835790055154214003996448009200108885602626285554832885603305094504597771223556733668733071441620932095882984359006309955209978840156026600297462447194017106455156525907465161824427540787478493975702076029148589221824060296140398044634592873453908778052854910520220780720807630815588736121530258134525073740793038454178545250154051760754796326021506163817235072560255872890220808115138478771036915501110518542144155679168967525104386677457226103672983161696055101342461938227298303622972466337161810529303540256220431292912260911435043572182683214496254181406332411848417391921264066124937566750984466134562896569542561792172322307692190142546857000875549218393672492975564586320707432085914226577581242718710874798157377850644757822593468036254794008563740436425938436362445341723534229803244411706432612890864253205471653276062429873445500313052925070689358600723987869541882943345494261975081555946886741618722773458837707643682643801508704740988647114490738366598289944095952264801540083012343604980564006538157359132726306595382139058006287530906628189880661411166734435694535180420168775242260159789768980589301725382186702483351787474205532384539204529149714952399844427038936345542812485096482094339961690048416226217217928279444427576594397187001310377395055242374187363901648402726307027479592610558617808684176296666001913917395964514688990717246785764962247086082464586852396143686223940453647811180495322111638617464004878710860806932382385568085120621256732491254751459188385487935126030447393137504869874042339289054336620088929692209743867352224409050129994440566729464126785017179244511990037259043018135103178829016754164483138687975976913686651941936731550527008165705532404117753294704211809447298190838521676994026481604141602283073411274657792828054798571907594241864946147337061626847948317791478645232778488559716292316056713644748272748073798006375181373218472635592214781186324937872793727139100945772786647641660636096088558132027708575931624196580452425766535392100324597655286727241604850825280743538562892350190821920877879921564062085060671870318546581365255450989191102352336454015888114383508357702809456200769808021993102626398751927650788518100754677388474624749933884767967588860495787806090839589471396611811471326817736007866642238698596455965529708049123756523640808178705585850644832292830308181237372353100009700782170636215170700008764189224285832502630527422332313160127709490236418832071239836698249348049590699490077661831289065625503449126277957719695710447492963083376114980009967190189492634101605136891248716477646952554947699910208448233941415266247215452454085555163846880228895410291745647570967180459277879614835185873440044116297901939745795749336920211505894187820561974731188158831615349147233395338475056523332122185383632080586475736356049523660883143401418396365718878948542119524304546456037847291858525914018932688198993638975347883455624126594985438927976599162565073216633742565918422194912347205675666267639393073915698790680517530314699468503714186924967033317053216728435182253082614329093552874680052510452271632213687395684169323322709625425217458898764738160718973562041068800894725902588096663159215368297910894492271336442038394865948643827693263471746299739298386404955195655882188170267928600006509455633570926079812307202170242621007544097314251752921533000401196014895208677178898444276253954986571416183114619833648709237407367720032408704136761441425325879817124842733993897400913860894706202885986118205214351663428589670603603442183378674206283508192529212345591433710334953066258791188930397750781559364256636847300572725390624202749201289967773779801298720018031755372098663348239722376717256104402329470263018170447415077932640989415265393534632592664898158407764560907435162851790076026877711314207059648112340738759523269365107337542548435772299156747068527407248575247145081185205112892970666773054793874425243314127687065823829374245479788449937518337856454186730300770540099410746209220924948530786130850138400559413472695381526057235889536702036635627083805737501123497413445350585451828432963534274923422317606051584569615410512791669750077486353138178453022398008275356480588278125760204678422495565678626938717124680712330345623360400651610767692682050582984792049213392597353139609221471336478883788934616752744364913123957109939965006356604663694816003034472862148933656357135094370804707059314345139139735747337800462370665404700641969108452294203277135267388966910319571791738281586806582445767378999178046118797826512830434363770120607252667332376437415023980210464854957991227398063158742477668843150735805569233007133021004235909211111800128927882627507196412340276303826316442644544536005092858422591369245278799061341422618940948443515088538584069479622649206186136066911504851081493059063560564846966272410751163542138318414721464192121483392366487882905330558174119535442928522082390503362651149405523758804149903650183012232306529739118071479645514010623877785868536535563657561080623813679902149100317282818314053192302834023307749372324143768585243901531217871286456113852082983378299655783796719108701806485368170639718991256025757758504624855600111677980470613749571365211824002554745031997758532726563552521331463689646382255886596065757639529864991912491444107517084926858888915548507482647708182612780625097714661350944600117749763845865179212351870006478168518271961634000365572635961852468455465671826545077131450437631763986382838440467026798065915405822908819352000531064224168922228619824528001067673285331673416217997428629464740862302643612838743000483706842433944923326333080950047303488691745522401343440998401333688645426103423019226778883665987770319881153009935963438138928106199759801190126996373700628450771553257878185127874756249417258342334223926784259372033860138226782970102119420714799855186033344103284021617711681082096294624299383909678263684966898040826146447024159244996001241856905103202874373824726983382882608554521402032132713191375102952239562990914286179568048138490602037258254850723804121270559421272974540221418453517156636006201178631905977347846133696622457966411064708665885843294510897170853253955094434190432972130794401811856654413724133295506982601957117142242736468155188296146645626790981856189417349650089998900718714416945785350148332339613668318416113856437166849763594104601572636120399657941236954833546001241508649300943495618152785952249962804979747097100487767758322838860414424184646995295995078923984186790594278917857220589370171485959070669242711775222599939279524326769196693283317332849345844299443962331544560082496877217841478168631461541579965913500219376873022503624400562723233186996847029081111676759674190571033570247238897861668182746873548026428377438275337058373832464384094899399138165975205516078320471403119878703356651458691288158001595106065995538900653279277107277933477061449679761520834397218080105898742676383502717114372597534724358377607807224537180722260790683552947310820140056536589698522180209512795060017204792183286203651577780691268891794306239358155463508946693399975868339094072189870743056710552428096570528946616110923079990112268041838774188453624125993245692202566596485499506074702185609807291448270167774663417231999061470135556145237037928452991930482366964938874340538492691190436378562973433818223924121144161264150705724007502566491306893961318691384836746802708826684240843133957919320749425207339930370179559839818699231278485009330819974662545982545164772956429088552027681019966371586378967561509510459576809182715903923862613419823652123837922904246223315247063119466344459795391276887224930672181202278461145218822252647763693999615578698066485844588304526161146221480807071970195062607211087428417149178943050681466367954918552051712121471386003724243036220208672107284808025858782834417320402245228401724130413278183745686801101258898060383526572140470464926835554169834086001603332070843001456381668325954074911925486759939715332563526970474720039672271596534191382480767317340726137961613102147504413359215266977407446470168347839794766564016151914105441743810893803076686268600138990894212563628851381458669163482100413358097856888543476801715767815308567684960149107577967533298735204787653546793237357506391997418153075856525958648433450283819540434467644377619660540782345603592930689266027428750310410076769021355476569015750355035797286341953774413438964794589358227491629976693979212689753594171813983191353286416675904767179112891796437590009085152180199486212416341721554335826638105189137798536612581316094178030876863784495509490028249163044523556186985548180493823307014255921188215579366654240311886265158274973221497813525010475593254421749101809370470154351351305534507663280440997690428525156065418093969562904873893166253234424341216116098455158493896610687089041357488578502448487545234814825362083608344231990049621225901778026565986500963351670879202954747543127555538431442899708962150501495269631889381100092366324359768340104101502057532448454047831136270177257728542883914194245260185963783391087826446794174910238020087999462711137659013601523651233101779084139660640406088894377289632282811423563891090098432033860732270851444382910288941609441115335658653357072051290935238481054180575455615692289693528187280197009975260108873863979517207526190070348772775850118087761649719386221257542411957022676274972863972637359899636923337054123164670447765664573862349343142912103930011444165724764371804189178867257617124067055678625621680612946626864381539565909781167425683998648853250748809379769166172125021199649171544527560722561409582971130476638363877377772505636526194581193988469992972766170014272399581869324157276501215988877169608562505892649059483748811211800795105266026213351327280173595347374776697203096207930657531717880609023820223685326103007294470986586432241368821892415512697597810594150301286084138947358665665362312077959440920655613437522115424622161610599321097556775337507605085231983584579733133459445417366258402131540109292812266056177467393155747333903616265461245348177508650250376121486935336464882168156101749593299069029208645466917808881207228330970757896653801502053198994284914668348262026426827075385981382724443109181240651100848725147749358421064226037906931207397078553548247815613067453134754305219072501237570774111978723607193273029036575014763219530783584278688413021045339755157537412113451760213465485036051894806044538777073465971110212540300582267047275040427468935970084271451559870833805996015235605811413408482875646840682168203652893718438963820932487491750550053318729479254429561001823412031881222485665373006119990156839575828106845815073484197333089400904455935584243741275050147317090412160910293337049647850012251411089965195644488685988202788691785858060457380766332295583478808218160398957882534354407293827472378783333543525668009560350504837852859226003189711304701338377828448814847175566829875261879923110258669525391703110634849750894815332108815164965199773483808113165120605486172923528108299879048572513109580204192112429209486938228169092802445899960860047721828356577911862354508947435655002668424648271528678254267234735603271274728716210513902752433392560194253914727127208001714567620730508429991814771689047129075347943122261400114754016185835253134616541446036597703506679255706162619157292802842651154601021362314352646626405123439389217622427855290351249186937414231925301579145245457296391985822035113891773069060451376017469697293699262573342870196552717658496997420392156179864020565366782142386138327444093787444424037217366881064968603259075577276260601068324841377323378032211846922981725983377025521763115720359074384096339874577108923866558702358547261518326068124895862462757536100688228521925229966241861238904633752000585971603384421995386361705064818097231291850707156418130081952359939011338977693020732763918390569346473763782720469886120093547031290682863982000653839657828171821359772266517829047350493761611615434056807768241096776980159378446155178509107733907257059218777132364126114031710051969459827521166878456659355744387475092139575369823829933508463591360503020316951662501635533391935411611927952968727148735101571627222668984808241298462607025696876514215944323153712002887073755117823730242802657661616069981935025414584829729704948519176446078183643514827564809588105056572358952398490962056146159710229036672323627707655001543528603036913295196857813203043084889298124952581660684771105558276086940325245150963208464708297311520610430583692248477696988866659333089247471917961102920398613777109957657947114716776999906682396391998255076763016171941607694536158528887783359535871296848011844164009196948539968063242760855251471184252531140988402791217798665732548748765198581486020393653262276765763285688748450602381037713678853333951854322576059370936149963133243144474099750058274029034386755636944283357947259252567458472527012210437934015192350612942363430354547680916527525631445309893083775610345253025467237562856120063545862107974827132557861908824122262825441245041884254767674245966728425216103474686405293732586044847283085489196836481375162334006200553974448593083136391583515444045945689029547445683368413080272610530681715453195920587327391226779180183301398047423440690900268983503224035759378528807070478635944211688760962531709816105092653366735948120978395891237457490697404140108316318751870946150058352450626644703253035905872061099278690441407241927254427982979160874320698615932786110995582093850445999880327095468040116879128678270407282687159200679068655544510236342066612426437682540318065279412926170148282697290292854374934539878047159142752143463247826959122942546921330331078120859401477744978072025357239386777144348909155325987957685379780713338130628952313806401565778648678868250620344933421824966859035655359067481708147789304648378940600732529926152360589030911770639049970620421843048782285821959515004943645684357505514123866917336295476951429028019228597278576280365805252409995448355594473782722468688905270943591705801777143334982249142304962066801610822285515642847445868687746998585693710526280053616918068151179532501531112210297751309120485624483714639624712464972823283196613667639277752467566410023733162406250644529213094679809933226642979799964234608895082578736741811241996290327097106523586958276319904969289976444732524297901626066727779615887171939279537977721592334790760862736399908342692126999848236434162913251751598072891203389304645112257342795394698726328669750931238382219351174275327061348518987927903539398088630508116952745192626591356036635078784727371620254613844647196096437048620821390943028987566614052481789325018833958920662115359311709054015230209879483624606583215583662767168763189151443806116580763160397749564939607146053556953741445068145443423588821591653177951513809916286478075648273998656988022077793041490408713164153659790542107404532262464048498165220344634032833259162205862450939561513695571882977127418085761293512501489414734075345803702401357401067133868334817719851766639576168005497187260158017947813599707115821179157069425478434641239321078791592615326625782257292860304540900481361275572382901613574284519799926809493723353335686873803084632981282531848543172299541112756331586475124149647372403380922988331192269537896029377300202586045463728728692707399592414884076001990071246744919182375565224279384879417171847426809613656913473836581992356805956178965171837745505222920783134945825394229869808449461674005971428363151548318698848103549616234354602196829521636109907381086461298450617847456915586686568450337874444622090027188750223963880651281740906354836514872220566135363980935282261843172750410857030696603243666042362677374798888457391899088897418317212405596421822086332660427333145748733611945923231016715811187234523135655634058499536159476483654810560474049158111628309922906592148139362851522003066708304440571776792831269679435783647770331120196661617384366473517362550611231055854664522139785534290243055923827652110802162312381630614538259052840876182759392603978028846105960420485555198412981177972960921361732702899318655261464441778394439224203302040767060164383278077446797536798885648228310231803700202990878473697580960582161418694979064200799728800930496460047273704198836913486243013175848467655861794218453903880463712462784777940488580474511814947264377348359955855581838845208528081058524042840945863919211692452393639589918390886560406119005923375617400571082109705203276201176032380717025243909046273083974903731865810718263524892612438484957242308784852135276432178906973835430256626632569987078200380176082412560304732509909416605757100871612517463845792457129351022183975950492757351416616214234118556340397995579328191597881659730144723877036921800059032401334371177470470279082052348146464146263263049058092418462805755820759616456432539511053472426945336414790637903141645577668176185925366628370784710962249842443773898344661069966675563036541778070047852436244612113868069125655393708675357645991438289885408570077468838099810579588641523437299777171170310771621040806961179316759070289802654373638772738991517349530195813398830827695316908650676384481757809019548060815071470871877265803232067027520511280453484241759493537944476785655292491063850037911229128643043471270950235591964960799535874383507664759379507252771025846484247543312929891699709203171894312782248462259218795350074051133358699813356617268958786096506716834710926812850888419533643017190494735372263205041462287739539971371757544651545014834378988933277890775872519395584902339264885263104021866824671957361624827084459258122046016653998418458916247307623304017482647511422575791305141821278253750952469773270240228597244370496964426261565418550734290468982286139662628009932083209637867333033661940831560407946861856929924081497132802835868967258919912808732793820542455665684323029042840863088508290211470486796946982378288260524791077577111167921622377352318204397724392649493735977665838561433103049047835404567691764037977706260148398003005917366679893844333041445942128636522922329671316263649158774991653705256626656147150437102290604429538453386231568734970219518181858688474703211807740929714598906394899369507500988853721639749596656097301352897632551475444570706867212157158025500819080288812972281238013794224857752645136221174918321776542126841565078552201107739453527496020679890532348837480777212880260404811466480238954978147158628279556091212208835647878796213707099549404103563145300695877495182580952056612000901656067668172161667484364838754456100910710461732450299349940076093975897388672831843052241021903249553817816231612230851614820676352569909708571299636962210665965408986809803480957004170362064193359729154597455761416795156577286816703770410549738405467563567715493776231503772956888286141833896709469423337968239511537187813845505269607201854411939902347873103427956715146058724096934981413724287449341590583843508477729606023866842251667669041445413702400150995112602278141165495079795825950551146927244787110649739804070215106676916861437447166902665250618362581495361597510720653680704037846325551513632993139935877223304142469218405534316425461359194975835516056284072597554815579404361372920226792415390267125081852028335883505444556094574017711986581878343088693832171402495411565842808040376276229330048364254294137011500211144101160541246178112721487766530893953564663110989572808745749451401233602260894688552151176400089741365142197683450465192427819979289891911000625403848446979568337387312719346299357652104217965855615330360757896953107805673953233588926114585912699813767183114703372801420568646659586130556498978864745090152094562609573299784822271603871197848115914764762811389339697903765041241331457493153405186107130579215936500459687639816144682447610081104896947734191737089526917372883979013212271506414188855256466957377701560178118425949886645562924296328434309329548857747047798849787398454839549293763824331643759220588328742131413805988742204937613387104235563853034567434889016835470922924547012993419480016691229843093780822434779457954147298618194470709908471830396978582151403232470542376727611163622735686969423665234509200278169770420192721247149903371833635488820957862301103842451209797557193472544833464744743294733361968214450437670521351194732187191115888565321659322093559347117454117701272223283518962663101560547412540851820482683714639038656064279808285598226821910927172617456953150639106226073495934623797941952945648109220927131384909040010043615699115340298642365881148829229646948726194223724987063031383316146279969656903982188259627438768482876513634527649294758310804049184803918602346424801186742025447156518307122254865740237925879072418320301449578548927496145290384553348707528193373345275602605403471819732453334471612312626573252898307440668499701187485410616333203418515690645208421733407139100150799840410847978549415219441574134335698081595182839348847657324451135589645898750129451843970517470994097362608898662946873623855922716820793096443421933384557641902524932338929558714477620762806839773637966925381976316097125546555697039522166350627922764163437798187645814330982708622540472065846081491332200317633678368815193794051257577312569984302611668752036992008832387304232035503751679258429312626919582975972747164488076084950712462337562207887849868425824959501341318338373599268851450229192167253043118218269296632983043851248725076900065661481126180247684283133205778300205261497864581891449334592439146389114220093306872424374855191780112212045767745540406296417588903877665053646737466878766701364174962799649112755113547705991254119775786492684459672493889855997487118641384691957869696146663479763163967483967211428592888632919524722079947627192270772142084420270493545185184771547327112620267794506052353586582293062241920015780767065890715085340691541326853307939514646843465647346809284964340360412560914138300127468792128005834693470322512838361430686550201601450589680061005619074430581568638352174379154545839352438911396954154605659494130911663442126130309206890103166269449544246774616119815930709781622282333792983779829261406998634914586702432855732927352825414982441922560156637992799580358954141112993418661639142084409185194748623182693677014015259612178828087261594981784564999702035982758482141280127273212446611696778418814386619499449985470467379412622445408476186392168985354463484755760004411183865907656494650009095303647816337959428194030983319227582915931193344550387092297724403414280242854104924902168105868238826558446601685296396612125822602333145022637367227377408254152324571351882629540011823885200381659436731173379661959747984534212569900540211540751918117257476132835758697716251139482328905981669573522502780505845200611219555006824813451756811389823493529014771738691939374721977441482030689369485929503830146001689829926093719238885395125935203390640159744820654107551456892061326851732190700939426650337402164587180720384396073279899346356447142688386713386487642003803912167032421682350511260296945278762400747999326835427825637183953350052490799901287369187547396911526878580524663124452104532217994914551557957794672894021616460581560134043890837941811092552649702329400185306097771534594236254173445221865453840015372751358551273347651396853991379133718983335957883650921238384961129800345539538104676312182219450667637748606933678286908050551034896048756704687866856703722280246808794475318365758661232187662941797641458882087159371040815962506955935796265937066157163388193321388851406310009140100466078561171483103074926241211025632691884757276280459815595859797860862211586091932370593672696925464871686195156898575609401757592612591791560208912328983090718904815727273773274363520470659107836136891384859785262789550081143096466963393123931452493836064694453398293875179410801988013648914721702756413285697317047089425811987257733340106043432842533241022961036261655348483483453034755398283100618284567621225011997865433241844026379082438795281081374476463113301868228307114800037937816446262003337350655365183803098546903526131514452823713312669817749992745509773923086472514144731809523617942245708928444574182127951240007362207718875495013293522470427370468588465389813533347225341324697199656934042934680742813474466984875252056245971330865682224518377270398077468460153524530891493240000161942736984470140252265213369639737938102806850900643846938236780618875718555933743205818904455624744578685889635916121662811681906145422015406775017954246837909255440672239815082494874636489619083898281882687801294445398063873033025148493620570376984742518221885194773837547273947491661086035242440000244167992030456342230953630005595052980025347332676967046647928979768574117304049753762886245553030660425735347489734283104487406517884777426565873567542053421821904560184797410252285103706873251375325332168392178325372972971281872470027933703186804484919920084152755356146612670619407264766293201589990559404864330458376044698497588935709098787707367757329033218569549444835530371842667247192963476955755549966085092275151181675476698456441345933535403631174650023048843132027739769301933404359421280592118401624891433487381176655361560549574364405609962313627000458018235874787146775109411027527452882815042664795942805420795231169090825872932774731382763962416000663424227250123719275088182109127352819808816909333119841978449047991345479086338688002754360941841322838184679477907924387607040313272739676184953467728414752917833786546519617229302154773230863596378201862210893275055466009060804088925999709925319802221890045292503304726272291619255106886548237472875972867671572429482695287397070704987640449781956294575118616403040210042077004489479489005098173068576777079543415999484539445717984201100102765527272331939223320373373005673588994621687484490252298941074392238491275589747488897790225443883753040139339522944088012902059144406023207666359766322651621143952898352798364108969373997449434711421223985214392596713682963488382459186309738154521711880862321536431138316721142940678338559847050410285535474979011064316504380419368899029616686192023248893754614500941850949740968500715900083763734697713456026849762004212807692789787479048126428749619612271333958788340177242453775290399647267124424360823333529676270517822358047806159876287579045872924099340655265324293203592917607267109101230679581708558924831097265207258108810279969029120694306661503001338127604019459742387783930465299451730591623136616473052087889116432032986941548852176849584227802283196981850661428962904372419671194418331176469463429960525039792540071754084826954234545248722334501658968218165576430298306158431501850650850767241724751109646576920990647344510365667261682282587844157190044376792879311308131505046356452133108896613715307835269902906964292869841449405008684540184608737963161782519745844853850346829586050807136335059256722504081450664154402063296318017691617501721786041265981286843236923495003229623326090435191698346039227608412109926080181549402998156505437330967841475972571850230859215148524299359539974907228480284075014571213322648063406112233568859339980974000806142967349384180489375994408640364242500637366754423483848636868371389049127201881895049556418393513033873192809437800561042294521928686560511840233163858185114517860491403965711632841172882067582472772046271105144334286898626557024821763023744299362780590849440901745032977992736324207765469837143432286193929026125944018424520454758505292586021753659391181987283735031961265030859649861376454333312924353938108477719634822993027427683626368619454631975011199037430074403027190056810299010488982816561054308689877870991929645250852242092590094495330320183593752886554580014942711523452437229509163393980549389713763229674098567268001636112782740996452782593988424287834414615821983904334494338457267035541267501242647863887146379357168515583820206556005336926322796498697251542378442978413809624404045298472208918140547432111660759709850839423991356560729273296967956414875472904430863647114088285044413637759049357947139965180662158899078229763814973623778209419328517998710749159173960861834868218006458748037513695887569269684258459384634424044160434165043780175251724237666160461025814709595917183933325255704391737986684702252443794602831562188771058677556180307202622768804995097831783321229029162046167943865789465341174589111085959913679559524871886724457228260812621613957293477788670588886538961963775760881346232575338542446721195582685917283814737628484177786833924706325382882401670858091062599392550195829481123285112713824611149941993389715001610213683975835736525994417038859172526045042678497074135169082983214926807515818301002975427429648866316804244945397138502422042090769168352437431528855165285642560099170578513936771351044885596703623207080082250136050455006500598153266343509560617070760024043380055050896021549475210877407751658840560094569105202306953858599781997957184551676460288655377519521186752544252642762611083385237240318700368078071059196895382494943821274358267999137931313693594461369774760452933777128278956334163507777024216519512111467317362041042027703386960384435366567228336827791921274872176277129083490328591409315741267365976061835951649221128769449487566795147183809381520335623290501447728765183626158349854606841022596447144865844410845846879395183764762285040645344112368163307134190485440080408525212734519993099288160795319304437567025781223751829251152339601877267052713854916275809462922382779061613732164799241536609451063414511009084353881765962711056048077030412935275251067121149189845827082012495072436928463891302659589770663773495373138673793094431003254043460936626636740590269634841816136788351505665465689655284026317088259486281619781515396487526917930688980925577868038291535629102140005294204498769104280090115323757619935003135793267685486042119883656282216784820476224696500504613945467502919423336383755986016988809945256211636456228705956758487715785129972495337195462303867101740399799716270390987888041137261870220419106105120518387344127656433041701605908743724182112222451628905790990123947503439111264471444930863385956722166676362382829781260287861023202744657464261172458706792207531129415460668633720847377589824209564106597442710768242180266658427081716152564086428979831786856454218397905499395094949411901365375330859140110349129004518609389715525483157991735060362713007715106934369298626233719216435950598873761278598961619652961264405706135586136147856938556029996944381254308823880820976058611322871991695801343098319456756564738123312986766705375763861467850511268504390940941010271838222231263493324082794272256616454916035172097376202321945287967084378425691648138653097342580058428571638275958607219585054123260265554320197771824553172183532990240916650903138149549471493225966123627836684941876424789147588789400599279327152162424737829347541476770208772533381174506152947944318289836757145529096482345528168501172342202801964026800361170842278305193380924287756531843655549819309076497895570924954640666223324392481050026505625039143233776508087411924205038177862253960451021400053785141416610231930486457045547191422256559291887257714395421992109771020644901976061610365392549109928111483305584374058452474485971775204592609179098363202823211286011594010959232189719567106939110545378208080498982581505463969831708661457806454972709364526449420058191715027766619956156047537581358770845297923440195763110799092763990956580503582803445802165658828442284169444894040885895776026279388637076992579495435646557568748222543800398174887821801992728229239967652490108272877097007226143379323897509531520249795416498459829223294619534612069318826261864563181744097700951338062091833595862250419798596284529957959705677946937361298902914281656375473645265944370146404036080620358252898234258922458552566670242035252078525093612290639688763668758537580499502728555209979868698222622823843541983248691707783991665977367440108373545534542926503376005536574774874866670564512396224198968372069921136363575030866685640482080835185894581052075585397020543152402871963898438646197245282346220425740489924692924050350670455930752561941959645127708627295202259890847351014139430589596976718557446305726506642680759172097703888946822386057664498288226232610529122400907392939445007424473356938004595975935556646805255672950212189255805784693672839509834577654962300426606247176443904781723731432076806538715034427392536875126014465123754555914147254464379922301111839149744874413301836000048421776710895907257699730921848880882344803392063374848043664197634365514830119320026964364311774752719051446980880243509264348893921853808777845727421236270470875076765106765115499678181398626330217957608367134515350039056637865538755264334458787422523590104181983706654302834155727705524608439525674997463697046527506334765725582088808827108320608895708975355179790108925949047635807939278409700035214876598054218212756754050518955201137666625522828601527684459454688443536771179139288052586799205615952639332882598147994990097325084936090747624674872460982390077428620635945639006665215613613026232333151411047085727472978766876699293597584098739357808462827089160637518688527982322610407336252815124372860572435700600268047666990927190023234772405227215076417067759612891107695059128315020696675502645064683931999760972843083391818777321742770516015423441734960769256944939341626111337465290176900123154034446255095711622578059172892650861993255387134553044672715561521644335109485508921807420192071619564265121013928902754363552488106534300296890001317976015925878738053999660981763976813916800307505739744248368684766329451309125368250953420365409813792928932347358820930211096740384337383318678713224373926299354944018763162833813156548397856054647086109083109763739840153704828877721081196872857470747610364487092591215295940201468900658508345621184808299524664199243710884470684901486903884556625029385184645858593415046326452646772787809464850286224190658748790892599881497017470659024308566109966706767042681814115528230104592469078403387132979084665036931812939424001794021080632748655222255399586008970009705304611002004152312685553870866701568178536951660144706694603650557507397390216880052565821584824794837136310190394102507414738277035055108232848157780524439174240519954210269989664796929062065112160623930421502636305625070175250271321483738539076377582195138885223248160396025961881504859340761020925656867849757099919573149231411370618954577385019484057179521626741061815495514743381863038968875529396977404269117688351136752988328567476429035098169314579309012913805489256314058202659641779025911185653596221802949648215748831262746822764932595637067732212591123989756509251218372824790821975079022443230183312130277645181954893119298341237693588142720789476641666822847630807207335812547089053187798611652482153086110445499555772992158638101446875143939767753900875006892224814847207405020516443172631943798547611709391172373736581497480317972055633861099253459568445560765294110767873875105319967974311876684109942526823353549524482644333480296036205895786497459337549568631164214805694292481225412320024773043867487750768513677909709177042371115890772600740700456587542469844700258828064355619138894653197640942568583894759532471111818881841549748807189855605975412602345291110463868450540241131034557480807669634668152071172501331469437884631748392929301350229478967924944675684205054906538987247380703043705053452564377484129724036922384435685727774228667257675801803988313593531148314047220309120232633289961935426901912011385309531491855592003901981902464339372413788508604267484488984137220845944952200193547363242168314794145754943566086973637434622221483555815846458195911702331879929191183493008479142224611674069369012393625854075724977095396604582229487189643709901397326720892463854007337379623425476114395949866609185392377158252891917700169992106823644465788871584223457201907486672920196729584784758855406744177770720373170758170175011583476941214112152684738781696986431301782849265767054326807477857735113013417899742777354321153148138208910969111255899644506806092701641419208142218706170410810782008529261524038410411031237703567854046362622574985226775215367341670980673825421740391025567374561537933646800143163012333137191275548719252885358945347299495638173276557438647139490715942154133242508566423504831354831510444372665828461228698985753936972708749047747678309937522845161683917563040563834409083409826536543410719429951271717314434275331861710064454402749771230660205505573901987906658881596859961862175358397781183756053702025231217954432568155957030203691663456585592255301339992580058608901135506945598692924734634686641434326648313210817036444910857003220440979120838601156942420758849754591320036047614499607478107658547229936039769598514461254903727019833169623132224099429921357152178004147156103243027647479546158464142295695758065910557002195336661951953774829317522845786893021770634209155027360613006005641197109882459462174881164035037775634661747505466529066786311157868827723098426436769625015692729696556580322944072749768186740257132864539369436409261515986731237194223736461290846330761515672208391387110413762082600328734689792494686401929955125391201006533787912111644188024335864110441343500329669539236273559233100998242197986283291226548896347024587706856592373185819183805970713013479171204671231620436523219677626714851490853994491951618967215996705472027662843829136264264283229615878323590593825096570813461382390309437901668092327680088346780639164500933044335850620961568418869074776052502589110819856506919376131200010679557495283490563767007817967643262459339769219805834109268936350883140489361034109368966166952090912603364366194859611345541806278110570458683425074957776849921416635619121124222377514434942828226130590053660334412900477332027714806179002305617121058666018081860280764858907192528738828434159611510537848013354638449999863178599755162926222487991106681689593500461512471634621138822106931320075654848267025603346938748783442041445709520385661266113256344769861020546234844867194604112491334171493795292882659155716749984755209778991629952437016752075978115869206642757931417223958869240096210825876800469814556972014582618721874213205491666750181740952128923191482039459223666164667179122923369069126101216058789319353257590566297868435610751167214504213553018362061429289524105462019684802605198500923713494102911316860576913742366791990685527844961547854280938045709462413238577180309267591266717311094310198971341057566193225917285634247269448707887667352285549168834988093532807186859494216482665730364406570146306568687365896440419740937742062134548806393860376432263623113549250288654978562590432247935025707034212093426714363505826459794459891729148944540270276728234679099663158939536305313146710732335162786656668003367889138227750444903652371138686679779646970030524643569208915935303329080700065245547641053652736694916900168507704856635790500034271137205258290300023824335022409595083063104353202692178074697886365100346282363761010043415949022876984599572745725344502988789117009036734921587341640770848976085984778178194407755872882371443246394019171457780167273350075211707204893239670792065438951388806519695046051366758597936875411660771302520461981658223180629100367144164370738816555643047435542035912104157335486665424958022501058474969228256461600255372375763791248376940575678756070070419923951805678089046499526142361907551191414953623661195335273181871761654217023629219887767835829198268443554798109980854092233219481264652447399182091823745800049911547540144847904963114675548718608954799953447599281511873315336883242767287218829778366334852129979824468115693624860761905530268223562762036944268532462313946153843395046083013889062725429676376578455677691120309094953003009993277859025046964373089138567076093753652706759672689733752764683926860978878320641090944776000076590301673365549560983334765300422309487737329277005850006169468629602338112698071529672541031422420058953162193765687443445812379475049362389954470406268901426722000829295161289198652156728349772291930217659876698445466230064537651224480842728874444748281728949467965553188479243148257282038264531704658636567906526874980540434745917859688746953122892417512989259002725236818799818662370076685291311357335193335539797171363669711861658827814014275667897976196111405863691415834140159210803499186990444324990005994348523795237422226144487757568040768274499621202334875524780352662984130858390294470665632481251559461592835954228306758093091835877846955915130509284318534030348715099196593076185335940541294542117233991518588069809852173995881762230717193177582528653727909794508267368216293416319354554637581064078076694045887470470704100843225818740275101269845464688754806153417230379230857835489244117390042407373705618520931725631206982259790737378300007595219366645027438644659557692229552926165636604382090136932355771682139196012139132533786262863756784638538252125710402254653178527358711029254985698027244448055110458569811902708746477277578165455323454857321929477947926231516662724011229299803999056617244359717385680717931858269957520277109291592093772671595855649903821504455437694415948809056548449661303138785523158445349355074416021729190768945879408458677282950752650152528589448384745511066682235100887082954919200755268230693597787967268226152854035496871134903383155333171212900252323435598196695250246057430649192616457862791820239466171682404186922224975154568799630765330014176428385570277086845264313430133893782978512639261677775868419502239521547098253189260137239253438335232706981314582502276860561035151260242897690650420222818082543665211700645682817465994459366024519684989430959211175760837425520626727940921834017935959000509835347206878143385635360295843239134162371218358501708099764843876023710381518730441872166840773711405472591555536853791338779488580067126728768958984612018325834548016015363932796019360666864613128865656614552810193930092081128275908914641465230055199393098702807835358235898557874642139120456946644517931907400177288445398207523977159279579333954143205745401404207630461147739685580870833232079376089298308595068753594143650073811402161358484870849424308072916727151496484017365383068127420116129504790167450982887172433866216192856792789649301844187355731329182095141845519278146846549678982872236657891261831985702261343100109641918128478848297818786587526923772021098919420791705479826524615820656868647369986529224944975814066915634592402048055311788692016343000139479484948853168656315540106163881880266261370495344656790557550446040978423421832035785367797781866751457919315502163448491277408835433521280342576881773468841398314065451326836147464114782935275892027898583270524772534833512065740180080235790067426112752202611125969457263777019257797516696900954708269312459495164414442481440143864869582117093045918982148386783668309632636674753969820359214055023748131314142713217125052039467903514043505415530280882286657521481461616941329841687237556515630328939820686749480593076165061412309082400413439289280994933763094225506149206348560153457140080391761448092652869910632598014844840686714438260156482268665538074640470622872449340125352877580265497713230989776153647208021823067314255089639336181602215764704217175168372953747629214012014590531792985349772733725753695531211522116131944822877071407646920334554895918457340948243759934303430900081407753189099876129732206268282341686238623367293828126405037514905625653207051601482669149374748060691547695296347356569697058118575452398108712367923531116026833091621982995320806494050858105682584959757387978231095290507718546966134944665330712977783088402544154833879770814562464097028808427346099373022192228301536082547588011368388652342877217447006987753611296835592578072304402400419578594037318967912335511262907714994350638094932316964344140094698131882475935549274064110060430579012663056682312529797340549682300639848777097419292430857372905814695154816028228999432617366486785946438227913831922987605882092555758900581678505712103438949355445772644696740283216419594724733220072413568784908269379722692080274774911736460348699578592137610495749172810155937596865921667205607510876765204228961624846456493397862901955481772140020431748639946720084596803629259955165793815316696365864732758668579603256124648456854465202984955657174211337558060052364501939983629348352942034835307289981707914317449606383438592884391798231191460429499899077391132999660615540128835661251277525185801943930225057772750408175036189896458405868439398255804618667459554293941309286246046751072240018017797525319031336922292636321917316496832491606685506245654514401420465907784597405189404675936347300833196998131873282348014803302373493763905317537371659831470330330079076051648863902684525725996132219567993385802757086197553397193586065582481996243673858881462645694753315678892967656878317346626133709325938568931236267301917456749022898504738511952101888451616197516558734852058992118018919007103472098825081980381918418638651246874167390287381341753338943428002066475305637332507647851248124388164625658050694578699009182835939115952163545475367389430733036093185214857514193521335818763079534221629294856880605545396852304410743824901031006393611452286661594259188640696976367263922593285784565782112919460852120386671401682235645040012253844566678351050037829925389766601881796255829945505884194435717469795334414358971597450886673359813490554314479668404671272085498674368374741737068957678994589712511119116986787868329534605201001235862186890229329823667064602462652110453731611170563500241598330088365032612053105416827111049933140352902368761781532977061718351941727401696335056237915488369060835338860828531233810876541689503753661541176932322096508791065412549928671243316438660790507301950856805512064679639887631043106810160538857934491230653738926066447183975516193541116741456521385685176245876182082929995843575285639298785710779944946319067576663103119500260556432980986362513635499730201365251228990104223553337938841593130256171291936008411608881486981617926655425984979316456531254665538512324598335737282482143199999272006486662595418467415779917822462669866419933986783507749294947484617373439311089074450958148757319051565657780042513915633472372075587608305759664935910697999877770388667241011023397115874472072911435043788896378681407602899389053824614585471655648017844908996431392563795012105950108271586312676161519471585504958543802671116953885912408017938021365454410166154938471001550850743524006481146189173677869533486801184354502712406324916440129151881868918036809288913445144671088361468633431132639764128388821569129643093746772015939157637152498506738635680561595733857191765101150265616210932907233237305662922083593681111840674974090999912105639422201672171994204695661482453510573326793948967123231298385273888480705498907966109492630950716906664134393607858142096939860025821729853564773866070573254385900593209764126662454093593606743727687675595380370780292398610486303020586418237135788148051441230376167322036609743241870020827646430381228758461911193025947369911933475422338036852995754869106339114288970177595797541711049096447191250067808019232818092973667225105727760456768220029574059908604385572532737970683276333109025142909184455806291841206744482914780911800651008734185646818955700937743955110159655600226977245394417949171272549530768100136142440048970718700846691191118850293420784779127342771398045988865128815510832146606210163513908722749995118117534245690041758673034742264480501228872508547407647068482836044406834229113780495282869951306460650388350162727286239284039793371088958662627424741050435987338915474541932483608317047348984744826139721265966684788200135940648723556739609116490949799290130457192492598325548513234986707886589036103690675025728156254145922611750902764178335392847674298504418855607898773205438650835035327258444829821329463703486076307362579068453846600817702924653158004823712412484731654983590663826817138948422681381670124270355745507863076969540309727626177166995868270123704527325276832553292353752535754370991691195658350247519391354959070089573246017733597160781537128981675450624493081917319040913895659056698832383844586431010220908987318234884925964847309745243138287003098676902555532532655989961743183256270903703692963539879602362804490574526014446256455075318590231802513260639523527453476982151016194416566505336737517922649852245294479582806511809120981959053183693056598900817577752873949027916284275890857728732621286462642936359584912448443181741936781287828800139033008175565785682905487438209708018078713214924394793883970810473727613981111251723864458678665024703402295909179707299084842978701675519693676488979114345301674443274165471903252301693611045054163483256322912421578739659695356990998646757526395792231421208839047884219227563952817465367574519423207384627827033657526579727777557694710298077034083628438509601602578997006317474528564053593632700895189525224411846552910641263203340869089046889481490115865464339344242199429396759759889537518924878421238139404717958322261989512797759361705521105686864217245966462050917351186126188445893948326189950327737464458761463029812499581644826259693953860623749732492529238705733852405369141432478734037611787676114834151678095685485582089593880042620574161154572208134317133168336154438639145570658142021903605358533273780157732396772098547008893964113456650971820588357792781360488553094539578034787059454964155645846828090977925258815698404624740440998334746406378501334136420066018263041269990095854020536148010992820156708840711278448605872448255342205394056008818071430264955352144398269354102371798770513230565949652602741790542147601291676243731317759015425133593757413689258819618491138106458780792110040505103360385228555870360734195118697700645147780624487571002619341782877034928951882614965752367862062426873087701770242411082492620508286371748983275933588968514270733442185261477104499297907354796263414115867663492016685892513113117008641503103249004675700068259906361103177359279887408085260668297442909526119011904178856562901109868690061877748154459340041587110691005558991786233743515916679800199266642233148460412859334937911082157688129413729775664850603260322261133549948943607669008601607888823450204885781187989708454696835523699077477757992413185501767160823728500804799302896709698509139133666846807926142128333160506523057951446408329500226283065090044796620844773328190155888436557034585365949672696644392458367192922297682690820108812949187892880983473063689243565948205768378959978336459096744298593331204593231319112637849762632880541146099299749456368102795687199392391322561749342741508845804335223366892598534122811281217357501356951739475140828130177810690402404719963560931733783581758385196244660437270628216521077057219714603831756100032293768161665738050102223563586843321265427997798905631433541160164172635943913345144102116346089523066778298644730732432989125512982177785931131085807602697846638306377198901519877878209973782762636683512282649014993945529647797627798780104691081568145583688479627174317691108561617087820904367074072347789984073526539360943244877320144936822019884878737040040975279653697260863906520925622399166328962297098832096661766851980046582361004303717868059799485400143509226288898117620585785915949702375989778678228173877634014363080744698692467478862877534358671084310295444077321129358781295851922330046658647219810456830534864009965373412554392845488220229795305117071248019412852668579122346438733251751907593685491208386221448646023773225969063373352568569742015167214626939654389504763452064563696293987261354475350101885374970075177868627407263135617731547847747897232990153973824783395982590718322882242694575152000400308339266956842315506777943824448126627256320085340191781821783747133640552712753749725680992356745694629313517837969630560713394343574234810842347093318331727895559964701909457704453695489832450000622869753218741462250198688597510255732206197352145889666672201313488054836451697643050505680681293565393547321240814673026481311519838436696433255670868115684982137839954435607298426454629149164789477659341402609484823494703561167748255816628950981701960580792963945011884415481424439261879707648637701292173933970901108280164147469971810130818261971130972899903264140885498862079922878504461863771552562196303901366566522755586245380518640910393953985057639347809806701551591727838081336893379913512420342360227318558097389108709061424140359414894646418354704442637703189883558674516495644412990540613268198371214976972618509780489979578730781409787238553781858906924197671967066018419242191197921905506165420953867466732470924769682126855018124413662535736838159972633003642333509640728281602043046583521703515960833786414254586711735528333498296083336490928048100473741305436259331969236864319684779317543164129468806016652260662329680490551552025911253344448407515335438751460863991782950801429341464398910075206379892145908927931509257334969603110346770311892161952144108185787412291726799825546869262915287456267717433836876772570019203823068697049883473518390103282924929261810608747787066858819516317621740896639909455990413647211541066337129848708026252840561873437682781323344386674448586944678645925029438684261717213501425246021821715403444138433145639626227404041580721861249153253715244408716305823588117620981835101965546169589706085419771774487835061767816455741740307761253547174254907156088324193991247996839196726007701572710378232372211136107068986473613322003997360928698678844052195322745770596908444277522928603622125293483651747036899670503005007660967741283037703272070045731369726780083447945983847045709801423263615409533758785441038930549828221090888112580408573055475974013532386596596078751874225033027671653619086408296443216198222972897648295297844537221973922941305408042210806738198644405898468018016804694725502639709481194351411723207361481476761462432837679324395247501316045592305209120581784432194750549150685966045034248674140629747215399419505731559942462670307503230399213479143604816371171760888374535616049407237000747387870287342186426990228360269489260987371167557567505722981441466387143839711920794983625021031032208958292628152990722660913076545390487005815113752457362148809114589833991685030677257971329428915276320280603531873179901173086491451469672461796314352505591775350545660788208342532697991350672662745186135382187537836440179875458881377805300298890650440472257599846939422907516236367115299505585195559753918281685769413026590510772105797934284326943000590434406231508983699308091104209682339776959223177853496806143457956447935451385916761676589581747105416056033244721328472830893567590401186619093674991951621467022348778527973723330953462313248214060526427703086604839408107999647020353944156787814010644277797300306809257383229850693508932648517943127277428797956926462788294667583567510694527652363528768930518788816356597544599130714103344317518517790949817163996877272261274264471360001765518699909983635598795612115840029816326259317522644791494530463934499348592782188970765095993402773880440754972978359233985190371417419512038575348370732863096742612824217871207242160653919892803855484519887370660869673518040010419288162412018391475766746034733154781664265726061113526701774808066576493947819544341876299852691036182857489963399190429529824060748199824344533995374766713483526182624788648074746050532303809183868213647385562261526473341411809687473574926662225752022325858444859334707764362016538430370735338226505383412249638415186894131797351905708696555926048049253215167238403511119489291370146653183078821664177868769510785701137812245692394645180316516668056549456364045501325553537341874933426749890783107859314870350113634429940010389268378905032705520232901321837549765526317674577152707040978352154965532804943672698328111388331180515670081293812575975183872202444109375598473206041187250480197895893179147658963327062571946560502783790845959647394941621781057408213530523776524810165633546032939638782536414620119630019567066123269710831325678334600936186557913416024584051118108211607169537101042136346261176724214698116480856031856742352580273095696169993724815800556878917231384267643775340851090125649463747400456952480869932369371920903534350655481873163992455211168034439486457663761589184616196278441120576434424633654471669874116493484746512135844700033106822605755916722832458300098971319417401353931184232113345033901655850367453398194886352099764749427008709385296348566552284231443499059520163026261357598489284826029152034748927186965764610556754246301696465650345712600589662462296062005137695933109206701315942116762853327707592808924282091556175933857086825168253207761420606463180161265639752937736994093876195895751181562289374145697554189827174459980749341153116806365378231899126720429194037840946107651645534080876530789049950034435261894273651804693353954792870428475273278079180331570407361941822022534187523623642180837837974274462346029038812010576900420661657759700555989356737196534427029416471254002014103176957430024293402910932959525145086219687275060718279909889337144374536883370383899459938683308295008190044046860228274354185575734580630703159576141308217986106399451789380229719729574924742141907508975148083311371871426797478938613809807167379146900860630995283921651919045366651118967351906663116554996803400185289744930968684825154205522183225612657675857334930384262147062667577668478481518777059954378635085903544692974788806930422098853232127216084422848460032448823216611788168770095990081753959064728021668722184798002105774059458751448219978408650845449194551320686862352400355616237738483836384604792573658888008039318145351694369300507780770269747279185086336615387453559304859427659148296140284369971468140677826161908001903901363566301984608764766403619665656514762235282139745619688474548815115525395249540098173187222419041522300733539550802097562457386567096010992860036994510566750400305115683675829731383393885840893418709756537029899138394999480830735283836257409064154670090723583257061995406264504741961724539438866272629285560564419331442642324116834847997169354028545642294328517921562628525409629849825702110923556581503460179805440778606521437979429570096073807660309044576151555611220658133616630743611083604752276908463053441940695856293741603798023379572593706809266631106332259849847622022861575986879295149515138313941165954461124910665245805219925916441766486447677483154189951300568739555525926837321892822766416833927429490815975549731089701443377411990741736953487162059478838226968322189524718849242908514943790084666499181010986275872513157142343013761118170930718561596120600918123434198355915316002985696494212725783267451143847145842928193941110414639590012663565849079735400110098048490509795507776307350908008717895979219690313659609017264410874732154632467997110287925588123181343676196886985428280628179264493540646733291106868167121159216794103866589594552352474011224517037252782976572096643034700205238697621436696844909163321406981367042166068888037498962494574562950962251215999476637715010035128137435424360611495052361973283465800683379393728581503010153001631056669248990938770489670259179851338791252954996243455205879204237198060084735872685126630935606572401232591092793485441597180315821651686129928285967694488974693457158478590104666649919300816449731524204334800868135093198715261362102015991144056974581728658631998433889349062952891970416413079143128395397909750406070621963456375245205520816311278441359545498108303791375342430017590964726722936367758089255999008573786740967856664018155297078520721101338166024408054678768180841960728746103921576482468141614415251231667405446732077719218434334576685520066257641009547999802157722904807409649265363818110157638596187202439139445470788552214915081331522356730159466321131346915297621722300904087946569004496371456128176465939857964270521951618067067800789068109707202230278633399596807973604288339735424343436869912127695199595419292245830427005290822948494843734368862312484780757712262402902082981165493903143500995995207550929699094285872018934829576155996678714250876715832945906066707989926840571884354808655303264588090538712359394367491866380691136669146164724996972997151988808106606360126394105929751360582407042234761201772990724519122479529815502205863165228200786895796409923089902627219026869010457824007061823560081759510320107457703246647107568739544312258711022503710120120765782740923948657222038962427645451013273834333024872067921209313166236835234085512928421426792750642235191421193443377460697621316638867015268193771413179633762270923467132895729003961297225701722321262996741489717183306123591057904047389025134852137357076757512531832081976529308661692374884190350557492902191440006244391009832136677648622270164609133988108470793302385582306117187720005185712508395991221071773953522795172067008062456078101760499788556857894481225144726138260808109263738227093714180591719372676183306899505578226157035348015284851031791036072541865449217471019941493560111053186232281529935280572298824404456208478010334946774130425782984878478126394796076173685466645735925000841601400190019030352953234026812828214927732826107289324599122703602155180782180901784346043815172201384874529197140402105198447062441922511586728497854588385988060647568845987787953827171444911146249351283294285105973462049727723751346687520712001759525807941317869656761346125851669259741902522538603108494644486240030241851694014609700474980824234052281312922092658634303377344616928928805219275533401887675308187863168176381434006583016963320553505201743460354771250610811657057087179127485056350404641301340224965296168963470802875224203892734503707546715441263256468553491782283035514562696605766237924996126449169656451449468240564528231058708516785700206395709452257005052893983975078390311832886259331080147647618645133572138570109366231574218087472122003021254711420192529980066460969638856503790313495361583708532883649129739112548158072895201875571579316177573945015015274826439577120784941822044052004593569151540101509024852891042245097984976818462270326300406296385029903104346183711870463729563997983020290170671235160258890845692989074544021149920765811196644635688720388421219779181074309137981920143252047566565421775821193480524019094442174460579648664329224931274070652572323536270781753407360960642979421691991065522462301657771188806274975407750716737186716347956965929431271739143311544907360927556805246351547945452663367105454838540405580771458245411908633338678867203735524713508406767458224460729329652338283318475732700514089881065793242421705143468323610340356801484136910096703582944507438652246975100521364803322111937734769744095823467216667051769803335765778703536205049628477208103899766794719496289485706886281754848277427543102040228034760430738880021863989339621854055032463117427538427284845222276119991998662657896328309760621977871921807820577921720542031360843760530082250431213786607217524170272976062416600577369378513473813126115514600982833889825690738012676738944792532856787087022643502766771603081002192889872737282125823600291948024789938314836930028017975200390333478986568792574015400052977444426520784764744770895952955838472219811290597035371713575112432561582404556354667054138069588583481406107720917783288750904145063705221880641469327869623338938618015673879647412032481387075870320773143093565739004374760686731176921641084184844710680293710459685286307074372935839353097874935540601347661943108542264406844080443624297114916204471101371145758579779616289870569722265797384096155968360577898298376447665248935551060985780700562444429441293663732543293420939853656765641634083406754183501377917292060615334773449596286498844617427589112573228111825986338846542856214204885245199438238220953499703805497117586975046482768077816154986056950944380001540113851312655381093282310527819751986424579626064409616281028913114103771712471511731322351048106209369343185672287607741430711071071854211476930761480461844550116463083433470095697467354360778137255499564689406535398386053784052256576022958182948840742376553364297470776372350972415209341796306891249557163055348395741286277918401899323876522258876585254719927266656709272590057803350191468623190522040175142486654181237806654077268785029777250884028125190454898674760948368190027719124065573661821887888608235959863516179840113145449708654643333153891206992287510450418094813682816311481648366097558533310039193016304146206303123329750755644416423721591838218875273565621470857814959409712123195920177713188536892645828948938144006924119386263356067748188472777657208667622550145686647146605764768086885466336165136642506728434227766833362718277459669606898894255759299203652516367790833802060697074851375596141381253663389307596807519456876850923094191860236809762104414692428460769911834761904170814037727171250253147343134282142130348447841292798337324776997864865062589610175882916424712032830240202318145866902250220060162961312963898754705145751666655007547741711613570134352114540573369098521079211009367227901717032297342411508288560395943954097535943208355393085321056555631131315279344676852518986356087800354203790547915898997207975422342906129181100096354867565072477879957841828109124655733875643281817494429026750152526903280793953493430683996047155002616975624697589500298849506097005943177189393545783890262246078880414469190959078459060772039507413869079289901176684786684954472727322278152833330177013140841950680127993218285534286379960755054814801592087152781444627598380514394382048477092373448531883217771311073657525194821540752039349712494145159108708799612070196412437255215842970006610093596011952867713008573064923023723732122615017149589450349532380703852976660129080313475168609696150645423782143824939145525369405923938323874522773699382019500653323169147465418008615783848835434893882413824849574818012574073791848996601644567912647997704196838562352403074391677184073322949384172091966234975476884206129763648569809725980777794298206018039403804042019274224823360475076005177361540625886187015756540443592705071045830536433037070387968305746153355156526685648541806825234750504884033468755758667307157003746336801604466416437865492559397893693508634912343659895130563899795168197118777727764887970060545308181743626842474613455307567581878016769728546331672218575337371250368300158160281901510809696275435038023575073386769771773995371671736042305564110268592048551943976170011184598488163181663804372468769000394217112302029558973875724527210858998820784207184590117613938230918410228062231383410199400648282369466670366944526609401340979953124210402256335298367206134729552685051714653128372983625695620033369916771769090276797610810640519272181196406003517044417811955938413662726343745879612440378754713015203013869719300614881982302203485745589677859606430567751729344171742027154566525529888372042224601093917152845864268842500418536153690510173078621465340185174507083613871391597716825807367197112284906741110723851268964579726300858483700527116841649398918282575935547940232566756349728205525411149844156735020452281261694684387048556142901845156059584477416006362461253315844249486290753191162763190813850133131921758743595246395789229790864720014792778933284524085987208515331346857157867362223460740032349101282099127274872209400609151322949178501869848813776938119709966372044166342995539257973703731021797867939464306264940487387427397321167097727956808664439574984192296635986988750178615879869720212332694966246870172878546634585626719411153608891925248290256810943766225215957187522663253953743333782567544385495663872201311691090832797874582402228713678446801517830927588037109668217900892951807283389788112287452194424846596042413661309679699246924868249847205589949588821213251903485990842319687133524618396508702740623351406032039202588633898244902285345373744248387684056688944085730485749386035144497495244849601950188530091727950992771207518566995187787506823230261289474925723330394295304693662288760056285476365369766793020728427932918060605395265802471999211354123127014379859959088928835512811634346615472584580253801177745195649432511561240218543069666738319604085467009163275657176104329104788813258253860737255763150309341024822268250814393388478049638361801322140657001516862304483155126300907986452353123832849448094319266458317717453859188704286679826926344513313385773632343332956320233426853864521284320238202497317531551627573673349657837346218027594810712554429477404398414279370955232568911158544468300029477226277899974370885398078776451866539887354245856971479155841771782269001688125850647362176594768182272082817861427997153727531371333950121300173099033563732118445418098240737533301259389698512687785952787729934788646906869610774779919052275438845507536898562541372565227689921537805583526077467787531810137363545264817043956770399547645826591748183114201540312588705960415795585416069456048366842749493916501361960508725059889501418497224385463456482881812960012649596450151541933726968649544850332368848925744702740406455151138945569589094817557895102366586556972825055564105403711625649496629423319823145763172425341389089765012652209742782099371350298783139519782600919656676259367549515512660096435911377536153392665088278761200295973705107788623377780289131025065512568384492192004198061041030365722922506516193628153752143896091976134899031310936433403832858690254766283665659959783337965514637437301191782794429508688742873219495432999329774143982561799527061179928242772754248353996489952650678924440921639626864693804807326188380806169090034089592755307843022902945761975135990600781180123775865182100388696979239114667957854256983626905187411670917286025436885183056771773583333915749897093792038794981592580103232413267334488925620322900810116447695346585446476289910115056297191225089722490236528167601574769005724109705971226187369157370043647262414069043680425604849880458922203529410549792044363964649788197883681918087740730859258197097742480174533428306132917733249958819873381390529552859191417412384646010739877220724448071151039368052125722736213240253350466567538923145107007559844043856872004931840930594778533738513202430097643049553200474133856711559989129703513574970239544604648730649413476029684800223223419604741861832170222091433609443294278189171338004604078699773961491894403370192909778062397484467899919019898622216227076669728737523978278452599650938612434620923148541034987426492676450202956657576920729762689835991309488647559012914920808140658015236455261813142140498426309069756017437604954135638235307017372986268814959795981567284288692930649502227660951597420082312534973992502816673568501074896420073114587230145065226967404621057328422615782406438304426183763926963013635964546512617346613594840098130453765660611231565023924675439081980235185691000646741574865123677937790151031487655731033203476525468794470205781634630387985794260481845767219261586942973047614997328470989385257982045693696999130592849990905723734387281188601534999154204236613973087922395832980461461584989451024566469438501508856269313879969973712204563388320741608901948379987059026192319465687989360831159843377448689991424574857555283836694136610668593113592848086501076680140644619985054971537586512946136241157892142765053401438083789139246085551183913950166520496084579869617930718453405710062141999546605399875734081271784100636224748318817858622007232196460681381420958552272967149016816747239073926024346187741746891970823778129403229982297913060082027762045779241444489550624339690953681075035007981565314373623587676099891690945986811084414896765670104898105851672573655714662160617512257028553860878681230318017811339121743614218788443063743167840935338495930288270386198410991488800147113348832961365767966490997724792888900112899768546412062662457422271161527048819789092164559333124746905558215558404356269260435457284458969193290985089078464772341143188473524244921432199774106604470781416674555943452797581811199665221873076480894059289262582452322300065673665451167526838324425665780315175131185815953761104724317047216427604324248972376757314696362418738675745195335843128303865942613571436941263289797937722713688914527010693988273279208543543484703602210574143482378522837327544705632282528112459466509488574618244459829307362577027143651209769101737400939986964815509389414379817309598083283750502540616259351670851907802696145422774837599222936175822399974217792563161831677907738963938466176091783351620997719745394541755308563908194715822543466566560443997419870061899910437704066575648074057340776611400961644252445064476833122060267767496364792787944143463559323220550122823880773571197888407731181227728170336594186635120595276701776019061649134280582779442301001912826767996095938662076669172246195669087731578956103936652131663877018478336708159176967346563754949558627501477636870048704258444414705642466451241775733785403914113725167678810608644960546481064002072984265860573123566753042157269167812916085322414134490354794983017498750529245979431435391478657117707346079362179890911797799752512745564754246331336821008856355932594943350242240718763193234747700564298166691297228888072985720813148646181530858897625139581912924224637912126774479224867029891383058536215745840878783202900886105218165761543911227795735028442544288040534888223318730781043246126410049534188127633975563749117835471223898894905608513914609357024531807459888588220066205179273350374396060614932954351910004608085916742074813012668399753504476369811891429311951008807515633014755432748940834867256777741833436785028952745426840451218100011508216088513139823370725826468635723234533024590720262702318339629636027302530744936349865657700090180476430956622192361868843849477334093333493392448272811271369317025186777117809959063264940216952424319110362429947279936630133847813194403397240448942680075800753606871237886058871892957557574171167400740060337370311423628571647418324553177270893526829776436966517456492489720707956119191818830397675990538580036953360146603329090746742592336507813172125207125740769991454763102670849421684658454122543220638003478145457947594103659983685506003536311112820145914775985777167911925846746942356190881952764834718221631464062202288652455424689463249221445763636681173077122256473315852890507319995826428837249168406412142332032697570132844217586251400098501178349939079506567989441586734977298964653956787043303289547710329957065706263140764355357630628505949215959388388626457430686469813656435452625589789319068330248796169746785903522943155559784892543103402214548232037369520908647873182790418834872210290517461404953843125698911544718598197952885986356730134508200611328082707735572432947003608337452337579282127463983017703703612124907036806617887314413179839262557666159963718685502137187406747185944631462783976337595444560833336003001302157057375252238624212211897541656424209001678220225420024783151093235599673495214676478239649540851183125439620113814209516528358151546267815046049900349443755701041679403700289021028588440855520208233808992810277364680636180869838356979355462486654064033427862567194827258926711433487813332293312757563947424577613980329890563933402353982173495915520869418075823645977687506511661373555815335662514045386792860502218130320509215194640834857178361182201655824174972825144440698769553769391855649387587652563353895004879528085053677276506314121954926083914286389378073843840948442646252662187769499911289168870214234037514596683791941281363054806501783211901615270293140713278261628126718739641605233624693749451509796482281972355177011071037698537192872603284113191080004925322203185382063910712948369414473482200571508132843408367711186244176241339541171997258224370231725307241017200810576309005526917997169047997419690614363536229893183120334518274312843231466147189925233867884246455703870913565257409525244258208190078121088333659839851664982929294354341962952254565527518099610983781657998559152978300654087078933409833452517495055035281129211609414961814658977757870899139392701025367160615873722522063513894369714259633878506462141943435945425142137341296137168182113773935482764002619693769680203653816101824958015297539783775351904920049257601793089147054913446130614813878636726265584542698072238045670990840676903175482874365421027323731872306666841055346174827458354418348672131208756964829024626975895623647896403307744444352308994235191510315508181096353770263203950188997521677114322699597695900342162750613296198577757755241338036981707364375757876221706893985128315589671862469345428627536925583448646135599800340549344527390019155211774469462354952317095970588682149936564428049651736087477353087453912310553227349165114573595687362914368061303159611533973364957512976736322691372421717950191357741307062812245765328604387024746504063024798269319326886320900333186068724739460134110579941643724555343156095762995803376196570931526703127202670868070018462514872610978327451494395395861622146654404900058693408990356771017610328808461747365583333874262968524946523368011790517888430925436859769061373741351914837120311491233751848296937022893244704369503668615225982110694089436207725273633236032730176220474256698760203157732693511499891609847349235069292262095528156907851964471062040910334602189704618343783619554819847721165392929979699487193225374077481505571706945348833906529392345333959384971111168875954850273917640151952531226063966095356045353511853670308270096004063311844847980655010271200689443428656740103548821130910432061243508717008022251752132774246680311886284656676486262426394329781540409930332611977115888958410165702852649545840830800721746367541280893439623750783022610672883085316563215039033006316434364923668413053245756748727941931677569017241060171781777725405572253378821603840102305406500974874859190446683634298126658087761832489062719247264395261152968490017053337232163499508428294522326197545890789463518457976187975161053997432015729115525246964344422131247430243003195619518262656855626129772221975238439288345026937771346213129538443607644624915158159622571456740182476011603438694082943829415165935317502215809861672395535585368324162978717712690298421473584301545264919771335053414940548335819394151644450096067195274018852524294454841058609267380777662102089037721896555288595624709043200386068345061842439216130348812357828028021513961646209465381763501248793205303369573850386289262128302163041247294911338784567589528639300039516503245611457515960356821536033045824483378540961053405046737447916662339285651462764479594281268570594169763391213557196898146218533501103111966316046559123462947153893877632315032838247753072122899125828153179857461562817514073691347825866725705117729720872138855672366953203754219245100656691515252580376125666778913204457358905169827099890185784370969241166844313047191217470387154343112831200928937282614527799626359175336373801069083807256981830149636540835237619371600179656202133908327894467684344462584915217691955257075880009356707022187011652049272265572674527061723983514438999324233792660749093488698345446061361682501314683404544821147313811068069014268466418963611984570088289788234852690554153036524576665594324788872179914015818747645944840779378779510923267392290278302231365047084960396858476930590304980803502301630698427073416646905288647722354593401841374043212164208194380740340941440197127792541156880648226077736523644110896790568194862462143499310516541590825716052163445106636593411700957317111570411207466490312362897925863518390110422350516940273897290179836526797321351869166147713774154208510198941997907952317216586049126878274500552421894586458221742308799033208011293793873773951000127279767970781495869057907965692204270050157900201053875060193712595664250095082270720760794501363624935441791029908612360940176436721467446024753317092999009220486392160056416302908881317024788698215645857563900224047232442811181315434833174726085195172978210722502939124379701460768742212842958067205551612907848944593734194343455774462242295648525341744750831189226173800649762628195356968433572131877576299944910099950311488478211652519528396083527067736385065579616012457818233026169778382713244880788479715704636083174393572923458720456172839267564409332894312682609266004915228644461554199843660912817030003363123784082797263071911552478621693782872229514518856636130375939511476718618219231457777232025290924243714324919207530771606912719362806460701269754569786150106543103697795853375794926796668711008937841994617164731495487800102325395366986890001851687440058975620809706519466049171432994294827372450550761080106417441085842830422605042440462018106235725496747383805862936898935444699867400285583419068337609222952965696028500380899653892172584581539922403735431650838982190201332629274538616524202699442134945419863395960826905003422636310571452155792752064056886474003402638603421563195001285383484303711897608212007358125791374181226058071878826229199089030915718223793898656705439462658510175017563501471269851777336003112412005861580429634490038842861020083117690096651317559062653334035558270964617630101344749269020591774061613054993829385660028123942114363359463522275327652883058927263008874430112043892110227611666508594830365103758518020945538254499125097464395251083746674383753322488225351141732314729802570776015581882425947018749546806165129061604232461755423066037487182933722096349304238584718058582423745014924100916786745211229567818769276520198706578347387848282720391239290091273334602712969946302159713897404832260894052210360949544660961804323582999689829383599341755263859991975087684128712647010619117523482745388349449842126373753815829456933728346038973843274754540883190552116828984626991294400070815105871658546979093747504757202605581021866717310801805050554908746430122696708637575462790203413350261647825292968336479767066104718411067768487889137867064571886190599202991401123445250112136725337298377957165531568974977482165773216590543572413455881035838315621348714425615783513021313340077684929558310847616258279387836913797870735008327232834457871635348402803256489154884298835415487068766656909939719008901748232355395532033802841830719951981856390583866013866447706269331536998933358400062440565316927492116261354626134501000052026338461282721026374459739576982488066374422292714991486074809991330285508286656039352554281538762015611507588568637684529313867929971175204419141732268253152794234234770366246936634439561994150308305643401588178323499640668320847830326925919336850548290219972949665759714634640514100045464209267630616925702872417594071406868147362278970733568562109540557636864194011451343882220968824656698768177805429116702310774925972803240497836263353089927761544320934359938113779897509956082806065855225886585662169514458870077992603416891563928832363484994200244386991531009831362573761098756210403111998971836877090768371497710924662208153078692015704896853428149317415440993392601471743704280547129204869267963944089254768288598856565578521298643803161740878608408979748002270651994339330819450710248625969431596039022315682948303291459106021706515385566705143830237906507311344135429981394946533847063327158741615240014599101993464618554546686573572833319686628478465612625341614251967799148922599487804770006902377191407108703809507864680607106351515757198092317765853619096548627712935463604572897355291546383476305280355640154321227334495843931550377310511939697863602044446694681569612620453623510382350846616708398567461490864440795313605959241233418222033463957069634447148130672169597652904911869017192456094483106931280220196436666684917451376480625038735314004798534553186161534411260449273234339862325749821213513071614804731755877228983298407224088848107817009661943950027687839934000997166378014083247232907719332428693125862866430842846337547741163138258505205824196891757309479393941510759499554839488780631764631381228512646726766238340959090705854243258476765305219106354247959275734668628414306063221457486262443325987680824183073622806511027322618054881300086682991842221118038816814744015021030309793491076971016443399630742778485752884924698895833327851513159214600246989604442954073810070034174077525190393340868674389813394702326992554402522269926968072855253938655146988304581941170756191260944727544545245456892122794644738097964817986778542274293601904161613671149218392000081427410200675337740558057444463842443005661070757769913751310545523925147974699498958525133599768276522899882314788077166259940532176148314497966371043947881193203017534726632193744564943171399954986679288417893206501738519612905420495327911326794114309316183817865421995000485483223530939162652103866866442185841316007923527321577005441999661361619173597197629886744389990723893966626484383452708157526080760819722970787199075647645819375759841309462894146583402687879672473425636785590337758208488134765787857576415975702525819989538987330926094105797592114812631801144094003806748267719835583412379564453961632311390976438509115248173244946806351722896418681588941574896569110579595130426537181443707483122187923285330885249442043167464860180034634007968887616475251967615103501385245728635995759918563508888371976665283176771257871499180541636323436041961392892453226180952579760918057686693910571475270957509519719881522595619064627969447388789696889720374290544842055914511889905043059989848176725469409685448060914808706120310667821166563902760659765385929929490990555428621684463408843471201744646173282797432984931402821364374975970774743453639086147161132178929974259370115441481893226853964856785148849511871041242292413486706246853705337204213574734002281476950321015687017274738164383079071548605452472502393294789246902340106654343349640271045954679474862466845028828193120581877771891793079299175757819320538681430114754361294277593363095074908570405047249735370867915366135794056010689547923814291714357048948196034039705919057078619601958738613431055082631046807213181053212441378093609387764564544322643987312184602244266114384701361416203105897554700732817873642173041370540799899734044672729075632869058018525606783850500466082878460806850376277247621987866707450993645434096750576351778821801058881454331703080470097402625880830187886230864691462847480423340335548988389832195001204359859867233652779913095268126172036126977009776906342296912806623307312727881504900522609534968366772885564277551644042295381660271459272095223247456781398524797945224451731561714544229949136755705667716760271638555058847064027304354180563895192483910070775411331931703073874417013963457996393410071136779609959845445075324303426665684885927772998636246551322452295037616006224135726594322696530962676028948036633734468963297672397852763286586379038800541303495894042665686191174685303285691778459349542000882389335186812916343674499018301663836046465133147696514613409202104834479133111589718728218177746801850702200160004579850908868168454419122409477065055142005232903448625474728045808115886320095429550608228401988749768395369988404018988900857552227851289497535544863979544074137380617706808754168307865192543312390717708471492835998170549064755378086553198673288152384514025603056230677633994378260041724501262378880742577639976404134075435627974594921575837628230783788582972493718795885969534087515349706203282417089150644893421317408719575134043414548307112646546446471205953933986023364838802903499536646859668335425569561091563220189456743754218649332943684823025283422786672144024932950916616357862358988333634518892869101195244839301795016419478195333523901637971470626300943548524049400451941486842799204487095021111437856058719803871995922145002433678635985922450831686491065689133949600314187970061307142645201421672139788279025430943312908808405584993746220710970992048728734342901164373663170217521778732389174512839752957098631109327104529578485828294545309795549975962926179193038060359401285791533415266683423976557777728640267091655872642398820817534217531587575600678812316722091251297790657051422731641747662055032888794129120414447089269149139860009370610881571123642749179973530945428871395662400418900315264408964175446330287641719613412675458721135154193534669275332449726429131043239916135456221470366433738515298842452303863051235529303102775195225771727297464508831218345678061743532831043800003414011579434778968297911631151783414191032530944899662666427828240972765797553496379513813424020847537469520952830103506044022643508708046115990260557722988927704374989054252892829474273950945911017501074485107920623412408980778954744308968320609606248531304454270096275146631015010126815884441518320938149081852620249201321721136025327785826291689914389315025156873894685275687391025680939869136125700029531171534372092881856479629022087317610880714183972691615305479043832226873687083478998986847566046870047789907496289961086028017894028159708244669793630610576569965859983118784793070981091496594970784784334315843645318254295083152651877134025594456766754573341363640089533370894367076611116814356614116720512741764817945130450750453362135821294633171939240926777518844785484622817808267680973167343459096690855338033325040140376599255255554367834462126459602920936302013173351211414288928829811357907712768276357546959944106694425697696232448342378971933130781311037123995635193772506622538236998519963286083656782703665128763809713087256082849367326396401786606089351341866892911593029815436367950247906157102836293059055199959596347112686722096788075446032452671997727970303427614017857761828678777732907478509884125421747157111074040099557260845218463805275000355290453049824972499496949893199254580655004698586080098112951541102655999923507891990739328389205141117459911423219721593992120892611027088344018820583224580325514321743392295601671925692408545776499799632114060316788268680856935177949878990919302287892110820887908268073001539286318398512539639865674918318949559850148422205021694826669310714117973908853747417574077415447595298717804382913831205075134002227276390110052582956281953733005072171261324866333454321950736802585460881522435856299943579934986832818641456599728111473754149313787297724200935563128778234737566686341291744264847588400892026563365467873068753982882259937355915723831364799153414198837789290260064154298645248471843900889087937583193787236921476539103411829712395607045449588750916540561522134055724959431281719761067675554005467878125711933830659757240885580394515601588000148860725441668494448722449916881877691354072397220670692723583405168084555229951270579915300923382930740156379811771213312036771521677450015410605654893980523621857686685581480898431142793628959865171437190572751191844165801100359248245540159558181955300803881944857862954576780337967085361551925832817137479610234861952105914712358348035381908068805896490009518177488288070213228313785911560457405443429194237609476035660386660430218774229038223135328470799140469543891295338042042178200409436586486381629341403953092710619611711209627609865175467809330632065272435020493708028530001857965718289720514705136732869419448214062227656491813183356542849269067525332385932837259014003724923495858992346254469401263055216026168552092321122032131248739781585402264570613563798457699530033101184282249120733543198222608403079891472164122427494679720927292124244446619123844636764705110155766908549791380357358467507158922577333292308983948126229369106715203333570516467620432528123524378853322749575990268540172157212488041348998449412398577020428406535850298415826636423757266523203330265281003743924842649681897570615586211117789882651791776199915792253874630873439371281161447580276744637889398187669715385022290407731056556645616671076393554873340230916249684185619002424599667030084032943011082505211196214631304121221161446717103660574577809129865046060829039159952519274423005457599538399281424747973055450677713711262966997082414306839473172084523091667020339322581346845838016437096583649169402723657803158635308488078139715522325817722456151544246791366226665852226604861566290167047332099998934705897170012411896658251765847133724403804493415010941389263889941976910476764726557586562893688504915604676983879497932765003990143019278547085336685092262337416737907361882197591878583097051257469514808538659511491687826443780677646535546034440026669128687906799892685046574006567932927770093423136741054591216627253904244124999626070499344097785592674305258989598247810489701407838995723821876323796817810027311725055618292194316815734727368514522556914179306761259095360205977434837339178471961621313977894609777685175160365685336928279007491630976190381022992702175317790399972593161548305146400734673174544788593388921456256591008549509921879794184459349487854707869140991173618100833528059191071466451443956060322502220873797315401288994389056444621287405916908868168651306507620898083593225182720402161945926917768837475819387393151734958364640014397947717021534090851501021414562486405389462835026194222969300055649064064474215924529262608117599562177731530988806135500622643088815453409697084496698658760924839007888607345820522077697517849431720134815205328823984474993128938438944995857586950507075387640846258795324106932481050996714680243534384652071003746772059888684448463372946965395052234809456125861277287837454271079325266791039006153405084143184593173050739481048408308788866075543046911218852607089068972216487924652443405601392991117181934972698423533309147002238918146901212948629006778940824031060973890025759149378765294987046921119618698168455225113681467973969505218932569440865399106991811241267619536832636325648102061797098129259883268518097857414987550934506438187799741638495516412615781636761481225617816865106672552772656686694456777890717077815775275044794547767970545239221259446316798978962025806894919119261104955218233820798558150381046392275723620444517763177745443439471031598743023134649360653513023692128502369337835010108498280248906200570697091894403535894386674898933646890191413147609222113540174635079932608393194347417139570275977775942808898566410570125323498024650571733386478512788089622019908335655435368929959408438907490765329200289199484100431319814839928242996510545880448407298010064686208545346921968051276543715917127021590716485031549171146964065326728592518994089495016256504349056132102588358551393286471023467317535578725646132523924600697329820664032583577220658059930530396026691027568190818230835468013317510137931860801651938917503735527655436970938511784194436344500899962026472934264686538024219239990306337158890491860061760708081916153031707644513283315145402542399267617320822249509068898953383938233276954342231791643366367634503352145582606599213075019973719894130734125767578672420605317960749712484830311094823633814661585535821119370962506884765687807108650631903391828858175126109231023217994343291793803645869818574632461026538730833007926433437030681914743806187150881988122117494442925648124056941703525171703627193221733100126053975517740058303735038596748475690166783799108751645613338668740924235305453416710066663797179585819848912047766412242169776838177231686812658464439395965299843375261150593417826986835065867592235839983260364771101701403593915805175219570863730483600730274590994438268646847022212855725645896638078554898173835809506643900277010747665169188391787442652960466831376214135168503890554120436058906316656821025024196209561994415892705402630504367853367202791595981348895985440880864379867105434594997754928351572208792206431604380291570527233877945268358606928757117120947156450266056732966934529179738296969605152094020498047995254300146786245249499909716073451250361359960631015604120272842832660556353743153205738888269013509520839849828465450844164588434306481458542433222719002168344917964663822099531494389853123570255699950231139205000602895973537839456239653184397340517891436137913140093804390152254816481090236670138171420417314090083104485104684732233125681715776351691662356341583995692743514794911892268243789527643170881399665499706076265488475076163081403721253425825809796133654474956915853831945087786125320297325547443258935179429020285524168567639815983121956191107556025434338434962889027809516382224148348817862059536511422564502259977176187868197684828656542095363444676175758805992118553674628537416794536881547252054350078195807237981855951646178640099625689543130907208195542980060091483494198845224017090733896395711973149836017457413672243306816222485709109233011834535868619400030038529751562879488049378362484550663614978120827765483778442358454695549953530199697410160207092628854679148436975904820095134456039904256946823366703705760919309971326003685903448168746067599259318582962996819146895066934508995058121275367639482884008406386635541662590053157678557749336048961658581116630439964775424789842677154268877971816101045126855215060950352161952827664472839902364867201473617304157667192416586125099872592805014515448611577933430497826529790784691079886701830547622326604155819211610432079085226524202596433975265166644378524955331783104975231876159468354771958919217929787187627499389007523766129051545848919679802806889031413135977060843850473438409854935469296330757606881290988418581925242661822671107099318847437723960446029695427193271809116156204642866033564750243335503205645267898878895902173710205306332851061001034485706417600229433797530716086381400771708315614601758281185225248364364556324562717622354627516304830290672567608013217918122375997701348108449293687474761311010826066995034528290838035343377948491242649785059469472915876466740038967855198056880072203714982290708153172827894724120456445125590151810728741335810652718471033641729082381377533478967306561661773901954478247700529650644810638122540105574344653639961679339628930623907630013547702927638538064384234508579247270442279241676307135495481489063670854210458666178103582417347068443809529586170956259959892156331679700520655468621933816221123528898612118695660597103896394962515711956372792102936808000045661661698417030540016811793111305721578237637108503989394892611697228728937666990746313712716452173136295676138393394374916615797168744772241361282446323720344329174781562561990737809669218653876185751849985524170728659583620060245746132436249935088007461188746924974314523418937833136720170519559515676115838642890125724100224830212944263502120786281138100798221324624011680119161926727084077841321389288392763397534429828828329143803884333919127390080778812855787126800699763216675694798973338642534129951654186438051388053239204295364737020862152968617742245127276883524969769868861331172526837669551371001723464923360829136979584095695252004677628652786298402798637632544921114301728303350827244833556632118272851972141936515448809438200942607274981007655200736294608310733482313814507655901894806736965144215927286733974708653270071594183901487542449771453059165659762769147376463423319397083787153017596281112210079471856490380500073505994163609637373967776844891074446723736715989695572907018910128052976667580458146095193497461511496584727967111963395907106249780332009375332255984811775224702840730881803532344158282126077503864868616359020947617445884955086783341477941929858656837969193919768511273443956390759395583232232351093958876299802588754960216594103974658753489783422596877203073348062480015010249320097049799842962826376397837079889198669907818030561934102552111890310161642136039059675438499546863555270635400964342689002322269488699191453268987731129270253958341453211942700362947871069630623288694976973334413717395012328061839332424212302988699682143205330947976824765039503981002996735260754511825991310802131786487241169740017522921046049365304358070333158400281349420653973619506471776410829155832721846887820957870480649462550229502863227452567608223539773734224471705152621204875771702643606638495146593368942878026927251514141075329094578158920535452044445960379032870575317437837010313756947818663501503261492596778726130908775495099246142381319005840292937932760208707222593524293415515697698412925156655590037113200678240289590429370629580813381145672918848628439877597531792397202117947375191197041212181577259983165928998299230058540901231264073989725731485439791304566877756095666577994380937356985945877915913231607337753017786783169386378894854773675615775760453087535157156654990251342542244961753613341205337247142579819506051642877834044283643746214926330004274318743554658521512285900589496975466913309592055347201677242192025455991117727790567452136056014890524488315114685761166740332084842860051887626364363750134512536308911377458209143699919576697941055754550600985425409346588255426591251937736403331359521814870979544582189060131320376578025909003748159346015593951153005240180605104702435024445979453767700522622863538521774975130544406164671080237324084566452952990006905075710450957273875028719694740880780411714332820027416699318208062550295499085600454100771915116593139411226252693394404649457391198322711137060642663712403490154829645422387410719140628505049827648509867245600916566615932194961043313183964426910344635746580280122222076770735057565465637631021728498679572756166916736629559811271155406261273624848210332287746634014480988699866048898275422405307796899340059256372710850165498656326045755615331591126204647673853963894741874832683106064866593133131565810576750766398354603871817084950124639597614784525147809009180922856522039061963155917894646499604985149471010725877374516616101634183768948891781157828597330792364895536405160269819474334497137653101123219278026237992355437412507456686153671628972256350580241266626240062901594760910442736671464821624555331305819076939157373057768484843154349925239079031408163139728441456260228822494477414195472003170007986076232647298087503134765498464631705584632554756418653849960728575556666854925217188571625497047759838307548311088842764836100461887966619703348272603415619535327859195248568019610370164279809886658956460736421034428028111843812543696265463845809215072404425992774888317564339924077215769937078804536368251927519936256584855900431291052393884855709993089116714199095241834904381306849346806899781339736391289251215948482583237650245661842029097115315877984199042738038333339663212099619198146295658832573719539663938510578674026299181479006937686102916071892534230802286799350635754965928300440093815458017904032821291174228142612527663300055412027668380888917122020115404603798857988254174880083737155886110180148844542714342112472986625823132538177168533144202848175537988083330061157555228832518257018519712870829337042342033560032424077373891348000085311885393830697406315677907485798766343226880859903361665231038723646000776514300946424657639642898306553388812255219317634804808528740945036861475715631891606670990257438515167053170665487637499464368869317575075717672672278114666096853637707534554267133677099322626449094979583176254008505195439066849955915360545770063314989221669872203899184676379526952934444463503040202372954954239237028973334407242221213573867398857810629491616923237609889163226882482767176763929752812519613536184109839509144843103568477457840155700162511369632041995720359474721597527057101673201851178628532183125018406447828285055906511474901641622622962182178910755430754505391674062152716763693089588445902957073180308657851403180843319629425737752376073543000195934356443554065153156098473049837922401147066591601598208009816419373029026691320402320353031055085044820872760935797918425147699578183549596806088630628371532334626618678343577765387784837558456372312785921096293043466250397953327248332726817580257668897047595413299127850188521713687345356800388333699706599425396504761371677474182222369887480101281247402628110494782885955851969376645934524423050626141011348189753398591816924186984909643042160349899457689697514409661497858440656848947567708173347094580049945144203959924975743198370890389697862547709795308942544078425262636223451935953691901214065738195693832037664095179320202372552173818391786934618899656653543570013522444509525397540497831530528439049694788738980319723129655620372806000219910622571036619075874266862839900677908654275623660628278792320211064088894004332541286173884945695960349438061714628016952180976855431109446800575282553876749233533739894482858819879148581928353945500782612173017565658014104277513869897522694377500180748354798983253587072148091993057680569611162254409447359599181614105135486127931226103645688945186682666890921999513330372460499864854619893805491429154034917236591550113841180973876936373317695061441921301930728490646811785536567668608561027033908139808286824071974984258112060235000091065995175257886619474318379991824576839379601913437327102215444131380790892492888474856035120898923392977505260870771123042484248458434303574772524859416732977716562925026836392352810851262939619523128203790604679013467337714924905523909070435555890650698117811093350069257301511677478981043197246459979237344313320865247897699677731140424030760651702532165853366482077904004475528493885305668031069639057709926858963505613195929571173954505144110655493541730736660925178215266587051331870642436478316178345393125119735235973075978701714822129168967428507706268916560890694324292077485126445217445366237420983683938704280096272537950787849632972212813730570024636410450869387026424854100940400648640252366239252022646350041286209606814828285240812570755557558507949373372169501179776021159734561242920064042355240173611454705652066544534329518141142730726589532101544802695966551444459055417616166734389062682712708401632405368319771046802543469937366234972757410721935450624091875859814998748483289213169126643187004229514054527881380687063292383699680157299832738549957085960151565016734077527977324418336640445751741529118728696583041270595077012374003039134274872100730469896076079827678619010184216575917741617500518551471578152275630875156566553810051982903739784360000157265950888238203808874501235899638469519807660301865316014546687590829010109078784054504596022904880776544626738372821344415836595643150085929959981333849364475021975991193450537252610400461788044000226128727647497554756715441151297231089087542852176232485258879872254568411105560839767295460443215431561464495748515288975613898753957001221289745335887597697649895389210329682317516017037869582505545900157380578970993444578952536423066124659236287772208874804252552601611665771369542230323724243862451387819474619375724163913378439133775341055593789497317419589283194679016780131967017752458872593168674380228379931351484544050022770813717026702688677448654348046271694780270211169338938429849469358805010014851858961162586226561930204156077691846487888307435203664733384685401344020789714618263941130621390072140050345863977842497896463539094904167615810621048061372158635499479002232281124395540070193585049038100602354984808517343589105314242385479677668744557210078929014697166516756310148786610884835404398655169865189820064872308198302254817099639947825347258056178373541118922951754275107742801045189129231868328637801944122470754129204147885401334247532206225248889319989240720578108685119017322715260998196978563494266542668669623284321351138526968001807705934684551063052125612411488385044746076830412483242619466043040370339016623453263770385932506791001914976071955016686582440447788517687464962164092673827481189340594444640366129977782156447336023158418909337565911566343173563177910726484805703291540299030482421483515521841720199535460995458940336530109118589801714552929413999674512146569122916006804644399704884427864537533383920103283656468736078456764102457415989390717115497301016567182570803251109028414405059338825132340428968411844049090699523182107700602904536773412667003823330889977315203383378070041087462800574440705570816363849595862274720716924353698839266414358622232091701921286076374615480458274045633320305105503278197587486128167842072177302696728360087714472516405925606631870613471273826339482044982882961131030522986138289695541779922146030117922865880718059381059884605788431259669085694740824336166193776759380050867238779521210306937425120468546039504758347755757984320469533961255174179940212709879522161526827892149292123754067930272596906553280155245654686817149438446602680998480005841497937950746362041320508725733472474566386217137765685952628890943212905517437601017910950411179776085056373011843262374438937874320552630253011044990005107883211983500319466818434068360371100074652608960188192749351892280248499503459100740432985116583962221779020093955104881820554571937073891351131624979526583315320970198520734931950762958168834681776265518288242795667820171488592862599083663185872013856776334286476216615200570606132037715265313032839524139127447845583705528805588775884527153929883097675766181291887045645972725118981069679652624606731448065954395567778841988446977772996413300041428765879821667773596281767983708398275770280314077059912565387603111092787259416267566277798217292946472450449197480906232340157455785497235099223021514420001698370837817526942119612780185178276318765723593109583716390482636353822369963161203567190905378905654249543365577265114611217400766273721620208803446208244471954416003630980277718036436720575948085209152935086221606925360246165335398852966767382346307792824307834089452712518878838283780509286836086969367776354620920924642997321788557254891344406829427648588653476912637349479690412021170502547066942342023303216931018507432891264989389887107482387186682323734071809715644581013802072591298254789982362416355628866388006179963309167688691504644088674086756464631601280711547081909128972018100260983211109056121769251121370360624269430198189043161562294839303940281632143211159859562488906726085761018798689505722536618237541618305949777355945822779221934551900056288966102152715140342686214081240246235553769840631118374911717177003057159090697677416688990709567682626892336188064605774144188363851113750363508727320422576638749084553441168821130607795209431517686662296784718384181953955414661457491016166185268604161669815544733636215569331005779628839575798676376245347312777304220797535760805802579034094514586089121572729168606676346565270953834637072564824404175542504300799093250009195090316647776633505109794059310874584641604358459229646884436999632504645823081496726932144625210211166476914483478441031309486767578818323318954685695786151467672605157575697555640203876370095145162447055483703892734642933367443026860841728017521749414609349264606425222202708558746106350352955120615238762537294839111553810381969524606790030792235998168416873683740305781795739562656037823379046101319135941638497535251343690513109806184713588597790772800779302774942382535744375214036541062610866369815997039193987607819325931753820001254256923953891960932278276793585583574555812090086728160328510580346524309921662221768609314467330117382277933954990417546435418546863288656080221325979022887978802872424639582498824512222719274010364925254558755648261933297170790343135309050103671359801053741766533655828938417909825733391315865212824861168946031483211939296496740135616265987966077421476014609492686540904324272111367256506909500224841260878475841745119320418501431339969767620984034321454962181917815323628091934273162334175135070696552264594829830651394905864551254204270757429458152280455636599947872969357529850202298882419212060250688212606248434398009429725452300049746149043219127956687393996933606403884176680911105623887569812310082064853432399806343724818039297314026514942786684721075571007292002126919937525853741461156906563218816921723716468742726323801926696148057482069316515217103824944156126319438719527837956361177306143585237395464896534357924480927941341973538993590229519479654997379027634386548417524028187366773861583679376359209437131471109191443314337749521942689135884060118051082986811849983979523451752852410403175347184629374867808703995889115777425748587683416274344979173969687708614383094865135251361795875560722420993971592352324554813152490623240356803485648514151694900982367869038030175474383327182680411030892317677572182944815490439157670859551733479921260839921981555899855801692215827182309484534767116294684588084563288434438684578462393821468310560276875535400535937011311600843004695583639134986201149620613457440494854674983717921379574242600383090755177455392592537505201429089511827476916476130025056339482850751037845834608487555752067128684684048967119609432203707327988579934311195758167889174161764973708121549018327637195125300292605169591039283989599889124421137590418093289179267424869157959436529301662484127424338180513348361838408576317734737598470417609800337585168197717810714734018594378308713874961984213303414927321865306741010319565354963742551109448970525201466471296408326999294900566102843484673131298838891567827190767714508194981143256823592297423704753676773127541794330781936240846602106606122266461809608880203066758169684731686834080026966196607811775451729542594135360834478817048470672452792602812306164454980968733087719578118149801395109493499277247464943836733232899195453936993885940108815661198841974540058619115446812786216927883629481243810858814592371807718418158595113591291863596899241836341614576911240346129373966718075185894360923214130561017207136423172282766915249407971761470961202245276555106491030239365366961094699170694889827499634124868567844876840121205490171311786210952618946437146829164195828640905248249291927202218770562420586659425541874384357661151890924207595578484669379878053494929265606780060189929328344591072858006100301388079758242652048232113747082180428084815500984816029660164918600780411745426139926399988783569908093098252321382438443436758352469483371283900265401394052055263706054301964258553355549967916504490880933043531714922197861002128210578640948545376992212396570972019694258920369173455535239633325839847696273753685091023931270213058456654383913600522208607293875398843612064254220080936717387712990274344216797695375878431425011781232501816082108631363841651652370254148514933617995358297607524265417559406572993570434355005063547265753439307646635790636526905347262158238999996481959469397665244742948323075235574931486683567256572601732253396326561624567188269325856253553157244277899577606739634852350174896380321990996812633892832447085792245358227390223405575547795484017164248028633095153070103604346883978996669231027237592170339007306278771159185033267195409695556743304891302520366636462795424322997262441245353676756862722294287593625458910749649672850041182751630150604585171354863840627352160866479780195879497124329048794519620665494218444497170798383096461795776504891872672560186280475858609002452283364572598471327970598121852656372823630992096010227583407110022650384962994201954286925176784599735187661923629901588296988541578131728333018716039644460686790990968888241707777779967509202724134506991754575539888437902736200592003275474137667500745093369810767518594713299813602284599682161032848285419231738346016264110565713199232778696467676294686653954690526519645068889853546277616356676918223500558660674948809764577122814743008529325232734007585556582238595111843989783502881511167369242145032878882099411363226890773134147081507689674751912944037425399156611726658393920838972807681634576641193129663593603186522928346588782202280221747684503737398875420941828511265356547442288329262864287770538462682553782565151757632503614981766469001512012231496159014389809973330936056591200339893382023424244801131012650083062304234192364037003554667598981728533099151679975586618387921109768114058393773340702390403186843553917321217974610880751455309402201346595814507367152147020383186009485180097986891353067091536311411251038878113028045589245447835254744201138108630000128888835022437062818323198590877034082291365884968391179869399082070696154800536906011974396701491124760744160971166901840856711952632753229209702693474718631714056360201787437743971224666282997275623313388143921388213152651624963553525210490885034197866436598888621746245629663621860504307501296214745958199340442696176064553911151306059560546659357106479366698629643404397805526190160281221280841390416352096820490571638913636368009064946716043478555920656826124835160781096270993534516489541255748669082879733342956201916986157722390013283362401143447437075758128814674838555135750246730462931690709731420774004002715402142513263359315209006326089541872740670081455129791104118024175347988756560710312308261117167911364984476842801713682328522685474333895969590796703142859818421526520077670251345459248547648365197494564742049837321847841286549028294252333464154080441192814647702413984997970057022536410926568060448482549212334995920884084691351234686861384809479800850771759988932804859528339671777809453927939052235942434721514814773167796884008240476999900473265416156267128065755928968209329214934694193598943227319190872927838719632273880766340231593099250219653839389643203885353227928858706958882413919660681721168569092983131022302078733775165857403418609107446225762897375884539512130161984754897897298383164816122286283318630013687716142685870535832625081603167056768798664304288856238354715191254855616558515034769444647938508912023089933622608066341952152962837427064421646535320572351873188132797009775344086758096128113091082040256211226870010125798438082239160860526341728995692624824947007949599027958413357058023015710075479718521622415781564633922335020237931128412222288797444910547815468696601599646533313326533227526996768929298369513903448751698656215979488916345848711824095305248221998298323913523127888364441414854759182033288185493411260145888648454869896526099711910053112396863879249642557541144739076625124809607469542741241378210506640208635786665190394460268299286187049793928636005776077040948106801802844283891235283258275980357186365742258135409767621732224695379769677464993504928011363047478763229900936322280425661548482298061534975567291068947906048935887998176338154882340392080791166005704175093528053916837863702358979399635867181877452669568283230806918160794850065361031339592513448897177782042978582813751692282324365675829200236817710192957754449240764007641304332425189896443337237860845534088505566709735022233854686958480990520069648386720339247574935539981875972003788094844745525483424182830316603697247444069457464991222265324519995055841931399780992933550327117473297013097910746779980111858924699344055100119545904411966406501760216511296269650951191833407177783104964496149728217258664453874627388325717690719539719410760525199531245633210861695348185393420636193782620438822951382046151434279051006395551637488657432209452992124367765512625345555115591207872887191502807016352708941298914707761103191055769106680528626011050280897561295186599037323505465121608286421295661064871984518661121416837869277821015179272651103232883120829890231609353666132844180539379365432307925969494765784077823705606642688483667394514294032256211450715423835970361783409186020648347720028067734802160477107995934263974199168988350077641348588464792002117012176525882125917530439824041304215557412949165815404548851074789614348222190891742467107609433834483989558537207242031702031103301759362634060276968011908363859482343025555525994741377080919074797361294944644588915479982496825998582675131670613094692763896233255695832481076309747247763163386450726261552867979559956901476674877818972343143485546875161220137307995136650237139179875198450371376839619294601497460386220638136183116274426145502354765801523321241038877035629648695567895384598477164977771446164674641384954705907550256104836203006561350968729857698921368177900218961170550598472905481555399820879650351519422169672784393848998536811275322331922738356772914142427379710115889934738692021567132287186910335499516432334950439842501284792385758777437245322314363180336786638652326806855545036094770152271688495936229594727200031805671070913919999033840547735911330919005078628870936626463600226476995487762397333231834889443464571578022366959631762975958838922460380529005623952755559446681980256775166308807266876290096233783282576654992854382085966532015938046951065578201384983005190354805191788723067023277601467072045000113501701546999265690441441246049185474503181208287053813359538002406616410575751722028088274769171166757485715673112796151389774951572605269673296929013586390215963079157125816784329425982729737960767420524446450719833778632787797172033681546365138039129115340727743325693574828250053599873249628400582168088594311407851117000195970114478395200180358783933199911190425171399524400722517474624656665237225024701425232670102091414713002872235330184117817657171694321240340580904801806056712981013811969464932075583982012453704953987145415848354249418037469440154712021500288776788783914634830258604928033639663867330664327340435745456801024060204049718432762608925152936868301888941405005873131060553291958826831746077330947835398308582090623689952145315481159175850591672225758132189865037187295593036701737869767530958576489640490639138193265159706861662058027904987584466156452353841064358584818242194618438852515239970646413929822595811583632205771348962209651460120139835105067111194086304050515379085409210963842477724369344097554417532955760179469047731299960616696111789125001417538155880533256885379923689872319353687299104431362139776752931427451223989199465417873033458689106173301832456394561943201737462630436516755168872026022995446088766234646931178992763160075993007537145694844117546310640568180715039848806196973912962718806157988678763981048511958071638131925593984514366768199755112718000356650739611159414638225531751690431973213221289154981980926194674961623990863911494619633384819885255976606859599675371909543130056638389008203285594700397172652296677263380234867965261024034248562381803029447930444324707212219136347416088451084783539416077338278093244411638298127710944306022264542187595681147452089400654754370714557819297503928149894340390418934751209837061596225273310405851805048330281425912303499767858667255634119100441820099511785220243576621433976297734296681453554031370821202479629324722694272631788846881226903295178930392322425831818318034900761393264666785554218624944767683337089111036838258952756951029968200433460401387834855419448915358764510747845967649884207351943447847089814253312763866695147191456468115928270571539456626563845716989354954989198003886781543669417833578878451668081648686452298125221470080380616192852502942984677265301189588185876163482134772091131845276150343170785685719333471766407808514283718278264783301810648032540564856701979199913217129776761879645550098247685079876322578927033263786016673233128839355677138668889199129837627652081178120202275723575665283468070727527909841265160633129517095063328310544017227731494232272187121045446881271758842489641190327329110030625812011667960778443518432531108303322466876655357382487517161144363764321742029034904635562568884458759619378788123420055528280738479809669953784912439442272670987216954235713938904741713882831307025349225407662844978791985726187230335842938305773293123129220969558142883393414257690810320440000318494697165437636109127723981219424769439377232818416998778087169015004709682555106637420981174226155236481063164590876721182353965115807857699168205299306570034767887317078785596441480082646376757658178370137466593867222032525342996853634445833642795683680786222429766490209316726702030874555924708299777790305912472593406608857041574776877087640564967475237463840918924706410852327782421685829812715565790040237863984521897295093926757584259882609136198377940788498633113149964441266082094181618263405626499619346962089550561268740936648975249893078832421247738373103421010293318149526570883433024940403581348002430015749304113793469523104974258521733517350579309155982515930096238092799130142338135952021898751776851897614980960566960536903998752510158233448828244327731209369693615170121606827526431595826270459711602269004147944829588146590905908199373133834660197962746379509142022377860647096351646354881701240806361667341803819897224532693288307208870000608655397043495927885550914898033228947741517626057634384876964801039925330014062555098104527528855402615052088784043446376922192511734896603566689726919247615827623791226288781844396855000386897131510895013618287894461510318439750769518734333151305973139683082600632290535118767518911757068513232387850234293347534708088030482965215851222328325733775722604093742987523401235967530066323976661171604422442046858086235736851976670760583604231017591667540458494456669240357076546757237337915950437328230967361757159155421133783716953613046935276520121812979146309568102981238054533578590518696658339682291311345873928729995340440819579235583178891475001467266860495546752560471079313439593029303283672638593278232431846693431179821680519456249490018867811612183283973465129324163622464711557785701853165556360523479902440571583477454894835348719991073114454644376526292088600219436799299116207076371456603473389145880673394764758763320952810473019788157329165102489879219437175311909884061344725559189977350564161944127363448437774461105024081402085746782495344668100913096254093805754301880136655317834341998158640694421608358591242375830387651116798104945494227626485699832274679026518411690118089848356087413993091340927119563754509287283158567719955372172135330729746344752861756601552534903147981101866604510474534335844046342243893561590826214844240040321889628073901797307930567815956375566956005334121685777218848172359008959343201449025516265786595651466778555294852462237287003414861828243846069160617387386518815224233146157914110010400599466214597014049241559320631903801823834177527927113296111205872273217566023808751083614568709068682081968215609887301782413137699675703640990752416851766495499201505018652105702923097005178591208170293981876454554586266041356195912526927680784619573940767016589409236312042492024250532997948683676962276327380813023168010610003801629160338476867915050740366935128868200628479796399327530337563209723411397196993238447327121765490364140723825773713246124946891429762736512141107559628214612516753941728773376340159573606475461282004977845348217609285603531218955641490362507439888561224081173809866365199344845331518558399437994328603908708296003877281719915263873450444147269084908581844630846346895426081173998202348165764392580628601642826534652087943270245732690277768940531277811842988129875435509265803628475181054589453890200439163033399496479698819366692903495335863881890212614120312326814883333014671526803254387093386191247469994370443280556710133658613542046780945229679804496133210503709589106396961268561900750726969693618562825369402436694966315904036921081354922487098114963125660228159233224472683184391490546639661810853160368133593904837791366468078572773761100536097608650340777896387438617118552393140083413880475016136165330028099489046418733004929269594821416550422871528031901333467645013760671429772051338168090480942285637554144659267432788373465465098531916419960275287100001743387214365309392501428415753373576699636264835567216146166890119450510072727258015178274360844706856193300425233656646987004261776287098081579283726776364351810076074455437185948169995003808183838074182891653869276786277990938073323193790624161954920885852590907938900379767185859899477911382155595718559201569109155428401739261159652165160536327144067557759619220999794216509372379866654752454589866914051261664152192791475441367994470007886529333868075543921733756101463168749986387011032177685913010615913847223650069654249678566544740216821108833373974773810885549451774447614992080573253901796324896674285472434126441982345670086429650479429274839798510820780561332104519490524467763005394584844281322548120749131311210922198014443956800022878845465023784899001610412745405126075819632522771088064782639404038852569223119724974443266482235670823825736027080157865708270308371385386289356237922044956234915547236647125835012915756850804484233516434721183329295259797938028706567954341279547616802630645282805990559664987283531241297293842212985659056781073108500255572517910163648392190018721278248925284971342430885342979051226544530153558848605553888640552705956120045270815293949792796332671911460699858199891090636464675864743231426990212526956137569071401998543829569467121905398053555357908633201982244257048641748012358587171939487444082858371557342049373395807880952968044098417679538893489700145760811146959156623756384077885265227224063288814229816067404418335897410927046976065255497084429247771229542087038532078984184265482338086756739958863225158990332312936055138250158903442139179480866533808298669171242435876677402825180415949174247171333929426170641076102127339648618562600837433140670791723811454224319666653539580845432606613855058378193400060781557492652019445710082769412147172983256172006585343619375934957247415842173935980293434945824111833222251227769746998051020889124925131943592677230306497375727846803140929679143776728238679827086411126196501594914907808075003811282841648263376255472857170149236757299325552354009855700766056893383308300590815619350700022774584840525281465376983186304058931802223077746296492505560575185408698189635236972710493307585149893758591600956628118340095646275451105052861761738717404486699222129205559398065960031101770492212534711390130655147469011669529354974340589672359670167834520429532450514087218304978663002891124597297792470783224469506996729776636469146983771346745675959978746686040850006394316779829200495448076868219430337014372746807729568033998320564060535727485127637105218954668724613209268612174777517142003926789749762100494025806201543703137976648319550514980351193047813987361067022597584066562417139989440604329790837761684024728759338273507614152825530723194832935477919758736505379064776765978737555743126027949298155737432101364727797424178531425598008852370413252739197508350959518652763230027631075248002182434755512873202946741302520475166115964760107140297943228244876818538491585232511034011749133178890384410486000916215808839828861446629574234147212735887747609472323945330495404176195279993610293118802469114068065172115266118235171227415359306426683843552586186989313244719892703424510778339276136370442870016165884491553692933992188688316683663846649425151993494333322739415400214801425993539123943948990776633102008578509029061631649935180475839612076807627460625844006309176371829138931469202707167161877653233246390005699564629237021702553230382238573399883779517379849956565764422801172916578730936500403648586671500764769994712743345896939312698512726106757162692685137207774236031252175055460099234040875073664546444511226016478507735565551014971220503494127963546575919277867701059619950900463832834865322479944993886310615846245747641319300626661140425384585472747438241295566231213285015230065943139334202287697711959781473708534701558891400477508310334427146285770376301423452967241864964864118611302530276553312087805823131760186796143796791573033186418519185557179417657670229443207142134663790929045146834320538606717683911537595068915742164763987603732371060277112198522014049401613105575780915238477649472169084532060795027965019977768673224803911260119045255422646048862687402264079768185135098492909709297897823642233635012566824438795236640616209942871735738413195817242691807530734836458413977349901041908858081889001209229368943808718760327281797627122010378460271816836804325490727700017378302773673604584635605644415628148602792251771680728217663177793339059376671488821610193577670572308975595915509228174110879556342170115846997777391171595176517214199528953234807506937320939368893057258823652969575313141270525039109755246621831330194981863907323405422165854694645665000142964030227343619869324980946745843137620819462509048173328543519913788832882308575630093698942524471747803893368436248537783338623987116117566578505276077497442307321759289106187513107051049770300207736569717411785551846914077835265839403958097913461479486923122381001193132215275107190914563323254088058200423278723885861342075366130517877681063714505502492871970677568890356070253868325121145369221865007428387448965013478958385810879075104416055652272840604054563841575743032709635031994440123239389612979137619938681475078322432291782353783474038996840200820019922236196098263174392475642991677516033717549377494626102753836361094792110368201757538140431951187289479419278717907081630135652129433401969101555187012433333445352778429205959234854614182808665417032679514571594796422689753431271965676946325023444994431104278644972201824674501754497527306610962912448405321235322247354532055262150303593664398051549007328054403262785157076530708825489151750891006385333525224234527541054639355738082382038400446273413122743006209704892529496493036104691113204331481377971201380602038699677485388833043175260174741912540646229417425739019105158414343107227406477233710584426639421188911362672767514974325170023178597952007233927256812862750343111735053511194826478271748532258861102686415570248304873659543684586498406490304365874900051943229038863948914708558033063172423539401326669233887358495563478208142575838794108796161932391339910246140405459359047651461676047745103268659200008067229156211042950942786539826251651601659209616111312745663336185718022807037397831673650360243836548979781777445209646188568842938545479589366341166685630478651257633092609911452241913099766040413663744806606613977225421337319466239390007704280572745269006581204624858063006454148907615845338480714098286343342373634023339066306873862019627142947641547792033315261859117891883584912234016587299033797194353476269471856526363763860873992902344275575993537766095567778174909660684739829001512548717729108506525456939284459450098334188239655632284207932525081906871552769521055112112096734738950626772523641896969940964431793306276729248224809103353589420441367281623602495675989925883633946584381332533363807075728265768014750227600856377790881815494850871734539210693921273510879859427096004585003511319955817745340635820095821097649040574953392625633166149455379001227629878153204010905361554825932598319708185822820512006476329280407675584224204826256747251200005606735012609426001720291820916626040294275490549368896586585388455058971516710582923584979798454465981864978197586523364191809201245298007967077618903021085238023477324465966308170972456669441388776928253941268921189936676186611925944502063904142291879052153202340702314675117157857489333560955506902607704402374894044412998624722528789265888816619131921835291515045641495427360597876766273743632167527178065613019207895513575928413016299933792188913328996795508067695002272248412146604369493362630555575216194590512810886192756543175876936768647451378184142431021136816501186437582563353178161018567096268201452456238385604202893449415766782711501387045386618607473969540151892489439831000105035732588035892772744311538079137910490543577889440761445588451909892679169931592318462722890443208598275661455963130555757271344296365107359549854049672081970446347769055911501331508815583952418556779405230787647382316633355372732962242634010128635038449786814191958589334295390594203682537822779842116432034577694063343693464081473605705783240017381076446211954628740600908141630371529393495310966297118525932139866465120248018565319587209334181251505541818083579451378765472289281324304885245990562700025828063616792656946040178368092703569367714004451070400003461175049148042761119161326388566441629412468905138595285915464870329712575930679207107749552214496981060012749110125291262426283861858016665758095481983777874109220161678322417519045055212571603721232493791998100070514559490851209366032734058597536612701519279924690961241660392168197709018871073097516570292268440528532135492948109767650878241277302658189242678453624023824141514713320890289348388847229517844226949881881814800650993440821299898382138460260835366950781613498907217485847888345136888610681167908573668024834699041277520269530725138633325990010369913272564612979328521340752528592767741876068889599043089962606221164155272828296001121847908996357427905816903351393239217276026313327965537084598689831089368832331122070239243154803524975214103461250396255890115143075775681644659321041843431907053846016996750213913899637202278725264003589482209867133897179178750979972752799301933357739803637489398294660859934958360616446398578472171102754740981492994086326576631511798646617985413688584379081768360185513261800951919781703435244766385453779161547561513509363467911384665479736542160767620563595740050470971543113108337673511560346989157477404792570621589188361021097689651316435913939873852145641037982763035869146376521073405585200092089421382369241570414613518786596808704753584609416192591471044842692283181125526134249290546043023893897474730745446354056053242497050176595350887245788745158832295436658026819067581699781939672862068880902893283472634224199663787900651071622031224163044257591213485720213567948239444664499012278079414305074668404097161534176801532169812668526531909154801227908331275833584709312872024562183250052731109303979207949160422619914689580357521688415738326864846132821448941588438355052818572198150362748652984394792352496678530253841244294957191817416293435467389208661146998514672432020334679608670946618840631984299942734048540258092986162697478406334605977401013061251593303588993812381721904515866979062602214665941956697025163721976051742203786712166470053370396839009555830313107974979203917488754705289020410975025108170968808615838514703911778977392864068224104974626388850166150482468445576707901022409943243529571992734923448596760048792845587857178639090344849388390000365254477524404450154071417728571977053410173638688723512975324754650130702754097683017403760807238465469016103482410590048377753607422760042052499518521553765210678680783079454403813542565869911581619328944521025088727499198020805874587447102246576769177717019037895046575999997756942304882485637218092482615326406923174571806360118812562504525025579115973373497738077286088351206033760438164951096721320005751136842845702623349905923110940161540312615868583547810240350056140460163150194456057825214871843493374527160072643826796461173879014440212474345693265687309930469121461326362534876974465709654001977218185354686216724669341676814370851395599916067325031154965210838701553455870003503168039356121054032044011910245039302703402670940366354064931641980035418406779767557289468990214074340727390839386801966710850821548027661656454936657381480301434394251650956377223137723753387531534584055574891870682838389214338392191576068274702684394960120730940862766382802247396051365257192306964848452577784078924328411066744489457809747156342502133369364916473608372108112364623244889701194343561104002450619301536882755447468888455174754431359992198324498250772448034857280186064781961949160236549875180303019443431964157059500356652792154977733994769554387687697895410708381897030878734180970609525199016456431411626450481373835537655627165385760965102322182382853281437516040792415005242541018949310190767869439820244377000150042815987345632985182332525329483409069200972228236605903786846648846833616698550335494696632087758897818383605529570444476734629072919998127568621360917622555197288248001294370064284222155512922307086770507186887315538207430072874230194894980467200564883350156556514313290004270279121233203795564678984168580721651253476384969350557008105191410768188000493983871984492192001428859379843379014514656851179571855877655707751465107355249828913329365474408073774749321681249176861029769941405529325102761896412570163893442917004451773688747118282184847872460444861116969849796768127602363329571294043255961402336981818096897420204476498192941558110242584767211206782178131002202654105553030966805881561383926039685342200006834325723282296676219351804868461956168787225042575887647384473540082599236285570730845780899370145881000545577344781498312839163200897824413249396756396667886026210805168686235662105040783298807893906731435569234582585522209540637944929288865785628573625838182894075194155245174082233899116698654194872140219982177196013999651253586156363080995128370134894621206056056867644674108676870675935273634720616501868807034772820033920632491828599744953960948255415553118159056251231690293194980237510318868922079433904284889657337501448164897712542123814858432357416816300900996963925924916338099634526518052474693057849935160560494703534070014391424070946130756677916346019788150945287068666073727682141009384826333594415800037813050956678973671329157914868429957296292010743280873455032009582065781938697604325000876096451995076856331038121774550733273483182300241867040532928409466601977710570215954674986754554369904666517373699344829984452691285967742642632618031560509521494065352705373484746156957241724193102164989565657662842187067258412437406138082222248458351312082601499760774538665566663344467717969618412754168744447395213964179520115344630688631275702278821950913300679298690906927701287750111599068745317337907324540772390797016171601288564182891200149474573197392128385484335289255178941662133888877010989559048919024044810894151120432737594040135692301652370817016082282704161451574969546431027554603320424173972823780505052725768692817870776623782630853367774210805780663599010680798972201234818742078062803303240348298846570436172612826515490581268611417882632160087539812341035309173291227322770350566212979192682569413066826424648529476834003168022913154036749147335882638665700833763946135363617368060434791596735612756807387267891758820780255044808979647850179410666967387056340626462460848727099462544309645444137127064907822952136423375210853418783806189612833615488704215794497727465145079724319991099121478814121944577722023635813926856552267346271730877321164717402907443456674832125746401138241216486760987150048803490811802138433571419450664366014672607938472002838926481517417091073323565002455090625819988694701320145664391657118809067247831377242760109251675679675341861160492840348854125288242419231397006919482379382865857114086443599201704904351564947664331274423227786332468858123423988568084135552431181939853207611382580428874448892247687133462932477616425728839310909818285930511829681571663998073037615227653007692409004959114846362168403708651666763681988203662252190231517765560817323644571457989951088785137832218095765080269477114048478217819982162547767356593183892249388083218285431289475299783814918015531409049643480912569565348033123593977280286167165804873753671235198374070870261897307695065825583990673988132185845362512836589221478525246776705906408854758848437363478590046311462401707491492873246758455853759102749244089749200443511532128695965259762834038143798135625329389008103733927170242266380712202654416462947937122946954321894337188085039412249198314892729381164628872431427215264373305088785260227145780602112726674689233028403955517454623579452858288775508153763464008877255646756717788884006297239229230490879179844776943182562789528774160175669241434314106190022331627574951846476439800429132298780194027273180483999809522444152838605217238043265805612964403255071655505402762106002527354220322896160582562735475265852383140498578570654585530964996475673938291122910992709094232721361754685374055009097674008883478102274035016666661771743523093553303252531173057221025177908423464067384457997179629141020599826561099707010780063832895481937321673384120182858063314463038866022517517598939870907122145761285750748491264739782165011956361603819239638683528954500384465641513753995695797635495351019751033407345519453214755476493893442343086233542926958161578937542868365896612116130558673028335237769576850299495901408939435906637888917084591160567020362391996391137387327264956647290185185544587527444445638511516216051034031864982490615602317802241666333009525645215592302486314816091081226268626295339487838041076368393102562320733836135797221701452112280473024449889984172137866551702043796663935844167702091470959857457901912732929813381610440882280637721206599282691457310575687493782946199366753082749125748709055421447779475227569152871482326871495100622517977403506667159503421601163096350742245665594514583457705962326522767733832627768287063821065257257121763019128345281832317326657700205067281765786329444509545916919991645826966019965757241124431053598633877049421716587544312538309045077670581771976752902574685743211427702815925020346212488888732495463513692802569952720720346402649320476195005064792589332185519968223992922863666447457044953863062769686598058047378189715885887764706155410386399542887313674041729290091996580318577776635586183356550399342529148913221932392224595437572391881205430507578221331325339128722374459123769696174634548131510089652245471344271015034750653268556100841094229380772167648238245254539872270154034463012635120373534379239096875734886848110552789797895202909024916893750142587981845402670697482526285789400350510635528547468184983571335694522958085336567105628099493120944261800745868891372250758139737109855698369679600798105515509415371568541807757726578485861431895029929449336219882000681990302135699960981467952117498788119065114822977493449993172120508017065137680623450847062238448138691374186126160338963040577423310653173528589595382469466742648913541884640505333358035207820313590685631926558025715366859684668413814275337320004950783123899810032183720481679964035970875088393422483666601197271309497013253028095372190757227660403817547553983921857094466186848678171950076694775972575881372078373679674615422439595864991965928198939212254951100076529138242304107400365038025562422878923920194139460464626325214226523471740613748778501206588465017256844475341551412226772121593217903562637393071206811337108874717503440719637648140401758595706659626342415560693720066412870110659485300867289624164832935216671387944104873618395035604660658323248531681658870963848007848909742007092103980301611866094565755902291493614413864241895602894286732829877523353775527864825163076088276413683735740260229021861742330957621308114906426125837503821003790756211322188422259796785729086065934738329026604523049170634348040507597774806012243757771937068424511066398519442363961298270479472222807503505246217396505336521602537878687708020380825633879744206665009094460344376660109748040305708570693211096882370242599427574428623000600057165187559024222769102252909150974402579991401348887860899311907749019079220576586111316255919838770311234303196534294242821695089337198550361193417210803202075398222550442360271430517116388741448150002183575678639982547776144980852786622563570789746885302562127322131065640464712095880945260415553453167246558541113273609314869191829659279090634539786541592413990489387038007068801562651074096794589657711011273661439783797602155656013571793724995655803301816094269105180391995050296982616865128786802749331117988153277221848107819882318120881015151167566247870166514930899436685604469654640612742791913523504299587430016569667353043728806366434655422747063801136205982325485605293333801076611469917671763703737057633545819529377528257629599523596140976945531074902803774170102118398756365714368078768937813730040674212044220141101574265047839631135485051563208317716621446817877808263797733674563143768730408442846434417857005115542468769802448272123615562606106558910706176632013858743783705863038364072319884304326502303779979549607696073710791583141040150975007305437026297214518209841895657673337587304060129989634025216111506866794486518792452064402202301850280619423609834187927813972055167255138558028488679132095916434954774478349797652882128733039211781756924198933153693270402590107661114131327005756694794947525788148166297586121540911833227167678908790742840859028262956971903965907406020437203754687921167595663066121617431714451084180022028686344707299743300661577237474117091200675318242416561743894907167226650067837352615581176879515916369014070102496577466294640471141972645488128230658736897658364954390599814314202701186027230034930826589410677017140003281465773367973875444231919530946787978419922986506186806498342635185761734738656946813701305371559069776781866546521189417245803773674064054492941968062118325425788258188815853158279089406187478467901813634698910747221255216905569929074211402315530676082609612751485695189638623756950202026749748963238913049868414419761606740945460452982087463908893788536964853790551356167252189867276501789036850410118298369102006493614665940294339643319730691028053692539888175682249744707403547451977041439207814313352315370445059344726282507635251038923624038261266277783151991009947643162763426505154378979732990268677470670068994269081363206462610907974374616496078490096630685761569635294136025054402751250799535817802011644194000325763886958587040440387610036640349242976889378392005675614518107269885526231281349549402979760945047921669577367796909524742080471236654001006760432311713712701443794578083735111645404740886573862142143383884485699303057466111793108844625482242269937661529417899483039078349223354269491291671922591634769744211685125931274322314573261336809683339659734189699244711570322296753809729049786057691262107534596224982505553767260586234225514521726492967435424543517670562150650838479617164233455286467358208834038115565177541151459318602664911826752413123811948144078047443886097049617253177524700886886677531546146350821634123260539556310834472301641908786375776174143305048037937196611393990836561780463986870512842653479634294066975345141174637731071301003185256957496769589334299527331507143419197647732548465545905266419063255915614705209504817291659901770397941181232315653928358384481959173667029332474798615624991425979665699068283297025104007695004835958866427049090537431235122428367383249888664351499485061012364835691317346489109852562806156105444897542220996621714231667565183148348052090084305385635576534548739945026695097234566095171907129197133041508270358574760906884858982430955453716892445720544176620186566195727314597528313447920629738912688946942000774179838103869133927368703089794382684845106661323726385229857503893605798291622571039813781732821426130231169436178654198013792892080754469717311185205042422749778478318771024418329264848551719961374702152025498715103328813117145588169731888788518789745065515384740914162384846372123137414744201908722215534870674184235842050522941295017232708902728931835917414157164283133479268504441888408397909115617339787505450250187257856408706467228649744590334134974737075000142799746776660844967448870411984445222629632761477935561567606131151253591299626167274510428021541984507316581641846637567825671725842061374505803338987053549570010037605795930973062897367636495467330350964180543296852096069009867709049334521685399113809745437707010375766001119341732462691965098062096960306486936443432646528999876295179938311971157937817346109532810255685353825661443014938435667142891293931315390809757146220671673717051308797249763479867499788429110293315066824725329318436923630784664815524055393923025626118564659243121788268005987500790488873723446704330744419447554277922637536319124965411828584438609436275812768959554130224993174851072343638860844284420201116452683365743491262757171473861777239497665002487427963725904757421425642779244699026289414283308373089711174827511816251663345608206309314747434003342414783901765446217920419572566061793529118862383201942611171499977083243447244501004558007752829949301709676669640932005218368382831342524849184761885730090998196624882166706080553766580147781139811470101405730595345160086469689029573825577583596350699059910140351033649186810540370557825427546286136296538745872689804515405779163183503962039488567686286924173930950061132571194883309096371316616255957151578624670577501174935490495317240735994038881856767043446231365375589643768611696482291522770291140959368890783231842380403888317224250007933455871938106586264021730329817677059171864204350197801344308233962607083709059076379372795674211190318739165446521024465344791175414445821188643423835414006260426885461613599198045094410230961835941512121833270943219768128423516728318531239116160413327392913188133645167902717475099810518268427069592279363991590195182966787139828505385156295103567882257329436862297314209921400065334571069687183941665209154118593066675516624131943609924473634276885686401327101505603407579410662876856133511071553798218836062528951037484734115919002001958308700249486617041318592567659932489757872953543479830500479422145549191674950917830938051382710361879298852687298545829945073590706975219581381250793862858622036638030718940753865567415522203604114033123953177772329671273222261553298975807133027892244532853286610874398560927514891915957952843479678017877771340587794816322774628095447164543407073281994824339227418222086322504665652499068402842545128894996223362142348886766872047109764320520908217665143730434603685017489719985621796186772702635772442040364959440538181011538194231040659712642199357153115612952453238246969637368588929706322580311806644882544089265794907328389860165784998499494186701750248067762278055062770768916648419183168496956767463214816380236133932233269430138633274980682164372366796437978069352106565901126710792967614133681248179649119755031510873910225028400198176007560417998338409841686483535440554567523155870646095919950335104778107477209947177499755448089420389049376385424577564472063474190762360801017650430747614932382064770865741502831429567782967090182976330364457470954465756672177716702961339430119592225905910006603399047377221405431109263614549598718567371666532288330243013672962216738486017600906264872223069299461005930407390473366634981764436688669698484356729258685390487576242961231100807030875423245160781525749137552442043385294542621947817994570468728990237734228797009411280759264947924481766514324114696449175050287131484359644988783566019899011060479659759743867146646085336184540944045985903482517242989309899999489520548867444125883802805809547464652440315243651580350027320461693832033273826968789658624693459292902035117769637106627031636467705379791317068744619197910075371870121505303864745210258397667485301590818344224132390499532618581678472514581118652492970863654300987089531002893381579886949334763046496443320183568622602557831148005696869094334596760160436401522104806843164600140767617039344671825770585160122060047296520659653166719180171820924681849374658035854327588391004099559221952353185862349357869492341277464771315800352140239406670997539800626153112836791178016128216787401288690709041340177374727051762731207268802878022785108040742442014989311422108763677511609877018447697033646592574119037422523946471786324711239150238414089192658384026492488293542835411170697496002366690453588329323780066973517873732699300753429317135802140467713637363052992748885372923993953823832797366085448167264274986723762106326006336078420409912419686397048642854643348334395022674040734124415720708065049743639235121907966061301459535594968147949374959244796321106297858633762538206868531898406088999700905784227405405783701715401572324266123761827185909680469881757926377048589761329969502219275361574844880081582590050413846441458349366862581278683223318800290001483116655932579400477084802015014578252464637394927111024187742904268470200241819540372639459452801697628603130761538208275203632158075562548032062378339472284045893963820757582961343859982181202845169973345497473902590783974883170571902317429748599322329692048425495632431668018452170188517581047932966288348064386682580483192136561793340360485386649048380599394324440520362508701593632309070442644112429356804997090837816686514267585689965471431027785708991692755199117914811210468261523319259416427728769788437231150870813200465126659152147161333559766467605183336486835811421999710488962771111339792847566425067582893798691866660641964982573521123655660855022913118395192280698643452347924101958629187937178640548436785435224366844294382567566053899260495878256305512224647765141416360099864682593315816299249546345113316584616790299657065651565205138107524948408389973512935003881515895405709086635436523774694251974157058020996788355872686382585601802051757841938911919791869261049296521470651793146922154364178310914226556843792003678171302749885391159685678974685359668184338660541738298800131754075069313829277956494934746197216333049013308939165531096413956606629253717987548545648652890097584985900594038700690932597688165385831224544118191771882986213622158220368827520376411527071168949060882046495510707792020182540093949475779681724220142765447643441449728183307544257128465430684831714111042841595815875390023212117371832917600875621210193630709762456092087354564068261508218732473834414072009023726603110676389204532409509654526117192658504898129379203864400814780588066775154407755478857041942980065124003164013006783092887845339299028132718706283525807607081137035916550294666326711536279275137674242749380857687992666215264704511122259230458784722566939078362695536791448234298720564989400467331336343711539573346275410328778880339241650961841110442418513625459081451665576363103127942831410811320721093774812877200849163195570617803468702105127914558465434896718215214158266202180680363861912883952545395054749002408074346798382118155867688766535368456338529726914092607827519779822702953766652243194899466987097945010367382661241023423007574328470830830822046538654418303751234064336573728190737807308240637731705832544683426600790740518356209054468159541515423716057522622726697831503880604685834930990827155703375996293874352690919377328989322617769117925708624272040518640763915275644176558368331104316881213930127375487083163943626051379352646582472269598169184755037025812451490162822048902454147537608796031831329321853463155900019888136231875344027356779289813646106986030261364088203958293496427405862495141694514175107186328694876735024660416645753159794409746862802031598800264707026311172873316338507598234407036607030640512780281377818498447777946110510888941032873493231737433396279124672555605035329632730061541630761167959468014129444178306422442963322035732489725983886906431440759442384643957006798831633735612955731772632714196412515816572780634784064883476904950249699171352947473908137303913861896652154721872243239762704362167273457572327723875699743892294364569213304146327394813298641792025298636889418854780346553877876584081787561310896029275135840858046878374502189373614264789781922728732290091275762188567530274487914603666105952367739025588363413525812418125018323063518705838292288626680719340424159411099426331835923424621807493283543865270703307988893779159672500858904982069582983511990891857347736303467335063780986697295774419431756202824246490420770006221438079955690041334647127428768265117090823780119058278134629915516260601388320812654655926560350804794761313220526006818694404525797097239885718835666672034055013232846275116411269249289172443400303592286459666271631354308661838952171784419391517195869973988688935128199081893482343278592117948153477786679248342813315705608129495086669712257098995124463364249123315698779039207031848536205836924574571216661294398984627440384070171498560025900495899611739115083437089245142871712570178805596270508962080183903936035690451156463066616354960996808209817916674675772207298294110630641784483490882851348037967366585523976613905261241742855712198244739670406122204288827175447669650023558948903555872299359076036950319179632451786808837404085849838976536512796003505017518959389798793311570035340337177103806219447193896508044360961409308379055026508092303942803961199865076146110513384686251378984692489294456857986847941528012087505093278565218166245711259298507339410176997050758631143554135534176118423096193553641377191787606422191740941141169658549196737258965206323007538172867993823911076233331459352621507631831413253326076670429713782023159659899136547433572435955982489551489636330049796609702443585521151453523144544976951023855461521431221444167885481529155428741417975788218810602933905076189845356945296039042798939742627265916662416373318765720079395890232183350345064688108677373801349221688139534793414063014204978566034288904821589967088315519152694174166260193549529559569823458317250848729800386647252465816309428888725536200926256869000172732977542699080554067080263992178122173772100803052895551842869747181440364728215814554246980429183163181022322264163418621987028835478989218832307497763536977756165674770264918654738354929139072415925583398197847202353325897974987741368832663290525934733081161275636457801855324856905006202920630496693014822663624816507215372197245283574569217646308820333233957202827506469301319736908914706108737052147313112189457431386264258165234390771679755497913311547555153900780221144223350635944805236461945946512698893085692696050061330255469725778879250715830021625283904940853552981877151045853572448603637159881166045181091546885837314788185834859141651927421339393791714143097312264447048639434012700803788409529959465320047227598936937473646383551933244360187061159553086039496209579554860906221175253117777174246031660463383230639594959969823566309164203832576679192330542505058170383691105305416843930189638923838094230023130500377242652700543781700332240813591349521029689307713178945245132760319962548741943153068868352411487802776191838814668161189916273538539309411503676729828284810172593047532684322971673350409833599642199220730900812649908740711871968432574137310741515789679136444186826358743112220023233093855177815196252139847723262678588263105751767169014699977142791335153631341706217815677250572828017188895562523132482183025673185745894477845823549694442300448747173572758261406553586709819902944573954560605882859162374772469846429717554007994166634948935799294659453034109226759231273832033452447370842121821772677619594950638880477478600448606212851457595117559155450577110310470827775023040006887651740859373382095537367125510829027696417182679428166173694217751080747584090332423273206305344796640057617576436780132495150014763464493627806044927392844953576541756452845660070311732889743060082774488468201885365591858119112400376947729974722522114316663366401032721803683141762554232455907006655581228537409175949393720092087155291098579338978017920142311042084563326391565880167656209912618851057374023057403395834987908226975273354456106710808482864931624796562777412587835222147853089067141220873120287287569357004081064205821170394285048160619220119823236282744542823656423736077502218130199911875427153410511345904487395658518403955313028726733387818853532535827170525358049318945802116067632522860302150210503781488994845356883793882622661384853442933170740718706301152781463182888024112669431129660123500985273803368039528090839936888479417557208683280909986671485751585909504729908985886153522433054342262490094686644544534531131852451248878569583252167274486166017719728746522997842510173201547551730783720661488296855206047139607412327934424091414148608322348848976017542175184772115845741027879650018965742557244215995306088125811738194468351544430251138491164579486802710481715529680704249574457250962740138167580774492039714680271632748958395598448285056884035374518362290612805296671117561126244141977120960138771424812433289229414627977102528075258491203615865910204747730206673138280419540366653433888771671860012722651064111792651910090201054314289882960457385782038242006251855529305705202384146822748392059770193237032902409655577946654062666974785848522101677951425042975497240864028847865976232368500431621745991662396614962831742178124193077764882400858705289857129373247660197325997366664529817645963206942885169820635912319855951763319204613644803539701751266367250533681991749262978117846341685540768836587506156623444610195823429241911253864188644934488463518212520906642113593538409052755516406574910406064887215101938721147291963384496755223630084417444576876795199529629313879709486464959812971251520951505880774904321165310048052622529649015667215552642920924956919150956037639323741558304652674931011844261255015664430974777938764058096239618988694485391065369084749157968950514534254626676534165793051672901205616241956325230215125970649416142468523039499592764410782035553581686477695204077736715171216815191894283208449782108085763626965047321457405616946767829904004423249997597569615957354411287544641507450042515548315833840390321162205310600145547281047177102052565385941007413277525961528511130255721804738327741663251937272847837880099695847808652019971470752571467834843922649748176416418962281930397741435041630435167272717796367995014466293031923271585729611928623857072229210378099965412708092296415737314129911470950268867842260873268786355227776679954512031058043597355998423538566991028613348834592943053152565350912633772241266705889456421209081210299031145054775339195799365848794388943782231377185722823765277967235308993655417882339839128032976160531591810919471010021437521419083493116857957864419144487549443612910501692387755263011552017948588129404846082414129228542871432667595468277427598275725700821661820478730899844371236457959221174435500497836878818976977394295300553084447017163376696226515626891770136963423601818101429000676438828661886539944423078311550364439646438775673134400758211692022676530833939269590452451118122200085701705873347363347349365742940897288734178929135944566392527024095190319136423047645381729302278754643620616005339489463949011995000659275957974487188730765172483252459805010805200523557836554680434020013380116093369723058064116712644243342278504987365217070704481089003789262426374072848851836701559903794166414543577180633626083456827885855630335372337633725106528463949672637934095442510235058967397402223737363489672483786147125947682550275029930090510821942426026560878441627192606614824992388742784312981897662600553020279727948274761494675225555140781244127777467481180980288369932838235068494559168445449289988522697071624425409293223692962626773731986323899533600008824876274141598023560777563169480720866939509383185157907370318219562857909933227041348252354025755014228670612616706896815546569372034155556421853712960502949294246730371497209156274326680917974732462204458855861276522899081874038525946892139946222813357117544216268462147464713662945102679310615729094714587883368275994574214335959410741247245233584501685112399931509116807490145420770301503596925831920615139153042312726885245751857568724341640546111813131669401879606748046961803774121002046772796082117239646310641961283089014920444723529295327683133301351225001031156653257679488266259578302611749670038074713436326050118382528440192110795496670718956887900170909328800741982665993428015562152019427234916740874237309524255519253187394608330933920129493772427712323810516524709412978747393406398702982798040991781678969066699088780380188975721854177155980823940202934846650487734099614148057113578867591794863455687745834990719518222782991053490539654407079062098956845643178892167068632121953373344421816326302634237867588640655841339524060670460518778343061121917262569569302931272001756036865337115987985041550425985081287390258330485727339440873984567116130086299372591819783370319477967389192222329065115587472435360848992765077836083662565043053375789269618687703435683594460232899588326274472096279872645366004024131177642450915975294507804515913062970317827637095476679534256129067044412250395535219070901554301320574599515631534146581951910889330918076578019379033971951562688123873789920689744171510541161354968637533400961109833560556792099993702514296532811756832707390250159576625684798202289114729782878346577516215051758069482202744360833756081688321752542142244103346002386704958180470892716026133202221207275392450099504817155687959985474519209449260739139880620585098073163717190957360121898155237085531426023153566524210477768749592255309696586650038304700488337938030301013157970606395521953869069733029365737883000740480270824287782572005973681004503308894315552835958570608184235716015941177666726996631548417585417707902490219227308354816950474408236487302595880749984001974628217210354254424146139448525142239611284076257967373020970829915272203123312956485822726590202250070670374086208568676432536681968907146126350109630673281249206479572114153888648721332930302353588069213163223093079754632107757284629124124342707430073518548372075673939938294414089432051569362138736144455718103509991834474422678725997966216814118141673586693094057782442668585259064680365061001821644512585101483462721794302436033354617491070322897443588104765031454216280555129427035686385562472294550360599496076391527965031621461645274453183319361912783065262117303627218379761006875188275516475288986597080640662320439911837238378066347254027871610473635944545394111469673172600731852607157551142672983964143926847377785454797792792039914557367707174554990893132584035234775622179138164516355505706859318870495106763452401713827260211616569600185098574074321436191622407826416727881710860125731766526811437375211363556097603206427103637862695348427114252845515367967114604779889875842133953231605618826354943694131648402921694198160947425021581279943300414567163406853658791583906937307578214065134564114306415982737082542211748778573093902123309548989477762927537572167789176744332835410908894182211922677974982503212394556382890954229259884704386747763530090206825348204543815292648188546926814059021471257359580821011486822644742447263563155414244281932645546559479423899025826939946695741506817920155724153119443610977854422071685226559003937615692713892566763703875651215017725673776462664166997150654310764162350430750884999205232294703348918757206698725454589033769216085164393925381729061124293538182719350768062865532294940988804311520268940726093971497131870604758788912289139680321383719837669334612085467185887704079617833703565814917809812401758706761716469775668784534087777882887349001709998988107178089313890897470366237169690205574085892897243438358313256742585860610391975075963048141474193396654233131523114129006837003998562191621184866089820747426743778276452609579845022899538497492450469709539252811760921722494233315398650835987550833354760044886657825028117201536237180035996785384986142237395528085926854125479420128612543428763821589454112332591888893130225373192679353207103247770272999651043157768545515902964090158434829424706194186108276425997163780508114666265418210475837442872923386032551719027571200327045921820149541503901921902872347301085692827895031833805339686529898381893605530010352021132606835294093019452188390520054376648266539141476543209355320110257114869565018293922575181332022349316840507613557576632315569530378834814623429917487002345747031709035114528541503993711702359350324171689055421890326225805991654075071711620834186627208749778228009194155380476091764958486417808064577727501751391591323831869046091665533827340907505598999584893265094528784307612853279928944236520451985121158600186543935593292433729688414167748794049611151347955694406055943598328882704480136238170274345667978382104918801137594122874217806580341544080880579120409141843045169738877856399377030269181112776498306099753455930306345259905532299191931432803141418826912707832843848767075975634608650790520245856367274215620097117456065762560738119438574170964893605952780855406808804661915282815691246084701688303511609460819513768428824776162944999819843643896407782979140024992133948762240614682268755832456767059767009473412220220861037492172475736244524169437047761630671291436358886180984461974797307056702344724384718340022653087541468254650157438380203910469255600477849149032021916685967540158374697235794706621236134783838623541418700952882866146390174551782421865259899447446078906135786878366354192262841401184308489782111705025167961254786815279582161600336889816064782355387439256009642828794133563444160004779001215023903305110250038561433250360417003106430039647918109462016068439554825947439793741733694767660383654640772126865850306017587773215036330955536633965040909166200614553916408122405256171452624365237476794623541126459220735625783911949552575224841739716746013804244736355455381130466836467001292475105676982400981001358764989757708508766487651490827388049787158319257919896661484000691988458816582365290011438767491991683673695887871756516224870117575501728544942096195390963523655349901732134518424239637060085353044745585259237477717098492640699130131807147312715027280518597590627090064469322446700502812866233702566912630363127347320103289548471676115692867767020950281456970976113014059896681083306182429994880862027096689127027790120467099824831632322524598946264811719723954254109518440651997257861233788345655445989482252359295190624980033774352945179894038758318966268678481151799638017813906460591214135213312627565171524819775022553456384237574374777586559032196032817263700134306414237276849523458671838281458159511565969051119794165259377047622735871190920142350878058425384570478755872896658573914453155057764804242331125955373395642490811796589322456679103495005046623316175685171008706951014573835695852701165634133442166504322423750521417017047720184613654435400535106269435567579215924181936608113308847464787958879928931012650873278657681970104657716982897538087808280525244266061883658993035626930936506111716675108206493065120471459965678116062916447662398084174352779946079672873812213313879655603781347408639184458027341283870592945271456762102763239105006990815339716168779767331588599474326594955688646872121766728497007879773281090350867564869227823780752152054315641819806303149841738047836231040057451858495141007030701812662387417447505700619351965888446547091840904006346931878531229421564957563943631830229262964494114165683118679281822298807550263035745203028648140902840406219557481839490209828884312879300240631367268340689498059163415345968470871393194207615882477498081816005634058653415466932861760641378299478962131442088434335302036827106450166205670626048882652775655132937989666494160506915780327556888390148099161224539604644212630434512075169052419143322737982767848086464016981814345030830721551855625826851725630033643788387031605532074587182899620142186913226197461632228256159742014418707585626970520670336010061281141377362426410862409375427285590823208528248964833559266067932845073831709785894580494783840923397949381134744059210610639262959954495375667025778242761665083083631440245226429797578734109714380824057692433077681962508550737284446536838199842173553156310713670218086081450973622863005203449852802174416233793133287942002068512130372786283553233322305229955846266880075475470788513677626871925895871733353127949473309794128610283530661352409562905331532549812963073138722717849622073261375448785863813549251180575016074763946881109076766063165020932863441348696512396147786320709416829760503363126843838240825155512716585305840291292153371657923602427123529931140001588061316953380195845157056094795685291118139502459777976249675556244102575679222579737172929586415542245990684007813221911737322788354543512033495349815173640104579505250006056790881571141888534688608063477095587472949547272126442487599113293833253953504064507313058236217888836872172506689583961008099640278017888202362096854854242758504701274630347557701105377435580146903715548320741223101571218926339542190169377902586557953712377358597548224704789343886196846037972554302196042574478103728019442403218806990783569866847999893184672403858471045202393186193140302829444120995481642516520683301468372442845760495489966666152007895763968121337719418733959125499264739145563202979236304708350501315095354724041416619648098480602119930853861600884456396225576233417557632286948912328376677729818531225745134879251248249956749707509646204887248206890040688344739097103853316551282290508806308531959360020838403164011983227210736572390078731147497878942877515561889688707287011272641391484494046077746059878975316601240512499862818829338152569270882265535358472240003101037438634553731973480209589690580807502479864271178605495117120682603098372472858774833547996235048142598674018210660394116454247593249961772207276188550103361768439244591337239302395551855654406842718773608407804324196262510746184794393281784196561580549611561961018432408680955970540576097326321525559956828614186753367931525208330658870827467460806082666517065897349664668974744920542898654965952710744800479903504415216057322705479019387207933010840314173967982230097064853560818516205762631578478214138097127548697356575053349195289091824089151326648227783383142260487355940515446683712891405012535910551856128235349124257804441673282972934986082168945656456185106029867388202231412171243887494909323280498564674800886208061871651691315152862188406778971932883329151346906711948800782027170314874773680857991139818704590978740580962773386279774007243780903886445377537640229027707318881204800144725392432191903671151882860935171191339214044889474127658433186808219004020159067696265465499641382421930038703239269349856767663387911714672418213618605376893616849233512920368214987823480339505158331457053285290061185406533988050388673423514360229852623614501036250073533805714303272613379502681082713676290032621138477207407800319289982704207130840027310599376514314882313848016757937199111547306399664685605498800672993569431053325844606290745068674100972063423148375270696806652539451033958962518450631713829717919051859714878939066699290553931014028608734405584068716666403478193271683789465132115881064434338622660706163973955397901479341647452561172860439122658950285936681330514381473339425903460555481463815884278705939224920535727721354766187016752412096840453786858007970748629866493159297171494770983460258232729723681190813011105814840429580079895996224462154105237197176947593852803717143175220716633532847161371729199331052376431948585255868177263453980761142506564883216397374542678173775637053873101922954716566122860853853277298102445519079268939304857654424425373416189703839049354718046097686233302375608048920858881746596081766538015071475964705211945979343830288395212740997884976146019959145676894315300437925950228694106472613500116800391724671922280638462659336461493931904698964570499331076161312247965632781535763082470556244976026180502838157080141602921712782069342282335433043624039562048229221737952218549277978204472690162357201743717506975184383024125213015356895202966808908985684975480832429624253714961091014789851577766038346972322837024101375461407202468892363562908802522747661914790272826711968008174969003846789535899762834968298733800167433209849055308975108667175155048751445431269542314016565124263932459880025743270091231176990055301184346111651236557874262118452677832301105140007493650783915586337161134621297378950877045429440175486715753425348306431353511852993309810476110684234546844118461196826054398414837200817570544980794758005618028724848509140591491628736668925687034220820220586804717539748892664991513092842069455802530199357406414524460356010482434766719124142489963798421165848201042066501987529920354872453037867727595725380618897975994588464667384473385529793502658931348385105237141438931622282669442445873785434870959148163936759538551652044194136958997919284225863033223049724605048565487474810466960763544333887606055617600237323936117654998256845518790445159389197906392865047748409028653801341365063985774370930032309511003211967510962623391942415766875817866991933781187556171160262559325990708901596695569630404614253843328552340761396910542538251547535165936156584689960481145242804094572114209820954630979470713445517291887520569870668923289126399344482811193181395957949891359560093683206644743913847163053508370028479270398270496045154264199014398994510193025726368023275686904756798128156665807695688917758533307761343203349332085564093170413256092239627510673940735423175665641509184094434819750032025019228758298965518324369031842326407675901652841711338843630921744406831476269923384623516827471493278277986000696252574824735676820301813942938193812932362218253207126643585015832764030319897880555481351916363380285753972959958271348610641274933491621401907912294409454609995279533098746550685483768065725626090848648369923019536492358543092450270743811686270938559317851547024539041312174236389789629759499594387759261001459373645612112610619500826104334248014167291066892519744296276074446596654885100146447155703211072806655550787541830083525537949764191772203887814978137648489856968762610431346891456108780240479187437216168483763332838686462003602032793605308005016668399193555320285085994964856352783945863414509932065981453313228489234279638073667846858700315451816292912556605920107323406798039755727590415609990129030044185530254954560811834433462830221965997758724205284967613758679953867259882064040910532026014077742164746366154594722313519802336527477546995760502318003197492571978153469341034946907448772580795999046551176713985710431768397003860629697484454100873593265418140266836015953976166851766189994216392715645822475544479391479232683791890474020349419061379475110860731596185750520907634252818408558381705662969502974048750353119113879287233340291261684673100098336540231510268695478564646248003420208779596962111816510940112621923523574931917915675041058505756473521755500088602263578397180415478185023159338620157699723037405916251464916337572694361402866221844821935411973494714555232000357102538506068331312512481921643027384834050622561949981849906089458021360301099103804916407712790238043588133282607758050311882368563024559644737511373628087525495793860747308799342536958300496138528789226093216022647243216788165386410910131878385026875004808671642770178349169640544871071888032069160851788285246291049453067982100303301068357639086745035172852447588244928153321383609104344332580884186823303090454720567367808883983003940814741701647344503718977469074328047026000764254429686531290947811881382437690348890098143730428594099710847331489229483612778447658739175080734011915091910301378910503679535941801523488833443047522900712814607410326092126007659873645898091572563375928653552092697241545329251371645344676915034213916019444979743843491518270624244513598843414814772007203351397596448592498324433711005497493408250999581132293863412652068174521594607147271371976847774131878737994102531395364591640324754136698435792403775891552368952289171946735768444298984322913696009747716308366199593246653795892397944007510166562978419231975660257077485773304424410797810828888008022254670752904054994424923647248563712652988342614261909482521880695195190624407548936065110779682943450975898792474257968942337099575076574793075294364747826245187342550440496469643421368212325376607983417593011582643019557898660058378642924418687032534437820122233822161267323264771690875809469888184194266013563737026509689427492233426653221142882793844016835524249956820165438456783999819273667356449266785469281913605345735339909756152142664289831850494661355897433855852603181177881342889571118752242106128941794944182324827991985911715212444460755757540962408266904371753308414316302824239648864712406410995810940309690734090122470870637492991504662898279257188411581735060998069234276410910982064281407428325522391992316347987462563780152329059194742768183792547475479351623883309179819604330137972122695363642828465696834281815053388869187386799656773558707406245586898519923764491667562389152298572949827541411153318814950681008450049844545346114435025932042781368746818227800160649859736044145052054346151663967740177449277684911601460902421107295308672052071678545893732470573296014246478527899930908882281267867439660692809856529231674844083500722466102859627722864629701925733466547578346409182993756750931873705584462442778209823866407878725996506153762851668919885985985051316926069231033031020725630014996368506836348090633887346370324631466998879018061046171771437410599361087689822195230387921263315126378745019211902063062006345506412180918414266486200761453700751305068610806071419702278257824066279807474984844368060041459940689206394381582981026984322194855733773956311747506580380363429559041948850136215756755775077037275888057617952294293383988532588264988543983006717734569497772332934197645477908930670117197488140203388988266230432839787580827081579900460992891537110327188488319300256959243403362450502455983278168276631690434581990502032583018899539780463976431784981833720815315128756043810548926405102031000275836233284441508247367370735186391949181618537065667266796880411456082035263209273716808373507530891344595589959917936139363186194444356370284619160278212518658852679953041758191660525820599739582324900699675152267640126115695494822163220236767430122958439246099769679039315255345843929952364569441300309414946723128706748541932545817531748930294345319853417463307774529724232198865871031251279065302625418154782968105379650791949426187923400638103730348294772286957121671271374284012555487159252972536868800913959414051408441867223074980073912155321033208156213458475671234822309112888714852216108216413989522710865841422750556688050714314233100538788526030830360108824437820320466336306719095190272793826844279736771201565516594383075991180779639679884494144503969289353652740560338716707517532001662692613110850463091030385881788768263166276145718193841888485445356442184113652565422345814296939395032730426923367258552478010569890202538808783662288978632394294386332659549292545618145600607187630759628262403190206321919743997996389559503393811216044205354551995425165363169350333849670468631387973929568115110769571625425609401682306033418659528609035991338626922067345508425947738511071510139227607518501002907486369047281519039810230120864445352639679010530173724690768930447155425648209019971424209327042870730538279090166420445344555908597636713740882902993057351362521730552856795667820052637029097313460632670573946037004197543779752752930221332964232690321837119293140729282119013210602265220800813998312465327467923572120879986307235439146643258638431870701519338968302747617278290989720089715174988946423024738534224204885537899361243112684655041294315219159008509862222211288464294418764745548491871133903666221189029193443920581259366475109484265625579407975750073877850354347435162489598484567453273564861282943046453393232392273902821880356824246155431265864608808042445826169195833003033233749658222178430393891103284586446432529391018526810014717152186971198004989650840190452560730632221278481467472368362438047831044964940126528240423403464397532724439520648050827991508009315435017297081751980862047777167362136372376087875264269971009503711687416422732988814356258754034303903839091548933824371544287320775236312316472526370164546875798462088876700857859543507926359757172651687912609934606946582832653938344819672052961145787344710878656396832159651883081916192644865702444561947905827327696537879320977672362418871632153759870861430591547190679821833765192932605637372430665437012140964962606648490737764751585812726893214649598194026785720655214348610739078993573382099595551149568366116370952406434727424050033284532596788209921341117502350140107952635075855533338313360430130643064888173478116711167845738992798139402370420906925604336042356558885492275087245885263759516961286291819780538662791796221923426426275970295226164138738577638106756565258217198017080783876497376961087506515252794400871695100337221348878748605267856366873282943303184103311272530335724161008179807043107519239603128967807364870935094663777444300258153260289229697401601570713824419786404077303522340348613050310893886738102474986422123369646966223269372381931897420812950463575780297489142161768891713562122529098949757439317493735867582408392326677918438596742358805215237255045816560220300140390436225081374477485956946441216106430749885813685668924604864005395169913572599332153294346861936650719640679323882864056623697186729333118549709848016971617401723833847110277303267949251543261939144538841133944463825399827548967466564840127826329469506764642063601088648432496368124360659670805539678117928636435665304406180931086830388134640260660595737450250614122384596242341703560763592209613444243728419448273567230894226582024047544170252014989058426010155103756335110417728466489672745995472609158393435072826124734369067204247286911470235403402897717843035354244704183039392354663261080365993441997726828772679901629408281637044161955628535974691095653610742912726958150529191982573239930849985777766065979390271034735715815916896805507242892474053968920114563323337194066141517781346346320735246835211003140415882267506158039077218895958130978242421973003927693948070935544378685589897286606558677553910716727745414857163237397688547196121892315218168080845984446121738099003210686062087935996082082948626203841686320473875903212816380895263847558167155884865410892490349505875603232837661577853457219044080796860444743580912459008234879104313865481155622177746583424149590359038118791028061733995236839401092752394810238193976177262534032983109722831163633324243799315073205117497299417158954196913345859308624665650267288886150886692369719752519111637092715197541725881486540460374827234431190751308865698790068579711441420796665789456551895585724292325152445165878557679466634385222754086951454789120605151437398941479693082446849484976452597614127764849031322627079335040418311532305786471363779209044102072555488192729928844829187412164667745637184408470659885918847980843178038563963225966463738725610200430164760614741416041558737869847514856510761726357186405413149078740045223224328046942032024319384970653777158026789688720828640539955447395782028535167569835173256938758617049130409024415387939906212995188104053449351517938494185509609756014004591370847838420804355681721695272575639937527290342928680793375309261022005861303780610899940447216647234812471644129570441550668037804880783648544485841091693780641852041305974839512254077670323988187267120096575516369207974652300143127651516326733110481911660826925854112781026538079791780166037827447544332570856069749659599603791169514195176372098544829201628884577074156898552937804268529533401891243562865041635427478241513340735734095585888838739823931011658093314268217688457533484348593967968489558651380056928422792241210648074485918752639610137652393677379657958106513210354219040197881134331334554464726118094735430208450254909293377488780564570040406062108913758540311636726621800567034067457462024725965558978268970956033360471019453233883699905235273112597733161981842442674664652378560061247462490319676976900282686062518610950532480543070085947720649533428279517202662622046670882600891682255572537454805813047882101110102935055693139096160975920859434097991743041734148679092953890421578628868144039329413245091953262965827933494491284788456534379189916170190737508873394695845568073764695536523106987360470136140057432860539477706185411502674860566188212048676175076937717826986804627412929970167196005895599313689070779570071829936055194001044702047158614376276376410223696502693226926815725695448345119029884173674171616802150923575822014005604547055960518966766869911795044294041077090217315812415649050917954498086932438531388159532158024312264964366362166096625910463891035411326501560140074513670234273291424247000183443661546927220971054246774713720307735196392405580409951338888318381120819554609049014586888210740402444750899644998403598810249406439415592386011678390310500619465415204625097425969474605971024357964950129980203216452389585625115442914807258727869998367439056831177567375354850527487484700359739093020276095721225175791812381209319240469391005480032606709682383573328981284179231072360565103494571687160143861288048321052178153115672506709848674386415663757770162024475043193513393589990816068748753354946446035522643381940706875202167307077108303457325773929792603406954371086643878950649206340616304166115312914888245517568036032270173859090569031365636410291071351635773325511132210220552029117601592753791617116250742532191730762877758537141238868273295380558665009603460742792264713963204021366473674214147911411584522454941290329141057190083435231796820397421839418582549980899513763261649068749027801287239678181261892479195578079926733199358202382196163636008364609144830325795801775568921803276221193230280168884225828686556624776679811584366223405917899547001948179297354650239271375838059896513365871037338924917540632823060129221900899456641808764116545569719496073412651790456302039981669102452238328008028643973192097083692220063510969071795988372083702336320427299061357393952770083250076132165760024760014903844878454775142959494953468874538723272519539412485893819958173492117349203166165701002278664184984940262717029643105470019684680725909463675545356377335910901235440189460924742432424461914075524768111985280525513252241828802510794190145447576432948471445210869701589954093455923260773588022532827530995218249863428915626685056233449090930662204004584991756361066128384507913252597788155084969044433379665712270029986170320946267934636585890020358044899747553762491566621723430392358283366300818862816656829222168137306556390007012145230374915189702497430656937285736394067844564440459371612590687313933184521413360611386431695341871029171540473574542299996035683151641601039254733154903072198440731217665617726641254613437810636045332685127047411636478491016604413613218958969072921883765571563903398072613713664675338887197686410993983713779388854356226662555077457413700911037074186668220283517520340007457991202957706083335954913978399412957484100716708735259253634884564569281816592545887798805243515300932900233394344801282875044009538137687817174448046654477815389373190441201995091260292057743799541957739058740870114566425528839069230220228290937589252192317886814050173230254382689340145549331367947603247814697045987081575022012516074608064628874610797860933417852460740679205063941849561224053796353967557474398217048678075529911138798089217049602422938071176674483990173160133120474432267806617165015281250927960215872640222670845516487325430495193627114378763918363465107895446570352260341168946243253358989223497359123676253909233874070823555156092032950534547589405526154411433954883418395556459706320708243957777180124199706973623061600883459129193864637165825380514431713610407054472958301980527557525685555406814389743054907005794039271967013199407216161318750450088451297682813022773127279868504644587339692127278809676258509762147817801157308166936065144136535991732385824724767433867589878462583158532395245036793328281826176837546161542871461256494536865007364934412062086634864112434276387256167405745584732613694031202467297120552281535929310678969551137703438877983993560653161578687296632935691583963395167301089395479832611468164356321962180767830072158996977993855293444025078769393634928629841299387313986417845956196569255156405197032617181542430580433556736666107090270615369867675806235364379686904436081329150733796044647031333415222536745429651899204381171822331763028192734685131710711054738391692787096374665677566070548634734976998576649999741617135187604627019428976836212249504920231814263761019367511980789117004639381612959812711485046781268583536346731060218669094332494036115404528081396875330075804335024844000586469806867034027954452829237933849679881686023784723389024333284260739196908347144151183907685147966435060990060634017916209007934301276857756174499856411817926566472174425784447675733077562981939035204242797024377619506693112280206803214587101431822383667427933630931679737590123536833633784314406760183351715500583065728316106607906161023483448287198073343614363401673267682381242208246583472441844970773663793070379796035419573099516010558226153097607159358350955606487418880938417131162215661776852173240394990234259223799482051605007974130942858985464237496275350534763389343292548271144968887441496136700541027215147481844599904021890019256294726977888031458613219369560374463511620889230965512292568736945680667481316829089657890705909199110065749724652715260321831353948026763283947461099826931705706641480341306296958812885353455551109493590957530906182984665006443762648156648732197706393247389966605613516515319483534458773474671589879655068275039916015298146103180749733272627974814110571336347323997130191304326254990127459949279933358723902651349378081791117454231747933753719061111172890199490811177611696499139752411774884942729952909025151578593090111619418180578534884904545621486697812624109929616687425520775551489956178948477574037199317395057014761040493154561598142675975194738618198638580242949285166032742880482805221130871144597941945147925386831501446869815095542807652179617707261825558207525216579509500586218528007981696137477250437068129385293171790176167719982962453127490715854422708188292999673046600182430067620629497538427650485131553260533228643779380771498456564666636648937903960782717404317171830947252055650145881985009984541593874569447387547590800409887130532370133529632707919546804412452478697089645088300673130941269583547865157965453430316412428547735731672159248523268529035610326766869682320947940666754154722793055729651564893756491616688082000101246812407816759285567519937609470064794271565099119802785990893079708790122731007293956911147443507932882784463978941752110728940646730502989150523792688184470981877578857659467418856529279312176303307217030401171379063626732935889852253028259554748936267650219812586488707286236660522091185111542380970215071904998823941902665315683460791776993713360565546204409796096447693588451372609503472561407885810579149660463235456928970886162347287904257059472531975092474522311314650010516005536707308081681668512204006217978870607571541511094919547677719839623804246111853113328160370489123283398151996012433667207933767053416129654668604739975832468691881953186663514515922471513577193891120641366279209572775881586953976447189853860031005231052839753273404588981557758617169860281648961723399777651743760337672432950500886566638922498351019851192788722922613414351980013043839384149994986164054231320222813783840706996065630233332601421861173117139181944005748796591626819494534123927180234549037795482529750860880911649801041949900233401502680600769356894666280803351889064421812349540890546286643594864759122716230986951899044695330727233625448778073334261621970934427185455153727831310921337528950540966373864532541346857761006191819834694015934170320296255361926872074326229907636427181069628951697007334892084085184367183385602502099002760505767949501487450216767758558783731571117831975616213165865802006278751933832640663596834426452685722238658387265028990538579486862594206452054639878359927213227629994059827645580791546520125920530508549668588339709021916924518853952447116905782124924456224778217221853506430357264180211357977406958820441552446731776719914812827606642863216686815636646223752836288170204819904438345915363370976771662676268987484875151455787106436667424326510311006565471890746324638747430391984508053705722809801993628380288880796639547103616036780355917779772699732226674294696201303138798049757282691914981513451490649329003016337226977449055413953788219175540136904750348328157321058480366334140498166605773546480080400103598082016337337435754234757447079968639869085113696647377309507032593824083014855259214630759516603320009398454622452044136088234950333439229139813785320009901626098888034271089857739919052400438192054811739235514603103456776328232760949780532127124755816907163381755695630394058342543388251563759448836054614661386189556092969141311395566006197216482224371497572918111787862686997378085399303110864543536524513712240908208213666298582959655638394084179823904960038338004772171225802756615260878500577558704286151485221452139517109545552197922453797387786360348435570163515744337642606951595547370681592874252856271912648440569346542894309285354460327454520589183903792723611784593311486757080999686179797890571602215950550167868292953029888283761765501785293716544339333778068702019956168927628642625187594658551926139015325472471420207137975779914110179029845434699807319657087382723951300340861643724256290173452640064279571082286230626545448391304292610863577846475027620649021045421994364281264628351119065669531725485467069010104052777735798196891617818873818889053527680839291875882556984946704785515104146565522521286277792729920582472640868166400145526133323690003838207820263505310176413598526392486205481764112945115321060651583915873701367033401940996973772751821061362437748560578195339726246477771894126824267873755675735335858488122957432997922565149081573335466095126238249774641963780986441152012937367082482234806964201835957122204640250072894189472270499356807924546315876480006492443110675632726725349204083513063175722893355031774522604333849538065009837882314256650801394549884748411814986853612342118191997284315151705126990781239545920304128107930514990062069093418467372393375760022563209022228366258392032548601043071620421185754941390245291483580712091630864213815652707913906510684211065182372597736784475359212883986933171969830684033614864034004683098922405064018177739876923675123604753165680138383405497082997510417707122329786501302546230218148710138638935983354385513879757883619165309552803038695730689055990023945696359771711934062007454600460598308993656972590530246955320716343376322898073283306655882391987532788875739656148172543297677937632343494639813549519036813331116963730701010491281166546302200718266578060693864621983646360155965261799935403276445308592608163942422425501769058046044711814398276658674231829180662807305521122136183176512834407359479394736210927894779320913503215374874385269632724567671707182157457378292794887696686077691950289099814052386067183914722988188465345415951658877013112322153569589875530811892841383784442790213000201983888557659729052521197387517684264050416211942975688912231584177871105589679500850037870928866888188558475066501441480580113296046905535612846039479737036994694648202185177967940664201886308808823674350311271704794313382221566545644442522454873833373207749117631230566866279954856553196533886472430579186479378570311560538154350329843190833850971286968759176582642779293525699598438131902781984358869281264224896458080114978472668373835239310571247339196653813978334093713839582350219616188243118111919202795566887016993585829016878530245627538948443349030529634854000159433016787444873939674981778837984098534706061438622808220301639610233584294625085155859330561764394668345739469748575895996953324995029909812692340014944564089659371381337296959377962678020339659051926498018966213725813035387668521307983892101509594502707323292777335204104651879560021125527085570850182879997966210602898488908588153008254065891227116368061498443244583242028244143928812537057799054475505168570252707633991259307785600945533841037626503181640338041867706986900719689259281036276695923864882855377420671841596010178284947764660489324292985810796025389340421190907422027849328734394723418792139879132701710472077112035455983708894436130738914802986839450322261986384175190698376209902567900551912428255890758146851540278655582829174480714723471896218075023997843325758258137608365743850236326820501520828621056761900240748942469157098255940664643163370356714830072872576543134816532037646444904071868336015105013259621311627266734537837231275330921490630604574099029946682938966395411546130588227459217581597884544915095427596913496375274677563897008043894394889992874418216248452540854106046755501655084615795932209929766640290648911761812782883394358640806098527790091166209415943088427271601678805740125789361655899592076517466497256045288600625621884690309513680724885971426728990601402214821417917815027119424215123345486343530545727763357241258316653151107897467181862174791294266759612888844449183189944243971822815697465369910482217041148052435788405203294470923649491986411813725596528370505695325650422822977249370121996316006050995571135259707283267715717547767847855717696189036602383510995978639149924209556034982809514234638118097411470277322032364089696280843713711646758795890151253344811180515551854351736871007876660985803335755100667172672026527927110904579572042917921242108650323993490491316276997146680444880753977145273375912928742305769303115487933869885479271717847213977423604485991186496596775990402006265391475577985823570205612689709080939294856520770673339260395600544251963916615935648348992816182067220093223061045483013741286776852610437561692860317550729792830643636191546486298640339215976529707048288988351108008919341144264628238219424447006143259900383610843538970287653807264739261692942031627338305993380503470047830414759215468082330762481211651908316297516431661635006726429199068077493856969495129789690856796802677399196964699656726840207590230787260035746413981105659556747347206469445744022458513339228356654023362288052336666481779756751409532633205242210341376993078991038872156204896697094339754600599986284782768253201490275248940055301138612170954698306104190073314763231497868393300411859139243960232514188799039278209882475084335521613208773085519808329170017714210069550646356379369708467921138332141342087322204608372954771847922894387266916181120126569995437923739496257249746936324984186136443139398195198398259353031359061979272609243921040003371142769769095783127708138871948819523835666573439153907389196413612185069776968452255292588111955191915549983927045318036321956648420299938062686266257717345618682810240465124762849769569430368694095387244189363842252508009629281155518262868486060442393716863353315079842116786022985685604754610324436536242309022077902797776431942132878555884396638364603384123387662040022050656502934382317908554160539455239470596725434851401509209457852478635203566574091400047749894114307642089397605206949218727735872842097013623035409413704843396737761092736081949288912561649362764450160628705803909110389006020691346172793477065417201113443565049698494405426728958351532106456968230655733608708557989402878077532375595319898665621863132615794392596726615169098014682416721180824435974798527994574242443875155585005971837171804947057233364764650827003780258786120821474336229336224627356067421528182316553597567936475161675613628935161556992415786448320464472073666735771161148973854815615492443255081499947776326911851167974022975025878378376734404502621516962383754402830933847800087812703687583062981128081511967457936822658388244573820826685716007582528616943958746276917837534685222634142637987996966761759977063142694040345099797447583600616624793230296135320674042308601953734302220201178631820929579484243269046749464837553709418087278075930807844340316900818798537453682159619094967876306200989248242819207563265824227807003825272588496266752605817475062605080729714188123310108393703206362205572917290775100379685263062099959056231032305043943653165129539399799996062672642243579299310196575062970352537351687589459265829292267682509706171923157884742275484016288923532301269397162158503385777830717946890472241076746340405695670064527139528452274702298226094978597879349434333165831927405035100019462294906059608454339315871711685464214444328109269668025622853398502083629595054870592429119640705535731369088999268060114223881881759901061546607640169366130185457023023080587231244227157483159225184153091400571744048172917612113634049136702147116761650200631894256231045406481480312142084731392071719815626240996997780392036406769455120797692233044454520201086204788943483030628897258812544283028890330560986183822524582520512282037237985060126189421612167228482414353180418526694458166841039417826764314628994197114367246139703743234297188105911755324774385741052705048552469734823614231178272701005236758923498917523198905766952668054781377777777851880806049493052843327595611635127053925683171549268466528383969594052154741073937595470868607923543184265051970787119445104216021272645985527485095495658573828831584239732135229519781878417200127908639436004263728847472210105890722425924708366293905256343331360395187057388803068436429475266649307146529273861650557612593904235208162460935357108020577200379442573091579639218189608267813473290274063343818877618151489587394919604090593143844991426458279348387398983081673788184924292609544214673061526394306746562436526235455204183612282240204560870110461883861907140993440367054228877217574176603280334942616650417644594833402899543074652286846486593625765416155888369859648288617556913011026609833551238547528383277097005030400402706878539919810964920540146764120370934167819890572641027504715872698058319857346311504123098678175111750710692211064038947044316439254564673391323641351334356295429018141034651838652447830693865702331231255061939712582889307793755880905786970838806359636483300597624757129263438050020958964969826403232274999398528754918960989638590567428447259309072503752487115945212966606481434587528694305756012756982208153570660458621666522316392598705316393503153452224443294779534124175052411175924065215935055371479408609195878775588349335989621239387388944108645708314752884670119796565043083714740157692918634195449364411529134727446222671121259648250295412017366424585838312086401131123982134832594634691577837071541434507283065259894291835608116440465044212142244285261178059133045375164953401183554019041567541146976079019628011954306815866480239585037763268648394089325701200587911455849670864467024509809343498633966484329310297300452880661623285247555365876186854030316522134039562742331539399690306002639871088459773554141240400199683187118409996986273723787603393926204123788998171894243007043006663394851400170989195376430339578534434729499806948836465176073987207377332851225566591191592237628921473284774346905587602496270890112518622685506772306585000709336420607831203155751457110725050142002542335263032799002080377257168443174046294557153932707325068807197988897871025134546582033106525099484951616959185756048234340974058914685502998947270456695021034154778920603794265642211728576110316153579990335113466471949761877842281381096622309170024873205329670603705201381257094126370984518496710504364867502652184203333282125402238803197838091186295785267874837944080105352747507025992791964463043037372252865033908356227224973633575485667104287631836367707932259535874804323255160141582051992889748006744765400364563748026932131999252664278190031934345429924063109870114428568725075389362088898548652503077794729218716065840039455395546247234764238338555342432319768190752964267217569871519849020317438881993002598691674998218897692600576815662692515034801756368065129300184583390688989549462245676380438187884906750885514747681174069295516852514167233950328562597400435261283476203482074349994289164218023275681528570913813200478397634144976315849642527814953328370124470286951953183820204951907622006399320469583891836483824746637051074700792300161384183553748558426541097274495562392830282159449827377720407780901942272113373475151874603751522991082982331323196213077929734289820959155024624269694510151079494453805579808272644695670334713347856480876802270831138579280357479773277707366340260398793870201918398408895330177283028096073534183816959047111926715137738761422449645240843449569987844345646522240935684217270827346718671486241407735292609320887492379508213636978106800526106849851712820173504594815648996096999073608358970468437514063959848095441867249558456635916048714343767899722804035676066797739630593263800201166958080819427120603144886103674761546658335870288637032543972384795492017564665751183112783420806699902886698221989618051876089639265239914027509507961418962849739838159178512070930518670126170481872697281440086334100886147364879355247107816883497740702387699861980881448915391175287488824253255008064400696787276193134135573421004522846545414380069350050279461232966165584198736522818760607910579816542111541951369814366147377802235379163927771770315100118454107906806911586105155941946213765518292185399023105782132576338894082876748563499762147596960951464994260772107197719879538750574185474127665987453989603755731266242390728488497907225910573427314965604674508445110962277174133213889715294877185876809020791634233913306757402710475466340906210494063334672241833621031678890366803310273266903221482093719354003759393897209318513010904179782426768321235674938806803839878351596500136933308654599992267668661382916533224905775751450008703464302844354217961640772611163626141282604653296129302454036855475220936586515467533434613244661429045193122912624954242909262105238379999956146174748311172032765850499496413546546523868791549140186965697361705654459835550512643905739116446910058204269310117354686410289196218169848943706999103005124275885231222956563354594877013156201272055189344586869994140410577828594302031098898323203810306928324035771709908025306201081104574327546509394643126908844467979343011801852002360360728667959597662438193867744191445994971706907270713205522785018471517440089900843076420855267330021397853615313693777539891636424150166290705349312375367073774390299139138631175064709013709196611422736493331578141617263225661963486069395541575975604453799509091876355631373934390951389084031276873491344958788172811270650220487074325139393356949149195146999062743092240500891783171960638700709811078751059296783015392821498781532169183967583807925914918017837892719458617195897523271544280051161061193472117229972390231215781115634113164597964790174450765012204937910134737783754136777579031945549169372262264134512080380699412949517347422459604189451527998179605860083940088581981677400404596996247723291369563806569642450969196784984552161049837628485772316927383885791659222177777869042400500305565395744814841770213986958144965050337810895264967172827541245069324057131495770152659026006222962388430703016875210031466172282103537180938984757182812189863317531426032224703302933041135500378920639011320857778388873981705011935933161497853332795307048576836917904153331568108074471051505323138560046938280336098995130786615941069573388721713179945572264823212395149423088330236787801003384788237981978366821646365633576762351047229632864420475137173493886353613474824503352546946907543176282000255106541262449160245859892125741338601440668675156786915115955715311613515454336187672836385570218640863751392563480390278381328169206680865840729551687208372598558988139829156337622631650666893532780468084632268172658253555041352202512795228534494839447831956204206169648228936281186017985746703412570582088283873115383922855554226325003878754866386557934338303034079706293402221173642914635472570383685926067185686267298253778676966040601172212938947670401188499792116577828919179415877652145176238729922049778917299937531750162675192579047690571762520991990474818736538327250950009985295622732509597162864859417258005227172051967660473750620548398583083881945448324733546998519908111239878983436570146527390934083147760796322235787745484088875105432250800939232834645015638723426500246520872888827374597543003666377904088584041017909148394560860953817046388740939143203280297153581627070626563654755342667733409721322359396733505219757418347291159026387988304881966381809866627435121060256205086150669808795047319672493373778934977978832478430946904459236369911437637404278452590744398710445876270576677321589615914874839639513205368373835289219504286172926333698179722214704113063114306991577889331789178054600712464811836883862128752055192507103293867568403272577686406846723243494081221385264519237951729351675773387420752457308425917253731418924909658907380100984358477874956474282657251005665802985517112735635344397951928106388051534957391100296952141545628009740072907965371657474699597153278272439953236188506553874343471829281856229649812000316859272154955144433482564603155676533761436995651321601387014444909067259495793214187501527740872988880729359555134521433201132885413109772315494836544161685351561382370923034259148760599430696821326853308571083337668826489136845258849759471740581616376902637027801534206187686704458662516286567311277537743633003002875056557533462469280090866541239580374378746174361013487513615959974622969235740577329539135187600177342733609862643299203724249996397224435010207007966591108010431649839626600632338211765794029140670116659605223535241465433801142155724242077474975470710798761979809625977726692545299402377089193318991748097759053870346091697798389890125417547407344357039925990307499844626213996052804403613667477006559631261119315211258456959392256578604967942466563208859143562236702964306678931286472140806205651789159656898790387838715657689020240953048985772494080420424438430373669333478735806954618821656402639097992930744482236828219964558714024620233932769762229836481154127523599794728210314303149840203340960053318905487623494617763246693425974000842211913590072894362274861404227202426874744679000659010554285522667715730620336601882341694035912861131750226127444514629241739411750229398732561779405484304623005925851250957499313393430090484166652250641816993417816240171962499359621529913420911849619267137392995712146262677320484512853219017606464998464022649529863026709286089564475672167330313510904448370162497530108472624846083685365930914307000708487644439709709662570053730541396652709122430924973287328706315755545671474205506265160678374928383034598442659964922875732299201415531249982555910616865815937666284296147091970552356126747073829168832493657158874350786842834738567696096306008514935168261997880988206403742982964180918392119244112813109268372425181089494950836349965482957616484110299038532302268275236416694434083128246226320258659620432882889563024889170802990886812048008855406913585594820857107617215215644802986574069445104310145344401119557860253603895535477273874218621881211077436331720032476929854592852098265929604094109758145521171090197809896543252639249503116774550321683024742197143737026474078201836430766065573613291987585017175671680831383189886415145814277668951307199535371483199005638794265516058512529071453473300012891764409304865002763227193476459514369044021756646561331935645548047370511294593203544018371482961441839214693556855857384460390998763031834323626249703879558751146800064663885831716557009804535819788335457328431606798902649894670736323406278135939987566825631252551627962478022862638006640964364110549771562072860657551181229653141671605199701490443709438635635286570854006866097283940567903626780572988303847197798449343030786983772497649746974776684766893838645878824455378695179876658218307141085726783445448155051281428819735386271177253730345811885512105190534631854289321603729799489908753763454536843233940240741719303209168843759774255244729750330720366622326668545385107368365117423158960847467838085457590417821027929424842118225825012912663262312180494661273264987140302228762905133685136211718320092749307536672663737551278752849710471302169063571864438130845805789056273344743860812272862215548700788805275002965623034522880180858364140513893046063358786687679459477535041167554678651656193791624493452092417938411128349743531434987956260285466645000662986600780117392636638835061512715134689088146232476610047562040483725858468960132775403729024821732841374926192566455096173129652591914554470682337336825233766417039406566798704747536937495858350099148182197177584368362985183631031118893754002176983119591142127801724014518924111876157031565609257449401766813682143414114815986415518472761115320942168972432320026050257836319562625930831890546370340944971423956202281310206691070506945638003656090317725033456175331721621789569573446684956991987089519236912563013729137556250561909861655190812399299109985954463866436803414539759777536107103344485034422782815321420360884469652681130094939955865435100809281711509786599950165795211214382432674383420275640623795780538824414167692671112185408564677372416040211832085828667090303574586465293190872865024664887764786829900665662700060030108043764998326746657153846441147513418669547463662495856906516612907799153617695573276106987012495448277295241082590825560600082219828533053590260523930110434414672325377140795996093874731910831391775820670433340437385206173635744213866504086242937344638596799350913932713209120687437557461656453919983047645663152255587029877619346530707032055316894708211434562858058216321415625988613329507773060727207120165518200928086460156542107505655716817255176439112302430353620332800137927173934511845416292262008441670993195454471421680499196936823017485587303172551823940810644588599011198922393621864574446759321955122735503964951649459241604479086696949474546161382614356881624493372349008012399795917935256826225352341778047793925866356218933048807873560394288524872217503863062387315848735239272556280333963350212852203491157180024133251600901154270951848248103455216024552742453680015284113469702812340017259694303093295557350769405875132300195536191869817743160892219240076117624168355378923508426860461131056344191050083484917585360278478286576315484706795811868585720177183316332295223638766375276250114632408215348152872973363483606226999257959719930600953602434715161097937125294834680176430164704660103176032245101294202361630394800753659274070630650401417486115706077382440924645979518819185662479047943499401348982396850551887279048089914300935961402467354667793717936893411900861747660021954045908398631830417637708203266070958892183707020864197577107149880777191915026571926816250240919797645660577247805376452658454319383811314345392950072169422329928152852360125101876684778393957611618024297829212501296088275541030634799413140161627964155414483497448392225809139792873129122821661773103990087346640834448841563094514392552970384976893377015858131171955926823884149159529783008808040433647107179434573231740015993754749506758585280985512609708075845631989003174841684816884571137283811889515465182867132197364170745675460176555775337614380724374779824703328256496789196087659814314626434056887421975839033388966210463553333024660104150341522168995658475420425397995758525920628772136530262144020430857017883475741611941660550905425368784170265519670316466544979405604320958084951037968915533659809764170291870291458630729303967426662418418097250894942639955533964985057253569983642148230362540808255821515456003890853069108180169444942137768933005210856962012709082920493963320197427273678355381551882024755014779993816997362991778175466577180416343541588449166574221836158502618275809989508799838376800005119592310384455636241894134937513577876555469653234322943019553394304859094037158166081129151140856373463239873713499921280640540920639598082536260387908010635392796773291279878011370056128858347619204685728860077043153924498822610359584530525745935380812973287787371011973949226540608475374924379835658495791219457627384256794177584722794958398604636849563446062677188435060378148851075793741878745188230109886991646202575191036011502966280970847027725477642320794854696090474848763657338812300500868628152430869978186125020029558754532137628967303335333283086368086796356730967438072942645340637962761735197603316673386279675519282166797341657294021533016992538396374994893501171846348564303559467221062140688189684087737739130613511763823041167784822224541922758993235423558674245012683055431483557514897271991242546412409871781251378373887454117423867300423875155233341596243075210373797199369040491801335699471679964904374386801889448489336027870230921113618653957847312171313752419415813344591951422045355689772464535613300807357909143195592467181797267984417819195920558466329804422794044362819741836791500712685981523869152784541635673421458183543213877073990454999405844509451347618864867928143540640047965998666852173783880518179746008403236000178061511756708779185372210041918308460731787305841587085507871826659963977872788442795063593510433805749404792610279247868483560518233187865684490065272596683175861463328886814489466725014498708947684079087772415177112085054962660340511714053661789483676583625313649080084968963153395638728875741195036113333041127750253988427906086113785735081876082233516842838117873504461943757526772024643822005419509136778286784286534590250987164576164646962493397771971639745557250729512007583854621920238842067639473631621756212507805342351209272227138620696332359753073377920461018182120766313400886492532579471614831558235994784992873501407314873047271784933734859192037160996895018496963611577840187274993273066739024538152524582438894996747559817972135515489678395456903427859350986176015208166011049003622121820918219644034759961209968367078948817403424941441022124049169879678325901254623144086208965643416280624406632869986112182664996593702964452895638331634877249948885284043313405184491673635284679519247374196199970164138230656986308215639506945805047155630984735700685385324596054467000640562314750758889911065969049482251859834885634180566650445134786630289042685205012447979096934458432060733388921089629499591873290588747961323002894940602387503651705825114864403870180387287156617390678632222329787302907108916296594389331346058940064802059500400174536701149089367543993913284962998352995689581090240672414496824621812083029133462471331941855312637694760052343679326276021950046549490613404184883076783113807516939817833522074281964923119583193062402019764024658659373454897699629268667289453512229998704377137519901188885861639129135331220315518486905480483440850959669734489563854887689712104028079094693695078255095911037957235980263133359594117139294211556152987148190403081784531589627572029895876905285214827986359710215519542352130871501667604028616045262907107032525308698846326825020239135247775933779375188460017472372396550559782029610658862801202116580819337848217983453172706698148813519561641529801978407164567586683084638034872059546742266747007657666286178416814932365861336594673367440322510756014384348503601598855476279951684776420530197585376219069211241669573622856244009437061725045038778160250297742412882113939008328349099108762441770050056707329592672181323886241916061560444198924883591003895760973763007169399875110399828003735976932245277772967596675774633291062071508934328052608785123068760981860697463951974889431029257521901349786582504675771155062480589806065807693558111934760374384748860679074179191533157595284597879877196555760803028413270093319218167245658961232667064456008571324380953989175620600780439588741550017121553421328206064762875649765912505826924197122042699650346562726316622157690301350859508958253033211860052992681604572673450750275374039352532437915499800815582823497792985410265227984541566991512407702739171289123847687996614083665970168582227029208855292201222601025013025499839581775992421912582335994539657383328651972242232628555715006581148607228594388325462584223155879832139706181147980876588326795434471752154794002070138203150929976807169951301455947488497945991389332923784785825065616440530447897940721362988941622408792662061397056042865002698319874657485954052921506284535051445943593279112529986559272303797052598741577902734819567776483476712876057045161598335537714601351970095569062134814497406981689195159437623289362603017294084170758268956125365991910757986675834445579938986680996910530519324012837279655869581128972549869150062632851702047296906832654242668810244257394893531927815635687507620743337618049243222619973738418368657921114635547768021832754077088610156870275105418496364506882170830740279148391755354516732388311370048901333370698477100967520949258421373673612275526478078766340877439006506981396308416218828528453326970665813117112597760028489840747237823363987007773756508727042572997191206505161886266009855264950461369586565900421942636815582994568014017721615724765381521699847571598622675148727440181973122335397845936499338640718333922497621518180905058663340304034433670129356471122195043012162879197272293302951092208360744387382753199630597102936619741711502044909795439008949812637749351822414456750688122169252554790239633435193253519207620574406932858681400806743834176026117693714615379701383229153319155516445131707431172008933544518944285243642351754049002162687061689851458341143448127741803472874403671670865423064226396722450945416650479340025953631519899457756638043938600766823128323527683353851598541730917756709796197698129081549885292773770590070776368404418634072682826082005059065781018894348218924710651749932247596185064198510481804037252643484320885811576614515091797295534526370362372840127830695574519427796854123273584276367776118306118334353746622057759035305852111064806033005869607036144537490506751721756624250828887904955802562301738898545010928476342953483528741528424659849822139478461513501384597260468792374344122543237495974258909125470199223655257045795956569046206358642830824824281807720252811393052809704631222543749944584943616389486790487489832470555808764558101688445255112686710212568468982752494855755883393053823334660082687832357778417455575610667369217124197539062241096371394072341662135017540470744151435377430002302765851969855385701978526364498917060973962561531802618791504510781111150711806601335018970001380405349960809172966476949026831324148465212660643813813587587979598626151517084947339881210048983370853001701666742700350936040240477190339284502937088076836586772630438915448354989773206488856690735591896356080130419333606029959924551480004767558201777841616191327548321975805337165284902583549344157753619179089633527827552784598286791775180316675093811362833808985444839604428416843024368212597995355593169596540151108985200222614172018140956723376354669180575001662074435399844164198763327472474795228712656925547648688235000396140480850782006819040369431977212771218983995488690188949955237346075454078949991937047804553647912105542725566110766250962934586762546936366297835413230196249487561344621724872484226691149749310449603865664693090095347977393050261582713614075490212223944477643326129129589302034023159674759150842454303359671395232610507329334215444209094310245781412906421322981968900551974053808516911885760955118497177812860509924708448147453989730506687683097792966790333910949103328109762614851717057390541391458970537377214845149671959248035032108664610758224334122800923170692962940883101002649790666029136296611249980304772756851151898435706938896962872226210290092421516132131765474924455560764752349389365858171298249656214829882555117113107773165956396623013927498461944345431426773745260494543718646063771107512083199234594189951343781838787135894196289028643571205925608287359074291347835465750132411772167971450521211460671832869270146669093355334860504688502259024853680133155848044876240226119732860862792575125969025766497044311970610419951643292405854728063649139645151856127006424616287148338171506344530523875695370040168766225407364487948459561255551406453738353753747492636255648243784351386276603105594969510313355538426136538338414316434694132376962466675406431039329664256792488234897227503961414983021884785516513708287491240434721352429914108388070050146192604462759456897605960665525363283082616759129053387467536441639551129711370972496653858095507049438948500596616656108455645157368382676728690175000552029974620596625898068372415070741489946772821879802261693653280494686001219952705882082975840868010992323708538414151104914673287285416442427238128491048244211683851749845699214059377325987933013021624871605000607946001813167978148863467479438100968423830014689483224725119412658048662226104897488634393201488379612199897710287098036483110715228882889726326020069657127194327652630549810842277772815259138772827173858579345070884342828317657030269119038088905091343019926860536790370756913816029456526049037705546225429695031617443029190911197634027404784478248870218825332933471288487727635287210729476878931466037428302546667348130315570209523275871538950217494605805577014299505617563686095560173188918428006926400428740069127249174309264848907934180483477679032626980180200204162864821142571476973863615547040470442728369661750518590502627273767618086557568118260611745861140341251891348719885687256372485516521312113147883177506032371934345047087949745104051092140885838401215007710424166374328540499944941630887497425235620092521361275856626629322270949440973313553139217244779367238326276246878784499723415030585319305787250187078326536713170943474289688820182905159604307709950151434677120827115843601840673332628551912852179078361139599468031504227181820317973240308083223494835380639302018283045122119719780202383947865574509950134433667325904934783388549305568960011468539465220561018029268909462037622838652656269377304376952851691379004555048366907541306125253064127370345112812581641792426469802693622047458001192715298079485050661359677768491822383016873026892348899976484181286706118548839036759194463085432196737553315081909770264338777067073466415942847670481985040322829728372977902821577859775907835108136963175437136465240576461807469551422983078513470223636031494462816927747805449417650356213056578848268333907630411483384737534690334559392560999281478679443563895448421552055147990705997287977940342529444177431242202348793926531071228001325475391460415078356143237636795586031310104382435033400411684053426670791191841158374440604342600075572026372184125102347760856913849789882926896605378659633759396253405904414292973073852870671471773712862524757613637115640089235122819311264419579099876510307568489592552393666347366261864478288583719293596962145760847000641329560636638871261543447233823205151279088563201763710678423802158508791234763082171371803022658896907655340112066519435851737314407405073738374854604659091541310170602038652825352211725087440901252059452807932953676106069104197776245200235646513847143145351357711606121040462855764078930698686357182060873658643547932324477892296474687736979171403416784947224221858352539686473374273434864219379329945130894264759471730561883477668484491444764187956509814857081481808710639078399833684696674816805990330038417191174206619253586603536649425410405615728459408258515116925287842232072775401878139834649300609362087680488625018467746193345931009061039956048945388939798660353359104249711250508111181992435291744374167167798601397482393485552554158864092370166170371311765781823373792729927412207748900682835738685885195521774211919865956277712960199504050638871883693082565743752176432592473999319470720706417776756978159744194910134051314093300237859772696833627686515752898807587580092673844844657834506587224314536748926789913854404385163929289909835290675162632646999264788229463968258285738058328866963759697514722760161633275037570704240249886855481256881775064380802412295435187522048817956213390554867726154861929734032730911495060313741580877615895336772117405492519820737174765755910226280122498098782734865401139300801877917201832679996881995491485590641809241592987356075795022246027870422510425802726075298620874115938470082239377373473327024223165269902657010288006491621349982298340490687092507481300676538671883137935504845027975413940588480664159352194281040777346410562910375689508882109748669995175051129511568250628104227032426833830941335271292220128841315077359724046608657198922491453680306177195038723759681788131167580616287146734428946288452976719912377600383763971602127531426167594645668231011014060974041186866650909048216785559753999981256989035744624210678321106352596109750800224386240597018233414760517720112742120087193511495945176552151806454383436057273477562519644742064413146689404053461538828894820366528691356968840614716778277283984761577140846620640148102927152327943929808814630552861680826179314237099633139299595827172331165167120598111375138965255549084904080647386640843048523706743275758362628866911418268638399124229639258876667669989239493584300344626082474173282960707495477364842766954668105683669839723644392138127536339084216143025803832699781117062965094531850289956297286063145648143300730866924737812166540440447444607760477945282000391953734202337561069422768406514388391324252707302535229092784117962472021886530178861464087866158468466937305719048677819006337403282694229907697314614269915653154786946866494083433353314874715766483480823717038579930031342382682586729032597608362656664365520481141174337620094836451272013849636294234840738293461705142221256994090991172937595978728508056166756830182837284416112313546434154525583996441986110149605017819598616325840577247846884543487958757847970513957855847098184850980820777423427006041836575467997885921433842645530532564946775844087626944081697303914704725997354158864586496527444342601054886865831226350031179011219146390792146336458544208143462119237803654120984938417990758075733813003526652033217943136372041710268826924091929309018105375158340681055721915342901233882346546485928933000854533915733886177041640866612281954429648644717245871366403916226665812991020142335938235522117392108006978359346246509408626525704939179599663551374902988668220780338501869804124583891748246747536520628513813188979050477947195230285302533476400290643232381362154945715591535397523322692995978739823428537304533345411848651528871709681734110548064199347356850320090309934431407533121360071498344854959201597583169185694947807937780665309559543470624199079399697090499835149824337402631607165334592435337898080662932203464868661253898307431538027603461759680134160462816064231108853055121293884505139478377777091795878722984896315726221128776593280012160735220781132288056844730997375326554949292620449374499000455975408434480359638949407181784325068226386809822757682491658160233374104568633334589444501534950011281264037883502319331057862370497198196399267646326164359576015569858386115978061963111402075814699608649425670679082238417220488032439634204837726368742839852824800842922214044299126861089620061337622030013918502985911952612782742769401553884141454729926491000480475173119368301939082571382359291663563069231888902754709642007346618848583356069355123788342920265115052824824673568435674256898434683474249928468146694114134281860600815194492468088946129874756398966914703759794911117946227090663051097562293741623008495970316078001505350796006488467021379130680418395257714377888733437147091547824896329034118990079974836938125520195970381910594536452184649989023651405097793743009769590776921273448018135147360089730437291283371527434156444699424483897596747251818747242570495018603705350318832452649817527703954391914475347410727149645946502234990529994461775411405143078387651474198991513702008542934326675081978725119860590331324402800036201165737014465036738715314298676223867738998890515877945174484493499205948456562835982456692341563640163851203051674726390123331900601063492218220217786456597245821261110410087094999958081943714941373303020763654041396011902292369664616197129296222039977121841143365448731165771386029149811130964901524216772695113651942432102196072645076603964983536630558654261697413059331231887137132574815762966253272332082541800973992034639501313744569252780892084201946339810450308182260297628417357925747709821622931886599036902778615545219440056818434361370826172355414311118229638829421651885752526359921252306667527982655030735610100120883005079153181692929194323746084330228538241262838439655080026296679815578684783922556678149183293792866374203686601998279497963955524830514804785441724360797249252372017494884001903093907384703937463426885184145704181601597956991654749640068875518862107405915777629073792391821743627149449704997465648498051849965560553896248438467845540471162486606734228097963512360357257482240616706113958631126719473838974114413865905561957374559118953879953039513187803988146741951396630811561585273771923970704876950132185422597090095403889842133593694638012132261167107953315048146157520676281343922200813057278982692905241775855057086498253322174967219691749540956200138767228770137462971081826854489478905250802151553597540387827754472964043283442172504238472765713916961640508778719955759097732007867176223127227687207791004527478568794981104382192226007255007797275728842495721803352834368787507845992496347393144635858226025501874031194438614207482543749749373221396570980561476296372470489629883225936676139075723759248878483750282206376488748297182342444141287350636408482141303260828297554910159108022199211713233165706837817171750338813620464058406847054796772789970501741921206555473643303787740685070911183290364692496087186404681126020055909406442900953848119126860150496901418642690195572244006913744013017463381404383790485498024402620584402206714709866290053774749885452625296483974983412029340702247744232306231509022572586450824889113560094532299952510183463947328425566025805872310898488797169111110063201720706176960650206095331400729030429684095765579863829575309579130687348284384319208280494852993933080649522857064628015262550745752556356142660450290638715338421009077744209608602804749650482037838631006937184575277771229879050436015348133747071978949991174806039020952040351880152835270368019281685489938570987339361846622385294217890901341466891408952967156363505762282552508418985035442711498597487297256442265130688237206566133233208376933263599635804978059875217221732491731947151984613831925149133698193343439342778803226902538895200088797679287896247819324969224590572231585454580869508806380368660850354662966586449633088359132840728424572972265629083894689960126888830675427525195312654540563216419552851698333261224697880112569537548438016761039688179572461410811972826776158393641737699834530672968313924194353946050602896585807295014805598067038961658452494125521103272687328580588739514148221346582884451624568622203671298687079219921685743910074394311896866052591246913352620254303257085060602569147580587921013787275097496908316559275995354388485947162213749174444169835568264661734795043318163952926400731456293774127294828523298102846311840615832975518610868807731141149367881430366014245568324053254166600276466694193201503435312845887406546116784365358922938717427081436854965247444968853071019001209241625799511230218094663087149813347881112728883849905917930346795500509001868171383286967687311351196278376491221537907973778785910444874645391664714544337406130530449486304081659268015664400778658443221797871731079953170117448050361571798282890063765674983086119309987858229848079311185421974205534386098630478373987983081958987490812823984492844950385942451590948513985410879190876643050048910549698176571190488203058127525871965962247205282406321198781841266914481410460498777646967841927995658959427689396322832447646820942287809262956961505031497678128174208019920080763491471380318588360464488074670962089559753742624335388720434329101778417238081443840194031773601089598010006274987182239453146474268632314578734565833251580279083727065029095433817853754101030135070051641356653778636685177706883359452122765815370934474452849758701510347716864194840088140526094564477795004486858252177443290576772310367436894954770947642431087521898105217939887380570484564313613672504061107481887869933625312920534895704828392999986039170444725243707770010603658367097800724862866540552234659251614102874489510218698053991852152932307302979847545912274665500578369385131576165720638478561350046245714237147010331596674036125580354728950661183789842442844955069431640778567033780738825744041676256255218991242657124467479645719931776224526142281412336418355821777670056725335578609096200738837862634844082652963740474889991946558122946935266783142198971990971694519310804225124869040084015338718200910801520546787612512766116478579149419523015669358660552817817039675873346065989032082555441836915930710034849708681365945238341596861614874225827046869371683845480189562475246041882793297968026133682081708361495945714721318508870075057832540061205070947326096373534157486637202592742673864471435220851868663384802141228118861536620217227091135611815046464471107138417776524025262585814821977959895122253057230137634726267089405708203924100920878954265088528168947906541199685185938241269790552671607957387669462482616929712552733927507418076655048598229331593082628773838269031045032583144686252428896896768113979417198492194392162184156980248570899008957311528934544683621115709531930579484536235345060314936523984882306381775483944509545737657978645948045256887523030005942310766819194701096437385243846950491057373342672616855833004302667807986094226463508507104230743220444881318104650902681543436124154832714326798921050279667701891709810747951327668316459258686165514323018589103593605624237917995849093072842598758094906971409729147493909525156247251048541703908611664735128988427879678326606070295541464381872135712123312332273060327722913301417303869800007877267691888716898073541611055541671023707871831587657893977597585628409023472552129276563255371231384676454011211804903658514183245314993021123622660523018195487975071600432176578599267147564445225886841961108203750176600670091026864759659322488946395523296966452110926368738458796796088885550364252208216589535366910778303280685628223893500037045516865983917705940113995126221609972331346986206694002924404166628899700113826610489744745593977350054796182766093947237023988619520690019652800160056487326589893423644263587259935757452292016856152405175738296939207167851170965241927193830146455907000705182954461672937339708374590625790584966386762006605386052631910613152685712589795775197108417705303611040814673047169451041404492966735243118622541045016494388290053992149258313473082352443110710149122299879411819688601328656198745550918178009350402551299171146905195633066581660491394717430299452036230028050797560404326829689217826308050813317283952879847758968859045402660385710885000475775596854311305310245436932736608379436081018255273955922624183558049239889371368326305992731927823992463213893501240907096383446534260787052435909134366097762212446237789760233956200275389262351916811055959357699726630250777879133135091495143397127598072654488442004265456562895143564781825156452541060666429702470258386240496937888419455177336425566149453076444580780776395389936576200843192158746856514224198337965682020986189850145995213749537252659818771077295571983065933875508355161141357071078347809817350128030297000074494586345201365280505407260000906240569377588819077873866577983356803172555833163167800686292316836335775184172133312379355832334835872085388901072286341797531041322985538379768987816962131584307941569674046523438192954287723595722289724563885268249210946647697689755624979428161768870246166109651019715593727873104781015930287459118449891650418574123588938262506601917101948826578238312352560291517937784545687589555215866701310563176352079478384894908626003942957682198117821313558089618858039208754863439143071373991965555467477420601305580350170970596234950876454679282978391803323905500598452179959241383198993275965793134591585032257503198249189045018535041185182750236075693186869402045391278678491631603787855882937941736794569012265203763778899907045587040205800875899364435559176008334576150720426600709406139896127448396290727212070414776568461995690818046430410026105448939040486935698338731582696037914631125649537341211211509003093417258513885349624966500574978302643614094921758159664628902413343801309503806025882010372811773046438679060590965458558154050822360289127390215205798687178739254678026544038163210376060208067659466821506927079851490542698246684507103706694753765448054433908777711359826869656568519086830477026196162273316410554191364960958685620211675479136746186871450676798635737267766516380448768956662798279436068567995788616221350030011425935160916910358007097153685922088440611984851792606202836836570508769985193003600241527556838068465291532847372074602010379399382193825979699375407792325412004044022886820153396095805571010586615541784053154035038681892016407015139721575198664234690697715168000993934310500194794085581507991830758048848999157624185587417454220345361422569262420058762429465913578107282868118788489966387365956198178477453694344498801689845633232372764519385822203555726213125024109834605360432970324932836291335287807398677148731101921203127418530819358054471370659856577063371649077981360559090751394323361362081472918007759739143653885526731935516481423915810680326076117218309697633449232970124256415471780387067018978919156628096051055320994431152438173644595401070609292343735304331026604328020296769696169651995169298460108896060417808347941508553931983610728758676773720695151234985326784484931427718139306230130441939423498321477914416517226725843394696500234591697740071674034612085349552842848331535999134512595338775464154885963144620347484061903197357451338114452061557002813584180864560297247185129081686569252488448828872225880637990895478831653140213938929647925607141314590241086872916714979060430701661879756840051346794493452869839730240970039446592149945978066372526798258020714973868667260465950977152718086234882500488192565990871878283953112009868729704566432996716973805977901877234261324902282056338326200733873022580328961790990035092449081365425564841287247929698529111720956933611046883607130572401222376122492388042070566857125567632154595931367392279953688524738957395667381925310090697346388391337650437066850393777318467225697284105849012625381113196435135936418466262870082994419043539702021175456207652178236185518144415023745823214043928558651223627299690917958237921616925997922735073173773427908867820043473009129397139010078310702355484429058555818870239753160657959673224797913956481997387817716580615094177688966630372620016266691303258537477754596315051369185738614013253845213610780532662539483913965125503214085601229428678616416784587456489486530454302186326503539517750138076948224328741075811235594203850032397499032749671232864908323468102297592922927029022660939646588079382036227495336436038201435661424572794701013033614028867891040576650980012560669081430415716375221705365978248612626841503842279764875181209229363000641937239118706188812946314456866908299464299259947581576048740357156335105980141167248385332428501869996807287063673801461846722856832730465195374222095686630450967780528954115394200871864290173640536810253864109622745901893441794136091016420049604439260212581803769527495281165548232633365563919129739494666839991095090739994956281581417731374959630554172832117867373916622608483466162075325608459082623350048670883633087814219817637868490374673141229030062410084675493986381895878315426401775223286857052956441387191413236996215790047490046897192816247861265404010504666818889879024663651885649787468102462135693040455882985000468816602847450152905620256473176370965565978771540249617827408318226640034892432376848961099416968053497652587054983287501803187625355950843954478504752702532118695646929342631898971788463838282292802657509249740039435644648692317938807242019310643177283580138967371348231396131728896265148596593724738085507517581699570820473169172467856850302002473201843173065092646642225772485649760205486976110865039174352449528186246479523098434412435233179748706573706450127583137886109039208141823201342492069252814690067783289641371891493787323801908892530178797420266891753096406170468061660154955440684153120795181618957069755621268645908528688459972887048703490034671420477916411329549529016693113796289484196613114786581256470029018546342114492076148521634973592566457539744439366651939532747327474453360363764567929631422481008241311780630976904504405979820076275064700703539026191972135212805374198467472625221513758080986516885985555051534050554032285818808628650621512538812893200055694567383220765969743906409536396303003888648851949386593375691348122641074376348931014298306103752961300432165413168581236554974605498349735936928809925931824739348520711313055017459823924294290588069265445792391987522004785105342186032261773211471867357014842905419265673644143689555822587493606044403218072305394700052752204870794719512929180453014252965983847117098824058193559756213450779243235498109257869386544348174046288521460643884632313615065332557992286460790494587212646584953241036310014587774338193361931601492337764312623534241532548159994578222918817406328139176867946947662261437224889803826170633944243500973985128554506256408551310539797928160547024286997827851241806806921443985947514748484914404334882106172215293869427168219157680477648684925556833372454574068491780188545406253324416959825273757639332649520914639457444095384613732498037311702997649921049498581679875367613094862197867531727767287808013371273643360284381833803939369280838462525572634431452728828673827173213629771750489210915999694261789230111377340927679705720477389768939257175854435654703334079522302621500058631838624982272388743457454268138446113472113920915318019810400677376698274496190220305035862822540669917805756357482329174738595881826553088018571115992772747164656308823626564005465685950695731338887871829153831409530063821377066752130951872195630392224064006118673547701556572054144201291353772631164552657610873769188882006443655021407010935877270563216332388873715478932098094475371661670444518804782539227504337125970330838761125708167010595725049333679976411649003632391039769751228048735954846976545960322939703568144920046327886699750542705636962531086256673969376017206910013589744361074512520600230770526829263763482528594481908804082091453172358507836630519518072807168388772099123679288158189495903355045278401709834690148209638492298145284338544816136540764632020517450277032258298472543148541047338590984509272387408158022804300105305652843730465741379060600367032729098363917976063555486790800831579603559484699273919896620001586307219653739316049079662089067029835155691465183578122582799486347714172693886065565735505949813699043233890389572735716343034989261323103380396921647524469100847670440942509741922928001337388656281949141227037440388316953538208035596271168067605119604711050377134008408647840707322362141061741183366792689753651131745631987656751666157841216800213888511134958793764635214249903684360208787220385962944149758226770691085922097225144648677037065930784253373756788051079030189615513940544888914282919231607478965089331173634612789396545677592240720389576053654515822439064633941608479456621235607391234642518481881789922492692999095146621221052831677218428768883800519709808100718943207274586048516342391255059996608197512346417721918958815895148758238877322846559452577390368260465222521329862828047458295136576542452336452595453712404354059879677309709170653313700744411451803161376415424881093538111060066880863814184577115528509873803332269497112371207876250114832313498839105710720681172110325361386428710775107497704093160996720151416059284302660766494768637509260024975896422024707887623706474532714590560288223233152523486665500289583001112710639695344205402952512038865698953870213287219002099685398340304852363329578812403395136552140465555737762894213040757632202235166891942348607101104367114850631794797767291667646224620512662430926492148002614184509692261636351405768427716174786672488220200329037926732590460403406862493341208135300370712900245190982098154734981120132388223787189138194430800603922337558421216132825011762301186282853935639323791789914203918279104836706875946230339178320139888212760022603377075716676600225371243593149406140923694472323157669478117044592599666301625592082464299025148258309958106343372034897326037805731596638456176865196490856324012079782112174406932857148149657879846901942104333268973862133377149774166230632465769892217006944420119067744103187962878596489836509324475272797739552201156237434202710525693925977635765394266283684832772235370745725068614199595733105855238485666736787863638745552444074932695396667055953348186316452048297802842317499591332596703701275770754966789230777594104683785472583432662318348187329166774962148874937446682649296702837617961307177048573944013897196752048433859790382146394324393165823385162186897002036287217716810852175569293009993771913131328554896173575716206159328630940500980909208592461125174376067559495317421772965069364835780598087311451055979396253136642286851561852979293213935479906480439121132790787453756752169859070146047850138363737376327929293378816368700637223663762449473226942650713935447534107885373430890044225748356472457968288902190236194396680792421014293450774540168198281653354422657356834168484719476905772618377528912662810508450623008092087664020383856294930681122379530483369201000382465348360746602296435769624284002406452078689084618030890740825491162332300970910824327101592867424424895894229053179020215721159464473234208260505181147548962627763392090193418261938179130952628007727993139357535194029079125084652002568025621077544366959081830847300205008792184506322781903077075026654887442902146173652990662378579859092604419482324591633543303828627205798866864931962695422485313600184371580662486710682062382145565877454786425262030851204021525855638765453517211993804552752566093458434108974225943068770698217883145711803341241930687491988512922310992356439835291918928990042909345585686312308613417072183374416097645776274628739604067222571927376740282831431768937698724411942852399035054378544580723882521886932667205493330074400068890107248554745085259981063555895467329830851576863297673515604660284833314688381061835467466254659093710471123928257239171097394950692091041621284803214800810376001063755749259425282820397450892325224911904388710293155841025973599194913934818173048058482349899122184156515191876040441112960759208113244719683431409252128019558578117357812221916207112273768056229145654889952609010638081887463973386558941901495999495707906781567384957593471550100876630184818641798183040934949678888691211754416622129586337313683567175546359771161928147283230755277698898455735375960972934922100494822136999863972404411193061477528112295850454244560821667234043026699194028980835707155293202285903197099384326159400328999791562112228424642379513910290348439246737591874739552324539464554220898240834188361706044628019869599826920710957816498385211617497428718665320792914192607908231438169063737296724026034377004082257658989396153821999124226729262600651817276268589616671186207715994183709524727362762324926913620846787197322815821824717111744508448799575886717615341479832971750860350974134992625843864707479509874497545838673819557106557523277330235470188397395632162095286114840352727415312953116104350005424599899436657146805875254782963004658491457288691877250454720317843073283080342900062451262849224949400873333293116443059030354841359279440046184039065346089056575457109770139205666140213497800359423101130418967227222757389057720394812429557769136114394201020021855959265369885864702462729974487583735536334195533820994183965418625551479470423363528293654480170828554053526341856152163941451092657917108057043657589656349441323423267180275871015302673100520893222846250901230090970861761490500168888746444405545835508190450026670348659054977869605257605021175605773565623614056829165249499475811504809075058481599401109842764770753751930602138209057997251180554228855525227831540681378608227033172740296706760720730688382074243435904400386145022831564904078393191649432160697093882303951184910152490251594083515702366497866805193515231041991203586480148288431335855044713502930484751768248284622810270806656338673748205444176044580121111147008835892454899117353189449222968092131740446378792711301898381327699527960354887936556910643053606941058125367415319757984096028653690112834375332846844733606951459615512966365987059365104200671847044555994244682232301601032037279318386294651685283403370833181697705112418486347090586351847564988653889781051777331674945107213015694952482051729145337051880874677074045137356520315695313900983219423451142296838966362009084946773955566883983373247530764824859575044977392857127442417265121718994027385568427578728686944579818199159645167940661098314255117814484587389694098026989895563920128499010778686294595697770325947212986706841531064379046439662709491847463827266029083430281139544861245445605135050330338778679980116696855023954888459816259552836679650652757300798580513150346068091557535245918964085828191999995151943428705450971992993938379693226126599024284253498554056271814125556508142982074807709705532716799685395174516376639073356358535822428759645441877862412339141529902252222153238195382995790393456625718868282347797416299408804902792391086712775106694054979802373897404017611206726211826470702034433837310371017300945906860662489531405272209569883741000741307541446909863480878277677022083118769301896495580082906370908808348000214109971413012621016059612702845748176582861153494747699134210661658154382417185223211071854758476251968143187396760743156928816046718958832484510859361869109813433336126916866218899350391226592874404203443265692369353662500020988535240716291607752159766841722875080464150963198528234902415286159486577270012925233167841569712283343763275719046325221843805665334682642394698931999495416132761122291069376621331098318185455762769031427230715806877150054900275484848272403858077829485723802361697559655269139120183400570534115798291622149790649742302321780931329570381643011978552548941143834126877731480379344265268382146950413861315818489205713195869478184073715296531797200745453083371729591006251746419428697471208245145181069923225987672433508626142705430306683705192510946982573714040933276366747569949490213509209948486085040614780108263652292079843354684283162341924610530606863012300138478684049185863461607471406753006821643007676825847856444124182488265798251123654971410492068432097711978818212784890377523076202626296280942157732166121290869024841787383220831196965885140184030235638415970002019095936565551336848649406814571512710307157171693863639414808632304333359517229058556615809908407424177350117769973358196607672399300629097254105390666595856839353043555397314501650869219757906315173681006906094441091604262409234507583595245037588266114057095451513824243093804444853898772094899288549047467837901107251500400462668984672721758936026461939368549867257086676312784958060608948797491811828276540463688909187865976593504353624900310560064273234472080974852786729273817667918723404138901373266665337546047669658593463892366020192306828853153089971962886360788765158165041558034046451327668734602748468793936348269249218339411291683585705934440454270270364062166754839487036014755716068626019751816756741334854340475188982995682291418330224052769622727298943738745139183402533425165415133770045027358047731109473724680165113938751636597094556552309475468275982660623628203312270430889234242866267100710429207690721949921378855135395710615084144992419735742584140682760147596775761821420375556354567270977385937688470214777511593372964297176143743040703055409283440310481823509711129066341219380291224217895754411155137899789011505327371469231591707436275032580882765025467834143215357261082960558432058237846535954230710167718278634409394109117552917034982517901368470751310841338502338891303066449565831177889436414934226799572155418856922889897489367204519089075042086544798105071404437321831623668282238154554745515184584644791070309763948775033648913830472321982342336101723589241774440754418996432716015346258859982371004522963730364507672571460598224201638216417084321564156644724606081332304864009344907749012077609036300552078023840392717380168421919132090253165961800115657135104649792936475035160789826215600214917128651137300861152132590729956442110347917868934608174804883311179782166698289635453395059270442686839674913199514702633316389314126956684357069266933506684548373015526193963070988041761119429034621796791209596533159682603925095291047579254504555917557839168635122690361826156270277728924746301750966343847514326564476005949736829722165426053298186962320274516939440401073715810738842399669874101657271946681960471229224395418075330562180927773076766509577333648540424767761751767446382878587412363031717284323174232155103257291118334695219572218347250931387794014535757449214652426688120264973215984748642175365752222007574686188450910451466209249499484094068918982691888825851549704567054239931116557955074098218590158753985306848723118248000653212800871331673873449743357024839139061201150431665584185667492686982071148280303426259153114431002033538335829518264765984227580355908594441604976114470750638070497794820769185502939275011541477887597745205639597368317156673730860326214476026496339781997796592730462800850397953730343798262964568002045047009335468283387033007123164338648025601764047812534689155017477586729636178788491516441540092755336976814676154988047608482053320503952452756880947042399930159193535508949884984512962408415616509425591954014999433182738477897392966499852749484040853695146241643089289570982155171944625705579855015160391260340739898996088658921487558352648058962282789247559623970824942263159037217269919935600732317642418394754225411039746101220487612136486284901584767670249506387220303494840695320790322119065035594679157005242891510483322960300108695476032656682394163241385361163388098209150627931191218798181703762102568786248479117481417072993874627826134828119224882074213434888413146479507990403827959398923615722019933914003559065677156227410369722212001075081692257016752413705884789170493858056922055743343381468096955509425566647578303428569809185466104086432666251401587820723753819751682545384812900372054538872241559859759131579634731155274330190754285233690308605470994178394734802287238273886935946634565220260797185489110872861267346514856739091855902061933566963229245294149108626287383458206493537114384103205870712019014724758320186060842118966748120373144290986494792215512870624715646575022506780094886705041669874374098964746550104062404035499475551475483750665124241876312682207915258249374040601500615925071251408736574955479589064005957726579985908616407318189701976522178059902389239508605271556557424868282759656041271876006040736600522238429218104225245456479212930024143486696351800321051282441600630772328942681969322664346527771777772896413077568283460563331019198016069583452172393601465179497147762752202226998720830169162713881474896220401920986879996431998942499685112415403185078238693831790768498718880901736885110115179720265044975040954333373299726936402662331740486267853342535336146737455186228887131403215449305806037055962187417410252690207584378434412198937381879105269694697164787839339405367755914593891886137533728325445349326694233347339966932560444230597354852331008702387869842114546899449511494511749891956875548265438253220136101889109651668640080645838282251463106527784444448241941995931838301698399348948967771808585929410304485263487943875031210958800058299047435455926976250157413144492387403405194181942325583982076163990080549450761089878301478541363299076666217980307474177031372546045729263503766955538360412105290113076133699021378985917091772653459219489696238068840250813200103428546746824486053989493960940478013096105444843658811471312227844333460194181975047615728687164066501297042516454507734137062612210348993933783899742917198185219571627348442518808611230876608017735366898520099707432001484847387748698029709170835869175368187953282470297046049735229768067211206722280300406564846167568852566833200551382662157570208043890945093615677275119486504578667359620035967015743160085383890449450522739745543414640467641224265269886339048026584189220293337371456375265010073802199717331844739628292822227800463693555623853919279656717684806457765941756358158970114207453109999691861483856502099298605893660265718750649685681055654977076468520190883988246617583714987499810915600894447812502141905859353334576736050090334955952097294143631558344078640142441370455910192961440834660473536562403607205414777381204093999025056926605342896131696253344080378632341009206002405064700062394984467732231511198154608239810348921189774988015195844421887723117588959653609859540617809764926191116919977700402784263903733778537312873037710373982175184998244563399468482469926655178421971554243749136858917645727529049014992446751721285346773300366172110095502692132020851453063177244494630346260037935911074802216603271700831366881057192683752812393068124260667798142888739003991834805725430396547791127655857580456694584226718526737179238404643997349053467813637570636863821980774291275822270808886640886917996920028709506496317255469576588987842446948680661727407233067530090383093974867335090858166730546006407276177353620121760053420541280004645924095513775671908322112470093413312755980666640655906145172261616960029765335280058386126413513952852587117469067141956742145836112097407724545839626855549798843993590907744662708932102066327241444768461489033545828729056546198434609967961404835141896679042191374732278424500499130725833956726400852899919117178830105711776166628786175923076516068988063592744824559878678145893290974884148973810992854713089736612729696890722624629279869767391903289579292032968258288529424114716500596982711882282844470054681986873642514521918966465642866527362233831174843697839334315526234313392064819675615138675953026469977794177359454593907815180140665148214492895651201684035608468414550354861886458135647978064134724389079465279656300399262598476892678669154529168083966964321805219036111087441923149187586110563827337038649392325360217584770633187958976871981702308069048217196395278591553631472945880293463409495047056503787206960041621068188379746085126682765134087607928124123118034056791030585598288059275261901727414204308140165070667791230603565315020696903953525952628302761095152718972762656134870801040121265521654153582370862455641677047805355705968559784456644672431201238449663739911414566283279175723113529833264433539631410876981526669668900721113035282773407084618162674741832250026482965268070683852611015073074134349844098013911266206478021771022778819997282511369257813732571756173280556293337959850098636816444330504378672406000867170610231575867918108143703240692565856029116844831564301173488088047265560543500104662267910865509865621087951752875293548088379436929825680141769323811386552100857658586716543103344837453527796266709287207606749864458057914456669273045831672503436843661518042103666558597415707646849949721659546013777942532318746412799748206237585314264651862159420674109853697193256372804938473043996606141471610355932299986532623281089045940985150163002748343473145674381830406950339680873531853746617687685713586901249740718544822596095904266936084474379366004118585085521835181847481151368472994399178649720602876558983057159669824286754422787397737369609871732551608967868004692890279600719021733196171539211665086520975506130738280877035174136718659502850482549735731062602511289683550375063250760534447199252526848095774741572290354906954022411254948481623543519669998848503215620433853153412570282257343089634530485060098091335939563273465037555060500272084489263253506012548667405014084364061495583414249394256800327043163524152121214492714585502361623260314251682553614290511241680255167394354397088226274486703864274452906010268604031571876552240529542999734125701170891997092765025943234181003614707039339111875990592186108077294688241979981107867040397258895490328806892712559982264176064473761185175678681132734517797526311285602633001807621289375219996309573993833211684623197968827100896734161689003510600252515753810610279034732751310610622870682487857602123795472496769478366905185087757535319639202169872353105287285830771198385981179759967765776857883567975845376896954349669700501094742678537869405867121726136095490346860054681699600957903198934632196401609865369271643522363843416185367900329194489850686465475816943937702211134161630054757443183593662924207503676320021636722702188665415287211935667922877434380033394231046154195652408084376625550395389606107925651064349872468382162089060178431730320805833088242614976881889283695317122558555211483985878183404784967056217960174958667387963148142962991711589533223835322375771371121663397332351809130799850733176060867304945949643415979621476439144976614951667504082763210672216207352630680029388434323818205841317698910892539767135368917948877971807102271670841075254621936576109094510450268069805936522162305145914023885086707548404035451314186463948710754923567059341414302323834739549574789877871610716528507018276813504956238059735156195597470490374486336204380290947799266964984746206504899468407880776890419967727245689637047627489167121642310341975527077724645889006454668712905993845516834748579317027426886383016281667465318327897960512204418250726775501422621373298192600969010898005245869115107375814160704586404848325444616245713950778966738522542397684236289129525667490308121020119561766536556022380772953195695653748523989737363975464464467256705673127513592428582874388084194186356463165223231963369687285848368680942158098553426188940716496445964790884003502634443834262596516752308084425235385118339914403994558840385073498923252227734678547087973720673870190506454208398984065280523805701753471688029152271543009211090510432777510459486321972304168644526701474129539274410785023947269378803778541514586029789719567882152161224851433348309807876218260520959306880712688795168501111074223964466819048769187730362207115902209149594580810464308223521547894824178718211344020610180374228994300634869759740161733546056529225278627122338716203245764541072007569238101669843742463893167772069347925840995645654774521928345612747395041747192553211489103090163726408347769457541981667766636796175979072578656914084240673170342075204108568832619715191988455665812777734166770374777123298447374851794925746036511683227808817953145492389005493228834509118914426161453998150353224650100102810769774935530714637078431998178568640663502534049073733263615733698366224514359570068581474946640006412833518223785597906338842976568593990603109947091466089523307289714715951664678722780718027476904855386418281999386067833014812191801531807126265560660158398867557930804252149617541660676669881488018034706052460227685219588557111853816388410183657501150106377111901311675267800701985531085300311317856779508984746131202311677338794018931392277809241913741870599513818532193931449363647646619217379782611172108503120286537241830692135671595732925003619447442308032717109770643599452034096047675761881781922869930030840958731000918575260634446533529980166587848699590137421253755400797532566801418837014543465800541059115970564694370283278257118596375822374191508888866384059761043813206843645682679981119850448223539655375183273408271216716636379738607135715906066214775930719783348759173860996728947790052194116941961498232138583710381106964777880973174435532383306042008692822893051983329736764875263749460232254016671188102136689074177291876437783703492709909296664797992195304023721071916467869924522997539736657226266651063931109895748628898381859112122564193596716766700344060824480667219397384232886233710601744678263270977954124482401504298088495267580804740807415076322406663976316141534145126182092174648170280611969230008273854969099409907945923112426075252706585008858789762999226504136645388287062194443382346042758081766628205123997024762373257883019268103767444532292082682869872421157908192275181379344219106483204849874030513947017228296503956646329230172624087099518956393133284791658700378671862656152768799947077477532410688186355978943299260141527224246805561040655916308495157955525152690966279372293877557272017042726171407010420028160891325688969768073659643216104419000067833280891689205931105815755043487291473339952750457804384793038806723191615508881373539077081112764595187784079231324348011547366768910517455589016536684282973946699540693430322664129901851068516582025795113497462870612607829887512103218478927867461923445735237698162935951228324157782502316799541993725692326476961025176319723568134073494972228117797879137422642505259777970809702073368406211862067525360171574459508363545134879649528803699761660529595573947073006863292112308335943832244440948058599685203603760081231678415201460329930597368232648688749287009364481829075287076107570473578379570233300700982589927642379705867880192240559114958843023597274464185937014439398979898310616265485325656818938228278295535832329977201305465733618149317247187708338924997889119691979742688936860358464704894560441917503521573546071309836080744962486944012979386318712048250083562282559678822195411467237911624229479718155750239526360892714955654198161060345993489086258965699728485201186000493399592471633885004616737707925636595609689223275640157657087371318941326358989834107400324523452526436736487369153106994173609504165965353975868820014287827094865105633765750718236716851965695882339661988305828968639158067644820488677633149598152524232793513902220529745539881611527654050486779900514026838896643471699704080351439186405408159514863844766216240769534027581412783767489468819590872989090130495480862443336231922903626735463490410984953991137106142715619495656308595691617129362107788063430933146229731404719073748988128576205054865202445896937931907124649046886384172959954044758895423169559165819566578231200475218399993528577476501380969431673485157815267709285177860049171508579331814718345382943928943853804621217795301387370223680621014662630574058089887627082224668462029314961340819135236539555353988585642571495554669229625744861179238798507015917996548523137419809525955160359589738725806166056011531864354120534053452674663215100763202475186281264328592910109905193739875240080191965481194234818151299813379818297514525929735687110298648515383730014134577739393504905109903482633501208992090663312259442673463515816639994939973047503055036221415025133422017931892878819741670930355570687001501458436714306068643055679868765162468924860027650813994497654802530748040615539238217601867560044217605485737137751529396873607198538856955420928074011236650742838878297312861039378207463938694904569045517694047323257203914460708059283662751914778962895217233807865528844054657165532253926283311229936146556663147268778282697129702357124480395461129463735266498801887796123404061812262614963222240822379363599227241240446610449924033948008022096508630120879321997896320907721578810529776458235855826644700075499220748655303194232163264484986326308132354299315861298046628668080974851026839342820288549557839361801734361713342879284718142920535751463865427330222249435178723259405249671965552461634012717288739668377209589779247923505399531096930001284521809571360540161826597948672517687234098309664863613366946591598069980727507825991027537596182719097022336675118489802896419805347417232178785017238110425056787823609518527456999972609040076032024303841156527691502605253808170487109316079507532175710227262945822856278027377807044739928641833652228654409196930945771391626692070219754358333367590444957799538992650237827647836261162738347511108740126546067689845357589748191096989825217275901378349558856244346745745980824511068852247001169355240319455557358055666556993381151185428623279007576560232058722651098765845258975267052778566639739950796555595565527378510698353773609638830252786170760786489208429996271452846896393470930967196484211614917843211826325236917161985024984966546137802514363075559245424311473960661175341313393717273195138344104808955775665548974312553526889404913352375280940232868003311348165399592197065482087581313858546184971795522878841901958741499310864673217503158492752777480777965264593435388818088949247727359029940999505829896385379153776507511812921676795532753092964302533529136388121845695111398075600569758067773790249521009252976324903772298187478637495980350178149982924716819850785611382407184205275234344321199341504744789190306307389233618773273348985356725272591631998106339132244944247019468437743794876746242725860374947545992992830933287679566034647960215537269162959693076265619491646213131343671293768494282924385102307851667504268980062553619661013247210359559614283248347885718159421172350991801958222413684528006057507915941209376828456851133825923134443233710401498764621106601701895143247974563974837909004011039022232614326908717508125049213997157977868089885481854930904228498136991851413144219377044421838566727437647207686111952561833067588935383740700871388983936987676552957173243651455214367858586591784334573806232952649767363382651397453218321000945156294747209959121585089609709662398119945696229854953286138243573998235878875371040231407418626907884866733321538949865735142842821573689387929299746309432508967463163254122305759912923590114576427588803191717912482068866436587392164128045105191858170501032796887339976651426120099436146558854812334432538413397384897525987561055878136649166752089125930386491472857606491859360862159564227457657240642790170911178346791145221837454921671991826807657436516077752112732664738671321957689768137064393366800160716382641663406915018995179555904087337404315166433990211755078837679888571006750613206300577214345437178434516101413521264398625520766270476732372695061392057679638672938433125569511720224848126180792426973814916707221207660089166444221682667863543105209709006346620873423704568516199915877272218312801318658456911337417177305979955412399165791410791850910240600742918670722204749122877113947971439481944324254453450260042881156301628588713520791119683165463840414807834964424131484691026411769259607705885727120679255713158618156885705483330917155909491533806201005897179506434903665089848630897778685859339377627040206355318301399355978976538430139270091142230016371864236921663802424830228482608017174248471671678923866020403473854272658298381397129642900039980197718893537620593932820047298397424120341531325584898013714947877452231821138829587909818002111732564452962395066259696477524201418575643182293053300232435903253455215966911212330053176943705918772434662318835365191003456661665999144264032258276822701823724082066427579222460319231984005593762886515326596184294740838298269429232504210812123288670877771978016426903372170053979472427725296750435884150060653514619310645312411978843140825669905193462368716531123655118956151583559675550358394543748358640491316517193937830265127593055882501522830142918723591775196132478376474179468185786033119188586949507587970000863305655562296138156264007958197155028400818191827547963407725102506132285755858826270465788323562588661772333338493173630429600064650203304007355437146878514805279917551719636193117623570559652631875823004349882223431843765788177214891410357138469099234522105424555896937457853699025796237814503557521299066706736669449623170892804219673054651655469645617727092322780389253347322494383036586166118419410829369981230662836882521862206472154289808421704117553233885776738033083581113461031208324552057821808541379658966410156542182948914111737181265454261991631105661273492924878035539655231549143391096118086379464146304176266925106809015869999027499578048047907518222360138368110003830433425588503095712929874839519306779315311226373104759470049755679896648618088909659990188861906960944445455098267796884199684893305546084359922536167524201934471971201825828498013083325868295997136529388822467235922297350519574040264984976810775584558372695152530346989721743435678856807182730011292119627508762197820344959651957620022894467972872046782438356001185697928072693546332115082566771078089039824211337530311140565582929958026881682334607426604456929293473014692830922495958785864192098176823551097900157891020309502751723743053889959786707762137952173229604890962079826116313525310812314909693221639744057716138413657136771010445463057779918797086643793582496559185324142514698240826902484154833142295776677154545653217316913799232332929846281578959545725808110765273076836937307112775572684776785004580954262727567289189483153711045275522789798727016034368510556642617980672267380702947166999841490860773749075248844118655733314319633593201460445604690241892852189839997129342501904129364352312721976001763993166720961778818257663415951568823932361458885482599992884127441714480958923471405663527973181756341164108000389428470573181894194230364325384537733902359637715893591368730225220786626674026070750632808751597714140750742802471077093245437751072651523034193111083150294600800516728265488157485988968611853336385009381931338513857895273466799975375717990792608252339205474124409324715244397374427811505352377398727747865306138195477989288057856952877889124890535798224457048037560689486550777616634116218286018507314983857454649341766343068963157923762648450313954207650557023904401307760568902970766545524262502264858465409672662444628900563410670530987147113278378846092337971445387438973446004628848721766901732914932610659806979230135339852722997186119649832665094421129703444799113634111297269099556042703202747450288412270225040885978295724105831542143952095393505797923340307615955925139928843730278756757062469134765134243099519663722590738111205216610970583362718626908618864725268631947551135130096334839429787191413953511810623149657664498574711068864944923613503482136946767624141694153653161288711126316787160924464535587392617622938356509508932312820784673114344528509561657539521398111098652801544654637428374876433428840310650694568819660416012036674366319048679024713208198221170995801054515767203654839669881359108312372950918410188319468841403020236823767437760238455317141720021977648656267861314903161359248975993823798558069011034604339462367738931341335383684027688056246433165961102821514862568653977830290168830501956062265379677106485009654111659308106670039580996422323534651787625559728352099151279341543593383945651059426713068406205350954555138355246191189920018865246661713158524012745100263271625252490931322738499456257428785720549232294967330399858697346980040220155926883932634078845725558703844990907080673249075227945866271801310642070818806205866318861881313614570112600493976044267687006239548088763229337982420619363743020097773982123182402685586975946691723753432783589236533366877792169606850733939857915103567062730689712547574253042183502193020874762147804983407489361070015640230457714197737264464465789400908470101860505235460348809106343006307955310687074651910445311088340560698007397676534113584370861360687644075923592110758786170125597453259548187089898964072424852980701627563483463899653690446742750702801429776290979112400954617382091289837607185939350102140144166345786464226218461377425812066986300572867078414988414473696102906977003768852812941709689339310096992818908241395066777439621485431618441225237859148596449732796470834239002553616974429643467882775085421316719163735543588044480947271057038922100781076571012775051188180422017118961481579833732133176279506963639709069827182878915581157324248747885345639655432881446650755498817338731081113727612868723949221419790060932196542426604035432954155076940007351264679612479458969681840424571189782408904366907363741622025192841481077517350767656071462359672814584365085287574894787579042152452553133871752557550045243884032885333299795830091355577143301195906122340837335679616807325476826367745454248816639171462691382960958044839002617962530181449052755492006850494062357120991981006730605788517666394783587260323908657733879300073601111892537610454577948117325993505643175730746365112883861708171278433501000321104127666281579753520806108138952910635023320076237009548523605193922688891216882682203723367476287223916484692573705863108533083779884662438872678953139274877086394769643121108521824529901504495669345131150931699560474050213409406931738987184787228719478716089435255948043171520687912310796827355200772880944547042777075853920259870532939330847697644904779277678447174439489807078201097584570323474794791203044745252980226439523915970908611643734905826601822443631827078699131723214344949436120365322055988360369278477552096404501263284836764190345541902618045059755468682807874586378384405529312008929236094583945616679018460503921675941341858382726986927686364616761838953288648549300767073584048134828611205557576041528064685526432982092224771830030383203261263031746190359742549881218420921891158985791846352444052810253095436085864555257924996428257566098912687537267240510829652159283113520272135929424621590237598743342408498392058086655150936435069898014766044319782077956129056937878569424532924054285755761944225962669819325575644647170933334173947406976066007834804146668407847363188930234973031078052158897958052218730558308512390292422978665279664120173916919819686111560077148999012719710113584783463400231342220365353540570140520205688372775054882489897515173411943079055244267973850179022484456899711495826142292546068599535265996083388782877074955624784937896463398804560242141640429851369306930260960467452385166932456461718361021574500049537308276296812160898511333213907229627076086170489070612883925919099540544231852449111133501365827743059424617500579615003483037640825345291549078986277428627635447038187455576463748282351245619656838937791400052498296065409735439362923805469016240768088774040781645601445103486883836246628660575437181101999236311536410178539761020601519110011368345576304455332004336600270310190691953196631629205726412948757918865959031772015413627436121979400428464976132051388809491076929644428654687320738722860641934149695836588981884591758392566306721002919140852395997653822636784054040113776110202037064019070937872241800582993924275791420454064635097403913060878792427461410397356185306110515184295389704934297539607580649667135637512598697732647519177226180421990205122296431105153904828964744009181214261775808069035565642837995514272742216487348748680410894027645284406023020007637634688062665253059942320159845270236603392003692837122644292352173965198941656510331942380884032482047264147049707055514775745295577233782805092940125464191926448721945101064443358883580578352537409665715803139739177744572265877976631895815394646924115094136950699077348758235176936659106538473569681400905783986615302926173539781058532384153581255160133266615373022002371535690071086574160532592312808600007618294995888269959039353316875242989557886420360488246570107419003588860099231826534218729789033988645186940162619427576050368729382534259190398255148943955835512770410914929439019752743347186667090576590870214968992712990754255906366171633090931820442085044937598627630700887235097339963513912535309484717072704926407350144124933851558061498464006404444336387254526236960332869625529838634325869573748792883773508299999321113108441669884490201938725129015240900215134364181428653798333565457117995540307812010425597928946494598155778934101845715175387548900344791005571493688568214781076230946919038154870400474162105059313670747459736012807890242863004172483485001972726247919727602569641934666318799004265504679896304266895816632732303981914261370016371418910845830792246002337441030218286821314024770573213012972329764807249926161599292254824981063189847188656570180342116197074908245945518737458073125635316082442305982747073347002247729719162299743726150173499996691957784041385214466404820389050056029681042556537676914006620101805748843306092248579725613183255678145691769704828544739282309909671747010514899716706046435628687722795289543134595323634391051215251979749300526316911520166480484469196663274608885722820685745884143368447395522445449913370134968474955254778419279841276057763921816483341759938529620198654097327667892943405825846672719557394400637725212313960708971426308764745699218455022161535458210033535226357074615306274319145219012297602780516956896116552709796476187045559130229901116416484915941568327324168373492221427707031780602112094779152780097394157687681404970477485654724649641376016173458483670193174430823387471848332513322199663832750310423427230549929027240908771576574376262129551425474341296037933919442599527939919391088358285970865489847149877178555825988058328060372163853592792974211217101299970977610573956729577814457374762040239067709829926257457707811347516089876787735054316460723590336927582553421198514440597558784157131053908731741197651709194742468901678556152336029642733106345185131491403146470792191890136922306778366712974690720850836756082278341017559910616155494465876488021776839007558212457214241816266507109029265310443661677188957755384766331213599734307561248037683654432933974100557752506558714026125853845336283251996696123778198062872552654801880394520550866654451934437587806820722577961934387710853182958623384560520702067255273256782332223565311930839428463411923680253121449793731440986785994106271877055650997819627029750240637620399990637713786154482781061515798600438307197893041733068978397343369554146523632294724294956721661970311731091665533637064707088019028066483526950275988152187631055457061345021875531437478906109480990649839164548963403030412206206611003301034747123532790042707898377963826586653810588654940662956958957214774567483054075439050326744339629152213071537632717355149062878838618841050425921957471396206834585686473414434765444095970359489452814065824393349200548402108517529594333472825481449602488825274835864154104329226516804885650647986946012753001557953107253706874472215397722502201870149531536985678686185767978206600142170493433461031307244500669353197479973283707392866648914725538502713090392214471951477425295390837869599680637681272217462414659152818029574829780924725023992334283681669860862152261326926799966449540058709942622539251736954565273959448494577985903561604598698736628067996575325653782517389999001575364889918813230635713549581499367594072533276254622527100914949824359512382465024270508362582279721125544164518638772308938494101876783184076166670369044389218195048511612754299139459203644024403520028669951475973855221525225371794935285971418872022417865076313294816132808682056081589434773646274166436476043902039234458864270385704707617058176715718791454434026406117907008859244380914564474069635232479791196602171669225886474086030317565773997515836327196078153261071590008027026385593689182544979544415986301882531160651602794501665737771367802209107300979928972150749352959787874225938797274750920598328797650887833389721424209053537671262370085118044147486535127149011965739357886618152648372338746372288473636632004532484500850033190399534581810489212249230213462283772935872909649049089991795011942440553740563119599453843666838182345701055479936665107576761767913126099517339819434438426545074304832854151078073677229671618214777608993339324598103803950725691738349988556894728620737923044710145574834974908770123674261415684908237060666433127024504129955992195648849075415944491739098042342015274801298752462889846765870775585630678448657312426659232260533886741178170197547741779356076773428174621180517866356926897080225204457287754701369766262219941783834185168130378611657320397036330987327654710449065653860860504093294123075119563120393086236318140466606542323466663712658913084462750998202315388440178718362157549725719004304878934950511526250008680532547871753194302013303373726231253991855791959080693563559500656318384735809296404786845622113368097143468034494939763420673504055586996353179274240893211188922002103755627637264436924278222182154569316393973387906821978409490550329588622838223886262006115079756835387686584799321078524089440867204560644451177917936771947669474207258806649777055201986119006965806867481115884500203979736960353342609627125832733111400582737889482007727652722809435231167539742121302438721027112930332576643405343088144751879241939639636020145653583632425786137839625960656904237386822680338479311802769422611259640490283310429615641307017444962661211284666132005115369101764250875342564699067703834000956090077343807233273266220084506586463683264929556353920101053744506521401378962880579202003574173409142320269401671361177912394906801603803234244848398092854200603776780417142582587006610900816862869377134496961471069475941486108864211264262303526590870884794225636854367593549717998659470737394257274374363834918039906965065389572382258285993924350713645384219810578641519619521272238835634909334520370621042397682456542862397836908467639681134442369065149637284304032482820150791647789945886972736638610285183629613760852583302485464860831441695055135259631595536432398449137489208746996122074228460869856220921015450687450738157580805251919738644986524247389099571542434561035133665909484852180734943737299467552822202812790578549934608470231468300937232268447679353039395351714516278764219534285712116395461628020675121207801657222270134228307339401940183901629237771642718479216608417745771749715777346972815941369438694688906218762857414036155843651137011959976424180282567999152097074999033860726303429246010830872868876727474771807926331279401068259562442930918589564405166578262292737780735725739643904516544487191296075246517848987276275875100146730985195172286121191489224009820794784232825549982556604498894024018678713163283142168773448064324706857239556543682986502430946904807118100509985817680948950167417860905512408305551263723915268260110196793564748801739882542818014117830726805074071840590462655133959713940899858323476999149203997012659312001725265025205603656514121036291423760072745437316504684905906755186625742503706930626217637295067378659774935361902752116403247174654703359769796570808071658772845974845615795692631575857259254025486762474421079641346495157320751049728974325651979618200710954668422098819473732105864807794398709296066381939145652816687292124201983097608247737264085563168396940754550957587225841315518177717118442270750433482227796009356880729281428350292287725835735059864133494038944732920727046466683057048112866372198908956519795528754364860327443032783671095799308898730518829075330884664069962990544789610209499899586658984639769532994576414736682435884140753919154627755480362650066086440554579427039629665612393390911983175419283881171383173484069592445942179558941132522223584155072052431153305377792149865571028544489825053264910654719004405590162078544442500368520759154357358814765523762532378556206321901089426181477303211114348186327636758096755000878064442343345682273451243096550250167465875796737319702955808847995692014090672926836568892368475856417652771987512896484190099706283407848661828150326331752445732386801119991444615463686394887066169751678673839458312679158390559475684571101358771817178410308611400383196861264465851015884098777748074071068479119777628584064195347391421060757501794597208884580672728374254730379022702398313712776696153853008283444219066558417594245919844204870333601236589392444608341188299004611736863109965317771338626504750230853468417179071432358853794802327148867373458688406503422910867928122281094313147988013040473368006087025588589351455662224680262706265740670838769966922509898289937795492267841374655369566297620173505015001421985743421572423455855741583881898141133992060320229188301720033111699042948494017503017385141507374235915954834811991248958424044803944676032923472631582947005799180552428608320883224620669935168352334574353916836866414128398693041056465924673876646446931189050696087574267110355909742181421176705534774249103482840442382067626775689717644210469675823125203505650818145395134696462516162139236217404011606368774082441213553418931309315361484283313839753958370306867742951911105603345383510060978333381875450360285171167121810397480970978033721142120463917708464689042500685393245810689894479270378063989032269802622531529506831132393689085963951356535855014390310079031841689254864339230349563526368207196439936125775219157412961714947683348966966914760547193811975010344592096383156131318531291783496969180199018554511559650177301647725280149502059990576316003905353670665517099698315970920116488009556994137080065418404638057445337617675395456388177474562515327813563006905410665182161341731973572076847234088412573144571915231064084387213728121322737168484971330266635863778099059417356326507588597346982803705935420748315536570818457311873589943350285882948109259676253422101076386944958014612234625460205049254712297063763383941958322905948703444509384754679407290580933507661425926267404564763622525782976366534753121175370443672027225504695428441420415731992077930980052107887551201839769971604506942691996141426522541900512747254726455089201003443728977162120026843507167538453142693207164396835061716353200817842769538635715720387768868914775884983251785179663660943649810589339547060727304957280462929464858746331558275361177112385766493931612837116356101223606981758441720493306202916480592556895983413034375197081478957603095616782176875859792797756384543019389824825257997915486058596634501930050631975037685330190669712240966508992406921454211906967365311000653472042131435650708394537035489575303238788289339316005716027170429277920481686966341167932518508125774427296874004364148342038900959029441053299292097310181398301929621828817190286452000671492862624267247445196643228793715137891250309836512610499908236126823817132535466308211273338483796931280460795715178755027434495057277665307664241944283974922759011096287499493272738113099731749068457528512603589917062678052868882911923894794033607417761505967720064103838059780705373300203394800747451537597371114299240855717422633310996292131053354539058897299444336015287167247043113839755670722413238641288633496710225069404444210171316174533146495220894994391929279847091800035543623523035421419864688441819359707656131976836614993866240458345954648264648500941030794216517438925972907223155088938470189224250449158664020330130254125371292986051598715086942726801235242622316519966265013542598070153087884961555210465308297001181019402588173466750436912685230125715222063787654518905372747236686811993695123246128645675225710724130689972149343189393531676547070414994535345408530796780805327705712274437544536563696855488167928769137574209050973151124027122469902932059117149599503917353664807228618081884152554596968466463910405390893666130240679527978557766507375786208074452785095966305550994302108156631143539139662635244749334211877666917616168085645681126313726278688499731857581454804269317519667985863970665873559081315673591918424886649475403525944568372214139436342232342399463601800725104170120466358715343328424246532002888257766523615782533359057379546683581045409805300468647108653438204147704873512295897301985787190588617969779761465196895570301826260557365229478365798569498966341552603934424911291705331821180539618718759252161087692013619495348769572778558036593343675351322288210078979103686724266754089259153999900072369027745298214919016001033811763894392008605773335082109134344310390302342738950085330728769763829145637902717835165798255098216431964831899751724414250097412993809211493266719308194629293808422870016406557231979216196664712851938131856982688694750766274527283466447468618601150017161455216307930342022768316685393890829212740651717319331850778065727782909246696122828759943774799670191255848318613460777302454039298507360679712512327755138764901125341150260989307503416151419902711665816920839909586472835881116382695558283588146518668740012498256186496219764292015373353696498497500855787413732289349652434621258119648675634333297484484202656128649853544993758612521571708629883023209968824786782439803179880399535904348739490798152355434426762002873558636382230164108099638176521734049623911317193198186180942121824828639006427133795764616965495612250737545685960234094723207827032879027709092803395963725108118933512807555772656305551479013822531043776924201827300292968175550647780272066392231982043244003711363087036626339017561779610336257882373794099471802791921946263118240776285004937056318487612864034171963278085094835259582909710795476730644360839482615061154830240903678589562375815511991457337074909873498751505014789226477734305747913560312234777124657784100284600783149928652882937357954806592879339573041140663151367556732875743733770841979131742444989925726617627022153413591310937633666577103228482270830745039812887589582574786682053935433139694804756426518657929904552930955680302839077443374987048029110165017340186087939928723602780704367155013223375640096850381127889141473994880677160597631794680253235480063675558595632497224225281150021304691426585864265548582584531945583624902569946760158498511223985230080374129467473926734528429923727487895396686673302796456274566611540826497454342158887177772069067681411493236942362256686772915369407812593143625001087142073800757565497340487943570707053683823137656671866686451735164068376027569422652492624253728569511942915986500232274131666408809884854319556192526268129853817103328562350655896881653696628099969326059519308765163393980098490502885173978320247453976608879179438857253268261487059903060206086653202096359016220284751314498715699604557375537815384637407384699292860771827873479680115224882117318448187212807346578538235210381823610682278484229745663762060105929214293506367209105899327137725438831018780339882241154641839669540066294155493152684510371587726283706836892410033511811947003282103932107578280403022296660319417248518240677511851495095263304911287456305320821007456372110387722445192490707095234523737948311726744466691405062298193995557351811253214598781952233048795256576761101833668197595899841504651173276306484626523184294927142277079239856231916082680965522410624298086057961644310092720323198467307537989365959555159605052459866125958260702640741770945448539871938722923306614942604022590905297091547459759661416367012069094905108926877233706807232127243005287279009116678962740053470155926642449783147963359532289179207317985550011310547411191388650991924581586387277191466286615112032581292168550841115442883672319248415523850301668001812320094359330783977283953668273989348705406990821746353388341221192802320384874070241011297252091088629793482018259593974542362083350078557824096441055796764982691119668934765503586178877600230017055548046278926912491647041107826470808043738796196359506204340508778619496924327425832224578106158687700355360672332762311943241752671087343282785114778642256125289628152221030765371771084461646452831577708077938676724368117232413460288344651219185600291575533673244986168768360974620424246622658517543013769102297111851790658567705824885103565050254736621501801581537602889376693405467985454259957494231442193330444917070122198212662646454513399248736726169829075678026054012449249373310618147387159855640646805793504595443302579090338026674027453779277688232337133029270816745341030377768670544305199620909724393299723866881629832410640056467535126168779735351494483464006687724044151127234325797868870687092566768650938478918951103731069880788280914384777958652989093875933917079040113847011021886537163669548509606317746150924546498018714845783441012764218015967761022446190832286088187048071719279993593692295945627468734983306664034640853307256106986709271149352113962729395624633869442829976158110942312126937483683394821652656674970555635588880268175602012138189456332745291150058295749571797934636190074519316654066278749998209518164569853264559645854037356085578068009911889290035222760103675959651151343153786593260853883548007348329240572316547185850427690034177733551879475081886077920403765346272645097946896897675910512899843872931770479681730612531051802879529612880778976125613577300876915359398195605986452445643510041038411797746600340801953656114235119475655997891589974534369704656414639445233939087031907917875618917744783095400904459563077484502482101394916615280853003902827273828519821004162125777577949561358411156655282146038439746734143433881534377617880924558286374181243189087412277147456566963633948244647226492475703230367532036778046937960195210608865210733322855238184364511491531545993518514959197053629542570617449412802536511542371589870395691646357845225172347418612307892695641874126614477538874312217580361103787182005100371893025460023166182784140779005720123091515654523461731247228706629864964382028187723830293491518717406200554237839412021669840142760495515532868408822532109854174104979168476142183637845947451989718167718328926058129682368367810312699713004251841296431021202052326104017436498443550115977330633693100356924176784019192800223858139224024627379741250433720205948020176617914885654961667394667899118260023338636809071944134927393886007122777158876302009003079373698627955872827006377454648409382609648613653529491633174533148857744047766570711179812990451042387268828435332705907555489567622807254902262664032124532358477319820064640415057497022447204411616273682360381047114354068392799933875167551489741961935625979663725538703777989800030164242313114673456363398047333835764390681535944900941189502220306010027239639962499636971583073337181049401007606999436956174220908786285462718300020149801002494626768761063846337012566789685781724660367547647618430922739290574358416421557763519005127323235592982410288947365373505431147468496531142885462408865724823635461302935613612938487772013279870304027610195374754202317469542935050679067415261206741090685220782389499178192058729584985491470471295466271773120533096478545223999524351957807251613585517738850430055048347167022798635560940649435809472039397849897845827308017106600709334577227499943364115053161240925667630592763921101038232478257519049053389767978846657067990907378712437706551961358335056675814747676675255710609087922448355949602118355887344646502192468404710197916210483687306509192690009116476574183351852720590017360604319337801001821330023760673600686650589113008486577221701947883968880969895496159574776978250668016165196348915402546143971538716760121347301406385667991853308855386390231724782544459970576357808095906608083978532641012972229990975050425632862576387451086051794317631322056674210040229965513892846267096838121525810646048925508581012026968799124278656853345100018326227720658708902820344499510090063780735604317409740538850176725586372426599760147422671342454480223726322551483786432972977541978608103672541644136227984781638744254206303404226386357309366556661799028130728592855292823987704319105884073599566330971844697370324141930734819450206919359307182200589795338106156964898354549009576937633239594829940445409802406469857840965729274419124576087596843755205379367272706518725005581740653006723651404752903151901647308409259410955575467854115426727111067152259428905848280241737607762962131384759659539583207376722903631760735093921130841591237718771226726610143913760595848488765332325456843346475855914704227873953801314939802321907732265403095950466856145133761363319414553236026654436332698175921655343825698731519747009250849664447714780539570904898047357654425204058907402631654365417516742528682625500952945517082335602871364351927919328930626523143731510243456775423870874635521106331230597835709707320898943332944148551946650125603269427564684922942639645207703043369836656266346508257185189313737599364758321224938150127694874325584528487313682672561641959386758193320167717291475695816564333597453856693068920083792243345899154207847224769140099508387768892981156302076945073315055168150605670956325666678198687757941738928973268808219516738126136914661486931098296142031252787571560455843766241090963025442667051778349276887312484742784622427425904898076736039935530593861098377687949844855532442254232571141160537194611429284911420087835961822505618757208605731104370260705497189599200203903296230698732157867128821981366454653489736236039463462395680275889364960267834600357502273533512616088962917432767796414493586810432421230622426353356512625105230984547751592599311350645329370584545379408562120737548559056763747726365779166468236450513862146609765847883939364943752355090552807265841168565509336138725025670144162779208995375476893565619231777138093488015953694576740341707477694590780381980937921308980902836845360189621548319324196100747236245097787598778264889855956135857894182030298888783518509899504974713241652496013073677302654525045635470150487977468384980101512985234947205482487703531002582954122218698461779840706164242547535004952309557285934671401666524740709886926283086184771620078030643500680030228522028769452094757011911675745540364957808778370785677036811250278124747265781437795924472570915693209852164330446323011878433823765203479401007934142111229187550038654026078432531213215143665929623645553593222265207395267458085933512131041676881950950925137453881833568555390373578047141678728016261514347428218419430296357247789749648643342266471786957631466825025397879921493921930649027933804361902634443212898187878163653203787040335587574989471934577302695283981567209029581323468637294653436008914713755271751474130490172835102207009268719974121841619469987782379968600521385619188282357858037385057659153397629397835373562664171296366310996512972940111489087062741406184285314553828568664419938581362090263450031593675706452119557962219312764057279189015773157160034050361735305295729177339324711770940396110578818957253764289138526179599264364764510010566629519499501953740012834868389582906732454429081255999283809757997620593281840079594892858808351463435302266289115797509336300100111438020822626972342043170139129652128106712620587019202857602695406671084818221586481813183261080025691046120612849154816225917282185623211729361367728556606880309725727708325445178633795807032672568070958485786777891686718953218176319378688155023146748524060820698937844733465108923346682896365837712351851824106163099312126759000228632006905180216107118550321576635801587774647376725385884777944543992164196342782191153979750244184356794126515193789128504500584317368437024492286329934276362942255928016304429488024407161024521874706230183397988211045897720278072085316999698752349299672040928359265787982284338811509909605140362291472263467843983445307835099792730985503558689168972718406814552977076121024879337060662573023945335256400367859489236227671754395962545895003226002594990403078712860268994103593954983683611036413566834565558703956850844437375276428856509637547610756839001475867533211892088013873645462100821089305534048095398873071354048494084069850311273844183625564663166986168783704574359643307571455151630118911448250814919945724330957994368502178939436504099762696666526441486199257204005323152330714687845171327098773441730095267682710484455991551517177547007260662248004423101562551946109340107590675254109819350738118431268499197040872074981235282024360511065476232740303839871998848203141320332339796107849068777174420873398994265259816710639398824289556482585915340370133373855499336273912789163307215360891928314894029227719142411346430485870872996156923924573295258608536205855280000016575223867551844598650653070224109368493672625348735468508310369193483754660915092843894321113787553002111878852658847262959326840725949748408328412131800446673335759185537206857801440890613075821246520786944279818933611886666524342593650195249873756679162246112557459192396288760125478535833938368889092833042291178388675863635649601726146723380288167430241880415490140493120866897335618680720083827187275335376275238239559691271152002734850020461914505451539477940347907994443329547113655443047831341808382691025906496002251470167359711501782804413761462369234335696878881861893446652147324590442296966510172371176913705019750144053907547306311113370848310490418815880164007314097338261803270574939695094940221407417316254373544062288222736801534227062676651305768141381951088104352243885697814693731811946707741555491165763211407196408320455926990121639586448648810442381915902714979616335321521273757478248344630296355393950384021301323570393689733911111948991662953118734836292910079623243436616018988815094982992755612682470629047278103822125398796138849344581521360696827406439150981209989440079567375724624826598970934643696690698592569020102643286918562762489295805157888059318764318659524884080068912587528199147307428887419893292364309465924985107431447909476801658444459571967816844695877876795211021614347123399436813781102923367938949449188063231671561887650155081601867547062321215312871272564806179463497479953829878550202450406320045926112510519462341319627367007066115023096950090577407108056378671138619397781997031435068758381229055081196549122995508604305478904319539491888731923023981076153042756355928762937265490509488100896287219508321956322856233494316501311821613867298075573105247918369540531695840233975716716102096263960723977296951765413622604273632876350348125591871302426117243486482851757371105908690946012370993785845696661769957617876082904010478942217518753752541122277980588319944910763166869071335164410963329678337698010166296836245245671210815323071047833011781774976670015840856970727107715866713459307746938061077084764540269943403023893008522286606372753652436631685985724142210389973230082787063449136605605011567044271525414759956332949910847966083502760312615302223433135925093066978866600650145455275733723644113092250397390261142520891443338007982449120377351179994878981085812154689081067137724748269556215597072444241193455673698404031406348972882251079293845744995301950878721023982361854247154496901235825108797199153123983895207322347908542888113430687314676001244904315222773639716787655672607423177241983571188190061813865803469585140229970856527396845351710003752640739385776377950970395825108855623427417863888089120964816430668546356347444503715240136147409156319590796076186304985790838809641205377255394387852531923605777155208560445089001892349743326268048317771357679767835434285670178347979624205242473147750813594774804997463916506492407364071238698075865618143531665683549747798689193635074547137598626700576409264327937832102185471790412167430707536635351110244579049501778666906765308418174795885499896322116181969668130540490068668229820879777852347819822601718826879355650770125606614654238771325155080486331339754908756792618897252959728387515272956398193832802851118954512345979419544903799027437977434345539265017980639271237061547486770697876446554463734076081438089291982494186378732481452233502120312068290671445290081121305355232653132164697892893600397181735611166981593950227764194676662315545107481451676132165678616372729960587773639175408888362565425117111299836619633509326447715115248195939041610273241358797554963132257413909769996059330951331930175291361149292553063835934799686687709215583733959336504782793045485698856433855170783356911542683580531894289056889097549142143254502472568532396121116820241091540216252581028487316480798915159958826148973317400670853710843891495395488602123849043784452804019404971878496629414287546282149622123249504545146677970424029127082825138505487473393873945099874535984712370271947357936081163518701285241859115430431600322934800536593335142726043302381052340164418171840587672952015843704907974190531466156901363599265430440454937965298347788031125528886422546994786250295074361075173505835006372886014837308828218355338166966308687652400635666543573288459950368224351178311826224364544147349777356423395554583114439412168891173280184833711083882085240752920333505617524969468411879644955619679385928520494311834801906296942363519814646357511652430276263846310852542556668349667146887690744004216013284584223601319503313193211456438026028679046737812863958183319611153933140232787099807472973560325051714890599823145515339627789718109314147152099889998219694512306074650308357660282753454976510616779888333635959051123036224479369836613215443320878882622274422124897305473596174089744355364192137370794053414768198754928355213659374812513670809880029135289279668445605054145716634818205510692145671451268176018232993804014758646802966853415442017885876340089348357876320148737115400908465747444002358879592785306898387648173558555226419577630677041000573394452950276766637443492333904910503938635437125498955039593748738567565384685957333160817763221178171787708739014820818588705784957614926237944833665414820691779852709020123737794944609520856067335135889662255477833124711681309965023933852934066233603078198441025178818280791621093237189881696648773860598791460630028519221970665309294501640847260949518958616362629497485586390644536795683862226420450355974861776926419439901167258504679899567857594781698650793038465965488456547783137825278572984699944951261488443138088332437994253964403461381010340531055937483246103886823788824781651400630791087685532626152265129798854015465144731860569274052792093784231192668844317842492435604311784445406171055487075278685998151218158972015324508419442092180919704783191747229535926652315496944740787803130860292430012924802571573509128880354226546650410485429393723565991564934226281262283297012715015128002778770765217731830664624568436509468449271030839408943877109572865798704587517089244218264332670927583695776151329161971613533399125515938727512715400447294830280358696594146457153644452510247256353849899270531833861937306067436059499950604556955359349193313247943234494955231034067210767958325152837916785454158388659773331877722924444819956194004954558958711035109569231991283690965356569473750205205264517971719420898590056129468936707610426054833806559806771466876176550213426167327160198203728279425343869860081209449383825506845201740881348911270469946705747132527960502969949466852706702430458673915745895357658964195247270826451657976120390519861991042569840342833366831138448746060994821349194010114016665319471501186473903136375851424649032821050079206618406965228607928698904547590226463578154167587416565412391615541996685439733083005371261562481450984990499274531514051560718020468475925513028914234370121184826987648707456921947585924798817033427678819700578944268184947838768510554629422147303175576092594507523806330426078159993077326566440792070446340235068763808286591435725562612080230448859302142674717649882124072365299544391991254811935109414293313426975037956261575448336850145998889035921779180179344460520117686484099279660064447527146427020733247944083815750678076089067986807575003003812966020309685374820265524127109761180984543877333208963064926750790211899916095010691897449074898629263308373913575583991163576564753264970867100821624086147038513671052888501219061195742428133666369389790896190480705929707527381702691167030957632732842228187143810507685850226712387867436124649971424418439275533166951159848488826720882674151535917154249380656787485086473063203966631569874724425896583148108694423195445642539809258781549460401429509728099983562424971370473876343357798980760436411564088485703232285730665882348324660586272268737681457826155492686402899750778131152560964726723367760027221289677718793318521314922463625478100861781849946727115510613504934873546292790152636965695869369846708940436676538587896007298387047167448202333403131548430415765364607838546652501639529281316071113580514668256976807305636155729118043433924105187716178041616501495358624512877440403293567373430293297739857494631482515384027528781958233128587028695814221117293912612776091206649736004596491214245537472239414116506226427776314410139142553161075926468277738188921008196609992942679050224607932606340103488338798464013519097683373129947312326077413109941380021277049146964764317459042604345319347499028826035727464245139027250917296414987332266918702007811931780255982792566429755754884880062464985514767858769044601423679275534050508239654042355778974914135636722708635943358133343298102345869803090593894346418282786218652769539512305653169454531811019622937434729651468347281704808856058232961972767170310749712185189133843417598178257997824515266915323432049713977388274466453984652208531431794533089754391120482913628937991646243823707682716982335590009275607546559945668060676789628631398713814778111015979047624919789618373856504771586807047386372878027932957411940522688006331985692176748404163019612550399424866373100889420420013058201592099299274349344262465712761272144948613545989491731111935324604433925157571402167710118043284276355935524559355774874982927650214658878526683713467227560766314107015685103964258309619477598551618433260091914699925384340471430753632028948610955987433193621257609922079103133681688109528043128474278183088137820120294545540624446898444951639641731333207267780647787657884797563884920070174460415743999421533296206922310711510515903021975147214457663669832280263532082632581204028021160648690738922289953313896977846502021989149354691839902234114386878667417937280574510878800240892572735850867542854939176358240891180902703101219788336816374679104691974113349921735480350994446855626499716785889843901354472816118173066007622845627045521314681881340046707186420114325779656926549911260844657224199254984058798863278621846842431327803571681259057868035616783613083216824823656597127058758783453372635540649041133043052139393734646084494425085567600419612630107352232692359081247713379393062250094006447542071559949788409762237840174828845276434195032515937836076814961945972951213084474088558777394523324194230679947843845094572447174805865610730194571328071368513562053445956949663366777498133828609889274955876685674137837651409653972453808996778341714427389918820792098308524531442385316363816194513190420133479283146314766975673188693542080797488029033861916543694769170212158967694970086464603001555533555903299169825826375463719463313203416228305294721455408675996532469536571847792827573884830414183120564196345815778515072640948865607518139392360302132971666109654106637873340434770177988577312937521603868872117679005095303044731054008726768718543662356325760208087310830932469470365124551070914188929346756155578831260372008182303164673584213178654526037072829639574872441216048130153219801340607510342992460853214943448131880367583199063547023226978322719723446883516393288163202068710643228468619402178228282941117554097590599435717409819464940130390176136894624114162204131302965070375116203450833068842686534383770532080042795672709838675376703573793605740585679102329969957116579305705868868749527635628944730601585859059413802043323902976013045781249628171166844465326670001733497574126646753550787965855769940272674268127330904339123730927660919456797592960514414310120692759004183893306952105117481122942776204713000149535881892742232257393687972550263651972261325065976294026577953767886030528525988372932781171958377939115457122483876855146378161066489749190074047947791557474723573421468108519566715495943743044837280571375130970332408255774763008458852752198921240298871140955421288110486206022072770377637480189661324029642514761060974506678593989494570699761440218170846279805746641554051166728405365525356566762443297170991945083699910842526416839759604914657543200609607445560897814526069374997814223494732503180320780304370557406036785902942268040794767652255992840527264632412130061166697349058671556128232238245407243395028076306351859022352609769826374871936846222657412578409997765666279547020338017056363337481259156387343328076159016319633145339921913452692345873662800612187884211003784628789207683861637817468827317435140490506840191607262140807576339675476155222906495819187080619078666148933115228464090449217878438510643374104821765357866970803676474659951121058478935809275650363956652993054459316081946875366816719596041652088350122145707836279244461154547416932630404719852981865546545508329133733719424600157269358343502560740770464141355799286729521269205392275769223788085877412169314657264285774680003161450015590315264761076110218978532887741642302373604792418207744065661028863939379153745263106996349518136607449352709425383852321597698796400389169281410631628070291353556143773376620006292542792697024906890485733896260527726598404697216970075434560824561457828889640303161912385594604069509101030843985145507251323367405098122586590780562059282506505940182329164444295502532115949686709402913175347200832590285913121936301431302017761777635606583929342558576337826931360083663721338089741548242692578553082495260349876225198684406752140083503130086746338421248064437475629174157273341683183169409108702928991095131401702115286779904035664404339104436569772823867414785097623539025482062208454325579252119301190258101053619084502807297757143376391781432816218865996440907637249713942687688655371097231406263258519377814538530874119497215648877002025032527299399899213811421280117372779546519154777760324634651064132941896095015704227700304746950687736531941684028780133826169373980817918966598047019055167240553481266055016945094161227626986839734946598687538107772082870583553089318390508099056079691909084609581108694689733275614009000183838361188141618981233068107896164168859220315147911627103702878651314044012050872123970648787609225249289761987248842782295215262056374345223862268583869219121564542725672077540576454102639453709594904105733783964802417884183139166166507521072063641253691314265478867810281293332067458192112491849291921638810048206425318870466764041846634792499715139990612328364955256164701326868681170818034396449988992528907462413263918027131069442642847330218261810845903708975166643948489929195971317429417487873991730119158130333156715141126412991413362037404882628853894326793760791666751171366200480364624103881464855590350520400942864816737443205384468311972243920207497204531904668707790833089254373050847780535754675092056311206359911789531819304830126320858084415694179334086260350193983559641554644056452085717757053816455920086878471641994778694631789237080811344009068698109707560483566560275305352531855083691686566170064896161369372140012170592973235479190907582361505449268179188891790650737531921391156919962755391907558194957734656285966381548917567524371602981478774948931571318834261378217812272953214473128796911998708059290161680057667380146333784946956258460122890438997700518835282349128957532112651502704607578599920277362116128979698166091314091775899757415013304944616955199699742038630784668620160619701126700408387083120710288420020063498187662136863619899996296299374358463485760571209124708518334002438423104527856247026320453025840939166324141219207963702813837479701102066295143136715028466309481164843727748332200465622525666766780189818737329007180877599514554583557757599943420644195246077032102681559841885780087026016005763665112219233516270982861618782911289070989018547198786288627704586974509849439203550880128946864743693167983985829600005717171406779899241443634257353064038933588575614758261331626556344668156456253864951552213310261456621994496707751601741361616719125474953597516644622536956490283850692343134386506731990140761854113353335734457852321386517575713655686372747019792955726052415074394955772329157903057051776869386525340557616624384579398893655980424962452098461682870991062010417564981709314462218530729610365652379646577145906194024931532318574049838774325513311340912642230777154360222449794692960535110221167212318777737443372535467117485809452850001377137756834161258852795193649191608108616183891136972975682599379624392378930810756230638253511053627715843777148604691948990676423109112730224029205084467177970583439613929597845243999218813339949852201585522316765836845831244498978610980362837155317428515869181194520500845286514571353243245658479184645240934719062598754833561291734232917996314036731311037003514284362863783616713179091006565626999055491349632046050452648369150316773674720372226367731123330404586444619599407713645574336895937768807259603615466514539079218199550426522381111320620845932136430092234462186771378939916026468173346411730120890544003338580230347042016652977359124647139131753038016296075493127268296493426759032458617237327743607028445427160066071804338040527684309416101256467253362337914754096964632824420299053533507819061229719488874803065794793298188052742570623033140098261519624351195422837137188440185862964766980663171951586833394805428932338877095070910885659509558608242439317804870560961240828906937966859789842378955541773414234203477272273313799578318690311719606226378774810162292826357557957163668169446450211023767080120623161247653422324696510423608741981543962047129046441272219943327821257123214390373254773865442672951916250148237951726192726885928271517677465579269099162012125500629344345320100095676824197617989078330368663254509918222264048059117273435350835633750862871240038630816038239165036989498752973312961567417407182993671498669346224799405152862126964951485295299786571636327840032646766529256860385401980074154876634431723030389757719017610016090624553580699387611707742128842032656262703870193448592417066647470654130243100527875022694542988673607588897828380389889520760599266066675561146164350354812460449808500692798471758817453938110603668852751308431521375726322376144740962831075184083873015667368239715390315898924561162003119259079834912752173478307118692040813614377131171885129317663367982910516423282780884883366885589060274269108882101876487777899047197693675058545349925758483262487486630288783972232065344483036580517620123423906316271262079607873450026959553305309759743169386818330613112514973875806881717280926162364920067692792596908992061139107295351554605251895587541862255833005611288353966989012754291748949313125587978262627125777462705863109726030719459822452223682425923032882196829512625324258141948784594991044867599452335538914184865861298056592253081756747420016689641666771126066211354144339897953296356372533282858592508654258195504752018008077666453356396496863549349489743449876107263298742872567325932454738670582921491416395056988760740468244611383697585321214857371123266325790494117373165410309137717235034382656133177062473520806013793904676973073103970476353728099731009574473601738236887717283082788658960266623178578864475065494429064556743101522108486155400373215626428324676862851154509971814404116286695858889753888062733462173049020816802476071258666316437095558021150592931456454640502265675063833174696371196611200666882573101167182878417433859113955533911677000443275290716949523069571032784439189407695128149395708829244072878751506423924793949774063436447406182030881347249772871028890731200935394242124851574473915271619540686234169899363194222023191370971721670330217524220327734608401153161880786667331163883191432453256129209282600084191652133364763784460501808499742437160053636685553899706154731519464339172349933645496610785879316271994317520516295906918739487847775869058385071830547291264883881305399694739605736064920653771429215459490220653509849819906245944383433556151730693787628855396775814566146299177995445701134997824755185824947809190522202725182885534787823686237492158042300622873841555376609067118306510634328625899899503514218313525945322694542652078394156527906231797863367029883083715395932729591104625282001184181747133667756118677728466691919016851821129644598992758896440913088070458703024437301001003003795780206230215003394334995839853980462753521053305757990120593957639245126662126701825742073522747835215661295936241341066702226975995102711530649445302000171703573556790476108816459263318265258806691291016667078083401400209624850127897093321978807959844987004281179828466664065344237598653164804587109491637264893668050488768870169063758669911142387596357389107507487785597729368058230538288210641012038650827966918655183896013964570935836631924978520448929347571474653421937844333281334677545062432705664564783859976136656745854055578237967742391486075085270380907284139361527750298632504769548933611596900845259067297836604673385123369389797045188415009706903093304496286069232067035437769607430174654621831191643160338543283333854951171904228786416418074422165754003284449515460095857512940119648432071407550713312018396085307096283877960026572467583968327474743659191958768246390323395092155800369342886284755162516028861002284694327635006808908843271793133197810293811566337367690294357632602612728905389225446226638758305746635291927237558994572297584427732487563226683117415451420276500060025605927291704470799519158607275622052026677356707674874172065924189942767753738679721744369611638393328548664957080966072363818279851800466960868710567562109812985934455437194595840879844490610934507539718968555431488310066175899647441756425214843754672663473279132410652408586994000115964022891780650876987760532412111599976573893214701821346679740698784398786811321090257843187323536860212562720308679513232815112625267573588470443631609933862241444158266713901151628341995288930742267418947786206609293438364219765835061376108166249083626760334562269308973225625390228801977296556273665207114203260741012934345050862587150257822946217798768670466227964157635643473213411246959125332728538749591314077220003395339644917171708098376539734444668728759241245747584624698030114076235917719684155657556187171705680103963106919405235084758904367019111391483154069985022766952929114347481541418985048326809714254989683031396586761854424619641833023456650338820037428927272018823309842960716753501517024535181168336558607195562345005075684108073580687234468361120476406332937936283832313526431021566822454395400135893709394387171249851332835463323502103687675680851038733408537317738903988472415572040752452989724643318543914695436468327048779302916363276369307686100317344969959892773493679612375606400783431674391108137881717974559310033838382891979159799791890769798605245907617621969183254730804085930604523123379308514926598144839306125288911298093998483312840379652284901186447433020172937118484054330303060398411150736387445446252264588333661422365104562703430919628859956027656091901699304505090248734706914349204871453528550147979123989394444759399232888653179226192254240117330547850571725871098141047687125520935126221984418456692283774027212511654169802294318110149737890902367455654139200006745449234026097397584603679596000290827903977940164977953589613238180982614450978940801572093377737437502283018940835204406933534269174383004932604322954811924408783205554263781762268677221916756137284177085496663032049568323557597100053049641783629975086206418134109128213769029026567405818676410676697488728148002145561872330827784452875764151815470386990038558456093090462048330846445085448804067130868982633168069074245824785057412027429124934776731362893223960067638156850829677769028350819592665873136654542101950399001495380161754284686710237253330155471945026005742496547847305638028761884520910268534268044965095734855548114174476120586918737374568927849435251260693042938575276647198191177690145754814349143182365577744849112725804579383405125295745337141301795659616824062382554109016503426694245680128809174404038068494869973180462014939530895196241120768924024108494632045989028121987713788428534153431850883982988861842761036976723581230652698787091909410498560581008267476067399028950456628491502745849224688871538426925034751379902675068373867076990630252367656959530369170043994295699807798864134352956155630363784828390665023491180359902358318756101662368672099444227148317111473806592690279319687488172390407655613700461878544293863259354081417312169207501438746464451914308915890559978028411369123414415579018929495682574603049451080819028141076041255897534605357021874510908158777501943805606873395263461575107716300796361097464534971427660112129267569738806974565097558716863742762828071351755695790897845895299735624512418654317799385080437023903357077353734183662023718679237874568623155803627771813328278561911233075644085418081562617330043865980908651855233988018634192731590683866871122839790709230432737648802494407622752635235307132619880645214129774355938627474787640521995197181049621593732623947136018798717129128357603160543731899174005120310203861553158023673513328658743976889835666261470225302981001035520852240929947182070923535979241153149699044755762298919464936570330956148532266143121101246868716425896436548958671919180688162131135810109730108914983996947326213027144398192168094543521791148358376022208613781728622721542196354059584554466210115945868157342034820232833715199401276944910306071989892632341749767877137942503121385541123007134615381961458743154625597816708977221586122147979617069893337633104747185885770319056611802474973603163243071964645575315498816545936392280902059256408272494748886581227374349096750038972818878714592206891317096391920029334652596817751809281064723459263542585812364923243784237152504021424270735329272633565454518289277658970241266436934330848593671219638128079172207386995034866413986478718315145837756472785420151004781381573768634615389583860148138173074368921221666076991009943864954692237467397473319786931326019840380284377481973336797661436206133889867354855370833771448106748902950668946071228472475778747067630715047390823608970882670978379006831839573585128924339083820803401256509925470938352749959612648789825776895443579614400389607584612288141303272114260196982696713134070660560229781157888817461722144466440255882271211191310136763230925974406236461708539062914800584429715599571223367693610174110418986873056456464649955411634495825829786973219596693153720224808755440932219561706144501491101348753170685525053673115950119957972235946381724437772034620758541256089535335880867278418881893367342068987047942796142479223988091603698516937033709108467295145252787006146448636249832733311584178954484167672107067549930758201381963838371566029794333874766764954100674637839598970576701597227753005581147074534612585295828321778128646885198009623846721577041396762324927873180751226362627957069025388170851558680853064539938222210732138240188145911607758202051067484679584276204469217450779840211227074335153308505089832347390586346014063532205380245179175927657239931026303836120867696800924802869132456308475032658163309093314780108555775103730190281424665502176619700273645484346580979739120312124130282807430217083351294045474836226560579846468020587231564525333876928407280946435919869333030606669789884523998484808937878407604841006379474176422597835125344270031464823136915415794351720177205361851951113637813790589799143113229086041677186809744450655469807568187800036421649914605594984693641067628452753549304070760384373413411749786189816914457193753657897164536313000951520780227880751955597502740433557243213518914593768651704575483320369371430795510040558683642126848974249200002073110007931089844574854909329943248880398290501450428605833664668364613082262325125164920981186817307501293429554844764445210698793643428579891330077999663287891027769570175700426917029103500227314500483921099167466407522428519166911244364228002574720990693942803732533179827032335753137619265547671933011616185464675058881646509780341272655600884128670837719125224599804950124249065294027990567384468335269396460169013481178648975610744853888782931157316654400664328887395572881250172492911664112597613876081806759027964641001497764890165719096904925530062306787355897245995412267573621652679148733763093477942435801352197768987107073710137878980360993443254117004474750127980413089426212050354675131212683281471583921205981803804943605371945822295626348363015077651327979940787942805858068170726921969467526942682701995231253544015916403106575363823123128147380201711174034544255547585633019252344915332595051325115863323145897231838377569446443592580221285135725200259182136975955328743514740294709217939890256012250534757705376481236992181594833473443544710762106991399714129040158901884286725943933711672641829418492368829372643671787426583862554503103839757114623457441668834966384081619473255908790953062545718152454766530759303379313353469819482176972857946135429326037309866466895505640825451553087005212133254899002635176698013972619098086293366803343243229204450712745819420713778091668216073329248057592799057481333058078567458045327713592787171743481056061539510319374875608082059618357894508898461296432368104741430749157180050683509394335276641529629656173483232084041413486400579519526595675089480137406749635458741756385364293275764586667078689798664193957218707248568963316828290327869044928620523981588783735282938467927960788711703113622933783716688868713207314000388458351622084008661510823877359620012546741748308071807169001234236101825904785503762762229517550976137142795532216877135115428285431254810598428156544441576886530304068335040325599523625984657955532546650009750683106484658774609760604365243673731493834599441235201513817317557150765480561922316822278090958265707764704992571330370098957708901041041544434932235738978025390008136664796517779122133849842955107741495115783534019854962477805692875457438310001229938529746462824111315774682097390802961254016712896516073298567365016798675910668577583704091759217020489872019474538035831260481541368850086512074147546279692092315625289041735413772318260864193590720202765039616854855725899305495153173964959285275744292603909184263237279106539956828088713783872689121175291175343678777754588405972547621993376827683717577515189858008959551166775955654202453128845709046881124482354012986954761402013157840657931791437224946426175199235605810632838209084648493198252053696003520512580300049732642654209108437799801347662654836424393799812359076540383625139323006584287953394525289349913979701019724019617063301652309837450786495065188455892875116197170757396731848305090458628027962275453348108783060464927357042879231809841577006960640825902864287500877094644493954465663304656041229459465151774361677597366129001990143205339168124075736204866956453398984454100941555621767179207036068043883495478865092169759688847583050793844054960253517868585233552942620080354266143006273260177782844262792717437575811271961804818319274005039974367267854021061538498084175260608450343972375429138926898666054524366980313632491809672268027608075898160028432082703070580966979390862993317919215931496765167028888877572463975967647568652042330381714655123193660633218662958260852412863304304061824999900152776019314347174827219685666889786614184128880605929817691952932074616507915258248319969737677060796872474251300115405890543620722723971264157153272295713738960416877551454529431020345179576076912663136085735478249181326170776522533011437654505675404435161771459897270454560868772576219774058841918416806791523158993389751737765995426117538402281651620219346225796141915019733013788902437686830937172503727128750870540337193763128817185177061825812581943790842667577493004794189141359198848711841019873903484973581750440138004821314990814094634147491170746693836585416940494820830558433607108730315704166008622382385188502362875554741932296121011226888221373701383656776026819001100771765631559327705512338887434748334187208409660248188748615427282994220283757880824947480182021661283674365034637675141548892363793756633431216480799501321006821809077915062843306874180243562146621346057418242341262654116298672801703217988093159662089184985887595600817253856410162404332455724208516738555997349071374603534518017280037368856142389244200846733526606105097334153832835813885844702539824358556977756300820848242702131425374542839812742436680844237102550517565341024292884028424639366250148681851497977027291037355548331361727941691670781294472269068819548698170015063637957422368741654537162232766037566825816499647860103773513632644684364012460785231901521066217401223931017632431189929467551524077579356614394795648462479160806655447871449372075996387826605592308565526631106438799066645642956090791621296898031538659971088647584385167307117947683897806499409846094882979722035494583296099256079920435461650542134481519920891939654123834661625838278379753507978508117212392788566739863012972421409483763422541895829254422364393963772541111809838016471731514409198626916118052986391126489573598001496537511827810540337750300458899532085717532931863969734079681932781992210506545882711421196462274976605017293097236673911473374170541234280881223809991621380272918769775556164147474009014922189627361233690267461439362334050205696957775630178721309301070542407281977337148526700489049808763257214668649830801268289935426925726233552942511184604196071031538839146450703867053642717534174397101526570488204683052398917888663527636301780650727433444929166991076710331464086839439509017691519180436102803433146864389337833163364207836152768659950554116812483084052027044889141737112937997384812581954495251936899680540958527795628320131429444827430202498623404544924011853833590880661692793037759913222809798849926936670363493903376083869157296231034505872210348538246777088496464724342551563037410384833935078358123448918141870672829181720711563988153224121783595028705720760729342961023050738096628136797945156026471454633772983577545124693153025166281759089455752385380858068522100058496428123069808480286007625354973928538823331653991788401007404363200850443963405021736403492917551277125335015273827844509852503367060879113726551248424431149569492767348616163824979909380138968452318241546874663191457765051169922577628032966159232986987566858609993290843890377822775764537150007302500058100555821792484667709635045024991838406071142269490130501927081139481998072781124740722712591979760307199501187276921990137435726924966634107748445577995001989895699568487377132394405298945398851446276760850324176374646895089028362409327453783013125060494194925833578688867950359932056944582173361451098450064869799048503352207482936709042052745025126783905847845868183012950029950674211448628851453703433131288047389203386631843120281015874443250482711281591086652056867386332547665126657457782645058827378270458005442942664365159362837452621950523455694568017003774210264721280094443613480381931797618698352864515935400628367991971811604645309283936808698456048727315044706644852918459384080046778748388388668898838259898742953553753632356170052126934138783618739459068310294318142988950332767941343803385584631980078066428496004779732106510137968134560390389941581407189418330274268657741640638717482456737834267059915784618763386035888586545214807387801358578493857837732233109048712085940514451013139157208407706239713982392337210333543007809245483103745655680653311507914121313285731671112543050355771054505205863498730147047014755080934665484033881238448730454387104819477827046524209643419089225552928598207322929542099389903791245966844882413542240834211733219043215581793013672612934270954339002356590742380083477223147931874912332729324227804237352390893736002841528512935487058730705870237533668430823805988448293235656109383357088834509088490810722865238051350470927333856941796218302869093054213769334860935861355777142601501333626676014113791208560415344367623098497052636011967323401276651287485852745476154021145380625032980353930695429996700747720996826314141982689517990511175346271087986483787686481160567517411909810608249033352358879635211727519104958906524250831281526680888876363400440287949599497551589766617845858723680275216186004443630327865260718247471740755617684763596008158287532889562651979727744865380628447449643433159794367936386408899145553895301292765925406269415798813995666085374870968628831116032692535183356451817635172891975546930556338365099568149154820952036980699871397623821862959528250938881526828511915732469366654991678423629725198477373453694827352030068236911433620946761188676313296088422344602197641319722519456904564469537110482199012212925156484572473046042528964728230699778162211160110014006421169526523462157544422700419668414184097674841151650190528829681906925540944871743025974770299202313551966482090494323683366036248042179728775229608262764281350038604564243421982046522383228637093705399768194561705750455864438117587886897613896412943151497592292603094021237526261327622048279650681032744689438653562169133632572894061940798544666214883661340648049747616061392497629965448296185588909422801237113224715537883322613367435915702228584390763403823275428796728124927245301112088775601247519004823030614205815106542898409173178695945394644517301063913446273929295099523667082900097695328932075278751652988631279845530385143844969716811525439531490223178993241194883279018047949206491783482133467376176130613830848112968360408751339862204086531435014802827350239827578767527028968252940000303550453509955645795446423213205935717944713098296360418668698816674213315467751029782684703257406486469283087687600829743134190560628298398703742360605114486868670546999332189573445746873273152603338114695340871522707270574173859482906336260415646028717195612184012487727827458786099441467716453906978288872706780011424747617150736545108227459287604248063703077382041368892301421218852214140975776363114497301367989734853463630333745700691087407495998714240967261464419721047398877983448717735906593918266130215102854115553564010659516718175625529753726031139458162427098622633392268937258108625684190249113888905605249468130693963624558527201510922975964258118486736778798892306937350660770317231728199130089138225092958181149289164773094981858882721343025514471443001874954270528314237684229180392752755207222240479355018288192994665723655011635814950542221560367818636351265052929026893955243224837462546438717552323351633457847132699423750604071494462427990074276938242840582359475161039908257204016973318065185345306169443786488228619953833415985714442256492843738492280856828530332456061131529059473717338213549539739922369246158587409012314166246150373738192856610940716021565253336980651642141843808182969719663874394670211688331701136380091823648722848386476602544503203541934871672488346117986188184377943476762469298561802922785837121251565142867578466157565297284443454755749421813307044586751261431949387188547287436204676638280350904832848471472182910473141582765238160610163042391281759057116207772129254943068428730661458923283889059481616919913911142402887664854604358049936645535716266586727646785861117042579178931620807116974879485007645321068319180064786344482123818382228377740007277613983926552588121391957054020173948855100275227848545106088947420472947479641161528332480248648533388507929388963238680805189959901612628834250585647849804141806788935794544341704261038971401162143741762327049163795733981041671523285251574673377666811768828149318407281792959249501245626379837514039961783805149843040934494437870615808896654145264631630052533811451398765232405999872455019723701663427169174376095292136770985047827770053745740831059447016889380038014917825284796489167066491787674322441287882654249762981470065354782369973249583881421741395447382268867645262238364596529346472357004217018807668625121971999220914733660712679292278546774077682688281635073729247164592603662746821110429624705896369001316133934261806090250034192319745120554569607519101328621129944523641483277173806355514419150869189906508441185944324391795431968440617268029978011786252041230915258856268016717546283185898977322340816370008058712474945349804605964698883873005340545507254591767852803214250748365791396868537614435920674847610923893916797844124941120681194681420274878493953466703918467318963847473418884272362305176768298994127231695565532447056367785327182250608653226364132155551732615983480205584110500986514205265634671219849336117236968815132084897175149699029794215626610705302198806741076829202427466534680755910944241523188777529297564580659172003810545841420836117295537209604260012309596569886177725761831637174997563702599473516230901157520284166023144758628227420805138069065431691309738261787700109915000709333998393623331663488242094948155478825462427803220233471879932030202901914404496134275923941258214446708795777231898914180421770296500730831042330190893714152017897272155264026434006944984266498373576990778710746058815387530776039770132020005816616098170378533145299673877074144371816860924655692070293687813029713867729177715550389892918305489308334601596308259432274542440225372979880616742636231438163147103525504323706309424236552633027029878647523425591653848114900761765073057417912191596130542474548186031012330587320145909567083855955783454419926170608799376531275997030487626151860840827657618881666448826314850217153794666736667679943715794443832696463192146846371583140540723324646068423173015444746037419479841431531017522440450167906075020562179778548923409344038378194523830750697434889947252366469095959387916362838886186738942314744794554719208433149296184883676091086962696702843855000439778129353626503537709593257821585094780840562148503507966575618577620043219749677422161073289378850234281258127319056310424967269070543482041118846209164527279656029430447371349328446863167626613314751388766284576902514039132539993702983223584473609302693210327599583451933851802659619524611905710041024350631589892854988655346623367485092820086562418935616355518705848296765487957161188156960585391752030510794852304086778920347206412841297332780233662198503129259175594290057195253554994827649238338619381224360871627276820617321307503335185053410700497079167856421138040345675587391127618087694967083053189550563369892197752809652295563710870265716447248484344841463984959502791956892377893880520953233489981933196112750984330709225773506055973855687727753528810439354941819739542372799414498494299604356539983424239295428812424028844763789868341367542746503678535557532709499915915171324938616381372133631311568963205675308818727596088062829023756200259454672206212029416638836398957782713764431908083491123690347623540589048001868366419987445573664404342814588771220737929570369724862747463676789492203036523879539550236527437148669750125710572650086773181555004450239653429072163288878150238550327822737560419009912342013516966579660853723030931045388970941173428990991907024032665623863964402637791236474580657554260124593814494825747941532188192209075478110205724696320251696343553124610997934259270045568271371045892308944943715154717293507859655082916117736610092837936514015144886064765475480885519251514950533854352590948700290459837586578940956963453542403572817834702195806020701287051318708898696207635163020356528162783328596535054137487796492657562204097411174368808612056647595053142059817520147547721369597164602498719777310205810803536314012347949979023711931700859936914427350386229171252586536788629314329212501707769403671266856797152803642082983601762158061097784750271589208167624738376204875515088526974346457939157110097703404157736171077731870019911998670082700097584796858494239387833022266179372044444060047584141702449041878433377176784638740412910182592094565179816452742460343577954035822379962828649086550039146029988135328458155656415816166707613663612871759249786553992449481543624392873620855590502662891906450783351186424232918878502537265065417259501283148073241000705788058929514475713393507593250388281524901270482130501398105613074162910019325304740574958397432083041895706338223540311220704864941492901516454575346851581874587465393279777012790559320934312715952320501814277035697770204991853125303781424032509670516393166750260421896543775882577172467725581925750792772024326389141131405666089981840416360328467765393185773652546807492630030569599738605140655458211082757446491959538477249241342796593915152426871196145917659332104265016021840287821337426867908757934990587980806897474003265054028375249312616180184131697166411149857456720259382163191198839687668706517921676785859783651728682128684991415310877969828467621258614073824827115649128361365950878319841236184933081122123246529383797107920338265924377340600985955812562880849017477675152315220957350037013306009245337309750285797158814054337555293882678368656450649776681512579052244058224792822423993967276043856090964395487207424982511810600938371928867126971461947707294817712156267644528282990681408876993922286423547220805777576397970278479977097504201042789019870278959928696836141469978911834822420227642019635727676378570746394926080473072764524225328621556818493397534191016765727896237672632543553607682735166598503403105988082956377860067918490569169600638880387081301483409217188494498848750920721745054007982350497646324716722808432868509396597918798368374107408398822472468655494574876116048767223984463360237636745531483364042135181776220781477599242439604115881711621109676881154998464899522443821084009605105961926077555607908117674706464584194052409031844786776841842263371319525674215605219215677651635360471471771347800957446103447174078713246146428256997006382367989382978169354623706685509356217516712462455309390664672039969498329739211990707216312079021370760318158067817022336274337035965969153187715047575388143199062681301236257653684067015119791359237506392269724322546577515340169508967007327881329603968056432694976560237320776880594782067917389088865881183704573098030268154854098914131997583612851587022572521644128040329324045476102442045091252165597834867175641632409733261947739811398141890085076162100981016295290556723242780523050825147529826218882415675133181085311237871967028117335134210140978772348107667154442509839206436205484402434698442382469967259886379549096575283091066620098688081233078557807639963992849148365080598908790146821026698572765317028767880685529877253627903962301283036801948730004238071002056237976162281482035450279823269753626431624720724293131450391881273868609948463128655975982565190406739986406897069879967747768212195372484460468685413958083097106685275497826858812184755357678390485818783823097031211248587966853923262468026329083273129787584109888602397208741070951534738542346605434106813387756180391713425975554317434603570494636146528031765707750441975371514552704250497721721884524188317111112061202934753269832577792694643251924948061241874878293864436054715530135675896225760130375851095019110251049355364587264190226233533080066904550220976870943865764538543090612842506263769949538001675513428302405794800367409492182028569383809332058693061951405008921492218390811218410769981348818177529538636794697988446350883030865547743293243562104659612927275632881848516199326638458289613814332180544811183133287987787651393576729671719187398893272801653542170975135591502674247371838053656275299699708777423479044174698890939945879791106566371780217876083586020731884956126523240164457544331564104069149322003312116168141752724391348796877706948937594282683336495794422494812166125107039033640200021213801656510132273244975946470896395777435074026979659315846970941566155684275561618405494653370171730972314057410293205477128720811841289429777518439902722183402497395693631659439873016857180470635198381585584065386967033716352362115433628922608101223464533269046729818082104049803665337694854485364002227364195698194908565210164978674885021616718861320723700664654118431089741238820795386766391705714820171768067037493953593586706732162897672431660794850123921032218594141866057060351858321285785940682148482784960063996816775351120774366062994381310085243036392300204316889188530759434239886346810891850021325539132359541528429075883842759413687164492735546840020733432120189384964977854770172948051250406438307358836343910169193133455487616016440720916171411808423330499312222393855346574311341013367847700369262668778952479958753854224698850973340248993614097304575785956398327405472810552636959772809610606192638535270345446850797951939100241765698760748459654205917156651844073342207151877287709634453173286677469113273582806155638646878605167240205866305615687497368509155325644535419863782965681353705975493658326678998627888319119997425990064063520122796184918709472605918805569707333520669999609312538618962698750000230775014708841398205743829808559820225105248336829688342536702481508183433495998363009306098739087922584625406660288512836925037829383427668379605220298559080397722385034072045681032671564850417430256709311425840952373600905412760505796671298054423842743380278658563028092417175079883601659498015267619022338226617671048667061870791838358909010283413330921407885623765427090939235617893135530947941380357998138419629245007626485330568975816128793322611559602307442934227036547359363026758944091946375266129081173206947980490307419777220717872418407374760154715275673896335663820510186198100186987178589655058216554745413586163824909118387286422276864525054918278775024839447576633050698087934740504763012338115670503346027999687706283721060460134570098061350415625522477117748548793128620666611486707801049677958359177557084478968376315276324421358959988903782572569384457940085718450128114059352599453893076807920636517142660489543542249015600676492352313266931687527604107076506561172909460464799660064507790943425903385523198243765934223763342398935302241558963289009350784355011032810235259423818146397159358439787791179880875104354765300895262167491926471258672305675695491032833997672176300075191225723511781075308194447657834673369172938206229178361475278814975708877657655351309075435741112828700618909929821491950707946101364007723558432132591813413379155515461930039032550214539421537038286039694261588311164007551125447690368685315326202441391721980815349005142752263481085332900792109508275107539071828947459406172064042280594846884004893574830911307402399305151209396742195811232990653043297976206639864137943802915057239592883414230666718241640723379589926156712986019083430886780328850645472733161096427312702610221536704979619767761924013830827116432442232860643563575632426122648576892460507897547177116016028189155389949676424452214120589851531630890536701212298935418229067549829858983008981803296773145588177234867738735058807545847574171308847729936113765011557791677157298168772622953519100884573937043394178638508997969686852421761829326301940284092839159375075351026952876088502620684486556586773403050019880164221204007900936963251385389194768543119573090912070220433447815084091982517828891287887890960675829975269648002715761660874715810813044528896571507304374386639227216605515169684930201967430774351270626703409296894498216794104014037467905888791424951542579273214810052814401858640416433772696544153320749116675118256165386031278468787735862542555300142362533917867321305600903046313408199745829391367843488572477485701357157181549852463498983840135544464422532103403655287684817155398583533071764126918434710649376252326257320538197593255925893947764411728497733455424296077473092996054181205115961563082969888417117040127428342601576496339782750283590045440490084769527361514276486481569393886377235865672771331904923009361766568689044489641607615255870455532636252343135283866053373379604412951632510037503232593183346995546314150125958889760825974784386329871447450552997371460146027707036847737170076272469038640819748080531568225071044232779287862398763305299736009145837846603310729425942064564828950779252594330113975113537511514103082211597359174417579216828288596907583949165665918554590412637554330227484050508930475164354460783270111390400596506131883142497321105752807818688926363251026225293371545284100271498384199892619882266778986036019105133988679532245428602180192259386521798667838737111904488185160645574654713844683302522500321056433045049996834253413953710197812521208552447326250181625538229107502135369041825378484475985585146678614159229443680300299003065922596465999263093918059952063654409346393257110124461782838412621728251553941095224291987768055661066767271038460058244488310817937079811385507854864227850769972080964333811500185799826663423328524158147052749918695859330655642873779757624330919981567721970043106539324404616772449855302192476025806091101689973372759042871708210106573338707970101717506177318341402218341438282520661151527757457769559891030708058038769107402192743846572593327749370374163578663564286598588702431406553739545160425732419557815908543345820782284212202180919414586218417795709488362456349551100863576537105048617077467301017255854130163288923768562630829197981273736602728200693019081381223101626974545757541615954035952269417169990876117775017117376974068689161710177653412494902425914993652080957213761602750642589138790833123431471322631162178738655261649042860764380485363718460055778013713802990853828331339381281231835877837319270545769486296880596066291827995128889181898304979851138343395922717187499697377362344024853861326096901032158143659863321107238892637241866445826595919299672238197098390936027198205817307333495376666095031738898211989950521976387850331393115863082784697524299649630482801501052883270779765698187788957483911807415389495143096360476481076167013668449959630906202444151626159957973867020146709683076147777654028757061611577319029471983339214908988697808956764262862392247119097256547505086781271273134572284427233440000292723864614944457638089502222429134314936439005264907870277576441311085458353351799068216156224026607100003053580776571784232212995908961175715884557957286760683003326468044495869012981612027575417922460112286453234058126975978917456267173527142552108457096735233947402944695216769494869262303829280437914550588908129359557171858325170622121905716498227257831381021700698979207933904826946569451032296261077557990916965658656988864202510722753849696637158059678409850458813704635511215037708457463492080657602869189359224768015670352706966550705589842512935174234070017899191706035400900795359317228483620721727525206636963694229943564908251722898527912290046882270830074153831109056032782774739382015348360667023003732954043622633176355945398718334757857126206809280333651581815318701061996770966580350036339720392526966449981787018673068385117450225249805971256598091232059846622144033171122868230844496622216635931863536216596535069666533001067851007371379512694221241976656664853126061166235434252883253188903096949311391326769439740548097804727677648535189285802430863990806236255140084256911555858847686672025987449104346087693776953849581557085104159929450634751561163150210945517617210163465660329384362712944147884640348386653874078198049707204178517481610917738805412537159837561214585323348202789160938316740989451374550458656523223776627247757311953635394008691580982189435849900808735277669543734053418767862897923779067656331275946298919222587004103644027654339249792886759215298133070033761001973177002695047334998931687220969667722248620611822833620615161091972759280827722159764491287521524666614231092382269053894732790846890098695894952859490807994944081051689229013444532194111415054996827086854265783234727609403767126067729887688139663196897837540326915427787436487003523270004996527541382314477637881040525940092547453953463820500196319264422343727830891405425841053813922963777933420862217906526534414251028908260376287535679132638866757271121375678297754012745876567378687179592800708819348371314788766405706733934751491405271254472187587201741810370795530072457689943573499629365479621298822601917068686512569172526400032432927137711322597000909762668088595253454633046729757009427266586683719494925501773632666966402909269981711724434774187777866703029239932325564494754910550941934840444425869719491712521246355461576506718049579413090411239217442390465732608366883347293372898781267653394340249814173909985370282421303199631413820243613802532111805532639812842697994264889910756677438720862085112773203649745653383319690898649910228902922056503814668963578899794949782883521967488313557568194602321162870202744803853229733049320457465196056672138194820357309903178830323497575967840075496327578019937786896531145814157465453291282230667771615525275045827745218764862173412306880920217242113869525681442109185681788134898978986445277741480553928900135308385507046215057423695934527417778043103707387663994227405198453169167482937924102220705272905908101049497690694294689248148438220606298148816626574855418864101676946931107549380432696759066514011315703525645786489215294006824176149558414449999889678619909161743740839116238094170756499036474276107686663863304377415829526572250515298633278887299623712920419652739573074211203781299249989140230057369291365919882406447628451943804897853733438083731955032911677122801129830420541886980200993178180937264776163908440086225048662045571762211717645857711782543655940735577553724822765233346467909796085784167010085344780171233315810087481215512462245581642580471719405751794748772707929062408966324995015655685821634034477150553487499061250679311918365938504628947517024483206472076385141293394330002890630877452338057011648809614032051351180166797747800270118155865146308776694853575858510802367528392848940527252148360457978729798089039285525096086990298083856850171855525542537709025536750511559395684170805546202316655276152786620087597541848716800689336280347207080474287307608810005008338978121146040542976479199841930538808300436523925978272638229362709189091792938176998076287874874119251933145580491257209881307889759627825632495060196850192118916642478855192528581948842161087267702524455083381591083061473489134004374164512330510973635417171820219488803600554546576312858697347236706522746443567652939550052546631906049504457358685333609790740396104321546371602871885851995814282597559247438323475133689598118802065139272165614554142678476234258417957557767870985552682285708170428353990413569079561533458816381932132173800014075969676231089802053859997616399658884779565358730546439460716113529979585303990787091984264535897891408855364556758077098640013465116847672935466177325406595510597107199772947726862080840296592784055509875353644963530304306866125787071741761489846761420094691298616458966512791376864168490317433988234156656189371569424275488277149032115881281886045652429705686875724550991391014663970221658154971701146543587822694523982420489710148795449832768908956063660625665797289164101052421610515580981503048629144258204693031722535464989980229349855320691086964298115120996949929687235089143288369683003627914765376760712931541520284751501639729342750631111144032601248875131855820881332029857648813358549658454596786470998567906039903771941713590319004777806967949862927294649886512137724675432151944840159384053324217285191592172035582415182444332826650193158822965657536537366004105442155666620467558354687318323681427387388166288619424666930813263105448216143115301576518470617212629949378431595108260669279130223665403991479422181145292370333566937622560507190629152972816677979514839255786583537447838992558765141377657685803496125781417469041946456172827442505087529441339118361776909652693502702254962471535493875309294477338842723917950670902393499154485488303184406991294527220964831146199787106411480901831743377526860125959589413278627582945880001723604460966276174545321259849966595539932899116898135272323231188741842854073575494027355423680017074394097035109688460418426310752722447417367456651778364366331591877726515126982819391294783198332061153701346119337196206870663128999133797318056868924291716705930004113363565429225068702069178888660202401345499496815033684735545451041536916883441717426202447454406115926727258780212558459219765086703402424061131876933920413699486332193716250316102616903589472930548532707820215564023454071163864309342218687094484057734945170168304427953784223919167619150800361756750008794768160392217953120256492250475029157764810865071744333624990493889704998751404022779033718784471158206897533901469631640966944560276290593037178772842644935050296864745978276941052737740214910605956886952758011192419247700541905015685597104288478888683281283524823098684202906883665174501035023528377271406183240848108156553132594650967625727098673555028253717683379758686063580651437799028117311562331653126635708129815956826658918175063855894050791524623086119499317854952646354613156125678880889909630665178758562963427805796725900678489546233264441440299928395135388638163905045210294334749136647862684835554277611007218221575521575648869779574864840150540861545402070519425032407063499951420059142287031454105744630712774890430876954948892706189340619659246854002995538975590798620057245323381668548706977668230239512616654061682567444467383515601474459977656633551556106486864908231711376261692374965630352646575157292972976186163087188770900657358376141731957185960156444835864627004537634699460212483171658582926193681541561452870272043882239854550920779259556677227766683335435714276230482121983617559516850385440905762281888863656461789419412145283018607003192890381493388159763557439902538105769627011216806089368310291590209321248887707055437843837261698094507332313792123468350845788065681604804486825513004211083856958870888741846665124999344900766445686796354628524732203382499614612325300897098847515206420919429202514131683330068643214630882713078844932576452684077620564008502656743765394933045481016594670009915892772452259893769192270303081892969941167921245213663471575954314664355739065065818055177193823168628236999406619439549126529079648122878392065084927477491443117687823182756617830110764216679024436264755031109278967445419896704232742562489970762093406391706719197508016429173405537392184501063683574526670151528626094653446409716539300260967679429624082114135357403524439029161928260109527366522878906106530064990047457729167806444516304494036062075457751701390324285803892490234519513940830572435084537300009007227888513632806289861665379208265187594553801612240979940681848038106261085096229129453604182017979355511448353542780104085355610137364747095983768694413423406701431090912751895241233440407162112578297728307682686035965358773848853817407677662544065669017452141834492617903284382453016454467813371857381756018529180514195572668922037618109948129465970159901015776508884304173371491514525740258650021693694902106201303664260420043299448346482168568296336801125877117515185315769522246245757275221242293555610909955487222389685750602755906045118019499081946934221653254556346736576095578014496948456171077823533161292219458801388713419013925148413130185965668557697833125114925235120465617305003140098690721799807713403190006197791536663948200520152694935508968974212764783902899894394452874629803138636660636024903724399754553104231357399960009838837638345383254896628382515190504286321479942562719556130559390151736410560376897825203437257405117621158709468591081532672324281935707354540838654337231798122826219443046154593811553175640964417969100309730436718862058408914653392896827805007319290225400387854644469949984670282220238690146628309727987649300177433822775529663327348935956901888665895310145757306432956347169156879077822690950010293144583833899044626613272487375500783967994909342006573021538128728952807284010789550012203129145840994016356757102408077809218159817317473515001023073184289838258205094967555482383981378567532626362877717588947579874347763355909809827797374805100731803845798741179098235633180366744994478457828266862923164589931212982664094402907997109411440076448399573005716705261887796724015278947347228083211107439758788129561143732145607416847552096125674046571664364948811764756407227025140686050855622100811744830812835369381014931697054822917006439656614635077445542302996916649526824333566072744975820193027976523241867165319669198679079511300633862797510970466423551063083956895171710021010628008448812327767909210806381276074946761424419158433128007125258808247255758552448405302546044521328198524554129390781286938435319387563178534638493150828240092666701382535106563721340437588016452132716085497806518351459889152902225672652501730757495131802805029136193628512458640625386136245158927399965446409248801082149653771236644709797909690499917514882328234435928313927596739784603283923196883127319601158534021011084932325847841211730321694403018323735874038913803235706657154748285449721252460005578886054073721657159289018729539606270806082110504372334639361364751866257948851449204384020549338702342376605902260866226390945372957068663500791216939245797651179352089318042644109238516795961306044210738565756862493430126494051628534451034677456902962587690072584315406821186507458697824338259238138848439035242189456507578942402367804572639787322137821440070265959963405619321928505503652765820452597720221167697491760594991598906491818080142724066829251390304792066082358872737856892289027025535820343510278308007946583045232108244029434911490570480917277564541582245768775292764021718801737873371447162339323449504974215399182453922885503894747397120584231643565906164610810478410893486157643631787242919225609867462453442283173753574502656693659793615739372138098311065766485897922852906972898919107087495100537013750124661314273669800877226617955298015279080062453738737112204437604619785387459690899170923662110053400722473659906051019581869981004483293582216277107111378565394078152123765279808407750256271999059393371633461286843360728319486822939444008640806618509417460789822192535092058060591051090951942224977238917553795754904495281347494966601188179758751304486146470008428685013473040676479920930563116442609640656221876092819995998901185343100991749824809046656627968860169664328694432275957314760037598949236029666856151581982401364661257190726501313593880332250239102388658722770500044478809527540799685937614272594476628838118693748780849078708391548881122530448923830047388458775816312666245990680174017599666155222249270189236755790510928529039322521001166308327645465662708003084569777844281340022066162101903569963587693753249974461946327177146157832549698325164554195669970922450675273963446804460417312137810499428226573293990494985165556270709380272581127722881465654082928453211216987075594203318610901556874482388911190334354769378508009252397852648481751236793920288358518297755868218310719775266500513927438465919864389817915796369754743897568914385274281916775162405090500114978037403317163046970891708245827240591192506803343451884729959237241570950219579973556037310974874586970128296641881042825579717226948793959645656717342500192377673071898040190165348587624503842354220823799228858545627809639064981603842455859405697668698146433365419982962422217085907497809551200565721036055397237807547599729276464836951713505396983424813310057856922641845857162244359632971692045308887247816174186220882568626668713376935218736837299174593264493994384277263616834766315589886522865288952848189924283118483063387760992400147293064900763297229743127943720572592644519728781272886137330655216898890789155361403511484295210536030720744956874431006400317058650890349151019996624978895409653205689066542888696845241738266384929172216669199564553369516323613794562170884492755248025250535427366218734171810824196104319309584907810980293228075381805117715984680936172738548809506902398026492573861378679460881765030368516557683876750209512547290719944866077070897853814360291360697751338591525042933210772041053222879786668042940298612750513521626029548316037519477803200506853798384622505346062059847067421929069456151018979523854320806099123141869688392284649866358028113642130000717740596825918987985511747147301413910137278595788658271125500373395802529074852863569922899304034992167007002218414687366086746303660836592007804705217604917217503608534061521943504957893415557445314587473480760506174983745300872971608033999041535055314011959393865818429357384732276225235425042590226260378677844616779281864887123440051374695668931016228171505486499229148767802158923726486732631219962321292766407703704395570907158423442707567262013616407140631142613469428888390651568557180457984584828356550966175020128563160822122281962464962770751581737681060679677205641813129655155877101787847895955993992500141690240830680834828093830643069755946704858436457009058485680282065683553306540777867835730235849273856582148495549384982313315971093960501346085488407143711881316347965506041088621146370071135302913020496927694585579804439784270935912251991087166490749754760040681022026258127068413258429006889223011986432591908194917103286561517631925486790783793708606727899162565586338641317986332986678252124349706496063866660120683421522305257486264304876852452921936605341341462913374697271946143861197211118356988896831515498261984116582244402372376489956288292560054590841666281839386308640174008357789107375468516770971551242062698322069869720636883063207099223007856085407898437643993855529043761930718045659531871393111187245080144532247225415941406650532398747833125425776213008316074763962573979781494293837295387245201846605496244152906641109476430748574010038422514008150310264967516093654328105734783456239201718455037849089811352169625467026137974066818890236066929353277305196896873695605871234227069281386747889473594330492955052435991889329149633745818693995262075053603487488226031110950099504132870940635246954513651599377106053657813633130055344565905873021256408453728905284191963481250626386246895893246290493072155022939312216589499503356799686585340648677849528467267773974442541635229657066527585591413769655013801862420047329001971122277515895623271193557452272919827251669756707828740622722753247374182432675790388861522807679183592699030781193359648386382698799814188073056275014065810137469108369152946529262808269863937661655802881499680982995026278605132193744895502287070138062019429225504144772254284234612958942340140749321776571671974754872164676661562016539684811562887573916853672197262285540723979787771229842337336349671405866930938494907742715348546571584127983021378644916057820739861501195055205767424935115681411437039624667197591733330187602070989073581184798851872896500715210138535908963758958066501908530581151245821801800167716475719027422194289113291433103831747513164618558705965417630249051221992417615732704054052540054749434481556680263058950297807309768712636143714882408142398384528649904996292840863145676686252197955992936269554012174557570161002905838518250150829943402002945050843521987260193038803774576306273873474700321704763774911392683895086022783478798985847151414550953486409078332741131604536593774407838332458102839469588643129328792315712039401678280267395091078291202469729562158530632877298611328232677333263137813959612924327090828745100394230910833164931107304019589611715323329971182872437402801491106529681640001126280167634485308238760168550725241153772672751451903160483614517624022811683982793315840114555660166354148582663481807844325690397479537622278141115916135792414498701676074152347934124412673526414592888767550607673788774475363781738546617994338355801671002843297184545893489866982108655757194137064193072902774787720883737396630479117394949707074896411130433418445716929300696974639137302806477404891182645495424918427571517684457485011528986441752513572207936121513092079527793124229472606584479067829909600065782445029578764116347546501449909323371077537659673960068444549415500563021240357619084270653982187142889442210648272961732992257365133658309077279513118653364110282231582643130739766801576307253139803301967880475852981867088987434654265352842813281672702713037053634941996087685450467676676258306305474864264331362468582171934144689440927230543914658093157264094195853811158036259581646294597209452927553411399714553552250737305925217449187475755110562804295991876719360558382567104550609248779987539216374269681004581051756502460071826738205704803244529791946288612344774836234693529068034770694962050587786160293916612499126057886650942122321083031188988080792583550020296028216711190458315529045770320365937262239464539388223959847735149285849281443957876544815987216737076051050925893921833891922779172556835922666378100718742921585290440604684772920895869502610195472533919246098728148911764356425559933003577535450588672668104246289020002643375112252181098451641618763835414560612647344995182878027972730737447899686941251876517774532462113477053439396257577135678762069863699582615435174725955992358072461766366457001697135189407330235920189671673565611935499014655414079561330366995868629881426735135413939911137656005629715938795171162101568676557953789702136512387124423224865229574785340192030294864534713323372746926221650039898051257298310605405433303808814422527223134778380177658617734945380370131373961229164068782487197794484310307932352977913594003148029547668280069984883469679959881790109496253067487763052090714187438553757357574540598152551703298905722222733266453642230273437011258436910841356807074707234516336386272555420184275274178659000600431935833891841589023530387116062678707165470219318220551704564055169994896150718914177916458253062323631003424216893160134952893637300999208808228676324714762131895760418901129066654923735660719118177104399376781653761438449385341863221148907735575958365190802657614353619429160892329124230491649602662516970795029696810055872407102305185803261929570877432377293291838745080888189064585909402000269779686627320918337699875565222617955432987208901693190552527845999339208295727443043697802499661938094562244994084555865818562602620650808704952622229013423778778445760850585739206060842126556496010260810875814365328368134569506928605176133569862480492214851466981013119268402897190155357041793296122800299196767073086495743261356738684977145852200356524279657351356437305673082243995750293747985212074604593840621551125996662046741707186013151238215562552046637966956916275585571044338130761715081982409410168631062120802631349859203094195122312950661334579415423653479158558135096387042225773391603217134895372996835354033030322676058460724871455993674277929409352969425884417677573325282912597864613516392416184896311851982058125530145840452822068289728294930724289582564749955864191642350037335638114997967518767731910246203863066447452711792390139639736558699017866669577575010972244872623163810901149026746478146142883355188176179374250302853745520016159894223028745726172749096752204906344384961301693965418177840280912815594338029420283561777730924543563852909619742139099711104164575785807405518201667894607039171237210275557291489148380765551049683812012834457790754638372502425516582202015497723527785936239119748018150195828921981206017610551755654159398402674339590427383538609590856994290562541711307562590707635056275994660233001661513538270109591578701477347830851912273274861178067082864275911188580561732058186004946836117325823781558135183666974290970003424650278897374423836265415599848763477495718019105043008557100309274434095979432914609707558304080689554998264165040079018745089863112800091932635703703782212495361891522774715012716091761265151907245949751028059763448034388712377478547259459757075728516357620657300553116946412862292774957202272415935217774066044878413635902772918252873026724448287343959802428869589145842671274826399455843954689503676762882482207709158662093747058234718373941278235104824186368470572088904311115044590972129021920111971033436147858137124472846952354587232130816718305040689037637353028579872557623295911616623226206443185365435117842843361837981582909462079479483765843677716015131801702048781943993113324830712499044331317099801356831395326009115238919712158771109087534102650943609189231099809057846007218932858690129474303014573471098887145172177729996707230158937523535196382607258181146470800177549391540513110153060036194976659341045167564924413521051109431686329453193856562090715367009968631300799990083336267153091831355088222650247762381326407612902410795201542820562516123817541880745373293422234932396347439808025642667609562133215922403468143381246233648037062194406189877755017012014254849337839889043144792603544011327755732334333713888963579561166805089096973632104424220973018366967543070890935334866394958952716073550006847798314795568896365718091464730413815770166564964831675942639215621251535731771044039592773346139187744754488997004688929053934195656246138876855409966313528746452144906900526491081045715422833986640995015259880764237944093680922399594002402092141546587975234767926223304901025474701586844610506135107014050912159493859303707963619961481334429474235316473788098874045563242733933773572295740843075871971956720970160239114107773540383161917866349332600695535132698419260755974584342987894358627066292490246010777162367303751969128846659764308223995038997496805182936952717574470999681393590190936545026884458026350787505801536729301866599428081264762770539729309294441366184759503239932047388558741832798861184652258330115992736309295106164700352140615838703158605701963960724284315048047796768190621624107531132574223862160094972441943303660069488158516318755294291433529757146250179589056500929240347297486015562988660320572507268476763019509902279307622810813303197538774755003780440217694115846644397137437795467956837819818539752925635289332159779620646156411856084729468781477623793699317498000810301002950894901691914208861659808697104316631737469850993197088778054556977553699039148978348945098251908057574744160971516631365913571055012709467919442191300988630050581292631648906495386519113228664760675230047380117875073777275114917229971901179151627112032219825486277605607254697363003142454629676983807600809683274372005335751511808313382763118701018696168004536645366170040322596501393070777305218684576538072056783809601770555696927504553074654409358086021770824159331406370504601979316017877929323032290103935063764913230840044477469045222351886235191629679963457014608620926687939707105683167222491991067621758860637220703822484392227550140704246632965370722059547373461747414955994559261945718095181471788682180368675622853312515689747663242764628198725448759177426487510422607695652302707964951101098964631831870798969698730645855126231027183160149134992062581265255636124880392270283243428440256033016870684179694284520836263201769646899611071697561694700313307025349792258485102611535038686710995623300275561598294670659432901231741623341089373274965714137416603976787218513975712922317091809653411410891570803405173874364463527638823568313927144549452270634267853633480295780153938166840210563302110429761271643930657776144444308355669656361121752911677329230528575732067643307378354997623371652436935417451408912933553763021245172323128416241437645101031956190368708206960446845186539508032080793885640208375028742856368346592635610787561320706521531387225015990242048177683281457418014177312454010806437271350726992064182729547148881484859144363909898793618788354473333176877526829148915435232050781038898371891648040587503741883456830456262824350312809803384493617438893089418127815962993840916108444289680852728025851010201655486342689193403426491837966004109799565720120994176134207836030083355463590713850996848084057113271538662214758054102953665477185199790549796186736280056408111715142088607413764522942707811960530934838441114130314400594574725927352018695630896250779707535398418138310730404899897126669685036628230236942690460696661906271377854436475941980563058428707319877190174788295846446662497034823349916000221770334283841241694372219411459968162116105898173562782402903787956411764975306925747741761464021441304300589679666401648978744614551558325927670488777286155885493026765083613572731998534758609800752783203592616765365019449629495154860663632858307445503684378747009085174495245016809232800891229569384233363396036931333885500310930996259699335600713618627184847291368236678997642789002887602300096285299093206903728492000372260486700005410016280111706377186410142607053775520911658829479150709025185165811485630443862800291442249355493081817847767527016729080995513277923712375618893744363539261435544621722631277330097127835226375916704264381287738256822269512364907647249859554669202496806298778038644553989421624284601590874545944601730198205811996920063996790947378290708956970189397624205988653953833082403522234586275875765332460899437830850665284394750976723066711525139593890448999270495793362900280140489455324297993720983228776960471645773483671297686510310594469503638878364640426550275898598820795185769148779334156238223448935206910283580479868811925541121955287701834640771837986270295146291002182790919101084244166343301750178044842593112056338763972628167809775741413529208909077654935646354358578936728795211771582169437892648244770212492266907956460906246449523873080228577903315694831495040913277950490314868822505720345645084124528415120001121728948995588909408988973484188180764086847690581176170662313897296649084454019015050026522050284456804031767769980647678426126040987986708962065266247724780321578032463955637058934903253287461613113894459112330309660811479338146835275074969839433283778162201231795486700170344496383477196361859780984508526439291403205366325604458759384334031608485792202570528382682441639900503963274297288942980256461081061691877981636535969467145880112873105162564953567200252176962354941074562407026670548716704256919059729018585459687366438737373111290424851434611580886611641069744004345797382642357233486726805482910374135570688467277772038409337080530637533120268348373824986175946735194672494845975842464649420129774645195230784842273711517387498480224459853967862011006283486202102531148250425997153840158905593141863766551817217504790225591267126013758342327275046268302993080266046538146660943663588053437509106462048718612691245385978480033017356782345568586765920117380270321506909777921137209775765048768822928976225474748779147425711623963485247427394750093116292055638146248107384767188409523310129292281486596618998073025153503982277257768685427193304866761796141748395586685070596263885951479477534535389441442417344945532744984666819849906752586271569892737599794665942708283074363522367530952958307054695865005652971301339363543026882712885399997702137220245947317826105585614809550701025767630772062484364652333097637269544224452692334493361624880343620549180647599654702318243959513357193270198994191195493045950495830390438573930303557879480205633471214846988038862127764250139009681236266796711943368583526132201809738749002409323432214059030560422079453104900990613628469872432708886022079444639513745001468467280526679494068375067479882566366720954635559209517478054909076767827347485724469500275824828294235344525568281451221508420090500381710621179145174529502791217779697434091576530097915885219143190678587573827118304443665548339436261593510505240557875396538887035338057703814041856962848986127140431861519985816188698005650958836464508278564131742460467025400732125526888875279984555068830879833841888894467361419813157481386460958550528795136787302352104998560103969119386629737158702379865500499886961438383408413738563676625700839219405269223959483783883071231285442855220216407321281974394260002112404454345729308186896855245595716997082499956329140087900283600832690642146364756839424092738584197031517552669605777173610636788925244855964351634603029793934859959976166315379818236041723506391941793916514525282052575800545829856466186229682991069796395351639209000575625983589824744834034196211299427775517123027840231928548112628969361426128008775070948917125735553784757742131406365275838474521091514020870092151223994803615017907589752489454206571399387598050557500790825635311409138672626573369214410428208675281718698460104550153116444915170578755045459058283649698563758721557425111252464356741262972977347900081384073102999158105667451282071344880148106166681377128617413320912364290166174737529605804419013780702980582203907979970740936111296502250460939676536551777123454556082916068824514657439755814838199874906502271047824808218690104577170936415902360021150382255420179133775079521650064566548385187920197891636153466258621431881416487320463012542815478315401523272148524551018349622968953492120184540021194626888778100898003731803895083253523438595554933374468618313664141943608410157437014703371039353320539277529027809893354104219450390569200780813036498354415859729132950139900282796300392621787842120875945501154427520993800944867545566954842164633952433987766000008465276914242470967562780986712492226341222936413430503805012858008918762128632517738140200737748680943813655152391401521242237362278475219222613861892897951558389009046997725172617623692214684830848332655298061138810583861774709036743086452078682587191212725920150792305581029675210333662981537419403663627771044002557075442949324499921120657041103833678649455792846748963847039287488208062300837030858303315347205040496705072842872753947125381526351025409841131416349187197158183158020422160885395141538701659329585724331440357993940682730874977078198255513367497588350593640568666424109503183231852923544442073006773797448491558639566738878859042560507627273384596316483668359496535667871482040658149447306125937721886020132853915294807576370430743673116501015302566018731824960882377125758681214758707880955499386056545727673151250127460998488109744106031185712500057944534879795290668822180275740962591208859629040748896023816085333011513453537762956424999542393259962896163502682420938476382579970063446127760811854174655266089219999813384173430808399461734443786170894559997918710214411505007288228445203269690990437327859537585759012591204617310069103878301189857870053294796583222157708962635495160868787787279211022742712388294881049567914875540682022021985836427064821284057320059148686205653888635560925659522642564544092573127467716978853997817857389443478924424870285687159994668789224866822218155627462596642075377764368383475728540825247250415818568007660057665164543656499595879092216524433025299709227057427428252370181425231951110786605061752966907380010342372354870864628092400618328570377553565964368196344092541639359867944584542775819209392307967055260513624288571917797933176333160273816885724774061501740793714581268948591384940942986552669872522030834840835307827443760063386265541587754593850231415053032477824450434831165507607061396113819153406654135150544092580146963986530572804140298947209116054015870695793559765397573514835414077021572874409664296109915660720764384437685811184986014537777740239254679953216667088221072521998798011418854870833485823698980908652716934940713718328302016656666805449918773768060178649808570517325032219046896734388244703084121833127605444867624471901494791752458811068678880357241789816511366337986521316469563611867222065153635096721610450762652308534907004166894137048515931204298144663088414225381863163976053735296757841936240745913536817805197138860727286876844673091510084517209537330274906646931310040248468901026643428579949837834416752728349390624853020503715211375215662139691264567671847456700708117881110440066734878188947759371737944811750485838728264292035269267107708178983868675192896070286970809766053618447677844804508953713094418231293685612094518583459968433586983736859335943831611497123015402182351047675907245160084569197297814656511028141413391338883030232254717424588321676371648069147637002596759447602249901143103536638339734934157391166289864215056003102483959079508966273961359062559431126997189348280214213268852482353806209706806126927466547273597270377098745915048596145183878319925727255276425147802846895107010164072537100359309120646929512433934641217658454994424061981824240747169294145624525868497033521244185671717569503905223764223255855238361015981692611283181665111189563302739181573356797035695851118936071260069812955335789523727192973034624667574930218765868305419438760687075578262105561768521451237747382316452950296987778442981628348324466960382910318502603479935585791281353995371972084749614590912111214397161433786954892775829392695794574945788233728330032862771507205624586328762312651087539344289859627886664247343388066954590793166844117387674821137823782406081952481620186653347224252041719785537706699769345684454129161139276423997795694988916649021354009701642704492072322494349442081210147857857657948572999664773549324257273206406706572119019866912840256999624186568218715626084647073911274293562414348078616949874731680753954808903162426970488033270832917262311872477388581720860197912210646989844170141518644904956123974858968104136765112302259505602431056287077851032753675345921668693644952819364365532581745552094159697090111478634629640743700492565268140711093808012099733380729337700670137468642613037025166241778870478775476673772118308955391257768707752395252883284597648836861995760542765042399366998161687528440419949184329625690824651772902576848750817311999858935611217222272066787125680019683287146182829638146195161336693459195384406591663021658643935702991893024349051176379827405644669376566833045509405050126314108560863432099547936726188929148504271495119636560130686419940213200742471723923630440050233538708052653552474522091546089186614725902675976826839456906932968014011573481540670216447566195329041459004581892311073652943400596841998814759272651721617948682823972502359127968111891003668437667516715495217480473809068630590666478423018439312472346042053391642949782314535409814646149796434221186034336348932277153647951380321073987516606744399462956302108679671027519525244716463530384959035247070079734189554927618059429760825447445692788634853430355768245701198980864938135659574872195526655650656294017502540916234334028118782535759290547206211717261420092573645452399076812790225473013311080641675760284942471801886171501838618427467804618539170348258684628408014127877528387964716589842489227671141652610193417538355059108033951781089670573901187917894330687277422372244905469080291924077349952068243096317691102243584185562201185162015461594073333979671867803467814142241484926392086611255959881279239669736773851384497971151087408484810453470495253949439421510207370217318623816561497529945313175047392056274400435212793861342648873586715819673519290837698249615941033861789717566435680043440166124420519586714562488541323918784256282794069668461120955924084659068475876790818131288323634981491901237641779308655650243040960256002074197188105796640335786605195441223398484961674188481812671897373864425427553400358332397282577976202045693409658591868296435673279690464017436282995100678108241729388698091148366812379423590727297823530531462432611837963303566711312005837156055822294948293544486532263410582764355516459979969890948462958922405500799882494137999376205438117032954204012285732347256198264749834578445854027959327379124674842670370761382191853358189406666149200184417545783998593109746200634561935477910018750329947161553656604157083031503762971549222107556962295799348727965137712977890511163782615595743155520607476658039330680558916351958854122580749709678348637220975558208444627442430863445420094036480337215808640891632157596501952575430685953634068015601185970083670432441917086524692543904053239149167169748449307765061284644943722953844831733117524934431419110792497702709526567848063316253277685530854337529876946927129385545217026226820625953948722855763456434617591872711570753352206354296816567540649069987723141389749358137709585018043621481604579461303808823412539025697119071822392792207057386980558328327662823633260426317512046065144954897332778450613815750645650008118769679131667164064805636316396407830694337913427675663760612775189596925739058036402928053297251460752493973976762638837860201874589065015699964553871966489876579558340197422529377670974895990033034521143906095520073822556974798573114732462962191484601503090562535745341644781358876989826912042723504058760239953634879401086941082585504934246389773283854847113765984387956324087871880611177718914032908126755151739663619963913598267247583135932001194249669728675083316405079377382476363893988105199646136660083782776742799134070989962929747441146860029221992009121689998713496226724244760398243010701819486842523000312193688608252634651694540661948131450976912110458706956013445411547475687749297009327630234050885499783185766647139691983175518068440809740005947108592495956036500888237526699694282402931667830313082353078178794186498552658517782894504830494832798257755097024324093511007035803034388522118948658692323105396791576403222284079105940770818897054813300997117187878574217268745355634728047187324655802387605140588014625546726680103016630066437530942057243840886854690281673819965017627066100298367366829622116114792582512510902735011467299142531028231148701552549758558848354049911680313523848127276297310213353001244419663931863863866064925895105290611515580712959240938743670954524706313858556273727731312270411165912110217018408757439634966549971221175270625234931184634769991801406014445400595110995426019547119938380522521874492722451916195663970623689568791442785188982561555523131444021475255941855767280098353079498403931180593699422623904336843751700106743508916736708754039623832595513304774259106147555685689604238087805952010187084932498008381514594135924830576425366976502016368771674978317935448833954008430949399022029158394680779795784867832164635803132767107057055556439646378579124713818943656690295249204878693377583833320768152455065766350405909651724624024627224068772983794848767236497691738255707863991433707732529046249428445200605281662491841178246593576480534897902390610985108110932579546288309827676831960230719801666155629859821468644706710311190256036250502519081496622646946784738614299890402602402626175047896980224650674493821247323892529753900017565346518294597893626134298198505808324977491140673672331433868290556704145472917102170848443393769392905834348515789404671583904326566197638046768175882149713225179122934057139786499623972881366371827218160486142831950585425374596511556595198503684885907625769154825859279742132512240596098944032102331527323178141732258846763058333313649452692925879365800069810296307393298714933120757205024172171665545022345356167372175779539868160581554639941789442293621866979618839497694546999661013686219837760896216260102794272837061969771059263437659482224495219471470539074817161378361880856720359633732284992622653097523200643304237836051482843381591396676050738354904648448810941875012938088120927296589406840727797268568108309839498149662491009422486248929130147145927257478067675527565689347167163293065182274599676949004025241821439349671616351265522315393891754639143618800802928348776273168430060730721525778228269173297269480190105559439573976918014278210402645111173601801089188378901147209868838750840605417543171424049595994123596021262521802186045131904993771142294153643480772720610184055804093640841011341603304193433710925368776546857752279190871546456196949871944369742655285976706866700320681142956516004148413056352478323066877094256962282848038760026832610497648968165173264230683949831679672575225528336369971206562736861934297497786935300591883287134189565815225362135672008034817494110524075576904147539007785398332172837774129292814742550961495472348267554294437957664745633976496169999956756247517207854960320769616850111501275151465631431226895955272338919283991773987564767951082869741878289454879415743486587829166000792471417280877617769713429461263388154825003524097692158134175971361450991685781549034981727453287551878415632191565890555402822349897773121583135709227818161322967134741216691102358321056425884041515829571210320322398003594656765197372158077654826739656653838839030629678591212658571922421054909877028834141380293362892031630032254645542973906895699405437299598244870350373964273946677904119418619988032706216650448481017613848909315635707574817081575321450810207762983119638434758219766912814728218195528822935182111299403055543421628099793062214175618731201198067780623439775107996435025467046926478367630625588585639784353659665951192209981730128770446835541578832510852162515389035524921211669412374679405193583724951269712322507906525015096754487017964948178242316854431179779080250828046776683348435384565822800645570106740044735285643625063336339968490793576295844056674263287651752869547066482058882262060461919820149526125418353944224853207049019021036108612682470027721676647400886425417515976668923367192097704030683831097146653124244202712051009113105197318094332366642616273111326614104340699555860728122395652216363772137718206729540576243243937403350442733003785345669816888803112074953683313226443803455455671751280625433886649953345431256413150384825526379407357589879210824225424886742484149230148480049123384887001651497305932227966997685421004406423329024794420258823042511591380272908229829526771572239899509169031340340471320078608335230291145742406314607966812191262004397837333009546074729350433119806752263767420402707417956440371647255159134049236069154195335559933443355689815749451913019178658980076732844616160024557104280443215020455340597455952234328865826852944590116415350739344735776879786723056211390015229841575143032565954824215513259552818738486291231463487200819063901636320433247478039606044070134376580828810961694177969191723500249112337465730564598477308410646793221052701057339641116709958760188140052082860592630735304062047805583529305620653178912518004082332399761592583267155396775130586031118535827540587408407943528083162687032566533877558797433955381880857999247952894943366921712420057930334188335662771425802165377515046174083276213920542983327933311531061456563526888115203751885272099680099329928635766592874952497970939102594132288936938078179448993821321067631511845705605594540988080381548004895832443854174785215054791087273186883236334659327661473457575602094467536888938208476526350895412251732256583665435849073152446972254249131193740380889534094749321643890301398074031837510944921701911016135333759624832067634873796870548838317754006227295461566382497328948623837962893027873786240561214246633849383881628752492581013548528235266195961380851094743619006141049538609183336531565728661174172835693467399574541469770060318611450939062381881927634085410353581636918690788869583531662967559376531302972264116416772325843820611351182680586689390330171164055900703167676948154221176398991885745514300836302042992628948147682817420436620503393685555360402002669059040113710452068412791745216721080738767289234364861511705195503512829684266688598731614885379597938801492077418064674372007649818178340781220942355380406164616540303677827670279081563817830587435912143521252359265409721258937469223827734030677688329681757403108405761564825103280877421858860277556925909739909421225332531778901778625535465167727178914174258360673717828654355614464991676624890007932825782800321864187850163056662500368788327199288626296318513110704045797983667525920905540681543274784818116786230026989173145154640718831171887078301591169138966602267785182036524611104176377154462664837362006620647563057594367579225479233716194587458116545274838296706945706717942598204609820280760161240511348582671861457188004596894477933361885941983519716543417230559038524103956274499592731418530847830085230219295875871074710167549308597021424201094471908779055484636491475795330547684985063358468676358183136523618232079029929967294721714506743520870162821768190962885224937498829931486933028448886966573715059988415499867175885278812378646062784564595573885912958653730057342468232684891386011479365067114104012317948244921086350937862276060801874860534390197455528501260910109506826630987813793238883648074550516006311217394957767213708891246139415060612844737412259294939496096618724013830987188050391765362989499253292898185976905575328019601777894965848280130969445329234374847146834837321014904809883285250151857068502733322385978741486686502132103586537224680077046011864271162928597637786351644054953969812244417297563122112586132649522959286811191766830924853576457053837559991699844720714412129416595098640094185014208542945049299109511560116795382821689472548702162630926853042808336333405880633514404177967414213515251997790919103916926095867848964828818734831937697146250886318655488081535630002993714054083464332030390410103918928129757261960868364899248876462764390880617244131728403865632287894923441048681317951701764946736285872601786963460877235311633875016944750342547886099944463034555112808593582431166076483087254142488675656822311698471019275040877946569732138229249366859502715955981365475940824886241469746860024896979625012548389357553699730166447666205734642111122297987568508485593470463098963852867272295013820688808204195020119606630677108234991040919263395563771149512042585862998918467634641039420784343778183250478507285246758791988249516156673365803426772270961033938794195329931969736378883800803850497037508768019711628916013136455516728963263756711794472042498726290583682780699498916063503525444474805744013066037985387707866826563671665489057335823295719000448947509916336599203749929004952546758704173657463250980266964450838725871709060651029300186355106850904476948934409459619153076924719931752070247462819531488394144225349362199790281263546962377042983897510263803474252162709388373523503474326191780312278245487932948061039459252209280399324598289473949918146188415534015567098209461241905685461676750510613071223854240970602685260399265522809931300523909947885634939854337685938099244381525587846481593537377278593514242684872822327684762468643320608102064833952186556988539883466647919915807951887627170103598151764543938942641850961579669525040639924102882367791453266159882036867488732899226527132070398593146890553489275943055955416642110064654882057119844910365120954746631964377340253884199311929875872770352407752003691057111785364166799646896938202687774470357325105345867183534137739828621452252037671239698139512032064140623209864079482790473262315541085538875048464211316115819117842281849163551496054232790740964814047564991071183664586621739816738511387520372883584853327734303339478885178818147258382947916258354188714215336074402209178084566647713287073339714068156262777716974851819530573892619608173703317340015350623361844071297897193207460656432134519203481383479772590550405486490137371122255606538982505074569231189354472434201893360323856766804026900580744083950213479663336914418168878810907980000901553806130838284610048889108756555522995143592871707278957263770153835159653235321336298494125562934705134558447934781747836807022423153861817234083580616201943959660222465267312888232614813351449187359527359913179836060650405023469069672924248572739697284583731752218536197807032838669280050871979756600789768326171397422825027789903730290939473670499945005715455439672285452672543250099254115170147428266485087711673915083835339493393856941092258477082714471655634631211582386982396512230813341371448941644237781667258357351387378075008195943396593528473776299126532466383387331449351488158319286255381897174151428921134339860161369396160454696424212603725426736659154979346549684938239383977249823858974501045413891028279836465703334865191513667062306479662028100054976064374319549833145579755082574401127895553243198863137104407515503983413497059306226300925020696634117375536071309789448749916607286799590602599316560335966514964881479575807132445129822048212946372214105112666973025021469480647588101923263962674848267309940467529702189281977450785402462278929421311906177740091405490515022404450746273437711267422890019320969013175641152564452707440312073480567351300441704207091422219251164138508833674858974077185555286782046519678662834966471638228766159720312960953111306208417048377699430415713703043517668494713986359006066738243410794207955383578231504856141032885288655641880510109695221327075746398383607218091976523825512438350109719134881350274550087913228822882664603165547975485578299322591833404997795111866501022968221217061849000418241761627623318403325309276160478520844525344864788462270451014278788576142089311187264555131452858063296823725806977884815001993558836258615449008259643984420776686311237339455289620206208356858397348319446979172948064592316411646161948133026294018485824756618868193828168042225429476629854928383641325931702106073828492088702679203027046824320400916749297945769518214903204814926505691246164503170679294556231794134131134909022353141653109216407078673312333584265123509093636336984109204329664914502087100968929543771382131125279564119647079048091561029743527156086630339320136107575047129147221307853988470750133181787876302755176254253926489875744080883122144186758234094186550537969568839718394122005999749215328797481842007613200121785590410411232000555499566613516878023812125948481141769745616028651828042775847175902134056466742870312750264138194002139375842871665150692275473925539423443018644826884856388730770455254575758622526941614017077176568268952490551568867840592858096110159679422060426643610177106746182085448009750796473872768158580742212094744293068508460803215783407462424057938084125154843728014158006272910232245923423051011297162535514933644848656300457982757229790490046551641079968043968819358247009835322754407859201227803643208238771619617081232885692583460142800584868491976180432175301830940091613432086444674423802941923337155677055531122003924521030320635197638686348750901867000517781137537228461108591941012055413834400191762883540576890753731079195322076924867020844880574357550937344424087940099157696020883593036862172205673401958243976165431357835170949276125810403967850007981801315466453370280612873970405650536121314822325737885800034911334902032402224985777483258932956779499386561609995674786052361066365031411657514514622465396279958189822579018115636251962988954789195090194461920929794419032065884276815431536226802583747942037419160045317946680051018497041374605748341050695506253832493883715854706936972788902459864356791319356530924160196101051553986162646324016660505103328932426527565834809512619093552780973132313996049269976274232736376417877494865260044990920565244887090393844201212150141139223718100452346149819540279958694490104341428291033489104672675460652282028266559376795537796017940266543982798040420160312965632712979376851946312954879877384135946167017194083101413320128612720283477456570000066380855583088531777339944186603920260594490906575414786160455868528892524907932709956597531144683629492189490132281848373496301035977637497177299767938513971323143770311624226535073173926251806490938867217645275499954692473866455221680395489762448557736495822681042054356983344938614046363959132158499184479706060457518587278310518278399489823985461514574832302153905164383010360835162349388995274931941658407173517823764278839918259749287961794407504103972219704386713654256560450673134439922546862594835576432671270249797052403157797504300671247409546397183973084610111739738012150312715701717327831631756973325191324464315586724004896352679628676092720244323096020533172724248822319356941680800297131609786015480495456960715259713617026680034090770596435827305672377047955934802015539697458644939891858762588525638698976602325713896959196381005806678520196297931407323052875967394073688674329151750638832231713211438537374152600451589486215175322178710540851902860429957242881247612440065002997662570895994345999731836970682059005456559130857780629947540190818523719694450607207847658472702199650512286417114355272948881135526337542342437747982827849673762351096019822708367267167963095050832840782272038336965684089074421388546549875748915078339590302963521009548739963216566262493800011206671159464342615254367251923197233138187533127557473125437605383326941185223443354356110321422252540833325127548627097956684983811869603394807390720856255533923939725238392234081004544133130939776122496598238153651950995314441727074660728124353947155099200817908345931045557246066258283842585805812186869858365515003817436319106162367235560651210994591076177059462785973751577753672502092535726084516270872006574383896108007566824016687411503434911262393752480610244185245881782590526893630571854358835060562528737653357720456619451789274171207489994715669006978786048963651887715512525183919870304971848564679544320664424406306681662407343190181817550813001886073887140830865273252365541257324348011120851870852057034298405927814946330047137333823630019899588833408700032679622199064744830267816217630937080773944620555212195188282356225468316485496933988544049721061107121286119160732776478005785156053740829891533102441681486883828158893752879099232938826965335618662004583629899069502919172006147931007041231745992171816752981731081290717690284811640519336880391015514853269038825231349761420135342974166649215518467989712932659043467658079496580765837967186164540967734522473343154447063240400937425620109218609746896208963272337724551023570088364264298810918305892340494691815524832630067472345355274847506299719636000433067252823387980120839937086807526161997976340906071977575200241466291943154051695628426718332812395378470484369607986016727847645007525001676403683260539184205240251403821089115461170229164157226033646174436813863570904484064654044860778925174275833572765274037676671303670795883883238417563082072052638851035311572589648654908305518629448753738873769920357416350837139746266775585586203337684633444376092944232754828868973440468638160566490107927384959270575456343923822139977549977209648039078102014567790741023063978345435694317455150503398895377019860949616025195911982939666264599557777498395607239023727805521945784748652615361409861995414023122521974601935477861975364330418795937856755229819992526160208012484615156316308166450400173466116378136978244287716143271536910348482031413132831093159485760535568388532147228672892654543921979857627107196354244513297520616570876390543208386381119743644534873290699394977401928581701549211310176475703189691391124962514869957716746180639613481411041046814499869544172690902182069037785408785802818661343190022202201006974152203615777209278876823278516820683414987008570915304772610046662324177062195583602557162326391493457945630676340632523776822377464963766685936771708136848073410193867958811256866560640219916813102509655282811750898194899754277667479780900674121301383799219001457157170505228706470781040385999084327976525811763023588783891365897147744472160977330869537924761734581263829951083524560666493832712270166867678923336246808362091156883142707970877688116190325573341950020774538976286783019246047511736810387898771594586998495766243189040000089043842038274493925553502649847401343301374587946146926566106975734482735439167851883035792551858042640103047052589552757167110136740517429957885113160358266587332285591851941560797450441031286362600041583491788370520650735556435640999198556479058714978186366451728032904799801600226626311371079737505448398268056773403014407394856462796368573654792313816241439776467695351466809985883187585306072136204830968585495813815559100477252571073269155890205397634370941931022876951267805272767075808542228852402773782211033533602566930533441700333877149550717944680577377244802670224432935955467620539458150593379855725646240844445451764633681811513744815632210204781842527127642903184530831755482108480668954206022583402008594915704471588771879196363148541092758401333145111866249927647237920487249295161367648936011001798131329816783243229210253215508098970990212455199337744921507841859117441564763700283470935474477318329987568682429818552426659408281806237103985615415266860739482062323641731521940803153077948514014576913223286090691707506615323808481119733756542375413098432610779897232851674585523012302108045905437227177965637483987582380200797629789177636224014717123278910626665727636592802351816315100448258853066033823654885697989911842549801414113504289947684209357402764079794653681232658424964768695417513558464073645159656980338287834510583450472043722118357639931861994523907633856182502096437389370042729478162691863331858323335479391175313545663882436091151864369236943643287458416586529802795374695654561990666386052141458944798976103340218818932461692717485651830028971367303799018584909741257590019391705982319214913489965403388228561701554819645095078484510384578763674735345583067238645578390307005969792216248694689803659833231571518613563669090904372909945800924097305724935498056908281710913064450694205669583039273261011239753464991446707388890861443300169876991428616965494048743220640551367104429833215833995406071393378042691950675136951110590161155125309058976891443217624396693314681465514763102364401301048928701358697295226507876277533872265549867378676808096665315714287560793835570553468296735499429071404369796726531843765137997640439652938379929997146781376441047921406053607236005229549692984250070708505318658393866432339528793911880446297608195647433865824527134428761596168468068120814127142027997759463077085701784774297783890211211816177869555616385059025149051122222307645900507655829844087915595869695879083720317741070971299571010952170813002201051637223719651761976243593891678469683731918764780907692069454898776348834841771003401142199838716056416019285515183044336608976791956382372436969859926878262219170571886647732050327272580966851161334575187357308418834535933062328169232262026230433989975920701263598377516348839957971327737845035537212053865263091502100831541935529917331597932828760187457208156785077926613664919267744059481037258547687004318073628490998763770741573993810624857800426650553511680540807450336441298174188702716274741960563564795634257531961578889848210537779972674372570223758639321958753478809558590543549133041184037802722032231838674788995861712840674368682327379952954762278016472211931684740624504745062591097464035706601560178152386545882125616596988993546797297494883029567631790246002006957431575510956822702913974473037472458540731379248254375061454423114516860012177182802855010061754208983989953280120544852806920170832691376528346528069904719938284280873519641558059462147632854771705769658732853691267270348470724427173793865391643993874449045081166128735315784295932726658815715427178969302819709879275079314079003793715638634389921952561728744720403231529616614626419944800529016572990999722894806279169421781291396481257145541802251089842021104787455917101926309826450882658036133607836660575108255161140897839062832376820277439410156114599462467788745007798876201355877047684779494695388406904642807351129875252270620874406206129207970758022066781604352320259730692896444438185732565489218421059962036515653995450656703965239614803124450726672581425381251802130476283970056884259710182147234009634080304290204712279045467009349676688314801620398125439401792937644087158641201785978002473407155283413785736044270197396134248529938387866821538207513836674362535814368537162454583570527256716237125070796201566565061730488657633761367701493476381504163748274740584149344834435868131746047791772471839112925448814857793685416054840839085744467642496917953847438995431702854177908454207799244081604257374264192666520980467602539497340333769979134425677459549990895425261867736652351740217654340378912718841296839321756326671556298922549612679495583781209707397164268826953500132406789917775519333350983104490959868195498968870286257433464894436404584580834179459274831625959432692733257907666079772504013206504259024306422497028046855164669868102084427629803790678179472915802628671598846127247228242391071055480464837958665047252771597654043615776959152344378831761459018600537399775240264863829617897893180939212240503927152833613414882335879230022378316490301588170040050686358827972780666133467604460387156752737434278871617347141209300473529562525855951450079952933148061371428689265793739644818209844982907153797504940306346170239497386193013483702274241887619402099866436359707762769465807049117024222008109033137024217392970952762520557010741228265220150778325811878016065395393955243853738878833732710284126947923757624267200393667851886165356707058788667572293459861628265169147483660551129293721578754722174149151382724687874352022305816275364620322718238161930887040963769377840014018123351522794012918812690331720207196119022826663763258561844438893552380183828173278731406543322555186841066254158784846547305197899648680714933918311328453129271103708373527140658765543680089453944309030377131388900658597137865263432718246305396223202609849027090952167937493819672851734157262630724043719640662373951731625141531849400144851006667460158272889272009080136814580296878494055959191349746013157004000154752783338174944832790243102314614252955417497451078119129548807597022629647999446204098668880363110742457350934892070585094036857281275772821608292725405275335758224412478068456473422321272097255034626548547682620516094220017707585253846242570631032339994052093560378399901781908575161645551387622396253725196517064095252970876553485708591415681816847582953051340756170435430758225374254498484834628674403488777996803053922688516242879579475527787360727040199946014887915454680635307451605553640697511775774115226977761437330345257635724164035920582086834931599841711141861103231611321153861987599527698892921280468430816302214231951667789777669379592406531182952112090930035396863219191760373786938090375375446367288544318644546249007282182960847705193769739847912536183295596601694298446294032829342419960849207944854015751482935244132357872304054675657856676922676342262962821792699487274780816780007452734756806314754930517532934404323014013956631413399739449950563375305730821929802841985360168290629833881993474159691200909621403035924449769921130897566662251528425502179070490334533373967047775826603210098406102691422855242270326231550558779865049904711086236717020726591031725634416619140204358317209940405855928079930255188698317722689481465221136924712188465479394274545546948390696571239629654099583818184428315571723163532484932783909806580762635674008197969477860901215423146677680761479269696556422838164993172088348877729929568676382263837550669275172751445262342159214736943492945879499543971094845194096891715151178947235981642228497633750390312977162310102963910566918536716929860703744102184194131568262040202816205962527404156293960644025002601525844020899080764687676764931230269486001388419433887833068314745275062399288921284138642608750221965216601833034202011587995887375139815049363176249307596484474740074060291264187033012837471582319993681529976514808435455783110312132484455691645827024627428258623555196734823222734219720484423319649316071001170711392001226825109180725467158136712768592407342151278307754772206851212914840501522193396637693710023919771774818808193390836892260624156162843020337843758973131510773546875806673087794907543380827596746081163579667399743084308811327718550160916205399678571988012555275228185596069828565494610562255445469564783058277487594842941584258646209624533372329910419771271944417289082790169756356638853724578933603070523053501499918982712922664986803832301435329673499097139191452199225256794679916187024688422457018838186370422623521838569955165323361851347987556263119320337841775136743411576731367955034064005913229449584814770232754349746892230149598000196304376261405807025063909425360415770461229766446042885323221712349135534589109422212523124774694812989796115019571076203901914454484734872709254301193481485608616801922737804701160374868883165693234390845005136589183149371048149250535202556162338935484652480198150316503411841165771678455485941861990619695083900269117785510803974827471828902847707247446022843778897112138865472309265775052614671646999239138760071467682465346333462039371912627642890679666295150018367628902898269953141965396489348078915877243153414583827524631412842519445368110061669528551143833116181852971386358367186067016702328053344133677797808509661807714475056489068234324998408146496624525691505266627552437661658681370256579420041559701334218313161024995030640579436337466536062505108499943580405534174636029916999640586103864836348300519644541850247560797709963200625225745935057282498337371705931619449195768235905990739852664049098763944111498804347039560762137906658047105935323812640573650971743560729979882405188143360956267384355364621769153831061040090209671466845388029948514987471486340096585138417241417855587157669703737884086888018508431580109410173141307195090314119268658729352245376773781327859958028039198994842346317992656581672988013004568776603404246946921635836643929280911109314095978495288237766780607849846021566603727482923013426320481141554726742500726262654915835998881893388300542091682212445265561975849525419115424549424646285757949404531642128236950257875895089831494698103795400304823258421277461176787001500570163792685552595181386971597913767542836256359528584725144517726518587171635329494345068512498731105270258042361819849906392644370453583474996152673448857850870512439483208603044272197507428029899697445488508806268717454822071477176783410699340844879477960614123948401000234681077620757632102988824642551687929653013062287415580949712043407680113953589369698400613606573620407727096656272876003156366875325125821124552062622316731058984958384166023520459450908343058938443055377657921800162368461859528724271161329842304122449779100610945827478134784382899938219504108327551195647157105395748276972493126830297664989665562997867081608898726308576146450852798991734091373405480530297878253336257968509123056135269676015005077586495560381729532555117371711992957331367082875093954433175277253070219623412189137161909878791235508730081939560029652907916604489009572787007171509916501443669662357602685635684166775398830473682669375082667488482202169093552233088707293770805565703538824384132686596145051798901837181918481421089275165683857522540361745781857900495043696653700827820945331710491844708776514715971483677743717159516737001313875613033502943535306512554287705105830185693766367833724286211263067972574246291580682996282399220486916122763629787928397357731320625222819775542143841120133123079841813702397157511622092555697237693643962353556666085188243230705594317014210558379804798937879844565259429120149222112882382958603722081305296816497110359533258207368985313281331753983528074722286534110978446343011008490619386143668623485485081287417119183858028958067712652663284467332192450651961661515285503773801276087426309796819652405491110278492373014656217180958049991110401704140615134479446436936378539498195081059020822559500263023355120852403634548610345096415795317461179779250271942266924554023744258778452807615256194909064526966513933883259252538007785369816547983448173097168928037676232036059268416183865262403420303765231342705410283701837560461050454804602818714238158169298112883757986935288627047467819772339813731762928701717160511615676342742565251878602141130944501564730319239902098439947282883022472525185381536141563441369256522631926554010506823099661612155115153968044863664451512701577227761121532616060452662931062080234072215384133095141380301009884696598770154432751764975695599075806523053821472383745363627687717553524279381027308273314458101264588925556187642873195377481991748811575423946676351539516014996800188944963838058256508214408284729729891639185448988455530511032759204046599265549834205203746571210974963112296776183720690957300820848408114856626779518720532242590700437808841884021982121060346612495142338876301387450632600198885700214383948040059276226559098488588865830092353407081398380309340158736947165781569349737092498203396635370987649680013852518169764494541870182525822684780526474663974584001203566184377619803950812663387162224659946528027965528810645981798848570811714980330043457480781423850413250997293597619344840589062313979505962239609305882651671217342326048357058187876834908835125622620245932528866187298975969356970701894083728226958660076805262521447311708558950018678612406476817177386094461582101171739290327878526172662431137026301734306887053600595063932901792020065626416559703358385878070069724958738559000514024972316235838949539148787800355668153028841771576107382330700821548738440981085312846199857728285962104925618451333596665396293831165679280142837632754469618393101749935670995526152172964987057984971030272400501718806760589642478893199303316769736556277703371246608319956224080606120243773667041501365250193603500566461146259172091093906231488156424418184302689738856973894704562701269755016150120126753743089672352861482912516688476887230510547403507107541428017789917702964107634093277298927572870426028187018335204140178900183488152003508160076118793894020991067000686804092372644617375318134833709517130755766019129799262931576515920794784443241248572739076565575667549412284180346794876519743071075834698674553428109057603402258229791499167072535787024997066078131049759400010766507164037785298843478450399721235171089473395073583232509226510163528840392902721207851531904709793233010353891553933826185650029866882433523415372900067418119566619556105984115071356546418721418945560577909844992361241300676583493671412833729190956243538099530184230995577950087444072314367386672257912239310794513041809742559915054043355929143519659956886001980775953583525076310188035319808686574195412585862809131751563681079481296268440061501086969784271603394674929875032240144497487352219338330457853137392866807593593246512773339320951103869857649976005757956113169627057613259966208432707207368201608547180053555359939103888006993545461652336412540870568986168771174779983306672844953730011329756834342293250691740391068261892023226616553762493024312384535190785368385211893412600887417047333649765794452266704319282080010072613504475768715005225073512125978143103160184111452246496172971800002810288634930512547142881937719249326381853455094358615224679558994787010292114068784352648291557957356346300397532667423274928278277153343544330573873003678384974449668449253317672686931887091322903237984806518059246220854837704918091501557092625477124601185439674876254447592714617790741035976014155742085965779342132109821135803009967647543952831165014262725529332726732907459291587634530378790817721063096528632141979639018477148909372108267501880743358098973645780152017347101855463944204608154854517433505478840751005495116650202967399002605295759296379077028549770467475782257124755129883492803488212150096088103302444829689563038306020481079850313835966308713197191579464960395807187671235164636299764872790924360970838107783882043909455911422046174015107558110731966561320961748958471441268216178033725588798733796858940432387361118473802708249083346656023407232728368918859621894927553561860407064352054110869873322577119792404027195847252476573393815094895290515844522309684478474759818311110654785768884432734892916390914755295451133241224464520335868630701589567786012562670606720237950818091353632343430453057186655177903968960080158416834816002318852110826436612899818548942771633819821233802217712848876784791079527224538593657023663134406824836248033254487425693639006039425698323210046688365847778577781319699166823810922858146494770698404946404213262438108963390379286202771073567713833876860749361781232828530421757804410013688223301498651730332699043375703589108973956757862565880299628344653197386686010992028765118722446137346586671489534912097096312889242104760037393092940882881856783358514422154399796988938978515774633707661020072594319855492985421306119168414128268049017287423022439669350903495813370997403182355456547787046473459567280728513015728813413373805920767097226129388012783339705505320897796251652661788856821213516561585385344795624677739632574521180255797626615788059746735061303259261154248634723040550869277912637675633475134040538138262398886357361042675678099323356401295582173114949670081776868874307379037429780137265116441294252717620986925017257968105501302907194028767718005299222026370246568529405583005667436876693743384807860837376635574463384065619573344255754518541734237383190469620511191910770011150282642513610588580407293083164191951026646755484420047092979278517665118530743340823861704036896387683023840718554409859414716508869005270774430816184174087184896324424471916997991064278524618712661162560151435559696179354632798748683272191596561116431442537922686488513654173291497959506560843828783169291660536952907262540826548654176526443190701695669811490622991493644939193177398651205888657896520826028652047353464610626998440173067842374797586851281145955281905992358377393092539850626385287874956884555960962465628623595000107499509603132032743536324612758517091907657042082875333242942595627338384407241199551631247834110950403456726355077468388212055805437530702477863913923098606468863743077294215011017014883047823923657240602735323667508788656468944199431841309806592382323289976011751020349192725609186504236376053166085470462761122347822952068299750021089370511018959973202419682988830407339942057855609447724511379395539995296125046630971334586011397091031842573551969064917973964500908285190879653544309808587407797785282282541388677023109294050527473754334096174589657406219832997903031704758530231510616131811421361551576249780947158020543430646323537744649894942593161762973092222248166381075929207694634419855268688452076151693845099452318385350456828838494932463243572334550598486151288993027788916004412269436331955441155716061215036352280367628681095317511867648283000671008793879955449584330393961389327332329420144715647655213807564916665157298055625358859306922706392202035047313104684594191239312715665981313533955082273162809113637629218875416848101026499013798884393648809412523514799091464406459447865610950204289212017776712036711196880356716524910663181009187635796096124342599420669384405419838613828750347024597213837796879165480430177796529256752356950286320495788093587054659659080400333772780731698702934831077851540375945090558016550259561487535633988761788075592801631939690384998056126481599841259239916805359865662308704786566803305812530681243757340432452013234924034096908990970426015320950500534136986128386094601353105177675166681077335682691893400756213932013944739054143780313652470905076214327412075362216018949463307543610600031415444235361429946320193246716584018719248244201822597409789080579739783060380399349750781084967860144491382800973187199601706899201235808700829008326457365723939111678123244048352806634147270287086402222629481219005227088425279403514341875533861267090262423254592597446107085961560182984250662870029643558765683337714789311790822945850236068273979154452540782275936613755164108869912842111987603356067211422772360469537930627116379021819093731129479529929209018296963983687628181935570759056777451984227526311438294456257353638649338510732522777766727245039968916328858326185528298017254603301214344737247751252807060590448418282075758785256441275334869322542677720807275658952170936122557236674972444596265892601190644307467048907557607489577960258634446725186360439301522637237397479767191175152644408876658209664303747178162585367866715671697069555540595618228326080823231519431153247311221093794890225321575013498671966405938669064560247606431736019945592043962709763772136516196060000272883363211018407204728190451509793107744836452994010704350081419449289585167730554936878619801499650709769106616878348984586008997412363390128918705835853325010650536889631484668415946932841469683226332990969571367290205739033954493323552974272574766435484911439902042441862411895649245373279043300915848218945685539403081996440572594144475974536011523582327941257309502195089395378913541694800315715318128606364437394045978843257799457072995568668758070103738114535911860265636542177202017338519424821100996437665619566749067859281830814024518365393299265080402368415342815456013967817870993349787770948007464743167955114919326223651756249623608657018172945513612524638231644553285297298600660459497347564580099323153620256119038158454738401908691286033344974585400745845269867996049567083636476587714031825740073104184689529503568431476008751415992665916096120321701283072910634482517901080215008646701129710581575646756228776775572319690363755609449175726502580008001375526454689801607807126968680995102756205281489183086063235156993655740753941210619945023286992580084509491004684371628959084001815247679886375489875259593833777779207016261365800657268179061182016586302760100953778004397972855168126256140238552168041416958800388280065117196904301606196668285049421981823147588881379941109024187035667156172169638614660925156260492066848238062115801601824883054514984812041102489346370368649193279315941056262916239079405133135604805659456511460524426139960172924096263180226227603367812194186024689989903357857727233362717861858159297662882377689022910243141491379129630801236678882245521813561878536888343031545944978247688282948374036490394895563936282782002658702459182628797348410241035475379024360258186882422138750735892469840201992561816873746182888839918754291344800186848863938091920864910537765312828694897608555140158061585909423710012347025139123356288307310742147284988157337276235963462186929206912162706056487048175259444514400199197254153383515932082589928667628129713824556213553056657837456103277889558690299937928888600140258958787571300655202887256743430893192236667909017087244724846723424889103615778647367960112619791176337896484404683606172967608250855900133264302089628932616422321947550408536565241629468282980951462685417315228185643492400019348160480022892599559854083441930040155366654854490043247965721839641781124518369138658266806414563451272771013042036774207629498318992023412586078783397846209942644975369076118535280955646658784603328608284102043521451217371118700865068151194633664200626773476466935556256975851172912085833204833108253463966383282461583547959797198944793718029709873607005558311951715232377622974054640675451310373809102456666742632297378658265551835452891060622899268009046698479385005821470892636513326180832612749669896585247765641742887271050466607033836429612125460961190066969496690950577981708018451611334411536931715525380105680361301669513780967370788115011632656444801286667930040969922770644953556281900683409108220331498048560115750133492922926937889558043976696520099628365178212799102474334430184159683956154317871215108190635438736865179170949727537262398867124382577587267879102373168256476407945318271854675030189953956061600264153308916825694905409882085705473316034497358432256169142880372170382948416311797831661409202888688809630187132596938571449954204066813560660806000800248436897934523836186751920386627500032993316837932955943072993502242123323336475882993921346485163425309939796227198780292867925523311816394875417176631465861145409387919676799624539427351792257947109617464713008830181603090300769872468380673510934998628756736954912891583422894130007659133963930133518076766684626467027071894383579193678312073679445118344289509121021366681392128420565757709483123406854854701155108937082468218776562728636835510955737416594338238472490530905519134815076313861359464738987472007589943013966880307832993822274321829374800831395997397539360915053312574559284524384542949634406163410093163325380257207951364731040046887260166157069733360197705622521738438668759977018247159621757699562057057537165564472311890441899837945807115799254086377750761231558788561096731931666078902917474661356026834477745423316988774909985065591695400645623538563593874353747590500301004784535767696459917346818833278154191675078949720358729214591663215543991496478193129965312889520612963632364145263263102200873995017720141148851338831335076393011592772123147810335018887309335409524690654225055093041179652732307373629013661303682137228602042310199473038287446576209731654894507660341029089709996988038560024943827658721999952511512720132817161631496097772187302047235648456831671945992877010800281589515052584727104674411004580023129875577060867269499034278997387073194645826455174511808054286335493566950912788753964152576700268968730997178992924278653157035477892280988675498235911590180960231718436489328791150272230091091114265835143338990128396379386657347534363122465088231045066999684216679218415487235975752520702571784697484757179250768932350370407729131719742328497182973456087555418277755287601724916157616600652061870310710559693274619139669991791014822205135586433620425474247314857279474332990371521553787562106886900155029110866420085283397170588494750580109648037234851498280978270641122298546510191092865789070248069996747811128619099311199369244617671868623516152286207121971208674931817857068069320707265001579021064050410570004184260270754730551377680088038481313801512362761565490310752783100749686566134340817224260843666405672727033922872000661962510019352758685024041997285708357443948284001527640164777792122749926432514251292272763258656897830219008637306534690171362430354486378437057595808721639497486652732285346299048016375025337735047484874629503749434810253010659121578680314933485443666057658546358278248369506231977322070166553487341758501206628208395255512665079345845454731085988784413543585960738560319821103665588816797028762315233262000667504443821629246363368382168662268420670178673587664919391743491610967574536895121295299294491396648771433290824803483274915201187506615951433664381213192281092412663039910527483779714882353172705873055608284559244303534648469441211120003166800251768014554634744485675282806380800936160949097920154475978750184740157501038869169660030754665577851907927055699151047922149196965668535788489899681015819103209645532700840305272712889710439499828513656541420601122323094932619285355708745555588962324114165423461956917523225030642426271325843423670560377455664590848003444407051402134903585189610846474562415459909107020128837831514816696163629603344729695665263695271063398383539772163443821319310834771654178094775673885957387851179840455649429567343776953303570284905629971643057938234077996109733951817849594220184977696492519059680640352419399463808237294342763072544014857509626942731861777484375769553113818752057178092360246946432291710345058425017020819354348414787609187086447045934057665609898523294916607071808926569879178005505927015722002756728313134485409676665953724466339859882830062215773381254503501506584266347566042991763572974661526939888651254640268300793915333467125494081765003979381427751415063562136039671495766618920988538712587667682620363224906682318054783956741971670176257599992299641361270686391433099017281794965366522542778763220490385108745526893387136240980912460445398413998193528567426147014026404249235833924993278657576926834451411699528862009639312022255184900725331150694035546757453662135400246330379790991524290822843176505845056218487260898196450795243769578504161607452073343865926744863490867666998911388620950499229101242087443451316366104488103997807155479982191558487960474230711001018609506328178958312575496713526875426702692401582942231852701125799446003713631993898885913129477735126857059634681011245900286089701109081370146899325380144491230904816310690731515964256419298125579184715300430315224034672790525347992665628763996239811157033636148502175342940983269596280446613632285149210945689303888311371607359571427643042890967886551813193998507416391026426353128606009853901896335208089838740713876508340675186201721694103467557382258996013245653748309831540925448503197567950430860808071069105974149340380952246274244515188517589362479883377573513879904641628413693123587373006003205652412426654353004517722344667171131435371437738329816894830543480036564338833718447826573451336054195650224974273667847778407661554463500149506423751817912604446791059138305988891029264346171437401856336921562958615270605667148913301109334101165369446411940821383728033119693042274299786871945465719419545666353058379404263403986483563050797258741175004302069171526678224673591028965956197855120029987829866990779555210886706402102840918142314156359556791557554149031096646283483205846822165928248818771891502922680321097607256961428592580818228788311133333477272868395137673129800591947022749925539685524495977985786864958761253642576006962541985667960540412934946485606518265085897628694823019976477389216679710783726437419839271178118386820601565141108444417563518734063416256533276017408940909148924509713303144394810223767961044569985229750516309868769629131243091811125346823772015928610359176513381299255545518644641804200132192792825742794192200609689648466315337744137118981752320638220884277596798009994062836850115713363228053209825526939951690727240989431139481762732611617269578983937834699794091160901730804057079761126582364554651669479351766409692589994701902864121388977730676650668222089739144763434014778781515338042814175589924458445814734196606229377042659806192488472398923314740631390446851776790658660610997631829487606116233539086512366842720597556845458208545545553617924686640075422984121186513313665632233073733950961058685799387744125708739375100018863481013544069386091164886098950968421095168448465778542261464651001034202429812746605744121678099492684551417479079500868532255446122908996716269737226929157781880834458142820927562531462940334534562145316693636759025303701426330930560667706016223258662357329367051470590801923469543219565936319456119600221986917553773548582366061524851752103128298641632560675984323826155483296740759678761520652345304374615263895229941931776161503986118764645121521759723390456923554280236855043355946723669660267471105099810966292508974528459775751197732918317302997631198426227814983287596094691896522012357074910000997726162145653194944582867448728820781850129775316926003044144684009474993127983109109016323896231843878228488627766629943298354858744223609467555185979797859579482541360404825088247067815473776144755748085144779979528801868680601447445347992863042661976558758356502290010309129320930106933324576644501195276450457741817460285677481100425198237436364459824561749467142887398844425532766090159863323656919988929672752354582003448529115278707818286966766840322257215449202197030731000141359730106724766610713627299890418016613837159534996486086330950425814073667126953989213857731199181744821485979488552280488746875319936041705561166831359599348318678074584013349271717699756585459593951946207231028648501164943993051060855040057705572212522121229875275266642422013834406397274560410302425848332261435731531444982047663932906957059358766646198726523595842585027426303758811445849357636454837316197832766055879004846491204628992797677435171096780062537712539907077822633542297246214219502249966836549020430267345264211144815232877352362678287871552863783605146163650381493291229786768094425009862187024088095323622552038942621198786260951048654361030460011011029195270543725154303319095990680998969994895850062743485722531255152214572623008109564220496671201632935945328233676106709788942922870289116507949182348274828619452538276992708451883912140905716121424147357093862216094560376750598567330381198605254255605542250264170381297026355244157545608204244353726863595483649772796523420679509137287833757641151403999968973468159774593099488702567177640623630920935815929872286070272728551003977834181745580226365722809768620490061074990751907784326999738244310287486910110127218098065385815512640793917292970762749332661943026966869981915114535809303416153065496261360766643586831958616309620310405445407884575611730362888835798743246218128015660822260255414989662403107948575643525443268653846644930467487314736852786394577585665592650328124868300978312660134500137242162560879595313576007813060265705660456378620567401117422317565143548117282277449451019685698147875875246499350949274173182377924888583356706470678633181805472218676470179222077119129135711841128334090083570167400529587995719481128061697621159670143636832214205799428620963739759943710643193721955393866910807746327810323443138516303580911978302990559910902533472675677930737954358134053228434044653362132158919342596226676976139376455432382679038577547772316415489930760178098805332854313539223633876047060287407146900187442482582252948405407283080915368862696729951977363459928865557523098106493389597643961668929803331637073381975395236277705379936353382063460451866878554368882743013750802777750379143449712194202439181903856730371481681838421043058773103295674148509708358606439798394995673461962475640782881000625938789264057115056212306709331526293162567253928578325085619407576805427843782381051430743678959608640001820874077846598234638633159175730766999248069377560697099868201220944697534474343383185456929932042041195594259685708939511791405971746159779027351719760052788294672496740909117663312057347054595187258790450677369180350425534093815203784043260619406889497102886183338734381015883599116892618495344270262866647813930231926323084527290511351342441805293794202406700291130396466191424056528958220555154623350239122163507575437136849657931850387971251594172766617917609887342458031537870930279439729957088900053067189421501534516912221100722106186277070719155343046484871212984309567489265268288448380444204857587987785382944481498755222471893602311895807292169775476589665128534589973609539811820233083096633780826954229746951057833021589358341485432482656798329000406962184911497146810274719915984109454336911235875380012119046076655809029377897627374518286333438458362032630755614502166421490908508223811038557833294185174269215030525163839648970456210607307460630418583072590243088798130482552569769507427888902141619101721414885389415662571384773565721722014810441362074406267303495862557194494594646304137598470667699076040376205873027695130404007652750347003912219021906466909708145340485316261487539756543877238785060920256271710624461842013543078581719677363725808775126671363232092686197380857276418782678102802876305059868255107906815663212366730281558552857238766131151497459421142978480029078290655468686869037392232342533162040902550916672490812339298722573175509141422086321583258054786986968559204839083399525521020345862213914527737093413398503138380261441558569448746583402972776490668546573240395452253371792389159298602253426102723342272798552128555725127732549013488243215936537144900651524952174981555276246057357962470137200178441854232767472858094703268971024458816139504794179664582026246613975308363318452666199216970403395441852745810393079561503164874423308714923695501012361432856928753427150023892772252941986193559048801425050334696877889329067983065610399963566649809252949714090252685867937992540710448273215853441991433170906067917445199877684204673751381905013645710596749352214880965571516322980440480067059235358712050006397623555248082366768079926798396219869204396225746760229047825835473862627247486361372088794835960378113996764176928410387803989058990923003708631294858684840870468734718111932260828669254528422422419496380005661464410649993433412188241912208531185892014525203748580019065264855750826794099927643743303061088818612605756194461915894778491491105463067230731761768853368864059469832892336305119322163325478228228008596204184201041583909440776970326109735009294029316894912600960702020955955832497743026122034025519074332025851981986859140147046060879829132525617441830696680081137943394538944453835781977118666300295206894317724280213732875230837999420953169281400250168573233278771418452756389062368366590932432245378134781844533054382478124124476285234174185665770799443575246817551087027214417223074120481085586179498230382790287904762702157936890600291490415320394603961560493285606126897430393320450838669574918661268172588651268594392954495463337286152239468650194483005930879342444574522621876187313062960767908278842578847708274975669724677497556868679392900862755119695591985366080349022656779959468776640416224693357828152007582299908717423245468532636825180795019405265349883024474522283863695258913664371312142368398533759824994329885631948268495142397100009324877287775666734400355605996922091536012058766507737924328076790908542391626416028001003896628347399963447456636003399891102792898083808967376209820203531291257728937588651103788475213349202801948690654028568531407757295540190377826224494881212684640904275371957607271270234455919049017642714497423956703378704539773101476179782855364360414836927254753515978491075690751286033539561153296449034748389183846829096207616763707390268086861494077761760129524968213473458213289753974949638913183417016466414358986365861947930377947828012691808125679310058769587870487246494773215162606419332453667641996761480434542990662590687852188840060625203310480071540469572166860033519728060556315503597105222558153045008925305241476309186204329574739464086490524614976288964167516601161671954483976421339146006906869491993512386268980692461821723679146149322472805241744262685879235178810840968727439321821893442750735432919922824812737565015768560483009684867000116347689925031274642904424081837280728488064129166139562690858116121616777434612515068573940544312639289915234718530259609592097603631679152894760891877297350593918502422027343416731633517803522503841420879384309432621502253129678806299747231207720037978966354197282383967654960260271559113837882261217664545593979894535227541478544814335724766227808312487940677886325209539161397808002788271394733625548895975840170795568689257947313794009983880414393348166813626001768639193191169751651698905880810543598502560138281773075102217429967146803124392327750960303103331320514836287412174261705446410390014433013616940205064699849677529186950765718129581550224937152027448591535327305414765248185772823795712811048776595305780701466917084357009237981306694772861500783950444431889798634582325743395190664603214370362819000461498973050721135483188390251669486421854091874613782560449040307875166792751643038687563255325334658519506761589264941889763165596262179673467030161684200377620317145913064254019591132092776395388269618750160101170875847138096593013165683319682926700049079558723277563191703191305019618107233246716179753877713937214659312975119586342453040908760267907365001784826254090427561770846394366028880751011317532197961140733594345222993487050985321739657832159693406930670185397908716199461648448732950980351808715395080336545337739946037254408925174863952991214933424593018881974129809616499976839312396067268849057789647526342858802433583283517596916566175016825695003485679394940259924909787447741691861755672041320375149363176661680929903375833848915120671462384223703270868400983347770588385119683509138802661536247919644988302536785051218113694929930942243313698426115230092885170953512594306577612735370807552406468799404857682312242448052167035000519871100628742343815293744901944395943626309782604571616278429111005497340718680668227398943717561233702126992478286075831976799015687352046221533746491791746505750689437188840389513143840997610511192400921744837340599707027294266412626486741064514499551506094669677001118817161974505696940665934381492947353714232137848564242611148035057510756373040911141509669669229728596262360685155601875511014931893846231702035594604657900512397018477084642595317570461388300224589897813292867192242001692223741472955864076918619592314230460454055319649896885342148072986541107213933750864761704567647554642458049376642871904095232629524402640281855323217622032155687558513679061863228543493742286506065874344745783116018135084572130215853165523878983755864797271837677584404747374366768146421098693106407781247416415788025754001503205016338856390699234940180210819614559746887184821521110699284559246890119226593274255827684597425713195878449637433788397977078420112911864147308577374870000230037944806400670515285480738906243411319472364809527618023733473641695337507672064143306891751815625869138731780257322650710848301198208687341356752930785037554295234144348956610236793514114983958223146880680548917900661309192757821455925011467035616543895293294873354098027897006938016250060585868591944711261778699052324768271000309013483027640268762316362493461213117724977527132366081568460106178455033194886344467802676202353148398955695962673149776116649432332723572084220474229465995594885370616509531903201851130296257481864526228660320956060655513378007443554344704947505851229063110879279852481729095522857634986107111026757290984499682725904221458492951988420973372345333042781675644495684346356167068854887848703299007061740034154703726226307149014867397736934111040404709328715429102089453757376596566252415723579123711364451698410047628950306808187590036811041092833503715724586932667822138286252906005053001356540258347484935966494181729689143860083375726981671452618702442223586212843206030803588810749923120301929637522868595582858735854191551149198776414570361850807587449653859400388775702175442848063039641209596034449896667046901721700730508204293182537596734323924350348670623590769863665685595890660739443793975950470364976132186169956357599645962236189609427971559049106409803464274312700125153170785576546094479861134829602754189232334906183541301167762512612328615216225301358881087785659409158521305018728107056700780425343758846071970205773306316984320089601127124436460314394525746394533850314072333284023901946848383205442549891102924850649626070760765446428708857528423217545577805418462089596008792038195135462726415942548326006026474125465522914372240541929190780137698810914068244718137911541255557488172022721255740307067609420993891316179892337795586944028719787400928898493869729200942867366712014490040272082043626623779533826406176503398130788711525151369846235439515202131153825461045921948007206829421918797254782698361753444111084516560481916254970081841826792369647383111920053347018277394144437259138994177844011319707532258082160587392673204346185630308798573074820953721861237894277548277127157944286798867828974151510827934580349128416367979668000606774126846149439915362514439877300516273798996762631906941964521317331059181449444465952841049934543421316528278496377584241866126445309927395748340549683302883176892572557365759721468190821625762248850107514388706699396482855454299348211049892371031450495478667715810050890289533595557767909628280588206334218078304197063150576045721055477769016518491849915460015194646672256060576724286584620350107002385052240510256793776005883281374036135954501297964741388653874816063080549668723946358058321993367615742606093796866539666568645241458068863982194978354972988359145638955070270478732162543346430628921745466275418945648030368155633407643603314107742818602826069159700137510049294042819501448371330850772768193104661234866998763652965734939386673338981812178964737547746082732275563962120993402037676484180886176683100064695408426037746293167698165509506633416307605972733288215144225416758518548848324462070936322283116800855123369217302464142087926895712672989448115512924026610478416825789050389650443963878241184034941061375680584417654988221147951815063163878373119584874041868453845698561210346520389207540339860710397554234765620328929615285655666376629445390357236932561660621529886589709771533801005630691186460706711356202010590763291186485044243976873344432423754135974549792518848448772029670601517289944259914506158694147697540500753591803756469361773794087321801285333859541271578290496773612111578967857677814825855370257001533771173946214925193782614676971825594024766918692758031331216904043450316521317339096385545515009062519988422812516589095866552657395427371458880928892932850321529182865338843937251823412870582288620282022074948865117311986680609552896544477013783736598754265805646790381218356986876132396879427571733119940301981181574121396956814019181716259562359154153788156043406804586832646530635735226130723590224530728566747846723558287579199344609382739221845831203027859271190372982637765565700502899494857481797171076218304797818453004432747241433232314802608119902311847169214597636107156212848419951229127586435711249507396499776360874727815257432400693473561263273480264044556168449323771422550871839877022602942593371772223643642381194890053770491328684192513891159788261956952209106001555990051397931036445495197581904474381615563469246499660175594546223656714692751111865444808725294456008696289350143530527925406349371791953442017304030002260446913049876750383725012762673158725414291980470814276139307219466960049233737187753688588405717512752166108966377642403669763692811976980708888368220012152923908338243128317931592981870901477619592200548619834880795440970103438543991246630366022498095069512953811823789983540359122157309047159929827525300162269738317358993139138819964897289286888112810076663669807625623485506941014025859598567685794024478918844830202474723517204287146897972453939555042520118571128441474961871729192855134981020351920752389487371940669190092967578462653729250576606514256207150376426253566016034882256460817926290667282373090817323512891973159326790482838847186192354620967390554670257673919771384190993341838899102704339214704671988876546305937593749950031756375931654655385308652284569913924323708213229683960974342538773306642347964457604219583280137675471811316866334200898093721182409987357533256833339890743235241879340288032876858316026109821730022783791378746638175459930431273763782723003838461594630830248612832471841578275401496521356069286432618201129500061353635931345395353526434283459826971856321712004597673053961301785803992133832448665806296039875769831231498044650387028718869514560910999087315813950363453235417103337624635926710293852971705504080498119797146500461407495919573019096701796796640806671745958060926326378285397743853956658439488315537537640980023335316601741586337968574252689563992715833181677895066391533244776486768949783254092099959774858615534821811265851623900581510870682165391604602304246659994616532603878872702127005162413287775545524272711280198428202928091665131508912781058847969934890180340861005563245792998985691087825450720047173232993096630682984917271307774183132611013390027946227573168551231096344823204192474912086396792116850741071241510830597585246901067998917433744005698701377631641876891092888974304483105216898004430995942516208056023863701403730757101068560250409538346123959001140437435652683894535908458903042489292810568641070835155356659770633208161813247170835810734780203973195973969729800377962736877308313046971913329613633570593191036654053473238816996403673309867414341576328965353473213654309520509022953161508379057707223889204497933661405356668822175099213321738282946148058943117967049900600043791706456752739963215977158348115933063036656961526252813481299390498909197358308720057083341019976788380298561462641449031166100631293971846426123447144217806075942441402766453317883734169154760439780781890164676311010040570472913787350926631679514575329585654948065453143774223960177191315121200475995433040940952647426991226424423601707735273787132484355275523408560746885068071443979507575769848439581394298106417460317651038864189405247964875951884897785800446908725695555546975809134696053133877626321978593767187191195009159410454384307857207822094898765874799486113325873532553177702099994763109976583989854061343524759705484017306416880419166470032165249949138261347130518685854488659340344315006053083972218348317203103355612278130016931486531805344439860775969633701110874933378184220905069418086247636139000160567639973751145470778134632240439560932623681395222515314931131916337387685939468912028281592011750341777823389811175211240790613280061638742257296704838777623033887368712843379715911089333704721091432113351644452609253580629819120931045485632334123442014096680756587211284025483344156566292535926474354214894947881463914139778581369279577581313232346809849956878340553296403609997782441230174148639920060165411223091309589936493946862699158120291087491362685570553746819441302110606996673398281185008814597830395470928434806643223184586557490782443931431886279228602487831324851473398466074551515829723226904205494387829181259542762040250953546697149029024846222193569487462340969923168044319712066677035219009755367187355916709924336735422833210603462814645228300475684851193141135590446953021138252185480348254938223863629711709251624732511168816767920962312255064698294262641851042048903235447351771689101122596913661110370634202469860410926985686767290114175932394289848637195047573706531284868799769824402038193723853228782475573037585866336934119229029609580622148599593867805689217931587167763778553656398061390280104581464575428556920487446166074191480191001296361892368428033592911171547301341633038170691150559536487244292705640179772178994483134816617253524121667997836285243728037844569015986048210161106122785610884929394218167811965598077001659190711810452653622411890762605419296806230393590651824604718589485746134490524773090410127746583148156035703050231134162507523030243826845663476781892596171165869208494404618862844056985823788566826888944294544773879184769953995958816891820513287928108756604641073536635516263329485597409421883399204508286348663667488763479229309149349650888645332879964582943018602155998737369173564668746740060678833077065925734263320318565517344483860201300996462218123763834476725096451030650121276625339654577364016764225598594824688190187003118632919206664281533337955139271986187308030228201495526862148854745860054370593872613842522855610520475341223421825596386276719514254637503214319645240096402811187691341144576431796450343705240375441683631644166897242574742767644889106271626953748924710948657583707933514611522151738540855146453228065828719544075818808629538175871407804248113458957219046704358494302242929862298264682361257543448318139291270063577022936909869680386670252427453871610248728630464511597141713568486957398800663014182608617095646238819118070310588671062760050966628147622540893032758347408883167598055270389884560064685638294315768666314830629970442066723939084256421464495318873152191109302328050373944939561053536790113172535929715084281977174838297257385144756983180138106944932510683296981630134730107451416694593739758556746483572581275008058798021873136734967620624882940606198110802946841655074543237576497563680869490216114442435654775597659120992065043711945728328953568016799274450429568300256475318659670066844343990628062071896668281378870106355960231991698678189469069079121922790375752975181961886752975563540151539201311389808631486593312141379192122692401465840546817131783815073365095473577298754703291980204039779082281993062138931442928375998598870709776878151539800549133841333214075886080250622302573874070478252596388420365794835457191629168031692478805076278241552766235711031872109523150527870316616733964705869167081323801952471457469211632302317491699517969240609036234589266078025918203102009176970475118609952186758330962614397031979314400070054643889204427332719016668502420549218981663308470850780072336079906462724486731737609961739146711848748973671061791662633819859389205832947695118658505333939263624833074764008091963265031351150188353693116115468539820079641453670064806243139420474708134313539120015884023890768870881628863730291945312469096254899556805643957070438049069193837278878450593679148213728193752095737388969303088646073216891750405539784277442788107884640706250845466159806038592525132971522312680523788953368215226476715302395880054142995441435822808914062085563714135451416182299203353559607245652849073216853179726156581286032465253701298746062753982289130344137568293343269086348714559342253778234154840340332215759341854423554953797394428340411209382137033829445876157197568493943160749329146283657773322696506750384614938424559944916163068778562455869032155635841435109041369920051473295827934059359735211736843531816100651606768004915221176373077284402760473213829642470416698009782237473007443772112794577775431382287987149746457504766109607187549632914864366613540779411835120199676953732281497515252702332026464389777463847488184808717264920848803346064574917906927426962096930904325182104729966906602324396332251643559586700440282097635790206745643789703649204993580658745127371730039786128543539244880874520096762375180176964786240401019759476048742034786522676120918985576535856951935750733138859075602296285395740300033676805849804136735205120334820996026070114835490566892910896122197974969860726742278734405492947104455622784111497169546081748853954100655935927713058922435355792029247446857598476728398426763151594254187651312547599436767567993713271673302209213875858521292384195233895671981252400945173932009941534944349936080751037385432716753123047365082313215950032044007937794439706960252005606744116982283987223396126371306793424258344701464302577833616736853149017133424530974330431955883344212665572038435217262765533089162535380791896134547486631478420482366130934974099584836497677816991891837992454640780328605745177932467539504435962888848050335114854447542748004088492760697871751189631577482509292596980307694409921240913123409710176225885593386085357533881231619317015961322671007822539686650839765975549293220072688670498001348296777456729453868836190544928890426014899145296253363264171833905019960825351599213008396637211415527166119391235258559730162873652268767744605655477333100139210868721872122568668202205485365217675613932490169970752262113445704355495212826862497105073435691045557205432321895872509197652799220884979708275950272872675621357117348119971892715812561412787981961449527538256600297327255754040648096432964641359442225550271962985348441391561387037605276789148135592757890876394295286295568126973098270468819312750223780784738462576183891468716754390827504899627459251340771909903478728189673832135315998711931209010215239437846543952321451504050709460500835957960680463311312682394898554024728724206858839094713414116876961712590954491818554862004136664441849473672491257114218681949274549022937334663341013975483048711093075435621550744702764210152763507242725408497202778990437251708419118979302590910923913036755860940504953625845483794358327208898676860310142278143791241427412341749011112771511897687570599684557252954385131232396853303581228206292633083141424192831794294414566785654490371834173474316885863839619927166585053880963493795814318994942861051624164917632990339467900887056011596600587908837885191993071380594920858343471461067524519416707083253950521973800592672423209755220516413854504125288907075463117709509786106774152246587885663665418355955353871173155793470633475647455898988202954480719695765532889595983430984934735999210331844133551319239678204833199537529852755847601605372323034896145075390489635309428655449201722954600399649004535401794298532547642017324332774321136421000941338570913741537193046769530878297478788141812481437407121789551749496048119077698115683406388691533863876535632185625946794143815579518022680476452693218073150725873556671247955590478848027999085468964145176994824502172769865804089424975409586097128861718993259301367343013841879136816499344507711243451688591875324622376074495059555727805338783520495061504440632537735649033804656408676653139211400648511289095160413015434712241631339207891208309373759280850035412892498069563084256584015348329160092357467356196177453156954891874312729155107246748526240055238775936301047555309422743540856110757774047022833176395086500713974661718295139775344089167996432748777382238875936895459589734823518863825718394857576467074064002205515968876065538333114410646843224704240728437921377162513751845194608329659015182861439886547208493279190955223038572772744987483894122356866964348426832134753933404653101024074053334685692766277129845634009430657200464606514350406692969369788123455304529453547691640631971422905216659408866401990485254976993603961589707254155710287158047051543198043490276017144146154527993152649400103640562810327508617719626784958604182126785904171904480268683229119831486343414242775367662131546257149031214379158721261366628430757589275848827639088737291286898116435854905763313765273530985125751564093970040499096147057292545294409271528102526819716944265024242723765859629368649949427473158759555612885054711472932996224645362221371655508377264750760384229973687119402415975530933894995721836122597977984219775938714785279716606637776169727270411782793018968598718001855274899793902724885479495132739354952879711497573326150796109129724683004141694289475441694235848842340191245847074842982839928981504392254254063754445281902218486972807920930562049627305175399084616489629025928319744645553882469781785092216914995036428851569274342285002871476032711814210185189093469656428334949558881401046160814882712955780960498727739244680859815483777730023736338283051082411406482009358738276311471174733235447310807407404578725325533239988919585718257840400659944744018383846943907205986096828995627242020905249436002794348970595515146087542936754595603791332095694836326538634206915134275524397889960863796717908238492308578835883804810796339649971450348589722852431371160327841898540010551151233740225372761675141439616399146460827738981960697966418589803205125664252969403750259671135074722961844243769878801527627241609233269227508792909297142728794291473003512703498400436812547330298236541127670961047207018614303320452515836637435681097308039820498747060332016771779226224320190451249861962214967704943465702508039668082359957874876931262885896976870235053208359232713325366440123757351340235910775009614397255814385921670948810951595535487715952119370315345986509319355787273383723971329715692911037533642972144857396027065078436986285616240142686813329027962626086029086997648958543715682373523121552726653400785018830933447732922183505239236582484885615882973011354492457273183251350091271269029983880523420021460667864472193113127716346242343358410534982450816863065131458473924004057582091206929359278806636320879762171189348745642898973090076122123629737657829321563838241876832436502402003926291370756893896926895262315305452630908558854631206760784304907952666500455223086082674222107701881028793786519088727173734909708855168833547859838478891256297351307549965131348017398611042193457588329458921289221125810617762018565139667972236558129037286900698127889239289634173287450957675785675897237033546775397999571500647097883592070409933380354049171733809659953314447275469198677858150033963497559215978416709328319610199181936070912153540726380553141828272679648946302215145449549085331061554443819877365633759647234823342258068390691384605082430113748424636264258399336975392497064977935356985708718157573202475974610742688163244217820466084757462559869239539512612212967332699991448657520604627899641368737339573896460670051800738996717073337811126128130873281903611907133688815060582240201996724674439290032854673668628919517948209728295674554803067020420579528593901901041612176951063313771913304264258673076385495812051562501900520305990074727736723182211885714159310506155346805254937170565338895484438256303581444556505924174483189667441201751173944378443538384673045883697913996334919386989274122578411100188614622868243253927711031610641310795492399804999065117683096223829758223149929891019911103109603626748632920700827506139143017793532352051682211653076831916656624461518178466324637080649939595012941129355431123232416926068707592546860579488808713721020891056504214673816986324393675355322106971683214204184727858895125849410510392315924972332625406392812521558278330275488018143809269835780039870377923331888183875334702053554384632256818287646323717798934952617976364702091843874527719382069360945128412985673419451282286213187304284710804685627246081394997429986188568334908310255323256743071655753066419027082468197335819627187256090570200241432766771081500948970485489775418633824403790980975026012552030560869515973015337601292327902013395782781342208962386320337768047836513745385663821368410075202979677431749093387155578615037958382760082574963666669194750882880892861903576987502845637551255432994660843978293873827471829538410982446327036305977215097781480753743338270980285191767000980718250442609906522024610356183243822427304058190615738532469984008971944466935320154416306401668450736648140302160741118234510388811622264688660418084831367698941096824959481506560789873919912606028799536498067088228427391797117425899668273826216523157700063426183080848728358803024607234334175180446773791898796493914229488675366566238813506406315023849548706566251111269586343796593229830057040246861716987720768135955471717810549386780436331441986120687433539029605572915330283736869786078940709658164110463840397595942728107839944683154812649204856874713688847749880293345539099546935772046051705544604145949858210384840247345332351045014219208326469887772506964209138438493480994697689475273025241479007737384333610662906636850260644194443626978973055748453309639709662697251859623154513634337531273696813591239395924374087810931724408227693380461779903111568782042186054264388763346205546749918759168339731568469379235778354528508370619222225762226132133138104522473658793041465693688671736116904879782877162254852407128983563454353060606816888371083435082900874259039163101579169807087970993227334996860266294586428988945139126973109196870885448684626567542602136544795862764027693202989019143471388151652014016515678374768337599387026941066088137844574127275902961570487180023553204582723058877838480519801507796274422997766899254828820510904334127643558739072088247371437590429110277301794606661025766154938109050645726614522575125269151561807806393436802266004243430521643406295686038538155844866526563697363677446864902765085062166512679205169565337094733386766134125234547076651448192832639087271540966435250207561521785084261395032216238240446377997215030493546512808283924723231124390678494939448575493691861419126231294725377053217941700236268719699889878642591623952220057682200214322094422340624125414368994988985373724764246220924719100667835111506699208008177696592368471711965376978453342468621731297147985325346278592089165224465243032793283449420929115668658260916407746486373598772671947186388999547746514164052605705466334719223813685360173573954319683700858536076584008048540058876827520771288003755373010234918486634686079781749518739357391656193813564818494024579413844072912807416049910824461753680783383924253595295019181982262925654792740102462939516918419885662655585295233831292478612912110274437517557967005382430992231097754693804884055953345194277551323123025455961614745829523135400124520457741258518555045604758199956815528980337923931502803303700476680900829007415724430983749820158924260163613422491564559575194030312033225995999392110352477451004193993179194523506917070417376303116294766090084011874017997021942809649649292931284073239519168003495854305178780315886328706207043836944667100592473418763216092489483305186813049053265250189081544318453279819518880776546278319858209886711901585068186019291213826399617116755351338736847120553058853277335955182147713180951668175459551829555527580565806959627644612906408475637649907894893238598595363688436691928801736386661559299008954146435119000049283628668145454413615204657426703394535563124378825404474369645185741764744505463695001354814993811730428910434048876962321690461165313065376909575740048674023223546382449024005025452881120416390081280094913288448934056873663707375117696954508192869421433590911766827928045357181517159300762425008151134237738511405765990659936135352570988130450920763504833931682566486779702239644517558304339508935517300173784383285563056009815703533290763506100743217299502954385243672332298685486336186337521535738092665055795269989697654579301110114978645995622882742770196618808651414949383075038507251167412168399422498958622980029059897660664142872836509016346396431071489080980675831943435698844181362580082044796674638099367104697212477734608865630090336877092347810028279652300824209648091695847960787367120405423046534597115672243877475100182701602332626564954019251200360568481522269412922684012682404059341976431696000042670117246952101927684007571376219680233980465260558471204471831309107341563751343710095153976219507195136779617889505509152405652793199084512714187322927681368580438903688447131205096649607975470258819173554196671276540565660184157259239798464683354132490955229134025119233708918860783549582124362495287467881167881223007703368323368379742272196751505336603658571821399554065875840766223953509749644480553370831780689732162783107221007984852509371871816289338375927485536187299970987850469262050386142423680657701059475536862435471112867002833794895384597312878710694724585008246481661319502039738185372429899985627585441948950285382756221576975393366359084888553064465906711651125564576115808609867594401365226428164130885495962824914746362322032279712409871892787321349849926784063324544799296723643782041287807636077955107178785687617990586096237875917807554789408493633639506062995821429524271329355021450810268558662598729188219370907380139761395115714232776690144155641354143567699576199126682973853889412499372453624220693195240253170056451316563146411464079747437518124766894394369418999533991964366092172691414148691876251679179269028339852809563387825317156517310490193304842967482032794062874046713610064688885505501292317904838238397240751805114268604866768193488312872388344755157637201118568926016732303301101727750787943778596332812109732135307797449839720903262074124691187163429682140757408698116013511241868785837238243736259733657540698611370915315015373205032389651012812147634158114808970254265210999285727332235800968021760784003325342839364698551869802659864300075222922105490745735828409150983731156038970212566900410753759625610513537578960418979246381331343451300302781001172170217950033131106554558573731841364543019605009030959361648483564979910095074481538109483649014164210449337515735981351333135811175822109567627241823348959647447997201792436743266273006546688517198313968914324082418902871652332388262827896888520835096941835371610999452133008705679677244947961410740849226909714696977229877796541261459964263173208255480870981760936155568215877455169605836090422379501492366253816343706298475232391168099935821116557882221700682055621774002226910378394330659937763338408897147665480512862195512772712697369896332240514804292867346468592519588837255008957615444463243301787811964066564111369566662175716111490883381332065983935811669387531300077449712187447438653895877178164034747941065481409263388729933964044685810847812879326527283381737905605896432370281677662306190389585715478916419853594127217797966608083514667495026298747371195175120043771127500084351492554002637995564372781078256642501910339084343641313568410171761732241278569849149618541593698942524173661634449937904854393213520393797908483025716121839395469794325072055278758711258598471537087258109191490824808150751726174217104116059671111325017284604844861397587249719973715486178274057608110735233049704538818917717761018623983106297112896980081456790032442753664685034896977721722710495790985098405776228883319987343415468442284775827284745199645266419308868840792487327984780640941764203006448091432431908078451483855130757447994638432579903684981395656808414789885418516675561267566731790740818906400667068914722143924181445235843989210698205893766199187665235678633975529638323947305020152803466793983595305020561384232427395929878230341401287911537528038409337709647486885847388398661334405820379846679703473068716233092866023289619716972052812814977313819548892718771826920117458620773866233137695860466613381855817885270340648075208068065778483919857076113668055130461533373606025806400402371259681899114916217806523175254897456712230609584870985498151024760056974539884842088096020673443368335630785290534257827637772773318393109940074536979542013883863953296469935989158156899512554971636909728823043891906610734931593117559099768823617490988912094060098536781654230499572279992451729964750268259595086372303704724970805593413002716479991406621747656105179839016913365556360441506059442207369007825662021739519115495010950113569821939683250816146844454430084142155699917997360367498986731757197644452668007439512202408639041670995939749271261973718981871014152391447707024585419667673352147650754029774476068392702365637685803533307935154885790760967251906378280601930639484295103263131787634004083579397141691900869471490699749565831715647817459217399909504180462546212177609382421317033658316048060432090153562597815335391042699590101138360847277107518161601819842676618158426060128774795461523396338071014754535438872949972517305022443614002765079937188356565157333268651629048759871086587761295067959322976019323457744682584094634083122563925992631973759587151448200903695851654222874590226173741593256324317713682679841921570347793919181964980277239567567764563355236902354306183118886418488151679152292827754651919518309876573361848647772097208428379224487541552388764044038397506329593878428664835802299346693859867728510763285918954885084511183627197971563552837816635732905888871793221979085585941875812866144855423763877936150303807478530410202166334425181650731976100725031891774373178560418339187611485315681967800744113866815258930618017329702840365346616468072568506108315055610011208079313111707498906165541213382410454927686879250831932389814270066076402382286861577589452445046219873398504351949404474260945098303231467136773388176463203403891391245161996750509233348107282242147092574278407929509943539577030682325040770405330281594824858652739730039047998667328767104400645992858291758847285858318933355229731812229188978760372568535320177580482904760335743562659984227830399863115736014070356520883504837574325389583289237855473373510864027512572337175112950457430034170400316802217213493741913049499093111615922710843131804903737717971308399541988241585450914334345927603848353953438677139494519487571909024256171826188702922873239098295614703323300826692412439703040235894501859893282401747154860510296277496604581896935069300449108925134555523946711825747195566597869570588788096688459558515001222441309216589311382295780603652115808301934857658894781291417567782573904076547584565228992974105494645224016393959518946107582607317116343066497645325279116185734379015259110540532017654356623633974522669152218417006354127508925919571309399166011492971774334073934699362604550439674749867891902683708085863788670005375831892428638264849534658982628504758236084330291190711700565530937120218555160540677295571751708924221362474869822243330582410239703485606543345250460851730951925700554259457635067973581065488643875153485713797618637774048202570048792124962829406001881379355597875046270924877812876507553964106920324335591475184922215575811277042570003160286601135535658742116301788760306037114725741525032875161231375335105407094654125860805574212195915405112566427713953981796730966391778541167025972039748534211161741059192831852527906051870642688444600573741109906711788813156663869076432384609200063997073580284433370200062467587929112667060573188524476419306916402284797762234036747162686511891894661883199854390144568570010103468214088098820316984538669088815681051671487646853628315949316505223203884240846276172258745875288152637927603945904140391809650490545836590681441294997183047055214211364938140185470393429069288444025118332825563041589111737297246000426054486133666764500745311794349640623269152891288828514437766600002622919230536913872284788207052188061720747684523783059105248414163892555653023646863118730568256959572056467916922626240798223271840156118925535035488673662386347192701221100446483277566759726832404213024408150900241754872441314211591783411344715958331224603377067234307716676274016376747936358833440075261602380187945523306600658001896850202782298171679480713502634411849414240353338561228751394761016936498535486925178407547156309808209374508737059096834921321853957160191488820134669037463922778585244351347758081705262680753174120404437398108041956837840570044679344757290103494658161924497218809602628582202458546415763401277955193148275264093149750262362017153795819442209312173442696781993049829842305089790381196528065052826376264685847460615881947981592806518649056023698023757485279628459191701665570645873961534437774712245738882081678409096402862730238781417245581310997687501784727954890099278717686393926761590624115356615461976490515868585970398773568377306898908715278465931866020066120662413378875207210845532900361536423646516103211610622597790751275322508245409846713217309698367035785896957375620703075664702804974559572149175574319829678052999886137224440818820128553258205835495003715491421286427615773533831428695893886139814004100116778592627249285116706951291032559116223682348871039187860367789553757069553558819299131472293038587951046697517000579368306629794776129053788811684706874654890641185925909594660583340743553489490080753656918539985442755851143201731188550345518611981151224500189181587965341823470910363233542653493675738152995133626757348029605512502080831309548328308607342854683906665634293636850503149296687881657560592345567890257396562419537165510886880139409286693373195977724199489519519592639888169009622371433273720998286735150908541629562449854235419064780065887399278668525224194478419735509827208727581214980161777146382809588445277100931775543365539770672046149366547853341210781171184062089970177198763642664823137598433512073961206336834118320186318386198473222868645139129226706015511706207520851843993492409425281693450315315144559847329986977581123431799541294043089835931061381565756281435418499679851359242000529693408666675185712617220585801303004369432059066373472272662278808644630088134919126523712940187394795612418650583221151281419472894391805668140203857713804174765602438478161360100085995491352761678134193599885727437105998853257786548629846335075174772418545167558501842760070910391705729401083509305827988418075353181503509416280450972304735602063196833085839993212504005332944130436967423519742482732632100615865623305571733977482714614039401462591217350691057213061362260570196188647493155238271636691905083113843030720466314981081322911229058333150683870759504396478248618649599188491150645414726660268076026066886777564545387243926150248957444272203035390591825108066242417235602608136860415868722655586227263552768689332826142812399342416292280639301849682017672936194415474187006515059423577900168328594723449133738504947581045298469657217637401841915979567223089036950020817043819006746817832616805943671512236125450643259621222919475015165999104017071822308293736432019812837121853653215058465156518440099434149429511980460211421377423662285392836667404479459517912751367069535205333277421393664216080959990727095181368615760256828604280179782322245939850114504240739006434633981811319892190668376496214318564813044042629214472675021643586334819756345831292926204926139037918998163388068527476493395869974351443024968916763341871847418306694276563977743162369120867665474036611775310790716782083704288988379274698793708418134737544741416477824046761374271307265874002433833431697819592914032099389977018584037195127633112509221677709490708330901020423100272444788514157064121273056948223403729861967672406618255862698839573489282926927010759262979112263570744911227131030986616827543132939129121203548780409345186979976467975082564135947989249737299126266901312946281910233652608412909150178778216718340968764953677784515348345015532064992774400451430651024370017070836501190327901044238076390815752630182707432884812561520707793881820637365547869138429573285228831023106890374179802948682641073968856126999602507132652009047339484407846069326813307360462949519437383229238200731215217142230873067045498237371441873051272470234224095028494994525042780483034879719902660350952545156243807600542044172380183885057836878540872936961891373364827897154672881897955592912053043947236369187738157640786335281816554874086670008115140668460434685016124848825250361384574470332455144877008522583213268835056562106742954561607203108489337907818348195774441113163805070049682372163514630455535347038014365654325903735119186892613102124188784762985575354581697034852829571766894055762250351209593188644067947599592706690470268229339254618358665888328803934806243809236686780443958664572515679888214048225485214197923045513516836486239563567797121894325101127775433676371717613954422609915498183427984096241879134875705141908169448100801364787422736622894009850618120621883767005604512747837666627853203573452924277519707648477446208833585933169467778977336425641137614519686524002999819284828876260206858507545114941672685503795976654830697303695161086760107875570710702275318260628826023455226413248520763476152625686956624382428002189866636265622385270200713795629180158970019399097407289733598613111498893809575454572844766314854922903549115648011784469286622917509440548957199492755891080052495012698680981525595349906595978079891643874903384434015944291046605000481893971945705417140537037129487565040581131027170526824724881183584625221513468054769505878219235862801547930694705109685501748386123730490346047688097072124428122095535237197158954291006122900383262429149968751957123902523018507645349610088545715740802705817842212576172313153145825861927539034279271227478968172592309198278904310206926552908965426870977602626088809378641857452418609847551212396306582180263773951615549816578377902825812366137630423573417251096472198546994807539627763121201688208893546984496440267258503273135528806379291606509751690695562684990949971781596367680841020488445468235306139258144690431066133040187208475092765645265038114136959834561642714551868272655131542230900424588946731445451061249896951254540168509689080417502400874316123343165775391552070018094297648018246119321357546093348614998382629166972864701666138589513899586138085408164527807255917465165612293336818982974674482514251567139515638738432305935642699725491585969731298495723259441318431231571261994570092284105614089607452600853013638684637958270433734124211810085935517185068405467253484320108619918338262983854803100697735382019906358779157542919331751353155660486819812616829527932855699209476997334266208262216813066843597861363828725126706762541720434722791419252070950741738484309923695308749796629615626278755018485858994653975541379120333762303869281730370098433388248895280868605801118190037025754055964603192637144412892779818322468296997639256894794210288002776465373687838324821395079163596652824250691376305314241176943422624362872907833218539071945662151358616080942894415050641771618474666446307868866734893840159751266569907651697329514147542450158553036437395975783133577223040693010957372713179050337607050086014806747208823570514920903169152550732014805957950753988183177719004508964577354350618225466471511790587199824165454290307725510375435402903492845280269633584092925470972209233848078979043820655052227229261833486284471678249014369947808492159531596073694419868767899880419697310793748729016999124434151711387143196588105432187044077848228639123296170139608316303357993554541174308849595476731671230550318526941493041302275019448154517675391483154714575946088938905974423422034521487801287009760034653960943376607978599086495425483854536207974122527097542179724987810011515315921161064984353687733612017584667638044946200897959762362153574585404376532014432146224837802550105142055241188319453824370407607597963981056070761588304367470977454921712586969110777545875022374425914234267006666620769092381675961252807070737940705894237887564803423802227532111521115757323719659287027893882569729145204229272912211133351927437636166264408756607659075903892717799269210802377006662117898240365413356782274514894290573299457727160731004131196454338359191199223226915599958539984401412247746911736688396300845885152642939284841571058656005493502186749564892843618337917161156333054310921254698898862801656256084656131622707229627042532314452943038161221208613861330468626504883745008791726787506225187496043414982631329898965678322158713774588422834729413603783873262542100838926665110581982889919996882125997340400090892786613973072152255515403520007035352227564322134512000022320363163354786392991539094448164365889068051850459159301787813280856492052480861497717818770654903062513384635808661755679270196010895839424688456312324183761656786967135970612847617118176412695872595635905440359354840391931350232422643588086642546085465226843901600151770051617237002752620706228962440264621200961494440863715663707881541922610205769093206408083535290648111544259623964866429830374636526142862661964128176376269467415841891054938157506762993401898845468415754833636097072403879396993861716676286884371585632096162101715967772132921714571781706769923237518034574736399504928155232333015884217357707415125256808077137932986360714506457023575517239651037004026948017481875285253588747721175266245410843564464473817823181358675259289901072939750736182964538710231081104292414154649756621288599219782483419664275177622606888436711397188740843855712227120524327530515357781385650206682956155253887261514815479059281426070141938433366025075309263093437700245302006274449937663764767639343353995457668978173598014614865097894212180463858655150373432055065389973337906483149996892603789173673186940639798505157561588595613994300209539768152401526085619648791126753168736592726505011125051276348524971303814524114113845645404261048187295972127436145241820554717365343986864370893626113450134989719746250907300059130819049282113137341218352306958778221806522650419009085547617051246942870247193523069976459754162716458011615676700786560097828345954165059655045615372557027200119863331387975821135663276707826909442138427061400007330808338373733392146988779936157057538590928209151544652531751724363878721093669662346603627530168104150918483711807882734747012094729908902053541240900520053212713580500778598469723933318048525711880485461073946348433988430910800878121536183274020205551382785595107005916729597531594382274645000110301911912026171544078708366470612060642729613381187215595723149869368836337792779973058848540269437613715011151711977232372754996625625803118292717668584191649465333398119699197542304860469397327517544870839314172855570660299140606312840708581846648455768285201649853958275191541389405571073517751886089467460209650461764985385546831835736402434125715227282686853757422128385868047553827979185370057939831498416955773242817086539581661769400825238951206280945851771430754783408450424767067472683048419934436279428705420301140741179887060286666209048452525798274290423323080825824445514981918280180096067724794721631138100519776653277792062276956623658440493276179175497029062473410071918297258271523293696956204579407432829417536838180436625816804948917867103608693727551617762987289487424369811661689666542933838744306237153412170707783090205523680832836702700475912741064155453108023694451934202596504632425768872690884823102675633183577286280567991055486049946616006975106671599176570208809501229296403548606580261513985819731600853261770978918705891098101796065955313107634639337007508278935027423292149964167580389237832300122670172210467715368319724366363701883114134712049923309163923558986430453619367343335656569370909640801189581806771656988529825446077027001475645186722168179144542029035472522770206046145253696395842910125074782777275275251313756653794587860048052859482289530008534259581420567800315359595710977382551652922142438591113514986738842785267644260927467109140748156464588176800601112171453373910078900079775261956674371461105296418120202984091138215447668768549596016384104814595079588432497763373793923929567812883058226316384763031930175462061417893333681400354848273863784653264948434217476618699697327133454730870625911070268644660431935448417404562284456082571995443169446385467585553258611840873800048000471986896642415143648775433911005244032325650839045098886049583230963543229349495772296428536991801259903494793487041923049065914084018882514414545429995414924254574541810423689902444623628700168417709242233769752532073651119085502268029428662145539600926618951878877882375837028649570031053255988741450945265502455809119962979031907920793939382873793706770687527976754093756506048737345868243455387391886599554069670011626984620040951880721663019427292225480841203633294692097085105776996759001240113322797351933927890893591322139097756055031860127378343339403391579547493184834932690324256983162755321818113589005857450243997628996601018425969021010170287099468640347817854675670642069659659159785593191393186848283480655372160665728033492952486780807141034778613057995479872965714240592921017219133108141163778052863509504599527233559386191885217602457545808377136002572634409869745925206739722363869151763180493545727284754591418503172468821784534534879646655951047386910762373236282096416703639653316305959344898343737653905987739142611780349384561630199647202469022573730701705823600420827272873120532872384849808795415159043766922736205609436300148801906369606887282683299666984407943754585309598153109616542781744774126528787375028736089978998585638795424895570004419094870905020565952789664887088444550052617068792440972682173997074135016171605543804810593884313455260828632538002085796736432281169447281668331364507609612777643654497088553250239807608860488045916603345396752942132959446972573725112556627718700414999282989716915388257616318238538021756000997946436005807697321094239232821137125590187814968023322591533054898081753474860552496534658375066990689856541441576095765461897100124750050797987096087193051427521288038345486844777032646845686723722182830048704056478865136707638643365145621597929611559334507816851576696934222656177932787444266430136170386469722108129767144920679216048901155108111548766543132243557434090811497576331178010785694391854050293252259852662369559515826163508884095928414029005261879481869665294129652359407607095809963309167661204259432513092168719887082736727819684536499314859131959210643116458399220954799205314507306474381633605516070918165856829627826186553681556993919967684148615649623877998899640606130436040478501823866919709803853383414493437249684812558254847630383706566032400117522281381433964098277016317983258548017002602002767740984688078727406193145339490907803292958119291473623575159640703268559637429997235742114779663079960260267759484478345450942783588862747879520741339953649181809247928785773384843416366057696280708984449761608050409301941168335349206773800615892194997185782901888133566349758040630783152483753763160217565455010164185293904897096867137389257411810270194177008167119481679806061418958690519945566826468209531714240743982730142714324837665982299509153348971980630581523159073797170849750916759360961151432300444857054285573617911854381361087749113205230179315964540853176498103389392207997146917103685355886532766611638909327631924482174926764791740428799610020385939203639773944820634197034641919622058799919890362837924446653631118091805064112552070930545853110780320948635528155243955516475062190501670640929472426781685758131878676507235757214335765234067426720480832046763954592123379508516993109846220821887524593533326357529743243982373450416945726805723075219336585189400998584522883426472976210428598305536678736405511048232570219661205207708422161071041525825022732503611692571260123880134515110843159619746059000903380448989382979086970458811528234688660134790936395768968924198667223464097215341050911910095295008912631907389127876676653179727665817173004211905925271788918397242067806696300041357976983708924455494882423839464811194499218102558166973657443268764593828017608613160012608658131267250998015052682592843330362605066008335362771445849307391819395265022113045215608322748003698921968111904870560214870525305651908007978225181294073809143250620021056758582845865342676525844481682244644704631940133734669437596810743410197444113976000535956928973053625915458409152098996936735218961604531069141756816943342405476691600595324893559647169558922145258935066576329688177094424292361152979192455491497294285907645979795344486512057986935854520566927747980594932487677743796357898139601381356678996079924759796219001573484076180253805140707815448349646205468408180905561448110590647232441240441518857579001655875454785087852046433388033404450339374411885979069014026806942127589151178490715055001739222846849337730570087300025535171569535155513015770111233222615824864669422318140311450954417475879108817930019272364691725081602005864127268800223321228354906103666472432389897728655211763078658675809511380536363021431370345208274576364008668083014508170052802588565296027966043348540148145457840510133919448045455169110575883341972191298091067118626225605808518267368612728377296180484940703918347310436099749730562189547710683443437398584280741935181129463743439669399192635780541602240583308557782702455263923283057773434077216111088028509666278509912873784497488824261531699141208832276069116730418077619614158044703616832469535337261834797265439060626176519470749665909518228539629565848227793346881471628684822072718362001258654013856434175375427451846480055670733085826387602350330057319994344639189546018908445359603993222289761799882487116488301004050951627669754708601130728928451251246277689690346962371122512199436315283253666344615440688638323850421416208309107702942671969008819608767011261183666959792270158402468142455477599513485310296377909865988468248176074158836812559273654048057783373926606793502078626214806924166052639958646507871758713990309885908871288022766160839668163328508818288353170657298793370306974506789293407004437150332532907900174388189261723509609557542982844507288923800585436249685608993083896243755616713874788701852705893024374197752094750812019366958234491470871442598108436572559798556532537538132724921542687040035136611072296741495600032837946367712494606879996811223960112711731475731747419723048758857723079732198302454925811432722029187628804434760578582777950174248538713087889519201050372827241677014048365369217578030178319746379538902204900809324669097873704438620737501475917825801284482316601375108846061766798806368091806880446057652541683293335295365371744241605435790311703502839549010013590657294390831678020041412915286524458161426075306658582114615048052424178460728643082981259170299250951094517522396486246633531650746016671022924400654449771437276692046427565168434743185084868017054957691079718582002677460640778077121180219709897943991845144817587370416614558161454706253589865167556991184596086280328967678498273709789641007988948244766768094016523934861659103439711145927535728130047385427420775995361666458000618463193106059234829183146646386852382000563958057146786759573385527336519284252085645264010985802817624614915234897613125158676498416527547849978091632493528024883826065190736876495886186593122690079973100080384488817867227150075992927232553327702686249029654480187054681777689156775857198830844980605330098628725016212855922181723580047377993962425800504046525691457820748213443222575543267015892774074064042918418855961747946871277165500446948492419100519110697686455975791589963292414552681270151125863490443234931061309715402242131413960691475209735028085402785873756207570333019184840403642625387732517291327729742170797452798697056658821521896059093930228220932302185507788989974088857166366035802615676294646155817912833166669075630865006807616636204168167263562124237103298108625494049467147198850454775762935398612399457856616141598139772575696312807035650115643148753803207405607209109779862825806054077347015559785706184647224918132172754325994277144655391778072870752847626144509828845754983926911621279198027820350680346080337604409097592033976067882429986816287317783721308710003585199431213348377377052495209114105432075286200736043993789339189909877787461300282216093812094427032470834140090772604569077265234323590691876765441411346647389869312582081598681653092484842316988831639615105000555611264568031025718660597819733318698351989950025234943042324384743165585588907611833992080145059937517753310678861468687888422902565955990293264749388291090986938148578583422597289540616801211753846023275510046135315597856830496203192958783391971121028314736436304056887474983560264060602899796356682233507785939896289640051427054040159796674271229649850108655852548699591923502417225561062930673103586198702080191570997102964903100476191317833130801261908758075179849087599631120849323445420160157736665506279803040425585902483377147367656459352468570948235179656489012435386432372303803971551396540337896900757134318539799178782345020969519238434307703189291777033066165485364808974614385499924669562069811171763965571516207513736371461124426951029036609815269858206645392631437175352874693472567612729100516177075594429601335920934874640617364445680814226523229000644239521509497570662019878208690354601635659533998697905108535208768282835481640039606636694370328636402375512266034562923050070422100810488182590243731830975478744395374815873617792697275533262693946312032234315819017231981857999698320627381780649551618346780159245896105860790263478681791681388865590507101837966144319175446443012711636985866862830515611803261784467726588051983552139941920095342794233767787096176789199039061358047804615157650038695762178275717063171099021434079768790030946576557180566256817864983143880172202097821224985293809424599333161152366683681289802216966571290271145882238910313529339881560056388787831904302014257537440855643543617076356710502249988446070990345088392387118766893093945182302807445259158612648454103319197497488982593048631253220593287817235467715510492420720359189035646781195375735580649605178121799253014011503125880151179189321215447099303823228143210069979078156437843213204702587195119418322097833860738938239757190431735519849013035876442409191483675503204018526158494104377381129014385282274563008065284543376617288071432522915841901122558252738096051787518379310289003674360291721996540965923522876155007126144887929236892971334075825095017992133941099253850343990775544271685253623548065771274645659422513654099556230664293824995965990327086571468710128368531240919666234846044023671822926369236016966614601905573014259120419266382301949970681407099752581777869077907785898203742721331716387852960071950881025032060914450961394360473987328445609494974933873055257445972610587431151548264307204030879038606518434320609527513828982682297808749473975004160462997147395098940259279327169694571639385859236672316679697067258431089986370283791606724955408130968778373520257303967777939313836280389283345565302862439767904280162305448047189236434897828599222625649917405334637433518833347400380002604110829843368925380857201917778225938968140223000516749721064045223500795028793147375941046038642658026813376355860935314023007186631581536681830202657826045535392792594366699909295393733615380015710996665626007506229328445963725545812581532399907275351681062050440473043266693990677597527748424388714547890749233332378722228970433178692239606601009206676660794117637076850680601052430088105170520806323166184445416442244465050624425820904189997400870424545970785902773788898095925007359461555834172373314396085108582720470929087412642701468583079185259621697273527199942755437391810031594215337401060582151853618630695346603623870075279389681852776800703174671390661288667628566513002298710941743274797281450725993891858860268426234982279332331853195234839447699864255591271764370169814550402639987413561576264345735885368255033519211013025852213811846774039766658290602693187770403900995873015125288415068190652857813756784128710304757249865796375416088992945222989849625777523427081923258449987024793331925888677555134402781150887216778076584236152562457378729904735556241748081307571338515698102428667452478900949466639513617997873604340942349251796534214650665942296721382358828131201335062672015941674506399889868945908161639804452521081460432331082185627799963897019067742893971987354939311378457828022616244301626281055038907730206944984407941901230169315458875529410031688868265920642558379308554307741741325795653159610840170040304535213231975539322156500201659917296989418714230358117377541740933494529443233536467541148932144319422604738073802176613260225835217731191523227924833366172167910381263360954487617382911921897708290023162184822567994161335094217382669619522098583158927431105888102910816221074195896924230645719457103748125419729287407405082423749951997439729386310819883589222210016794042182344621878385073869598263221249317324630374827003793784412468911388276703184200135702487200538754588874846057865525063050907126871933054858150691380127023230528383509456902145455881841251991785567873596370642601756024335048411888542961357694484179516992575647870486725508441424381707371500276978454290735047460996491904146378848014143611308906612992432332769252581706069640586421234129819518914851180974256754817218565801170853930049934464546648561459141747112343466573101368924903436616832938111236931208850445196606061485726571721090690107949026395121265904702228923691543480258418561396821079934349072133189493371383510176229265416981368805609553823587284538976243591550430926588144493277664461486128433622888429375904577528694261289784740445081331599157566165271215927588977998980477811648189037959797130885178475968544965699635449584901100332975647380312768582689849683944693621158353304082221781518170141781230778440294595055542283319925699137249979445188567523599079499870207559857697539784969422101972571694103375398171238764905707936708675587701039731411865906993137399946377609388886950028289677353165136151473051376189281816631221694994093885649083701866073641497982670685732322390898972193268909451432006270587137754898514530610333234730513668586248804788326423351475215078634148544521008737609536032681195905500503588760902364790159042402925799921419901709703987199242735072761057037008139099846118521055733992610575746663079427198363909489543654471454161963719669815597243532666255971121228434114517368216515121725437886840821525589184115199261465745728357768816431047285554279956800544539964014963024830958836247638399782782139472137257252801115452684360499503400831732953618119763723427082440462184075853991508688669079950226190956989966146940089200335793689581992012254060042369878619566719275270261529349167366536182242458703105208112157968200614848125572727044335109238022700314282616389470853841295972301510498907550015584154315754964022661491119577347258152529820383577214123020298444298356545637060085407572505649051455692984823377431416806441194790944351649390834220907583619983485094488634375104810514648514303822661072069797361401694240607100264839206467062392115143233975224527118839153331748452133237166871315382904507884046377501062191641019505911342638810816792456392488832756946329033516018086309738462767035405959641753785836802697763171295732946708354648662765989096851293996769259992113405837167495442029433556448670699136174606148396940019718606982280322738839780224638405469047449344651674775542348977058877956421819741745607717003204784454111004456442694234075817655738396183543623825860429666189654238429295245856306712800652821314442254790540808089965871818851220632992006394722009987045815570749309673547581455373744102298322320848290257486444381308169539817816326198574524989112921368372011549724274150336280463542072739709569092719159094268092000742582096655894553235908525789798692989435525722454962084471019139549134389128217365400624640352252349749628563975503184829145121572017948065837508855483304367255271321779804329002531560221120047166816070473856280295881265705349430176428975450246557674041594793213389026778902059861269236701736733842527239401386639310572336664024752213120149449634470217621195509883286053907000068799400509750617217525500515070476043786312597155693059840990413188982489706567453069408540217278237791250352879642979923225556576925995624024285098815078048390699831063742973582652930717786492272752316157482517283525587796798179238295656225671986787159923941623599810091111867640404523892241813296958396196449810403574941926523605817239015964700776088208498220260259022860135008251252147361891251161872013919084058192781826951387863762256910107444935903430166866550476944838817076534693931805799413382434264527548193329624425848749197292856089866336984544154666496362385970057022131061633076097519812725334602877405895388266569320446582969433915821873244033769376289145072116107027345873963619870391809608432361039820171017330695086655588745334863216860278023303258469122372735371460621252012786497987904898115007158278474981946084466389572609713071286177113874962849511900598247873581614135289777871032915621674685342561985063543039395806661984545818580451487916875563558580897581905201693522296904731975666311669225141527367333472869689376619122269609423173552629980216209112069672539804800876823560251187464445390853620893159439447331454206290457438870996642389976161948127373921934448896117743066027865259073887207808094476618839345652522061192926757019929802330592196231736602930051012106492514778406028837260251532229876382436921845535329369420389347205379048096530108503689333924695209366707728355733731315572348679750363759296546358147383145674022168782561196678258625064637891346378691647885244136392735204792518151426825611887480340386860258729386095071765890974819369950603751605938227515111180360660256302062386224051290633714454448038913500735311408259405558139871858980764998256594579422700071159424981927183629876716791418853489638369842122410454493346582185130143498194747635250611437687716700173633805996284108033855664383059668259506452221013116122259944527116763619998809982789752141807201622531550185219712208789583923870669264576589522930219490272649431035833149754987242195995692572874406454225676015397133546770682321906916046865488611602502505002694386913820044464665542876126530962755434362694592473271248084633118556955190231717487376459184923998496939197678602720866627807931113661180855844416743269528842797802974900719403128230753710201858008124084189164721314710970182939760994714001363187724189830345469033730325817420765483208794496229965035670252736260119189112251395084959671706834587169802420275332751848068916143138866592002544165340631784815247569736073852332427916357926359142958083313747173124380814583695708742739176802917296213421832551090244038993040549634131205286695031467263167098554552198214739741787656798543333379225020679575013278176834555275650723492929085733656094251766900517475493603614508824273504139104036494457575301638685429869754275900024566153601834299574954338473721655128442051257001187539707342619402271827552442401960857970669791624776197589618413280355739542542704518361739998064286998701014241096019390068214348295232434561319570861936212525652451939358973931595212491922563274248212524621239199163417257529050173477835608852043059021860709529619096858442247190970803560198302825687348242523376841088503237523450255411660050194121229160779802463956678820745285607755736398122113889608043224768301067845722657761417450316751406272957592529357921130431872052065433464855673603022242149288489566585799379520990705282819998989729597411808292292232793760703978607882328505597378096133308104198497793820372566143904146668072788386951092117027021753849849003833387023334009182564594743167515359003435506118880033887074775680475847746092223098710200938979724562457404275710495233218152727063513923949237879268823393960867364135202097593348836803318776437876311260650908682647364521730804064809327535114385940008880406312054607286335573025087230787539753569360404087064001803109328274755546675336782711992392404490712254647565470709358561644143857135159063107761283784386125169964178249850136725714275710640807780451168724898308976013701828385274615746720175586817410267623187650495720460699492912670907508519203880029506688796711001213274447735374958362870335737362435502491202045410481574648357912077949750741757392830460906992408418345827813888048493347875592370746600278241637243358684858490050707790146341521395723685552106282393448115269382046003556541116510687448270097425514905097989905114421406599235649313455583546600738228832486497141774165980246040434984380335671589872618024953685778052959021735650402746671565638181682540959851363458197041088590312493669890019951110330910596738058326940329917136627638060830177611287895060159219032049969496650952433719546504179994105212323743037774618238281832305119820593508730744481864432898115964318086017549070808452176273875431473276472867260489125141673990513324958179160422023945678143183268424148522327530592858509708276784343989930334734448576427443550218941064859902327943137306915730292606408718136485329689202678146177336440336071633538860288122574863734161088658607783497159346767247645361770924499628713733343703031899457102232059340690252786485100536459697623995524525192212586605264038276470573944937581120024145015273133358383300315571324055570512783619296281202174683097823717570939848884989313750625473481111420503069513961950801715436249367233987430315234583362545629015980284613519266404433368645790218372654677850586391827750783072681043512977812599982210966326150835753967499237637410424192025745737796391275525550779709652253081099335605083308677410068492641076034391883646435465599999100162080137183823828417253907278099066878082853240557913547258028612676379030776957509524524151489509054344586923969902982405155779343813405973520392238109843122166340064490757267264728592876403264456930186931307152737878164292043519985189936691771460904847532782763158059817486085094218920681399349878036072678334667746683685698926445812697526764935520082024488231138096439381349381003932719379214337458927508490884535447806332732497500887245883419164787412671825611784298667653101224410553274585025910843171162273764309899270954379032727000135723218624906350611476142734516676874609267602741031121911093016596804739919777018635287503818281820049834553475837314143258056325290070260163592046397990175592962836051667343494075410839929622460719041418144820401548461050215557910697025372285291996628021373447083789934793298968237040500181997038103355286174365237672779787484994095361217861769203216296215093963188555113303826064638889530401788622365705981747462165077427628219808919437856447308588763789249123640781018679528367913342908959247964598375213654621428588112590994339058577869164675394970852681789511074020909708627083068279213714908274400751953473093734024669118478271027045615205736422883303089497852987305474873532762658944956985642619558668721795249375554294170853945131076721344687162083831420492615743854219968826863147664219584197750657527617257635115692176863088578435226610572048119983954659155309866237202819116960407377174477046495884579728650942682752290412398489866980570324129174859999363014108182785084934480477362489517021052338159369169267413446504159027380123543307196516177570060970212464401817955305002182061010257734621258252968719623637018113209251650789834558611329595212420681864127014295860649552853464795502982319586205883847151145580594966306071000176120649090058144995920299651011839938727113128921586228029202779964151702185546009215225524256354974876050785879750587097336987779978637886091076420605867707896632737359817827269999572337142549378101250832750342170983183023120742501254881352628611320639840537347677732539162724991818293081007026409257453408175765713155593300436992711382510291158475406486844327943377382601700907031353625183200420759215166156062738362127008355924820436564895167180347248857310973547971093945814527602459477870030690507683791371370384544856334017197584772728983275663475822748375844547028800619491196802767943215229743195422583273753203515804793316901971387742502446684144934453849094882673670090572453297302872181966545118535371760424755030557482690232712686024103693976926017326069287066912555205638498416576587204395345452862138438171911352699894412027589470744315581152453702208596696786527683064171892407401404535448589058869152853983852024953810602750554519427408827179018923513519189516824998448190837341759931019340135697374319117347394904335244619995166461685124141198590034363519132176646716528990714194867138106892136177437523823046287332232511838065025288030754528882925098020340277521616649005532853514562053540713206897668023568436860613926692879801012224619640958738793120164112799843906112876067265764253769287907871098665982789063497562998452870713952329159874449609958284660596597734981774391714902763951875148968480446961188570988201450520271271020715328770864772442055324076812983027497667956645229503082649436289435808662265268351648646695023278706920057140927871137881559277235807950114903145432972511619803748023961333034135700727945077124438655815679974665397205330756502914059605508055775699562157736202295373305780483666984601764159271664978581175674783177074968961193971833803230770646431242686076693657998349338386711040803338229117347468190846978252415934145552303426382597831001431519178897327744824215773514905228307607572215505878817012017808334100751368532090283081160318662477930030960701671536455106027273921514108314636091877627941629261605624749819032247707398677124469229640789614150311103403637979881631717677800892659032663977021324996310515788097988639542639278029500215808732397788866587528559742724464101100204326491103475540844640310396530543005985155085555268751313898249448985023017333651853595198482192502292306094041504235652546804132643940024131169703050562903786386333755643408748127297386991099320289656028362429058859099006665111020168838986249099660661953852132627080099782112743685696608306553264179950865105611321877006206366542922170969498420538677325196804708037019981320581611793695068813111359946210250144409509043545402176732084667714460717862488309975163480783483948503665573990091749513293263918926767521991938034943105908150138528217831066225208896835907422217703856095386095373870065189021918699080359840613173919125545732354504630427325278175147028226154608361460626022595008729353328954365231180305101991271060726441226997122463952635511912770088848782958086236033480415737128304048038158317101674020610061861820481181653365264489268457889119598864823175183621964231331159205514896012541037360418251512711946280909087791092498152163946885385513398255472461213090366025512719134212653988405127154938680105461707608676396048868054356445906146495822982770610385892752685598562640998967363240150895021545378907172079129021240829454727135230523275458263624628169115175227330623732721527903792761505202070601587599043869170404933255545932835717773713006963952751849310678342452107608482384060883729036626715375108038025151438896342324460085585881339249912313493385439891648608891901933122658772713844066845949440865075626311333757802850648791081842248512110609968201505544677210375805238850588648029066575454258196416747152846524485789092468434426268186960922819063861979570054260543394215061550445558564929466711840375784482620948655947688068079548932730538801347256528380937643785599123347936796991733181654083178464299705969609004431625641934632826754653115992286070140253223541606082062070041490104551603853356262717086842882687054628291578091819752592657646304432630118736994811250591444903869139759904117561852892454933895692604315732451066238626797994733837659789447973957173620228597976119347204056096097104955575439188556354258689788920218891090158506301748293454604751437799804457196745889835345334993561948122273092670984250787832876290314799209521809777645700587426810597632988540655184818206876502103929063653232358517548814888423899601836174040860324315463527421559513962312978775778448359276999369629785035811790719754636264293114544213434925348483062232002439935126060825958094769999551338297686954082327076696272735181634061591928486420043403287794392580338797871237462957262929323846954919823132731110095814855899094158909986778999125215039777246850164116331320899908249131940694342372745806750015470522282426414321525482730599940737132343137325062212542938742443844765179821688423352015355174408495576788546044233485663044310871624194655606486000022559051915671056487951116053950448468705470889265580582623859951441752373767348027138893999853354076393850605957663637900062152268687976883067390017034092338171684157403110255513241140747107501594865910289098885962113604564206844181679077575770094085146302117424258730833269354117196777915303803866623051467570917835450514732673242795363508106683966282559869792088949758625134494582484680684269767562581682539336047940190375090271393128947965359994736560674635473829359768392447467116070505724954656222001202522596610061132977175242263896526386986373171633157923228910473050875737123973248080781454669065023797638239982455481598707808432268895695957765965599753118811715897584987022158955888163659985774176213364871779591692295666010927688182516489621898690319789216266139148267239855390488483834917857403537904063832577111806899551925123025792235242841714548981668890578204201483409609946204307353690056696147626082828674456916250086146919183595753530732447292505017038510915647631546516793402351245581316476407588258548102866942614099540365900809365450480013913791971990516399313173660804046311514954368091417409791906767400114340843335177686949960403962604666016987073111410360416210767106656071508930977108444678799630850441470928931460264004590004777247145633076800470604048655175033899987832600579827203724963185523150051676842252049883711028553827501041933236447781761985838235467172579534326889045653368101000369197851193015988431368221014936620074506609017375535541569537910103346832924297254187008795228189980947537822593242961335261824252476863668266073894657449107699428099232088749145320873128583350702371209532511744794809717994923110983876997257562487993363926921916072222588009821161742566691346546823323146861843577556901749189863007987983883386668515262223678065400184675178394140289700175320613474126056114455254940077434197367624588768140838897910132289779897803464136791738381908952161139631249966050732053824039396426740873263397563717592384991198725262519760106932438529959870013488199460056437864816244780526834590646758579974953880528310867877336666011287562981299851338336408837951618943720390677747640377597694649870389888200957307147516964363522232793268795853239868974755629338720071556790722838398665398179368238535221496972872867653813306703221431352838404501281979156286631308567420575450470975948955787035073823155171242272671561501135063199336859647942887672206186826326704315299641481201905056613184682103098272164494035387944806157908202759698750168643399010350548281036539749654049521902576051404186057597160043453933406659457617106868628665657585223430108639901657717789721690259565514834025291993257397487357091632656055465623214269989207479333185883022854185983451569309205416660618337541021679912878482788335853169397607439993470673765443998835585286842104532714908176859729220957802023524117315425438641883253160794968310415452579153313467160122813352572962797470778968232559978654474693633902700854352278157282301591328725886768759866238920364797865924891028795572289282968855102914595372308055340792311112252555749930976675583109918927234783030276930167473025681890235122436635835013582082288812061821123926002529626121717342809519674044748584291784120051181252214051291888120274160366912927337230375920540807507748139913981211621187171429836368786693185357151615978945801203838784348897072526748934896119674665794818189464706721581514239602668309851562047370004253340386206759694316611343560801841268162950542625331417414722125883316051124035701548883271733019333029737598763504227541931053760421734764204656144703766698611468739189432133387858475422876432042423944267401597109711623418877748085095901197348303486051857616511013649545836533080315852502481641394371146850118749533035823979905754865369059009635023044833132942670828810819714487627478181318069913963630481904963154177480977566277736358465354356534240418827883961623739006473604863175511414201775066933422410977716588492856578360378646904585000270900603534187507974987260499228902730805564990496945766411441109476700005127603949166444120668914350498994283191944131340484236141929628294851395449377098569218414591180538187217517487371509767338830284969305741141137515435390563630426250199653386655464937075811001538935748026262371925788913725480571191557196004419459079949255630842475686963472224987319301870543096007374381766466009718460049309150367844300044997687391098327699238308270764211022963155814578128982840952646454459706586124794909663968942434835571487397109027912266212165081010894991000718002188450568336679607251434117510242248825436341987547989168595721443928198379561371160774698462284016356984394182110740659834862185282677635335597704520895753951805983992584071112258277091983329074977774951681349525796931383824791612475696412684030695875033501123523927384433983090101026460893506723243335392206127122995635001077849926980202030265848322043431033234661595815804807515123687132132880206146565792211597279833776959992250704377864953152657591067985015544933932464543580199839273187301772077528791715475626225631987859894865595791821833993850819652609590521380121724650987632503690471953003003391301796187797262448213035617211999932145779405379251835147118327080596924787665414383309824068458707687426769966001014290436490355634756505316029432639552230856380973795511642631288774316806425063221498478863803695691278334256190132872920292968228138836436734670985466561781265609308197621065880999199000223952608341271410532327288505021183030374040672583709296584336353285056191523894777212144988871197615674439176867491992985523155812596478131116831358553072215571864397195984274884857647970598554006876085272473622214258513003376265608043580244980602226126585026865301875335467789752611059310392512252523011212858453935285228437016571428854395078070458398902715901689442848977357044143735047955653725500409437065191968023087688668069675383983878873357956784063895106813204499642832087718255244910140085665910607381501863125572359272737899380601294663156783510344413861346353352848453575379850018444315180163532969449763874904209112898313327390244996468877546414304782842782101108201369656550821768217592487151023975821532570186041947188002545279048788604079328564658691919429780630227206963621843338531004314282010786688648025050897701810420630365177318112249569260278847441472620816205037680610224534455462481649476527893708866004640332923579776855666669079596243237215122847178824648856199711127406113286766007997043321247089942297745231495811762020983961333612212289446049142653465320472873537525218590055789785026658685311361133067075436184932050293971522115954155787877819518714793044684848349855629527658460850514286472394514061725721144746246711821000208631821143892967511512828981438292364549168697197015976640293125716643218553929403006124144996006216042391397169981728517598460759979464973825736970546807303102271827470477005673999842068772002160294654687105820949092371032995183636954206788475773540949772047003287427448126778788257254604348239024140789445918176793353334734637432715209879385864223453015773237687549146070026449758813780051665700085385941453064915738481881861194369452541757138865465455686137377832504396071342870519590329109035230598989936334997262187794205720450571479085231489642170453758627414412128613273522397306766225424092408789381646435065263589505191588545917250935895868252233983462737054738383933068145562021431358723207513680407520599455922634780153217041669427882109922088569622715672944871701525331079601947784273739585992481445800355678973398954584773328255481681366502824447804019618435392453777696671969738350560358246937798133726177322467211383389835291980158836427311712859083622464917335829900901332971170742492908339518015154132759837668609177755778331025298528904979684753831885975113743047962190577403511298247317717786316930727325543431494871170675823459614656129771923573798611342785471761737511592148977849143743359443535108593620097370769411032267154387806753519223728919550280373314868926232528604999282715517996169872773494726107513159453105987797709849808653660698507645020078036439898257631808697002409050111982273093768430997025807700808444083128482075892302790051097632990469049369054892467273147625342006171244886715236410860112745061257342815601214491015292320620126628152390621520134420083453648257076319521881545278730233854322622601101443246256465489152018934803992053920971927114879789244985678567758371501262703346596336815575401663202026772384410067076384542753225277512168263263710222090137531334835280344320700180788003677575174809429524468600477403281631125673520180769816987009197981996057519670221785086719959923979366511010837172244769080305811096117978041142638398871204398582773702734119107943568233243394622499608766404452643241680882509850245607810339146344692033088286725911425972241273504123781659624945995761313709982418691157212224318561334890801409582949385163356490915462536825844121720280966337634282357178535229759289995544764484608481941687140984529034758163636065535362188603841031551084057340217808823853610957746968760250668390536916539583925881537405128262412402357495389170431353100361519945185118229126025527052667082123904521783085244515762328033879055272322102946402088958458284767457780516050962647556399606614993633673448078665790790544222533404657658075013223628465952909686176192137346332004671897487727096725771818958773718263476764061002955980080294522699551652919420964276407383300001376896819749795961585038590937694431380013773105982141648249323179388108933796749338793267353625626570572532363422786036172313699163403922764472204015388575923696106821683951339880497275737578510242063405429711000579251000873589474605756642902637830535248462384925619490951561607909814537632056582262227169550341960525882475247495670463748301358967515868971062356807911771737226663148043095487422422374982260236851476939293190744524486100566762126305637632717873635805686674548334685684629680052709506091792375927614684725976119596970329289168905909523545812457158416635298193930201081559989282730404717773433338096568725457892936733822621899100699023221810743212887376413665098219089075108281313254291955399838448259607314514664911857692035849096126426744833006065022337908741932596927104997928575404672310056988563030405221634493648192749505185747389092685151104904551014195639017754649362272069972360081457611398663651365170377652528274037442104453396250948587118347807345217099753523066122487569208110276275361591832298637418502278006052622709577859899821860322230687251659433428487569444903835318957007509589542069733963500950027459082337002460244979615831215611959811539464712155508392850732382577814215271410422316205129684722945021623574603030400134386113764412734706731062407875413358266485744111856604483837866177567278640357064234957057723964164372473505576714967561096287289168150057771372825952421336497324846743130598777645189835496044798424937629041759276220540372069915085621751585180599976607690145614575800248928868113936822892901001236659406225100281615478979621360813378971346601549793157590761327750243796579383483302424926681905100541912273730362066686048207953988867326251029060303726613622929530819510498379392835909754236421811026370828020534435903170257009080411272875443774327705657594747350864035178627714689224429221749950766541784942653652485046815260302182980121396939639771409478906510703889840303143978214019145687299900620364723702082053416794133026779792807566865285813478335409134853992144590912430763597045384767917331218959547581452333246737259012782506278563154946228548927928241980073444699188865530644721437922805691688584025960692633522088441846001022267815017011620839283145737591715957062125065681451978797825748734544583412413269155250109177308025423802987667787284872556673624953084911433315332185213704016176831620224918939775166328986779610533341067224259976572180344193628704337983024109808287403169026965647630375513042799232133551601783546316061902679487122055834243134600567258974772701461305920064514916322623693257010207962005350618984624253706517233435728170307392747961130395851559821038733298189454985859345881587509050205665499464822286620579333524167603316500754876207395801883716616925020392991001799328131945979135764898035357476886882477222829091652079689575199298983190142024710329197696894340336212529391944055656209358109511881052737891837106132128562148128429555107858214199048085336087613768942072438531290514683399041188474241329375436788388944192499914430208115908332176914891559699015715303812406006295511440761902989753472371396430622002458473296536419708857405422593813715684131042183625146602188229893304910392667754297569346385622513382247458593689002100450673379647769257467194584660244533722289523727220452878356706456471458683999826019566727896167704272613773958708853522508392680604342100923482088429894541073875340149474205767590224984977176130665411017070950802670828830099585884862069441417729780271549603290523290681541177675480216556736575674303020767691270564464921891354027712834779024164223739958694358850547526737322529202784821323666495171403299278135981322080817455400758024944383110038104975771697003741309086371429388062553215439518515512699409725302525164010931032100056019448046321865980307723655217453932005700364606899646174390131247628019664856671673185797305161771880520384836139574607921928642394165416682051472340156278822941102532324391141511120741944230522738874483843909148783926976295138981470440944681509070161217782117988731891193878339957726450207347641153038109576130856995150326858713838361096112166794774412280574782369658597672901744120162794838100755626289523668746151148432793836743852082463999921646722086434714191853711936093867754269857350653867970732457151148836694940541844450092656979954709322360554688865918457283737865343987758957585287138526071766936018569591627901249606824706250346376274883133572879765281937493584861040433756190867406610858692458708485073475690875910895356922050333080593762576724072148471321591029005565549863791225777302480259293398013870807015470422855800398310000724267298487032533286916360184877479505704273446665351349372691645034782512292841134627742987608731278804960419741533716299051771578498425177240068151836314374471101193929342007274318805517985643648327944239417015987531630038253972944921646035447475127883593357617368558389465968394891645869195444556930517730884784761930784818008849860062955994623800275864845616893534561905228517018762315542083497430247912921468267949213774345946166331083560915996094851584479429085016902998312097330111358266808721879750154681636241124405691915176858589196214797482270631428421201521152018258720279058519521092257313939124705705303292694757197276885613129897325270199078011964408409253999434346944895768038467148188064815835860114288818572621826844663370126882914851244988417428567846003892908755477774133899394319614525691723763574892573493771410804321427808034591186005798538993006732308024904706361002503713080663549824561424885895891712874071587013623866052207397441031635712189850655186250429680783820966837450375723592788978431893934700218534935970548428827752997665562237074771209047992345196711397078034322720022307468985133850903708841603526681817585133131156502006492811737489697188152951631394259182458430582122622246424721184369279639738674646135471572470513144463819625888522420890587330868324525347348237263483549782527364849652188790682761610366583713992953892277880573895880287669147198545502038825638883242488719857745450968150453511090381692639793506331901876653165551682225439301879874755000283492948892203606301942804644220588015616031871380288374650245639102898712731300693771117603991335223211898829649637873806533459428118514640313611664924810240794800254058366539677321889145228031281110429140186015597392394034738665136990644499889792680921078003297664873730959511428988530366875943606444588599974893200616859378421312875959357298878292027918973570591662388375180985429396201024989158872842727565364261641512012748133164885969253726286114882832775943282783727244013310819149850585416132418065157082588398821805549347483994313904912065784670744272779505320052490427927332763284137136522262722130889833755757310718494658482761769409872685937940467478981895178210288736824964255189780244838961977958280385990508749372154211113806105341049896052057857049729659800106002572599387403219195293589837406120644722353643754803291323976392385785717042326750730304186944390647955873129820759996273548630849955637833085256078499651421485993349903364420289385073127976417243134030605416935523797033910307937366632275205299708757373273525075209975721586436528198784515753375150227032550001897732418912153158791914822364067773134155703691095075666613991066173126545665737225010881342192426492081254677277632719151786034602346421048047897369473698006673370189856729283353748332554737668983245048596991628673127740348958836611917558958613507107108415198179475245078514038756329309127054339662491072259970095894896501693461522810479555816193709861039957336743270107857479619490165328368466728158567716155625759105889285729274706771889557089455190358273280837541085022844953955777553007352259486628452269185942246560542906592884012975448332972729794628880079270469685292284531800999492185864262029905632579703659997905691088691495365893508135946001711787762362612941188784206191445190010813761767242004277837417828899877461963522167947926101242089927397171107391349206267195684609658190089231336972158058120658691521377870934280274797730601025282730649053200419043220221240491365741903820701792891857964322544190895701302149712732738433921601166686099457077487933460788942496847706677629890304806511824886162253369486531757296631152806488352562165427307474532401538167003501445596554125207042670814404685179133533005908725918998401521916438450469119066437374955979036188268026245421012657620050603160512866642621410019877296668322661746358117076488691910183491306489166058767190247938661248362148525287019296615080773851482558421379940877235886138886920344857381318833766752772878390314175541527024150137481533932944619352431621758063706964586501406026425229145933745072601208515782253326393946536144860646590333118024201571983333881019959741541109988001012136533567460766019628798759775539273599927895690273351959565408413221605958148719387054927169360627823190660411764781857993179155516905599376043103991306019160524258375837484382208230514200421560646145188906833097829694468962341703466157021820806392537389927098512468847895331243364226347607104736646654943786083242257336896225710273530718385386050874262844958464115846945071811066112758502961653504403559305841252219529597051796220294204712226640137350547586867944086972487042715980981764391431578316790473672801899729984122235817826307836469824773440438189689860077436006030056694012037976339599782789054836390637994087303444290429365665924695729407095949871962079400464119824790865166692928277714640094380420871178720436080649945186285413147792170297637033549560927007100378298505686772053173584873120642033513018633461862974340572097128711319929891829942267636973359528966342894779554405006107728101841223045304735742400942731066449011179786321524089515805667821308484766220294724680129587939126108095501328001777001891749545525455263209848062194779985063193006873196014308701008439664255489402090285191033552082498972168884340596015680348354069352706924630284470277239932320553675450075781663540392593589649141021249147210803510772932513315481717296984324024964513055736021587294322015143468990201070439088590382830715276737637734993766405368967542979678165959103320610173990973800520864902776867264540825067799400554929423542565707614637639402437590716343740899364162544217318045526584207051976659170102871006787807886243306652453043777875702328989022839124916836084791872518428332245479453789190778948999596972753747495700253644066745332917205633857033355272846546379180673289606175849018843468410187618425582819122953886807036483063332527586463016603477073965252826343695024856409458667682516887880140197038871852019736467154439465486760136761584156899410854510283704698291727163833683908813775217622337819465227255907007886205461439277053638069372350818705593949092317265174143825215085568302263000822491565018559341847641931816965365141556539889984211548142769984437147072780158588285620374303386359050855694519799071218082228536232386230546157975433065144991767394330817961930597800419109280007445229679761754079705945791983898505780015270276051627182416469116871518229608928421920024782995924170275160306260314865682350420237959034583672115258506814066858679934663016326219157703649927439981993176848712478361504497851755013762220005854552877899486639280716638148429187690281409984049900140704431594171013352347438751967417837770116489088221192987602065754870421274908512654917232060293214495104944654194077589652045884204053946701630032682610612905200016637548626789867889101400032815692440551598215388675058243858914141918285254733660647268169141960529417300969962170010566556260000625512194165670846898043953554556669633363346069876529595819411661253646197849368379835887328661413447606138541721674126316320627003830308833091843776284746209151345685317505287914862845502061739489663366270720212901589709074121019346080131245330135784859592421270449358721629411234399854128520769715592351259022233558009096523355330175007469054155574947266519087353460877499658334012642110854969265235929629556273194921860200205227012735362763030718891485649549678162227923265908129773859817614566983377862842072769695618831401912729130265853325442067590522092610521428772512880765775093383372693141464376382109061035854441404939009085095384557828241391496734054049748254205601815962588965350435279854060254163994166817464926883188267094324896290980727228473891724252733892192849457716675891530912261025567848419687076236601912206164217848285219706171740532554304038935510537517366772351911214717600715454889109849405278698699525922800457790091704065556701897264747246801522285530427532240540279661551447384621977414983586495449861531490227004899578960151305459895130238987358123873882773402641106271926720803080480947185005838217208719623139234370711175638596466516192818542059879873449623847743671839882946958721266962141656524909416818767123326425792793548771184300085094650451855925655041533645590630309633464745661404687549106367668598890450734514324642979407770719830959310407853726439246311015944024919797554967280237461158470774238648394631969912066168057595693446069699275238403214805045106363378940221654122332807365667110968083309789849064470500636793090337571707134582573760694412015320076945248705036299469822544305353104818285356379823528655935800554698044057314728544243186825746869711780811411049541377947990670163267675021429893701284135742569992606429510500109928488610913424925148962203248430574465197719795535515881122770775261889924824149245954648640395647967467888421016893256975879162936472533688369250057207256943474779084037271707249469754369426235620026037342225850021426099680691486154059368377027317374059589566001370573782963887860695800859961732051846563737659217303844972379034367829750779590108695673703626640763175612309322228382283124402762257349601266994594732504457654259358508425334680551981676426395822173814345657390075362879986856922066643428515262077638901256292160980936819864225166273709755262944809334303095642750147820992703936447958970059601849959240683645865202618751753282630321967552128952522519307424123752716728156154607260891749403582024031954413569408302265620413510247843821594551597857655797456370255706200024170874702347813776383012013174561201184565525982357693656575516843032302229031404166475955926081849856868838926692905778462668489123461152938557832391333049213781903031851762397419742070054497469526197707227867602661215406103852717445792163087321129075288815798403319143602484063519499541182624622925757155531864081750862552535588429668679744321234199976198691379103485162141926796763154993426566082510836228851795640801566001207972229879450551632545591425857149509274773647494621907830762210235029171386123285155084004012201766390892704335772984118376113728513349922568761423330894068750468484284670372691265116619048160689411558100046561526878415391368370565534901634026733603136677336450573290605082213974453245361407480428603650457655743943468136250164398824243925317213269411469609035668228994248526033352581374742660142721776685070106020264895585306384315705136121713539949417686407453639952334837812877980418356964007320257336049982003923740104795766238430535694300706149416432307974841022228101471328422987447563658503150502230880691977685509980454230371613611977331493277243543518894663591272167998407985683816609044648394424598560196442443816775941885440854610358068744687832101276934762403113808150674314587507647254559535261724875467433897157619989079548471011160857266136229376502193427396394720803643851186857684735806107107088323047761373611981929007580830647312339457195287945758876049432317487316659085970494314084055570680876089058527748185827985875475850340182700113333743965889429168315153264949710271789417274881930996954695576360712551367938800371576471146771237771827210298511360606598064009537930025606264293691934182621020149602283799637599586824767312501886049973578640619985692498165966198526105292690996803829585892959499913941848628653650495603650799901157993651532697552705483368871139619867179979055324454149306561901324864278140496079253839134787414684296078837646795278045143328031325811957840628570840444028195778185055608719933020079006434231857128042907655381050091715103805935865275867903652582973022221128952179735742549382499791828148358490837304176814084843611970175169765832330406397659483435216006784605476622586642808042113349318393180221550202759445287968578175608562630837752590583259585108405789703995880347840797762807848067447377370883039534448720546144242983418535008026161640590850094519154675012343298088212022399945341117308668106661722697178575862147881554798695219518156480406668971098634748538535970407337985003275918852968608726849237797385724817538690903696798583314561157631016842632671265931577712227808525619010416157164885355684397808384685350471199819302295531019662339093075248661008321198589013308045291776507303697824424255421916218088993306299911261057240386660379950519118450058865775116967435546306101015866551187730188072104643884105264786489552251507487284027392958424123592231192013782802016176893811306648850705676802076539225380041944943262493599684001146303937523225258969146701563078015740653987694908343062163867691999180456115188538956686134168449766791851463609604190703558588545112161150032931057309492556356745466246688327574301963949455266816800404254385782479365293712867471770249505735176865619006874967384594855206134695814512280946760937045065518756652940954065271137789012675863440373276427521631425553121029122929788060497854001868653929727567756867874175994251822658456181483401159704134423321607553158992337893688495352649280650849687155572565493560674432565772078198543988218608240034374277022351087755285642408466806118756192880682078083186858434882409180460926936638809818230248005304304228294125971501195409656235100412473127864644933352658077073424956771591204901238531205577577711017952820299316185466826870051565442732337045678456131904679225227206246932184798743517213055435713202891095419928148162509741138983414608327142620888271282656670262590667717122804943723513639197906490607690862255113695302309324932265563047601520034586793296103804819384553565652866731655774692029703785937858296297826535563518488666672635947845270026699167511355114433698000194695155084967045037863374270597382431917837626897295697377668211170909095670490359808044069733431262228175589801792211089542466251549960400650946317364744874153196196771161805688742193824337828482012021205342265153464146690347489888067904651917392825498097356465797132834503360560301857026005883188291277097961992717326749105004161983022734980491866245198702414124203343912521408078674153625150300116699801687569205560329214341887184321374492657038430878377860925617446695729923931295835575300092381073283685137065600224316125162218248674329781316736147499823411274947430046001782007845341533234522137006043029129721966142553414187374737316978039606248401877484950253992405613446345365604672499410910100554909989341880360274316445930319483205551897807944258061968463452013353087147570614310166133257743875265868700697785338382009543134708157012157777298571328438065406685019228994350876854918231845573017578440411779651442830732359368172450353031227183028264447263412571783863325661015045742758593393840160599724811495083790606609621915637749229902326720638615670489356820878766698387399090632253729103081330040007397037099052150850174915112906327691956399517185467331441449413215326097369848307699314200424402079844060932187864357037289942723841767100063860642871805159178270049846681071709329353576827858170097853981038486308223016192524259666798083456950294542456916911840969160732035413774520629058494558609505896186463075034999588172384527531343044601755986286942415563354752063958864877283708134141329563630460683618573532290329211493408049546862646507686416645050463061854174198472959817279522919476364748861720587390211130280391565309259339627045227077103092295830254711940743267053069863135477956541331300446448208802376229720145947973699114474330830112980459060555837915647897658127113180355439258373616187609094342820882596514110865438471224406045253079542354753378942128498670869840040137674727775864317957039877961461558230971213240500808966392198987752643773556903049335007119505400993465235790950089945602485747307787244423847641860383760480408177651831504901963229212969184769504876488322768472919654654620928502803562140084800340504955837520356727108935457483853919764287861390464450008565695771927495654375966827090638337073152345177782414467093112778401948886629447039222740062295211256997837708785422830304127222731663126812716208437767863873903395123382674410838892940211280814555281609294922694876037809818090593992376155103718085994230576574631147589380639051457816498024109610620635380350851354696538594903675976912825431127039339937386783565894303255031054693952273011847716259983946039759156762067029235742830244869264460473717275206723479072784143696494209435440563470993648918584500416958807622596030788577634393910278292294803095056419910085195460486027147189893195483599121221261608713259462674265983587722527219695002231620333871193315227265880067641881521115940642983863169279341946343560995399487378753460403881566230436858941103815092632292814211658650897921729911608868333615399995037444021968012019883987114733928020904726900747549570308475974797477753510441469215001989811213175083587810441312757798723331793139454595524081763327416751246910226847547365212674171145553847804081107207797644265171957561374548180822667815161698426657991404927204238686986212979155174836052153904821804391536655640644049085410746903041471524825061251133322800631530295705857415122926962754464327502841618821344443041670347407900266100707127972851728610966504875350613841662092756338426734716876890772803885443545797020268779276979180540594930297144831622122179991447194944201408242994527143690565750012554410567634714708714491251240957440506411454371481533014167132321541620884899017098745135796306542601854317648298091646148986204715076381017689362025248235349155451369645963712165676726542060152951021878198020203330027398480496509591228939427265229108308226319512317385085800373839121854566892418171949758488583942610446339716697993839514056094665254850569120062526744653784960622587324922390611551703179862730506110064397551151961172977443575427545604524308663701654677756562261324184787460649719071001619130639814968149232066147471218233018870056700928304705182687374004523363997356684885459191668369066440858466008155464069964921744866441335357761793466724231039483923761620885291082862918315450096440732559780900985281568491643305698845878159146660007290977176812000970720422894092909101514520942907704375789541984270011264217668601378676488317937490378243522588633728369216461083514830232999245341302490911950014514949890497514184195524178028238485636213570404549672802346753309426517070247237379580816039583220379030484663892886392584833352003383111756683127297436073353292277624854228425347091659626115002544369240992419315672651308744832319331043057234370138223953687191633588504824165758479996694186455432757778892163176479782727544305947279486209096510170985850709628783442201562954039580442347791148666828209341934785094910250565984050161018784355109904070023178539219865236296216971105760017992859493140087932198708768167395616668845754445151648776859701492036692393474282954085121491553175085156713427897176301570424753921315850851058907764998230514976715344580836719811403114126139950304229852121819503070332209153077050170360111281695556765259456731901577985842510472781124512570255363175169055719777501370526820699413646310560918493623963032767553611620500551893264790541099387215384269574909141946161923123916069143244818437128751596933475884228927206869430015066148245400833425339516037174619103759539072468275481827661635783012039257191609482797919975361785978235665050067358547166121600989509212136773670389431491411959648524245307011543262153458941911126439096315962759424089379055727471439548755101407991763510518066420002280404250087894978039065067633273647349421007224967953191715169053741399012743146034563407769911947680931886829474720273014026417864794505751686081330032685837678863737317331047546076015390701417689793057420192806115611568269632423256868575039534156445366734834112820477497290217727485375103838682482012937673143869445443835840009240453843433394149656366848416752053373105701628471411757717531716684011520477339504263778967617568030889439731816572081187113869985491421471668103653826172202039662325431243199271243492270966212289227734364448144025689576886207271252905074963325901372348746326911036033907498972875504651803611395085173246268875625725371837005034824594905041774063007239962805522166182836677882036923963494195685425302103485660588223086393275099220769994634754173685297405265696573286936829098833743919778158094326894721455275287278155702283425298560079388466031721569927269748812070597987336289710184891539455402896649538632113271609707490745400337410363503295503191450944292675036933140804375532060416108081445734939174608166698711892265587635138307617502998691195540958243296900807010391744820505940834349098043862442768590283051521416706320486469483171275361157886802202845866421946864298646638069382740154580803732405520145331041689647881757345969061924724018581195153408604105209670959096222858059882380593666892715686261254120171095172351483988295031190378134113096339364719986592387078019193136983315228733251429392894604868121204698913722557979134547562914503866859962438354895566235331160269818691778345322000154189178638317158075171928572295624341757243280131653067946590052485959756898581304780218731257117194581930520317704028145357894020303231491796865585477873143014212173639931464847033412816724559547423727603044939534780487456796118385638952432906409777565503915489673732202054537595487023706335040909699619930047649705666593951681394800828183958094025534916561367625551765428633888575307832099280200827991084095888434117547472104515116682053137428070946019238972003702673408868916648804336818496795137231542571740596540352588427128221161580074708685639191069657093989777783203954561713797910971526472144612528335746329686053911980273878644648715818537333682562181048898295579691979482068355446939736413351988024800910843247628439009134196287882256514190018820224173153360533227528174909491452167127837850061130682704402772631361493701427011164642309761018765682192377483762937798195465307914166567462668840626641804735909908891572912630989984835359779044734329869399472517654114553224317227409878360111817554527665095386478544741104675290695218911877660523607311744211859397342597984889993729266891971148854544720596928439862537714666368694766264202642282213875251825469377297340422769304750623210292203771234239073624182296801259674383182100015746661872481555702659386512242868371135360724423232738532868133091557224635137682813688627843108645645636852793088500390926007893710421192917614518438484597285715349603602892393578659618339484785985904457631980914512621146819536102972768318877872593711036802230349310005661465875525151040083976794338731253121827513958147975127824559609219647979527607060407950455285178896700372578310266039544887827155937496261644357533289316446161715493330183605698422524330489801746256083800888843564997432421951316863057263885319717919374371382543249275486599712178358003773152839804550308163763317775266805100900026891722526917760593325766015558229740742119544409300832661119556529894482522812779284618661066241834842373012890917795404997718200153697849602267280575189086107927089015995141472230440008611051910875024854203462432997490192005725909532016882342976708303736310076434778837596808252149710926732961466523855824496530594942501657021755152904615091668892862637926853126796859180242016882605132001006454456062676847201774937941027384927975892456935785653225669212521143871694896542162466889721305091740056360027640539783983111263731185474766099806670006593483649036923367296348794260701481150869730257506559675864050949435450270005518024821670536600525830291209172873209050518483546351500787882645279482757469263276000941917792329903578690917689093604849520669930490193741741125558325243761753512005095204609916295542807624201753984857754864040682181767692154191865716696145538843800054927003412548737580971027159791999313257544488446536755510464844903239347214733336524194717165173768348000516322062984552168716908859095352950625102466701541250157226931479393410327585571162624484453788571495236942243999449345885476915957612460591364661110725369986054489441568120360011563551758184508987514797632724930489515304021666001541562612636333277929970943372098098532802793530222640039107519807786063597148584624689817736344256230980775572878881789842858319777186026166226506033894155354370473338162487013408839487956168146790152508979374118742818875682944684086218758937620893256936376692646776782039967871533322430295870125820925119226099953584822428660787374162245911356809673375408598443922200678834745180326420244270864200417538424198580811696183452923679569445284478734468904847295221427998903949027711081546598825401756070726416705002125214820428559851490087493827758153498978919251510834529290633957447192292375426358726958755324836357345918472447244622416118387788394619805028013610839499669222752309385703821787563574860713549788413227917950566574171888798903694043091904724184221180234556161732212776465832268209502252988379613478883904721260025855083724716002803975760934495002398796512074344808779786745250869453266006882877680203452896986318874188661639802804465215711236909118066823794545280013051038574399373509914044328236251756182995182440164875364876437242434250715840306536254083269679355717410073632242872822783907599230534191756291098158636350525916101487705813700710735383459691454930026712709069743264378795646540309420379579717338516101241763877522861706311002675168010044459932816805880755033698537888641208915748821975930635374144483416909010951032776286417338920909047009267781650946555149084514744443579935028108742669251159613251840390162040090348939548638276856126418842272443695364604144420261176163219373017315910363412940176364616515681454533723583048485601870133349455819211933987888665492793509230712724466308578349249932569972674110897213325445328745217741179689323747373581490233703940116520372152065320614505398095137007928157851524071794069466450926748463197619579371501781042505608879947882863920437771857936634899529605392791848286830025286502453183904135592374593926541491284049897183292033227732320798336820595085885735009655839528962881109606787758651472018249620028983685632236311180890682366378476455382307842035678452088010163093542107354811878886399254652090991726237738553015651222129541902295346578194951044024824167588847846945795384169376264720797862528684022429215442324424333135919068159568210527864706025740036843115001714120602610161056021747132817897690289128797983326386220804056308285188279258330260935627340799514271474156888236521509715287377318354453013377872954695419607128635025949914399223095560263831696126791042230287042117059585491812482215766428234240118653903602683109171003135504839178093129316261763510756605695559099281237438770477689191176330202236029919363689799396291697831505830049278804009968844239346049446409071952938493651626248631661739433068109725060492067916319602250730825115224899574709696536612085119482017826584569692903678370140351537905128184315107556411980286677839578260203363739717423506269733586460879121244436972459751499097272897625146451396775144826907254695043774426044838958702079448264258045439300547326210157184725485427414389588793506602052200310856723829211373558067766137695760137114757376457782661823070044999621991629407903542649368844522501530658673841740493696117974412544080770173642953759953460306689548504066600916605433713152699726474156087822728924419752196460563836634895768795394949199231151719036348117616652328086799069165293202707986621210688296028988188301697944371522134390165473258706949022353288457927687848591418209624317142924809409181699370950578294157962014833758540368327338422674538325141919171047021939841896865490819952900706475959870033978826751287727043735645918037985683788829190238366806959135843216237985889299889613071073699207018040937528613990553364766514268232083968065118533256645048939123139684093745981611533283422563008653958451828654557323062413513033748786951796001729364669357633564951777740758176105039574843687658327266384759644943541084917614845182867507861020913373023695592156768681486824794378575040819707164756134766368781399869830270681018408071586399780495988779730747756224271498996523498137763345640863470248212103681393413463847866416599519282409870891373849142278001530557070771722689768456646429912869039217037786133284292281823601657906098576039406217512739599954740037633061671413469380173666061803525040553717809501170689489408181122396318234836486634950098282726558197584045240132146361908046934249623796348760588922269932935736689996977629074375271176926584674234308417411036231826492646007907710939668147636018194274603976048790794593964761903783661650531060834827640181189032493944373107917570366526171473306990029902059829912889577815877426939309428481850929914354823346115797319204308310663403667094005552117418741690740537002435414614294326483288334387192773105905271172279310844831009130542792023074273872416225929302493707522273583140006175788373910480689525918553971760404228748021239139782659774425893947473312077984207248248333994116368390899147117691194051956660047040468770029145435001752861228925134628498638659860236656729773449526215404906794763465165204109499665286880885869284038434152866304552115812084894155238281415612210015387562352291379687111027790912401391525006842823743802419047576737279224997530549184553720412839803157732653847895463575545501111577105552229538710057695560018713742421930882063058797294179250203405940709259706174357694043396040160849309061804285055966241367813426983894812734660131076857816417200068945981469320134299427032338906135004753816776744206887432713367101336536969755743439498259982102114304146966033152203604052062019497315858586704302988603208558571317097321468963119841332772342653150289516106240162051828958268174304018215057348544750028620659142470439345519209033721612896368584855691668903601640128972471902425196615300579237201760150107136437579124948811805277731262458768595159367945302257252629307397232203969107609977169780772569241927306296504737640343192804603647204928903145590231638600873789457874666034826910234990533192170250122537256936248777001452916849043045611853562813560925740912141817225997102699163545941308558372625266855229690301621288920090321908772017099686914573614174749320832800135320168522164556119503947058635654885437087009533202737299887865283931919573973863877125404556853594270435157202370592384442597796690567305881005743686737720170818883560786018789169074771954132956132879755891763884579522027779506914775134827739941622338576653461547974878010032107896403368113330731094887153844589438598919338179915563862032074772115972189579022234128124759279156599120431487498735538999047007886147551688104554158896338788463624442158978546045841508484348119267880919049402433458928081593258148731280286663897078333285190423979909662095677034071663407696090495475229354897473780105238045920781316079068062262188691232775373956492753260329896228609629338790405600975074156534276154045390280239961623531620834569253021799035851723245925903286072435162082060377280650086612173762383668950246698972372908924019858420972647945257322239236785729087208742463654334848716373900393108015853198134915859413376334927170367309231390792650295337664030737337681290234100321756928081559926008012614669780573154725966903056145017596256667678973735642092507930379152278755502846769350823642472321469086922805790458493933391397446930164104428184361098076287156105858958595115637553968527466751715184007097864597438666109815078085811537643034223535494748292797731827650173221209346018930104096551822900981313939443092246530250357209536411036783169853905185879156880234131593152596736050290341446999531612100511764660881747996547226750387849422467390892432742545525755567163690079905583914470734427254267662981635418204881234202210376641271764874405227032971593200191737904715978284253734764259063193457994421534882566722820905192571617962421439143195956220572583789932381548070217639112526881292019863068747360887118654235129851771801649926041680274198529264339768392310010677868309935602174402472340052513554260793895492709903764910683529964161424281229428470443050085616866824943050116745071100375002204283497497877373121502398931912315391121159498308498336359196226071356173943776753389314944261205175989550382383509653421471251518964876797576746212401605643361041269911841798340002059709752437960634183782724575367417411182085833257071799000650873224349967031907969202366155069088493334763510989052939479038879083366914407886039338562231456954535175415558442976156765510105147816951111584759199151845335101302661500778824327356785249354526274579500840124356440801216342337664385857447299550907859257786108909800919086466409594211474954147583651945555010558315044689456483596179411570079431111342216667326965083018125737484514717171772924954542793343464848618257729570921703320859808911329514079283780221278164097691971778264904745349357799188330252554828223844363573426877107871322878483009773245675340926245311348172606693396363494869361177590155512400367104377374781386404504343612367893932047600616190645705205274948849167115514813948848766622376759249238114009186979393968865862080047572933642946633007186641960185236099551409680133888266125937932640938176463669956446339467620677350718864103342294011662844690141751222716474727706591041636761396559055671736640716404185940068684262463124055551128250434471206037965026118289539558808132121437890311373945839090105105961260590893825936571204011991641207294423059710660076190269975663598400939073429221911725702005475620794602972152766472545070641982702041770049820605819540830065218315948495347004725054165637391670314867264855157877758026469206038172734183281245951412119844000432992594786534733420787328311030304414714470319477197429513962866185711017510235938279307927202790137923743006117674533697257964118042325270413833677981336861271880167053633944525466640832020872874042752623918760515719792063862772573143877283536014554159064373708918681281640333822788679868629879937827011703724145947691258581926423739247902955696069694001860622075690934377216892481206150327113158434210141296975241612238720465454260343408787262451360241287688400635410815809985518710007828458999176094844677960984669596027284509287071197799656298440545627184458594154841565342620172614960334617859415922337923562953664688673591916612593842801929809834661099807402385127332293166226796886545252305979925666783654223024341855293031458798764783559740981033551904671299908463453476664689660389478295700851236877330578424230673349976158087198257600593289937797803460516523821709236427374751515824405650226937406168830109541227769017103559789099400076553669065591147478156668073586797091184487619256059012264858754094809749015629958525448271576160547693299850313822062013349820076294015391712905560804865848208940815552495420986397781473428124909885280536503271594244033295810280892838159599741962753743787670876102551316284730865205245052245392107472826189630490573255760237853581180392376802619471498430696812344679612223879425620494402649524858241502671858443213387740748304735594826705515274490754996325554581693865367946182717490956509692985474367938941655048261109229456518082471544531293927552422558412874528280916899655578752131205034886447608963296048748502388712339086350692799805149936675200541433610242577302123596857078474785607864403359473288655692868850451135273042944170927236729060578037553817325099992357473334813400092495604070011547903643037872320801632583927744895064038651054719443020607855421689934894248751281527402161503120500243724487058897353762085003563967208096134984418021452925497908148087088586630302453426257226833196930997352659594054875356095961212420890228522227114513685773515756894688745441235061255849619467007551487508352268388901834309306697572628870295139978985945465563503951190973991925527860900437883158623625974972606314277204458084710796697660491915640037953123994742301770098814467313940013731374700796003530147996797071558206758155590559992430896495115733394824962397511524106134780418874767207371520637675417434185715402942821086457281425249525531230683215202378203680458495820252698457540889553531395302411591258108513578189207369197147835342471638723293012719623606732195561994574312255416249459107441613942114637261223511353224901478407878201204053762270227994165312064477128537173905613744491870894438476470336024680274805122284010044940837843480989974937397049158458021554101991214723825455387773316194007630978803596132102532385554774103196482683854652269788334643065532435510406616422907365827849077079085428711829402979816575389757662902849667512934017805717867318135811472990721651846401731714009006645928550889481679132311891614785246818508797291600848742302454057932804009179887130041665360613272127482237683269751050854258298232121017576818618159764588034826210480467619718698269495651695018489623314287194488703459382465959489715809532133365943189192370011897099689599535638585998210026125497154026561334694998147625340804659466335151493748945726979495076866875008611495070545520641918182405376134215689933382614636602813810380410643545919238448114459996899871618833639514397547370033984529173027124590152048184592156872768674801329963304544341207506403245169507744329882542285614982740498298089406938662798495444121910095097957297913223213044526479458205631545025238633911328012984240891643522085736201455820623600016371467811531254441703667117834504158594612803597328148420903668644521766116253349585234703701662555638810954354672913597737292617724092374642535494344262038936930772169408167429599117810113366849643548675284606319659217276524908783576511668825347371288200527421291631054503384646708184122576134149386684335990780292987452297520912620951902105674604968283558985423229015399236954698382288547506423474322323332285783079848102306582460684521203425607594270710652617457612433655876706096942710641102919983903439605224791747280765246925326540739092769462826283483377142190651334213990020407820595822714401383488565532923654227610769704577112197707813939473807494962036470170038178362218136427924906431169358009886727670084656933119347482777957554666636361906467400525682507120842210370695849021662494198542227463226511207335764524516249101687486056429604757459286570116659863506307915449687679524245428467449891798348722233739787676498489077063370265699578751001453931429161276908390024729879910870626184722085565852830808708579647308964895559637533232315400231734554112118946680911132265070540044286468529384490990784928489223898877638189224048951579836827828350821408929314076980528075914177020719422042895306059490206275524044686489102668983689653234933712929169409697722141400408527936432971953498576443846235749734225594400585165155573068179983149593873775965928924517871274703501470760354561995245137261026666250325346394507550613426660678823294048088026986793188623698380052184106585078488743943420483733406669428790525898498068367563945293110389521803143667155806987393091350473322899367867302737322827634588975570290742182612768136290831112777919745176193623527123972703107467898531325793008628540504667380530903045135421866375502837615192712854584053192991172303304997234880359861397577365861394881506029213377906358820573199602683649681252385894350608583996590482323018253349293255806445232818090104427358247263457775276701827501683668687321914793238508245753262596138490710693160137422995810735349267192116992928701319559576664321493710704513358040720945567828903383065419584083815947155299347503039177444118538350793266673512177577107901032734575223319499214310471915186328386810862195393311483515580655907073458014598076554437537176061017082864762706891743097437815070502015011737918845362838807701996372748299870859217324524873536811757941071327087962103678545265323499843683687216432759582965630035141228853416403471173829624960383378853272198493434958883446220245550638732747682193150962156226216907326600208324687599522270903588674229884205695596854537941437704551145220935782171336645781456021406338916510431907653976034783040649207522642249081158251594776428670182275879208943368262901711194520192300305371434730607122630947660783742493465772144991925974766874523141699220443406975568317332523937075171697190336704397486462561682658492010008830095565335083478037300382351711379079455715464834449992946386415148763474753746741126236026472905923226278493322926004099394034052425950631678083247506751631167632984530574664226255465648261296522210412663289335718225515186687020138567469933540412848052136032250647409341108385169182083706581218060453987500653731172533532892981591334946171334533931598995768128092430540228372224658874900396415110398639731348287724104173982025393529666129071521977244436041327221955878917588665495236693885979627922801286083420810256930139195711108062628326936736938156014939684483461230787285640240472382873375736367856932317531027513531767468057419852651054534910608856478746686998896149613595820550613115623295678286675795370737400123412203822204159294888766942720740403793005168446765339231087538362518390053469127031783495065844446012591562184737809847390929019369673782945709392140835200414376344456173590590391112072499283103760752819787413251969461221959344536288306430674904331643788595044780139568403020690465362948116199481937634907620725623537760646811843002402227973656486777119370569274315091533015291677350313528970983183771361933641191021559636199704378704916208076166031854138812542766897415245440741966837306140587011852846905612294199508534878419809052802355517656598588271925088730372212879406167309232894202971193319090611250459499273189506015059238579071993855143435413866120448271932719954218257679114007135084651102624524598564963784614353896297676802892211980903778257184723007519205651859754106507658263049238347135915678158402453681141999360584618226022907709834268679199694974033689756661672119495589660823807997308200411488057790633970924954428708913508408458439673426105846801116733221464983609439628853881863921344256558336710246568002289770986468704721893980385254277727661475515343875138306838862765760481992702237173344573011746659150969158175567673957238314965027612514827358186215274903701672135413618028835620878296849031648837349021748610964199666161448264135142228821002620357634181180776942729611809259997334278777927690224382187055183130122802991382917749006719081438250293165243774133165769560989181966949267221963517474702025753511147043735489839833898628929178957253263671066906479574449906973514770618869114345821757224393641802267685997311630345087736310788233490745931225461493761297244813814183770036030259058624883215633919383675990290547734246307235652552325287066555736135869524704277539210623717672999076429104842765557054499104306969672727768252315033601200863482815208374957355095252549791690083363017475326537221669113005402215589315222601529299056630219784044928395640402443061980115492057743175002573774416538534801122300886356520406280194044656794093640026122312764044429202748081551998424067588841833434723557837311321699023690512299294233804491463703398472847574171500679832338826835378164942037271498258482471859859870980296521787670657753641618566895584742000407331490084148175558153988338589742575015785222632164517000729002455179047968029209052216850030637608646541282317278965853066332027619708293922947159325649767299314551535810726817662097793359073072986141796061142878534450212526055593690103619078572046373740521602684371059071270765585432107663872199087689355297793992672589406108351738690794081059141785458023793251915961244649313029655018781365220034370177283939151377636490669298618246755046508893545410685998652921553958729102026249640389465127656825692815903285295598962060657018441127088290911605021072297672901970230236384083110913542805204677482406400737405399126257783706427570324851363991101397271985884427853077639490282007855089951783587963775838552814322298636010698478848698225924904095328289832814921525437717901375368751012099570924071090386200921762328860577279148431749369044378719892005652931617605180567598578493468123465097128056167732359969003817631636623475204694632503298477117920881747526676972700137539086047165556109550809958795200555127611879574064521795286664979277010014963094740882683890618902170702645073861574393195497004972280406717005322719780487696949244031998070801237869473248572880284261069328763757086281671515788389569420279349621362406281342971293402859468564380058151886839761983692153690543710781540737288851491572902973299999725768576875891251862119889473370571572550324068422487306581896140907631794668658381299423356397142880661451701957973933042953535908488561573224894263469307580929897271368264089464268009697481674722216593748385944869550925572968998007711023814880541223095866596122174548490323228510072268212389951226877984243178643532604515499411780207984927431189042649751541010398258844743035737617978475016766788731665032989653213904941636326658568175096455064990710942916365924046623451053106655744341330842368088628616188663805277684824818360504593831866358940259798603578916839883515228929980662906330588745806113508300966817656317719682761950124580879164815040841863654577360714663670421478953115814527411403586870610282717096701108665804237390368866814308925302437687737613489653858128466688044705247490571959744465483940607833402819524378503260600947067593159270255792440493338376259421505020997284375582717318248737734862303840089113817862191338310994207614395935766410961527252252984484619286203240510353219215480984855641887447900598953332775308760641011073987153271550066650119658599881705199680400218349327408950748769770933057310402357538747009128949384955480374640914380920463756829017072100432719096350298414685793203265696725582211918404258303768520304295409083991382701712415105009482198086212606247803325963090667441601701674303475518948303817531032815033057878861521332772331752902571452515542340075563226028024204629550761581277926711428525172400826652376569547069487875102662559466295413437853366683295368632697757054915451417694419601516379540366055453281378138069656033188354971230033282570204527198421803138605742984522137166928301708194501091716326906264325736027804584397519910552195167590537889460204845229348517267601966612185590450888288115126698616653362266726448728502700858037537556119649092477296553664407101800642636947874320274512876719639477764009394935051722008875671637945543808204388754311519548834274633263327618101639514305986917257529108171169199556049949341713527399623402713305404258079387238373911337570927436697134428309657782939901855497586103586554345631004332704292646924997591858925588727646877383440475962312184195471159931161888793318303469601112984092155618355220738152463679565721559244020152889077994597351586495654527389477879915090048026923373469778097304791372324721655605991480034801725817525399125792180112267744074486569120404491918801356099022571133290203417654201196100680033213522883381900863737363506782883274305956049256166665226406783041067983412716345411275485444307169801954844815299443617371814287703049597292171293493877122719137107023254682582173448831851019887146939658018200447082881135042753383874447597610982325052061579524566010710198914318906264217333794166000989235014617831266639039291036155154310128905311613073069189409820961893012348713394049784384457569361338317124201008876287017894795601772362444511641450031972940453104061288190261086890339245430628668030484175141258069226819533829357782471716083452606836382776523163814284530539461239213091091723178357465323009170546002873834070762894618876675272179338782026838248156813367469397679026225650125404677691281793986031785713692714885174911614408835704843608053374498511346569994458200513177997433431501549287191698262385736736970313235347551212581001513044034237116173016737071764490526261122268345518625454423341948090599496800219932566803348481952780506689047094816758214359451003238713271591021665791724107267599749357422862702671183652103340912386808968654952682702716683246016289263291610882603160095298267479324224660257608743902321216961313580807209219166062122189478386154242934251943961145842498156617681722973779310145977975006687677974919702321612206294237356662755040312057232922205649786428539722253358862318326625116558653534519935025459979413286097020760648134007415231301404229718475082318989647622054755947504513461848184105045259915613238821012102067439204751899022776160814149290958291796467895388412134849241393951663916164981166865613866277210123452579393879358647932306775029389767275459245230533309210795358969314795612379526158606541086859053298531342856980672172163323436470737535071891943951268763401788290184450461502447975350587427064520055320042564771841534756394013072324849834183750411374651316141945673302741372255046812543575509037607988678440066222172749745585421581525584531661857062320069537139885202754279742823677930093249442828008261720592302552180634850481601400884089559635533596972607670792702429547224465579907350115819709053280225334632708162749632214719516652248082276711638077898052830763122119490086412089047306654637681584099449662698605085098668409041662870818632971627614604940290977402535456133626505024130408508252989625537899748247369496216010935567511541506958710822363112101067910514416362258054221527936940102574070910567918466795260430848315746867478542960950946623507757172129088362310818036188940456128055474634985260501994820625134719994918635828599990238756975202958290171430913349079411073645353461211345014644667351359439149047784067885883094054799301128258052950207916563841385737639388803149130043699638541933653375267968583564297750456915237753476378118320817065792733699553299601522478143464233659251994451829040810958095461773149554009487408325076819559570786346966897225206437611457706987800751261436081477957826272778998641747199208740416827906930626410166810691074370232087216276895185414248463032926492297206121051407726994534229181971672815119928464058989475331373016486340385315354896527109371055762547769308126789801339334127641926977209307382824250659795690573924792591239380406846714138797488216295260823613964540455526159493788051041528856565111639885491337104758199109344489999698207683393058660580348154749077145147374328559208984421720234978333280814803197031249646205433795662903910945303737523337886455753290972789791399395651455665770777962948196989387311922560816511996985822354536815671132169124562191221632669840691591683946425234159001140268024313550416479036968928110098896742930243954327251911329948994961238500001272859315445724338197847788704261161290409712982089057405649426619919973834821242691597843458612061209761511177022776926536001414472373302729041780386246076695318266309121828411171922382097740133768358280339809367957212277831754051911390536301144733712067553335030804164069633843165739547101360142615159053942749999376061840260767378419445548062508827070676941124734110636820398730726303799275487100199295239220854448042828382656263963049839698973192224321576220725030046341952519382633598900414230487379689367172096174892017313726491508280565439381091132444291750212137064281805008921448675465485442635790032415511147963501386139715584087944036150223592974281520360074336497511235684532218689264633331247432763099562212590589188016552227900584875677913639260601525680261488068978693274257531163325654144918008409496479594019012524478809176809714699147718135976486893172977204220379583217685533551733942658267941641180044446821019330606548071376135230606333049493886348407169890701949957138590959417725286610477004426224242469066239928777974065031342880796395364413606146753356878810058071072524335087721864777980154529046322392680478304864751737738922118060031199013164678224740214732810475576918117751999496485383896093648912353461403598212071400954732615990896893461191592600511048546266059753142897544845223534121370285629422357229160629755386569134911657545107173450189370664766013892104686884628500008903939936790922690077547302154540816242709478034942054923878895241206863929542345470371857988015142297390650101487595173475926810850863711719483092137926639651630972318650215432310657245679201917579861528712781076785196173090693536089055354364549800193335023441449957446987526781125052515474485784936686580966097106523861509686188801725706600844695529749144421176299229817934254377784165910244309202788977928830534463147954042108623708885105186229207807383830895656497384944036761793474170394561129816255253614466389181078933545086272444889574472809022426953171995450342339582441629349354665672461229178615888978610037543506688245718031307392463796418753706434521584989695991808401606151642476478576447135668176527105780965463053293181518963094022236909996439290714930059694809471728455795796432722154677080606579293676000910827206635696812155656448210910479123457260351868658237513843052746796075659278300058691651640031437226441497567172277867476704039312285923358978098572883094155833075457777425441324953351440702749112877428115281198874705711005969178940988155689259595530806611647823995779143597228557303733702354146070886362737569640298536441060129595880824105326273495643798685398776484447432462870817664920556452495331742106941313435915735835598303530630706833925233597852028038234366116561627879831934365688668922812361672062872527664449299780154233358292991720987376196749869364892546878840287828425802009668891294332274389501237980243787655270520222339668563225552441823083038517789187957467550517546462903051520568178145527242919192935344364680055234851909348565828631856857849720619505401579829625896711485382719943492969845041136518482879775759660609926990068337146601158498518565265988168287651211496177261063998427398704149211765464925741263603683590480611685407928631909427098028070076140823560753559894788874962857582789889872197403503598649737355266144230158974231898676436551509798765026158492949248344334604705122097156161764530694943339320414711210202976647315107941336773959123960406728650693420971812610780544838982350801204587481588967970893448089149235028805530553896027793876004192042437753968282726390929581491396304954550502271581231285503065648543201819333039209661661248079804683042568615656123467248349096049157359332388742204082329341955898502488915780292264164038599148556223511163793150443761132989610071982559519081384559461733728584347379193609538343811809176131117593869246287459227531290670994030575265754640927556708984764868234598816960352567261159794376041970257082662971747059935058151569877597708321723796673589264487862345106370465976189211059020851772796683761973851782785744260545647591573513561601652983718895610741330884123077927089747863450436204466542407148168833456426537036782652169610725845151126423751651096596051104786178636707722291093310928777977556320110943120370286947921535453879198243628486822973024012003150246007935835421229876582524768490899648259734005395434399710207321204841875341586360674159039535384692418164052141520450357277857956891816352507368452871686516545149074723153789779141589595206599171633712637702114722336257396807560679073857259764466911893199875734219113127885056885135186076780540323002085268854436725727866701116570774604663741990713131744820643485473904570343387335496665250218992101948967777340154823847892853669517161747642997039913295658715900195789500594064239507940092929708912795802637372784943941062380219493896278457529573533094099024964296800902525792864566148492867975688338353839748936148658954375741990263133721835471509945650964761921691440209461343805002337066073514514229342449263151927378383821015057990121265692262032207455515161276250426493576971540737467878499658713413241796503072791890822292424269225605157595240371015917504026057889502531047283211303535683675588245100953924564703966371726616114618921740723416628775821412156570726107712965469161126133213982205965258442502319103884511815687480558410961926339431854483317115436987796281888252888708475754534926662242271646111095864432054009007987978646619354014986150228830111854276525295006865888228013808919352506724538807125795335552754531881720440702236707764919490891062508164806976469176123673604916853042297911598676039301164335321000462604789164692813739870467129532807873155992286131191572247396653000062402900871045735084144843720817510652535119022524931655832698709353529461941298654686768887876125808660124955803444790633824301265664541803842534495625064457372999935770544273964269837018779419050830702164535624240043205799868808653332290152845858925324071981748440687821599157644261015185821411380364878517804092327457509029929549434201450651545791245075350877469974628890611700540124503821321301275749015760163092576587225679868380070462935588641905766391453201250489986427101048663255555129223873549519067091675718817909482140961670075548959037721181516852986342098023302200438140314844447023602759933775867135243061703179542934127926650696258001531030986476557523651507999817830834880023143738151563429264211259195217534633690703341720636828624821960969592764909538468824186726141444461044466288602882446116963962604299845389433083845459274930893332718962393605711422334469139085850705842817562467144123319665009316175986226106894450783167447015373527504412408110814093083999343881567002353560902297873349518467034936239847775782870737386160027579065464085327527586166378426828560047212739276178774282056191619629684617625938398902831802720930635356758320968374718080602355188714462025179936399621911363893155298945753865588541888746831872401853418094537116871331113321268065697009293269637373454836146192689676381338143349012252150023858807294594823371716874954727932320556580324420415232722241378167775141213802550927447408603260159925198855315348339836843939078011283118166639959311506508305815763640041057003496999744610485271044416769718701329336929672833667600927321408316779059456670129568096018345306490422349622699957477284746111469015142678691907901528683232235334783578420920704201011124990331310581503136994163873223885702933210469948349180390770053924510995889297685306608866158114581867559378034071078722719179439300564164886895682501025520178206321018107550111641835672249310530153550644232984708956783871352819217807396198111581206373006926017679684576125994762004522879300585144380021586228260404192792772617015594634772428008275481699716694654402905707649195556436722776306548684912846505343909257816301495591825495837948126732389207567408436600260679650039960011671042737924355559188999758693404806494842156261678306527909230217483202949592492032507722906984188936171315759629287106684501891731671521025717861332771625245041100263834296368603042243320046966277945850471543986934598295988787501727214808190464698309193601410686275799181084883823501733759754533011237786060836647423985878243904153767932390628870926861139589086373468961976851549727026123728477189990691240127445958359481185581248558033559359235546756453070410697502216203322936421860877650800489851334752853261478221783507150352128384273186908616465941427462901818965725163283842572727584796538859087356758080305446133924303493852298847819529718831602954411992537465471745565063997101150380980254280362654420326776671255495971639595344652021769079053563768942751017383169980357153929179456670162548762812885729882479998950720194335222989214450339844612624217831609570804662847944475288361387204197085092448771098821577305831670387553867209869310343007005854818296504606682113864160000716462113142793503024317492760772835558998425924567478629294703168760063663670004834027446537601962386689783108599097980326975105996747066255475438535370576437887957999240904941252176006213466071774047551743024201676161436196695267711792698804333517339528341149169047678820576983026849383437478749646859988312156775814870913777753481411070579974679389108465273073066601016713242572786792241141481850230183649690607712217894782564843352515288931368020322129301678549624611638926224359907601409508631168211237471263406769595122027025988013994862880082718712592043591047284705204972855661400295557806985176155445173115234944302790172916148523168116394058625951180131103998676395766134821758533539855041970350109061481254150103872043760937557548861811743683633764513246015223685364614164006617023997192134295678431716199788279667312772327232812240474272014598621366699176652192703046062601443781655200175320956725142017823095680698907327573391411311332132443967346900326444283641175435487037554644217621004743178871236294538479189488755439826055077861088802851106639095717322834227484387533999393489158061611909635336776648052296275544298053855284695597953344228906261352988372898196173942460907809381557838443942711562939469779023559772077848931079475579531813497283448245007100033577061678504659282122745624733706002519122096499619023540001739269347335467289482215131165950000316021149679449819268356788635654267415839824880002663072293186298424067267636946764691632148300363069786956936506490555906337576795314417563762677240019721002989728749714324540094223628650627208499412387648024165311907438093817375093358909486859105585463601685845279499699442444829400907514165760708746023643161920047800766404438568843222144190364310306252534239321615233360054402948884857493212768029940257702616413659818798869447143323299994027362041987611159977280811684885730454496923523330837286937009747027530283704355245601729058604876571739156805232471799961576964068840722513556888380935982581235330659441654567369830135431977993983909671161911963280767758839663603983452787094531164036917615066777932305420498462281826973081431504623627918746049410725277332125432800500357750272419640138276173092566288737029535607044251942236225925433103767798602515074537127402922557854341215494021641537681980760800598798105672656280099187582476956518156840726905049745283582341789566795537879794840817715832368244228832597646645397190220585515133842255916325558741852614115989745000799534574512067527863739886010654853403215337967908356042043795769960035705194677324684171598592611217385533501406228128838842348916018437018314426486250026588884809716372543975964543949007475449895419704000105438325138053910808908745249509235779626605893313441362603832071499244514530180375949969936989697609216988520633262538671748994686390431670901569502580200280855804768300280354140119467653076523548903212545209662632337715266104578640604775209469986807327440077980846199956184718509843679056009170962066226425822284642846904230868575871005524063860664514005676412421036463573676305593965478595799651884050563538029094007620900101426430380667770867132751427522289532306992425750074217279472510024543116229240603699233919726768932128438153356068980164736500289600584324846174718154691625691797346602463847502762663352150144095679913059526363762709923260886682732128386444362549489191005950218022232265699571743408435317677539420241679892491837336798239440122975017156967382071824664026011711798131628445410520773826388370233187973790081602521728098566319592225468389040267722463626009884864177828148269578770826531857236964677133250776485486713436669043186542518024824775580455620514003410644409100634733041181282818048747022918737575766102676920693737995341196520501747206151383901820762931248366083128695268628515299377531785812562676865819705455154644559493470742110421562085647509946070658186731966119339149619559907642466710530358788662467031915599833183517067673919639383608938715591508003572643125147348636787837976576563222199324600871783093347819487796979922069955455900439314041261165100865264407753357582606034378772020150766224878696042096686439309745902451568615834273731645746522488555664715129610786649223604466655919790782820434043581108465828205001228263504755621743129358356987313602995503792786547524027547079436704139342572382851597465478905506267733518125433050270916528373095683224410543202636451223306303399563662877295614423184975774129886464085160018245817932542818866301593614498764158397591269625536248771354728854875795269200849130630273968859553072690943897045721998178814631400499989095985112026900712398795791107990262935517377662784047858117511760530735577115590647223583058216050543957868594442917484765534570634212464879692562579118126259333271253196178549990422154296848096814050906607762979127971579373431729813882430027878708699708323060730871829263749107961367429228961838416763238041422091295472855925175786343861668923849604896335447457382165346343826905912344214126613381802758160849395451261019692669353325850445699599088007146976290369296309584799365318249970504490190090791204170823433174436373840506545717977949495850372226522946838209947483240590884771511633673715366878188521942307121208033934149943141481336512126008725932711660549873565218875727922669482626611198922850765904966914666904284382148892061644131860356328935616801213705908992207025732761765072307506272049843775386331669538710442652824106685627244771818235263836937326500743142803085349487664678833240960679725363176817456576702264526304471420263058780164283367585946896846985785602895164969576713159742171799945784427327403470895350477180660275277257696062983095176007055451011958032082814683464168953453988263962363409403273104703262289235096857154894107797138745494171853860911604785552600520773992148801088437893458136426903196906661923884918062799681343722261089459945921344498861844373093610385984125175806171636235979239058392876763128575583155732472493511038426518043521125065995958861847787926916096414442923327387814347350356341761128019500297827504031622345982254462059278715307224741416234470373622902362498988930567924205741518267341471762444885446565103450880444312541071378329394387139438372629676939280866121213808106761165116653399819163761269914115899851843422867329430073528277974834202211150506240337037188378519955245886341135326490849161618749746424268930360791995598643678241037420147964903658558114906581432666521912791645157579743484554146236761971205822654347768648201088409927141220361589508186977486048999627004488935026852565513231717641488313878159136320051900446629138425860096282878196113442205859710018413251042543655861347460362362113185380624151726821637704222688172653230987225684023792047192206731342805357667609825758446676074789797362681741361183154716310909714455848424771472421117586323343689311729870934980945400595524708232731909933262759785770988252428040503785178386645996588562929175049962979583499399675400413587616100282463500470191007612534719981170246831979543701819602686417617953333310047520033540420367352553037668989472418499212572477340230643709925811929144883222034401391841899999095705925878034719560151295565989342605668083934612108692451955581773479628840169673079136229896892071657389791055204572349720496104514331654714698357296066766000787919929130287236280303795188790577491808960864813901849653583283008562220041811613978282466458589038610638100238984615453261539186089393909689955069996300520160560205461196312921672293224775794053743462998457861181872601206286152598308022270272479105522796312580146210493869956074543309825406828495979499922938265109559592066165946360316125872402354789647539926336420128473965359614495554772412303771934674159106001786701175959450763380906936221696608024694944797145289866173107127607983137894440087935884191060485513535981213014406531080239321240074185412776205536200345518202982623941168691954307592706211995005925100603641210034328811403336879114187919645246171170887382448791956188264298992952331683642566167469410834082339003771943292299854895356244551002928520807271335938269908480200347158562883399010354684319990190314218305161001488187486001795116244432837257480691971834308581188783874579851812913787581470789173849281972254961239707475317379415341689878056796417289623425690433301850732347896369635917687800961072079124788817028745879377863102326073427235046654292019567385625118949248469940660798202050286554799999232308514592866335036657711256590024868072797261307775606375554761116192559178659345975827143617139373676036772899496734913032555145981525490471008095663609622475416573442388435604335850575466883088211778458822082827115262372136201845554181370771238864237960478421013183305911661310399792660542080085486290597020437537780008671472294039015179373040707309977701404608129626163503928327411812207763893474969782075559481850032130814321119423453181674409994360519986905616645432515743760339026762877332103143193406962596250031609804171209338825439655750773559949126501289736561378417870976959265393293925309075457787806060828135504726010761393999621985193665401350964253555348405193015546892955567810074606723043108844019949788244012654082514913591482028277190518392356530030192756255492037004039002153131986580536695725022736455707849063689455895304200285441130078456553487440861501100742772492538871025912227108351520803576598224800744218073846398511030991082909023733537146557338981471582213934780741853636758043799772980423450856427823130016867728070299397249470469467097291890334031699664681284796261613378315974145699876427296264654753478257443902916940410309825718727465081243116096144584816215811547317706545497246507444394422453089730730707070026437162621031995035154453162957452522394262372921045021551584779966314933011872075026094328966828881336484777706118844104327037442588767503302925862503394520245139746759949953209056149861053922513897151485413080024762915423478579174159653526049256612513637427927066982252851961367763053111278127197293914267673708791798200452321680020223877369794945239526381232992420895101240978670832384486831336300671023922126534110038062085252415768583713295452544539814675036528611246687440835573654222736494036561517948558290791649697729169926866425742872275837196105277001506894959146600855047484020509452831990602114193307536825417813963267115855191703421564110455417800517427634979411534230327582527665209966505471068237126539494690340823123841393848075360455018493734995782406767882368027506049339877380641665995897040073795887338084850871661264771418530322078200912679748223461816390902475410419970311621283625052097218182050024528380287073098633968640209344374576279678080295976009217577925570979758252493731153128818661225182529086376041648636385540592760947830337884495664638572151783861590827000080362078243254045516823640589697206365410335729702676737673695915625025050033063802359864325507653165803406446256051356338775520373466633703106816596844491914147397905131292515746968599544309929693995614188009712585782890096674319580220964423619132200477577504075674523920370619402653643743659941831063196948308899628204612059999401399513883036999002418730650341905136481648455330096528393967975667762250439705393473583764498038481481204647174406287099456802908037427630892505542107961625738460818289772864919737837490831831541812133498778853295548109848781502580433322048471308463901541681123248378771829590854385346083424662548755130941642307965794079132437480518608389505347812209687538088826527139637858958720291232772176476048823724033078422311722032417466328157236181355771912415260843984573727658352173517297616832732323313852949590102675298179998586044362161576165150952954749212297257692795944995738712605583450746606824913219887893276341991207499067159693541000459956777030232664880585362130191200657710462389372130767923253856279566022053097766207653601103239587015730247834759762246508713510494099725209612046168411615605930523925186521219262013299133300315974401969529573061047458556782925397159880784433733105262878485704548318504929339407553455762305034701684067304681782396269852746041299916671520770589994981404966557731200986638955750993182955334429437161983663256468140548054396525206358552986292238385912383468882047457455326666093705831146300720330458149998329958526676831906828148767279898560559389720182902961222640561909831736480015415950828005684104791890104901881854884798745135962127056563570786551923870519540398600052465537235752367128124684390219362197802470947661694444079138075441885245400731560008242395738903498025657067548054846789768402361071870383904293629962303154311232292749789625349768615105171150797322226326712910444305415002920240168166893088672658659022009552774287541762897048899603321924926257302626881019955835983278448226884285854473176820263961033645109365691560894613585955432876462808388255184434761299977343943589682384555533795886107718942869505261285998458125649048954163691392002907282775496100286106564569497733700979551612714711078536902268100987256123319575011339065235464947541847405896283390952123789445078693381817166720716547513069446418475315148295546649763149521902705283095305935242339886052733554972938607176162104935079638723664963066383197107489002312106602517464676557242658746636798842089322400563818289909695435822786911306070936596103428353298106804097193684317209438759462605862044936481142097550288089031504314217751659026970890749981857289909067301453680377573040639199715671476013819022180123004663702032149099750551879568385431241147327445915763956121559782804518266614027501275565312372092412792075951208278597315400004750002972896363150503890714372324923640696894368633656788079757162127465655716213667410070169475046492610315510417041445730110458052300516347125263179567888514062757514271960928069325948058478637445391172905711509384322347511330706503319698211483684010077172060620645772273038387776239766493571204451440273677965104416632336889664565306663398158564144491655290029070569908458899189614257289178003142477177000613281119380441191006752796805089721324247245727650564325087172495418160967853204049386018784151093765297280489019778329581280408778487275893177871973424696723592193170282732519659353853172233533893424050741635636241891493264921613731860177755566211085487802155533939425033206952305396376457016841351139702718212461013004400659946817861829399271252059430555542933130976348913627983900372527422348943160315362709653397969942696183555916635415428846571386190270386164642108512862500375867099172481905885809564439838514657295909387153493402864150657480032362750843886053503258523525356821108001629852947610677109146742190355340055005945076288569982428428246238436635056344438663983886603901420392796537882996255933911115854895857481181614642600650836993903513057611952204498767294800824352089818506811505361681718044522180847632443647343745332549306573473856910686449015265312245830748629345165953776974092743687768872843078716879363838919305374067227232972727081231170548959567948615795754296642404623601793310405329498104644799169569090770381913277244360987173330360394579415480020223877403694571204247027763696052050243121885477800353422003805607004322352157498800820267787828657885025384318043268454091454899562576410258759535539164383625423402592371065485690056148452250532105173651612663276774596566944459082318814078619290261948571061641385472101041188301424971840221854821476356913226476154707878919064423683695972201807524377526910990956234093869467303161247128995161010583988292998325349539875822718092177075940524990425455690567839003829214516673784889782086997525956529463926601206936403176978186394311157461668494295470291817962799595481293954126584299994724710903262685608781662343026056354332547144208933073912973920748628299348080663638539240796881250881793007512794290071627050247702478137255320892536245234759004269097179205601404844646955801687771091060631526077854724024383502209013367103039894618643539445393090471652673083136570736275815693276691617084048829840042463542164698311008274241741845020579239302775665337603293289775539486586571236282971881729642492265716018479328601229181481115117368211552262273717570410413235660112598388754248654993781882587065236396279401140899610711628422282615260763320525740839128370015312752087095720308972957627877739547348945058035205878659884841663571317236525426229708899968904046101700818287268618060351949650411867152239517966297148948151535888910004318286348767360396949846323987049396424124109178099337048633813855021927823215815988168166942325502834053236474894981117242962743481583944367401214305749597172050092760639068515317628027245493570712243318222015436363552990627914770052180828429607325001096924125372099655045197402378851979310036919308843671034059948303272750560377470778634175227830223684405002325095334728419709494527492085733326354218270061378037014552611519870548888759806996118073800226842842015095323494922835887021728293817117652289895876372454029674626219707340976138756877222154096148124486503720267902494044466971710162550682808551008807519054584328666320598111510810009863921774392237399998232721690267757550501981136836231393733629230694497704910117719778262714182485446020898737223048758601483038806555262136893961516275340321894852986330469946903155320400135722318456544320028518374119969869661644640987319748013242085784144735144014020620510029298169805246959286747725827330596206599227649346645669603718765912773133541256271572570891069350977352423601113792873480663225326489936120451024821695669005807746753974704179045813557633451300487966194304373886243093544407262933744004165736166383909504967748840476641001666726737193626444901938418967803568022661087249293335225377744846955170759091893306546537384326543431736999795662688212390948182574285124964890341306993036785792037254886371823653004567077329572436487951398146643867722124027084502249945456357875045991043297963168633634555695775739251653874951650182938011268317962149008823895985818577575638295988524373465215259441464218215229994622155113630450776607008503483435809173195108233213470742180191371801919068716058207864299401120806308638951700598814845656718747520505721931376290291200276968601457381286000614346681715951576882058187579217289095325222769446154246216292285451038070885688287285450568985131063928799760289553240825500307619918199921770104354390844958494385148957057375095056499887623798760297412145044173120472388153804671945053500745027200013130317200452305975977299871443570238182192066697782866662350042746131450424745616538577924790142989647899493562798601213910899825778316671995708094180318179636227048122783242643942255273788354350251276223623097245681962113267457892542083879117915763824753671680631653636763469372946870428517130337407630275287185003345287815310152191460176826678478904771999372991071550505301887517649492537206872931622855296309769310833902269601927214527425440864841212711337464666397376856575944129080932523477072286039222539756896735748590347631931327978296400244812574124816398931082777324134517520257006490681409480825655041387786125060725434447478400239330138043748053399459635813957179379886619528454853081338586747288764300291679338986951430703804494113887186068136036895233416701427305921071388882243342054453316910530097956904285834092625200189081681586334035962764899903442418525436629093288290898884414463190737619743505446799443723246928054012648505931969103079520675033519490620157413807310639487628053424569594940164259266392725717784196144277621611949584091613936976619712510935002687989709278144336618043422253400399505913781709065090400775658699035083075408660933987585629864224437649696517714242997945179968053026526223741174037502895499780956754966589667545880407816385698738048688574038290644213106962189718116553898677883376561126135527088197976170416297602405721811981225513307710963329297150023943940989224776642812191971126799371386296058473094820788457001094176751701337832757187081765889155923127039793225211002176270678769185218486873894884329664440450036323065856506766051100475958444970739277856203720278189799127056143307347861910292498109312334235089691533111094924857683463411301723065080081112316039930590685046150834383609360277495435604632133115763254051934841913903974244928120949304511030024886183477959284671851491095321175123476501777212737494426446488323495923720016132226816409620214005981805079264704217140286685600055646629336776677159031738516262197000652499046009196921526195083310238389672293016057215700360773316783453592583770936409950512380085646250036020385391584357587583289932296284241424099947111918877317761857614353395616865439950477796632131638906961018825148767168016708397260747831585373647698377877088689274771518091968326540277010049154648770752082564432769115681364854039711930878565726630871275612595683257314605511192020691047447634345011241504264113869946632619718422915965156177890211190892153770557543537560089426930988645167222857752864920268562205965573908039322548519313072957772666613651963326240014650204054396112618321816869106333861769077291338427674322029300958453038053619628632187343036931418039219344851806740883748816111457988659554514699402355684579821282634848109499867101429910552128807344709872294481853377704807996386202173313741822627899843715654963244222007593767968353699772511634435699726581179008211242852224801141896938310994917434463077313705042452208255365181823841544704978375722788371651339501057268648105076617740441828542012847950063372243036658442123358339068635642256990109539311248816128608055843719104259476356357614914489817788413165991500976865012029483451177735394354088754489959237187881734225339809692142294069622104712695104870325983238817824999907747392034373654637014367140844638221214267501989981305538051494928746563666902288817825870833598302808856673024557257929760711408331161002212034834993937421721423118445976741944008879367185881656790468529355979444042366574114076398549887645496463387660646044000901113184232103027535409612254170240736215769031512371237615250182057041519109645726169239937663410493500504045549203356669027010893564237134561106272026118132129755792740974878559721973533099869458548905418118620063890435662845829799580558843663955792037428749196120306292725919282255197207134518161159320579491240201860579844540958680325623803642994073159119938663335228507168585066254961170858361950161846784140915832223136811590507073871805694211199865819509002853605239678070997297859665548766360646582913379558738543095900502496779419048985974223611123785588635427971656078798974507914007392615100093015400868873205915709744218931501337954447749352351625835003044827219461893841193785619880472149012004428284656266704984420523105458738864894163237231422485408159224463590212463706508991231646418687209748851228773403298865657151586299462262667135468480050819777234486028850537794879883936592543002032549771950179027156694523799909657281211699498866451172001304358682686501787245104323515567470424260506795012030745239315609038986359040755277115369213832966330816438463191773326950461508152197137395174456760194491666491056721522703958375594876956300210882243249977462481553457419117868925476253324922313459879858896733736439598588439436200919081253387376544608501880943109493629036324743501394754167551951774793189118720024091228216136023922207945226616335210432377628781659277190345537492873991204051858113779883080806699723684562358958961710947877238260297385357260138248119451172215093653701226664069953094365483671214678969857008355165246644036596029158146106216862453081867351009444407212478385694944133678831784244011371709982473043085881942915321566648698860093554026214896364100893074904637640361528697985960478046585476506244273724880531301377727733223390801050255764435034244737357615812561772785178668381997343444499581124016829457851139096858925388882282343269315865015541478045377884228313880739589636350223651965220356549709769360355337935490487452661097903826744610092410561053467308361170551120589477849195585465190318979916203906629675383494778310475910081349681488260881938060518190293861501491484042774353892543593577592990312377651985685806584502506448284104599223776550482627470281899624198388772815734809004442102010642103711836752635521708954423950556572344529373079981040854675843922262018958384038813393574623376911418965742742041789716399475018930284369390401796336599608815673773810534255646335471062012555994837667452598642187014763057891871877109579708351591432464030547963337651868436093618068559057768868686579919089175770495430823152620705621178623018281267623230422041501917806248329034840777800936931876646215485437885662753782998170310356844589975125245759310762721051509649836647938316081378724118798891642230898090125767644174391984606795771120170124530251992808923826883901408018096600504197171387831421584760325655477009642890828497938547418177694415074102596731051365347384255384501043501962715211644740703224707856146930537644601912658872615211837267395992676519592536493327636571833572013074957515297628456456519509007264495716105031340648867238334519084997810110123124099025186546980349042809319174505186598925917660606129755636345245898804421787247728071905541164252373606304487049882868523321570684922785066578138760963038290286008065663023228281332639303574541871233390416574278018275239366877751313627829817347047033282525334269317076592393871378712795624974610242452320376203023256729146061786987807583901051885478822045952811286225763345271472047224131968338461946345952093414966310262377437130577466671071930331717561691785097472357307707305735211022081505184792955712550153194017347090983687190682677730003232018864392479560808918325767591494789636315440158078514070899407261782319103596227074015436321266180943085935579315796555545748837394793891367140604711233344038548140338798173027170548725027847375126509517354812691628447465531511031524076784816635534636949790909858232262327802553028960126548445528045295450310346319855951536754532056601094262167077221463481972386173135106255687466357072397340594926118491232196351030124268576150725826103221901450285499068148409417241692773128765582646174954869836317823570470494232034583965227555891214070605221555880864925393008441422308107740509366186112025879845383995029798324493939747480124595842790508559771636438298432653260397429448501320867336779353749653219325089525988368473240538289631945356074764077524511479529403047933733939872033955212282509994780575526382641802766699008272074283772608829056613797400822900279880508875813646179022851652373414572465905225896495506037315250631507567158778812765947373636244667470067035012071971308429044099845299084259077636429758847236862367092708075618430551573811057821758081950934041246497590555052060856399839196968971726646959478941472300867556245704092986036668021434078395889986599460594624438079880545295682538437954395045538306436495326719480161205319277329356448492347147546292989071108853873517816742743744414234132626231731715024878752602297708880322993287553937954100400786806307075395517653069696062680502594201735228905354776545546574158132622819775791702696558255920697124221593933673116524290998307343343372423772989209864047425925795527928776031197512483734617001886600951378859417091902140666670824553637517782002173352098024097062031412069707466341033533762340741552933414293089507014292192339197521117238590187706273490832764984230008075862733982042865282140500438353371881793931759053280433695143178965814099185520462954509224077910005287292083024520983248526776807957559277141262345240906164835168078492538318116402767861733619456448892824145509610892616781184171139025704098345770037181424880487828525570071290580174903248699849770835014350674700963744814180204171368085870816769077420624444053903324998325993309087238862848944017992455546276105086039426218048817191481366412516541419349681582285350355115513830669167938081476990175444442979326165187547671033289930114584820755793406776662250285297605422617206521752018030336475044641525865618535947620403645691364204838279769051122406859919335203194283084929265855789703394216463993287244624141460140295977003706348269855749003779232454228113591092625373294326885861593313107016360993554960390920879463631277510760875221414871336714741831844963552576777477264845003159308507543758565155801136122695680020347777517840799352730019364026672482848636848538427166913235543668823835244678289469167377709648854174060086974431729573015474515605230698254436069363861264313862963727131194609507493801966605567053804452662326089871083497226074648905970230005134405902565708649973990064735287032463411183546901610335927842945715979604919241645100341629246682122047224782943495814815765903618778618668564082031030581274868893309958085497511939828357388385677142227644108938536833714598770880845156029978306831353932312306519912553272610892896551461822483666786362026062268982973059373082492692475097640381829729956016155137510053440855511673753475627144806081775760163836605340530606394031559201023346221752814373634026736010952791919071390652858400003629606596817239200122880554389328271033282128739882621425575057793493461143747307654020316020677752313264363599619739447840800464197080284743601187648119684141305691256401882789519707522185241925828273006221747164684038812449421674594268897704605831639016234585314698495341897998410116343344953484537053321794273970080476860858828290786951733742986517506778268539792364577585703036383045508858554068065447093322998194587426762778974379268692878220411298701478496244984949480426737602876516696810688110002759016037861038850980137560170921222373470067321256282361597511800336854306912662423737811037407457934552223186901776278570028164077790743295887488728879147413756598451039646083682559165465709153298150205409262352453358705087099230931368611797129759357016591400334491634247352015782392924395986926547738349041014466689498171221149055686828376617575213000856089488944062013480859667418189246696999642530885716149462222922464497271580777232184683150532467308863329122587962605264153787867340824410419422073658957005071922754778085889523341528828843377390253188431359942384587260946538151601683146723763660482011542623523517661636752021795846990306777192738329533856765119859443542735118388706806876327238783828519869140696988269482174525559328540808398860355918803977015741586477829979058479819736269805225629973391524219481212376065853815376747744074272686543478330303176805031034475699318159946108899113426816461349993258402934851984446656684461008760096836959399266058212889285097333778734971795076185677545368631819845247249322283643439364658791226823444308737707072354316232601720799269575132384286099024602219035597160294227298521384042586686340751320469962383809952633025211866594293972863760281086552283329214819358036615430845071578972489291095744267295759638596918201007100710077694048745116133874205499803821514499533643947065784635849340987429867207188286478559927177345312826088662082459187653390085269545205481819800955164516272242385859914798281713138393607972247017909170254283815705955528069709045831019802470200349486340117166344008406709650852273912521101623992457949228869544957465164272595187963267720373857133259895195068463190290617501977747555259684100545631670845295131673229877271979120693346443920053357598957653642887059171873017926347857764576401372303865753024037172783518587832079339182537483469430164807913419987258081279700657397299535994086342949775248969558483978522402859396308163298782577476590721405534780598189417850664884694737509054209107820870591708558036034489072746862140881202946063523196693764851486691032141468156991179321096864552211825301871327295667485226089280674409213431791807673992313839908406419127034928744749060878017207233017211082934782146020397109548009361043674706179953934587691570936406259595503312979957810005650852850420592804637236797712953306760491129770334816054751897353749322466213203274466218690834737824812353388452806803338421464622012566641228451550707915976762261797389108317827661606757756851406725151655127874038979399467559673001403392532225680888685350586666946362033868018193022208372921704355689957721801668742573276036464911369134967456667151335809135940366138421449827293294456416177953188805218540212419752867200512716792214847547550890862205577319068405804117335016627105715779442116234594955806534044931899265605547948604421749437895426493445030175069607267675718541021030791761523055905044417726532050773925968774944521234013261433025553163271625047027170863001068429245666066064174324417537156568391139868830255416012543182131247752705582634380014928562150692391621187875076510333266870604556755997517208545735995692849219148866995715890238762473129256240499595227658126076620719800911305646968455512970705692401351381979520668948786974729484766243093959997215676652669600509786911167722895788062822535133836979160552779235964818994050300137401243751339081201247547408224219738033600273066333120554242631618695302074680284890777476112333724147043605776143234792460221190165211231713969360006638805061732960172530955559930263414925115529727095519287063125078742805576138313893459922941747140696072324176536501571803360416298924234311561638312034954146177210672601223006396054564584637333229357903580623599862363089533809810027972409840223305906027097076892611341805237517420837982788883800124327974533114813634400682564310822099164108557505568311612545632889953547922005665465795460102733601407215841658262170447080791314382801427717174159544940392756925213388260445744247880822151949906057251697909027202418484476863700448932887425152035184005014504288986126752268957851028710610601496092961320104230859467193157574848614310524526454264592124108898100650481188526924463604067353553804025687496104464916010074616963720865749642214486716913412405607459820687212669511615448425828634597993577743840830428212124548508250186420751080082614812220672182129704019694815080457717725499178758010757651103417455002062861875742681179972463548973677540395082300099903735978800120519641177444662124736982342359672571044110343727889793223232836282113921583107698856571452550717794282889191668639700092985138270664419250877104955127167877206844182857755053935371926962294976409924861258388881347073958296170122942967821490170589878510074384284582464571491118367828081243067786548383917873229582529586527148332529569685044536775264733502423799816821124032800165346588626786014284794841647758633194807094068602169718538345272305628898160555891040246088544999771728680083379211899457354714671948379434957360367572405893509087860350207838565440549469448510329017343417342638468355561031191235739107997903719721738065677905040475908474588497711415535605032994343568826126682182849810192740888882184957121675490813206220463533284419426112294293173622137802566951570059157000669383140604742584665762013225194506127174224078794094897544014704581870912014445626267513349740631870422007928048073128909535994643242869973734457871719737741829700440208136117868819840207657928531469312392866215905098656895366323475685734596905366728993803860137374795323284879990180017758786668333234069025449831527508390065916864212116278145503156751219083497639202512792241633520119470400129443094678039794694304010466083137863645014715981985231096499832599414688457847908572261898095885748066573782091483614948205529741343026048748495988013341283152217665148096951715548754327996197020976943579964332344374837565395745443440774254916447309445035945779517823729504744356121929676054840848620058221781529369520460505910541301919060575783123557426189583196747410504537288285028642412736395409180239675552050025693633767440130357713615723369497646887009071336675097222703085310033970407811060409899668007060672041299112445762286414637223470703147109429088843700951432792545438837211450035504665857456279217623763546895005727386766000117099522467178428038595829208624313787964132769920552413762562505362687749477169486140219751200744584567205362996612950882576805196263781823895476130578664288993570046709433971554045424801701751245097213282813126489428214188713689672762711117466299147102344372023457230494607392159827193777910066838699510661650115718655143861657991397968942977780387444923806760507756244060317525895379842849923075475519438744935729886038084955571434322936986813856937985974794680420867061771030384092247292143686766082272117608706917142951479054687017291977151730973569147915373403393673101384836383776433301455799033631152611884418157389647713562651934348871644712353975308451688538073962995698785188159724145304529791187635256619171968780609118983032380332275167593641480518070080643876450506006953333842698498415325807469941901536495868275155100669794520584755768349693226037071660164552898880795785527276061831354500948255461932311872218974202974232465013083794124604972998689538019762266905944613036253921097245904017077445980810629742653825160456431147804526531247517775706485881278214890029934998943037947080093604845947180242879024279435306685660436527798533852472078132657788452459790118831122127152054340863295513294242294429002364518270509165523582281150371034818867887299535888543548001000662764625980918580022204634570457748292123380201271996309770674960322355809004807338838927637753364057639500499929166716957850246063903257254661315261167452709964602769101028249093062357838426663662706432016314208082535619585159215852261178325598487747731957914513982446615290606995717360068351344210420257559895244472046407276402830616413641927297727386790875503189681161773059587581236915826845084954311021984752318767564210921453666594023686558157331879391178094581368335101557554786246526151731147985331918701825352237011339307480347883840052107010652020426335796932952445187716944587999488729082750111099485528788026045093432915137482608350115747930662541792753245359160771831683924583843364847790817667952955873928607197137901939679004864077926170243824823127190912457285035371666985929109499513329119166489762341552348596663224100813035363563172616507719259132343520397608437490164950579436793252090982538176092816544371617639502509036484087420401176881825745325065303802636637139770862591800082322090711678966558689113816245013457711001010667976776517253636118981378435385680229436733038734318070277073545187005317328292811055023761511843134392792345104127248825643228544296216083098488892531875208416159680473125448858792223844837549278509374173431001561770909043582084346928777905198516175139351391669004342280867084565401311974896819890518806940748241539946282815995257066094868481289350293760076044420243333191301827650017117243216262159004308177320819733027589570694704737332364440689346362196999561586451352225067339501587007560136121159539383534737009255605539355728009487513738448231959984590603990045624327111853696744717528339616437404746435043794042005346002287718487166945362709680829343656934753919490059267243605875863018878960383587881475952240218383204881742006349376272825647590609277601028384857671834010783584327770958378944311163955969316702273495835165873931187157324679540973926054997941930740813101779199145601720204009888842344266668119717069393896934262996090981282007048090429381152374684514742946807514939768355070729634606531989138145367747671773230744732683945093514996026989501927962413489235998091831992453896843645410772423047680054663576154775824238538197990048663138940812800209060109736434835336774637636502743121167032155486901632959421423599812464650041621245822665965812578738557973813363415228020974719714067889868806834119601912696682183543901718578959017268752917500432545803365916098193238675127981801174982794497058896108885277070251378238515672104637622655082589466928952544231751820769023577607551399986638703972654551915091980987460264505612917685657146065955019538254686867059968308098946158817303205389424899749260365172431567740322384500715181278745730111780480565316132708396111192364283875548073714128691612155331652532476360662886502072859128785861461394899274446964680143229280998621551252693175613452737873402558447280540983413121983199906108849355369832450795804463429694016753642323719854656724516435851087075312945077409623945949697602929050908413578271659485317166522728979289600652377284425186286351816259752386800546041618029951262214743442155992864230944813354640514574571615470253063830851037451743188838810330691637638493721241459707019810143496574080586941927788386864402714564605908693545887205805141400884670776934066153569271906228242708313941526067257487848815331048531083106092042826695105626436534184452504132567426360447228665120609629821844630076783348125908245006021898836776226416304448334292921960127186031258819861604837858799618653445363924628564538106897467640055423804630046354659083780995349477703152569209144848003506937125460974528360478437368497798626763897869097736922956561280858344263093987463771086720696733718648231035577516434545296633189024286427776368910303447342250292935140364842363915245100254936516436322166727900414053947990383169170738439641597502664131681549986050109612109467582241666134500542738108717513969307474596552452237042982237392425421116005383130410743663431058989054654473722970145794122389317943377111327983489341710295291480953055779145923370564608338377986056778876652419543867569018208711866966850709570923942078992807452684112015799080430664426403241676040211297323329360919230213570642026837996034087368254723675819615807786668557355498411522682391668313256156964771323884646946963757862985576978476038061744144573757054363856625289390871079020507426491572084510957655866525972661928173034238942171412533782700794890095531506599488884105391366033966414386990151486259167967630805248022085792595078998282200141693062359698718974245715285799378160028284563211232944708357265049445482399322367326908867037917094298564893872706627372890278863950332396676620862855251805885868173304927503903251286304445680614426988608558283858814066411305297466109093273849364196731347272926000513055887692514550885159116150497084806056465787299787311732840156354301943129492495190369005527605672771152500798009336067156744894366864443245809225965546185167433680092285815050194145208414401950095299135472942600478857897884144156089904615457337709552939690248918463161639384613351738083192515018035754965524227695614272708803436675653903357229668821026367682784866869947264316064750389411585296981687677569657250648235843869820249602249535488060122370252150427762794594550261406035503010185096839653300696039482803239702265999554729825468646593637594799858992738298565420789991783926135981713509083345279607200252778320028165950700553508692279827576801059778943258248257269474922668333541440037042654619299395136587766350979583904579618851477297450819174084484162114622921422340942509962642702953122622491671674378282132131290556293156647491370788251724555390876958911976911390557102895533980482260465571839411511637196933685180868952782890889103278752629338765070612999141670291065466369754313447783466179320725574383335770374269578386082200017160328753504731846614857555087145927473726629212334213099930859295692137415005173423007255027121469508977739689225401936948640280161791819122695393781760244090736953846133366008196331756841757711246501636850222612158904290703370643169350233467181216263853946748704306889249988443378056458639227050936145799030308106459944849563741932531350743810729466728445752844379077424831836634057769199535253553797032418181807600900344918128288301819836024976962957637209931631943554961503387436952978953274590531318048793585932167919379895269716316541663811579197664656491583921793270605468669131866576647611740125354695227393665133544033901604962720991294845205968044325757324337316550107086147278718945976947068565884342626387554370101613922619437450440584806653622919056125328106422108789740745524177506786686735743797780605525868987177554307673471937180652681694855007480540249630644567259466192495360485404692616717463000832095501012235039665364639311394557992812088355049708798462257641650337722174735889317350630032503495529737250000261112044968586087805018971711799292552260308285224128922644948841605610016255290537142073396067665105314334177537662376006055922792632263909746243142908726943175845614247807237962754274614233172453325512685037507281024283800331462652276763117633990324744869900847295198830702334792581384845198913759098002583222952387571431775683939394219062642857603502027832528605440183973338204218053891499888335714413615751427711844178206725247394402680549677367878768729303347376363731028002481210674176370189982183006003938433760372142317252362548761786776167666743940791694800550153991454931653309696200426589645212796152250630122417914561884142662820980422115093648976809491202315389928345943378938959524307616411650477642216959589267968650871326441843784172986651526318306086727704695870234353075176755255266854942555664494711835314642390974990994416549853609424496480463948632741436864938138315747471917246687555859089963978110920989457804760385022939680516630612759717015402923362229762756432726265904013031006312110607889925011319335463112667938322075000157498421714941074237567759088365258182376739175157798945624780497091595329007409258099971002990024480333599558682222239582983816265847243356538142263893922942068008028470756557611129856334168019157873727393185690552254413728023544839157964267157441183376303396144238851642300890053841867397903548968761149518739133951179850967674966318622266599267095240997062865438424001270344934658236620517208536195102379751009065215365489646890801003033444629401102648725357204847803905073299884274867089382980871594050426310506853745930652951380238397433990165381479614784702523669152457300819165126553574556075775555436287632796093053516847348165059771177581674735297494754279348349248103823152574097193075844593427965666496147974705316221146244950964515099113005832842286433963759390685751805759712920523133573223435146625113171982662516286941672009948966691128590276260688305589381110237848188628143320687180043911366211701708908975336426080596072145946123210371326370018691152071039849960955047798767264487953403040352576001675650382795900786158613600618072387963012091449780569557664405179345128036282928646064208327605524084017906594727080917417939123673424060823624097020586544258877690330886364733339303385176039715720768016985146699026552715537644909478990661539999813960788831315306623325672922838607266811963201001510217298687726067191339654784641469965546823886699938108532963682845071376299186632666791686503517025590430574710991091429383451307748745352718319425934262480590787650780089810484139811453846266327433418793303703761726198366222035431470209505239228251095905317528952560681471983607432111207587731732696601071370639793930604554511066271811317326254356351239543067318951794648855577557075228888758550794653613358950756426127986404392512633305929714331919983640528386575317802753530571547870482084045293085519102679736494748902276481325250072260665167657217505952085512916758804241214752839244780860491984777853226676601030760955845149679911700561567776505431590359309332692164290690439656770912067681801091512688862212197506611526183297463902091904431152165783917519622257923962180592292133528296419025379355544635300271116142267858442737352634264813477122364104530405842594953519817429171799214070553384888129704720889120005539223891527176779751248535919630769110291022048817440926564050069930373590640490777181724853132059707399638193295265352605393727527789089856308804967612679945956572955637663270670765030242400645929607536066848442765122562854364975915862289016664704774475859258811272140981730600255287346532109114727924406456238133912738722356682853136318656622675023465238044669446894412683912538416828538172721678753901190858797925430568661743568106871206054910430363434653256905138651293092784891030230475893184586985902839646893413409422322631659871837160197990819815403982779041835794266697503872501177501054415794650133324644616752052344516563831053435840076295615482944793992197271295112224282243710374486582913132648552332729147227560892817122487966458755511095862628685230638921971639426081118207668626860985782566921314064074450058012009621893486821774210340142433710576859886910262550594844379882190216601317240984266991373264031947803896713449169732842445994369852956658141343699670536732036192535149243226458249796001856670636957398194244642343085759500637486854133163558539668595164852429709947345564560654425672234089193353630998768545661857569351108059372014941859185019478469463793384786328602261831984722613322835258157308786457789187458870372629585116818537443359615575492079638432353903953575869624043622520502317985025236721512326004149101465971327165525224588531641100660363809397239109886358171315598324381372478890701258212972565551731478920045563683220745140310294227730074669339967153648095782904328334706385794994818426007822326945241822714000865606716257704214378514726770875337416766716745327837877916068450781750459802181283044242047126005686667258705041377383231955801033828301054400144871848194313913180984741398117659418409871123561590861774761939456011280520124823108369743933649505089381436823905563158177928643756974043400912802753423587499745409123101636481164436354121654757054442191873990739036340969740967253558812365006038014642770035143965164421303955105220102389421946206777843830918919186454640137717142167929701601142509087055869779682116678039661355346969015478582769410749498860207084416848984018810423938112347558478311302411910567691713879356443850546760836932523029810471199177732718094569170567903853397113305860462999574011558439216909665075606008447407737414760363884116286801251990471948589781342488884365371840925535609001072959981411998131134046932770236574770941266263762875241529855319760899030328822877385288639602774164808139622323310218292410941126118097602978856170032516511915644661503762010914488821676004270741314329284594946984254350887508901550985346729637494408997450569325376531526708032653536297134452519324596550108999774389322695318735389266837371618794877858422393447381522045032370868404633708661661373899981648527920914825510112864188062191002114607520272374639476201174773369349724675555254121660609153802072841833093376214470356942249302607479878354923690803648435429969796830738736334726877975611910461118275859125149801122951229183108409424412779629185865824928921998998547891388041521227195999189193842252798574286945502308763500269399535827211458683867945864237698848089182876394693203143717375802224068514529145203400184561946432880330737112727500007414338650373514796892888632389016134404173182865872390862373714597693448508025814746829000230938542394908965536661321296634725506388402499967233695325125996049475201629818767922333025301245270119251730243905523816995573046250957849772767013256086675219905783511360798843069981003372764771108319100924516065221168030157553898340756133270141647324964283202121335088447812113129230400857602594771821207532467814945232628669997098968443449477359870881983021634741586610764171796290790205300828563894673683517208153149015814354007602007313779040747547036872785953367013279729192862585330911484311874761564711383587404658543923530304577474616272718211889938094255513576360422325822222786466806593598369284976925572673074062398500725174213226190476331445417969438378356813251121458985083495397074115537685059744579122493176093604409886291645893651479488305573031062548018297080614948382094793456720532755984863128714294386120704943030672970173933916569150770529500096172544668709109238259609691965423511758044761353580226138300784388626518402391833671991623062719979963003130152881163858508570826618482769531409479981642108036484446922554212818679250148779671090290593513019928736250713694867330762882934273743105987573682475499698005935748681215515146747410635396712590053892692064313277128665111239303575391155160199924182010154095601523201140633630259436638126073511217065301398078458614904618763893993250676642635725246103783092639350230340672162352708542786060060907369533808363263224107995686966958184047518368021261866256849618418816307632046142291109676254025855336833604697486896956032018853748075503714943542158368714512426680942176899243505847332455728082971540152384127227828689537381306583763702062715763236917875476731431766353279691451308742414722523178351529009887855670747632140992081234134956785692592231517972661372010609045988356653787913526203978162974368903400443166712246337637170680145803481295132974891119348666870747896439161626960112750977142205732685923287260778840567112272486285520945814371187463591509602672656796906861984454346967105723074535577549226690337045360903022075727713077983237090839888990616323216325916896698838245844473243420591793412895560349516818938173033660106619907871440621803481963154591988002378889857099496333373669198176443872021465253690980383329755528458266521783921223634093148484962686199111879081344750226272593473328286320460397707241184386530859317708246451848191818641043618304393498006154683954472607224494664758611697513963854827782826264633844888890928031653019394093995838980421063785000896231957395990586772452958168846499837076032118721866210856756916376556775540809817233511499376554605754438702587931008059313554527597183938250107778707885647414193995747330084361493695317441351183638093652529037643822796430863386919927205629042453240940683150512914756284549987972717063137594354985591324725152066078098585462205922655058321667050164636419770305995829746016784767178849934133146540821499618226658657270413510932564804983401385434967590630465163965392441282380143085446335981125024969199897959485361320278996103660795030347338166755065983795657404362134745595428535539293950888214221329765472243299490198184347491873058619999064253656929746521489325359369670200679595470486890374112542223635296260000547823464228333631506985902852827889971983787909843311081788607102447567988958256501059051249680508693253809520913766368030127433935699839425111057727025623313594173508116274908754684220995056883219626494025534629846938056723127068087245186262714684870116819730371760132361561685221218531229910581482615470078341788325302863707622371171031150395264082639764062074205274218396115848425800034186937731644637005126046264412163874623672662593878816752005623128978132858850581847886277944426605673542498259625944910937864280348721421373152261324862460172607503316256131096978007422763329858838129813287464308830385561017227079886363385813943979314539902172813351048079656567037049532685244947361532021588875126072006633660778279092462215880032863826972196366143930232424979384057559828842951671126432436728133910344690252506030086121581571437559836418659622862464790211234511581198317334848391107411485855801862874305286030275080617001509825416887734345728764309937355961012284273014919910968560978835598305404082055152549582584250315249754205781046424564305311546862787505197148768925765392132968397246793130943391095976468686014904763280775752634236530482120920098799778376632246440960054673345843832079642416720352357047061777379692956268031245863306482768275804909098933977614483725281599741528970263406910999652734208094815311400974153577825514628201013086479432225679864383476209575543291113595152391814435996101918874259676912353585393602148779013586250349196136731223259892333615123791506135949125046470736518173537178596866445065087680829200190884841654652134819286001387241866988283563221826269037502871477886099342779690779102647304223798492413475471627114920729574017512177777615230564221253511160902356864605356800806154158172179009608505546968146954744937190628296469829086182365721654549292386811272218798337246605271147335002947275393875701902000781154890001745433640175480302901802058491577526207943482986482600367257716898885804585142865623301806446730989157037220087753138953189475333951805714873660493401994654195855214980010708355692297649215906149108379897970083904290881126657772459179893683997218669637082338365284467159620838072022318363666177216278038007605967592982673979510753904912987132525275087100470452102957046845594960744090298914568041903028475819524601944888341108023471715451271446442649307748164233714209829400669095575420882607120683786107714708778741414126869156422737479425905824607759836900954423273284170518928477779101500878377370391560704140989570241099033832588899699952220049748580425051695445538550935083793740028343892726397295427816396378002334023197762866999549268146791576250957951928660757861258116578057417879763149934190395252490514322381165695419930363935498762923774860777703631946783983591264105968549967113769899764740744935504971838734454249753488324081403565078312323155567704105991601234028030326301912627604327035595074521411113553828153343163965083690255334343393792103888363308218908844312949484039822559121561246956897460378596595956068103498577619972681771675941609548380472929370094709787546809511690255975236822607028297851250210662678737669763048745108139091577111093806207930081924206803079635951326217839413986201824709361876052520811863312815102930601013477434441858131555592888027623459474073641739289929555604332987321739523555235527313167697400142928951113827395669131974104154057013125275326747881091374478396566145301781948901594693446106242142747882197995087137214908789611461551264548383628744047307949853252058270281927289298600492300442481869557826264139057472176803192518406372552783157498013013106108548155440690381518212847694505316920223587593405925505662397278132331365140819016433622008033355706539571594351739388928759191355113099567120877928299237221061862098331912600009599305896793690550018480726677261687285986457726343736522422695974523841911928079221142253762100723422294290138767777839412626617213449810022693480518913017802485458477880460876328700950839674338893495137296556002440792354943347032687590901048799940721385036748987338369077833019687923246185136639574162561753180344821356262510195173979231745394032289459197263130980401168222647525901426415100486360653903040719216338066751791403325675946091458825959533523328262703186150097119468570017095641862766630749811959701141315512427609314048788715133999794817198134919173576251411533359688953730456281028432905612235327416358536657593805460477300578761146084896887798166782122892674836304679892453845085038681175828264312808653192097568637367604549932873664774255166345529090062389480903539511014423154028506735825576648664135070870545892975863322617129247816936825718626620620793588202344243224180907631034764763914933780952800912658223340418985389492059099386970263025323133254125274050288023196140967888670576679552954270379947468033276672727120417470013095137842858705922553125320550305561522622735296986738832414783928981899711035528767001025574154993968764324381816412033272889442696561314193975786779143703678963588607534945087899183610842914909184240079358304126926809578961945707778279729587997809724284380764955865416653320129066928274393730727754494890840054969582275429874347759938326051820227071847473632275633313753258378877793724050369730655857346590193445771493985645163884629320746482493378110292206943206941800523450767028543581688183864595917476914530097541225612002279809078524315300300787473309446297136089593786349894218737239917726848365155293044204272395481577156714548870892452720457372382734731368468389925444192156862191519049246198472041573846513501534499153705453455041162207918933796060042178725438095901753355380204308496305838310230015905022871995254104021081712742752635248797293274731481908272410773476364330813965449271125527178477469197595637583094203119971091894766254789377958687950050162254478617173145914415596947859978013515985632563146027798254736058892450889270387338165509623667222979703735818189395507717671566175200871065342938836587660311198111995765928253458600173801576981621895328247390355183408550549185226517240209728557954714179360957062386217398413243237844281324478827170349982550025668741719977684596317507515058713245531406408922964846010108630293314698351022942262072334159948487776622843652588727510958159728187893778331786535831773149115122966038061669717846251383985144319952877901540478092367335516420664510874876164197397933995941730699331949595571862669684837876132797689602205023342319533211753826272955404679474995721967205417708256788598894641918959033240688551552595470302494914018672184403474731498702547447363953117505588766626222304872342880417876582277705518298975328229903914224769822757551674478541884992590424418712376469753723926628149817712484583850338381208187720719592179056633266732635735132383252677496992198052153524359301213749691422221862250575413645533347009501562688047867945782589656296936925441058831948151608710928146219505054428610503986672716421890056141768562399719565677527252054345491067934240980044300874156807637849729905410716790140096391303252644854996102706106518664500761079446780592235588524396234171093060676620700893848621805343699315570499980406449755295245618907163268353783002655370941551948979569815641673475761169082107377249544821941180672722904940828822894587484662850769784121018868940391240135974385359052476041556424476391916348153955317668564319949519832411521169312094320731545242167153252391077257128942750826823842950252772374494062896618096169989230233146110113239455232993820481620649907991930660276164624619220112500709010884475516971883609900352821688517248349982320217779049548897422190788928066280814802609648866628973069963988556037068516417006166388039632667034962978349797267272710913072200361115423182445581840865364430777202686086257052844215232656288317829323568256156250900202383103047312972315124744538970773419352120035562412786389574859621988786231311549170645070703704135899831866428615224599418389278737730962371248101319779394337052304932288173649448670747552108750616105588840326218584678606147626306568180973566661806376524150337866477391184043752774389367723850631528137388425359668240914979208956120720769122282566377376751258562185900923488831565406737368690681429729971545014565856742684020209071033996580827305179898866271617251151417833825365118433379741675292015604264632008303758500131016087148293108166871500621610717911644575935077800823862445501367306040830028920072065623832301338475415821939986759167094255114051444495997944781610224364040752268550949273790422466569101032953512840737609247429031635375166484994921215901008066039067247652780383109244590188474401932563535731939268835885398373952958392600578431635131015415709963150220597369218297059384052417043981376066675526997197259594398042244841878297146309050595750199532277967622113540810427651621135326625631009087737279338661161037474645809544872604693654145015917762066207385002325886735404711492183648966805127945472938225019782371468078684042952102760462060065647348341001619791930155163584318465399658369678395691654676137116579779325140215080890347132436664339422468792164770543021405590916398938115222448669732195650070792775289510852011091046294205579770046726274095129028762804247841721515562587075920384157351129513814910271269243863853478990981119387009246072478763068566976743980581972742074289383015594120222454759952399851549702044834744539352141856867387905132427985086304990491779278107653137230824831192282802377153940561163217611369794527579299756153261751495720833956068118972273717229123898197786055091118277751568735517179288456722763988250188217326238461903638242900813652097151442709317010331207649038599291501501124510709728194156909884812174365705031423213325149591719653981972219790602898675268817702456206782355885473112359743662081415087814051288437299868853270344676420784452780456411749489518801929746386094866173247292680980005839686960715917986305506508925328293169225173748637025826002504065905457669905199959105482348851051409275410327435531054288063733821811291604278103132629343256740419490425857643191562414902586340686227005008166440328187278673736765301382855570390796727903980957972055452954206175834939313710007158004906311798050364197319656596298561148369905238352530650290116734322284625832525177315487976388386720728383693338720179581090974088298502842267103899698245370004916700518691872365851064395709007210475278118504915807811603862561362691026536238449237442876151749696504733922286758608065713261071258856926095178586286708602877462547238765060912836313249734492097407580479347037572776397630164985847348836121732873460350779591895923645860333092667868448427000236543436868377630557646731694755067889347017809158986966112989596351750676197966993684938039670775768647755054455146198221755470227017350814537678348338796338578118597321165390874176273973355612898926354296333028716991227567011431752358316940485074025459715412045533117030989694196321137390390031035772994436554341879370041561052609712358429854007409588777797225440466249201420008144036507321359910716057493636981048922031340015655789283199569042187824544173346174593827780695634904227505338236321194631905098890722132953401459386972806730624981187141409937961003589241964908051803405629652855557345630316384749120539769872345214963439167215171375374061136804801493862345436947747341836677554360354179655804889044186349879840698370112181324042289854243919698166033476331283655910917756275863102477293806228934940375549333282340056988462519350313365723519952118614546391141337880165451059110864146222875959639074909971820020529502423378320906120974319359793447599807547037488274283472773404219652403758151345600267660248735057550483725912741759244249444485363180752130517633681053638010911085883546892238031847200130240585800831994608945942960378798718299058719941700136755997861212978763295479208576679542764132337966410323163746972500098842817588309110726362774479533131605260450167732433342969640508946911512166497081692147870914152794390434283319819308231049783519082551216475041101880337126043400962576568857171633606310519680837726203046550942669642857429591401754127828861627802356583932985243830295576784913527779623258152615513381373618315794005803318908797489426930162655895116973521704219976843016248033059724494862888569703808106473647366578582837588714940324727742205148213723938047847966701176777712131464177310160564285591119314719190458302348115672965504152244683646505083764646518128454910169498423085974265072617960071580509993370650516418011791174255160402807502392445355676423454165923351148344718584105243473006053804973495055917387607136021980300799478451929978268721954199558280455886017223347612523881584459645302494862545636575536396112695993670453276938663298677479705754415931960182055776652637479349797480904322625152432292143023592647275801576332754289950562114085637990889274498738296370968275208443636950323411554566190619473150919939362853689998039758375668437119213188913504885957619526259310251378194313064429938955229805404456308324319846426576644457913114338791505282058903757397205884055696480465516761266033958186139434644298415211011032785259128766099463829251789824347534306576269557591760043999545335414679394343838066982234524373355480825557357584773865223712770301271683133460003110011193023879091844821148258803723757203931982126421685788613600666347874004638248576757821909368980869696185744102969286191803466937524458947938800000571359928296872933140074764458281903901916297299500613772605296860951432839129677071843214678514090146657908056303290380297406147758732969651335172727627744715764805741558860469941608186153215864878372230849104154184560399715996334729779600093512763712464240327557966471950810812291958162134827841213058126368826694138824274514293908864866112179961065844366481638342021286019644444023312216720096395719547105071049305392988411615092193142607435854542379470557196830018287348672085606348978825254227493606590631187929922292778715725620998319887143766866598307693819531357710457280255793028647983874714689119673609666479604688213971772797378087851687790556587882373631041493547672272099517093071812656131758784170740725577504060624294804748736819772804763088716562470980311329806167363593231356331696182656283617668352184418833768357687682579315388834259209807932295642413501164543354450100367801660905493815400004649422076692898645700694707450021368575367363306744133152508741389074677677527689817463507908017837123968458024037445364958281931029527863746077123435701331457011531427374256581336408102869777466956363245811365941937404423789382708202538597452136461185177787532935783274248646587461549079801086791864974781806046514178334165994417616753782980006866970752453097440216209614159990049429697172231170138379652384997881510702869879658503362453430714540402141114289328543251496333566092609055697411832735755474346736647296412076594238939999907841643944792451225493466711490807621451918065868279099076377584085429360866381614133745140068788725388273867728744065981181171347254793584088134275627309973765859882268630743151921280523856942234616744634367438164282850952871857304168282133700324586397993631350292978064038763929289851083490908101540757995680732004306073148041617314717648827743672953262624775656778028824080437646926541427002172706510783439184437065674831288058157147872181687455207414860605582958121370353491153263306317206565637533795862078617710124495628618472187503309132473538322349554704133218039478296216466302778958388774690868182851798238279502571953597741416675631504864071957981756545924311518135154012020110796608134526879574310739250211271282158067694491443571364886862503959135396944393183200910028086622252931255460821584745052860811394856862480077696319285096362917911795462948273683775315891146867982982763558058706213513967270254777085604382758576219367216369799275982025965514531593876101836669903359661078544330496293416735522452379478220949419154390949737921595123937436217165026592917259311370892738155142162698790977871481623036919691030548919938144570932042753172371250142872353017834441943319474510267579246259453113639448010161083267548340992008202686966359588862855175327532642156693607928140867020357655767873336286373554550875882403692593033972725518351490872173073153244017253656362793507202006268771348385984217108831493279921196214908759735651228021374852886023585065576086355696600980113236388826242677534399969533836556516118326578360301823229866123561649644015259037796815695992762061354829778486144320818697002905319470920000524722779641435798312084413398708820109282263902504480808735125338040119131429992141763755227326258927804947195152302153860765717648308529992528547596303742976114090496431496286791940047189489694006208098517163665087456847187521130085362643090878999506085119703822865490925321764615651358945972872800350287471551596383777322279622155245971557067397542865764439294720385201332716532410114503995958786578979949969957992143068680375871945445872174302407909946676527203356472728543562365052108618947165217528997278426629342917772706732358956302046335762136279800282242459174192585156160357004388899779427711979466366918627269316477194334878438447277499148233974733426327620555887918690790925755947699575202745386520044550842774210050721633229515712984336445808858923263918041197002082858672739590338236365866330771858075930195923629713257193094605214410502137685711589636634156627388573596735474300676596690838032044098161071160478205332360993729460246973019887956956764332096632376865072568144731604563385321205538768915170840134578898080302038199875723455656723253879880107935908671648354220329164880502866331856051697070064724312481906020520169537110785579722167637869018430823686105364739092368714027648516740215695907107551241567014506438408649021080257354490384192929561705539569914458149948686317782164428295383143928835783667609075569451602648612277795903279483578360053684255606831743532863641960158525691813642792284016094402573134797184885913854057006223963010292594959565438699613875962689123737352417716184671972579522867990680966809006878166537798486326481165109545636759740758376113114461062964880076621132144409234737173563319483301463921033919099706522409559191939187064964232954599794779458577525500433699223791278142649679528427193346765836912118970188807122072761968412099601329345644740794219782150802867076822223930102676109455785740947666416094300124074389270503400110138856079091921797424210073938703079646261359219433975007575560876816469198814188850154273745798814596666600630620301870053218386286072286955280002351221480242305886235915376308618147864991402133877530218334031712063439981757269533053442385282304266870772317047235099787545721121652314791887836625238977601810999215765371680962577600100007037940617125633236653197118247297688068641049228304591568882709768452654084897221658970764572373877848406344277258687029423788119598407225423375375293480219590065381247658315886229874725890094783491238474993185126585914116201940123709261433629331456828097232813795850903858142085171693459617271699660719085815413465581179071924533340926200897105082097203386896995205482644087144527560984955922805118805398388233972501234210996865634796551164850004394613462933381776387861080568879950931105608619654009950564356461981379540296698260127195516227741976386150639494873939526159355918615617875298586321793100845282157247389520107543967730187208304700230465847107971659014036955474757449288228313186247836574491540274060870982243951070461495581930390561688340618051991260291173234038924529493706751033163752293406927825340954922804605968561459448272967606661703899939544321962017155863936507862442146125374666746323510599896802221675386174124435122604332942237797765968901420392374771624228639861771928011173693401940001723767318584457414167209860321126750808354416484632876418475400500825090629314984314002374738008371738673569669639759140197783857803798642448431476755271612616522541786819811570786566199686306379144861109756717678681098835418607949052750308708559789239840328220108708101133880660932846869098000824216521375147124612672976173056367941977664503475634071330153178279707632760353680170647260288266862639797838829945891063698101344941882229195333434858748863142866263090988054992145174585281748016463162546187668365910275851407596436346994079512277642123304373699182473621640819779776347468451181101756972138868159569528063334576978168849059471627261124438837335568117912387844704146647764563752003818833611769696475044327416340918025774020302504287614624676995121437579669439870352457321843822829561065721692114617323185279533154844747515172346393060660942704024324424056151143522957996550939107669021353864016675339232528435216423624873714943517137063052741119232401783331146535987167440107041364434781380128118190681782717210191478293290968430832574267810502489854591989206566794234961102071373915641425942364327480003477386605381298964395059391928008464697279073982880923909971814118146306336190185169962202095214745540309653235765740487762907310811570296111717098945276315826687386408085906979613242409901515234026421469927879446155399625673689165471587236027541873742544524900069102362883644942049547972134339252692713735514498988419692466837858870987041562265966855856831483898949609239321457718264309556552032314687450891797349535102615187027908162466345139951947630867358033910832014415489928400241394320520761851928650481305269948639397638896024534332582395853543916056772968400282230747252460564720906598560850365307090125441560556881069095654867972218697304669896884872250077301515757344753190842966687469654523044518001187612550332756205849767114091205061308308293252675825555129477247019815337883218859258901583174753240373578771979296203459086127533141191156275587463610167375591400327498176881770534118903081748226912283962727320867962219829286109067132381709082379400568722360709454464661048581680535458355362656284848046656653819874050514727013931713194213383259201612924952495717612072304318258187829959598676751717560760820400931359293434513909957867973830379731923485150355225966083306755668662998304618152617218692079624306813386192596752321966165913504480099959834445361672442596938753030941570679949934464741555200073097719054515098155770504493815550381747295587646909397939116191185816006022081914390315329200028879087239857222219907241570501205630676172648778676685693766647294803679229632768100365825639834124315980231073102007552696247090008124268953552045290552525667357139871967209447178040734187770450696861240254897222789911446256100745094386409638653272849813630596187888383750362232193056384158648776503646306778456388419632405060991838618062470868698205601616603188464890553633212623312601194864788263539381926664242502696350645759167656587269901485042732202297927421536644142162925368876173710933345851233377099374881115915730016330786824194254810118242029477096159482120719887997285525081575402053342806747015319149727054600395034822725069506624511088917404212876244691913805366490674778369578189007848012091247917425014239720468676781499533489126845276916870303452836158676175052422782157090873082334765727117378227590480493934654107274774423550118600034126930859119189123746657674365137700679655923286665821610793995232097028913919403826736327638584216169711656634028448049552692282103995561257279677422261467052970456812555806040307892544541077256245920075867780632993953034653461477466257180843542954159126452965640647831968302926582430506102685793590165552548814225250780148224774350428038853382377691358853005243595030647615985123582045504099116610722276099308777055963867624151979767234960805935629851227667791920997870041239025653122661615347469936966121919431373893017457169723163303562561522143721417101923853890631314371315008941763217371257416537242108650639285865493698315093359530257536932165141285448478626322337136785830302138241415194234273700978014747336532111937289121557355088321360341975426255857854175780304864346750726534945115989135033087889732075578183101268910761031346028520738604515551807031415107807015613788800682865044389985201157706452264972181811356692288445664302515929479014248929172333127651085106352025934164601366942045214888826769912246444963838757009210113905822581755706773001241911662294286439181504233097778595751846749564596224784408364030019184851873749591601190017505694411091687667669440998021304961630972766512036464874990362910797186930643451846421790502522573322601423924605162657564570175443912149158991455588035856056151535338461305564903726047053033550824852415874125168162829314219340892042745967838840497834117097719739881593205614073302113980740403035197471634147007472543077143721416020018694549321541358897628403532022266538986211390864499047235186227804096039557520755329631833739643102148015148226967644276528416207678033260630108983810429281398443947031089379016415972193322800409660805552376928103926784723739866297379733091542884051516359073876655251984958506082917880283360776865031394162968116185594011999949207328814033568416444144357865579436184491665919538663775014761475845847809166387918774093630720780106318194075980579209078165452810976196971310594317450995648821236473270769403669799287378809464227772904639044232368220016642087407944118186383798619144567698398700946508672505953349056449146258490767898520073729891861767618615160129662580477714980877329455680542911786541027761004450447875330917277560659352149024521948026000480977245967322181454808969847740659564813346024222689425459184124380900538636813998241657034501023401953442700871912699722195563112492506135577048681168688190202564023957491171861234381078450784694013622464595945894162387919914359462567849885794193565481850783683177835004056082066648795732636444957905388071056093221744059739964515940122225188670721693085274018008492419071031172149663159660189485593231092274668571272244133721757896578255205097725279417027446726922566669029954418309147853700926517924700988372261098189398036885383096781380416429569576726456170459010245317642417025694333648836216736869180025210767734595022413065717620843606144437310574079784978252455869470522149136475143649886989679208766232320717439453491397885830610497207472671196164533430934777307842441726435941236619559259467184871705114689778877416713047836609585988173726520722635593174780163944251417965402863423648060772058710505564151735022198112466105268706978646809157971216793786275127504213506459194948388268724123071998865047377996830064015264782996288547399204297964955816740962605915708491856352156242868315603331070521559527826396727427275075429273699491433137402215603124539129177053919475047101827584593124016081660136633371948776519152812035912195589349189744555216102494547287402041609399885693705655660913589534473302620374021252995370259064693559124627984277702556531650200445445582681879433504123517828398320954214304719578698116829780135982124031611256843747156794276607452788046317853811667534662051770494919890275303322355730611178328318411805248995250535938386024065926833121434125552186699818858393762273529230170703571172840606048459028109943837000356382253733867978062743855944324492762143453188846806061421009521627126770978478415449527424507913132202836388511062026379884760669390186778006850963806890280339687001561619608284131687098558566257241883971240818153094904581999948169275910768384558740780986825848049093781325729355577466675547202847939071160661661447698229138639233503314446024702509863579446151022435519672645009090107564641127287572422185188624903197031710607252714116756171668213109945945485684552520589066415404517509952486726815506212472277094108375899704937075232378049118682243667116709229429602817583466597200197490796561589190087711864154946480241129139559987305620012160983963385688843445657799097074482115006633314417257692544919409614751801488003174737204770086780956975485827208067551399677063650683345538826557662871972781755984432890455356304950920171676986228652852710746636836537224215254740551964213771968973160599692448290685073040854863209208943577489612206285213094956160252812242776406678818829127533494533404322513466132264452220415139001613784040426020102753856355583812709046669020294790668506847915632142347443365813696282390370302189450607558463081825165031002201037862469713597119952796581613761144091722413813755025144520394643378769964539214839202399956338595089317175418152591463832600898496014813524665554951112190506665816482924395660765893183394924958713551515135872244619908638687691103575859883227539278036272271671947536910714127027424303152248999878667413896869113747804074781665300181731423244618548391418727805740413345704719648111842598430323990337302699769026198970120210061075389158497719113896898767831804602872812440736361297856297329257934400086200749680960821158974189297651111132147646918201837715470524060075594961170765533089829944647568008079565611439918234763552754928249955120892323275453982120821155088448996983059741290496513004090442206289433571039151853406276371788188163001879225571275557651218336060589349903062812141038891376379666923733902819974060856468605633201672464484156895560185844581812610437965349935847675326132025743395802564455797513690250648337895239215084553028929293337665929110130206250743103081978347151115584592465257564820634212550730077947665181780681086980380233385313403790032100163741004662601604376519561162593418289643487544236990040444099297086745314879205784059410501647895445577660880641492608986055338952651219446727876662278807825849652130618921358517135972935319527327636992625026309280022979258031407401022508115603848940777718865054572612370318239729266309180913896843078478604092592471084361547024519353030940446260570625742335657862181625783446478223975986881878102239607926438102067588366503153457023087203405797211032299658580451276573321289321951933785313249121309591464025797375915858986954659921339666524893834547340645805311980690672413252274213055808481267861583551033427003577228936870232855170253198082064645944332018300429322393806343980245065198507486140036788371831795834145857800465297728568118698464406923935596245834743791153803499527359597300657103145026952776250496126349591520145144562682589901075106146355528858665774078097074761115828044747075652188040767069893939866243144293790364595670316008697262494513850279632961277334682411113171870100842283296902272211391094808951810810042017359110580520323730398179866618266699280315965362539905325509558282204703723842464028579283132487757789684021275848349362309437034846144510475479956146238319868951677963677836912460150440661816088675085895936428761030088227892421089332410041755099763781824967542080075422051135371172076521298534732550558281291895445697326238317626087913239379646150158908010617715012280165169755859697707803410729279491083943394125935969639309365618703741470210072848634850871018513568413946067903233378849781132471352523033703323265372251333341432534305518376319286863672442305180105225117628935958827862637589497898336039297993914002795080733266896882612663053129620364288474110881855097749087264289959302755361924236143321021030306793083811878354440875359932438823197160580544073976696580383457558646576614724228801403578746048710618014442156333436015942197212555875742939399152595380189059914278948234347940359295772194428704574994235757606686730218814328031268595534638162941885941489133910014361281674526487242924187168834383344767795803769387234737490517883606082889784802535782189840291155177162606240169777922362734106240653894883725603650301119954410962132047973328487247573268137238666560775259298383983103255971602254245727672442506628032401009356859483016048132005212975650796508221957084763927246482477190662817540476226591069879394331708698172912640053303103217969925921111884317738980975458421802271719513324460503274717468557165629740666173929879980675043218665265842218191839865731185376429033377341599020760662992749198646866675292246542200498073091516917661347480318540942969449710605663841931281590398419615405744991780045442349694701945363844441624397607394881205780358748907096598421830769499438750536018183969049881774961607707537451900255508687718035605153738521849934100744353404046553774852794477062063388991685012203690438942032907182920942277850009347688772189657388275016326452887324665053937774399448964618232243757874567624693758433932548165092507685442332342044623212664599102825281427229165189895244529084994590528937014898822719378806654431883679268134083040161390554418163931676881280778641376948125610691324720989023748156248552007925564313403830569362645463088524469992067800836237344271606696411723002232598075634375154373800821990316522028972714420083023575742351122380996641381192478226356175195731803667545915686476333155535454631193630898713720045312672242724678123554308102199248265785807288828254971738570249239311312851456578778232106640268309346396293282854229622939011485786051925828567334194871856234073678074998787452618553994116571991468635473683948149522242031699126585368678224570796582026247654901045968637387120786214601461349680806343717014514763633565693283419491662044160358497167210223803862412786399416853760565683384459902477544594278451435007683616951436708207594254305666783376272622502765657299943093238861801920132797805216838164388898002242512412077765328916609683845434553827705424108711879689787739402263284374502434403231785330369844100401543312004484833669589671859892601043180695961624728402520725141613540129003833079482895183115077020809992543816805907979228755173093560526340335068150816629997814700359568932544051107998566141846362128565648183656882110933120820645124103821786357395573375993816540054017761090099441073584155083311939966897496968341913445232047424102732707014629072055556506432928818972857270370620163423924024518941611347047702450028104115361597852902117495657693379213783723916117078895479566735604907418182315712092548671414400555111904817853008752216603124006200218451180773814691999380189142962380014055610389327639017047459481635703517649288456662072354020620353810624819821902120751734196053481489118540623387265427553425771633439958827601038875686088827937206371012734728377523402139844169470749936083762416907767777373101842487565469191287178284520782667899582412161030412253588511134778713390508023993010649607537691184804192513584320407115936461407492696930236125756014237320835221489434733070630800221383971585855195305318807137876634279342225805692678323367084261677214742481424937324030540129435589325265322158733291693089680313362188195106355897319196504805794126717850032874977009166022295092434951662056048288488214554382847432529167521925270935576138603517442697224493594207762098323587709817181329883853051891691589839418896946604918123550923781839830024519558965671703235220344446389026807814052202902868214901055837437894678370197987319465889520367164340345508853428145340449663821324662289706008757387919404903793931634242445627065157798374488532323478389966449964473208785257906087801190149226191184816419267555598878316218521758038374816241183007171745909113862484125690587641485736867577317252053571080244754847014002634588579419304039217372062468155726926253056202400228636566226809265937750417122724702416477576076725648965457038758007420895080991152855303590695209304729609021094872580795261986422815168296167367848741960498114084279994201738734226349911554290843014392736197108190802276630882180131236144071860535855885329892440546319742324405968490289292636006741378978872515263380773191586362390450496878444998996002821682238477910351199248337229359053529861534692890990312775590245480209632182219708785849695381571429111369680519002715320733460172868229070337614542984760415742364055278704969617920106306577214371217077346056794814553159066554050832277559442973464451945599353823359633949775520469045010223517945448545351749313487121596647723987246437937221862200802449890282224654482624525014271986803557179573833420072796020781865052424738158643365566934548508807428000197773377829658796901088312009042673714944961689365468190119191220454665358305734241366339441897975873224948662409769951258437501888649786969206672174586356845792022364234073326129535445508294045448173701008948875096583706407281322796462746290008890308455243494281065430578219738418004579904942852392436116646741317239403402007886747744325374508604450113005519720463422136050608409536003728501478616701986498866543735862616724794319456720738697778586345976060893247197380537148550608068948756255210571413663336891250195217547331340073332187503807296879890202750973600143324389551405673797811630808675559080879659518899422922851313934607643155068321881881759724834188148204241025509869952403738881406001284347530172202793795044214883162790122969980415857326958319945417074354295857174907358270617535510047582922791384679334965217497258250302150439636514289360378971938289219398276583044099244579070742218669632046220109958526326411635227009668676935005796904215204645196120068460732057515569599966729454934118017924317182048885557264099716223371722961002424558944809584549468626979880503195226322881970540707973249751984500916341476368694990957034490014953981286859856085694370236673120921590321558614414830721476118200222702326455786463802214427157207852228673706873656707300634770212809147403959471437435701386257086367723906523479429487981368181165417618422586433992818769710488907336014391193127270912209924413398270792167157163176471054763371637907678035192718879703820840485218823309926395525933234382545756797887445842651109951688758436924721973363615753228035798588000837197777342327088289867853431556776673513150742331221484339942249956735106866181036270360560962813430026945503634152402271684046691004546717001903951605718310458495549910595513143541616392472205783829241978418440567401721142027269784186492833458496893806751245433837136165683382007871993643775988471972763485999799456469789246366191510791666093770560242359693687105574131150514976075616901522069730784269598058815299495398608343212027773089425062734754691537441240925664146763021144177774031386080558626408762459759541621490954921128967385653095093856651882897680782010149873996145186687456836758191689349443267711075030258694609584500100716707976775969351901625238822368245276973852617760407011677824310939218341172154591081910567898656035120465528782190236185885024300035037312580944528995361577652356698888220535157985141484273695046140388607207901156022086146978003082084156419804559897755937344818581067449174318493178497392904357665673568884957911831317124530422347875415521304203276481682713009964690063943576379998069219267445441898864675066506442427663150474606269606475834472923257163548475267020725526240520746138117739410232110467366101880998409561267768823596418414346427482721301423287082815429031143373166909445162203528852231491304738976528803671517434741459139818677529912011267630310359593493884050390813070235757414424907878220532199080789350410118690665907498489219564104195447640164036955295791044943375173335367469658796694096566809404518278884812070006668688806588955067723832083245207584739901180621808567305251076014437861576438094246484085024141045968177066605386992772016237492200614672437752906819332131256871554561494436964166516631931957302127578360987321217354961003123113349989363301676316018294988538878396539795489440289470672491156774784246216263241548401415330146710402723016718205844043820415886456416866010414494296819963944678883293939978976686168808997468330262451474020341272696479029516721500842584682347431843108280397995529272352992724591466255724956277638185015190375093684751750528876574856278379596753180747145850365619108744330900645148661532770089585998530856891705180912171094716637148897008853329715019199198431882453324905504575453429039622244397208042939188099957398464924942790551145892237879096275886302209202642461540191449050233318609850633336426694830858496731008234279099856404030524562164846507231445314566536695529047993263761459420589278959128816884486259849972931029338454736430028805643259371392473261213988072838519358049243024569605993849553432703390584748008969456846254713913573804537912315301418250294457857468071209845066270497815677434361592215217331450952734228085458118725181113062541642311497027150225814357874924843371805867065087968482250379644761868681401233733399241540553652202248426521375103962364822271087374596215650774336715715474665427892165263722827367934723201416167435065129534133633688229388031622408835148215880198718384827845939514959467735396576212883148522685378045699104622206161885845947214232495749229989280468760706025494512602022324840271510707581032081127044060372880783082408944043259041986726674076882795286754933003242389107077498598245214295822243914764724444334412011118060556220198229080177131909915709057909149699596986921736371567496728777013622379990096633662819925744120728273920168158710903363793064245163001742252943843875504854911969294278459562159325873227331847191573264828625893678570330830589706730686823224969109751856852841742395807244550768978207091745347111786204277797294005132933526302394166757866940211030051978886382305269676795311455478133661240073933225203125809429118828929733582912707661975987403310553861142703187112250505734487670895760784277485187995756197628964728805226680993170892739961713803954833952063458772466726206527580264665040537511113940354345706448621032211284117140984701128335687833697637496369170567120396384352187747161079834211719915073411220981662412779376734838627760227271639254356412831765502903299462774409135658671418209380776740684727643132193333529988169465752295949900884702400936612549583386655155298133668842352139344636469231126604175956053379681409984380248329106086283106093293139524303211233351608625210638831204098647913115925682361592016435218672858465056236006679371783143502612708979628352794210514566459535313448133568873294516378313749575413285646405471362055309148113223462376110286053524770886327096587702141399584228963513293961921373060701051914237451616181293307077296094302264561561787288488426438608888314513073670957598344996403402324861970568578502301771630657872759778405613523377091490826245127094041273002064405649562635657107863914324764616533771627066643147540882546088870078014343691983541591142350617276863976407415808374061462507464954936193689340327425262393350756294195831672179610018658915681349985391253462242111899322028403372291670407192582727041018226492942893762814039439365090771424969758511051885310485023326567719212578852368020184343437530679378925015872050015409426895370360804664480931925392410249974495402789284885061627990955646478130669264931076197639289717109985540517555010050132997993734811448928002294082735354756386520082300622420518065646738740088473631142322650406627911051197122700458855773546400796907294404494485073457830630607657304645415803896353920109243063337842894743983986121652849083535375500886097305786893071080417269485206777670757118067262958039036764107641504989291618950174314071286695044999971634676770443913318121282440949096445557834324616174505738469230563678538523474924039096618908328710868750018437034687950961590921371797088263299230239013197037118107395338370431956299368605348106766279897153471108719473375710464764987630752655116692575768497702009937917110344057901412663555175828806753030388869501863012355946753665843735832793649292408387696581954893580221931714736684625373394774736662697637323215808721966341506713441999931345399788447996588442225305785121248629723940848383501830113261666248346144621441565239671817811081929041804001802012478075664049101983265744102099111214065993784730099324194626440063250353752023976950089357761885380954028018974194550114035590834477381109568484165166335154406245726274898202363126810083466799706193347107188260334673022951700067280854603646945622101191238586645363164743141636444146798599274439226005607814033345440318150182447338860972756895873128952518101318923775195226307806742804536248722460262597554537927340828723274654997465458556704126230774091930871500882203594017972132002239381426059603584739108208085192895342284797395263624794167908765139748375443893796304051599495187285939702290673364210566000311917981262628712507260228297934172484769125119307976528281836009052209937003873011107379397278105615290592930190905159041870438003722465902102130900636014415003303564639496583025062148900979497464329605375763441872193805163652252151341767179684173358006159778611041408471717457599815977458607176506062511371090985762530035432892389494731472568740168556458064549940624884151893576069330690459611924241468157554805570253152842681141808170582676245113296086843507875362938059994286023517061483185590503450304804574538366594172092843262631752409427305277366098687136176302601770547080701377600895691158730158486796516169829268695570441398244213648343951567314575806945616258876715477497208595193913785155000329308884825334530496029821861742072199003034974818612485432835741193297603451642524149097671914721928224896447488363940703456154569451973819645900773208738898208723750749999265546456125416141548977719316682880029048115906114879313568320197072767940869949712910442273877095621476741381019162732804324508316286641079654088356873287949006326307139868946667876621398675546414555242841282194315523870647348226552504606656409219239011932073923469879384430732594738826027868043688423677234980387598129040158540964450843507981240326774594160986401851914790963537135406109592343474414716299969912173687652089302199211051302264815222205277824851032330177035272495215481739891504042701476852377680424170597825248234518735504773729718746100269626252141312495037402793036586836168264778903340450975536367769247447843340559402860326369678804345702334127298455897524051834663693267697370934756917930270421017245883383961463784082807529053533650522956496860351896742287691402510036215215498726295708958914671207782889170448732158636149206615846599804918261000431681064297968830595834513452188613818652081986524479678039525739093899930015532808835096449283531532606945718158182371800393581994522979603073560142977437641537424169681702790389771012375007956426176697129145817681669086486704993150382601056014110809514385222292125116613117579994896415266495420265922777939805646083640646136233696707952544790129593345426881961697999006482232695587012104328743870010185991708382640972589214498913212176446159971153751069422707005079641798986014150091444907093541450835435878317064569391702849702521179606980432752056048634105429952412119948370627886715912907356609660344935972525483651036252832736505152306376529634609199838274721122292097897464606548772809438886485860992133780686532357455064097543502974703647731971151972118862952350567322410304311592550000523361890335079615900219430794963451829945638037593646349626950106948138381887159561242109864386170223001044327709057394682466769616764387301098685210968326541049115432278800250807938696579801234554419135032025677577293285323827455722059800167334136958424857685840277393359640784106789576494157234861278570968332693098004579419857520230205231351382743160391430133940640140291266841434185967745295135709651578021831905354758429975500451375309413674185210472583881957706840508851603955564532557260938782595270388616276192672638585395678816093788623330046625147615418450123192875384514620248404934189894294620722075325517538579196600254057564180635148489599158579507208570370282783689242817184531772515653260510014652146954375908445951831809351251048836413886507684591463884840892953518749108148436599849392402458015603472940698674128762861077098819461326006704834769291803795617266744065056944241240765404733445587956997078548507742132211350057129995376710144540073033833501958029406356751401468914735206560239773280586497850105545967522869746226930757563214990788077189842132295170271162820489634717305360577483297141816203746821187375223904495482920880606357276147962097707999062806764279614867726453044283978939333446070910064610406237726587046823714075093904825660275307454500014795943669495596875633692776815986640806692296267654782342460950032746340577670030769807698980889747329766522016511971095972105293543399612477825737122103102731726060632640037035904985516825126831529812745750060464980429812641513404745203418563635897975653737127014569611221977396389869960993148421354885490187329846402789343078693734959439641176147188614882982287583457184966775035450122888009733283717714756837836798379975370511165213633702057079293011631630890026128113845538023654673990560702507446044171093674714627226587666110016882672500013428993757642169664758012693860553984433707966251654201599723453813192058913688463724380316569411949686487555802207434957423578511988888309634603193674832794395276570281182946065083347704399733244586069699448489993945499020963169450509723867045916883306048087340703155599874423793093613361399135285164922408961574204509579661841898253071876096327172823338654321447805351950837393679855528322053935060211873188623493240037894806564198783537459706386644882213705725570759197722417978381362541191605851362893245506259763677164452042453835321995918437634570898731704373664494550892874210656834702103695805823036831108428339919196486139946368540363525241660875844900455034812659157146016141679701055124312815596058618351718646802409403424229693010979734408467724288184414449180280000694331226830630935123584701204968716578399729617472424327009081657768673723855914006692229306689064704790382981325282072503958280837570966829424189110972230381135735069071685382205212045705778000050964848083411767558645933092864076467560679794200875394998040410229953548244333737259447455588005295085469847343492621788380207785360403716310260477268163994881162100066331095203312270071420967981281449239259664409229876142402192247699073527824311061421387951888004590247746475941735088295286503649717526193387029061453628033704308758799191285141238277093371340164443163363995757228418673069846740004405984538252516129267680935182342167534349243395029927873377316435767847133771386849664133900907686739786947072072367598633621012809736085752448178829228700798408699786963290799099068182262859833883504870614316206419205623612278637921005972032493499506330894131878208771848402832011891036799272317647121005454422960985043961547644115492723095180021087879907434526359361027312690827765727317391924691310399336647795947513993776468428393099942034329999997212291932032347823330980103320101622689220364082510123330053358626867785438883373726155498524981645982494560628023919433209420023455817476902356184455415358003212049641243412336512233928589897948725833600691624143693410144768624638159258444010264519763218150218899719870898929530565662356218209304709394489144030501284128082305480164817114621499390445912744506553407341728088857603193200286987232704906986616639825316099879596576002046782191124104425699247767312330333579025852700132880365804336139148378939502324495361791234006744887357913056120659417514316364357377262009836740337244257233852858382204986746763433810610118751139468548554526676879628158459668110033576939345470750017100107094038881524623858424221596455615964598851820434330782702737219188309706440594517163295248109165067252951877351205144572154448668034359576077399894462433614930403212007108842777141978760155599147131162080544628654675691531728194548654059014091373974174211745519926003916273493907561425232516756647284209356636509934264091127657139483320224725916948361949642908659527816787338199521206093641878477198015155615450527696979085303479249259907833034193938380158775656488842982735519218817524993465988273968934231922027092604920760742516903865766371497183707702535036328636097899724812524846662798135345381796314907138063217831371081622592406247691135534557223347022240390426632687443917992843189630280579296582178236569500798551104633755360561150511530423046665613794431405553640353013624791470078045815470498373037713547582719213986090888997774905373056309753865192108849008733138584802564515427800182006210892445414290082811410138243184515989251824024787344088353503894134465678444661490077270565398677650418050542688557711433079042757369928316382029912025331227133806110720616628846121340503897566599604416030139430953791335841750575066280783451910292978638966593845990767095027988459198842497455203108419560763431143512762835841776876797985675270772448145901033635764760796704460931806921508883283744689836140605092081862948948972201928482417885528467459290131843711157671483900902504703738030105532977987360699664799172660843325087729686064747465255590528423180040149880729501754397838360602878893502913180137906099364253553078289809945395393325631532396507314836746234673922617768812256013898583791404390028464016438293912361532003811612227691290238142723055331502906761612362608867124624478060442035821703950420675110290881690574325454700174768982265468767314553047795086582914872177391787498022096038013398494663225089058641283053473108975957891741115494943785856790029640577646866359603530810310007564338922456195062722961495233549578701799196886126491186097330793970788401340396187771100361328972583266823095321288253255159376268449485712392076079006244930091974876446123184305551329915973542783374197813004850200068715059028486021284555401460917025425895772745879150693440224948193730430325138198427789432683656630319783168680530266053461737105164443299199880155103133676770300025397263984800129617838433898303860928758595285810222273604703597943309290933415154778311778973691732556096869383534039037130389426420355452393593042074625988309888691924010683843629787579717080158824197450115344894928998355633950561834453389476667106768799861817080824431317974323279877396640959440641260258449668950479837795401900899093176414051361962796004933416402530889312331501056386671392650128417730604330168986827950526751148198670623848050118836152741258327322927950744915386291642735120065999879217303593595290826108755976199865614809347698172631793989640036391398854177047541455364128509291882974043073919784777606701928480886883296684127488184486391276141428270624364741955910107727114266896908226811011725746450486037983022647982426552984477539930414247332847211693568120655106169124058771608172790389710973708643049499095160422843758977843989067992086658695466141180644037881795680770724173987939689531804734668006182937367557853771199621546849434652763243944948341869328919656174514189658354778527657230608693678367672564683613379676890015999734091757996260355753186202192079387280037863648525199674746127911513777123194691064525318575994433969151808945209355958651830296810188037224436940945850864083581168636869366346002300976005890648839597586614715280919581437362572853707974343637475705997802479319337056614250982488479623399535668676250908789556839770916015055930727484932762817294027990169530895812274560231187970144966748295693057536687724022420895242069702091220216688332178944026189131346697619096348175135908199092704634666098288650115478923396940485367041988053681443507262605818544243638527297112056815645418646191553274282354087546208706326720945872108949630208182112500783547267266384450590629129481203155893714840092955508463495796527069188394049841458237183710809095020546433728333912632247151539593513913663083659729428796899731592089323023671017998373949600894770599682610705083573059856345719237796495074179864648733971448007228107651981578787898579629344343354313339295220829464473532113381180358305667977995987654538622394583417970220053191038691756892505685007890292865560026569718290324593322131326751862419895167444003908033500079693481751902171465722823034828655712664028878645929031334183837120413886735343832015922756399472417577921950818284434820579064978616396910036968224945577109750497750481338514640550562527393446976670896092835945428539318333239672946517268100293296595128348245292256246734143245918485399981066645428684696007176269606853994425532845822780834106326655875647690513205666481751790687601592272271511226789754975973052856222498612168441713967995207939094025903188506109034526312609476687215582150545022796379218477749898818794845737985185719509026879438253876160136189532131182375184758458643268428580731059022010779283609989954242863791969824744955313280983052003023770566929283284519229167172049810321976429492531251926672487347791731664632412980616247515805657488145401837948567673059859898712308326440491293233348556955083697514428507524971136090775202682024174405971856730158691177259114908487035433327851376557629708702549233410917505398641135804562108079765587716766887770879655565554347622972622253859258633133536830308150959363615950916375977148899990698789872651601561604594545046282513329618235574664247559043730404439602045079926506777265920443309361391912514393472002488844821071561327244666419094784058817098066834164799854146753314300024497722057731554886579780508667843223092910491042569835215749795508803389255249007067171622247494858619708105167727102609270839910793013801971078447819521732193436391637808104654725294382964934044124808557423108690345791408547166351622154521550651574800106195301211226037144256249432876271926671846037150794425535050982979977848000398380923858145323304303161287696871999573712395828322125619300815202055868954611932199904723954470642560034738214766534321651193063406772015823871700680464829234322620057689465766895138712193240544142397648702095891626885874075719109367088459450017256617715238548245487520439853874433809441583829622804091165202548523464644565727171999291608185503309035382833101195692143441212549012367231772814146199032062365943545404798490713003936953362418887231596874363041625013079570459847751544216793435444834998378035301716033240394911232737046799396464181351578591388701595029265777938881823143712974037426343814260474486749781628978406481242521285332043868823920347857453575483450372880821602133542175834645789294492454772727855137554217327141645370615457709905514873243696667169494166287759817128424802147536501814346905862153188090781969366958038990245515027606032556329255497842882195741457813612217723752477860532861521062242176183508409881152105125088437716130596339878161749036240283496434413305876274477849962724982333873446301329011159979312798611109545423326668396792650011150821887689993998979429794754904716280952449734492488118964964310039621233978488243034959901630744778627812149556867410721228213987916119713518967321327687056907987922299342408015492966456701701344675337597723674881740735092369830995555481403899853026421290460311087684876850614634940458982232321454639388777515646360850159185664381047625737605317726066230866654850100822994756235754208481774205378401111478750322824664000693983412652193327149429336867802455342021211948713949301448134753877582545275288102510335109736552062431695281764298392439269446336774555945519014254483768050313824564554198509835934961549120025639766339395034843373207616960404898434822348018448071947904095778625472712241633914054731599896947354251488803626087998027375951452906993746355740844301779549714600436632495755674542078701532884211222367522920243361127914698218175882661095409672895170942154155195924029001284271006267756781835252724381251570643639251845201777488642369137286507382244319912612349137686542320058403042397374444948563403083043785200640987547188572629745236107680037463406091217515151053966092346408117410135374480242684896931011989166619742036651134647227200870084331448444850487870515945523150625341173462791949528240375340765115163241248176137614906964799453503970594756550318240644161263302913823555603641033560846502939123806884074141404422636242589057013403500875163978400623869502799504444603572873356647069211647063638686769740563236542831311850466473435790987120380592904849635259447629480406369178497564826423852335107221482447424287565356253472125284558534587454224504856238724356820065969118567966399412537071033389744421270595234690745371044186852302547563552300245707681146438873006212970960719048656631633080028314864854396180944455190360741874524977270842663443127525342740987308881695981456628677334305242450236046670678815300353818191340737489108088167680308020403906252327781277092680786871366383085088234997743987152040520365021387107914855750099651919501749183319588435813477798821822071844116293288385950804054150280558142682717868753361148166281560970925488395150050027903577555072239694007117098737731213286942434905000414015084130368091905327013903035433426350950608292252167976800173957679163538425760909545596257783810951729976597940375985873241524356463396184522285718928077942884010913225664971560419077687708853205805168433825715720511339528113389877178193216555187423193552138631387340557485908462077469428291572718560203817529596812925363362135330167604568297152832435458561117116484497749914520313035311951166907111019718999589869981519018624696976855603085489809356580662810825344205228626543497406218682887807403418189271867697374292734357306435568019563198363923511709503485716979041240503662136487928034687187964379219201171543342516266563269005544558115539880509272047871692919134332526028798485020187704019096617863076495728146094530396670071791790322453334102903444751745927995660262368823704908738403475566204474130951357656666633109822993707507147762040279779009591515465267158297582830232961466868327297716344910532122220877711436208153212869515805453269688404811057624291904293307474821100731481687221335623293180691436873533397055071727996131797745205718994872647902173737501894253875263081145229524983211091643214465459567031010537000545862817169528520805624377903090387173052577370816103589598539474867204960797705446793948395116116534351741651892560169731366090351362757500840811657986815605024816203802865020915740412422363376379027602599635967150334568499786164940252873000567578371518838619757548420870280744262764238624239000041471436395724424641261979771978640362586135888113654647676994764998280000368500261417335536547494530085189014876463452464047344985560357271589044255289172207521591489896076627913513710902869527675477869084352989835264021895609721868847809428079037305952607592137310635969882304555154217102569036483443597592341495680236130870635702840060135869296040766825627971520137792475529815296601301073505147146905223665666423392432506814910383390581401274433093068411838124335469598187481626191970971399215515661346549188934265345708866178657739097591434982126060967445629344961013354073223757505269695560525035721587350679844844293065894202278251140745577559757002814350667482532252476465267607374721311744210645646108592179091642695178034726199734644605142721001825829706266552227035674916455708005208624713497023994171790125958341961764070623497116383508822028016740988868668258253080894434894963053978266868574280894899002565900547269202610333169229445179334108949121129230091812496360224078998190117441506034781949347357560997750536412231438651510718431227970990505744974919118347835431548343933467277813345522610382805687740026147805287905133157991330895330100169618423198952434239536726515348326792825519502151824875662232714437758793760932809440864221829092501628730653539483310489722861925167010449403148188474256474068126171983655586475280390128976862172312352705780072151427141034424001334723764404019020443517883250441163060708369966679788129341151404500546874058037694891053285073758769942740577234847760175045366490370448565585018438557373778625441987290317523296163699328605404438843135194724630420115718462571964102772063375990690734292812541083409925591150720932774132601709773265010851843422579133423622258561057683835434055471828757917816851169617260735574332868318944002262628800092510105219245140162252913838925004865630947734543552432075857366418110410031760843668206423066072823941121507447393117552429620698119615491288977471327317355449748971826217727449721072358323989521673331790899900340926014058753775267913477202010572642494736973253568398184501154907663634961050958043733330745696462925558010010634255475031900230961274183332300363962293144701447859927297727536527398386870185669622629362056552393851277034086732197346982670444697787409341207989512748615919754208650695430335788731546462700330963091222174182150100437323110618745553224980310889683226959688151081289942324771509933309439551955468230853146374529590748201661999560261943592332828098653541340555934866285827672232392471742605811230393094713086035609019272689146673303029689565164432277142755524192151572746930334215321261898967202120158953068570931086881704374669648645090214324720791605434905028103952351394426052700836312782372312741436763824710868333029327153464781234689312942936411349329549998732131739997781908730134123129022115956410227525364208583957144723409835292041962253924974699273255573656405134378701399972746076905221459863210564978285608282961796327636811100354037028636384718095622071140574827793842809096584167548856362176134791695850931270710163591441035058556161582119818955935196582307619091091433768592835996798446825836922564548507610456377460962295017414866267764863051643209121035703314078463303017775443104250148524176577893042022144021937867022138890442265857303405340203628990024045780465920955630569447808296563533562882838644215969880757131055143101120795871643950368281762897005714220001832138192737286603117810380328932544688858534704013189540802815973949712998820999670343194043819837921183465637596914320516486608107173139687758959866361127471760441183049513728682934742539902509678352640167999890378053940707556618760950163843772766615164115387501711304704009354411434722760922688100255006935777620823498505999045780224431241698944757703302749647408724124556519205796805290028432403327178209561420060321314099857496366633035545210651832741028961669347208063089334436056228798234006794119228433664300992756291776560389729439435111855821224816654961218997871500411716157956938268165307617263855539214277222875474387473305899885006784035236226679238982232025997058421204203349666654392180080915763517883540267420822800540730056255042661806111782360906563641976169638330329829557160223470473508877015045692820014862874380354220468574462157356498896182076356671261322494223769957622595814769189913029867071957249596309855701233156313212280369224559539240098916918073429917537368587288151987341512266689833085232779824740998590228700583054961850263636192483984142564354066382833316562226644878590833292795647155962164122257829276355541660252429146685927130335567849480712289526396163145951686848022660285419188265584498642721636690914873878097303789525827390135481256082094453936854797683046883813539781380372654788689018349078115364492658658822660978366793887400856242813311605819987900387577671900296867521631634559813188113770898755838090956380754809006346814668257373988167183017733367366291004009989463488211448522191054585725983283408548605055427146064245610434933905011168588700348609689567480460381169362391358997309889706840088496499143557129665315669427178392876594676337645091419663383593905978893811272599589119366304094687380683068771696214794767807235770213483623443329286974596528453548924235474269530352541723098246748833571919815249516601061846703629474789668469518809702677013941892140113555546278383264686375997107595608835028649447836381867123041255322329058069549591417139841374893202902762981491803774263557890701079392573213219719745256547811882320159826643904501525359295449039097503288288647829510934462952835220010440633753490431953220031573913365816032883073996139967350317294457016705834409680720372888388559112503689301855149843327709540458903104907211440565270488178173411941656035353907052046610303854105038908779921083268922180787360113461712501915079657515898796884795878598513251370613050249670357321581426178793699962594026911956329425582081712554240603441770098688008339114836189751833729204386187672740111986788818146915094240190767581007496207263589318093921571106788230765375088005506883404744247430158899695242483259366356202691313876663012917378152685527088199043905005443611192152218479418897806629264234392599576795661554336905144607008540239122041199449148340290984482107365453314617757658351139494029743878103318299142778441672446453503161109587841315987183070819261382652610542523205191786331942859774685962045886128802310339081726631403858004406453664896772081679191205364333366894602018264010125453502301518314779071519534251217568701489632018219070019808028158742572237856176225268758660088642032701428265765425525534394070893660792058284205800282536646417863439399704318672502402898804680081846858189492983566041406977689324414099496320400724410474044375984400589689269440832479809188172743357366692287947174228964471458121039570439737709065351705978735414162606454314206248145264895276491747879551306078909108455148638676549338295818038878462318266123766610040235093035312666094041605498483789278092786812624648283704747217144392830998032990321024299865969612984409783136196130176149668175559396680391969035746724978273888351018436029061389443630489288104381804322473611744111828651082460522799875405554145569264323251332087093322477407476473302895847221120335048092335949962035605097468341686549791763056616290022915749756450209573995716318143342233423672312419306970856761940806674715192059326594192102491777320767834949173113231225848737254621584224017208783897552043677791182800209304087326835113963528461419136593890655163029541173552985387725201046018244480266707045107131810221538267540530282353987476553464307366920979523037151198861240269229739535509113052280159780195847060959268977851338182639638516936208881195598257704434963120770904167612660660357660815259877387745071014204342612283553695252926297368042098061879371034193440291124964581028219407526910881514618183907088886263744278263060488778615968508570197256827953031901687330626827252717316448950421884369526823339182631488456555521228480399078037302150780543635034439501477977549415759071938120505750697839857077271016649511948978256713843936080667606994979862327278411219863408183315256528569363207847601453154641580003209794634150043949305956380553956840393630306077382224929669879340794019150700178437547469022274362654676831708251484377180266666676964486278887643107714277793976125807718178814515634584381651600947916912696967604838008375307520513907161770502367447021929308788150054585268420706202928188433305909716548590911313322627419863187384417156939685001695021973280753534023563065587801162177217443661789248667774437536689121218422803978469933856815951620760418264641327643808729152815014023952864930183789651905658489445187156682112866305350665447048856247824792494851022829822416116239723476812549467068743336556033399429950634841063083143652655616425988304439002583047822577912419178937154907904292884555648561949157924067293968790065474881737918592228926136119843306919021005486345856222673101620975683969492048064100437462888066535554130190100344170368520551867690721388665726115111771531021030263382889642051003370525028355597621271698621410600902290119862081853974821947086128970998739348519591355027532648145408101926353754174286206903122050326291777771623803968290259957359481810342698577670465026502227620204852093309458388375464863265610322188907264437868785036898839872542330318399917319511502105098450127623058537080670123849745427638619638018083538326159564124093351293312213359941237522224119681192991786222599607466791709940613528042718818425397421114105278103556428930468811814248935744632148010615822825000943720929375165912911922520393615139628566761692037498648844882497733640424414960674639576623822537120043322255471945415886006335848792044751435903012199630528259021711310734612031727879529364196673529555514541380951036827482384023253033050350319638009621862374723563213519048289056137101865892551246613765157786842044601056952435875579166688660183273983817970520663409210116052206933225504632865260415149886112915133983121048537575982938519926787776277543280506524926353983493585647739158087211514638671211489062528435928933912003283194704462271491931939305107777551379365258751600393747680228760812917149817544911300138772492985326957318153158962233756951186999670055806269654849943128491222866406047724210191310526484448448004168429874836915271330891129216775916545799320755501654573779823357444378072571810345086360652612425564678151904821301634502257062458827620750738050117798628151030104146502750668790993206166043274445170142863023178384949584243381395691855648568939229775221242447865582913680607249130022062374600363010519696637301151438876703335520134497681991784707087996671890069512671088965400445477106579282933731992243023425301130042273639221970129078281896156986399519096049900157403332769793562661459718606063573083465482692744737384144383121324918388773898463814108519229570542481482531752230208045355177174893155051678732924561115812862883669528752572216082870956687792487179179984979276032905185347614176384699498106020178592268897669578670584251421715874911124094603688155801332177194870977658066519168648118688650408028571772911289406614422927289751733832461559818655361600921709496708463277087179310020240826287673169399232417979813765480186223208328144637675075293016237521634993623885952381291610695148831749896339261192083318548660633222941365016737987508861373639202835197311183164337260707532908436061839634962354081013154252218372058490479012452203156384397376378997906181586874598248540417946808233283802428002573431648392712535323611388996345230651396395590531038091955458550638241510568266507124167164088920797419499508750930929953011976778297261567259228040674112689819576939313469886248010255389631894507050347741115196478947608348775701241708790779751991979428275500864853546608845814823200796323177041148614509731577064892159837912422411820549117626409595572337505318652942469583932509908479783620411237795713618974174645735294431234772540256548731576449466375341456380658094122213609587087666396480811576805516516035432920929171086030015116761545735132443505391940270115415518835777235350382105383879211132893460952296131740057175154979500210297852566624089843740887685324265594829880215745568641794348212224449864121624844096536432267133147841470009562868565514146113425038083769914016899599587865662984674540076818919406529005380914423501560905972748534687667270559591453834737018328182469944481276866682136145907463530736654786749369640012452596623537754240764075809010693431338182970175189713430686792857535119013713323605004435405941164869762537384845880407176105430190910975006475751872736954297505496152431564618745035040741685413615885276527632608106083153267356510163449709368373452229470164879742281074453873538564196337893234294207031157897156454648305130789795944998297850222635975833570889733795626356901892308105330431462418546236172791467701082463964813719610355350358008276177382843639106441967835384036160656054516139401240406410110307145913373467878178334621828205515545426267117866301723114435602835531898819734123307403205725247594657309898951731893712799880774464615100722155237755223609850249007450833258515672839625620577752983500295655029986523611878961735431011621709975523195491822571608966689864738050625278815636726073293344717564714312940135284821256180603385104892791813683348197449404260707354675496631425934173389221063756417260811070934913165463675106915483785322137696546511848674060174468575714326147491905101616578608658592415341248446070674558797962111529547223439030490706278807661900229432011541450002687525954718945325609287150901696824609419781683764855941794643476245899668448182909255864948091928105294832525111704231306525273269859597101839969410793436477395801733790667116559368151668129231109811906803407041536291309342053915939365646378746777220026967289569075694125748466060093689065376037301019730991269827757713715349450372163828886970245693090285745952704496462482833545097442517488434273373328494699967932608099208526749609288501373100390651847076805962998356073798151369275246833392830411362446786117884999756885488959992787038311400210159239504433232822477823009263836234170036780073628987482476707080108324595471071587354506978486955691700098251644064766154212284429369917275984024466395034847977024956563759092998563632709548835377174676087809837457282123030567500574900174691839318773695890566343833618868919883862584376789792492055038428742714417132672049392440520469735322489717227822422121656550038708103017400506630654762391017989245084810903683443050826458797682544604851128279635819850213225510127859663183129748225355219063210276475450727137217031764913296133480581295407741344840036933346154527361467883099639574941665573262521493905287270123523801735297136659087060256983733723305681135934626550661082857148982210051478461508074318640480374739454922454056668215654503930497261497353062451129839906367106363202927070385884772412834062848968627517173016170798503174369904109980510959116678513673471162608349660357760058370926839841277229533593074980795053508181523360148439527631141768213430647369277939108249397415736836270425691874892774285295129134904302152161577805263040672181555528693685512964960254786605206292216864107234193271571548861353550175746158528044346756183787546678444975873879920271591350571602330449273940349432763343488870497355021463692978161938186798098797920459056516609793934092825860785074699528037729445840857959830691131166659698375693174097634080965713723218196168231964563501477399878540297926131637514361640145316280214812264203292639392437039750374526603830215767323087547096539684701039706192556268197550836205594911808355173646194131196590538390747425300716137067371066671415072421251654100934802148673145033450283761288956295655745596534370864090171964480552236275499300539585323322672893802226760237931529165913097237910538029980983857126218710790569713445387999749827794103387487948349324396608225260060766056029934309256217705255689364311456943035542077788214846000936908886089433357992900622189955817649244309231432835085058933686329016751869658734196208730339751968199221151267546851985850900804741263640008792246395410288215158977309458967027564601449386905550645229744303186171460619702520479993934095545049950404574679405746958968937008619424777336939023460116283913525630836444180339797534591695321943144441352306095371660096016161440342815826065356477767470185429161045385335933147028101465049784257910093922891345860432775927194197354806755155058705035188894593465842690428247260184594510477187260173864497476599297957477444554138187189503274990766139530058207590643994420862090344858192284958549137105886937348004172278164671532037185793144653695496465944248234149824760496186518306365681097976434195993625636160661329616977718287092327328196861262147746143817182072187634173191650886246971936956768477882497761517901112569594678639274668801944103268429050928736998396745059819361887356437836919472906523804908029746430728263606679254950613190333576249222143872610188900492576063933543231826648709651381889970660515567725928459150349116518547797425975331567319473487701738261216363707741707446611485158984969405937743969865373380387986292912205982649692829000684896799358405005045815593026797984694547448916664234106863774107814180837426508654431516561055660733089828988125555578342496075255353498906818716387093501706599187288749410319210106451645568159938908608590967517224034256853589385177113516076505512229184707301733792619352744241026658628407073074235606232699963045125730295359918981830964909112029989961428244625097698155577238169799426912057647987353827470999137430272341054660919856135065545214152045801167760735806247125019606767685310324114332926338944657015313843537671429663919880950017395043592688630655303522308556862908445395768849523505376577810437525189038100984580640489635837887631172442077307428846212706856025296423496260073956088731113262596478175086489108584045375286906242104897119549956888664367000527217025003076543877948997667706278559458692380165741051768373673560464707581571048226246578426888328998895965345488289592821048299557247208563289073962625590330303229815158084343909942764474172650797453340172455490529369323384727759659163637840911815703299578053642418429412427707488928103635403458644464614590974939376363737701531053983452729540125546377524298796995359837403442082336230514733599734568353500519095507612397294555110236278475060168492147196562689968584176112962887670915312511600226585489125817933548765317609226052098680421786375848753809576738606218947211047881174315386721572012742920455217756308329013976430022126536687258270701475780814990784794395685254006309074521987138052721228048800749310879786012518403907671771630785622006517853254266524483083863171445452446311407464249228940367321849332935365398894661335885879169085787112311816607559453273474446953479498844803253442815521820994937965398712431560285510116458574546339115636069896288072068433665021526337933356279888590184175057189451505964589670747439172905074243678186033380771893241585356184125053082267632427133761126413426800088096777982965149582109775164147174466985925933201685655039239030104552330373111251952598408921032201316518718938923379414040649367840169362675728118656266913633974649365843720095452165290568998700873167596574047715318717737085205650284104551250313239960558607555624513266416362163067071003461616459510770227198445258822927272893713420715544843864733780228356920031768451511367396300905115321452871374942984922981014872793195243942440660423090649773896413680699850539859647485606568436511691132609985655390751644134620374394519157955050944449808147291576957724990385223534569520860213865265821922556358566201725657890442535216823378054575071294803750768266443825392406311018976441153468609496428670181977261908856842010468324338740358098685640100186087677330400687906423752940011957207893686366937448985578408685077794143055815119094983962912043929346363699273060580709170177563905890129598564775564816229608394281681685234526816266221539692621260477813183090446921258839839892822723926038058933696755927608777541583594207250055705672055260122566088931373050855703245128212141924055334617573923195097800106569806713084306924901706548485382827495323753626274487574942009574112785074057729473499876364804646157173216382643768569149025969933284528444507890997182689365020158489999557718964232011032634322965713031264320111270336497460058184972286838039834544143991308620450752186681911379114092093224651328545516452568180938111657857985093092760859908511339478173180361570467895165827011449501156920519476867134188877466485055199585383786623828486299689883792727207448162099625769494808367036486053397265930298621824357487577040970968444214725473678887856419653095078912268370307075404080477323268827243343610668797116504857596507446370285611708585826426135207342561465122467098808730687154893918666698643653410326619019647006932200629401701264509600248930131811575641816410409160406896365172487265804669293387987913983275228319415799062318185244280669423542215049002610081348537359519054526624665641624299170277292705203608829294793596138992977612228350763946501689466800508926036442988777501342791652712925124578619864592615216436709361073919878815244071599548203017056513505105981749398005676157752454563597819620616716657574103287461251089411775393169620245845652451731694566090345698154138480537956618056982265135035680510867788733664321928214157821481273030951420568786192604083800137096510023650112538228706001309065426397934669705554738195713551919608278758056763715124982571334042703871184242854926337558660470487039692686883794152226941548132979446236428659160116183802316223866008524135643160048742442657564318553459923530455079697492798442151184050511724646751360785634450893045565425968308459794670222441780369078802314298927364621511305824167933227336436096094490513757218961466369275220122333990934826446240176084093046247648298887085326516180031025836886398648194646064870227070236840315798420144235514714732405165605880477467119172452455683679919185580827522116830168402557742821435240675419701213665756087917992702199848379857543722353987279933738125906845975134492359975496120711464886787016461950600461175733109872289760955652802571927736685343725808337570294903538454041343740310660029113249621180011801059663361577682771762743855479339524146773419088429756923518922446080931886411726563934522458332024199583472285581195151678157943741027933350661397008808210579779783081851717992524072133403458038338998228879830456977852934256584365704024940664007541619558680793183934039695487283386659620518823134477045335981244279602992968603653625625732609043641094292648580978584221835360815318838609646974766940125528732331997060508903114079294313750053968970339282435258468179773773241300027198284760853657002103499434466773211983814023185380676512494578066878208303724470775998730433881672846329980181907261650514585250229294041150241586015975397001296369698386600344394596136491484920973129795621215509871158266720577909750489192990337346573126118657579632665411260561420746749525679925876515205756842803998685486181293050904234192384218566180561027572196919015432513995840710667259127039146914743658085837435403954362317461066884163023561119255842029702290103794339338074579410870242863088473863994205779491812728369519181304119314325020395567847920653631874642331553581445931899856345017721926797393946889572118991320853281587132105710200148303123118707385512466168968465269345536654819913550734736522895117551873198964223332641726509432544599960491332319999944677192100861400168967796819150274612206375789169782960043834559489341223329054794570358247465987808827556285714870148563144636437199718915757576080760656176155552703237135537487293550075199633881148879905439569357160874876534906871341534016013947796846503315152187089337361404682493682312514671418181280591309733760057521444691274733381424373115693472879711197802644219279392058542867330313298817595005006247246988763972205753065982057553028252981291244975639118238842798194268525894595256819129617286431496130666803670106716957599762265685664412193121035856100451464409695680949286076861028398072871792715551366212350889081414484203526574845666208931824661195652080086469376855738970686200700204895286427716027353477451121639699371526708482320351829601257971887170893628546562714688915126218743826225684388563549943353547239725664032704901243778949727602731581505160082108118386384566303581703980387944218020119888988930140863295789243454509902762528700365396079477446786354644503264387155383601479431995095629386830550332244332487544351544169898984177929958771628456495454844472177472547900677437337707404948013957862360185211302850555308316096490348345380105081134368700961053993150972699891560316459415729739928288669147406174626865044432377372935339789117080768486875385997231165186511494095116140595791763676591482384911218081005062167443091115422865082410883495723091517638000687377886071464738987920959252599305307485401360279895422501584653299514024113258674040292948608945825727028993702441082246745650526245230960905156780644120686847673019948366801650768034763900332475452645617625890871882771634614143641658890067402676084120084272440409902480255861239392762237161059530754556191927442420778830266426147233837599791390464628252027414408307647366220668662511592134933726252680760674383221447750497252465142480936555922542345411387510366561341171796579806763331206938145494803235179915621565088821918255266993353693996917101764657587750401058452636116354957267220462974866311982037068201148732801976566250675754506381878794993361603759371769339027928043750839437084845904569997420394348179587285588437092351024429539613922494371255669116582163932686534717617347853334722444096831190585749278253052756098892587218537075969966724034498465932180652769308423018087386922874055322680430627557761829603395122522605262032509430548462551229503227570631966800294815153658745903366837226751137641305876750744921349839098982724994955906398730664236133828112087021924928212402472160284233909221538799864420737963595207706770235184726969762389886683518314261532752124978240799404347916732189034943327163754630332862487850939613616516706198767332615464061378110787082880979921750050203410994330979609320855718092719327991331041858581724349864171429136912372768463730371800935349622644703864463781053350998530456668647078830776342250804569748108148185597306341565317452958944616465786729558865391573522346794872443690613977290832991910514522771462620381539776420385979429893674516489126840814295465458372907783501591668475723003671756924097606505631852693488613200377432048621311173085009937604481296227609367799590221767472964592084291436608796670495105037868022427733741983735048494739090026334476935581704519171602306633900870939574697983705737198495003093878974232828167599412180886406351618146064558565927948411298401513514727609791267420338693627551401262131867727677314364709903134436198699082713679963707635247797310638523669603160343903724903541596063837052790546406059488438525420077960384979493633444514665128914894624993111068174917736498719833072895914048452328951566797915659820153499916189812623432934308198914506383391260287168935108768087295584275310370546779383831975682365883802936213941483577114103390085679000555368208224481329051348217084609476249434060750851741935255431582231915925103355948784275488447528198883739570050143509558354529398657979156449582955054497466467017588273597648338193526304234815074113610488300797487591503901944952978678589222207336041163912749614006955100635406268207667643691749284950933308637729360577879658769406744452199389080525050118240985502084598108207009725937993147378315485249109343136138368501279191093386748701507801843573032683543092300803383515459391169285742584278782974784132995977473570598835553845678204119001996722460965701261885050663550307901176086723338746719984578266243483990464971399891875479512921976228206808284989786322951273383880650587585443788043284524799886344769805212808200593919009592508081990709663750072602359354175200995734071187355310134041788222030120020836056355659574398598828023784204652635600803057693029063831742662224334787317353076970755348280733650392054795800636273288623077758775350600888995680865045868185491437265898693360117791666578905586456138795264549494740172638066909953386513875521162575866683701349044508793595430374683371797951833277908151058134843526751496243233433764386665887054667907522853398063569175056527899108467381070582317762123066552087386684119786797761543986173741270005618851230856635391769636314512179948204479229888983668221267491690554173696092592381640962448970110132153371253542599071747499146556825017109432476029866457626679356557422164574893028093332481135161478969078433869000596384735329707112805167876580624829677470530473805780403841145394835826233355602139768763838105057826613609381639602928220221884433607235070362363507122888184231078542787314892161779534959696311925873735460599033853059842537488555174968911568982363539507728683933905126631549885796585566478983027872885086426528890039448274973869637534326947359966407254805529174981791990877813292250005246011829957578690325906453693031504605219965589208583640199220702797512428485067145313845003098945249145037392687308517275804224562104614032242765094512457957302366042434891940627902653023221964359646813347314192821542527333449560955813922308680545323272002374543250939035313335709482265935508247303633156265620853806951344172883772443126917243643855752298248315961616036597124743829220304009828202852377436583285860254644338007005830197315221715517491889573208234695953445161756082868495762414392125372967456927746148643476320204706823501075294408852278244284247747239630863244888179184679538755055498674115670581380466606203042338436196399015290779914708743582437572213921691952824722671776666070251789326885754069346044839625484873259021810730957091757295607306091094608025637324385107709861508026372665811442887288033507620138466177151770844936764409443093708514407480374491443487928878188060265098258627424228171046619791710088211446120049656239216735741102915378311825933370053481095541185448859346580153810613662572522905158257415112419552613764019300065201653753382210148050494630405211634156003851796989562092845166411447961198003937183087662812289758067933126468068824085249493654741188415045349082431745293553741501603483467274298957928588896194028869313164642524201365585543008227237368348871710927610003559573662853561927782990377441672654782346593193875687852701323311404059713733226173676338350168415177783376607198811132897940290751338139572617802422785590444414040303146220613862452744811003531847195522674024319790937109703880329072610069336734494773821384945493311215914109530951693264059284282118440452713669552123779660773497047076065052135382976264604003635168075119006983153119452898197691225041758127442046565904472351618806948381487569457843348732561826968234691691374592792124980786028691744719889849844547428152935746247369706730001928600959340787702082998173069135802653502810116957427271039494450731039651870791575247607208842207937245145582559993157207745139691793358811231029347787186515134412084891003848508812676374393559797747691511108309172312010415292206476062200323405119366592468377838523917446834987499086171188834605377812078098032484622693544817914020152293433907299225936320376782716599628328080611127707658313718505009090636328191126692852290337891548889655346117147135841434260159068581115240755520606729513934605604726028890976975296407143834594999559968737075492348711631181270926929322789153793237542429988812400084855460576554834241273917435182773633462991902924814514952022861128681498546330878935858235510354875084514172966000498447585024032372472173606955926766234598038860479185223099634376430670466479044079773942546812825707474316475939179279335068018354237937642911923245425872770771461158677207693455762777034754685299436487292373706404875533928406482458089128211800267874346185669004531627280758865293851221049461678151158133699715097411950453686987600832841924188133972877375897195696143970514253720748167686682346942815294233253815579998563165595135768001710046318590661643237951062895573317866068763058682932891788500472592034145918557220069238699156538241818521975994621713442315165451754409069945039165441940640002267395471270898815355492236297377787815356303985356062945193406750622112871364127928328130565510168366439648303622206886800782665722623848654016636798819634343606482514365986407690091141705464758761000582369883372089252324466875869138969674824453148098761799361061454019045601886673514641336227519842145052870285318143054372406436623325863442548985843644961942800406732902989544732151364740526438311588014250938150384090653893955808419598078956045927915453319526197546321549521813736023241484714573937736313234049735767906095599707727320413836747500739368699321160011156612959421070858228461983433843124915732017152631909290931691425557493067914386330554653057594079761205140550647129926824668711531047698924306926179058431844943810867186376730340466330075754989611440253356890201773198557753994549712255725858672501640100978297516751738641787558721904026500683323714656331811518157864901542547787351602945937301415833731651762424595270690826399814740248508583061782008799684986982067107062861113152269821305789862424737482063097607563419274105316691248543390607010116919678862135623915541250131945900011590286311080208869739356739384044946825875239785471445119439370456309876924815303775057488928483966235531072754218893473070420593335233142545949180682637542013967932481405501059509844602546565867660285525618739856567031276990942840769599300368660553510102181782806295517856733317694082175177986338475850121769524345500585465858247513169243713656357143201609598803166853910359104930417326308337811716025778200865784844653396164660126953562171020503097298294900367377911066074426619878274291700846649214071467013516023916038923463850492329878934580637791622577700747679854864366799288046232383133037960624979573866135587778493778386901765864963463795012988767206540108647421525898107390040549996523706376811599709054637949044738078012557065931731124161698374595528304360674410383529501129220249376633629660968789415137361138013933430392683097808399656590335523376975037253888441876958193984295301457154195274689829934047660596887226213602096129869511193660381006240404993769807265610469140408244286751234400253619298347464506490424375131141311941741964636274293280603177133800184686397675341976322203553310581477061454901845236911501138484727103615600825373919991481607340602576719353993380119157883576658733104354724023138326357506327932597436768395915471768074777198363399456603958066894440791249096122803978703325289520132124209595460956010570092230625899596670287684071541909205110561731252597277870933839233019748955272205076378197753707733667111460416135825316989075066159524540247599486538720391095015214520587841312723401776673731836596635167568321298304614233139421092542882854452395074366130955549875200224208409595049532579059946311992754983891713804988692108679882800141012518438392385742317627918949644884678132620477656949295197399346218532578319726971376350681536869909300471785377225841298783367190342277814528940181640693393884912825550432930791192707955688902312729725610968734368979543813903355364297613710008173569109715170683083400047091206619336759725696164040778424033679569260370274337797621153119159954759318847739115563503233477279438141293868661147125830300445761368879476243240555817444354187350376663077258789973638072378043568328422959053151236794194273877412758041604217326829692318029167358151035946833975057126493546190324371983900417600590963135307247031145239823338417974196141245943315043210456139734104587810569717930253704331264898963589052426124169742420213872795642868400582903389547472244240865225759620522054309276663339320520673333861322408601826613923391334636452366461855725702015606369424959472899799305085057254604062302200049135213737214633032338347461572412622305471626294995456754848633533428443656905896839565308272663400319759878600305560931253962462102137545789215464808142900179021139410753552605680231866712614415015903751316745318217669366703571150477646736727765684493571999588668936810021247298484595736257832968372222963456070612668724349335949597166451496088422570685952945955471835194734138810486436657397955323134356996425336054591188988035817341156178477684392113752689292915356715505675604341320810687038668613534471700680505193560661848890921654092702464840700177982405423925316641799661715619826223605851373755671510044413677213512153868968949936462370613987499244172294549901590666760528215572776038506559121029442419544020584344939785959033137001441714579104957211312698803893546237116496829510574883670274290565013646022800449186328554614064706758743778991311357239295098017664246366101770655771019150697003906221813508166807523306849645517095934407324524631658491078276802948679509097096344303078137292804761911782355908465277235309397088920581369645830009744586588723864433046983137394657371815805484009898035908770423639700917658953264607902040096905619533620081005649921953226410530922608108137427817271327566518457497133819341525729174876087625403691662600122722458671140979453633847754896559136414403544916405828383061755445187469622949858162514227399031257380433685479841904718219665066519017326850372249175782427623806947008061971399845944315583312556587927209602716282652808760379006921416529228817337233356777261870692774116566296197977890846615210200783119157981379168487253812222832497195736465508893649857147039651530836523418903354358501412784143980714932989961416050447757770648259319378355901513237895420434430123680044183336243243135250683482659555754433274990940172718862705225418628215068062665777857509835529181405380387664371378425268367543687173357132183827703343207523966444928237376782697007737374497014900481527212008950385676396484726336134662207184419303510462979168590943542256515101369073553701004000907176391971819457790073112940183608261086725394557374744133689775187909354762125386310880602604799209376966855232213297502855255893908819903230157275153104599300414515763952270259110543584798129845421582019950540551308397987550222610565527136603313098108378789433227528228163255928380851053075128491453070118957005243358162704793895797086345397748310658782276002147450982054701755290241527825507772790033693470858844067334034586844945121688566669777543279059774563394262381252490595970450000914506738773053518589726616886110279382310729612220860542911946407887711602817900186600662502656757217182525501579073642481153282567068281935100928817145068220298266411237102511276909744158211492934146167711731265633668599600741605151453658000189962768655842067752148888689618518440933480526110301160056132436297974461848679607477440830152328799595798740383361709484177931047220562754081597718430571346411656482734743132841288602007251132086541602357523539729191666034103057896272259407850512479247717700512089537673402342980342418515796360689865389512626306282060683075603720171930440317256042139260604381559756702508961988472594563056639188385078841368717372212930205680601519013388125441694914158533612938515378770430823365532516616583079619158893896684554048981963040399073257189256173548631247612910772029763774145730002424960762429057005886875685981799976945444082230340960272825290594170143180561687362680995004303951919424088233155848067460444973454407521166143411235231455419497797525363213019598381887910566802019214545426622107626503455287343014180624684459349637650832237349917703534805197524894859833559790944967731962467588382212471691177188010814989646544853487635678830102272253583352572403072372515804454359946712480672021613935011975212862368425355077876578348241094095982388979460428087780367044807634436625750088134626502935006836186495992933447405884304040627265372245220594636461955786469469037294016973404687222639916142830254796109484235660821786288549258405541584984755391549748815064642734143855786424046028685094000557812493969104801704337028226491364036734187268885144455288851563275656188758257312280709757737932851682391762670194078534150769346090647598620786010260487877533079904222511886553057785282673399591036080922992388206784406077638791623027386224807837900897967712902735752549694846574722262798600883392460986573915768221276008246504102894204066364835556594196266248787911887693684369768697266832025821170115519944350467971558204363302007860560961114056245880160310647882747501596841435875037309244805494072983655330606209080193140448441622054996307593417322961328752638790178719694171424030629098631973497535126846401967539475207950553161557278294390125435367598002492970179019743697196085883719305600519105236333753125970978708214214598207686140667213868682728942132728821707589076012494291319559706127036785756369275942341665290248757546810909141066896144149386201255320329989034899423895401367078700719694371023292746795379886628743559053795042022640271480382075031051787564967499225171468574634695472311157995350962577482320058455036156988084233293373611434107874512151017300908594948708449534284404580017963258019833157068309323177156559498606245725757001870362729654423045033042437374299454349527604387907536945865594458425022207059690029042536375365803541994441939279315630876243076737358649731993819315914239197620684734562610585834406640633398252349370186993521007858442428808738529654859128214760892577169047813116074332922218293818788567070885126938210310108613267406329244060687478078282029302330009685448207635187694966766035776272172628586940628482860284259878872515382902280426512446945076471212384108087436278055648879429740214708937851756802161154906513545522394273129717295595274069080136319599089068348646201015650826346137460646905246659277814804367875928441964881385952380428432950591765697551466316442662424421867511379610059444436542008330256467906929512322741838130643132040768810556627749867516627471117688197790346388915463385757346220101058542089069874952823383812799351148311190528400860610790520414514297633173547420653010490323278705035777063575995687665277193790195279272670771167087696238141014654697845844485125502176797814239658815244766468288127302855509119707452133636103897374642925307884147421306728817075376755163947351108863165433513562242465191370898038204910680495590283798925440761053127710659219800874380772532859203940193599311898784978547119933762452381801213815964604754108791880613073920731773351468823763071705748496984949138487576579622623399808960273419785686300389721653975692209451690489538633184157415302740144662361162703220793193999544682811394708072198705185251772581085966475783812982498733506639675863461503951893238107419877249141767884135485153222025440992598143246152493321699865637611603167767652056528815990439565802485456593009994394290969603826207682234040009453809368057784297255984237262152919151653200980280713224627364646196785442276093433059111398786854644896083845745796635018170500042044350256764785484925114077992304696002440214837110576137060937408177319348792680860951809854975255749026589471676429165559203313372059094283833485813069207618156649747714673567237751915911275113722732070197263487500181705877173323985532356297161729604237787585344899524486038917576768458936038177632293818535833081194994473438791709329909651894205737432859824516115455369239631137065390010810803126706342727217134902455231754426454083396881607387063707818841295316220106743947633140170425409087300307941013056461373694427147533997413659155451064048000473077628138099822836846590646583587368443572156162012192743131037459841227391258123884744483133415290087904426832936290149836614828383689549123297418606927718199134669504238951786985335266918508351145048452301936898456920115004580582753601250638281395503399026189350687479500426272016877669492833340381586263843776987425357019594131214683186832083320474340221060094462692182490155158723842410581976598428692683060304762275625002599697399932315073394492578275958630170256957074204308157307845388679289191111116122797414961933731421292217430845276083819763501432296013400670873364453619021871476998702402938438256755945227791174729043849485338599747797460435204000761357838433243474090640666686713667468346131772122181662923792776584427170143788886725208864405253769053077831813155576689171406218939251686271271901822287734007812411376563713939833186040566874163679201586703256449928925297951687456440668352882867604345109361494597512181349341773370780050076763321997660756355564731557416881985830807093201553836375285802775417577731201146588331782187271028142464553886381439076550009105600437024422996832651475326434632070090466365983426960222237127611879135075878729480194804004516684494687324060748510742068100025407887637161222332088319066995522289017934955451964868308908022237814185371777803573751517372630378813881843843055246714737475444233510208185905998358971794857348858591466055189860480494580185984755230883375050041143779589909543287811343234946091710636620868862581236223080192399074632297262472565162107339968886142025580129992513627079301474125255580072312178945091618773536486452820902111105588661329040859183271081952115229022459339292129166622265095317214371061440143299178723216213728554686115217350172101446673604113848718715901410428879735469345717821405720412747267131906466171991399461022212137631632827737049426459097189784893362860776432572580247620908632522310402917609151119090593170749783939898180783610371598208376176009575471812612625320360818624787738673376372041796122198799782993990168498827944931373087522872274913240908286118341774598979781617429066830998776741438558046127040211116195761754761952855158899081803859572929316063630113907463798021627666020695245453602259570036816997979341748219000617027350251589785736208786326338099278497879096795445819787604988465827919524519223259395650308553287001143985184015409010187078703514894601640415651468771361424038231183282225454674763660400534220650717073965291142027906415878401795292845531849480086310730403965753632092397799218737795178386573423918199857744595886390172541938753692037613937415380880813024223098596857300111005314189867625869283473255431873947340325346383976423769554108588282985804691685645826350895638268892867517996145022006888771747320623919465575614366132648586992735395454166044062499670365734494366874564810507920676773384760787983770925281193835174030795934750011140375519461908765559794354187493087336683680150566546869157371157765759604942552131550907482584591747235087105290816869595238527926653275903299872223465627400246164808890310676417704577543115820074759574677558271188160480948763221366335500676917524237754350965002369293852258443731236083569419100147330627196448177588687059423650402872061269789036233491943750256328583427037782980824155951077991992066203814195119813700684867585248009753248123686305235571580579706187008360588864909412751616452499831031736786223146988367554841809741075074886682420811604355318563378355743679251720978587676312644861586047131243693990623726972493198294951544822107669147567613492878018560489357434882069304256715739552167615547232490775902278321341937034620347070372687862844840083294375328336243252094507453865775862506789098174331906525824124436009676232413601780707132190357868691157491938927605774934419735507015505818864017049553120902991545550665766405292483782607394460609092081449092837734850393253690801903331340015196353342094856434683577528973264234490419693815238440371720064253167480726824612375149711627381677915327125368091921220003828131002060994899474369983171644724098839685364150194318378940234362766331141524534573126637468701305742625802967423582866664795855262453402828984780704964900994129526795030245162156072994432881019768116499175676157636959298424900037803183907659444974564368741779156287658681762276115742499672666356143435041836695625769745398089902181246208729886061704951418036741655914710553653628800068144138216663173674260644856640885436607907066742740018594434747228576540643319142653118913524968249623361321521499650899297043378425198497332480335841020184681466387744332566681382653092986209981513875834768359741990347278707525299004778358875801918843344913998237971192672051383306895222736660305483142919875967093965080479064192592700167497835685401075971054577110521942158000386077452223183515050683098459311654939126040357623168882618832044079924635797755042193575321091182422845331989926743478521623987417795143430180760728542024968869762887958100503673647149356873826587590267128404384649472878163384443795851727650428440865359830144276821198291906270047471234192206142039022230334864753131927634660548252793595804626235679589280309885968391032984337944434998080504857021741716561257191057839461691297979632886287493573252534704517219666829976246266021536037136002513676874459600115362996484361482684831274774700571280305475098737273270057615573889402965752208924529123773692450618673517038570108569239804140341309172986510099969316642344128560310643634276775279936641060541843880252854786230512787465245896098363761115218526049586321091066492799612604793937419348114160729858052725011179296919617334336547214507669464519564655198688865293263010456113536514084278347458621160766589238328373216557202270931219139974795621966192574029656863151630556989840459013746628756624808529289938555073716019339634322051815093900105822708006805428048700791473851508683917650221212755256233242457523446879636957716409949338846833003529765646653651164743504080139280782942697702602385809400508623874034645872805638575314549065957667695088728876593327122741762719541490569822642585328868994925280103539302435619507781634719873160127235524142236316100709465934224546282651296114983857356676085231416306958566080467820015228567431247167152889838964102831195380952062894682368545608425026637118399096777650745518187674607506117949921426255299053389834585349536058610088025967513451881028936629604029932434610140997218170317454907768547034160298378298557875680849613755162719698992024051394326859022030194120927428623803186241442908571665030531627105400234096129892587274043023955995156870528966357922784738489622786762336832540309799458663984916183665174049513425783725913701332246532423894123949125530127189981683984892847992770409911322576646471488405633086082373113329874951690305224525282637181169348465962602634752106384216685220737516803136126540738969858229841468854018208982135610802961803214789347997595409084890993539189439289316413438728401727641339304984119025840461812930402897730398132010228702474942316861459639441664290414924559790051331623297878185555229465365498989993881310479961628674936891397506601238012585531217177546834016016573886224300381743142524654411677287974970253202787749706427725093695586174266367128148397960219174562100482578262824241199950134543984111777632746408551482944509426630150917753938823699729394012313302153211064220297916832253181341967970099019044038644476033429394353557188949954300185869264203234952783076943041192816760452027064107613971290800554488815227682897826115982328675048311098883671817253417279375768621454407913050533634867077391571098761732427739593307282181770590638334406459008953672038419366063496800492239136803461920404964214500517845941871867238393703186279519554165733546546865498950680729580691618536938105205887652696911397859992532355835992631721944262680322901228956438623832363532059312509801747300295324569088951724792067814137187661559466934113434172919822335835763824578266340796469426213809469141613204514969498210142498569352496189216690604981273157661398683455104668866322111458960824581731353857021320640166193823062281083634851037348557602953879673719889700578999024491764924548869672776793371833349088211032489106904286154642706883430781929713588163933420807175210716564710623906595800265645189414437484411474635472229093664748768092878159110983999389795335414771987100349527223886800975435119954615405896453359835977365229300454450433570473957757313298900687630658231550329933839612358403687926707630614430375378765675963592373837839974908888353907937728969883661291531450588957410023430998728417712828816485814049422323439017511931785553464273830540333750513248996367212775243307364459008949252020804880099597407739036562332510137550478222155644517889959283614285847299158747296355917293191836070321551409253998088330112051917105783887256122746671596876554461713874453224757997845776456256493729632837179392880639268743140763240343329805358689782123788921911980873916826566588594644861468438838458683095490911504217527468276810866051615941923455747260364068173220916372709474239833132031989493228621463154995405128119672319649409349100214812495360304017711638599488739391645089311279923306868509503359978941649539429291147709782126144895255188665534465848883262363340552238107284549546568481791969916967613437124799725953707558364834436810860333322207220872460241696266071232360785949777075366401197365390416599330496936822995370023705689609946765293398345925934836799000079711355150349652409003914551499118722801619121181070736156495090111379971985580195294358079504899052211092568798982212578383954734338877100202195056659374212222752953497610798472991578862848337321577392121275308199919978305591699691115215137372661460683170282862231779132781898523782801828260100960254759540445005974964981292847025717663277695656880137861947911083702806559634894038306577490637904656671319550660917711202080339141197112491895832369819595795270939223198511857081954110134559033934329925891826009183631343100335315861539820559363785966194967394407635475565270929461237231626255549576142526121225139341592370119711837063017297733379023592264096986366540478922694800419669339069478536034686358685373432817873199827248867400320508663145870044579034935431054441487795579700064983939954938124315454487014819964824209057384357290356877427466028574748525728553742903361266962460683120015104425348287527761476188782266859232352621604528892851586158456191784623169387905265446491798380209857583620858508828901109991246163975806546676789006281658075278255732788133831578342057633032332289939304589415802041872894266736276329227748388680066650373007714038124724035827887166661299694741947164153770988067713858915920815640209722333687210192589339469590279692345196984787649841836022717839723691022826774130260997952883185195577277679233674478038849233412590737519263131206262967484851745191877650097690503777062886891001928113483646776440186565890699532199125253712373396258416758639120764235114969429259571256546983892683282484669687137040336969824874389769302289830622340975766413484496031747266561213705813122198769072607734509010683925975735679934727385955289635861735847908554162246426155532381507027611942497454218550115220811248321055453411899306575431121692460444594042070187587864552453641695215913560327486988158678918810494347204851187813185123394990303764163791004756877843879084490140135460166824051342643033617887330308680103070304807612639559988884292635620342298687607995010619425564572418760495347647811307867434682241001021498082853167141487453786952032647446293958873624517331274947250755597960033637145693861997910300581353787942844997276208986215164460342500932253409378548549109301171078887510201345336004219029799193896709161725008046595277087679624130173293341343092737000438613721659586805303469807932782292345952270967344070535080502519721755802577259122131537266973946192645945069016475389939824213927707295862321373526616026348652555643914865452245117118742458728393704085544009845135683159847969246339235673432420083102220820637294681935248718791085080490347064698404751811571770196066141543445266103597581119165047522695380399728613629345166647518753229140970386801386871329182717567827385750370218842336105877703642803137934374451234200515269684962960300405788800415002100692586008114028122531638223370075629961603932790995966559303665464075805462928935235822060634000800349093230989377828596839462367306913532841293400718185362340632770094650666082163567388718473442192418029029657452914042015044226111689274998411462830557324259103667694909065890766271608070506692338372116220488390690339382384755613299947462530487751255658424992794683919093640644683046910040855499792308998129300516355092879958963268532046806507507265674937504165370907836220208462736166955050160911182822038792921999537695194707144040455070748619967007090884492667544218528092149624796543983402511740273032749189444729373169807345723881257090768347886039536274226686385330588007840097018168705077788112040595336920015031265574303755248344700317484200735462591993858406262477803038096588969033251313034384874362359477362244176143848945511621998820090329201617482865365234329449642869129587926264568063304016235055153866427381680346760866820909019981478130665729593212511961073288240046489959434713014725771962081447546493359717489892558360885810242823845565942536273867133696236356587397392748507725853377801222229398721171196628625559692697898911190565724981176689735001172320380128866781787323647227659930559487151287825081001218793309401131185679423519945129868796523929035596866541833349506291634084351140666266127312561844273094122662908564879372470573762697734828337071180189358397772526457002048989427384986463161949798129232456977815058438166871235877570456221616354024583545295432961643863093374807630712811940151819226888361083574009737993800460790249558308992641319279603191657132996204686758573043830175946099136961170741420180996336528682290721475168935419976181345437513617042376683879427192168855680094043449576642688218552801314658949695414789775449275337893270093749221855566930555691128713174494635076501488424537311487020816300622425094083222283108619115977132130902871016744519961818045219855476748994391937645145801153811643300328079089750720535099664020303013993150347537663962086267105836078492634014154524505277305361919999340650461490429586440008941301312708332984420033014266100877225537474878675382192961359801528600451649392906579715362204858697669953378288239774263357566630860721801261295662878477026441398308730217200319198511215684238542168080526782581060327000233928971845548124297155730186402969822442308154014490219217025958678036756527138317599710638277474221119529209768862846968172875353021829035689779054300803631840338243244673348203119231154081751502661127718370233990663959218613525084778306674016948725106808285019708916642435951853865191654150912982727628184053984666281692041907280527249642791043865601744757661005170901465780544788824580682580148204128962021159570672559811226520285791383692623045354715309686685889407325488149068144821723708265565149518884061585732883220499923654028441474659650129054795883781560880813024776836719627899818165583807956855788415308077249060076311439315433906056571831009878091290836354851977674817285546705641669670313201826283663606624386052779033989090086777173192002517906928808429603143860792270293507927646260096414016701963387677408936471112768561012251722805838489396747982980636076096223405238603209050392535368625283053349054809530648190037157921290251757804546619985514197815706334932486393986711873066520722326782875030166220704500653578315679392274209285572277336024158786976894952008780107719974588596124387390875086104837593184957754506731724306168794976931042007280819009130658801776012020793644362038476268908952409066102442442386917930852297036307857250041525649907236913657470427792952675197365445846399412480969642253620511209997334090477795780962090025695120545595929639707654139821846673754448284139774133245528433062245338933228620635164462285831802662513406073986460064958414333074862141273415583396761235536267743562157194367148650717805155557418218808745540049658821287063049287200118124451216764775217053002500339127798526791889368090217012194450198987259775381818405117621337750414198609251675026184451206640517595874260143156208463061872777217919313432482931375058454417239579010950768597554082080846754976574265896320240291536839482183121954577548428344200701279678216233337873367060706674108289116731348723165155956026616545191179366847679280207577025466309343745757440299865216573975579527877702727126392716541068668216934688962139119808536497337124513537723314024905928869815727040834603966883285071183065874396300040232386315133167730937995403357477739221087720097524821146737978929880646077083858910425385220543283632661326107807216292767046618188349023592288617705009032147297409880273232193660954694823817591569453263144746254519449623217053991048972769646060765807809928314084270513406852004432469580947393511536690469144725882018834231200939069542314863565475545630604758329350421156287481025160745997447309753643763316988629061939988380987479110703801603884377672389954418868070074559895417331635433401633063422601923668585357562956145053514333732895235267822939736735905112422056383260353703925958639300858040569643452969794476027877472411495722797919070333377719505182466101613280907521424186910315845877271876673143791395989691229155786122240639693190441761275926164535788264580763230138657697927509574531830924321466314142848029920048013549520550126404686665565632534866090039868817571321393841910615889069195894100198872647213357326076854014083317053879498916877076067737393821173560133727936116439298609841604007511708116636774776123232595855755050544785291698863537951195939905390692677223669601895517163947236341305689715654144152242114361545171594490530404713985834412522375830610042853103787217562809499581710126106336052420377804166709200086417256647586278617417417465617231831854917676201726616756049490427352067658793200628359700483907600516850534198512209588142139556054522579348230515059588296275772177377388274516491970505280540009009686095438028348346720066529909808327516278086620086380999603993128276956625988670549204037946932263595671262029367006853658572927159181071142604875612522568610257510267831186329535269056875341055149938104653963002386352599083196444739508510686867607138262810530686812855884685279448080634711338041795627169941709071854824823597290207750341785465035456469260614590976827738290941596418307551874419206236303650513326025164505340792450060433224324000874730489130613763749906977448225168800485541850376444326513867851665715325838675258227107153969767141073644060997271609466659960271752721123813552038598289434780600505171885886137309481712376544396884024135599449065080075060564569176719688135407733140987458408181385481674615187845510263271269456212381246806436396622211584456071525463958099507211836402558042877603379721318151192879808850741037837656813902795364086066627149352909664304406698699050402691603146879480864753117116384069101848346244650330560545455605636650478375062017806223924500287016928333200948184447879972556580992038419932944905795875387229254104234129195022551307459955054423281849907241373670528930691912462351492244287971133964150255157247887662936786172682011755564458984321491663491687764382654932618223163491955759805271796006187274880496183927991026445883465487949079045442425672168960903453424925243444990000736962786021528740534883805290331816868456877614319865510149887879852965501828920474382008515704289849475850768211149546007798154146422995438555007956971692890121953262155580277553044749991047057084013613916030273249698896612268136113395873668051557529629948897128312191737819199759007665981020041092647988357836032229087463222348846868241116701067630911875036977767604593127330783041051284772092820700102296945602598466424143108550387637825571439102722560546489184299523726839727299496999570479517591920728472686472624757116455549976243904296709883185840317835514625400827733759002380998964878898856488491670650162594645554846510681462095916478350881957729963693782846336481506411421858371675387441059369993652116035309990875912758280733364205139181900992208607343327286478955989172271289287241067254946833201208784355041557683837858871497337506081360242225514664838729968896895510036096223703335751378058142742944729497126385546780618256367935506908616691841329959692233896915151212045483834896297831267249964774147091928070492882899198919210431111775746280569919766594940150960431959818612415348752443111094069781497539136238881999840698251531096151438464318792109115456249806136029189927998715516737921585349307842271892476580342774801298259086472024352061073059873763646007293551471257913842466341191599239366369165847911224604359586323396147045267984861073323379151543662364466833431966999414797098896687202123059479946942719789718115924010042352071463995308343201995370297326400954440351879717105060145491312112493094535782379617962881187274074019626731224536847428794783371591393877752659945498976385174784334088211810313595007281692216641737764446114966088310220618508532296078951677906219989443591900273377668359949948527223530590158811865276974600932385199667546832540205406062975853222261161911492787775560622757682848462645230626152134789858180943990439608585633138603910367747201361464399139564002300252221996159214119339852076719410060428999082222061148606358077753782247786402208707000553178426859401566049360816633204142127960739706713031085505703122637725535450005901473029418893438368081503369730362173048642080957692410059680723264068693880807926203871855626596299660652947964446970506038361820553365253488133498648497495567325329064469964831055751397325069088730849416515371617286910711627200952602193108801995056280960903163466663092287444301055262673916744031131127346059215665290167058157979843477992753332381563903743028781878926328161419407019078387957380798489604285962225289054400148021225822424616825198916049643232500431985453006900865578258989164548535906083722113205330448720874670784151141712559801756644285285577584227022096377861398514429609288927325423890114205905787379254200819035959581777757773916226594571307981449150348765130661279034333734005488723849566806704206688980641299805932902106111408343253169747602946426633257123651725034199647931585482709782844708603128028737788023691142866472934464946591860769916007190427006220480318101116339243406184512417657024947541914623930502140034346804102687068304316934422643830300540973363214996120480574186170571165497631762147753307089046880657439578395430944576625053685302472297815008853038302665994179078997187257435713980909595819256390966235487209287381947345105414129913838531019332011266875536624419048184297040693078524835762978132299255015356757865839138584730982491848631110771841444925317950592528544229484574457393127111278716494583426327094632719505845593722306378051894013581794103380682929852085001036812245042396192626983328397115029182626825690943525280320003511241203557568818436233831951040037380265060038879471042525076981964453369185526316890717517039766412233483597387883309851240344671550201902131332249869895087517005206714447381441699328373815869565677712832997964013923445064430017637359118851852881809802538557291529485524450962977862442430778640741793955250353035276677999473363313951744654852356429184546472003188881109183055916341585350684166160139180108104722102760511665935587046744268449441739359582422545851838002142501068276907928910231559450574902981547409173228422357393307836542105698752984269802070278550855755039175752661655067511590339309490142802474344865225314018978351531637293523933527856604982268209544633117180657191030397750384635773326765480937724329568230188600774509100727508131530724315686421509469072540066230003944827621657534061248948138708858618610005662252142075410512754415724034529650373839327303423660136856590587227628244245184237171331138339272616953447718691383363485861340505741652501703014578007401965578840527151610313580588937366036905881432332575977505820582670728220291390147534992578734764947154662606609269414476433445190871517398254970142192558874972843687886849542266367506514501305022335079166485641661006449335278635986106812810268836621203324189379263998006835591330423167654714358307716642451894025841069890181006335177195862928144541784738197457977807290475170096425661132822773025162753562511752197451104712865029548734710545122199420230105850123324139781939517727453562983505184961743390134938658101956197951754458782136932207552993925457034386594684275847365989048814722040624695000551656530303178279228908828190681286075528378131437869873780238372732805193505030604137003803482755336743802145124755436653415230656647475947854720352256330700667807788756982126528741387445871119443825047725437016715876675054248286241539677192614753278311828659107803459650857403184106605027581941038394165246240011927052332491071442825138046577302810710330363222634287203065578466779546227403793733590677243477386842029693532760664602601064165816743822288890702644803482889907434653851276996170906856762811970555007712083845630595049530047163674772508143542480378344631465609200377108100678445060953882652388225612259284436160679029614065945444478399431273703069612989433457193002077397854922280277390371739666526701885318426633111533874172952610095466542016205317126590806926957955176903499315744243678054906451993895699678684762947887627561429601307245289328140732617023024283535264937937547643985363803937286954495477325160248899370896014799210230982280470645199884082459478816576633127234347612192410825994362597118053260567697219320148961324732431651035738826765564078823146500459314720394202524135601201025621018675633167077832166697616934634809329234633552908907140635992417615320142785266251601523893653514912387125939617487292237218741288908012644066930070528795287825947102526524681463997968185707670014239794920051992885095222463968328525949325037844602169724229208904801852201660711252028711296217333998917600492836822444924289274442619570264445138435485296727446546043371158672534496703557852740997900644307321617658189771586705334785345893521760172949288591068312419551573041835984171781243738527304602774554191343572648700395059862973483860829905412496941197142427622583148343169258793379041890350021993855790653210356023285650565162454111785011430696899825875433974370055059221902127079771893972730460856141648837427035877715841806571720070561228819908739366749702731289040532878364188064172491848562968901235717325738911776255957574554307712025445058881609062076638976518584799726480070629583511936163801492966470182517099706500037985973625851782651339547814073793646504649387649259623572504994175377864776173581155197525305743554732411551813230072786011762917512960027840520079629787209121064010339775761555825616284442597830071429458249683524184335383931756529223911207615567222050845212932525873419780980767214751305787103463353793361551189556575936905744910372167895661013087489256568198575278075618647517616791429895007138114844599127904707355851262825568004705286229546577645088236066009475072629158576559081181348596300646685810950437493336759900046594913968009023143580108169611777762555060639635778674386762609086462481864292662450707082198335530855232187647443485678285517711809597510066809544057357044603921563762945253008345153534316925194238246681594183257088810688391250153060700859871892581215251174589840618652011346585393033441962126583021256471222324488084844500276409185901024667659249382065337872595454325878136233226821412805648662917596490710365685052573416738110256677835931148905474090859551537159893070137915566029260946292336834463766342742319066887693384089649691802225408483214387207201887416979730928674257209261036855586654218550223405959370592729089394509864392695512815207174479503243685369387035965098163484078681170084359211057309766880698909530368962429598561597691902885466261379972951182375079947122314538237226783085363291545062059070128245852214165946100698379703351744829027419996199888402264203052896736301647866830747855155302496520426118579783678469198790388837108228342759006833029800581070063873121728685830864937871789448596902367412162796427022907060370991591026945445663472975663360134541710396050510778564398617261392861615998690856894982090173632601867961730083549049500646286697226771874687553058044884152917608829930735091231734499316021686404035495890884758965337575190873122473572571065831243253786979160732092198465189225424781149637155066735711895902506369751043718973410876892940135562039088900268994259939525988084468953767015800514116362573769706054386153113894159337328308189101741559283989111309266808132976680034456223549626790923528780839675974927497493861736353289340135072142298182841983168123630830011420187585519910048510442802777855345781261048812702124771554746277111771809583365138276379837138777417432308727596674919086857529829031283574281281371810398259472877900312849036140013694950401321412926337612593940148665338170824400705406875488557402806057802833317209004974989434482306437936381455265486584094807964180004621260147409217028383456288929024704162200983627143504622498759647250056455686870416182494932621545176086129960155870189249081303571639093120570910716270229422724353512275664000601661666356022903361332111155349780651513508645620604093760261669320009482240791228451477733806709741463556171438736513560324507083493511109944843938617948620907484599871404781345108073477915501421502513019794220334590014495893223702060259626818928178134540229105138287510484004988745873726236545855619513877306178051779098660013604799101168263932363238504208087895128755962825487969841458531978041396690394693366153315796044256078496413622126007085189856130496179365947138878905583346532246292822331173718843452485196241482076954504472156058766136571155926100133540417393964809663247773621976797866698610155352246677763151212599260168479366314938659523961606996026942952102504561946151650507717626602676525744060819676110250024468100645605323674416962438995417582053867268519977128606495168631720638219253880167411032883253706238344130829186564086889463451657101191538792419319660327468210620543175570624442728312211499136292261713247444778990153910048340768712340008523348719032431618833622015950327401979867710346437499738989277362311010996177754857548558258081347447682060675937724418752970145821417921516385195897852146364456406306908577905659481072374009642878399524693313391945922732369112004703648418511743099312266740070794447670919358861042899751344210897936680079916022445296811037213545833689683457321906660016074366111643766584755834939409726229182511833902027449546464949590974183996947898583581199141206257305378651556476154877162882252689935189083368707325137943800820902993428125038444370272370987335751523135659974375060134268438809356302842882214123074480107774458819894088011662190824724245310729868260762062208681252213462282503284192949107382947290748673648190705893849278684284872345681197739084819420045028520826414967555236255317372512988401417223499320260936009148188727231730660785041843484896244422621474957654104231036528201120652101638050525662059493975679489852437417003102559236516187221766469658555521156371878373558570373275428957895342511424129051238563230645104317331314230692244145428460003900780171670624239998510315338570402905509765929035699987326795593704552500810428118904698979955929686415784818395883704795775557935673760058974016679818879008191699432303532295515479173827751658105731868970467477263991611647374509676684201555257391081243330326771519771615056585913520786718407800582366712616667684781987169592070829396394380753258570590866374277246104742519668263282513729687823935494623055981398980262481560762911840329242147174798364203396577453051787187504382127665730627753372246125340322392568398725876835791683600252385837756428784319095320722666142224568335784548027355184934078475752267077416526680275719574733089868841617046960991798092817500940736811393921748865544399630418565886970969229441575755661179889565682631958536961526475176089011859732133323627662905015326448362394624241707683106919654036927391564989386966448314552219514737971331788344551285089444711940240978450915158353976136848388305033216862719755859000894613780051440202462439267100176501329053265587142344139077299280609724936488431086666348271119028515486628584851989101948374498321281076594446265545254022900355151063954651559572515737571328314974645856021112437938947071509432891792554119483207203550882470038645637994942083465141783083920123733655912296137097153554004252064883811166542083550082677969560077763854260360757906247566867277855429187686655270392644184596123786620542654176239387382173922716378601864660093408683548290924991807808967685936256166100556628647544135973688355890001357623006011349632030467535376844184050431351299263129012058645590264738175811379689678281477408701179152964097857074654211516479431966045766229120986225295199968098062673413290335554973399724568242263595191908335595414447649814850130107617811166325700024841081568723495412034656382709754613714391625872220594490054841318790240330183260378153911042883345487093996653843395202489387199064801919620382182703487136981564115538633597044512609300373674836934643669944169117940234382682365451799051230567238669089779220963145146894360771962696985403706691856356102881190047107036254603793747911938605570773775259169989971377084851846083120840781133351265609721995101975288476601899433558076686799154596832452865116696589833263563667387848549959488142453718801856541547417256829388111157088290704780445698866147647116721095687820137085874288069027570979322152584536707042633949592388360459886615533706053260243211868968135907169246313408909424327669098690283358712545226721233574514826150136592443191045024085090840410982564501743117511940048310527132312977020773856091754304984642791471384234744683126361716206286471087947133817094897691018436882494724002079438283384122140369586938451520350032478004292219444551977772325130745843206340409396116636535179554985154637924028996377298144375814955459498047552513610626894820987072110740074957018300600084808915989386921600914764432379691939359164369779613331380189055113807530918186183454967977885030832966060530931767140032086396192349742413620979867526439132048139645104075965839362142412119564776112648213384404004990488802339455315667703895309018049834049962350087160103250877900057996874871090090583261264040919856328522036189150948847191011928844963162769938278074359621182025711015911281412869097910905373452396283247108122033764534036193534369857360316154052561115453311577913946326838186944909643162076189431252544157620339401620381696418925627860477176765562942945912155857883181903304312569336924499881173546433056940381036146270982467754207042134362960983574706197923463811672989412364999646471003542417150191856156642843903438035934410626429336637943083453470928629036765884067106644336298945195385267795384514240158729812726341190523430114837242414779834442680805506936677676561198404029485182340158829395544294571742814340086115554818537599976098413698386932643754723321301864074810133230084910412746503424070159725298895662623916658699206819658225710532397799419776523579604364479777390977479266051134982355605560149866022618751023137794331572340812426573339258019859986001707890947688442144095562139182920937824707813310466643328827009494096848606559256631191605997657053586905194505559439766914903538086916880868055899735980837821570863380071132643795893292253008826878688272019665144200554100540264448650083293309326805945012329587734284324254040872593785750798767134837558276995112444677191465340716514030353910036980144537565266823698663374598293896671175228661659754573581015288385725049097336210777705239779956322184773488486127813457027563454683353380346735942511865993210671541774303321677564849159738434922305389370084987038973837000017207472489435050731052610646663599111083124291270923394182537367641903204336520945377593506669850601856326311807155688420884245806756718826584661740846623544201976655819613748830986617629449691136277692057541064974708551856774341574122019643419945184747829167722251450937353576698608116660133346947398337096940710820862947906884132188322009292936834715093270328437107450435574070468248145654294247141325321090798681101077595273796018485025058856535588871400130677213554066356562383840825096121118730901776080666174300291453769327248594342938150984657463290962992218060979537084364587119114486499938163223167547875576415999694161767540194997595087411017020941280054043514263669120992435887962709011713408200341070234987691629241005892237703791855810647893561441138900958135882892117614856311009426865051753549267176479673131132932033657715249644491168722020558775769157459887697896633541041912686044124754751230253113746362425944965258551472452382629821521514060678592025384142124127048620468374337738738477209436082798943147533736638212973993082866420069422429745029303331376026349710427626646259778710720222196584927458805509615694268770650846218743976932616142664809402891520995227637390595832331080655210953551017583975182201186579373094709067548698087420742580615057585935788446824613316599535084565010713540892989948662715770295218455311144243537477446006779237553887026285008375023925559422722673692515945453282740682271941531445566199023486411898794204126508817038719733498100196010003468854946645052497511344933191070676656589048953163060974762951022325750642639412728361034375456214326020326656878355473853833771545144139226618904195306691173724163444297473906337998992888977416661491951777050496196722136355736184697964276013977387744917605249440464499191794191854237725292977226377655813791206633009641429880029121754203843324811201420500082278696317041147831352086235985502451012667239121201320505633176197342385500716989235563951262716130069141401846913477697457139576139471361943801318599636814627738799649342908819517526818944677852701061800015708675312387242736243349742685323375444161252583063913538482083488753653222241337371143824604016569247411685925242707098321510528622945934822063758307147163304877029544767826040778862690112470764985366547949550900844171351213089579343839801105585506251705825311902389793336161983709632921678397393900337597435211746138287892651686636820498186426353463749487773995788865656145494654585188425544621880444762718601377538497561228690136090397645997355491904573669653131548643998494266088111824942286230952984710221690304838992832465162320459809994496012647306598082675990485558471701385698470365913894939933975404803544910881075284681474043375338592553035235470309282699725768510888478253917006935940778981551870413046116643789821347576091823379299927204968623985143212045586892475018829619034986554384820560316912407923103543430460423084199490448531172175907780604241641561238991758315052473349989116718225945761679396117256390976186520413130733234338663147653629576070686040870575264169738237285166071082172510707665518741313760075647025809872916804331839829431286505062752207035749452089570900429294328632079400462402822687085208165846912348319257545459151904873080092380163268685507349507459241750994497856645433080903637644806943868095780910891141448405440918532628173403303357111599368425955269342423972446066337038542869959674900790757600684976665451446085354521648941606342785770602298784694751968620985825127337929924704575334063921824099513139374807161891233547576396916907301905845762998673087104914002414683070568784240568649724881953931216666277672710049320942735536107444232617911778766658989037797169931752455402108294524427159073393847768914460033340045044113147959893919626352854734114381554818582875744127449383221717645008138831210712185498167284898541435124254721325476473868653375748748799807523178086957040092092914660433486498730195814438034719353272557713156959062388775803846202466489801371173094027649224419570738849618918007809186456543591239194047465626997758405846117073620374914322574928421206449806592218649034834400120005330082844901510756022390252715747882305634520000766324515692478290433969253383239977284741868550345863492951294854805931160643828889161816888423178976056836848522949858190039295500604795385923957766264634703841285440108764702524091371911583609808087212534566173451648985496012635405459762190567674282964882304346415281702980053008322738436572651811769950224623945890864718647631914742195659096260673388768165854304369251989624409429225016324111183106224469527759686796654934832219179650771548308949630579949654699283745154130213088872357225415898431128306657534556750152511490901383686373251495385787061533855223644427097925926348915378919555231217577144282291246237747473849898001847449103798367072133595856916800142355975274005534138534760122977174468764123837418380014226801368333228770207240306320446900639919114566794436367150338663644108466740211588625892317380924619160724562895050407987728749781033275700869980985129823950403594553914912446053709072376307774371898980284348075535771406801896945004539162715555923156694280639399391731236551262204174485595427829526828161399690412803440683883007646961953765694688222847373514095269427084546823441643818597476310163014141388280486273743185066780490747613886334667419356456989440764976020338715964363967711233013078641563066074232932133558047943472114394595013518407182648571684637489688191961555710083120824346582107683622364812217738404648816058145175913275838214009207978888413232111396413134421198711784379561448516156742843701872360543251947383169338005706092166870611149020458397991967847073801757935495783825285441830983452885982390356422518379711012721076717886927194363057474644288002835306132321621538430146296733884115394021530441100484179267469762712263726730210045837574050200824194213096260431034390749132004476287536139660395467420159725870535342509095179985382808437014914318787579399259720148753515094746807890160876599729587127464854593126378912427910954384655105580137249078451518344066611754851088564388284014808724213300147111048192146244654416586687223389137943028505203135839939301440613536032383931732780658225941912478735010581768863341378858237830027645664889423868931195341352525960341498902164340697791818354159137383135999527518274141257964691542407423163482802590978109625728489664874617510979444763355568604112164355480079718191391782836038090109414693313299239228608505093686723898141065351092151408213940373900278673338496144146904139941445150352137265689745029288648142867094011564469433392122568027590263213310294563754937679927967090047037502237100710324230319793782284794282883686782478005307403133562036273801239708152430209220670566619441011022418821940540581467252001531481710796433710118003100954086827751166204286904861914806010885567008387021837768755538499736811206135702187008378655114598130414494797356675698905629725895341387909718500041799776202957803609584677295549380502791992337185506753881051210947991858896005601725351753989338550969898538825317626513445896823079599045368856448456808622169119873404345649398832067901759339721568371242700037977032392439485614318775012780598655188976754141327267128731679479907167358316503970822988789277153878232538695908132139633687725049608178023731234749121434407032288497392956986370008317453647069471744719392287013551124106583396093848653903288502695702979073166545710256175546063472119027540288022319662354282035199828548186635502733301207780573253374117294551615064739127199192032206104643267157283003545353826813688357193035560636687041288474105325732386836306794216815522184043893021668519902166999815229508842699560453850166824623800584981031652731757354900005402455228639744860539444859793585598304994933275474472253878864027244442701163815822649284448176038087889310254181115250943976786637647489517586158243631235001636815685797157326050487979257861625123683992933308318998199115646542598755486871851031520680374894400982001192068520339637520716719672399231191935306804776555895324940440050011515381706173471699196460007493574311061677267900480844851706454401891350196968260685800296571350061898720808853480409472898380505557407235045747508195699322882682028987681246363134179392417268286399049577587408629432310479798019385536875357337413465481065019887831154580887338902315264557033516459526651078163132013655719587772529495343253712217361749651163109091104842962517191684641306629192613969631483396983574667526131483347601382923852270092912728721289497286639678947190347965454115663623630206683702132895678845350002771308370658058746788817864449039008426346820599735713861432933770679391979664188376524971986367722847108291261256746149490939349254290823728486814738283390085994762148423694354137596044141816510596680907648156633097126807137582150191997000605101917325902798829537196562653382706463302527030073625334845872512892935142515832129839419177942536664508747769549609983894855382676937353689508671231793403781339154854262688677838991693251106650938759637041622549318856194255401639136883063995732877204327818071334147738236562232542524322752998872529235829410765521868040343322212666183226862853356488562263984925997118232620612143154366797448321515684242928159974912543918798847311011721183595571988394398284335482785573141491552210481628727272785227858276625186773744494892578350284286205570480798493053425769108108724559710829093356457250927750653303071163153926754742234468907321544781677432674203837260736712296808420674478273555123314972389843020778588860720024218283152845882569707922931239597277417779118289880232081998219728185129658262373416316675011068741052470282484161757041194665468833248364075684047296173684822014242754596068699890672902088582995756400035092837490693260474710134169958918520835157863885606181246702172966038268888319590776939830890647308492835361858999559544468872318660200704251128074168497774154618684597512649703254765197126629383152167922544641809753377170034148999897730623915609357751026473995732564241570201959108262370676975751042242166193393422367117431438655347511311900293269772605469215331116452779876027364248540761276571940643908475318294158062318980941425606047606452424748449272393135530565148897137444207447353984830715390224487441993384955454142850406509948815550052357021381756741337689842014782151300884651225090114583707304465112921768904586427783282218914690432872994371076953701268856370114323134378667358641924507793951347659329362507879062756157113390630400608783722409135986454465965378769088711099828702371515156442630383088424469321575837717617281335809413924620180004247432458315566181032657629490411435119897155653841143202194744643368150126358516796715158062992984815964048290176719562689183255828144447276082025129961932286169262016763167017522310800444611456235714233770418834692738858085862419049016404196815063386214348875851098706240374822321786012696414221585372790510052917901435203467962262909111360294424787203000880010120668122193699132751477496321470551569045493806959977825662205694661357704578030046496663537584432095349588685526712613069216079665173412239982093642345605159478704580869925294089561523784122859658088573312310761090823605108287089827403943730999656614377067872845252192342822964342797836240645683362100751148268769118737819261822861672207290824394552080143259602475203850489592493534011570670263596316361232006688966746945965727186340210346604978246498516130994394165588843289198345259972348693224784857814818677207118663694108951434872223457118564629303753591498875862357178937855932102254154713106352466883073038448226639062476327232191748714267737297812356287441065006582395839512297676483057936831471241644999372336849846876075394640146157946656638335907592955621586238146745317316441339976459827748608613421962076823130397260238835959465865031797452365019677569351120955261576014070206053101523692264746902437367384633466373937368888317769956177002035473586139557971626639417888189230123664142513165616407565422052340479889256857332502502882059181458598226377353457792685216029845286383402294978339610193293200249223101185861445798485406625663648965684842276009636313774958820036081783275158466922279382884694932761011809714967161291971580278562200974831002292672844210750897550579886474670662322456918122468825936326384801778601894291143092287977437425652458218906501927519128592192661372202908148518557152439116200948347201621215509781914272093909036417516875938639411538234692529950167979826350299929240280144673515070857697021471801488155604105963728949231743941415066685912242940374763725904661741606887586569006264102956787977781631173160921159227241273886135251341451828138171705827048454433001666366368177264608497581968136785013965033570426683923383115894272883331398777161137968814627878500316768452243274690686583135393435625837861097725073571392861792761704500385212412118372016287636260088127961815598260720201086334906798089246465908210047871080587522140258560902410429741448248918778241177291273330143953995853343336426098300136179877301651289155717929617388718207115437668697505888624992949730195223249797855849967951482499563389940169356078470169307869941734633763965040794814170780315903013366535790608785957896378831599400449638559935738651181907417392305082854086532527503128167451809510041983947146306827843286058992392976527020381268587960413110843479834535141223030291842555297339466253092960612931418006389530897455020253932029121735763321666009543879757567635426179595479220067523639518486402609799858744030040383829513990434273105507840252491119996613431626398284688376575177797614460421492411983943352982032388903019213092328293260915377416866034629909203782881775477178934393851583383813941204606185728432673030587570180993903732914041583620762884262628643911375366191583399331663312887976500777492444639736341096870803147556750671256649325799047841642319172456668632326328772432546919718503579250526954392727822896433049753677360354990074182414213532539909030942468730734063119186871911323326467293584134744103068144883960881803127957600988184601332709124163047292459145682426916344157734038528087190354982589312335106434799867136831781583279190000621359225765611950292580859357275749808834150514606507396409049648486488943460557333335594823264006501799786812407686105203984709979513267931732121727507055874566164736457815127461035652770910599313198299815457500495453325844851271395251763647929484294822861121792629174673269311416654227480928352174504226707870423510903824271326613865514994197632115378322283517254811117582206001822675565828316637941943606386620478166151897219985555280207817494855115475054901345858519011886024598286034107452204662361766649957316253789961305329051328536422084343132161688035188350093949994632057521606700672970046935639906910545402354531109293551003074096894679073151265235146372956023653351169492149834687679236661484222213331464024137822193465213469674278781577701140913652756529307774003300583574235060777631097597454469060256533579296982845423587532465842699119255028217952618382967248297229351017660896501409214105287142274607025336384780983665974233541299012551830228154992088256032021835361449103502890084068123753466008459613250382767915836886762109083976775019175019132720622943455919095322405224469638906250939069068107433727048740354324950897435297835708944247896214219495758137255809969340342237668206276624068330387985717170489444004166371739089754932602297747981036557468536399022997505226078651022987225684635988855787459364941844772179932524603007213481301008926660408519824934064001619447498502241067633744736735435955685224615997695141095423329691844177681221538352635515338978408745853660143278389181378807294412905701349689169464541963167080622078923884308444974250323862679979604822385671525340633739456708827502059183038746882469783435188999722021191582103383550844409572940893763461105011904672062672863456323169082827756510176850717483399605072781108022127303081828048211444934896551698564097144143287812047767366738281207497678862486019054779845769804638744437725647604768055756700421760845399178582959791108545795331865598338182527888736088351851900141422298754023920970425681442840200506184066539798449973748905227905144428396993689079614230871641219071100775729256741598226401741653674567231268683603752146226289471699756403078462977240485085148558670666108653318123581607465037254159546936465780533488532979340020903322098712413167885873131118581411911093017206063110677867323540494901938581028165609586352877025039575021532049158645045954593157454768354663397670350276117196523385172353888406461218237344621464681206103984771419661887563393743380443319617299494934796243761951301807720854545200563257290338042070371418656109473438769164272801895962726626250576340813454059786676018233607056968375285495140044306592975786346470227632178171102631903227501663409948921683591793102822133019257198973301563632702842275556470213116343204600326203979403490347702009156416309504001446015638057669825891865147912526768106280986350323409197814820049137849232144251954769263228387807571332010342574769055657698649114628800723735166995371474968790704424985588393792362609129398832948610370855393153406183123127056950653943024383590210321946217372342932979651648726766140104768014333679479903241307335839849372339419188075421729632630722418718066477251568753909422236165057524836206385853340538080437765121848682257130227502824931119479265786447498119639310832504556356912635931204500823788510954901741477999742357205033815868387228311435810206524557441428897944715047359863992574824790666487443146148158673036205587637990816561429932671734732261712895737692534207198992017725288725767717170101617005893929341118168410866779321972607033720528775082386593236163639931723685117593443076121184310714271346987940183554175054199635599589865003609198724668307781943838523977054004858060389791796078387784191807197986909688857088402964821322248156570932332037087109523600486159161697412922991229283547323546241609789801140558641280806404967208108321766773987367578306417628842586333299338484407375670538009711873305390291532239413892686623723699105061391376374495661040561706819783845937486740789590656437951846666125343405711020379773729273332425288586571975978804894073751701966147431149468139999249119479044584270039603096962490384221229625089942298635616295497178118419016307015608725474491230609338359408225018020800000550904106195336205781247841593559517625076634741755031430628956214753779658535366795189567801441743766885307673840071678458423165587632642994982750715324371964103652435437328983725588626617856558769610380344123006450743198911315688598475719080008814570753484539521141917209512396723834000519071666637162460628564980661550126312436922589854210735362418912467794237830997288557359018451752132360060947493417069316759388885986933874724149032975883688860292579673269118981978494589143215823972202750151134099475049301646188192529041131896609600458941277197689623963594615805163064128132629228086680093037345166032460174359997338201824075112207866289848334200132914973628716361758031830898951394433110077930172986212028670076639216729230751038612779968579285199079787832948382278327625291356455962270318067094315159454003315034642984585290658187618216599724797707791494531824457572389569881170514248384977265024228088837215858670682257315478882180551381229393065167170171238802210797829730731582487062011179365858856596263056135943869729369335885649238741192299019913466821828924480689715951042504442213686514957037517552715510635258307401353527527696211725254151773235064132571333495344370318985641910027454629291442259626643997734442381040032545500899109115874902375789539066255620181250145604579422162695393982791012498525229796169410003572177593220460587151641383772715426545703777089861540631841245475360827985011236772697234434591256552296848489272077935703777063933583923758189502557752555192838074129564123376014070978722343420628836119975922270259514791075550957806423311161874457933590054650565440032280318928366149793411837249389786960870767555478287241915662487054563928079457529639914609528624510872005150526913880297182661707802583666222297966993346446933459186142742613301278346384282214101012528675474528295248619624678662637945617478293227975923672462404283164136027691666646404143687781140013769801210141299793320827173194565579066423944442271385797926855685124183551199461467001530212116124274183744647139785389602756529854475589097852033603535012621401754155707994204839397865115685995105349535563748549012094091199903792196370540785460693881787815296272162349537418966805924297408914894128258893581697045146325054656475074534399905055964913835539149963192800119921096146079639529963483478285263790490844853150194505327990805959341476387726899827848160403537461457443724729723600813314680533087152488256670960343025879650882882449511366786454300629460989248025102616597625139681429444297055153316626992331168371540740539825142554953762998504572314200468214492833628694817655695095258385378815612038818753541069543517848579034822303742036542102572261924757557346648144219558664088874437775276447855819091462911081212915629014040476678507975630365393357874982055733524727578361541389077344683506661943505269049119480182169779724315256326281475712427184317606460801935233643058936062857312750579357188013614648460829027131223284932057016608184441186995007741251411235690451828303231195417221995563200394226983941670799391124437861599832767894357673014582716506448892765785730408376287257275648063434044793186080550507739394505261781033280081996731306872205722728045304728318075433143497254947563909148617579501850998839228979081415546691268071021107564749794460055219626322178463212973669453492081721727654260389636062822217898444255578805347238701053041711991199220462504404502178236756516510983105903548759716417070205441806810461378733293896566751092176801844753203818569708035509581679485474628389285962877081876798547730933632101156629952221442931901755980588558638595829878267897185892742609636843643191196727581412524787046469010969107394274404964463210315325975360750035026029112556671461798403222328293787146741365960922552543061573821837603704883806284134279499060286425142397951321285639819247057314787849519418692487479411285548884521594478505347415393592735943510386351968849699744196389964029974424026267512295730326644345281791893739256177590878996825448791921656428399894476125283701976060545598844244638945497708999117960295582768650174800466351320406147376352112125324713127626731064045303332915116707756722128593057527770362038677671268043611182611823128558549360138400171149247685167695665447027554297973645282916202725065457134854705932223640721451307282315407203843061068045663846322287606041473501119566201155608172706777696897933876976716478165994763521520047918752908386639160820202922038612615739796732813536373661213295424998262505143169441937003203141128103512853095225994323519889765157298504813488093362857277132977733708348421592489861251642659717268547148053498128719325555418758329754112178837931245766203239469278556564095946409202201231846653004047335261893464685607581409870175171997541199818559650441484910206917399269348571151830650599650974504818107527367297439650571405734506074529262230298773093857093795123992570469510087132326823856747516300269637420019168652285190058759360713245132284245397971916777815740897356475864040728376331493864253566093935699020691487723906933922189332284336629864597205527678659337082372935273267109506824701150150360809590444065053625739967024859962980398413669553968406564053828953415810096921606845943489373650496131511175776636893010847116860214458319695284887886743263511218490961660228602780541647149839884654051767379584092249162097756846246256122274263010038617513731080802166405869259265500265976604261367518924639393908233332815755924546217651185983855396165956917243442035983903756013792360044940021270265812911304461120649037088981286681204777676347339269267198587754672350663883346028366569880622101435026006059239716236892498425679193660400964515850107754071814228674856700996751010541668517471490695448526684018799183642183087799779962364189268774980763056578270480877180964418841044442684846491079814475531994081147566153941078431740130129695697291030754103969744067783234134437489844776873810964067646212295338746067175192256653245331888036581592310701754352721850239240931246818247675845506392035959659977083880056218577839608540290042868566939389086818565782283663381759959993421777577014196561172115122073020072608577852609968248117975175612075884955608508117282843269400931811294432934403145825152733062293028567304575478989903280163952024832517704465531333268854475162101083431844947895403549497151016896444798370642164983133984833628946186381090132828370647866825732820923072102687860543528141360682638358269843360410193000842483544117275215649300876772084815435075290390493411198105824264320442074984186746886092288244596274211532712914515519700409015606564603567012362947948132832516231387420153363557316827195816468115813384187704239824607813508012340413283799892128979308798352191425342946335781853959777147515587516318199807773280938353012763727005119524239251911055371493696426849398217166353876563295737607734449725459347987799466995251659047525074847308910434447391449909524386806820355844114035302692347337468000223919561125417580957112110120449623766248379827179237225719218307139592925273850581342474014010415841907203864544622030383927812165196921589458212867877907776229785787841513528698077034845852915829925823483004522340379518672582854528826240125003967258264431548294646384568826966310728195061746536656237163284643223576265686136835727064566799627564225249369150680583476465480277569511093576371062101262877055715987033143222727053763430771854263769551049589772824214372486316820076203108983004838056713316902490825555679049207655760275134796474721947289090906391442058007018492817946128451685998631277683480031479019842291348636994056130952895541973828431954379974256516442444518642671125354690155963339212225065874265480404835864175349748520987463328877006076523170725189886533977892230793102162499294447117034227512484595364438350032061166865320703474778369410138714749046393324045031424822809629543354537000724089324050537970295657747092877951175222773217339692558214917627738720928525852468094603745002303432868281394961191207028536235484854021456117168651462161790775552025334215249405499969130207757922274586558076859439599349870590702805449768556891167042388797259919468871859376380868760005820858801421464522602048100956898872513593744454673912880713584239526037797876062611893834260259970310638356620702774131992017928833208350335092956762334462620181748450251113080132003455239321504051691693360885925920515707042677264887271119086250419777065208953881394450628608854037095942927623419088910370310592083793731100423147300627821066831611971393596340418787004109627047135483630615414019130163820624827173611532068819574164521470640358071949300342692326523448145135541154180339622927129114798444315505813236054914588907875301936416951086553604953032286135541936202022126480311667008927114262590481982676679122665842115724246475362308294744574518340580905461162627931919621895340673837709899487126145441859862588273199598516622636206875811598974369931942333220875251601251177842897308226366093011304843020193285488613898167093318062559584948283279413618778093631992451951904799669368204604779797979917259269250396971947278108138378891725056938425183765084202227211424740996812170958887562483014527446195761820960785126424890971907705381217683551161054956406282905109966398616976102583681687465296336107175000268560230426366104755483893994385097352954828507528797722162439258407963014896051653771573697499249687723007111894216354380065804890647642776450088410474392010941673188693279548056900955402046570146181436316136039578570945965551044235263317212774064579803957068143642336917764585571504263542454293684637151718024402836641879416005869065713118516739743786149933637630392342466778048855205418078923318368329020190336628475041988042466665611532766143220979014807967335879086754159144861174059157136224663705860204109703657832083637473652880899105635184362797667809888315552090658711894417128380959516142264841286507580975856050171958581660512699758717472264986978371630666660432899705432352697754285412584133041653958959820597638231698456453900878172950560882500577835943468632551982555219510299664469793845635037164052106070959061785045702372934409478938253069866715935368531111737151450734399315676150925178666991653802831121301966085649127186759010727748038718705429670529648864853263358722526346364151782279142688598645200595865300393840100435539326737785389936337279238687576671762387466158173872874260177784743849693253553621038402595589593835968173023228024314207470435175388314352984120400602444820394260234791926642887719606507693140085867369424558278142961837931309557783277449034437006248865065244611110429833543428201246844590378951174441834581373062194298998873745251302927435325677516354247711502609157278053474833426367063794185618449551597843805275096018851856748023236262814869185418335554497510906267942612620946548623381024127930784647211056716830484950981410130053650432503065493090766999258147262276698323906977455675818499281884832409637727391040900308946383448272463854583322389479436638620947725311016485392886021924518607147412699811091535002875170464947152127682823593578846621373123035967671589652113267824786103127215894347982552261163013722157955412505158209715638441637013678852678066462070061152497866170901529603699723474510465580964249309726859375162424733469044822943787342939141334021138273070985602393804932291285290347846263927779904850887244115495000680576466673626884693927604264673631471265521143948619831944924799077675392376021446412779010744132005226637757099660050690711419917742696116574288564345740341852388476191277818289825031163852544368711687788936346106305916581545665956456576422880825829215992632269266750476325838978899495873390075176225494737737553423304760209499882761236486887511439147681874409400045060675156681797867840247177044410462809920813411379198807926338147051582478355504316934734326325958615735480344659125995903803817001379667402614202557652476300645633816387060476059745862365520093044101361126675597472202890864273022358549656396054282611459572676975169307827042234853440996347120517027415938871668934441556590960451296892948274346065075961870007592388050495697715827998892735873058228990030568630097301053600215936348641870251516339281043194939513560174324786540552604590647841988168827999492281108661685782881513448934604352416306140093670716685631143161423510977055577713924380438302566277955292732427111514037846989480645242392393496676793991104531242302549771014907717904749855644114175543875093902234385808744878727976209410233726864142193007711384567873727464112939731989465097190642624518168686681364520773182060371298503578151503314755269488152517954363067278598502547955310668006388680403971255460281113963548701180162888282673000829626202811980264218725238139163483731075550665586709249392884537985109057620353470827158401808755481410542599795175635244777759100004830844904784380304560065629965320615999904790043461551897813075220523072123028766346379639168987978917298907055472767289855473623221825391424815525435582376439264324952680735675684082288536226477107351599846634065874269808562549701893887106174532675894213092188551723024259143073274457423226657561720368330197961039858603403353843825419384252011628320523648793867646380942104004396561556869344989179866650634397709092488740919472644429859843557811623873592274586963320315863458598954454466754687954039564230764775060086720650036520354318592529182080755269292305007516463031750525244649274053057962972123880852920796382142260416841850990663452408951068124115044134095723726360773900933621391381583212959918248470782636696506555066683998290435279196238507535916999874267859365894285160136557513565045517391226277630530351736174581204446338125563542451941096929862849786835387517683658289099214461784675587852550126100330900331534235899553511623985016734087857013595369074911006428280567602368973283681043481035088490219023125834192429346861623427444078627358438730373418490353286368155976503860972383558624587505188051693231122899873320225558735454331994094058407070275828201227101617530487876234254627034809792240035008790885510845433650640807649660873697784777816651085343630530823172028959759187430223490560821341892676498516036981213665581477340408282663590796088979535761854775018069350914465115585497604801573396856618924150931366973840596435243586841787468276160252709374675501602358110053619186358409287866940974050431907498024979033741237206406026166574411943147431020025946825462556508986840402076444801358667761274098590310388560281570596858253601355159443285921005640123505254661259679815560241587803294836604813126353015916572670815683805172544571609826046900569045550213305560965145959437301165920747007315387518516028486831634014238708019610721980504128611513720244850126002088239468936426067774855950693440943388504636749064569839968374949242640395874538188405638920042677785597640817801488366069074142226257596311834776676132614619552317576535876441488546964430610314142120131390251132533710893076847067861974811785264758407016130758864259551050613096565014553960710365213058943042681719050855342144355599609541507176342532195600699047705941783719989071526372546595745251754423367678502703622490526993817811533218814061410269389841983529803647255924789053966561273683673852700894192002012832720169836704355532615848138581237691123168118262401413881972493063117935188079004820561771319203987345712639649966140880223494386334245796264644161320557003427832286033279493683032862716566187208263887431669541604240047191196453120814982340715062227014985245390088598196992163130387326352717232404900037438951764297820880914038453643974079120818990456543511137237474257809281592142003953451936103565726592307445387050850078259192185543264286409412173196057347521551874474399541381318589195414752730666233992917044624049821056398535184018963045108833324695986098572236821399000859559633214589997032587517901943174283569640525062104194505148961325401975640743536630232786301550981312651030276216815356849666124141242238731139490701095640204531912021711781497540096907661570405281925654232927621832211184769353249888331113522374207961533419019084761946197329026037910212590628024779035262286705534985806324306432663016048937559756233994232644396966149858461848186321468266197656979135458759798720710831887406072460586896233524402158359242139722136440741887872561902865149783896716209233815968018009834044082044131149093997766970545266777690871989734855477059392273153578382522527627468012852573867198091127061616641316034791049685105564547605723543928937511353293024386757338768003989200716176854855082649898267803172873231419057801049649565003919278815619494045233880729227109845331097753003717040526035329941806756831286405308349438424465207391773306914421318225621373083868886275675621686327224860183436644793791541237786866001059017695505880090940464092564706033754735423973191430717278745613246790128564346207479933269423262596334124953397847737093807221521850433225649160630789360798783467221780269790653475860005993894538093426683091618268337551517658188507822118147710117133987242783991972944796446730263935740019385242638235881372328900697022086254782067775346944279374974786515136729448605306097482849067140988300702060003017687414093871215827531217741040467854012088885881789650607729887433536587943625735433373132455510661034893024647077977091233877930426723894619287580082891610909468241211784638348652397656951437824408034102501850519117726596273306795152166547064703232388750451810365775338805817377891313507475176393966184023718368538407971890999165893208503675095085888381490788039560823143059395580273199089275241385101129892935885095556103815467445670088340526083639617099452767134795178908628811039421288264737828164398535808178324267967902005041210878949612017994599759322702603417745582041441863568751650200049198586100182956680476266299173027167911637202596911285616166583422834517477253343365104626882209965114848994960857833717451985255701901766491148889527895417351232555792162188931989626173377466234912839721658581258345330940018378468379162720853488100783703123662467899746315340052498403438282673687203612094121388771016160813920099132726797707092671398804141437258063162518896183441339581391057887990076647082399857068228779048077839202827863835468265162499221563275551919800172366766962539757693980952496358532146330044004951395691150435258549216985132196401771193474623072390787685364296862639137921658478753103993408981247874873346320545148721497488414091689854766712893910587311334000087448695361057952375932013403347899096282709902796085728827076648323506793691642805164562841605045946858449821948342032901503476940047884214098634630011250214275244545352317019925549049552681151567650278230714873265311339269339858756169212713600163371336949822406965941306552980455634595345827390208048406957032252558425628639944119080802563501454761084457134110009850390117671644190809444223219882773668942570851856939441512771268997257601999396043937651114689438706694343438622388729066029116171376740756035061298652586542740586830861747380583486544174165234775444659047369582058270956288659546373423656364934986999839198623102470702729827705935720019057271183391637441614923793884931060703620007841888474655598560994959720382942385291076293028411891582718265030396475091377471167301707475463910997175067617357739583865265666653846974607695894007797383096633991951826861587342955127167818331184775095942364907573272916783396282502968171864038358508946390248825705640955208363151582048364816248743162258124511013650856185872580075638615525173171374368636374358588851860325988652670364965971917167937938561161252129129352624752709377109851497679858039489315272718688311780259607283478468679577421270704441376898541885279927452190599826343211464615761569882676850094454496020367163311480276962123776759061445552685999416175516832876881811993473538282117693600626702963209990925446088099337451446858535127420287401125226278728890084108732815723633712811773328183959393500376493562237069599893415263715717891203784224312591402873475368381826121667251723333628701273766571294985583643344360287074507832879131577481591875967681668892143334296393977837730394288945375377998774651528104458179615160151431407956514322579009461305098989544136836261073591954582920217966399373262590948514724099558889359567851085636508329406252875372778358441434232755843484011524732728828286786513221527207405187757903403622898866634075262385274173758557912735869817614951309113978073154511671611106965380335440960857753023560587892348884269165794570029102886158540786102610114945031489440879217896396311515401851631281922842016443917801575133349970971326587219488509191750274322785994486632465168496150776599348429063087252083141048171937334595171998725292134476950169519467524499086119130913338907514009629863409624185620298971414232967861895564743342201773291403862098014772720040995226017470916895758943609768903676852647987853935705261205561260412527612683498940101969774564142426999011753084067843194769377435450830884736511135841091645380863846013552600385578954711174903351480583896814130473512682164952746685701258721195963828523714494931318097661381151615435424093260863310434005876873190142408649018827916333696728712173080892224584754390795516922505448978779734883175972499630060295980729087900482333364057339783076094901640807572127101743213479584374524856061078090298810308826070017979189689427359448141966457250877825718610686521924100813404654949290957599273935348656088433233621333767853551147738509962456731718786803638382665483913608027320144944969195958324588876612085751195399136524433555211354118908067197382161303091383504474331889810329171618899696811025243865884283602066185697466657312200595582614045751187468459464022049780835054176030622887769013356569880161041998401239758950484672311018497243077685175482905830063170365348212465555456438540290889082212183674131591671185480752109400192495318468934720604540560370048049420914276848823335121452046510050249381792732934128942481093614428252806883645513886436492009493511569974248446541046371818074828952203832922681125559364057306803352742645270259432626406514389686517299088608015176114600619389212522018331950353821499402557846087486100954349517150859685909279165372036262929628949373143989966158115052002201156198781893702728669795191984352327855632669390215056080939360059661339157137287247524308335654049197598170400044564817565321793043516924689453634321037972505564335909291846279329014537491107686079281505364318918319118925881666106931590624557561208658446042481423309117516568197184880234267084370250828641160089373813357850907842146575346775730637759827767036613501627633946514624655307131382917534963504707568371569278939127999534313054851332796948901383208485669979620165628207885552269381015668289181968528666453355038926385075945979809633569672864625590486552277625940781623885172493321296597503597560100094068440015021637253569919766813415384200736407436395949444837181406610228402338840715156568651194180157743701959959977328748766445942877954097545287297892160900863552189117703018660884899037782925694114097352545864083757034797073094203518545624676079440754290413822533836820383039744593811218147822492317579293866501457745409054452605423626614629004719129362677256228404774026558909952282210409199724944258898103928701766450148406472697847424573924358174298887202039219994690403720112459727954279746703076610652170664590357937282878406375064588392844056436584737899236587834566943518068895078278069440728445010822307685837503142704642939400520643077812513957653494921888633747185205234702436480645114610897488904093759749869225820222841644996856835148390500075553188117345114015438224475589887470915252102222785582981794828354047326444958099081091695334572779166211647916060999985606107231982568744541708218925241667629551330193800141355327480371324318792433959707615130891025866749574322474886302628078365777835549134204282819172665623331379272596931000390103471156025503700001907990599453890512537072546375722180033660551830578908197064529219747597870830286665743201749723962086861312635314137544133532450860393360019513799851895380212031930065593694443232215241623956634467097118469541534655018383895657978164054174307599802124211303698441640505414565753638764496999406400507929813528710458991318058971491102079210700183123712514412113192111549677831219089799526375418009428820961286299087504457819043791649977569102602064066670277830471734106024992820268185625866367319460858482941975733086458667074830330206102707933316396268101655737947274433117046414885995874806151085933209693717196201078788520545093273677707893778811275066872692477884334278893673108007343577568224399557257552165507299145001687567506151150857792380751775392378290207480402913877623872969732951672046295147688913989755922156227230508230630718823161984683670179307680797331204021493921028368052521499425861238270045356313736802245619238230964140689657124047058825965965675836953412440725696327380528013567553552401527248420161706651296591159604505191737180881815849066630886742000595291610102713238566956926987615383638415521660728387557950804878682278440314600335084166929971162812805815145262841091320084751395183270836255669942605186251561560926900121776695638990455580397362110112696872183912660334697039319533913265282507309552670496596118651835854975651738686018982662274528735182491470875802097066080878987093133878135188561103641073797801978480037833854856676547198665836991146129608614674850776208532774437752366949628177845955160585806932911250636313490582539871768709912742797608734539117356909138587078238154309908719233180066451131979947755531286284771713573338593498122185122245349630650412849454768662453900160919579191987771054580269146715380089922813281146127673540219500843411253215578305746871000229892894554091600658622771628599291923969652266671565067283658600957499882238098287389459131471884324116706292959428956921404192996485867572605156112807864100879211294599776932127710828366985355016539485909637205981234246092789056923912187664822027104996141302413330598938267444163433246377257307630064871309558397439351708423711100501252397044533556919580500882737193806747880737444395678689150700295949472306002356723541900008418656591704591168862148538299394107116546753960953593604219937205142342504070057636717570154786357468543103802529577271224025659375011809180894085589029414067049397000609755399681814674435141975851842925732113681431757162671953256330570650136118385482146264996350212463634773017258939437474749453746105433127908671327106576714546868817247692773746434177879699452492431182476327621769869977687605209783063535828850718037466665481042738674641765075654377672994951887628434769474158758397914553256538553538144024368786426748368639469290364076060635489933345098612621250481237556358112356520158517479490994652274776650485446383696771991086140242111169391640654397375145319076023142695535873937530502793931926014377735222889438240300481390145180357059430020910009715621380408233170274377429600043921138102342674123077969309992594423061456216918219826826369327909333913248433286461149297314792588048730250064406086930295120202651791202854763929283759175153224336554195402108326870011154510745574207056146619899545031521463971746125029362013364622967890113320452091150991407993330702795489731355491857110829236120776431878751273455131347979713050985039983929492688787831749989483554257975886333783612705818652247439034470018153671182706651922380914098960373448607092377796004086656780658837762293888400779816063816851443671340545103452034804739023757360002269423003756497366630769997300416091427184331031112348496234766689441212216692195724251752556752994326692652953989733077996497872886198592751857707300539293123853234283716847168356737604088608632460139286566974759948530248866255393354380183177093401085918509850226238562207825459683165940692689536071849729725740694697052202882639731928456041261100282692277232472442744405381509957814875607707464532520301638361469547417830933789221128858234335739307159501331685434829564824121655040778786057969160497549146511684347028013070127008202794530721107051300713836237488233180824795404119002171372761611172019729319468529088830697893655546543614448821604562135654772845052339471203909828844263891296581545399812907732391693004967825491740332398626218351745233044450613805771359020110975804650952888570149324367691297520926118028558154024520092014390850531098901492146884441440021457673614934435618606676473486521395356343061742693593634504392793413333991304042499819122790876757070144785108540615007663968919675673638663476752796868953402909245400894550962010657650806036536319052865558170772432104393911588339778429363434140741544028718752328987095181404319884392002536327563983171829452781025817059707993296627087760910873420143436716274120266075825830839144161735164676122238709901293676866975966673523280972208398919132045484267912897854626148161654045983300496294789116504521207057154722540740219504802766919818031036931432226949903254983485234631237011521047602488709778132963781501732115668331971938868773129968765602955177074724080646572274860447242232516252406531737727011577988648496990625487174139876932088601271462504418924250493415951788648874408489290821569048092025678051934209649995132287744661679719638040542860244114030810913858987354219373275364208732657116164067432852848070192704531286371783082951660127080012429233290246488949524939880251889772830613776227749869476461502817975687778237646878487776215076912304510551080735975154968851527565449690565048413221231920917134344911389919742987980637195396940880090480101819405799462390258877995578671095590184910846727440550478678555455776628371417052767233692183892147343050726799504689374678034349833057883110022658417220152639676788530495962900690381118533599175295946623588176336579898365601193590425198319434155109817347416324300396337597133015515356987346865617213911302639577844992759577932408778265396666665787775663797227564074884611947797303300272573359367886040018081912288311504864605421121205402939032112501580868634111269860952060199720392481091902965921345024221863774706271898708804283201081327739324660621596020016207832720442804279318744283376945027460294502868826419899139584162553391091846786305945969699540274191488407534613592317055562489373471627468047425038119695073690851777165379012400479509381011713502808243756576367403330450819786517073656662557738347897265623479067353294123905400605708896753406762514997414037089389382614790428214947324396091686446366370180507440503475037658551320466452739970833668545791289933456875893211171909591163220106670703007789713732951774809711587449641888769642147663518426556078800842123072133255640403728248169665855772505563944718414790827394481279911884871359899023244586390188437041357749529467516962569353604264248689290166234145566070028367997386507660119272432599540894088733590471863511904622001396519820010065654355268018367895431206687551622171617334917200214813514352612772972504837678251399820700758791708282109949235462588629959169338959353613410353176704225633923517853484674119290678832567332715394720479021093089644121670606048234007611222088669703876483226130564326843160921012796919150558213606434257851416759490843996725441265374862747852475035104034329050706464200770141321445448344136475640378338301453256295415188544543414946848460587494970392906647705842283054306268519941347764600147125333463191116467640481019304414065847364968608616192359604510173313587148803281320089574949987967025637787729275937407362657767382899543019443205960933598562802020372098801942146732164409737928439183930168009637955377836858201833342231648928990498150390370298034067219318318948136963481855230685431148313683665818605690986654738651683591451841089942531985605815414622177592982560349602347497131418797443348632695126660062264273902393773872871265790577039258021257163039444713636787740824692182293084134031852577219647048703069732485300048049849809727474452057204559976248274629073651102182544139031913000876765021855767977838175928648172916537809925330378312545904790981836044821713704159794322969907815724357753290001442058391399748554238030459887419999342669274038507275325937801797395684769698281876051906616000734588376238484098656618012645367276694881164585173251392874452788113735590280002994858955908870674346666394393501863491625529271663235661449141612639338733291953126524978523091588779314785320798737390417313802530912812703409547118911789969082472554054689997524713911911105185832615599957218394289839413643607258362267811297349910924108021927781114617890188779991039345283386591179172483432660121625132970172698227022271310145729347263868270285317360345741367049609209521600014878336902477916511584169770372511588640804003400788165281458087317784741096763513677671822056246023753779243264387638197084329325245428377469842475440858808208770484361766666561688588777530853194279591180866311023147536765887862074228536836502880347630005376246670095891431215839996064712771312479213199121170591039080141624504893207164674520009733997404268401286677408870109525702605528446455788881426009055004823244081520405860781098035554553818065538475420458208490621035160874296001091838653872681486971580201072604382813242394874958781568780936981804257167412879404306978601837927736391299771621929688044682221145670110500096264491623599300459412900525715554417952383853275440452135955569270460449993570261543782129844662052615605446493078319998862285937200311039522519521689698343741433458761647120716660901210165567277186690760389677883676849590312262920342766533069230805864421832715667133762871443973649040279862119363450224374328258718329894070161273343899331682647912032727577999592946872979409128763073305819014779820783549393139539719305712915973448221121198234589338772003130097645048212754844376276610678976700398673978870242025377189409451345639617526598813082761463562833644358744525224181861121328891778801000529988287363236796018000298464357751293461461582137259999483263758065003338723518892725297846687408044998975206889229979928338726911763475748881504314924342773733524828191640396747233562803496043531563496442769188767463493965873718111396912849508852748103203096784570945193644161815095397854470296710272001478567912454131594463600863218301446166844076461063838907360696737167260422564412561526967342888130822879026271423073877712994545590730907520334218843862853636126793118323457558670679033805026801281607748606697010270803437613464283429829244658048617413243509994251487854217959675226343630882686321883804581763028680902128451586695951252629335107197343431257962350270710786616740307452194548543751045481359628191940997964586599040825596352911834071956541859743839712435881541836297018372259075556683280965207834091847575801017659954760901344431208937546572257717899039536879861530429733885263101364494319766958966767865675220508510586349029361610076182762631436546328751549294593845122472670780863379695914373244534762573802722811008556757672577969426483946081861580118735271650416201997782948115871842826758221513342302663281928612406987128909463371890732137315995347810852245395448694878396243049442293746191380582224535247166171756036843372509204396315109888746418929634076737143443719022902319271335718462578957384749832510303607568239061942540914293295753566574584616011762706203325886183004954989178438468793357158000173952800401813391899506655114224979173666093184165727158022445307646607479511188594514912284566412619975552074529412976761388871532593064022867360425488173460985585469618567093169174247700564584401216384355268024505822824887192173372067005619854113377323423462715209147126015296796238861097190820209721427468948722276427106450148699105032059692606662940493140413814250526974709629311958191904625967180756513556622025444219455113600870593031943027139879798380782308904913712267491354043234721352162210109229734730278667720629443725142647012464150141720887348356958341066384791442040071465516178263917910324233829000486483292234569025801972924497664437573537541352984477260674603193286156938426297330862628296185093667426272620138923379672101742969264676196963217297184951808384879982526388224222228640491441618741527701865855902360601132302740917217796194304210436373070211183177617253373965517546886416766933274580923710214766135445740807465051002429880227761009645251088005430999919114879847797831485588365896694991549638986037803799705390711670400675859039565270553048374363694272634699741529667005808992366245963626145871703141587342589019072906449434154794834994643032774598111505120169855079767633412884976369681995287539297347478429387871830220302773836017202296306095328072690483727164413969692432149378082908711126894529860669264351714989551462423034180048467122221480193021576014608554247682321424120219073508877622398484617379732132289099904758806215288902200856740260479921792182171260467310715047936866974742700953336862188146506128215326226690483763680925925998700058925614510100700563580076145201030630383747190427628756722846452673325074264089961976667427444675086800563191407214428336219415051259243805897838243929606419285355471542251666023489369371768746210837065801142853692528767876963521632065334442742776912677925662680255472680411945361962361529123831152762597321013676104399318794782055857243506040952453855064431096538565231832062357479716746875656974357501713699959720808660079756809051022266800996901123392060166936616378509072199794321315783645050532111444058572367511120032789943666773857265732731505629243316370919611286632915909488518001747547752145269792992563918725169810327799828109154005345297548071900174851389255819973543196170008131686661112708093680309564302138221493122438262342393660644685529345029465849747251270177056464037874421073547089651679911042133312135603228269327521576901619492998322867129033580430675610229838611959956247360609439819589849949681260788658924202402620333315290270286645036539683890746435462847047474257095868040512739907164932948352652988594469852710844058805466694144776356302639158852940906683125068579149349615961541068256888371405058998258440100329587086317989985080922822116911150549732243937466881049880980868294553345097099690426761835172160150611067289274559066855781819521421349272916123992192446968381266782667143301864442615448023235089070287787873979890435669696326678412459347444052994959732036081359050629424379474561595438110296189660338454730284274146197433947152040869191196248752229610312406197311118186660668075143862724101127701282567524314895670977139144512489554747751511466163695667989201641019761472769615267309602132886621232455158885582196856696903676536096794220586009048654920776530089155984525671774870223750579400048171001954331390488419570284138594615930037674690650335369025019356311259472370078428331806824291027164402127315685508501111346269559420683823041691664902160657069260659930592084268412991374672861443136178156017964136917742114138223556323900339054491655968150709268672386252112926187717666093757694058181369625102688485397978435509427402063457974880734017327619629820427663244531281098158693589963798389886860348998106686692712851230860179300786073090888261642464969113093681264903260215830691454173069815748526879446670067308480828999075915204789400712065720835761057525717696166884984391963451943554098986047731051464439490300443782996853041882014377936089589759500114234735292576449326937407554203900750887494922515266644386569156743542405739792179846381407078340459678096437141335495711304001103123643830000335382080893891861255696985205115197462522761442059615599754420556315242676526811857256674655820608505273162205527725661799393303301408978153165538072726226541835969082744925389868758154075808005286395060753366784476852493341738703941116833228313015878796531980551068131899823811554874669290778784579993075971596685102713689331344237117168181780677918202242901222664406935456546514143520441596008986510036458177510156465313236826353538215617784051960388948812601727570802241719908014495049672949354620243792230965213365398892224862244129542672028543232715034599295394621734107409463537380440582307796708808476524260544958832911671970736685843785049220666204650363608536040944407700322114207011185977721868451173565533277285100174002994733063915683159170117586733541262389012225877743770682675366056724146213033524674928333966755724280211219523095504096096411893777088897014439927930075094724659738678933924046283974295576794759022161944241918967910959771238045684054081880705215890902739242120635080537546478501794595061330878129612834937645619678435527319919599327336308765945516530036904084741367850214993594229718036399910365909674914901461624191892020230934454540864334014043691932412665056132677475702471552018470658429643725544585952270843693716123762521778938665212678961617920673872550875527883003866565175502823148452463884615563880361542729417667276623018041123422644780817189514784949894545117003545894708152906280852990673684043145845648410146155822105003128107793855999033515009569061681066917551623693081085643069909136780137711759988907644714144111000114348989816540697292587729661019548763315147976786787395843059764612635413588253238928897260522073107266577211597149523905405498773246061615751870293382451971501646866512746431541151063608264547651236064696699703867042080808967421973278499318489221170641623531485456247560599909016789028682706595415212200145782931726690772910199861216267892244522047353001866363885407732903000094918860969896606044819819950303176730645840283023954947092865416370037023276253990514925490527489578746937093051382517993747338886986591776420229560891384363560913657464286023932389835306342435247882095034963437720350243524387026646102046721501601322467769263111087034262682685840520254163361802301315426630403723908191617799047032855224927610752094684882299050906218269751643620647991009288993171518423849138201386885650300898834237302631067212226992709140440620766588275766874630230008980487445313694739402211690677183734829819402111740834318620391613135326394868126069459659579857083052851014363374204644424822641455187554208972398424813260382438635335268288156681013027460269132229711376012048292084449855941687433087888156865230128025859102827955772398359209673615221540786565740620147538398702743421970057120867354985921259118981850842093366388613393624412911807660574388354229014459235325012723105457887681169733351253909300987271254002843822358171308363569884091835502021188448614717093800384572717327077887182857793803749836367787725544925196467196492407371750583248841171043380710720507109220780413639522284474748719438017462411954091017820801209045461033677764146885698782799988618674471076692040323661659713722554706316349445751645631629159098803270280153546772834039023782370217066545192577828507282227509165632802951683192587776709420037460444093909313026949516893324668481710292873498971804333186405173250521143177500385642208818218802028084554531543720711872126177118648436342699448020274829352355286359823852049524845443392880350773131802122976891581969158938902164411710248054503280829493403038752737686958064201373543783953655286594567974977223548346600381412888399587363593256190686615299576190283047474054162842245949147769123700852656366084436777473682969143838981830724047880717591240798703948142517472755917014891210610394755309870151237241612053074566041177519294255023232164436747125586261383636411401897093457283731333158473234359635960474475793419174155146090354335956963153602618120056029597844663980596009876989171926419728878702982833391147662669511292913591419316404839426988681210136658559749021745143005616250904766595807920609845388640939734881934505149589651487754129708692721990099864202991670493933671223333496674647584141422695582617980152247831147862531519119378134480029449327519218589178631933677682853018166860668181437707665811603577493899178388016104729548099525750538088268580728500619387031133772990571434385611694269312783541618225337950762964253828003046369192190669548384328686896908590604958415087924698230399271466838443982007659410315903011136405006560181265352120090948243334142901484884162957936042665860586430203278997021683805510930799317326344636023338658459659846760458567625272158186801208572390874733009524559024967828328111282688290534063656927405617864790075745674924086666510109103958186383136443168042860778383673734393549950177932874932205164471571209470487904682341991111002527935763691056757671638332767983844667852730331598420192678016882226659151646844361207916196968901180446917215161247158462883466175966887072574901519928721800645087864789786832508634933906800943076132021912613398336414359830255344534108704585233015118997288214947575503205372531468860972438587176355760221888114084404542723871407847597503094502884062309485764205254595047749001794684286468783193144300382024939425379300585995933019145696457041583863054806805800722910587455534573665343835163390219607961244525252299898972974818582667228989248566135700840971553014393452958644504546646638460111144618174552834788399500094425555096529792674789732540337803848840231397861413885279813896448287534149507914553737875800238110590044376550904573618475269594365129557145075969298749294446672049892625549928022213062710288440245940245338657471974736439840935389821309970290703621172634478123604519998782357758337388772170806761309218256845501150727148403735567056283786769715877894222750965273410927457420018707732036098797290953393200881317797865476776310740052680435042374647137114903590748808091583768791637109151783057070814816395590093130022327613113904811695366504718402737822913906825755737256630474639536586192440653125473065063132718337238415300313062916240558509772074665292327379681742501428577969460142683566864884070969408091790256522084978210381637761959739963927779247033390143221013131129889231508857772856379468735030815376454385293556386269450806453860938115729065303339362735031375812419359338505607230284113000857524645308759822067067133133873586147588813449094259517189661741712290574434055901425598716803416491732796503566322586491771665577869703543391217733582175690418912300407700925543267326829664706854637389025105719470750791888375637810206176288247922277999254206356881046230557510596988956813442563754788891732943167288676474477873837081821703592763826994508633018803190463010168061516274237961369197341413033115324177952288693459578426721459432779804292301412369668617743584065817515429769815766456505102655352152721826764356551210949919115881525910141594673129618601953601168379675415145554838550710509367319120898761890685153627112275474893635963810909627517525196541726106576018836398069780660846353042696746356354891545722899982488212928648443597374783299719503656381841868148595963558285031781126141262455356132221464657787730384465006461435533787063721167049178566151852203179024774746421126952279440280466877087597500747220725869363154808904604853097469514396385549417660260903042178829007281648522896525406733612065356219616349351513500032588654424100809077828457641894331369674591908871067834879761475071509642945230994461670766916914320066066581035980072735719429952933796772362659615821531225203253938808443242356966280049290618564963392506991980078888349139300758159454399830581791519681907459899148498174619180891032181790488259753009158000198562239290728769587691912746220491228328548886521747797316750454960758606823274936971003745068739486759370242875879160977888479370397446516671047355371879630768640859542822359229212231419998068792835300220827254752805211732481313446074670644323519718710099999141019664510521441295910466946182556494352114950360751458625904630298679503845154340176728099931448192352125319556059303263983067385624854688571090718154074022626636294551901256892238506699401086561687208025087118676098992334730295924668368062562792648396934222998813796706925595248367282127432760425125303950684137305967691128946165277341889265478660196998872839540321065712402201051643979684852104780236396395441271308324309414770482858899492363127723724181771747378441560204574667494182206501651774994371743247010934421566083939136014553478886188814240800460891705062207438406978561823054631892909995213303873595380413395584063097700934933472105463873473741208093248879743306327535669090481749674128241811959172365212299567020534174418230763755218611194911501234635126418092963120827784821033372274493683311834334362578833548688951089653887603729313193801226548248363145811585315910302208408124806322485393438837841102672310666408592837592871254764451380697551550041168954512104131584011079750679782275124400877083516264839723770206976078904555354159121606251128867267890136396766767685141714644766457005555015012840695678594894032939668664162730572022948240949842223363202401504172172800989464094654783159353255864997536354987287326777454514022193257777752549220604493377752194808537359781563362175496346264214300068102986173050462691413583611520114499958679477460835100863331998232949210613652363096147753125963989662814611913044112914803960025035197997525175898960852562857331848179908547694493965087650543347331580590387380824565151155267892982415677200436160954237120141350033677952856053333709749055728149124240434527149250078413119988712060372204985719328094969571626933900263323159815599552143236400789050525747917255278102527830537524585585584252244336512132230860681127217059409994426488327388678342991249967161563693173673070369875940887730850676175345588646442837381589372637510985469065298877112179526341757858055359470511034625715868033612546422919062161271454955324135074752617564385086434214229098961174329918129305256315582045401556006857147589318435423720015745792033683364154385467308481875857874097499917505051224990063867632655151839649230717142420667716922047696165513545325671832072220169107618328164720256038506705293552810898958293708451746943006324621406941531377742804463380649104867205382782555382237754358981864910350780482294418619501796972145709366239968600776473669234312860769922701627878109919744250853401815056696997472155855747656279211434986301721060847816187086670303750896342858678638447562645476412783524972588435403233111766571574995432600183110421846033861586225236733097551562461432398330143461809836662775287609170868454814846406940011529510297187776442838518207951597491426559343989687831790678429220099767052261905816057915367386005838982320320674594375346298019665798787741242653468155020303985141212229277541043363005237447638671845980954070928622725481557360611477848953411594177165655132171344185357494589202317061247910930376454938706758922457318544121868445841421931222869442118403659538292150828662050247557299990933666653981535646900844145442886173266457762622233050346909770946855447190972568677961524097523097970568211963579406586494637396115345085709412080599535654168391261572056611722605924637138029156190630642670126516223521376616452275420761691745294953537633319225627784554044909868681310721300826399532090148764148278810171075883460820543464929451537936831301624993206155133013217617133939429181479403682930035091629069526089265356389844668434126297271018686457122611096937552394466706392602171385135928461969541802903548591853426476748795330084971048385573221877487411728667571922091683123391143685991102584798836475209218555332546300929066384491200178300812347636946731048878471547014181985855851791121497633357400623717731289829471065129907236802127920594458979018171214899052959318796893758963168432245083927143514824772359425643958337594688489541439748196440345150988599402945986451864903137366804770662560285914625501519819875628096798506413064263713931366950861567338392035746371204876235512759682121560604953581585768404392847529502529324564590921973964766252655639264369424780544251511573042104236352775759556316600813203896587330963400662281189439722873341986225353440144442962145713358989515678518825627325070308790646422239219684427354195324193864822300373411012402085530745327075417491125526769847540988914040869401952418569784175351933837615747098119425851857098980263773189671974641988601599629678217412527190546192483131583976957112036759950540249512569490029760004590505281137887848811591321681361891698026094550954233761745147533259250686833337396125131676238897651292733465508041504524551162632779526363353546228655256954444433014796793663087477531674402020585995146791852160886350535995680658659451762806817160679931173991450412637134015031030154579635032301175992294720469474586685679831200315384959517518061298000462091102370654261433384856019713121285448908909855117043476907798427939085950437481302875554788733988810185702948469111773828478738270981057463253178173426563578227298393275663824593437831352278480244532063140832961273827475654727256766119806332247454417688581018886382850658259390529931552848634540276410983811403365949875242070468757548608362777094337529020375691459561423937145657874746599094206679136336830536494514115308635199903275509008860015162019750526245322773922614916123965357872067809243791363133285238459105596336904860527703025395571727350955645291886394246328240772087725398895688156520321792261860837330941189712158127574886694018690918084727344149053134034494257650947910752513435988027382003897319616246325156001615739513137612407743343747650977170603580157034915726513726599910491496601561433387381941486602501003270651852837915076889443006082576988594114552282358071812631472201418916183272451705164562093918395918229686104035950965709636452335376770520010249907961328640267430845257329410308642980762703939945669994679102734411962894534573685027695218577220690301128461430860484186190197563208435661829972356310624742540077484955776537985423919597625361122004676580783224363188516740236530600809758974431365197270588492645700587447517984729266216160377037924446276193196212411804750546441525942745973870664377095802303194770401394398703924125485493152394418753081257698675517308319561168281215199959409144243155395515758350911853477154377998489970202471719384202956118257977866303712452112133014992398608061325862694382374468637317529764503864032021850213111562193938456452312286225539596159629266897680931792164470003775551516525514410986937118184412640208344850951417701328738699636639010659556584453523000893610869810759270758389468049090330100329808985403702921409467430911419647182205913813000148791458174572481939913436296255746857918179481357155256623551919910207699884692439711661179433773705413585316913369315299732166105795883216224344555086817539850530981361595884432053251263279988238496799180450093180893641724296666806496779063426275024718258192172357260241326237173238036056110991995609706046844350365769942765520692411201235380959464108412704527228132694255562501677665068762255827422785894802693098377335196004290350832755531506431953487771251890688405391303726598199058515192112571093468215565911263043765901246314113766701788956927296795179056835305823345334069623299052496301296891622403842820669513357653402551969984926418300347778410330090268674158501366373453937546325994151620984221234431719762166114579820819163997037629504832680078370743051508157176196777339832522159697797083535067910767362862386005713722623001348314739594915999282485243644238417172281311769045584119732384164703591096744380202357985896732820597830102521531916111780005048937090209963135209711293743548641160820727814711316305646378657573436703535702328944541549722331374359399897529708263072805058133349382829419934194855590089903921963706840667435644587659292992742264776293439039317523630770002241819203996512873407191666339894087366970128860924003724341203788788452187362905162605187173793693214549724433453948410853869808000659055588821733082371761597458946976207490581355222070740613965325520789004422194468396243249101404095983163238035661698711717091427929947141238930677180471694186675414427973700972064520077334870576399444823621897514771748896968668939217214861621440935327013740958727244434343426055697547157547201873594154327521794589415304618239181125601949980554347078257426139334778200665278945326510645812503040209891795065997142478812373445158694973097520650978201410286462638740026207825238903512894205971562365554451492654457686621846462899284521433303173883593176001294876237436676552496895627549141617725079719565149987096824413098192750919649573759616787793189232505759146502272428068801190243313132555240804065291685072804939539686579175064857374247747940877778781184623774275005444015437887350338826895821253884876705583464313816804609226822506566370529828819092541964477946426113179437300355969557280375555666005739871877329072187839212513088092483118747840035224623671425877065905006226868703363420605440268106108679227253399557621749184455553572010149553463283693805976203175131981243429772256403410139432080239942645653955802136973544748939750693601571052821164458087959623189596212778224928561359547390686649339569989676257019414960024446301062648174186991606540521247634650953986182193879799944671102772656226858484532573465542794405815083302036693228315618068406922031708476667546422150701195992942046044695841884167802608908055854918145077356531714348791602856853071147238962728278976334608188269737885278633829926606288538187313884949321296824237836411395898799455765718575345212254495482970870419369513128934261005809155632159602604798680188599785437692795183629742211615111911351707703781510239673490026289690976464442432198300184809046620177071146254425092433954713204334583388442293475651717641936174694973233074443526375256541629969313604430051896319250285068222349183053035768609121965979480687398343239396139573051489448615056899261858070913437730427651512567881988206259317850497486040415991479431144757059088887539238507155243598261015084895758169203760425822049380550146935202179571401331815606042614456639342442847526634184398078384116144484491135160904321347642654268404458441870006046737037945153460420949042076912489968355730839948649669482625752099106016308913866213030837735431407407052316570062382259238478818815075181075714273023732819505572970817632199951960620252909876614234537542739101513883089542662432854287163515617379892978713031164574497758032531523633179554824723689869529024412779016951414354481490941855228671395297170162139794677813605422444524072759300692649323743176492549628287956741191615673022443738998875410440713930876398164726948916327166682541888896587101428081633845597361561077565619038468256077621500712843739488780636829404882081513040106382775401821349362387577536932683599016654645781020328759191417085829745506045829447282390782415081785077980676628226403884040346537236256250863268241942658909665853936664967897293788719404355281327326052718092307031001269046933875054827437339221594820085400190537646648480878290127372940722312066680235039291880732062469022095022159570945554802468871420216589955534708858982343232711951701555082190922654147219258124620166425133454424235757442699843290697264305918894907069446621503302886604882324821368166638821627382758626527906716587334563180390544622979168958783644646981610468473830075819581739542992688175077767693278076378776116015143821020749363569101241984384847556885930961699419463939907642545014593924015361908260083568465754035544506481122672397041256379512174388115194353161701411986203178144244785418193639336904064953826929212242874700959154986618780871690958386056892963614730582006127679557271023238806453579281611208403044241445041048575011207891700393460485611309987890476644634325115562518058506858275729046895114326647365569729230394770248784982615955089027964731860868528742904258305546811132929651276294387377823700133422667599706974567259291730128006834805868618089614209073679907670324435019087399778579123088351314663079943967508577700997416630245029825460400270449097583238960758053039958049443722335758210194573055629666757788355177252752077204037074289781016629294553365326064226254860350614204856587735519322236846601104949081697694257004338115084623809843810194326495472429581684855489347375660691846447509691420230605348699015200417557242275277676392752860390011674525071481727636938528195542432861234030104550151431379776640937951922921683642371456102500776689409765179496082395021872846393920750571899022482010439761313443739040603552474147483942598338842298428038137078356926874510213951314507487182957057115546329430967240781517010454407278253954823603755941399089569683888826440952265833313136949552949440663144613923609371660024303243709042233731950997932653118777702073646161732043372161160193411161929492575210195754716675688995262977624621203978062095341206793533263933728601421131875419381136842929693287916367282495656110368931481896888550898016766689943082631516318775638846565223421175676413035548728129514102388992574355508424883511822000789638644141582269656657251661974477434177024418157469871174183556358519218143094958317983231681699628512695499635061319327478329710832715370011769787951213001915902970602300757989034448458274644811651350861576666643134614083095678316568085875708377069708271770037303402453802246373642602155721755371780576624265738833709722275878082104753924195248391863814676182266716551964932132282564191177318061548412571065184634758606253100346262500340589751394621681434268126827040746698154953186698233614793215053232355661262489860187769731883844478486268616299265269859418074204261112032523789070022544272342656250269024219335459222364887492135416278566405587965688506419302791332297894424644292032776217351101545680564413114405354020673000680670214252194557083329448968661875720698189507642000118100097373191018608759498905513702546467507056585823067590613699439363061250508506781718335803422270003450965733111692852350603641277796853774159737753408256654208197774369506769420148600114758379571329881030213714292417334977610150109174007539100730547795730487248340158265808778853316656003366150013317927787885784885755402970051668928582217900252794103845488945940706382214082811583346144352638821259537140240074738424889185400390860711724260407590654220720981866835476199264684663395779555695528534542644118059081267430568145264594169623659851830453275906175091335269547845698564918261498506449513036553903093248341332360955464990929337784941222590593160568011184284037970090753617901467838808118899864553704629699867643251388893472183205133950272188901790695067325988425459772814989904775334877928646369504607327077325188386748147536453029230058892185572284236582347046368045691955560192242872431549606811280750608850991738629038705973427442199586947714571454041003400340574957515706547188563793776073202407302518408549980021902963685321159144750980156167098598499763630283675013518414436685998352210696851757045604019466689326719381961465293775784455480559232848632189025080108007777733392684025124123176043211661205398905198922539214574592338692149512342590634035682014727709195822296824930043079054269287845084464784709817970427607237502312104391225165762728602240625042406505270593421478298791180572769513176045253440901625012310515706785226702823631011608853038861295908834503227535368319747549057701040744677051973450219425708019281395240195379859249791620466255733492208131397930508687483534045130490400219613543293424181639612296798978744360441871011246465675888568904209687399277464604223170308465238266860105156096656885192680381243788806948883721297780177734149635631971066941409983155155087983709929275084810438074925416359432259887521185332495427977833412774074968707351555482480419743678713959426537979508324888809334095945418181698704721557823171652145278718825688366537988003257038724126852416923226750599351101058434453866256571992627817059532849728185633397150973397277224011660360318824255103682203921390243364515819587706277278634372669258943226757364899215194145522125083576277863368374295210525845330574310013104231338402538175342794915294555332702340540515035050330309802036927953858853461910962732950373604155372754418341079526343819353204354728049048964036828686834885461283424998799507064164051816873134473428755638389024317586652468320770067296774341879811386828509530575454697835136675958486271145172077958604426584294470315239947344573419074966149948002937783856647659339797469657518106222823287337606451779349499989312763649255281551788342820687205329856517810168751683353357923274301630355148575841951814430331358939258962659741379515487072109367872264821456560731959436771231488991429776526956545885047150978772309591389862586851749923136636894005264771871255274684968353736168741504391468231070857617153860176159935685956165587981406732334477196594679822248221623161341025950081870990943012186562305147896397179842060719147871710212994082460698803802963167627897373356738723811988248576028605848247036700513591868500050975726096509933337666124543311197153513986110123868376234648570691431362987850987576949198472748629999994414870601005728095885747406765883045248541774184612679974838222273700432205580248379553029502298665699227362644107974086018983736948299962764437341325271180814251924305965119705651803288699801008634695447438714747855771457313894863024242894949015612600162137077984571824311547718384943113348461541275854387574215366406851393526505270886089078122850098083726926381760121392513630743378036788546766741665399696599712414646043036688030251460801013331725154009665207629466201540089264879560524521492831221641857736842065147503803943688045367368158963373754476792640683106312380458471795919878603249154577303607428030677300096782752275262349623536674988545797647974513267472509501988492445249105876567737946517689163518285900033323735875337704928299054844056367976569631773684709551021058213199331877823424539552805970339221342091494095145560631352632343224738865961604427184945206290489811549152426298044257515155492697987655916116472072245536526444889506923097826086970760141484407661258264562769705351788200692202878216742902592621305175910195513366893755452017956849889426370847224624237343034468069022298708472274271247629986411581319202461588346712019873353820367539792547834801989995476983874010388759385477685141760951586274774454273260642541268391398241965981193991822260484762994193881521728157023836555279425458894815358415972370022545896647468058594578266791402846423432191093337969235335293237919095890235508700927402961862154060796513945791785853676617396401474408148304221173922937555907966007423597164133517203254054898594324192228947270756408897126803756095521462552027041217408376282610134638104041939717221127525549030241513838825166354079651949118455763324521017198181106554571909831902119447711190035553356006439796998432306834246649114660170769717761957426466354758849704025788799298342871521104674629872304122368492294569686105169144075138834245163087801408429644735365715355780703938695395135599646932465384145980068520614704136419265302817658355651495755704823033081354804359611302461559345407307078672872125458291537561097026742119904149880445873517965820261564194192852571081160153210374498471954102086440848389408871679694004328345068122740824357829573955531242673186166923336583989904901074887281968872395451431846279053589505098156835337585122376789044703295940862516773404201527614058745814502395537436646249867522392927861123660202431228281381492410946276210049484828082129112935976959981580882331425555628506548789879022623229224447105303229430120786434120467273597295549509264926399639782753580627495899823687088665058044777145784105442461222693421836943055136547655985377376531546344690885159882407787466900848169356263479011312193130646057445156849966696768443271121586868144531699059343575388222479099920658826866678567505919650126874564421995086563835993121307729787940450505878081590890924464360297039391052757880137076660711117240110293123907190522244979515702037595110020137472792345553568524960350702081304073921893241173937633086051138508338634074622747889852421105052841689356205361602890458290291565724966155722487051833143100481914227183145571516157580507147687334069322984106637381447889306095400907392497127494094791542010475271236316303594616771291172239119128860350173580894802059153576422573410397225842003805850114845058367346629911493596836970108681761803536145038773030039627423460036596429422352697148891131034204887129522722123426402609310057075755362321341677002752192876024050195669915480948497697560657352139022190782794578966033570911288783130765160523825877152343011404865734275997206836394201936240660439997764054218345776415382652194672513763389295151384413152997706120885184128593796497039587560888738294348530756998392120640460635881647617502338584472395002238280093271454239445258855805569490151570133265025671671768857046879145723199454169138959787478362139888714093315984564073640676573134730561219439326643746502316941281803438647558068601894890128726023991282137199964377444017959166485344707813369201885548498077705382121691331786367554652899848412378090344772625654662100831478538292550749094588072701290049447682885728439520000765614382242805774109575108274331803944367116892349875755669895973310411426135249686328579335904544857347935573862760922826819219029071543530154948531362051136537106923866350921872552545002554001666597506397345587642285471096750194685005269360692554311693342845197810181473841745194259675626798254847003872985975189835786043047555207671008874905885764818569180879467113032553870816753803198781828888035460328452246087699841873879663177121727083859217336940301827440589439869366434479312247192753293420313522010865664859634701016902439355434258529317048298885459682814183523191234615257839560235984848939634298774114485215864096947928194699573710455907433112838053109738751614496654688759711808647955089105033244284681943179183836051660947328081594427658657584761047073322792944049884045534795289426077149858075344616039010323153910524815194328554593425437312863621814144195063222675782558710833390436797510703654882909385221990565501922007407013621988672731165423810294017878729033907362204561144731860607721705868385207633647589118540048938388804083500077914873300608430843883460052502910185136692184270062486521287525267491336060113002780371272414567784758457158462920616360861090903716829720932028420899915848627419776275722727586019712558359563689826819368639500158655422798357855544581482959446865327274814718499363735749129637666066425077270544934323791940950985389226511649699086938363795346867612418562363688007390314365280469359148113832404066936587073615622378288841611589324190551018200618661972230583160604379450390407679677034495093289038815881486658581627793726639696331747692952596501830005028848252475108433819562009190030310751148613629732552806922967390566990875993426756479863554838952536914639962001334275588981802313567993856650763359227472269195762513017862419070725811998683662542361750561098052291932035031288402255769641374302286371374058235986985739242649442771083717684793251208347878094858779057499982280001042916926191114271223280793760255304961306115816209173197527017083152804391065539208656454733537478500991447699055245338666215820322064265616178723593132982323258272957370213497848777501805182702019229994749471425405889452703290213576579935354009088369496460942219179516476173086620399286302982755347361531539678917195775877254878299612388648390688777673544842740255323113249096982024805808603063761338393337057957521370006987786339723870988527348947550939534314494389964886647236359960424233682544230237665701049274592959691836073653533899844712416844388879930416022943509801034360109262830987368287769738177455249799423342161097442747531618082089612204610193904081741372979859581730564028282822502912872090083304669318140941328556138654570211657417061770438229410580348575584603397773032719475511992295723402117391520189695645688872656982642361599274697736188636439668815940474420269497932607698689099983314420313465113104563774964082686082176997848237549690979721620296443387311482705871910699900614348635184339301299546654918900987784835178923000066939604468728612123629866159445758879677313369440694192386629696173189840352463135571995551989715286518332091309336242852113077039682552396412394744375976217338385088002212735656358288879723700975125697801708318661001945616854340741495744549357525237547579305601908643988107424163168558275123643291080774651161444527390617249202355914073408070261749242861533176067348192481499354093795399410009316393991046223440353639444001141843431642022037124227838064310423520441075474950907588029042211488464134827920144822412344285791798872196861109101715386988840621238809022656580083666553127837532866108811579486124432799554945942297178767541352244508931742726988267153000630793024539332773287487791012956481693690899384203834428335272389681038532791301323169965890463397060455086578852762845004704226908546021779984627328062666896848684801514274967926707377339389800089503611933024385847617157180669067817734276886914977584413592786689990284606756587808104051233121327734099175046591841347308265057871600855503043990300407728102678875470346166654376156679768002313977360425102102361997532218402265988214154875111516413606988397574411985548223726403848872446546281559463162885124907705746405005152166503749937151426681098498182667106114141550150312614569432546698298320928717814118738368683190437654164420238421029052664974951634122893231388149334656479227168933841282094033066422837650210930144257094980918389362843301583813857336589368796527728391007607285790945993290644007505689772405121792828366049181809316990060133117872729659296132863526930999455242333017361140233150059836841606176868757795265952457439853437447899749830752363924452168710812630260434285573292349863041843591368102064869538024361517756989587528419819171090372856631006880899758136869017122699693526879140028206184959748196566246254929640629212815673915809397797735795799106270712345199505315851751507338518571961005931725486439029989934582024178686627792794243120983009738466764936470272665947410700530134331747219963911917387315755249839307584777021854626848547603482001867362205035197308103242732422422273930217329548869382391910856641835650819886501740024468152074705383194746976480379153455100296409375290335419508618014161663761691246740667958655670063385687625573618711799889557102745846393949298800076684030889882277220379307717291631698691066799876829819240350223659880155110602310310653801216736609510704901508468799744850943438417092492132632326951606969546756304527439107167606105915353773458889067350463704507174237667262140797399329266887828931118334702376086722297613277767842234665858406109664733617057935979498556477349815051013335945013816578765097276086145808854567303710010160260893496198865452525440515899176911047743886459031135654461203273893747156834739609229322645536820810491302244136706865511099628042554887931865113694475020517064861429156949971851140926258057027451879579782594340319429790655285619802284926620306180398270947256487850506507876095720731959874350516632529034083129409906168480516058464114394217483158932100195807266598645517453679560017966713901184363157728967797603115435266182429757029060056250520675885852719607502847620340809520557681374196107210673147234417917786646953165244912835796699693889469621111189195298506113837502888125087856126520813033478552762228006967461090099625207042415442019244315105021267993980295912225013590178076369837354721688404664816071414800730539971674391043542002911197601571215228218583710452212387640520794035457726737580957969236439852114742587382602185779438582870621305859279790604348941513962267230274018231437631208323917187696205698702650254565025940091360926029145611486200054288829104692996205641273188899816132705459003862262555747487968915823637155839780206676385186176677420111463519842119822600330519964083922609151061550265676742723882615566151619297347926438459779683470014078057797502606172254384688743563465865135345476763209564994450313470909043187482157757421797768150426359458338952014188724140108742529368803464389726518083468282006356031557375318793249617140499595969869523933238412285439461595417168292283136000637266332391130092017426785971179752393286117665806657987039991017843512127645023135295611814660723382056578588050909920879947340885439026076830480699790598004087904314026813362275361468656324853468673176347882866026660018738186696582391580436900715546973697275494446932556426587448957636741929018901257123094393931341049580799396526678026959601818007859101452525294524090272885301579355303797632037669955904467214954390093263720822164697700472848568438056667468574172597721081458047326816935596999369991616282620499315556812367513556545679769193302835869274347551912829171072033862815416531350610187814034395313693905506223953847955973546119538764555921671711584018090587217609993953325571880476641825205805831914307600754010011560800512330499605182241091730203997778710019406752297126599609704829614568184272809070160148379798741470700298071327209375820218812197381312055301189878558799199796804113323999024446563207528308990698488622354207925075874739083028997552555326460692844153682724216625079574971242544310233590430458884937128801198421241688522110055612884464378797047851775944437072599352263232755294186525149344997163641887098117475683198255257979545510044448599391915702185202510163092302315209995681240421217602966279082355231529268775115420814780140614126900949790098445388015605160379904433009053135008542496995350891788936415007533417784657175641435491137723510867015571847388541591513159809910446194769482464304535481305101589364897254928498113499962984670736454877326313206614602728598769486219799734481284925897354582089564070984787711982431972116680779570537512227407993984548463621703026435831711600967277795102586880298419715489279520289071424649010241510447488147784376659899591103375502670754979601530197352000552909032789293720322403795090155866825264697952931442809672707499222228288051957658788970234126354689963518548805748943211193890727549448792932944882682904142786855984151752546751989110696922975403035822382611115153852558077972201738493743988057404397889870601547578489846813470363010716545400813689790281741088278412637564057795616808298223111207024371797992857034810867412306846133138022283299488663044672249442793642199525849011785895882801195725633940053972876654476668830250355905872754314628788553400187440375094307920728737768093771389626811510369383268236021130273084340273101982707763559994206751043856157013245822457634830501515670484379701394915304511758144750072174355071926174906558257008079686139426034871588682910034522233306033436048819862625211011190312232586257129415959562019225691496271766652984971328690229712255715491928089970118610499938117545598491010992906933995527686046478741382251369580941719410137912484094923431479705050043527107305388209013416336845159495170217585982156564170028668241161376526169550996498538685118439148406468368343678653234324000884517310261830312024881140607279302078145338002046487419137787273239179154648414902483759993768797113400946341401896819041166643610889995875170844665836541877914472543063922179970698213848971930852984217833917133664308350406957536396080691998491934851612304172717948894929920619703792304529378890282070391698362291138603856435597946827928703263468495505980948074493375331790123873557982289070200063693252224878871237850123095229292715464332294613495251386870515177760442519826350625790787945129948400226248924482675194574104544211417321939271931650790462074286664212485571122424910885288931969199072698953062310923999916112648396989510961705837879190005755938360485678719507076541495548922193021572256615062017119734445621553484122406710996616219796526757709427480697968779027592691399890506135257357089677561486965170011307108678303497276940641678653148974826584307142413849404897947762113255975700279254111478155532649854170313681533319001641855879063653060133266385497059966171911854840576453183912872426406920461778391946969388531576686536493840412467294675546174099893520048258953617615065104982456407466696534457903935439257405784970470850145066810953776887874273315959894602291802174033734668475648576488245880045789725961653259722402782946717554876033363320235940534536255001567895344287461482816833768939820666665027782408484512152500321632731015294615201706546287915863473415958711215872358479698121047670325589529231294991834278725160414481914266238815125710265058151713015365266149856574570884688338376737069416210324641044495296316854903487599278695068684298306069761889012328873983319814253698356572336113234313315053947678928891536505280910822964653867222645048409036976710580658420024588025899127353180127210411337312235708869733469132951060066672305560941520011576916284551752468421039967491967446263629173669802769636462981596427778769214674853822079933500756726814312034231558437586828220349973455670935353174162747538645775097792878400119362449393296283776313001955246679683435811406676024525490084484942169171333134492375005575799026620537751071213527692471117544836743461724581410947851317718200630425371276564255473438994573258313560749883996260659909342599842734632131956574911880580740055982733917359570627245491146743785499875304264485604150304155364592409233682998146499906050280584619073122705693279784516133052773450107156571187544539877396573788769717208808334782683124817746379238428518295732152569619241402931665829837908379559162602275939005792560895709881702509611358489728906714441127972218419265340996297194905633716502289516250660645091906605193814361911781987498585545242511090592739436498525325102981428693705115726984797221410064960119442133021712178767457387839438367155083012575237721908397961775042075721655488434035725487437198594025832883492349918706951507918640147239287643074566416784500146947238894364568240627658148744656713907447009242405778496116055640146492663857732119330689055808194284353997121837556234855850628216747508241432902677526486176598362549794410448994582640609351443643087253394042214860493106552943879067563710170559832472751957409962457400970725511405610234936128773748280629137986124862071146053907782159387379768691750002366661272784177913142860423688145121967187498919145368580020900796989603831714854198374025344641220242347339674837715736304573871208931254080493554371552352693078864816779251341831692364053968454674137204825437121015696439026725344107176379384146186869577699588245578712225621244415334028729319272564772440743955768322446737139543190526945153872040773367122540894837211520827774713019377774551806592421937583020284241620601632691925325747062040646455005903774125337784173613739568202197947202095951146757412561132513837518293395732370548677315187769251860322919108006465242685655681063978882736661079915916566642051112119903919805760824163283533036535465985674846992393697731457090270226854824901808288428649049907746107968839890289029276925952532030926809367420953787624944564803212248768261147811737448015434218080291981242730827850505115951158121248390912625213920480937876425027827911883737605256424896018358882147332364552534019627601960943160159419439153783174144352060727162846706217446035841240286471904383019572610681278381808191041561661113217492332286282407167919921913712667239165982632493405829928988508164903823823089253241181079151248133288842652805317478278239602216971649535237776283255956385818742514570335946152882140846532575468581409696101284997283853284464817631073974436679899180874512714640505652127679005315013260763338547164849431866138074797498473105259357947335537600760380912126541589147822755704926146351316691779582060936263863364269724436915508988574728841127589047916656944228304462860131667264872277390422464360855924534945276755478586741055497788421053865355027412876938328706789813545565750085674483362007752661876813975993588505142411836675630081730321293865082741506978992983749556877891824263347605033877901261935029072835937660949745973610986910615525588845257764452358328164434454438661176590623388697734703962345296718352201377940181328628966592587748209401952526098769236860979005821735559715108991519592900593847245378416126812096507024137603509040763442235099350355284634801768525555209587350346927289029197216694490251628139515690686376490001883374608222434423836735922831638350198903747500695573898741899685860433586987570324135498108529113002636413626751033672867819253973990388834155543505599728673858651512208137965306198993753184239191932704314355804883115999413552487351668189716618529158837993204034330344183892877922606029366640821166430707021225485065251200711036967465753727003594302283107875916091145975445814228222574711051982139234622612015418165282375946180069582438955875761686335745208591463227308270238769106107400040410936947088385638164385157632752111214583840639998080661345961824637415719876560487404671857825824508420968867827048815426673442852919979144296858836734962432470424843304024722713921962843170445039518509634993442124862967565964684151603217821774719814842663111654074443206948296026233360328414210557117229573344842083820878579288069312271681150916729603903929660903204233822096315963138345375149380270883766533807007868299537568927468910618525979257053423741368515350671747249820545986855365945155958408497578461046310647535644877685024356858247432793980071798607530275791359891635827712616181572195482820001884667341855495022852440090996147227750399856560383732983730309245508615309722734395386915563401769039874438433191698242933215011854227896382942021978261875359039639488082932015622268463267815691066518888437451003785977846303529980004112613397044127243842104808916276599062507347191542797463688972726596745349546202374557819317320196248732517527471444843432199609495547462706931490436100650856441097486810191993364888506163158771537106890472011054567525420594248291091860655894511862497668628440189643459357450121452760015237670297108426885543675763086801364951389834819100802033714271544759834666314989814801222815469197309153301844279831743133788593585931936177873844625900129336459875798998143993226713646194042286578370260873118107621198530949686395876894301291159858792230139947207296855746180245771255701206924351197786568660661663370354862166725934626470057120209723242723667752924496631265281152888530405116103853590121698877913740726431594055078126937895427922150348555550892468594393150538142831988235129644874430908055518877962027211646532225669914710572309757583486833637585670610244485796941411435721904534265943616699475945295209150770558748768423229887898963545753954148356869025629562849458169783974652503195472496545284979375341038182776416074152062417192486991048685126033669599551042847373424258367110141329485953485913365911676949024104617038678109069767568754320120533237072081424961369631169707486702722909660611933230214185229273722127044429244459803038358599231185930387223209739412488089033508455319397712657735577842149850362436105674505075789499217957036444694774185810037002666421546344915317173857668582368363320970635554242106476920049505069245549246043153098889815995885438034800216623225263286041880273680117424350797595837166973568692557323775481902360054488824987525157625949413739667525380976281672782510540603552604610856687801594804961817019488410210519452225005529546879444035571433312079046020940799379090388143697837804544051444043849807353936826393404622038026296654724583418197578610904396241756432215590589198594161983657973991122015693759153603655622930250188356838133848632129398493570514987947288158918469861409923532898466339768079145466227442282753256387273861200648341052392232733608379116277992296098256004342839172139062807335270966856341280216332691405353122118499803626818609298343908690601329500404450870354404676037674062846361341389644886846872627660741201773263057432570555588215635710882963036869255303060943673103127296789200370847123316286938149647411831645812883642419152973331327235366513783168115078097564376739520404808092756275046565139636006501568205627731753388945142083006820746042921279636020293900340910215835820560911830376516980095726890061964639536175920189847128541393549110831334162755659200170005885212991767986217878882858457757823194833823942904509078897811602683968650213776609256481660054921120911447105959485262033128830097678055695158706303684612439124026605333134045105843209137808988252642454330987723488744157654245864361261847731738761591543427527613841993816359591249199930841726517921718147764204185422882738714848888013792089812923521366705773958200205414302399669229984181460311139419737934804385504311400326897654232500019709938621654771958669493275526126019216584743403806764046364061633930283406174084239354419007946733026972364501915882648645080029659059302494150808306738390728885473802094037522983727896152097382033884212202302310122489427279670805624384488660982687000677524179309555405918059520478116901426438624135494223624511412600086415589534607786467983102236510161782264779605321476629600534172428124475170111186713994981068122497339923006898087715375204206191449532463210123845332781374416732226270123004214750883568640405880661916049017457686659749510860474076372381875619420563146815769707032875095129993937899025889205374262982155728808166829985357900616187774897842524527095171456695891156171634781808118412608575257905197764440307926593079814522958901630073944153927715602466447578245294045203656265309674926369625456215420934981910194466074344823487651428930911105145485527550491614069938475978584121988338534907719226827240530298921785507592202566832886829075039709421842752772359059191054712776322528190846891263723208356948277357858915340034088392847946715996491893782921117289522539961303990694323710825880431674823860175768558284357860021021134480998475375706876160612524256128000510744007903590327309450514869320349157945848290747525563927285449916755493192923675966566338989662854168258088004697069878617529357934201961426127669592673735312911616903272949822888368152593612592447252477785265893750385264190502215796286037346881097872654161959299430386923892296257104450855759877532607443374423192661287869634080402998331562190902711467342204465088542182427102595228562811267607490944340701135877337400726308726373280642250984309496576995782428592028983804521075826608173316852657262692155399534863782256879009830778806744305014932730872921311877503353810854376545730058387421377623932063917104911407065678812875586109557362531958115345992284240646398399433573561240712038653292012546726389516349527300642894059740821944618347744432562699189801049402244617317660264474684371004447818683080378492799860737556693899251068292180073208589430039078011501454799396363258922372982911955948208261213371564900272059982365360063767811648903732285528632400537569319505351554635631165408591751671563161596345254899113514336944736839818995072754536479816174240596457896617899117859029800991367581657390261825043048923977617394578478310317470368130598928676603634011971420057234596308214461336396986395041055764250502499937265007495027380914927380178470307986986318372775211337980043305413174918091959278099785333283938101350527894661819083353287718811460741007878870987271857567084393816143220133175241595988521109465496714447921979224977249436751037128397066074151503609074746740297186677643698894579883494067124154159555062296841756018601702806663035324534723860199941034478414919953339301519388879604011928123759291831548898159289862343228684330992137276534217063937774173100317521164407545142870094339688635457340708511298417291646484370867181846000543090827503772680297319829130289943335137184990519419823928893435011389764175908439152269471043622974958944239281273461170844418201304099065833587124864129750699759338720990895064959972550714972665492860804490351788358013058812929084611937699827554987218985009013257726272873450192253598120787801493595787252500257981974081162565855266912015318324202718341338408663672597712395077292013330775678979494085755376366839725831950059383595189577026146623224816439060068487325874637327560319056998135648378859936151097829621666749566264999980727564536106080070521917304065505569118637088068342421338390871284577416409686286663516862363153651216431033968132908224328813677435823605224151204928515934810102824097093336772938669400443420386792154909408942417374372098391479348830773053674844310132797273495237203394554818462524104945064786005438857411203215230671920060850722822719558430089781622252497262747944477791359626608749452761751975357723400940590638304549489775083215006171031568659460413481046432758090295367617449034603923228669994379242064580433845802992537682696468223884266892942893764243262221707379910547757064308987597321054988747068895167491812085426649269576698695049309135187252456308568852712172674543790270723039144809392097287477701144622068692469659649258234165131809954416409927528067555674566812980406819406661322536887694140907341479712790912445518665885792206194231690577138770977069581316895938542453401111176106581013276605314081771069461134187055200906478766158977402773448993006508092314904190807843036359167493479273611327784630517993769038229069375504468662043368573062612941609282434604630503583656009253288286131027083578369476079220834777063443111635942025908906885428869044840510778014660458391616307173603271907963629898533368713534771743894177925187478879725931836766462450532209155000951509463063013609477446619013372579160155808901923451839212910397251610650490153318242946049131425257635765856379207982527320284571958565461927756048401808683193954353712112961791913684021442439068874785218203202744266586275829016923822152692283048632756825829368695527786356521855344669992492778790207480881001544522197563609558565623399934942833972978790872417175937872008706197687728690531121701680818628057774521721751524503670604124571080758066168488914599708792768938462211565984066510193212559071106618293696289393387193029973784768521292277405164401161146155702615281071138325182738240484720122912175524696916396454575505367652989153811175935967615884434877272190695347294125823080848947440905108357311367023893353619027955916250168658837967384446068725099546870806494536647899180180492914522960278320612239186072525442694942350189803331163734373009263313484086610057090498491716040297227964786589047865853504525353553712185055177521141330108599992738547999263873802862923858895770900441970992087821100941212029338967370765803580561542818449185922541480685123204376337091340458068446539296667767585769428016347876215488450213213552653756336338624183722901798093993270222890674531876045519768361045857674752619633041563295704754714524618263535858885772475195966709103533818709245112794311976738584214654522634072056237902426065023382326430364387707042349939105505696502245016169852071513123992066825390961920996599457740746243477456080826362156705135904317791157039399428789243309134217586863724463767077850981456425713305778459467165141367858427207759403874830067923446360563745727384667102878348869270870093416396487864357018602460493604314385062477717109126517985074898280465591922579268360158422657091028139490266416238725602339662399629694001256922257786761484917415340784608958299930325479627919999220432411189401535051866291910966783552355665671569473576744497762449526191891073505929725824411425539418069543781201729106718137403910976261551882636000284649776786301246935893851864275959744243840412231196897636313218442231799446037043130166683425983429824851410406797777772434173535182074584526994076138142910605264078043433712604156821511676352306466224181445926823215239572789616018674576874266504370923835658673472266307417020928362942093793309555451438548632714654753051721089064617617732039645435506609870936823237089228316641451060823348164802492593911900406469168452562475978816217219334081805384974375637608091223689145665287015327205914048317508228636909061637044022506747019878677771495504006802300565686226462446079157989739655534895077421469742161953438095202505088179056219920278758018084098927409038564322041902362237596007872628349155722294370612822625324184004614712312433452403474768120295079365903259479902238486472191312733480925770542739057331686044845296369601488836196069124794129470408256798639725863016330459421432528726105568979743182752190826600966706969777839973968047805773596481285334672888502197171137675938848591524995804197799395318901088787174014362386816758884191955316333219836891956228211793951859001774307423779238507703277260651024837744840263506866011668809000902237270888451971670241231131818686849472261185577235333020587237104737796811986230055702492000013093069725817719072537934598749269553206396581783904789487772361139801845464393678512835683069746942815326992436611041017599590670085794050286181538818089693869456764491946044702220141141376649696490310352563201365702830520830004088321379986999665493352190557636395727371297023223306449668135036952620442913940279064821968160490539129627860437112780196679442407762006924123154999170691979938574179913222254448856502572165321730001301126303777906656251023712151060999233385355354554256845693254754617329207773282000685748164706882000300547450688742440957577837428216513467142175558587308573196305337594487653931934629025408732112816612652614438837670981234960923709492412160296121776370470320955545375554200268923599276048918423723039609775021930011279064821445651999223212940014830360723266179371736804756429796412055790171972886398507168882575813403837586051710388915776923556045883818070037574288973372330830446818172233070532234214129032908007047723836928310398393769891972187054592873344392562204226122281247588159140248999734857425337239589316200556267601662414066445966923670864069812975876531336219345908899392862689500799031614876825337283430673242606394027641851155073813290184919920512071533645888381361287028218410216901753521848527941252268864005473018467060452233882507480775311663497009843285896676718409968533192058172951692636411142067936256518514984322374700849916199728760198940304117783179891921653282629404422854539129609833645849841188351150391556638765147875309641124767364183295939082070605233849157137239396353176864399584631355304095815031508087226986513063933790927357790064099229364824168122964784091486782479017148197765834031302707608342428262540056506395943837188997225831231452493736152293989030990160406495868506835319592904017110877359625521017889227640609852109954068419842311303170663026301829431184139387056411758353534515835621989969733965535950956056085850806100585357148208769135101929921969247743216219243184619368885429963111794302023843494222217935411811366554330061923668717709565591873583636756315876835166112635265987693317085180974447462860000298480187716565969489702446849302970171273142625268474558902832406214064244509577703024056390863709380667686154273964629100085630379882870738014916858905859772967547437761280045237308386804454285573466799630861976325363405993065630260969905516632268716583017821594295810025622851525539604436302882446057606134782645588598875011754100577221870332160298291503460988172437529170035183240141432642765083754908488534195919197441504000689047592445185492485297743047249001817842640758480812015369334829537163053977271794737672283837484137997051087505206760278094230282412479758507366708598730113757892237027051729154145253564028700733222616561213660750916365003526282158170249770681511165345441310957945547506193723333126448982408913090792443557697400245849449135211291210217988764176848961113111065164725108753203010271893204458331537817589488741005062384630533267358425706584633547132564791027179936901448415939591906994175531299166222395810580343564593350833004972541922705319004340638748231201842169661696900479703402499247565180009241971753478104166912935247854744370163672954791742222644529257976583510364079034748612678986759091984044409653103682927476806525753875502479264306807889275828231446736215501476171761188972339318188284111720075047927479446573530871004114809715950504355501145655156379505353114549202778876472147144192668825205452063458850532852542014028319427621131646868296454324292809788001465686796781839541421698289598343076337360729109385011784320854147631790695186313506902816073159071070821289805574343665346083676374179048268099295403278889693814782067490096807923491644867156596976253436045530185560208526190244264557863967820961201553033621584099069646500054030332866664451549763120097766139566700461058510877531963324201750602381456193377400431597257891034770151823214517288105680130735266238131169330305667154955385907918324926495170144135259112528121831301364864083196569538473127737535823253727825733798495980288572872811578229916021585175389992759709508692207546555298026238484920104074474574845781434443722896467371046580028186346027867044958276778699880339284031359699964574855904483934311245379753982739292080419601562944353291804171939816912665784876808348462798578594398617364869820750079624420908548232050894334527246130944415881195896375272941953699555284973464393084171422542775916734246279494501508752526307427988358813298477393024470638048760089441421184233223547647496073882770146773993587029463182349165878904465978283411164944479683324625953749530269630902065863660144641903950056563591360465746509651697298254175251006658315534324972807289028344712918278765866130362997085189719148219196761624162230258277923921832088976760645636418279794945570539085093682514248105967564011050708693771258180738753293517379128688620948907852757972798526919910539059725871944136019644717811088118600118599111643027414491999628460578987767451170340759789689813138504356488426990224501427406267075869119284946803498329761667417541799502768669379035353045615797867720178460219959350890934172301347772796513756150810613714536504483023383064797760179650235083105447065007996983691103360577177526232006797654373074571735772053396801982996739581917513897629364453711002892379896813535181741885379222845448687721767279301836923327429817444039582822327753549618875866974855372313854788359814154827161127070832820985224271821722846657875470544458159563145654934382251041940334522426843117242156470826431899483872432625869492620522323200605685387927578813591949393215454256246835714007067653077080575469401870421713653154667039234622099868558094209704025784420549376217712414475786849010400665597712279517529712472478870501924761418124646365808571628891841281781261140444291340450777635554964414348066476906269742719776156682272749605746742847961462587015421099866972836707067749061271593811783093402447918110406524350091572957281156536313679255132152371133907675180003560263265707606971543889556860977345197843161259228756537675428185789129401892353112803936524033740267174072436759671814646129968358995924382493253869297170151151170005963817464899066244159900557161294306384022436563747963334604087357164444437383990438422925562399067318014802032440985393583902246558583716174182023024798499082648836054612911894636300867874247666711795979958666885225860186135210431179393903486366947187064360176551694767032506480024441532846578241534436815448056017547764966848311078709349817003068572296004706140554644721835862162351864037669895317165135328678977354686699449096058881271143541774199138821203610840658904813976583798354109043831081276237495877612524358689258656713296293826723903751839273733869929252049612857672607154998592314218719550651290750901809146753359377502150329311053036007480033943176010791321901282784952404195186517795552412688604231249522904844322689236698035466266077871228192142217016475076658025304631112815561101590131081166572181667954055318724163616965218664530290451719285510679093411029796830865661608810339224191110152571800737629560087559260916029387593975396353590952096590806951398982705287571381367905039290163687814847084056161607812351157195854403408804148262867506663410760694789247486425075517870756298805131687815347304659348372786786516510215012603989367141044501570407790408062695783688833622555985239311151187841350206196917301068408870900553867165727641594635730374109575647850743643963517646924828457471649352828011195623084221981263619723728777293238878634104979248814032552271694048260131574793633895202115605225024749866904864973445244672708663086876338726429467172443251009593705304790067489693930651131779540379899256178801185631179234990811023601056581000907089061549836341013867802490146737850566803479396903745776719451226779163086977262396987309008658770963564412928169527895259700043733022885104457958174616663946620674609774833095323056464955503140995486825082928899591493410763888947274943563636979797303413724959057744255233714079363989604811660359524798357887815777903240797044299128256945067298698073023626267802941348644053863682805668352075938140673273734964688109062010933148088832709869573149776328219583429665003757505407843944417078973800600641673663321066024830539218065824876195097842647955843084538901142488353612134134712500226663992872799355054358379941994862499138851081715346514477155329522930420379716809467047803889755730673257789554301218417202403551455019405159083297769662777781028564731180454895856115351653477743198220559304293274222307230952979054854334907353437854324382553352806247816195325184993219410958068050322477066865505853110183058627444817450103566896649755766317943006632938958003222170607879067622291274981362327002135437616937224806788264938140668917596588211667576383889605912102703652678935635519581930109268965304278463864621377038774110673974108488067164692074144107761717023679040008042798182201201301974014770784869379329420001479450050357378904703659236328361778970791424009806660386725749024741895520857969165668800733334995991632070504220204472880801005194084594421917221946783900828628372208438282358122870441516382723316300070161652131590104580716205485619006285443148411721238393013209711673229808245832931653383510306173463180101309298127702314432585636640300471578314696069691136522445532493489590022278511007677159300080230915062694774069735436913182333408346384822122774913294117926916291937284855947226663308616216285000845640852586310811080061128855165968688612770259710655388292866264239207743496000745372351864589403021272334313243651922079957271897860908524743667834808307631033306056908045383693713743629853095783318133802991041623338164180772827335755602040179838263755100958260814946377437064914922031713684621467295120321979773156825819775441720307039394896117586892683581933413938522716759111799623258249679333005846563380371111490152399588422902490949279862979635338352453622236769752760323732032825053711211548483509657747316180425344735024175439066653042846529305042547838202549422120531553321503222635440168357434314954392489576149771044313821642719400928923722161992233087088366728018189462714935526598082257851220601013314045467012319821878477590345971766413425519154793183656344643704255421413438388831783346353830887740777277876280405937631444718274205318886995458777418099617931584453301116713237313833737858380710106463724175591470155213766500490375263547718419793449111081893577619546947339702361947018329498193618071005898490575957933980329310739768980431839803299901403194995169767975414365436340446897365324565466825148389595017268463429644025464894798668470984215002858262604945430246891290778513742919311473593558051011188813477304668835140811564982074592644716267128228639836986335919315539395752111903599764840079710496255764267312383126462709372065206036689765322312373464727886888702492230566003313518821675024795027987834723724822687850348796416537423772786693090340079275568128664975657965509064564518729238189137789563399214951043094823436167835653138698392326082599266748476413193434290177324039637357287319459761675184359697699660711709047525184254384484011257348657830382889914813130925041137132921024623202960105938961504144730135403272244823392285159942012704734244169388882520018657819252749919397882950179039400220990614201828783724734229980767407654807713573855528178429930425081500661941117251698762847289825120928981324788732008482065019997380608693030840644256533686210129022671544772125927962383873636726459025416320301064506827723436138650222306316828593315752833282608351037369097749973846433002736353849612691201210590770209301843446112868235616805270586493436857848737576046507191716092050362296249537758641150971848192898227432927830231107702925573316586550420928262492969084543184041020545813316866671047207338196995128240664038049376246681097320369425954660581685911628120791685512531237614386355913430169571854122789782888554027446037709782588031219747485402642775890092409792854297012019148896134261249322356597487063847641020639667701458031079605709860919068663309878196466049584723753655112772991576029901971856254667842020171653322655238428987266976393875335334261098103074406534672044282854546382566547121925615571019806742699028628967117121484672948976796969501112167346160864211441673796255519857831828350470664773294269487381397178638229225977189642130553801429895335745885910995549374391448032133408878550828614455622920093375770379722059440615272956218424164725629259622755556129412283841282815557035767715123224332241981739680660328148890906359624202852371488068633832298795239637786047628731365589423688983958198375251042238454985314905203722285152345739761626587600854905054939029611375126996729491587701469191555863331079206424486513602517356225317259710534809362364883528943312489254710437729854177524436152822706829632701259591872206347874989588904102370576083086580111272415468804327521483356298968713236340307527517826461727639064502680219195053476100533608358381789808902354218211767289755081949228214716174735410035752601762864665261757092720693423079289532766365411045091604233055783299523637306049045768689238903277170725352818266129595609108901949988785153993003558174501376824292329067342301145657146865803064125863415695103344161955865461009275506160023749693773090497334056908161050419613018392087561150192005484991169330358737751642050864982254060852850162271775104415363704938304353513314286395798742777981889238623086323447113810104302842179398930766204079812865256913007889716049792936336358037940630447376245778266077629810240509982002572836196013525751808827193185982418127056433801400374683867540553987687210915863845429174768517227703028713310775742269358618862719917456999520528089778999914856586448614998425028556264041559270356715759228054378650335821212804965292314601418590483702622158058018194675247638534668532608655353465006560212285369306671903982430120801675476922024157849406693834478433123938823264489123192674659061779440470270383232065540908384477335920982963236649345867510130206848646028887070402754425586703787257711743165444812616212517247120211987769385091330484110557881725904948346805831716247350333133323756276222390174665495751890812242806921908291334662405077443642416081434941775189414445760980220259204002621158955183392229134277132138783095777679175285283311199544426751267959811162311080920027139874661573650746427231630009789462491158952990743474444557671967333843114738449988771985884564551772228569098969668263593027421898782504357598106868495642856787933982800106201363221411455443228839957854131543356831669411210567710069506996689581458217699102129448970198131115486781609971182100376220792189220061276871611543471242030308525717420368550915054080091394608782716959301844331521354438634659351517153670784543550816976060435349359439245847273076262726169991249773735166735281212936759267366562689332569348851121904779305478476962863684746108488618442287220675437935250002450877224582573374802355429659995834040099732740704586366287923093377348917394320974134928565314021470692512878879552983155100769205140761566987295427402472960822671662390277536229479165310242713207441232231395443009964706501085321750944194433784900705711229001111639626463284506669179555683831132337540045244904870219771884912563535827845082972996788937710983381951427804487127584211009602355900888227752154634378620131399279399254154057059156145181453550246883081791175576502960537581159471381246599607010512879521780897427247513676741002665697243958891361801239826712954321266092463517117514407105668685585075106305722031180025201154128372913203890016791920334896031488325343033248095014465874425058428871158743666560839018600961638084330363117581580929236593091206346692772490474417652852423488357756946468676925455937914541991415880568422161953218939140185839398087528378522436602789842920409658344638643868215188795747587751748174902340158579224455059531181563503723837525447705274266622848626788253483587496462181572120113413587787033118255387126891932209359400399055802259254574604721323397607514577412081917580193559632331776308942095007899006907605490495740384651266807300226542248971083482612261044101838601201277801688626647883308659028814917442945564616276206009481915620024100947174681041471136113492653243375787671092824058481022630712045306621615844755133884305622818215871804035883496980372443289558896685165120069752713981693793992671604017654911048272205372554730350561418236500912772246733183686028003945449128166381451634807155384202521265515458221065245733224930612622149240231477459484143867526491362256104417197061743899190679417174074380627393954012757802696654292983621666009071890347520053925732529985369716497370430872016694398036527765489658964167367634840073406287996519516859174175789793048300441760033052721969216958087481793861836445835991858576495784506001094436415431829437392639704117089721224142909871318068527956201066553375274932722637677377933400491992719093927016037657435844889911810976857546198786874597281861757738284014141936514787808298198938075546972075266619573080058869262599994075283298814917715562330141411954148822348318291470891475301250625212818392452185651832308540828904487238165044650830147019654086187950543377931886498311013625741728689713820153158630336317900730261275183505019827257611585543534420451278428007042770788173272400689127208828575581239456661975005055473168935738072818509863890837090698872962352667212474646578006206594435847692220657775776964818717282388537469743947450264545880599699983538230173614715890376831014863903463076318329659866650530487852174649317166790406907955549924319710563586486341065541944420173736001753136608605662630703380427168670531186769269667933960052226714854407300057719700387223874246614435299876878460809815310446359805018532934856397082260351233074090503137792059628277409930550439519446294044515485488717774857202222555472048658337613013630976430396242856572465740390989923220893734015991956103737653250412368871301715564207994430533264224289546737946292852456329570949394202834043524454145427570234199863657612660745258095168325635019733493999774712103925035128041566259785355195341413078604857666637038547000980088470381318280653704349750489525515887293385351657786976587363536156071440785156473603293244039376964968381903752331216965164141686693278486943745976014809291797320867216234243541132411676267630997227946230265740238642986964104334312971713873754501569249943813563216029437579026302628984176187107313805407535931557685894117259609683129697845692601689164780634117916915685909547850421309370493308145456243421630598767786673967892922671316012713745468528388319172300855790723099986380260652555959959877078997989820169504697188381334792295678191033752146756089355263337049381418108042891114243715278183764465040316169120011510053935902866136302229262581449659473309838711332213989717583823519979492397902095638561458904212696319555520767891196459205726194427951227897339504506573032386896188222231628379672102150001789507686305695021126197151558932550470418848439081638715255180692161992924504749865161708008036781496053469893534862538180325266072354034152252416039897411257257349531642318653759668343173994142515900043135836916634189588542534595744941783976955341352682265935650502781882269850632778065592374908932010456972179164516745720216056227828312772582792766490445687229903372528496807137111286980957791518151354282882015714949622769388196009778304237465501983372260207139950223765198382307759589170852543704618017436397822537539043393784510447945132053270134774906344098314842188333457858981489213830185192977140376759229257894357427841471444262359293360354734542510163551139106076391108133949946131940755708927194825653326053133430656887171738684916028268889316427701778489466104026800870088619595574071910458976640476574226400953259702619127401844138370842763183297467817563238390463941878220760782605975971493132784230747638172942250634572932512174814575645322144992993316825825436003370147095893990205085202947223603844582764138023531808641196379002147052237859296149538209905083990764720660878655035030557900437913308539514656150509288767662687937143283268315029924907546246425060704274536617010093962095438049934615530695267042859212051463617493626348202864609707319136013196042568405797872747816724333299153758827759099213036580559977487204804823755669703849354153706112911450817689026149522209075894461033606661553352479692660396594497631981744184735535863237402311085519295941995898946751312412101967053275865798626290891464972561585010191727414216645593677430271006087489519054490221802117649725381251339697582972829905430405810378927304460606417184580443697142628224834004353233622079133719524883555173321842758748739877005883747034061012407107167328553574168667195144533031089181424692416486848061075499628775631519409955026114293667844148702329185681926827519733094721588657516375918413142658374287336306158248141766395832349764374270040335418990620318068444759371243783215674418346908101333116741743612327189269585592289006524641790071328712924136116576994687560290796883202382909204365418451248180136510044558125230025992176336653259637802895774848786042342460261819820550459490405224711383842828786068927613530104449711756321049997775970286741454239388499100841730536337975992228837775892211551572240662830286330939707541370917531731054473901973375991360042234810841880103362997916533662014457525661506663092828371749301966168523762659344743950061095032887803220861515847397645801237761105151641162718947318294679924357325525250555510280547987175258869192983688113606861243764602238591533328301702802571781798554949583789236500239404336638975663816037757827592153493634689477196823963041535215812504410954712745992885180513807156400334951945190775583355879015249007068286089023584784275404352834192079360817849688892896835632268683844148662742448357645248837770367440282190542016323971514194184512510072549269035932504100191615676424688025435449045766411680542059335377033403383790523004120765298452110592443278390138673526309208868157018858928902702371500810013474975215177175465085248680287208266225821576382590429218693804849186433113842642193912684533804720644892466121921051975130138442287659254564067113328939604894128733450844724580799817027461579728745465797760950102922143134255164012782909844395593971368364571987171781790165198593580848234657912856601144469154402957496449395835156198143929677138683360244183422939375891671823951250215604047401560755896661083725049828095132834933563339970963452242828516611390473628838031703998995505184813602684999190132108774920485890256284887617016492983403280169290647038832687884249472805937090430356900276167726103441756471324330311038528600266750007695637791682637062102877335837675829705219857317981479394121104344327889683587341929092838388825360062808108582944909886219119758684847964914465475951415869759617135896347270739326056934657028080192271690248538973785991308137382914416382569235994994825301034406901893761498174939596480042164024333980096874642211854505409068252299079208002116183636469240342963232069001265497384200841183050225691467900344544574264577587768863519495424163461810496055026254036841810084991612566533978020202575885160989520327194774346432280579852854805202442765096443426501612820697433529741747220188354602745240450480225739619863960930205743121565324050605530180866717566859901640236242570807648355037976034283532913678457508491029679750088501142837299871221224350983270890412464332581724019634189514195179194801329794813444976812126793593560395021132334398865213017199486739593451282350213744712826156214456003201915885531852431091839857135950852706648225190776200809687315634782912898977349581188186147786004213020813922034845122925884625619106683472986792093624890702643709112515334476426839231069246282577318007135555204220954775300732896329474643742720010507515202522310169712507387306352107805239198204723451499547163513760542549405850607981163286769883505981036230062758093604302433930905300999685216078057870737614840758839952458948555110186299868321802448875490850337150436024175526859799492298684096479129308652934651839334766937512586608624475956246716354151089051965018875744848966892634628593362435856740959821005031689252117345919740252106449801575788900916914582347058525275040996862220091552807596707703201081529618431168376243605691259731504148672271168026153962337177419387898917810351865762635041438117946424295436408367636888008832424774767071498341246719694666261426275128665836151797224886775020192385950056228164870082773317416256302318516302131286908480360947156600493862620719892137037243085622050107291873631835623710604708330021583750675384410073726196241764182934584232387388794183416508541183043274276840514973541550066436584541365590580354551479765882146057169288279108468588105427210907827120411109515842817209328361111648838032225074070258517777301163954931088090479179209592790526929404332601944015494968701554032228317707146221748572876511763889366579985939539919945404907133229753433109207972498120544903723541796657096469560260032188918710383668839637302554457688644274102078877182411784270987058451630702172102018004804845092770007305652630439731726960391835910476354817909223037926966922344317552908360659969097937046303608865307681022606547598974067171620489548667662983675181496050959000752549433385630939333781240296724222840735889405772328496867693752574158606171467391275846752634628407532555349208341401934193572069914236113292121742554880197258158621839536257812912032054762670857946394924658686626128866205479372101135052640487291532747328997905525461299618187168992849466971627033472037567918095806575508923355296913538400550216351817047542012240653519009675169963856890123868597093562302587278632633836989819562892305095490684346843331148375426982345182111179961465953531202048480843706130946955081365826851660293303771819922044243189802518227842540033442374688121298509971621971180786194720040984179350882702129684776112978925636625854577065728737041640391134558369726040986295422875185906097039065266379326852533459809298318842602757522521625589140341988367128254410338950187172590235375900055195334447737844137809875055888879203730339566929757597383275844682685131112226913559444463515396831616931634896339865813403490694503886087809934115444241158082579725015448630410580239222859418624312399047615694275108696076147963916627472420884502471043013411515574930617054015783901279291039819079614210048098598277088692455303792091965194891586157568646913079606074971347971031310826433678350868722291337567110982089215520838060798614653002141130355771383453901530161513016842457618930979407892058780787545473218806874008955859128691610503588448336215904048862280091227793713332760600973688431882211003154083147217918326161344840547187798892742583673534866602529170251032584216109807773038577748592332447549111368717628906533236408067075183257403685058875833240553579642367766746442844736482016052915344326659606163681275046871094569626329555080632157510646148079589282339070274537822550718921836851790688470018825210544624737812419654970658921448905270817676023237434916603517268698664333846358782393964924126315788038062763851233864879206263296447571839201106695303299840197090540002271134416084485734093129601085818413081021922038194501318029341850302477713535055405033653285121572524480560018814656472935226458523735732064390654695030383314753358712251228706953510876964328105323448205801059878647497351171128075216821895678900227917025805599257593882158384729293482566704378489462879508770959549172220538810817336560725036074606607610761241797295274720599824754688434557729938120275870744882480713828210201397803361393654020572100905925333487572200873272731039765603797468680515332220972108149672774475441116427783915149699639395090261919806790136554455875489572501237270119453262472992391452762324326229545490164484009439446650774667824514706833872967564610666882716206358602241196256141505903629319817831515801774802734672704625533890780769863747050689523146780737717586905634033070970407046865221091836288656435785236782191523018529595254947193911622947163442875231398937963930217180365951005961795263459168343477142058664097297580097562166718035933312684390299150908738217580958914691089157596392874751326095237849017912006586997220965487115202812608980279659948935505138505687737733027359131034124487891930498083368251115307071896041643192400637726613776733167491530943428930385587711624500701944566510257413967426872719714345851230462823884493262118927663620748714138174814611701029545270377496578836449575631280877480090176108604061819863185512833920047215070637975001163724803052081328390736403901245272330108028667058720913462817744344103004838568636962257461286084872031160210520064458170176870349039305013799067510720538151325662501723771705288332923890078990722041550893233815157102704013974957375807154653104993996935852790885867971484021842969973634164474525121752447826419564188491270162416106619541163484576588942945688610096435598427763864173712865128419971779378979765651294336550145420108557374482124804556443263231538289984659490408270755238874546330363816344834847682873667958509205368011586542597969020905662705098073198157181098223844542594535871565294557987653655707251295616908183853344018316945818232147779417106745187218263055503997251974617198266584271425594887075687549818059034591775561222482142411017223165146290442374167042247786639212721699110623515633880195052979022941510672148014353256789403469477903684059665444877755414286829691263363824972997613716684797020665922172661805113650430541122039964818941505998808437693158385205834107480127572867733626633222816612255770767728627627965161212165968651576369483028904416664209181774126913002971360228216478311319562075647482509682082949634558572813607803837959147654876330274080626187682719244838813587606379032538820708489572473693978130883676765784530586616903221855556493013091585855158366964538456572238371287109091514049800583492420265463559053684424531881747910721950108878826086972021777903139462670314531453227940522188732537843029434260331086925556696500532375998540708479980037062150562013142103793234934326331328350680913474886471223538457328292122712708695742937659154122724317987071393803123296044216328460768001632772369322753074534118758555210482514207115853254204532200455542869567505244917239051098010715410533649842688935309064529973768518402545476086618287068600759536097124293971314481659085629267283832078327295961846978934233181353070721163905985746617232736917099286270164928501694384549277158630206630354452206889792944889910964188385642398845863549999213120797802933981418198726340767110215258931243254390844473109720093175994017892120260060462405544820369992979212908827417505863571551849681002549221672394783384198574772433645167986059262627474684306356046479407835372205581049595643656295248548573500857256509341810814470987084941013486094781146818703076280082658603252889236471945077359847700420893937903145106527815863612410637968068078872353434577481497034650885300689871302160864723981081650624639598183758741797636588435284946752098156861854465492548327661018250245178304058245536119320659976206670235146687935030570770166307219243634896456875986707053048876583141044504442989407547533909039221479886699714725544065858470952962194275128619925864694254141443078658540042574648279826406168966479537849033554620870496589993123492134649356764662378706655949612121397486546995376447156166411451611095374218639256260601923860125750523416492279821789297082247220949686037901042567524805663137344536758983617930462561677203413223019963635463460146918770188091151863476773711677536683892993476413395265845124920651392421069204926983769732452192309750282463021902570666663051255348029505019674950952353777512723633769496653946298522728177637249059161020470960964730712365268029322840118779249678697069345552981666407265863523312662074503558162758123893029784235616400063400966906886415973239662017629806891498097391878326063593634331724291600129723395076293803412946275137503394166281995674997167599791566859222500966884029790512137729387105686135670639288781127473780095617201785204597114098401093697530844030854907676133433100554882130616156198136721509285446192901889476546580454562883384517999189864501860758842916186386898823739669879190534269312568156370143722926092709378125803895407082018397121167029901108498558034705896957484991461832267824403918151365510204793298370589987894114810235297458173179646900330028660598644393141313421834670427003738265009854705770247992312010199298104446008550610373901757591903596916218670837370558014427449704726566887879637855524294583570720865857685196918034284851353488112786396550606897530067077615394576728861956656431130013883988984837074832267597522878127453793799697257263396899719659764891726472933872482457547717486616805562844304552026686966620074220974862145592673423541077269053327008228997791731912380092991624638283561982239977494168811414834016449360265709759600388893067237109685617272276262470577470778459424451741874349893651537134301510100829066712058302052845613078436832035415736309912571319565485730246837329456041594861620098929673374275350321639102690281135310589083301749926451283692200870836000092809331765100582558588193140037551902037010550892288754360622790263209967602178554285223632644596204166508280922460050374702878043686022476325121157907774139005149597102113702593051289124772245240285250696314549718360917733317284618452212852697065510340464433484321388809574479689337347489951135337272002279337994986037368315024375279889061898065152275198949488949204913469410319602064084659678181293820785231061313846714416310399068891507579748206548011306404226503604470837226152333546766059477214582848078564921291209712191566742532412094824790739556435937781539885812685468550212912355736443506383682500248874829324358792391213679943352871495559497625485273921891948290233931764002267216072915446165394178671961457668877196510621325690194991292158421881812892531254721526437818306726822426831622830214774944115751444132069623956617738319385270498638049723395175948071490406022883715634947459082972756565744682672968108554040479730153233676338095446592848599527129634571410095579895752011057617861009866971871334857753294757436188939044993711714997210346620096963507224945045622450138251046711561845403937463737826066454531774474934663420071392702066942528648486231366223195008661674074055694221847283847204755333507711539256958239666290349200978307353254959415928351595462006198904886245645914863884647960886988181669149064547194187367690826356962066026499149199083413297440306809295886603058541502025569342619103856160539899007140661162581048432067268087589491010554645362382288472321470694775262315009764507651438767415436846296931006795177818030293984613790698596420700075553070179145700149460327358579819975510739772720594635949845796839477698794967128413145399272646152475910347490568740865883853617746090788561185682976804587853377149620657530895692626622543759257230828597510721514254283934280969588429201743007556411303109779099832218727207890517168231101858546699644084829815004783145537447941171789671173165454483133997507505871015005570075830962934233424820106713927270505552797144921387776203030037613025476139183171234674352891970079474970016955315861489608565582283053594443612325272435071743323275702633179057998107694690574170844824198504228705349192975861678533151169293125283263392894752459451023296871592681567653435100670746769396956706797491410075237583879248241257768207437738990262626288641177671176893758961819033127793740917321590604265978102097234048002819233707488124904696865226490493531895382067590633348555289632026549576485528366820844252086830920178673555115747595321040697794146048886668973335329285179719658561382784179629574108270400353210435006072920500715815770583410816587694528034883903380568184098849196094485315828775657882635884157505454062577591177996173484740679230714754653261091356836541784841873436995237220094167295825793551538712501692946529842032998420249011965544842594328016104520887437703363249075801554955968311174219670219709974691828427730558865741718973134641283202279772781347211604997210442941295130552477824806429274698307543604231261185808731045012809737357730176751646807025095006378227047725741940527590187592229525021583253452019501601639442310275134205875726836596433978812487393279686462724410093810758763749233060900734449181159591172695230326683943524187977540497784507267812233699084279663647158699296720686249923385817252137744195725752041964166149522319492844318011721953966000998569053144980137005703816706922975066169743991921504220177210990691840395591601418704379573440855574778019825674172322811708650716823404186998571586572776256483495908276457817298620143367216513634978436073772414518675384831751525339800947078873915992221336566153060838981274903344159005148228049342192882357177635389800093565102866507750197939032155221346757800732387610008273418067378705753166218895571290383061780177275753220755153163750778911919836846955049531992670963111518493859582899554733195235216570782380741158493643711397129503016695709616918816781677079385919721255895461571146710412476115258501025651389461258265336184496116866261546215898870332738932624820970722249955053024061228323292805705727528016617803290769610399697843097715394691101071123044237144197492020885442532122470474937502053785667368080817777271198383291683040044458268101029731645510352060544973475022689330060802997074791265231580551923779730870782990832628461122726983909595658678925219196126930675612119375007665560320834385164563116699307826836291541579877194694713183034305361761356257464560501562585189642241220034061629131833229411898289545501421467893959759338455806359609981996509798589210718717113666714862959890838522077896291057621902240136080879901918919679984848784172470387320913655492997580546041610912600061556532667258168832430134544202292149873829438364826511900193503235548169406340226910496552302302351062092524594866205511259844101725971953965138465049458435204114444688096573736572204623975558755078782394795891760998858423032986182483091458972733031449699966551342612911764883269879695847227089353070113345611121092339359542213413297547778549442171900472107673351313675088959037434332727915557053320396899576677788908290020253349358260432496449274730595431106801123832995720386706745519814694148579522088204873037535554860377224429702850928843616379985973879473490606690657782339378817294371050385279722621176143120465165674069577518567695768057315066442999884918438976314718154999697730862348063839722088165352435941497894492280474304118541103868528946041288864660165342537895716330669869218203754274751057874590605735311288037783664824237637819141018996689554636959667050194193603269953750192731792354484397675047756692363834121204631564604035968061873908421821871539216898780068890883332015499262511064113145260573683387383916796945535201746286216057614402169061610731778851222417889099087031902274943331655199360799964703630724897886351619671902798931274365176586283444424032207437335940250753693073241446007613812095297470032402916786433162208711256615077611798050661026332745245829337166492870868366228279194342943757948628337160543242919532952223670107292201931718623147345301444974299447112459783603532996426971764720132954284846749653371786991824642004700146679437140996518894204476297753150006607655371269707099758821947459119698447048832791874734142395139859148901273150746671812472289136597495800681994533792251095441193697815294530591952892355010602541853843463660266255582359724854250623732721434192297191082121591837428532983594284285128398088666769402236136867591516952774895713038669286174962960856156403048421998057809230446310892613998691720013583372184205566586846015475067022845518718222636203787779415771378632466209733122619401327024951872143983572041248646832183918999907165253302445826926684537623378522545154382108844597561631184481976247918764863119687896839580455929470905108488016578785187122735109971330551879752756614252822115328667549329187426220582647786870496570866821028479408627622416236582591898274322569678308534223297959883782347077244043779024370033111508135388551268885627172091265226973469146919950305187139648667833123946729950719595171395581485638663061139842444146998415717527446547774459127723042151010917637427695727720009507977834323293341731118583848107219941375949459867913901717880332236833693237871925318831759852207555428032462248227413874139536951195015640746672989540287349141133415271777997451173064888552227889068392770965274874082884441948906813921102566530968029948435909057112940833141295108613964336565235350807279575572106996496135780042116660055881747752351217897299802430951249502235374595350014720631139662289072142988112353676653763178978344674044345014866117395655989029558942052085743378013622437279701319588478922138668328070602451184398769456146793840930920231078263645787390650116991234764568269668629628397414342700176252092527373254551860248678429638974287568797170926716513289356784734328780388210185884553489265954172643966951960065040227128722814491268647560078635418845204250101472381217765313944718878881197828262109645388141971133978245118493226560249797412295767653581207628235851505917190725637915261707897667663355274322467475197882930992911459352574616675547975538390309394014234780648880637371287959225310789181439037752427056440518008586682258055811453591717424116187684274095467948105822246400006120610386809659295104643180765430778914354245183290245171668801055778709897817829105869186268283609185589923923420235734011901460523458783352750587895292525941714969107578289384396884616867903752419626174630054001538297171352360078929169378439215704441660973833112917260743659179101847776524028381312014063765359909940166009571318460289861247252642775946759004212856853095302962582230594896811163634298063869475490356737590631648584074608922948558995569701182080305982567031935135742598304136729442866618793377268566284729776117716994383748185093814821029431952295504335455956110673109458779301799041545895826334241752310319476315587608359850212624460021746443498663142450656423955700992647735448212977757744976902099810632994802186477012138412552230694702211254154479496913826503849384259863171353654802701052040367357007104940584637644299704409281042956942173551148025499755225504537054639021632101456503915816530110070080789822650612708094031878350844080878938593243728080184071904657717871610756859926944757628410964596581558069015730764239859146443675823074400532960306376943731368855124338192524432589069542571707009471801261394152806161567644389818265420951525994397282205234501978719475261304181468224487414360085363723059832154011454662443192381823254228708896816355028976009188765695153905617159298225517538556689495836667169162905237655817571631933472771412332183311330379646331199308943749711014411928266912359811633162728582643944201878049849404617824508883984326759001612649865264932842000312721746168753257970372771932108298817729462247305897788995178447577583555996962060004803219825213021084196448036524345373909188758996627279384752215307626154607929700396250543424043267999419076236878114830564296650063439444013714096776665339913557016142369368118397242703362453455415819860776002961988754066272963391645588477897574865247134815437080230495340443465502189373632019706357513376927265388457318904961033970698118744885542299924111536225238518677559668541903083258718992662417884158234110249810535624061962006030563752678223062219485866599286000784429502467258277834955336098254882597990159286448527093693875665000546008206628218076520401642182453859647836171400754841798961682289518051718856989317092875345532424367806326551622173645412468687398516689542696554707188243757043136565180664390950185445748344163428351768068767409205030067412408812537652293506562372202391755704727273262581489744333390189843375806442742067380209193204886838171535205797704759850112140954075817448796392036956020647995110952267079608100516287413685944090215268942483386214069296000964862592420765280183834878910878854592006043522770139037989153593079209065493350497947576229301716867280506483462066412587219302099930220297318658357703225704062562652357756933442289397838482032733612033487180183690913163765385181327848196414550108452721182618474724672673860302048692708835810341499120327956694153771042447850010796242703262940812578678843584689978586261706520627398232873531641780786405966663452268872752948635254655118790106541824097963714014916546968132841464450771798720018106054089720406356047937462144701181067694633837639467859563166875427512605908473434972878663419628853679328361278137817063097283730502770255752023829934068082450401167739341310788890633310211017616356834326945611500603988085510592746999021081664903386041986826527424011136845198031167582145865185271734433204005156627573368664257475552772535581162210535498774765479534388049563306191265921176492791308374671105714956096317361338103430245487617548248318923356885623084452523943788598009643249240919527973101452398978489521174760676758627320946154521488046679079444523112582215178736877338963749071349638386028983216597983209489452932804168203238652193501098237933280441175221029721606421930141836373356963360524337162410036370997774929448584821817410253041232480754087504766413591678635371365566849383579764679090280831745354840638669051443951109072887738663566336520885017643062835692842804366518272345338661528735194381305230338914482615390378080088257884554944928539468225575659720844847862855015098234554310483365069474495871101985374128365865436750144942901856215258520619851981088474753379663926521125083880131424514655188384544995732550465625739559795186492032082926202908533703528622457441379895078046701038986688132362451447231013022973851788043602683993356595311312078200752159002878461143057454469619339521528941957324370922839325734282532557058249789062114191967352809597478571243189154795595486541321488495942259064949613995798431161298355570690573447488808603524978518626370049634718623041533897794773024816106127944562869564162418392479296334310263839250586600313726131876594420453141991891785505387611432508423414201367443017991777235807382900120737326806615977087285489914664679649188725952429511755515371337819191695987384455415424428751640975794888859609648579881231915566222360130039018556647284923342429292470717574277197671565151391285892622482389836193345487651652230391692093637553330557000604687530154899248467921254727589491782218843503942405880627737439810592724971793626583017531680517731830122243815782284484164824973793338932321302073027888722969281245576901799052687472586095357816463118711606487791520401460617810861228280314896136917819156999283154823841328161708112623421019329905879029492527668535615122136447998213299590919298052946731123664070948028109934523483862400994658987129563378113122339268435237545718071948052198878900106506683489996698518264562632599750243285302108089670282398591682719327626731662501998514515866608708653510676379875004149274734671414636101890154841385534449859815498016892579804122241764682649474182442027947532736471889065877372316888178258641890861470836098650527580020193445980587999241558340193838414505108009923873211951486887930509157466654230991456426983712686502732618672856407826903723264409303063321859422176505285421806869320117696841262956341575493894334632190153749034998452941773476968765653229304353720169770410402509627026383109808992621104726660303326082799035880035181557893581268690381561999960757755306473947357000234249587577632421676411207457723830484050470755752739609005264178194919241806209874855397946434933268161084389007115227305267427327630484236129854667510952074157365269850097365535083865142214363319890475315885935433110509319746787872873156310327239757833082571208855539726826366105803099741376733444541968581807232878411408199754203482822037822368619219351485296295235710970994868651012726667914089535010235084023110186966089763791322175865783982121965142806724431885161937626248173950442914695737670785334811534434680287674304650564509110680799100089256188487307393379530502136821876914963125454573087802779978655834679316403575809544586839326115000441485792866780145521597067648598548976906400452983291099727961248650535000087412893383818459207685453282554997522349575685652993984818220792873573368136280907605054656730587389119636630050965810059474586854877113652379346544219224207912196670051220822156806926786680096459790983507208193712973463167465811240141270470565635169334897076553869515982910333774945905750516114777065425341140051707960578683524372818388399776388118829811122825967703987990915087066724283640652851120459874056991672018112901109609774842815360524664217692269039733481531216394989963770838817522712681116263085726479379354935500537066185434762595771035784308189519461149862852784360215924729878111862582478492869185267444736028507294742952240817803088599521068476986099053573755774317643039682904700854757715927776519197999843321887986651999028464588152490882814188029369966439654933883529814789579791276596772861128024863178332686137881597955370366184395666710044453645051225268625558755162913590016674016820037789965886427442062563067033005017518119989712404734267296838976070757261712154531464396773324502451164313913753305755522848605563086996263349939711289499821704237595934501516722041774864254872446372946830157263614038654434603140759157162989677546492177658719923322236508764719301177957756234141211190200076917354262509502185070128350259754516099402099507707925322809935515718441100820677945813397473927193691248618336170256384791497079213154289277118097376704044780977262342065489477730566521842528765435378179625694638025895346832231217113678246417900365921755056335861527435004094733466814699147509586545201787600887658298375331484307185589076399756481772786000237986852645701774154850668883407401993667602355800548210594516344372102212314435084936647044462535599790799228931508089770411011879539043554388170814872947139522341869801245566206256797559793357085872230430788035145642766425005001717209724033229096177297357965514100642928210571034271337243314906141240094868947190734791666336834255226372545437554713480865655398510392435604771402739153243038468443283950137595705636587654032048339804015986614704984500511614585684497672477072377346043048748116669671139318306590270535046837686280139319684012958472659402926107729376477264970691611349945854920436947102535696763015814152874046556151829509596538662875292940104668126145962313579629182790748138840683164000110197308077869443170554318314184404500820080192460010877594865123735031007478584412818476270515627646714596206143545993482030389105780303460775136890590307522701667287757054850443606366335954130731715827935680889679836169988292726394620320140137975103003101755372833085693858457999380081367937431237460421274900989104397428804361348668687756935566158273843837155322749138138830977846816658212848714253775883741216966397625145591969967444676747842354406115325974168243611623034518939808313323511814488555928325440162257308451885661620773723972041343214546757354595677810166274972918541208974220678886330015208317050751730297650696136883732629230249406883640074132372802803475914173120677977137654668739437520168534563647101017616184977849935482539232175924575553407946746144413069102393222211185970080841710525762924597965705792263410947525468138445364190928509249439704641862659808444173192439185392344601811625156674285186375456972925357410139588963633957633163371596751779691786784050794214403677956299658739264835836591206219713242721145156929966970922997225150867222747715694498334318112952375795480463820159349442751678419283541087951843778004246671617173333493053727681456514645292274439245683584137336627198856566295977592983381155026925247908634724202025214339568295834113324439737785831936617739237821384398313384566318670922848574105576727199196144671507536290859642743615277438217573533954494442248966181073473699954940963995662893513413437610231419202810045870448679617068911134580094418576018954084681035505664102319133134304657036988604018652360622344285358440420398805283153569431954334069267280610363881301473231988488083407253019015415501762755446232691494642640381669107632314798263773197586526244997788425589525603959288792018311668328319352315825705316225904196122008389882507644863180371206175702624093552047408439759410373504744030106584256320777903236436592674460104691884909694526219988810701567293249502380631462410309170298286310298426122528566546876847572735639645616295654573397188494332055854577031979382644311862338810098221036808727315536784191894565092367936320745295355790971008223741575105722909807312413858532829889893226078260244291448007736906252889036900838059278223666688749004888813499543371228571316948274587925617613520931465382984051774026918511242312593916922369450000417072739839280960565526192266804913286190745714405587687477331395587529126151665150830027714658077723817143944881617728373093579878591464321011545673679822144554732073396436599420745213181026614817337338584478417201997012080901461595556345572864463429031052696619400054541097955354288808259296712395698795945284064988478740437337988116195572893265047829654572123953843515062914252802293447581134507936713362377107370491354191003636309571527631826725340260918061017061767658378613390478437084033990821764184210024009868200501241880478862331605032385508313274786397610673551777708594810714422365933699474285653997797838568036977511133179029396379137779677592488204249087484798979635113031918117820486264295047494688143704790561672496483847615894665546146504511749837792381971836940536198687593472777614106353227862871135307378336219706809711160165597445092364705227597085300192604398926852019080406496648865669117809961873167631541030821043318708550183160678850675558299006369731382677191921785421352424498888882526205029845210845651975279037140835409849413522711027689027147886865302584443727543947620609817846732974217002844721937523843654732921858823913001894534768322989138221855314184905088656336516217740027932354337447693260538949947011871712582260138751139086242329933878263822394520903695161040114497357355246404248590889952852912644672008479044506992328939380075026102464883300532355616233284177571482730218834773501520259387348923525151562666825885817997392935419233105570324755469640137343435335550764811504026020785799556708627237182317191387703788325707521984830356508079984055807496758802444318354638211730189048232903005689821458902953507606359994870907082738385905476760772012042418854199886044369323610215784533528036173178874950639700473457326463901731106759813644976500481964175189217062478062825771364796609670780996295835101085914074809394742571173838654063702533870849328243698694887512272638914445145419820860346552164039304182029137248619789011189367038338899183495766603464671199168200747069401417498947063805683163489679105743320489974652386821897099528570597915423390439302404174116965628672581362449257346267376337411874640307796266492087767158017749593740629358415662737476764144699085733244812832176538694016652071091702013042207924878358431483794750847329598026567758435034014040236199165390216951848950839943552067622498643246328104722282924698984345155413561681567339198232947110168884254406157143231535817931917149767522436992634228536345156568626386513745645047996371187874521613097530618570704307977076041617548144362732678310816363708896631439832855655434156703848872538262589989070350048683265831711772133605513335665733351398483870107454193139437751957215768410600656071717293213416005817945581686368729131193126376571388905819278369922270400554493538337116036827859390624830201054487255372444968390514456204874898145060924181684778352140111832583868265820647575006991406924752878974037938914247199893383037122443765104637364764701066094022310064625591397781866518931515444945700240684664578927521396528694603748016219921173139629124067053136198259031422314396043093640981585200899054569851294024288737975997344744801389368156365778872468085754360977527118538502529433476531501493873685192734900537721201951068921562915836520306818086972558467859041594962711646587786125611989003843247087809753027582094164422609739102853542561655585193994350655228732579511222402057368688096692675835625255241023587468971135181090174637165622872858374090049832325989434724630593932907334651321971708757974956084722740927225429561861117353669384438743144643587114197100799554999361258793902592203509718686761542233540833120028066185661604452879498037610034743988354246216646637778218984537711286089222635507742338949906058950694826587350283925008190079712188232410395656042719730105218874183101875884570718662626711984030530844523060381734368760028892865604336664910157388734747509120790821046386576635968611793522275245116375527438808406604378763582819773965891109443514159867842755327809891148682440066534057632284066115498684192329885930209600590214376008383547565343449842316567248265686282374685594193933907996698857264662644184003091952226628894269171542327093618323775205265615019894153276083995687722084694929993096007058258364358586109227982445198838123554953708753691680503205470754409010471344558797490728858728163416164566301097528163899627179363700091103204228417858770478014780043626514663792864258194846306911384656563996174603787294101270227334594138007455396567118252916199078067908052930781827079342045769019979995400844397226118792147447805385542310613775815458197872218083452007479385736337094362859526259132196507168089413720826832496126438272273296322753288231557091082630252716743757722708780776682303298336702804843012527198108334791714562146112764069601756099121995541214226568244943858222097363665782801373298412560074016368270024351725963035070759554101149149580667097011506659650022934142263586813864823133601029878527642236891713370904630507913592137080725711315377315448435888356476794291444106496648618785790329491746137013433100157372716991099921700952561172881737932416951471943579684208231229254125467249266125024807894855527477940299869310509251123712509493750495328292909827243739886894966236019031502397832337593527808957486915448591569119586626111641764171947076124866693988423746837905874856581134266674563839985046949853888993862538241832599865288423050205238062136476157230624489103037650662922806718095521783289146755105094546205223999815287227228316903205602600762172956394532318025270542151882379379961647188058564144628016799701781804633602414057891880313613566957181583864110295677101275945153440668492484834625693962079919018380346602701716698985629018063086382107439088105897161204339428564831169312751757649401719417226979007557256532499738914662191781624210287754202595810899631758895797061373654649488878448432496945443675321600406595116932078790702074466202345598851546618075563479829080253397749953273738371029037612255926781570958595191645829723152942866273248547391102485092659659947962282555050443506187645129564625089705926330205984661297595127407513865495461497112621389806897716971727985955301207718890981893141446155246834665876186566913315797255914797794774705909108990680992870272965010353994621845717666086139235252269965754413699195175202839984572780809275316867399836180291381413473144768312376065344447200232789097129877082662323875052096124007804738648109361671378655480134173966887937716264113122803427653409485427031238871672979589716915874220971866193971445172328054569728315375467737760427497194422515024425291989899025351056839073710169359653569961035163847867207620970174130798507589950076294927589064284768153887301409360916707028642081695556756025897216460115219938714126588509134029676159716311596181387799233041378237890821476770177272385196173362916603759169070021213796291948961867323070459872801211750975399175915287605130435268240400749540654466140352788603182454414490386165809289107722976693000648816278384444909244900086901598210069544436128175284494258079157527764163199741452728611938056804749611612895599163460038057778100478238448116544512255908026317922040113670719586131626533073190471373258818135112508952489853061432248028312159808117405658584130077351539996548667603038791562343054711794834766125274003777246596623571281121955981854430793064616939558673075602478006366960363172560660316561924288933169626713108136310673363296174258616374723549960148604846881251590179549029563413368816862769580353174036635529798501385263110175312676563702784499294050908259760742811007610798050634171759364841997611009450098620595827969043809529967209650977089545079822179670536805221273085939310690351741217907449414501185128650817613289131543974896813729896747238116232995972706033176821095219108793183441702012565784039502448952692467778852015309789863622503066375724825684310127851847327028068223062633046014921442987732758623762522968447901753226859661825764996267433768677415749469184498630315781597452369935620769225402998431107629423491287444283997593336872914568812009178413687669129187528286610447309750037158149687257277979261315174535512142709619860406891678057437130021547752970061939277280375874827589246949398330562598235680728225163967282262005868875464484495682814592334001149985611651776437904138531323067087299394627705952348069700392025154588596933768502284577375271981358295320012818442392956879365364695306062404013204078505191724132254960427674290846496848144875456158856521154073759878950282378085586027838650982797034189309582576759010522444907119009719138517585444942090849862936781694485300871748157087739674994724797303899189774063950024277566480556511990574597718226347433821349378946428026433172102981991259124733732873364211594042039209880009840315968132459574518815516139858946605543897568235610774991108402469943887764326726796916455833450027100128419099821869104986475454825185253594903104576717496099391032660201245284007976980125841684367546065447091095264762915355442372761312460306255311395822564028012129711119167287583576596149545103834738762678320405258738985526943981312041735567641845784910083872553216337063529647342514428297830275766047373059378267396250810149727740720469623350284076445850193296935905982375663651177018658957969402830285074877287691515457501793693952314200588947265947683051002089180287596624396908585110374681663989704362783946782781161034754771625733154558774160612634830533620951102275688620480441141158692871713669545456761892813177153524995869583689134297088520889253044189186556782047954562376081067836048533083155666145410907260869833109954110187236419792679948178212696966268017557985813199992230881427291683823810947366649175009811118633367993468103414625890482023996850928544384664585039828097333920145304840803320915211401318179484612837343887329518010722195702954168427672387785665215300412399681048371959316877979755453632396090298931636768276456547337924364350476636970881966811900493681025704584383266397936346540642928669694223693957069472254321054888777423960556460303879941173356903828030519093695927453840037599327300532427004502223213387544231758209207642382484906212115251428474779913630149112050697054243102459831848625837844855589306974930610823729435637407645192035301187375885804641274958110336749770406828594767186933862691785863030084665449776707419461544747439701571500549248447887212277503109518590935991170384032221540591927169318778538700095723270158237993692380099847073818361161117890963041957000946602826812511388285133953559863975842565202370695004412223658457121553826501975925404121538252169284532312374637193397812338228230858282433670325281404765470841150593160316954851456007832303814971224004318634692298289856160250676245006723592847981653901376644580248365998408790994255830840622303649383793921916609840500358845930273765219957692022408909148931327310887597052113631009755975140891880608466996158489779674380033642279870345987814087658925405292410890142451912611663955605320806147783579017385903843071207032245417104527130219401239190546200984964798133858539191244728567037131537141571418452650050423680764731019406503117463424641725750421732260394174490214371349051569452166187509546875953583740884200553564464500593028547353130195594375252519077145838262138486495150000088453593745552710842521419430244468575646178080620964052752194323909300072968356848185012672586987464728887331867371065550405372317145518492657396589400457067270219512348832302987231297449853037021272680282144836773914583438792413478186319070849667292287601523263815319049050709430741147668411635665801187930108357239729477224279298054628247831565088817440785117705111914769035774815328890569488281067511251697522555244553704889862713104205431481583703072878543044900141876713842635260600242163737500992275047856143284530318101733339894518594407419768589803426102706716422610724008787052030474242417345465347790286793799902416359468491667132405138545425258133102059483896161982976744347855786098507733068248519806920988973233321434768243274773333289387713260850957565578638628139531687359040679116904108390564121182284082670545744438212743288365957872742433176666939740107574437805232771630350057570440877717494697599930027259003997689449526106214194023014117230669108385170776568802172756078424033175296107627111719130379280192409945031827894090658209564557800808239897321210910611580099407596851540730647641998484401639728328554608943554005660319732830141939723157863195878988194379035081966732891622983031026556560019126139212172507511201537309334819415771449739668465125920621414340718694861504650669225718751247504653791180194109875464135334824686745338324397579887135500496384438307022683308490452379295539341969147173652620036503177291996538799934169667041927722880789107400905813542468562940034213682795905299203277722687198506498689389525115039701937913917753897913805417696401282265912260561014278992335128041656515093549254615849537922124304017471109281900010173827990096392318594560051982454849814016880596251130122707513228695809976553750327906573352614624503657258901842385613850700029800726460316371681146532045179989364904278914260030163478476118413600422511644858185318389075801152239833818601804888133972462502037681768127158689926521472160900447372790281424184885039321719076519816977071609759308742573975850857341598956714549305332483916594282036868523926084355773959901798577691081814054411300914523134299583489098698399049048978422344909029449692297081259355414299550323337737411113607789252915973266696220798874655303018046511511680666372649076123658050993822099345448070146694368023552196122144133760100336484964041158207300397849923549420509491508374850311247609274619202920818365920884011516334317456533282360590651935096439273824875271674163105424956167902178559326282492438847444662145934991580440734546939231219465007218713917990611492602031274243404240318509615176967974412437513605537038970395344342491037637871299443828153813935554177772349218165704750769123752461649484759956509980183503162958361052044977396759860694077182097438089509582910009593673219568221714966052708390288275887010666884290988041141640400365807630728549489710460507405347998202427583680418472625499138244129424712205177126678088449861204551813926256104116148838538795267948002252749176247239122788139006117489758108796034352613003372344766590124317543066679355950764913992692667679680785567161840777844869913813935241164507362608575202223203987743004591637172229730328071715296539645025297726034439884138574175273051546577702342399036110404252025010075227804374996256344515076957849068806954482279889504861497613784132073244092511855619907785965548685974642979330705260383525779215225334841414651479477537762932550335200830473923701058369947814005192022971508239627324914443249300005924824396293017183687963275304330528233725626676572672208612189526303630138418935367508182226845670851665437240888722456351060096301750544225984848238789968852734383289756677649694387044512508784792725325407792160535172923166982810987527163098955904907073316095772084488805080979283526871280361670184499845354952123020661613137140680777365240394216545154792770904817827709666660127087636745092012143694644047946319724715898774309922847622196730876829349867902656811265741832774556363186344082800477589380467045273504943884828860083224306504040810582279274659199802216252351912610777632930808430529951781886199772955467335744309779759223014446791545229770468959985099115865494442474319654291053814550769979768129109130248509444220953612253063233905040105294067953238569698613819273809206372085377945942168122304056025912656686036670085532245116296433250195231912293629985533956414012217005469209747939682474243400077893332663576022860164857855449823335915938244355648044881214737636133012325912105984273819598903353369101861372596499230366793593898571197728054403420546363275576423653368041834027614058817651262591438128990336303898152098532415428452166568930307950618405897063118881570463153215964315744632758051425289939377675611943683235353406391050255659330489514729644132709942568959075479430930434596243370901212692631205629050545455801641977625058174808168463508621432820700413680512952730179079573115562958505086491572932626617063681684038646486802290565082916775404794224118070438848295869936508075961416110763855750924433118791105524130049982607987670074989831452742646697352540316027161341142780561881847685802025493704293477579459584098375815938167376350549046252853206714980080687307475502128629693292350920444477459714173466082506595495372505509255919016053378481834663941215985306775145760521888852758965776947014027576692800857038015872848506620450671748611488899847709384302674405357499134966538986534687460119148445137598123829171489164831802884885169198269172500836943170095090401802679525135538095156402249093047882561923354902502451730288047145345999994942430145622931959982444309899392764964130477843817468642410365294544776908582751202963207691352828447844068055435145384166713661369920390329622664158477989433168201944940751483032556981496681339873918816253803204585083871180013483102634706976173233745368989832592644275718624352318208916078392101913819483978401292822507707386145837150388565051286029637906910353138735811352099847727401893664135201633301619751381842627900252571981104502500105543105466200434513929060982030530050387007827837269928803978567336811147265859446837321439523059986996950910856568855640271128576688055199970740094756794887680060325958235797069583373256472642875040718567123474656790763484542315545873113026825431857735475004663913590973370615397435654135714422821434597117144322996103859434278451153006901214906574490424433441549286540211732838429035721820850725232536865473752976259962190029780786407159294767303932695290003233105861217421637776948740934687123179454667562402901490040262181753469577026402670739148178425527696073704992349695690579456835671088338151013310322709541588712450098640474135038086453583916007263180161659731138285859308023514994351498482596679085423984013914727130780267977593128625107712583377267993917269639173940875584855774922107231507988285746101117527338726738769406788921412239727834165276350020747463218008432168749440370883128980983847189541144745464731583762942638450088140890949196270884572294980465847661484043302207711818276412288481579201530693070529898053568848558086419376611136853120840428882629953774414290708535405426045865808099148699641824735785985037518550064979627918401634187340975550216372049715002462739531345330225615416594860883944177743753083622659792008418435343157121292959539592416746149225918121808210330947220740471880627912690835082335549077807749158266572808485515191031500358112108891789478554662622061024478251557516431243657210017573626494464814627220189031450057935034651767319988940280881581063673466167779639329756532329864935677151859657922638322669534274066880985322240203113817540369093302855750300307070739742589909837549693742255792535705758638416642985323253748116593963023315029959620916227389862186258813102110625877380050991264960298811920314057195740717765507167108271145680756918163057036951013848794191676887008994148373424953606320590409712713130303963135562188721812983913919419978988151620350813183983239844960094185118762578076035712244959339948085201240214562149043889910809219904021401659394296705439426781519991091521891839032495538991509122010641379154705231135202585707691990102110009968215466567271850263519539035459077341658801547000311886939021190469547128414494152604748306603141606830607374851255437607295703506040877476650655859929845397289013411007249859658363360302871991494309862491436220583268305213204530936486809365219703249292689292839040620748030328197435604412962013495871975602641463335775043511279483684617566996127043413431059179082294143033760939196336889236221322954272491458398813583347410315133438339971898537991103739252550774393258339334180158988536607450991855352351002446054789305439599045756187467649042544232587724911512065050731612716967916613354179760729737837387201478070293556424278136872586574055390695147982306511769645627191512435769910320461500819660034211396735312481563272952987173912806131164224413080122454175184163782032232292082025549111118570364748630216868545899909882136467629642084602593519448022875677066680859759953996121652221336755101241208884712743158856030571029379883801282083412466790195800409121689382725028962827889287160792253559187039636858411523358546040450788635107143765654399832752555301184932469145335621884047679049744337596056065879322179052248319339025862208940805033793384433629206126482571387428699618546558437073448361843841975509945264671721483794987621638264105349924813441375212919649924873303671919530800697976233772074779622431482524312547727419426589061781955514604233564154658269386541566609697610785236888377147788217194016413626716428865880765028451363141840054111140154188037343233144954832096614589908621021425892073694772862338852303928599587647115827963585785800156323449106117871738604178327472496302159922961999850597157428077839905765426774096385100620025797188347118102489930681904031642857157571889156323909356941488207460629305834190418603923830867055808681278184714093922497108159372347065014179515173315942829571333280517243511723579721073525716777446433547487081489781065415402485272933410059118100343566317521241660583512264008075477889225363460296417157553162579087143020855448452572911779253078162616779742149744261545466898023758708148216141912493865770689507042879520265944805113077522576599066856730642152411585672766108734187779732539730383875320998633742459608168221243974833940827975750221342357936813936094997016254401148755492416970770693470664634227732317884802296325388426437608227126998115027282663541056813825067408229367953403843537163920907101929206739930331206265318354411116966122686380518562712059300611546163845033637558458893740634728424863680468985202027243698021603377355357104538433678207369841865423215482224502327313583032819771056315813283175237961076033609442538383222059049508561985108614139106557207971708693330963238720075453852167060829234429739750109334113102402240799313537140994172717622619248817127200517576792698458789156228678929974697091034538827852881612154567534233472155423379360609804861623859229376796911186954048224205705368064322985354383835603915631412675276090804314084228174815504382610096129659215328758433755487196621061551354118719983762326070464489340912662033483274102559566802113107518736494036021208044683202161613489598118080200578783487640032855513976685506910851138636429861899307361666794430598812231277820559363026186088059994031332720358448823257044763428896521214862369419930311334664328953677503456387733481904986301352512533457675352461160331199505631428185482981787790707713496513634866787735483414630854274755921965927853667551612432495603824130025958671544874595742734565721870386339795571248640748654676605459308490871373139259861092447572098713610680199965696303675837964873442719178603762670885481322816222409005736908546655675816000237355074173267812638077525885493271442571575590541810852842344822590467756304940159944809649045711662920409284379872170822456052479120857349995449545231367002897424119838154175193186294963228139179027003095470444941114819457481611932817039327560903090095807727888209812201295208462992992846173996668834760367806954061300725472213926671635641205681045441316133953688020365332892607224472377749519190592002668859676794038413597118354143618759960685109780946938507916404318151957869279845159578376382239657196314872138570663793660170625262225388911397854178835140812806106599547003816991440239244667187903076263671930007634543006321792761116654287746845840283444220055182971466287293309022379451919596333332488083752739569612712960829036659980964208836135282286415160915672359417441159451362223650849407553971029453719786021175372016560292688645319286617425228782628734353034118009217898294356492057627879429799030856528378575536839182124736746212126456067761245094043372230842619708102341558301423061201276217827289933368264137205890323773144388923064423463657821601542720668029651792639578663513385433687964342340713935132698447835093542055312275925277567035491459787321751464777340055567138523865631217808654005858015990011589341322222711271897600133876337300353542303456715984256418289935335465811710051780037527007480849494163891701691593183751783071100519946333682825948261300489502233722968102421944793387021104280318727024340901061221143822031852333637677222133038264741688635374816403967256895623894211248497222972388362979118134652287258240241992200020930756039472826028177702145585467888464510021670637692024396018524247099061642929472307392908251955004636771847447122487896755721539540178621041785939059396508662371102646100164019311183583043216402479837749219752404751648766612450893603763105458638174882129241231707192004774883366589767060613374060035598654873753690355214349356967367477000945677372571898998002993887818080625457209991388469277868832645925095772961479310358954225062996053041188436586890811591944787414590197456923446884420499916907013095478299255398768003991432486285686701950123538961255873392222164440979700608076935351561435608117339492674074465359396170390586565708274963346507463248652252935483127175826941192421335546135477192540352519952271881394403357842574614500964445353038413157748862427380043419274236317710178384570860115895659554055827183209832311666277191662193358628023471928429522977528097032857934441873653686876794222605731864193896356594875185948594617316307690556779251881296471094946366476969782968468655545754306789401579638367082177549791455820181903797133564242929411653475719263133062534150041915711508430852859470507812950441431608995738581383816890689661351957656202698934695124334270438840870599135938221664017015909002690366715119918242639111784140233710393462414015029148504357228130017620842996098739575616824834239927026250443247344629313393415768068546327007400697623185364460111680045046903265172171302598878407982303862348022023903632540706459122938404040331490778241866655814888450934003160195731345589272408069064502268471965022968686980348020745949280964146808647859852094506680497058408321273546419482436784222135264395913700735468751677588391955155600025414031199249190186194082025198961827104384632325962763438729050313214772763144016860272847338595653525337085509649869441993921848916258510832595037820171025757602078341544925583087351934240399079311519604168392021277466036425636896123424588907611737746661117222663048628238961228049544097671414968934667150810544968930234082861209575670405943849803397769776558926320762341291817561275946853096688949224517427039943194610397870210914174808381378226319464286535531017505927491853959102264651676040493386511871622139132018026433425231723109992827761987061156386176911564658876159685526857939265747088196985063770504431993984745894043022940096852491536823032637625915845030971210528705524121390754958651650552368032889067998131014384106150732597773636790626797006380574139938739868665344730710313806035320813198785876268726319513528715425017383132359200383064916322565164235629245598940682432546533367602108474996161296508450793926716666461583494048107477371897520196350057939083723890752253300997027424569256458686882912065802919418579594032830750247630604268152282276830670756997543848615038926042501058328466414001215605060750018517623099808642665659263321267170380518608293451373471854941553736978355661667996016117109160246017560177486833244712032693221212410690770025682102142402007828900760288553993245488189540224684533615283960526519658393289385497105314828113715871595856525984922819145399464006712986623278274121786475070479659005478449400099427686637963564064095536368537980618791434011469222073671687154337834024898727873499492394175559784933708813965936500641250595974294035287627324605043132748187453906806172985588725286927677784896911028905905919700967889734888946501544875447071753619883771551078779754748356508329103228377689235306508814415239403508767774483394920555066633560136114039478138036683222783315122429998526740521954025194987622822080161317937284414646405158780038435205366804214954678710864561654366375062300833204999909043178739135664772658710900809753496733129302637296527738928638835264313479665852898978274179376698837252279836956841700156845918613066328645734700321130187734139265480209147640948187772936933639016568809291742798986627971941087303386712952996571707937454111429575006964797524159627224320993018614015823441175773167983768774024225977631006944838192059134114711268005968012654361095514599491679314477642059684581980725640827669351938687126204220308319164756084878017280703434670754675502521797301273806339647066683772958672374002435449876133730144033957473497730065776626172187011215533302968261667090380589495774234267344656749172370483379312517831087448022620866026336131228268720265591346736807666764817944573109408856130233237837882153541838321177767288128983386012246385227532467412520653990696223574583156968136259793449312905567771732879503673622429775264165212615118158784775129100053381342801905165452399752831858730983580782137167062775930268242939269518711487611235528923467558674204322148160188605527816549213354030837723065132781681778051825239552435998541675889490589161770794906778664075955023035103948067434631285833395341283859371455054973040851913785311235429580538429949042079186007535740639174498011739771860733785588649369013763894398362524362167194863223618673792663029371453104823712551793723268162593040389963315517885790870547588364579000290819319539941510361433665430033699807828723345529904142935656084273524564331444245882102432706108530213446309369475761854741475532807858835437552854226709658345438448875814338834598412958265329415502606373100053568654858824905916189536441032656922789295111054938034676642441508866260472725126298329697079641258269794731471086820814755243066670258333529622547568102230166740056176441059139021822446544258147133288833000485042447472639118734443083435319738000036019810135536028329053538158632125137084945926520888793924619023319661714524245952898752133669946132208845262078932194637704727430296901508416738834883257190144930430827272433311530669380558911237261447848273816457819348516317079838547085749677750982345786369997271752191878689221324972369702215796520171582034914499613009220773606904887604032416838920440735552400889202131943336698611557260933491762348158769356985212062578501455466392157981611652815461521267978553620248964116051915734755331832879963744463491466252109671156490672097185983457776933515742558648320196096253838850584084495719703595913717033616186474129830131473754043412324508555614792552458842615989234809822242367738972254521176441488920313946366411511636789721133221424056306045449429755900271698987349579744865607923213805951539724190830834946738439205188829942235283069685408830691039946806621712697971648873675219875729959707658067671914684133277455395774010321816369557562024279642881289613058619516472857928683193325431230350092561213393310198277676955763965335441851656161220862897795058257064954730093942248138264812817353153498950301283074489285313744954113815342044534481284229071834482358570969952679209068000660538701307029170930954935352321835488251781840084128012163249441834808389059077980403992093101744392864958092653247159093414744281282835172827945301581198981079560534573643710211044703329118775883321645479505379221934876387651304395734873132433944864855304063201063756308154534185932149622839177649058769442481468178942144398319149108992501364366489707434295693013374140985196220194736062100987226335242306699308703701068646080057271759677859718574620592922123039714172506003100005161754100484228326945580877447440573867012021290039804025406166790116562778858335566472137713763102145600447152500300908943439600482413389535172403741713820657886231326973719317452349759061710257568192298926592601182584469658759795293821071539661909837942459368672106499382814220417654449505579418434824776277803653143114010198920590680873357374159376168051762512785373179953561883881644984973458214942566256712264102441262728970455574749194131457367468621145365593123424274766065887114801763896424198960760382190622352138796214177820683897586663642743675447343116318580460828942436910612313935124175812975850702884777572312249347538666600860275279373229886129342648533504625984710095547021844397507155861680730869146476547555609650076412072233862776029699375484409116130663944287734565066340751095120637271755724193502769215134862509947169457095953101846886970943269225299517592997221132286845931988177250668526542552110975895591696233227397628540093539138933909886246988041612475868845035913977611677368037619551045125535569593376869143862530527927810783771368352189063205022878039457903382416855094629631579806413079986542119697127088628131584420949954838581729213920002257660697822678017359444451275004227428204322801019023612738861881067294829752776016296433994187720111350840362284265761946667401763592265773691156788731774290247875080000401679938561387339972321175511346272907094995708792371647979703895396825276836788135976521057458533572758099400737746439114002268106760915738796764508392321352812557490972280063191502433550219342023010597745134041443575751233102592947629763938761839301861840034177704631956418995796175148043261949870581145746621003144591265424854500219701445591906301429003695304202118674085881433801039050029576859336123989095454487946719943716795277187846339900151602443031125835305313548836691997212156627668170616531195088131408947059370485921145441730789821175476952815520448012693369767779340833421643181506929282552144931009379499222111406590675287559503318968077412734158761917525636188611327887009933489964096975684171869807887386705046708533157260761044564862345893051926262037242352551908525688798485723924126814583899878539667481051542807293831500726927444447208364756216242404761257732667197375928881173692452010502911178275219794256016896708292406304220667529371335438172158977282389516277644441042247937882854034021750369914912746637812052086757080888011139820849606448048788926911131333329070036334986239645583087352022394437029398023197702049684249351829903265383459478235015064058143633526799925716357465027685712207986579142126218754752381289707629305274431980679409590924923059139211710676461046354614563630196439502467237618949901940007043935818391586070420117208702123298442758561619885534064910417751056454579535673287929113914522495776627812129142151107797372811074177800456862227384693763928544320882761332872720595554932421327930405052277893638401295887146982160624909633089160143210717904156306362742681767440403429123097164428644524747467116457480378590448164913709039274348847362221170037898753168751918857580298410098804331434979347031275519820024698123376850804330376600674856022691038237467850699447096823714218775013388132206336616695181921683530068458062472876548465130864518403481665147055466938888806604508123829532318368258736472874138434313802102060155090226730390940767751308542931910849350206470126171116964307694461241754467303053705842048413820651820284934343987301184550662805639502799678152236624239442359327015110858118481824210999007560465852916617075486063586091980131187371716685930640718840697476171247711157838314924779695472682531789629592082882754629428559447960689900809872412332568467627947986351838136549683371049083299563581182352124130638970978455472387485696699542272369695736585812043035119775972101404891431969249914540711471575825965637528586061767155193812243061356046005499893026425696205125377610759368342512589278359975466035421199535324757922239566938127703557012036107415024452746327153899493057756068105620430909460146754461133964010742542204073290079020586451839015495647266778311202986133654330035658737516957675288447908659114810823280860064361349340007863946410808400467896996311634949738065795429987415842379909465084783626702422081079338656527619957635968448123897880586050862487452213500268807788550171701252821658886888633336443680907709846213097800052558993418202773279928461239791220655052841014284933700430022384788785372037625389666439918625033285978630058392200173799968880429255547945890393702860522249631217450640763276539218839472459038304920626097928884356569900679677803063954899533948805862582503068669151052609881273478793541976389879713015602684048846619009517121745943652596225738869648829576661500207651875728972990806489301544991062728969263800203297490489225539816719800606815372680456712522625273527375384016190127189143318404204656856892943259510941683769850292133529846831644034779475336311017120098768174290710498896452274998258131409936561695661999980958089375740404522591523941905970744396715747194075415562067069296723202442074532553746300907424319658989787233290813010880669353015801255066917981641215393292886349162638617232075124829620237455158085364121044045541960525641327936683192947990777440027780116195091698775021073320589945741826962388681867065265239851298834543191045971251971522404179431132911324577829821603236806140323129998705026790271241553563281401489737381926192198194352659907674668977235608540587542516000956691372820424759095272358465459018006474727630269524206216724526759693547446350535393815671041092273960671472813942406822015818488801099442553879809681504487354537574585833808270868543124074563312877083830003220663436487807641062441165276189152084656399775557371859359944119538451235108491805594832856137795960182882064234714924857751584614419903332847445749852543179969255039580941807043436716474902504151730935510474257200022494375744045630871721353298959182455682304316433431986191633186030082590213811965101397812114348943102030987599478623619157257429402284019004369702529953230499300954708133571530732321502919519855286857681099776634575604586616000762340541263194314875193226670402085529158063941158576312681999680846896294169807212877727503968740747137695130010897523088950235175868576248342611702323748200909641964779346548873688034319548801312957505723235630792843303965352999698085054179661021719487345827745165327835663277275884663034458515965973384806973541675784746226997414490832554011099160951125406684670226925781456364213561736070317096261627957231744374331469999220280642469651847086322140941946869719411584325338061674489704471750043272113405450007535671596155970518277708951685651924838079710613350652741528822540212913899517857207228306135989525751026334688288433658924099715127300098916597964990833195504301808775326085755397046647823338060145037517495537718800213575389167100796921834013826945113914800662655096240578470498717502508410467400028367652347643003783436204264363162508806809179873240712085919810228690626547811652205445034766473862880635623029891584824450580320589719824204284396193488055994089059807677935054727687596824910863831612633499081890627995622319950381097052574260170527823007232855637571084261070001552579564067970115321292599919955248811122612367373842067587844725593745695846254344418109212684637743829263186158837734450877496666566976012011168242500585657757605192411000506984583669949058157777795665206312177971453199657216755648048980945770976377003389469334533960184867226790103327988269170485095965099781383390855790562349519163946184031415981460183459000046919065946075014165843837959954919301466208535600699755540983774696872331081287139092926643263286975885660178927063315445565345702117833219231114080370731625671764480485375607652567106325474560075153438014377312678447665095503332566609470412261033286970218733181236315951240332179875471748864147851610827244088247443242551629058337543676615376829335992489989769671129610693594155456037355108645535624992288136329978237684396804961506972044216949327598831642866305416850072315286484172492714364420644455100041617125620133677479261569317301445584998193111838968417250828225759525660665849205002547505049964143995292508606053147771275596095823001002773423772819303172421246054146033050957322491351167706661013031317269196278957585158959574402569320137290618918164492040496676003875764926270486092067116738651467256171654791424594598012617915453923541512072436621550943522519076065465784147430152170163669238799302859349043445052525331471436542151872031841684607617576828314274454737243999691235972110863040190811913530202399554895111495496251574812333208547993318066913636260717837114323033655266323467128904067233773765749981782393234531924036084259645483451302592609052334973990121566587865455884872517279901193952339306520999282556681814387825714193634827272735249628265685153795586960143572841409648624693354994058054404567030650487310644814842273093949541920041245917548226341958050922248955007943858736891030232763927865128201400781853653591100062851106807160160625969356952767182009026541414750382286590385500718181853488516611379429390098175281999585097517300788426853346564705121091904289609425195208883438237560481074502958632626791910658939794085861464573216169436730163910386380055213956880960051063454329188181953488907249357059120824834164608477944911186204017418730846824550184840513225439060571329295766541822885559166663538199394965449231564793947172286925333414333463279497038245761914763858680901138593296601886338014181748348209921030061833153741559411910587308278105089034693498427072583879351480192001334964408400314425631222949169953622036806221767318909199298769843424538458743937329315919545346753112159513070218305556576358448298975871381118476241016380581098371173911842385040271309175409412508896750209786581494431688323307749037072786402029708740904476501532209992360487950537301161660891291471259333215131083424919902910699288302919233489030148768993447997271688316071968403440988446695945487890225451838507305321973982943400014746658075503498416340326664565480822146853098540717448575759098139068037052259676072324054192477543323506301378853004292312220513433637467049527440045358445651553644095440373086089795446071623891414503576612402947582374246146818988823418405011631018704183466524152234194493324119559054308339339580724680247508714531802328318849747007454004611596906411258888151500102308169127698306500784943105133457158380647201951536321568813646804548287466348450425387468782353196461144806406296762078535695124816837463523230312999983831280511584654709036733508290924321742656838630157872929612568635562729196197674631426348498802661941632085726684718551558543685002678541254737203811299803286585275599188568426894166078003938740534643100609773357688135706575725450020745919667413062137182155781739299409791061698172805190726568630290087680548216511085384083444444803686940732412520043613537301275142489142471314279793829543639056036940144253257173995773147398038098476257663705581547719606369655407671739745510406180870825949322308606189280882660705358083469767281959684541166966766529243714212697178141495669060306728217429313040872524634356565016966310252576783106842382065790298070530383089515278219488344566484783052585908309869871339101660537652780553102463777507019959635155913959739778497866107540716307959195362548150954401160797317444636430387947385830792578462624435969909851033485599908199526331514460087130753486673611324454544592732941992051487624297454200302578604968825628697045758239776447938731508789629495038172918442415650757004156800864417636775505723415647877171095503524162244399591075324760881714137742235949315483264377657461003985502126655446345579778358075129282648350576755680354759388464365369959180014450890973076332813528201764742959560139188146039371813327810182145969753378235619486910637089612310831704111099940928339466400168406619777465832995993371514288608773658276770615255897245397524043300672843153610440691542574963337799701956518873847281766629559760629347313546302310317968820378891175675298051352076695391455822087851317495309216792173736690452938464517647815467904321300999039674316876062518925244065302085693793147445045405101650475621902000528506159458275093794705131715495518361636008946859315957957904040379250540022448359590716720597514487786687281651379911075674324830340676379137837820590009151325275560999790856098401199105640602881808965299687384740123914283275465157383442398105702269989885486195823693608296266053100844354595411282203237842159298541673935178366212767314069020537772978542304204342982040336770530640377461767512938159982115385472732171144244306571441943524690304054641521902045526735445730328006632753993157454767315019497984780413250404890477471161343305864131362691979855056900327552850709735797245552185162173401665092959338932352714467076787800557481255424837114317365173143533916497225915693245573729027059013084993037715806988441190969972345181220941531783262156421837515460458749527468760885064465169203234046143163374629812319092598767416132045540422835665267239424278626520128582285870264285651074980581792002015833164680901605765306051341464669031305021351349399698751100079905151153332688902271563461729724914653478462355084800532168567670876080188966517519937455672874155205725961277419467202436449697453914048015216526000518223753137721701887677539328365368936280323126078814968992657955321773039533353928021225149179961185214886417823137922501613507134115197551290431370637771220808309215872878120995180729561412622351529463737304607823711630452300199240715711397974756074004190071061714634758101267207068377652389702239763955539418276686128960613739809606096212939366979577668112536798539167261068326450169611160895642975261520564681649811205845851449472224386711915492301034463687637933494582756118938358930691662555366693611740893329738943727878632618989402313560329644408299850171235737471295269259621276962964524901030633209402542103673865440250495317076995414844092184080748899855895535900314925307187008517501056728127006675850664696746640453010975613737379998950136240491968662830754089573067927786611660934470125924031250064591416202846002761444050334926275284248726310793899555436342940127549142850228821702384478589643727883366805621325637819678479351597208575515034992359722111955948346762506623853543735091379027823854705892513032441092867348029167356258915925412235340770437898904897662395522351957568786085192672485199460849583679724606769222766779892519356620670800324220498961007271324740848059445311680374692461426265529519833753374938951482181678292369722695029074489331463884695269316025834949414256617648845018929030421756527337856607239066504885566373374938329427258189759667544260857015960317856076121313409090788133326801418985488367876519021821415685085050039671552881568700845970925673423399433223756002088668393224136291416525674096145298003160566179184256118056363399085654873491860335242446267453774680107737112484570135096765002302085814669126298155782802999745134532743694968351067833760843893195115718645300460486290537759791379756726394690622979259753750795487531073908713516192112653229241271254911698616824343552656225874178151219280343246888680022534496879013056592781425360755108951526830943594847299887561604469911852040894081438452530902712350368661005500781882841268364797772695177038437002366401178521118746981268944697652427305042257100127433281138349973806425655682952648923390864044615318882964913381489001585662629073910630235545713625805501285904675156117860155469742395763862635081976057341076455467893572421275969142811552911529852688693225020244330136528998982822669435406350215030500616424632198037093095848157745936154331315533409440662479461673961258200479617717580030569710796124391834316787204540444864261617612852694581100371441861583896058752627033285088382612855541679872887711386829969898946132080585666648491132901753667664853428456829623301441036401011216082963696066373819935982643324548220950950460094632058001441804640123693158925037661490283796834873356804570450472102940812285534564164794533721159340141335614798487288953500866315187962085465066489770188756220830351236580243341127380556484090233676636391240047943343287295829926997085935360450388443148066396762001173732671645095712678054729799432108167649427505988949441745406214550157417243933837291545002450434333499567704733706623026605240232185646366482830114016937622778832590681395355972247052883366519676812822401843273822055559178037615838855634193554504261660692012678075225759530833727204282882327624955155839362939912525321341089492070608190668197199149859702861173569574030310982983442822736340488299040877062649371456174833197427340203075376916860457132302904168155544125741142558983408423228942313553149258558539822213209568343209534022293375025174918126409926756779703574106418812663818466752908039159634094490868900771176108640542393226021912773594694417131697587282770339982257432214715142951875811092778494903487506317248924594553967995442736006540871513733910315986201757425434246056973165516187404243555174135710093459509592633019235575530818989783619529734886968125983537938426407257619106191997533870225995185284861959943634659874849508358809135684075208570176793234546368174911980279237309523041782232490820731981220350304746054810141849987126226683442203529083567754566396527267850283079593924727338430534745187085275679555173126209066668071997410009345164797770204947032623526005947469020494419180262365502982946144596060495157762834636014783746341832774679407362109762456602840394878295475497022461998734711158990077209102930325573727372987891971033433769449499506112511128899283221496983274046724302756154073779409285317239642169543142321731649867943230882579186356459395527878067118926874560079840084564788577664513637214850557646646567134665799648651312992590272071062401090630795743923548229867200406833681828544322557524245926831968689861268153034753667763998071402578518966288072546928600427643628114632000804234396762588315299145033052716304758357899513532067109562894169668940822571420813186764382894996945725705070753164484462858179832436865428925442103487998879833946790125487504068417768056852467178683022227769725683554221599885189932917177684744829485913009995445247530778106240285970291994869792942882824522434299210806953770224083019571491602759986071428212687233748906795445536322509374165218787520413487696881621705319435171676479558517146553362178628868191422708785486391057803766155333201511627905262888634032573542006993284226277105900136911522106492106507697871122822856106329609918641575369484631069145712446004537941548144501028808386721716835512628494875808533642545075032489660437063558141864038371646001699202006986257932487961682111634347122722277313093886622411196320098232574755100033840636422007124111120845865341958606844135543139300784970771474931186059694967374046636713267095236452413510473873806151310804213975246979801236310072544796910766606519254978657228448516343756706262668418465841911711091474544740455865343605382382238160902584400520227566585929089309271412861299959081306581612972338420404654598689536379965977272430912636035850816542482943425192948372830449063721387967235797910982621708389742972155827685386886256816970701670942639647236451565926778808839971662474300173547431349122086280150011398005459387394970587924817217180165563983785492634853153755678181007797694329978427625815986093814895527645515254497953157189834048135510798783030126778311400514210212252893299741823835864144135503988998704054290132215178885288536912930106948515247251055645267827331421492254029808553910505020944622996203438622963925793846457632673182920319167419859940872410254510285937911869733566864775431391914508832873696960170907720144924221177045085715742007371542062654735102546831415426855418740997751821876304291413490092984970900361398193724680932751262006902984486886027920813116601220204101070163815791288223422251307667382385250968433082911726877101512416444334172400672901063383813400689549437274323782538411149907606407731638225004284394941301538288227579566720097454887586409509554946391673328472077921203795144915416658292159662955224937414891298420845992530506038395138903395762432515266537259322281625528048803519245280507580104269888765376910052886586123953023804751861929466377875254415933174998587610376043681073422851907614699361063287044491550311914816967465761920871919007507810244192526204839220651510538526675568684347786038392906290627767550745370953054528146793281061094868627308894778788166959278636982019537033454616175882756162524784088033665614724313049282956597977876184826357644182301349670209283241326019437180947819503927238383359523395324813445128114152264825184429542655411979084883934339864577211459527819502386890672417875661228375259912664873781768036389497289887915411059521454214970402322504504274865294680656527813339950721643472805353544692360688313574984656119071084851365971102940586171256503004273464834265456455395705966736627150695571033026962278936527061751491982523089377997571576413817931900447173129639721471889212237339283477468381400882026473988658796697913835808055258657689690380339917604906632756007038696234341593525587311628630385074156673628276842787014331294239074710778168647611927285682475164652084742975909456490804636299208631044836303670867011381932108265116466566144473363811472740082005702907802478164004943511198075286879954853652086029551256507339401949055517565350667518258388009706827122710252048643152097117064916292615369447588685740739055931772084399171507248293537739241106246601813321610957631603058383837396420232539866815706080845412382669720192225668910354082244884525394439224124621388770610220140574434799147401113876998345044554336365627975450612375002579082592527855825470506949013867605097295650433062964273937633953813519498053966243061758395916073554312211694921046348097622516760816163277108318181091968006728612028405605979750207701096589044649801095847456081197154965842766447797755064237309432889009778182520019109736883391986523090136892427323259960452132361356218048621116244772747253332225340274944505821566860366290324179112212974129841662146975406151135667174461847323454475614790282395379376322385449637596314721283399526762776082348216854195712859147434450676204636863309450645206482758122923101797791880216783441366479126657536819073930834945162480370327982029008612308058735685916423254951219379275573549422077206156001364880308634143398698239777134923823417598299856272252007084849305375326792811455782378236669258371930044372992837262063389654828642495318204183235304028462546139982196958466005619476655761198014741372461148655131127505089925102401613056554470153559955983673655060900568318944385301530026664797382055300018444897328622045414509425088980749389633396945607921702147318293880354773226009878911928970827494169877668072595219817511780408779061873440890982076587196673164055742253567955028424319523020612906673644729105098814717053754060545032792287892583445293967972444766623257435059968215591889703183436266375027956273486959170554295030589270199436426585725959086121200184229474470718958392613006099712642221571764631373348745406189368485569592569940258270822555331897438867890119374712452495391119313144878346872784062824998360841988691154261991032019107803829241824344479354923786535061417069036374244227647588735927858709546904084049199323816465358961821214437963763080471755866944408592719769045743150996879551915177078070118278570433252820733687895894073251810844087740554866719376985623719430535674297030246893161227065216928926640590979297376627657033109600152850762369419279495480356308295690185379541616365822017877253192869285851812463763283687956660927649641617965585601211491721642725475783427083135370583927848874774292863091320647976766142476281190960218364565639083044527979659868072829053050693980059390687657017362351465948213621862024072800963064857059995565109614125661633716417959549505041112496121528867964076777955079968947599470200805289697106460995914808763493876107420626058136971732237234640531386130128087812846122496775100689739562875843098244474069076366316481996245968772828159982370452349473395614045196685891512528762670675376634082251790916491642200593691118601831989429254572608224973184397161477146116261376403873968976657281441008482709319786461393971670078289554128510884467645240029229717179945380290302263905840661298595056140552963652695541058006589630999986548626653083635104278120301754369525022720698582809420016988443424413514996298202039447571030182839869374597708246493813450852337222952763281936874969096448052785168875990520070277832622097100783778021427467259620818360821913491702332707051076581046977930411989929409429657300969036974192120821016493571907823190522400586546648100242704231695664192378564001154447384163679209277721887136395216924236587573324750764911491127509155822293719218146033291830062177654320010034023843919488928687349541256527331826468531571782801938313316921501480741342268620828671984843972849788939252931304337842423691278407825706852645531576043568523166850553722697000183282837001395018732250336817543207470705356021206097367523080379806056652699741939464894095485589827857982299147025827860311799975614243875925194900406417901087816901200503297283828603264853786969157259966444012902758744956015653999543214041428427729882004790063564479862943950103247146445941712407227017619443155276646807008348724496200542062202816381338210587657594439697532945431168528848366951269616925458839622302317709495004093127272689842835764311180463592671650403694227544448185113044604205207850984710404423625765538579130258541080841784314545471749008444910403387583560506912739948018386199283640613316537552390828258191971445475256257200737236614171782546306193469217241464648023491765512557227865349658493004727973768369952249817624494408656937708082427489644458938109516394433477613662998926298823281784164470980383403626472751420629784301609327300796792832582490333724922597124069198290642902672657578412286098375238468885275422139876007702875291780385046407465156690101679825583925177825392488949933379677409776474516185554455532839447629112501774290796499564140389899671777080291737583117492485074153704165810748390637089425560315836551084287128421440638447434422391030037746583761179211521615306534222681770192406682263517564316941159611643384199976604950704167597490229571149381567467866164001032745110158550340012046699699747667093137846504695417824495225213848035061274267901489974886942339717983006554476553199818039060313824612460993621264977974738005794767430191023219346956099804851421605547669507471495174347806379370336671886877015898200883068006817997465487262143184360919127152468670806972693023333260866234378564021297693246280834282907780131232404599506501063303069813656847712108405573005514480907679521509080444406428573857452305352361455109571722019851316900567022222822047808998576887211604271806312638157335604035948915475010046713173004664680421055608705452409405021549770677759707850019695236389694334583357674802900450323703509742864899938058909484382526235491212124512528592427595787797864863833346366586813408411108963574462704768708420053564541992147850573965987587171031886660462994519977768600614876101415878609547339192099179744450565082824270969469657602745401669723516768075966444577712109957498284388775789535062820697804888287965659135064484844035091513003926539589319599252724919090924299026184946189815190790448633678375017948012662652798110604793377815060077122688859278035486219416540845971974982411891015777479249862909918401924848453186500413266798295820544344922374782197720669835168976229147286953151611157184405843862178988874330436466801616379484372909988927635608423166755019019338441638887905495651692090275666960274497534307801858462216920329463736239803170743004451683675154010543333503968860563706251106524409589505426264248457319750453008517640460352532043610587396619552777858522559964339115842664805975012406575333346025039526537998364195442404191994339337909565838583542020798142731083429176658227274122418892793785270100897552302227208016193028084793638196750047345324989699301820070478867479667987343540456487819945624198457573475937317180172921689599651659921322674206561024044914651493556309739446045364542964324368567278833676370000788865587512789609186956686672751155857375944815525743215809291734411852770582534208471292099323966596086394689216888958069184663823933890159303854399807102273312326508945091803065484727112582659880974807977801881503608495480315492868523424720878557701799346248678968913037496416411608529319148577162772004862892900184653621357473119946877207474950259230547588336064904490930019178254843708806972707325525668536164632630942886998722156890229612648820504132420679024632547304922408967424253942577416395179857557936991820342783452785662360587186034200617029114430878041600093733161318104878498735062156252970007913953178209790338837227138231320446937837915900639980888098293878222825822327644317737310748138160979692620726681698309424655268621300813492469782467635745877475945541638965946377235144859090818440540579303812781299724347968996073948071788782366286995140625944888208660200949682438081612673157901257423344202111769768165144348130311937441330599454946315168909697177187732586399445737392487881301564658193738960886397513489226485434114221005472932382740295486815443725985799730386324459563043609153224084386390042111153284751557141904156517247117049343969885344223527457571788483130428709620944681651964350625961826048978572549627684476966219562208707063954395705918758959516749595335573067201926902179859544851238866725342233719267195848895139317013038471407670476030974860490735666790907327012239197890575939562500206710160416386348864096640774314046953765158203915469525434787017787741165926444284741095983301399999764995314338583537652794821289178063018041024997218925236386138149914958921925581777556868784423824189746773308706939248520492606723790724730337830734646905436786627950526403116750169095654181435332626828188176279988422130295381791439482659528161087395072502736208415716841503791266102065511568775662232680530287082384843883112690328586360983753549196302896163697569625802379069426636660501656220848703014363779848869249950157686938362415307589716077224306972853372402383775448381834874586410394121868047600309367052014922183753979391818890153964801272327141228534603341658928454395637587175484847364589032477945719001413436781569711754625074981903310291644917198552551238631348673144585903327217806570411681486161840208680789765760446710811765433298194228196549808162222974446783262214018079861056098044116328017303445297551153357086083241812796576126235486164963775079534690582360063805475010743681049576097000845401900560383803328480216641434793439563069314920950963002812698139098955559719452363488215419506167045653079509735822627836759558637888014010815036264778379982794065205385295960524424269817670417892245110291736671965942454117611219165514865975809619882150853850091553066660097317298282940434933445582987126103180593441989301997805727237635102858062259023073237820659350762016900363386180782992472852393857295616227062364553869689787558819794587990843680386608676532675712095486192883346381027243023679454961032167574946648008820711894609413976233618798170842250598554484369974666194378747737167302585234069670325381466095140827623333355823013812498378746869779039917709562919426284252420482712817612371925956161991069702140902189634894868279319523446060424691787408450362368530155835533642716662164461105821205758862210170459635688840701164430662386889281407258650137828413575567054459256196926504023617880783832489120828682552998251315777442910470731301640465648642482841253446317862575755887215599376941869617844066689912557884843383363358125741766838835998813839215325527472136960355633704626033280129632979252362436829648196073131756889589968181460943923983747726436574919622411496377551905135405702756184929579799931432582969903825786009073961115216433548178986217551404416078202598394031723977816138823360074361786501193337047745986249264307716040805797508054907165981482631795980100060376831375011700835631445218274003663587859100481262529875204989788013855510736820607143795540804394219849811456418366835186479080727287324918144188918693166916398671237619299590549973290607440513207993691380845217781275066876862016485315983655640685483126705480484744666304617781790597492896061179793397362249979996556498576063622680305318229059218098931106030799355423735462945519736787347865028794618190874459675004328487486716351073009977539771679971289034934479174870795048933644441367172365426826952991824416476123265958622796551947531887684427161825255524042250617478163531488495312265023935892321931230503420100653902877589847105113680110874997862266528031789424775604639570337067685298788633820668876197472033516579168988379911161942577132833623456849149376899191443272573257327128831579115375278153617098806830673966785840563837790447938285609541681098959808593968519703712967097844510871475798201616435457736038823878180965060625977143075670043867790369540066510074036268523331777569331957297406045347245075085398046816284654029938604750340957011349963504973904389267904514999707679079958215324670046052089274725352166935623293932887422797672429920838203582851441021528336850998115943396752556048719890058782863456694532666536625018862243445935941031501083856325688706261928040788828158934343709187782025154280392222313050852242667001266588695153930588545372812984841273058055702457780585484267547971436677881049083204514502395241545324255606714290466740569983588570890454654017436732075443361754518132100366572952869836705754552366499944767776737036152763736368600122685205938272727303046722328058100422223566824721485547234239847627514389472069430632453419715777903516643894433440437589835023826093556924103667322206823177472094161943706216068679089045593644703354298823253498251167114590767839341885497886688616898987102385281942794007689373830858862363341333582122095736635545201572493583929695895469670398502320084019623699426363920677044538396064652972284376020192064352412767571499650751983109530095902751606512791309191419998952606237336143931719984602356696750754751297124180523335769304297428491700550934357486023400177227244961350080354656577463320149942292422639645470223402300107198587472998068315614056512887641148187680686432302492784651442973497179458837822051024271066555749146895859846560452492427948351022674176323334759970465831179632533622150676998923652031991887805051868088147700611832854344619310693437001476584648801080147101540400417403175261215577810638458086176511060671461945837389271104240454077567162524313962853234831109485368805163295185128860497239824817194083756835489443370858262581969839523328505967744757281077069905341320196953060434394427955077656052892463888980493491893294610584141890372304041928917990063882147091124456987407154032069624442938306546097771577971471607284095840699694452210050610805224820008049838153694667508325895625585273473111641648692195325618270692867202302176278240867911238594135961303218071582667061368863863468264733254317757277252194401044676645890597149472143128762043782813882921621006948143847268704704691252165157963823671738865530546962465232664234328242856405437549422175110537296053520852149843483923827030553929459589099882031722147470528584127637073444847109751526266234422430634071480855603383319246183144113678031562557196357852418036405218310177253324080279138296932905623613208706010207589719354887926545721377352835333851726011959625194573929382170781697481100544667127848799795641344683182906101185980434415412909406617755501324105276658729659981784953150952795037413210332801532596727371729474231419826519053584766128930434332772035329642045604300176677851557375851016108298254234282032527202866196397750329800168187878596179136026695751967196884846358077855027843094003948837855467950523995128298291625401104001198932588400082077883889416550165874458119928616120121145866686452070255021711221315936195607534532952768226156935349354845487322846864716042915681601245199715867326205742647359317258828567702131345742181877520079812796161433262563564151856861503042756309234595929974203012578002353948610430131456258444223216621732429680966020195666960553930751542208149686979769304786880398778408267348972615781591442266983973272703534227139490713202648945349045735961560377795838287607327914277193465480272768289588407726238040839952983999702226662190680611269642519335264432173216407915916930462937811764496172571938647110820083626109974116296916970425806834556389519100142090996878610468401208010814549954924080888098517974180002558136607021731219763270669489798206508799636681340998179933971812700890594570810091969944544498729864520991827949195575917662838546368920928959515336096063902097217413716728090125973404287246336046688342284039159047911140219588159073820282954426364252409004910648080557716249168862691294321424029230507675366415836387720720254612181083256542627033492345680189685480056666315093685590867291402182191063179028811786488916016892868884270116565817636996065988718102368140368951745757335691162532884338632236938566690851641676656565055974547318823038056368053062013680661848460971341060623907984626205533099400231091053855528972789614972007220895131886763111169603588691158428749275354971726444736820026270132317852785549561947159083581192575344274470884160737078511785026568415301091286580069747899261588979777604229767088705675916004807006062207252315426243872024538163028745714216051750526746770218929253290992495243693069342814719592319037349532248857706502583131761613540213793496030800876206869798347265386654589843614698269899676809549781160269232836523915262035655492559312577616822465830224024889079984707359584003255644642371140600189745058063037634181042112182459806947825954080823298143968712564339294295877611699812682499913855114784692365571770361837056976880677683888837911117367988703118604677478084776568452698243746851574244887061011460994618842200636561950145995848396076313284294140836175342759144316079502550166503838840807231498562379740638901184039322877392649505257125397334030195952682197527464887217542924063846872576384097792094331273905367361824660237576762730537491240294305866202417196773929059144417730711035644412702001271737765423067678144658529109956136678682411944336491884212843942821386553074402528430939316617717105315944033324216387809293773802051527001811735249569169534517433921176923451793817396127162732257091043453933296356542169639076562217918253999394308811129918771147672999811745096737896758703428630595618435294565998006947785112757791321785196437360765831318074643121188036023831762156522640996108908216191148441284399073794001047682020310510446773645794814318070645258979665339682520412953568857900623563150866833486455860987807121472474108619875016492723928913151550811698887933878596736396102598829828459971335839837809400230195307495382905226557913013562703864335462858185345136556717392215917062765504161878023941109339503746913075634769147847579972039983520505083436203363090876763990998599623566387177160504506775457864828916894953405594402331371416470441919155021055511756254287944507113601885879603578020925886550511930506198179595939633087921719583852220265851174539359867947060448633185204123199262160652980025923123926679806800069941261230553718233458726900654715338255036130731789448326770551303611842270890231081101136278892811720826500571719308147311437942195259840725635442735981139311633981399580183586636330117955471388221793313998311277887289317210945108908904859828724819951397815096777461826774895204312829748290490329212417090639312419855280847954559594852644135804382330765478953052589302722581111987103401894284202123539148058793711658817527118411073157300689354836479432209066485123665992436632515570624393526839287299273822437591627874075310318249780647111212294920757969495054414045884278024689637259855915958375227847465395995327044493910816772664632573872270912296711225896770255126389075228260667547875111273824508691718541576709209721856437424345047686125668772902419564437690711403315358948041753963690052142605165873128615917477791809366910210003376200823942919510069019569869864110815200033362774046143000049922373995741114364475302884732240710441668662192671015557932240203766524567615387625574113858143114977182305584836799835349119419459141713402576156003042733801832526484073074111443044553683462718560229931508488722852084329606737869841636310267186219375126061569760517410306566638413614921276784526572517518341309678445403405770989975639384204524867110140688361889975572518703468447738168587292407824007544128283542453264091099593034816999396027524239494267169265428245115189125864403809550152503978730804801776154856523665932974725576831619288436351438416766742791210573558871765704567039929135489429591836411874910780891336678393400913348129439499763051690161417279886964217658659234074984492460482731233107236307284527505297274206033397173241554095734207668149936022355556425777245583841458986019901912882969644825751709720084785836897835014219118441909705748644562751983404777678214850214640322146280607668385906172119220294602902081599190398628951173214837754425222273591800071228472998844576681417882373969613532008742077173139310441983764727653929543723973271250145885496114691506809946858459669356564759612539890858223451936841301403806051638626575354561413917450127466573968279828939722960418489751671494073353243786468018858858587362877801700634075337291238137860778868630043512648510189596114028010333307628926118059297668172947290016066758168110184320998147658641751617391644497852145998114473088694307908537660874134571148803639033152049533850042615505749219141625358169413011347097288028398662916579814368354325263878700244245165134408031528784916328614183097067612342706132201313435052588336874144481765598270120206053396402069184041266756285697221257277703998617823173103056900980446108698257121099413346589860481982710713856135492483928951548570981222699155768293893249421712500745385621833024179997109357775975377164292097689066481095029129617786925284833454524201748794636762492148831068162867243040874311492602731403591788538637642562172390368997581042324214485202955865465812895584921363069631776671412049785621417544109215010340314629243103030434191600141364100883038843191152195195966563468714626334523833616068157847771454016047794031518989949844789593349814717042766087933726583706998580177891558514095137610957589539217258433429195886435784480154800887490507953765850675059740799413488318654301124339368186222835320823454662905058005518897784372125509436285458801456029640398419162802831765213885932785156237357071111765350455940569824567147837959744766617318811036628452326753080152609636009834639518469465498360194713283696674050762313955422056471654132258348380764898955633187136709243467381838557261975021631760613765334608061818817130059843547931114671025445803231747230110829051193966005967534993436537744111584183800135508879710522020409584599081822513020200182963112784422522355385414643568052425109647438102815321756894395967496633257850863737962076315281864322315927336105845534141319685385604884111570985405885800341859717205704092156481177467452048379035684919804824859651619757096017365184778578311694818666339111386561243473580134724155119768114185311612978897657347372844635141637722603083955944164069712583875221714535997255880464597867740653735705926549232432296428525205657539936793858815722884195293020755719449177578470182689633576075839466227099780795951910787604362999912057504501840772152350971685226876601819797156732804908851301572404067859718285630126447925401130532446362017509459956251231764967136438919741409017404111087767458015098139734723940399644768343027604153524984349801716396247881390307991972257285429598375285456221072565520057400316403802726141561789444421083785403792887537410771866059537521294008452363735702021557631154556759738528441146858226112543211452481279304700413878424380771210220783155041527955154357826751074818119526409525638841608995186056978130663213105553752058702209175739296379079422183635605858138949960151826648710114297775889746888787563389758439539830353547338904554074151420809163308758254103389513091998685156012263365541002651936733676199184633952079089851328226410991779882590190805189081752053114996651831944946057917856274466037381022188868520170466629530594922603528977227539085233887212802939203838052308617406120569948525606035638234967791209082159110927986500646567327397886247793691822374642124005929603871363205566749081265325185030584169018028504443360992509503851820596972573103608708275247301517849049492137878160155527164276934294320282900981381134471400158513812472069827086204162913816710706336409880729950764653058682234614243203296270760678416000374098818943575248715108276794499732857528329420946191042028404085280026906852736228319210070917410102553289190088685542814820230481495369530101346662933247257071225190391016160108721495795236599044037982474672643275576551010750303988998840865135071221270202535871795738604630856051754757419006949446521077619081089985452901603780310756664565791181110815145019617483007257014683841085203734207166320890569713583908467628641642930651697555319050568157998429537491022291143514011869607927809855304130503196969605971204558311308589873160952228905667509733686700493321447752835485908486072548108294246661012313045517320478905861528275624561734825389896282089513715345231014400264520416292900312625687956447003543233626163142638489305088061843946962147581581349135912943116770029643051992806645611766374024209328137863416792572155171267752770758478396977650962733798185970853523689896408916016667690300009653583108841669543447901948051021025317287182191748673618512427262791904208938998881609243235762920415061829357697556443698509568499594414075259005133002956583787304612321854980063852744853522035658532594265533278285855710728905847342704928829289751538775621631093377585499320570910785200249104394866968455140930074629895609448869882940912281122587681632147110226100208411777306390489496866544200505012895751840162726509662410565741201996500491994579435890401515781010591620952637398260878620590919170828479293201063837926667600025196476139321568208439273477658177394920594978321231135589373819131720812270461716833901765591058779237202641501549257988410788977722586701912629614584809782481673456205940157297659249412947626583571679057138459522768952611769852436340537257701414625199327986577670329697167883515477097159172391411716320861502347581476327494551496051176227082868226909479765283682663180437639001075835176938801868091477205569451737487510493756600229003622087294222586739497010065267146978563467679341064457078979797406690718341316231353139786149634174095562611621257505530123784144997697116133195196883763629160055670911363305699223267622291247257190189489368649559877330302130330501902603353777358738614318763814807309249517714416178850384959323297102383094989930053379846401823200715986172269756617194501296281986916001413764141151779699264266887339720366679986287490754697058422212355588408687413320590344109360212438873587767529330685142330409854480546235197111213332846671952090491619341985126254122532632376387906201335438405544029400035674768908200759455697827404238114894611364095804948920337760985182531698482871497358179756669252232731259061547149008175300670345384778353745639120526397988361733528666466862000585388196283044104628672589132281568010583028547848003847189230386034351359391560357173947977683883025772405924426560193331956160401590858426322250917755660095100511473058378990239207967468802143520183558537943049361850152910582668628844390586119366038402846160383142090321110267469548403042286019123009228370069150685404354579079959147845533794317231926507648888522233520820621386473861108174081462969879189805619380334279212734643028515126429511712965273787514173978752634865177886556886371290408065638909860919937258151640983260097087639014923414632702846487539961962960129567385973371536444440384763480843858276033465404928298095750981016654338080566204788743816076144343873195233513965222008739036097998809705452908933861808429263327821545165675548999155564593073288405487286299803895718703798632796394148692954737172400142696805958518703743973835139239497056304029062104102833532514808240451294932983848614961668116311025517594994326992776790711485211015719062893685592399245241791280456822241739158429015397837092139621893896990438084061628000441270762359085640605506247143689468884088362716113062491077406793433203966506201342555315833202839046136841070183856343733467901777353910641254846359570927984248042364183469838244369408241144985968936721083072395205455532614533384128456740869904450345457241083167544774374117534277722545337282240258277403791803232866077266875252026394225543803488451179957411614621735984855674337183709238876831019632619780698160684270994238055269172662071029516443837325015117338055579624738860481677976550909104048148076228111597178120944462682497413307043044834240133198637786628197424118536901318037369342405325654396617226804816945994588035695119832734459828436040972322024556963566004982323153536961285717111694299261080803432045139243093497801492244410051593788054172316638379392994704243717892707763069624991638852163859005339484329236667125203223208388315463139694173149688650114645836547252296372356013119308847439032975012003761508673948327334272906818171204144171404969077839757818727483919716246487152277410731536823612338586404839963636789485998001652534302591892758833315009778064116012316111829183321819495325383290947375967187477470990482948545242812609383359186163901005699709687972148909150597602576560241289980852102757750830490437317966710691602921203211623800072498005350076781924782443797625265020810415816989212946752290598204661164890194189018020231191233751421925765170784921687166320188386364573246527535103786315288108934537256411198624237814037990456357949089516065763216846437376763986006982035631402465736646023687744716914481548514980060052900763268938868387220393592937454442916968616612174157235723415930226095933453077901991191958183294717488978587908446124692571358131364803355893192804479385306254670029794937193472049581105305383095865586469703047472283121637431461896299167891813408986293101754256400862575542848501694131391966891641258190839432356881148027585466754878686536656792465570994503160089697083951806190802833946990545035992817763735562966067302200883954485134942106402812022948489027424613722133265913297113516190506590310064318887670995298670433496599107534427443849135620246505743200060158380760786960231009644189674922375630439691371519890587630504017537272763811400784820336978369992169530923094753913919505450054557372177219757313856329188781690688245112236035554769378509543637118089365912657837330322700838881564553266506170803157600674310864732386979793804569171141764341175559313843440240086720878869622597424794404339994807106470940171434882284562117923898454717214859779614777423177329290128259959202657147580076554619081129536292867449438235095857415441700107137910220515522123545066738226044242346568268195998486315999881493308996949944936304611639714157251886737699689402951334070669914018255695657396127859343051371802410802701640801218354657872389122257053129595966713162288278378660955943186203052019655742069178388607980913704539846822755530815935286731993579266411448164177462052553745547796303030647408640900516282932879610941295588756309950226016645151460920039659365429797823458511425609802856824582129586455671680996224144530444505082883677200511883828216465816272438158138362897159742150617951464030259493218897794421149208018696397219712617966992933419944493866268897030588504501925824043592518781810912369017900536713837500480624394853742443033857615661489254590135833778877631276488103628073869291932633340323682419016315695115584082101919562989725164619568566131021094837360019083246685923581081290347297850673884208762319433580776291803087300817036606754210056354107308399000107030780957309618585471381731109803503546914476773388938900493296290941452709526293361235391610747095915618087061411036560113887442447927108335608738643260679360143323404690527942589745255599429350995124912258842939906607849669366951952018821905476180526582892198413386612341464728904096022861661306465136385526351887717507764165353759015050250708866373352751500578505071454363969591378270351015989077871170771707916569547903233101490846415826738321707670110536972287794710018928677322988486820506035729369813135768050010498673565190240262422342712418539871943781190760407780977518059503433931897546479609876172426497465584819525878360546411227266683522664322412407346332591606178793275228739850618397399798126326987471889256200331308348232133496040268387147559938710050167195734511263039872633582153088056965951498224238552577466288691252567074286576207694556944925571380982646032397302232726065484961002995133634386089754288128986436115228318712885755399226908523252505583138185177454803678109164150280708400981710642512925767083320290252698200252394727176228545555714209447009496501058592309708444456426072682259694587551018925049241897951035176090550388173555027151188475000211272266933226867688952313120483375723300954774321474038168401723573844615452101094710488977339679690046014770434103811515680619713537002239373133663043274307876632175562015745111164220276879217377145573405047143474360355790495756515891682070776043287806298578009454811131131179878882688253588789333420198118474330149400650277165777868209866426695831888983389049382136550779411510958395245593564124834129356736068058468901464822586585115443848125372562870308536759267955875713030936326896055957528689383890606964572545681857642122894037879968101220958711707414873065423179765852669985208204186844968822472836972440587923992840322591940058725803089842900932033349376463139265765884607956634310856906983967404277582087223303852131485463910852260301171822345524680400462300248017177621570272390264710638432281584411099085042382724274982234145174047444293218967886532977479723422654105740517108808191404235813320076707116893936039813794481581102284827198398965827548164000608191453605035378892376841548417043501942185979467578361493580166967440970771675945409435821658211397006290413195515694340727582789713483602686704867990095725775381141887781844741555812167046965818387873629454239414988170117221282917050889353314342298927531441015899110267572035268702353813813501518897601551597158459598760100381881231747329932142299410093323323788431590636168907116528567147641989600783835519763039559836052975064607451699736632217746584950485845581476484218093968777183218362894551352520153055562879049623503670279453139292414672160251133123764153685391987235387898897123030689464173941441517709725290953552895872002040724061534304875183789880715715865931933472520331637277708889555750530368393775582433607346019720593195474359419855119881948767971239060885862795546390828734220345358517364748225802345785880441255496903825085337501225333275628817671083921379460927921362271986991883669622425911254487144939998507424228576819105370319444567105873077695958082208095852159732719095945339723161903236902005635308537899340239859082714771158348964487019593889515265993242023539930928771547958631711822074706362786283292425244244099218535076400706908332861467333850384987414506843096353393587143899479435761861342881784531763088947255902431570943303142822187447670639620128553794687424433797513963221124045486220809832672880806396992906067425793394592192146092144100777094062535240789735718392127362222648883531678262742079141466233785838966733105216455216429826194418929075036985073727612192719725363111577021056674801355900327738207494735474859425960426585836510319263909328499072536773765123503233154874737679817335631683855632609130266231075510404543047873713208215046026016151418747752860469159922102246147295374419356603163230471798137133421649937412962802396895776409751164132625575327689184983034509440552283939089456181776605667926003776900894754491249957881484130479473811930791129373085887166448906299392980398817039167607708908557249118381534049176759730610651695920500109331023247885232828502114243736312580601659164238972335628088319318958215587191468170374282374025047039618534991216709528232412090726885068705677530267195628504076189512189002885323881464746634029073925664400822538968166920532117512862515567192330849661518364406353309127790549596755958767520992983547332062271077809005873047315536890726252132467081818934201490900598535590371992229896023430552912002689430616715857072398133636897868320845958295547351362300268347494027274285300845047501456040251546617430868355181623241558527056196066373888523237105902576679787492576312020961573033065513773980613915661840104109770660447358206853979022603708689528996893890151721613180002366757482278425479265865288072557975623268951442526828572756829478269307336392699892077419785060706323170395141409319884354013187937570214230667378122892460590372027957148499849123506515901795019386173513529909711706712668875395026639922732505519706399130694377805608128639694757238732754430234606193626160308816981254089408330809570893070188614545838144151647470935511822202445671740872921090704381734814551708125915710653970071274555496330294208004606325967082288264946297720223932245837977237511637708843545187903269162022816568719833465500715183768878851591938080920188885034769585652817883277337841993623073371984801836880306729239051322842479516995621680773762679849891493646635500025223308747588985284848936685888386417642532710478032074544412895188521150862839499893596039115393972920897337749537661645763307689230804799288892477386229519373092443245030994218251497069676381992827827329028677170934469456344251929969766203954084210935850458845085483867469240061699093090332171913460029668448370770183629478788313562586704430464569578243609340638193250931965910725137653775771607969357472627850909048604965521578537151942184239926765587705444058888014177185742044953618108204613370621915132622232293740303631261162381026231575537486807090885503727283034598905342110370753412160787750678421942338844175133800620291561453242003700344363766867273711952204782300425976868673288815392446978034630986016556866127974382200753737157681838626435755953203737266247065899321925353425316312585450643983506201200155987903976374952205626037482375470992017396351910466545475004978541726872264507945102657155972169921685013119961396174804151078412164897960291699791018217971301880351377625344480801166984568640365572176813955648813388239937999214388809562886035046221480477056566996892454071021105737637278737857745972918789470504166141262039904606855859080571098610537657933164663641368743574681180329239115658519811605511440210560027351823076727462564565489440730412492927770918473037293797572994862496973577373990067717596616888993393987760001980785430642572495647302539809965927663306757117891071553649847866787374462674776301465972272715940216548563735032745016596871458135994924939242433860642566869575499201913528122587701941329894988585472016355775193471782743173555089759180440542012507353892948259874815860389227351261784445076404572399506997620016482090125928976374651580008471029267563046474614537715962589452756394715203755036869373340611933015395434596301393089446446185519779261750580576136201429378065647291937344709259156227099253040471790105837923125922520202359821810158738700932007898228291199198633983007001235132347313669395816485578530416240140586968390301165474909514200745443815219784018629541283095467641700909326977929874129855078692608346719559772955957684956708360050546445671027275353420293917407896947795372339679050514912131801459489983156794198697546648940758669467474790535749102107468765143709497204465226545480143002017488391615896231369028256402744873815138978465340964682591264375268692969464541491321861171142452725414695498156007958299370721671364787585426489284015786227275721122461904326790354340747492642697269648788190404108872533421424685984410282908293597166786395501651847524742916903881014095021899893721877830257253030580921799663342133910090730116800342559504048928888861508260790232183938075955543179012136577081478991115745130301561600077387669698949861621859234766181818934394782971433580817957901546982785147213862647066412211324334743474452651160165467478281135352548952165253056579683254456929763607715017436754059173566906704652190595293678226921823376586572330755235277298097882136236742648075306137264693477505646138099402322277164894015824413591121547559822851112021440138780212966264879280183410905989834832613559715305494038434173314473585437676388560882966750970926275983612608235086804523415933140059261838446083975900751418732700699157731595145173954199972519601803010327927294968161573901513035393217395537484728816808628671863727038349024458465465483748807746662664944427770118096598506807335997595354097967943571069809746615893260901225717398125095704825419496297044308258342008311823172030674334233760874759047784835180724831809593742145248981770105193178757688219860671981542756334572654255501275203739620515355249185702655868851515564024770903459114326415233991808096244927255390265717188173991127289998166252756461612915822583784622187948309965733504513647412554216643811679673979445087555807914954504608091300255907889033314257437842223278959601912267377868475626797083803218707772618812132551688777981330663889246203965128823083878528106608330853816375954077183031292763511401948378187475600576126810050935965665607884976900816234852458474481294291530349915831963498312078018584175584414971336764838345270573995135896543847537685405461348828072952315359155486113718424005271476046444921677940452869067407370548436284716207316962678365206281305448240476751963884853826658321731486568217985807745876784903748703910070582782806563303464324188316647139074382626602789312551297699881441476495632173148423889489780754014278277378785066577567082200407629657028233446276173648892211069998601350269351714739781115265059420687552438833976614533724906182535720427902997239523107046612071857741434125441608078447497947780361481143017841219174502821993101283739343204507514341712991065797940983951736703485166365845540800331158196822408508058754558116669769409829757810424186536366033724063528468365884183501453971709150504832833042410526156049510444188622748439639618782989408116808936542376863232439382199936795148657647828253420523766226406007146273689343311977768458553513047933067064939086268768743190816637764785968743340632291878414693295504624285205976403412711223525819289752238117249983725568194606623598086233389761927365085423278546383217871190650010884828321268384913797197715845280979495876600466372686095445170817266827030229104620192378876419365671152129538379401178632629472558322330546788182281416070554026323400335005417741174442605634494346754699869801328434093180645514537622698396116491364242057717271340577780896189770806334952260047059855675553943828640157485298075526684249028172983379442315229965721517278984651122285808197638492092904938258780153707024268337036044086510815852835892290297558199575762650297362216205698374642540230942647663123508141359187588770325906964797876232520795747047152516564525876254348631305334834087824670458699975266567147965672156556156028479787512758429420453729865170834077449551805503243158177236041590926322405185642964440399801183137173664958590647234289908846828023639614286241549189123239413693834761952852896481756855689267842091462849538617789824308950561614841053076586048501564895890273422527782714555864225727278413389591858406507967044745255929672082709397801836302556814420519552726738434773227137842736903076669344169976864663472645871720767645311683613708465825734641815232894265584121163631070868029263223979888475650546815485897778436471881329809253482206725888806941111048337959159942824704764583908371686843165490619369411502619779706916218273317242862632516798003821697509842240344731903654128405473197524391811269153607847094151410134685501766387325118920045381736232181929890121027037667221381847734539731747019136920816054646413279358701180031789706627050865402624275071967023303118183127398190454035560298539426897253212319964400327134796268051801991997707466284048879758996722520712863520099009452051265132717337268310940123234033233804573261523972325762234589408370591221762202396193919930356212508570492642841837081025041474032741634715673938658097651035803598689941559062799564727326105231461269034830521640170088550442711810854811280117557720391736500031353727369293613089084241864511966041319723555505616174150457068439284910529684052723652387986328175203616277108924284298159294669114313335561855454263613323863840419005487337847305651092262336926756529452355256136067868023546867366518146475675658928820345375481290783854623929217628256886049739648803117093705135813381415038324106375723025202638382413851875772031836657275955927010202670732721316567053667972058235829317897910922200924156920149676487011303491621031306660992583565675724992511694870909843746847435353237507972050340524527461693610579068386339537450576613700116963578465969522611206889668205985328741650451163691163932506909199120393769830334907527154471133291365279271024345725043134575662278973683117167255581569852400854414807242224534932940950481058269922472255962945787212552573327060079773579825485639554127840370988998201513100910378140529513146405504657381439541858930456985309012671348243734787099029700041145269158321665305851299272337550955555558605923444980974652109036702608864646240603018246157308877827972926074507532001804399220427377396644221709006928717224065614849987689377712390346050150696841916050466053927557375792651373354775921525866520229883932120751686178351489063982006095597676280204457008080811869521227914672158630712481311133152455385868485433636263187215917289706681007935857506091334305942941584787137405091398628716454234986351508843453223396435758481258737726050165388624804193191580608808543204058090825317645007519551429531109876317486150355030250588394576265421844288561168936418505401754353568592578406620085891459707046183173246376254427185186067128376146420726640718833834030754363328711859882795425934690051835265641683956288087974241795023720025607085081093223940180576319589493126238975629577466798810631905134887097530390148399361471655022301217892618076127954416922238372766620565030570550576653558093913814607633682953664525660414371012392279562662151507698790933106030965000586941735306165229327266358139326788545008019384037860715392506563704189482522866794836731383382606068194147106388198177749383136521761141558897686391697579630141620194838591728148245753479334600301435733874569368931703839485569475865086668012409087826280618854484920722338917974848384462641786326209237312728919094771157469515919360268934799999850638442515633703046305406870908724255620037022838830736679161320585155716895965060757268632280069377292041177419013557024960157666210400218366815024849281627102466569847766393710890226911319213470705490146308599345545821149867708444118956855034054734789884954173927592744564040682078907199645791211858065693190439335941995593320536642676665385915905088915956507302626588162403348985315835644003321949281238626250552330874573572050423929890081450336204602152493509189925234263534776738364994174076111477319288566052316931827116152403599936782894032636579704278676744195215734496917418985854179181372909296126996634684619332288785869626977027156201262974936414865325034868570598236991119938134815008256338359075435182791636513960691323084959132307371401460846102359809979722691420628267294716898762232093206256075638923969781991474935274592461425271123257187994103791258875866744520275143399908946090495299011395497513043880021473140739688405959105014056644340174777562502822234131437431782580849631644369408341474949533612178843565677444340455478465778206145502312788089321292114613355993172448105852053837918823445419633080541779173384451993943387916214932460948454464970199310516105047582791888259941515981645000614654185151185258014535406628304899192943383647107694208822115256885032592389751654282415678244104879393386488208659189779651159604256824816284809420658653357996839768333915541295142600252038664405349000846025843176883538018443167681924681902541954602897060564437089115806151245987413431149256763234765507168840771642061432706481170079130204093762253990142025816095157369311495675904425464313030892102932450831110266811600548127523504196666359762405116051954397916984551105745643487589029209985427952662590299579570584330708943973921461317444313722990314494340488310718714491741611309993012062830623614303333046472734898434623375128144158941672519595571594854635669768992265031496693916315459406730229441946763729733770012751637925975557639203079610708752043985955784008562942770221305931083620454450983685657231803613793650780679412866785849992022103804955976355038287408482352111865206932754793858263031689105645394515707518402202855772053316739281701198953688416174072393234305150118525066549546239226363757054837664448398762106125404176000753799705534127478147753610006855779757177455957198836437040166474429995490188606716747373931738893166470012340500182258661155686556030174880698543787649184832907398869879754288656727989052049957075968338279918123045361251865202647257648106847882484436151972731885294221975148419862978275928240135312985144412644907577352196948696511569298413325992253759034327199040490218793770706623463553119733144652046333965640819052632023299294359468537681611588163499256682277478944617201893282606895660202570416375539096843559478474567138276717487177750943627374109173454098490604958356384929335002714255268887686891760312412964109369455497563626705775120643211352028309472869236718647904000282215315292001060671742833075973108651588991746454206586035221864771116597179206450306213506242397799140274586325187075580498704634065455627201550786124116603763562434997859112030472806404245164528114966272529557731956234128686527781285775086025026519820223191865530059338792519628421920259669067322567903542219814180338381053167734758074928200886004980024556436723379494701680330833595023253851682898153347996934639554897801254440677289221619353063522243178132758937180291422427681945384229650405302540643444359984554637805230169682333066986398043717088527833887915033373055005538390642443668153241551588764464757325907669791480389996465713049190847843594989018416659102024069465831089824397886244830732116107464131226291506006701269990211299331860454497458348165936774942554386984290445558734553862278339567471068776042157368355628849116329468817287280006262246368630800684956608403870337446273011245458957588225304470506852656008663162557985819893029792182701245456684883239017034707856549196946385399096552668826772879686340284973240120311660825966611590560483866285079324338487039313659103219226598615125703762451331120455668177798885732227827788775009572960903757822685810547710652250890531684807009517074249006591049707009315152584969169952290457068734632749117766850854867343233554157753652078798146328729984320145609918037334272468568350047946866971301641969818955104150983671573941489645611449488542820302546545685689190768220557906002213660473507955279448261953697837388419686509234812301340906806904956321913694495708627366465067020220016966684426586063376631414309224921162930744074511209819933531437716325178009915443902993523763739067446604405575014372018326510067378982591124817100577419363632476948861134220189387853541714989802120256104445264726342934199206895004485422485800364527053275214001182971469728655651931727192105942384047659445912618370998325534109017312617335805502354224694107529984207258528128087470392176456511968387849178247274148249496663587497422565440491501339292670202053959498128334179337356889392255028062948127428543570339512265415063385703503050800153181547202456489120193291332238146602487350739315199208862745929702626564314267038779076004259766183488985709267563060084770946952963511573743545457046106772999960212606706864660274728190313723809690745491012901303529170098426413258801265908675017565229266966282874456005821477918384531270585548734749837776009218502188792602100847494658032519958228114221177158346691433386908642671441323681347751388831272506664229461759763978981520403492969102848051698163472803233041127411371785830476517638743644854662145094221342447214039982306991156069930823185410840808025573746188606886879333682735678116024192685070898599440876273785476939189073981402530048681628418173686668499196391426898548068983217914326056209112778100074791441711352468607114518303206846228482184331431291913361464596641237298300631073734672456542170560477337337193263163334722523923430470265920505613118406663384106231081117257387728187876873163187221139460893070304735135885409962334874111886894698219208218500101373695479349117541354461195939685624412178363908399052007316303714822797254905128542338559368926542191077280697773379883651741075041386680625651046228902816642601903150746514175762760538502416965427506915676625105138482989889345357603312550586085013148168716456675152390255362603022302978193982106175061321539930200498349947629929965663718699427385741926173682639066386642444970404028424389211711010550818464949029636278124011421869124716930321362173853531893793309127345020908672890736185302335268709252568108702089269009443413691250686278673998319285282618265793029855032420285502420241839807090656331259290122743322013007741543073606724947012485421265188989087068774846766673726494551708172700976869661805408312344561258652011650732212639546661501671998275433619949193973390756674092958305119320645229832298374651814042573959203822034370483020580137934828223017989905818530076220695898670357260700138754083275947501710279774670825863322764626970815814148131887373055747408108299506218165955834413373045854310025403584692791610014997836126207306578920452771689714723361103487112920965570028290840369822292239016442553795648879050973047686587036052876932924793599369821880109995812262195054558114669948706230895339490580274826816793333403816159302575124924580585067323138277950858068149683322798686641368843881813782711323584162980443844576260244700060714900672290447005962794843658484214784779912840745320969489235331226666024701092579707042047808414785113967752105586637181730672235314663336752194907764347540690335354342857413143964338219695314117756137811511081472806106423583858809590718693496872499236320787235053788220342987317950861484129926261367862485037341186402705109079790899373425451447758642113938295103855085409984345692776708928414072079503945042286550316652008778581747149795956472469646139638267563271934769576753764778240143335618475151838408037419847804555110249406342025864433577684786651493650762229206207410839546930742617215442263926854053245428241771479226393601329324139723372529786110281080889846228580745015861409976744589014363147675100264502296136931821201439069423893838921522555945045673156365913073680737947536149873469780127411148443875909922201232126211215159735403255179565750201006662331174494995115854240016556783288480834010264180138515530009057904145782361326627191432723929241586006418194060195715460997170244078228578928937184638434598943696041239544991987820187241963559200809203034206787133639414088807911319548146980189337515403182251499376411126069699655122181962436363080808290676330631683592808682046236054447574273276953678411342460991109876954280175416381233973446452837933016263459395949798342273197705389650728731656881571567739181114741317356120066829027968327660214322050863238914028141673431499923367891708362642414233554124552189112519282619261645523095744876835912287892484349505361973162797084683863085131035988903376392872233230282699556275267365026089295279023426247389223900111035274512773429101774574067474880948756198761146246139065004691920885097943883803784397077710502663439766723295643637084587200443183090177107466229631244445394470586427208216170061712855022925280549770675641334048928016634491702978677606360811467870319671334606143005641453620954793568635568651212411803270112480976382134144640995932244238904260286554665129363585401417200828284267437855515009922875672647531453156611691209361304190890315669136985314681321976679796532221327078995019310164910189886107506063086999358053307398362955891193745764728347423042843109580122634233630701851580783535269557486166665180485480305375356021643066241669553209646347406755034251898481088241134044179392751536687188063327159340992920903318978843544602213591258491350645309370114922273573380502671508955107819744731199116346163821219482862258010772386222073947510097211068597595083115220957322419085892234738064267336225587112670457329974011255513244654118162897018324643504424676253541538449088916281047445513346620598410206067936535097696668363706435644982339223197476955007525056281203453931917475118847167368369914605016088176228183891021856779272192986746875622900412206549290832071041354889792464822607118835489173526388483500464566623681553716365294305822496759720952761312361932983828093516575020228854319679804961362488020502398540777719998410346544094271594543055234113515296894327033394071491671199786224557741021853170902984343292280018517187724937618530492737101716203329645543607487464912419737518441639910987830435499364673828023849297034160535261133383007475413218821893686647506992808260207117732082654703067375406955278366392649907053317771044011904718184714291976599045385761791861818328170210068341675437630339600513654607709722808143988769240284605768827550782634934049196062905424637392511831630640735219860142770540475026437680357361732818603988518537556634391837636261955458503996399782164292519254670881199869656197735821162988543997103935364532818563965025223452773166837526686513886793085152461807880089080625649279890415460349219345598234411183035052044059652204518251946112253192835603782491025198378350288321426693233588567570898257805151802430457077291207259500578638502867823067275765193403604992039873052167631573050391599218493325714531425304762553436316378251279709033515490760273680611259633166006025053847350637576152884814097445187315831397821071395109138643641512810797561279688526733320676756026077148767962157597080604611276001884918313747609615407147953708928796720141725515640766907668592694582932834081835693296572516085547242198494829052690216922893769971390093676319216525721573277438610210126033543000701517821116453913322089493652348244277402930537876161911239801315284513992314303170594531872428988154185457677718511301768841174196648585356513806764233649337325834422107575509796507349962553835278606841657908627717581350201846335686063870863823218038044548891457818424111967425762140129027527932239811970649001948937295844512572396762675082147303594164076710152018945334722481386699198964164490098874154319834300976799073179403133066061060911104549874094971874890116420445621822570568835065519270926513903970286397835211656213920604455885857975412857255274486785425218508644979754085629290566159110416806082150197373183446395883747139973122266705232786344482047576193465505318152834509405236304685021335548112015652024264157369650715854506866258913086233068132181524891703976834205755287964034074991331085246379634210916458055459403926505190662176724555732844595056958646810274931432152363546970806540441831073643423241614406904708359299383933253995572123754203685060561261781946917662343517094063122497928677636795847203505183318647364545888370496304929217961344482471203497017012427004436464552167535308576726973078071286026383477557063026062135255476370990220160573397670044381087184301552970410194991704267532018733762450582454128553031171672313226568459096229079876520249332841431677933108834329091199146933057571817233852729467092694131724855531669179382582503215441530993055643220753702445850259907315483491769364563753550902150998935723125292376277472016729454673433491482113349405634379881527445780544086897642288311549941362035257220759998118721227728342255130086366932976579024114087929931860210042801622280955848146312929618637905737314714049704063080328287944158537444005436135462425196374079298097869701846108272587371330464924852417549090999279280440907942336275079205163007133382730394712747576483153757809237997500478027544649319023332961411405864759540906995229226357993565843608622008196873089922696828463431013764499140035102264557705818501375074394135581967360890016270621544604229112047721088066935426927212949574077090808402958631756642602409338511426983239552216946516675012014175446779189599841623658739314543317753130009955756881523471821995856103402332484003671558443951143409029629440195071629910482108655563595292168380803697964264192944760850602187575682037005237548244259328856201731014441974683979413397038604731798172059416154695323337311357568723420150564330497019142241856925883614102026472448367657817841385246017706749556435484672455213459114603420442529806679597893359332745005850036977751491581819277681755059250044478506067193009376769950953069182147165419214872349548249734084774709617649564387546869431257049577984626253929016331420290526047521765945771441959200281103539354358380331820545837606956890131383491764166716203955150458617253304968555814461652497170205118415190494586237237204234547001687122693819626794398506479946692335445299559593079295543090590117601372005245342320017348639359801224364679580412886724560921382268586157406103151882618360522523970919065105725009660420074356724490266268728095396926473743230765710040705825523816184486513364751171435982361902359145066760759260541482902202420495709459655585018016768314749249990561224223559179426791128719318339420302901280878058763693687568452226525160984118459882541414030761710536748215284950853357911342088241388235472523507310770942641357565633970323796557102730381246035191892850545454163945871287435866212846816923688047912109486706074175980856668948318367165166066105778627680739166678379473515059730002425943795407826555391031411619824820334126340759963108908193230697400518382609123093109695935938487405418259877423961845121876751032629820803673291148502713134266524256474786970220445173052480385398369928371884620891759326015843852685733755892168357827045072667840988026734448366119629969714629218019963447645521551254278174405402714943912489927231616049605514493684408006831340128179483508413642351053487243392810570449430120206467801627581106912724322876789884531196263740190550564089551332570364794918984079904600786003117270797002737311551188672116091825707400009808218716301173505451619700707554013763022729711766771247116829414700242340089100311871739868643562134776492945132816106870291361481612914099646644542983200655902628975833107218280751889970879783580819556085987476226087279509189631374759793905568026541107101867435215816162655099420442538061514058440580378424280574397826964767210591462194081109647952376642397884402854284344739573871452589073229739953422746901825859600168250603600233687386322247920195148587698330499974483960426434258674921507899178129361576778193559930950591106090400353036319598100212161448940319688160730238453707818633556525076663664899816242503485333291078926437166948744124061549845422721929399628610282158126301695908270591011107118224727995398870393292951868188339551555556124574314225518459817129111231397108940697902401953696490600684329860522414166363132427104793741580783125412601926223751454674064307511117468691519811307239473167598714902557047415079729613051959633752102645744376232392245687948125388047344952437649409216834712132155378500192229825062827067999961729898286032829116436300055140488919797791317221063219630086424031579223437671708896466647102096035092753160208002451744843213071381608684315061689630651213943389161510080683124459495336540574966760169102831835744127693961424863977715904527401981221459729881277676142041819843915555911321846671074745137840496333580791767072853865931706462593264584749414413141139628220823720806945094736636450477953776462409034893765031975507170811772803877617203370339374200948165065971033547906137400150247747713431035111237643506098683057088185530954174084004747159702823314950617252036282072661364144341385001119686220685301532992578647332317537843989720130281060809860050001654422441163595487823551258247323746049092956824753382955799915437242832356698265043507639833060171761048344807544251654440624289982917437960662844537510353274962745020890024726430866567916551309065858187928910232046570165547973977470755383051276282916784063054846683177524526129334681799303743272799230289026971431927201316380758301400127424484827800094012348827493555051467876136435621790133054549923000871413274850127997470741560395425341627326648536609144448383165336322285634499717796833588953949591566119473104001809169116783661771041671855202015418562966655911903192815711175492488897195465586980003104078037331289844954390641030757227453522198246812993124600151307479816884571821980596470359617417499901094460924034678776726647907810808766680581335276414837086018882101281469362467206205869319694176388973760570196229757300001490278248575096136539420339340869123977259144707134335700433798020425117102848131255159864485803103690341224476660287926229071578711976783079012267944003194603253930088570772794928837627369603196166002875077513397269104174869334701198335650287471570244533901204999874858523118276692681299262694826480857669624098503787793014699006810562120206736277805613424045306622073165117183630459629200685241840397739318058417260533104155904734788676743787825595893382494561319315458320830360770681595600065944310433683442143379208338555620205040304702224364799615306246691877161201727842086703896359500063504070201234233565472628481605016007463695297735783742622530457531458638325350269225438675970808757629402702628211716675981991953072618630649344958207208589053051595804503391083266629643812546444220487830717893229037852282779734115593281465136671418568965492015202552116089532629835068673322688174948701409482762778990721079780667789819824710253107441241420145525277978103906488512197641178051407050635577256992927261434192262255687954894219748301106066265951164137868531664568888554785899225392665345103463986620719353233569245461102282397583904144488989835853339002604234517332838068280796080887119326524036273314347813092267344283121698119104098513847509447921866787482401257173930927196813904284500454720201005662378943141288697841495803237441777899733728024051597083566807732478135696232224734017069847564423988318928905375847895110430991453531071322562327390191674479156870078779654787485859272243804802292545753565712877329905872345862719174409104709059759777103182506411409873033674373054297608520266057267525992035661985570736559572345268458201349164381591473963056073404494093776690552246239650022886042842093803318156134205754103723879684724924494350424034479760694519958951703718231945820145773412250738081015769604896482734987204004727356601476452036452789449190783050961023584266325548493942844435090988324684639839057001892294283483286529507941753815529673809971483873201080792865857963185789438450473790090045680208635816602360974352577300304839819289615736677042885708435561655197568636371803800002670168251095744978485468229677993011828652465013291978799429556547739607427825005301745763608258415051582532511492479335754521447313566802411829378944660331707071529999764999207264443581073700784183910006280368106723401881404707250664426206654411809712539841331575149244427554374050949689443824761594495752213058835857902539314960265710420337465429960159282954574569234968544833502158300987239113135392191483837403233936699953805448623919656332160626416084778809547888705958269527204576385120420283965094911735994651012094137480916097142326809771187126441354550134755474172944640534115777557105117727357550286940372052682539260744774350885049440655663766017378806904658532800651893174045324072314423943468221830160849064883822214133503033413738480179885005028055564365135959931535612169614471945987949236796846646431880831738092920054469490746137846146232720579431250384631467298785244353442468158432524653526854258511876192700598106658411628953475494735481630779187016358540087425636316692755843000927433015665474345614837127198963811540873417266361106833867710778859478041034274813382805142004535495462907899018615086852081785369407333639643985153262549851607198602408068804778083857755768737278818714156501119604592046938304250259531913815549822029221866556862275355074742233761320891856755696266815779192424965271596604885964463568865762969692771220662133076215623078368909856874842815122647239526158748807107318693604686667736010612508776962792974293494077075180034742900706486157066532041729938639881094548924779615052923112053504366107219318762508485355224043566763264876458616907474755896267179430062372962751680702864782287391904850552490136964596238231853274385250489696664997447597943945551552804690632885099786428127320503919531009196420321971810895198423891362974851506515324068125805507120207399060208734202922710292757971475741908657978956838932801912554484269919007844030626856780980903147970597837100308870295826898974946859724733322878492006191701902036165821792348941203993915885413543002147054292702264614122244669477133998265615943158813147919528230854687692504908259458594450027719562369513916337179449696931931141008258585862933843466563811567510827087577286124619649039485023048327294804849522032114110970307020918152417643736478333026687160742839242034985073940908057983979598905798059611645537715847478605325876388695249533282604379097401558828460187798745226154808283020809224813463832691285046129319952699312103966896874159698054943163875156234205463540358630979222450589901953594238327265306266746108887442011464424888915782076373429704612344360707277625750055812512237723488027137556800967492449344813909058465260290887676907109435801537966584849239016994556384330827340976407699699777283097012773846620261763995731223937552720175953504934784607869710482114274326481978211867942232756786314734429311547126144454628430581647149579801275782177517643588135252885486465610957190996069798281499419043305559169717536849844405764566658744583721372560069000849301823584810691755490035691805893103195071370492268971910705446830818012225458943630447131464738814560497706866522621530481344161981216566425895883415371213814453252919217878329554825231849664732513344135202960788547671851085794843274489743596403132320463605474762117729570020192951535128270990938224310322251386841756182747001689330504363141397972436162454117865280037992573968587788271263084375400841339523813217380182127542241298521842373923175320022229271446034304688644716236074403916213903375484979452217988973495135609575272569595290203782304192444287655189420949406382642067059842615866337526547779318665650621856456610876290426655166120174518637404438017350696153454257293742748648226375219357304455207116613651281285883975603477852866824206736354674579089416732903083096407349512099412092234864241289623650154179176644119532167600553457984876148766206985775124499136917428975302886007699317811302278881858634789996946152781023845760123132554049673650780525873726426924411972034505653004352665783260201957782066347021389240954033471840479598457647015070582405347234475957281112635052577235770442399819428040867351912406244608250973575628209789636665660280205581626286369557419344872686359999965918388650775093121620550910712097573283799465316273348108402579826103798620739584848826555413276920468967664028051147942725584787340122924965087417335637897947697049562069099719860963682866269304998124771190590452440170490878454526119930113035331778476778730830346717890772525161689974446134238719670652094113691577610684429624788685771914794536831095325940962723575156561614951234906428376005309037357368389349052368047168581364806056557944454595453763633120842335586051826062709926385354187966729335031308830221592960036482740043148742398283322062986358190233143727653361818238468100932107147998968205987821680718143143556779663842521095822663434673816739091872185478757756747606111648797837698135673498130812995479277490305860304890440931440357959348054910402368848966875597708596983800102064294862405609795011810516024988767165312344401339565971977738399369716381843843783203453746039117398113900127350749178218885202389332564491753947803348961249605921382672152084734750734478837685090090580454643065313572322247059198313974596803416376415684264058632356419481198449477480300456104492352811419368548102219125784390879061949150432761575397309229234484984614909620060438758232210974027436158276136245489095835346050097723225618381683316943469624667283485511693118474813068037531695427860652389744798721209221005482966756449359590008629498308735616964695613969399012890879394071581220855150478014530414959778250897651829460720657659060605871528312413122475433458318041160468323317373465484373892000574888217335617200732613539095256152399166993619181196645896545514479231305556879184847055073004604757981675084737815940041976629803304450845378626061834105655357474367554904053870126429559366834637862953248799196455655474376841959287766200098790221859820046947470860624819913168146907843262200136693336646186514724044971446124967948195987120802464679113064430834483902723987549449987621887422084810500826109083244749729044794758639525520987603656360564449525030799296614237747791504220118215985411172122246787353093859814702381906382842352860482781327707742343119920329780715538081845443147879208704963156043574734278286104495780850674024708044899087587218668618109309691168879482866141749858187459140589916731943626441750071100538354665299955798011726372028266452737551913437185991424004819614453002509435566448653255435671990039426264042721930332501051241951140717981209365225366253305485742791391420693895376226455099205820321818794275668073001990938964333342174994553171541321115664867852338999918303960798904702718368428391002076564289048804676589237026681687230298252544139602290248050053988130969225797718443073115042482963088431363366014649625375027457312358236897989310588998725390553124657909290510581424097772978179437798346688509321902038825256361793581007947581479950223164401117335990498815053689052325240837150523076346874999348410644769608039792876442899714233481041971769752745186768445310629862213362559188894364362461199521401570182641243176477264149310167838809254275179231994005645490394199837920198051652520450805443894773001764479096838666869891973356145497324872357888030974574919748549505638233303745853133901270184924965833568372319820595837581282228166490159849353169479325061601773870789234379904996202110233414109006390977606344623611864363059228882756947310206045230224531163796697977305824114318038262256577645761207379496898843997639349500062385808411617825436555502024237746241984761370735237082421487175540074613024387354689145177883133227039382193287828746973736155560046937640683378081887258530832170082406784413725001594782133874824373673261290115469270638719387110474609990979826186172200496333424679581637279614621728425913030523061993395031379860424503949265429793024830245355737958565589045534840618813143314312463402827541925975474272040278432404020694113734388440153317818165746626187462578017677877806959367643861924875446892614128840963057847724078760970617490672122114158858792682601133652250972857572863548627663372730933387284601534148763475578305694277184907765685309785096598081838909575624902250351971185225664158237517306375802956528706832183682846676998098221369768565813316784416413030857937566828571333265778279598801791726696105113028459995518544556533864143938042123257730866539269207756289282636140513426525775607979324029617502943321008526167361781342832360666082622673884487980575693826776119155656408176643854206020905321776862355667031322107725872380067356653599425480832909123562440660481540183382709021723194845437199573994383311451892390580072282793170223808418306474548877609695530355826538961710825179904659195209109092895443731534443101105736658651946638162311024635959665817470438050208011075457273107968302776484050383333736068286647268521283084857413575436950241587336680930363596066786232556597502188543123194868790540374445448809418335345235178980033898981547417115396414963860782265954431770995400558742413254785630534942911672175011104882277480549359973498915071629877383723806851282268799002469433232548399213028275254459000524579233501954057057705525487123584800959259229629357992784231602117725008951637510755187355212196761974464976801508190950900331417470031519177798573066461202419485098480121927105639799834055126086410980870907767649059351005850545711140350027231534805667485502249829806060354463330381264022502449124215584571593938008746236335400287571337707317396506415223860628862055709159796862750848781423319765921621131892595195723617948640876303836000091434357220440555156134402726407337342868795198210618342939892073092496914670080307427362579389373153248756145023945747510959589223182871564127172341402968330942046407292334718679860334804934324174892432583777843936969609153834958885547430866861227419493669064179101970281441382287322329346376673522628533082760773857717846903514959294544244013824737147717598384180666681193524725367612510616041161162786586774785562917250162698694064123731962895249224465169880466037334983507809456650872167523567348618555040189461274416984308020382586041617400713918966935303183746676065088921463889154441411738764284989108932244649904566317489146906708613179410400141624914444849989667603761052995440564769440745661645119776925957531046261172127435381287502322952965037118311631096839521438482539261722389522019503596774124864080214713227288037237242363932402989787117829188674514569034909919674683420581099996764382381359885577356293972189125172743040651803371623860736959555108243937367050347952179288536505776310816317841104887811590422380466911779983153418937555048987408713764265154940029939709176462176555244313746834552896028403477065086605777984668734237675329801267917731461015580829383062544520785456330783288424010900374591115449184233429105211196888235880534959430005765954251675220522110293491002960872348528403462760420280383827262772392705113929246415113896091891349615623576367435193365658479571459052042275092757414489663036689794704845205645777272402097681089806946598575242440969386317674439911361056203669006396134832497953409122680150935531068616954840675820833058641955055859425805345644369631387030426443206817211794157508131788060400296688890080379973901128210951296994000835991841745249165485308437510134095584532554251067583966085096177333819233194446205460726607088231188662867095463014171517325813217988227595873363791902953929687418265975198930497706371210976625378276957539057525543372349179923994969452348772218412424317280420546367709203147917952787951056382176288823022291626901390168918103890608061531754859470712241124388818288275995336312783721849740433632440788578579556319571163710432274278359529708829898190178340948184074381773566733010424833654163173276858119501898776029862702189753900030426943715781105626626937515794833607260513843088425173721323512713229511988958295420849066440689133410137365588736150871457002805962786293067912675201777649538185317419009955685908378711303288227771813994384027925220864811369730359175902164007792747274626409855702873948873362832873244296906670508505559437099614725868324020328200389012235827771444806879770599301756992437483032903826825193445376710504140044228968745011378697904634272590295750363499537090165660379003351790290984388012601016565899993490248535295166778874272628078830018229607891382018174171583077659082787850124462876284603187025190639292519034078449342400174869992809157642734948923423494686376640740046171316268092736100689077325483300472590253472684460634391305775973136583641947958172903849288071694706304938659301617226193257151345279298921823504049555764400652480094047652263610943049455089159422233334526376593882776564135790059733179136956921468999985040338167727510075544450970309525820215004029047927828113712701938795064365008744253015152221579752117086422287986839491042521313831537396463537859536415923376151372414000254486388890530957929157103207415379196625265515447054823484678470424604614290021530504251902442230977671711586305544259808924477462885492628917975844227290233714312106192697833205794396446052782502375400062503865680263522548177863153753908402105667415747915371261196705349836265035759785563448113716983377545965713412050234934074941110431356924631363826475243356088190124561790536586037311738256130238566704362008795973973948805863221219196998105640313721170842647584072433773391073531770023786804583525396912822571665648464408211370840155360558934453264267086917537117813408080858983815303581684534604880633758032387321963341016052600520373658777440281554057671734585515566421351598455206786862999989568835899571989491665795136864026192850233435428478955657642637003466531985053422209370656076073016097852222958900546495912222699217153323664315334530209546843155331779324332739299163287472387513735714177762084414689574781610868128048040186624702788976288337068777889243219661045398760428854740106257890414852114433523623289012782958749790061888776873239337466681826255488733041559532659045217203624113033577200279095733097009207616747255859708702506270747996073064031828724199434505030677973151907779068582262957079991663477403238004746297040887073207198252073107312024690735042894130199654447443064506183687312818661461274846436424723283191552473185296131748165483898219578887275466436750842730331686625700716820579340224417188134573296262974444694441228464176402378231615866647696786943662075726150267033102441593425742609281999517134597564460105484206342269875599881311328591772860468717459611815305848878546737826784722617367704593339911081910680193767235607770590258473231217396923620212996205722076275629604890669839647187370052942182814111734848836878447991148903041576474196643930261798731158507895932887304015350756951381848941560322427219717875653515261267506811144644551781138754465094966064453590051258652200367223277754730289047886706720703558643782702348155757513851552500518257003330555725096259409856225930904057741731010973417511129967830664704853203155953266006060314258935218301485485245242290944452793212752632442459168775699806536439772561471109059133706518718088740744322953028629192432931793173136824608077347454461641770190915453532247845065077985382503290107084202959028494018891505478148267675149488619252468440902572592061877116232642332072786867013645287997327332650490759578367066899202550562069750508813578381166404679419447827635426650451870107332780212707545279825844875086338777777473852218938582793597832989961838849966947075970654642298504669688953394901425609949266506175042103558940989241320939709789469337067049171971007200663228168552670196518627664752642789192280885588912784267118376916176782052261324640229079718547879034793788468166521801120148859628273250038621927294014860007822912842944795771156906424522130838876793490770838912002465778160642845744066402400860802509032694537038725317842347859154843287679279836562716526559058329362420577463776639959118824984162903091942533925675340380322323659474964167372594394899726502143476849772555502089549205296590700951721164311284929525271373928941768529641241967627289221912198891886336631321668863078800543403134661289291304199045610485361380950391117693025650356135448263571715351375849166390827263204074874412706562262222532744719162133108514876146865539499543295846448483552552204418143524621396780825266085519245052311279710097484737866433681864120711614042245612360785341107909509917830583051815489895703852534693002620545124221724084972667554741837860263065745820547777977022773045473687370196159173467797602364505381933614939432708604019862205495615378957057132263941020678279045319585905760610203497581801571644450514211422996890149379425780462913403905704109569910024990134970718693609742437629995769436065692971119228324107731274416389135587020757478021367131401389848255238000637674918619556831000418978836410930806406911530627850683655673767021957035072811079699717212806318189411246168243743051162680859724442891503784127260322374857386960082465127200265853428759154062609012753606733754641186178931910287704696110796028217392291232622823342945109246526628557283295988552319603095755915115993057800734116139865631200233302444955884289759055331366927734513551498885447921177442977577407378379241562200454400282658569179766816227802938876242934552276737625122320257610914964447364772411108297490467652564249292192212595406473984755805040280592445205222636711346963816793998897517991817942134808766862354789154568744089158736985717524462606018821053488504648674108042633229622958587083244943297000270285558274942183707290274151018474262604648666587364630594462829801146961613489068514252435919651994924611091284739981225233442811939592429638380277768504400227781923942449010573391464746449395923862108207849220725144008561462117567067183794679589870038561205716180078676627509281916351296432474197513511024339270030470180479295042452410846703648852128599202113470197005651471849399861777882155207025602648519474087298081364559591767171488134114748327546621666508811897911429605620183439582467783367214165704513551157486919152630430130041991691639780805513048371527247510433249897105487511669654843046574438847464120153329832097196585727666118750925751335166843940089834265655249582956482551968401727460817846854096535970078624363979045351556855302925286623002734589916788781126893977315562185521400867534022388949603434368762143151827914309177265892049558244504417777610179742713877034757489703077036934642782323900830751420215977477622505337936342921715256643025990909048876101323914544693456116600969063309105814649154761409716440215220629110725501353027927162209665546292994441211206129628334810051018358705068598156124031770539573812789873031092427504607270628881519248853918902833046482287829225789973040604907211085006828791042337103999215025030652290932211899921286852673400401409801446961553731833779174987242326197993401517512521837238224408817425077690105858130037936331236083108127872759365897754745953969324965183113600856675564933247155637843177029798147693203260743808745072217949378967356979568492339380479655650217665925275915370811683413378761984516516909461074319377771438738731052257313203776851147370124221971821720551057054019683352488681333822784421637384438807213615519947757633229556123995264876387509796299665343118875043778049515335036206384427756927621378696559725293206683216419582873047220146950061453317740677947969313637439829351402029308413229592734798917569893183430715168269106830729921438746638709463637795630708700530442745159017716816274748331842064079603749556518116137042407371440350772117610465006459360846501957973470386181628191124086358890415983322004505798974882441096918527982932710413531602799567998767346575411971107952096330013527555087165269590327103824604621360953135403616606059971150328044554619224636241242278913198886635815198631216724737895298701093104059434377640261327723605355584201082957147010175589212637254838231783222467287937168449582993025445947246367224531971213048493183255396303808187917961368392636610933318697084550802067356936305467599388344348327726066169151502120429384412250984968840929060896098783390812105237584056487873918941538875754358321394897983928699039312175209258588736038432579567549575419237283046543274940928047515990904777919478171784912652897349036176467825935513028369955007246233191314490270258499398574367466466056119174119086209481904815865862703150469835455587864238566575558367194434976502098229715029177809122588066889487564908294289078752936718774516921621471146944752950548380764420898404136636891645780383063041211715055178901222601208717103318313710312888616210930185867436228681632150859199982148429757998976377613244663144515604750873824486568885490429964321330044462860347984176661367877583517173392317881518554683807254130923694539221306119711230969763097747567318757792870161775026912691547984699243081137856221770962378791190539150768429594469049856896716736505079134673388015614874823913836374634723266276492444376504718717974125161521809377765539986240271661981679154281234561793786114924310469907223424060276620329065326331847493476357654983003386094443314214969360760772965572743526450912308172894541798412841814492083935775429422640905982936166085216857243956070012108924128073925510555879558688441026618266139951895482057975605599211499783591189505120534994170371791837242793591809781625825723343031301292359593850296344919065353338797418568838601094830177057351372015069311517124280338709684191382060672604697034598454875046759596728770323520457753660666897723492029637460443494284095813265883504394748921407132712742307822587817664665027184418340465522619441085394192351012193990563250318500077450096309367839097587140970864111912656617643608994508561394522526941160778253404837618623424605733588460109069395380884491996501581274055256374777367547134858571274295685822374152636258296462870894513009755480445067001769943358058398479198197631563253752207005598679956652431427101744177221574884274145957471184528232876464087557784345535226585102306514515342056251993103491651747268627283578442881819665000335369422028738965846435128864123831733909509189294857826217105530200612114518690545831291636681513825331359330189078742037365022395074792065695945029956773049833805331028253636926200377797125766814856951969078063261275537609858993031859785416388511459912946034806985229645818997245272697357488323989837044116994056832805031905286248300235155769966012136877605098057759408485944813883215459648553977920412553081934417558693253034487080549514772859182704909779208431671053406292982983895662318054320052702951636035135705897355962357811712176410338397816513363522827978254025061765979949247722426779530068018528384736473419996314296787312475593774781644737711292547924677389672187447899579885357850809081572213803636461247991209316749720051510844817251256187103617891011606897635154316677271773918978489563696071446477402586676944554603618891865194687414144244876503900085869644414006600218442591037581132997252722190948476053302848491099266726264047388178326266312756616648233763865131000910366300352445881875578717292867246629880407080714363664404911600305571628091364510181032723889614492817052376616999153783719392020736326926214135644237347605790258523330779499949824375081561196581960539590130633221662243568025948316962302922237023940277952805187075389220119869887231824066005034729079236666948397432246421395812891767816564772768747130497688632573974566573152764623416730618623629961826425536060707504637976185224770365616601201342962600385857005574296583922317524013317810539384465287564665280012688494191282515107426522801002557193683353475345258925043803929020379073336569886616325406999475343274666934130239461003002448565253835507548611817065205079148383574353413098785699335548927281848157706080030474196477344015062274555892845327075041452643013070689096468378527830529589759590049132692585498547432398532336981145460438778526555165832028071545552002599839361031507664552615620954503272809577677832884566326136045314003841395752554044454483626832367588486401152241607868615886460029424888492096479906314434327935860927450870999638255037963955777192306409292002778423149517714316221431994347973066004203402880294173724561750810230121683019454464679480008944428414335767615877675749111187688058863534889216497520490724117985044430111823106398161353667322587865093196389436548575781171551921721467600626626127269382915777169519493450965531898479695986876412434964007603808477616642530117177338986653163109425067956938693804811135762860181862965526832638808147495450138122719261209341591799594819840504587186206081009803223540308643804061929762978871700121649115361618547792937328104081934038210537742816072103420958490871103056523371261325037814161671332620620383214856889790260045665058929934132128696578249671276999149356276784988080966802954093228767679535549822627762003578749777634603004736161006041132432675186211610891080301090757411575080555954674668973554198617830809366492554174667356943766443676489131888294836224695496150699527083362392760572324327174277638783009437605571801862249599168082660854719067643374961569216874951396184200715851708526008172862369100305930935305465331656890792222485382292248161405290955469778432827818490397482083945865761492154126708665700014238110911054173889548193754231645619622521475183979469964755718160051717011996444630773323847103656406055958888708113422394705802422146854235767610975467144027122013740011998258249371440804506748141545131132616993726044557068566653794003948003215495742656990258863312839996038836128637720301232712905363507068357999322064105897168174992826433165536231533045289548672234019736486563785955854954799015275083439305900963886333016068669217176393857306258786481167306102784069896353418309027302871263533343070378422962746568211072865071094693514758632576230475925967658893149236903379156351770780527843169156817233515699010698974959247306890610105413508832322928589348133714375309168610490716596960935915447366998041839770588775783709040074759799122304815176934477986638863069417663820331367820273499910655044209471431214997100314739169602520935045832887904554797402783317904008696431152358358256991660028617879661269415674214397854764323253903272893258438549662978362974225880373988265718071124127034732097947058703481842599113297317839364370570360564842325868299510641027137317766019647616486930603933240009504215418149862988220172462154295927639432126931606971243515872597394531260038989584193233532675972828007845080821809191131097226165792981029731115929341873379002722524233984349945117667787321952978351230785616017748894829694534877589634926580856196768623704976124470908243511791459307687185447454597954036898988695452482705825146865271078543367521815436447664530281929601948906905366117335398434968594128640585035413008802204524662946595320840098018722203960004130693829645575625312010608502912428381974748093964843509641635895888874820573727225884110198840327333800598763808592544814610608106333830399726697045033331248526675158669661896051035824389327660323396337593859662892815029749718084675002374849026282484654496356713543344434409667555628435440024218773497027397387798198030494652476581185041468628580807130425886614502587208992520481928192399922304599321979937424146727962714261982326199899267551717360884081840246232378442067141011152377594497008595521936039287688809149898943117240373235777866815216901322639806435840266651822969223202326318686742100898573623043666988608452705021016324773238287189812338122100104204035080532985423077253993707125814710258086421730960505522424758039118712602283527982914391434858505148695316677359932395187426765072152324021701150900390739388880316008103456658046608825685534031542627720552858415727466440599394872753841155999671518339793511761609367221029189592854194340609637532768537073517403111595743533094405738317751491722295462157871998963908517406498753372390643022777149260973909470960652800708959360398709735060162945184141273698987567504122762227281821581138384638938545688668049948502883657004560604531957228247069161021286904443122841268833126164219238536417411939543603762689765401369695429320844672600889058613437837094858833368787268562093899378479993330619938680463957936103472955409091823787392928338697336590381015050948773661834191861932922601693554776258325806090445336790637110823718511054393426525061400076185711652657457320482336510158666774446943609698863012277145310180939234205641599202914456186400100864625097998478393093192188547145347702932416230210574842344287594929415713071698245739872236710018855211525445973286581669994442061071002383249347595789881417189097479653255738294691483487485364111687429765727437358605218666174357317515250761725523183804770668778511765224026202027742125125465475289518911492070087860227873438967625091692040733066552282627345366008135130872329491934107078598997419317496923051636179140918269886396448621592768672423869002943459858370655121315211722948968771322112352467661982527678620128080846406359882575504780043733803591513758628676240613819000491979542839120727472710018885571053129959708436392060204581708039281507792562865610984573600420732182705089521545115034916650334450233746285734601868701891806043497668386554978104110107143859425559126282290592364564634292889773181784726920922481705544343066081312572938272155758536133208169904845629858095771665726457562390215964591129474961604318721781227601440130972748239457064673290800911393345206808687213112727374534184085205511079166851962906035450718488671246452173946674097542697942846240168517336016598172633548131375845653898893993064320154212001806044502170153651338832369770168346906834548337055024786604340162545542907896360749439998204961870801544855662464141534402397793716452631372996901992832504027357083453996406558134692642481437064919078987723544890944610961779916043624658821992551534033549575672885984160931276361128468249298983512500503511856152563820638712936050263311445128896162875363632504313298184697209607222309399532518494906301038801522828703729331419762370358786412238274702188885841906522597593772031322232603095643862737949470752323042826087084795267427091456590206906079333830808238316852263129018568942497018850860399712701392819474320841298667341908921434310556224850292198899480579587196602539475778401546938021980934673962773982368167905123730793301115926719682189305541645289690872305335583807245955207540822213103353781184418722374538743318522594364697448818917403220278493281426460723056284793677466716702769392344255883384381655282559640719954888718280939181719593597213001291833496602677977324356245592174413289207425885465731202749502371515465435204676305409708620172676929419018543382597731701854972895321486148646350033976503434147399271852487948892756027799290372196584573436375021960338794552731325872465302885853692620345428709039560902972211695243543908917350261092060346606892773672360150710096613665392195347264450060928878587765883701957096292846657995516059788707320223827661492857186288616338429723419757758814930617151499166631269997083367035771707499088489403837024052267623296406020941543915613816465724895785012374723345518532382512421779277636555196113359789787510226753289858399378302180860134780988561504164239572072755438022209009114840053740222780046118087266755547012191873206738517558051916685774971038436428804953935300174303523676351478626671097438496146130193198339043942869814493543222491918213484652726211138858103127664838281366033021169427895390283730592984306894556380277885441568689723241139077206995879277365760261108743035835643927462460511601332156212685843461637129137712742429069701908899273789720617455901799232584387158343322450924662750858702436252423410660459284504518316943460717019864102457300406031470015415567508848086058953004487751031536616597123658105098536585309066082696487043976723972812909892389808438359685482045338570462016698760888236447504440169581427849400906974386341415180181285667279702412499278782968771808864757101858034019178478378051284977494530952071401347574771372679978461653229523872600820962692477770335256185792091649207236427415835237844875539379251770131961653675400500220801291282278124669965099521491898988144931375744102305957457136147106274624996300771969827836760460398758200809754092674725628694545417760090572898379037924989233947165213734849079002562277364276127851595698152122490778222190545185501603284912844036235048819705437959379437503506299493727783543494094183616575010755672214230947996547599583069217143022810977131718432242721010483890579871557268663301853316693778027194899185820848706706872247433989198119468841509130422423063823971484920902864629163110278747877023095220463426189688090236221957257175073599117774491219953989745009830694038517870456639500945553155851955684324286822942277198078394785221666024050072688636023560982636541683972223363026802748366986057859937644096585515663029048882202536755765475849697681012549330442319351716637483982952631053546936875198611543436464840737965688294268983938786360869583332928968529923292870100982922465831808574934570650078087627089089086862587835184392237790025973937047299372109144635911812918464598090952233265538418670106563719824044288453968852349984114612651058609028791971652846102392529125447368342000124390836396864699825487673703670150824133569425537089453158434317884190962707835636563227349547277592743048459944291431389566536700372763214140598873765852998295657718414682381870243137199929297118185379287177576231628835429815510513818664122794973103500909224879785035490218916512193351347988622037695509521387395983060038251543234579245504262166120745837918964633220787932499440930503908517643917959828089211799068967821413814538040774437196659761815013722430067398627716164425615564577938905427905396137467686626338529809598485069044889339349465205804810931438165695657887440215976480982771992220872989966659353919296339477696250059630062129641282363570290136317448733404913494035010262026737878067393066877716328496521943491304109681642620718383210898567850891489298220333950140959090333515927044049425999923559397932023327179684215839720354974164543122807026728740494133726066287197923526945505476068218225204422422048788468897504374317997640709411157768902054632570183699944194460059082134922828552519466814196732624374936339686975020740588057113112307360825569626368121903546713823292502970859777702965183916782548185362615945523558630902536853514925124481293645620915473443019400957876244892635056526313326067955374682029875485822352185859468690243664213897727636145372265913679756198653142654816742401568425332539797088347840693880167826018717022904103008414619235682658613343249933178394396826679769645282152523420717261666062526675862672751658860941685020773286323554567293392337967342583387641518549904546979713275127630267353808177658406696268755861021423394045713621436258739591564273842478954782030978066306301662699463659943574718851466431600950674997205395322375075643374236898072396213394481748119548859720225544863329373123878945306060518204210466238893114436592989051048488299936879508006822470655000897589680362587877024643330735684665842339992744369852724267934160810099818068696859301149691074897536713005126682595492146114753428982960720571273384127847577515488986253543827729889013676490975310281600372235827576276699257224660984603999429544677325479289817966129552612094129396418784827618527058162243130313449826796337798212591633383469296413984754545158668720972301007624872707098758835829524333206824557420297185866374074549523975634292094775755649190362775410363238520440868084083145393046390541227344139743682186315992467548793210654802911533075043913032338663915640655816101242140834228658113449226013134579731116616127335902869896236156120456815415819407223033922229479811173308686150470074478369524558464112498617858344434462772282657524123724424119631343728646684350634157003852772384215585919873752710609219397869932681780926036997940748295892329518794472789520923808947839003400312571301574274402318171033578037228660226952773948443080876032645342060425402294596195135440069717384854185494324080751230643327884156842661970825712462024013516382486944666963715126803354610449160915559953778343907391907717426772900416001123018038801433746843787054154944057034398575613953682541631574062732751261750330072123317469210208958738914017949440630930526115952889391937830038353039905270075978209156410600553322992276266568501151592444109080264304266251203973530711592385634973213494037326032841448778559926619042121252546120140885089680235937781024777686884723928203090209902103346898106584479804828566736691234136123364234720571172570296392383415752681999802232134429675546275393045063038430817132145365925149271313940417853442884228074042321335420863672797531995111313843789079060097791493442320184162007816257105001649919594269907439874835908654522927345711206631827109959717611010070722260425866404154951174035329276396884076302617183165462049075360204655610087037052672035581867376117811019512194390281112784059164368847586118505533320534481750858093955957383424440953862964962318556793718675616153854618929105229764040690988691622349546393383633424444324163292732307067387797709424787598929413480483790341666525551665522082921334003353608250775218852165936945007593208978603328431840228799948589737622767907471951832560545363310345359836716485199475680562296371426227029897945484092554142157044951973759934272375289193657032174651077975615623435694250592630469095924720961548214674605208905647703898972871563538396794053974444475939987702116570631919225302633281447101755454623610673217247478364347845795819870327989034015745169785147382038523240735525601567192887700955766925801985870852767465393831208483156647261132804860803531122106511271845173320220552153657587689888954568898326370136967210651905347155788838561020945912267639165808789964049917953070118912143485536892253930877105179602193519969098592823879055374232731443953196203441806365098865665272928665386568367979282961595667225493454269275091560410242860136310706860069203431784473080169322408643326110395841677650790128824248894634828426260504961388967342191160736059121028064746779848205233209377811873809354824560305274212622635103650663879321569169691074367358695380967813101998592915660381452523176322946142540866865709731415507620929098115131404515661298630486398936708781474337909843082098673763336185970110284806563979862508792052601977141114300367365215050301139602656145416491289580201887635831927119898839134064257675889154641680273898646505604647270827334449144769419494507774074258225538304173297236305809888367522462145457962872699000750793962883409623313611190000492166612290758185249944277484688513791687461995692407281816648002380263247382523440275517256669287380721619223307151410807728480497204227105617793900544051266850304433787459974817410857702200202679974183330181545534987857328194218470941500363572454774276070400725804483406976452143902434090883183837268984740275999360835435604512660034580184423004313451703205385629031040315898112752991052304359609912387795166544488171611619388797672131310008177803194801223957552612715946101161211555526700362326274524637580623855015118102409803950557095430163200924716099411082024440635446881845830468031146749471526713011850293967116582527901596013788364698059888352292506995308286182861772898788496378812024227272535245957577580705056415756193755658530815067933315887243821203271596822779352449345835368152603887129802048251181045585930591018620474402138455516121225108180420670062067230974740629901279205911336714741520343146764810921128734753869778383068234189079728858051340956486456800655337919980890062744898739645913962113689262165601871729509919809559323455909114972918492411667275165544760786259250755868942199640227511019699800700271775451114822553333297191578327402380111341328075393525844944866589174127024217565184151737754527746781890808374820352307960050965667929866886652333712934509655976579690572685006966252651101269518481460904946014016211854719852508161255491746207033084281016484818931056203937526558604079529457132846896865057418496925909935239227224973898338348864843429042799418900968122810108606213230565088049301552719695489965224913289127102381892693120685990938319672932487615594764088398118325589949855176008126040237826415745640520276851615564781325370816948355680783835877620069200500367771192246181928363814571444472025250493633662344264157389982936340566431218050966265410257964289112677179935979464134516718403829648196710623293116957074177641863130150596618725282032899136209761860728181446066295362468751815298724764956802051173795915558907700270451742138092210163362232561981478459666092276790202279493674041538090974744095966237632525958598809932759824148543403394286265702703972776034062701858390004631111826259658296166125626635564292192533356856889904224915144663237340386074484935176858535768395850423110455627285016163405310820403822842657463725179919736771634786783973015595856401729899169610733290274703335961810431547336549559361086775829256886181990845217120567813633961957039729215960610261560999014448455580334803630298552373700489519462142638604015794048151380905556070918107248623008444497239934378091512791427671427422371310013997668318943730902514248855677995509942336797424920684394408231838732121388165691388300032430503455419814050772416383034089210752652369879977061325834251176850281437820431135320639284145924945580687345753540777850146003449698057611060585272608296167253016564709927652641116931397086549064443917895285622670197280472056454606442022850035825618993014842626566377114545368366562627717504063896080401667236889412460010590434963771293514288177911916514658464866791063092817794311713571254179730009386055693254595988640792785105273937349778754961115640947046830044649839120701337351434043763665786021446303008010838535039792096747626452429527271671945884063841535011987682325911538980592474283024432975123346682977170054715760333481784166778521051679135437828937194101951580959988767354030165839344549806272596013413116706403621354362502044981986972641976748813406115202924493158040424612138018563951845348906222133572976040385072456453707364848377150362884361152204275545615285730116809673403185295632623423475896825309090761259554127556369468057206743946319214231423585898179790323610431258613749914638112274330790255417677037852429291048531014618861580297538455075565529989878913273765569955570710639288222736445171225343794372222484944360673043957484878679333824099165669444808209307223420974642313603471164024063429158536239046819966361255032667577525908948878183509439322026863104561437306932069499987058663760746567702022503554328150448519990985639678161382646497116870004129486591857660508722562788096434177173491164260283788186496857604501751209787891654480927838725748506341375716395938450957985706833340584156524415348033073541073605338631947299788266905917622738834860459553452760176851269911845870298384258217312719900998185110911254901520762621004125190279769578173636476412937628039309228400324981477914620657157499873301855931104057404166007022185338357801397737966476614762528428226525245380931700728277741448622198242817485516956954765060985284617683512162974189638526649603459052724485059016960092375606693573285941463922407889337560190189324600803264301248222661637209678509730699538577981510682757667475239574179946899943706146192550855576166709599524135127482724045745003679689243392078095620770888556376312466924567478755927815355166995895087634036468386944529681697579352951152900833092780320194532143958268067091605757841982608429918219436268706731230726138821563258657075817977533583032038550359988948913451663567315457578103083403207061847297727241939207472281303843262704649953165989930658243110512785020388390181979509297732153847875193895081703909807015394489044680918168721255923975135000020054706963411159383496943884049743394961781520621070959782771354659174636140696747625121506160587838431488779664566255587259989729302692232355791877109834694989473550165461344765021594747114474587481623926667345150362739121508689706427830575951950470652806446623037896319357987165227255855754757315068562858587984550611637493176254409529728983270522983069284938925288055363756723992245048620400211225508751284230830209194560979369018778916719933482504853915330906063807797287663464785176207924586944955486480417064380077957039047088920039980302119987937687256574885443951531456356272122791987235504142292993333804510466645240575623129267341322228547898756008740209983277936494819224596542658732626217304423035483949993112163858693263719437860894678008939623134483583383023475938552274575202814075201842085158115113838687058606317813893362270436486439315729640786048016919054409569793021066163862867001912196927037738883090667846095450110230811996805505364044317427760505674135347598398924046961189820241495310875086158865359515867149959795543419708021266768226248092793833282877966397867518221990515547052594752779925903259418726390084003287333220089719710511345052822937549898243107870477588787906579554417242546983736404702883507884072823360772456122722368005505926187498794522427256782110829033860414905078212210852606975384035867118494891585684937904338344393486857389592000035751741403751114970753474380663738610306667200487935091356783403899309955530648480808113106684011063934449201334234849178777194742519309729715783384239695473875505600148899624695715907141523744464883426513906322689053790967758225204440907882058807675766267920683081503455522583400782302660897043305101222487144995024010911174714748218136515461140007227703017819651607421548187975472292065013712181637741460709148120016899355332909530361610223694480519055488702827986692769142712536225164075301710209586104454285406173620042524352562830661023878354898144453387746651870096021804243640292529874887696407910252516872054394794840771154253593701611198327971483768421078806508007615867917134468784210030772651772067264305652725606655469132715535225027078136151484971518132766597472667057873320996385781144504904645907285756899180805671702593695442708147211873193614823658495561555576869338817292293724317004929233445607020384393479493445384371740642056849772846952046082750802530997886082152699503691067933408149341914706574909340475989080860755852654692868178475586288064995694620817934618989772983876101191997261417129889793604029838703852951197331819621353837339359955654253499863279154684168450236416304933711683224708555130064129113052428566322463342862809434785013008830409030242524796062165485044432444371835358445582626307765926667157978856181276958483734237287796762002845901003323295168768731388187329569008549129423381284528833242244661648205954844432603323411832537577372351904338612104917856910614424653799313285211643660962677484689124037515428474815639451905493139586890864049859427436576677855636911833037010098696298300008098982705887653383358056376755723751700765783720797426676217999748962282327320114671160708358591476689390722370223048859853468736350606647199275635500373402757603966623417113659741676933849871479886229528900289722789003730065397597312420864887636610912641855256185915581346100022981938788951919640315903416003613336748287051746570295274623661682355026770359229057799357745945602402492576033805344514579756679421128676762983729951067241064996457631124089206362285983159077442704510481560427260253166660523045715960168649335555031722302331910568232743529474939674398192484359760022673882791428217887390306133633058988420072411677319403762753284318464848317621727832237661711603135150100698969062448959264760891655584888132796093198009553046002418682038003808585149232846847825389029966922549289653655715046146450195899212377635242822089577666469717641561488050313361268550563589727120110147748532944441643338576064824567935752563719572470410394638106724408392413367328799189307380984750220619507451663431731061911832005571196689657346280463062844761682529742092715377871335976303843398726791705358543187872094317344199417612261168757491222677801603309464402466731973866057277650128505747578440910206322293921311479599041851235182702264023564601687052269117199309312133126356706882526034636252587404375630687106773975228381114137422412103794035893322113500767094408004240433650935721484933712264490643353602669773610396562391254447320059741469457168224154637505187153377136450970065246063896689857160051331632754635536139311932928450173319572884151728209389260283064281640969859856908094078749823441262380347192936610211220459492582037887125324398386233381425854682089113326343200618510086294822922336877423707289162243732815755070054444552259121802469887590843892350477642235184084616293261993281635553473352590687853507793122518370416081804405583463179955242086247142848832747831717294062127088104576952221627780101744596938165413215038483027698173634825760587540302467699091956878894945119146227592786353632080839838476479519570183256751459309251827101333327370278347075346063585018180294671571324904111173923834926978850702732556845634981180179779171467630096676785878302535469596375437325696286882043096125887946738514206870158785731804380009135808926573521924221224008798465015568130480561778394021102732237549297831958244089948637820629881044382718459734549134485254311359381828284230009314576683441749068497603281684402585551416800792606793342249244943282644984783778655930832083540099191282499405302051230168905108883593317117116095617108134994757055192239571751267803220652020924336577622620219079864223799249328937083920491486680013508986342852038750133528358087147217056659627983151813189587946288443151683288820331237523486817590551866495137124021760488370001896909631703114018080825772093585660801679181635361014068980853689065234743450369777922980816044894103113670792900883792626045996791532988717693847800743240839104085859807483512223565310389762693599536852819531917846718960720437419269021042864681998533308965550993932596954556841951812702260067530116744132690933234927719033760194743163981360027168491666176285131948345550470256461089104359923489314746590668286493871657871169242055949573212808267626868374635068050554020282697920821037618350000175982669223784811129419362100513332576029847097339482736643341441544407192740997351022960829042878755498463495193933038219134467836943322111908528397477590138351103994750110169297335269216986883479830734609671527337741793059158588352289559450423300112698548780023134904671617846053677892563790022141196139885146840114070211692742814244793233332571150613400969683286187547663914891907562244322482623640976449198046253280112365048827176108410127075974871134143871598922342303745118897524481472255359500027768728999224080718232830953466709561978745961808617187186849574855056606861115290368429404787459449575316753099271378277004019066792709703491075673102953164025286157736771776437998296969394191057149802306199596047845592605345031834214543223560430321559638805349520056407260417084856651628085533910596006231745874923966212192283326846411314310125182798247163256000491752432001201186148253265888105377426681337470353590687011486835228620155170072123140318907450105788550232055354632781480633450317169695205725813739130855404607272294209997686163928082179789136336682005515463486176710208019685169720956907925704365389203717177788050704348908398614990869225095941190684098573452863560537973881310096492178256763367010288452062125918966964713890335284803350691114141094158757743983670817886576102290964369064409229030224469141594455386496202357304747603681234856036224960436056453904039285759613281794195411359723398908788731750257160698858206730803359357342170234835514875806591036381983037541380483331637126056806530409473959138366181352972548459924976301710827527106752997788476712128105703506240007187551401956829335172530433488482725632566292827376856084005031531577080286417777861858566794146177545480181095375387976761679833091245874487255128091123420184128291821663166006665641439319399838886268066049072191326708187003896392625884781057643074974742826304648800129226378908596931690119608898806225625363751040380395329337251164654099338152412411147460943889441983044225298240669318890320200431571851732955149819938100088817013750078878978710794797803181155580278931562697218255155574186267096177005341382602118169319904480478851105316636888193108511335086231510887568888620264887393419051123039804100225623083361653547116777675131842465072640434400252972959872811028880458030701271648847815901339818463248592236927938107513986908814158065034474383970861560072865708233948785161515887796054309854615557768057444235190912558452929252139169176817015466479632739833058086417973114373264880593140742859821941560992618996797277205557133096921073168823747452193357154516370965756732563630757697109723893917361572408039343591651679963919084882124564967454232014036904036073415673981592717580262032641556581044568857775508100239587093679938769677810908804614228045456338246543652030367462197207387688076630033928611104949565965096807723181920080509021502460520039131583263958782784954103678499638577057377907589098733308847932498563970554575796950986599499725628857482925256466431714877159883407212276652309361988626395595474320423948714578544600856826188399213817290326171485274694864789346184762841442013972168978403418692032005496368543125634586720640490246340341886175893364587280524675627781907296775762364094698736860531122454678332488632002316257277808851740947978873136988566730625700740776544320507728822306203855631280035428150955053211479725727273276401773641969634483013410460979566178032932234296264522397465438706201054515764889502385157711178163959332788245135263777934910284360927518719498366978178021534245729300694530834640350489463944926781973260251346751370714922716339243487439158164482994340139820334965648343455283476230870024649793065877015250773676639030914534005391186724945137342868457807550140895643904117352081587396078912081940613811952523468635311236864965839703719705296062900277808562562179197578889336399183372642202214396044382875465265073811101537683484835037957036079333359513074730793374611090962780949218328865634206280850383507309942059003633847509979075728055990400285762392176610154755246962012831735432977325956939907310400300064124440059434807873386234713308559093961719919748356528551400569352553193882400921616934044682117449273197989214123847538699632703526397502928603466238151329622428422075870581466865957048218578802077679448509033786284477721642775590873661239228542265647237671968845762721152375912120261173552652061991049525580468915004585855144760138944508755932568321491339532041143468003625557320302526279870066010094317332173037386066874759080637241101328158342793553076809425824618494058703762833240547679985768118201681930080434330370471365346440417655348863326606800414008108612396647163793837832698277103346195004462061756944341429374446076916884221010779116097510477464525291889202313100848845323155407299722167613051366627168398973947379617281195520640090943291338193168543511730018094241808664298763102949887382626131101942580228710471466205118935640199077326786308957588989825746004797110400922610978107946369572583053033213441433520066411883084932440261890930560646744818188286148560315897984728816275475139011217245991945815399958454226565410007634310820792819164860868379135576066643712603052109922690343956952486952539491474952363402613870351979782927141992684366515440589214221455029513281287743191962892697617208893498337982964894626182718038694955751091790362078236992160800662694608691641474193626513129668463015097636514677105735435600633520691444266784774448662017059235705804976081379993254535297717290924040605760000948237088762651085147683725992421408964809948431141676891050078940717298257662469259656459251177909819984377252905757163878678887012201442862616476058221743505635300156582128945243817378284685671485953876716435335242508874558641736811595042610134706380911368049596554921241540421457076168356221087944375827617097433114263779537831470635136285852568877643768504488820817486349656206110688024384314565521649810296737541663864632486332105176684626420208758041517883114123790582049282582988377842421185421990661867801823492825749586207395071224366331235640318977608915029012970065299647099208254192287560078723250300589745850063701306784911474980225693809783541614764321635271516228021801619566778334827261065977214261358636368189420354044987158497495372645275397279664394869863558509064761624627829872701671591713258343836214269263847528438668402177488320294928753175862734145263548790603316612114582353207543614857268173777492383540115945275310838413271144061251492748217548120828937263155126232168382951650785256559627591557412569652474465166815187655177527781266427503587891045134462047770393700293131016131917671416550415847630812304133600961667329755979438185186781013638719579395398254401415090167036944973461354145814811774660125482880968858203660677672641314075373318758111869006929958318842572496511280862228295457256543678899532313875840532893518682861227113286252636654847265571004375231099212124733104795319510834396140015992433143253168961948667265768568163152053657870052143005433894722589828806710372348904927540962029837387935344674537873060982230404941217236072607407889968656521090256279898440085192223963556784137813611403924360557260792535242939965252106831813819787726862462564786210523588362093966450121712778763158040876403469895460171100941148148839020477806134647897827228887662905090164599556123437825433918490281467587894475791840282471421764523202745552840273152285290179747137250951047089905446485743961642554211989257492023314848190323763651859991716174559282522152707968336751226544911412271272579862415039448089864014727058527789421881402721071925787375087980759071110788057268983314252304374697149472221564882890529875314533982818103884095023769300100635734285090230009071414026933272525000918765290582919685028465578669815053432450607746045466383078957739993374358256382356469840429628688362777634540529812562405876391559501729645968373153508111105642959863139418546161616348509390493927840358298103666512032068971403612892687409932452179239978570041158569504097646735076400572176956519637027286851837092727391714073738581865937419017079650829567189017613702064067533854794496614736140740804767636977298529112337123429131420754487465493790151403948395389107349889871902766719852718748831430743771985431903133337092664566726324527831941786924063320968784057385001973831269459853135887008534059231578234718623875876115490077460623603152234597282240186488582280285955504004787852646371608979458377770795975039223248947155784356746018633689125056555196425251257458925750005215955086484655723294302486709376483994475037261444257785300968340935173045019992721280156421959246138796258002988014150202126211944746720811907607037223498988280303828814086519960723841447085156780958167045803515818811033167216633923561094852482588895340107580058237053784260276850255240286402653075649307320007054511790625170283212025189548886914842819485578586074410272256856513339371330805208444066153496616239652460904096925429287193833897729169467111456484930784393527741773618003234898536431030346341426190736288109766815347492066089138709575317689811141463306719936863987313121980625187517367775282286128840717504272052399232139911481070476942328211405177513198540448695739836572645852621562332652635451020595640097449648396443545797883104362083910015543805688597187776700019070068816678407076629564483707582903932081588883874015994545377025668163292277773304489251028649092752342562024041314042680657959444368711256386746918478970156732776470711857044454914893275932892324738469247368374913086344981169320855771305424838383051279957836105127609477878638675210077344816630509791816941062152844445149421595138090336486450371877319233415302227467309510509621985050652145946554322848086922569522157520750657305182274985537529456073237346298393663689434475849297957993366420187626140204474276282414611934112543102048152160961703699410775788385923218448467047987891060007750149764164733378189981405764210579453719453723238405366604756700123621012389737682360115511277870313423362851626363301191418743365125029932366510907890004796560254194106980474415005400437966275403406683537239026678181931013898922577639533280200272395883069755513123185110521746758924421988923655709652516081188670161772708622769996242960946934072791807397189778619716898353745076627141994676951383964221584875042344350939959334211276608168323490065937011943443209273228645760131186561585850185365251620463245744837979702668727820825629836680717476678756363405802215298206884969197901333329545797668173463519496706762313249479384920284097255246751069616613480770889005197391630080818071931366288516716935874439205119335714021726766983622715641943367463351012192668355416632315514712493726166523277083148667515782889208104695464642060580645001410115947826936251134045559542464366369361573110994783280853231950543857929000391275845178808041186075022960760784306034902207189871501682957658906990544336753115255906763987163855110754539679756382809036666648271657765491701577876530593662679074692351939679588603438892744030368258033671121367990796803150100673814690698659454907828199879704566987337399219410957407717538605160816388472563890750671417734415217964277392286160522024261163151946901254823651343731843067843732023716420467836285271610581701824247983746967180359058475935800588889428094755954689718800800900365295010397437297351334304226626384060285828494557850564032095594913807943101376826853225160731725412152445896325030404054655891995532235990594850130517443177083987085924104265685619047923530287662170020794844299368569884888977203025367540157197119639347530819046889535420522674197486168959717404310457500446316975566548007553081679550702221839902909720896713747146128310892034841900353769574104587301818245198385169227684199580070958592762226980275327335262361738838170958535557142595515077515760716799634354303356038927985482192956718310308201814909577289410032888022892889085283832322531085732272090811066872238919002539812869603850933969748696983455209625641322941717573418537587093608318868780458569537427654314789431682115500004286667897142524815519424302933114360278549617026926645660062897514021332068316144204173568232616840566740748838246190223299907112690019149309181818195919063034693086896938235368718632885746683208233692406802941054431096869840162533535735893915187170219494030704946787729935881396716848027625517198911854746932548955592192997474977538579100041395164982630545956728135726765338286387630156578373630188654155707712647973649369136093962138039088202716405021566584349636005101885696623097398865807688485296175183059241536729253106841094618872874877378978902362606083391381122240934098128772160228017064679682592180691528045135856087669189478494076138567700786681047419101922109453960687048230707326267587287142104283947784239060862495592633908630335225950542813045819733900223462370363577545070271576348475109102206004262236502573767010758303996264223717094635519670131012130190219916553319072381262540360441089102407599116964535411153552003569374873941038219967002068337481612837360320007694348305549383350910654866809503544364806491325643901807209298689322481415675015637829724973457929904121384515638176210431086749314068118109330075906215652766175615037633591443790659496209736375311224116194482155643017397002869655303986532304762988037924123681243740348869396586893460684915563220724090063369379828342325231506825215672292865430999372673859448129320250994693976582020881558183978110203129062802805233243935911179805204678955424719093372104314249106481772708839912973463856983014619524444205745019963823496213231233271215467407504386849434447787579625131989463475414959439081869251588194530117310543497953806928028289713130170200738732523497908992248089904678714283745901263729383400044887655007296201359443987422053368503337441440839723078535070396387006752489355019954820345539710525342176331330421079673579780855216049474253056548765851625907596799045055424985249005024371401361746956347580954028148146724749077856052653628639279824550233601001930043570036319530302977943449452955536842409434770592377527455211413260014034983169707842597357340370846683896256331757313385927728470451525554750827779857737858901710772208813204280939872724802941285020025986414441977257745380744833161853661646392621091692634955813869522233557467629663854556275914107880442669186215810106261547577459932919006151201549107669703677367856658705920718577239712928364827529130784007736698447688536402298384974663856076432413342668933698823779027233488763200396193465037801803781098267718312774919607813239454783878168843246834638429516263808342554623750555684939208032461382291819176615357096543087563498968803579034402744401827734266569926098837643962696621713377835194670550865394351916250384752569869684314859054640060744548202047057276408474274515718899709227455748844263979137974032743540781081542213748997584560287334846604662442929825832285636105613360886657424262857392936017893534753514400527323990040175733933129872989779660957944596202027714883844299366578104978389605919815254773755649363379484501150302230720146734710115855587438377804099577170985981511390373206657481262274287539423992195791534220563941434151937050682136877507628955930688072560221387304555249937995546957896067016146875249187836270200802942801510333705657643015018314699354576245714255569198075381385287629417062453849054343478345068008456149209737175573378402836994700015600491654760904291233889945859017758334855613768945375221541669585442371430776292727700681338519964719403910028348559032368718014682137567235412712073238315944599086138512724496278869052290442113091169008689096135963211332055405584400503183756897071777376805122695994931152408368753909551079993631861988614590246406583950730467881178112189905443873305971436545886856186063640303849315678069497499773353079571132333492968437520497792206036802526069700267540176379408047662924775453064344725282368765992925119003795050879392441008968198493290396051893167437427259942198605390817350470243360961812993818760142849890436800731009380653178316725873480860756999867962301948257731978497337180750065767199568697243664616372073914676874934164845353548675321654476936091004578179032001740538951263196314558708762628715520514065299104282270158378625369935755789282718602909684382954640398603384312691010109862769060172186932564834169239586879268214757069238172335342734008805774538509555832475481414839960219156502515312289516121585666841802598080888083733336326307813682553531434886974212923882495107158479016488521107909706358092724435177120750682476384312101230313866824131735855543476880656267019777480133086400204949276139316827612791531144828167348190511637333878686553314332248493560324687579408319247012127881494021975528865366882760666654419384625815073005658599770213563088561280385765269304810316095814647133507545270573700499450474889281184898283114548083509450672303894287025357773556730522308342867133316315595361665896134110027593378269891304218681142123215375427678160860853774336994842668616061398460099381935613810941698572019425694910363639357455646807988776983682084238056587115815630904072142043756738493589616850754156436190497867834732307522259363198313239911921327561679853128583057773235949409566779757189971444337386796586676266919944422654548331501367374859093276427933896333949347088588056644665212899462131887673789437976343679211496257335553650429127533065035296398512464833539926475656182034391787481821060448616582973724250822405600165436028774855967618154303211075822147867518997895029277843835722169062687327693403391176116280663479147456707919009325545068489941675684404037897925652615671267319834144561846904708548208484242367360469834792683306619270863110799655329574917612239911480591594197036444244430889202040667295148234490008976655549985080108109051542647131335729936595408667310649827528659025299591525950817560026213361641056565501479373143660519206278983067189501320068517338152144857458870159521846066752334534275190349553540178083858789889910093518488669585290138781896553543298066621700337627139436817796073023640768018272363943268388446047051285564866711469662124534862329475283738797853083646123977692194918959465004168821025535599894955138796513816412037194979512014326931389200836247695862271378369312548441222639277286507742547666663518445741824054412292181190397736648410747625195878741076829703991633040502592789946852508228231138444990431052148743161036365098074583398920451768092680205534908410522551498029030472033433530015898632265463996197938675022963571107601008371994441940091428759017287391557777718658987295724979710336975310342039615210297626333301616943865469148801875640614273403470341804146026540572592441967478724870431096540676909895383601696829464682195431792433372550514720142514791988563542482131677216346227810012293488599612507921541555296564486505714205052107030187707534817181912042423664303568298040818360434917575352854413078281614790287330051146376990534897522271766187625803077245243544782030682210522286240933828452416067306761249897944034234934456089624525581912805042333791349756061582154494479174685305727371381998571087874107833262699458632592814819776192949834360201306490043385631633169580397780238441074952036617263261116748248703465576268530877164981170224765542926502276055840825221252496732734890592225145988918889470202071640990061515764643102738061516264765184695471615293336602092943337760219590839963555474197147276296148079452081475386781401228312768744896048468730731980606576269073239195999410973831690764598459625100957616332047043290329147117520160603411293552635191527138024427101683100374532887443985516752950610151322531080527656062455483187572745204299558566574268059639752058825827156734880352100523750453602053431356799821604061911467126636340460159591974974622102380244336363374614327613749010906661425259680927279876621868896185152042913355615570245479089333700000911321939314783161645997830440221000168536010596774688762701189361911362072255633803793322273019291561728386283753755669934463972157746553244147430140209761204947672707056426972080282218222127174158468952911410752105510397173309795773616840217280767828853241026362017552138668547166760987741426625525487698674797539456964556520817698255158261855841858140067279740572274864835616822258780384452014239445047429421544065312256277210408693851098737653591837810147683174493062475692858101514910768674370967424170844336997820086300242470554067895522081254235500998792735858693703199708751405617926033026341547014039708726216769537233018395801771408898719639479630779105406139774283557798851092583984998686317751107954126286755302517210174356759942562288521430693480666700950126451648307469322240428939712738159078137574958242855774158228886466983642453403346802758800349867768257695723012269211291088699896505067366142535296272817922382081050105092182780863267750862449533857618770390653423444801732978374630111947602532725585979686351060696216611565866044329870042602429061920191563639614971744722008691299760865200772350489137106892652041943766526649906568213447642958831787162263065525132348886065807637110613910391487536715244554794064908949740586170340461994893132229483711312247412327645888785757231587506141102224991372261630441280710976233391425655756688342706442992265821619547007391390271653698332419434490840652149870925488637032042937308384096392012364731722752441962967420625791276174653930925576962229302629384038514978776642666908415179843551345617734231426834646291982684892963068003250837656498306528145294293163795888276713954544418310868035798353635350750490160329751940423978608470110468538082111224800557971188530938927173936391468892496860002535360061512570478767290544364948237355739692923843593691502326911116201540297416941432552888208919509236481852472389945286466453470356825922362522923758699423137249363132601837424201195003677683907361528275389259932615704580922133361699658330984315474334289206884691152733404866736384947525092848623475590987094240669276762961392157114846669396640394585274968754830036361376570273527541426158293418780312809027884448223872426867672253801054942719526796041454338155995251657281514396766851188365638576155420722863809137336848224398125461258648490734949940459444927476648464450177698373684454472417742478364611827320099631408914415295688941854661831104181069609306180339465333279236945121666048828561687170542395788553599223348538171325618279781237861870926848596943321443967172639213531398993004712720471735828614351575048542722429524282778185307764411359475101221414213995358296390717839096043593696727097039625423466319052296386415545081632737495187602482340306801752281332757677162215111758289765912290411541971487944299440326642178294381913049985351111967944435397633753864266280745272951976158544639034451431151371871753850975781266047983819143835229235291406804111433346323821148572237504015778589579776697889723506502967979329488703909706441962910627165294521107733189288475318814898954367455175783380042786613482927634471788981683953918100484296934000408254475467403876118144905390373611838993738037012185645590445141267392507182272733130840258002931644522449023242709729237917974043402885407791482250500122070333918854340198187641611845594943440124385599590785295579444692905599296941764733343733014616568899993975640213669433260127705916429721076793063117208759751551813968476606778372209969258260454429737058494822006122742693030014029047668370810000245620783032326437478325638417947696304129099965708535163308556900569748791230368590131533037301140710314114163094969527118607454427346676831668739995822997712511971449724119873833254978215897916879093916205155521023229105244951148881351126452691418058033868000666485238309354998793507883805798109565932206780824016133310633358895053246572034581420775167013937075584283692439656882548636799984774870537613675467612440092024824584396070946482165137521647459872845565044476664256169187954070455780743712597953267983707064924822742126921474969739027479312129202878584628281029941362431889306313134639129084923815122302554510883422940142235605077622472913355223666594187062194802753690376848578114485508555417221397761168355349245162408485944543460546866120966383673611881809364312722900751631458097932591848373534082162527546730491691509092175181562047359027079679255066739593710821166996294181857016892367433867190565872430961894381908321653077632501111782036751259020645688243643398847849958445177616739101686569982774276207000508040344064450525225582004454016476491040949114093741252308886263134673542095680639888628127164778412071110009254088644687041139422999078446008728295717798089296859933843508064748559289884887199703275562415460108840466971105984218703531198558313953694968409200409324393606299801932644617053736912008729244519254215487540331543026277307549363750485662994066219846664818384291618712606626405175297394274503636457427313458008435222353810393489910600797717962139872813099322547853543508941870939026149773426077406659071414180230729550773119538685381273836359485399840029742699021079543952815210374974940897845055049881428102034883149224670062708434186091075242122299345599371548594805854868286908502389534148628525298746711717197153839112701997540260655852411129463542265860233192379325440054290039264309678014150024305612834734936533473624371214327747504453598533417020013093839467641650542552355881126142005366408763739624360174077254853697431534288543876010743347577259929078025339487885285770663102903498961838729842474487037903829451088975365821681721301157903482583451182648915612127901138631287718190045798348704047335926700132526618018559161938452862173971960044484111306824715134199096902601647113367242447136191818036387992323878368118339598851155562504584781371317027437845907007347772541130356818359611291726172124639086899688455702950330651795122427677800692243662255286019342107605219333056295357541261136442590372077991829527151411421896394193181059068048417851816957797764536124990683005804860963914023883871671834595563963960667160058212541837490701710544154721670665132724978033091161151176363047658244653013584411988702928548279298591403854610497322543204181557910460722422695503025116923895521704003418311492729468117617763234573577694067065986667492657797246868694729716803656944255961406228816093231936043011610665245975505443284770228668741847492876186632018354846664087612806294507226483519939574491221079486128082178341154689689980868389034309597736893123380482783677088167727674174753223432058062005677212898268517031248806709674353456244162639478019961179569053404755939836207457266794504794623588203046868216562167348069369989118018968893783598616190169783820828522545997028309113762027080447335899899934418998689939093999826766026967491358980890341145157405464379015238132723176537527388333823439035214503707985516624986097122536222686078256089202508177151195677983274956351308213917905802686394059120907480715549505757579360009530758087058436669601475941541959010058760080714133808487270382622203845243988847028053902616828283818702706569518784903061498270928339180180600025213438775063874839537149799735082056130780329053470904754709560397829957561454323974469607813700918739829517570751519715503427756518603489701612580396328854646604637094500511437957759875577722067977382707698656596031318386701292358681785774002339258968797936090974654869630584655105314384660145865808439988800700059581080676582318606895691117769416695795743850246672260106990556292121279374655497506956133694546082901534207988578560636751807332975831593359758335453288382762815610232042553494232985468448931876975373466826650389386496666578636650891570726116574499055445091339205585917791031346205666664546755378531642115506229054026342957379279539809181099997193008319621140805102268644170315443554269678092436784405681807795262738109573011317673084308774627151893667672949302946419322359716710466887798048340051350685553383776989168081805458713422160514628456816715978477999815139770828928185945588089410712620191139518952407986937781618755580141853682084931732493752350197732378915319053673909957993165193354272873946688541348932165057860860177054326560764669068726080993029288102802416064735043508560492702077064103345069200087491772421020156523340341326669340343753924485308868118931841480807648988612873880642013020881015708067536414775203962618531272123016788788261154947927523507498711575179280144388274792361764943739488055834839680132367807207288437183835163548573089118689603079903742128210455637776763970110069064451628874150638425138686625460604457109177320965167301513829969135328228032382730304932799040079669291070665665373508010818566577667828546429545601484057144144114154285337373890290696455207551287804349583502987003768997188350161565525009128857570411404969125112823560327243297504444768431108634331148084604757964908054537511035836977129642674740223279440001403977800809040863831717071397470619822009749101984773201653994886352785184103808691724631166057084868316933787069622041950926488692002192989644381017469480318304084714504903189482441003569392078421316444799412089022344161884093145265236418780545718393993753799843054647812987622091121033475470350858188080581109145134484941955499226920931582882887863844540835729952758519007736866660872884622106501425564289410896122512642573779653632463278222276579510748048656709603378882860092703237905957571415848723695091820179166786003064112749939144875661075059141661153184808204435539742248072742768637810604669352522985291415455153689608320052542194766567941135029152421095737484252510526410431346133847019002954659584470069698750932507097121414057523836907782723884537486304592827296404826545812171653093386482920313343131471709439460734107019055914327807787330926792588809130745770112837713622722364351783495522558865499475922835114118199552076395426463933283043196327268445381680640838776250516278745810408835236767888298550932094983906034119459861876066707765370266565438829521739090512130435238869614982049319728978394923153420480425899826437972839448114282515173903538800917228790846098566726780382153174908503491683688001946155844117813614294157815965354209596929641740724622993456412191804382975692332457215329351913954148802653487223450762560854666860292900143731944087820147191738258291152084904299017511477394447079364556986834917387506638585889543018266923151089029403960123911182270941552008991703072035234087419186203255706498310982351450640505911395652535249186513207801776500392485570510912328925489339131334419060866681851734734021171700967454384558367081532991640940498821724977780436539072683687146881099723315231805666240056442388335826289237371598821331412027506172618602485937900538304674001835146455412536400441951111016459643525171519827829310576518100787246811932831145050532647581932895005511759335888728425595086327757184798337544683683771361670316521239500253880212243371813834955381463505375884633853243561765720273602563990687196031788534019971982234683868968804507440037385343258768961510731980651799696521985402183321978927978182715256031519985731792312317389081912472302225880266658198305606279233870361150628525862565400403734128234097090477580440343134980663779497525111080773756130016273428600765483232374670130804115933759680251418272949226633084852459340948244195389852616163480745895362401611285877754413362014128687069393950833003996311826228127167881902377733479826933428024265279751050202403234805097978346512680405003433216170968518771737331966783443932354494667385578730699841149757793394857390701815138665906137000180102520831853994345656806130571013789128824245255230326939613658322204626082858041801487929716046585706113015724105804828925708590918288066137697182746054671797224212313285652844531424950964041186867259432231168942047382942655847931496899138477823753639745205194615836012322392271065580350305366153533572489217213375583089383014141704435277159423705618191253452909428520466290976872047928986606606480149888928679399491930269760235457501215219924093879747993170854288676130333377933609374709273345401085333889522045897006243441788615774912078563195870439784204750800692107552431087086921769093576729365660225177718203869492055532847778520493442536203868618618608120613889558787199901299759455390609054535354863165239127567388202048680238028931967045876523151339709333925155856113618866269663055921388924826418912824073112410145886000398869696387659127748931112239126418732190155594816300370334902705690623032808620134106330360722724492517730099973523099003878389408809648442987596885564577128391547702459239077279816360777546253304577104611065941344443775273364629679852580626923542192173863751997552484173376207643561210353845276621692878036940108106548175177091312759491746340247622821571835676468188073875562409920389201369261968884923130778239927447535566263703691048745534726439704242059446548214484587427368263205151925113531996040394287225035481718523050007522576044557820535906342309356820989179727025609201133467098441142836333296775161679516100138772457096496470231036770625734431690895833237362245832461695070455018122999321972204424359547936780820650508620598532449598597846282339897178963426362604387592614739560928401467695748327854152435828335519621545116172413578309745892766373074005243336504820886273607092337906583972324496844519858370979701508019346757975436813190451587139891849634770060639268189636197664036819076224091701070359395311719067913215519748650444154434513619910534108761913103342402565376500197152994597201008997144597295082925737864858165821980387319718367298460006591202285004694698324805761152446373172961723254447577539470363852892967831283084459109649542269661131570243088263410685621603527906372816491330636719283924006670830167281640201387721655491612438279068084314105317985356393790863922845449071845620041697187102029472033793885578832221629651504894902650699796989335552793562654965119273929373776407111165496912095405908847935326727439174143412522273846378591868367392102039726501682985715044671719377532856595551100086658626746872152601933363977947733737499123456096280519515642602787763780440751772383966517403471367838509765596344440036330484329667014851502538223319487410620810911154264417906484049272414926483282618585577380334155716737617627288987340078667052463198157524135216491958966926915425439506812191293659637474128952594034483265396826619399409095751727571815230278345161623626470057343734908354417467709570628733608437131507785547419829299526049643012620481961440613827541551830205266569607003839318899002528364419641221664741264360747870114594553542443933113263381184886064206498555146146415526518497010024884878475078700919842021246656960087194039491342366055137110721192634527605109497276168554483610959392513098795399512233001664807948932983424110536789055616792137629124416878148166544540857373590205928752885812433313738724811267548360068661791180455314992033604358798219476396829329906989363623512017744633731060850954718557043706038771361906096081729034670070340645143461744604890640448698093338082119833051956316113552417264404839426486780536052933059017498086049705927682235383993648713083454177263792616660010770761077140623663045483730209789326222628639405535963244906270189554618311566866119908957813856971561874543520036681682683821396027772274859237300066618799242961311809544308262133228687339115361978417948709995700529669907882355358783998714576198955208470687192862220999501624745123735522177963270356384272878003296447362754363278503311444952987467458238569861034962562321278263079389575696900907127602126819045562522672253037704899061806131268462785919075986724428604869361787063243581006998538574060614697005205803310257038541488843966460493975513603357814861664157543725542056415755908243373432992618026875951700879056245135418512564026852597048873695514259719184093936594137460844828051626949015963213893448445713295172765618279706621980136858694598276487096094286899924039151959923186622672810044055870075733843475932974617104518194228937869167713813552691144120686291226388119409408270790533011668168401345338979626336076258580550267140292644966469602846908607879673474346644358684959672480120754922648811118608180284234709128822240146157546458980294934005223312803552118673817218637989545573461725319187985354786933180441895016458559500215959585887470245984522261089558643418688020419035520671213582531691309458500812655097489555523519271671363369921160391197444185327734698724522073926292192882000197465408314228083533803072290469646029172400869349624144416428209669917217706468466973769447444817217706108805314714853227175932900685937925805767605754931462047518180475252271741796778791068447079317133196201824988378646758505885117957039347286901026964210756016958436702756656095428160900793331782732604549483075488270756907763678511197909459830200088984680997143606198082532524893598761976204218407593415164739012475112392843204245084977113936678814031493197047419045398276234884575012735365674818918416883380186163844395180853042903042927916394141699085444656954821155923804797836533176670748637981348588386779324220703789329964383526051818787189535551573907932497524242527691685543969518071313040903113586746005385748099481221027501585377420531511911974699036516742689659822689259149435059057830483792309339257673798078070629881396473277968848238342812538557190794221980590490059927641527139069516109877694803788764070895541695461001835763402727649762987652615244892767364016144491650363733876017145323879600804038358318518065042172498267888317080039854141219726451108392301114992854828435193830461009125306874491378057273248240424353740813114511952254566310521126452782636759724453684659588993866370260272259711703897229523139552953295341454192515393138808920894656817371045160187054047228521437661179049644585061579359657191228816450826572033893403800583202676036611941788095065040711802732385019379136345238666355361779974838534503607203504167140536583819162705858053283275807294474018074159580609527993771679450991378830736308129681085937456118247712276587429657326473995594969671119802742636328611428915569499106159064015577913098810581305705510642783301030161521699357432388364994928646556000043381056689140432754177164932010356691958421133380505473617265160897561777266327148906035440906090596202288433265035818740241568761705276493508822033169001979676935683617817102669828975606821016976968289188059083905269008483294286036199371364455006128434832302346674161808868056291400952660436344796364734468766381261689562578466996913612927447071859055523837449063665683214701689284223349671599351005941681575881296704099341854260922868530136284684779018388376219517319346925710092392631278454102295851558320518477708167544881208726649837239583224615078386983421004384374998938540684242792775928000233265995265583483742937977397320567283946756394362781579040225089440432412171571619873540733686491935001410676231268025145943803485190672583032151291273440716140534181792401453350708443301615029221857261643252645782401268265010900906197115806740050426601953426117511949773712437314065878950533655252373222388542554488859035561508208396372823379047478760672424867394190115635570547076990853896436121395978004434294701810022639797657469662852153563504805360437737817283317912813821761654250788256187770944885443656502577713333335303810850496518803717577065524499099085580892547279050750940099257344162051025965687966021449758941275944356662230240916919282124416291066403155556062243564198783746826374427436217715490688664436541871044683288810024634517207039160353127682988156950979995881585979345303085415962272013330438176330003516174069502211642511192592840946780686537425564926904195193621817596554451358579780935713225743208265664682735526065730071146570286595346220428461306259736515427125702758334060695841519209563518975419978733144192069974600386941829653855204267364883691913326624820891394244681617926993265283363152709103215267008298828153153910131980579251742910516638513191774818285798137257618310975300569996803190820452991727182639505180707431633194938138549665495405365135472066788274716602360632736658144124163916022337646698054118880659628172857754512615222707487301910279943967498544641680940376657468845050512067807704728748644359034827346334214207681303973008799260889907048913657744153998285035116112945777931332591530103040746722506938836345266542503164961039775188675262286969459474202790634235631021096912857410103543158297299413532254424270875694653400317893884056205868963228324243409445446870611224017571091973865038677054881548728591621170037546429868164723108476712754581336870761362262129955883278596162309464361911332824662590824685323155731108781137441207055247424910291411898742701862891704605085257799790081709176309407614605271331571331487794976940367846570910260268542209106761153267066259850017117455898740490422688553485596595883264492076728262763436405397276143109299197693737037412741501143145064822279476568058534433934580559439512349092421622098717100312018905009747531153280008115052140557828843257934535093889620933975832952925856004677768914436115552423581502690114761424616644991329744851533644572093012969375255064590277428684904001354840423220906771325592076122562249949455694773581235891688254460711176707816451209590213453578896270625735609371538866157168465281546559113464971437423892368164644369611378725679852883868214025737056377965210920681233470935377733832048313399225822595235799907740193893843133439523800943754214885657899213974622437453371606110197783793702146802524771980050082347292587061424254097812665189157109414084193830813755214460358557074160834757346053586778075260911009891014281405018835208934127790854050410439135427183709139125417202579456027080258029801122480911908433156814689431614353749669248985118548425422928754927686592530476941218426587004841009361616303969846182506060035770118308985931190531923730686071686739848158472501813156871653695345769191851521712774973387964925888516768784465994059878520145134942085640756385570460802213068061780650658403190539977683990063314928973258774506559808177360470894885676645741038921818554902632968803931399508391338267450299280950323182833041518074889195999490946569090766500658898030070518022195623902684143713229191078410857253813434412901829593479004183982270895398368870612745519584653968593425223349396400838513479114061176251064441648409455801035570783745027496734621349410453812846912432932313389730991812694033347109316527392524102907752796623739431424927341831516071450153480074879274987854249059168088074236940246714172514140041029023805850518492684961691976410387092857448501715753577324503449236604725751408916791615232389445348976456244935817369528235472229954716320255944821204173484575050569030659150551614813655766878340715480797819102945621859105841985227091230518536892523324490172091656764243511429105902424771688467912458073187703435341998696075098012298254821524768473631295390454100415958739033513621682617538932627006037200528999598879276192863626027055043728022677776008715664426086693173126076802077567707782170302887010939832003531754052325050371367078706659373028566615623726458351079231020323255032846433883118603899598203554603556045378545902197122123351777143890962492123856770937986112235748235949693000284659422398840685662779013954802957417538335103074498960852553572673706494494785621050928799309631341821435830695635815834619957116401282427978416189211466584489773729898493153385253876292132344285549436439538642017034087304981521571271434863200142643436415573065476068955824825628722774364757421791876260569808445949710597907298523142539675528474679624451541829146421064605883317319174177312045744435000888929459779317246886288390356979761698445281356201498215157897617033662821340386368135755557028638674007142423772460310036362773875182285026443557836946221958109569724052960308490953071309939110581916831191177225528205788585079668044592774479472628338349215567604476884862313111189570204841100254235597478870105256237015168577992599690896364863957200811621262280758004336008363453625706386885889528527908778650145858224624215910804924514393577531768625179500452836516001594266103663104957405869208719701670192356888266466862963371213423550098297315785666287645960344384441831163707714634979349352523310537117972995244133522362751988293926434949752631562707015456692521940605230263627550989672434414517988877785433485741313349625428164367007376258215055234333190995361500455160873806950280177808242456205564515024695419996818916590199515996734133783205270340413040410314323280246064567348354433693134866473192406021864191922627569272831584316432794900759386125224462545352331818789816993630592885215420696816153556814899231845928043616389183757340915579016775205203928430299372146768870387381395554726276816416124289138341347990276948010523119119709507600533230906627168706182536878406776599486200887814460786363308391094719021802218909499138027299873885138175235852584404146896585267188760672100253289153257556375629249767837280447961004196472153544699183572332697398391251868680162959833451121540071363188450740639536747122707831785395228133785614640326344249416251454299371021992216405764164552585117907361404498874928739791045490042082116934030691523359943629726293968555078113052776413740812209104081135686212225385449256436696481286323040723679208362378976385481401544376466842439450884711304938854228703707347441917595662692908195983284571424129376689482268905400974358455548588161818440516320372856426474253094142530490143045979980319723593950430862429621699562225492960062263440696096614130890432487271078499255656534860955769463953254222151978032492355235626212836875143503730416212404232645081476057374685717171474744344303176764272378674896466979624621926359541629061687169806165920888813202285547813495088264708530523683388879383773074199674593046250789937237602608803553270205903580572519475506384649895654342819077595741864796051205295988148152547239882610984927615826265913068454680931549611085042760241695966518307895883502494819810319839122389222700285124683027748150312314747964399770460012520289361723932903171858220063506340289104005165994878607141809245777468627375022542782849903249705143896737622937748479004930507505380824124087688210467904214198606104652455289381111696689783693652961377612887747265587914270301295806936398232465347083363691856000495795026872342055905605007211445891079008299507378253497613641235845956874684554090000199127278515945223303590886384234122766845484791164335619273447673139385079060430844067379161786679963237406658455846628045177437247984864858662309829051564330285769000352844335366639161441679877358268206234351837453344598393653230535320848689792637514631305286139636334904945915382758819071324250761738415090419876483230002586318093920719051699613108685549155638318283737818581505147735828061960080603865059641433423738503784992395055701059109154260299853922696448699991161125316555069277097528553433257108850406518149610300712326305244430610608831849811868113058942781421145508153432853881898925232267000757023739406157407882391456216504669848710756443762618110210482149399114177165380425032757764802081820537065211297724088838940400296443019127163474384795246533944686442632319905050195883289150203364762414083119132437130683109936849621533005066863526467876477062220780048400613461384468126658810940108665074440507792854761760750766837201505400650047702676069378169227565778808145722740688920769993925583698029204470558020033263854269336666643887812367636229534308892490070972596865546154367230353732257908502157373676221856225917836739841211050243279881958926671274502845062986736788478953318391969241644726391875163300449403580239803162096949630219388183994477109280651078887085251227852590345277477792342098817679738532985781205393562595809707192864132518909771395258986194234035973216558693552591927082378045251620817879581581422711843203209272843990212455434240685080513240716017356489667232712651288245697828918967808639820878943649873226458613729035700718340578432131073243786373240362023095345987547825547396010178678886986292032031596498657172583946335604118958594510769327269048974382504751224075713755326595868828215563877818004655818426028145480098466386306548750801869267344186300277157715561470006912197156357788147615224128071148117952749169957103419274912490525676343137904961087644440423856084086228435942612683837442224370787242534446897899782310788983248545088189617875787249933129751741313358400397603760304841376168455009966826490942794793070318483692295295429941145617842743412297649887321827159374445864022269117597348033774608897981734042636165251212679552638939399468711414072314477316542866442954738809974233648217225085708535121315761647768834067222013483513786162777147297164654883242784357073980294824832695536916551555708110700931675726191241369323264687312825742225894100480336241323149122695538755641168988545240630883982924372435621778754983334160849882062138716790493220155211099656011604270569225468791567289027918437035839113322242144151862622856894136392468419677829496963424860280810497126153274836121593860945895956252946767977299062162466429179190400307391438742839123728723855033570214716695348170150900376063954440860880713701654110507278470049417800035558787280861083444932930083079444457658502390671498727986801951175925304290910972556724189779492050889948114879819954333645486377067118077478923767163172768022990110467590219518751025131046554909705767375457676203683539759411198211639340049707824362799101726057813360493800353649948073355537080042380363072798148546237873265527237389858956607545158548221392609474451046641196202255610085736696770015307216383566280458639541255465650710367418697977428196231583977287313454645439000742341089864227119379657975444110339171971014357214193094521873834937539241958762153746940178404051788179859101136060628941376393124665343287339413536179939142936870989273412804299972162588576678328673392810127378476603100985195302369962947994931806457428163095048550894460362743560098421836471747297183686057460372253456797243367043661395147700752493805001575064750104857933081643919482696815630466198115891964587511259641408864260364930899529932664655464308646508056515333496676427582451342387011526336351725041649578119634584263238062138206561034888019310561444461692612182592734942565649702130600092381633265919428672072382766297881416135488235999971866974209544777819204714760226596096509050665840325689036487861426886221158695777604229541155084348919041697516875613358490657970198232570288222554199685212463889438115498203760821815814391307164294418586139286455593842821584478710658181631866879699563165112663371124100594981311429336315688839339223912109825572259976532741713513942401925665465056629942707640360208997576486259454418588305221801642724514733106691388360350394230446749600332673514666391743509625050167913681868556389297001640106763497230420243693977171555219124934760489585782735799054334941666542946152114483121808580398066800568520881918956546672950845589641291586251560911791878181649540264261452089173739724064530497828203501948596658047317943067380567195178559624355112430468107394601151462776177280472242425667592522343496023240406413943778065246857521616021568964465571972666477026068867870630941528983066715308103819397368980094987618852351021726878480272287749443762206866745083912221477525632648096543199094363239043731505789051920200194425986407780332713779420982665836344538419376235764626153165292791394786466342337543417022717804237570073944204455538848192892772168952980093400036330889390160989888159891797291098199164140839113553060570200397521872292883653166630368366854751473647972281365062402145581582564224016492280914203283502060148771989145706564955901021851785175920592930934427487156558669694003258921739359794326869565586143183986842486568253359829206672728804393778990067521255515220716611668176627351362690984438661281705437707683825851234002837729898619408137414060959111893627147072925909396492902705798643796313199966479501555534205851196447024592472391022962370528902367830233077703104132677923843038340208471219784561559054414688066282888147905594639888162885665945456319135232900284238562730091799284618426586935441644253929070199356909414949287862065557238595705377937161250894583362853244399480708232964115172880621710041557685815289947579390211932482207548548204898837257642196839115494486795789761708699283167816253146493606383691552200469426176180995410873843410671149450585412192040905507722960134737812623553583998342766728056039690172539158507521100951584576799746105027493413790107771269409924152395375190220682933587813145121521472435630047657955990554670048178150650834523926617005684014024474499595991462408765795215445582409552429083997808587361633755913615461856878409844090022536416114432479885702569775788760218243085189910157297053668439528711468318298504829543602269515474822214914030009672726490895025280849790885375645227212767893937093881738711248351977968924941300557477042735995540465208521144513790098982843218575454206585461862076440867890615708525171722506116852550961588900538057132325177147285140874330977667300991492423055165942342099495552900056606813277616600395924777768498254506908443178050941261702363707567918711897671683172121059202225448155566007599655886346631970588751319916761562467030915089986700336995791810849576470490126319759318677620762927867097481470417706085385112537571464111700960260257126092194105412314872454976479472115421161499485189831796662334853858970041711365902422828468609740980262118597390465194473095431311413610825646141913602077342192951833440704136582925041800872931047067049261502871929182024313204170080369321566305925937144465959850837273498746108363310873074770129806951611766315075206251375535841133318882128246917531167973914570181019099814966385554580066984218654028911684137003022769763108115558180429343634311419101942291443457172705208581009818680434536436718542820391144662185850364297380882083090358790204292592882494321516972071916038480260508840417004317748916707282604027386122918186205871004021097390423459452670745408098026045632036823800908018439403868373864128274519505336737278408675381337744533867554394678843489899983302464787471617723063183823960758260660566557981960509740928577469064444140168042279979309554772817786497606113986592079163757260256801776584010946584438127769546378114026392653940323565903253613487159796769858647913536530573504292327947390630977500664005440469787149380273420254100073103247388806608044049246030619002129500981216636094920951779706872066488363660361925592438200889124366186550072805902477766151987605719262509606740923376179195747702716855692652642923058232792612547752788640044985125346008866286638148017019337263788720065881706320407587676645135906893972911577476623217699387318336857144720826437747841783663574206777662859538687770602744854089531543553354315858098799646678044512151913428820585628247226680076957172321068149880241388206847575089388097411196955492218342377978673026846157132137396589124323018123355077540493740375592293010543219566162048484530289411621053411323667514852602796469577723155475952699385066651531672781868490040255435236698636225346654147163036826618910829301160436072702112436109888956073166127102826659124361075409362306024966173348221388793928693654811385884465516135015471432038825920270779270458773118855726242744415195795039457396265742041857938184363096016389913850817164396412585389130290943535877538374903788542562314107139554847687907839919360186123557412736491792623406630647301775406650931408086646118577602422201142494206866126515314950466159077608804340735312884167872139406638866833179438728127717243302512357662150553750496700063424998207247672909803959589831880657649106673013316527746299711071867532651219944114194106543674084022711430249312418313616796585865130723988168391783566078652156313133384848878586009951490929977759987198450574057992570701214348981159910424149092863673446158995117978003921573945617565392416370705257605550770228987351150535644442689853546573556933081847755029548808168255838104150094610151339539398796961849018335965203528220470350734956768269288514999362642178635540844396672157983816916790488119183919368718433575832289971749887036997312436900783229432822735031608536264856676348748776945170702150248314430615773166115056535004122641550408689192577792839798707487319654623244219724691407908728543819001427006793337094939529479279218191434853513922402918129184627148199889928748614498390937043929620072195737129382356696427785440366465355092659741635531253195174806278646100238531397479971230222679902605962347041751990079848992059868015740729760889713552503352701859149130003394316260193409636507282270941506063088653863121238654241193886150361079838893223087845780502918354838608143656405853250464097966960568631300644933481119217522330288321139613663895442317760141611767062495701723958622432597345797374041852769660948976171742383107006984597756028945215108942193075848232535001147620931521283450886328502606166566779434235482686704991546710045623627132701691807029041497162322222528871104423459297411695598350465033626319187975815149246695094705180532478480881803810502659582950160335598889936210637325927189857307803895205215858116518044850539381944366492466448347625724950987173895402646351139637348219238453888037083545389319808102691334745775044874948758994262712539371639480947060241184952580217652122867013077620002388065790250084373802209781012876426934602665919472047089887179037511496849387660675560623270585378423869318303270718013595566068441989159384992996215838824548022471045597252838726755150003398002330077292975128512468642039995706184717725412882643639141388671521874890204506763390307323689393672522967905495386552755553846631419096377184894585027531040710194668557957133476004903917487364905531296363831511416492169787180984568618036660470694136653740164917040652245835014735820595491554541572939206979504383608511555566301828294130895448015456566851082968420159571192945458596528492326479095679947662010557825268787322805116403317964457972874716054036563442059195546277016612697629269665304703804385640560728819585227330481431352406424699665795000117533117599435969652510237684316724418429151857870265296346579651734566877150616272087940354923590634120340997996985430914301985199121169670715314525533400566330124056253500219398082916782325105858532184625565070493294425515851275959929264259864503559322586142197476964396473576427216210025707649147877888656829388112316939765647190158360976497436519817271062729405668666550687626301385947071139518234344875998154756244090715328948531987304145626034972557251683723492103920623803330942881176038304091814353612134790918777305007751293826727872372612612504202067634810471620032167536824685037410235898268799778539744249074270810513097498751047506551866334473286469457714728111022172504874251647516915067611161515346131851816062724059603108668200255726017941726697595997020742319848076806814035087316024000890757093511464817563422181751992945692895027545824779666506576555156953478225741428202850493105716221467041960148244228066200523442329588693562370914263698247282088652683255345040936041557302434902932653815540666617059096180732335107542817663900254750417321110738790895999324333009150607922107500054787869365269075293271834185903230705279063909024290927578390424852343516688007170623273755535210264146771720094493263187843368366904837265029978061008183684265207775569031046497303106195431213557870486928822719924145960756362906751942876748592244436835488113621640315040600934081390951291569733417256343981002567903473768291246061820262931218799622019465115950930974521561367941759818610397040488317503992936222027364829360677766311490147253183874545486430646773115026229276998703142982685225068160508343859993936471638964246781997990484969629938872578452995989268811097351850834581755179474472303237018171205293038746335834025526358415329224085259399857341067926098300678403971166631971170607697233158286964381087693991875612421578675212163525865211077889861455159408650445251566847685067246809683127630621562969646296502185259018519488499883064468942682876876724882548990749681676459119722925794166670145501931305176326429589130444692715657423439508657810610943784124696877429384495353642263630506476798177796875116393282651170340994542902940540784168917656810905788806174122553167410388703901384343183399015303744295328706640468752826010794748622845119497741277171450567996251115199966470064925157692870500567837551005083761910989262422420146011253492421280167912016147207122226777972911234691797593328108194268264457243144357228437322933853537880804702961843129614736027811448824853046988718002296857858318323247418923917785635511951207958893175449542206819718859758334924363538688279681705984439504639193988544618590640486061422015939727627290854258572627348859467769821991735637536101980670050757512931579798856881269423140620140233987601009336574609594774691493182348251305370543149618978357369602211419725279488348687009328664871548501057069446706318425517299722583602008826884497792100107718998967973761248584834664130259377795791684178516103003375963281876006134074788167732231579952032671596119077920067106779101766574597273510875182669037764226571147732560729094081371293486856666300393068018666759508592375671707154681631214982392962658676992662054850021632020195044984135499890857953046603527252263755187498213594624951228669625805220652678953817118557596726084130720681345515619642326396799227376215678410368494966016189179308489518678732754983017469738565964551872152369066267197816746952874211782147778868412546418840527630690383189584825846870157109268448469918544392506046410449591868072188371434225140124935806097186193766354534537099027134409980463092682735895665186568199895695405428074213558487112582992063871245083900188816091389363346401375839250297859731076501617260200697311957725158483206077262516982459072980423016200017085745381152890051226277381759235731028957632921523632973446110093449707890441566995881503730563156988298057931532783356259659910373736938743039999622021246972517087103520526977577973962920931951084064124180237828077233161388904820207033056634177165784124006892805298426393134424634184798302713629829189868967148340300342964938218698734149241393908299179211759410653015293093213547153326921637090707479814032498894245139119156980777792940875440306071065551523104124858875407668421123706725393864480035268705388060691577572775040368427415686733891365366787810332068760514956718530233027697656085067334309130451389780982880697088069236925081619171869123959794070688857189288512557161145344021129820767104659455564262133008763704018099152499436943476491191513211487498514672314108067005474931242211836539143337312286874708623148290095560377669285247969484252061216872689282536902166917755376514555485607433551606141282956206142800599657119971583023644096724607575399775563513486915494224283093046447944341075763727390781180515644858314473156641761728845551712633266698439892981944157306505041187893369776308857807994947065635836561770975664762679274179367515703441496369591934705344674323022306284798270418284668657923190111113414854310655272939139044909247348535535821064507957591615587588416226516944271525753446191546980862443598976689978210227414430168823681342154508910234383702836800635457413172572584274618976696066251124165092643858679880730793948873101798308177497610860387351415935493315886873945214121429729594673953352124846064198453752724678368490818706442066583421205112543519205886383842021527462364937886141403734127158665161755426937347898506769001348026183823890277038251612231654690441900989373886116953509050705828959377537355528177650589690179568442966450820029726247981253217882421474023591079929352277555178936827887126993444385120325516624417036324722442577254400642386295488409245320897348400853055614101400548661876376966215734371388973523684192669161275738027207424712134877429590679849971496318531278203323993731935404981297066581896962344598519581159122672804739163459995823480800269030812520864131466692553583649836808585121068427485441560106883172804058042932381675140334635254263336163316195581933590429523904620912684270526672565699099723658296529641780875410661636160471346095729864668446874253888719568008143122648251769875871242072896149391743345975168708859498011252328295778360214742179016355012610584461487309649906362594657842031101071347659621901497736099302011925043463992243701202196121210860106122324688192310147228909370478866629262825216789935633830310465734043254071464491353287172011361477071949836691818875222241081033709000411899203444962295014380872169508396439658679564775797738623162369400612749290101823663788079181118103160279782073659245898728617209860803304241728245048649883199261446916466992123746413514603334159267775823332044001253502106400659966732421984943673575709883062680495198871392514438228071016168494018459512749594324642360948570308827462004507190320074444167633744208377083081340773656525796968413504539794085020074490024679995119047740902629239263309764347794941663472176045161369635530366024547779785706557838149546228479131277693772656977464275054498510624421134622877680119296722440473077958728013840384768407841839201388416676277516409740435979495432595414684372541109396280594839088381476413266544315158092486002631806006166554313285816203988213207076491050564796350083818044613627241231759929785203298695803614840662783597025251014676826726569937016962353979983544645975179884626506732034892001675940781963202358702707155007478390337849016005935903381869360435854789968348062776002843023456147277055413602488305503519808051825345793291705863526295834487827047542747338436635987950928115258286287724095401064526762098042746071747516792055400977609158314379500274417514322743213760376829155433742589591874961654080370369096877151519306196899403957294761028491295702195954074291031811953818257723435179833627906300855481485634310000795044617727217005521367596427471192887462346842273502570491895509231444131159282330391023139751250008960144636677114154329880646973185140790674346328727914869184748572000505151938789037822149151287021404081114144519258302695729417045401815927174426634480756757873214705395996967814412176811617846334477751969994552937435520811259160622881854634463032486437408709292533202437023426859944210616060000397171979946952377453965996504997099163769698517823754093494824482444192377455939044539341735263783706124146006232492157310329590518563106846332293525980088936034142104554499793058983077688286848539008331896392510700988454298835434628142261508944661072980550143242274418290276215242551010833166184220814411499850288626433056949444694658166766326321258720426954620885432088173770064025477723650407901409484671772707297378007548209880981108681264777301324188678337515881833994123836359258835879769636191768351373023383121054362785599900281811152542697375342565234212280730806848382771006652368290782795627065497202981048714232506623131147983770383596561863248476118979581795454948641206221501987948936159048393339794421799772416077480901701373326464483102113833075749060114288918647308974271458280729827623922873224373737770836589638927230707716504423541094130911998311831214844061755988507699417549532077981055253531660149124248746192192711957657664940031575051942385283129902813743600804814308591240804593443689870391995380639605264953206698301535007119118233719930822987606953556764081482452406079638615910583689995440492352979676115548826164917190217124245994606281168793191511934872472982004934869366976567483972509354207101711652432098349138154582480404311751868995073234806921534134330724495345933747605171624115449724737867056960787360893203925619686669429577720990657677849950964121324994739232792441511229045312022142660109071207071509465747494040410609898701900096743215301668890427200032999094138996802667719497062650147089999922716882588189227095426706979920700534186016445419341011288102544997204914306087782124910822837850303364722665124281580420829798398787983303233829022399376195218486583168126186649540754886133983134210841381644570143961886436868769361736751923948727596945757899529572419613444797161542231261880323088164477249728852263856364434839318439201884910534654188807351537994512732344772825485495375438734614428721138265792496517141911035108808449603319276023211892301222486846520610012429043054771674053314114602153358849008889187663745427464202460188518813300078214049416414204187190694443068760455104498260476429632827880378199126236038950217749681121832598574271370311056400226377717604480274478267298158552177547819317632313175340286514001743215479975074009783840080259333863332123388249230936324492920604782066037590114771832588096150424986569079000334931900272371022263129343401969822915011278141747841138197593117437297826532991059909681874493439635184859057421261511196476818418254880015894597836394720804172554115773808321216442567264346691286825354169773036414306076487507750409211696935079163834227091226292436722009606480027753343644930121282559059231730987903371703558666635180190230348348315965893976867444831236411301711294215872817380292406258173507241278546645261666235107860867552880322652765468224692373213727315736520713959187566758001682933993128689184089980444827569340580769454010317720126346486464032689824558137129737215923509155964194046273015074035939617796603912381404767630260638003883954116164120932084995248392282579769571555732265864248905641527284081393036597915963230080968832250046225009349664682553385558353296203016975494854874824078259461712071462313692574690513502064307606105532637300274727950798547922423209560523616480131799331681549258534846114347524104232445214555108309772952442457715769711514966841316565976916000296755464264505119842374366876243650783360047702724691587005720459836696525981563470028831249756282271759353265040985591427557861566457476245458388772226071664619242765972820481909976342435177628973503112781615723021992805490435443312625171847149698618883203610932791390513881449155190136318054012069457273563078832219325467192498845407907464733474520982722110027303762802267934947981519697306671507072297835928938413025136499011135658698503559843989539828064925462749744295934097721701671361755033115350341624981773782208204019282730948089693784545903104674590435337349391861035951439289681061743687861249023746357104860330795834170364489148692101083394551446121306030574922385196031071793704576644353945846563138158478963575483189301232391241382431487227593666569540706932843656688192423880296060711516387440033244120590770401456177145930043555697729212615216822593900951462659210736841748600534882876856500844715359691240882563352290831411481173356960073450344709455271026007393886953587879739620495218910623931958941357731559560934059539519674209220434421465022334194840150706901074935601690461583285313916522759092547739051643890393278226291435826260223758437403457050550267098328613445132619622653865752799427443151729406722740988319338274621829637816579913803705362562092294463374207634320479155052941586960167326901024602548502138191085694461298271024362126240357716852244101255592650714901240234108964032360395030702092066886997361345677054389550828748688506902220228764758492306930260286268133477617496260002115076120856213279260167313530274718794641090977216936024851344476132426026882070875728645555126511319927351255798310792574435260088598798556813447150313535140330603592911098458196458614038706581269154813509513549813028449136791687372331012765245087946738630259345693564326080727851409784269212279813300558727183500116370927728133509664736135998876439810572935066921065971235289825501289383375532828410820294378542901681175118465882994287219246628375550519731336739736581112964592209462835781226761455853083842022802623480334772685995678616608123857927245980003775073629116495827770216581777661430074532520300425236918835453586040354036554261262033745714429003206168894461663085256392365914766512057909096207918026550007732091136346557279145834585326364949569202530216248314411457673727898055437905674674890781980174626599687456123900407468436425072121632567029963087280775153547163564547695693642379263358394862762845313391661641655798607987719694299658488678986747102501138194013966860166468875675624413688000782922737993408316969573440272134865241209644822532669131554730297705839002210682992271684992645607833378717774517104723444916640545857219162118726068024268602765955961401816724309113178952159696309984322247627825020501821454651174898516379976649395192008722142893916410887548316303745807182827105956199550262536424950867139173100016007480715137263906921254995420725418917050782909128262999924599440433039564605973630488148182087099432342101490302269405268944118889906295386114799298993886608453052174549086088218337440228096858688112094450640783152312640933932829433774446760836456179056795954053765299886494811672535320456196325452201303418164011759641035001882611173190597528108491674701149592382366644333548523758330256957160615570713263916681147126699840020163851243266658557443214631971795855458024662633763528035012187139505651695742977629162802862581945669920822183880498718277103095801874566050969898767082596863845003579218948186901341463973218828188009545013539508805179814899796948974687885383244616864265816445268918677816803352826232221742724777141860019936330465314461530937716208878686986948819484893708361636409059729879899413584692417725519113134052766367581613000519155119259888435195722973617902342851351338184747097153070002783088231735102765241928177011077114074181357930941716184552138209941620772565336090682989001649593157656432587002884336823392430803238478599176732795810038866842825693442470567600664530842215117062304458247563208377528061486265113430260880040893650304930070499969539236863628804281668433715348769399999501884597959333727070678298046037114204913314442176343748953747317671500378230407093431395228035070581753768885670087402077983431343830114697508068899781436604124219967232077643345705083314978084231955329406673663996876487325372248656053180142142631683570516049169857712208479546371695254215122081583132913537196755753215357884715801699646080905163215275112800911069220760070773973927773953952277580820747307093812686749794905686753571451329537513680482731091148961796460682873388382461346789345944828884775215266726598519046665079438603676734425382001199576216594248797332667294156013223610523606510968055368087060569182685996071597857566725304471703657003865129834344384857891276565833928822876302561560173732126376799253126608684444153366752203498863448150677454359236929629597626762606269710892287478914937692098712341510310892971520905408462328409646174430519301781267289065054924471692823136105948245234283925403207097095922743479705884246587887261741006592357440325782845659694515731633890343791040488178700149301612881404826385853068255551443141342054886333224798662037392091552372423364827500262721260385209727145603804464233351933529250443642060100823715028720503387585004455455588520193389806934653687145689439938744988796685482000682378636139058571176897330314529963024794200594872837276888630144414982665769415579314625069789960035562364593942566740618172712816201056989613680703697848431726505745954185304013149286444017034075505664250211021185882491888030174639872304985310150652611865538599014363655652701921241278977532729549579664853573144970345366205749076363462185008270886245147141291747478935436819714311005742758650379639968257445394872979504802310453486497753217146568651975975780746119469927164644312798486197086477946665095616431006172376236904845616191595266233198934642631039208472309498687195722596628644266820972211907698890602923624775649457103743808146520318843535089766363246690107430662429099449068849248012084421868792470075981635266188571526094747023072764040018068752886263204762323577075625556657027801356246252984922549421152112162426856313100774507770477970028255345418692243092036822763518197495879665225316170143572017913121656678773761860601024915869460758148956418772839861657460864036920561521633225783368685321438541973730930688808239844680476770915375841220238642470562494250659032401883434106809531768386908831580732049339917025386979594022194649087868443760246310196651965245853675101214746398149379968283427475486632862633568767896327034762500775200778181416508479913304293649822555484497978272487653927381261688042082950383045562006099340540717783907348066175001349522970008596126377981689233904362089217391409529673026433465336361625669527179594302233170320999159451790628396773054183413182173911355630665517701121237916020080651914223468557914893096209255673356887874231975907025533861316140781310294037290076749387797940679364792711172342898841037040649291698687145206387820814848648078312520723659964742235490104556190085831802764786480073909396833454694769326219269245422043796684508886286236186139211619810540027712301611386633481973565423802483231426379328576200042752633767565669074771879498177040915301863063068905427914868857108317006366996366741061744904182836479036528194994098104849093503667021509525828629889702111473090508166354891789687391768193239985734749118906888024839158822571381014236690519943975343180113182872443029335522820629736360596735650202628010100628863488422608200855412054747858095771440297639026222758102391394784002353654205411551430132820985834151720321333149636955313687419433654884944759356024700404057865663135098626853474835723054878226606721473384559345891559694163080472040855121912872640355125582445555740665896794398601859990844094576413483986407874503215715605577658721509561214629268618198476716183007799473659570199217312111988128962650051009131549882911206785119009782687545822484755960954972070568398185217078769872287197835993048350768092638133773815161773465590359878245696087701617119928834872523847255956608278186012550201525269437338370744840529384195374808694436352812179634468736931234373458149456170866611494221143839611679467530337458433258345641771507918760455394095304178323350289094629877856963994607671803721522504841165318329745149008060889313862498550563638830671304258532625221131512713260708981315293485612879872594064067827931049944161418379707391299090976589018546757458524503577841735744997666464987288417832305265549905531355732889746119970366068177698656576913459884343348908870729932915674904055162844599643217665159392633550095989490123370929737672750922817374709779929993950100086478464102855063841714617612411182295452033933015517603229786815254007864967209175553303325799463710503615347835965760939896596821157264527571297943408779651113809336824892730839156369760118039496370105430831576647610340542505648752601405090927837136864808993136502971642892512204126993934177587971793603366111930521715930856811083412291814832287241960814155733969508534082492238388199452698223076833957419625383586105225248735838090348270977672732723295803196435336535239704252372777470962823583473607632884930338530262545452297280957647408019080588497763773646126619247911841720357518741010028320595431989161109257333923613204186514492343743107500101127090195095827465090413049013858548912715813102831292793881831889940385819746799627595791690175237800931133279836254900100814108176021482691386779023373190741202325223443019510424969233499184393182859830582885477371973727334150721196552844621852583041579268693874586738162114484963165281932960918818135694857524681991882339891634821380141298259590527448653707580281899829305406890979557276625681645354024879239083133567376941422905779998433663650438206378241558345717077565674091520651956920610006506480523810664471408059796220353767070170391277225199441818554451066193722779214924856187713809774772890023881752768467472856714869250683857584541979953723927949976212476260856731340792167044682271986152485380586359124401945538049447176115010118504478127050071825078447437268595770958855051953995571365711374515057913371783550162304361931935139394073973471633543378642644201381013701955216038447881604854513692619959246016954926140892979506352396736613341662136332991842892530800297392320492677460653203456928633977226253198710122667396163599801554067021224452746956905159442743830885873449699189712990189885169951730249928494608726309874655620256797233379082749773861925007443140177239599170245726460237324821539450370778822809119119320166920511710839990491321083808089786890067438833746527291585026813993754816560597064500572825627086403589172890381330177684524703910348492633485723815025740021321092813883195408230611401293372172366230840355025515549883949242589949976275746951156404912872551293560229348549623090397540051416029282649406361741568494731994662218066259775334637780989947836800797426828050965746630480330680366666387788682648699626037066692216471564666737502045106934337859200349880970544632408672095252512716058258194247626641912240006193838049043540286186104920381598120687129971074974738428185607157985377199237644142389530386657799997080952748815134461463974936241593458480996598435148778739958880083031530700865269517811404491909676161524199071658363127336867179957259255065272576597196377046162034619128728206945879420123565324802365702306660218849456760650545886566444553996134998941879575909950617545273020696330629340802471093454091956740294284195278720026558484221112649623779504701535706803824916453548142737110519918032455769527542553945576957998732818253869535514255104997873674559811455505380620089861753015290123140589867943414112115092249762607808001938990583588430579018724412028995444186953584779689143169851471359554159097509913132815498524687373334524628981176109746829734617872249563355946690134872262676983680380458692651122525934448316294555576350267405296552527505862140307126426811932508995099047463343790959249627486497596276844037703414047077995280479358019076319715036666556891540775988166165573886714413130013591672004778233577509466461401551518067708104947881309574297639463951486030090165307135889936183421778874212633691285062190682936076605612608698435682597409599845716639492178458456790888348579576854871750608595068981467738927693030532064422495728992654019065892690925592531570402612595045548043566260517454030409584784645934361112944450387702634036384192604591326778595255398620596487468502343437524262744709384845184126855727662093762581502652013488812365277389349911001000450716247909530059044625317838177081870676793872677065162935913519276664102056261517297806450940622834740354594331319757694496075248867202418072448881122943845104163288141946405002488207022956989142923373674063629402194687697538731991635231552980790610243765117253981765059901288352179157583360068613540302387420740392465635652609921721139487794857209118745485636555290680260113462590911291741018034464065298325881176411803440795246923670559262038798294036228461278429682169441722997406689085995866466045112622522706401325655656444401215935979454604032324628586481739302253705441269503322522913130319356268970796408944098146615431382377578934448834987268010163924305894171800765858908474282620046476070084578149923679377450358622971824947611155742757053947459312335194537015400753161743159392355003603731760911012529531912130793540253273627494122963094623888678991447033449262546372368818753829794802364615763621246564216031930697508335720141987781444781777416529487534523416336958315394004553748000501441292518127272646353977813343366927956248093752211469114899456529860464378255971753605414336015965563583977559755032890076997979699859741875749696869495039182936624657255874152589737690281719812932193430861233882766823993438985691865522127442877500041466007318450996417893261995426194535091397846318091515082443476408967376109477037213260585914852425565814677185284187728674836470908211889081142748501076608948101477144463242711397728893066108695087444673219495382329826101041495140083646166782496881014117850010939408521587449008214400569074497770979825479102564777709104476442424367287911444365018469488572855166603505847362054280644545529738569336715593588988421067372634289601736524967925980676213980500789431186936991523370144718030619112339922460391054022043058124657138542796482492294984077933386818926050930620643183549418999584365879501981361026292629851481045025366506889991144226971501864508024411568084797699768811824242005133368717807207041190903506804809258334716437443402758825892891005071434587099815366822382017909845155961577347564457422503514964859177016582062556522436436961134731988714757979119447250064883450896166085313542570810494956543031363199273471578031341870671061318861565776435276970849038096550128364580103610948816462433425958781242324490394667213653946071214345684518109006186403237509073585004433708534128652099366085659782476016242109246467335458921273067637300511008903248218569396484656611466925651243244041819300959760860593247537983323489227614939113819992986550548519409817638972091522564167543135382691967935644447777922064893787680638787258478490318210999023863216209263660096685029407590873441309288778502275149678994951005119103291804487653023949266372331832681914497034799401569749577994531339994259616232552297538692127025581181614568910980984132453722654163260657905932055885725141068282251057313748581945211234249997683046426497650982600662619503493542021163544770407150734130045754765996980379279799007900022030167640689772496086897664488663430135907376322952370081459436297814744430551712631394375398961667047188844496645667567033861241251971742274358141237914708708479099191994599324172936396224170587242773530687653070122049100452316078280540219783462729533199747307310640323542207310837953561939307735185027181176508388155232620681035481189069103731436294629007867045784112756734272861446755860063416023083350715636400995196105006793052158828094554944007857500475816639545689262791596484184979910056059552097806080810387054207989412650974923720162343566830107462401863512225439488560938821386847296784921294090406160499089680446506584803924323363845834551830512379823727286918851502915347632841910769355454780615504643198343495619872559883046955360696378953830150921469052647329449264659562436422886395343853739618646783348465238303348578052104272035740756688387347265161143735891795279444406535234128846808984634426003338939586999266531723805057408635268639419385740530107175842455869509415218176671488411220237322941121312003056647722121537432964512138126014700102998283249064804709421091826125121829175695947861238966581515194648533420259048717233806613819731646886658801863468288372807982799897487387240228476634189018091038793297601204243874018342701544671178053250397410586926299843773904519410423639181440558660273561715739046193572934654582261719715724037030185677808362609656663252701581470670430878156466827376560930387206371835913593810691676053180147951859798148354509711701163284012705691783146665316664644360982260420018696240712537013666584544875247304602196933024271698359342950149605915712684854887891692309768818321443419623294126557342547890919402537972564632065118715939269243074171427985217749051193660233765353100437395866999300332708421951736383236066442755085888509119278352868988742286856711831389135573015466495063741664023910872309578804932670089618976333527990936446543826790293383317228907745211811693693663402273152064758521060290671135558900997089859942737718285213021659172448204187597716892772182325463801523323849165069142350968063034012311841264280119573398722971545155408486314770350236008094517902136539844617235192170706118969758808731630521695925607705232668336221191645692341840089411413434218389267271670526406118095902567053662991825895856083366196739206921342012421121734457241807068705535224102907492584115788242035740612929378850671999448931216178270319279544303160233823669057895108887383250864127585568552789548421861280823238434612006329254211009416998171025850383379487504679512419125796617579862041838044358256380342116665891172423197679956183565548577664235539561718611982887307031657979535720297046174662481932919757017627304489140339030267041981596830794893608187957274243757387579080871458246487678573521193695793650625335890040765783642863976227623349460214989826367457976489754642001960251496481851284298922713376415907040468852360905666135829032482380543389023025458819505472079805579732197995908762235529743961269510352035942745873724625033480451730550296635044667535059292658742805660298883710684354537713964065399793857233054013864053316538053592569951692290771791863504322033820697773493275873908155521389428073189240342064531409442949440263349135207449478815701295279043070094259980701731392655876866394982393059478902048417804939768116591832700122543740875444390110875016966614544128712799977183689012441827052303290233228952569140683377735923622775813341890904608686413403904762626792086267555054853354227094181176240759214328043514817647484014849943333943238624492462320996734977940620183072735354105587347198129271470433358638207396911313627952896443599961945255202201181133833351566485433681122457474308512411427887997544781558424196683265490031916500629353025510342633699003735168550061954037564748348677211727314573234992909840694049715369248149515787866181869679185313219784629535063222766717789626759168124240592699934740994522074887951051341560218186806799073208359145180014589506367677773556378810350757631194298181334488072176476511355753579509525334503192350526766133321488730858971260521951373200349073466491236780818691435432551874788292366620796834780429073425554815995320592303076464147707481649798361530456468565779210185141252538847168353301252809260279904875806811294525011769737534031871413042877429993776373052314511810783679034867655756880359677586232765564190127393626763027587522859066397120302402835118869982667356019918402765155828577486846375118328510518822531443967610377448988251372924997686262670807867288051581503872021441678597563172948737981471220955351241092950612197436796950158498287671015444801999452509578614109046353864320925514118171027188329154072345905085118264196230665581247861826040988764896592763297789179244583305733619319550035627626755227005796873722143098145239046271880006649878616700557578277337995716900035534499581847609492115939780028555155283805272982190790297333185897294509034089363820739512930247447416820527266232026810807487417020817129092245563657691346974731985454538905403096704455142138383285141137115195368396623843017836990241758257403296279304552179364451510216198624038642284172312144049865131370101004784509467258100110245367809626545300837182467975036442244874706630806025799817640732610963800605047621140610018143899932488153730631354936470718850198778220220630205889706816074706371469242460848596517807534544441745747429882208031305576804519203221071928430561364543612434810264649970821852240002580521525918614015109748042615841765267234456514968598396608671178754454859831802292980800626168489851387159054392424971077852981322001921064841125939646178158984706846101172039921443202669643917138071421890759450229208203036227658388363512606096004782470693901603093787321459211111512239099382247400382932228410273907170742265538059940814552169007987242257763090304088025415706042508996375329830046232361600195018283249540813371146869925348809617243921715763812805278601363971179177288242983962791465265029150778993820660996635776962751161892337317639379833214620026145337352068966987408199780197063514761327052817686383807260746173748586926629631233238963889113510919453724540418177133080799232766576184325024523560040529695103924668833718462727816420428627102258446353810968758391578868573207398039915551626969823206558262785526929503519917436787521396803042199918356117378166276407383353407957569811414259264374320269065409149858172575751547456439736855768033499795726639759945499485747746358577224366345756338315741676561187712356783149150275164915303408120509569300176358685249853655991296670733473603449702328929421807438066587538251076333648540888230967756971665962297211648004582908439615209113408839466546443798605164180194192928946699304659985260367180907156161768326676981041879637464240483720215434107061779731905282177795603019057585038958411288142823971083183224000346067550914321661081221887973703533216683292461338262973072500139999936596767566043407715387748678059898146001590965957462109923807168868090854719491920428591517439012218743908507969488038095766125332286281952502847159375867333766956324582188451907115659125592719664079225928009755910487496696188111496591654402954128718702066725657901130558292569878968382421710965589543198701092827189995215182926003140772909292480606362951158200119507171344683043295998728605756585766955808770302590846361698391672690171520946812592223549914509168080394787427279689253014658051657983796795236375144948880719526171748332589243526516654957391891165308024658704067807000740327221342774811464528824930461455686251313096120939884551965880839191011669902868158907747420807566742420276738821467538550569629193431556995936198996077304779259960765404348765986617973191840883052289380709809309096989549857081901280628170726670160489984229857645786881189672636467128043154445639300455096911546354983285180956116769479938074975992894956799755109094243015280737404516651820089914289635292623492998198284082643916721629527318819810843551692340976549411340749561840486262028856377846456163676754928642864857695434835497591843401909191528626630907215438073768363171240894570756011610593499301263373037944568614477252707477447182386170357261656779096667717588547151535346774959804222726775558173142010542040655622333582175779447683569792367531942886660155994697795039350387907693112712577085804531981290859593138435422106974131838613723834251928989156009913444821643329744224889911670750405624491839477136803613829637895999422614446084124658803931131420135258618925792026236589074047869662364180235905674054337133476411485209156079037986025063111992381572152206171251337250176094267793048583409009027014023394903924907973958008257156354367878987892453211250519141062508050896484867967298230100915370910188712455143861644150085351146307127969940632253890923557593441394533761875674046636609691550497096464113404021321283378661406038591842386316832107494793586793538547937453434129685235986208821016539679314745111675350262045499320566680123457999512423480489547220652461035048202588096461562835614034019061574397736597960018298247147861728928760087085269501549755210635860216293812598955790947436344200429786079799139573300369850631268838483891999161308968645854059208200139624170859899290500689317728911349243945553373625599546704013858051230817999334506575828890563593842852454930429360818485944928627440825294420941085393498378737437784555670194293992873706927711097543811325887025385208217299575627423730058114715103490484360493724545348269740797590758425821462793152710457945210782819373271241558306029637168496205951678179780526459849372568845114018375713407571166559076063020749481784030203472570639298038093091114276972178467852517351755679942687299861446776433102937007487307489012605295591772442596233529110922413019507766617748359285176121139432752860342207083184832093167550051425152638127504842516568139433232242395529411604184103551047322431374260473924911938486398718524400844550042413303242319274101151810651472305189784754193651838278307216629817644766957174134371394670641603791017366069543541503518669792939316886868784698358546704118614485482649545025917296738213839281509277326572103958801479943088158899772445332575764643442236225041205841212099035476437298432907899322206181653211091440188598089060378749663469672887782955485875849744675797132834247432167994895232071458159587618225815080372157026387498512591052376213418840860848558236314476381001535622869445615581711495540514345200654443160066770394720789576476536043643075755989034817286308817944977517830828826693012294520429914281607927714059696903133324469106903870628968766664212500070451649542878430217625492130929621193070935594995861266903526060166189967412325691385360144176513389294057650464630764821087066114346499121703101096379239974275356326379150523033256552017989753453071147062585346685175588182915476044605066798298520887986655478052912546347591072295966520758786940286546864906457926720177995700495293782275585644294404909607288615629343231114464724368856964728172721965634521861098414623931202682111368667000429976523093704710169796877443417744611797516112162302145974090211307909088565039387918899479150019622174329084633174335605966240773401819244145264091005941935841073829740092711282183091829725464725555189599502711676503359388555370157823212710581014840859342904773549324646595239402456433887214568006112937566912668981853762768136512565464909124402215391769571347993724294887494372712970541231894416146916339710622776291638722457962993371770375543536073064770338937416215476564687292135069823015003354326281068748964523359160871667764313212422977728527271148886380235491904197901904816343707333192324226955150561728020727815271293877428375095628148798767262477457923463180187903683240783145552996336136954664721527865021742725932863662733458151896757911621354297669068916323584062454121460598712921596929225692257032080583174376831370631517021068590256289715727936791297364438375806803524953816131464369876155411506239945664830468488704042359589248009218647557192151032439895916886528323286756929664921927586630551338097954774634018971656417152630340891510298167029065600908602026831394452001916807847962413466015975073592564703911347702441283396920108046635412690370698851121665632504812853765665353603564694551305140947946510456713006013891729537898368442391438470609588503000508938030776770748192941333084655017393124775768312675362308321703803576730606001871601839084852431363405675179027611806412544637164967625384610498686523522865759274140711527730124537169213960288249782089723568461975828743367999946325061708194934309641977272714132702049084685038115327470616827754489632133792827674272841452983148750385432846012150676378095933109464065765882416384942270478199538707102671912648192832368527715519246407685094559086375621354895397154317441107474968604733052642720977463976710022559344365873881960434839652068629671627603135899692140031017308654904362041908138736980616163638347033907971895920640633301384720907166662761689662095265166434002285092685888770567535278577785385973605746622576023176392639152556409764916843068165350768824926406940302392693217690835483955404109854365600918046501772012049517854686747684631700843387930321501483658436562353459783656295581947912811432132723295409836355650697855992755477326502232064780900094967079278826810451499767669586450162270029228049698412013034118923211352571417221542359046153871312473371495291143435890093849734968246795584353073041953517295014253550463592107575416000693278952103149399597090999503492045079870805406276473389114281815353038176020642154857330159184062425719857013110568111765216092006699825583574774488603110498913191077125065058433289334070011108599873995347342184602776615374852135297052091812530983952819144259729393315920243479307742267864788489822108900597846968430371787401193078162469612701723892023818472504084511280308440357960794374790693389397670641716183556549248755079147583530542965017927337117191851756174263632264812812513948091595143213542619070896247805443846823302332692625466555397800389964213613564750931450442283032041020010225982639559077418443248784563231769172726400652473133683520974499273886848597534469788023273571174265547350714707661141282439064385945996710022394525802230696746707660838711845479156749170586557003034944154115065433858084483132790484253225057405365468705475600808832322137111069670176022540611198940725051600214705835138794247340647546002681871661151087278080855439233488690214875888448834518943527860949077348126607375654343081624549723158482248651300000211854622656055103579905430938330505151195208963336766551657332449641228292299803074005570079394059532509818509653370260082250104723205639500873062726004952052719685325563782704289665732940838746953151544994794999474959356666447963068257853617082392474180989254454779453237265940557978896922154788862539183384500533827621917215610228167035322359623117370000077426457619426365110867839699576290698651789644787550162704508445655727442663765981375895463227367292575450141445098983635390942633747792954752689428646039612189051710899319069016189140093684109703668368964303884098349174110869931285043904135346577300133963450101400068336858840570600316916936954819308588495991365022958793902879393247629337979553525553277477891430012575240628616108771307823254243577528754895642276145384243222656232813834583586406681589508290307364409974333463914273727307831628679654289201420857311629149933020803592062536986248122993131681014553799155166804943815294546970813616807979563172416275308724508190314913948603309170760534634614880254232849254687185996676560126480507195389295555247375671805022532878313838216896180557517927386297427207719290450032388434840729692780700335007974048904428500690040737127516977221693923145958531800739899602052544994634995253001641495948831680602023217789372347121374267841960505007013481385699783832982123944405525431735861134361204350186960963097641067002147453833604730842615434189117432758138518162613776187662694998218001524876681493210433735091820442886531799246112093566161485394753062469863473901206667790429659093596611836472109079297300156938371924807762721327287966162701820452506284645118051512699650846763052028489698432432207810216213516863656146260153884811085289320606123525471856605452656401213947057533446244825928302224720634611738329493882096492548705329525748198929557542841329410312504059347494858386317930266605557382471672692958738132990697096895805214074349113114532166276211586760657988807940013859219993879697048945394353174705288979793927918022327761052309617543483809195874843556930452887383130901316417080075130098635770416298716644689059509990339349495463262677792355620887162001723646041355584481878230298321105897852217163658172681321060992235468541624894768946146300672562545908026276084232940178716110989121697097454524090521610960899231348726851382105478468441824880651007360139252264666292923806077969965038712181025631921075458515357393383070600024440140488967790507378350302834620840551236131136429059767116503582740250546116828912737257660865256265462354333826628645644638314313204087708092575718510019234897214402491530106449128218681140967279449876567570198518702977397520464107053818127027959119547144674629014464748127003624630177573879122988529962700443904366331034948682436909035581196074375727952972980782807566635667104599648534351589642297730667505539881355689462264847148912959200888302082371766848759618113872862828160824484242639334024087737218641959928334245747374282263277870741576749240342595307442691992551989543224557041314392901038702755882863742252536012637172243337651258152181395521289949569577294070444566784263955802141364833364783766505129192815944514438917629449151057229623857495404557666358462408014000941082890685867409055961412553503990833776212228223535658161736159113627888169892434245776906787559021130876138402646485226632989749865573362874187279082565956361344014047617681195614091112221587129187228343101416611165582063751287365208442058318448308307750235080530828454152098159508302233158327242116112939902352003260541874522973432383542274099613522547781485859035154624626875719458929181653613958485592695027849451751245006504659930321315333594063937265842814462195363619505316510874381547411312133613081428247686581623944343446516560477168566725674843709986466828695939416293040835256729306195639646000618468711599690435407569800044877414228348953749866333355588451762540097048107647609652104377699961475732067187774502249090460531598299625286437084137553884931976173677762971198403638906683495046635896980225057890476133523707745436138671057535167060885349414864281833216624475254857907997550004757064833892532296194709453175761024826737620248378733954041861291476734298167152199892266384030374926744704839235638242330994340440821477140199604628784567915877715045054791154231049036454865363306048849337342959308715954601283091152674838667092089066811864037078104693408891528685487452889514436321405855423299015770973889944202879069209925267856242494563598104954955122061133036493523521806584188021734853545135121249662199738348765052606976293514739051130773372053911807394130756816404175444036983229849132730000088780842411230737828600095203654206022729440691556593125245975035135513454641994396126579638836186513459681807107088731964788568334569531107270713807346384393418504642118431789767964060994499877195898533219807873811701122606883242615222016200756699886489678568348919849377933421744802833705544025370782242361570843179780435908111286632846668712513213654252296984931767617580364057475056461828738241776732981475191241126040146901739223132695432697794439165973570050209694055072855274878400662850857521718054392795069641124195064588408681141064860799143997269544963758373258811926143709839330644709825988028758503986868941656231863154787709021713629080784114652155376679230260418686529032577496733034257681900506029819294381015943728883307472170014277713970662818338549823524012929564340864696888133055549733577125862950073780143486872570770954314054027623504618151819189157681832687921789338960822415097540309228424536355993116511330493431074375891029530504666296922219501349985886549299660548040866110717014655755057071507304781085098018459240802124801623329777172947774355659221841133174332195900338734574084171755596781527145496938493383935379831587677207929505544937492850067668316258966798339467874476131795426135607554653478574608675718878968060196102830561965543364911188450472327507879753074444934909796879596926013532652770074329286656028434547328287852584644932192441681689666431756765011641629307727610037422194323168351441517748241487115344912261623437228199106961557937180367702937482694636295609299593173415020131961263493389035719424205655211882418266246250702247192050510328939252471669945847465981245687372091399728799700808140973655477539739530323121790292627248357620966141093695309089954706721298593823218334625693309873252230478242266507453913022154884947357275351188117482143265562039816836154761504550745825492672519200742005752626732171146752250951533157625429311804876133993889024599529914067028956958082758899438271293157270401075665991968031272747726479181141875314461430034420240203351523992684570009628795805840265592506240894293952094022346994484727052511546820905422440319456411742000807342125452797578107934270877532003754039959847429587321816389152613868094983145760331287468691870625509674274189825346317231764956907217136931406864433689895299194247240629247818496698093335714615945595080884201911378774187324856815527884318979921338655165832759612410817371518522960042965900168230387900649328519893989561333035380435887724360620985902779589243754574640878481240147070768574619196385850736873557485783205076785193976697473693051827343816147673970417513379575822637833962788789853938430142495469136248870808996242885511119754229618934819512684982680807153534238372334169187806892791821092942950289991291475242967939505530179375588283118377489423190875517090000870671303075714456583976938465362571000129989171816532325222776893800694680986288017454597829603498523186194613353247322412864228863984973192365121679395293151352255770851101665726516532195347878588093086932606258630738233476155578809003226508774143594485225118836869546437933545704181039836884341400176892038770273035218705603491816572861521411552089902396957456202554332616016749701362774489561249495983834707071978564196566224119148456012390404974524931026121638568227573978964280382538559433113505607808338194776864984116989878184492100434642293460591918700739015517117171086237933691049621995008311571880651144825609582605615682160323772227294907938328913757211684272069690863452401846461699006676146851160523118095356713524837205047758229578245839998698130645893546428065353681454878124212065218735041123713808356470095324960431293949341643934480768514724508458923021488767878059128241263218375435606346008280820248659835354782091435213234405955948191097400889669261573994764102540236367349831809589644508952040034276399654809910939776556159332568473159935292974926255988173081481655410901553627708647474627859414062273982478983962544271019537949754360846778916384530907133320654083121589130599332079757586937935795733371103612675603078620646189253136558586522181756311703384946140017328737054276636048598040287882354266027936298991419279906417977524568112496367997009882224454091980208902587992788862677310776808911490193827749649909852922188694949881219925122654009012670821925656793828590360426527125685964433354004299283413464075751440666974054409268538616414573991287496706484439105379139730674885219001003576154420797767818631356839131902705654862545591317068337871554272266694665637972931086969051200821052865797984594520542881011396591056347767461587909837153990411020476958042263595417491574816944771800416485770860537852480364684262651848014353845275858497355504921817197421135246700223893096698326738931853036883861869184284793468931150998605638025817559078263876965815698190368066846974529993233914170719034995987178213000806106075545265881977822904611564640451044428621518674287191905265909623239887854991132393118261114716992357478175311952340783569604600536251413425487711822118399611155527987466644339652176748014243162758345681930329550996895831713102223613056580650274868669408685011457870134558823564718460199672464409596735569974845953756494323562627914489130341158336782994433362181594514362789678376642924905121345764812650276698492476558081440524094135366242433768482983741462299803437727872353531716484765581451939598295809018723256005835051489746441285691361170260969322054852442494466412147730306215485484388773822009991452166146507747843452245432013271926044214987350851951200627226012994174136665514063216711562578231009199308873821141179346850545281938705890540363770390861909650654639800238692268887757653922201697320326987499943531591965957263998285700532435881783681711446323804072957896268485813215388012085134687412739609655528470689296809946456301781139624047344397812296660065272701871296049361776765669654251112978104532608594154864095048155021058191136619568672870250456739121954406658413864263203309196923729500263793546921132507722573647032653632278639823992428710299876535951771442055151205860043000763784975387176907094552180468826524161287384351491568881010827442427586606274330555405950680594328426153529669851330219908115235012459795053183930958124508389125681603669186978685377864472410118800662399597846484090859444322201606626922709295781515304084040897547126604737801999473877034596743130287692696527630238297821233772005785051918808192366936973552655001009291708883050670152120565039557734048627394732536006020592784926563767136600093345335095763993010462180359966904584514437895712511045509939454319174783696988524444538106100961182212721466679179729818165378073833218678277909807219478954294100570180858019285413211615141334314811146437888452959545408664508557639742776598849126473523627289766643292040311626557699713558829541003715624138527415306302027909547631102139460839549822101756970729361652478236147975886311722605113547709556448020094534146155024110743807497546618282000312571016694936779825208787692843070333018455080396994119681632829542476288451064965220649502883766548420923115692679268304157566104660571064517257210921871411041377965788549322604496841601819916485749586330428888517493731551351258800015969351436184762184238806474860517109929210468998793527879882511009125695739345816243872960295389793494197144720296354625789036136865173400951074815069734766385683363976889780839713522922852223820856447630021848709610917266434514890222325089145965645162012261802518563798166334068434226949236529351385321723874409058424273891922349934723818690337596747640735494277791237000274976001022788373436501894195003177715141000498777641396087220879668202306324247324578576717737026146379353079942661156389161328885319318111856591882698541224330543367384598527303741123074696840077547907076892699972637591209692332248743950876704992035407736996317892663965560161965694419243192153752780755982333570338613723700902739250216395580656445694722037840851585297807407744745632652013782079852397280323099268291812499699014486805161976060316051126937427517036446379740885854509044612878899846384100994531270243081525292465468856050612304561388953350170714046288210760493430267006823897999226683566603499147291313098857601373319952942625541046534633091953160092632772532275258789877170839706985162688016855774784313155640239526626685273042572121124593239509585939034302070638527452022661454814682919340729785515016500188960719688594539924743561728546241290300644906332809918637321854747885001241512769023986993665230780404480321209911404789828840649612871546508427515829861680560200743390405779835081229990880269889559912093312675844398367024019020208283375844958026592086921065532660376475465477396764923584132978855319702898692519347671266519349067973493723839957384146098212378778026695947726072649483607882617897039482411820082805671411053685926038337281615322195282110036658620756907314336071844449024742472761129307949733530155442201097183028404896941091645511614125260521131931846447848041096177720206231702187113171978534124802207059237769902807969051364509827804692501986327633323940919871044512108303142726164419978818556331857786620963581097163435668878345276830910138796282777887994929596641420512779935184744078705817232023372300387223124523756604378629914294571237216661544408332441133631346094942976943677142533481453327773600808011896427508701228298775506323043211722042669257224846208859644722419678456855175523023427371972209553346029782266198499700038876091761892943028245614260689113080167312415109968433948117452209721081944685022577570601800696237575527910750715527623643193171823342151330390403877356573435185014727137422893618990349287238859952730261355082622657676901492228896946278943037672410097151095678194697288002141865884600039092677240806877684995324506700770714531349667529067626850268901882525162927349114605617846881139651239400941045468601572775136549993272566139395177213088570576135446615760545600044854326374115613029983847019428533130293761303784674261661805113181422977473524924862466199582655104337544166636100498447289448553753894885925542005117889092229118956960947987441718601934762857979905526268242440612548111804357505529545404089455397278387154173700655587277503421347974631855572011854301246992195267520868340367939349720967002551302062898540955860147499084475904240772832000267030371785629552686913921248155117136196982169169582339393686536856724818486294680904793715150242304043772710359016911719490628286989785332254663758178834667898105975034073913728865441439975470065483470207386470336767913352668603247689572414043361413441316350784362955255739557333413475259943156392120515360503783951301926593301238252557812987286717355747048322076280413520575759113272939435874131871455988086212454976855838230126680401903782442385598734658303839967032244184247064475184991504924364054915997040961694908400406258099789467986423487080254439381154692839034056499430686421697000697462181087980315224510913648167237548279061911450221120757251086741837517851277134061063283581485179530352010331746924726202647349544254525939164397599701948676410982369723382140652637440391972683716420420198837881550018823755983303295558230307791547832598131694247058108550542675433688917839592427596686299823700089876917118856858499156260827776747439744605785249739710642518173076983768685623039886698345946970078262515722104365683202905975276853741693305292417359686930271093283722922836171793673789761517974718909922527023507924811985871513642057508910245116558887577123735502233852406866605418749974385237408099475381953189199739834657384026911481658091583483723442307937947478777347422270866571018972039754241596422982691058954813717947168216121868893730435753003742438211969267563461293723203757691198358864668561623187301077198444553824969761841579093003796274920075942720206606840519479261333592154638143254611748862099725453590858685383036214364121284179007120047819303538601952908288514189609568221691709386445629081317409381691968263683128989779316813152147835265859717863357716340714534841147877385839511857763888529802523086770051335710600405408211592328670950953323498110177601492648431593429828797491261509088034679710908011187725105736587607985243140932336908231114700763881272660875602695764722692894382275662327591442087428056822141930932523748217217556419446843463034919818683437139311367528606653617631333993015616366693993078244196324393011628172223520714453318056225990717504846154462458071456741298818673463886836798171695199699381903195117523254004380997269328177890173623489159812796184760980824879255486944608238280671792246072135261866250447625970468593413847769253301587793195020477170181880751794950727450625014618667871476513086217623690165560802971965764174653712698343729864119435555912004307747623070021795689215029559598253233876733057662097345246356441079562218092664063107475537359162780239398467562256809966227152491596593835380661837240832676404679693234446356176254428317499073297349049365379424328271452970099918476756974862989060497808298942470687914511963106925054005907723183788051480611567627147451984492973362149786017300921395613054440145908017312729968681198022015455704702279779641451257203483862994434198384343587727582012851429836515420721589397817920484228472259539811249921058506475141973013693112506085077209965487731972704940560768889974201787884783700489268341632882255616572429187541120283438754528429350213268344944068571467396346686069294763600313501543732843297375737876612557207166852607532279713461195189187117383871486763448822339733391117009906123651063392636831395392641730854353389772402064943899298084502115482632524773633462337893207483120119760426978925341012240752939670853034395992627516344999274333325401004404621397465896102790716076156764355305111410598233814695358580831582915297319642846308246287522944039675379120623725782749408386906468883640862914554954506256543309045331448529405156724980118437894488084733396261745121779590914253416165342625236689825281885614192041039497887684368286360422530776718280458327988655139750640217501789963588244976669549202153647959819915930755361735002784224309989394055250022570003416415588152083639555537304585224012718058654829846943518817824638944872816281861493740292468265200146791333508122436210764670474582810289806941800389190157070875969449916701279180609018635468564592106420783894287355435442690331844266918748989564034899490520222186767183831650018701639392071288945075153189389247184053425610646217129377014846473638009397092387308644396873688508112031495386776165632586653905548645031970385147334118857074425224526600962605194513636786844283003973473823399414853986236695180932769639311323835503949037722226018971038514178011436089896237129685286090635295359999399969686127448291140170197026058063819494387480297488368444558171999846806151488230081698724115635852917132187353448905273872127348418803281165519932876728976421518072419226416972462120799581383040432293090298716390371924276276713098893545614504617570303505845809540050686503047712023519011047528823142379561060559767661632072709998785443490606620155653237722934418206409451337103756324757682917690309281981654942671798952953165848596586441019907875815898463424314003417696200630277341551243101364387773223332690864254832684741076062027618942363449008959089465364610231456388242123177881403659423800385011240867420409988428961663883967079069707949153179586706264842884405681492818194042961770882497535989824748122884437935622617839021382897430960120868324455810863317907467502142585205513893884756176326744514479365570868655529263191621043788280669589349967191862824700850239132428700491156489262740391977037516957726410029228718184987581978495369506370901043204384362296303606674339787285164870916270862774203487699979150647764135026300313773543789906228025817430856349762860620172320752852759903785169362435333336017289623759235820500326059330331726835577962955534013957232092655840274788752242315707541740721154704833658778342026047564636929598014653484297861665515562329974743657646201107657620286634977886585102213935575908977312980059709681774836544980110147502121097021508062213987665520508362579087327269630903994063717669108253134562068367332078981356111969656022021323191466802065975481013608332352926577268462999879773875005103925012068344562415827913161705702087886490356941770509416769518883218180146735512505413909152582042005768373820872933803723635806043839627233118209035188873962817348847423640063809760926975070856785180206305851486098160071921003346577679728969404235217480291075453602289424465145553512211802278645503410158921369552691309781385381457303865779902889657842822771241705080081105490206908163645851507605211599261781585114747663728924443800981852548180031651100595594009094058669603286464106238295399084629158675599433053859039763020278139275109223392611555007387223580227570662561971959666241941491019519860820178722475818125502368864117392714856017736461915609128402667278585533536132967601574551525392991602854289248180790615491715046670338991328125351306794765239124834112662087725490463526069116289220408228388876961934766166683725555825253113434931006006022364889407853944250614676169363536297466187527858341009694670149946072738764452971204542596054549595524299830374024518444202208309367729199701633493039936991034681103582480627440940682679523275846696406635833591600623720384011230898249668425855413737692842609504484651060484521932956642186517402067103797836629926173604954005936489379343835154199430891042077845920395038416337399245379423830307409041427931424767267214487940191193002873868820027544049810193816700031823876609560793441539117951500877651313981483530705500955691289066002912215730843966615612080791768800812670579242752227235737293836660509310482304291014601134520454230653164797250921139058293864341557294023412190105353342216142008306912284106610716190777430185467380802678559871081857607404268594354739005495397193195681124973493642196718388717063427499338007174176896085503620830140728540843053184985054237184943194258750495713999587789655046895529652917576551819925564704291214167312702188109998113573367439315304471367163091043879422081825373107073244554946576799655860184830531563991461727877799276768482254451761929208653283645769781353122431954987679032957758638328874326134080296631707509874993562839126878268082449644739565812633859237738610627215829638019790087581380907992241770194079899372814205285316669990696789543715194758728723189848065393485523137360280399002472823717444076796479875815606457352245565413642831719790290214515283182216108903654078918317784737766752609846908013807107640356706735952635620535009128113979384113144606032850947385727067960728213174083858994289842123944323808840270645947009731784979228351370620101225527946197446129093205168955575431140715472247377153760211639903391550082970894539034803488672138698645515677242793972006251328777908639535741931100891680778553686022562751818801843463763322679263985021076244947878651759705433699540318026607813346505847194197329178842927683329740222237536370409221453465037414162507876089769021617440339885411745861277321072027301362254214885253263347114380213053688174217427567139134670697360907986681429011103951878272216663225470077333640555855547012359478675793013994477330812093534981923137359687503018296947718684921622588971617663813791946307432083803559280086789103136365358253245169421215601806156000967219609763806665458920749930453259817215093252043318358780633745593121015850731511428838022418709878865151781288288675276057971975035815543666269236484803267700247059113104021596807109173622266476296637469999508730815338285763786628962756152944790137445481265552204661094652162294954383957467003042457296863088869800357352874074781550688998838495243962416154395830598358589310243448012328003505624392184638572973117216399841481117761973592528990630931287048772986371788562550323830048169635963667508717478215430937917851811755780537291922486284495721565545411505565756430648339352721063699138129610790058634551425106438298431552693031568675760603968004306881083834865233303026085697435747046960327454004831561617689480541261586961048217384250019129100132282764306929549177852519482448279017608417929698046512788058909078772574433473274713159202071034496358121172085432483739466197278164398983378886010451330329137834741474430406152827585249508761987941295326767848824980805695142137762199724194807674321568671903851761722870122507932189684356575356974071614357283808148051836354682741895739021039343339220617181970985801163960977302333819767662825420555672906495880683882336198941226263349325598902122289650863060167953229245795395789504643659166647708585174223877617945962204481380319673861129944093435307683489743881541006858029130499201651794667847698254266458348294126651221564164253346707425519631662578185666629550658513880049317768797345600174051058051094394522579887029899753163917452600116100219944340158366214151729627433240636813640699812374294945697551342817144471571478928285309582542650508447552690353772766742081963868458396351863246476680265987436704329017662619130891891679695740704452228170644390755643984829308568013574870197155887152545671757212760781173355361756108563658617952516779636088962297815997322261461068908410302695097085986317880273690958331332284169822604511822022907602932487845498923731136053721530844812811591252225535138063875038937294236907074958601640907487128207912545891978763481734489417736111093953071070624154161555264722678845253414197184641607315113083632327776449838214078333252640125253396915624561783421322087724990860763615786198203763614634218621949724700508562108317072537049546106845595996512452331994010234581627665396349564525014592884215339537972145181209170913548548797758756126261734707020676505002408971572574832409669332397906304740793938449619646050230567356410833759346465652095457117766752756771635475333698202403514569901607627531956523748824097137507242195266536415314787619979142833299602535565184884066963637496202899120404551549245186006022677632124686217350941039969504396845414362547488900019664682418598528827673300434594296829419586730050453097553248392333054356817445945096566307277192505662401139454798678762907345972557902402198909201613151287074562431848048262174293087357069492739184232910362667604838028003820249798479431185170589625131744799671135797824912809526368710198867892940263390960617761454507652228556776789507473678047429352653629496346237953562722392547719206419520072792263882241467084043418800211019211061828623566483863367344009635922740851037799698705609225958978367907068043397493582890002197651311804704318955969449763975860946549182651511760420134361465835576590874899040948750678213309158870446089842059986384771441127217645897313031297943396715631521386966956554581754022826293697262308964969822722277379181730572792615837501999709654770559105246979090292942951747917795326291432552568567252150907656491607585528080048924403453874466268197930102429057391481996124452828802822946692805082886343524372414168489447741935366147274217385962882304644414249465938750147151957030103087351711103979340991312362209781825051206176866623263423233157415184506472573015428145835272326343636773992156373851966228514621380165904434772963465169229890080204158071372180467881477587293737862367249563646177802249347198152722445207892165068140674162649607382677533971786461679184758470701442588365693941813507801782436702537841373293108114177633516462624678133248034792375122114237753575023455040582155451453564769767884437862741065328585673953110099577629078941948781803394523059168266220207497051808925632998836273281134962215364320729558642626837485920195162424126126593363128876180209916225290065237443801162188556542112208494126833538221618096462206661321484005861065308739483823466099337539376559124858955158717582744727863258575774154709146345926154925848321204248083420187569800986115836472015019914011526205126274159770777682701048466016858085369551865572620501878050924666307115533511910486801619189179008497657536797390674882275593509596682226231660419996003771630514042370113671668546475542641942661752225449539996301830396381771486635222565390944178330665230707249168815156950598611137746988592903144454538739055194560532617051024190285049747732239510974766602207575200115953761091611267626857939009170516120780561375465918451162668108172951600887055748415402563677686523954691091147184032600290589988751227920920442639893771230846858810140309099923979965289528976460321024676185472858030281693785182022359887707585790433903093439052862082796985610031610839403611633985900079994809689829861702079054346205527659024992539857658704454777145437899282252459083918250350979917137175706150594095466746297082423635940865078430476885536357609167790887910947871066300224099690248462204384234274999612723827310193963912949479531523020231540880163110589853955620830919285652185515893874051000991813385118274003205908293029690269495682519230544252584184537251105975229191222868167274993411566540864405019314719467383901390191402765695575128270968788943450303698597807207763823178662760395480515473980993509567715489694023873051549108260717528973831861512507607121820439578025511929644528650729961207218739771610049175475571802863824866101259542189331880603002897846550569019914253968236957658890688202747267604292553456778556052982226297355896685314157870830056357580088397077525667643304475150228491468669605629299615976556619878124602070417827337131518896580859555444728445793475005614215701562749405012112484076360111094641704378539538200150662678006530586638786457541225253415789916611034348711207452589763159702654246477403748020328322894157055244943185681446205264482479811759536634600406496447107490734109184298131473372705102275920801974846823166092422062573530082235627695231802052897815165760194767189582704205753870747096519313118255684265133499303395166427596366934757255494660363566009588483778632833473729146952694449579354043650630890801380505926385718326489567809540663881952423724624632424638030039642660677483244961692216230580392753899061145480353915912067369081336330404993703949192617539017230750987100201905728188241064700858987820630970738623659915640501713922908916565709818677909057331992082963779826587148860525742432426174630501451611620204388724277868521792949594105613504163167164440504508707579685198602183438313368110862581629220460507489690439707168517621748311264831739506206190550268295104664725034403626834282292948478586828350437987412523020837813167078701561610375393915885734871551724102017061494379722038229385737998183432512286737041793751824526331085188002218346022026354568696447941398399333746138147341125481910226278832737443933560701348401531438588148465524611024586771674292637391376548194634415145775830786662362025212958221673388553563004476061076885844174585013203085009162268799106832519046731136781306308136141683418542067712249043141272099262808190286336398613046623987690105256327528406401038564407821705487073098281578506281014787974068260668121439233971947050303391815854969236941452207251878478630593449601592331339894364937929519044848501741703688814788305162243423625348703505533327625247966518199509185591352239217696513129632857882137151220221982374772194108363872546414638379913370575811074131958096770393614188517736175829348467208304688413299125288653232276798560090838772116433437114173398965254022495869056291237322345876238769363264575994442530827840113344107022838204838791973048660657832082574779675001966594558716398074909887929876623370488842570731088062215966186837073919835103997786689292235140905677771040977595614332814416007999787094408944940078971089196378449977362359098801307446268297513218325768394034442510746444039732696224292485608966975437277210040958742011276383166903621411020059421426165624292064069349308688463942298316075720407586403599685778875666502285856522586110571373016059626310599060557310890367237166298400856669604061593097856362658419271321889911552829706397231584437707198031739628711832868198725181353357381058497768192094682091285043735006403954165841745344007942090218298969033144140561891439340421938467492880447266681238416914158897494944728893970055076863098035581588742965682198287832439440146978815068279621402526552101586930497740263082185652829340695550675800328478455310528973677063285489947812933322692745488911625456174620911381642275658380571152001923618139816593796328547867170556688468537860971851584902882716581619094992850909006820080462922345743345927460169010408327054375535061795068962298064822584696561834287169271007364598493705164365353738132590962693863350271128530420501136668209293780729837354807463531848547981014088584608873616537922937135056104706356501668797702912412368962243421924387719283396042760078403205347994766434383785632287723021069344557269995937951889930275538407113449032602815789538717099241754963417453647295714258339972958375208523543962491179366381090094524545734720350016758584738621209364714700190512815917394909341169191179538721947414913943040236265704318888406168442367276694761116684462418390771201687211668853236712076827587893489201626969089390175517230084516017662585521817804049905345077578434480068322365250554052179089105446021552296705968650316352243089598207030160293582179797231065123848067837683160510609439041487658679525393754061517177520491945823234781237387631810772348715986451894742965824264991262739838832288609391363931349379473661062135923376233562131088953856763333269062740995838949066180922729775660453535324062007643256298967679196624829277709823656778020611122994481103360784301090318158126620980249738105006353668116800875781639996585113150084012894175414762346039829563115261473990993364206602805217731022043298723960358165678726166257805914342475122115663891108600174938737602164516871985258620155178863235057167054079317245544773337607432994580636495854186678080440387748577468226628766355708471405583091191587958015028031598647098183345920078288495001140462710368744640839962257119863071608157687361708953852983045583505443853579252498002175264936047318698953970251072245674492213969458444074878985207018976890701272465698898194401297932740315553946436150812636669113467194091459570907211777776236441972249823292361700216615721190650708240127843112136950113906083212233463375623399162962747946669782048849577784856038366519238936435038817666919702367232149095619288861665091409215637157400858111845580080270477223380845950262503371967176160512699084839977101984916386502476192397756934284462910007220767024302265482296389558049609034307922153438583639681255923954407952730224964960463472030984968922666640738706454539698975843532298660822902001709801967211024902077192908723881113172576560487858739463090686003487229008463005439369112014624489817932265584853136977578606822916806351214134295446169135394265144681924611221734619364121428892436725749019457454591235139246133584583226619762731150062866116588189907785230664887826857907851371220173190423852544730928467129803117999399858179823219837678039558909274496743350759413971033889161687380494380007774972880548055453339364864226858017717829967083212839769740061248124060433781529254644661956114224165926709878751126317021441578609999380888390347690379980975342724433911977247079031008584395852384284578669826305459665095609492310977952102208691205015098520961773282234617989058059767213745244923480243540378870609232724311464890325260653724999276556040788982827441861156730296796383542773416214046134500782804243565411358007075361163837769352496283044952462428369498141019390002182425275337959433297748757397629711388867064119898755844909622411011774620128332949621937253880237707677536963011743894789244888356938991617863665201947465172058999725559562982689886424080496354684320754790562535509771327289686515908197531705247229010973067063634212962019576245260605647380078572366021550285885044379913068041286949316384799262156542618655904595347650347051769178097727517554702258837353757512809622599468966351987410121516808856314411035198724705270931610314434605336785083673922280998371751155546494468355158528980076742505029788567115590994594042978023308586921496313909708819340126842686458625285210396469109029802925034196284461085132432103151370695867112028863952076896290807925241267386481849765286585847877407519644809352787657739442576603435072245231483749053838932031741225718323970630216459225956282219459892719616971618778468519800147814276134711712510767731934939891438158542401397462014738617176160798810175191596262765457614392397352606029130015236337339369185853110831802822479066295597020723016356850293971949877596651597707410066254936371678753875737480893330606983137998222840432652718979640851607344862865553661662943274560934496860608211434579756039211826701861723966443158245275691103489201621589008273188037651806169772710657418203258042599205340531250067916069894740539891814177330875972650304270503613802405880845792344476938187671121047477936249040316054289533188064477708802084921193186908011826549508152844363785499304258061793607688699599217737879642769504055136290633145884179842415374832432777712183336955283517998208852548441250767195598390011670471126354559358227048549579363071381766145960289282545437114438979660603364751485609420290820855374167535889807656356330991868632806012523435948329128617102468520183758978180859708986507856396647164155687647781336039384120492059457221896010346894026573825665687515570463412252530320809298365398332383409173681450223270417946772889362988786343433214295051631443145488639074648551877635581622570645495370009755810785475813294216066151489833034793615451228712570082234481764541029072729638900064083680699443744051452352101164686784267860204916813333277693474662682167155009510366263878713766930628553665450717813628742735468468714624909850021682165803770955093156076825437821370752265004322343939682105900808337611054593088039900936594748910416704569195401453318257036198836961665968298369679651410888395514135667751665173161576633277604339338068744203634912699505264486973958326294364781748667138241787895781255529504832621759194980706449083925906677335489235114438399006535043778466773947356021388792871114149272018320420097544419862150396834865075845885706340897159222172908508227304167215595615674379363068051822316643657396657056434539753876035322582297908697183288715013684190842441154436409956613158054682517328401973745092248533187042188812760993387647175760148582583689322250415847364653329790987632066936513385725270239430859383591036333817862649591286419524400197704787681112512314032413907037159537093899839090091040623762521171458933282173283012603705737407793564626161408677566924385596616977038014215347107444124271892713251753964108527948724050187627734194171861705105935029165956224978023593447234209740193509146164803222200986331584796557141017886660065809635200604321985258177041829372619250412595853460680745493446115117536004244262999263234125173190808555771219532329784829514941779531931140529537543740868158812980956637762146241989577900507896982749553531740887635659209011866802480672798345678648960893097705998402704859464457440193089181404527082995899855419218055902593100008862210912025135724581415161411292941627133145058373851732339140923133710971068930592579566358264203475093571434010344030318805958934872316816444004983839975832322487634039857421880379337048544552973721539227797445456379144873320524476138626368609313529638412330798598156935086264570988144814959851276365239821281794510036320527927195267526850421897741530107986093479430646950914115582735816825467665234643360943983466645863823611586544380793066440114934682480610649390401539367601168831010578847590457565627777193286098239858433288842558090473116224400427498500759308963743134861470180684896010362479453088581046976615435996974372264118401888937368457029416474998061440467021007361140536398857095738458700273416575050014817510886467053071228832682199655896427542609485043252113046285904702461566746605216983199395538614394570125819817665322249381920497287028954954795319302142490942685035013330152627485013491605586640787015001687789567868212873628757787607424471966032260796162225475867019375427535705082235291820442369591585908312406667616874831799196982957031173317719318404186700633995185753635227767847863304459232560114783413499004085490878798568896256386415547143763100007745830067665598119283212515922957620004645814536258336528438197665982717116896469936601561240321295549544083166395425636697808702197576202292935463667735607493576451352456524260525153980361822773764312811125523543851613755483437823410344091383309034609581211595837136846885394630997154377044538644600661676938280014665079875209432797979750124618638708502550533342412902811270510371422876506246076559238747894126815787218758582234955993841482527496982154326347360714850208424894840228896242931805363983713492486597325944385481453307174854409779182439276129914917116336031454307568989387105232303818287515718424382133005800250977617918413929967710024966631968386878405560450784747683597247702917734755676760550019914398522274053681435467349795341682107051844904194317926833023722482770845949105104707553863547803467410946349403256465400582658762463693156365965730197348145664383217284743648696045654135273225654498296263548041716048871934376937977592605246418839576277161946535670708003099565345206184419935076420621622603526371174312775925349178527308938058246168578133206538032458799470820409711101175554074783332660227607778567683250081066614241177064407360136859113046029415741398166741763405847408005421628277003293993178973815195098158455926650748521476251971938720652352217686744812926316296539552521333777467643049974733905891541713862342551028370129612178466541925756447460367609567981157721328333486486692773748436505263002528538120311723097050739505108161439498566660705418879343056175942822432026029280809152437738578409069271300217379490947841816646645282644437652188440104368052011794717933752082993936713377358378444061849818739121448555341381936558819974052179091548406496123626628160648042721578480967998425925717976157637695643212321362249687240337537040190834673140497402666445780493248169623977419882722010061751505973155285439936510356789351482381478122438756004094229059724395752468119180747396678582277470682199700704897842457281774333435764744229187334889108142445231317643937483481523085853335570045205426694228356845816544367954891979525039205631991894425741156297404347929441508381706189221976059088147348536512801124095639742620170467282506788064130853590002733985213175756862754912951652902195768684892224680888930699651890261868375844400984836337671474040833116272518466735073661938067366854350143185899776963250593576178372904550066490839722532359088913531314370675125315297155650568192363546504984533350246927351978849200165877918379968103088127617518318437553659121698134691903749128985566510496435952232605470427629150750941309361696820054542022288959787476319616875895226486786211919045401709458140927665947640386815175549217177961827584807577660731527120868038188382024196561570244601996903892926007890562016689991265333248198566457841161215827915532253401369431673755539910997609286754305656566282926943206455540092091741785469016190351676674938493489192944861277391827600886090284037806435800688251567583991703164492332576589765988627516735263510093436629915045964733505767638600618435268330598874169500778588225598266744178791443958970275197773939101958748761567156999035274118278094687204262533585742874900966154593729078493493255052209349422909579618435172010975077654101034713630458803548951562966991864994768602623674894331371840331828808999240194398967521992703326215944050332004281716342902790784502248003742856857759611504098785324440962059334572608050275810485789090239331482793347845675174386733825074908216271982614210403855907934544150297566266580528218343084023418664152527567870049959793496238354898918687261829758535240597965128874314527140574756877156922955473647334175337183854662788635124445184248814485667977829346286113879306058358403691309810919114013983407550598079515275656278858937654585327409491693104045907104700700093942976156808581671299728245953216456422806462096664415310884972478354844103014858192738206806172039850544237149356409054527337109254026750475012371634163356037846086661325730777721280647534314447316347697553898128186699984426248019113298811823390547772329764958312013348654355900682451726955369155588087059470200130112265779778967331906342318398928869333320621193628930922252789942475835630559843675691236647230659770632279329552700803154984173056374356941538813220559890287948932660282769926784270084156730040924140527326161694987330011896292379706110290797745756696069649373498987700115461538273211895054150279018175782486884808165627949026694079926733397113003158752350864669024937677414579087381352320853430519630124124763301991351494955837869237391563997282831926352022204187843930555044620743752907898756459303214912576533262540936691974159620157271623976619744026903998841311763591617850776112901343118632401089664890296432031339704587273449969365430134155527437867962521461732240334767544914127106646982905308554102908887484478585365755774845631689625061797069277224589017446347108380241193648878065921937545987812540821455334024313067415334189730498059670119650888155622241352727443881190582115387160031987083557959458971125277980321814927278776967028603063860982611111648275431884888764205375891644461419281442165113307182413098272406742074223534112896599301100486349904824228357057490592620483727741901819050840133784238735012284635033643826119674390237040971699305035508541684184642741526011345830377034545673247348193544779773467104160609996399892395507443310076357554234557903448084782858624642087825726254893754806036383496146253622501319451080689033536929137817664578385770036098561917936054209669351957603705934906268580556697942846559681427780887503071291477771180265440309818360681165405451402998825985101585467082960773874652208468102109768751812249294334754199837673962339684458598303989012560656149128084818704977271704500111820895780293734194426561052970590491446353255067585369091544215847231995006571385530665834057789896783618720123354231281927082077275685581490730560930612512660024459151493705004979188645649489531498651811256812041878367018639578960496276746629684199997673047858585483849848299860066601888909514129092354519688801674508977993338236140908808981572478228620909013079055999664681860648434645745716041266499124462318944026720751565657873778441099407242496562977692987819331101001006886940093331831203122799144950132802712992322732899222658890924986050157587171279410478341563034762352201880656427984286990765028116865289085332852135179287775320939905493369126248081706508025121383054038800334133126912582578198089346767045741050992065903084410405579342067389195097652918936886987257998556993623404902136732274052691933902712561025202780194195357970937511253993376498836737283045663012716259700134878910664021999268698359010456079363167578853183738865674257994412864800943958604855497708770272095258859034431595961929133125673091097265249650033288773079522346629848400540494815526540071232565496002192424322205417922382913499554849494231395979187206625990432279802577358989298276019359859731665520652350401456722503023005542920500598999907088223434029673019092709902509854527839919827253882055865008378022044170617908182466087764940868191287932892203910053075856208062227365975866981264447182539764965990887674890238247558378706623365074418382735822314649133173875133539346853933529715220353638251254047244882221988039375832114445719097712737881468822666713343004854361321715937904587577762829520308239574209876769429297229492788102803094932846466247265875266901262271828290125484816512720576026962431551018564376762573719481573388082902435989289147557919820085940426015869237938644984601233895160078794811901128606603037190663247782276944196326458311655625750260484114179640449630781100028059721587777899548616589331866848586589884433776180825215940383410117073908665749777846788752624106963193505551728609893749208134500882819438955150653192749673201466551154938776524115316132468799236175929984551896386081646411775850599347609435716210994548401493715670557229944385379085672969609842394102053852930640585617958622665322401442626732670400898605339208804006226399824829244648948743541018340335783786179127301441143495000293654726288642237291203582435970522056763501248845518755249441352780070028130308771783138590476139438399122068141525094108943335450648838401508368050816477665105387905763934078817972925513974643591911552114990321536132092502718162427732961959310073358681247324418799761044138128175533564075728781472994656236212618754900935041582076495621975547223069877866833423205501781753500618628506480017864300774403612405212651385542324785592491512818969011363712486495280584144527535135675910444550499192974708423393788915488256975666560008658418831486069971070002436358042015974324463863975331315256350100410597471543019332309172236875295950273059628183218289404370205148850936789716247540479669191587016520071220261974352844550029338298174693321651489346834054900278634098118451506810390796444066628957822842904077295687036751753030107145280316983271643863885405836094615764125002385743588271772611057096017051439284922261468543784804950456763275683906382342078681254412624239672024334719988170197277067870631457565074406720248063640699385821306769251246289227654843038280325435893336072753974160660152082594025988734143726846694648824307162310075319842293790066683236380365916364113023077956685637587303605487155332442027330081309681068351085741377533093874380187268522922206907877904628135302206878477226808570295704348737308734729350705250044097004659892926508176064171140373621564567159661591660505208891801445438831443454554485400727187996830159555800528830501895273001664727327872161219060554598076935583110010069267423160927896963949668428214909484778978677677033443589838879881689304143040151566965585690491464270265933369908698648231524856237660839020154693996206900178735974035836292839768632057922155387231648462909019765517383664137854551943392944750962388278041189126341066123753433786915156058478771405509911495356264086864549669231568907310204580413782392796941086035508472812053927383350664498394868396090778564684643797953610768399710045745119788526371141854086299742741143453542931034112642770969079264786248778487952847872274525396322787843772974900061079643953564697490509701352197121007112366195944151057409617051052290726355511753611831983120557297191253596200469184590336636694282978122980283369746765877072766433816988885276333763468386033919643891762011306340914113530164204373367504257099852823700487191841114016594101874810520287140094096072699716456062986435745781290208229004228975068869337811351193165904791690773615058170877220925445030577246933451824199771222670393420076618430247989301504583453397547811394866104193835367971429148338226960593509527948850553589738489088866056950157759160384711541747213259249918831209196578554669596332902944528217948526747300104519498450410403362001115553636420270193508192763926747247214778091376615097306748497597539216118974353713801602234846418596610223355001196491728381000459203289610905905691453536042228944700693336233506708164376632292265196905986448623023327841391595527025793266754548480527474141812786552866062179555523041383424409862368507803788808379724673736313766369238952421750784963603272667909063580221953622502277622483196124384270598432582855285067839307392857682795931465586273814339812215701358008913744504909166082328416584537755037833098357348712565361465032805972332463470571127992222565935226532080377297610222995442297642858664154144543760429605626445363246679976706100319423648965307249125898342551873676557977980076400191568140826526458430355620855018902125879477487418669880010703094359561189984000648797584025508652571352642713808900818762733563933907680257175845702323446103352650315037738889094714301125561020767299520123422544010703014261738529259005582936285016779534293210910254292854553340294188091340686041120935291522653017346348898058329397639634251415255495790789232276610475430820888110899605037241261654412790128452538211781468137706040163589251302338628945129492526526157526054499806010741863397067286404924634602463250853078665198558536023670087746597140677430709873954600538412752086467329849224437763963293770015546363126740803268554199216110148800452348055392933141315773706916544244834690750729584351726828875673577384686284669079831016223209834213628885777440549014833564470021333012250510318628196403354501473349735788753286277426272412058460381173175350578063625228329117547342017177182762000385336965726117952017832360044414131601055570303600607625833520257086794460299503303235405793547129592034297651461902152897415638232437310596459687462645707737237253247316460625356201923309147149616053164111610968982125968936597993539825656623811321405622290242633690331197171520708458886629501797786243293227102330504233960458506349120759537140866604951639289650130028542692175750132857080427049177813321200374641665233409476989767889724346870901463490412172814110799625184742028982705964391988653001710178183686370930769579168723544998335749545669302644202401553639942269478245440866691292071326384528564979206439419858365476546648108609935918480300218997304033521019205473976570117697013574993280089848516513166292985360599473629952642379895102528336127016176698473682183086033512283491525587531078701769960700174450441897075463191166701001966508594602405252861661020659363534237138104755967985543504132651779265544309171663089661797268991480011838754395514530007743306523206944246992787985703873583257668225149666275708044817092179473408901287376432234255152184000524448135148993399726237992308890693366319534524405914919286001023207152800499477231637147511625363458729027671131273887926736499078756662423643584867860311177008546523974575055604409697170458361379914596832204914707687477877797128851225498522370834414521024528780628285658299502908593426398252443037318253475011853983824233177541024356976181398745614475488666561011833881047497360156565089379704471297926757243672955820045334129144758467480821734801177041462330493868195427233480116699903556090130636332582135595758898455889337554717688675419443125110384749360650194820062306035371642231935134917437286028140439867997146085372605303845922324252397387053503323104280558717969249047167352495409275956705853559199655236124245334969580241681832221512197006416338790675879602933165015430996911194465743692693524619507386959783087707314253852702796096541724794451206739838634931844598319761582712346755882851329532917971364116925580459580777106549087089885633833721495376838203571939354196899315959952771471126673501369277311868784088978490088805357186735204907944577129816426271569748548718465105007048886028002394573822034432526697193545107340377464652343767583780143645165298093030502918566629702128738751361324813688924829655409356866900850532330491111377115776027577615467221858675996959260784875169287002451522955270031529945464590113390566601638104681698639626669759479381949549521094185222475853088517575747722250564958727469564725551198796051021202777489339743678860650825001778587351815950784050194146453176121335151729118426661554647760092257420049651094411295657206393461369125540272851125538329857902551842140010729728168155049815421833694005666479835314301345459726800669406732142226308053393224266077636974117650232433273010299084393045900478760237076016387682287949327900870611434487275937671215655528968283284227561325506353990348094923618834333672342196260314598786240106313868817864990282889705170727382711735963009661313522151874876003741842163447595098531792063563845377341457107565041102380887529264291082835996763276715121846978152335415263745845696845019382757182866281157709486873961905240101219398214265546536750967734913984142735543258012062264758540787754354252466414652237593786570411032912452075467019054940180529381822514709101383711333906576767091793642915921156331153093086966419672262112597740568592247193259454589461789975881748447402464959452255240673865401075501396721429819689831459165010866445427761735950664767279794859546349861028684584102567036917749168427763667746539901237483770934149286828556417234366944282811088685029621854972388461492141400179431818378531525802555543611792143297930880073022575994261292110499913010225899663494493764322066965065552657683860010242340842088927103225030803899019575361455518100511313378899122210635374073455066714454271545339823025213473778275349460412204645585710757995878220099196590726550313372852614596815357150527145565606252195685340513070263312058932761628685367216052091009845456027330820997406518550020012475287521739464069747751565735535425699567033406091620752145249038485548269272738535458881763835482920594682502831935007939044191592665934516040923150514096743316810161296492885779105579574628427129741314368693132728889739856732913484957162970302155886534256005585002525348750659191667120827103838949257613014133770596771344867520424981512481551797128483873705482861780737858901529808256174251717128280009954142038283404515493901150677112794096223294321269811233355176873174140632742432182186119992651164305486904776956641137208497798016813430391441486456445942311402583071548116082948353859053406459138020193707439112872775084564782621469703701670226002083608908706257650133490232901979647993796734791791389108837488840391316789423661512339146848776307783561933153664065509818817174849174725405943054995997128111385956574784081579887201752131293203641025930957670725477083547199104944011677496883438083607001089784996761911555118387430280964256506383932385440111128366671509008989896969894026676322300992698146832270633688834249543060988641731506459669332135790574984053059370688821813861696284256730601108873169946873275064175921778943331876720877599928204112433480420122842643711638498169493689151094427959040943403601781464071591592426395520906563074301170609357411781189480918476643708245605479396805149975823710790278832429993799006854715677612020488249381376087318829249860618705721611840047476356559201698082912201731447144895261780889054170761784746292324851152690039009202023278777068196675566135640516584731523617868145336816439397766080614210545924770558639479459641882228071147631648464068071282886639848273041821795587985375379508045762319342182795650470261343285339654012375725243814715904355496652788300238679598145305596480264685220604449621182203999117878674891737378487730269708324258575405814960845486384719827100359499749045021493503324981088525295936085603612112875277165772232472172943104681435349290223418181035486646678350612096153314048934812251405312845644693130794699570129776399101845483455814972070398543990447133879775767958611789115576277586952869697207419668110547025356104508118513281233992750762881763449814069942083410083841040987227660385087146809291758462882088603978682814648463697723747708859961403742820323421990087100529693049943947266322149311746654992171622089706888690987232693008440118322817015263204069850199052758693055419532705587497825667504987997270092724847688389834597372299855271885076461764695594896776857497111208961343332670653088219754573703411322623432652079612370670759522865989489544305304229870481433614456728142947670521477016875298587213034306974356433321114198748015808533378315136302188340112823507997484327566235524681397620301636262601001974749573115998627040582154398612240420595393518967370354400622351047039918946863489215818953028970995512352849463640174368716072181266333429948371982494257928603209908756512082976203318896993556811032598795870290654464314612195991154478931517368633903349630798634095377531293937241237882170588711068455475756614392215846011024118656943146610447103347638307401230822972615567503237081427265717974562446329182200409435276154654026157444132708392822543248513025172090962397710649158597696850439433724664917552972570804946376795956449429642875937311756730759611008180173153566608171672968830090763100216355932273983151068870448532507553153057870697564626730004121686236946493897223301615347239238982524468676159270578967442335208172519392939150447173346250026506875834539498713044990972682934119826284451294254147413009094181024714488871386202688428850326703297090958941205539880784233206301243692882110863728520935300426803129849861066162328924248314811234044235526917971430525819789756904747221249387766426570024322970113810633121244387546851101595137425594780734277778163466656762863811690859748690819924149764086189098223579439077162178543306948242728234180189460977784090564717909958914484997331212826202879825168364356671892283287206580540181197352572101556052918271429901455394322244667370191706790899180385433908096183850863116925424089779826386502526748710095443183357759259264350669758538984543570659608442233143069745151290420324060848295672845609070713025444040549941161953495984942400569810752004854033462180818717501473602003988529919753766834519267459191853260942430526451338367591610462722255519885533318091413282236645507693842056139587585174840836533172377743773699853965505729217177054293224773292664416201880030602538562278225321891165780016462030884294542171512091919329665748484119521968083307311550090106678836058057695155789367256480085714140957523582517405726843773843965805062854167341216399945865905565816082967380764574236264908322832026258878810219479178571948005202329724873572170959064168220250852866894869441814814336088696309110176117622727505080478673887994019209031470883243683073096260794466251774878661312396140451192202048681737090221986795031224400905504922585209993180522285217639527490076428997551320654100183952501339039411363027488899216342828127435969373927206622219991488695681630286311968420926692397568305857084687465055564444577621975622575638732092136231861939376545106183592871057068830912439888865976468476919884482685397269128161770928566900727291269154824228527675346081372877576105239815076936741288981435286166542306370317385367661910564209423136201011281268632060855090035974257710486869892568757614894897522060044762114764294152855302047129540749453107472326986369170185200382804774741162080610192299448791655837271143031897712686690827989939193300115212570291279002840100221332359638092430107485231618669684772126117628109430807807870179213098880056095720149063499411232674778654694978100920348722902895061247174018209015236868525293031788997417618524520615310670154139827545561333244602107752750236462181184001174971045032668071457088669343366009352803224054539191899160213259973009231858488256017589726765515854490280369479645385928837073665125717568272236817527886126595953675904441045880200682292326331605550016297072600245068660491093587488150473158326067968604019596596401758938962999611134999887220142801639162808277019000523996684950494129496919379712232721087533634799016778545329546867029889860125460655981017681622945787749167633778012193589896433826748949895896455552830293938177760133511206553318942255257205688023485511465311240370569830383770980501938942874381333871677652119251165232424762759370522680219711081085726172192200471111617051911492573260444356019050880257144284294858345038500231269081270379217141637730917386951077803951465947948318380733987316241972360374347644891218080867477801127739352886454955474697231238246670980677690766360114942542438219202838648103301638609130647408242415965038704988179386771612826324206864154796774710654967418639781772868902585438726487817198984734843062796647081459754466438695356013931689164953412590552616514559283456023876382982531158665778071252366111215289192791209358610676830608704880699167239104737926738380806102087796251207817987706280614972723696243872217960089284779441922613482745326373221293187629314849627852764314691956582767373900385646809877602562453468845613227491386505464078612320297560621811340695604178270367391144220175383844442182095680121549813967767471578605524119054230353716820904089403722133672611600182463740651766132812144162119855226604128113025780297246562714908319548682148052964527711041387108351725986939775784658106917417165508758089894076812693630462097925362976113719330533933441945519057848649927997465764852741252929520561465417766869948156957166294413442690059946401144616379460048243603411835486524625446420279341453780630967041766235978956702254380973915510743500094943643076677356312488820552441826655023920335342058579798287030460608471010554985045478127690338401468832894285184270644157597181391980363520268029423779122460106986452303665051132303314438224167582600452208956662535362417574661776130395296738004636679678135811728578691722045074868925912828024641313188850787133273468196507886983568281074008228398833887546327588720765893945236361986864042799011025347941540899120195618832047981206238012443136641573133952295789822972054633694128522672475346875693575744089606524368889555030115032329490201197422880957016384211614240024194815972352663585398149664842677405114381324517609824349740433120180886782699681709732266656471173670133420412159019273061064135165834087275926105207599519938798108362236936825624357596942575567243175422446513134282444546219670487019921217462503739226760615763145358780636903981131055331909523531144612297963590579791343200401782220212028177536890521837490923086913988094665108044752532734574114163851389688196990536411007565314650913636198472343997324718936122606989119728555361547834512170732320304397024969079805279752798515248637303455014655219088004378116548573006383105132713698943927799109332551907638299425470052640212047238021786497451127072174529378073723160411678754043635434923428415198225513216118233853619678072541071579037684006509352515775481855506999335628736657883470375675381697136917829150142134650960256431174794544919457558867689742932600754049464437657970056811833814963164562278808325215359848969091611711252550899396988565789690627090718270662365617357807433108462128999486289694721534867449555204525261009752746774823201728691647331379282510494584204666362580871570426037944483824924885098301153921848039341379325198977410271953594083312271890173155260015449945172436220329122904930216949771508217255945597238102225559085403641555627954629152951446615010664708990120436239873503236183899790131240366750875412329983197689783231644964342281023323753638102757113317707209756821515368331336678828070221288222431692123012595024702035512813625694692955840768669079008618963343835920388358778804254529286047236980218808809376383481604690274436112627516304234570187312449842234202954695051682121906090119280046446771756160437801254063571558091901062782821108357572298386882913227850476785565364984466321795556405057443896832271186575379800407916757321019818667189828448049240432315444384535664976905326726365672212626479353614355747743010826268361046175798576843508047614359580276440991230684668199098090169649836138374537115133292058112448434320504993975440398634564561061372811062845389919794464756319147949620293888741727095981962213366323251052008022948070185369309624947342206462159345602760346370366918370080794750815497691506386987232332363040048307014747427040101635178441020899405580694765116781867714444557891779224274936444747934395681398259849640859547288782854822872574772898655560708793143013863592303844213078965717001142013133345375531769750188383231689564010410460523053545302160337787275933793600079831059786923651917116003587297950092868143220394627029709439659891608128612228336362155027524489700392899208187317495863891848221766188676357164830896466012647961676120613208922167924760706107134358138498936101074321550326010239727561819961517071916980960987089781335454279452572014683746692295077057356505253727184346749831255952807135056321220183300249129269627360752698727961874835453541166178115104432703746305766205424357906907643027506566011545293209754256817640863010335550996162023686065547624565633733450028812132821112650027882553358391489359540476349436909536712451540222111042012112614146099314211096077972028380350835926009546400192616937904195862771061073863084513470714855385235991705077411278829399133100424710642004685110004668751268838492696646684127183398820772272274050766346934635726492295508527342167183607985295214854374453020140308273568023756011091170670058921581730199827693319194857520609383677493800153754895454758392922467145196886624205307003977163138534400488819580303438938750150248478908746095655229432168122351833993396656791399860057471255895358995163795790502842339480614693047773940087399613872175554044896239306720047166599683959164559385992350163600726981937373729265176524114394711173066908161256411312490526959783317823343585817154726815955102056615975368648716719295002037164434559993115838954103761170242211692209659757329764474169280888953192265018323278639895057125265040080351098166525818633270745624478767999260143832213957693995144146618567165034140965431138026799083107313911113823256079891218419097499879258439424757050598629151036618829440018766334419356136121818642409880643828345029292613452989780017874434765630721552668876812942787390229003192132854331301915403046552271729274040978729971869065861274389086143789335331528000722343739931141408617006935221601396439763752617647269293513185900666560692870355540127591040176694573951668781392222314874307625621914709019439929842304607249623009696197438460960181713095631932129953696256303241695317383798489875354625613944880478717722578856826750709678795860375942396403065342607588909741178688691392161349142374672607566745307161931528212223608067447714826047172421441191014118099777348851496423400821214367785871112451339598317689454896295358586312208723674168975801728420198379521676029879043214298164980073438848617518417581794117780522634741944532647913461096008451161526849471534682376534763513224285821651339514042871491491304928657336038265896295687402216476364140171010074468592250379965885628265941940940803216070443194098337682371052738782240212249804055343099763536870064880649593437825959984482870287321406172111121513437104727407467932852108809340102917205988491563835375204197524692985575798676481472507800640568513164215047729961796757069726955962549557228662614976737277041024154905068748619666632045637117586039850498438119735680614769220620440066553720375610727205188307565864510141631890169908903672999878719837495187583619636527514938341972069467782657629486059547703873113662578380198215451340166561621294338870805843749973198359745320671636715795794824966496329916468749910599837782379955651127529679770576936123456431325799013821173824587068388496232079790057263861359067983345975424742068832963665164632398534830881874327196721082312046243916041893815676251199551404508467469682614378536329792804480463933414392812448177628934878903259463604936793913756910591333131401053312318473827176692618350506667841096538998378725161067027299903334798750338252969967240547503727994082352628677691676724221978298691121335795469864311928844859442853748954770746650392677504935023501318484562852179465977335186287725146498591092152705423697139307553502509892340065193219967859570928797232713320379505030822951738901842619108755048263611008327285185227398391937967200651400519166811109860128350520439039140994387069743271964945482720728580080499829227442597465576362056773909227396060269205810081044091274861274052083550681800280846853365773501336636547568786688994781848102752863313948521434475191786978812804547246279555576019883541140052364736856645491494712270621049296664348645466074401294994655589800473439970478567070874230733440522210807061014088117932653608226474008992799949580781114609156467815418349244821249351968486128172127816506628059778123271523323011385827161262870364544923983414364069602150827990883321959502925116319776648400066705064305110876879538720126151474381571032578594429879582640836749106058593473713975691439436526119247586874313036462512632819028464787798955964146467679254638572540718598910594451053336076723313955320607237429342231172098146734579114036428369157918819069359983554004979032451113046349123695673055464255725028735547151828522142348873376234018839474149668611360364426781527895030856500581129718591100607613791006301203646225197603074454172413784318165948826598629526362770366257339354314746743740090978703866294977156226483955140088496858681524961864744565231586387729683255649693492382530183431503495641939263552705118751690930173326587826728539517201529614123168745879650664710027721535527990514191980403448748809425271515023030580803819558490637425610761286447445702145771700538618771856245341502238104667177182156451306212162650268284832776567032691180745102621226878796783348144474739963325872015463771075662799137099439968395058477928175853388589298060884655893295256512775357371717774171627009880158339853263985462034609897378347604235918070306220964824022081211922056651469471297156905250871618592424385480533630639588388637580523088642355209239942113746268781671245822572511202025238007899096530390128982226728718392956245128752033516689932375354233880628536717511049953534746563577296286869708005781722432645703193914773255306613747140406656722491263810755164985352132391861569892759741601180938459488335565857727095766621352878017746207394396536640613760255275404612555159145894472660004550460201840126028682169675425715403286595979082806770670270279602818725980329703207290406453705646160841613271523152176233864000719732448889675823465041643506511958002969405217808159624675438363993855675585005657543967040360620566709282237084835390235186885516170972831285950677629996487670897630823414502303717227593421032455912277519006473215396733293911261315567134873303985165817621818965062132244670092533715960823955313435520240963449464704269389929704788057775395225304445269439523468203013387807036775625372428738820122957490788491097575836380768946417781170204924265694114188978692288866330405099398908390984687261906220025578016147113806846175503869621046039173277449734000440315469390188818028532717935289089521466796684336032306851222427850362095962342173344568462536003823907004859179898119259635273321433814733104111504017562526700323736673638829051163715881744740929702188992486881556136435171046313753379074798148717224644189195014955000699768223372081711273357493779967181126388046915176031121831586052464690332119175623212392149842366338436939089606343571019871260208059427209526000098932919548897182476483136558065232657759910229105479354956874317130982604992515429982659247316519476413549251796316145495364643828969723843341632624200464085764907788634935362346952340409240615346073213583820678105630231158301309547914901058893602127015444653014609933215102778454485389492059576990471259700854373531240095465548692479014690949289417429474023175869830608505654392030820066673527578805973709448266661709734899466685734207689652474946640126926782120721242857684056061978820566013072960394126424408648666723270300700018763702123125585385189457758996973612422977476697227587846349525276721135617126533135987245623574287717922823621733384604696818922015535079919190839923764769850868667097090275945838304463385297715282923598686248217161701732257653430453175458524481199097107526397202783906927097586229473980803667162732049273021390439716089709448590417035560391314278723052507237091470215667891103077405172811024900633568908289739105213474710387110697734179822215298633820913713340597724288168039701110711794838475506531330153777335792146088966805353673507684370087133277664437022432139623484718157200611878349684161105193527464648740618397030281403306926461334937613580713678646849332055896798593800269002017315509752179054456307976204539366164751213369713510303665529612045528602208573140123273356818537080688559490045513455499037586724691289509135614739761619350294560931399754246409593482634706932394071719543629994248028425826980869910068994782731043194140729137065561921310910647742202869678410198689342086132079514094764557566779972459156964465492875990095776788762607508573026711417359488599619820393690878009653057362367596310219749393947486829734982437156817385119860049946703436794777542495906134497894630070853118069045330588677366858776933558352772347722367113535441464953094914787554260516091590257380290427077694562563882974040944995555047133544978699964591405094549240648226491453935534013748238394465227469215192746407373306437960564601994073383104157225841453177922091550359602298673940427341271602643595637160050319245281141448193245116992205192963960753458671903332189891394562855390511463673354819072405893264159374656793656847972008556393860609573615720207364858821277933015623632888404450358011928387044176216119823998305175658762348795464870147922190746323418617532914207267039982218408501287295816325317953831937414666169012469563232160209228377862307918364766959000991260990426234784474855095374934642323221665295263530416182005234725073417313281371941799627501743248387993546791675205656196492687377092788725670321041084846517252001455741782255919166732823486045432643414863935147280138117046367156792068758466922575569823261223377445292927967942334075533636237698801223210984085748224134370167777975400290451962733433243462088858707833260964047701124668848456655314490791386407165041304356614162891128130642529052824714852815501956868333014033019666588076619533271151441952990657355962931924596226073366382741524021325990156712589878696526097892416862426538365357996922008272239876890436639594905103305324077490262797020159432361497188506834785297630352887384384311633385874538486655245953353256027257800433982685533400268768502931605296599137539505181168977337628333403071007507184675877455552618175957105622157537358034628994375330175642845170027424493671706589564726973453248550047177635719241256647286959447921559391919211330927439608209427763905903817101750680721804972927688148003299791805133789258016477683078142959974912736704411825440688514127181951650581000868090901727273261519811038386996492017177388557354331085702558277030844151960489632494249540475300325951202753740444231070592450690464602540823784883175204217158899184434818766809953290805463840520145248150841735409073071440212597080620723240052133336172766727901304635997669202585184981290551143436755553474042124408525787350099781696823988381640571686628564256221470019800599456455365992575256840309100922132090483517488409591147895373436888555406957428331167961560998946702258580996162828603876962258668500532967502400977022435423114941188758016630693887174008292074803288332366318672254721894071962197925807776262367680120574389677149415560892696405609798161437596718884519139814482519914941655942141611583579090438978556242405154409302207246697243789091411606401478449620805095361714589680754860600872061849324254055890204747533971870959223116323498523445833020557466210608744529545488652488636643053740031020575864968472764698115771195984812963243347352643419222465514470598375536252026199823136102668505934261323747008831269309850336845763711912808452719510993467622644330248796778215778357179808702344876427611635272531524212680877950854580002800942961737816495736587613550383902593518022451489986595391386280890176733315692885746944538364638157431914918272059242978532677863184429747203418621069739072341382567819750584744758573102242528631289688870394402370017564409563723773979941703072556363194966637215487048632088553375423871248272067196827050039811697521944803303819103644974683639615295793486934451549825239088681010958503522736962238640223579317410321243421349330906155526764974867238591356798665791386247770521668109513697395875461938162199843880840150462349374915757005662329416741419324017060546228804062447078302444542246740986141799542932403757248842565668584475374735150808710194259925570025591536419125471809226392489247210473183775404368398349090638838903643289119261148395485484283493226488369682064250829792956528567657139637915319303675000446746989737152029494189673107386405183869853667209615538579516013786724283291131116205344838490935502141965763430942783345813398895025339830516883210560470231109498360215701797285499584353668584014454326729463659558057554912035899891657603935286748260839689357812201694854420284115345416765370150539067248481776790658374961543907438018448950077050842440249238347453760005186558540409005489801930252226813375565841424961886173730954457768458204286660122817935015954254227880079359550964367236001758487550721426984629753566065409769091018287330097295213773978868194320687456563619468024702347784093105020703879161297919041169769863948877443652708914771324621132414498012054144799456545149290762900541864438141414185607574077459163621076304273485751720878649736214035960492747619769760204208537316580729042661035707478683533994741049990052728564599078855915647328157537216604546748897534100038589247897593159235659029936060504218868027136649245680482342467896581727524314500092931382704870670509486969081480982708913294842881791292233804358568381236419469488291149154806098656410938938459579576717032688821889706341608120813540112669900842586877530879188962087021999190119244940937389515824101132920665977567725361558171065112212675673984884208101054327716586344719009960464558722922883017550913100922120161611708452334118718273692703028042256752125459888258008088768467459303249402954769098860000064498327835035177970245901717461069021031114385898891300430031464986644383989316041955218813824484396407048628862155330968321044371100068067170884553516991774461484602679733594753196883080136901657531742762858892015658456159282028486253486849151856952690848200385177300425594982259852061749909418995795430519680926326675863970330362166801139078158510955931633054250752811800147233385155270286631195498723014761496091170989125157652094131336682565883478521472679124025309379860466583003016907565804184264709400267680179454472450298355982153239744722858366693080410766838807537029897794168084947169545281000138642814686311853657123643481080444419776943608679571003415446523086154798017427430541118140858986986953659352209148129286277910527563893882682684503316493431615671929285966321609948154209234297896392521799543037000576013362775347740225317982007721575238825788278985924170955299812169949365914655159027142160543152250885976364854623644832828998694713213672805426157004434363571368714964365091279537755252127956570275060573168399407247453387904580150166417554093318990221557795893329966715916337144253806391568250198965732673543713630433151564142624727894161732096361768570695757469043413914301360571368109681599422454267994291494815084920120794470523708556287923173032590728078062658802433233692818976301021847451759081315847198374937879254336141028192908238506959335723022909709371345703491752203117193391412576671615500837194688037957230949304992415765658948527772934757199962099199660719590343498538200034258086874441989730557578604685815601198937120515178602357118511309453488446323152911012847194822120387170926404886641399115033506444974498381325142279720493632187087356899154523954712239738300243387695181044908291634656493224699817296952368955461416381654109506475702765476223031975195911960444004432248823855307928266042261908379011699488029188337761938635255039318247376248609064262967811718534283857957293883826994881787748963708360865076244820282858981407458434619368404563311462516729753099539371893634752553342727721589750327604235016131883487051014937040164254295202112468706601392187414915592219250508302601300614227865275461918241220442312163123925135525386414879604171550244178457013645900960057352686171890951144541979692940172374120790775114222309040212877449905767800040995293287872415127625919615120279661768680049040415667034431223781731135223062293682353569906374733840387210289220829402190206993180728230292157619362775082973667227719260817342037594865570218825174446676910279597988473361039161950197179551065337288330282595535685526432164259468821601187524156890344175549114260517563728096737664596765951373562382951450158435702366643826565166033537363430361898526123564286815172349599231568204661976430890998448784309325179422289032404142706904673965700593873947556150181028448875047103051977820516656023602208949205901322415661104806853783565928550825665157059288742434624381054568526996629478898658845927504495111962065152565964194585807582321707519860500623691077953794552999124534474857631571672733276625279406360922893784127040059043051753994288568394833758917776003988219336156454684747061586434941748272896654162732881774549134190276005362552272241061876715697785239996912597830023379338270730367024347445843631695067588958466659032146723565198733181271603170329533714174168653742735881725642828808961177549715727823766085284280564668475481483025101790130262998401471765631829217508193396638409073028174675717183679109321424471694565694801184470828981346582390807085664650943960980996794596327648691847570027164008430271780023607529557263946922068573211696934601139406379694387113214809596315245050576807053088877707386251560738187525540790911290605414050074566818773323809177175611559803510244265422634469273420274360947532054474664810201522480757160080192764509868640755387792782512319064971730492436125383479472233312184552606784785904389117120132907471970898646916793338922188206819244243679768060963226997622325525438807915584702775557813943254564630170802502571969863829178355503658655677040657715901630361493029737021390090784565200055107739623876919527466233073799861713680192331319153022461083996538800014472276359940924162140610986374555701933111071663411663869669325790451609360766878006079590429472951827550620986283588136077044999466657727852135454598539901905925524854258017602629258523396659990568492371281758651832546846826139872591524263223007776761026746490891067413045520865781645165138427657537693438259135650495821339540504109343795363149457185558016785982366762077707136391394750769927594124718675280510050580088778921364009699643156053791284095845079277546062539396533711381325909546235051116535422153274730379003049809816753574245592146427571148173889318203191220441809958354245958823680191674922614088157153073871986665163207260981421894482504598603289488366123356799392667885836688699595593763760131286241901244940079957723275848373237890126852089320246084633087469007131611029863460472620354088077230997598854397310449591661178040372129333977981980667465896084906295901903004573654584111702138092943349731493340238947954692800079663515536608744807889074436649590457059116379639515352379459848165942110787557584647744485709398794786673930314653787000055265622738849348868014668325324554808869697840861428332202605159784473758240475077045877956440224267414547841981500998255808139649559119490162000778423590574708572855582092626098400962795352387021448065542716613235180735891367382537917818583929709238421599351777285004903705739994560182712654564006547857433050237905367729927647901373729882065266467753044679208128187403647549010337821684617514473321428014066039173636129154549956745291280487582059262203684610487584655252771373169075201088089299979074591900897255946257574914309306432300945722365913111763583230842315143322705071518361505192827583400477224313661227547212874046717450914637347881574937136891224071495469329701164124967188144455299899265560284173435059033339684083900508205780895714194750550258435539895333821422954000175425881943166872982602098513163711961825952318503048063848261769943057454536332369722892852127453962620555888201280786595346925476735047181149670712648108963197074907723095338172812903968939379608303656829309453951195103555101794606286550628755897305089034123871796020348638675642679797643586470242226680356141067323554678392898183876020743123576903439316608931722626451739764405438813665309785164516091222188265756006630319697577128067178285370662312622178630649334872019652245512213962874763645194917337768160212092913119557577229940717159088384562903009673762711319469483011469978376368210681739721208121606343658074578652842619911252849023069630325125539220262708086608553373260528113729020795258984288606362210723146275871008302696592116796729804652056088652402830449452852623281796210855552913569111316281185922594642243575993097967691156338324243775106404564206618378154327985063347990585994167941264600814265802076089438680134125216675148314110104783538091994921567236597623366625195726621315657020662840019592578918453372207707242922701491320802231628612372894854735596301456398781802716593923442694319577516505250176814162690278385286905967658981561815529397392623736691506096300716415835503821410274491127286109530285510710103815887557170307370401072526989778122427777982745429402030371893460196512714786007633257597823560755120184397904694392754599109415286589431833678164203461966965745502833534634914973572427102063682574869987938002274602926585770338827340835758233353964788894059751071761829013836128845625962456615081470286079673328516439125417836088177383910173581054179306789319354214244506271848615081774900314824685467081885632477343850003573038300692085698373189971741499384216084067028027322140414063261224132070960645848358474553888808545705831304372711599470561305187147627031290548080162130643095224885210757648532006890867247733358836863773899234208725751258624326877150203797888664104160723372013857463837248939915781442521481532966036786256670779515157184486278284623830656149068478746304589070500652732610238207528343556870076917981962370933425697523227410156380319108472828236672135744706233019867379652159655895920445881264116075444954522625875753712325811951528395297310805366659737078902499306436381990940983401366057784338250540633627758880432143021153340117817183865597079243522178641407866306321140059111665963869674174814537603386527511980386663719493330667458673886033430981659236062952632990436340315062001399816488421318323249663821881086715243426904326852057637411187173002688959039477459496308106954873683347966580480792666848203872111155779298206492171446776036467095699322007408961398201438541752691778093448591805379319975734633008733805423737484006306920261511112163496310104019462791993250729664472289917526217448150029921429637423711679088603705862044767920419569072763317392562317554237960212968546196381413931500684077807942400114302886972301537434641383888943801645524996942132383302590103955984435920192114405742368395195627612481823522127348407648074043433855129025703158633284905299826497723411359241638477810519718888504617110734952237757455448515655083104327815549227261942168147532179995806840673938862201646558093067628664599062586079376212071641678410576601429987328075639852880094772239828595655508647678495736912182310861294488487880371285222483848916385139153873570982467403253180905952140999816207125707346779244641053423174907035616057854665520706230189378222378699058287730041090405188667976207753223152383951891383794691660265617096453280093667685687736741940437765075780303758786467213369806671905396831663246981500805345225172127600101219420489597366820045250783280863555023585084523529459880015074817898038091762084260240610077544679975952030090210692652146825516305571696860305074518960077236330746464410081319221388061282530716894149150316553900271680748119853969448521678166817195277472375438574248300459678028446482643191624565948419728515264243424088634790704680688727902212834955348065925322108777646324597660593036465556432458693960351674568215164425279704197635293388674002905098604804058694971222026678345298582570754586879859839874780442476950616288447655490720315563358667829959106809200263720772338374379731504352173247904236933734825255161683930983357160048831578210800744616402232884763769845118106337331382348178691348762948102488831123059608418333246063674012306792143529862509318800573466393945110854693302470150769608053657059116434205086789038712429863026273737703923467616486360820854255652475293901750966643149305322908452742071130249203373623959028186376278550631811769518569855069149965122012875212751604168780788846889046758585655188424574632231611733260245635328744003283376298916186132882041384993437415425340122557482855526417106892330049166705875359141696326701252283703945476034156352866374107218747080243909254734263893642740212706232419057147020465967897775252160900112165523391855055422072667056235635255714150357161027555650294318236698997494207127738117315265157658395085898359116487042483025298282496292835342614971582836305913201584275639083300826152992869509534575471967037335031988976804679477568626097391307508441139237372429790618293735444865836474201248351323216579883897432480605802315350517364757160633814750084950360747260190202505316991514961414443077741085111205628746669655574312568239739985759980688626160067669416155280635354170677289351927353144954925348118345931551295183395969364768827908971952065909279895265551395643890860630085704699842778512682503225535445181747047817870378902848066454801526734847493863168279476831686813075581131766942792849177153995620512555122415951466094495630323751363503409380152482660676818402177509746191130543077131584178104958852532092777963932247288859476249108813704592238608965451962660045922125449621612257279706182031523350224254058416435295866415364328655342797054190199640996014797972893728762442047067796014330470458813021370589372155297280746832083596186832927497874703767163361629818049285059989982748789665937922403047535669085555911084234056179207665290972266971492644084159967033746661715413589643634362305680807842768321859735838332547665155332551421829422023347331225563223672246948783320537098609365988295851124734686986419185959547823525133253592706932094630043826247729906190703249329368274258023136024617731796205210518695787356558447187340856761822662668923454155641953489777779103374323453560983272868137005026472602482988126144284737692098571017935025691170428168605317228406966038244500127989392723036710602061829224365205086273408305499085868863263158996567038587235176303473891023580373924220042592561724572439364727261275478002841997196502238958351917771136044449051923356784281023732557899975232428110035253729869480741643838593228781614569207610763878446278567250144069750721774513872154416127116184972623428347041140808262417908836344307641983162604599458610528100880127213135072994229744284191397674326352630630151715809788851440648934789486968157527989835962568845450441582406707228116039780752744095817860604256355465643314978856740303601478624661938362570536755187799403342086440107409811430967057941202837697078847854128476421420650207849347010234559539481328936116657355140803735010549022848661057661714897714113092979957583113668660842238437747515853236836823380407531357942647455061947211527584838530777641431578631533081837817458648483482475854899362019277645777866396525849433667793452822332613716161703715680142412181437669874297315874630508188390538998763948959501634698681393613832433676971176642536536308120036685332838312247350598049011382194006426751087055534165263539310227225455586250837876115895328107875058358323296258024675689074684276685960396286211459173086409804217917174868032126552502134012241884463106715476944287638191144702391394636769205716368283314324272061910783957359532714497976428668196389916754678585704611176086418275179273520945129278052936675638188778084681512129103201939191884340645983360759557240771873791486883796258541615521228784145493988789901871630323715933482980638246626723534154551162158022629982993684637263556591022526209548168995596763924525779818365745908318884169954848059487263047791745524038521996158940745727507747083380365117710770504816070114345674761703540711911851333251702656680547073786543480536658384609243121235117076243414996502529470057721119497767948945245092232954209828268099660362499270239977316410131473019956883548839912892215091296301116685236749043023872067121649168816931148956523867008104240409668942090247169483006677472475022755436092591355718907809264928138076913909367742908547724282272063178189699922580943332659867848555870404582980691116134398599619352444108429206570421870920732760255971107830010478600418543867229304473105976817999437995624963977551642389009904452754973769188845956826212771582437910031554620984307508899136290036057760485515981761942544716461469308327928120267181985365753769415144665726287419920157368563510238066247090268350859055782962032752847333250216396700997731391446031978383473077581145446014383402390606303403139564997113879729793951773675797990129320651560793729653460804337378873078325995575671813711627818259911324904561570499903743078163496984154729687124771535565614595526800892793383002847101193688230157709344894293694604314766613874888969484007015530658470920161458531677395404345538246625845419915083522965428327449592579787272530816373820569726382313203468619569414615963306890824788901762556764318785470275810208768902308843869461690193706134332652838746560779506092653803194935419514207483704313244192553892941015763205027331180063835147576898865180574284840308927307052382529399712137282630825138116104465856994076824889732823016801514405075749534839242558780023734093564385427769737968169811039502767487410605680407000919430445927496223194823908188344274206183476460940974857026014765511871488564188762394145509566436884537906822316664584278387929340366918952639749945712337364912117898898100456365405303614367678766574779971897035890851340753303566410448227533208483114715653852008645904228879890008105306840664810926280897648943877413604306914262094349940005701492781463166617018987262195477247479411165012032086966274854521936568697095172146664274521789650511906945398816455046931295144834564918745728844171126462066660368511766241602725194474315100212147284353450979931812613365879985660760949675410394099597221383397282270649689406942374339529027120760673098620145100612717645953099991695268836540066212110876691295472576715670472528359427398589057789105156293557252001553134223842417220997014690119090795730121927634314400245110097098684662316940092043640395107840095082404393724431569932380999556566223225953603561268659277233142898674504245816335267173442331513305275668528000882131578372728330367431996236736244299934013555064790214317892321589263241735846081062877829536237146103856130974508584383925203255288161463655869274489588674383255467608986249537743520310102732301510312586300885308711336032681914765296275380933580685445514816609143878308789192995172752838775614113929100963772504722476502460803725574423552630390679916359145173128020063412379043545858700925839437233800477093752100106020320710946743757617885209109394032982632764529625282843883638193723766230491098568638288129697812795465649502987519443237374717569734503942110126666456746452467243671744326722480513860091471406658874981069458797755208426567511554023501388818056077809685967218166778323656642056294364781507234038297031609237532587121582157063098719751572027815806486465739765685821360220707137575061289791886317018344231178107639756265901783923214001261484267260608856963212506112664580661232668771718128515933888972178512160681338097747646397227098546822117791442971244683547932210065756583782726669121327919189919430895924068818791141278103956643688429847345537261972625631981073937114287552853824966020259764819999497494825529525803248775084385163797664008655578931715418552074924924207303810884307045672751472623627590238240427882919158589420191651051291201494996530629796633644938254051442600191567794385336867491517568939565863141743428978925983348911960054664933145597992205222164222070067239420655729274443608410988993057906111244670655461314749297859526776808750129979929463264535742846824715066981758076407016685742272717832296049248588772166346514206140232611648313646974361075876502075212153206825123467260525049601641543113593826324826926659491040449513362476569435075113758021120000354579920367071433661855406353033131243788650115704833122963486963515716436150668955411106292482639936056089533656999748865574035903442979164869167970413896363820918981359475248973552861959958599513281240229125254191033034329614839738958952626095367541093664104541848330069712181205883172287797863933860361092594093394766604648219724017906627461990155145464284049980797189520472766839628607165959550206410624594850047207728742391790937424803853298044240606393737165014894992677604766997229102309663195887803897286301785105572298528884364406332786849446579121845605710643784055133828155997677840153485182543083272396067416822907578244309440024774885043065726391858340065671602736690223498425460750206631001353736244860496343398143586156991145436479381256647551268200201597228242052145081478573527327740872674057606231783876140492738423387771487816818973296067955431783335954812145213291040418388565411633655802730998203566838798361301118237898299679365128173577835179749466324291902645708322471429052544049253371978094098400259444057923625563163985309428337930046893811988622201487750649831527607152172758790308668908636856734425736964414520114276262353804539047370633557999335833891678887360722586405173275792708012405442641801584486474071746872306566087977944152168058822941711597971469839257468149002806903762275390213823147918693360050460593086751941370225341049032956413024925937514019630113122497449131397180563158876272217786108710316364666134898698980028435094334849425462904848496504035005138301904942680093332705438135456784474310724287568039161851497508890419628739528796915166296993507597175335853712159488570654264383696152563073312414075408094968738278618235578216216429847158489563609687727694889052260488292914196320250767741333139816218917005064103305251564339784643484461175548022211290495022724202892203529314110462146599607518423221751274543822523090867443473450492922211813054635267651398468866277798414741622312887922222997695627238890002377357756295101558058549024411592874449223136712883132156896484107627467481470775378937870289983468875838009308340349091971445015165960153119135556273437088760909187042733329404268230307978236191836815686524147098517847384965151299953577507981959667935200086099007499461378123848662089876689480968076171224342740587556715114456473979662502423054412802980266809769069867959495913085722720232908953648186274431787617815728148690956732252248661963948180053489628369404407580651785221068051753715649822874280888061595294690321803029864102570539521534759795936782828189384610329421348341462482534680788901363190289898918547024601955771880224469333814365623764674707043269282758747530005797956500930371816102584093011096604612637523960170364111124674890016020462489223391325922891292728588504842113397162685519753653193415106894837713096094138949660824685304047975632997758724107565514814976851787716150851209230562806861086889415823900562679819419991781221888923117622836136003635827386036417018968041096139143892574261204340936372016546638952915424803420209075308113212848791944685894028983178947800199433887590545576244252918079478580475961649262872840303232466312029202796653266011479535305520990488103863908102908288093629885653729569815015838858325937397594274044908062139721424008680017922523933361185960667205293598029205116536158468660646353804254718138137889784490970942102253311268398968717847851192319781600349009449796162922253868303326321746063766785464228390669950077922383264834632672257217455068233854401954554673153389744193638208265663749071095843607548880638945617773123702299061035456487461277396710601095692922946388461294198577061122956935589712525588500207937636211976724838987365271816739954310472105199605249278225552331033026577671428195795107028942215689868519888641391738276653246548262405397978649841164827422058645575044266550010432996510208760230111296308678618617282239483680270396955594432375802498100570738070102560518056577394436178867779224196700077703247889901302125610155500392675121426651922408111431322305867801275004550256562235209075095764988518371431359824025370559744942603765040603117667157928791700923342527214429550729371228174936288235691510064081926396355389412554985589343915027358245716743674203380155759060415825486637430595246029464878305652599381388127994298017220798661645148104547260255851825886491887437989477108192604840832439839391399948945849664952566993069363188290256761246818432589548182953532560439872253201206387395312312603776816122398420173970301490456919714375741940397302643485299364902604158191759659164048971444569199877299814583994267127520083087429599497991856575133761577365595899396785569205403832073137278873292637220077584890049388866412151224623372024385930690615652951823891167146384822108366010544688731008427175931770358316983281532056827620339134347207468286932752121338561480281821537302982935142663064158588940647342616389055897856492578799596156137078495452685560639874226565121368962067572404859584869724649979505658853066851282088093436777453556923748644695520943231144364082761515292841935463234761542328985767533506262511921229048693860240449332069043222529016626826574700141956959715089619782086508219389358979250123107456154591043511986543532835482868114893351746297082482519473672598878618461612175729406574221474542219856233692682766930847838291671652698227889019273001437401493422988273747806415138571054302941071568557462826078158787530376706738422529632105973531016861104956129099237654848496152705937359032859864479224983907634096344643881216943155617077621642477051199455750723305091785542618212226209738453326813754093152332243236580129405385792327940303418384133398827745852041633726539107272223736041817398547775961708201316320347683787547977187915748049048590044470730158035934696651909585398416464943258973111937121970289899194710301337057437977569517405935144968213793550518201531760833551325525181177882005965699898375695836532269372791066695611494428743053544189415410226726257579943821780511171747028365563008384751236953104250795890651856181877682778759583007241506023777378886241944037129008893779366226273236490457215750470452900784515723874758467892567769723969812033538505698221268554434992472071625449640998016529576458265265516736097502913241402758697366601546646387859333809855286101251241012291388188830810264836785740481101284128413757451661570925554916771768336846661836257519934396887713187982622300964028752101752854864350129284731585952409057537174201420904952068825329884479505445101437235781131791809489708566062738706139497570691359763863383386378824363424965021249668466960611821428150178835555588346945758839653386695013765464238380996142823306522114909438088316700402271469053574441322200432523281066220527026524381226061780980299284574423360434470594211846439450645180119548807039342971990235687989290904466638514098095673686949472732235258095821379663480049109043540258971591620777442373026369209800582041880530110786313620873822888685639764604546606621195658556125322714604920432838917098552937083960165343211545629181029735237527736972828099816493452734267303387275586125701747653998934426489608298791898459525903405877056569473284983933378000912912205911345419940066950484955074666839704738837622663943568944300033271467976781343782993952618895289546399696809481805605380596594237085678454780247231612169620784058820847508777958305728077863955735091205340838671129237175905107643601085322885824542994996612340595296455178509114556294918064593826352991022131077527261482934123292935566507745304241164656876276375763259234971503141719190494060821795950581638741210674565087609322823762008991719251756904161605679161953286057675840068287276586765508441164051615626338129516202340154687475675779483553507109912294122125316201294470420193893429338228201353965209676337897079385383313878795014102971906725321455189824683319877979928015244517689932741876399806279942623594722084846407390869887143712224734379726860612679660473812260895510358910393511180985620797959116164773422622832886638309180467472656250443589322217861399839289777130637345496808279919153754899062840044605277123027292028904476067163525414648309839819789854548725947608421527598791690332133601799060760538522532931348814763584705354022483720097249201097665957694683601402724371964456018554655231349106311358087894325918535291410574657109238056618946895862928338690297413811685099293071496897222769585183184260533331332781361113130042509611427283198366656643308918691842773366520495752298145847963303895789084803572806934243055631458522318572046654359106922861955727229891216181637073750166225259761181974732202746282587964076583229042259587984836496396431350107937849981588839818090027865593372949340549080338301076496673914480294016624790206509826290425184131865260139284973666549406316262876174648169675944012349691885473753425498611731202188691728980106599661881025273295488282454974458437670226518462346022679814398603069037260391482823817388223466680386889465770237264617543090317974629641049958973386064783528800667707309860688529397011929243296468880675959766975049767206980215762400102984286233349517729128182204014519003753457851983783799979238765918644394250096838763232598290418950993766608592953606315284999175071506460104483149339480647834610796403945251025913109548796785795158572937062830624596470418283551037727148560338390410765442161902766952427502434720539173547822106452446381921835096277569709262523916702693355912369728083005317688124775008790832799521958411853494646656618049291885496130399140004852573573759349224606643193780487635164161862774990918950829114493842266930621588223018928793522892308892427594009272829388656283684356144433180931580782052459399169076135163331122531986311623139877084867360377886451367050499540257632935264253282738448907070724535718673124419739258948149019451371205987044842741558227981736500588457491759018418720642541600612616693089511257943101055713614619458314034515960592940413899272113098672696475992384610261370363404857233469547523339786362960177469571827038728053832805373804017418374172016793550755385194178749245458813631195168300103596914122999178849052171641455056825140335622960006199213095007458339554575028571917846291650626821508239248967276414547230985749527439365652195434887069592364966954564422741098873134601752410497455862347863866240126650271412824860760491508753800016232924617897746856041607543679186794362001122821818418027414004160925488781549174100399028658577627255560997842261389789417193480050710082987448461067570748749744085881735516120304931895510045909707303667914414384329526264647229736586948778039984732204908617813230583827109001793725558380451320963464128431816374359602700260658539730375500107329272012961742468804542217169503622381956054609196897378116551838609927793081658588243398115031704434929687688751351768666808098449784252237178365063827820121841369455994902384620943157975664603178792621919210195301739800243441362094844423195572618200086316908289040189086558968973045840788861343604329977228326491059716062053317997124865412230112344675052829860811893048234521160722626089123486579727372413238783933965966302624450635164916129549453215375518377912535023543075152723196506069011614199431467366155871601004543281083786720504894420462954427808987445913331484225006917384698369325781131036806753660208651435948471126915864594017731175824244698498896465774965810424265404776942670487112384446017312325869204791720307745093702023659059796439873199994226889770616278025985115079529158294091716488772497626152724712882131410211604573660981847795812797467442938442498152276536339853332238673738638973438432254173580903664240757072439897145567254169462808569640815354280368516740382639410842636086536214882329675903370541701729947853788708395439267457162955791048237813761872403026736731629798725839504490779628824962840362210547952102227936590579200372219016427869241547756682089165828505982636019702325240005024356577476475058481387337243720270068039284120762208908644513439483219039342541414837197439382450366581053276783667834525168548627858711395263824610754490010544664983265809794688668567528824598886028925336092991992646886820724575878818445392643948773723078695634342002762543163819589838122672352315832107708644585717005380714002947540889485281611598073214334441574874808186203659241164116305324326660640261283727735680241657849796459181837639195075771569412930452303096960800223850743279895856407441684624063169721155872558511796186891392979987071236938820728237191439207109328962590120260254966595036063211431151742281498018894607600976904238196451712974801361276406068490529257858403228479120357937990171365496393969767709609003397251229990993749541824727761188578176864675665550550895697853440554450101088840660090674747007833876119674256477362291857446406683527599202962666873128371556872039615156143882364627505002969470132823026291186527167324447666815955877447236818329668632191954546286440065620675426226860193544871130448595766927105112554532799977819769188053548663867494935155740157194691213347846858695531390404834141168538375067914003916530028714055979750742109176251431701575710931901841633039506351229389178079045367320352317026838896513804737139924490246152024145967295656769217152634433822202319818499164126341014118608106507510185058161011531641907248499137860663973928939980726840089751137360776168277787880518747590595820165721100501550058835802211448646840256790383862414335452264018166784809446787481948861703429948500973639864619572891859925497116587040521040459352892005728386073611613769715155781322317768764817877975707483099597178709920523566537976109821831485565103948459735757350875030854042015740704657475299028477719240162295764505070514370766570391331960528090396654540719824331030533005067912851272333081852530303851410830219890482082477176303241255505764924721504269947685320889178021956041030195263989757983973548263909786016684920067705404691044199200472088394275636888782630084284336540731167716153394148615846417935205106821931724979266085869907410461220984229651678606713836190946003119704011849873400902337679625811699927991346994472906378718412481010500080444501779536221510240988885133617553846990706093700145132920549686595048609336590478846173527647078540029949471310798445033121997245746463757045872641922185282643097489715800144369426742027797988151974690649656902613702585176690323239200341136746012749396362295105078921296991057818150714536939690471393487634161519787113134330884887910246792227687749691359327690263755290696872987658154453307148670737097926160290780427577220784716896803447123942816040049355718088983581889942365827418163202539375905987895783479067538096856049527718696201876515744931852288816767860677996315933980815699068849394397324047365678594885077185553450750616139881081584414715133849252296421673487508525556798973855130273879481862188612087951112857764394790581725183432578283098602057071544001099582699151270849002255320026752719059300374742328047848214790727155383320126406193111082942660075798789034065744868368769158127110231113351188933415974671926884113591621381312057244126087287448413263852371477033499760166973663472020807780377755663231237435732979256612262705776995199480507359289311498515738593254405992956827430925036305401349409000359413287307667673266631210855300804578288842520296275218419218377357834494397771331294277405560418700102055679876163056739994276523081402662493654260180678588826257566018395355682237840517210163666893774369973678510320202108891154192428620786997270943680884703225693964774288031100780336696650483140818726864888317107370184356727240824570408609391358408717945061182772803215007872306201964769762936078421918821217289897853929547292965283204018566288255381755842140095590091806454432169220488334338343289150050669582293692129788060404544068447836178864135581975712876160246783231583819774748968250474348739395616475653725393453871034501918301951717454494519867084362995301320210543836005025963598858319458503031331741823039451642230138821922255157897199812957761177506939792991828253889204310608730804459863521585743722517809980154545699666569235525293814494467710654589115691087607832394230573304083596586499450541846421836028878212049973035027807969399463217121786397863394628483405035890289718652352772455583667217706722597318796749692189417873149866726747245826587350731661456428478185521690471028309140272275734215821591530393485255740836208337792016481509041283583665456424278165820012652178049977275178898259507626833472221910309969219380956087136721358849362596551818510705750715318296579051281421768130360234754684084676676730705190708981278076364403201412728080662754194227979723185924310295085073149232034252789366044867773751918224931373047485484651760767021036888386724476200656094679911001248070845084025732587271044805039968979246932639423952153353810023028850907957178416580634385558426197402681075094779693766598329860501302050617768313543078295271535496029824616908259203151829979444486979145971772430578465719379879039090583183666358651446640973541347135556575169820564705457169306656210528513919645588263596068488976979512624029261542178055355345338526956517684256717612100938096643367373059109799684730354850808198448521224158472715610152666021117605431444170667858202946852751846177664362170130484893366351746564156461188592228021848862595520207418031241442893282527302277523745068206433759805163909791749126030824034675236908002160061890576841073752951232898742401936226807566538930844735399766775092283030167162950604304953647453519893168384045936375285634851605000417782940650474973183664807093956715318940337486504872642520230906034905811125269389260143230192952578754087500520224347385791911252611592211559271809554168338144996858255893136171010923520137431134216644817650788660956921488869711537278973243576195722915516482086651959631525429846473429576786649491316515393927182817586437379906654637877949787291755933415305767657078389081933779200358573400272519229916313715229737626963392120952010454623837789699500476877323979309992368114414992441588341490906358749690755561339791817004651257739443419980534461906999006880877239239607537313791847215416003346998628313374763459419582809920007706159059938431018362084320727876845731884699977073874642738796964822774684274287085635802965509548285812801983825801402620633165963674675952548423667693602571822082514356874476513014873417636911336299784160384859613114020794550387752366390429267804732983414859390335204481467234811398198652353633910809170978941681432695467148799474106983999980739908227464912814466002774231712251884139596654896731505213906264754655776284763599008164230348909736345652559717758490698533711111040189554881391248874158638541141879559167479136819319158194282991766875168562666121200546638959583925177527730734855164467404262923194022914362334555481490328560566501924184949381606412281754786594113441077547427220851609754164520014307774945055447382771858585766917290545362467282569306424252370074746133354994459207951474074079685404377333806042534244312642931667770202674957351754334168711359792691160440407480270289416674680623856191575139568007545482337580914845953005790055075116840754424426540614498756384637960362185326455815684013128513699426954725135133522167815536505309089083842174902607633917500598768575718499815465549259443033296868863566806390892549989514863397613025481047228952879042500245510135179866890925800070083984439276394287042124050040808316004292893324713062102777562714357086218839542575388920064815142484428291572869957159611992360972567710178485386782755403614573356852725663744803220600285890966615110979268755710810534529619952219253511564171230783853931521278722508707118202038848879794180126150431678037355394483385204346254741902942600560964404952040513453566418072873504661187381918510726569818411482397908499680676642265259338911570383114756856141842364402609847429616565501933447500806294423012257072059833608468677722177196072135424024078531741383474192877591936995219490743036800247296352943009352601582703950740270470753161112050750410099648629281078584815420730315593276975570449352969734167345438726703426381800141643068629502802083864550595371213007561254052591833929932647780419843830417093817000765294032599386032827792934488807369332319756911600567989620366228165554245640811263653105537401928954268747752368037335222785474300662262922686008105649624830546932089773990202801940510076191099583964745871539877142564967314613853292107546713035159294778204200460252425072215211684307263148607642564065268042350823865775081394206805331138373844377548144775416730926754080572509631562635557354442122538581033620007923581942725038974265050626682822813312162892545929109493431326320512695018763924283408157466093296741923481369566494747563656608842359663758143565901311707522293309488149842564171774448177392759041181638509152354583891428530512898887444275395416657253288565563513956746010304944101296480833476620544436487277643768531845910606572583429350312242391701797233926370263553898394643255555693414201367666782815891349345264707440928172173714320727144883773019259679963278143581358411866573437519533703556739446136816714750340576021410684100720794860563616533615655084650543520777640674059610165266243056703532815961715889969366772948908735507636408536467644009865923186985227459435427864495195755426182012597728694061447321699099531482976683130761235273462991201972217668702623811355476409064973099861332922922147955280658317664263103534639669358612612664801751789118079223130158873831563258466268026388180743677370326440938908106149401805678290510492075649916047363579523177454161064818226154224137915493984672815661181101346276600608839709591711895981993726390470956685633576679905140493990974877143852846327641272125255393986710454311163431303639867029304283350024594249300780485005516960983969582941640504372148945089421652853401678359120260165354341626560942018380936273183981638439878878917276808907498826604065450819295706354646060118024717266034224138447155836007873182280307708594202947991456997103175286662368128001221622601376524013005416457303883491459826261196468354098618564682728456232020861508945554762480732215546534139425159561607500658519033248766771527789925349511937073456157344861750506805962054069815645386639540681668410042598817868276812735723275258362015879634216185776696327549646099149378120044786404589626668551464306401240043088149604804480323861994360788420424692035707968885711477035674977397922099599036537736301690936628004106213732571699090084429527070240459894089426765351003255025105953420159800082702914675380103294720468769406937105559936019241900494750630660947966857646270705871884979072199182772428440839904929468604553538652716245469032211023578502665692922235855449266477699396350274528417410973284020633718593090298486829208823312396506456025871291035338093090516248482225855389606785358992400408738360937621225985532610989357112560266508801486340193292851806808090567744880353348509151264713581840201089239191933950516420351384972499470247997201351647509881829841504911064647744989773855101740039294626745641586362490352206344124288828722741715768494797632186136214369845688734726413046133457796195890924702933313300704178651267829803830945071201493591792643442712453989242431915878573381072645968866055315622619344312093622451574669058599388868305711748171302473268654147035054942051805570555387150911111439366574245364917740095620343317297738293560439288087600742278630757367064521646670990879314425467613176804786749774458128018029620782530951479427261245789957487468619582095921677944552285620386235385194343054347859095273932260084627402419814281901713246327722912134262640413785646484294740315696414455853981424116754984887350445285659858489786608109294564775653574948584485794526726584676868490700149836812776765701399845649991666325342355818789725191005384462707835728457004055230060998849804089918906615309923113759985343853451833692615851474211744754938075042133138801810880616841900641976400918476224342218534778819283947257152805051521896548368407026738863797230216138343132704343656343507104277756204255021725475244832070602486064426283526137257395811280452329677765663135565792279450054940816595262283924218207771416149913444547569808796817616981640515688211582014075549827324994791450451548667907428716353260666209138628806579231893025966310774680579394602099638368475973829010078122144699226214768676109869778676972002951943551174165253339186931124310903841494067589640664599051237328414319963834183721497278210147900375543249513899626703132220786633429061623366160306790282277378612088302958740943291704447785041279270246570658434502839729505948989810916479299347524601829338170584910862101013050055305157877856564357300687149904597214086743223552762779388827257595811851731664473601022846904669466351414812036617379349557054795747522392598651385960672646057089515282360729202911817400943228972664825194223657023377177912133549932462863352082704144300924064626215142791668037808939759443950077143609444213344022132003414931823888232772146556143743951453628897581411172794883276668775095182759790920183769907458833596738753511602921328314416477703031942904833246362405819285378958732827606467216368661873499818713417642481413471869491557093114812938576048469857030762960499949604060789881695317598719480664131165774661167482686825563671416819847723721192398944055514433287624559981737811635721185576962021145503210927344256013198139739915691017980686878138398540438700772228476492933324456391210038667859043264608141277912779590087773539667872045562999656171024748069739012376111736185510276746552433312452746053155841012411142419492847086861476009341599913116115377351169066048229002977341534895336458890424985738514890958465951008051915858388975772437892744016339043267537786402041460667965917405970630461445509655533485516366802458824985151110849356925669202855889548316210769750649676536771206042986304091592581398073658929707983948908162721831008904271691577545555303230985420439519327421888966561520370830970631526252010404124777012009408431627225651172519427490612872813891963334409437471580675393276352861600430113210502452752163238418877098333207978805721025008517355407026069115430379701408449346461017067102446730649077426480488243224061936212147172439036424383194120236151709749200889113620614602457848948839945996280312803079324845630061847167243728117465495753324206577203544251070496270315010940180932952444054479886745701486621216677105129964508889325488821514624154899487806455780542512718213725734365968610383672311835029324307246473282886324580306087843877947282076258616753166145206667239061067760528689627569197916793840558978450402144436604572874445450067446670838356966676632256194098403277122698516861784717317081294849425176981081430939523959546179169931911819473670915877985370662937640023310043977760793913226237958526892183504519421991591381132706807736550882355290884106724787045226189172302308278404994302938753344733241115919777339778182119308395195585465658689107780350978768934806311060858969351907518022463131575093676611891355071242782568050329825452471437713395874973089162873680072456994092530373671645205473696923318415178828295084923519745646876677927457594387455473377298162134832506517670811525061726875242203975018864036463087445696383433531961323619846004465135199237602097316423785154305249300156451808416356026266268108054765467141323333289004830825292472323502193987447591461128268099712144014814433054539828030775845846617139316354316873074432280970419112928411797940949608911914543248915232611277293124279954305580930089875534805495948773103952075367761081847272151538089115876720786838227658659031655717967088029620419276577031100636949163910071663568993008702784888427696644602104392179686661577467085658742211890873758514162656170403481900863947360939538026868612075489177646306113005044906227618694774024249988345933522885510411964731997900289802369845891543874483810719700086776474007505688026794202952523903948160753545144486336015767496836625051383214733000791762152473649705385444895730393642100133865243535776580964717384982770771754238293382085649314872491716916783914133352243015495327546197443477689888157890052787512902123411656994812584977068045463471750498215302620746171713896077045301903931390554121278720369191076419738672537395509525873023171967468057462617868902321286153461607942165510749633038590020088101545746453454406817315858688280271880588304485577957875254995903562229306783502008893568562569100851981291496594327171040805116223736606330412908517835057685726253385502018255795971774320201392820007943831663456883374250220548145876968054687227341667049725686521311297673491979886531484274353966563894678310463299463823795338700962998141764002379994829468974984824513040024182131329398517357358339664919736439069622367769575951463996563659776291045612323291377960318391652632630404365500309167555662886662054093492548614247270038373387476048313961727646749631829115193426825777334370554791615797759605876399515226184315454865703960469374272505403740030103630500786611737019058058448145900445335855772801680337286731928459147328434385810715260544658636411065775967121714321405547767844340868240671111422836397975512799658140304592882198295473552853153928956359483345900441787405999464905604903871491262508519094349230296785737573939778953659641514376192908740954262547823140050604501821863491060174708221777550196276059913190556583843932007708485481642098995045750961303155281395575232723134779811865780095712462209180827817246746082206896441489001668421683778524237858529740352355150597998313131543349129980378370174696663612892532931378259930504285853025678704024713290991278036974424983703809235669657636335268590150013067378804901961495188797191083500986629935579703275994347925762533042284840794778784574712754053048096589563655429732963712476994848507840843564212595913699444179935017594947554705781475125459994044056022130351807993637345058365408472424617069102371293791064766731576937753464124758738093501831095644868291333573229677439980885616992506389799913128240435473650248828058242799744029185723408004048563718762407185520085080999798866329997877976232838684316129235641304254332019521196300704691470820316854386845716110590180003050904853652197701452558349005597997254562600903609348529201653861556370699520807956269642488362006829112798150272808540578518021555018991238274065882216653556461088087954513561659425500698659455858077926554436812875879532966277138607250389621267644630958925050979986920213602121916171513657778039738811412708493324081761782234614574365867762853723286093934227945530504322103948651786320280962725250552344281149140980812978246892868109483824830156713035739047696187820602866889321519979292063465914135489070044510153621679328065142340273188856701863901652765253830785258727355607486747033805244159429039057573448732727820309558993981020022740284796550547017569367860513056387210750517995409012813150349728649847940740074637703116421619811771744139036182406876753627320470500165412509323864113037715164733029603616401591179942047184122354651937358843395437572614715860598527745160505226036955961301266409379560945150664851085253731726467301997294995204830043832399639446080523873633997174644198804746452505399402466418108517681530613957748832727059985401627144538411814803702115658981302336481354810345739648768395080832292836036189868612203449680620950259129683450061010660518586910005453916883064944227574288422180060622881528680684274721411621969892771496861771890598469955456343778659069441327275673260993663485451118810321592405611023557652481241004007452995639908864216436898117433381204348695021629368630700581711007740448783386244925644449862111985503880580587029108114250042078433650086767186636335418156183847171591392398851755717148738536437895253965429400082973770470305050992231705761280637217545630048419819127566450559696183125800787145281081801120748293664950286865386947177554139449132732958649057867457262604551184512663028539858448880395009426780854802520000509231406005575086466326933457292452690212492356088417437084852270809358719787808746181142639826322797305983009264591909331760031942071884497361193994045428993065167807687245875136240676918929131639413377010037867666444614695714000226514224271557428516888142982855988666984971612778519907496745771383706556571246221978443089660513954086281301517147374747827900044266770039433393104131074472247788036132700050243377856001503956043075724963342074525302926627336966603505977321238432812651951633041008323964447193256955401492099071168842224590060449776468047621367509493036155504163429209909220486790875703944234581651776704936656360034085420599699688853039248185867195322011886758471222326931438398320971687351066064778303327389278437025331429223531809913101433581235833154443447951861215755406288370571683285956135809980226247128744380501651635602719417551909844960025312304556339417451397043046190704019911232295398621013362211822932325818369675033059315680805023381734821762752371420322415859451512829403461986017099574187517863894569877592481625741880172188867999455481527704365248468050473574534421299024406531173023246102034941235231830932006739715178394041829270028695752965054073478152225532790699144729035650611382763813605079098940365182079743132746538344108824869377705950899005241197063247707657300726390289363379441425921461827817074696723501552437357219924874910434891213996219572056145214592067393958251533233291893781241748516233638246428088928091513762979369026528640295322476292363101572484229099904960054956198604233100230127431445599132036415919513527001517135296858172277571300606919627244493792198207284223448657754032038781061048905726336046330341078487337349803854424312468054684291094631538818082363076428983530604927259155069336502235175945414023717790038668160782541811610351282422441830309445580434181378053040735839584318528888801591448545607752166914393737628508177339669516954188737615941446247845960002199152285771708886302670040768514881693115883716337122315283597792115432309499711846133391950685996101740927617544384550061261714720666861302481017871300235255224055998084057157366873961571760835861707117616700419859502012131437462607889669258513586271920589128674003369833825954341284934318194579326707277757976262085895680950943631745523293736952500908180042962255119188425048958339834840770417166370023517728874074204706944381080361958982986438237608528021696531262403545346466365933298075612948574341637823187847104914276156601003296663710612289889787970662102259272027927819861700574263167701218187881944733138912021875004350570300215262946061244221726080045977683961115727861640706384523527746958864322155760856100423735352435946866767144974238385455220935146163303936111391291048944879580532428130383962503101673000993822440953664001548845002114355800872224311102737119562053307223621026774587708009696484720825218888621151891084180224181993067244361206711503055751132811191164092150426117607568854944760775160298435478251042435235875150487093804809058949645039737613088469277478691805287870153465733292476521449988033579312878901236337955661141652525014597924117206642111963132736172639087188185472900795082770550551832181642046537231297848171747204314411707618956788971170538725431612742830423585297792633590472707237120058573647544198830855014765960121428500255924561754893212746679177120966953522520337792680867049431459142620404003972290081513526216925637564145819969809707240468836789626936711811173695810844683453124834439000496929579137985734141705053652994886804868328434471334740671795170859995485681546832946575457928651433757666522197983063047781053997514292109836331942329533848645970022324709730109362387779513600935776309966701781121248948560875397975275557277192358901389491259659897866599633647926714986452670057665198555502529035438025286675257279336984808499214627997462349912877476461007294261190787766286338073978759421770833842641851469951777993636538983324066962032504887583828603540708419060792080932142380678611313664464718777427531691873955462015034839413043843920931460370358549006066345173650676521244800258385703189652501504580760462817836831960201176873158031397762700151371047534746441952387201607689080670464310129085200147742728864434377272531483380176403125106944623837786395583158796866923117307889727111569936899614694028518585457052389257854066251668429340518103636058919098222093585485659989159441017169055593877665062898220075368117755346549272472251390704583277244719672422862875592031819739727447265236121895454421370597611808963604607294684650628550490185470009358307812395449800804348374291465237533181379407864943242409880399309401071641999418183604264595608936845893672109801154551941985300677654543845548031300399826404062929953783452953376321641891116537165514698647782872000315704770612471310359045996440132379311436877857179715905661597897291839555026230016907714027445334131446160964816494775394363810237945577673817597754148656250120609987376923449231498500068096204106474391875794327759330910772670712393473600632646847259810359113283622250762980288543683471268474744312971096920178908955417293517154823734936439656000236236686778224011842862456809606345193586321471144968663927501150422607241179720227486069386383774016163821822740669431999633886938417194514334357532154091091356128486440676344521056083362978380193930089725829761792066499879539821044286499842306371443357478166778644987691040748811185097070782336362718265271476612264181696661668658928115006021035368611549016682729840433062632013373889315866039661288816602285766639574809940569789316801597457633920016140550448479926676063360321679423782596093928536336158472602654278300944502327949154621785105369894912811548071633212841991174296381094698141024514890708201486290660957284476859012345640691905927559626720920627601206416142090138492139069059522024057289769936132596197964330199386078584291675701357263355923936058324602061296352503658808283881098261069981589279501255564733990971161430163414862258042371951622368987804338543944838186018323549463404853681786017989061287875716420392155573213476998930123055498340170477712902510331904991494377466875649798612980167883051267354042952045232616176561064071862074208503627299499999713092665667179062982028555330810239035398781405482097037475721268643210535477847156575553926665799391892286493752048515000783931127202150305140711339414268844161032240504571527586573190383819796002651668178457796969129675595899345144711867010677225034090495239312491220706131508458429514972923271886489606692836903010513791896915115156024870076684937960951500138178136064477160670231433737395420582017006170070056913085999942373521248271174811531974080633027611182317936376688032251666053959974660147220452727026679855858149080229374568999648826383823509583965106970153682934611651874178431796440137261475064776248903581421618036245541489652996586085863989282165757368005301640232406917153849945398634875511564815550897773968142685085580330545149000520883499749177641557150096665293064348837496267763490563690000925466505115968806727722862884498186317702366686559516162844531702456274710951940238574267191453772599453793872480207980701262144157963854270825192377956103930781886812823593202845454777150674352461012134388499592163502533206850165699636959218716982939381330516026872034185135083450609423336671837875884791605916816739286165511279893120301949650091443039361196155310080713091255516463013836867081308907702602252830228888287620519210795415204162318278224777593879814684307281272965765453735491726881962762821041194568880796924638563601843037808611896014256004529095677052067623217455918399316493618756471938008112174778583027684674037700226579487135767116301404973594786525675533326302346683931365256447906844562595154591966254151801701678111260263461818629183293834910851763496959146999452550262788496821537491182763079491387173848503226806822088630827526912461320097733500802744153126575275693725187083265605167335365043007180967189418414574612855711562559000510607026537465602070078288575642560140964456158086503651780124572610843531010250443546818979818916237858012101242718842024389241654191545511573780990989092951036375376501279767512704636722935188789078748455428366326807090033114650699702506067989391418227654420428207827942534815990528230761216526356919641870957764379217845382881944082184985639982749983535576068070716168763475626789470212073963045474575037602840041481664752696843488916883775633840576290973975051191949676911792969075155044479400027771684589756616641624499452256680360314560444591663473399031910159561067264221205049315089184076083442528030114545719027810189921374522574988066112950633489307946694285789226494999639711673730551944441888308637008032281598566504799316979837033452851020036537535975560179122391450442836607147203943989148014370858780625159790132376044985169587223506825735985974111703090144434713062790630155622758728680494875890383504170723286389021831863025547121715292296811959413985270645493485547544628955097671472821075499685090376142088663271494241857373573747693738937547569166498219873916840474299089890649207032297537826015541737364364350803493282220358632682660472301236789818477508789529517595917947442969058309405383169140157767309082174969547902892627641249448578500583770113885102815852722624932399983315420119979916906128451095984424528197394124335484897043313410008272016618693305750482904861804699281345003568865383735842692529994623166223314237448664149454842800374168943784623291258127429406784803471444169734107526041274116267700339295618803327403107640513276737789219692255924106752186918602892847524040980566918506879468439735220552189885103387785318100642041363197601663659021958340293440916703225959646351544673973256254581212424838789130042803218616390937677125355882496989070441879799082978206621346111971422069595482935164091537281137649772598971006720551690759428657617551722619716009356159827777193738653795291767114804260622926444667293178679969140896546885509893631059212500651786693548611700079016041615828276149346095888777336801229022053015214899060464677849924394043543896117607491941504478012416740068307702178754699396933168660591867214110060223017577840029464571838358887437528486518119330400414535465469788431172731355598799360567008143376952913129071376256168026627227148267832609565445027310848457863506603562150539541090319228864100418983939436376088951242482248847472035894346677943628185552024718830946936119923906161616133526476944486951436731023383020030743360223049778100077646408381153796562649480737541190798525988906208590240396990343202997230932001032293685333307999722095311534722164337160161095510138938885165850528763190099977978614966006766438993002245720456928746720222297502536338600652499747929307877795485353039400975224988871832422136873162591390985931364718692990764650955035690579018472533961983806192455004768193445910585374915893510854790503997049282970640379861576197819756669903640372616027814080593528952721725101347297505455323974627331696642184685693726366076858681587500756324937413578381984691473905680496921918715219370572727448655584478920436199622729068129609999821495108320122461121202769651788812809467867554856423311136497773564330703119587320386714031033963765091852749559346398193822101642097118551055988585364803878367988991319759540262365526810419218182681431776450159556682823542141113864042153062701860671795957136963540265795447162445630202509833850931482628389053236046047260558918163122756373637314285092391928815874466893746397403837971105368251382463177400227629057246433886065870032335309616881746139538248405421821693270402706447772809687992957670223362831542944430825068377538856390125168596665312174981323663070099364347445449691893625796831235195979244617358528918025588016251280765237347068137969568785774549306079299941844409198674909896308752771779706589673880764069347257207550586342830423076819336975287491484822137058673432183378453982174013223135028994232890762785373119491964672973298817196357977431290773718728218980484831010502933722741020004141486385538862333818509521440229789467707410035070902019628253482008306388777762932728530080076398425508692151294883178501872456193404466373969212323038167338668257189508449983976776355870007750375967522191577700689491551757748333071694262809095629790505057888529152779797367857519286963953494378686032376889735416280355976044596841154178826299817891815772938026514593257133494184656760585623509191694396167301702676130232578199234961247287228549215457815284393679913078633008365600359935387894654758244114544218918924042585558089071006500394965062467410325850607849542451060212335463426891393510817260913036516291486112723142769516957034543521641971226254215868186361616343320923227398420185106305919552441181864574858828377740077619147573349695777315783227252069097454263816526084102365509091651147004828532138998888370778511335970695644319104075280455575190321548021767303713844679136940775800266065942388274695644936034925245062877858696667407885504814135193804443955925322107147988791202206619441580520496110488167037927031325634595570679106345397755517308390872967838631533798385177490121210567666475844993641378700153705507230691341469258042550799326191067691313805970506012348376354187239164500686067927059004347602928520878589248011601006893766691865498568383652574904557787561677587235524302839484010486207046895284505937291458869900821889317232359731581733744454944174872643274241680170950811947937872043608935545591578459121308477098538011607155078887009636168372989854740630688865882791768667225110535169162840185295118109277462343661844006903636525931227885566262764354068770825654275277818610079237122590552461569672302575913884388767552576797759299718776758630279742965577739212742385132541876669814520727914051279860010693564522034313160433292552884489882183601307417678803874395850563012406471223831503980464104027304517454418327459017630426559003568835505223328763028573786695714341836972797742278446115989216389669656926737377204593404084982171084036392293615962997307948061889553987788476096655473798406691333440857637904440566933658858467135532413093972258112628288916464496217944776682124986838605470634977613179400248429997480492470968955770924639380472087932980112587328145890129674968969763274464003198388098756313801862805254277105859657832985670519185899709625285721190610876755374182972558775021288517410575235441096519515594609345915660100425450139738815568017997995126020429930176191411922203529201425866556431479964119907206800627511540210501511113421964885793052823514255342002877583836301622902239420591022442818688594323485592790476445487783379621932567467617591821140915420267250991823175416959007237202209456391122404572602825430684923105784848341584115180354413279653674091341363703005726432545498103854000713951188603385280800337492008630307063834478238573605474611533118808785084299781779975951359694424717316268252785936918472572136933035086671506010735498327165553593187021158480093805704080745526378909845677509033528383369441700996771161334037867072901316761295943240309029280481950729201202572611190792971047523408745080524497972754144967828075964536564015487315030136320705993020197354875270990185934885510291369848973847813173381320143399159529652389141920747543455912300330971026912304614907604287004633630679440695340782431790081759523961298217607480145012869047530560025209443495522777248560812532272214472757710397557154233541765256794923372844854782325336746533568384715283290025767735655811598305017414244068753999748709686235467215469674367010062998356372560574913117216814671970626440286976093809247649628181873041435717497199981283754514922510249973455751726345208366665845872079653575033584309799368676707811026927924040216465507498782685004990241700110964759212769066724342289831644867393504788822319374023090669817841599637002187350432832302932026757573169572389711319908184065493331424102684434224764810293626867666476539148625353013489276024951975762672096890245111812445498824614931483175970847980318173952030132756120058607206278666180707898076415346283012578068033294771002268334785601246133439211654920004916185670011365776011575887359364526489343707649028010015684975102378900276334028043302309926337763757124961082440769460474799583572088171207595306790939761755693838309206373538903936651488200271261044007114717756192768904873721995539431479496303292418034830943484673791715443354827058015510699812825906271915593665974100212517245135862466852246390966557270632845721659484523309294012095689583685599206967885643062741525708296877489631797019927042252949937874652140012136807424534105037507216120291625761325448498076119289413698663515431935967521558974144528903536196378903865216764230765879267618768710642748929722654035602100917043554094288881067459215970512281560030101261253804589473120855277755667209255505754838253082979807261383009128907355056642759439031873601889479715524733014561556278304125562480778441063383489228748699964380983868201400124625296715769096881468028081805720223583033003802121104950072046080713821873600260190646292207567678235295500865850644827767245339541976046724472415072880553948226118219480841610322651011909987863918089985627476645739053900112819542124674366671126434587850943211941816769420369823307797147186645946796140313191415705446627413217053583896426495872678601511083411656098566449908787611085936665211005299803230663035804875762091434022768438089908636058847096943878186358172232532946850049263657239952663069196894558377145760961458147789586917357224656134681124440204197396653002210673045772252821553409574225926015997448193450853969563095541485265985029641186724934760517335774997121312969415699670207023259992513553722501203716323809499470369815325198898732246621095125338658207303316668819741117177954973042975431346443614752435509614399517651794046268326809715007360216641256561939768307614737890006319775709051052713619582637296068610903338496981013178371925508013707391500333411288217084750016230384266763917685615689406418730253148573677780772255446321528073163122842093852511824451533159938077231754238172743515434653799608921005437029893860325792768231679119644656688243830834251093808399917212489811658540659265682728035454606678355448743428328219604940202804242990952427998881144714860960249234900283477421695816743855862618265401764307507973502447045190823145268164891831347198138917185693026993721636261282361814023587730147554150116457714859927374742664183426647028942807796412689740333872871282968050874110125994150605402024378846791555846048404359338157960976354416624394986486205356595082295728422347265957370086507751440124699518564538069092532414690171478752724487216186910389922980452490735965087528332716317920919780751426437025357382892665345093885418548567551184179540565581904566284779957925799096568910104626144067361423273011142802403302848876790434018558041043042200443683391533239598962523108587273904050499877136915524882506042525670679880932488761026110300268198709389760984602599585843179164621456645443854675490957100657918543558733774490654471574868184115537195595395445850402714454458626356227035831466230226393070770401924528356100195124299401965282499252531562649479819818545872832689195354063222548935360200381417582361534998249668322005192405500146124168187233506338205468877753323141043076764494162324953372718321542240951274274886657857185227896544682626160145373522845917580056653602356815813907757576298623700419031943220109586865116725582685306083802495790976670541308087136982105478287073618375184777644769072567083362652348710002805187005725661308127025626807241354188419455133101596272095736351167284195599385529197485013299797876943613861374564011660202839121151661473260154698982346289674927685626586288974612853439662605054434535541801931473489870805824324400704654452205125132523265149225636237671651962778203653135846096436496783524318151285616773193812138366311660922281399833643906508237123053130518774926289697154328300478099621944547624406672724859743105096904037356742750951056150508543180914210669756860386937938821219391381232519628211506045318518774956713042005537942175874791981861691254625271752861120939672758555158228425273439593267061715278049707976416564705433067854629519590077301397060483270941148460819387508938048132495974570168990329744143719527963327258653216512213632375793146547677150046222386944137692989603317722968898249022773151101467335645077906348472944479379243439674273538743799069989804434639160629648503566374543563946968194216627592118191632638265276979552863131990951812016022998037312515252259956723152662101845828681100482046348164831826265928718073691742745988810004901908309981692595599355232064077781501100493709993010038247395275585494376959250513750676199209030372013980314880660383007726187166186424563905471134279869844048055112904574806795696523808819782805612836082466540402717578221911520931245068330170397574894147200102446949872808229492369510494920437456575364737295711919062694071962989330726845361755573847797634531585291487951493332109825006779845966692052355281759379121665707090391824161182549375165732702293670073000931528995803719353808453098514313516003507818415831184210939497286659122454790653028111983396860253465438842104998061046541565790798137919038715017810734953416232131764433588110220101826384879560249364485617631682467146803652239497427323995680906805453694352342164935982323931670037170909215362392467947915557561711714906935382414932282788775667898440611063505840909902879734933358027628732565671134040010262175259792832565135373362670282767158301939346678709065008220250181832308367413802190692173759068365724435863689083870247190485742590874073740197103084028849188568768591249344808702449431713727945896153769191079984391430889750216132664842911909992575661058106252866694010220627387475631156732937850555588253401056465889987829810535120445650177710905591705325520984704167593649466253004497178783037997824803820181814738182902337558246449700248346668119699822578161847996096807409736866404420230130293286418791816410945834847267136744730366717181003519304688141083897669444073292873047530460173528669281980166095209116701814797822998481952112462551719490843572473168451441948632239609053821141730283811526524468070288427308368345708843358970649888016361719789624263199929158313789558885205886192532861634032670184455831288155756399395583437792048690155824461008145410424417515740880731685992106739331583179000712840272828126547218388504247209029664467588771477391105380157458865279310627712282608463950017590707608205470573577554331647361677695424978119463986490862475217060277209630713318008168115828425892308215558310218757402951408985181583386216316100238640143517556964396354236289667442954144386593684123184147985095393179003744999208358080829086828006864123819120579243164664741303795340631205650015382987443585005786910241754657661369570443579028128748152035765632332195424296083834280251074999522678071370248853556753277711021509423363565927290372545495227571519638533842383769316291205043992082431459977855362746699280980784746247312851160464714205038503889251480621736044319622666089129456763995238772962267765919988459957473968191302767232180193995833465651266765646148535808343423922090407419410029280288730095101720938788643846176923183838249650288450567524982847740706588430131445688232908752671423387540976864972298275599674389877228755307332696508518201404344596220543572746551538187307127340242635789570309429887662673767111151146034781711752349790298129063935394660114023812555825956454501110881092677868909235646075944397089176568363722154638465833160580459021145866401422514062753422602476591562928780219562867519971821842206655106377982860002407080711863931255969734639955315762349644965725225403885165691823227998988318060115421633339948644066349571466810139339931281427099667221712731037053867736629526857783204691851143963457554543929627717503145247727078018497104127518408271940230150803047575745055117781858490198950473906891821067223271545238397910828297720239319135904534760962548811144535477218709509892134976584070515547214234778869439819855252848212756937613154318695799927026229023615530205115595677365039430606143063332116911606872926536863920032219427812244680642541587748746638929401378934920142245512695025738585519366209609046656919577285965577507164534152994606061637870059127943232994451028717803133391444066523104795962008681189448107075900836810051448000534220425731114160045867064972453188751808757770810049578127456869174001118547695616752830648657582078123008360439586740230141416401305474016691437002871874988182530160038858063811515696657834101731108569953029898911233951112749976099597973311737228886509500387702329104876749799371214287303988795458354016603463401869315742524315435681169285249639875092443698992626690034420948084261261289064990854665297233780679055774834946097890706718828875244603036697905372446790457998095305058102384035298572265000057385689519835105692505765948217164999848320217937806536975879255317869098444133277885580215244750394875824653935502689384573539907921423059451193491362623071348175052045002420432121946283340459485208430403172183881433564508453163728566895544062275159494386763542456855135695889579104986398008944804547729572682056690778528055889119147468323594374874487286521808828153716489601897454938010468989952976075256135422172547960310461852772459751584544229175297495146751390599016360883888406564245736192317717110780893819791767535606212836959146874803168774004006157991689046741593090981181152550136828414011635933920968426131009064289261294732167920028854830627710475030505654169954769329839757389446566033505295170312700598559927192572407985631241770748138200806871280979622404309850666914300466820197724549278000787457769777137424118186115790111971136831601862918440460511136617568601355843199390188873264531644625828608629622218450410609595047304290672249968373835177350840346482087057767339561959557393348236212988291218164647232181924298753256843096272740900156678219793552468630324799033541459222853513722377398312940129555387750670767662287362702639993337973451108746498369316709482590396432015535714510606437572198871297906120852858842468624412942912015215311057644408024266130728719247136799347831941796638007571625203961144013984670927892597406616133397983067424148171751884108880805370983392843374051525149548333260011066663984345645662478576985883677360907388001799819657287068812720298368586371055198046110372266279792928119767156242252409893160070610799492018832919650077472161853964475338543895917655539129357991661816574683800433385104213221921205237765705494001543870495478975868338036559491749864400259397359232834566022073961407485938042381474299595780636138600205969779985582179693797364411207943527496517348404623724230990232491948543030389220413366487125442842475672850383260923903045133085145323435799330129280723932048129185859655591675115740150003262167447095415532058446807064296739018112521623902270374446804882859540915156319361041845184498860052168827470351850618109544054371679641761223551260766881150926633131670183230792876506787053793417729417565530780887139803909773793392238149278867269368655224492922217305310224975788066362032533393077845796321835196889689442920697966307165348393818919784253392864483579935487549500340249017484731095112769320428026214622613389775909834753841018727136073807253346387292659362822329851132766368877992512532265150441614975904304355285412290044583542781045160204585226329914089403430296486444737667866539656401532030454998601137377037460621760412087610484490321672625175549987330066629358968637500082428909280377450884386571434629046730914383117750241071954005008506162980126548092437613103274246378629696576197345772731785134421365156333746313156014869976772239590834412215385141840530662937631566553588782852956753447213210501608971102600017416230986478755651811920805214427733704054051169373111117566840055080358809742816809704727949894085223981207405471615378449361860113659894127623761831059113658016693648240552671001508067863301161889243989522339293681582205143463205988778747893302239592010180982281746293381956487494349789202307992989019183424348360270204035331852651831873663215929849964036888676659280836165465173498878374560371288209863444668378371704896030422401634780811244583542435029010509223601995268147006843776131095106001116548656221412732846379847088986752151759088637033279776225347098828635984012218457207007751839545395616229895058584988057425465583956862209182862321550261384249795401784554830327685508209188099721376114497869671254960218748989252722674415842259211214240438850493482586566873455481465089459791211358141385108263625593706420060930034890709308987327351408092147176743998358958464143440233415100746055264387596715607495748512562939282300243470204149293848532385664688259643767126675396467496730626429155400264907623651387013619154811999205959939377492516423227659849401976540369291716612975523956222239938358528022879766729856068202870124460559823584871716906800543198794670454866059846545176545274221867863647230757426651788929935685107456054969322359535450496722898478236200941580645417016543662013042538404718458274446290440176971260149473680563825171517277099744100002074521607430731506708655033777075021601155656583394538294839093968584277563716553774731382168935449116639772179499980352867385516750203834073574719447954336162451812594070371718096089978895611235958058347585016657214736306098447107261389688585201624776912603213945561252591502587669360778999317479426773968303063984858624252053607793600088412538456987864676841160190853256149388771610709496967483375482662235127129923258352616939747589228518602724726179307928861823121756352077735409692053838653682645216490723417881798912101648375979425304700605417518097139680513211770132461167897833748452744289058584639426963445389637070171965152993042353932336406731480357232335971572767174525251518057937994975013722094223805395326498952422162353756128063671505365510540774998536248716451850142651637474824366592077752289141766348030216663861354763587444429892356031669545693171095854473778325660778440054481322651877477094628504109351613450886082682440925625814602888514097422918884676159908716463013446339522172966814960066515823543985321246478723652469492576597967463202331993729828103694031337498988220465133262636352104597113924267498049874970912901031216290128330619934342537954736529396205831716888624134688168489840130856357684828641568592493449866586657612048301430024033953791392066939417358083321581648259767153853783433822302430696626057335590110868495038047088049895023520606709843181980501706741706220096718635507968740887855087268161890993406219947120894207450035769826696466293248357652545740523810290348777842798247231488568535561073872535566821718458043584891113688001735629339577393920282411281304173139869080477957457216284737463990340687801899059287932797770364702258907508468650325951788714680795068743626054292124202836263222136579029780413035379655648124656840915516377603400928688314614702928466502699480301580342968687287353593996166259704425468492687022626743262329132109323609683039231355324987268861899364569105486091134030097740553582560460763683463182459576583720493835017094443381582908317968557209222590212043630682097686344761459240927874326957547212932830184590119197781780808227676647381035914338372719965777237770384758469068312441656765709059243850027328192021795586744341983647429565326477503616150793098881063157016346091298679366966851835806539024214225213588061969860828936285701621562216669829302810793649900207575479019461676258766994028671089478099056664808037528939411392890155838121789449736272430909206962550362057107908557279080484334168979854371886921730819794518885346104976730682672981417831034299871179444168433892837693392309096158984216202241349862240859852072746722112784521943444726423738127839429618284756084455702549392711899416614498361466769368014313149309817765024257877202251915340561573854991555293102601657861399538880368733839784447092533667795104420866452057609289418011016190479349528959090368752604407285742610886111605002787034421143905655076451157854025282844321847322328643731179123281629662352328876197992151383891659103496006419036390110388533131318042241819052858606334363457763774180683584103543752709712966795159164692927685156432028037921551487948754530017570591571935837366003187656881706845260929855096430344280115228417522703370341094799946554390338692946961403258720960728520453686074595705633309654362149294076995016610880062628121923746424303791819295247643718714872362918351911270247098800445792779407916905446531489806448465351518488207409904952366615122730393274880388923221623191314434624167924311018932061709078668406068337276695339470427478240694626843321980644861988956022962652656508715594096457412938520265447494759194284201068398304548584209622511400976872193327378788509053485207444867378353622852044534406024358550341907697284991142431103172888358870810882222372948030599812106472260417242856653092651617318038627349662952572023936883164616369771853609702127931127605981757507417543475301316147298340002426093468574465015222210629115049407099832481357624069458772342095350724611496104522467745860158888050412059647489557570712805327639071488714181885498983897297559009275135413319868068898949467212174875704943586386713344748697802233585672401005281229945608970183937489328766369573443981572451566194442940718558300219320927083020588584344633834691688805630019108647122648645101494231028220576696587891942094673551229286272206400471793659592409031969473692908179939506584097310191698881669774562290364279765278186073320978726800870679857945136988117866862298538386749746184540976040513992211268309820574467305726248992586423900087336718380725292107467209187830401295818064659826102742706907079339062873499344929432961071814568925631839491432105534417606912605962442295203573657337657766909601586002537590137310216012469738453258432685867434711656391965861090336204030381590333396943420314807517964830015345565613541660967922657424956678862537569370646355955793381220376616757674924669033467296146558581692808918825137909002240058842114889162533791390452267515192609427064425345859107156488827926872551560639229286949227053966099326630031877229568120774655868688056090066371738461822440450430101289220184489043635007799114740757038066142451052005320800343949301956309317305439511065892024632426957911318451823357080082812213699676822142416663519662686373711064766027290831737006198294203180615211769105146219129844322751087647990694314564447944881525455791172978929825434737573366126996978703527237902215102604651423405347922424862914660179803750717450492834613137460929065804024970533138445852061032319571423101209529720157128868977588438026906789139709876568417180051184806229969165954269593562345452722765638536149366474978478617374233334318911597159463226203537091174571376955146377642523133365384782019471454725117690947963891558907403449071058596993768251196636515638591443470418057144824322145640592578195870014083428381098354495805693037469037669684406280511843931927714560796690412243024294368617797434211835523420410439854579335418167981266790005498954046414531568837174916780089632319033644306624386363398859070570746120624343978097794986911081074028361401265533467324606250500160060096883926021054121743137425743407924513237543546374916936901115983110195943192616932225474403793305678314639407295805154734504935941726104567819816992635794625593009832443602094777214792383917400310545128648426577202792107060313998105785302660324003894560645584084437667034705725544898176526797219869345971065080206540507777407489710561027144458642616815915257789722122264625310170917525357565106574486946706959491933361761252674336550981572236235542608244182743301448654279058046288398063020147139345460840257055218917514119890167000126925919327785378265826993575059783164287598241061318239030929862467754026351992728183039851379794477678459276416253522475890788872698475895830535914511016832126628632082393406153158715335086729273764523372745020095288047215238260471804415502468070832334146373520585060157786781128328314669848762086608813269723648970330922465182530369039345696955039295703664769904042550954556373424566374636018511650132841934895874170322830329967769331032559894071062908676518650532836678178991524880984673932912803882515259644478923779460614412225176152252023436359937858408034247610054878997473645195558399161216497417489894422977403389933144837301765860934964996626995340767401403992279568654597958670358994848274948057727288441723881919297018400207865132418320882105754991899862674599166710786488421557583513589530103248072881352436438226795922265765505016632492578091143125398185895396615052797063235031691521135185711266501353837114101976318502190364045514887746110849806855031622613138081098943376888176545908489645023908235564058444989912991458021220219820765106880171629010713923658931652713807742034392026862341575704801349303392263481532572327743189778369348286645324298059467803553402814339065479366112398205239302883179459136680711824468619365625656808417618900042863675509068250204005857453405431393450402573396705373121424315287823272760741153310882961562490693316699180367932986359064643997929180281742901824370752321359924038008675985470867324400899075832095273695158565215506887281959031383209658017308563546781360679612027223178143427636841002055966069229386655032421956048001758657018664528945865409405666295741091553215316729668450271060527903805671299814234383322496581247123271273713568240823631751073655747181112855853819994291632873512831456114530740719990730720885453881780628020663353180714303654284353956025335506483871556256500641623183137021379695327964409514038665332902143329822559599382991519702928725310389814580779899781655013155535885994881049453783259585630896475619175058756230340192773647682296741639896073554518955283972298784146295696146038594398135430083129051769754039348099780948114068216979524450699459124837930467983008375085830672908254066883951200501166893302712893400880831714442204471924329415685307833157310851623901880030131418667256530081900397015375545281890618246165919222490144369633021063564373141656370356283799290050803385580556608305442796028411847737817333659692803197966083176604911940461016182416979056362725079713650846909036856060257914099374379907084992039682683166084340094590889950132311341717591811881849083294617860266958883681405975311189196973494914940256981910886054400226879891794742424182831025736949293187693778691776432877749089030718544422337210427946809716717391866328207835221902192946934535314647707192901560236524403330358165079644991495677280765943488194638290638537366260497954389628586041321999243926488352005765721731592293627290810578056033493534212366145757146028919848133169540096741630408768209364068322472833939152051819343060314909012921230054645030212289645280991326597590243019073268126890991956968554081763683385444478300151315764009777937014499204648447799333683179839765539094445241908183503800430181507469004271057165924643487055367321476991362910313904670587306839877051842201109625226897335694338770421549578381557325358493709965923217717636550681029164040192576424138541860785137334578315027510108356845335279934316639355004983124789924892424390548580844629181512980598818815525945320051525038272499859871676828032948294589998604934572176636727562417042232212797583681800060488304962693191558092369015038870599524613166340377937019498071790115315558308447742081107698150939836198877877005480296457462624156597390210849045242457162631039885311438855910428853671165457516463003799704515316284086294480465180913551631945439865916188113448256909234645354785180127648279637738396482243734841382324636043310520331402468529730388416714547211456116649236761170707030097201667582935918894615554036497773975144247601222644938854153379567474366340134136169460940555996181178587184855171038763308514678027971907146223621941210266940626542687344753798235488990218888966854408676516682504735220532860292750198826698997749186020966054827699828744996662607269595907906588305164753023607929169539470407982198528734126461238436848608627019183548001743325752296355952153290764091957847026745509519037656488026045839320248003985646225123905976601496776994410297633259647386620684773360630865114260902353126162298311675261558939469037524796643770707768529598422753550462555676205646126827454498939853036638289912226999701960369574556260521485565777076925224131535583863156750313166975883076311462445666906878622216748537085126612017500367195050732003291977164586705252233697710662965946465079694391863336038446413587343756883736635579132041846472093974876631665217250240721879114859412114398434031743081810767072725063401601940431494104084288456320511341780163891777407111715180000073444711768635844661742300090098551211316489991756156712674208336124024470545659314596542334433029947946762557533779207525510834377299931936267232666563973487871011276167083288203513935106069101401753231972002076962151252227979922931449466868719483763827831178498060489748938165963236080163535915808395071257497223794272943308103845993607555971308741672197421878865025012164758633014504195981801349511533564880125890669165532642473128111407469537624845074564841146965084176980916730113239029866258846085874328255711657569265561118607407695988275385304374401927188214632050916894937195902439620352438472076666629349802592142765529932480016538783818525018560040009092094399316480796460006615956331596999506401061980793075551313937350382546587879568941530602399379317917077475149978583492301692920149815297639705050455192915205165293775597506787482181841814120200346121155618908185526040978472452282010958607043972701590199168800623911256691388557894264885764400277909201387511152674053395704262448843018450256697528611689192835146059577550625813850679827949517981204349950084719127180288998364279808617098373846058801057460610371948223704484999566428005769179360637156695827653592480719629429582008752638904324504898725281309934504344058242927025321156131439568377298059180122101565792625599105318153954692822790489610951397154214071069068248665441038577464729988781117007038909907323894726597819618045727519637020091206901437073112911787410745671163843369790093998559704910683092660996551118045640482485742530136730436587127396766549752243656319159429872884678151863249948237916133405048590039823060129744326055860841682500416827611280131286250724011243666367755089947453209546028888313009880409586000169848810689618804746056062814546468434477102257077151637345015544103479545722429469251378843441523683737716129429626334682393538381731564535162153857887807162309293403168629982790476131277469266268601733519251941453439986077846163245351270206928921273489182932336129579544991910293309423606623000542270763527500129924856585829400296460927276846694320774706182749315535505933495429936924290261096364517442990729471314142787648866402473584257726878466889715805866973179964613406040418650289565828560473231158202600246191457277897178492997423098400748447298497134969248363722866577518414517115593153743404394823972957513112344224178795965148895479571936567386323569732865711951577122537427996210279836078817346786596353226621781338715303999842300819662257116397053240184941831345617104983943916718011131682603956630047381702004676736166994578119002773355285729325928912079812001966926792117155019133647651401676538620636219586204193783358280019129894734204639988607650310513280935813364388094055842815258089768916978238725315150371582657439952481562309713885687132673950034141834608227048822336549361981311757795729542956362112561927693370287728884988242328153828975992066579614728941351983749423955192361214099412348693919215869409510156738457042871440029183986883433003550910222770485228565544874193711909618153151806995650025338633170220393495532192039971340301971538105064185526234243102325533739845821127242402634683188577819455102414019236390212552041205834017000275295171305644819355171861667552927617712936093847190715047991609310031484252505538720926299923171204473386371865750338953097217972008602325163761936376597880470465904841245929674843417743341863815551960274111900266116166578548193687633641814865769221436040700957979217370384634851796144031705156138393672190067789482779422003204984964692147633336697179343229238432788371824502351327857422930171393842090287885876955827720079187470942260495158909220719422624547014892117137096355059858005018316349783808417824581701864432467532222707473745983455825761220183903141052764767461716595901865122338137763141071592737147554679842155592051811272889393988571201222351620996551425459780416631876509392139742564076324641655882192627185749182322537094347386804444318029001299844751225823306117425892766768767989059327206230042172290937739163760097224219842497646836697192510826436980532379136079456058860640663289712177165112518706929912306635141335938192805028752888543616649353383413824138082416842793475262094166948621628886007182861069241824751015244643225549114261903957937365723673900657144596116420888425411458582982960357920278057428319380989901597339273412941898299700409472597476814765288707505770171811666261972592589709922381294406993836673367666377193395655581192135029213762302426048308802957428199203950476141497844853390394116228860162855274721336800679622383989833564638767800096818660660167369379719225545898734273440795010926916923024364211178218689656815618520690831932506501459908293572388390022208798560301513690254316008204838091674830619183985280247653047354397992740873087976493086206069779776717206016157471028176575776852989759573464416141706095874135648254583978521145999746694755689474129415559424360689154933620478889295239723750280359572788018245358676220105920196723991969605931727685881665941119208607626974552178834188562001885538727977286094307811836543127901368972256483854513204658873296304015727599867238230026133863753571822254511970833996455071926165528070412955563317176110358962411460463970334648576636350062262199535136796008922075431835571383041586740048719266415541905195598351478548244968261129870094344919426526645851010300518526816305978154975653883401054005130309791949214395140657616853546927832924258758992892600162768083072859178531730014379062117225731126408227295048194433582173234287189470966062106149484391408481233655137359522306033608028137676690392807759842001854863175506836815751057783365012675719023312398058555854499008000221289884448956925095494310643220804767735920264897142094077446810379900684235111620407140973526049744752732216944787604891812981971335087707855438445057352107237641661264781824299961031965476525033327778912095955100721343293980705934059452967468578137646116389255693359218269279387468610058778757569832829664440513893292245783702349251955349504100970299890805021267428613380266372636448998496970728178958941621193854203078120593542967980395942765796597909153992337742767055802310139656246555733349670904981403570758298312333490392054058755198792315077188135458095156409787074506001437517929181226660732937096004136472878601931912993085998210504738341387128134392499186978184796217542795674850409557673689504080950882775991391980888041332882845458750118815684347367866819206203816101692743852544573455088319129951686035426145015388811720801848640237884075705010227984333291246349377660678662001555420336080972882633922976280570029203520630979364900002986428646483185590536833860998776687455115876363731937747026200661660797567757854625375220757831335038704725575584085187697758309230223740715276274933285259838837559711035180261760148573597585200810768179752570883725483611673661599314345825599672105242930260560472765064431363141868195245324357292209600550442104498355063829947854647305798304634695948242885058788604302998763448647783733133398404898626023239236770619897551138104261029444173092973193003170528307598987833190166936904591682123653928335359251410548984484881293064082249866681444643743026145173216341077950145918346629182090539800551212728983484027199765184703704394979749878833988038009365222493977905267719455176289160472857447578688834310211031352542415836782374737554257866140514568511266027677505459180892935905735101436261179627530437167154339005859561327020122829759289087601866842181527828075270757533970973584192796712618450268242391741300217074754106677023960566190491028131892738276299685448628836775869864216454899114729674126417408455978382416032392045118379651714103845115174354124976804244973951800666858948297072629809178664862728990128725253629283854800836781301523105923930898306316350100224330328362218011419747579211189462213597857035611781502513960371937792024302993650030077455335814457360037146856903233257896416103085951616947947778713045075842326207997363278186588998725222278776953245910987336590436869698742070084222886717356406602942806857797279022223868620999032830292065470957288054595887827390194045902106502578549980677564955429168983671130070608997491734645927465088792326268538017482601717828977557670276758149809673260366212901529885067752302020890050635983853860481575575173694668165384316302489640091903427832855177918066709939551325840578913511792871977515007359818297733202846870529681920065135718034445390189926360564599860289492516274487952818435200886636683801814967301024603187205808534981862348541402841822130309678318578103334324557022136711418746608619431046122835017687520831453375966251880683963393957924032356407689685089076964534354981946108459259748141635507899483020000674535961302441059873446402462619689222884385432765887192286047209812483777998410306015923034435894586074536536177524322918929625869069745620822173179674426992476618382093995344810584184214372438540713369612994551052070198684956335042687123036753396178441242967606782076931870580001141290526351677665129236492669268800779439189925636835437289440215143970032819692549515923351683133130026085763543958959014701447652213261390154419073986062431090062579646958479087730644799802374725475713424084765247462223246193592145882117315445896180114941602393740841247002165548318353359378204497490777042368562438344568003114028329539934748680058645779211019274165542006467070303933797307378343492240991132692387189408528580018449819486261966853430106424961221714244382738752583279512316193401054529829301623392235543672212981844716708641663502966777101061566635090524385615205391307658223214171063376914120630123183445735773539642322148458707025403588118344623592807081817036394770443797945966074450162110244362704897854137182920917570090053515534355446935764266031892867044389329335911227930067847637175816126897490343666869854905219855408843197184336967587654664057857926354648823582407124694907479209892721745129176542880820437030475617792451492259113993229534689961360407122505806714240877339231590329703863884725983746751334178444995491333803934895817080509850344485533807390196433585259470722375167874199931499371220229065138714659828997341162866899372784665191480037861414640640927837659580417619688481740187779000228618712860239791938609105600408740912036759267787168694081367259152078317764998791277838263665448816850260355953992119213505691156688808785563440475316519441044268378360302980035923459449452058067296271566545688911252200674916249980074105253532742261514712471026329129311887166784870063858670642188857539060682527232264576952835948279875616801873155507916699405396789908802305227965965623785017051328134891597300856468292060286420599286289618463239665314617246107401583198644375986885048199468484958449517593496678016351939058069551283687549623452055054970192576243522834907669620012106174715160315465886131602113526682166250919134124119669501451629939878329871332230028353083043064980799735090633137567346416088220814300715607373144717397405304246464452118967141488704250553316980062422050042764954959633520395365101169361791231096264991385610375686660795437842624101004302655710142151926976833947097732356229834282379550442467169906453425995449689234861017865031562644779918407599057101936467122719187168167282597209739991735853479271223120559563327703998611789023698665201736814167578551284252989057799301802026766459598206674555855210200740806532983799336746374655344625613041658487138052645866649524204844632308264540576320183718149791817509430263049840062389215159396807809974071452164282916453270228213832265791129045897051200096223168235760694628592820142010526538473729222583983384789060654074255790509855937024403683970551809097213284298872620043561422360937476129553788008234122290383601092085011294172467677768804964667099487957285315412080992245291537970950413227819714863551400102573542343835723711793328178709298948478461518332792214136264973513024158539496972466137148667664377885235538221694392012129952415584729425810543957569768074153169620052298724196500852888697193138402746988138475271323580502935695162683054763431113252746614641728694906041305333636066449387056858920860102989929175527604686431795033357224897777553506439002212414606592876858292321820370352393617691485707741277679106534831665184722768590766998750383907782231019896086759417352767499250300579969343314200172334061671164404384240271851978205310581539978503696042847233214409165522522480198681968272328596019503762092999862012936344331562211647033277191888196702185158528781951656248418860362674226829954590894128573548516156945860723674605117305074706822549647377845031404365497560210331127641238081005705480649853827801922776492582171482199873834332144515945359072376426704400846209660833268610797490427438268515115980483515626392617469031165844125978353922817571521964092709476032096682403516367794102533519445200989737331934707545628206184197098314654652647627642060624913820466057341223504302923660694550624779933553717802469972559238687208866401321717814472991720285080930400267923458951021739010763112868666237642180685649726455765009263421782062684494911357586185499543297633988843933713643369911827114729062338535126669211925881757559291885608446424851356514346043293088330748412481152890135295394139403048688258394413784426547820990224553845409832495064488203196276994841539430570209448433002267428809243222750834133643435120300727510765292019614119796587291390399882361960675096341031307615215040213983424909138804827619099365214891262616394135208162848802946197765245872005951199145563953627946678883557559351219389033437768940493228130617628616613094573716711955086116514526817438135489769641535112851536358879463880276018297189145482190790663343525387189646390238964097862293366501853234248556542224751402984294592777417721839999764926942295455037133353960354118917617983529191172645958331906865010603106533257745030301041791352791668105672676503650622431338174873817758993014893939665335745234945861338516381958538071518749076915212203391511321608099230196699182667599063533593950392284640926221295855482801772798980342435905182062209350850935529916305910325454929894948680373998856274657079555443339602137966392893143764130417335365634589762752332468626535361581522290770970637871800501556187359823194092269348819109189722567669022676757163763712413891752167304445125625420131588333062133946831271199761472909163816344283484599916784548805410267300186249582289512143456982077977774288937628393708868526739327297610728908311945047589490081913690207653704535386898000133623966588070340157438595432148797167587041223881888001715192131429413057499562041812250194004630757656449382034951082620331423717732907819601500280301815297037226315757444508609660083059242152543399605611499839559239946156610163020452564915681260143184201216730204820185186909093063611257933258317264803527187872832368198853444800349204411214723146632514491060514216848826296450999816367130931810281592617220729760542634474436573809419466072646060854560864333803742501559001643292085016700729849615254801348932565478730658519872047692759882149133467690594510105036578032853918287033690567889299876457163082476762851421173571772978680605449573776122933174909443580188784185524934478665042820235924733946453911603611325678567690726531230623990373075359537876298867384017350033618803065301173828296626730410731973243848447877310869541511502958731975796537254428174479709441973755992457871020715498955711627849463769841356368680206063343907466314303816204874644675325808081888863602011632271008994101020516549079860853409033286677956228975330031664505863262427211523971671633042436436056807017468903272943299761257641969231491315024140762317631441943593067671345795883870272640956146676787822280069194230074444209713708104238067062165141122486520676289559245801594757815213022124965265795859844502675751646690405092932118458856084467022217345243309674884109512954419908582157993122268983515102974489971424877631272527156301811679790081090664010733019613181641478771004642396064000682588816255665734717148094879582038972523235202216973805321288736256341015079492176904761469220859089543585854772678434841635713464445106920700672111857313580776802138953792633469123319706982230819301051792462485826318895345225869205538885354464185619258170554896778036075353524977858297498128254136455265426371947849340542844281970825788775860925099947991818840123824443829055776060381439247185346037520990777559861711223837365682668097832367415709514505398674645458618625705316475189141056942727930846286851334640734087237539411442090170332585169519554988470389944223195145701745520840537150993542699399856452018742391152773810248718549297641822126343243875438853023622772057144600430189643947093846019684498305437596296030201756714316550152691202673239684018765660217438893281160869666212707798245187724895792397091114212863464787190873259273576159898171370344378046206087085565900597397406291902962809449641958610929764458752667385572199700046811440359593504181343744496978734086353182324591237454567458096935119244133157564677148180505767992805309608428900409673269088941543736654646692174056491084350271118093332760404896280003457527858309974840306552716792310626321723501647825989730756445373843421704952765891746352856309568873121467170055502018108914419702949694985588215520165871879796916737307388342971671095232183256396566531367906678924430358341422923484896185449151686062810553418035115465307703817369381566708406832878979838678165901745257959245392469501927011222390241375937092170168555925880077777760576806311811741777755278364183481325769800241383655925026884942303434307507780380347224549812129739118680201151815692115416982509736764790193819244261189907132462533045281681219930254969961241911546193135435514399831727020070164852375990736327091258676459487471381381955709161354344836874064128237734499664482463053563091887734836187550902307497392470195901452243977530098825066814556133286518100878928233018954294958081084829098124732045695711943573236166000117728489513994075057661526616863230752300783685239026234824673316731750026296910183649822956913267514988160949049625400468366610801941126603229011495149165864210044411366791723859013611890059595575803362675702095261894867828657226805524453351196280042607140395921573487571331493879568273162178205448398887218938269188652507078104628854048006896073186494978235265730049673217295107997623001858447530412524106072770731410679712863490599596596054896965068351711310568232750864264304582545610882795126430622631522270863003792072505276472349955599537236668059245215807005098131376988936134389934077084626665058465948628576743817760460344376078368699363511618693340276536537869649546831029349017223298859619086635404671868094249150678295838832186277034039537579451866503335698322551989793701802686391506232351795455583206142489386256213824228879949289616825496428763469231495312517412720881712025769115535562564984239424469247814817452074916563525731603865153832951818041846182827145339756662334292454138590263774409793646509684274969589007230008134699784132411792395966909879946221817449674068838874525682775760122158958225257629505020005315032980232123524061589700463465875610642514872091919570654742639263398243155783755750667925177117411605227370150466573017076014423517035787906167039221373385283909935476559656042796835398373539989337253378892375117311790832454394073315391026149147905900425006292815868583254752258067913264164795167119046146330097894006240752248960083445631843230479964809866260560944823877216227338979931608653235670692027412842206754217503112438646575719781283266422845048411442326175619452825122775340817415119666119140188317964985674562082321411567193044005560711486330906305781795103712293214144061898723443487645769843059039064919608177502918575300206506397871908146110918909606517259003226920138196163095932211841714648359284829470302842768637348146356090632624663620290424285381542829187590302542941320316180066448347662691983886953606713269798298582104547056015399219775350236048461368829874250669861509153345078980976728222140003012759066605264904271765026652192987670788931531527399957553164647853801251015554064031866471750563267973439848760427486149395098307280757343164918243566770170120272364120960146691169994975269536257367452069267252554050873621150535926559008885835765129504067646652136514860425574296520582079336720590064234203845904418030571267910665544305824283060088565996670110767931806300053600790822661906377983809739167164451195539202765055371906955361928791032544736131276560837104816944230926697701793979980852737752828494262016352789371826583399005047539168993906197228923883315283991075934319413628817711104699988254118109052166513825301510553270842055272053704505053075718125330123561855313158470441569528120032273796880880770779414964387236386752698085216736330071925937008441321158138947298788077028998968389471075603401977271272519505287209728220309579152297021682103245617689325791292444087546189039006494304216981569998341808094310054990862852364165850079130995628141205632841894087026737105654742598262912942564235312859323043300195443106296130982388052296073771197942405670477328188889865523927354726681024199245589941102120776840165731456596035899460424429147561930967463278427313322940355822910886755178791184375238441147876674634618669431070425984266488895667655939679205164707737476519404835383348374120079311250152676196856134863309740299544194508095920772774786389811143829443783561727726149825355996738323270513536410365714040912219394670085049683634555163707266458745434476890326750973978754521301867376008452453784598555029151345745671596006901162921072006973539309225643904783058989202857949848196046473450632927916464560531262698628180564905302054426426702985450866803200069733092484554826364206539098641055749688403604407831717705737523451899299520776292384850631972364227064347367434409601495843451193367349609580354680247737075430169574321652976603640367905294730001837036885937443097400296511754435208459464475485869998502804373783859296822313303969607989413998551605131470203518808833728415463673054363382139732153412718612687214645345586750699067611887655984057000969737081153240429126575135406169589329330288503612377773881381835110005947904409991592751172565914433042547804877660573467752689175398048042766141252338844518506057609531402254801014654436151242331407978396592124334057218807800171316761171636445067516650935973690792880443576893538818480783958110857974662614770494722993811791430833114800019536344129410090832038632682641908921120240853851155437230075288426942316114260078947042427780846614667006465064333522940043026978448065542113542768952385470719852128004741256368117080755126734028985273966030663357842804083220411919827933470195957483503544320238935639015543924931718402556118584417434128252655394740908625870858639786433683054678877416678667842497210188297229497248263717066152534969581317583289348542659707114280473423734278809661953771706265730334144541431364460708127132976044949860038146519713430194678288781968279933370574110588681210243609462682969614554013612456180957853569042090314421406789790156798619662056469794102211411273503363060370856608099064031816872090903106056416611207936766855130366098559290560156799246005298276068091053075599179612678675164285795646802795905064669453485483420787747895001876116398708245870880212774029218388844416820368532885450863792196928707480998424697042798930092777508639291269847686534208292779695069195236565247716753021245049796923505129414677079464695172952707541558059641852339128911578740291741297570857746208805905242776274670023345538442917438557258002299127393930106496208224553643702068775430377394853610562557336769210542814325244112719619389651553526995502565426846942492860452246903821386459516193413065678490975530959232272890395015099596234613557846416502700756152527510480204037129126946891985886610228312583520839980836827165652880127274173868409306803455211826344761131720164931411778211090309218084194334001167437475257191242926089563549530029864788520394293554325470565946553056193882227780609517103326347291777445717743007859329994402793330417152061164622021344592232216497688710984051528784577550654808853327625571858050147497655645500645704955145530592291549218145462062361982622643024268287637311747963632650758905369353111558233940784375627110857222139327592282072085432622343013464093746767240376640898873807781335101973670369789146120476310166633154147468398440243953029502511416693835107358891562742114471818233647301842353804241282489778337730313774399305778662750158190544297241760975529397013946606682763099553677272615408732841270128910407625285356030442262953809917929907489286162186806657400503720733468654663294710163272600056922515157380594090103494287045397585027062410728571391349014978369277669675502080054700242617516202630281327837610044086443621491531622161756710840217998019525487728346900102050260361735874443848201105855542244949642419074054365460387909092247873130194841957195828604336846888034969785008644505712472455507102558242353983960117704562640601680766140290787039817205268517434189809063989213876154239490063164573610147773873567583594680990983022183676262550138872276337992314903915286598651374813064564657514374202801326787089269919353383925738701084211356386694418306641898935691275112707111405674127449311697773540652248977902542292140112383882418446583029480329750143393005272134477259569579480682944420340156580528564873441845448058860450610105671745576724572868447082300223358029267227086311779246560227777620603672579777491831277608009926517128245394841147225733411945903561308410322344397657938136161409823260793784436740164545733515900095117144156164373335594917165353387550395665760924086437008119419560291043097159077898937010394735147281764409803856491415454996887856417996141055055872625881932443333867079172220600806656127711992389153573814839825222724316008567612018490216106744761388160941446562841310693205649908868902607748114548460445943821249584096135016537867845695467037008883656616094464629413466479412827707836966356033020396247302049901104108860859506184594136313021897747399389382229383657158850603846166400460587170561041486983011862944784976169953251572763451909028014559265449292039125935383616710371619155390633776040294428695166580819040894294932287776487717138634173391502966053294950147951587167914294463103805205268116219199414805898075926274045814051585020737378424625416566499386244587421326875636109483459306168150241966616430772977592189169919617648166755758373213142319056433017433754075388691752443724746614056173919665172512331153504813069515742142019222942627731371811380100122480665299963740032039651616961192961325740057704301749441712543651709997633518580139566744147981747301575566688977270046601409844426938652049268769739490299642390704494531454878103184636694095534622375262466991772165471471366357337258775506252741877892114567983013296110099013834540623466190084634878753991127318331800828766699069421245379998714114030154856479396907576357043152313793560955187495938909329253193531568312850336712711415808304802637387316505834410481474099227292340406523800912193856356112749576947059893310362363139780873434566103539831019261539141752151002375683723083650025140528279502859079287086201787111165368260283588521364585944504955343645580935220355374416366217930391576810911312710336815945132829384451477752018550346724081695172934462765616790487764733947279783973013265008102528760218324042001334613618407697801459628585709368085022793342027802592088902075505882186163593417672342507713791268120824022790705056344411311276981480764619021621441209876595130237213581014037712654791457238153204871734153462259702954994111469979901567248982467538963030486603411385091648321144236684587658318692573176893921729494285847776754276881529442318720686457621386689349830850832190041401432421764142155084227007936359807695045402088468909141752525489073221336087943256794913950507536627353391614556062624920057230431190128272188978046902486774251935612097317842788867836168557718505486034481522319054101929847276889553620849649276154149307588558658027939796804017765910907398202765534671225098133498900956449675588121098002938133746543517285610895655904917015486374387006112148627612835605696351308985160805359348257401028188340918990716585331321016638278028001371952098768020188218083272814823957889138041847883143605312053693465337299920754364640292854267433195332392052375389887982987270898844912723485362164606963811351622990791569969715529914371951725879668448196251665781056908809557801719555105301374976267343173223228963676272041300991424322812914288417984179777813115226839987337006275907240878832980755796221161104072851137606298252836051621542720052781983914263889165694745533417351043773502843176140198223895583090051309750533601022761619997344183352969674971495304396111280115557805017477842318507350550649495798134461796503608549695558169249577714085877864400554400419586447891065963942174810248320071441952410157917829765524266355456353972506955264522869387049170952250470589021201724968520267613621195096456708329424523295382572237840093807048266342925878086888885017759528015473742076596099809212593103885498164347798851745117619305794085804501608064224209588255830430445812099432343158153680523990682863338966501393372842788601679962414286773290096825513298566951462696468737228521718157259129639564252174651100459133464000775426941825300658182151498281308884376492760967876599751231792250909999353954323471514669961947691143888256733365803605283810074337371295152943850409167980732842157535606436641191285960583259588273057241874192417479971284223860260153764772659513732980898789084900800124651320024172129677424491852460584257118446751265014513955410105596527356827863488004581784097547931424897368432010428041703161922182465827310134348186749143057725193542526232715369649691504385811325981050484799526719578877299457594066639185854327301576933945284409804617950221902878593508863399388861164928428918663378609018124836893472027669453989062494023282459182567345541183841459377528555357702299690183538261623682652879841736281305350405197286542759286983911837979402439364342900257528243877184848007095928957884048148719499280517113691386274108085143810033192743207490958142021682483478461060952089410257430105219876274556223028254698910989826360018714743608642734268722606073240756200985656859200301631711439966610408675654484495804078345032210330152521144501983303634261852754856429012101496547743814367542990551715741854830047260619735645371497978005200025641920638437867762234557852463349870096962002018019381826554643038992863990597476839473452849726714462613337197687999232961163234985771686025227482208458927903403832964279080566917314349059569637742486945323030021287745792623440910551178816080217460214073972548552727823691779209384128285487702545579780440656216819833459133415361383708302119518977687367537583483652778725898418734452468084953912326449034213771438928243757120882905145692047559718991006743258850231316165953490734332791613757388180239432478899600279903752791601867139029991045835789288236660284905246821747562255285717651151137226049588048787427140097974352978012722961292282757847114165912341587394691955237834200284154889660139199367431372508198705141500661045016646013638276800874385372073118131540554041646433179613054302062116354161574212952996663727491580093942404257172221465002766847370717606257393425755539960477359429376827929218284234232924958649257340835035848941531596028822550265133657706068898923367038130980388831460156401351533871474909318483752476671926682807902861659012928251516309222368063138099698941871610938495207358960334673285260660554537750982149656312972746696400576251991148655119673748462502518874202874781851215291116480676931626401711388957236142462841682893715629811124418469004433872635092188927072818089469666310936431071837397107825087499713726775786463678983370336331414041282510271977445654851117206599222919214856631127710553136748876170980047638638640987745299376227525866530473685817440240611180809465305721944269732398774129755224047271113401428012007639920608416187187268512974352841412107454327160023073034955198091185859802073859828778074398177397958970969924926961690889652206348542505003483968448131554955229239476417359320926521481061278535299972091054553994391991942358380098261044780316599949874724942527613455662100325058928658416775547944182281911553189210856723844074358368752432842597251523552344437725162275105997196953960852583972289685825527074754841172020754537278744203991911192499887014553822688590929045693804996679745585269195464765108703557471763883189576984998518839857034343186785722239761447055731240736904391015172319939031525329254363870463996081779381448052040296010066095572526254795461674905005868112726982607623919005553209115969982533313712452674279285973128812099390452238086688578846637624523920708438402183911477504402063821985578020665209140077220699466223999612836649694162330246088808765809377561386863233452862316655218946772895266310943062720388391537899088104617004832162992273592614472638196504752756917876675265927683419571702946226462516523772267738607606440521939304282315284853715359465251660099619417441587580605392485849154473920638645129536716570648805716898399109187639959636392021118252352656408877071709152952229810118366009115974053797033085780102521091443654093776261940690578624125535434963735585830612723656141305865946781800119639846676293378021549833402785148632983358242726295402926235491816384697815121637322825451497668302893226381943004344431789349534078207234110264176927047043727548277209502008222752403761237272042937563718184598960757973066599209751633230214738781775534654902379267880491865072174267654519865173045458722744855771018048135832426367193156974254348246552269911135088196479645849023602315281669603189542257013976716191267222316602939422979334259000333681805721557974544034920950635877015470124953655835178451569626191491342639220434927915868295070122337655531418663672099247251372241031327382096948908928131887510124385279855938663054914838856328661480714701704980112673090943796573745432373332245339134226147165443924868526247733013367476445157708936596452657946205088543820666597028335460284929890573982202967143425487047204051147087874773694809127040323313528631258112105027132172169612228495192026743128211468189143681235980897590209537349790994298364786647594293599504578051904014959060463861249073366278337794386141820503773833130866382748432738851380237307195646100564346112206805319711286467608355792536345998447872710909560187309749346784303132056687378372704163723030851771167281741364145648189005610990304794548490090088885917951080033668729640557864062600989985549808949726493284140645396454856120691824168684770360763664400923075361465683243266336440161504447008126596466028774235034459510592398564255690154728507859538242355496235680448839167905927494864830467102738627943074295477876848262567604761497929951560757910825220343647725846761914230792151267354777583719078643545213715659031096108571588924365714708377109975555569934116426320805302077996187787206443710800307213343638575087411147358615984815574048782737805037475560837357495570636687283074785143479574676213629383162655767654030036325092020795467841343907630408734201151613001896322084181844274910318115977355020566031130961190397089117609891655626450294315985572373806438758357870322146042702716427268416873959439852904851461307462785977874249329015108815855353282227449163664508951680970398469796708265206278786301208458677568191085517254586809632439324317542271417339211262476615044609869025905644745149723946554059517103210801111455586705899350771066874821152354957964328933116267025616977940410223521989001525698006680842812456931375731847949619493897788386083997692347816150843414981720217893967738704323903206613499083506695259296385531477039530248330201426448720166335915907831782046252149100392659289439340165455415471553522046285842095475167000276671643711964592226059816857697092022733178987307567866031787227636126218830696403758825709999480963016538255238386485132146910027611002329964652430931747501491634770139641339507344014947464492749425052460513428237343639802708413687249193313609380651239142822715060090731800810133729795886025257319254293726375269518210286141094675563544397052506291262017364893949583782745283670346018609464739253515291002102414876023221966188333242250587394820750887397443705312444455278029096593962242321684655741816337156897233494666958249486268074188958541811081038246181582120968522847071299554095937107730745271852104811662175867745018999040542746941222011044682113291990121192923404879484548868860570238488859082724722829995875588876022999376204599803689115561191667689763497193501650362688836779301726939748829931822863762883140975984443880901267972946086677461948587481606975520990249414924944779706045845314780485416537007782615558465588978091098885812182831985815092779656623720541881735673239101015652377812528959810394154466889225383650874011946334873974404481247202426891761512111475331749703319621084144073186338884447620230563744171783961452505927077409865618084896196911570157832725209539779008195218827522898881107481600566350445386882004785334855748786379581891435709331399495407275753805418144112334690198889923642774120102705648275356793186116822230839555694254658100838487286406091498303190139858646987033560615641716494966070316078752544619894592531381120274532762146409932016521713909457068842537940174280327649801031176015001815688049504529759252294543872054213572860039339643386952591573833213353964611217163386489661853220389521648383546446344200089608470122336398747973345960646459856418751950322309083644238704040387653767924823449704723978588640761262391408547597217072232377872484712530669679762580772654796041115093581569772521357209942342002904762343315624545469590430991327267041344590279466804666202668501506072627021806243766627543945257744461245207107525283447061601748810946803712247302725877438967726816796451308827578211325089876178545869092119734113909334872150471372554088965083696266407516228224706788048367020350256346601600968385944436243201784789758034774781259871057731445812352210272256273034056946325593767153730565349543779257386456382105678751476796330592004944650384646199968518045577750937019104937828143058775942003460963321758443460862803081198496127926867007397552924047783347971289551418727087103066494901643865632136362017473204354780519259167848789113813191339841898403263928940910575883553402959109726190502570880639044508727832908570386201352067900749854734275361088449705685267169532436883500559790026400097346838094276972873835048718739715207600513504502299974130701938319748584952386546854083336114053824938768884232103807835509488090181475503258811089087240503710791161394646043114913714837402793244973707928791089385766903301852911596675223379330280955247761032462892576439253398025897486721028809214551220565443985491883708344871307025157800399369540894472129830545024131010930034043500497781941247517541192586332242215575759345809776343627876091221508716815840531667996786518252840339988069749972982774447025803515460485141894034936605252620980869627621174044149474768311656259281231310253237737723861549367963851879913731217561515952436472203990942724468693877694791744232821253214895075446817575497467438697252289394507312563352430482215618051698745583531504970027655499353408547556978788526923622214447659690607160310560775987961474860240208871597009987814093768753755450792837366859108169891226984538663057037100988691621104424466676703290346805986149760717257120117884993886715463278413947632642403158651343279282697453348856349684182379199110138277885187031134622813753209039667383115607653188584843235654628130724594973904998032677689189398580515283181903220971006467446471214599345026132323423192357042907016953434801845887970474496309880672307379946807037829622063773567458267811681046203692876244694200157087160540278915587555745899268437328505449270150864902208847138161344421708675145241984671560758235911896400076717209914043105659507594759239816021548861370837022020308708633004057239265947811434730110437329054154733652058261664829418677356457636583750105108815037935689717935922801695663217370322577263531561784153754226026249981885550580007855950024832104079088724370888047423266009410410216895735387388545740056298296183804416184147970226054305094550476680820881447068283188250036271915932307499108539665579252486781522680690290862216190379973430154566276439298554835274710405931349954166923260215222415126025098050438799720904967347841833232499272354428922740715507245815979994743776206074485472212780853234659546730507141172405550319988302896898803637240883017774931030378999941822566868084579085609510605075790434816826798333342655955850393434841317397308998068540670664172568256610640436190511824046057202332759679544267927373500961099329147485716525544003028283957252559120308412491510823126369888792714648327356518350181019413162046015734832496963028450433954371383909411255477905455197221505909628750404298991183955179870035347165650970914491015500928943841761456721415300329732854384146258405064711266678538740859991980260464807997765121031271651267931133392869322119184360154688770247910207624289280356823155224184424335644762103028126392955067178669572673322549973601061796792067820178799103600299852859705835332373610043020257504970446791869179368024255426267089082140824854325804981569257461691734159697963634865122535941382018090968192722796886164683372058346161490880834596107903283559870774295878101212914273467006459217095143545595083236859102611334786832884264756935510950871314557862976909711095684597437029411484044538555352226448945997319859340471856887925325668069062616444824140484475366745956558800494786859245897632341532317243299529795666675951015718233630615404664818471475976944060826117860804659659171270157315913947178664561378275552929699980007201073011868930999516044711556585051649541225227978924277341803606628951150573914053521340232142668966458513480651042148405072029078355498335492820070377793739497841490074783182072036841970354992864322184927576175551217598703751373781939746743161921238141623831670755132982429047265732125209810785010079331092812902141811101045253776585467464850672646452601244118211495696292261071479476556446874928648659146574571816293260874767765187381002596548521233831543224636598700455169884451194880886285219837132881048066456566313811900896689656538416601101864525291786015918183254702342355126070511098219720711474584495615812799393553893873036141922939097100507232998722064133556911055139005287182334799561097807145247861349826428369170533785995842719828688807740117090514592394802837861239258793003555357430811753179707846258553519051966715215392760610264512877602364510340075762178242869898238946288679784713506982382847205559491680888338290724421177651132234439898411923147521147893810511300327106895563434778151282537832184450081232801380405675318285883721416913604733830772807204774356453828778253254420154206595147001410435007388162668520041112170023931774101746959613490411044687645330162582128390062418148970281958768154810773674688816858993902750143605022917305381744794660025240825404759329595377714270239968645500078742007911702621410196863133402265068009763161543004259624882502192352420589597014718255998090845235838267718675190209827102081346064441056052234901610825784323034908457705262624527524424107028814724559589705256234600043940731102183652830713666824366090232682754034414530769369563958367988788494952016890023708126136119619064151191316621227212447432896003375064607539184960619787616538253448801136698281065413323575406941631444597767358945646364366622227347366373275958482120706775668287978430013362054331935225757245635796754339578800195878932967189773083762547443189859602399539192457683659082398797589761590169020017157537130360067448338953358940941951009029538035873881549943643607607618508831716781913685714100656136387351125747714923903760601796730980319652747381543313587253706261645967479744066076290759605965220437938848697896061041684000828427491593201188149403664861025649505673149399194481786480897592858270962035442471121149021570627337614066544606275886138037359612366603664586971686335675195704422710555312125033232157484030576557437769767109788652876488773324194098184284036159683417349305887466642629019938487381144073997163944405878642445068889032535887089028823258466378482303840437290972291814999691434860151239953506101750538734292524014517860144372263006943595568071146316649271915624057333676874628078279391867214756342267165164064412550542780393727876454087411956524097945688948128442835432842460663627338760355163050393112249579772599270362191377493468497819387628309985801864475337945738434503617735862141096440009537385551498505838386502351022180838508391842813923067785608556249778356253503522209647683550959970660184591482983150342788801086502158810925582562593831456671833495215878267770712357469914695998724995384436001447301423399814222583734792824853924918993219118831232861065410938681495304039420481562439422517290032767984900065562094873153456615355372658072912548883620444769759833965223133993429541396614927892682360705456065157570758486291062705127047747661442037123921490088792514338672384702755520567929410938867485227888310406698180731449292121632363771649772487096500930749246573242642587651655093753063047864309747397096262008646677650470584184545804909778565805359701918452008093706003330558872842333492022927370037998190825546016820705834539703491712069221904989980076085095554817529802822604903322299158049883758585147498620140729468864490124810699056282506838958759914940508333247514756668236915463852137759548321891399067207691241442013750060856938688275152461571041336792816800513045982388707832096850312803322531590989290883885666634821926379093303936199269348017350732317713685604537993097282825368958621711940117950165531594948418832299721313266126209813445726124939092845367293055939640627192015145137585679626156447586720923797575358580747433715364382571350380798346638829796330566776413608530997765806287916396090614227938600001457155420186104523163068784396780583256721205454671375554303318365024637031059060468023687288350656847910826466694088486799086703495748769812231621365167692159557879197583396894912612399275932506477521742495716409237765938615017518648034218448794957547252174765649195921332064770770431538926370434505433713395940073501401072858691395155425827571853994163869652996920041329525168104930650779258833393017343934770504095099541784659783834080747742936480063217392057559258423821274854106545224477148943995749379125374936767765322868418806903136524217474324682487040486451577185621784626368013401768800071939654570667167465391469896252002310340918784017925951954158225996956155281148581055742704128502877823456532805285875636153559358856403232163828118942059025049443694120887821998120752458437756307695444681862622700088057542311999607165562895269677608522294731450451415705237490716509619740605747212951825071343077769698020420968601714582949530345597536187941694078164932753037066753034131681834672370694623444067485268719818433518665767758853577818291325220841251239873422605915850275679065193361766169900170533653470727568749110661109086982034557054245227792712701897635397124406278394454448075502515679708567202278703605566276898532951531408119112853261927967446810951325686970881314760972666339869491371882581695339329731651299659222431372351800615652510222049796364924323249186635425293268979347333841827967819956884867777839581773962290347221857041521276942634371512613985786623245921212237149466217277780857429643274840695547121919458675715445116781199342583664296791869818007468396789041613095325556326347547603407483475725438440999224226244545044385617490909813499880508593359562572884842759009608555158230600269024498667435159315350226107043845968289870107299487265103683865950340078976095010559115692205539829991016596462080212522381548269507151517827766134211598827403267360046762388724806479182098153927762377636293075069461523313532364431767964912506454967142734635274902581443116063415497246034443532255034102253064597365949583398909166973356855648879239620768954438530311339545783778036825724032006378891931407951087295300610338071062190175911591869704046046472270129911332077782324347202641401918871812987801420652479720218765263743181132691549805281342955217699908791653002870375658927763465131838294699981116629662877050743332126252042946273693263518535073825181454666848003930333960995943509199399240846048353373952427997079943786429522083001260874986451505368285213108898757870929935335712866152784425826492335759171463101423615749275549650281463942256335250044374586016728677818883434455673664659125394464256495083019725989133873000804781479077259481955806216044614344339650666362375155651532753585214840180252001169179947271651043021146607021222492442151109472464080466542520345648880711460555940703146264804660779093106813778904168293852101755274255932409198216995213331169012980929210264541533059405557524635751786668276114646546710730212700789022363771007635874473105538840491049503444433188773791833465778345320791878169914423907745316941258510607045107567298591788832910647395169605946217835712774398421296071447631196334408264483473259169163104339118387015412023167996267154969007560213492356773074327527240476261803144817656850533475511540002845253303553902672366980877011504240642591731742231110781261457938395853404499367256436620743680709714075428620333024013840227189501160521119802270789913120068940734898155403333350650045665679480243951281042983010277922615641849303128222923468655441771668691829768606116692123755913708021118948784802082520309748979449206922440347503901652293783844170760970871297693588260044302949035635645169885931602461847168360970300965580009057180739445218479099449915631723120267074853955303656628355584351876113285506298635988965649697904385558845690968096431516791393796912286451096910921862477473907451721712637570142847766829728794491686375485886721316358890442396629211772541855771782299225208067646760683482278898323018471033321765771237860524806796694224033612181230822946424220082660167083166066687094770696721005919465485011860316326401178477366402090487753277749759003577113740803275926254012549218972866657272729237731803337931444274367171017583113692561443335176329963075531820540199289943457718839483507209769133293110393785344237918357091743735587158107608803517713615284994716240092783529113212508096070425750855296648722213588752895227811618244158906258690888935630807508353250284153671397075973405533274527798124317329016360287765133308834656700797148975566759829856165249462898028140707250598698277152689966194403071506801734517272267554688757362569603430403876189761533866266222281339693457806642907186396411532482700515389594445552110394848780727026495946498225321362312839125194837613336389574574793005468064147881360745070312026205477658277908529306414297888182539002229697322064029215735680244913176929045337513186077200867961499555806594568182590459571016454968289963438273937678156340500134298432928737709268792242078191560365344968481207386345850707632452422546356240871666783682984981480962157820123799991203966695266734770637044868187683657890791686377656500132207590325483938960430245777568714287265936129662130421905390483992818538862063263858087215370451002213892556320705438276258531166172251412917641935362429392552794581919112213605214354339193734838185461480676171104297710476584883979927315853032116910288042390485339610118774813002143469412792553748218464772555104715287784575567231575437263219804496592298554021940625070084075423784898119784745601096227218725052910901182846061969290683323080596042583867340375383351284017108090214264996565581067600515016679315798313763092719960706890427956992532307441388409626828078737306818970529641000001460937808305390667770136462116890813995327841735592450889871844975644344953272112094234848274030480750848738561986096330874656922261926447083869674734841271029384433017159205977275378323297523873291928870244629752469649656149982206498745302296522344375549961332522223592632035040716610177595191616658598932732737730104154521420843282578527546107850910910322050831905590808816606790276000783289072841016227506826566853886299074065535582102595114380484236700518009007609652773688550010327024422167743305723966163417661314078383346067492209498023875432082989763173258778412070195056805101069462681724052798333973696554460207944573001256296492807058909322593277058209534682084143790102577454718937839287143477296981807872754379307069941080003562133208714703955830910399619432854674266681345048489637287073139566697743686736266895214423243837480256674779203691234414380324664452503247324674594504627568531907991779671894134089649530554803850740289997614037789261815569286745646080381250357992447418488591713276379436991432551394258632854131805002677642653401912733032802312504534532003669633610412130601704392330397905297980218181076496548929962777014891625186840054643358312873894837211313122860934118077762923769606277831740378258737799623013407616559562108849515067603951940964461058902040391913665799398401641770726713004869403694923889895698390805885347995038363951434150485471462750168503965045302068214772535093079146848254244272294250136263290227344661912315421144972641448353658818007733610038696255864569191600821300638527031448557250984074493324400888543027154921886713175208537562246111091944748277217587510302592946959239618620506458146653200020941077177955081496126911179483858973654452692326654659532736442498495784429958738216132679278716319500071167727762205373203028348412136682305503216071620733018618101165944516708058758858626179962119573915494986625783925591877363008221527714986674697125365734739662522087478320269638372991853803068097216546891531902612634392290875372672756272227690436727096872563204598288051920078743774599472216404211376273947086237694216044094518572419164649089916208647210783702579744291497496290337789323881003101841732115052336931278767774742059593314569515038359038167157820034152481119185662460622749127009602625663457132345528084718196239702782252075538420096563708024031201439586482045839428042918113410069782019543320002391148598684162841933936250969181330916744432651320566119977173046959882970517963716531156696730208609994850399451061745859694721555404001429662854778692795340482276895573424791542615924428022451225324270611179604601797374690886885305372188831674893212997581574242453199532841723325156319896287339578474398315463136625143872516435110963866586132077147058651368392647292298801477256148270763198318240070943290315570386445387019032528209636577667304373549457254639208529615741298082300517436796893104991661346329844479692824500690005558399973348619905408866423570551750439884146964776504878696109029709721248414792503397138494128221782304521989725598692413816120911085347685253907622936406864636518677827195404731101494314459305982664143810346846179665175801717288900800810581443894533941638439922977692890268106786874840689459146758546472343307425849444145343502861625355324785122818853466599344788802322082902500013175407747656155459917837692994805479138585573121083262262500620936019663952942183047673898303275722088424552073352496939217011777239961720211195510687576446190473769325341178317021828545353868212945739060699500020268132418751524146073872541070724462571837164945688706755144377499474396636659965852991553702135058698987316351640238118720199145088052942571414805408871812523269870692894840579665407059379669431958915170566836463636365508956076104270581564486924338404142803832685268873213175711036496403317464617117715337892424781167165554086892309648898147983003183874271205714855482698360000150392578431076521881842248067797269565584033475722997953462987318337962198386598269192089750572877052935598829832392875549829762792572983125366674239309696817975577714704959230028277890126867557187999574939758146274447357592489599746030530223131156109841183183730200188189703008472537418421824368745868462046718514027254831143499590717491559083089762952676206868396878009120410083721942945454167460782673102839310221267792529642310257894177306242790319093925491217941735755690930332724247735629903642708841581067713379366660142922823440385022571129990245650757312047963766513845806243222393216956746580260601796066669135012331301118927707373195601386081637242236473304121383318778899339353436539813895707646320638827903236632870221730258194015751167174962734908413025981094874607793507591111990599701167004717262898391657217216060755557050921662656093334651534379795255691202340911634047069841650352332860787300197690692507672674410579380825529740915758088614376831966607059092284978426196363880950147067955858740590267381255739833287279696772650275895878949344094160120589857199900152463315678392700424181295728355243182655903739672621752718077640410654567895384985828061434535265221746127184674947966777445854873653637983979291867401926628249629891418937627966674245385212807315625438217807246031097493786076446126651213359108426003779624783390473283121049910523359743914291551758479895232974508345076306384499882344361239993904604658345480279033767994119631734504801236482061841724560451695998309634737960532843049617772213900995965330631619133623416857838511202447768699876939948867578004533804154429463228828713105486339404041903828952895863675191521729156712988125605675473414890093101995128603177647635276315543185420562197782296199886715059890485064065472916096492441712285132476126074686034471540267498680744643149454012340635069356068896251767138681681837584468066940043728430674779639922870952094222754308913476581741046489188344973455316627009023905918133203051547446504116032953109380822481003509805241854358983732394037549030270260198626667777021445184060294827689931790007880095043478316717722555217668372198807551457631041240080475889290948781187428864074809884915463927578572879476617472282942494594853373185394469374942997481244050507404159870317901282803175510935311435145581331698488911342842337759397542875942436135679136045990010770527871586870308704485158422273660741900889706572276850828190279120607721215590397540415565395867382021119037984155245760404584026592800094396328519239182177827308507942775662935091105158774000988432005067187526420515899558177670640602963459118354374335464746148513350862329177333347101695962238750665439766963487624970299067016774242009231661162749875844392469635890676092206987159519150144781109673732904410165395834246426043956105281446076576754830920343007286876015962227247096093154004709043721314692844245910958328833775042695335679576951361383780306351055639975732898051628077204754598874425451610682978661012468375930864605957612988643928269861806961714148120554145492708748635080232497486762544474273936787485775268181666012487558623720930068346047439030769674237806651311745935686204740589692617133439068426132464688167772733842412228902328311393651586968361165714945967212229389292075631874589786962231528837655991486215283767286353442036846383645007065856250513068644549805469280807612752178450270157893684466937356585267944499986782948915568720477129337924046859370846884980160019836046398831865348727475155450759308917802057068935558183811305523877155321666591450685909828189206736716947738383776878597512502505174566262455703097665175246346736880981475858046542905379211966611802052863876208759216061478472345774042954040859020890487278562266323096912096111975699268318882291462970109316408598507417952048420718573558756805012884190024226100497954754801693319937428701089741290420158317185867738838832718723651229617986036823322582688592062022470610126640398947139514307345419890787886950539164401991971699655566776227044122390259100693050345310318985845074295751012114791039897169782269071961467983956860671982959210007241236537043371202023501036227013152986070495987021495681113143541100005112041421886930564183528423235628513313340057203447861607930167874465109021835588754780327160261215174032556930414102788318997582718787590341483902051130500260263054262684858917249546181433917400197559754476129565011474583439404015552751803709175742817200741794736072284932557805562119697159275655303983764507443660488540480911099864876533772419124848950665815570215364515758418241821876490085505036722585404540301896998778695240203396451440287012424100903016313642444559403903069273158488335935166865885530446019356244692676288840258200938975115168515245510161975968007459140710421262622657924061125575790677835386983726337445956504255690979468707171170701220120051577971995425740047120953496896352390753192854060826994987839044434842671604515234260957530831137169558272773499005675080036429933396325954095173700060207842230000490771384752290307576646302732227765345862784849723524617658533120937744455592746611473000789406752273843558698595606143923475315233417572743518407308280053819407152418730264659397561941204256049978090283507545622285881892779138215477086688263650632745671661955514676060101864123279634172690837037394843613818230293589651694299138356523103532682244153835127994938464897630105590512104095711172552188365597126048110868793770292513582901486978303436864602455037669452349195007266073511927539203567490718100534374189615797283553605081639105452064799003651127936305372029438593194955309240575577112399290426197551889278078927716334796227601082372419495783402792225560256332719151433096409526224129012647110225850105415167473490908432681432864871497188326395997605571277070701564255736648918030308517001677118465901813217042045803557391206378809787196101316374101091524001851216891865136443583122259728014582664571910878151396252579758509306004781173304819120750484799064728781321236454131078032098242257965075255609952972874200465073988499249867357282489544242840988501176778865911637548315300347039051810674337952419076363009685937625916867968728253023201443595934838498661604881212465817458431797339722067947542071069127394647403605202360037336096276205826409875063382164362248038148570186439482230049448365776934903107497057064880475511778710730090178724709320208202943469769102343849898221713435848439584852391265146343827044959450904254305425921049635642639972888432545914237868873132310512874650521859253370477054477007024055864821244825785202237736288926579531195613654007843974452832942709611570524974760664247784035854444223526774244490573720580400136546002019316635736901896589908595166855077135683427123182116369655683118441970422989601216758230591322517258413062654486144215182419821013979444887869049609444601095335357832996090955232385811131057566290754950591397701148049326075561549181125357414248312813445109086408634336634731483456620680278372380228818464694134194865041714983593523539258625719728660260263282517896877906041342464275102760559911058338384502743214485202050514647703356855535348425146899094852702601802420739555483853363691325026048772833126227385429777407530701639394101407363472082323938381107512676790311981304257107881684979193639645779290190091823971286027592779500798731385323895698744852778540092617970940815007910171615406711093888988902533855296660750541667989803183792830575621466443553936508022321352062438679029109558838751324803064418053865186046074840719580902412931206419972520760116465293772967448887734967544051912310279896119175393667122426910556237295437369347088453822056470078848302135540532197493252511716880009616063223704651969680292901454964130896383370527940515042746601166674653863972644717547325552612379954550497800789104524955122323416008841926934281417759663216526912283238800945816905502913404902516769571578526011762893023093958369325421359517857264341412019425938327080571195880307718084368028660441769834917186732847532019367441370445640376636618742863620419023954618912429110528246660092989308696179679226626467215196710079128105565414007803538080877416213753545697792755608304211379534480143122792014798511538844012484964249234100907228615290986658766502916232981956708931144201212384692041494751337830803201043973469933501471672345251294397782982799737310702353716444796528600007809353971593185392428221834813014726147447851219592337928242388083609870411883926243733135020512088023241901198025215900141431972591813386158256664302305410369310835854894908314475586598326257286066535452498606091023451315111336360568628579473935373057542453775574554780422914940741537879796923502229812295899153520576720406754170932771678715625985675571053855861915438584686622683625985469929053872709241200959756520438832084844526450760747990096645823691411859517618419913547617656695592834461776365472830342146650496687056652557692661409668884657727684636294953045084205256888553842179363592995303155373368173177707810991494446595473115771758009491096057164965644020878922965050193202407343211772633539824938873535135632347410427853814810596076624773025868643021305438517024102420436197158245129284280355490346567066684429568948827806326069096458691072133301963507286332251209759153845044073941382695487945920985039541572333545902103391789576188727822387122067589258118254221789280590063905037165382940490023860678593470487915140421745674230642320556960028384714598447845492645678742927295767988865454972753268336866596513604970816937726098507703258882653885326154796359821961124682904067937622728753925408834615449149784862852716728925300462499659206034867084721583718479886591733218553267561388617563468586027560949373567955018864083104834943289634039613086503774292240666509943272018479762686421629470146245735055091243358165769719915274298908676084959669412631711249996869212457773507520991624020917306939201932646126147334477185666432130333772432328498913255676050685201769539669293769139981038827142490539363882270469066454827771922333287295386323286658996694920606614969686396004768590948441679921666884840853021177163838006507776138490280942796414501178002805670661657232829070045397185499874179548798721684811760174970927891218367713302489941756325395262148994832635369014781318920517481607778046968324073122487353735828067050892319347459675344774668443362241981407888180420112905422924197877803158317798808501704610727426036578707884091399955982963578921121717230485454263525455025439836808363808391750416524707704103119211349603176912087158592315256500485792737797959187295977507964871957528217743272421658604414758061292537058585526499887884734698610377732180459214444679456263061565283173936716918961457072311025008684581853295430131520526059090110278442087828051911414984686761343514254307931186418740872897304540917655033051826693236414366747101433334017314341630981886452645594773125248805650202441238548687856425225498861579987233392780588270348021393118915763368867541458015980321238817840714201434003848801913208561240133156598414514050953802096421686361628889962007454385344679108022343446168291625513171202260734630068428235517401997640170753812174795232780571267150004212192411029951996911328731379190164559507435250067446205830550982712780958841888916759661490520349834547503455482678258778748240922953914810780903039331891417231065804572258747794456654971528678438479522418504230793493433989244838782978231881755591131044450535562981161995979431502642813339170183888825802483563289304422865993835157657108648195009366546419978131531155413393064390628697311263716604570055150829351570754278720929036309740691452051688657027642288718114077885902442766905086289679431177543714611418458225042242053096795770676379315230316106736540961823525727776144059340460533401324479849921756611180785308808884346044920998632010364758400430811434063348674228581038757907635177218929797491126550670543403620710793534388191649908663531847682043874525793944270738697764199632730952016776667370292214910655273164906515305356355605231415857922524261689724247639819295901313798395559216497111538436461594749988126393337980110397561154344816451133806552997175828065283214506084165283766851375981528315280270924387327482969357751549927844192701875990158402386421582387614166905622302525246744362671078439931534142947131403100415723949817837632835712254561084317984044711436480864424276408665620533209444785257516198824507908924564914464605134998441143167768628098939617070947578746034177037617023477331822306767010767628720466919035886369614335548632458227675017471435207207598564580374133245467341919904704697397212824111939828069048521194583351187193235803837304595700381862421979157070365886168457728716590174046222334473820921248503351219195193755629968455737552925780131658807921303726745179173999221782308039379906163029574597161274747761356728666452896946324828802059176212465875901717667165986782487424309266175941834792062858815803151685507162917323900448684328588763319592980469123942732677343443703390252446789315722190665817503851730196921735534619507571906160167717383995226494964199690293061422393744506682257403867919936713027827932429083277161446715807831898059042740034621600257218616143084198137340747705167570431363710563087582921004163758286140081793325249690741806394042916128737321476227384687837927895486183107889475559891232891150503981571238359826962356289363877175907325391046261048980277185177563869687267460727853158837478760517558504378974726257050646994901680061688372786368494699896837486335035509988723972109348558974550452154753240542046591140072639398419337429550629090644369045530643805728944171681241471726736034014906337267852163472646827932145049250202196371091904602783904932126216723087208171955490388262230410583451025731743980978355085711782163027652906040882128962195808181113087070240387125393625173596203671385567184705195550876010005429938829440461721646057253534050219762803253249440010376127210293237737844308269483155486721366238181176278714575497435031939402934246353952712080295111001052159775557098650999709454022212823029069789796358384374099753677014959735423812035463436264465495907964945451260747584694118979081874030015163195230428443548246759778928832250738858844494986529698728554570261837995128756754066505880654966423886567919804971050465557555250397666237547018700374699654264187847992208999900270561345528396231336552169425764878077082137876755459937848483859132593738812970002011216217312450473765360458057980157154926309430461426212818446947701111589133283550467397801988107003753209424961750918826955660939894730587359017334147027300106966429559340149995520106168172832395685398702200268880504141749437302021164182394202588139780767888158675324051712095903756045839599166544442917653629871551093195065850603915660517157723221044343950464741286652417914444741475487376453211172846249617332208954044443202061444557633581338018663237263029419922596876022163039411322447199597024347964352125124197372832875020265360177758210675228258951821797525406409608215562324854078374453486633617619768439459465275414540761172249503839238881330841527769533361743149866561784981236679083958916297024528245324509576981993805011933359067760320217303801490485223676543684507563310415214034848307543727947884364411263992031267822176431933886399320729611434982016284286939103328724841423224969034872863386923152489850850875089070011336708718908339338458336500184655232269329576981146816508773284416549851387720567005809197479516709423619528646144999475741138605893329054682199421320672317525190282427463933403706670527211511237702474779745919861404789983694143620494833269698808943581649999611587102016499126427956906266299321347308476434658141824472911556973264203370343016748198122349176688609046929753384958236261145235260218300749643784268838536798309385589549999356184062501920976647011173601917197506556394696248562384880233404812969626170574944728510649014449128860981340455815603908891633131505691772103761901993660114044012411219111135302759603150653968437064316485113991332459276992431606560630068371182776127170384364401146858290404108257047577020711655533900512582516800135444722994588508723924545829802217402235653635226448073345098818503929537016170557061086377875235605789660128141358746807960790024912063141898886026365726732547798491575040069521921079064882478417198353587166389344815040082897977889052433240678684482201735244080957148290464822430547575001621697175267168050741939102182964474785396418493249618466612082329351312210684925081809915505066121396890602928576877431897020921581162444246427711077496686529105217429759299965223617119371034138256213868882159787301387703429245546087524194275740860522902221709303575492334306639932613514680657422456661602780973732904581364005877391689114088534964549497904060147831513167199044483578428450483036640586934403007045755737523716656711250525809803116426660772300570154486167617742517790020234269549197737133051347557591423943486784524667217554847863633088296918956739115978140189451393117272325337221578180104851915073818656073251835145779925883532909385917770518095498910287510417854383319844329242891795722177504357222844749239475714211715076716330173989701216380545771382240197488736663401329651840396821217004102232513078461840035340210558754158005514216401114174603842538925951572611478341102098223646554633592694631102699021250037409406078535875830090635925488911952426211531505944077438764642445400421514583836823492207311447249469518612955209424884170720375297989518383532869089518289441036419117630661489807087477839045426778419526777424162072387796691189121379853270591987438440793175868822338092536933330496003459957939487503083638075551676485403110554407719460592124425403094692204057617794350780273514342463243735486128928485483134401459642767479931570841991547150382648834063142161925620417183831544082897998089906258223799561163741852168252834213639834366951115567785542833885282563620774280144358936669015671905220192843329226837490632189857627678970365957406654728976858822751113699048308560371885313710590987977684090151331764094000095729909502017867730824733078184373648785645355881794327019091048947247449589908377437875212203121852047594170520278970375075345735752184513350397366328763004091914858969117493974412056631970687697562291985232225331498085245622409900244674059606266981439559574963563353418517381576409385837432444125665997850528492211418095740999226125908435318096962217257495967846641878179880088812023383711499027718384540201109206398934100202102998512869208742503354773649168756801721926275308793491312180054546433138306713884298932053622403609986941001318887808374421511381156623837410662757683733042791219340495276973390051152677901913438314615059740597076924375576794064706240272961803535608063304287043520999605156405753710265805868856495748394006605261904219639714986951782530080644679507483856279941835365145741944723389505033584560414479408671193359924003839285339119243357123251734809800287407125861457519601258372968997092888467111938287559025862877341251113527687736694607467173641109593968801834568087501482190159800221671098808469689710936279454760935679383568641489106930905298044389635595785876794721181779522119616426070208501322219796481110326182706324477956320801084588970282285553656857841119701666342910971346404485974352608319067238154778925251927630575212632659391751799064861690187821398422360180686994866220027536928753794181320038526275981184096102139485208367637657542705525038286233828706185262743462417035057813620171312728481452582709781764064547305938266061363667427711828323940719483860658196687103807265025300448380858030623585757773166376549240584111322418581055292392615508681969294166949906914749030385021304569339371545480308197685028037012847412794844049978062499692323204004639214561712150752998763158025315833483001745341917614209961886998310558483848275164676300899546252311288222696158197275829515312304861102413471948294167619580935912349546990100728182570258304496477104039820785961855807984926776309541680190095899682858551389185291327548687224884524787326859004789994835229509017375458479171540661067836893408207260829796053057721817310673457105917042102961607829914363621892714548979613637404739710275731205304211878978431339690663163587985377972861027912335953768286793693747190592268900159568213734992294614119993595487144904456339951746351531689588912706479534245980892531103268225270299636913812248612585546973868143694998549312572405413222585362495205429811484723672757196674554484448328319356435765184892523683420780949116942012176124787207747725436199295141938741657682177354483319489334656015025885997446773296805307199339626827555109660829954999846942402441124749529278047757881429291405960311787680977835701194925231766103703959721133809875467093605375148265035519335017041901712038811506050527350415532967807466618313839548933362007376130269572804691536221417821418513955701874629591008032539466331543642446503029037111797639343074230115326561949385391606220354299003376975497135299478109629179872745201939300695279640324238944487326472998345105518852717211961195900669133431925554727327210907481370366707152182725776230671799044894243282118779252106736457406029656580437567932881428384770752561525813797619128704190966835998803748471197688738458001557919779829667151222240758103558898716683268070782327788365484032978593037774106747476659339738620515935442093153088368978419369696173199785073269209272609154710729851128357039826917412300697746097362422261834643783257488217877059318207487794464417030443680918225074075156372001817890296625457212072771598647881402704191933086658367367052496349162253710563173899655480498788240177048171511989998071671266013628505481691995226137307015381607307152702346664520686423937170477644794751598604076223520019221175702538445991322954027805682054390078627081509647738305947690888340652573059832626314258558725540965571088812907656468358443279356105469940227707441415271986610107825620076265264729275900303898703691010810797337920373792773641707131908927927989700113616795827473934107709242443010279044201818282522045019891784270091326162608948674133378817527361642801131127016953894873480521825985792254952701173061611549634819660604900666200274875092188304648330331210873895100939668551385438288902804200030306518708351150683428832821328001045758778293190055159392314381618178452429261712115543466167166147401742033092092937671050571480648413223325117852031904355840710838781334558749684349655235523046685973114515850246659925338715654053367553074946124357109659959561132970039542694665490174000070594495969524116254386861057823889689795412066556220952020596322377274169849041999002306573898798455756885577676555958237142906865970853074703736844224574352893260852130436082430584362635650924492084201406471705844212438855275620599522528880001274747946939839884256190219632254659190032241064402024636399063317919347302192854150859646065840644999378429357496835151139293371723719329301713995932112645656907238641847877231379678429928960355108971744632949612201722234021376432510067557618326592471591328927689500682493819122694291089924932116911428162111847202682315720583409937993001083102061408678397255250288400883168683659179852746552771398295049408614772131854431302213119676646366245154428225679991584211184078482105963031482199069528343988577074059534090982191242128101516289088437195893166141219218331835679809219266828454455178981917951936004224382654032896882288114680726952397829585433869616876256318691872840858364070044134556315919379089912760276352853514105195655526062589809948562600134911741715804720702398036956954112312346524190249149285933629497538959884500915086052564537743969226562050936572368312938623878982031786151557195528922292361532757246677951264963160186378663827373147517062330470036335675481688384986186108100172915976812388351447024499222067591457996141225023017218792096018963415624611999536784830983629398827926510572754619027166461276582817874514142057494716920264751083404480944363335564438042273691854204152551977736307635550208695934038754835804407845200321259882281023544919713170149250598573265937206736044178234974287349030515836604392694382999309803268332269683871567456468160377278792672988301246718174592602596400103254361033414344299730768529636936058506828053391442134024934626035230786731646030803229639437804746030116744591299972109097087930893840915605624036849299059614640952952946122305969840151950713115813628613881031136977762163504136997043103199792668821250788936963855289087748840148935500210776144134815166504705336420451154741506679297417877228671251274204430533281278526719612381536007133096242460086895844616316877582913361546488725691213336399678581292186980219009352577765911333524522106643763331348040893975605391301453287439619055391007376811970112394124396033782224812791848862148236396170549937832135302959709605976138936204241367216661854596601795068191264419248989632327008069574144286821491505804694118184243049934476472030848081085207697101528881481348397207868627594466167066218940753637775068105035772359403891446988810241623297908563056279106032473085881840502446347842117234377281031538376820179302823797200827962224953266425210714675082934832119289301883020401723364679833116994419121271022057250750409987176769494740266615345953270388227180000437884561480920576537746029885384535945837694493020564369437418025856164262384848380068485485091389174231422211132953112370435218269974264794299298551166772368718923791789782945245792189718387178625661331299834019453361234175427333584699224122192076248951668071799477936169807541207485687898731087959259798403767279322386677096181188279923436325429431223544214009909196982009237564702459264743772909816081980236113928964531594289330028316410749642977170866371463996743633925684376696914491790972659512958993330727165837323575810846938587838134554805007951704839805112109359727162027565638127016213462443486566397973444176710256312347881034790216228885454690257522953056240077556325360971092053787435923970821328014069784727356793567764315720486410793889052955108126565654456920759767358600156122464388287313356290333248974182268440502718771771875727973669514788221207793194258345054488491286934435878417825824884289111875418293576360037662831889317219692676444957219745495441273777317156987249913568746139968440774783871860382124968815607945308510258300060616625996605330964283801706587445655688435263149215699553359114104410881905326318282986429694273826516816867352591301573516968342460341836867608164120652648631990238168514742124715669144455659854588557802945380754297825370444637197760270449927743980469166876302999305064057726869140883825950957291529057437861185616291837333694012931734835787312962852329094093411819741475921669784105191837101625592926840972835227242016865316754507742410575905614273951180336543489677556503531110552961451174561830306390631000399102937057275352351905271544694745526710948625109485601328012762205278466185830669949071394863622126265803943024792060775916857949062991060114429108879484364349999952561917974222049380943425277944570053678166004711957145385067045261012116939582992856373879418248356428042116359406572979629082348482510036179457877515358878202768590542425301150259576837300956464299611054637513689805769078886398085307380950071100915226934446919113228964749402279368554569527245063666531459945564867644786646812079675332385073533012765477649492747789061591140414803418246940058805649309143225494000054878557086422301804783148187751986762666997416392765103505250010887893635528014253282896096829493974904175416675640728602024962836547352876462846930072998026185734832362931650410096114701815529884408668748125967823343544796085220927974200455383969623572766352900426095062674001193743133039567962854016883548395899279815176893399064610282637457402827822375729261903204261224332813378551462400559580521224316388088849680176882004620088778531608564473431392638910968583422761343855932616078028774932291707868050057274250662976891627844397834495979621690918324693988870735205137591137403551926787924312955234153107956860244079532814189217741053032272591647888095566947143356738785196035354670494081470889421033234050427326120819523844303194541613392051608862175277108088334288190470790188459690405693165656724523905145024315926007038477839487454601967025939034555283671740630960573569710281456260465911899905249298284974749545915041248560313501547439240519491017340324376726268892889633022767198787644120604773314113763497681466177929587406093693065306369023391877393974493051991084475617735136434725861734232279617307095861737249353118318196946020416144823987970282294007686114758400679979693917719257136367177814816155075154585597403485372319177724701926763956259602914876905195417911862054745337894240272790486498068816246375910768178059990258452513967888484165530039326100851765085687523022921265962357996155980885147771610205518324759019974210334144720667115438763778255708990061670483121980330288426747409597410736904392205963658558361196518841363017856962097837981583086527554910328854922404996416432366641695147226198454009088500401408527214645124142234745281564907359100877646770838570899538061206104714402659828700548318945612128960425146621119781325137253132599573412864168298499583837404472715293629044780465344665626900927475801374511959601446897237716770593824792230348884747613701020112431187969084311813871775623178023596627597907642746706895680792883150106244408217506718912200630266979867237217311142144188593768520171128775085460410164168861938231300858891676592189995803686411250530782673307538516568385135835980970533432920872597336198412116051187896802220140274225434336751731748199940935566565279164982763671555412918514564349789500352077164909295204885656689778009526039571314089501868698049779934633044327533158358039522137227675771100178688011190924129653700031276611778928447338659235751144726671320537049367767442595995136927669568289497467059960615520212904575076986994416782316602054007332418695557792779079638670464301724883949095686983667305996659635003186392916458108840851246985791265371280621034972014369140568892750002233018532247290132570712816418554978059393680511358033311850749130008540939974612110627324182572157627722484621952988729830582563519509996684468904394457039516306731545361352408350713904645291218955680142285571895169156607709631419160457370157831897038999143593279131877108874747874782219080283571655568308226060759175338752938546735667552242060237846119110012502268869264056046461853680963744568760599547167393054492169719947078087498210830459954194014573578239421562463766685009694060942632775064432213917662627934684986318144316571059200461219260989314762798417516624267053343950469510596075151318246324635169820239321846789586121441449310653131050535699683583182924255825544811437944047537100602803678152870489869099158970301320390447201492757566215345358620744185453663312028310214178275632737771581159389480730908966005191970599027908408378429641949281630525511363489869831263321167536942264648074372688937695010028948185965838575674193208076089025657010728766855258875491300016389183426035227537574977328133433026866702214666502479920599690850968711260861698456478216002842601010826331478865112186347872576780781561052584234160646507774718244023963871982057822836986074522982863642245398592222786521849550631479147145815578281866150603906102365703207075338830610203972220492199974824724788548691296085986505000126433242019962240287212038092793039719559377876649504831517618398091492327131405113304828517739571707380903470037996984227131290689810226218202279531247842568868069150117675373312165306246378599824805182720805331050467318311098401001651325059586103629925886388065406288727407666790809575138468835692074472600628891484937927762963096207093791593726920735677087081529227834981837822085047360988603966455993038179280951885167843395296529661630414413956624800464156772225599356001171768224310490197907065496520535172867790953650038849586142250572234887868101686461054028881257026038479087849017706169376610428318535327183618450186382359321534886617663716090394387014774189015865500787216771440907953242340466442196817001361736855766167264385517374107977280431854886033989212951830935553412020876660454199301335032424834210750625466755552582721141690797962958758548070259564233314156541291719766903185043816056040995116086031259320510216159022105099048100139163796853510333714561335183581589579549898029744626476325118558995635413541142991154982819565614415912057898348267685315903041517298160393178172161258449698820965231931970422111270408693631288380793021507000463419921269725584547360584310479757103954051079549061070383619406598647824663218943738384626866212700439182764007859959590659945701113765018525619462371525253875053192641966893346034963568822597348919955849469249975917417301035684377225683658291314874529574524294323898898930351891517553790360660662457871874508799895413646220986378281868695755003431191946452535811296256543385187442354676274482407287428403354882931982576245103337479490026143483222749054936795266428008389665110255499176144309460140677435911562434564174583515790401955034376064159008357324424115168808464457979977119246084794682935141695059326033847316867854769969221724062972690395624596691858030686921141812082488468632400345765154470773771240936487357161154010883011431336758466298511814275630791778440716491975247001607897175895184786152888453889592980147353855384239545013964936338888965154690168020831698919361163190437200325583861963550796975690230856819242430879582840161020381709247222420387540997992366521199333462361138838194656536161450020470740541454321583952632915916672267495272922825044593619378984837543797230967833327717014827869346641970861577787937407271770669897944127492647940304070115055705511431125213647336745778566080388595333345615340985004827177908472847355566181430349856505581165980914456093363586962279618562265855227752243272693372373627561055486087282323624689434184337926980901097547214375695284614625456787035905205258882169350465549269203545667209495258183016813624945868112192070075915878800142943147813040151861277460056077819787811880512947471974964751631683911352820992655637928245350183525926899532841174717389661968353315597028931607204499086118564429574433080748878615261650367635841589466665673154376701014209417573968691491448099487315898622469433971214651175775555784436019237424890866647908824574745147899252704158412815208344483845977302369576121156794780042829723064151908038528887530141350101007189872628814483372251818583791455917507112527578160485744190113547528053248004150065931709251335811346979873482282748342255138682401132884936417714370928229447324366010767756084406196238107536203491964930460817145732966081487193463794828538661405952947261104137570771547792269259310226173009480246112804820847341878383303736286803663423020122343917312776700070732017746881939062745188944478454760231407119447715256938402216928992991453512765713925138007697106082614923030191619200024000198500387840417052156978223113975259665064845373078599152464368779488773687929655515572593730486464030427447933075221591719308699188280034277898638453326767014200199456687743872897114206177949944493062265843298535746745413689293478571268037670297195153540009885373924678595133684482575215332764865321377830742300152325243974531270137983277553480742400451790110415846445138576581329106691664072052533398228263937861584923935088894984344681673816373972164816000854036479208357719137139609897576496411667708194105617701713097089382802600773151215003302977197315294183052547029377735548068607268920379453494209605884016045425528049976373968427103669267118816434876480516951466908622035097079169806552232285034321281526632940469593369025996992749161795226930740842839985167821561473734813209452782753525306665968368168799993480268922041592186552173938782601751491330799301224656825266318056028293556823388545782744719563690376834403310392718141957164365741054436055129100814438464039492223661615197437818056983815666269805771922314883891843282267242722978540689504998484292491526191345326360053955292919241722157316247625731449151920770809218826078060487508460767202129184305309126638015598573064325542369268435480369428770270021729769856772812492374853698042425885537065151456675690875977195665480779807254964528747475191777127166833475890027270545116545257540041484368649180844823182269843908059512658340613111041380039531998772714243078253190922244510946517092149997216945900114815696684431311044833514660028626583540716406748672683369156443978047277200518004358247015741018098002602781839521853655131707584397274496026879678540908616339263273112691851868051618465862275221444130713030590708236884930388856446348774351168293834415282811014206004317759158957784639054966002578604356716352653829548102675338349464941646775719551573398092774040649792097280355605872619726978029806880965573453813414347275994861452288491792763020861622720455818986190526353593377777247811035192123038260302962761575747578611688384388595752141234520215662306211602430971605431588766853953297131799972746845527484510768909533641535219094370817054461899880336939969429405873246036265193748609412600038357682849192669171678327087079047606398007213576321161967306166049066444715463366077196991925852240407048938549289002807860575848172097467855937922322391914644418239974283696143273625688407204384150235576729303753560881754012042020109605300558731926970295889352996264323086055185382594877150055919108351281880631449265129016115530197032172408539980299022476031161824666677836874689321054778753521605620165657252423478645536160931853076972053040451787735752237722505244732231299924521950299346373682391127140816347014269409975994567393191097850841084361381329101987815040302667394998293097983062229454193486223826893423513229029049865452147891640925832879152295355811473151329177478684096746883734917421364178179080484018256261146880387547381266179488215552602595046710603480861123592749563434676108609291460593269152623581923779921183592326133223689927694098822086177684762670516408442353134283744386469985385338344739038367571243499501991824914025788990376041484983176037393451964894875761029176753689497984723531330580447667884860123772065040720499464157127577407563425135824870761913329752247186505836552893075621049372246474789223570484788165235641041387225651624114524352034930679352482379534966548808963915592091134995362286763664793575629744777015496763107287476751204426153097601431045367293560222749756701219198970914544034177069886212600286734203636482204635427525358419090255506638743131722794479877930241100844803303427479717883958674069974394006763492195803850080693227710259414189128734160245652924402842855720742831288356159615822037717750021205637628495478517381552213510688846590442762150124320817829007227743210381602470301793959829087531652574195968971034472891180448651776479147303851673513184990530577873902205644814106296529014613563427453513579440875925273879901275275977986471778835996201195267455694781110522362259977756767835389150894413974846616043088954603173927916962816604672267619499817438562815865593139867000975881443227060912205149216986518343979994823417390736460579083923499041910537060875550277029602875003053332719050969684222186928361050032947097732884105531520505380527116149667233418489382835278239284264997819120092435656506123272348262324532147752774662300799327788028682387134826756110024327295794454825993841593262017093631223011593208404729333592146974799442697487231434910418364595559570109157209137960202185091093712147205266601393412417723474387068099971147954115887847270938889637059518657333300401664004483087740351825386817438710693213407963158851442907555235349792572281650829448391896890679307926260344989755721444772507298399134942202358390829878272034729501329605116859015472433482734425315141031918315033467232184220390249576348158508196358294597191417920656658599018900453261409285948996722383844842794641825229069692384973504254180216838400843249176204399652893680645150938058065173873710365351759115763493277343498228560899627532915385239340551071423590103919016581953134305782999155543338566658747400986748015694727337566846590594932692254990908096451381326230922115686865379190076807793511279550667572834894335874548832482897606846525343263161306771228900203101222091743607227249566118513954423251793413823216469209250454112311854459990971546588873058370117723518130335558537123357218379289861030407232162256788517985083836548828452697070557556125866437133142837472001550211421077569143428679306457343666661913703334579272867300436572922184420075052071676507560941321128392716136790102271336575507209111948139146363758819385615731908348068809817781246610477730411009225838809325820553656815438094433552680053924047553498166220292097124823921351791234867976836581023518759627838569307848798916399657471472228110753122706966510326498608176216536820510340953146995275790712753716517439120947280767154115361163811989119723607876560393528672474733633441801398074561042989923227573019971974798435246248381272908059182124953020554688995744379719704412870909842312426107084600154899379098340133233857748296723984767403999728869988722732217908909875031380054240289644868530523562224719222261179652657268155967281515887769329285930188067553872727152385494342946178035083363912404147112272634873436196231472140947130917590267429097051642480343028131815436863378760950927103231724422909886136042501705115034494395955904548850997134254686679458887801792345208020905156075497183690884844823038618794139143660689015383372006402329857799492432489530267805979108417441981827637664735198695878534482315671860019826238057985697654203405416521361785500108847047086559585650524090478100809250819570648474795318599662419872293486250488169482497053244983182569354644695678648598519838883324118738925929084453127501899217717468939584222422977756408768386511908554961133208539806573725215558908484553016287965928242326525307979460469993300501175361575968215459669856801255605526742985298227739042939379551981351742135399719750298758367012090752570740796370877775443942173389259738394870146153582108606709343410497699692816282584005176689952979453801253334708077452964855256104415167843321148821141904940442261261749131993512097733278147137766531953074332492425091423443652734475403857042683736459942453367040696235701632730555755025358397304030933512769302442641874741894813762066134760234973891651027671669276359710885120856316821202144111078657372822806404634510826878463496255849517150018491952607249497932728613123558153451340850242201011355808283949143183868241679739593302534673243011978433824189967700241449745940254281787408651354611782037159788475995665209919790621014688986117990720662639807682817356496837820916240361965496713315306816064653441182668060643790526891448506396658762569624352693189024689335742591997936859235470046193999855917723294313379080092097148038247313228126643860899153556452791237168482668110268028801519374780393655111362984536405605135306057095964664714690978661942485843435703033890197637668993752499321989599587136230677908740408068387562079314024528039113128896548554103747823840170547247455285175092464722370990710898525976545262205101087606103952230714587578508991442953631069000812589119357507591224202031693230926417354455934974421316985325714762630763077160946290645916089237109672938365946786692014816203621898899046169672800266119086517663259516760499802042979975895467213810694495065550293840736047854338968223368967354194184564401573811346779920977968995234970725111142466779547344854454636950666962456165486834920060412225407329917102513467841550914447777905650197469882994561950483006429202787030283538669154225953446794340304913066473440169794053351691407118641691692810634405390089446739532804518210097061408382445964838196550014341383384690085449590798145327224622865643381835766137065961867138424257637710626632865516081520236232449781949271271264044675540341681230289998999269217249292377473099924783707755896212301980534481693875139100058280508012427558537924721878816377864966030861450203291470178872415197201491869052427199116562831315139646923847907416195652914858010194400429386635385882495650712272509360156368117138216526074256319598806810586200740201535647688366016399920075379082159121146495827691523632132035482298278209547763184472922226029882293463774341445246857275354061236805766888090569275544420601820076681777387010276867401902062399850945806179008965740856331456845372660100316403130029871213505499614470167141478722006426531865224887299825598195740286873849553652623188829336030231064638165444641590947022860262689283817274536720282028238916208857493471736326462238106972815835927322640437110425519567604934556699836871920141630867199401940079981230606886739775234524725383508619435515287211711942622380823665897384598935790614533208381517702164864403536736372857628837809439056289846717435720148791107343833995020315766924823714095816401466322288380226463525497374288335487199282421371221622911200078677622793919795153022266251160153664411419941511224780397924387146896275026009842820419172457329639864431569320862064149111443257086002858056120967860856557263440871795927866626406679037143783706704379276314395598809066258173638575373746647450925963135691669192270923878408599317168335412020714406561654835272462874782266222178616208871532430884010528207211964955194252637728274291175638017461960891571202957058762431266485118566530922474550937054550006236154148267010478396804614296667730375605932603200726955459316536310160018146360965166497721764312004804367087534102375288905855273033187184599933742509323781331388080801539943676702931253298121593752988476469051774650526847147577607456017645768076081287752488465646809581685927050917011432694139752750826186829241994448949956532833750386642769042910220500142146825638506744346043931455145912410537485901962434786237412382014288966957371805211462227603079993982955122158040749713223011645440843207449404495018279444336812336253194483427259809067386615540514935433899960220359435189368891117949835290488503833336774993151651062355341269716659576727562726665365000780216104076236683383444063031006979363402858761196768846159941457790457704761616713463926146339763254405702220469064012014851861663344928860333238313974539901888234332640394174134730577501410296802151192178837200492857227087581229874330207094808206598689585531182844776436807241204361360202035410653438846316201000256823242789800517652954609663049286958822892515798587244322290807533686313331110693231105793556623545136659935266014592048996435708885522210285975501448113014817879753250562387095706101982929001320499988152779692045286195943691131855802137832089961848273773343318644986477112178507387147952408304967085536356132197498812257248195072121339988619350782040306963186618727486503487408352426873587052913132611060395827618278982365085300157329167169767108915159983404438521445317580871227456597550136139957868391371059988886409417328400736690118793804236993172698707244222867468050084632818168007458318822719803666927319571703311761090586052961130531002511365075267924447226500971581114737791387971018120732645640773602049338317488660275328021378381776429725411922244101309999688984121349151644507574949457020221819529346061718821433693966606431316542846771654841082682755460548723283182231527641266811573113134433918689389426270797165348939266945889261953373174570804493325578512825348401482732769189062378195317518439047185428356274092061752946644273049615862176787959423868766118488411234639661232448061646708250324902487335966469893280652405208611940938700255356718960733628197591737898249650242181462700812080427841777136933988726015899483351776504788398356984254185295086455759760828290906784142136313619166901728938198107409665636823129267889412261701249148902334954793395874424806746022076647533480811451639205796531641822574590132687472447984501151800428455015639824816926965688620648790703755435125542109519766154912935974451111954161915499741580707374063092303433745186972614591242627566533577118318413060145390033477064201528914919899683461307491477668942897742901069097025333252940596104731155375022770032681070006249942913556706820006102421448851685013578991983410773416265046839984661302779318430628704952596513703522444845314800054339701386170337727635035929828658847514683896705727700394310382472352795174984118090579910140011448346221456018509468819428773603526884744145835066190508442738278216704700161607239030461457107463332238719121906556003869132177938108477646609988219903762965348073255994236797873698917039474000524737717901905369395189953774326793467499163868717087634350192305962019675788635127049071104053951461421310047172207918779222338879190968809497065843256830662700551159109623531431471290060876745728079223936957828211170709537937613565998588316193379113340043687153188727168171573662941216437376392862417342247449561429707387434563829472508763252448867662910221445014736059234748969476062962198271688532787048091231608234167535369732501592974134227293757336982248140100275308727634809750693505303780803801564211946929643127077058312744075859458542589263602154783384896555331730712907916647030277049652926488519082147552680036110259989663207591994851362691542588114145206514324333105788649588975416446118181095002098216672353343306620577293350224903418826946852040996792912678418855040215768714237563281197671440732605007828911630908045237410567570423754490951874597283957089402953293187998517321222096605558318854367787471964431981354942402389495487454835717496914664212311579219441877573714314223877501333645569848172131684068859553015216786404872236788479079951434071272206272525126162197910578773053865930850419918065886243939810989279458518024605665776321360726838935760569782827171991698021138141728999183930375340364033545193008399031477301458665486490401788739003643817999445830613634423282970957969325277654993417568889033204963742570905694324305758715873525150597923626098036316487695932627547888033091532157630947784069134063090926315034816421616267845340663275829162230037222138981624478270029536101934792522383944503361528447248163175048713744234908802350672465303421552922265287998892928597157628069251542083261880828284593810626783380841898519680766791981469068217222478710154199597696353833939133202943605107285833578458161824244801916855293106727525046194247649635454711932690545569678710835692719594945357206174138568281540379373738668986622242378824109594385546845093910684065990761889625776577528606506770582325286373164879204960291813399663312598495182320348761216427388930986129375802125466051318875591652183201256330954320597079807976589531901384174055080652655359013918028639411340687767540761246116361351393534670550885554589251452077324270567743045395619102129022396718416446850315921352827314734432835262633607316261130507715855714530632485799287272735103141178772481080377980177159779380265241854954235640662194777458706699829695399699288740608328260986485349381354541506517726600995290290448596140324079380489504411140896518123512544889321580020332004578405137954129774289977565589848855029043168764538886197204358448715104629755762267161800562362441950146707941018912372958705261723294308997129525141686592567140759378351294059291343681395831136633606400563564907204128145079276404399639684408988648646992355087846588756679498889744904501032786488503248123851977640221715028501178126325733651678130369910506608548520654782568541645194709318688094037329545516023341654169150443545202284539692933756659307001826432817629277079745374759128275387313651575349109050513881056751666060747404178034269608633817574809553774750247322002935973026401125646425976818489499725411729601072345964207058018273255856397809715796821466699165771165721399093780090368652993658368119863198135726308876031278451480381621650006886173281465970475462688870173801634393712458709734856132614886360074500766030852754496185627240658436949863876693663412555976410764756306164072465029478812151630871538006444531027431420071819286930251136454497903587178105144968834810978243561421129583785327182076875887998878958071658915960260515298873280092408092898614709452880852738689618521578436167646157581313610990659003486308091334965727330799335075702885366162757384049183798607728273330834506553166496751162059831133289951801099635727982100446803296045123522539029744250411921951696753383227420634635428276353162272748875984503184015199879832323183229976876218238394810294111432775244933582291148188982313990308240578611995708487447539294982070765832437393725820361530394618458350871989826215829074523414202766369841403002584227329673815078062711909206045523320074608627344245997312428535495056081639577951432100930845532255196226483223704040978267401943320366853683733271493201800929440295378705259323182941822653775163734917161326237890547085164896405121513394475748610950467958055439180683598205375683254074074645160143211392559427536536903198429652025858315361061011412219710946097029280882292422746478342796801993711405649023431435044881908097853561847526552037607129107746222567755102686913710709424330011744676468808255933126446468729117637082932637700647680650738831555532574514973028562451198152858439113990656691745969843170575218910272980352283376126747497272215019136324978661667185508565684330065691392671709804174182680176849439428453579335467126680571728210628463068377738626602315304406357367196305939881126253360134323571925139189399109329831327325798248293472829474553543657819764771674207808450590285127508169220994729237619042882734255244889354879510166133706281666678730108569838323232103654930395737119986246010390769556220354614098180653542606593141605680951060617529058861081881423164515422343148106518688879842113658759918406044834450626058352469765314193648111888218810424615608494633490957229541417874053624020311019857202871498414657939655728847467406297715151551136489748717388906889989210027754934180016665603830829855848868557416369966133710189937508096980559630792992792384608238957853424042393397858698962634921807167084922163773954484112046625159099573024094666488459367730647907046606491643175606962001147821973348983908483599041403497840915432384543897349533438240333980415448362208638961651555944475480387150688210904917874757922270215973559931516019390521572883763416864134480046742708750647850634438292976356459042692558429216556351408743636193684280524405690497516660311605972887598330059798526908858032675498953883687059155006727272259972087177698764117271193827159545980731189621326057998082343519037724321983647384133777872065645046117870397495280158080218517724897539394377057811036464067348786495141871678811845103719008763905827022131930495512719105790077257518692454893275869045843483158187858908891848591057037576908555246367692266308699892883313650788032518049536472300294823394188667075252701382768091242993045828663261146660573834466694987547501802847640522955539412988285227118525574546003974667693950799186970743413823704039917599814737794296314410388237822110157904910998868043151292898743193183582875306398468019427170259853986245583598292289779835194663997993031109819056871335087558751626387626033883984572361659406205891586762240475592967156270616446698503357029916528788098508875534311840081476756773287735536064384859876606817613666956385274215086062853470708137523051589915153690126163568593277514759375789653387918019832337481842917988619585318094643319539343420830032206540105762390976549949494349599954284864785013340512003755599897593912430811648171814030195068294858017025628430391089904593003493553617108007337268153673653893928511494263958831791427950273339941795487674693220648327821567829630198596359768318034077347364159597795608387913334262010327725423209038350892848393267402299797099758907094914983198624573077580402408073933261249400116883818943316753631898819080079579941345369937023961145949800610789754062657750788548071596014851256381842571159140114711886667737389819878574622710193170746377608374242848764613172814938903918238012620974182430076901924972817162047676506882060693865855969178832642309239568794919900084748957663554062091854492187793411151379788352180243158366940676881118884341936097031308055306985359649095470553314981822489063690889419240579929220349598402537927993617865736908349111775806317793659331429893563667668128416969266829778239751855460912268666723352352064798337142735061162869459623018763332718875587193563728274204441218145719015294945219202201648445668077671607913136604085150159179113559778541829372469305954257919731618138362617700416183302747704335013411102290101811010330964015839833744018690664198249192543538734274197364039061610528433746257996055644923653139928730937833228424439244393578096897489581301421328387451644440523744014449060854022206135307447840261824944345572559215821897719733851773116819245372731595709619212827720281599073582159578893539044880131018592796255364658808236990109345660405800728754860439486280271669041990105235247484332100887519128753497836287579292294670863789088148967226858820263032964820663358230691537193054818143315054950258515628711681077178040022413194246559691671479968982400598289337404644633599348729478333369935678331002491753731039726282282265534651524744769991783093446276456501596478326705377866202586939939031406169470285780752460664420264269020859402121666375823021009180384324547855231499296495802817076454280816053591380159409107646864261626271246817533479196928036850685596623195132483866030266804705112157350074517918047072644317771078221179599457600029697114665490495253874159940384779589856832208320822802005086132781447333734995090723096712241289938206763991585484823772034837386681560128059695254854243061829669454335760922252407454594284292168110322325843834690339333386481351793923059915028178246373884877338088148013543841486242677346475908486195108491992255822810652329897700224909612415157955521497406087175433200948934948734632355257471550646989919739677946596276196250750864667871528626947659981394635701010179421660150778144733521894544279369401148206022219006424694913610668857108458321786046025672987059611562699931427632411046545781143091880019650828330437701846378999444964238786653251055562172143314698274974096836054813335759533790344605526875315486818500517195058457042983561959418008439203171586708619943599555413445751886055050248595405796552172150575914565878064504520894093622165937573867413000353925235550312794763860295950232289614283617088651551938289781013195442205814299364819594206067521298844289714722605519118275218038231500419827549356107380251920708072559794899963645018984361872971386407654877277010434180810975787106161272930413802288635238849841165101592138021481188334644656836344522326848808806553646723956272496466538080145365555030308342424490410339198301570554022034144838872437306657197931093924145051138890024988024205634871546551332819705585934958870688517946049555034995892148939523748903547678036446370003555456049991103073948443357891575204733206199314483458435369587256587535349957391596455755151189027976954347202427834651542498707579147851854263752302838732085729875269908525858162156493614903342464120912523850588051002700236551210585384296287142059812758161255901459372913391954247170601321027804105650546584737837941502494076639507452080856034877846612277658681364777928843528829334122069139639564042505760034118810261785024138809392382402613681513734790137591766796432861397711527050043523518249083156264772738824819719915688856427781632288012470498944512362567179857238306382555423211829321805577156207446130745412124721975878716124588851451485582397443956459651134940566319777926702737927703050294119252905502921949716678691668203774727682439347558558793812875022376448090366630791230151101048792201146584399233066390462346280333999376917344253283355304047168208013454811719725748911249364832816399153356918465411989370342863324171799502350428172382008760306794601334140209771696279529448106846154428061370933658959650152228150633833810812356112520494233539940692466350215238450206047618550841000927131232276144359595660132272622086879994959151568210844762151440670537409897626364524364653041729140604900295183509180618291602394191419858717992824212025495320883540566387765077842232092132747461392287117941600958128755034601025856045589643912400315461785499784252710131290781956416647414334375685530296456750440404477133935614185107302717765964050118163209140102009266618413927066958909481014146239775863038637351568308106636266115946521892995124944835553189697706897191690188424739195621908295011570975138656584154569374751461929252880575891373344246262532982197189512540418051501929585519801739450747921437739309755276612753734306939880262257787763773407467773715307148061004924348148750613848193923533991137283381259826844646448055491259862507374403528177937977859233509842770798245547510848617347134215167449339794977970303754002570722572621126664670888946754413033919231522274018435661903217666222230470553731507439313091656604652872562805192098356792996938986252837430094410359561431629319123578216363275576597514153113409627159075515167794214724110897039160032900228256157740357749906983683433237886183314166274214377985280344683563382383025678652275394715940624997369032812409149694650864763217186650608344649420319840395798923719274758453469401010330612562003276123342456464330350240044389166161157308275501460482210119102336949106697214128425925972078708892577145697752901354922081306100190960845542176007378856088589264935647685018684549056189476106112788077563224693098604895937531388293886936799097561484994560807313908867276855192102821719424909770403810414099122556130579472671230686472643379109290778550935754404268999032309999064969236715547806950683315341624893559954584617997782566341091080418583985120455695728036651976725958827217967063434256409143889627046128286456750445510724098305728024799802947775345411483403682427599563975723783716939324313020945653517183917111299034651068289067117893148713443365320193424466399596571160051828840283554028657811149918963472889830011168762989416591738778793427741929929431275442007182125642690607144586180825114836371548034940780440774785685841786078488882506221474400759285515637111409284628581855196190735652160322766115382275267747456225718000759680989957314321057322307809158605303102467054300502656012574268253934532476363876484272545054022123011709830306026075550454147291906532919398848539074037753790495964313990892076351750926498547155714800973514995522956636847489416855758394314239507427509351557066605230440105965794066055780552143929013752109231477169782557860472024485927202850982723322079811621881538869618537747075931853502478096589670010605665038484408904546401976925856590501660483998563308879365734241028185994325063257569350888456743534623014918158415627223155490982608483971604925899169245011085319572283406468573697685970024695544511607236819805953871577936212357074615848518525600497351030791029078341400093558750136106217672775696718191780877901353135713943281619409534057993968824691208745649335662196382196326581471237099999697874735996489869040361573117398897876996647521037537196809097659835764380695071528427424448910937774836555716044725273816695751823548811818251398159216487611410520977560869544181769715113628613124707058481532209905839985885552484498725746020915274758051055696636971336998101757348172874930541859457578293060348393062937827730706025595557883696271106010557180162596640359462864755803117799730559151454518868530485121578539463827782552997868988406643836634226099286294997830612645764810713216728685226471890797796271226438692174202808452970584070619242981980112675536075681005829348911904415794983630654041154626748810531802135917425754636021600789702177949696916027664115561367050834783070090434857818008468759355590693997245591346480558031896423529957081909285120504351301061171581890450786558799718284066044062811823025420825280467648388266671571644117110346339670478287404984957995021364034303696292334068998833363560798488236836363726273344024147232418218243392424527819147514984430406671295951606779625216796976751831401543107037906467454124197343147743672507180105802242014930236033199216431307501128318612038549819586554823582930471436104722415900947950816647664703677993984263644519655602566740756800958273273843882761976877898937974968571616951532381654534696488885804697274012264764820756568441554328027010733766156546678890447792547447969877759606770815250428832883327651026629967989539527047014954177955251470181481260201799021507307870783699406779816098150400463702215032181481656956935342884243089621249744354713899448413753706468219055980215161874034427894764176099634932866367827029771018716215805724273113608395248524644869658635974595221970992795620884885744336348564413159273698210485550386826019561349796981443334333898781605560378966706893760362364741063351964338371707759491434139922857502970184557856379436310976266387340620535471152991968701358887676310601874081298303307870157126786062264019626288599686347988952992401718461320194385312609959386259502213430226738093471164004228531022866171867163539269940082867835865338721397063516092725661522703598190516132386579700584961221989247110017434963998311938419644839841332777740971199989354948081384786757200370902643595404415918406402907297760081059387948665742045613421015169116793315794008572081627544599784223903956667275809700165908120796482128085058529871864937372649741342666820097808785889121599089196116270858788777699539766697796682446100470099849485945991369821491124084084798066772841581193967819770992046406068929651741875004553773186465894384352573129366062041756992276024095903407604017936884560630971926336753067614722128178788041319708748170041961113994917891777528832131891245958234033955808388071867487642495674574348569437496201744814464761974510842792759002598989464814583506095574603671054277723748393418163620338627699265957296436494939565770373207031093925090216300250366651677110664107167862224121584156931480668752075877002846393409517081993426651826584604758647154669912025449169278900269005859078687955356767038904228742223587858848754394996615812570140123046356274971969064788307062923366188593029708039929380705222355540459742978629707811206844908431425929480661879942639597288130776540442390068051482407180283261677253321805746713459488659577251770061200240489886641947540726581551364762687625991307970202672243423014009479966814676422610339507759475109068612313220918074582618716267053968339082770090468425757026780306042731346884942060331166980251019639316161316330935119230882113553939708856888380385863612523977412937724773449908366048821043716630884626584293013078173455730392993375857829122821747719918052511664332640552214943732472390751390340193483260928587249290934349458571120030477046317979784171796809202755369173722741453728644483017168002655301267309814999319712694303232020674963483089866697955471107903308280486445380745725067382368148970368113972738881904921047984294441220997083440273950196140934726717449717188625008748895763849256099488064434110540929686205418323403052706329892837628751595630744891518888295755109248953182909979059567519846456400734079212735041430883599281049767104600214310928892339393771033576570983387887866124817911299985435332482252819377398737444734042300706044632495518933970455010687502377894322270795733736603310322689511212917082987850831714904113760185610335378637895770157279300220265013179246003280424740791195398350273704782941077892427769658327565804848081408969884296134398561386604570231724191292379037578886109245361313356736355814197546615980997584010610642451186693189818606566970157479589169360741486641362278761220738764994633188313841042946909705678317784799875487090961584259327499238508827966244681419720031327047645481148018152158090884087185805950455256429173804743731956209159223405268402837205204798283760128313628102900259977351909286054578987965458304813518128613254549335843857425005882673627834509298172743598632367278837956176757462484413960909763804371129960668986494750205250708632598146489631003259228725751859929548425908256600091067051382370445167023928481483102070540442106180801612656102962379786882865614227693019176163492254984039886992324922520344448204116755658333389838426810243651117924710288400568684711561054595142068038424018323857810957613156365783033875287614562045559634163649217287420706000400509275801145327247642880913458566355142153220228918573758804501683724898754897951139376499503554202848954129301902026382979978263229481344727437092665089931443248366063898512090963030763736446455902221566281996249249944204956155255485085220721796248483498900414988023061413954518543034565583423230220021017645826576940985696374412053027449706807078767011938569300681350228125108012635182585854474188350022723982415763386632972300223760585291839437379022115731275801965593770227789341436025223958435218756623622702142695132232688797988542810685816443053054676845278393867738012042167767701704815246424468802922344597850164971232907564388808468432455693288812196427137750146017681895136148923280608534084194512948658153605182136250540105370796965151030295558567302471070452033088123881089822839937364504522921000209485069203190374574537618294523508580205800037004231323271759142295600332881345592804872098118154359980876922848429328085923729969170807471008392014374359309742509814502752855845577786223836419435446597227949241373223237903230186125954191756588811085901609429496502571718952316796650482578264574216964302692618930633294332847347317368325802175640983796390470943087717710280574561243858107691970744515498032314178692270816909459800057581705735167661393725498195320866599923905031871002298462552883358626023720449395780005936268487705352222013901331263829578087012479890420401909414345260361610734828965450269011212987552820153680420227182421588684369875005578854465995425031311827963667286392088258403629299718604083188520330336496611968598049846222588834981222030125673290149843999847021265613546008540605070772520427220938574802596896341871164840060053657792702248744779379694627329656478498325031185843076018172785276533678416155717928681973057754118322845679150223790838135785219132640605715167302632323546369444786879739349618181504606876115435033163905498641171570071146796939508655084673242852726417872256947600902928607355790644648323865079891754003625647011348706604319259278939781057803067312284551155448594795032615576065361622371734137523463183106245490233630665697312377145453311063998824045568273689277488404022247560109626243847550295130235646011378216081629973235365176195512688779200085559994260339218938877057986899553605707056984201913594766113992801946405883168466968694016642637070875082202999956398086907253684765729148574527768733382542179103224906271491768105841488584024029155858501313338560335887136889016737593312052952191192334491828542776156915688072357195580539086287299914427331952654704531843478514611048445082071620702435512799134705974305812941125501003063521689013575296270845746398502359051841957821430110983047496185441421294650540968555975466378500547840638172991150116830523946763846427372743922973383277711285697444803266235788840442296003739306716986526319181838774968088856356048253855910905950890128924920482866211039588594208283350990586532114517266290302051670267568394754114686798655330234496087332814805683154471661419004660143171945394025020663447205048867567639147371216823797591511487228302543693187753492229128955305640270708501609802224113256671384585436591581739263760450319434115242952656763584593881583765540960675586609069041552763349518717142791255014372667572231648928691160941006717787513018730582402703282500675174123921036450601685346563828483575859784951381904880170693747682419241222660616621611798752833861779123994741129414750493276384616391129019743288680673459601307025220686323156882131622737634243997672648991574023870582718905124828449248736518052089813097697159917700123281463065573959128884457490479507665655135821133287877021208150227377771389725451981171949607652476271403449522234936949544979698605453517968979654095357664688700040896826157457639853095923347882905329404182508142675086968363601751175759415770645705470497133692910612253830197888123938702767276842146531933164704327855810542826652860568308294719584024572967771559311282284904473936170690910653751681464867801097625498497649934719632002548380266933801106075493536487234388077075979627706678705496084602932634897968224947550676829886311018103132426493071211996399344571826992536441068329225959507500384863790681165037061880223857380619041734118393653463898916132353330321976698360449785733567143833037833062112751909183227963345670252446550356126408990157600400207656682516092225711765176833151685269081822453713526144051705121119209140508471301508564792422547752416903030890589944389208122460724273799144692847745069586702288880987212649843857829723265699176392559237148763105193294615901742032734463822241953054135389418044524105073409048086661021920213502810934230078019265108255732119366409170416576785557329896792840322468829129643444699435727085400664249171265814178131387187220299134847708043563479069762440508920452118373373601153678118143427539737562061884272017104964802736968991966303454045363068462531189029929798705019124266817192445674562370732385163129552822032631298993859190581232623212644607875613919310625493017151450553481784521002629451896653684987440437880101258898596364557345451574980746158941411100193784185030165467320891687726044736510634478260646836596489119277299739161297774421102164777478771929249781760694111010132779669206777431686429658149196403243407611420607992272341677889235876862448113204456635340184214050223322851595804764625978919470640851732489130525207162287970966375424414289732021182099681071504642105230745399932542810841975239669904926500457086217926831141634406280882229002874653721049276351427948700100052350006548388005888671496896824719643107494812170545313605911464280423548484207488620477615111329271365422549237200734793714772580279459339757485415526161247681265988702770422764380134412616337592597181119634037915278328534707506031313889333259129417080852982605927648685476915140910605667593148637079522413606074077602718106464949934624805596476358080646408766230510640652658454330994376909139380360545641729091157113902568151303832328357402357560802735300553912946845554375074029720268117998364657048504965307075802316337468027668309154453873440241177013959387570277369190039672847502704833574998942806987733324245964063267760004722599582544942382000641559460276495484845507353478384954520434222169905189182895877510380635195292971876463702434030172460111868234663816994369679411914314219466559376946415908496397992524752922607343068812098517703688745753854657025156693024122729388954455501284208705487732390416058161858852595111963570396982503439886961446376541801842204969119141791088252469470982129282033733282078112434219730022716759877886705017746626630367646777678476425304913982608401574394829399886753223569909348115483793263790083955543736474892302316624601989423682099297224512817682095733660504601909804738302325963547405929082634646914874628973407453033227435687934930351822805483436219059550328910036871315702262568879557055576590315294602475322363482519501679257392463654323595806130279948391557162423246766670038377720309568440534427509181821203581910585231361009556978463125200335988467377731908440732900800465398466812225946230681777310300230016230258460313248612017791561718980002025093542944689781905716870966386292685235232707935924903233718542193951888783562499902746653779439162491327525815626700468828913215503823643602615181015276667179440221334224190020244084792906501231084952373046689299469179607475073014766756434909525145482313772863290562861805936655645353427201838433975399074667935971030879649085634387760586125486610870331140666329646922222101857230360919916836024503296543120509130837248913847693587694218803967351254731681761242033850348251312979107989099643741822838503764061583513056177995960030295182826341914066497539441922602807324036877916556175059538336132944194893246996916044190123033676993752291698370941926319121740958873236668244785548109759211262995682171340855834823724423262822949735006710721547421315897331820319240703677757567643980095746357824638423371763104733121511647969160613655720891526684999376230299838759017912521117043643058257821880438261017338026441933215857912758532974845683962033986247112929814715016593429759823581929873540085494519047224443605129790682529401297657873863722121494854405182650204435265709113837572880404566683060563034551165576640938785006781412400349840460304166752179340465752837530423189458183188737009950116809607108955061764074829911661012449859398061683592557620797191824441626956780902291930028005620728290739458530962566702892377303670407375128439360618952605334755594691828213006113561759636365960118745430597092236561648026681803975726574261809624276071217316218242062406450146492828756726298572874512143202799398576654813902030330827889527199938792776421646659789758041792397769309973470881018438413993252900427819940452304037104801522266377854005544747455177242522393179871539503505488051169690301435101094321759232003207845462709339980463780676439935411679430017276647845157381378103530683542113485863419025319126175340301039344578795305581445958749052785159829059707375575780968116206987793813515666128181622866331698804996480056909879973983919140712065774064080260335639360594520535958887160596191541467211353098582623858424180457793315026476552061160322499867075031936336152865465751780401645652246324008190366947097607742525002972993791599277788253819311210795366199170910878002622780884346323899858534626874035689839510358194663735309896069851886905993341388189276970007567447212170550505608440406141339260317961716610176951293667357665568965000587273002657559183045737663749385130489747734799763291626221886012915481073613458043062833624602506890960313780247935940804937975304038346067247577724737042447911817046571358482239604988945162755425417763081138606263415526271246453392025492234774842738595931660542764127024560537728399274952921988558331482965097244699018338473106507967154226982771643497989549435148263433920898452472108265284656890500616693379419294358508312571343924250228892421579474759239381541021427783807826097105182340693290215036859202937922700576897734796197589901082805090378795363494014082062760194523139889152324543520785113857732381680656827511929078866402471003448649803217288519000209238812267582089594984797176562968144234285273402786391946414341072488063537414927355318617059838994437890188674325061190773970859520184281607579820742486358388488382961812507611849084175901609674350810313863214068860020339474831449347112084813195087903191416832844181782082713380809577558776146928233139564431274727312808722753302746193958772871521215524844037027912201910689166883206453983662587424262312139733609393214987058026413827248341489249770729670538144579769712728108014916079753354258582818349749126043982811842325674773907748789869938617302317662067185146293608930517769140304568995872904144518609041259185136133838087338235053912279110807350281581101064905546641520529185138871535043231049417564911707394125497447370443338839691365496072861512911210689879910307356867402003386871921702714380212776171064639637635653369847611983575110643005244717026887845305839011909694495162351146794594719025738554820943333123574191841447843524132636046840696197560710050593245871192140823430065012478294979348557320476105646137555336825008823362342160682067833196475750932704769817292157065985393579054280317593268770990542303223489320725967084492716015072680963705442133554304752269122090334640517284915992714711630278728139354258545779137367982637198707395716909104400867927222162191007681581061295035690639246076768831213713839520907210105888164626306895746817803188866785798787874307292405323150736718019623102665386662230662927518945773370823110202453054684490058457696154481514285682310337944113503472166690170128484475165603678060237996729728470746424124242886503774896134948144618160238954627453934876420126154527608174802125997366090603820482775693084583297279968270305090378361090608539825697863378323475255561434095802838088551791143706138011353994991397001765659884126033282594088128210995977693521879256041912470599082726214015072269784886126991782228569809277688460311747243996876174983061707159256786611129373652124723799843856940996055909461026059403092344298887944964281000049503264171672062862917407161401736255464314342710196501165727502710969693439894286575111944664970998104805962675510182430803677712623024067734588514507832076979315506093708992897675787209449692414344217336656160703655401846866200053162558832048052646407470666069162839769543897871584253036856765494624014555737350363410533839616072232955933405657537534882055906959660101727902844888791284581212306817331625566274257697237241881200202783570668255171273167756573258851151006800517817693760640291919923869519218941751058095617724781577122146743346628297100838504776128477170967216015681070390234684968458728911662170258402153681196062940888955811681084865379833780486432271794675517700462939913746084798794006430852702824591048528863885419656374255794939701956089481854986226527666641582670201342012818052731573400913717440695259933037937911345930172982154990149394995923137264016420553904484738154419088736920687817516120517587636232289496768662161618349999732124734851843114431899808807473082702327699049894955731694262353529130314069003206566477076834433436621873066716964759647475962891137109508736111834049656846284072999777335985594466769419090926611258914536160733032091021535999131563054031848822185900482235172449854317106126192735435636149780723079007821292277791583401907046822168553991477649974047091613034736651311321837389929743680847436010453854598903156521983897589347729890385778753035755991438096953297491348322809434504194303121597293575863981067157509365924178599325829641745395854444699469304258207143954328483340871815287728653119279951037933167878026356962089316525537444702397944819522985806718955163569339828672007156477284717230543633337196709718114827966876506382957020663420322763476500274601740540122894886083460232737788630407088833941535629775437141099420136304695742243450460245799496312234691208402315469928490288581306413252039034997173662933061862551150830514750780368885798363578287940389969213068141013815252368384494818281885406171781634437280778846216217871872959197449200168062395842961183244854860911813469278395604048251749253812660107841157002712798460810103362565564628319209056163115370814209841813938082918158485172742233535957695993969425490650110568459839472945210793349900063473158969162268188473625368577949122535798062228460248147428923740509854927974458788232956551523528053861117129051499399535907094656133174266606799439214567629610733508675862729443628811547866059646502671989966403311438513247635081521247235964270622089054570148035945396367069334007059481678963554834283057239222089369793959175736777749913187229602301553073910121949536274375353787987406125024263840925112754414138397759587010437672636425853111258088358360151443467124455197189988402516309471586360641255103966060039130417470203346396685278084159789740896214050271455023332573905455663774612265257229000004287103272087732413660119033753748195761287759294103094123539526801534855592734057370911222077452296655395816582252714337458265232378241959699397036291858908856957068626639575913588998607940215766869317978187609851756018852206245392631433655772252568746995629125928999054963133112437775744594389424323729840603669183421385827603001765150194916762400350737331515054788231088119674809518977651613925923481006383535132413410743685710454836567793493154188092218408910899744432727511987518812600065573244482291607990236808308179972722906094819530338547291805004054656286790033826790746955493562929156196200728183921075143158643835294780061153372413129642810284480112467730437896668962524339538578467267836158656022143597414050694376613015778686947361285952356239549814891413635580161869174805318598932750420457180724603113131018628770876567321866758324945578890975476955340040906847457338008822116048247979652933881331000793532663685323787398133764734300188436744718793613777462238614610918813319964119328743736587875802307668498062944835015690431136322470768446717976766315693283785474227522345714266510464159245747491503808194423638924015343052764342550586002398709907738971123409466422810797827411715420164438827695864150045157486039254316132157468659062356103053388157615776359304120039136646288728104462748973681834771140381008454783835465315668075354920778732176412789779333670846385023660675761118818595378281337256420813776341708201249243573382573964670318646938138916206028196580133795479586704308499743927966530593896252051012539411791160005906860655676467469850537591183873669100053332358747641093734843492702728975632384896460596410421451475161180109509859089615824980427606289490522487196458103224362574916724945033799168656130247115758928536997934332361048626739195031055545797777710444444701523365195444510515701315081713029422595014412414920789775709312168152009807104160637981647016377170723769340702597724568237400041308234266702700411251886217346382759444905105360763153300117850595366222317756589113957762823751622526596857290651146460183006558302985304643807955054821075593037625930856123022824148126993987594543800988007361470022609302927135994846743867368568331207671419605957531852274910251460992784657887112403603159530523081824721599585461787070195154362483149589784321062765331136323555430956884237986275497461785305546816176552888797524412029182437000633532511059659612498628094328550605613347062217760052759888295900129987374247164315610254584043737676142165577227111254382505616870026119725150087923365088195905756614060632912101887740063201905914489922835469080127340553089075725208340652294915260020147020333323916200287465206978919330037506414270693086702389208779405133512882378582982965954775042155579633614187849028178086527623086400115042167739551763661842034316770495787966964768275551340082508681215714269447351491529787616991959993771426583861652385044858349342297427976773481469611765985675369543870213826709664129424845266813910046762549448443740253067526332957270580958831489852181915475961695581562299522628377709948256024162531823103742321711268925204379045164230248643280821760745246800566930582861408651682298357329774845058221505747041715752779898907644743616754759542563299695594357210786134866624101045165488032077831016023401423689315103927611081636368161053337736115875564899746427887924678581131414937254072072721369741453902855900454530308836636615617523635028988245986243681984175317079136210014790030571119043168277852379595727073021140133747981639806986698211608460157512247634775094136677552861369842703870491068379835694813728206209597477957707151132792889839961798778777929644130373827189320328109570115156640195191987906576256464859049380266113321875304500127400506793004102909895973219322554156409021079985807569448098144781443294423417218616239887490738095141392654625957430711347935447088138085839168234914239791037524338904664971242984434442585691952687477919571851577837019369577990443342143819780158198373027675480823375225190042479309634300074695001490337434956669763984793217512967209673600179408778586643217381822939584734174339797015908701130060224855585142413157318611799907641392003720355437522489839646420253955436525522725523213911207699599496830325284915911005139814548139365609270371985049905563043234494252012162676580779819441350611304144972205711512115713270639735832045186796457280276197853399204083616270809587658622754447968141143689343395202466439033359710944492386151489786004313308596979517989288243617534224624412027601461378268615912846707498306688410850994769006747866607637290250056336169687648949803425258023855588559660853605880690311900343000440889305790860201021836126352528040277533311086036434853480419319349857461546418241638194532167893763243063343940214586203809336704273078732518815727449405074956179112416662306355393349562950551452309869266788418210845390540157082608414388032696423839936070995587891519732199144598857198444449832910113191701621197140523668179416059299324497300191132624934263324362486340535681578575744796523218753546527635782706538241900757800547927694617606682223896254121550528253503455902548633481441609806239233903444622908629409116192120470026216693184660258578838964945564628546113337446044749461142829149213894718025232177062918656727086540049989006849182543495318532401229240264917708059313211375090081534610685441558382346462628648687443887362036472986230945165315093702586870203706678248606909928660292337016449341681377009825203285978251830528061571642917143651057463302894613286164749980463615066492377288068311366893976188691955398950000143657373509653790802410880279826994306961215508484126793676057637704300391757118443150670282455464098277862545421300209340200457609757859078485398228852866958664642353787630631459101494604913521929832483079500216651421495477953307407645024786837909823807159414680542461510994310213668775144352170987472747470973066539350757465305050627191024352322942008255503383777117049813965391672995685016670817103717107487400261194169402253909210692917269952574169327587503033107962641126216975981675555310653318994678527492787208279150179523277207564630499489883430076341566654182026232500906479351354191750886652561542549733850467253803833767009745428222866477835267588808008035731888535782015598770215345085592116684522819581017741054789990703072992051793924947484404424181096622747624258215012952546998832732950693946512659709430456261723293345237949025299489913014959738491181044783595798843428228804747409506788158159221279118011733949779134225600124706830200165174695915887104690886755832180771109717067656817087795138086127755831294247967625434469987727560654604927884753984560535321005846321912783970663920605747490144685299539551476688621801043962473570156242497845532402610382662422311744719657540841878677134264328903158211783594337119185035615979229297429847717994924674220805354387613620871883840434706546408135505653861339482425277407150158751956139850341097205389095144898654358869463007342739957263452618440715324460419377912484598631296309274930257383664947747993552612522052191532394379261896409821637702215494087063759840239339306127925159931935926629994474690006068554500395286378047663220275403197259673825185627000705165618015504145084741531352859892926654353949614619487930911606824840428068810402987308211392904581648944783649945853744235847663975337643894574169119526357932992276873976362423932351833390139387772752805433729504955973563740197820413638781669115005197391534684987749640178828248722616059140731725159479059307591035481041816115295437151662613499916047805102598964897072686063795807002004548973614736094224198380410810644623948413062711987953987368106729391047397620587289394254968328208488950079551380311917366449356413266012233767414941839927068777751634172043493974745080878767371083216993142894244888867423311661476063260971970522198067046728433551269907357393646440069177276204599514195619742433046489706646399589300687491976185852094525793393413428996872227415731597918315198486169342644450708075158203699049341097943919103138326263759261566085674925100093118854691945302619066982168402230422017582282551725258700501254277497439446348865298419406856592413070024098340348241498270718540565187453759495553232623378868128639268846080864814369281324209781762974716475840225920153870641748504584945707231538240057636622347721734580344978024211281593382283460320417710634643990379919569009252412775142504604397161648514792733510898595810046883574416726114054429183877292670648521993448853287877274844970258033554536042275189535272466124569901537590485303584603728823382917449418484045112867118975934955221468540806953880110993045551150728804435257803409093442487378792233180994126499635137420142562117934249583142001694359255274827844939391488834742394575168861799512716820548818640511520228192119424015111678093945678831745274889837100420631142776939219375974057610844121168876144641290035150056531689365823845410833543041863274697657487314688323643662340824098436823385517240428597417461911068781015865954733947367195994001759648454763279781770474120705136868804143296393792548359547905340418578458393924217384405980383850950126735392634052329872875893002356615740876331365942736871596026663100228146839840306108298406239663952622563644328027307153524320774017676697151805208635954013545423093671722995866410091325576342764216097498323015419423828043439413854548672078862144816399317902009195488917785596191678043273442897896492465648246679930915150123037067419698509663132375550063401623105650998029770197298857007027215840928186714705400565699273160601917186269990325243033801293683581613982617456861431970932388479086851284013570915681453682450713536533962573936005307566969621671946269701452306437799539002838893751404451491278475032515705428212436932804089201627578586018562741266635924626191323583719199082300661166278001690704826161874525758093985005292672387088176026386429005451122384348297623982157294584627694560561666429481504524772463963954647709916028617951249635281592062566312365458838517958682562845123474846571251221543976014091095178036159296956898663462172913508236237568846132539381757427046138485407660126400925868170789212001528589761659822780806517506340366062211923624361342701202199312857359551331611391965658122342300651465033998084808295171483791939847942867129704650625115336550740374430456020210112189135032108590872296767124109555762818365329346435465304135184151120455544456397544579029856869488532172031959362324472248527897730752789618838025886075658290240575747968032385359507037156073014968208932966370533995832806686449435241984900728850864686325715481873326493105803119621556801383531666234463389078999705229633944886857827291739864630653052227172542084474578062917517163945060118402546530331699174608491077689049129991558273618400740835343330312957745965864147405911840693694288015718793683801080216871668463271958386440565395745618729368125260515888639082487198857239588658929520660730206348864662076130033786959019560206238500799635741347336023942400152166399124300673971753050180531661905106973714916839935412392026380202362740303425587381178630001913761572635350246056522702812770576420541219198445596187603985723744455982879830547874248926335455133067860332734600254539400058011693234970663898129240175577481299298670843852287059061512325158797400835377992308976015681571483732093197844427502703554254769121759997808233661262672997602515644865274734284558290239080767412841803842214234270341063607853814908260842261366166990258365700573402450773010092773509017449863157541800571262724627024534526806618849030086524825792535058050607101113146350615468990022766582285208755962361007256124544998481488819438667357616860477145958145578371817244658969885115350001453571734365550642850222444759526763734357841129940027782125976078787223946364432528606664426036145133403087257523825886064352161502861331378716383700338758394029261807257135138007680947127128534356325382189970250121753055357253989836397959472182099967148100315509931021919881711632886154479709316747549286780812971997213232916012968176823839368998582629135871677969445742791098333126157919043723056013524741595302698428327464183602158686795835531664021315756107852298577746755674951428995978909242043109023359649267305627599315109441373015851465568603032690685930051036277672283427596822045626600280880532461292998038683163909056818740181327410871606706057873680700730643837056175137140801507016008185931682584244780648573547511782623549543310538198412154668922082333767998215065205437486624979663947214220178283394771099319204617974361642996090099063337672118835527378792598443615720481267629739011374267672322563937793388907474975910825070403814175517147375511614053199195161473724427274199931935265640925843933548534489440878696970578812304344346157172839658859419798375731740393875981199959728080215347528841894453786392461735415627568515894288884217874550068961417273164582281933907319776545977090159452801306543718428100187881503336277473447365664821940872019863892946713192499811416457917347514284113707345903085335425751781860745012502707781986547005544335354689606702856621677996676236432851209261550936716689981331172404094779692644550591132041283338085937411713268242557943054551183387490439217949927218765555695574991980896435924584109457026045789364677018850490404645207892571917268371266194597795489886453053080783542220786016807645317756697016848186946536789248328379710681300713781646148285827056789626343354873775429754817337489275808299325561187133726346113926727646927652448598664537309092855772245156843644642365698236649707497538955985064076825867950115641271775376878479709205689183762980885758617321455810900837226783970633556969304733981562240578481762512028287551065746194476854212250103886248223936242358269084143371638986173191016811834658497846416042940922281851360556880533339461662697768436618704953736849297885231380315259671974791565640211931578514648038512032019116135338900534316876708860313201005248247847053018081019518850745102141565430925679640264262330561961266946196569706365935591446983506633535124909447466378086907840140100371913199891550718611313002865727967026381361079144776446866026190527501493766803796421212951099176742955081156494197420349560153484385634112512115832333853571855908298476066924888631551104068217629441147242564889962025487760111527372414078683700046884767845047144073745925119648102974487780999555069053718210028326450309888830474952078446896700769979677564782849865595326937255426832481925003470867774758772517654190765283833566181935779143774061759268042556211388010240741288504114506374848892001002302289941559113561163402330756444427823428025374945346408840730526673763554018290572222919474040709876397964052299687319878755358189489987615596848201978477599095808965274793417839199901994357211090944645129690465267412852650995644433115674871900961244116939822900635050840926890006757828995729079475366768004499119899606974146632865773925122032233550574333815871750427015448726842287697845133886982827237583031556546649502525012470803481154397724739285243234735983953588596152172692875695455359802893531181736860682377656135056704730110605002409904742266846228109952336410168950236924962993360831074633881237489709095404726537178716423824623969455202545587990028939461921061049123544257140351570974116568154560169696375031569421961861526884905198996678424928581948750294983311913178876795953005898532040083060498696750984383443206831100269762774415253045795306341919005246223205153146029285264656516323754059689621337791445781260025673888741836673929082177044198219126867879782315968183976711504895604591683950054569979837672487653687828519878575546967140927762970470354482518987241502180386051468714702797557772382022008123640640803095573160071854584494538993667497094081529774058520902904530508680665168121061809812528878020448404818615979524832811452357167837128793176879400016420213656203342944170169953516828080680545893800014597974837805389181375206356320467369397493252037504621100632344544943067929383142803974885697610859375528297989751437257396549045380945036838635763000741507456548750621751990967408297231349641860257395751297572439833338889004604427644248598544224727441757237232536994219333526691128801811250839990006859477497882274121503339742842560088813889903026545582250069397637592495553505180662134895612986136215081951288554914746607064525305755193217274087471020487172075154830767855822603677450435345625324076024933444414387187224133169504297961982411884308073701016543014073090492407954825261704416828059587620711329632544247655379055991877291356861862338962562914863261378822317534536924904480546908253447861580933491330919336847940921376296864826636286598694777849621342851088543452047324178526990352202857492003282978351479264958409082576204926955601216193069348612879251406550287396988380486241387016739732493842053244652643079447616005520288602051345162419622148633390806501423151152462131068924049175758234747398464444526778312200945597430931793409229128568318406193324660149065975751057922660138073830838376578311661152127356944889965301051987793227342620450381616862479223832964000310356965205923414760781929697057659451792100196982776155915203327144286871343563330051737347383573119364356345684614147067511767515711507349918487791827942591220582987463758501384793544663646949696525795030186904956643883463916150783374459751140932818024850199025832619175970654219489704677143993027453349300902177887359799052176727392051522861900394348852576705540929298849122922958168511967754857773310320614198259063488012062009161739540118622500483036166640089867478715366796075243011632988675474269522908262760029411223411789959076804317434654748678038739165546693773976963755036775628794521650985921664216738666594087226235864073393285861666098263674402983593170449973963229679032105690887188418220502958725772092848963268550646825908193629705317088379583356095950889294695468049922045536552784419070136130746176264918477078678580521134330191774279936917463429884420299997344015331084625788597138810010524955719614949371143774395341045497526984015239057045994778414806767345321737151686725510615799163106401304339159646341216083750616293593520042681628611517890672580250882911842102219327595696939958106744902717625602134629688986203700319874493223381565866651434191701556031690100565927019853158967751520592671832692060184084909738721448624604142445805752690388602464507319771779513137493875279719652142632372777118854835822555858656138112332842626493660341812871615442446754544934023206799348119976320377019564732126083824623989596184689716793302356086065849270541846042314821035966545636333912333426033153375039658806260809486920562720492401630559427732302764288274369062971690698312664051834368386076049662126175571915261440948952835614332590111255213739033035002209589117670602458621724717381765449332435499728018702739810829753991243364018794198011109546958402798434887743471145438927294925594549124334995135374002220834840260869939392405164865970730304098325536986683186089463178548448655390413241707529962268827409476809328843613138737057841843611500554272964308924913612855894342358617323528786579534009772765607768308906338642068461332345299620410020191283254013646275728470879530697235374922250109283817064377049905089992393847458719803553828283728775647970204476680096777218415162413610219602156011222828534647923665532544627128938082015806686673067231740284781807692969671497726892944254194530257688116222390806813812094553829573311478809756901584731349448909669627109980221926485926545547709786701795767552192159642975057353025013093758715114078699198437849928063308655689453766142316074872432639469175630159191565726196467143150329284714771520813991858971065506207940376638654837845194345594286878654446699267355796705477168931187970292300648159672322938813862271693400892343825248138223377755057436408974745010707359577222369630583986201721119974760802934290764883357406765699928997521435696887688964505065873518567754189473192287240439032888162346477636655860469850590222244393433048596519688887482585433337190262141344531545213213202859064315134559990629679807722912200516176619059377425279510894162707400490698311003750601204486802772279951192784767318249093843569259941608993795355434944789966804966689444607915386365922642491972353068200772502891099560924192360596014261956753510762537083694175411676481349928847397240990508847190496793118216143354724306395123076394613052370099722308720937028030517912484051338958135686932128526687060756611695331752286710508301241055991068185508328179109046078774394317296457466990439092300160283552802094405894292696712556865623531263523766292496716415689952784710955281457681656113315490352605093159439766147573476238930837290676507744039003797077622397602410859796978403441023173702315737172955606504103621762231930993721243913053998512777358946038116112548910568911684018603169776226359889246736610119543454860186653901000438584723576019848045302716707403886102844818064346870921193900927989677771997255180859200691482900276275535003890603179225185132618822973633206994848374414092139386043779785364408860420860977901861954609430709724970509941916646547396203891656222990751640271397532246530835255331716814115036110943332425679648676485211214585879552922509642930143729861973425020841560507268358614148538444677464619611226228113561516973969127295624003737508202592989612762086255928105790518473557177027091653782080587638462510159363665101154472423307016178977974848821769567723333190602370689419615251921544584789915808184604979198090901391677393046799121456161363916201029864782175744768478198100744264861669757906647745010925964305733225315444892286021317610505333888521850615558923957291709774402316100084109934163761398740590544430236417656644544093415672891086651371329216735050725516776552750292886517044087484160545474449211621438760304234575515391098132882269894676440422948989130694388159458252400325939049460531744309638963585514910746517760303813819037110286911585800099630901728489035489742313432828921133303065554254245435434114918233697974009869163760060432777701835149570766458281083434596869139195222207004400761048453601574079067789331671180056380497616990079873087059317873612281108747017966556166291954725524905695255887808305582669647066680669188845374711453181803558882795213841874118827827606001798848656504695966870998900656717262319173211984678510522964248983294969758111273516845090049358382452871905434135264000472636021408191363648521717474588334830380244951935563666821560780122530850595565098699493190887712791051452283747649835918564979887099279058037434410648563365856921286245599862020738910864497909304676244068713208435136358959241122571123760780233583256363814678706196157578066667761917351566127714956378324571559430697335135032235623309800299856988523529502628371711091541494171095637738821308776363194780227109974150724138541933295109705707328565303153844668620741299945424997438949258957602961501466504755064802510681652817336628961895578928379608572984917356860347126499881227459718490282735590410836401676638227116871009848951365044945856071454220422537566338807123835157379149548495152748978086555317142289287262373461886423354482771817309738441217326662736493523534739686566700600620233251682866858809834158082448523866175327136535501729444503309552864141911528414351168518396993189971922331210479691316263482399996793601689541465674786599343042599076660915546648617224664838017594220009899207476996748473967225445871869162436376250613044867842954307817092035907193732144782907383396260027914609092663063122809597207880230381356812547709225818571821820008788515783891175004358286609403022784913594296988981326697400010465361744646866831433758550195658318362161658037880803323906552037959822698462133950326887773904038369949521782761547807401835325870188747655576004240042063691081718447949336104967915148617052473865941135667619634948097725800433656090521432124309324047406630822843036420222171892803518052783773117895920158398852663882262939692334138395859044582026783545387781878775659672205927279198041136325668340885785203300809316687064234499205300039414613837643424770571721859058532345533043114225530492998362642720976876055211716304621709280352298330345084729297284230458312254826762938789938445057075139986992886440623604902168075929813936812117549527584011201597822995379613987582084671982700572223191597265553713539592854853554705058937211124412102671894580135567545491074896997949199225149772812969962888774014846891727725040670600719322663762420043898678744184904590797858205537660108419869155117649750917731091390062194091761701492757015281168952576512869868945351463123341444220225148020728410618907223790853876886234008613584078155051007244347601449146805325247221814240783597370630346888067194784582940848871608331386693236417363531403806173798930101773403850647544951779816328610615379252757761733839694426932439848145560963563075228042046591989879364191756743510591163585080373271459150997394424368354248785084715891326006200093635080697014260166737554715152295601795727832159282727606739668129997359431948858373224282513129977384951244226438220173412620835593730899473958648977186592393859086031667343840814438052392332700833456998901965163841748550736700480030854212166558598094145065070566849560754338323189556807866256540454774698952091025735688374904844997423814268697356135296358632543294378675421298091111969978980117819443150364870878890731509425398584141393356637244375980540424628764502476764957576540862675198238702804792473358141427607705106332132667722592942527343740593532091345891080708998437310674383033354675046197280646297246816908093941754092919815101441423934731412728592068600014014196828987539788213013999085805709587312217282589372860935627447751036576126566591230834618145749327514741439566165629477875876941827029145888422597522985399233921788062481530571925706688986491826400261044435548584422227584584483461902471231342557171489619178309784069949366976240420733906521556744882833689337208124652468285622861508169962989385185627229630275483326024267242552689796562820186780231855631979454684621505559502112858493836851069105601018523351462100267860153978840328348263070268419411492083216431517172207627357951172606516494812275701298005716638987480118716873021370978350130735756383850859351650669604025556461145265358368283060942863576191933274070106290116076734831587507622209338152059456807045985277704448332899489079298860028934009900067814225361754151520114566736001111394315730928600139199149333782689923886358413566963383020294117242919459612879012166462246534498172412731134390306643634343763828093704599985999975260484449111423471904449554472699318322018603113812269545903601291380312002902329472587119023401652121100910986636592421390777134486571608610107350934670550691508681391508568802998604560649773323767948661598298003864077985764791544733916095177261014994368027578438799166116702542933248160705347929253388214586349757679958849464189261133691732364232528153663437772513845337939252792955642268727976626528975583758081913954605697821293584996973163001762458699266471186285257598525762229844075948831481737501556413510989432168594678686947280841067532810457041072986389879091388513466740024800619983825352903210533839103721953329341506585044141775681749638208392238023612367219059132746435222004185711721014440177881574224955485550312039635441070336725633822328636382663261242534728820399000104339952203539260490796157466704192234485975558292259185663283543133157523503580878458893738150478132094793894281587724311081320470887870586640544885589311293832668376835846135095150253137354334110493779733335238551454342451239453769458838090450436351110846000667561816160029962069331039666445093101946295606317039926823619444724649664332071327999964248784642239540357468534623121163636559485983650440067404998361936539842857472554358884082010067022131670697511006104864668467972558474041842362316152750426609962624256905331741397584847946345302324038318922870750800786182724921624519107838098771692408095468358122574510277732851879357721031666002603291644304605074517685318582920834150232617053880118964760566470815198475922438108439628104063046260503948036577884620293763064348368024575016101740443141809812793750046315078063953716009266960339840021316115151735460820718069447768158020426803748694083889401855787054105144589118640603699441281287620692992968261240375836016736682538536366386706006561225945824737742779445601075535203054486296558457880205101553578100770476603695619401164200979184373122311504948898796594765371016571006047084394430690159340880653383047058898391928798856717183019553815380985912411898655069725882285344517326515575020394626909614271145127752286390937493894214481822234992909204989690150091046891728037596067419802496879544672365642406807481411792394833805190012832498586091066114288402838532381516739036533688902920681167568280296283249373231452536572271676201020741981935004031475285884748133651430497206387922147600995142713037440792621667562638052094416258649437572277409242800974809322394956847003183677617467815753164109193372763654096929186613404900563877722439212685552441877617498388540918112623541427900031543614933774885924868189721747110979399629057338057889917864261889385705760134455296650406246268595190549562286135628953797860670535812261428234516594146928948507730330443899214882407741636777960685702329794653867209704165290204486085124750380717671467277965636055713384546767782366140921072099827481096165059995995078591050656742302681421538608519096094872516636533835851357719136980905182849366105396868156067764391434095959019835026269295343891962338527872317229266338684523789412907034230767006149823867143475795260369843040051914505246590596167403342352852781688721376748455537899378696366339046233054005590971655921941914790476954150219778716158982178751459292532552795088811032150849816338964858825089065814032988120984763927130240630409292481976691530986609942350195377168028253125085398048184322235802629712466842941493037613043211994183428346674717989876276804063420845972331335203935237518810022588302407266113084973881098033095152772905556861810353024947082829137299216447250833726552539904873842828473518359072976187402141532533067137568830210934801742986487573970017916734229512601701822485948628077670906663818362138984857095931507582953910060502665995616884315372795288634732174150074608544172905134550311521575654863945970516206614469828673543287488649957936654305558414256720649838081045917546384127469803126158672652891161227384308829143389480060359286126543450342132732430229166901585711143937264124888296713678459210290294136966987576092049358965181262779408363459020355392891632285575520963823673055794389157991642808771533960105662088802725808226887943578794072179999136373531842179970212978681458099694750328303926152712107689365324462362187250465054542663650953403706243644877121349967954024305585419901356020548337921166635801186003248697859122400459284750108435262795999480005079052929128318659004232110279066076106596050600899850506967701245477963235823758637155701171378565639373397443142861451716523047392536899999550822629659134449606202985016671769306720616079081640552026856718314926140609648700125966554381612867508412111358002354330808817641017124184737860038038713896962577772994068755931221056940301723778326229650964257216284695620542269583240413510509234613065064977997855214771844040325682722293396932003565023784183369816244977504435821685462407473246801512549837206431753186784369726782043127574825108797878194842181772675697555002944437105019994617904795256109940992375331047152652989014936397322654226610722929105580589618048336256080877623376133767177459239355339407649627504316543595962705785936189599577067265155366132532125731547936306897932715644378883352242973399646356653334220223661257724193297600028488579433200428315089289259715242380517843877320066331266065245738103733168414961040280460461659832727674222883631427761848610955389303926084381580011704406201285024407717477906332939637621150070962920418351020358395313356750874671594050127032883237981341045989373438538111394884963806321584066319466025292992057781039738708592558427781612387003388997580561062533226470360797705570935007751871600885348047924395819358477315736985942047287034842853976270878391333465337531552272509527226397698478639063308476691422749931523088209137399181302002715697543223246569922201709017638048682301559272443061988107763335782628603897606434643722554309730930297353299642606824611234888219332027195962728805057883055390262290025969113281907754235241869293109985969418173280362693672788515785598343047353909879495692253408604687283852743602319413386632398524818173867686558109774347560637539798320877052845040473892498148754266968518164198876951795041145316914850572938037380109900682099210786111115192581885850891916325616461298166228102631595278290984352719062704069298728305506735608062322122170058361745817227900916920178679869446672054640404839471594173285973512498608115339452388254532316035787361498009111262071673652410701571737571590832587301030249265256413639884730740348291391260275009462223796510120245342404956623494644859496410728190451235232050156957398969685271436922067447959737613112216066262464728103074020835409749807515112844507263478353074471563160204159565673709565118122171110695135969758498456469580794194163387232406027571502403334374459209268890381940184825876926530437115788714542628153657192821321640902192546453184304811272995679762778076351495528757948910604640632856276093789137848532248232219964967485131097835963444172566055653688954696374451838665899556015401953033275423930130084656093832579261881539308612864108058881770303172870874962528783381762982951436998931649939224422107149988425532835703753895127501079949940240896037199795657890391953679640048981101576157441492527410764314788341516356244939455632076170391748024525798146760100656744265171499671377288742471286846151643348410968814161762474403379427298837541447000518252835472147429332355655339379658679453410158471172318771683338058586555280357802708873569783218302633540532284563352102901527936994760392309605275327039359211141328247861605792136567407641104571203325961267573360218271769275476985441387170874727984893418214929237509938616005144441613010252036864320451353151192098128035270842455061619785568967755261861778435263819721805679587245520872859010990543908395980957185868144275156560257603855131028448087085466749865882161224651128875262002164834589903729256396191623169058065872605815044050104835739126031107147202623316477062517686877126422582632079377225035212111390378267615391270602572113831312239215801717079766543395055612918215250953328569712011754266079023989168244990680674722401839910923898986477573214932546728135086508887873764996195106871147445328671949250001916141715298920081556056534029315439621162233283261990420884014723828414204508217313180186437279125966776044405914237802510644286718210102151933841870115604677729436566375538118185466036670092044602196898627872374978783010016387610856511700082006476273793396860213950122582307598526749048029614747532495973904111601337861567735712791810501211083943183121208133709674774936505158747604642413803085250097150925612554039797501383680899894931717029471616714171726179723755149766697732933647133155238539248527155856273018062428884408143214207261975423423576195517977380073949853214742726146955487097319370298148396074949056832054890379687203318722726914114003494727319638966818677228490839103532664371357347901693735503385347807998378307412368915856857276915099502390703568301822748308132642069097961299032887063525560290138994446664636704749101264733962769214730797157644016347083914199321884604496641475100375541877119539154077692567180715191306990858088711434111484164622309365111568605484560288934679299708967427684993784309844874577548378233568874384219848269851176955205984862998332029536639490771950511588891060271300420134512389398789647234147228379241346257431426685123271599090810863778909784765374868375967840975117880836618975139213547456963880290979247820978665586880580467016841320699425016819888922799024874906498528781057116707547702884057856745126545498766100385092054772909025959207361260385269010588969321752707292835002258922496262103348119599213707633546106052719606053441810143584971515270533231646846651919500269067354854733295148770090994880782883423792174855268689895741866215313173940655134997599541265389403601142401761851035414653739822807668431735482566689351731574732606569780379333405377794027988136300073168329871453033566974503106238797139639265935973490125947400892776788408234389903491796141013352065170020352455406961859951863320611745913565717775192807926459229576647723365099780214690370575097011710736844619473335120545061255954406608057540277874390024739835344179678707716076564541960287849361029900228304337965648701639002365598262341288960690290509653367394453403994971173189502674679118123444206668000921920545780855861214983949246534478964386372295323211573636345674364441485271978695847790048406341976105244956617751670274762986302522502311411839900411666334092371679353393429044249787254481514903141507196587691934107048668520409862361040250096502858361867767540734870985344004420577751012694973860102502851612139865847470939857034407433482831568476546453793607398815546405080943883691216474921404810610952455897501395843540254812320655370779470581697679240910116888442015414788790517809098970389265971517234690462681253456044872284871091362713011244522982245051861500742991675915089195761353256899097985648621301221732133356877806255581772248342736868144237780970924897531247327557691892198454110514856418674377253851676961363763557579264873895163267938894740632397231983690356420845075264205130539994085497203891495786282829360359327510654272879015141447286288731470546518188776308401882507803891467749881406113623344294290337630661435711974607176020288440033416576526703452199368931083371007380416499568668937189591850462611663829002840243040318909068137653571829349697455161385671642745063245480135736580752040304626811954458601898998402233250313527439845523140592861782542860396171201102790904908616094678860193651392852927096311077694247183483582382981490138116659114712890240596815323202474323606188420403513930622864080929046789471303692784361683267800347820557098557231138856684255080423519752426520680556702867528432617515430234726867902609001440906656670115472905322623820584993908158066416229004744128936258133856536896475154375768453124710169945800171266743144593172586241229407539201987447948393127508829742085876228635248814740810204402106582912024166018608979815138138838692899460285211122621041089565108123295262852425691962487609153994442319637369378476979210901212392470236788002673464880203848629779507951104183999939255067932794026763720465145147508416506476398051629103655369729588454694205975548462564385328458161808295460260403641294778518812387857496525675234047281606507316239755418213011764489643058380556597472872421890217460908291623548503699312079981022051377853930783562011116984568113212213947698232636698780629894068846528099129447890297912987289868792231866437958275736411495676794654626837028055815400815348822583179389458200352958900831420815006579537946236648294836801156313147539815251899459443667910938205846422900856986252596839978941037392028058579048210926036153288705683051792828108215254366441392490654848953835540361682883905572502904523166704033282327990302014795788871473352368092471527884886906693760614886813333251247029670831473718336749903581286820597972884587510762494519022834193381457298034597997234180011208121214407802137535321088969380894816291041878651401791496044648125368616309635082376891177715627012243542608104942486441148659128880287552876477922615014868989529337787324893834897458103874844239806332334154755518068585547160575598023973050652858088292292437284649750941790626042399410791983889115922645282848562184624557967827323309690672794108922266440389963889364052272486152081485684298618687539450424149802000979331957401448799604300951451873233325972887407197237423434651055349435425321597497167088822770275724162135379824203871701392501432743880081279556586167996190639603205901024021459143753068185952586252533831874762023591119118384856720491798230932659361845741043124066143384035374334620839533936875261290308482525668000359256627878527269134712596163181290926190798569355996406785715185786055851286969881250906338688331563812350211016317634314585762421606526286361063959233266849837637330660585121323684842666975130342230614280233069646547187585524805254537782481477022574695105426795210401284899760236057855871090186658394076346687093825805728946227888404195367149793597963984072707225916740007239748269861883611063586657141215330484720831117964016164587705496904874966930400989907633807533027642900777740630009945944734258822179393874919237214973837659087428420814669161262290062532228370532721969254982714366004334956081893813908206194331538188467085365293186896232683555350472865764012202785728388614555990754688430775227475824330989116492588115698597292007496691559540688952579717443208629553509182929195082492236687819660061374609012198907650430263811522083969510665608445182002840542836479886509900494045971766589960157595770987421811594270664389654351469657198631465487352779495078113034814951670092884029133284928190343754569369947719942028721345167810125900229477368215581253961331241270752889354459219448930100405663979024232576663298577797802597243202115370502462917194725748912138729607514575538791501660911163712949843125241461037006534192446658281629010007966024149886526760382644319611166068531490455223365893272261833237547357740266312117270519036369602371767836231865531761924835891594722473272293183318362034892103371910135219683558997661094379644311522817583672925508719827839829668247843181979286069607784098503988403522658934461398023564021657860644253207853711416871227885377156645196720527171308089424804415135232065941455537662410317885604227680816723314643000426025434684365929209580300154159512597550029443365806083649821886131820379994643275973626060310667923078923249500250595326852709406881838781074684085262333751842098768415855972559640825608778470164491349205021258266876451620516132855758111429313082556723973376787856058018536843492425794243956976662310495773523963772480998814254012200704148589017679142808221511220776282743811666329894728111444381463512337404868659812034507481755752951893117794099047525263078429492280317607352904240300014455735017835846192590407688287019420224812935898639039398170691363787392227336021590784640966731348501687910672410608467675292944745711740010868697050697998526201365420570252818821833931343252783487004358437219058701354122188882117590081257838236471049184770307222923993087549886878382787507684423381654560427781944057013480678536479744222321471985250601799588637327163980631544169482536907407169998795076541164146909308249006099031288674040263189377902896060377744903453999891668381101318154785232630831423552648902143564321599973568247520542732429036206145726899836157425184138853849621837060411868689034336893834480100158778556583115458415905875944227377384875991351982541322651018062365131609890028974544562345746743724082136688384754277047752711259817574022601713129048105217002959421340379542832038415808877459387183093983081893294662104531233732852484859887456141549558537037335042995207883878581725198766831339252560110978469609216222698414306834955573041602096314046045169971710078368918999405257169216795922805337983721959302445084748301567427563197154784676048097356370469630507921259627268234584775536684116570364053772472379776464676637228190078462352278682415301120028872522088534601803306637219404253457362234918990510330759107552127558870293588239684102686939118017848902349248702103851701448778723117994463836375746528074812584333545971828576925368999529663007514126426168613115978710565098659222988545873369559566575089201092818567660690794157461132182770111843812983220246960994121297802893283577780469220681742887297793701350102914411086023783665070676154183450632297616019819381955486240785340546693560867574921040628778294838601130635886295298900646909774433089816118922890032689900190276453988453942808139625036552363923829238024237603547540902613670846239952740864750297645086511110392348690217063154954874788578536691330438119364504617038029552921082687356422417181267361283780221989522945886029495165291437832955143993918447139968750095619585634597067940449499526927967988720562114664342671018334485988347673701351046392500943542012340132506557649548097144973688563907102854720920501450026392498319390800479416760507953880692403887772763336156769920312247554815619692153483004666421784611660662758385537255651627870775218982008734944040187907209511643363324648102240423405009559740729997874770422856515942587908876704103854840034406732598003312029936876154659270760563904136142923974384139019079896037600462454041406820264137896965289957905849824080719919283414630493741569371504896126177720397004590281318810497297782220577250580500190890513661292892640038749243883117860444941363476163194806518445943353345691234051759449413062031157069589901981904892953873438783936826099962610295040869127270695346127381050277648354300153311346643480150791049829933867649975553139523301256587451769579816417688820354569146457004923576980974362916681184363870151924410082088922511532738344371404621012541426255752954151964006524612031127767885962145330472495951780032711386211702326144455278502873433911557433348676102154184885093462607427234514546822983491845952203754265836767111027597831310570940934170843261798268189285119170310439350085609384951095027866575971466714390838719745898408367238523604074460539944574075742975434966350670102114607025032094068253740357958423006214986264143761998198091121665143558125660691354958019805890313371429619745661992012190302673572162453729936831878671996292826518202756494036517987507030609633227294797419250298093524861530369777750591650765828271547803007412388024483249331929066517503330683136611692548505983518452947167013678456935058727689941615345972549315543987966984414975089532828612584951070707069773403926791310668054097337090547062381150375725849863100473618788451217698368569577218679914302824033072687339974473348738558111525888682313335035928288389681774264906324595951604407587795246390812223342426844413120171503315309896737512229273994249534129439057702654367812793891551391171597346059047673729064567154293331521905271173454667525192686801333071133457157072887026974947698701522577540990664909448699984258881287784548169051798266259924833355514302546528052791457515276922594315952873670259250829282164195689851924433462805317031934687134410066513584403904889881957991607662645253169828848233954039778451228323295774594015237723959063164331778665765665571503580734021918350220260530830752827616422728974234074855570351853403057911450400387187085610319708358142144943004958735073766254049514261609375784995696024298474284680989410998993244245278943766624994160033494063718264354765322734222859811506083509198090411130327442883775249054237111040140752247287611548930445923090650318733063907237531029169695483266475648272614595540672632872044115499377261520519640289158159934944566459566585807544058833529522214383339373722453109357290153402253094030330065308003316827614148903399308927719904973892825734926499150690747937321600341265785564031806690615449963484311076098363087703066549249297438051870829598312756129464696993066838330334150244779237752148150142621211274720633021297688122901887053606578578235546579945672107466509679854888242953073845293898553336646932732395319784119253515432408554233282225781083211279077181292162745650273499070189285272848850869707219074141151787605279168731156230849631191320262822960984789895108551305709546775544205835073336631575425262668883114336412851127401860635093370048852610517812647855484939383482312884429226329154745333541774016677988185496039737217062245798438727003691229911905705399016277297497101838846891245330637196085819380942817940641831297341369831075680325655577140929391586336905699078000702266019661712645653510645201573761724936636915595917467971067090881009764915387211130231811339413677265019639847617858173075896148750577204383157038558352336834418303313009644991528780788416487436222198664627330184021865254364261261845746302466611703033001002341123525380439090706021298210494822994441907829109518463265517388841296492099639213509369607313924780665052966861570634226526603630780077943710926066719230490447614584410224207353204035857620043772801692357515148417771759199456995617526292202971942551060444565849890434962042161477180931790761739026707658354827679897438478159845569576453829970947495775987407181866497756471315169273183327308815061860674741859539420483278441815925916077947479978059432579929810823411992906248085548694110663955637325131973096419076453186853225721604440433773750964307561294714691348497769983530175430638936629348899177929621385789320851056774521042441892369955401509811402735525250529063667455324902021135485915342668159062538060366041413834972230669495414276741083388458018984347292761445575548864778472165655579958927983323401367968233794543839131443600683206754402673045531693123334503732994494174064055932796326276293476888139118178079298702450059899231930120058208503345593427414074244974236018961797528252297014270458197233862667642477894816619384750596430560342290005049745686489408127955783275193984666226631025171063976713027251174213792095090662071700989471302922662509576525456247462303825604373879819847037707077346984738997707711256675041850065182757608290272182019627363406837945390582024013710591461737071456729834585068911580186005185299921129801726647408024798385239230168856499477852736944965138971906538837104511413155832107454490994545075721066024672927451295846398560319596049051416851359641916633436940508885416067747403618587386437389641861356156033875685305708417226318786947481830510286603317713698014222092913964705351923175242547800833978964571733281377236527568046812845102482898831179804058553939143714804251239227614061608780351661159820570009769820315010197579974100614192317622758759392113501295376235799006021906586930022208523621807697932192474492305422304862224490975068787771131651456410393130409838919546100027581549372213147873509094995323957915314073438335610277817288437978678569845078422665608372318058204049415363083505870172332756906976978743159870844452321039444905724969602350163860210794300734585238665853573571691335931597766119481271704325555880491841666699213704239765498113727050275484346593201573635731476706546898820814998922536075270288044175886770684125842821078170818804951531859394420226787060053379278768282625845205184982068239042769430793301847494701001137972733284563104336818491349860982713180712792954004244747382864912742961443232203931977358738390801028117994144949891188234576381277900982346686351003115166039219001163782757972044882592988010330766659228827032941833555011388024779143200224202701040252988570627542982731284284273259613325383174796749141086317166722880402374476383226457942763494733842005264082037849045605759274609778674408287196249027610528886768155194777484444881655895994729410173227399086609680327822235930162757970785778712164038933877422211753040585192973206680369334660055708708928342493235473476885775119474792160096331426281202396099991688449004181243746711126635781808228667610709870772996524958210107967379354375708068745468615341130393557293144508534960541871640435002897884657628041158787987108760930769444809965634153282755076516765723446866824879143982380131316162004673946541791938519943178565660922031191805848302554311317046715755073521513731006349043506557219507483510257234653136845820307222023550722565219943221496618044004495481359445917874260938565815358015059067647256375103454299841185367799797940391428310107739169435938858112434354327964102175285078860939738400156358194991883205656780127431401066656951051992340892095612146165161328298083276367231355878819459624425667379807262709326915261759065838129552865819147984697042203551463752838396965375425883212091210111156496224940282280124900714367694120683193701309567161459772475238344515342610913244863139084119338545336665130647242081308514117305344857293620975660858666624245770655935722375167125491088387022725117554425356798629964291018980294785705005212482194508164076236423875816514327361618915671821578140621690733247321367691077013458761548493414968964229727495885892520524535658636893200650358839769437767290801960909181912377845075761254995481505679674402302624018650844904878425229709714494301995242382009258134208012866417032706461834037638362694782920648289717780569980226952939120126215876242833446188137586643829342960460180984868945306386924490328381470821370207956340827821365070790270834758357982786794074958749849425431760586963730338043859469905341593984484811071357262516917075961412877534702677923984403314060249087136395211947214143521395414294431810963343295494199747322768839256668156773846815196506894922473732355127955512745491848631307754333924306180727884672143758062950209148136520622731784674425337163249364485636893721770496701089052623792255803735369891405099346712830776881516143497074568573172824366359407047317796050152398091916397304233684875156694776098203616079926969366939157062547110864611874173628588985884881709996699418610195369153448174813992700950079017679873843093008732791345007119711255884605710350523888450280577488974251981257010778014046040926639722981534026657603799181451281348175262823925399453968874474342108241250206690676433301983208654806109615724041436136391111322710456336044583583486915317453006097566990972479448559091508002060986368077111352239512724861490548850091048025162513547347519752619982102508159177014035575069769444753683921066412610514069031635270888245875390452254453509530382908384161438146797685105829841361762711579183131894598449795765770123280114120854947239154508831636941422188493414772328373931746814642711139191853328107792230268434257797106275972164685696540624514800475499275259217744153076711586340367067517042582762672219452273924959073820822780922393341222652444804612851859636920340900156962355522633757112094459145078670635916240606350348334482542205229548701966593750011241109035825605807986988591780564081730205337250310187071895459835975030954426738766086620338301057996295229600492835062727578343753264735609281155790675969858766270136579134438400329908548655823047894245319879171426130651983683768838386153183892683766994010231821514256252110408050905674316904053164030803835714006595817763499178208102343747165471576149527546952349326782863315621466179132971253792781565090552918946918581355478829842715020787181241781345359654029185095847757483682970819929698299572433553567572633300754885907227821955330472905759643533300674496975535723344441146897524706548296069817895586216141137319238516599459594367672478020151101027879786551935135865208700496857570277229331329214461352444076907678371667813377334479968377508210378435208192118221989514883192364264734262678953226531287519965105495444383522217343842356100553518345143969379262443508822016664642283933334676486578463112239744371495824574631280398413760288045944259031814366827946890366938658234590813212203685681541821958565422393082179158608701931335808518629772015150149062720524699202274871697252236076670473492223268676849284608375534890000721762656674032823151686400636300285275109552921035687145230617512417060432065464938624372263027427191799761199957203005027071705559889077420892003082056518836694344590778300848659681658918947584547606081393791349226206312432074183836164372989395770736498898700876129968635012819045134727240501165702862171148312318752084820667330836226601379621432314539454957877883943500907008465676987735892994290412115956214540328464734667842570647639381694043428009094125791591812085469086410696707138658137279554564894002171761932343980000842645710713081061955037685087309656540772963170026406318983632575033908088204497376983874882793248594906468636409109759483362045476835463484972665100692356320725339237653932072636982339861469344405652362596551341553869247178306834653098669169519580950661799744330621649773337295343430182972796087202375608023775949577361339195981450076729325103272252494331088916545339594151251333649911192974638118905013169149890047731641709192408215478205434751162858126432099560397792916351510594020430627510749001562814248106402379777986485887062092068028145744769337717276933526881452657507035779827368706773246049118392784725176907334711299436413882021215185104752352344106793008371652514082021458619421519541004259900710970178488582331277708214314147367974012639613015001502828449728442227581516386486591018536654701535673836485105177178310426067339029279698789305987005752428873209802723142531792683826637500532826174016892698502972542135609243008819227630165757005414653279967540812575637468739124693524267778195565982459153746362502077507371030282118140752438561700553463478533720053763840102169396896329411959888633863022835622216906721528551949263427057490890815181737561722441020951913247483832232703142245899498964070211614733398206551888735782745787415915688814701804497816312227119531948945989832469762224653022409201867790764933857765994644539182633860283968567044533458079843606386938464164044690272993814321937477107055955486462130483813466869987333224333162393453536756710471062424891961326829166931327354299247601494313974655041863460750439251469843333827039214314641637457358203320051938184614028763002526555181570798708690436466374771949082018880258139177438569989787330254517134228208934163832824171421447992436249670133982684511892019141199233915665152503596102596617087433612441362273716510183563904755703329072161567707082815917813692386914563794060535303163126315082278558284695707520442904031346158002715116813229949259630740663462732005642904384558419304311610442864853939929486729969928596763475883593199163531676615320440756294360944446360077197051412601483488450520055950100947823869442746760156226239237429108442750483405945512368572846200960163084674564782793371581463922589445177585001227027871336680078183613073049781531378508563658605728567533686059545349140597390134833251720425169368648823987336191431401726614106247298845603600300579649744203184010888677243047383816257870300994223568978664955358300207413124720111785157153804718129878071376896135745302202437010764194299955661401295326538584057524125331943674487015623646721413665170162258089704303695704660056191404763023099374931761965624691442436549989060826358214341623517806674047750335930042855082126291387939849885943120062370026723192057949163036294920305840344591532816033791886345336598210364387134989763234235081829073738464245493913757854206184223287659985843215126466287207767367725561620630443153811752012394946977840260021253115161668245361415966490464012962506808448541873338078228519402589375301831604458671922885551340257293298393849103314685357876528683531360259282862676726408854302733291586571668914809259250732100216092384981796904934290684268096900484130565919128502702368154194578719009059107152337148022416392241364515313332144975334246307450046261086462706619851166980262592130891967124502521934622394325056442631179715244197784696466138585325460056393109905429625498773667623985385914616064363987256302564387736874297407325214617509867141724297201537763140023316993783879780962390508145726745634446812413842939287228642349736254241567678944510961911020820423153837408501481988562875145388912489986558922747450995014601708451435116957094014921388112740693771375208753181256197002465709274605172839947957318340340764842274363750545226911141801456433916390498271904332455624403081745860333127867653319371976709611127579012400250204996430830016783799725085115971345677532109906877498610935200414050876319597097263907139791639151205710041645682069417941121992040909697555176635806847433806016630518223841608213077927984221682884489856426477774095529649301810079851947725715915089214501131447036962544918541258234816810071537789037698131300564463326870975814611479678926366665040598317379226002886310861731372280780189766371586952490546266688306142549317374934686340224503584936356530855560022641961860983013004278626057216010369432989795036646227012774073886656551049013478805077199628414258006711299855895198892433698056885640556167810189585523254874342124534417556759498245848038274774192595517426214991404424228201423195316449602853586382625659987990882857755905761115545122401580932068946893796243649825681762537150450314138321311885118055336776772288216501524970374523322598474868464539681484695254564981002605955077506685927856218941540981374734338157961910760595285602434317259681399412739028955490158472094657550385525848114080171768094980927715942107964735110365197779351226361112929217790279077956536607864105591062849346422331002719280412420820276616233698728221184245905584020508508568648391136252643751309492479856059682012816896749185156791197659314430960664611372779457125070423764631552951059949802554123785076068194798112844470189345243814992301017783082910148717235348012095219891176881967296026469896477079266643675892083307273463725294032784357451502096928327762027577607704387512076046055106392869290223231508710125517195634495095771624380899358052457522022405061421057427947969268039366504344877388900018751988300011608468268854645844462560819296242928428381125949412775001498227462955069906708032770315040666455296203913670069992388072643632331725082275591104405759857523626645931373721079968020918875606258786821135910227847575543366694158991612491245028531427717114629637885215490060343962828573538735916805521298995643223554422673983449724520049832281688371297050274985208019530002841336570849375826595973112202066796279233412388286792870769533195943532727197336770467277702227768180390093784527959081075193864018525349476826728629124562197830961398789288559491734875686174031554697100509156037672718197486199417916744939634139568281333086902534765828703063792575304589694294326696940154796385560854105416219637972240043418026593587162957242295758424144942156771757814492936579323033208962766792343249680262452176105826213768378345227077376914916371795989876617134150653311504591621387330998980595286344222292077133386800688383453919230982505759636409852895819192945729377564194629979117069356887555942850483037279413934925496943864622693315199746297280015306472619147799497362135917776972866515406083709796443183723579985868010857412634772992937372363360871631583062263300477457515388159035739182430833849497861425959504355295986692013125796247032786664454904852890119194413157479050102473980850023845523869309435497242911590019510533339279264671098126361165964958018640776885957488896862484229317016411924122361106995191842210713721766040421581460798820904557125262307133876441611732781033145570233671524422108137499405213720971292634695132331359388714380322152181624363770168032518586992233700982439513511888026299384470779708533723257910683131132732003071929822317989653047932329307441001847276075350618858010424900478685481729265223601461301780617872516330495153006197902151212644156201457800436911304878332854263446526032452017592064874297961171767559017061677438789816681037671152324179014692615591418137350991069256473456179034803634293071663467084000438145674243571960564194026846168490550319487444190777945442163414633693036004542112282304645741113752529361494597148091188908282844557407019191641187536809552169027118602585995134683736137735272284795629112791990760644787717733574727745707692823718577616416418744397754365617298609636284176349126915243427478254916587856490810482965651031114625684017214715228682500138214331084787650626548096783499066832467810496678018939913680405045290963049246473124204599710871985710011451960657166738756810784667224807517652134553505385342686234470683153260969481702212295507316153130583817352036107217158079388294202078593241548131256478248603876699792846603937280771296717776307659391580606614205078928754364483448010793291657653782720365493636411635932961348714227996247019635711176734246610947084827764447932647547764553599300273658575692160714229132864133410375896831718525354884938236663796386475391135556295177891160443084654906247539916777218727053191306939887299077983935910825801058165806676972134683431424313370616465892421913197576918480837797754859102233890818853057696671511565341431206658613895675674672593009272523785097703767358403087000311241311812765457769194888354357540356158703004140167760808566753084841820267545963011818970284405354993317833474576833984919171916675447787811510585115689510129943386203457372415009749022232569705516356516077749505717610383825697048964324627700224616325439230813489581095956673610426886977064096430238774414884341813705063824565934303378823193014025287974499177300131911862136663032378030443227159067109883639869594598679624650748763397160913721703949179860837877753034969873152519174120834233214697281701490422203532953566787710921823243349354256209052159204017064922082804341594568950641794091858053086669320869113368946351127416423528236303795152691011677071308622933664546035203056227522005708384366671941431592389298197357029575822613361548614921087099599156555360544644448842618300658811170649964998507956138133939701812933893354977978958690291302219253260975941577356475039287249023131960991445585520498722471418015749865702214563745839403248537834424693210031560079883538060347966834070243251273210051834378706354036710344251253362777469791013655694347385271002110203796378181704965651096363543843689369172852073109781446410955613260216012922563231616449860081048292197961404656024168251417089312823516480192240098406342267554421569296111863366350463305192194222925870359180225688315638050570497143835720758238807960164198393167446401787762933676926207441428912508118987893294769563161962349547326055893533844925962053464671562730516129683773203515659020728210252219985639915035733504895479117575314887844690394467461200358869405188674094960517656308842471583601112654024976621964796217467529851167945875614973612363724495479666292077196757770724967927571086129139324993506066936516341339385981555277394325752961018627208299385375685905524296667126735308366969264082975081269995459462965059274824402547754745798173757784850851223139898631991961110918045657923041132860962179690073495093130106574120091760301499163799564481816794596745126661590840526271051749084161218291490246213478978805529048739330288161721314241729429987153650997480788254262679257761273273956429157394203797284538009785854886073803012538120361118299728667919726370046736375576791226537539964673946751004948376101040687822769554607362387294194159592665824112400810035224241600167245012983076796184425655614117647217293875608450385527121238987016179543313204080103464443217342627964785976852519059366408335986822296179196797820715647376478975261876508970953611804802857453813366837171435469048108446123339715370044543010163578017039613303481492194365975763858939123227524420771093457135482052228962604510388925005478109364558052697486500089574563567634369644345270389575721530013278173733844026548533436852214009316326260487779193033653107791670949570468759383150940733665095587766947060635321597606899585691735159296675350906365224605776571700842948972302931466994052211051767725557688135058505426807016854270193043970430275691207774477191787195073445563056171390568108852250148690720732788905982151317026831760362686253441082091995617375181191418673341743635189954701375287173480114918486399198241025692118205612713149639981074989533964493869201633032495197851920367874083312928370433355079328053861112105097578251614095966624573013824406896417606360516817247166604430039956878264128489809144415906269827265705730342353218970603032214425496355748523932968331512061906400967337233038327523556981244857698441508572194002381425025070334736586642921564425151638102679765008266884928157416158692020838685491797581255334246750281494629568672397431993928811148722952513735917899905406137862457389849865046296054731031912856328630754062349723150251108317675060428299538652544019787592086805884162182423088945957125072652936414716790430755661833462817413434333662349652773964799025361848317480552517886957407149661489171477325369848533093154529886246971165128278856596365824828724963551378737477073650878647128135415111861519420816343819084851616800319160551868414088226676366147271989809659937420149445410578531404844632865428945053337665998007489276269458576504592993396942614921092760903251830605382300239928568210551912625639046411829766319882472510198500712781040611097577111471024694046404835916748012438852019137009610375459929977935659502807818737283886779121497375303441355781549785279197744345798936761884539941552809737825332759200113221302135477958537013161739559892384444869947316397344076722668497655929932673496991031302207654010372329936588653865357979200873523867107061737655937684924871193450725262452438806323148056768247548470534394482916762878571237021593223081385999991476481644187701417197031697846127431964621607537251261294596220073657462082456297911979655345711679160897483972298994397469551738570818487804318439831786959069519916385186082010794499650433560898271106841174065670135346291012010588796526193487665456561533485836772794891119188460282833183578600623393024127638622812332663942100267509334611517529431714191276511259907533904168194929306153699950741644651529325506274404335637887026582607251909830663153294485228464437885559279295935408224176127873227545427338027346471861042752945370353066515516509192819373336386201969017313138547688669839804943918170233245629494846968084061729630984770733501804770024241887583204021633211318418036493955947573696069523690182568410481660263271560610261915590776269295230752293159558573117020376668521966205980234220407994926328598137709712467174317304234434629506565691487984543981957863781550093915389828789663884174193546076860144860655816730040222866262593126130097070920620069165854471023217431698687688604413964589229388808868598543784685662203506148609826268317234603001706320272514462667264392513068423444229957592575069732650822039554028926115252147042681616391005780627821826327410470098973766799150013317040473838188014684479636874766717759617145885473585221131297482916436675870945419678139747952745753834114740374619127677820743360205724053095558267811185676541455485823702623552337225703948082514338081466482722180974048265034625116874477164376789151572931745116395621791372495147595360976812149398756766087609879909589334996478652113194161598984897480428984386420772825230626965090824934922149297875606012163047918767817182413839218115971400192788340129941654613728376325992839257487079154276409606913055619692214414920722933661278985312787521597918466912068356938135409779916831551206641249227933345543805788762311813495495824485600355229721827938067111264059221371541487135398059300242875200838902700268292084509686626905503562501265091690998243081484544991401920937058187767746767310453803478168270996678992580731238132192592470977028831956745969734300446252977040410011294956744962401081361056731977273414346310407322504140001729072431661840069870784253260098616312625373556203849014643731294483177845857628179939524617942651136162928559196544511797397347279533562434106948613641031063431131168103742321413263015392113433342043254878808864265913576359403925867325116048617154269506196211096577133850567872314412613347034749348416114270802134562918062841075211195052785918925487215428655080981972148199211304686939479454786879551660348131307213458650508956585273010430500463288376447228573775314855949023267006795083421407909360292624198533084560921394337940599710228983879593738705684587679867525920337901200171064747101886559349173429984808113807672911844553691986309800560510530900139153534147623222900336178773640342112762451328871510156109551049390241025362618879631066928553969883762800403723760839409239167988577758706827952833613041876746414171904836085579810361993697384073928689662652048528744245744178622325319443644397834429354562128429353043454964955762888862323100027526985148406483761692817200205128618882376451084486417486034109818084319008374972988134080401626367644341904107052831374871310384587975229796778808329366376906105010752085126024738771980462952763462410346553220821123347745248984268208199549569673436872667318672871552416444102776619370475756198291987227220682866635014746783671292218371002801495904018291637465369030763001974917614952786649259556384478851858528084435716082191117367783047186572102546569716837170592967514368057097766021545726240653766430694497854706777640441855088815099614560758570294512135168067269428318655603402234915496150731553666204321520114697534942497252420731397106828662155901276670496786225220473932291383802441072659137801091288940042797647931685774165252737895353315717775632003932923713325873862720767310822887701689979474293169096374571087716288524604176640322220529575156574216620756380798251842368655380612826499526524222805699510099226468736119954208019161576437387007982819327839255541114081752577515707426564223779916441282017601051171326333848281583624358304056690808169002723081645934107317442484483773354259045954151374522065594784003820125075363131557121776591194040494246816196131160616048042395126929106799710965386705763613678984747173659402097837849388582881649925116225379660826166372149342642728232639531123854273003755949048843988647331283297756092284568147161639901889609307914201040046513760738298180674561100657885179229155993278090778408718806082756247040338997399489805529569672815605018989295764952136551651846802875386488089002742637329490213885726190032592280557511336473370091392910862911448978222336884709066298615938427455872130407096762056687741486700225110761746673157699732785757918714449921867214083854419783225030599298627852969809790874356996882732691616223621529003613507939032017524751741222962769969846978582090966862333877787609660915104923022189014518558662162969629545366334000610140986022668347859330660667098416348297994413847905932267615579189896697381335220678377183871176898279122330120561502199057731462718882510820767452708854557363434324605853513603366936230883011097285425338866327952473244181879815581061184829150419390817036756504196361338586094797667242925209840469361571513592291497556542429170409184117358326352952233984483323889062763273748180605799579851831348662596360459901690672827821172816262653505543837790400125326378033579567596678718553358699679685623935205790532845798865346324186268242167533935040991516142815682976292992452860186805858480551688878591166983132644476130019159868447359710163863474264380197315977873969530233969527747943939610402805979509318270055570677901187047751798780623531050518746208545745886280045629029806090881173321451271282354157722702699025523324539366016524835896041711039752980104058491329274220815965516850889942509647743720440483692214459449292546954732079986237945739760134890316717872286256288640483434098388315853158917650748154104498749709766140063746927592118542946781508160594842063891841471185832594278618806030050547934094092430123568761816199431944129816346289639224548886953644941669862276928876647734814459639930627853584147401222623377056595851671300832472454633070789247543499097796287060352015456195883132254348889551897732790413497832150924212930233745912850197170826059650623614666233193402633547924592422864618065381211584598354125169507207246586879563300492192733795051760920173375676102689553842580037629347484310557774974617411114941309791646578210536976589269220126179255311082612522483580444985514622844205653218603521010289834936945548346593995994349938688765299640451389243143764738328923686195672977940139159527373544818747075247565999841422663772487238628249026700915746753474241511283643859973122521098130069827732777274977369623664321227821037039812799543180801641872007917047349295359975351342601493666787219643214322769460168837684196265102404416140427249175132451785846953311430156567909678892927978319593638783592196880301789886523270308774054510988134030570713155983662136654183512159570638878006357706284045731777584568482175881183780865606316880071998859577225161410143203333268723473219114573356569064437232642677509683476983702893520606872021150852469136332321060236216988538342483193213763673352535304000256115939612043433847872262199770659388728821265263773740711658556853461377747115476991894827428448304479729026376765830004643968224361919756189702838201721204039423516122220675577607267156160832822660821578197027199076848582777842194924433514024830235508400494846309311292774053583927158795758788164919228719135017064585572829786243222831195148073608185717697306537095448351551042666349463878792054615041148576233803963036660884130169488696777592087455712610557799433195557192201060589269811440797458488018550375511611480859251805703304063146269162214495156635603462848716311194550041723935330102304035216632745140021765226214083878562255073101630935934580201369426413982680295777388253057222765314305195723646580903080509651094495829099047057759864124061590295985219741245535619759256712325229700984682819081431358235219274566450134507931793212344448700298661602567921401608589620852188997895500602185117749607809655515743456203413767899264013728256427436989810206333209296872742545916260521383893185659482106501441410265250043165324362964004391319516635177455194298726565467699777202417630943315204956367170045002581039820689219913659033180684987728166382260214043519010549746368163226960522925111931393084445836400862103400083472693160914518739445133856435316752163241848777348267435272924388681592041693284931081436649528207828405614089918294069464129297950685157278603311016008036697663719233775694964971250313611436988826274314215754262332542335582870552885382041657974078897926016183066303717201153740731255186402299934318326537232952189948245295717867718309158258805030963181626047513879899089113618921889300415536271854705081068821194667096600225658243501930966497189617934204550776108122101308551736407774356064861945864324197308287538411201012356775144690595940236437509632655239114568136488658391478460208942625475745006250659493904415501730721167988103809105963963789312234751116902119469713282117434630173322645790220422765149513855382977836108662712157424434667212831430474665763645186068458014939135932539048102193821251779866383691954692385455235959485386526821475759525529801267921354913291131327576974178328492658366407027829727407002196417498241765687201529591765294406939619533412195327400426829216554512392751631323066924777630549173289422625749491115563955883036301925263842788178321830410271128263012071133090301174884636393882359028662238853755942081010343503906433952570011683784209720264075201562662699150200310922008776850685440550360831064439401665710934183095838362350254928975119994665006918120377964124137939978017753612445858008146566134503354349815927113229992900900872333233757242180524121506702189943564790736310495357160179303582181473736289835801314798516358837659277320811181274173498337336482283740853477695500605914153028587680672971377574243330569409510809797280571944792900278974992167821605509397256098356141823971171098286887124807804060454321398889226964167165628547471806336039179157571798474026513017642483548962222171924407735660292399497365213786553350593048438901729649414737276819820674852532100980945938949921889655605227551111792708144680079114789706527506720194081558761703437246136384572131575666441579293621330375943853692626148943000660205742703934028685789155057582803938932699711504846049719808486668192529572779704413273681434778537724775697027805734361844863303872217965778259003680364146848946799207712932515911549216237893567769255705628255962382106370314871425499556324951721758729621553335277567239352626869986512498180334853255218670781389823792039864814610593175344472297086235329626570173954840751055168167086578833334649068577157343442834486820654290710217946227564096902291090593194245650044281612649656184683595894140610704911083995979759340540006206250959395895195498611891578961848507011488474606665244030773533385177050464392321130948780511110164390906982544359074621138290555794967602986201691293714910320439392951659944107627410056903503732533334592325325850923715836825526942849905634152101856236158297133027427079250245700502637252940973304139357926231411770824440543240816932677398113618835340779542591796038018263905781648712353131145524365849081443540852008219190269917000145537371792752618109226363678224533117408246767920168329131967526890794094137813133105484212369515088472251846118712062730217721431911546188639978463618886815435012917028219578455870361754633294242852082568454112555558615267946924875285797024690019670867734275318302935373328500903395115121472112113026011411343190850118674566834966810672443255971144728913009091382082092274518793612650749999536404209267261308332585094525265853032011694084788413084327634722370236330561588193815761975074428949404186834995581357558257052462727587116084011240152153053888235967027882672760850509408927008618201819309450712752549107356236837813055688678273680050509693212881724961036467290735523715903859263792258406934589846792059235722719743146340511569900814059153452171701398502306177636558856666682972806674911361096649947249880457909344947588644777559336295006371303132988278599342877335100242240610311195939863085968901530609364610999754850047440142814954121144367740731650753571455641699101496007131207598068910697279122693021504975687636360749020301815244060194608115154290585609404873626208352538684923098336662365589712855791619513207030463488554723046730717264144753328777324380797256642891339458132864101569691433758343329534100841026479703653388259233458740555145059752481013810555249959835707091790893955534801157174539373412037108975571041904517724839218394047312761180359965389857112240425458704521143624285041446529151691148179360600513847638687238729964314075004551449840433285267199401557464235118138655237064130462314194836181749117773452090417576516567962915517120854564773430177042974821305564762520734562872528170297700764628985389794534699806035578221354490501504124814074793343660523566591294905165751481754108544154747574200618995718101238218421739442858246513520405881058074738606592910303957057101724859971837370971044799913804908475588648219320852303400136849220189216612517013649160254743912582308953562227803331256617043089840968770496376122122692919633929852924055218319430663310322075840126895850009214743479499786171497446920214092926704068668349323933287820310486779727775892029146691892406488326516510622477238411288249005214855525973305643860504340453258057958361766614116519050499754839831334665872643808676520213616642491990211848605680933601504721327860868252524364896497650963102537517307478336610438602202659144927510833600121267460927122965882493657563194132706910877933441435759687566825889292797213724108039743713329305091561470927220353342481217733124738476090620750219823615750020750403141300230640220328705327683192184431205666373726856666050995971021953597418427581383493771833901498445651112601610671511864585305484565613542086102302548946205751401798270791349802773930244939627579955020497115948144745504487300075730607676229435904065245485627580777126998252619723108416474219516544578998687635747375711521299554965478139284580243306206436636004526529283301876884863549581339344162510156080480086438539884106089796504701966728773962172468552771057041445349381753667063891798207437365983764014782415731106352658303877522518020698725287644520537051692354912388794121802663042926219404192001109045973762247914694381537130173787667624039222808457240943322223181019526482988339925641382492697104947725392068748547869193910750550878728985016168167473999304665901359931110273518585831861662453782929558640441848109977430348338945524076143808606308980046301227616273657619816741811481503744897659654097358873714268281863684181461704610871617420148295602252878479767607903731696749413239572351144228914810695780703181081449902613658765996752632474370660289519702493855416619193964328245804088270152047061456064572140492985158541876044756919093877618385993462860711929585886192350844572907045626074894013425409663497691009621170266840061918168096086806196348634005514329743385823692808698050186586009084649069409042300409264495096962311629494229084785111769336029478559812852705831739819706407067712661933451628540541049042094405333432744719195191294164442232587842220100987746922711308101100881202975536636633959523927827709797823065489909397410603841034738372226357645452016543394841967605623088166849152898270708692889651991067542636104744124366325337744323305486381586963729099183415847285543461167727198397902862649934328418100740680356905023900537567116191816101758137964653568968712620128795097711609409564436415458193748034131100920288518729062571797940277739365234513778902251699037987438548119399860366537749419264083402494814295936122467855010981517803100810429446544505064451343758005576634132387466162371574315928483489967532654920539569731081557454402556139874646340945171914732785452163284552052436730556311787498604487975328589583239646249416732536431131802459100632953176663307491848825320711444897493057644718993973187225381047342769624673044637972440375552625371690715234156709097976726113914390647864437611715553786373811047136534005547601132175741769618883396438095081799132759929421213862747069931612141898768235382517763998896508510440083788180691210700993805851178843797070671729934337433638385614779565717018192589449959672887280065031647648886824870069865416232935805071459939984795548827181685021331676595203568841192635849395013377086396505322944108861536276684382782321371699303314345155316612843685231878267900892923024868086091585210466711502100569972525092153802375669233096877682202713213812120906749073713484572422571841232186736630582509554306376867724743547163497571449395615207384015495326988855147275875828162895536484407940873822565629938726436725456144584127180762254292261524435573074056189283184603966140977952030851087055911349212562095065834127276452274378107626251726220818399917291644072551703522130600197715202304105398767320026347201950638812231362144679773162615013092928959688570104320745423469769351052687561693151387090678764191548638011029155480289000441477127623978990072411729413502251266624551270833810553047075245158739332592677176148367773038127382876563803629915127181781552681295147960547482610883893165886134166417257047069569515944470353908655052323928677468829164014577397384186601893710583269168970994291586217602879381923234005703543327862771538275621103772632284736963705193455530753086586463500491334193875813827456458360257300627200038277817214209771699506777428847725033160688283992660092672035156016017022616745821272944330481243544525498531998642824759711856801899620202791808199653778653750960135031128349327629137030574460379967804187172581308039481013945792114649949276156005746548179648932686440985876019980491205281447864244275814753946803065865773476666961211486541899169569770940905927710007541207486672362116207926244935466808336026603487012562384107196270069485943742013019272900608515731341903236577682656642445689854741648412492898805601002325352979821359198838642386068337210407282182824645122664546512476107432786361434815808638159645529829172506482386355789305448366986972679130879417268860246544261168646195727587073277667491483970055538920595617342656090162323330926117132002647926868490984129229002488703571725110121622523138041235087151627460217244698527358317642172587173734433781172682698185004780074827300197023095325121300927979776716207330381723778213249986440268671421043505223628754268694141991083152051801937591061756935715944881256475749428140569352107366874551276531991345758249942530216458116628874280473181816786739770620229385085422039032827097524545915900783637695522808771058789674077942328065158089895974627736002848125500944011499424276708443996850649776902623653753799065549390764058452291938891111443333032115980959004756338180417342562526305446274629226964147336313263148356646661954356546788924536370784593520246107828889540612926782847549890370363865106796171700883878222366469321845298583315617801782046385783221893968733384424221038576527983126170723372171654004295923801370743018691796033153417482428508051721745248985187175596767214996782706607675686607297027514997082935748505782002815519499073936675846347690553560558153676614961432819842080687782123590867350284562236746873541943520159174603840990827420087968300678612045943768958080668390998311540486428710490436063846612008453380221570491840984712525645524509412257094780374870936221069304769562613762873434564124513711692478439892992757754253932965450392974495939746363646383240135108468555806175193067651955078974022785965671565039595854039637201739344530952868774988724915966314712093450374720495376456947545843148835321444333824766246110755088276066656049489512656596814576070953237038619543873026512913445674691752054685748291084675605636799933457175728042136363789738350161242667213180627379502212637032783912335767505613021116934861201753796298735826409086867698709041955065390745452346608286332427695108715739262618208092747623461708184395221000958820463006224860280703332122327484287437674540992713196339331339763250914776771789252495430423497829480201320565645502233173564642312349253417268948854434243561012483080872317622983769179647568336006918022999857124926156692087429959105828342520523296517837583354661701758555702547624271141644576132899211450810867823595752899432710261879783653339709298381681131245099221707968248354824313463076079422233025620549386416139992803032991477999384752078042481897160814943091402310257002813270293196830572185588256488833199408231641132064098558513135571402870490897433811288684967632729829353438466329315053227450438524976111886966380770472439079971711928230669000308564014410503031561634556887316871610417899074230577399262395710689252064487878263309650462608069703562235395048544669619957345846280478959351745568316113232419830099447236831670327784368263023272218222750178735753721584949185390441173995090760435067149433656984435092121016880539809249674542957697354388988150556758073575245924104885730018792701718002117492336260709470030459019489479338637613192001205970838917054989626907702042919148720198861730658348349181111312306823064573775025509739866050620869000913337975951119155931024575827783259842386199774113601716391844773624537607801635290318747921919834307427613128194118008242974796978531110440503820973104925387874745695946923525960238209728350152836289651052802701178277008658360490886330551614380806999174942463159984834465493693341758875712577520102212332820757260494804037799177826713770542571471401379835922703894265395632754054367973472217566575171960437253887432871420735105251333275123651449059841308300429383835311512351734951809890785646607779592020002091913144782760984700484128470641007669378593993163725560125177125983962005908236624279038014287464934256138956123893015394181145659143443840036740678115869866133767805358772383337271959702724280695401258273495330998097233597469928499818705861436428062268262177139078787645081171048606902610895275809070103716691548834855660167470661618537465980784305782249233496521379671868265607325335479793293050685188777052323528961688736649523490360286123001562958846156864746329796845910726962642483346342214991466271637029081122602036646338014157957599508593957844720912613437021117886927165973426665588939309459506086180198516893417057491959847530405156243646452243456392925197027925962719148258548065387639332708797151622319835772796830769088770554060209453561717851167911319962548772607893561690713653961542991942415243475058744576638750263595741206648236813368721734579036436402818959964493847016043994718508303566510404885632857745068816674901050675682507426153572840278233786877185654074108896920665909212129859522762303174121610516927003339406096325195564066822986137482605278067441485783284845006195773673794223631997238319963326937639053895158547569923748795627880692756011774940704673426695692062789715585842282545782662893984458898751208990230661674257470352488062070887212809998157794780412864681065681230655901985908202084454874391757471652035763791721877480877859181312954655951328136428647283926877852525568917586757085828047902503269220117035893785661221485818000133127399805164223718016179630767597128099099428854723678393633723348824378504495979109265569361078725394088932845594059098869399407602870842584285051772329204818230058054842026856436412625207436754054407185315583463412650303080213843082367352678823770308455805513013841990799039842961894434614798813371294677651237095457787064443121380124015981298300297556677933471271015119129388327373458956714958047574727359456392829991923827499798843069120222234106269291929736458128121270175023770589599409023970578764844929195079722892014275117084411713824396617127928147160972948710216106001935613472686687260639069614348725532477238713177743653211624820918222407826674668437699600729519611978683910352328945434053857723461725959143005295366352861438483391187010436740364964724161104105795583441373372481410428844434115427679867022480711142128916857731465558303567906196441232652013030836459555844672455528121199241806124468416294511324281139538439960201603301111497694334994911083982271223874512975571104246594450567858723344288330075786470759679638705822364359424339520115375525714869422938727720557096785412289019933009806087182657127339664008922207856696255530298523600781747908868500188009766579838954174401569253404254628305988885208941898104551447335242333587056774133935346500361323442789919185686359833067599686488358381364942377083182482459395654863223902402170575881954041022935444009933157615366499840689014604157329029994278088095611881922492750858721222659166407148065826263538142440729504266054154721694054845002255281163293011721571924032559529994857873595659496539054190780835529519846511135641104903388033975956427104162481026531236680759279889965347756297999583887473380029725991548138098770119355145600364567990773317865307188351863754643189127315447098585012711964138455646566612069884119764307753157039138798404529574150011845721311934547074335106817797531676654359287840066060251699451060774323925639340470914909195192242756649303309602658843457783708250414631698415010250041129394106030775214356297368652959995307949372450675476212256668505918402304709884469647661800693680821911524827732995666760019530409852512754412060803904934949202307317506415770463822666522963627934696663372310758308504520238546568076746370198853821780885374996569919079999650106843302306907201580768719714062849577223237821999645513029719410298564546559106263559845826869403022402561763544993215664225985061088403751900342636199830708266116596723263623783186076098393691298446964436646708517113287130443409219558479081239961712073089328535752428493670825433210571785222089964683446036352411175598842920750544128310353358039425417471036216211748466529541463388776367997722608505019774137801634671868273827008658692276154404077178282713771832896886542317798998109496998278008904587688466006411674252287085654709767859154126915697544720965480671166391394211046644046782422714914983765584386187238799691856468030118306644363604826712436881132897062916645996807740102905330798461363140625122762662621869422916590439458066950176942997193829322387495620908615343955022049838539709614300903079079596314667752056790894225815904022570931839190943486831848919843107580536033039184884911649183653036535731084067957678011313672348565128033882649503984325584286164999970892238256478243147579176769660890031098837865910945946590420116645215374284016296319359152956622415079474265221870053430125896295411773805753774126534287084592017750562178127149494585082326550337976003069954549141161138363795723677813819159794959406137671618654711498244995082984732629628662093302197837968994301708163197890389533177437625278446904307717945437746525036526561699250518835297524728044135755101755820955721137170053676080234038593310470871464024362527999792402137968988526697957119496789989211613601146737078000470285095884835468645676638495081615048018707538636227081702529820489975878535692902588919531516851836888344042574105706427746641106469471027071031286993035582583023129933774869442168858838571365718872031339169988577772521574134910174376088015356415639639560923163915645867823597479012749622813857441495804695259555920311604076091255065854234676461767663672099833047328958060964877295291118205971379743746158017738828669120472039952341111698741576552042376934361355850889189688928913607732641618395897193876200183118894664538195334510396650305214732682141660586667216176277470900620715806726525688615711096977197293376140094173210194609231375547441816027202437809370155940789834619037576880626800781106400903972652100657919717523710080604528546286031720085184167092133614361763073282399747231235687775158338048857606422910830822778518709222222884617251070901769470356625600892881707062736770242872731944024176151552830643419056592439376481263242259085580022452829548617411990568880260423652064238337514560599373734238360628560674035302812658397402013149862468159277255259972439912136041942683086166561554081866608518134610201498254944515218656931117421929826586465684943528235986965800308781706705401457031092607683535520440204270589750309745451207648892638112701734915879827581708431586684423500220214227479202915410546081744651625514566423131407120684209877844550963137913515698214141146698396567453168492207149023550592741630878550428207263969659597265867209152816868226525832404519591193759046177327285239205839160789076906239434175065228114923737900473947712981415343587574673781522749998975961427628522196394782906805952217576645850828935424743251983457358559596943176585151382899757789560363059675945347303115072183405994476917896135371351399335324939250588401562148816444596170955525359286254844259184791130234572241361673712374320703486928137526880021722236945281289270697190403732612834857084249483852430843322453556926607186864086174454579821544706989096840341776468907060725798041581736568844137677280156482885021367317874158994170791725040313299768090284199491510609901053407857799475665296330677272321279318998710448108440993914680216644534214439615213843930899583849827261015912112388787255907535577679206987087319023456072391107489574605395589000102473811570082587378768248432407195509506201671011736110374715692674490750954258516213255292954721421982195007606743697188416203426888112204107833574644298517667830694878625055275088809108969718511749394010749200944543089852088158262368441795841167657698729474073867294418643270403347117801185471718338574488467709471323238335713130987302727358547527851830458889540500020026072177980173642006063318989860889070533177858487426684625515782612221022367485970133008625773238621969976348099764526150934953457207190945689465164392561097444235814864057275392483067947109912932395884229848463235754084105079485314934246326691705849068744142236711168310935392931486577454418333072265534431768831143152682469773488004419952744185120798148841057243829936504917426943375825414028512454043125439469299992684957296064773997933839521114543670236845334073055501290852553497819014753534570715721339107975469938342047649609127286668994517674544991595136549220583677319299651730042259118125852589692257907844204350576237278700260590306188439351459003248518231315818160336633526203189806886281789683175720392288562874175017060636922297120691779099477536195152844087534458954213708165531643212364170202888584712208020494544608099194040201385082782340022067280908462632533290471811664867830739603720581533726440359341330494630634082391037036491279891452323514538501072312271205427987114439746609965294377911474960661526979424510412154724010046137410076791955616014070797113202873982994214074280591197104003049766920171326791902984852336106884649080678684008361595724761005802518018075496375256055885722905314681651646335945225349434651994864951931531148501744313361916356220901223616660936602746839827317475443331106527512966098718076936889354809847850746992743118703514944257757333767813824676280613964093962344252841521245508766358959005599631349886017079561840506421079936613285530315011069871514242220275147814030013844193170122439440792457690095956976299987989060202997121735337434519879075573506465204008330863800548052674317856336741742290692249654248367862362600148740423798290535845161591377198143312239131850198609844747735793750280318129807768645185118065291220560821812828820957277349509443672978938226675240977429391028224550201866084462747089406912057499579627330787504478440119184261309162377618932356182507623381568899697140667096092208334287148525226573051489392468733837330723523333357619674444458389652728770432618870470316306965620851454561934589172091523997300546037262751120476418568724426322131277851436188792825266300482452601685345730878407607005339564364144262455843096676807736131456759730796231293284670428978142617780626133808371338179873982430825652923541829384226113704008438505867313889121667201153473952604204349828100849574313681945385793409643806599180122166510594136676323364309825937945800052965980302156840018309785469621797985611848485339432910399052317770683066466569127345169937173433498185520355798541079372930798389889249247267665552608507484101885949251901955964175543589142836277091948503052841619621504366021054007166756403647263079650007435692690383735536116416638128004611683177952209783833016305393649589800868540646402210019082047644654552328708545489210377592736578996448314440345606006440681229794491337882362638677011195235901248822153167685312426471921565753518747516537335775925473583354574485245134396848932117369015000214898819021572612878964171880416918912885668682583338622307748160036123971498337909542350634924415569328342994140083925566917920192638775453979982151102699505653318150421421773787988897040563180952349092003821974103418858813135256547011578028222274327192796266638658942899674497010185656498677583626926786473071647135002531366544927642385506150251953059885095187454948771447927872792500055274729734270757212897061961830589971214142792769923411146997378300111873794883037918083272876262874169191587725691525328162142716475475015796024832023125110081168481040938600544911037974242856530180421138354958724697551824078053274829795485535115004573860231060784044363098044047556034954765270695078651699337235097810340257473620142508245856544246006040420556121622945928989563674533738932292960153493979843932015580753943271941849759552956152777836490339400622186517137411274294756333561377268845823224121096785445251160831101795252987563626881358411104646376294250408160890438950633916991418885156645077195685933366157353338612385854286936436519026557219805889186165670722462565476723694734697086683606985482137473579570812225451504839650414645665591761675273592558317486175735388823686107086042044240788404188328018774939687763680027540511219273355287372877274292844958954067749609819156336424813576470835774479488813107392577828997974554935845837799501702558359741011079474186775464604091868389969045476398591378039223639611692251776403176945476445029394422555155972580657289372654305899892136792746466610698788671607122291108475273861107085437350748768276883345053856708079000189224194745748065178555965773017457598160140227685701096108061630904550713847925666376252808315324319647191921507353850123826227153878783528337867443928793581628795443374545275341297828422810304164827757864223704866740595204789561183175033348561243686705530789858497154153886027179968580466144952354502986350288427004321379891413645785710610509787570405147748302360868188235112335831530429770148948177500850362813602477058470677891273030301045956842163569590549814914124104085355760714451534755737962316856010407590130397075929318125060724873603641779884057853944932689458324273451574902706418605599979761304884559714800765685100859794569468288633911893454693288838890996864187441790379768835382062878183775928218637172590923212636770024981494261113761584423631309217985250890705001159671247696989155212359506718799312142452048745858919431302516429061837809996240364860799108900893714708379058446781017464724735817161760776280339376122111395027031177309880338697698102478616254337188811877286016970398568537286857588693347515704379066574812447700996012538759164413755489570889376117098277574648777507764799163039096538257533490675594696865674546374913577522946811941441490087370435454099178326406410595006141480166655905283025431737536637586634057047162729865450010853655785718592345675677295678250923566139468768891316876502258553949932835575148357891970349953967958516015225211492666709534529992035396030481933143000810056516882340278294488963003187090637122763886413806986208115184119113722030246498825740637628823482429282686254877544679819668458177510631786630865793154042055485055206006862403343764792354086272342914040208015993196160601585327852570384917484837635020657495578886145958572874575001575107783370945952720631491899827392519225543066669124305929868408926992280779786986592914291423683395869093912730706944878373802843277942819566805213463027939020040025509605759728550211722320433507322786932118164285058778127309402685757813992902556407024556871438051814070666917698310545834570858494648623927566825960331668548501674088023538169086342874422093095215108631955067325816158554718028103908097546507661719928178955606839615827279621474276476338348020661411065480833104546648419088896050763051498579074276185822055872706478943724261292559520543323090364248760392793819342834933766959399211000317895903954435002133212103633879375763062878055261970670222393716729487579611412715438322478543167993228435919670766219052564456342147446128071171594983872095880128723302994966723927215940442068876537486222486860616940943130266050926693796494854113497497193906891683211544705982060697460158677075233944901879863829823690343783519489679286680289551861310544690566127124542445496149722896961134337681735706990509344859577706732233456178091929043687717645396082333146252019810557902758603189059095287304511092362129528403176952266049727521890127139395291989956517055640867468240877670412838017201386480200968083106549063252500058953238055712427282766222205928037717335392934216588290465023658675953736674112168284615884486472338646627530179782414136403807211484384551462427555762079324356320509802266296940511215558138477778128095429495095400095936398616961724934091960440069108307978552316940784047299479859239247723073164488232876846269994258359567006670925832756859054514857694259798128370811144202556308837723390609230351348710691459224294586498400345910863798446200295694478422021878931557574974455348171508495843734155950846746262429364277733696406310640943104864968500151901742259902153833965987982049890000940869890059625248776200816494218310583275851122621727906414087780583493873070766799371351438215684728259372630955847576858970568061149287570071923997776152792415801443287971128415716402149065138256127226011900878607676600651454305888808045006511268303061916635343750718412967400366893151982045458473723358153057526475669774775032245583133652171122295039860619572449347396703229716000953967724584637258145752589176811738981014016379914001625157990478112454045388401216850622927252017638409047369777870196830373012100074643528624226052929924855067542572365990169548899358938493057488215951937289894140754362115632011432017268339628662308740000332438731718163336348611086387642940525270389748612699352846259598613053759117627018274563322948807156975101586880189504705969801708974238156605499699365100343334850876925275785672066191830997846746818634512496877039372531084921016558680487597505693252087473242716477943770958510367594301458891864393147439521249539590454727517578467589476552760369244457857819513030967542786892424177985255741170868202170736518549741134878470371924470879346822977175652272287425691924426454742196404838034111291264844388927271496194708856016382401533131812867537186908166588958989018731571124985381186734234388240169581498894561871276245149519474945032297972583501110823603423026151561431446476948528270164357435106397042268471368867573633078923872005764687895066681978804768459732737677841854338668525294947580042497848951563019677656926306059117178525134344849219779454011484445246443589487500767874259590688072836113867352364903625148873664585491137261671595898283000214232935186447836299127682916344565059378348631108538567235508124125875825096435512802694750692903989886768470529669262933423492259406732866539755767447361371362631939120182770812835284977883060568488073170279036895710449845559721838009366146057031775250319438113485992758328062949493505435410747403481429761017692736979766661231963091773717838494991806241794023370882763028629646457920992113924848736352285709250164409372533941752457217562246043458482467198902544584566519065471372468259588825983772392399735159426792798138072184574786682756252919627177174323896206017660232153920437366158367869768991361325979466234152890683414148521971065906127592662097755355979288751932446535928916525957055915292927625138419343286499238021264467771813366897579527995624042326762169472410623771729019785526852887496005859295753181252473956305002420875624520613915304393610495860988061815798131616927434606001610455548612951377007585593585988084846141606707538760087075810064327818325765173591820133698817004202028841093614826844124476964367425386644444053404324584550456519305997893996172802411766297672048888116727394429195777499018870575599690676743717364823286992288426808454759622206483491689355231825121367497667104559883977677303339972868127018834900215550494192621258510233147123836122205504286683110962425394710329449081880789820510285162025491100572925014072580936077977967296858211068879351675352258993628137645493262780087648671345364501090970460117759000236480022991352254601002981921971837633635933800081445875859769199100109361924476405218681640431427952540899613864812769258412868324785159357321768776065906500862800476845286996990379257810882861671270579159089209149986869247855785882182711094867585048212082423210656027004543961400005472933810161770114076742694087168612908612825732867382578424802711299175495635959364272254505341568501957709516238957706748121863966780771475342559723197546860592254810677879386877212020234405765595439545028534492452899341224677031883025652066912131335066200006535388484976152337094621570716293945285177664188316452212080529378681576092056333855034743650363940919415255689717652086654920949853715626418033896112156285132818424381153911316577590089580553568867712441364111351065083545822620551595290082818885684386208925671454323305967603480277503144245672928803221963979929854769534997755540500404319579558558083499205848874939915763941666297953243501318491945959673046035213763547072637962537615841547430890359669802741402203255500042734108001325611945665365976472886411047059341483955971658271192640872314257114556793723947129598008102625905541642872903268495141718475257013425478281539671370808618166730888288429721369301601786533166673086863862139717102002480781336590371899393278575527863637703878129982426974019710112045288713982182057973384330264629681074136635671902131542045550891292572395766260604425306942830306790819369339329366643159314273120830071319973586189001052971386022949895383390574394012430889905494207652079089436353852603580421439937509999174294941072748915462830700847102041899746674247560339304060961804591054609185932658835966390471053665351894802754897175800207102511325745746713933460679372439721790517854594929838245568938410290194027955304866300559626363727779288355795249573761250397291910664369848092887525771447051067491972035942043645652034478254906037680333596646792458882474729278061922944375022373641707120774466675664533802150255708614739754964833399486003501732912032852926053421865587157401009023757563499516189961049239103020890221979652750398736499807179767815394444866089854447837488751147984061091653189952908666041937998193469855450605417344126320071582726467297823293830762522572080952133101650939898986828290428050250647064663102466304875096081949194532336905152435035554171443335302219816346285553231635781104709240193485008436592516422201178710728993130838965169280295956244922562490277389087924239796354003797476882998831482015559828912254424050728255589140341894934705482231689509882215819187287068548709544609648178131395129101204718934869722914127275845847652535704698275647599851257692125535344048105686528827035609393637750019912411537819468183654112317484300360447831213393532221977443876312035250558262097090022439844820606462978975294584743367963941801057405292855238026315821769505008153063019997229749989522511809267718470411852645934156495589908272032257999735840229499753398823809273503912244220627381055834841028757286001348347695283853802165761463836783287428588305070484432995792576519784145019050692557206289863083977081992108385179967835223487351215364296229365795088695185399771001832819465234100469759544897696223921661473496359057336833294712283240806903507191792446944922931743486000560030029446881560810529801278217348441343864251713756763442511413707886629775606273067445225039363508992527979740447761902770290151329713550790969273012805166019783409272233229720550750925488384805592566198440958366985447402322807083265367432907976022684091541639948860138923069877483387037847334444676541673492050351051903730143869760959066227024595066687500965061450013180014857334355209602437028740853356164225412533341810394036354768353546252351342520437603988299731785115341286030873261793558076227956647400384996474254194381054000922430642395008802643381677795375514284125873424840753368603554641612887533051080269921593092620279763644306206639006494342688818430545419317000445665508621641237438208565649506122900090029134481607643854396294801923723263519884282501257018013354061201884981862274086673866953717644347145481519408684995249379864864683347767303239971863850489660168980345825496438930005329113558235138801816358474459441709609282640025437682815624538407309421256948976421662785466873483796533726307129447680895611863719936600426044883321137880542370565738966107335594746178300182324712695176916048341767702792731838764656386110970581977183245724769344493627316599669575265010839199583775804569006640937702050454265824149355558630116919402096970802203440834486674378773510535860536951608289518795204963582959385440988224075033104893264962844471717433401250843742324477789384897854437058134892843653897176609350459900968145144022339013959207237995702072321917021570686332946831654552658513843440381365050018657030997106456900499897939398367569882400977828418939376216305107511776247915227725800594791783079260941350249188981838434852763331994129973819413467267419014230254068963328991689166861670153026650445866757583785411496915580342959319226592791784878203428448385860238988546077204718415392194181683711795019487562699435211583964746052166693965652551212193102899558736525859550972041801053035238744812729633956848106082123166498507473805218374990727198307301254500790091632465131663528209647797140599844475780763292511959983246897007090338964036970668378539271203279933527704834352272724607944312188157220417712784884054861002249026283673633520204308272674332775828634163011693471707981335833128747610597687119314745817774402078846785323286449949982681917779948908814976407664579507866879555647057805951834857789931413156714030842832511868926719970886465760758698628867075295753271556001294927634920080594606296931425091519875300166709396893312065871283855863180189962720596811207791079797621299514361660404947057221739332896943167956266257840266205223088488952286022515380183697205365218335447122511805476975504083409317531654778581042642572841496867801103823122326463149416661896878237074568054436977302287006731539360429759424956888945006652727351525792164337819468532908027993473130900379216595268894050341290718217100680351110943626652540737156518605918427085237761028791287556637268141509820447816015543075039667038567446544853829900690768158505813014109035211620875617470019576445780683621233551663683496161702333728759193347324508701670023912415772284669386335217943133620370937560220163786574992251523948183121890323213344286665816227637124630992575578285659768157760177102177804227485189373856193483559420700021473178734347086340669295917258129340330537227085118583400599555611735696509985232451824764188640945071229366871942221575878856044765977306534145270993222438694836891551165196215352807832696961666751108385448813738317965265746933542673698038669363071961913770999585554759755187628127865609415062171713334135923203738276305926594352372683082372845818400539952088869081583472120980053349822245805210405257535644335726426509301615685283207134630101967265383575433384793523027838993836448844345736744796392437144927194797271934822852281028966937450392592718842778923811444118334467976382439330854357075240514368292482388259459736627855064296088905685843315749960825858266250822552714514166896220916078024963854163578493199747822724517387294447393639255586824850591512559342824037857679581325928220573010586585685534668253732217932017808107347083410723261279756043405384785654377282541611082302961025286503869251572347839341832520604574586501544914966779200875849570651865742563936836084217051844684883675746519746741399820797502796377850828810493756261511854234391976949639764404778353396122858460208156027893578000418230998815197626643362999167141930652798357210568417475576183551941170826203502149517674710296376136226272450189648189292120222227872343484455524480400635096825692238820407007617863801469356454935235089888252812023645087113877672433578176211337442190514964594814766040439276152168553854750716369823706096674023611535109681416169287732606364973806056967020334494789290275843634196364174794278717980545640158706954068827138150833927202192698913852819343892878014060522892318300547408407600975610266341763979928109743543409771144043278100218151432567606496042369603164864356599087050554278449668912149942485371950458317975596553971011831422343032115864302437554700555622409435419633813101103088733227999875632497864808242184091110972367289108095503660749502662690582548922606666518144934174251890467518639171393996548482442779432425070233737524297611026098347218963190138322972914813878283892808678925687695808586919333765259936934205190970469098987450589954828683621963593768170330607476247285698372161859025073896512641563807164427028504078558650831326158984995570380712357988923918191918982477100889472033990011998876305737453793281361790272880364421006194138106890649459912899789434961454970146896905672969574196070873304553243611139686776888615973013800823161369296973064527283172191907167579588879114311032314019771642009405539245630804682353253275938033388008536879149504578188624536586446695890796653552608429327924889655635279045350235903605906930947478152090975894918690506689420086518102794419110341983279457953277526885233335633245741306776029969434337886627000737680156272454760228571925916071631516253689720304008628008882453494173041229528420527600812347184965214555368162229848164521230230021626696450369045189151993036787473165977462039858113289437918374651237409983165883117152361344465266772547810880817477015866329905791795035407931981945543743181922158885280718339126580678773116062083198863119470774180014559107672018958806834917589648806026841889380034903042962289427923596123500841474766165575693083435224022935108114740383698343353674689033999721386462722066096467820567566731754077944147941574307346593560029091477878473478767392879464861414534158195724109127105725356264026529232272603939908862451129106572287929371797358620753213752061741127011707498395212472347371102795822899523093003489595322457393072612455088584956908973553755804300784682836091798919663851741232426996877695509700387661184747619834010725861263685192644341340368729466896955134545534002564639288819415058582304816992915508808778390175489239015363776810696493246688340694973768333768924267914573954585798888991295140216132394453423017546631828991312290842058589742427407640289360246974886212428664816251978934732266442537275156790337798126109805669297025878510278107583706318488383746832811877462569521574663423724952151963645744378647404722116065703947465194050273986209080334584887938933161755188613070620868967157835308040563925127395609392095558963598201199213462534002312813206315041058631244252209075017125255653628089674972066682758707292455039164811274874968932066023803179119462015281548681933708396681729788854732625953510982225261417010143478046017220317987466486046248573171063777554117741653875847514124652010604649320415638846084819155410185246955893598097616277224939939707809846418646203495080293092048285741720290926068579754403936300659077526175935716861088975879448870111160886196107546392341318929266255543812510456864712054006780098315474666364186414967844621122493048648654720495993996624023577823317065268685512626859173380825115526304959123179522377107223447607423431686079465164415853207489318262451534347952512296696841048671893443949513703093501365865427037441078982643823739082924034422633248841427437334834743289695800841414588702467359758314562408243489729136299407032133702623777800270842860646590010639105871409059943728299131258431143152111874760553354762385011800230849238072157023602402988690847438462045960475505910147702189160175631993277300050530732647614683483796248201190987356141262312370187222590874029908314985297754818960718164799873968962068733621621423439830274275500881827984657588948908081760454096565224582680439331953279117927479929608664894038207703889248202155080472573276477265864332716612694337950592031972667812255207387239570329392271844710583860877452940277107784314135663768794405906247662591612073950740807006295895783135079093299134806780813982410323042877230307736830631273967012806388638529239212825747792246323013139677003170524047603872112495499707407100727998868569845709970484323322146688113339264304618776549153544940589012225599579126607144644553946731796585334653903209080020790579400735656827823681988597007563170403643001901211551730791221514468548323946809289527875999122682343120122284916781595870499637669301088368977020521564736665019412112075595694657071840727135380200085603136319526352614538463312144027881814594291213061415543218509270847944148388197170957773374255569174049070394698801148267153414501230958808222740182923123683011277722583345153616069565321706482836829369140041322413484098992742737856090911976381699712500876486814966583309940941471609066013324429600667863966403075225750792091248191542128902718161390595865465921646343926315665891788490895002873920134850594202683008424894574859862278303220902934325865186990817002444465600016696243962387623647282329476598996184029247926915742809252576107739789557391320739823814265903014819205393069155394989396553081591864243257672679814109387630853029057214596657320457108523909655749903079858836701215684674126973493582443739286500407089851002509316108822088920648263004688850476536672942730465243830077159251984688187723043774577188618709698197132226079350682558353246742819196945928383475954521484138170579100345162085771842503116383968285435155029811640038454805738353896583296018840127974874856020106757126757246487457376882982403129112737124328768559416126047191446549785607072830417370450489251832427024857115996578274511479953473620891501462192964995967921284014448221942803043585932141602030053125418484935952836661587754603174697766664187479232543374365589549175859830333967218579847699525529519125318334483294410715195266968266592869811469421720286037403543587546550074676434040750000862229512685027264655733770304195907217839199495162563179185060462319174188033327250640277163852648311980118795819985172582588806809848386444028458313988512129321562243651659707286725033719972501525011952236617894623813533275491902868588466119943404499064032505640752844137091064095168453371417683743789222303252004911599262598052872653970301054364100609993737293270322973142888046516590615836859938885807236836093600220844937129145894799439513728912365552142976864994235986365991512735837401351618882068548297142659298018715059678923328386262597431501274593227986561566893070994442514505358694961998442297127732662290497137215947559136692983501088911773264023401152405214633038028423187707156679681602810989309740126725701543021605325710715997276663718417686967417934029362120978441825085466550969209405141068948098922128410639115332504371212289659809042009260458242969565797572478741814393505532946054175408565058325828824000257695791412046974000486415980879917928097638223879728589168113902799672950264878866195806353151047898765480027849408973490664310411357283407901449862712038336289051693581458597134601941248863781706523895293559605157482376893779899065975011948396817346371108622099866445579889316560566132304424538265719161902820317318754199837826847950784334285287397835785810632523347972943328725679546830338831235094325835616652387879589015316091047800919164668505144792030993189368219373131784345139913505293365411323156039979296740613533614083371729381089321362564777658894147608180364671460332939876388303550980138783043791610913570443496787814273170323186879399484336142042700104367087503473059319976340665380363031750999118379197849966310538375461460920506558923109888878216183805765616770167391911620791031337892369967530097758233605186162993968650993030097119482322121895036949536731959560072752292731237294783664472620632893836756334791146826474300294719595973463525520071929992527066860768482652684938622532509187628040676389934543464299218186714528855958211645898132070677822453182108417838509242343232681149587702227780721417308685340847640405971436052184870907616790437728038220313183015226923182921980114860688021979176750780599199255092067263454059955209515261698135574539712804985135709471142007486980258396589677861077915905077344922354060551343776992333830258722682987620152840765808390419853368205759803682523236098454679087359409569065353025866085062203172182104590352950368047221112398186216925930197873288494074862712863279649773677533641997655721975443573979035083559648057259015782943337479591740011594335437320571933166989223578991022254732234007520746062515147334127453219861354684378993354733362710790650568874273006739502391941596785015754635106678625782395323655967765285976226907099881957930760250961746916634727922859429897693092529358319714250796968202950231507012515310075512413424097063689738188452769768316236862536829052936152222234481380365191710032975500688221576517994991489424276398546227812790651379866773830969691452853191490195855942436032816479502693592330849312910260639817427652145033566053929924323449661622007133983694986848889985012184196196512971476932235692682495212772707998235942851969576912194959044684195517174970211047309395089550818308436368332442011292120162455704873734935945308617873834830257100245081171949894680938851309357590665891573523230355985752557249115029756566974703890165740475896658532813240924265414117755410111694205433402917261948455944662991034044317209126381453684607597788159178579858401675925384075786353751294304443371159918877041709590432795263431687585170709718581548869419317407707913541225663182010429677850285456762835482776844189895029831781862049254250097781866510298346468094196158001022105184190215085513960608019931622697964879186670000184592573837647793270288988036537877858858737588755404187416155057514166641130148838393692619206143260765103961019835528678178233923336441180657238420907550690380758906675082051193198918817444716692407413242383879426619532313702060087317432003748966253699927122509055392003332102625667588708664795012306394356724752974541713878350815828465778701739076634607348002570527098646609669337288261683363070999940161687759867950674247939844489813433745886011452239419031543754063227680406562589241542974249479109868929653196019384738773835687443321020465835833019240429969639503251663499455746976768792689879054078707133447778791372434691644963777339377386240033735223560807866747285725875424356131954463963162951240669578114793847383189562257097258114244175268067470895241658140404734889200739464028940967134935553174671461775647074335892021112129796602365140800752736516683059855424757741734941890424369864325870521407533749977053779713603677397249530446940440740776244215132885578192247931428961830626273408305953194297162761390492395680020077579820392540924363027655361897717919132785269291476496850378625114511683977248142168474196509883200849071323125383626261601277459778872394148748270792745687273712255290573557964931109376184248305190683906254346289336581137458638918245528078669199822141079803202686916444265587948915762292093726111264019837068987132755700039939509433275186190278403434456651766408251932744150796210594897252722499422356369983266549834334169026369201282748027544427610740634580593256624985094831902412258727560191765762425025868156751390463496019520290920261316660140110695223819841719909985471405156625977161365617283551555446754542645922303602660142962245724235246859340304673703432556972778040242111290570016540322194787260983122159389665771676502693118592419379165252552351435732818769501574864027701717434506798681100384969365681767729492753027718574183002152480208620664674132535522380942642926695766327135733592144669517794537943432654168138404343408842317666658315153950232284754779435141315293141443443715349458963710546126662857640586110501699297805055796405405182900736427848892665281955331002134502199781556457373327164946825866914060267770835058871737625667405726661500136646094252619494215759584202984893084077275423053938338525908653437379072175917143384561368635524702572709049863974020356998563638824800530600964029066566536756073336453191299936299937197990529128723762569809483901287764964000987326540289478901100997856742901207695712652784266313600598787257661923829015597291768150345102763439114278349750894713184473228411782680317530907804919460773161415884320019490359423931609167774920516183105900158114809302653986930065447283341535471135670234284980400529747013566995608298534316307890281006429065872797033032359161339242820007288024017164606149440792685458611036508552904388300327080094121184772405553910211420314617840350404861610455110637932495926184371930465392854988327315681760675603870715538071551078851103966794462879863867335644427860783591544973333009754524751874286877546905286734442781133070650017456646750513526013847328339233249615320366091937605940256082190593019883626262990806638522823696193825210143098171485243058883542562633056951048930830021295916153641863473419800969231560652638953067801495753063028990801630253194943408300516615448658632232807046173712554997257519452893993294370285934959195424197991378717307024570502367218679162034868302632409760612674952844061117640348744152941981892193610203524617666384879603684947748878235639110562479238268540389110916095754091689920381408033938158170691858997813068125905077439214195949650117165444271099868263588273396863706465121199085946877347599206498451672448883554243964606241603819072338893554401294149328465948879138761347512164234137254006928168318136736491215430146886133861947678633769110016353462849003963144117626349154957332441181989450095647232480297102290906496178105957260424159139111512397594712662887365572976036465203892091576971012465357827810141823755714591843788782860151075837042970741558932229569075627451322435610473576969169264940619539310981235156748492260774337286168503845242341603457365794121718655727960101328030735273213642763828838935665031795336812463232498096116705495210764421882241329331704437821431506647062365960165246367200720835931702925538519921786901576619376689260587435067435890912213387041530473083889465358529019361651826699229950954050534840598419261668017845326905932334602239571438410099251185104176946578445760305305834296690996322029015941124759941918604852634957311648069402293098342781615909266544488089682528627085615917196750658483535847831861075280815533175919795972629670652862783186032254041924595852163086762684347796494585660208224709089326319931056182927665327106687387365568434720296052550633679434937731796849003990799301109638634852307902603585624194212571762218766794125626793024319446377511823608083523753630241937974731800509163299109297854505042217332169906417049464757525775801522749370350844588606454084940736236882314667653370557685633921250744432193129301666197676327818870989306365764825681240833217213480472718369186157263417107551129443149643048390877553569224519829324309503049113250790916746575586620003778417286387934050553745785133757681649085115428428804746770588047518908863850469565620217713024679024207158658474739508188570676261385832674327812120960628667399726660364119904675523897288836013406909318189714639022322835976196897988901763550363562962462839725838441907361587247641670712891557290267813988410659653607906833352010769400461427334024522699402839285781762289438181014714398075606928156164670785258270646231193869570068826810216990717014204409623585484888669364667205357305545715710163797901708787369445843520393357811039072566951407230388611938153365946506180273251313804938304287455652365384175753927300179849178532275830873470133914050302394931310205849005948366580166978611721172692389074893722687874732430641946884961975848459033949947358471992380013140166520530689657622203783918745024153560550312194058968377821514140171847918566425172163049789002197218726532117477523534647554556531489502281803137799660403876098367329027005166841855120639566204364712134113099880195172961018674790440699834217603755834380716516498853637472169467067493886254937842528848260704271928544906917179883719677739590414521742819092063408119013961206145740092314017655032545806725520754478670214554334585054348299138414548895838813320785668947087369696512993587322666313703320147773386369861434307744635651460692478581730538795440829878685192769909738060947659939032167914951618870042065039991819279482038128828480104276308806279391690754883629393115071905434186989651439078153410305315183266025102474154414730072027569610587333454590933538607276038318368476739061777421201780364463555390672177091194266980498490317461442587157296402654148134789413085633020478789223539974233570853494585244120008420815353425300686420473822038733337164661835567539335017477113282544141322906424874724561715336851661416128976298151212340390144188354443742012507391762343303301128727348538420585615909197317169994641113982788336528051818601817253884676236902892699292991527005715214057575928616092210874474638557637355820190584272178172521179440897174766742330905603507567479298350621225260136854452481895592669763570219709494124936571850363295091620307332077500094208563781470899970590167800341232409397834577873656038389739081033154246950363045037799665476882369978809946814410644676086839804934059750558530596911955794323107957810545055904099260623858628057934503654013705171571464947248584935858548675414165737213842080462177308745666159894306681176737464679383289156898506659918218377725922537127804789537962659803160662074531314208180874661799971044780021386853496577527001339065320838799994685116821034133214738841919944113637341637391009871469999712348956660804458645942121632447293236965477747624208884332756625080535288944893049603572596670858370574909929370566454336384346246953148563092145853866619998797983321010581957017592748924962087813350062711303497246369017372113797466920155114276755720763625835901683601926754150530074570094033339928068291010859539507125184710587999869355579096967234277198306283707143849842202996157659018122237471771043526001866733972281440381538435159356377477917706090768009425421059903788998400963479159639227711469174184878885442341022518298228795553674734539170479048487398934361865097574722696548374605870445497395947527679597124774668468170685354599971619065888081256659488502115853287325800796184317816336614155482026060396926181720433109523086032883530730347008237215513778552148047939874535839935849878583644706328605001124384657847661766484706051818794620677259568749227341806553460599084783135830130477305154053371092153601646981213223984365904065635774622582900644331835101864694975221522830634923698455632152826202951804986134357533820926887534569754257932630597587582296543014026629067945017292326790034525016596439731356725590399439752521004138254056161283411772012821457578588620249609734137484929239866159607892153936668231733589230104738517227707868015176797973587375108764877895334809124500990739513849866990185585365539978240002751653984386422173146432865986393811684072906382578493017139029068662075171646621320832951895744774229167160046793958307209797227903350316871379793359766120511787915071739705108560082571114057068508338251029631146230369700068138052098248982052964733127153219703688355125934805418429502510630448054375228543664941329795944507394903181007040793872147655586988423479061000070576364035309998338135311566854847130082573670303289136757278735001459207100322631896665522022075822001817702190938025159925608465893604965960325141525833436861369193593637252832667249897067804293178967354045604577599437646249653978457674479775575352474701353797895237341782421745704055346698957582087860622429477418632316492729164885687532373731202410242798688151833288372413306667949586489935255539902935222874700346460104338264331424783691358565367182454880501418960596617098800173038035592551716774547730014700972044875296433363026248424271335030035471249840737091509580647205261759626738565885743643789207250610665279773465619937827795892634295915837794457518766804978347180053724879215753002536488553678493531020866610449451119924436723519689993474942541113441177791642602373757774919535970795948198342962075385065016196255129223861237165258841880551705485196448603273395515792366663290073805690341979866226764215539209382042529410012518168080332464082900811299625823019297241479477127711059989570222223093175874384717161444266133609698451549729985056950871840850735224471747239094605642584308325129060011624636251036908838499807723516371199440601852245903751978827394594886096052160850552604714831614844464399688792848790434042261681896117159215877058007914882615906000607274459549225493968392467709465374691630501922811062175145015283780185927497538695108421108414641545546263791158347193820487206065590311874799061419990405744472686554912719091844352554075216527792816857339605047726050476205860070235823215601016803730429245648928376902733133670287369814029547632799446261971998075844547941014253863035252380460015822430982959461160554758166265920985211156652831759968212573690492237490237366497331558301934985311843217241480114426628674860944382623295606701435202054121386742532298346766001916017749737337022933219111982731214161396901835151609412178833838719719852598818135760499776885983134291490051845347673844239031105112467319591520544088350259177340752817911041682597791694867305798973191423759997782191404240061417059970384528730633385880523014038827478956818232056555096360830152469832342216242885479566486550945817881498077177267204731850558389328553052939823355333114225017423904218910488117281331535961951240337431839678462537407415268810791235090243673915792504624802554606050105479396477139654686106995033107066708650768399129870686859955112909927905740423462821926518222471415442070463167984487963512339653564174992028438949139025179446445531927047148699864894244214804760396507896770481827518654249485422745534054146567431158774346843478341764997460854999545322712125257136538624731379652511214807175557428778994634411338362805216748151332708432315823929561092716372611722978728392215341929527923021122283447811217857407200827798026021846344225204676629755695467200151681442059886908169518482081910262642638095791656867467626611756504205245702100724553869550970187609124020087687456229291047509195095317135274549435128312307668042510430241898426691072045526468332526550424495796234929110210035581277597834606436644811361000284390706712956485588496175753966859865122180162244166490531741350252271802134003130851614569761992933092014797797743679550749990543088728772691585694761968295410302357228092204572536248093298942066800927609014543188607081760092653038828069356342603186172557788613517008507940500708802814585286041595222352239048912830295192726493781026628057120157597019758825199115305556911199817475062252013329537056620654151890851460542773946633455369748804638826868883191254576498697318501592940974950687481985655253063742540264527334856539262872817896499260482160629759129452426511282531876039933614900196074077621466664355615950609024705146663639270863729490270760677699131045466168978224331042550460302853250440389295248990851948586121010610605237181650692810583307177748861375651595017141856993941776186168530869919666066136180868577811915670805491661471288003733589356805516772827914770617392551508779754765812701549523179240668594979786683185095106977540843816354413132757487237383947458494202099380264056304711415452139323423117646455806954299975612543957323803815516922169112908770778307456661131113192936168485880257853866821035779395786884900969756796398549500045620321581445327537547665886272935120965136861491458305334317959676995934551260659967485272559788499349468689059971948638429752078102518614170842406486681294873089039160407504059714665632296523663624964779426424008471987169105161461779293149854348753876965771422298913497415557135151792463928658036865039398543816047750664048431783899878669828909856966703346056198903326245576113784975230365584452277000905026765669189549299240805004871290687783203686753158532769898359895311891776642596000855955688871882491135088831671064178714257281471866709832762558953322520586965119951508257340900035788883880475780051723144055568134086225321880632834841636254999663890640515733992729761987316414836851993681976824074893942420796758237459907853223024483425437666337444063142220919106545427890954416240935462135669009913079653529327473261046964651859854952441620508019373747425112467472743204678922943226487516941362387959278319651372821268431487800031141586306535388219986361861753063304854570030328932031816556830829837201718208081252591368775318385883411405732377502474220168501967272016554631493070274062196036774252678785308986265886060608662695849674783673810397799761517673822849035060541784511371871948242858803959630495793873062071089410116444706612818698029080982387126855104614622472964322227129511779288397072540321214851460344637963931607246658748938712022672281971093589875046503875378099916975408453152251400955168569417463572615550345691439288918783648812895019336931929546073584714257371843143177623042682928698207279688537695882012518690910003950769057432834773076263731269706949800285741009571044763306336302001750863251044544005203280763652627647707676124568581151687347523004913371258085784395161379914858728776158349102903144959290717938478037443864907825837522486793843407618522588293514736855979991651934716186035230248070917184475141255367724856619547418857027514679523106205113596440590523357676968124427754197969881165299503189994959776490195654263497212140036064794335185631941906424572172335733647140404056592226198141198738321178769703647386210607145497960159313122223482838757567634924421827591841880325758630905925384294050644868939489949463426205661490158817250037225571843395354576400090559173854249637392059320285927741362822814494053750685942596661822968881383359726879877353771293159201919559427912189902680318161240801198708240913421994922649715781491275525709811639826805726682610543830497017115473309171417284466928827529674478155744453009197430036336364633961968000324012672232931351195567622895830256453839866364302381061091880918734503909745400190864254585862714808120378192402939301953406267834107340097594272613857944358855681572045881582708603058474715475188519417557023794173228024126663215665357873643605610684031487175832137234430082728196502889603581740079585326889941464859904063973086909999421891645630327492663844711534852243174491799532935081461840719559573254592631005826801073846926047510728588754613627854370294213627552184403322987506514845746221473091672003845107335563929354302916950591993274105514720669007564566392407368616176024780981323814273862206011270097370238908222470455004985479200349600562130188099491856779269721399199136817480818666467085278619837778001557610335414268115064363761982379932258558073385464907898831356394168616253669307765288371868180374770325026144539030752153974791781150014826898305784773693861003311164714957418068064471477131508132474590458420724943423150232252006359172299024946278731465256958324520720875804937610184335734431270738605487410067324881897347688562050948527358953059707593996826379429046791635457800773573196775443530454389615497556338752903616839468943173072498846171868742079201026031298124727366201985553768144156473322774989518007352136503651279917621112564867356309867498145375065329791029912886023843906701556761481538292911074779507692015895479731071801487451460741508708445189088956288349219568635819441106584854011287564659602597867287579669695918771265335834630157654248024825895550815755135462113647422726629380462225060027238349699047464468742001319238548958286026590669884322362461087360168287868678615078704856291299180755120743518724737742563650633847501274875821692492704110677921557341269297383901787209155263416328815886501327285333356059325672120464280897556202783188454089522464488202455324373525481656301185993764606144627070424567187908027009337631997697589011496806507291545235025786808913239741042155042602653198347039864059951493169617891003184041085342691412662787428060164185624977171591282622775530770424828811353983526545382185968684640165000386318533542018137903213226105601522078943435110767630037776174126692812882431407246215950730798190541480787017594261388238080944833105355835533306339366005903930269467613959305582206157612588570461871584282326828291900575953241069713948402643351971160607654051194719773315407111812501174198712992949596864672302265455489531945334887011530840404333258998926368330386890784458428425696336137606959134415410880666846081193030520951716529004452436159110695156716938668944894598832817870023970553240551975820060164634516765343269777890817047057301830531087010075177963954503513232608623752027489854147012575339906108088127836792984247610998779905291850257142661278716046203045394703909596338561462797820722535137280012691798330758586328067010276479881671479190919151944152847998425392690991980971472884417175419989563548006281261549696890105871402811020811472199014087268036877782385644372298271495212060327372476683733101119069425346478987421320574319010500483559208464051264790910115772625230847064402195915484782838587711485884947847840503376901071048955990125770622838764256610231160184718251797427095025666039533874428862295640008557663410864639083261021598988462863237483423734825792763247280501388317955766384899941464295251193366094633851514153865013015706132529847549919578236915249659750380812001255092031771807682719344303308901881953265835227820701487021851102697134462838298819755816846243355916708702191613807484624762896319855693480856792479103729117883834114317660096393095098998444293495381014353188916278146202868436117211362744754033996759164358301267317832804932208511837800133729661259480346265942902160752179163405378714736879057146073333411448737378492875845747328464784496849567576517526443450897488354253635275082677291390444697503671259848073824262856347535785461077936540946009306526219546658833688007751587665005392131868447417625266083848670005649595716803167587105080843442367385892265343165566136806514703514417338854617681652633125071204899012106665655643598669416684658689133665889236202768788532645326808279352746246980950001327829997350476257092042469819445415088782818114333372885819212927494430111755722495575082861562003076369176918377006058426075960591916760829050670877283198489651955470319026999140393137927960507096775533855694991053372767079667838302652232585129119983212060635656427188515365936724580376199817941418207527369594866492551322428861211760198971709231621323319279271219911347462511233458261301820533607007166427941879871087447036708931108640588967811105446173097524032586579961816299259430180820342766679321983548054407267456617393691158401293185360441453918718194740738172096771773064639944136432597131034118401608138425027116374261881736560993652605588145677944970310174587996794464276330015811577885043050289908844167096676700201591152818448408915363318895953182918385961858990727184322501315557618688494039279353511433038689628855647055943061476417858772501121230512044960408545340584864760628626381457340309636547498225411801241439228045117114612105847264448146379173045000745966510048090777740703507150438243425554318029450742697264227806426215283098138395824013895108854358957558058138412299451960726012236207033331892901557664577703359238985324301456062817288115929455455423675351395681677158877936492049455217398193282062808675123929636910439343872397609186997993698534404677880973446768617306204566704576691503309048481436168338165341306992674006183590678593388778829965421516013468612573232050410027456349349979785695136653080783857075068724069178051524690674297864226238421922810853096374273472498753997655394883343831309608988444696265683406821607420992988526825635836122639659490138448579876323424722784690428107403357408760550630345305455757164082583898704271466300530748051338284474423268239652314793512671085061581632821672195364223738851451160471502454455311119852678212591316932229116955540536950767351896349388363628315312797573234279215841926215987909752963575344197489155867164890855812292305850264576784991391395728845588775473458328375805500676311902642969847506790707361324594330875016818371633510470384907805683810342975712606137713308015557916935199308612440832905933334017339345124707570852688940073040590742970306300488526975453992130633769265258185888528266873856478817928518250243967592028095456493120159015442826835949247818385159603007038968210996363691803078300059549378689053370269338566000268178644603720448381255629679031780823534477567174991188459953077573986059125388076938232384359412869738239851028842551647926563493372385459696530336419424323693868684140688526919912962783980038981049635727317087476691703607633588741182852965894730550799559680952586170375960502829709849069163046714736994140934872039179855344138779116633801274525986839811380285976299962416752928864071653231686449975908181770381409263233676518412883111346017812229206588812900885482782425606812193256861766912988459134194077960394637141058197039532147124247842356143795705792488317626086138496929193203288789838620106254878946655069061563725603830629753238249387932334642140128767731907681028972727593610562101912151816094883045332523547946338009561118066477312569562295456995756300895185180944142122238224141118257642685989770565083692557831518668683463588989036769587799390138998663735761911567132417656249442121453271189608129633292153383874961877817480664093898216074392858628172241690652053733157640562758914407685742583485174687606228484342329310743582649881938602951278537276404825581014027393127548831752483833973909924926284008247778079167770215413812554360608853585860902374140563921607065628043179485018518366821766072615032945594942775155423060233783415237494353038703119218959797297072843721952874363949027542555371532075661282404816872813614571345332424274011556010639643029905868225857670422292092940881031683752880885476746777550414721775445325977258033476314675155997787665139086651766751002594127854018955024120952832234426338342067683708552645804916203492891621923136621019723551282689526854103021636725016175777986951116577522271911904711201971526526202705950464485378318970591899573282472684019133876280169349988203135254614369527280329816307838085276112435370490117281412216567861379973575437847828310040631432983657583219888334697485674959742087019248511550843813625793242783123734846414978167182040468895636711965721822418503829933074211078914846048712172178906594216179130018282764513388556858480506868835264002189373484065526387382884310739615570193834997397468468908990664402199137728696088913233961396449628245510235361495911854308197474992750247173507114606108983498517197973886531473574126285449362907886367470811099876159535669568615992569432496933664496143530231553657904657560947830798258873414763458965872454282967583641813354833257869673268253448032332082808781037677653095988905931897995373875117138365754083720642542009672390904274806257798225267217362613181747191614199639578657935392330118489761226178301860627268938166264777779034658391001085891670476583156460331592576606317875879917509103485675794490142203336204696245879070708905400516010144208829451692699500553091209586994641935992343787962035122848264441242474249971756736780451096465145578892045090696481885747418050063285814756347510273254292530786968754310795105714537633361223501155799790856017064500309441020757027178389924567171368589630080067635608585600284547737652134586669881583751191688610413664046469920938132290911533501928447185850540445486543902984740629791745932894389085662533751412636944036984584558945192268691983260250646031429716526582713423120873252780042136435131397528024570621355708976712506415675707436131205741112716873345452410746128102403483147771048690251212777782552010388287303584112081272534642671977260587199942908913259353584631803616174494751970962149127418027520262494120446401435008080184241229876971632382288078233726544840191128531019493470082150131645462416366167467121549948406092148286294693186285596136756945163195444451783823693118735445623808439927866070853031187077597922850440839604561312827946156836574235307407153461153130266477236219455251434018428055219953927025516477490694047086160500176448861672093222868896034887353326646662234106039949233387446389802903567413349806015990956718697090298423547476958212243983088639649419844023369902564663976349031434160639560695230356839157902477139185841606260783017442746677633239821700928507408173372149758975041783671484123564225741634075548433030905319822969179889675114360500769615533807820113350125808702329642756058232271246664370415587217253259923614766043098976825944322647699188291044356364601761206098495129614231328553555970691875300389754261184910400806659009088037117197589280523995005738112952952261064592245953427822591905559822487179569167665619738839323726199473949105679372254648304190946766400784468317722727568824717673478580787418190931080015581135184359601487482578889195536552327399252422819240657544077532927807371391539435087461305153013958481997503384704426830100676943161190207399817031383146473166763948030979900675824665381847403809333702878092987595336107448630314530602236826893817290024159994414905114792916781128757127295242752358799172613461948795022643341830688831496618939279868606619758575646736377305503145300218651467608548998290188024857855297633053256182395794609822280136953477091402744631067289626503745467780490138772458779023003222735870079770378287733805673744115600245817143927145131050444833948955909534287050902520314685503347431936845879259737903452599249257579687021279923166448097589871205232178204780281659052684098226151683982776380286920976862791999060121720684457548977277535434146481920497720019745014971558831007676670775671183829097194904988882354824846850676224347652783311401307195239565852054147086711351955157052344862847768167688429526982267583895338948542561486152013814736568136552384716462404237022756781668248689026518521912239118764187854551588971231159286165920694604409040597924194916414877041302953163399873587811483967789669559840269857432040548782724889405649446238416370095629940330551587042756626058634464622395287927409751736521486432211707207002418434982824477024018290384718467696539546824448497907537935126710445260710632047057292630129273857219736079792420069500568582903192222958616537553071998677696914401113793610897909509601575008388029544154302538653262984632089590675844387878290754772332771442763340112875615838537264133882406732107424610071078185316694405536729291224459649655888805911291210502746470766345320334430598076938656441816267665471346721287570236992582454243978867919763962811686810927640741386509729913443107414416680000558117304128526401800676768992924089294711138459407390909036803739157687795411507999117579573151288432258821380145742945519580283430907753942551992924776434487263000734489679380548359715699203346653974120314928050214666053836538215663903029301209631798475961164986898718788996436410643628081013120782975971367707839043566162481853726254112081846116261426958451091149024304125148733398701943780156969624260572745559077364451087156974434182714932234720594707955930723827786322866760401059841389680843663148785189771731951551532798894585029932991345276853648949406818814852620080641660096079521573054366164907052048734113362534090561584270271832588261675151296301506360325481896944930377073114054752941941767697698769793676678473676254660801655142986107024686594929011945616116975690898676021565676958820606790998193557467534855435469368609423514288046425640240571215363612949018849991719391447839542587354344003760742581038949196634250318965766846042320376028766974331380862547965455070256802341774901670309213197859737963674551447780897670082621684436177289494957218742797519235178021552810211571416203503741181270419034858967135282780210137383190419130920081661772604570841464221940905229665242228611284283303466891734963686404086302693692702041290279666030149713083654146721761028476343540551861806847112830466412631935891881805456409838228299379605776955526762649980617775356676294768697028657212238758492936734292913080937948625842173812980606750358896565278880784505999067180443859178046836883029755579153420416079367627181944208915857771408609558896673365682352092614413967541146331469006457836981957183710774355782405451498178989860986353602835281280039079351203194107920587807127232904130940739581880750683311306662974955031557298576121799785341888047634187842150001492599991937847156335173951383461811248921081673583560194734879965651428674288576393662083366315839892278835084475849834271366863788907995178910098997281253768592948887850766261069162371760077189175285077857121295601392729424282409742300474798915825129601365600376517730936794139822423257798603045735988030507278311303185684175708079059391348785009846283311510625432023035532803642160457271289272847048824306333027996090882249567487892958276625213794758246292386167103534116637942913775859919622462631247497584157977420106449101628040751136552162130933270910667934221282457278737702763788338691381801152079194757264411107361354031421203742633789711940775567999873166073179835925538692198137373663532045210444639760674954458470334034364796994313685892114015821018807499811743213181062237182604798464780869288307530672297001548990591481434543355514552083088774135131344264805272074839740488440059975123944111731152997165972757191113771353885231964810991240676429909643001009147418037119679173527273349346895587398030658187987434759462489124943416838534021898939021441466911847458464599354592376258805755088062212746937196505460300878406863235504908957359755905641074393430978587216732815750232188463195000484184825710092045303946432016652005147882936646236607023623663874756754704024381269098198740178176532316911765060316029839631822087232938230474187896036898778003687791339136972978816001817434748306653364346426272383537135021454724193283456572373356953385242159237549645506718274622906140395676606295323654861448615100999278527700426635613088264903462030925806257653510999838693568026511339284695733213382296816465462209890533858335675637951489422732652868055338524011256678340612154335705966038631377182600843470555313195366229689474223996716955658893648151669646244047203195315003812904513107912565726734777767160882570490470578396523532162241142611522184864814169350593907267143454108338211145637704589850576444405601325392228979746315592628200417413619420784311574803265060315042026939056234355191839357228030505459123663734800019313279138029453779212793366209382891401537122691174972062342798734742502696552576667197901071812198073329192346161232470286460285206986980212180311551193986575012878462917462789016772795149949718964696557842167633819909189814385475054886701390723476747961516587419661946683100119800696175528537318896521452154879971296454985034744532787997522969039150891832010117623078179501013536485031870229448146066875672416653669620391131126687728399634604233440872791138896515658001141984769253161316101568991699056270847533675322737134086194526858938524612554388840773496227994431975671089233624222208504461464030761077367280843184774965551510106580229675193227065882153075044285638684470204894113366963145830793714675449353647766420628668858059250160750185165373273333272891967687744578470375305999995533639788674162506539401965201483540013071790343792815301410829480216349312772321026745012924752580417945182651781140093444746843598080775377626264060194859683272979728744957012259785011780985391192544785023987030426479981965899333858900233943352576373044716716535895866954497162353702492493786632746002022812026385913090295866735732861927895161645634325898067505733834712803964823271441518508640401913799698070078485955505693186960018984053083621903860499445690992937418721643573731720713862718379008537911128112325230092508085457040933028000577165653824754081048339198005972960946878597878362301065035430596387279995006434321005818680834950275211065156786837001181721647553223928488767569326994024755034540405226960904713026999493732921393612593437428440149495969364006227804177029514120129929853930519200943199486389744378778794841338908430446997271529232749897579964698245589469516060546372923763811667769966381936359112862020253394750589897026605121095017051094131533418536470256233030583208738448442488807480315643138877040713918898024554229422500659346427503329040042951741103333101723645071333031204069181364980083419715279501250454417504089534655210778543381810987770959282914009953740803006602261750001184514610488883389395014224407354929205972898241156922241183017078368099385614796815827522686601568308200170625211981593401958462791416409778933283284774966876853141670500598831897874607422302019354458043201153658900964243948324151588465678842081155575230585406656451504542240153275396686187608836147458840602600117183360307646233829415247324198423162695203374645106798840711335663435801652581291582029313513307016442190930467683372973850081906589429818824894562750734280193670741843526754681558395389400329192231633277084509377943084764180423488695167520408014522583830350015435933748790734522079942659379469926570607453937953708013004591085271353072398366270705875360262763565795176336687259255047771668068226438456379735136588251253031372918947549373211800202671477567365312647984369557814895944333487289986376103615202859239881733175777889445065216499416378880344398016953259995993741060167709629605905914770167089544625397976921820858599405532400782328237760891475676000548355240246371186282250659224736719608304088329488127799410594033525106781999723451418674214524635765522962559428379431718052262212304699064922169304829083584319016019296509712589567646399153989869076323548289861957000067562608074601138147040800600278941276976523058820277796837845247692628079531996271062843933278204947553139013074261164605298769275149654699977215049453577787570154995269993362284417793365438229219399449241843532722150845968574980326071334510480169876795932888580099707000354028214637317708055143011957170959270455299305638704376395687504828241382986990457133329168796935702244943236321141761439657319591616932978484732505403323604356919854948820902374061010191708394660593325915589889114575157959212761864566744812449037467440838157948889859144343762940157654296376177789272511457219252047963295123132609110313618541849714587403806114678550596633907301656769565502899967813967043123401444127934977213995119638784543865119943744519466198775205490253483130774301527480501613685997227923170885334747762761508777240286235223132172681070349225346271395308423554185688224980786481627115916365079866870875639371431044979782669049028335779131737718332545638882611499316075360468464997881136069459586010041631627826585902759551453328912711008384057147716276172238979243897693684330685795897136982114311591565931799068685588723737442001886150473263541276585455457650174719700502185072681379420835159685456187904220907078249830156034857080107912445354623035833079856756533421544795737666850299316200321197249299919715212373509795483967561079996375882397968113717873826027132280201306432727071009216689660995088037618273021039632082667835452246502011476985412244680107428233301367760547305620196585031979865174014745860971820816160374275601260049747301789535659595123878944309841697401151960816608514399157791200427663708429411519752075177744861091132460565350401292416138231705000630126174501794659061375063220612352434409713884736307624213698662433041599203372829788170095988745961191970669796343756244265850052103593676562576061981574347361229545552862489901664971536819664950741766878090156448372990212873993481278091516611405999285259775519421372952888062083205176386254855313306868782033795831283544963055516916633747249844156564344115912473008234485450299783030298132161451336697897607660276797682715494940293518846497375855957074910362704826503486840994489063032526894231946487284306468703360519270917241062700725506101578124518793810979766743213951226635745168215689805136145770128483080715299024219211640097771513313357913947060399773374869174932247857237992009271958177517045511725821642164550089097813076622808167840069195516911481535085923316151230260746748366615996153743163625330426121285119604651119475956007003170147907096732289534039540221658683205264349662282544900141865542905347939901544781681742640959638239788182481116541554738082420919592782070539779710648283394742452418322824820614825641601727393278706701149176388662346493983243589032835354954319014681450642765286455923594920233273970603317189105325361021515392844600569549458936136649802290529412342894175925985188094671042940391689759746361996054446175615300892743054934659608152855684262944778975145954218134729033720929852062993423412692358091630249239049145269793970577388281963235891844951494521405785977306891176905311682589507611186647682765897729056028061127379205046819433751682505234910740998577160693242666080981373051893371996239748302323227038822150188751471415269172382388663293874944071884540151503943271519996712941495306982892637082853217671634758230890508174247800169951268260382255918292209490097097920448708914273939156773884705446457277677616881131766051331261522221647711210138615259015677286106364218383502704588928445804624413547852381835102077417606675993228170251764449461530974433417348895175794513503481639572702478209889993456528639908379055289056266043502944400312980432546876233952707980607955360301214383613793036494738967704845093071011962714511142453444621498716139553847488597844283664025665958960427383681278890744989472116117338757972788798649668537819663759346336815758805648498450069115829160485938688224988097235087329484208999106875081346845995981673119899632111154210279043508974966750322077462057166239394347511588959244830024847212382378768533930334706086498808730251447629203694562002464755042621645209671845902104118729737507226555668244975524975703158962083333158936100371292893912534941826121368267140131225628973288145239102684330912582115076099711908266635401574012389370375455661428876214341694026384051414561209555810779912239836452730508397985697907162035246940277746189752692588123946568809018413833496386770677856217869008523177025296617861352184010254945610795502569632570226778860691642656525707728440085153017446698397042209701884640940282174473091798032683158259891979849670946666091738918550639807409839103287342994106100056639633211918133331477694053355641584484070845109851608093552677941079238517229358801410173863155851468889034588275322559096075870743836854527103803063323922175998770819276090226964662224417360957737802255906749885145793253125221025222733312510682463820113478717601028200403544529351590308311981845219995838154654478205535169999458943310402107190160444421886555740834258226374981841099185683020355983885720687246592446665622550812780688868617596174407792842359583017390734006255551986876994825278495067578759938658613146727207754201287903747240219671950202853516388263600578203961568085993366219083943506736889019530306725161697752258792512699713542906189007511302498118091604997737960233855427346290244815695298979654823774163709527458359662647181409195665035589074383450003840698919280175573665723238899091014565845547693493551025789718700711865112915777570197261565413219297177141770269693843429908152209530374655071238704038981879733204906515546416898871737713607283239280650315251359820240872226987068140586746257879674181979434912797383003553788608362695557136036808465654715985974036639653886193731444028970048324252070947216330422220573235404059961764272227761085045086523402180839802142051101955563449664302029885872951776977395688086087324212734115266289090717590849058520010149015457453515391884798385368052159101098333112243019215735486104139120133561331965890633472360771693860491097003879073342648757852258556993911440922298581919173509978852672493346929501373014745982222533590441742569225662261541683246191708891694897212994209045154866370847755061089752414139824518920126351240879489241592305453959948964296156462471943307225411834976473505947595227263741170741266417884403012646500241842181543266650482795902441087522856370415612498933243804432259780161148115212795339748911004060569549436864258541890408797670734987774439795157763699541589511241377199100946893754126672564756496178261175270652518075134993450188054933640475373775751870993823540438581263556211100500497990225471085603028925359002719345920238316497709200504057868906518261739170961107323399310734284483061863704533703918149456645272453982511636037327980717627525642876061187514912776418176814506127332451834691082520360995509135183207587746100382082513402602168996982383122510210339404911163243038126057990486764032137217513206241237745730943490874341833051063860359560243711934990597687896546944593313803850313669571147630248199055053598227599178228956278910588985144064514614773891136639402075478699071768403081464350528524629164741141782456876282942327782624959631020878331705422801493400666123789062970716513443114108268897030216870132959332147091349245451937399705604047100169464327281315258848400670764804968676572810273264068728864710004894853375731298699435621044577001001569240809285264411818767581014533910910937533628440382237149675058942200828874855438863251952077121972775737220009315750919669182906912684081356979022724271548970651939655035404722154980210536262198580707772728780266726008061575150196592309344687041309505269948328568725678345591931894747948559096903549050903837993293452120907930758771732615425706651428520162580369839559763783290488393035694338941400133653897138751068967125319437501827384337580696293759589955094115842797251150478368669095042107255275586913027050094056029336352355482462207653687535569297766504268576301873528475602195506170341069314286648369225981075780894623876495076836065237253473878758906279898984365568729978271994919000805927295305102681976813397449091261899985718737055306390556368359924663529921874031176086161019125477939914494849998120948240134527520730415894184083745722490090296958319843593237527056673729422689018919056878479645757775794770201750340042983218124001472381028928966217028507029207716902056777295656797540723687315014707782477330423044821674588267783202064768514223792712594678274195710559560708193645686211733072308181530935777942745100885686621379386933747219136071060284979261615181488921951461810245093112700252210970182890047623046897699583632279741530988886226540090462020747150308719377363348614489684831427027222795540684839676896116124610112464551019073729558440791451193678240437698186590601132375634878569132878030978949891426852974512881662986540770888766179609444222976187244939562687120025489486659493129194430971010776752833937687679806615888368728739796642192770760554901943415610298604063257563580381625087318455486022889406237577123240863343640253322802136378628304644107033052405040015463505368178222618154770767809223386865898649864439483587191839034999121259644179855998435547616233584077853644570695327422498294112931599108011185474373535183014171090449423566499830726834394996425185545490039229848947691256031482179445105995314043730839263828919974255514049172732725901830978165638792448880153444336845244574527373257048141288619407071213106124511358573102846417656084065972015490011084246367673515811390637409788762909295418865734554330520433830410196249493518368068773757368453669159935906438356516598936145168817582219037624753012124960128728817010616037045189307314363957803561026017024991413806109626542967092542466297937151395850153350402122166070231068332561562357117789454049917107741342476143531021232262776087957752032410701609127344398520539940522989845577533131177562834654209370140087869866513300564466830081346534553672794506902465171760263763266018233884504312947502407972106515052261063933579768866502875841318840506452651165915145458213990503880277126977032792444815625075898004461948012066123710763964640638182919820112120690292915933420057761028445407861015873177220976526901106252007345255810093540310731069886728797703934304990201294699482695707986860643388581144640459468491812084423187896621350297701865090538478905614729761150875870138669225206060907248359168835014450089587007941495329290260442563028812484378001146528248504759350054298706419489573534322911421264778091610497179092109575921648210923064948042875406468888804227558800721595855219554989819664136471286683915490915826111385797986485344945561726626518441462415734542763937128617373822476648564554249991196464054136546048528168561794147577577273325228622680593753429303519762206892122270788019622975995283374373146857818319491635971152046552975064338745281683384484603662327684133228351726866487225864091455519391519532388798095968031725678903708397807062305004883244222828375822197090930867779391531101823963345508574898815097720673147266585619203014521063258965259281620508119150124159903190518914956179042642668882564527159048171721814514793694289717389004917484576160153657624532995781195280332531583035986213350894377092972570472919777205836198370243342724288440970582386092321238287731387941163763346558892242648092397594172179431250183622230255027906368414798473608841748167707658028436957480694304905877768437044252861734820206791971586537284000097552409566819391070210960507115975929003409041758584353386303820912965389018411161562415028972759875898788791073672089241547595232196815143318104542989838732674545625883666700338232579391175459379478353752960525849987104922544768946105082337997940475036302098791922619482924781416472743479974427396166920942559543447053996134378037977882811772450880565985749939575740054083391218147829017465892205366947161014049790321995115678329296128199425108863530072329072762380097512194075880089371121419167053792671891116043762516028092492145980410228932440952835651187563472378549423475767231792778354236950504001570305267166648539659907773690805592742403607052903591460479902940862849058442867346599659130356274535295746742329419957268713012750080093392914903997823999228640339221364718966470313442013855469280641122446809470565799820420541142163690043335156570046176780268892937017496473730773469724906994107856297782814092993053454677963899290050732150698071175376386073888558421667974573430592083534546220678059835200299824386728225248679839939076087794405873962273476037606032169433206102424785634469146481363857616697825547080352516200216356507355942195954749684210952647467229723767893577063190910129554696619094886339548068447454407701195298854658053721443140938065418740072571825842056478062422701442959144599375476378060809101420108310122954592730283568723036314553035058232603234921241722776035177535511473014538593457581750390278387683660663245992270060487735472916254130094443562641993219481229258688500088366927000709549096884444587186020976834260079297496173971150520108587231094176943612855549590103670934537389649623502776809114484547025855790828190193508747473776998056855391413148023504686420461618652189307913431512186184557543103612230715268400270716940842312843780246878174825854625912305108338661177677296680518219526790101899470393896443176725706970568865704706760191094667116127852994865841722154832246756677708833159838618634521778735539333088459434941699772503667008163969882192669391112835750591221519347927089847553271293875678821063168595236215336062743230848259033905995116025194674374110122347061659675297523669794319490990769581882413233031992652873733352145383180346504932586344002809331157579445097306755455456449217777675082372851685016988646776510329213502346451380181899876682070598127660303204136869015752971688338109847944344492263274248726336624596186994854227385429955107238430353522522885331964159761171150125170334687606834741365314597094105534856026664164644198213281693483242448547903128034324317209619283384444893882962067970151880162814233574279009265330569724577076269535789736991124131664716596469486460033787742651566084624893149584859181469571399954148720305671393759751644771048517612362724819989568152450420049522987970714658032659444876785043601298345444352537001472365344472570463188013049637618952494840668310016608776058652965283698519850079175725640911343172683014565029097132197788056911964272846742140636002462819925932852616134622426287853548713870242224141032171637177256868740898436903260143530203390210266513399074951653671144118797895879046175434293579201357745480362944232662738755222849209987851548801051859730031507440360151963858906504624010441279484203725812449106662679051472219228353212425804881798909271610244181870960162138259733263082692242245215083697550001110209892221995135388000645311862416699081172347007118322907972407893529858465650904503574685233710645815631031542678618379671879375082208270807747870975578935345786208395979790552878148982621845819499878167519599948741899446946335335712823595370938549068206541790819717758436757643402258504882957993327619265136861592322542330391277440391237141165716374684230468677920670988778846791342021633929866064775960066623770699816972261547955292240949210605225437226590687009193376031244552150746685092185114803435142648501083098615902149534347653333619833692996612642371953570461337789940776377486268209639119947001900960137050981449629434491866055056288328356267975617259622667547707371794877307216392298340955210306068575744340554873685479948442237715476597969396485598109552353973601372238235039937655653064688172333493255533094792604830103852045611239961306901024269038884871818343675623756709929612433225331685640986400429421175057768555265901504683179312960125373205823841577319181219851961635467847691094639482219489821804073053773110873704553008781673558188461794500407717724405050154480565046867562879647357814711471313882705825959772446035672503537175431040153596187251738769728772956764082730043170976018692821214125099194579006188028492691563435529954807690951972565811812327545179973699091964468980322027481277957463470956965423873434307000357427827828302126592449830756988629398887628254545706039902559099163390295346569802373412996881447873671559438691624419558920935516069184050056014031175033214241858854429291587674017517338114661579594113098325423188827903237031799132868361434171011365603625033029691534493761003445809076454805069889023033570740844808994037355265614878599672523681058824158242514090017991383920128791985746082714936541344366628411907264537576325746375752990979461171064330404128546790110794034015312954537303924356784548146418236705491744315158071309911200521195468818592926659999461889348514597861747112820949064413962620008637618724282980975754232858682881340893078836010570973801680966654217109922537015353363457055699056001428558095867713994216163420465579939747613901598440630382185788279552064764313607764360874677498711402620904434583901047013666035987180969903876408818008185107706721868591283802992655252087123124323208395307625913751404025799165819193275872822893689737834193896495315828754860196140990707623329870913689508830388169889105480688039685180843829726597192051390009988507150352757156084808278957058622787138292478028349073771253755539412771582140469069951508046793491359132569424619821317429718172994906058926110483969616696373716669836509269383890418293623751302014188558129095313446545382900116026932723965893026786125126069229245955469139853552358509633269347226609818686775490391972611984750295362363430460816044397036205774698418399811103534832850193043727395868364085972032443766609285662663858551247849877858448205131910680085432410932894297907682504042650157361216464025213497380747778859619061612135250679022011660151784149940222560820615790662107794247407287589261881836100482414725055972925646200753386024920573029295608616574182548253941393706580767063001801173346968575591583182970701986590030961065965721498202167992974177591448997045551656351331484718609006741878857829644366215945981845485583506298969074101977410664417486405878450508206912200319740901334584298171626819191239265903967730544461071863329307478630881012451166006343810328920121206838987049664682203529583894516658870827940121175038570383242815608142713627875301379978713083769646240983308272526850788256623574547334577008429907074538486945812069303375666550877033610055495614614707595156704145834880040046193977990503153983778691678824350382021425836493668649536858687605484310489589507823654242887004345265680124639948538006436883234712953837691960930760961376057198018853923808823946794136636595023238316334747248816941200781526640330923913308948524160226817668094152923358561456141725217862072951313204136381365386389444522224310409740784913175065839066994179284373046599859114562895282598064455306675999104362948165963062690700822491164449358981815034427463455981051217152297261720490712000612626641922746350347083184398405834903334056940999975818291941978967892577154463746903119264769664198516316534267003352882922336778996927946593173819176425013983950462067863502579079266308250210189078256360262002221835397360677285608934845883721500334598355852119310191393046557495560014466717900195736469005176920072321371824812708386897365255496592352408211779418395519947536897745077289846987876128268772437292307208437078602021416561597669464106267105571820376210041575049700581728678943200862651938745178327276832400819598359094940602464091371057150103614835847336954368856509927032620062139393809992617652100427568936073561681117921898216405622026701901768234362676030747151209562621276261063645080530773160576040102480119521465798001427034513449316441959490936038871292411872364226151511831065588131890496295195895531057197975063467455832802437328556603749606108257828436312192940930445617127043909586244026419670999226890183651006691148092539924198195741475415167612765745268598531281508727358099505820452826869080933940004219005493386877134883642688069309304045971360578855282205994088443231901611037934464651834596727660142860036929162468395615355105927223577459787833675783282027446021055781350859476206748715233971612700096373469622739522514046394100381042401329883841645873172202780680033712804250132405112276142707583771438605800151516501691472537693914447284201667211322629768238844032034589339720196857033186023300918595271149651657919621224065143084964101326746020210645662758408973186578138406414289675015798204081397526364410818413989405416764722469537808959085856135696183907962890083618938589657641478587127157340285478138105888994980624466843295141491923556144313406008098434683540619968202335805597595084858474351482057096458613736524199321785967269503338336160389472974122383834348696588168455552836926988203247348495600777370685960323747192385232424179090759291878601976830486279796305717987665326082115827783579472710425244436178741512150563694670247243556853909056101006759263983114103660328979844599098366431996184887940857024389319113002963896009927738835076301171778161088553258170432591025420397691339214068251064854299188508161168516174696878346616724991896363454956935386848566611414913911318035520904371759808961969998156716019626377259184990739693737127698127955348429525883945355428152010619851601920883388672809019163991075993513432623971436534221770653483820032972383126612848368317221396188978100618287955339974222937627059874533838933829161625233389806464196538813926894150575025089656832334603468517176022661848552999866378335857270127235367444923425484690402043310851269505985346895730391439112128644173793855926197666048652919711217623254223735692286004610339760128015919826425728111610728371493491062719345017765121475255556450351342375741464852382041334092697517340985630820210602999661810205698715779149967444418401893741324861049316431868365255991078743975343772347878107553941458821248717987344326748297798544252425491147867425225070016371628553862243082626719643997848911738898825645917121732351996885627106792635098361854386159982482037484897140318054781959874005573391860405846290381485372096703333301289568315447707013591895302841613893069836132077509791309719442470868371206011940842291456206778297429436841884645816646116928428042373082088465101040702910992181476220052161921248760586809642587272076149640922371157464821808027809952925517127459320190727767196306279527731393792943634325926228710231896667239463531145789743907775421274409867109117835043319120038022003700858434172755674132986130268241276573116230794160372971230098849164975666742003047769732049023996803950697584010161880389643590780440781067746826351351404422917425636646270360721765709964938607639637005378901718053733370496245268135207019780450338846074065812864638204258947678740227196961918481202495679346456057004533240788958945021421014457488936095327713025399793646181662081311604307975305025592669904330447356925608233125780924479731278713843405952729141055218348535779654552728585264346582808511521372169910610497745906030764969499759393426228260907708634604859009335916525046207078867408662565919629545461820588811325763219148844321784361066316038713627219630929932496033363319278897892214217640409601800166836871032536743542144921967814303849315771988570988445131657880326116630861545244338722061006263894797557355228963924716981524528114282177096274661332266413937096652268212930983918521525251568649070770397799943830324629868145734421852370285729621467089236022874479177626003169664420940488091291977766889718093189883109328353975105729602229963322154901247314647686147651542960312879377701754919771347642641036911687232731303375129515440067342129944102824315733179696769417134751950768837962833655085946607603783828772252636544480758394614974789665358751173927695380125263990952657584782525137066045212574324401872766413536279967575018351840638397994344503858540312745674860980963740485223463591457579857357940209888415376832080669230125507832023718742063998669936886969041728998249333381237785974686555821049422583957092781412377523442124449528382132432920531876674974494862902586808767708840893979553725313781113773426399109158523409934081378612362143658397569447738698655308780277805881945156338606634345508442643325873757028620475223045840772098114112259859102688830245078990593616566426668770258410272618889109229148376321905512702027216818039853993526855089429595981969234822897637419814466846854371568233251737088717389856013968587249485083832830989348470556935448853557414184599159868534078504894736677457913827514498599726277740520542216266923360098404340483787501838957496353017001892429424907160964058722701424481403316183579350585949344866152816240372067642171238858811883197979808986570748427800017039313206738601828481359526089841733625262804734375177210126578200740442994090159949624951577776228329025742755438253332920518043048683953781268218631046229976326344891141582900587620851407359935761317371098722147096426019277264332191348934424208804680454710110525364242519832102863812627953374233377449857086094165240439959214372944736761701743628936643668697129586766278226370669631090007740054896156805973677311416428324922178974255642025277017102014041103733271713247206725561784710846497892365049942716958350022614190078343109378895860077348536665499329353877663373298561140040539870835045426379785371948077763247955665114822955993815124598445288087089644389008406511935464254900081265236014756883506832617946725986616446700498614278052199334248084828552656355814464603727482937354676476537612914382518182151020159270582181089595826927518363975681894285112745776129220772588464433920584835914164473822073568996013667372373559694050187341943161840628213949615969263647747208741429395048570166744523528637870474777468240470004985556937134066997229585252895625345047139009627770258751981541056497314125705308491552492512508677424799894913763737639501063143997568521882584858154859797792821499331001347460656460753309062172232849839540835035209342999160547051183564568110276141008526908320140297945376064950040346207687468055735469347087523589640120941999955639583940630522611654513457713427041208888068719164662753807287263721469775290847479662131701558637502016539103754391964882601353856417833719246967061929958735962342985757575651644951563914129251976876240863802915066166912136351214244624116710827018026489933087017679022929057492183439227661232293922461602386274837510747905867944343936796640461062518521312077796069943911770171644766747082425154193956856372914302057439588694380746582862314157820249029853841779465440098274846020811606769845748187454442876289492880532080928262141432071800610374980404007857985361727447385959249879215719570488034205959388929958801811824062100090101228391812151695154356499620957456849423132648173223856108923034532453799894330717961527237338286803954846934673196928645733372200975817184642953434188604246768732457402498557908074268947691413546820244815224721769079998565281931918558211180870424325731489056355124012459349447448624618371953162455062171851021155907624343841341216828232912463643563330515626523932383103204777953233637035584261571144331298584044339470849615030450576720894129241272364654947440082018197704179612258292244551430004829250218060945668737167422221059409218111646354704118059731467233321858072414016447194578595837887300666684026502327138508402773689703092130162221549700453142190759382106212736344211933034654839018833908957019838704494795867780190188529931235809053849204876699109833721785880494803759997694567582759000611763841605508789231283748690375636859953458668243820534468519110334390437864688926318610072574876881817732704144184698232636895733391500681348410749138698836446625398142984309383732022319756605449042325727542481721524177042215770839037069157114227851367182241151641459724064100066416120447692926621839110853427099225115462560547824274539560479316342017980372718508249382555103108371343301237494606544183524032361555051779374608813299560209216988615883967126772889461381364640731615158180198682101977288681841793617890185465591536687318652226912019150567844148775545309262157337175312518692446711103328547231033568797442018602246897634095742754054479493885192474917983068990461951808250579363641402627815705050351432004255624712295091759444169704393593245251800466454099678028767109696066309494455820237545149033438541415232055308605611351883762934258175163620882770731185285638636239435217296831871064740389242735163215593475062629779936018264268147664603847923761848455468328304381412499441569237285883155370747659698340884547546863729186038612287098811056878682044026381443889044683300499050699998720545818189378012425307449637407397490736387365186236729696020411288252420509352725074575402514743085940690309796084529209923011916584414025863678453181295250751139148317950591066875368865934923801017185286473680149941499684182025350781185839615008002376623795353707145021722153905196089297973202661815268549569919892386871020955531301173440018507956939422547000274481771297438121710177548772900512272058391179088943743271415949690289116116210892065798265050521346596317174997243201439657579315149041574757951642582480819738170433248970449932176357495705766095896625468624107494685596512313878451319703042136837520970057055423871631731658077570155143409031579766104506923668335268467782447622841223222012949345078301902245888142849764125477102246914425307683774796113964295594989567001338102466640688536923407675288295689861671866745363057798246787773734527407205860631401866250910525235778479009395414332088529403720158293316556986831203904629686292756511730414251297869863091526982187103252785601490976882231480125206208041334712789883613092709191616048934204907672156298294706331543474236657482821956722448799601506310472138839803114202854496788996304429769447949500736421632380194068190327295694127685387304639419135659125122262730378829366365318680827123315985843054741206805441543415647240653461544219921937401021333248293363956283637343078305701488204040861980117212405158255145680418146957156318313347422600938033538906880057780854989671067099796413027887536574120443365251289023088374351590959159104246053834817964069260271779492714466832225304863629776108123547462127980158780910271818218821283589841750002863806398831080230300385367205540107335990264950912143072798975633011136310171765117755352452496573000083404200534391407240811882621723442491663018155684851782856520623087651955112498087450836068473842741968843808296129566822772283502084380444499718712025569363890632896799242374617835963721321710108454433796609840997139730416138275842654609631364731248387701279570347650241289351043978816724487383021425810478270711691654095749712828809810138054092618976630935526929431538962110576078174850382597178592686966844300777185503236166259726623321011920939389791212927516776770136747325351989527829455559571140439280250682114961057249934278555741640280670601798799937193488131227784440333279955560057865926760754205187319603928567901445153234413435686785658011454992833192054355282560246376201377301386609637845074264894854568649353553540453702056123142194938520394993314360839656456694004017984607139673347757805212366183205769812507260674153152259339126015914152730510396549705540936370260959899804834333496878371089804745560997093320467919890078297009774479932147784230509773738193022331762509773073475192769204470635630871195497237746876518214089407047033994854073249665722403606254033090599682070118943430010445886067921672708000711040372978122876693006410267098458869319379540548843237028985537458472756900072242979257434584059740398991570647407259800632067413628014553488891701353295839314647852841698395648799046884977827684900419676182339046348923980622714326479091073676765867823099309744565413643081710229104692613721165429003008460887362455031834051452653806908350076968346483858515833088611439296799235289286313523155232687284215242752218722461541643040810785112953220207686795909380873987545462796920688627959927881661325994275532093483348940850267376460274401318918513104700013851898046783393753787647896304782771456510226665929602150494281513902634629576445860819469878622140635397239221837574219137394459078983924592995036597954133939274963310548887916569372878372440070875502220996638522860186246737028247299278151700035415299293879931407507049279607812070415897266243424879455485818615030765971070452104621954137302679742479077521450069056577258798292011249182900639055013575512656971524451667432000218167879693830185147989217295309701834514089225427201545749377691330354691444338762590128814494995727518050834208299866640553613187667867153295591930113442705472378719283157307457659955451868253497628085496032439663403587839886729925418401097743159141539173954177187008532089328341953092957435156737506817109761471098362995051725905517698636191576462834051352691286225954283662959986491260279281978234290352305193894114744439103888994930485119758685307221341642316889765927107084449299757935976676126490888316283758579950489022242326231848434925770809829521318482791713477775762164833713885739422188088747303988227572263711969841430588786461616695078668713251959141736043553634117592124946060141885047007017816310043515821808252972994555897158342489090083174737879475426532169607046298537477096946982030773207273797647326756598256801700723270570006383876567501489524134724337344973505846854667703960455901500594987380433869398242048475774907512600159486848756987316804253449044184295295225692297851844676941415181712139821822318104405550706351605668991757781968590675599856835250715567902064080206202404494396127322957957830757535811679926127201097489107133829656442030598007074329583160203378364776871780981996539597984294016482438616579706842587374336937058893300108082725987317483872058580932665920311691117322750155767178565629477507855769049922260592671417624623446932345611538750908721987439208629786463379347021569531869407967435285430815157091815541204175739034125641308495225011946024551835062689503973000364764992692877315983599685952458772272627882902285119288017975968605837037949051948775446536304011205347259046081899908404862489338142153820137242955724295123423539183724083718830533197204845355762819773704936444424224928968428631266700354147028992630389950677039943847135491327811487102141844968236981053675340871462293371763511600211762954778920238250024033953546456690755350471303251761300613757023181855149790052283278160523527284939735997396320724352516216204713973075646909761828607456270448081827002299633070183538127420886690212946603494059638666599522701125590787554007775161565762298327825133729974983292030240138877008282275528068711915431843199948777401838046281843268732111808266847372024519821805917559618242341153687538073225950172568468684344761378371994577256367928512706175976408912940438952892676269620321674260367835905234438632201794700135195971183827198407309442753836933460058460158861349130177443638025588174501176853521133007860768007505990665046098491417065620319094420653367497948194112803403691881363785850564519541344649961746015313407452601081766939865107197688233974245002675724295292642384608169014373865871095343417861644535112542680606557368714137428466019435390636152121007357912144906926631027941115842752991683584940445526235876566366225279494938750859449403963186142097995920250289458906724825150791562323643706194853286700807966622981280636751686779686502307929235197180493733374059421406175901105752371586827625221694341965097317591193432419224760416491888189755916875232526333165851093956283035601006920590454508208036358911677833374914230086078013520266164051300347248533768232217653166126061483866879100400741873438132213730290243528016316550985317596459264799688425899593039483866864210590244797143588541629760014799102058282251020081545956561230772156294280932888938708677821196841895127166735754489724723229414020182864201956868511805128426100041019577791949864891713348066053888755590022406347177950266274355817319742014754763310947654699008913802301711193541832841603816345061729786482899824485317536603158676180505827698628877279070262080020005485282726632513169790479094106504599995206444303571797536141382399193093451947799245030003869735371060981933493118281249909547883507719150969195644265873023244590886604575036998727531921515876476932163638951173122382896475997035254568591022963925320161673630720219692449049997843572693493955923501384494329794376456602611551070006089429473669798256392168195283040419760000388782123234409057657561686302053307536304083650663168851901242762309521652349758000000202575742807564982190110972612225510079289897361803755310169677838207740173992027069000483404424304689489196663613779601668610391588405535246103061063884149631380520939187615117415138474646290238750895509983131014952112346144956056563279189579882200415684945483432120085681387937068360434614862457747671326327653561037942209683154788549177261947036636295229397562836186083047990402663951004637665613087141036234748794633889975672836677128479723359470283371091260698016734399613644986660445907865200214873788764568270778194952601830054569213240463831091461976298931006511053182062447900485512480006153277945692957039199288411860165988684035148761309907904478409653869152601715963823406206966500435876772781244605549799281371634171994377118296061605808591290004776327227006394107305119101606313430491125855595862609189737078911733440576938412093910153859401644191459250623620993590101938485366131725561680301311186055709352570581502747592937971886555172136859826949392331491219792018795459571191558480313626522625702483701563834076560728471205189150086629214066573726571936161676271640984168215272689751865544136920539690642081978230818726133357590062219017689564284642089127214766805693856062449878773671770740274858011654045569427370397048526316472666426811537646035163820711460734914792209480642956299211920040439836801223342876132397652662685770518749138756588564904856334377904876822626507733453016667954862258129551785648598060247950713712296423617217186652802176464666894333147606465957688758984999859950332336534715413699014597332881787290906918338382645493131488771777445843156549584916022986420143603316308418797698250150954247856033994103978341768067806197320547946223123725746051190256101860581056832231975887566283016802089167392341597703078565076032216841712185859036730956799993015883189210570124372013029540289415387035223004494506440120169434822532902138332358073259264365981644982722204722120002129527345292096179257825581658850977979118929790566621492623721495271442386630909108460592563643937220415103927303261641531448100170289757031267490608975353601991577725043578399384787861242016920509869521359483979155292894111224705970992938199039031495159055363977880998373742560839171897223709044115181952155975248253719177966282390932194677125723801785201332851598220512077747640153030942816527130775770883265747185607440771224970038217152855732486681837609314100824894911496519622093610930239432486006451366709653201105445394474940725558877793404878448300073404949389368858924797911185309609015609370414972166195657276300325531575539533394860467382607749751065169201339432073329222324667172980933291350241712037612942321713936118540878138338094885759892590305536329649265967604482362091029566336727660102761218120135806249226301804544878562166500601637924542800955255081120293134682500313931195307008523294538903901109282182094394379505243974242157986877077846774450973503344941891798137052489656155742875988877837920526625642262833581799826121607604193620440718049494026109553744204662177758454728566567776084766367456955778579308592835074593864920168171731310302975786579757541791686083003066628334702906546507095301988631708562455959686024815730520189778245140960637028858662522182910316067397265490087384100831872777467903400569076624472190831432204710993025203429010534411346095541485319159498062565646666370190266177214274729970732202610616867409029488863516215013400434058633531368759106991672897352138789893314339183251724426561449654020588709282124615668901760160458123188431863064141253765737429006599178914184488941860099647231128308619490023631145172297098355979134793951027562807648355264162484578515567575860584015831264637656561324488983669355078760596617697899384328832034898931368156502440528453223058813432625413207324086604758565542111176969764710151763094591599428002978652875939136342744181880996960268637268501232357899190973199346628300322915465461936915135006758218396129951640789279625148604945524111214516849216676757427553537344686019798459943321780335815504598778644928756792196271853092048989610507092772287097279504873802286313001971730321649199656714686865903909965640218089494928675598374502438118805163808009653161560137918630642653163470665808067301676543721813849175929679453882397291812725807301142210217683918799207023511139163379259573190100157415305681250206570993589516279195330297748281535909721274494015155500744228086102282000343998552063051396504725613596815559090516149101528604195288997517952644317624677737890885377962432286533812959906624296441350957291166020205801615976504318414355960792135997323114617500924163431775325322537341217364339059846025732831590625145205855250734507145307258610518594230671117719339206414418797534055137016365643797401334399501909374765747497498310033096174675325379206116991244817878495438711549152336414214830742887177538761682658574896140743633396947201589842444981191016410184334775096319013420160716196146791887648587057207581468656700818882599417206434125481703530534739988989494017545323676345668445192532970229148718070588348767920227291051003802552250151620324898455854107907489929125850941913051866536483275332517967700163503229679441665567605650817497740948878869107964125708585246420433712985316964185217653337950945403889225255139423569771694471204896801372428199621446865449320494593591794890184812535765036343042110743424168555957161491353493316480574693360119385525116954799701369987228863498806755943123556422671009475215728959484203615320751888372114338048667456234823073000362539261584051189424708399916596542234802671825674036281798905667599384057774323805354955330174086699050435818013925495632826485179396791360490198568287334472795657802598477106735854082009468282331896052331241912722047000165447414078271372216269661273034710854533991107710869775161786891249138181508918105166768671822467705407023217159349849482996349172302695053967896817415462182701531366862279479254070155920434205591333678956148401209921737637514445382186410435116978171791796196991052517628040131278935902388027719787089143562859341906972735435961258446091437581839638013666242463785791638167726636994226285852701612208863241859598548034900899437921338880006838465471503759517295466864804075406430608359779194250718524353266608024644348708313257489395231590363656670753736359798473960368755151817445857569062460263978085586172350483348736790030131529290876229342358373275808989952838107253476307710287749438467951049208581011961842766703126317601867722677170842562954438993309344824944592909445494078917716742423072247030232977601633740476973972580207500617234571458461324437449095119965587091332981170763027927164063896812969979294150560467104353517919906079000208425039177436280600832966618216847340361450641264892230896270095577524858559441387601158538384775779278097003338322598150042629897715814401171216819345633039426732341888331431337102739500363145393456323060467713433168758307844952178104101284971961819283173529521980962169910531820648976234746528007955996638529845541518133481212285542464148479298965963362196477689298074380109637844934169335785210349122538737716422674441940071246747536314551581680067618126169951782094237030770855156756644953558866551225737714770768957322188727119216467202218295071493683071942495854299596884335299388392409138958834548375413918856937746495688661449828143216257006226386686790752547711449748222423407618808822052066548013841926123117656890905064093134470803501881538827600147811856471927574420177925993000747923560146258729723608600095732438740773992697240441866159666250872196496115379013960107193043910404932238083568789020125578147465595831051507692097824725469931471487571814614420764295582615276045748728312579356054453840737627380878572367135165686889532155157437388212047667224511451927697677436387406758017793800989232420971026016587066500834030781539216451311569222599534528560874077826695102344834692110732251504875832436055461005897788016012923247432017630692707247875248765016004760998677000602457759122876506195916533099681055180913961058287975604775042532878142614654568907166110309748410505437604690842552739560223287089541167920847012308557502866020234886298836411192527057592772478296467324019115493375135520837435151713423673473735719688976348146544845764736172526143575102107208562966927197267641295430327936901761189349041179695532116631571542898396345141884771406125923823292599583676439373935213045958378694860095998384378128250946839194079457515438701681235016619192870265831378167485997771922741775153534322658518214257726989355557098757625230715852959045668401196167417754624345226900391958792283493795402562445429641099180877437934129354574969518078405090370274259809276531528585994763788645056124966279778677124470018122302375976908007308170995164292639723363757463059806817495989872707122772478966453649717008035191341962709308130805343347608351438122151248840768137375117981780636468151168794068850526239103254366999873454980230024091382171907130933258678073876814129035747997057784132359807389408819158725076419495048580079064111656085221347669833179385279745406220554553396935367294275912821349186842572563574762855829891632481655772330293302276142798211786614520361466082238597857645912911333915685456010775325688025683355817488140552638875013584438576961237750272587366482225363840530473888290646705337894346621685783722568474595258972225803875815081316703879471781873835571517037349146179777941758074567217259484792331967560198314891232685637019844729247335919507111797315975649204591061784369838581971625002948462973616016524174370731300298784583715286013991053071208086962316154729330537126637201883224376182344580300176681177090932801461471790228045932506000914334842982630559426397858937740137531374193631748532594922382183922733446607350498396798916759297160692325078606621635452217213282826722055437729886801384821845033629385075874012002206916347605732923007900803882037329910049620173926582213704261287786417285283807591017912216137731990765812435140990821369290437912315407280298647230490961960280997299993954823820744908867813057807862875260034268287887272727584028552290755145612395523865928483930269637121266996485721782988113245464902605647043830589096444809789042187545526597636758598615888938340783300567872137610417124023442802610814345038093875979949233091030339079969819344932363662934811586636508106138596752549854631569307097129199713120095986371973289135080864136688452720073096703758915351168293787980381878215880202012554730982836131005850054942847720701156515837910371600354036094739860134621180484107955105091519247968314081135872952079737536906524400098940907617655762260887425035957240344954309614497292374633831081029511880516054095381194583840825334480001335081540424232570980451476632951702175925944817109307598618103214047062673722541869875545564105465076007279325459547810966037591294561902649060152175623524676993215841368943947107363304796432080023793268470697552324450536864194498556228417933336893670814748067763577507924649256046024442298475529448244983091132615485998751413387432981587531563575554922562767129102659742599000275286149757145085135369643076896597301988733495535932357975287085317069015321677853999405781330465532909395352970130481163347556079001966623010265448585266699984709089807379058136419782811645308760370382624016361453258825420625839313829090750472705378437480560730866580655130136321931157030855425021822469734680460259999721028787183019705170665405475805229287391336145255885514229824270796222036916969000427146747143258967983023960799825455288047429047837827209011363069146243627218502935327305630987577409076323463780517075889913070751974017474805167231644566694854799546739902523542054389738750525205586868848739630021932717358971525240778087839752867608963392375768225318268818057626165044740281028852930856067297638992699109320136247156853508426383785522077362345961030543780167270111673487493795440432091267210643066467560791496135104342100273879602955321015003796155147531187404419856496572332394742419291089623101365868120778486192646480035433889668777905431504980806984826344973830644416959780988812885500270569281662412317109120947054104419048805761848849179942324921171764069836799658592923681023662478977116769604537393708024268448570351222740414601094802257713633247041991851407519259314695996787675356242458063415736522379331297707735578134707075484293426603372896059747151008268696932320915236024938209434701534520130610580034715294003340586904951618941129430817864297000128737211374452064824037420868654578128915574259495298672542710187241804713337012605549066097229893903109859107517983439963936349705623758074435426282024899644214539081961618455383417061814968995398400381665111498844564497650206382873072478149149778168210191720073984843110356190480323583717403643582926339415264192194589358860198153208493400718772519948915576778548352868004705946837001240452819562762883500310588444526255078983496877918946522036089645808731220369942295896079363669406576835715973640391935178622346305038220491987888674803098791176730413182874210259816562962721092340046514426353602688142533227229420462278330683609831749404501699817670560555372047164321550902763145987038245919422007104509300249176811356460194666647642752992086458114020985126775057438938674854674903285798288444452379676873803593572539133892954689558671155717278608037660392010531880809617802193305478070056550848290957263961615101806829141852823637712769225892599780565064137532223428308069736070014743134865469370773088219857282524237742748283436664217820492608106999796861048683179043136395154924899947887698186263535010566281531313550211152514686760054287948077769845774222513423198943278664871556406158494370982709918471192229734603513875721316892674637891816112297988920207701119083623592083465067685937908564577794160543606894454185335015951513664800602094831082336455682619624107041654409693812191972490643772236376718271940749006203977672156665888781300698662785109394269534521171771411443162514450693932576987621393666306523105788360088393175801542938865979289325992768917746437602014789052603567050963089788610442443768748340703748686095537301576208415885573958996997666333760114365577919376215046251906337850385361078610755392429649534437387610776744609394546033345417558746511190742994416086169113750780702670745443581270516815509042974315788446400831821975516312647185526237093046790025782470587491453141755571544732618528424220274705833643471790718058647595448882402470588963811141775827073722580768638679558828766191293115977952990533101960260280597701087522096076059747106899477697054528421175008026742731131360069856849315101916723389663328022746312573784877673183715674135811676730817093791033275986580836542150095698920576015030146138272408469204495612727663045162089395661682663818188020896139394581388312093940132673350435017239632304634064520657987556091927428947553557679276321483531744523218057831097682049007226191339914388470844961394133226490412430808589133535790006830444118161078477265084577081041835802780351960861269442462636173736334626095634369635837547253012956479977700968524591241236739265351923662964461761738501206789078916696250907222849445594979965215586616666272084131990180417969182842031790266908927367575071683882743425808648120371139017404884585687854650462501973581756604030179107931230326045025753706821635968090943937424127042069232965892596869764093164771237448633746155086295752156019973611777648135590788016507968901518380992832523206032289128080733032359041303015603428859336746009068600426174371465048121900128955763488657763574103087226361258261831014829311489482071498536792036345578375224890604260844511144480060527054291143847060414882073143851036602243014030101901952059290843388853108619491519066345101938107253855728681041196165521624783789750565583278161249783036835456244808566291936080449778152956173278388913074522328044877354012025127009110063936011730261869564945096946630941185460320658679070151510973583512752815921394077865600477764031565236677130210040644099452075482984223674992419107648707128616796615626536832663293959545875511456527409944400594281273707607694918714936929960944331089073919958488565140945998407038774294675026163289711301488170986403028287720129575189376826735714260284964181518711477883667550673212289778917144884541085377604992623858138623320767914669448191793387551563249700533603513360819400608233297369824056164229990934661444427807843359837055819641453363035131351295208327447627899176959078212309997628283807496230259746632993054411207466673547419333578058547887522240350165605444426018093851305515578319450413685351266187953138355387950991453161449802967503694887166072862537123646283076092544946908106490279811107940058911182816108398406359748571870078676445153178098302365311881626445189888792105795554118472665706186870737444024538688502059660107639300857092685716028362328415970907786404108445829370799053000974697840366205243405127402301588247208834146496745840713572386418953874618568979044760268688354093022105313248598793035054771195598139308142465415060138460630332154324626650686029030934254823196986728811059273101612775169458976146862473802716939650821776688417041304627293796020761751220718616951349250483591899993123889055449592650419694165675577605556164478318800508761798684594088909794986680295344990747999868150044427508836547519661732087759598367871673431235609691144637211622774752365218766499864459118457980742368083912997549947228370462082173176387662214072645691073535079713597684597016487256962600820035799823076809622779441031279641023988161342044098329884401915492872202871209382231961064302407459958321580380473227050549479219749693843056843439706328569942684970969999471507710261832873302736258507270940312323372295499334473543630920367217573130388330981016540073173869997984528834833520863467062379130331168531129240509102286260616319457639713444838554569757538509608240911339914374544056206001066952621403168136258027173081877724442550466145168240804140336403099090396393565119868410866687787973891662205698942632379128514602388425170959279295642598670748308521494697073198929330550960396606985672300798916643920465636667630226300522478397087130787855361652474279951506374110818532322290604152044546238318193642500689108972947197190952804388977812413685305995024622838109719217245174582804626505174072742252048283822814912165502297026811383434700653671323556229762850031721725370213911425659200905656463581112910862743901940792844790262516712359265905271160278828057462912615700399012578016894709212159355329843670411112497708596143641464461833134467669444598042720987037835852406809923700620112250800023383910683448711811350305336200071102253106807903105105289826622742215089537097827925098147460611041173022605537651606741831015466464102493436125931047017694283308572640941820677431993447504428398090308261761987250135175299769322828604311274786071489462532370025897478862351176884061257180879566119663145449819889812784849448859556827567844965379887696951398142937096336772416698733663865920489369339906814274154352068357854229939622062198607620076962189066396652805467237954358497355963065522877945890546547448113794493645966018240584353188231545607890481090839380141580496007077575640420884239687039628437785213076483867129716092137988144666905871834428604012299569008964257840848489457014476953852846759828857207572449404083546579225551952444099810821996189153263690077827619049937341659617744242736492392941856364845243412718265190624782847493391113921839509133021144542548320108160754211249145037048858573549354709232721737696589592980117561024157226097549084746421509486756969330339597905555150559826416165492249678831983050766212787960525914580384058231649592248017547227643308936694039151742508111942917642056591619853302346284846693918014286470149908365786968886865302677903731368920407264485075184538559121147858278244251345626071102290860930557328530763956132171740883828029000781418902912092329011956954860250297410934025240754777853791682207933589834241585100090085484120086645549756354780414150306214458227068566703033807458536222867125573758707279520085373116299998815412418543253214036143594539982471241914898430677817485944188344745695523441536193195074895754992006932266717679940307608154987750514116959896730206795955071814608259870902262485324798353548221966435859739800209059589406918334788431734195030789577813200519586342202631765135780387057932200118960841126627391994124755277887902307148571512766305550908722749473959153130448658859544179404701502157452547899498687913900487775797608596485527458362500923243137012927260365562703244317064231457286489494031003285473905942082157123555309943509422219524190302977012845952213243724425300438116910034036292917972310589453711141266949572740655302123561436692062784432768171300419890336772805399916760083590442000028518129124828075925393873047780666870592990536690162005892525829427179394925128150547999838205817588969973094632485797299285343181069231679386425063318483247889175522275183567835905357923320283716917284520563349463845479169010514561720941340084320289558123932912875616898082488526550284885609135544204288325557826423161064844782174181485127184620772859617668644773233086724383214887639005862067669858853280873793411523797289122494270676576189139913808577760671568228730788093336613805602069256681104467963312360088104310451564171656439742154707916325731682147721404648284715420643998333057211992203031089526097405183378567542360273527825135112170815757482347229630773832879085640026942733151833252274280128505130580568418844131021022980145002406734203637042957409848328537808182403986557142891202717288275982249646441027674508083877935559637177522263195399027099946844984058356757628260127788936341917168337923493256173924922498419827293341043673567760185000832078459406240676157982080014589862706459952583997636870080617141832218067686296621341535054599520253336706060373666917809999950415000823963206100419263890225892181334565685166748794464316947527244957794494841914947024811169701205150941558097488273598405416968983859710282963952058974760400154555452346007842352848021239862674579991276886941474573045929431515807219667129377044153034678906294365696264682538487890245500682582526145346210691043067458583951863918621311314729378267434309668072568317683419203770415074075579376317990184795451210550318113940386083128769452363788260273730733116485690378990549080705972922839215401999090686792617414844937504461115859404253419794212238339040530984678316272892841743998912182410230116695565418910844013078498489619421250469895204685187653042293783896522683902671917369901935895809350548692697221987685004968055281009146630160693688414059154618791828879349132403628270886719275341169725226448787684209278233870406170078381439729310641263667965718580465130680368308002951594462037528493129064085696298794279638057149403408176996630863588773010477079293537216682934352148295006343502737731550500664732072648573428909483415661768812971852781325802247271734114372842035771074640968845277785773298225568235551297509823580155674694625413630343968652893257905454621656927237773115541761444797605385611581347718678636185255731099028864253108013180117948989291858493224430918310049090444770855756624739233620445113044036447059557160524947766512130422050410981139126406915168315909996484340587184529898168257309837044469152317859560614459849720545162416731252631413861650461441473872945488441237043886009312235903623810828374656133980657811288439151759255480976166151273873977217732452926756397608497720610051682460079306454345265104266610136587933544315465427367437488484939911731998198128805391573252508371327163904929613169360730701137964144978167421912291850656674825213905826134989424169448074776252073788734303270785647194859904444152556609747429682089957675691570154313832966096256004771987418354633554121874833990293569340846847523351257347647825241530344385254232859561272551874311785015669218435802845093425271072404812217410097425119170786908360627793245058627039142568012643648545600240033498145308109770800864693487171368557429434233268008943700265461574449841924355551475920103542550324003572823009159191677078278789205793321287955172155057645396711734426432061185394931001181048885039806950311622667880321965614045863211817515074553425238790110953436645524540800273507540436174078857547423171881376446495698822208757186616906817322709337391190353779089122777839298509415920903898788345553563178662912355621272873941485640441784636125673482699922385533985552136095226167042788675209401613260954096817674826549812998958464148932533579478945512774466411823776653024180871637415649103331191835443094711290746443913586460870814398631484661573206299389367632000060667660033749984178383597596115562324354434795397499821032738509844402909707839659931623599658484937628530822949717762044590448578743004843185087757095359646893294743441291346431887527835616610033687237872664657751161719883956073575340538869674944276238219621826323373638375719313052852440814754982516235271218047881497428620857730145434128940308645315257441089055426303761692906846495639788021028994484024702737859762971195958803829211340590185655356635068192541106358608018729316281817712403301418151996823570825725111470072135738596132874794930976736062462797325022473939245830354027324399526217020287054209547143042361347745208695451387030262077191364166197554365631202251826544720613162039432680295758708989890671734807400767777595503609657774418275171012383521953133063304021407729448396803812708803944712108458291864724725028377595497435792422649631694093748968529797735430886564093536562104019767805969676584115646477294984601129212503316315366514908681525105198709393580322659172529881847445719568498818114118564184673218704888667846345635363305530101962497753191043848554642131696995723870382619598914653971176996634138110171972615181275359373762164884851972783201042186216929082270605246160981919281405449181563522180491947078102598986713952992565520199555720696926691889539183865257700025703339307483082597466860000130558924072858815524839899712152955892698662089021176375500341570526010922273564948611886430775125670953853407896851680114094674481733923604106022621846619742053101618824720139324228920672824423695732987015220148771731292913546013729333893669313711380506783918350224411424356842233087122663756697066117354812900923519367159467151776943681965520104494553701056207491298856619233528029532961268239558353405299368745495536218213355541326767434842010728612332459624430465125716159319367857818369742525084274484491605026282600567359450371793869970489315372682801079331291124593908604538098559446290589310494623550093404494203760347976715212221892603608601781293723202175667547285476147266646975649620196425267630069474338619182687629323760843814265541818458504937502363150934948455374620873972450170571671075867180796675543019349885595870884181445029392244616457652573153247607379818354638516042252763668883616389260428656197498209302713335438893672144769286542578337175358163345100173984846313055385538334470507022768914990074166275015498004938438322300814799773250616627431484160511642779710397443522043930334361900862836613105999230180087200656139547271848342755899078355212162017020758465132525837132801280398504923372762078742434012702455255808141694046793491889841668708498460591136432156651842247859186119073119509636176258794639748148553127822877687468060956608881929469781533850131416331204424082484425835998870548500394547735454480385884821844929924348917615206369985269963224315536487717000360430283969082664572836925753522536083416168417014932932432468043261453033045532575384672058949132195269291885819075398674566250516212147879973743853116016980496288620151095007240882328337481828178856330064540157509348443658696532621884757480760911054343941128387325096115271826556202517292876694577279403890419444381358628909337288683516913821855727023856773595507381227885520472151305595809051431475842580186770037780901210480189289726229952288260179076008814825945260728814373542963489355315240693542619745422788295005517087907200737731984421203100422499514129203166738466410135630686157648315789805717406368090220064491430627656435904835882282516005891794287752475897251068503369704484285255829843333026043822403309432519895035424156467913190543753927642899571447361335955020091500703165000674822016753052498405317054489177454462439764028214925827532015964982668951614649779874689387535159851788190177390668481239888099378146702486815103763713427135573421817263253660713210040775608510981569700133777394035524156687556524314792483295971105203493937827838434068162699391203363202261518452378487508561375099698904826051594562730515275145588758369236163190165640484109034042447402831847026050884127733618034619148544650947387619727669205594153962839930264187764068018812243071873400938062565240207276945766863615225812638296934875936998081720571464934789676963171952982340277054944884677998135677319194324957488985836321646450622008126358892635130864748512011277074413396105517541113964918097172515701462995484564208839750129360942245061517901418096101498407038999047994208730000516479013388707847991646143989970140805103511597468420070037085376983912066475767741447378070234350263045046988065667136341006810340581969438787348159811714560395621000669062903971655960964097411948037168400847481012517924464843548932855323252976889155256616355491320811183818017374376708425057985654414975145498101147181504568626290410666299430536555854597519946079599299255580641769845118471826177793578119097097721825040072606151960499237905200263866160853964264460743955468886784166769898092081703009099304045900127102471752181437972584907852057055995255064107666381178226970787008551408557665646999150832878743355574200598406001199222284656661606078637207031845487874436722270492304623982124416277509237439363211797581565391186945117323222078177078279511406417403974521114920351870933343076615090379398965338626019988663289921742672384035505125249184253371717365193125700171138914826406150899913541087446620396860719488981301413667182836512174704974039406771572581307024487691828768741022150657194881640703425903898159373654340089145044349673849525570847303287631767684180675929339210498583323495017802632508303026673086115625334761700536504196956480882008550448060181653558502137500509770541419533449709124434704048617560293889413136790055440586935470132331253234041716404380104370765230784769530423993824181068391264968129617217237866351353538882834874095548033698035968808080436318156364762737812824570933453230108336986916936041927875323692534451216417652135038546981856291031161136929254053497602378434641475168020474189718752040674886867201315669997237239728533189718109399699071594553088821769216896812443981980299231484516625517955881479987358090909283832322967571649056581191992766279372254570629642889042037953600419740587082522076400749596621173969760744061780503881392079956777223049254322337358239109054230846731965595704443339668458176018366757116430846081734529676940278776377157056165679162002011231879145877318530865090794763915373867858302471399167428836566673883173372820277083705526094002808606812843513111711742570868591382032507210563688728134464176650380822383728946424376665331640539702052078032749685560643655877232814726789949739763386330841600997791685470363206143472341912717057303054891516441302274061526234937278489101244546993684691024774012988151197943852856956300640437295647727534640140498439874684743165613425512996083367889858230652022239083393872423839708643510836253002810822959525527180780646109394717836755323092952688461527545233082371216460784816138071664063692152048801101952861218035924258025249831823495131026481872067568966175890187178102732601200439389561679703470597856395181600362705770046213217241644895248793161502854368438107361487307576453647854728510352686143913526136421193951574489547398486006161921917958976187183311793324553470643732253962502874732786886310094122379565646507926271663913105832338552532162045393069163170157256259003175367442812760432824181904426291984991533712861392194209405063012141135661059173579046550577532298987039847551850428140830328800718521751739052071245302181768919110290599866182885470908278076460682451371627978483355973348111738663814974193993851622831084560310697844157563694159410380544800001309698546759323837065336779871668812285361235726865580627076120935650122588533749035768708348247708252707849583608059919898768005054100055384837351775815623064274573768899307480542586504961859116981925333016188437209008755633299801668851224124887239640601114828641855416672040485268202225356987781369699378327081825623373285717393826216316425251940791173890559386045059521824462354487939471327190375467712257391317944869006217502858438903975789428471395509127608821228646526421089917047255273859189875070474882584750686112499161160358770356952509029998697744990230390493121618408797214218837353637280815837171724514492396815054397754215928776172775063470388277030382782596499281586534637101204018307654764689024196519724053650040589573465734110097136823464553265323943267868840567398531524532956922828310401445640070166779814334728531181655525614843057453348861796849582222848336563160794739693308694521567140171316958122327119183069966027734841061429731485709764942926031331850040384267716317600114137331803579127220861518526370647972484708922626339055332953711686269223491034814617060263111072657147608236243708902866022667637772226067988677518555814129102833533117280970842324197491573436740815965801316282561732945975645823733283208825334627117691461094538518446730270763515854844474554418533898122413727596311097567751748548045156662102010085679834867604309706062817070549942491596521523263371063238481313038197678433303131946969341001834423898298630653822705853328891008339129498213847096436455731458821757613751213278545015781490697118274731689233903484806513552129564340193796432018345947505287796305149747711422136502201718285454021268548692539793381461014840667021819383884896967117748582168836496627537262131163111763528681203646229677170123243600408223434625258741967783108798823776313534426444179395025824323234365205561205958297262447130722973471972079102471593180684068275732301781073152383300786593208647732106353496762845834476720035563523287347182956563916618767603557383214913045661228946438403007145074600951664750877644299497839330224334946883147979741746483251750686396751956691639817503859708064102000456672843237999159563858247780657065917509032699287172012003825359508015572243363199882982335178071646152971574669251943053813740591196802126064376169894171782047689015394396520220579598478455030366255998096658478479605899107311673279336687106675192363498295976111508086471732493574916684856098705655495597652437889033474150043309658689129470554243498337476725293848764056817093399299441343138708879201105519123485437843406477357696687139822130698824362540234273389236140214388031032426989700813589502213647076190741783843504275285277461162730957420002062706204989821846147006458891542833549847881216209805275095408873508328832524702512505715363851117486207079999036498189113190904799428636667782858564113206676187130237306528127440314010032941538250150116263290691710073412405183945553031528197310433855492728483742634376540353900328645666020855401169293419104313036895185580403385277820501260011661506024635670883143346237629563134833031122592301109897706367217102532652023546905312829002249183256182856711202676139492527120390635772512770732289931589779662420759463729248140510274749527171677993444019261895292480472327963498273950036297471208250455610979460323182460738613769244003312872321423921201849656699355507323321685964232453663846789282331443386444486124080550769993592197231088256914918700957901951314770645147799995544747346505413197863898100683645409608205557594232028810243155876825299628285624012158353991133324571511018376418967354410509631066653330522701987973562785338394273333124703799837804251873809436164020717213802828525544367911624373429480929431469971569926562716162429013810944495481356702896474602606491277373547558216036384585113819793311922208020505667620397536736133813497781649272702977936855475744475522623395013739143102933465645606212302528341993765183195369409628240501904086461205311812326532225273273137903336492705199199826026451291868054222145945993177013967216489809190326269287590890584705227224319390999013341245507190787986161057045307964734708478675471912848007462388920465885146567426407566758862486299248316301460729684340145998994111052626538779584420880119165808341147001161651027097808757871752657959196803900454895307169022118706504570682844117344417448098120158671168083324565648440030486628301825226470406327737643238015595931020115671021266318386769859269955796083778020923048965051195517644858787425228363354735531266723868419570582989982850513431827691837744904311409591023379890819588109847915129858310203825946472177631810239818586770456305765985918199470238277212750148667103686781331968091115741378810856155563164512301812858318893300332333947035031828226026420390002213480616453552871442415261010216402369445602811725538801134616470953186186833061608176952068091591389907478670334808940836765496546206333554803409467548714203543474505655250833685039939913085330889829884872787545765550208235000392471781818806231461369330016547607815502207480712841349511598821107109677273459237746331380402571126228629398579674256885714238644119921996976776056105246739154426295049918212416575668104643004263639217120511575964456878608207547051090778647259921459110235459524663425359495576044292338769274437598120388766771081052781482231296453671722326461546833509909726760803239141155143688528220949969000440205969269302649116055760926033254779464213920310989171398077448007054914343114740105592111547923073616866228606496731533555455278377943426570184732108872948364345731419382923317828709033409592590086363978357820196116493224655390195368499269320816912469618660494061099645436378727356639293606652049485128265476286996247220327480321689312258320803704493032958497554585825608456185474504726172916790464741420177917506943373654155619096314862717684518433808134829215417687090698725679568994048480373644171800295497433085084384481847482148285983941870564976032933261280173873218328993807718654935686711580726357012106114784443575844509808555047968344870020844027733386284038527848336448095329012632969576614027847637053177215433743713212089797205409576963695239794130563980631846878011394906993830958109053161640549873311470664881727386275217172561647602990846906075030205280635826176745494939875052178113635407444472334474837900971992482033042358971740412140501857663438785655381356284609572310567023486179979864689908669649122951252647898385196826374072643847120903991231523886335817727431666731557512309064907290643324486162812412988867564051672752081309807910366647055260958639739603882958083911947724383943862750296362168493545155426617200893401773065455721019906250119906988416794211183336835896582557768413995096561593150667536413114370378463866426001046502208402272483042933867561801085688742458799597337561878177808003211176333915366931250352425046237767149897085374412209859256975011018181474635662775339835251220060467081680529129530673522871698724544270859505156644045393868905804312418442914764779204887267638401850619808313539255269075327802623209780690726753202064932194944542095526210110854868209882377471621190586371113973680060304012222585588661991075191251632082911888756562219990004920972425481055288557699994926894880066850254888585909024606886211306172814384218031701102753483987737527496986698602610212715016637997272514057773584953048383229243673059186945772696169449314051626592504952352758410760592350570318314407673198325145533588972230164037085107360838147574092508541071336546626954406903657268944720356265266423495677120054572442567227309872935183906492256817829735632199940827947762651332044574307428617675854485713463836727245897366354558012114363295040699407450449495376636928498498462750765954654014636342205624154197963826231212750961341009930745993334769029512568984085070723681054396944187095587785513193197993027201611286701190670450386311632801048918478541730294975649557502231412143282701615957267281677252584754943465119578455544404189701060618386897469388709125114083019767445721294146606312041089626436247532766937993396252546304222615040421389906861057650674361495867983318154323271236559475134959552883577163507733419313915841589999892471693539674318112576937802201028716490640608962636660016808281346813393360652701770922708465820917745954473769898947179643745613414639729548326460244716911545755510453704190569067421152058865596689408701769703581574814145883744103596877817592677697499273269019534401669305990099838972540306795195437095856777781674248618799140138868258571609796212429385171800098359082017819728150969222821177191122552593743910068473591321430244599329558828616151045369271698609886368701981900417886505030442660196825294006314876735877896005711833637548692477178950955363097387124617564975472484438731646593963378994436197449121378278293127241023980397803133364399036817728317856006796859564430812762541537961918424945611072190663041912106570684019152295183696901505982527249407258972863152615019513966162556172286124972801461757617304401327238664655264044224376747569016986593707224127755679573275799640103074656855351181270711111478156189679320986458953193635651888915115603404331907144230027984970404465031377419539461737449601018583458071550543641078246985661120924855255187432169793609798908041032623060623669941755889684554308639290796327397219363658475672016917773905708147561717653813555905168963136044156816671944554264483167002461953501723977431013548097054083361315993137650039543373273385405284785506075943630108951802141570134023307300497654742858353539751869928148054879081255279987980393627539538796122075852398381369300795618577188706170191183518107275776616727392792099252920947191786669958333838898832286819335719914798364306642179362354998561337544186159947044204130596299193000828756528289740550116858556229054966814779992263900621174577318651615512980871779122596679003453627954471650338982339046193409885796924362404416153060336349690157949909337033347173312932553582202819718318112704552253055665165305811828321626873234556654491314520770760677129108830667128184253936695653656482939945798370746898602074872768711877262305780511590049791858372522253528601779063979365895096110972213406406385040129066481723455581025395341254777246561591986167824059503589042191310480441012434560102053465572803459178042894624969519913532478169451144069410296393230797886719317385663011706197354419849443818674993514238891025460992858173250772122967310608156582038097721259538412047893270032006924775692503175679699576714349182175475926864041899341651493095890749635928529370536332122664352941691261944743401472785786773398874683899004291534312003620046047190226266941013034615786911254629387909904383950538020521931356733935838088534963505031354637806973757323871781324535923624120042429708630798333724612959756311048326627131337302552038060829194528186432377458667689057539332514430240504666585869226944735421566967194592265720441411841595366806132054637854252049706223069853258289406535519923362136385313863892268672336726741275590276687404640811749755957135682150937445743331832016769270333390197190126622155101883322138617645627999920022678838957250699329416946098482639794038676797938778689398581309310886829643467686082683072121748939330083374950849157482321344028242499976363591903077098391461815913589798183095263968267659411147946269377143285656736256163835715399995211603144539115367198639263718427255783121208897189778509419848065645934288055173234632826489867309334471684970873727031775108801282405801696464641464154656317460986248169557382164596227978020225136895354417192747928225949534143229054635712233479033190661853215194036950129358539155558117560128466492567692724165479548345839287534173175812749534253901639619498259499526240036432233795654878563644838036570555082338661098291746331809328910420626015313850980775354348157245732662397660845293593639301115531455734837538918988267801812040633348136665363593639125893053892508038677959423179024080997854274398852756046938165793370748337239904743620478991739278485006241817894628674962491504523360387243525419439326044918451218419631173682792641715319285062141868806498906287310198409879606820874784556910412951296309241523248299447811423893663781189866688949062593015139276791839573110946952459906532506971631350318591402770117695317117525962891251697766668575728284088239200831923575927348743919734737453063989131721426114631061439584916978082959974706980330361873592077160493839142673540963036615465895144639963586992417240516129335095943946358390745933725118928753993828687078419104144708786638012582798916940315835163243599682860031699755967097060891258325187235569452003037115593882350111903480714215394863622076229993594572034244529693328827012947836828166227689099079412447053492053575231434559196563341966404231269322965408759790950685664816731692511543009169798198499922793211887653023136194606964233824626859060146028345310294155185213307210582561250678489019733761996789513164750540724976450083980442869825361866850103530701458273622216414729077617190745892725180913921116329830240630815934261310996967683020949930688655344441309027716043680460242596843896219165816574828585086079114422283620876351052749081391915585918399035088361155905238463372595504496445234022513375426610424270117669766394307359283215702676863097026143633126331500931493914196286275049333009954138694571526453859688974717020270972165315399772478332864834232418216396452800271060235153533578686142322166730448837915970980853306174564793801103578411400212368272736445233670818474038717888273741499316436574154218378703039976351930291271672306355282716799749816604556405374511119187520739405790297437195786239577154460486573219895523012503183983911396829899759927069765410165724928387871184766568523843354646271954779867383465863369561439284938993282133912303896759839496382522270882552355175866638476096253825423182730139226484263369676481503646804758920692067380413152105413584120790161462513731432495539818996315939136338450068773982282567078888168909452125775826884621578115101993916349862950048902443366311922882525286665950153058167989503895550506886210969855929078342300049905255145879227474437707722738547953602800256419460236128210502178463873791217677448554385652191844898781565761149888697279254380569471846150356448531788682983407376467208447439993979294368613149570481193487508138325204191579897843201963659663617572947042631207707481920997702799516998723824448018483683667228938846818900151865794640873491338879621335320401373499337455696278468122301161742758320414777349739313033307489842782966886526599566321683465046387961467707932654336355261975501017706319098519556244319764951570593085227235887973632291941329557598985719300273259894490109616250096871376906900115172966987990913678360001784679384669747428501780139664931962711397867098184265163558494363751233434980476257006626638767983474488894670587215720739119178323542515613465658440849954329166029441179273925059043738422600285286897034019733473176556111907495346331583689122212742885671678390096713094515470692366959985045230186332299497647365097146971865260909216504329543165504810441323099810377866379648839458414079262280091310250485946090408823578149113125015339355770204093361103892799450944921518122861549427752369768296688142974059415536156936613732003783011741796493636626166566953281764770033766943615671318202171020700078203335577800902755448422997274051315211994785400587128589044130782002180353655008709643027833493548498539266538069651141038788317537742361031666508270093978007101095216047553016031111493871375426622226215799577888217582209405494919098844701639855918915372468773417609246987095777744811501166552135031032172675571207543714758104797199415635443982357568541869155191667862106979811236061193679353616063291958340445440885002683002726633523009617559352250532039737978665979089998258853180748748625510571333807990035207329808082960944663967989253065787876877772300590564784224682281996394571681640553145404572322941568405308030239335174779191218323438207943011798683274009026479364088197152786295852234838021077515852532651053908041506125243969412919703407183241519007520691214056803006334252006479036467858662069485538761964066921552361907737996983377083172654026853302608996177068264840042111644482187213342437779624303610035159634936921495206230144612442656394291181306276519366068308531322351603906667659373993481317100144998150689979231577092471501346969257185662528744658041918921876352361394460581842134709661889203387517654674866363312297287347978795001821169920963028266443094405603156660529310504949717030909917199446299682719085773159782990673100546049365521463928975112030581336839172982199714819663913461155046665311276912685918830401277500229614416923991098192682075938308845973910394006744339021745273236998401352669552551077302348327461780680714917821573071964680984550036910727345984045016026704238004214792133548440940227012034974454984270199794567722401268198154882329320879551298597780150819978887744335363686430882034441607617641208684682392334836136122056007520594937987602815608092052744172730043115915490136825548754330164526381665069651019375710325557536569967778999527863263441949331239601502828461933927149141842877183765351381674275433779023162374093625168952787673087177157903692215481785899329198277743709771612760598103698511625954544240260456338295032601201151534043030504105765340061611642926421742338219225340870336293426551315863322334166154826551201558063151197922517879618938175573749414293005861012284557683188735761171216238792511524618989698702729749210397023158068181578516518412266025331698612577478321845574786910446419933940973527775409783448108854104817202495813725587396483621325489546477038845635105502695549652324091273574415300170976792498500640160768684345176327576673692727284170596681325240017214031558321109450734091487336571426990456959427162755630759356017178414552128368590540496435307877235074210383287839608684641221900228544102706816750394681518481992912741179643985003003742170919758518865870569513703519890272076610404005001852495118801339783283016785444050973883907533668016116073530196784620390843626081772506436009747657227762662143613014433601117463279491522858455949927400258483700119085267317777858118764681459495780159212877724295995162079990236863888460366527196728905174051010640220898932528494403017786817801263493056649843679721026212301097213464613355779705947456066990148560151305899597356039132731792325377449403576852966861966329244567221292267598796721985189896772939994180917028747646007021192420475398108297511849732998081705686942119572846546180948494400102222711760866501733418156325189285418205127131291738401533388179248578509296564951007867027968055525874023176997267890562165671745669723870297531051638417376864176510622494285826783512898345213892351059964266509812433413159206587533725950982409232831098349287859271335958809724820033828106541766015641051199154499933295051511185882353576895951207352843179056053521569754273011034877626539309689575284322661945151700877019371408792811096172154669686542403806572805029878548258183500981760194276433283574841993938525059092244052044662654015371629074096864342834835766359441052935000672682719381079888392121575546198575923303207826266458538447194379706480781906954460903247567715634000988143670587993865819398591392210500964181645469096506361246741839449238536316256281014189715915109598594714506462600386961284849536839220497406826792499476756573981608811555179899620616535241180104430327192253135173415192121905785223481538758118539179344186007050898073259985343967674664576117366240898761702566745079544089622396588289450144445581296420225096198768789858108790343553107638545868631507653517278836108590404266835267038734814444747047991742302561702055797378256256448040318150003293524912460961015962876617204774519115459377214816697825330549468441478579662482410810602040184261496087273492405486826171197429062252909016033204094329800561458313988961780967362629064664945387119651166085004558714457059279529046254151570224947018738227211268932467312447490664377563975833028564920706477991119529933942506714729099822791598953929324324771722893976081103664418184982290822555543074571522686030162383514488147948003479607444961579944692256025865695778870025835413955590327113270380199647143489840716682637270223527240245914854545800928289523183510864457172552771855271496071982272676714096263974483978867672488163323385126302481936706942787454552804979163108666582368498460664246884330945641333983620091636929599660611315797220042329185269396402930613516905259796471538763915679602854609188607221449087813065009292254225860807254064681305194777056861628412665265581167726143589135459301649006753849184071661598815533627558633723742576130145433930726778131692230366372543591039679736358879739759285689087090665297217628832601460140930144937405396318369476305446949024238532091573736133206923060189114516901681479919629068863441911281742964535759544175347199768165953392121344013293914355934633966931848193202834146769629078464884077443904096154886941308761700259319697396785966042775184778633985347347187887582381416892666829541483175620468791507485174650215270416548816165567269534109095530416492239448468579549077047567463066621784171907701178923950669110822143138062284806368307236212317514763036663244098751139946592842778059597342906147623285372707438818669852727843857367047861736967548859908478445769642438656828365450641228754590910237349312715898295411658437639520971050503025511039580588905018560416265509345814629056618892806193861792726907881602848049810726395136905771879998557390062800119451668580686681348656444711497438828188331920121346105470094600085009862439525708367654825985277289496140998557592197611173399454102011674760368215959274808347880871777118165544985506481081773390763813992713980715704877547172796057493844375336762172806387631995260703555303289910311789565168896539267908120792760752152626496346955923568723129692923165072417819865382083702643851036194892041790606694487377622778732929081470320135651972153671845423304532241033460340867987400177725446817347720856615519121798751959695456903792423527880754599091255142844817857482223937144051010463849409387667550841277314661673320486225625032653624897535097146863675699207606113359993429045785782394708966694812221273303549079510534192357136863329623634008010407275193439179756398329646149612372977765638742949044999833420164148451220352585852244866995315222476231872187462973911345646612144168604269288967440645925416603216722725423827558231337209905365087627306158731489767822400912675177309095658269619857833141889075169384759261730912824452640715162668385393429163521476430737426337986742437900928213523387501833211059697863926907295528342769461337541197479646264207513395681392127512396445744358480730282275640328153860164352321900710829259875999520231493815570357693616520780740040934477325226453696876902672522357615105409792808449438280645668412578557621504762120003981895762729917294776546303415697203469755763665655875368283185026088992614717913705351757541754248716498720482403793863711785673981565307552281478518065093986251526523293998452774363971697748273618568179720208487802414406525653933981330821388627963851490820708712890987389174183306789719563780582199626492742150999953136617106614637446897526247139398847543487588521225521567780466743971734666473784515276414185274124666688947257195343245036378777209350015888710640216896652723873377799670948567531396586228335015036206811519566567439601272121496533588156760504656495827613555679140509946219803358137751633969203256660414439448371731482095945720387426503563140679744963388466271852875242130684810753320482047387584324764448146745091258914834674642992857953667103131420282703986441908016949163573681877885728834670225181896234904118351433604166816599921443020191584822143294801450759834213311500640816582690708860343707491411026897466021186051862870782209373980272005275347011365042587847642641122744261751512068725228184104124190651892701585482401837231760361549515772390775466653025040413583060853312651164124911374058428524498134952974398950964590923146590506287015555622799517216548784707438581180542489964613106739868107365830926103350591273255299244382562570298466995872915205091121028959285039267364846471710168383470511852774901517658477532491931804946173232895725499794172211654811243453792509494554597450551294066796121493073770993951065254101486807578912379291606682345187827994209824236970276193229821962602447160997835651953034385281107578249252770514244264000301427416981143299102190392102215043791612840708404689427731251856283695812489638991136742562853049126507249273868414303039368994101780977293984920900039220965935890131351717308718055738141707419047531463160872448881829576204234896871055009308061069338598828788519937612233744574999819677970604898309082625607434180293164224909508166341222716841454883982969469061052487703372486057237070034970054903888813689855073114452966168175673344567060623161993726798772412297524549076315391011455292463191752339571962951979932734680939292922715237481557746685095389673690220926845089807792671821404184205607497547863699610868753502361977359312281052265791709454648607696826557572780134839100289578924117019245068863227853586609451401964450109523759419454924144747853334761779941929573091141859569543033923856502241173961241210599152572107268818403086822016864731967091768602105606839619692149782518806293513249223958314387929544750524108682457945497588999470453791647548907064203491797769291755558287296768779523725255093112454716928900602726098421009420904153074598836320860058474295093513541587522782373131242820456834706663239996451169854411252172252844267704246095868359792895883659651627384090024715333298258847554676116498760089297589831245589360896126595520973349981225778018650644416013201129809051872539106199019508008728420994953139794641833384443659503746926130590494046212725877465878200719531730200460394885078722663164641119985846036841713341257496789446975648419173652874173224746594399001449343724369503288178496749110331685689194336236709080818840457818768735306230884922070503162296544401177028858103229177762151552331506486558524546907066089591262627813020033301807625262390588092249949088764842108948195791376981779946948841013352101490966392885100468306659124531973103292006019163532887796882865303948044132420545286388464292548746279518217507203271868279444993995583522609200194833480985984075137893847634004005447810151345059849242209901482995331526882333651979503144066882636947462798736666034304783747891831582164121859276866368939745120586293403435400019896211693646878645733785028572134736822539580670743657679967048194160799901772685310641587603635208390897986013240145498232862448752126602506772681158438724000605618597400717354391629480798099606025347090074883242557381256420650744239557474396755739593994322709789261413046965841384345370795616500702834739416466904536884822162298495851725617591991709394342097249476159525716654991476717343702208175008264576477597711447664040729683773527154419587242394838820614301636057986990901524415637594757004915389116131803195400086680964355668317151775762727355124778456611751251838931453219955659843289324106361559531154856869376319790352951519972563800696819412451541193564234293068645316286160132229083494355559593042486615181080681479283722378222898273224579861247280748862102926148763688330931117484724455906328457705668298772822472560079880217712008679828008551255883406813531144510713944111720542381046187944660907972557690827982090152808943676843643012398144070515966946094208737317501786574093667711996706287105242001119414173757932804588101288940825197153586473657079836896745848097399384374498448268511471200449270932651106446068893510367196122815215238105736223065117758309839169873536133117542701693177714975512708465145896475218014024653652362395959677469060907412394823718241681117209055066119051759884143138903559551488401263677843256299711327571815999146015475246725057924800592842678656330571252061685648487204854126939325896165547887396357477618997657984078217096338055032335413023508260952671047909607017810219672509714585535775726089951516047567864210491032171147207352293256897666160031887477672541421714106351719819130231750152371182261144368707047065868358349583810970606130874841416106247427978933213226803068491544726302674367660469203623291940895343793893963242277378742069130893240771127232288664200360743913619260841084053342189098692529328005816262273409070891963270311584084116803871610146713410669976744652407459314917092892556447647557360872527150734393535050153981261180606110954171315006934605463855448654147546890298267518603907839644462610580618574166539046635751744515256756908300122251671255329468494131184172454782525978234982240111632305836149312428092138356012540279755521851117896512850145168127057874341731295854224745475916051001371895307293919447829186771993896049787738383293886296731603447741030084168148119986717760131514705283943864031022368322285264321295942946968131199890721081503157798556157864446032906482019546790303291172950665492228897392290576350579152412573378008797599138984065227774126338063028288776257007976257294480809923547194916975678915894073637464822862652879123080610115591609342064210049725807599965592392580661783407740657088365607751387498647414197870339069983706735313627499811916537063316949178443820540700185810231061076911007170938936058170145191388757598401679224147176394763494630053669826449554800477848264549889332360109320822943481071818091343234492374300914036582818027758159730738317201251269426859157025811877697669962910475944287608772244133894251589191295365568042773689098943197717916886060152081294068561398706795787681686347595967118437088571702397926337267009418751825708616017805177004081663899180045973567969626258620441721680558549340065762940528538603161127960812385207098848588964541216178589483070878690119132881331860820358860101246822951714048268025678592651954375402222481297054234040595509468175060004542900967701451747705096147814162829439797057773702841094202372536751064223136634767994087074493776703738862537176348911045439881041839997579452861508735225392371096449278887099449852346390177374097697275065178991405584769203667014185494376609279288537759273666654233431963797572040950351332896320570181096801317232763909308004360926244374995416220102872623267124305673862589681646273962278783676133591803002825015183560740793607827524155792504845588198974765976813491559500187077211389579199211201039499421336015872325396917020359311452517888857661772515819179269797107619779621136686952522152928231486595674925341333429057551509195043499258504332903974125537497177213273294475424999569016397551004288642113593265350645648038855797472749707401340980372676019135658005351432339712431233391494916109542751599056352283364737958829884971878794221209795140246941788459835098580847824727874349643998184710936385518391062579746246279568333530451372747579721449374948951755752845642617766465297782475983708903154122046027437847496056070074131868911150307449332097250513732073615133922511590171730925236326333255723552776410842569641315417196266808232581172511665306239805441962830014690835167854744196696740964421259846233728498945449222836009730674463644559340784910124625820752650490915738772117876640394435373214958925310339776040539222788635613790623469964028985645621357114734951803698971378346295994125472128012889933514912047412940005667495019123398856686615457910344741559157206702399004870433352319972480955418787195344625491025486797376328729069766459162492564662893393681812247416020443416795044488789631141138754337589171759244382076670565367725572845977922535425268307255941719252605427698559142720871984369104890488655290807807386461458517622322596586389706930477910901041339071891405699674608204711091966316075635038141587465361405442502410114043550939691798061255081185411211842060930718260618409071491447245085707072193958031100325853391258670218137472934303511054726262740832271016604827265534586327687478822410213248870334448049746706404104076990956399083565400457814555147113905217753241258758829326541542698720865641264081953713147702155537215035272782975764180732915489149749841389370011547370611772930200982548823910302797803826918752486444367117315419054457899876551819977491209802732846318615477919597606927818031323865172689833832807247489847039249104471064814348977354564597905941089783403586545341948442266848419157043701091569784288308651574155973534339428995628408790469251771561325647958391935137904296202086329610296678708281281353129827088997809090076105825570319829453516621001156715907980433590633776392706717411213485268519739993505757435950096968598451409812320625134170418213754756911319688772791760111519064951143452686750023974674934648711202564861114582702260312691187945106920863623688217401359738027933850232669998353662311478381824529239884831298324956610603524411021587108414966679614048869316609358594626012827504873771105109413061012569613158251689735842420643427028804532434642604560422858901382545718918130633269978445263861375338421033467930426736684158709652866440700352548658281587649390153063609941716807794718954809698886372336401009581886619367720458194853828360231874086552975314234985630748563197016673538247837814122689394606826593618258296820324447229186493358246053830248159305516130980932127968106842526169660856944222402792234481961537017496062553703136309325114880721324276213416432258947821751303145178568743928264728008132984533749876283837309159753541221646213987384774782018626525009802914280326615323518827276591874092458585200843609167180828094259467223954507730626926412406355748161690282600533469161549020108178811305686236005286725166661561990525197030744218793858189947973319327939102813072157962094899591910531823351725095156272915326358793997067202846779303986320357605686837082630973460090882153765232930614320522822150867861061719363013523758782186419400120804299019791317273713703365628809435992415334291164891020433330007313668937402529709884329124644990084480233433417510072346554430197532868243406730624674424914947334315506788595861021243022542710789091051154717059938589053764419853700573579284496951471064427049749977098361982916096004314937346138765022901610354250731569487548524473040255901996717754673644070376810946039842015192710707491099280409272749920617712559048594725542889157410007296708362144433017668349363583492186742558771509570534932024672229607971247062741558300297233047568735555317455619446877691176332956795961973834210234163958901462458496373929497924589629311237940234270588596272391879745941587515484582208128598891533482044185904409229662143068844916475391110519322685298634347672831493708546492775158558053756336203144308217458011567244778604004810223730253748175835869884702378815455446737830058379169066957381402657490912321483379526921442714808027933248529935514341930900664548190762913729776390786841469962109116823921250703734351486104947046554259488496990908906069606657578060671090309124337567838321688130074113651271521411675212225214161690781192941926163357950195696029348530277532472510452739516520279040257491125877918153427330472079438564952529550472401079598631008688181964254664885165213355566072680824299597768082315925313191460272251842637276590528559545269588969971019559588378453888830779241091263437405195931776645739039208902663998908513768161580304529606869182370415229325882436132293779362750206777112601402091830926320878512472368404851533241845888551710944934298567491836594452062959021080528810831320390967846279802900222671305997177286509650129064894096172322116786427626080992334633128074664870722872652483900635047264267341407755664778423838942648315849073659051311028944426318477089533574557178864291589337616601185190731904374343100666405487842355154293896010348854360656629416101569101532157520288046060841054924905098200286645647935184120076693439413193628166489505173949614934922742688644377826887034005299964110766539649112786491697743937643246966168374688503741051819228081034504840958364349528742647668452520676990823864609009295851519316174951809271669844998306852991911495765307903207472922533842745664545893355524900568722581913661835429402207234266926689870811413449534272538627267735527629686765621274768083684696030683409476156203487720481346642727916923626774620842312527046027089295186583720852701853643127494499614153662509229994421482749582898365043001971806020383674173624678721511937164761995466049517734833665094650912765896988575870634873321296989946632496052522861584232868138500346514528889719181136625629503684932754278353206648960379555948896142698042381004218110066899679168048226333394440214184706009263130399106416155718648462738216131226043183366582787120904346965140474629906257131194200472311167863813774147122428350274866426148043925220297591026421888481547986295325293809941742834736749443378850053861068382161472622609522476854019009108956017641143481415570391073201337670365178417532437678092400949367923379175612193472193612527384270107561478471196828601505886213456078539266507272115163331409904145810821039582854141542262644258005827968495909470247097898076289094227924194278587893167960134394851392958926586977105102770827719782614178631936067940470050241072907234111337533968782856118139188796162236447155268616400907740627179856067807726188204912662196830950164859428820751116356619102928734447812322545980552213058251862408916318867138741909242301570668588337256617340067510243022474846074365583357520276616503913241868275038482626318012482109262280509772740191730140255569396517384981398876405565399467875337546437347563981711294254920325319182098734834520348677386104568765963128169020214306117612686158256748001317519299776702424265470541050199595612859139863396842708292756101289615941985588927475392884322639491484293070241537770672416403808659779119566591874070360870314416740011120107606521038917142735689685056200532221213596716410026187404214948313838284639431860363611900932871997827610452357490084593576192160863019146743394582991966250502016905995238688980097463587146045451938074897337270519000517411772344103400832353641656921571329897025743441126497325215028681330364253787768635859255703729046358488153004440097508876440694420493105595390595157067698209475498141674343617865846733681471647602545372399649652654087591693244818580396236366482591132775865608366646952225292593591006616888525944092541515863782312712258615710082911449214145028008394851462501182277364919351422822325658985854436615370190190574623587893396697722628818249364151014622232433206026635891403588916880011244388126693623176108675708961004381065751019366428712722065242882957341661430678188140470413672486362070977874900447450784153840442786074465350177586148572187112573388248342106752763796155261972140408086308140486842266988782425483698884392151927271685793722913016090174277641049177340293433376126909668178483647159763354674114775828439851410821036686195124605908405510181834392616090113125796013873129624311762101946316386056753208129010098810243218390818628135843528722000773431535366508070480411878769193718816881522659363351554836096679385482179358092701554322455001226537126850293289720321549110668186265056403370947177556901416487667144052498003776401263751834490134583495663238409081634224693868208050966560689656833928171778280847266584424451436128313223443904140647792034491529060120144871252503533841838367782441103373032935744648925113262529589352120088520718021153023956298973578063564634934209926694282583253620747586178496400198096190487434206675531713574018499753366261425161887032451329814550108915321873841929783616046856329238735478170501039976704970220433088536989673508725906936151753208617937571356522456004243272677946900855147168212912492408902514423782205086819219312557015715419954156757128578803970571194691878173595026702200335901822282740344351960116011271632977007378770722145534013617272013697701227240544902365127590894739403448332725161707242869057446450463536063051696957028306112250672343278008132669744181295999822960451409830858300257348820987479640945007372873923614440799757189476151037852785066090432022834907727775680849686129161888275863021692260304431080229847807165052852696441191214531733209379846209556565996395613585435726795732868824352326363924444987373194158949218618986769565481104308824908566101876217028489710653366213315468824075501799677015249183151850872128190663221759396345593758016177829376445905075894445688865327200721744282462916835943825881345300669005905108652755287909496376080369239186978042588579030951214265521880299280381792005004846335005789884192988303844017221713620774239594328228842011468683060596378674382394604941290798226957226710878382386575455334989008737328489242004842954606026532849617390650962655449710275479980681893045190986253038657468060611296394206783889962080060416309365153042180174078973769887534052220092409955248719618926262393398751405098373138459095901530252343380051559954675431025934153139211499763257133699049304532006601203924630012261015025621446250868409037743387949556473107498498851069463019827602084274068507153088891776483754000031771880127690495606311323130308870169092555398996551151977805976228037870473906952285949306264966982718824014424583075013262593923520029671853298770304089116294653870011299567083151516346285372638879021436396691693027533246491408733209641903182639985560723712094716468250671110758713892315384070812556456946542149797155066216583368606176827827065735534157575017430573386305424047965742400887938555770908743883189805339740577927409253293962501454712345500718300187390481872197895267768850448349067448038908489001854570858685561178502080311616480313856811455736287500949303323575702534689262887538151211821813948058796930479176447551853429424065605275825577826479761963687510707689551249385440347297478617830931116117538696573805458071260784324748919027792163157626324993605515751957087153266979430389473232817273287680640999999234024893475950535826596018013181386616419069437021885458217812066374269171246155919385088507678582881982870496049279272622436707928508328405013827544438480578200010585505009400379866635597628991996921428038630929630254602597172399796084362678567042378795528795527763425421269913693844342649803782833918725813040586483672650674366827400972211242380330450001986224088237772824945164883618283417367472796628356832338053963248382479032637527067008034692793588113618610263350814119557774758727670590709864574227747713087415016479879012229735689869175701746877265717702068750656287842851130168720766106147623494832696311123808615894007360752258296250380489082422926299910023757256644322590782443391320479220340009174641166428904493213442999326349524067051124934666465387956135102546876824642919897373760843677153965274927971428482664426279039971474671184459726033764950023424315865372293695931926029336012647930367307718412929217890546881748097940497235601089623455628582305233972769963966405160811897486560316698250617616753567948106888770192120020032418795729991180903949108823251382237809929363990135573952117439926820389814790439997051008937628055326685765195292129011610244906423504000086370103010619073734699593478257669369707222557165979306911575179784753054632714271628152371251604734592421589171770826283169937099744322921119370635654506209964733450115182492721908688920762878484996294179837272854538920804637435206847939194239097217128382884706814525343467380909390986913217791159639400894124485820547066149142633299892652493210882988816901505923643230537297044578098672347928223881426045372687628075902851810713977222585974270901532083536644765253945845914161170806534561860174574410455538887209398887601056191025219832856157857361804589363977112838468444446616626403283267492080664533085508305935376220346697843154363631955775789490541701527756723631859614682129276429348231675971013516850140827396311850601211381282383112632462944488779055104710248065117422996518416618854786269267679062770804567245209519227992832357552615900499399464689506894633924089568355093743536607834037202611471808789721917536069784218139029814597163990127214946398799246825525314151146885850778177215635122737669627516980096097528085313285547028127694089240414656725423659213940320560212801967730450816724063718481797994349673099023456722389576662296948917635269025022987860918418863421253129022901949858426682212836744039119707063083990579940238118658410407716044072523032514674411630966116048848706750099153266956430884618418186914889873186568803296754399937004045929009387645955195061727109163025218590026683201347842878490605322688543390414798075649457015380791229573212706261352380631285899104427794404529659422176709806440126020403756967760429901031781142617223095805837774039013288270429460833393674496856289888490952340723816902421104502528307431936488215583328241008989244877837429107915261007137788127667984705958420875365718100848609443613909531370381817308110651378407108973671019903847924107439385674344509562541114112696715614612030660671044373144301978157444672241651711235316889682192108474203978882587496538541804958801381424110974961489864860340090043793059749010404244005203650159188417575922422585478689643958622457172471086999088841695533098448781659925854903063307039183083717795470811471770992094449891797232372833776287471864448409187532336121448901363310294436240049710359824820501006961479860475454955170514403341592116572890971010519352144186686423497433905489751302382709636947548075535533087632973758218953348619614830713039098527154985262841728264141993219777052765447221185823956878350075286896834619004835854700824895103312198187990347498173775254269450276998413412298901870677713649425545255867642524926566125189291940985044064133899828950021089126708745935420462571318794655321878540975028426301654663307010045986551701325913110440189419106367393259819123208527354704182371751320888240554490071366640180949514671423491598466484390400245943159235745436220732878631853437592111497882340449510708727859283741020634524801404014040209529728282603318792988016001306579995464268569828761661420681166015773079635334093990921767521253804838099966050060738261862176631180327293361017715602911813176768793081095302678453147424342274986640858044929778188255163047383417605005391497456636631111165774988813051324567406133181256946508856470166255343860094127474570313588964183132988315035203510338101280744764825436392821825252193294338671631532479697947774693172184392711021347964460660601654214056794981975441854613225717189364782467855092361393749785378241186803164998190663386972378653646916746237209801606368731399046581339588166415587285135801933172824404019022027345385500757355098538620454858538112369383995039048599372276055043608304680646614570007234166325759086838218178704116942901864410730495232500630273889893560638734218026074238511404699513017248140228583207668192082601020431941703688233801028786815766971692863866521586238722312825419065972847964935558984673999086580833203302203145427927064422951071932204364884409257929315826720770688887304010591254955177805341887700708484409157401227847672068530722282098603793916361701921513926533479353220535744221763370969350339358212977034159258769568692697648664181652153129285310007974472424813702748469437071722768708757284931862307256206073385524830965687059322295728688214710448745634973137391819759565243614682718304775511704952522572203832360866825482005171488235181903216701512615899996885017831744720705319287505096228219490876172980672902231765404733456619039192281411637340938035013637535105949265516323675614939710408966632910463644763836081205024592166093483370378075983012957864546728838159875562734439640216497593899513068191836645328262190147117054830322769882542993147119275937230660707022300663301887373926339008385190199330748403778132380016004342926466680466667632624406023594766162953143675825954295519039717141857627955890476040348227461027976683560110754024560242510638220810058991657400705113715931931161577897809978437012045152638635840634942786506628506562562086982477736951613592530076428595156936087740220106866181325476342319152123357855986731516055453414111789248759501537738083839815501135316935627308278696932641546975542117930277624012005440911337631045223380296547102125280680808940351640813927473698113856511822566347366447757188724015933609081980685424191954190124820439959775057918535818866308925453504136520228578439307774297686551204927636033107836992304363506310826183474646930468979741978508924029264995840254446944807147802127956977145546084823951458672116345584720103907782677308894236493576072715680422706039271707096812027882043726206904381393998811114363139603210708256535063927292725366735752243913801207032557564253483493009583039932447444396114595657069950351717176584858032376568215380145470957250481417842701779734155585178074814691286411617675895931241432183654304843477175028523317704279694027970862882708120500031404804687268640836486172151676981290071180157999660010135928001296624127436886676527863640560148163526553127910592797497461081214523287730947619487894063222723247838593474779074270734052657767411461385796417483093670559434448588399397415483208306528196980840343052124260197996513731264706658046485563199041764507844111295288294135800853949742198952872048212018080153557321213799506746135061645730616037943839807864076732749922375460069521081861960322149887283454016161183736261194536277725701220204552404261081362753129305139292035762687377001320840830992500126699085559122341341635978311219211398678212512199826279863372655131906352267197524646666988299031875042944686508152768199968159581683511540323660064897002762771252267031515499299718851874878717314029551612809974525178286607887273240413463856689270179135334267975112086562030204214101058090035171451337844404819034282588759792378920520666160590038462043658187784550496429732068056504726973095279083076606662523215449895032352126181623055103767572550229280543529589401745930803495110837826642552641784700074751534950737487051750602799754724022146962634525932494296687007835798514613097608697130481073639291617274889975443771525343211411599265670379505606570564892268509198201512993833216346953986524543270767583956371615206768913604934797585876990937967867884501435365659790171672299086216414895702126456506391227791881718362848864534544479890584067419617020294111149799289841659397469324998717345574993947614917427077619385270523366924606471177208517742795707811790066513030440783086528664061694957651314243195650383609247955048440706239961522994253900284279973935105949727833826966872273999525215411655543246846554738806996131498784026259201581511703493925554507864874829740218246463326865508051912020649429675632673566497878241006746162607189753878385088177126238115681453142252773066371379102235108997332415136228696953665978466859780080871481800644232646617939352202320647515058878407079858139851186563085475867284614603912082024320135384472934920091930146241216705773698643167804510527158933892365512699086808190443644199720394106563847780386512863664508318812817656576312472833282603647927426977005092465703136204774034318795954204868097095503933358808441055635266163505233158391047057910183904109535488065051499254654081515233395108380976252409119313534559295356078650582205308118505663978004780918582077135284903343825903606865825381907288092718071526465832884021046891289057991237052722932065616498748394121534800863510359418749739380442258730437558527365313645218392926348514375629473389747834415205011892610102683296995116494862775358665417454282810924165074130724153367072678236526363366932727443823646759509974862911331241651584566290801194160001579971669411808043728938222204395088594091490539441677954500986461937753930435683787518480091609471664475863421383170441069387052643427235646297317865109501385357576272056785620037180712195969027493243233162528731233688807873010996997914119870808361287101259323828493182923006772722408322822275325494689873128866115027961273470877758518415436276331484563667619713838823411276889485080652239223649334803224427706168702933942949456113775459586888904285608333077062240776871359488746053198746448458034822550756921333765553756381389222281550386243060397837967968425946608504243864874200927702146149526398596217303021474501409817718264778123794667574583293746277780945018816576668283342601984135717794459359078775563131408653850878834989379207034124451865385078955571445920736410714310657857690799151029415479361848560592830188076557388121878457290120618493251025975343497571485949229166364275416360163369826690753259771830885050669274555043557841313230285540196897419044749639648389307617886997976830357421764966990900157303301871774172557430239105351924935031864500828445525290993524112018965967789508081974515785731956947721375667451626746378855739779002575811342850173990831892947797905695204915506644111038334923264920970656589878154486119618203729221573943884350025009074511404546418176284348256065744600207600978873568143603125548637534743139128028732944709325891274267420107684975933653737965395332542782604040784181465720708200538965433643977359964483660124412829373218607553284509034226446237514935590791553699079033144658764606124956804936487523096571108955661357625731614182610681819948483499828797752963159790146758634502707641033067887543672667796735731280260890424462198455062110439045864206729619677866325369146427370070645315855150122658826646446192837518888382258422753696285957330283158318251173485222460210025262417282241596626964577575888827277119761765661126502410828150111263563245310422831419522018548592334129015230488023830319341005385294087705444526992605138939622101401910396816693004189882376652766265285789494009083712850513498346006258037739914785185651167832993590717599943919061796960594226256199668817932410838892507328786779049038864820902439873077513360829181721989190328095354008004645222094458348046283139523431340619900578091315747372907957273402863614317388643817878110491024462349303722189192593256281524673076057109591723401900111879158432237323710037611510084706667429708147985784366778161130532366607124015147596205181490132456220052536427568379330127153607417955717577744469910139207277199947342284186100226931422890872915006237321620499706215816066417617570156996020784349811954049425377073865610186037133767584241461629695770987060531203588167116390303050917529179618650739080253410070197619042823940678934485784787423718816975257559639199275934292194045794671955785847357834521287158242842574172019034477037367276534637222220429250987637441584253797795199292507499479122298003456005945689498525503843196495875822540554729885117102215101270773811516098581502514191269383221779186163277048903339588032647697290972552559361055313590886176219701368587473615800637821457841476115583530386359704085439473093523923001466056932894650927038813179495846690251481401202880559666947692430186079360174138486154058048842818031792857358154793035752506059601499692241046109228043199301050410024685626957610073676252259000713889256636403854042097993510769959913417719649684121371616334587313881366226606871246136362369384330475895489680413188934462870721382051802884039672271154019082364601161873036370238227345792883508484056295205973325418733671354695618510522250468624165906007167340789907865719784334775844708210596011772913407621678042484647918997027991769326657140758392003399263647590066908243957398966746834452612097888964544909118898933299093482044647919115767798741703126249875117384800731842804569018018761989071986043024889068420785166254456274922376375358293442388226477559312860690232867737440012990348919537130306322707706107451562127295120526244796386207523573950898759004816233928038467185849046441332836947196806574665611463600784256527898901617977133919709046241338937474001523613287850635351683384991506739599114728983298644387066659260508361496051945472581354877567588253239999947522542564948522484370270417949775211394152623124751982606421432508478694635959199816730598740183703905105411068363939988185196766309856378956728224516216265780278315675182037759367783181898166650729990056731673494789432671342189933118058609939416106811434572548271379473407057039849374818513414818856432132773614608292114071702831215577491895160939751246229288597406044442272120362752768481359797635735048091493956745773075026413338583846035491044869178828123361047621757105982139318197581582973754018530826753498597403397713397442659252951937241484955435486695183995186528350424448709043603227537664067003452068279498339883149159975273735158830565606437902239106388096736835512042268981569820977651000546650691083050023640203750589682268600040637893825470429425036213214010346021308349201316226728875967967442074395238670814887637346098728591036649068267198125257692806276487399880386207623849926416281760855592928756033135068315832752502668494157823572914001510940103747834459878040017559838646253682565529178945937642590048969443733512557715528984451423525920128110535027810309657708223870278382698319844931035426670700551580886512634733095738914662202556163363699270066128562240627478348246719385292856295940016934785939824430947942968171496477702087389283214172801841449873440530338264821667068372972622953295791469197745427450066703516823882732768980210230761758054752203899095856970230734561874295990073645257512474121315814381897327437124293073805035038083705716894256510143758841041793472041043785982066381506063831208080009822244606570599160626644001942167914086669856319690444897115866808753699175908430076280276709606700732399721295573000793380119097900493225635381938043574844570556886746317475482665916813110376197375712389156894346199846357681546672361490738962077416177481955909958178858277005082387320081042942191993148620225814909191371993129563957020900902834452448589782340082745413764384031746092528292883402316607126496087370228357361740023779609423282831095978102227212521603545461694205439193044264085280600067262010101554577900527580007289795304888996787070267256050646167025557630261788616848115107219896160442999214960701544246523548957798405660126303014720828811788832180990028240410173281420921490454205861240745016299195977131839887957244502256971332502930598032155391428017285566736421157214304520067672757889468263430962064097206240429199321094827409537926084963410058225744759547691440375945919472802813882734075354049872312113966150643916609029829124451955308429823496746693072993429777196387086076754323679356229557578091244065170706444229576936224649672389105293697614870873977809377349758032626902843926680287932878716548878744016311123870515870406094165996169765018428640106313581641977002782896717659718024043812798873222426469748928664447249063382113263940602627597602792423974418272152747367274317898165252153615110528935540868782864729425199272014417614866934074259427418560875341970267940203566368039001121207758003940072842542493086079373141425441659730938490087920283945943952154332343788865684920014876874527755817098834232027947217706757776494813260767093670838054021797607115417829232170762518607664861280163592442066654336675262563717924756260013558584016733673145438091690999129939636313458764485657080750631659297133149871103818138843417835190875211419680240213301659191071029718303616771949388156935907712843909014329318879941417958665923284807562715424631993514236670773216219974795713934557150811945348206447528272242480132272376382772668313682370345670741538364535791919841932273601168198662709686298887291335162737245187872591244431980169049618203194797711967459462944613378346268612418914658240616921444998637731592505712400797163278333972842434549581208426548880321203765076076934160958014902255535667518144395362092024556363989760095560361216193481612979304415214454642022302492319809668394658882626604944869200014502830663584317118469315861742704864113556272739822722807758860565139609486410214864503455830460111974272113524896476892515872066379990831990343573732842638036329380915437521764892905433454553752445383909053475081648968936145531313972337223895374587655958568877404236393488587431060408482123923821315696073411810932669976815555758720479478793443279468942694093605999515344600225955031710285066382019110920121160682027262063420631225180533998977827239556397736266570874910685703822452107429426996255979983473508475200976104779309354579391982196839928076974802851048143920207030150558402388424276069792163929981328009358097267569967470388878490338995650999015383559787974519144911725431520768761850194171276103927372308747749045617814675677751311475560358168119752839538740567058372826176039453971241506508487267431695531172337962851844444978992888013680129990035497013380028026786783003806786764881702210451475280833849618624445145610818177735434179389130455502842977848044993444028782683216995878374005337989606681323502667017746759028531798011226582948571761574142337691011850023781031752822604508156687728774244552306564295378894421870534176224921136351914144284977060748371720321719534700499338470220827246501685213302883437837495227196515528891898892452557402682578359198628080434027472659175969638072786824089939580274627465838879630049149038556055030176977757947018499956083092753154456841523899586771216235892739100417099373003678163500579833999803267751233069760682495196455211211918302253318271470782275920095991291439629988382493003247520220599309624687694666631856266269954868670572148745790058699112365205485440214178172943459903431639050924629732360271256563239577706656420539737997732845058994293639276081079438801962769004463460026194006956519384969629552946824017211820054147508758703389774637227702115957943739877338533249639808559948198676159321282547155449057341204159793921951339139055094677038834149132658221187517706137807730140238604300557553650090309394399969817808198664094473271692804692377842075818002906641022622942606047415238326759948071249218460633742253901460679672428938115215647912405600488999627766244995433815874600789679897911992787255380260874649308017583101078964880304961666331708456087674756248886752204690788165486588573861982430110818764911662769470762010131268933542501605372744860860253200184023533691230496963824856052690452300064916879234762904431220432300872833408798354977771750488033565410587221337638747857539549145332506958147606289247410524950516589795069503601623937834818793811245283403965133387749614377211179122717887186113626004373727469756817939483574361746194248482417826828621683775514002350732905238425901712667886192924138040656874356812985270736506203518939770364576190432893928838038233634790713904548052645364292016184370027879636139959635895065358445463416289783954997681076002104507758201513014285552443287094263460532071804620699096781583196728125462693899121968672493406461992539509448783439637623735892474533157687272848510790900847953459993291174300740811111240039820467463735698353744987530309335009427952846414692310137798602380790890945584570859678432030851400400382838191181316670606430111118205644072693517878186371191902815963054778976628904699708925639806194810374827247925501874268021155666078039958092382609088485790786871806000800374188353984945916113476861887799350123917536625111212024556536979809928445205460570094672243248755865975333502766842809133850400806852064554521688775535119153719101463363882848220875592163907223123522107742837986352470791352393612921768981488583763250939703047137666292320249973056641538857211971419320654633856086058001443896056353609122608930169421721421890381917588305587331103382788204989580899777583050074205590323672879875231772800188098203732988605457960771810378916805628540982395343882406778471242313469631649260838359687821509262891830498378260201141097236323040482332664228735461024603902053144875484305116099376543989842344309088846753848430160950466831615579034175220149509028185843173009428022065180552933356402540537037145690830421252527905230159693633183642231025431441795182029433331169992506434445608354730360200872983659830136130862526925965331747197417546126560908810771521344408560587635882003657867621301649179500984572921995515041723911847763810501023062994830092061553387423848624998003633393327924103586078871519132565311693591595163293504045966813475807018748262256012285130704987486777139932929585629393378600597074149390162803399232486996752937917423301751293764194378461825962546584714973059181347037867614940537225349319109620044734587235334960583922934921665713835839396059504359027122249446567230849825993829457698689789585476888688498796544228997519274868242264616117540599451989192847361756265697292769792346234243959722407314607598741021453902972161301483258034158663715627350520733569719427343770528499267813438204095712834744614270664677447688973663235017378968733819749245290746588149433389911430435551499900446351380365304570099242243331091070903353756592461351558710936272315637763093016975285617911366257508658639850887549386718491730659661082692729867266872266522756711990632016720745654592704551951902091998688107936292616418324393643780360682803027412739937369777935302005941490564974632909755779808152926370360274835092422614644550230595563305791512606198088529874175530876069208801140084246927261447928029991146259071957791832686554269807976053505601038324834779031474875002924093621184639685595449396230482002293593740411162883715262617004584198002681896935551908942675645190653041493086480795420750911095161791057092688211103168147967484782643652942455653390565384178807675079414588899290225726506401583980574815800184669938751923088652648354911341649229647632582086625600717906903976915173727117630806986995625104819911461070725984273267917010441673675520971195205562335829341602023683525567312639670725134403582642270441232738567493912221637028685239623587292855809074724817211166696453711046508406640166143222126265849263996355785541593837442334067877178397103585942429961630148833338490387933806777176470088917777379108698220748737308436817603327716787890949467635364948922226364763343784921186883032861870446557854481591360965135867434977390491242091534069602463524763110014570587950287033566207757593911760419499339940433702271123112728104908629586516805918607351175897226918254842001118894217302026385864911458629769642722659405144663195159420100361892547510305834273520687741009729638683558124163409924796337096301908022340277528500242053996463878242047429974756204631809055642091531839588400354963824856685784344366726682685955638872063821723690308507795369604060493804817849713402245643784140642109216625887864315898769961699678942387017600657378816992711213914781036575044091603066133125729880951513048793704781235221050040834635945489968823724939277409117238854815821993218178220405009450579084970323685019475341180069162511467465879583026351200861227552316685028244508203153396524219763298826529286958639185158793066403637088275770122586320250218495257002479310302922188476467752525706592504761104091638954550817937358330478049570706151862382520976062554428007998616345366730955359772033704541700529693835597413733052487865271388329920627352155512762597580332062927220784036600600874409804799312597115741134765830644755005276914086545223205598955095833817849039741582145743318129359655618435232919069607197618552026125413624027942350665491236605907408422274525731417476780379265806108018057653791465917521577459057881124871472528184611508515750955867703358104785139728019196227451879573552359526695044143130406361824100741629525822183352980830943672912618562242310373400363833052701288055894134749097232338283963134935929217160242399680643458295792036494483003013961000085051995045728653923810716749623012363637938707957880855228574069047251903455745493440334990378343208286686578225760993040303724424468609552422565601367687617936826719784186498736382421867512542328291942284159885735588647319954619516063059355482912860250670557075877026793448218772704517218045029844428799991710716584438462923174256564018451543652263339255245954981117301438918684936867700258315793675217766836443085025388466135568969567903311511143627896721214240976660320309239546412922488065812912009570762594352075391179731699211569458461370784053864593007996353449877837008651056201367985289464266623379220026819460157837567814778377829853158556388312265933882310230133982970706147414929177376204469554021526034898823633694946104994926302379872248685379627665225326118136296374861899690722931388638344424309812964968321528089458979516942020762396784260616694433331704923429965322711238366159446392447292603485327716058724300430298397546708284199508302542134882687010467079073178108695073035501950098296914837584914899400115603182595941494643678396978343184003520548570742120066946665829654527000387048723256914953614785242202863990858641378888536943360013488738692625796177315766707558541636828409527707972211592651449163766056208133535657789958968789833650162175761496996301474107181083653528716136624431592296072427108862783009540750804078986618896465695447870146588683097833401671520737442832256373569284496649870153368292097908498136745090361645861613913236831938009502426777408855048270830839353502991392699052190628664756609532586043269453527487662771061766035883484393061194732679469773460701810118368313626814183612616595711933570097742126417046988173432067922304447058995234175982774047666153983353571844796826573602314938440723953902748505840208130489269327064958264509053178092888219600388734572449167552718047765423864388683010028881796071321631595146136893505698001547713804504430448549675598902665086966947599034397100705667074774484043929588416826271321967027610431886709567824961728099994002974853415403820495051723598061563753251996179624001348463287013767733472331630297209000278775021595905164621381776028225994380554197417416770277080797287634168088724719167126285216168943396627557385629331776480875926987941435553272567297456309917774665550949016200315910867040378382255578114638603383789469410157378124207393071031720982761251373842225060580139781676909797358004110505383757852131564420797715770751329660487889924501193120454226739891610928873870522837191049574367244403211608947861637385384194576941309001178219045095365358788151511533727767434027419117546665410137264024254532224206908273405825158138997589898818937643912780319839777700706185442226116178069795426790011183909587869549986378243818708255286837736210841889215216415255838762669818768581021457651949158826456453781101569165647929902703906074992880094145105691931967691433110018104297870831100944523852815414655231737645578684361523984002439480400817870177029007949735611792050444089818634132153663985349837955769715714532965287557859299814753713940481660360358315139940735221906993808757328722575653457740841022242559516967152548525662429136641679632324285356110589648969501762280570314612962300028988859239508632731605403847807202976913282953554572893540758391171449817556705772763090308488361846621914274037538098666957386568873728278508029008387330500568282259313699556483408479021477972801431800429187407440218333927401629343775677313816159067912097011679252224303787988011177176611892499425118527752702799800608963347384894311024611351809700979878564551859765252604505857621946111315637169325284578140319121816224990599888500361838606892090089054617565374430824891441128732246478159194765676280670317008749340937750240669156536280788751520100398239652580777135900480021153518967891409104891023485636615675677274599356571683721605722297894368251958551237423934757523588484520009830680583030782480831566958254916599188231184941815176830699591088085663708744471606513040667164821882870706186090012520941515015652729879679837827882815970628626124283115385153638875372786704422010585373792968052440843952229657133706917397801827170368208880198729415761431536863576421456134419574111605341959077281964523937615731131868679964900438947020782699534942129175586161929603509095694749856710474805316176813448028635150725107990709663833914589075039289351175243377984731402077091168033455339720192255850300347275066749117355635020545444121377819933093750527348559565397355439046981361244118156139312441625110310076972079846624281450437919071807674852615551118871591957254057873599000624368296888334196063913401794429626030116528948107545429651429387027528187651547397313568858160303943836482759068989364176439558712811588637775390203269138259224637028588215559264384737272436197078593450742827201363284504800692736437520569795661235737612178317181862504480582345485776243463183900979580774765078434107330954164864561489374561416686742267036670079023028049767692183905179434989387098343592122454066172026715905491617412193077171004442088454113412973702043767495414808884428148002885803165567615282792720783548850574796981394954911947795452645902155237309569608465932319978073182839345321973563172687092467994191787567758555778228322048890826586561594173539061411436570121858154440016818433880783279140167321490864153972962490314310206531102290990726687809797179012054360277296852879116479127651902418601307843391153440923387892654669249457602634020391080039776441750590132607961653675256324172045030282664393660273108854174347917547956774205144535214650289626052832611810529448116184986866792684615745656045519395144231144334575336116224674600000681361977164044816674090464580451841181836832208988050926291484138668470107699794781989798498274650360440063398048481776117429167528717493421504683969234930978632426730187220278596080800850563901352996601549673804293859778865596188739898672763053511356643180384521771110448921176940149796814261453295340089669109694791940714010379322754255760487199869076241098645113506918589360713220275974762462123979197280943903989309428696716793566352230768737624057640781486538925688640059772114815122000907645983114370012148215202414264661027946084397972571269753411638370537104377075401874515709555895784368512210456702334410933733121366062128605363717151694777846983451935559391562651116713220877858085301957402737800879527933149135729440884848351124584200367231117021921889017046315785243868143217645833326996923532393608913882256663583155030663981653325194395272141738611729596214982900007467570213619805725781175774662783338680344799575867772295732806834322491713432534408704704799613464621242052395341438227102645364420715322663057699164608737017677362757967426877016599038348162708063532635997558503623357183934485443577334261617634159130154093357864280291915325389222108979281161077376634327595789242535198703851727786388345390530773130707864097951996235208731880164822718258065782308419686617652880634960024265391793694130420905527925016098150460372449079842446121444311734490913627523121344789034148950640999692846075402602359826574487019686437909343377219969938012382518655106310023983074629295234845413918576249715318581095197086818945042838877027100796371547098033971970596154746957062648249154601636268443896799210624601105892362646244200445000284094890054140469173357941319534105482732055363109923430060278819077590422741955955410308720223157768055536665312764763243123886867598049026483677559020763061824528466474401766517883002934351617617843765830542206589442310295474978534688443630522744570919668707857606505947625628813193627727799503019824082652395767667583291552312747725320026610204288070893656313282995918495058773003345414229404048406311124221117876554491101562517168516863285344259584080281081946648766710272220472094211468372191313136877235164959419247372576533639109188698431040894439386804495966329116061717346061375151767852797620955203504397517183039181761890159041867381298639755578388877705851874359885892476220620263034326342446764729084236729961294959615434382686184054457349646698146467605343869977961146536230949938926118904754097604681353401613678114674082100805910308912704329753179573505715168688774705839257832431492965415866165171471288698852185088034551554894610036366208594160375294358312273764617224561273850295041968463568507026464858471087987686298250594230172227485362561958086928425364212216743447525380943099693226747049123492553283972253200190657464650484580165030531761569592123619815744002237395247463249579117128032714760519508455379839019537957682310620667473917369657092548366785322016482567417791245400698584839230894432438595812174968285655309497524290303928835310490071045763807380870043456259891573963205987732543626596702376829123449833248404336549982807600108857215927987867468230424943915983774149542178217029276378402939953034620433097388155374315670666528254818668718262901288804074287493804336816387594860364162682469131134006061892131269324672781745210606506513921300035662752489412631005985952434348424508493668525263952888242014404865433523858629501031028677968239996383554151681347667449038781973257407230095888942556680155707400353842533768946875487221938091354909272332132184264425602826410428814696162818989223765368613533407755984491351890394782296609636753966670295267758737163264591782988670991626754925129774728310210049626647674782648007795395698407689451327408142819844701119955748039190289271614879449221527044140924117977407442488258004489081376150170170609924503845272397041259848770292123880901463452856275832018268787093280481570021992345150823546461666390392786383474058975201359452172521817704377256186878340736521389429143787600120636263414851159246036364231866041649944763872196694551183731345487174761496856631040925705252371709105999259074626613144606235897686076526540716995076205957207591908382244927427559461637270000897492363898736184198383927417448464106262787910530629514678239951919243528122430307313932624306125528043893453815114121793942892656345123883030865664197120852927046539589538182652206278467939910333260647864935567668276957111325745495453414887271466597267449169902139171760940463626643770130471459331266962771066747753997633034111829438020261363936571646655173298775804585534004119964677217648842761397696398135904176736704394301736540766649436968813371498373792918852616610530595833290262146172727146872873604146680184708203096714071707033651274009262828380760482321182429632085023670071762536354694880406069712714287128633640325316765805516650934174442359707466254164347052219017767660999852739227194380369176020193362985794976528582657882752579837628548008319332399747943596004179479436768578208970901006538426226050947646169126315751889280321697042104428659803756663440812215986849293825594002137834179498600207048912735934245086068847271314002682291031432057726662337222644111255148922627316238457836588279006652018211887509988175178898679455876361306980749673794794613455852441346817268367620890331893206194467085490596681418202985877320679181034972872377455562578248498159760152232811168561798307122732588823878891049226356533670723793257777564347370577306368670408202443349534099748836435215192930876381956756246180751351568427289535429998235843814469041183510699074654336988216724379599821480956292472513390655803719106457271420885076677768015416792902418206434353546116736782921381162411782114285227965953793715016964931619332858652616219340545408289770934974356612297488234489275821370284199328673048990962717095040468038978174260647746999505998671386028026362403719260031793769560874288042688887568093062443207111919710127972964052252040722234250407345714949582781572134392316308451340614489064201260120066649655075889828113299942324133065350609368552909508785887529780763340925936267377611249447575407754985871351280141140601542866820589360308732263618366883723191597335241158156811965346269541260775590603883518942921627656722115756887608360921284464168119247808115745946072118402837727704341292086985993171112923462782251384756587857244895410700562211760032154543519881811954736211326717334574711719315580648155887997999400815100860471285455015315582060591714270836998075274197481554181595528311087351026900727758148242857827790977908474298073586393725408149043672407818363474853348901822356577377379938229502514634998515444870515247240655126556651618510757857049573104415123672576756424407852670924134119628318883572797991742046436180489063254512068064348212478974163249379937842958895604736920195777841001175887776429204907087214429795117174256338810334370228200506163320235880657481062914946187555741818722833834390928643963336993760332127228648597328878578654214582396976571208045083988049218708101860200601125189619414988865590068050417872056922114031944829102613657235107230939978498245580660886927310948198951229813561103778861715184476023389504067596238905540754337778618680722154139101160640001761668311726197944464684340645950647165473032913419902742728119362805954583098368623133909389954363190852275082733944127210587519256961494661707064458281181277962716315900842659707723258167578790891133673420431132344954273597198674626155914751466338113593539243277223104347895450733505888904166712615138948311985773093162318495040640583878208069891012296733296981835743515342172871694775071850104981399942995971764773050655737776374563633281412142863548594908078654535013039722394077663431722691708570479650772773949020547463470676486878834106591422674930655807665145570149841679274008494184056049515917782818609183587637804613580997466620508351953175948114038445899166307102683256250753301769661407361431542510995093230781388513058786563353074927297129339772286571534513401373774442212213247426661465912409363927133331249864955316772682667226028602141957137266354546638255883333404448456214283702540982407779129755224731859378419748066376254981464396119795537225696146706980881151458453363962855518269442452983644994270027505361636273500281962131341143373642807498432387396221271996907490174683431680453942099669869906652611170551655447275419401493831182781482132189889787297451646164141718335067849502350159273729471741429952341870434327992310411011775480985193419946515384160249224789574570233879953802837866912580820122687036574109623899322779221055326307976462438442485097148425054979521683054685866154122183660509569210029326540523892378596708252796624307095407482252536795912922766387802912165894726162431272412333482431563576878322724382520611252921391467322525110815389763156496355748509385880126753829871466438206011641639527994448754321145271008854519050373696075176893228274205841341146161159822662327513646690650723316800583698125557500329692349451975877887906806843693255282480005321228815782074467106012459899921749342896184878574736770865554815550154822575465226489595140265036267867248429163463698703137102711093054258702324693311117260925283227936384170472153975316794891456306029868435900042814635787065402409430960004144765056605188690383450194866389521019432113494764326738939898126443222106878807608029649457672990583719012749913200953347085640811719451814223128388130672580395010815202194557626711588195443385004022546696829817559783664373160079506144791857953480120765178093284982099050869581584786397517167030819353415440458321987634746922916380293903907061677281206459182998396553786869218554645968539577393024230667523534921816456667773860842347126031518534893509609037136994082414986373431278590830648669340040779324346161128097904998734347146091560940149516065320633773154388346413881794270631280065451592232648391420510359715848124160369446415407325088121916806591223075509248033566679967943588574513701832115170300173152778360385885910936648307674295284697106456628769723396689579466082499453710674656531554658704552108719885088834844123504895836171695260198580642673647248492761266153917267388441175845114734591935151982100322177524692284300045268431261111705284095135644060792492716392462895384074485584325779766976520439319863510069281377872135902138179700114587047166416613399556368352150193727947069428981802589970619718706230042488002998461066268002887742889020483719621025278205108894412359906388922395765718920630104640179318238092835293221275195855808634642156484616989631527118205599256662983970619098259238030182616663510316363091567894048002552522916162060975672981433356613507416002937676043532511507443646631624835743348872269586567771352930379542989308695413585694314451955583884550770770737387394409392719179055764509262882514073467157465317546778066405584527763034376880303911165962876810671716744614025450898728602260650357866198883689577166125731863819320775296896101088161844214192191595865530557999272011819814093037700118200291064117481431016649132612853718399596428338389868474288487376894798916243425881198029002418195634295389945871462908048916006011428306915107728245255940355808194070122402074289516543046663445071298983561272936848586306297856197590145803193694949864044059714703230535583018077667489434883670938932407971164373105544530329956004499665319386318526814752511172749037119654771420132751960305803251520138092711391206873078667576917792749177317391272347883301166829669922578032862830034486582426583054171767079272924694252847865297760621958262683672819030690368405915120111191667213348349398182752622983517199728062921992853048037081940144663045777105148350229523223689466740285812046004519580317737023601353139817115210256702897399883532871868279406103869228260140985362594925185926658778921763730304696766676913450086453187504002221551405474359537350645527790494478791389595990769305568998899221034408976799576732306584031300439083097155679997248405036455668646767014051739367220277014914276766900607696496669608737030515509572410903034748527451741632524362449892274834337044123070875302267846145744040539865059693905395394920339896512125617845020041939284552032113513075382475535797487529168067842207265636281504908010068665697384928735086917922035221595495798283532920481782367726008662684973632833163764775705038710775818224875232121971443391361372923451177041656252702050891286202022717219153877526303133794536292129380255145304740188062728658448255290083486973608920069807473612131985673859704796117363893292178259026907782908883191132085047956606919565685171882345508461201364814768884397140866366159601996998194986410134407190995325359582344016235858718171334863193258557378283377290525305304103206850628645025368471808791665209736150479531205449596026895765520240685360656294782220784551456427920737020653737018830756984351123029301871991378745470693576108289186602509550464002461599890830983912726725762208357020728519567022210058204668410553867411760891866401330202008062024352409205094036262750880774547290331743519776355430150730765136690790827123085844268385632057909675048069365460423869194327870018494251756841004548417740845277557692928958776535380680372060869427194854695289543149550339823099021194322258105095092927455622957642789621981163361390765849689720085373046202293644840084137654781393790184833991937615116492992245955328499270538217345952140711784579201103044144085490533209244726375766008120171156797446027673804717288160084146321557816113141004191126304994096519498675659194337955291445855200725512429208119186597143322823710343020009153897392489790097881879754459718004842667289277547364499599494877552366345123808230710549794438575008990729085973516976161137199475208639795387426451527131288247935122574508761066634492547587399148067789000973077102613785612588361599898632364944866263004203799134171629129476235417105442265393766710754405725434680005249430733200590014429179704594212849235099407468639832717905344037101498531588179810521172523426283568665913863925931302946927523022585184591996124241251964469897415261713330396662870560808159471134038498855899864322705171891427546386405596893967541517445565752473175117474334816665756541374470654683834201530076045663406197255727896060376687089475129919786569037818782999296853357532625753843243242508302017601049848342929356457511436068882710069282833900554283204625181900179661967769038678645942160787172494566747271675612995060666474895970509750727877690320651337045113435827551964648471090972171811858107227737492003529080672045433291078757611346406431148553083023815501755963543362150539385101120740142731081164882619828346039990847056721126284981688918977612978695651826126863245741762456986892575993842508888742426280339366852141618741166581694319178458891260361457831959657428617522638659288754366902941308481053232922592348593600146346066505050379141351032433470201096727986824048418767059593374962542862756262373409632169075919025470404254259218178583252836999502287737187190307866809352772454929904674625135842274012806104792372239265524787698901110242030403382876603482581983812609103355299783537116728183759211556788839986165973493383672249912721110771819985943425845110383331670747267938672730831516590756188465761492697496279398793561892034775388252151781653424788734793327876455877868676018511063260470731671927358697746150815690994028209983350322747867431360020409761203513708431555382544745469920133418896432059266084851777322283649999433249269648580594347165189404856263422492083470083987938961278522897550026595688923220003215627329279279686912487989683059139324820358438579620783349541534478724095050799680444577186803795742092518365448231839405809354934959638114007856689161635947118103006716104887217659277090218872192861766761001002412034533079030786731650477834934490452450596127127973651406160109610148207849254196797403520706705684462952687063578513155416105927991626212813594018944877361325319110962167929608109833926091707726784925897202860620682520940219914266448063322235995042479784299970117671298506142125816576372896465684258167813430320456759388676492911990613220668097680809016343409609262123851782115264596364150350781500202972635996814908072479480586781547548865001198794088117854311578765341567411062965115541423025686442359324924169946772271875129404321773406194774218545796094088792924960878615610598524719101270943526178832180900083957965374894445222255449391083626084978412844042044158458351506372138256671098414935623410060295321198519320857165305300742800670023444040271011877350872285238332213644266785163444281809641331109998342402457539069114291350347681165921238509593563823648568137658985461391926909447707408860599919834164532795942441441745692927113646750668802223559677434296367127354542156158726101746357275760047538142429571279562237215597175412515224354931788180648566182330324270475339602844753993605059046380433411142567994482374856881978479737575250501810131369584076668999959994261403846397296078813410431294678509410373486006208248808780378787165615612320352309096185854450536253350390082193318202129915332901549382011443456989411405629768711297810594246324219658466202109619737318153171092886854670823964069598545335718963291938125789082723406748162877535545160829927139471339882218450893120320294070884977819682495944169412866536069145926077662675915091108897520152519847323298542102838887677839477319340143351344443089972490508497926018372013541315012073432321115361011145002844173270233738483280237914982445652291100964085955103347671708700448322421549884681753458777781565733256668219999829445032295907224432896417675483020479461527553001869737039712601802268990562607468815500956746380530481927626825844360112607202358930160192826620833143767513052231574295376060718233787726960021136299434838020790411606250590798768438577202908893293711172548419209220796160390698794986491777685223396867476698562622368377778138923995924571782435067791063931524362937171062369860586234237022172212092870100893533609128049104994538952912615006191270191165998467372214812355410565768107102638376930994776703786504180033520416952517179444329894654357970039736924972416377076813958034691220058865435098014608899853559048381791096542985947314205533468146337490933729313869431936013541969991984694207832530053303680096161948225256269680324760722500172810642456398822522892895739271112793442241435703060907325197948945508063877886970281185490754858103059432777506359082436912329480139930168471905499035917688264080604373903914440320412055516445405646144882308333424513998515292668516754895984303597987444462032181439701633653093897153042627388115347541563220432208344801472278602570947132060347135272320551495229321769566642765531706814432837642131196867286235632214698559643071170124040989486403497696349343390921803952975997784223150107778060934508143588594227309543281999972327218721458477885573034732330613064293282944140428989647791914672820613721157820298797054124960526841102582383208861199502896576696920648804339215598455723154204162761470489669383252632449856318334181760921977832755620172294336787584196723392711966842970139915149297510298007804761215689470206765837256196056785599955497118918116286580679297024510312000834540966173722984535407507231684387805552487617039365782791126539193650541003266714262142807785712402242903249990098170532931831995913685868772271375146648718133917706486671108288694141325424072299715438234495574825531902799916597739324547993857011666323124717674862417076102109687726665077763467076939150456351235976619834790503008835298836132605344205597015287930299572756510267678240884728665451389364089328375127250388957732045509973627501426048989233088397338845029109971788537085084401545763880250308603152263344216661163569659770024043644042959676132867468938284779409979944657901258925260979423242020949510683878554179591949448547509861870924406293706118235946425743730983212945917338312835153396996278428382744538970788252623991138935131082068089887082774156194825799829724267494257091715167109786755182857774549886044156864696849854211413210246809483890098403892365156306018519569535724971233904107709449447914572105938517296932807667808175928738210358617258984749018055364925975468586640171321649731553939524850114964105117953112968546352538836881925007576014915221401132566355637554644503404378189709094131946564880174055208080363031272173830904964890810960726482495638989341810249819775684698611004530170070201470285629428776606441428362633414693230966630029767597476893189205266147800463761070728694431970473318310800453662512441156354868876820039993207482977743815452725665967287622785762078780365914429888361892721395273715686629788659991923945896636226984929322906905896082782200825053724989936648284092921086296176093360226612086866085207755881048906275553516471044109349832848383103880239559497770490536051102273228518359271099469970433506086025203172917296509442031016997991745574832190994318806732293730040456560540718798278784735723102277775202452149944259230564564842735369316379776791747818808323533558089181938300582150125297942349904681938914313044253064059398617864674951102641272675435339380081482742316242652247871236778264729804905516007582029358110359162260945391869939144320440228710160036212339117324993238520068372905049466309876388797752889645779853367246337269877068827066455656507348915122245742324933143874062354505741367285008312055557754981487719677217450229873521975461884120018610940386881921418172518522701664149492541953105090045226775715307788109163107678866540120760588635697321899989418489526413098606009627159378789918960611190361949645756365655083099610237198235944378921283308527116170261168902263060343007395675904081216582839034318093542643170372430889343077061465298437324573666752408130427020920854900783809324251084309776543018042085612234526832844477705571175106546529200233134755399074206590333672149453173035115996953988927273495680110332132595116928302510514192294421827926411570498144769659943280447043442485018107628620816647604890528662746375957616522182622024071167230267242944598314302592216404791709633664416050226602172770372628427584722446734084964177599246757625009145204352594501043244549725964607548092779709432311898368878651688141401135713178831834345115126889645325096871375738428709837701779210263414856584433667417720601614820893522408483981220546222221315411031648306001530934582082392270604269346555718583424344428932055727396590902495102187073305559334987117647261606654120990052771051183887430279973731669579892014187406324758669484505952023762690148465077646436864589433095339563999300551413105591472638838245432553257164107111599202561542150408833348696103082877350883758251265412130875876513551002635722634068398137242620124233170973020235371773751153887497729712502247267398751904919902261941967182643002050374072069662536388698030860802490351446430946935550929498394806089109117010077804390592882737809756822729929153796545388354580484000995876777798295740694019031734502158080097332290608852747614287041428014375771956780984444168517349555131635405063607746732876655926760303796696992794143482428871093157711676267675191567858190864557560236312155172704591503769919378376011532105613755717187745774745002251784160474884078017383524655961037344564422283878730526469055655928601843000247190247320022202677389438224704462473646134702684104055997687059575623168181103241615100264789407832062913570802012858732337531081523307155531658074183349206526337493491562143984004974306944738670827428978381565096829412865627169778284056684384989955503273199745193557856454714387794320981579133359136226916385287676284888120275089884227169496238168984455199980991351971179883803842249545263919008381030801857331985120774357412959262657387362735334126937818384618750441825329763318787086614262373268549608919799244777422654745652834808562608954647734486347558688007337893126032728926109008575559273542591529031729650313606547532553065539037635160062004007557350972981233432235178428562380611573441195011579224114481520521636831012379121136937052608352906853372968906996354393806129538063540200779494777621424144316535131774201861111912154771851734645729115389151550031476908121261421585505897280576012062189301435080868103473931521440733064013316875580217455002965107265750987995566005395938795232412766318634225978921707848266120926499837894081490554059741163466080367052086648147876651576226919527270754871102084258226510884205321940845954166536416587305913955569423030600925280305627454730409860002735007684910059716887557821285160511656310389450941979682094665405052750559516103720840497534070001086279447026572827406233713288547364180775262840854985680459139095944733946774908058517932498363290830824153888728635438871152910259867072476523663318063701264967014448024328091286869299561842051865047179553376191622822301359722477885435976823614476625262576429082982901196944369119461401743077158790233790293346605726378382805734097047855257595796860508434362017311180220767730736635558350633860433452600687540560216068791229681821743693376836545532887741417887753461794103977996612662863336296952721709736416065079227619888310372621193643840226582179996469503111170624036389424074227647268782810626975081090472739873410178310190729397073895310105046873431780940237559694732675221199838333777299797275036418093373953091233593701188194272178443235522750166536990735544266945002575696079056152741592126446163934552415343336811775525205742209697215371294933894064459100942016219195949395729754019889919995136149439007549423145621687341101202615338484289331310665501380390886766052115495085499820328661005104858843831727588019423340666106795436850396364831843334052987893954162007641774306779468808023098859178809090767541668791017946954299429322396339064118282443811829198159231596316671656898553628780706412220626221502334783197556309803972421553169458472727697108033447340798255318942292614295064571698187925169916342034627014968431068028796506561198229429102779970235817056972287608319354189347695105550494816700059690099600994770791190589878250695579773270073545762050239041432620449512836213582313468821314019813802643975793612041211175541340494537579717373203978530603830019711497971517938347693671926026345935506698434854338734749749374787924480584796785915631287817907688442145773965688300463078756635029822073875466873379412491301715982445559295179049073462371793524057011328218284026806976349914592068904864366043777718389559263610296730604908101608769189191789531869288549738054584518003725441578516485128668421477090336092861719325873566002891315233790267151484066825864448573519815214209089908184735009234931727243732832614262762537115270874300749453303796307799678752511980725768525927697559177243679760767229183701735114672822103288397191224401040260248297325953490110992833200391186254001923182169824361237187123174365110130301358592578126717343342065239255105727317238625050373391163190576804070198861858685169472314820620492350646514430364017503193063666125405451446058141331538445572025578516806583812026606339351034686282394102633145751191710175983153859707028768490165986432406919654983557503846582456459808712664454100685057458702637137641396279473759240814511900540874006013182806272427579226448076470486684683201317979647945779695193848148411174677433289499177020078031109537958068843646281770286316339872928685055848390871166891494592372612568927190794615581331474500101978274724017570659375150109732605893496094670459178640309077484458943327540253959369008535824583794532759625188359149308472686333182599225309590219071020176137899734575442241275402766263604378402743114085182404112150259387743148483050124082184848237530682914077697687966953159544798966495728492279723721389078946703999652714468588431195617614855991233842021088338045911749945642687279257354948719551737429867919193036930781547403134963916570375652602765050623069181056077196804592985423338349019204073268437790557962408645205932421321645668891897088111328195575894787545053145837637664753706700971700788487550945549401550337241109789933174433681255621055879178687601619753972176989795309522636389391943231515933627214897113666926296607522792314471844410301672733428801990398657752168753728763956076832462114576341588585388777070436502054796913421105426846269917152431968056860699025960594648542057778938694060787425065547614234878288844121089866889105054775696729784428625581148144724864124716460358992932267910850607562768608285402137288917551987975621973593799736130767373063099773207849119235894009736818573432894035878572575704325635672453965752453097257573932112701299236420725476552499750419413950449983893999590538266590543004483512260425005387298588943757959363732852449509094993456722818994372101433463606240146330457954505555843552256565230267021503106300108461888568280899640904989906617471852035437528319163036037844654249153672016870453702944619131598294378203422533315774239516029430499339721367419700936475684839401960185009267749009903973431615735829578393133566845312410637820126782245431490427224104817203075610924845751427636401483416568909663128943773816543184704263387829964054793203592697861927875335894461816542458411412850626974527661264107375069987262210943766330043496802288077935380695411372891220332183245818705970494462102223448411104521786314936911847153941167198857803054296501283419132744439374971835549812996822274451781582187689559648553340662711583741946851722364093478474963591216075781728536546292475664353889677933992352212486985030182396344862883513118865792610961176424492907504701505678931270256119385434531132253226662243450321277014484434177366171968371359344466540487050687571454803203196401593944441838912215566068644385554038063600731993495864597224859912788370598970157713636393294693856835120569796785007242341954020392528025250831342842752840919925415369830727802400333569535032793545380998427670348669453369441347309837422720183780502544840265394985586231370002878443793765450482594245475364854246794009799619954058851829702623413565869911906558920408961643778544083989833572699101897839587192571441238767721100175120884806698912794281276922144720588249648102091166590396616358038361985397948387772620567499026160916172870634907890828794157592162702099865566774749781878669902841005350105533360395115244095591287722658112831685460012193933802839855078479484057948255026859288834052928125575703826172907625733960692934985016867816303228999957553517109292392763827286946638097706014071993433874370900325713662759290990024620313791917155813957781699547868882794994574274433532216819103136529394465272244833944820252686090815424196910040016158519064974325909538789625956176281502210566946754780641496791675825286726588591970061998710497240219561297502196561367980934650402342761667002820556039051714888415010606144556070390612278997052762203104576264555842499263932537709530835957948127148594417572718321945147403051174023964124933833662854844075626463294491961768947768758571453974015700275160652962258540710328681108574542413207453534930198991581710407628642018968188856678334539860203899926965638615602040943488867142501584530169984844496705077718678399416660097595174025677338988773090110945197274864080030361261834423522648879963526262591586287979783744665913322404769624046312516415240632788255168196631319332349474916724940498170063594431622049319164484296208856088024548100984254585181407794069240688007602311158511062598863125992887028373349315296845118651020528398701637163747156170433963776428097677819077131885598636098649261269687907718292970063132830716905197263703420232027842609070723228809472311781509957056662796236971085381400037442443751395327857801878848163374148019963104950362586848915606910565010439223187613552679591010887919046493769582428491592955559209893502433819918151916580483948743462063954757916162478292800868704784896946319493404492010626695607335049899020070195730290891738752385055085904597803460314227280674631769937275821133481509535669757362353496634410037961321049170558577871314573262836795576006323331501224980589364481975508167696824705046076228281505588733468464948100480986385641661907080643538676053301603611217812589232078436909688588609204785088867459455585814301372987777645787247480439308369273432877283475861027432451098398202494927795149635740969293757970882544578075328170997747351019196920740304314523211987434840231055479031070138050309698982928223841422791807681228839546094959083130157870276453095870882226223717773046610101529758531614551790974238555583331179345756517370569027710343787589804695778383647137110819904468486177899144963761877254745366617973954266898846229554681964315416626400746807344815566654113136437782018753282884341939583667085042544923686381098089488532876572148443897100066134403588260979839948191425384215373224839777409592607707890511105375512774440758849212581289481940009194165537718467687342539847061532348568863426864155428941960182719709537144415197001699718266484080508238776892968488333303337682508645225371970776156460805586594161906717054664024220807465399773406233391871017162664192965780528859984771837111808247041162964588250420530167558000053480401869959355880576339721606727289384262801332971520856948786679878269733706402297539314934811196932306451442657151949921200221025550661992103703275094776397907130341451863956814050130265543886311305185849379505968211182931424132318894878225054242085387706396662001599136736938912512321289693399060698103360861425718778287934648519545675040051471427264213523024838149260940736015561100372910025849926021762253713101099577189123327357794421608508628547854333506079011644104975144387287934614490658351037571141143538748192566296150444486407020888951036603643397044475625091046986615388132227968800168530530256998245804126460559340977809049384297628084880744752689884397976286382421301644725233435092396523079926165820812825986462467956320727669604467154534138950805885210821815896885176060054722418595059476794378690204877169979328382351960077459397993168909159627590770219324159273838098680420187074393038649648538566795177467149653155172610876692782426962277838910065425874274255833045570842390495839129746501294628747230089057484097980102421743200393916287926209649649795680304815944080010985025360240500124459010531678687721771623779507971624029203675381248737208243589609037413617779734892410527209972578692459944413432000816163331492336399011338793181703125184162991691383404243710587018533178280857923289326142463125785374092056901576801874970625782443599298697529889044341593073308751201765110393494319888152237769643558995615956422312238905325188124711292107704308828554642635958342525520723267124019194832813051444089215576693756865501625805031208472527694460302560662655695016287630055998143969086965199774321248254799360949819105902290227251791394253219207245749485155151331546240631939239764443557219778376608517500071106641321710716946519367182457846941296869208756819133491806319016597703375465611063980214431031173887329787718905821605876630560717804693935497963809842515122512534538890525923243775395798032008135425235233483192787568043215841187369361724834752027063646644423319795530325745550158632028456934969376584266461155409938933796799230706068016074251037897538103980642971792229053019367305133998560352769128299010438288252748197337025536232405606451043947172483902779167787756983208819348672718754755006692802177764983761383303466317122399939687103471619194242800246649150271728224715720428338946168049006948112638588803739645542794091938232645924373123070399183339570627960191728168636078460108365862888071595091872796612085932413668855783236730403917004937662994918870731245627805945620992046841033872418350005398811371271955016403104862760950659059218633927715298308229206806673545198624000267138286764322628546608912070381183503526868022103050859882817948226265060694722660724536195009073785109977761433318981526875870126761183484065683351299689813900869145401041076302837620992793294227124568351303669907855316583049798146952385032485675013631450060684948627092383068332433070740247299458138529360926012459082652372909109317507458732928115757148276280634241008761793300969986847986342629159180881184811598589716716931839160918904804702734074180862649746318368638250586338272816523697175177781994744800651222276353750343903923381896540382644775666377112698474479799610596154847518202852806850708425497735644440273692613436151412813563167093915490323439431367137370075704348451931678780223238079554747053218751311688630046318704020713038237872430840488772696932544420892503892646342466905774817148031753737217114171759348216919056017990715589158154541499296342537663305052196497173700813409829116777173617792204744515829253212370100874414327696018745744820154585433531174671870688094295910070933066855104225824036594365013181506246181699805294397560493916082474894766111095408096600519810901037006807446437524814986063813363671167016275359799871078578505929723065051196604819922529067391416750259756651814396376044811883568579824405565261396274443911338845897870041054130123729544446285565755929927164237025154166078877371159579529829011924001258581682259824568832736127861514207744574338018136720016579310253894655249347034215084395793158744133366563421127331156282931129981534492490349436916563203361812226562607460180306606490989566828081194644355610246327289185340057605794142473459582656663982757224769132887132293435572990677865680587076982522860526416692079998478319907706715033072107173426517778831256359866078760962831760285278267452302470072345516676012983996340666873793203944706305674453921815701465541402555535300878272199621375218254392980169820935716620197287560877340860905314814925641930606260100719391648658919971701650630296527008011488073303915363693593099750551613611144966560948155310311206893746548863992570893298604048129799072806113874477006885288039252334585680631587110010635932157932307069459725587568203774522915412681949729011863835393050985563309585533099282831305238546094324039513515449970093241249892692861344763218368198872725248167161215882900059633040102275131428372003832010855414946526699516154079523334583007610291716927929424953328256880281255731318128747825380602865429156287205517075163121816030119347828617124749797419144532491230961783998656944617888393805623586122305031349315341607631715484388998023456357090730512505207574822435121072726818200108206831935086480274071153943935029885237145719708165402554349508041794368721788472142632421786498309610379590427740680320822091212227869124201781520899408968691456343382776068019231159149785291298954022693267727864270403677982943190963180019677367595324090145426791760056042530575820973817314569719958557674741759627502090016025189452697079986251829515211462712208225714874319847476393196656795332321369279772847683352577419023810783240741210942336745535155879313941623573140442216682555513116787988302134451822811348285604390177653750800781103940179103118619331686349586783764875959213462002775735871380959203943590828298186273171730723190840817613878845826345179517501646980897204135901037646373486874084916117952870457744285060641141413058341373028926584662842286294533609828173824136773679319227410127779524143895830241696654562137371117470252805406662731941586273220521154407390896822789435845330568126900885868224006973818289096247448740489194978497319030100018054059391953458883135305878533538852439115095164754463194463957503115038138989922910123360300513874411631340082235902540083210423836047154268824775018023521422055988216324163462256175597321213580105075979411238615092733399467609405879775758370233995158733636001810270060542081706477287589640501868629603194667789093647470145142655711869055773086501316871062070900735949892830778014927990834567101761784332592533321078540321322862489811257921167167157004456823633597621211900321278485993844642739364221950993791243201241592438133792562197924334298078158045047292174913425718073899937767941188871990559975659923489923987618864854263982061057767130017026033796709366059850078005935424593222426949693807744865675432783756583611299654630187342682954665465882067446064712506424911149689136803471620996157436027105640591035270501493775279212588720191202959178581345070761151524127102441261368431190086269858946650531912278038363295437683425853791758753570285163034443248896018822083972444411410943976133353564211771433793045234805720111081616386205480602957036580345154276208949710452165309741776065917319477789145797795945546759560422979518567083224792132340926017304219362654385790749851284123369513393801391876409680762495333270786114772427531288919247456120311909887748091078536769425194805602535308834477278067329810547279866284092671563250839574471925785264236818925442467369760042326253166443967179773010117577621603147047929449488385466921564367139809603002548599479064718355382096054614701208124569964548843555043495224866548243979458375701127998740777163051761713510448851296632874601075769571614049996169026508777171288912646380793447221129434693511132398432775877582871720181043073160672675984363786572780738374731188810063999766117155298783129492992162084121579018601189484538019974111423644115477909407901337843957833634607106783704587184721862447154672850288805129378239113545693622403990075788009592126992481690182402962393665454308148600243379002727709407582656625888714494485937399350051866995956629868735941467882433172590314009822241828533202338208747513299705458158206072433108576023998577914269618616018349580709897984463919732780637461629319159662101854878770440008796500185845381227813685074428955844256781028249393119058419359924881859583441960310112564142658219452766486723645050366658043771355683261235758512904696890004354909508509808223898160612869271621652518891859773284044014272987945156290587197988713894189997032053107467525078730964269995453167520872970506953706509297876006681703616058485127062813652594715913232689516028729921291395373766313744401019441769272828903581920880465627022596331302389016322887844938216461712189884070920933297073265594184886248208566995170427356644341763482896475846502064888233063828952335393101288798551683492397971914075804245881006795340927463866801743859716474413205592110548661622336458307578395568804776375457693394163243311940670745588812588873778694568137384038509058493971533191916885307325781541961762922202660229578957868209650059513019763952619074357406404369973976630764770831295286792414930511029174915576521232180187870528459049537428285546306355571215829841059220171009938060469733505446259842878029948825490963695404941319270843403506427586120035596185221301462541323180332449065667121996864376325933845249075951106133299467629464222462815665375696478818865733801907696013600851395106866689348193776878153614345055011311350201196489088396442565246951472556013044202166009561841014743300201359126156860046272545982726950988913392386884036408867444369908673897358116591124640936028216267488861646650601916623686972387325589924925921226957327163997273819714172174485368231285987589354188785558160669213125165114785777712878141479117692967333813587499668786846351850981562539427806515834436450485335191559303340892883611202759016827339715378130544737338708174815645242785259201421225211116438248654185919295306964467207567669934313604608456571498741469728966972873313327305307939877338052994440467283803960308346258901903555319253692040666005563917704785424727444038597782565782147767995740271244532893874972437120779580291679082554359866060264715888295330307884001541346049860092103425195616147878848819625412973468676783948623824280731751651936677151696759526622141281973912895067767544843690609038463847162515010806202409148617392884485424703925943206659015972277845877634705727168156293696207953395269818380759963222179556205800737026040488879361609988373819402416988758585724361884552817070426322635880310678724887838950964094862269570766088541968971548302106969161042664844640204585282067656685971146157164872384660024090974802743080392941584674917272490024369187296901586886812548001782086775902013760468582098576699352459687995631892097907577987112570937903156190356774415600244852799766576384182155993818040119106222253076984857123563075808771658733116411871529940689945520986429623393089927322390953715539223120305918320556446383628654528909100132339285815089946247968036876963669604191919819652889371135442264682374964568499029272747120873412822018695911880299260449281920122983121556143125968476047873631712204684028572481745907879928975741645673286360035631176111054129671810890355286255042676014982179944990957491113018194841562175362066609712051065790586213008516996933096847712149501631193486008739277300610059413337928037660304658849636927679717418768208662622424852499739160998001039101213313553699920730725955889565398744524175618925875213373731796782174053263830251765913120014240609026110552401797245093698433434317461959605163396672524600514817784231641916685741906203105872312745694640449618249785036950224463020965123858195930299775863657663787715475884263500275937271428473691080844129291997150889582266843710321501870329872557359885018508096507631612644833529074504089314921812636292397808641224496148584917397743154161366717940571423205770939397280568772895751502268468930840851775112065885937512343333334758615037941119198429196825450338027258554501220347625517982587472501216570644928418805141222414853090787917255021587896278554543628069879815721751984346604210343361331888180249895103437736885050707442327083976890765762030136279722226037825406593074692072122971501476033211158960792315176054601272098450530332715598715575200267044436553156473747927748337350068571241828605577205350425238204605526353343972355494010940154596093787733626342576267576996207246522071575528984786870412218604204060488589984040552256099122725577567766658480757383381533143067658175562364175053599123808397360364973837707771488415279275644105559617517302353615412864483758977800465068214703467080488195229606696047439522747062982868331087467533747626136643095657969443402853189535805720676084677711740989840797407497799507381024389164371787280084581808532675658919654958096801713998354702177808301678398360917337607032086019322766214252740173264931620007519769501252557165201356550588816767344992991905248407252626605146699207299478458898870095181951656437276911217265801641559911333883217112366108516894385144379490293201647728783847301011072949284335319629358166455679543725991626627670117702854796107252412904742610494865107068164403255020684577960232457509765658058970159942800004882624870919604310081478269435345523187706745083710777497805756620596772781436154268337246214138769536035358245173078008487684660144455709954797150806529750896548645376245942117847530064392216911283708708138166083644607365533888452567276105482204730417177090971221123414213105627886428570630209669129180517657026203795169682724100808361938541955182473649364704029871053820205060680278802762519480458278052698621607271786245468136379578321292133706942986572643625269874897829863189717031942485590164116139645470734687054797498571552941774280075730401299123903411579321060885728843830352147684073022760330692358109257387319383733212122850418002774764515039220813219376472684648774386089652800648760591646607826190605717776592598018016334764229200054936555045362389116579330069700234441247671338824122549539681802803152332332591350900654048960269198708604515794909804030799376209709690223779341827059981640499036259531381089892154383688998395127758035823544000534481183436664929912168422054352935655448361224360769224727692057668474626157664531656392215106189154926131266957126039781509723159134432484901668574099383031528253497387826656188830040455182362638121379268038950766141081921195100261513325947555157567631191914631804710525970533552838485155810733800670280572505136847152653942391362369622576108379927646762805810453697152776192305901051670567638209264244513049897365032071579184986971866909928845565423497131518249207207712473286620204296553172469534110587371005716085441501627155900774622718008463057679832031968525926614996613074332931007881272678001874739999173051879756469770485652256590808288335137056280678898932816460807485761113443132374623544397513986018947662760492465417748727963737108560613164220725358209388330481374933400787017870707919625754286333614335455222153710804299649622314812051495590300823584069522147913721592840290255639546336848375213685052170766992375656912745145238517678081889115233359150990175023187150166276313666048481052506706472552508990348170555330927227603117296821593536153981035690316180047417941580400470042375121105074432364593682756382439580182481385198116952261371387890895725586880804391532959041673225994682983191817738753071965182410503944331690550429751323138957093055687275372604712121375918241493281236935418114140042707085616634763169670207450526071992265098728499145254914476910251294188089618979161936124910900526940534518990918724215026998774623365377403045558652920908526676398298142461491907367542395470192859200877113219089883102977206515631978474316519169742054145517012842325128811067187816085450347178601112631462273839192126121773340444816168376615473694524179933837003929574281638079620052112919363379602756977154867361160896631186640140614595706106813275902032112645616283175543565559264918450002096994117906528914192057430616262452725573337362061011212315377579936273857475362336112515711097491537747590641730991442131468425244464748000542410289402577847941862243597600837548826739847999414275039655468700603783401479211434388329757924613165143355937459465899753348729025602668017110963006786561869613212796559009115640026204658593374003416617477395153084480647544455822270714639095650673569091969219038155167287578482871326943747116935107507788568360717514476445231607781507949861146913097030847944776324129044923376490591477772973890586123261858936328706226971910688275000428179507465726509476055892871813097995675609344331873279063399025245684027747283485760579187068495174531460392220918481579893638004663191818014893429175715145487434131138840964473330333205153843536533698837764081947500025328927857812232243189620438181030372301360068408768773873837574881122165149071020554094997353635309909867810259159544506895825239387829324470295034219997683942876341177746688290189366887302406789699083104049454895648073369884152427552383509019082543979562515890520017561323719228349546556856774902826787669280589770680175772171814129433810131350493428372391698222428343311733377789438450769633774821306334917025985211501307439391171314880311904627927853270267753453161837156489582079729147595225339177394461238664519783330253318570100602239077990025272141826233862271187674883683703681985199314891611271614890778970422582151805095042288709577695035074288736963191812879323014579764279844801658598221090960948554072144377922166356658985900287263867751320570228493817447222239331935015345452108762207024670174054114007108960836042910479018784014137805621903691659962214367404138303210523469734348198017989438133882699491008897040636080408896363222657368367703411889076536887156070544309400070750606054847106915068120348486649558168051943965171755026142804510960070814521282768047957204095775143097458494297257027689730431826885567366689780776724447577442216189125836737888420951738025966610191308901400966764223540666125609013881164342194973651882331339495850888480740626032177535706212143158542425083336581067208546616827397577410659221638132683022900816734536115348372962959612200266372207073069917201039587858649594985820910154801903663030153367561439085239178821890979719546388323874831824488732183772967808419018244303801409979555131662742247916535485318395444672190641396942221557488169678384218121945720045700975572309093208483856892270099627622138530910647892370929173199569211885320610533991872212759026671752256062595987799296790253903452437340803825431286232369668652078535939113261912714036208505527259520923434692790123382357580521316498465809274259685395271138999456729560113811279047154395512432676238670465308932054340755844764629851083751858131655502250937803085923380592907817276074974995964851222073042958718713365880125167053765904325301519772900704855392696781738462304080371639992913266314777205218467418829522971127247476631004579564648166479404921376038720219237474352577567841436490657622743375952909891056045104061825411153463078882907698510825597586647351876388195369014115649708841797796709503378214540213925301900305667427451916161319335275795463040607888944465587735308286423715587696516088234624745107425579984671670598144937253148465420270413810348409525146539934610031169444056569966754413564082512755469726403164759938002706333617359024343950876051845929269349771984646300951347373955872408810940927654472413268507231326521776633702933083187298246706149003750539988992852916405838829307615736658476182201586773270485883492175653206950876971445374369362601116478860844428944814542161612743052603585166720724971727010460604925700048512197082634401151703275131482455768961852340365421491645530681277526804103789505723990371954530592809360805258448561619567237463510245111538546001135203884936667535316691270213383867573188335617214910631284611700926834414200813500206948809234509639048136343903615338924761221868026402519751029779431038729833960190054285841508551854820024144394996122660198164482365726031523760500255600628173801658045367960571891707305540539390735483717327455672936561745717614066392559020877437370131607898116312354308143625915042588396140430310693950194888748103350096097210389107607158492844587563208041831984406213212936159499360566006325562269988791550893734553997626046910035227276267166709926464699264106470040899240149431092418516852982477889317785371662025083936476117306998554141100606084603468859080994851708060751042123720758424413986951799259092392401217327619590866300697318335694581531020036739699203187022126158293990794813282676252719918846216083234522840514213808281761122659287470536365904849520778508209448341500466027310458975167633442465094873345228153677001265158744406526142182549158485368108465591943676999437298403950762939706008648526936281586074126454483291596274802636472936833255703321243808377214095414162252495654133319468836056035210083201666919186123618548022709920800279338945923072023811368875398573958791319688224032492634492496630841540663106598376027414056701921510383100177164047875315063623456210362831526928418571687521283600481014916449367313966637232408903629581575978618096660636620406971672689157868288102738463657204967526443892429308756420235932003579649973674308869266014396602024206894463419048360528850111393019815291452486484654114009769744025967088009132234380258184767284320170604408129763460129798889604925319219953210408432295511513357918890066295179442439730231493747776559217023235725750205394926190969451571439048775221697334725038431295002904052600461889638027294332918832271689736321411950884036754921609935759573489779807432601290195362086563136798069887758581957394841154821466553937858691085044057608645090637886343838362231722902801191201222235454300108791140131400829903860276565554424906955623222378406176682918400732105644465603666661325082524430058924043707563058060565601023144287610853071650632569750186231448581944540697104995061475600461359075614064258955222548860993145852582411122775796595048904944765653530631761015084804612285126603660381374224787484039455473059918871096165744099545265166003238093335627992317500956760547449033762934236450941792273967318647669718171954914571836364498436826796925890624104732416961341582999509443617267834124919635318913098703350830181451938006792625471842657098205260441719629674790533633212282345626303213723144185083617403741127943065297030251765859564459391346944981410054801260943726658802360017398602371126648833389085310566028624645286264341096726175222156828834950558585379167706641708460252085981904776260585682287710756563597575182297074190517391247509690973948252689293341784449547486829873346034727314573299076983722369484144598125725422096570484207550324275935176602305942461153991599948904967327480380133518929563385176581205610138673547427283002331235121711959994807533707664295363491230175291881733110464485002659749871584668515046561889171756556247667187954709511163728665654964375051613489659823395127244210763476609140074732884901878790934695182060629260375617931177187490605939866885894757426283625833145148772142961959414591086815564591077562721044734977266542851492936294993759990558254585321948207417161040802131416601106796088424273084405319800306394959195539292959871340551953766361378101021633193545385169116736513192938061286182843322155069552896375533644139656453294118879080391686662735278558000237115528410853812278333771325794661876909257736235838488593765195001821271507670971909764263232550475914069896715216627422871904315030940833168150316233466326016691567029671350264929627606692400461964526915993740499540146693057440830789906738302088409747696963331108405034568800047762974516790249255758992895566036951516152334212127027779094601527826276812999161355835404961472067328939671394173719514647903652228647502097453129973897922882652750322390902116425882062953141944812151389584984279651025442746104605037689033888873400275571297387110734074440915976175629104000867360515112986265907505920482846016603660482733152076179007860264945179721601936257062123748236395477835717740956472918867375001707963171173601831956532595096319941296682319599754969414478921118088574746165260951839159964655628360648604752124298351644493426604597467408096044848563654932109402473877984913582351322621239997024545184666823738779518463820142956139456183471222145152048536353836627034487709879171215787375912720248018079778696311202000677153660572957422184894907721665139766157902487708445874396432957535579159588114368295004880662646016532830783830935518133061539961408204792420497877798100371996499410424521279190923226526644663912432942466314967939013803453865244955843028990147851274132392511269373242365859935229949454337360457834630531311642280630624298763841547020015465146097211038687065574585731834913513782053300193578843137537313661120962213979977032752543358593660358722201917449137038691192091771576892945846242072615783258373990197522324889524438060650253137849143996275473376087114282246161916505372060179205441062120195226288194146198451200811026152693980767107886185369107809442352139845001952800301460934272182929493593206788484257227730544493504982533188726300828326923408854864014145874090421461136014127955856215339798218611381045479173737008283179128582019506458411743200592998836625136676765955154200184737205552041078304486447170317931985436804556549946041015158440857398860505947831168194058322204987064924877919556757557979633618704281429072118748364744124777113683786603927256645960411664271083584026773165179502006350986114621456865887315411097431410953239738367995455753313470030631499763148162558176745457946764015666994003137136609013824618779676570182522631382775828653106225736127805691904906348915132962758479546738502946525377490759242368706770005526120014157974849661913055929056005965996341695865395153820605275662443678091543678879861219403659799047636692985456781990045445796880512585513668347071193100879593104543606645142284625167084912775010057307350769558141239021544971608523240435468944267625147250015371842583412892048111556590017671998506000108044579250428444214773801515153971699491208898725075775133794741830636569067140804586328570474741317507997042772925575604362099220358490756298625445197844553748406336374821864894763372383601941388363309477869148300990824717363750110529615026365298771310107155949274273453148923625218883643197127374657090030501715232738350223579881517663434625148774151835151224482198512026668340472465026345740222837730213745650172842935232331350154912966918940394258419092138674607941249245681738224393068915819583612261734720107685147213196192430647496450811766296647946518771159101291147305630367804482593611430687745745418464483136512755925745115557343000350004964493036203916584129350092868822519565964080756442819830704879139002111104958284654270573997411647095361325201153078864977758505279865054055322467074848080797521552980174180296090202287275445496381969635725269590115538744306233688064521104913179985179427548859291194396784846302165521030015377531050382275363766628019208954216610098208435770692140959101995577346092997144740204202809981887173650181259966379299591077442439975559052075073282773899081497554421458662144176320436757451912987356814908825790468171901060730335586366472663786608964801224674916167889999079463442163442469486540386745103918331274573610781157338940320325105962408598946325649858037750345714256552934689894812685385300152789154552242176022556100526777831357097531294236411473951431376261464955939090694536232560211686539032397353336203219971455563961604007136912460839756185413169721198069750309267398202525040436601869181355420659660715916042614224977367134172464179893697581569429855059973322929921397636696586766190190767072063475272319251750659075219847855591319691880003022496760120750467085994247237545932271823237322965255788655406075358483119369724065601294350683686470574871055410087506237148067539981964440315898519450291975028865170976227084223570819455093098486074983181925474064795864068742206154343209963896092041191701936139298159889186596150112250378032346548819046931664579476453684625892130397697201027690635369742306701849328653099998725288345132511070916323597550671381867967963431699391134263081395406180788576922454471606834495049701645523679631521218902879306560877107420919846757154049344561547499754136847048066211589932194392712334737591824964741738116816055249486943607306525923587429776682182878364328061648893462860734075264558017516284020107600473813273397077806590227411660749006415563254198801581878850854168095289089620955403828225807146123128149644747981607265351679198688422181741484444135917291967957500093542244405047151531872355105615359629980731085041439980726836831689495859424875731652368816001537709267063511500960380756526990225495199046142664187377975892844823654447207091148591886840009609981980615610772163096816723712265627406991305788865325545730507817750755623738637054260656738389135006466161992604433351243804696588629402574616428463773906874905511198862808638046401978242785438422216623570311959414018422576795695164919968803259883404481526041281036243571070907652308211962012376571995921010877157136320829110124943263134874529616652968678390347858037487557322085154185971963062891090550502471582685837401396648251229672012457563997488843782100022299508174655978444775561637656779398884656459343419801642693914721382810068608737464297145386659810043111020215640551413294910841181552801907269630839800939531234266363263596538238414118906302354939052241186767255428275548921416240554844176885285452964512260887832828700176609841257644049176896115826154807864119167569944547767538516466028604165063590265889062306737111106586065372272794083754080323231341567681918807713889408884930862288420255385927593331758200433474578090721613804971329509942567708633939052393302478879692848283871295992629966524129332401598135704316922632151817890363384545727285561571185266483934251122615560693669180214480200962867035754255452904702577936508150533267362148601586565599444275224910977831548135026028006675215928368040478682994416027308627927004440778118081532616345232181784722665692096424995114945552082148800002045040972550727771436503425089418785793932467196005878135966210439642556102463970565054083695624558431353102353787971005520645470381110183662970584635600136931114432469149962948505581397558340303718865272208809561126025106904033461650011186782833518436521151095601095805320099783391260502631552989566681333621831030105048527792823583511730635692687914924652388638912929927746223890716669561899022431758699353190451185154519527894297100850391597920294238304045900808788403159429173193968117839732054234661429888853461308218651349249686535133700002685965460341208737927309845438243570445722633950093703431012090681392885196515085355470469655541119737561014176638738260963040652493227707516336510341056707174191221538804059731651671713341578147238841348262592143837816070053340451380221085414009970930558501119063555979643333537940154023170745639750266568645125991443210025186791326477865164819030356514352987276953568711901673050511107172898801272336326354328490907473056895086555923124894874658111775769784740701818025925624759936875292012840679260087161210475106023562397341565085589960710213517997920380790655977266563191050619995941797797167257625300165151732295760860459337797986272371886015066148484672132433959656842814899978414083912109350105396574801620050761579397546716153682073747261803422015105195089396754370482132908938514211139302515719656101033751345643400081262021467070610416324032454042904001631982437493320686699992832140544754809895339953514990409316463599133834233845740731744478150015055305379190725503716349692788984378555989328752176270200281322257294491587497097098494057383972321118379447089324269703678519552411198780977030358979988993122434606773443499580147152153328451731288449605626268126992629010536028817623378473980984958526171084671930688987441446382417259751544553976183854081854809627548976528994864691416284101487382810327272519159285547876754777842807876394360747293927166156374267129991109478664307061013860661283570052017053006224638548199237289630423647394234773980279631681837507902041259614523368650226596219526624147914179324305894476786440142617543740063943294794262651226563481797638621939523034220882566162128521179114867356693141462692749339768392836442443835354866202052127274546190100208521380873675297163626019256891337156521114697074126814300931682765274757907447663774516101087920413008051655197650960226573892023319045267907130497919974708471490961911860503835602937479966920487600481347918732098400323599728515492572693384969373787554410698784245195121120906127300695566765395512869351017783097588148410137454458406243911878196363702760096041266567810421205056907786246888164780288737294814757746170541752426227043755564555494669620545510130370797178990460360301788654336301194697697031940277960629596920034087585064714481707980575623069321912733519499439688079600847003586718035750481255803926256689851655657061421356733392317360759658530704541107185286186112746305850667449753806556582667294380467532383492086531694358155028250127959865670224884311067619223035101662968006618785936288824444796491725018144408361685799357757087108055827779251901800223213795799834546535101332518731997965530473999380942022314603774761651461012814597720105234925865307907900933958236450504712115965461999618307203264448274439955215975817729625008422849805236896450997279910565739103646728761579622633845064953634286625970342604685507975799034270361707389920894759875467921529280153980958612255074143023666106024961097109353248113377137808114906650218955406855952260600558587809925444440344094957631030045459265187792211847245860694321784713178837486583909457044183292368274917143606703107523577327930212620198012591658697273352126837708257337267068027782734136708797491920213842105708228474965959280484265714369921215107556255347074820049903562802115189146805253467593410257285165213137384892794835541583659642787292002885872442561712794388898577460033821182361228249736335783922476225970636961608806206193101881601818125102932947783508633011890211479450041926805441508656253054861522812778038334792790804503047806454645482728480915720834363309623278762211513012003882382930964314574025480300097978975210991193426792648390164700648939473414808264886519795369625326507219512267602097588321172452032956620827912843927738098760063409467175530068157638845761072008958842055377001804819133277320924765593476252035876315897970135960887403558492784530422356127886307403235393835487659583601072905290875206213189639468396315904668653540277584795913808305656013866002013425721657429765830089368898937546115928770764440654096793927989550763921707013219260157025119562291711055065965161037099908215854685630326842421274255415178542227009457061995461535524769773867524125622866997840710666390353529373970259296262320329895980723314983946437343262356625505273756819781625364788060918510575816773308482301746914213453381748993161850688066441448574015092908627280218304291240283377012733101088000617120034747838822147519106981251719728636581244646071912496574333180073632151109143224147979295676191399901147601997278718686557749895739812106048965610648873315225635284104882082325372993629225121752777347712781273657120109354537002624769616617948457506758156925818331064651009757369064133185759396888555762849162915174533233648212574265307942060730318168521048375977869530388953694960858338785496580327994391698613169899759401807620168137251005543549073160517646450723982657595082420164686482388251621854304744615341659751337048213696058266578019787754934801743284214245161989774877037015441405804855500825825422794833304702673789000630807706089912067298234628053781755695272944556137858134396373397521052115778502681221939058985755713169113981083342274991738667989001183452354172048567040491628614704633185183196910261975223935465751185605642168212184916613151028027095573742380247475687236687183694965614361140971697612678711281203133791706900727111705569333814397227852701372816258468969079971309140029454036612403310413941563110992125328524720331258191441907563385746321855480990691405121384314759284816483015770820582639573245673510338026963488394165834541965607383804888753784202253801370691648017714643271659734127837721760617676198640005254924436267982732329730290671551011103905411092487575386364830809484711553729967407947430616441402630481299595744644678657308227299979142489232985933170999673878063826801198502886029572550174611796260693313806073936919360755611249204230980845921378684430919091946856192189212068163367202034530834378440338058644810736244789984543721901260717984639559796102944097824540189484732863171074399509399483191031781855870513185763935572957434804582012282229806903937147982727845868327442587778137905885596194778213943581585337474649685805616592626518823226050982489914707930113783245564353307325668481345807921975557692678244529485334853288406107741647701646959741031015153656544691860018942597184451760179705684757603310965871465540389071298056944689667916976204995764229463988425358347079334920239126964496187247462325088008204980006160733682891258228300497167584769863785111427106879954447018845713947306136365534199316477402300285294884435876206605016621105739951292899388852449644894571251334364967697625844820268477899499269877800577901951489736397344623583449839925670998246264922921403674386651653543388200766081850707731960795052858099082396536719026794551741160911364384597420624437744846700964981801747092079613573812262523409110052579211913759000849952418401668684624854241202665294899280414578250098788738933755471730650698492946748538853373152967728654487210732379594271787426167782917932667607719542307698439488767732226419325246610935538644563158021973235793075711702122014942071264805401541339932482992490622850479354140423915208522228078868733402052247503739562681094718446200792991441131899635919011227976564715765739922183507211444293534891323460196213285361756081202094064708585187419450948214150155529706887993903372697165734019968699548449309266451459219365944024561811242315773602325006828849191020017158326131155546213129019688456693718204438834692599052270028897680212879133430059900693615876943439636770369478892926973582526113055360779446931153559942782086399942554167159054391317673580705172048565103191644096292322773672874870308903791461882252399563968780255009312605825052381323277030540343642738245761348365800606505132965204969669237223177327542060346078753654550981349659570589766153737110868273983632896730172946939799229267256883342319261864364676050064092930489288613606738093909477105343745188112457957534598994933469543016052603103730712867550984178622278085464257207797248515490415214687625670106559297357563059991248615530573177338197117371932039374388329223745334744709604825525073239969477914631669952603185029077681033722904381649862779716761448282668057557905666492528158934865985062945905114007375984500249293363097729488404611437459935767459018852452763524350710225216107154036368563099976984788656252356954763124199926235953455770899871160343246715372552154102318679760668110686262325394807455173126454353764574955467536151474889015963648098844223052576731206247081755119179022357443763958036023082296173201369245829712538845027530642977851572795015008467402124280450814651322928240513561678321777813095417819512019210584825931944156118577412222713786922213764981666414585471096672360394359827756765026702016425914898472992528333168181136852121051833378319011067233681442895767480685976476539915001225635562489221873047260382997024214662146747148101046503512364077075893171469551424487454821317637804831520204118216870261691656396003351365546829668414735388079768851942948564974227907553721334864446977950347496718023217485361723233011404367765091046331556859969481685504732836917960140759536214399147693653367300822924905179202095575234229915878082725301757952854120271387549783022454015693514825615657063468649213114764890233516837066277116158419421728648205677649931344863851396992323601927728951718693462681888433376878482229742686159586577024326926554993591072145016635320753871536152685297942796596337463336368853759130447415144048699515367729092036218480238840167813513552410027355747598303432647692333735315980199413540387274292791082362210773952549809961800317360171745923825251828255360038402742151147791742256821479332829961771984375275574422201285212268175216249871058244029290809973561852565993312187261046721742414618096674553091412041501738456698599620130863500242653744038574449379332097782452988938286578130832263246971222572059584620312922617299817683223905698463434217704512150679205318239508557452650250048340362899327102992759894904671564024757614406810115279583904716897919745857048688915629459691638515570133505405589313693494057382810772585030985222683129284356860130610432180749897444270004066378291974980200475032388649885699158044938383244367952007610950080147658438626442799242542222175799727255690483561583372061827239240997590611690399721112149361348933077577637684458442625416280682957403027180316783346200784431609093570415560076069335538969787443917285144098020323402963219770987766276391891929438963867196482150269207989338141355020473339992056331315881991713244698624935928016310976387944218006173308893739644830437786887900382863760001131676569175207888620929694575876543522287410938904173593511744032975185440989122299851747019332391176554697205823417741943419906934426406453969283498619865229797756202067966747802448235279566966710236323502850273721945444908846055629239312427975654171011930982914355860544240411531577249727523938246346961663319835200997333091664586673081944905194510832338054696942418461296242812295506119040798839617770351860376457753828769140661694323311711866082067070782747540922499407091178549755643543024826920925662663039002412052241556026865224917266500645383924584693010422830060589303932849981073734786163348143884737325702075312771890566637070457775747597771615380312622120338846292776203491649750315304925544338750022115229586394309472809149887149538103471948123092902289828874340381744624004656972194826165038763551059600035651300473805076382575414324100399896113612471972346362497302903590017616198592412309161455140203261060317362830365070069821435683885593575726865877889728081747138027708337033531686319100718281210893754991416194743284366015980122537297171595295696789033010465813623104112275692231085191252510768779336377578160312838804724980924552098387454595297701957893108463722583890920272174628011004614534283782415575862532464946117714144543419133424274864958138722548907664536021510319592855333789977839737002972268308471081344134271450997408216389942127381679816411969732559197535226891072159592267163320877959506220185542046683317615829174327224577799337310488104460242649822496040155287152840077609070712204251663676313989407370426047540245732599326245984840289470556515421698677812763659770135312070844514711246321583654644673939035918286411387630780862923715058657393672130024116024701148374841514571745639944201043017778046312397003598830841291356558621669475055567228678846781414378685211841360795074180384354910832720128975138010072196127966938304507237800953707313084884944534988630275829585226833809863910960600904862794478426173647408902636687533825723836154087387288489928474401606300231929406940772785359699131110073472006710921078903219725294809092199200255714970410632765918499439998087837384226982522993637891513965759425821373813413989781288355255166095504925562150266565173336174265943042713018553606349866435711528061606391046452574151983981084244709222903484263859629873692933448323170167616999075827442342013917114524929869130265004440016209420007445182476783180054605370459826819092679640991073548033787740174904317752122718179650894793287982845447003268711677821943827874358167082450769426542493889476445749502099605273638972176369662151343316785191166550994044208682105919150194657559894126700773416878476200838467262670447752037759862643850861711196926544373893841343903536537360254604227913136032769897073984092583977905195464412572226895322865767208088676091715371101661778799585973001564309390081850536579059911903627237157920103805858965557312309702229419828822849422447533175408202996324885723245808185365251513078067575083576401151546040952487902745974711089282140043538224836060909084279834889902424770948195167135271604633090635390818563820647426401107968381015888224283416319121852601327321083507464860973929252236327444724624466004904807752493245242618213728276953836957728694340667078669029689106118463082583218334016101381356582096811830462238109658667731933890265399092044938820293120344858650220427056070678709952384173726715528925406911677251521236452191921468921358677287003089296900418835499651396938844919406892485035759117975428528274364092776787433527214154868004558115588501917222859075356551646363284517208471549615328281419319417777988757851563803288781351885142962723665052584599633255801924242559365498207469128981393019918601964033654330142369696425441839522206503971503143256461320128781713634576166094582137355474104295961959524274318712608760314310224012951536814488310527136242953572365425616296191053056652054997077399454069463392022262537905381732666904093434384538181130539602834656216249792462352985147812566196463957728145285150231539780683049131650621457183787261439586024448459761931654183320213043463893576630293509511198088550494782311608433603139202957567138117030750031837910005282724662738990305569720505147421434411853536857581202176599949371812939461020683941140980344859757405242454982415508219262391817989219708882546418076299477785692432887747710179869528023250202561096017472389993587966951092597162157287434481106896494097553530817651388891752912294801237673438671260447909364957252014830354629053252765238129745081212207023012070823747862567279691471340231212988118841320304425395716098312141657700302753299971653065898835351335276327846378667382991631968349424267545536288619838383650266045313645246050895640501395475563340012027557457031013588526432700374848677112149984285846355273909300923666694659363161909998297091018491753695714645855832696998712823202170279693603231345947113217001847167950785485644265220813597827575283724476810198070811797635365081243300540234891099490371143028881580707667310584416778117080110036311576712981287191904020777138384245323526197045835627012044272417898465669090416067191200875826918562598723124805511633932983078519016001168758364723824481512701136253743920822298285553931515486489310710580192967280849382417641092666482452775602324257436959404152682889768496404974796086408598334238267235851186128816322112222340374959949070373582608029186772210225655002124191912656539677941153754581550793889174253671924319904665500002053090648084825604822904699211890164153484214752907902235863502088120360371594855310575741542997013946431490567082405760906804136578714390110460662950310779215524004597085618940735883461407485458154078904346902928145895104404683545417050438438103285150462388892195757544376583182579687359809966462158282163711463278433098020052651966472193212214075005527558592734299174825621135063002204963711723502814148294544032342018217508522312292964938861369544080337696190494596131554922861996129848217913217458581868573554209193424254721794270344535521763058816597290152936819432498661891206201241018532415469493135706015580389783821161035423296045125757528820814871027272235785204653918669216202949976486199243369242451759879829050508817376755475363016170516711789370015604026834310348223063197289498766392980941035409241674351825078779895967210091096456573930524593239136895448183438225145151076254019828816635648322317819532565075161153179736443197743831666392257746561003356172839909651450527518034643934351546059337511609448509354280941975689552096936962254448219273091236669122699572537937952672463204198129510394571130833024518886056916615808751615844138224373172390330615051760566068254659101293699469203327670205424855867304001674736728646229192682776867383682609451321084686112508761788883500284542840316144152071099423908212997180465126426087603000723728268902915234671841550483157390706100726198995979951784783823115834213880240146417855632104266894126786874750318091719022333656904736578571509226248905667910184641214045398894368110156675567143299272040984549590744994736379672604237957757071309592001671487109311961178787908823862052270326332779358753256836961871522061411335843776502477570360493545974584675972978899149048561480371435517114506570245985994662938651252799789494446078709591798754551196762662208306081169871530365069409305835377934163390043596431071895958507573861053432865767793225936404343259508268581852222673757850877843207103111674756498616953866388183301820871693094115371903078867102818325240086146282148174182587660112414663383737944807702724073357138253085639414371498346153933992724935644469981908710451081360737055185266270180351782203852499375706248873621912426976174600291425144268069227245434222857298043825926775126966026131122396425655887220419451701703436849753033892940069906460272774435484361215102578283775553388874350920904462442067084050028309829296400934040266128967761260035860125974802627173986307532822179980132142200538367781672734439913253188272354768303646305642945238925907841864218048323112423515927486373497785850909715054027807359442537314247677614829891436219825517990280213787829279765240230120044079515290008437719814056945870230435452854009004510287056831710564694849675044708999528740504117224173970592795220502489115700705360185088512387902056603921292340206779911827922891411959965592659656353239844729512791986429786331059776628982364243810744983384282408160162510739475812490196850260449278157867325143017375591958475678508263824137380530077905996130517636062998000559561360079904208814062181733268440596539578621790505432605055605927171571693865864169604547567625141221135831398767316890633200665762014273076432651907934218239600987092574610539563512881410330781803914665577839106012454661216613891913090365121129662946206075772263643192506081009165661401125982490483629257929685371474879270590853568976490542156133679492148571210924312345241022750280358679656803179180264721561170261756515451562496327330675080906420473386585265166097597097758939355272259697296938451841705729051484463925503108668028796318579688843495888940273963420219823337496701849696474294158193339451932931517708022625586633432205566562327421928573814805938817437149567046701779678080375814967645282038400641275071431036409981676018596904155700573039459544283338840495549244187609959377143947552597159210699950809202184614594466410322886521410119618220206047897237408911202592508102253559602424011076982635097523664162570689800218582920690032691958194132337422299171982487665407960201558230546137886578458485518454194336463081598190526335302956366380932723043671167632817121943738770683775013948299338578469990765634090950305139853737555662455912119334702767467068307357652159662248995991885541647225473118250111648589760555750214534479960208474125825198021733867808757602875489414448503802299336988885267333466192728791669716711164668529377969428946652271375643812189392873433879180814613530581481153242949905732784287418476006164080404014850028379814592907233425744313951103446641310201332534367069343090535448577667820343666636588771038499062846911414159954948656177307513703906980291435521247916554474676816273868147969554666668563698997633202570419942172443421392788810848863843389775166343812581101558975471453919899921124153095701540513573659729349337811597586314097875590610341910812913977806558784295851852537816702259221444445729198964506443327029868117786799550569031754661466292884655471473212458368365186253620766394696560428952824863655657922148742168046085552963646475310805625840583521538087621738762316152438385991763094070175191796921022307964703312525918517115814750394281271200820736728425307313761816619407346863170700507444022317562206727472107611771709113386626803888683041121017896293830767052217354325337966138613049190312144790647625504596487482063384855585365290487182508731771996629327353026727303051758501732941893046239824624396590580200757544732864947005071280817990606929671663390476977729153899157702732833649664845391294204029027851091970720658651772509676809601536606504808214617990543278115308849821648094504802527083724433784211716816941028456578001803715299986358481194257974307084430864832938975456417203890592138987391039022627474108947691048770248055169569375076062749584571837403963399814088422564423346376515320031780213492530115139196954148642026929955098629112144999999268311343126809431144274500761641648115220820885189167315826840681919789130413510266499888873464971064734685328532159419341175196384631638132718372173314194993541954939898449067911588815627572665739296650017615934931545565819092587357572301555182297952525951034261931046282829438140011779176348158200833484959265278781752441311159190648455621903292965333770281640985146374237322987500213757860217850851286436889664612567340577710829593182627694745297318477128220886296590755224913389107652042636521396204845114983390095477805598486959425839132900228828153395162930992024613195967135170319395456548443538450272829499291906491641449793076853081535470757033618626236406866661186189223930304026436115925052342911041084223963492021923086673101354045106841301647826266568514942178653399900736319587842415442055578082792883140564682517373779702293957938358799214887310252872560265528117714430330492800020327100946957678254589367087036153937467905241923496014513004025579702480487112012160083557462007483875245385149900858620136237294856468056853944478040440955985299478174761628734678396393825951352637339419166916631342008745694315634795110999065249416709611809848512439144928915756833072527461436607485285632941816851290898680029267146930199621672428752834651901093326486139837267351370690743577372466126563786648326472628188868569203790939704539287772035489618217390031957046587129552626753994410533248120468478968509400565192200560787478604792457927287641754335830197703473857780782461367622010320174081436318032312519861980686019004718390620097459195369699271634181151170238105980698283197108209789692870075848835380871319826337050679335313941640867125064913314755293428283659643522923178149164164161023498631321989891443308616545130458960117479291464072891868454135923112418195756105472817968364545136243466378710035431194038928311958699072271564922435370883423744222422050893271290097779891212037036036956438455495590833488550120965245633434586144623008515376581533650782457799689447629998669642461775660986792483250645653616435231205782413943950487874863302931083199677582454964010760948265225726205991175316479241397257605630262648035941308609028452675980025271717977169477853588610909757353202755369701902369037437391218004035706628849326415803443367371598531835779106542092500151664901850911822300561541204276345412337336693928106710072768345378154563926174198179375496367510173218953018968035710092511843676960697685362079333871879102138784568358482034029132836514405591676246852998619370999400634625951446055134189534958836020592353470917169001639747384047668698222172802108126341274087502791512731509977742874741054053748979237791740849754042244786649080126450670290540596706988514362766240924802663717775998636133365436379793450980362754963526415452319777848804526809196796417663617025999391065416553037951251909063800877027019984282124448025707148835890806480335627137189712969743883082067722591405070601970988755529290856594588218276926623974960073798812164753324736258054809470847805307639326593644545120631921989809544320535109837432940847705457209310719426894441676165148913472556372783146856966214060324134323859614963102586396023428092931486799898700746088531291315574579370403501769972293416072116695421586167873347866854438891001486840982855364646238486652308475159225407718534048382431744880102219834889166931662548462068411656284215440511188287633708570880600462870735550961084470944244472240312135030862648577064486916345854310604691892978926967442795160930877040545563214114559320251864426428732356729130958906314439847946574072087377729995581052645917927699678217234928640294551104235930548758826533103984961267065880786099166895470901208804915589591341956581988092262970321903981846000249189128961072082516339419272227345310209541352437949135104009076010908983463036133524308188975977101657672635360856088123423215761117888051558145831769588672317510288925585391226353316897842190963755958771435328864057263862319044128489792036977715834927283709237140276178080197354234098380057883475185757297945524536306240117924490523028256747871103662764573535491375103150393505339726069981615995119306765795117198183816538698192055101793935698086838751699888831896091339067962494195293045435766041273831490783540502855242966451407657608288874037455321974115621124771842599819347656945912684746576458736384451499288899206110708055302396755399014692616282510645557414502998370926777944738583956048780536585200194557041882841438974611466207976261815930468242779561364408078841237132795589782051939231124850792428500035979467512001712481542008484415611345698550400956368884132181477366259002723839577187324060424734489371021483242335104899070545750540716062052321250414274325035968996246179498817039968473330170512592044666763268328546801636754706232480893978545900465621213315916581885120190130168962497831507559175922748885192666727008387049670303613651454023948306210091624831510358893681843600700426103538029055041258524853120560004073343633932625069460756152227286004241697350522435975835052436080725816740673513398037997518008477657699031390726049452203038681739594774376499834175132713628758084472048117175913190045950084330764780491518943672579891958325133756311969177187911854048629057293679216778788086782302439860010025258495347067872276285498929220547923109029867599093962169527557766944729499693083549782551417933318991992460999074581354497792491244325704742603768427220767466513677217218787002347192759275616952811987431910842712040305168784680025578051009715432674042761593149588341633321454251248885927281273554455095805911680021723586284787533038605165168870575377277428377305484181145992984307484047074886978388459216073451382616022284852746438140395774336414251792590833446268643502255111450882221916757103690999039588576993322947244017083214370293999144946985895322303648534243614208239321396784471801901894217273222217178166401028987145009511854251684731467811935635672057466970658601315128321966790828041708765198483144980979886087718639757801302132091823702980213272214238430110691469481415052631756213630461665793886982091632354889465095103515144579768401115697118449263244349174992229330564928071648941777337225434420687034168881775753699054952699334287355774034751908066107884669215898334679113650089617201757966816202588386182773521214508201049563241355766601835593286160730805669988221315072901573233899891051095505479717273802108161882952182698268633281564276964271605918700210028221672890700964643695821793882146114008051402936117336778414728971547162805882258031436325000356937316592529926879663897447872497506393916899055774314114653248241051440274771073926472113739388296098543282366415053065121582443124700161132057055666121786391040324111917853921441848806637915255461545645697664376849675494727122333416935755078645484257507021918465553954624192821597101808064104930967297718809340223496885296064002614053358196780810895425088067499213649388331206144636716110582544940303773799008294211725360569377676087168081848720453030844835085586627956526811625651418165269973416838858410199749643039940937964221550959851818147549455651376850608842705706432563213473593823429833571508353222182994264991721524387791138702179853742323998625680108674325233340567690398178711632376513814960684412178503907173129328034544812791976570444200364812198890720905991983792254062147510331554989739643725174268148679264274278781630177074801559829103477453529728591299920095597385244491010979844989379156611324273329352155127685737264691716408798917892010695409978376478169267020405792695189441893849407156634916727332949393937107610147489333639307226048774933716939393161116482968389766555316328953490158245949278340696791467252654438601608954307765498516896264652993553635824496815809404066115357880623865081866031693365297431224330083807610818729463903141946613415880517052649146302978871830892877547458506233346029407741937517886022173151094102257966577048972162531943658938570907847863364925804947308340204670396516909119516808325272625433681413626607477060004734123090302046573066481855776493921222277798090057699127204163755727839027590161182578051478031600552366616536490335182004104945107597303511928397426372190660752672193115739412434772929744197562622205035472607485967237563954827578067530169866616492049533778576784051491168963033280499289438073298441027198802913426210831977412296024472237331853198228432390597319782128794372942941325562276317514941344723863786610544844434907788638661792046129556882365578845758934635457463182641827107921112033618806724219773489910787873333932366244563757521180204470241125646468228209728422644270979466089884298541187029399710924994629365910152378947161834421082583057832139957793501573079798367312853973356008690133674940000991970068064786028818917459504386690511210117903066816699337175847089672459149865335790331098100615652111859903817018952740401159108852356404237078257233755504988511824793481006632618166690905203301756319984634665852785700372876062347646931303772685002346488210602891157818992417982643352699589348567351519110171305147763805572314290491610917402986296319194557337436904301588115303102833699599970417351252775658852272329775727484914337854630489793677978611291220469922683213317057634487771193184510938491966547297924469921591755490506269484518757199518231261538280256700430319165192349749439266502099362116560201204345801193059615701279096112176732380038278993233308711562638623037354936754876477733749580310541349162546192934336685289822603581481059646339418388880203468330791277267242145093883162134209916295075752922880502826887047084473787787953457396636641446570925415620634208539376827926099878888338344741594742125883860337889119539272263623059412104636617714607086608165101977064479930302085234971649308086241404121936443273027863125562311964404173700071893622154161636036505953890754719931423152955937170579412360222627211733471885703569588130510374810195575592755789063886984243054370829655849259684083580425169521127498367823513643760602253176548230289216536086441990643394896115314704971337007475423789265387760190056725195415622290002149796185319068211344536725262849909230857320954847720642802175876857115518152182154461355305651325472247066335071273284239368786116983625073482970891721290468670154487225851023571111953088300932767889594372498935105125652970874376776761309174761575174423517101817710238386866893623398578932083441089637670586373703536270341045377224558305266824189246979997495034279675077202260238213828592534481725539881434212676506978895885702821680167133810867334325754211144727004289026599395007654453517332029949099845928847580976198405859086243229306517673930101811145094344519828421688427291728965480977408057911328627014769285648990879488663232469702366243073214774359285433337457414684558073891624517453009246236412163780941506972908186615364805582404923206279979006075385225012767842867606116392769005444404846059605373299718485982539677137294632221652037644336078826170381262400554292191117423201759087834642405170412194871775171883067684233285737679062355688958297538897809539824078570558028020013985120103517560010946673356996962624866225336572112656417240319249910027933793917862077743545679310514703050676191800841000481519065950884018989895879084953885747383736911036820114395364988043081948164554508051113491939608190462339127179211783432298563493761445856347174619026762185832846268694624860056298338996037972509432606477959108847558410679762611404438466156329461762074712744787207555763321233663426682170818593698688646649192047341566129612483683766590294482166488906256702688375576608706145281759595282675533343596670485666534432538355502175028656877200774071592175344898868453851096901234760013162599790157532615965673054643645076609444771919968014425374012872608252366401401420607107600540955775372245230118915237908872524083600405543354817771605760455155887651087211806711254587755062878144628973976788465374056316155571112150637331582175628935647131723963911430375311335033444103393862125142967998756504836218602219184731608552128404054549154194541975743951725029193307554058022276816843347967195294932981473757304199018449996913609720947302120248731836239775703113267765427140209153690218415332912905631966705633900356515165945280634458170577144224907958651236676912788809325265069108368707912013647036562159393101636420755058142498030039010865902540833513719486766314509843703384033236508080573871687982448207693461131589138601583258806916350270719269550668672628777525257891602505147277719930573237133050797306631562594430468075787818105933671500231259398715406183471640084820550022300275014885718899419748235591544295432378617852649883167954561605480778482089508251233706322570716149141125334147043828071089168381590312432516400960713633380431580021155749352700021288487624205124360227230956978489110048579575939357945676585502300118477096696447739569575020210327030615874697564873544058722287197707210789867592955579686672243691284610741598007899511428703735516399361573479236431578923103281616657396645908912406678588500939600560561810562881197745569172705047416401786294686715045616881146756072792126248682636388513847217402881495503700626248353954473627654878056415616472541714096772025364769723872431576828437846742863132505010299150023396916394758445760894860223417378862313859622029215040164433312143364398498854002692408009506089303126208490729889330776393621343826590022508324780897956522105284957632005765702723167486795002295270449401520883812442583321945668111426368611749059745916400124351824153279897054991700369132272078370845847765821523975263705777468555095957659610543474698284568687904175441584084580253728968199529501683167308489163902718521616590543084603564139723959616878111827878374597297226269543047499948154945065700326575940088121877426755560011938995105944215808160485416873597613897706586124774170412435558761179010724038816323266302276634692996967651057551045337757961074780806765427029012360142703188442140226112029919604073469068592895360913694986547443197034687977734682737959066098726954905224325308549193508626970530349331697336956085567159036307566739777611344463384836249346922520127374242084297986513279550222940387961050988847537932620972179831731324193614530620749393688824234887645337335731545977853098695969860839967753882656422717624298854363817497109030493397184657712501213774025560980459186475657988821488722865351238207249466929321558916819440909281732320790584615245033877592625541605113780087475732084084635344246545773041981348369742303198486973951265810259085515409707313851880237963811249715122032272759746534805506585930806486865911075970067148474862435757282151580859918182386355108898730511016026922401393470498467011313042604951843143527858056012314505321239828145133175076516066627625249689634976419342870723776185519195721023716420751050746934593938459947824022675561945725368655001862217165247404371972108226412573449378921945432280364179404456946895264235624579773280561280479846217051170011588729684296533864711110085693351169853679016517410212371376139516692757983398597846802458118524736793032129062235598622751825224944041706249316430531491157297303261250667286580774377599081785049740046305538558591493536293721916778794849688343795578114660869081279845642023923147048678590800117746886221141471843828357333904859703824147238267433110430487364456549778303820051663161192139596739744776264700457002407199411361139964142338341912341588347391334698084254234897575596995961609331618773785551698938430478653225405189426389592072455321851403160971272449651811748457554871064623869133837216719404716494337596473376227228018842984769997234878004190773856886014355832937581867449850996265900459260476075524729492015577779448991603245347640942320159429727982272581413493305836572513805250640632282404297315931687218125815211491015265695648508482313091959966920764272246429192232392030586661423929844581732184634083204777506635946115165895388014499808767569727272772065237721092848077593604956491311512070521941850461427230004648647769162781152354703047788721397240038525566804454795471807420435914316033250319552735484208391568442792406568029275216151080383018093820243025219994752904849460495059489050494062806750067120205677419972674170126938900580048758631586788564188309549136638834564577449091560377799044084404570562963956078833378067659969538775563381614991143477592800407102596847863417727650266670974984621119953919947141551817004662678266265028629241287692921972778923254526131939668791541899490246304816615741547385048321442641230171725212857375826039818465500896888689345940765974440908777595190727717961166122430817767752144931131892962753905502482940127294786118048448473194000824363306613986527470605025695281916361626443244322875526637046121183408473819993510063992873203557935262892841731456364681631014377773496811490485302950648798385500181190723409689957175653594791646778307839866577751341522928948908950820919625658003980871072237816321466663938543955519251871647615747257546079266654241555279324387484187594077826069916268356836060250251716942035595219633460661554577001410031372076258972917127455652010831527875468393768411568880334513136365355613374097644462091800428328194587831742946013544923727384331461001559524853261530377382008873889823618066817159998552433894631125616173338772604668859937655630499760474436532672885890280009427803085333617137746460161389116203306565771872279038657972510661757283768980386731055354298182997249809309773463514464562682000911606974995188043999529288780188237960838542343805844146566999328894093054845932196038475358586017928958942624569459036480644370327249500610962404053796127972430133462300456971545651117352072074444006539074557539074937172183407657791582437607328641175714394831444643575528569348167923511219937217883561806467706522065080372807826253560610824303721145244915424059492568538461082302725380641087584923556351953807227212463456658452028075381325686306125251061429994855900033715804786604404103357996406255556314552236019141123252740998625792909704265169065293956355391659248773652159856389056941224378945808892044738633228675192216367697443328851412483689288741694266931492811997947427493875660736109514813033090210302718912156407324007504695234797285918027217602096277080833920256014385330429033739339953268384840799675808680296421100311495921050349246459440493917300922290011729564827170243348806162429535652222888892775516569796009483228240099198151395809308084494464159812931015235645205673004680049108057009662426777204103460932352168551214793387221297186998865889706318585419046059617080501762059599096992757334049194471146006487032408510670184142507695010315940731590317651144483331295329719437103214700502653924360467174640055571005738379578846483598366663363519072443342015308405074094868761096870328784493121254963303267509883302137975987589130008596057164155380096453576634624586488729879597650773716609211657058444794724436843331996915113539586333338042143902476507737906803606221416857658769423390894012460506748586437368045818083963512418636673858283713838118791963655692460397589550320872464630586762420260627003219339919616696945474486989020424522156566754697890883855673068377600883519588777502028177131135094528237028120235686054313740751625896125482722173513958836361868543039644041731065921783824637583045177880580563406198506711422175311427959252422310327406957036071608295190186009302889438786356846331093973199131487599263345465840923722548369682856386408884810805458736850661607290150333802538056281374814212540995116682772556585193020046449814337450455285070113730986093781663963177836774785921030565791400398989818866605651141404150674490307674712375358980639783802600648669902158903659385246049213022827804015683494825114996724603310344787279030280072259876254117422615775516520804645257347424769398390356825343737698677556845358880202623849515184994748735597406737989194848694915575884382239948620220504607663912130489149257114659771727448680882725539543949184037247367255732356245300374888295369205661246054870250043217932592393632361361846975473691727885670891563018717144487620485852493482943908566924000929678809891539663616442948423808668021635967270630992720559672752835027972322241519460420673804040778932850471475068868681610107445465024125025967565236044353914979509531873337973565661297580096830591695712750039449709169985406828051259698168785904680470995278689196767121420184238139185594024574033769419966404096058395652855567941744482464338094363986538654510289784248462359530648126992648387098077934601378797105704039642526328253491246311104598635210968642673718403980669348774839386998390456566058605787790003113464107426165992862395600140622218874281887697796926145804450988366498575151969166884215657750343315858907382426364079974609884984128463027364363345213845743769173716595862329334657087930094559320161870624700511264287888225601453307214202662147550745080917107161752203316963216014183263126927653867693640910611073565104056409207644092623992406159518085891753156252343053076697971374181192445336134700015364517498108340582765208349907414144912556373212787907783320629502435315088637661808195255922270175914531648115980922449199401319389411667432127918695415392763973746039038885999588191144810192547285313419909754034637757847663129265085840541949118164622782489099616595044181423476916515224803238515930440090692642713381053704408304500506904590722142904928531102979958483956984267215877083425918280024707820083071683818850256832445185326910669147924210636277927401642627648099209545444330046889233807672003398899889761645657001920577763957677338313489101617261649812879637929737439489167964812538068909613459947817032823741077684849553106646000159037146360286917334221086962849463464255860062694986935056186405610449416046828665651041562269943410030740298520467088513449585667998930928826744172484236129617632630881561694608904088394864931335165739422377926237270569580206534938331836869739560173945727690800916703727256032710432423171156553440275110973288183521696552397947275159353599331641336027341027596080176417211029885486174959192589280333717304804120826210277554877563105373044119302945821956443136920041883134871090921583248162775334124923502850618255309180012465649696119243367357730968476845393690685216335009713914329362997752890707571277516089193057200816706490168988058926202669795480937371964399170459920405718121280078978899001078048117901027219115105519859342265788961743800192669403329755828236025529330374936742237957803056402198494452329107037385249920457896469259511453471782753149779183524794328461989061933654948675396001924215518686650132065483246749323454306541033161086778732721559076605897432374738261545062637239904739024951239299403133435951740897282306729770500834076437783105704847881647520119966099152773231700531071273029031177910380342665821080533068870072760587510693882794751737987506103136863221343287057596093481581474550975159007195227300431141654772084937374765510900181858237464244047773403659237229067761752017692186669867027298564266349257213391638475987472789492742088377289826240882772926038156603559906251087966433287913910841789811759754753580802149420071500118843505688186240792995083075122771954965151046242511020230864412127910506632002423359294004531309750631819560847531677803791631869574014684568834015939685975099687225927016013678005643775280399614659874126166848471892776911478126029760023805581580176239623828706239316508740837247118914673085040175252247372989269626048253462759776346655682771448093463160665767832377987300206815900404916126325523460999161294306825143417125909947823749310190175763643871126393237760193542869874242352003428524346527467039457079559123979872697326474437877007193836833315160716097621985317195906132358859723614912595832581468970396345162088763163460268058828697553042295110978745840163361973421836810913212330640096874663075715711948866753071141662003399553077528660276077610583394946596745751525713592357076322142975030342618883348804277075567987284588549140073389927466441419722317773858547225870761734865483332774025443097155095882948618995930634748506926492847758237367346981981896184373550920162925842486039364138347333337233210220070015117302651795672943337374238146024957081927787754836373711956077247516159156610915058956156377637177878880479159877952448135189230980184889846092842490119888558029049704729334304002135311789720350539791347689528857080824884417994452880324635911910772552813947383748558896903762093809414852290032184711522168268817633787755176249689777650050310753224161269153727391103540409682648938257532031542802413414267574193837514181003872163315139715366800030023157691337850500409768456654176476224967472606881873808841142686938977880291563305745713811985308172061272058396307276470396325659975434146090455610915400824533273837802633790904297975541544999519561638123260175995995236862656385165087223649622525440710572915115273394306745146689975686660107478065841025438493723898400283427147849207485494221179365663839892054792906916003299962280292992240647955508259265571301487065386620842608689666345197376710815144257093058287153898882418101115430853343621181071783387647242203792941689261806931020399722332624101185348334380944643101954740845450365510876755236637917986894089386716117310426838883117232972070754026270631988436176563130118624135797923321437554101144785793368833351220330368735677116661199979642996906537077385716520222761253574602406824295364016725958206924286293831365774149839114340904621424742507098815593345719199151252981152820364839554709329350812603405908872833195683525184547870091422804828177223270719071783114049499368055499137495768378639901806631048766912793007910447591752061731398590411812800463030015394884010740644314506262089026189926732509904009622492915584909342111380968588360086486072514607261824643329884500296774018557513131280694480822592146836723983247654160358823645772268787256331447100993107954417103839983468416177181235999074257474282344259393524755197803941466328678783164339867061598777215777652698861660563354223090312127928202435169806048633584685515785534853064051261701710300189288761750058514526120494007654431352282803669265226109401247775086816617252893752182479312412892091959892212277210629476186385630463379894402844060157343145740174938955550110846448956729761815749844027282480765047824694030241350547102747435921432620050832786892129023316782078314629274352345490992359746560974879933700602248155694176903699154144694918020460893981578966471130964460569207542218911650668148605996990964700705873288597055040351631695992431178503816583906984513641280543498876977103299514723586875485609737363520821711940443350205538983463801208103744944517769196769919629933895209826581677482163294025835327730089436383514946528990649606715571989437092442708023612125329433828639749120616984944065824496990529953170277155003767730001551554224524415487512550679741404300168234790546941109955407586290803444299945418563371544088123995352551761604916720239709030526976116352247563910383937910744554772269895417452692959589114190419687646154787890380816328830846458588889694003664989480044181474350482766246012504199499748146436760909792520985558167480297647770985523356469368944419688189617416643790667859698708786983427475701014986758401829468116181120394841979058542048695972118267206382970388966680754305458217626986127709623309546777440611084371671864634148970318221016145225027027345553892172508667375852822651261516253993949788654642656141243543735107071471502594828314112050786462453684073328618861515983538875178158641805145589262822954592520922510063323511587793575546042308805473150903111258449864948787184568950136757603638253192199570724774262903656029222265877325215247303001736651877121044525505889825520544748446158237262461520724559059308259505352181728203712313881327979372041520447486345880287810036407650872104344854782540569076410873651947724210604004240455708916280945072707982665461125233273131160368534282949732339583543640129823891190562747853449334897276172512049205675154013757391963619221414638624060812176736586348551630177823207863638260019961024651660128096065618985227410307772016878994885258695817795996519428398666000297547431290849871057251433928413645476208244203581089141536404550637495243632920253395258396148589485362638167581298215332845814978181048352770448490248547661998800399324117586271377626889531714578286656261690438439140331323264811142476401185509536122167230880677605933235324375719368871093833201006040438447286485060238441842920983926652675655858656505390518484509918130920264199886953883353751774181391960987232873592971122438533675903609925059920331933424961177786172776766732790872101939063890901224716972372089662000751476304804118715124723416979434098439286226931627370752935641650449765806092506526487408763009326818138997355143098593672485243672302392990658543585245095724290801345577066639684838866544794757034496426905557080323581740807394405267479765366864366496881612308557515195587374975166873162440576873792866006269016670759265126659496904795983607955719422283384015215904605251920731491244451610214769253517970525679383748610625492496260775683367916016589880554938532845048716909633499348543044231620805391659951507986637532385796048074872065574734312570551029416004635484808028184521684405846164099242015356563354089852066969381005942521895643237326648687563627308535388342223265822305055341794687044617289003740233491086897664179593100655146029965137366244543693696620551378037483707204279737043934549605532258416036056858629176752477862367635763115230670458941072270646177931800232602099861306802965322359791317066795361013327570048550120573160224095020445195522579763763801620501877403167107861498433398054791105456493990940571938790062957474826152039976413617183756020260356606324435529603382314898922344585249020886679729793478101133565482925327105303338615611604751748662236829873467058363286351025087283194561963731503918053452520109739321971981272862752454707197460445810986818927139515293858999573347701866903150168618824022601677010121464842174893260571071724884281949891788211112959750329402129460889225105109527717038445293644276141998195340321930019449150904425666121575580176014986662182258425670423801114296185093144855251937419084307598329932129660072608901054475301076632266741599802963187858990030266162281682275318641763702750366354249396308050741784155371018218904702627376011904675636891496242411628286859132058751163720485385670021908499340514549099039499136856079848705663205188461404151124194338994869381862053404625514604876934160351951166784610049553660074109267430611729169274623217093962805244069472390628992464905599285851632564037518266469514447516633027048419529743654640585506516346124344470286777758559327921235587610811924223044398996168710487808839038213693447674336803561925324853729783467150735262638945760205449911020933953041075754363634671542215787850755037530305858676610814900168988085293240115562852735796480525335850361134406216809234354693552273044626942912399326617265544241239534268336738506099106589720808906557331478312906554349919054311564570106560639500242852244275292931431987150930916323324671039825742629422013428946793831717828735879892094271279105421878855984490078175163240114674408353845429664398985586882700879572650109448799065333090127904723969613005231607122537530189498941239731760935196570545030386031185961718613477708144283064575721335461056921448220875246361800482790758852537547490701641974759463838454502356186677314389452907375705171895839452146625573293582679014189983282824807848648528158965833888646732233994693075048126927991857208583580596862484808309384069739988311198391673840110474343541445418833162847292344554157780812389078832922257110104080245907686842691768078580961702515419758390770505149742049868010742142913087074724165505800911438525344863667485566579235985213316583192983270301383584035617190812080264887036527807348639399706578494033944917494403810693083225286489276987676095670489041035812919591991821488360911351205173616697594563348072547197079163710164205962188260993066133012776796625450220928898844868971990000110794182615220868680257108370144034153657446787805747464688861650541161199190645525808063599445222761885026897934489665661518945760687415324833571411414232276998665453839505694734284675650848639561131390429101007469286818743925238880465040717777781838332659733858786778047352956187068472764253633382974094492882576668806702168344783675409353094729468172987209177455361960505363140172562866957110490286681696658831012883948486901532433478751136591767093396741363167528163393264985265058572642322379144578223778170453824523123264374042148763608189875045103243644519995106358262388135611381389817623633703355287355275462554793126569406356523004077459145610697430381012719439597376447621690395664043861545937291437696426224397135141555585698359514671744223940795932029695521036701682474702163139610854730410996228587312242311236738154978724731875771750567702384305366774648220300540497610267371914582596585771184367636963859111362990111940488930365731359755774650613196152334648220404152491027943630607305395822669256202793608028478300868204292750556110786777990263886524494638516068444862841487304634307203949161550185388410696057687594484100335752425041608885117244179429582206790388972950981071318923158273193165572105252833814035230233046498812487084486942058982808819090527531223362477115195803512675020742662391343537472692015068456924389980754996022140170712067215902144264170214811863757597601827765368990762460090517361173853777950853874016239167800019117134503813747213759892870020383274158907105182254081682327231410425490378548307736337740264949905170083729631957697052159190896932803807422310374575850213499716583402191608419320738919117770433506719703388599806217978719320099250416193754088632636123225081072133588932835285509514814135316156420687977938378911346475939083549014750034146817483578585302221044747163524613104565687949632426478624016885765426879886166269120685819288966926295477452700774946536898768826668774640118261253974237204691454745705932589741395939870835463123733993562225976327788047459877311658056807733575392325433924148042659619383357765592160807493055947135990076313492015173712853101280655759577662948333268299703580876394220323882744093148591308076776171940136585661856623975140105167400492961837851261278784877209161808868857558389573460882061016645055961807180194003892913124968514984880325725285193009696098594652343708561440550694762375515533115237602412721367441853979660471923697345549521329446148068356175616850629137727478503234384308206474666866263100415074756499255653779163666237787637588781417521175870228522849482525952092703051966221157291714966901048738878267315239672769263199861583792570235309004752524108515946512051215473054258908486958004724414650480100588573982529725910447791666129335865027647895992126328996203007000627297324491930945220497666329402324494632626258400785422733553351356729759251861719694725829229722811405787511819315888526922338774809671551723468563278536556593386026947208994334332428076493039724084020387269316973699733364305408799548217216387170405531746233400518387800451864334816464698021113006315489425047521140653876949547293404006245962481776506334639215665071437284685000490567841186863376661697049065322348655519294973884146698207979771871916394230661190263024951819682397598694099127126626974015642028993245043593887888174968768686418487579072977037748304261761335292034075697562224550644395351439059864094063700326643747797702336376598622626004628936261181764633700420534227892115778262714308214321246709240247422386305091849048659663447738654204352064351402976479061002888262411363585511449938285214862769847504144092477251357682602974592061718139200275568066486758228619549889457692868605300704771750393781977989874179953628807128392356021143347744092383468753739306768975223735752409850948642544375243779577874361990089103749738164733464985523809443917588141842918075436318761348914716878080650918946973802496777922711503985507693071460183578867064304174677139545817303947847461323149060309808876128825682444075488603738011386062857662082450455085579630476702824735089938459173821704439933482748144185647205311225273670286322646924712656852007023549547487278501801237793814690223265238101691307303077451014357351243611827411713697871927968417719026842368704644870693615205005638574038276170536379542402387564340107540690291686047842084774745881316500818625199137104100979574955589295143516618214422208185126975248422603892975837309888742581560697002076250567938363474066499906095405954705561384402722117520698999841042031993469210870377351181573625770102964476184404992115873176504210209939612530522305812293091177532076104541630317210750404127974934251983471985110377243518911520799001698877481106465071746404361884129833745587098625926722554449912588220486521898456054862316820418133082154605977445709743713099756318267873606389322549877658926181871132275026557353344166995632489049363058387079084637895684560126182321456557626663359979514121873792635337781663514863864975481304937015032845850504201965584702651562582471051765572377617346326142714309364783841721591417802799583160849416151357388397470219949906443686579974553176899868627602272102821177545474332825542955876207843763908999255449487216331725330004752525954878541037764844829955801868819345760687309162177803233570617772278266833305457222315175993843938857400142607500462207418083449877635511010290529741764352571480074339733960874713509464095333591010572458555797118616242595986734725653843529298152479313410751636446396381203261107399709830988076392609450245718630394656752599133584322639927258427018068655373874147522254125687464448331017096139024934882936866289428722712241545018395474205944988844415833442375502472700135639044436805957904665519093301050231577099322996183279271427803260352422478946651262487155184329389408420139845285675793149668160485835613117565294989770519270457172382489304097369613868693283285358221193322131503891562889527656019114030942044513790041304076277019734260825027386914141713074094726127594053495717054278149912327903068362116704830786317590156983607883816118401492253533361016329894441613556854994037167581055241619513347168715334178175442154899069689014058569566050412504883915241618794325101081531699700487957470406498799400078704727597061818194854439722752950970309102314387107649435598726998880589642523937684885131719643264245418564363378976347403025382951224882171703466971663984781476438794160500028628545241822721506565296416843130949817771387206166287205653112430667671178887544452335727068450584142194766873953063647510519044030855438809398261906763965406320257918509506580655665915542971524212043064095166004639499003679732024514871860545587878767971407800673235263020645393157275145697593220262274242820463048668174766621068185399464396233471068016023319235168549647513199175347358196898862461369645684441020715495990783776774922093539493776269650347370767539483629292952868243218379510560385049526669597641116730242202074473432235346273407463503797546960885490116075576403657037423910065371585575589110279670544936658236685419752377857591623439913117428185266632519290332578787050670112437712808460269042636815774669982927640403642393189845637816214281541706032860683297366201651728889118970951223019717431006616161331468318414390477489308986602966591120780841568787777980501708717002607739268974783328676401873061090146062128399045366353683918962156498576387840179403941957034354719163267410393225165553605516653288159889867766241616060355037758500154829268789844069257207384370727612253380515427811143769473280509588466529180943320343630722491048986780814246493118231331032573247660930730259826311180336812981911492447433197495521486706522866521654646061861987208418748256190246419512963447035225146494820430136326991493604863099147410318315630354096670715729901087348537070723211210995981319918288110280563368602510058671604220105219274432713805603287305823635694715098278539637338402866146255710224618779748869288492257865183901843171797840882143033376876787052644608972579303104048849693902270436786311762145984105375301330962895258807953641019876529725857775810003715209752780034034575436377601810970054668902254681869096160781753612576290213660820566365550260138769998629434280335440396472930419804397419291612647327145555058629960631266786025834292795928058444099783888286009674687484434669177310582217909156961450917091337795486175835808424822568406747501179636310737553442628395551920038048676963772075162443326103485161320789502994378823404626036601077689323994393240366938492608208402607347843143997360512372956268314096922937876933383342478921511021942352325325559423355672249501138003564510598022750126915841238858308551387445512210889662492452609229851581179616222623570770689838686960742542877112758001627323090031837935557601836273785991739408167902431289905325743317038994557948338816652470861877131954035700034840214999893102967850741353874484775142631561959178493723045513434376976995562488671289011756781636365448532326493789958495341230302549859068354407647648486974413802748698282066004500005430105043754650243023812077822738399851164789417894312062759604571591948672368744013599393584404507749820000568016268512812324661451559095339972463015273095491380057653035216092458989330702254119751618299564891161483911279115970899304910643623111654975306582155826214167254247445954378969876353664226256566221988222792855627797760447113974757120562993675789526771151278607664435203930701296264144504561403469426815783563622962092952918618443281844858824640418933654314991529691572997650098319448522320486638991755440354961619673751893864484053349251049835786270928894871048831955517101724735432014484206169172716705006172147268492614112489631377556058579933086217172066558998784738573879814674516489437075964433004170633025204152840101470155507597196359695078345348292539209183208116335246124962408348256791919066162022062725255232004313571313118037286153391912524517203399286899535570254656269767715601400649494925562260073755461410732427169562257560990824918551351225662413418745854017042574705152667478082978972166431297076103509424123303013042857660107065258044230787183774797790348888860157695740916177417320330166361414550893196536520983261711823378654832225506567268796861287123197025559804769398991705537201081729998733631731036293973326215811981417426851458963845926118955771762075738651276411355672298439865578714669648083793005770467569220833990167996580754790610349477602710562695382507976382631886717433379112847577247878524579572496629039040495750838883419543816344768947692196538683660923881007209585866861641831167504744248368676171338915188485896593886733522044774280400903212893393391421604950967445452345442174420897447831092126051364778451587340979820196256041145180694252061965439426979456884321981500983088710261378729691663536044583683658464467125515145924839543361499825526155899613229606037719876150752015620493402390983417249061473600059497935712867151173220606230941501537887939960731769252578598747290341120423564374663012101282082266605231204076848002285118555135907823576359220592251402639915321524449556270772099047275774484978231762494358638693668440141111453436813154368515239074888315541843253383489519429110548236676410081092598649325023070092394372498125399494226774350301422171905142461772394471244174191899104546271948476405450183067927641793741651238715422944289520977458019661411248050722819890595911776150670689082875544866566564345081330703467626511949023782737412696966161818160509649664781955934454438731686981393365324737057377847483478645976575023591445535534241272451088003812121005227630379638427906907164461480314358444290870043458850029113388232765423996425167327233234697046647762418411632966894867664574175813541576729434875100207834493183135474484001385150414194225996875008062817518611657835064075395496438261470306926324141205881309551050971123754055921145146629099726723378977067197418146731944711084563665235061111261375771256406948250708918513368512844230879657165812237399267505384368433778453707617253240283186088910524019998653196971963259416324049654788882028950013985373501679459555436607165462941306547860274851562396573938735259671817013074578753918312576146916258841856808336493939560932916788896488892864006536351362207863777443113690137042477786968986612224917442833369528085015531349735719633289641201152053602225026118147496975144339783952810312667077576324760550009122474643549547401741968512968305143477366055468592653479760522001830581980711269577035097833144875474837266487196778262196021076075109335817991966995261663426698022587802814514139463257053614996453020076668542024438230687366551609013900767145198072417050351574546187609087823064621617038392840872222643069508798897717717942851703808661333181862437208099087703057344756018665490742422055179820536489871769530147192634625317892359491377420718839942025565240501358878048354893594784509495046599755800945821553409270594767731325447912755420593162827598344679841323303935896765267637387524999381288993462329544537924856125424589531297907359141409988707154549244366990857617176590086801834195298062469006110355069452987912111110179107387818092041763568914426394964630382356267650830944955690623996793151930134120538083524416822451882252691813665773636083008388226498388662935489906331511910349692975801837790894346601178173129823717887309089196939565626761698243694898897264567145142656962219421997021113895520336499995024946280445102013446882439680733154380512703476188627142494731320575954988816972969904170042902205788495318555354971134382920485437199049002907442820653622698110503721298108228391042336539972326933519312793475037007905138624939314481953568096564190409863757955894837135713201465992912293253076980119751421148269805454301984202547702753707293572796031175525562320176835285408296189909224463742103933143461490902799060764149981983094968901350522434720960917625672363832331371318356443808569991813487070375399946313193191589748662523171224760531971244768944537129418546380365804326052386019294579697590576999548985316852258903811188160848029416358308402357762612728688362638001009961286988989037457094090098377349916749084745319449864992190335221331046336136938775002861076853589419700661867993704245555408556509078512127490679528245986691136180000312180506176473706704899301050627206419977200303562807041804426164874916569092796457005595934341053793837229073022457094002703978369685215059682587777492316751630470284151243919304026844947518968951581570526358245942734169938016783874415042393944206530797375677419875408689585939529105873339716507166957105766593103361957853760143731780280583289889155782159786008764483526879577335469430864108922795375350061605072000044828481899330859233654414812531199148320441059622232848433776923013529541236091345336493902081189530687927825924968023352725300618103358054405604425814006528570574617600557771841193045239548931020713012771852209125659367894186472573179682902507635666710466778454569354089936540582866699585240759198922253862569724255712649628059851673314608095242607250338238318691228480333011490678069865059202532724643546384294863553367620602848065344799213278504947629702880455342790794314388347312437648327801508943289538122666540525718658106898568764323348770816898561040509949622963283658031333931034718437587893332398394062388175298227749715479048068993986153622142045326375377862759805840899904869936107719072412059646540036734029523538108304414127296694268460264741417089138729513474041959117093145644060291445143062150980820819440553095309904711802087153744035900267249167754538230284909004069438261979197921997604658311562648638794505747246131968539133790615065667012003204749525197548687527983354145045780412254317072589674563794222439532117640643180823888640053762173188458498822891121516446536107166914367551055746926320209808684843749761173497040984551088318496126359693322490889601987772239380995102953838654335582534635691254676873901828334353349912522996180748719765142063518168735019786139302215080545744494521064677720686190279903644456578098251715224933924074480320444270023389366285165394546153207239130106182419645633496993195690839636175763375902494826027510958851341020322566879832955059726822359053230302869492138396328786645009312676766742237859890488072639365877292043445762722142041580526087271902981903505610577664038741212936887389064241705450687933074323166743931608051357576788532875517480217724121247056068088658049807881486989458244184440512422765168056101571003742537788272968079069812882261554977738111383774777095017814686559764034098222656144361433214978239355679949292090296641478944029470208299811314140745922712532680184323681129136826789242515552557458620931337545818165713181253720531463749019977135736332782667955667623085028777192966711424484733588182472258243398809389336526538798665869452485382721252353603772036262904292174190276321083358367957592569537885869730244721596608814443647525893098192068037145486406017577353664523573710441630295906940032911969008881621677505196641411182687211347817590004576106032064141456887559342720299122884858462928514860915677701324504736750936723492834233512106897874617388496018127756417847997199411980484421409585700839872975330442110311208770277698012106234807214717082423147537278041137970591134392613905033360731613400627875176572339387824870522005916043580158627702782266849507925976858793498981332349459977088530956890692781067035932790262315505493839730813617076382666654809025809281204864840254232538765065595803879890379647085455515295172808326644169729318613134670563996844718709696091801757046023905621216526808795787471221915328562894303254709817606051191490426229391355415092136303547853136205203976056368410933481273989395838409682761942525355795096854823255998253580699413025125711212566422522577240717260298793312651424842615677658505295354917182561839014646430582184847369856760148261336839398776878286946994224524086519834285529944420735245680308901429666448216937453453887917292421046790864339866789186807372678502882420663461987160602765007476422133166755779827242544576037272906186846530753029073963271957181458337664104718431293806624386114914100571406007034094081428703358203535980477091952938345699831582113789061027856432472717677802474382315430815552603592908192146813052366175547759837641985155983784441279272516824421686265941823774844932626140599470253422091290883185425614062599175357985092470301730217794459523436801710721108947900412176190363939698511268478692059834038280088788811514582203405764701588414598742178754903277218428392101152728896525421877995199250005061373294689554039651544085774068997876777884070181469196964454961414260788492057253089222308260636802092231270515235329306170585621452344579266738527392783145155619267789722384367250719091922824679024034785514240322384244726131944681454867166742543866173949555756940266708423189070661794116173808146244847121873390408421023155408458121134876886951604177968603650190655803099498265058937167428633302644934560221345214798139090715617437713910049592984951692322501544657684074216878306210854007074165713800031678702767457301790817674439467868561930438003861109430777744183108769580638086282607076947826008957778754105151396175807574712089167228201082883740680739983756666011301687668977894152602384586529710543547048713169090902633677458968061389715337586529155585492238671081800043488033644306914266651074655530424671912220546890035065614546388762556575420149467652266879471944270584532004200457683430936927986345030456417754210015871014447532656924060635250564676987159273159022868033626238114520313053205313638261874794873165165418758289259008724437674639886777567139881518757908914217237341755232721322268085356042333766026597524785276283807719837749555372406754143669116921282160298088813535443711734784570862982480590684206662226806450771104788588319678225235819891111406007761503253398191066997712122834311882755776823505551554332266845832033953108538290563911091626710263526052456058064051066190558764649340167908499662833090199711223649614803787752841943810881731638858022257301510626927417703521061872837473688387404544482602035199875883207669689469624153946293154812871072243681310123641994196332065637098071496355350367565741179619925108155725198225877362599071106615318760485984499183529299507548095435367718595086397182279181469594671076546897093893726776879836520304153592922196708537811468708916858019953641382809389353565872891846457092597712157963091690662169686316382696738521759456908002006824296118833935448081061231467397778975474009835705525778557702917100897610269477250856205449177671964588063209565894676750953863129776032764467007100964918889620763327117079906161146574255706963612217407994931071745227600787445948182540456263953982233284213646148194945355383967770169057900944711256125243980927446534170802078895307814570930984229377366789077556385780296972532119518191898157133571806991537965066406004146328570034568871814258938442859567478366292202285219373791709923542738447679449339988882930671357355041377910251703025197439627517212587317531441526814550434639767097817028334314481731877672418894041938645933325240178728180749255589925592548685692876658021880272052016089051844909931700547202290524793320231779475676667405388206237411645327210630674147072224202018383788853301641978419711900718637523169085785184836005913132628433205886433398556164515551970990189527355971477646945875102958934686630848029554482607489214913604967173661380563862685913877199845749357745478600067461469993157758249175118419572000060045999303736639329709327387978917173475129096965986694449850074339554275251136358944842273638740678562953361785099641320746814728537831373441322394766762063238517201483766516690792928964521401511169450376086863228726988557794094662210594029881549686685939734872106448604189162502493992560173383008095022986241825099409667000732115428705624633610513594203776119876224136219594074886143244838760608291040480432097513328122873350840511605062950617812508797391506567075537266494447994065516765841660380181636324763703580630920887499081014324529173027236122958326780388170913620236105360595555609670708694220092838161909950492974360816200201408011161406575901947720123097040010604140384677715262742625527184300454087785678009148402108284271652910745362162787446992840811581788969684311479718691503461165309591662633955482332082146523589231475660488906842276380492265153110094574357195487850875687962923080320208636552785276369098922754459761688162540564648004652520728614003622593847960327419658520131758950284251634253529173596935930047683252540100606643484515922868769148311623177900366611822424863094847274998195021350661003180773430184677498944061296687931529837944621118512493221350476684686620872451445762324816299558701895098417669274308566016174641332213498647737729979416800230528796828343252863901392278236843363689769152034939913734711150165813781622075925928439084650432624769298357131621315086535356957686381595269540767425789219015022498610660540780089701690764424068113643521658034795356772072819471244384870119558157627248200298769206763690845846074027278948688242970706477946515288359048673507847001963055011460325370580936651212227669205469700619836596717423597758576507951278756462194034616181557515115535401047319817833803204106491487597484543746508518650939905504355872968853387431882483884834060910327584226230788405080719666201635938170558887217737487692014893724431631448156581597991849120683724492487746888486057621456912401890763059185529866152967381816312844065059302595687456892463692283767080887785574067600371228637144211906132804460803962273954545840884244849629275666422018085638465315979392218033769434082310253486856228878218861856756075739897210949148123248791324747338223433939048401852824614087943974937891804485554298037101432115016646871137938250847310954208640793240279328355104346977394590461025314732500216661316255144120293813282549727204982696634849688361703956011327644824917356057989164431890350980065926795947458718216892074733222911225456253041995414335110882645777191214719534365155759247894208040934797466338147102521696149201456530579168184503324356159100758642083025897357876021883747942535255893747807686704419754400090002832387947757173410635487718991118487567572929178695769825223839538357243326821825870126083859684383898029843085508422904631896728396763489343606823391248218686128079746037760719245383053241756508007771457096409060154961781853967385991814695905593683288981167759383740018312941585476448808323173306613592849601837550868577854750805811687482521980926741251110366626936191496943818502591781352658132530491110180817352470858537834517377181831115387428327874466276051648772662483465539670041166529960881288769221004725120138401134967126449424557884147766334122235476043197824552731634607914524434631602394808220106552609952436481391473849675208942805366781033426118437718288026987972207210525390123771622263743474805915688263715472953556921938130018324080817189172487025128550500811473335408839310282784214566469398075334406450719793501930773985462905462618482642084242897914954977929619236550141879916687713019116629123272861933421613700593467861711847365510691912447666686832124021771295735724639194551635491420350399146622660324346612865759354844387684633085184020896921327550792337730904942923013791967560832451238449194010235396877104192249658713017086560432700989261828555148428168431791944954701961590179790812493082597224169081199643645368432623441698087941200789512508951914244528566540638644194764536422273036972141532963947090882911848136803871941839034695440406855311703449930023736956833110318026324513955230229701564766640382250167933266106674216527089437668923097487010755077023767932451868082238980509819112923613625014382886198811393010968885310907124533481340196736387621816389294723598772788801175345535402143204078360619261456688286913285840148447449032564569506533502182240596304976113584086023625322180625135014627159163408339404762958092110099835223110137241621991422322240452770037553230383646989474701627108989087370885065797651295708747578629256972756623775401321705855564072291831468795146265072291777086544120934054531004867302603330972086187051210236958072973577002756993321484707261261779161696787867490019016320086432281144233219340944028557630950401182372789164229660589728898482293024848732033099506282458248991773617520055709221011280253727019196815351467672578863497693615875903511691871226167347686253270567050489271990992979528780903236653275227137855268803803509416992704418079506080574732797986190829253342791539219194481379195210876224722769623877618875515835366027884967378025405891065377198957293962241187863441108478752504777975739793551065388385772965193477040794199913733106196495903520311339301677905082568906876406961506968520422645063525303615174738452284137176319677938502473867351779111560214987880984604880116649938689728618542253698502595802872664677540306411335641343138314595964466278727075947267078849625069248183638515257715594152457493957583448377427199500842705293187997181984987509798153572197177531813856360785167291918638777569705763400730800825724232135777258512505021994390757070429501554024193179420592734325970569844024177577402085827032232491171240798077958257676894750476801104342752683857107509585875981487551437795442398136139088236276154739342608800877833431433217798320881959050618272247652010235306350975514042048064764810089749368526064163415315802061344450480918031653669055729278888133430554308859635685969198452860250749558476747676544732226144155899022662510958336464398255361841693875005413123467382732087206853583470385250222519033775023830005702253541406329240462882397277342726369796923232658625728359215572163498256683729774403874617113128170863280299221569047927809338135817456397003220703866640949211768463068898283740088051918693959267729505126433230904166803983281843706816582195263995366852842191308565467501407662257094556879576638667070284831002648270325434640522377343859709722253591452112056598820674565212618407377808420312335462517386043764282188884275961877032019960824829132538203734411331458261052738793042267498685029355413637502367433288515895958076049410789903162273500277640697240900164536425987236120875960504388854191387380243151120493767149773395158612427937024527815030923819745311547851714213992247531625478949400375206005204663258718862764172980606244162152363228210184543102558421040093228465042487164803429730177705851929744017012014624301295360504696906719311880524589964053322825536730570515089073575032298301218783950212201315384824502825613100131587102920580477697783960201778461059644913097067649198486260979159281322932397491480998002225254797960548041869365877610390986667873023786280019575587846951848370163761683414482210205615219210930094450134168770760312200583791686150542655440694873719491047777252409696116225592401912621608163181268487833662140799759434385620625375833886886431788446025463913466253350824079936990126967073605994058095987638632381002002206224638593911703527892443462451531311446921929763749505016155674488889852224004677485717442692732917724346622870188306222877529623483009280952046627176349282760147910869421501703278711939805102867626935141464598731347244985418788901666894166561537430291203349101274337720793504652472038951297810657005454765481680911443510891034384498433194848035127613117464065683418947471946072681345321499968691294095654185636807773036538133706080916650048284164011988148817524665608366647987345380246493732735825745109158092042894578831312587942918997167645280797044207318933049418416576647195979336543134952818409884188342547649723915590103600234092222779056367519992551258183484790284591526108915304795549816465531936127776006638751198905442283076695101803912192217215092602708381644209862574378904899964150383216114334086463399214338382303791477000058236555658516801193466526263947652436824504312468264646347776530521439192504131085752371067807528772915469356065214091886174509155110351225552378895060265546807607493455074749228949379572767760620082459303477969428324370356324670511337452244390931003594945573825619449561792843099136363466013278052096579261853077332413431101409361281710321600207116037782692194569074685108441859652700438372124006702088609513237556025719617688672823910510399174267968452130945984938495730373775475847953041100802593203264167333628197057282490781373202177887414106852094676174256137033705331896307633977484907450547593177423738588916379933425312717687540627049923222912354329839068312205239963565162418751982717441206010086651071263227871570781086028687461840405448532388691464746953391082451612089944423188832165705997879599869265788700912645681913460037930847836462230436047290911300575785383777283687980709357281132270669335477410778685531358077224244191961776783561365817628107704987304988517226088689423835504045387574822196760144700072176205870810071183673389009283513799992793415989794941897103128164301461365626106763483635803722957440959646742365220630062821858874584860235763055376613779880611431169460756114411238358244320166228405015418641617846913287896050616383185323793318157764900588717581983486448535526072238601073913016118793878852690752176446523073785198035873070099918027400353423404002752072983029935236615004942417577362541731024226340627705096555410885969002685013178527218095309704914284519642265550625180960956900052852169337320701408512271029670814479290454980757929925590362516039594192856116825104647997152952824738133165180205912280357868069592616536743653469744301761512274287891009670541217183775315223874600636319171368205477328999258547121521247327212520442928858657787339689554971484602133747234623651129119161899597600500272751295847285194777231638364940787887902892103048182935342295189772142868593233848349975967444499878587634796108166331593096070785136079847466444766778605185838443865526158738513491690284131636186595978286987311987380297605795211094847689454071686372332338889984804855734700260046602267186975018465389328807721848266458242238736080847478489114526759337310617279505069655835850760572608480713113663243602032771624256094444318255382637910611737920012331627721731735044365565208895166651839591931670717178730573855512260538284927197750420918069052438006736859876230973025331696520815068846572940703323656808113856552043697042345453336317407295609611515046382050433276495329970934423086265165601028980457097294165211964132967707940724290340695652501335292968760212304793101123338851684899984398748566399570733956119974477971706698423302324984384751421300484131845174512947461738063773167461816080075899975849510335287590354002992691684141464059908784130494091767092955460888698947409855762228053054999881136759331778402531652463287723592065445640851551149143479737934214303580392034250297735716722806080307102939566351730519863015347034457771466000804282026762013791858184384091163209000543409986581843895529216374511024408481048080692113019080147927332679530559712136477054352697054651434194894142729860996581011906329612435785816865102817940520133259897100608365714296251166726977572839760124115402117537350180369640602262889974964116733346513822426717633085760495985530826206209728189070803450649813256981153177584003324250040497419489641593170821246435242879800465221783862054583778944369965530318898072968950607194413669055196936146260588387154233706031292568866218580811244168370514190939455902931280054503000307489250795225884022686868682628646684241822045540471082729402083651963917709322025013067205788121925692526359781498644994557534386054329639110679716267333263485577244809260875159254736830540273199584919177616691876071784424096426287445646331462184826156868486066380593335065809746327824618959169096946517290622702451998207023549031708488221435490028002799694988063291288812531739631639997514371996360827392046257296173021668314786958331400833268092248859284289562812101067036732402759964043560511652789393100498716011354358320767858183084418625687503674503248427522310891002237779296849681404385141832513567291800403653754985647618548810429184478680288148311568012052720860275993067796038932140285993682996369460416489249198573491373030929296054849090247488100562443354559273107260674180081345446260080876106048471717324497638863508561663974944793223677393081982992772751365546831950119703692613635433740276814939815796597360554729990285262483581298628975213960105623692875368425554584717761129401411540095860208689891812499128536707214414493486771678594338103652307394278064861416031987527592616005580552825427847956261600491549575166513858928460002413802615411534620977268675985807753768892678064916595329681632016561245480164220150411540022104405553093798164029543923852344898400312256265638178140213475944788897178667553633610762426642824591904041600072804423034946785572111951804271109971037945346870687836329411587768788997026531383360895441003830281734033343801286598190508010574285958203471956099838077119665486195983465570564076758511804414144199647548080929772406930019333812917780824342618375803062630914963414651713521010807335415870486274569727336693896375569309964453845883499337802279874438200261147014426316734995740223618006409567022277139058115690904233138087510874952317763506164462800816216964884220894824579105817874828418670142768015854668236465167443940070494449617095643169104126723767312303077559581925978791409422966963799000147832645476070840033236368596697314465673286744257947087322025725217697920571690839510201729073555946594498161418139335853374776512114452021620615155721571589953675285813865635909075005580535709302571379775200634348160077031049799736360093077527315563557302509350692866716497043872266526474032409776679467099593295284893438107424893827561641361296811173046165953455835334152856213214666985479154635381104358490834398346395145948209249263416957956646921379257154985617706133531065495952203283170027014691214824720101679601149496827117633866892763872433199732590250423721551017899952912589639615864748275297528345897005826180600725765065931739992050053546028955405307909056641516836223590744209284314830476098895841282244928854222264700057278634514126437848940276493350532978147732684284358069174387262599069298271798464297021708604131058263272061287284817484985416206208768619213190717132749224362514867382165260549198520285933386607483714300717305967782015186802513492460866847696534453325990908754045023633049638807992081829319717391357414458993040623215250364965132011362890506889059293044035356229986515416093673447490214290701208603554552546248938052414500811048197730716838093483409210292227410540747292474332819585186117307671972029078712105347345059273875510663451917904697657352660119247201008986539277157141511348167155198367813261794599976367676958488542413120741476514669419309808259507451487566236925626189967132076901871408910184132947786185306771406459838692540587760063843659727219692005595227564557681316728814264080483341446220631660054314523904838092240233500572149299147001184242856266654239891124621001661498449654405047965645618128462279161408571039964654853450974087707452234435971883131987975471165301673540798324389542068330370177328892480695091093455394149684539876130620180251544924800662062416014336063872917257805108269271243258716660329558604424445167798631006482513457850643109146155767158894841041473510485185535537776229397925813687658930095816053365149365178376229895336485315527811382463749535609936336837047863285179858706434411106558290515566270316861476009346534924377141977253374192370069264879311643976826108788832562165330119969040254242829672543363968628161059368996202212953125375035829569150855575930951944523918535214716888694865402052309517919647077375209062159099629221430254699243239846685834725443203676563783960034921522794248124229109860479216068928515031413748333312971617300663650314144352856977163140899619820161297394854131091808055237645814869035139880012110595491887202025456004515491366443521954163129811881196998780915847305148453210569276588142581878132342689323981038208256902351463520947094490277077963744851890018668038087021120607108838566698541274312032901637703614460852035405988001950211514472172367684018998558006525744584717351398244446743509418922099332259551624809617781129403355940645207820172232433554378364177363773365158399262768719685545858116819048858820165551827738399324847577839386047783893943331685830107217823052047861736716271251703713959653918168865978148593544697724960797005091367104157336831956680467967986828329733115248167938671704326200621570609342693401927234258752797396839978564426525101206338233453004866312479277173846241963873878795085164498653204225411347150958341281442195155341604907201298933123722572039861703298619700831760276883726419133289805826293499337767839822873859047043314332423026797232791903167233666193777449904356022873772389032078432353790683687468450465041341287541280094285912502408688919233876798434308820462462599605347682447278472145630835641056937851632473823591247702782219638514087137260466293305634536296201215206282309703222545108994485394925243671681881770670219529397193966684954836931711315265477870708107419737924887154787606562077611593841659654164192171099077690859104198504110955318649730717594378631872486662215402998839958285307636908882353977392768396805176399320286822228164711495757927168717403081499437667405993277720272796200770581801413988766297837598217202716778873707075095112526825877166921662582503438224131649256606500645098623070859396802247619826103606644905233111290456414988910773293776559113590801269042608110051194093281679961946626989268075073545214222412631870226998347336370671043317613660869053743517432254240964204024704903459302808342040711016505702151998122620868722672683729861696318850198986636486623596688150538969448946785613349050025838935391409885586725083834091716753430860454938090136993810756597171640614269924659621456525112458794566504528304062349396925599403040090367010646073610463590351616613990878550253823079417814715510938642047444466224026304071465848965886003485274818739834190136710578978547751144694188510712234360536995179276736650794614462308188891315799657613070353092732723771775074951293533565388766969548581077806872622709612867096912548268408374685891498961062253430745333654565511281068682444566037640966974503189259988343989134282792426363908056238483377726453432013721820786034002675914774505488399135765901686652630466400451785489895451785606060002125050421446299734788359881188399886423796556400870806173018103579983304130560016203139429813347030672064207200854450134100292969785944358852427193592209204661210252690892249883998587227854765457202466171237428270915292606270345588862884555570580001121521049389661552626233210045957906883508487519972811421921404684971375120405922230481614756532568795268877860579011081879126092530137769469794049382726145154769609885967892713078803414612905026393389094948618336834226387431780195017171133702775950095789766930102585577927506933505544827053060049413503440891243690606236040577859891199679820653309440022680912398826077949768510115732508736786306440894113621941406119109076856468014406032807407004476579592565666518049517436808620495986919129021267197656116799602461017542143063753713504835925615143043060705243805903682326429942781384450516281651497075660599932898781285683972959147210379716950974485845840127814618767481727901109818652235391841151681249256099529859393774798255529645666262280807119669868679036972786097781250842692352267983115606052880986397241213966836889099573319617678067551763990402613724020773090823474954331554900928545811172228596938637015731248411549627214324397947995264060924683666592780886377087219878020353768897479195502614190094871912912851958248749445230318609944965682963023631558686306172718221302009568443476487884291973143377770903655258951217318907098700329540362045127781503949167954479452378557516296142018624764342097950526813984794778578766528653270904284331600488063246259919745074945232789199043362497896055402176931026537418560637603439617579934659077635689366694351558105200806753166305719552398723647931357565334755867221697444082520532714349054846135172466622249228664679628036868456824947232074302828491340266110619417320798077956272535023822677878818167865238438804487776320380554057495215033298396605938678074752649542203852407114099836170709637343092880380999517352398125135712285599649339709599916838941919316538739466893066813057779024625283532013525965371543252334962046789525947495771259210254238878490070663414418510296536423283755307487434561329743909459822490888153669832940884090212249309972659314436037616082607467135881983799437477784143888352774419165437372183868773567026046370553164675661045721285125125663147473242190790940950402204200729965871284197001076612238259721895808786000265498740649249357584106333994349059359622100170319427984045528013641574911814281905097842048574300763118634302424304457502522324295123075602783697291988818370979987682622472801788310469719965903290550519056903245344096467223545112660159799410617507058197124328344244131323828228257692239775331674127521741928046922596572083404162318920409332846822666538350722493937308118003729661563591216840069016150411493085698158607515301205552465037579296355149037890372643172216847089101699373400974099485603559099866077072845530132510668654396646138370592021935412919451389567000158391905200903548499132141967323012767943884057439074109843223590932114476477915559410483123946715653035485022407462464919422674620451169977957224747615381726085984079133875650177751249823278927653721979416089113638384305968956035750712182212928452164598393605979556430165452167436335315662562437273090273267698609756442251975256322246708637942720558727976372531534312713805185775949586057978785809429519974980446089080096862195513501468836908190966357770332093333075735462243062979908071252746481778416577261711148877727859007840726475048305286518656167718645782581604791456147710029107811038845456112355870834579023510956559420638232468842157863741485317986771734800694857635062269306529424458296796998663038916278290521812622190255170195871126868329622177222514760051258982574763804900204591001101446457800155880217008433965848503565703644107908424521252142070145079451260477686701129838514097083902080017033941361700690006544751251343521875960802066257124148431427570867221147324009625494294685125256755965347563612459955729310789599645172879998684282950613053877801977844928635024650992367271698048667109162749281108801449268095521868344713605421902768713826247047680375481179795290013143819558542339444073365835654297703245577392591108060555013281824180715468703310729055113748744057074679345799902026371676498930280061088411539049399419565231411318562577376864014558011241294124120120572535853961819064944294184142534339443325668689996357725159763197594591392237063658374304793442243977638042042929678451101412475160612928640372218439925630031890911041949266906468102862868359713453143101973866263711968322842988044173527279331109722364945293019596860490481312327873547434122228043567862628188166500964221329667919011313097667606696970718771388783230374797340479339864541006725062666745011088147735944942940084973277750410199422087702696022140993180328744228719457396813548838858556731586995881485342728257918848486790620975356465169351249624957050787308227072539843389463906970589241461641599302435473226940728587973057318194451227730196152554166369757250605624871038831798311719064756664876270966258844474883384345990488046667569666703801485060124280479953312387644815604130234356052584341586351326781823290766373637519023487466453250281650709322709483721785856805043052642442610329019485634178552427104372840121187863082589769598105525111284804424128135539349360628289868337293911442004337125777667481321427773646884749170321573163705536255611800205454336931665436595896399633292027112084084355690339703769972953172971561416406382071848732020430218864720205579928133707866218954547025722139748311100675973541174104189592396840806857715320028150916480370664394049619861363269004525403245928729573098934812288932363161535324086313393640548216601346240481323946201345216615657145790800971133853795938890475440198041278116836394693225083228540644538346043355695138921181278509453265112505386650120462019778311741627464949138059247809659495750953083526424897994612800114583559181894681228685782613248870679967665221910079677667315479707163999779304427257561486866167031254048572634060297138464439152953934783072250557218006827026585039377861771172532093594593157968375009200582321885580643663273373582028735579783454371725710441619641693403568471390023600623015302702793598809262980726506619978058767396999901404799763125675752363257524408621129564505714585084105104588933687547244905862729517686269170367919694505004081615486829329202513856226325840516784023808264875018082615849627916552049556232214096292201637993783697155965397085021433252039182079043191536443572691338428063247418665924941042319295562663426734769229363182011774337601742408472501358214405370711235683890413663315908246016489849629577968514810830620899583780707565336134049159971852940100048653419371030170006804267840353866915489108453697929039632252827132880349995556630267369759835105333982787379604796375000666067622444406344574148312234340495862939544461100902855937728659396560266773956262400913263546982339325263173804013842798214838660787021397915749509253268006048658797538708125723995875014563702374397852632486048093091015894399271634649219583104417516861377511838299273189756485458394927739948419908640096404736865646168287954497144917601585991017929718937186088420737990143856438786285201566357533197372361429451122494570922568202146203424239677026424304072569007675349068214254372662793890000761435619363693543893273858322258569907582639695806187744314715474385188363436864760471012578475253976596479664985762746578369982573312604927422574410408988321369450207727515097243978929620320946619964900947164661846249132927046485605269076061168426790023889771011015933589758242607662843747768779882759879837752256251910787917217674393046744234948055202725760940549705148128487337598729662587972736477354969286719831393816433782930420470480181528307191176219904658540626362401114605821182897433763798743995325070663519312373114625795419749067413915401842442762884020437971852621932344180281718111785091662909935296689489831730611035796021272812532078401607123151741661311098421595980102289482518764644296940597161392557425393843223122032947843943269906537491367683488327436496947663069646211098465966434031203130284262588144423162239072834525535154675686014733712195724807999544390417598455691560638941229491533499418649811947608773771273567268905929297780214274098949945466605410518519162125466426260422509900421845682571617294132959379806529758014395033554400426351977419074366327082331500164325509636857644089743952941887872722078918459142396723902792800852335791504081361896671277754021300121705778913600507269348692649259612615008059072540048074839721154517007928931577418223579876195537479985824771454448040712071889544109003220352188170798626566155001246530391977269747389396410577728499760274017781013389629223354186742592706462185618382945357051987801559069956819297548496636038611036513265384893874343677902742988591863499373839351700110967575398863559840521737213627731663874393631853393987713946290796801371942430728006435803078309498428662841825501704027636935475508190520525119673941952735625708500252106410312984948804352696035173901991246454141639640632664094756172737377382522551981981670892080168301442051510832353417928897682919175358920175402727387361016442590708814770403475700133790626856825808306182360680523541822930011243330648933516980565227216887921139460379736445123677576880149570055650390333520676338022555904390047168087219950110321950782108745311240067086569165672011182449760327342955301352858228723984992315174431682277457276440816227357346716414371515265792921215737132836808262920612401313609964706185628631617884333793927357656898591663645806732809400995476512822990888045707426348054690196611557990499795858640241461382845626262050554348844345774388545289493321007407850365017708067458330711124695104022362899122707050523245305630026285763025218871587945228150450119307592293662180560384928800539014842945175250299214105447552310255604454923390712442686490156519009068423006703735633401862729467649350446702890659174073374428367117750682500897330004372550498491100007086932657635529500196341037466656664739323767014724524305110219908045140310340212000832633175687397612192042274730271280648920426533343054310215586263987431290429049350204078330591464826081691323790979777554771424877938766695319344704022420504115308531898356416047211258757592743868330250313110222862924200450993453926640129530402905291123107804941684531135002184013909871554058499762535892076696023672694609316522351187793054484151944230430390819203456283702527219925552848807035902816266418762699060489708866182786267601936234675497372076392307956822821494706699664529925971737819114029670406354669437189329642316685008947287915584889568569898491410196131002118273757148415117350132377603641020301801568185641726832196564982983371420326112702866592639127396144319466704099137576078605870469186896011533438629443082375680387896769654606672659017425755582450804098052648697979628916659887383533486419713458731955529170099495166705860032877453502598829974047037148484824779075667877794954071811012494539130133900726165368545431337572526744996019568936388288734298093373556584679567385505231134362376321568407147638637486192318541712105240368225408844760359453115666705467517108527787600754752504335613908629733596268449215092133699015308356061531260867351869286162461358235578416497046071519148119430977192869489478800854664012728395572287432027515324949207453254257455156570620195636316438235006620887584013294759377322536526670114609313246203122722043742895545661136106513833861257718970276945622465058040478743794657328384378832616240934766996524207660051354993793423058179929403860893654072701771477834211510629038216209667629188161518656208610259806963253554304318258905584930640781709409525547573554941260862782523864574919361580212044017817800959278696315300442614299575711018517176561227602151667999311350837905423721178440711703385579389992711923327217843789773476656487452822669534523090487397854424358065062399620166920753171159867784147661322135247464424121341410798525561859645322601639704686482309977526589528109630904609946373090438206991101551976234956666110582172895026930154196311523964860070087943394794047273865101938489645759639755777422537097030081779569568604649228145560935959850782073343628671480193213012206810328809322921279667429350450925901845011979230993647633864486101236906023334723669027128959440713472978384932819143752584534160446357565381067113161393793414132006807891029176026439836819094902140208218858630915926862811772808956543306197464542394271427925309838729605681340152185586905197969324504871334959427620686149241121688730484822027804093572394267247971619632835434792149085773729452779414449517726971236213146231792826293821066031741366953240585791043166925228109691068278647115845814536706261513797104022868376465925645148451002902431193941963628206570308118328356819577276468662991756116252987692856257926862738053995454260107689086122617050754972555691507014824954640725118668694109024901728053301160948675682712175827259185931828390230264676425100616560693154285184123755611902357882004707300116598090804469810855984494042820167791629958747559484731131495279625049293707959520232611013095909976786335166998167203419559659375807622723589899549568106612333364601191940688608590219580802586672085350333602027649611006353851540651885101186334585280913413657380343076529205868640794937504222726863176169199617013901938187376259248374767175096927007381701699987330328381477276365522963896494189840817824254828531276671478290240858440654543486330108659082414577922292836188182120310448987751059317811485813681163818097725771640836685202843963342456280337180154189012859976403608162656325155524899858264011042586044579771967087009769266894790139799477098908743191328025187703326138250113822502526389252051798935684359508254882335077686955847935873141278188828914050673735721428302369058197326343186940056225714300976465873889605668230702511820271371848342161804174072382106078585975747203178241125150641203226085421821345387951287808408429965851878949880155230174693031234314065595194452397083068934049695979988702716311478365897910099047602869261290003378211528122308633673345256523268919686849808196215125435754903448534467291001103308267920122154425135804330738238558899060712224083984836918538910915805729872269209502920386424366800756221082050069854373923111894840039911647296923547128080081230435349701782249110478724260605441097699740608087047626484941118452685304939769764705684176100242158226500277403023829968366221456788274403166054717536027002877191191660551540071459621922661978004608705006401552845418759159420458957199357872883447831636713216670659823300186767017251269010052064188058476738142275111232783487385908029973864493676001047369006888884805478471611684063706303971597240011565386302861167215767583021168219918370337074284986320587293218927517007853295827231175193188038367496188446843679635015079919116201716780717691571157921473399875570007736493215105053482336479594521282077104006006898856240577317189500363911377984216351551828380198089532409459870029134658950607417880709548493397673211737231872903023915348429680145385479377066794011718047989565574141165555342037784792374266429833089086145159774837440382309179276990123735245130037293433708448770916833176874424257935784362188212948629743509879804188735307821352891465216840274850420957640625305528743232601619032223777756572284615254286184467412528426412942425953568174914141865647830441761815153615189480542186820448150750291995355465808450656978916762351411554315301145138606269947205371858539520555607781944748291144829546180579479000895095386977712564725571561894667710549563544764575986941317551346989283718818434409380670192779581686632445693362848771059056881307418898317817730961276073607930643499785180356944254237915744965284517943226321654304650089002262113332711466354201453705433427360131934180769839140975003039897618680434349865272611587701202264617808992339604796026437084036733647565089658317410157941136667866068969347049434708777324244628648242660839474164753210442435784054959497125637442532208957601368070042045666684856316501747984045576601298627937420086056784246146157669751465828365141362288460183982668006528339214760845376859809726113613746497503814749820926977994051408170334252869551053192056905491670735513106485491011852179824910188253466819914378174633677438117848522768496790366129860351064785568680193654196022414146964556601546615212077280726352293635251143685427603536157749253115209828787964180621435521136101821250624645848862807153796115572422528049789470796673476035113716373174190578584731900996999073593131920661631333549241946161639278083077148511255858946062894940022423976822937845918784225618563464083543281273762638588542329785802032053954689577059376568615143946232398641556049095185520725002314033914774454406762378451654887013829623004363106372248985612453195316277396463937484198516289017107585826432230714347996790272990535286582529067118559357185635237021030189823959443567826466737858590842088697969352970684906427446755438190836251530959953705163237553536988975945762958495598495461952864901269821561296080284935637795666659062840857186502437753234130782214559676895506409767636426523050219216805476459585839203279636355428323464183198630997689843152619638957804215189870965152925544437332648693433078880517302804293095307648245287717606775604233776280036895745079847783217086568785917736975015379015721315239089860400033892836999180003080236299890756093722980398229611684799340298165452548141598330713664840516916686829103211758721874970013001828741259131612113531885822473282970531040455041976505088240246350789842285107589394691997655708482354695578815367567033283790880151030773988545053644846472369303297194865387990615504900129587278292182050880829349391059181466492732012492545188583236892809927050254445410592105970800155792212004171966854376796701408533022844551555198710519462233929505979832278698148870887424508318069877779301553290839755667361702108488626562748887527638008127932174353053411305218182231436622853687519866757359173740961649766810060806404207460555278397895857269886534402397650802264020420382543980514426605469440757362785094272953535717582696682525304481457225917169057142756381023171261956168204681117032613402716305953609734881651313261822775818751683816519464499758179593596795955458614499280638857958910985630718497925008261242580576663519875948818433924170888166161378163857084681831480171212934820379426076027672641802563736974820929133810100612892127386265228584817011443145546103066280666398746963348498552516705301470674149379485240651334126091366136859178447395847326655210058038768077974138363267648908761474609168631850200928235265061922546228646463758508587127973402291717733419367181756666032820050589840361622355100520750887805937830941580449877649636173508426149763258717326501859861140012807182208001387216231201064487340614742730485151356165847818704852881862064355890008281250740278849883960020838938879718640546279805058069018777492153775295991351760886200966637230555212792133076704984989033088408372594851326916190571945444928015380102736421019116835699884667200020580729638880569746254947517636501033318732610787160447357590602076749373654460752979084117763161477065595152271195346088856172043951750228260344947779933728664390703691009980948129627705361462048484136904413967422213049643657755811025780251032047380071165226625789317903886836925695907559993645346856308104363642997517661265509267885494671846684117738205199816207107459577437043185136463094244906266473825989650800742773629859390069230650876883443402523023432936390926608113959424772752680913542379445396285108428738107965517353506875159499716767873385611248274229736354177188515828321400492887567588487918997827360412042483894226652510518323223029668355678735918459778133302101255000482167537530370048884919320345495798547302553125929900714294818501856405617065086744374286663187593357445628651000350662170672405617351730611981150855366805623814757908425452546027500598967868168330062307724459286192221725523893515179518484007627824330252758626485526840527388919466637392741574724016136382299017199933776830095532164346326861128536476663181043936201602649242456116693205609884254773943840315111111069895758384381882503958408822566046064243940185510626598484278431331208430398619540499381604959463872544368307610020437295883827037390059426150565380797609967425954891823509676718871477753084712781192040035162115788573148728876340702099989827538003726004092242266519192384307388499108344199542902969789166877091021358928628715773511304796150629893896855887835457139813778413928663876307764774521876994729681615036409823108971142432546836987517148934953131228155850362673430150177850719324136173586327146987653563157999192313858837684786096148844742715621561238611422578420169084080280223087237875649580113100107774785282385546151731430540052950668115045978419067268703980373714009744300335395988385572453175314943009839480716751757689870784554206851663355605462199777033846645700864642237586563819557132030912284069207335858409515883783974326704767500276463446603725246032957953416193688220583439832360227417657183488251254172662820488005762364076443404323822591096536062833568335073743277367576464034889843672120552746530312508104482447407452719194366958981767400540230548217312368166850674106098100581050535214720659314378794108467616723853133041803801267770268041557603416161785925414421108493155438823441132951308280559759171506531716522585251881087176222872607775546807545461559088698211778938683627586737917543434306838252671845571860514099755500115836933257903451709423126504743504994528107000198614522827746742795210635491289932854620911559675636372291829075672656417035987816471280182329444402385896147806234982415960771250139918669616484783747481893493555682816326473104096376477127048923800777322776686452013249144818555800780841202842552946658497172547498429241626353859167097164947927936941930670348940196432087008695683343899772966502298451092197647748286761581816372734447973196100466650460495015233446143181470622252376549452686225330536314315876668830843609601072174366247338036782899272050640882448480919066182360051136279461233259278685289718106819630240493806910595469936967764664506556465466013218577910401314723100138069825178675442945912752581198995886958164672330668212191008224943251528123099994808742575766224788724195189781201982810743365069618253428616794671309211958130450688671123124896868074655407894473675250906406116062611171766114602156182341539414089693706146698836722376668783799089063043218520375478429964219361850323635090527168195263701144229097304347822281588967194781202501089043121281503463492499474537087521086214405701084286194929622021045674887132180761065378943135478125571730099317749326113007525837582639499369441056886806536627314339656938474803351895805056323689123165647519104846016290695287950873047362249068216061041323174834016799666003278900089032275140841489187438527952917490345627547056667573152441194103415206418330043341397999256211587935996862157828694960882710795290250723256037876773173253297689450159473352124349148442597673888408864131175679981248844347616489788617103154085122587375288990479812075068682671958120424328119511718333978875898152086969460458170806204333200132051097974054798913294482172804921929773316684625683591208839421967138609524496966700707144427096808249450771993670801734239584916216832028680853633735790771018060079592012562357069955046826119322990310021494215908869823873547953632251378955350280348549622829958154366603946652008685114232892695973101912676432319794706981094886812838518064036741390045755009079908894388296868638995601467916395025562546939470993833285771234712502212864338848961277844941516501267432195034046597469447665424920135704449634661122027501189555414024602721731079854611604932763330781886641473233685709081373101076506308630773253513697131515662735838143964560891218166652398226075572477082003443548309602363472252844755285494071837347784099700080628576966924437280135242200951094136848736908935447745487321265848815478459453848305728959594557234557261900551381091224769681004757773117918748444903716570834570113920497821261427425541870462152281096933613095636701598482227848805308678055545341780930439503553178458307487789294067044185956000815510321051121047240005146192729473963645430179455803934458175230826348431950883190166924137976759967227255347055784393607738191090779567032833641679787401904836610393342802747272444957616804159454900389496590357323751594208488781451357197271929564643806267163471873366303383299477754595807464705477127678433170970361060703679228396123814725274887456174648503187792417288752865715124962049461089495935235990332782247198055891380120519909503771722098853792967592872859173912921407756352993838759221415081991624199587207149852806363004938222374277744062304347077160028661859202601738108892665468098051876829224500119862070163198117006203311700975608861837161961144055758562831458367208525333681248053767032161058578146544167551866067862679312692417454128860162361224501218291374721184454629332923844619343182891015663808565941200414923314300484186460690029459412315189300097461957066286484674606839746878921710552869073411386774721672083941649517508311519478593000035292934211437639825633599541382230661465673833307491504996076241425552853789062948195661314205830915245966517427352516450577930133575066885107014542458041405340367396935106666530538386104814940700491084782961779494634241548629530641461518038068551718957838636811358871977380660804440757545176662638132044119216600262274043086131584602543140585123136756295202193882573096949966951926193549777005522178783211909329465752443926268149969672684548664446752721123087837835783733716841920826411670804301220725341465253708254669890396122703695490886683176627457733700146604945781615479919708611124955535992290630777092155117171290992313750861160596525133394941066388392228034955706662510990267864786051976439933661673509485821791271922157893315229534365583680951778179744330227362921016952838612074343495945432776111367547430375544376198794638188199312503598597734834866682130187807548545835482546381115365205791088604911223678598487743714212556572728036968324182495677941760410339288170421897891313662130146341091292672448916283771951798079952151295891821567346812033312571384706137844635646404104157169142293721132080523581721822981166949674831475212284416435051578071240810984954321378742897771017767227128732494225778771327944452367420302640196263044062230720817341388259414019563943403810943526654208521109588213531770391561864342193348083102364532724766532932087820418849901434357191401480178579606915404396912548581924799469645178510990883518776502693971934482175838532488288198541180600938844479902975951682249596772720701068848682214776793180716377191454837980045993997203129933457392435208500286703493403709038649949092703174837852856402195128602340115680322137928919587861036444811716672783180373671232073399198185244337951775426935861516453615965335856476542909116676020440875175386346714438664672116006617291001962702452044319938204630441475764682132028453133539877509396905210685895753161470574228104835279020548262924404340283996155010605066313340605180473203170248307211851621042245431225088872834835828448799349621159948235483458928296054082254077823395444871870414702416796157415578277854086129527565919124200795364744817956245934429186644833143509114815235832679853779011207379158167188990152850925320274451390364886921559733460427034005134587534123797539708918444588495568722520757787357238806504523401798515057609158928805704341107827526240178854359960689831738672376583465132396752544727752741174892326123341281031485878081101680951193160047084344378537732360041310831862362354922534616114718080126885540536551754210195261315170021075630792883061295636872024184718789764492325553149641601142563184882883258172555547054736210331721476070309979374299915999111742994566956762831778542223464191494820093509801035504781730423931673704751752111975471050718038425287589434458701996463414526707451260524880348406306132119435518761274813452320190423633859881441311203545394849301500535926930697186645633736039043922226539390437205746718793852643338880212962112575283621273069880156330353915645145467049514091737402376307076405358772340626881816588613945431447591529533703596671539708292806126541697740031108932919902454177580135496836509524142474168931516834867976016971241079164459867067167616647738136440561434790022037861309639026675147188120417950394921282868868048834681783017105863592239455030724588713121983891784057624323102302284344390772846846133144918923681492163487505065007455405230064271211806272897748988470176505466326424365161994367116569610081924795363924813331092024441026909040256390510728991405605648790311844313888554444712838828283926094088151179473089062490851745888117272371190968500809650148029955837198540882408001210799673043933191533922455429241925640855080894377115067630937619314204119073027730261938845511103375129883187656234752201118842405212174404072856871000052270601088952272453588815954540539981086120266300372084456977732135269782187700735622857351959381022457599862337615732714125010298987719252940780491032159106100919821992459008103902517030167606146317733308200854113697282433101872652553427534701850159313604663110149319928668241258541961590135262928593930577128432568703516383341486819421200499480765680445497886753927080231195799096764947494542148461004247236774052197308894718100939815853875524977968220197832226905465108327429023011018655898964262685907256258539448639159552068332628821444431600783241532366261187033642754893096687483032131036221111707063046088703843392219549742951531417730758333205031475668277575099069289674134607852775395730063699165728640743496577392475038598791619474592323692687438425357738459080024932567442468433480940282498000732163169436025006132406260293162640190935476226342648382416672150944433699763388541597218990105390929851744224845775664190044448510229864018004420429235249449445210057281413043333101227452737650281495314863381342856622344431888370511332098942773312636860154314774560278618652756066306887651351552442263476477650739142723529959454288314849632596992664574142149446841490950790805738889705403217947589220147479407394839585770704438091618477444869322340027900691386500999835280478183235439771572992390518045241488211982758649944544516494801623204696733512210841836944467170321929972213180310005609796743788373798830843430055292298712605870186582354813658887515568254911019229027755033448866383407538225693440552704269858348517238174150727932804846068876067884511011739954553689343094989838060849928132905540144273276982317011289424837393588687085667766526261667224817206474037445129856679505597221556386615622621984171672802877321004428576668755154138318831900843193480629513312133776925272442491302824603925993881045367385236833471956583505872518498348937099802568627756979116848737519221056124183155100434354163333645308065570370865514355581074009918675582840150359501222659294872838776198093719410619236343887494156659969258376776011136121380106726887820788914325780459791682762432478115359638111446666710383828396886738292564869773213631297800100311864952273072309268547625321741759772465867331702010212169446745234724375202174607346518583803935132732049330171429990778350608358674718293220820841939936335897086198888989721912645839761819923173166381356289195752147078984303377579239742038570626970010803704447187023514847111884127235138746811603435976475005040079654003437044354804453400924721933976381962994438954008503255466757215898042516700591708695080425600627344001128617252581712714757181041931450736650267266730616390743622776043464457214780260249056756551289917335402306529390102323688965781652577638798065626235012802429963815154653936415984478494115189316277879330691724058915800794218473093744585497991792119697041382584958574417278913888129372587588453863790693127948357615553325717906552431949289294031472604567611318389237661502158870553218870606993073329573296997767610470164478090854532935417990710948032548664323732950402523529061462912376189190054501172699432592689674751704626508375245732061018565352397032183599274818312835856697211054452667061446179112879960383600536082971913892568108481678164234831694060333821772470985768638746345906150747907867444985033750221685851151231461717513372590590413713630016282182441083074947304027018563162226226110457349586447533865038439548938546823623075650329065263520177030673782314665084869445221400182446817313212245709062937867165873512681628921120844033444205853271938373113902348627061642199414272512270281650723044742604692321774679194366065864420745358915830535744299913621959469109866716376498892017227025662032917322987298051046049259941721434134804298525033823830482098461211649695955065737303196353128362281829493767380125315346404639759647054608694156126098454882715827001980533694342623734238348882817750999485955460448351473492684724581113537401130576114132396447796895401407468475202775379293212686520118045846711816987504846325015533016284839754752064393648865922883303849630669079902796517666062698847875414602105617310454188851371171054694843066448076373555614965004240454728080344195756699413609414181471574606672801285773249864330851961732209410211382294876532755294187211135853637312940319308196618642433368288580984805162942305315255584800161321831464842611406706120750022626692870681613008794342236085442961701195897205107320218221646989692674892019349287371359099387498914319533184799916199641242616692411353080676185423928242160241445916706049598357956444558271748080842834658620641251776064044711332587212395184320138615566960721504393635441893425847443754309389710361704888648770921375505798561554043734983607215049732053063073753226771160516629440126361974541641014349755494995009987463188958738018162213957255678399674145201124365131641932466569661700648447298627728192736133564852467476462360944265884891294253162171507336565444921158874893697492952190375348182844735934766683418932052608616572859861902941352167514099328206241183178578179242588120533034061631476504106376114238632818297463470081988233787446579779408155988805592409602618496157048005513637762668666002658274545204297964988433395728705143209771858075878245197096235397055990904623802610273166025412467483227058895479308442486597010148113320416183050142949571325744244546870416474394793626000898631182889088716548306388195517906369762138055850634634727607221922228560329113442992467654861714965390505647574063138124750792687858072705584001012052018817588286569431659208880572628352314829676860775330077267009478876446392924590577247112110677943405050182276865838373154079865505111128174130044366269526958148354205997726444251785550662356221172059084270583941146559353270948390965475126533941232288571216523932700381202848507498353872398835713974638083458568867286534557605473802528042319531352537945013713054532779058802571239896986742736590107457144335310730805122924951132318136095488322970395142820255936531490979083236693296690355669213259586942379766177150591316817050056285234723943480304625658534731507843100445815483025488786629877548488593276792676428352053774868028787639697269335009904351123884802300173011051035574985078088215155305636721556147454371847643033540290435887099758507307151512930020426310071403413895335533414186078915132621901697386817907609873361866503922024873362473456235775225133917644645389172415352148728181141772547245325035696426874616223433481231423908269607221097863260561720049483221982197579605811499969536121342499923179560994289558269578333895380448971426781662050051260966780548468864107303535387456959740873250136480440225056142691255346915762127385526256316654257629403242109288879992043327391622833459420685481277152077034079248285915958193603707347814265158796812569633151153600983158982575054657859562122658539128704276812293814359940763889379183532643424926923563713501648353873520116647513170064845762212242202832373261841467834501269388364329819131797606140089078685732113139099803632611676355988157966033543190977193795593778790554551212678721877946658594087662852687277709283662065859080935393370676499984666304623255066626018351853187521554028655785368811866387803983133712157287480661399762616087133994019328875926561547881696670997153275934624052068697259847108608274567626340952007191739332534540267000260323235321351277650685554823376378214954735377064783593287705233637744066257628205108291537653429769916759993497190947184755740481042489694646492993711602030803444435178831587593323666108295654324692347022011271109642988339352628710812575939027408615639640809453924361944097003763823232240702256774745365291524889233990061911855026348578056995266345910376551341974029282816159390359846019706187781696782915103180615096599404119072621601234798789882128888163458316175328800563449153872170204278441908083073833107968845434855941734236471804884546449429558387004650849541509915971121163695541761478021448683205906270668234526959635865583068319383762316868473230740731952768325457731574885351429588495195092672111541689767630964689832034840156823238642091400973959389612051869046820846867250044405733964901835654970116382214498615917749848854502750860137300770714898005779641059312396257313118934687586440247160785296027009866206547352576373234542259556943520912570665047839213734250226749091648281205674459441438520482777895270027443273362368672919239771541907135087659242971574589499662646101083399821074758145758042355559344289955250870940874282526256575275364024053281992668330355808695207202221215299194710553387699328824494249954133577637767846920978804448993908403955858913602206256254822930560794251908004172354427954647251650827382816285663270304143589498726637216260184026372486331670659278162583522713621686223471914712175563035110374084933824814746802944985315120068631544364848953170226246072804533179731864924778097104179568215568569549386497783311927892572897114984798858531820746031474154345179238565686811798341716591828095117982942705042076802223102581840235652212650493615050923954947224008508831565690754412331991148205561743495517334540658410043230288854899921086641398121683866763594731717615109996696474390312170184421403034966550148176292123207286162460411013111192788643946649684723412963020992858451658160133972159238882164691388287155283229029776634926923228268866385782852384270639000657154333427177090027552533548092786858472922075646851958721817564884601375025225722882643979528573205373199904344638062795018278220289128604499193163962332989911997782019343853978411930410527402421027835754313059778096000604301721249916375239974609719060859158273127850454615172183013434868983424154129298947792291473290971741111827861925063272021254541457403713492979620882703764041688377684456685516144077768510460412778853770548726847379240019542251992282210313017443077571284654345062078379728139593742943867360508191037676696502593803376881915456604397859703912023822099218623406310380548103517416861392080457199559888172265008060946154699827396657293902236809937867168803918256379844515327376104301554106722675418142436828327619780907491579885135539902391083852782275133059563684042351344199136026953741124558862103121330953737483584595469731979110653621773407598182618587204079324035642150728778364459573110166402886983056284404731836909564370715201496492764541555210541709779324107565309255976897740227197101903441908807781831191077047065219440151577176008535065980939448486729593151055649283962167772465131720847102167286212554008502322489818431761419324709221262644361512748018889493914111989914449153861163100565482913047184821697715891446848406482755105838709092021077462688358112773106770916614857533735567211365898153078625906569443658451224520462832788168428035510277405632184100411325718670997768556599279224093531181941702154855271668300583823969767588630226915407885308919245329843548878712925048266976077380003057089459257748623614947936350109886490191757782965615592296154448438837666381066989334958905918322688499965540391857048315761889979771936991464205061614106808373995836814860851919102628736912630328880352365563337657991947193127279451893601180899528658909572550978330692605892943500094516083478073746233494886112010171256560450998956372477677638162228598343628540030448041128595883332692411903289453548806447360061935865234304486687967730336601973624784981361304662900437486076777781558877944601234087231004859974513757624009846563753779956092844896849588583415230074518152735410401731101465347842601304200468989765668100942377421165287888275613587153178849368755293846507872329450176638610896678515219101976524394621877710996550525845537645538168023819518467598410792550356680090920243704344977944963900000308633555114756157408371012838513831655782026405490610265541181184095934508559379236545769020172202767162399041992020604762516207607368680695518453477637731046553887041386337475220333798650998142168372937146551916032195525730115258652152726670147846036846858332316026385284477557546727150933030888787343206769611947688792886134732111191537797599784496278813670482132165165177175405247196268761835168719483731125320723300563071953220535816168135385515294296983931830913194028216126993358465537115362212656086989115391798662380015680037163579528589646823062004938719179288998195271628435931675625864693084933907834652286750600593311539001388839768858852064369099469741153242267850418423945755627510221131974085672749017213054952450440927781134742609119959709497797402447073895880572531365859142489048601704790115372475321284053958482115872771281377176196313280856441411111900119526290313217476909617749663185159769605239069625155054161912209686944864194994547808812851161464220229290807871394367450568709358495295243062328880118700417267853003336073350254366853480862013524793034799289935439739104077678564569630569214202958610935056076427065660323051065817141850486892284082959547386594503648536245845122546503083335191317245672886526601040337552816637324459992631528910871101504475689582688322275811501666674211575296689964703241984733887286925911639955474596471265402981915857087784490940655839505550251171349622114231763336809839390592185260737646677937110608058632242873809029278732500358103650872912711680924354888078531354640538961408347627306170152605905274406874050811897646867599304672941819062146988875621770067940725153316704967978582875045648651394529907972746794709501054520831620975694460641772974901682436611959256463514649075798498339449659274647291862034714793033808523374582572959198021942780522620729499109645468899086888504113421135567886757564285244299234436158746975913434362741829882739234448306675413947730727526732944958222114833059659575746716382673860939574696917088741083891450486900128146584668772658486572068042183483226110127334702740453306385015697346175538607490202180625149947250307202624949682790550208365918720079691957015792883419811692484341273334420972411025078122198766629739961646484065153618666000661832228879480535873189480253720465536242179978043796405449770797557742244801739386118559025060441070431382571710917988070552970337476694876701248266482837129995771042631325369231715042623759380813540894260041197919392600571835859488756110804778524255814802982861467792583186725700071125267034800597102882052317533159257549460880853010432982167443463285029243135445064071891304411544879450706653298023105981923957690594183310460804608425418255456319987176489767988150569222849676675152269859548990242260782450124324255073080081292955309600281474738469365216110167215109940741779269129346252727923867685671276863058204818521167329690836628717066069641046322545266151875791148405806519009420228619621420662184932853277347657434827917834717871336531769578288274862510264440398791143113518050784059381193152748358657524683808907512884686477084960836596410251750504548032345586300698554192104958123074763140634453650352567964691171565493900637238169646466865655736114483586623778026455749174265935693459529500850794764801668506002169698317589523868871622265376974781471408159646021873117276757680739184795492078391143010298535613583291142045962151987445830396853227727707510822371966423099187540074547895008504937984603484222333344899089573954379397585547398901227032376416721714006454349716074834247663492862021253948359594553960626297367160231147532350130398165537434049407374115084012518746059240702836370761022281029052300820654184727006504735450480105373933627086832991789302040424938937485142794448745718889454688708887453585509497440061171205112284687384979827894947983773728249714878532653340665092248579046207281193210297558893121638350853755243201958748603220375011687009200573324676391459870100733956187885063919633456841281201300315478524846897732177930355609914881316640664623269403668146351459341011368155462605088234325932463589293388989378935370004607153453583390342872802748212796989995752483770848400800774130906396510367590813589646823393106766592139692927326748269174637540346410671603172674300014141936193075179850109976402648898968687028279418777032564133937086105297188310403037418828950678911890577085675344642307707594080550065193379980762191516676679462359078174955388146171593348798221198807856005745215250167315896622786788623653826894421851517138350924832845916625494248593011576514835104565206516876259248669300809372268833220373957184922045357322284337974089496439358895265723859675596177059946596131476582665989305736188919246376338738674591057241968915721774099545583979531206382129572880061153917790222805878349559581201252847810231712853944764237677750871741563032624291786925454485005782775563212718973876654184549402091338287349886280756325108711367121425660323389527274552629795287650706709217362258271367791326242289596595638082297440947464223551407863748621269242731399208809913897605103155336793780179343637223361654812500085728311707545140983971146689503995718974984887380889288872806980065227865798116043095950520048660750775987555768000076988937126513914745343255855821873074941936472391341378851848327773608195214986169997911649455446384856927797999786235518197552528476831604301997658395690298930192092844024576964875509320664839218137499342762372611036301636880902109206405644285230981800154681267005308133062986674085977870061777202987305807852903676113089358611577857290805727182345075587128777670043983132260630811170919707905327563775056058230247507891403963519610906771432418547848982317871080432551144009125882239504149245389244128457288408683681631652910551648890161475552361270055640090314308128396503763784450600497471527004192961024658452463640332030345659745231629838170923302044932706056657249650120614939213917880354942386831297705358543330312100979698371052559572010328651357981274373934829207284540049624364681614885644848694294621466232515119213862538494540165517179799565749143430992199905836857238515969909560912406846252051045986192237665102418975635746943747344726655648071343682139713035288489818534457837628804898119717261259336724430104726499749993373177328163392391250317302029477467387257933425649259643773210399235723880109865819544756817900628052540902054893955742250677432361725662413556149491092714642721145105752798563562119270311689971670587470611000453408710026964417299088622403602102356593580050283044865528993020649957689541108494757220448631256192230884822340728328276247504139538604847614023745387409231049834864581311204612807061180947044281815466875780725412142108480015910347852076394665740158349738496924423977712083330179337095304509485473361215828433833744766002856654128108380139332273076775226322338796769695290840401120218324962993398672231307807627483183759347592369923632636282956144183689802772242478803963432998521703752111028599161589130094161606973349430241840186859060833200637243458776321513373596360879281437507054458827966107955230857512165481718413070836514381506510678102226001965773483362590374972547657816218057241657159683130143330362144212088226446780356485527319302529432016266782202762260895111816852709212903871823810416539830748553334381713398069403444076866178767416507415853730949251617733863546234339408542175464125523707533357783206049346295466638801252155026767696131974651459397273443464078496691236406089610944852607391450975354525749618556953289691864628892468238680665598621065826089857332461451414902022438036055280985648033367470652188446635753719677015483538680891571451658641609959417388989941724292659088288449974402551669422530740531857071062620093681743242861418089637169133849387292985100495218352508503649656665146150369273423095975597951455582531479844111484479400800028679432521967095995884001677771311599182805511706083021268880485534851249670195025717112979921318476166034062917272512142486557652555966642084204368583754117711202982438008997795090845433996163995999483120703870353220154113450072575150778769751317738781254035182077249407768127744285915525113710506281812737263730415433587214346412390875212058160074088650610556118463578624371516243582060754645444288347566552451667685742072555433464807620056858404409682124125714096622880867343763183843274225794733944803306637960865429951732076395163141726811888240760384642443634085598247306547938637667143383586889878220207350006770365857393166891569277391056863326347749839628508176758565804510438148696074221979160354915184603298517918697895284276357651447522238695722480376015884625171932791031273917918629331809341793986058121551965638885292477153039966512926217551666305749168713720523506337953379916805946718232415032600839777434424568108694666791723239798813461312063006290122358741954167125945336888184063144217095297657847555124453872925745075302950875127459781894669592226496549241831824796750738214657039414481458648031803062123513937880754158383082646543370609665598200998545988189289652326695441676413338591587924975578572217082006293698396602055684693022859328471238198844159176537417093911343129696751297065063997909797686935176523537451066751334976391296392187460610883096355583480797965489613561152023104885017415568999398689342564209500943193591080009370375920796089383776693783215349940798876512885016869007017245731247753739604971107267679971205548085446435082393554748250321025218662009304382939299017017530903325486403794052746165608199835848841261858364929468120631769744124134736661793634577085384053996660717418372719883629431044651554451315583483619981514715669002161899331206136920843837886413673208132567893324318175938185589717494396195329733097250361646073565560684852174492727994552901156695896534203434486333378945847963795980849378981739435823418123748888510124232837072913919800807683939921264739803313142231658552102880458457815149258503580564716537358680002218925449032997341081102124084542244935340046404543265386028178732297009886505217620039599161870880478589219748808390007990006852319688910406219952095232110416670508159596993815300489887809982569792988564768057334122740175512834021764102591512824114294195526646412969307255930809181847406722713185782772782408573149932936860597505048857550153531722925320935901207279983935403588386572434206423094885859096419394808896573986659514201162911513850518241865844142705377219356914441614213005191057929519097649329152250165584247443296674449162754787306255034786050536392685545768494533813683871861039873264982530551961631853084218050430989411003771462930161474733169012772745338181810210465025187211517056941674662241434878975083791476451161545530618609620195305603973376078490801847554986285141607201007537329710273674968209640323105198615356490784004350316824125289741806969322278906421567103532273560097774796460558237535315205281509557639744098915568987068446136735151846285255556895505913387966430202668750102771761855562058833012612870465605225913525587566885798229710981182025536744381584029702941121382097309329941726675669044027847322006843197765640603451078781878562905929357751697776201269258952549696823069765725629317125790939321883040787610772801776896620045575087790507318808738921045432143095812338839726084108922599828840348062360410261926155520524609663651353700292629550672596684243405217359125552881517732311493236519593614971399021366397803764044607087152045442443645342403315763823007714189088727203459590418680814734141284060111689541383171393944261292039234552225973945966872210377998406105884684460309910673767684618034028682496373955754336103615183271510840215079715901143776485807051533303453939171662019277210124987635474709675112479884750345552219651719453570052954151909517228335146513807828677951605128111317041644371013485033154001821261988977770056950684817691567195730388651577117614955418126514514242195840311050898308885053494278189491213585018533192483498207346418050284724496975183351162092353581324258327836346487239016089867771851932169828165015773764755599614905952334280066509743793095161978517257031275061587036511016978803438981449200833560953531510249951492189399656357764908991429182803062278411304503216097411713812913185727199331818756246622919296898105030464985325836291855750385784060434993215430429452532610438759187842701460777465935728103960099568745992916789389186644197183779923668190621349971265427218801606269245524241998529141482118670655775340321021857919410295237268545000361404521113553596963025903192059058559049303737913554168116268199470948285715711884511741004189484364241589587750500572458473020247526378020336696071559422241934040929476960130002328512977245752530817396623934525499266406336850355497810740341808298030275347662887156329940963951283138319654160029970270410289828351805865430449541774969419942002118824721341115522442633112260664581528673318612429968626307871021525289369693107346462213911214503357528263898695166688341016769866821877333881299772966865381740425452090034662434932890702163412177584123782628202055045278348522644801646486974793415436238550802223353947801783426316765820934019070858931589964834198364650944414118262811465999258632886778834695725141437209325982779079483334344532001429305758005221244840824329223745881479963234213591733336699903921849152105416745681367485550575132040756089953370067589338331408013530447559577500356757868882161038237552043901650935881468961034611456914833702670267326606041304078291575563273393409643050145774544222528050062032047782462309182771126240562019335687590355497550918567202114662660585931240989784172853338870559900270033882970032802650375729923643346327342178837952160900341301465158294699495244322538747964563988381521705992491337878570748172432226559393003174100981119463710473732283304775618402681583676770069590961964426030125205422388121815665359857902506329036877865135315973207937612968797003472102790284873015569755691675599349624151365404576724100041393979843430340530135289129416552006720019776997354235828928309472812626084957146035090322876181257371187452170861221533850801878607429435948708784741656724620935153588850473080576783487091909690433380253283325173978029612344411982083690016721529526743373874675935748112595853646089161843381730743787580847922899667977783120925016173978424605105828504567515081942916290050419463938059873717578437031004240407081195860429951895048989547884635645989049927531547968241264427085395814960338126150285995437836573775773213256116891470321402656455785609449183711465057149225181007698736137589926848027072565652849817155041228226725440156092481859002802680481954427419010377571968427131402706697738284396439502236276224788001907517871559857980904531131493030276534456979233183096824208109400479311512220591903087824457032630960068877319822983488566833352411377601276957534578209472050672317036464585875687236088189440183132330424659846747832246216930012173256702708180083171923416023333165444982703665887640711655806634823241088379153717648428165866754535645470134719056074441750839794642205368594132091254534931437835404141567710968259649074891330297375285509148832816730500143189093539794195440123489246111597334323124208568031371430781079398205126017649743066362163500461634296704256603719837588645916756883832707084401754822196239059388242779533024980040161997379056063329802536350548125791802966525337051756633238529777683014013673514418798811962572559411317551035649813655874567268737941797547371729808092834234080482192474376245566245075884540651795360605518841848667872084740439189454907498426978232333838934767053328155936892626616499885050037164535349780097666094655020995573683140699469279109879897414581815461265564670382567230536672550194099641527635054757449440310112152385690907708723486694958695019573306157537911296548506409722714575762153978010595720737968436020478903854799972026101437900775270774115163323344150048899897513587846876213079850875332815685958850996977673478908277507908179471547211195185529666494133040546673543078890821031136533215480361827575984994606770571162448144088704388707271364348752049793062602510261775546228561751213051275756984954210376028635503747235354405056238999843977142115880837489129593175876272602468873040668844380604999970196354260984719639019378165375198409555265295789629304609950134445996244153448456143517479684245781853370279477131149955738032203998114442788476651111539136605138197181643069397245411989821242971169062628013347682760633598028749702971279474618404359929496773540008134132555494639296731457130225872984008466317541181288766505551340840337239554489903455943755528468523548249052528414533482778178969706281615308602764904166476487795437498354325249859569881666431416603228432340181365309919488873260681168243549802210625222832770899619865730867007693689790735604982151942849201070715341481615568456305723995522993386235953769546148714572072115325244553967667501034608922703675540702348676739650024045302061938031799605335000303168991123449635247118869027334138191448354866972377137492484974206041860796936252020713880852905372904459876905037473013321351830775797664678429103528304860516469361566293253481717440536370108736794818586028384682920356631829739083410365217645723320278526964014729145528634585358240261865058581594495516999110407854587627625302628424728871231345983634464923900971387870656230721603714700108758613109274638026348981284259395134460536038952393439645626761552913139015233538425510873099154835067478425985528073986738558761626981130873743912221724812428023797168900274213425122116356362932748832916798318429392741001671312353766422840792778173956461701929427835812550277693538290757912450597976660177880037489284871459317611508882087283728556175014911428058936717468289394157609642157779429429415997112954274463570828497552399904042024742052368038907136425405090224957693355254849680616875187893199783609239526146276307561449754128815155102286827115065685838759700054447715497395417057030279391520524084170979694698444240765444165497634501311978935583968563999146197545044217534358817570369601286324297494934192001681513226896897231020108401448217449338998871593450438143978481981213418283605613840374827475499097251658968162855419182798179272240546506788562611149269047090942820793563228864022297636027121702672235218645846417585749477048114872247389781267024627759776127762313617947315598066745175542291355501454836499413591217740876866522999901799134125523569920561980476806370413879647905066197995943538879901566763531462876458320307104279980586929265819866148066300321890590665560903912703996081038524833655564127992055226969428289863464802675882184477170582727743359653027575604016790000989386169565262985921062912494933098607979756024109228088333857880528902809610103746908280979320910075221415430008208220316332530243051005279571823762060878042516560578670979436144866822987352373778185907104310111632183728987002715113144348847692137276851149447010613388480932713611854500970889709062814009406731570538670947913991360292140347941018438556535855683032293972554629073438871413478396443789792613562143631545238416050644265794222091294356161274928619528802531783665305508442915953073525515113942976182142305336078104207037327980867822115754061074681241079784014955428339455449971417653379405115234499709397416095891242686590468067072867624905777272646827131128132700262382374996570678129420886828981053859423103755486207376859062008344813660297117864267934523251612618008073774008461242502810726465988634112865883507425427202919319331246355701589149315066469719432164715965903953397919507255804531806640746488630862942253800229689057305800931190478235896040856675531652522263285526316190766194958508618767033054528819859904452207650422022668474094629900823392339477939909251882291028893681231506639964105742219750200698440549642605215126353616800195330077300648747398151655962278924710677682112179012578431570771238225280997938033193726094425848240070620964631529684592827999837245138495762637625243171558473124249219031778445740441633233389791889035078225842358468544822853614853540755628947287511712344153894051859688880280257968856136876663904758723872456745702459372944696087193173468476976580850535287550424741200596554912900517201552839035845846041386091308523024401722431338191602553063578419952327643476799967172795332671489839929329096507264857193625525027394427092940297071441923016180168742934884619959567742518444452776612700716991091704580466228487142806175319828905206032538702913054150994871099865947593952825071172104308973437634335534300806574375760286707390897920290055489189260021298715024779909487132288806399015935290041595376912442945270662714183810137148449113433491687246957870986280934334788178196021130084746820229034432192915252449724553053464080695670343901765174711457219561730697405056937737112396324839648076837443401267885318063125283684819531218083364478535724327650206727589423323625618641337153163038255406347653727551028035203742551454122616403044194546747212737932089363378523849251514057486686239819270831460885210390976570524933390456259387518228602261824475982779078361499348028221399741476937173766027598279453017864739577507957412664877040759641324641374916271707167048386709811492787351378879057517081500519960791126755823895312605455966573531675162104217582819176387854204364622520226773515873653589769944139389481796853215832610526201005326782066420424632927441467044598335152652585217051772355443294043268553016245221025478614856779938896088970850031215294818748778560869406859062750755188225398028301332919065573512599613291230694243109401497735230001801665285742651064456358725129186278990993987130955640504626200402588463625972752100606865289020951680767355657473316034508023343387529318538590038610433370781929307306644664200304151080826798254805593178802302018987531632579099693932312669803858948963090185531919367760435604463891442954654579747230246435173446359882021389275594829866063717079651964580882464755548973382626891448137839015523931776182681621020745077816327911661531443873376779232976261182479666020803693872350285684067591538147042829830393900672167412791731093236575366423840839250548256517556481665101184194042824374813798058959823132761850400627912904724916690050442870408734301229540879376075448664729217996114643928696085523703115457479337368142304586580759408068804644102571017477032284731391030785617659255919729720552690100149343485581005306692764180711633374804717423761652942259222235737172254100323920539338592478130888852342830946047799907842856203134398541519281949411265057948654510420198978105432191973052337101245020426028775824711448807489980312432304771357509789835961829802356060890031046400133384489478789599246938075449139874654545343514646791905613178709116815143977045848468564938904042648953500951669917827658748365547733556265462234278487513829135190749785656377727994321783227759520156455986664650531459066416885155656668479649275468663780095755634249915697860318446213825023716201016211013726001901407965582316948954008965682648891465624708385645771833825985388223976590495840619181145167466351010816274973391004301847250110712071205393981019243535047471010629888139907406787081998338510227373231585502630355620777414643421831971992204875124486257616996208358438522401527434941349964093882726760050658479697225620770464832527981675548616817761705716432786703779430918507149078494858328922524020301436847895469162521107305563248125230004104784725202958991715040077586336330693604324927430530468488972750033781074260423106812895067214717590539278359481315861702296106868848453610443565775407919326908936867926016207579709483364734768413357043982297857914838495385122673785158699449401114710408043839429459148788101806271608038909547801814045794946823005646373065041800569916440603977627067297721592274213260420234593506315264603271683783835302009216628628770568281596342480494993678698886459252510440733430325342597299816576412612945011090435517802623020011190902549190598402169187805764651962935053431623302583592080062606551045197680261337240576015768601677418064542822599571073980542131364935251404471005030127187427476388961503610534131425958743131435494603220937465786761635824859880911578618456989614056069710781475454073422617970156235034966522692412947356335058206003688373059996190732148432643513777154933295875363086076951900057150212318239130900221477961808882749323590912766568966746465007885516832670977649470524476171922700888287543708330318157880705674049274291182244489226212440097042652526300351307499648099816572067454353955112354888835544839772822122131722909858323637226302653053732206632778827062316217086809186546120029258004488070103178579214156444675766052008592851568867754322040047155440363452022673871930779984198560791433858145228777572590438029964416610878002870236035158650143583507987359008237146788527789934027602990989330690505693721154131716172221201761706958191065411829082307808917764976600341653071183832043637919868377485139573004753387952442587783932750318579460604860979157155468771784706173670149346352227714212817828016852640117098020388793348390979804383720706429924733350278477249983450591827046164135452761752243143044670517976960343777659673271248001456498658815658173184447774698128905968977447696684038019608320071109514641249679514232586958027176399505324889795950931122467885127694188373982796888651057712098039125327177820191802470447227013014159006671574393300121731648076044787251677424487036005950267882423272301748646874821370954182075354382649998961243159604744166175193812862643743679387493312762479515129496301679357990576828788770155793213408992859060628740250292363154179801176224506091466725189673531468781136303513781553157760054790083386371659077140404108481348395688997216984437869563185424222954843588050441717454157857041759750005320135270508292856714338066687272167911011520682984317737390098569045033895946636610019021168442292326785436602478552430781416455989547441428032614282595495997127606230751739663038517833143855399948043815246200701294975604509188596610797358860634796448157394658372456926753698175960114447906033366293581925599373969477094617560260271303972223378712455659449251886695437458211294568843418253654596898202005915793512346533267258837372010279186629776442461737080598580769166795707586214638874093806871431159629288126466301657097729383730035887961541437417239998549945763939057166347165402766858601687906110548954140141642969860541658418275720862537422061328562228284893680643212809252369315982210805881361098825150993185725093642337226183363856256782691167924448006188461691828715963801240451688286838307804373523681798150650974194953434482325622507943440568527557157777001536947990246980442149094119298929193960209296665780873923821284169886076772470128841308507816098941701899333557159506307102184170505178080708299335958661837056987913200309855723546435380034634880321830279495831862336687217121418443067671461508180255141027722111444100637992179266460649219912388938647268830804301110690296330069064514902694059130403551950088247766320456294954648434121296800667254688820707535045501856794311092433805858139327867423657579212575561876557437618747634514384070093270114178820029400313096032661925628801280425019269476011136401445479630814731436639012201619632242600811617090539478568170508875355237839386640240085996206707745433706250370633828253691225332016988040233227038300837458783574601094049179909546803955329530835757382811295362644872153762086516264788963652503330435950199426337537666797354440316663956072033356010527970617988334661457278187142067241899092358268606509589823059683569318496788537870395536599869126956708448368264527243054243262410028794768211511815989009799699963408442968407900957641447268514580188752204344860450436129610940145103521756117685208452170749607074943215318406755034812087871514979566707891474688434412344022858428739455051438199960231218986153125325717140220380674707454818505543056802632710722396489855789631553912092063185391621726548476755120350571379636673100373630014625379526588041542735022063685923293930645887118696498906520757947290390353640696984308239086898144492031795661995436896642914341407632632308644444601422137865232904738132632061987766442551757377398814858029073339993650876279356145444954213757783236777623157007908733320155895186083115232349369900870262859726584867227491367223007357699736455500739851572060330566901015691846375249141992396331476833695740670095845998999707670845868198065436574111997598074478415405544583989652398088984425431774698287391048927736284172519467726833776634346977441809866738130541802026875255669105100843362754597543002617871172202822913688435839211751827619578270815189496301358738664972830850444672838888683981850563100010236222784523441689747835203949194538763383908821536581588427551070244539403099598090343288818298258638383124216369642733102072922310176579942295082448613550904820356296441635037898673205005118954863041333995919358390763049781322176685383007702729110296203462365872211114476555535905282940338598775474578854732609208957675971772565988209426199059376172747131734436101413200833917677145468346690502122832643916447709126307454569371351923196289467311164611515518064854889206202214948923085139408840243732338923327461125374114188724045920638261871286500251873099416978126420573316103821989363886638625007956111548948478588526624604549119130244050018687291075331067351496813637409523215566040312780796308493303879746587389572345831330182604958961656888362455280562763140442147914185437709392197023545840922287530098984587167461965466808942308733548296649382169087054543751958297251797872813091325595891621140657616217497790181674232643551359502937888223454134539093620783764634109930676761147189727912948261921360524500162737629632979820949978275642165389128472862204114512029488781809981049846674510004988092239551083930122912592307688066293485484240253772389511405594025617011976467309927443522910963351824955360056416437330342457573879686757967236090920502431416774169747775865089542229119749674854874816893770478430115095300124952886323997692261014517802743053262412835685226827637487323681649649494602758600960623869472922085503093093692048360555631940546467020599445888032014230564023236567574608327747598023271481443787680040802411179634306767927567409614365830101219370195617662983801482755369521977080650516106730835732886411995268946894008183984775111457609412709408369145372939155033008434365995824439246074575171110424479982531959066293775369013257040910909808024612106944526334361891365635481370734657768387292196685374690975972971076661811463354909737250937529308465834406664027647727383696059618348405866745706431454081114216891147787253238068219670526785367438674697741509648365734917157246808769748840678117041772421406899271407744649843901962587643887911366442437140229899897909549131812727576212093516703233942367288858375989797071947871786303111856634379937624360136491667721484816332303406427631171912095272424597533155265789044002751971106937336148955874015050655893164194053123320893814207485652359502476699415922427958530936206606450664779889103535508105754874350137943254844994664215785229711156257290623507997307845549766100052778777491818377734498643973604305915999846164754459388695323001335270709100144968416367151970603197993401156300084705570832625050430328395076383454053374684705429238131762003083057347134324771206094314837073434838503716210638568446624458787490387875287530317568151590726898482041851048973232148252436488131854381305630672537039353963613505811454948345490714018863020343643984429407661629236112693984931559230734276846849955962044567466470048753975478291268889031524717103918222747077857409459563665282455149193531173429306572673032009514961522618248843681881698789759808764068668972597027612769338615689593190915274679525993580152454745374412510601418322630234823710826640138132947786791237129706343412046781657622016593106215401593230482076912761358926661063679118084158909545786877862882069591511256582062721286022226577446093871269635073777695830237225854215483238470836454101533188204488117070191607439920571809071979069295667236628414971234877108880838170533953747166738754023412779322920280093844753481717647876351660177450339214494388098884040743670648524000241967705125743029185160036508944348737174792446943820219447275614400978531487282451073681500326947355061765747851100079540069633288296124483467647625585013332281929122378580344676021520337411410807911433950457660370344885530143450104619560832365562036421534833087156963502859762157641589473829781613775113517142017384741586503804978939831242664048963518336163375030771728356487205586538626425496766611570273422613935713423141752841137644284796321843923113727521009838310960014924397399090889382808760788970445293816962591848538512379838433396327193214242872640316023670250009714031321074408587160937303235790621408002405507286394693197173475673420300014495123317446125496684148144684506097822748659611293875221654355140739380576529791289605523997882990505786747698540086374540665115717008405842164818339455362062947358869126620190485849815582439128040641842823363645769906820919407033422035328949556571554375442065955952718697582373933262476491928910592282607555896369290189863627214038590460564648211553641990483481274747263455341837184423206989075934725262799308346753885303684696155176647562519565768204731118385733312286205029481917121236276025024134299360302047157568726837588042774837654323183148264298418806873186286958714075581830561500457660503307467664260085526333510234436293180482001837543634289055335914444903377407688399938038424705782240391734232441434244122177033270301710193593560148415956683527158259197744527887380753944710157177526799249694573018834413506464037709022456295938504703894149446976722444565694731421977490405477409672460791048529615669666561286968183436606279285065951280982006167349676097895244233913264544385733649328653914355702501194043091967187822270683179740634548081775962555126618551849885629100267869515994166658169791362173105703727764625542153969787736986748895262484635439248168878414261967235799683091606771373362262394151271727618273398415748353686684022684646256880735464857323674850239295884057103524543379527836678505922703915651284904998969010614902756281217099779116111509822904540997601115578381945705188434353448042277128442763074503596162316049058123030523990392464182876049026539054774464442670654023570462863555582857760592158440392207724502236123624042208380285091155983297350083133467263327275797231924695512341487649171560097824854016568642660931095242558759039638307352631662296281453119188349019058534030304465805351333871075173116067239910101745742461485243932914173846643507885774199875991559786050262288648987432672797005681558430098327039955518674182876571895995451885666461397514033712070979940639975772869240070227951878515082976310661867104967586072579273629508192407805098827517638539730236254536400426074649359569930489787544997094485388462205129082431924668033414522356255197725906469546137181424176330012601948238636399217514175517423804062569677861927094818821008044308770600534536898984213560205662292277870488618016727729243979352880433041650650631128108481365733673554663214403992201040449247426285073724048611701148088969224594767242766556004001482171586253356187511436330980515040744915993605529317892151380055039065059057997975186557990665948950306706081088179802558510029617704610325821445414373358440436258974076001092124293207645879994137948661272555710894073345664113911282520466737183781624704311538219079949196713774370827112721524751552616395516095535822643257207343373440485152669245726952738782320560082419546622110733086562321709345908217050110900188591359668144255552582005315505866008964152536123365210742367462224319157150414701747255828078370056147139917687239810126722260902855891341365618657721847693205572598640685714785713805532015642684500124956512162287461068702341021333022505938494312741448103816823620374982844964739486266466954539546548582741713502154990508445130032647501121619880765483006510716503576772157465213122045659570729887322065300960018073394184202054795117183248020209346690507196756511311369993615554577219962212102693639326638178097641485099970478992593178010954004227999531911854628868733308181750082525798562767670839860510025835429146207112563403105541728087425676397515220618952671033907248744409210420340924333875627365705556210991692251772692926924232341154162336674350909781570060766876267067000829113114981257995278196458034842390612833522191449780370035312252334400173582246788935599723160805132503202070984600348058294907971317505506754128301638529535782987389481354145251740575633297780162768279516965293925736840982700706647115509776860113421869370722547430350962970832476078787978116337231455299106549871738622580429263032962226922542537837592982763091031776361675393067471134592581637033457224231421844411749814494277187813379081620239606965473348430779386022860428291861107788650394238454043544824299909124229412556785727040124745209480607245079579194609969099667904338828784476546994927333494592663954957757018042724576760947453905041403974963293378270476422231046441520936292711019491637249450935148624760998922411885872737853851583808245181916868908264824579418292941868419259380023967158575965233266712148049910133088610285983839575993600257287111974601986274017815364207053191190038335413834578457755646606735978040762088288266101327100356646417061426277265473419306676162922615382845509908480839633953540482512780782041783458915990356218509109585809102452884802434724660489051337876442351827232639766545379631401057092591992373991168697327332535342475288543850222654543204276955355841283320620017642396018945311716139628772931003367456098382021179145508425420844494245172000771541965187412898517043929139213160062499025588306719683706667298704320488424740818867959828489166317716472327313335836299363982285696017589009509483574624116792000614231743509615047479172253685459018001476522111259126787832459411247434082317087803591141044907837096064510189475914442918440542255681290947163342263075433074942628986621413757196327355826826035594699923691898663923379154239177547206476945335513905024640355291099519607753100647044581423959692818792479671403244072571394603644381998678042995584763759914911767129743608418993128603713031764460684204537046994826735421130490841927813031801268139934276406613747422327083303579428375620571863307455790126074958314533139865998925540369686696259935012972831113149699418043967422930770428276596122760480652814434531508067770480198523414054440043342059090542776449795001620481799635637128297834591921685747396034051313781641136281392591548088693912480509400638391779995327330101271792205053495104499065532655885942288964477717222620153890275806315723062581244556140439487710811866605498662785992541185811417143501430171068691996966288042587679622536623920532817068536997226781047751858916689759639932349302592463898817216479194740590093934216847653491475433411051815931030029572166227509454271585190433789262184992563149343328799981128229614379715600828938190666969948421631572175553499920291809426896335625568441617699570169726196862408660482356155844914483884927940760899329894384217296330056535927089445570444947262914231539508652807845467104276070075901825541084772033845613731218052647548075574532514670558330297002670489419662205692608863543151799692397774411502920681766376891479539879003329370615304599726369638771791454462568110797681663817465812863462629109195466464175459254105506030304587894505739502036907507331956232875055132380505544584113468040443332053337812080432979719595226236444276849472912816668297045955268693453141219193073692520829533445670948595203530344260821304881122520818544779122226593085706633198766966283486892851584394472483618089588554086765322749441559427899384520044665099364748869948753533465978677129031878890743140376032707014408051565130540239849352582698507658412607989792586268288995492743640969444026765399893263373269979251827943246103511228137170490642988517486277797962515338487741143217844659866361902304084831151868973731506000140147615845228139497013418902009134018302304286863501678552869523654851558839109900797414977545192334470696038218905859676352254258245385842633141322712486560215549682256464782739493893126629395155391119998629927138936304099943303621135215392288536058485828489719498498290570905688519698608827483760499566809203264523199368458116544102214228890704395963522863842363190448643216417713974797376371208783148229679059819899449580511271658364079057601054371689323933375281331300743828486460826261482077725496234633801505888484681250628007428673671352071582967200650454619135269103601784804552974079360983641906336007233209717503397951386474496603246867716597694823131758043571493356658141522901641223096955246293379587514147925852837252055708978318789160287328154949453544354820801529469226627431962345918307170228675332318405275724699214115420734305137753797278878319447206757778818458122005603999268786779795983411166276132131857453265022180279433996269386503748471838104218165196613183568144710927592935552101549054234609493152181024447130535278602058018708328174740256791021336240198276040574726959613194265355987003872329783266572518971480445638156008714765162437673740500080650898305235654423398352826728036886823404767989701105626526362457372185645695577133597510770163399986437844254113611923300701262063329098886398285111764524243591277706024296084494239176805244416694556942087442617988148612532047988435570080093674274273982928248435896945453200655048020954846000602974454477762514300140635500176806694158708949095476558129353164770133281544119331430252289722647944379991534659228402124549348668708847854111192522055153865836372022369309974243500917407218588478008150860549374771410445353244725039363533563004947793130801841504224747272564883990717635085479048497238667906350403681309574066840464568816039610298809243568209589785911224576686797128788356060898710859484490087027189424232676864922582905233412309322554405063844888031905486078442588086124714254054318457200006350687062942787039236324276659786133564159222778219624681372835345312936823780640065309072840665094585534906102568475362293433371147592504220069120026721566352221066686525979416459602998732731295569634516564557827927164495248789835654023940165052731205319394668426367976241371780768725992302335178382634557950539574248643681117046087178845813763561678262751288621668429136204624698058445246891753929841788277941952622366795844511507090992482632713364564359831841638036924603437553058883779714324245453151688150091992621494326554067529343817186811359521560366487469698026747011745207038944319612275523571626800170535298019037649757794815224585955908923430157226292616307231415846647790679591152555477911744830331202245880936982163660565858397667099315775448927740728088614290419264671256142632334109669618100197125919910277881876733435371541484930522620770555701622032169355244922999712363501442254280272321354510746759514135954681697062860264270186680978435075918921109779769577961530305859066909007221355268570804970859272705983694948099160358940514350910904784223898686153679474659855167726379539634348014776862222551117024048682387412458785902500406697632563034334216140752156915714153166289729078084268127833425994981126924708273650807619641790785686286948909719338937738207367450762252982136461526384474986991445737522547918506558955634997662504479798215541874537535533895755617560064474947122524995852168006767259204408680453906058948605698961874643951931981222248274622901877114858101710086536019960317120074592225395978032811429517405516264577432736925827672228278962325398121162427664442207317108756962614066539814657251617190309330532339264525946830747411314036741137102030281938930418866502932126748247068145965628958553017000693660317071949580365542411802061583304676045915667993936716994794649894277835253290635725080445737419539976863720391779685763547467102147401387298726735833664952381870308463207957499488454520988107531255614366479577958616512681242951601410398281824706583533622135737283409531353522798469678677723450911223730286701188493550928545949909632951986897097342492564966389040554588368875038483261124310963942575301675729853394209723688816376496433001930864118280211501180540444194647247039997460285039982142914382699841591283842381887320181030718362671727012776079090784718124337914688431801643917300521558786922819473623215041263371161810318421595330339608002133641373010171971434535623054074608250516946906128757825121138646647935300574321786445467264276538578946029927262721558802481960737223357010703586413614615695941323759999540729581368060998673887860762954066760782084170123669810376911033105194061815529053070406965731873171417451684021345588414562438459233070878465148076078552200390706325831301686522064829752233571807043816682274200700435576602504387753092406670769292710208475087973468019837708480923863568014015743493427927092267349352020258945880603182758975450407980445902487418873168365777866463038970727585636949368163111648045290378612326823189565034428929896714180116672709944752165047202229891427039108934223134415569097506507652906590134358083687614303810786910732118396146125353725320002759370223811868884221557358949998703289079684660329408964063683720372507317082845629911346087935298329362680482742204126811892544659708431765206525764519504184916460328099872606216012837764099315834059414969155322002798436665901077110004993944919880541260064160558843332112092390935459128293698667714781672809726746366434574828676555981942582017234882527754975601623013898302022622627128034580017493077058134814112998470665378561666312358166841059202704510064351539827282030354395411657152322097004188932685786616051049922573024187775635355433555497034200158083851039528383250217723143435057180434309868898085043352045821761517171049081466325020377274614358995184592008993978388880292887941596385618875947839662211069932853092140847580108189617316077727487942195858929340687963549794966925141080852823921461487377398833335123353534483904519183851305019456851186334244375937278781412471081386324081597982196865405120982221032889449758900947736875296091105339800168709261488286536844980297292412870032544183295883010448171737329209752629873016977282695202915592799572193368047812558603654292680484722266237912635046767249764734734348658184132825541597714260783622085780532614031930442208349765964314046077552943541370610414642804771564694317498585866682071915926367673411702945835893876434944830050895524020788583622209557074638662544307509470146834637781998725680611726756614216248003879464407346315838899584758010928843214380030811381596190945318477225146771715978329111716156667338504099442458328915742898591926682613194271594127164032815896120283520491637017627447115806570811809666956427973018088383280742749587520631475958939557487302784720190626476145443435679423065919307508904158063712842412417067765661614841374579975722687210075625043034862071826805130154591392973603654819256282798979773652102761459823408828843395186704769491180933117291917708444970309728916559596693220549766485987032156090245090836598760977138547045885284754482879683325880294204662037266262184223675926316434514296727777853957017992991804706920581269452457971917674379287467966816689212740435073837595129387824027167903947943979159686129026354010804477020368606655397050877201257616700051641493811329064083846714786858159910604953443713705670805869200861571179180317838405714232885426324519959215118257759023823505794195574554769095965148668991042934430172831082340891500455294732587380008363907066322788159629818722941051479660412916191133396862448131957070613128629906212076091137944016810739868545798955313693567463619220746392663724236645911641316687713235491742963856499598200764959554899017370473434703897691810913845049307371074619394856264361853734490569060757690590666175956726333038225095903642830554990586540991980827527815440441813321377249210932060009120343514767109122856131385870381101786518698948832507079084894200813549210999638662963227192412466013505582205542873165170367421926181776768722078669753720925085667205446570990278406777373104770679893458243609512163955297192806100431376953039320922970253953912316713207189662778581472114427549053269859570313192938408491659907271800181492801744702448885582934834718099868755149466767282152858263254537022624595837521289369887034939975033681022228799437694549276121144260156795561802634523561922823733253454203364251297847700613359920602077794243579960032922488558022659222009687394807688349087412417703527245346522365074139208596660881897417949840982152682152660011426414596950329328330083561939962385521224156985553680510324247403904783489579347014710944431573171967151861679403947559831356565813148577738142203478043915830342474119785905145414449877830864599489701532555027310738236951817844061157653656977262953268691025183449707424560164850931062436057446325077733612001707350415281576503143589305104651179981280863320779832369793518283206500476387381435535588093110416016872839157787483318694198305624801946783827327551012713287367702358331569209092998633825321100210058489394588010072216293336523958432268737343644854869209198716134345039222394787667676943281860819114874010552617249132761562998879042190336424953943619283024948945023387907961822430148045947371276824319039373061225215696865035723971452287368881260665826671753359482940289425003100114570316286884499122378280900114859461701747987910020247329685649810809901286501370655460347663403002393695215018624080887214849379477948452262825191384457810628482911238300258014181971774826985645208479953316176580363600791499413458154330177464468465500578485551465419435664435243886967679168374214810903850018105372649469156992253488551199784841387238758816519911508827310826956611070792486913338733541943178182121048280990541613346423981372301361115665192646277765752969463957774496711614357838069404458261724058222250473790891861677996318188324118023893503406728435542177528718871762069772434848959677288683230136582155978320745004861456769871754691760727693863715453323781610657190077863709316644232448972590360007570031429060827811494204621762123007846723600319709516531819233421337137670942772321126706887906717879034905250146422350627413638947514691656871467463315449182870889521193283463061688006896054320348152472972124401560733688489945030110671709926695513209451972505886838563964215985985019051082140313109746906945594097275226595997010735452585119657886597039427725845047162601645397797814685808420126597975722168333611353667250938787544929078356806622133195561193626291953120775972499233731749834450888165259406685517656849550366374341140792479182061985764349600506208849304315929842187204462634922038596821493350676210733999834240850498317130062141023959103758488450842340547980196479492513738646875537195229735104491655007552182099875901727060863053685132868906541073678946250235153892118948521371791120683483162392336213399917143029624823538060240032706073572830498361149966279968889004821244545417424876779774787313284529708663620451366111217674157804862620692627925295453832254344989549175799860377248855110514310358987202305795110903364807502921755010419869766766901335718886045074380531075039048725987327955333798546965284716943782522252651670397269832461350888869192137754833883941046745542678840789900916313972019517599106666612577223278358817717027366441822580969143002086017830276754234205852705785142347486970434502094203682074659327726384048465104261414248866250386372932563134510627746498517441325653547827027649982723799773518189039708421990619499795259344372080184762980076807612383803990199232117193861084898454319283942112317298999500260406915128210262817309338650934491573176037524694098736733393997001001443585180834580416461796535589904451979834662495063996567420067439142872126664666225307846809056370382696752452251975374857358966077220412269836723743582361760911202319666967053421465358405881117605354886335200436161862767170355280955667929579665486119240217932557494730892096580744480729732959549441241621019924205991676697111885820797082481174192038703607906058902556947458960399608085937399825157377623217980978231184187817880338277905148969244631485685208829717196767901516784758482892834293677841164682762245568405266118326867437315656407178591502200226574316449487059126295206107971562719164380088843190996763025197236722542076214105659487485366825635320240316048083093663605995063327220140617968128977186729876135208116353865501847649386625338268552243790752155685110391571885474499867781318729569775307071001851427761643714125785525477503360068119727934062934351069114606284851471561272833652660855208582618727095544843067132152839331752312593544302192206671924490292791632611227425421010245426198122439161363265670280446662945005397955480219221631692472454113681736633675469602848253307334724691308001051551134454626693981022887675579524157232405209310271794293855485141455011709578603560866472756948192360874681594584452015080858555760548056972103685480746681910402740039036083518628130201831992295451127526129069686563007380695462133713389269182120883849081875043544935925328965931067035617120017465954292503492963529300557193711149687183706973010380741935438258675789166972003104515000262808609899782436178075578050678461566992152527795366237902527191187758912944578272261662218481084106530284308329565863980380738941546384781461544801881567908169728433968887176683312025886689385537498710349034742303663677982319712625890389001380217331703520979368118239298470706827470879191959604367008664179176007965137565954708596823077819212384572382604578334578108268654353321818677438507544087547195399682760124123848719621352775227742680816802254099047499550861410722023018622255662742989582418766833464173035878157409120079877546988172351862006626780461908901747498770987810815281306760826464336885165409744351680244371039656007764590894862635053175716501470744776964417633976410111296405195901621898058736220412737479864332741300659154051155291297284819341882248249756889966493462979281362080862569469879841569288931651486811543919447513437833842682082159792639778200879479996044683512365741386260304245339483458894115471521333382755693633675536760646363633594033232342337615642920128414758584448354385390200352965871315050170312390036876132135121070981615190046115330377293032401442713148780731163943234024308177574091195529647231590397135784821003276973951331919001414140418782623723928181489990673634190668735998510272371986040346879023552873403754448256175567026599602614514345286101371393091906631139338908348208436122397655601189025232686251284279631010530896882021966249999554152841307961660660275787816027167969272139225948453278557065498362093802611912271632878106693244922173367685391466983400679314695868400398972300525972361245481932845575303092575986675394828303487880973441641877110330564023399610560651079449954688746174926144298720630971907979651539531267194045077008022750182097261329556196530540334200419384943071972185425741058195330203215565734868790263807141147567686926637317635984460503675932594620190961819559431769818801285047591000956718121783095677754788819331464499391521614004850122661942321234351744035549752221150724751929613565530411354084619170009142961140387495634592998909509731291283127657402266650964374165930490053732070730977131414644770407943333024462202701693926729283212033148202314198502788936512594600396872263885121350194733777749378265143899575528764998788810941216360016773770609158783947941308873444778612451875579337082431222914370262759131933433029806252372256695737879991276796376740929705492586787182102566151550424661332033880311655585971668096058968070005781781792230790723924277729919968036070947616870644154854761963206609467633167622282833947425499220982122905582637799468398545222827445639935290091574609613593114222178810752212831876285328588843302888836485366737640231938677787240360866097858920391831656831547397872459547616511260842093799902151700835590967300168332184041743592016629469354894447379789051472335096902687118036969421017601677542200436829881184614575848237224696040271693726076208157058509972639429620526020000227444471057248485123866147676512769377045021302923518104858258147206912108304956918555216466231879676064472743459027955582178222932888384642526818122378263722261782937782034539940249280660234000864806177643773910180559319333632680151369528536540616739785384609060116449251110048034768854323222916781553925795980365526909493631591351788307560301326608511130262459080200678276855278399498083238560007387284974025329954179953708985198055038657253895713832061917593107852613918736837310826095141778735250768884967119630379818953160606941070207044520900180917828792063167168601475486297112397624716077808956910937145499810775589040385317713337122421364580746528086734322350581566896328458211199539948702546081030379704952337759475075957216337653972908203212377644669417553526043480275946081497092807105632478311801815055306326312464094682441943339539471753202737163613681243995201267818501734045980666978992839625789691692553589232628895517612436256551482312620172379294481171644791525864142391440454917441386556560059428741762707233873923827420553300026856896824259413768423537330400927903604322680603777008748647821235553199181200292786585018520061380638647376915769554223399124081237534738077857875696139716159601064093303633284453141041439455875071597871526218041740859131104366566159587382188075919372285802236149117405856064369864913369415500055567377319180987898340878410990417137814270880342388771604320969988622288168968023613851795545504042107704645244710115483831028720867660647933269520638834926907484340035411258190336079076479292322690582030136248149159670453036977378599839337525126261589936414014862661541553470425043120537120694334717402443731895310375512057553399655939105928629966334434135761043268940170127034235051019681889200562000740017700210452895109768848426949788384155931228469766571949918572797147225205789238698524199488813520747924405657299977184837491007875696666971874763607039339946464645432136439745830790834558697273334822033878825297604491822428483205428063008291896294273042347294277639186680733074004741587774675440957385289962976830179576946207843712499765519474853723465726069017959811983726058514789125739290127449612378637831605330574558238912548418891191601204517305718012144786618680422238966707503715743100666116536268697692316194976661007320857866788355749141408361140368413075253097753638166130380913435696581481249299034837330459040171559027441365573601772850935796759281501228894346324576867210536927974747672575198970503140735450238615396759722173672025708740349166294721473030592696760668612401630064237056434084582704381599844664549078030090909483872919933131879026033910703833300298349458522049624517074075705788613440847683530196680226148905056486851280219074444206601237777726471098971406844171576548575747294156617516735599707044506985098989998075064855362660455462457795655315986909408969276630616387281733444855324658087476651591312172765514023132706892817980379264030670934648618333451466528670234980235948417917460617430198741167176191997911258864125910180581826170270627980697311055451641048023839695393808905508715424145402483327663774740647059256846472450287351738846873687543114130040220316189730254912684199682241406996348927918452688588240254752177438310848649683073320653833533676998672070234902617432560396069744271685140759321339071645925156603490393946448012582460605937249808258087949643778285379590883228659443415163996160716796015441964101757507485394132839231834316421863666652124787279225602604158195449912420050179539756913080041925840417593005823925325222552466577896362089385657954343574991456429905429177733169736099243418630579919405937697319403607976199281209227998874612997198950923354686267440927461642570301223240803286959512091186760229974910271011198345852760495816297353445566845280127933222145883018035007648413110596185852244524271764089569657452037816115376651288548045269316649133899431449097610159195782620779516450108966296979606654240049148281420302152214040801655882805585538260799602073889965825522757902522902776659577250856319260180866729080901312733283062524606264724740012924585737103245571362121110033652770231374397442531451825854882983937774462129925126731066290842289386826941980503447121748127607706671192660826316265060229934899943567855628765905010003854169253454647713400469294826707781572999732332976256457167861981065331363164164175752064264611806054813684003364603230774487577088259349729170631351714493365406227056158913272100070522868431802816822485103816822553136594516224460066286951463971331788396028105858317193747531168430699439367223387779171943786547616020801255729106833888097376392698606192582418367259056328452505521658916878683654726008501938379095443267600413672321174357188858926621736931473181958748239804489142580378347097344459873656974079595309499633612731324788154591082632253977986315087541149787710726901596643630615036494697666030677877688241426188893605011567396534915912578500547248264311594659782423362318656498773410190777695823109710892786406664193628099764380798782601468507308785501287956630106043033855197471143797697109623072113074848524117147155651606031498215875223583610594015774062760647426499653444447789468414758249466322739203837159753932733647571512684533547298495011611481880050246148703473733225191394804170225963140674088341691839276885467128870240312357364600609469428187311537048584561217852093964360672185144097797848712608426915859546794583277105267257240118668239135880493749131888519725736879327630852464424252606291156281178233077671259311609787908151687782609025833528560221553383631832882264454567920756988931894804884928346191312444519214340578116487042481774605066539774741061878394975258345153267103923956893368442581120070504506148426307794308694927017365809375269516167728865197412905897644418334011158199006199223162769917925085428630244049779446763235913408502979900938493494216004077679089549747163968513477599497860575638014984348450700807070328045605203701115739728123058104697553429887618141808590299636149971811069832723450431570038493747779634484625076352647954092141908080034041603824489486099145448573404962239377673724132912060454852715088992531973236718179814458082980813425797957449132186220386356919894075293721089984780284727245708520421899013637382001860287933733654113380992259375600256867358094931447583513555112544310121699266403287463218734388436165630653440590638736743725874763748489890601658111545690005738703763792682687261486085197434827315910909051641609921039474413117059992675797656425728725818484675671852135570418030214883393666783128647485934279337817055304596378205934534068031497377673637086401042368616019792736096454571188758141216225703386289989197540443753921858781549555041506355954823848409114547132337019983881420640917846490524071145193261713517127715431531956031255253379174443043016939390802290251933121254681528700368826812161749321484254351439935909666489816808251335790151782117178529062450151065162504641401109402260503956067543897072005951888161414461885265125903578155190514330278013670782316700744411327609391074376040908777353920558005877973955260532562120043762773983503557829142289094928645582692426674742665343519210121609148262496921116558374279181062148904154103756457865262133396196337901394373751006604802275646971989659295610376225145666654809851490134153091259417666053932018104497497160605891968905288641088332487157962778194704878443060361093147426742648360805085450695663321565172344214854597792329554906790360016355957492807877822281513682054564074179157939889323784728473690675254403646024517058987195007382785028375182923805000557541938779342076923195467855557661181922500483973880424611255371900985256459324634875512054293250731286397501198636418638344916633549018580450995230238917753966323297399703077360569498297187567888481369172035318812457171760732298717850395322406872713755966927694060308867003973150110053543945424307885353874249183221072710691130055737674808983025924496905333679013071570331956407640266054589570189684755267655669962847251632673171763964967549929003463188758912199574889071058158117776136811672940206261824938393474645160042981140864591469409385980088934243565578738492018991317322822181312610831822105217342264937238538856741917500852883948414674560542838338734881541852727801856035567642311601452543836565420695300888905438141015069517632498056853660281612365129752187068026484598287521795511883650418396399183206365089456819264061481434726348101373886618310457711925500534740525238694415013698566198923866718983756894350791402655262476245512748562887848233435054240250477799192629259134893929623421103455187774999953618596542993138081930258906683027964619728067087976001296570115969312141648743382323440971164094870271724543600525275919468409768479385411515828125708083767438228663651008953683941461427300482539063261481856752622006213156344147411134497343454590037935050885714792609366444309594700366459924010754789881032101719922129852058457577182212736257440514568018179463669797378999125282549692670741942947708295890215544283046670820558338032577213445399813600678766552736317632330046294714553564330638688672479423484515488497153104641658101316447453463759332516180779042105554408118476396331558684837402037381066717404479921921807363733526350556853101969191852989257737987474053875130376525056383908729137063025171802169146878278470595791507996522062846268886962626983487999647510296298058105022276734232085977139376796264596489758818672313790851864705748162478298357397378348080485733932413776530945536315278239914692110790759449927815203713829379729639399754243033002455008279489399783258022375529684966396309829875153280718422455577878479358533938643619757417097704471599181419351482674849957012912335970524222071769301036058958121034294602737719988293479797957457516345532606865192664635300613429279946461540958173984768322171047000891790555989674753053357650565402133736649160015930556428048098541334883592244011532821975667426746468302586342389515805519491217443470318924707094622415324200968603473798193883897000177609287786313768965456683638418583480924810326833254558170755159351510070238360781053530099061759946069296271242998155694647020943490635623010509368996847348418589688284957637620378648125388344893198281267648272950711130030419467174805056156097148593785635628179389880085574474981381668492532866304940566659017308214234582662852814190584228294848136067161052821779390657229750139250926209126853316873977193817791284783267116255017504070280724608423708002055706132061495370007969304588005307621574255145618198375325135123356002543530687729218239561694524079728740702695338809355975952153534932933963982206367959780654236570848234974400981035057736319065714869019733946397426229479640253379872146970196610233893874788677466553566798519687066113054200773988482910155879047061287325936617473963980523968474299698484670251875346877227572528384290841662280618441808181583029867173459951237446680740735759012288363490264808459025756004958239290758750877951996949673500237009043010867825200010163817125115056319376885602904641220194770573423003055913185749248638857536780469464443897890381939320007321758445925085313236208607059729315060831395192390038034575600910175123643443777088866798066270835340441109640735613609858948984741236672560879397577492937548825510007857336797601587016286771971335555401681813293788930825687200437742018439598676426612538524285048915544810062549371220404638708731621479134105820866876544090110004804205746278137973062399439350174318908458903955278119674620100955491836787589690343305681501209382492138078437990447974208011342815909546842701596120563629916797191462827675444768171391148447249867410782363252337095982954545774597636859877429920640735825837285358226296574319955458890960595581222095707554786618509474136933311989378679715431071894088097357578307924508701183765769183212293209894974883116594663428355254075665196787540752169470550648450645740754763703268593354152411997923671795255708567178704408505043313993266056531072380380792560281755020246438701025688147275056500851436773721482055483113892898531655249874485548712277332096093582934351114412543822183041284041296146799690187751647611781788499339695573001489275284261296557876290050072456567009932291004188958493886613560963885366797946795574685113186185990115017306250217788366733621247845376881963380481182348933670747044121783935409239284917618554033068335097278912777718114530310334781472674784987716329397698195751025080067295457808672517254581461091062602974483237595552178646141471429201938214241052504381144379742649523580064765667207048843245804924297030782794373170133054004126458947003773120719582098426756711816431947839527608274904996453617898767608220580507431274324144260533405152352443297323109410509720130602213180467528476122317549038742034567556477491720016303117377071759152355642259263481825735502915984551783033257287680102289786813949691759834578252864812237989768250151384337826402120482194342772152514304140236654196960046094323936016238023817185917997174056311278949136361093600652170024839589902525525619002170068801659419077901339559536408384052578534890361874299598619777401454937250633084155510926895371266456558946669616060111152755099036669079192407633231111978121832119046643596860243837746460208029610801814107712197733567657372175751251536969253124145924529826459513123319064474813325362942688855790478513272398493916908167672843378780951254092871811216875674046246135322252434252690943022454758278030846687288606605068250962788025455678924361690249808803056995168332080558628050042024434099153369801400309130769965569361423039574451846499480829355197197869577234169949573078842943395496280832184872072085176218663822325042278527917865621253958635261186153374707110612264070205329789274261713705536220518246737846847322002338649867899170499792608681703080396227592039074177434827917760715626037101787185421559738072102217521544889134746402094399339708501965536213588546140063413471926493822268490434677758122342212758365283849927485803384591982144753638961052337180677877874306790051197529126310436057211412952398909420807366226848134954667454414608764408751726382052307168079100758354461809319346684521158827901278398014594608423726967356552229320379903255646076643398886219371214585608183278966493671987966390111001781140150992341225693565450275296418501869018122561770809820638340185976554271741157732076035030478372926376513993165340611693104572398258677238572104716901147447670469360378478385624662769010271000990430760060733021775418614192019556477919505947146250403241170656197830897820156162899643206429128579129656841421777487913483218202153491930693457678143911553066308121582048206752014940424018209864344250833657637998155365801570183716902312001460352672844292740512753868362626065743261982084146409883403841358842344898638409240899292451987233277401373366233046684099494219796691672192110018186394911453010510010236292109664968316964304327401331793318601491229060304046694627908046546591420812474428307631925241961630849182848976000515964843572494828291266439176077030283223845536377230655934488989837840143623572876472120842378939050865117964152693874414182739787199800624733955111502919940522490508232013861890321012432288488278286150474222359866336795910041942855746436477635327548944182030914535144301983196298899875031921754942201843519377316176146272528422500141134135665395042821154448501626803649286446634436915930102640106051991331149937164752681675372111289175898132006742181801418137390909076804727619740513771240436967880197049684792036894193774035436065243030817738242566502653363939806580421737252548999242853549285224006422950385305074238626860805054824203568165340185003144382358762403260085330035154485509110622433789369503694325042827434388916751242226235881504564860109392854548183586275128621650273388222386737587671318208831574562799171414780312144306518649306442822350902681939358318135563346157663439930552656927175930127300597525359788467471198348452074266278472649744872923714531946478606995656818916492033455563537382869339494668393800735203081968782972049923046050635912676858208456378969161218413195630774123739767731889576809927611018944125633203904249656084667657688978850052607014584940303959765401627609908077169952790042494833236814932760871108464544186977418222679494353682501877931139975876826292289940439743178835946713296081266033704312666561287218207747304627014846119958943570896789363504578789200292543449966020667561175832978291423803665741059970914388472724233116071896851357572372057841331469900709866661794028782517927411990746384436117444015761577537664247845443806984719306434803379281655830859688954027617157777048745510119448188238623643258232556892488233102058949445891338044200159108112956785298740054902962123129707348984270532587366670011512329178133453284449119509583631631494861500889265443441780948765449851830867490102462798062751852057034506932396830975578865093009159929374185026912078224538227832275401871452900003957139397176394727236855206707890627023121581621232339653180516456275936085113443670060262875763799101649851559186931044687897658695037992780087050647115202047768329295319176484691664960742173205699911801972134752744581376336071884967488607053304362904805036403690183745425860301591210831295289543283629798333388313968199883643460991297864636506238434278187169945858554789956813132972462862346759846344643255765907348536146488224601897010540861072070201584062449601854676044195165308407226304068573923630945945146264629464292787106959797807396558408376194663665098918645176503395250377945757525244952096363809701790033021214140578310159493546449697347797139403787182527714713270248996886546250997499264711016685229226554011224620748737643435508335411143658147151847740744739888513594449533827496742713552460152456416861977288678083516460703127022403391490079329739661571688831835590459084758480525125452409315512915564788498121254973615831549390778256094195814105691160854240594599564283988258310879608400167856503062120523330176969964992477527745671033582024278773399065114504608701147090097498588530419508516323185958291736111159174949844570212283943603144501015404363927614162150413835345414849304395048848671890080680276858959987534901016624809435103875669979866653638950285449308894432887381573372765567664554187341211075245536863900645462804162370710250428142874484744839174423008877982580033583428816120891888202165640212608512459817128612214391926233948754977950158492019113149128378336605410976095502575668625152959036693991692006704316437489061652098412627611851937375288280147543229806073892870093178294975075718161731527521348242406046484356630522573955629131228957743477979421148021137581554422971760481371153259919775380460335562332071308735413010006134032029033666469858758883287231698053918436111810818363542561988644451968163220391651497554890608408426286523976252285808454948440832976359155411218265542499201214198632963060005043612482415242426135358602893614923247760829640484064653736675707157276795842990739990029300965785329966712909102601111290061562192589596897217119590131149759478136271765272408107344607250637697669255396353559947520413751026687146770343755811790600618768999815948459332807197900323455789699919992332458651509012393652418701217968419077551478211288809851915671608046378293326196071146562214217234550471653827369830111423854108688962180206882627940627939704299605514076753048310968655543135317796318237633238705009321601822146232645660302754358462301445063370678535661106197170661836636678089655330562522528080513040687823842862271986488445013866679828749622053250278871456563448114151030257955166598315631656375010899716765715487982055541657434025906912274386146677708026855524434466140784736113756913744075078914240135252384241086465357174342830700633063066181373424806531307563587432003752667485524590728459681152804650589043329141202734050912316914817089077853442638715790436915565540651844304443671609876894971441966113457504085412662793797399373977532948174165009185397372406148123140223466700835223663877680043265878312564719286016474003758199749812869723788638491698179718505974304391875414299375630751385505382743783691431474672229254640381556152191439207309301319714001629999247956263473169236784680520504732872246318682137505812038970947037091455401572221307060781216026851322828215799833058277408458520895716090916651698574466231441134858092617615065049889894103124633271079611414131338217225216133123283360171268760418474421391884385622949112015196349244228010969092811988434162593206080228286317855166788560605435491021741479896043916284951821163032327168897867566958017869174158685574038086269671919006063080107953073244385988848606080884630559099691679045629833204159039664807088683657634268093497244133847908072269057636056304950410467871544216106433292523825290761428802999320431570693535299753866215928097819214505335630694507866227461324835648641805504299408170450736495959894119301065282873427747713955727098189976941514552344615683902844859862957189585330937101245679627613320740054463073179659124669253226480769700135490227741380029943299645095023679315332549579430232556749405561591148306334711699307960172854025915664147549188393532000768679021783907580399809925601022968172233278120801103088383922544055412499988282049009553688446032760335109913812869259339309997368629096365375109133818723097378008562487249931837602278497989599851386681139303428312127431751655708199553037551936659118365986218872174982473125244822849698881883460630827487878153332843112364450163208178421494282490355454529741580530571870379424054018913424225405066164412000498580994490967823269216482484730718081828773041347381253574891176692561461503761997525022505869874901337000613465724148593171832819256590634644857055728238970389853061405168606173080308276831149664208857772708114401390262194817641843381319874583508358658234119057194062030751790528215313823346819168766898068563589964122441324732401334792238716873770180613849542393355288998663265859976299590578017484042632143584185297163176498692980987912906102029233361989481340906829533712902660394405360683157261827668028254029543090692939859251761449660896204504384934308918996041669438412403139367706285845676962718119161132339624185318706993036591801945854915083647012596667137003026693457563680817937388871565344472310221027064418905449147594027605961094976152128545773966861867818250491551391752368947538000679913948511546301299776083568541606309772282198812248207162369115774505664046654015783277301353929196610158488655274112086127422079897000359950214642592134974729301876111834140831397305503041750417701874099932454130138209570530880177128835796278700021713956164645673623233411891221173332236974073901676721210638195002957140696545421686784782902836220801716696089507662008360486044462933278020614558523637236461373080661427187546023784036681301762654658350638283150408367552786335969797007186990156447286680977362214897717677721255564089792003360986200709082814643458423027815604887025750808310738979670649344666486025588532583548474077597948557634900968982475935920675604940108785378683462025501991932685518167484762077928618079009274673367644279663466833261444409098859060886341464350223389200403137369322444882584436542907757503976245438047639791543358136242971385826020106239172535875497525643532235720700473517706811883486061614403890195964554722509681375084588012782678470739572875589850139309165319236338445747222378877914284093472105039596374980910471766988378711811689730006048097319202032211256357279548642894577883527407759370997051063372681551586449374337315644717666742828995471264286870203557682391011557311931512975455269800134410582401604791600949429200312412146973491404039146822608167779386522267794428528858723024188012137015891642310039172889366050273206181533149426461076752979768346411210380097529090693543371876373446344800513895280572150203785115323828872615447963564438690047688329736009190620130853990114100232117755452958410064098810362716167893818902679862202204786265819900111364645504484863852029523012941562705779639142052774473028130761412074216211464259377082554791893596681766978593780597749081781078570089488846509298718703946753652971233693335453376940885530554162422214278844570563694812510997161923229190343130846451704026079998930562390691213281727739226832596006367041297770813416100340402110516399518738620530012417361824625336816880966434433378754579848700569266120328963643088841967501775445887294898006220127003399076870993132652418707145651346236133270272586134245360212996144072709244638649490791504405268119955456324705021699090379701891388601939225402629321700293515809967463314961869853709336288187276996995180715635155805223518067304563744098687049827423635641133216747604649830416395986087204622785078303992329438984218544009072352005649297770738576338246129055368367238422672350704898606754788577635854987584573979005801008884224157885129883152220820151505671375968346036221177945863822208248771167583610984049677791540017854931137227828056800164188476230043056134699625132307381040045262392977035433428731109439856395226043333148721121703359920981249344715456222499996372747848228247566092838463437352274146602783591981361739866871151266235907592081319058886808835415443085529967856970415586205950519881444820042607954103410174489924594646561710867814171427224374752714794824205775164473252321217890006123184667372226093967269266879061129647953550477686894283382132508590372910660743881034905974244414792728285131475730327212791593162104084040066044871040114651927240572028673308359366106104291646899375616889690630945108420000375259554339108018570922656441995420775901839368706745348682174182003475140430683863361514124839055998242803144508258126933931438023845661265602573938721502147119333270940019834647539510956858119784476713979928837113645082478179109668124293711902086451125916289562196034616301995068053756679826298271749517133253302321584537405357213382074162482614318973730361800668074372575197757358842450918608103331291293531797482205411114968403774985160694154825630558969756489682949682906291464021173602398515376527352818666824532554350721358763968114212395594215694191129026173138192649491258771918780957469114376891757270416587219247462087963682912574514752228631876868267163986904594728055054913230873796870829977065949018926470408051354028264398491540378310509388389324398545197358549167424944412376308274332991736179268733986836895929783544458458645601335832183710284734823423049096549179785375491436687879447619929263922330393133872308197180326156431647831749511472807242654949994797027518818219127150700222764779720371955169071435427064335583143704203734963514485756962126725587178467096243334444892361934577275057909763464575956050583678217203301815862492849589379128470158387171991564307160611781065913461559967898311061835608551543245075134945354885241662061235104980164965463694558105400323706832844013960970929805110797529087672169027356412350737668944497452059600550176318552574803418679050115810594146438112555520903510407337320620564207836654463007314997583743678685546891418711240512865933431174306345586570750994224845422773940116427959581619227712800647580808865537869190832425461879747348058292645415683949720455690999119203871913439912069110191220477888010431446936776552972313490550603256283334857676962392600002496599854760214869506848918026253040771205700909614216301121255338109461323466560090005225466086344251370946194898850907177018251338546226434709380114315739307621914527737400216877471108997753370137476240580713296585077027141912690092196140647133349008120443946915808770939280933876292885912228925599867735082740293913042725057625531827035002682161387825259637243334107006088592663374899477369457666929863408260514512850502905995290202718205020770106588686258109281072068422223220929318018359196968577738662483799220994018369938152880682528782047894177200639038282567138988265822876861407926763483283191319353729690126356780085800534171356215950134926517356343758687225251884337593890161083785631255263842619796354362437567765922985904260137488898658269903083065764882776843350616950214847074669207280669373481015307251211464085555033803784885835730428045642427534676385331276947131656990044119244878581825886866799661848561043263417528038434380921094908929056428066762667046217956765234116943116475385684159362255465127744862010900692705102982677543944726548896326592612654691823601639531346053441036791725129698473697841735638934691751806643967182769773683443192209376321892749074666747117909517521286936971266987007756243083644728763136592754537564196173185981600077102875619997659715425434543181342597697980573611708666704315462978634356749618734848327335464027380353324267117380584535472609734509370441257298836553354874536727899202690038937534981746797821677770799643705242970654412378688207266177409933139454072263120810140887401602278100579240702194730182822964792766150088321018573736488406454854612142090929431997374257228409365594426862377843568101712307426530213359008197162542717124767506238330491049109282432749807942346931224050697844893686399747315169506635060118481795631867800644325907172758584980059017291786066322213439736279032491171123415747202161264274940641586636485584704985542507335775176191598503486744071119330332294258807717708255952852376289236673097647670553061386384592255967680030295364972246505372691317704112456145586711515732366084793543504729393589602389758001796123610031036271750197136255084139386813097042963580974544461064469717509922756900940869606080043666758246205463222247397874018563917894150580888582352809104195466909388827333843634624562775126121287157134073691197561251462309676552290828646627964135569921643703975698746851051685892701697321239993875744917988871342009004939269365034379508513228549859839935634300872345401353810150375162458454749729966268755488944195123404009231207235060842961812155714021085638439631356876727326503358911531907586064407739370843425829539627435876248981603069901520517967275989954191799299703764777165710881356349789350196976383054049025185882906711369304633145087897865663888632302791604725237288845720455358369420973419072796777816945276162775840723030476774925756047815772935277427700513457913476167321487387771387187335680609588033892609959598761364062706534403173846380401560276087583179360706769655718070460210914376110660897788744743542835566131183246953451893029768803747362842185947754960449849876001027373773482295061527505679001165339568886141600122389348960259761309985123823608027536403467630470962843484723422132141043296355942624292810875966080758453881289743621006588940496119091304148301373883996117872084761193594361133983746170368528149754378377422231754595868588764008787642435966529867750767114169259975191065134502683431716221292399116701968908345007313977394811829445688146259082005481397014479460128463627611495692103422128382600178732972881260709924272597459949127603261553044049536232110565762487656615087956162016094784050806347445132197068257612738965380469286491287381648411432137633197932371166820314185086208211972351056176669679986988486461993543467175357190478967529688272937528601133072169104635536827547313697173164792764200793175633842696022564918986381460193309698490700640665711515602404738796484973479484693920248588683550681648312762468312946914984797485903659045769962916723225742475418868776795386441378185239064377331148782145433998202588930876561615687034301022471326934557461599555538825476887404401440412888912354466513494845116109567825303619064025779582864152770085621893832912603349829958653708927329316641594645864812291002519599106760792016585592559773790988074059755463000575601706300084835041118159053973258684059736012307343227321875934436430775805422987066796303467770871956347452730063368178712143395840590473768187684248338423700010453403398687601784811185067631481153250999322108545024514220955197906488004696258269942571259360182161161066552311485611776491234218617254144571491779103605018813680687185829071519363082282555168338608573181403313817047614207686329437031953898833580413870729172663880698606233876254991918544576789588906868606986727127271898002527565176831168837137930039622602468972972667128026970845213793937507229091772008974114475300704192878007323779052155732388171851799190215901989955557983988025094977007126022526799457538350039683198001900646662242616599575191105526261639236532330552428678280951496475069521321429994028835973184225116750438234310859574989227939838332206116271936216830113528923781268793958020819139565671799854750468855549542067392894560686456451069438437140967410520126855933205204258540879837577890086670876430617320817659492831121027130017535688090091275088030195588474849374032736110414934869691206096973143333125946015380530053354833009473531064193392833085415186985089232232989957487138568418696242290862240592977294483043906287668212760453067868049366262178097943505662444151032763637178039082197528076184947274738327541843803075490950092274376617922326719325271294903181470681926248360329502044386991960657477439511948149384418793467532076763142998828936278991398055241560542674282223606012898862437857395454334614330484442901556079054031390103924252832131147477418546539993610444837747400246311831114872992734763166675387350857082289688933801485963496259743292431819661952481174537333218029324568721423688565756425670176940334798125551585848969929088672143060831473916009450365847653969259457993842106967747417106138711059478923285186360478450045125231056157878763131065096931828938391942371200749069629128596981876914338976425114905570002014443281504501580338038322503789383429649773049844416792447005823666877843983093564613651417993678865481483181537888764667568070139695116416742250271825383495561588009393901352403246071306848137805306382413599109395347509449459455006813836401679146866247656899525156368948781710590153912551398695758923669730220174960091872334279455528141775787229092022448171902071713451787100253919785341391210552221547254381698980274510988507510155508496768828312582061605521767983399457394873949724651769769319374669181648407791571928710301227962761331276868037932196638735921754432547768280333888721500802661510808573576482251535872951339476144765979668171730260063531594906484514412010066511936014817916375044495570197374388755200886071719798089074777820628208904112901665660424560878522890221469264625456325312428722020498418584803841969129138325003234494075056882280529730838773366225581260047858451894739691745393977368599396958185543827282125662343494369754281636641103582431432353449246882488353517688008439613858768518801407848426931486735685788336237490052142939675313269518446142658339827101990235343959757452638296818705259782076931501294344860395905156375102389540589233252190517390898303100612366433767079580284843001314466415488587504161089409254077232201735520849868566543295516671620450228261733734669325349738692173241157781076601848514950759574468129771953672899149092566130932318298118702158317352522588287065071749104670925059396566967544684399477458494340483438858862590492295950447408618287794860966187248568705407348259504385043139904491515744129384614967601140363589933226251691449687199023525839667126111316339508737572959565067384950172419277767387769547465899569284976799973856569401189189784318244986661297961607167408155640603024799443095436992228915728563383181179487963964302765377811930893272337493358379976190639646393657627372224621705805883449406480500061212738712274715649133910122707319938101151278242182649190918836058905995183904519198040026984168790961979628517286438649741771714045951488180748739834046286243802060255414648543592583644115121231148496975699711897936629336084260960178008219821615763300510197642238340806030047551395681168272347345968221404541923681738937190231292700432896982248854504831098885199675451156780723858379261599706594989673908917552434417184152647908931881856638333152437943079062960746585842980912395095925161199591454295984395044361846583379421342919106654385253768232213308525865229750887050079315913365586246832358939432129217802789642875779406408594259605538466415266296454494338055318107851827897789536811674034290882726189952873554688192479821124114603542721285693445699556179085682498451408181811427736601627088404040103097532261447972099542216664306769531864938043913019210443689230328096353257536967387547964648094572632926500354162620266768202274507732720603299043292411726627899009214056831078654075029017005063587876911578535603657498569130393202498237711451638826159284873429867011820807076996833786831043126822759568368176235660302880560179721099291483577830602517690639561081629424069568331489343943638003939426339489455952214880234715443851127433858764588950042406110581653391924295828780440259683120296213633000986568355945026367652125747523075227177393617615428952862025423047709259384235727244402077180091950998550132820195667994793597561945184354566619642631439306180450333619099422183421569191595069345015025244647090314635253668387105888073306618546314365968807555573989625423143283789403827303025416070255705117654064757888098492728985909566313241860027435680287642026657010668200907789636552167744161445978649998780916333774299174927592737619607855885734213802201559031905952879702254161654516834885045371351976668370403090382873717234644082472809473919237823817502265235963142151867669625409511952714405325628327687594980151072612687489588287574872895092135062536265178128326909348389788199736633600200111442723982695027115511889759975399796592758657894597725839768512873699737115035648971187602188827842975118068453023120922470071005746349101806335041261801974144582374738252759037830825995582664230110735893508788874565716714571572583354694841532282171873574712788069674906507703479541084482076669265530748226260856371682873043893612830279213924412519206652995838198755969836829551525534253843264441835397388982058598345560535695214668918734056501146709291723894359470705388206632108031176589566593088082551081876410850747221881015408186924721403517759878590798821755876327686838905985329068267531402406609360777792093143032465972045494521364892414309936657167354200900701237052699223073584588331178289832664548554006153079367503752655163379441856862380644176314289541482771755122140255506672950431947119721421754524204315437860918858255377421572342838356954242772760315019575303550323708340331175205482628444826641372974549286362777272429914261129514048592352256090244735962854440874745021068915559158352200123569780333348960594804682107260634091471537842469545778984625181906869963373526396813859598405502651218362562591929329517401141910449233013441456859550203211700565619127801500558163487602365277132857928389066690906719733827025750913406577195622095994366402460065486117683612172663039746686303801598395758307779282460013496675199316244318631008939828239713367548533069013069937294750646910676740366771361610871543741208166062668212413664715534568963479025142753283162678861131710604081150280769138270437716215354611647678174570632198468805628631298371058011732948768282180666340158210424610905735680886038463551079981851628319462469437271172818859120193527088523198636706157314504414382524606613213855485803720989494166620698247088908444218606379081798373518305070422279236950858141313875784413295539116031240636433065716656697266575033762331215523977714464074382053571772689049111010144236677666108843186581126971359423925389454288549367868841932586065160434518810962228476592019654820557754486958552558023291562682348362790754366959716509833054156754559247753447457758647210744649033667863689636136600154760466726483296255865381725796448891433341190072915303187724817095781265918008912407610801026658817200424919986362305479832339868294975895690599193342198387380108956297200219881326382131182834721158697224601673669669202482456410617606399879155311453100791525573883280235039444233854820524461895758712694675971019336356590291859416694998231901397617417740446805938253869275451353266005427005773334230722663505038228732459173080379885023471350551470913214143351835231272382918018440601235597543832605087601414641011268939550476093936477543201265308990709273410068387699436541306159537230439268315176018566519432375302242139705039133764130006239939569759782655574397303002030886107759239286968893289792184984669296415358868633138487052511079370819584847343119627934489188125868315869182321807886770646458271169232779637307157207949959092794521923472340507897486228902467553706279599335610154922385300396338861861629178796484670704625999887520431445584617489533289873412024328524814629590436802348071800669917476107240333228265501870874392207615799145097463559057143138147625016503743362163924050829278550456507409043669671718024654530226267657105332240101945026854738698497467446275328087735103397318518628511390785422579460166712999070262261307092194766732243180110167317823995715964041887889668203471621958110906536203920023355050483393579195150116416420069287552592662155034295114352806093453371069481845206900593862892863115027480474881971919216527069450277792290955507720936689965253062688554505783637842227084460081505785175832146666467738624147470481148624909659881257130855413798247509223908811422556035585108870477905457365774086286123189467700015218659550096969046532708527755540914680206526670032146884572823522305189172406203323458462103670518691111476108852107403267328225739717882775143550899686785226415450116154410285888919881713787339982428623742515911778441585620054844556733137897338152713918019740171215405740562109362795700643978870285696211548200990780036166352112643047281391129550449561779105796594867122625307764137775457624930493014945352179764974523703980965954665290148405132488262211228079062598189131214594607825679227720972207520534894328328375453308104696351741680508345244292903491245725742033885995933545651803921588425420463079243481305559614266399546868007009621432505649675503013109803914910258314675128791698841359234325781498848340240665899273963688011293752816977061252097985097904230857980936593443731652570671434381847414348222446422946049024082209355419850107724654499872056492220571733119665830250669786034838710243587865025893366199844681822432365748249143397247364054769523845565966116526107933505827087462227535947490544532704860352787092725606481248399534181856103963637045303740706740475521362965111471589593161849327064813643461659230894922525919001807357713125997167976901844536928929943633490369243029004511390828539893294763326769109910341322627392630961123685628733529513386925937578569014861842790399223945294923391947739301750517274747959712198986310688001292660940558468467857251539587656784955200527646213991610114054790835610811607733821016241445237915930327741690848001437754945739625415220840643201132885108547938036571525418060638848447255853325033500557584522607853729243831218061367040714137540525079258960030450509621530251636882335904233268701170222176017640814758228407593191676266796913987403805691553732198866051633800027420941044607011372249279315437875747414349640984791235459042484825755817207047307385936957462907824759832225792297531076095056809896386716531428790754724694797826844007364249765181803676595383419128413398298549115893683692913425559427249852644072977038472418627824929312248972660358918732123887252577278674756438815141977235306787268793651323763890009607256452351636253073125778656795189436674502714908845063032057148783104934642689205170825607652871903741422875423236588345972783926158160904763284910430614498059925855773777640190802159011040626451745506245183840295046168175130700543316383337926252860066499618201044228582383529048792713386372774012685206232339049325812888978702264412882392110806605646531102200248216212446171837483545103659902568750977203385071646977249975219973126898555782391637611501352578601698757835564476535291200572782049222322442943266555718246917502586138869284795565740760654933287369698746951218917668385358924869244271917316896023719326199635823630738102922376916793276151852562069892465594340238739046603827290864068178965148061373042221788315981085035011005378990436891062442452143831761708071786560864346726356725382998221672841410463461556675367408285246104628557317824275490267311571638308230813761436205002307193804032152729885909906066874744379953353217097606846563265669569520340107446301740473550429312692006285436546485530453402136010923382883854349234562306143912791154558290576176798776819105331430402229454367391664383596500965013410545465995625651888759563390639021775275840952068324041089041212635570166439262741244339425617519136024756299144097452297264473341845294138466143970132099817639472508251450560882052780243658329261577091496019275169469100591085298496961183924507970107643572680117581632952717023017458755348059084735141955256129144862653182928758921832870358765282934402961117336817153901937102857092508498937121493793637401491168944083951614029914889336161167397294206012944692905895001150763139604728353088250109513409719350908716559025661989730304980412745292885265277279862878327718104337736964728842511218915578901616072802699229011027428874425507143447099707709067988753264222921318039237206741002177410943566806557720927677295300846211720247248298530726626314510444977083198392521448222906277349004178918867909561560808079515799036444429619775521558028976413004252832287542325193055088844282813580259765186842923322180945422408456716077163501541309577090915029538638118008252146290801400155854677298358912573663748071716798482397613398882401910679865748924316460438215728988968009151655058158470678320865026339334634570567534141972847633485101149436824581845109448506907060696853922412278393336712888093684936758240831297679984523954977197613828525678742926973391800857544720151216557101810441784447233094588763744310180951583415651249304944414550051261791118793022100836150880919845187620709705495669230312949883014669106132317450167412333437815800445274289892672103879428184852097725604435786385577791019519629822019315179416432085039065958402025889830307963202549653049109573585790276321747680734225646669637326586156174223493743195497405114313448439857272114264321144447138459818427791639245805957729869606836144486398386702196192259737178366096317125031254658086602538311890406869530985269706501427116492476359731857698350566695174748381658963577657031181686607117804296925517414704230145211962888662945294589648038440138893495620817951656365608197733894603298312565146977354674427949475898416302081493018919878784310526336968060635429873586684325538798554554794580149300405773472602186348323439674748396392955272494618740938536965353334195462520231663506051533593365265196238170951196539573308590014448427213934158946726708308402041729219780966759150292137802780360069221344810303459817399725482692667366009515090388296561710179056850381117281557222949713760502930459694377069682770545021924821735034591072961151433682287238504205684446396287728081971630294160805500751536988054736941352557050413176876579834971671591974701132514380127165150871125017747322807203673028060152470171622131250367824674690994442558741297029094175511499039342561535336999937923379267111966094196540602487618455151697256282451925881794109448429778408307119227899858236333379609672412923646953981253587516454285014628550510340970529950829938969285960283954733776087027190889350286914104749698564585317966968676372236013262321434945539420481770089498753308941878465583347568781874576669690086601165024868339652579316889055743147199604053785329749855389988075803386518360233209991730727490428301881708129221782919292491644669510286410529944458278523339764314776331245400697458062469426236132278405192632888516772822057258991699987569974675174495453804931182337707233854920642089764521926731227093241085968127485915686642507605796138620682526818720355765620710280781449275166794576026563149111401754085236050191381341179383730696661415366064978163060644921884135797096554110446732684404695614098242306189351178260489571087783951985401917125707573675165041722901573669159418349380985470036013569488459537343578924872538214528324134932344757185941846340618651220910272776646958615736385307239788641795861014990676333739636902352597010040668286749371973948675934528956029057833241246514740754659709369789771429518258560693245832467832904815248702243948890090632658319889601520524699411310069728314024884230820308496060212523804610783058413546706309878843520903327919614646724888016114343417574511379681530332324315763516484753170735348848410035104903896333688717246367011193536079053000788972006863140970103642980507926658552813482032315147317003088694795640902744211604127888628775836942161260566516156653702412968781721082495892004447516568516584214270741192856484231460389689199636581764937699048161719344228663445402689917440640128052187868949344366911363666686362655631842804943338130273792283065562024231975566933556912554270048961599322550160073209929952510239930006077615044184876049448022011528232509724651885285122165767981218388298263975705173929233827435211673490270091261723104526772232351224934568915170738554250367678491575740515850804924504341940158393149835972507950404722708976249383295619332085564716394466477038858818763225352865194402460955912140559829414575847530151526098688579698616563626668456634824553113993016670357767367144696309616820357075250725332984302254823482019883592105983268349905400309739926756577095695937688568167607912595666059459777886937088039477108603976601400986305528857088579193729212532821095264775132522546641732825347547804259646137724958726635861489380832332713131121760560340750989518999243555906246461450952535061724709199942833153294723793458876308498514416884172514207733265288353765831751040248191914148518009873080601927604708600908773912908364521047323868700184411759336702280659181937998030627214195835865761812480587989688006355011485938057657433302341895704423523716134698562019499945401693757332460277934143265369567448822771079301068233831345255684726408923234968420744429225066819670582913965048196939783263364287936958421092895562741766480459459852410151669572567135893260518718138638788266167213839226429122872281111649982057526139979949793865785681454185704495117008189654779382771928523169537915110078356645614319672589749778322838420955704335363015083239185246937232161712414187690244559455303329087994271452265187270108224871535683255274251900842078208251845610013797243272765613070809020670150720072123981437993530030780444016284105929348018935576473717881510502167438704184554498571280152648395553967427895794983672862905484918313373021710648715179379852306441856916321477836146715786559572932797668038328407391189030962333099241505515813306618801666517400846063130318161062088603917771939685502361917848049571777957221310062306187549871966813672718762848319460619809291840454161935941687787107249858837131495819124413911787341519006406274562464302456508315119297958175745410042092412377507659527749611302963038342532006855395044081222914202389797280378614955110111792892755742941858882555350296156217758278148520344407311288211087413649659175360769331268019864831560039335776642756129135296163711765966081630370457211133176683721034183652955274449435647615764694361081079004178722036529984430315769872673512023945303096089174387710081518433373894737982660604259461980418743890391136721501147350051071389167527305559046500877165039410728338089677357321317075543412743460545552466672850741016750778637430838518209114151778095213063688539702021546858271438629391634109312390355341261657076285525833122578241942433600053737026947838062040464207776623434609139306755251691161950246050998387107487226501093039871263310998673873831889900117763881139698488638775250127247634864002261846164482633719582473387334228958966531669781637510280687328061303706273906529782684586341183232521579213014938943475587841611500825787282786761588901153168430429779920207105127077336924517221022780436247254843178499881967475419675132712208599814280109808673488110405782252399628763288295055396153231676536422653932126624850665957438166761953456252214317522096594269605537722386387865869195013287547867924046783970066603002704881827139258422623857750411151301611756207705987571063480685417459188555493162220313218534209898847044337688080285771223272274183308873685467341700288582292279491945020747206053105715606140277715455064530759559694109856840898741212936539611990306336550624972651401279245690083575465372357881422566111224352628264835281401023200076591511773385752770162323824692830982013007513693250839658833079314929925603476570694119566440501719711290400616061422969736326170534932098490874949682607785557023135650585273917033792913092861514146137777235195736005056261425318068270700961643542495762759096036936601120187393156493783086837392500965738613908109595786793801370214341156729931346124216067897193899680067093329366681806939998640448224666135064502178260684756742978955287717591976976870081337321090876940982293476478931689875882178186549264866079248262690968274689486717067019021152414889002213743684408029755812724023821031534871397809859213434585621719339366593919598552922487040039504233677083594321703823343004057086414617225632206905503578904287829211248813812820539985767665429238361921597313197420210289763359977304786424438848305778043647516176061145272911161460461681491396957135655786199536808116569546436499954024009562912739921343490608099497775430269751547325096273037921571137516453689782320157417198950667881141498091583885656518088120618907544556010479764423697347215312096996163603311487025729986612617735700533450118076112431351949214991699091175139607959237308327920292573433119252225357130596072423802813576775447054711362215531302735017071848029301271499290583788619571864030663686613354242874557223359249795747483257923034001911766594061414019268945208723237078594279054760636472908981486840817246159892235065935647643620125291616189888511464524776985760534065748147116522818896755636302647166978901856326841130442322849362149157703193964500892409083005716745534256360694450074161579490523153845501668188857625504456306734854482662743740435736160083697937200222704209539101063865765261242764609265750878729643634425917546195913864878942114662280043212867829428452646520618713483623562000699268011785937286698758473095730659731115504327392318667059424135211968502728441779332362820044576895617999753151769518059060963446364597296350164983371727401359731634128125253758392227395126419978142467215707503226338703339652632303247777908011662273665413046757360028388598742372980311212006289518635473892113964018572451965262646164566081634396177591385307182269968123172042812962624219713331012641191700559650589594666550219592295965848124308963959217930684110151075613729054817114385912882021966610359675938260780125169689129806386789253405924420060086918242676223798242006822771869617590082351225681780918093853318064496749941393346531942327906066798542662027086183880413864918639504721251123383248599506823793288459852584006164831895218097893485556249955424667144444189847645700971412332412682376354358604086939080031441559584858718064335598070983926156462893645812462164085113844895901069344321261011631222831936521672225574739330778294190607208973256295870652922694479023410240284952513064496919151366476465715431298979459170188425672955077381105980928396203217696140823073920843924955744370652933999007241529862654344605141801664666271527239697780189418602268070344920074431095547513804916587995908473390394699270465726678321877553522114570732325357883360178639012519419392998276052543076514266946464075035479105534341773880657862226280680517335466816205352011489307262464408631040117531323835641807007368969699771043630490951350480208785946517194383156134167220052048386923082641731847528300141201271589393501594986772440452772650233314374682526753261372213277882942756233277515777023781194028754191455244956205287814435541248139921747245243797380608975428109877410904585371366504702129776067369386492442594945912468173679056558903191157784888271148243147917874336647361600891587344765762179296994978221357915356261117431854808130221271347025580203174204166823226670904870127428631815428455406110080636686767336020878962913897755933738248791714864531790176087354661642486233820093071093045600654998098209833552194996315381358973059320846239334789702902482165970194087595569981026496563981095435739031159311287608020911369233409976724806072329791798230731351422463492770055792730844019452489451614483301282261787818063423259620643118500934255029582968696699336462984812541567672973272633820132910929803169001828072252213080840861489544122185642008125319275772087733476997638415491427002706952018210884085176808505708557795449896942902598787166613972957091828510554942143275770195628744817878264453800702186678341972912715740214388097607779424546751791291374513722805825170232020915300509435025278854919644186433320690192851552109376303882449140750518143233595285839604220757852576140826100957055704976130721876686301538854025039026676495804266828304086875970860430246606497927263650073579048311350871610914077967468677708365018589530714442419412049535658869812274418832514927268732147386914558383615542442160561408915837104977598827844423733892081855515267973117189815295202921187997552636820597570852179538072412869487215577576740939024068494241300206945549878558781157019432774930595528876472724425094650728395654987918317124448661903684133157909393583188467272131703914341108567059876143337973688201368441342831565096322148422905697729884782377726562177157244715767387088600668061854145226903503661273497724830217040406123696919788876689360097996774577116429530332481894348910613239303433223843511733650116418180988896164602634839094760389294026463490484657470485019493660781777265081044839167320003141475843939772801439310136080090692085820454658943356964457860014517440174782767168583126555654275075636282004002464821844300948366637880673159363100949061997812487028170522990959510025625385232927202626477025050925832330912703274346818610452755480326946601874629641081681028001545626967927459511660224352573202403121722075131867801955404615833455713021245001373686560516113532131199273463604521671656344242985410507934086334970738937040901698154235042666335354180976631595495567813052604159299481678259361958884466838599882178372136909709648991899189564848001775849817458337055881310018064814773094891993767807992247203799342043254798442682037873483293231148368563781522329619183826974280272991334911249577019600857048127531151409531639193036987439623000323494282910919986750049419981398597032505654081926413894992461214705360732802520183442288956648018578347463287945315457866166366500168817411695217310600597592547938217367304617912794587798648226209766364025104604623952966760092387502087878642769184770339076987759480463285091167853418247185355843413220252856400816341585532873927609780951414284293045908371496334905479848263940995309009080025274890365996061013734131135585289568635833200926529796395161128073967185720130271710418482712932666331003811550901230187479940887478148475821459949967486155677102301936187462518481898495089403717554248337211291379504390051648944037959422455462525168955691153423957036000207248541161285376485784691952066173719056669932677766117066857269251570693587701258425748481886452844897952602594004750006287286226163845086641215677935838523884295420499890882648710766727913016659666008281340064658367992988963953995360375941607119642268823368719269872706128120653372702768516642218387903012215571644317241187380224095384376212962019323430771098446687631259909066736696996052979937919001523496987624270857523916044830137876474848432518086483503297630829801218013246557992870646787975839923202162087628088605415144303267123494231903005537471718755238222015739199764205502403113677492367845000323066696998198511935537044045197745409630367569426979649422570934825333355437758381448090101714076915848048893935341981504766884214886755141300728296317538377796821849009646681175987334531756448139465865179622607852614680447361014643033066840261246170328974765204217408366650777115216116670247472619389397740512724152991431609449886355417522961453926600620980767925896681872206159145343040155889908444800487796041483851621103430847409128024778974058638697307585999834468409253894919064512616265793600291489421742265473531635438608802388889593328151335500497828785339846245166615408300868244673771192678468259051615054560732936324438570817732365546681034632139481378798933745139316581465232832376719055982282282579380526205175332785954199567021182846160502154458846112968323021630411362656568157706398685738725322448074667039046888433872718265499559124920989041365656687892589398702500398710136885530007804293979173220740963831870144219410530638700071234985935531058812015645588532948749775932292198109984403131666151502002274952463652345996279125188538805152533898039144672931026406999852995996903615043173788716415904931394928767529239386635648385205415043520565216297716320088888236659930081487771395857627258241352034929585237484065655472956716856165348094139660146450718322631886137607799836133511180636487499271069860701695450543804751287697365237191245592338915153023786421022862365197058058651020416249037550359393836934656782089127851043659244666603389823976724346456126632208732646219331605259010619242082231599363040440057257518014698698987604799307295391825202759702098140041655893090731059836845890302854089015092093299435417501438519284939492214440936911696465909425604499623222358865420325061587577840572564938283361427514754720584603220500003239526631513841423355491247457096082984724259116300656701515955168426210604964049961609402204591141309451985613608390200853424103214852287817137182690254704340882916237665109619462128855440916478923301391710396843000599780166790488094989595843546841151936278683656260549460671452664679245484710189536878018897582627333430078751080591583162445878429385740256195197682984830841332653613452115808339967090936414853791553080422325098693198780007139889167369864976939348127991584302562092594421364839442770155636310402823947130132550963982444875698274776920491978769253128206111773865772447976572196645829645122017446391676564593367662524630135774696534380628697225809063807073507012339509343462536620912677901459937803215101633838062952128196745025090290065274790356473329218184747648336862746138063073328825079902514448557946071751498148873986447842487830261783256408072269445122165459815575225986232906017303336185732436920716828176947337915323657277351937009607596191418806602538950984540673081934627842552897124921189173291874433686048739830393863779910530937338590978101047970915541886150633084780283198026272347508433426300430554394214418870497829804136005561273194746529213024903216384332404655669192016453266618010641922356320542440371492641275590852618087615671092226338444082094972711636874301436460493853569823100980321557492411095984736957724637230291003342136083984732198011804366448256563311468817192041646284255017326160640297385677581254372235772061980923100070201434387140581681045672722981643023048349808024810031024006553459176316912996372987638000940884944399056968010196931210695368638539702997166836745217222706271231976945661275198707042107589504090060686794324826415123337488266869952102174398548950251113178160962239477532022940757531093134555737320280413831744776737952803346527692605744424783070400213043916650508639633100312378887042171311757496710909524761174503758255853518180041471950509967478845794631206123558823416536480683745402084495667886274590357377428725638274580343124642774318777919550524661378843951878491025936973836282653999479960501828423772505080404994560100350682116966339423416577140291658679487291159949269292221215585328193530441444113923437657880234019706657889193469040189332756698038653213826147533657415337159867762900706581812567784048150717546264322855249487432795066487989900050632688752422789215800366480208332212859091274914839623771748049065418984121278556323477559969752669042431819359462441129835140368969896577428109137184948697497385060619249913451377280687337779870076759619868358113695399102414047766749215183240895733655734183494473480315464867714112521977196555689791018274039000855039146558577254608419949907330324027530060182754649139589437636266344462056187440920181891676680370107395044796325423197122889095077151157591195168923660693674077855473122355425775511719700981465203096962570530746759951618310844340758611432741968817610235554804233261408489650409918613321026665563493715490338843250776824668178425121869756014097553362958636858164450098243139578962742218367388856888291192046326440881856365109007417545840357198671593967799852221901231116236361930766525269398116157323419098856796465085551379819655238148861059121691537784365713032781674545762830346981986812635250378992942151112912952636358669627920105297387031455857539502899387621212253771800971758889518324119567250654496226389675668212779897575257919754902534825555700826515739715853703694994612258791433433870310801543339717035956132918992204830446089160534506725258282185586976684860369889844782638619989711661461859775134520449199700017202027190694315949098657946913178924974762109023307304601866086413017473785541886699779017612342196055162668968098729400412170310753669675232628757850323493248331317367650333525699843326920755103929947261927902175072482856082752386998670174039182496326493293732655583829104317560820464704214180105307033974238494970455250937396641257081664246457913682342802155960980438073537045843013775554883650521693937669503151742989281048231108376145073739579865861913396619017272576632940205719053305605216933686469894917136961151746918485445556755579934048371444230873102572655582217635607495300855231717789088377907340643793849291886246623687879067945112650716751089223968737662689931275481565870611654898597650661557164625346626294724227179746286639415198965186911044649939198098587950867687994273735643126116468106389530746511824273204249593543143054832132551950636069920937244728728471410457067742340576658071895861534925028910915133429464681793804338863486381035377372318115824555106279082147100399722433268896766176045032983971871172163652488602941388060840149459619613105346852260742362917694058213474477776476081330239294338974723571276621456690195953232954184800097676212177371067640387545666141093195069523950902777769592362773129640852645013372112017122540296745396044990161758552196078278068037609793507831741253683364998738078073695537041394597541919854435760559341797949593155803978302333287126342770169922665688629530580950720717590885838923499858822803480870008990707872779464585591972876271676618325903150284499649324803236361214024563887234985347162701482611393349806230816520848380756656565666545191746471966390810094125862508667796040618141528551252714911607139596798477323173827249333958638982912656264635847590328129275022277890427689196096990285282766769376321279344139472765229783827947426106230270965557137767331634649160041880497859880373573946920393758620598878618054745213251174041073800355529477374936648957167276722872018160357745760127201494091380115866960660624580460493199597107450859576700817099157721172673317199449687771767888329150317862195949862002069898666770775027992560773350660363439641296169766240987913886671293169447928670796650107654446737103341052410286444288507922630856897859083457784198607803725103333247906104079051877734537163641810247610665660609474114716560151530454527390462391535448438434162573999724552708872567168782694245496060167836993445267719720824194185127941242823288100969954049013759558416860313745368943066959818677420398494169629917239572281051098764629163522580079964029224514931160339653302076130551893268641345277716054530293967292765010728260926116583039293926077781245384081702926998019581988327632788341369329285545448788327615762545258041004690398043581855136305928961580719718017639244810227570575716589420885864070342957120180932095838437700390083182087069646171471083190060306609474431463305057269451021434129388618007823382105244370131272665430287576186917167395592862934589264050850502858642886261473660181928901140644827207592289483896170104909542979530743513722040901471970323988570890248276585569733949331400185552402461561312803554901605835783841514826981123852577976790848748085488427014066313552432037721721376881787988453785018260533685387152703074380877188892155057186913398839365937755551478181333119634302452823340060012285954073831362096587389337391528945508122686453109213997243684040924117339247648885833590456570693728464515023460565567244537264567318363637083024603650649516485613452278845658424198371045502236132360467066745086240550443057601588629027051116959227997367900613442040870158152125189281435750502918867264167814826885048891940948108988829170414570869332450247058611958204474103855011597963467652901731234923057282398996323990901936387579093622091732007709170960733847957841038493854832889640605713101131842164946685183913348873961675330499104984003160431631564634704011992885706874607315581953072521445712163690770580879445097139104101308429692997049939198070644625703758008490449988909799003669659984374197786084847404224311868811200449175670379683129850733381412332423567631554000504328346467776976505946396943034415065787936519174081107917845138748897035143267535373790946055912060114393822473996716201529303360632641318330138150259535278739145396205388044977706280379675210278379570499459205392448250379417606270519259619186368077831934444064346415681490417487636484450960246867126320367660274842101248742591176431950330363967715343819700242647542309708116656933203427138435920576660701098295238351910571312998727042311612346268024610607375711782148043325929413771411940297579958872704698734971215024905129941942424286091248453127664735326284677393330137050290613289860191202770229624282910116656001746702045231209207422698600967583065209492651482742279784155015135841725119230500202422328413303984975051158829005799834583203381233284845322737642761116506050746818073817133724730201620828080615828890276447330699262009174919752908506264263142697995599365993284838724632871978927590564443433044298863356728846704707569470488157705530053509506051791848006101988926075157081811438487734347662404480805678978070749619260017461836246901523451022022432235810907377225950452886678880940565932918246786554403238148106979481050507300250319694695940874757094823053694219160485182838111194203448764041740807295132159224675523659064859078235102058197112796968856461714993668493164701069670148752695876754762432721937364299270049376971517302591734955562612940182297467160878730496828507165865548726876014528440433116518351259586193662905380151494740774589012339378677215231622727734302701404818369503068567458511519013486300033656904640497360707044357434091304565001116931062195091245643897533976003599719330150241224938773572850995072659788073571328760348240995938531534020092979497895863792596942817489525213136421229975993653686281191328468780259737384508521909076335385602288037743509937750633100316468352287065544578937694165914985341783574249368805550995376925428715193976693855766037361974472744276429061304138112774154225144518146913619868054696246218980807017776615040433295832971273147018192839595013988303165893796040283602678934740020319105124678095529588764749521132546907814542841092754891343584960643423239775007697017335650278125101985046810703576928742711766155883108915199968613025935914848119146594672178440571865760503536661145141838122415556925452064437546652383744063794038410326913746583622116070647506961262019154721078152592994275822332010889779593441655616318950159281789149480293661422002904492918244479052866111437286569501307452477451603049488191051084180674085111697027067659853695610595973592604026904156228916335960482602701930908858878423582908801613826375539862177442297485021085085600739775563071399439685033370227868635161955976854581629831527045074473099697303130934511246636578699839657214440079451609212183028109666902705136039099808366314218988910823635706914177557120770720449629028095514872756926127851723125571011324524838895515727442581901237801798479625899966864294184001605227746348448642925647679129030560619746864815520397697780355557246587546638873067706231558356979478292691707335426670567051875491215886877990391541665728120703237308712044339325204472046833511562590655284826232944012080080824643299729335533325469901025030313667015296306550616506821857702769306548113231599629242759649056744107183175950057177993885482313825033214458778474070688956490040549972041874516907245149988035732270202977144105208958295117847977559213010087937623550685614619487525249867459762417184444314737659848078816241466775688862149788409840056791375126525262294841188870487174919196190180512457475473170789379762929541648605617242959267181516400323239513741762336499162937888511297347461535976433272600364253320553940013105679960742319068429614020505274805652655695566900151765267047037059637887688769516413098148964315728670057611832452423358247585776401824655139385140462469263698228449264195525063080774677749682011339757566325170907056026473751880532577690984415730827856036551268896084744602494760983626362190735639046047184381516503759309145865835400039175061433864686366486409488593787031598951699445761410464541639810745652710619731280511552231474902610681949329420122777581346423530972732541827958793305037811287810685553374608381388198084895533427262783235850514451813237826532550547262611682946695400258546019279795499636811597825572399804722885748738473852156704428390886446210253965877316402330755211868035481429848489332893308423548393779151431550732284937109174717231717424492215148984634925452560923982116397942326214148457592933803110073436793069313029622617224897216418220958223122795584695636638638904804732972654528123243205599366822246733396294458082178705918201513888365739561495336776813414752917309644574385908717455722011581303845739714092256717677501441322366764680314501227690199640536316850928821001475465183277893621000959655679761879002901346686849175699733753964480537115556692413136580449366611998925092251135304632310599804197532675879581904746589063944401778500056132793617833458878607952908003836636014291565254079952886506933744239893781012474156554992196764439229900524430065881295907633757802957762707705996890552129048693746135137181247368650632744247113953414122366189327545803969207781035199947105768583039065658738037118221680561568956555831755528558210568026632834267393292847988122981007290967653233017939370529754545901635489878783672337683602373680893478993823741530495317246405205275068600177775234600379075848535177677078498174388177803111532583022659367571440043892449054376986808569638728139882670477076502662553612409537408532494048127429563250241120002332909371874253609785333460719321010708267741938688008503618610764086525815224155632985809120298303676173363021513037201359371853951815132863719994390552195372305584163582032608120253069087932369265446723063403280534960783750608352677319796268506354395300003894926904902736709780142237095801281523214231700193872399687955253406720994890727377152017374810850140797061648055736474403294793245046990208602361772799693245811236899128758783905611873440684579404361259614570878959413971580566162188710783680022073553251211385751986623886681543284658729454136271956967423461586358332078286542684821428457924727762219447892511692939699217550753779163047027168680046048379188508416123516351004273170220280976707272032150342832170557196942956575795865904521067131078955037848365261090260230629731650737113497598754250168904838992977392782226271423412193385065501314822344235296371690905761663848271452583479845227946597933588179618326094189079107771003069397966189453346636577804812779066516842752374395733043425799358602651019964763028944620957680650108164973134975123916183061599212120222235690201205933147150829987813581131511065252204968999982026538038022413832015822652029821816981048246645561418736915967626314278177763959477508767561457291127465453525590156973199208158332400132566830342613142060790005878443931695139061968713949513095446615039991097159009684205042959621488379332988555751850519935099330945879987627659158397297403575865028098153632882565728547849772314969036311325783534953657781491697945914981450494970026170386386542798272538126430373100863372975241194261021765451539105934052983329203795034578362757182033925165538483089338386290330556000524540960881650280845901419146307956132727151337352723715213540938263909298614620080415372067978533385086520819746775813554440356940413925228271349461952671076473768158047045839590416682520826585716516553442531875378722292742183099707952978951805075769884604318174746518285626786015532858196693722011860826408167784660079139157893015767785819204220884461564148217866734351991977189863053973514739548976900773223358619082033188063626703519748610197786472372518180062837970647229836873187610334590258621536746078108512875279696871623878676098218270497883353019198989871768608810632867549695897302254324678388823440976547237570032063697140188952342832634438138802276842400472630244449049311079997083938241432752447317120908868886067693815944820613734158348181787073507275000226545181504717468114269459229806285563451979775735064490948204643585287690763344571353088173226874261478378936776198159000077904644434207588298015125281326116158977918317943741399442249152116888190235016703401053756321176391127224094181795858636194204998928701731026641673955661945121377203982328659410557544191320743041661279018082852963178716089538383538934890183483050904543287799407074705299190804411153960346988766034530088606291315454082437832255861847341663481962630901766931355796991697175338122029762421874060449149089953826886148462740588060159609289034616733142280687513966309603574645764905203216528825678916408956315901341541506818417391096828242984482733840212593926022493972814362103049963549422766073731713198778770959888442396753677556215899479771884278033530985437216152291444138676769296378676596747635102741999772939094013148652468488056955356876840238603491609123616747931619758725850851951618981885251591072564801771405822601173508012424196027756433109060953251510588680357809345252680976811805085850964221983394461675429503300142528865931684677606246034002114922736184298617858647447783501858551348344137508453818055089133419373823652367324341146005509512924506849545341529655620804467789842489755765062448870420173168666103986117887329567704698771945355732206783447746296117866280610758618802316753071942083180426235108110451437960587318161490008872486430042055074963077134512108036723673592251436549355234676932382086311170385947027666138743511281156825896653918871128784132290367429786286241980746859865580134455303149902132997082190887641308859020651715394553107394271339834283724176310923521563136440120714878694390460028149503421842691629611488368164009391041988803858167572237896069441858020484464113216575877069498666433016921044035397257780298117201469914948000248342416138058462019915837571156860138296951866889015367055028573149972107520328600805224430883851164365894997466351094572716007214370693755042425750449287416746288471402624844719473122123170040703693846698839390212074236645643375453668552498835617335692087976748917549437679242554065191916833720452826767565764982828989220065770937201628380748393259464044452892228974089419958348214229080739424295253762730691187208412130204106072918851119800205283600290626943585819091103554957237123901151864772759567958295580905571634481203311361713174047288999791261683733520052655630511139624393589132158159954987515163388531773480997706452381829512918975175945908897339641157966469452484743202760561619327774279903776895027898517122117144571549440724415116976901621231461644625318912210120671627273757773093321397507355629396292954867442808929226884008331337937663528790083414637344432893263995067462567168328856151300520508437987392529308100796754894812333816175110195586340266837491099123735180966460384696337643037811727488085227549557414080836150275344210936915000408394611050150956764949727354755172798960219713889351446791373947494072556690868166313329804503617619167214229255049790437915123245958742399085211927375839973848075260995647252406339134608666895832125482517446231066000482146176806190347396734696809971168092742675762864956456334771449681384536083727812587692330764635197773794077904332065347831680981761458372361210968930366744388554537117297435701853574372236330720765595533939351533035353344268903037022865518579024183049897127749117905560481391247194077750409859218142790492257993835934176460713844407176943180316907471825289319219170579332554703072867377521964375881048990084668308195886389590879252194126251663797866013960416004215590625925473676997771844420853488059699679199628108437486312973984476943945458078696617190493871231562425379780749761437444723525924324316422104391022572211541804979918825088502427250023252349003719139181549300886943560647340493800262922552984309806833230558573822058439285291829219084715559209705300599996790785782755949274662950585911950458606433343223116179576266791087463961162951716455921634481848195764987300587130853560074508198151065142026094385393664876990099384964617328717490484145278051556522464703805638329418561943866863741607117890597803216287873026481918872455428675792799877708012801322902892779996141432997080913042846754390594864067597951002019218198820437908648463734077736316992434046205004219170354019833683798347982944937782923633958891443986582972168460852848241016065109325734296380181784528725071337088359983168937049137237953373680557130645189380287428693163363579202161427396754618720362885015013144317443676770221114340318187327896442261699633213897721349729802028228169657537195991549862060274811249252622180441272644961670174066311393192050949650745291711903844998690946713556644897278034455670179796064364904742851658402939702306904892415351665549527203210767832628675657751126013703300696468234994293154213563486185068110587137623196618112169797313009835382668230093681831804173220486682398458159374144025655286943692365325767178624449756636263739750064241861890195292813412893834388552117086542231352675085182688072913319285800129635300750535756168989469591149565510631313825782184580261735823901580424112646067167353696779511447753080761895775857112353340589049624834322033797632757668053220604637279917958193574383557882982313329102806889697574425454732477578316470901092994301071011624358233473799088250175006208048122140563692160148695968191593443519991851987245350534025445589466397350674811936188619882979897398271614307214794725114198850230667396258530605437986565961442078094199421380400866295947357572419308177829715239648452758578633463981247873515566803634717380891745448864637575478151939871718008020046694945633631953952428826329373374601486868624263564929009264317089164657255473824121233048242909686508325788529994912767233099301541534841837790109437638358625593237437271472519055223682838603321426827657464180179184960198522896135107055075608341827473549884727546229289074051781788749694397138848655516462427694454725558471633957466872816127485881444216366807706292391256286147199900958542606180490756337069692864543067065240105232225204458054124856782411653480064011284783699100495534479558729624986592360302002573447192067566790243010129334977125637716291920558803223217995252851047225599179692233910396449063276047918342420159284919075526619057553778038421394602426137741483635629717018569658933352760013321334081357913358863348445106594932183747735874765023516750439652661160069951250159589709252589623011386390525093221265469784652876260293068230473784866773265978313613939535235050369174818323849779466275277428859225763022361530891413406069835529317265416535647487982277022701650402903330525599952169013779829178709043731241908484441774705712113228296482899577677835463472246354160249251545045931268604541540588558186356352420262378664149731850918313440840831900014671061584575733371109064297010686040139081216081684307019194569942934546164484174765282760623100132380164080782690654500535467334713081981051837073871096874258169886898147963526098428645327673366049276891591890399457412991191042664432203899896398144256247080067367259949980493052899862985217633047871301979200436368870310446993422555170127045000295825878083450084572333823955738253445086023204518710593295170417944331193426978760725522532174295612882506797256931590084845114241298312068628253403309046145696026024204251632428071710181145866639500153516849991900632429828439911146256376758237861410063295874015086871487531949076777620048370041599185772240443387210606183878954043402015314268102057360290242605646169041252613908280017804446097795409719387710005425481813552668604724806459012355502183734828091269729398329540556735449992485926235956995682225455729534305509035425307789517294689582110057081363429019703685783786067885345600812902345410388258596821332692614011076494230110253701342641492239369594495676508629515518182281897061327824786490736205734580988376563206911152438458864380502366771785032837722237209274141047524392532691345535305330318953826083720285946054848162446691368388122145470735897656344168149032480294970920696791305526755568014986685983358224060422704536522220180012818744477831070144152892586116477013234673968303077728861695583565302162234074870882179216942568410426492367997524722384033705828219949788199393730304612110916727674310022545123130936006489112357212733055644249752214021996559752434999167497155086642512689257914030937794498847036845377081720962179581988754007303701817602813779649674933351994302013424204489764678309439389814062367644940540169274346142011582820722784175779217118908937079741507384958607983456316078840112409351850656110170135613325387214579183909227203019317663071397580146799779240618376970550842938838907187998989919087450707054953728326618963190784140322154586772043837626881523922775956017967789750035585075263342939971151553560943386560953453459425103320137773187718054964436588081615406974287079925193484762939427761550667333477945252300546943182315822563440694409541143324535617343558860229915091622209875372352521865485447760214807837446706218475269013347549241878324096333034212904097400835955930386449140749856630024650851807672307723279165098869103971079064934554215046904395296079353850005209978798517647116967725335842860149083738282855294714766391462840640114066933089357999140572113066542089739752995866556106415500249617249452229908457280358142447674320871495619338472337030739812381922196484832790255335211304850401574375401340261180523878743042049758168438563073351084747853428006633837183077446970086099681172280348769818807303382415439394498112852724918000673991043012206509096062218592677426406131839255428706794840505902519524171584038201722878854054286976849441763596556407319292834493162785239922518664849125130375626888921944161196265768866490918651371282101717764289112551569428706847630688314423164047473130066743960168251675180747324129914740367721625352570778370281614120850341655526841454344960122233456281092054726075662023520509075451789942728499917597113480339737941200012783889887351455472603254571002941493912136165124366988465774557651239641806710957519632018976010135667509212232892086940850382432432152744115856759755533455459975800696223737182785921004882701412547388486385143832999965494414353171603004955041922953826681920957054452935438304328168959554721438819821121886481468608699799810316257494615253997001182609590073089725746256013611722448020800058900659170043820989478857623539612396153807970919846064661104527453678422864431352075262905841792904524611216359602335987258001912736454353476722383615576287484303984702619169208358686175598124117508705211011421010696192134048372007276337056703376944924882500997228793891005000083162924119863361485925719841750787393075221915819373072038101424883068046350637713301951586401235901655162238757253099220219681964174145000872191479196817154003576308254553414633448275788948735099582838255893165948557155632245174967571913214168769773476170412340834643929423856120275671063385557194291816146542079631495101026148561941150542902245508076776451474380805824735243528990241115302968190264565760180596179426130441100255613872532291418019023875909836234661894419971597973112675210568746909102714478046903786795116051345618506994257756936668661409700152605413345417589903201806059291058900787096501235314159494003887724893607155498352646956065142209106419891563753860317203933240950816576983983354690051566810230890272128061265317485735385861363557946810821525614231285383061819030008810596545282766507928170243423114263534802729811956412266635377064350577636799174102963497841784374182587045281632709857846292881176770535850129063085310283611368691614511448184231033444367232756814789944061449616221667300801606679449018405301174607612511119844849310994876600342397296228959545260289078447168056183953068467086635792504577613476517517592822828287208934318304793342564766554973361276673674703930802023910481217772556458127198514199969746181441073572801550148681669946775076020358660840613243274737878379256741978599075141224715669919694781354983066759561432593111901305557863341314469457076188106616342387915166979930295975521288307081404786586524282051444592548496816176134747395391607528655945433637172959245664514349196126831938633359321046142768631848731516673676548382381692741822682954282592964024993580977979361763257319984984946644289321995471089238026391353638277691562081230728730605860001458639024042252010705437607277835440188115380398941083705777811130058803716953863415893156522025283956910807982826209135097080604842549876326026224019206185331993470840985973839500890694335595940218915815791405224605476862555118854192703084950710502847522605670182737304245485232516260764450861092048694864520993167450473052126053038717326809105318921632288896292075135772180941551151678715681454895150840784284257862265878952522056683014689669244452224800172504884996627081375557456329394047197870973565210752954103687291736727517787828471185846530787937392875512331722904720497224650529226508984181814998103619167715191979676206936038942875291907668461585125199998275946473889604843439253426643630058420667369656108924728001723203963729736964556795437484819203740386803211264930963891916257524343430692361027497275408911924032304759921456149462492037687643237619169645432754455945423106071870315544730811227414503412471240163029117795984055642963361940185129288624445525557464517354641190015791169415690401644022526562513316600880996605115595677100400411250178044243707958138616334370344292821564356467468066342162735979498921990553227069881020374132361697655929485646156296960445619026273231183243695024168834400115428337234289323029855243814953551514763752082532143729728084641287281185750004927910861709665044489221480159650282063024218779743963000331737257429645815774762959911767948627473539678100999989964622520062735813361798284597502626721082272954560703031134920424106168080012002147166902797911388684544048699037905727208010803127123333938794147119036340993724999360072676251962193548369773303651719268272402674825098161919182305801170801912454142039032556088981467732690020093843235590317557064190320798577455476175884679540643047417883211132589088411146101282616802172841086443315827473635432607742271165760227368439014894038923168895599684389479215373044579393066443675708688482793148354477930540015303482881319039927920081147575269530750261295499665742933167235734607106386352979236270289806099635176431131221365396631521176428882049830891438837834919207935781741001776881592263399791477103425812185449163513188804539090164015613389804636593063884897538964836928558555343242439926165386354577211171065260161395612979207134511191454964698282258800870819942861520314552916816894304023482682648313146908601419714515954461861278984501468154055234794450529292153811033288896573660282400330556193627681538931298422216978427816659082228394058952364887493161661603554467202502825109689455408407786891130184699374436978700971387648331900078554702672299616946012362258521787330056547797437890703510635039586502484797241818838339223889281211265668883542921976123046181689955110566503934658498072753301916847518878102861755753347191053386520789022287374675875056514233573801267593290534752925427354127029541027928032085458879297743850180707944076122847833803684607283325634949221991395103366019272998690563960056036616174230292763450970006417195536243133584120529882342347633856921123343900077617445893929750528591959610543086586067731672164228810632140463569878335574309370568979719945611197404114097945378318775659704969943610851178333126070858168602956470576426868362012219076377755784698926987559054762654437806947740191289784052864093880085449205535119466845573633739699200885131513862848984941191689425211339555740287949543699632296834680460332743722229648968626279158314760036895561856682215582403831890114011217036407373051921636453686596452417105191765630280351176762891090252434145071545686888427199301197485707669253229591986287274821936114489272767020382477250351343828703222792364064069230754230538209773627047155429055215562276886254507647241831796395645584247935101336163930151906858939351611565305855861418243585043560249812402677964230149084680879708808631231484960861647611321617669094007683186211517792748520212943586668487856693714018422739054743065797442818035539322948717494028007320456167192506378730173835911022995232445312732708569344978402684646673560552595445209022998340284489608084153793502993293485523144121868998268106733130582462354498517416320196193028017019597324204963342505191290684695130090334346759095536386605066960207408627224608076934446078999436706580413952278461803274431740350196557614748548026181660770312819552377268296690882694733283438783498944389321325771533444613032511878566770656226100103641649576200536210140207696040556129596689268312234816664850300848133264082180850950656371655898625389636576431030509657368785690059110782453682537277388627311598221563053694366105834247752566110444760039090797924137307452611777391281022411693549688170597303830374848204829728147320237713403243632267550076419021333718191594877795013300415702354791963992106238924645976628933454372299861265802204747926136850123257491332307119097665067185386451916392313186815489478180104746529978580776097684925823736759766119280718821466968796931171480422326988173373126813996667171440527299544311032953179411761756108952454626542718311778670061723240283759720790959679738453290437145985734673428170751154673936610375539612072317859284901100430788986759994254562920034740639680380059416184766925166624644136841716635470418999581220807791119528489661746848696332825733091924088282329141575264380911998717294139449378560311838761578693508940653916958266874019047310879675329664189558437044467134980977055003280449968355392048480289087314601307429213105912234056698288242792156014583803435660438507251709876683959231529715834371632552168591374183808810891474812291958652305897506552326406751264486156878038016831637754189552513047455310376634135114364883647663746551237439324570695838286998695787958459727573056298429064042967572496548788507272960294348301161838689225671075077289933812676574025842667624052521233240099709914112992103397462633502356657021157110635286967592823070249833919900464555134867075541207945211617787450558124183805707326326627955436703479262138488541027081569188036954608216986189770993711138903561835180967464811874116702806667836918933639816822207274174663661869831419578862715627771484272529928901954169243459003969528456499650756129267372499477519012631094971526906749606034034027657564473958705394125952988413508104270047628605181052334861661164113076157915112154679088719322082067685133314052653411499166929955474830104863917415662190914552527304454212937167705456883483793496269187110570713665243826726245072437388791774441615386361602382477828416524537690666227170235451719111660005626330388964070188349398450554469725110076012207519139463501317767748854438064065708648506033486400986703864762857332427142648695142898218765276904189765033826155311899356385812798221583319934289268397716403621542474215745327539139259430942788590761715288132970719570344929153265466843359239678539058400746434350835959456589904135524179547941589065816260924771627855457683203993728506479747578245170284062005817723891832032195477198363614273150744978837249101772815235945029294869483167387823025785427076637540525676269698837351175117134881407816197662200856773555249011906767574750726852112125292670743888924544851551950706403526889531001457736774595481056389159006246995350160622445841812029948296114789306176992154769029141511344252744933077448824368893051823232368356822036299860199266308317610044814812545484661503638484814118465150525246302769818943880674764470670562897498365875222978499173408537672452508139907045275026171172599865751774075527731580174613022947492874480119965808904502944034661462546307599374926296719067995069996450912876777335150512259535809848211998414022917554738569456875529036020851367971171505927736034553196825238190030919979491018050120505150196128739916658091318763490782455841096532561627185602832175520679989985061011377947626765198166746037890639217872727462122258691978671076116338882688956372288002352795876149149052748797699620535304634209066259640575298439246588057837267398611516093614910528614853495535965377046446892176049150322305484983591514943193939474123541294975946660414095230907827276641604393749844449345528137092653683607575824649536504344958776067075093491457965139159163154647221862795043796703605092046528578568724600586010361474468134008488322318287283614004598903938392055525862330256155795704138185782668964495762191975686279677832043522755534716679009769513490528909195983545572908141147359085814081968647812863614455002746799495705584238660815137249147109962421969071025615069663149097775495376773944871201183553423991438843356392345485268223548301506830062410342884487523264227015770825969109461933568609558432596311556700047417679042285020898249689220382267271179514464970809708779640296321857681052548405522368227937748991400175499639704848222837639705140021917786820745948819473198958124619670887374723815853972930225012493607568308038444569338159284641494449595044542270067689025313107287003918122598836081776468024411809468192920396522674366291629612769927284492513319785894189609174789498187842846795495827080302683336938499837404031526589748296169162491337735977769092212540764774788037866401236458629783376073695226984573905951892923980939623989465586625252362213570441005589295049786933639034695715616640249004194249535626524999617960600809497647268057497333379894614546937995197747427833622623737444504363630153397659701993697182584299307575545786434128329196970339488483233435600503949391122970387871503527549829366573310774165497439277073523306381283019046512156583684996155453517737044619408673805855401871165843654680327457492075468545474588379720184078304621621607348591417669476943365798380308280805343182298296317335252113542188142103743981433015971980102422306855343530520167021070175928283312497414427219722359139932722398412611286935106780307567213581492372729106027130469236850526180205531136574488969909216150038298451378731818343509057397391213099046943480527094367281147846137512203679608994322078762675285706861127292317553561972784220665294131629232301946508730309928125647495012504289666677458114706730853292237413564245694583835011758066201962273030089188368009970002759978303357800559332527342213755037706492694328336987258820777958925669864859035118296346164264275581955442951217889395669868584279124324831178350083128780991592005481921026778335190415806502582641181821235915220181646369964695133902685758644862768503473104789841221241441189568502204792333718328244801834224421561302394556619661440054182293637087639280826473551415769872735850123843209338311400629714419617741403282757474250102071137203827450523388187300692220336255544868201052449712632909742598100509708135561940456845609199334914718211937163995644631859042817403089909813404617571061440221028838220249021905344237289832717500101129664021011485690064996705702651816210070583039798605996601875190424723154089540887209301925441472618928675026053565644322419084166127665511023615033891906031312169138740904578452630171172077013961878283636404963330817910372846503065354404381633865999479177958918280071025000692837879379858218797371845222727740116759673601372923806584714566140578932601180215357200683542760863563828484392187355460780340895084010949553444635066737629989941948783619719589071988005759931913271626242885983607764785136891294413110344084196419424461401394359104741557432397299203515079268072887714375450203309814041408452218228634017032944222750870268483126859446910105609564983499347010599927158898603139349841258692614894893576455533446521866086886878669631482388923654906735483373108403248913014406828230587777874601165246538128796784068775580569815996287864383348318457051461391016398076936874973388886172219369500752809552109512042510931681599245607053177047673399318966283718487434439519514708445861218615431674056995372334780640324148828397879627352361580616978866462665621409079948400026944228368314496079713100897397197369837574401951748190294603524169531705393205926895274751165678531254004751720751885694277642280182815493971830095947809653032097358807046739533025772366403701739048612547115458962483155936606303489828829150581616908906585486269580750087253172382861123949265407973018594346914711110317039581601939189307716389534308499743538401519001798744943783307522354579270657708642303047457878424686675044641384683384455949394738656669244852671242536927220996738994848060435125643088298071612928172553264221418726457355756280621886488204834950346537331458925495031924078380185846058820801991929605647756922978679198944761944384873319552695740203169210210450810919984839163191411294423751767863413081683933184259870526955636554629987222245375891096087778215628708265075712985377591828079710416560568539041317249691010050572378621894004125645084339514047952942946562524833335754296216402685314135900588010676185674092563675165440234952680941698260847059326574448564299561478293153802556589779835010643660749065897324609843700617147872571517665537839967986920099730461580629595715587930124622108217743134009957824169662086715704716515328990403230070388380570048249674748625027531469031327978701617097254120598280516611111381815632637044872904092003107966774004794084762250240595731510278466298104682649206801027154938708034534802223190691898329713304802428865618824076908713506492402588912127813503260827498329416988726024015530478747256294723026181552296482684163627896315042474194169711583304423166832774241676717063610689828373724618982566809153340351418187883481353341217890600167352486601499104304696588652672972177956874370563119550090113818084891069973008974952548650088654944342407082677982468990430595449086310442957083235242085528509046183803038516695835678063598659773170726100691115621014677721822921663459313498895539022550565635711733578370228801637833360584078258861382151079895876044279689229353701106614117766703327524840102749778266926245365369942607951971659485397834134873133118335923237107853553381833974014478997723573870444667205226562613627039626376438487556505057513800114408160644268308940540842746795339803129970121932412572312469695864462184335912533809326235325846454303681049812625279154738920536006675498647870342839644116682864260849936869989476011754927921525859312546077971536938117750335958870935964168141645548906764802402958704314788392512654058116855670124883977359178929734344136971530119766857782301730133415067742992359564923868539913627329026280870252881776418967170003055369832115728922723186861297386178124263870571417603179156192012547459544536848132186375608847042949592609407700540465180781664585506406693620998566545506778777631176053699656907066897626067394513831751060064029687015967171107479406026153386252341221835158519254034884155148353497111476829315058533086645117666740899852866200209400298316192644804760884010209260995516305993116691950884735744855564656178345288206772562087849449797519706972176299203867421331394584312418237117427737447780184354643739257723194269673577714707743494501184349934871410657889993584427771635558776508577557877373521607203041615497895258560758472474835869113531276507695147870882490939171210869854887004987549466609814588841992015255821183150536235552582379972124222224721156921956072568576508079290786215914991691085308041026304793824566441665523244605074645510296021859290881583689128858391290592686692409935962894384611853977687724043435768163709152988533660708043064516542388206383787875646120049329689237304068708518811731896503104730117712340356576515255349640419352369364574442835527117858888496002305776990583476114104380993658453146133978678336055457823680054640185620443705892897909642948936129456462452685582281911248750215233429096202337600670201154958935069582903008122160803069182148990454870045067222005057585332646579381807483932916782268750028619673761583769209347236120779552419998037083230496252018687551107770654969004028189904619383021844929357819784086208202225041093601903144733394653910689845032463493315467916010439655395345784642582141436204434011343859747929548855632693191192152707492768090415089730604468497003370477207926932872230027149067826453971198250705916864872140463969228451581339156420131513066262809547226272848564403236477313217891904783885013023311605260342208286278948416913207286789140605547006054210287065082636174592145203997287660565870983930176190677252550125319720580500228297690407101901278008019073893390130182777866288597561005599128759392710472800541161912639696676726618383788032368893789074251386207109841153741220974953211661531718485723862307990631047797476518723447478964900290149066934751265885779555825313778373548499249816135383928028787558069013013432558762434571455805009697078916654745515145493325490677370108125871754406204983177722494696468415068325345858659693738728877594309099570759493650290907928966565700770366378575699922256978436208680478822004507125170085562258580011200631243598686781564744288048909560188695466083869746226129742416237276193761877229128063314948804355418712851860513304460842160483462455220656896198701611188699802674282770454633351880981266503475424716148686549626992951506686585252719796276431990513505144111580922914569372418523348548725513160300205626171526964469058292861088112059792477851040335831809644430762717578229379557497124640134388277009467748670327319976618926361503029764819324239934519261902639759649754498511527053390368861673681459316659804954407849369397153009566713319299639936019548124218202424017074250410063715858455093776647679082219261383894205962293655203169971994856923434348457862049683513237856796706258685231918007950912046485896189393210761307388697346119685169642748184866002179726382674548619125567178354125697177241146926469237828292962376886459424560957912500020912322717086165581769544869900489621621767567737031096041925083528491982484988862278793354468305439000758404285498065438347781786613520573341311828046180072154230069989709378913869809764603635704566054936046143116309375404634190404818070122122118129040400360465647600781015819649024532473537226315376190289426398211016951328173429776957204097866793347867838518998678169737315584576742633859877623573038416202533005222122389256871246608095994818436260588664744714717736701520540869633117352634191209462803181746731785339096426477020186861184185703895451836316546290711269403915942923688933417390387203880443542238278481944601435093094283934414206429083796526401917063734648396853231831998225822878951524973431438488310166626961008064267747086931911260804096880950530764337023159804846265668500262979643905055087107105464846769230680545751029685168680586393436124574558581678172408815859486719629530221961437461449177770105079453131669973563527939487131613632832684079034165635803985397473695307322579042434780332918411102414355628962633378928133719105130763989892850140392952811132575319680862505064121286068504606294780401876743754208076642607471306246618606541731289717892842337903808893061053082581635051555456497648305990910907428158755188788776703555615487152953196550363503742677599019174280272877660007768256616291385524429153243472833800329104660122924283719183394541317346698356018580025885785732574724938522512746510382074580280998769686211589691712246917928857665973812771434394762670211855249018335951239472470270863926863999103069192420044620699136097726868956016149221674561676703829500363687323383228076511385332720470373956321188840852447381556899097583491998622351001174222045151807272575900463308104707619905538398001730569073715450539056945508544445050585304822852619683249968455507572335376528578925822576588832555346586042507462730012891092062503726916640283933388532431878169388142741723485669742279678154975516127529865575778861247450935656294416048936026099101599097670529106544088022336656579563475920879210415055799186960285539259860122587670806841846409489988376660145740779486824907635575529693955538116850589711725067375611179625437563370817813336554794357372423907440590388135385597954009533794355136816145275978313180749636855289262702855340595619562944608814691406831156512176900895443731422782659662401432372818687732916634054265510894842953756093452842732933240380763839943905796560835161269142910346860525754655094769727241311771459655542654963271361736669987861645603038743629244414188361480501567993183844946351697370568459784112760906923822961759792207973848455145415112274713475279932669666312569191637599894520896699722978786265180568529955912968154072094905246643751681145107311333225622501280527409651550910462385927198100503850401821075596184269657987911406935337183913029655480977535696046349585083396044875112227459727619533935574767219993607108279209622336234552194168937025707026598719126278239175243571069895551528184933020472770251136508807667418780124955694580374878942983439955311884021856942329861444089544036302602292239803354638028664054761248605451720214144061881741300014977472515137442355463741049583852761728353564638709692485535326566749656502895576823461450075780516533539313852571502114247250722024333134768977402339020440447684632387200436218138721409302706585988401887087816709305414411904141330840077578957679924563216064064978915607030835725712635015753760448653661612938506758341935490389121782867575253747132440199747495682493877447630828025763130735439939791450661029630938890221103997814655789180066309268182326674110137935729218175559184165174692859603484628665308067211560372015002639618871739264246210877154428739966153274902461502066688222944950167240086316863038546687482057830034018617293369128286417307822030779878607976898867420359819429184760161303579396402581745565511138103955577679677908523272672333302562628337024267868381225724584773262979528019069063882525351369372966848462426439419845565058246825650007929475649351996371742309501363904850506962404315953794925635515884786960770474909293960985174536701608214068840314963614678411394553195042341724430240958624020041719409949196608756601498472670111597835292675430753227191227426192890700090936860393066693324984835998204891556651156384401239164335346069968535056203752751490877256165314536210678523246509582191847082612728863975591496948893682364282945217566637673281456546073097668466411064098232219570377334275049787549204479054668584722196003996194935113265515580125597631289609686973161072181144593705869912482760778506747536118645524574234687356773850544529420755368631000327562314536816624659351628088838534820576304684902956172335752510613136985341305600769084012659077569332414664367279612750996507553771302749793948922906456181000494253098652163198738640853502984419399232383526640542389984297443936036370052608722006812576392702134877802760555311007592811957069304926412943365731443011388818164129276348987142533266180653794185680802411369576699887826278321118645569601827084688121628066332926346644644340314859798937299856847993848003841272951873032695386266860623405374406801160995938158943408862778230599256055479743585507746030385883501831521017770404691457382031837477758145326328157529619567747228069365463667759622255048275696912448680436597917919687373126389317368678638130664241466644312850476460099365408008502863075028924621494024168056963463674946929198962303336862595564355802648147949497798430913358057507444723585766352649155607143955210369718045395578788690802339586450820244566983336350682869321024023767859352556131484731438707974321874264564185098201380880615969691199242006302815443267658142413548624749115086421198473122658225872790915683401646365233248011329263705690448971751208124659978246995035116447227712424336959578135965175945655526598423320114276705340200390473824655918878020977534809626767427556297656854753259209190113720528934564811092917318430576751096353847887504153652613271306117557141844742831292125400773874000394453003052385070599565560128860779836500059162635241125979518825294158406359136111206227287263359448775003396838638336915375244274638845792360184751800757942221112705603101489091914878979797670288047808617897285562689660057772497720338678899184378931682583013143134919636200838344434061190322140211399831746148644400446319399328986229382859713589526519049175762363467276188282889055559977549031004903374827021489802738610748254492393085585296121766267969603935893747665385128800962984261953398572437006951957005337553156109849500956466442516190728678451260017303612295511720978688433623220008888287658887883646823236106885408293693176195925306120086355002760450952157608386347384413402377992185062400447894165455317459121127959369997590131999278994438280791201102514315307664627377993089102378699938977436744995495589542665445438965378512268330354561399324254541919377214944595152543045159403542937348861728732581606224688729264427333642922702385105355878785477708867831935376102873625192724698652011199832790876482798188910403217936738882253463376327431673985916886818965064762832356968671498416475264340256232612558576972730310096625251918526821584613547306852737703699274504787458205422950170775677604053697514938034906841444203704020356812627091387850058982590331618958682033240009859061556643739501356173076692935563320261295183102744253604753497760858836572589681625141889811728810017984953698006870657868280092668876398816032711940580009113287731506683349330892306698134878988640451704408920400527663623663136839793209482681460334144376808475790412237178111547870834941067186589772505617097853371707071857008976602944273277291207523373245901209953610911304112800621465765070585391764020189145398406692296037602281025531151834063064733444559570671392312660383151082828359307534757450946294749795351536937091393157095263032404024000311345294335673651742598130709361545176559575906225654562438875583420759691530682052679811655626227308171576446263094347730205609170519907948726757151964693434405623782185165775359211093901646958838099201834873235519697722502569586799135499673844788436280233408789269407864392451074247393109644946529771264090770797667782864413974974450516031325414980574772588475565125800677623401497800139199735117241994138421314561655882975810129875652516140942038347982577357459956479786865141560626320839443511784441253972156567914682045401944096208168140882779595522985506793859449026288389235914388768979367114647498606955373355871862304825544319466141945644307595527228018408415576062124895224832545644445388162053117673075276469748151297023311313297179022851592024055277159313874098319936793780062451555068506328823676212726366107355861406699745108207144851141384705281597458833262955688419277052599023861516051608075289148993574992968841815323873221150758610123816422903446269711602017929960896955413408074038646898433364106648479708503938400782404232686470865800826085730401344971784283652134973719551691315641341122685206968728293337588704333237324068923128689517984803877365898593825888130226047462689487041804439955378090005504916092324033170114166126557700738078691288967774701934543742041701245943624905463028108334030658619711059424863696410784170015458517588876328992751282724009484055471076359219787842582969880586104883541451747217190264677486006927098378846802720782338619879264721873627193954837928051799424576743514968722502561849203964169249955063966398360968297141591092427237626196973552353782856310311779686940623909016287050421108867472971480881073856392071428568300663583587601645256764912203381658733558958951482835133870226906691423634894084114343114890536816642320237527940934805259012160193152605778294995361538853289820897817427398588822550428823318705243746782358943498179296173602267729458083000513532932056694585383796274225257629787295906301423812517930675353993795241565319709498551698214011133663541839592518229103644761962065350307966767829764978554627275359556756358710323500819649808031739691017976718645666452043829949412844308434380108694802065158770634582185640621194802421813907258567554410775791538532395694463358486834859289977694554154937790328236295159235957483920614211216823143533493603078335836561377648819940564691591679478141783532285137785426070248695936498224220193954423456961038725436578363809574810108831678444434996924623727044615735059669367944163368098480785391289258866578574769017899964861942836995048815772535940495322200003302024406897937105045029531989338732189168146371358089300532641506331220674853211089865973343585656815736816102652507683318957282282216810525536223632583283781986123990774761239858821437812433188239731007540020689566195510666540284794884901427480555058209878697436783097753072173555469826367106221018821269757127191143981502465290725134025967136979493511977084372177695938755625632092233367053623718661024474732072384053787370341133349646932335270961324565606578298361432122601433896893950164951142002145413510887419496298066148836076538771275372182434069667555780014366535685388125641909253383604891716315864373496772842088006757261659780057694131396960499904382648192892794688684768158525386741722209487907222305313964702077624148406600054451524155665508604648728615812458584404116324014613178078374875742429699305256676707386440894872319338237789625328750221368607061741623399412938965253242630075190591441551375237342335220660643681668163248632286271419821822561154372781555088457006218194945526673287620212797595846943882771832505980695514937446371855090814938041642121704055214605841380569856046382184956142786392758353576287921906463127710855069657064967666555288183504751848554619188271787563684059078097177006626472693563274633527904733046265391393696029828936307869849430154770784237526666878518629017111715143417239705796840903295219363960547085142553165721285379165372791932081154545135244552298188307512883958790726824102231339251634395573385029893153554362588099697336839912531558426916161831925311688473437069459479787965128442856195608697256666586791649716170008391063521120447848424390290638634647836256369514901205732849404781101771228245862475286928636951263682006290446078260353237975953131977508167120617990523206781641139321738732079957963020522074618315623313344062224288047684822371403234521089581302366730476016927787091489977130734742830358922904232428097489673597079229190532348125691431669351129403304489447146617843779152141835990237610430620462481970520976874661319295903472728028620287077870966030767402682083203969988929162324648911687935609256220771584025589800826424019939818731509088327823076623886220894605168151995204719522395914072559691686829983801642598021131244845148619417175223856955728832813923307984112946943085116714973508886792549151039282310061208908802374117895573634053381680565635945714730058526803940269003749781381279472441767630270326963134246739413518995364776285192749211311440916388974564757823186605415438944814932677655973229719676849348066450572903676531311312549989072029139680797586601951197685210042349650080500187769851609753324454644956057306406828431418618925366655663185342214087062608151845308696859512655312159286776096480442705172058101851468422205146811269657870742597502096412183624232441170390381573195172925389317242425669302902792794824496530561124131917313995994881736030217447134750516732503187735343138193196242824031585933933833006449310512321681719927428115788678283734797705950696087890365554916682572775227525550187985557979475832140769627947630678910424392428985030075693323486239774147774124488398069586324358075465591039957732783049814724748899828202887029236218755592110546074264966488766465595274039402070678199294366036101868414505782836351516757504558165874630143473659862961149321294629490287013623617699585241916077189753010713576934284822840193496664896239354958986811540911717552108506612293402182166516714695988831632156784332780570236683142912491755532681802736447736928537326677302371997212781776410709232948154860241209221044923938876235602556779818574118001143759192847864468409274116548237524973010314923498932910829828225337309708368681842029168288085820917952335273409472948974104636468427045511659997495289692391245041235575452553871688837193729961107217277704277826937435814871519178764129961355263210658234754130281558190178067909900907765871536878569092616701681185502255220243911785642098563520296879031291674530534433641496465628815346857788249352869472414593273352133531025743953374881809871055090806317477641698357041977562301075401331015025358978864751225723073817128224212935102879710422309003358881461203681502584516314183991564961323012859653630574196631247764471729204421003117968533919472981098919953334468562408187257667645562647751883054702598788799195586458248161002959594392856316366251117242760364102856440303885032069089871885223611523821453462451477987805001053327657719285981909188472340450438185063147255402059263100510208374237978577199027253465096069759028711708681519024436846533774165812398161208353256101550409558738071622911621731620220891313500752174807250686823711915738303374192159836440356662154460019504585093098222250929271058434171126109400542408681712519106257910255679018377808504742750349884413998762033144151064437458205786151198972235832932249958359027280883370193428559307351644553465892907898508273486125165900648111702029012874935216376692162131517878248694934683236319157390271380488563524857696357633490514230827081594540725616197510189996310676686260730116372208568251374141729611486832216032070400280160128580035300444496371031789718454391867758321684447752463409444300046522784386182001501936466987412290386712325373012234764480612908875845598969439333613425349281962145318693012013491097829751454118876798686960765646462731864919369669006729753688320509499526119800003506269975916256756664837429740617200572629048767612113690294697094761781860437528288442510177147315793623175891905081961263838582708462068255024762013335995966146592982486409466540218832511513701725597685723186829885517709599780353253917623685327995855240391226392886045386960783697165404290704664119033063856370499092579734783459309147582521386577857691033148502396201639343334659268110896267305080814267659128145491036743562543360218885082827339844715701611364147957023531729544090751905384305436263821340511751314394467352685167060955747784300173438479941241848402995772462562211009677724277123204902804118997108922613950382092225376626793414883136481777374153503483190181960006744230347282165960334904485580281380781052322522146148545696979390650395591773528017958555336769298493641051969284357765101896053782802803419366588964295280585916948915984518402152410822727004562547447874105703827941106149598542895449565540967142460669779600449904600338738496564062332913325003173692481049790466449678285338859431275485912873983181665235673363581607082375515448620496647115566955472818567011749901654234763529745993443083330630546909378797686179230308675910107486438066446898131776128347752153850064383340597050896655078479375285547442266374549319400515543361305708049861684707172352440177186219956742001352174556281322943491183095715677457972607065988231289114865117980076311393445633445514208897882614159275858752073506406092773082458067446675402701618091945460052073502994781414489725305789012563508835694289546726767872235455282510072506495014957199060811978615624001903839519120222633286539523685981369339027450795686208811257186240286265167191276988299724614910382259828326631625627152707454745475373283325986215656970286691989565462161092627349735480032631815847715287729047195623665316380760444553503070941131376777558484341995432095705416437038243280318042193128459521729519531694529771834911842046534790855034179584030960472059443604216377158426442287951003306250042370573009185726270887742160848469731869135094160614382773458162501011592425658067040176877168129315340988424794634755313384731631391259386680849153811206886762988113593142212840583970532458758275467207633277770519631012899072399131624902569973097118017185056044455930769579717564378692938006505566198089296798131007435514409336947322198587984956220162975928911229787887594330438255127728886675974946524154572055615765338491828191421909292582064881002696922823981902786128334259275140630640786037369761316571673281013834839069038455335233380147406328284914895911767589189553135308965850354534561264499904618863304813143959652139416307172960065230721693939411035679236158453357938406632933266345423578573752260657936405271306587332246910305122784607520084313173422543483361832404984094678956109530656706297410168655495516757218265931273427029662031211194632339736866836114334177108690949998818333457067599254343755887178564662229886380816125686609107797603997166024293273616989624852344512531298047004045783856454747137477530839672764288207741507900070778999402480123836947663353173832526881061042965207441152924471648981050493467689936983383615044440288485886704291326700909225285987898140033327101134074426430985187673369006241773603720540587381142845980584388168292703682354344501828781245888851515534516222454555363508606118173525042144212384355663225565870312093929043541777451359094675258407518359911555075123135144251349060108163360895865448616501015661700495620656357535373654333968445920247424157953958049540553820940867107596378618112108327831075831416364709475074146577730337009363162286314928478256959469487622259790559198207460095649349915936703972976056162478500519144669583653141813276446193632915670772894036879174175164015232299257376690094380250996310196335851567761274676412669186486564299959424407951396090670615203113381138197470286666790830928540379024548968063443158446936112539031240403008879350888684800697727432004267553622007195789906391331678927680646861860027003260278731740487691651252436581537674707175711835203895346536617322975015416612919709655021371216501738127332509091530143549150135247190059221103546698713379318204742875204629227115057122146628140158261980133540705110577266601898322240103428226089323518233596022882090323998068170836663266847955596429122614380582791200631762416601635083664875918726896783863826772124971446133756842354958041699985885931219361370973451844156988590129539018430396144524483625307790068179680879566414265902594564743087703946346765568931363270359454737653720657037475143178055913582919757949850009011422513867774053306992530023517218538018801693811612759227690243655069954995097306904010693646426522705781499830732463674119615514990258282372641650682577337198895571900266094990450237949734557169365316803508009743523459276712745319008746601069593029047543427440230247183159651942895089528326013442415930531192589781635290896758836852305330918078402049257959429558409819891854967232240072309654945122544100422400639050407365608045957162197152599871034392122745600436219699267539124104538660277743282949237987418501636287201839653031756459099860291087861242784997313520696530712671659587446232208977612785301495390246367195762806652080433997646470453099038684568014881058866739401877805527279510763586284264993906511957077393297439624248671717605590132707262601666307373045738023660355463745864255131751777088578226303116324615989822960903946904241401314854988622195125273633555683908252754960785504323366855450506227073129497794735316684039615206807861433917431751927271784675866240111642647188065835411867622523951529425109545415682823330120193602871058570358549433890822958609396116827467786048945894937156202884679429648507228053018277115582929995439342118968842989905742396678476829975314807311156832421486911193244475840712632359167863497106123055096926703021164148103323031192956508482410416343923815277315323519304843204627313229403211035790903453671258247872793980062349322143344451940361373504237011504891124128044681312935596173579250999259293502245497763174995464273916535152788191803022059860629537259576827454581085393430635832475216644305395734292795804331576560974867251671236693494759700591794957960717169456036308654066570389127956545023374601431453647621847811325576044171844136581419790930321611995166667802230376621561332153210192180025603534564952089867939892050133446596108416079932690088359062653335121929624359248741075552176668809906484481112074306420554128256901214857458646334961523078566655395729106173739496154197683441762834864780137542553538601418045792755797230981465070306655179388240797183542728910360259535267419842656898037701460357162064044768844564143076362447574370507337488730271121954804468999961688641185622434793391539499657285631110865775163929986992773960148713812618195315969340412772207780041908575540773490456260152947166791376665421545309184217413142200661059994082395631097726547426943193313289008156255335756093898105448911634924475242389393751264068794242601901754313451203427581359604392437259620125750873037833576664206383175488290207152872549153315409944167465654174579371834219515970051556141429727611278011253859807030082443934727591085249537366033931228330345602233073079541979662911812029478465835920222240792067126290112527401115366828518551077715110734558506072009893617456678898221642179557814805628722966316401472567937466656048444144674527551965903253385872420099853720314752469915008731558122156841803041407672845407305685216829720193670627092703474428427996907221184945423781160468461221361762154330278881195127544502210501595123958173428931554725243816656021674458150987511226152449415862980551034416432380062393205949450324740944941704250726280968104947113965910682456790658755584284061433020587196951701459838270150411068819853409092836020412884485100846046207654723763298129406680178634522928707079710919143018082849766858296390388200012715502625718257137659185345546894864598709068766677311853967207808547797088810584770547423416058949921822981281139747349836696585611751507738208277098893213957785802694003801468836212226284574581974231715549689861597691332182540079577487535341805547444157100371118318309256122016476285542045717828153264398860359736090148709233262563453944192240070235433521199778729989239244182294624421830810723182827581590927689863460753435744604448875470575104459394262631115235051796847344240251590916412607765618239063848871316455225642583752120940398118214923947426472654806121678867392089318165332597984943173410732802154721180332315361872351711931150024141622696847667221732851049079273183422690793668880330468910169293434342794611736883113806511563628863986042977464622089606252056082113189616859099469946812724514703768149842011275907391604294120083588136864736227034014749981797168162603429781135694609588697588768503694847593967281611878459398907964343320070354877659792313000175808744203044631623960713092805629637088817997967043275187633064513752340930670183819436370489865958362343554142302026408827164002520991004879709775384341653593427580682544682940349052883889976065969917412858548491279078241787376675130722903182393041703083141440624448740753294627464616702864515452076970337027598851358184415479695326368730819340767722536935687101671737267046609660277378738753574532096322073065705616354898387106311670244187498296694900704033095854396239340292462644590076131748356514388101718092578540860725395703325597668399028944808552419870271211949082644766691518661374481553903748678246524649459833124553983219744888862089656043858949984107012849584059632406184858402586675059194252127412935044342677457056451797604824037954430849933369489208643681365702933196795645929857177514802759136753702068572733356496259092928444500793605216836166523255798959271524699918278912860930792853907342513413069702465081215955619327167683960475844120736827107834971959762598821999441254544151067494019653885670127646463957808385115905328879769917646751904874655900473409786074803113395817463994266794001100902373712432553649716010969145004682508052771967842669613830369419531949317031570773993750880282474468881308827518132258275773494441896257028791118483733040523390399268564976053836095792294787086139695149277822848355507533941890344177955360489969131710501249526982239492632955806224867336105113360981143922442726932178517066745568844505406906115449713154083183484298102723651529797806882551700344104561644449226045666488331097029196438719482292863365164207264667102452726843372609567569057233475195587579812907981410436051033604687559973377776922285431817479072475175504916172513875752553139491817922120243984333491919471070885405659965437242053649825664420087975396312948492783926152563086656468832699010267385320377261995222526438151268913001061704880142463155859487479545153228032509190979528738268792389923051996844196979861765807331031055041101221371064477366205878946516827063473008500375417028870611760366234891870326811175794141632357011534099042338387706517187888792817521993646789503745970689683306432922173920200585486100939874315309340170961781607685577897900437666033062061681759694245786020699262250019127020784617129580677120591024753381950754410613361089108754558904898590731880730017153257854495905636774181491436701978440408776328063399053314102068468536032072051292044986511339920027274324968965479180183044772995936257732217009556205207108414532016122015729472698420498142904336371864979749415719523587320632948809742848621537081906975060256849683250213881076967905681734942968426058668705539276488167143216980604753734608022613657842507148003213493936722657476995995659076492636278261782166090046890237441739769122860303919067356031728438688195767466435938844503071100304480135283410727776962161731356323967001515775796009403006426269256011161487596183577407885474561568642384940973755677918034621966148429951485445486414600861077585751152451181959884048598359162659073929563448365960103888546944935217552848421979510255260448263740497092977184430778221532655941454543497091422706537734420359745664543738660252425853571086431579739451019666249211750413482602795492120395532392348840725254727573530857367519411236680674794658781809420790986511498982324975318560235193248827927872573155894112712473076681369493498475842926116045108076685765936082400370175617837127023512191535201395988184222742892804878230570235693657367615728964203803252759885529955972583339289066811855684479139738283389688643237232343223509756151198894493852377457531999340257164219019445035927467726148697114726915608966349640822717855259325349625840311547500941686917681375495343638358539090426622779561687772835020681048584678821060661656703758510445566994815747202201799907659182061012301644568368693021376409571692742815612232807614485470418363702296003581703547767825048790886021733113767953614730976645595743714480144237364664930278301590628221088099614029512962431576494478306067945940384308278082866035904657480035021182919890575667314924430256841273456701706535885687365548090495080797854247127257610493752880707572486534883532416797489941682604533913771093133491011975900311678687603532399930152455217475545723133425417800200634744062641290180580640915609097348594083771926673424017215082662463093719203721985227900408082673358328265875557738544400968942544230143285992867688319726643672799682126638107438105299413351810372892365449258624154714322978801132585583079198803824105010230033230830285157391772708405539779453191565831389902899542475894766417684439596487500496049770130135234352429856201498157901611268484230227514877359590611328663913468550179178587121810016510023849262822413484869568680454395966824080583237515054525594849311888651211173746914370710658263843460533387329504191056233664881620417083531458437423411928848658591502982915001417976110044727303946499045288572170978596745447285874839001154160592422042830267449017037969710643624464042665382274047366776641145319763767848029144236091578165864793956537008942819057948592042009949500990769267061507839381733815425839748418029279251709270783443388541005235259434095708125622962061408799819752002430431528115867878787583806467837239460344673441786397167438775720803859361055735831975714870138443893656692969361788280843188513021478495335581506999285832743002234620217292379831190826634328524644320873585730578526588622023017450606758984405754209241008640505356072043185095142939026642477777300761468090748942565882595137659464485765384649746334225296901631201319234029307297832830280776827048569295190148302520310225090144156261221064370662297523671121753682200929461880419597962398529149659093027614830293750907133405750047721727174082302041284003964143270633974933769458253643817692760755774178721697081789312188973054931896653899574960510659024838075633205622388786119240093156419916476089485430481528306472667522039651757855865131815128804275115770269882126355800467914453066157265671662184353583922067373479835136793482990235747250588001814246419003477008861963424661833334504293531014893724904812977767790107786191891395638016017495510629041258583508656465785001977340238505765198130156465191858983204282590315182951236918075221240491836170409163225113353890887527759535293458509571174661232255427385017745018575635985118483496739283447888349356090941418378236570544063280961483880693422930426838688172691566602072613597020417661769313299758825744941743986507105424712298976536543817582672222302249047501225566229419269972299217434207700254681886835719427089989204414974897937092968343759990672156308739113124149412282844101130191015217420465899560173548163355848632966926075748727404417211881594388365260661739556756433790171190172159334659988244240753153403213134658230220196839499272954034112020417068827778720955459906643236107171633600516160102226746289043795973713531931347825507850665349416126196571729938562800781230918353016708077414258902073784845052461196010547310102726400889617445358146731728167152029174852477752276599664669762586735627386966622710190773888176682243088273843830971817031859357115437286281480127088630655265275496068354976245049235513002482581386096105104123352974765295114469954839792782435319465888918012673251715857692679303417458073472471619886428437167312883588372397559793657759157905888507154582351121448628614379545639426917754532830720375092149328771296301117897749742062553027827995243077558122419744164932059577021903398656563146254763400791424367416641984256309018894750005925382964373671963529515114008955536572831238055906230139040461288881240426979213321979116737557536681080138625197275532633888159073977744441657424422201240973705182629954388575368037294471243119196882736423608913627648533775328160324143204167372774745162791112047213277734903019646671186510105785381030188070764918641675182300644495610477479566332442897976697037121920613341153238283333196036963860310492937153483224643997885735262259090766691180436600061011081169503491703229949248146818165287068791206810014960503045144309841238309906393417045504933229579443278416393175397488375697661767287654661674553971568623642901222911840285163618364074511854019070860914665435546689928476446140842306545674516610587881911039428133216469456452936894784318586508627112769348491513556996315886228418639767287461412043749508642788067209147637725417766182376390807968408005809748441861800774639045457299369657969180665171858529571780043832003430150332144095120739624319647248094009996532898035051474834472987768044435505296248098311928538285275647746998897975480204164427092451400139432137827095806691308181779585758216114743863956986589977325967342332302974753958686797469567866114727512363879406112934588052661424898659350342867910970015660611161019688602566289181214916207366475344215695399618201164023011987027522499641819188998063036789874871347713836215606823282855039459110195314775021139029588136815154610184508041881638405622323650965756429653182613562688750047255145666570954351581496619762863907927881195260685960456924268554988578416311867462728247208733516505856883441112131982851542425625168935860264667344910127838611553085864872938086934199810857117788662781446514126477784786903794238395739609409227720966758726822972832160662388296522096152373567755014079576269789165792930980115618486215169169849903701915857903409340501023125787363630023859744990679824597712293214489811256289226205297200480178283915338920889102748207870277089034330826818339230003252400056976282244857277671547804104180981839751403100109831484897909534082198173280052020965856766264679862324644707949522704321819993561221800127783651685605665192402331789506491311672733289660931283041391450114076313817299040705875978982137244379242096414932939153133809927042750874418627147571746738707486105173987723561826305846797768112120770900370516668934983017758083962628963222495114560516019614713476685304151900014571337328168273435480757993529323979177589043286936705299057197013076019483113317078231780318039319150037880318161462395969197465524128719401748702196472283233159236630288906803955568332032615124645148378735516034842068253003926755813024067797842380177136682705020981148055389097805673367347877699530670153078782504739842215457946978124663769634737631559042281563998354650092599855857771927674176596939257214375149812011430446061758767247987345838529679621173034930623361715761459512917508763273361050829533049534025320602803060382296797188402394587746126926854313324029611262227457837337314953342643165157615797277830437536089642713184250292148025605152128482810918292931287536966713347591506646212405271251908381186147654244533422482144486600717283699448270562254108629732426924674241003119055892260789199025826850981755524306865236118138643487152080790610690658860116942931009121452397565953502631755947834355070721110436101301759146905872232212792284437710732840459939559672414804587142927616551650758319897870025424225886830719375874230756600125760687844036769734894091568429600609856641059159106787769767719815781408972605536240631353579494518237252718827490391618830908969331991582579549952794932021548475604437170195722566828548323329278787852269947860347861920285046461235206495317784671830492261555076915379233245664775528819894098855639155278578274349330499656731444695531876292634554698890072896704698264055984591784660842217563612091848948525063985497458913914113095664542504836178336698800795208459202324943562358410332643316315991757698146237399721950895792836094347278177434154724207365747374902357466560472228002038478692661387996869194616509153521098189295045441794738488735836514286955090509792316583130205794529600624570161589571803943590216152905039580802493004178433034560427949968974608918193556119156072809405331082125346206767577706682499618386419425959302469193088721881997712327805315531754915130638278066885078598411668594549029082085734603074014500464331160386782445916131312902652899519526868437545696536800184724042991372663234885846394326684731746329802758715499416644680456969222619579860724999341924186728291353321113139844650935668653152650233814433068876218893593082589626351146380981633307672996195449490051744727606580279949219922483946735111084759584032234351386848940704320391802758430369382142603185550539082536453104220218152845740623076280507840728350221305708163378680484373898187164410412297172522711333372534746564554573659227219692325839773716921229627208758132567786618142813146653219247434409821079286634514220976469729499950663445149883008177854376838077617782398784795512392502502288552960665721370352875666053321394349035998720744557374160723400366821299061053578483005530342193890060133349550445960005200236715764850985574872821635660371084439867843852430507055081832708709042221489938036798230332382683008668632216095290851937836378391118528991815400912835985600136044255742585823418223859048931384228310756618531366349292271825844286401526596138120375759549642440901486569417914058321490427940310264049893796799425643636483007489459067731972651912060123847632344447533604435115761560391819423292349397496736899687595995950028926834812351590737548756622548999979598558856118361786675153380099486813517691822926500004142928217151073367606727543546842453065315258839701422260560569644046258822335520329625776836332659765857549704157224438348461775128181892790990253941059472684849623406058944485872040849060271103947104575056917275820274021440373593454237528951737391569342810353498331250424435534300314376616131003550215323055691694927462850854700546971574513733960102042717868855918266750603525135305155800461410562000121657980169653967297874465191389861242591808540480007637836836524384084233180417808437257076172583183147090472270615174248084823718756916039827817117488209055478864017873314029891366948611361471630071946532087793155445770046669911975259245939518864540889527893292005457143398063388159379372993279098133547195077891309208882866698123720827873956077128538645763134886304422453623733576093484432175915057003198340493951180202780231490610279063897862866408378527007500385350229322322505581548144743858392904480561662232240154722499689754836878214763808634012054034506271766833223152617882744909923162621148894644792921433337940791721225945260051149106221624990155723956578183271251385188629495575719004246530798359068283292380176757380099934400305817674279171928706816068569850368424171588670433096857008969576769169324252290519984969843314188089216108425974979741106138348472643483854124137416187333456250108804754840487436738967971975934010060559908693461954601492237717498438893913984552966160179901286459089742546209933956417884123966660450364348455771430981999870941831670966037884856517006746092383872110521500383426816440259172340110698023924066892506686783125826540097248165552804684406434791956800864919917307938958831183395513112732411608439900106698694095930892641987663577281462104815629884641762614467038453972208653716195411308267932149189400238004555291527301671841824017215029534814816472119702096255665893094204228148126537417547766722947011985680502526742043965132845077522164766433859634822387379731091409095614767864058169643282719027310642174500485410082200819027513869804471399334554012350987203587980025789047344983715061742872234520084193314378053012008559703806400458713769281888457629366605704171518394186095794956203914577200894764672864309404199676479864159266991377720116187225480522573361334836739727344807717477737947957134607396176192713639149279520895397554677380009179282353337110483425535513524058496512311877963861512513882037330978534305793985101924349399632482791136818149777874819684914709351165903204041722521598790649672349628410041411333996556841174659135273417606703117448939471539663248161587679015989898152915351435631587696876329452721044133089548374793125192851550583173482658981977152187509033128108616255823306829525223039288809639909280070848021183848571227184468530894402913430627169795034049285331954243311201276160003705820641170670228729815562465554659974994929745199563391668727653109979904520412296099028623712435399623009363469800240363571914729158686622058710283492973228079276702712206322621581605280638358500509658715051883449765131098858247962006005602725143194774208792809910961730902493406500031092091638800357995673032631274556985352823125801750567764225641924311176238385268609343415009366134733414489973235404412311615260904993037295393374486156323775184588827041882029701361738531222631711042331896391310396435145675334674663679171701428659294988923543163931510536937547837096757574328063952440172297647878846334290278520453675381649400280175964437492337452306355447478897521985935974321146642409099503829623263836850531054624165420140295044819962276956631646257217413509500583200186065231116690667488374862971824426699380059340383299428367567094941923049351227038529824657388450063184448668355279323351259185743242161641799141883404712096593177963957429977952966392242203099974231155311548489437340615922625344636858509972588995011792881779387713927539768593703725782445745337167564193631225173945681583799647339590207196637279216180915375232815556502327201131976600939361987168490756561214116982206170673165001636948936355124087157742067550979796458184794781456507977300483634509393901688645253071660983546007529002354254478912113065203740892664134068042548197796279100256830520272573143238489734010465772127426915595797207636188221495518006936975955789982972726597677499829858168004419257865102558356135119851047590980418362233244487467802606208903025773935529811941611399629968204981714014202872242974372221301450733814598754069434979435185190341896332721910439641232029944707362703779924293792843813960818388095707906647117351425796322659355203338439240308745559293574507788692440531251124976675013117263648480885685724948997174439719222960287572010109195682779945830418324425169195933625324503964178872298840298689387041429086260179103195902320169180505785411616827373417114635577216847588389966912904805765599825797156432847773407687695236161371724141771839152717901352234316707343923875039511708835759565397186222606058935539889287724274827914564690432432692162572055365669555236055830411943480391811193812476225282931882320707807169248641021103805467632909205569677388030481719169056636326691282316410845303142728368440677088238788529578385371483361436431300286448875065304600117382827507213893237703625603418867834484752748053172290356229663804646347384270063169273969349314794197786073989586123899555653408020475019042393079961328431802865554295877531995687010326753312387789136359493827035586933855042913779632691015789137292943940618805658795725196067802437159977494614576284531153145644311338317303327056304027114161015812271955813805096196421241525866662056772378216173784020592532020818536106248038981451749150592420457398081635329460822831845335519360438257695967449890046419997120971670533994004568014903357536831252886738373084871877319273572282515753077961834073568243562284598361758309825219443932261861703792928694545825644510714133921717656148547473926908761933183551139076258151685496365376665790735542189401720324738578341107990432417318505345419092301982451651794158157134994014728665278180562923291284915058854204660095002336493341866935741653258624666232160172409705709622410198383689888083143315262477650677468694728167927609109467089829453750456089280516630410273698888228050827370152054476089898603205489440496554491369192261094536595736183970193176598282043701277930138956108186252331862483780527583106041885205088621212990873959347456845505902467107883087467798451730006913116604267296692059652190069053969428463789339916995686279097729387415161417873614403627049646325264735376242563647683956944470619547750230031494191890585522757271301315131990104713490976732351288707793217403077422567258379819864885724050984938288812462084739191839778270240072280618231734689622068956086179042924099367212234219509244091714599874727947194191472919733226677570756820801814956323617481283062225187445870373526853926596192694328294153480207435384436052674924792667033612185372560261207561760619031559655947967180792094980318743148000094256814284806396463389133475323027613604547198678472496535074042489039326973366534431783330191678339672684785043953731814912343634935051051926822961500256074588810229005191428095040649978558604903274954893585020978689130618419202352130522316033001595115751080354870693665920298665622821071688775668449505601629808139349215945938346381920437393735763125825937907701888723380273040019010125455016717987222767443374057279739283020042434827377916382341991860000263084956772331305924047281758837762523025411571121957603395718061382335928839260562247446432621030485114058746624519372611401165867241760911548035567290213735891751836521259534331523506951679662668088448915532526228323873459193159839873718343619717017031320362021400679350133465168754889641122807696542865078028602208475069463905404191120419506163801509997706802769583840553005105939866396841196286837580562404657170838168474542698007071335137039355744638771302449333495521863680558740170321457154276797063947516982322944443245648041892592490742901027365503387466380133088368778025764634174232641878833914983984959268237519034316251298238474373300175544697864036381944032586920289621490547668998068691095663088435429664936783470493979567821855935976170600860624713256373214349476896350901449951228688104572624410758281369180351499271770980771185457718906434665503254900751609189959144138139623744804782048604401794548985290427038633327833164640199685102109842594241076084777547355582181055561908025509650774380375305917663090686202183745544269420479100947472310158707573022038933430104326139046753366985824050635610948427051081570190307295664510105160923283893260604608765208640093213420733936959023500079498366462470347534497537900558867079485673026810030259733189041761204130986589584438830496353599344314099427912786070982744622215896385853875458469589789572088159565153196928392066907496994554924752629859964820138431791348951029730093259131692898702910792277581277229787821279059061820578613844465190749474944979756135989035334478946527292942123234603468475760561843277242860346926513958963389978366054610112881518267683855922823899062639154284326118500738247657397037783295500494818151090735868985742017342327513817033900721614880622322284724264371911164230425892228290740158234611544724401826764636183168603670827071450645946726638330016801765604858127193760701902425999558469580505213798487678199569091034480628102090372448134585982400566154775866173885426995216479524641564935548554282560460659507198280442009491370679391723813865873782662951540908898956094515149301837702965712738447424397706226824703179003778445864991320452837696790089182804753001576300209502768021683164618722528910782693244628290223540579502074272071365198449806731003645526145776024046675958092027825295097425322881561734103925822344880778474002350477491151300539461544889035007361091800940334072100698676285947376930290231403733165500048048346073096490552267937824575383981722307640720869532432875530314713106616465756438224804351192499339737706427901140297721813138518160692147738446794494707610738455324401086357154917243727510695242440430524907285447747547266948694292400028686204148167721682700687681138120522477538322206831750101238324195897628693638876017375459769412903223827032261829513423644038586965824504848540628300648105588593084440789691560454754813455995029320530739516654177754331526160460020532313965970202495806432385087463058696020481960128577343249516608428391639717504864694397357989342958491640712640126324571359031148503230384182851128091021769317243339890856192781702948066010582401073628141390332596066557704589965096266519818686522513874868156855452419550322660170941130824759165977089768575169871349010924435681756347251409535861652162517904108027474606511438825561883514486528088693950508875624858370700747935552124639538076640123020649581559712158120056173409408922669647299227097399975430256884439174081574141661699170519797558548352288996169606414409947114812449029243513866689091354544766678793849713329268300864841796829603229594590676893860007000726506423631786741833245182789786493384750962752774176929382237760813303091925991008375786644110830900844136715058568712026069363358523264115102932329259266071729366930189139985986483560197497723220429384995012445171154281090618500770233393269507690099007494297953817063039705343641464162958666508219565567377083981404337194857783765855428571140163284881519793472843356124054763396727633587095894122243873713329520683831212148214681319649194922133010569677520594583013039131611395547152446174882906159309368832543996249254409568659145084725091839526292924086614963535157113052331086218726588598375175413445387261646048861939616317003242004848083831940541767450554470481470731515617691907636174291257788796179401316285880900362398838063197216917228957039794613852203042594782365722852449709464054426243925045952288248152062355860338280594059171024293667499457595684823489164124329418732983849011746259613290038521655299755943253880639060034489933908318203560709230828645353936370478427968579280812517065924156425520997274837445113944880546501144661491975177479386687539810232419071065904610996639800199780127721846807257270635208680942625226472801552566021142605597428098413206744821239652893024032492909419632370578045392965741380469942859592889382950135112751600409784544432477022404221412306591685669008809498169274833238618777138536532721600553695201112698037916190595109632160507545296097584134815401911340324918849047563746977042647471559771598617879902398502670195190201509581347003021192904421798542554294320807185234892957055266521367963177838909314310779994736779527093547182375857504430672143770637400954489740113605614936946407982633940934233664231438128338723992994810012872807608584486048218672254960731342176208971871186641297368019674158687449876211029983884765984540793004456153718129145912556944560071087575272137845961325763081147758721126958775019384864950837544121044144214262498572365995190835587166023119698297305333964199644418765795969337046054567826759602917062242824461708299995252808930418038749578220175366234675874932269871418692311547046304294420318646693548775573278353879644705988636886907447989017762501347498377781754115803638861905002293878734189433907302688763550628113225828257412513188252919519625740673974850454431928833054773401701051723487132198074478537335217458532658813695323859424182940785410067610158494267416008765983080759015026341800009058987441380215554702312835988001586416563477796806878024640267829804373782336003539298877843925303905537749805172456399928738590157689364320098845847028999362920528188382548552535779032284415059039455671957893969587344032098465550875257889954032705071305156522434653485558206933298525496115234529854231638297355116552241647579565741218146976417345419115260195040150603354159532021183689830946226779647343463578675409544489083026080545040102473389087543500099002513190815948624735568795894912657402218776596842598515104513953419447638006009079546989863161040652214248527140660637363179370811119199614922808153189821393519462041016184426421997904195760527838557471063826779218731278959327997612244486706751494955426204801558035721196544712515225465825297441243427463667980017728531110652030646428710399605406553147974195806005359836038599779266223545805770660030918477615715781479573755850967332658990210066969348271828152206369241513280820099103602839328331310461312602287832459540713180745818077402325473712108321740079538376068687980894720952926053279438821553711114263110667107847087237472259504994286023783282868054695979893834367495392000299961371715543245708385908734623202899986606860814443204940685168952804589883244374893669893562971144862466137881724876966525169912766049087775977815866522108581795547928063642983668425980612169407058408733534851113048220846061526124312383059173696391628286991179799459014705998671564925211988140346709941541108680778282980981000072107373786874282469415567946825263524490741317785641931744128984496524888834519983756694734917251853052824147535837185842726890024320197439443973353102175660422732837481989678958639290538315876550957898468740953321593913906389099341531362511187029249425187698668507555912142647018545343567689081724015835571033729044223353690629088515540759747054990281901139379353252618711887765700641557766294722982503743096898069555313621954569220543994094478146538706826878945730597946048823558512428270378502410302888522125342988042371203505239331908854411934442254187200550923882569010571090598576103952958295011104087462524117245282003082489245737060450615092530902962877447907738201994330875821800700741383597455227576524611941116632018399576556393464471315646854797861989273613456643734152618577892394527496871263307020018915225622752211802328824182286506813836756744252883716076462471661788219836164241378396218458843376810508982583705958040254663466773298843990367281814556955615023953857382064126200455346269017606545691910890015104197271464169380890880401177635728800818318961436810626329567862037830972086846993085619077330115984799185873512121406801725557631689556058806161793541745826122624588860869088186063848986750015124477589678816742101752639296406642538416294228986596106189338034674138862894424762358104993848528254785724163010036129252880111653477121033947150718079347078496626294683310912749301810731800341315459997542371107570828061547922458577723830270514302366990188964640028624880742698802110301111397328026517298767240736556937253880363560271311157878450681900300107569538811396967705318701539088136488864937340497118032742882887303321589421525741259603835875566120048735910466364466857818693227708485079539013491612201423065998831358057319394117334547705644413910248931578526780170481661966553918244413755484351647040641819011875029572521898195684960306699053382946620047578204419967752574650898347477626926520385866147578668073908896651484503160114900263583932034582507353762275507908499426792207951530437321054523306550419404684450602016419141113315181156320920557377248344489291244507107755842164968339288617528029420175394757558867399985409070829764054928557218033836183213926838788771714363917295862738367671891008898839644874467793721317574265454976925292502790901011532567230774555647214296285883908371949835108768056170662907594442344262569294830581301556831070773873991118600789063972960678751869046979433812551680182755061632214720078635250627481786562983592477234574935131115390530844549343407730087303301749514154591007835773467461328590887672203739747201210942670168990855398108757030251360540174361018101786282808611430142937778569020652792830056540083014295047193101537356189181966959688719035743751541926854989465304877129824785142975786077527695148038384864110740442514428878350208644215394810580331457911593486059900219221068036730076307663049346264736531398495819312508952460309089211460638178998888569104790963315236515490851396995366723137125160833860489305275562461281861528263837997206548870367892693028369343382123320522909579023739775173883518665984877780515219673271170519929660737473323255251817992064099789755051065375322949819219318554327613201187959220902668578139607913037865016447863547537108944978062006619442831237462421518876610307002787889350828760594961753676827243370441268432400882555067638845973106672240765737692652514295099052806184858695917856950671188658892883997637825728305401284240123586944457435152565451283767794684097994199749704718454950764531093769470115802034402516143061540333553221364742218557788485414760034214749743190101900494742680110279581763215581089897889450281930133374093215006733012783186730050863583178492512299042473599704781486681947631948431823534047051103549500147904641348137654389839553512893277568583239054332613218034912826092940799655920526414527054056908222237157491816588735883724995295817312252875176339607660245237378748874172061466968495749606046602291103254731463388184928846007488182186176031081736579015242679229857410315510381228508219326304423907995220106696387723590351042367353650873795211035868165838811165262926147665181227480514546652659181064283060910599875155559724454182019321875944354340302640064279248541744559482246987600170368688129295056775054277016873013977228312524775338628992860256882902667733597525644897058868325972019413141062051575013048573879120757267509794481479647460519509079753089374627054780817991328343275965052789141248141826394714573334222103914861263712625998400908444456833350866968655842874155293310414967223028721427528048582593332995030335156259188474290991817183575568061963067762101858611872110891232888058084335149831403572463656781658096425623271681244093279941042965624336485959877644255099798743445196363285965132712491675175170262275645564124610026001560845546484457620262579405771834168819276802427109305860583498399908072646483073088865756652214284676520258057350773389655151416510730807307616757656877256415964237519854552381509735344703073428421218288142212294926332320674745564179160263280731015773089911870979433090713639366264570792164469563011065621553951629138266308616566190268823037726620197983203033843347760667129476234519520636410707288784228106804187158032295214882832550698532113933839100021529173891366027685370421105531196598182558839525198976502964027988400199155654244070608417343755280633234887907273959837238340750315233500584030418855772901463738586020512748652660918953995949482220566751699176631173173195657411798416993879169084920742963484984114272661627157970413255516598697807024194294513284628811451669369907328487908648303042505091855786150391859342565514737684618257229624772090505145568517530381581337618619052911472936183642970663164297125018934655566709583671079574434850743133429417496842271526428449968126598415249855800746368893907382974405297716588354830832919537630470719867525260325065167164728428538656966057569600827587809481337126955589756143515995290447964116460893968485330887392290676692964303088330544867684410418906807404503620042831675476069205841248439842286936735943680575280822579382124569572066675062430933223104744387893138885584894108999612256926670039125881965041686700467683615041960184009885018113697530750278106475638321043744215880698363055015267647175007206935446196639920133118574969608596772170955914654218246808309796601266139284588515429205976642447101467750433587052681958821089632927689849159907585681691892914583937865058319559230368427697692063508456298802823754067530442249981639695470585327226063109173038761881927033638620652370154674480066882806674412952488854577822404834370527905892400798771727138616996494025007016993462961628373022524804948030622462748534569132007110600101329935509948926994594576964775004935140831824619881776722713806229922421458480523243208498913146348444197967040883478338692332520738587191318029343722696766246183095636413261407339003582941999698012081807848137034724257736234940245545659848974417709983742613519180528507999606636112010237865379831408739495238060556794930007401769066900416871086553232275634098284595852294495561733813485015068573027626936156882391115757730882116579209953457692065533781974552171310015005236462355852222933257199131141022680118410293514501128116440831285443658450971175339946432503021482242814551005421346999810262778824659517754676026490508050794457439822078660131443891305892207126992707801028136162284507680007210048367977152693326543665205967706016036743399232990833706897971422330669788694034948444293442393200673283257427199496356818468446187478261142807937414612340303837248742555515215225573745155363717541228517392392055949444192794045216245449660108864679868003651272203299854655024757260707018293565345230668581579857710025144445528356853117587334414148096909205280052532228081174968988082863873041294816464384857554038384840653780460132891215866964576495917980249899280459710996211663233983349197129001676872842767725803862784823073721664854914079239905554780583132554107374206093158418603678101719875031818674415350184801728821329238872384873759681385496005850928774176651261719666343727353805737099902699943053522174881109938330612273900453778908800474011510183701766102456827002655748546817943419146510106810124951610097164799116215025931850669858760046682799227349194499427679033389679146610033295913192644935548817747191565000411226364929785015009425438710054406850523033518504601616564521700256372382392014594800108773729840596385638310160288746121771032666021333381081171784235608635676561975161564122054343103146291199151165008693990568492202752908105434943390635574792973972509163238585539383047444095548766846664765767957389312274617760258071823034854393263073843810488919247226457888266299157090863325070471738036324313356223817338725854963280708625769459304120756850889902516526134316217318428944955893806940330496031292921495713785657105673197333290428895393211919182080193630218461279328280206938202399818407636272503253588399335213377427775936375290249863973169945820965207782675678082925907554358169356899985297009822438901953676754695644705493218044499399484134096296675519917454404354513954512666071547501760909201488714362610792476296134801544208122262848286241986000217361093573012792352528509130540162435296400143365269546788034460214636099847337074023894331846619787187047532704820789130480164732695328660775852657473613219943200049328917318893011345131522102214883292369915059537794846878726115737758348102273901153421352431930956957302688379412318643835974633652708776453057576558137712006504066525663476699002792350098763605390925405020407247004660047240590380998681026918424764865276728385770403891121669825938321066305319191450222592728413511227719104842034010210665915640866297290996022632266463079939350421656863523835986433249150161176894475521098856085507612043125747048476936111647682752081151628780220606387570279774753531125195371110945065132975685831807467947933118412796706206259893554277772082053780424963315271993485029468731722556146579654452324735116672393320734255774230516607043091429659207607584438358438525798279955117460576315376663594173188761119802620825370847662695693277766740739743587127856049857466084226634327049687005976811467644102034993184436466120221615435639561969334275215956546706254382108433350917759603227061487785247924367309619797739148969248220898421254343174358621089742986617160462602497998135514347336680848530588304662111063489264271081141199892909022772827112933512901225374059055290038415005743344764223780135004404074969805423124289120401012892749903093041699541375837064852053657991316736804254150939460069871614202837396367746441773135624998737561429209098474047002130295962298417123129370333294710054036750491172064045019157359047257448292231969901691661003713935371401863584414499336182072563618856075403358874353579680649328718963040845638273588166978978972175379000361003543901578188673571860161443935806328902817207589331249755394326643988575387667710387893927557994360503847364990095712266086486768455775185186544843042229852116656435837821029799230480701791805910117458430083464600417109424166470863856231314693986596319510487523413052459349311449305473012869054416744544446355522665313282323959908984360911702293052595780444598544924216286505692622836236711824663694079000226745089512300621352211297470930657258603148632974897114594814097704356420938211219566599527887290671498015250629551143302783398019842768311312240804760654336784575650053229927566784582990731939314654171072589681075513688614486053226362451168081881203601289960710699468231300196351351474695493462251005648134875178217993066394098263364038472767094827307151448358230558619756395209216483103580238279534762602637455853858013520336410035788745346518999224841613937496200569285221846470744917357065146851500579261367500150932432139907341096207282787847762266215946187522156491955071027078337853610386377358048786635287918500366389221480813563061734706536435217802788321352646687761573705660806284604041282057506654035959887900118072080696965982413009115584947761306458688849142642606574075438249107759046164901937799652853594279986928714226705435456419304777847938065078843662946396663063559278285918754724875986013154592066005594834947684786760096712466346523338940493954351027856921338868390255338148777604501932816612638881391010775384239436288173528491261862800886994437749275792163170981948019207044636729142824662890736544420178136829256984774409781059065290772148163818860727090887044138788641368370408752438552128882037563737890481585900531412007308182735378468893344173030417215014362617353431886846918258299363035197909574540488158726379420982599746036583802384961852933875183164078315213917382278692592190154573535800744466481465747742582643083898913257297411343719900167798032790891480335216812712564434060406422789407103940428683228729533554800668935069803386606097151357961108535032703768517426688967872001452475464691424582652423703210177478591960227794098031867114673611670859542723015618485238483932176215174763373373010222214701389888677651517544484607839468094420729468540105447425041500926415994608527403965747975817663245425689884497373476867292605216946257786520194857871602654395183311341651652324049906553722120218917444677152552537111101826090033088081469524062385987693929443256532253924705566776237601391817627104194381554231794298211961265183572951539764793939977193768788005963275194574138804037350824919334688117361612130879201767620738761223110696590773814765781029923515717479298888545569913759411635067897926580659121417960356246186643295078734295937767850158913993422404445565569127968513581619293800238757821812184383904173303872478312490755479700340240723629680239309035659515779636651999635642384872161223431321530082490509007508072646376379951854300625613515006043045615643520663772711788987642448820849638821561935883948338160554724490895578182459444143147834174407636413498253057977441710120732319387427542040312312938557391505201208968721754315937020213164778205776450278513220405172717977741134962205045575444275811875354515134023576693582432997424865408588888968442582783770374184382119483044936942803157534892106488210027111869804731109812347276910626488458383277583320505810916489681355059441935721686392329510422171829223215839488738451203224267659885043794980532049547316862183249880236045365580698386652731215825168689191678990319504218019447638128733937259531595464902817560530140760607186978459683038910179281081249601172992350993572139764305733472436803148376657265760302296804022184835296780000154833127958685369598200485491656226896787205793684649293357721179634597382054747690511194794833429548432691244432717465054701072586089259529146173050732568266519219534448117240484870422644962658919679294499724041709089322415926467990659025445841974062680354092960216044695092647476565039994456447738354061110277274193238160621238475543286842991117383761502489489093688070550272149255704850309263142962018285376909978510493530776108700809480858868376109159341389646636075846969748660885405995558234522074517538966380912871340834093076166555801485214031335005828797764741360386904619921530813449731149355893381339064788210315654995388645223666892376623106198563336476427845163259287403474521299445666660711418325806603750665242357192973449707101682323357837968115542486024052304702301049180501538617274189876234656077039815890758118039011915406273410822875309221985882455164066744200473334629317966646481131702545422859272432031239494093506171786692992822055411882186359413032463432261431511608650598271803845984706634941810592045495793026883524965095087420087566446217001409801346380173991517310061471415775701187577965203470741096767956248095620956892566249650332906254630455196242441525435481708039026856458089102487799911410798838526316486004840804808261665657741516327171297810409573756287547936790110467106331932317232197191860261683168922840152742197567426156942910563902165168961362953815626427092171225438602467725846260162993583051846893272970261559870059853687189448600222293998058535657867611633415702500528439888437631854348751061324336711509482301445893130461044935830861488297366811045747465552218216196009674263859263683666328787014904612927396179125106291018759834226614716057095636794610878964524553656965685230440202830603219740126978401031589918512577032832645272224956662545815163544459499201914677055623445139776646077619989868020046049572051935301766303118125959287360162482983884752056036905921291366629813880541124994891251836262852199243434731950749239529880933154969198983199186346566413381967340962466484048117366223098136508903889329313943718345955425055508590280548433592244039856545811926013168756007585160963155022105978418124174193361923306709779162109566283760257897295270877598909274166938765032748897337032463384151175606147942911467518630126126660645358429779012984901312447758147641046682648113487749324691647403081309331528455047906993596856822018982308341575297887132240790953807829855611603735781802537147359326234012574483838401447529574140960090913008246034965655879313989521922871309554004974114051673984481561823376543531462541187628707476019792860953050208142447389267379559130783457634787192958069631941990827088998955603311296725220857669052044569624160407630494464738378357516056624803511114759596677506757665112721795458470936255885469474583125554668874157355447853839410209424336536324408443477795952323742652655556606786417297884446801504586214360247599689182714225508997533981565666823964452903013111732742032583472998305792037548831159171169767903766682606056384957642689465668735961366306673129697167307330225004397704035882455744766019594977544690281702981115893236800585423916438397590942554707487876328795683055790356413666846026112879554273665944948810024679678004573967409901212931079868639039612939677432480579761474454857725742748942118773267351959209611801777303670488949316369800420424819535614898766367420565602534361908994115187942954554243570585869918224718301285371019827062038485918317214877866810858923830416044593101113309612595575182784121853299404563760605950209939403325698121212594614955216141455857278094504917068983523454463266122864162540273316183586318406466635245907788676989579388056963128865283048145624776487706929413585191315961850594572761518354497714021934909490515198510658816780345126968437152589528395542252399937501985550451257110329708574614049959566173171546141668744668996071768530949854907949139695175723556353997444300237306581418601735951895797666790556876696163330948629797658944628591129232549276912783854634329814587655230673949959538364694121580321524308475481213450169379371267051959301431757303559973105441256992129869427373645994290908136235458301288870161405421453833114307632842806290645202182847979191804422442164811273844877613216674334618488618019409457019704694172514206151216532714199300154706123726750418822059036833014791459240907437333310611633630866187880792336783727594469185400786930746171439843923411764577694985040233090644206727189755200636909203220872408267896232240693288913771880882194814683504482794625550314262466220036229662619770749878356241194307975902704980753808571792298005367804605783748409726078872952488082578235218648319080363304424592351907040000160725867644774198300647371506183662589606017768935232658877914837102740061474522380073548082361096105337640624248548146944605750303728755055320360678365345258592417307691222272267201778168784622201111662913608847756190806674886037967500019101998702291398972770637118063844200023954421724825863450653200643400993883839507461726116603393807050869831356342557925602591705505102836125050154029834692294356959940637170326627320238270822590128536170905629841389217678090395799000204966982304444256584129104332577549615617788689281763508111347067548099592684096763333988134677417482070517670236375708517553114361546452116239491089669081771981432668164926089876620777135008541619069737174496376895697288586088956032998212065826154087241400279567539285066320362555904270034428571304783345778666976979295397308632837941407601303289142048165312026169069879457434705948543722838473227436358773470376603754579319862544081436485686175831322796149821274689150070880599219745799692769280986364707769646500619366896915120377070741217456264022954942749213844807287326318166937566911682123637470619745615385498450414684544156820223703259565118702018154306270011467785796291173439696616175341884967945503304026397341868223755873720817382590732819688751651769499761033535691400528864608309222118833365489619673711690003043500277772878196656721886400530373250481287443338718136302747623075739237585888941869211112715300565920571508890217926239421376356810352792941602939072251377874944821444545113385047195129669305670267514580880257311305402307470555878615592537461903997315411421719299138150574626987934269278837323077018379623010743858357638985356251367769439660131363650592110217990335788725986746383269538901129548822828385008120192414398163284280721638611538101383914058231444272858771363228535198595350260921726111865861521853557608130043791381751010630325330266314486457828869727587955101162276571599523443192141855069347283788059471427426639801860023764211396696323808766114158078037776779398772214373702102208459910553429875678020624453619378956245030352867731725992942222476269700352616487378194084043426005651851978189894250401381433032506408237215718224299793192981715053931939114825562686384566595936779534190463828528577333611870589159928657664117601271271323384560302272252248475642427141094898600581526431338484495927147152970692204064563806945099811853369096246152114283447161273887985600903548629603240246588637121269972344916213677107907993550069217138237719657936330124027009899416981882834046866225097787023790748060588482460593014240578645255174145408398209296096554564928148294440503294566106522059213591872671662590334710698158777911335921695957233410303653574940907020697607055575428426657151519504057402315878993389862622436119582451725054203793722542803134457124514379869160893841948130832477576555534513676427501419110750283289783941040192361815153066294462217953551373031581383207269192833069783878811421568307114036052679391581606108558056909432448905240590162095047664976808192743405125700997694752106800048782114410933503289679130810516892255447877177720616197397422714022617728361831365649655946313111830160209458698023063545246063145394004632092488857127225892433540266146257390887863944980330157011617821902881311524333338626351539919665998879503526211915643140373884709130656738198710309858201854097302193479045203062075729500772820187092123714143524338772773280032373139574364398022093944507212346307019214695274727837047672919428592459487818089872966684735686122517597390843427032706017013884657584320520302662646121448128265586028975465070973080904597311035388722724841698090736336549058598907211899687975739472628392750831531787006551750775558625100680361719609318742178288651944486406289554136257779578014054183741056561085529994536304681395484304866522188634048946998904411403988276461148095446027566367684778078392789070675493042243652739628796252937028558792102108557485159942914830389155084850153310488252716884835724152626736915843821395789944649635225600963020440243807184207269497364682479780392130073912945345378882350800277018908399093345968978860882987659626143837400243521908138022311199389912998799388398255731705256693972509306133303512995664627566051304481260011729469684407466221652051722378476519513326408520763892805953970522728409506955567397497997379742721000400646740041923943095805585777974916979793209452195264349484401448113396283062440743483286961289419323653052535668477295131769777229417226008211675580646564472302741905168547021086912192762059144175170452414588186316097502961442400655340166198330261757646512981541968326715275334709358030746601441716305603519215153923975895072339148252650463955891062775485406229096679110105530470295028861182277661404905677391670957747586433240466046576599949948031710880765991399432218121279897533470212685777729470673113794839931415836627846238406209225177460616316796995481968409886090674672437823566854074810286256158597670236413284090303616578351666191514094770468753423109558487807142293731604500319263691611591012302452394466290776631871861560096581984046217892390213999221990655403842637291553799275310791957690928444625189592628438128219221537833331334264218734715517778098832176033517806766151421566521377270543321513899686200936721457433787788847037804355259253435613846927083394367952856262572726115604428143346149015912114368907740983679000146099143851360232189800754971698041498156748393821371255722646566569334663855008265137935409124069867472669575907101531283338776554035324844565647629364435515727452802097497768935052787695917800927157315518476546190803769358447101427749583215352976506604703870494751338285740754753031595444029558135798329121905188676042346539134028548241140450703594895626695490626231403539627755829677750635235023953828286490359188371542097770700461160926791979132542026311976815656223288623737984616953650552165769923276276068320309997428681106935341172018876689614229050729482531229035174361828009503563023481346415229765911808531658177748039770365019313258480865368776234429004769833169849088707722784019785725076388158512893250386617710154153825367526738143372407085071959398873219845648805766365126557430224933810005668240216213497290306792221847679757539683206534069253324861726742279009817968994177722987084935621004642103120185472514858376673953271805114143372851782599213591050516249854472785468975235911409459591484503944253324106398525341935662599327706747561678820921975715047092233354286564851060313032828614948128522268610837195692490851747019167639881940634967259384815342826976625284345096204359050634224266730181233445188581340201262439946818581309068857604566359454004132797945412956006382571872546815010737276347304109555928409824101124702028326979346235701628252512120015875597591725945248262742940399139923860307501754292269801901103134555363352645388286192270194861382076277929288248732342152403177744079338536643119823671319436892119348286184385800286357656031817276533342313183875959631935042901421538383341290435805020158494982181426629512574159602857321627604642627470586540709595812418433866441887481023220336313902045693997685655911669933015348535969763262519949319003497733400468048841063654087553820971620842110853451839575230121657636962149377996485016792596237366992499485919898907648905653607314960990399317311720788699328007523491894876769659153988923827261691531192482263595064339992289053476432038866303212105037677935211157017762028228925039916585177818211691483118186465701715982904766398348225388978723944173344166279718382875755641493326321331674802219390204963539854498245034518397894418624538283914045406522551941587685893983275984532330016966540699426337730173529166955336035999172264718305753222835309050093519292468707994862166745867947606918537148529163456415899391045057319080299331645991424153913743884058336604524770733272240750619262590447815218233440891728796994283443564937066198078701770406144714646926216552931754042741035127585196313883462468949512866476861665121794221006329305135891443277006202879169084688582436637672353510306111636451665479552941534126291008655214378352225787462059952228114042995288720421384533309646986948642020807905065647695197043654110697961361581929175061046097719434103700126407554770635605961653988294966449663204046777675937555540549492389165406063195019824621177615944670247036965629835644789084944977758531141795394914961410042557709563438188256264789606900887005673350936774033709633131384140531187746729366646186074972165292698040203245782707260796124991726877177434661765237286423765988285198717051292531901940067795313655252297291308046712829384678082977893110806370887184331698288752437075964463962830817027481561806590508258628654846527407818848168528448117556616736444336157337611167665816147813162264170680932915509766674287889993592432231193320645626673830466089191850373208429491712606047293544733109301612167121311743809715508913258147826366558642983913828794474644806447901809131495352102084690583586367059875500469925412772638259051218502039111126020371468421864161250465645014691944885453278048111268782509196687278992118299945426741084656756695142326903197498539535668563417466927827191225745735743381972455571648212549944209365854487725586107681752215169048342530314841117815400392710682440327516286560990809023394406280337102696342146880526514465238992250945481163283625288985226187451381520559306858796592759218051836893793153680162111953390145210439699640443838082122304372965433451265902548221310481338606214988930132436825680596832472881179413999816177693659859222770395050819112017877317538671660172567796834607622785095889678244542863658341922161462605588492737226607234584271689278690258619115555071047492817208509960560321934178834099780921770676257737036981330865722477782691446938436744535756250068279349250893520901773443843309137459347885773567708378632742383520448401301602914892015396383298403957364442949650557770863744322612796826266423310451073211452680404940953507748563272041830580388998114211228135567590664706961495693941089194065889751397855146244386320875168850476973811451239431799020722279359230899013990248012169247448740540672296029710637757730862873920364536175776507812066104670771160092964053449157335419897816398768922228311124163078765071065413905681274712731409891841795893254890554900042090236200102430103681406127515725869163194257207647337532030715597975333478553288769365827434436235198148293991237180741845443280039909796842894058770630239263889538808518991620545114859025327976447295610555710734012291129609285608641470726485170826728584680970784083272615746303987734366701398791392028728992815859472800628983131131508081558750939439222054634961431875567959282571241643515006599822199799031642328121579387460255482207790770795996818533294143379039809078926280899667533582244916222039543527535037157918344416299061429126760215514696026929643660848830397081275066731249424301135680374032704150015268787653066425783602098519490647716650172460041741999336401442040397137106329852850504714179856826331970456361324633529549645004400900528413925589308277430503435643003636336189489670291410191146393166299144747813916408178802239670030505913433531564652795600461143383517075068660479704815674717992588179943999858356462950567561872134194825554740209771526990354081327324938885743096618441814359469711770735419977802596454401489879339664709926338243186755451453878400042056675320923668280710484440128584194585822953003046535330104882807368716707412136995982356495326338366358514761861479205369815381486918806265697335556187071762786142524252685802443959658735887025583210493022224515595674409414257724059640809103904629704554798076547613229352594198699621926061421282604887918722951097040544261989364480510623311541088792863065007266391879764604216927142509657421692787517977554700311001922006470667585142501375194819245042737588320472975397860691728260297808169113365283278067210034923152043686515833099946216108422853456255923464021763567034288840897287765394550663270094615020168474858240950462088138138880875013517337036775663228894351392824541720035217265092470077969726969186841835324412518952206400656843045825729266155889096739017715650802361596868035469703322071712819519616673553815554047417588668234217911771654682540158128639612003265930248053754162451085812607289864482303261535312925949137683880277816182992820188691518918983682928776385090528906446112137461636274936267259843456971266274899117972750494822714169416895394810991263430292477055672014272454646892410346195796561382282303501441559011217822441198516719548156400963554195402551782289205471108506183779894862939002856964386006610610505935616371473965527697788051731911659432602618172744997490393893111548620099736811905635448961752034432410875213918801390893785442624859913223073363779238104226143255056521056902212641126090182062033426396949025312669851625674354857429801804999493985977708065404817552691133725281790084664360468771795227177429263243592102605591939131698713120200365764793618271992412178919482096173806052701617499456446448443528843822081205495319773252398484464005345172755828710969702654050859632029402735749764107458635884215333727530985393130236231817932968773823612079796083246138148473416730288260301611951687674443682348511139968392332978649142185086578874095387957779090427972873229704935674079895834639030341994059741751081300202817121484757131363700703554726948935640370609794474524489245765128181265748407385996482768290254136162728531964446729829363842933240506795831555708841059533797095359069976558597117207409057856875307148877988617148286502688928769107592968527931991484522996103318165083585046494506485050621103236041019557388405426923715006982143752186393989265321624740996227284284960800354930679529949185660436940344408484768030464229695572952922120496778185291543996821138162293478343331444070198780660075006305182331191880574031258351064865080199819732326462680834966661800167745701977115578325644682028586248227955462539148122620882135284441190599742910293629380378754305030607753081966103614557607440668969750443898078120549581471202733811094988512213236022545499487172413172168696572827657502453328739684196255073032427407202045255753734262614937518522819254672271890581091729588826359398714334696082961047690446652244747724642782545532092761844711110857063757882349380399340229323647265545238535655442727804998896905569637800295071947185361882007360881709945722722839742756933047554122096416600624256177084793242264155000734871865953080661349266335547687012039561042801635151839989167901844784235320112491233661142577448137895437728520218519874412575095041413648724694729094632959919385295553566674979431134567168608909611786503664575132404347633651442969901047095872561581585877282393561226429058235056535817645842443614163184164280433022376931570075086588398754358361389050190168003334975088943462091527711525153153628189395956571982941254526298382192374717242141196359451701932119286204722779342635901260314480374284868900731741921934784650029874683391241836834885409830868728764843423138684324783216429124105944277245172363254184745200044577764550992836946043374753304193594330601730693442617701184326531082225001014708588524783251572387976164484636823686168142611524864205476246035731789959407400430140051498719773778722042787828177158502414446388194690507743772323274599894888511267479394240420725440980362594508038683809891660344081284971506124438031738935545053920902922130446194430226064837703544526019670389364713035647005436012331168312434235171136462245772678736678108931841409578319361686620511867182470674835467348893189354654673483084762023553877811776782729574946670295257101989078019684968366731285778409935961719529207526527922625761166732579808339821233862226272125271444144820332348743813663837260936377511516958186469448717187125066750450259416692816105046848915608209131529094076981626100713706595292458250377115385714153544778842528025374615465789763844486020658936765066941435002849903964601683540553733609630845554788927241220087645297707002497107777647863244864463403031764367629753418061442538365724309426502239027651227829103855062899884722485566464850627381478712945524752529447282693990287305341647222051358622037204362252203274915718710902411580695677151779076400524240402062371872493962949775280545052075267937785425930948590320882613663482789254019536350930324005504507894605852159422484932248855068487581516249844506378788888923996486313606547367098936319041474324018015425153071617307352959181006489020837256027385702478929261463663810364129156156426438185619691049746146162300274281126100443732215928826101781202958711257647277926623208035910189545665521309198971927955384059469441494156779787532271658550045080452705853792911128591943322044283159635513628717355846736993517914475764280587983708460965635253723010692629926187385680066326758718457162886149630145576175454101139980968312702778100434219907305399752572069949367482630298210356358834659679101093282672683923002496677169423021583418592992297735608306835778376674851569455964404945575589699316110598966412263083755605554085659275849882517723774779649385411928778084178576868476840773550778402312527473071549156670064109270131304764282862265408181228998562195969655310614168037190342497259968812225233510359550544315900161980588064552461632561832959291301781363095926112146903459882021188772438675970830780098153521157659745803022796437411703725262809548685122303980659796355932499570125890263875260894926640219605516908713488242655404279398064187323955714587198236222276776461898681944754363776419834635914168896077674655155843959261452300967546738524317643649364848189782814144226064874113571827928348827917852724442628411503151013930097652334554642889383703002782961754858102915124716429749531393979713143167660081661185925021661470867976007564676149225209362456525837449645719422587833057614608776345614885445688520787647395788305189855899666869714391275380208692778831651106026875079132984039998577741455884685700146050649339165839639786780679278345929694802166743215492968914084727343658459016376611658365245585663699271474946930753899484037628536070248200504242144647275374383475881621696105092327268889031108879822685633544811093459310716058859655346827492738898008837196258797851157316957267337131908256119525603438227517091517109696856866929459263844365139404780679974406367007602470707682209616369369924553961992769829208897429167569354536765315706252328738709812321886745454592455182339563206435876246995932754248610247868293988259549895649769220695788868534937756940528286037771633275172778415715252555548969094685872200023825212976415727079409927649687381642645482467270330634448818126698549094606533984896512958160352349429684052774731735973411985864583427974136028822696816821743488664732379778395987770693891371859202541672518552000846867625685814771338524568106871389109179421175347787484966442327571915300884465432621867719562423119744509795901462658242055368610083310868834253519914339126784203617368321490481575771720359219748450392828320015003554671942208222337411703486541383275571238495135636912843660338819350997592161429079446113777816878085504203852579195476205126577684166943485335510432689584784114998407846362183972959325409471413911084329210440251809842915363359973947221984625944162622270717607648771075552986922294142037826698767805898093020942194061286948061368877980666901556643426235756375039964888475924861782430814755952702593379818371581215041529756253724001957681633485635373602010646609518808354102009464740962510107794226312659695277925177174588068062592229848173512999580994760689643029015096652568527545896946642405641146755847024325525357841392713095796001479390402161989779864288240601331773560865535297775278706555227521489578796507496221563969694412943766848769544877364761243696992529711460088955657088543854660712809247925574963988126174066779715767976932977716468438010329381658551251141567689862480139078630505450188756627414759850405698138734765308514178562493964295255651904259119260801114530209467594661957541541411230231718508708477461206759788955722905638567017829343406897002754539320224482032341698613611619812505072384704197433588946564313714680400092724884983469609938536769239000158296705689666924711432464318140551846020286397737320719271886837605881480870989880624833327436926597750527573273526101126103411177879976529100289344824828402965039747527244430864509815725984165122558612889121497901783319844079540639397148414563528741111351374576758884823001496035883207527510322495935163814854120607135095154866748116086558367454310267959344588334057867279329262345628107794325951562545279490859675403284855333961747151856256798385350270079411745997504727952099575754256568613824141562342668664481408784302603587744711339262141987231958237026762007230926264876434399534576577851409896152029151808762020950305534802624875545785153290962490774668183799473731684167065154254656535761372853441584863288619969264682500708636683978787218599081001934819552557411313338415642514194078924820216850447483456684239464601321831298273628058358169420897150493434612774606401138310495696227832653689014802430940516114714289870778255492873618108975121009574261127851508399974917137081855168058752026456195848498148925927338039593283536574178644243148877453338778016253348406929256662559794449882209704457111539675613204770573827797927487094921746945992907866660681747434327733817567318142824169472741584731976414586755716387671208086529971011822775887153506065281465020281342787857426845294077504831903162976427166773607724438605690081714271260910894392588532184675709585698052226330790388377234037761464512051784078926200459108138082488019053720003488430430616446994185327432320905242264512450383355396066932506516965517381886681483076894108355187648418676606171844231282470606673194159891495398762638682655467624016927612777814279747496359542566759841819579793897727674350508359326713550879462049742354236357255023288922766265830572420807829334131046831336625731858425801342811260949838835110049435392798089732360332176042056294027273721683047093127131548377824912133452389213072064974335830642831615077486302222728512265809445775104243851948735879050923870588787363999182564417184870337268360663880408921946428604511911768887409834309793917891950094155328678722895467905628405298049667564366231995037157100306897761035970500309228792853940823907869418662532557099839564438428329911981326501997060648199490850918223342939878121190493349597031438615372646489215546777501440809214475854908109634099034301410110786729001342688957806911976317561141201207265522124534724330175596660532910688374626521327358173249679638195405209446607099692441221694711786099486203890598976568712280818781239381529855747827058990804078776976417810626079805562300404098330991921996627769893451748829166328257450613070546016017255739285025522445489330775088248297651509407656594361963965410215823092312301833335427118996216379666019225203165120883252130575128619643816770895513924825616491678108295497674573697162600572691537044818933396514512277635873050686334299335114899703754526286664370544646074353541707741351352155560480806515104980124278655372612732529264702410022827994871705161421269236081769741101228788341981249798947582739271954488119938023545072204147765260461570289468383399913227042050258320103848150774510479376615890727732102933047785139698925744788657283693892281651410015808459478503837096607391620202865484344538698955473572257690543794403404161007804317575547411535708190758791706955543515300062291514025219981541885004462631498347547106894436634855716178863789125580590938131465514031292305641878229731384637534013107705558257174230783724857327209545395902176161794385810412328271986359275294123909472339172173361643220514816038353185657997919181723139779855891740209954787987568330324439778487276868833078432165633273705068427394842722175370308029901383369766489495106591467484680074115288849385021204700984419184695587057909884582970487578979115813484151441115068893865142711033891005550108901508570848928226545023053442121960731878259846522573789721246765859537494959393483159429016206625735188890877760424076588856393523127285567898938209479922844421972625429292061090318501461890997839884054572458393550071689645194736826732824776563121677812917726707517325011900839672136306427151597535554933141362006881194768968242356783197010976767162318707131039566447996823787003933526066494509960195054229244921445341237204528003070459757663868859131087893339243128619120128523361771880556998807724779603264743938940099040105560951479568758476984429380277869340533675068970224964447137618932951046092902998428474363694638440398766023558753880501939465634567962531392096107398822904334500464953923358345365473696396460138114486669000501732120829219095450566249027117698013713567148613235596991222714755695608964221670736127913490679083559034116100491686005260883897909483070648668401965255448087794593668972883626975374019557939679750885872966541666235075623328630766683282166055604363269989931300335431042325865283660702700847758653753932022742044447571756720901850749003925346551975960843466554892296766496911882703815162447168587895196529239840930441326762433548535242470328868251302132610506797503758460601581453897862684321966707996525795375041284129617903678509305037452909732206218904537496866404864387216542677179557011828099951536586866130250073587154506441490532549849061060094988303808872839243188900979033896984213542405242977596150811301105037000468611816567563026206915965381378985587760588864092290719391162248121789044630512502490753765328767769422050677477007674255122220076284931970240526993164339860281231363732728957235477411514262658509985638462928983610520644125396898578553055516417248167281269607416561643454088860295921372727450128438045192451915679688271353872165816171057223004913845631224260262538920369157554205374130881181389075464648864960918585633135237415663913321681036807710151361831653046456784853988430411766150107299982139878110741990913629524271147054778497649945812496662003027663246062112381124983525461108811586229944745479571165249495474138387971004313899024563037307473374121307648056977384447941360748613152898848337947790818977100692989640261955751839432679343652643973733311931962852973585677785449606636006706134693921238448751494795088935061717494289431936603951847792887955981607796198522517331120107321340504616147908292957218983555939022458798874649524570542319580459926262455156370558482613905645782450411096052313587348156004143078741337706633583609677845681133110477151409454778080944280422668744731154048312953143004041206501429788815787149321562010780590324391184589142224236204691409104693251937127270849699196464871110099982327454075534807638137477423964076995001703031816509995258791109355907923611227162035958343715503116366867019194174626995822378162560166345302549264103575945676041601250224630449348331488444035567859343863102098688749709989537078183657637413462318954497052822017275139906220618679246465695979238710538710396859201612476685074527173025223977714445961239433194581240364368509104458125845759465461029253317881172981631236505364805519778952534333908075557024575155669432400107580123702790331931025173556580699740922979597438884122151288198214610448318246697057985358655716740372503786156060720888817285753950730394405573363910382248640742209710921678704398753734765689385424807735571686179326351060513556244736672409572682576768800142223322839826796907387495688856944183132054929402565296632495958358382442460186009179122939869157476494659876179716032772388642757738505920145911617882435985360803541442299311960819770289751175029451441514901605890649606102979822096546448545016974474165463210310432659902898823260018322361752250175738429586292248975287295124166780534849534211644239412976778988005236824742132983483001112351391342311392516715135913428978030778265159288100102489244217994631286765592120299478245071259973519336254125079351275221369073919904032764557997586244789039333082048650249072327477627767284016004131698432396394350545286167151631173122409119159834400959118497473662414040738382433450095439506721056326182799868862443878976802608393898453238135204882544586730987334751832710293396686191299694818903146279898745680529662971320359499928728760860883301217381844371337809130981382090593527228121087681774580114582567823828560209339145370748246357257143323627836586453633997628998068536270683760699235968850355274396056044376390263319394425013273363758649259950935342513192021679401734642289635494739201855748390435729713490627099278316386123828238659909754704744898600262297808419076816614970453708605213769027310975360036536198790544568547574261212818423799665645396762183823415145456618556875221960321859075828298169559087174202729765577927748697656653943063257599387425012740779140077608673180979490294608872903395547397690802894980169465030295644847330943077538386709792801179348028259435336513667230620050860976808671938084988890073987232494880747489464115320745035377578161314871681136318962358027348469160276766412322619379938067795011132722953047691429848577203029808071748276885945505530066344039504444250372986262135242273610981104430852648921464306945585686558445016985123165345935501545058184526819999543093051063170414025081931641151797508203290150520069443731045943253974508775138410546113920994846935409622007998691111664473217125052878705196930925586322481153944298466631879615537464990047074233990354883506555130213327788708763325609523041695818920692097454140076739052919297164724977996622495086115738112938584430914506943205864114870488801154327843197785817770432599181983705429275521904951615192893345998624652208277818734432596390135673599190480715882144917980652807496855985084229825981981413614180496241475291297261211428242549309753573039619336441382999467456708020607866297943418354095963911517526144601599761542833611058293892644814697048648719691023074978343756919732834616604791952755330601858886479592038883729909141794297497711450152293483876971672101313746017673693848673298525326429120092870254093596944602779524483062947282031710991503860045183459367995330488636314868330028457991888341605932791912970575655644087793380719550593614832118540938048530275090158946931501110568127646666221760079955159532440167575835981525450783286256662491955308270278835708494796475223170331016273417571902733499436907035224050470337284165205871885444938817663077718031531533070749598008538067629816952688526574490590748385448205351149361183621075521290576263628024521179050912013897917881060460887846867325765500045232688764445075297830305584969408074415750565238135153527662285677718602822750616301741053019517360415672071371469768784726738665657678710478145233061737828777594917270383263054291951181123304084795663902830312250193757558636250390210418396234381089357753569131971613363130778418962113974218751137856328822170306918314443486002246916664736168753811127750666561005588074483147294543591554220614631781361797025436599628326599526445347791423164623501091974968536499973339686717790203549945790289621177194332907552154233296288187193204378579891534680859808205708089981707944543753886223907639817790386978898272428491184190065744339905931596215025995610677739652617464655835258607111614822394730044781532262464980960467842258932097631456530177764692350526256950914448696176465207121576242900655775073238731321127850026403644676965883299317421614132042177244351161452357541730421971179401021927840136657867990830841148314649527109026056292725406039952819511824887408061770866560887252293982315841506000445906972214535581664118436331289033673131221352842811216469949952569610479741971074766568259514050059687176454629722906369167142216104167105371332670820725975550450108579438334325880659033199015525146837286296535961711435716904674806998344986792855076218902358997938885105148762283820164095206974742156387714878259632821331153569201249618995601046348130426139969508493290962289970569884292253446991757112467958685918116815025239208970305169605402177233758066414307803041474336585403692161497487369809669669441542025324221269334936099845609139586895300053799908257039060379891225416536053563056951880444844814776574550067689623052669210158716772645955028423460589120474021099664957110849555229977648197037909489134279644476962567624332600884663404676420324554086751821269948160895453931716563379959706465781212401354591014965563052380643680551921914266636605890471952168652476871653470390122606175547345651822289933080823981854378908015367176166381774118863653624428860549359184240404102579062204672357066821023245745580665724434853942329485079281882371667107800194395444312671221047628868079081894770303349954891039971187422081051918489886736733180577716843382444007261513086937117961975160679918461730926847911892217472925593198695764059063434025550901185433034009788384813082531632777370147152353958787221159664224009606642007405044197511313891141776447556122503965566426534339343930946026324645724397729893229672995186897694795275590302345645548199650497873638842406290116945661948213983048832272980792565794232768226874121411742200838843749357896712311837892071150262195638550418479325675766131781617463972616959040604267083139968758057613811598922944496430551198904352432851907168057647349658265195289680755929803847888472573533589801932254675295941842772355051505679529237562957834284729618551576074263679161024460576685134174908568019168490494955157241708185153548709475866086702298283971285814751192656974295701636818647481801770229783658457944302312552932898005547582880733807213710146421284912108653062539806719456948121814378913237098333379124002973069884980964978945817594010668599027551311971419841908531284302855910693477825885376531721299327019369253474099913252538568012971090172137939009193166537334567294930913772853169352879331998225673924116634743959006927822020529962950524469437214476599640125501861614531324835013072092088088159861134641462126261570806068932057724415503194788924105962162106792630864134418672213697550461782726180858670750392791163310428421429214393385976607517632035030169887875725954882548698274714993565234920919528490875091512384088010013355240151158860921152289193005106116402141978323877602352782588036252045420570858684932743522756863478770519185692949678814926424163107906522127524415424093528256068845112689691576243920196381917298935363717284642086512845038732367083284248037716506593016511789314654846442986360113907075754863874678610662721788414110862000381276449896533839399843898556628271429147652268550637402418275187830503101655323514944448682636758469411498412566279082192655407586215899460875099269338704004662149408395738037539296221528265247359871495948525975024603900210226593266076454160505435817417797043780422924146898890519441689858945214498768396665752140900389838233043076111807214427997716080689926424907110334027752022347583205049406517678747360631224173624145208680466785655752448434252344582929227831248390284019680730862753479594314232497374939065834144616316291800893971925229028063047844647060378609180804068055542602619549769392726292291092123341713990522860745945471600015031239073873353949575524365243960968729439057865674391694071689011640238701399400810190113250019131146298552997488721371437089162395120451144790746105280862842092018081298731458591611788974436811686166433194600902799353426094508910606621249080299549011980983077223251155966081483463715568657412531641423247942688108419773937257668007674906519337248636326667915897572148189516848193063474034793940001456791641818528525421040647447386445032361957893331321096463566956900915333894425716094449783536273451434124930440788214233516565771392819655949066675005122608246625740623774019210402586260059075797614348307300772433979423073989383199635558820914011774771485090299451217069926750559408124868392796726187451765053968532521074953062936362230298344840111815133014039982913142556160814212385422983097275442190732385888918531799073515790294752921343538182450258433319242557917125155648040232852767270046038673478349486418153434983991739427368226249553817728192195184075021305049045488514923409708976624316877118086605805438959622343147649076657934347680887165952517177615694776596226636925667562952458031405207746786176607217046059374349125354529237683474723259391458296390705661859160298627746413606141395944890820136319723786376361552442468589148794152634252401436337689602043580135626933196670294051709584902345124451094975078317910578259891349181226773386232866325567468126419452271727743732951751901556864390605541688905362090516702276522546192297354043358584807656431679260571609221125575188723636499192573169128410677456123434996954102421545129932590138373946576541119252944676645249177507046491423683619317186754003576432507231774886960178903989048015857217864458719128520260189036667065557092717129149987772077384604849617894608627452386765270242145575919821164177172943595053045696890576246118637341271297845122373429966813358034866924482010794317302269436985248925870704645270390228532380614082582117124572716025011214099997707318850860842338445618642852240020623348283492121483488594146234400837294468860557970320141202519080323307327322038186841886856047154354696392178161011765777801105846532391509465275695059297785509488043435948177927930731939487073285638780687760826688888605155049005230315388724686136613420232898580984721251263884030168898992086392563595309815340859433963647210433710496255901449604041472835118619109845684527956770156611918741044541704446693917514999575088796111119917070862907384814201770085288238969777212613363046060853521555812670388126794433001890752187514238436583816955583768099645481290378410179186095565852759871454548927397310975000916836089828628325709487594747063207668126229286349841221103940529553179276553954330452004768875478877757248015486333996100377734613205900203644898729454568221495276467649034153141439561326057640069027487969103658882052623803134220969022721253663630682988402289246214949085721432487732383762587093486240864358735125735194793757091565400518604988686760492368586532014578749544693054945949539653291269656698454500346139160926679998919365223050815662149870461396169029491122426378602279010820278996545456405441704416576109601622974652962997541632639406380936031822978863368288848729057739017895568378829433296210611153407597644789077795499038101553557233412812957371944046588089211854176346509386789063346757058115486812976006483875883717045988465258075126976542017688425351072609224043642793681307654647799411116319120686654542207787668397025918369742456285967572294489419581598227256169672783485406708354349862734027323679999621852303690737100272114205433385319440540699243638057480621509841044262312497047019950673431263532358208038488374842992098157002378855283974769080130645814793868982764817656455535543589596133557822539494827013979454137684928094051756468725980603504265016027970406075510722588187079666665294410742431548444298348694019311219688130127159125966780165849174283994591387818970642901684366034179902083828539604624199413168693349068509331335783468524800238965027515683463472134200435195394056545021357285026289370638146716945968445791728428333919188918070342166099147524549943932291414822147726047112373144362208608357021273462880529810809315558401529278813498165492946429352277817618762972575049649015051576971552654894652759857360990913740428886301656737541929665911624010467332774379535598206738631407691793162111007948409159407907740328186285038702624283443453800749949020446938469382674748206748690510636400528817147926159085738604397810734001842649860326263001664592011325261684242872536622979518996082909011682075679424908766588375587454491457149717185278330065841163276123256694384220996110133345217206584760951453977321160646953232687061137539113827140918106352637826426871771378529919255831893132024913846504667444471822898692288822900715165374899441534335254063780509989551697780507095567895299424798871478086427000984489537840866268296454551486330508556581647721020545753328532855520560331721048540904812415076675993663024755608861205091998539193304297882335244621889588059501749477740207036851133758949752944688506262480080074008328678395540200431042768925938210774648861093993902130948343738016604158021867005073603339006120027636332748255354509049607177842627393792117868544051850448305448009630490024621915755525130873676621712854150820583511352154898066630772682676462382909264744375751140316358427143104940370979070754424830675360861031296666340926717669846291829002334664384118623737456939318638258358590965397953245939468587574535884432789485618792579528440527455901245124849984678859429415052033671976711945419241670834756837437243893411340328158837673684035086461671352720685720194848093868091921981635530639622648487124914247585632062051124989973777785005962557205629034111413063460161843780680946305858155089163089795665015144959061537117989365338685069067796728124110100437375102372583361408330313335431958998852512060181498127269492964570940129357864896690734778638695540191550724228121086541455856242441081166060611265284528528564284680017263432046217272664092576067844017276548583488240801631126048343750024114050223298045555759661703962346902928710205101775158226498706650839872208663700768680876319643196985444695988624782822571461848916820541724499465526626139033463163401523596526878932391189966096684125360946530724912024299961537683541710927365235968074384153688303056589563462555464742780692995566505443628067494130372042224246348903553848338889827508376696436310608150597562520903648583713868234690633687448571801100850908950821738148358887696581749460367293985389491002994350385450225416412871608688934552758761166537929312361329996936521027723815422090735663020404996471639304961742832286446253991761634450783970047706809404966308596840642093025943326383269044554974749585249683506167875391117149804823645968411665732040518022027421298724555068893884176655510666302581665689392553924929988966567184416247119328532261953336529823012892458003594448134159462142018172492013456148940366035102038864766992825218212492824149759411895118226907842993327384297501702124974427229304936543165092160449901175528608943875427306290591897616419490243406482829759948299167668200445517075578268349570846860398550397097105379462536748258743596631932600519618365374280408853276375597844261346537484121993555189214950904888232925190768786083316605670934890829754995841273952823284567551544138654118404938562847994811210559847972857162720614541644639909526969313493689311678000495742642265700162487937962848633915390191986926934919151743406131799579880899657197837207178973580592796084924501364420789096529908915606137326650991321283880373909779713775616376331155762004624892373247834761267241228973850625901065409905542526934593530595259724112021145195731970817062038528972751357033380332558971527700216302743899756579783427324720012088514409372319953284528523740683417314509591180489853148025531610059005890844939763762718757847070840683919673181987940510447140130350301059977381246751761864809207628670595818836581667529232139142091886581556739963684867902992625792125356301659364104323920650607884003898382418145139070581078584306916854189900589145235827971890183754059109122763560660475641948504305619163913752626238465647231651039844462839403351290821700258188183721031117831422040827376944413655735998655092378526004507836155331017953741680867377818531697789766080955936285710885911326813950250266747928811439667668732563655835268647566099129480299477807557490973107921529281251871318106780638277272683433191794450005946178270107652060966415116912403456045472499269227549078721289328997753865373563632830472260348117177140494773554060099565209940037807050361374477239050603302032454782126773305521528324168206110351313972327206135821052863366206970021207969472794004637249954620695594634818336654196196673840730308158967116302324108793561990593384955051049160635536622820251480851158946838551412734864127646388508607987785664637996951595414524950521285895291595459716506014585317203673328613489917649326047170185832867765909214598018200960760123784216691882806679120888813501001301301870991074056773518237101698073354360602617051262244290175209327584817582817641098818273224679037431631629365132402440959302735636910280300900383793564341434003324025361621011245274510191419110578124132286444357501365977871968693658837549836369127383838990824504415083878403339595967678578120618229898832613560310040444254458762069627448712174910529940905018161873067370604836649354992129042040177037105368638704205503993456386547174988769482583338772442316798232309703002973922768654935638594889303489183340662664822559373483134716825870125137517669814580258547417466332697460599853001517066853986803739862866497936775225209264601378404095643880323996778616744266190947524868661028221675934704380845973471934112701813653969184698322169088728068982123867665160257085932939157031505703466568486773251139574771082081252724349521348972558915181439103287632125131584787321884332059959816495131845084762583804944505418033410566859017687850456721240979740279429959040066389790259120367948491775699852334293475787935743234972484087892159691423870365319626453987618426411068028655651841117540701948446847996923934913409938039215143432236147392462830694665465197837345435755085200868247431025970093998114483262378161348512750166940804281171596063633416145095318758806027185549483121323607080854434828387415001030850161851642530865313769501383769206823068016211590687882997827831915989479408224793745487029261552184040751053607989759115463516752344436354677831880292328270142425373143697090635207554038878164052518370137506354817635618074095316977942148555688943894328172583061784615888166241963849472840955543469449752997301229108323221818749835539739142909230607954384333164452634607735186850635664900208402267048981060983053995680030746314148658344690932445712105926067111551393805442323178495137900915638460606787504065069763508667983009019022262321160146843108795296536293902676948100181947489553000037854917743197615653822315690276812146041536681054982885815429578118356785540793557973141138607203944211200641476181522821763296949230436805713160921077766621554979020001523739175812447814847515749236637183749890630049061397485784776927273086452633476144990858046520024432175715521311128578093321967957759362183858162952855865365655865633878930621053133753234135775505440037480863764935077499573766902525853017341469485458210405653920830088892596656775978905372058622784898328825572419947693773093606265036279568962179633197033166888164400103861171307806507297742606833348196957906784928208981523608758581977142560676682116407162327331500798758105457850900616600239731703969799732397756376999939733995981538094887450361904701250087706797418983343590684045991818338945764950610905718379325072273551290121194610810603707971864948059373386059548280217476589595456529417763912252778402898944233078078682655261643183245446363658687176710487429111496979730526625256051867525177214872504070874823386125467379418431545820886205607307895009290994389978728707619884397138285660529874586093555829534701152573710958385444281670918003725851391828585986134167363554214021540207463021156572975055474218770854358294056281356243144473976572459912732639474721223346939973386666894744409436630931731698075101946050601247555430009051874827474791500475612941535973735624624329753097963109147867494451858285780211293998690098402000777080746846925652136835769681219039217527196610476884558017962515902376142320269132481416377293595100122243824308555793943116818857077838777391491436222909656847302288393980972675182693037115867987609977178372936148508932347829535644324035078449616003089042090915285190426359369108623509335554558669814554060477492110341868849821160417629331046171928776441862455055184672014179670390773236249723245856891457872187380502464130873421745150934183202636441457793688793881217772145517457025238514822267882609584878530634603569837025740182031215135422485671400094669857053262931295621517538363863496060394047557765810938436550295890813657303731029851557833357213247607701102363857512621749711782152080935322273946547566886221434903659076520024274589268552603638699975735764176900075078596878382698409958025027479340069349104739358239061149839018273368550929921371773930193078985996890663730682134848475358487466401455552857993923339333850379805237684839919299318773013592665484942965026350490805723072336592772147771379432536381417161147261612051606677705630717304932405815151828737601768562662262984838755457218287725763609743245166251467189387049292043767363407277726698609307679956087226900649174441090317984703757458766606553922704999045191242219937685880979982135887948078934579232032377847438169361343030840680361637357741018244560107041399346844991303049992628734366934832443841777728765754783687262613738492755715052540556251677179484318234907777145258503501266116361358556153952486728202657920186502175185563107474150120601434674940746428140044355460173246956638742251100415974510553465091957293602625385450362905285510466130210707802587734674631490040404792331877542921807977451638755355672184243515881779363228509042599836250014299681908617469053489962563300148181673722294442679001434964361673036001640626210601916076579046118828879172058471470826416091376523275983437643877144050824443095067578992408348728362992431195556327875115194342457401285570009943813662363413759227138215432652174102094100378360844634895861253782650910838454143855543723258597475335172238865621989242783990956029246595261302466396304583594509831250218508614846510656490598426210321047844808352412145453202964944332827405706287055265795011438335300535875030116711295007811316738369429430614782611090493158918872648640661660916359332799445027838904946368055705897331168095678999279759265499027698232021193424375910940189435856448770159882119067347711166987334749163268002387843030557572120228416375061344213884255984182208574276409727349093890508042689840766624708550224315175628646949042594170603723161878845085601838438429940992084809927699888314805387746678047389735614240792832626641294617457849131313100306831894885607881857505988405845015907576970880045679375582330578834713331737791934169361025725519198974745722682450211800313837189573121654126989447727978935763758623147313845827966670157623573439213446333130461936393075378720222277356671070806777363589459662306858650419660672972343249886051740756475260224396828221288253634506737988122092415748374395594036390614918607451262302516354777574324519634616703141815644429849812388722097141937486196600533977643932138901064271089693521223623155927795767952340466853524082404115929958208126905537803350320771876809659949150744987326365361976514573381495807150973213034719349287971428353363560258839023863235321401788614426873116639509292357810893268536586689440629802411766121359098551916552064971333000302220951842931611742556644697456823186070743513876166732095162900027329417971095634814224035306039838970270076654071942057350402421949337619919103355093282579874686203697347012128947259541972236448952814495955607003408182941320350234819804078690124514473617847252611156953011745498320447544172706354370141584017191890714293142641519952072006317096689013811290108382621034011168571346396640412047153780144049313173851953430043060302325473525299414278972250375217595311665833142071246195217933250539285457618516812946749017585303899343795896242602647131089459053343075826824565649896696651511141168715676612832375878474392168642590273151140628354774177934038989323457072801957397302720968920199503167435107953133397536229649416972748590987072741926551745523799505259642342792721412322458701122943134280766653520109457977655141884464044123104718644485006449192749547312054962035181891180431016863873270026640907418777398825780914112330359621593819124561813649168961793500602958448566887885091957098825795885435027064092036233443124545393163313798377712067220605256544445673845005747041821168417359987171772897407022008340134714220677743575354272031533184100468022607583002969501715867293154580916866926938332026294409062998598639158437345146927237963529140173695374108203320270316468479051332822902187077583401653786183569135057082354367717542724267358244417939941741108663572714300610497633260668526161310264413593836677052825360647438806674433099779616594624486828676289420733214265058687788594212388108201330968241223281997667820210000048399412655648869379168966066564458649258226178104162891696351129276101876939568577893612651731249614294974185839274003561272633966268405268244145348801065073164914350940322953043178097112537736905250019475939866398997733079677935187620514320072496811150880886673294211282120350820709389662017743629833362394127645219074761181754741575098321676759874977872994483381621892209317671711776351161328817318093489703593118799109798382791604162488240598395878029792406113062764707269427515530896298266554118944676640173588739442360382929731259644395338207566726744778048044552635553394752093781935472172100074271404130785701314373261677569005594528506657400017907649754335625997315031737556772430375590975095424843730074149793343034324433891690020974444041498549920191595463003661646703005362172252319862164386621713853922935187441280994846862554206211116662956893652844256216179315908660954489865897956763581934394966585306522829969762310340842147429927703454084584108775707784675540420003760727573360535340599259120460040184442328294839751755812247788979721134242081943283276044715329811376204434709804396163519302245256556815276762374010033810178347052808636022378960026091142334641426448605846278081031751704950972622230242576792580213762230774451689229587367511041000944799555445578259056904791365972757228682362213933470845611540530609973380749744839703340312168334721730515122891569419095489361310424375619628570100876593295513175416891938975500281921731782861917971424566458529088951287142420892707467960817129747760860993530233941059291240113456971606222865798897991683583794020412875575708709860467797748853247416575133117591608392412528827568989230047172431723373137051057331508974769310380736581749707681627039722173660640267223854605832079899664003547262052635800476198210011550585436649732295426764678681025029874151949765938770403435782597503686497572447606181678211026443115639925938898244779462573697937207643889562439924141780128093684574070043062830526032007929461299642269701784993609393825622992026875832836715966951385348638252702928605976341507450048895862790113519052556794440127754871469290886964496058050908572742391345133733071053335395145243035464127342390988964555297310114827597500000949076055916072676390652208414253940842810444984204938842877848056273723986985896550573101610291760859979830937644480884942640843826230525022815429522294778564063300479343824700660563307362907505048551755543794888464925391029799678418695478316908189006842208372978778938985631976924009793908610054637777652910518391898900683223923266116981191299114353487838572114972554125758376515639231004601318588023855380402517119784062045070539741891813579789552961165159354659477028608887087389405149028350598014843845563270624638970539182930782357756038834705325622551688478190536787581838358031331985063987965526068400900029916755801785050603794798417199187874977814820717948394855075756822580238826335148934398978318732446204289239401014521626175767052774407705854671694727928499374416436733169429963241507881614874551040281594202618462232537549133128082005199596346418767159558682512717026406267275694891755961972868298435676528912566132558633231102308216640642029741836332301950010684630596155598156648837700269636971886391648116453273691895727489352745192570842634834499621903454798296888859255569041494590520330181732353748800095179687353384516812281010809619317775166759962289240126769691654051194354181150921948582344197723353940605360067458830553640980812128528253337782145599322871866363027330644835236272580635709163865145869047829320016861202015221585622919454489551715161326156310755647702484835868352319005768674046638604765077482982313375578003702678526107320163937804448200492164444764720539209684800929570605402371536477367118037725072901948433514954702971377066990375367707074108590349207390868163876726274936330518675920955834477050306456932580097213747610706325923598106323649798965968888213246355513795726272573090582612383062912064935535708280949451044825405721856297108967592047070485522678844399467007254799540953637799836157418219511161584032612060250500623689330803450381537389288843304811858016673448663881963658703549948436666200776316994670589511950227062733010008708550800156956231596559350756297443529600586464797788622492761109184212850566204404712123252765125792252421930724785531704614814477221721513875635711937472241463841176950043751427813510047809159135386787452152284695552966973630257717626619958163895622433525320944428518682137118482565002209641047909167435934762862669740390767909003753502197197989093777455320146717156399901685245155078764756244597879453299033537185197461077823602295991644272716566245593136583099492213807614248033666376228945875575272977748169771764513920550993359026122611720015410212309722371059346517257190323913755657394425415070197726670088359625676836150715524463459568788817289689869689014990241211143926350405191191396615572896663299797246217415598126065381761301021650743514127856320865766689740030712170087565186679148526278948292439369247860936827213064099740342036916122633588700313669054949687778453597810176170551368410704030470106262424130499471678693544910021215456846354626698118904960336158606249737682172644277158730723074141278013630592608881770868637860451154563861566240103361974149588733845096556165176904880373323785375673181947964197438264559180109867186974719330159807767263573131919594883887957841094181509079983390937919246778371539958144595654028685095806458670987484567512001742456902754152859155750096687783307112345015344064105059082318737503923795374722996928759411841234094704251374431339545309658962786108798992498330506195729850298140328619403033041509101841088571339136193908302458338075637753998192973413469898009449183184596791995406599662173787098164091242504449355324836472829589376771481870009434237373528551182363516958801236742469235957772337869502876750797914450659635941484957516534991146208798357090142793260660832096061786604483001413435683384765113171036582131166864615739752910247911430901872152642797141731988622014423701119786595782296131665698474658412929602005969114688656213916772626474604391311642399068622247987596668161241949130849535205839158387414696132425887787398203642692814751746851186789443487404314548102952797439669028869567150042748976708590430874063275335342580664164285478120269007361440002021937105227419121468514476970460421237444883159220853902534217631092478615562535011339857175980354633295128545719006186478846026937898172982714075515189293638621761455587648172011479434088536883776859150614000355594578837751107644340677729884957020485964645598993817790182535471446512561372842598601954286685325309977568484065423332117793633421272394525078485479178758880778016121753921888299826134433254213292669019018765593241773955419820559389808101085071757125552878665844952708765101540159884633172714458597503948423395642925573399651082587188528094269115623607771170685755571423417433221074683767499558059266388971647489840149295189253333478042459126949813533642364483507037683946658676144755103510679054276891240514744480067905898017979949730410057565045011303216695115514837282657904529049243635355804547856763540380082403902678578805770391479990492639354033085114597723004784181300475599890839378969711028970669714527404209959414317692828512801055025201444960802338817540542102023890782401325007813782904741842053756825757920112344076406341706833279032766422367121237684552290501649735109663542450356140027293314248552361446557717095879558790516668451734837694881582579386958740905104260712190839442430766955576353517298503397890654999637196176314627811396640266231704623550396725019188569364310178901308057601297421152811629023496979131987828243256628652007157606068790673211858545027528417879073530006241134242143930929130241447696250073023019004747701658574257351253637869936288530992457307291934539190010026585893959907360858330320524071782119921787387343058015255514984324053220727142139474907285843193738025597821684386368112843482752365084113791273114790577159719034827020508406526978896454716896013621178046038211814479323930618118965844101339726021627872670961152599426301059812283619559608576541872150853432585175834530486008927810689039621505068442791350370260600803166160239558044011539434413983371400032143438437349568863680546891367488708874861876055757276088848751490829511474179061087907057613337887559775232397288973375442989390246891049023686994450225616945231622785010330138071822019131402327691918455943371709184919317321043531358224773002709935199619534341350498018214354307992200424518364899615946723775078217986985058121430188782171877389733386315387255349267656386092503230077281232574439768644889326553288913766096063255234454902614583618136633872250664623868727238321506826812496416615286904263390623490775406818219201317991758116470791148892662335303941377863401079309728099771733911241771882443153663678413137821478941072149621213767646696738178282278975606076507261591500586475117310131712125261385035312651609461814147979627970136046070270043252479733387811925614167789916164200746549288993839923230714666691937715567702163179673476754581484096815133202364180806656889033269723504881704480929263252090980740866320394695981206551503897959462532678087866869131647693082009794802787506820562372263889498747377196283524554009156354784616277520831883661639659018480591848015149583697704512135252572756458710684970907299722016783127314982749243113503434505786836281542610424240639668833876080779593620439021702487065534719840886442064275882806815356094252258892770251942970452035848626720293836949554034480423428573742045899440673144583398510715095769909598482456331778431189420779177295895009588898308811573550012006582556127375582020118228889124934584379487580710672209217121005054539903103669124677592996648369919945114854006490717440244948895768634602807861660376100903724858919375299133426201580656421409247710139590851503436339858247212690203555186339827014701162295514948341527001298987093083134726112285259269518245189589498290825794391812821196301769004369798312777440146709290305764081781331700604104495418866161269238293503211564292314080689682153993665527300206013393567486895133386113729136639739103876766781043815799508219285842947125651356903068492445579576735278245948498661327212454029188840592055093041714401338834610130827119698090533674155831142011087655899042815608237022833373092514968479010188195436786329602507161376738358092660553511195716414169709290995308146082581389656359321246052235013515277713961107264339786630633705643021247239729121122151800293543343233436309838581583176117455559301312731883749904153043495278375472730452023479579766034766775612916073943482215866147990770280808657927254728351966003208349204482503587901821187789289471634654215742930568708470988646365239090953265807785316039746179631124638835163776058657180013276026539784153534137499755206879232435238018558883219299690620810914642070934224480785513102904375481536586266777985812677163790217181257753794341831733634887864516813753437628085742220236526818112365771955396740396726012026369460137841083453190207427221794245165770369394541648297730864101592526200834414895779014567022627331140963070537807461867367047973207558778908143235203035785265462895001870067941320528571877960408599138882051315102867511661393579834238540491238358492705883815270580007008047328534514142784160276422147841412207061205605168154620015191141559206254240379581332498944962145870440139380752475348268828846819028416142229273060870718628330445113515032044891649200340368523822881024681857893332078082761929784996654948958816717845704706220866898480246181094287788040813755075229343687481879674046751037789404059471154046233167726761307897580260381081912282107297032752363920530139818822044529248905053098496441955198171801599065581211811725200937802005010171738668797321525050272204790770284958735195911919029474643933017788496154968136884675897014556990078686169876522596722774087311991859433122256937886205469599291703824857072608345370675015607351025209266247425823813438132705191957025126209295722382702151862373933179459468965420480470667762238643945423919651001326957075050871823302210284539245461172334772568471997744363159262494150690555069720189958369562170868024598780577268156503373781221436581414044878199034500099194912877981149425175394869783114253376749387020888672307629283403561355998595380731403179871333720214218091952402750432456463939258080601699759768571776511706500535204062240002937399784551063453222202699933254055673998008679975821258101618081575316353704400271402080828308323873553427973486481224668492613945541720870088972830133790213425168118351724391748766934297430834661719519346640534799104669581710147797326198548945061189213099113602556541189939801547533938838917842337105344023330602041143554289048491263716129153815408589422599959139669067394837978226501198827441339462383229797353138031702006194176299046287828266327631931405334554632385222441413833224463438030993858650054420440357189970147519754579094380116454679817605413194050860043323685840849050677738326836898535452302303524108252242410983660920801454873793601764074237609303454121997472386679364854522085261882255526504235652342370154933118476287629298665760542079187108637794871561433843005554151712749205170693518228972618000373673169223893948652042721625961506156392844717724012571171449588564824185028828345861560794867083769316536910863109267958182396892148476577857534386831486460445442799150963573463531493352635860703678168266655078617483203027089364532768985943504357963061463914063474420168088026212543651941643777026860581630382789564496292603906870902904627637734146996923403801758480116074860611191626404451909746852938704758398938560928173102991088945817727808709095092021435027262401522337861330934707415350278164896306119378147865812173168979686775106576002270307897318943747469594500362453939513114774242004790903793927176984881991703602627629894006995057807575423520189899834449164808065448712720749603636618481674914085227884425141604100049344567869672084437041012982430781549734200938590626821004442101572640495616796759938077079462210505242415655121526663542371830476707352787974894042033832056800640333282160342585321200508512999388591103718230719399167331354536465987426508001574093939059769677410106976761095116482040705204151041892463853254360573113407837494659699682526465480733233734017991178811879741794521016752915516012379982365119333221113694945478953457849025236254196048021408613557013324385082797862160076560440296188675868823067294593645993883152055756412250884362297456900284439928969854148183382531456158053321803746483195697835959437240490953027580421932365945866774430424094663993828456045717685383110994213505500641850964323291131274664263903297527723689742463704455548988510620057403499561406348284689280503745634960621494841400550514871927699976211145423624357099094576596873573159808525524717211377571293390467250638355112269034355388678695126603922445904605368231640686974614764149751554419609093171640693584447364000043874747269676476080582421864103452855994066593668930711561411426384588745620286117175999798695192372707443853618454893795605970138038044126112036700397291365856739521485355139266103499411934381143875759295979939991382542335745323156017074014276944922577717819979503827249681705649944020519193629919379131318433405115397962266258440638821555711050664900041568225201726468220746607783618251467025039413155720586124561969914164589850616724809959044493150942485609886622957363058910747739826783786933893423629136596463757400221124253259294195522685890688978574258970783273447094526454369795921160591031437261618562303574073111017714458548251668034471825466594113289701995688392730164191837912408749924385435871666806860997131195967041886675352730381735882065458018874155692970722468635816376079597161503740174128349027767488070210987671183759854296976451418853420179425655795857740437343172128763588654573417663996693138334827889830827086034474876148847261418495437035639684581632863561153167373125497488776664255020068274873535930613021857314555737286681708182796379029496384438975275563671379574915873064182626200884155666105189967996401695586091603073727421680448649381847406946082392698281610666787876057928298496974786309570908357864429340994011544590982140998647343948979439059480505175464158216427019760144053906476959276752828413380870087623452513210699169270542128075615717454613589447061345456781695845570372894424434090940489322768881358058251346231386573935625046472450722550693752627248786655772026455829011645438125359547641967208391834421861188703126856362578114744416584686895832746014093930133580903620962935608122002346659587128201286857627538498330027533191175910968047752966082534344962574778719682701570041981015505796683588594751624666280303882933879704311063914111069281448460707484074520302547987969959883714232868430837407999080827895270924439064779815967068510318087133580970710027328610416018032781151290118039798364446104523137837235343804289646313570426989898009050899106214802694621283153274410814925863389732593727628615263859803894115199065024272752086062097450608823626387099081569661110127884077857939456040922567532701799904455134890085313007311964344408894446751772488000303433577702163652862559838556809203565470911332364793768712947232186774600433354218497889511235562461642399366412270248573386961530800197613086137013092654195658888846658395540075869015265569253938806278636064191048935232926328506077007149257983347251152442966031873722238909022887061787430348241562503323882159351905041498955300101017970885280516430318404372040196154768913589929373435531946432688988332887005594378815208438715566148815328900337906108186538500514992137025721594677360944779155085995092065614458747515191789266417533133726372963297821159880631875148505351773482844208430419278143735999858291206120505306141211029716880109710409397629075838868698997565612695870757034272549255678195258096040061283308564742957455043016313718420293817757310848338766700506556364020322780197102429779942050321138608228624142659150682191571486483820869698794061264486850534905601612178493787834477639079153146881732091245366389282019706899004893380720700044653765854017374563198882183600350214404888357762390835695768165389360860358618072551018941111098072572076270112705278029604854126291301281033015723777432732648026252099545758297384881102763767122873050798926524396351317651594491889307823413958691606187684198868702593179996590789801533898621087696240412620801728988685175560527000352196594901420735662129452081529861062817627165817885966708906240019376216628665827742497008317389271737927937595695544950477564339780575038643082956135728901821044000133504868037751636980876743215730996119203948200941884905807048530083796292675182114633221052525082385438028199085268824811048588067925646027082526674868462098910314659369524750883578912647889125516711862092274484960474449597439365467957006801691899308837554272643625563603014335791874784042953719501061706204714181785410298670249307991819265344664719222223596860815693291308076958472191381274647669765393283287453592089835277016291070032919949402979826782723422983605483287715239690926346321968268279959865604278237253957970635017668603210192899570245235420002024164491801822925550447872063255810886823037582684952870247855733016918367991479567852624611292889980036223823369368224536615945004322784408785298682266709802997767883229494459142047592430450533984661753306812062902524238041410540726442656986904892873137912840746610396779097105544655236416731627544717516440767381725319815401725297413850462580947521709979791273801209786237790896119842247024817434837677845179006751611210446393708364726902096813587042539278744598730052901556326747364584002051181802935211087268703621098545066299870216013835539841987256773277390367430119823237126809952281370633960890093494703333030481121407000462803245120453350604570324142427091157972237786272362054911593088836594622144804444020865627424489211842601623109433954760140852423013228228898950954325836231758328040085793550857482452582071858361978133368856630433382119490248997640660809841826220136376772686981984966619389023677376243949278655205955624031825208244687319564631749437671638271014080296184923321927810241164170952452062248083741297159696058485595360637057455381989356689517475687494164355279682599679296908488583388311633743965614400230762448084774101859253320317160102390433387449245453415041609205655230662409579191163688749903250896343991970538720741407903071301381100601106530152515360398653446408628941102643483023147991194914563452738848827965166342453446061662944141834508951418765912502274838338870627711379563101046441650439544157327015860586994174196145037117306176968493820781139909771224256642323507408814848447344248806812757185863401634669179484692641148409776076311899883684583539235661048449652163480575716562814157146067324509502823909627602905271741451479925748584084669192693192237720810609165972625567871556186277481090425438110553641313609737803203738728736262246722705705910999904511677851225292543278137368372786203893143956453760341503295709898409639160623053055229443184496642723045051642235643195597451286037970735387726368395536200898836976285277075312981830018491527450052571455584878372480543262678560636129322590681236951688738162235642225215106260409566316762608680141011515888912855218290979286572752382770190193811724199650760818987036035012405210993464391188743570325787705431677831806472377700546047643974745607435657256865958969757325038297109591748277857018881463358752526533489778766832434989756860087718426727815502177637354275854261640528558416175632496918233240659479852073775733175690110945305888044670186384165990860774288726677319539560263786619216040500685181317603091479786474480743294062782664249292528412674949755831458294588243731661621826076622181953767089693111973342506085855357692901616586701784001916596791933623990900982241734829228626412043266786375155059437010128930206061525360609820852417386334564090823638625563027234889116609990988463800106726932904569913239786999365038755914851498046720109767498878425698629048798506674228702511267681674711061602333039467343294676679758576108964325232347745425126051868803241084304115416430654618442151201304421072316216058401211608679471624708710658235456080835712067175447688413848313078088651783633992703655801614416508009849261435695020421150501971904118938885018950284027994500274339453776810497247489716072324292527121742145802251799719509021040943648638786645742565200880042598344170576858489602826139911636949754737685777187305081323328278327865643359679685581914100450113787560199294351138516737812789400772190957389067311581914972942062810230366676689935586665357716845413870941870985891448377422719818094996433561494342891696080799824788921298328333000233801958434142444408950318864105449343130150641795554496430300695292376609644081014056575374630968923103891898259648452437770063099472628404237775570397714515357705662667841648496549297868782197876084718535226002376560384654530149960819671965695579777431965055385634882184467940353352314990672626368275566042897461362644280458561797885799461665560463261958955944570643861936042397500325005056259395955747494732758478457232915447414335653134121555345193443558812211550646785200854353609755998421215182294308335766600561353202750108375456728415946574080003915720310258833279764974457612252613259771573916200318975674376642415411565967978657815329823192468324743521924268558805884815093743239808284480238498372707650152583806666307767677677907397609096883372762315254204299043951848191038102618378992932065151993607042777740511193427701485790814659383223146116305313694342137846514849270506165121641787761289620463048988237863705670314746614542192080068163135833518330364790820991447979318628781310421768112244124867038574129580797957864664763210584484786288827237537568551682229684768946634843884398870356389200855607577152568751638981207293721139748597853661256694183777723559628343310096649402670677694838109814348972013833957338464029385698132968599507377854005020665347137587940616844441649850986943498643476294206771057896873491453352324967168544042662787501410788476625563583001534446853043269793133991999142846633639345114145882744035703449349138274127463977102552461938192389466187875881511242782922807128223749474921553398752660252737100603934314358055005880532759757747033203483383680477395308182321838832965355174661176488407001453008340737320303805037886875970797940739959363280654558869381752160949535515039181767795427090679478297315572744354039777344295947227153860218151712265753763773016592394130047247224007433043764876669001877888733014877836390434880335003139414712992796473564563597644373630298277898563061589561462479485876132983482722392827812580503720696784750272522486623396778658345596230057600776774242997607883646716515723632189744070456426428628755230434949344866603671125908563071465028960896930943013452762970574893143354131693679174244701085993335278160977261729438994443876988654693858303779423904840047401302212298227758754266450877929049017132301070791410752041436753997148542164538842292771267330749056380069794339823206427306619199032261597605771863802453929779190695489391016608947184780555379877075088948534617836632798165939708236886834326199526132006710484094617002527403698695719544589897989722731950690081857595073123427670452295366751797031710605557450978839464178408558873125769525154950736246324447355480535095325323935950552615481966526523657093759267540302737540640164411473627958507612297987421450651157500464137949553705169041028004865821793381141698602930022550542850377892264366092035581188003763898665486708752967547010781405032626878828716679827223931644645941488235991519198164331313155575147921240645444032239253087562782735654368769515079027089921959788684737005098859755026682368679069905284637586043138082786356882121692985952106692375398235734599069182269949175334872307032520098026769967536721870213270888287659727794661116133865880363567766582890562542317361860379161709513829972762389472009572026102479680264552768337190803318028533543009227317455985200397263916065904248185072356499374522148827442551507743924634481175988727904009685640067385834176295747227705194097669050404845829151918873701601780184394457601141230315023778547069492140266405317475641178231197524302790268706874556264107593552005775015528034379572186892452117566175944081003504139867605627270286442124117491249308766497336554600474589103169773714586329962803066173617478361683729843301703503721943188789296378225949868006659363960122058631198278906860346841680123196416831515995740505326158785012810840946722947407486103866780926501623786688069917678806771683171346272784183633340854971733996315777540375677479553391590372307351136709993158216846508429995167011217118566799046432906756987485027336859227369575948898686849855039457006508971664415351962410266605492777631663069912658146748425587198168686775448216315512415810108473564798355425590775292665648428725846221226273357213156133977519416428687015615217816171791800739193180299541670221816731439909741785464932259782227481920963856667325215149813073450464567767061661159285314927873674607689715377740960568998222402649133903528993313109379957255300737314910996364634800691567287525129582732507183853549625136345868002786023884228504999121836481756473946695129680286929324555642873302045927301105447587551510974093086119936289141810227526968603794116853331085207562068802849551506425499252226586667251899872035885629432991753623213655489399134719570670655862273568281480950882589355073454008205406246437329430115187199223563698208771353862999231759523667872165145211233561396446449676310890859574779168097536587409155559285332653140559128738155158970499194895300033157379468665680628655381698586264529315515227031425083523369181187571111469852728842518982979573843814602988264210301158655856936578479367177495283100491247156312250738985792981941230629853089478525233439233035519803141558143337668434385501519417989752730479364017725652194884918552917037973577721550279831521333625239979109702680392261607543373137672303523511795907805047077962302003023556575108925369014467323342295399956631272952877635954457021766127369398341174455481482916827406771223494286150899181944320688265254835618525158918468013766973094029654469741451769395829623691771248427676086113907347727194730577318662073673811975639650152067655225403162569758887569419087488418301531614508557884218280931062134202798860098949636306363270764522741344807784100154161494065492098677177525243207977504217075583917149778279468553411612873599063770647522175925472672824442715392312432388622595774567721022255907381665750523123749426617426669841903563024429734211895623245709312612254414718815195408797603527142292474568747195246102403456956908502216776703269644972198563586134702132721841398220671742224563516845345165500506018369283902607797321361502269145679623658802766391586638077144547760530442267444640220310572132900096789651519433509624277664524991173773983009969139034298563324242464132255653010211185007310925385162090092663961940289458645267592852450347775236577983373577595909390965060389044571097139563497134570778433689792582004734616818732132425565179892479002725010155196299425338294096381819886947830428685535304486573942417134637618726938154319320429678391907456605295832476543845098978008155467792207117144427742094756737924337618298256916244565756894939429039482281670563248547468062309424049259064468916680816922620510528639080564295079319526613091089152565791878977206131942112195145082665104034320286873533037408341487580781070343449762910045612435251803013914500962674229632869748404661553943019935981868589647334001114039570946078174433334764040804884280442778728045010797639573963775883375838541340305429870866578888591466670654404331591382407702174531823762510087592077696716309774075461592466571173626390124244121500536329965114665583080263426242690194520645806867836901706066715618722501291185178053326758582704846395636838531929381972525273970167809078315189245232570071017499235535585625408008340974099767648091881361075930496680291792570120627873364245461296328809735875406246069737325213231635628035672150941791601635027930520456472132568117662058838318021827320080092630977809112041056649771428304656824806744098626551448452885074761926393066088056133759604780090598302800196349827839477651996259024488886899109995938301853132701919978613005811602994989538466673533372433301195112445935147674717501315858202233086168372666516545369224948008798827452218141328740754340679779079725059709934308776787760353951276254256913799063971935474032819340834441415127608094414719859618006460761517715334493165192371892987541930768879694412122824968280064252297814887468749911089954955562448688448050415413502118785884879414951794505232456100318882523894105794333251380211149163853127530135493855752690267698418120647790018560659808308007115979095419415767538979659876938563989128744267553129031289458219216196314472044827006518400937739078283981545172254939679600200587133091730889674512557694494384177356197933369310793032498821473952947482157160860295043922399253225619916149655645847918765583844516400636424234653029455885346478620763671559896087730355985837663081147578104639793098516542136241334519236643815017209747852184021819944937826595572919695727462053377316728571680078042536422869714928142018298210931139014586889224163391760602323285650777036392384704931476109941332405401692808987163524695836326335926292049667077544062441565777929265570579174784364497364548139879971228945042218158824672048742159270598890566628326873848892749485132474173846064611594171409330199234640493398695765460382961033380592162748713768496997731951463687710152194544080336443104931757477781052763403602537181874516782176348221199125398138608063068948828893405095292803776318015799836634759490756314139314045601622022221724797580481062856162306401563513101973394735133714106790190805198248554969451331088153690375981826515101697005851149057919575151302965510086376856393273716936005717085983713994956091780911998518252471947600941559856769683234486775013017748416798462173740990312146627240626034200262296692087158968404881576387041659117257370379323281972751307834628012878850062322609834192870798503001342208239837214391377422961599419328352337079667745423885241887192769726231371586912654431992168541381602902629831970084294973507169048892240291814060358751479675528812584356979791140253270361997552328928061294524767909739054996601468545249862174470935481028721667224439137224279305823752042585680131017672278656582842642905705025578682091912783780137303627222885301509653512487332827213310650968859865739056116569008343520606556039305157645871807649396132349411694035147552528796672637257374007963998025008206188865316836827289272432979144426682439968824836995729246706263946865628197741624856971999374021086044410458288042793132874228785973410982977367696352295294608777047083415915466925712901410200241985262806487734151332381149099942582079997681905289770840563388950733832413924502017100189578399858057993356911269069534974084867695844175241065962689039110870726199092145412003518576524941348898433557800312105250480044367335552561751310838363909929705687916673302975491273127847408548032455138860104727190673140364425188938198080925654978997873787327486670351984157270546440553781121861531470026663818446328426927522888450278436730285801789140737754820166644873428551141543789028168596857238029518931917202202103323013545736122876116604156068632629091382140143402488698064850061678456809793786617722131481255131122990311503113509565910807885198650904810111664968909468936306216981772429369147144109868016976272422924407811389456352744973695644260572252208574314001129184876121629812352532395723671437681229376818823530863327641806025456478018867977593263386498931796868900922449737992564494463969259486473318047145945316067555677489175371475405778949031682133950304349679665663491201130563437296514728679466120669597310773239287024775212199675402101931501144146852421479947592447911233086949168614533525674361136726746286375022770361214504623744743162336967413345245095466600766036992467557645276675782411687497153701028011399410366177844266837577810771796290382654711409882660607307186006546434354532822516099198765321817633922814223599063024788437654475360837508830903380274916468751832065118637364230412531199630006264148096852234369751832708183117993172450076799082296309666376472639847454058371367612602093579067911009758416882748017138059045445822344139814668465442450225038048385300486752725375157257239345730652638599676855483060774418315423131880494189145477463224325576968302782116077632123779633672941680074808709453758926973432395280532823176931753941013587287013404474289405189233376644369622446171965030550625822345134469559679837503069168613690191086731398569971277045291904169958627214569232499585782991671474429804218618236716988694851471443150523307159078441904304039991344261354746110698370002827318696587818749926501973856162203796597621908381931630129757547693271276111433779365029748107954270936422646004295863766320076117637603124262781421511031574890117212593651530009510341648778269045438777435868469524244710175181480448968305956241038012248252327632665791640598481132097916957343757622220899699297295450604630606810206169857556788487888969555993488978860145107307287424432760769602305211095950221772810472384655064386049898400455541554672926667498474365378003513466974842610870027006317580428121490788604458194361510636640648041203376448956815876270153635362625316345916396966059910964622347432777183877753684918635513839962889143616166824656872134295968493983910973115118892873985827590951248614680138408019474395382292073802122402652241192148978624772389007620961839409019646322274880583099499183919548806382652882893943733824903426954800233998280376421622655901003138419852665837069333187962134083546551013179993326558975943890640398369093725512619363047809536503468442863912878265385652447439051094786794303398288465305987719509809847635720862462278614189082831575900414635144793851865965318094898363923625796232728978790943340176961353124321382550548868984572548177128800839127806634114035381629348027450782575365070168179861489392542620038297788302471732833729940700548336176340511128187634416792635401337286111856735070826583519234749581790886603187092924853703154588006520999641382337619056921784047623783814221689752601029005480690964360317286891724919056761730315570553436958446502443951116372952212319880371815183226177771212439145359840608905482248931885703797742390994467338709181169662126809047706579952990232032199284754902421054051269724858825561250198360539920630433056453996489542202286871736991404332055354019614305547786135583643196839714276293829684068195984186904965030691848377417956077742178783490727846276241095382802257646715980054358705629920464293858826587222163847738734984543318545340226499472917500746713618840253604172571235330347408752235753509838392784937848910696593048739198439486712607429208136096718032867114389755055371562527545508054110695410362958137910475316310009768821883482237235977687648377433424887283997451659494565154068855092818141794800954476167765535860792246376724918051288144782168045827681507548987068496906206530436632513740819138828385849220878863152902273066654980650531125014633507764189248416770939602406738470357508002669249094197439617269659318674978455645610474910694095767808366974632667535858718217058586565427284079751667123272101139803964385402978516290425440040006899658862592019745362693418995512786582084021390337110628933626929497583046229938619964683103785238321509962886016722308307192440899105616754078585124096067600598960601399559144816458021071364174104255488122170437359227639175166151935367438706243695773489052334452422071381170228592017264138393009316080946881657672827726652883566315405781747937801897929360266420393843763097024198811837014419763505848181828812223094638910733484941028670846303195527022649738068796408915317815435385316905135271972235560979136122845999281110713215323185859972926572753763456048325476927924131930851192959151170970024575735755897066955961763742441161984634646117511977684749436258851861989460333476993123393279393547188289873309515945580553082833303984406854304138532110708668866398087587435179281268199523250280780841899732402617953909126509811683295154034480779198351139482362414871925750174258037987700406920007740033820703497776164794125079731867531232478408977971176043558720155424583924383795785848585969105848908187667069241598767892990791592076567143724498860534451670835899838565868483391171319409669241700446341797970028201962429576615093399351695033355556447407947455413837388091281114219374875161395122056334342310796631861625801436123851398663900465714270639905641682191167570214177999640294965344156651057288212181217109887953482874227674049222716384058622676419732116738700108656799726527055203858721594160523554607657656440048731363484246059177076909151072380045966410433918286951410338718036845674303595128882263641924670990523928809518410403307350847246687472288692514756257305784996361399894548637596310638050370707420024317270310297146798249514867782909541613445827402305843299500127540094056059038225526216444832530323653945235905324973817347607505387522814904261780516371026612796455829587145550817014107680250659000917501454798103709308709998858499187561728830408852601793360838431984047660603683780541506053060445455596893383647243498837618062608605724430727104054754477710151993080751308832227910985239610761317111242848454678777497771375985490581668021609292254006864025218315376821295583850868834204834731025277231019323380351417303240163492873318494297876053657520898655815858010461183007689807928103604311928498906489465104445019932186701495391129688902306810529460385674432425936222451083922970481973602589829688295564467231971413232705918850514111677126225734575409186880434389665488526477066693595267426240639656881082406304604537753258778840732233986955378712807363306905053863526746278522365039924030856401063260658407896125028435958527517451831308576810897745032055146708698504801557626610455139357651729570633890165608465771340003109741231017173125551640194307974843354147798446033267631532956734124195242769578520828457335994579861018757023324243997079406739277230262782057291904771365662815864471281196957477907438417404839840055748745382238015831068541407332170884008296269492560134553385401544573390877462806013616899704553146825690076909549883838417256250978243536005686973838988440334360754971074883430405152677545269871335145193348315115230426021435869569273627016633436965042879939364543538337765641182249899274230873449204732956427116855027641860165153229222751640226193966748077599618391465733804585201263032059963857436181705064701207894823990672389095295319373484481938847166311557454465169353230344085807992693686845782997868591901722817013963567876919890433698607694794484764055843286066371987975769633667177343177196333244991785705639678116203914130327443035877011280811854902271821043221710242932832084862635934144601087339600786899454174986921841684714109656905054219250633862966865365171001288694931578289470059138744505507808705589279150167739806106652341250613213010780473382657210896410688030486827455059104817890183584868503256127902956340084009424186673507450153228665444335538732020952589865177952989670206472199200306459529552805597894120230656434656678182104671927179146136794816030339317454286427274224760144750432398857942334057125362310719754876077568669237154346785633621835435841559602036097096645878681357365260652187738126883075229279399151694300332756061554928141617760916583102904830988070679062018140120043852985785397012237884988563800206004966927563383797368905559903703304346307081204092205421731392029018003775734115643821968277970956861023494129578201424959238609614539483374864153129171572101665432960595293612535097937355116175265189596729021026345665696395014890369610351986328454244356032566072728767105592337593993503887154509266946294576466268656470274423673460124640104566894473785078502491392913012084527755974516880210546349013037396425385972504506351114454003292874254860691825065372023071092361022327684347203018497184524213014753099716273181630649993363430983315759678688523318614727382984713203841893777961022555079530904553686881919893797168711771380936880243614906512641361422681773571059391118310679720387879897298809974860237003703359051560816759448969946826437122574202283531317180503157051758059367296355978660699491567977018177535258071544555364053169376918866142486321994072700383413693990661381758047904072527137114121516638371804174501380292042534576085406535065916040209743328366948766941412928521678411873040290786442727312029989039797213798539059173591933234472537047725027699286469702837583052051236555923326492827055411772859233916967347659334397546776987765775177986856705778865411884997941001051713783337623841496459793639661056450358852213782709887197855448224085318183845449313478695736957028492564570443150999466510707331515428394942514838374072316094884962346541045370779880537369147906420023528193579212282866216000543798342831549583128302206692156921969673394211907680190457705413366024951272884967804007736201688126493941010361639804650073190966210189271055688721494185038587559486782984279323639435597801086661379126609627099748909295295368997465594123326236238812081366578978531798321948135512172582891008908453707855241488352179403217443922659954425995398087270811951977605396745704156790078130909580255098176445182757662009133305246224898251544187162279450430950421580256572107430272354120943380034208768340600721704760893340604879095523503934730048427773519904959726509603228211151836962221630634243682214086341661795629994660628238392391254841503127607376303211842707468041253732645869876021144346375173959562035883666296699523475771308876250886136464229107610991715781386388639748550236432161391541114072536616739146628184999997307364477136889422048973778224341979948775734966939161020067260944566897556450916602293694576285193736363525848676126035117091577767582587053144131016557002728983721272306970982119697399885656999752745667861838988464917484494324261918128162039782980630338496772456677647205786826507231994053969912258438567048627175791911967662328917470694879037162198662115248380648535135777099724335967695049770164300154951993342589330621293950234740356376675450297619599875951506793642439185788835309477298500914187183982250645273519690003316577669070535036033216183226668197785580940274770881472242387041623051096748489216678659997493111230616478541593566150091501371625884320631518248429069396534857780814409626289606732571837269544532770755400381518761881047084124956276443019376411000323163361818901038770437804771396314190479907824895237278398879587691146006635725221981644037594747543838948790577361542455947259810016889700155964710653641337660587642515606231639314969867792134606218423031612067345016647894324497320975858084426013137245461984643694247395312554130903525791837666554713662682969751908798729456507662214249867824451847901469567477417276446981342425824670291233175379230723751593769689365375261960567836641647009690537452399262742936697411574418785647933736363505581394315892405353046581141507715807641673973758593355622471231997745787357198460822872082440890580447509673286401997406133103234693712555470071469765178416698659471978092644348030880372092577314025644477325862743655930152800072828685746854069404684119329263505412054105366037068790565121357466122307596995128819217743189013680042585459210807029732683539165549035828729021909298798403744614877234567724506897991895948167448790944971517618063349899305022786807213747380170373410412668059354593252167953124298511429982151370914303980507309290670657110695154628848535094368563738845706909506445710298362115593901557982803621807001039946241937786926254018747430099489682225797752496654915966582832030574890098357058018784993252925688938948357440928862367067321534071729094571788995335950327160885620538944873099606169012603392788954344951368463905519675896591937710249468451341707544789875556498282596617388902918165027311841259757832796960210830256005710059501366232319493435728292589939939036261908849613612873164253555718350327260492382379622638856305842634439479257323491451795107837111506235390805991641400746440754940309963269471200852295851452341407181326545263867312896020608053230076861976897081477534598965779746488920892977562374746222117337140235656475665294639141055492664691688699525525078513604259562894306867599971119046970308289434686174136975182752383946788014483496191300793572133806163415110777183916293589184896982235110445727258569634820266936337418323883266976326777671554818159102669807451178619462589729895748120491430074133402623762344103530080894211502596467186484169537186905504460667151957763620749083607013114990432151444787271292162499328542566657213516176575436476264209568660934319839996620349169404476975523619107659152438387282205468806071859971370714806542193127125261469874823241298853011438815288657201632139570446297326894823355947717754382169251798762713694109053338936964257453850289670276410313594227175895157863393841449236961061723895624936994168755106607386276230438959524036224765522691014295109964245899244055487728553304971679613883057875844625824743253317655092364987774589127423179158704642406978506919568057725667269294798446314232866111299342137285561935661480258632049437929168549112127603585733435639322297785690456372021292971549614730179368552723175063414190990282582838527443051481426633406640178310240116214107016968930536086702605024188120945768106874532602481207826840522128259932502431023383393008331776453443025555674391683093856809747333878232431055085739050127404830456203208449314563763858376579110586690987161411354491372563613052169481436022088178362739832986261000527283028289752406980983663850677355448240998560348360318817145692356657882954627587464073878141004543087819649008715616968912950247054847502441796964536480473914481999990480822371298943481178727747714823900829629115028420892008759844676978650792862853213680425498132425350443047290847403947223991463955238385625823674507177967008922841344134409352268722395382334321085581527769647547097065730985174830121300454143280913662689454335327159948537428616598523209799140411875686388543433159691241630977606985267986422031770960491898886569335675561629272837468467584261488214237132466585428121313062406850713542239637480577973846473745682609519779369462058867106078462958256284215757152570025782693147266076963590598823212549917899557252066754991486161322819142164478346212660663845908111513558658112773661740139197549881480005113388479869262837955969807051555987298344287148374138590496973678019294161112803493970644215691162560384752223156100180668446038052139282051367703705513495669503114297393820314479879362053580401338650741580197076489226047269146912656674944055651469218562594500757869622917151001272614337741233099955547256520003951202478074885212901718199007144415838505823443184704336834534087948150400588836690755353169510295915799435341924820911628803576583035963765498591818220972440689407070725962234028593789103169700479456983576886952266247452973496253606270306760313906574656906520774313264273360281371570039330051881849367233145991597763016820881946154808231424235738481203503103050666704861640230296242602206839738093991976641157655469031677996820491469812187018210441617684221499664956978976059331990625435311802753132375094060543751980815152391237471724399754812528085348829088214863638672321073110443375856593715921052069878372786994566768559988676011827835358422085639032338524395193381291488678195767605212486753914570279761952080794084010693617522225154243631298177333608763330152726071895730889134430789182039987904203802075499142676089024025931759320898650217751601611056006566275001447646883341239359885977227511335814967979737922608773483553766680121254754236502806797253891293261246954233989737320954300812082659903774799738086505744508155622196263150991147294447118748166401598815146671158019469004708717073973815703564980573520145993119186538766793908340541851512336150147124547745120490466428786443263155217584002978069568226010053792345046526370703664698150172399720067576807241815089640844223223560275691618290252524151194167609157602612684458600584891521534494304131871052191922204290419042786799359676336954593221212979729626249342576070736574894377999795134024747349571596835436644345350631455239939925307084425754822899826498918547514801334173284756090007334313600380108436359795128106165949500904962684805401702668627281999444219040076353437565917509420322194039955609110233774780303313969237734804881241615674700911852061758968646936806485459707667501402402464083215728946200856417301507963745654019473899055051535860125944215025654319543328830187210962017534908038159311582645713436391632754025043707957748729743260754319196033531147736258947140294341299264508094166788439619982202498859847429070597960273463183483441259944538172257073971275705386522041043126828080171642602789963187670289200377535349011590398848557312787068686030573713003078399003198799754330392234377538343625611617477970671539141273876308678897017902782664384996394949329637408139960226381619646401516328983976231432984775017376636080201698422066139699548190365990727766677683544308479072377374261636740555929660442508692451871675991447676316438360771436929854775953274916432815004150510225725747206822788336800665257512053359303746408441318024577900008761883190742107437184381356289268379655061718856227767155643779802655983354774336175716372976995365455536165453067178354066336300282926765039492570066542851816639789728207013354548322833869454264629715233587007575490693388364112489314327294153028647368685116135568688176394535004688988341611110074768536180526263898230402552520049850950803518902021472343870880964520589717711603746308034580853086224206399724280303469231569663438047818337282214113819843973218999684892860946883962027496344447955165977943560493886843213539199197637926372261225086118894327764750767518046945360955854762392873663685824796269566242953306071836717242284854734410365386851447674657851922657000119345616724134458764439657531250106420793229438863922811363539610312076383264443280545959494368437929540485310463080184624418883332686161481000153379106045434112048214680931208633978881605499637824488793744300854086558317667866257711081628839292604775349408282122777985654701102192997606036286687649283728919656599376635639060595224222614293444102665503079889421579414674191344346940095688328071467275858602847120026512574035113003627266888693409589795182424600050218488736926933887058098418018024495558180989600340302872274776296713496341676950480537091674238166690802334293095699382261540507218850626892511370797754795604520579043205027790940899967034480476804300648271875930716029069613397845882728809154626214569777615785550717383361530248744137918821632765598277726309881788704083121906869961917345517512568448227128203163395707588372760107530297694765167754080681816995162388211615613099900449879188748343654230695742973730382011934253222801428307011851226081523192020160725021914333118117411686080696999922540619083646085266332755179865703879983163594774508706158871501255418249749844955031547129433912903078354653462464575386141875083849297184205004035444293422115531016922343474959930836997355783814636858075415876552623213315257041495001548813450473334433114112828987547463882949024359982606649170006355361826122681956794695152817058967401489251964185871629503005647235996824887749914257914308619469056638292462293949252912377328901087957829832236952023899805415501577568037278275919267349110164365813802061095810994352833653286997346339375110756511726928039758158252450302322321933362446201323700380718344490874213463692925592727396997043750361969755678514508917446753658005709764953570859252294949068938727609923673367980461946457566733607516259520196605382861306935583215278712332306077563642421123612669018034939904715843936859353515465702695775342583856020354233031882322090892008047710086790538665691181433708178108821601541986102745735512629715471385230764101036584245009768420303667370291237215322043794775811233053540938836620931171780179950809534807747995315359852014595773085991374038631193887520273945908622167129858098443670430805070028567632131024334154490811810519762013233477975406538432636917536170047795961354913127261345273797268597513377360550638311888227596320198316658796935067049756856222451611779711652871587025848357413928266684848662201598986665604025768442849578781863889345485632817230766054934630473569175126068542761960796991737158259613590697659149029134230181886980718880340252432423405868749357003973059826633469117356380249986399339435589061916776221540230079894572367344313217373944273565584237181660758972671989466950166010367493795559304953531177549285776594897275946220684090921827369544570924833598699612300155132549160018138671792806101303590851249156190814682571088438052160173088144135170112811545427869117260166183126706725771120148084063300133144334607754185563313389812488492735752068507110905461895212726597096736256836326745860681097552515697749745702374260057327300289272148671807361024173536807242540950427521262642329751098517879641445477909002635769339251982977895078183101425905678986274365706068934882700094778963755029188030310985454130045807855765256256297410758506526307965472202179369407913819169945591675997232630410780214110622503885568008836082565285621624935958311027422186991161043774093077881439736376432421355628147757108839125155199709410196914333714040772538660335441041836386417311223359288604331431938388790004037751535868901908784985065879179739145375965558295484779967649873498362221072484467609934253835299451224149503814071621619093116933637456583002239748899887609197267120232133476628172488551931924190804502606873518201064511199011443139556012083484425732258366936785950250098367784551431987572367628400224900794873629819566121609288529014539765183422724071453088204188233935417396006704908526434875216373267833713299679346022401240180511955487200085430631360057490035976278452603767923311155270330798549326622542929982650090454443714747278822341975969100998862492478778512920816474119905877335333870186856062066305981009494609921880861551897414431770867711601540978784837585081175652991036383533815721272335666183342767138372270666721634856270528194530699741956020174022195005140698899645935301313472021302348113508360538533909965588847592267454088482510416242047673876005296413536285127344552650321724194201029774524759577529042760387954132985386919196565746272631352004771516589189580590197219374588610796272983063328408633783893405845007005353452278240495799445605535455659732754625148021195220755403171774778343919404329762702958891776081456088618871095083310288520627410218384593313449823617921529253703172856482011284345948119463697635194488827016713012161502530354438153706680598296264058566298681004130954403422785900363370105507664366216056183915612465968085454672627521474602511035603312537450718228762610228267473257216811036329650749146277862903800455566950839343893535860113873359845280995335275795158325191995506205416715880049305085059564969576972861968168428593040222687327809736660763751940199017660705934883914729925272129317253825973834632064144178713278134776643574028271064225579927558953830488436836979301716500838695261809298831745985523407096513934073829143400736577324908712826427251303927471941372092955039045229257630451848403727713471473309314420747377749109087392869771711242196494098795351153280669767786489775345430126074804674075567056050167976023320515510398443581545233085824480749170509243270026803443082628665235883977243278921821053023511758523082407909197761499519819132649449155768079234692851429185308057162596347434333527508391791222441368405916744429957373562953149349749247457587992624570946051851890561355168663685001452910083977413411699735751535759620907810136331897051349968082592176525779239985642867364356465466762785876578283982376355303932308713913752814799611937123974412917827003315752959337767786637141505880812081462815256952990995195335832937023975228608692506083608813777056843684044218518149871675575301779230156087030331603594326464113537995235828038497215480227825909475210545210966477625070788014650367930797706489966538560693357819165192538444616045001786452303379423311380350726214396645068875308828161411078695053388068998536428380631525235996362755325734215006113676824979376753444551743331109715936596523422535241882410991833729346770511592191824067733777550606904662047316517232147282576487198660884066550474113116091810569045888844576433538329827544445954828216589886803288594946700587758756221503173757953657962572161423317628265736212510530069067224560819966928445916022856032865679458279919576941513285462833963330017278838340797811717121479608346811495870465176936550227083769038516085885422867582758333091788632121623836463913107561608001065109412327412790979493609028922070382676885357517977440612658135984212722292744789541096214770095207010467066165156093227845204322512876553847200253955856182432177931082581276179809587827294302312307335558717772505325528453534027240205022506104280111789355770749455411222114180130236045128687395488609231192030365261017688495070700455787308091908944015901841080985175700397496391280433293599181145390640020686528422658680724442323072603018197945146311197924115273109644092220117539718830639010647680756923395206142287962018487406340646384564113738398262204592455322484466966179142376424272359620723266888217300106378554658668828262838846121555229729773920841561088611029599053793328288249339652677598063346379625895892207123357798761596919387085417196032964126886161960660629821520265933591014068988069614038529133797666258680428218083154030172259679786706792578478622367683242324631835131657584878486695376863380884981560424267416962979554316843754418803075073102538152244498214166228303513573651966537497503925810846870676652552971216673201701295348336321577834909509075744183434791209581230435161530391478520229068099326316053153118935357065778932597197383852465141550884403253214861321958502034760867773784789276557208014096619274682343604329077805265011895512269863422113819144734435895600192871404718236224112056806536091284806789843608485950735249838754446651991633131697963313168167932641524853128405876570712158773167137733770768100505473872125118645319944396327744080696956785111251210379295487689645246651862008724777250195044710596547054215044345730044626852764951518460079735992386507128600009281227747317343527369753225538846224686753050265888221363928363662852261076427979764831126961392737526026579913788724942268832916008616908458884546843567610720182007921670006050369848290454481151349772689099316453190711808505011081979175344740877041327993340888656573797129047152157919526129080818667916247813572760557067701024007150847935187522630749540425841695909848531900607932891251190739770471485436923127985130343232544003228128627034127248792031653231394170928979461962147041909097753922005573705272844280830679858981906655243037274568142846700439520100267153549281768414856928169645518018735933549777755286712661277859724235509319592393281757863258560901825696472232195190620225110801056375234875929358468308533907623635618842144921428599781523577239669434693012141414630115242567072438895945483254283896668041872272895139150117035936093845296986207848589858518038539119893707931965646992472803817964808272998201485925580086487102545596604987430499512212792425850322585717427929712238781630362162965415038951915842196183222047416680644540759281463222000019105627060703838487923850553352612504672343977467550787793857333401493732822916216695569001214695333289587296236433017986873949388106749598316802052897059696956332949707360108269119739326558010066586286815709457406770810032537508888343848526880267279808059327132671612541388709568486144839515928684682266361144154659713702329211628598269670557161812968885611263859136804003743021555907413807672226328558491420165696351633267496752764717398060708333605224417782829221544531343207619043864112718985744469062604742247841642802716110220198919738887025470698666362192769243983029852383364248042216183259486965709031547780329225164806024611426698949761301055817268124768850309433723864389963667340009063266595219869036702227199011074800126608456106251224032185713499768900886277184511058116973016604546469032420935795357291222231278110233140334052609473632701653151339141160666304052059413014001109426903426517754825439153488245884691242617702452113676844233881900918499076142813765124161788074180371920658489251602543329433316102281138820668744736912191241320410103568478561905616296413998313810047106142636459490624885634955170722993512043450777822244219859707253028357341812498171203212382764784816773628475875566097762550804134964817832128009078180834451373753441998081538015675419681877288560241354883781002280782451688932935545436429470066069208690371444807115284813332715170132159136494172309277353623086214542801421105664067561104191345335422332980421044290463026240593213093544434840068628489055892131069945810243276457447675467808418365250621934733144665153386426440594060440734962881318395222544282206959650873575665372818628065649711120068076153893970601697056272628920609398330970335419540174898763278429692563621104289588844439724379384676399250203684261456294804776114774166849069195581625766905169764568559095546538834398547017705057290513589942272410235150585773474178208382244831866449713510835609993411424825699615808091505360114884858069732823398886232034443840042680277076758497961500828204790422201741448840310807512038678110613985969966872404622968841461143833023575115416454710908108732017672657203405431187056637579896715235118888282129653150885199181564664138583038200788537935886969981852660139367664304566911089327682152599696865821930002349717735610319160779093594933853512045701592481245420408945095656264830397028119113502184468615601725297102258701401267030302956302732734207553308692451609769377337156531175993819391546862970095652597179797355951399426274328728407244690584275308557135083590770235008060293330165820111405356220791315015484425054664418193726622097137468762886038501672143715019149731221572454929980655086379580225221278718162137203833322040992037661455123302786325876373238353372100823505884372204630000898265973964144071083786926147510359904323867316195845954259473950226291597333073649357738901187627266160923670004221848548896941998123820566331733096410128894804715090481315886887104253957526494661026337057745570745551433560170952930999665281435137048459447463602046510488075253376182057652627983108075771834373681320819569600225274018626596116244375545357722173366509096148092212317337638081515938292074296308959209875792074335712423336489639847609583633110475540996764013192798243276829523381356078210432647820639646272252869931441361101961953085881507804826059560584379027501941000828857229603638153191894580789018734591835210386970906202905197477466092361235681471542217113901638605036051678741639408216190799089665489537999176140467080426323636855754694690392475482622134936898993710204835012005319556268260305555142075957521777560704306917874928748026475412941436750759957388118228801809267276028249680087088110128840952210976763403575419009692501002437666630687438369819243332339730999467810537469342551886373235044064221298049517080938842591572983552249939675190157473371057995820294034945867036533129575763708066839179856644042026051474209363013995630309060097722995061563593606218001239792059135674973505511199055286673378193601057028769142013004337569698651591393594781311991691567735828734080512165311766553559445667074689452122262783508043623079596922150432471344864291267221626577169422377689482590689382189964119670994378619773478644924777918034022750103430759263570550457212664207444958608867496201395247401887443561799057639841269070909217800356981362174452763819331712166878663291169089386868362897705568760254842767604027838912560913461333877468220636204212074894279936775285067851272014306167261240055423227858353178088355860628052456778307893520067955898005396242972182141533015577959494388441037335206818686484284386217552358782208956043795612614755072841681424861941815030459737315159108191282256500740544915249737501992432443000655492157853572660620519787319546490994340725448970940480209831373613258813976545388583559837979986977338094489570716580849719115366241332651284177341466179920105679708249508540699318234502345331232276238045179136696643803020225086088300060012947543531650280524566201885128970980893147736651524589385052225375545171269032684287475701711510627909416758367081587812525070149648459479075557779533164080709351654257919619851274665306485500088468565413253301408911637466114992835429517979852275399628531058198363815378836972606238985271551145973846163816863578745449891971388123069720257128484550335121178301477654637356781398289110904337748571082580465747828546450057388907973841888450322295906042477792277076746573279647521089078459823029659056464340464168707934760205651090105314519884103129842237071748463720680241010510823710674751118237768059029505861576726507325979290690769106014105589348303579878533549307012534493104336078014458915719899397977667086930222979251239070123982127067795901605148448464729367622436591343054190751671855838466533129108393295765987860686608169192415536751627616498001310411209506925558421973769588046112120325287483779785856841999673597138648995565123616576944692105762482945651083077651358637176954792813573577513111690910386337856231520618306244513034544447843419152879295863524078469456182933142988817730552218032590377630681936483886589668863216149085633871752496213041729746487262422040345820290781252369505960661029390461754997880958922795805622545610878521834573891623450002212638513434316515619869022082608346528249080157700497815001969790474498217747414215201330529501962877822941110145761833479073932756225863926370971155113629483484952936483685325489376543949571330725555151657049842643904783124862783359078095195761547287381676042089399666566230253775941261865397179233667649329609822830084339423973083310363301340380375539939090572398182533290727374915178088795118554130947447394195436369520729849505806782480984640505450231013335864341094650265689965202063579547180931630295921015113408443470146517855307801079189408924189067778941032939034878863055842217715778075917304519141122569941535787904100928345235731858551569341421160496868973357040672623552446659099263881741888333905139315581863859217595520917981888342230644835562208314775878998941883201389852753285549050506400363491422325640987981020163516807099289673180611149704620189543446691794974561563077570588590863627716772169504244102244696404830951395816821706064759681779766410813161702782371455248100178053800793752937723400805985451050827748631964164990405832876347743475295463857856394101776866355768348022964486011755651975734281131986327056791607250530510840372347826045807217114065986788659769931116929055062658053838708067934506331496354744759609759713134256184028135766174267400647627870062333911875374577019880808646873401468002255660161437029062335099512492648907534731292031334438873574559522128428585209108092444623753652163923912516646574131841379648313956409506427225613584455605975792260875658145935748364339878224289440797320582446749526746413499980673374034453641742884821371007872708716483846139165123533651522216527080916724746406254063056349846587848806650025861155551991651477522876952719895841418822735051052737518964291418998317936392038819745133336003827777108481168015957163379399978984902107297849513732827277622582369742649255167425680412953984129922406995222712009640946160037688451123152021890813264343368376690986235699932954581061881553536503822179126522783956865378159000193406693716458271162563881632428917474299805470526089203525163417315823329481953404563695811871761522448703712377486140235997094646591614958409280322709002533989091533367423524863205425232323521090016489076626184355222740399554843026108586589151706313599806213626873506995958800251297935794679540689833031291953110182091769983866281994185421055969121925846460819323591981581621745826839789421451616008830878172704764389410473937663384984041545783514390721069092267084128949136364439044855845411573447261593477345460554393244898042708245424967431666745336414213970092912748419531362751351263559141926200675415986211843932012907060340233610707629874572085477619106349694360718499981987151844352322636288682347122609210223791376250198798390716339446072499317502165469861333097558410933183281475712264274454494993399010665033380712317315418716594341430251444562006943286791627711184998832614788702354898910675809859366649589862758166698405564813458880335129477029443214243604390068450043157827250170868871522167226750273794904143088219604699215279242511481234666869075698927975191617742422883068340707294536253203082320723952096435902282936255215927501634677995324519095051187001549697501432726044778741358803164120465277901832842527335365810117878922821368558743710460128303636928410942769429508227671233992795345134508320773213124785528862450870044401130359716761864714430636971946288659734005812812414424527630434886818582284212369376446736686721113389416408149848772729653544725965574179503214813019359270165300373060438070469636699801857655450307545378511456318439388295754948620158280282031672124274042759636991346548342216545367337184448207800293787705891607821839391912978021741047394919610876344438443629328706400136471256055054428419013495279079306647794544640010041027959732441560319439993228313278257452112330504077954876175126629421825670979998810584646155264902955299924741816318580604778215280697070661889027638387159479901142609372559610993782463260215606374817566882786720536561043912660223637771658267945626226611568767067721229129245694446778740152067687540229322304996041435312894702529169724489804158329316954878381422846070402058609518202423074265579173855867953970617549923645352354019247276349467030180195250818280047636845685087155554760068185479527492377473212788179064428872601701054682075760894110368620936211575565919328079447716895514782942346063143703956813422495990876696852819899643827178855718200926768464537557514644466138460168308138802733907618771013334928598832746958286152234802180362586682844341789148328829472267531391758771537122513359777715714406165880860435103165058748665061675543011581785161481851941267451722328602211254348429069129129296939811853611486172605027762750620643971603606687686462994735366816152126318700468909718932689100052312221503611685557012567724225599031182160966405313866910308150714445653753211521130279581299114570078065625650048236306369246239631784130545796105923029697571441821291530880647732307821399987533643637472451935397934004227107890707388945327520463816637386438967941451076951116149632637152450501329928609764394199850024010158401814706953223212710120138017908014327987807972519686628605521175893881456886720268677264539172086559559224042722693060082533966706047891530419130551977629313071300840412650986799422139184614172966678886732812028319320420124242745665242039248662960843541308794661742833386542803305109920585756614442736268939877078032531141007103320135260294608836458005109988398913180987499697658396634408960055282560594792533708393319692877265853433711646762097472616714457888752867685972876288956694497124426282870257755696625602488149106512282271354950861320927313420270307610395633975909746974780256638678802020582673880851043901760754457301151671756149469090167431347523002403689653567463729033678227037307831717679716713514572128482228484107010715092032596515888795873882584029449823228452456662517386840847056717807311191533250964009995293066682281515559415735688638419309047443944824587211575859986790214641600581013328562498896183465180659110500207410721650552176549658023356375656195417347469340913187719524982086949151317261682502218073930764811974755379581870033267278383386272353624909894972921251769541127126545125325810933339352427907303607230251882981473423981230510366692177369596859718745914196462250270830227743901452640718760607497012771112336614869110868836079434231275503617488057805290410762381432464612951435350511274411471431652875834801651765803734097986460523603038888671321893921144836519552688838037444953984058342149675768548638222227528608515308759474799454731859455413522933039339766007876367944547334408220570039440244485791198874053614376635911824157142950454561174913606119651758410270364287302908193499486443021530079641414174013358991408897648268377107744488631376142921591943575511804682336187663334452410624544302332926974045236899238415993839420755239712469299212608425893830310082892818152023913621483165591185495935473422437838582387767475897284663400042362870710349732326540264877437374912127066020944675958875231016334206462837987345848093580442275100271668662942134761080490718251510322698225667925992006414272618893871755576274997530217915237729332492395533721498057338001247321422634174717184956914387193562713783528688176944307856862221584866589543324608843810360939059599951755852009863673093259162625782591065798513684830004807448848084684301829195501021555347384742402249999973923338292035807422657507295177075977166277257170565557978035278652032809744074067511619904060501194154272534345680765612082513594950650931800768042670119079596114670753177429718048950132156540542137887962295399077178596819014192141702192509048475681469118437416657125961351299800664172365455772642253298614714299906555905832928374049765035742730014165692608105258500268798704044785976525541048453437322627908812225590826989001403697795753657177617879366085345041100405709659885131033891441161317189158616383114049656113162799369609792189273150201945155922114836827364735068693987907679960176268621534127100795586256080733074608471767011405794676731204333620870111957478809481743883610448241404819737556500708750019011000297691598365115825148776510778106062376605382265920180963681497874318707981969999762400233508321726154253173524480698423381996934668160581473223294869863904590464029492417427122805189126682479438475227576023699016628183612715307840415456852109312713760662715453449425918226791258931219028898184194857525388475938544497645751741756418712177882463269672957259539656158404432144351994259613902225550054371363383363708619956520395533770070806950011987244091154748036061056028601323911542224190238203777750009938742170084362789374039650495728522726403264887214669822981986354226562942039733219881906500810855354466211776676497859343048203967561655354473784423479710182915878322414222107298380092352709851365756828086197262169553113021435338322336835892667367982430716441521507991168102544034729818928535673091046087542755974041028777388434126578558297190284662032560438105595205671660976734446728955176276855514897868902949943712104312781153810118968510014214176101067368733062919741174779674133723408706003454279862185354939082125651703160389984544042715332827911036711239383411930246890252066387177551321787587139791307088128837107063058303563986159742752191619700375284731527994999578313903952285524080298023524318589694843605589913082964077892594278608830465325986650243790390067226457640930356429334264613408279956805551200476849459108788187737920626593925148586800296723747679009044553394919912645289799141536274381629075484905033630195388848540580613814796517730077571731151482751382251305170123987345303626432354714120068660095145633192918787207315762435869431227941614030714658887276388810415379234635678167547884782368936760658357740607451566328503707187323240172409167107191175620079783339353454344568694038264184839020452555670111525588339354849332581022750066825602688145434528585277689644513340641422223405140036454095494194394565897404003999933905690224110185386008697413203822105999516715288317928269761911387193070029535962140536403033608678858206414769213461985093030827090445481504373988603291706751897707543989645638025876146054190578640772378724856818960265385077158618688132280697709191920642086111872235868168803072510616170494651461275032873237272556725922647265457893467623012965683824388914766324360709546379229536267152176213753421529759420805798896347898752690632582760265381349771584854622140956926166603200667419896249726679452530316137347344372516368260061792309660616750716527495824949381104545570112564093699959236714080078143164684015608668130834235318769063480512904039509611566139322963032818043593939730357874442177181180162362811864697596256255496664587875561269342984024460273740374395589198770140680427366153421514425541296371649814816128143145637856060883159919684129865423755498117120522183979680328126810174847841840356386870948961759882112723036732614268376678384402713214257532027199044773139812872357724161937790567658641199124990280336504403457913123692569069721692571166192639082259940635906657125652805864247664103453807948902553172837135035905445661913892546131210086860372762410881920473013191071846286754177860924310824559254884554291677927229882719664377564917925332767046039730091599854154544872680813238362097531614591169865145365450382513779486350991453638845574845608009257746666417342402633381850318232847980817831730091779370480829580590040447023055239396418930195562543986175397487824311524196029832149376525244086534179219279544950831995701955825441262756383432938752615582387813797727127620840276496608728670822250111652039103322118075847005842052236643497186354659228765869504408125099273057900734992377507395426472566601743308359279942571883544442433320067757468197213038566290051434775738781486036429736905495731701490472224834959854195791324517492730272315797779296525525650519561317730742598473195721367469177750340477965954416303446530223687728574810796646502417182655648367362165858027889189702247937935646678606418755180360839183291218805853177618942330498670018643143453642803265029041727833128115300246779225239267133411098968283975778875609482558006615478916965866515983398833378694407284460413302625660932193167697076979034754410155152882745318159293414820565534222023229241889937903060530763075502427657438401554151801825944416171131218242274306394245940615954267658900790905501303539823429466669584271969840938233780024877544273801234112749145136979118005572465051945838104227864378256799813826230427226074135565216281412192798432784562699403875420545308279372138216188863488344556044331209113604179100480361468807392805388943545350714606788412981943279997138439677761804218456104620305359508279104672242019356516819590142762764399552598748014885961528508715740646510887963408216178785360101496295963326393950780490058685360021177489931824701774201519981715469983976491285572197466801566111167174738890278246364714237897039633041615745991865919666357366740572055892695754358485557914938200833931076904947948892206634794105283667562140254099928744798933464873545379381035243423771623968567982649445195175497777744722382303703133629987482792277863699287918558585761659027430128734923330211152018322389879069585656481991780553818370390646535170427650361175194284122824285353562734119971283759346171921855308975524781224597609234275251927551784852257348273029637959167107581342512171992751299977382100490301201361892189485930828065176500166678960878913327734321363980698428329721166465263933102709147367288895823480280094820833891275383112515298037520189875148498442460810111882215819057627494979252223530260211433238355964541028152319414618107676390259458806598133341871887467183639575096114426209278775440742143803620239736923786376204430496862430410566855659403102704687050443616838042658565105059454581421403544622734277173295827722004037235458915445269235515601031300660988232835769558620615332715876416866799675770215241116441713471117734769360333932250989727837617479346885370424657087974189051639730084737354283330261649232286124559349220899589279855555102298328454832345133714741216533641335598369621442514782335082122081797524940351095270586163453495030205454563338167521015327901590467779137600919286527153020508519893429903108744303101590389051170965403353221860094673476717905850126391315903871454556491985955068551040350995920559733416107453961478372494639973324061666127500556524163267921820537343477130469847016428451228735489133078098602084235626549254995873099663821670884054140499203876502609778075260791237832544737026628186798914187283387768174890065515555458346325465986438786899466666837654465098371399596914709948431984766383213055828811056598551575546762808639756318282794288635726994818644506604611096988640237957137961294388014382092778360030010865087287984729233541785508401620348471883374005412414079516365665958261794675079760963546665478884642489291111260019350406707067810821906677051606049683588913887879917420395056914533806020098132975455287439568296305323821715579739349038444401786937081753159205217680071598168387827446740324969765056153345185134763277827669907036801597160247847786158955518790658708888001292675256928842509099450228171091637492516650869495315854527786154543099332556260070194173260047713355612130407093949266679771685087457366807603300996351462875011234808961935035588802459907591656309840448825557720733877084474318910451405240564366473578787605081868266827853795953889940998112070986040154955491345162550518947028103452359313318187613140112765253564348152871173972707352955201938514807641447035455453750436312829046126245754864102765255064749482942695596364935899044873386702877150880342396895161632406821606287839354063955108454825557468144234323229453482597008001606277302714595048319848218123483450694530034952496648448363763041824337791357237012907313255650199295130933121033985554912734998881257519096388456932147618138810284063784933819941576023399050714295553479648160944414318675684809722975688753024417220900220788267245130415542681705963679628660799873051057885466714813366174531568191368707336198905971252528080895086333419526049583632547634788801488291121961129603644701541550461490452208270427696608455635323998414625957964376621793827945237065802507617394148004383406914369237328030071219048566613090230735330825312202681098169755788348721414918941216639249534743286977082150064607677061382736312359251485632265208136120686231624999275636995001538483816710241293193933556081099606893494549051228989774922879409007389617578577950518378830871282347083370856378518421396634737664894031371849551246319220443364905500822748827857342833634302924190634380595873568489115121907990398057533879600328225320504438127648038386726097878921704317789360124817027693432465656804575757084147762051920625818961991884675908494430767240433054238403822959524422591564867180359066656346521395628023890957385162433402819865945321701744342264304165067217748899511205862529611028189300859193979876789988829410581314446934629183217607921474506570994880306790571695683689561246692574719248339576258860699703903593285602446729751366555526863242058212659340730971888838644340751297864175165711073531317464542731482492248016560684831818628471178638374043543473266304936858565167053015148110370521881471621961542684911918019372842570914488830429885917106337744941543955038781684096207340913437423080784136560612022257521813840997118911695758626491567537540610130573616717503225769378148121881537343477179391394884663272520767862086919185218517208006563177778016879976806283207977505010607163176499634674699475036530576657613434976882692463143679955590584240937634323315780525308301834219024608088858616866283210788517317067495665915552883729282368538847885640368098580113848242258380233347056899973906401564836216623568740611483132246626413966944515707782417513987424678160239979841164580726699835659151309503933027296387003034479854752236245196470000735067993037863213055075107841735351921573628325626024641601139667923770482967603915651864887422846890172734560698772116820166237614692281207743604529367056526139236475910163721853514422404247403427686734620188982360622211172690713525431951889131040949375774555946105059251746773353739569922660249918614205714239659510122143477810307616818625099799270708933762639311410151158971553013287189573393929029843945644059256991112353738691920475474259608761848306197026719227537151201317640795643855171444239939580025222427393791333059770300040189378657999564304263935920899900676594717147398819753578240357919197790295075491648412000874774743609533569939954157884526010042678331941741993208847772119060678995968962195356724739929412335628888984551251697228922648090025138445528426830568085196854874861731150845126523047035886772505789617027141023016754130183030473833325616288241804319398916378243110203002943346587853746870678778391739165487658195267711168881423250888216048475564946054249463804381736309404540627351610462564999436596773099176111996639708270004898571818233243204377036199262318840309715315042787555337549771381358685247437993235157153466989472435046182914724882636799765339641878281187788992769166890140043594031592763843481910766135633692341617091030447274155839699819840338569713060820173193429989799988751346083558910344831059982868960751044045210804002078707392838282587066668264802192870268378750063040537239871050995443927674887957663664474447515920321804622860316718531936167051090886684895931214953707551012912140961985855207616648193469295218249144425420013925456866069982149696255129899166869558417939358967903098200607713702146766955208146559493323536329523074666215059801307082743700872619657341634331454073153673966675563531580789991147691462488471540069833888659174632482369483964671163998670312394728950227396578950894497546371084757184415847077617608155667053558737799909977581705967050960247439601410192775084429596521565179318844436734863855896654643126767592699782861299110369989077189805945589588373711926212378851275124766887406080439461901045460747516558416533533540623497153120395845227897703424734845892901013194764301133512747507116609990295986916211125131317952348366357975697921521549817020104449369722549999112757666070303205956510164612284344432001504465262385273185391603268958703016202805387618447879666209333341104180964588416846965656913875598347001640405605287366491301738749675892281955117576761098305516949814609244900724011159554904763597015180695386221289856899380882876008817406487871648314768149333153894403739017372538793124173926539601158758477372548635662308149142722836142343453901411621243547696271064641056112642167399819405011222245494592034334320067433996233803012360708208879735353259519817565836896933687013899481476324551001176583945511544153385332524532605028749464501096344439549351545371202543257865840577582795952152303910910234332326526121534820911422316864809804079047176926350784817267719512293463243058069995024226191048132469944797419929524119971015798388326914714344414705085748255434448063231610357177152104780923360364283985209460447513581210196813211534860989853694563510500728249195152549475237306973946932670721330174757899623565510448886605299819219343094371083199627638742427612604100042424746149865424851144504058293041546407056418421772829764308088682944070916113553195279497557846148113399338609529205647850330209086252630928211154265940445912634888632112652100101041915813481352000891645301930783144406240302731741230853525700213053605488710953546829259035096878594025731634482872797117544471304534644366797140167171194508712996651241911268329203312409132854310917039103514023792987215763667490083429773594665504706286861557485262446331144521446608690654540559852796817957329088401100779626479272602079754202504633411808779663776779056027562209429164818285331875403247516751201262260166460539329561887987110720818405273793535485704124242435470732409561844187626514046455714481484312604387277262010914669077779277858919706968014874043990568764441692560072075131932640582509929397020094128512409152089960351662870875139073048177679348913277938411909557497996288752474950860359445825033231952119408060955644118440487145265176800935427389024396169482222303405208542776688094309412539235523156328683115380367568894153175844773212426794906304691619485475059910794937430742248383904821523289887071283040650350752558884812789304497754035591350614001170379755428635997650432337096324613195801476205954817170556285300873445354124835928142370239528419500054548121752271566753275638806050413539887409979620871536050445879407308067399207493021058620012703394286341186863842794185511196692864992472872377956198851884845009949088240248814308010056255037367208277427600765254489618127384738308847206251004577615806132135241963805648990858282618771068433962178276585352574902787555054505370324962903736783182040294658636544526232690488529216626422549486961853607926638779832698718103260673148575827714686631032500110376989968905177196295642378586801070548820859133362176184821142678208209449085578890170954492956712797428735493438555515867702210891403377497961487625415047173105626415525257794647195873997303231193777817357477719044986678413189170398724108227133908741869441528531091240417326625608145256141425008932095253242741251439592334780645542100492897455173112925146645798801499187514009922002758508726647631458749894942199774253593554795338540608530668708983586939380511225982066097518635779463282028893404112138463412224740400625379943798555969088674431880299216389117745113289641966762138780957316244353313009991068546092800829289873628917917782044074293234482781895953823199890622662836648560546384271643649841608760639678288127846274828385798361850461825692866340696224784872460509904243978851128634015842504844462240051550453705975320393626731552619319812234031372013874423729895249433958792488985842623563163764091499107948781339299493595851515030603739852988826942618906098668019271033356046200086663603612108938847974256133833103831976156376739224817486514350867446193062908108160199693679374754285956424838644809829907801968925045956120965992769493508447309347464762504323074881733301777237568945181552809569888791244444055337930699519905243324963504843122064667681059751885496715673384837804602701704655544817140383235637715391702716852834572460510411325814894345106930190829151204325378289127468537374797136413241771285463338104871886184915011065277900952652264406602960406999583517259629535672095615520335529706919405763568228893886342882777204263446688949395802573290561412861047087957710996551303156481413981527135500586598110371150155589858695918295210087029491380489563240879641839356740960811282459367137116380226642944018685187457893694665982252894164165166544591603379342000276496688587490941787305329706526588205032668165459847997465068010103162243609012509820446200742615692911270753541468099383206902899436802265686408339971578920403819447792222409088219001227266213196535701718057806274516619370385589596372733019954063136441069256557917422557080067991079137924562924847661150466640134655581359018291675888640463836779116408173925138768112778643903350942119269651579593892716751668004126459479133073888289573545897027680079627003660921228016365450767071957056004248622900192182853012534909572610670532965206746137486257466185290935099466448261778901196830528700597489889649173753364137780319123607029587290186109332821863097585889201057603814469243058017471128724842259986962260616548178621216314703401162203192895893336851531036516874804185129605474151229558311348948509564006416980276385225573412604137095178240040532112561437339502072224332444986961537252106023872795680580414632509399750025654205293035541325113885895016595664814470844058671115142103346188913936037286059014387746334480408782984845681052904310719524175136634930439227625167396957615825277378752706899262108962702313984124704850682385339733134738429410135093516497396189168000907670186033922611729075067160876182624759260449429304071105735850348026228944451626832991243585354430620624882817833751066292068501162054450319487312024148432103066914678877177777920772518472614923685968263549205121670289723388234975932818328936742039409718447015254991124467762200887445355369876675033999871936869805803430342500721938635062716519824287044547003828604288776579717999515799555778547815622994401608503665593185525755025701151519283521957040310115751726692058171835520219986179073957708089083228903331397321610457548734283705904856584058769872012665181928961989981392332170094124083553006136974833141848932632201332967711151876197402447807779414891173824025038728600665019838834420749089750589876212705379363858179534130438629778131753023654005665572884953267036811074278466494072237772541833320712376853348497820318336020308618765224136513718540415030765334630258784798952284649946251398837786300677467199435197988932342400666705795026650031551781573690005234001857418120271386109170952358123773021997494886356019268503418255350598812330836732053543948030341096462337416916210028059362686665771308774684750975380348513463440591706771032378177439952886739305802400019088331577035603440741954226446015301895533658767169666604034333050943028123566246471766215393964399650823666739196300310503576846945184091483668938994082387080699576035347244841406874078187923270187671064027459180277741582432393144011192801594499159624770388278113750202053550277042049161964534962714296532508263407455780788640716909639203455527521340554126068600067682105515861090115535180174477014963420805845450963789401716461574515359458028461573041784524048671576765213348257075159828338021158571278783635659487294295808762676545044816626359109353280876564874982227150237870911730085965506144476510300099344536000012540899002518295827673324118470597722379938214373915532813014611868424888734976232591369391913880403763415583765279455765882166504031188769595501472313543332147630546471892149152218980277467848545792316189390221105953244049318688276939203841584178613891083209188336192944498398686046532013536354121112606451035930716187818938629138213400318158773785002843532285454216391857621972563991222201232662827940560117212405882725343771129205901310616751731530733722126141465711035185269606318107413481480876509742399169476726921245361871391424749742007285483844440820640280146039987400890925216653324646974243315730558877580973061699167138172930418822415563541920285893842274704994429565415596051917035778386076668555848551664665461573173524078671313659683416113567466430527623472707854789083345471443911824874709801691352159853996872671408410567823560308997013790090150788628371978236673020500791339079903209061204572133850504320655660135458160013561329750477115168948955059125694185377409754649809162368172456527199218454079011251378042958602536639354322326802475747083973878927797251397161326331787505856935396470529491493063034400543394270407031925553700896115251016328540117981669365678207928303541436751097385557070153864614320883832911256697035482634273733269810646941985522856912136940334073871885525790806848229648814010539106234093004514307218408932302050986531485530920888044619292767198526000291651768564575503178043545189366990308117035252227138860099647014053481035086577325842100670607357146668643541868993165703110392320012677038667172975170979299554012033893083845101591151065052068308337274787863015903807355446424289060348416799088647303205003940522109867638249774411421558049412360655557555007740100754162879003474285610054435542918133905004932865182689338132980047316651130303450257469720991953265372449415756454197703834974984710933053939784507939083404889747943945060664518699064193802079578356833982077017520634280554036685223833399708113779887295192416311424454370591203863719028820048491528653548736930926118985947884494404625347028585036090322655930573410244020802355932826896962307544001993967907112006347239164741510692452494388307860408949940692476327274334519463298662672530683869714529168599771093998180529990014550848867493974392421269471209010958645298278253718574900132103704584103771768591764024798340484155632462042969014903847461851983118716585009785535652926945813968643420570660241661071528213020732894736479874024843920792437556374095359198297477168763427448290934259626729008939858266818616538457516794150462124177015683868618359938855551898929386497376538431803294548128126420330895767841072720666435282177469271823832674949894846753169462999420178891907827054084390835498441566199356745357177241616496713436675434826025324989712116527227816245003455771644787211033331647772894222872382999720868701255725070791355272137872820657262388486566728488610673688891786387659260437025266041624843772774044487584530298452231538841276648768886105755667367154455595537002976547865597507979316828671766533022028879769810081068974200900501558424922944653326124022088179108531646061276672342371747626274500854606727234875279487154905062320182702011661017364416287189014865726880280278734669175927410333369885321036962343997966307248410129141321554877759141298598326762960854722277567089569778233159137075911469001862266745271212236773058580184674260386553020154996026608996892772075622666052352911453514261355531843067413026626845521824031527513425491085435653634417862347504955378180015195429807817072105275019969236277810600132283717548499509464816506216925176273186309379239144973033006024879833263092004293531741648352335622202981776771421868445152436186247221193436565970771965819969314600874696835366046393298739086832272907177101467595787696204275571725307311490341863913213174132984611233998275187661406209932649495275996834050626448492793323343616558410765347098571810536295155336687567576815339077288607748523877697187093526236936454784482857616345650462177625331224513300020187880379187229358998851569871072453990817625464063934403781713752683241931265964971429340682404894210726407059237517398616448259027102309322580605619924191183858836624203440939735764720456554444757192503518982749507164269152054368284138293701626089895390961127708814903033137704211662984636021175005626509679746458974572138070057782451413873981226970921591236627890069603288710878375961764835020062139016164313908907373696021877632057899822738210319060323747070527991129850058597973382120928973538466935907209946641119798549058285925506404723933287150482053646066166907675997948979929910494684386884155290030112357794972311553144834251411753729132330499509684412393125645244486307761637432435849241389148074875890132267068288317086172768660145770075764185566503030445124291050071633147373439780332974427067346484009627819353607440176067079091848174072880338988925512531623731299438841987027587338328656888266658697142315748136319972317716110341180405905623911180750337036376577690684100235490533112814741318895106726111810326239857398340543454340795012345476816484457184006319762278464934783751347276938303303961776527921883881603463711449238899445898436045092840827329793871223725537664519957072953774140310390402353768828842230613932895867359640313397305695522552019414692815528021585229718615995753608682786702407733107714557288936798230513121494539512092497806322112800230387272112538439002296925108241478085385564423634864329957666915884850965711316925445547694982853113050256522735598528026012806254214372456837705923989376300846972686724377732057271415562648897468388476577343598941769251879348959128960078458568466043475451611390131766756303765197495855838163283592413264225948540236177755266109366877382194717052527820918304288460850213043773566109718683810025598200649735357331480805662035692145602085602254966071462796086143539758890720140922764879655495855203911023406695024698926599755412500730311848084323325804511212212729191649305470824473271298116537073418992760387355052251463983474836072745971473376303019084301169696040186002290660394899952153515326575734962262984766643608439883385037593902626093854786337721542895124169976348052830798109136738332937204094097873198679707577524936365424867156108158533169031994007762396181761368284451662892340171981390081139345843221570762847590901931249899667363270913359669330416623294658452541120961075332316695352121204485165159264721288918408101047164456321521846016893364662396451194049204003501225460004742954147257927462988683424064106895267256984931035412289622859789285346876667932002172820053218665709950199201272859259340239834826218336173779139145787064888371366193833147625184889261631971595924248038248345980220224880004457117561179916351623362164377091967520921479649563053105507581994171348378607041407493207401410172059549830170100078667118008430707452370578346924762130161335719464711626698099025272533906564139787724132912764464527333788318983311597829884382839567738651323965436409561902124941403389947600280724784844931776791696830464176236999042977041448100406462001121530683354285140595649002636350505654630516125137292022941706181907662555589404793816615257580038567840613382137757969168674211622916795480637775322009334456420878984727128812063583891218948902628066897657361329482311912723582654207578324009522194188651249082008569080342901451621702927652232009891485887985325159166349214961182235328679946071024209221580062239318998084585715811756993450197367626879935706961783145923355976831459377289322251937389819442185533824393300782360677663687295630676001471197648353486284464466748626897649386129696149904690807206235677468143858964918383918121951882705096774826543489215247691636582894123340958064028795974014873378896987501934756634958211356492462193374023440619779259997998154437322106698983575639473623992082492599409583242404374779228878959227911220539585625040243231354063536265500493281388385763134541955341136952960947761293561443761586547214462904150956720043800489880539765187392914823044216895277114245774039427140863394175388088029409438415362937759858147341306857206115462403650395364610970404948120536492050825210587185536639812420834416069068886945318140548507489992055063798561361828607398610818286543680630800710279242262571885248145230309748763452496836422294316865895657427455270906531339674027629042793025435968418423507447456489211939494139780827452313653754114975848423941645166505795320256711353817922697495174828745504741416440154877884922882830140663609935118021507040240413023713187075062327894922812778328859241715864299921055154518172414706165420077603820217423029976270295707623468762754497462509260502168953566085887390984011713296610875900967080850463165705706687817177030108488204414343902735351612317133199216538129430429255719773772615776288545642628717844965725737345496346205887675231722819985097508376031553115855646090263134545571754503292110328635288804819860838331826456749575450289872229276387909866949968497239489722439652071522473741467554709932451784835996420860831769089588967839266293814732906490194129978905542021784914637764231631776037606160934134665869487642006354834956946428695819770166774587337118999396539291819624268271459846483413567652751223528750584010944121303771490089707921243790489651409383836150822352917484869457132216881987434311292473865966652998010024261603549501482755822302763695838724320331392080533159292991009626686746617890284079173227399533596796856944652471579274604569549131180716699340061808074821196556375091243752603234115366281161677175748255309702186225326794919578692314724962755149087797813771970383519240182536007700489997966789068801389683026414496930536509110922091138159218937513726499481927610358060910304778685448168283563267511694787566964610731054606229610641484940651971877583457643210071477864894653788365455227626913010711921702227793348199194834741958589346519045668998626024528958212332307275013029850371220412912403818152395277228315333957754833217743094372970083552403927896927089622635414772133603486880902658488577288687860748003780988609650711389658459867179057113934938654879895878195670358929612627735383537853527622408624529893663992915730628037788109119271535768984020502079006377354057007463657252470919716950879803461212752167120184756562279119288023707188362057635169439474305488204498179814000292249541416643632985708618994969041987812017867996752795404005207567983716522931520810303412125790184244692927283074168881506100090676022052360087855289082625248672071512688294923985516849025166960601291181854553683718651795366474232429529355384695699525350005215466863611775272377076141552788110902526954966850444368929180755612719723139110022174899945927310322161065989213798397799204600333217408915243557757319862603879457378103093537403968447322674798795688322039214484382744731837563752766661045147493031303304116101699139365610466262568172307619527660588845210282525277089985216910173979784102040176032459567709134191217267944738539096012359064809501629377293249913353284268121069043536233167831354820078611503569089545476968349048949263290931150796760004468395008741129154232302488254661804299349305627485055525167251122671768861222984310336039123386855240260031575390680053391950674895193203727773284044493382348479548231061008295286660703332026340950625012883969929742046863576025660339187185592090496030873082114640147042546930636794201379042761623167787334143186041835337869428055343510876815548768398704574759238954454007223684777211870500576746849168770127991085942616099600351666113486867428700980128322264875365767194364883200484318629773049708580675384266756547584252318305976946354136875564183398670165682978296645201161170172548835860507065864369644144367663421882573372393218556703022334151821863139305776254015757760234715758438905417146665546315620678065083892748754727929222563223644700372573869359034206187129256810326133609369456270713017880077963234380859357813537094019521377239504934352088036553352573304033636201296392221299553030979044266050412569250716779440293367140016924536002774275851549023681780550790452242912965805068881516199989176070625824295497892724342308406209345681884378879575818185083374878101678642286377765197662649572479800175614584960241227802604701492428208453083914725566786653212919677550288217582531082948737035297186343592322624640021293799569357896235901727224821420714292696547786576736241554123765667273732506148347451371615467485541338822143077865302084901195875667963250255384618631093851641344108563748402690845562107463149893674883401034733086399938525223035439662104231321000034587785178421577345984630465527096636354095757604590912359164359693953182683219257500212617062333968420776484943655979205013965873130636457067186004944457673268225906473562230149839153284806665489281707532004382530529810670639350644911041702802242219670544980563540001374707701765573420199810861857205494436101805720465906936434192610308109498862132346985056140924837530124361188347096818523359443285045340362547752809605527847706717347594960135472536128448168266009234415431236185756147890739861960819418642861235186078287781128955862467994688921772653546595486651898694690729069302933691924336526984147990007531880910593305745309598143153301955641609144765899520667169249986194654887104328943418748348018646307925748002305529244122817054999254383563072410301834058506526501370081920596683547161887624533196782110173017037863170434132903978113404260886509285431358398106896107887337719376704180078516269526190078429552357336935770265968550688047362263823918618375916974313713068105016587360969265778561838444276907886453020394988979568799427743746993685720947213606135015800484642076076731506301559012358125404284816322969110216926229173130437889103321085176091863243031270888634534818529906572391373318362860134644290289137699712798391149598283076962590490741681609717453788105757801091861407540445201623086174452970840582899612436905405565319519055480285480367584328635698472720726213409391778842111840562690596329298898874866286505962626288637686848618676163889826390445620202263638064138120431521727401436266363361187485838722279328059626594810919047405507041342273828920773070958704130837321503530767410987307261578421276658652713162657534670099366850474062737498764313654208337219715124111298438189705580718573973531031558478343200657563585672384347092651819252119020780453165261967442285304920372920770156083629703621384910948270126312614286184786637100330974496388990543533858620803850637197341700991668458487286068251596615579429105208657060704771244745806326910077675451182151761421950070899718172004229095306286712850476296275209027117769433942531374509001014844815891060836392178559252270311919417899993844227724235790903152688572118845215202255034555371154901446119737303747090104130916280764530570213462868859041090051319860682650283215097354366961415778671364732084240620039215660683481120702871433094312865982515499784344509908447192339764157103651731849772735497415911876252741355165952847943604481433911982088415698013259820236649143074937833188831613489173411798325349076828017562060397543491268514007744972509795787466876049200407643949925815381399945926965788116733622593281844671605476768018471539516892688935527486138449347872280047850414459725255794718736357189828395078139562304108718331273627020415382832003003294613505737031458536660576168149742289789053250269299006105775402044694587069073184377253664675039442863706284186658878714128071355932874008793021400764092356897833250712413711552374163766772983278455736329122428519307271626812516725935687584755303766134947486738385037516610960458965137703528901723819897037275833874291977050440765103375330952438728468341826151179963721659727815924399377090558812074881823146619662888875790335775413444615406112320001318580117416518019225631227886427631510719880509711707762655458260237716148842414847606520316300705469086236152810432518381605999077757788904972149786042049451485956487623187527913834523553255452349929122310398117447411570019974121711762640838205209738552963101042751125455153484138151434969124790300517899408703032470372491203762329400506645521061128492766105254984731449027493633840376715062373404057658962362402493010041789194320790021300279791918390389527485231442780842043322410538680869705397114509346377369135989401205574915656661800845885687214852331037068224209005565674827736972122369626384293390381797161140960048550397273030151315670166045287688748294555654172064057664778345773159242186164955545336429050787469046927268791382201795626020247352509284061320748241741407359472877844807740555518240959120787064805797852308760975266727063891457018937811663077244963574106726578341934458961253820900340313284133078994140434572866304563809266908284254405037635846191823853599840435847731958159570023125472077279327028258063093229977157931267241164692516948837031673074142347707703070975821354466627562226363151574497476928351992756805269978085886026024768753453687480626548617645700868714755102128474299710382555985490312369380704713052748517945558189016238138067266959559680160442507577645739281506627454345529114034816617918695301380964007462400500457100603061299917675520869126056617313235819243070607693911701875803750887121551855601306120436572769147706548270702241556547025192625002534430043586809296423746895339736458062670959312453576371454241753575575076083107177972129660102162884828921136332088581927755745365581534991434753501996172311014384471220128347872224223580007147527449227101369571676310183875011376795384492735809809745805563516448405379509167372191438050401895069587174040129598810790715071621072002483141997607156037361960627717160662169705142427078382470276258453191467291358963738348164549612069426114214698961344039325680760727653430991786666989161973467768822545239563510040255452748032369420013220544654595172204373296913768540680216686367596903628258739489236553345468630131529362155148506215592802368220833231031929136041990896103233941460902692987365279141623033639672659799516904498423394287994711441808223400271577229570001223678008521744758750762682077201398581189548888318545915736899766018377136405707302558428699536967362775052863156187584817923525648818738061768219455423918116090655121404789920203468592225500781761885374202953642565798110325806100973481835335124321138396978212168021155204245539401164162718634727038426266696140390965826291899196265473028406493159049886778767641801530833130395193538106086312207536556051130982148347042674796414579417967903429258387281864138394887161832422431559976659829272038137879724036869529093241465712426921919988523060916423096324325129364978185218044311754342210649683441553447029739908703356117750298511679714546793471051091019408258002052133692367887495676124982242683379221525842931938382148767417878454414024038207029809185594005597401728454686715053675786583726925399550582625141135541617080201211203568873566045554426794302313196393252997679436826348712593863284839369377088856385046900906926586853641947964064706567607514959314775530688329821430872849592157179440331206358831899596081410584670283694620758354325931891913037267353090931190362964462177974911340637757899749563766126543178696020618784183197237302975356085743706082217156972157482511728526412431403225028166340704663040847171299652812862933454284570552804340249820460697575949748981820840153877360302196414662282581333709222930406284328349190910293940168869640902103851890866298346640885766613210543096618327904340617380035556761833455940298709805327424428558655806010842201853450316081729832092460799647747717551313706775882824253461297358398687745448865743840239617944641530105289084187248796726290515030531552379432196677952548231210220182667098378242531684629247081544795232181852469800408854903731046026920969793648739183960907706016091162413019638152271440886005021850606811255202470857821244685402869644182675748844518295137145436529879549910124570677299671512341865759734163105983577545405724067845266697116754069246937799058436076660319483588897032556316888402445443307250408097622680206931161214919809784730373998946981128446526322832190034287165066749517401823186738248917323932041590639154942527713683619324266801583096468781122847865225979607993938073435000089630175084792387932174721956006065769017316388514074222649557683022668335519532736991148042148674038438762958343236870564627392505393418628334442067693439219837847441351555874561880780800868684020249810924694371084797192165987752634885595686950877100303462590056226703717133463591356032726741150845366099398794821465489701068537507990812878658206904772296603909646140399011585677500346654396510365436397871846371145918254017804436750810197246073220563500583323870656690972612740243898338908477496161469252719373137738485675948717312685602823420296372126258259905413405938438477307211851459715519700753729836991620802617004530981290413206313062055026664865303993162628693624016610421182537462486617492726270971082799679261237737701403469576406673580254675845979180436644966426239281651065052269889441602252397301806219830342505682586636553327061056764188563023950974386046113179656446561314581147313274594278077789379470843364905115307315164903737186877269323953799031650370714466550227606301850849196873075256456416459278061971041205776218306609917952340332250148032781328368874624768518061389707918765415994570887751305773465293364378919746415762525270816085801171703537099085312634470776942708722726675161043404672035340595739148832039499899111933575020683294434541139032871217433708453123262560192193723818740793506965233825085987204365450337255465009180502170369590552796154957306006960308923934955594695772045306459963659387454715826072537754221934782207278602250978329400379847477743313550309182338087001205910671667602380484932068263669313224011776038774428357561517181878164439746224966867911777152034970188631822676393342055314453384449487670597047013831333788170472605441375400091746433979090423138368802410418934755569158948176857894837984095350409851098343681004402594665027559775968979983054504251458789135401129886197792711411413623716137045379643280430566090312382235155034337467501556318480672347731023804718940089232935691836129423360661351037827738660355271290782793483277080359301217350421147030498364848435582937341539134370355465311671515715190247935069491315803404060964695755027108426417659179491955641235189233631642651968604893152549503563591931817954287356440750433649641157064658502442200008332170188331385717687129311256429300006329881996731178163561117192449231853299374401980172277362308142375773546345211099013063053660702622552526545488334400943604286583469837346402773611991116112187802939458116334612106435783576993566569416172141003259731232347535353360869919979945369823473170277247175663827972478874476679233174398958954656863475339479420716216871859732371181537833002160907839687946702722709890501705277825584095115784177037996962488355604733674066785546652676912993009991560635280603926610877791658859324873663759691761354952901372121645262436899427956091913256067856774590296549489027550020401643744957436858524763737460769908985452625637690899922104718206820361490380260485613159131626330642630999665078910555568012384145898543496303242836925494903966451300993371091646442416354136937942765891414307434413537565274737863301157431659860919288931721335036145137035040472657930095143455617206308378889564243376629802756102537651939213192636810290261412415727163767757033211572236872552366658299739428196729539545560902217500298763246344845073741602963120376123185555304106169930955948547955698148427500720481278560578561062329618867605735932055323734569096764445262636627325593100269382217419091222683480987070492205546613243028889841942085119284668235841244803685296562800427901086061062927574303812525148439929097454024322851678615072365256697491875517201338196949891983396706397841969806598026002943394916929588461215017922439819008790609014490424703328952348364304391518453377389970501558462085359559623557348986766669591025493247366011449495221117233111249600247546628504000692847683355099025758909423284837163052110674368463641013028685938847943247725161078393896052229507504902349240248832395767469586075119263668137354566910622008979081852346837882424536227408196204985042181066753386714184964651121256055523423450478303753269740950896707898020029065378515287810621943522206749168521952063007920612497488877332599229039150527699285749051263190980900238549846746081077952808198603057211001563034021788982739824235052131008218557285789574345400657573176412501962485065832444042868273225909613621597008647474039118768669531780841661957966900069483733415633659042201907035514543706167301628708642890897398746608954814923301799474823676229203528975327436989276320101218636497235686326721332320031777280205063481254396016229931423367016724367779900492393963215531138285656321402149263801661963516912696554645404201426202312218974261450764204206589111935067543671749201363107856646867708149880669480371015704201801952726936921439380161023086313000351522500810989538388191531770433365062087373248752883897848911161350246522220386457039547737651806543532790212993381579262338664184124719862414253559793495875344671301155884426726258587666308435553140716828430591850828133807548182119179878280299666660837320494289265451696822050480792682793853323137002871827165566391027411025408716505458388931516398469688040387703213282190280582433633594148166850337672097245148472062628370473235591020750745586146555496335793101433478553610952924319140804538233604254870584455555555530315868690277611861882556541181329551109428543655120591201276634047778734774087853687688700143638292152774796908546735187475236543169199437680479444298352549250973629208508108292107618801425269947760990213513127209317268237939001494579329283651036102102650438765132748445183904922529305351089268071882679034598800934855912140471527925331426093061462515486785979301146143575463618208555829256790114227331068266507567446087491293097197810524748002590073249381137385384240965417849352441723328388113908418121075861899145057122939224801735917254898227749963849803877109310428918121069416415932066749851369764135019499792242866963324481511706441025928571774165070402587559366342060052044917398936526657219830974109549911092259174221572493989348756435703006647855891895360936074068084987423449027660212198614898627324632178284188181232760195895340322501582478957244297542151098417760528060928614912444037958235164013810961854978205633242115954404078978538867038388199863153781535599681704771089943088057650216314502491907881714013895078287106490720600833461466604343356985283008069531724971525868504795755575535050417994069419064011310869500027304827595461250467546799791825707364521435996658465462792106082979755137922100467206702124275989619937709764942941585753988645064470543056636313032043826481323957073596668418103952555179657731593961283337197012677226685048106617315629650295235697832212947538694516289474555580829202667667295838849716923396974123062494012808587230130738115701216043372569199763877284749313175378108491430333522507221737343104515724164503868197217393905107632252076670686200553946076206797147357159646211552636821509517738502704725372295245010293389884148012521324929018126489199502510930813823862383079976372212331739878915121157806835570847873672490325492995012229225190942213951022018195111160005657857687498997581112982251708116699122326461669453280236288389807436716264901849954972271029648733303723566976937713988857099145120605748541429113953383835292664577062690853798868277733731984606942223068523960749515325566654691218459122046781334992321550451195457570399693475773242115242456941546768606666513017549152222585946373764052780480250049171503288588986033911636140749829717467424207115512115192158721152113567645726770412734725531646690456160043144924761717842527411355885326079788340538797600957495716569166702015132275992258376817432175988760417470691505097122271847730650165078289336707913107272613683599659957240199533771683800265218830262316104761789755888276894594981316226367060265899769424639373993887650672291804626589404400388802901697806905936118246803978103077642450910456623979146744544003058937797535948140078941280527250504473539820952598504769748843442680292004815658688346820913636873983410488837138716934778740008033533819650264727066650334266271738916922567664089391985576235243060493443700761389287295762843597712915571474207064086380062656687379364204959042985803603269788442158786788140800573078446525735677608029168620205513398616085836752439868875091882624244066509438275091259899069216825934874982534315951912600076223247007045304212426921284897767642972934711576689566749922973817510892640091909756683177267691367956892303915941316250240669964544364374450956162373266337379257918975786225536530531150962466201004222730391783887264905459165803326437394075341805846414587182339312542459683314824734596984693407906017575340762827738398300143820218698753883933224334431823000117281662846371643898601395812415222910056585508836921248878405155113399775363426670110309563403371928432072385368051623346635120959769890857121110310836859440969792052164655619768351320529910785721646750549092982283413949546954690573011994156089838226011139926628917397304902296477169474880053649666327533404875258792053155187600284269256876060840610099137424646223116761926150076190844248980606502446060864575408790842428002077569862922414518279439011002722697979537998820382397978855532497835544666256622627514312195789681482419330063652916166839592469728116701114516851319836053077993677546272532109366593118443826069939569961219945965305638926809399871244167338779196472955770995286482174253755176161495839585293564274425873075941344836005804874082176695751333943853154200248109328537898685534394040099293016084910881661618524548963358260010272244549088130797957246726549808270623655055611440976835650456818495519773053230109101839425753669988879188454820389902076450422417672173671770411906975084856788966815144568671949691046261693400643589809541185270353415422149764131441809361837188373218704188078034549956578672207615946343628127157124375090084604329764044716513406497935385491266925448711292756118331520275655559524427676083045719026084004372012177249981160825959780060540246847237867169558800229285405671828278585104284779042414331032466417123669189685298612910113155375823459355506879720967433108130729884408891734487474490651715873988546011887371059584692128098185872572579802900257994666635792997120056942692776535487383086531566244139016734698888067170867603830723618188937146784910683366269355474205543465945663842730255645353168652647915862020632431138548767701042810374504039381605045245499662653954349942071126920723606987779365225075245053522532049140118535131178114239911349276815015013743992408509088804610582446504558985452088445341579771558345823921909082405509202426693850520903716749344204131401623678777004035079046789816968224535369499402958246714898810126345962675394231295513286082552684358203833759538992716535040830436775967097785214674879421043879116338959711963044368702719019630632804719852225977152707977797148357667291596943244031584839838338920051085145087605516233398518587792742201060521583565408275978260070643777074166861505114462111174169170446407230379922339710151468317541163803401077016971975225427071683693745073050868158585180069475441719620287866283060450180313643977818585642132579585398417465683589291583273997750004442752189553281039022002960400082569357287938473161375909301212878391927620535757281020698789417193633702160823070157544259889144340301556908559936070600736909022395479355409462343537947785941432522039413086892895818801713493694431724038371707357440523010542498588046441855552315989983101023595796008548540994326785793204046085203762278161830899732832481269796786454165070874658742512650481021625937208494862437423075579410712366039839113110230941723367173607893551813840306645562136332624504826203745082534399569654161710834432291260929921560769595001861169504545667799268592808128448835651380019591270845996981001909583804585518630699956316185168123764086892750397234719646902607677534566589991911799696933605585013016374447495166881916578655083331452415219294340316760315788147219787356571169332775458294351748159871901966634621846412427199642369647058675812316092880593782775546991008977925846279091173304249328492691811538033193993490208797248502739828980375719381138488889077506498630739164580624425701175540491904383257975926736384556063990551416534237646840513156615552631196908668304287067445120907450925376397335218411405923177647565191621237727935571601898435995813806827767515098593630930002109247921451158677911406449448757602090412778911236737062606300150612337723779351547946013903204475925894167189882593524253847621897747120462318847215548287121484796032644485675212068217797039927219789760708996884228973114661976975198326746103626999794757449143482972880965132434752796203342457292668120352298853432318052430232926767273800619904091037795376045830460249187723069699088341478580432899345140239446696354640899411614318214306907045621180996269232176337115255092093357829435002949208356675907503388867115906556387030880929077486233331933595042361344954053147888661547867665061087730331012579894213457476598830935711215902666023301036053287832835841866989878107022961970307627812298207792075308178279261535746101001650423565824020089825591595460173687707749650886442924116720406100908603229286646155459818701310797254252546451319739678533498488781309470212857487964972844265280472722892136100757457821912051243360476628408479354260476714919510182424667234116826654745750666772065248987062119451909108804134621439455330424717578491850592804067358313152992798371203282242865661059312587265594620986165144164411093804094317105139269008850662491175224451030277275292973059243549802815748732985412598189962540203524911456355992183391263558230221785048900591098247645124831091695199919136204213413503828642978254667802372164405199798856288801459471184392135553172580987022724127113010213438264984203071042494558662969889965112241124629923381429431296040024708440472990764273422148237175019224197726831813790455908612275262866888578685576299246959789250164689059606871925821135673288115418533136606288457947104870632823228745223564928106687316667375383692858860221361393583683569147926146712310591169076796368036448249012632475878052700350506425640898498739674310325551568119377818907591033252436962861775901050521689337957212926802873233978483807600102641656781019846991676340049742375683320237636674020103871426698083035860860441300277643360136921222089026910175691278510135108118763413342775253183792681715280887256505687705041219469700278346012221719170355682886088763383674238370964613536064090424416591682512597320366435366705175626041924305254485773289070348405153696946912042817146620812287384933408891241501796446918236066610690362601971046766222305843098002006050289464131618452385195065042102119182111193999676533162985179856624995966481408378010743822115695515590658581697561419354018946242804429037789103897645512493744501524310473295509665894258577731686396810410412783807810462338203075782440930574348666500982049572816510950068686271331903262423781749130226989479562265611462715386349281336531888435300254004539120541621037477903738542513643520043228912696747830088329543854941323827319851874460447646714249441515982103221103965381907547536281064144807216157305610815566476825529628506176453438289243488033588573232444909370816196808618549525045539851585584367006912235379804299038527659776958265078154067876206081340142935574263502979155991414930993842789707300713816775878913361185836242947579116200159646244475545897281054741568380273314392727115787408511135609077201798824025794883172054886561058092893812365641344564549902423162109909505013690731785461900053066048737282634296813339616344653371152502393062105981700755963122746671234149117556047422307031871792439749623722292344676047952627897953480385851605628010869619181252436778553135576383206123890707746001293750041825993116442963327019002293838894683365895015919698572035735068943048977745717225268372496276645668764569601792258882972881796831853324698218808450835923110336870646983316554849090340607789705581237052532366598126743028283284621695382360588589293771802960662625138076006550925028725199402266203876390596990038498552686976145093186035420721486517732766327099970768107706849877355258379839411779959728795187914427788401990456111815476415064623076181282414495857047935816837946011550114002342746484155765118505880780755014432502781154252570646413820545696640561903115746771220812445343592819438178294630414180612145376926734415782564266268350407545042410108047286945245454149390517629446992722516486236233765865987088005678237170962754734208563447877518673386735499657599786974449353374367529146546691958086341497673079700892244399967896978866064875344450170207342427650732596603009128933020281777068158488753402060522802232204401093457808824059766854980457700938174982533252041464449031393927379503899443358472976483489855226694581746007339629054970899438086029343648096609709381451897778134467977187695767071749537283395878481019816523061586642892405206101851357710644629766126581806379109461452062503847454143328035262663255521098099534494753883065508212272756731879254309197907223051083884190070622314388113104917819167472850893868239256644529329390058360943394665400297164496988930529146153873752935831988209660477229923732763360363147949522439432609935933684366234554883623198940972747208499546722975145388126233901963663541936984849182583941953185259628280556763245281356276814382038441804312910125733566282081957794545050713783828083655068289258694423829614864845592858557055550064658016278529504915065913686139514226605942709146007306843605848838462561639522465845211905992316955896336424386578759271153013334926499201329318360208005894982368287951965152662940509041019315440689886742245352527064183822434814862453170327025200447138928901940501786468897848817343986214150590256948878526339235778814247473075375087931919584834562837090683567055776600541300182552500409680160340528132350462170587401654623901668609492870895378277839250190809833103191623084921718248243936016690540380676407155257976702060304055364585737525271881863026984850399108274638207770866533194569981051732477620379750192825584540725669339715813539388614619876860330226717867961010556455549354730454862499639943085620980616753016952770702156850556694762585893234254911398099281869470273225598050432285188824150054234198021610722875036765964717830428977184029525256109476616344310373428832326163786162941954860284511863287529891904401924847807896910504299369605296500715282146299686505019457983489455331739460253363362153030120718985053194820369673109959432214754624269207975840728636299950300133518829011871727729881990359301715466866778311461419963667075616826799559533257422170810062552707296940467009294861020306671041118577874525245114135757842265259047838769020369492041846803932485584717040665992491153110693552974944256926141978401691354192278301220893733552715048420572055273364837425700559936952132428151701465386296983021219692031441226656206324674678023260571283044442718665726957251948211288232798549832052364865059411818827243087319721456888111028710023728038060447023191618391869801084560586802708528611788347211763036408970255442156543795690250669560594096668665011310047860415421818101384571289494633303641388556934403615115426637310512575342862888286199971760944134028378934171604385788654980866577514689656923210933611968889872293283265631188433945860900064456126187783769726213251625879762991062613063885783767743507910587238916312032018134523184928347849634945727871214645499368343166428884878252087972592510460244094764587176178800653831525038237424676289728854399065374740925545828502370170620669505405570908012137434175278960814152080214437040370504744894434636722898016399143456033026129964417146802978680223220294299154156166722222587782094300820099970703468533044224463544926773247751890975023096679624085818255392770291467044251538371560997165511862861212310402058614205852642158446743794669572689335253244855811613786389110827818276366775240193583313451223515219774215443316714084598982735267957205438625278726848047353168750382382497655184737652536483878053081337654363775411794917615691304390003030770381038566442515319250394272643075543147759115307062034313292935934847748259288866259677773731758027457939500934249962757886258253631093716173859380888952177369698713211183594027699744708874963269691224280496287078839499802672605813992736344927408464362098397508206510105591873020253383389926685137299189478482717827834957825616512826848076781906796358656914281940050832155242048338685854411186711119935202733034327157787617399704424989202436135745724296837717044158234757180629599795309821055326173241354752960536175026452428288269936557910016091496672703254057040364074488787624858704543622955875095094123496281354048370474247359238460131879878044703015194520063670903684962108520919645542094893200963277003398971366191572512157957504041185053943854959112101998572345371979352059991806110779454817475177749197259358758160079765504004651190916778491372322462827557959938946556114008701595930031830665305941010053418598677901093751065623684238285044195307067317961481316268174334571182029764851719736476294052469783495968628324237171157229484375620486049574065226964549294610065863021180556305159769196280009838754629930947847658695211020714217236806963933650619798963979143678477421718935143154244035627430434203657201608182632838559494301660199244531297292707819303499749624430128373291444490242799219190113277499091657847207816928274412406453023334699293474615608697866508110718241389214042935296805934185443253326223122756058113556922355041817025968279291441421752312793051556701760004296117599281274582937261882513943052652420974745540330829122852515950881208677774363976283091012235122633677724490088945732702384508594002529162593934904695833550358691391042171021000139757041095563623440908310188095577094308469935341870973897759354050931476722150663852579492904129044182985580311525839954960594114839239363508580530259610326462075918103323771938792331510407373582135458541734041356672059517485222377503322020057322984994789100294594145034556647822556472402798306824467965598890594622232058596506680271234214364414292684856628054253384709266790287818630251951933705864781695398497599797891995880470862779295503306499985570034907246895122331234163050368489656827753832731066948055089181544006561538347776989537268571676032317453286886447913266521889750637469600021094226435832126277900094319655486508938295004694047306960834176086007542408979736339034209673687333621257649458889420621902363429903872425558813489893085372828038604998228965644213207133467568355043510756018886884503238474347752585571261633373554628702106875690413205669515852426378657658117976826501393372915108949964493819296145417429714853059552213559152399281539925027243871703286134311613586718118624940211329899896277017013914182785037100441906704208989972141455291300582593185834945279893191292304983005867320575833152167232250347265794927290995203889398642795038176441985372920373019225688472029379527740906376396611693319399901988432174098391434662887656637345530557339929078917314789426896460544314647583376081331717457095660366474804176866296990061984288092199066514128380913744241338078623874541681551373687350241495182227523471935403924872128680533602700581645985541507044400584267521464657327523961399760146645104556935858546242338053367671422268044027379257455374651296583247510073740900203431924777071336562791976657864539537931644936925649998031272748647847420770133154640465706266034780306872897777309991157112947589124702201267510655553962844081407536893821729366175442309473298409350128537511587895509935190538028574034384679851012520487465168102359285633767876964213624495177394069413815830007902405912975782985368717440358463302442493232140220716554775538777873931732405820937577787516943142564509422332105950075292278734596803287217878414251492373994839913371668275591068332312712814365339751682018595421694072944738991063532106253179165957267331800792147407301338100255895497458807958784958938864315811592299962056084531610521171536738455388078314727991632216417704934147600835720008046900692435423538032218541078406163071463244495377160669247753404880005709950529681894710295243862818884066715194498079687647545627814849118490157557503253379069282596587074360769674585142329115258555879683469945901524362546772782568702745240977186282716617966679678247980179277170417891143820967510491833959007243719513709322562618349553609996031832872684528659185372962703069798208898993949322143838701198332160489840431175256146079322752328165038407085077719826352840793966446336919239116091442665275066798929996914939659965355547942345129320040286004393736464752761386112298252207089447400156678583502315202007834360329702855874449390183148817565292045608082308017301057014706220183146194503611515392669072699414855966805093090839060965529401476077384192033150245642922194212409876570152112793332564364489050985386030998589456862349346702494964846012992911582662707242388683912968189618640448911087990254846422307775138530628987235765396773988201553506124573329129679486353284273535255163490929052106424372138552682368702537017127082185143587793688912966636941657182945924507582082475985495734835630737901732981562741033947335972219367685472934303537065614788067540440640797111126054679099140005026564528716376310615600642109364071382737854048124044098954240475612426450144025726505628470840043429179521545184103157018112169888291640256990915400250448644313004373442266004064175800896116801228191137795880867817570960012760516763709078450132087161588601984557789001089769368729161511875943534845985424084265242484356705571118686997086505086198427225301344410445499970435524671759017981045715194391048691048389752514060495916222419829127636689231268671139017851550699168108565962712868859345791735325478336257401664027664489519307477880655082230199770238408189112401351545431822306166896817088427256132772830252508534110928298999732542281795654690256266804169380538682674314412508218383007313090475723268543988518540891426089142857749788118006749501852122448707433893621811292284700017032520680298624400159327093198212764611134691042905425063941302024441755102274463544553700337646131369579969232706680603780287170210490181086275629865310025269254331640065326614852018991155135244266631463812166289829660232326549205477976453033503296154532533748971325437991984211546321243532405728500043570220137493671147001095326999133083525282027077129747223015389848759212384266896240909485653474562425669275057011799273166874922441187376776989041491400548030671918946770388085192984142575225585434687018226582374389450766771989756390607877542948277853187160239610351013744430779739739192799565368390238496804649608530838157032190801708382340146386494241803445788471979969442967042027851712663917328246774609310554758404637097824434113168856991066076293126982169742147953644291670730671390604454672461581375637320879293438491340787328393092446601959986103919053727595238283260578784375448248804384800787480482825317521685620102769366815492680336880877687099975952163298562017150539499937732724014545116952085818513497127522264801360681657436891102964170441774578926374179104735915473947688174512829886295533854411697678997424609722258204263162223394386747383832193932148751185999637376307407754386812538123703189268040264768673685991644924466449732857946843907864426321072058296618813392373589705631103307074348659968498294787686172960903579078386561222032015142867131510940857950644286429886056488961927934613114288567475559079587439147699431208015306745400147445831238510227130291817466319800524258994855754011959530343293557641901193999171866347623133934608074454810762603642588043838640695846080508896609529664537287832494570542568948738885908785992675726383485262462282112825473435089277308104072701946956797779353326796061851044261778269849020386229877754191388185211037134640658156824250988889888144728596335216961134348513303454299678822752570382703988173159521080561144188635381224074751525108523420524335818188138978365589957131941458751336098429384154444735097315462236232084693454010991642411035594898813915477456874702641055645689888882782343486537367276909486580755934167755908881644736496686593808332959893808955179487303053599272626987176436454661421079078798343318853109328890206013241205408962316885031729132132578818739093619092379323054563970475318504383492519363287435311478954548623398863402082180410345174407352697598797292844539697159972715655213081670216873769215190011603440755938758599712682123569146155819287913999928282077387186970981488828126657356233405870355174454462699169364269420009459001511210452742595837073318476464395025028529369200975605705907492424033696269747878118923718321742091170620728986050045383760634169290167227273604064135957401353195182632700033658372472709172385229863249264076248713640638747282897273621229200574460268385863903997825079063807940098827902401860214973496155116579419697908939812307623529864987601137994506951257980408112380361490522420615509235806502282228430618153952509149758280349166058057970720870638570183233375716456739894555468482417666921945099516350057620728072978218418232186248262847355340646058163991333326630504495275151721104978451891091770878398070554913048883160073124051555910107423187592721612119304981022298106331096831638460023135525668156054847352702660539172679653988233967902124354963775642995225488841607468766353308424781592669284926039696959998827484414753956825355218888633189947329646887875693813076408526333196615638229496586182972289318479011556289782321336822346939430131491399163373237452750479996095461574019015892431530175175164169910502055177540578272476805343883105292734276970316946100328586038197060556700443607536818704883607173221102612527915318969671136517237972988970569961795576619198468214753259393864846268080144374914074659451648882602889701243305436088633740178309634144924444937660789500184917444440829027916553459761153092649656882779048180431079173065665879783377307825455966565212561914804650517983856900662419730834590013469295405753071735502783521672914888576642724607675692592384757670724557183750317389852954369103334042330881753750865857136602532280235975457782123512706062265474240787546380083905718191563269159239492667929589328535393687312703567051557033441604239591849464217662373926579225725574725974322109428791526102974668447520271594191736097937118422346073053674861348328269202151401643288248068735767066826170860610148521489869045618248573459033837256048253552924485630892224779135266075585586403004407785034980691953046665918737781807997469781095256507604978771086935383106478544278403327989793472254385911667358099517268784763546626067041366583656993183900057563866526828034958569284191131914639367059124869261476368002186729197137711025443602536556069400172226908425005529556471247130802088381776542190462505686930487153338491143801077834654622234911308384889219543380898311484455627103554311567482753604552888147208017693779053989117646529129082429477141544448897272157107149931839789310652833618346101370606707262690879053202638752190534585838774977440645665385758862787720682227791619091731987672404963766513463924231803061420955947519708339899806409473554258683278707802839806352725053515981625477947517965868662348593010876038057552531013592190160950158681987769162312983656265136802592866409846735074041667646565770511703267259744278325995114359396951093013687632102367265039697113129851938967652462242669106139957935913251426212681826476876629183159907007939888430142739931978170304178588299517316313955065653733571396919504664226925511179403607376330448163491164588581401192612014776944026910147366423772205856280033781614374834922613562007825378292352182049679185913768821920984716665862832064702799071517715905917759909505458918056823534414940743409303212723639805765894715571747485739903065485116499111570112096930144649557727524342297022404281693487731212964472999810674264084831570227979192288957928161504836899955207913439084249350096119616426712000044846465193856466063450433664367486202015087113138589639603195540180130749792366405995892734318802022215404798368045484615068245937841977543420566567835730644458024484418544426472659649718658151978142797622781018669061222634025735495286317006863405789962144654096002962475712244887070689308789680898529064208121949145942410134700814721603876544412421647942349097555641723919818253104138568180185262842998866533580978289912276764747817256868966658284218737169300264540171263609303893661253205487379624652058507397902068384071773525910149660343242431652015044028812489564279980948324067931760860294641329927598710264021411451819544648224634643817706175539366410630696978896044075586918884744361699241358275570345121823096159294562290769078239332297967073706048773430539932207041307708605255781821545889317861912214292455911331582825468697731155798715277369271846449444977765754450720958459774062175281939290136803746811845516876446401293920033286165512392553390854799306421635125545222719956340375411360358183886586110510742764843219763879587205644963410730301459154462025927429397118493640583451300802553754868724048683302188844795863188869766208087758070781451137041546365336887592138013111846344678280241320132255652886593966691552726652873145640962944661753242835533946937209409566938755479915479837548430205263516801145479267569179322234891811674635228310652950790665830043406787379254385277337434603453983885005489142401499219872891111606507592488552699287946929465987446488853662622672424525440971301238570717030262242957264472305705484754623712267162559058736182553718446954074318557077381693076862039088573095036240167072483597998035672807420408765894534776191183276970879508866914193274820915398561774178189175959503903889127456173239956499736978158582398054421128844561512420169861856346263920208141281558346552656922477025238218741997597062388694495100641151346346645951046338796108406982952678613712449680892870255774150866464886906061157389499542017043898125522162584238557105787165585629387168261189771755149272863813732588329648115419522569548702806886694419310121756146733336276875387162010735296591093443413550923152374608086804534933924001284730294544860658051780704318854423232009295149436431540857987168966093822829970983895039007032831704950881460291939820462244833119543823812402323729064239723490260693977013553716488434817644305566853606429499395532435161181153694982539446055516550470584916448521635283005808821541555441635788202115225962347318314869310304397613921246972554205141834697898824054859621369797057628005290062694659254742845935133026189950425749696044949298130224226657497311108630836040556054452464566311804994125331527424272938924805685612784791676039940247769591801257357696357423811384913815499683101963109095677909471589968007579981644573668577728345851745399681589198416564670127692439985149907293580410269855197705895514956907238450935132636048523273749853153408106878285335109367698383894192453301841331285663882316835553940184711887327157363969769947703212961099356090405195850146279706455876810408017658389297994323902325190492184647444063733126992584705580196585464920973222273487754971950823513489230384007377641542308114929914844248497756667191006707982133240385853920504779859076414981606567017254415606390156232364211092472913221481561193245724854567036992389101047954150396988939392141159069261522503058762597221289452179353374957095368886383753003890746918342713982084372687667363577023469849543967286740957246651284083119933990713158993895295970039537635789253109446205608858827547434402026845736130640423555912318463149337781486146158164050160635393946067885551497762528953673371480438353679966101591560239469948756981492742557474972633231282575020485256607416169571799784139633030946356577441875800080520116707264651790422652989580480383995766461520695699294386416990692644413122771660877744195382581298462644832470123334558850297328460180252285689816804029716981611982077371723617062451685613697104451529259830866211621431266210722677871881459011374572988487983988327098237107583360365591770601756670088414503992084283436544933701918513939362753398729165088573179782715625810399416910290834955085164114770076656613173348835815671702670492549201712045971897307750363923782521627478396181106127338347230542259491361265545480349540350204250368221271798088456904160906356092426647393228150870170184912218135783380416241789645322647197728858642639479593928388807121756481014890135556761676614239659657989974677639657428631833531568164291879927142654190812579351864970196303184873379095052554165004973897387439121331235860315100883807733732100514338089117488375365168049563860491127789138865385367096618215184763324921896552679791117303112705786472110203402273702049270234937688097719672887945369515305692724467612807003550630324130075541881518245064750742046978421465572245041638379708038118000191343476797681593570883461301391158832651610597746957557466520133086560468313111697533602134994769986418734000450265504424181240252017159928325900877501749448353395680193563342982082211997474442432361248786594188190076066705602268330461274189520130346477576228741572586988449376722708905730551296499663471590311538300412380843129973715390921682966712706365289579417416272479331241721116205629499218481148125793293660619533350684275182011198986126864267315226906641093922791917038838829488188083607684023541292726614457166176940761298011912581008962522170473537409293786394675300091764113855827598299070035362230440587117471010828797882585437668129292519922782876183638876861446867386195532252301498844006429215899839581377474951713550559967641085996304959153792227230440874098539434313022003689098915212368035528032734534792381626396891078842838462673940832162905601957196863259120383878734753337122761458226354746768159816032291797403509419612793741662925771720466198554046913104120121854748911116390849308667592417298039549826674187006006138915922344388912519070659138341662170157129294900839884325060613577706223691449080768454179532091364401725558118978783307565588069329966057152453384747788817239836002161174172165388566717160637617295425775033580469328655068648763255176578434525290020410550042382582519043622876695472670029703868418245419120586373508634007651893062834667323996904130655500463063277387916151015589957057107053363713308497067330274370369077815292147481117234351957788582872504969962433565085049014448784816403401349338279444029027094471853282658921383818356869487698629007560444620980838008606670739904210002760444485654331925315527963696501181152876253293218190407709524894567358654989707296449411599989946753246158011877493667238631733234622203330180817204185398950619722476481589015734710437588009951113282640405472865543284488859515350702425032326142831881626663107160032515940599717898701911691347299677467086398787502274828328591917453544115678513736855320287431589992276603180679794465828219885249942827169293843573022540238340080709815936983328628191922168545763746968830267222175383301095215982386648949656774198973044756811214776236656338527093827614253635092142724101844143271144038473580344718738995236282675284840478567770530069852799836538340134919233456091853832775924154589380226129082510628245396802447218838239699302678777325647091021437494885782577294960764620276837763555835074018457337705919439195220139746515514091299156310839712858284160868641557814161724971027512379843208750982839460314033775615028971312843711844479241202188768118364262185596232669365456027938738105561918555608023342422125734033065332839165901727209199156533753958043322541174569918341663793034647497306203935424397546545776894997655410085009396325761951317279659076506327609911094549918660288256836643720814880209026564828469049667911214672547709200305501144907561885257276194074539505999657473453030279766176497400070606925846147078282489398030277771933820859177065788918080435896336618425684105064235495758304295627941904854969924816166855270321606926132252144446577101664163938982431791424873848729924847267297477019125695372929028673743082151190516265813289362475208956603436015317739534479991499850586742467848074127887201277903814266738705069052197209465683041571625351879497290347013457841424718924009247316548868529912686501985761863445776352810254702701624283224054858424300372977668715600731617495999490213836805884989806017360741019266688050793618430944093578990671910413937127874060271764102384881139033737351101316155082651674278663762589036335218091444676872908059992424604714717717800014904306579797404403321060335871507965605267676328845893333872436418948450807186478037041016629275508915390841857167993401407351880168639633050338989778176765656775900003552709219659051920271488721390717434033461842129503338098518902609281384181194791922646856213241350390941239990034994376736443600721933454518011540598237004293690789592945414201859091327136780514884178578952220743502255951903526424045357044678692939740441136796725713274382334291466113362919376423910439426518970209386120871225754815642972651679819777552992318747343965464330233179514611697453305274980743109312507124624386090900094402367960138968499489136644516374615368485986199439403949663662621531654982735432269981829254470613939479606217555914010177495644657321901610247796563989229035298650621571580561874389524202130704793573028455942666843151656935466725232903448738611846074657794267677541274183633178367046715492104736038017018706361835224124032924920132026103029585970874654875904083598719006273835025409673012792192281036364026360290544071536327826593317594756409069094603843291154704385587812529029181904460326124810008897727442896693857947116319546098165460094099835992152157555325058125831325302012601783269259283258445833248619113162898001360793045809788957006112679096142774221161720417323319408224884996939175417267237138590437111785105355537915445241287441485722419932161302190086978592068284993451418567390486164703266665412185643343708684099884364725569065192334257702846770199026208558384024269670548687569918537109555993712299502411774750185236675322685142040621862899015519659202696208134583697031730189214548034495330977088394457523857684872298503149838501195300850433782180286831768464801508705340023981752468427864684969376741919598584213312576980970126582745758298166346870232300107027094709489977006131077486660566772492421525812327511283815629563571944772726828676820854958886251534685837809176053253561862114121124590577533171803813346746596590397320128818758401175858816374604279690744208816501046987909056956875510767699271108147131007246152157156399344657382484869206772956209112597727388721791576327454038954458259228194632274893059195896230986173462559413539003860424139382938434946186530757525656943890191427014700177968906486423672970186007108082971371173305705350214615858190779110619959857554985389246616526726197815046675906954462782927039218383360037739773632991379231585575559750163717667229728989460249054424752377211987643638787388406723039299633246956392131797768579174611461156136378900809989710285691422698074779170866848468819335314273485090152198395794514242673909263662979026269161759607546673757129024906609818050585232507339356602054269279885658241713535833130403312914424532712420802102572280680446776662308347020993648953006942917061275591003847669689372522885277833907718008629209630802360148516476419149681457857167387949815912502029057902557620884489989238986386675456605087152218222818052938652971533365440447783009989457697391597879112052830725887254999769413989292369447546506295889544574570827447486118525196386258335756025211466072819559652854215280004181306145118605158809272335198438977289709439591278642884099750554642986415770298738505234930597066395123563179248058488660151787626650869574938424830060467485699631745739373318531916124258040987991336697533738957486016316402478846066838955180271735294543227995015547934175977828896726008089728373553839474377169051837590953222973296706533051041965878036006276129603538334403767984956141695163360040678542115212832255185085106679970062057195405294791538854597460802702414878692458713927796425503107684158848683954652497575147716708487443837979907209432268842768658405981992560069736656030724453607968236933416243703712158266470176948924908524973096804432443979395263549383723350890486601235914405778616002565873795487707326949328532626604426317733393520465308948907265056951480296902942758020453859644088285399981833340404830866782772245777262218570983944771843848391477630801265894513875561095834357639376688776741347175825022489299663549821448314067539529961537029499673293594161417574209775462496159071625067576176941357755755579105131226657657704537524721327058233664315747279233683480115687982937113134541892380096456834134307877833975295548219090929683321599227722297687991801245693084057804674197614106323444236566812568815751613376966624577996860156660182900342879113314571241698944938158517229502620561253914837959107241286628286959540790047455807157397010049148749824894243508887072884565712659987981809484490462659437604851435313545387806945467471529910074057020934547978896540585294571151926288276985561370457099198080077635315738437254487747584713725432480217013923235653229191467924903388222271193391340178429603497792363695957830749382444070161875848809876156324166599732018482011452410412023246486197623352688114325960341409443937912635901122951036478567220904254157445754642439504613193267579247339327510518549286201768317790950808200494097478053986057502830668382417013220315279072796191190435332071269102545332897000826007865967800293201961196648649809681681379379958067177210275564210433454586766587395714121449077824250352904701944311511760756357288608199038605098552306254938276699842897048531356904343927758756211290616396917001452712913106129219484391101528575881403603541444918307743953869026412479384595632360737966764735050566286355969095285667813285087662552055391373267650607460371185607740284225539037396536769838189670088245450278042068076224079836839728566732618668231611857747692082600459445682980510779709347652795667910560017261452980547675321353142409575052985742700401765538580243035495509338886511164568832515205401387563769944407103242617252404991331937968527230322860195307807782092883581402020545171564969773937150303482436140602210539146569761814843641189841931745237618071767158831352890447384101593566246753996674942599875246467869858438776426483640549410894013220298926706099762483743291892199581493324634263091485310338607320262490794619097831993338711605500354058607236311122068511713654924124960053937723497591765787086835749795516226533922256253519712763925358153332994605319867292338520779303175311382462395103139418669225678323454261592431529705331873698065842548797285190011252871826974997973112455859302691074073436585035018647986036291501195256726984057294117909185584455858577764644214512971527113948191275235472890951923262574682658390479211240420025920882742446511165460026110509903012258458028004693179725518446004228954104341556271180260576345964185682343219461678370812509115937383794981676558087180235390916620795381670842366677817700341582451861422699894722535445831080999891906289420914611303322307564392106454256830636817650688263788329033735182991772969095128546870493418029130894805310031427310155158330375306133992571470708167544756710626813700846990693508172574200166074128572071689420404232927489518729281884980074937520775887557205674015536029346619266408714356702119131963860909112321531719674582564756178454791551649860009820516295809855948978051357917096737443290086745952867701720715540101798241796415443490686308196492560225499789745658110213029270439512176607164075692244262578384178847859441933525139424451346827334836756483601682630593949531910115648136564280728248534205954718523882580285999081266574830699982685010327744182310618246558616886517596576597764138642053255415717410252267390625432597965486448492282283683262927038799098979899520463269958535914174140490663484255658721745684071506672393102499837017415682141302339640757436835010134427663064247237375070638421467880879453957945989420460884785567074900985749371931417958721599533105019896893915380718909408601046570503509422975969109331615791257276182810959033050992024852759743082899961911768843872593579874700540318294793282379021814311723135806629410039433788139653340092502033843845569802716907169636168257844324391015662119623450838363859022973276207340676559781491933378147684927464838307651767455665398510905157685459508689281820624411982265194742535541623217275161063895034282831369663549528355597081172319727446164449183119021386148922985878869439333605051851699609590997439275457414233505370649511951603510754143625121245954538450306159252791355515873027927857685339173826809153052810060456236539460532807381849234878900136260851696464625859090291689127464786624945118832120863026549012328649026646048116889756814016557275873906195920574678009029225284219886528088607231742307501333108222301657856955196213995709836388994546085038266809050607611415981225560514487256057354318496899332146326320888684785121007348390192688715541709332069979852635888362010905995309196336090479995756656088794644655592776007434468960252294584865174001881747957297375211593069101354696643597868431046322296566664908510718701845159379278460747046817272751006188698121422260663387158789469276858375417664989180148919534531335525745937268360643683309872712588329941278038281481588125257583015577483338114858204181030451348873562133070408457334282150689981315582374506746068866598176174767773441184578535715025170269807452649604652908644755864532921736978089784912613645124222446387249785113696289414536162372875721410342112064383168779308167912365594494956799709875683742763634418205774712764067577443290463703126058383733075024124984644561486829696952631704933355499812003348177994242395419258798053134969764592225060115716893856693317764056055420875423017118554208397876860685759774418886214521350917037109088766248781559063349054772036332996776222628838555931014836314834911188600404421513197544572120240674255101342378864427203852365710814735571356548525513977902612788123037187227778509076283024241941935873804001166008385152727593895795764726987919615365957833240983974141417602731635731200514457989513130436632747637385940066747940863663222538766114183023279949425137082412007235197405851082508809563730842085835542829617164656983786826927954159182643580465066371169023728805635857396380015234793903127081875404179272919957936942640342483266102646793586999571865477859677887966474684084260809100195052144471100344470325313195649486278082601510384532177010535161295790381266268236453718812285148914767799820991016221011741928651771616720478477297008695659410298569623184483505541521660704285106996186330305083239382038473425893444465861068198945959415979144906178578428790641477862869790691977190108050849973313888257133321521066213916141078281456667505623070272453936314832616533153653843726107696554779305450965483107116629064036738492675754639995742654159187218221758134866305170032758515849251520513558930469348069278378677585823745078905158574862434944344599837357890624235332791111420719356200757615593807023624597902763740029022740254235932993581578351104935836054890765187904792964317036672205303851618805710814678208598913130200358328243370745128095962523900588294029726577921483262159497076697825484103529050269055271593950696361327025081687762658645250715216281569124160113150268183821239895179918276423374991923093258353561152472932904504885507760628801563044789247890426208805098864023736529122128519685905249260801961248699547249275964664440317156341115535619784612315793533251937489826885499724060731117812200240616162737604059756776461837040233926327989302614310086409214034720096103764701372372005125380446829764403268537381976864224604777933909181726700249357754419244864092744958430471355275822964397140012303508051925693347796800810167052751068815097067928709668224218771273201423112419431602238112895659801420088360342744294233692639334829119289321717010141852371293992859502478096255552761528335203591396907358602958083109864242082788312836296662022018814316377963186047915019354979999822028308842941459001742422458557322413391617628495666995705959956937368038065498290901030071226249139594287026751300046237403595770026489423920180846636304905157429513947585093246587334557286987811997204688222705002641921184760297771952451208800616489993941985197414691231326854177728944737744504961392399618424353962445253114350428580220964382887711878149791369599039728518132859545699323994924292081642695165875670542444034454499162195394636130435947816462713646648411139458550114174362992061614031271135083200613419357248463765503284873072407770912881435454104566569391127280701895057716593295867014911908988073526771823909909807021280448062562250240801901262181104991841507969881395335806469298937406620902712719290217905542497636876682618285099685864304983485198943856149108392692628272114392699040736821984939221977030350639203942265013566751169140255926115983753944841425514547816395770649862371454259117401652162148440588854946891068828916556185911275658162975364736009459738730042636237563638633802065269023132241550205514178372256007880995305168719995119190919756557305728869175685122169153236588269002683206775729041341280914670312192706354670650434249358319082791666898666631483218570457491717278944770405399077224197108748362744566725100882672738891694732556793932607248072219400465154317309956274421706109317843819397330819757304363083750757765384697581666103913501242229386222488655547716305718040968770031181045439783472422230058856618336374101913067174614843379746596956565805382924142575937393769850107535387007882139314814029319722073835216774610606048387882593744349013975266320768871744962351256622846415982357180877448428031378598181650176929556813619214137946115494177386658283742135477118692746069917451017667316162083699528643191132955554251189142417061506115092039904525570555920191947509508430894493483611500153596762053797109260302013882335045246672045723333873369941112461023897225361790366788595215783062083174730654923609930714561883806579067921022781092952756005812835615882751771963303410337510557999814289269815543521544493269787938824173527615202567884497772683358681576902681243815261252196980800038698990317891107896811979254443745823341179415419179284529310605815511769041367673024676279073728927030882283340867256728500189955726407245852803450252502262635550128529983324514791442137591313933984559172945977238983915935765382504795221560882286808783072073040122048617105450497318267436811614429266973682056863063370285553976146972216816186308953957244816348263660949874182529424708194646792951164386280605570050819246795917641925945210565656833349468903930293276393330898850723802117558458011141495602374542079810958790006768421332649898743513948918008440102672736199039038939983962275360504370351077935494961943396107499006018863939533616477011123899936959868814169531683225198677377390858964609961166310223753480805627851826426800254969627288814418563893549986882788711393725538234120540882964958227749864108556728544097675890081927571253033458393106125640119670189327023964405094364371498243748791083109154699178618620324336960888335223259717719185942951412061445657053777049595987056855119446124523644379038768981260256899486736515843908228004392666030556841491452853050458042838707658259293175963926458198984482460462813908993226636494114800006757940462981601455668704301392563176501598966514191134029725965445027696613031939117707995799407737094591584654699355843799830358479840027851591911020193486814020963530335516129642845229008015704110635394309785730767646064216124808776250866932271082855351808171486895359154181308717909428975154577225432842843406040763777031605361689385977814998257133213557366233198260872803655647473912695295275010097663701508017325844429486441500522643411798610500929814775611048604819786499056347316223412873528382362322327655424118584440484393523770688085440868766597655865416600398596551184863976223589762015753223501722976094555515468689225098773794529262031899755803733747679030333060898179970877424593053855416497808249190819009594169093220462571729782603208445028788311854611068181941935664190911954803327473526897315596112447168683593445101390534149400926080365759182306476229151415945201328221008125719436194093671902306853072579017474593002537473871521362999911622719443300261567393945161577007275389737767918136794863224533036044658746876074144477355452535977001217147337823314539324391687699725535026582972887908154377954397404636512558388435266205935998004370401038335322117570551139316018649096089128662509586687362563966207075484298884341695660615595921879679204387551357759183833938111198094377748879158101360301754374961247879220525551497925302047045154127829115621482100420011022544355825635096539863067404941545388443789529494977970009271511957078534663791272832520996146220442904506321979606841232598004991538627626818877640237448263972792282040787012874683971593058852088087123752193431252513722780144481808461337635990713942170245703224939037406811218996109359267579869569358519528369890119100839590865074962582521164156006836166263806119934471182382021089154125285190881807993812540898689270247964669648404003691854998406302648062002725814029200467216497015517477110634134655375277672689675267241758987044599027376659771264466903833077460844326964578872960189196305640864795818267770892147241429000244818755832491430643445278704435730641770259862251729603947771124808398696899243290517206866640022130950145568364791726588953122247018081431886256076946535155238518070348840782853282203040854358467798367560177412486756347305301568642980979213071199231428876794284331252728690058672861206092967064321670054169720650201914686580088855869695682152973176331281360381756765532958437850735190438708945397891873595831763726144211246972142893321590756127457217068246283536787635614107129573864678317781463169087375573905155509451752834497257009236363093813233451063793276619920095380744215481388370589851874314392857686460165158998130863567893258748075635226055609313631422823733410950373971294849892786620847000822920685211567451666525969834602682122923755321452327090963603085013113722247225988630313926560602851614433088951918214853841399015626561877253086772580890394327189761834273744803445207471752051558131431958088911137698587338810377719911861128657437911448732527489635309043204191297588243433834667594964855806236032757497022849390143900827891206756780249065946228100669494584459825197352407175595991200454069478747837765939055490281878799339162527423159175993262725556389305840880644126790240027818588508712955926196687717733722408328384634893109101782594114357699360069009231725264023216640590396685234175434490955205877055035874833277954305491925369581845737278993499989946350434943706256450671275866704886360040118359179029257319145507863565328600406933042401135021188217796119407786151712889897229055536647081409866707944703314236834707785460353858456889379726161098348963426770765648653607532687604568205670642666492627118916723534898764806732342173002611993367642210802573090978158982825799033417306342087607313753419127453411491671342831196901624748232187420570408518526576379092752367069982673272135778629729696746509876834082497694801855655801160266762551444759543563348553535868052402529329452735539661235554013468185219755814020483036929032945956887180719059662511302408386795355235559161036474628541272153687410883359973227126897055758393941680669921610981545372281898248995972074262243912968949199409234834308555315516608835989549485025299145142317909101261812327247006382989711435357083248005573419432848039296122656254937724986384651546934134717569192041352055557015059085041464800353922989554405692707936540818459384583054681859180788196189436875461054886949345550170390874716158426864175808068250962518731480948422148349431746895185921581325364370258188968640368971297906212660968715586431247986726847645997347014586142012875227200433900792730607257467967988601745216692696851508684373439073852603309196751871922101684709747203182015383466086872852441534533106213037115932069913920355082637584686254806130923190268692880250819440419153139763446434484152067080995163926093583237280032026913817114299080368352114706619307296208787946774076251314887247309206652611408496511380470647428054801155922876710422487548987392660617753449096089538815253138393236381553545087417423283766487280955829516015296784430343542329415199273622100237582488334508481378288337688366286652903697100991696800677583548629054643338405215613930970115568836135573052885021716356211611059478502647438533720838765898012521347652790392275473257053993455692448704566342196670933180112506512704120317418589614451754804240357046040525840709051815511420807805641501223476109838292457816095717972591910242926748823533127925751359822612779820552487044754605237527594864439352056740701672584725260328801825413813611330066864224146714767073052077316027634047298716673205807064015215282769165328188267411151408367668746545945276432329164970208109583147465291766474281866799209512072105841158628468341602470168513307141881853579632264597222679434811597289996254890941926164148536982764706135814887372285750165300664508290129397089466774506418474459405124998791670995279885909052284180589853270976378986139072849518497102162335575797233209350345359076993701770020696960558459294926250830882929353633835154105685428840976790241369434416920680895553476259713226058366536800052621324112053203238862428496072333001128060224424018017680541462159595888020168976200000213672030093611640323894772601427362334887005484702040400938085808157425687649684290107743954559823491725401139576834195248813457672948356338514566706876646851807426164538762166967428690254247018398299189395395214861303969771008880443002429985649252924520061645492711624803134219730299039329024509098770674557942895736877770401704156044399651539639192918210441727837669887692933229547588820397330695473800350980932107395026147945521724762293086163872890694520160380833035976384867596584586342146829322927102627112491789604683684723674315931221944337346085221169244810145712002327575647837493078242200924035272777154096023243561835736167979431273351428556933413784031859772150662092775517067990601628545158602967859854071767861972501900119787854501259902987248538410451272766596233456194468635642460057444819072021947525242654752840486763859601530756604088662413034687135979375896208705211832363870497270749815441524109051818648651598686394203464867081484519242313529068697026495033323455812827885270561048148693863655585124208493774023868426091248618056465232344529969400211285052568597455230882560023837034256022552785935825919341669513897392298203385886896005475782021009790434525223966381836090602204939700247862897754472847175021977695679081660323444775136000667585294074435856160604202717750554690372393013289181547731322450676368714579773513359959751143932952093506292834122041837335614606818555197153945158109419707606195391750331391901797669580216209806121243111014215517443227483044232454952837593885256160524708047021424866347059023007495312793121913769370498394864826543744738840604338297977448970471153127717590377985853273062950100375628404381030254806260304146445767557944068872966374291473929507409241132021395162005130928215281271991282274813169569105976460316816406545848095304935923526829826407860784907160939976209387532720619261597829251174800000822911723790715540697329826680371792114061144571034129820989595591577384611271764507623978440270845712741492828375689430102410588340734593613915621085306425465229777879817627003929049988235313553913282232046199760945566124229288732532385342522180249694393457736022700870793002156662023377784445302379248011557883277966317823515356486886050545558355545487517687897153205352414840634894142208585285822637006336887238301000914403278227019637640065945647870552369013230172834371679788562970461364438426075486049688194039261112636730207212918536033205604376340724442267665371842697211290892693476689135457985124828992004125859184744206204533404572872690400886312725738445947858836109917673316051138629265694363700479259733465872881496678685815648792883514959305215043711497981726042367433013964650715920718942756343264824243250270103076046872210575602902265764689685915979982279305326622212276477886888786206109616516260013623754285093258852206207728156318400616644959843352965643075609657460013070540980501753969540646235493447449342820951492703476769629943743567533097697816822907635364704631896040228874148016822092329337163919305385173894499525607991943845485346870730497655741454590431937305354822133503509889178613423620288997018177203926160300110031017172015615700523035906719420077460549376509898854086475850647664253765536754596131105932552216603653388057215387459853408170613424459021210285707147080905333588840342876092924040178627637363402739892027103925743391279705603331684388213366043247942635484147446664448793268998653001830172026720477726243210191564215487946950440402101530026997432450438810478892215541038281689627809159811226774893678513887762234831731288388924537403404707225799439697043593252259612224275987839239246777426367639116449904091848575146430931737598284955860933406645333649091145815016336991952905176389963717840012532328560582843721154446567850140999237718067438706935059383564319915835484138155243035641442044213668185936608625315011983913566094981880309025451326544321963526224363430029970581663581178143069674697282776705668515642715971276315657120957916908816240097987626279595176051977558901146731268055176187052461836869934594626858999577404040945843133593699362131878571238918352493304003561528499378813209097957073932360602606423240051408950878740221770415896830897277642285479444933908670003436424122692807132197021202562041083219175375273804661946798869210341615089102952189343980243763378182620540143131423052328556362916116362986908162718082505183855421189814553722020323240028608545326009272722211751035094327041174465370326623458629742414170267526852741622066886036992738796377962038933431577980379290623775870843293448933228276676012686699265435732494412113966786356705508075298847056711806752602995547022598689808099506958082561969114835197104903777595210245931983069186098006656413704817462560825612165778944772595995775979687139674541004772695546209266487944208391390773958227187327718594991962209675592292278918276489952612066186508759972167489764814200318510063178998032130400671866118624134820891042448665548758796767725626056147481013985687543732022987362648650316344164697294891266247603553108132276899305706299832850723259837193558964227936346739763593134681696769389917025081409183910308880946157137922673055295185713905969702369440552170320418651485876215307282926572881489237948308400690961384563769847664557233636423194705833355435776401644963799964555599619484780897715812703313655181594383509837469148534383141840688574922411158353734931245066357116300248929307275949633420993346803800902635595222743390112331607598348889770187292444075409585915640444692884177299511611839103450257949421275698578673660751607071968590971019281283413697812317443238229529717231451849579778415937411467357167571657123605873535821784691795061092005725361214861545321760026449316828626500886076035440744822774532630551503536284021869627002285749146198461172060969120813521025017965988250428705232483424925521873938657871347138611424743288032121239932238197156545459132263340022673807212768058944049746438488735233112316673266212102340753060533206574793974101272753828116874263862224627909665369881260699213269656487913494598942252330943584208926192857937369700751014948430828588285262997076633778502378971696626801483191329779885492878629598621955800716382277496289289411373573501577299025525897547852725064168052424159435527464710644644601595394921974984996317381527962810537872251467167224133092642790583171723349623401062856451684025717561033555924361437202283873589774327816100763340210577679590429687511402024792798121085729571071672171743791486891354545830925455755361664347314063019570120393033691781881594092934300329948356074627414097533204684969187519059588915542963649619104357458123440505436244923771019163697981710597080555121004292390563859151583872826457129255016744189361417563914375453003131219780585342004498411825336846936969311542752749811063692282613315447070408799442286923175692283857833557178173936451338696990412401067453809472409397157658004791334590340340962477526062838645340127097500644905517033460146290571147295325777436351433920876869711790928779906427534853079704411332033979468902513106167621781636945892728277582188892803032153549592702645107545462384921326915909390847075834578316434489620428158605286895398207574505926417104339029338488965467181151195526302141481004426376790934859810852863394525958687931645169653037957077130743746103846769925194477778173941221740618102676361600918278559049911015710490689735091295209121432426894792982236570147768801947487582122723541591311271344604445172476176032053538372081769592543469274848279161863905210739500833111059308382007233589990279990990127117136483123761088559631261651468965864783997051782848154219239392316193820697187846701793241759443072364798733249206622507714553865393390285760390920136219230950121958995647415015939651656183393364575054663453217564389182756819322281243570233572482227514658688755156991460220592061954256753331320193750638616450511362130236031991163606265991973101900200963197813715249030556746518443939593793596153093485339770173116608641386270175417112106504363287185946823829006583014889237085141413710575631323818309554211195590195460790991081690313753409266550336278405901747639588774961496196323285967668749126015500604070116521530175270411710565462015269244903591442883107861299910369175045296640203809117020684409445387137945072721805002803331193049104638879368960286658331963499360772197423639897595493772421926851362301512256990745101335788119535286363616799520004224391098788254365372858899043315881013420758043346237239284728701545843814542078056263677763499747854249766171622007690985868582861623451087495981462401495556286352209192722359965932172875626072555946856193372185188792804299886512365495690894354398661397205366616623629941796531099881887301590349130861859344930045140748273224581001395141825746817383032120623610499684694862240216346855500631925651621662595479254217229212407235577372954085324627147328266706044836415801606381873475485537612094090759276442547289895778365506361669586889770046010865408580521362412910790072506971376464461626004395802098173553429379827900716265453163419968357625567985021062539343666144318708822118121896994201234838196385292907121482543462126679167824899116674893330646063615558085336861317000246962523789656201674247687178858876139442664307787257126531745622485573382789826036886809066296465127290667267815865240159185786309857687715945318816499915132171914075297718939191749301956798797464192428299771359196296534514706647532316025845745853170733030060175079028207513794114694927204410529793196331064394951097945450545404719753479838867362254236313608618111721527947995952313734663346935799647885042752737890235910120505161636485880090967124267525442833254624084000441907794260654991537728920098204351203088437912383133133656005627009927599356663616115519730739915945709898552304340023234150813735503886893074598157895039313577674646020420836733884658087151653715476971034257717417287191098559515048244635753488304535429707022428284103304060243115613805010929326898406922417524565687796886888000975128610590298136217822298557097884643316453960771985077851238545296658568639405153356014330491045077221830336092199742432618453543620811825323967003005304270694885427878212209519315258100307844542888334309984306232611777502607806875071890995365836762326899096219120371438858099253007640074531239108376211175732753188644411310397858681428751530632303831191022335580258450237465216425586811673092547489050279222003856996132763267967274586491077942648606512037352019940553887881020183550648206602095471975046937698635922704761964132918205557091201612622790499353802468213734687512436308301172500933731076599795778466346279772234066538207215200270350975361414161273172657485075149977635911105347907544619544924551042521265274464475064613348292545556482826889340709597691758542235081885470463466375373390344631715302636087924762678707380323557937297059842398772898255018286507350386201243400800718202720234107125487586939555412947939641356840077492106486978775970775574567801731082357910972719363517443577652787715595467455882291990477942998777452653459922712739857836907790259466515434863298126046073414563826304341874858697387813173615173156780311197760235042851361838410431063559936990976300342762217984702247710239665139388760180662148183082574129741319595381828387383033040026346469832262576878140893810636470748551564166431815338942517279013667362311963964658912366563644737055248250273803819019608989751722780101647719842273061854687144161155974753769445151814486666024094867992281021189430381601666927148376838762651023426213977762938039278931288027034830652814766593263721933509643653266078435191111555664925446762024364302265570816897884005293092417360516094761989609486509781058603453610238507389668690262184534461101528033613495788764610561670747261962971914954793902379617211223580966763593342146484186444509562666856178524549651933586993050506766616969944377729099699777932124341333367081548801185200336095642878188596031087859108814968127661924932946269126179121390141876826964326436746213968490928239907629878344132665148563961848862571968269732605000528085491304563416682446618815459211415054134915918706897804012925539235693508173323894429378516690124964153741515306245410944020698865913498467107466499277501317152804457322577905063983359198100101694220645528393597236867394279474317957869635325224823116611973601887603109572557699302034069945367494829148414291551680772107277829867731593181226314572465156280700862422206859338409060034065714223328296444721253066964202498429861485657917457333156825771987026192396124375361095943207120506054488973487828899325259917510518088425022180177957167477239833024582525313582809837358892506941728296887635120381125469612857816914229030671965191501087500535615998657707669209854086492434034129231354571239654834019696911953050837975701694207325405942209376113571004994183264207124363623662002187943088279056304656768321201861541493596937689584291971151837749687066557445694817019298296205417161932609809659398518741524951852868215194938418078541396350164441326649220052565822167856924670302512862430905088398658743805774784164159500737886683062955385234325708018924483438950520252136152161468002997584483644240606295426274416651879362228116853595986639783687723597200390607129075645181574092946731387343521509203381393920939792100899110341610764115408554315881701396446884868124542540501333036359030697525196429808177984885967814621853941317175586741358827736075923055687555457365176081238982434843124691207490066643034983453386753171481759744149353952076543098058440663959471283247578389402047643314013658823161447267922085101891717033267537053815108967460059317986998076342262363493444472607436304816818874601458658784605603238398824507171329410815489802692636818821677123380642585673024168298999956532125752108121709556683947781482301827065553839256901405702062214630762226380439398657046319981236757392796775011229591005108152971504099077658095469491846202286051138407162592964564167878588797617550079335915665956026454585602182149117952273467972789276639512512223698103952512035667042717722141593422455377148418268814994860022897941823326194593089616757351977351171280970194138993530511236974776880796973419832281607012715546272420085113711363705987596750273203358524729979065840396982820148520850141608960520769082126550435941218670046583903218398863724025110875473683362956891724929132348003469087573058575570012006666085031970017414914511823899400377706940420641928014408044042718966605257950651188358899415124339338714401161294538768428699727180534869936750436417315653354689347108264216692622548007171921118152476816185610963233082448688006132265975814508263049742105078655812333306524578271608608796184677915976835846422726352848004102843979558058468748217518853423006550714449644391702341886848018334193523293224983462111738489979624244007171459611010680724549886271651275399611541680717772208851631587401878839915681420632320346441716181643037606064352542567522114278243098656129701354547525836072554054097477630417338231149876946937670255383119043102444920656556249542923900366724536266208798495686341483506379285103067344980405571811341993842474144148350048235648134148062107855724024904773768924695332288918362521425067504145652399873331753571022511498243302169322221719784593185674781577052905315615168425410400922115884881120298086707963501459630269623643144231679936913180414891378832986951472201078335141279394740083304673885887514848501506284261360707572249680729335845265647806990034777070064632119101336894276884433110316148829033967408235732615043417880599246941665063621290352809070270815855313662371262938818475557945116357259497704619337948691278862350474070273931536636669404019445035767534940489659451507531214613868505404654294804450734972710718502164929746063369081050249437516016464535518909798785914797375288347326893668698887272111447684023150382318523879975460034560314080090530415585518666784480267201009992393662597666964439405756190035685856610186679231358551370965077363464673642455196174426057684230002885142157765077500423204209989159577293696860695846335457445607516437294786755205565314404047350190316246076287886017113788164828058951871612620331906387550827245362777825194788357221681311815572975717784961610664910965595836367259452110925281475645604304484956568484139555882137520454293696117214931865805216043847212024201997909632993504433974010539149577840454041952141858470746909393232850342279165060678306744913795584544867674256718027782489856392992754570866516220325649929539459773108950702304038754714055838802835560029968512947839299457175210103833841360024581356672167788838713352889647780028580746850913264637265641038824427159634291636953448343997065043852289142116241301880673717110853905621691539537693778854325882362208321978247896751005442935626885427110112731438992781530853190109227936463815617924816024060291783204981634710504697070783214991942279775476756667862363695624383902386773412540584348827590843136935302065638187779575205649065110784441017570214646321483795806383461843798845130216650449287340794454544049078847455166650733881516638342037876349642908601067411752384809273003813734378343146076842709012110230426020310184994217675207737035174681755785869312539555903385045610452783402669293889195249419159191773684261322087209644344967816935657677930064328663318798520658013021082892452943827276466238890732937334570411861745550356058853032442343289468897204175150856996582638995670837284709664642034673175195220115239887025833918769456912603622851792961304412266047073860305179282430544179089250771680001507747400424734486634335797293661878622768850465299079110073143017246295368697059351875306623956677388642947921686763458998258748920458528611508219614606967941304968272727523991738710636011047145014842133809923830687514089469841316320446541187146540273417943889857250588822968330693192597825218182709624728746475593275588429457748674116730746996642795896914983280927017608907314302046583737888500142160601729337082687001349889916903464612970884637993778280917990784542085838491894139549965150324886472441987064194412529264576401481910896198700751501843262459258805858846152643865055570061674394798919405470555832306284487353051735877123305955412455895663455302830736180443673150812257491033107437107166789694390323179794297995787359796020725298908379787806244695551278739322812765604978152955951691565018546772822728160937339322837103352089872152780575834209839036400616364896796523237821148118738323599885964038343184817479736275154366283435498260486653835686870079010327821267053706386080553269917083424129238500643546673017647571227049492472612778814038608790507210764115431801901998798982006245755413764929382392808299273048131203291255009041188810137121199167115927656468111390299209546408210107942357049176157562958481315127393932840303209920041238709340121313407516304993239700838148288039762458826385690912488063424099239015637094499595002657546488868840693445130609269776852635581406275227585584189999333905121453247378335434862848953945036373550004801208082201899966455930379469931320718193298990708499078134033716700150013418416566061180278333270700757771196990370220189051557418948095776382359085659909059825646668238165680013721276291145969991157777980713150325605810674098265926558374669280031514049261100417008963146398601460683391549012425849268407208621047430759302561822937905616573684167395110722643184961093720722937720619800577206297479757747404482746031298549163412227005282356959174602414202916545445521228939417931204315473304118279149986876239175240397521541222621596317361722983111156036742628257426580783125480954725786716924702715826565065945457079921738699715202529776512626220683234006633541004508664325640902217815255839227686418552690062265770894317524816306009770344604685455626737339581362361652024305806761173841397724316303658308034578808904642530727219793246602312192285440861033887216031823908390311035907245257046378999024096410804292444273893005704800702070902926404507083540094898386742664320304690413811852961382823835599429716463953371400062493984317143799520174329492756288302389860256163951145392143173411772729461069195640759104142603850517154964723092573682083442449844805402165428506910920533335828626011910272777569489304322090072688817094391795437782365664586573996901662344115536076015714256801355802783409592379941654625673763540359793768317106832803713527013922022582667985358364072745857348280840077583758242549306297448595728353157391246901400084084581565206467818596803168181252822487397283970383036178508316457563025790661147331781094717851433257100042238845363950718217182013634859215164224198453643070941490777135467451504802372155953313336827473399447083690508510016019243913279986502121073365021906456201977048048993565023788542397524915246211511070230594096747536315146550260766224924920209371567795275733997730122788287780118216771908715855059353833778347768969673391256738689326942038914015497664485864995621178785562253851099580719985585656063988770168500409784016542680983918489181339181338747770852000620423347014854853645522914755869572298256985138670533041161370262085533406719622069022890344169266154729901125775339379519833601472138630382520104661830524713101408802429287843939749012826738750705573619580407678514107168235645350223921534746876690386277835851692870695804703073370454061576580377780295582746975615309366352136117709769399572694700013959657671588197360451818138027823469392530686511076632321075044175111099244801513491089850484461370791380769586811155696256720922870808372809937631187700096607711485620456223231718459673304431423483189046714022647304056502557266783934831904258483960147453482907566430324446680960351641183413248487500070624303393658239515116132075514378222017562449092165176083165270593454127834190861001829069812788327084221339871066399497895038909244750937874388908720008231805822146204255803692804001878269481687117853707117887724319834455156140459379281936409379257029022873229218919186273389985591960841378728587691627405539505624027854423651425528109966598153159041677316393721478216559607729096600896943427205383011125361844479591140329997176229762694939717241740723671976484572196694791703081850696224444522985142398399432008332355678658641911374143458020781681746112594771921745121728728166536312522072667573259549741737579874606984049653432310646497603314542517419115872283452911547097063081594380077985759538808939635661185704743847005303432810032783615404584879524915838359235081211433699830716336994368882090267386553179847324527456548952294705793286594237443373514606726465605935853595591639432423515160865618262588197101884628590427326601374344422766174752176586473550702595200704744112634971585318560364500682525847727468484139657842641205401689085853311091446681867056839815516908810709460570896487148396320165771790353339513218483508044957028856135716643349075090633418036044189113437027511896503117412819584806505328024932681302300877957786040245711083021086699937704521138635199299940863022603761282458526314144075387178611957107686002044991388343859175952289997096927989958333144332395613759864922594111655145406882115430068926124709515970021832367506351443290401815303351553658768511107695944918928281665838370295431325386717616287783720175682363013192176632151182911813245667110735107699680873498148019982035277218442930949370011179618338234036972617709781792193768173555682272024619478087466749251697395962113167134022456899907033096119442827479816000393547794309358070784731001262636566820823427923934454484552906249970157207565575752933206035383232936259971716192681646461102388147468799660369162967722845664326766015372278099463766545532077707630385479242761179531054546337963207129467770422289117560479210219367539328678051961263083570753154686321808900314230608562845948849279001267183854451374526234416639025962147563584533528298948323218284108819988582281423413993431949152134577193670259078529020237199115833554996714614875318318451290081003613824937169564711764562046987742727107419980768266796700663654409815063515768198043967983618677259534830418322283932589733600885719910615333285353456218043313245706430879930380174215956744489331588827180230439516199514614002256636766359392421018544284169955867605079570755975667189633796924213969635640592659507466434376046342832522484817804009868563571953657023382213806534473241428346605025188141556351247858453459566549808857837207744735831697650659287971540036846374470088897987324146739305997366257411998245917164539134587353708965055885103166752147231892784724335182407125136599651895607450577057063337500776714434498364662011829334781601800276733656140849341667617895233124334706270456628279650708363872348180163888383827261246586311773755053812886911844920516020117234694676708889333733740924787953802532149729715267356997961164345045265842666390213441623585434021670771265191015333805867258117196140536274733606632280734225150635793880709196747806853828892999443314384949567562710966897172159831427865839333590485250060477204521263205029487528622394614433253485007876709732294684130154908171553737921523316612693214455133566616900024806674331701354575403726146642726668620698363093265937937633368017307302157180427005154645975959462660494393653750145378959971957026655633822618940868157219695833875733914707792603908774003976662024768100752776991014143043024877135455122243056469958976820206441959869538664212258321450419492832425528461310910906362359232362002010880390971543071280716892055456068428939187181211126290429793744353118631893578957102379366204052714768624580791186875309237445712125430810148107489521460190326169867674512051002253623855535002568241685649492178156532678434699239671279978851206812985701131176634504805054219923318156257116173451466150417895945231050236885243579310222077234176794065785483486605467425064112827357914309980631417768082273334682699494318582950396048527630021712669500512677508110992250760144632216381540021216455172440292736417034580539243715085485213982647239429924412649859856740965345399748705728861768545853012665069242639822599280016066712050566818913035065538265026680995385545515379455388166459304517386634319140330730897416847633483212882172864158187642084465726874259029202371347775090794991047582598913848439292199376332800696395736925241865173924199213694187669006111087284163298792434151101469507924608991051937176876884916808668850486427698434271398671912379162093538694592571193528996228917298287614386502011439570595955548821313366277499376771265793923392646310119433367481270159763281630853440474848956817569725198295062293537876942199391331776751219675994096386057892354028762968441029101803729741226584742765782075640957164797981086718549458798008530053676936448526496761609184042487441241297760174713830814672060810115533119236319277700177673100547771575762779882537956197724192529708141165154112111269168981620532847693821437989530095003255531878666646788046984957734638761808865924030676789739432791335675773381909764765989254095268464518683949688079114579727492359119342094471655366567686067478285103305704639112602298269324266313344873289958843594176181780147770013578329241414592774192967153197061186676676978183595411902819044339625983308307271415530288084515630930170978095251368036538726666819646750440836918112379172812105136846536356642689935838500943332663947083206806185420200267821860840845655922346305714700477699469772074152710893565075382712956686376130259396564613697138245416876051566154424859531396500401233966139532682221692296261526095595724711194728465883800146492271207261373501893203615324362238580295558642640375170059105576387654877425856459503494202520536833194610314483947703947618270079455049603814715613181604557602356180965031797064054872807930416545479205985186192533875995380795820893269401012728570286991490305406128330975783928114592240811718508873756092687165812147130922722055227871601405335025650303762222640769487369673906369358547593053929916429192974797281859526823052830073512517080308919296353352343349618766895638834416911351512363251371767366536483082158573809331970281819513007129886826510918881811041981582241609365583178660355329568594312330790556016230798022791305484845137700630619255568867602025839685618904158746573050106575885208403320764810226117287957853666095047066591768965483904139960817534359298338502167678939707387086594754233593252097252062624542132742260126752935539842096916593699294062921043062544301293498743526166101120335872035823612254778797242811089403388265383179994274609069643872317382799187959015475599142479504244028454098233257698504982892346818620466039741646025709723273523369083236924045750765856150867252532885984861334327851203119753898959378344560312758306524653051498992567227455784885031190656479894057739319696474340678861336960260594953365201319836876030986316536350053689444405772203108328384689108621088924311060795110462543007303205907642467488744392769466320383312950150289217056994686177247165992436769653811013079622586317700983150081698645486942834187538189433582732796955593815339532609190844752922406126973551069832581909812401570339832571736363091889092597206790636956306148176167994284907918670133333333427891040058155901142643352990995611571568613901374869998471538236442768612223066150967501521386207762193039838735713450367593755794679076947654015297926087517774264680708804136936456311129874770396767947632129923063638594523957695146016515947732323778286563327900198083169344620757435679801152936518126553873366558527486021038973102405110569469042529530065893793434261516234661892896728988860962433968948175384937926506317234548952498447482963124430882793250832878930547175147099903076321938628716686287784089855609958300420687352391349960937874728413228817769352265383745429303624256146212100992822552775399008818342867841555600342300458131775598617537135292898906801338543973566823105407147212839571945743529889860279121064627955269484503600974095581715941495682682230312140124522386207061673522048238430632606899302971919109561140718065851768108160673538969734159833853696374130946261680383758621138253367180734514588967750985962015952431644952673950676079149205305029531650853910379996097824928670143988415956718079774010104704838389586189811789086298182218109486188934757414615922697586096469040386391826292773705874379972068224787763377382069601779610892590433243005949426960946329038739117154973480762166196171129712731689510212586863284235479096418563822388993685518032421428033897904282333160201688473368679046701466844066021650261659856567259622679330442564031814595162794659655154218447537050804501014936127261501952747233815045573315077135034248783963043330560284112078261760225666881292973554589958383172960056988133578009164426952238566539257273120434137131299727496011090382769926537461308660951697921089563210686018273875514377685127528016563518654843730116837401381565875935419096165773246470379724598803356053247156270409049526074532848959305750346815801936144741818080028226189113903228916725574904589084198459191945749928062081508998678691606979205508006235431905446444818853084399571765723310340698437523333819083009547740107775859106789158150651838398652975021250420149599261138080644662908884783790741658047907630291826061260793897630799783567019098668098011823465715128634794319095143689126010411163975362763432231728229737668056221631296505662633892527049913346969826334920008530902739514546628192315911063970069979793754549267527518638688781008691385738357315947316188479840468155150925467123141852761368853686734811707128872269042900986896329647467634650022881922303205178972075794286989206000168685919222142991983800903072404614234940637316902045983064736005273543974415173495866254390556139368471314292979377482448523142697910852518976006435620637297592917435266594654276248658830598373130386766236736089732660087429748521093367287962586109867691150670346650470451250861354140802368474156717347983690176605073262013862831848115323717568939448397161811574444371156064247383916819427193023939503019409824845634083445815379207396177948693681379360737491284530957418563973823290063260306777582076699088290002257379184202004754312415399639456792933759595856649454825321435591934878746063632721248819780351857386108766521080921934693939808395899815522797795216358579368183957110174375402293700434895529114239772756643734918340477906640750435583349303649367737266256797302909582810243554479063978412158530805468370002498911280524397138402172161433927842624130916364500342666627901771358267710424391052870816080087153492202980453079607953486444378638769046106020630956209985785223815127125065782829313554426696958784837940557376414060861172435609583723081356611010809366705833169297303960156631697299858671195516255937304797188432695418001858462928850266752542022023061274109766961998019656617635133452793259956034810258464652831758229250071876364938573046779208066355824159334327880068192419531877554860465359127539241099805328654146194573933840155397381713850091819892146211273637584354834040684802381966205778303957849369988854403883476182713172996540532568280887111795989791801274941541768117512468066409640478478160774077682631001531636699103850421354572863412393499323199471874476654122997459590594909893430588276176658220163607707009280155995150848156115121671237021011239475691816195678495331172758392855813198596824301589042553062657363911747729094856378515177201334223241523582742182729612999476206850713900653495232167730807651407446900826080871424161714688624119479386797238098067760230038316118907518935714532563165264222528935353660368651343001457121434542788091277238202513341270750044072495100405767865599604025252102119780493468666222050566110212452726680948839366550900655891235917575587885458269365283444927680622330956880213373730665234608612894022291151481286772623508479405661786645220358802214430019870609825623473117532093307691590538591454668552224003307277701862367185664054150810898347688570085337995800534303270180623288569629573590065485125475313866240586280624864491705918325558993831962418430365593398327396601220467739443170772041010517899889019738132820616139403858565631423129185387934842363562222231452121823574546530931398525208451932961811240416196386537473090773035118147345712854359472152633796719721619656454498758412931438250286696448055539710667816983535519285609766751199171517916420956444268178552207040352973755868613893592015054794500505941976113697982659940615181949888574240409978289264416281276497464396176279179169578217757127121658182281275850968292463163279920414834918558976039209294409427270673188380757633135290524839772376581871286884200296857471895789955265352285337620187313692743236747703459641362756878704037304480457435259411926747559000712480698948943030221883840606559321715330422612158923151592655649875774205984901395728183327601312624620167837794883456941848090418047983288831974727315941260696822484159077873530000323139243764692341863520104761433524933610724876147824793819407769377860067054015303512156919852269784130259723769993498418122026555128584508683638985260066409185855355636164778587721301219084202543641964122437916331311682969462668904248355590032377569201177212113148435116184213951160100571091192909430335317296303591513707877598852581110217374961710984403378940007850833925563216255558115730857221218844253479488970791623397181617167264007449695003851948909757754577115755849121270533607833058651513385389831696791307212069347776121034421361622053220048911465565625191324303436188688889405515689596373463395940810672231029476299966045582218866394303222150804163800493572725159974038335940552476419129213296958370371198433681691465864048067992945669048075981064656887073267748506955386621741960473906719243950449828330068360870114495481089130149367747939897003185001243926596270285348641517686645623883170822366537220440365387676445981819471215166670853717030676766291237245453397019417011418041632770020341858757725998693884310967550936030922147575872450221021228060206363608009962269138449472300628125091543705341919784535154967097854680707476960083504109599338133902181845449808932094930488306948172584837759821349586030814791567083494500664624348925881201948371000357512571633207856864590604970036058276031115647893839747727252907282646920233899471786544479615156650297086106019472246676294722091940327926787079606893905388861782495209395563868625065530573902840331827974582926467599510639803188274029689228406673275717525075601779429254304295378311674280687950097336217705057148414738542646525823011044710642459712729536237488435854743127662617541248145078642799971559046632499383794483335320152185187517970246565987299052811755241583533331964076802149345199641849836663138967281207631078687916113733753209063802112318939398264380418184018289812881925931044849508065114558969846814789085887570921827199530618408378898448345976493090515872105189890525354523843719194247949913561845808687747773989647362010308762343530618469681048198882041248415275040352569284629241507860567790799104877323774503574866263250411203887495460232904358677212986295750528907518428486500382233612458861443446355515389014631386033242313484182155871551763569180928153472727707137157981447960306662272526371159662785856577028397608107688202599499770089075274422299007897022918090494009411055928837455713621794188462565808127909349528929832050457896289245079064049429791200876702420955144532829192320269080195380999595969617771181048394736072888913580736649246370707462652351167445876565847865443865587217732479544476555368702679053042057273970778822812960581863521895908096092624848338418704399871173263377056675148399290165965846481584027898795431153118866131842985269348771854574094499500697455118912948443440090240394046577194740563964691780786814778704989551286120134464974381195973667585492608173086337859329581079023007339440820476626739874298497321407341788600271077579743623625254202949770791627005957325667446491763754169122555227246139959434781663922665236762765131176436665512159202896667626889996310667397581228535648023698315879302203981241744164787512455017678092641243227060121241224587440415854956567868788748188190972635177975998216525289531771466599857580755706945427880649146604456707828352843634052876686823348704722484924226743131129472844133482540341126260786428324419764747818527758103203858462681890891195441455064860530049240206197700350785498746668743836735298474647519244575748663848244862767075717023525604696400304227633429232319077067065024020925378970989780306505898963173867205416431205591164950572292701133047193703316543084039327556009979753069101722533582649139093928551516449905950623087469963565212310563768446982560636666282743239054666078106401247319570158766659955843517264542530557437792811196145756535188906713294749895019485658455266963539631398666555686246105114592040204591743258210609717414510996223217435490432133386467332810654662280389356906937146229438202669014669549965298028987871957821322934265482532833781357236402753403364728615909311281714330418644300162001291574058149838781712223938955799613607978200760784068812491096801629726463696753346371077512151766190237484120339813253679419942311752948571881417338794108016676219842757910336730413042593644522534125436960771366740574983130352285657833306582359286132783126831145503883594607083301712988575323979536760305686345069424209677768351759730449715671553838331584362183624645723126664174431664370607385416418050354024052330069180146900275280580207694273261057078241455277363000587729021931786487886488758124232982006083507624410411817767664213147708185321659009242554131862647178690226216570103903542855689587237869915503619749216107430880394582288141132861183452662696758668608690585947016421357084197934802007790736512986181393303600603745049416278622548113043271713857181974057959462804157297060971966938994568080950294695775542605153557160564579500743077508924638038520081048515850187773898217794410738423261969933746058100156798971714951483182692359630161179579254502443802784512447388329507043884562261989661157572817229082225601367054620488712933412413743462760117326085421717710518141057151978502631855731343340254439439922781439731273214714619598507410918118479092825037957418397938445846753830003943223331582708240809073668985555549763057793091517454868613820778212415157067432280365756440313125489434590522646322214805515438760294023331137274101379255405434628494550081987815738293415650828032307260441641916511131043113748713098274531905348259388840282093911238181670560879326224164285298792498052891953764302974732568207489713116056794099777892779899576890874543282905093579325346690892514111046804264952720870319080139403695442895098119446184521439930567155007455440121708466551042157523036805047116386704489976052428702838949457158884800059051872038114520476348897019889990408780877208706628462407985678020355421787749859161736557871109661660042249606370254244881375059954460999980762798762179845972531011218629753338025656556819305172253058034703084869675603173503098727394960819161350130719844655095870878651301193252497686022241905054368128123925327914604044669964213465951134660213394319449108413152220543806347336118327086766782755162209488595448915055156441512470062213345190517218269039921968632178341360756192323000825548585109608171679182038051679327281240616368570763412286875992045626930185926347865405714331397507614512593218521205786453930997344516700570810178449567251278193873099266823783566692312771274791701821825339392026896398537054095741675134200303326090853056231309827924125631959787168218535271795674809424140427318445805969516699260671775635425909178527210085500195015649116399589657090457160210768172966479110954259089951097435486486630345905436121051184191640974822979103623468617603304469206581453915937026752233771981922212931939406032564250172638801432952092291490928520641313016520105232722805383219064686078017991055571101702002701116581388856978233618561295265752190074055714474621535438647957890661841600701332244609477832265127040327741244584271258051097799859644220800190993322371817867609824189028618350454015419441633476254533688123399386614166038018596204071638380852925442567119074921854285262252924701435397962978955562743255290746327381659645499681710856633459810184797284323591531878272402156685882802769017238547923850862162323449386440603186296718604128559622620497645848298439290371592495827641165987086631493671972093649820028472395761734614744526292300079301759963547106792756826878069536344926391395056154149246461814565172472743854251149449079632552204638207682423047661946626219790135090671854959426054974321287128866838835017517454916446968090652057990924304487651006380411927823311326631446273281166602746742053300349221674894806961805810722090643765426380879791324235938902964753695335685038975877034378019439489332364105274595378743164627552942700941164102039113719250854498757229170392631124451256801960601356150233718531189091202369787526627590259739569909949011192368401617320796289961605493885594131135308716509294114427734849366470525324052010320532419985046168102279401701392867452558998334808573888360390444696293586474219711349380430395760197749806704684119325555674978520408174353095965586371938096900049184012002563581819198503102083291831322470430163265343066535013007216685545151916746437345603302387174867396130778353186358222427540830299922227636240518755438360046690331427703439224076186504411107569121197059951162970980323741785962080874445558807111823773538641550711807191017250800488578240922249900649604372190679675738576869300438291174819840570845499006325076580147966416979510722236321642103783414113412776896691857635130702506921066959942961327393317298274839860826427657387700510282479835096779296470526732824399587425876647003694389329916011657554807966422494910503940261799803834989647756415651184065810158513095983486718213192215384855002939976912285478067926668788885566024367958243431942515254783643271604374300078472268086486679803542349587882785914268740509055138784176777138437945199561219276522837405577130715760633172241548089589645803899318760091668944443309526242889102676432731237716250587898461970790069354519422331252894649673165342750932127562975944393831284290957924092116400662064190691391526489661217074039118948641588921889618896732593367258303721621079159304701762183404113025303967629512076810182321020121454806379971241537883670820708704107107222761317716758475199214879714301348017766509824018184144285811375861658035118021572376156722064218600415209965082332127626458096002522816114481333955660077591447108650224786025669081010511618271266487113017978133000950547832948383838153996523433824508336145388785616274244868210211895552353837339189708982284613182295003767713000332304895818316743372478037744874068239496497946514090969622036010817133694605819071884105697170663978156971855586066051016954110699124981554592461632352708009009676635515893801794281982300879501309670910579965684569687924786929166160612147107245171601276400174806281446927652394873459850973581759223757211256141524967030543473714068737502975391143518497716873727806705566868666157404623498642795071953331036545083153764500225728689080561849061264412898006140646097953519927041977857191371782057803612980619364006459170876770728131215196392963743537612042313520769937847871213731719622863845399418984519910633507976837376957517672197196083731304103125160508626668149274580670390922020663731983153552581571841485185599632777281680445934136642290968934338618756682876897162747138395879193704129400746463123460906528203460795896319307660294147013820858461871200269045933384230358996697938681827314041582045132858047855165611254309634479479435321631020952118988563877349942478175604485600670097357671029615680306398881451515792487263470572048870235631355804599869468282347734648576949877525597689657741312178687211623791328334771453837653957399684367228239031690982073947766330344860801802118663843241101931206068961495920850217239879442579440123934624787213022346016043249700504959228864305081246696734214687122205023218956334025606254674248795081143018261528142922722483446706498137021594502339254608051159677091831281219366525323095914793400085732813700711895109282365027554789712649424013896260280318406884091792851934137475870350213699193506223181309504186641378720389107264525533375051102776407689898605843887781513404320168331038791657378357173249479009688985877362231376518601859132288723905104908077278237141298140595323164685874935531324407916650078198628425204647561933134404580675712278523555472169136153383423870356698715535183581190529422197745292690337131754559946125358386015939563889211939238239511567732673109237360452950884302904342909213041970445590813240214725031884510236029658230034962369404024060307929616699911592507612499019752014817351151723546733202059815476819185192512154157369523924640332043948545075654775677393043377190129549574423607396369509723468112077952280192597668455400610878154223692037415799128518642606780947175196722229090458671499691548364392982101139447646752563079391434055598103445114387604177261064242391518455076115584662483672797635270667742617076991604108855736500808249447141931082424164647082133923279639358619498024722987704407004756717530827732956857089425118673924357448090269537395347510307885940975534627857093690899738656248895278230436797732442363537519016750045949190480362699820585944232613034372138146311399592147681814080714325194668730007694200458220218899166135418983810590581774526480143156329028667761809990677847909832606485613898382315536021114203363662486043858023666887918563613082961585560736034066426935721381097959458281311760819578717471693624874677943535899714631161547391506447056522931164332255449407257860140460561826832649925560406449659727626324674027045232573007870734728390323427029003575010713824503096346630524292935448995197349989817993158652830174698442864112506830793211732313183891466290517508288578925526525384875955145020896654967089925577892991519275339626740000704371720105810919971966211907526738784307704256205575984882198565347468560621370406486282504890975636906504593960644285723349034558611001266938336550300877684114594466989267303783534232577555144945289996003846983356608981757362208957101602915086056583207828188213683998100608419044464826664146088173275604739808304556023163353108340629395899774494591708809695087583926258780127856025060262791628874667476830718533811615354552361297452828283613987297531376241700029465302389542845659436574937393679999874605892374993215083604766906416113625982976034238352835347068701362065634350721646517214262997388660056441391025264901213003627984485797762102472685066931376603086858320969439903449149950071144285049246056270093325245632209779899404261493273608822662096011666841791953191528182703699116357097930773477987097933486650893377680177821834031352060062916649339106572419754487357797057145542687037103702573110235431404260682095685883931462654025076409663402565025597407051171971423946506614232938860161274523870436968871000165492566426331754246593605145848468477759779613829683023442118768869200774070160134495719354941967184708776484999345750607022433917819883398628691984827907747923536119485008225879593625542465522562886578465968886300933260428589267061667486824381478357827671370155419707751575833186223346475874549868493974177906842778029474295754218069368043634012135658035632433197514878129865438699407656378328771005678348440874168928882961827638722949636265191090326377605596684074093873691344953556842912741523088412204715385803041422208113834792708298328877875362292917660143195034451142774178225392828341544760765716383859290352968942359940629235873590510334659364792694458052895010287473942842787335069558068787360929273935167312118498016659810836005713402226069594598426641087442960683236496925224932515654690256992358123260834523226606108893181471524441040383931783563228130088847251094302397130705016066164941656163064986933056526154009716486876950301560750771369407820258327360424498029835296619157974914725905354954726066970201004923456137676862709129641010091322475618139898259914387418314982709105513652184752500792455247268489696556819832891536313386790387086764517433713854792253394510771076740785404783716476857683471968957707565991618261490962513383828643673063238740135110916791065729515360051826719304554932530798367842300844800479135672011062607323709263532486584919730506695685332577243871917165343271102434364733744258777604918085557422456476790299973056042538884971727597558916862547343589245251413609900484207527148481920338900777805242171262660183663818106590206361639992120637368214250949740138696012530540357437119393744740516392527311210006414659809344990800913713117388484344111294575007942933602574069533947771210656530314954468264096680536734491489225891975786717947899601140083683112514990697089837345923536602346205794943251117445232465721366427010516770916947262851445824066123169998436737507804175852095979097889101465567065154329278478385968607549040646586256660119798478648859869592456975465838530999539811466661747389237314733346457995584172612034492532687988386201997959265954459329743711777049821392740689425866937913257659439869595192639310662969234815510297474962412252520978454563431172401919412225998412599821192676993379497252264178044319389871281376218387959757489545670151507414896805303642803809671202507563739117389528298672298706511629446805397844072677850641081157165228356971095209234919304435037494972577454191078827145381777305598618751866066834874579422502387569814362644315386052233488642001595252605808112624698387987366202835523613177969475427687114479407076154897850939343053940649119415212197617468020529111955265628868754544991530660504858401759244205373127643600990635541562881875900913014582033388499059983363442310623874686470108864356659982692016563877112581662662053654195750205605959388878076266535138769057839996980851867553090244208755170201019147193150541777055402332143690218458689817490563596655669607491378266289975072337326811874414868105561897450703667540587865075717851203130983037458168867599340529390565323334913835168900775173094449074643613928541115740325272054068038574887481787738139432890984929268688845046187383148740577997790839358526409192431256037950141812940117404852635555719860507112996746507206804216936469208887346555514355993019129018140184086056320768034274243126993072515636660075350551560368739975469561611227401214659133046789801490348343377004887591720045910559753266344476410443997660933218914697595394018630962387769599668209830689000902730679546680794796199503662458993859788870488173275903785015785619218196046927791300258729971711578461209874704182098607582292257474678340486279650143228990973180514813473793696933011172528654534109675621338627163126560769154084366975464485010451060156558972572922390110932733194983143155251609440406323008905306533891434076146082562741683237969460047194785423927730771671868424978542610861142579594431545597966441990069658018113224625886513972475184728028933571311014826901500705294075871932849049342777260463924105840932889014935542819458547301681600663602896972966188576247580199913073508228070495549726499174645958107265047048835005457097919729601873970663931023634127529629465695066589794759149183077897413856939118705749789441072710383416434993681381971830550862491744959679474697960133672381310652952738562134819375937363684888849638875868319998790139980177743396416567352751116763202419500778628452469943389640419846991631183906282221567151589262413534654711178514559894821627977554987383241044748622881003961133257241040105672529079788540469743110692365154635400018116676704048839158619407217494592141978736389789836864435087796134693262463437273174184415980910436707371479164381555498721080913174608829723860286606252306385102222269655449979379958402637772102826777407888110665652144429245616028617101681590224184544078090471282510245065078694470162728252747066028522105029548326254826852692412673913487644153037034157295148972459218079152248904078894895048658183390191033119626013450451725509767711685625079280122688807995354434270363633815502481074446181338249364198810605482966967514323055740466542958249013305814154583685708160436179442588225019205237728931810974070053970188804792478091723902454795393433849570763620175941819191031785881646497712174335523279695104206980989023202133121597577955082200429744576852171604215589744339280541478486898895781368557695419826360417459585452889630596568924502558472393275831340932872050916577188668212763832545327144495151796981411653904005852847365873651926237802149792640537275565933570911656567843259281920616053494326718150856161281791510954798070645388678319144064745823071334633982214322601169182442217291770501853927447636030891862902518989911264331861282001199011510740380146141267908859968759226882871822330732208226889629875006883310755034058138577382995694268529377028465183544906766139348338608354234253222677242669567236554426929106589909401093408227114501004705822801966740125076482061253931249492600735700710826090429717169070652471117115695619142480862757488047186787839591955702704415731226776541700578375370238833842519329706580563804894452218278404031233134290481196561642077345785285418057767328231476792525635798377572007182843183231906752303241755640957721317892786988476094982188559946622914323807281263267555837274355575773624671374542841312561514495938531701398263515313737643856071814715781902533080179053879904104998151074200948086408132789227055711983062005617713392183557430629438771713617215734789626694421617492375561385737397228616223683943269323466920694819979150203892817902807073863928401297614553416439083504746143270434660992054254662642947852861997495933669621560382054273683210022483773728373760544411546282044330951705216631580006714861513035566948688222794340560785574622422461183962895603943576425878702983614929330164664411307497800948044671004031431025200980690014987968377207316335840501541948526680096286101900869203664771758599608426415213338307055792798314393511387949801047960809467783763559060603398013650418159416890152324228639314778691507960785291503876841681597526972826057226222498440948205666022328472175186911867065380596895511235354434310012662663082883286119794958591221495077451559080055165833128769720445408573570755095904824478923594932488533059884956708070360730557089189214790776884384701486120164717268491545342289439372612615864709381401182850591611061286149398020608529426835443728639401328394095178927910561831260593858170814346976395035553838101903220980840655755444442414533828465747422137402879120420282440550614518027297229029721562020416688960902923923225858500350591710620557891944216265509125755416666910731901639341581577261783032453166546614429473358250464209209286779994602230105669639870025937188611004859779941369304734313677223695779795113963772684325789542867329204766180355514989543141244943246121167757098285121430290598794995188839646472119962391460842734839276186119846394468985535245631109111236940589741360623056410184068513397550028033435962028704974262824605463006528679858729828787808178398719483829459495204919685083157103749132625470241102575221800318241442713787432530163718294224503070463691286827628133725015196875540793991756331646253620525393027812114334738630862715506530181310600012080874980800486872554085665982149093491346554902422111961825236451688247267062419575127381014634827707016152983979915877723767685839454290408808814238660407859469178538579989538292468131766271630218879582562090478219916211035789375560063367898271931018158823867373291060702671190451714589607253967775123226363401139987993211903847344742704088795301379168827716293751390044013829875008036481244164192754220610378330710436783021614201506182209423809082207738399270139934394323147352533257961074921354852203591044345786695104787283962687186583561633012188272756307555748233446630833900786958360489809084273547963101636363670270408260742060748307561186947049282549241554646277292494167179625967686683405081356333397557231249341548936635965106013417617714581845192284701220695027956848618243000907475728359080881368526383768329225129236634612422796874681929997005684755625203026688023293641425120431494439984975933079102228922739139500689088339299406198559765529251912132724304295129388680293953834930945317637564460217018860953460766672453065408071313050798634413763806140456227749968097343159844712938369854606250182772758466733743344362288930329071878962450723682254504530822276129487942644366310182892919973324268684492366587596805235353330156349922761701389970746989962339497000595833442961592913098516841224221546531760413573348800415274245974410770107981391430054709265948800088497861258225332391681186087572619109067249246055590131692652785420014042328931483059796719079007645909319191307334382241714798541396779369730431376331552546990612982837173637974359017822892183064102261835427906707769073603755409990825019401804901894990756365432238895826142620663759742391219586140055054859227316805813915232588066843833135765570613076481987098560318599015695556902375680232418711833464498937826461577270367162096784522704025516279831123792006938182156259114685322104378558720355313906051899663134688231725100507373469055859618750942786558001252805349535146233080399518269657818921354209505113002103587061253003138591993994701385106678353997764468281520201567652289841988082221008613682295344760831554610381889694869663244772360795890890661384123159801600404960170012101350449375202010923393574482089346628979538427558406946661087786027464362613420400410943014051260087644141917234163446770177037120095754744960618869892911193066243479802368330358309694551655067793421831820866869070458108354905368179312447256976731872172144230379997113172338051446657286060868501890837619814876790902929339826842778445907026700621286875389113520851720749252570929126801808793622744324510440786948454483370101896496816368637144364502410334158141199241530211596825100062652162965626850030310151230458855550303850252910906243418528414292236950997792396415241830805174637159482611392538987068551967975532246575039394805366363418184351188006991933675009343328325698184402923014266162086896624935312739855058684699004850636804249382535066611863537088915787908752430894713571182130683965033442909812780281076788238384510877272225473229627935397413678670406998415293290301417868327287529509443213867396956538524482270314287047625230340635274478589012811380027055975416127263317239495326461551297976673218261367789209473705892601814418781566810701121797302256180707024222317431610669705834061757565360780148479040614106754271638350501220138143438526924711010163347614370646614530013737166817789244652073802810471902793833088200396097143942520082955051184058874496349733627266285784703371249757672296387309757761506682309119999527111802013178458704372001273317334414157109064222730273826334744309188562343661415761483512121630030482336722419452423599665450433060118464450855908558540068676219114164028653721884539895386420195376473729534683460985059270692773272262848930074058802319288304089395642963052541921994172750384958456089361841545062431311283372829742022211839085862174947655651740088848784606069779631133380616935406666731263446061900259438050172245450723717528815132539062765356309666538659156650472706804784047512114573008267521836470269653737993419020140912310641565185275009761981948966040566834048050196306916825778412394180687926516687836896100138606004960462144265828648634492758665843015537556903809187196480477634141590469503604257227231811927227788764580310901568572774737881798349575153070842473476953502123820868797267205928556588548970695143848329175082246334107294888280362557677008130979503283444758850687871029932965255294244705110437868567267381341588748059313571188010015610391154791400622106014291891120704063459938645975962241137722671117136726399926188979685299212637883746758435618794783228252214510601036174189525159778273549303313798097890596190048867251784276522300652343799209319946065709268130550243812350789544110888539767792707760541187160565904072440810944273481505221668441601472993146608020579290533288513330600416805816473555402555109234153831458244974121808416754954952216362138906704577445755603982270916603800272893837431222152826066989054650883105042095431411670666960921239138344874226021426376504907004279952291824615334062423559062739447892278548938299258942315644816080331867106513046489857663918489443896647456990451004227731042094644605027344774603536892029333548736710506659089190044930008068693026738182697321210144885568162411144318225883210950217212531838217536405782707676783925527889539046230970973213104333104108081956586988743959740193288113796107960170425586609483370629927693428436057995597285979217132518028831603980560572328092648128655819904067081831758964386894920531793958607493437749430389720314179988094275838668509755651285834897801033216953924263290646840762981453999358436934866159474207068854196972549922939303363684392901229318025312536924525704551750228793534326703010273074806236509384616419813625922094202173893815021755214408124105522800563579499211557703468117928852496083271658034417851627801531333387231535783000144157007048229900051853997802851462990740500605212669889910234638831472389948891868679878980408718621711143282900339613980626470975322808431930929329735165133586066856157106530103689360759581022465516914774535641763450931498080639343308286715916266166050654238794021427496637592135499442145265738907406175983829891065228562140437959224193105396810277427834594520626091496850525076022006007178900435213867431647212428768710009448135739337612753358860871652831070259217165441889200154267550938947071969235454097626350205896283933697215975454909543326373877255270352684068958612905939498130964286966321551655174504567176374250848161912568966949394664747534833764605728941475753462472916422978247209640010515821030424804146567740901657782680159931456824681489890061469638558395303444284952562507257493776646669238859485980306055667616352797022709222536648985725550951259984016516712422586501718378810492537004891452786428797754896182792961757039935003733476395447502098146334712283739080402419029942026063916272811439644688572327531048421588122859751403121594194003190105480002760753375581968037772349763675490506737224127342908121468945495667832148037354137861501691288872519680862783393316060803234702035464491225495024536472308939367091162046569425418562857753800569444759028405168764365095662940892842359761454219720600955741883447940136851130194955036489960248532717714083525086223450854652436549964639915765601056721894947457364699509515778869410105208951885516705717370117741891413507595500925944169030027905068500316823005792538971714567439870642045575013943359759076881123396503572551907194656346967728763637313257794744788977335908565797047471762150680565383524274476042187576655751530953962745040340627887673134711045944162578017723240765596228629819006041114751777468706540563077417082949797973945823503103926097186209245520499636446768801745548751080199833134803161813633825009997416892067331965254881369030693770679954427924840139046332460646535981818625520933216894057158652824020699582852534519706086920543665285707443987190255106653837707724453106422681778398814833167597718169758088209128918418681030740203970894807600918452003297648192847582526720833411966740766993370823216954139906785054100446320950549311840512555189253423974270980853778056589405476399128547823337167686746402886866045140952157600618503000746909532356405934285716140620124758870024729807848667351969266199344409674093941071473877646905560361974812645159182353573505450412586744076422828771013741532659653332585793171304273592491059350421397211361364957265273993292399958460194094900306938064555154695656443072232256550063367067818284924552202397553989053873499130508864927410614280422148334691712190848869174142184490099645423966877077987590258684056139449584116519585608572184042296151159840540137461076443247190387491217145691427983964048357606769701950312483781740328796295177487926317326423689768294749790402839421254749222165947050580006729534595952722226288390538965475802639537795427488695989962799725139787451842549932662623409491362760563891445117200578224890320768854945105862482666127517232098300255483499133762327006878068547684587039119806357204042457362795160220341121445829261684378297503717537346345169632260858997442242112815806868701516640863667892235354877149214185273289963221462440223683372236961960612939797052754309012529167492931785016789955327765088010939469877970591487651292125241259505977859761744189282468627862766010550332350102253550323465391138484543685706870078208568455601165103589585525361035526970761511889497310388308440300538059395478427403719553664637182521360114618746946543090871451520305313105187958419592642795237437057985425356925588351694711125278308268867547182109558009534835745524647576740757985747725956906467724779720051009742189305394112042025932903126803262661055425842893734150479187240741069483737455313265864203770705438385207144125974871987227634717831253935796401849179026560204679750083828513970835691794669978438078630377777457948626281250070271031025635124450277105642332110306563011637563269145368727434372878075670482810490587230199035763546653130853966489102037775748681376487461130257502154967017944539404943768326448318150512028700148853737655202326395120303980312313966228753605870927199691274665131914850049663651102849156871271587685381423652519746723894915445906158073440044513122704361523508624332440016146138791379903095725963538739568640066918908700804991622732545988000982835961354150944034459754460927935321424116479951148502804377357237763708740489417250446241061706991942560926037735921792758471935447783189244759053495618720986772192362760217429756316546146951623075072779103059461700870953992127339033923869711360994863580465507942832146714448137434507932040506969467378364801245689926552365144480348433396381546575077609517571971061644693104789940099604912879418127502102580126102288296539144890410228941329379413997491926275840865163961547317651676985056530917312949871698076952516202027054080986898527540608068650596946770309247780556246497019964798687074919392059982762648634898938235235468490304086900481290388998753079901665254610828639474775540237868869890134594559048667119325206778441018479971109634342379949107832897447735502268142141539408235019841398688160182736400717342382255738289343992290709903278227817368664465054198881258526230667335259426629889494801062261093987976770975560987457458158095263739426600872629362717780812248176579172940622932038387936459811952074496907555879527840920857522118353103968597677932302328994336076920649408682774935373347585687228655568115910190199738433423762485480749780370500584271717887741245652257438696051753258232106460918955450071106531879546835559811154942768836497493349307655215677619054645997950687167047415868883370776667259627941733229917306882845095472821178125260162499342937607395087176603974464444701608164185751652949897824898901768591079248629618311643563010999176301565149668025822489022299071792676366635887744516145420954446269313503776667234138176552912247166963078195375081644896465530495288105034713825102569788348445552651279825334801520208745296552586533614671178306182335352969960411038262429888307169151873188755798989118413508415727950383835919626680453808780648965689242308620350981664840017683207481502468717475117910889877860213686434902076996032943852475961396592016655049851123793437388146346935719822534414778864267429287065362696392337741965367680359326743147505278340820504716743288430571001472021635661180271273655493461107049044407140575389696931807959522752327217335284507125506772098511971178961675270946041448973557414776323411993275554643128155994339320968267516772127334507175970914699614606376121468182598021278282527910432982138838626133054965086363161983567086365279131257598494357286442057325920718753272323798221714258562831789838905433537339406351948418127759859739805368090843828496417962762590697182797423334016577733195667949883010042608771108413700447266166855807243007615822604490232615636395518890481418091316637555441762853884401609763446816565421229791201133568983883512603097114187426314777691937576301673672594565616660537366478865673172462013690762788476192274828338279487867697234903019138563443868086903519384071939045741013646841226827843830813106572284995735969011003336241653107157451028767778413344947443684206461701414050231903327104129000180051430728412669706831345640437505024626189891458442549710650245859853084246874736732885318565196352825791342473340375006576702959537694898004000837441923227694723005301809953552958417041753944653281484571429897621630304622704190202096557219961283784186739522538709910536228805908543015012879053888263859106525793860412282177171446688780369613687560423180978295983789171501503375077907585931152422914031182528954010651502975229390733230997390414073697004732844314108486953760694064243922603550613590209888765360096056598037485366588846080505874350095490705018124866753396445496372341453609310630334958320966800834917445225197908833517288847673508329470051079400925553369421725787233024460907417161169886430666232513038319469328017060467806092310242942496648674129174705834426695216135956881900515546260129208242650407820867739240336299696924093563568646162330463793688318836052603294954789854619625253493495702014757129841143635382557726428413503901806699424201332917423411237773759448372808327113431763212596529389171748644192493886009695159241443938220052316976840946161700355103808502803410679004802132224073005813971808485947260354251543980727304459640023126121371078324962673674430498193245384393293882516752075833131193556322076326959304731673353748703303578983487310171101645597098917416284914884307102733842637598044672921186755233512559014089348954373718244672198726635511845410708739858563666572386532692369084993127734028559611821023186029770795253011344012644385060887978549344210011761055508336432481418751838496751662130264136880742367708691217440556119491581352680402439447490264231523359685591311270566495943687777856294566122122766921856852390905779988689978871987140151150220790107142578087717385723887218052757022365172447180314036473357846601690659599790069150903515343806930014670989832005236288161396508394058821969154255402383536428198108444409637846737920609295642190497896321362893643132505357032425617738089785136544095812532225245135445429155993764458195951929320715537154993561777033488893789901582537054474312530091328409184039744711802493227710996906409053969419032606973672890878220698461094528322300477210406017510644884662720860866763872456829646558685336449108809435952331253592598205533134737381779091003934783065415992793206762540787527931600979023599247575503249251889849345483726092601073277026267198366903126824896009256980819182958096357541547526827357346702883610397394505344177744507733919025699045255202035656690911502215128075923171353911144944170038226696657064400171850217474552687656624461389022962770683430185973480701953659595984460148125871947920478833434113240082825339282776909282993735843308007332286076106707378076208492701526790092739858171230593512089290038552966015967105881356120683294291764480712890072129413655526115899672269776968965029364966909172796093688304227644163726920418789985751074779039350424610642641634506871718231521214907301258605652104697778838896724770360808910558873361440460488199114331270798918212268990070259252277448728065029806124937809653398289647262004783736890335527472853835998464744015509044506804699733082141589416016239373529716112324284890604179823783386854627674199647115140686086670790873832441597219198509228334891755188604521436865765043234286543890504288342049598987025333921907870759885445548164262534345872552907991269421250887103195803185605225338408503142364088361518660156675910073430468400308054833947075768285876962182354450119032277332286430398096325273721914047139413688834230241834036657218733079889355085237948686185822421416503280586040254604108952365829277011944327592599597576275419036441703221855239889863167823856303203289284407464095132895255482070657172465712301587756387543837363993561632481087447882081443856994783536387732544766197139749055210340800269948615330839094469097795505430384467698567748464194770694354363854418634203499254363019624771383362074277980543802518686039853321206762429178951977079894702139727818549134393427359376588122069697694405756018002672660265500298191976339636137016360024121634961718775205111951660189121183425114765114013388134969037791318285652929859677805048825411577091801641546684193743722073129037734181750016324705032479176049152192185643556436656415873983162626299766244873215649392819996391702787230018624462371981882802699741653951562807199533311964494600530636776765010727025518398926551747568147857772168661152655215731296516808912230733145263450818537463585630104541094879517318879626319375130240528615061397341613747471080082282318528747067126739085349357133437236929305400280473781476632515322148628157860471151082988018451288532578074273507265753473434163061641155731166269544025556397668903972583438539332269608868745121033478898502371365800817259793152335472489329146704649570638133185051540953223040853069317705851981204505859214459164423238513546903082333412770646788776290141952603269227629927986987474934326978003115077028314714758896211588987470149985716876793934830883187407894106013895315117291398540630990682040687807444230748648084876253248284641986370030310142972138060261088088416774146098913621137060189735141624220141869438393494895217557630680480753527060793555808468944395377503126678992715338429370016210951436098692068976156183743495729980214282425749519720604990966546567564780816593766987551556665850153262371221142852756719607390282661636775257844258285749104382405441719675344770594086125439313131984594717150079754050959202884423105872220932935843186418512543734076238910421459812575144593590725013445454170066116567254325142616798958836662306456307436242214121522553637950561178290600844713913920768407982431728112999285368717605238747652083974476855188538585725154630858042829532841060621428290522292769824243800272639355531437353791753785778515573814628270421744621506036591599226476848436916957441887342331124114391544259458189345921850209999194568872638343048014380204694714347756982825919247009806122949060100214182471251112913491605943137680399128552740840993629679952003052995235138941272133937019729476137027193562403876984448186669028547677226027193312856746018973825247205967453699364326394433670203455548004484430858326732020257870959060254484493201205679434435896090032404907813188863098539653803913494161202361943598319319911113711887354177610789179343480439482730012320754199344672718688169044259593449846973954656170779301316373197431253756556934334678354224314654894751840333081116916088284703396999253067895625399758257971094660108802141237934607919927081903092151644082010274993065403815971777424514650853165785689546743754597768739564655458582852010806173565710133083637157859035832657274950867314655827466324238966712377390868546623494466556095630455023404423382027927293812293609430241778699258086883764604010739170394673959996640412930112163337094145746698395582521573470191334737758857069929069186928684672309004496577431331707293870343116671264585708967336043470972072155978614249418936496206315471965120120090364965949507765014411478099968953933638845640341854680225896923766762436780351217726956139981008115079049058220205096058154709950100949287291516003613618823867821315963304336896739691711531840436628040818299452329609747449669265748158770227482211105590318872788272937538775953751722356756535647541126095443676039736971082534267840002665022203924328413824092171017315604035789397674049657545505195419866843167678977814865486379657464267144586399495852283469866187782141685111794663748823018094636949102704138280328220078517371904728579494234663646599110320146177412103157209436262984444226256806811171850420495878318064748060492851467408568845772698071947724108514759254812157171769777874640473876115994389923547329032380574907113792895156088287728612900787754084116993082653202032838815962256987394909906016574665743234865156574022823446349040255432632247930565550194721542357344025405752207872455449514947941909834987936579430797692516408503607132936189926816383304582239487615420625113028085855354231398960825977573381526709097893981528103528057093212410444640352428129918545888981559492482911138017721833323803540454704384677797617043342461260201099463107439557005932923163476172695369784291717227245212340182958930978153961206010696126028789483359371025242596309923987364468977790582798252661610951874410212975583513014421549708068198349309702978814770603514459279681729066415338522672071310927164972081761604379124151435579045586129344905270552146473150464978839999183248531981106385368193600819223955970281134128442964499877336206083868606339697498081029541833639193727688843397287165490745640693819908581431272898899310015461273620951567544671690891445612824362608303374103065582415528100035242281527715571782318509933844951243432367210670255556156202213886748268876911362773093611863526960620131649628697070102802495123348453355015846189358903312623534548663903208581338580716734073885042820936175369548825769200029296680829294571522176406628982736597048560522649633242454381496995335437613013737463631531859324486248318294927734236347321904010898796139718925048944246906330433180574048955577795642009992205475602068121598557468828277498549137411070429625272963052273537536381110661849525426784807215384504012218749555767937473006527037315779071274762825270372951053859318568368467028549372059428074584746249695078668332869277912696115436700829867812737671447870486331162534761423577809672097704419287226259980110438645312624370607986694948389073127273764896743643206086122812967689225896233678220670722674168796200708092294965229367107206740090512279878191985331643513319597209398410874424201137962713061177289413231070831088040691697964550928528908849815362579246335848892575761790799409133074400721221462104748168948215564812726610465143241639707560909334098793154120133667582245286559378666718177083811730750168988531931174563335977885952237412649426476433303217463229328552622993326583845168003902779151997013198832282431087030332440730822619756110925422719635953145112282222077959546624030554353873916308844298743997856318175508593299729186206329019831273088679081688864790556648142201175362280807711643688121650904714779314268736710877490560159157634377096796515986536426537578254068538680052834725927300448518719154199532105366647841528851119186058415453977342324565958157231031908948247256163712708854341250075931760033218672499860684520284865634555749648124238419596294267554606846057309066449851488876718552830914291939495675361497433651251951362502592215293534223745370762686771018822073117137621390006026488711317052698255132162432076002831194102703602764626672579239457863912665191528007977073482548161201107350907232828720807302136313929371295637118529299752625113624935317487387338783935233539271998932824686476990258626046860074077589657218421660058668575757497599132035666510523970567044787928777336913172864855798939135635084410041284279180922295951533608794981486743972808543124366091975973793713899219572732811602006472812488530158147444829029305552719295115711545740551744584889184355974402569008168089673116854482134505523741892624332179826483016736427126189584411411240671097929234214370961176894970779651992211579186082397294158541165587074785933606760990190189683568806874699082896828691404320209651773584756227341619943248283480943874381980358090423152681568590777246648777461904113166302399247750786233121918188350464098856440962544492215718561165143953672140950954966970105364427222680519989201433678428839238620020914301478285232363958770745340893077113191560661916406043251813898947939638387180274812899173767435410514357525953099075333303210216724805537059422994586800605777284736869026001278867606313298515317420770975885754129047803069102560101877380072108377455354204865123150952623858964506193873643493904867192457306859541579371359071917985976289190496692509189669743398444084555361295983520356641794264329418298542927556521264200216745901320094342002905896145172853584895883627814099666845854939072897004111786857602619092128454148748378611157260650591648210590508988540790959284251025284747426800079202679035500765321187168665390753835935285835068139565736986427745005152114397862693468886661804755575328212670592970026149552455467329590861659665408252249992877039911685500423425505876459452989933295029675640206115673274225776573442286997468684972583746038548578811811075026187552795324452148728353572969265195026696401531706082248530545786074248804891110745873813504948700746870652409817278250108746454714650076624989112190147423569029468881636592084157915827823814087257594878927036668882412476455235848077927869819911379193052233936221255235203153063678155163988731539448836675838857796283663193177255465987975838968903563237308325767745387732109200040871914356135109973329259382673457648509820628838395359992931173006834685283133981417625053626641237921510512496672744211302682403722043008450714819464307217280817872033628071130937724567034025008482093241299917879649526126007573235585011924342235249013246752965661683744283483667170061702894501006031743952917110580845266229970029633694997272122850616096784624578395474092924690304473418620236938926066930459273067686518808134279959848079015304889348561500951846622772209627773688129841263296255681654935032252310507113372919204783683515063006212967410246262859713282557437042903986581686987962575040193622879137547270215171010820414469157525686592195038691150279075883529162046056008915378388150552683683013789539733427011576373320183076010269557017723831361794188656412382216362041400510214641237944360145559195880273737005040857979956715164570583354481350575295472003376352891749527675456688712380960955147620393813998383318147212503813666131052048372507725521091297421131467533030630755007822603057859619544660503335330618842819740662888008509141243442496510636734344185523938847855659915842575081890699898199938250164537566287933804870788206768501139741837156500526982944798178915540285592661347055801886503137838798224028149201343511097911093288774902979983985758910171812623725716727602732553865613818488011540294051324325619981386275210860464467450315181638838412795819048463896684757253525785635485261865420666394097865532452836051340288450724625137128378941311262263675240920576489705475836997793728867135391795052404930708767477915399620380888868283068750514130843975184664949820671571349325889892295532177590073420631912245596721580253921594820710897587813763393752361447092325257726381695510398826295634845017591090411952737798828004728633340485203430500896928347142874035009756236925780232195098510863669129514608396722988984075608641456190803131886611879884851371641423741765384630830441305500955640489412534492517933407422373978008139654666369128017209389230762652186820981871048152066910917590374576043893995970535613319945608503241051868060484205398527219935396992469601850809727528059838765413672426289932390186604099222230817568577446085184555836941512831832217559062272724294164211791124085781138070583694276498012426620646143374076331105055386331946625560583824491195016474631676012349209438549690059582997760133793866085781744031819680040376053546986114116498712284458316036304068619194914928246328010614102941951059770054050745085052455997771950804759182492624465612304125220225695818688635504807220473935828360400364554444684546405567053402951282288078394343127836074034228722588749470508427728085144019348779071775866013063762228763772882271359616842584460547095644384414154963635949164258300895211047200937492075640253640397780476326101569598389495340237919309373582336215133394428511643630509705467491381144306971503067874109882617360617475063981869995220300974748371660409541753436733425277497995141457286136279263302049755760370411508591135034453668501827697047716090266662137789769825214845460412064823311485991115487491678060949660967889807301727659790060763876254930729190334558587996586064091079970676123351697573622787329567400963782158081558862180044057754137142534578059450772609344225025567319144411270283730391087026354473850084148484503018279531557047374129018739026364883150467323416155233125099365726170923931540691938492853442488482302974695769606423726185135837310843266351085506492073522952568596239930702435400989810106229817566081167734291642561375630945570193038064041817500625323003590258606863178558406797744623959688555977185954175342288320702510993686649653833113063186200617985151676799623751950797784090762160431298504312033991464614063572940617941029100811684713466682528886484833344167027152795468649957524215285703842894364500835045006563393904029104870469289691921064728108901569917512044160712883711734392213137583607645387713968685501281185957281204701411634949433728620022840553056452721047876158949028602834574270231962617927681181873707058833186256022623269801109860003111594798010388745314657166260208803593056785166400749481728574148045487665622855086161343551294804845900600523108487047427830482308913842519093695265044646022603100627197486614708476661341669773154584210529441364449083240329786599696419999899571347140123696718780433532730123462983901140742570443489273879288409882967192508990069423413213925635321751838834434306046889054115138131296123098880125244352539858815091907408667152232788432285910019252429245418082304896051804594303533753458989413725223216562207771447259302318648114647341719295081112332158803509789919974631374490771463574536101483362657411580184285823875710400295264578383107353363724917243704474151452131605289642775440755129608991736474770591972177278770405909423200374153845723919115668156975318526843623168615599145400782367599387922210796442425872614388779013346832072072662589667262384790106357186295480886757598384145091144071171161990046473779822582784368563738941281255888293464151626897298614520690916969946490805844109152726718858243405799349571458845424146723327437782889483965481303922986356258740000388975677398278066001200659887627998250548798968548120789084146227569164458320915418675378286005806132624554153696085583528242361712468827718091622336103536391132990102632153865370070007337582824158251549953822054162056435058715907857922829895918200376571483930522314854292209580369147428493743251167583809471679814825465641470852975705828689247599761687188156652156691881221064418538483877460590307156234038057219771278130127884350851290655816844187074073595633369930813868440890798904926554710175813896044116265353842755860985390657101799475701641295875300311473901405116010851546689136979879485720707056591771338206349428625673986987573787752571717016002463867035989232215229487280521644860021278468508229543402813751899649646805935988273151957548335681759088464167976393835352907230078383082933305887517371952765238113685899934716326469746838927223183303099041663389390253617999129312488164974361396586218928812634199017298580715821642188077785008239666788921186797849193198555061413719944695161217153418784572796429949163154384586197786890526006718055038487808874328541445573246142525430851348690158954253309827030148933392965890296338156986552964836027031159783915807981394938867441254095434838434211853520816815994412277026203327486844880732336860854028437895213530844720602976436097353633484354471138657804839463222317805074335048075378733069973235469429561762417165563424138700782607998174125482254148628753536201515230856308782665628934225288893240403011819877175274828514447099178683013903141295865130215825607180931257927354260928053655370551657619143623784427198384795762147010945570616070826791080933551935216045961506144379314731738758277779759860679818769553544561070991288389887698704023688491032377617044587358483865270096632544929693800478625770707928984172786649572812859614680816982241768071595543322115981590625730342585753262187299853113319706911429485398570017021330038524445744355927822735135749986027107909042986045702175552562519172577116485559011893401326016046699410953143576705797815944257383931091561043472143933049142576947295229897237001759060513226171719905862880240349447647873691828884063975349319860798596962645361883890879479988065721431987110517616403048024079630157804101983175951583046286370401484358613829330152868145428645983692829263145204529460685192623728805256139868238910392941919107464913676887566948465776254088065672283298091785566974624331375182911240409589916115506620154257154331800418618685404284365016223157932901101596923225891492808874262694212657263260984502670454856443470438522291550138674180180234166291438089457703704166358086292469135445148276111034944833433838883675483345302744861780030730936365237759339667622084520098115270963592219699719581522162030580181062287953472629289616204379601453340341958202151491060425674316439541017212176397412781848335905925464945947792270390382534322811548768516580750003182608236073100340103903048612105868974373609903623496546648642726160326833261572718627505644651729734811910387104727208198983571113009567189291449653512496470637606743026712156982746276262404129335071806554934653052461628989239062248679375724901969489010856025909318666727892687137090168072306149816420913933106028206694932692663314556618934434426138006046801903539480880341894336390706003477166762652786481554576385693473602282780681127049669463699405233793578029992689332134071295334862157859255658662089135986765236136496657255986897925419765779226184021495439035649556813742569986248163416587741158198536816802970534345693570846369091900862596846911296054101063974330403324083252542194691940958164765332239765955856966407150822773708637950979527187968351596260903800426736545234569812700632300738246439421065153848507437274244636492954359019085930202335336012908116441522559114577596118332524125743969792976101456595629412916012477281230860536178083036992943859323904690036339426785880307804960957191779705505909291700226951853220572466121101988048228770769690254317349166505263241028691808419082664719795577129836872765433150784986115659885914419040699584610713184907323779208850667612974221921943552241750613344822111756439230468211692598757437669977250674040416796130012872932191881112884761506119698891159532021637947430881347951169322743300239760777191672154075542578716665029912262957401736451644957749031314699843624461502050847453658146432851735699827158606751393209588072461909443303290934553643228058519702792695145922325880399021173299700948791346430619371309380492319401601051048997921557525779135906444800702390508737415647169630841206378789139706771619754313398086366827427982543612702957396182577310611762745342990099641805939270079246386780865840224629302748247352273707804879611356037350144953518079454354086860703988536952388259305740920519434611045484198693653667437657033743270724767513393531893636842037768087190679774202569335959832851333437494850918104091077487621112997082646228320851794279413199949746070186497794150916701563265197160064985438792227328830538571815791401667975558863354136140403539139840899793360912255861188824286412731872229565527222497300426690518886818445114195919994909235876177592804906587530722107680247567981042917238823813131975074332165508505000116163086455167687254449830516625893552476081876801510837625025077477414714847154478197112102691460461269525514280891616017985892778526784168535400728589254678920457533285502338100150319021037473175150279672462233637171666037804023603253286915546893171391262208565490054006613365838847975871228151071041023682695105306128132568304255244106379755122234562017315257164553571036444065000130976562017940298493886960027119798886828732241414661234794472720492703236530800863885380645205743635806191562647511925989620568742080707065620390465063999559195757056771562922342433466408853200867253487663586729122287420225576925413971700209397321757229977204101051239012560530751421937246283155630606471340552332920473211521738644347435748476300181266192294417864845984709691286174354801263461963853518830714719518484055541469461194080999445160685512547301837436934054648829841828210141770841904836910043211117122105848418656406927255425866209916071392283395270790171397816169830292121226483595033814023691232255238953634425239168653334933491494783398732804580197424963855187842951022445228290211706818256993397549478528571211020990935849807398442433460763299858241332485426736835076526939251374847711310496198626524670377182562237770142252379471000118243070411086168169756197052236897509692343057836352110861380099243325314961023535804820526674661954152013957373452403890807018441767079561415775298334592891341476855351091492138610471975199988793450771587507577055858893757255122518276473640693334275486498001538303802414096106115630479803014228275915865190155644209802542589398757472357193867524753917960644980939912299247023726172653368958832851457586722768148796807511143547607556233811034291835469801306400019218986526418161328679749541151545963684663844502240565923566768399823896657202788868944313005192288550327447515340552652658260508018324451652420574537620971975066444602415242410874097370177672470840595894067263423908849730150501078555207523558205416184254013768418243349296924746648577061665387092024537535123444574247513154424524446528474620146416186879456740482078148329809448992361617328936393352691714805659425930289800146143410037595888664784773134215739157063560365649793927022762959940224797604662562608411642802208364411992409025531144948729980324224409306454140460740998700470628486574430093378668569289896827369423444435430442737508961527103733670858991564008588966310867002696729958871818089723409558644509787650662012291718641086562849864585456540916917817438279118351458787585562985981350559571073974004426238192812247599675406649794112875052943858115772755789978445794704051870951989146494866285204188232921385902509550695691745747562227065484370343100429702573997486855143715387769159958619987193420306986233339286307989583686490168311609006892382368921311044825834829227550816365392542449165895015511403773174988356106635646787864388113836540096685363136350756210980856544030537706392730240944337341532204036287333956977554315171927082124751344939520361064268600513337013842479690266454692001036698197479123533851745015955432375869606010207542201652574100406073360464906542802092385370336282556630848827332571168982179234339909808998328013364738798376285686754813660613528375554938517878937534128850951003868126681355406479020532630351330609471700736241023537741014865625279109561502581279920301909480090100606521234392772784109859040823019096867491956461511804858928204347056298084124433566159574170977216845217246643661297970990338083905475602985068957628631530566829343368511504418478890202238256834151019648638411550525695262112035034144735503739723312264735164866331974966610430564501354282264826305091458021737776336547313816655650337657585214106050028934062752925776471381866991721335067432585535083816638131924711358542362043700013098254279388003686298751875236415511460899293701821510031709681074900731706557216025723383816774514460986274351821085433557544524778581940860226187715089116334395255047269924656422815607954549724388625975832097965134099402422942286734500918527293125595824775931922614565186587956950786678462703094930972810798370915806134830939821683497708260606891108758603157004061498797096142895530168686547199269818510271560043893863895663125685238128621530504508439471202737855209113752181385567686887026960345063826008792256344501601332332144934821549413103065538845519220407337942743795832505838621587498732154473769992034886541937527898141501326350530328185176535652456628492138357371885269049115213981548179016237086106911326063430189751736248629696515652054071503512453196636095014759741306160385649478913602124810916282627149430178412879294229499601919209655289019011894761336692429700731994585340215247729383118398730646361643557998792521666564093029507016068256618408166113897990063616137603498558366741224407949388382149091380291952036528496663300759356788884727367328830194693692306583732442494311056654789784160313297561396266122673644280039307290880625381273818901404388244821357610137921050624248084783354300392767513605323254002043926957212284286238930353929651360804866333197204670102244434947292948105414693138386162220326765866627215735813482377945351459298211134362801244880924121968839152625775464756832238319711342074932246782975559403106246703840719565561669648846414005576030858149778950941926394044743705336268090192702715219517144438655166831955299186820178043460107655032321567732651155491564886329740803652770612684422723736651226700643173564932117906328790930975620668517482618312130856398111539091345764727618273194678884554691731831642061292445859628823428960513010769308122067992991622937473094190255437593016346293989502025006642189220786829093017318261509154278312139885283402192476510131586638493576282684487957361141481584807316026896438552109077598745335804797485471590402659360759753522422602972866165835228425547390419656967423732356095930459262163781984166155889178431779348948821709224462071891466134501903903305099748743336326918271759437168781942698376076558151476456645607961749759494146273864415020277610576184277382025130418531662144252184035212193266927301136827912290748644101993869629449065286369128788073475163105242294535124652791250204212865649156159992198877181601101561083499684241450165194759343940355506785332693090266834729460158943259869506874715380871939854588619544250121587090100895590849720288255172287895236110268831061008297800578994628367492936817325433592090395084952596534961514543140496525720464881273188861387065712511602007683984147797802960619748804757154550205487646375777375421392753375309160412513922044657222058860311256713016037658199016448616047154531461009495577386275395020884314066534175789916730211205084423902569795529774684319378931281268876760028483468614976112966049964117729392676793319187600731684117448292090986934867941257850150087745229015014659702762108716284092730272697020004222800820368998742956719802485315296237905960088147852359499062372256373340686405562062892899084290885461493484327624565858790423514750976996906084761612572176342194529006064496911808968113475998298222222533463197223050196782279873673279344847333233555730111130475730004794179876232406972658425682781507695570597382870040441852867174237468705256296101842674154958587198415661698558725359066584667085491543132547450644423394119739226868685550515326679870633379403195133068208471775046295351573641864642119390848779151642246854934424479604248321889356351436236344250906087127572710516029292298206956476370199714119660071551779424154085528186865974438470303830949160718338767815473764281465220809680810452549586372836337728158419876002412771294586282516671160053688739727837714945338378786534294289005399042159179130085802995859101334584893990767774060763387892998098968400286614773218513292161488071705859308743116895686071617881294278494698964631655833262284579602640577029725007444125810080292685482777708547557071107888685448380408768134685702876285962024826262916651668320000772984224382029415756538822753723006948661152284843794712482804439671554997995731812086828028179275675294795782264315068969310600728390122060752173106664957140044043183188171981761878838451056097508657379446336148143746500854223766665562438662775905810827644993109839060213493249267844212227450558777276889926153244342395373633468442941063364483211574128472006755564771862083383439676525254717499966037293687005462114660739313521011506016225338845031644690393565984666160083720401875291135529037916940496625520240754132683166588245820361232684606807320936467605539443153740363478790119690061365112599892596986463177352411954047112424576267263636342847163843099494466986697363484454023780300249868565163807167741958996441867526555064757051823224510656827806450009716316551242817503014652734676042693864679312818333585013989637257517897514291545957865072802658035419370805185541453689350977000717885046121207202027913492720323954053778375300865074661743239124614656971060738262497882131751938987582983578781628730802808745503229940644340518465524226557844226952878596919021812735955441992265397496354329392761390914817920823250476391785698935644851184611221895664282778466189708892432112716535078689387052797121101098838569360696544311572806069488537990517077506940407060068860982367048911876416218084732223338079204118985951753968536079798003600672150226436723499568471330193813117395406928355994267498801584703733470271944379325841869437897391280113902011915387981634645758236726112859688131739340863587541729769328627086908206374937381550898093709655864914952598488026821708747961063582628056466478329925131563930446989210447479730162573398640956996657481289465415567993943074352825337758824162237551753163091143597341124383213952018319885396982774910593770774275309996012844606908226858718408632502761812655395471966412082124010636260139565837651719881055348022487664568046907821828926434572220259220910142397679910497450777487678917210574077204818386759486785095545538706078443706223017180741306599324954044923162564919505472523046967558054771843286066693110289109850826026026006308589719806691146648516478000958396653227926878279859617502175757076424240708388354760316052361028976691965062345860972646368414564960952626580472186506189329825210001782800894529593111140501370246370687233114477910071470230423707233630992364980111958146484500255541706273319881109000119775609494689211891563701102379043675275365314143391902442297908277927013584173033287907456601831966773675545312034818747836824971969837129585453411706605607151498476913828379992470513704900606948773539661328801709764588038132306322967981816434772246812668427446144631468441358151508640205665871612266887045538626410407915020144182767200357875607306916127524155718813199810069291581274999767964139477516678977621283493588824049731513062662888312795797528230177305870333594401042605601810397291971744502081562242630503727757964732836282505803595581582615571052089213008207923557442857419100366142233405586546399061409096730211404156357339902048908320206627181907706130841730372456001179633324728194225262592457436627462549345976188495493392671354558992944860157393310345344433450508442043640367409732719040446285923202284835044667919682366328517255066921249798373161289474069219606445561545252643496298407695458435960261167320700758213277193917327282915205902379118091148107489274695642594679795374948710778582384310144710849765645910559443678954533094802910434806905299670346488576435384963239830498345897130735196550959149729896549314878813047555369854426060337325314064809608380526710280953787521997204224287016126047838091074075964391956943316208904850103716387632315699836254318282705607399996700590305942640891386648280071843340285950099093317895114448014952968055392591660556801513045132344095148056369579822862350582542175556280054107978540700199815836630030532136341967665921813497238999659690956812342822686150184488407844844652932588365447660516366059349523763315079098832021344480612911558628985620444879449315232294178753730190869173944288744212152680740328369983486838453818454462632043015595303643324486420469414491867742866165924598506592606761340831768849523345458825553023383282831666074375750832730109536787443429143309860061700557461029157790759767450599035209211686193354548749704264785417007708217169709610131486345699188171686147026468645104839744380516957644506205036284525534470085303170304878248902458586059774855402355107169846373767462462619639138016058570028083590340430560484162257432380551472592694900831515139229460005586939727120591995863616328480053942905792593615491424839015177868526418711243724736647531521748518894561976631299716240966742124980053842134454037650931625727796411780583472667980285886474288854469215158079135393885597198654172228171022394651544285961258031893492465216004978371858355153869087994907685838069988411550266583082999276238402242303258241772745507426022843210365573596904893518085621915703940291675171786312179486604838618887834866707597147626747759340030691599684802024111084124166721328304245978324103923717497721246702734579658066004722118157955786044101301438453805995481549607723482681024098957296641425320423731965480350698931443112484133036770392326364882888987074752209182821186711653294723886223852404855536287158557511826718250872238017252515571076272175349605841930179964564282021208916907499163809271239620186969432248012648857605738173865455798458088343591555331320191958059540187879224785573395944753289688344786484471148301722987400949060117347051266355189081554697091902302470689128121770325499640103632287114867784633897894758216724760764793195034076003179757943654541069454660979725085582349403947369527345197360954848140487689321537255079984568258004991116268300038673514140300555394432164190182045049269645085501352854589382520080354955304403753995425815884586899188963894141853455862452706704707180274717961034699511035419837363699988151188010547609139893078622508550362305679705677672779482374965926740441855380217965337931985273394296108327578466275703776575975358505809872647894330832058558133644831083217345048470704533798600029006759779369785483766611483520089952884294276109765130763358966434490505606877541592748003857577961946038447375419824024085034371915368482001907763264283183834248168045878780718532392028663992928150170733023602031369982007468502433559649789385439791729883472317243717978474616773817200585320251543079595233842262271879464122289423180352532249633881157348930750376932165864175362107748710374573403961954819432395181840396555915624710659924707158394923382806198455888106344809878042755503499432291323415504323968611864870396594948196454487544264066859941994848652364506558961382049271434788623650982906272494431749095140664034175943889194691821598355127146621687606887479893246923515637566924025808506642772614538461650879164177311938353370729554151318740087204268542470017509146197285708183698487301258718219124297442439943060068131071143289476606980983450858808231460767929445139710478432415274932769757094320691127549186555066470379862375128337024981416930461595101422195820955144997791635409273522448413190481088942285559173582031445501624526011105747930874949477480201535736701886253985508337482926882042592163931848481357626863317149948892262785330275252865801876447318471777836506573117678952301126755678775334543522399668347813078716346180763860899576596058542145186283465302385667857874852039842819832833039487172535233510696601684847466923093610436173717982465343309287148674124353212804918332097908185650737534756097514617865951235019291837379613600598535961189923362908113657480320158593514383206669757977555922879344678931437614492255274202505548294580645478814636308328855066644017578270810888145332436450873714064048597437192091250329811696273015934825162299867569982646527074830999993045875324709825580834373987512001512463342425989991374075397843358270120327596055287198780166280033401750314116186152940697998378712590820700842640349011708007950260443551999752880351270308683317342679454499364776217277729429742384290083494287571832998313865290749414700208594226670304812599729265725853658518414568703556813215725584783732185179900292038445344737865332676245889173168518727232174361449420940802732431087919502632350924280010031153060797999281055852968189952956997129109296777646832827273072462084239512088381551490547012398002943129400051831696736103125325965722204222395772710002526390455359508529066810093130229071264967594237350729467900080642675295036679765441692003422810741654146091000753782701753258478262274289655104478115183186918446601059009495620592535717951971513617443745732170355135250603401576043968117813945137170794810086552308660300636323855270147111534227442622339899725988993285701760951443296499200742783598269264515215803841266618417064160880366557227878168701006824786833253090432238408979304367954953965470456751189885113714520733195561074608472331336972150929702150600651584084455919490428268551413271188882301649781779597196043439558028232873576691124275409305950881499791159163559093956521374544602228280658627309940585428361981149352475381598257117408642275440892942892556885721561773576647647633891591597193909292396201261067891667897685812593883192616344250273604165026520809447557679342739507251266238418146581528416151818300921235108434416059849615275072542167978846225656968149192972018438325008427771498662729574737024697856157546067142033638040516862903075027450713039662023217503673575521893980574835444418357934183817109725204170125983677708004114274818058860566716347842182226882696814167243881520899046224954144211770186409054346490352307618800708273976810802724756412906442599443842344962114748392349533233236384193570735436137384005684327931558485004476441532958298206903157449170329529526450491396230577602082980564961469197250111225594116973221458143773275986302224711735565378236511637292026864234629029313639931989917435031997088299450743918807861231022273694607742523435344877797085198270984879470160875310565839492914792388729665674319668476468568795540083739108316703835063908116345349379605658683945155501208922804324663499703158026502445092322739277337095671520553839099382650942189998264333877586657524086062712634844688839976419125096228621125088110993846876673222368175948115007424534534902108679061722425795518117813467724356423510947142596244469441980052685356437176660436480160003884484887679055066975302894894459151752733984660677465676783545358020064370744872436685295140332398399985100126905399132500709445824718565724753814814667570992471514179231360702641923395728921307697069728984560245865760122356796905148691241272883060603081053617023330248537026010235350638716321601567496742646875486237306351271657175139224143943675180121507272420787377908571270500234227910572071277534391641526380245610477521852952705478531052071215604055968135825321625469079971011261660179201021299541494527352255355175091659728194609132154840527677421496535582855363684047144491367635630635503446754571040264811885682726755468274520590023948193057426226437425920546303305215781730763901385148856823624276928198699037824130197800810187115421146076431673363053395629343937357722374013990391709052131380047880507843715057241885270678725103025453277122829945176608900264562265433511503866803105350850579295986812091410987390204868064419206411418800467789785346008796178760228466368456473623485123448405795402611841716400893514874610618711659734579176008786573950279071144046729137123983043486212691741383449425188874390175707634289460172780593781175236592741270340378773175047722050934302640670442826979870543678006191884199633261109388828788210579690041473975197497633391096192532142044785906069761545661447397089876373978096600078237035351852459040344094215832890708361095360782132325031239846921505040426498919222503392772155120906066722471020873920046210692096744100297050775235062649275066230027946502147996881284473197407021580438873042330493822235581066592054998966489482778332863785539172630424184518661034316163474573221696694183514177302041604381239592919852778564122766792900845521275187996551975203376787152810118830510673892697309373267256414304939178015475659140347786883388811128243969806006126413378916970882643496086600793180737563290393560512490358192439231484014766155700473571993754474014811941093306687953197374746713925078907853167939440641285219166017347385245437073235024811125217811685109728966894714165440171744277017923011012913940889218301890207890052233051382722986959660117535879750661539617024777074959826676075798048012858004216987114973448581219561911674067719303622364636194773468480825513978119323141039232573235720725821392631136765588347372472863979231649981800362553214079391178076560748166693046584942973803603483296884857400167525164792956747990587243773240651158122402772852487337140125076585015386087323324559962890835981089572975709587701765234039205285647923937964815349973007550972900177028358174409973409249229479146823762002245285134449320751470515962143196140319831732250282798179396422681994404464764672940698003885640915522034197088127652498049645897594531591808680402543706395642396796124594445656034706665280355129183911602108466084126752282335838925919992804431053319468762948151178428558950912365519489341781409134643628939758872408607557323442222137127730114180855743139560726980812629483313389227725131222573228513458221845168914978086040052968131160394466607488045903860137790348311685015381573828839495952036544363538501338484002380054294575408818507769591545941329595564858999970254991584672720807643756738408207505245492316979715506401135319872426906050999315213703435951467958203334576713088855790066926117648801627036133300394191282539508106671538021786855237647455387778247732487407828147990637246177418681977803247037357067721472522113013607986031230587915396036444387007121974209868760536324664905738770140129118898478339183362275479296799294632422178965353194600425585565665944159793546484006004894380086265223403083931560393774712709577359714054218971350156053172263392228335664664229534225014033549659230959097902872802185109003723645361787570466544719406267287610890919052177256792900828214523945335627481782717062012971441414819891781531745519579867410884164225349845253043674014276270060800667702476149091510206358755742166606345637233899109352084001045702695873964804868979576990877916416232459816643741133056676111874648310001447259838439520024843892085900282789101435665031732821470303384329608375408204090129574821188897209482619831941931987423264899917306021672102310089740550019126219764457555361436182619554370422601742575823650427155844732203379754647996508299376414800041631558570528548372956990035784636055103113791216210665802239237007187226013957499657711732628147408979978446976453944398175629511687872909865727386689589602885718092140446885671765607672675343153752628356023673574210591065889436964882951199898904047619059189806298030130413214388724837696261730968395923300794077882688137657368005032634705358679543343498664115699893420498607611999646619722512906310526943231522429026300876988388650004383958775307661209562936817789507178649085123307525695435482956304949447518178174298541918058795049773888440426987351488480644589334707193731533603808544962494269513543634479992775077581395258718027491889098257145454341296906971698913621075901065292364205215413026092243091189051685228091511225522012021157083662929940431865989919612042433642107235250470580276961820945097857376401411648547144472643649361085969373492108863867011745309872124532592879294037306227057503952892764165606006224593856946411834114583383760255056452924590273073287908503479480836920067134960721921634501520925422917640172476385618684664342078474023438484682752564923351601078492047354695814052315714312738512233800653256719565349322216365596442012958388768506729053519917424725144392267550561079877158813893141064784837517285865441449547012289080747669348402022689262789240332948587337057542445978052723816708476057184438698040986371575691951599607113405041664244171603605905965916922604582131093301839117922426194677262213424043159444613182237435310717031707269177901280663375477078369301392264507785207059256955338711981448626306769386079464934061807955480238731190702911533630023351381667043524542401120092916055675435895286077919221104196813202228134043562952603508333794641562415752420161504938450894411582816891648605160343078828671879243816435058876936378881031748066783933445515060171494384438407151442237789794216881657628635327802754482918560913702681993760031781648160142788207368525592091695675997233112786067260707521806372028853007370574586943018581535023614960392743180061639926652441701493303139829240777259773333951578328785437903591293133976421122755033262415274539275710100564199890198264781516631891115777478881379835761599550565552961930787526631525754585909830013868575053831379299979552272613790258747498860186782737940482790550284481636214052618123236328400108263640694279081533843907762448274284532504522882118362577325330776557859817190016284703776699990885025223222349914106589243920717967834435920685338353382561089257838089780786572771179036927920604447972688956423198261677065387037244853583794383996023443357063301775383848705422913666668556644134142377637515828974793367741300980140666997628763075162737712279253081505540112071156041167406053693802321000840136141877188565694258298422625129261506305327783585205650947881634996280158267779679360400550038405519453101037682000266375745313933319151482566895090449563788048250560320891633075255303266221125882574709687631513498629655038703126391960884151703465913858723527131949120039533371089500238197065096152360069890278315606675053925742299675752136567334490871384934090951586677684713825123855012250611558860335002018555634028628717923627347434153301309659678145066818438518090513844817050694677814037791185049723350299662338282901615397615071134582625327010782060220007940701217104677334364708722372987056172438982141225908950645596062317953805645556654602732265443483148495743899796334929083309569133197555241255018723013643298619655300730547624513346449479100193488355688310889696309730562509738541455164463861896124754153882749310871795445631927342804367954870100562412925794899517735613812507318414119831873725907584236909198655141312233298098920809158025123373572229765269434929626644483645127443493199238324336044557371006708601573029453788428551369681517055382126626984999864202183247056915491646033865945969635047013033292824606628427534141607052824521064557207774027282954326340870298566492782359354184579631913905272113927294499767806662644955622121098472112141437989690537521255209126295615808275853255526248829413930406683124665924271214632219292021813738196210085877726227854935225567098488619961617411629710491536172711551774414066222807828682547781653616212103921722023261358354134637296317261173946324921459969612683217935496426152984672433013019519204179061388156370851599442099419778616048830423866481935744097507126199289557819517409668485865902889697009837849137340147279877754647785575928826376942594923564826354822976449819759617842801866305951455824605162843323566978882732016777717336736513963021852290281426098343060781255976898556893298075134868063963622827772183686443758784202728620492907210429750756479214645837070847440575154191916158482408917866757757853559066046466740441170947602753961329938450159966656190488836882462620978593753039282172433056715950500297756709147894182250133702657403228986249274387593328151659678823736573444158861135210456593367527422176165850292527520013063014976744829789925616166531215150402830626338050461878229612520472145400272390137612276957550205409279333562374497448766257049483986191799588859117460397470103550820329922378582529872448289333662118269516207997138790203006823519387453865105885183110232567042740581097565725693449926191321582320695055496252206126342491520827152600085454114373228626055569116420822152851669379914500673158222722633422537910951629335621682477330142359361986247947909862943408917417232417297275356017707938278612733272603653505035108862991155752089292346641259930261787423153169136949515122156298606201178408152040759124251816719911444858165874847322251652013023548822987969210073910270762937533831918312766207505256557001707337523208261248344646414097949987273913126646390204648647990416548062736046528790473514685705376272785721013956297479534129990777788028368596867278985604402613727012478134291902445954169837145938670967776168969225080154773025607214030315267145109809405600057226909323597601016230338769067732603482410962768157791849295331051682272040560387837139925347835637682450479853804463347073954958347093778123455244648495586421456254220587095696277149881686428750324271838821674993776421954748562413791370354713650970733609438223085399429406003473698235354848071231576122141890872626970301551437919194678552550043240624204102767631778506293313694219533183311043936646896896460296636736834190582889490052399141952971123877177406363357522893663736007724301887899758480324341237026008938141356640110966446762710395628571456212345249917709362923010690945240619766769597377909057227754806282228400790287753975929440139572049294566388192267009019216030135939220805752476906642778377266528465036962087001987633905746363299588553451301124149797561083081711263983126651482688022256542258727969728913760576063655104407804905511547492174280070364312753340069416096866744903615582143450961080211120948125329738974812955608074107034584693254164551709100524571923286427411951408221854385642919057018775789984133704440907134808531233515849148230472042078305065016406144815253962143300423410925709168389244554027641572425832496772529070195425560124065550597367495352568843057761384682091948608976928994485237328636243871481915396523185289630025086430164198153392268591012346355945362055564740614203293919294443190910240024312994241627817420389914971635541910706648036816315149443381428970692103318964619723618928989851374751978175784176792879367071073481044475572893046045449761335105633421555742938817147546583883698673857703887728831352404115763991283557505608068228154193393850072317229474047856441374701449022418041916450332196921643654573604413741700262096941953670708843533233845574051354354945936486279762892682395843236507004255753915540279281605521085312201302759298206588982802187303049405852761327557695876372647084783583346665994058169201985431956281290346492613355308978488754862286855379967873803213378052253479383528253113495332831943232910083959451682738250315460778415778478402260290756587183078100475131642280993908086673725735332920816440158262774225352406820615129906480668929436823235391908795552703658501329764339502286696130084538354222016190143656371085744361289253130907114088526372796194089603928333263184110032910091930452496939908235010765036406569514487152983348808348491056727144903561750629592906374758766804548805424394507770713962686584721795052108472190398087015366625152256038164188599279921550846938922186183030673668897813951536223440505846190356073130359400974600997952188534856527976861856528959869500727701525709119703894650744288926669365315827972763071997634327636470606103540882947813328896931707003990241713290401104145585692537268837114007756944256565183098281027646663965882219834337781120439140756434835419242949655117431154406996372793555938433784172384756161214034247016229163105485047192030020556399205320957059619812704786223431385363245727827876463452695057494070306040635659586091264568419776393369748935770587213663400085691643437079384212348571909282997682373962917621043200824229262778608519207668150911913117132822410774451390029477228502579011080307563937294644287318631459919112354285452432607367414413749499369089047206838326391906945961809323245345689946242303134191510615860527161850772869890768272817272472248769031757180460930252537445062569508436000773183554750184472279339797763021835599258245090322275264314408173760630298843299833467419573932139764823783829618966236245827836745616946223001125306517725902850516024877450332885113409139717113205606250775668473715997466386503252309232144511070817838144847311655566564834076895937031149571039728492022789411564205493192502847656740783301148596123399908076972505453767413146497773965864915257313650716697863716630284291278086076383897378114659556666650954749845195707758625543070403684816345404113797292501963702209137931646221630268819903171983209735450992262282367754173982537221216434328276774527919330774128933242527435594787791189839115997878603058799053131121283372774197090546171276063225611862853872873617426530452955402572860012182104502269553349039048444576795905980612944545579311404335895278494682407764779648486978616187469957476989659890041520222553267120684994196724750383590253457052776953074650259334939269318192793956821307037133226226798267937925686131252251420032997610513628729117404679099105257623399327255691113669705161932964486679164653526303722812380198291490341324543277522040365278818031350303610291115315775878739705710776008372095866720481514135133791198080053765595387835211754391208838877292589646517073925441301865609009048846165740755403108196706291867148762427689813486215255151340946087849202128188696831666982612508340911443575642783745831132592060719459505673470898163011826656639413832546410642006004898783742060518364052907696448940320517771928241682003798712584195170859104329061879826186441208803227984948690971245006999164902592528182088068530390103422694075486149772918205413041983142730506414722790019492304144532721151615704399557514950380524026361963119938040869145766100979338859198273860252942367567620930211672437581906111036614317620308895370712081158187845798817586787789823376349885251559474090879367273156180290806543218916895179309402639715207267466519579088902167546083120239523057184899267738191002960980328889715364978394929852018026952098743771932159588892110028523789583691858374062575973435121437930929675902300586640057981253058006312505397412621187581591347559510445275919766726789361448800828258039418712109640624267782936799084120890653635547987666931831362891291582042244843364381116234436406373025229009855886888509714205277946711155820536988441868177576523575977915612423842562483928864576662330666065946087941215614043143523479548995958278670554465236963577239810650264874380988381893758406890986172427618043123007528167795730474105491571426538030347687207793481103410908223852903663140366189492815589365890066345740005736010747748180389642666364331079369306356243800786413178243851128446545706173737887257706803668805104874440627902058707667391232183482854144484726104415085625388067913892203338512320970063889390204798217267623547631558793749141343246859353807109372481124898382227604175905078569274994642815549389079340810599010008583129218697786382447009938293398278910459222305479636561003931590466312821768661834395728213876712097837431251415575483617232229373603854013510363803581863339639163273219477042121604100360089986657278159489792223423613819014949625203562417032742081201691518244060086677061611831715104983639419239799815604226284192963620266544168127687452922668280343806747621249771546200071240668521350753210919744405914033149899731404718045582833259795052505181365290141413381405097663480438178337490583756442410976722261512105679247874250010972235905848566544308061476235673662570664170242071955143237947572159065370269717504732948585800883335988866964514332666786215310928535606250279375691309059078536683865469575837325882199046397704662968167679002977500608949425440555230454846178076006454545659267693232316284795587775640703581487629003675525466543850540789539959614322831856832353092307252273744417394948749731477348265384591839199551630431769273916554746994631253087703209395800183942843891514467170515068551005740579672473028531692026138072886986301240706508697123067152843090264060592688548055773062087904996219583860449335246521841338458605539390531444499278156755010800905883836191096262437455805466179972569934450432421532590206235067982748390795569915845460027812247897732217807050068275797460624295076660989748551645246666807932393612172780408181307229820822089083406194049893986201229999652739434585749481915201328121498615024741080573553724152203903622749607545844908295955597988699685147100923118414824249449242212144981083938113072062595510293274163475046946612356670745995032838832393539095347939212216698689148169063981280844269409769243794246702621359972167907507600704757176359374725580723948696025354066259519032258749472701372072314156964684889752999815822149349064846603304348441572320553988824197881091336088874693849651559502873176333720908040162329059248266014276578151505306690836949888354204423922694033270663779516179278957581206245655052426886141187550834944587687044266380569066102657371484034949936427638835960927343038973775522249486106177580734846399087745332239463072786887775898886088075112334946901459315039931299828334705460896796694804555524256913672494196777781252944197677816613199254324408839288884082685244366113538772611633617753522446013020078643748988370838530415736589943473374146420448693142518926743740235632633910827039604443269493777167441189028176558015513336079866226358371956037040718406261851579055480447559808073682281141761569041916694193182539032905657912254936829621477674747233808106781929952250622925770686074540490369237956560100182294123797937752238381925277262564187151956988322529358676503371651902545142492283028826613342052884463963048058454269293790926442368246901231192580174351488837338114128533581173861951482953051162982288068527475592779678370402189411037501389011668324036627879763635856955668388903743805269327593862511205364357214668236188385152481600082070686017469615405902788714198989218419659415594286205210152968092600930423186802897399044330884164336731588551719552473577438815507457998262674179128832090027816776135096467611971476613172089583555626013054446338045241994404772827391743578284343987135795151793834988190985542208770056281791089247513685767572119317128101652697437957767575771996320690801885538238096882477307867588179977768503757234530634460561559289090368423195239673301829176274738852048360203093008687810822043656218890706189601828765291740031088900892936553980377810679535766399064424774333845583137538139209543718365655543679244597988144120787247726581866723106035411645798513812645455297372889851076237563903307587896594355240778673698287066802561773590731417051097669702606401307609367542629021921543754107307344130858829794361475042877176978462709636309644366635188905753919697679943064910941777865024945417455263137616951328500973037816438348132971926055084392065080696762270859723024194623718884305600204791777519940716367483690168725642684628644825334008937550862678416840269177360522951857766794782959173280511389117918953009970068160656104212619791951471401548570444620609914051174328421634638475970465403060716825017981898670865257668489707458104294709742683957400482267406297591443287022392408675970242095580901119257570682095341909663638359285372275462207540015365981055776627414591053096986859837253396462167886184000672184030558772976144682478795687911064291703732856792922267016299727675410862400714641732255092003062206712962412216572502390010035503678565265356170349232372521694492921157797542578017498880685958412923624022574800121977144842803918549522519161926254557852242834391529594699915594070746072914616060241530119767751269621496924265207448717361942549004821960486698128255849443794532593031822161476418952651405510739669060644423545682639534119996355688607823963708598728954514763463101931996806290940730364237204785479128517578192324552087908506401126550064899084610766101123589203249759924619426183008160615873827281294010569882610404810768906741409350261420499751425644977191263198609031647447801234513857289727738704092339576657655574670277093074449854393226858486737252581734942656643067677789446292572412746709666144554371277447488525264583133016724514673110259985862491853652757785019125083895973770441773027866297483028650033594433631309473865647668541323581580152381665583399103863320307737480111803240531643225283026870043604049215872973370086807969547450256177033710372458231371733494337154829030688317969425117642395096011313984780533400798628608453615074386997308203685744180970025076894586805392131465826161071431840159918269203954979530977579467799154071372312458229542570798653676210066347737942672934387106372560707910582649147335041946445830735105850577501797622854242229859008505354290011207976241731873130959641968865215226791318051591695760527788069769861245023869383616876628186709699450918975265165534576521719908075992726183898408148397909459620270400732210717194637314216729803503160437255257193285473245929419914832827190327761724630071226352167490875852549520174017641929730952816599777579839269464181127156119469786524509006735540557159986920314841359320280655874386508495987666954095521792922271390711997439923046391259933100314403498131720936182491768274263445291026024487654551866848054028684193351976083309677879355437387518159787479775684159827600786491865863628513875216860278330397494839896779004010641790676105496633044278130213019751805317993130358043185102017686983639075358004035449235530121755661033826576339710461383200961535164829472880051721493744594877991848419711806956032942497927864986332043385394840140473181086794852651797930159434667468909041993893261422898859456728582164101887342344395334943524976704021702485383261580975148226399335349059238241941535483844817324993556955281119944710421056403958018921481026039248734443933726638854005974474560977428343241583890512308724462480119218513124467894237526501183955809698514278357379835507521192366523939193728233544554582569206622893377837830886590297062299170749866572029160872723760995347141846749403348541274369894099233416946295306254688778515107812730684234062514835776133944194841621304426648756683949427071840380165427470496750843268914461829278261165520989594232621115323355307034782700556819294333193260348393389073923132025093897628944828692831268756294855761364176756598023371456286693821025557377017550298081498310122117126222478938252310451019704201774589506270751742244060560943908115096513490593488305587754438400575876609696062077066659953811545433196879490191917180496931095126728311210199819915917189533213870735131802942562852752862378095848217349039955260953839815806750892393779223345976339998005097387557755797836332290141626287064829671907943059891445204848699285218282760285773543654197723713040480640643268786095119681765669305370512305072162726086424875532431239037073359208916166255034992573307040033907655932072249952661843433605540591948482543023897935477879360503823850868197075129043582870633604007768740135368716173909947517446444131254245356535979415535671704194604443831285003199451306049322027626691402321288322295064883674504719914724159247024027317454222325681435719807585064293153691882761924071497601657307344171812338765049676873712709916405585230376604615911004052118597795196508908045910611100242588414422241880772072786208827304979021132962281908985859619713272112942714063690361194880723571155040072774287918808859394292121851720766764107280569132776147524681466105066956720465685056911923971731130762438260011287290125363424017261726538337387143030204126852218693087379781355118790732417498760851994321039939241774363845907136762803114173198740220610906028622365308669846676131665811408178178441210832864275599389909231487856339893577594187657243023771435468712482144656831299623892682032687029727678911240782518039404698036394673211839359287600415650033066055444423901830034799806153011388339696471192429801277628847787208784574668936866779216792337873275776806884665827649277845620214310985369481969787420012117049992207318894970521497769821871099488785997878401418413676517600132776368263418516304948393538053947997570398760928150884330537334028008057431472090391137267884425811244017904133917443931009007989612973962224473631926200654421907137364030675628994494596597383211294392559158044466933351276563667993879191405314128403304984324638160724607247663336815622694786461905004160811169449362806187070183831033944162650209604174884202609311588952244732131021845362849392156988957335998933726064781320680731843172968262576950550235744342798881783401726776435093088173525159507291624701241670510992329680762735089870029232652339924843714213158701392703216308123582387338712629567779746715805337885069873307039954359777082873718036441466687414259713901505397958693970774348226070567922950659157010631355486387600492525665308090019326563882966967927946384261238552912411594020533483095058973197051645454472264449094060848881184151476943400406989442863192095944201224267407156904645233823789067028473097630726083582635370759334568241270323472962571603811261029445922256746489885738574650097910527581735226046177167176448250139918709456636069348688508007908358377052793348560697232845852664452565253304624393205993740028035595294899323403272671312387740910855571993516343867774310472042701520021903353105607851422693639330367849226803703237282692214849705924105087427665179557299234714792598245505958476742310203685751589320054369889376474215079931969469475869137017439745784940279212095019906474003734394743185033300399793819126876463741149986477255151339795126336923920948931938447007903641922683252463483426332623338805023386916709615507279816005553598429014090005320981302238603134603885803408539555422136516978870940660867889582624658837904390455524496678441089914293360445136010443241297391706400045590169769699014150171071616232678431689244595394028719728532112108951512653198231187203945628660430466459731682334025897995297788468270660087032971388787684301451166866896019997976069464392040564985645616662117369211398629530806359435097907463463642810995352869100357961097711560844735915465724836342426301313698452005549878849945797859326828239362690808263387478740458458189909222500527485453980336451966368871761360957762835353335479226628167984003734031490370410032675260338715178942862737701936262057825568941826165479806216850741516106177487449977740100183204279585610392790606266884051869714892286876756893721227939076679906584724325349450263578293779362339980255086227918600843397253963085739219138014689434108284750355080158788203660376687641556328978188434615772385395762291547278687266156837618828864652447275693644841287732086314021625317116881075012255244125097371876407029245457833345062529695722916386318812137014807420385832813074469171842809640240953939415060015173256560580613265044540740472048143597333199391881871934575652485708619316791203270277711624807689945212519505573675893864540641417930669175279303459893316261679394877421737721244498354944328488981341390175263498425277439297949265201633601129123370687021199284063665306828839910040562151761570673415548856931618329741841074398607367783072854428983511565120128150520295600447586294120921986125644410555818169540446529281091314749117955071504149960983015534655284399897189242013124371938550418958537220774411674887223627882799136578330911274949966423208344906902365901391844514458687618118481374157696876064051332581420911147981898578650642388827995782557687147634827812904564471529616171387157864120744615344080008694854176760968364155209106494209744668042587147851979978327940534428857789092983360209779632270331907408367449441774953418839445318058509406196068439279277352477489394209401309882346643162682221601149397392480819707577353232816837931896393256556746027701446847566245588959258006029388189418579805129323415397181148934517724474052507812256045749741668418303749556013308968089646831666118975511248726101502360562394560267310407065017635419087742371757079575655286328894237561958319176275208560402920837747077225579095584984712249602703093675643834076579618422824455456888785901330766135504588641050810473837684491102459926661204343006899110335699717388584512954947495781666738575466394353493289000795907984791541490528312887992495281739058677013207756690465806897995048650780863239175629256697782186155090429830088731226792785227913769408401270296701393188210304102317405416106189779764145886508857841028951878213867637129574793724027392648409075679128065599039880565496144570639524426659021276015982759802784875980845389753398433520475347244371534231524550005456757366866736814735316697941650264670280543709561883211710300283028668125661561287002644479466731495411160213794306188276305749524582758166084978230295538554009641042161813539986026697517286571468229229898169124307074030596320691750017534097972519600005866006865832489154646342554138090570330276990358458071285861894353140218366343036670558134929029069576027916792119295252736614560227588602877141150730780588551843695501174811880882884756300997587020801538001597387477338243305874592606298227986849812525784746551366076345672224111559096057992047939227983605366048095288918703169324351218836645681064961070460307026910192852205217661106286093968588542958344561036815794242235972110177958597715324246147177898537946074400751424345226991908818046800546142666511195187098560655124945308909238419790813076152934282908358111484607894573261990955093792816171365461661394673221832291390090059782413255159143929231746741353064211579979952909495193261215190135620271116614194152842476792268124486847576820959040492037127250898591952580207920564430947924613893312801575978147057786443413958354066264705420514877151542835900158678964535398812990872079522941589504567585513389227136309616828510143189267363100926183385941394061386964884510316689309203327008405827173708093200734837877487825576591967630159107263437333758992735007055858761569209439371662828772564187529153376543731074182118460772296763534184632842537121110426374848927027864178796904057642868770233461431801090704592003857366535419712501403458408788886609160490119782968642430030975681847268489552295795281092958806726387743771133279521111911258029242244171701303844416678906423122323962054617346646975806006316798193545781200526700783338045873936936151883362870158110645864450111579496146688232223070175975815688024931038816133146315227306483954213755070421722857861086222839562489508674104201700792829965913679941549906262617881009221626848847597157843210959419744610844127900373401469472285474435550929674284504597250232308665486380871323376915312149633531680268835038007237239321055780849812577398808398805301407934739117871708941364311785112994831562220574410418675193793033989105481662028863191980541234784817135797458342566021598295692214104328355290905442925457359579419617172695212860699170410839623736710865311944716337818094616909627194956256237987675551584286979503758234470483375279721214340894108199102768660040097729395437462793998807463053536806319219947863111973800830041720402229197370830051982516902688389668188184942063350591592676857618827249525746593011130853260302230122822061810558392322921992469439877251793381071275012138671558603358963698962225112427335373845339551071872070714839550400862376455018952663746085262589786357529164531754949715049500091217278534075254609352182232946247449752542410859740883858824640485782804002778085479220450537142813263582139227792342611935994400951183209355207697790497572442611562932742986565391456910233497121625645189276757046264433782677417359525788811934679259121463947494610770659414398192627436305862783047697367385807300821606896785852074885772599493583102881318451114799968751290081806390215999345588410995257108412420455124568029465130341296253683512240261414343078444420162092589483411671983907707396811750362173735787364077468317749827142003093926130814044932851775414234826364517367147776546494605398857567573887711678226196543317600586432823602418623559768169445294190752169360656651120606484283023409632635058356067067062524563893871006870300813645894916923356721556801189051204141398306520933141440431103160154952263860104116716969138308936620298891033790355420969786050412130793735390963486234136471799695986260889768736539456746769102892359862579008768452447397827227078201770609625092751846239713851724404731227329468122071764260787356043029537640042476404994243268869455554113176241628439768465843171924178953883191623159019387917489697488645442682460465233340653586449735694680838693017472241630889248289538689866371050192703289000101815291841916703482000414412590138604649131103905330038206321271355368956516303850788133546197277623195895479512387857713801748052368053369425822271676632198480745640521172649296606687711746077705835882410192782354017973390155547047611388926775292479626133222667121052578005395024033343886465579501337061020175760138370000422001793595221150478535549367068940879973352176512406063721735381613342448504062904083114766853678630560478020799366183202223217099722216196181855127226709338240357895870380446820334460435428424472662319431689427572750276003858606557383236841212081341369551196454396639848427174195511887720752112199574987035286153505834611612435539570806712766887545828622950041298728323881774332458080177471286863995149376841946550497702410800704918549888917215714454856387694219371392610130885871029387506486209623429972284274997172435640243711734052139127272332095423478613386214418239931127228449864632220511287786505917718464396084397749039536242009603273926237733507964130028516566475310572805210585762634273499072068438110201610645705405927289380287544075714372115077024334808363211893261855768022413937130092836709270991045563009708956857874450212437559483400194031932481193028237344083406599521214488850456688359120156129788322004437434198957753890515126457166710546215117247238795820154038394126689286924444187817973275179737831116751171935326246797482484520871835516315200223583588955065900898272292460486328340754314319392163634907328683678602407993403698552881497021200364021590402182772061673838950153167723279021584260313728049845203604904648735603103748030504318894369019299550845509308508277174035838988081899012846163810287211379914627841366120185055406898239404093214677455796698385601777758430418718875008527620962882002514799656470852902160539808125696496047991088159691182138071814654888595060953865041657553599312957912979410802494387457354456264356719784416348033597493077864441176743283590895046722306189899634668570219370449825000939896377966011623287780349841707811675019375187778992592596097493465981079322331226766181222115907143059049252804909879173672038327624229632431701466284717286601101257414076974127814210421242266512333663719356198936789134688927860989468577253374413310253399435464071587865341125342773141746201158908687596881452305537564924143976057605176348594559105760377865707731219119943599785796059324780806698878584268993042987049077138871847738366385139586059114745312311577594538242989092193351935303031501895769459136709752916377822048801173361900178174457459537414042958980409900867120934163932648156385448022843695686167829355661334353614009605137823234656371683008408076961696708422938714645338909812040594841925973659325161415774037729059132232375651463904456749247749802133723257075134497872019647678786215656628922336216256479922653102122167399684080717998887435763599682211828762971514313964832690843001364770559486158127807883529135275838474600128340121184281484758751836057463489939223878703663908724928352183140936511049300141585177593746935811242324290294997376703917308246299079255744555920752885977150371236656863129026465021497618762122638236958507098229019528042848599584658632863017303867017170024447320645759431036690466715549794613458034528552759422362617087496106826725650391832331876951656769214333464067028660842377035453026893559823498708940496595830104575991945465218127518281928798381828764494370925875464296229550753951936041900672438528708256075171755643854745033385920249564804835989784211436402908887485037496540051519068049858154682858120063287732960202476582606171792802105652331232553619086010863805113605428940292265117009232125039115597121241780986691894572027594416471001728595076514705425781104798926984182188052314708611896425502762969595256355616717487976883520647686557217977360309014310431147169447208889629369258334323117275730351793427046516046121212713235209439774142478557634358066028283848438853533983958815394360653041532399161475622047866037445307678027930068931662796620987490396461929905367869972127985052804110411723951370401654099880160844138982924407737961487888052405953094887781640510962574294510904519343318469125795271867274998812742329178049673489775138871503856614649581339400189271482294395805140700159360001280065654996098100977512984870398461845625469512817288691474360216343612705448296672401906668081144619538059973491558584105489811200760056621137175656831089538160209032939459070407777684648536404462358338340993152796106234239557479293027297958655964200822024025808919067387875547987397553258069369068491024669486828034122076845602268356173137042281349611322280280287399144032258183627205878920065283430791236930492375504003236114294169971911604544251228285431069600031497684310951889979059601339325761630425037582143265866959629552235499003309354432680351477539441272520267430766654397150794948903675858737165084321830603548282021391748821675217201590350017876192053083345166223299011210903914359246489060742567012735500777518149290280960273571452130945661508371170865819298689793489663341530650181302324491582389447670356503797563968038473196097864481676049701387848265986430697388918438713868083408767233432162549054329396155409327600255678701133012349756379730094215737522567833121011950330513393690912401023278429395036731593789755782707368083230287573642363679067559226391829128361044990436779747877581062808229922405132908171593318510932001611905993306728599303109164999190687270342985873389287189488625842451814391421763703877574439693900991604949668463852253838813244256287018262715031386174773690340791630258676233561346231798904320765456040371478815067583444174491870404244871332592517597145788813766808562618240337960991073389912627920117397417885629292714071632643144107690528526179263025126825288474608696938622633271682159498194034757320283093801911176951018301672961767658387308186656575130699764617648241147985746636744608239887236894756138003760615538838986194242186669486800881134102014720496452734596072924819405541605915620191960824162718044169583154877605580634940734757366350037630722471780749914704973981650333239477309786986665816821878406507951659956890760970606929302333319449835404350066869228252739644481885044933451544001049234513413973644342708027688382410802257176063089140981566715941881084773521562783986771244684866954874885822382847322095843365081984217778148928855580624029005297357996053167376424637789678029887524770858669783017773002463340257955719295050435860500511814827445175738587502690503656730038827479578110215268362176234143151844521693770077912345916090453251511043479464404511514955487848709780443663747600746098950853378901440485463347887896351331674859478270387694756411436394100641716800348154186137242377567860880846574560193480613905027200356454381335961242429985845258073758011188620595696791060101117712240738937209590968619597698191000481320056165241333920253834518851977285889058263964119717295652109683482258109284012307088758842576211656997537541867514544881141748488025958051751646464100158220656777485372516872712697699654729885003614956243385792481611940797886733054900151950767268741074502140907511387152291016501115444093308005273457097609686928609344022490196846396647562156110440672940901679600955928675451911962505245079633510416282359352092774946620732550062334632842823299771003246819019628018293876342603008454479518576778811183513117231060662553610699571638958648529721619432483946390506828817428589857455455757713702209207729752767008527061491165138178454967689062748788135435375768982299699750088265489989020270707442072514568729761898662348240334787019523232060577650042361680671927120401405275886828665196890278922392172433135876076034965525626111613066362299753091761806441340710111232759193385915740702409965334379057246014922706184729162641215636675044980977126171043739525960331082015111964970692726294593545802926059230991131981766168883088683914894665585911419684729252919680840474945723381153847986355129281010064556302997922052888602074450731907367223294764719521238746483970959314959629229807625184540917888916475066794045692496605461940599186154845751744721757472112434905266341512696366936522383251581000213479171367292290657851723895816711875900791523839698350043022962447463649173367534716663617109778227522129569555783303381312072625501181490979742928376175235670263469224912273880053832776491210520737167556155333034270883177516039027834736533924030405793350752730268736129796552264364207871469543316925960932077034354687370381501914058746193157143989258839268895285639692845329556825119700570237187170390073009924936433093287863793713715793258634144505772390305918607640604244510805845396722072697739386437542425331714762132817242827454551186952869956851870227443411097459025839541337618016417110124458701498003293299485195697443539997194994759676531669432120417268380749069312149673035610698060019234014852867480976637393156211231609603936453501865004876626494206236480914260163012476532488676774722918922975019265089894546150839713053514735540530068710002248445511678237335834691206079479960917640910071159735862459411498060390711680136794090288323092709167754376979811397440071161605271798245527674511156987583367526550572418598971266800992864205976050223207081132835043696510563669050337698801694677030256090610112972507169589755344407734280683484029333684664184551393545957397142030258129486665859293105131199095289827170333850149928148723707436556182190893328621065087711781676637775200544926537428741029535464017063527267923957381084899036716354488967448188618454921629313609432263484954102147104290419909258147865350668204702829686459531876433308744689810160908863690549728627762004247900214707810296829351917688237552571405487258317035673076972207507202605480277600539376542932194477788683497012410738665371110827139538498819978207910273859059434851740361937272163449826435064565834695247645026085234634743240227126558243624690845033842828838889177083340718159137738829377996276669373732606118828256864081329895131839140166057472838177540492973555225674333834256782541217848473916174845266916349614305104264612046572816092410527359463836770186675898332192564145439296777026571730696235322114647082077593688673349183846973062080504458647166346805724949744346623667409254154067856325215322236771933608286828672373860447254582547268820967532378066461342016027508168243676831239664749779343067443050531255405365747110948396084190805814907314118242905047791041684667958887654043727477975679115709194620434244280268579040019488883360889244230468577267029549212636696495129169536777648608705360106378439009882443109312882357777093729987668234422735791988832048408064185027592852253998036364952624882462184247871593683890229671238816587982071269833510007166993779590507311893593864918680942693621529901041188311562673719958182913019805100983799709227370598230959738201395209199664191639746425104701001352330964488053702749350580445350506138845884311535703568189070351446314687908267640457153703576389569687127343396725844903367628242754628637540891116406744822569460059970615722722518993799503240605580861730861026321962838964273928059433646227951591619870607734034824310871608624735219610401059406288599363552941085207727047621580489919830428368815798547734022769247669092154950964609867576225141797667171290685156207999766121854088671184245780343082132577955399767615914329509917792613027778640135742332179317482803421853759659617831619704794919593253599223056120365741425445708740363378728272859713219462820428907356313703440486703774188950293545659633587948869539644249540288968424522692328612080969778352817645432070633443173013603610944718343405392166264911998084629141281206379904933463704312734338462988244744768685204050667721359274685737067300290474267666705868326691004525860839400246643331200880542845287211877049574166608339221333998074952429806791162659359493931976948535392909797453967697896991942314798227267214871310112681798169935133841811533151518431455918868626759917675753997201217997668212961275854780972538572426262920418995849879511832536411933668269958330435356061703259441058532163936596429188060413962987828053267840282309920747122306428160002228749676195114159855747032724650064967672539137674596822155281694951470077672571827584737810921319659642363969997761178878690497465604555274034455466404098262371917513301478083013345826677572774684645509404805252946673487477720089823781390448114510184497110860272929300537386687647771737549899204168261416637382648369592140213976592617699836423015807143547215001858491515845701401096350488917540825674587817830648413255067069056743674848437302349032340289782530561674509611896333628534081144051943492403316415684901810783288120316236256952076753145888026338805993497524113881123287521951309810522558041439869563048881910596258527440217299947278866773537908884751428387246118311200022125463989981899646350572803481597181681869929146925263379142609786484416435024856241779592776549341082424099202742682718265441890282786047333171906460240298257793449086051984164442154041193873761253791286366234600085568278221141469622680366319806429155150789393317157791972361250722990563897649657006372931596431084128261761128054920204544975821679263876783650091065609957400132058552355635650964223784713655698103805846722660451598327824397507026289027176351951659396193445399721431813487511297366962097802789108385379318570447502861436597397981309349283515847647964484438301945107317426004722667809851546908295784938464658631263642573165872639226324826533223659382527431955492731217385594473622375237264979147747630239280952686830496771646057311158300616860931771444110199502784882261595808083865223292126356585709579077030723630450625855833781733525215683989201838098764426554698805780511982110879886340909326364870499998443839589594245791588978843374519550913060059951920190318224282705091565753073906073909149257682230971803597284129015011519845691495087590370924107705073394312887099912182292958594990764732798082703988714907907387647333263142915723959590980516060208583063513556888316405347460558075652366482278532672922687623588886561864701496593192870858810463673641808190893814681300585263163589613560695761623278429462419082843387181517477552089061369540670466508643698061250216106992230637613889709378430449256637544039336564404728920712048096245084423741519170941551678782029557319717297396533714930237747470732617135855635929115646467882174384156363648697859375193332876485158191063094304392114514777274924186095614073669186791203605423561797231127286087100686170197619666025539048908788235538717451748934571090716848433806899002578698144775843797903147246223783190986850129159706559543612868477113943567950224984746793755233208571447816997640967367403300494376318701993237707067104840290656256922724292462181651941827512006092643646889190529716444775039540892117322936958176334403560913657788080680888804599597455476573190600282868944908445669227760958440579598891786184200226425388453903182076961510017594955019858981119967723508096727028791227079463815699317988489924892330946284790461821899310564035271247376376929646712688547819088705726729492695205608685053753752482814462774634557371208582277395866563251055078132122546179354212637179793670100786935763638340031540732834365641589830195186528511829614845016934490699995282741049858501212653763580595721860932482368890326318875104770680878432524041641584796201164208970781369150888895201367584589494895591801224124897611759298986243839184254805143300348692670683243629944177553907497762191215230359076508047391515354805977795134529290256345980659841653221971419627441882331315566684425706348703838186233824829469694654996987587840448595126372000890014664226897040087259533562674207003325616583893823844969733861274125536629917263026672097642670835330476174846161561519184749738649323709602946261056955484064279931792338382711387908909718648915444768019293863682686006144966929657370464564975388580070515175140887884097665774334594728381866341215923207780349275142223380007748613960214566092348525868397547584107844337547673788199391459686751343820951818996800987595997172198767538554829140899875341018373150402168151989137489667361186906846196446649702013829400780773043835329668337493405592969155551369000222695789416290623631374188183820237532902466102327070574142320884832102638080068188699680349575264969150787685686189225941302874926057339979663304988988764696201648961088589690593687294219712998110062030516833809340208060766984400447522376599642431461708106099440824409631651384112212349255151805763412991005613515416397349215960617068175636175624994572680343078809278702553895109795933932014167006511418434990804647099079240279684086363340981485703322788283791385346187956760155041028970976525932801045440771645013467363413813694678174077178633149514457349838584703612832628963172307378693252722256177246202814652848847981755411709899881889109580206279530736990394956368105494595474874218346110770453371997196363661420859946518043436124420909434651956324067027546445192789778849848587303930965111196283725338305026857309764722393398231945495937128333567937438195483685257093161009467152421238233341395242564138884477565755984236755964819276616171808227558024435634130651087275108008159604189515382424536244804117613849976249459926234296620781881821119939472492986072031370562952141057666932578683127923013755147983967298141288438881595902586019868292320864945926991595335570778154512076278951406824619595781007587123207141001083728167270453130023568212802620125428805688781063647589456127029914711073297613892240147795782646352297490883676390221465585188196127935038803040094106342610164599623319364697754482723365175971774759250149542680968048872016081262867587508586416916953382335229708742469443643391332585937877288580872797677437460207627698062115062841632354189757762788444903756932655047756570009702920475235269512924555238486841082631901582944210175813166389136661458899735396795699861044902777162922427463523024439384896744542975153756523769371081132614969918956846121979886744375571583362248576300919916321147198499913982587405932758451357000139883930081957404301697814094493137656344201924638964278661333654366811636778265551029857353263656734135438437460840758072518534494964976735564151421655503030483424269712836557504242558954450163633149202053015012674223879311356183238304166337056213941254710913121293868187935045655579753133126398422452995825279883961648035628114611734249726968009027576288244449528119329244239961363284195166046009605698514391077025365889464595900728189508780889755033932651017702489027253781766088830188935286390736773352070963462821095589458995013994903217263489912112611849363462046000952671386896923009637999586827085785252207277385223025887191648322451517978602872958472232367893431028039897350228082106314777376286314120846374450642643308575548086241361810483388499922541349232025696733951083796960273576373585853639143791115665957778343404665181344704985306909275154109919697909108567701822674371311368803888246624001877437590554140105645488819627002618607254609502927279634706195361505431324844986500052057745840499791926181856855599484025268585535401537562359824842457309175598262313687652110470541397981254378354312156389850636963429325021491336253460562083462180098338389820787510042899241539913823853613427308551322901181049547543274533354015947087494143848318724201485249118613604261114287930549431748677172585803039760525842524168276008370955878279212272875122564021875661531500961489732574348330352669470921125923360959396570623985527140088623484187456553400167803241952912592632906168515832552119321022646568597953840496152876613670332885061859900265451729020557243320524707948508107840096185691699050439260907135453037427831909419806656074512127860183122844909381104959230439364034976911820208844156498299362323247499001600159027576828658687920694159655694423685065928155441042334601468108555992332901968023460258617835003484619998082772994961273479512590510917050983741966065486492029229476619608196800574874025654775413233661001998234865380729245427035582887483407011574807046892877877083281580193775088694124166851905356696547547475659916857206193120084841007331210177357340279062879463046996703038298883646165133714716513541195758422437980138710945092609740983055104480435252816751808093394340719981316774648107458626342139074818643954278746216892260936088439901998346627173573189153388970142629765496856754302370471747895483043809180676202586643440606951204137835312035299527348872708066512431960428669970785862328404356097537993019535912308892500915505114818811267826618541383665426585579650858141962221941664244841802507641473102400656004235751429697138847654457746414290125769874612402908740196380240165609094964361768854670269802542185963958232308553846667931234398037444431065924533906308947501596152342764330159337210146242460901668059618403891841460689719910252915297640403958803788957197621648044799713716095125574037542782533872415861654906045037143976667731094292007080018761689786498563656958147724340400335069571778109300993370823471582558718677142353348779275375048369148449697532854525786748255912817175543925095965520727434872040642282999911058126866816159691944878514029577871323430613263063982133783824819964223059568962969489909639876158350487392214549506321070141274187884572867084496925091657104005311494482717584084628275406443506895426028600740640406436671561360965000765943060093935070122675521060091610755017605206673480070607134907179800004274952712866487040580245563905954486875832002709188811370831120512268358898044511586208883887657073270773799137390628303986253472597673698221854812358199811571961752500834477762508923294785946789208340146804996246234203769178385837672890454664083127751325630045288592759263636643140211288162252629352305901782962906267936049627707948656132202711953990568586289026150878007335234188517196807702523316717102140308935556936643341973824205165869537034825173980353550916626079525758292510077606826320009786692984161435531644263830967920450310224991224004686765735173913845284493463023866847493971186839068157182168170275440373488719272479344829247289887884399481704711842079055758290124800278577772455359803144195209441594797496561533414639463924098796135585562898713409955998164477219798620474995473970703223312609282996792800109023245243040044428277428990642457806448503123370207933776491478658764056016018681899074391148202406925543985370944197154889104900675814148035859478404361441274211913761682330747235610269658162822482390266101248163621333189038403493124721381840502097814891279985592109943123616065309075979120265761296822006441812732916691433264856339759137730296730950895511583704716198429035636791001817623712290432877776401290031027483049134257613553301307015634451649871022377523066925312451860928734050476926129631105337851925746379049284162598925098335411221868237746748779962471872759391366491780917264069060566561038910328411800375781983268502971924750716607762432267606067205284651975197400742191973985631749107180560506660618928446308096832700997386494679551891827411498233867514364735367474077654123225886265689556751306706851261706939443008938570542385727333194639711459999500820154278860955340748614460995712831102903281768833527061188484479227194031470066954787131534530996960014500130512320073731229642977182306315170946810373143090650467961071913465304480495444167879051785966133344809047160121829887446299830129390967286777137612854036669621136173956233097837107439845835582289161524268533013030241617717977903042924546873757874902578285464885174898381138807685486867691166301532787740555267321841463915493551762053173044430380880007666127859745541648761300915138414570843049124359188982024656934539624581631524415382587336405530003475354423348222572244015157672577128229796505554146755807543362458014992567796939115476698705657078117867463753742396621176267783890042787964528867434542596871897045648884856683975516072017344839602466973007465962109378241869631701194647669420091338322823358052284659944730532998761916815840282786292642952724769333358791973965911783677246173133696504551858430302032393716265516810512272739702406430892515423978391365772044956451663166319142432775866287712134018486459536918919247278084703666230389994714252557884026618802746057487706388156554259534621405654555707268105921298767866900903648350089223189557307906247762028362939493754091798954629515432332045466924535546870910573750876404379753559280712784992265214877920003620062750655046301614897954685521885024043576132062672321126782681126722497774083747134409363444079166247942483499149061930238626280771558530720867858166503395955465553660557396206754766486005560804937982319634734761844726997070121633307232005596055676908279545008707616359091453491575148348899632993276550232437072375935971376635761309808414325940951555599635808714974824078260336194128525128000531772173075433868967610606653946040668323457667324242068558851656223382741585638183878226049647911258960031725326657845597527963726481200888965681049456571711692233633034341783479009995420859421563556667367532180868454610917855369142667722135927222464568721447473083520539127216340661555318967070952952433595683324306926131866855497893580695613522628086106572705485124518093573005151000683397201799651186958423058260558653779127287417936117797340339413332215438094494984894036199773764308449103327551001067166057917051835500629912498834898544298886520330575040299781459190540943338226774980741748177627582242872275182749722948453921774521424656274525273618168861162613947952565041625688733808555318809987775258579822588012956720452186476165418860277607783201865586826408836407285618689606300145304347953943821672122739587708260416650244027267893919223196525138333384948477112007958377862753065589582334241295778569495088193817846068298761455047552697076011725431711314018409218947531311111607937961261067942875776930699445566467272910904437661254437787169324868606472531191216069011871585870792408755466555335430732127831548654092226832109030327095229786363543346773388505989215068815981094075605263977328978017032133481148341951035595378007331761878801884398479147161540564850528228748139703356545249559293493522661736067018744284699613602874693667479208224409353220280057005100008172729960737592271244299108416726965679650542995132089253881913942435356849654617731595283234124422451700376527766083987866728323335944906048573179274134131288948575826536333038446091615576851427880319002024094454381157168537954871538584507199033594097067071790338423947489049120532144941619914885016588506288730729939489776260132399104639022737505194552024293852293770430035318307932498811638084620773399216176250136732707442380049047583508648639475712183300099586887528666961531220255135990259329329196525006818791556784699886501771422246269664126622199106789287822507136462405517211468221972008041175884790552125663630227819775204851027329983434958820784192747298332003412490584901464620968882038665324502113276485957741685131016080675158750056046385177311837010103884345835630836384110487232582174123422121690005299622601625870543290357233593934320855118053103614557763661798462650865026771745325928000957758647161100918457332751268538888539429072129424641602250204079636641155055402786583221538312086511779306043704607601851317043584615291873628086097373547379150150928202977907660416924226968093472182370914345592368862144226423199325978295047436543370008031674231835483897900643034394043037795180160975609929576155915073342025289853947231998700783319823662070113993409080922279603638538786963380906380739175044039504061897594738881979119857525780536923500362480724116855218849290872832640344936998305378209656520722779355640158719352126604273538701535466449456889652965962993087328564391166080868170344287424881999712021018194084280216607003574330949252774739968757154370143620095826856577766036061173684367077536134412325358411429643370239529121037794856543935688118534470468724285501853673211251267833370543850450873676459006954672836883984442978377761365349688379313691535839805200097777398401541461600881256610541059647061787091405366353752835217288565990239853647847521738631990961883970631472128836914815071726003450466737524841513562639382185997369383699504756398388122172830473958719938947706763191761440561352023851743027765674136196340007279404601184149605606439191135093488949232399271861818171324647218263230518935991799760328057355027619827088800593702417304645830521752193910870573905447228308380758642155707642466832667651276381589438252586485839799044417317416847208564393569930897808049176819237810801862499114769607591230345422296560785033069256275745266659916350769417179049673705573945356774549898386652006550831019237543405295454698453276406409468775954351962957714105186508654118634332100556276862450372912093462009487603133447044276549697472978693646080153272840515233048274220439671683217680770573062603459916698008264320360377878933852100117478818386024587803627485957004758909350577546020990558677538039626603586054796144621647230910222223123699593971332656221240654619269611149327693008880242779180667958968129666131755959821670091056507875420488906334195770357441510071478413926450752796896804477069944021052382924986094869750089569263762171442992446550147179224105087371733036540565326155062060559074780046234690358395031628568170374106994082713918678470956562862713105392188681151625267933632644556979421177037967143485280615785749486005373838445666474271094343895896790286136164577382128758610661030631374721656157934972112084727115888451659878220821283404482610280838347097868787525604755144765996352251632504361058262740038258697644630242886850086519315997812839623734898382027298213752991165348190604909023856161204971343544626777845418627376337623218104807212377449664115079397811995062338588934431723558351773099416925553743508456811618194293680492554428888377883539838491062338486018983136926948431099249717158707413660006979971490045945901570952120446857325522331120668781275155735982855320223867756114813353069701307991648413980142263145304424821065491305018753345202239615890115904793309636547577394050277012221700712913906374808903697183348943223306420046737070014776014431012550986569811466931806292247992077491540490789750334107150337860629823495840580679048293479280060285138713241703493357002307592628967800787915206153023289490646599837415015790460620627715025047828111544782157566922601374882434875911837878983739135208320263916251982233988420798686955552709467719370041900511057464732603072710710520808361871186373610386232899141139228553999182960673555429903661346101659042058181216315644971933638959384575084384598659130566265521500233225026514805275399183812681483140004298853345339813440820995575728028217967869824102245753825225564888539532763860531049003271604700767859937609555407616497302514609865490891816679516139033973891379049028137420023699204464101491690470782195297534139917279340166508206363744451916203379464223841134617295784270467598690421764724760520390588849469096534177239569923614883253079886883201071110420269455867526542785160186758979194903479203693941417072505947425166697813280510966400830578544348315484205729843866075846424883154832696961260050486967979542678196066475205096335825819089639965053161441560082756558115312084790026131631676437540856207742428538148867242389711993154325265392907376765649892185510041205983166038289506210210902346352499715072346315485259435013096408700033410628590589482177680735250679345555343491301852280027016432096556726190671965452862298470090197102370581325006595514535235912127114496882267097266196219055324272499160830755312048610817607420796586891586872611244833968984979208584179238641652275206021439821518309213126692997759743852747504910883763014639548732712087003544629586091389453748188703881170230036176130700266769286287793815129447086530606434134299437190503872703308943159217539624831926179301554325041578698247358002001590149547792237252053470123968105854460100296619363525854107940735313192864461935680084710166129424475494983913258378012939451100937286547529900614992706701833631778861941876273018117927264031532338037539046594495348486122813862061771523319896697937929698961995361399309604253534701979404372616872150497982382181828715748231280205082273594991131100974351789806667715489451804169157122684030812118944316776968064268243730451269103627682578743066390410835192167235183942465348902631257571436872027285808579298265294079899999440372939159403118950687527766250071722134445442315647529937102215024745390363300180545831731490491568788065944401201813921876527249188721141546802732173032131747149389662672878673880312287276844190657664253749665275920993138230238914490345086068770923719044112472425393912687574977522073054861058596651724599041114224714235217207510049708403252162762304762462188485416127456210886166344492408912516486085085874742535180584747162228625563898817408810612377413064606978636520897539443969621947713993784358235820002728323013404070785796171761666685547757421194032458581512070396602660818918463103104839692165571531039948697768871447302685085806158253562969040011117364236875980982398954930768200430147225358762527791202357060309680768814890710017764299179536138724692155429512462593418454139671788610895032105536961736908339858904856609990019854473658617226296686677973384383318850039466918662011239919295373940908487480032833927188589955712053701357891392675612339643931341400523307580966167900191908540090746481800693403810369893770830637780888155394837044580035205338359538700386454490670500074672962227364601977172373545577089556586406767746919512781409238350850019405888812466350951705613894607249542416608395587723112151967430447993892347337045910826957217226509426478060430789169286266854114558429616829316850716008195547075239528590357292863470221463868684405141788984853899750577403228173533279077166156768339609209602748668411489296477965579872733696948698071456848687634942441222589409792973471563130525323706540039016386021285266333879075709683802232036767842701054388581127398042406452368911738202051082944423142089498625576429615973809098987856293019666499757123718852287045188474026306268558365813036556076409456353351059011977804604278354781743538856323327954471640157937005263437218547522199416518721000744487388284437995087313912655400800247750053783901496745364020964333518822722737981352790988614792888250644886628706845565229452542566837691817959153455029188526703690004892256340838632950323572579907353536166838496150203069771011794426279217020480083048711974708657542837424649764124962167437454908659387778414761550135771573217974919960856313334893674255573585335087036401047400865144768680509517332262792347110480586421658798728632957523114399118965928052024524049876830418342794165121443218750101806752656538039913182297277481652694264338235565919969602780179783661726795599336569154075629751140947768988993330473009604626267302536518877837233663831260120156635359976593096812405192952052272211488655624712072762007989646604997519490821906747212335227079614800251630081644815215428273990696445083135723319365903790709335119392917292098142012086657510800452381641294734460380924843354483170219782347602732683376161471444558842187192939909556006261630628682529642768827218339880386196522129219491308647050218391906575529381811775658531215606436906932331117102055296598741306417028921997543386021044444173881663765953920010983272647449101753306583687450130222643194784212844173700736596845622666509420272231319918301672094289310920029159494783527677410686820971550791081265194253426809635813824953797458897411783836729004629215979792529370764062620052375856993944405652414200474335000893341159659028014393611547295846463552051828349793130985708680092454215042744893583286736514780437180419783689792957686710801343026799486180042232633328409015720335979868770897750038977748203112292182410792612414615837332856874884377845961895128004389761968892062254583014482909170689178284070421527901432793954010745382105044717643358380696938821269362526272409352318215704197417525317183226191012943891159562638820969952417563937091730172251445302395872165085298117059271512361211505576716463450517696973714438984603404863494132403905609083748867310998510189374307558709412439955730935105701633140774626193476565930524542759054042118740819426112826214605431395027409357832462294919668863668547439651482388528681399323993023088090009640586102985161041823783681298328035967062976430576820036777857798548793659283733772301146070061168890750605742609812866677414951910536917547783331464164177621997276195678401571017655914718366248273406748491434146471613946751255658935650441163710326850416565840209582304754445250381383656909145608679781632487977683599836961244704688830836048119248266877858472630756784574901340072297806571325506851174924613606634104307129792524560331977239766453519882958060900027157480143219452760795215025611802287858837084724210192536489923064698493889786304222590171986681669430590496847132857495650779770921973939229828807184364918058815044363404088493525447880895381942085843669114693849221222154123220356408166321322610690244771264974472392548053394622487925295644719287107423240029387185946944952791977652386470715628985594243112658342656206282651775260903134361072511836875667833894607994055167576676608848121454851025513349747077103328284497010546048047771437908783808490152350942731484440028984764177001743522273467351797609521404042912014848568251603843110473823600843811148916353247547035238112756421147715907255440458459797649264719921766980212028195920457186536672714116648720631991273998557680914023951280912364796830332254183510073957880105753849417126656349033060567121951875642054754532010998412443062727221523588994831772876284001684902465106337024422044794013356228493448230962471249731977789400831317193881373321674955121757323291798623507494392514267136653700807852601638302994090370650548448679014143219055713671311522607266197141609071496914702332993387596697279857199546361764955157751472016427640415216135413234346785494549371748087677680310653117850038470762863073080102927802208645172062341145188082326143036245951998027558379585466800000311608158827872417354023463704586991177520260149498336810687702571680052360590046110251933264748163010933292985473068025021271634079135071135587179652218706687891619949205848244333770521321886630194912772848780820173385898780829615747860874820716993472103351115826720722450420526969615784783592279124679461875955904797184948032373570155493813555279373606044744661647172415792949903550487325223324914683312218423400162721813108929447991756964649530456610456918515180331092916831190403074640469750721246223318067798988192815421485728898603466131216378540485407979162452591746896649105676047220079066615046035159533211780912443230325460230565278735512003129443994833136755996716317156451053270064906242452477579291507540285937825652396541706168088474197538050919545964421961107167937376880806856046118225703441493390398729364335658188919287984524593918170014263624395973940877810589286279867235541089925427008405977496852467569921987754922837958535120095109435687930932250976441358417796665848539296610495622763863184790585634886417305413109594408478785578893592453757079727330779502907236958819976888268055173703874409723753709688482353005431125044851132036474904107006865459128032530598610316467563364540945036806008996095714209485559112926282726135732827089693187820232088505937924296798094864879282300305059272514253330099054796051576944683334892986380845269323921938865753234219083548903198053649938463693883426817337549780332762010616921686828600564333974550291044875613516834905573065205966727628823999826892069405561666605630667827481571458036158569169778051020137208932866669417685172490687233075951269996970489186929955388997097405206318956671885024442485138568214071968720723345916934243674394264731515783918499288910989943789238416613220806551516084164429826347970491040388309951796718468642855477087268111399929724232006109559759530132799988896700606060712359376237691862974317912137776224156103867441730960714882788058350352162906891682630784878661501510052929788255250909150641828831629146366488729028242689351323241906258484117134305741462875083507667915490095248375166720319124866528821498999188774549727424953164721806277381932661757098145382817803214812374312537843249868938296834443205037240677814862273413527945617532021230102270278885284298221663251084704575227748811003494172034415819339036746670459938413801825241342935292827785156644244150577375996404522697098800738458046232434276024667566712121600166000406946953450393453043778546909808438923471482089929131524454883456496011288753062130301035868248651781071987818416308679668511331479829696662048727835201503037893907717257146873795481391177921278121469830136262183529989088102756432477095912428613754662584008906801458549186371966910948946837633831189795842596245102282278328082428919980524930365145282056074224870543670771179883565790514979875039879236460103173431565088581425390558792894866574328722820118039253473255565118218778609673741894682392756885460380022349888597107884510094724720811056403416479747867536102930207337421476510871768762342378441205907265203976502906726225749981479855167867850039940986505635152945291974242605766205012270706302525041223514197839148967843762683297350179143239093082400256757974035383532961289882103437328511001693510787343365792427730059241614638494450877037052879614240004151433845485718260432658691019379932032046435082570856086619757888331069720902932139672745971701518788319133345407744731609687849198624977014990113312286106699775015394653706736736560972258894423767589725739008913337718320732718642684077006656890716766937828020963030882437261473374073877872294177403675002618249693818921005705124940603665806730465210923637456350580973111659011409712287290839994113577889233533387689151668706255048939353897229411974513462767145421677137367300363053341389086373936637775828652910127976878346774047951557492736602236099472520994833033555344017750591813275437327706386602828126131625677693896558100407577246660950192421113399401721276425260703946802842985511234916409591389258496523047554357200305802845397965480571085279755769816350881212251781261073159108428700303032287998909167593243891526218291831412790739122654378867628855710310552937636441080140732363363147079163959677098651482885427719773651103452310117761379168354396399827294696644526945399199838649966183179046514942022117455347866921414124457764330600319508100663042417145188060557553130792327688157286594712534858746562775982359461247398307485387302503050179303040777782021948309954524387272357898982025166286370385271156159032063760010858273447047817519298714910458435104176507774505396014064726759759592398388409540978366489001995623383253837382898765178235082306182649017892808025056774556599901329167763644524673947634320876035155396798994696200019770408591142720927621862188242552606646627184430316609739225402261475778325618519499000735145699201656589551265168623535895711526093213384856954119305093205616409740846008605433226569535939461639154324146546457425904455291588455749264786484996398287917912603458094184476674908884395777340803108260589082011569271503866378648293218172799210662135993181322022070118517226019858906987828082828423277437807927637861111602458098525554545562161468626012862738966741442656187916606230183110911110736135650767999151187072112434516952196600841399199735339653385520018984732173253905915008491102208331233313918652431517234170749398522414925865845029106531418157430627891794750378327103523564220089613413062156301501383743317268314354892584667581453071109925279358907162329229070736447735352223549708706547064417033381138480624119360726657906741880389491820652040207574352509681508464774109644773655880957901173018603881830432050822059117447065911487859601851300737168915290490358917418420103476586003563292012055170722177562566060197380192664041793894216276411325148228536802641695046420442107339900524775375487008477862470582714924318723692019683228569567747673667828546214057989459616881803505604093201342004042147790034473824039709156702218933681746258534995798500540477794444416474302182516842391798157494343910501791034868843811857898692074866683608832218892780791232634876816826349018452035017631614050622444889955481089272344106335689600762277637310284330026972207514713026639193702957403753117059796388037439722429813376418818023912870534089013888262751455162102885198985305894458173685498966570215533926371658703014445358336882735468260121031595428317081638481021082148897151342020314260055177003816729580240353172902012826273251183425566662491817161315529099989553575937057880106043911037447784398725588650804741945834427963486822153676540564044401609994923734935444522802148418436262552260857522467745160909501654191843027360695280409166561144330091796278166295703438260923138119980309400452139857051589505097147245455282724367456724598129803984626341022670365159234877824999903075101319309980090777477052415795517170531835342880942033678676657771989874581215425292173750921071352077206809215078049359377727707910724247247399334256961562237384121076387320372958646211475720737694840382447523249407496106366104124411853750081334348460257858610786210701969324219161693748503274482755702420806479135509166093919881616380248728241205454085223077106276903488797261758389193237989861546907048041896651250617098399540176273952813714914746721247418243471858387604315063472333358524909684250750130182475832809686814870165285090100294772230777131219877976224544942829586509477845524649525391238957173205231473045459497292262845975906256007751416144820074315355483337891534026255292116504531740613686423610023722141893072846136846389802412044613511792946184545309127774987530653259326256271178529469785247826816639613957107587848088598030657295233792527768473063892891218724331658704315880069906878036710228766783992661166499739856068373041982999810142405267581918556330506002231442616234783637348857002434301238715235277480749448744058322961860091590484148144430302074599785855815211175391732668021958783277381678686030563099379555545465399019152591554361214837042141167048198602111501947233102107399816255097684690396614727392178519417953286387687863464533988077449298138032532457500698387682099718261967441038216771067041031325492668531848102958713852194319326562724755873744854370532620663419415855857677920179356786439940122171848354183335186328336831232472169548254623779965148167669122551015467186650373190370165813395429905972813484546786981469957254050293846263148397863609844300392629390807934170017411542824105549857592815170780447633606618379469387174069962237652080421468351279803587689102631110052378669746146278757353832777358147761334418426207060031832902565225818070972306585747460528896716393784354027870882582157858980687323230041609493058292944122973297063103436861639075082215177295679286295980742114017663884192190788305341157774455767506376934483721630094198029329079235904861907678699650780325601463085895993845554633431538818054825989800117127290030989205470683883459864668926935678916767272284601572236213593813571363460103938442130452671207906499219065281732779795976219365373059218654120747606536118006139605651864404940236172618423637035942186573316499692427952806765238750042276442602286117705874284325904407685691646680866922445645696389649912516367107589922772567943961099484873653702294235402000631976959067860329076321409491663781670100492818880648026727783454091349908207312894673477015645163484514592679516070603372784091101457293012097186505089533238055413255518369617209393216084775255734586577155727669440408469251397985593887114103067279025335581894311269577049081573550364553595713557366161096272484217209741148506648785174323239818731398913993772656597894855911228356713350784484257832374999695193630503085901995281999616177203595144943562793526990979900413124358595142504572756969714563500709167160545612014793430534987512135402291874284977335204922136418027364189144459957621768610719264648959171850869130921814805617759825839929584064935538161198050133360399447584521603260067465832169768453008264204833448637533883071101791374756734062546578543860637698122057467100628013512440364871386445032751482150360350241026989479865929075178269767151982876007985331322073489845684192532211995096764329977387995944621413642975097655399440767328912570948407615383917079312703553542685383512961160663829618433285694247404551829866204571554942586278153619348253099756607048326428462717272813169992965729608790930414764282106356484895709128481249165093365343552054349288671345219570142725443409518964117962095514581958469403176831197296415564006066197247088188838498882066654635727976126463528745563509044214826619284219011769424800825858769095687896003756912903594793801197137897837898617287333276571493620412981839082080465689540241505158749199302148231876724259597951426747842994958769046302209801832575583478390354186122494369056570905218819300763070900966494662328240813883811471493056428753360711957760606924812533518132019847225518480958851042678224678946375080851993731524514236357307106367140694859112898972019818883351462596173827192813264389809426887475713860889670778488462303415235824539034153431586821622525758820205350303371651263353306961965937012810093477663255049832380547419533899043034809923535336893293667303862919486213585285667061075657967938420274552384026670224584847009047123966732070820596984376278500849921952603160165391129295749595529766840482427080803248102120345619034303116325104713907125453874697276168319564886747702386088863462899202052107631617123625744276012724409950547807795434509097826155191097273060266471859522520286336654942051180275033835310297963754973557439567528188709325523482442287585843654091361078352889636890989068254275898126286115557034991192574109973589958531660845606407032563067964075348653264360497592052387608624598151506834498703122885901153076287672492511850503081241521775840500125266916406556356032750852089346934831550389656173165666196572341333067583036285738823046888532786824989761980824312082925756654337040371904257037270962725477547773525087999558065503999735013952589907858700043683222558421125361826439905006412947780021267904276740344650422376402611896169443808596612749912152867598392428949408694228072295973030645800521899559533000905556718138592270076443291697042943173323808319037213294877622264218767059951536383888066178805235103443268844684125370592012422467346881748671110930811258750914887522177660869117834318176846040415126212965846513811978277904058048824958165940232727562945630947285558006564998595169619385605911926320534990613795788897552838203411688212646694141398407596977849101593190039187266917388040995434242591268775874047381475108992972188411599449290188889787345270836958101706871671859751979343121298514290406224468619468180790493255685505769681388205589174623643461102253527136416086562233318654351592081215824874279331983888832400479296873917039415818926626044782671666189079524668456381054019279998413821560976072864716120568041310255247685812993010371373608032855861939620283192108718539499498893252326431023636515963610718989621531335674532486919588997990635930210960806198461683637549469184518941682122706188795876006857836683462549223217600671448744978800225193860349660984915731000221049897835338242756459959570773580964909789520280253528520599010443492285717000835899273805617670073384513318345817976817257315900588457106441654661345351387664399019010211559271633202405034409714938967278370461100799310604945807159987823523767495956321603259092416259369861830541252529430529667779409856865197265688321170276626843645456066884877230863296864383339028245826778698134973383454982051078790398808983354342512805490338274452159601009673683459070252429845315229510540465047232849661847608193167933459813584294579305154664736210270867572274559483454541034998340560732207947916355460725061438516874147436556777492412266107694179749339478797175306887332778113224383180652386254173503876389190172262159810407538859995148393318466850424467667141682458521788969961597694432197684662643906134435718137074232373999422654289074482401613707297291973306212589103564452448538857071582093232822346420384213809005172894386571734018118444493546961748806896348749248904816244201665195503591672950123493982223724732899891032998326686757941551966651694885593186983056864821818263058865548347228756606111433405512860468571410650953322570903623237671436108065742399654065233495339154771909290125995313870029629578683895868894676076843496413888073671047175844507595450068649075789932576825477516741515777136845836822960069263563787526810956081799092818921352103886721114820009578628880316858117317864067091456888633337047468639634317355230570520420336165766719385141161382688356194556168978706213280029705104839126343801298195410678771055973300682538708082876153827563183070933567025097112247275489212841073009704314414694933478319542403884865643721856722659079243913764691230898857089635189648405107456276368928982899661574458466229817212887434280351350234695270689174612956256300083371695344500748700707489570174667885638513841702124140092199137900467930562389321324251897955483294082547708191894432537955637270816435876736357231984291054761794956521491321541227439528838261276850372407827803810812276752967131538768002700817950547426596060870664654453024109624936878666856401172199375153475355195442829926088457299421514113519008690819346391111606057570967473910252389987431615771240902859904711310233667789205646759860398543632829464364208268948835716475602443649486073361153769171482289972131547632282602298831237614042200874242891501677991014453734353359092919531082499458691244051530499762197289961027951521329543144330494309480949990529185969218265666223531966863398164922275544884319536327985369032789989027336823731508177557865350316583908402879961221119702473419609798367023692237224480922963466176256134920289074720868806669407915180552041875666432303076843791328952483859507829879647607445471879643370346975257048439310322881367452465030626815138595972902170330103490500411602422722777593377985256867445981857295299264459044925688548223346188510772314715616767296555794075222786831748470305408008078005487734151445427610807552303380562325104610208438973765909669671576926768953714504631187873718570509341152210379917523973991629672934440346047133993072408594885689883667874521813923701932993971000601819323161814887950584249539732668099216062234170969889931233580605387380265445753933654031340820046938869208347390127910349394886817828020945536388591927735176427371910858498637656078284742738886457056164962062742679527710449096718331399841495477494926914590646894067733526688228013668161090620168929972185383972674179719712085231775017691055105445870056461559466698954074422353054939749610056500958949957927433472499186711031232525310009594521123587386981543008778853746869583658017112106602750215059556670268176633000807619426392340403845303921784618693095609292896353120326882851164265787750674912386507670536350712763701641703395545359744041702535791309893405165937472863287943748115020264849277512364737299446300048042823306467809311357651138534082692180065657544780405309712521768929503127035139800854168816136986608065147308090016639035250295838888372258065344432903764846448574558874753982586326973082262916896440730086678992132607226050137172037876163634344791223283820662415429969284731759783184250407493143077878009656148619039082287088413545551874733179959791714335729128553046664988727715256522914820263849280946670011262053471134083372222651824950084875167316155977138904168366961409843944383537655051184908828653256911453246827915030381254494832564331040885493367276380307547671972907994216721088955659010651879164094177598792330629831717614942336462232970704131631518434372920641496497223778266864746214767201580393777476952000256257107269408297308969986564932712613203592279691144649420305741376581683298265857222083103811227356889250511376336768950884005675345365394001669901308432413443213201510959955916419046719937732142500436958922977412115770936766883861732890554530018859405709381335865602095632714212826128690312787637337939818422481158137932329080212666830712580954406326673060648500832326455315882774118362189910643883060242290664238224486952579377069170910642296646801511801895275943656453754153685247149804196148918630610819407804527661915895558005310629329292723027496882761027162534192372923202978070289356046038781201743723938132268637848039807091193003986102231366244069528659611552627914859924506875822930621515690120117597380463944106399846249081589239452051653285781457038194380535035635082378041958904169502441098040742419644556580332444300771587798854628516517534040700149662869441074558921427115427048119283529405092149126856520440774298104919535338328291298764639121611291577366136845018076277879105458277610149279774519586345459203656686946402724838290967749517031277775060008779038883798389086236004587930394411840595019896323920030108229964216439804467817648468499569474862793341861478101653839448828921718388489653233504260144424062531456040493032220739294553188428197901119773822342152843545106431685629020006197210254160429421800905537571197866948821834597463517360416395156451318915777214153985394790941550768427543209165721019049435854177935488181374207098150029043308046298041106502191869927491938155697918274647689587511234861136561600768923697376541231830150302433709545496152636940516811501130180227252151507981970177803764475051870321223870250528595596461841056042416012988959031097405574537145367462950197870172284674823420730214479459782222047248063392506140636246352547022035705134207401730845168998472913430856317136398328691719334087682630983643751290636163431887006705818809823102055238759181311622428915374166934958633781757425055352958035257743828099136116278342590077462720912510874568986304505192318973586276619147364068048166914115278017733238040379853558319578191119282279274990536683423495704776768387013944300888423152376285011361580431924554289411841945869613566755959264328470054654651210270517246764158624562881235208301325261185116192912929830614220233588215787508067689498611030536214918919815448320368554064511024657706811664440554702448994573083418858020004452780008672196265919801127910110644186241809089158551399366015319559246771541333407019517651705260592260945170001128918636148074836728305059463848937187863097035697508293836056783549754222226888478580232686230718793731189183011554979552167243638821628582004216333779904253467811222156000398867250699993667634385049262689581971126758895735378880466860709901731751702460527732377414082635035722300631754305258187722962776199428596602026612739531361559134408869740268030703315317628920061500116792788613601449367384097431763910132312495805933559207842095352832825400408193012188593576139313288864502611838455196881083200440774692205928203526286213399437315611820332049270341092078895098707828771106480566483321596956130510612875664037276589181706642093182679264621544063497246068467145356731857026314182017913673187480647124863018085757859288699933851470502674878522606625977151121886896170622081769045247787294672361188877982694965183899499926663816783300377366475323382774988028986575234668471710016499730578803870944893064644692164078774415087469459583876114585470480541278158847466411757527448230925972955877660182273616339202097634469467028726291276290015229622858959053699996125246798085548582985247660486442089560385122651123443211422864822889602771936879401649965937088445481064493614427433330691340053455408908977819775061731236882625888491132620830097743689000586915755717511666862274469360472504803973329980991524272574837544814176735894945627637595700719311151497946350368444547194450019512420086527505402703336014218745445726310484098872832993350526915671701117640856290537415633777012871257293256608337714794848880986811915305178766043523661327567161882485884994125607668237659327722938715395247244976161446666001998079287400213790750053041623640729079153091750835963152591519130056628521007897663242046577774136805398172168655354597379184427243546124324806928419370904997896128454207181271870429924478375437461469996625111073957155068174698959607123777378172174808183562492720237191991438391976476938600419948700875091433906474317928215475940688814129353024039373558366742961390566031217320422880460727627093114264420734814144145236894336307383206983382229239969819178087756601653095878430101104388637548236068843267992090563937557772763329580438686330769386708873252957506505906960346202152853901301805439027737535581749195483002412756569529841184086992235171185403816382197268146392144067558857890707019501127558287683266611038537193528634656837537642119480188866405945096345102097925962443718652377115253435114451058887114199199499780389951873457481325613820217558170453152462691463030770579321808381256314062371007456653661703990674061736260173076824710126832059703073302373225452713422783394841164521030109449624019250782052412303776316766557027831379119126999419752600402689838462659227262576113270181107769383242048218014399808665792506827461155626862432818090397440675443117672374045122193398985307584748310249950646960069975070363863286851804913407443872737089929105496714054683370019376005177935314624059554013542591745291801700741262188159178356312175581279938834526569420701796406161362606173913126828136938852104529482843312590872563453903189457100149343868400944698529451020769628920918728981122521471159865404871245195218399435894513517138121983687403400839137977402362119284035872608362263114495963839629051885260221463307387049749988267936564159016884781934134591700574913726362709791205370419437872829257018344962942767188119646341571830925484012930903368155513908466996358529046562241174545800894954735383160390850449548763050567833765534340666101525151340822138182276276112232542245699102634324848743786850704726932061665423283896083939059710997147988209327068650618192141211722144032905251199556934391966150417286685665574374829755489536452490984366087221910975167230427327013094237634733722809479782348833892821871711411982129278955270689550267140449461233459206398047110326227687954341666205368310324741291211292706484617072835025554990291343485430775754695293096786025881109103619404447174019504335964792586617448401789537045833302703827651593714401266201409418634673284648467053590952023028012625541073529370053712667253794642761563719795609247061453293100893944423549598415390993251897305872561118194197322564784121770557158497562343694436354205456085522970077784542904957707571216625807268865756614521741412941797792823351647148700131920762939362050286628215384720087777351633120157281965799449383010451571956816982986449879442587019552895604716583699986462553640122872398509527015878929121836426589674847162074248663057109424722825872892857294178122130070576164029104805688088816048676835546758698791489311452642975116982458247442422374114570830263240433653176758842708080383016764478504638231800738823871487835941920808338524849257725621820034699467982535803251945073554276993986379118648069087460783175321779645868508041052339006447005935567742578171245226928736887655357495317834775818572006477126820111184192357436588493120418701697544370954731189791513635270567071292168114017212969873890877416280804270539846234837769597266770762224822549574533712872432317557135930054461844420727687321238123997251392468651173700802321110084453459264115256355602759301315184853691323150995307218306233219973298202580389712670451039246479151158598063556917165595203645173002510940730269293025012625511849481791965200700158692288579587448775088249840673047988619699338284299696161358736949332652050161172699594466432855208432675749787189894352253582016689817478473691372486126645644979738655124218307629994720515861053829268838390822438446673935814640101257917820460666971704414319790003188292657928779739860019643696299341962623702145349310949873375550693597700982722925616525693087616624085297566039375430518683494293089230197007831205857348911603746995100372180920572997484650818783807127528158927575665201246604221770020715382510196688020635561664240577950833199807656941073557684139597813346975920059952088515962736005002849367743338222457843342168307843801098318364387148703207161850270617851532831944606664517949741605318378901128749010086155444371190807986657227632635523384676680431148329486538410006568585071749376946349992050922084159559129693249553100952049566981192357917494538299741227957500369974826514391842372966240328198908728270095208054297986700527687881733383036613043104670050656143994207692666592164760964213378743129706500016344082210184629939075295966394089939974779282996287846201334744506613235105206000980979906413410496266898855007293717628365081398822690539368588491344093658228174995808664245506029829452239245847148065852546322550835309180915674743805643429892860799869912914785270128627192044588076137307454833228119520442863372267312277412858266089637671632287821679380249841832605232798521866007431209407975221390460558075751476232504181949497112042798304185518523127237213584482261717041646655374674341416707993460039092878520605794030772726681891737694980077100271783514090050827296064146658078439940661961996229398579268658117250164079758409054641478538070098018699267146017860578415037605140683717851066414257102584484894521537572769209558376477175438843274794682892582373632402327734803984108094456024959459482350705420095698061158008257105284879339960784274803094358632410546705820823006409765647222238588970762554288655053478144134320391965046877973164690502685708310621859193909973722421687120826323319937704325352827621454343088826559947297165850955596354335356819428872674826718577827366748634954544056032240855458614983418516918725845021034303833952736664733584146810600908950623092507129496002579030850527385786460552486382412050559496229873787108155514775448287850042962186964782482957665118507498347173999569130711924619659752812894802334720681616305091367182900122235509941078982538121268596891188746366409739886964686710639948491219911861451222759892350271347084072329760640557035103286521710452763620659710531525640600310741459238602192418135498508743278344336287283383140045442543224032208536327619044812899946094976271321065857439639252058056696263133861147880763470007020547852790753451540794126093994612692472782336295355631360213837510123841151923448771903102847313707652445057797641395779868552919088519326754373581961815579606435979473364691282285953815633560887744558619718587636129057296621474936422697279030528687458614484876968613143834372611706259668122648708081336962079589443658879491431918237359478548247893526098962360462726162824989646434920643810894535731821465574075390632327170923028275621445654075531058457529527296786275482767968977989175241770061550566920316168678161192056399765669976239008125399303346346622457095882672203925642365647278668342064629666748051683395269419655841808929963480731951689109542940853878219729382897894456749174698186224445908344656009039301689077310743271051121427432446060108598473170815871718778906500514886080019929681788562075486594494566762953144390411461403696364624091046998457853791144543078630066615168774364719516919255754921987919622080319694890259173674257384460146667660870775757561105461273812850656069835575419032357030178085093202498935846583388458053232009237699053584202256615053096390055748548309091806515090544394882602753006562065607979497979383645292353765699634595890947349440638868235573702506832345382094164371692736862768443269477788025316685763817766349595751640134254732719118220918308476764481268569958138991350125707121849478015652760455880178660769153241625216934114852445702005492246638109424695461928696119169249713727233072195397532691751419256024230541284004397838651575058990709913730253306251629907302263746631987618590194740190927518361025022692062100530699033592978579090267543359823273287302046984749442211576693937936837892890532300883978399014023742359013901145146106476447561659045656432509628547318871537708788457600341576948794384097889363240219931171538088989645071218910222801728003700477287909493897935111725732948259969974815284613408230320705507934698464358312698879556342613057060132711172423480958349312198661318039411390895033782671271387867665714963776613870516101940840577749050384428087045197838523945243862206762843433744295254586916074015849881836782041004131858114131781380072496146080765168705693468388577111781973653348221826406843507071032144223912888655154738946393338033976052814547627175426929204335450664674397758464712107963902211864735255007581146074524296982986884808597471426451990075585597435045072666169277734308642431443844109633329735415425404674489301187066950071267174334775558459268900846679667302289357405756802107765024406848242227347300579864102749499592451013903473528302663693150897862147644444018118394240563710749561227987684938669471509991730151983255089492142650069053489462805760781194976629887368518093781027327130265515297462802386674538674788387860811020784056889293824788237710800943720691017722813269611550263483726791677518350087281569017355421450001478140326609049714461079778046788790727609161079741428893612790896712081281160753119430003893664608448984811627765421474397538691156777188374977241511379542264703258087546042138826959743445470689174914250714748536173750430698123814747045206365821215332913391628765602636501564946406261731414787675330042201018052433927739987370897918719145261002324533950002505202105250800954709789636911505990326414445844512608123747557445366315210021006387222448098664210311709420812725498940961713195007838237301659838581301676613427311627823134256563678431117402664025680372934214812900473102098651282935128827944781118421731547647275761042225080529670477762446378966437016919316675799059589500315285681903775818009830217672189952156607950287630690167526159816569241396911470209995212001786882872879652947832509401275504888815412252239629031107679496620357104571462285710999751695706767034852750681036499256043410832651264701206070033575080268428668212604114408180664619492933798604767350882543429203567662281408415412317381424342304967177111711470442351414888549259695462925383661968567084509075814796911625298115854196358041443524525948516401777765731509551135045088503218988070373100415855225406540276092364172051380387932569563046195615517312435769853582966215990147239050406546114157200522808426109117362383245065849581642521588623159300727193376853909836726852077609277873325239869129668711244931868038913607206340700551581588730679491624033336050717014569927047217336980235304307407058709298326450573583161239166488803369097678496248716156161512758911711397185201323686794076265167209685377849095374847563816093478365242771515779006880647845300529426995014049322985478251528520998000645000990243661823986671516725111565544706944039878184938868368371907304895249452577203883298604354977784674476511639145960478865325970105770326572322548952167745176236657855352976749729058799692905132230617303042890712916118952724514160840433840730754269103376693408028038879903382912699260716844087833098368467304138149757951464937833180793018143775459665736741993795794889594976701135502814641734827532455809139064177836115128194851817988682209570933167863481460726962631937381096515261894451531836042265661909168640164641034217050922382963310215427180797908311346726561013894319876275211948916932365578176637511229233364703473588813467867184827712968363803478197044132561113971222153997412475115105951904536285236359156764717994676479722513734684151698830060284533660722245887811366854143638002836530548991096002025801766558216990812782626665618560486389980295347775986529688575847931323192201470401096888830424554729151815498455156461716826262056443829957383897091415135848762965262610224940265098242113398117583982160385313340746876921204556347377855248470410219040562884670575337669563632211540593795186821655679133732207414217802770775265052504006768750948858781754597200400777869674204291602493471746694716561936544847191714203457303035922495383300719585679333484463774041894075559824424066327043090787573748822858338674853563782951625601598292417366933293769321580201842588900486258958184506414443676709732046338430790298768368011276687994033996098812998406216049769507763980885712460858005340707181851965828464879173657906454527277855462872823262374823068894060904819040602079289683936698592952133983644731194810354970077009167382913347302841401982055176476421186521352080452201512285462450780138230739831694267305749959563675930762461310612725994969176581496992251849236635567565645912901295090339844303250302707906057201573750996338085235519800042657075444135542607905914311913727541262409329657759548515045949436585928398266568773175675318446305821567506165892060105516909759538938948093737869840724152434148729875158673758270579241900751013186280472713524426138358016224352218886440554180010570033178893656641408830827433946883222969022807038226101235751618029921983391103396346600500963023331386070797254392778406884164614430199920485876384691588536265872109690245218916179682846601709872386858028216160898315187337834733987107734868050299307816398225655234023020448398513739783724802321455887563581533904842118357463943559955388518910529694982590334738205752194803637371379186809229348482957939995590605997098567124631279136033424854676879354903723041630508163437378431950668724682807044281239049880420289738087255610103650234655415367470736195089833385391916476637141542659343183259283520507881716722535614409006387785822215439060993041232775389392060049946089738180748726971244088457628467668490897503988213985100045757757434020696518237143830693730491332971030358157007537844372689366944682049021891015149728253066845048011312810637638142413998383634602883097649589756412033744538270982069045408770910608863750890720496060053828250789788596977730604430183437972436867392118091423049613414972761402930763210661919659362915598585176862997670505254035062055834262399595807784277040771138702863217388205872913173046811862306133777581334308101954715980944218359833090015855489694793134702832563674931008756939699687910126150552719145925092923364095524337261814799451253426453721813953531261807140547715644923199077159651090732017392341397979479510231185957799557606967536026201788705752472936674449640981209966118129962384420521620162944356790733904380003649374638714425397723174932839458803184159769642425469488663285684761746064788579529546899135015310575541652237265044368334404605993672184693808210225483066457249183900007681727312181427503890273114767676517416172208336129701872031223019011717470544335610177940935301526701146953036239103176386111128559200458071980613235001896815427286316325590541334727030515629120312575572228054287151886998063020117383714034933910598807712323681814421511644681930845622121843967699522008374905047797602441842707513271715041356393461076854730003282994582911232256376161989501482844810792372275849687421430029796118859250328192667217870550517311212823424583007736239700818678245217291175032103610012708601529336892285444521530080368703526684436919329704913649136569614001315350123775747893533683872808138383976629499223761303546766163699739736590025816014705312373886177580571783908558725801210033434953689417346077297958431860890520776592480359684633466576538277834435237086230301436321747771075551109238641226606984899866272501509576244055610231434489096380951946868860381210718941706034150915873353770238368668060734350803387197720326462646952652222305484642848119173218156873374727893515209711344168794262477090092791595716786690192344884336870110228918264341774709415378185346868579576846762862800971555819317286222592226843500854974422851199673808893440846605867128914053428748486612236976351557943408555229964371702860472749986863922319079595203893857578270118357013435745397002447730129447139181142734140509416246641372134615717932746962082407509262661234575421304400294780520689118075295451703882956793069066713176997583337807593595879077984193774310672573474713824918139050423848142510761429185447417843334487624127363408850991541911152879387888296203600436626317819852997023060869674566460221013069811203924603696580794528705699488610110883004687046914953260463072026008638981233552300607890511879999086495242886619563489856406656327603156502033725040174101818260674522277339814734184603688175681555410329339345120005769432741843495986464589881917209294610522524950967131700226491326345340462834823104894127909494399513631143898781223462080562969574727789829878119514377336185629792103501591686421050895791760118262870986239538335350577907271091048802739407378353253013292598409518167408628800399436940504345720287459098885054101830370194502644655248577022191881993031358619752017105911179378316113418060569657571203391928337296503871738429751859644455469920994673628937446555943466397881446306486339350326637338723984999843187410661879293701887284812798986910293165894458453002455401075432120810678943500731255176457594388649744112300394531651600855148587051805127877846550474792978631053447177689877201574907011896999454336695984588740820580487929616983523155069077748333375333504520768192613964146600467778527837580862558796786543265174951826936804003889112935041577447921397831985901981678053951718894608582317916997344889447022223454365337396424662914634846955080150774427060100315092547803258644924953592131302204570807080475612117551322141622250990979871599864157664408670481409340797448586512698088742168058421782835987538083853460070300699296356443773189842077673107192731346570789982058415059065447570872730927985771382578615159781764333956606335308437171975265564337569881803010380964767471954203524031304527725835280525583046536601312264653535982770404619722564981671953890818523127316102461044975023831107041715517472820509968345733529857448549000546028701631965593446880247503365779135457815813978114417882888375923079993324527911404049959178676835891197053487348999186474104569274720267500080860233108920318653841158926167585632738550507499737392164774319501945759279505893981823406500502427556039001041507569928805283241842901242462016243240262707408012552652490486594430424729981750534378053073399781425475111139266642765045356501550930332798529089825809615779228837531984896875507781067697685308644636581194503154085950163670137439321009882605842609607197146781499493645554416037844856724568817081499414798790849959518442989190553750983559550138437456841840896192917478438580412627438581997296777041511413743126688947085285058657501505556830272038527732008702788468311596396372981169569499298608979000602263798938821248574370935799688767806879905359006971054666533333412073176941218752237541374835460062451653108786279173318194957196500646682861551693905375191901423014875041303671370187713054697205409709897058008668808887595224940835781879392985916573926731941691384312936831256098051883742113611694708738891201553450342866794381827292996856588471722137762014698422955322429639872662361355419531888824634453741870806392722282147507448807562400684685956991908053186972398756181865798634833374367305261690075322229255163536531389906442081141674896796247299446729735390122627099738385782348171383474006009571494957995184844850138764061119472520515410844857213396783559974516239582387184750809355409575660503360729706878701081573305732462052004811289177452429152622651366133726553098208552357415999307015125798746901527860616783717101249516089292918765462470185643799216605379908642724545416031126665238960207146488501444423258931020564127179024670020704380542525581159283615589345684977208037889385984313194440167799059741410234188474510286922548835010319633255405028649540937637755487304611007200911359964415114466874121891928870930242606760880991512641747622214626581101936460356407089719215571642796590040839126405909762587453790965493924211250128502917287928254893581526745521741935076527163166334298933028987211275145974761170459310042298079557292223534329642812209700790301731771027419638334441463941631271125141986036537753952277977794211356998681637723746689634120154176664520982893000264976440077532515183042181680762347045927914153844610246130942323613632113143009008480922341571122121787841399255461306611527266442039786775818214758426372193385518443761058285849727337116903462941867363831976337298231032511346866580545479211484610653914231900058006582811762005419504876905622282144415982450799608309856339694649223781743851891575168639409486952691879750181772552801612708243693118142993833261307745140296876616778118679642367428871495505645493977676026157212513209313149928434586167529979678121434893973263250702367439465156141485091354097441695255992523492059597524074367202499321725095127544700759115929535842791095355877996125044998580765308448085795684038032397819020052928153066730453227846531304406442911168492585527502305786607034358185503516349181282720899447730720095847012938725948057914525641836011291323390282452186075664165295519777471929783134188994970897179297228896996398505078677112124335215029782972955958854952736793939359045998888712918233290968232274253540143773116845217050392256752427986323552893010022701718084922507270057236149319245755690806206404343461710544369047791921539850263433006231705751794553061541305742706478973964826679201428675571087792313263423233926724346165243291958669543545139457187315807163500034107888963233843201045318248665645627238138617048050006764926515934862346264819948302913994497590985649947241098533081472350732399258790559863828998388969433997950421284237575146417127506794683469099454962194413327967664168209972152909772522332397024675113997947443694765761148832172069896223190482334084624254834864437544100516124185943045997529974819716818324805801412211632676397948554170908080074282132531038329634946418459043593734094148108472238634133572581718353608635769586035630333743824398121068907755834555724086889537488994380345863077968490235960892182389232595340493668741445167023584014623823761146799898579722442541616490595972600539587087119965687883258858332388198611782676377106285891271598733803319228209909985003150411191537755378129813695591881804691558544598775176728445921513825455667228215973090061899474235458513162725894197663807946950484845909015766923845232820475851322146305767018670295649590787094779973875580029532795190399822817020606121552887854240801998173370668783160000818438540574779300599023980870121491010957687782961418173291005191745733551616975740607868046533427549435036352684188338864351431065677368985552575127850319533079361207764522786074699544512889651167706838108361427615007375854795043109961491505895314491393968030959281016830968480343096241900128820789019121841710265242995233786325534778409088735746283102362633834500176311752836139334685003221585459249403433701879382486109585204053961737908739480017138207045262796690922198438838572679048342639465030196347563488869739524665823840997763225027394299249510661846584515026297343185153447708551438466757973414864486541893186218547450761998949950618283330709018120253492596344121185506077285274414128088788910178440212229233158788255469498274429334848069575550564992195002694132818722403934948082460999105656230698019885273022785469758418416087567960165738291452561749560527215070836841066508752858003732884043406518953178708729852422675147384875715171043734273074898019960718125314707783939282247800245358783105522513302912261428885762663653217279006798375791387823407558449077815331973094067769140769854641046257119388883892798888377892562671172864649055105488549200039102636538447310061874538107933279073847039320738743662415217004722342179505056781804086063361049692489068456331253386635136465331638612311356731496046649523858480114561936850620281208696035754736613411426145895269527393330711187555140149937070210550955781289065902082505172157735649139737967434321974883205221921881261547312439750744193882969555721410240235488020574017146772749199085281282488099125111326015217122885182710017383676998488862415676071945491864165246687800563047120159551527874083670747406381581400794620398974004705791537113595567648110520501757731905132658814595359935328018789618255815347339372488237881276916557873161577517075590309806917809131105065726872095271637911361351701570248685282741935129949820759128156825276212616621252796158722729374683113700128888580305108694756254184973093515591276629492911094904243523255988401207726555324299858233480640659528244868814259443018738020499688739782798064143686852763013055932583997920882196534103839209026675007740113314375741949235144033880546292421931258516758745788052523409996197763117630955557619595868138233877696733470510354256622825726069948832119039816295741567592695634355867933027361545772518568993394563979982043095644237346877115677782882620145558918239982026188117039165960355563151399570728651860409884675461365667773020540152261419444486359095201914023272764848404943460740622058383373492356907700208524594733520888944513957180961214816415035380473151684754510989472185909920637386699691998187665162486542533824495541245034474327288016331304332666241618890260223226819814830649951919021941794593591256577235189035646486668377954081673232581071244516566813945925555453687208009149998843403969937607043399531268425311053420423493594643383131586769053658418046689219849215757971129658920322378023746913035921899436468507510203686146484135221500691499344350000021800230912793128192061607237388994623022309365326736733760398791141083952982148486453592436518725950840579268081829865787163796558609887433596689470339266375449201305792304411479503825712079200861224572615173105861315672937435425884132911330008086727716645541291690293614556587681333840696514968733234679091982168102291553538794365219341698493456972201137891015413396332654681407488102357121306459591267674205261855421728734221425172965166121412384404367291362333950115267615667874446036329723254693632269072161832897123479371618139437341408789966019471627482001656122384601707193058400983829386223359777243888940025585623410073472128631407604844696935436627311136845457825881331843220333994626422185322875677451874970130594509100460823755548559223593981475562355289739010403058819810770405635202779930329151060689822911299405873436855798677875183066744755766067901701718028264658301716210957409825329966715561964687764352469569686169819356787032475835264422400955155128186045353769818806073931697366628491650869127778418492137743267432967277788800178987952227702058604328339178125815443875797695264249998470999315983844136982069163210193832779005019179263087995190427357211856667138836287281613099424846715255682489788426604057419077538256662568703772453327816372382487384436087962325113377200656566301388410605866262679940804167597723573220154987586248867317726730487329474924194509038298209956409682585927510918639868920867318731373449075201647177971609704357037780378151103915915788767486805334337362616696960518843570976066692497631481933482971067865778179547004308388480317134023553147778561608267009287885014500525034220517498617114217942025127929574472472485374046005959135849615180374579186411155254215730269015666077868165884405017244412088349476157197680959486030503383987741294167931753084461055302572818474526671135654613956032598028814708751461432935455024191212959061199985921569807437299585524778470620747430163695764253649772923230045525057457743766228980513254742412291450138801031858326111220356857594506639000558627852323645470397184182495993641419718709864194768405805729733552274583291047449018060315676688953060751684994425739948795358844293151048088184527928339680151884737585721203123939333794961399207740550748614650437753161625872222938102660200085499179057632658767240654810812810172758145598768116459235489002136980561804698425596517008267318742386924277551561492034543643443988035145349037541351800873920305446256579955635947616352166868765763948298805277707853218006299107100676536985951522164845539925335058776392675979385131965831960873568172174008207690003740314006816949176674390909314417377519500845514329621192252684860274832466218085927776951237234819850116416224681367568457962235913765068853522177602607667620599318153456911563290761770131283738270702980613910021568999867630301980778313336668532068801585720134110274824512702709849304571377173503382200877877789007703411457496081086588638248994861572421819377454130392387700063676722216947985126805121425733323933417942072925439884001619376949846609355675418452259223748962394617740404052168276740857245601385923927363400031432978154463278814982932387766064300870169123165204410126366992261521548318271896375021021290161614591453465234294157960548906473446437292124990209728666590022155481480242420871222313009051755536552863531447558512132150053600930711200384626555705967432743383354731193988183259456811086829826635749375312935575745912486354675618982455357390328636259259833678563694527561885028840124330842366827665872429260486197235682050879949819147629385013440038374442651704826499704142462785425244358638665127641001792818893128157697454658721961719249089085914172910288491897713540591690131197180718848127191530986856123474115519310685648159453345410324961466250969885024288565895359427334926327636897766897851533193592937956418510958374916595587485887638337081181196506747079590888846218103791684090146323447894757786123684849875172675343041465075488740413548966328883119222645750031203329020387153164291693392816356100869270322814641893956567591541634112907163427176981876285025661189291081621071834224640101883541822195809587753411340138017547994280275135471556819264218105966715504785394153243031324563991273071085575601147970821104589980084384810373777417554602432771130183585122123604857442800149723222509122420561647770800020145294602264153947741390946974073301781882687680087459138135594305057670794103503770470966743129243401999108134980263943097983199814502182920634089745601881638509576154972429785674713634185124744336593063309894945015942718764959741782178323413441708419217618741973514981852994291487401805391969933895353287970586277867688352659638727575396556356921380296544638529873470006919263809527351690444874711393019997373937196388836714270692434079580998669530068209515514219584841837473907209334402000893011285351426131603812765706512367739853268560542938096024571886102471087368452158572065337270607866729592893060599666660741524606064854532300583839000044147785677631826518508319691104913368664993693370644914776229742714693272105874394786629231446133471361745343948312194034340744074293080771745999093422824586719837124437111013777170415211838536992340756963804230094614258258130195030751779437983023888148801585128692634889961476726058965169468019706982991516800388137734684890286364556697979689058217317554024606618010006685525129373206936468473805948330276026761678111303427444019182095278768351813810921650943825034842483459075650948247097073356708900478650084588649901056129414076709635524028703824111271472959107611508690788206517229755322914913582287007620319458695678450812204496123535651599619015505843219591061467432960864065761015288125739451380778520717627076954903464260391217553508387258910630099615658579157910109050905139682120906793222158276286207247300457670123845044676374041700267144689889699026618130727951442350383059465307667219281750040185237945760294211325549686597868093043825175566470970777794297999692834812578900385763969241627062847778327953010931477128869686675429826595269216274173229852332739362023640202023770130724323572269776536024990014278495566138696535571045300821022800765715577494100379812279633359771491222717210602032386023002938664895716111427170245357861855137267010598767158734021343900167025929279524424739337103159739255111220712119381916799728350346436517714421625403129955708399163183682218564895545759322392864074034934415754799907084351093703790000538556172468300216611214420543261125622073023214000932557381191503440796521996786990132955040371762782510561842630952347699968813259147448131539358641859248661213399257765507090499736161703900167721326763101933089164097395104175623823788601731690524061769710580136267947114813159964259371987673243648421046072462272401521241841387057389122870734693953361210980130504896607165632143705895218202915476186921444412418865815569467920479500437158945067432743754747886865839364833457221463041708873630915446696697326173980202913714709233643330509209502170101505183675822523546458011871040078207931541896738400540951025149355595339787234660496583889346790217310295915086046139479156272637983802284460059962547605525096902616351098808168123848426872236492950631124048933332209377285227934065361160292965743125760367418983240371467499260807558117151630723079492961925945061258584557843891419912688236289884074802455433794392407105825500058102032454893206821630350611005401738445539074352366013729379329479196255795359161426345622375669457382046018487455885287563013613891470877916596931184360977300829797577447535353086781786299728124918490285838420490713517470515392633836220446838993751219062060242778452153563904067172188716939737967045097386259313630573015260121769430633187527981028654742253246444214561192560975527993187533980505372974811359458442397701578452725302609555195296391127262275940608744475330112462026871171139359711132328213600726976958315778895217491083664465337202903170354281162803358397339111060295313497696455580909742264100211372931811691210836930276066771139376854924019762552551156240829015635799751587101953848839431412434893715420155217278761182837249777301562934982535719930105967074480333374603098076060146878661623286375678357095211121925257994785801132419182743649073862623028230563818565535832580728818215878235305010661646398804993274205900431008235290272318418129110382808655531220009177268479698535193544410215238080522639288607635434721197103738845077588474342914444912121106361324606561538115844197094271153529466039080419366983478844654105620913882743687044590926420874904775838761716981803166533848946588667685512813150528474599159747061003786063823574230405274229750774217561823366889289713037948098612206512809159892263935511736403349944478265825033574724417607565551891055038461411590715625182238628686124987594159892572647263697377765396354810169651464855442705623200666518830397112881920348991585206207221278562125881429261156857578182545827306453106405056251579260709571376294229058246032317265453091935245777444746946364054038150882097803090883750138571421785279206601259544570570475820270120021453048835907732842563666182025106152346553196414572590507493855921128775793534154947953981171430405108636655280726305010153413930539329800129609553489976209199676815589365419527550710517403415409422014785004439583316843314904103949341372225714399157500019883253531331650743502367847206323049520621136897218130293702839920431341104846724913693748073141651423619111747300321710956867730887665600768888634917714764358660065921150851335900172152099651411111609625443389299024038053456793107186247549289303744277198368903279707534566716834917807038740271178581116372198915278864685114384402390480019924180829120231638100415340413364208763782353811213046756910481872737209066843364405487672341708610130724588963383112874803208924641295969291521392297576904868301842871009594365878950414436199437736866534207614540486756261194206791746302927659253684963668904267975555922643676332096265911001447692614894967911744220392615205945849375759839308552216214374874796754388837383585530863816887491120838609663057575346537942094599878954500417927599469247150459945365706256177170437461063244188066089784303157236949482930765946133053855182875300972366505525128323944159828865306411574361574782750558769549146649862531494603984760751938485906729977318391525625995611795539510941268048261844759984605224217270566988758812151329916209708024253580094056100328914941503182342934937125662050844077316634647183038485011019344894598930551699622398020155665853107212191592076886440420234879150224181712820815028902908845184232268575775100304479303940924731834080961169124271637226857017427592630644251735817991616893104180733047197010123882716991749624197284425331217024397607410258888030182179956267994640869211104095619210235028144000356137380332040275254496207459931417893322957251826395417647630314420570080344158062492692113857464890996010416395692572948809714823154432353070580446139949088378800682729504085991024648767859472195092180230658405837085386106818230683221677932908008830764428284197472727372602320901540480559187720930271813423401477236720553399122936201386002634935295802794860918073499406308208614793302487575148038390374882449685102358618798163001493587039292717231293913834846371946241773952241461115131271250568422949774971730575829400870279275991862194504289364390114866756692214142169285628054640532604437932577552782543701554782439935460101513713528083369086408569951688247662449428779454284877505396113187234480029412574215017807756291543499046997714713949323128843392144911387412788926290430919093037131745584312101838087526437970848071875305971029666020986068894186270526246431205170980796519336571056211376924547592703656185056266347524397915811580895979848011951560255608097296344831348331034831093564451766179908210532860534448424827785301038519166750760138142418737523924507536646398915001933878009173109784912360480919681435503838128405855294959928278926978202963981780394365303121012654660810891497993944151301627135450628622576826407154274629331554370081445349110582826630369775105939782935972007824336562326451423637749639576061195729318858159937908989517636197654957428492920468582838308377360994191901772788581663953685994355689507649895983941405584499477161327077930162974740325966098036005540754403404988318252311181982008128787013881726214790487657513322282011801542006343757454351665464318195255286115110919969092062239245896016799068873315800219844200837658650360324860481960987812596512441573380226223868283158291797241385767739574563125330119887037350971078693385342094784575775026182237143132943940714813590349346237628767835515801999102360032609436200794269574703842020754952588881180012736380288237544793580565348677692241046982160448507240643878939061290804866332717739777180887661968503270720767267979845052804422069244671999575963939191213362691947557194635288255788024906553811523128935588537782761845551600553760048844705025017498936083467061107050693772242989329170333275490447660267583967220817148417531130191933465719450318119548408506434292226010594096572808467603577479683932422686524477027816366330935586867357418957475076592093127861530783203122069422220754928088101051863027944598087239522458998465458216057053722022667727801335651132471987291753952687479060508639751346587058973943539673733240502851977726821821720090541664578911854067604490446282358222657159347452311489691649586743311718252455001102622171222852209285228300064187137306837073738035093917275254402921294994601056698416966688632613483223523415408854808092772117283252533041305506084842353225645963173996974266851537557188519681710675245999633823369520409264013743586891581358147051361279262403480633430215947796022388078774793131425412501062068418597290054127125584864158296623605691110585459322164520215306102804852701339085412838455559589086409514115678919020704189227677576760100244034916192801825336088742011555620111288729465599206671875446999533357827031962263219731094545970806106255628305048987140269043406536746541288439740101813851255422396279472067057200697697087591869002955184965083441338287021447496121959179060393937014766291390342248321306432017711731972573321505901319187500961130223999874752781896453304701362028448455516726233197563575288432366469138312603085722725922443728604889755511670511556106443305315012864862894493790756264957527503308614960201995753368374127724536528235265391849563811818644704193371745941644101700629366924812873187841650226913576627929114681254163771705976897857236104601241632255831305080090993900274220745834295512705012539060547713602858580897643040100558235821366378491024830718133992329787408750882604336378213001614800640192205238631877002908718888313762521532248826224227780589613810166613464681160981784932652909082085761434179392266020145995524253569142813762878959989785515592814404795820461414207936199481573328640840011879186020783709390449872949980142418626892055266019528298185588659555260356458297947808271149283555519622801059774925329461557843023145535104241878585180310694496960473602212036879784477977611759879790924564673305444915016126483946961553722557753283785538563541963251171025750071924075177251534062151865976615377392037999511138908244590166160622316491711056716139076795118149615536364989290738942096629217881696899902078611726140171471428497782401618764586844815317852829228105993767304241947991237521020678741506804557433122664019977759707985049007869801896794714399383182920715620443741303806891619710630770110861103932875181530190963179294876252028368827103089642884421717916586502333133586733719517530961556180086562446343157966373530836027665674870989566463154007068991065863143577890013580166966525331741245576869833771094885556537530867820836540368836604267317559528210478790486867343537348887453456322032562998144473367970129876837441790566276560177399018888357513947904551428249198176293796903493300738658512336497893008333873369818770073750063765356243219570804500762016104553464700751046264057850434193328037951310684753481971724924281323400498105370892745525771277777857495438955787318988823179220890807587710953151275964009290518078362671330238270292944409196406101929074826373041984050842990083799952811440469463546518339598014326987594142753549010522145999879331325379605934665505567837200160423064144967173069369453890400187164737357589248640208878309640331661534029411003756777356241012788479227019324639595838496885541153000151468993457001808445030957830884453485988671431087765770698178515633398188599986967841479217067424956448260532937659472249042905310216702487942865195457149123385702910944969734024385237368902725220829819072209781309179245221259762130392432107550529681173198262369552057142594888384574751270378926617481954714316500352563583376918431288769957446505091642604297086875302399692636537410116382578954120866867569640489619892358758751233760859494025617106232027919048284391536807422992102227946012778898751065708231561417977829098717118690141865405573262530229124066088423164141503329409353046849047059848764184467697259258529506931548765278065400191877007574375390036716407823758436557104166317154907411129654357125485628976149963506411393125249446337734975852899378772777852538388904918942787593336791251892133675340619288730673308380501344902499875883752167183238920635851799952748200849360095367986158928366735601088411808027780156977945028255932003947641365666623064874992794148036846986413302704364520308583105961329027408945061726462617839342292867979532887632243424193546067300325559445924279278220357440256979674561242190841514650683079191964261834539925350262707009344515635506566728172113539133618335607731296485319193171406420300134829923417125506733838952922550960443783366064439842071299413969872602731867647532086460054458930349110191720702694907719794325730024395283030177069728646724506018544031660345579454180424263624964449098395350493736952134585210120083137070318122002984252858850065189463176827826664155752327487240420045411040127930606297263419411357947115468399660289146358933881225176033289934020556377847205283176424069280769030144336094926601396520119568789295864306718420764723447474638108424537387404981290609238105066322328956401220782705285911905082304298526734842742559982038598594768889223765013295033601634657130907259767070927729658954125330695990807020905100827803927514195663465042579464091138378471392785948745194701824948241050945515992278797181293477013112057353674935611373435456197188733762345682974261127533465082726738345895533106389259346374764484180007620197591759912604544235347604979440574438784237822282537874193996154026152686646187658806283103750644645603510354500998038820992119009793745298924572570028511484802955100730648747469167903754472291081931495837985169586828064491524314029720777784070231405315842569575644387200667142190891879532685208730801197313326574454440240069886297660298241061016147991508245264985370504962315399110197940921330318771077095113908548918151796771589947422947442905675296572879863069707432307218943015316679706243488955173179241317990699160178772366663176681762058226071134566194342468913255271364650138695903641715340540312897221473777587700457612058075446496035746312861276397138734095500574657277022533952336912199956741635279487572762940191797996561516246294744785567914460209723910201387275717691591340430352280565516787239053963693729314691459376987575538352005338717729530480383202071076339948458591440567250500957812248687228810294262811697500742328967465194666272673437699129706301247406180285094711384604940034746853026605590207624647780865136757352580993714537804356791683951819465288278863652401885785800773282092142941154164564724158057519471833604099243368781610758788353765394172234025370825297106047413016500703657583029425527063081284549732560106675052328648968715308999877424040314217637417159728880290276199397983325408131159275901613499654427667054357233044927481990738314763134098169247233506750868497836200158548150299466397494006564452338964370630916179876969299019607605548614584871922403170771213730623145794345591534201757304886972831452954668856512777247330999923423785681511150993220842933646223143185872394364012128425470264474308708041806134720986561865025421395443336688871935288784186493509220912699371842018873943714819676277162969505612630190609769339310959512804684907325382424265184316994067039997298728722368946353061113045326849696576594461462367235851637148508603495694923950210106530014902583523525381807204883174993972287321435123250920850850336417778244262366358359465546502907699384951628662003704566382385808104016181042778260307516494761576708530401966130849391001011154384697575838759957656508259398892647819473064832658671455431404404096886036134730905679447388559594474306135438319246241097029036764398119123591662231798665105987963159738685159350603445954633788667532308572477471886588639513402948302389016035674734878662336922413410088261448959412560620930272061174488206194526884050298774071634997572748606207630916905471245966165545964144808644446414067550452330043445795626941292421931802047404181368199791788817603322351405345972711657137300101784150913020021880981923847505614785794384274348248020486213425748595853265810712157797664012198186823640377878419267407471887993801960697603824907156382412644462624429062480636593674803672250743893963915290031106015794444872700354583224992267795438578761664326611760952328666113407592624890093652039042594910970117868477988119269765594543879205436670757865684826280511750593210471041969371721679144198634498002213124214452684244811045338926550127338871134709562646347649389004271502962490816137974156398256444214567997202841771815647583652097801303895857716442267662818694282342160932174479565151251193045755552305165921213778001943208081715987043829333762156553236906297151077811205988609358460581481748661131049425455060982813351149463478072064305961363005044356381195488825958392788761122352627518565650319370399836156819787302716397379040183423895507107889881009002860270135623812182315375924327832855532605203742971243479095882727027755958186784810246589625368225676164965559997629220237578977949732470080820963505024540527803364869562629040875165201512126199587324619468855657337251364760251557335541173603708341245179582088761228915416691414874396648655849365790159706124794680710100247130401236265244197357544382744499877093988389888195327145487280929429884519635381377682887831087517587925465175983763419591495864917789763098184503096232638300097100315721105472063410371308969274970363425428836250723853490117508596454484439825331676393427668404658584013282524071500575386064866481380181972891303248327811074279596573772148693641607256428842486854488516037495597475409569358589109559321939239258719532751132779126785397501699015049967700358746939645657280769393826720920635777268307873644264802762678117789455159935682077379704724198026346948512309408119977855334231189531345672239690406586742330717722520711566895273538155455007833606704994130111070409546114339747303778577896456019068151494211414419113645926188586114444064294861746980132062626960520844554613713152198088390726967808606691852532613918720216423109084113769348035781108223908214604141878368263302926558810786061138428750738774290130704045243292452916394546660090541112655901535617835631139824417291191391946582273521781926696098757769380323681740379707957912297961751011385943564907108192673428608174083240046342932366815627791342177584406220993866324784711347687309870391155056940292708304971633625586644791417132927961000428332475883982470528548089263666873552056154139454594272821026237064567355068674678607184845395109221217095502317452410525482962426007441392269677823454012759663391392862801672447070044724434471769013858862105469589465846840830495323963701608889863445801897380923823100866247341433011230481971997511515945211116821679484920621299752390379334393093002660607794220889727603929625635234052409741425859998894273385926470869446704670872513903307209795459969795010043535408406472050622169457580198762741733704745557626955523511596529108823316598168564108355992833719715067137427503725711185153182615304847354089852116897534274123748355627558794780997757914394596836165448047568250053140725153344887481072327889101305487250601257370768739278871206111153175375638441178494979255399787928440575350658809235653247908946931459151763118070786997649878864642296911723857688570781614760377056240284029129246916988389052044347195855031128244272481098330384214015920542183837747684535814835207443410469117459762075503627384136627059012457138175897901649556891053249662096109334251660257866186899908983342987249671688421237912748846777443546508891292967618022716324549323369421781993173165496730111198580954257580827458569402238565717120003935997777877741915962263305328642868103193295571008847830522950543139302815906363816427080934351255633013172552580948051918502039074816221254236871455320352559338070835897967245178789838519297462881443611240976748625790304668100549025968470795239907433148050954219301902839068983323355968920588173741902734921303358033212763307123314839172352384834441679254146847823470751771026172338633695205998277705921129199587435436185672499636204717801079990489663316500797602480146689749627807536915738150829226639894624282001560328677372802684579688149181445690516364946096641067998859106402756572555864213975457361935954999331157078561801992116394797752529533346607882931999152197218709803774955325998915660780537608493544953762044008776051519311512680314751411915506944776118640326473941616650347386289177221995352516021583546311689537481676211440930249842131402390384934051370716362175612206431389738941861608449347021485520805065853606194755665009933843690874273981157246021304503965685213467240461537964052541010665986148932569794401723254332120211712355147013326042979938912172423995621808561641028275976434648599017004067652865611820834317827543341680697606150630019400991033755826199660292040728791126889087726535142925074444707149743824273669244162641140749816794790967646523830111875647386211984377798957036925614352408700396559919473668783735272452532280567920665097687869060191480974045236019404977920814853543364024872338359665644653597881435106149931096518858533497767605577199937831164142393345277137366271491386151278143778679002994851212133537904308267568970776498621709205663410675453362074344616907229633786722538993404858034333496508281751732327419103159601700665890894484809475817190126543508383519287921616341897580781185699200104110161129727088100553516710492778581883216095635268607380094892208724213410256300338478089734333760369925484528071604546400564232728900156280801416819008814790867623419174754119091859987643164522752566307507209417562794021828470273405429674125937988028347906934097567852988679464278804244846707032894895987394125997776501592462270392488318286572208446740659097450284440718808890161421764904843126910599149950353698837043298278443694426038755652878687082200151851853048703484666933172585443960828447600816773373513706743738309230335825883585617198523248584326563749642494968256575362736391154495824111624078692648569139788323664393579835062953592895412562696210673986487817339837217180768147223703503707798607765864487741456965812985895280165548479982281696574216386226005956334088578873500873775066276586097902436340068675206720895069938072043688646671681048477009757496323837689204050018240817087154712170233323622114337697438088103300549934423944833741116570122099042161595146869684795371808911459169878712842673571312469258259680956162497661333941271461641333708098133466272285406509570031429128455575161177385569253332378409951620188074646676678743839375875283845826444823810498332625693136972309085411459427412490363514131436009169713189876373232936925273327220097496606868359181076204354478191907109053761432747546885444669591224402022096088407115475315811294637883999831659516958304135287582914416686032323928104205776113466867017681735085043198851360682747511879447143182930119718436675384892025161210702615529048120776312015080154511798199040956871037830756343518632475563914659848105584738018933901425910457113194069877614866148814987156289233192520525953353175225245590540315917719699889390994304689080314523107781059535312525595059768074952599368444025653525271149716522387968437072548280722525127301592014901057175197578362057084398932768721679671835306483527947189805394406795799755316693599926881525107648422129018806593588329988396225154433844731359595592158446947374325191232057437494127691508952421718035967340601069129575810475872906949461777704974880906647213224715156174056512990414214598065513980978922538708252575027743171208544775885962906209533067736602753846376060199898171081211344287885370680291565662890368964614758782569540607332397014747894053075743070157467363985075420357628858664052314884617609439969184189133178672134751711287519926894789497431478712581345210943468245102071003389038010256003391306935305190219825148638830159434709454989509301587569111697386616150731259537493883053560780590383554813935081806682601347176667304516244177970065017338658709330489417107768671942219214386034089409173609999229167727861981653088761290883649177276751051137348270020227637915591596641952173230393360529998278879441610995179383149960707780725435773142494614454344525847787219112213652893716594433284170172981482634542020512531029495184218167482833423812384508199878002780126517862755430465655968927313645448207004964387575436988055404510275882899679180363351365921172014594665310031261547351933140738056820724358861406886160201523132386544585159847378296235380295095993512564820596746615159925183170810541971805352943261711233349357165047513703318932705505321796969729070565651249808031064968395385013043483924614591259794160174689131841845704262155070398586380575669507421838715550793366829256292962641117475095514639774179755649263895436482516190159352602989798573968208641833451473781159437243400613046655512838682551601741385482744558471628336262462428380556614972571088421123433228327062034992315770979335216017208382924983879957562689744900329496398405442804396071326888480475285603560075532381050882762238887807449395690651463180757124343195282368015413236130926967366736525674615008580778683558001705354823588109557788313309208807427103247483550917554202942173732079379659683828010713434921125665351686964830635112904324482290328331011075145844403866095047674231756716952870572944455340971176481705829584664247200268205081953713971061962424609246645328442563891871311976330762908625385345779785727029932372374874123880920755691970897859887407364565439961630485470186347643511867954749294033746343715342190706321338053220519411577277350018174053923281062574222651072372004757637449403377365514332761902029714031740357435460239618238181468597156128686443440184456537453046156018275164387617216473747888871019980535338734797298836972461928848170390087692111462557150650584785460380511678283436850354629350546760103181455381170153471028392036147698767781546474263264178532217569698454388456461809819055902728324334464265298947975417248001426858642679560908691386937017977387982555522851301354055788369790768989329898241004141388939518160378928915932971736120730657670155993096301077003665358965169553395070763031355186482873545720159705098165303895166709035767231231979902931701197215035425998168987706850787024470477016121572027836622194861629733100324061733607109394017101060239911705245880841079250293924205248985857865071485186860657191947802086495790569445791899354088463144094262248003360296821522277012311601022401977440164004416145134382004674467285132421051967294154180847398756372046863982226542027813014264403161559845173456780040423532132150634597391426803216210273257088796637768693703667465119343488435578753392377805077807188085158128807321764577683010399515719673408142276524413325226274456383702087600068696841873334852038110595792426775304124930827581632446241738292302896852655231372565014642420306422434639929768621468632263607189255391435866668601092777428079463612696952919342517263481724634479741404068680164383096939450759402966371663065162874207576031340931622648144647318357429578340128608484972223672983760565582296130954890759532231930816350488617321057472646045349810193004383961843803116731463587905085806332461815398209744245249500563607662425725085591732489966129549867815607898518064654435182162734301352399740228110814848194483048681717936232629400758642152636680049606487226786274896823056144885536675487056630767779153735468466281247758241713461874587173640018225620949327807140076405738687268017109738658175076900989229979763763323046973556124433177550045267038744886878715661986712954012796689285525481250292599819402163338583807847194932424841353790561613696096789512540291877538693769801827554710932900977297210261252154093695123371560345278912716938111954462980761603700882032787427817563871259970702861241305252301490467079075775134488874733263649640966007983337522524647519290226509766848919890273051404116325513665296798509443937817447498550480614320725580870764322324051828827093076419291846865552093140095600320996403174735518200697436956245203472106140472816640230977437071218379158413926819384643421309871825417124860272847300556757643594858245195084619707979710452638981045912753458342484485844086345443253784033014749978527782802635282240702718721467763736503469269378913918185016589127097765561818625538521880480493169495812212889159694402463936399736936926587230506395520643709295535084204358709657185606703396918692703316561952185248710190511326719936757069776568369704569113467785832511200916600785098729907786230888613415196525338826841074730276077987751902199441434332222392610231800367695676697030602692555408100365212037854189461219697654463157696324757055211698245390209376836642676570078060058666689703387691011789031471204885408253153779609600400386775195881459470909556533162104952526113605591683198259188124607001993569605216113028508405796675032433352205558013649357369541524465564590878164148816976335127100821073658252794993947545756214929119657872277581752617707249554090761350298999272748009714730228625339041448666765398255678368124042043626575580749592577131778638731682026173205647157178349928081680066003663009769339185635025747377269496319429867890101803207423354072579621101252504148183200021065501890275504981299977281731033199003317353997762185270031336226290393128531963780806528449053449746298455050671945789176611119788578704850874979332880410160924611530703641376369002057438165111972422975610088666597253783784495399547204703263991345994224695908024054026633629203555027606736442945849704690561305938417531136556088513487465073144851580112713442516692781773706880847075764616668353995980837004008486181771770184217160409941561394193485928987646143357865541945209508369118528459359659128433752676605205928877801699613689092711320932414500254832640838406177137466637443636111830260490409828194650629224239194038267386445462428272130834625114217472759243100427518946318388151133619969504857765894393882251569294359642754653702801893675031122536734543944693015233958678703740147701466995132238940305496298864196807983350335100217644114880944701300771482812798880447402516420597482903822806335201104035082444267283326770794904462273280796260513054041128891840095397203236073642122168819976341938860474910135238918945410127795042755838152625999570106769299724069450245505680697935202424704006382466408448443703869083761623863924964312602741161817651479895736265008393155551301419372654399150406349643733505459946043356073747207373647196460906465118923910637882208694601595901116697234931422627258876776082690561070613819412272993775160371797768195601709189311353079393419671656008921876689485753976773099465061621436155233683928058896769916264245913716506784174562525139491462097829388521957348860377563093724807078948372681570741542806235818840091071733490209922139826687902657049702573947075416257592798132011974882902979366147700116904715226112648182741535908935501603883791741693338143371284087589476036076633393360078010063744513551398626791610717175784953792842863074385350276402669896761378232370866877324538887628081919083369948126192669463917079748226226192754812701421640764084058480409682671703646594589514489032530498234220461206766737571875121533179720834849706493337658660393456442677174010332520551770673619874219001143838426913449678106814214916998891363532685098555092169135217794696324308857985027850766366399340467255482008110670002664202522672510325403949324044796895450713963246900342334846917550931074333722056948868839142707375469923629257809271280042584667660639601401044692495384888711867693170671667230904538625484824967266779246983955069714366179379845450838741065858989711834390106899834183298340450176228867469123586643458441229328041619337814261212579395773105656696936605129352621092084073265635751969541200793853860592456610777873216266807048697621816764153859240217199769280520841149341460621988861227053303269895024031216630343875753842680810148121124495929409565105386541672746490539584236740083057169756260534654381646533628887410570448039386364386290960320745481884401891707617918742840135889136014457140472003806555220590257734677415709392372567710789665197327934032655989313810103628375714527279686439407505975423568278438766974084633096921960100441328404027615067600792042639997456721500337071456840564322671912201746091078866170408465527737870163293801093167524994112234715172934589618136840983348443374863390651459978524056127751771514925946555289905905034883472611385244291782765842453991250395596525693304518029622687691635727917762473835611281391304823137964342595910930561339625432692302277669099137685147398969918850898947934020783670277732498392704562887500954134772085762478090417125821047021663867133898801689351786556895295665603271661098506464241581278872604578968743786751714511693567838864467832175329944016995890042999397083504878021308663115761607549219427809357999528649049729519758925888537682564487414933022572570429154071362386222438656434238336551192117200540462932809110966884573040187154294563264786906375183029649699261514261042792847533989877931190379828905177838603940585532441891342420938707393490743291045671312732810866833008902301712643217552276246608716535197221638913668432566829293346482914672092316809234868946110373699437981522410444802847113797862577964973661366427958657190235037802595324127818272287018080050932006677792166223713680521487311063771178451539573724678632236944641797812935684637183447187759439084931542536385667775522206467171967667724645284663336291894135528402313909816709363394691168494669218587158481214497191318015505095131689610156071994435786477242587779361064984823022880387486436740792263591428592193534689931327936691251972617820877239450247650811326712391611414218434384134192264895845693522604566816227582960516445254425835738003413040563252989898586450166188891528270876239377027943815326129101147238602001528328920391199041260953105249537848269466161695479704467603624511654449217985046084939769910287261239508927052684583117912463196193399289813017139724469407282820962140268400676603315299064470437352742426056350940871427830130488261139792522169652554117520657574623852385539748377982764918944439194556161502360442997294479541744697960478521106768761928866897597215187680305229574013990085351316622256985183485189670257397949074040044201138046044763221176381781030387868727482554437171339695158325415986806122297440551920322581812752712059343729164138499742009272419558530914424529987904360332225371266110242576968278080809189372678958321857775059364727721051223005542572710142074098497706296593056314390152145477020145955127508274823382538955171556188142458721699064794994445285389979237750030993890499994749419056590947418138891716496482548494431401364647336727204097083938584395407481067350648353737366567533925448894731754077016786609307158246202411392329375770928959856649160180913107151954313443014381610747524639251520140114556751678000842007114546569271072742210455720068316953091845109243586538982778116684942227292639979910930482554377592268256869343370559941733654943789158241260359575839995370251929477509080706724051724508727802057387313558017416018253637425702671087014138682036073217381236951200213667875497341681353133509339683430850487131119735948795769767488477936116274263504724765473403638006145411772747986893262562198216193562158236763060593213913960179244712218012608139730918137447358633994334131623189003164875761981471770863802606726087425757573282253558319064360537351233237104353102807832209491531821553956838646890884849141542650822421822288374721683668326002125510857172575486124954382093398662492449312291950212055148260798968809894751166598213304770013678925179182996416581155437522393958037987760015359741938366229220988317333730508780762479527263525198490896434490427588769921508890669395547419961201708347640413638707919043683158799800650404482798465422884577632442231428956654291910355540912494028915565786988796739958330648968101113257316349045454298244892400670301012188140235509034772284678007978569483752068037896458973761385123536866589368960201663766222522500981041513229133103142170599063031793819098681009782731466619512079644642293573265897644060519506571739205839418735722395209406480605585391243152920797490479849186230321582500095718201906808575979111457304732278338867439259883391559628773338286705486126193306824412004128802643140730098445923878921135961577476761460592210453818634992675764900102514537178748728937802991761842229657497719744796628024191847695798528463901630388137475559204895851584446122316789979839483722976870458412161112136261047911558770674660692775307669944163288831880907088020050471567056577857656071762559829811346460023104076399050457792849549162039512175455656434665523492237194689955192435391151920203565969004671778632037904468194299822464924196099873018530234832367852505067367460280845671899664866243719853074823223588477593295440579040032896632964195332836623006314766630671095797490256965326267745274734691856210965581071603703930802230893446425152951656373670929671033676402276830094764819090846710751720887490354541545326195608031927235959814757482104131975000656571494766366124606304644453143973765822889790139049181065695096327925369060400389679545569848167879000802564675825459388544033679594476614089970241295112181280633599723103443269204168551096290194702800036749962145475286948958909615855537492246016857738721827897680767772618425476138674602532649023305505616304866156453519154374447632452027367177161564045740785463100361243094918816453045274443557497865356038281981703818901383052017496501338717117356216128745408465049753478607218802885684118785071841450305907809383118134404981105807618789664907796648291179341125062751529283397831410807093491679032936809768095320107164311892765984685490297635695458575447889982351380696986961435407565641363617497004536503239794854720421780407510358454723078972726004047006653322226284750235847210297050396403408179965742923062485322706922845224322533942103709623306301011473347925024210890946949347545734669772004685952375713588672897352472006269830554977103405570253697510767844818293177020591517867313463986745414083113582030431139170974275837861839289740404696091944207814801734311040583245831020769999733893151947862434694847371512930402665310716163045873578527911110109446749143062930314450994323241232773740174307581965893207443556449225796636879641790664034458027734527520229682846939744594294472004708924450945595434590317416872364793234342516805903483262960917240572452109956472522737565989000647523479904431232444073840521510167579341285193534708851060631834143641124367342746291145239737201986249496132337431364922802734592828428752158367474083145538521469709355660205728646679487370537100545799003743639470249064755145993555336160543282763422234925070639894938439051904558935263998638866409191292644234364328551703502031976793841043900691451494257744403643477937571550922546734723916428143759322121546277343057237238980809925891793058957748921501665997288776146798342119515855166591673513111898914019799110135748373666623401081812635727932172876951530194001236685341412483815816629047413043856549754074144707446092677745037005488755231637049854932242475958376378106305825727885619110820555907157677824041357387514896531794150712591719116496025417741863512956114880787490431730700623529152181437193781919419900043988268878767597723321732584922784185726702468329975473701213984089909174647258417538587702681461318202011890870449405987381112559722569722506064506348914663182607868074757524340797676157573324748769416991339736979245504385849593352775075385939528842099371060110699751537409853232122960801821995897455929010914820446109442978005481543717929816585551501094448869568382853682066133951078239060057666122736084334664138141297220838032592448898222028068951833223778237050795537933651358970302062601373477505144460295250331962251410487617111184540428680298409824642743977029200571413035214996163806073778760083058536815043414524994141429796914385609038220389192067739654866036782161062823654457480913910261167063175403526795504535143533009978683978786167618226618005817635025503797399971408873863742548309490715942374819263477081939089555483960304925229119706412672336254958462760179180510256498249941988302665301781948893915374539213219540162209679657672029000246938667465255884217460915529811549654952701066669009983330555722929739621010235343856044951490149284777736303095519182822703134427269069204292842287287206997645909799057286118101050231690771951783619536362400919304964111957994858235226360800690170281225734946646435243020929730987407959959545675389416458462656127495647871972455496027671403364878861491533261063995963601919127357483770916459757593038338039219339181532251768109666388452346820615312652179311079042388716052800948686214150522303587332187452968361874515630227435528545233688320210018254675552245603225545391973110647025092092725713210301243539811128337901536576659517856141797665228434860642286077255628677323696159032711803317138481834876623943304430891251025090231654506988751009320186877394658632618000992713660952935381226117733994822498545583411508498106722972159814903695230182853823984215335280245332666581955150377977940575403502231218968914453265566190378892714847885652262112406731037889307061911127802765953624379090938451724206761444447154566015308500444335061037716064435788123530748764678406563097828318686116142797691655450498590856911731532364630726718002118974620889722232507298671366647945559009601198303015330988245417420017449297386089975662116971424965673211275868401164757076131887269674668533844546697079232761548317502259067257036493061618887753326981902266769882612086565125491089934768633829087679989199306919691984076718110526257682560862050394110067102160165504811593817876198416166401105510414508863389377259613874217999093485561559549796803502928133539151746649053678332009887955495803174536113413659311475711922444392399673743667997574982957202416023972062450183765220888885855227324820465219810312350876509536873071208712977697298002937132178725269214991218688011876722371755838194698678132940770511242569206321617400317958594563122707875665781575334924985396891823963890499477632248811210768255334080076307043487285376225717115818848328388403989990438847216318377628931236525204984936674629178725104829898567313580694488863546063431226864121284589067081334002688230838226379468128349286597132850910089556227404835393316789872026515587499992281276277144090035025635282778920123444728700791434862166740763251175482257068069866218667420422603438349416886895679659114609482072894988292530549972980127353865764841838318473627994572871918080763330201693097885300321834607073030443803228758024501308751697859772337585348308844014314684654885799850885860198393054031140924461245611452258668340029023695351020313909035878278710795648983802370379808783592060146946056240735475028144169287833784058863857354097687745498072834890658494486502598400888018319229027941437571845034973890235159223624417154446311402824596328975918194091947034527385021267344275325556534762496122375211815548919341555537899648452696099821627867675511987748740381015077387503862341849118776469073686951505227163049465141303928752100905681637025844642107537432626884411494389293873719492416908129201022883907397808629305175313107725423630576661857452648583591309296181163437423441832917353396693887012892555495747532143052667718345544588208838642401983061256627318915341329717262983409341143649341718174416625320104370242146226451309823423254074705945370040398940419531612310597650147707373863832391674491041082916732654731629717161888482175868942822421446321439136313175467232570814763060624532876984643488790921582694540827224566560071764731201702333975544267878910284154713435353220181682401186527917871102977543240048873024659594563633879190148879770394037563109199770645926197623738197466357710998101730687817842828947184081495573511262662603309786003703827992350927398157558957846814223481435761892219200996761152690701128299002236389313269360787982644691879544566634789655105694820987120127997358920470704928817825996310083059486796056653134910953361262919638537545543937703923210665027005065179658757710266960805604647631569549158935884024329205204427504058702235646996782922731959428723872084031884995633784429039126645966226466635331957618540523112205049676887754905740133944471810259082082702965371538987343378480975358260056996893560438175137159391584880024009815538770102557804584306419855725357708746334111246555193044726671931281574430531493562901922141547125839420739174125963746271037241241479793481659171630052819154577492934731106249831098940423415285062528107760196071098748590044240643868049282758008644273907931768632040051455473438309693340331719254852307055378121576353070084089025403055684076484335668531852401126380461452438619769889637061727803226950112806367402701171543015459826888404331748026040155015193521870585131484023182422621553544815522133692808804008847732451808649608050134298718838355708958054175609205575512417704759554938506291819340251747533013151177492496037786845746782102935094567499342444088064299685444146077649029644283815941761631931149563183874076708590732161826757783702613224382110337096906586402855926119875340172956952168939005331938578201185067248685113318948118110924793495581834936500325987293407563199434571577341713205038624222708951801771350548975762171540539876818664924431776104362153711415162826136736432863852384443949721367712242559389319663972451563162777882812640552948350429745367769120415524662462497188917526320396255771078694308264189960705323267082239798599594636576410643638221745908810348812705436113405213323215794391033640422990368881895863308570816015784531186060809490140733983653606855861041477001676727432719643120640224217554976144737422617988314073307901039726553842180763171761719715512222832746473361144483526180487343592015822101117920159473123738400429572244100214533524872855269950184614892930671557726063101580154928347660857184264119095316482260312671056293609885560849348126665666174147081475599996774447898532003858160999068412966258863935682481824269035894913002565581053712227625078831178313699198154921184994969410465235458095374293391225681790146145539496765242709566619415865364499525039627917452801418730449712882680519370701632078133747343164633670280712707828306681274700477041643069612120350339089282510250963558659220969139875319091175504141125815442897357785482552664308862910726466123194003909482852234936427099465377514774036174142680723952467514049395915670161549486297492861319001255551509815581234849993193338716080119004507582853441611827200567430639344069363643488016834207796622881267992986316159513336105144861627508514201822153564240646473216605741012593881345065453845237023921015913279415562301367377934995515987123218300843506226973665443309139225614667203030254124799878751829015049529187000667969413506314515513945085409104482760197141115554801800171029162788034177033701756320345880012722516706926190854323514113042599274608113396633413498762337437864851415409851157688486203390255758015061758092180407940331298020036978882297569913692792025448500758491824443121805629929532338600657059975668088298712549638707516157381874516030174232323884876825693804989375612294088435605193397121182823543056695005545178743503436693112450914642435483652727182190920634898876887857695341230907035673491371847104896378357351726529540114368373250273298013265689868785992952597407885310294237321551348213564117557142190463640448670326037663055738610645602430224943799999881063293901865238530943088085508212700707957371476461950505822598947434250628576682356656065131739320534062434813867942804959303876590198627766164261888938219653231698518221038837476280027815880442002398159704608120766935326721917326950182789768069778692275175271544568318312188853217952193416354856621288534501137183534174130786077820618082961712885529310929911056836684965257612327230281402383385302849325768521608592035086908446651905474033829525966450122957553872882889154032290547822400864918550105294294387203081940649365676912972199129767181989812440359608847354689579168235224498580990506729164600422048015613902939411360199503352327761586133277864645117905733770835310209958116050216685779436364181835291685239714102360827694307185515373682007222372997392670729402240561712988942821580611993910589079974240868843731803920617386869987592536019041336158053983802465903865980412395311141261694016456611467059065036309419700935509988737636485701092366173357326989534978253033259342660794981249921068288259839077716571239017975452934721193902031989345905842015879382343087346302525716354331551323304821512637951035468070133302108393601629894170033509336968189033847392529301033480905555573668734464827318434568322003727521238124171287383167665019255648080808041591517673214202751646423200660298954582027420262678476517628527889713237732279992404922866725665319154359458934632491784115418487408939882419491567539426837100482178968447615475984142048544682771224551838150696153541994478997380544951437191560128853727656236945360236374554550582191542394303118046930782683521554059445492432176576286051373154547472709210156165881609570873851586562518043953365902086509017402408528944214142073543995745003393851600650425941282400597352882932597974327542683186093731340520646498516664440266169674025145618212633165132952253802319663287121593110805451791280751508295514573166863948015453376816421125425148425875829153536475457289258768305007387781513518202283267096712795938846469509236991686360308487449003608970299437768144054737253730483157600071825181146618488636936138503958263175158261337632382574903959826562357749732470957040517970990270684390005290875277654598275556418384719935096920209711303065736858532276630796311465684318000332364755152947148673070156986004969441458596256094793952372669530422782643244958521559064229683451433379237116972227094766474328640268405741335435568902573832473904086925680119405186146493302472052835484379774040715501958210483660580214831353045460392176671093717474930533125502661512385472478023240729691923994936032966022521121983980214325192322313125222952787996206411130384973983111257910084455523829369813706210955632445470789455569609458176980978897665507680195712547091064509685369813011920268476032142647959793732875284835418434661396851180856360254162246783671115212229070731510766438279234630002212286300318613370448181840155008778189795818981281119335823445546316122953580014559472894803130108723350280086774603981318089362699404597015880790943395539390870173245555131253955767858016457365017390458212951452139666050593342742346133106774274833096889784216131041794334991864563727833594381284750519405144906314736974511623859585820419966591962159940112303634226387425900115401447315874649557720152081124096710683689358079632232400499605406628040977845663990066638933296968027332654277627645429715868218028852756705419214539864024409415611111291252426077676529398833962123053073328560184941004448775978867401961422437426306590679568816853833494180561328803602175222165683658838702075087533851434844728842723058703695292914562300235780336225833851631737961137073683068683930491259356622706592407035475329620856691871599531084381966430694555409418865526010897560398079353583710224400446628457476124660034745966130271130378654384276516382397624679491458775068136682292845889219090544320455453399983955617298944964996814163534977781266321619756671806001663862016397846399651369268437947343485568298895864671320541213421910160659799898393071591816444172633896557645987573909863633442858323095573734958473655557081407479086122087626487907778476718593096183900929527665418962698697349329548400266220653442900024840156357448409101787627562883257038916302441774399866723554335201327856491109924765021005236768103497866774657846421162875690178527355196126500234891908403710272096106694877939207682869207249211959666159154357401070030082572719317172817881319766617867812700657042835532922548979614753368966025069814610592875291099865793921646922518547786496365424139007844269083233274514944510845680941875098972431475916496471507842830188502028537863906318044376130337265956308234268738888008840655344738944339034663772835344610178915409699007523685794122412264113746514365585248808529868085963760348374524219162255419914641663688519699969652463274548611525813411301625813528651626092807556851261116859593875751274911189702967956018064705581839055328340658683071873196768505816715438393349773972843594861754300533321902907498915279065722780169909162572845124627147109976065102783600132120281838365876735171097991669232560846378888722781381002957565420436516058461086556888707282024833352702840313534563127381159669089091246959139117086305110777203947129078333423352590189508339801943658793426496167772298062734676292917201386315940870267749293481642295264575327134008793435093048306460728605723552934207274749318083475591458720832127120090310020758611697000063131561654817553611599948557767503344524765559346358973132468913605755656960447493525027311851347787920668157528706213511284170153571896493409760312148417433003681927279971836136635138795511643103305315042669476560630474115375280623145494823845507924087237310290204579212791235593199336489139076276160323143112501720677285859549906999059096188744254836682130197880156633641560422240109503326146000564202578469412592805744709583772726787974556306190129200733943976183690328207084518266604785823648050460197757873964948444390022928328964033970317760692033722361754018092429856079237820259012469340690236479503622911070232081287096501088879845768474952156411457534060660874359144807042931736724393740651762520483229031246219450606060388083738189340208104050308142851185229419999046243237182034011998774357544715624159202875306093822059652450030631904524760241025226791620663732545081579535737531029213387588299395140071587667591331079960062360057184518428834108430201854474488936004304300977257362377975793612467282044646345159304490126894856712011499995119656521183289894037375206049405868201502724898625849053305349869755573123372618351179299568460758748412568759077864953688194563998436021623616564905742932424587416514374673692721319370454166520674133290965383319734882371691746528885111457376366354457896040318952542505226078098728063125290810151174747626267513812663270795900000238858315164886595715481211841254355080667006757962863650511803440378577808564354174777810737155149413095696775997559249870484069419005603174487992762837330925882469435727708138046749674081895800285571519689756041653500172995290755132407280018947305066168537937042177443713003728912890044951418070681985150599524431199522635098935660137301907975603667276309763422680354064114886152548210637574677920304911259289098039026404691495199673896533555428422095747020265328451582444632830724258750999048007392814726546217057916835785220143294814982079079577870047997041202456596771577796900044395136687379502772332323592418448551360884344144959881857467747000354149240230756161036564654094549167848137298809374910791071180278573914448136138636689677923996593940501830173803006144738016583859482475674865744291741477144162688992268315144025495294679389371683020557717309573414751224224129193178742024052288150956710422409506523258749456015948284746249406061470326141609935694190616902494567019675768592912263085710203642364517640306868786944697223064807516669832123743080124512294177550766379185659506983761981041738400044869839320415581767223772942446040214072056121236204796223012401939389909755648251386380890189086098921048553958404524633244557380948873306755274165071771373947095657469953920458956138840425691128855370810378412150445931842569865647937084156551260813046770771886808887442571045551100339124304719935031480774369589446837863943949738263332643675656081216109538829245292438935683482692608316851855374563427751887709413214537484158711357052308519635782199412856337074022547493780828001307448371439690975494270555370270995521930581093357188510648930661745265736282303573687610033006003891576098054221491823294881280030140070662976810011680027569586673658537293576245042726683040097365582808197377239700525221885347748045970401792788909682600279272590884537092874860302085768964039151121520030209959114971484292518987983195777363228629804016928700742505543092679806529609658377608388851353926306815673678859465332183845961595696038902489427535716209575585117133303489673308736843405671227687219608629613437627117525351833393165088811779646914259170939282176927609691190133941761428163856282671456307768797922707097632284167181804747128607404440358965467041276654715918790432310881076764611249924818487870299517354410172712156690531434890299304305991874852771283240875798048333392899227384913358775142265213160232244879322412737163388993040192207777592427224875202645304218854284200799844332784970311965455897948457695290224745731896647882579695511555312635267017272715120542807392058234654187485518189918913021835192734548672236581969541724492020094257976723069830509419839250472705968500658437927633867577486924997120310091010262416382386181351048133242711578381254148731561015477036712040166702100726865431388613876897801025481488706037321250091746070617956557423932990832907429074748323695387231127709947795690986856859971841261205858337205484340729305424294832340719142306479801877114360216759800109525931512170063553004655823663049897242364693455141493227289985810391369344141472968059739568197981579842159431722258930778905723580146232834665381434148711371925110603593842751108363886030747558123261198778699364438146478116427056888383402527046653450098303758171127134244988312900446955092871517413508150451819910747796749620589173678913730109346986512729268634451597788533549676986059706455675639352069539544832597575123422053009413438062650335342240093372977774246033083865872696669033873213816847398846096333682145187918496485622803535395091048423574936408760551443083114824918702642352115919443364179610251244858387107010575706787345537337281659176624822503746470863871129900673926045833345368731762522161890695716098042081663803327648592655563266949760918294491488251578841663445857081007059858651888997531142467212571361456356869915134898663817125962191803154325480097030810289906991899751947944305657479798224003792905120015775493248251796085389606760307291928432701693616132721128599502178776553358683569405377184691171116001981801663047291585758180347331411814615464266596852369818439851027944100768275276564209509193204972930790257415615906266164509149879097919408808768904828066973503936998798639788935809704424543416896857926056482715510368925450611568436733883058662771355300395146946009363551158910709475257787247335475867222559116142142035406336337230717313196381152868540550151927575841041708412846363544819708658269559505327225900254495073754858982152604616444163230200583844350334682152311514388520562310168396907282717756943779328955079976127590347791629711797004887663050713937044390329000024324267713217107363886425758444731807949718716272189806825772765332325080658316954689087719895914595395684504730298381779317632862630157275533342611277419679585465895388517176238732247401802055615377791033816604524824431374051135771637313876135258216208745506111955785224252224931371595022212402236458199982879483146502506682255376861854670483026799145177743460189103080885392365766285421371123163673578760123845171820497427892353429171449185289449383294298555643834510168388937327247046175905195044124960789363011125058647618088556878785701969164833946626766332218694629743537474923802226203404891761417081266806467069282378254840309931252456166424258655937813961730507879109852999228191446572571486860233867875068535847231024503297250120400836420903830804080889078579770723112880698549242989785868785821891391464961450670412898300769991459379238638931687093084839754044112519844587490994322821228381656515974934144339078642729047007780023690896595376961898644895041217397273576369700439430382105252137741715861940289041918164769749695107716551312344135456283456292009587694945042509145588631249461469967637843545561415926422232731983821435360330223009477417983863427959054024495719522967403141811010468382427548810201895146488063897192323752838227330181129475951358709393090466548306776503217355746211098704072508162310154306875789935067336667893903023849844480217291595732530085136453365216228727869902663184900689927215572807958813359439689016675911752710341956924874835946380339731683369411410105202992697165579756859685123348617093605599464726885928869627737734911914382731147272346571990851614250296482572415732274904092573726537531319447877855795429108267077545536245124162974667475475025241492509073219726015124267554516118327977648159266437175239717112738800047539570353870995324732072388925130618819061891101563795284724377625871651820878196128611952153534391827958206699666098794887141143162878527195030880263286982083217398237079911749455593107649992812293413257097921659442142693949140197540867505873497878793397377986781148043565546398602748801368124736782462066040426899303162948233922935652435538503724736670519534733988487188755544005428499943321423862238815236481150718738230227274630936703697693814743956368360702885425136914975486134311153712923608265466726666701262396550848140832900149811276014874684083553788666851022293184543188919363550264248174990840038451358921784904081761234466675986384074636992675246661923944963626085512877744602225802240670687869785156884339903485628170474350498291314072121283969217917779507644355337858619620479923109707431054787365897525530293527666150407129522609156852090621340816863971890557561624475080361803312042003454058530725056296607366075012505889386140433502474190161537727696699988974234063704170376730634336382864235373036352350138308406691370826217717004059803385497337483927109593492317645083144581501653406420321276862386979000208707616447176925252781529060921379784012684336503901074099860552214088342963657570762513961158756659879856178029403262442070723424144751031161033516181771720697112561087036419138535827081506471079613577637098780187121679648220863751762766030851962817058498627715522443977753752574689637767737769008535608208463263307957031802904425553229913380188593357328281572635438579697712035488954179384657546152108263845176145726492547522177083368356134505405856122629276019310691859154600802665788266018148839878292744910059714214208691230875002153824225189364952329722606177504087664793661761198837506316779802694385255374990402468147675519731976862626582487990297736978133383258341916031252680434661248810267432979591780370445544200013507143707129283942456068875419599433081322710848238693135494153274872137109648884386522927691837393661679979260593857382165421202193018912783732462573479282011632322893555760227246903104929164439501448390865743551004195058442024117672705153263408800914912730091492448724804214141553453891228229706031241225929858092902478298311039729026253908412947160514972882838355098596379521473954436705661164432009768259850530040935530544988171510890946368841382093372762061038803177717497870009499645921235090062858957091417727311817438766164163121179772879886237220464969226726776716640255939683326032239123726672375529789322924485555941963390465720817491746574741746358565516910871131848376740998649576192853577322119973194737749021239616000902605009370174123737815299482552683114427003550697346351941074252927788826898517502732560915750915626340974272551127281564444579560903589889041905870962610953221037966979948059890887327252697773152841329265676970434400648774087086129901855648881776191133098198601177401375666054421806605661679017761033080010891991789065290107407103418627642077812936677336239051999383222084101256460229714951209100696139615750258879123353719699256251438993306992790635730268415422727383559992500132547929987225624802137503565417778316860301588525968998702249937112569772475081396851356105545869807756949099233623591995639480120518846164081944679818893715805925298656497134358423445398221152525894763676085225608119887689113865007558737704399325152469862468972452254310783440761730137997060223406490336469796252164628435279371513723100204639762539412660642820804121412948262010764574280770143875152425342028834520346026596334773690781513891631810179080854476802979398442408144804660647378579446535183181300815242953223429246226668422507465559818519807294624612715513405378699148514429269279908323529053992436777902325856484081267337412936356393609457844765407111077762096809883902824276136302393216926231115202956891605955402981251138026619297897218857745970387238244686672864979125634557281602894580839052166683294037438011433669013363484241812725010972248465237123913027506792848340834743097687816553484195132370183314624559725839066607643655834432782053345023927855032646314066976398632018204582678505901727734039303428078562523266742175292261721380527561659456876299759959239047671442128000718978834350872543091045181179359088577506571644891221089802424712821716643885021000252185355798423336665221051355345688765281871031829169878188353774325854667488806125799513901005690150653369237267368039579848317996967163775758656529021007574634612311621557391972032890046405946379388935447423460819356796793012575005527425620323295113066754326586454557088835903815300836090131188708188504379324242909624385497706634001393157138304502758535795694495035064209759113432935705933385711764087420919539495022514140042563924143372551026705799264652885854106783178417616092491900765983001223090983595158310845895940992725627397162647636702836885985951373408148113876997864685157275100616486868017204465425839874760758279088251443883569274177753962930971141764549615860999720756032432229216160722236926132173363142025177243777725305350550718684254635705564806026442902419026186113076753922912784572725306588142077801743974233505664100743912605988044785819021105309263498322644875573711796940609722378380604258250352198140002700052747809396501404123505428707791661429296389434388021537164195254497829936289040462869834705175029301882966347957296344896594168389974287631813859098390219325915080800902826446056040507084844653823654719053958064132383803294815977586666013493196689331486236244539802817479912418075927510499174739885722324029430705526787473376863933039207600822994755431163468138304864067629698685373207908758970848481433427408921432988526246023726442059491786371833147621576855557459704874848172167485738329442106736334424839123331664988667389349114595409375066559274354369866948515503413471231805264484052016218119735136928989345565130449706921745975231623435542616327259144452417920253750503889713033885760585906989030988548608402911155141919831616728095769971696775139582777533128786903502605451768801841312404666593872827831041487934085278150283505390442712254621894521447986082538227895947210487348739749821870779924112736514975439598136906120300243563431879267645117416046668274713563161930809821823158411795872582024571452569011410205749086339231002992133959241615393879896259463677950790271158930534648657588990846846205623663879296128348166229493532118857333870820444369606150494582244645062176617039024695384854519883454838798823878156717546368731032105757187255378026665841634754672568904816052306155853585134197069910565466368547022061221581378852395513852918395685240887034936705171077365823286221423747827956629176751248740861077943455917621661110628002433019427423500684723850024998827493058522202225198676944225133298073215307952923200626003266382000069412140747968168579191070632677849392034410521254652029852854957110161480611595055121237925116751047376270443393751097376742796300481879988337952753872140362780376588150624383780760493381116437802845504503308043161495599424262658602936783814296359674636881649495810020029822349641671764636253114322473958701508934180488375085728851603353733409045413482743122549540312860607680221862119340063998398297355168781866171524732384327894308289336553367782460668778485861899250782158691464173608809920918812117948945131670587060300359607126623663691822759878018632544638797551397978919798134102897090393468306330763044751055995189414866739098682733258731672007370361253522791367660796642361411751906515451265544585976615860640506920637809589392750566086628432502086463033443744376986598244103328656126839715306370051266716784803116521331831717715866180470266492199992411548513944817287719982660144035587370676312190398343678975055787787072250494840131979483173428185374500144019699713203037376456065161399001238281123998446975037500454655077382559196073698741748882619187866544186053970381873284618863967034230536254056783323478162668820144244125237338656876926536687125681259175440897430880221898765072871481806072330618446621016501956688258234922189628373962785779593857922704020085007628978572709339384452181281535818244054842211760619956932215267714413373729843946930767648586686111968308915663774280959485671012473171430892841530429757291032306602593602425231288305335715026313573070212281784463282800859400164090325699688435606043266224567817709143003269017907396291868124048473893822929166308902176804522226910207562462759884332041966082234428347932542134824288611449950870186024632165079451641615732475819454016576199127859174331331935076550210577541273950944821778387651465593932755205975836682055790855124977027007726656263233111970274198403907396081335293830578799213558086758987683626378607142174143865583055593296809950372030317737821645105894234512310218640099558334426714272802385148781436469892119869520925932369556578233831783016384015624303630176415369639281449269519254305840350557403719221276749237554878316297150285085447038751055845335405647781917810721946404575595103957695401261936921420631590923152396092266516219971248385526757385250578481939260918681916030925439910845384760515615773967276525788799287299768335559246781632525909450400628389378658885537451968491020664847154744897363910707840101980381407651054460422109711160821517655687782016241294909883942625210068650673204624405605382767461852185093911225706331475216358594059864594800174299104210010319236966235913621019181764899457132943690204524282953602523406300427947503174711181374731919172338445956553533312654268031168038573379347307363005039732740008710254216178046747849820401736315975148358959252176767368509048832916643866149776214662979595315591789642829159292851147694433682582679685904250173569202801126001497918904564804022062300173564906802037177510667877687991072527339385720795098538773799505937013255492550547186322121569938818308270778249744866857144789870553025363926301128766868816359609811083660991821978837467775583119209652436278637033052984322606188938445951772781152965318337605824922836877771599409437772479832900024843183816413701354744053655799764099228883164612585724139860415970641914551428614079937389562059432285832567458258392493015605005211707692524580211950505112692398456050677750948220768524332504830845340673212065648482734018866508489794194116071855683255609331860081898047065210857128474271201425851094774093384540165533887325640953058902790627822072096612264610336172391589665019601725886386415651417063704317772191452744503683056898846487762336071848490759657611432485779716562907875971116003297531936011155281474194864536264257775100801930950901827192412735606581761243468379280903010273991950705581201606036424417194521712163720287988351986602338702613775588813223541874542132842665437102640315674339680874018854009469362745922010415811912978714833267479153459022043178074090496868657619748842685560287693404140609833498334556899846315012394902474158979053441755598688051045174078162289600341570530881931890665718062811667351011127647253375547056480796512035113506184718348386683962190684503078626082570892761898919376809363858299347400774118645673548245813874927975008871250001056871545354128437956103293861610925879556392296210859163032988246977342515893195301851328299103153694882098189983449368364536339770171860468665729684207820509340151365432057875965491592064538132205815741513447966175558920196350200117970669983071442824662308561798725009873602328539047495777095574631825386144815984256120808287950380148753377533023968386926584209792623587803146348211225102913585552725650784833496562479183413107952221917136356054890495370729940257861731323428120097964634332420957336535962155329752877392949639419562090789197639575324836737971528723562620535912896159824008061633787787160532955865226748538898413812598350233104738010155654221722629786406418719889706535949428891448064987230096836797983626528725841629836273882462086856416507758895118392913418683459892453187312456595609720087372702301072125564373553712451723651121892633741357488829312362313521419846814237200797249917173924810916206976748667903205853489704968415958634578913242221785386747626001606002863955019878968507680947958005040429216089035546060371269958395447896787470986025631467939426940902607406814696119087812358294441180869115871897110633676643351949641592505040469116876825483468181531999459167591645195817394585679899960139875245087408486506789409593059020305920430788826662248097240668344336900687271326594236912768755686609566646332471805518968397442005170713989076042881114321141258510687491768630490949092917134234412736768305321946908819144716279815476295540320884872784155614011069130961540533225809453201206065297281906298735392439139885746285948109640589655121453894637079907940026079819186012912979197632348390534203721949116363381837931072953209277756078192064847534352460551330794825943859392755129208198060381704617950661948225781709699076496766984867831557949707780360592975531080624436058337199615478113036992494013702104329700417555153961706393818936825191407416962305030332474291531531420833042396960280466071099671357564178696636022194161691804472879269745807080268862871043010426210602366443372873969064974796987840474247116087275803710612435041060740446100158082849287839655431519942936337389046953493563462855769739262855438323319994117316890292898193014618205903609085639110257429526365278143544655047164959378726416620931480512254072927288944119624099215447364927439388156434156401365571630428119791206504167448434946016138110058867454281936594794610695242099093560035931842981068754744021727530417994734444707720070555800526275075055623567854817321779202323014922369672683540451532209119919058732353854804689858263903893706994633170877254584377645224262434592683837819439776010522259938634432694826168155411154754919837157054949758468224666912047367414576256493138432007338309937773809159823784443596018451937077615437242093933223723427058723447622235445658878296707856615910406913804815124361220916946165749054158525650185017008142953446233828903661994008667992804066385519309013338355025317528526909064361324870220782105105502834530045314352024710811978669665009239622031334729101570996634444026462537218024157164784824175376611569743901296367309145587275917509297581643941330796878692259086636903194374415756006019720753971595889431430543471606679286403293912178593765181461798201685915490395503365962578996554004601600704337254609707881954244278187203500485826169075208823869334203172133834774459479569481191900935852205545079540314551028603536203254704779157301449158039511260292611277012146662473147903304335557017643989966888986022403366679502607891564376953232956927661602469551431990899301702424601090237321104524167067416303139801626184082825573654615730654452228736154100489491629613173924545867296510220057981016982671359816734439885939522889365263311375193195944653352836428195857790259353863036008068870583823893313238676884137832055761448754308716158905685028837756545893963652516889001850239173162781158288732019005476068675482650417996028409823465644346158580488932846835705301134429173283262243453873207448188306718667325334037063244277896510967624665300327552139393924578037462347404067935172600567425040130996141421518471368465198243129759416528339849663105720392982861615129461222023106850310095012450274146806190349007729566048666159201776051970808603468252350990518150664859317561395230302633212930454940941844453849761173205996234762546064576942186581149883952164042819948078016200644873658469751564632732750386966188176461810144799351083753715333994440244917730840367382780309139648045119355795646315146654939259894099814756674983795204778107018447144930678139500601090643787655335805821946502801692543574780558708589377773059140925050250310107412829896540924637062694855209224639809842526002485842660747986237470636496487149807337131225125362808964486098623047370035047818758750696244155627863304679288229210819512114926960912180770662217334142591646390408247500891710760538910964521550237776661106198661794398355721579964491697684128577115957754068498075763446794758625359745667559398797091635514647268798450365648532201068385706534554380957506585730719922145808173357785676728864865753483227156303007390694145076076467949229539181499687850457324899614669919741281714114130404972900858044006834883733820124361815395351410627360679429569907074287931844895768255496045248408512432098074339317886930445277784408106926508691824605196976746856947497213495235571454380966737770655585163015111022503035992384285270507409306679986136586222478673097802876609122075855967573940464576570616979916141664797062831586675064985436776034117096307086146910754030993759304594830976907202575140113715055529355680954403550439893038194977367933930112634602988595943516002690005115836853691257228198528875933253728096570011680437605601144946143245161603636326395609237736338210466828359701004857585812399339070343814086505043799748289265498193896544302450109558507951609682227080149536372645094891112490711754182294277368677459803267168676629774768622385136943982288148273891366157229477610154714491733709691224863462157888019855853598568670967340912295337023539483219681299403456721197868599605772209526419956414275285535753622701660647568810836671980458959379619878689087191261501381181914011889357423544537903642350780900429745457263483376174693169013960543272845291456453616148252407521100357722240068666337853383302616098409615333620979872633730782576354112218890150293885356589954489062112161200636654800986402071132227568537471161774840789906789089964090737187674513444359243409386912103335612429400656420962910213213313773640122650521907686259371051333689662564233094813242399190649964552819201720246791647200037584058468858648758317452752218048722735918790377097290827030196912798162446399953276615080258672596449664169194525686939968369292020893712216988347966106181271896855465016852093189839971449199763488738456381226431587706605120064236949627562739669441415020552416284332691867366713874860705862502345813221909957284937328708514913119773512527142645146563634252201561074234965609888752852335256926574721550095663308236316222949210623208199869355731950251642307825548907068218652380818215961354112854268333859022099801332857427718025172439958938207887414444658569971713981529465976821580650966477120990298106927952284313278632306513214574631757120608237429904112987879879968177363614734140623473409233223732992033299848854205928703593129519864201814443804255536762278429659784007696681007774912227425254102235969931387232836875849167260741338398788711908638875964791196846000745556745257002282290761044133956753623579834132511204005006505274775929579030926122881925478750874788560437150988805782718734746005933585815742687431655625418998900134251090498419787035035170444978948071389714906891952143765987290916830269115465830758373706181769044632988829309277280620679197970841780785842686620829817474614907196423374394793511526429284804235808752111066041688426995317823109671949185889034821520244085087919505572595856428888320138490997551967099352287915569042259321150563922600560402496895580101470765903700834988033845527228763691657320082034150950319300626743719324609694371140923296452393438897350972866956025793095261820364235834961067054031918022919271694666154476027551024655119876545657888145825084620051910656682922336033180121553960887730232629778972640013174743767784510295834606414592124320605964105735770320284674301756214615713275484405006124468005727626864778429171750896183679399906455595685826079906635660433330101666551213371152563261127635018218593343747493708701772500307211954811767548410278643005325650475338295808772305236272271165956871702206730420264123437442647869848222148785295064648856513007906961662545252535913732987382312235903089917747861800818780653648036444956131505314572310617079120826981853436535617978029470011407246474635035355146320845441588146765289567123628752381771689070515823637379033052490790147583497700820063535993860926806306173589470536530841046077177383759289780454671084748640001525273502103292852593977966515720178242125022039921181672390575974050253662928600008948196787537181414438048919718496709170490356062169570045282324979709909226983264769910941053486170682802185841449960647501454716517237864781631924301570788130338379152596472865996437840337129436165462088201855590365186537727922378942121193501579749284075223738463591995559339178096288133078708229574612471341175213200986105393917725842488624188314482814609147371237343900455309899567680057012481696560290412901166764514592326530837320859136103675403964158743412397837565627981901714949190602050590326895372791569798802004107409245105414300180081901359887930510134065442625988343091770025658447995606803136348605561935216913676750910897435211755476806739042252068413986426089000639345537521779170730414686634711003914816696546501299478456075584465591576480573264708563027619681487117887303590807684213859899924805445799806539522327154725145452789191994734853421339544097371995020971894693063963599692541796371324017853655223828314583809627713209103575026601708503431254409719805678213162096767593185983930344935631859801175702716933567702307033825700756770550810510721022408899430208029571428188933545886764992606584461066085497396655092727745357153105540384984410647483260751546981005459767811281156559872615085953106895297609409871754556790413410221634048548882280924772291562860807856011282867511749811143446053637045291465821924169886432473420622931378598230530392376414604870492959034636562212270364874010465196588275373285607641217198907502948468322191460099237994107907344079743035515103626906698455801478446685659379964371265330976964929259948625006590351203480775494801268289352763301938939545269960538493386118065909951794402600485852064792516900142730739260619450595582458611675835842988207028887957982623958311376954848806537646460472906245386808656014325445066255385133420761060316455707547765296728915623497003556498986962443205203899418501993091991552604821423380430960108034932481030617173416216046326812454883957985932870289040988297675971285379604749023056549955997046440641513999069647250605749114646878172969747440410310107943530422686280379298839524858249332554175623240212201096210142368140098188611528517850100152850756007077686312840265763395279841277496015264270199864704361849231285936009327167582164907958981103258573191416621567699324515255052983798146384034717714842013508909126897093578876964070725425546700663164773848871805684114795819452957326222841118845545561641081603558232568310563598003390242629642417052131735516253315250807180226496150787934532333122373981214800220567165665998477544522499594262409012445728634770750102478963052375101425496239793867775096039337764994805112389301418728077179150478294278483500215660725795113881240031035434441158592812238048345206775267285020357925732183090199934424711612348991631452130456686532228280146220065182736752924121317463336231542185970551330659699932752673689426785908438966232425871012315201771514619376987019254906954966336876846978309003612933862374172181551700232336217139340557249596145537551476165308156551910620032380836807152585868559479473062308347238365458438821856054673483248453940086107607143181820199085044809204802085971544172129421012922213173213597012460602414217288884392763097332328547805471106978342045679261003900799942476764293455379488976182305818014502885784193128335527613064576899908055964126380093982775284036263663673433940686703965675443601885293581503753970767507872202744337862017724020682767368846601697452754401227146309232823475908528988778321087579478174354496038240735510544918088075039554247577449669806850784895186928030899337590796731377441296164101634545669406260893724241635239764472145364663626780292367554414399791224801871059200136722347376028384413562625587178881724364685841915186491131431257979639329420083252137384259003653809703411030111252785865908655207503254089262866691664020245057625515456683504489806657249711906442818792099696288100138178979610491427868961150632903125705079093184573000648044755043450820792644455711789510196108018859282837033071235238917474041039550067992128463471282452840364251004052521938068334485983341206626155512986034262069463570201925025930248629520751179780151080607777892034112122480239461583246300955957787767092607864718917424671927984497563133613206161663662144030795350312783257602368741454873680571793618052261173560054271015999379337188440502810421458791605955098287421325510872078772253496384975383677447705425593519370220916429696802374125315570620689693016011873289473503969486108101284140659717111548765674189436849511792908775785793010014377044757362023683845922086332525629030843957366176123956281679194317723100649943981860480334634712274774296346350281972781792536113742573265529962137996378961368150067752239212726569724550905190888677177513693687990660672211080959849696710700739491846757728989224891502586434556269761418317906349488171447519762386499224185463032085343092093628056686857662755325967641219358741441493727811136547154349578905850051468810731397296405411288955576716835681344728539470801723731318738690868640322986057855647521951462747471138050829867123624812742667700053216779617449814325489505752634206810911837457715237478815941271293654225407731673504080056284924197798255523223564718939220308751327964273008897837249635319273888502415956894528892404783883286909196428359338341497975577078413811955137496145738824499896819999362785228745348622149935813394307688764446998748515484037719681923971148714720207065423249635331613146513079709325401549664111302950558355457508517678424605359853913241202525296001140895467011435650721849616599267709584746749701108878910118760862055938990808283086957570276928191874774982524065932419994468854406384175189592778492095367983558790783879311470387690913724909746918036622229304960911554431325473542190640919832581387996870962621974658460366563521310491843225459775472913489782475490313260838355143309681155006842988255873524167251610212007297743000336025533226912966228553998842736984922757039544660524395126461177551183779783566005612382836783417378985838848268157160609945752082847352025840533234546328077558856423386882329064521054186016716067253279397343627967355058789498105784421911088999480386216096290600739396281647732187427820794359722208677827421289083628103260773197604271659754682440148008789875512820109605718268732886221701519735352750073259699230679880501156409371786027937202612265095396165720015392632888517044804540502459033511262141797807123342078394544146891764838281232818161747061270352011902242294377490612135782329543554259445013619862344820906367355185823773352610514369828386987752331695349963132376991200217330172759874465538395822564643027135990401129996232326346240602067611956605731910229253299362743359499231758298553292546860641884543193909480978952729899913773103283208649707062138040623019689254421792532062460728849404164608622630198481573219575773119731548682457208492824567459103427998063228175576627058669973876335633315296231754916445401402547288672156292114031294459292981069091501254213366872209540319798327937362477915803835615373321103490999939616777786661466737492390418779303942947242754430338129405722887556803345473549591350277099342791166687435851698116202015022051852395563827868088181050090564430001839416092314772743098114316253239477689133808628352502201807266189400982383809765897910620445249672844960539557854463597135301104356760086735192738792753267406702279251538189294974672973920951673636782880113227869009283032411113776424693384341428408743628108924991393202617520189670076165293420241415790767390500277834341119189485958263199524763796509108123819601856961399244658030760349316441102953424849232780080816621243059816846169899330185210782413670449574161640007157202195978517723782702947410254347628673683007964851480046237635148400565196760376944455363814901588227804563228675573564171944346152243386980336003491517461212137134595914488091220249820922124031029277525401980748446057398987762700572006625809452788980072538099823151470666210457573187450886239783554514875947109974905162326104818643674902886079480241016384771745798157713089775782368027043648497209049009689277026559770131467827679418481137744428699481845188054615723457158911369165525208308217025987160562953977979681334428609648579378049453703663210866806355375873588326653229119769160061401056714747387881004740849683327945278565581116892231752513642292759036171620097907201410865828408770909365971080304777567660196306915590866072606515620403789377457369179330235948467612253230915353675488403244816074619734279843287342796431233881656451747489271748723370945744768293265834524616321229602764741006239053877922137225709052271837055774646418484100731546843208620066219910002142608631127904858391927125967784690151008570274917773165722054603691937879115690416624058578427362095054407907905823341148182924705117948942364526826493924080186566683458518578406531189060105543598605934988596642760569370034397367344157328099819191101682537046946744953626381616879667117154651324268590503954132738311877639577032309283187688737597667868706751987483331536116013809426533001509060349435714057267086062896400340536847589115846800606014873182413773111344316060733538519251902943145338994347584026838638249899930245234440642007144961832473817474733126176871901373155927362764204151921746739730413263788590511565297638931238343643808023202339339595805798766730581878038566712511035484454299636627617166805215379467025491764361182154395627046178654978630259440495386581943710894682021937451054578335772725845634205386336411100150050416862404278585185314917364954389673196439193577421331518479343428692400624912100737462441995301576219375154653158831929819093942855590600504064152127345786167002149039074224937196017548526811921701230881023964570912716467961124562451896886337487370522561399964852022793715865523353510866473011296433458494152777613629044886390811779907210057427064488518565833747085667429633525198181095432239634935482767201406408433382024994080971922991503197855925244191351620712443103084790782462548316152785436336283484950872033020745876120405746216526282506548830848366018286371993909463538824059904375698274667180261571451554119931744019352044001232080063587125008005245072280185492903695772287276898941049088570944270232919312561136573089586115199605072569896931542243333799084265376789547375120379675070500863893624642236845459978346597739134452810856263385321644944945112710772354623713551226966746482722965353139839516109657930759277502837069417909566142400645438907583480719357698389164470880864592173639249392538105096949562645844245962823606240831609862975277502811121196371299904103041137036007329798533123993125416087881987033582810604685792018981584443808988740998190639008343487865137614279951121596625474545438977638073681187115961836791663348970352574256408586948495308889885653126497150025329447588038734890908601960132055500057194722786994791609051612157263256975448993985086298382374606661377163378092435063375876630558566801559539886106476395292884335286585973684455639275952706327824746736588939613387034296573172243301485135853600508267212451104068012549163053640026466772468086631006209129391916080662495668338057075041260590531966871776055864549584980805840835354934719613652435529094267812565944509549452445727270044443774103953302109133700252938677609778918370181462701804232627676243159133360345276711698770874930547164429267193107086751679134823181045340245938424092599682309214926263770471991077406366084548819383757352387315244492710049153445708806949287963680258150730740560652355171086927884060693645260799403216480924503391150495047492519283078430635018309299687001118333551672976961161672594078127311202650874665515808673779909196990822918665910495317985979199989058211164073839445694694383882408796672379610752189317429069741766518501827096820966770592265958819655312770875466350256168322812174913170477923663922215107586264110872936430729767060679477680682147469585390251426310896593337000819831453413338726518939339661576545749919308703572833952791723877061874242087592753482961450867159346285167557381096191222345078310078316177892928410025599154897879082828386495711535127784603125316128722930987943269581796147456225044365137394859740385067281802670748521687520240327107120172657310836892913123946796241317765588773673117480756385268625263790426378002683102147040926108664691831732918332558570995600966975641530417158018238163133636680575490919630627686535798581573425854427508952238581237460938359235029791111131515916535703143404941581682371107530603327774139765595430063652388046410166084575026701550399783745893351254110967961421869060053879366872941260377615446248059623140092029843896309939671303211814519827747081684322203826121629922590767267807111631281445663640686699789431552873217007258420195224957154282500950174908893035475719125655027691646959119446857247546738917240975655445362328019648055080640500255017933217557653432264742720826887932683743696920809700575319111608630125148564957103921263320057378934082978319125347513625170191897677932865637011118296971645260441810786382239910570210037707257256076726747235851245081641986030655933721541489490796456198381548342800480451471856456568230808753164081886746220907288154556876817664155520144628814992119841914475749008317027668495294286211274387402395821230536616306184803367099080757211799858427327980260072528509089129475692634161336246436524812962071828746878777014711316301095847706676648471652691112377322882124936696962869410984824620798573366102080016263793444069620537994960742731647545418085465660692924929005882416057493231797745981399681469988869957051678273922726935063023551281250082780436249837326285657733486914085917338458615361729449011719774848876302104885025945002931205331261862343511103953257073806275368469229197804088283531422848474342422962993044799453850796566778647535890048770744567716413489277470599913427889688721254146052680386368857764858467305910637252343083014544545929115668868154078351888209605516248909169961282200580975758935563332876514821707133350216397656393740250618161510833749069875628401574412789902344887683119139363160960371416853960589733434944041558402885698247857656900950862790921666770567731925017339207576088846555955555530562722699357553744659046705648002037109209981448315904890195194252676130289954068569213305237935236461041961374321303501631219448862198552069337877678432232754407323419271221718451385397974300969583076051232790729428322581796765220348597962117685660463863349169565083103105145259005750851190357931979138835183730400323726997095342096060779621036107632300257255231087254078760894893597125678941809369947918961719710797682233111210625417158818822036883569372907087897073579609890939348057318649432983224553400551656925401827378755236864887137755693173085274059977797870317913539599498031630858862518539459479474205622088087978014134223837218335012334429611344701883613381918149366263604746929770613634695862187531445542703828401410369194188599834378882449283876908307340493365753235337866637102261983436630898939728058084652399365659517472528906312712365522450556336834069113858958368273006612883149856572847965275973815434114529682931303544492069578629557296274480161590566974045281692413617649240047222109267186970025218340427711872371797089514645756679333145062455019059176871632266893368574889523800838223034688095904659559148982080525935172465398709408913433196088701404374779089619576005430011496797558914076420395598028713116068025107974691542293285023255539156335127966560474148132902326761418762808681154255397141150507035623583936218401248691912656372710682002844786703013375547308798112811855710284932144969804281119474780468343430730416078580819955108323759850048591533025594185641548427538935524380166312369290014273937574812759707978346909640516589174455915666564675898218835330531942762938554508254054012093719856571894024297808658979556229548512119862705479784605507938125777085421890049849918076505907782608173786883714943543632169642372762414671514782311298381922421876820467150901355784401501135249451790519773591380310692842887581086001146467912962690159953279295727978673542256467300981590105705345767807600604322861780789685058400650342518183535037753007652869205103296890445996620553602691688277253959029245213931135008821736731116924957306476593295065226021543883594807577808859268673502066237377903809864206778319759913320074186342395606421672402182630020322909134914958588470062733185654421955587989605789471090655832164440253782348723350708879274620193120958640973056836294142320116607601178204721076967815777696658694611561306378850154009582042047276786708055230656164011794651596295587398791897012122414340266883251749264326278580111958943559096853295519848454970262381435346849780499994490717924776179412416361249234894233612822872536652917869536862795364319913238239881990906788734362526104425534120623680778082704310367746627446560095245234817438412300632332856480289756353775831324801476985922474571446864770996925676951563523825321366130725103780219944608907665051600558847299678165182504428639574062440876798259182604122479082912977982283504440134852068813342921442900516758161173290685296942607888772282287854496266817442936984431212060068703195056449071806839853528205568200016722169281332935944735696696047653821533603887776195308980669980000745786486527689479752790746730001967449478162434852721593045188583214237920748421110012346169038776473069764220803175133887049624683832317183762196465486366437065143336964350800996227747626461628308167144207638560842447017616358830635500254067930041138822224565921417276561486159886730879202447517497390883728421683614476394430394082459897188717275853690202513738959492485590177650568385120513182265063219242117432588916473363662235765408248517041128429620080877757088154760625370418839994546834906045549917040916551697273245074567494393256009003055579824172731097285257233868706461551519471094511513507268794372131825829711646125477237463393165922056674081099135074236006097583223475944336580129449895109921971650547551463719154911435070609145471172852656399158771353647358108644620294747949704610547794121038879146776334620749011408336911384353933424709506923240660223144696077319775096815922993804333961272423441164561016827030127892922985258960717379404418882275371847594163150078089774220239760495061623067529408962469823326600973262710116226765878078863342319627908994145773450871387810623289228430705390304418372556951410193094849078618928660392071310991353844077403722750996366936105252548384626762190070590318206340648483392145286664307671818970137924407008826285718047694285418555333758612146175888623110722391073835042470035969214747292209071511831984855837687484818107840204189580591171864886524683112757107495403790051566093007894476905370664743249376609012406900744385550849732787752508651122634724930163225666292619959525775653159459896850647155655627370888674682603453432873677550094380895967049139866480526307684559333399729180348911553621764362715943066685751773051781034946317748257021444372623708554707791805882006992449599720539302265928669473139204075892750244993127058145401694035833697586985131851254755012604709467407772948537409302993164855269652790138531480301400382874766893826889560825985761867451982045225421443687253821416511068161128373194928057580877655180876739828674495231959670988251997675057246650823408068027831617385689850286868106222612641068569435468388618067387232712535745462501037380295507381468287483829068049477050326201071284153356187277609582463970998546452110029971122034557564861616700112631561749128444080923166944931765572162595642615410736528709680279728754304846974371122468123607287336299952376838311777944595375961836359547635595771043373274535576411172428768414422698199502165563618470332492267275044298468134058831229946259211466479110985463798907516914826532250502945618444429660976795210096788650804929189675304238102480947235280413702046206880296139087725073461505654104419549214134391674610099369201993936154201092999520234275093814307784021974416022919863943087904447310918552187711888173008633783950577247171172899066912565864239603508107900481692408125837512614463640759113750530433326245755312988112666972311888146778118555465788850333393628911456107576633761250170163305436662593557398104601178670954937773803165294646160251645355704120320434146788618937868367889331116935264525404513916519168174429138057878596717309376926549074780450817906016173861150112897457530107516491353423383563652771988436348838250014993401945674356319910741969697153649199886609310672398617161078170296033083884636570372337341879390468648070735101074124544294410414267783695877010171708175519864517053205718327622515258982021084916083521845792444840912596776165476103268500344587157661364711385478319243804774208128694431671662266216663362365346894069842827286621340675477393756869587594712245323912586733949215214103371635432482799322740907756176837436458066802841843461567597649132749492982000885547798651192699007048018612463636216245625647997888779725015169536417087398099431020262677639993701627619861209882489497851822199563731966931403386937664715957593855108767667790334816156265330130931641539057065558206535134739029063335795867579868969921528010123681308808228725595199803955888806709786982614576830283037076737500076449478212628125976007970005132837515028558160685851902449824263202854270784049384092923625181948502010345813350997693532327902404785863300798499312077692636711711508160614143084349020756889941713056403160729783783188488451240970460130716795442720300031412359912771085260213625323324872629461399475621863477287981969715238571703768799617619256810945010521545297620307484820029424579034378308784581347825234569008220501286511137680071045992600339914594219858205148974163421132224828768567852766962578526959699973866817676389456902965792040360435199805663363180209310656074956288931164259953624999254506080016606474940623676141049771672374471601634476460867199718698089662694945820592779666794802139267759137527041130110753084928791452575979660157316546217753014326808877702278913690145137625383918697490669689847420124855106645454557225220570089252588762211193950933033279650168701851596003260442201684329409350317423606376792150588699423531710663069131751150797841405024996182803790906243613761845096947565132886649565106350389168012516080581306043356388717520431295601791165776022925239144590484452966441068033898719478076372721225158964303948890289883007410671759985990575084701815943807298650045913305754952305124065983488150719726088192040794931754299299597906950827210605336598234029310574599069379030628274611274088681489558894661865726580575803200691869956996919013874565291407442040784849789316395740634536607734566648054157687778900846118507889204133422509449962248847493050768550409597401414997475271778605826032445783957593985810834109761582169661025150633412660969081651005618901898504771120103073301794554185071991813862562901804472451958669116622330773347755772236067127392919629657552575433378185484068704919613411962369706822421688881015932242437220201584703721058339269128366584389542888851196449111561646647535138018816490227586259273933095479608079399324483850152321361684349431823329184225555954995547964166288057700379690841204454745750077253685741562653839012549966888285725856016173116997976555272436008783313701036802816430373501429797926717644637708574898733113398629855366295982494153346464789141566405489151798940796266595541409845209837225930197924457846766470366989219329665900271814674515529840622635979065106561028327932323039184945809707336078022129060226936857673592667862331608598741198237094621424037428664626752516086626083730246541205111203722688534068911840518489375788327170714895954863551772907319502227181673068370178915014706974041945773573663395043289221832767770488500163659289417858569918548133228030299147212093011910898220292880562399523277543190695158292045489239633135535660768231863525391012985757596914926174261775292589835154790204529772709069709754223696353297783200036933894767337143614852157377307506510202669825530400008522287297156517292010532568687463105600553012337777346635062112017150732866589940486032075283227186707863088836730812044278463862035150153950609515762815515775181367020639368396148586905083305698213521772991885838888700805831184780741349109617493427484997859403486393654919388333548205936815309079748298402472639725329078469009097614880043762215375541140030738163569043820530632759227650359690432893380756816484950608982069726736864176730064678065807728226648980281014349866026367514398116148381987274432276843712876812139201714008497485005549822398613196379800205385827508261718454820044545812895517997752550952464605997704238009461678991045052197566454378139716228096089441433516019952576060647482769774723444132306834648203233638543757348545671402866931982708820991814078702457284604329450818261312744108342167599281839264207887590278942012750813950110303150335201225733669151358063264503352667940519497237610721989768798743466806709822321004417471477089345699132102089641609492290913863029942522397470953060789736101450299043852224411640038146117557599051998449903396830334211713824753097582307516325653607621765284037996276607361463621428487897842955138136296095949403961592066172395962889986710782292482025842263451568778740645687144805320194013974158386626745974640982623593831626195449985259796202554891359434424486484807720230058953965356598732262645584293347808873878091104925147959828812828782759459441519800222975995561382945846400772585134003056913665375422965560779802534662613706363806911611326768505636135839864905376175427081057039833683527071647470057873118636142214491430811746763962890462693379966677201395477516778340700555956676279082347421925293202757258733589487810051753325732040571293834707266953271430075218179943111607760266893934759997560047588874496197060869341239625193665961207275957205999915901387339547210111561543162019495612551958783065408694767180562870607195934361883684507816436186376091760003048024327618942259391266231949266321717664443177682558822070789050881541497080497886386546789142390612036670134166983384858389948855032842744653875177498409241860111529436941219874190628510991498732872365255917305644244349821587372873343088420608373601630168340055589855903469845304947390369893841541136799442493676063351165089713426969681216348281643348230688247840322520787205537154354863319664403175484702021136123347580557022387125195502512218606041644092244871701882655629700122138926004176221453359126311723758909566513062526148360168874635200044663747817270404936062309661177515993096811051584977027071706965648739317323926008202385623123190500277299846173735327184375650056216787666047991663952390533866821083373795410558915585693023295364049027525430571798430057652088212314606853038449615778132015146876637947104252770776358562014023605750076490028142426090552105026238642428607633433321400016423774898628869993875662590584500755748179743453205064807488069363454322816458290618994655898416177895754351193902937956797458281031868295029369562977765552911728635035661994773092161103144951632821003707864931460547509457111774704720405803941460760827937867677649171678589977930446669427835549018408252722954188816210293350085554439957726947330417442485971268718108205321558957422565883124825355035045810492819641945191052626537389541306394208518780655190347367409571956195214217270510333677064154568077618328544646028652873640135155592133811360579427964502196536016290496009521665503129989861167953491385897552434210279592983940232902823347975898467939227840068789414288488609722769994583774120363794360978180901760067360194084853644703930181851945078892428958947613327056616284792734463696136574214992709757453402856088291383766319277660175651471702604856402871952067461485391751508084927087244188275420921475709330582818864215293484559270335295795782591856732783389684903122915598540476139147227834416268313145636444539746929971123446077730071121277226471069473190625726921278372925817967288199555080126232488760421790885737824551060464196735363022988008506600743888430251912451003462443769423187469057942937875256784953724985820913715552313643677296977762692899219896683001647481767320057168085186246094342132492190721075329996440490887590025925204832276754039007763899795730856639932895280395315002990353484900401198384710084078521180910235150897296168363241235533706686753324624081835920923858947492341728177706627388472708895531234250091896990115381556306379155563806301344839678239565989085411343335413035642268825435213537169901981492207773031902369726978237444781030038582298420388132775018925329482832929254909010378885148341063749468554011952986369096856312869002071081827210223208316556216959387862518117407512373177358466178712972857968555350845174847575016763673499123657383274215669059464591203555185082247453553954809497822416365945309343122083177744343586102474337670896557689153382553894579466158201687623506820214430002638641693372353308451060761507392023690529739835405093288628182123752586725557754930860316501086187705596087382671797806783238388867241525612643419146200895814315041788341681167634360493986691430570540704222647634251046299511884999189040084807685185094172967781453185233683835375670039520595123453147612057086777185921979640929977266460924343201301935221644827741649508501231191204136305047688633010340963726402124771716422545520794931450512718693437070850339678560283889267052857698830032941502850270554334712190314383961138783437127195860782852738370006287130642364409864777010861208790827631255308581512741567571445207671922465817480091303409019644501138615549354347793342770386625939734420217151017139242185180815383906016172586945272687550847283224512686535295167773510043015350354409708032898395188153957270396426820486865583368511067342426973509881303318981644310691526608269042848956081879566306619242761654838331879681851138298778205168594221560887095995979859106340547880363381522393211595336228847187839340676564638342895438608030747701304488026003534779035331573320403258959804726455253115283960805191993936374720438893062876169531743920384110638427635292626420899988310233190457127469512235087437736037189128209106588215289774385495578572102126589540659825739295373317300634991776302525062014761900182968763064724284354922988793762659104933432309462551405765667181647990999494799614039021488908221439193840509846947358011533555499363820127796826053137406611393469010223620931866844244538801336036165831724282354908315972307678875325951415790345931173829823935417201048475363639934035119542513805229809303326008009151171114608949463867292179034944993312942217514793768553190195865322861026528705736612393242314362791462054722355574138235275130673622340885338864287610705024178988054843173532062896183634415568657000484919903631793128443110273348919777286009423461402582651087629475360476574545246720036153513866072563010082165644293962141993591444988201761445629833753303557039984133068966606629834664825786595540363070546025081545835454852786231790302686610630180949186396115405580154523791992116042505586208742093788650499399758248682145174290359704633672068635094738072524792451703638226599030463143416304123710563113876919813322078562709946939932193051625465381248233832880836113912001783884442259844565111519456932233012603541145788010215976831509566331085401028006669604643479464193339761336332806102762207716112140583416316220745318348166552462100913951456225644254828871287310004506807921307649492658589021364510363255864434462424266136571554031962945121377937148883859582619724497331986323754374501263452979235044353898243674517904100105440540931266953964870874157114457695458029244012546618357243939367858775175068154106551217972038465897893689871447615570989269765098555015617262003363127879691557070937953986176321383573573632492117850570091249092830735809419995902065493118146505558314864956971513666688589444769008324404956300569160926784025128852867641419720337851586962576294840456735780895539115256937940946529150326275749131891836896725658190313470374816015906087960787371263575891802426444716498132341782132371832108933894061085508233553830329582975349213190383038772089042051390950923710930751672410916826255987696878281011881591571913361518425311433568176970569752117726336489749977805335816714436830146972283838062437700513033192717529013364729186199099149164532607414143792325043406193860600023708046926167258538746946482204561916401656041610904482769492587722562343540178041136097020976607571910461511638824903091960264249509767004890022253453645816432872873260800363658630810645433235730537517699481267787363162230886269630580705374523106780903452270944508665706932578301323470998882907779668804121547124303436477494477757590749193695916420611300068929718624856040320065123340596919420199951590789287301525084303578960199060291781340218798224629743223693570159132555053142196270535318578499977788022588790536072109052285730742239866221109139297222170271050115975014433627658938129355490858298098001221911992298162796300389447166472263684633934715175898302016399819342449342299262538801611920976669372410105549590287488279537466220110375507730820105002351666500179719928204461262490153435181310904358893435477343452060958096255588195318460013132365924588789766854973826440335887498337907416779339094231837802052539200579926942549826164362264512470837243177572101740772769828780797306295098621166841936782521869877566000234516066679831206125303470679871907147481232754486271610195555168450822394472349156688723619035426061156575510137103353642868586598406833208491511957434644165960379424880245399340907484663291498636922354330738743450359353782507328477645953235937755712390904705924708675684303815858663135535465029489515979516881935432013455150312365840465225348571843951593628239345793416942267480870335176657256890482445391578737739454971329636067188176337610731516171393531520504331145651025793588200775026457911286473565906010158795524128051240529204688196069977397466692375652992536123291912717598486745548299713438223319679256057045518973425213682084170315984532495353226246962502679814112330508554382637503705934697837070932977785645517219940775864354972984430157706277430561951128432012205361325875425991473554253012183244908698067964553659795666563956378320986203074716215100870284779410796537161242955158747999017276072311920886513887060957731977560301071141750741812201002409807311799991739359337558678884683042853815689348906492785612008867462593548402885367809872187125819980645356126533024797476342383588670113106075736576190127942193334440491621519390921136506109709757812569061597220115748754173410918788177410121127346295510134888698290958644373677258194308958428828554062347325815668055765878060261104443485799856092184682267724976744345289383564261661256009044291566098824355711117502557164359734108598546678149769300075257724044062647707146656949774615419403978078320677183342453478684757265397622613439021373374857225442161219931577586182689787611109906938174877912717294690284295420228808384760331915487944222782058843080220783721821402260714971788312689500137365241407225877193434312270225833445586864486306836087781009485904227201860572745957392349977109031728876003804671513402102706059919975008626101911612274287880850953802428261359332621653021367593677418028452610137900541025961870199969682300552376626859195928267093116957118817429102205120673762900112776426897904311191234347410711298864808146351350398543317020312143452129594230680545663586491766417484458384497945677634771713732203134210172919375371513908872834389109371610104702149934981679364591356900245696942705003586827134292841247624589638048796874681347452632335876238552001869776802710202739969708302667655641793573416899951690953574887168652245389955257932666024544194153732395281441345728829749380839024178374792716510474031035386948740315055161001017858702995666192323447606162887865032452227198964477189176759975102328223241493195517658646913722679946444385550745538873777958454230933977301483741738658823749581994899444885639214531900307463000965787112978785370838324554613389409654572940195971169144389282980472171781239096496488649650467725441922097404126728359898231634651554866254804719549412415020016289594399157311743150819931598477458180947907583694238954319546690870125796271393037996183510251787202573316342007088900245539098562405467252223612122691339541735269593334538364812108081371528638493714564197794750712650225202349331193770164069729665295783197631693324606745980545371598015745544940280043445718152575202971063653742648329049249292663584875263639212945695730819851602628969399765827513420168308487658312041032650620818861769606093946256771254841667193577859736145431716840196588224108235292708144762959308037859456061365314692089611452066685825883747025621175056765312185500951698508914898224344002438811965157358423657046587357489710802234451784943312105763216284296922539689622027680715274159531896885838571478710753985573126638152177026556092305853989033669762932632289356737937590521578924204501475311516528967584349122927862437119548430429208181477647112901222929198476170399659944110097851918943829728671412181830773126487331966818063510462808233649061047918757209427599838465690060811853369250955730338566961612460197872664645429259500225837268168715548812548547581021452249235318850847866265807528535388868250210224811413836039030841610486647631358927006898288881618051240718673969852573116103857218657867649705493987985048478433911884929590283791700998911015010658134501765667060217873054429086327761048147343041965804338713884700312834442544003873069851188294957694917309788203744851187786563940713636621999902047013058636324298299804491013934659873879428596326924791511769271241325170655348889938482739890730575045060287816605341710350431933278002457206617685787532974812950056568948178610080242599567016723076522216631214484320517041841569984356139985400459724519664974500882230245236703454851337995949241656743152989777072171788821109658253803846840924158054798465207211826603466103227027951314203900143239099332734333597791466089543490646485925705403769261412878069894879637510368191404130611348247377164218644621741161511587285652026546144554492479162353766655032811761034120922313013513224655911807088864541168233103586869705391410206049478775777170898943477515795901356113275250091035925518548619000110625562840017617434666709306910844156401370010041286457043400487475267463536175601324017672784838672578409800205201581848246340597563347879151965368817283122271057118541057649574008333778271729209307422985496807287466555388338922700035881245567983466912359343656954346810740422402505852649947470711879345785679957353968977956303711394712947530431802591459784191979578020810714995273036377516207963771778942841848182420246637281898608341716787703408685699246327686550023233206552738413133405791644442382054955243358893430328314886468114388164651405647879742752488050564559601551664740782034332954742089736853875465008363194205317076233542200128254034347337365112392600883638120291940837900813173175144414495375606577248745252794759816876156278408503330492856757344556073979612973930477245509182631308787855582787550377889924189777100337949706005819319304417028991837625908921300161960234420731485236136634314714343678734369988201709428543643342404168067882316955960841721254297704723909991223552282362895848956265922484170533751814886265325809418608608576164006544864524898004093194619821489604657869335544621538945640649336380655381016028210345299170817865443470400851554858156736923459689544310196491442422803052685409722434930625571313825973628702821936144214647221345245071216988769045632386235839739561916692901246319500590208858829145099098289529022107522126718417936042533958278054497966875072095928803163998877183076283321061326773706318236845534586776165989816972363522383759030974847741065197713093088573859128564332772822800631914941860294479024969918098924553118355400807921506417985875489517653498052798297455447368290364581533795558163726166338116330443471098886516485524146309286518196454714737266979777011120799283310847386368905420898866543416075499560160382336126565255814577435992669860696998055881672680838332334897338905793554190593664720013332581709782477153905000150641632099084835299749570410095950728482027711902847105213370886779612335295092143304145465125682800318094181477508488976041353553222152857534674216747505925516357105934413290797572903352257549422758009573729213415876134619368384949671851646551882560437118234598750118637689812502104720017670424435683283500804795842220843495427391354691619624691414407943546441040665054799006289846390751969971275695103234062420900303051717285568943454825275556689363439194275028764139967256830755590832485563419289329048741495591029615912809679986659124402260746207477471659630236079070231155545634521014920665044394630508650921825739681581835368008781994219662449469176989146877039831602339294957342986779671525811577997011869904555312207635969023226500712954984110897587628018382224216941317379566047004342935909912450701126552948441633155266078558685874541312624172761695674738031530088773818133892436646813862157065471813690980877759175618872224715138626699568114421458826116400446670791180397707983927239268278983720580756012346224081749861011015968456559597654645654954852270415083334040432042727446625711546343367954025890388735318216397195971828390324258635009731576757280616756819319344387556461544717789739959854377289316806816674570762481700899682110499738964568980003356917182943077933590137231710410272673922128537479381181890442664380128954391894321445042486127500845703087336530846610154376545629353380752622999612641284651503291972374164859562235354416081824076279022128028490103886462451202541238673849250862376813687201511621407081608434705880347028071730807290616300623047703422371030594718549902665420992278461524434864488656994711902518708814008473719820161068875936188531983250060021930693905502715737826116990333217626631180306007360322152278641775789413681175170074235912144618642249120156615045875274734897228357727749404383476859575771877962325748732306704162624695302472115437648673706277479908834049468848769479350770886700620402304857625261617877866138450070182606191851610142055456979346953506014687137182946304057786107415861842519496036978136894720271663170067677506836853074970488624283937639291806864099199758441676284109570105130967749854641296801966270653189164070793719170139980954515019689694929946732361194064659474352270720610066314399973916417820477582430308753993424605201732806918092869519851436753310072948333383794410996839091653198793331692758114984699829365986455220102671165934324247087519482397480161441491157712971783256701081326523999659375788772614670971287095012655096463441778837236774027216949811049499354899278614067038214529296382607208511473360305299535902563222158913381356983024759620328378758996817526543357200856170697172430888530042838179648164784383139388590191271804112048455288434364374918782608777888416105511918305383761777984757225666509503195370899469151173632846557498546879332963159175741042308263479332081629301583341140674488420999818892957206367183025122316074096148180805331763726122977517394113487124456778567171107395146171372802482254502489965101261416521461314025554725709401053944829879730809516633672912238678249660078731753870203802847331964829664707327979425912578413679257202653397302646407317313903624771212583303515793999782819055629657912264479221194985419885947815523169887519083376415250104444297464809048966049778282938614592770978472038605813037727742944385731297506281628061701708166652044881290323075873321276165834499595430577438122825194957971880488208831506320195866534452930566430628999910649052574472595552292622953755241926186193863085398918809477637554184269551844394961736757910270223941606555105838267941154417336754416290153888412966908877453543246249090584862607946691327313131109616748780625750006526983956531682549205073956533155735650059628068718600830996733186680278094601355820148149886516181081176816986744316574814748515884524416718693896957419526297886011956486141893494625221210579285294619567924733881743301753632423715973178362885739253436145840187848950430818609955066734304904270958769318304993965505908020227711963113529574725401981575857014208093722986062371296750562218437675935343582634788776685739334970727270964757494614649963148903677550362075776087064358513098932853304943931004565062375007042488609966217469863788380933093132780853618656690107535472181516982275808909099384698369838814757976765618677504168397395522313947552416435458151061311622461403362892202027177847815094347891818726476676951900283115216688065019673481947522211371791053463495514942793795622100959561139118572118408240965374456844232121768679334360822263544475662138858549887915606512077215505815950128489059563369001181696904719688170620905297869553549752511151152009771153240385051922302029730137188952996309294797087286401957990600876762449949266455847198189681199451744380507905069342640305363879448348099129255959330157305105743102777173389580793658302871539297703403078875941351123612163692502319009780703736560417802309768919227583149609903775408695130833094658304568657620222357216286770385600086775142125585281574003941753759834742370552818182297795702949561829119396524308264531638872045459240768802669603252022664498557192349349736403633134305074638262473527633100620142362281192388273381229203985310220086650231928801647923017901629615999873056860614204581156824075140279919391503217196811324606235813784054755967778470264111805740091901881010131222649678996109930419334805988911804624244835895143805325165538845919799693865661601788551461680446945243659898652977317952334677057392510543401106371975558696577925737903272664047679989733242099952897872199273317517649544840867611175689733097093717356022602079771508866930970442587549636142828525939000285923276863845798007321703705203052247400227390705961209542274969447237819296066143647569244642373028783999966002987980616616615542324095835888488758336470352993477596054880267679526620384563907634341212126052121461278990299190313788622415608679044888728012994009601117978632836628266919198632931835557537467288160675640846549095504253530976999807787089487867597033479565416209222269946325285514847624152467746879744588276519044426456046753356954646268344514181062295501931263264229009239140857598830510959037597357438650615246548087946127574279427496571387573749732023075219212727908592126503836402531131730367984020209093191136317706340247322238364216054454209926289571862750337080790132784495411636189374806042812572233149189084703125881568435928875500746689994149665921772911880289754031296428771382285646644720800871334579275593700777253301887259879405448577774042394697200022067926741257360168156565789019153061641818928840602814591988087966792143695868262491410236718341060101896865491909614064983996124396435300066581613852242786200781289472786312404533431000099744201479784666149768736704490525315404674712511207737977695102828106033443602684851300170495417051295585795638356770721685317791737534587007646622256932986520300551996749664378768225444843905853356655031470582568688501385454273529224313810692431007419460310183603696721101805370963621799689853038110172533851972082509720584689217514697507653013141607029262456966042562187833070315336217560053713593855462401455839635873454257684353773968570534151873186660204425727072523400214006246821817527215939980955191227259880845676457006913858663144986768057988297857521489718366613500987619570015442952435891548363188452753344108314879282728803382241291263647606704300445469594602674578566674544218939099169359711277191283182791242502978063620939669875029115271215212304881461204695896227448866072964114560091485222627532330281468963743126016270675505002544917173352217952586593669021310338759005323731613205944079235892417707026694387094836680498926534177973428132804729972638936559172551533290623874370714970038289635252774443524261227705963158962565402486290368474816456426185169459049524030747670993371522669524092958218925335641408782143719431350347515540926355843385753980666244131142395433897148532133558949668710695063327911651059958429620535095086843497125924410403125321674080906624484982133820950542112406993277610879784010602803308061051012064906907074016186477849715639549779379582604774482041899876491212340208981186479924185880812868792846878677032999504879481973848375426584252099076343119231498474020422325028102643651110079116837306556732462855972012744302382344658553164513139555266966197628999322522312604278781843202651839800394847625980386933697951235816915092444336420856425492318374228102089012595003984097455113043179719026704171695157805877337962739550501803004818428945006298188679413086257650895960120980261108158206815262243012489167318750665289721224275634458972847411016514391670927286746794741436418797022194172739338610212692652724071357224127434894339115855766742775955256124359008071258747282956550680872104656466508782200483231472057317375811674306529013396035134638099371012276288359390845670346268060688195370153531637248900392392312122241090680001499736094739077750881159397368823406971508124914574582736049858401958279037998830810267177960759831474639569639264641987377952394030032321571335253683269923785362055507344817922549041108294321414089627026338982623087119789440727937405873223642017583841816347481917926100302697080431450633615259422249607691785003324803991678684114015514852165379877114769274762396794366884543296585129270237401983138775457246811760170498668073132573363762143344526991803544815925927873085188453284564773261879683157192643661765639722914724714991566332221267125318259768060860186173120152443908726418846516634017589076868475688831085030664481680263999647967885998165271895224997301490538643922812130519326713734839742327563715449747832969560030644346485165978642298228441926822967938424687415029284906788561591001251477174542165517879362638676794430619606546888528158857087614861133149863278664748977094006239078419469571581327911450198876235296533825680840315701801360986192624160494863562458822015690267259041824325457743899778765660783265235691394439036102788061065024636007849647870626448482030587547024597284882163771555004475089025343421369717611120060094964615954489781263820185950230426410380258094157314090779162797508961597466452645404545105309002171446592680656017512402386339120088473323695281911109993198380547505022133621171384893845978383799974838936932533600462119597406268394110972973161873429946160972070151572945568285701975182540515160023553226070568264404031752360568194574842671997088180968646144454446037924797718546401632194436456128156030713404672817730739555016451220488312996452858130448073351731280287275021083491910002992122623070605815688403365273692990284322236378235010567552292149954025494774140065850898799289540427103581389581703493962681652993572130595910627228774101218024696305116338388128851986054019999399415271630009897645960744609105127771170758299620748056909774285112412299815612655236958220838231369481922923532188431065771893291354792191712186166005967526953926302730400825281403457194988915596743359223213851753927792348294198087787520024828476121643959004655938091052590571092926479219440383281694135179339864930028724277946591727941827707212668903642235239313643066281095856995977963574620585114228036554023100727180900692855721226013049287498647314889905902642363889231907695659455781440298327942698495743659169449074964215510175095798384639026366414431394272516376784145907569238040227162739959651327921903287881780187954373660076663655746756336752726916090985557186446554318114667229034680020272019012597775622379918423044153899761751249776441875916364680046739136947141642311142889001732577459050798921757082253051311363980401249577081495740544801417542846775057505331011238806700054097892516754792491263147676940452616110590250451911347492585740712353795409948042008639069646915452170249674122606918059990999413235705864589976109496880015521943687900197828420304405263127604413142150122354815199275185263629429239647366648358198615497811307160345133603903369620693815011767517759820649665000987027972578784085024337774242173098831377737618997919868197107802490399564382908088456907019255020870427557358159787960330187916733810901119703631472299323982452137195645564135205719446667641310074605569546164544609733756742108102537665578725550893826448566245708032217250653464437095488552821367056301238107867018151797164802077845026159400953585110303583786292507036336500332262392488720359393541365437869514461464302757660028229689105802786291063110158471766517405504156891207457413380124445719975993900491589473268189366808822973626323909572824855348298891030076215407101744579391253182079269406021189934712478913178190964271568979113215683349788642752606049416458679575779774363577473558185827260394461230909703954562546181434489724100533879262055541785003121673129495503966054953563950506138422026478646205724791088597380454759738051838146522132037499186237068790557821738874779289018746913650197289567787749211216863040355408621675711537663281342921449098978134585604534285748369142793870694953055054640449646966941525035442075201469911321626965043024919279845002410030429425219302921251584965371799322657801071981273542325702906840796563865295554317522507475257836896603873402644803215003853621166239156868152968562580895889615116141324330488199549438647517236130170394127041674210799960749574742310204558901785478337546616534719242269552608398122807208635583648059210281042360276598076299744489301765669420789230224331811416636272578434221167548995132260751800933108902086629066231847636180642449509051902466652012975106143163465295102942117507660419547980973937410467612959817571859646743314560562930078472785457731728326937593457290199131143828370391723261259128584496647287913901439832593253256619438285619507951578249010358134402532843676316795065737016971349053286461167771911981602987327464285946497141943916639687749354571771761831861546496275196771087470935636145854926712948975555641202711756207934848795123179279136431492130065204611829632734932201226247677334615069896830168959079989433730550470667939649306897093677564485059100824885121332254589542440158620327396430735172415122026669369584349454560210894932645806456505059685450589425183498393707724908032444854295558288858566606682119689747650767319718280004537989832973352971290867654915604767340311165726853191950980459007528675404964878027004342084445440656150580735940982178998542251863711569918790293657816796494517045730180014561571534937929024925383513515105355286228858514735753102154537396502907472384121456465913631859190370017767945255707032500236462680493958059020289391688484676784715304963997277984542983571727858835932621481230988386288487978454704209337617064512752600006896774007170662783120573288644440447202189592883836151781066412429221482825065203653249007028601622450201654082065621012221583864435814026468444065117124865105581603362110355209934785730575995387224756257947252311073440902152975854294508813431499576586948620912974392940236551653924470105972338630073221303514127537697280717379419293433920797439998660777989259956825050736294961850461024411299653336347945152093971804844217024134666216429781098600716728089886915431369135655941222565112764988342033472209432170321230095050169488471704740031477511668702923117113514869319207133197150342410714629327341805408912493757195807401109663130916432496388694738358229990243186003145778463890217645718634726244037753637587939823883573335292427652657330405041260012234213802790668940878630362323094240332219098873318527692299142440349945765389070397430644945665130162510784090415821937354796034335849194040795247997288493990860475366590871654514055388267122782025112383480191432590869208063765220925382654269724022458264964429337709893030639676209095189509768335522084700761014621052919292922720029492651738684258109856296150379432275570666732435428171708185526461591590209419264913758828898575099916312960557237259412036817022697062891304281753875593639865560472892063811549509555581866460797964434173144171564665583637124499935435403869425593167455385559406513016436454707490107898624622870802152324378638317756731275652652656371352844517289305377337271268357977310612528840182643165219287558029543581233014229214550446077788986722486240376197834804326328912238125414328360326903725868724061945129436998363654034933329137384775010140850045674433123687437170131472001495334196592353761391713139296584852869239186732979530443205578429140245281696140423304277946830432195526447083084728942491938367807183294655825058796153186047298231115989111400223722256381595181119911027907817839451953206731845144864014107351390429131408218110478330685846929711232960085911257945429470652024574930681419657346454616020537524825357864745615490060248568867323704562235574099034707162368527785050782409807450789960867108435930049423467411043241959408785498935050919316626825427477888179976085427320126093029904832158158095863381262355449462666339792001256384228688410048338793851142026583783372409576136147851264494951344630064652306346800794911707193485507926723473092708410049179924137783221242912079571379320896192362063233946420618620854444679075936338328498702727493351296266312275882057053351133895143062376144126421338002101126683762368776080313914115077167623250069295436430599305312149835587221731805494813519685620463698743692846057718600956177113443518664118594068569922690034548135335114249329236747350627204320653598343509439035912078676430336610403814684815877049831864152097161073155093047654756440987997079109249992122024550859822465727124979414586211021748923584254008657991315844878234522239415691826443406775695464186589363108867941425578858408403043660070965435122331729443055351931835300692593913128457622436423147937760540421659685823742641625379712281071708027748933317069061556806405758371762234975774746231649123069760290239876750967696619412773604055003317391242900888599125514256872899298787279645924884446065594264928735374805516060122040139244946672247128908984309191081267688713620302775902758837441242916664655308199787872587380114003517017405888293099566381614512426086028424775640617787405169305768758922878766561148178496202111773256701402813105476724739056300134024382128091514465589289735114879055439229187391861303369050602696847378259088884803006309951640749629438762000542330788260778110080373804523246575620697684147323214933278550936868143577691307877461982904755510872553272001769351665553821021814009842532585537299494826580451071830407601188482747696691178371489773876221756217969266722527409408515201607145157576599535329074756912737151073088531497069658100568410006201548794249597106153135374241002827618009763203594165763776296438108631323133471975865647252157421018187181050928636178651499337612563712999796050961254264125315762466674375335005799774850671631598111134976343467760526051452249361103732221005534847687508057570230069695357947346890605408692398337617936411476656217449898357911830425587922623030181044926511914933225232889805219081628552771664311174485830826343555867427317652950652303120271252820310211601751050531170107380913036168281174073272455319861305940505312365360206921321487378361192007013932390181839755609346368066310653447501580084347076558156268401078420086641899307931069017432541587205055353295826287339120162244996965320185650332945811133840798864520278836560249405181084776666809614556536415535947111057892208402067648599085438456276801197662682245237586778871894926899999253458784749889117506258828354094150687005956065557575639902580892769080885771035536650917641202158303738854994695224990978622569868555406381348347261232617721924747787129423092192246282931138488337599349161452632495626691080573056927814324245949838150764064924537229065778103686285904954662226018358499838021881780978058329915028630604477649566410236640628663685774786663707602305898388813375990667194745763942353593604295031253389226739596039296121709573248236782130054170272164217298804955764904217295636943924674346650254155538841062677475554831371547930914868682353942140365152192962064319663679723089362489475353748406676498727813991306591510811027921958426226924408272926948645754159696554864334049899506335551589608903125461584351403609307511839368535762772457300856205881472951884286795571520970224868250151308936026646054301021100171740969979638624357325473574853008389224473475195560524942138223025671722813760373211474366606112210748288115017457822781669850692502993255477317344177421943666037046905872158146271453044551345153038070962359488444996866205707472625671748016536297732507535901963428146877998486178017241249997906769493683810271223102601999639614405670501168298666807519959842077883905180372470806829617175826030774562405827320442741381254602863942125199200381005794377429177346412758703088637971736953304130335421197923928674351152977237115705878523951811063444350531024732644468773479637020990750591703706695608150768715422120268925826331841631737307537050088483121284444564349392538039748397768283273844686784750194276270898159706612102624564458241456319591429337051598347584569815406608835109813819556083428889068089918245395642678519805537882985998980166498617731004292304519894347668558352110010164596642965394507540107757429960383265269173566655712044372407070960029637901841078465620237172584675243411690251581968845934402740013651088579618425012885510432929764770901581523311559376787103248439058877997726012051296927502228640113806301482072380985921774543150482744661549240656009500221661036970517026644621685465136164787729669331350473848255106955362577729604959972015810923023793764741184769618294039404268516253780205105906000560665375852740358932408624724544125968987253267203514927191513475288088546881519134131011541646327718973350707397094674599424906516659861645245707070678120454878272330686785757789242961922226373960348385226537558340524983784652479706124504530705427412201191146359429819034372309581480483644120834535445215357797119675015803278696484379974382332044712718791636197966752526389838174979846649751773094855341933015586671019121744300728769447108977073622553830885585464466256666482222425263672398617780465456510182106055849744464558311513769230724667993271476982311013144818376794476388596731366039570772768540999032450174871139252996430837695019629123495240770784985911622281859903105131584146834124518655857171895841631733999313384812706819759360530874389477424001838069137768379068045081961305401337704649914318897650947342385792226873059466777321508473240545015592737304922931498998290023422637171107421839339390215320643499253828393237784188275834899068833850837487431981836888895489729270234336521673983324886096733537061535567491203620262492088366621834700536061439791077297809714403666733791851066333912695295242939117299315005070873622588609027450061556540706650798210324164680105321574125249999518273112087255209326712023510765951729329910118145769729425537628486159418763377810104122623767375628830106539897434222021965984126684282082979181945014351557103038658205868581567458190952554330521889971183775566158315181241105402380584080499138673696255083051279062210496231169426363044082590515134346632138815696840519190636148326683192802869864682564168716810127178203322511904411329905539398664292901044492634339646798300977912398847479060620092383484685099092492395825435101509902435333280004085768938376030051392959198407968652531812364553330084051649601917901336183008967606988908080998756697879116253726196971849140001895121507965496654899850328287068453369986005795197010921322748249995641595793945658380619009709634790418497993202924697478204316677361540614919157716387330431964380372607441168789124024068014831385765699271103542912295410949354978398140339369248783852621996664420014081996814631893345886400562324324895713824360434393869595824175283596461563110769749355496449769068542101951100427869713460313539060718366754184186932623704642439263169436975128841734107334137151554740626298665847538099330342489256568688267217284877192086772414159170685611238179627243744289230625494912276038872744701384637015139531411210394644957568580303967858269363155590989871198102891034868254782466730148751222021535711080413214521557158673244736208001103467903784192780180035772294960509766623972368979895229377986541528362504581469233784263549256929127726610649922259335785205241536828190848464062896299072104862017159653779640267702771403633798994347099357250335800841064221458641698376612456579514924090501998887618268520424471762514821975133307959282150201332489187909020905297025371554739154643203524694330568096753224140703620226842978356355295472154824562405879629550500176322625780307442140619435985937023442711605271679503861618139595913420006699528153453927532181784690496156705244489041203785647597177319649916373287994925813623412415328716148635419379201023588432084725461441223823093432209621562470348336305087411884937547837506589849144252745541049944641626397496876387827414949379298372742892639389760721970945048677412382536259157329501968999025028111759589643441940066270948916592782216905355210575753143017907882731319897525550293976157504072851373737940326390418631493016275146918013699647196255589075404442683636052561891047175071399111911763639577280301586356569662608623609982839301329873809229552664378061268018534265965470840546363464048639271216888328821878666724134962813244551677116127432546307207892562009267642827098846143244434188860106865477167891545796552278116287645987769554880426848072234057973625374861872854631392832337607074360546775321810269818481768282728907492412868378323772612766631117976570503515789541678762552777686239015751641418673397797833224879611518105850304547363535163225425277507075194900792191685733378656742508190219046625760963038535707972238347176690474705504119523625957435504392768359266715860041150200763943786906255368352802502568253394679789873342843723507012459962339172151355494303805895695678497833148228669572245040535567903070934588583600898351815567962284885273868113322165367778736801560580905250321313252874312203698517637737711274973497390832333081940863514213858311223482597921825416442007119690866380230547753471863470604702852344700528656227553164160613048690162658881469810254764441955349778026970247719054091246802016217792317168411726063324788646274464423445156781805079790553415381278276878928253071649084036684416448624358814614470056226511411887296295067904658287861043962562124203456672073026293147850131540497561183587885077084021394197130032960576817657005502977855779681619062046412575060543190872346436989534863274272660946340982958144563744968922148595632199103593857291572586402774094107442852678185714918529983833253092156954726772890073375903831035055071148909305776415540904892544884458361233901269243011702342292984883641318764963407664331425692774442006583096399384096185705981244119133198050525514185250862133535267776126341426938105587897442843032721664649988256824415667696497281172415828946734379391991718638012781967770095577211579129552076589650559521068254751045180795392725466423001450270918002654544677670870131431194527729906263301212100265568733590292626838650694892227153446923664605578133065167064172914875781155848430701848891688335463291819801276607400119441072777088587212343860955004923475686543000513106650825448989855901648838661315415267914312563586591327935192545822946486656788680460609196410381461249524982136572818017745107961532123733115696341499235483260150719821155437275414726487409289435044415310357772963173108079344787324450200928791615654037650757100110023916924665364232440387467068724045426415675813700978424369988999694862896732663888126334814615555035993127215874522328859834456847776724518255458038380422013595148711043850724963829997341603675858643322080533733881053795299148966659787553390797044698520934332720123061687089588417034311782179386697819142519913536457348998953702235707131443692488768375928179759693009215337128649077656155269873853329766670744097222294567529618150180829971045218252378119949489571036234955632290822201628765304901181823988159090424729740864733120264115390927644716681565865151514144617375281180835839446570144352600497696043926772747754212057450078660102170590484368283850880171818039112717010519245020682493510649633893366420013304428597878894479944714555604169148087249892047353372979602131438111458317300770781670915866784481410620054718367391427292567939934987496795053277937230231523297830286444037867755580075428783300665708121087823636458934728222596525368661732174005687446800957875539983917175975427395439074079950001850654840574914869961799580759082435405981131446382401830509840112686175648285043288763831812872226442155028763246301998097614176210365161867504598601314892906868089540524748258362544877102001196392594066655496544476077840747746452104553122978993468016940621945826663192435674599862825683915783773608544272737153309720123724532578998886473692532187727892465383336675631951073259964722505158763616029252365028310718868226519175998793036571703200304701124567722909945986465811804133784386116711995126932408912377476041170312776603972335730692238174029192882608515595455575420917434368840071476405609647634708476542065902377578895422668092047142988370052080141579285043217698060292279327920229582256994595705644443389640428361657307736526101662062366027363034965633468186119444449957072622717080992217315113204977041492743428181132599065034959253600970526932798501152881124406306175313761817635522193126149569150431972848126036048848425986815657320575491825173332643659869316455087862230139058776391716925426659766890588373487920536952270660305501199350989840442878415280255144571920568757124646328053280669356439258632890423420866361419673259086339086596129818633967787261256864200971688655799486390911868291165617617563231735681828480411545065252578841799336337976234534373825294052830828945325036843704188661025796273187799500788869764806190576422956914394348327684268027725015498293615524008998456801505627230728005591927856375166065580788287350457408043750822584335021009925497636089899339200564639632161338796882175546753434793592351816820397345518362563501912241614485721646367001542548025711085372135488381053417568795963598443630273465140659381419228643430530575453686712749993642718045928815907090134490315607029557865099098984661471106784110359651136759840914736349867975098885791262004959473774761295464062748284379699201338327095781895696125170780125201614726167840909874047007994834064879794967974682716054722219599181661886374751157207516300033952107005073581774993569154574583476554368623192574972007414720270990150669665126257612659823831688801148561091092954453254121188180251566632427423266652754650625617497667613414034242063814918956995179172290795024473596602329724448719552088331462075055886869493352859290175298754628528239455941820714079571871485102171073580861765430634215006241556108457113231924153918200590259154223310951428108863748924776817523177192982321413037088563159537667182855774215009218417463857537932449866015768516599758239084999565199605595508771392780252726701712425802395410488223579879651595928938649862530502847072154436744236030262926820309455053912934519156037292864479264038207090670527286222165463846598738231678726248665184491746490624946654019530136591943956769060717136509637319014098547485400264373312673435330547142380761664837165521489110260403367311857046715235523630432158932839127525275312985415586307945815810961811714374069782606541030543506104314601197115239338849595674235349314614668830269306835123760687367569619486086675702688369167992774584314850525125378510458817300516860054837002697879332855069292163646665999106856788590740712541507564814213419965294169045736239580655590523007803343967584179425873512976605687451490934860219161799764250397785910234065731507499777817813684739611659144789395016295321899848987299928985890806534222778261574986096601678538502644123033346076668807402677974503804779838395393674739584277845587934779928935854070885284206633349617858599331761532000617136583954996412668207904956271582606944389786553263831493778307712749449979186616003249192570668513291083787380608046055080183794571531202546895303811591565376499357882884125885357206448549341507391731929914880498351683317970440660274656357988695936253531479466517311215830251631584219243180603615118302278917477540672750285221230009584861405911733743222316786671542195651451738579554654737706746743493871319923037176413314819278787950318362407884675078876756502559771618833025808223857326658847549764888217246692893653842155242902010105089355225861614523226213626611833473605020953987243744707398970725697399470838269630477066772349110814532971042685277840717498768888817911783346856453879785289407794935877466529332319651773405437553308583750423562310687042527144031018246238795301750907120288117402565363685474345149054985926950279759189622890985438518040867890053004143121637026345603321555112351512357910895837009871135071011846341206629335713346073331673031595264883654474895726099311641542987546638065620784872729858131254182119130331489355276827741315783943381201658414090523461622088887264358407598263909103249459480639304887993369917368626987141437321238276682034043499041929936804096712002991677207217121315284198674376774890348729560733687716424200328771073504869315442970017501509136060799823252826526905047353424513280009247056347204432759615520610036729979723597233148979567160706768273008216483759039145897143849530150320033804804454021530556014379269743397330898780193886253904356337210295333342671442030338177774252824675749940448821250848877416672002379070960657006389493362065161401717726916112176389533441744302866279648104451805129339950347786674062113320174525804013898546999975020508648625228207213649080929503630894266898291633764542207497010815359916627083121305339493360232452828621901720385127302899170974993757753542272229927166971596682404008363943233909877989983101710342705436780418375226093849271344655538284408771360999836970897948549602530915631768664741738377995483032536429595164691791958957489665535228641024082994018015658983841559735188628049834675886833979045710626344625517202197165682480026533956700813372990281992671240684315362741469409202572868391841331325887170695641858086119058497678748765996863121246363171931874034419537253503576602112218432432577402857677010618185450181329075706384867065345413227560622628481095684591587129322207618279157774225401911255741460228131276483240664187506989873865383917790244599804212546004037321679858296801787844199940406306646582464702219264327875231988548016199031317492513187304036799748757853534915998959403594795962745928669894726297059827843078318168822074845044530410023734272107809507489518874013371683263540454429494476698369505187452078409555119974915102982760186794628705070119440696090314664603262412674802989526895420295298800295699009205606981010175725359418797696257446389293769677874735366407465578639050247847112151281026813398402591256656208396847191065291389375322923040826984049777209884147253672312137719329891858948921251083981017056183953068127231410553124805210527626358547372588542685403380262137073329427108777246751323191367294032521353699917678468104879609777271103064557095489054552341084180902715877307928075065731275676933603486741944963247327905048509436364306207886465815621610479751394335636257085123060609775180818333956138969290623975961198298209723569609733479346246342412888655626734353205846757774874901962097089142934707239792442743068954291917686076677181109080823197271970821781123466535293805082205762561167276311528363659686072657426427168499643339105481233350502158775292411136577969906694626760687749831535477551151618041681898808389951144935899270119797948803836569035383270946065264567613114373049708404964992021945260311868150102495147889639312062301625997592757091612220363742369861981387480199346612798284142242456661145654900048025897715771328461298529344433106039781422123515042738967387516726709035728647841469138607668883960124639317793861076300539197527345215354414898634635376499641332177119037864258885032228298418754016889331952998299271527811602586609819164558967464081049051219592285035234371941912686923834132025160725630611969121151695788152387907163104884220751262291102053093087386675599951338132290304315819090424810124980355166860269269839025200993116442235107231142767914223488986519123238055713460585644204105811461843836234032240334591403566686306547683709884838527874619909414382923495546963324730666363296951697158343567165192512418425401220916547638203224206765288267275104525476618918745918553168987591954123532276010090988452826824387108306454243166392933590449820330732884066780362866339597368887665617606066533920944186539687562586236438552761300330393301344936901828662180927080398440016265167748556904990132434370880946593140921718718684942462887380582003090865613420032395242598122194465994551426293143354236317815922416908645954182176752884949486466116442566209975950941735110371347828784205626910224297654884499035818596360587242855955727188346917698738213030731119456941149121909619081768472184859184969566911248749673535870127724848746670876182843421023877122040456716545727062128320163159018293447977993219718251732241480425059660050986351723402296495620104120276619537379591967663134748451650064940288586877863612923066474173010809412809970038586358396878690605872598981396180617241921501597795655225598738396146674319738160591131229734750429789373184621201126100469127551980478523590852841563807412148053963309900523959490644141527096051440416404017555258265045531979993293812193962001094853643076711937864279847335386976562377431999793989661304523830931312574232815510814897813623070535181405555241087992229724352440107147444860864272138339181465959252980727906085125853637738030075600020611725944704445794075692127105033359139121284238005177351485062185023284227276602499054437773804818721868113313351360258964969400789196639030575898897071532626279227626254550279939639838739301830356317575715733026787251429445618300440761195037232888953326074476451297113227928826489304864044627187603671589487934860132969269079907940210997610148469359139256830345447673821228817701245398868530849984463512428164791003988284712566285736794362428295319445923006858705114636683040105867220587465581782151136737425634864308453954071496590054374275135290516405409780758386562111191588631638299605908665820322903886771805868583760741296558042538618592680668427595598510636800458042994913738181532189582841569461489407738670474670805742517313874333060865076768082848143989347348582110222131107685987464702068310756046407533465484689387444906070556537304345740729688302695334568344737404518516207836130010705062851984609552839302314521130377283136738170957095426886303436933154491827439793878474421600882663238589612229284226768298407568041525200012869377144543412159942371046998961353679363019657166280422376607172626681449077187864276189494219370521534394625061705188872447666702817085658523209475112193287472685406144064025400138510697926991652938618790833257583765847117574740936742534969482820129111769518463782193668776983778608368976848646958570354562519193977712771665375956011218971456048047320601933199021003717403125317588637110575836067162712651941126031098513723336307109061395333286369938686106343103120689380860275914788393924756560200794332403736554926748246551233953328422483786594893770466695192509921427256472812592623120116665242013616692726884635065622670951690992771269709212390413237670516572859014413870532721160596441906767466417266536174582904158751203866061555971256278919012708046018424254437674272862352222554332685661768742307034069581295029114400240965431430298726511456801622894952968834948930273352872517286215248453898516747241854669188690696653428020078040552844229338733194194391456562346132409024153008105047930996174847220937559324990437337500961577071895865888283912989201029593010192811608606852656359597648778502434658491774020379718319315867054716590702404521645593157677485636022351109930121394832357397023592625311090400632828378147362350011081229046000103384131137417349833792026282717805275652513444253225554933899452446183402424359420367937708885846964232629449806044344679374086168824412872260174946119373274449529048101352148132157011418716181730674036141346523971090975777859853673656778644810757614051939563374607540675742960727615968562066198719005315658846711656839577447486422216008795061176584626383950105761567985574218116680966680053957077449410691705982744612182440396862970281832194155675727861351804287047113638820345564080809619286803460021914205353224694803933312176400692979239458350394822561536202313613988573797200585502021385051491638148233351244569108638720561878727064141664526707841603593172047157516056167161082662155418181352559117831286955485481436241989426558617593494902278209253984978894374326267599109609621111115285234358241670094575811770967859057669372144196875644259178484808733937663470070311038104700035393147005258331328207940925193623777176586398065424245483301429620469944880474247680001617397699235784413489049948406833969455139549272315071010032595993633338104235701903686200830188996901848971238578747396679579712402057796340597880084181152909489802073369186316712272380633609200827561454731170948764523365654120271041483739706754645221161969801088798148058426886013365432860148922956703661071148797414951445976505602145597660041230197066373677328911605437154647144153316836709966264485070414376671436583409690540811506560930785319984971898593176681698608386761142259799015196547673306424187602046082453152895315050778915798005152998013794708804104616952534468151021633863342234823520619816900274262033778885962631202995792566559062013304553264809804131653656524607308353315847644053491825384942787035009773799652815470407242324324927219161635023946034534405426214739737055866633519388239522647531077172198796033777119049346878881896749770506856983300120351692021740755547415762751622914524659103571790692090024550733548512165750943429269019707139571919189389320841703168998248481093574758792796181346525292105963053949847497741367644909112736753468389960267711329219516981926541970783065409300244642117666790876171410974962018694642354346590888562309416338837569112610366799491056093745816689030233865359794092489602033352605108246617744477930976773229847716865024508543012951055751562182741233459362991788384414555452631033074439237152335506202434402910921877059687894145738307181681478283038486788612901803518127603636378171846711507229702104905458056856364784424895603914955708518506799271355325116057188402276208267247416789407408970991773029507067480126067295383174956276432370056712124563711768973284960802039566047156439359506098679095279682196362893945950041874870162919517295073766334915304059483907421536291388022210170023562478906826687191530085074574528036827831941255050122991237090504467919417162901766470984950933803324448097728096986061027825755450803590140299024384401111410083183425277828124015486045205823944010419709953322762958977861527910656270408165983915823947101786908104181272038656737067969331233774517072798051923650560995706145223177473683488853830072174267937422414193567516551718515074233096943920075524462192472558412077725148003945223617105618449721015995190349051532391705754520112441306202420729854812065894341193162950586601882094496936208391706259341058792956052266382673023544167627748859942750527158855163524505942590967282763205361317103743227032103995207622960858751966229749239164502555968528097505505952293575590817137089940663779102468815431473574454858713080307979053965804317422394405851832654563828077495596519778592355770515747614783427307856384538170788420007661865082325642130512919611687563433772600648902371426091355604914801883773522496454935746122316285441051877587887114306477423468906720618183253501507313920546956529929977847362750208793293197777062504433871493356024732595801934064618676654040454272574206693542196913368310764053903746095709269666642895085896506989758545365343171894897819959364889376914654466328762969206992912563139333812286398342254244034712070539107165830693330407012615925261440474129162676792840974375921906638204421219841068169643427653559292435218947833438299810576992640739585086621417348523874138599642937369520756649124638335417183220450830705869760543114206455425923829082785459946094864079500847183990799241494944730425782612537017482550271909378809461154977141661323020867407415514380094325062612896831256798285723661757795127699096924986592581942852401263346452006613126529284996650638424640967691382182086685459956430849226584011882969257273410845724076860472455796810882030744181902462976882483219752687417481990086316872694732127044491852723798657852509833743453652746263635163345583074613211225820195333158809528431618532779250288426437254077319237534323162435943075012983812993120983709647268347679521485928019097977529495418433562529844008688954186796189641995348163583632380648042995868932654809036429178386020273853347505933323122956900997761461091366220292674528668451441704460072828674269223048309681704375507366474303296387218243449941938937450168351970120457743182779974811655347475293491364825001577814619710529294411052291852773969840538596575375300872570480973494826340085731545945570518593573251908482763845841252594050681974053364403233201650777235879804090532324798460890607443105877012487705478463857908801203783905711489841082267127608186403265506381677593780976413685903226864201915493192451587764176145544274705560134636523869301061354816943045943572101091402816113371761646417789657836841680472784013096968828791586491915438528682878203470105649214599757334941705883358895863492482834343064237901618678553443934726913027659524125884926969578512317866682128871579142864040676123845774109924577581125395289891529451634802867742935413189689156425984702278583782233389089857276214192414306162406761782107940687220827487483717755242958726585365868347121280767534870464133780951886551943698166159975044096119908524247349354828192777583542002661312050864168529328378389121192045841383599288157233681933629231904653976173125453911646515634489045669637544848895002118556939327750535792146477941991457562607053061772781336353311130429751495200977210490929569289130680185125784905098974719096537422677411007423300035191141743371314840349945639828421520643697058378317242412989489920927461229222727804715655532401767425569075385121665768978234816691998126665155997788536596607282427097953537374132240952113825816435348300044266289369915276745370755716004410883042098826537192774719250216650574664018477268590322301778338244215991053206741923666023889157634831173404778584047060146262429564868339477528802451356061874667389892937793540759599989951500689768338957177297521262467916739924609885150190246743916987721264812613435097634731422068007271334367422605204826187165204082239697665822048184950813282632111412509717828074448276193489898262521697360891270437121022275744670860449655638229139859148596051143416560646933522165724950136137596633752975006026454183648601015146618489444396255570260688990550816944036259367912681586712056128464793695940588571195856289644635535553416088586554287193427382914203951350078231294285963407248353194353251563177345705551192160903515543698609622051424380021600826347148802526916773862384445189998790501602575020325816235886478717883374050670986322156351114418005757481881810529849197520932566674987365593496090988191197957847025885285713453499475781105177149099631187424330716361765136616201138025874732139035806426583767651796270544980129503670931366784527130386185011795903177953977673153242919310603304557263716152433497772860632128816721470884834052826724944715921145370730753279391300608400157034439504530161442769917683661888294195939400613909767635982570606593496061102193518768884193246878546680926588270095046746922052344589082453923088893102805244153731777889796669015331846192849103544046257628789767255918272838327432391527361409467451692027815466603358247394228409324946232894426421076226654923348630696742453075425943183069150815602150975788563705345613517906383116344919045452370383164087337655076633758362448994367676317619680287949424180704071599446464355455787268242744898864587255683822545731401337684432688960609809295731342633865997791644687455802191868710009726083746307043422918805434526074060799358565991357156541731399368580004766983095508850472535083298069504812315017553870405389003405105486152960132931092851810548761950479994678498974090802560689365662641384272282554212856031720433461558742228547226460181437387752275881080718644736596662355603016491723372581371893154257685603939319042682081030923498789642254141116801582842966143829095769536776710974695560369257354906727661671670832850272125323345881215380291740160060744069412954851595556743067476664766736658364605856061951042135987588072128072934840298514584045894731443452460263875500484643619089015552368044722780617743238344962876497260110587399281964241871652728326033016489782025871763336444965354642037691922453219963670123176418683884220070773401763492209275861605388847550023139114170241931414198230715227475399418934069914489094080520136123611056435536623994786440054493361323175274810064727017620796173911004599998705603932203419777372640554594812544309758299258231272771043734439180940609951755148514562733139568669777267763935998370054023828591973031141820880051430125991647543468806595671080542779222978772385981897398645521170776375429735548296576469499193213940045650767015413420303927395637521454232379566708732956809638065103513236077392430792108485443936927753609948718361497358917032495006869638810805625163974620166988205767281664941820242985225941771407566067278405870571303435082423985026403002612974354260926521852176198904299327121341158840746855408927688040204385764462195382739440341905942115913032346154474062901938308463316281729190063717096625811715044681375579111327230779789381325863962196520350141912485392784408992163287407612350923375515897563336261313252005852122714662786529855648792544511823712051322164998880478615344981901452694088604501670089980236023133487365366882447956621457512102270969049956990656370405079358595425791675061833067244828763720204942995104980085457042636565944041326788095411255341587477189967452555452929551811351996930308716693195972050155555551811550753668419939938320704793329078533263370594403242354278095201072890841317779504754755405847035283599412726923534080055480697632621457701714407327120599668373175300851941263397720847668168294124764027916392967293891381773075831342257318190386927611015363124961254799474622185172228378963993356742323843652436646374794978721453894314990274737657418505492401163669531062930218671931733316012266001292970083913062067383086532579453201517227434154256051101707547297021454634448608104266860891350907024887860574846143640580129132443526217742652043385026876215271548151354723026903586619600647354079327896308211128921691404891236701956120093884138498286579995620140588510247505167555157944805768861396345621569773883286644090540439594241670653255640293820908615102856444006229779692930632757553404609956203059955825614260389896284932193252743842470503975638860787070739796610386971704030095159414404694759094816006481212865937584680565747967826457177219901222705201336282150746991559112631234870817127053591844342628316667612648588703126299821268557843303299073395364681180549439889149053571558715012779388963866280389093302060993846081401183292098503010218081891814399331316220707383242432339154462285111802735002705164648417191150214678910883470925552049825521127118395402892271663603627051275687474898265891546840627407274877181419425867709925293983381202800260003905989185371417678665477365055211565914242876019635455496155014299738633443205876592572651970785121936238539861932169322401435050099122639737146511999048764886818611689447496581786173740116879176025570076698810519060648684426708855458585620163539189124619505111964560208580323773189881525295465226798287534191937738597405763194734240303579322328169469207916524280755712982399686770993365341495286587383135783825159523953245094382302676028602621208669327454494158788827212200738013216969855732155750384305278022914842645864926967366726620769496784009328641491563536797220273384527268320937162850737249459727022967173184413247352798435233801718367583889469308442970712969410196000769447578385433322873830594140207643893170169622201396104996470462033731988776074157371639884860940354350185220661239927541014306109492562028462778954902240022867874276724946768308759336593392132019437885666009550980988790144952336836558260271437702504460089098681935985609940224096928845735159944469381049832108044280563537439597236799877803840895506697540962515898834907932947993497509595466002042361946736855107977988416782692890614543045080403526823412388801994818120005798784787506466729485625109367308520602739444654893723584162392239530130292568649707993043484193853229186799363309817374913251366870880338620136066816462283457026194489092760089155614614374813703251559215742018418720303976488033077579550025449759486945203591761676498033424934635259659470948029198041752443991828130889473263580998683516358289743079898004737669799806233301631626846964788390566341166015155848542238410404713862800193647504109304107559748435257200436336460776517269315936667352689580549887047376787348569394563731921990313738539643508336066819364090071937418731667639923637613123196958651021320576055374924589150299982903332848170006227607967798724584442429820419635736903731013091024486758582412042889048684042528670651863171749481700439918160695794579090914128825570015336012425205137092669479087310268590836105936543527275412600244270859678516700837448467047236840920846542871303066930207751758787771475837749172246374050779134588451926349882266060484543236610997200859451045994138001341811525214428199209705764356113409185927497412972719667844490385880541789440263692554072082072221031731166196172938585810769039184563700105731483982464930231206815255180905040039377587083108450052243504363952145924268261190501290198435484969175342677091744181662078038940171427422924961052831753921875792834379086768208797927361424042610325314779099051244105321374913239731109234943136617162163485189093473645277028693903159205276710002831740904460315592519583032414417878851317669366893147007225347519678110935613754231654515891543187428037490445046490320464964835850091195829751907228669841430626998299940226732302689716231174436249873483473029818800399250061950765600669414330707113130727069310257827725349323718252339877642426566563500036297213017879110307087473275492002397042695395932758072868298437819770772715762697246811895631820654765154769374196617319802846420626812598480629810426094272631239974234827544149779811512196989151420083411452894892468614426376131900202313037326688962609209418974523337092108908669108433763921255417160154395622799556677429754167408741064935124237307529382628893408118576391512592976208580065424440300346804052853783838931498318657004352288457886262095763239308644950277101006806507268631034354451638865844652190071846686827200130068741205950506206189659386417570275640427374941189844361917606401444594881068266503747663311920252421220341249005607744759803848920809581589171313795903342995202513851319669799785254519509745190970609071241002839397838372458357081568868662102198660564957916091056696581597291192983526600709591288292186995451166933463774433055610543472139736741266126714403160416398054499443809156141589005796506482746588974432834764974167884943584372263251536482487608258061470978715319901959964387715298479688173878317264973687797838388138531219957289007389864830998052255726597877464293356388019362853360676545717176096101272101868251271320526344420650488010764525433620662371481688328390879053753019200587206102151704354466977741661376463176456025034457256953504975028333396375006831301202849725225626271976810925494094353431605918072718217387429962018907875714952300872733751673536886145456739214510161940256304110882935950394567376039914385695441977270411943095673548515403099251952926167193013156289488332230665739825917005707549876587870448673762344135565303705812010930738950163582900254593027613210054972697902924569328837515367216541369581042785687047377065058301933938982640461863009372024126709234070263539684099773050522253574687263408249365810896457861266798471272995778335104158395796374728481007996883353377723361959598825356854348037552332421498202189041647523507801613224605992149364146216395027254644882162193363669067910125327136206515298378769324925048065572823449162395899456144426458416980564875607108188995983712911361482845532810130109302543631047487281935275999923232946134074373368437427248150901999566311337735480974594248821366698482874396180690551451478382589112641479474970137351157025985587813503929788109195062833304916775513946586528089932527630899179937634812067094536516393585245175361564008883583060488887862482597806885516487519062075081897242561294137981994814187305946213704750677233046002381779067278703193368404000827897266564096853717020068201536294273689655344698576416872450862631123068119779722251117544183285154680797434227027965242953738454904072983960056957455958785360524215489242257879633275464864715381118926439477698596184407293874464520778891407267486440394348643011267210511573239384905552098640345532822092963273630538668594749583174838217808283660671702423449319931930693608990053787295930438359988203162583943543994587026397307380288273366792902896261697784603728160174816153325189641647441536860108168811228339192832863975625325696861153786770281308066327285475515263283158965008211160807577666891401673293243015474795737608829326216483135768362962607342096161209688892587990708137704717165793040346791553788417841000648914786391343559322393851466142435402970553596417367444191398601882629942605914703557426262146398559122238086903583284432998614851145475364700397526104652064226020356111931740676909320288119606926158919034829114014391856057967620234322266040461459641478627012656494252173902586158711766591076673832398392913401443832244195709826584882832714893470840688246184460089221653342990041965657798918963790354688289795217483999890913122741225264850365840869817147567049961390613335404393275379172216592990505879188551917545345274907792392155719988235579842587182975553788678977707972281756280705663728313428178877358440784083256342254389264252911800454646812395398443633538286929692198883205818044881804233031225552923809453196319490454952871789267025589482048871653567325034055558449110299600909024956431110085425102834345029306537966220105828197387597695253442968989524003937929824865807368439947722951423519608312437923167163047948764069397432567208846320292067337607916395575147083114955443002022703649668320816419787459605066114986532802803073826205265666517704580373620357823002926463358208061790040403209457914408733664707849044677339470823213845650748456617636272374738635308912601986953946921303696021026332199335100126977148091790370560681204472355264032140959513979006022855912150302830270949094011641437397677854839030004431010230943915125458983884077391409662388164698085159581169220082117595374170436627003345473956743785812181448645907072089247172013475809775015288246294064205423600481130658995646936652509190127866053554329845516146926796300754819130257694231084416204491879923320589398594768154855719727756667246156054303323263954417010366224213033874798628682258432466758421916366607329122626734397778727326056389109103685549285620784234153606884876133981820153266740639516690197016726176011876715882576842412816572999901861302707067186264451429726120643429954974158098923363988569249378246241648422065924993640994088575585275732394874094447876517605548360982585459161156347853581521797737779929028340888154073593747221600865204781304764576612011310588624191526922445291810703790264960216507891818521151261450241615046334552976320895302986432265956714603193669253616237580498814391864395421670319440172403741731685011959905819363064705505068646019876443050656778492322895102209002048933083867280365530566275186642204771640031507773801341184192125742627589562145082061627446302189540919181963965616929622642905634137692376802362084875140827849773241096369454709940518808692923335893153500413725077003114701471460266654401763259452300994125936535146326739601601484597847548103379796182641649681736274776451759101809383020383041443389459392637132200705129954646097397898925942422914887145923086551959458905482912101169065848374226196869487036767219306849653879740031010450632759363731774885870047710536197827702858994610354285058872783968408702720946410082413689256508403966022511393371790725996048720441579929689093385394163202060154123227856902664232338577214346670830118076324890595866923865412983987286676691624497159609593630753336007623948140756627588863337222526214653561665664837336731071030672274860838336663763040228297373606310140841575402630856588334892546359652796226640546068492936351108989388354815055372367911480201959277215367149580068631834056980526785908838976647442344254937234176445006767441937953430775873589720387778411659383985560717166696380849125401052023072799831697434439083241318182884623186239659609966476306212201257461335961104344438904651113518094078298997746029641817956636879973323149593909318568768199806479505687304284496438242605523462460670625405679107254939570264362984040945481556540497506083186797671545813063748751980166010670914602822336147471471906986923413011217102601006878361411678332388571931567839432521549213069573811291870401482171364610736556961465302228533077785186812360470848821754066059142440690413622623542451621359014588947964521018380854595789808961034885824386724423019581087301516346099855185976281680117007952747421929235404929478022704930273019558280034994583157940373344186605173137473719403173609079739304277490090894325448849630253133141873562015445291591029840970464818068088899284369442033243989114473535240304980722316605326782604227350347824729654776407891604445572707382961157958148082352795076322297979013072960120382650140999609518930696401307368489588621535993381129762507015151098671871989381699755595017164572365035025706640773748135081093746414402554317117212515236965665667370253479607389621339155618123105370008732001905200637137442642034177040548959769081084506932787744531676295994915488102698722431583368321134109802771863870902945406372574363901642359210011921022599194640535952412607501538358065360026430399350164493939560096456261530006434718871116059063371459237638767637091171323977089475628462776153275702266118119457822939301269407583305826138090602615205787464930871922972884823432959661791773550297714469887834506017287807129653476174579641563567690383069657693804522550580336991978402855066574401810369282839246000526706040092675001214857807566977718411231581388108146879687338067503408706386801683207066275001680106586021723297532548514229786732156618773545123539465274314450264351669331207664001401349885402793978011863716243945747319132030944357788606935645789916534679098924666092864838972972104186559777797070512741622134862891577503485260935496654180831458174476680850340735758346048400689496391163291064641142705854970887171355580197917536979550933458162587304798222671796025451170984522443179398489945858256291896716794791878634303395290275805311010735248901914257644219114496460648893156634194665826383287527414193903509869803648886464222883101271968519070609347850137671533676077342668044411222215131508479772599264638371102166794401036804941059226777388491413551416353283594622208594554977831048465129390535309280010121246861978264569238025574751549113972825588623636850821456920792508436562497789229210393781344671299211934515784602529635036619381378571645067133578474789759995595856769005391430139837507738758302372856490219916080559463389224629423097813584164174409524967906892919713593743920942800975939495987965200526869841858675312461695814845142662822854906467463854323621382036399835932063747435714091774202922381557515477287523570458310188310335672407273795141086619876330685953041704815081871962872485424708855589333009941000685863258536217493824989233192727692934577423515687588982857259810515974744690061052175473936931143254504802007313647502073224596623012190091243084758702956670662224228466039640715387291793825941722035716192470580768004872119167368933296062824951338178850409083397036026373575274699620325232813924000132244070798796964809537313508679161498609080031403038844583494698070577508210707979972109858069948818668582443649120789108060063054406583042686770544522595618510428521291479804328917163731116701005089981636183913645930949954761368398135303388296397131367146707837518705611502689102485022874736846959306283930673842992914661693420355075100749950017369538637186324842275425757174562678386710930085521077845016838073663157514188946554386179259861723251415332792000473927006624380394919550517039496460185729083496988390407367119649972623665051188414082720472425707874071768317412439458609306511587230081132972361442661343349112980024602990511467415489242506152671609645787441460801768281605995420262499209356751262206898558237138448776016950369341852542007279975904245132551939636683000608359833575454884539282329045601506566788146579292669673289199803946734932935783982735670368865336875808503415595269170601218268316512978152826546910165947153025908050768519657232525790180053818524881996526467603373874415702512787736262943262642772994640651071422001747082779990777931978604265261096310074852103955567634455262181276235502839805394156034778821708773403171267172118019434349996813218159282303615588018532945649747360780672556517489962405483382561641290474205818828356421736939512784984393522317633754267807919186665205157973210391814497247700821989611403319292269557544171740867106275939006145256960689863054428556817336903904221213654265464788538761915940515450933064292356028236299814423236192014269091227183667724097023953452007082447043935171272860089589257490640193076187529201062008545175263003056335933516787139848407523507469519262422229572429394060120264213596738539866434016321461807020994643275355896819497374745843773846778640479039810962518354523706978301282450051356916747110512166079953490200849414243003613586962747469879881377716693972518877275303629235570671290537134390894044978813019138360839200228375672160942275983985661127076945771410160055675992238745586647940889941204980162769846230488794587938768388746887640268917229647343033388566865976206024198548104659730510927520906169157660171961939957215524523116831873734675931308384719706071585542926307718169235651823603050795384914227406805678139910545897039238366642908184106963355629127645798433635187984357050966476095381712577012870726376659610057981003993812850954892655506035285201533943239849286979084849030286038466844139298474656502913772722047645470043691387684376621971927554109580379476785914082232232353895347556212299814308702329915678328760607838570178939511778004716661700468744505232779542598393736119116832753764094124496638779059700065690738692296999432074446076648426390225315353159068552307514080105614010666758624868874854524599068646640302327681486900102561371093748530641886137083918437490140674245954036326452801781538589139958310541192210621838043375316727628683850197731292093155092502707187338872363168320262309689909085134956467803540331673270149593832216698521989465400130005512737171324644165718156208992365720628278780082031042770192186851706397307378006568976679423450206677097307448655285981696594651637556492674137995960562345250591381857321389055611902290200243889366502292476848360309386851471653732855408495516782043080238449343607806655832099688605239693474004656638537202773759971929415856060595043351192088337970330553701913643253139003425427698255692742342973084047114879016565973138373224925805194660751350329941388624008355001790105350428422291266601104650977875876058115454160799568549700791669990879478892656539768985716874950777614841685797733371520989194200338976880591205244814319932184427850111335366479652877605959300774951402675273823675812462835940597873807779536846521511901858842460521797613851589549432387353444154734142080203022608042924118333579208373892078687816185268931889509671755422872583457402032442863442922884323383936238523969151320774698701079156713591734647621946434411655492931349213189753275932766956612331769842139804128996809110038392421872537745586980043115864323354305826752898419416844714719987356144793284058866725206993141123051078690727213922656227602826369353489622309085021576788276080848124521078144726554150465839873384593869225307078598766396829631951956505123131819525955636857516683200136715655928312987652011629250359829426188406133209594018474945356795414637739137195690439768182366016317657370770121686987957596299339799791096443805049421659659027844421736577554720909442698022864223378440775825910242110839573342636855956055052180592298135692262583065642484152148850667948016196823340454889152336151874243508017427409801662347472948571377066899490400152044686391443621391559677579767792204829223673219826045038727492859171336292238919606894326789430771874954743453831406092641990397653122276441830945272380465644534882887916771230779687431806160026964064858170179144951130404870278735714308296284706698624482174704098068950058696756954170418502368942572704324740283723723609002876970451756650641863152209128815573252379553250300314103459058968173541854157619383048806725658444261604910743193594762918240940607681112303207470466893870172352291771721891898058650996502599634813626357137919386802850530403491767891874271531813647609024012196293729990363930461461081407524258979214520058446719477804941266550991496767932218668487600970856846567381604469967202843643258446698042091499388734771887551509919540640757222156080969373223090074893995959233613199338510442031484974118915390634291359304404996905154823068752747201043448739428871632494769407591713823351607225183719416508484898444782613646734083807708947825506730965460916378443429956116719023356649049291351778872531798403662137767673864312641529304143794825534164976239763445721688428341504226645850660786396346078255625013752791379948692166611172080400211025348651849828395297038510308035308234002881292305613900841191764826234365603140130443110735930968914407293114762211385605592574829149028552025502277697415991462000671077999066793899956429327847290928316213043435933507562305442297513345334591928214406854496258588828069742017513725439279619647582881991024324448661571483978385718303663734036748003330743527585681557904795727527189857805910002411862863277863904885001636149580462231056370755644439476898852980574460579509571797722420172643693639403276793141989194474795544232264132837260099943789256749128443934676296468892070813483278745168470120493815315617672562801089842747371043733304358761147337135547704682868821354745230120350286228989486755755273331502165493153742771608077046530498356094316251069167857155194893255176873296974296091769720441091519602690726392883670676339604086969619635461378833957276447030773674007310168081227828572330809692592970589009821006565480557579836214002962478812940111706454092977532269872781228239989118184743142700685488251589659165406323635019065505559211480340018025010317465273368465592717708296429456048995477519291161071254041899365628561931889528435736524963114789046624542626895975941914175646156987512278092612591747970837991763948473521805043624130863551639610167366777303610278117343940359495719221985903501561309267995734338338012244170857438188145025103381320146994051135395752334839012348459778434001003416526195887328932924253500419805466706717000877693892411510939610502441119768971302050285687162339412576040276482585034609632476007974933468242407255842380319159174516883348092770674584224830644353563954339048578852181468214319087177676575295219820995746421168864135081650793690951175507615243368307893978289544252441070042762456219125670859878584591065497733327378176379349167507743485409151703301130724327737506516198423886137076713143595980525960991811833827083719010486056908095430136045870103184321102655436253554550421480845194307601250766016389141837866560894452358757763310579933419043734720661639106002828162181468325703755956608398301056763105204962670138680279980562279462449160373634087979097273010566817219285700315221373909078520374278246113660097555970865832592835578391852927011423087242645320113793006463108558882323477979926214101254910552357823704415392601900801153418329732441357880822771743792866174837951219294640621135909900028394448639741194849485870380429822731094330590034662369435908303464457259997332385556058701382378297970178450988323594559190165240406094764601079700921574628875408820543992687821198462649041997959046620760925868303085203403561671365998621890230444205491655651988733096894388377220944869447976221037866157811404981350537705706872675715158855551682750963127760813886493814815974685734523563763328485251412847148126768076362792014304583833990243410311719854990580159538881599580148654905667535262596916102140138750192594964931061250677265288794548110271574134792321231773860350434245640573754172084459764789414197214620067830820102572121619693022215393562799522922701376547009836567225276319482436113022758469719121573530189173311573619865546724890888083170128306407407370269819865475825161396334870740635475232784695489364030852719566322302519023842650242109932187219387984526748098315391114095459750643919468119168707462290313941830570601877337002660786253896159169733643275954771432289432240340250973405694709325944714834306832289213265858972942783743049264296924719650500764996068878393436823567451696462841892005203301138187877208094232456310736970473722169505990020796241069084514218648541099809097925915731549027791621653513137888259082434732927302810547194202605388505817769257429264984494254328831485171793144192064688844415052665978384245385197151728546771794123620938789880187764560382870414151478204586501611070902287218679931136042569406605089234217149038334330069822959309797008126093294262097078225267418707144715256582348631297000131335357886213482645969552257437091038409518913121254609783574944790366795627796347985651289536094513642409372980938796018009231460268266589130715720458166870388094767208227060250274673089052480958119108932584962492238993938276783696215398291338682696869962754057613400417065082900513835568824617792433566940012221957272464951631310374136221287105383273184688049534838518462010069667790284690004228271848481473839890796567803595923528893226622505785444626803197272518743094122719223538993437951352783479794045058999480343745064319084359549610943706383414865126392868242394904752794947492265711978538276588967105850133092610898590145957745905870270111376511002722511550960144088641964091536410799877349790670017492200970424849564123155048947640774984570753201822024431197595553556847463706064518459694995400421876826293442598317966976101775123055003014582962378795779038258075258263227697482676277430711333969644781261302782594629783982782795390685293540211333428578271991544976930259611075892347078138762034558540364911745793450909950949489112911428906577551145483276764654084005614937822567627497278304027405787100573657905013119640576278758530754303619794856412743363322314939518980456644265247443960414728527672941659934589613923920039524893020399495452753409905091134786518798819606138253593301178391788147417233779956492198404491998993321756259216544770125334030903356402846523365529185328929449251960611303611037596044443663295816570841904044177159692067715004683838514092859475595290894133429135045458241100830917429139831757443860139588249962806783340386339144842121625134549147290742183584014032530278941195734844634245621187161289111624548603561161462216239775346828913035921471472177665544969945086199047972380596016983517620929721067805045799358335623958969914827489066641146833161636669094455815063308991122325972618619395123907885450007566743621019168453015185572391204222962850566732575842488740592491070842869992054564703687951905213506236574628656765227522349012327511419736133725807958442650235112676831414701281391578813928106507901373348702105849736792615154244050752813959240555466760796345548758263610613448107446970167894922085579528453172186630794357182640754326712291349017146193001150103835397234420310713360011543718987989074024875607342849742467981722146787616559664357371109649220782656875022596609284378442167961474191088659811479653810644450366700299598479513943826457377282207065332567566980407788765635297161856935093517912923223929860957074665575182704140204524526506029150996730745597793752587173927553537990063122229367094034171049055847990583630525646774451988538489555194089356931740753567601693355734497070883824119264857805736406835458173092997559128162746861124468321020097853316865953445606997388513348506291857391375815676875557270967260971569912329385120119629422636969540732961730578945453341496562676066341957809863199786444712226846837378281164059634457890903732684586048894281753155268448492350148443658300790245242220310360095028963131134650843194990106647730813546846884711512092792556329941159037233191557114405720619713637541448645745305107945753468600180097578578824270519190492266632142812201323553909500635302088891244630947439758896716127430516722289545630963305404293699972857031422025896410953413265374326773509745147892100073883489867832260662787875621923595054684408994432995611280336797933511780037756754982333065644834037519319648974818119436741457653193528849426236093799223554794232642540733907524172540769503861267543456926078232889257239600068418639945317768539344167603825038473306086881736789640590864437377069900987972882763121532666217750658459153185796051391911774451653226112015432843893513243380411371922796370394506893298056734714741799529025503411788828994713041603821668286472505059042719119576585991824704439017970119941152758227617936382934150625086765354745603210843198341359543225427565153737154210935749660400376375168885034126575762912992693249688402736026205310061965586405947640637699940981584939521661199215866070330496874822943567590578129264788683349282532593430157855427965831759194816701969230971109617680690319014853074989507050262273024472924430829254520773897270314904548608100344050432893349147724910693727011152785457312665783682051549260618452021887092329708450048730747574525044377652408834475362997848718997188450061496229716627220930623979842288769394646768324091313901539612686788609473784422365509494917629721385046363711982266337814241653659564672899055251591575073030634317974549043515325256606967244733950742290653562632917229011949469276157991119775924935394232540064995804292497394730528091267052802988624292609081462916869062375397816495966590907373932773467169501294831001807153886906685905496701756361629432373070220809897478806825627360502094887054081112436416409869870091822474943555073077747825789026629563732785038188624980299123992379570317586977287325221593266430555656699661518084291535218736872559036810946902765949812119033597892863181400571504485587648531997017628941378736477408344378408935386126912397853604903036097001578767584146161312835679714049281602648909649083193341602260762372897048537658010685418981921804808711139145533044265025219041943443916378214027077197450298429893444531990795182521302130281332943975856598693308706015368049213558288493413494664135748501117750110610944743824293717924091707730946209216833149273845269053016030108164502434141799305444142602707494466791782523022707709198620337760601265770361120129920663957098911964904309661740225240039058662685742126261651637961008658598373785191982983480835408664707562995079143979949873268598175022141284399539718097665479794391966676242194473008780949292277333365360430081051813926154620457553739667202950772894364869530741309898525215127104210378084105209309581420688041170476241587317939780552195223146903374601428613368941489388739903009813525259626544868245559329097693622712329608561948640237731612702294443709719471515374853262786991537617937438331427156556655678091983556820330503630660666206266154931761396568167695355066364391334849725528582395941847161146288224779725723036203626756960969051103303314152596257054485865086652985445187534409030082715990896041739976766987574673594221679340433536710048108117628662819818320072703605062808700866620906008968364357993422511300749417878107578735138151835142877161392288010059170920730741199591728470692582873518195685251432997940863534660315308667070762770285656709988555667970144995258471087613748003479115273728423805489331837338143843034407407239221968749356606941821504298052438806299685788489161778867717688150104923140598857450693465354897448641596600563415438045507500490485894845764314949408613655456621244413529924519325094228714163491786280486232596505102233592718083033221355294872987013054402396008241700376509798046165155703034245835523181838736634459394771964689578740447333858710763118884588089576266475519425711430179514580136080578236751246680308135525796099781799794357498229177102215898672916110065082669599525908123979959680103286585458268341876316147382801093699735949414914528449160880621611172401353987005374093335375876419766233195528130897647861699183315615832888635619597873125166069207156495168531723209978275105043156079812709441747236257661190947287378980204223934558657941955971092209877240708867545926618772500027733981381234909905583751607500304310927480127259858089370566535188640539062370182659699663739211909850015595878932672408997709653009410768766863450852112059711147976832449673025225580880525280409025724411857393972553990462901155931787309313632943136167337381738588117918784102296992310172404542092379825920535170478073374582845143992435458605026781085841609307733242325152696725058489524849242301243041951189568026950655791628678605022249434517717474221515660645944849284454997774106561490593999836124214521234497094822357813967043682324826810692372747018235762226325438801233058161144053376211518697286353948268549709293337437426515361298429602227094119495243072584514917358092737527691120293534273423062463884548723558681976849399567970516323635810746578929024346204411123059397317607507025329394354015385831674762553176004622004190176613581313701677241404053558104712145876874908734888845521748321408452526164908269552374271541256379208477269468207113284421694616919420356408321608382433162884920678284208283420675142395163609284597597020993553045945655788415749973755480876114953336121801585858061598231672751065011224148175238051969452625290189157407575225395937119959365746583156511955795339144868363096001736509196687389655752729972777545354365008676129003171543001529162167127279800376212126179959850282715663582140583853221535000285399678243170971228397674317415458663504452470918928774911384844113525621977174061974502663915774370838500073810253770362961976843606529210125962936529495482618785536155353203291594966765101553866044127936250243636049229705987666681813880622094976894075520360582644577046462341916550034840452470948381361335408842424020073596960061316031810680517602152763830800610758301072008910062859428031957915814268934155034729766146200134312688948387006636942795662556775961839272074943857985631339132849969483665816693867564646685672561646648779809234137273548610372819714310555008350261295856720242394103692269013294275818239671289009811480598396187098554837418906729856754457879004876684151501315384729571664139937499317615507140537448131450624867520288462720871135351618990092852317569965076907990192151206231506545885203245104057094217063704601896389812053729784474825456822647515378263540986879214604727754472647967342026543647962914997364287686528728210187056759568012854261509994479571029942844281745403949696390137374052949074299530773368887262712431696898544586290319051697792570212880248414196134196453982483194737432216956944422095088696782305994242041257915710276149108964472707970335051930240351584197600459196994030300896308639424105812446806117497809143458893721928625265760006842108254108237244781485769108949554134596392806512194830816246142946479092768235919226412538775347205562349664264514382958806499856998821916964025589115970051926095067458104094430559343590175423440857637486952395001803134250279868498079063464764610820259819368953631402138682194547214164142189807325101243500618663282221035710711172758666513012011902796970647503577833060427116063826328482999573586179391639620101052428226061750923383129864366706878184004529995828011789106354798904550463931216010055066135861347134235630807076136879338418138961993437450078870095562509977336445203509373460516363539906791534838030042499325727949065432437160949936090518045832033106336744326956958089941353607083613255230660292085913715185545947298412150531222339039208861496971685558789361125946866021052173754550904660223232584212355006890262998864687615032673769787028779005481908664206758102127344025335598429941956408487888493090479955817421526511242441457936650214094692347121917761929146158700741695594422098427652316707388850193447107669945732994049024067814785623728641060895822677458150926169275038191967844855023393605310113893721225907517888311411514643386692074727752877885614640314696109663506055162601882744158107895215677706268261715154163942149496824114396284576716992344148825088922906452272123900382863471045778518203376415491160497775971127268946354848716871870453291587785851428370158478527655652285546657099441772435701914029778340958769390759728638454531932231550167444577732333168376973134174168050197079518859707600260924821957448511328856178871040933245805548199004628734489668626397196192514150152186058627854014923849808831874390505654837639685259026256705597840569852679760801633625713020422902378445201981913484505646057046428472388824347548569185756979786191001433449410060579325361658642477481618080826059540624887410904395490225581622781308042297608628551239540409117858769837976973426119630841175632875896478103789386034815194891795674456514780160480460850581304978509239901430310945565567196883332628157220790656894346037390024250153296670444776115254647260187772025165375250925660959472001579773463921274919352845606085591211769509207689688011118014923118813426755204315405514232674351202880919149979947919927743656753616611300065199586936544684907027403011959207762849092899834035852009650514634283855953504328259792219605708169160769545250967258315611823331249651419430116523583064640686270477314325082031589552557026872785854527709176246888719862664964154687365418835914407454247849664523228654213254639150884160373973668387763725658246335811123339852603543681791746096232001966727050308192159237659760627134968320007738963784415770890323627333247219417927391648726536130063774737222472060683634949264048120197894854122382616753079487734514558411126371190708105292577114287916051852969793476004434790610926483376179893241641832640226205493514058816565654377379061014674219366470203942369278931257514734390663218217565340987745387951706053081948865401658385764186055114818951970736276476980115212716904534119252405117197404186257598630463787892692670643269916732353521518650463277654107805013885124867267069399921340976472730844162675187132257259755532779371850178432624281129808950237593626511786280312720093397376503200652072768513060724608721906966569787328427197762455812198947331805633550983336138766067876334391397172783148579938534562809149045110996841510824708296922181943742143771660477648291473877788008683635113792223198501370873623274004363966495389794720272097605963355955714389610914753002981962844193152419893970532612811165434189565831092657093177532196486532373438376132571508233099864324893972649189888225880652534988073335187008353043026576043525441763864602375254165498182036747843773880097423481341142918024653946810294113987714785549956049176169252721517171134843875577848726329945268496996183347706609342975005554048053752589633394664567760420938082350899193696695076488289717916519375328243495386685378614417278272094149599567277641147421988627026314055481015141617969177568739511191110328811033724171412558155625436338180178856600891444775222096163832729587847910922412829565977057318697905287443595697574595035729014842719375182077833809967603143158460698773072729864055763884037319083544170180252650050412935333770994506602647107109788458496277933170556409034234773718979785390268320180280006815353032428108244847697935243328681264129587991976024360898082105099704689899941717351067112973897593483684383989550973114085246055612727728220882515433575959401529729395756729959453634896025437406344975351116540882578621708790475618964336832980669444785626757688133844774174951755021021880967942361715942587037975042978543649850372410557972810375677947708423460911843422153384714087066279512798617731300047937638154581644671874297372625107696776197315225426782534574671811853766959593944351413448859712088008240368166091481786945542681405163253539874460169248641936203336766319385114842740123971614718784999669243437618493270573337664952931520889311665940987363546667210036233457917325619379411617527217991059592581090589345776754945656191339652060024502406255012879174777371660530753894964329219668746690061833915406009434153464370403677403212480456316933786851887158919179893224433028150400271797054263118371913322605131460907255081498601927301093083697575037748145008311948041080920366998086367521865440570860557685177896917782731060982972242063271811323303767950660316195712375153390742236974462510295583100064344034322253626101612187476596992332512047564438660656357799302626743882574102856908575487000191172998218382392640312183323986914174314966543853103566582596053896607029896102324887423318541334273837682999972134191912843149482361457498227910095581511323614042880578568889660256008646352287206702546334366079036867634451060046879291212003145141815037138280325906306280422663668825668040307058087479222191432264529455772497282910555217357475623411744087754720546764871992903058623232008360014922345831341004935544257093370828025383706599819742967507216935779314440184089258851076940298574067201975113381247117869819969245892279601762942904490918751442409655797703540676755309292532645419571630804049358981359469479415870546777064471382158790091412529961074054726248229956056855764517219631434277770670138356224924978294867719799081908972699925440038926003434718202123270588520483877752212674554143083605905702987743743294556674243481270756900199585895311627319813497329138083044549545272171933318127167209904715886922382950831073923064907180613038505900830112357649249805646754478425491025798061958934842463129444736507075667719418942998813448526152013950887974692667683752215417679153951602642184638808368560314760369179134894854476458404914750611303833365937989380023257865538504184621421308645975752940200515471830089215801014534227870811890609460516031156264650728607597509254120772521793711431186823563592711833446490009350267047690075216816736325987959425691544993405444557752071178708164352357752881075917442395598242264628143469368362178795315198176691492244183374085771013845381747161803545199556216272395589445338681974153132311078018550932092182027622572432872745388377478792006126896526603150804198430150416899913985373702390527010125740790840361569452915996781497350120336268063473976169341888852811468304977684365659825887485083770673923094031004552458512189479564725527133639486821631533121775750876342571631828534914067330109722760024267006504958207562443042386532179587789029758001264149717132828446913318671482395949999542267953441989493520409365864572577681550056505812688173320191866839021776728751724197312577330194244616054425584714970105607676806281042132653750190587168151983157821738409136677260428294911414716814947297515794964895071062190367531633273666530756063469118253538398375899685712104661884866621241807136062214820278159203834618899242916957733228247998058587408405524690969142023860238930409939463131045212342778091162751612177586912360520307216130239474637547601745057233112633402015077841871098580677902663847742749905141578111152155046042038658733139155103636708132086078506461472195884445190485146012111222564213191643154453819879253939805520062809972560196404869926148768107031570866157319628966654232695859753803400917518919727492281560219382334119306932751434354663560186527430643444974035512648512474214199208542842343063618728539806588359374900642518009151585630643199169147692565665990904001592724809307089013199104470587117325840836577164188334004649167887362011545801472272030298949490620598514689140388803257811210839057132854590633742651363177377287605830829629324648493870396248851362056816802665233228335075093577204996935794534267465314273946128936774786009807189828108191372959374769329786993259748900505696080429593232559207760892269429237650953525358505728144177806055465538675014978234108516342471708200560035006640191595670363736952966094221988373604170260771248552216763957826660594738472842618007641602720091292427677915251823662700294290427223361585011819623368048772469372359401309435243661970239401249731761381254300233214527670120387578437233504427595216072988597324185257170790333144205210383811965501479783721767100358165933267184019628269464646843519669336341723800958297757126550215432777543534772968279474636178231502102549036231891634571794591631386187113754297166351242636608270185317680113989141648081290808651384214136161749038506825121672390802116239507562014026315778735922339424686688319948097447773044185918942213238145397086929087490385192812437503286826764140679761300204288584204473734289843657605144970086137539184516068305379446298709759380840605605238684143300771983436012096493288901940608438856822524274275878152041156417501714476218420971472518058592895583851911787347015699397086355879025290980572784411903739073267928045377209118678571398376395818033636363070244745292223292843960441640530333739672334046800055446445303007799015993061454985406945645778842043324258065690372265088322523722865591666326909602607230070956306226970902482948825710568687621169589407708088130514931653683214712859549032076369195758042019449739960568358333273727493664978123824988228074835438567402386578828908693892895946037119868058838985072385166112860236596658166593249194842912688371735287495225072595804120578489607801788002597924919481844646557878329419723506564549882568445450753944699813151598341234780176584409763300448529443996582172299414624184481420249027567414012039609463072979843858590044311487472336669247369081954915840486371632166704485638580921459777736165613326080265648877330185982404236180320054365575059145175801523368733264134022712425208261702280599308551200240426845503293862733543392038170264310404615534410693993940644052136357957435733354802335332480898020291073788831136081959939320745932596237509735676410990757611168338891761971528174447507476994273245964676392982913703450993618626071309455471747040527611246594487166366570949337592175830156911189569457452850193203123995579314590226687803705391101719095617886132313707879932517357206725022609413722708491472269165107374521794889367968499587353743053089207634353090414517319628058519350476835426297141780227860828992233286880273353179797087136393134554660349860472791609505126261802279065338344378072253409852613953538153437727946339506151907567438526096096585468337708076736799200598176705175709922696658833014301280444404160109702002244401078134388917182840601534712519139754603148054115483577750892764974400983431189073880126550770646484804636203099874297429219167993478989615449188800402396853552573623844425852640082612253345288544886054944381941855290474533432749021164915875840803457985004796808623833085756759236058527402158837873173788922148113326001406297216376239882385515256953801281583579922938394802589264662419230609542038765790467158640458918961875729686570281712650255033876809247769482649550497506937750310299059730957713063485034452471858714339227583395378459404710976782333406606242223278940578767904450081360069404286172613275422570469126075331582886973548218901138486131411851425154293715473364050705810897155722363884907451956528397487006972494625425369815592447844741566245826072895695532905073604795143787876431906669451368285597495493472785318680269621726526187316901854124959876739860770884337443579453440898564291202610069276021042701590635767471891042861428296397122485399121683137419782674273991961549349707069850665666545875152024126800798022629361444064954729036333141719913988351450276428512744203933447335417580331937755828923037737943747836024123276897589808345310799738684520959479673509827808554589826203989072002256225978083483959687787948715909599103755064205692771899621116057190005156941901075970444325302969679423850085063296691409947159790997673904537717395620877908270123172476071766978991249640050186668808023993375567948699897218220361017049563948680939572418262293391489747034244010101690506856955280981921379787612468119435879529820599636947907303149020364806317310853420204742550429525941869474140850608180552964979952924546707234442610502929464004679115615802531631741250445281253089343747132554601556745818250554532869622489907627619759890300087874153864589856193148724244283887857820202616647226369534132201332708397003626486212300577979078447725892847792013703084308111875482351904231124854189433388629848631588957516033743451234247515507769629334642802714648995821773051778406488558570231198432489968932905479063393070829180965938371889949591313667900315573751818897366303988811030896538971076435121968001667652906026851114945575213526602850025125892034263469921700225637238982116184194395796205809017801764571508923730645241524288887120026594545819841932744437702334855022622760592867630731584156483555351024094789866397205187703510941573482410150013553724511923850673545631909612079422226511095995997234712696326035668457764829609542629679038248263502894390728034108351451227403774981824165156909749109775844531250025423062835233566707046664919839596025444536453089023969534643688262490209281296853619780691981125506506740834042983603591194315813949621578037024361451986406852198831380114977435071761142365849529480352135402177225881637320212025466266874921360157544396954814609352849079324597223710553157112336252674976345403397369324280591348225182721052634721501426091961131053117344604800667713640831844152192546451619615381578728196391854906734173505465351432533435710003677463824338792143652360680045943722661884847239238003324400811423769484522208318684463824805651625135191042511189004804464164960386138037671011553010841338024102543875197756646789973314867253655668241660556425451729599035481652787750465699957393269633772428658952223290114718292056208236148500424565367079820780800217834466663958228861022135267134062129893098098774731751688566189506756658171184077041949187381024230076775293322290707777342854609079300867729658915838041913514943739705976573130945212449097859445501153925676988021203878819385610107285846305489739009723681830828062009439920852424384909505025457125059310858234570197033828442050035405806615521932039445498842491660498380880516815401652628572612209924037414205854430111323564363354492108215873493839200724218026498530252134051055671031157740836204506670312333806784421204049577415423904058153094695539857313867007601153803277434781744139530039540147857647736829048949246553163813171628791557446973902669414710966936361845586852815539952536000499594994329294895376735933556857318295864417511614434124616224298399518809035982668777631065920307554623867006040534902825115423777202303554056760382412465719406919935826720363585367142752030519746117977944043093252275504308402043275943407155831564122386643236173500181646399862112002642473048967162572482627714474354050606132495109949250618598880164876403138397766987595918148936277160644902499892763347319792952484048464748036228976064107033152000229352284754988557223600822988673656267159598214861174582957451744367035318661522447385244871395638352395206162922321742459096275570788647915375222843266498618224306060027595970843592120856083299614634417897562287466608467876337859207254407550953259450769107744671706116542132443744642411814270277295174612295978893350012052772457690052529102482169659909247151371592367204273017239393791399688473325280122817781529622101472922064227097771750288403286159772018111081649999691582099723534864447170222682342601167165388388607395612840506040323033976745510428552444195006921942435282377692418790931901077702679027219408588315925863564746414822179302721167441966156003860565315233652748018410317437491743802814735425084162455423788325680391813468940187053121615186130895193599014478319228789399559892090192029796364705819300571462503027238904880953859159035213684061480492147505055175018315072401536166864857496048147567686659074477686427255948336989195187593495145731001216167123514667251773767264702762533467934061493738777564419725201150455300411949546220244478437088136125647324125884269878481226997072613570355015422575340163855010043332632102607978990254579204577980681796296857554949635338510110778573414793972360626192009707376852381086965598341642931343739228356782229311813372296503421848356510213925204266753850391346418378150659974539745120910791477045854282194969372948706176445540619916912066145990694539622705039089501663503200010900399899976571707293216024513574059112888253324993888476352516515687005083908597106800431171455663326188310430008051712125409464649870867352636783534600630976483858766128530921654131305631606036963166537833714216658590899460986561779494743978463116469777894464938425428381994461400994267075161573551749381798352865098071121432084920032030060987739668665195419931601194358558170608060501539897594373333636938717376957801025722348667965637196008388957421030224723635473494183181338244070066466198915490646347026325992745590230482471521394127940983749853531837968944318396001174272639638351776970107323090765050211212069851806635252774751199143554667269334692023443195143104118661814845261568475691553463455286324208304343532219839293882205417142061356587605832177519339057177323101786096268416372374171474737491434776909262036989650312763050236136816745819347712287845829793038397018040029139073615589218732562160211012634418730062815476814816372515870172882038403033379133238380661192154859485551533818185288353617083923640982576141240090902752246170128168888816120813847468427616344843322352535136481641628834308278246202817372701756211345352725376541937429519869527505753625802701492241542182530628628937446769648939000163074075543155794066693188900213159630936144065671175135998048515095348007556780608189976045935055973891567134015038664000786031043609032141662409134026187029872205730518307160800033228898578989764259193856269996194322937626705695065283053518048464122856456313876166564052915283422287335603546569882161243824082151658094512520349299054573388262835744708317324124986155869784218608130501021761698626049588052415707111228345172766883200575248099822442738266437242712393801580772623758642911069287145342455252488057793199640275038936807434625878256223316324772259490667820190057146265177611391244709429734385346157071376306676227841536202799492914668126956228827475111888605690472326872628138294612380986812662559467896796841590071882896135466527244551626577644698241995818754206036701908686531295928463263994240530018688214347706132100855687975954143800251514897258376604536299747212501963778917207894636188898474497205113219130881537236479313001095169177061744355950246142224242989550145589574273812436394002083763110300279302744400700755067468674927104371843972964109832051372414110021364543674383227317562771619511827433402881695154837843033876812116303784292895676140543355724722343412573897384312044335538393180968587300543016240425033989652598313411146581860805182255151945955746560420148560067368953149810194722616126837766379781165657324838447656719943516007110649234228259537363144421145399353128045383503604488294218053771555547720189279081631848029869737993616057410356541683711819150689134776150345624416940274324111242462828144118714315958718066690980062971854914030463713567903353360045204099599621843685554696204399476262739162003585208823230607769161909481890824087276674232272196091442779657003545187668256849837953603452731137562532044236337767700571840370447071910198133545797907122782977835925291222025950670635605020590000061948620351076837332616117742966221928709478611460613091055442357393353213651695106156959225578293369085990594358300165523152482990307404573590639350357407994354476904554970380278367564889752254712174339199136463501411126444514896705493208756529266434191759329633255940475823233935194066516617823671579874540955039412827558114619212031373337007344333338753181009028100619686491800793852717526038962577794447284511532575005690124347006632987358649097936596833215491944291287186581566865135269625714519605394548370188439098945720035873964155202017595851178724189948273279729987887969400633581897229281129041796090320760545233602718826687826593377691842461907159260536821995172482124185176705959311902175757111058610390773284586659100226850445597087729862789060624452454604614588355542276686917172647544991032715114762795878912064865121763587760567203033742404988987262742119448577984613030902795615854570408922160043823974063240957099877489102306246378080024680589305351971025898281145769321560761245735661435847008595619800259352179530490880719223410526076874406808674846190837312692251743310387448817826974970003674002554331491949541366367389918772564201189086086959594751315554944209658753990700863318396873567028526382056245031598001241339073438405309217294357819610377823930343688132488234991118654789958539926075365169070663208295786048579030327984212341390653388321009109249521065031366982460873615971460072291751024578921445950000483798769152007596638157669748190178557166938345250042622193387371102374387927485898889109508567594045657514687159236886140242990990192786483910695498452221511962424298493060059652737164777384069174554013615428322177185931185539552871669382469300594145559400064252273215248190475812017892311262397942117305563537284057247187764170409642407932276396680537495959275351928439673626010183896891713323735475346683593501474268627379321137083488219662575523411034211058555959352798505140450723085856046299989607984312079562253711848466709428268461673736161041316872484010473993660323875329420175184284639724312437840653946625888985371746792959879244168475763819201618451140509602470223710334606002450614556605322984816679719302630586992719141983282060315094693417376688412877620980345393443241832370844201269336386288504182726893704172584119191662356833428946957913407361762905610870948355188272088457524871007110086601730927116834014948366477896909001414237685067345835082319110577757625904534332144666223524592530730493718526335058510969820211267377666571594629813593530080620258192282731600575810996375849139512807536418985741346287332333252566904443637492858784876280179101266578209794044962477394064343500914384083972527355241816256445094481349237628588385006506028344365394061070297176123933291957681681730358697622277642767558912597347800454438963892114807000863550135802437677653990121924758737112923322475145451413465241553935493875864129249606809753883288994017714678203602920086234019075497751955850596339415568984148041795082267371546515019668575553478691621552836808089068079397500094311380679333156805823815178974735788615321989332234489964415597778715233564559730437808282794816274768711503715846069684074133364337853857965192269555559303507465652013898520716232866561034691163622018777118057591422103772165342873257037521987604964144967294626267332311214615741827936557879176101103437057707186441183658707125887628942090134854171514142958530200665197261988181084909636294761068920071927541937928544637114999032117277315223977481945258103878823494735353014372521446814760167622753864854869626393604707549424585812604834163591616663882984135881469665594587935826167217594007607963879479428876544318396491071873158117656367736835833707198364370291740937887506018434379508110663885522715374745300150278760495846704790093580143383158340659504755425861032833793312291118887684844365962823716866805916927951050876691900372785571414010995712156032794792304892445191854027849906592560829917842390803921036799040488840870495761630870479639809568641214401882214545017722517622950988145009118368587168444841127869027392172056817998192592788706768936198208103190789863030655682808317452382939147422231445990097769939523411176621728623267168579596590576466532883090391591498458982600423489363718979547423150295248091659075961685352744389759000208129196074408986952755691702964835657441022216302268802718742957132080268205896634504697070297069956407397214337259264209689849989962631565558333227562554000109104699803332860608752429912124014672321369031627241842097354434047641175743199130940187303077035334649749593902484603792266445491491676654823191010148994485315537165804225138236767087648883127082457693765106866280267010833407967315821882444722109290171420845712788521409092348730701554260054953927701939430830047928794372377715758391293146015949542618139958936724266237402254814725445858851002117025552483259791234717046298312355399216607872495623315585114213758748796833542413933645243189574590474527816420237307995175603398420742783486272792325116096068495478656592411988827275182214943733943235355924614730036299985474835511652190276742363021445168811316565765468306777168675406403569484377066999934308856939034803358957712682423293475787377596191378135675343029472934598318315108013085943328339414960586512752932112625579814732828585187997600152593631911222836846195786959670884370992622529835959980615155050466324196180148324979762887611669262663432361840375142792228898669484208047548786010818277876171699581856273071521033927615338355679042317995166947660807144764533004599042610206500639353142078165500864893039719205390985207898621905309058607080856486578478254338235940711811669349521706290606979118911219714676855893424963920957890195584753573500329078820224582912445526747444273190435583017306967440946000377668108947257428122790005247185023557908026212983494024009641795673866638792134289402696641418360082522803546158330825358842865002772903690574460627406017793151603506382045614201959627980665682552665129319824524893086641503560384370824026189358475044011163026577603414382749553507585800294866877182099587458716710334635631927929093557913480476066888144452688562337447471824344859075176062533019174993384864830658406952251449674933042290184849735161756587921238773495113039971627668130615208523489878806139434104872747549992655947752590782876821316651515522219922955151276283143845407874486940117034440575664046444388017380763136618023222135626748118169632724544810347793078589234723579977349758543717084322083923527767415477042819710890927552958208019397701856040831602795545411761102874965580979676681984892338579258602708361308598356740378841654981878326399585789158498578009321940972981788790581757269689668838710337408110360238161874332982096284636525165806779634102708570690368726512015719382006954187614813209565254266109336869856913874894329763852211343080680039549672413211324488472619290057521094192158104912112757399145016868887014351095214834669241358976896002361213950727840172396827088649381550973810812287341140466972233949539768150177852454013812066434854366630180976091885169281427559117968723482523610395983548762699067555740516039904144263597373409352983585618184335941799596803918334347216672101837863313327951801308706482173973961771784657913461280381221470381181858698519590787304169002345589081117827554217482008311463943957689184140785357267341066701478649482545082076512910689882814713336749550514473904191649196433032539603916122322450819024023169178795741737963348873558648152542215972535837448240912626966559773815506399009105069527211324692818705801451374265692589073149773349976773288357466327866183232110289953261638443097504511869903835249226710251654055757003116838817524335679426638438415627139018484406581368575177995449859670123430331407088404191553577427068651325178804195879958846313389135932547753432874923034846961793820724507288147260741909972742212553565909564786524606940013440825466480788137022928056259188915043815411111898980773144341308004242832196726539560164009045615797970934745621722163893415586040508143060386337958943592567112161823873864017930305912546747708585596091919126610015356784975945590118818979331340765870352996193599059069341212622031784552420105468144860627167017303391772155991117077062963869148284316456419715213490899358660067454832795589896205452434227663428971847994658145275940003213612457801594064687933024595939707284131154499583401115472746698521326473581624587945524721575502961519958980708898421751804494086488019654011400069025535176735998910035958552524066566539686950785727636553198552563389186945031971770388913273820725560765975817082144183299844937379509033891755891615610036302777503769804266447415066351246207338978994940853245129620941818304699945263552330833454946639618470850002295786618917002135268685418174134398526169662809845023556632950421480059032817117183677255095538759658984502789773380795844211280750523940313826229501057189857949531942153994001036011468602266465793198426502248719839348707508190725376305827391128990590595694202921081395219485676115062893886109807015674385969913701257937863304507047429350513842777173203216173878720028594483179134950430815229944673978735134519026974774304162887554383043355785032125861005109089799192753974873876986558487488294679178409007950096110312326700394029248935503136161632446508087871658998462341636698516655985093339858774448822574226933015979278479889131779487703811947255838550972267172520165347700386612641358403967280742265856828281690507803490872950771133227188799030724815614315563203072930128991000264887940583362973315061646940036263371283145420361736755161777431906408956831807714239285306836446636235829885175808317107234971851892692410639810739288672637923622463688632633990621303813308974905469571100770472946143865442991832200931844298485414884983082534359830035154144942416736031955368258625916775654760013072995217227746603761613907425544661757912511436125751265217674607165366094214526186940253693343770978913641096817401496197917048616826126025771409309161818630166188270576717504155303224422542892256421673729629962645540708290585786900805190794322097259850703176126223023969548702086282638110190856315665398754364705016808023841586506111834300982526006664956030698324911943633870334035218554104230613484494886544875882608683358265528781747726255505398610613234111165848766366425150381600378233089543149794907360758738226779382358923834708362085355820427991804895935056322015266027996237149007894713154464540064502409679286599397226890578626564358148056115371664860844031212410016804922163968008267597225430043591252052222006029377290057722400924930664842922332965215107878915551222032226572113098094134329087834398688960067016825415549299177431271495161463576938041060228934183289261546510366530933299895614355284789276320068244027715057979759064437018559744486563701190624761615390617151515615713333350153651961894486596962130647357648834506791847772814059492587966327545315266938093023943139466375934974541536312260210836148963670460543343298314892202684422497361694619903136625976158010250602157611871775163164007279174628536681493527557031900701779572117534970368716108892019593769971974057597271604954706831857023671754033370505041267270220403107816829107332471344351573408488408328549083670212474132063934731414869162703355464744065419414152843908855042172546159617385362124906722269163444184521728289693533763694025115934890294491134183046147896298537401919931297671647942954585355029047836511664574975079984231255774734736615472985551873803112485925327702237469939874595772028623756851129253262554594414321176022579081367109747020122646030838646356054061169668582214467211173281318775602416067526681191939683374858639737858564988960900895112992190752967249050162858248007230512048009964891230587299416969354317712731220241394643264473374178292274742939174100696997028017381303464911477990348542016009861039340156022057537193433169869665101296166815199338960154707796264983481839761595107038049848751355324488913638078738027126758285140512400679345425911983485509665101547212859601625289359579414128690604111929189371544203317673104544462826838236777390896622737665607675449383522618137298770298150380287722602658732485673011440536943222935982874431355072739970667309572202981665763000676008031625233249010144690964171951774134077376174866279044562459700170641721190197780467177041075042574321988799846047617202495104827057458959446998555397207703739235619676798581658163791693812821245055324689282299364120011883926865715430393600051374208378600523829061213775930437756301986538086180322967674860723209586690382511104251266026079955587579144831696964856818944027059120548953286554887277884484465659027914277704125133398938760707496062342639434581058184031802970721630556767087067381282934442004969325822942221252866597703950663348156855952095991178160571075176961962894040630753328867869701215916572811851492149812099385308712060506036835544600841054452273193016585867976934665969507460973396903601467708748749321984600586984141609546378820280708707646404540135095296243079933160122314279570980376730137414483708873970698349959658945993662299139685579109510007837305493638653184235139696722870004667839207930456012312554683035702719250251925078082566223718441906400190838392009183159044336146631842795589539571585415452172445620226630327263144960113165742391020198230366981710187811812330079627247959228277011503531703175422911765306537224399186053714299976741570187999165714880326914183836783980935969170956485029941007123098094703650124550980883651702334725388406170874673452371306888241506071745963777460796918174608596777950454733077269973895861697362626898682963794324438280718184454807469582074304054584119849250152179538471501048559024576683913112301269440381316958301512030909713212717732481940382584274860584579217209089439129641732070895816104683604431755976933919277525839391536803756487493748405897309499217539426620504758081545221032307819086628601816322292392339004964044994002894410330217578929169269684937992220376511432489224911317960909199088485082894763317912236380962344850990455653564650298903708177559054864008451906837196650035060561782888750035172345959585594162518023822606772215399621296045280466917038233047927712844249876551573728102991567705085093911447999396096520709055921516180510987783689102092379051452298905954619201674540975337433839113202168310053410044420083489947446297947592419814580904630920412203578597951200700034001130500001777859814375064121297887486842563022687165835079792360868396184994299680998726723271674032986544922533100416344481046269809640961132008428830334183437397528792794198136668493063135852295469548964840603821665989448583968850567030852460515738119398292466011492613766885582833279205644238815695625972590126052578940455556053694162424189665169250603906710090161599176659249183502023534765364829883004361065538462387748374194275869567743541260269037440829209611140411096653977698384079900621646436568874624443942056934698039971134171290128810146194353748039740935773226665685519446264022798942722997742889758778093658839278129963300734422779289783607263790654966604893620083745435313746063301834448354232320881711201814141197693597053354046262215311014162821823117063231852162429120407516629577736436753718343324821655020442178058837390310408692273604711676471338359618252596992421164306373287412306142062222962055371152135390884286916486800633452776766315097741710708779472567073822433777284909119506657463665894011984249010299852801291081520150353733729101627433280125290929260031388421024471436804059015790935440811083800523761292075444533805605838139913336188376364743348426105473663417845847628104444532085391555191714551625668477229063676603375323598880692683729514564509154605033381162695676679238820740526344473516564701181667441914805739792251494160392193086935076652021513729505446528130394535694755283317758866627088514949113728744242791893353142933384512521008803396143842732059084282179597151883135047616999066362777963264788293892104271577636973631225413095332834930987133112435827293737043304274995850019858989205158667300683224237853945401985474502926907955176592894606889550247991882123753957853983471407458425812308636049224309811621458951471634699963199394252450518516007379560875555131305383121662729022388537265668323802208546723201286091799657224440094548647988702148297565213515376154248017540191766637851215814811056244190291066302048406508121516454196425504555230177022478991143853697434435820437777811354077008670472101027055151580158627702986814827445956418283837935150122320508134170695698368566422428986793577427417313014394389426331514267139974336386892029177637289312541319213641784365570940207792758055970161891022162847208690917125493185460667443838056867992564725377937625177533072979419893416600622908273504476103243408378930309522767526023224253587971989908810481823597870745880614442266880323243507589503031013972002168929898643380621703536793611850630789605665556156876572072670353448303641833950239473916523089431512930404755240597544056125029943351701806967187941229389361443515557825615030003525151535768820502557865487146529680893263134887139226038919729519352961721869492576855685226607961305096942861594967262372019277890856504576140861161009434145117114390716268841139098642341452851057479105666824297299790486056496869407070717304263221276979970839131309490640621085910910306426415733278777863338923619058308194254302630698924764981224467393460891511858954907553917600485024423610392115015476527969299254074923505090340557448722061549766990834287604235531252290658769258161052247549916975019611065882338921323336908339031327669120715100390194815832690891239354983347912728386886429974249743605966845328504245353084928777885983503878895420491626164944427856838776970477276179059926401807295194167603921287364268254233146701137076112741227632240483309514791364968744359631829030318686854027039864111253175796371541870541869918393876218211758609089966085614985636627570730072610182398961202469163130745449033328030246614970538122353831532008968205265391356964033825507241638150647556977560195739185721320370428644448335283902022700038758987951933775899497159314235681030897896140271715959076593294161135405501033897835666187717921238826466357888947284023722431466869089513978433539077751417835960580223965218171861459739758661523572127340032910686328462571738355522132921803456724557706617310008520552296946516807611109009324282704267376194627519166145472847941533816581663181516529921207233716245266702621220162835982722431573776118563923097394999948263871926208644816356130678401593146948262236785753484221899598889851000338606448560108221672015789486912305887184401918275862977533613570425194387889742883948061668940887188991020171380636295985367434131663250702211971673194960276277222807936239334715541412310197639060662228204391435473100641133510170624173060291366738760636551688178812939517677601493586526031351442698302152046487126458369308818295396845917879677206791778983551128579973835967744790060417976661380470654662878123301229763528805494499941115477156723546476427845933757177938873012692820899745091381845402823750770078726215774215919075467902210722051343203951534356091638497970931470585242024912826818546667442934680499175312022257708283785313714223315206238369240174212640404686417206698002223121598750763398588971017710324802377345562197640028265120587591286849835089554436118627992497329085979066377350756807445748740772328032239859667675738797174207446602066107249756172075339513813066026926446893590362637874643526421949291739260765786369528791583624738456106873364925148685015007170281231714859042379783128131118515070238182888488231678177665255362993238667389759300457896401836962166133494016529041642438785619937473411633776329319372251463915252806705999942350405914212957125733758752331253016468729363393484755334903900352487968931806817982204690746108026166259105907661831311640360691418235627863377924179003455434900389197857124202016706029443394942518759912258526991528796622184914070101225364246394974048356952236658635098199646765963861800443921295662564894054422804015096211498113969136010857366574942848560762239521579429684058196973064924083635259715330721138706703386731042976871069105025606120340210125594132519809283087389245021827723982809804852638109156599064899138618806252022560604472070219757321291992154189765402205059845799384667646470317026554503342435433869045126972009990798277937511419709127961749548163859178043285408229455880575690637691901162996919571389893315714392323366672724856631553101259379482244958095888802845173903632602776463396663460089946025525010763158557138223266318859956768766888080628385197478271748239583257009795792268914537626285951493875707366918542685145393005726584589202556414381300348049424424917446553315576326218985928622561860605993651214222584336950054166987022097765362440597826174569755819695953293516980090489494677579840481071642085376508421047994486686343316080751371708334552605503304013269639125897954990862072241970061866405470628531747125172671072333973532887254935014795888358684661923131333226005553992132816824381995880240931334548333401209738871613957581181065035802777386332757876042389960552742891655791298017492014538845853379898811927333502687148278362549616923107445642360477789119615353751488929054742930946193395418144420164926222029364379337308759159117769229225922111831196586132704389146280609027390455171045647089785518471399378782371496399929887416947752189286037542522401308929042384785759359306472597948546182961597084775698350847592865909263470054610153378013348267397684311779611810929843029663561242534350734355400407843558140460820784469233104051740744005515832995496243765167582002720567175122784614900953516901047396142506315317042609758752598994101267419082997260782316031598424161635012762219137435255263086421155505595288439767365825687404605388932770138961292881628829334835816889550527458756161466706762896334306611749140952510657288815142656382669756495340792484337099097187148819982432803696049261357364713030701794930216960893353166839214976155105648536507735637155331458718715333747777228995348331307468657552177511513058510500458765827672043962979886220620643459838596807410521593916249868824648780894333455658640260412637170376234252482793668106264098047784338315590135480959999000351129785260378846002295116234046920414980676072289536514119043049727885380235818995474415508787921110084219483219408745338387291888989666854125870705934669051252388339373236382707056518509429223135462199759393392173071830815824503422474967322123829570492997532026284355708227500455519928598201845119143843169720769227056708212271236634136116528740867364528887508606925423837099326707555161822570488111606058958962586489504507181194793618656069616966259383348762644628968155442454935714598730328615736810549089935305992251978376878366328712644551167104258701697590124099638594871617222610307780636314361164831057028591877564585344727364683088263820918228878684848626528793860858406995960960734183213852867832044172623869310058577318505779682724849613981223266701690178855313338619071835218316456724621184478206680249463231607622256352211760515362858403099853510770927283659820851352945525424532012784483118221713761175549545327121179516472401486281631129827995468132091276198987122978659197469558862312616690081554891207066933121834354875357962344754439475409380709430554314676196929551088769834600398179629713483195028476920282039679859700493886821719127506960349117869697790923405640857469011282682986385517915490554457738719769226483050895673566130789301648578712481203129936102476106857693435031283091631662486805691655107099132187675420629859875301466739215604464981897768773500289858178205771805676842921843475046831071041114083754728063837287938566775036446008176546635383067859473184243052871451316080899024827767495691868075406979112682850969988401235523313268463751718889732175374130710357973402222822769177587719430718905220911844833383399324384280035660787111770686563961503207606825190641340844587314526162908440276799988206325891128690136043827343536528414725041464364061384509872649700078872876797326312914831710267479864382385341858461471875016414748178266717344428941561047944978199080212145462323927326184062777109177562836752299348217860151928169892541210414603936735318909013063235336081206310865640160861804984360790226166270203827318332085992979554839438735629830385324268169706268186102427827459332710340990250765044536535487997687360509309751955101350182143431847721889903678969269316081892767779799558224714222966302289115417223363871792595773588668501484203279979860769836184340229425693275874236232699432844233832487231170765763491910444136678890362307993497617539486044571646819412332751910756821819294239303083434930354709277707846056736550049677499739654324595446600899528190865257574251853720005626161834588431791555083667908841191563406526798445854062064321885477175899558421871269329650397975261460805287176510406141773935393377244355122337563145906495955522883446948765683830238387675774053044421494759506251092146226058400625100087472934554298209092231760804262982081763809509473065438757715302223223170033310114659055800612973228656984157235401745694385375734945885275562789304061899517447913980153571824018011330561627874388948089548632213965794615301665036427376081805704712582456310472301201674024154581627214230804443440269023409136772760422991524067148360250663511203793585250584192858167250570063167201731146733542784331400198477330230869055048468584016907220606910880386020097118083278438017843153311570592809160842252686884464515096699280672657507953097277316491996401974907724701785017492822026979773680710543894766873833787400684127642071561290827741365307184665720847146564476656682208958420485032277265086970446020141777617397228830613120328407892526300605727108333403260826930140996246640307533359105216762483129982821743910571821832772199606747186049450139894413560613078651854856064151233005854854728522983246123376795715600559513999732152403835961680544755674682935485834054051407045068994842003243869032774093536030782626909860627262647244407140121336384512529506631250935923214591830969080333969033438305779075005417561778310515883446865597704826022471725304591307011449596552454392123366270019075180087420551500000419580981868491765492853135707280590244212186435524345966520650282902065882939194974318231621905929633923811990892925330091350843451035133588924449661852187276291857711614333767063059107019468675690994497549762878366275341164260788651996855320987030378351782348817348417690888583123329926936623178244304336073974557780630939135046912674666132973642572751526704417593655395923230796158575468297679570588693491561062901504443709781379321853637709445418206336142699047458174967276695553574577133950502222311008360090922040550364643839361322346737488029235936494910015543471891447068831288299626467821614227955143300365963142845490375764727592800891505513080447418538244553049701084328716870823506924052318740183785417377350306928024217120071526630870816389091053809907227987892301864744437068794688991782203909409686661932649024266140096598281857868735581497978058970972433314226905308680135102688307174532650660320220896689939621587626503882834865524733194533970562660694798002043118815515230035827939294789399310911999793997778612911283300327340090699923654375331689643256084970961534151994869325689859589973293865874465946316231190621482115141220805535125045706228988135566678530371462373036112525924207176127236822352171712357555350034035881714434572359690831853975703365564561821575259830418686260260120646575933552208935933771369940274018702019282793240703700073917032179540720324411715993110956130694420635163295571116546709875834167902395263154345184010176853761360520489568437347585096187676003392654582365863248407306098999956228750524040235648609728516946940984972439231138290066943159997596676479205372578865206872934889712091694018661559968404295264391092143543898086352065525093984090651291662633193190555375644472040800527152570332712255552945367922442153888560279712827022892798351132656933616976744347449885727023013327328368525516076347799224725899822011651004109924614469619971906895453798039137340643300950939107895205934782007819160589195699740482358339437710770540537773514655982028209745188798377765785289492663045166595262546666737121225945866505009302088610556230292356252421882252830531777989059313975259210864358468818031901851184422115569133128824974637627336473376324275682905361591158879188817783989920341491221390107251164721239090000190498402251808786241841820347301705385142305349157908362850123996429533437135969835085763749154502607199694743183755882013082622028442221558973486681380255683687063446365656369595767243387187147144033537347388053889100256593447141267525672417897517635563868714874021138753208849162294913550503616240776714824694224726500923130838472801129979845044294483328084586401007731592340147527091777112449812439770170833933815952005314525707020114922805705607494727858167858314555751642450952290527234104513257333260818691073346361429709907896080392773548365491351812326135723235211313680126528012707458612334348022721659576615485196194100100316454139987761452428691143920242638289580526621834878454134540755073669481037209690736564022252075104305263126828575105486349675675101565938856085632733500375340818525381143013198404369714556266105918136071364762022119154019447265100688513151975969445872265689628715769319935017517747969531435599145773305872612600501315064681168153640376282165938434646212152111129659761201430226512575808646095929378665697549084362107574874981004319529226086987031507964639197026926115045637093741992373246059067505755234843185885852790162407116669221145874515906223736631687107938854748610455071606185853431706745526136557395149235911985125883222389991977918254479266469484141491274511090441185887016547064797713473420371636210308870205907090874561156195122465242376889686978016844216103055839574206808747122810498824687951539087729604355530703185292438807525211898191226165444471464873838672676499819255458617307101838651045810668675167289902411912818942984485614319115541926050659076092505689737202375166750619763582587447668297267093453813310611868495362548712275372856063972965021010495680056274540077979407974869058915403897339810282047831732580346717651105658896250108678098677944337475086550566470830366075738401017534095404639427596834104822251036474555621478594769487572702439833444623370542538617770084986776643211121386210759266167118890589518401305566366794573313297739342048042664921816174026250282527757944408205023410187445967845453743429210181524722692440754390659187328763161988153954962910985895458235847998724381915240956646524505892760800498751392654453093385135739936994281343956744005111189937006082000847975368099554608522129409536270875582288904263692955653048645473688386431300320774794412440142041467697357383575713004283078736638091567904382024759579535355428652887012746510922445864315371101276271121804279421379436908937450294288508412427517780161572794374652149732972615189317404567630337711004439111386518436455894443868579365087772930807882543232079066616690050653378629763363881237199073613353797367514772960599293518054191897974803049372650267240772130137555076819139817021449574113547336169157479415218353988912712609921456451640517335181920028778339417406710148379210998825046832325288993870001757664102398361662548193480031545815298158510691920928536662372945301367157960079990869983162191594939282873126831597723406499073425410189269016424897941305952279585301499172758579129097731859756276716113077319596541046819126376417789848300506149124443607145715319894170595570342822144730733592327091644710182808447185405876510068698105550943825679782813848234967702601650748007779026254894425535843675784244870895194685637871089827418329482994445659931732670088783195622917025388331524160322411053742768873932370404898147824507433140385731795059684060854264327242311255005681542116576045815945887249540525207118363700301725452812646303583171158577672115835005186494541015292284144069259835997829481837066702766230904415493278655944528492188496693449086120072455088797690006843633752204501011290620016578075446361810591899061531049056486309291756313086282656719416145834767786876322410280628346518293188333215638842939557245205496004645277446822094037882330235969682300508257961893709717152789029638506151855341192740903420146340703964890366941635483697945295901910953590171636369223144177042078469840065141855103993429910363201870372418892181153042311731893506471558336117541426518634724451780936659990902310253214212379957862612558900292504755458384214971682509526944520757452252344782077221426338798772210630000189489763258434554588627420614725971460118404633495348464201204615638397452371666211087738222489668104797294197022069425095921447769558562265291393875760352625967387673252630904136285183389668459679756098978431081597009947140648552442186357146042280086223016175226181342031063534280570410921851907407438174221100623780554024635783698748400545587812374210577633249175863894000341853229877025315984305357915277410855880658083161433015987350956513090948128962174095955907803951097655636518423107342992818639287067833293450327170324021297405381111398404752257610062846419433481696861471337010561279843416410534501969599488139159655098040399489318443536428023540866422740040818709377866725532742087042223136346596663920606242620937785906778541824790356032503881036157294481621005222553421904711702826082167635272216501237571797483905294910509488131288798414516304883473206607101533599084876093803682076604582406124327473889769282904404034969473930100991266641510670467305789547997820887512340038111693632298440142422478550185662886674754324971892418981377735541048134290231570939970133798871870413279253188203873151442048538257356394036063090634062692238793297034720568129539282178737690164444634033257876121777011425572326981214507276450837261121766809832604362443067010398364720180071413392782629504079972540858031254208839273642984441871831843092302676010945755625286507558515706836851257680081580876873664181816577573871228767035891700278208706170983729101549979924122407721109641376692216880928693865965051118304044683379791562498891044522920458957586697027983986266770279421809860746041148210137295406020054665689173059401083884003730771416090535407140355348785410735538592976087287675177775413618142704338384842573487309996060326143602249622760454855115804227523125428551311986781142746024992445826577145853549514308724506369288900240932924513092817137116292607050075156335418203849300227257419216823834492882275491116893546977895247671047097523159982180191079659513224839405040462133694793559752378296592511277062251441569538649732618484309571766884703630339331883966575446406625893068184878600397782593263863762678630502157129289974994416361140219723925908222590035496477202193816163737651056736860474153428857361786994451536372074603503899357040425788358475006922924619752162277923628172073309771520696342947771378346011718526502103851616720799866950846683223383895347761643145640860425129746673789796854152492836968432763937056933258823562001145205448062290470261382295519297500074245648304730826387231047788381590190122362823128142967773514796273396483746376499322782680352525228217953454125410298943227270530261081229631106726560545247839164041985708798387924008086673192949165548908360251782269759383919563255194164186981463097612736964506502773173885665491813911587634529432493885290080601516707790442007395316914793588863802904665874710189329237988142168657866675131912237939645808504446742284212422661945531213000029253885843761387622239409444974466124530455506111850711659961358246808205266658725637847678234639413602294163641926043039102152133002517802433962375899421592314278184207334053314468075969397529186939878328254074792395329255921765223432561952766639209335846027759233082991969458859885546914874391920834058761706900220701670331063996752746100701872821738994375054223394742024212940346128788923976276685693294782101128144989267642232031703786001401400874913547428983083712989963947737293490774513818437117851448025596736717662216297853148338931646561431319382224633669234878942012330886521661734323529130529729340437938020532525290400678241282398204134246810796566701350176147238591362730384245290244485202579147214649929518763321739822271124681477831273323645009808502739861095508707701458459468242521989779714934548727094766445825257239644473854484529755347678770562770980286819966154452574382718721770097407985018379894474133832893073926230951851787876765302661401716559199915513927855783134500097399109953787756178258228142711476764327161650780316178603364128163926826512289616466725854139557934667033074657308312826345392389452122117004285857044290928550486531639626273219542776370674281070415343464490499352936494913747207022634517082919402408084921363586428126739781575327937246144520842391147946417332484515898788442160083693669709839313218373768251871322848020441018382932391716593748874603264578005414224036003024912483104435759255450545148906158673991721193027618449723984347936139917658528019045342287876801339864548190707170332598013153240789551135804328747210192976706167771907165564948526886598041167926997898662038772345256277137444114126840154525419649011358215657222523829428491517216431883700990450055461250444161751611171622653104741624747003643738621864368044757897622382145746624309394356745114598233746848028559170348657921722173845161238559813787587694980111409336402832936450818937695132778862078560693410387168195500924299292459860552473364640428196918695085815586694265139096786459599016575138215033480622039196305689022368060683376791497029194857189794784524173324751318659871613540100181574533270556570068995262797621640540622058084079556795539804480838910233648147655997767125326053211090458194832796687351646103028329873060175107322996712318739482451149054357187277706232401788397815874334103818987695989278569471856127354048737763316814367848285013089400931995769212860148693018536393782568701352165644677982654436073838803945757992055537457869568813832030984234476308694888597829403407953687585272171165752677826350543705944937544542530089452141210571023156413359815340474348405785658801253270130373437655634857190577460890878807401671071050915864818480033404973090402239824903693222585600008337864496633011392855798139942458472542157635913622810069454020715640392486296623312889851018045984698300685861533937848128914867220149065568685194905296795793622130520845133324223614035921888067775392588558585004996705172593983537016366949715810944090782135380458211270078043286600418349056407184270063655979717857101360147618647477939248559621944324935038132146564481586683517914409083272182114275767425163372728500462577569248825836277207152192808946372871705334854144912203516923736095174634125147011490432263926401524605514088324253377709350894731487707430946799517912203768224982228519519841785403134752645415728009549003928172999669611943834258878885097305383847947633335525660435613097115494073462535594589663560635345032773211686588016032175514867371524073176541264637263374157922466393477107659141712896928135889331325697914253742469607943992028066741941620360894416994421935078311145191801542766747746663269528802357159838619526351900722198248231918650489165545693470581737393727474514451684958092681464220833180321562605246235976171941962863129695019717449344945301964799342926879130765587343213395098572605943488345927146409384873418662777865731190917349450553751521503130870177889467467361817632830420925154494029751522793233217350852607184810842891632640440124559638502574274285211020456484115914229744797611103338347568552999297448137486049828895121118524187965598472712976182973463760396504946821977846153889449513058653468687857653823371041610931716609572729690546037905336035089905347083645307288629266525621368873056478999855602040170044486571277436621619409860866781777299852998727624969703774887986950734557647974687539812661136894912087997736091279725194957898014779095614345807163037026122921432174679872271554799280696303184368434789137764834221346121151315636402034702686335958318871606063228838509846639171911924562275882276018856318735168318646273714460850354954727091882043445048033377982265131328585796505348805368532414376109295110472646898435183680049772466961864182038519379950651142894046501111325657911555280279645377997157279780831755595961625464139521712359430639114893336506223496126122463815450798157353214130453546380767548530553078272889895073638164822448760876151749603141522944071051891371489708617760459824672534664194183714056749335771874560834781954586205231594021594807111816428306051016939771521286114653264876321840172195782317421759355254298158035482953189647872794630765326845324590510116834107425429602082411882824099392002747094685086061730235933856753569538511875488426333398173280017663213926142557754694559152469602687677363365423595763982541080096662338951475891500286284993220140963580040531759840113201858447436018946646825466706609081357344002372115148405766238182308180901209063838941339366814804325064837699942897291333618916458938001520001514916339430992644610773338987873554488499837661389600013859303822322641795894505398036196900950682337995753299330087225826365000431290661449793109858591861211092020954474644758853453849300642132860636178589885891631036991209022365342843741767428929555106150601190131891013442679261748078018294775731876654127805122738379699317911024829503040516130096777080563570037109009493200352428665399808032139753443782677648139799315096282280869428558397930335465180310226931796801404014806308740463847720188189032618989454222821453483922785520546903373419935349657139615519594374767512501586237365182263233416143758768570182213884786575112771383664219855595158635749856749730017489319386228390846810056375758105690534074461055902870651172379407389854273731271585526978595303037448074158935282764605306818558411446888324400775499653719874573001327105510576460352960861569784147182876057598497905125755516853074849788738005643049459043081339301813734677507723483879054265258467745189472365437618092621524435821337356947712191864684740331883310452617718618722522499558158059638881817601644930699929372425665467814448783655652651671699404394215670630495440962678794836181604923720176162659817836688001766524538175406938168375750693274905666609230095113842760175034436085267316557746074621996284039035269395904110486314522624081097651784118266003755762888700617172336562801898755860803994824972491552133273823124156974433019629067723265324009117161282785281503100705016820451152937238765252601262206579623492294170130196596531832177066269373979813908971045937732332142547714159481766505482595228171842696067018950795307900618528760366614352112519823183128623605788124165286568206838814422178451960835810197526700547056807660506434953759064841645924051167337130909824228914637606310688113117661075669110373883110414594822112599262855094342518060954927899534890073928608653897512535150163749609438219603013914585466479917469631797216728172198419589443891378206955560505736008672558652110392053450111647539011406690723164130348333799396036763355147326375927046818961988476462934305506179394581115053284373383795849485560059313805847907011883898108655227080923984718679353921380965512102040152487082989158559707502742441043116110090434696770800364791523961914105158850513252835129090611417944320885132531415487888200043302995902533518447435964729621934760238138992187280164253882717284950244108229127802218241466839680412512456108905933914285144027390859800672668746249319355443208423951411595736188188680558887872484666966365005423155529944113711162844819676755217404566141192863105591476569270251269015126207829013541720020368730267115524021568678652789079170923188740499155282956440716629374181079479217349516717512670499506707920735248683507221302597429555355067545173991272834932392080311960782762866351247187477441974997079175232217934475492214437740279070255307748953480675153776886885445931951934192447549037437740301982372032570323993521490025640817829442561665215569745675270742273864083281333820266364231654660133317676718896495346201405073441596791839338532706876087137408318511304353249736600385688381885662172928563109622831986638222557834438645178158978253655985400779576564612118713302849999431160000289618984837026187113260449551988848555070139583454171653004962873513210218316670961774602065652966241926586436520949905846842833982639787510952171203294095979886299551599868535783613545423106739819480112608419048772021363289963654938505341348876436967226820127683432995222456088849166026405001598933166758256767950610302379083686753030608976027547230820012580658296239363824346971596391473665725877491895036504721604345629809201772658207111102319901559153193521097832154584776288499538642922751493616936630387191382272092258570831228321194091989483836489497999779491105423385036945519431785574503149244680243623869836929709174721110328261036717431585805969860509458818404801865434001813164382682425192956730784940375920887711995303883903809954165040120569633952043886772392778673910927026503394348404147545957960159057907724497260150435819663731525875830010270125969363088526136904702721776011050652017921058583077308112940565810282358073359595309292940009250313574398397978370461928367595707264734522867685102046740910335092763486449438078627391210799877816491981470946787246170326093421631169167567093486365272098521781487429926390754001973439923445960295121144202647693040042541751318720503009272378024603478880541758664284749064315140819224040865920155016433039645611278533444566984879497996033952143628550733312924473140069833974693507101696325407574118413746006792016904844367064200572556172076563808084966273873661392370263273512497133826666190773590659721939177923561351476626284574506924517327322976844143558790410870416158173078663649997497594425885945285005205397000811539995465630518842678457361709958009705972140166953111780418875795732624828376954529049179240436904226642390487356861770814402312224380292607991757401941651662594784649689390558061846118455247423028601481332349840446652941828867182968039883872257555042839118783747266142088511721015128921201408939888352151809276251074420319973753847677380587845978255294239418052244700304581530019541057889859884947548448129258049824103217558921190266227673944825669028573755586430785502016607233862380807025132915609498915415886574541129563067655881503012760157564271034314032031983710388470645315246341566215254672665822904783450828319621159222779399306839224787344955132882915799717617864572107925684918303890171528741866902487203357625675493367278984741833381339324968754716554307026304460895206361464081708208276427096723576933382712567828608198456340128724938058326924469041417559636724938015760678799162511582282890188403944822853099081308542987102309276683572970642956595691360070011261850144829654592874095455993122886538987244616771868203271158654279039946933814615662794611406014916593656130527400426122627106658946580638282698671018846729404685198016036258976050927509537377166169334585457701668075884659705145997270442360514712248473376447632032020750311871856605798897930016782949888365623064238885750689320550035321084814317729930785970788259643919708935637746160118160488483058726783088171084422093899023453308865825718705175405139008177263397225773740821131025030562678316892401068697911230305458924447279244899959131468615621917924279474899074411977550953193672730269303080468619907165857800091993682109102617432978237985088766758565817375603795525365290314501389623684273176273045074531896099032187171392212613155589762534698549991749733357234537407279249445830067658081163343211595447680016129999151642722209956345181435111077576250951242649850415610958489094362637984898949506451233069841441157792930083904443139651036251473304960884162563525480427370582631278848686406939002160892215561799941240358144033124549294810652465697680241069541982501738371177247294995485216702100041842143069337627063380625889404866005275329612537597721794943314200542695654710298024635212257343426205021811608958260744744209253510682913902269220763928301369655876721582086671311041275580759649457057982730322011526715181834327543029488096073287213409695409068816775145560335298239381053630357010150225241922573590765778746905472588659752473967975760186676529803516177294080330575261386139829848181323580599822137005201304416521039298846603164092245277988181281047666339178994087875879691911170095212374627032022906446565009325962964405848488527135787812670657888637848726106164400693554369147784501976223573475145671850069858934389665499164909568431517131496352857551969479652133623021490812761507029535923072432614484964072323724788823316580669309440049684335777204109053300127064167570246484589209374869781429779770134526126654001245518478289504074487067429746038499810786287951117301874415964653382583765494183171183114448692256980712003069422486404228876146111588155603953853080566284286157666646204403730056262840716828075122428691467926885643711382343456714497619630873124170855563506111090204944716174697403122703426600534345655999588371434440491624787596892973568142732490527377918196477526889983823317834397633992448132126119301991348317221294067127125942065076535482300493071255760527958510194624359414988739850976815708452635517335876282178615715730115266502321747371259145757498845749286589513089265048503135158768843305681732206577971002110485527284052287626502359164133088218065875477180876545502534053527637021384736277892983326705016138812645613779134627758605993643819812876854530652947446359354735879576270151436172215875184951968696464973143976790580052385968436188269601157809369977536475380809283721384118708754523252403606105928641776063604942628437086380950163021452083938737416430013725052097754680343779046120039149626433821756940673757147375569315615746629017509901780842933423855400630204131517189704450351589661496070449667564721635419665546282754768038330106249191393054735331638686357151174400892009029940683711375309254482974423281918123103346714101829884205310313560395339628066138903992471273130256488383593039093737231965814801888545121718707971121157405814477671889266677001539653396892505711891811876303311679016228345585861670674922625544356852325705947274414637724251810796109697750211420235367582450209045476492017716269203304080027438467465560826041749913072693736582608818707358560219866736575823701512349186591246842898682289326780256935331834886767040961892287728865642376248740560706320570680367805380790236478917451467662495120704631935575946522896082763897164793385971212580272632576354435600268251470585250142432843354491902870493515253422491016022151950878012386052893933140341149192754959878153286649870789666517845463225864164120131616670064773945700588838495335952337304861217841218887478148136580558034349401078269133022086501370933756422103461333552416958252122884685040308847798332592839264452268989279770022230953295295556913284849767139318319664268440719471592070688085085579076433591075641532645912615916662608605292396745484039304048743707899637253725654378556853594137914787147502470668567062482208616716397997371951809619614065779525048570728180910405577566098825769066649860127544004585496136232589718511989392438931735594964082303299508630089112234148816102935889967659671225624514098996901676872292353622594620879774694070075265089245336433499561444424847703541363105661719568032165921549438356044399023226206616268450785825879328224137033205630243516703844790240714593072190377604281323795200817088108335243177209281471449214303480750888370999254050852660278864467706635330770955810190777706803466957430027682483770310516481114622072080047120200174854399984824545745603132068562770383733114064372768778624299632208780586055502377447730437193873532660166588964265034059469005745666956183762323490900256484304187975645856715895252664906437039606888848733888462576576342735567740171525701348180698957316452757742224996693254142079792343668335794061339241351498917128742755424913639284753573118652185286210288355687072507503159606449520223577684571835819197519777743035246535114447518109898654682951349894763767498579441035710359645942242947342677802331046649841171482823632568510935837300408327285552698459250223211503849383244414353265815649350216067975736260630583085732874214743224568965271893772101637756410751382154203049701389036264307743221795415944872446745913843545581225204634695541378534874048228455652519341409828561246326789783808941890266811175630012612937562250708747385997486631383408678716144128845779622264827461755715651362923390309905039748604790001834549003428768256908809617735668318362653026178202526809271788913881978321457735689494483134115442098409456158781786785830739425837783415427917942606342632977626211232680775712764216828073949038850193520393356765282431131773290105332671277654258965146633639396734132652394332772916696883095631247119295420003248174250744144968382413676574996193908288427399997356369704282878033577544795346265420281569851949457279032662530531319435766111398614842611011082278674015530955289152907415052752022414466595287309374860396514724320638368131416644619113231914949303528536251916460303356002573503582432742712853345629191778500141559222458038053540413957212636118607786657263912003427634209318735412160956884725454664348047559583587460586161638516128063321374145822330882380597471098386147235177302607498057600424514348518002878503962219934078658944064726113697907187312512257771370159505703772558517550033041726531474415888633701357040863006521254297893884672188305502654401035712234466201700068084510006142112057605112632744218529767088621889258144674734807373000570749781885315319188118823277035181405060036747161667114871502725895313829592937445452972715298611487601769632553180277337043460142485229415817027518238719416496634012096333653732040265467901637187997117250481355473725615175325197979946989213326084935374607220209842965612797440392495581352738190262881539180359605794289821312512145448753311627521760903484936501044238475541011317416795001016853748691212399326839103104349251291414098132052211544911778115727865792658580414888565395675591076968615127246297560566477680651814339760635389844646500124740194460797720920697884438134229443083783994176716429341272267264122484837414433027879449415651008080588247387589566278348882803496686612874735711767086576065229450434902743051531887002180386775044518100540000287159653967132917487585630350540966835086514452427246981737512774352876924680666963310589850772178508991405411560572745843245775080086628809318967649265166509827490601769918167818279050822742656172797335158104704896611383179772382680720896297874783408845267174766477546754088645563264538334205860423214367414764446505934861246366041648520544098065717982925207155039451713323727485811767395340361456002105454139777039791900571897571436739483962996358853872121325866196121911664191496529398524279702333119323620363300524574904427433593251912190462254927877485254022842518317495021482421777026182622765665030342581220779801215317674653670947595276162547757799117993744343235160913070742421179961665471768539287599479178621324498285895850036927116281114416803148718083699382732974793922786594749078231329885469425524008629941548783310917160345118081409020520810374179378762938349866494878694122904737085375549207530517701606818254472871964469936033373791914138037775165856772120041503619471412202313861514877448467231458106047745368162235084476058659664841115562451783514838732147061396068497931052209315435198999374216990987739540654481329503563668358109977176208536451321817671228018221315923422505682365971190025494077217803101753793144775879171209970216121584016958340350194961717999533264443478236650774395277176352700952442078582170066471425980525665647430368048760993141169623352460734458900217797672805649059391628612866201832080416425635851688347301371417998962926952490284272081274675026689438059845204095067921935815664535536467471262180983276082562056663450696079389157395461231956789376277329215710385056793368751842187151871281066753797844105068476083680546464194700627375878203857668178103308030618163168617018160543982455057371266872620498588404848672474596979060287180607664666971717847120839158341896523580410066307669340936583709696985529101431402984036964311495953405261805253888974577877079650090753967099783684773518774789737718957434441361233695459573023372480800117141345460878187853308251359899672635441030369634732599287041857653099856769260882430559141670659341656351442166955824424310828012668869613676796636345667296316122486442014922417687548466853509301273969973347998887895415115517016023327862772534849824779024382819765018079339465043890042621618590805010195818733573440821195384113083091893412965835791169240926128153679017410922133872765209777122365956917578902374631412266951133224521040986861986714990768840779168793057949281826642397467636956416285478785214398102693982405065566188612971537576183445393501643353930983047052936267215220486382791941263395617108157448607465616180682656903286262272571298496310237804118510803832161833880956324947548902621959671774238055073342305900194679637670770829042428566946565324664539868950287720930023916503305153577398448464055848142323603198253941255219266037640518745767409079920908399303297432166256531767526974135300154615205003238612343411133584579073535430185039618017452801242985619868716835195315889380467829429382131540555083101578234177230335770005233709175113313138690689566280518657818005060815559281178639728963631557694927563098350375613857571213752615852044902961569079514810862189125795383394115455108994454402692322093661423986786699146614808217084156999167024366267219771144815079992526139196464484108070260213882039040477397867586182103756212585783604100719212845668734204810517181332935788947860665243211712056631610152771705126256484576927871509185879180597134090874452069764689028939284491879126976863538125497830550510044953870610907879262781769674161643581051348681160039328496819714363050315391010603041137627801752074654496949928316056349147159141837489450740152989413595826076500207941638816191074733339391642390193753440961053504313604700413853205733196763133262845052136160846986846091134321298084700275625264292374946031627374796926742071508626818645893411728365040627922648467899883760302449589194309409791315372953460875559512680446000083963842770823524477156169943499240525265385199851403662883012500673687265913932366393398591003253615605219052415875842898033926485162979520866076714201201873703697961309873597336330631029429529024786806843335432430053652117719960382489078233137763284635704593915909772955977594458968440107026842530360049521272141901695479943236424464954190442113130842583508109756922765647346600154827441813456723282024864548198040533242125301234269737424231979659765786072959303896501756931173094609421938800632972529928004861167385094007304586613720378016189115998341573563359721355914497045151789486047444113981267440597919213764815106032286961602686172054541775931590512573597763319365090239782484445945940867195864085817529297897104319199291261127563546754631795293031198951071002236577267935066323801387468378264513586724475452973377417170698983058708813986336862712144412803743242185454548997259765261014631481336664106278391902775320916775834846290571765584025272528830704440587073289492538664639144284854171803539150271946151758523897349632550959755723705838668249945200761943469793140247006929582745586176584647231347584540751789975247360984104579063878561452010184225276695665155916290903256198915345218162423188839882425862667904618851269066732138653904868271781891766506475338002930470857088946747140596124771273402737999286472903304352487749997075388229252069410283352603789916348632153524298083498873930332904175152416232459111307196295846396435812339422774565767635721609203677655796357595336104637333442420231455140200021833624868824664299417791000705652042251243176253267712381440486336355388245565415235523081713117565539268546017046577893399434247077963487500320246782688349022528749653424560587271937888221635616834634518963396949062872891949326548847747197966069980889259549239718524724579134159907875033612625794559694894791655832305192224558719841626571960695809239397413291223781156770608533107777494369426514816144086208206448683021366590957178097121702338556913037669272462516562126901515271416348116986890218601580341408023917686597456996915231796025071492577342738591784448424442698513148978261231799548772117054839068109332829674179487252750860893188877703449185007559006392750684203960991089846727258136183062217971296463538777645238757695518196860764474605417309392863886476199577384818619522828378138639606116586348400749024085968558163612190636883884001308278630154993339560319472812942665148971373899627043625808021511288947147878511285332928927687675259410429543036269818621172506975436492726644859016219598595098857518272693348419274855670362360262438056821204438019862020556964466017492243643326868103428498245966175806430248407825737617813937452960628634392164993604608278975717823910136301095658812414451937608511428667010314141997200126388696802053086007299588673695547932884567325028253819979247031233296043592695939944896900759837197066730180302004861779867384010816934885486497736721836787565311034898664474291974007345148379988404949976435593961810840829648942286066954461421328742724063552434263664571154895707747661479356039819425790180219715181615322887805807850653275726447657215734589853377803121558239359624668032755820147173906407605671270414968808064515378487579033497687393226225921030463323722840871507374271455997978165145576462605458542079665974820159266429596741033702828445604577776709021702045412033184127876157930120801055595856965942356367479320561026235350026165356008762294972604705352207076457233732566531176047238663705956562287781221861699912681483691055147649905846701977623472959371529827923481403178261894569443343865387109768536602123144954933719578650132221243578335384675703353027560161102990985247283840330603029801904926506397487552235030479190217967888499914334020281489749983244213729567646829809217136238247947275745016417034856062484818498457445439664412112394181697768618931948525428237275784101408535205466106596210685434216645882385217762740487462871398878340183075031051396164016515958507058375680777757892095225149203890155484597707986912898421791943310369979999678389645557410135919889916731217409567782198360661549258467892912738997632407970029264313267932000180759742046939129672360711048840553168114432763480180980764416867348074737574291018694882233531859833525990120439674831617843565720407916353238084871258113248334594905013929488943764629343839507168365151999597941048485485142038811674838083626401700483873529232474578808356642014666407014815692618791948708884669731470325077199442595749734148148083939373180231023306690640187338233981926258217596091666399344734846219111135741799063021882481698402661305494619824976202290137103769347698117505415485352266251263606680520657721098730707458517294865390101463286932623737581246479445402380031496685413959639528659945590588086408709973316653108866403116381364558108010095409759219263804790431340310525353271182864258947677505164747343849033468083332263320097854665318196973231277383330344745942745638911760623185079474272007355563476156812730881281612706211127843454144561941130847255533157351754097808491618962189480446610570466156865593864989675608966878377104806657449563781633377347336081275982825668513433103726589345156916205849726898827250705012063856949359217467877612659874057469576884471723755367506354203351062170675999421029793146874585368656294311282523894942621627330109989588848121141200497770815239042109804698086623732833029518219834031467498891557296119682314140431351757134391256202484095408458079886352818814925172427074098701783517946064777431345958758374672838303092801136000148415307453189878249747682357096830396416356983531570480901632807817589758521901288039817959731859454090620165390404967259960535538838710460471682217415989002543735129287243807715340648213423487673829080454461337886683250319345155267940784898909416624726294834362378724283193650410452223552910421327920292380798483312168929485164411705073752227597855101748457428377106489878667025817822463551084198923855658012559681580850221324942175607963910486408454780856808353917461198404842534953121639451084640295042830566563469123220779363828702435600756945494550340142323197472164059216440995877416283000362592978244341715653834473890460911961567022965902067540885798083938985944314842860190501913302772770438516344009723434033567761383365841838270010371295082082114524930429879141610962712238739758249908127914829038545235187697867373492389183837514575524948486013014122992525816122495958022454171336716289618757805628836783215541337506348206766953661598095638443760853491373394875748719217564443573668622712423703996824868630229467643803624568514516718286605026749877972441571752126304920466762892360723065630613533855980128490452740736147072800844589615410610427805982093498321088560148548388822877996665392729782807831388651989269051147423251618577681108124335069596311295335554131974655067966510207884275243624934560101643195610123767757313345603173545443224706885977000104330611710316587762478972181464069884688746102353553902993943589895766815227200259166783756058316473717551546180528398433664426449949789025763214338606101920341813863166044105682050126364389756203856673783922970694969574955413153022339465053625969320203058582597048426937243709797585438677270726153736833105194056191659581322107249604659996597950806426989004333667205604958502608375269392514288927526879721031712185758061575074652328048468933754267511927504075964495820711391472984336568777315861510051823599313938585083424401349814814255942026935994456899038638175535271076724628948907535508805260937265946836831079219204427596516936976076923812816812235396002977293747758138446853356389025285067534109856495851262234029351337325391646623936516623618170488407360568293097469858229933877880691842989047907111330937969628205616312558754426953684608266760685543146354556997292686893030532306692266733213921861672260421213671635341991358688390174702004985688388870397125707255251022722515253409747022780413714870652969165943016621819626821798228271344537834064390892875179575374982207476854837806131666330103037838357948342222902626125135266491745601058306232704012349583517691511073044242806698676539118002823030755230723596192900747343036608878405572658857952262798128207307572993657248496209669895768440275201404318998069705676993817331742651220828378047310257858641485633092736956839017118872383162138994358167496545076228943662809062550621416018518583037865220020070067243447566585983843234432949131008802356817700907691867454994610916295887400028686021214953094234953701126441258583209429514549244652530708593399883317944928254295377719008675293632971876314313983886929003542882834624763740421506050970795741269188868411436514550363487806329696247180150772552372874851790770053211221470802589864063660677866139275128192809933614033538692338329458111869178721730437061728845862369396002542508346802809072605385752509852107894091225319070526226784584475415569112925649590050303663439198715099930624921075904467462857573659883170591646326287081750038229945543633579892938858924335623593648532009428209578484179419168178911405328812224768513263667985268457325420815880930878251951106109392533051047746381888687726272662375341393039370564620686901913590931425766920723946016830323431834630365397818942353064604248989488724383504311111306537950087492092805639309259667977812617109874317894390607610988200074203740023547100482804605636138505539974801236452182677712771587466013219182867464558363110276319521951995346163461887044018454420669237083629229286319244469068571965722628733236135968167947877325212637994861460573242829117765435238786307430043815453811990847106388595228333743947866674499324875638388228234241910986518574222493689060436125110703278781896974810348281350252738310667565341854610427796836390532740869475178043170108867552390480814252254722449670790366148361313074521833370556962615529055361233847211278806158777387540553962888594529097655541300609498310539153449375980804333004969822820700764050383909746188143738006666845426870524328126698553872615256049967805912625402185750621840631140893468995141660117282064559270322600918689178483955775952178945056315444056254344566369566521506639981823369571202467022637024539368005131458870216076233863926897436982536433915646435188850668730696016926326717495274802755988745752186746050123936726331926124603405235218876818650786049584255149145224999500869638031283854684134529267970225541058743499590850524104634893334212221572946467660740738138420463076734966214170675357411072051916278931767272815362509753860218050564625104208709018576671158050082416061676171164277870615901199302715168388156428294249486873679796309545824977234523517844948260351036489133976436756333298451325886836905268518845323075394908394711854878283126214421404839530265077557995244994239885570573259140259394156513309520823167081783875999933420838324338528133674867597448916277266206926318918106832540179730578832317338616375080660725500717305737861873341731850323429639580865490141609676709578252229635319219490702172682939522486127707821966735736206202781717633402541348126197269803123432470821271272698603039482437700413329261947239008288459131133241642076857334497108534021648681784084154722823991671122029635572636591854900879264760826617305017686677621011160706871376480434650797731828407789792358948193380599488934357228218887327272888732602238487998748614118579922765569172371442338543277587945309510869228249192528377811173932293406099828910729399454890349861145211931489848171211636474790145494863538015767315003034123080839449330465608135265415187682907528485345484675527589851011064633301689446359361687886096081450420059350497579757863024467179305439718833186035282283524847235235705656758728273160802193690793433937680333521012881899664251080066578478266215627620078602954799729604431321590901841039747712001311262782009891608456991300633223424245742377735343887836442517560893443549709205942972722615887441253115948311139228431694074357596285077402950132875323614674833929481397302828850406897023027591653222083872067521232548036833471517774656096938585068843783633363151930352643612636951710871543733782472603460831035284596429223002412507847761157777267027222229761691544349260577310465825542898324504259135528628862083958360634757884096551962582853266260684761326998912697200744117836992613582512135913595368831264760404962483114549422108814677090878431328889131896784390504104367060419999129038468705210414722980934178237919666754548887594035689963133002855469956630406654036067499849189910578286069550069728157156205674706754204611826015655353466246026042955180610486074509412116218723106694207849734847610286785229981119571820020414182957484688052892783975117417202071154427615864161303142647492228033098055766046447076343590268963543142242775946639846385883953607816869800928382312286896030073771379429046271379746042062257596867511871444118391023052143248307311022095766572032811908026295435553991993956513747875997814727971128725982466165572133350868003305049343375541397268604943685930136273564135473845911787026397609771385757400634193837945094736134013124972107951030134350052930365011819661037760735583155819781243443325185221098423899749222261728017109995361877238073446678953251401319020587677993577167151750747410142108549147908967897293202425805903714163091448343793716766982132737774351363830022189002287958613409999092193131301723735612554411328135542927420365155227840745302879528871432028844448755052338437958768591208635511928421278323798165012008906842682945930481918200153216827817809267512609242748617607225985923875171261076028867006155213655486157155178769965962148969348404900335897171866205540532313678763315828646134524172189161930874692079641824239208680655476994098879729880073361324128412211654609214688584377869621854284511852586955980466089029374658645675735863630101065957405968402007595414209585771665583062106326708326987743636755472804113494135871739745937811920000764411139379204749263964027478826913830831842000981993997823785788114452492365386635464367243353494648042149750099930256782247961084130016777982125621407035438137430088554371653559118556296559063197467316696392526503625639795343479031113418479278197557221740032658654813568166874174772043436374657133487831714973801646568782003628207242249933172655628370718720301631062343098311614131232951744560574377891281364416020766794159784326554264763307336336206268553410792533733269978569702415819463171581461560596441593387133899950763425290344958461503332860881684444633084174733251329329522611716492835084284042884850178709412613884452612759687588590677513119435389418135976372267638881062508444404014993265599135014869525171544405341030731925103827529158095899551910749170716980511707751176107038965937508388422643622722674959434208417413942756366797472675143411343505996821254612199358280117697594676357478681151982124341147891445595037544446072548422530272851106254881759301169067165308067761986727272558629997178340405639586735308102351817066492395414580738180604043185399476112990961587833163316256332359483227564496452510357607889817276094099423231897400846855546501983742823878334366096221354673498071823250639425085166878481473050651038012896505659744240837322006428946954549800630539675544990097083794634907162350065834820235965767613509107826428484502849099635248708701630858204232560514932739934189063321661659343620201216847957127429159528507869999917033941810907290425908713513081373493320540664337896528174060894754584014792681329193978599248669251187087226211149144333935313812377113339334262419220626188413660903224172113434607261592222626288404063656605909405778223521093037325329646677890539842145333499859951102081296497122470309762510590140047956358079033626674973954906849239288964167436002762032309904664850171269731876746910519158380887891744236505021639162912269479127568871862727735091198192257034049756674901625745514805822724589515927950893605832700120677586801329094209312175207695118354640378046074259538651370184880533271963579206146096521052017732289595037943968292828859549802043970416268006524236208097340415452353479472872755851873934782990714737381616808137295598756378098477215860370598075679921372379442880009598681507440275073811336696145278525689335715030792446758274527285956758709680984608990898137479232924332559108060860917986023090138623510962690619188639188287881417080863975641298026541820151539601065697439580577182583470296073568319551619343742643499243838628352588844577389131597417381021113462145687253696557835017148516545313218241687055670403615873547319917765079636069974991677653749570033654119111615450397714714630888265791914303708187711898662906999938152498248760001308189716534462253841708263502350257298723197078082694601490313370999573119787760359169234711202029089949783562212923266563419898222725173478476746624816766140836696617721052074873163414033186279803723865459715384891748741167073154985485993487973211124837114520283521845554488578140157578686908796731756904914040873374983359144368037266822371370208001833678710255887408847953444520574949587014750486336574380157946366151945795415383636973539224152024955846309041939881667321934544689249555357301943210881494319906236525808558970129856688616440421915604331882626445095931180617423628680819763532400516691848823775389470344792175575080319629011910899334884763384828388557735775536628127759622935305085491973013778545976312120715728763488792488873677607511669882402935535268648634884879909828765980956242731990650845036351722036596585293277437226337347587572482204740034051399729769200721316022040464016143075272111652135454839451891993754457466209509617744883895407660286253275469230111662883841742148225883857077034517204013844710482499154293888012792958117562821711121383409619733121612398174771859033857161005197425584629761065057356815382564184254056030699128599938157993658155935244998324261509724621526584673196270371617292532655619029137159452087530203630334326901849429018560337981870446327261939884031952450783459388692609874009723055853460256375847199801702596580666518299574400899867405318073657406103256152103466267190098433124460464061961711364368037879628352915001600039432595486289539322932216766290724413508678122804655049097655798429677733713868658331401548627122120190617612543270900433970015939113855390225145611594749720931129190914289849027429648727640812503607755547717311348037444234850035186776153671594889787975316399987850408801895239749575296571991178022565681461986924933250895612167326636847288623568642690853777238049612921675305432694298851564889538766719159390122581196331124968477120558546046575827826259985936360881760447931802726839512740365292181511110417679247041326508851454253230302204222980359726057169897605989131088404603456010206706301020554453040854377992663408784488003468256423736302270566868844111294853028833019644744547137267400671045712417452859687591929722699192511952482127514352362868556613165776894847231062703386106376162391369090908712312319122647718216941968257413877779704161708623358816548543309938986784979394088378927081860242451671146860011688327893070944524056751937333063807736316354153948685538203828909038642162970490289751935715197773698513679291046491301714001450287806504018556444246088065094238059071580228946125772390696258080114196674225913069853814120615244746002397859640305291262622740227800975994084291673007558346778875798827554083241980539625400547301961224246514759486447213255296015102509411140714782601313490554129054241674373348765049439127045109371888854768339806112900804784275139556355847069213570316406979314379256882030863343452508222484761292114524901818812715544903682437437009848945609151657307337829401165612310916369061531418275369757820060702500133018395817440331588874754797743157551363305442567480619090795278643735024023203223855865668730232696103113737965161939909008732897913147025891131329499470153390382736192906774600392863525909321558051169431766825043631743898320467037716879497361972230402119119160749372045742356083546225140436037669040098218284805238582380111874322539442082096232475441483270958157650974340891219897400001965450291187897399055649515035760803748189497359166894926209944177740387006289933772013241349202477969755060270853022248156306006959016729914448777628273192611160775979731938179036758847773671380644777800310778845024211395288297177222412812303086298701044036529572413061423821345538408216421409208632762731685969783835971657330106770210927344806134033313412026961895675337775789764276448751303918463621365456733411479215085221680525743812097321867104920407706824694630006004242031131370450229032474886764424012726029104796501251498697730659566484825950643742813678820670326560791065840392779130914906479821530264781619216015053621238635322172834620832147069802821974201515532063204682376986502818348546640003229086266886621694637281192380211708492085722237701393323985554849103136456963273388811828072177016778884435644976757965474531678893943120930277708852854852916635840929283374500487909777968312522783825293288088757538314164053523960799018805827508193434785071747020124247067469276724345398244478953553352546230894087304769880357669703223831988978060989722826301992620965917071543829767347480846611112709507128791387807554229386056573934774846999482215823756726088461774246145563316818758585249034920499859926393669451337918173877434489008513461202044999566402361180759933275934416532787981089123852636936199470769089812572073469447211768741697096760018643451258347729592819352390538320997669153608475704912858012193190388502586080876822480849174859842294501566652654940002429693756178871935092812735090993817099035765093204767185113025876956913818168244575952268068948281826771868116580828332942323119641857421096473956462639577193615306344240943696308532315616425439643068286673120266553416954689177442815239651998298403307940206106290186017427308766804583173386866048006500645427313357930722117158587304934692992185895655976342335570478266459179334561494726216958108971553742609984670930584987146339531532919400438486642968893913637463445458997401725585081221116092093709788578322919920559662694274207931782127218698261751991052860933697493103980553062257464598298759179649816994928750140144480215416870471201675179509668532694871381209626939063249617851427281227206708615901987506298548679576847456076872284647487114519756578271960979240611979655498775220689247845856626204150595221631592878133699738694271385878362936852802916763828510087193547364523044355944969841289180207956814909843032403442394026571205313777969317451404396789922918167597443583366207994210322846689734394481288206043701558283312199508657215969822362037209876167653084444070407957507222803943925390926010672065631228301575282526462836254847368227575432177905510700485302199401717548806151158890108145233463549902409837215608445926560099598648950091344814826248921304638368180666432362057029054968066335436886388889864447691283701613264289601180472204701378343375714795739292561204290390906647563087185841029773608245744770454315937911889877120051388285099135065575882740203574183275998788329993102057877560155092094533888995183919940276964019321542112482882564704660439376460376801610671544397216571307549909381735121480446610599711711038409242377262935383646019008243304628463565570825582592685703923686548990154052599322369331527974016094581310591575735136873744361525241323338409817903649106736796201868718397749712260221200601358019002343397563499746879860769070782135116366527786187697296229786412753987624894700210765000589310871660192417711799374528616332109240755993759083338947644213109868834117662675108962356279068749389304547373422758649356000355691408247427712613705575732138240189596472276242782881779342093223685630943833355472695651412650164824335356544600384322955448068678807397283995867464585146525586155985410687703271071011760981770332436207947839588209585696082449405260198745647958192355902732073369398682663988537277053265427592991649496495746205468320873751738310259246723232206373508937564474211997201701312074826965917556112780443249927692591959004622444439027398250848595512859978041920825138550214874343940579731917620114067237592868243885098864395496413844085944849742144522868813111080132348244931051443946834898684105100024637849404634961886369641619432199983134924210103174877692128844279778926719080299706227070821777942903778063193431445513505825234503339611780452667300957894411653224647796867362753980886554897730951421010558993339538039781799714459764597004417461976955135832780412671081120180280903212936180072729321150302689571712097856609112229778860888941983345912081112589809261853943304948539724798008169069057054489901339184420965234491337725093346508530976271497004652863485426294637201991966813868499698203958063733967122575946041361340236627957099822016108164037221943454599726790639785233184519773718473777028748243777240551532822250122756427057131250825107449014568213384354538361977339558664714815645008084810168548324711701616473659388936526438706662145646913965354033937348903531908223848393097226772401685918679330984883937878205366703373615292116427282001657142194594294271376775026073345646926950893100058893475812124321984828793810760871508235754564664331281988732212768043731236519605130940245329307781397163150085063567158265833728015512021252988594728581000671793575512734287710876320258991085877977910632452615954263896648847266768583327257075006378992069550697840363334016588465493010094292403578593347890844526312116885111827770724168668849653331820341220555241420032623967806922657465956893744908142642155279877716365184266031295414155230249201392275737351183833193033426161710810918066422377907505869249756564193528656846111126044840835727393391261256652383472241880774905077080359818898409618404369133302336283984795433190756674479752497463941949252940890191121640272543784803314291916023461325685873366546332908180910825240818247588707619553011100907266968817836368695213408737979351864581401206806124123723638150590576121709370493391764049917967519948813482514392900458655323297481420015478553617053633329676852763012167056240010428540725580371752516964728137221831448506626363584026264150776100191725847246876041398767171813543565622817485636881315256890178723994307485546134831734806061316993180314652662991835364548034286518661502091440429341727927589846528678099735919629011998480496666660172306554641375267059631267365664800974484213494190389934986034777896834378620086332515022982119461408433294299532970615578063769699440957025061214796065981429205380835762790620622409786362105072884567224921079858741107856373806948891733431090792011387482061347551350564763083059959679993922357462416069093622502104248779004409209749087398639283954685042241682991466815313059958957578179546614404771119109805064424046927489811272738811323019498092899844610000593864249144246955339906369193995208258193163534271710529981833604661500762449282752996173653874892528964956163177191292287888744313156354764607016135788800066785951413474897974911286136847131563204761843589940552919186823830839032254249928104114433871755427732456106696830823334577049068296170982595115344174025913051899963739970258723638382223984741066840440475439903621780093693361758139915026245037459548631743336371187914306985740417382677694191760678999103397607109621200689400650214004327092723509269776144200836333077572278632428647375208628858278647865540195198948957451738820249671709144057265714871327323580343414281624089997342221483823418449200460811119900684196100252026691395404119412540968827034870984785525578021666665759223882485339377432082665511268003250429142863819851456645837070586107574782332095071200506820762843260470293516691544503105800053065543752958408246909410388041459456888289332452281567250480711162016606365692494770718841477174784392271759572769480693335502319929299789658953664366808205162525025944444389546385173031694507440771441707651491617840112203437277347257678381851011317440873503217566085190194758455608287181669705067878255278666313261444396154469746422341025269489481179616131852081565906483373138175217188746719727341049747820594775477584201171012745005476651132133199563459007457054013625260116518637488508817384084855493701047878422475004111629915887943075308601547752299888900709082442836544431678719529940214901788697533077620004548230563386887085128403454231793017218373428746921252635152707753820227267099075927291862647554488699976913059230412278519519337067883731917692026188793404858330697377834165668772677621046216266490613901236175032374419960805496102115989329309170866610816734145820189568755483955363946293715263179158830459880692726101123214417329987202531967400298310040202043689075899220319052250592436742236461161517195066063249818437331732088917072352204146924791794743320933967096508885788259832136771808849694024048375964797351033271464681283562858122364807790213181725355157548077480913351694386308342309892130779097590564207199642493683525094702331289262476495380015385205461340445013018791166248880616460318737678904667129910507101184920498272579771042471852151453609255965598479932715456255575976435950101902573345791453177086123404362295245341635867038747712765714254778481801866029194838890854373682739547391502211519761541416305325397551973616499079132540182883254184876105150000956906057363777996833755618209704746230207554777528352262952498930111980435379245371216566718058062487960899425721081258770292006472867322429172552936554688629929307980587349437552824635652987235852885714928707133233868511758947666504342741564757265521025763592915705064108109826560987613910263879513605363712296603464445566174286170456763788935623520029720288597224700516264611023568457527859741991669867703114869029961327194005838622339881777811692156867224070668100946480546432381695086151686160799417185707325421826020230207366868956853473150921030768558627624544772636341728419606529447369730603881273223925757006600903992822819677641597689548606928991953494908332942629931235077510358449275120646460464432942221107284176978571209959174227768514632939541145071793063761483969026407402692332034364302029231830004742836350975586542235023306277154013587421448627825675215945612855459877836464453539625098090301945876347313406878039681285486045839447916302245641472481738262088892202443991525876502954968839040455628962848369307555518680261074379637968801830888650584619605340397056287169571931057847163888563959335567357406513542142439815414471991529272936706369293469777271649457349858275449366229400686589876136362559485626849339413122651683761170835897902033811036205457808892637033720283502858866836798776715533391961422280600039187019624739232379915557988694918306050987670610030210054253615365539894174035202764843790539355562549295479602774091075134920625164817353590579229875976661104509282433876387716677258807848717232816808907437935312120213357781058175609964575899200708964612692324521078810303784964564349211098247492969558956749610110774519257614127365117153444896865989219286329049173117548756219514177747512743748748765672036751330585961878226484383227418345529427412848165878939191634883287084551407967518973226122632156212288402173246404600353722454836196497803483979480364039508162432143237569296766095123105971776928380725930377262386452354687524844488383410148547238427089929428711233479374669840623884953144020679713961544011905098041782274432923740880783426935342966476985834041587910226155444813778229376169500463262595616361038011601143206499604384909329718647514744925028163235810944817761997054747249364143633187361565630205572060649029374620394160401415022107176899630333357450519569806957628649840693270591488782742728798219201844378816859162224424208577085484502673935520707170350527134545034066730173711513062959638484808807057383765440434611090091030986469524517683635968405001469707045463812639972741703299973151817106125626200111119854824605326267956862656616763623276222752568781997637223472879150797281959401557422850888508170563240519207179034205412818976995947801124694809743941230500768499325353796143603261620828913680323641809868867323614506640538461836916265942607257087804562680680409774467141070275591618899730031206588985457396156666750368368369243971122383972199095908518501596754907388759931939718524585553103960862645835416847236210310726446142672284671324580096889244854951655430626539585685362433278111593145949056719741512762008843205373409373093944700783083954195528468110152815519109235977763508512250735670530068733125097279353244594451458133980350136240004066070221578231949847540409673084786307752595820685312039351185691472714807529375307237277874787978457850564594860829163411444867639468825002493324057919137328124633136622689249678396551827114543040922907969125806757395247259332136395922886680867050819887345961140945204250481363808696031798427194544343197005150123564207669912529320204947942797213150659156120709904313181073228785410008964148730124680842230203200689554327122694233944804216707334220783862264817749589066622597138298959671275813457954891038315734708580046118482752207231062245378318815978023919517132461804084068637330561370398939461021074563801233385046325516165586678577911111351560214296021098793019726789086072615815029733345230654549939137871767369969989452809975476198470018507429434694773966085162073737515004119767306942661344875515285978749468888770913041998429705332558476042720889962002566296845134872039861093239781967714187701238946018427513813389968184323194497028359706819486521409257085888472416217166344702098330331673119840357818455170421350201326900454984595258939577498123575805733671992861099153707972347768138494443012817943853868097472570620620710257941972825555601628061477874390511296290940574396920634133406147795924036276913385445637113921125656461729774733432572145112944928634961806131970003764761605602881649120342665212918253355278076661032853150042857890032126538241869252596203239773248640051809361999797182364128119741530496748095127855058398825514138143161811426852555884550826876282703781553983155409649512260329212590952234225142239554040049209460469850913328852829468185319483831119951875088306686966419703967674250525862116470998842771558034401137166286711817439002032634772573030319872798726540980896367875660694258096841750166398311459535385266731641737021622834219157754381344830096883278053797601510366764104974103381674232332608079912194095906289613101930149071491097583535176085012302258377626945989316929009957009518277592648409171742985095522037404285385972871475147631482228204583163805385301425173854965118326548112286094803521290490412670771336403260501562409389036874113535564898071860007668570355780910115734846132346074443258536922361936629413992643015853286963225720562984193596956534069042971581680444734021121323829473252342355529894661230101546231145997518073028613385861103303325116158455842971376617013528316890236715983589856058373187171888110404237510994263291597960399462952094228249307715278443452227942287210681642722905809033958399707512860873302015362386070762220947161105159454936196421601035789648451915040794186826897734636437105664210736910081240005734592068143526650116178791608960765868960417454594193867028556512822545372535407795754750752204218056688236515393621167711161735750788356809154981240675713294167217279267705851906608457059353931176289707468903133194363193077814158446937646283077826374561746414130700139517417307773053855315956831534874049556698498926003525189221072145605983850636009022358984590808450707969807341176653619209921645320621971320920489602750703169097478303486458837330891491490063105706040789882556364685929482749853413212663716331540062404715225908532089223842916581527729543352549413471431547190762536423080179751404096709378584645290878734200878035727150120151450679428112192612567393220917282857888143066798545442868288999123537665547903994047183159961729466695675340685835299371600485106066964575625052144750899647433427753556696609822038288631584534989882743310593926561792521568660652713475272786233914949845722664916675738054864344781212683460589539910011336202754763923683479747133831759482030339314505717016139962610725137839092213443953905169572503888744459886016661604603396674560505454420052095812029601146547723518720000451504790925459902644331541098565348171993993818090233572557934545117432857362443280469304243713668380970342457165048638435049298267786241278962384524975741663563495499492747642949471303014576700488333566355499304971154723864411650581089509149851559488842404030877589093070401945460854580047584068450780770765658388577447820105261092285458783630388092271883630694849980293295953706172170230111554951490705133552109025937774900766560114382778367467826640124188712109873874143738637857591716345475173339006651015201868559051464603184760939977080940707254852699375660023858149109837316230825173756431982542470621081118952873870962711075763241305072835324802970339179341595848434065414259024109798527741108772767435764367035696059168371744505986394406222927691688856973827108735845076460472283758149115897203249166538380364303227949940288768441533981652454098477433056926939404615882505347761626374238817471303893912813627511189441742030364315416407500383554278919903817692821611374487864882592927509427484474818412249864525517341990326777556800701010029796962755171724450643121813761163266650224715455547059175707097663943236508352887327433889315446762806159513847455502812851523649088885596903055859580882879840794426193133958809701404024839629214445808919888255683598129219875656784791488580672134044245133917534983204836364498619435762409308616558808313530419825504093568727024873064392942821271993824950966184047018857378042936923437177580501394004674280712782834387821694899564340185290856436426302899899945601070543160567868647387259094670666841278644371247935846708157259141205550128132657191147486409424428155180291538768197885667169594153942419651712654008286482420769686289156082584306078125703086521387859499850969038964359192459500592739444354527825100133596228852646172086457392949491408664813612892825033541960805476934985290430905775890042934844281417457833549798882222851552576033541107746907392799067736295489398848307042360834517736629805996839440868619584428441431997802109165495732174078589473585455380494289268056821389857645877245793484205900156170951767893132282962931267464135106409026941866493227899427109666068160641586383116815867544961249120506685741145023134996709755800584500472715487100260549304399576361036031425045518509839747140585852892737157234982613179599696004145617327302888629247619581760206237248077582084795201833230201865416303538705512711345074471573457291228849104287547265477964450550686815700135483893138534362450622067242988195472232099429124849189287829217021064944347958638101250514638290443945084038336372357219736535790390973930128267086529319510801571391575137868880971723860818578618723841222396060912744937674977240210367594409984776989154475425765725534796520327994856855382741733960479924681739982390586558735294810764160645177320628379110545328963987314889407911713984498054035119757827245441492213838787668159795187777035797867917838384867511476522372939933444051395883500710010178988782082143573637695867406222449048687857792294337445633555385611585561594499593284295713416365934754752475595042512433659713575113826646861457281867417586556030629330217121595456222350388595685476171006832783870483433725906740530809429112455741449444819303269604191537973302834227320073367689722072848662352046571642884989498341987149184573776132938402659930826494194151209085746996424774969946283838469359805845491361514977967753928653478655938735120495480224879893553701623621808661599091798995979555289933519620924257412424473180074493494200848344592994552885671866395161662073300781408310449805596197667742945775822069311203728825552129828963852020503135585274425464107340076348978444737184809700624366643294922883901282292507012776781312275073387894176152918007759456521955418896362187014713014695769028325999826562873530312337784906005521607168922635373129279250988128418286357139658539230559884899846339765439986102595402510024195915090277311214815900781992439260240435798612129850296168502918396946547795312102108043107834102461662657562541067449772250828484146611071436635394289402859050135824697103340107745242386878830938771162444084216239845335425630685327644020709671341306137381792435048321228008257643516340496901706522261459806620426322688845923773816976762944706180993463039087667794180145826545104865420309136347766526215919424533851192013801842060403112756095430340777612369784638091499957592572812090088956361913203491847408635120895688143153158267312542940180831320457917318437808414316517223246193726648335327508493932650762592008643028417427991374261304605185753076603988492412333715611356677440141201752512707752127013768054044361127884810026825183716669077864478713705626833940916548283048562368017534560560943968612822995602201019075330661175877852733352296394936760399849286318660568687069034072176750516722817171385206154727596307673495612816057445374919459889789547152000552707240860649907128830488668689801282812692976398980626081167744227721785211935317290107867559846244855718184829390368941563156365572590644628606213398994722715367169905553603076098502570395520672466093538925777306863868098843646724888610823532482744112343375851289139860819544132043757014664476800543001532377757385143960093626061547007898190026723233823872698081181636245581464012431966941815385035156451715389137962329233340696170721370446990338976786280828464049118440548424141016348339919326107483223735843089722014866798312906805453749786653341082092511788383103349135816673151425711223710193226755962370699378900251411780009673855381544517995936262170160892081919859812826196588424727487336860557023980028227387455974601771411650817574161668971154364780325913605879555915631757638146697309565083253812311540037859302621555100100687995238749898010282034163512327929090928901669188945667984248771053503690834372742393077905709223398587944433461899890046580485190847855060785538687805214984416605333020672781042234112850505733016946984591695229424010402130732710855039432882238745906143522806209125144429798520839609672594480693759588704617570729433270568820651855960786469128251772507993374424143300033190438846752097314263422105854096548737874562065941713968044424002716841669055125044666767122765624212769427832775584876743952815160467325163893192173629166853138542505873485631406150586483429042650904381538262062696853785505501965586596523494022323126070360709971449845709172610353491620453705634511021565176841115001945310508291607944216103989210253839765129999299215262632315211020038944539702307229824951726401276091224853685773805215741422979207226383591292483725436270243325546381837979249445393803402429815645334620991152513689950834289768723346410617305693447836027105080618121352404855919564229732284431829115469540572520341671493374370526827776914915739250390353729128772328607339705899640475991565137636760089823998862664664426898510076615797121704536421494048893202700634441316861805024357426697405236127659625577097293708829830060445954057237260353958371537260822779703520838193937932634470308943107430765907538022071830381607556011477602237242971395622807935528844386154160186063643028258853456001813502233200382158320884019815007207869559363245007051809019256941773517804678198813914752830690040998632505430225643123473486326144933244624882245294955843437300647253412309861661246139197329565218238875328350750856299332889166081710185804532387326896700994355671553107960684277362751706397742579452797039319989152797047909540303475792676377991161539050863065266882522841544859194553483143812788659660648657107189928086197947178875145651179720229826876208163187340273617312668682236409442957727164135227167670670657184354445980151334478413896005608949367136538871800184918618052094199383390080274401980459311935465157666232805760061841247491436872325817549274869456629257993336253897179711316185945511828668477423797745726187191455446290897152546137182441668998877827837022209697804613883488130904928222242482399937872738051028547361252629521736206462580751598866791737918479906575613652312035607076920864929317529167862155733320949546630825374817318331969653828114773213780440687044279238761361680175083894715924690843168033134044856270337104968995861205343057963304151974950245404593240557967671189224273028393210688121488562985481588001427180201862410394617517450278613031207103699345121299089058068364604984574962878369717340277971933805577117599169321536500463413024937234431823798186713001989905572324157859381770341299088900068221213838097720052023792679841511466707389255346816238714295080599407342125084740309616405423847780550413161033833582746652120412428134113709464935050634767706600159801537391016722758703519756694744112184423708592833194570534255278334993431765111804798559596039591472236546195623063008460726092713432142014086857216788955302996898721221346243465555988494993257491081166101824173577191235819052971552999557375401574420643645994538940477903742631158418444762419383431332749604419263519336350960447298187266419740272404869239028268420329203714170434746761260590757516503548342883935930344688013297356892497089394018863263126992121496063472276513493045963475425622337940824172246885231808510170634818439497475622802271504613568551752855907286525907885872439685430508604774240349976906557482430297368695922094462516008141714594195985354134407618682721218815061400805334950327457099196470803916805971342155567318510860468039873306524931832843955595341163945557883761801047331004935815439573486010752471366760277357832115478160193572189817363728872165585489647237664930894152102320893362932519030133618696900407416779578823647544819859002205883797456595818636050265692785253418906426269271684833063085054483525706050654373207323942014127482058479591411642051454289255669991353492007274507323144274943927305528089593712440160132967918267738339918302011157313090188734659455555366503702591776916963483042809648357207634730735106218935033561260295183452613541374807930611514761352485822848371164989268516618126616070679875837997298150173466805531880356446736106489333632267385288575772980707908536352578397808892354447187687106782621682224110198269182277937577289013106607012470371546400158617120013064298684942119194714533123082419966660967800550747765245821614469651057180100279373798103832741949924189845993360168771976429386604528261053607886996465638726551583800816920609565964636656201990474324689260741741612508384173550787380392315516805531565007892249562489347054876455153371943897370210472013117894685148022736662478546290102169413752831395577696164734910955360475933479928159346205249614815143251066730812386742624591991754190152515040966939055860131655442543490353789838245509989562480477531060701164260745338520225232598359037017921445298710897018163365661070358561255066198916797515749142004474685161801261995312277757151422414172219748302038062913808561016707967199727344928945774447438424479207653501016380772020096942453375928681720197700685516311664328307239522950310913204095939287665440842312527073358163309607560971053633191626557398170931286978118908913619855814967953317186945797513612499093840040837279304818484088182540472068982817282441701089651718960326182654323953128612218044745937582799383323344483237592304483719161955803385996132946559317560948184989852806814356729995730577857116273155456437429158327945655194329502251981614946017769655539596517703119330883280499737181530537404200789719700359836707049969300503138586620243002020621261434195931890141632217087931557456460853051083165274911026017762600056140825848219489271142716161637745850038804869553637103917681846471435510846950603724119728245435739226470361467746366672466297778488842438285353082166805446332255618962902430494282271741153422075947108349639576592072637472885554648113147364144286080895992479796749495141457591763070088086270678063654975107444407376629713183319361339688752773157987036256876404740284690860209627066990136202426921496263677429865930268026359283250980633131241665553885923364909980426581982729561782305082089152612857793449441216454201697443127958882630193998571513598568098437577426642757535104490900213237916415164229824436761750625482605598405615308000764884270477793523072443699692374443849336906315567904985918720053648815038678438243778484741941548233933079223366084802061256178605497943647381102459908369079327465540040409823776232535542215539712695560526163367312551677127708459740197722000825043625893793577863016243511506498292035547009160610809370165722043448752443042168624581342078690470505973149476670668859537183088149989603514283448542412135296106521358513028980861073808313426015545872837255644400737893840574951138150917762958461395125203532995865261424367109709405156173118946596843531966870291905880514306942226508213172853901463835757183165291164804530972275812435659045662503837253243648306838236608766765051787609626517328179557341824304220206105878346434321108074409174239395996123759128314814034833542238543478473602421469446733699984604611197323304859135378886641882211741327898478651417722648131158107766292430455376757640823746106379960286697430315779600646662777739972242164921388010421636666926179515564074043612378971522322779410754757461013638449193578173943599252213356147189103233035271103885203501597989632780370365793743867439059838384516215510486737375721743083994741115613500677821769735578940870840457887830916530622543943096554753092607324245953704581375371525766800950507845270527781007698326838627293350822728889073639715766943028115473236655556750220141157400975093212734484774881694453642610525879438964047227770783362553629183675105417174542922353189483034070691540713287017497250011243170552007115706934882343291583212249138528046307119353070832876399016054874061592212202752374088776499625786251535034252182017145902546309504770432724168135188816572261696845491280813266292130098437846599011733392405940678818797840991460634482093324804441380068767332194216502510244347197692703983941809964348182650997245771935842327892624581564657098581601442844540530290103636258696451914363205403651120831708065227756280437471083443445921288234721933706993225385132029084834966615211547516556006842225392252362334695531659225050188052463562519065556769792415725478046404201305202222951486408641533296878694574141109172952595054909398822240806030675395452875916750699264759312234237473581606683709119272586145215403646516161291160543622537795822413941639329604945768969278157224362965583825379485456812732910420265353768432165107416023569346297759152625035002694480349503255340867867287055247991423353290161489480501606848746861157684717111437963403209303839898373872726005988879156592991162784560894673081478675656472543809329922808443392628723419473949148293396196076766824314300017692449585569865442298384526200641616612104905884769501706263034684827435187270771218151295990754937093606768177749670146247070342520531643026795381430331519824965413509146625268470615193824241785457647088888861961640187047668888343793380839879231923460786621292273781123980037478477524861340586258376547283468969368952119325389375000118544626350441311111003013858808143634658157226910816438969899084176658542476571935133427106470989845012865962100616500019391271221451285955502882351144453614424975162393060933995939639066705601191640420655230802717714336756329524900051128820256790089322207299897958063140403663009768214940831935833628064733958418673182489744872574453608644066677248972698506807469139048959553146159521724538506371558271750113982746930671175221142955671062691086890819684333263080638801099537552391021540026451731242425250751422619722421569146966436026937262686713030632665468131963325121601603123703802750525434327770337299772955764684422391685524861462456442221237572344404583416990839962233082025737581263544616841410378014200470180342956883788795198293329948716092987751969993357115541229752892579191258386491692474410760585883162286669221675595622164865198118115739611798466896819620953988851948303357954575877202436762929215523173749244819327837213425970621477929841320636924527746913741446558973978405134832652161822570351468982354639971834083285883690660049762472015337200433598250636932960555175580981450512436895080143491781383593484063316978660459372938817790450939243588351929042928810435201543378594031041462818262534498409385424802501651399860289899259771950705993050737495138016957788888418451682453886855412538003691542694699451647394258837547560386767204690530758485777319046497689768393501453037950729848539630378128241472473384253814350855931785538235928370307653616750553607810506444382665685288397551838265829919703585023696105772716372865786107554879249420488215791697536582533609023445827767605660004781543712618260633016602238686392662713746746751119671464271940160721097997968411873358224835716865945143660010342043108851600268888236780273432920646472147720314211205913426844314935709659786843707580337544149263357322810914397361970312612512271327288321222284364470829832161710645328125704633653428223659731262177541724847284192724807923144172011545897626234537125819543966923436536155751636800573488030560287362148281339955451045018789353725926059030696148480798386142552633477455607456071186971437984147836250090846024503069471061584559881827845736635290658793434748772143196465323377623946878060771342310710242787301898074295740683948089277947640635434877376492634418846891101801137701880760636052295630217930044028141500078467398257999093773135153423773400325043828341462445116713707476881074317927092557976982771217754838910243374319490525080964953611950668364304409029359122974671067139367672238727128986161436082988494770275555638751872765078247227008411187669667649612122974198811715015755940954936609713093808781423964281996543823931863075253463000306096120795583946089545406638094083346352770951909073146627113174593429605353042124326863145337675740376579246139793579799912992378300226384394058813770620503761407619523881633465322200813361165894165690088544021878971167943018445111623968528915668390566867842378705107634290864067239105695858154568812980034940750001023299883599397701992693644977468532485681845645262112189378289094791354868472039107476634158555130768701809545540677437338321174427887970184841479338419355282283692318269140970907708692886000893043992111714678036494245749412761802888010734239970934310287828987289403334235084878096750357101944516815193279056434172021894794637232223926138252248092411668597869346866538624892038610752144755579479963163688823169004866174000607828541366999445078989893280585387158201467707227164890745547304154076477064746277597448679916563933768424271572434342417037094156819243723222563596745715554288411862401241536169687549069787297928849981590987529517438161646673266903124141579967916130619140045178295968034291885916692801845765359345201467337891215889224370820215207264994469712280781643802777119552980060548362561973453191488195968310998587236542225434455225729088987760411438599740995904599195816804059786148150302165024588704833248934809617859662056903625682626779126099817673559619918296351433592026399031084180177612161084397614517797059479089759949331878328474954697215681412925889064121393160417952855404746957426113473687179065222483004635893123172059968465121416754002988392587027881847225094021003720836695390252881655042962346890711364684465851068703137417963035223230742083880216342478287688057352827850602786923702936974929752494934210114365757617984666711352038638660266288204156831940800875650218381282670762711033656890782752523006847081398935582755742390675767485750908739862262241134455462365188959032511079286273344422686996476804500970441215663800904006621122645607062941043855821596660737015712162036338401610776660629265856671182240050852820018088978855823881467032817341526776251923745834838708989961459745408280676964839432056384033476941267878673733198157343102962093014560591984907307452569719971434226707785668865839139457435656788814605717898241750359679202020133348225623318107208327105873609337138975636442389843445911581184438694256837035051462323688174711948394526770611457103363132965388868782515916533125423465812964280121909294554875565667790929593787426362971545150860618140580383592249892384123621759031324289868344994392293095747529727008465086795510126507669922552171623757716586794257863579559258036619845508586983402134463160267205609469642447463081875491785455766827273473607846387172480789375017544480397738159066926815531399594692622165899530137569102420940695553896711286902685644069930685785822181855414265903680224416715201241353053772095195037714693162093193257571197758333282918967892221922122727047585349377669617331114487616270975222383832363438956702603030988097634643162242667302605331155543779028363976644757125502299835106211651801472268602951676511511517864790421755793781142427910634461370778855176427906961295964831050425881515089430369895673019462197310654004813474046334145268829395840267157553841214401972786376841528941952545796107511510205050504837774427801386662766944391049198936560998250733562264951238263089274648046425848285520334736280210259455357655439051230592715711081370595010430443930047940878806979654756904515909869007280969748517000436606087098202495513622397811515229774471083736262541144764031474631621506596762450659196503980338736095962629625399546176477716947752709185506945612186165526877374468414593213316617543806105862563262902744625495106292856014114968429615167908446475197178377723202251997778271164033878644525104111879915882359734241051508114590425476088448950640108148326593899093934952079539730309157620542549390326370887643081790794451194807855162011808756858273838377998606332936330178298133355590014835853019705589159113663691209507625978437881424202418808451562048681481583466734729695684037849710449346306867644284307931666762214059752926381002342763277742628132661530407382864711474092007017032216480465272137898949443183275185138370807403325036033056046971094119835847966723302717321227159964557097387318925124054961357790751393604099842379656284447817344927202985721711106857606167057115854147325455958458298434870935100440421709995015687378452995750021460089616329707612399738065865411696416454677113238944365589869368720450464305521002837861674898727037820231901831980725172110055314817568723958716606105162955680312824727519321987949232193233248076772895509196550761496362733960083892579206019456170560151660939121918857396340368938299253318150200157199685544514125527814902768050559649455236848384953203975956190825539562556193520767486847466412637008449278060873540995474936847942586569183103814866992438272567518922891754945189029637344540875822081309404437965740483108735300567140277499481595619764973898158053395447199303107319357791939369498024054715549565380284187852577986242815753708229127548810083446925683501267895455591756339868686737320650694966023241535953648005572918396755787341757602339260295814131851558391020978137737734501204630468134890514671810659976133595972413079964641620072705064111489326607094791487553089680833286243544609528135230909317288267136354227999537956077545760709618570081589186512475908800058183577746905181708390037167282910851640882597377697973008107522467732694450940280478017574257722680492300534445428183708629248505062859908130748820070441943182916749846687060612651337028028072633401764984805067482684471776450107851696334503901025043733533469373456911459770300789717439782782169855508882065206027488263466584841535648517940190693384562430708560696316265340106687537546532826413801483918399977765190006848686860654883604396375627904066333068993697844413649925487704040011040523782164090176862721741861226405303328942745094908501954312679874280754872115878889842036301045231705914016305446397902818804118543404692939648094077413200406038754146439849160325077633005556195938909049970550647013451406141468675974834275119168563915520725703319932590340452919973196745745693344843107492149137077492154386386426691342326496665913880642365622920955841108022032178466836868845105650737687897716159272990973871984333260246793637891278902817475212075618776308203402382883150469750161267288202028394775897539961241643325089823578452828488886349861327097450082655379712743277765965673353358076288872328502593058696875281636263297417247930395464187589015156955823950066709020244058177361145849234513768026463386448928720863391775791420490967514976172323364206612244130102125106806169470746066021907293400094882135539492421419642872528828930244532522911161598071595448729323452350121019245667274942936760734941956481774879497333451066475936428754427624040012061879955394655446836352721945315938039137146944794350298337983074555209553921050943671820795718489584327101590763449912336230709169205591565613109560677833940967485244455410313280898687901920988064627073466826962922563981561433453813270218660240663784478860492524472552592717900467836572957678357509773392595118174262738806718814031453301951602623975392840666270006053721694666089368978450180113122226108376667536062166913442993681236066375374979643778741731569317611786405096592051437286412400785111413583092244926151739711964447976159993498953090584218485178274184023357059031065365627794349960947870010526874510251313673221592666261778788952812167566587254745188094402731785373121359183741505241264389465797127375415657433945088053294275076917056247236979161515503762855325476739865634972506226662530687789744965525273368545847103808099407495489557393978757911610369802108641493585552103767814075353404420684214456460483070911579254069943694845401319591922130542218680801335799280947748175960807845279820369891139784730985631195978452311927129459108208263732223556817716601395199323197403691488454986096054760107414245115974859586096205318875213526094138848618070041960851066805777450279936898527000661587556873863841399696321679454969180338597418600354401483969733418481262008939170873139549136868269999286066845721315449981724331479328024183210684151632441153266744537283466634234908353709122843532587768922087478012517121364763894646710062367975131046188647919528793583350930516859516384901674087876015532017783998818863875149892679371204900297988523248108974003177459703505024897274407328189334012465248128206611041133752011981816968843616068622681265354302555882602227682635580169779088000493202481524146535446051737408841030611195147322098807873554586647278686068388446755024043366102864299422808579957791120007295852129141509010654009337839196308009740140017758100918838824776131566721978794037866510604481537391332000327823930484622249657778657216488576076473187549911541553919672402313447115895240520894310242657086214866181604232831290157575709229720727569744581885659306646166618014234181164630625957771120337158778669328171481924038030212595201474395211790761889453700972420609343229284546883772761531366533289450598873514736204377190074268512358767302187268209662697648045864621388571785687401866460822869006324132908918415502951336545497024869473948695732913062098400969777318389928462525176653723753491673906769262465080597670315523875979762121762001372626289461990351711873641687122527023788453062121651760213176621704041167459918382390030760817810160450617356602600080491717043758602876845931507831879118570951721631783566793219032313207810387955742416793496008809055973236638736175567001490382709048964070628727110218361479692683387711976335130010433873395682271500440896962578894248238480957669325138469913923369566497005478048489685771787780112280348303582261171754463370048167957089446458880296982391181046853776450153066357426303865419422340332949752457352636280256208786543204051451899105196498492629899321238584843288480601433001534178242775222670769633647813977450348172098305945551561000257479928332786003788919792797739274329838526690554560966199192018852786930598600413557297934543410775376624445107160831643776105263024637326227980378241830054794560540190668235476936545379228210268474251546674802235334460452940093279357761295330231148127297198320528200600097045380179768848596131594214106745592678567376383240587585533383805145683519654518465551717435610452373774981227292330711780251493843698478099898631454287930994149164275480903550801916251869775439609292448008015593432767769698835413672949226685748509392647113045901919592366486935865357823515163257512140867376495615237824885015793553809949626400549737745159259708459700492001641902796533693603096417059889031137852366514837540956536917570227011318708005577950877660645115277206596471112228422779375269183543780416964027597156221629456983051598821605397619745976367614031701526719567093268734806375284098860917400013724027997739761095795865916259929022586716569933219921386115525290345279041422876004795888440607038074959858792661801029807816734630206648433287092214372022583890113284060648991904050227149934504541167514312834230374161618878337839383681217638647217810664368598233628525624475521480148399825159170316898298139223527941000988972641857212729468192596879077821522673999156337921458611833741902753917358006165458063586825542575885557142701647796889037355953181175203164626828735431055641747161120522565238218498321384664136913263491908524821682151270754925190946129867583036174823470711153988214652537375393954670835954342603630670774016831046284505079403529554920487716509032834557243972850754314499981724363842615926052688571179354745745223452226942195367591228851657840955208564631956882259742902631089665986138551748547689313520363454886258912142903682378959143538252297030695659859314473611902728121584224252317583400780944825667009538478885541525536904962778524526781785775826843593469706026035386376233798114736391089327979290474877578798375614311130052177328759283777621626979031464853425999895284365892849229551567013666291627322525445012113028465726557679787137776489823484308496726676578634701951331438411125366983584615569127365914290868987396953659587872079903952162155005169562147059161673553316761061010364471501950218086870096557570150368941124074874639040491952375255391814426195021950082521829762509254284136612024445572405519999134933975166774432608398299095098708492438083487419313310047375344434200806731761373886126526996154832985724796431427503661569917274444919267465780770216297489968364215676993244201861473981855361661808587500803498285190512686816653414116724176832918628495640046823090165561021465596858857037587514426679193230745371761254101110138574699825911252815245494663762119187110179102061293917331460190894291912142832944580535821399336641339066378414871062332311648079516919188935949919873743892508717487458511965419738582441912203864578805593100229826069879949690491368247138247014686884102928822983816936549776995968803018667036483805861340134155680904256527150524190741860334502087801746872487288647832553630878970121496764916937911261594635615439260763303201793342037106976804634204995806893447190208116629035683766638407582395271772262675832732599065366226297682174941074320700293148210576016297715593910148388041496022038469124485913044646461057032062913414917169097186705216781885210649520676368609560111219080489443734608044100901809241389708987053380590096619735738209802540550657827043601682212862422861225310144298965376798475116357997840808104000595344810658208856796200448859367579052407170814199108736748821815034264174954810844973586762967048447923833605231358035657809666387960987890538415458730659999357371394925555671750847826111925560166098739537187005791730668283174226312658898394788806957671142260088316468546492515473362626111449635509188295099776059606319197218587852855612716554971936564928579709660761529722409050198902232698883549649377190022236856802930992710836513788481929779292790786694958632368163105325595760016914120863979115753064734292592909021690771276340345358780512448898168349571124664661477286452786018213386275037358583801085716710427412523728816873186691997556281895823259511943327754734320485528797964424230798055823122679725767755652350578024150124443816973537911784039920900490021497794055425299542619552697504453617123638764199796267398350735600200724304694637018323324363430610644000750456041715915081685709789935312355811909763785644048205964084133216590201390845201237838512283156610324637094906170012395706842428599788421734918996965132205040627320810484767608863191851873706381713319433711019434644428214826303775229440991639229671533649864280986694594297423131570592375268993295805328698275242514446480949951385755665947748527843031571115490448294493173525851718068161138068741954599095579665963398273641758946192128063854752896295645070634135411442349112143744982401721316433215366169793461283211954423758179788879171815010241848646759430441822979678845890185412678691605002987002273956196146027024577178074842630855866350563732911327602880808813725291455573973163377550986792561471005872315841987888008147190895674784893142604192328925567657569007132306209221869994104589845108456897648094164959930294165266854975847607377077812641194313983577238668152776674601553441494463448816733856132506125487317407699369966871964479536436067373464166932725158002571427605695925752225627746140461603914816919415426264140383133942636790506446519833270660911648703327206353071246260906931076310797176028041082379591563327391281996476325495856118283317148657647339888105584347073409774746103663467684094772674557344084628767275215773125706948258828869855294211417961544677819466990678826402392740310711862173995827118069285086641733812007803617807704983046464054617595015433747991022153270779987583801260524403722593002482339153493919057863817996043548604323056334880673274755909638869913836302822774024725414046801897310137590784615344642635893284602316452333711269574506119929565966953962115915241732788123699201466904272063713819351008844359520961042775995743486846590802989243091499962231666216813511337606160522980995235952515327640807125319567318200043490819579066280304157599225930113064358176196918382528591829186085524916249538958095792636129581552030614201127365866390413252833709021042552666141558444423554691274707179472598282568062697054780763581796306404519043476110429049051867266547928129896488121669632554154601115255751545178516328622076614523931277812665903608347119780313457639670777820845455917357754635214456791988129826494470508968372068258137985793351225770057084402940517628356899891442635840857855862508155709442162037508692027890889077380634447863725257599461877014466095243428301555056926165989404492012318219051443827851143572582238155123327715702916496900799411468952602368057389227175468179495372300391149894111291694985542094531460751325286642621638633762984204257643709823499325419723986562769795141449409834327483173426829520185827399830082691280317577414613602233951332635711237721901234557083402179051582183078905304759494737393083256751900041750196189703892801459883808994161702377168460082755657318665387157896513658629284398535204641405939119095968908687711262847575817421781150203247311995630730241948911919394206495400314043226718842673809387389893564509061741230872592639824157998916487841468237651184246463466354423888592243246195406060457548280889338285481549838689236293131549063396652828648799167581854121855459292579408682646752604552728837146605342603465320493163437600145635807065346647673999366624491716510919111948777538657072168754994691779949255720819917129814376933709141598468265410068497536006101812699877543440333481261158209587487441343380541075684789475618896892181784267503301282605933488032628966530230431653004166626323978482298072625147757857873796700302014559609679358828324639737643908504995865175438385556012344604296933212505073645857782376622884403705731633987932682596489061444013999219569876725318984246433791133126567666404000424046607433613883958799956339663695902247237207906751859214638591232133802371389126512692079003073801280080541032001130384039171093566598584323991408045021469390941000836584810865622157655545600818220819747977068241121132710875740670285169344861696970155151463182272464820610938651575417282239397967958353823685510519408169142974416726466369871390062611408972646404658311793933845229763339931458803820969780569845996648319369204051108096623291580358694853529422895101817074660458847904034245824077688142120458831059674121495818282792655007789580406467178087734132716441862256335991532060895624342769517867536616282070309603812771163244448891459464596771822731205041589305722248097978127344644923145712711661878304504092276323107355883886585772293427145331632896931118814014923590694339737880085707531120913055041102064477842429929301869105670387966136010571901024788681166970310089792204194556640829627071828789775345744601304217657022717289875144602127818869231456665307352044189129504768420313722851374791159943685374667507327280088796056015516388190964185834711945952242957750145271574859305265492658039948642607703214596935998541521781863974434705179195530858865885883082937396184634726166636463237651270286949995890636939079198939848186573544142261608407351156928661654361622546526521162760585929188752811778591198168767811605676774030191215824295413616467174627190500458581924230760868223398439473151571400490243111671571703242650164378129380882631086392060958108527772187526139342292394324000870905246714348046095521677902382616755065496014991544174357678873761213942019544427873498760850091025171019301493217214191875057189133161423828628973366746622306180589910283073996953487019757377472271740567860204937085381214960780335731074685813976164717761334951800774130812234467789760810138372484605518225892191507088063163241112689511766612435846334254849316971863240997695053804118098271276718340556269076665908491026744838704950357536662478884191287124682504824827486310500479342425596546783679854609848731478785994479829397956909086036721747844430462916526459367998997845514726709768396282263757935017244184923750071347500582367186168402885204896385568989239444899981771441480826661267234965953124120928249010922103471788087921750319761344595588468941099853539342376160834481269935138749684455210002284322775608248226113842374349062520675988419530283761617538758908843715998584796838753476572709555976814848110213835472685704124736283333779944482347841017408573123545589594039846016680098772508301968078520140590993361155519590658875915121022969028085579948597746815993469871850003675652711655260515351800257748568195936350319239349488721446792424444678481165208279337787100752969690799897566888093194580639811362726266149102691785416947329898377776480826919656184149331746049609281400076351623127390236683136239600816618807552813099049503077100796538131560835966248433845728321089929227018899381793718151856873117274794027024938075141346126803082228789086676864831403091620021089021015001636161274349533700830815586930340635844982399953081670111729015357837462737503791410174917716121214592366311242673651025373439812655730439308044885124166741357374988677288452265383789426699201530589267980232776632110843755235057147876914533183720350494803910610073384485275469870335914397945907419827257149705448125689961603097879679605389266754389026883614403362332310137703823591011032771812307396160146373920338676731589504466362107359866798865484474865982334059687366130479421753309086790145667940236934399374263564446423486122742881121795643045386640975353686408310626247744676985806562664638357429863780375764812366775981756064692766742726614562339643679517207295702233137946633022986883418351051608572183418497228917355208409813834983896463172963241758165607137401243729038834774412360373738318273728073160560039360716014375068733217353089316455857669318418830001301782135432835194242246669836538811642757576651187667310506377160888190295801883983734283573745717034586181155505229854566114421266726810461029814475542407247140949221220005000080840880504048792774359781430769384800006790620870128575093550169401271342706694975209729665006294565116367627750975905272592934352767496314169120498438097005304012576099923932551932907568929122306140500559962754989581855128238886737740254079442447463794026924332675943127953029618564682970018540710190455367924868939408650675129168547543585320779984160897775739174394657974396882273497069721306542626910809217245467905396771739442701139290312440390417896043403154276570815623232045368521959633799080084062996218547223305802567546065692292319070646185016576982257814055365027406216600111104759653343048893104637987029271352382543836930078921976891664689023948549940538767972688586358551241041656072382024332430146027426855408869855879949978396348966565155500025440306512862707768309726730895426425842273860306035159821781629233022781282158462908971799328620348803895162962263875391089621105005823672189795292203408498301972504902253762713487141595074390308850893101151236422013520047164053386154689176809408845778140417976251737370150588136811087527022584479729976043406567297917624548352623079413310874849418194218094626245491418407099513599215964419992802987690713818608833130185417011632713212982325007682384852678666337843465394563670033121827926563959703468786226689053361739784059582995183738317567424205062150187713930484238022869307259272859397921877903154739850150371845044703730359022192047942695007127479126557179748604953205350564616941204622214473688307479926856441798569300221469129647592145383729470432821884392913891805268517637356378290289873290344450968201042601208244149136369822008996442132192555186099445628730935205051410364993307878337281222742261313822116951331954551519955545325315964518166630978400213170875768892119185931490277194404544697416072162539104937784317170007209473060270305557618794155072916274340754619049168338037126232636822527782628002520440508842477996874406492963204130994470168397618438948685121303413487046651936208088518927411277123771499626671412485378901401526650359709582852872748891884089917058499318027551604167998625438006556463449717058079078723958367957006011511065127413293873055147541777338875311821971319780084622002777064540714645186310697633158702003473026665706077054465828397383359560286372264286984266638363032208148311435312021871587225227668976598567319349827181339292051677878375918145594300779613101161946519750406807765290092807126026535410344886760496796571983960300941650827442847979282992361923263145597866818996698907985084850314134541452638364187002042133653884009030967976164057791003832419714461677139651897553409746262564816737546258435029589099876660456759942076041402270808520128121024110915535358478346672996211713076189809453781979169068606675780218233482836807964951745212631168744913703505031681358819204074970380122716006938524778314520758053476598643894834200267466399107258937103486613105671843449592122746412596567171043227116017106891247778989630253732815508285103847209664320046839599618577148925196365213026932212245574731025356113639665956653933083384021800443199328498369293528863792852993335469332047340376031489441510596003967865849682464089715375308076222617635089134001887918858425246971174533275945748453654394972226476360158650374566822409995597876705808625903282453058380738241857366926892194041117424097190885553651826758817129156088976891300860049898071045304250949981785501227966378560998406244225374520721527720081201686023691601290036050995444470050404282125198409731526956570766408043884428805156112176926618819495765122677699958302035976603413430401487522920653733869496328108142451886414711485200442254999811911834717701507309859933162465592906127894724188382624854322029852702768123225903132169544650526845951316401518080687554147368360237953324276104737229144739240570411504572310125256651832389131714352688495724704829999752355747877087799168980678040344368649702445182722715336715264116278434752253653618005683167349404153909046172628869323641620204225681507028653500730348726340874905617008975924140359012371022745200078387062828670844547645213162674917480833829909999865720636614493994753325210156285554532636686023057535020506508677361342704342959483114739459944386299329510047096076373743172708514623833546054410450270597012154936469617437317525474984745440452388050743276446478666247080383045842284346534232026613100574381814469029154290785873339476594168112074367682874975167816908150032441480343214173676065409861728132659585828512355299517114982987154443996001853039725217367927441132125403119420310230429803179693662345099079506807221125373627255342393189686279734538917431503661329374753659081838344932731258317637046011269258281494855979927362098497680516652925012766086108550961580581534519922018653196220254910658890453559393621161053191404380196080819864755924241406419717653943303538252719632942801132291468988117424594331590769797808920376977526782687817759826428375311798485482700978950142239953991737191721747085830970019654161623059239045498318380794146432512002628005613455613541488506349201812346694859388935021298106936289333256909354015197209750259937583017859881318637449821062724568846004437612423716825111255127794006742516225433366642427120029795761669353080564160890441217056649651916507207133790752588123011946071982313810555289342138305812087754075238205692859296176040586319141885874860220316849016166882082832637014901446558457401971880374786353320649993289366501688340419783658582357333206024633105258384108851216041321712260109395265074454565925523364211676910667025594974268647884051179791968378163931667923312589932247468273283608854981091574091325210954572184019462493425264168478646670046469307927722397626798382937186373784962715611710992508404356096433184172624946375156038097612305094625770941087511858466061562660856406878145230009003857457497991355530889496494410989680640951407896686102384543443951495525670628074933217411845570748969211261986718665948000525134676139340166994978102156437206349733335048215672018569385990606724650683754191651968361805619159405472619025968502176613680077699777926133871263004528512832585887402220546884389122256571476411353700443470687724981767691818513046741475067209633787215739745841266431034892310652407332877663852897554885905446662641457212673948724766227978335288090183550687223978191290591316493878633927601959667966954297404412287048089119139789645392523916579370986963060221221541290467306872872819595641979889868507631847820797740330687680504887074286491835056985628688729949692438651165325983301575462762368994407302497083088229100937828244006358321597465293451915170562102325607110489971930966132323710903756313024070025790390236497539880179585523033244120754673901456005862052625909387647975879784135401467518939487330681745150343148162715188711231065134615950727236574864829548334946136734571976322796952852595857704231227136592111069467709829591792318752223436415172199490860560403361711771154569511771521313886439062195397636324967654662150617641912276922833304672366184333807268841048776725042885562095344219755951303955392893304076252174093664557347491742431145799705164362888060649475184504298942164979531079744689125300373864679016332101222689942241461552339240311431370106073237987920791618665066857140979215611047477724155877082546810946247658720106406729097557794570483495749040364316317643165714491322786087519538882545509311502229704823695070303633873362364742849414505449938976122387741353749162526966257887407727145660697988890019774999397588847449766157685034108487101199241449186392203900060742182312020017519322636380010505485568921395045541200431348581754038905592677648162498883765804456519296894472617286969847393964432508336427857829218936803475198811182140697640248790213319001471452211177851232280298037490375410027050505632617968516065396679722448966866823464152046550078173671839602878001126978316073038334264495484020487786803595572569717624395546941609081457484499017321623752381001591404913919342301758039946229477823253028082569999116623148154095469918646728062781357070092228668500475076053685779047115672822147886363973211266221114728091743773447199425686258988008254959237465094540950427207310290929869795838664401843179739140802334862966573771239835608553431148943530426551830796745167649535473298394863909523881389637614483885812037222964064976483978759357009365140738393050698252830582497556892022141778090905425432406917772115435972365593726084882635316776882085507680681752508132821646311014848899202308643072613874638191278501513305722447462880276076909502845636454838228351979770673763678951014968018544536532883707766968781588225749729650901062683966043360544777716492525826283278700661308046303516580914865204085107313367114902737310380504423233585825556708753495148627803572772783378650005643668382225951743425091698964947566652429904934060224588702193786844014884998532820153643427803501889930545696211061761315816152776422653430002444346868488400372795551428445887070200191992175181332452505758055134364072073806817072340823237486148697128562339818575144771763968298047099800005991056976169186240186958241844752833734385010390200429039396312262565738714560626690762424222840173918805506389465772015539382987555363337096180087022830656116190324745743364851384509413902397362960929703096659598466799129223918578516139653706584195650136766368532178500208581580399188699211754629191729428743316359504482014489192267166703891255649241767202273860955215773184955933513404678001932745578316218086520270560196697395098427974743249393245919745894966507349165645484896395441617813838320982003378920068844042908444807118580024524313451560599252039236669236888914465335102639949114074826310242368004194223247179765075776439812061762703097648342245234769442364845019742188887875763430077879026802552021881279785098154395635836924103454373348811342551768485106031620424435416137853911440874339946977841352899011118333528359663949748774876875650900193936988647373133400052827473941887518907281445866562596023459693061538954098145274035507765777762071540967097069419677678073588967343035503557122554234911201650765428853286353035365961565026797245905215784888178130032853327363580414318315394443595168806670646810039312493796551524139530523606993620880598517916875538926628339937360361724257212011092167824406482045933561808896831038443985928402270480730712210925940854304978929706087918996405822479187897465422790965355942255446755188095744151887905689706990477108508483467141313257544944284685514388395605652470665117158215687382334323316286114818153658444276578930435036639302595080297895950391807919096574855345272006476434572497305368019312239268878527193628953656228936039227218853534204289218035795514193949943829939041500947101919182435901753577902107288389953401094533868279447374699842048916662311907232952001679323938920333708566295960571216615558070120637673224160946756982123855769348483066287203302988941702693673203658090943126287081389290464456680897018709612506802878168147221763803646282165225156006483066020878124512911576516445786562650733564115686956002921537756718044546703147781558314977478526880513223476657334267061945228230114140145345102506676430088629676319929735687773130345185915451921185279325775796407505510786831046418274001599597731559995566529825655101587943112892123508636843463525991491241479174022634653244187455082125525068261488011890477200838770783547957383495136639931658604315439209848350450925200456680876975517226895182905461733836938763794276913120683546859084555721586837572739618955165343736042717227792178392265783263884610057632508974888959888338167440416383478366119344227881935849378714429262746115569047499790910664661633800443389380801420001387466864121736568293939868689821584416149196405936673979025332091749282398820870040161232658261856699572466639549093924431540283020339911021955887110911571404797141871891760995196034050072688744155056275512083239852736165661789832280793449061275940956841654685392937470969167808365127315161257560656626352001245874860974308124891123744705778096207765763637333219228770303870689464767692927292052292335010365785922468678369420459506100970855696357872572920022213622778006220190037408810387744362832606331900602616009214760966452392077873267085279105265563882972546368109859149109623021745886400296896587454905854628184411429010398650841618008858377768749223511758246835284170181612798661667437255460927152783037097563637029099376054635711040251338519939207722454505190690737007565274223353375967110954520008455354165405185389566931399388686340405400273573964699222693787546648883113668944247709443690624267059437771210026223642617394974718227933452956741142410874781426679632447290673942701420265024497489692202175028325026598480848708806367101586626021538486391879731417653665162521088248970289144998389808928315803225245655283086871600093167059673784187574727621489355805730273770862600624732892538602837130111223497151557612410585397805002781152189050732797040229512093468119558210361089875182512092182052828759907437061798135279110674541707523445220578562111414747843262114876204195423391873636042302820848019501857902970620134483775352034934250630675385966710626033657372317927021217109047087440809410572749775338593966191756269017205310422071949543496696334955378649114395101369500034971268787180910958120918009331162643620257305682961966552072983345372071299543393030949745044182763783209598285903183278230771795293822920625894412035462154718556872867781750165323926302273600547723264729521340101071498291008918951655223741867225317023599300522460773455295439631238029765295335580615073313804874506732587598329990663329327184636607565617957997085248547306560712359231634002246173499297214341414837830608047269550267888925250965469723894608709402800901035934100537675815333018351945614402614330713249898472392621294566167071490611186884445561633064840628660630691999555135282615248448610462453007995352426485795897425091144946499333578396664034195729956406074153040794853266925513847131528546672603404363076595117908018371778854036189912205589764937229535443554778661615558934871005339305123098246404972213752344067461676831122173893284497083847081248984013525381156684027884738214052003779808820608667277788963328880688018416141173266750235828591483625063848675921683615238983337401041962338315718646673503309736573144602772852553310906696256622642846234392180189910648487141054113165360793092469710465096694580549880637943444241783862885713341345500970019511243372557335209193728847411922270758561892759795727875989351165125501035064759439247459790353724406998626852401670587984532477574900614091279818022614843269749219151061713978070446802057787242385875726879697590754920367458803842526670698378943385790928222133020081621812554630398376734780443892740488443734367690493111314079994133182915361242463430925097682626189444522491059329543411671653375004405750046036693656871050716762124104810711152974463951141377960395714632073498413820250394363019122711770639108412306850141702231812282098550365416223983567881347726399122480266138940963869426266911185745143617270603093926483190593282588657822209842393787850235420421287233351932903557428803531308186001862092686600634396700379350969922121442849830581936464804220957664974693520333035548532674293693783044976371857065464809210316559200330557044282804911054997350754182986314132214720136073371345584232551120170496992858242818417311968466505205981490924380144548443773683548621305584111904129612179699340412575266050641371882420156208005430355821154780063119076171012921092311666631124962007617571299044505995637935832307409492142024607691728722673160191637028948173785610534816878850062032176241787715635895317039446846162396179790526056962045330273499823487837678978607924912640696459882916264243992438762968716807381276257844337063038136690237746028072344571157505790054766914081287334563269896411375971911854282114355902168324550901460877768077088602678209413076974252235269444295498060329226687245792527700942066097319793953780848546742278667162211021752164092122031949861449648272911591523618260948805287782261410369685123911056542817627678516273333616454577885623205755781942963677653279474511360901279872975929972764395098408172965151498383790579340873002862906744827197973249824539181116564045226047828571126230676250468513228577213395964418431067647779259099875281558366244920206007436471373124248611595500343166290205982813154457634013872322885572765113185026436355696983855295841838848408333240312193853633947953311362253720670870006839158997837540909131984352739652518970657992423755132178784865877975199773760652284994044284163403050125858455423979586075192672749573211641633321011096288177665759800281292814546636426664547361248265433190248839892196206271153475102744056875815114196616791738683650057580153656759187991876288335605399827910749797461903081674760041059651017391330458818349872499813821158533214802750586849317970560200118394845420614582554999424129706856305347163284774783058133309802818628320289692663288291742199459917088403898100839286147053899206983154020765275704526728458964114501138140955380581292484989949758894061796827896197508406951652591414356747219818193680810202578588770025953424303939107433081228521551684794117745030215011936220663272875490062095386949354628138084970739520148059112621788995386519113112820161573591218838799993415787891153015175714912818588263557151553825797636307874414357546377650703926157238227081395697198280452394389605095051539770920469631036942352203118345662681837567922202969067292817240272108303399100302444290615099919699855270422673749176581739606815814226343262537930745903696949061277537071093692897930814977961803044300593506364945995696226681858697842212192003665015949254784814888640498586000226134443217787637964822738128015782973489500941018430740542230218286637115959291826830448934663366934003309867955725991365866834668462561234467393790998745139034545045097158496519201361457872526113180065807523644237663888875506851811185703222529088051054683499106268051244980068742120835017367464250094267040500269680115224565300081773542362982874129792231768667465381610754092437734585234069974888426090861342519461515830869327137425855703594884549358566600500125415616456177523451087625344058640579715964236449956324398560596510298717258938541762659720080342092956628225956229338975434421964930505046526600380112323783970463929532933645612662558837768366926088562276012628459804388993336437581101625808116088528009448326904455874256354911876228597310771122704412000185575873398544088986888246542822107819521900505488695790174065998550739491546892472436268599054422866176438620779964843064402248850771892442957090117138463676370902385572857257169007886272539668349195506905176139063404707169227261191622180538778654470632872018764406261061688716546687847849124012174989414704525520803970279064079494949895183734891020738487008085402387368046281837974325534817888933446880124126138185693983721557346011129957845484467127879077123532082727398980742972239456563547505271990907081269821814175137106922914101514667894225870674150432048137721063263467295894415099611690422725932515340592880254614212601569432910046286189427525027382630269836375635751861741480984038217819767016093210260549761326988638023873762290385402822819051726829516852380499188999969656634704780437536613772963124402132059377001327379575012039733335226337715806961431285766554379649551592321318337383753385756678717629186689709678619761183472055579451571963837833957947558177742688412385782611780869057800837984477419609526125497282050906435410378344850792977211300630787289428417017017355713843757205252374082259727637521756188459178850855266954208175593433072716358133477261389391472767486743977112633304218942499340695861693494400506199229033473732932033761753559265696293721960372520696829146756616977272878195958158580015984825738631142231710341590140001725982543764834988175247232693692191267722582503569762035789469351755005037470255063125179677170463861470292859565896129079949148014022474132906802874940774837892118354521924717920427626100831388367933566235627848072340158508392992817829468372119571935444107218226696505264783845754794877998192769851073811632800644869298652702097545760933445933613538230590816394629841559681244313382543670533433251598920311557590147995896619998535321863177844228479108023192554951062956552082081491064310573337219863117884787333949697754036448652845566665401014117723394987349054060807181316295935749229880153533315174716364324731704848275048490494997975345382356938922240045894947477724004297700761434072341542229579991370578947039383824724912933723294359619934882829317502641528178733769893525519564555667162586746807005208158376834904800718796632468161412515355707260130689487831655152712484517982367274389656696890799445391844574973874866469726417299152220947540191867000312635445349670601087550325895347622287569812913182605945587939552576303304748306247733361376517311932664105696455003189500115551747871840883728672938274872404521987989130957023792704830651883631295336706752379201838760477526395435843455127904685508989711379935195064409581284735449526442574383440951018994660547526826752465297038562123006186126945545498568888418634031383090932733088468892183377066509821097599791857378542643858469126244275569807746842948542439988035651182589288944305640280935466552482974891886212038421628297215926425728289307862207634164018847979635937133326594257864331411246701308918839746707703717545982688523452317335186247276686397755630248652982319999657848617840724446759914668397947504283663976231802150412341093674280324462340102311724360617661336936945036135447258738261273275718113265193329560430917229424938704908268791169203630068558249391782856086012062913929915255753973218145525512263371369713521752061455893496400233999011825133991239712488642320218020159729754113873591465969547458422168222591323938228904758891568893547704837940587324752370778656808404914146029720946022749812024463932025577275434420893133505323132571088058875340136994032959351309385612540193710947628481324091780583534651333726719181270222676990823683558524456550379165427449712388317443951496492569842071142869791466234371394923645005993783659723456856042139264934762245791706807027812505046216444041058407299683373123438989563829283991350505357762372454170015903651877847649491728788822986241618793039780284608599710112351094668923860125334089513239308680101881864909316483644425918257207648243501769896856585400774491005799696809228901284089557231041074018941905325049979597426049526593340451500712743645783169578914754650159531336010194783694017378808749243872375803849848299839321109390241999223686965719796888545159765899866104304164588669260600793425813347786387545296988985667740353647860478697082023843572062170447249158271314274612581981631398016237516318149076740820768939356629360997623583760827112983837258012795265013237396141165041248195151741646334244484041946133275576108602964932900756738962916570630053740058575826246290025169326948528403337278456987838692582673352573258840601071461568741314934008223300010526223691073621291806544121341569636679160582701882080568752274405302461857993965606078366036271048472826157535281031540549903923877300211832903004083886790945415391856789616522750980844095832609828812972396652174409516242524029236118776310225487424498277797043099288449210620822798593501903563845244924419264493075401195660721198068291466150689834123217351627510289622449679536685919251678807797371990906462894497893486167490205294528084536666556656578121538100272519969458926386913839003712020190924361835154061005006181486259598327523129120283464831520663129105601077892378834520998809707962162678130031994447988517383598694632694307954380228889819511416153756902218450112680624379816163331757855998666763296455589876821521963966843556714209671105488031577550526042601595589755477579602894814451003040840426896335780187911905410299408403009277495925073355102912508334763679124243259980822197052864923070713722675172468851148178985607427884751863932836195456110595268417369485510367696768154369764407028051444203131481382564965992307349184723575734189083540604258174657257431886792114568298794851734917059897254964574166796267696034916118650067389308522325549190689211736335332801640936388703925133311341036027001321024407507074092816203652592665132596955658076168053175344199137190590323697569684585091934419758718135702109092505639204056339551429905926874173167472039485564913470034912517731539340230712161213457646077586500807916011747094065224734126067699193171132866603656437562238863573282926661298492947326972689366785530215338005427831306080646914568622123889374191442056967774283764634728029431811189502086932927410001047812636204129794170796083665899309632828935974669409508460873182607877275158100661959815904632015248773288967827564749719541236457744733152648054017482859798632693128642467837380623755691383369334114489334300235898846808685254962909787069621354304385077584346311586981347880683408190887274060023745525528920873346324741308306076884577958831548214080621513347772749450343476313222321101775074551012960381608199800484834434781679628943179447991487827067950703271098286784322095165674243164877202709265588970161375966693128801648468969270884169921803452154237011493242286265787024271881846971268963598921905000550344718553136734246625694621858719307535735710357678506799535900672520486485029217899960323939239632891586684163751328647437401634786477917110561852316875465370181770832060144794865263823219852273450207741269260621743702558128415654551266676784948495756553627279801469121910847418739112714454535363366528611800003153546361339532809785305761797908575765504067496673873857144457649102116492195048342332631148340693876391776051713346655451349214350037097806704976840595395508433162073413598573176949499884939182731451643267030749442840115729069370530726621207760708376096977655289613153068985830518662160310998816902271575850391079588712218545660990335085118361436919432074867498785411181585595216446186143299096164435008857438490286088458914819625957412311760148434264413210975087647481679418964093736545673928171574658978705211168890443936145293301701673521799603675158222092371710622987669892214452670687596574566748118600342349142036807345722917195877999025991951804731445578907780883875019413284295064800419656053862078136039095732345248970762399709861260104039558235073130098468263346972409591845850243146361183052573319699714581468005288856980963075752905470319950538037191470801268781176036265676161729283280445205255258623713205037396252744689700524751425775012170547089692033352689746711006454035152324736826934950758247155370194076340510083338496063840606708761925071699590722272194089084993893418769632003662021783330890501180943579396832530239071162431778173137950494481489248934108981436760741219303506426975708241680860688329149961552482760707147373765356368794102724665625926163535541775285186568621122555269268449990493326327832192336234845389689673151444314502928566591702793545729317549921917555202881482970584228397738911601143388979501483588693450708535933017868463199302589039637351443969090335147172198130303833162342073667679955830024617954613343261377438949079955121411964650858903493943713282256357933094099306899227014668289103014956512076658370674943361949366157423446671909735487320596866119940119402875196919285483518503489114022725271403821855216092695927777264165837335492875661923961619631534831942444943245658220104176705986239362097517229225283251089091663125255973189992889159005397783386058505875854027482019334647931122160260961459475454983535524788300221396524818846237830119208704290189004121736993406033172671933785281760016212630167166091827293898704349505272342885578750068773542745046106459148149040393083669075096180477569903766920020672816757201223273942963565270970567383946829657354719152095719775421190943166220855221166706448126908690955547191424993172293792090351920579547658439160769064416986488870373946119431586559537256643310815230122479920842647773702662084945769256350666405546975537386661684312487439056661056145830965888616044321251827721832826610617737383870437434083044531775696193364951969935852024336537613923722562828774456303568121742207546908041076289223792647945390525590411568525799911406697576539602397840165527286172721663800234331072908611987223804000076870612765473758321006213123632920964811277235622546576800765694242869316922802291456058010224921352332579823971467009726860455044238848084387273033383921501461883602500411196211499621785308204500065293669322533141795008628370810552728931646015278618816428182511024873486177846442911242169144178758043287212536345611858022098631673408755297930268823289524501703665680780538135612963103443236432401260860393533671498679242962390233382376356663817195285617427377259138087785003103260850702940787776126025544830875441891127716413605169156825306173148498291009857388426047940716859492415420357343746099548644210601435680368049720804701967533513904145126221505254949179348070986271570574691912917266355581695779051174649105831832787809510614338315926684191986622815943083213349118249012302312654580585553368556621711491510379694037144618061720510442608957788596390141809993661272023051538046824677629947889315162055322655713691751994628415968639573197886235640269220689369105983901747422202764210626113005066613800695614997333386498660570265264770453232032550950887484710160186885843522297350776838864206983886300851914729490072437411995765305889100385904115087455521475972032947557507673186144268914846418454529996222982716471081336820504948192322616368937163615698170548167741323445551060347434748524988556963252231659101912359805397074923430883710546708835384176720820884637350585752164685589149181755718758367115730772186772954362967767275357399371121176142604211437103129048875510049337398489701701353988865341802076983306751998428956661278589961538122963393553393350626693267520692966362101155012520598892979718753752021197720066860161923434407005765174854102328911383602039185871907211328538295688764303610770851130058305813707114873248899238840613883365897890170448821283012160857342248615503263121767731052283776475051044120062741933625338496485251208626934055022854871688939882441542298632165546822773359510902991078975521895369512553790167104143656141409436181460567472480533413915254961100668847456796559171271069121965465203044050552049502547268977328185394653314313019302796143458755646792245221882443068435165444750657639142482769002581971579677711331202397437359785078295876081683667259080060103532027891617635395783973865526759610057891308825718779568540458306414662577540052436677473962090804473975802981267150524277533129504978762089513418234816052481500902016984543810214856867163181338680151336821460235150434712663354722722081524924274810077487242065106427717147216855572197536402696873875651465856260656771624659912141910402054405698183268195992751617838578578706923502185470861505474506809501905680015371275194401081838050146765790855171131142387270665489182866069052293225244599036636386364651187345810305927883795148821533447071511178623649919146536816722841187898009584438417266241848819176909811697792874572340852545383692254586422252625085377966542408048438777567207152997314789534484571636434335064540270716323771559572744030102634566334120641994074941601417857631782384661952387703217140565735348913557186464829430127380877234875975581097593086812635769081933095069984773942197053201454445077834922332722969330523725656157587136016409103226693753463112662301717883251847077403373671259784717646170276215632146927432977545753338311733181240672694605554108951197189201458345880211873555644293057071581591752030495362115037794212655298339021457511410839099372744726362873117354604067678781217531704955820370562679564170538435560400147327825468382123248966108998600513376334757301060490034328909839697470204415081428371445950417455722762981879673826411470310070177360212819351180418639391665745813509174232504514031733318130009247773196353982052188231023528350579612415476374347467263349691899154873329916733153658933706213900523750990140748483270059613219120417956861651143727219751621121014633662450411643475485245918572301455033082321654465390573686278871873039225628935549522924146740967865765786087098306501944504483878790221352238040245561940766607490724459652110654573038455701150256335244990592968714437098745053093264411389320170302821126205490239117830612456936641317745042992863979799784833128729635171986601907071084905413580245606247910757469770170323287310375929921999913165733519797909124740480265326832169499370850259503001516443153764013747881765875426984344368156757231822387257168968899962546003126115009705082443638032534841141654115110809847622969082969760373667572317329215729730349210751419381337680010532287350911801205710653210830558396635006005110731015497540140812042257470476768928212745396953504684507837778980799511305521881280651990166761392700711184305238544619912748692996702501167296086149733345646069945048457403253906819687216567518979522154694631427457710183778614966549687536336721966906715026662247787769065830904321633435331968019250901704634073816139808807481836065702343082056505632451643169730269492345063887899050691116401245945697091252982549123081709609347521539309609146458719653917437456893534953670025907519724618232157994811547706381256400893458614561349752117665019999813053063024422959107326589837878333664726634074391065797124217352269707753438618087746667263537766431564250313710044636181213970143138837032898254997765402367655805611649862990779310512878716657572575737905658667372080624911800446667592739324386044467583242421636347173686411576439177640883319494104662585710813681500287543926624130112327915338801836620722168796709726790860128757770962876449172881510514454571690081263826758285128355782612130951500011504254947960155147372999776776163776791549371374304225146894023276374904668721242128796323703491326224921210504850800420754537821747778631442959574505484051301290914169193870464230761890445908248167590420320142779239067726754665025384724118818322408726676687267245471263038786906688061544649781303461632291614186137567798261433238641803140606629994505318346194689934379264190618932183343639272246005387818139352297331805959046500542689720350380962998017281648053663042761414599803719390730720893055450833243977862356008721205546428248039812977345447274721824329002525538284752210738280840673193048071136541434197631916669287063285871190741983070750594755829462452968134927017647980112588294696500068113331301384455064379308143241347708806886294070952608844384977042887575473245322482063334946734024404020637969233381794468313141980222981760135293116046367930447884105684064524597558959983972440349792581825127757995931809377524127963249592304378195871723171218554441823004875502600889728255108202948852444259568260670926134965293302184766743257585083367271830499443690641792586677917526449244612933025918149940403339327655622966654714766760282594129560768719818203191014635045917037720815840490538156764176163923920017555535450157211131304448186728305024251226097702525676330569820761792679323200087991480003596139920007138835011429868535051545061886408125315911087039537862192876663824666796527360217090929849446928418457103540908176119015976692173876814736449568549396262241754811314348020659621327540614683922428254487082749064832473661699266177912242138390727942607699367717345868721057998323054749945547840652181139022583807983057378086200844395635996678507495031648521757884378443858737070050799030365581312301636219053251638906190869836080940765240696015015588998389304338357443484814424543607428541515163054127414941291713130901208819524563643318596438153715476976753063113107749767843304047994916903235233074210613875874113309002413807736846354986353199216747995924427005593960719085702021457554323410528311093832048627272901631420135261954548492804217091152837203326149068329831828707387286802682555243708040022098326109358091699013697779229852588527988611118918610100271680884741400664932401528012922266933886221729498175974434997068697703294063402480168924394346515866627188760896983566498347789229047370507286649985643749266661238720670243957536682949322455414092975695869653986284036759465256500685687145586273128731066921239378570716838798846993878784759828061847234384904847433186309664876017923825178275519370022668636908175327681557179358185887881122800798905382400050036006675245031320974365556242060799728660818788006399546718045979126034992864363754983775993877849091377653911689342165661444675497201020247487597485210082614982880001325823562628466747716882714844648525126369013881173707039766743279410647261055614080622478883427042218539056490127012662463578969972134970023890426887286375694714827172547892850402095291745173118742706529553611560420291671852797343967296070570698346609438896605492850428699945301769141680421452356780227497724853049261163043689942529581396790055682578459165754801137897287371937501169267457382771662851211487146038209735795987259037993554079881949799435637105363779891023902126611777011905191989947028292468790739722944462706350925063787141152972965755546533691051040577312521504400104116898895693972510980566399818977184157438735759061277729370585201770706778441757520702376040201001597423264448005719222061258346726612308688396029881026638269976897531283500030508054317304782017443277783471390495392246708436383524501359716839669641293800606180475365324494546472957879855367449130967546270327180895106282725733683194812528248103680712955521758922173292354603290087253253325056124483598081119628817094682387092587857040811317020348133829861408957705704896393239064972742030029081369850212423201788672307446182498645900149072402165699841798139818956346556672518115257624751382702997970698292673205978759875291716432460139778969850538014640389504579382828253959669844386904134380956052612180336879329833817463414602985072080401072807401078954533367138035668247134503741248462327555265114042959858011078348557158984934460758817383210762902881986772007114613079406141719417451849943198070873259660388929317856833603330827286829006970943868236787059787709057432310522229116720250477294285593321744337062394889483277924726352988719182869188597518102659830775274869474857623993533723667730812560176939537380800300726552662971595721535499185832440693582959898689708531670275183418639360052542816918011983465018965824447319040232781956686627033868212238848005295634851358479478696025581781174044343138366948823539004982021872579149912550355923019099517751513275167119747936128916970367821294017277036230596132499626705798621990632446856471095712864449447787108329432876293707656595708827964536784543941185400397042462174862657351355116344071857752968941676027144031906439410045180596713971256204370921310335297444964073814601610032737485250903204363297905615803013722493171904810749749412492457522082138165055123635741808950172537753877470291551172477093513056624833485211796700721410808835570864230606844342056403817558096450141377961324785411714283869008860259803861599546851029434422501252062579896679416374675770027643439900841729296699020732641716781325226901237859147489833830684168188650625320932464067425312731504834307061800906501305575816235944917119036992725563733038657127641297706060226783289114938427605415281288419660281788251763880364938829762429106278870319756298682753490106254289754731335012914527917647585252126826455010665417590315286519780584522257665758412657240222636695038385080766703836121863391015676305948946676917328264262798683829307779038846977156971146929748455522832412324991772201566336421061377588830611761823618474731898613004872148972468668763214035004197002095171799378718211105380183422520859155996730586536817229971079982927919929896124135610870180192230609739883716105276828580320655162640221492256178080453007207005050560092144840238694650594981030737037395941684323718394672507469850911996993163212603202446082232252534277582239043219937250944728688808932243615862971994843256067986640797595445327185259908236059866318904374682765183202928259368832647928105669972727785358127672083637479889990458030362057081434336330845584030729479285382722242259306940089201245645742294077560944452895946154778835782952704156490938192991873359503721003059542416732940437896784448502330685345419921987844842430252970471246370304678288474002420914862766525168179468324871739099149419934548527461213756778244105968681201236230587820324392570044121777794334994771501813702368010361055166250407848654192372364106470780409903132791331152821413194669984684288310428086453467944526015379123662475576754967700893079262511657982558043126296880226002944233718344287604591081814475626242834724511469383396743839973610557903086585054156754643166021670568626401097957588113281680990353531997838099360709273105209208115476707492695286763309949437040415933769081807614855688100314610749388159509153311399883775163246623854185467682894340059222223350039810215228580569999673882405340783260759245354005251859814058372085829497113812300598230137098497896917644255047988728040524965155518042393640807165181326178996973203387920186286102659936936134650643587312055337420281930676930803546880530834715095191543641457855125369284736923854041367711193244294140469274381377791634892236716319161934994813473338141612188191271202200001091725747033239563688021300859047003539606506855008011019026254678809448668575036639155491319271741627837241314660721770749445477654459689409205322420758829446406444519988838701546274831372621200135472739036126286540491921618425765952700720966264271300599641851741821904228997184684171180095164488351661773049360068764372057690665939302404339230680230819595204452204244390867921009853652603565295938488741572575957188969349693138754203280527571066014079067461079948533307519462328780459571721772250232159237689509418612793343207661190013652092880735099652806759935667743088381513509083377573348133942654589988297035359381161505385149550025069898299120756582448721566617818732878648008641646813310442017706628385042879889674192786163471670454800142748874433597425015133232441988565478446845431909386977915835872389487453876687283024647364659385926085033532199173144210351123240156924717119173666347984707008834664594496667067253716532120556436533988035193283031747104417967168947282166558556328108288502053819501808806540216023637278322865796261497667959052083809863171179021181129574767343399456261911780521493949732075299382390221752856182818927417237899642976717654549415393863396206210777408312915643390923410456860878265691215686709988323860118237436944475320093180346267522655838256274946929953294520411652719462725849072068077081421517647890951919661428638665166697818056459949998231279465968402063061906249640660943418666394382730477555184024345331942746273109678416668855088436627240277434678576717654098302508780156908887050842658121642933723440385643795554856029556824307336700671467670486492904654391403695479171952792332721683902302489205211164484691059397152951466911190454874698285599862699798712967201267605600422425967464125963184787852909734198258419841763358573759132047038885120940021966471523698031500600085520888785010865473192889485095083057786186346942109419639518380311604868557330943451189865083882458494061931088992964569860068438141357087842941028407473660954658953559744337264562225366903117829612511204935880855572085207589189755924569150324828269689316927198092223368244449578511967311751075453961946987724311489418377978173513788718662611538071764276434568119829094526585528173291783242559612678797921506142130404918814693816238410727775849399942447001634735503127059178301628127043456095400153247817106931029441663097544567940219370269569219883394532311700874611310386739346798758876575856017205312513439784349104902167080893684069257767077453258080913235655863649390137291380347325786907750179058640662372841142043091639914490065787286346778887638352752041365133514756810622513407793812430117825502693792109142569728644189096248389420276981118138648935281001813467670202591116526154523209730735400709847221814008028200169243385670830896604907391157076491691961409504645033726371729738287740648651232014693027237583252548576586315381426184207493683483128583368289448891374681494930031124854941915064680143416714049983175493838285929865397131802026948215272543297195425147205102012548512911585996804982108090297061869283795122594066452371671102117506929245258872884240053742123834626137626362439157732316991791674235690609197016205206006837570937874530546490813971025855389357339047813633118532826448077891807092850831833345864921960122963836676408621037854381989118647122145977457599310700208636051386633063322108398648828057486351224054507600503304160608553825066063196188326529415569867029337609079929611327811348593818427910230633142465431358917713201451897028466818465307388089478558333747647650438214415413268974892204683113670466093994889357654125833002288872338931368477267189092499566953254754415045382791604721706227351963012105358611485336576297160827843931950876707594387414478289051715936930087505412579356242550083513610893870235187268495490619344682850705794623826732591951539022939772204769266500462065886692455590852927415365684383997268892049919274424187232313809819598709091573910517401533970965949057338982079257055471654107488236446942539521924096128380186308460333892741253902442363701274685176538214080926451720754233741234627820565212210794174973151181995851552985326550678470363274665730123304761534464613436655821985826095835068901774140975652475394574525391022329771086294495106439347475616602299064407653973906528453037274342061939751792941922778032809787605545823746352739883790919643398608539247677269615146679221439914490003445679301465640669198875797819838187994501676383897538317224004347653414491849100779047082137873100146014269965842142976729614964324111537457877753391170311368395007028471453319333918203027484207799533847676698292132219242293182261891548819625163504605247914903077717184763067969158911187628129261490837144643374083406620039275021981055360921432664241760634570088111051096692124030380143135318930639039400577619274382652776363831054774909951183190233342576699918904188425686207214415573745348204957030766902794742063035197681731460058620650015988784237101527308462030501062066066612009465669284739927610116689574321766490807861231057040870015963923222473716054667960634279873214727376901924642477982292671439985111732702116753113393704232877229413061906814132903943106194142124924912089571668497688769235446710565578428698238747973636988899118503931930661039797414362956523640938074472751397007827393007876533855420136771614340156052826295805848142542835677013691824319012167457302954522272622581831394156952751751687025456407291167718492929669369902742211995439253820133726324723504967178855660814417753169281143381719565634377390527342932856201655795998733440819211206413264009260871526423108366831012776073859140457272241941937350311668686615102790026409109774397260951679820411494869800460338932629098067529478888740780603140043171456492190986331029680236369960018650130225781059916977814008724528084055452475661447745382415646848112411404520472008352915110300306538227819994593115266521749491532354470701043181943780455164653707542426131264591600631726303605130887198289938824768823652184929343745597817963856797021715165144247505750420919752797536665239748991488735086500042487552036367505008809293052702125638047401234041103312213302490877022763173204935540869155968754998717655161324070441582709219466819124259106017034511481148875580322648926551240505828317101292693393373438695745529977106483908073783765574139904875338085583997627039889514027520459872368574746231262160990497033566248228900081733844185691600321562596310546417499960261909148075316441853320937230303965787723143737305708206327537818262553122058127544099093062459366919223055114170927891095816722809128403487327687137933081689662054018068084963451716336745598829773541626813242158799708433940803038075597097753936561056663698971441746012384484305458091340461608075492933626425716534765001503219815233756410200916060808478823275964397433500743038636127330816222963108789269454737435199805471215437855359150179769259992711003649626816338722123672903524155030827479937035363719158600579125442267914726025076889814021223785797810221011007786613884595768405225900863348817854735719243836455995780948034317036702507722173591388704149997358370056483518768733994269994543546839800738356064292843573467444378662124596127362530435784645001866085811919571536351686347525593503465642917854687305125648003059564757622039271064212556869185322779564933527007908759527571249799924546245595502684431832465167605639106303270121615805051145781618097321172606760755649681954965957648558286180787172947464298212086775622588549801453872559561729027736773910921435055903025584151122179057079485017532215804451789468634219380512865454310257616513560492500960245320523866395565028818745617091488021984640201221812640605464781581089207811735144203455703799471663238105467035369894192214241794583208926392924324940617603299934365425513062761543209603650824478618570248350947386270105083222723922512138276917464380721248611436452240496790043442643527408552054564810519751951778292893586918486620393479671078389022260003624790175173189435563140659032142623128423601676108102833784289202230214416332174406190745688674889468311646875056808621067044809793472522004605829571446862799807516563284494788511455242217575952510612634236446862359568631189067179727180855474949148489684727963707938680936407650052677734455152238340518435604012935657023937656027004654215367373687773317671103573719468818955408981295996727974346649653504698050910477569250292389552457892300508135302446655268885920257423656578297462459540059510904487713775490266006576833139496898015145994901868737083964425679479453580676431043675373272760397168419952421819110753265636003965559540249326792963963020006205533770754300337494497960752531996052969956658520607498540930426157353782053639364978182611763675120698442001573052210704122460108568432729104065098128721970467839558538303297010289446762486244902717607166822928435636264985231106989667437979335190987171059783299093202947214937702911495367977180074379065880417605949707869617232816114781170735854285062452872438153899794739837942553328798197764450297066526565591870535673823101012513786751191453384858636171548261259668191217750005283972161707664812892811317173117738187883094922423507653262990405070338477182397727922547251456883862377949106450643165057286140833827998920088448398793320066722379474805857054517114710675377614079055339734112651985273479995104700669313975146772278991967365099553641612454211526987831648004350582247029831838302716514740680962281512657396224003245631084140024544295870291041237077040935562476940027456215522528307876908420669079041311086128381814282349388781388770526809103652934143532602805093252245102355184583915072836141639776030937910506130888828062463495977536964330287197509020724714294646417714496318993381876693302180169458269301489193671011904143226987612638095998308534798129313080659596675479429008179681818056869782515359030403214777832935307904013588889513003964046656994941538946921544434626256595500116056076178114682933418086207358431014770695588934853971360490674414124744309511639827965144771526904451768501449885581558983190784366315607326307293128121835006907868612789050699927737396549973505175010278045908034770891246487831370249099607952819156806825009227585967646173820057841373520972326851045221102940723776379440744976560444337217786545089784644519464802251043383552651872650591184213407185143164491869026738592949787380365867096772411343728547480981420322227912810380300172102351556722443815192682705863000167645164929446468858979792441566101398773600763664639167469847062868798578284526086459986920718655024286755939539542937267530236745279591601507604477485394263812651679636938595689987302568319470389316486693106551740098826438387060365342513848764175276627808396022730182733003877314148418610900086352579769552677880230864450435507756336414117360776299412109189767225253348044329055746346455609410565415874505701350658209425360107967872311511369285185347824254579268916787111977521770079552772242957900255478449912491600583949586814832872367802109892738976469853184980072071842391202230004128453249580946279037467417238953433712952873028646470831254764382833449552637206722900778797126283193801004749032741099788427520951451640566863559302072591726126504990158936491987149245767225981864575199071569364413365446765023635659650504897895801753207818089784422911370017194842174108555768351704890455194153951443915794255786015579635133441453273940427127285458993791172710722429342207605447224735171815302338268925632568879346978606736185686389718103605194956064580365374768432147843031269286918919961357732224594217517072696692841302818049639889014915989381246179924828413712943099712408805763827911458646546474227015591291990081657991948247493895107066893553846053093909300268366225674482635553139077779221218065410736545109505860123113902739707050572218668209184909639422525513294871695108724161470323841844495134860532528776205614875764225058577276583809526841770093602746929009800886354148338078429802043278886814492590358610084190248415594378028642298871813941919291363762332323752579110434188737680915844491241853034259943092747406032243489884236482045235763986989245317958899687771999647481017536431505040326453790431132906394161842306511400459380773389909461830776782957945463289140393526793517381540486483327234479084297094821688903915952585806023514379500073949066045612762069828628243123043244186444275349712573197132105408305656917936522440577979803723040003638729929881789268053373503713842168432602028310478842857819508736770824287693566146111399031132855889394482214220314772491533598947593838977377122953786712030140939767281815263892887048653606571162938656960990591345173702316196989617626001995566697032191620989828450484653298453407053924903278672077284028515663571924979378565433235438016402695664155889043097187333688720486762555955018521992885723840315213342192289702743813805830404990906284220951512456219168387100397880954000061402928482263508363612400596938843365030043650585235214341776394634359407554886985888924666269718720724046437609066220821160720059848902802104523388425177619411948557848415778525640967300619691725388235177955457794030676789514519782835235216859388269985436137044070333030561983457410035722540962172549753556938972372921499908860494413247868267395065305515369405719152238598045981056791291740820404269297933267987438305266404327255108654803799308328831740593247671241679819873297815660651637623673888235503632599357546527512597786556155942418620314612424405253371121037205809761846749079687008028398757287918915095057259858443629644381725712362847826722734803729129041622277479338171732300230924515594293461420410623825684290477300368822055497234043278762971010662044103535663831571474404254519544235871339964994183984685641414444144014664175013525448881236858865698699347254492692595306081410076808778201361576277826195153611964034340243032684027334779320683875445462771996403585601031646379613503331760516282642122016719194199549010820675107157318335917375340795487931924709408031763820466268263522493307323309633652831603747082102938256739986860748139095827248968899655353424439454745081448523006802582308498932559261799547679087262498742326882706477557855957155084938976017396143073032120039723444241614612669585630218777567166442018790236515279656876500193124076804709031379247238871928203559981385371120333138937598724500720580083300893517461311500769719365047587538650662969008036796647643272908683107888145958705182236568297508532174320147715527869516271943942188538009541663902196672848375923436573420860226247701876330613504028954206612500135649242409154872897952912518144127354342742511321777459949469766467141808282242224001314462728954421754399364209588151710600142610829950508900718708189094418661850217665153103022896888974277972049306581629177237523491349275784559875059070517197181911412720208386030958191776339026778233916544018769064644496615981059411740982062557011762517419638952823637440554801607279364254357455730606364051828434231993655983048971478886488256382156978885976914959519350701361773074749123888072470471666751158585529466074468561164787375773357629007394008793131408565935534492895891946451889634411662351535232504107747241077450275590536024225919356405679537088894130384158963687655092314481899721544616309254662881050305487544571847337749803309744698709486512310766241852322989897755674241946368746729376902310116515927531220986699244778774735716398597985514931978266655674760777694192160867314188774586075445294692355123109684848219922646010888712706770190923881425497175667359439565375527228339407864544211689157519987376687857558164813148361814197540915537210589817342138645745575687697606441077842706842354244007663594181106735203320036472266194215878393183009025215861938609737735440526002012636110328383532714645487551491534190203760291738432136322862238035761119447613368887626772370990233725325785847267101783543695483080572908939995654900527661662118487792868567474045534394153472928631022046138142549668798406177092518698218020789026228236777261610801208548308975330431794176754200931707872138239698636011483828973530929189485981420611370173435207390708331343442511622682972670862480601898290086716249022133380632371091536249786330242111165988622944491379164779509914059446709936070053010949531417251456448518964952391745093387703107576600979900830953870470023734534773801189707647219748308458042150544002973077491063476933958996594742392779706126125292970132998285148706083291552860308548376958011718430152286205480369392544114872467400120668681359801135378097989600211130082677508018742816878552316505105301023183851714957799053014807939429306278539000969628659498698530801726808983556293750834379571972144610693688205079478793424641730452800583970905664554398423178485886915157826622297490748766533569429811586754459118625130609546249998701344109784678264877193161200041392848561105920307576778181094253842696373243945422248174567668373413253531467767877554919647488395048874728480905717667585793320811624463943036093847505031433486353676589072043947327758364152552482041509215381247429578830487564999439595870852494896312387681754255298289432241344302012820823851181701320709768206018033670772896415235496033639871213489676500062608671585963767892124850247311311346172193959264648582210670839514995774962259248733065958273674024953757017195197267783469292972683060338733260780021553926467396308834701368633019114636842517988743679450212915377031042345222255677553649063174103181046819287113331935255322343298521891466427865107365817373374145552634640199735879434215554053209040619398337363914303602799393102117680695192142835011125933243173162649083095177067506414795729173171228096541974972655251443944059397164412454174652242552969762835227410978626002289976083404379192377855797109846279251965091443990631843834840918482636077906914128251216729112946687675714456575690844530881178972565927690881513172904727361417039003330725515884901229988052326316351540881371768782828028109489884188011158899940972017553435297218468271663076797856339312169534583571100666061520164330738241205233935201602883325999664365617616480422896863345835188277184794054736556066455533830077047367001367739487112024317900480206257487294798105435211822590754597396934819196333547796169212547997546737635117492030137028928741103882516553390061990548213544364305787418306854586184272501537170216750295735663028029289277802145155141683896026429163977410502046856705780325771464116493478514141545746824597104587782037225709575064756001958943363719168702875250915146020912850089361583164766693344940161393907048231549255224612812627979429916344756333000427307783147487678328758491765620071033183272835161577096624764336173510400488686183654840591071819688008919915929050839274143718717194522094431967171632062427898556847086712286236610150851290161396095128337313304808160331691924347233404205432816390521120969879751960220995285763349683139765614097054798855131429542826888181238117405624970938413019019120992659543206468390599139059400360550553935053474680327371770457592913560765575054916439238935302501413747898832868989507785832614025932260718375245492247271078990272132134101592570145912410238159226579505783511758303498530111599354306399343064087469013558139124001743287591165265692724582698521333953570780632398606308342947538165415723316098391707464445915789296242911964989060383241833292198332125240652567656612973640173058244735253528701328558917419944729686829944845188495262227886022285642573559922949418916701411021428874741333332391818856919641287505809089746411290819929830291265338435940716300398462514187407419830912284671154684776413760197517896863492630836351419371532571634545312637108297630386464920580787582979997443771409097220861011041114492506892085264110502114490223000697309952877435164432282218785917721418511665601461960696272890454054808469703402268359457605406480642165892293367861593957103672486769536869589339810797214284369553504754269499779204958513230524826283180591223490898391693458699725266063356158262304997108309991592097565924792345141485872678529328076994474260104902359133286816519054087399653217303624947728392121173319344981841050447790903222063854351337885283119478061109455502945558002869028486229065760883065287632643951877923642467837058090170991774484028680492018658994332924327503340784717586655194590348836493773479917612263210241087353021398090572885037487001266407162058366268116189865143583138520038907141126726578257735221168874863431865660525697071674850998659596243922197745888785595652800218341696761493099574929209288490996959634087133479243757468343154094080836573256224726369387039250446228370179880234270210397628142188588699095548403895491373281872450594852682669229397670351351889420667672751504849993063206423785901572533015116366185119857402790705112093837729092253885826267922357804342781842462627141172287882272304852322117350999250468831235113522011454338678514389028345898199727958898531905115596678794853910070392636906797061221013734621469633236356506374840435353224329860800271761964115379256290799702409467675960011816354300513447166818801580155226507546814566607347174469967583923966150131929018295902761264369385061126135495403646400224203078769754655594889896726193986935467435012039576985068386186521722834497604842727113878952613019293639178365896579212051769049853323656603581403780263946471025891301156663747768070212325891563481823822983291018546884649460521515174316657115594053841803195835066985489889754162150508860972947292464337231220086009062974479496470626996602478532779887509606919564066628067761758530584228759780788690915852457559847048421170871063945248798240619372814887483312455246277077322146311645178194795737666609241104992337859618333468338756488266396475102956993293992515989350052662702994532238609566516043894147949778867982238175336197190953279530523322561134870305544684798396829046720490532244418508311531665031008435459512617256933736776055314050272889933691946323138020056711186488434867132332672926815375920747577987527996581120035740652283564172757989072807403827346943215524010567220020339994388559662540745659988522603744926448017378260816013824400961862513543746003873712426320316803255910176389332969672331485512439300611821174085144745767753644509989974931046350238578769883368627521978815882096124965898306176003247260057772791927601481853515102387149329189259382788379663617166868722948057461579618433114575799329538154774493281986097356575363901267399914795364999956104592963389231548214112651558434751562876928867015754951244127330289587920672683533495343736737860231968794890786497835424117460886834626607221999680323469823242219382340282696152529418014024556606728256590787578636611234515647508660820116436326555848529970260522802543307761711850539687792662075730053748076999031791184322108967459754661900479153884187848932525144521437998504676899161817748872108462354896253987551800530644272934815785258983583047307691222134809419997139526790893991021778684036142310012462993727815644636075698640506525077067003130166154362824526945272905504068363592967533181079165355710594983043888727404150542051127760959271502936562629401900406345830618507100869287566120034022178327746556754625616232534017005604537183747000840598334968326787798849641285652336775057072581526565782754810425053889900886117095837692861806977149975321676940101405629587128278290853388370094392427930925299989403472361814846648235970140974348032384914780690346573519685564325601775427133427795701705240561678267065977120359088542995306007600694313293103657169153826473155791881159213722900474648427001976379653813743126851940260711110197531832911750448167919542201104633765845644472428167161946200845669903789225957008693368394313503179948371051898951837659518441066396892355930305623702088757393959581981919787778629747261009538629589549343482312862856299612825581778210053059736581384714334995894605667544783222826904853603778448580295486882074424885998605959212825710733407132896234587954281978077137388091870513652091362977251254933407331425178400499122809564275987906197993369202358985366199152714124976039319362666702080254385525836855945543674029540066130694467659228015862379229507972915211845917689062878996407507847943850128003283123629478990266983197223568344943518222569556373721868347270415301585889594929833471433743209565718110335098229902210127377874964623463694845159789035320115999731205593127684147067253196178016352393215944218561065167860448757282669536416532494222058551540474023491165961334869220537152176316356658476276283325467072335532405081834899788216063457657002788320319514684131927450958739910269477045985011189226991489740101139898710245536241736002123960930607714410300762752177883094615658480731655481018983556640243993922275913476940408153453939066863318366241286573133979393194958952756892858678913952791668951762082680013476867206803624758559528029329378648639742473775288488429416658160403985547772090697415846943503398247343137865827360774698520489394795642454113931673506648710630716562787356588638795370778349483408677006657159042552801767137959228177069706409942113963842088489118525088494083362147787835860650556541717658891645012250667534619397413300190352866458275009096052543399806320966923885835540656096361784188258633129695164629562189336951834205516742311576503615643483435497153251236176739191946030987426744834819131156378229106340397396791443896870007489734480869114690364224806884988396014358934301021703827752503906037808580801269311148809064015633439412882324577847098812064063447621047656051239963597491820468886590754475763259474993187959328609837758364354080402542403812515818737675445338445256648041167169107600217162485281929585903848883895484163000612977216202051743361837280993193208525036400540706382882895417534770729951538000500588529442771752121912425645303520145491514895573270615777447332732921888905511314746307406970455507671094244689518353357675739584458417741410878384539694289033322766914305099041160774445003966635931580126236896780171594884434128011595227904549644911865182237588357860526636115538444986736100160680985196214925332736563023847554041382698127813963186370681741179461643566153965966523546648165538046584845460754425935239882778433199020137803100007604762864217448926729553449102386329033752217806080330812414570033669472233140908071210459809797040255912293940394806527532717722452740948952047389082127505691520129472598703982536267509683168068254332480370769236200218216193818676539339091590369073192300767681776751403238110939140546661558768143420733348737547033680585194558079336398136459375094231964445795938527005846491984029849248072244321858387800690381255991734265060784118138100613191974307801360912394664398950907078149259138084801139832041786839205643396983396941320974827218816631004205498304946004783465138354151831264848803167972675271695509979276625349510044562595917411349695061398022877398450902971181272039427019614563669198263772458943173481160963972343766332369740195570558634430586148385015888832397030818389667233715676066975792066937362317153026544688124896074773054065556260917991983052012219692316157761567257268555706815749903191772708104368812016457550398764491497888209941782108107298165210689435724027010843299162827726383619467027991205863293610511295211374343101383873570086713412280315834521876342369455523770364467986410599491194442972126766406772883493035637694998926567942259284536171988782752448819272929274974835136586793337490592375222564065655394836801247505709208160408517528735534311083973532487292669214192381875832345813821492448134222588672242767808896389572291466607499313031687083125063593054949663816578347783164331436879755992290323750493013052453291453876353935909506877894805420254629895125278195811631500460803520845666111675966671815297151367658802478477758768228786714627683509938470392640256933958689510816199152077774587622565675657187575951849362474745264551140916933777068382796107972953118981667925955034536863143256685227929153832496128238168591049185652391121088745249981531585206596581951953067198800366694597358309233679013354960121809863613722111727644363949294123339548394900752063365068768126173825966612526979604906718295677164301813116800747670816816556024422165441980430709875597725318791801797992535590548897024069368997575373955552955418824177508220023129792678219228976148711847840804154936278508755762498901828140179560598567670065123022394881891076542468315459491978718681758933358248768137831663299321254748272901760337769601869547374307746521508174692402692480856625027279623056304599271403372942590433721186055069376977537954010723402509859262465779654881220786904888311055464102009975180690651446277270228240945307544157141415846169565482162725833229483303873662390093136889228116436179416388460613999269873033741177106860480718837672179138583079544168429629835931156385519378916839283916845040077036267604078396044789631643968493919343548004472991737430708414898646588293382135742491357635807992056535354427288057614542705192006111555666437071088788860856411510674740240744041378728898593043351252950475510768140057029727697842379149483205561327608272403398672612271892989276014257368081616214652788965601760759169202485546587017382973511692346688886334532407434093571947137668563825465544297701020711251092261073696669487321644545034095918239756591431095829820674928187328145219936621083320635488505144922064753063981965329011762348582248524347524586821521500913677958929087020965298892877995912879849872315896492324125499755123859018243505430425334262947516762235981153909082758051468689250248984555753414303728291060541900006895912572781846186250630518981880721253592797938368428804329585936846508643814642650453313772616189707982081410302688023031106040608943819387599158812991072187792515553428299493847896782141172212883710039189951685044111473547075969397053970048390965210581434131754615428038591460324739826461208568560904617705749549291977396346205777246538888002201899177652753589094507354579435536930730155811597768925577729859058025964582986120024227626716746988481309729044016442750348983405337203415483091029060280530653366748123676919500891306688451945084320020984428809187883187882445427546366257959003405005285330479766174243242404888865051700950831106823796499509837095024582223452870791690923042596927930753243733757682989345068540727422619827751805222486136111122032846943029537170382742329205475806069730107404777176606850945777874922417124015145819822837565695704285046158656302936095135203088488253565537625069018861859228682014895219633991785897856682532496755183448456729078747006821209214690266374018224794703734131559861507647295313984307905427221279040047961742627617769363867319289142128626591718636106133955098068487596693896695869726701254957461551920473018630513975882623499131708654624895410985073815038512499964396429611500865099635627998624487576116453290922284781981390266880216506297540278179936441091390355223910706358373860666324897356489500875678397233381396562686520342884810873892448347661992449006518267885716484628442970638996865067377436734871606454172544797184486828098641004103081988061951785500902297367959604672413313613072943708967088997281764422777107686456423307567784080057266345908200005006046417298785783454976619471112049498311438219500443341210095327549179245933199676655235923652374848588416714240679030064815661156397084265001860812163740239171990878316944449690982377613353137439825440307934466071361918503168974753856653439562279328565570672522625321009087385962268662262740498151107798960275988283241024176756151884070052603463934204615774302202221585151890182481512117431623252907071002470270261276389285652628248774295444206056374592328829192546568078176399919668256822675466565584126777224758287079183201806483330599650869612274126726381168158769336238650601389689312819407633119335351943655549112985179317919723538157827152845889760158188660054517914841425318609296257899447999089669311005153164216195469747562178325972442950370789581807627364728159344480924642078671734364562756075426806214824867914630292796474608818906978889047842109133719952510442547875728249675674686409491619439980267451018925703008178854272337554771232443761017940716346660075553437145239098426883458591444544927301166488883985415050064264743837953074256507709761364156804718947997348262884085700052908585676509763987530082426874749772048200284950612228511196528803261845156048433748257879680593399761774305680471241481302364460265567301442403108012125050470295795822235509622131682023663448510080753192988962353918487147613647220570726368394358928297697444438840104215988991966491370234392804593765115040585784990553717595186410496138349171897184658012661454327983403492480656704101794288679377114320621805088899320118439889915734969288262555668361741178931355661048208814955209240278128819914089272392196996131777878456948572800633007296437242332684745295918546413377836324791256230860289366138714449200711492132588137202008260520462361789665879623044838611593131511892370125695636697955066427230117952019042807924859129368020713921458376839162132910496547498807339376444305722652200635427115819885254583484718286648420905921938092209082479991502748033674345225959252643313045602802153537300951207690956629209744461498016519845466149168042521696002135189321579380268200669399196205668492942227040125667149504227941524040326306452524226373022117068534854154306876879226891579541440996912703649846493270265502973526059224458863779427982038334715281796069252868743378124222276844103672676967815486405252408253572950845974056859545009254821662068009504647726925491052589593092997372078225954851965762372550470634497613215545725833293183025701427194257959567162263322968438082515453589419520508121867079849842543762270591454753250835189159249312241688405187999995266491128691574519054723271418377167611685949109149250948259988249924100313953630376971915651233360333285821523444007364680815791474138053230540560423372327462228605858157996858708002804028049424219278320282468584352007663456459442368629435181259656178051187703108128328495339995832505372545931155082536479421496766682505076114718789467130395493465793297304417175554617842019489149065110668301228038724071309102010896205222631200176865039799572801012165338064900232391820721831802748037687705723900734942761502014537067624453824078792683122574416643248777034586488693539902948934719111445667442711072971804537567327374567625379654188995446662357853952355850125877378914366811015287881403088244137403429158618757340477565099838307775435270672537875232582954137878242010639409865668213024401853171952396627791698318916039096781346129607654769542723946626088321331690704095588213551127234910224282730438764448924826043374175011361353132686407086120137340399924181292796201886338885564241161724291085322375101319347405612088694710072272590936707563792172055644907438550043273954438504618514726595236397151444156143544258695175933262956851216923444044364797294133121722251849859896153927635564987466733689259504287921416310298537204666991152775287021865405384169238094215410306353157258418095376729095718616195741277534270018551838105603010681131978307310093139371179872784068767221091173019424652581947951468716877866916061604541035665613996389443117387727668440480866976676522770678914934969646484066087716542288933617598822939294859550226815910582621929525892271996800175406160053964995615083201909260768119442979954554828626137908693876426662080761160369402277567895260742422027493675403127772227421323837652179603033479438744774393523761673025259560156098788872892001872951210057620693018809802594388291133648814062949809477676435438229585475225928278857861237863579334613037339377346897167155030280999004990062718713523718350051686387378599283416917856731840802969718762386550715477201898941625250091414723227757190321352640324624079992762614790864063660769009279832524769955737142618590224329066664664084933396946428955166217696766177339307321459082598584939668496393363515218866239894931081889900741262108608209869484174323291097289499697185430843847185919542588436236675781355831852799315830134603538757227654188344644954855350100802046401579546527915501282898281314485987177595885892958212889724051491813454693683511378162924498423540110879401873649610822155303102268875927098016059885110101611251211143778382245061234779681197751645704331895565043494004225891108096058633668301425898351225515431066756239839606501691762914788099253908339510681924818449237919075134380138051703307968660798601481338742601758984570850525573317391313516193754251069819354103201436792599790023661603346926569925046872095118774241371678670684059302906019756164381083408504150793247060627677375744791125434434669795826672700843962015401388974780278464822424795482523561985627699380665199117267150060023445695004299554274874320195232099095292953805220138461377381997939312522262047626240520997455374999947499839244045396060459823337998268218622220044050891963941868865236642397014949674566324613694491673915739030370248126123618453688968093530735268790041658229570019218247191397213896564536878104532348207193716600990705767823187814074069345779098778001217652300329235833698732691681996221127583593267144323531016966410517238525388503590210995843142285453808038772935996000887809385897307054494740270798914477789211877319664107087144814265372184723908021454573904183697810152980381757025901874418716020266999778609136784346888534145507561715562428180624072276420566879508900898727383633913688436351553774480307998740808891007380961593374254904761027775643506349303043895355980994321298350538688365868497003380202166898416361314339312701604674628928021653492997405491375986608535137827341560215297539767755209834179770810636421732438629662913582984839961983061252133538133928435243321652906122270749795751815713760560750847681888653245977188481123311949726993502680773092471068893569904400396259577796307157567102209571033443043301520576767038922032866785563018833143912461279727105168228034854527430774604277945465275013507015629106380877362120865640994318285773711103922238923231963213765554645264448260146188615371444296804237248810366534097817527481242657762484037315138623449669473837651805865752852387858270334974855957437550311780003878436178875057139614876713163085409974449689059994993642812099452196297047071119312423323369205041029130650133697645887192226911326753092010775424266487767913644116997997893206583184751002747387284014664440146143725151259777392532212060610797175553113952090969971658860684138935574409577713647626539865043178082576090715127189075679948643041646946238313565435001100570864697198538165757134572786551864077338563781270949516371556530167073875476293561392616164440509476926972457437988376502732250489808640142956912583779354980346379186930722347623450401498875521808842767244659127373308739921609143647887143484480165543655123133138652378333237259833813951389887481097981148682280001464592264979201480820917498852954158977662590244073927071300084136224670015443469973993980035961700489992889963295824537130451136796804473120629473906119995128024631757304019770424087875889964765683479359352450777115964663734383668850210544228263908122076412265548517303077699153578751721833662019801650809957161870479884894333026588841467152952061582190354817694076514314992302240820343623010046795187577480391688829973845980825039131958783088641006402904672390444442082457895430260641847722270758928903765491823433102016653997922711600607710081045813352042311116312528482762775051121606046732224430188312169981465426450996121175398755669362615634387149331516598648810657123451372305003044915326891108191132415412494684516694462676517592403057374274602286339392707066184932444637399206023352068448470000867144632175252049882883940535724164169866605767249322723586228226453421985942937070541896477029749740508091418032344062223424317238419456342278600141118560048586950092632773200139553997715612730605763013415646518863551101166388760587614716687836978651940654994841332008268696494667417861899437893627200508130768797484427782742829432831102030774193996721402338393694642788109528046261133644967581260336037544864686664156910057536710565480338503110787386391268808525930012290792779766072920734007142713905479366983373642206180773235172200749346739565035691309475200648615554736472785084037171086003454798729516798788213633711611319979777770509274252567344241300594609699511107801039187693423600309009963701473646733563669194627376385371963870417308424344489921510385183318883750862888624145587179254714191613812641454488545375160959819137362022177298282811698132989239057656868261098565725897443592713335230578336340422255793299874437217014700554787896744242943781244478957224544144013599855373859229149596241858625275046018994163050934531884168297168582876970939078108254715516329032343767273140005069066695795242471750399752967786192770401725939393796244901321368945714619130727795224262326110201662776849858924385154420185408116137500902324469389929356301832772235195794601019314146261757223590161132672059633930498207717547737937949041059804126286083620716944246155572860756560540034579734649695418998774626625477486880415338205843411845375996538522664069450499141060370358735603750289747028995549992841757554449269880747285856621852235617482455654840610887402459816513767854791090610384362882736131527647251461846180395938118179035975378280958873188739624033925366874912717367368907385851349765165212236229233461427168068042406514149462692669733129536024659840361137380215682278468650500087668214577135127691163319707582153932025751284374505622467459333972432113719368009378948141010650468156076444936444606104499498703162926569288272770186627509516847696465094843520967739943606983684966017403120691049709948885841810131395621085740408818515367223897494325780105925800161264832807026377010768947825306415936532313284949129921611339996783056960551958335087342679163783168549999244220047087209109138929752944367253511940045087155508138101415429179555747854564741491328188336292036975310363072642067162195485796423149915727487708877650730288968356862551558659223035728098920683867849751013222293321859741751537105951653437761662820588658999506735069469054186691343096029942064028970306372204556737223400110410102256921945174224276346776014443178273158280020548899588368288657231040027695034524527100018031623330800529807048171981672569048431545514789323636930033257409365345369583916494820674528015152059302756645115813675314863788196475182152147674621966679285523542746586098607390447906372969024722079058332894624909042905197442256996275982537825067979923134716162690216538951866165717261315073041341914589281950794377857563317951712578071722691762177248247298120205386667369017166095361503350474853391510159234931390187329950750372782848106820378661153778537798296126243913678965206847068197151934563467854713192248922228516735950504101441487092624022934227458599967281212749955268712317410203448674651322556888766011537466992612315416285292422979422102699328263037877047177010990204204633728631922939503230244758435558566781787181993508494127731517707769877432365861235643220366506371996487353076926735644821286607823939940903857667322527293298136176542845843680927741994680303273152840374746821658580924135152004068477437263191909173754776323807838811993427889132102790968773521412536105726943868357214269932079711036750742048853016276538383453671119672433312905902361735604637693161575143235223506948104382305820010658038062900541347470602830997620435784745202514767643547754022797345884179135890741336185748612651955838496485865359618467861375481903129985952317668177052463317200240636633568327265448634804459642276442912852803416670483155922562026560048856792223900748234512467668077539223044058447540368994147803867447994158619867656474633237550052053142644040461815049660910555286573574856438920996292158831435186146350866740181745701149522538452710835036478837657523570057270535360761340315933673436001857572466036703379139068064351123649123347796696267504146533622629488310492927667710214170714525373561965445628517649156760514827896599315891214293235104681193490777269864011749425969244460433666105271860073413464289629319123586678511843034522986633429095957874861815129395648272735992253319373796494605045603433898944918294253584241699210271331168963216176533510321343054453651847287217220308792604504813314667420102268038169641006631208892934621022392737629933847862327210194655965041872841294832015763567417033275071493753274796983892040493626365033483246789997528178964810356020932587585139489371083431177684188308941474576059531466536717491387939309312605425464237930764926510230338386870908449914089208453974621166287644977595623190962121040064502930240428300850228073814860582715187392868791189228141279511284375176118472776798052702076098633760298045371438713468566187211733128263476414287955636781712892865407979026827230676862291082140767024232162750055808114942134561839801859071549854860144599037297865444453319063742366443343504872628928024814227146238512005538490137923983443486090322740212970982191021890960313883865744083971192237107474203980280589826422185235411508102647065997840098872161005551630967417249350998833807140615223751806255174486293338567720928704160475563302853227321262194617297258036031852863141624549221262130763302600288957521264973744390737748227100022057569550849972513020712289643979571234715195150641582605091993758290893805715914467956565279760905946346578637385401244284721196061415390466567320158606023048955902525716375496251957974951496970469266081741044572542711219149465158951049263261550988718694680674125179717355021766671403833921238885729354285721281173699738592120955741716935106036312812614095979049780113300925304823973944691446553847600359875216819468884152557871313890686436417281968457091068355400326151972371918139867916082808507434551826659258419605365285535531852346163666164657241999919015379729283767768344330137807441177909292708679096172443577419239966848818881546419355528952740976790424274604287621497328091526888999141379611847018175976541856682306056765443317549399356253743900043955147032335003024988743940062841180655289232235398624163931877964801135679433997258892704975703913376809984239573425318417305032141010913610592674758968705945788845333225353554684307814961205234941842254162977449917713255936213556959410732382432333592771896125838495741564675150248956743859040089075846938155272333033134410018982901942628597538894399323927486044080022869044865538347693713085493413996888392303624658166486826192748829965540263328494385938957154145959416474680847935095816526083308815112448715302983638006631700368781299669270454392773071074382365976089277329363742657562379772985782511799744186712617174960319125135661212495977015151674541545277119228213749740470099817178015612421996276570989203487082195885478997653928497532279931319343387259570665315804003188175731986530243906141602500050314267092061894942018961469976825431013030829036625415615886744112394202864787859731211695355910485986266195465330295508087784520513447497263883805371664592249332312543598014714446944070957842287238514728724004638723517162739350492238154534315664764416759262918240446570090558398576388544803054882541148392974814887085112384039148482791980232227804024432591113577704002035013258115874960713138488554841326791363930497980017122540398934157413998284878223485021014135508628706014544288184562658697563511006792438167964155562665824952161442453750202546109140034745607841713952608125558181489752538169836192474507363767454026523456735607090449232513348394399685577780558160347857902131926080956740554363404680206426824970278054544684402400397361152674879455925085460869288390078367385800613365539110818047625635484967502245073625808689519678507577064669954680007266642254563194752555049424429240287458916071859541142168904400398552161875288781178930693279555642067855889539629308250880617173221857656261544248005365329402886977363572251995948182915861571802486401047008161052549491674038296118419974345754224852133512471284624690328075362325508397496267481995430214258714316879124879918209665068487592519282629911609166874163312500742861834890873319535465607702026560825064097058339739750807648256592108716964520525256843647424593720673435478784324107520370079008264683939304704966421563264805187308360590831091394081389167373823054490502041929395388284308899549914568167638205768869418984086655972489882463462766354842823403201839606988948245624650423534131395319659768846230025666738258145302592655797776269817759478226469592554273183823695602568405882123773405646123653223101384368685769032511528221473825870832139844253630997143501083651270643944832934142310859287022715245496936815012217871783381351847682436400562997619928818875947396381419086727217736431153219953830953464482898362465174864552942097553018893052125904793672997081101849926513426892458792476070704042391279458046445184213702697812644800639235635175080658773894526627178106599506653971894719444943439539195406359385041670260879960614135757269110022399052827639675773234582250195096406400319497377342721460590559855987587568757679688807034031315198017572705408655057089414838923113404682001464298899111941702283678324526147920432724121759085187838616056656545235926711982394250714781406019151027770662128211064394754510522359976786261130139052011964714745816605557665641165253696636766298164025739731416668854819618982614761730069440524124079200020192673764040545628581988595386870779351929985746192819678257930545509432426641225175231724504339223677863389050365817793758469346227394928171429668315588873319310940436170880649227394548282917896363779149149308637943185059612474504844375805331629138340034588853441982594803313817010122954458350281730351107818578420894325017327145398935471393512115097021748940895611793259812809638748345472045717175274427539634189456907397034503558042760653779593642360281266954442646286547089568210507990013131678230258200835246782584567656246013877289143379489508488523508922627360577786360389060589930601333916553340832806843675670327663773471381293198917495806087728482319425833733166684225184161826807293921984343187575405370667064912357115051775696264695852386852668165821979775530392114441234376689086309317935281016283421585261018319362174832665771126112205412485712440914783672387100315892293413769023975207080558010141195685268514974712377457758936352380994566857652094138893538588208143587168797708217257983359032011078528293883506522289958935718889400606039371816379408957366429287468839105995928712139419755975357753133546585969054169128326806047610367452250022807824861686429750821168786457099503302747521540228036167971087451149535129262714651176888724293482435276607212099053576723695328761689069123801878313481533706058688294130163194492234847326906559915281624764361704446927590653753866681097546745200905887608979283961005560550822956250661842431455685668300115373787671024634766791156919931477020698411782423693214296398024697300518833378309694049224095380137904732058088301268191235063069772507346431550243459659748107811085616675037018891581559066151019971795998543643802893605439727363581386195311032107479631815545059562773258156759952003030865610828005443930532278697013547520115211016954775342551302498014396036741981280251104287244407850000170848516484514707104536614553551703376269758581105648329327257812424528509528672317583979969671787016809697800600718221220575962098100967125821119556638152228209787896148818430269617189111331912945618075709667027073839062110912471119286460293562882780394647785367256043722268205604647963432166135241862902172192631784519539797713716113209659685778110445345086409596701372246138727933040415907161476510169714588705144757470020903235807119731462373939225380659564105330514601033876312746593789126034187522014846793350781158440828972134657632605594002439769649216597749138817064644731831337230766232036200696094934240563281135497784587368731183399600471129922712581308819534755515176056907307273742524444915776234255319103622879199219969724550086558068316145979029957882653472362418483350144681386176003661717391151787437188716993403362983947638617988525248298509322009322859121596521782591864082140205745810714859945911564398017976647516749907670494628984548656421010112269419999187361958366812576939903587831615469832011452476954166178962613739763728104441208365734960496939672183098631513473802865805499240079450873113514441289796926451550634084398320675945055753413517404238869517445069946582377128109005392960333845894353140945138396318547938578748288681861225216416554180225505823012418657350442156871543674242092887807079289190552229668623468444586072176438090220916439287834958338955669694821407657752524891672659768389276147345393709101552882785873289654841813945336419136265284429680825216050321986080856394013050234916974534763784972624166940138331418210942859330701925276215840497788410169582830167756431440818109741852365327927287974319128563049822010924744787376702588130535124427194109949445337476979495672336273411638886038293387686370167744561555450271935003923352796138349238860654707691017347108424103095457257304033172394320931382022518441237937978390168104478463206420107794563155602759918978289090348968061346985313278455694599357748143380957794698459128991331846320397236341331685305218894466265397678954326250048650946070735478739570977084128234986678402041019367834268969716678630607560647164952014150611361361946812197013649888935773498263713135619891312675310030040351581407346179235137676666325933540723604270886889439797316769904914368268708148117512846711014325592647911141127377287395541528749988042499186628931421880390010096439971348884912821898290527976855447218296881860485214014531827728102444952504244894238011786096324859717391620833905693309680224766387760887939731270270745527125518659785123126946633626309870058979371123804069276989718163251256446279751545704777727964300102023885472453508741265979913317810605710743004537611370729831480679152927866285733568803790960964365870550546072878533424684894953146005384226983791548995354756620124930852889587228226789609342260517325702367562411547310936850083970237425321324956205222512384445402344026730354638519282387555196977483515734696902548324374889777250627569229743209284880408187094264131893447184806530214836404301430363574922612397303926977709457916042941610954217168767139307499562511281659023677404070791670025896690685681380301493481741430403225618149200395468282184201074923421594762445322732021765799205259452852859122846385670119515451998081099080712993134414741067432813036609899899456496258907079670933788844278595324035914174406217818702476191230441033365316375664428346494636024145154758901399657117237602432534926819592971988590315719341108769577875233971872846916318195540331306421501614898681651585473337798302455584705813382841988951054116071746613427323149759931294687744039116047100668163480866234216289780490418004929765283987031194665976967045264252705072884328288625156606600300932250424998602709344004249488904030147986220164371495326190631791071714747344584815830629438172438445891947162773794592009272224856492092011820770699726385663156864793831224916109174110505461697216541869869120554813755041562254318071037143095450138407912595310937643244052233493338388102032246714966105654158526296346535413395100062447815118536555978575300882637645892439544421837571931823158599604342103834409596924972028994002462086673189872630782277103101578780888970848100800943560617646461813064048296197086871485786213530137620601060909316823039707684669216733350003147169759911944031989887019632529132132626443672272593371963674439726576104104959199964219661269156439004404826045366710765464577899009973348937434205572007758381422334197591770247903170834902294296331174700972885893206106964144828474868112001301756995218620114781788085528355562847042799468791899015613844953197656376527808535183499457833649563823966829215981239793852527055014185825840381234685346661266493647726193316470398811510296547377056890308837737285626302389874114324092610330318141916401332000106634558186571692021931307493435629866256326215234664453268045973387695540617279436417981081649184648728382760481818371259414553508304479979117872071921113767598991637124021611411242716583194631070032230095223849741254974169398344974950344027274094244038345810237084165580546349209945483454072358198991278940641143088498957522509341393959581316198464575114402193788853546223898493298610036433371558056100227898134818145495659851905812000046349634618147110643499851316243745771259377564599416922708671356560171839871947850912734631464094752165962629565549550453767592594541958283954823560432265681700342877631638817690336648596114756324283098205942475657502713070591717613834350494656879983394984902859037428271128064942116602897408822245734133879938828444047581027876233121895974688168233229526709121194805492416059237209898735395089910736382611488600828677697961485122923468808347808833346217571793569364179569198030795361716586271185140631219584425251972112914829213318828492220139503773824790617536148921529304633308700492915901009578842877210866323483348197153223513682840076456731059939560443184281807053437909141505100903063217631227430288464546995728256752639892600792150391506040260038457325304537822985376698832064060080680905325368319157875714405152681837930263013586570198544350686984831353935205193708951036163704661879004246641589380243560581442670724775686584827793143789365650646320387138260757573033780645083466705385674451205635618539806262920737738744329516970428085959444218885012374430911428580632111629062391384315673302244573444287820212105991171929338297694943041743974745265293151586045184457577905731900627827417623577196026932329334274416115370993147789382219286784429615130339575462350663948480811633985831745837697732419012300966802906666434573822660479844150465601110100202559506004042380021601287869403677815932420534762606923130768493971367034432038083702897910670119410260436393912413589382153881055518038833525797925561590097047606948871972623589722408255821785885889828756467874987255173208534646400383803742883780277659259261896241286330929591633609415884815519676211708363035816171983431390786300832272481041279747188968048261111835943575682763046976768323290224944292316928097480135758927907854785233346756528570358259577130465213979438408903645676289650230996353255535792643669110843146053719705261052955381048403343880685413507667235233004384425258774473624718514833683312093478677065711949239435135075165821860720654896115585263922079258042479786612354830975157020011719475214377624941701325103601415059995502310944022585130607520361274331280847379093892994628400471865347123273925205456205114500265546342697698261937660169894435142564475882694375142650959137723945710770199804724859055918692167701105817315843304444608604462914965092347003725494899617612098807766842383569759393821598018096268736390007917642904457851995131748808526922862509659962452579344305145310726800626148843357599068927752427615404416729743226279819080080684925950370818626516917707548136121599780794993709354558256553597325947064852873736466324326458539333042128084578598009494790160714589237416967297893947783827753949201676172160491330144906452143376764106932591987368051971377181376260145601530027826502877378900075877547349254948150267238514379951474921235723969384266712849006340161782958568227822122042973458599874381698255213822837174170506669834594766860680344719403498833335414217798598912971749218311306997122270425055869112216425701589965981288792663420036693054916182468543716487733336213090814912240784634922874223889500792144832874379383322805583610201810472359673546722976838670869310022637113957970522325122452829991695230285263230942944105378757677989055565841248115342181707107809197847662557555946232267783463329773297185346842169653446059152976678831947097248335615292138435695185054599392496659761008977463910960442689980934633556348553960678569884507484511395870841231730878765800508548740912383076033089495155250443680797123955443641999978833187811884761320720833319241135094854502708786562291193398227545687078839023980817702253661124313724812708908846821707658023940251339518744347002438860218289546097661663843622439746622465608672429261918001190452416014522248935016851422970527279887080828647037005787734562140971832188977560429308993067392494079324873131398590255186579741973214143802339606890266679091003241129535228471164198708656038099745521186944640779600948840073429563816216281018375217443696227894973872130039310873988305551801635988467834560029215164691518995487979735641489234854291169187542743490413023747662169862649938156391792740893391047463795669267053315323244069430179163576070677465246324015193484923047093053395765520970256878754514007219337971042863173479307084254494055851410037295326243291153646591749806967721327883260720698143861777536582592756163954123849168298631523981487520231607686642439059057587019253990979312444917894462179236923760084542519483690584023303816515593103849557356630910733975444097630715756532831505894436610571593371386371158054117281943121921106379252729591554522920014664381631320530124468209891475543603616702430271355399601724195744182265817283570798091611806719340054503321286720818418498136754512937345371183177082404823558804991243678599465130331198607619275743466907484893505194090789902270046726424224276975968061659731275148601110370002799653546500775332771875468083633167579011226067738860392988376486474665994655728728393916855082977127221070140643800130762008239717162664684080245986361966010399531169971373602328141508728844705100880583712382608186559368248903212359720639259520682012544924833595194317938546028994492528899483724036265022080255609131186183784592420850347178301360564567568224743186310043327289264345499779497850322440837524692039604708349854774401288535408253179497883410000584660865005522323887096177288750838029749135796796335553312591690804225715711924808931741905016852218182557294561267191950115021789675875685896837514756486202691836144274540275022747370540248003454734754071981841118874405672421329771023619483625713204632145238333900450792524200673561361558756625361830260561602306939372642057614144960696151359768284750175389645095804888387484510318343548517404018378606953711552926235489049375579187013471912493351623382762760561959591208289361867445317023549906084209836801792511755106742852212400975004761877491698503145299787614582764588810961928213051183900837113051509329942175404573502872629853492125708419206897266424121879406696770841527290657772249149598194102647682665961316130718154497072195152735606116899048010061835571927094659584630556820625194088941667898428150081364717399217121928583502503620649527431230756598503458918404613663816460970437711123638773592447539902006855433100521667910908683616552034656329478836327689664165856410213587899638029443797223998633674091389245441266249823007660576568754037246213790477232401241152916172700207107172168625032171243161538433975924065513956759116060460978241278765402878520322845914362855853250646541814786355066347141673708787441307275875033383350171435085883462522444348183548243142810432137767431865079660621896101202092809977960482028693086826135548856192252271838716775551339341924092024427469734056685400470150356472289464867560622573225591450529178775821444002806340393272324085304879995674786019464940661849864742888774500537207837836447485932025538887658630813196026622127599018708011166000693679016550154737822657771320836935104401946460385494100207342688539420314967992532166387318896947120294753598158487284018224797570547391326429151408691903025369265364099585498674063878501765092694732607698096144566988309305803680051898622070878918578921746734334550729538805099711926451009089420409164480899468412522830715790083559161706209916796924917895922383968682489929228360256616064448686953102298164688987973696828660504017118744001922702720887373670857829207968439573444553524059258889524624178094355604648499309150493790004044532010336675348858157469680606687069353936729051497803395111273327916911180677665221942927829582359914416882079564830812827490843662518053329546026136040470790799247983555538480167514725128443906210012662295384415353584078207372776551822036820870909590776366536999446506504986258954375995862000952089110081536467095380509116591204906977444470190412409178048256860322518863300495544228739183859173049222886900904675377295748661269833390828082748118615071815920974570960498098630421166960316942170889598294512187445733841648835302392350893570879009776833234836450156822377926785531557976189017750799921915768185637742839527012487414961710530281642419167346818154125679660432195574191668636226168779824989705189883211444304584980567352741228644119848053789591070497651918766457556738181666819402303765597614072865416972943760692867736668725139456251937197655389301565623987473553120864318897972662647287142069414023891298737549777098513048781363326711029723033382793980222171155650140347140249834931877947321489084393657159938073426198438893917291884110643618839346994988846658728674845595589616274674733248250229105316725956777408023140380405166335317848380097737753193176406440351347713649953950756943070662651834250450441171267204893397173547025509276333810918251773906100801579438153861848154258841082141634163947847507782578806584613481367905456939940741105521838901266765313055876156319626702135053693100127187183280943354945695558585839129527335794600040805549952854052521605511993392603428813536977930510152370555250879309629821547771676278170872764539750539405333838335661806041003129995187263168422173643386885537417813944290597770858335734224600108567647539657428179224185627063252885895646748316255379730604869226958304933116641986590843569143941114915290038461554577158910625103337190364294627531244477468748783449595187127222147075980851468055744429575509000125322180337248066085143798927258867360082777476862470185749889720455428750364052538246020031503387477015599668575676375048031433822340599729022032133373318753693111227447878924548430376263096252059868188871763866581228970291607138234593080996711701710108398449622795630203741755096701994182094847603200339602802757695676220766866408269993507587676949844169216108503982474629432156219644424811746698282416695215412217151269019490911194084298414064260909005377769846030294921335991674195217226253626677454215491147650094005288321628314615713190346148709518505293810846738653555968300678902664021445334287680061977279146124589233808829614782049425421902680384439864661858201594863091671343289846135989793973605761659179451707674558337232312110793337935493209330778771314672688768921956675102334296126135832169279893149815074770279985864458169658763947010553772856113045223960754732174057477626841319714527077799579614664676465486318768957578556265029372281000148892630717211258633550470471047303383792522372693329382675885195437301559159226587309974329433934322266722451185805884640656327821712391539129897847059858659449317009951968501177225410499809384475467983368145971707862578213327612415664794212197584107368796151570736522010217753650366362451432272494214458257439840539869560403705940197101202650645213442868602033539245664416830018512390494517958559932303706130502258788631485373296804144068312027398699890404424655525889082345096702156475898871314022749293919246773798234038936635024927505783266675116969122190597854772984606521486065706620851810948744621217071308527687227226887643197650348525135123630230541921879242426619892163186722274215960390170487413263538766610076275504968120804381740907139206236599293890988954791200283834630200582457125215010337870523423890708672428498052834266917158994211492571401552594681086738912487442043652634114952142334253526252755857087206787511513765760951907668517069278420479006584535929607636605232681663354275360526710280727155798783887236798956275843073073450643337130291194477465527128190054721072354539892739487374360482781552622568489623495961315275900271166781691896999701143647038783733811605008929705226776487295222640356221331221953540269247998879334606666814124407330837021786393777009438442893941210124579160997644503940584199972308389243655710294980279463800816647806188245741154075292692630524453340986161561222466104590217193422339528759427049447614986361851495868254776012105403911370194810018460543275000466174889638616343993516675510626067096794104839227190885345764096506860546943343618664430596344070446397973460865085909397335246106627002295678043816737127215402247557127558680803245158049896207091835156289959151541374266449078819214827561677843563450720895627835269140125109236741478720165366359727532769507041255341798077828007507160895000467275261034507404934479032405060433681897315010839067736895016519688185136737471200054557529966431975505159096670876671674622519691889708791605808918732234392111836753682797599932719515399806195808181054970863126657969186739591005006092880276981580760656599333935391469210067344430480084562494703608106529237062680501530123079509638555408552814661161503021600843790627508250504306358990340293679272815406568577786341076058496468377854975411691384603643257489033169573351488115615400190235080290959043174506717716701861856928855986780622499012026620668188468172289009274147437680382601984149822713685322694150425555044040961575223996815821992378582952806674924454000027094263848567313634351684275041840060676247624970014418473481656928391890197752734445049267911257296378413845282671553976168463087674305280773524935193203386039714234943812936486541479414232616498389784928049239060299763701112774563105445673401921170098252485423249946190014294046468792446436038172304770443651836699253764936019265640589577254833072292507407971841638815103414787931495398140840598528505638344030126177429419867282353650812496677338468514637313216553264329571552114450072369919399668974976210817761791354417325849121493180812473986710362299962546967011817052250768939185243113434393738204456539863111021670276327497601145550701706483553884156438644108178361113959795803523321849090138924594854953369458878427323229254765589229247564114619949486543683520488384432828446563831808297734609960164901172301722450225159842912106192246940262386104669801886058919635717017401577615291753910638592567920125439224829254969808601196993588398041840811781097693126765214651109722760923557058253121271540165706088420251553600197932261608925107339256996151575824883039127778812354092074232148069064393122110857825459575900855498104966724570331383196347184942814696208596767876437653706070269008426225653338557059899498544641925910439217371293953072086723861040246698883654052404943430068405004906922379049453819048685188204567930356582840844840092868629806117433243410781896811252859971840101894126083025915843046571253399987005919203737002055243331589386835970008773580845468852429315186087698746130313995149822036585415125196251186198678487512144255977688342403934282255431434352912568878853637130992342564689126833093831212459811905801124025872664937635298000413931679399201228504893337190274518405892419905933044831975539332613244635591783062565416994343836285043633145789087224001444299964822810061687474229210334877093249011005664369916191000183002993629455016797292001036927143470762178803064456958458674970517483824209783815715023521106058306604971593876668723877838414692166664505597737864208525628709645841921057399360755142921436514891598842462030151245962141463731420640412297568796081636207008590385250442612039024411999441270112119086617944180327634045529553754502714846447812264677801091434215174824426308535679721715886832784463890238547932395131778766372502950731683480486609756841277252612203236236905068762546801085834497478212286312864085484650883283429197525422716382470518382505044343920424362507122226998520472148176111948528399187236408921395855817447308762864811700797977841444804615946223533702191387307267867165285867016367011703846240334384340344020507909450097919911947348140598921611476348405728162016984794812754751922720336845238041123432910940982789838137544660904062248609762796469716017249201763474276530498503785016411836016319974661353415232569636207142999721361004200029636257693969373968465188442486699253299302413842204246356828191668801533096749150847634265165970989741246775776002666939834714034324487322391321719381841327949801830225183484953474686494419213180820821406979295745753145179697888922871005233786198965267781224868439073543261883873679493791392020307467178620715852789556975466543323468210056885396205788458651815523085238413951195553442182577547527138367405428604162344248063337682928246495078863672105294927494346498389575647751230223556972211690319560848020916817754757040580572552108127833113094709150030295832297587814878525991897542523452798184172904524883857616741846642451682759270832930602854657280976019846905296959602245858347866393945938946197672653241007474841135532905386490815549167936767992976415490860569062418143679199024772436681453215775905429954547129087831546248290934226949335995540520830630783142460555665549311353243419819990441059537845309838888784859300361111439556580317614760701815714943123317845203645208752486014432044629334567641023446183000816127240934586313906123226876160633051603715323571272723057338824766593427233674061566275852239250943058582171520681265649640443963127072918923531237954451385332722156879777677990063018915344877763424883305763619735868350167781781780510746002061800270417828080424149968226086182977845439721840377498697582236484636487437782412031802912695895218482869145451569565995053980718802229765617027258627955749230246087851828825263518495831378961442647956126189418914597381640445536803703163512711428557266979981373750607149512302402733979099410238079139900073459887364680484196919899875416700179853772805678379988417609970007861852263428708052414794557099167748992743991744803473017001302444668633831350190162714820066118840695895372375680270319390917582740380925760561642487192652395776319856154388385885459379597283023572064588309232443325451495021813057461987969154003132117585945759561688502340883469372420832883127830174292083027607782085011808816968901472724750678927244615391564734627320799376426611273213448372476629925183153031968257032646391202122017520123796683570231630258469147177907400883142909005272118528056867936602863701877512005320347108813374445637490187055197378004629755765836658352872293296309115949241932184901119266822318288209474665588297012454373929303990284757021340741882318106217312789623886920387670552395691064796569074747899550801774459886511368508636376410227940846467630065550726378378325876952460511043150686141371569865205606607577110659743968822547555635987045460718062124574328563595413977730573384748347978216319644736359060914395461853070684469101464897412206625196177312786181021835299463860350392635855754891134259748142629418394955323156294859084131031751172715688064503077684077805509351932981266618128633276391669682122396685409664159552431946373249652786202885632907387950214728719719425609730095386440787924590958704244789996582730816891613265029135695555409047696218849962450749544321854491513759846902614096401986421760048701603329796763502955890770218394521346243639414962248861763524665101990491302697214721203194777079216589510312704560801838812995458529992415068089906448773640779098340360724744883748175991744437440865804346047546287100480441111525184736774931901989395951208262986986984464544511073089417363100681693396558343619530740685526720532250731093352353723313816793090205867327843805228058046562661468344140524298683118666193132000505727254264989933602814499930317543310102645025885055774475013860495680121072766123385349964865537171273233640636648811817377380147404292496871928046699540819323553777066586118422230287493025302805822677721551637380578997650994430432144341740684044172418067515327055910068246316723865575656019139051454527261316210377954062089401776215244369247013738745189445031667556547893764838860326032915061188502321874852110455495619878594774005940934297901234068187628921720883091365751541868670938576880417062527425844985730002274817781185510113247122611650267816457983918586842925535787776524168184100127857930730138058885009041372038530217890866070615465830799132526681671048675052928885498436006010828499650397518730772329667975854367488055081393649222134202584251556508194982665656784375949306832491701907614859175470460725549071732172003081820772564001156926242943482681062821714160393595531467075113622387904349645379755966255071318446042215978246329202828218835616422530491147648725467820748983262050310793492315769237383645886002939632808937791386894780218409806355525016642239607289410288287692412487945770957821338929719079469530265883682233003718382421998960287623219641957154258917826425375402250712955093520257202786063185678645597285240277251553426946311778484787415675522404413998592607419067566964157821706023548620539125155645569241321976889136494218098110003848132362370982170637318746863034109322882933646424073220027508308758287886228854021416471339212683671365449345772577361355033196570045034123994123031977367519760322038461557993503775593067727898689388762387434561929743666168769360712955283681605795456800440370966021841238425537530244856019961564493306148072222921426749907845703718101346036143393791886837979914565187344716456106446608001888207620319182670180228967838143692730278292260778682285555677646603958098258850606438279695221741723087682602268333461966537516419128095296252392961038087721967284644561416982467719575217513174881785020081165014189006071493278805986051813596633900378661325122202843259975833133108515001963599733030015333878357478733254445189354444048842355371225611565408649241923519516277234248422023382731465057841936787294070789764023186618227999430616638035675671011624266623367063271394005822354630972714157596625189652611760130426699271058330133079760001562798625945092065141770143705046252467334534526758655332064843362457410410272196851952823028826808129204954758951360751118269075332114186987696429719577992398219341174624444236059091388599684433367547328132494876831462881995138014081536992535892074538919815805452113879820132883117055429425253361030517327940139066790579586727420622747646804480004114632772925061700518551365416010742097823914951224948925551841392369606054276034569470045342578336921968431752210267683209022212425592752890728110829190155340360974825456264218151798809550593742772694135608245044920206571319460838747533515152248539885222777867210123325482496777534633651472616175257124877317033638527746701762418843178637012198001789507408785470646761427742966863059164992090788251370884295352679092467788652147139213503372914945255260729420613427452716491812504994776926417001645733526698486562416551739789322078828845914636048682295492052908602238434830444599142946303878446737629149863869198273435174979344865809479375473735422268493060019757528868651217381791753084171057374599229091481399445476423928124821501904084192763114266948944457168691438148429016654567795002649117397861464319820123699469916307857970749844306665488123866779077917367016105671381808635144673104202992729861397608734649461735394335637076024785503651548947609870649118909439140334667989418589164012792694594237532751709449592825949337826632177604846800767859315050021250407475617068261354343991763287738635514113678944111805886763263017641886911258883107653335282359792321637525905380813892477820018343911534137635850414135273334257894320892842781556244216754567713643264077965942228109087008646996241767750866057766192545329122772911259096175106550215747076949472976645085573423324590254499239659292651287622109962682160666693046642024158052884759810759394400402747146648275986219288785333805418756243107625804243321834540043546117415605691664259463763959306819830723661825286465007467651809155853193814466625590744903179454710007621735800474609342952950690615857125448167398170340913166938144229892762211233787657218092470271701496122064931512546416382507952062617419341779541751058337855899605813768787344961284559589099118585136970991287847749568935441536148343240801941014017268422096529675960028064317337280708218052497573951927090736615851106530182763784703230757861446469720463217301872749854834475453301580297640095066570373196265639466580835013413903585260092080683738310708408940565455493531599909377737057886746734498692380157030950192052305081755489189798728193747300438362408177825394414373578534269358107541001873817946202779835237868990819077456970135537859242259376949731061580817563597223620833409142630383335133338265951998068700731035638008621510439893134630336529138738203847462458647463083604493397055779026736300503893577453220943057743288089355707098237470093906182506600638681454062062554785773375068908846884031405394493624637671520182035054618258754235863029286030383508635055468220759337473908713709124747860901844415483693140109892079942484579721746575194293380543453005160194179374747569814330721930196092224402680951541689773536990420175860673996848372946032925620024656020055040860156256489292774126022959575084789285748834335419184704193507312465431008271553930368635471474160148580095522143391495890731331076113052984659665327873901853385788765920796199117400106281581925216940487435395074151544882901838104902369496257552919403866592658490129921506031183739135569533417437564305716917729217193178747162334506456651792422219987802361808157911707912820945322828683790069018740353030651393713763881792026535221752941739968705661451328136967077124048447615860629294804786326543539207786211270540060508897959552394409807417509541072143988116478443101676282297395445926025547805426650948677161723642428126506317158606230332585772839079857327301692185644482559354301253007484222625379052280298280562001164235443646079828624759332385567396213925253806222924870221065590367500232927125058118375812637040536982248034809571838020438227739810024079791171885985970982818192222670990108494610428188045369205759895108450238683004512442364250936867884017317773341492234900720385599228992505184648925276852711428579951168404904946686030385496139668124954412420298961179350253070115495356970746238680468679411129415505372531390587381494329294153830308763011462925972806868923226445145849271298375817708647121657024491330649049130322416875446666114310254492835628215818033768504143836976722217171064363141256250541534970388429276549238408662645201534414640137657800681243005523257677314569386172273699000647683454526579438777646340053978348103208737328592184636204211012595284902384248365538867697939816950169326368307159163601714110791357717566584255365251257431321001169773135634890944802447854042342049569946736105445428965041340979449064117798489602464021992146861819108470539840796556047597648105695583777829510162647418548115881439270340759624730777230372895499548501890658757292935444339747544702267337377528609388587698727981572788351990473596137766533977819283339583089675621485668554290911706796917444621741674419168115975415338392933010768412736731924027176666158586693581409743483028731795521802212609962594969035166956579318387880437882834433314012659670576903580144413057538314970370184960067760715940194737523868117159130907970290851828375383041878821418213829539337105777888021349878844069065602820726269259653623188159390774868623740605792179473970278249317460589900371792575342234933039033143511819122226992720398320047348561587999118033401264729370964886688750871448708235617776927400206775355287676514558448553120543270971233038342964218226352900637344167253727794646344691347040680320221416252202755326777980131811425467396931116148867165056644977344564437009397802787544112518798824808864188573638802216704757637726988780384907403751193351461925833322887621237942315755388647364003579360525993126255411567223899652773718655473372761417062154373778118083722043948641171492526207306291648996590399714609249671382544044050248915032056640863208905738040760888132714754680633930542571025432977975024879891206160000491308696573398798262652285165369506297794083688972606164147847015777990467631997401944374181882624008605675558342955877146296209912196449040530055058508002068771435609514574038391197537270064492725694802949199054851556404474147273370049581375938619321385068129704059477029540341746495200907305355798984847318324010865872521255273295546440929448653428672140965766266338174431679596531992566242470673130608203512368507323039850201046183961753086354215965744145760941731720241172359470934776369590975904379793143031783513132452982946081305283267150689779576895413465782343706574433754043270556637142373566773172285756750136556955438307679706495463478286308888827664498338386012732605637397919922364791629215485222672276052732014452133040929557374647268799499783365611022760666417887258303407902249839045537621952330207470471221966946051137582796046518494992810003656265970668144038352341978981885213510253181225789173254689419617914635090230909430787121244103426543850434081457721896174729457117491253852178215623043578788661111566009999752117146859750657323409311243937854352487017964193235114840215001752358137924918766033032497747706082850938313248468535371187451088386928937970863284182229842295165037422566303793644249623508338950644885540748177731028570457512797985753587989256092728338475104543456715684953058263286178874814459427110532587006649388403574028716379412200146446993418343510900032949214018345875293003621206132161846489625155980372634230197906363035439476729974757104002776079319116771887276451889730561242543326630794498041201594184542928420374621910229480096314463115254437934964570798867538247315089190256635505603722414838330867367050703535545762435586638808715231274669019498325094399515704630401498976381138190270067168381266306602250635125520989617832166780965612348997963392636982224644187644225597424540906596552690495843627355920928335110709645032530641268037158161203540579300698123415604494320419213864340524089246949256199904794900029167385909226931139701060113508114752673054936935103868936360333314485763035442829134018444388738351919418046490229790003254575414992705440817591757740618077253923302218008610153270717800599742749228103928278502340953719987295784643326279627318421240835156018777260429802781195597999197593305646659177296772285308405934394447348594366073314871737494573966123974121807356874063394552288605278344405800883459113233164011966575194357717855804966582911132627725365561990375457021622762068422298071413692007296933713167047401481767318299834363224516811481460255265184436826044667186195157245141888569496049714226787207234443220342351980951608199238216424108219302540094154184123317569208399192088286861992732302615587395803165556675032811333730625703418180304327875163215960165977236995562319555225794508693888374505859133185476734985832839607872978403571787882913330212083655747267250985008963346887038038818853834673270977760961971235922905309139997731716753714226629653438134697002146780087642137778099797696843837362972099148757238044284946585731533841469523946468360947394899491526749126140000819101665407825614239021071530127125501040959488947404103571686901289867555714005597257345441415983493371757388023153720459404888866770235215701700753203442220287683474723372188412409435075060357282828170435466458572306842288253376982781873646607345173053563035999973848848296656425379761642699253052077958976873233070548896235666076496501185723256880639986741930668863612026691100345586953092106835132688920400094285888889480924283929524365172893212417815860031598044265315237192051447342588258092479088672884048125091224264817744261810200182198240744074916755639669858095344058521081545667874991425081862100302455836842977842842519236983358357779694591901865461498322335116560342173929329510778401188528945530917792886221607273518853975713809270549638941054553370413967953195753381687388168234752498780162843456460139572838833160226663247112386831571468459179762011174974731341976803556704671559276707368720947727459560718398530288525635221067319532482973602989291746882872175511356961678837080967291527236390054662811260513172631822946732746755426848951534069119714413743941563880183987379072751067628630935324559310802158590248307178179267844784148630812432441099704993420788086343353290132150213606737173467812586330804961722931642177326223099878462767867474637393388648534173090350981447502713113377955285811350941909677391839888301144479517975397562846783476860785386341703092760998767994263443707000984746645819587283159155455061839368012245110400688071577169516337137172845798962159804951366801516204896093612329657995594374197196647814957604103891061334892192750076711335596687840328288337893599192653555526728983910351782535428967954921447980276988703793797366350197762137327723973698657776452175371040939676291184824700641941930781550302562732579608392582288206428203814127784807398763942292250814874106828280870063028757494235596966957046217349460735632722815542999646156547672058149575327825897722619046023989213396541707784072451479938040723200053291783930501665574588004880090823128436754908779978884853179906605259763394067648415679120761873222464742412066934980055615514836480304630864425492642314297987527493869458138713127217587940705515300663326222840589446313095930612069576624625574287214310608391747210352655860921058796659444298709810894204371422612241860224135665800928132720937094506262210400736336443309801904471211432473064780670714016335368815911381340231899959727509303697837057709441802413545704286029771969874104756992357093612342156028992147525148240202593130411230525747655225730247694252367062190205355759989857298910157583584467330313028814986042531025067667066311900538087779914185516616429338326000463490000303454731939636028763007104184994686255411738632629433738017106586105900777934849814814253777698199253678011947298913110234765394188195508243229122797886422934496331360767252128492227381753997903191543339923439769963893313572607549673343429602374109281891654424501452823454254160919172371456037796495464016890337231854533224908118136537416814219507572370772529733403942390720804913611134377934385086302862276982030949105934452901553612550825162600006510834556227112631110898396256595162161125132379317510988438832167739653561729110640727137459995359806764784050235792132657117658541881272623205415300736169875794902579056321651328082858509537392777002001091725148961400972744885692249851294964217054536515348117676524057789157847269222035727915859791902039003838052353449547171923744799461668305298812762672412572259509954623841440054730992887856202651029336235098232307729422486225292156740511557676836442099795367214034487932208431948797763450660196368502211733583083683518529766143678949318964069961787701204297014063714620865111227416906337542422843119108359343619563038774218343470072173892715100944195654121151021264264964790616550600934525824785992309858542491625490579584884352129354345811425488005096514555851051493952762874774056506425789294140876436979690064125879688282948749402733896947189066216437466813889319382723881037580441264959564099706308015817966828344403129133842273907291473783364412172152047217230792023701647934791594799198693653287710725971166373795139564010785729447477185316523225542127112368033640592802752977596476603510445396605392775020858377988078504216890021241146949999620441812443200348924070568217758291198781967164106216579772619972438909611310690960817601959889649129138664229220612964092740525318064067167134458180505492580280331658175217334599505374932890639705141672879967018094765384813744886676184131509929748660591812057468436367365547445210668619589841636306584673659752912045037255216590993039124490648892086901339541261752690636716949345519133912479873939236023968652501684957193704471617049407451800300618547869201929655651761624301790746385126143604461955439300391425530374432252221656546131428644003459271079440862819394512402584695345771354145899158253422464409564255964625262695038190249457323502627902573060883232947516825468694813897046105409918828223736445338877005594407788152038120385084378660196312805696310262217472024815678131938408285737086510690551839639018001723417527242464791133920915059072585847504111911887350744066416902907892710321765415636053452109427965230974103722647098577689087513672116498803823791947088635576238331997623305095728637882332934145968519483434788662234417744701693820336129937226180272737134848026877272602733753501935719181924927489004769855551504470381258958336923191734336166813332253150110787788480176311836920886051847920676107127565850522942563671685386891383420784607198243329410734010199389764345662308872517692927345997678802269482905878880376716924933106199580901832071422328667149819946583064984381450158323590870159995725626381388525764417496887633783031837980458244253556847218383473800256715340068094214458142392124101018791021307508245967724844325539955288787513976708413273304546507095897887582693016513799247196712055895999008333023903782819437554184101750965844000744905878697114799553899441656433226191125301220101416909594030350788796365983283785970243252561294417554520892302451559389707880199320295231731226174292749089080607505853615714834269793870983862425153919548779697374554264812552597213125611873373943083261513988633480086046136402094875265473021815861257829546470754720531085440826113372300915452234784786235907686224243587443117510089781440053232855238074138280376399629931801718319245554711994138015958001932335246232573796617652023758213288502990152919045663817418110041061905134613408259145005781557902729235133018401417631635693352947781505001632022887924177802998261087562748175459294781484506039825569127761332087097627772604844410535237559825299579314509143425127874328198299777164669446468385927280678746766132157267260529065722672047980475256675795162638840369272925663906333838652312103402428889863847863233855588950072747172428362108747559700323043034601259037054107240578466696697176596236750182102110557855540612813102259013912839713162676299337329646506165729047569230776109259476877534799260292216001151396267247030206071819471685666072725728556057621859897923511291504018871018985914604946802449114490345240467988496269294549579069867995913203113652033393578402465251940229463903240635120282345929496699230965611934502095602790459455448556360213322085779625106663255737165530682047890886704861458913971078062749385739693924597534028606319538296312270641835376011740396557991016196775909095713639635203609583530680307523144443134216967538847570099843917249979334398900428373835117870061086191425635074990522439203904703408492657065936382771340979731876265861203546715809772735680340812678981118752491370734998441046693641237302628577430310556260983131024514288316985201682712120820120107240828418877831220866019887398361659616745608506891663864745583680465040756821248207166668825257434409441872501374578745307116418184162446629231449591461037307843922588203812861343523063094321716905793535253074589233120395882863623768865991306581430580831982856410378685397762583572193272817709610859697338117000109700507973951118890893338463479752118257875170372400087554295204937827097881059690928360522390032658052796427758167071902288903511073487366152183202464669153021620987468382520841256182243461096616091813740988796411776240659297821971474341877861530261973008281381776146222536536828445325884860918526277043776705815121082131897744248817112455941793392049551323051268218685939581369051281513155622622166773655306131892429712400106742562741101793703634879851081113810138642866311354668707870383169821074250163408681272774500032127092929699446255940474326811131203742164246921343007398973311207368940355117942618975663259215334073070766609167911445740456539179645211008706037120921760587363256587603058689353179703708200857595468307836209358959828096915241221646673763067147338529250542258131989333059911815941926815882424364792086691043233723552246975050442224216543183373703642037311053865705351399739884812190412720592748079774345148487570011244562818828577926458227076431211958287524084170302246386441929580029879467416584446104989162830169327426463839107172689951245397226381820101312820037519368131962846333725901368613405623898525078685387700413166875258177825761603135601061873982604175126538958851701391273296933189149566477288143710526404150048244698190812815274118823699011679406802295788108414557886850086648635710703172283498135773966222104969364302541389645363516953570131562490245905362170366374089417016280712904695282523515897967411035288156859562151124373910465284611599967316789413788803609288799922709698370943636201538573840245537608773465942107817865639546878772834326512826436781793616370676670951101279560588949813781654659092895004335436078451950803060739613864280721537205538996017519818425137052348954503567532066101411498177552640876933176755250220987008649083405348822296047039563184301707769768673249345266794104557865853968589879426847069315328037363420671421186680613048665130825551622972304078435225448105461774402385648100612645146315435907669901176663105844204291492160011380803911232718074840725168027867260739500326736280329822355805020914040001792553116681922096121897055785470239862774018722164348894041955658587358019419726468524224493517586928978056923022640694654825023316321820157127097031041627499309504480145781630341664166951493966632194882751783231608283586142733914171144899311963944810467485827117853644884148481912978549330177357522910316494281144113459236597050746745260267478383672461419416718090265823990159879092676820136183844494471851907809419571846374774703059959870341038941837560671086425105420112687003260814565634611917515855642821557466807914675210437007768295957422717474716083659967902800604151988495766231904966073552479217508274480493949986027108660565865539204816500444723714534614957058931670710353849286643078903071872800730631033034284408221385763789905582661608546237001394499871033901095754934266696668857369976575833304055507638394566803392758225261209392411696027812126214062237256292712499345046548784639270997542465345914727954165898919744967486707324442943111845295302815654565617072208311000214021418028764890690151667100473434773030653332989540153509286628680466797145001106546086993395842222781319572469478794123165261638384559196006313799761962586546698567113420170375310509239308890020270285470752851265924380454805694640684014730170120305393160556787437162285411358617604390291405212189262033360795827450522587948036321967491174784669052569647471534313763462376043397420536905707522047742711571448528526710326908416537074166082246097199797767703538986436588571993678112989502241807269746079831696784934802904730910059718826819490470586365638082677658383445675190940331499926880029461677818452871416258080204409815219949690674801863202929265320880559656926134746394812307782792967975645342652685563831505431018457370276038662739293479861156077036535662814088432316441215498247267469650875269915624001948240918227480035482514887129736955298493914448402041816851544077899210286773579199360470350783453552422901830521041000450136240346894261774695858916305014679585422736780088626960793523292713339085994194732083982465785714088617074404744513188396046406224382931171359184072334187792869457549702884764606827096127329988773106487118397532175607120112968316663506072531197246174022635580805971487467439704734205607547614670145836708070889296479156427384676143794135143890650789834830308580903941751888840410025537158907623548588605176255872915518921695891740476992877493679033953883060081959844282250142396970445491562646238100856182731413457114900301794886621481895963230024908728484438314159033492705641776416663688701118343695026378462811290376130004293356218605604835401938940106960400381820801275274661621356952481315700512655286650760684470547451702668114601976395815030403009826332616744044554872254378265144604786957255166572095972811803821147154314348874896437590198188270813301957774630166897822798400695775404540196605828527847731723564378594750358619751956241253883736602802227683296003983242316182086315130016275530445712331245939525467474689315392767225324049514531860231532782390880344633259271755247455727645607014520734487766241755043298460424881349944186661134232492506439428266517787350174685581493647984371726562949785732060860900290081747176509182521792496937675110803462152711353400036003994501930053941374837315886640529059547891324093767775672224447806668213727042805475697389101722908428238548931612345344134738030192875866581511919185561616866553084831522046039041516885216683074757606978239867999410635973802325575062527170503530609819621675888611227660175025891474433820152218829122484006280177060401734302664461415895134961303624606355222464803645135341841729935502788602917913079348007829924611660263797579731974832943908281822585551614075147174010858527027272799847031802276504052419007019895784931841625733732226037724955840872647374529828375236883661327165155148905682203212023529159919136076667877287439304388860551264687551981314423417209335035654374694667305668220984475425760372919388931424328499882466564080994443794688365115726865489491568494639537159919121978526471672125354167189883524740717692273522165617386302313536641431424057831209012860913654049402583165065854651598851081730502849417377947292988851394355011036617308220494087799378596106524213526854303110851362314429858467993408245045105543017012782445619823386133072248354405354289817205864933627950832706207593775654056879767141588930551530456696787956095293215794868997222469020516745016639384910460614447007573104985561733991454659402894664327361096316676207994387796579748422705519729289363742034611347282315174820648973731349292403393388409950990450767492345049346826182167051501134947785578170246469164179382964774162263654626730733217662551600376651146795249829621935012509518805713649662917976077405423405149403606037314832319638686333095646155702557331814821052094469232102065622209732756873695101216312399026202087370437048015595856614519552066484342749796658386704538202278804799792457580341098346114434804099289734903477983515919762815501674023112006461526434059996034671157680186286314864797472566570088834587435027034348162825545512551213380962260196883164039453011919481193412900007847103960580451539147087758469395565055962983940689593859227960368657867484327835780275720621117836697324294471893682660344942334864804510020552971469638455858498514276940240347248020271709594422361420089586544315838646852084280091962420424517205083175830121169090922866863542530370395040592935027991769050226074589860255623739397710768931811724920603102888886585448305096054104722389341238700337357337514086401122558099117175116309545606483755118042226163235392830623924953746934483145545074878926211473494184728831678354874471470761710499297094187925463172398852927836353755885026730372093242959345796599787173271375471738513736556862178516178057587632219789937923276174265923086242074837154644877380195282776472155470355128733063345480572318466200347440663897866128143602065483271920561573375601469574785600984313967551195787955822579209660468472858869802572612868959847892578803550771907314775589099394554536838148295022591050478563130710624674796511588351950253147015195260795024058685232957473786668891146290153599059540091979681716294419766398915350684137576049631457887362222867332974217111623519190645323569566780535369924159602364415926601637665622113369582442717889395064494247278437057256145096162992252900546112323784566735097335910405220931021192964304058719126198124796829190114794475370628609325682275337480851828241393170025017014429562649834825539066538577616154487060012875172683983823114094127086371099584337309938124480042692807216283533192860155749463078571109763327734311437297511780891511978011622815114906399577091745436869938703072833986035430648648696802517107857333702810490013444417196004333254806211400003010431899597031258990535585031527991875470417793956873289626010009081982657786656776001895482443747305788129673804316101333292394305298841700698530766494214715716784676138167198479309521682875896949826843100172179410196730494534180521453252786619929430045996583362451323976416499105774302673751335487320117347099526855473674616027655240306094288153741054810690265641981498589058926983001130717265264300824165036436631864441526294524622425137431710879765679616671071487000892403821846141911720022616536147863074756571005999515393236214682320186459614643891350791267905745783255430623754506369498877931273109016148703787263751070458708941380945778053823369818561991041220431673175210986506842976141305536705242172583536668095346517833444974881328792985801456884915794426284638664055183060462023606317305070009308655958344580279088669945514426440761556858423725955882071754143376172700132790251406005893527760512434626253864328837658821781178035411184823466488380292323880847214678547288396633768472938442950658364106548983988239903489331960853594550656038658868676431144432261583397181020260753667005196589933093958809163567203127884287935626362008948630727541376298739164797805939037427747761859831731178080293832414761759691976236613374759626716888152455547433586190480323681656657266588553862061555716241905759896562956518006875873174618714386316539224650868552422641044216495348841367397568494968192216275144939170012177956404780610753944937792066601871951264785446806163933184829197842995442482369728872774217819748013034259862613597247002047263112732952783252560370581517521701152986062498095149960071279084642569210012961383760597177217266952569597585801103004991800543521176539887067874427274549831068743059630833539704255448963821674371348903919729649078380344554010795835732792704122239814224698598080925087569332876642750739757225695626449822143586287779582970226362497481696854594531946532329387271877195626221087311512005320044346418924552910891126164926709509938639025215264467262077817828366454568986127762679184106578755498646681534546866125299898833347761049141966880201093281835855524450588785832612143264315080560549334754263774025319675554928278188678571868221238316044998071575416822323377072080925263781123349544972978786880668069681814124673660079961153764680261438493841495564715004217967428459184335423548836950643560460267073567245286067463876341531472255724054262820622765204546067166293910552851804283702177326984531943430129677363954933860888031372212549735686303821398902312081092383868155075993680531145508139419546822954573859199549726556770594769577688412074980700058632371741387136622333975503214706787205960872197733662849204436494684977501464844213609281627123477432725785782757677155972880856238139210952523302050917290388525482150328509220693518897716583323293657626545209892912085402479710291481728918414014845620329198842020701714584746540307376239159262113569288213349120925545472159993036943816771573048980721112720290249519607599479292930212997993198780059662435853858983470570571787727734040558366598994513211313698173215193063416702154548763818490119226626116505077572418394150737777635755221815182391303991426636209255647426513708914560965180272606814810602447103369225541423143634199816025323943141372979043969311917602545493334947556457367521215858891028436086231644168620222700329503095880065774428238462959379818578741744875358521543158227856925756181005418799566183880097329326025863504744032713822067396747908916831943737146090138661129847858992475918954212642187877854379734669867155070757466600303926327272777982129911123131018469669218704255099394755999321237218168966444734297532274571075966858606200857474748538885687852921991062718559010688387420330198941886046235795435187487880959079911184048116699300349150945524510081186426560646358937997295665466557535606256919031463028485476811723334692248492485721376875597805062473919912294220522037882104333703033968775450695621877339449298919983954085154278556099800088735065072419096496519089633764571119661588135851750373718406585546947927254418446881728029849775973920998350092079446285493056990468018575830771687926745964669447528539713535329197639339607831631404568495017290163227190805645290573652333852976664418036458386680662647028415020079148487969358079477148822691338788676364715843581403760552067834779598454842982984386233373848805514276586680643111013275272451675584767443093643491644630620809426182196528691673761663096565943274430648266151522005080010949454447939628679364661485734666019042781349933649570702870519242810634601432742875616583447040075218579990250647820344277225173342662263014192498626093621652895510469023850118217070492840187330577149550002547244594558086648053934611190148934323060400436719969666959754347295594348142291803064805336102729680167652940997838265699839473495960323132648504662863227980595300534575788115127087649219107802235892825882943564504021234187993331232641785773618109188238290498441522052241826721350262349015718121802150303199757073487261433104157816187373161469126786705706169304549332280551215283023009601989713108184783592711383051328107587532237765813050786638318962058640834791039492334890503149825494299992048744121941058980525895165890691954633399396156970149257775184869971373162687157508411507189030555769533589478506562722003781606627263487723862241144023589384780228634909109406660595147827189760238580415349236045732229846669846235280085555694624631672295651981394288176576395658674884341432523640272605494574827509825658577823822079443621297956455418051274075545854902720586131531863389590832991944382088295144989534012260899716274406340117771320550281507267052922275428961392040691115403210049579323386127720170377229274445221347304501249629144350693957991980790614366483246469643731686552362589390270290577381958368733234099457675190626959458510153445981243254218970789801493374576437980126361791636062448974019013320438216688071440076537880832358847966569772884499198664797671158451296163273012478689624886824334113893082115909377440275372667458759409206903190553497993566740988098103587322973540065220486636597178473240200553339987826099667126755951468017744549809808069930157030198568075852248285407468453297436606156706882158301202858422172075318611879236865610522133141349336183778907069970457679121332960389031575622305311682206550345359318553835517865344680469307841902379451021742814785916767958418395177434409705339831160943296235416124437709689294164140570733960595655705628472989255124410166299847694688937611408080389708104960761482848987746149561397803681450917942293631366500458313201615171400156328445451905760105675772723298388649238950471683598880171195364182763348184499306381962120881320779680740751798452044597628531158162735076166458659061981338702515959896332267536656771968671280976688181131495289539198601570915880461104050893041212531357172246224032546850630055377804870927726677204477577123395809920051076832567566645658851858046387872242959413903182638026745242656054724418510229353671499570568705879055696931609430303623230829151459444668858327853900622807046820428755009943725425508298258318702266555026119003910833925736750851287109069670013152461571174761967300708579998541927047684560342550495295929867247506451246213616948674737839990532238830817523651515425448632007140985920438647531656596951221389589218493453239049632359837178864852063529828836689851913252718702033624042905321045559426313453415267929528222902596466142944898714683838212266457354184567287507946161182037455067584064444148540152934694263188772313978032997692234361932547852515842581460832339437267138517002060918178397438005305836351021162008923747038453401593360711757398147642791978319870176519201361302522080350899464551617697609477129021180799815694789243292010924254414321538733740149831560707111769292394957173460746705781822021745198764186433854827381574997729032271241371351435767752246142206344616411345698484819616229568177277858433601499101752384270671818433023917434576277293323059318982029647842418784289425491875523988433243881444638763506322650081234023175934852296053840474619597035040720949780174113437743397033192995997735414687835585267558674897951201871683417869636166684891502674604420132193913253329882855206498786020828569284526244521176390250547632747206034732595502696909840350575318859248152811641249807044667316836795956967926867556238225642074320722451582762641291494811006257983326610655937466631798407063133078514634152024254526317248159696568502026046736279510016402585770367342871896494947414793155958335995039342174770073398789910206440330757370265151343370240048731041666613342418365605797781985095703751179592363225469750139232987812244179065724467895394177467558513442831501161811624578658807607730410865630110525767173509112132240101210938999559422487827967794931518706727909341397042659743457781181579789167414539249110079511917995571569193974428498277199233738876197112945672280082199921966262837048123081976195298155331889851699660136070496729565784963724633661312222969527333434421075518971346372928062292341020183312097266993256092953200878466692211182602943155873028237520855143039569146955241291549315008658766530658538613762626825367135409597654191813945710356781857736991463896149050960011161824997259461681320178195029380825418442944437193481586911888534098999110116464547042965698664826588908798327128942595039838278417252863657078170675225624790118494446198132438569490864719978526138411298228300920751057892085061820542142165362329078113196138710242768306477286615908589277941152712353889003169152677774774217758361982813826238087540023275716650757178066313314599662898028905011323076514915854335348198348442624762724677623654967479915519070857495313161885973640926316064384887847710944013887205653770402858762170182609034157327940392966034122010840191076412344375257392359077713827115338111043142216147260838509509964742665843049905325756365970637952486743594776967166914702133088613148724737862788193587513422496982447003976077032878405849332697805731568389683024530520967896470238939084070107842057206421998821529383385087909398586002700663090819123341220862530445380307133235593080937236360574170324543575290972281306439924042423506249948148352881060805094495364069291473497039026092944330037245243491871826374943665926207050832520652866422561388254137406137381180836439570194860011264329789478603808241957611918251016220441708054100452784973843487026271432385409227262966491597533528682072720282915945455537149357338731970424087086312282592677175937021046438366277218279030520486316196078014417315338978751096465202881085539309779050286793315312161363836308831585911200957877599164087969567150828680835269685560648622631013379936829188263173258192929759319944304839970552713613353290060830350937726518543997729547289971415447872578748479500764333800325995090659656802808429028313069457795423647531785786000721565235005513698298810745226983636397767227725659154230690038775587098616686563497421146401296265219175292682062433112715756318649036241423534920830505171185906189252250246241708201690494795476351162568736036875688904423754486456766443109855879640823832462722068029825174419357554061612211919148421904587449193641129365279335959968932783842920514576235526367809266232589054407411373352972429268765390458693701475378450695611342472170338625701293797576930640218080488839119042363240933243690016620444990265262316189226683313497678263702283413934946759012222312896879846147402541640917318887026092546175605318667847264344972609043137583186227649689859007117925101048892853146061228732192650159190926515760699421912897376239896057839081509864248038199853652693046700906267179096427239755146420359997233991962937190245756639598342737793345773320096391249685345396174447039737507847492769398844036235775997826127027909814635874023214002658101237484954244807551670698398181238202799290481804059554154791906412008464737796488806152517574603030246977642081428663564218866326647023176527999648695640901368047332473608124342054139629415519389628294127671404340735616961582009486623097057976776670524038255504857111885232968672088232743860387391187687010526469040674350195922984971219494734928152233313126727095790194442987605100456018284019075181767037424184724747591408546785233905712417788364120676720223028384576630361934984012302446703870661684691579797758287994995021658233540971016910311906138268350914262338233147317509461767754465219543514935246761568372585963937198461842847632310312137337247505884648099939731026368563481397058208477590068995003310890948448603824306952878217912562786068767892898095795786473958853791920785535394834566028970078512571965196698224391264766961852380030962042779063044426378836156147903243136576992024275161476910754058965334476915693325945763555093774323973059112226905731486445220088205416777336266147680727492978239529309190886723304292836163032894013630381338015639534131585721356581414451650210102055764542726889491001489499063255455719765809805882555272057559472504605043287801455797426458507048920668542940602995163989102004512656004685311141797506400554177175223083794124636959150112763404580682033629629707698275894270779274287604415290034264426863759453305564006943752264039652555797140457168073099872298971391504199871734558019730632217944245164552640165277172018737005559366870666198633052260284886608273726703973474579164592047453118315633638370519997996418893191882338729251883237356041635369747228799547090602579149984097232746088294324782282207163317150861009500681697168800564633703806533902726320204685734899172254152259901527184184127736908174066591714661822133546535094869161455068855782824921359847050930602817151918039054376335280959968642220857463715231819353490388652177641461959352496125619905826145381387807949509566295010661565879657518275864699126154760219013044507363487423646354088746026910335036144421384831686109280284807659394303491281833391469423232304200857865723353176281655158889562224741053369098644587264849850132038100491516005008244005634779507681495274477546821571433483149533348668493213845721071182366597800646178340193425580769893524140776688586512035275753918244139031019561821146676881583924090376638519730730648874098186407314080764982996862993500247889472717011228071400989608106512957058331975646180280111608574830532817453256243418762411371223184560371871285352988035291228349157227573990155228435250454012003610341027520425649927268452798860019579702515515147421621478356611018223094869392673905711041356166006127128973904804748024317325036343716306724907645093426379633376225585815912932972362448545342199489202386341142007190133000164894830501845860466748883261097228665096139684705001246282120755930687614074803242925170679254581807500286760007699486599810312550642731428561279515274031810381674564450626059252628862318012010932962585934402541783515883957506999951684428773018537524260424525902512542549587762424489008201261549347068628507379833959079450640220115417628178910529866769676890037296676812162352332770471255645547192868098798815754036145974964254906387798762269225154775999125978171401310280526973500710690678136594601965346980904046232105849515323588396527937049431801895192427059109075443528397375943267736227188588053442059798673111020215349795704182755509394759352835235619338734820477865293726556430414579933800975729091868806722723498346272621095121243623277901429195847242401093200652377359954052201483861843228706538588887352669903667019219938151856414617600893768426441836727337604343091225932377322015218440557211440683557302365232343259141366648012373262390454031898696947893128418984614373293095031489441768137356711656792190247946550743615878066711350347338975629776080265567827266395512299481739768561828296385014553105251566060981379202725683857733357890451634935158573793023980908895786760069691338185385268197495226356903433512619810470699925299447361079418891169308527903618791101199590580844848581448546537558462374629030930949824872432332883630203781097408672700195114128978749513982918049097780268791111501811770305094570965397436013500139088869594922739569946146142338112620087168563219394968915120855939054516030290553547317359555260435823343590878861308457499679139731576738049576851167422925672844057723554222758551490236836679525932393704434424588319412667647662311823509420578494540869211580465042529629177787345972435459423343220274690542431919667049007164236611836985580290274805052097084439339334624736097079007247629532382520217376980321176163569057273220079466058737777702998078866758711976927290787611347546207360006524665590161302020442052858194124020178964995257201007565294122043021457193832075936551611133192653807787177511864681835327926961361554482917344424211570573602431867170160023806308805577004011672218569809738827045825762070670106297908825408751748696670236897793718016112917446136286861144374731203608273334211309481911293984851915931759070458016040328362547423819200802562188031422301325576473158772323438167430775504975235621907986437685620182814725969053322300221229211670468851324606130311462082924933387314617291955160492130665725017753781393712985385957648376797804663698981013280249436400612110319950588337541710472052987091972272677409811604232043502342798379180684868106178978925847516871637876108186375370075676933622271571074836789183705205691141160233554667418904438982833973202036848091915932113685194557785579515928499341593686789245682344381586943514444828854853869617545400537951539768156526462114483668174988968997733916687819854878285147199932021939503177850147681013141443934376972273531075828606028986717110613593272722396635585443621393981962098117431901123494555268728453975415979442667727551207529122711035362696433227085406937309812017189502250303316127750830491587320443958944465953256487299356823774343066729832871310606835314685212242680156537683642827386376524516109555947250542386717411328674274338452773968505302949603277911865387759729251732034556844234682165768442781645151354303985096247811937688069486895208747826736256449163967011705482080256387134703955097960106461946879732210345717288449053688222820182789231623537743163591234066791661610024589656094583140992018817878071599331521138162654848338228326008562605695583937564521383857205218436096687134907392789097858168724263792443004556825202403750527224528057132995697211422411546078402692768499104403983661977155117782637150816685275838455216498154448559248154152437328101309898206558145245630764148519110131349630608242556558673231055425617234294791813466403024106170431142313247746816167048978269238652020637960077657001914286205673127294652409973133232468842713315389696368285566140653222112977140376515916684298011639431879059829535476448094466072614048808116795336476495142968581287291520222503355866047427589169128802617673141752901620565276659147912580842056511712330557921722272605269817050133234660381394398051717105732136089112543066376140969160863202658345285473407990624162814597909898504517965857438011279722730142197550476724944277010089891214492790202339812636079341828807634682324204190461292286688351750178246482633160360527265897369962519803958423029707209855416458791218332129864683149552022892621674097175322144649663532037384685575447316437251200966901225624376829692908650670900528221175812470754359144437160755934886551939928755434972572871690159481030734619204415849287008548456908975120288213565093019450264220846589144368886607722369014335789714019105874054307188604935840334281914951307900995449492993014759646927271373497982578492366381324630698247595114381473086812969160364650244185320131493609926703308744823315559805023027508681635006760861337686967229036251653274195584345550260902184974723949709250354297231762017413263596046641184742207464102619360239787205439159137467093482515010698291161577842613575910877837789352321624075888577242010158930411472393401417730004456012221335664916477786941477085559156532145457707032677350733357025341724598881380348911060998353936670645733718703139782739238766229227952505528940743868634003943973684854814561828386145321067188467483931563579610262027489325498860294079684020041433033710548665252795837010817852728927797554276344575997025066570262250696712624770554700006838870068332821393799070128160557158021854536987227533911771577745810695404421849202477455782454594206416043412439760122800980216696585079998623313189478549128518437692412079621936595968609957462065053769113649554493129160603989166752111024138714608333301346499477211222559122982908798374914630151220601952639556195825096416878525738733813167830848729070192984517291796409014401488515796136037709848571386752426137118792887732318170784501892803021721384944203654667146839067666270443024147646947750437603334471725888355841938140899299942431696800206018906725204218722335737687674181889008366592433610973253412032638429317970582338462157902165457973558747797531192243484475522354977472173713989890092041495218365372004985124946483505767361475191447110078556661010654272758767819688722676682502760738060659127773863415912152172350980526999645193812878521442467621334799190031286296341861481105730873433028021617348081519234036090957322692300359196943367383678831023695695930710369960323502476770995744167912514239872088292307086925183212063608327960865054175056887664008905202368563034171315280164747350580247881567655461125074346442632959282703933967410722704306629731565613131330145785756149316978577522747319019760430676200797035873464576266915599036614669764389945802105300293063935157708743347096326660761402180429640842856484777489085061181759312492693969507327136101286764306907716882375720700831275576412684961905287426238861407821330199831489142004892948638260119928646101744680852525624247962034802907831279417172583653647935067988545671637830370917977378117208136683573746093602262634172927727228733118071790586920477626804722025049982653090750648566196874858566644058974527938305204344254912814392796407712564271067888531810609321876190797010604703176131307476558446395890494154928990731682864669265240475056145913685068582978250321431550930028303842704648352270309321995011827109679685412247883568630720903622172274493295699199132048977078175338803720054182290122383507893832029065070256953429657785373150245449906545024092178105928382467817810318903127911368302399116632591727367508876914142313447375295810627317388848991932327183572236214979441410910646758688031381477439073098791262860465557909246764576056720414329611541125704237306717014766291492220230554640604115284188703512451977892467797631432619981310682416573187166457247978964453971472780772261586971403038578330452951580665267042557144798220490806663059138281584355129596957330189697330160761822700748230841875928728370289155740021423687762963918821820797082636371258797541800604781635185582977586350579115305879451045401904685871578335526110173744355623106819595182756997456853402502287247388103871954309003419171815421672991277028712759865369594068920768713578647210671904561203697244325071601398291200943211130960651950274671966947428249958564155406396319280847810474342157961726032684698998512271093640185983571539492153975990444639627101697498784148767403689763279696082119325365565618683753805411594834803261986688681645290419155542503441829089815728188617851783151790331545375511630320168368264067524117456033253238509935532393968126110449876338446196516993827823648319846940984266536138453546662974096915239533116163866046763737912744064246529582630852456741819957195794014981359569564111850199656256436833665194280034168925884869679066939822267487130204982657943878251486631108553665478305204581019637518438939583868243596132874179406965989671214346076570879885598739895246973765935873827307597328352042338251931122521652352157258019784705281794696862957136144981227170353669350979686743865469924596511853503008406765422016097601360490021733578521002549842911056999615074413466009864588773026281498632783052771524522989848806441861456414326665404105679488627445959559106949533367750994326306386934802271799904311599672427884536596062943618608178961655487298108471885349231664599396054498477387972123129164767960654611832121045720876200387764404377971354122991756435896582749136725612164053933450537799373785311705915465379958324560132931752290580627532684794958214293489966518838011312264322759935085948478872998536111290143521667163923051908602096279661515052815672609857416805789443602794997387018323097329074651167554465057227631809543357939174123239083802252244595212091467487432747572772128140153915847553368274736265433790305954717499532240978900891715528359417717995486320297272744337293394759722886793308994059387877774911115637227674087904750994523801085035472281054910192699109373285227307020642909116590517760824497728168379999620250102369440188950365495080485668244109795397270262341657583058218445391549377043624953442517235105763004227785324485420776764793199241754410190158468500088872707088972090150310269118891329241680211374097927799869312305534085101092375921575535460677500031248804283158304074299989442065076787999826452991395520063907365176200773749121465088864404374040916526124744684479533572675580456281264654241128391552486044583014097235372495461212793102246905930567841319723639920739282616861682021308739757112642559038403359050279224547716489048782372603641477033090010517127051431722537874520328755234190083157875878108200277344647536713775288739448638114648657218438203692472851405130923176977799216148860368623515730710315141789919185497195224775443730066756067263279380999882724640270994880947994639290633792477609706297845465776165393761812659159576892352344575238667083039783325703348579161685099659764428557969644545722584545500774590663187831917853936692076837550229714629305358515423826933218786130632568284813329227643176106181277666389541724498125178434302891726681505113731466725227037193727894588523600442119822638074556745392604246291153416111991437953554461699236481905495823815041875892112427912611482164472496034285992181271337938090885550996473084162400957776462194819385937897141976858772924291415197849914717451143630165778033321971118592471287774749355122916438145556613779734953098723642459283638318421797007127578534943434230864188204445035162911581996306331033981724697682900063356230535869442844989773175402489153232814501968223467861653643295350517465051925021076116035410866417459311530608002635269680450673578714614358348285949506300359297414026929639141297857279986577904011710550472167795301490846412960802495074918220693399751804360307617194605089734662573201276636043953721097966935397639092027433164037517077353045521392742546414682829075083923443103774400524246368055135514548370039396334751199396751077296975006192180834841987432986238136536703526636502503977686530700609012539695503496941747045000888117677386510227373478900036728034628362104303042776989953839753565480465355813749027177541461108043376587947030731661289381454632212849830681356690375028264921205546693382285575720784139645488028202456524867575381036002482337684476685183113852764194191960920760061868184457047969401069638528651405807276522834572205669068035399282676885014110070731047229872380589908593585938266202172616735601485408081832687354793751739385264848974928530101279250292109791097555222059987521620611806337753498543162020530629286351200312279642498281868957211079859439154025218093464845028525876748705290259711871790673985215602876071645966985655402099352250972838663953266053308975772779374731781848741076175649925162004642922789007287821832473243527333186718891474734832456036998314909710701634651154227102417476723793954391830417826839862548763178033417686687266695844104565996260292837449362481524811489840475307460467471067022190785108182050032786719021604672977205571477462548258595880278061974582551480054207882456279419447038353568058514515049661109337863073255144601891069963666841843571327151756364261632174746190871136956391849614121022891344847966780035939088973261587635974164507860783827215986033674998377246027909456426198807803667161896399520438388449433370062168680604267436027646863486132588688401948165232415073380836568560908621660338854209875539628719210654313165161882456304621739286028222400347127278905442097771528224742395068122743037378850406592440406027244882523477125471633933930040305437320479193445948209019209609180894856658873469006199317489159874621574156113937325224799858624393843016889205267875884867195926570975632959864725609198809668267668504234192887769298305376450018885871712770341323820703107337077427088197737564353881993917934367972498523210087145136089322675709671677820675258846140710156577226267678928335477777164765314040980075747615042586350135212892278361394332685194773103516377464060952591754425443753556155958113885472645302713628647247448979581584328233907459746059471335229474748888030639735899837775030166295454078708983070184478006664972472207529003989749585491383732580696375070249106933303743164323155260709005392333408900327850575997447464871308543621636942700906219181509929087586350501255835357784849735087114585323755342013371636623335810732287913156396111139228606658119997201215092651900894978277673025096908141473772643099282395050712407692087572901513747959503592400291771978456414361701902750041605529056693599018385182076629046127453809569796528952014065829420358737500655879560712543384706458232027197477731442028955629222330505636564600762254929285539456913860383162123743366795673336199813153399398353936938083451834945422587506119608810046667508205942867518362855960535719659720928023605157632994256475838847916521203777712276079588076903045379207652913098046309548276269468380448451955099844428700622903992877735534960658328644173894732574905002356310313463993887835152023787245567983271025436405937773227912524983208648364497391065955263904608558993360379069705235742378148860979271054202080401325466264764060485292699384699605854788853698587508516359834441518581333411320005462529621090177919988783034890230747717989988603744074789459472943508724194018252813951837991262729400025187694596099864102698692584015136538699114131043603654764003558829979027402793128698564257379780429964805576194737669738639560852885039642280050797050741258864481464268245072725291043478239498338226415001863277064329336840469789495159194978859200272006700067712506954170620507249581777071691435568568250034939751799639320058925129442631446482898075912583064557036449735050600468916918308896146907129812349383544324693446111993741479847567216459647243572084510047433368293053534240741176204105683882922191052627783524881013254313298547417074950697771602429698526534391014631610269681049772434530481393982749770972519676073894104181439075184436278978221862542449454965701193637254821168952606651796495542244251220047397191944546320277568386589159707951139911519106557732394815983722217511124192105929708906576332330162491239992049597115339561397247330011013512930629970686731106659215653797084465828342234299636600096790985450922205636557159445850077958335047292419452185774422700288750165355088250639867024044078970709346410531366943949338939208780522617446654716765927066192816165992588920705151330612792165414966352314533944894562751035880145771131610564461533402326868602752616790899817059919497719936936409188390312900738462800479787798138990606489149340919195122080575868735030139640543083272778927065724367925456718893218753443930088170655376455802005371053735815605609470467678518058550655406861831584323824052559036628656543208698468483748280834997044449797796695799612529675125790822544205494378599412228821424486282922471544090623828092316718296953944602155762266337949707933743555530279848247066074057461302730830611670237639908433890015759434330855712336239492959789228968217598918189439773321341932450666311775794959527561036179231879454185559878188717048271480216568309316421229164820107072114781236197061036406001440484881894168569488548429173221913860040202698336297828861954093972042691918018650042871594869857474188157566759031690963380834874167659955589685674836097750132540479237492318191354834875196084361312117224200576568498338270967195235453723451537517424752920194110444857233021285094988005866543665060731678185126307839898498444949029642059477814777620803674701861330282990513330211875285859231733804610365399501446965213966021019629115008832089882927886890451901357596138804355584245704134714813420855945673587080441461975120317166735018215288424620884804341777918866161612018897122820247559649520838428687848033180349034247866094663100086710001021911755279990367045640504849897747432146169111180622522842848489487721376959624958081669306457080895937588561110268655662221581522705486146444347989685842078778365212219046580244373787013420909063646726435139380788620032874273355221546384134363470018522889262661447547764481094857933243834707211744546223943218878163081413260612961580881487943222604900730940006951225612837948350652306961307505167955807125908609191842109132951798044393811510676983249326772666061598176806216784020781464284675996892093276651903465634855224592452418451377817772569716441403569095015321266091639870391282550328589046259248367465785973655294992447541283526291133305082841000071333264258233215480243947008218690500706794544369479128950340088568762972877572471871102550452601839983441757511654067881663528708026160259258024582713328351257494331467936152926668949676320138707385750611712687813084167609363868558505931955168685087813794030939301253970761140201708605111803106050208741417800436502967047143303950173720424361073775602577795750313812985556214606423685266342253731603250911668855742227777545930384441053073002699453680523712746558741053009296938158353045791119559015364449034656199556358299217676198450473530033437332875299547996002516869750565008121541513428514440604980877502559935231568611665047073253180195671502524802513829383776292591717769354408396789520111215406946731655995574529617736103637662006625277690221833292619661072165983317000534634116067222710804581837404319377409213433192207192939941309119574728295337959658323644672625349170475501350297989661185207365887430620445235592304414196222505278130483688169585853269641382668426853543152268322611898484150220899056041237097707109965830868553834914895190380720637250742221010743693543394981226007461406908250790130771315264531851102262251061567684674213986521343901092370726325509793879176034243409158463187142056675376021783027077826220924895984832438977661874638779443124780537137499398969410791603141450228278122281282755672964392704230959570519821062045276185959534281575674698885005526854398320360802079903838505892519493242269486646069698763296920608691732274560653244031797430786119175372935394933656537317811516250321686864775124837574240465751243227287901472280379851777947257124337187792185717310382079544012442748776288305768501368807236451492909530313274911761000858110731868752196377751218120430801630293012944800554702195864542055711416226922840492857073838474688185440973464160706764371116654281360081590991274605605606892864791490977818083465336875121045094690573632560083348662503681047332758982353965082508319289664248814132800720886756812799140592436307139102838432058915709187278950590045302726103944551403516967718369578852114327790035076697217341523771828625016029532920723690009784937729414059117053972329540592845176545514385797117972942537748702493708446921578154677938904141598078295319817571751356455267510562012083858480958267296676605808139826244892562789560777471000070496860733547667561946509460110396492879040262831577662652839292891481857832815206420299983226010234454457300962300579212942272935766651223977885738136920135212864316482665382848549669895158120105395970341345564298147718325187398779932693584250370222011499302438158740984229230203489912195260191799831884486702579036884800388804096396143402376816274258186259103329865147873665063220362137111405839321568338725807704929248806454125043273780371335348446857921078007532401962069414293916511584502849324033726053237380031370721974582572363293089524478125146598159429859493192037134808920470964735431365704185959184304714171184087810259834791010283439016817432037377729841305425607168376013589391259599689998259362789810632839569700877632632852529531640899782616161420619710096935105649088732414115151929441207950195557476608426791374317411332398520200849030214561224331845806666979239200467968679747375578556998028096835081361628122848263971945775022028382136853513976705570775561690697684897525376119265641096597518664953071323131224428796749791882571829255784356936623649821614991167684651052141220659848001084715541729719015339695391160685726630926963812307295556699128507976219661295947681835501171405211380693741374639316171641400372354735879647751162959701457727384488784357820209513391341115633754855228295741502620777359284831981710827216245474293951271955714514702071282233098787228828385367806379192734383358740113959412408901755034987625525658838994081270959071297452463751103297039781606248405159334920668362510857022118368988216407087929494958476092078899477823534399135508177946938108846618171460036811064755322615632087909985955788683965739874305208052743422423884637997824515128898057112777698231610261701385636053890580227050897439384382400429516453735110440812843414923173338016652869859639520572200437264931675399929894407931329320897218789501601049894426419933312576584038832931334466793350584453047047288173479485101069484834422186931412174139451539791267368997576700089376102535299328439901207774519613836610391021524588056125230095458456945040712791255831075314779392163785646712151968546479266707379021823337640136542258397691454688877767204807654722837382960806569156240381301977327745469283785053528430649986342049168847297000660820406589110491925947538769137855102352038374595056189614916447189208579593005804482305724146630348281157004356185461253008078340747137104700233501149485120995619449466963506908926784689651652754850706843283133744925401572101102006649933805330043368872426469272337209758532285003153634897156708211526221938088599018412196223592983644368989653185377432703686490556080610389135816673535700281128778278361157061750928856635566206621779791511526994610597745795381638733015722660684961950740786354154623019780075771120583170257498630495055026728000900803039076917016300627642673054460721433500683180717263157999491277379829315057809195961260425153379077326635060763261417421590732896148649102850014734352270691894968916516336577631470323236761952826001059068685268468103148778337952990928179802681618251732599764371900663859345467296778821190177515650106237031793352232818171960680153106068784680554127278492585505302386879970509976585209443963478201653103727122244213093110798632736707932951904292135508175473121363254042062696652790226585505940089901103110978597691302136369312934223949368429686212671053393402280220870293507814343322252303954478796616768487149387919872253278909437538732993446709062393318563581766617476984502691398065259816462832415693940450118601639386563781954979890090660867067996231308508930534258490053871879699043454336568529432776336945470478740719178401113284075396268730720424734893903517835868346910826164086882688948365778066009106029510632070260188024498205926896496152804435726025014586328179680387781481029154129425399134797061313784714428124201126925696335300125834211554894587408386724413790288221242978366387253498037403463785793368594560497753117400867770274489769324383852603085784524308998612700904456099121557094223737451309848500162978938713936527107804671879440670676652432256032944504000536233017174814837520607687800051130869224178261677191950936615405670962249739692117540615741931430910673940396611342628236464720892612139262514317346485918440574313517672067272087520268543756635611032514325798173549375180210067294290297257590740688417393227327282463914495970704840493412770798211271259676727245976084885091114205187855259367322405036323770795155841742516016867210086896613023561214662350419889787931506764211136884867818881920096488748380189954431915817592407648078058077450434360518348706953295482002561673830544244780973542363726153148449747456796962342454086232626248908123974568907872404779969392185912913576949031912476862992666707814540149729606593075344605740232136903570634047531675984698618825404620650935012944208162548933754211222841365270512557921086769055234134374035225963326038520962108973503118734386366969858043454001618295510251219717972586141909343081817307947997423077162944343121139485756877276597141637264838773383122230623670043036235411154751670172318473854132933746196837385563361054462862189300343287175668681746099028488496958870622246004317787730992694072445443142871712514153439035822200713095483680487523590402903095943713771378220410918203979007904105519724606325828853509678657359919014551087496729205587920672684865315828402585002436233590289641200972926162997663185306772493440562976806041740827272417352154261136066916733802331379806907537611970624110523636769592177032320096046506243664768998697496639242870998198622137610969140982604389223013590309777635828433757135595537902650748511336361674638256394596878531448606244578389749085422506463223358420413865081834182193145359763139931373888900034897784230711141212345354632072130709550067834563616309850206788293621496949790836818080021822055195007449362687474823471562504902482776839177885525027461491348938271608101062432422760100094144448486807306657346064136017613382855599429639761933281028057842927901781734417810668381333618089410568850566584669647532652142310285858515828214942244209116388331217246134220289208981279318200070816864193781396781295305026466669985898771991764998158083397041041771275354222378781327713597072537832429721511255687960397047563582949062498347058503521756529073847462495693004567740417420837187526129782772368840572483585788341523278730830979609403038919835035510526210264295492814538852098445806664683897991363228480658229238464954169965963186744070648721167878454903840752683559328951005203060331829792722988893017208513953676342989158859476571134945863905283687231510137766436415313623215874046095581043575920248664787798091914455984425403300725118212156429443456666331857119372925468214494430580977691842071292871961971056232146300273983139365791545673599979465414871466232034095522073220807446193034263073252081237292136270247764708582838570100724707309492445497779598265911305814447611411550126628776097976520786640011019618884650456354531839995540612113227969284755872438714645951236285343433389090151009308525206456251984353125568522394582360076776686313658695597034224077311069487720339568648611474561203745066596372503201300548077615232222348611327405327649940662678366248918915352153816409691240710792803699671728896253633759514340666819094578808844034362271504713190693585568245026120188743181127454615538345706797264354324497459431936139654280715245202802568979801915664388505957976805493933422158925572260841962462782586191066878123602242512045530426095088266004662693673765362814883800640774059767781834244504774455536034651936611288651540728085279205812862818148845748100558828817161234171625995040011213656400344498888430103593925263998170898276841771207781356304018723002688712444882139375679078623735227702428118538930345015697330534514123774080974944822763959738615467906648550220003311850196430244610655046816085427319351271447442698517286013074783017461511681480691662674050397070145352671643349792515170998387995664659530725529521411536242605785708936059744496756566277969596484368842067052086238658433765994127029561588301713826373106922606158882800809132388527026443789377025677542778429504944239954406393054988231393509519773907346979538734815216457668476982285609746209697923642337372049194045903981117374153994187640491234337263359936896760421258907425177424437879820245951787619143148397636304117903242925869530057936001993852319311445966422821174264271392870172556299900527407325869975717801355762610746550091740930985876612441980897657440354534840393535330214048456697669318988533058473986041869477077351726310984168541763178492673528005849886539643467280471744394475637241468353955085872122896904253766943680291304819696330500422215816885767401967872395717785678445503609659957906001022190289815618467498251599777645779880227183947959818419539297757790879430273906292318869710454125367188782525790048998227220572000859381142123752120462051788830078955334780500672995016032247816769994661446210214907530735719089833406307121386673390270860777186483393285609253763042822818664432404444595193228639267003287715767510255128841510847876663604966836188818409540567550721015432884426297902725479921981971906241803903283060959003890515408305027687570355921239913177464917952183410972959939728902970101183787659804172540577152546131419002038773791942667910916248525665891247451774035811883337347416716131787075343877232443405869526691545562089023689144627265957491008750232089024471031388242260134981615719051240060348139672269729776484276394491967891310806516861728187044562859794902517304622364725044920125101972661975084471910443845025722024366871512001725561822893680308799716834246555974361241785726771424775290807315810654437633736780553111319237422974461931531416962522981622966194742216806769971067846971878920081820378676476517957250796078251514139918569902966856450980117049255986404974892712251274857012846847105010675821040372605393819609747698747698699708856594195407900834728035509264368412871373573201562621218883486095644218639779759631151986061332522014645599563254821486722765518886970080309688182587888175828770051298421039109433408507903075082679883469914773269801161949334164251829209387790734206806262344692458018033572319638877415012950073348455163787842231010997250444907366619326043067606370465074625821269008378437424192275405234897366428145210343217648432549491539947211839791575110293205500700264943505311409098279695025765694135593544721546416792880789331709376835821459036111316740501713916430563983062242212033782191906918867354673022254323227748005658733461883873116348037002661794174730342545693433423300319452822515504454835017110129189544696778146799951560631383983501391552525541149936646318890173717129017350528612148233580195204569233933622560195754384684735426753425630432277689593775114962972177682227267720114852652942581718564159509782295634419737898561841876588248753624002248053768182820455694122726314106157564272338328997001673059020903403017801533484645094700631908739298702963793633990340452024978261066248286389155672597738399538544984777321008908523087490692535350101823520584521457422455438403524344963786968034581491149247385404290746893371500019817995858076072688057301214793506526684118666861008722634536570240016402926012708033113729711593751539089198354688555812518644510399246786478656274695292972503592917942001945238004394335242045369113072825790874741462230322046800490271354490660349020309050613853358443126629639389155455919131014278457889910902619645033073082369226823357780296914638359827577176274458386035751698348838259180864383724114934661771101398824778933247013141675333801976067048361094666486793968693515781274653923869049892556233211926855257364402589573959365749701062095084881230579811185788417692494850106271035927431484779252194629798883584570402120070224014293962684819781152137810076912582931941927618527271695200454616175509317953525736771350133738363040764943922175701868874305663261794481162293511302947910998430922648561072216900734389151958798204524806830427572326993148464289403396402727616479897487599457787124102408587853119153693158362729654157366029101942045433984109125045026324558960582817439168669230743982764061159873989613220922503534211596902226194149032661584309948628811332953657319585107396060173022867231037997569919585880461655704229870025789923954278346767946226192673071803810258236356642652688548352274359549432347375784287557073861557906546245609895977314727348489068992227062870913272559076050671497856408729731991072578966317623733985197718287682934051059235705619003722460264876662500466258292471454395747469540111403461724386823300398760159396824225051329057918737738345687819149374169987065805153537011423958060274042289316592926180566556017673088788560014973433135316154613057827436168298166740133836397185667069779781488427623869238957942343908395931495701449709335809926266155168401611973672207640937128974248425976267690469516321222399715683516928338970652973217099255323105723732298755601445244029191505803009533395278103362062110959345579358075394701211782829288523880373056399401847802614863010078494463421572020935533046812079288211796811410621293037546647829626505329341808582619013424590954367393505318125035466527871992295898600004148743081936776805665060824567241734090322864943264010288943666513266735473439857891895678429458275894824976524887082114025109411636549650086094571302752002322253561739259935167377822101623571058117898872214769598694615197255524251049171719421624402133951042670722880242016545802363515820029906148004348642944531139563729783208027936046924158757322415311579227226340995870407682771600877017954970283381703328726390975639177039028204732491531393324304550273408721728610672262481722873227355472502994604832759442406454085610414815055096833164053665288628572158242264047622800654515585240203353446355207984744481651545321772894870434193443628776863901981311059067207642720070581516569945079054027482031794474926762921658420248453446541489831404281114659156743153567645906030784288661505997229452986132475814858080205704785049347700500358429230807267977843926878936628265397682885834721476400134059885779895278677116946614643566011291420448388865458894759004911112598347324524392040560289645513657355233826569466751029606595260839607445157309997029897118859347288256854648490458747941631427001332124698581814879431149685734776400976554209987557758574805300595241168270629477877894647183932100704829277224113039793691121657749292458181601106330312155799476973190142803349589016600355920344725812289460049626501880271614375196238155344372397619277512648810360278827440273358400310361171946578727543700756939712712281589152880355889183563532026394111112100204420590582793019023301402006138507363051541413606756547556801116219046047599315630299358464708075467582444824545298027811636746431510812737903573758917996843540687330991300483404273607857804154001954762549829880260205316952101102933426093287235391265223659284451713735189353646399792201557598545527748690974921322818757599539175556009455355503341658327500834540473719995806899913759921021438790148283244630142305657684221891816010108965055035825899067903468048318632871050265779802585242025189443933554192297242227098941587028845142189039432868774141155509269143452017140381924731653665212237639609508110403895617644056557817625451259799854787373955261116562125351891462464959971237457826061356850472645168895408024961908097886800538381169150487449660532288158453982220170593181370411560609187767915130967388286010018709759253157121594948240178982489801510410418190471745714860292855545270324453158785241619556170108961620742405412718787132377081428238380272819841152752979630657486840421672464771088688020467149052853830403996480872520910131977026192644273058992340927937156768075526154840406003248614366062763008633013746334323448953433977574853793415656419851916954530732967343008996579331073971357071094308159668735881878211930498857970081508589718101868642891100393175682406149076513487870930462462376978496421303621667437574436169570367220573083346406173440254672454055660937097275092835198708544889645511303290060757002643274600798805686645654035861883292698795971709965813315810413594481185750662748647988222395446999306214037817985795157568072758205768447345545479306036990471486435665642959063499130315107327722719340983977352864229098815474896965780543853941205076267668429840715566043884005544183988533089950213754132846559251126085481498946387390341547963583717060287634301250755894222082170259296582825587501403777898482441011215986693688251449347237671889492170318993286085701142931098232646635491084673567433516914917386857099887270958264700089300026110662882734378463606417799979818646827665964577136470657068989383226452177141873251249330419155236128111791273445082041196629411646503777989685065606330905553236321161083785731770292583372699942068227590549584217657929804224102642456537185804214961693678425476888617719352513383240002905870047062060913555017424772340909391310115859711642371021008040470553856651404981972027921680734749097562417413406825274988194791539187297445273797337044466497818445284758328467284251697883130869500863236960338230256719953739651204703038104044780194077219715221490460411766446941960196136459831138756514282111253931674506561119473165280528456145269087224491349794385284048873522232757225633301422780625441058974638415647590068208477265023661751920123503903175896698676972259972544469684669217281384438124084008975016812085035666278741028526825517365252521598028684936778602569064077160579376597387875536626000467873939779446998961425052571868617368392370543473821562434051591463969512496617119697586548761385916298292149068918449999854080503281207148047043063370264092806992180137276333702291744156354729693105651884470800121668557736500327977225164924561277911793214977822240196427578204013119026723609527509553438700274663051288910078206412045794798610685290772196139672398942051304269876608356244155194997704224148707577900906175730549688508989040417655872993226278258450910782084198930113681687006811750466605364926937548419694234856244717063470201442544968816156941906350133938505753942171111971476367569420909848440819987446964180765090320461535364395075267664177586852546603155162394301036511660963240951834036109987713646429479485622026293027202879758136130437265449716555117356574552671930081548243542923647864294022081410457223252432669021267427347371968427067871398987197302333478952040745532701438337860699268912593519822052254196772469557525775309413989888822522753399709299664411914702430915311151572204336159745810232174053762751193180877941393647186854827763957726590155521335788212812402833973158518798301505871375909585961211674903535523956919410318475152202601479748660912390376902406369499312344171394045030291696179286463357541624349039812383189744669755209000042103467368064480039999659422518800819078540872702967738975190937623091805873188833694104287602206702184147829682558509188938414661761022721209309878211940833592518391545937583947167821367559339057076334603448686726029639343842005193452717746116296751726137470257665943721046129944374156826778149963724336434078428635691090883707122521679917414293745070629903676332731996127877453208390714415714938148790010365620105647492865589355639559756107567669981280095560403939225792021586452371329596527947209079281891935039714732383077211107001572324969787798861051110845869705344031145550781756968364243579745861291882127131355634312120836309818909942857327687706280936787966628863008001617757217845058985712954991648900526068467408055346527199077357457568676508814154098357238577122971852821691725123470983259306571394201495262140081163817894489433881509251189472669346191608935025095081295572200598626590672539841179486979449238960123018887063488109048384271625699209476599323239555035821343685038605110898535211092596345352562219382999275311767652277473655331727420221979936045929868548557674535534693429060570873754489637952151553247747950116446328623339367645667082528260172506269731935253059667504872551360915322705527405612348365388228390652358882365950828939766326291245656438581051925550531432519600833063998330824978126535586131746659340392331252962139926062837509501777779928778285503513994827277962914280469194578560930347324288866469510703710627900241610813385943223610963115264175743783881791705332300936209002830600940957825992514098869387077766117467040445086406415512944671726577040067469188261631645321439113273957143891613791514942552246755824739487992951452843789052951504287426574330197457327136279682615380410399996609103117220788284370708004230193551229598881250456269644431122070378586762445006848403621101001491793511518965450000715224074108876375978549383117383496600139689892493688591802526548147092643885449482719860951194236228750883399236027339736734103148368830629164829814851486096196978251230726369042674404634599551684536884841614949134284100971003716229058526720156600223760089242059904231667573044438569902496301441733170479664425435635889739896103676605723849701627191583049863081521659332850748135337248072702444056281282550740998681164610899541324917488536374193684759393613338360832844289795200831732677321724462809587235766686287302930068189435739609611295161584043757619849443696228763643662145734322540628031595785553956453297533016272041375861253406444796542734038866426689490528630758575049554820245987736010882393817616263640162904556174539379033622096172682666120672373439732381346579599482723529862922139725701598884564325352644291034545815054563976878232500428452251727200962518680116486878186478169039321716373332114766481107985932541040260102775690710245596674726173948079757477381615062241376561667010306207950270516657999369268147324401356616435668108011038140013027621063623055970277619370061842238588064278104384262154774123100873607186838745420273886947799412872439559485310760405153803800982585797062847003761284916110659775287936726855495082454744949751154306281509433125429528671493690315697727775303889500387112580563292219594258865403972843162771319003297399753302819442967751012108079832130604125245795871655050077854656464270019838123424091826223993859806508433783082970649743450804826405485516790955011582168383169393271368138564056401183982926365704989123541596853643163995511573065736149216649278554767387946182592364257427621813351720037079361864610191841821628979780169617188008555371073926345199112339016161868701142424499851024671836587776019640814245933314510435017533371455659357888281036519299378893531806682646714347841827604463558194220770732699244138708522667529727678960468113523916336035114823159436234860337845814919192423468037042748688658641185735053632278014297397543409912089293848751903398650127903615843710019641338386273430574329447989585161175018718210380847116202627952404090886794739312605816111689232859547579827526269748966652356469550010895018444302539097967915239822756840047626969977964535309657448453641850213776632253526466427244945420716484940669345797051531647178122287894803428064851731487951545958363950228332621387271085849466850336922441217279475365354141115759619500338331629281548401075910759480493929683425593959216829754432327702538380708864576434790905324353911528810744769303289271965520178609575939855066186622929886868757127044008678405409772753881951410169741451246194041416393816139346408432025434428877953833963745011226182962868360558739830570160460126778142553320613624573922591623229338512457229755686220765892285591842506198679500069496764540720301808994609324093331835472569721969087969225054630535557027604967912557167789960494421793579362478471259526117640958886422671726743406565509970672539932609141320430387795160961773692954218749517327586129778781347064824277888588834837867852578537434862531340671764806846008308070868899685094359705728434639848800386279224403532004583539834596172223739909100804694206905966415998105741981480767193313466566911012170179115414421282242561481417000402598782910158924845929181648745379974198353154044728925666906511351257877383654052701438290065963635730049558457800890186077588763276720447543276834046260303762839987973175780193779960533523011643092726861017071835225705079470569187346210784769310837651316945724172295775653954816418668297314230647011295231944709766022172102861513103054623666397227486476710083065352127414515861003487467112031135481966570094080144951170945181397131587664570518165585826058640960098926886453286698260308914422976215304871361261148838916760985327909140746246460841138615186944145210745861815394793441366279748357191074372198054846166089600303367921440002871399563873543909510871280428015423553523109488255372487780207635020104712504270301550377035414208324763828760442318209501241557493866162252098255683910308023431440455577194693808277009477619838975766971058132529957747762439895999792939935555255312836945831257727772696079642809316933648070428648150579340994883677399750332722827409705703384485552899697925852446878917563723444282546302993979567002275270126159348587363066414388266812130523353912120675093664950926903573830164159004719930865369204064723115609351508476012511908266507062261073786478922508706920851909144346008795491763254330535608029962383483600027532035641890460186013136604809154493339377946550001632953428727206641444355906747754599047632677274495248108206386876750877164934263955099257939091288849222400472940930618553794558258037703261186982103199084304874591839659968670057944438455062950627783106077883431441094177117458130203551760225460010344390253014851768158554529840064517316633593339270759726635864536177090407090968322522589239174830519432109736249072660942687090205532554572884111022774284744231466385118843219801458663795965435156873398746419001012574924999758735302324302000206343299007103628036965155339198534402186529875827488373278705467598767991569853723463021086365881841109847943701596358227051799892181669815199450643103760117284954920683895683079670084808122708936367601818696294513584855818252573469440074094040293978295718552665087406122714429950458527484095702162266360899427302295319921181156734560563075458978144055489253202735908794024455235663165933311475389192988604502155347616405736092286948898802669097769048391193680661737162152376485025915334791297398900064499467569371537871153401037048630277207480048323057554271008533937460938794614141074214121041881168093302000273926202172964920386578643119892329587949792538133985489503795083385950140214461144694772059598548276986928894732260222534486181041914217568513054616253175801693455908666318872257327745927302982897421623531181413718629075314329730030344887885431566454276806502504293352148928419775679368043072382889786690836417017703534005025365619168579013978108750218652897028791170268392885773245505727725232653544055615803183514472782653818412861288134103353101892048780663363327372568892638234768763884619256922447927572699184997114133423063663612145089309330989261406401775067381833784853578067061545725670483350349264396104153172631230996509617992672215994216410370310330507440084916866295420245805270903800465547728179585748649471009981063270123320100245196088125455507782780024542752559262671844772711529950539471583936805482722747699027643464538253289314512078223787670878351919438733147860007627358164100722657077324145021288963069282677736695937714597440987068606429732614240465597056083318762832585646583513699626291477534659182027602967679659796801303719680235015199384375535719842937241407060009000580291530715103949695391302704537454406623953158804014478678387402421107560783425698092657545199295019267311506523064604639620536041568666878252930669531611885708824229495273334167509085244586944940381284303885058716877769889422197424125345414079725403286597291716559510384566193313831499850097912666013530427241267855425445056816158276046514464694917960502687697101177724342766813717076085315983163305659963307121179988306943831652783366895993484573308822458462483996732719148316393064260676119178911233421631442148317178216581898390720742878257213795332495682564587031282771554566634982803775188690343921870019869519907560999502984573953264034736008149407879098524420029247056938396367246260359209192019740379022314905785073325668446111535849006166630411897694920470856020902854710716193546045655408624037719216050680636583932332450561991729878195076321871799629249351722205064034913159669781007731930959325610021465232690194702777040190460728122284914440654580554612309979589682031278762916479585791305291318460952931660763709873568782718380435109264375006271615149736806078808564777108852226530361802307548399251748665364859602139051720824500957142738479887301619448308811015476677284668782608478870490360649375821730761551796256249906072475086150821609344540924692067736467724032592869558752015623088526828475228478160861988368548037208191089530772505891182203104029054051269072675407881860721217924458269912770845129274749225376669356604481568984742860091541175067407245941932528617775924264859800233117074926100834997416726959901267398350546562473072141227677690253651435632674139042018961384299974366368135094527293194596179941932732146812578638324187303024409935284312907179392378638645562680745186459033642338349267617994065418697247309360540240938231587194702041403017535805264588113480339213387972946534703719013520571383927080255715338675158189071322610835511244877908149303717538971921229816677681734398946314930088417559923702762011214896738346555372238486642425052184748584261267449851931696846476222138664953971853270570521976803807586136676692450547264423897606807134583387950110543723531025665068476596645222722725323017164214413989473814765081013432926362377009022599939199004637529004871913765830447672167633071456466456211328310172557435401203543628780069303569486842888850079398972936363697665163766424599482823288758384033329557940996182345706567015342164915424339719334803033905233628462004972457757188145935281364637083738217819604297882865133003355471638053111861692807274048583984330990418137254433916353072182011120764168214266842038012903931669640421988537180140457208730630145213561438260107305415583969751779161550796982469638546436081366862129113367974874349260781107498003969388940123126922772934137076022378166036320545696012667162101934101848849699691938395633193652275950517883197819532391946878539901503390783061634215997236369778130124436260486568859260854602877065598605951908894818361552929812501100420889509474503407063454466146917009526059025462849216443712679753338120158642345612227266398653376200349058291164854394519015990864478389817596473606976501907686145098178505142823346666355227945446207891494660122178167180661625727128959902740669588020487993243775759127625301453585139423679630034875322266598885385439486111045519726109194612025999323505784196715096399697114599910923584204122932222723080280586466878018252671515276058028396053940099421046700686950040576100261468701548365033760954978332166098950477356928716722716151622799441443414110486327165351399036511738371344262756194585932074639676748769920576949857492711164060963466337713687642725271782062577021391976422451242731440171425382317201566356498910845018010635929458233869323519081007994761975800414870014603060727483003670391441391163804291547070231720838267681652900098347196294342674097965877566136555228367298362532468546541463550132581840917920009742913912114811245098122163731212290823930903406444055640291642990477967039524936480728702237313988848150716052747429527597520466566019395437259690276292787001507223584785622062847214514379687265768649094617729661040796488375906736241978576316217894120775330081577907899370975379635026290557376542388793792795760532759349905763928404852534440951689486627281337204191555081502671117749372847871670291960446252453370442888017590883037279976627893560034114084124477990749584951325903189091820824584542716418022724761269922869632665341051353450880149060581357747018017335725115198970742399479781296271138183622916484825911314788985541400290720256366870028866966174153080239038935267887770512044900517166364617283545297295795323452262558475992482075246173170705127430890361126018648322407350079637741029025363030968259029139639733182614828344681956901404534850527966151308115115400947401597836315504790914714208608610321120587809400037579548369155932207470139740878399043313821655878815789024353322261606911154002490325257685620058241410646812742498004720439026309224644630734008046162493459474586046985810831969224895624220443371816505544773033081931108225183308805298770588169594880650420079789972484443133389694609459138417131215928882533712859121930175602286505460472220310494969697691863125115922272610270930536445371704914652460499778748270382705135161283097857485197508529235281804303737903098260627062327562199866158274850921847461255431455794405528214060629313128996872188796900947803689018269562894818522866708074063815473984119378874930817754601753598984913712985527515812606046579061646790576991694420773470712019097109770236462304060735156261306548147473156764831908338659854463447747561954178948051602816841616806882603901051788115012933330543716698523876682212187587222799845658108831614571076688962925590641515497700929990649421821833096686728664699091390056950984330102061298120994756987698636470547931085329274684992352228089600842162801577218094163685117712889126449359524462824731228719965813687329106297114167590933884381523675003998401380616774533530134092297689328615312034583124466932930578266005166266386705149703493702331427218437032247112159360083736278464799183534850987800169349898827294044460717707778041959155603669488869196886624551003003822139025687846461992273491155798292412520267072930999945236496892720650734471581968534606750635564634368525822067394007013875069661542960109641883157884464514390135438713035709953997508124645579603037412299414422623310477675571525809120460353146273275354364772178986581725305517140175403429048818850116954965766301829783805465911089299621894429610539331433047262288583482817321698356836551988263119678901184539586509030268010660986314034365348638192394913647649769507624534602453184928572980749863717976368163238389644861914445396242297420188663590153675378866812482664751920551528459076926015324229192458729394634738786410682369445111073963398153325221252688320886370294522987829096449238072605449016382996034922177658686096901155504164417482814482552933526065319836915641240681794653667949367433787082473680397775876888743796041746066634323301260676894315158890375657525094286243433134060818069794553480649869203732410539256903110758729468372228962407452534723368985123569284301190724519129385416532742705578537838539326157471504097745847094121042188366784325112506287390501892899104340872416545717971140727759490646832268645585653405094020336803936919051832335476180268966697990600425919498300457856768599044473570615791696499314988939889117374005076547653948149958967556323872804221433120688077643763242532056086215458446814317814758006526894141951423253385306971641642882823538391143535396482635529938417289500612336032686042562231669786746246856764952959900860672724969464088138410406440685248591869435497112082675388639193915251488147097970200060977309675685645050657363574342182434709837075534257260929226763765798727934324908312560061025763638970349165106623588743341359147709484343811649490142775425187432821695459897782730200303453619728844488317261790641456524962572544117114255919324748505846971892485775585750051328887565491874969404091054046802179976120606831019513863451060628590058706734553251402633002612354407338324836844007476219930993604456242206898507307953176205092621009490540950057719926165555971228779996749280778876445139828302592903293629873491405732990273723906967357816340148054911029018167582548143750367764007122923521525912428655511284934684231303878474377128746198838189363271052764026717070165666876466051674217612938167448751738483347956625010253071475875549605969796994574878617989675843997250674442266915878021990546396532859197669030616629292791186594832455842385715467684005047732906798504606849215487728920866827523118608855644377626173278767840115888040517944357355412895631008872624525888406937086047586507462890718321633761817713261824053681052284107564871552357746235132662304276108675629043124203141969655270974319117770327568712905042727614391376908341197854476081003248529288552813596792745836822596453831620059027973073641382760703621841666739085052332309383400819867429467794533674507050296217788609018752182310273466559464921471117372099855375607236278793116539725547564717896944403933239096100825629090319371130659368574890776056863377064473170228149628083520417848852258493449839083948109512872838190126433073844485904587400048952516588446163026962588669809551442075323174138615013546368566198254572677821004320657637045361385567828080178403279636370983905939033416749287664234168611052042587211713350057793561707330772960565930778980581228943604911962700248072005817431087900565019241692975405984743200255834699886029713907270410273707046119252688021636453062429633048019728596504185744298584300784476552243381821500417327304387180925049936669741963076059206716786600012170993918949855448980429038043622462349701897398268881983784018454298734994779800923600168890331952523220613706591038681411701807620350825129981732607816795104853797854054156094426451367804244813272754673101066419902141003992503197247084109241034761555595994127724057554078346753361857087731431585930458078662374020916586464570851920462504493349671404046066384039595809005384275532979019914455809461638820527131859680632054372056816170962114127272860633748821761918904155604114885989590385916656555580048710591472710000696493001917004962705126150487912345311673036472646539969905767767656624749988111408659955401023246635213320292191839702546478391924162803483173583053887502501233082348131903576601879650278887952727301239282505924010671006875126723902987471326175834783023423465464113437180670701502000817748542438419536449499086087062168652056500569212212689232100022302848222132268745425689073417937808572336267725777355187405336588127275449404993604245359095398240831349896672589165453569610996207900873437374214936972365463229343506836002119195642416263213096626768956745106902831930526081270590090816857107377678128900443400033638729030711054558558564077892559187683658957169285291384225822888827503498256724529364686596203877144431114277525331999260608475019914551857189900006459277750657971152835290390953431155470238456307401362131131851630729765875282775767586898927243755637518006514538827403416302489750475009812425442167220134906772542351309102524390827619847209485981640982468020841497096600519151095118480261419403416775407995544853894840071802245757702100396338804227026594973262461616346477337153697015141189736392103322749988831723762428432566117497307201984272870318962967823340001121649193132800753148641062772163933376660204935021245660157351659533948804995639913796139572461398998604910478649834098719079155113719334229831911680898034273161832641398780883791842334680600048116940900580802609299856625098107036120310029765127645941132995798580999521805764482983619089696334411659568987941722385965492482167562320881349956740154012080834330989391251264426095884022218605112845656879129961435362291446417703247040647475747532869658348684658495744878181354120339920301811589178929867259782390583484554661878988466435814765211774154545451664446451416811620209126560079156013974463754035093411266782477312776696708648403977340454650660732102416275896836017177596456987953001370946224981852729180045685586428067293740939935408305247158053381569629787952920519095678593099431284741048565376057251475474145697335664505447842362134176242665636771035328785651050290901974990477272960771585425339932211302581274985806122183032729077426271458609754188048938378330657273907047439201998995276424330339694528319379108474651023303847378105537765062858842029496024362082815576891287502405572439307431903625702724333877800435832471582980708840112771313092220541460864236565787519902408044715851773298023165807343141067128752120609935063737788428536364333396751479248272277120309728104025981182342200961313859843157248187404547466906002117373433498089165593512344826564480153517333457157789627476630003726575077678174419947102009688641830148145449395135051023917480051067413495267843844923193986338111611487332131018727269888443044017850313141003090928665830485967357978517436904438273510623187591366574366541772945443977260919901398581184244389176327564235940023190989401065899170378434960825491428897388432657927618523713601058762527800783837664182706287446779339814511718704161224436499727853053145087516238951362178850701936455560673195083761527467242678912137013355625481978805288498456234688551332550956654860286514633952745177669010804153031849925481205626847988277841528532824937747417030979861291784779205955317483582688437992529606090427216705422461203534084475992082598420591901779552290940504169220399518544718784876572360763291866626470578012826722526409534100407791490584966403404900078825551081299565700536230405670100413522230694997153950952928938108293754501744265687615048107723295261048449895423670934625798464452481711414748878346790415139258274144375429545646944276856986624901693415631382881658336823565277649830387027354811426858002974143693039655827860082513701729388066331449059288026679081687809710491755165873716557334467674354101958845889970649031450789083322261402858225911693397529278696813660180738089583928854173125326371366854117009868969209352573963924013454575477250690015059924787638523596898115349986024322807470488248868764339715763949467375603762762422289930536763237943666723760718481099192119078343537981208049002774889154345260541977475497373693185189767575690355201907030725916675269848320435636204416566937258778363391525222714607702958444411150108519567495018756003018203863955023091682731864737622775320026858511647433382135819503739696476309732962997214237249462528260813332489307566799806081040362690691164458136544949304403196978869655197125938394395762055082453550595547873193579038409142147964293942919310289282731572883646008503000694925892060574845157545952302728951591743124585487703095057403246901121262365060625541173075157613975767193910977976016136038783295911187875808916930277984574094871951423971929668502236259314348516441700407157144215945597299644335252335795220256660393007265517643957026475462792554089859906399924434340956539474633721964393162864388609906136915448323324121043592248344084034242549270650646246557189891500022871139391388727732822442297872447656396318801481043831768881617289160088304830800304597216699250936445054157893193133926936136689389111782006980082309085404405072397648772882474630805853215679522079727447883076410310102111629727878421794738940961003462230028791952819050036494555559672886605995094561121864489572438327534422006365662539933762258812622744514860536924857030086058136389422530364127950861738228391018443018119545277335147178188059625272025651049376705070034762114367769536345284699281468826159886185819379588458318592377171034393616428478022535673316585784024182661034396745593113733931907262227625095508307897282847291157545995424766518833397152925903148475909672174375986404508086424549263022132072703929610335615627739046532905573911742084043310317911211021191853918932829845614621642476803052810329397928322011035097799962723546145684860581531759229849299316903564361636207937838572784733980521766909018705480038194556435769252627836483728994089416001525991534206775002804629643085844934026938036668859818638059147308368972237246538919156605009664392945329377996911250973525868237078327099332356018483032654593116002104875252065289707037914387285277961881794391711084547821750714229522282551016771608369271464600398277307752603791602213412259784403083324405305581028844599672370547688341194033584302905877058260291207085360907243731067731089218712066577217874239392260011925195707484218827715761256741366361340228146816612960854184561729031390017726036546582270266555873376721810751728782258504506491006372162560713655119888656330177802540970648502595550216258639056348953491453684042150842005615101318450593841479852926120333290972394639008878650684490250236338070948038232646496254733173140918865954590177451465412282494664925591876094349365446891260098867397614403380519851050216053593410341209961682876587255827580344304558121920426060879288277997427379860851736975638501572863268441561655133039984831864730350461318046827361380312310784753921431589069478072953887022816864567685400758725630664066498647021860218300079938387174530138235198131946273803333309047457327997966652471284383940417483790607336855914141551153122584962607594503021974440784284698214698317043696912332747901860209088537959377127586360858563136617947828915619387439895285620787447527188817949616497829995029785043188431040369594923190748468552301373148724964374549866139704589155545125355020570293186786969848757441247897661384289653512509351636956585332636252946512224074273762406944663622221220736745858132166197363990867991598052832835604178004885150953966194386979399371776096172313168483083803602749207291387278740130614017791742504650481415185108621705916608609464174523061383628460293299233451271842528709364324852602467619998555075325150212093572771063371262748633768100407039709236082188886929287284922262314270575025494393447929295721629289063711063963819179280644121886270526232644664288076068827994131509047837756048545511590987427118481157597810644004257514554279834781179823455798598373608659207759617353649475885697925556458194171902289913675309524282295888578140818424173057180650401834051990784173968424986817631647525262164091347794644732744120999067414568725410938507384206907475931157634273344455381326947341783651288882076817903588386998692393896722878438585261002071098852168939593920115967082263781778028977110619646048020924175099102290247533235662868226557568771442762443625805758654841476399250931985508992401558348580342050790095451793253538299162831922012263899965047290749957404051305463813775266538403737253004268157715615172387176299987707555686361905707823325523760745364989212106710903996042041032167749193670293223078687622710254736940623770889108575766334018312772745309711636540438144757643065013549162251880148691236952173050078505063116775180652109019788192677454255360529338436899779414654618424511840954014314303973837393210442209151788920339813544914603486230239284318685308794682429095526398311902293796667754224103540469836372050845102660426581205469527957642993073099629816888876913521337594745550302202153114139284029623137202119833409005056912110419260287222930559095484665046552655734004067053410500835152107061454143132054495991618033266380368000845976494022402780747612064939590884688218866026196690947659533119571829039858332313771749428878755746104188859972130450905242247239377646719555285084914678506893546513466747377310233709429246526762772984268764835905907574959228578144472800399736324836691770541345471660545744625582998940836205214720038435472630080540185851732923077792489924350367250823605873144178464250837316485386335323924634123105627679952401912352698585285574375883894542899128040076652317702549917393965482395021847411143017028092548421597804436897128352046760434335716877712444642222566165144953205087200556484761801580693487130430528277716389016480203071360737837791225440559158544869021351061244588400523079457769864074006908778331498039599754786734711599787641067718739440646289876227125845995919021961054384854017485591729510824857385173509342965733989755695421657963288827660831182469455786360033117433029128807581126318329446464987110401965470149241579139998049712859910088665715932443070034026998256830902450244605453951418146234903818582688497115957397431701731810125664194389922642386510688094641010867036544787620733247832001907693924586840476847820648666527734157867864210995699049481657651193005477151771552646863212437537685281993373828024093249954325483752308201336129270536678840284612112004095841653521028213236156064016932326940518596711325216855225662362479469850137235471306963954782233432946664154533415690220025551977800526778899173642300114382658638319270284173536453900389986288440355980028992231779228179258622844037502473645503982407939445145376974079492848369974017097979141808907130725961173527120382186264615043664378890176123509213273966760442019678255344483658388860352635282060632239211032519097603599031889526589872145337612383204458775382824655619589669689157406420630350397759143566518522018213219288630620237086634239926991024461825959419937178692619882079320554863292370380029042528944745304494867656688788203554103743197106349992915137127600938149865202474694641393721604153267757247924350490296430218886762537937759348943681581892787679528241052212679201576783149116853687244059829851225231141341750292753542099594152180568840091923669659360777481414250903069158672398919007902014553622233821994877339799357645654614792111668766215106560777232092076654104481823507471612061733506989519566912350274319444593238610059830249540146875483365506222119018831676515327741135632703479161964978067330526307307762087754969267098346751097649550392348866545015958112449433027850451806836724052379273333623102628605882651038067026367205631283418447917474445148706167928996689166121787786112368270280975654752615363254774608586159002712115475757933217649209075045908578571754352521846924717151487373723554042079130453948549951661367426490546431837059514260928228984895177151359715733785966888497464022944627016740400448544383358749974424218547178910434638992470691551527205052713468480012216944589338452306679994935488754275851343917603192969470963845396979520701208047905357894351751437946810420203309747708187870605030439680921074451170946472070504832093228410503026302155139750407094029226943858449372989360139635311898032707208975538696456128888549758169379757915152180034167174737910424033848406101047954141372260709088386332939332493801766740689533336088261190568169108500700863952587083057839629758794364101579213308792656440625317011940666466636085205998261714967337356910517983071902346833406916431176238398581745010280423023124346685301965570472884556571828616927915903927434060226509990303647437379767507371878535933860899326545375046821407364835805459002620137684833102097615388058779677131476556471983734398136482944442557092528152499971544341740775247663361945924731894369097852802512698116871621372942795854051717203493709130785433912939549843487528704539458013396761155934709744703651078988523554428781183006058604192518687318256682433295310825905346272017341606589970842261061506722448089470117106512322073756199413146737376944935536574300111069030851462901578232498913684276758564520158383039719300376594860187852040513481496956072319491256840419825470634199947770980694346448661781746928840428088603790765765062217131002392709025764652371009859848719844824431645716393449601742602887300892245150523384030781878006646621057198548108478191657684580191322097400948752835592247907374474433167179739073835911126546963308475373878843372635894122982456094159002774804365607483732210042312235501399237479823127969369453231096585796624011091845963289277480785263759595527456957308983884477313184884400038915516260620596156547161168917398892522988446441702140395229795416269113175379963719341550781161313679223686919803429874909033650635063818794201308471728002192563950996502173760019965364185638239538174678252349912601088985853536145284425341657266392261524415333585557143273678077952584811490287813357614070694494345198057880053007689769498183888925710199522383942044967931479201820578678411172191733073097275866138844741502412947603782125483305675984810668704041634844369815985368203764736121219524320733717756376127287546707977080624640174786015746361407510046468698524196909264521790952366476252459850604062955289432366064282944881688851018995053230713233254459628484203661351247256163370641849669458369672512791271118577048065867886271594309170566659942156319461960567763756953613495364295548063974518653210970387641435300361916109951708548634368456181371745451105446512754672330483610567426197656154473836795703603950502755943114103056340075335290802222289355717397941207914226132775163687424699439537867939967442218939909478063638841593555000709292283044693358068001005686168627427487117824388515809885389370731920397203894518584564185962096583637271375863120161338407557031671864663968544231372060624055369160981275055428414617920262253731963734683953833299588891344708392923232528064023496043669438494692056543828108678880134235025823475330480070551971864727776600719937175077514502650704572235670576802836560650865968376920022091421698962686572174374164897615437180454747550830968044075265493760854367811392445983854962541616415191887112743126773484897568070423689380619096290062920914217132394105467857322267644555079017266204210243113686018852179344545774142260009281375037924289913282881479819819729095765151631614400357871561874747703064766685041722439954420222143810378816655633449518379655750996585423883355720500414147788193864883802003042998323872297302729750357885460149968114282984921512330148336807840723683978451517553476268171153779662588966203390802902611733984960586921555023839831239625534704775210226569945897346942080388583978587239843072087566009095211055276106898601767891694674457405644043308242103441323314048898658288082192602396053806211216781591753951296251512518816600916759124592528299988933481228756056507318898396950861173096462314762745173066431431544426712276163530735925747700662506084254665072266069261003077500556688336373507639800309744272046728811735524811137398742679880044992102302104551075614891709533465050438076890985697174859853758128692932266138296900466333404151753777394229007822938747310731320389910688274723268602658784249786009029925614391274705785681518551579440830523329359907172520242123724077943031497725001518860352132385128583606693142276159010481163087736376444100072027115971927650923918657197137588885073911770555133641527462576340874580237522287664080663425132949412170966400775612721110815618897318649474329004844150917533698635845218697075587459322578085072301137751659397790028413247081273593000353621337982351458091900475065839600309446912858201680854176326125204454908094318791184813953174889510527830813620411334583843005312962218469954984908284385941859520944600234566810713473586798595484045024944992469097086343244475292397594052298859877621015435704726311669628165047824508588565431173567356922956070788506838629516998494981288049113003665561207313094177107037398757613943355121566320066104616290186482961329055586207071525870621756370514143468538535430744858037180727401954587554043569136477649628145160081003624763965567029881114419935936112010495110427897798952146546373618854434673513880084550625057997552401761367604799281983266668403540051149897724102890899250865529151310648826685668231347188896635777802943173802020771076165207614418154543530631546708886735244384502493260275056851406083318370189228515877843494818272503699208567240280210823112964965706656471690204491807827877855314734970715020811032384647476752144979688207181257924567341723934241163505202729470552618961786460756126239355080390442029102517075075164082975049464015668168018585228488831726718530502916572133322805803355420722730000016793378054079013497912484498626465511041374850181104219913242693392336443618987422182815542453194799001683288424156399748426868766529412015690216368463415754992982031609359085172751067555144447531949927508969678557234394179082408106501497913953280494626782689985386636180303589189265522001234594223918910720271543143223426743456941818792401642799983627635537424978071379311820812043308040539097368570968500673146169225862454388250767152162644577210112747159866950027362517789246330505868116212837157532625830688653654760739345004416910790380197802511752463542806351325943830051366045056464731514786846720662707164707884807991630736960700333471685934729699296253401136234175574155212940723615676587059684334229597646989091185924074424404962965314313796979762251299800184940987412508795041384642938035572653699345496765164947066269903032508804162831732320502815003409637652952469429784032064864275511476642363021138605690722392202891523143781506062153134132492303981289808767399624660793644577191030734229492938874991476279351269773861037259630943894655179181092322046878199589642572721990981235825661433736010919471870945778801910267005599924487406657887322943413344434398911183756115686610654299233234663954566241199396492884684906199496120937364243449562166793532190237994835104516987906833261775658427054126238302142562447903716891560475588850886415233044217318582452273542570770436134124621707236777617943561703837502270552325750428759166416831234875443101887567493717225811814268497465320824657630590667040726561374096894153633132781053227736119767107651038828286680494572718717285413805004968371448042018343945375023211984126782089887438642612114526131151084956148068793192407642001940502933365316532455037160746891522481596016112619432751563230038385814131700342319519244754119677060056329934165380588485256712787767320072063826726852389200626200886918955470766479936435644148062230908722656924793410818700667803681011644560468216489310807482352900751473041405543485162377293654688214919946537734407062229066399785603868361131504673244493313215670368103253769840532344072923304941765875035185374133520207366482537336662616236184819793454174035487866488470881636650349404293696650098077622869511438839412910154106464354583333806753436640594815391549359461337675802305629488005753325243272556884109549794362007511978308691237699532856082916083763725300715315607695529839951768339378739447408682358998097693594841812591568062895559028180776028313058175020552462348945902326492131612068909621315528983819250996700405948341771363485569442372797390402172899952190570114856972213950469619196507653280036835692309079166821372111679147615166702211687793524630091025864905542051487588007249480907772036095306439588608348719097603568118578922412750789958643792358978330310864712695678405378326617856855336034098018929797644613412998533734195314796104893761556329856113635981764948940536474989307152586696620086004395310127651416818016246271428369685395605314082372787220761027025674061557698667157317234743851165068125283598962762506959193826721777125036377052027975635663654259046051049810704148232442075228065224725085862978869522386632193248063376618049658370249061062304623556826857987439505783511281273838944240758875375736075735524846554499016498014945970631596442655420112540051118329007839239978747268760354629655792190130992104071347520734929801832452510254590047532445649563194790381292900271089445374799213022698073840837509880625244149105854081538299491575840316572007371483719033789896039207135667792783430335445371078939558675253550239660112281736507255188387522051894639232318377596894579215879563738658561335806272546865891906215364822635158467816435676277710420872263630667869546240081597260001496724702440144331675711335252552988342066716286553616904353314222845829024830078737714190985854502453198146665642178015407848218374952761919940159208382430681473938108981830383126615186554890944244777580224326778547230377868851887033417510169386292049542874246043850169894757493982959110900010884852101302991115831353182531134505298274073110873367270485920294260879502574912806614031547765392890101816081012007644539173976164916553734997541958140431959092661798337450883673171526049576213763517021804000417640834022936826901505292630864919584304755719984728734101536067043548091765399557568980408123550877525766459657701913806479213294523962215237419042239149295067091771960622861395648730295425847731799816810256104696410275251787715893847350978920591055287096833885785880799392558816650692643899174696635718518955782116220210689349588869978817333332580889566516286185976036089447400385385859605313919901901314151737742995447604683711632112072544476205119915875428961960406400191293845681649301476125604048994849940248436549105082247455634207457699220770712509409640874658490981128481090101469070241260279097620012941881552605554693722270382420119553386300399207723950857337550901487239741095338464581840030360550786307425077955659024648207117103072791867762849099088336796648459446673704387088722166321002493164208473589032988063129188727040917799723054103137186730639750093694991736455438104121783737169507448318275377509331555233879013662017241830374702537812230028498245101822458136494578713628089844783840544410473838360743723047432074668895500059717605666766704626252010935342145303195982872150184549037877157044746074771209403103108862127746810699642616097870650232647049609179657623979097949206258417047270556163509036407195130619231035521342726553818093048600231598610496072531914322339246436494601768336411260301309585494510912140791919237866296531154799024985681979998138092471607422548909466597949689211052020451205680693821204754342204370877151265855182180420013376804125601492696838902983279918626876341024794299004300210578652857447269641058252326774559215626567613491645957450151960757005694461737841007282921832107943743854101229027876724208113114906984371829079439157925208299243989090241405518956786084476930612530240552040569054782480776241260853674723520422107728370759698037060895110635739501661370295970356765651267386359080692021103644982746817348899997488979705290569548112864777139202095352867518985887878381869713707948558210546430946023160814941825845696412843856756863604486279450267833727616788741667687199120546374030159393720871771561655618546562532043086597060175827827535660735234996644441603441723793012363318094749914872833288028850148276663561688785044355259726647892629063790188609602884271401906634925003134393322959800946494110403689677952905266309754744271140546729806090755055279820417181485850819157381942803820834652238467879072259009284039028255942267880855654625088344680544582990963498636303625453663534123388883819958499099391145952083604156840886637480171854822630851182806144218727477293732640367273978177685273760288496786792628939880146745378873532264671690800330165258705528100363020921064603599676185899414428058913608345494519632840298436286322612665300216705493454775042969853602822187237319258750955071068465555371606429117420716903416988003715569676876705207002515581628630148957746077635834736313690090149978845297044693421099367828791766358955723489101300885967413280972045032383595722664578372556746411708888387421043980748801526295715633708820155982929587340130937402310384338738674380154566884991029176493027780866284810074739310527448855906651303215141877189595349707632717335996795878043184852535640621955566689665108487070423842579350992337245648329113888689497146751803566231185894606385359125370227695366220409399077067481972165471798137719478310515719259407598047104905941470629425848914115509076241673188048359353997205349682518745277154806772179380583447088430786274133372572956984322578449653195383205974898231369326789073401839247775125507095909029544148058835786012210807227033909443590500250192428352967807913919831890860745222181109764830207875404045580511871955573512034616715670352802097992617636949455808125006488368512805882743376295303236197302728487703563893966374506756209428502912205433577195901857750241614745382819967946077621891112496764638408791778998118562000343305592478230678665112395590503155513863171549359650738847830254056307545128109231671235147859339376405041474686367801094296607901910324380063506400562493816824703355210983459277347438991418035482882115107456194029123853496844246879937279177254727515127673434535593014232864406488358135944287152427690179398325249528098348254079658862562549246954052151395051452218365866730073825665760503640510533905492987933456279552074987627980776449955250340048062661997345681706177228912457022914331398357116916059958078371333838462168545601656467493036248106028166127086651285745412118168049300229580043809786025189146074535021439642930433247622490308040817366557749824475866176962982395963383573602095568722476735570315437321185864424624448640718952556167739921877439545750840486830583524173814280601142481319282621786065162245951500249551499316216107826241015882654132023362554901613733572075107779991772372051573083549978620268951384198721494056939636577451872894348973505628559519157675651795968021727783675615779084845894073040299492632037936190565808989555129229762051492626709501606340397882047025582883097558993909136912129331705259103654475329952308695209388267206940887351084580663407349395909559963872377012624750201136654793341331799551273329674912548233723432904818948066841481981965255111550116138570054946863870598954736314612708274319409319224361939424847694066543143424762912810211746233721929633857606913481562370748105425392759373399543636221960953237890862173248349082775052942919847970532743485464737620738564978575734717807967968599077761192218173883644217658728212669275022439968989759657863502647775462287209838092771496487458036941687707509288862323806973350034500050414140606821544392325816086878777158057647072391541586375025183685061948992804172785216325216359079389442858755286860269547164446665938410225427595470223558126466168554361753844561804483087903415515763910419415602971350392541776036747976614746781611753341031902677235964579280046351446717733513138033473582805126014339645913021280225058551216950244352983117370410332829480065627907668882308258056539450573742101638620131540036766249338181456621630186307294116903534737846152587360051478268770742511135150043698279085441321239032577851612420549020708685544834011174799661024060938391847167415779394095085875150985218359371480224418323002649794322528924106750618866587089372878193404302273108861543027429192703474369348354220836801904796525401991111845159549594701343921055105533623680489380192062725984402288335112059177472137277321375812109870718868549915189441822569136172619818813497051201292163672514051978296453413932299051106718116496552102811966141759191694479567566543869736414837620217282943508976724285632409473770737086758933993560418498355741707789775741588034909221622455053316632666674888913571396282406425428851380414751457510753155461867496388917468865193208816777677392389225256374406916732336802123297474189416787457149300449862906065628834078766846934308813878312659406434484396838441064696948984493265947165808854546129002341582865632573616485273487279047249926889415242968612713983779079054098764056644385842081434075173350438424382092841089135840905135132095955519473749498261430714048987237002171030779808474810780111264828041822899527669034718856248179775484214637276874323697778954026530936871341283271946842484148745113086098200170922779896355671743812237545697763929964104321948788950861726206936500112151934219269009537087893676298991556315943408953261568620861817310707799055273818315638114400352654040247047774357451997788697253413972662890848140672641686106582333542502010114779217095336723136707135128026141711229375224302262067096119952750297625649534955480559667295352578622746764998110038595986067487265792454066507612417846282334594516106053369797883406713245583824776587538127256627559828997418807723007020361031839489884414198282226815689730122100571178327939742567476636108524962121377707556254833619842751292588095611927666701940305488233314307909680827394125778298317941257445496880827299254593872437131327189543772230773934917195607235696090490732898375015566446317941983759464763880306969960652624968412638677407261846881168344868791577769952543951322879968743143043712411620840000376623837897308470107602396202854005797270958457528735646530945385256022973077819911769734258016746504896596148061761355557069711941401466168622444103997070800205265785017108873708739653570692831690326957855120157470412039489810028377625229537473667780180466336029832179243019602057883454040780037131622776935934418942519859862883317992429284507597084863069597190611318696850464495913340372753255123449918582236081564319084124843582671020344564641670047453895097900820092365978254698981146789897657739101762410320042393488640789294082159722125286751248931253615024575501435254508961067059833163867643956974811269767474557072387876277101914113676718218663591991519284104129024607102666870723812866915859618758157535317601689815701647952836352444607813416153098673886815870562563574551460994751529060989138463357168883969132704859178178991497766673170150440672660228222175536803260714203594504880231309065969882862640078441100849619838623161110677656226159528558992252339491116400200386971278338666758213233016263987900511056699571525514034418179006036859489168193266968184273468014527002135548094649468669492154575177309704661787332701801527174907666532066864389090236455886218431107628545129955625589288748273848402841565141461921234980879959559763608399198092137262263762514934185627959538112555422621344640486276435628216098697231883415545595825062451046091487388143000902706524675289770984767570424350590808561928314016070125865898049940008600551259792149106309654932753692324547270490748163359271889791128948719657740665347017172984121929854182029411864481478489506929662943911492541403104161297207660467404468427839478045210881027989017882642255747765187473167140208312580817582716243848221668672328030850628913298323538666754390462507050541158688675730656994834036046432442282553576448797742711814886608223698426760511715130087901085922048995386622180634985885024479049594945355187952028557013683325388284808546326226495471327761550478409837810340259087930588650302153780672535987358440981642037889020031174550692984314164330436603856180720965096613076757913997674213177240145026531914247323024270195270768244475542337311207546638423748636288296330212942265743735262311012565709856845440670603633410990724466056203591856095056633748793717103007775214280430840063940926127826890558988373001234446491099878897891361482778171787315813823262021005096194748236355595241082392604663511178402729668305282433472749415485189810718999108665306157630962555252741187509037657994432240535404928092839150219612637065729996027308161040172643771207247269259391864087668158216837006700066988894849117241118306998063332548818673692440097076551282715287758455663220580935671933373823163450202119753324050907856286959110491512086527125792006864780427824901836808890468034117283021955152003877367801933264034067410259703095770342339336493952689823992309167864745709679117477509885434848475281448441724404133592654891292773632611487383308813346638780590286405158562682309344147753964100967531577079825224572014542920884556840782509265956881294910816908922645474901386025477196601238470969065605203168203095898158188426820917770433488894460622684356541191951563098982273915079149609351987417561805516156546757309041247667641929027469929460824370373714287173883879545956021741543613035837302169649372804931218663094396883094077546894396065696422067218077163242662567895888512530799175168219310370089873260464275187071240792068729304751058107981858343822962760939009331821862653601468177681724267935384071726830981422664559241744021656375923048518730207498429164977274425134199320620249594596251179608589778345653897163703962529743739710807515759085165894186287356899566264475777984066551147112327631521040625497449083195952086559227384712159283116110249010933318166872953536250376107334767552491246631989136073002516969012084874394397663440230375255497955660851334714222555687334542717199447785601534346230804169770714966930536107861810787393191585527150296783358507013778823820077472628915297766537424221913158277336944834678716962717105166354337290831011957397653784554742889763729346730023318206113315837052153731893665617709263061642229050435173112730806470933154566724019539950697555238274314032107109945193556017933942445668848570739029908996175125407922444624416416016720879133680300381740639395521654722835621230375958201022332951192015440763411439507811833082592251369016515352677846773459832931798764958771178010300521712476504222897023819035347567058165362977707483016106622096938800588388698457886210499685934937414488079753321674301725967186825270419695397248678380933229125231592580260167201538941663920919384913948009035622529165449518972341332223207975017012709662001115102030561632426846410744232937818123874477210331644164095243327372261773253592641156165047834348167662799404693279555286254113743987752845996477682226714563021331814773251790290385253889063252191418820855732613547041099688233437364736067908731054363191999799817928352512644614278935366661738748263703677820278301537901559927042370393103031035471344979022286815145831129815205619248646795301351070917301354978801095287455098609034245899114878535814186062825671485820525255168020393516249178169574344293735962560344149736593688799571127515735216489218562688172375327659230484333175084702716536270687735817835763909411642159435171653024228882987794818212657435999617301306232066290396741641116466226670298786068850193675664238320190949894075541215981624691546626935132840318481554358891858631326128559578873339984107954325449051252723200871645033206188485917301550056997859798009303356996124006325757930069798378393895981072481319697521318608227298829002976286135967601083312988627519696430229621540030775518086626402034952337867871128818131758704519707898291644834087853146873057105735324546983802099611233009320096425212367214262424346475201494242930553269546739708110969908757890865554883354023617306318562834982435416563277701250015280565818822235152783323439055475700646415955398356144149563304586859445385923541798389050613723347235149345637278931501604982572138233643628411425887095823561903929516749034938526098588929548170236785135812079429143779281412159338702060317957125709863526165458265016522207449691195501570640972910504652537028534748443496344925059849854283633260549897088487294016944625527464888851761115197444207806271074007734595125280772371550852085883911992739885184867237886675582212238481528385448114277503630878030265861812717077485252062908777138683098117932960536452089054192738151886065896291147669884371089995631222474364903419233680176482944618738483681463821060821580945298622580029611186311849834971345712104370808396081255952736817412865607512698542332194023755859552901146093396370086397860423319859085983231211449383510388294202395020320550694523538150283926514299760017770415178571167671228153948287876572174227832413385559917349338005183513865675236479287871498998658833990754897401984246893140900622739905154740937260975127406311935682575752323071205693641358263711383343101309923559518283834987169010035388028885357981492934576149620246701551092566504252458115537131821026766729432566166225811863099019006730601363665163480372270479296191569800106805639812280500584738187554496530512923471131170060500858283895240562994010412608586143256728054148291739386561059410541641063996951998869457607096837539562669500676902745703395547677519077009966266590300377508332597783712923734990425225812143532203019547744923751490245696713477296662808593375624605509589046879343624436537209656676099588001131925657231764276787098225459181000888689843926376819067417165311380948642537693761980767414013447239091708682456567428955240730634896272661968267754069911516679203676014194346047516641550642750439511774389240287682068166828827781746556607920618894572836024930109031169155061427823752222168941081491067552038877767389003340586023754516264246078720638340403376320862716233206561025506024602732108872118634383801160900938879373204006850517202981968288235596390992288397078234421521844448716648993346960649028588548438048545450078767406161541902781495874437384591548322502175415329978810357109454449788615427858876120829690150567229921083631190190576024888361772058928570707104994229789360144962401913890858968350603660540830547296898922731262238550245987836607194720868531392687254995502136364294396014076034220554395769546583146891503422717830548496658112565668363193711611562917661938465786018747374565220863802828729920259385207929051156314572471420437800733086280598758336374112663010929373860745879687552029773361833211739895303610329344084769131682775793774805878579711744688954256027235642915311184478616769950660906151583790099901223128123685886553457709489982063102314223397824875848467452578368219356492647330039128667559200994169536073625793617752867184528236245955865394679769068240450299005606064538364630946349114036679909901795383978611708400383741106482608573190888174540208831840517868085003034361090545581556832636390691282357752948157310468163767899761917239462429805947044935553813363112444240128160024430938355811321385387843123104507078600410571210329783045023225256687878401890561228577094122097229034768402960102816934418115692046463674919360757093018992409287540599480174213617006933613887279856463177133804318020673274314536484936676681756463031324147063662325259997897697267360244521822863455501112083508092139444479909842698834911926894440688626618776113609443081286965030031856352201555425555177986324289167882674918667701145036543119135733012286005075146392205900445493710997344946645363794439159787511850486974466287127132686628558754760389076650777028373379663564037867156980208509041245925690963828505320139875626240596440240747035610279653385460992075398830492105214844226588946064070440184110732969832162210378654876484232915759795131312709102212460108639211795976019175951258683694240028018203077301305573749559239475109103857240837148818461592598701330351301021128076882515173493180789381061241265824408011572294688913536543855610069285824814600976392050939111081993994621550314904200494201053955232763703788332279963352914102041987443163093755331141651784157615125242364272912474648031476639817164083198240393527585266255906974761120229630799450382429313277762819054220011263861079202306998452047329982942719490498818005659231865762487646344065045446426902069951148153977594654920643604549921399603770148765948969969814587155530493041603121652668718068676532129452162221715026211813563126665280833235267274654492909476794450820312648692112052490935220373049692412644389263654476036563458376138768737232515764932838752025626280558120224298808819255325162522281571535080619548072176854945220553726300404749096831040167398923178969797800069841923775681735175540754601180707188272874018436402556135864924162355259810789577526942734240728137627570330463333047675589009657229289921320367121286364761736975837072344716525507906396006829896342784445933750956152102060901023070028154345710849903479005418467994786874028090439556867669169234518877071744168037076537681437092358537288132329753047865141704393666919390759411839188720787108532445983771469757281545472438396621261831938469872722628004618197798826430017094534285970858032576588202839811421807811377969207557549007455905357938279176253073398437339230187575330343364890703476572292213277492700008008320524060084864363473134867374767332844948347872566428148098311920005790176942180286430220348575789751880838703740503870941632426674191907210529515972849625663353799816151528791715950103765414128949705331175848431501998540865352314672361240393977284977598096778452935666346497994148874227265646253363448850241209723431809480315578875094894084310444479809476763344245631377772844284341962620067149770744712695173680477211258730234570591976040270026884136070352367081982728302768736316156448104639116744513063979464046626890124476452187714468173296248021214803745151184183299221277748667815388149517743116848126356857665448736531611842934670989254352535118420485866182660760751558054693722968563632917034057073352403911739098005265987871446139211196280850239549699202796208913568772428980147791998059127523867136811259483796556199834356141498941845128128265566231157331930387090339562797299164310335052521677264214617999775437467109868540920627310980037333039362284562115395226414938929603559950024717155858082311794452966071318356926744036758273780707967285660200737165947852669561483314295993420280278577015631255193108848921208094848420557710508822505529766993861501225239996514952871347506361716037294109330122345687544221531758317567290704156218197500884754461368643729056217216840652818170073117540134100928822762337828457242160173824236049579303401923668685662621893109152997752053824962692270741420982721547133538628738256924321600058815836772962095392691360370228785198651213835160732000812597738442609218141731727609317552567655882901189670770341096549444989323536667051239187854060765804594411280645301221728192948384743250234016138240809767339530534409048378404652779954003683035423106438693570770289855516738051072650152272085094778752199564769645118180479684952726394055862939209843132422757126961659009716812131806569713268448417707355004830406744768119666455328889538714998193457949819560863020948775651196519003695510262483558201014717508278219475677029505344451084446743990715402203701695746684876259833019292781146211660484170216315134337776138078525363329201448674677357064640864930543607907138866439857686902559331412864535303505532220773191353663756011550289014557400676747848779671015931406679563612867570459010738836862962214856533480147054933065929778166081075003962230487031573151351094290766619475236011863448206042304934196201773247022336671707039251786972004080994250479192911215422593466931757094913750207207713838738985836638713529366029827690635972236878152594718821476214216251386218534482679867499483616901130343316802657216892846232689527698229207827443200297568556669898766036427701164558814316302876452995430749034856702606496177700173817049412169979271250342859719027219972850424053412563837942939914505262571611840943743451334289066898982069720477667042198046629100271318292089569203962383442499048017375753200500579765777610198678646197040959601353466781279693381543375764612647079867779737618891892529192632037002374063651891462054705539503458133121672250927799816874844389827031288216029047349040090438842759394482500676309546340193500411954023262832552627733622769549264924588147408511289498689718625454403542729450344884980705288390396515771981486631739816519120666582710334870656243975190034667457295552810583015443326205798628874482866470657408046654419768982476023829844506657899532708094247421129114516901499983696119455544120928423526922198130977705662389312761847041474530890781116318126494181857418019906726001801578950556171488464364306463521609323710850812388742099146559633601866614642703654342008770195113396016776797053840720377743941527737766412733232957353980062759188165918872731381222128232320594498544728038952798168571681372535981774122218770147755118934734107157293988227830127115233669541442822059332519343114000769272486469944430569287497541392103205912167727536261054687064754541219400168472600209347656799542984437268415354078731277652329792563639458652133019580093907330473491869149026622187283525659534071225275479496761475639971148730066706229516975029848849514932101986376759947615830061590945339066200951512889232246126944013521520556366097814920759704658394996882098828354039730810812952071875068824958522032234255789428462944201152977348023908033975829631648958892442769636989645334277118023186919909697873960072935766570597257625624451944044961405591086783888317186678674171291378235339031326143721974096406774161721085915641657175767903126866826637751151991405738495631366851187518555143089392689047566972441039090223189834112735702225259928872440583109672899523679965563361225992073689177798028175305918133287807706373685623379963809299534745112846348787395816476544836661083355223641283131270833445527695693813518569072731572638018553262124298603679553478066051150852916554354486124553720779587474349330525652867195448655515227494908944362095824569192360462646249236043841885413806638750591113894455982493043936985956875653252448298517227362720480924410795617897169724191031277528018071970612356027638159709224484901249623100874514649729514480383324102689170623431294372893150497700941172767326891100157394924593315499148859448821806270122558457842193686417858148330303238369670276244408558306342705831008117017733229863669890036325130064829236863697008560095449892735783671433407082891314664020143315816730709126972924492586362308916169250425507326377618016339626176171017066297890092386139617542321251750179642205713883637325592370355327480586674547368201127481317342476747727108283808358010423817082671687772168884837283655239109186355087568068178286598371601608377929621480662319067930696943422255772193362562808438682848567784103739040700735563179532477024242160689439324254354071827100961142521499551283157149854127326916032691425792095131777757415107303665078188130322408474458849626270671380062468081449687881568845399518881929478869827028550679735868741180140805305088568355613694917602289888966731405700451846312926188382769443915078877029355275469840495773486186895813566225547430310868212874701785865028143860746063858776535041093248979640488541987626627373600824781302069721847986592401889387303271828971766894068222068812495456717251664773525624297505709110194903808190766304063702937430517593524207139419773317961669638818988668221598348959953722686976899888176194898674811831907748613227489925553450777682286326674188778455745202631714328420653062281886817775139971359668813902288313822630979665834583507012020670810635175979727606710565544356500285859182477957577461699984757834875732909651561606755795592304212317034183969348847391152680422148293475167399472655867501728581678156051077793000214380484976890333585971145340589293321664227800659658374388353710420617721219268167162356985125341985833332927565708453560811704233194862847225493984002947954373433803665886721802260314750906906290442180826165529572056834736956729632098631090794484597232066256505197507399556238126383929871204774738905630064342316255025092446914110790911119197619040084873530323104583351218424393969651379684985879237011635784348781153194450157834441370304366108641909578121684171065995149474694332900295647036233191544366505567234409049655812257363411740713741763650361762558250099073123439483526099528830820550678021554999322342081139091416523233389625195938244552433180335711002662515845411036955683805990826028794652854165851910464637779614759066212933221173388073641089292770689953645415642445070363896335691223704060992874615946160279503728190815429163531115326657653145422776398188321189752498723444170817560371762238519297175415480494870805553728773349467465509601221212232884640498746232719006836655581993706979993421659282177095873074598315537304508714925584360689967536583778485334347222453430176868228533652800763972372508719347092336506775419897381650655001943172830961035521995267590890920260166081565556203863852711569895375811871502750551607389244556382885005060343208693110387906815929589212719176116749218752258076414850033022278342140939102391310898976377673861997417059331381652790601247908873913361659927818578210173025942040069642925232616730179377367398187534464328757092822789691698248541106570197036491853752958427838735611607983631316023785198225246822601946615649257953963386171858218239748104929737956971338079041845161507941282835505796589092316964544977178275544987527245865212117878063064567073561798167551781716432368644140718815196403275188336882743479215372562814467084029202188214447729095097712636794660118878539113563429088824940514139169320933784699899442550345289009194542015664984079800630368629110809488114694520251360684343489037175831751681291668955137046359771882559381893973469353720801361205251270472528980979911184028497655837633241445139012294552274496327214184025191609513525189316228770641347437407351402238799830082455831056026016495990522373905887790185146096528227432477768245047799186020733508652834132056561098306377196957880912869740187737061393860916896964912451608818356993008853173562323442779881517109652291491450695451892461144199020586011520356240861569596673768128778846270916584401554535962826470337337982948629522341860550636203843574188351010944546049905922499226116073716316753959049489654164070809186297928715436764386587873716042123338365790364029597939605841478352353330045057056408855735898566888074936872157365806068590550610675563274966494125473097735228055203061364592111591170140239088460679634868274706984360640558810759104801798758513273718534841617369216772450267767569398958059419721248463318800332163038048141364068509118381296054415247471458249894679322953563381840994034085077920969520908150170544142405536110555950951280897578661264868386777784097294483654374993289070651726737082721753714209214942220314059749192785982080218920123182764486894308399325316940757471333391732653521420503760986805591445082245190528957200770780641412934406998137489470805369014451164898892270092218015829437810347410427606756756348298597499393425629537829685169433707092296889514849645323738029966498836745829762134038288299610822785146120075454632264909353542892326126781267638732775078355455094283630878244462845541077546238742351360905264798229964008212654681681994885125479433591393374325769889217217866229622167502319257398087153504424494031706454418777333553837752191509443434766245358820493420835553125463395543922810526938013788761283246699678953811931710937667831247190775061286439986080797126155445652687616480367196004572957219899199507543791841165738974731273433959109920890381318660769392039680300025012667174893413136006040609074125974437410694147604040919559673617243695611640761305546912273377898304870368001299162160563143797941895173526071026120817180776158194340676444922948810513570019574551734142947748047659425007649324221550774711435600400754015939387806600993792683364046043607497470766251852807606041795779139601854572363981711787293079666494058716867179554233197408856953743548892157200381862521877345309658289524293936330598931500050767878474515274212880154547391688621915665455575994056821031061740402917281438523680897117798064217713076457290865756493458902656822818665739847010890283547327003385810084344871724980928357133154213005690040857828507708439612885634580876235401292457991555541118212942991343338271821024742400350456984245462909236860949669155581555765607688847964534056929461845727364947883029803493167921048361326484870660336073449260470144534909166452721476629460097383471735672312138914127938656214421383478191781668198630250486384272795765219442294772991063937131792147345627478929000975208997297799557674306374384214745457814220206599504488067587322383705863835612137777928605618010877098166472919420280779753596591887596443480906974026146865612762120508781393946282428420189971169824975399869487677799525727955833796660445066691560146332556807860028005820898335988384444097652724472780054392858277006097649123837034721439323812907768704081979706619882187326601739932291578215397879197101198978607882164092297354148013465092782617822886445615350355825773731713540146254571610051044527890784179613491071618752520406688407795986146459059281429532808004132252105411157460425107759089003159241787813169412825510631704491021590469319523001580568176163247744816760900670919943310979404026403780023978225246105006622592429350335178470199268237350807409585287350648873319585951656530377244232489041628306433706472015470110746243544636317321402584911927242486828582182518438925020785966668725628256894617653765575228610605551954328355287712074610518461471429913711100953636033464108150830647422452528131078814433296976360448026049803508567631629942832852925996992638837460670516637656548053303188323549766333186418693506184545413804750057963570817952496942893617281699003606956563521958619037372189964700753979590111534095359987226344621979950299592615222590967542999583009382933409446231500351850870402631907662067858423518834682590061130043850730642114725457870822352790191760237570073413863944384792742186530497801365981526434354348578374171465830685945544103302609331122132590869364835481657225951793214600897076143921367783596177420963199425171282467358263535929233402555430762614404499456891311676354032153259172846682304665632535466044931184765420916238133597557459453888216605816455382743806325311880309478785021282127581888334189439301378240320412936401337414378121848590586923598851913523048861802223402877840214346637012443938914944155807947185984788186190591850475849825968888813414153315074694729425314161198764126965458009027880925614763504968134953619744358331442909267678532182041689066701685912975973409410580016638767439408211943551164694650923503353674981074403227648670971257182199804983829928504691297398311985613003638121703402327975982812355453538151632035442010793352219825164891602472265817556542256871948682539172288429411959792153607683604663936338077365649049039623446296858782275638404491270937630698955317484875246832429276889822262010989495484360785134588128599963043480214414573113011269670067058150315322027961163222972742533172878721271349262436157646045785634893850594298675926518434850052710803439618447305595534584817474638349614663457448817309062661080365240786485479305019124400201361122508800536282340846743767201198167130176646056067400484655840753276075886020321422047762803469104836740203464123005188102609802498420349304264150582438446083317208063818865820359340009200803648622555928066964755232756482311354529624022392609197397047015014333293936263604778622148919337553953295134237224625337181328708091653168700577496677158673221567689860259121430504629647548896132016596141015463727826399553146208910239384630796071644195517577194460305283608988482662055372021749860833022286034162166360306178950256923621661403649918060861323818409694137048638643332066094757305645586883143397641112343018568975278722139829507536548166830156469719723194902153290594004004465669448815870183492081670583409454627657376156599805132950230405832099013487860440312122102585137662061220042715792618212678399483078736372433438775950763014399881889317632460378733792222050338385259893797814651697933373790442687396869548452754473178897334458302509647794197690922434312533990132630667451020346332297359960062598410040746844732575638282374862454028832455174414307272675502224213499819376034943421213793009620111401645492039680876726047756272134436380608167675117116689104882664809368068109524517611565393061098445631063152861238432359449194909392344390074338240695523990964504302696371712932351954333540506105416445757745759756663189851065095907016665357107151266368061536330923462313628474566708608344686491268045834456534124275523543884225168454060721597353870023405353182271687857835673967451022779447022178472907333947762844532341953233896918951355604306217995026210338758050844511934523609393260368114265246489919306021420429099133176615262637658866388967137835264046384459758835031177130566405326641944603086423424254741970546312619908402762946152328276028280231445209026638330078145739110696435546479858020662941459563027447391116247721929887030968501752766981077571255987511185052777789394177557210408795878931904283899382661668503323808759548879379926997087198272409717490484153682077512171796349806514048390767970222528363006941172973030686493232829671187224194004640878367177285357369450356541226430065075548819315045499578068792143268766804618176951870305936626358616301761514597007412381231558233698837833761004290882145216706678850176786769644989074274739417115043122977558402078615555941727989891360126484744590005414385587482811648822820564228527429108528153266260207839086362821898262054389471863577136750505323574890392824007528438809728703774903146524822413855094794249622885598953536929145591671784165837243277736816556788931299015956846555456298591285814246371493377105702045330502663671174575744681586723379458927713837908546981911688887810654921211221303978464952613435630913023613174941854217467021840019632605114855095874089267474143882552387641104507211480559199389862229879318319098423252900652149714376509601560009302427973655431899838920265231663549050051892083052808342024370529787013549719304978441158374399320577797893401681599898252450738636884620035809274794211739001425229296045905348852684952129266352182801799258013504791266331178904312701973405711068575749875721506464986119546603415338274221833072754730169452851883312837097204071157823398800357991320541680808951774216829205400924170164573039682587211526880539214078795113723620624241126484540738149015061303913919693169625803027891990469467426937367647949206611066081143951754042751413062745532963798178281010035024913550363906142033524877694565605087484114383934394040149874332647407501088002077173986086696592637087085236776961516310134659083285026352794390967196970074323297439258761660683827830659098365407757285358671630313836886000470998574982863779622713098737995410744887916784764235002564714744420094324714134878069101975114637745618148401623431685546919304724258417092420254507016077002852522325504009518755572759178487802347369198806956383956177207787760971760291962523297712531319232025612997831140439683210038859311245653592353797758504827367185724195444954412286425616292000602592554672506011001778883570786528734712232288744374039566607607664854016618637184639682099007364142142041396487212821148174968779441284278774175258999708232790027534998179286971314685882355849396896376076640424878007261082185476116174537462376924934571993886699880093026476186226315722369902400210463707355977504512282400048434633798087519688559088858928324220452694296114893900331843051404854397982546883641686847147245985904013295967535735098777244621020142311075626800635351624280270167858763644207514800829792276743956385419087277053976895875480015009531182023403515345836186122072944301141927141087415697663160142887180980068212107942714795151709771502822999685778693193307588801894842551529928049503169311379210201261235763719523628448492688360865045569298109594916205091148611594627402117687105510785169024484568574256794079370568208799476844939221147440811772062535385506515138357393172679477370175976901481006710412862601260414708072737004002920678439666319160029860289603643580846269644138349445109821992459160674702033222005196922678034840872120378483553631586632545944173658483320512386401589069627762898145034782344914156183648169718064596342603793207024859503982332864948740483840504282108992236116567897527511860177171955182112400018929561883666751879968293676419424102724774512777955270254521682012451242625653801702435700767432173758495619553397782201010812568764598818956382833057884136526229339295084097157591817076833896350695765181482925624911502100527105597996617136071668610617256789206496257663570907512424009771253485998776247853691481676555779913138576814591599643225572165049727240654350783162475901084790139372495856773026358627376669328972912918544127625443572792206244303867970753786214265945316324143908454114102980479206089323720560361101740506478988473198231553341345529887725867433346398629897436025996612689926148055625857880231942026507650388806527672360157515067036620899761921290489738048324181516527257529083750628579644209685286123986633655386275659211130965293234671489345615036020739982731218062477259330227834290070248378948209425030110642501129783528249421350940678202155475228900849532257768396543505569463716221750789699754921929543267460852815793602232750827738623129844115254341042970538183097824530996057100225021308382166317636911979074321202369360631116030914038175824830021862455444592911749868605172158863060750040325767876104792426416694548718156843828060565973113866482735617666901215852519243903327213217669324771890512976119095702317244692937153030931385111180124357539379638399015627874587825222144857628673884383002269975374441255017887786505992404926417973942180603385625505155020110653991209082808622900139637433506541035604422620486416179662863686161983203176600815353104030974569510380691083442701492763007068011076160637728128882842130067837074614821651278686207359750208627754294142724692175365012146246195781690295599480478416001417456900449991323298959764401491530289806645881349131164587322869827790032680175377302800284921091542773902206317069785147587937739985516293241909811786169323964677716353426319078238330839583208889862343667345996325989915041432019920840777957311795765542396054885767158049350628058213748736044576690420405016271271523494481634497772993892962612326660950914924793629687910907226429312296128131189901768036084704699226267562516308854551940390678637549015498880030035709006718740848222513658906370369701270259783134327050956598095124385999083281757105166667664118100416862034704915396651088612500306027924536874361047223973475599532498511106950363259844182078161347152770532272614221194075003772416261311091144104629779634092483448632763947267724275155195452747211878260715944953388895134265592281509634623813069420244127560494479641977738254344285884473849438921053904130951897679576212684180032201825451324926689661873412854208019666279614142235465411121881765736287559874747184639640912688801362145671313970266156847798179541148682370050906926716192242762521949427748744895052924363202385210571768997474458239559090433296176643746783523521395930163849954906449202639571262719789325129823533218256027245283394775598840954600370382621392768965625717668417474860434712224334958428251794987511111415852223565720026888046503066489221832320795779786784935224827376386850535341072432150638121191183235110364712281655764280812077344571832945699519660207298388820676516103584702778180051402021955638159908446147561265739936392132134836474644633714125685339966522597923174752818619627320474921967342600306196728127067301406278631328574017499013987183411883542986130465788142823285949639727590963668665718048696436419301067984855664347380455594811264621202285844456228694318101948992645248546097697540684075912910900880151247248509364909669647321009492154085601760331198840556275795370576200165107664829860037792017148055898312394669706629463458437370489219281915836865052530575266356067585321197556424229300289782668059145708512449464147873045461572954886925488935033442445173276668922190002598664981928565139820399219741251674221501827872812915041359240163184477636474327347133070394395360180380016178233086024693608507933911189674090799023893345581617797128860331371469439829540649082595900711683432913371922045161898979301151287781372616375277275427204203658800056403831360327525626117317461970278369427737349397004080440292174996577971449145299275846878471132755081971746284496035207431658625385121374611300269032584209437362764469057757619597392869876461851475540848509056156372653235324269900603958840285370340563399817117060887540784024946989540485865515751165810295182858841855672949572762739944953582125651708997745537661797598755444433418405724898675860789894262347123708655431931016137412950190144784660490867364162432394648733363206390341565768063782753929851921838072490618007777868190509864202614803917010079883204357540394500631197080831246416351795518569990161889216461472643859133208323251429098250746910783948669354435929785416386015317180560819002427437049047918107539178961522838297504426334719610822249497116459955030482342884738482505561252986074774787846791811183617500386476905933033581326082376966133678589323442273409740161905234811126074480472452697526781048309615945077427763103889256498669450982963129277686660574291512189539160596377881986566853322931395341042383474671413327368787801521728225347195305088348596993640065606641276489477294513993752895669934974786211237507626028799595725335798674749080046405244913607880647681281833062566249137963069661214230306061229983678301941696900889202510899073004013475585303561638615086100093165124700728641840679237267674156035018766551509657214319714722758606764744565329985649921479056414982424348265099429562126087279620750925947644031989499332831377452485329087539966843970793112861078786153460393605066660404879798226345013542262503124280695339174475681639300073816373879088475060700419074740857155292120728359579167858002849601721702557899145018180473937773615045162738624767406624802282323598090432143451355152214075136603316589787575922881704081311991157281768444740704202436994765304604297026730000028851135044078889222186731617105258308695603695605633103917429853875864683701730481302953400342562277519760729591716068836894429560052553664736670888907117403598089371107473720754479966734647073591821545295734363870508437044884229629660419969421509406460729602436314729317674003564395939457917988821992518794903457898534407509200043125197419996042511763414217619996723281662259632972066712864194252443834703764787549437222212878583466555656162091120727192628830793673399505286199940599565552682508924720417430593187583229954530818105853587405848536386578403239078270714385804279819056013727117281803447752942616271374915269986151459705183065840980642636474670610885089470451044027409674163401651092598652215538246408295001304388367022721531656402897328818940806062787659113502229759840779597665505518231878464447490053425160797289547017052948713718073352057929190467680712533507337484926986476644727824060690964777280170480558394591191212699860250318638302838950017192974248261305385140797228112486130739642468474547812912971971295676839029730670989175543559498549943458414244652696188353844435513646713381675423673505011170864868418840120111663300929349804125935061386750454023855190077836214256180483269440198876188050013234709988792874612217733110228568407024156299024210304014501849416048267631191590365742092332649287890373737355177663515912839456628021668569510722533521088093077797723942399517417006351328421219355274654169103036417161559366297826430728080009403816085923632779535434101626384913772078624437993641978981010098611932539878086409071594098440302879476341466856166761983918997448715709824307628347364817433418785212959412368556898673406333762996192513795466380373465125187722819113213369103725789288176380574831819005421828011344694725586965517922216787319976061063055757961990008500928421444091615235938808350867431897075654818649173666509046734495992182742395070730271096844489111257773052885705520936426562212187099486564631888139334779763671587338247718625824474056209748223761677479202345568595502378050829620148738643244626499241091360177906640218246458601757312114217676281990779948417193844175782793583280601210637133080950312436522069607837576115600220862308363362216021795700501590140498554636517129445439858816793151842326780745180726109553377340977967668697103457863380407033586056755378347307770110934089697106437628797180542380140732186038124646586404087220114250190415959321917189631221879003243430561325738739390478193537873409867928187747055781849235281034487807136032581614351238655977628618054879386596717390011543188847671881503439709426161747153392829318596551566132957626904303363677204693190180744110143425579547451736162773195060573293766301686850113285237918806998714005504236287640158730211833174458231671633578019885076130346319603216822310584078535110571226353646173867080711010672100203363658004980899332915693868173033111153286272384450264141889152178319493918676528854966173002622497996618001333102091909656861306515766814484737777049262915267405955610875211094283768450554662795950803862507083570740791489862515282113846879849160250088917990667368938289766193753966118916332673424720778602586539173806984775866698948723741933921529260373141040298096248125677906444934996774829874329000391952482524795031239303434902819965617935047953502873323196584368712176878464873040182284130262565726996187929596744376364731862665125690340783052001139208016495449050816874269040295239745192221750707165723021641237263227567479899195448651642892186756785049882761801372411718406375000379757952158673139511820761484733792075808063223514644594586708589544489695577482153221386771800663131588557123202727196314235859813612646116210381471104878977657792667431269373138418072543070526112606503263919201080808323008913826720695193187663060025213376795263797756995129134480470425687331867231879704970460889655070478626005319012778983526930869277644832278352124163861745237309439945048580098298961659392065117824812346457596250087749410648011538273872960634556760550868307058771027445015135454235852923166942505985371776368777117234261887045607952557511368939621662643949378477833470198774584719987593119846962839165265449444209946589920028083633105105283341847304214802226356799184426934993954279911855566264345539833994052372957810378327673008788732380947369223425290781589474253201844055284465425258555781791821488973621361218757072796110968120169873441773313946193949422601551282376661992914466331768553880745838841539962236729284840064261627695669981926399477860715289220310858776998025677167875049637835917543713857384678464360400377427321926884882523609720437237696620184710966438578173008325784507630096268454447372388766338252422302288346226231423430675191163370746794804528345630537192537460424805986496225675699135778137699603857584035305234482000829305967232204034910070284585106901713983120790553580858602122993861320738453068166190709057389388554192904553306993949262864856936136576663347660254393889373918271635469273834245952105014290297260666361406819555125606945284940786759206914546187873219258033229117735852093427130755182281755342370066309064015940896797415357832389548605222468703172613494688565768429501422435581811685652944323480452277583049822372787067745303417669920293916968702440226454305068117704079425747087197285785190045146575337282039063994575744989345610498626841259440185188781179455638639699043234799138936818400389462227537333069111596742887905188030604527151718228252221282580858520377404288543901122140207902688812763110606918834408590838577930646834349825691671748332733506481157069919559534427863040600879187733076464272581557868296282113894493511284605439421227388142177652464045885000700004408090046849833127188486440142597026261571343439855954896928201833077460756420273490936016867989887993712697052777766387074575091243064263940326157999020654995201951563975848229485695934482189988203573052195840258192754263768705035341614774956216662023985358539286318165969356646428586199518952573881337693395120517410195969676346676480626984472169244587937525884863496510822926110684363890201768495335332642010535379803919051297830338442807773058554988764636286236558497880040276918299174003103899750245210612147233150448231911544111566197662255576878571331937623725885943766168227243745275034354403016477143606517464960231546792918073788817141303888613285711462058018516878010506265012162927236736904917641696426336805495508478334617735604076123144966455283133248731526443662483068758610314522233731984873356063606677831629935687127313536936470395164395480302356792742071248967811948677665965874462675487082849741174650737143797852290606986035565755760430501600909886370909447600768171998324734741787212259233583733818661472105386309891811769865319093904222934597623775140305409557236408686109338091987005745110755394524726153988802955428377987167687942375081658581639606784763085014853287536777070874825900783216415357493800695928700972174637434925695409712421221185994574056292408176026743305318785592594489459481097099120692345349691307919882852885726794113193849965973146255073273797444993158482113395220887324819217094525387552365204989882483351201373735992208622984681529467552333889486100970379168718511918552963610734168777514735830920728894985280068407968840121613303632247509277488019982743657088545719695390518009077429751779334969221492385189104140082888194700929923325630245998564488188512261946021087390470165204066470601933826987526913571890296971080876554019012645408991715203137344576096669532084807869814293207650979804181435942294028804390823351910332753158789384932257770652790726346864081414159677990609218459281244250726085652569048141684862214163587256030426819472144041613328147703566863317303456061011574138981749105285945724207329290380988581141616742062372354781599855821184601565908792112679364984513804656755253870344603846122834345269368992460475702719259810162023991502186052902317744252413244295594377653841583504264675659983058657941584760388088736994457578614940236820698664759027305730697242159157036050347214377837658063545821184140063809708825055377759481534076029608650969487390937586754375362172789684587106320796297222335751610959669842838342945917182163454649946840853702191598772781068187139986335223078086527447477759335923158578118115633278193730533793446469089760201819601306053227026743092580958576049279644092799985263649329227292576786561751415472530961547841531042712461276988303154105097953863327045225944496778390145008363955672627865873089429041548634807349149005311601337656036125179281959382926424532320186072977083949017450071213152712587436354983560082875012196872519302461588920877561360871095034502791566390851925439788312662018094298772393397623752144773372607069882295945493437767707650473165603199686047884261260595591332805243618781890195141150866025202167379295299489398514304826512743612437928595038937022659995001432174925481438321711774085558518281140389929666713471720850617333675921700248276661973161172421802963783855461270304675917351044594742167810460502703235875275888828102149870108909901779407886409027872588437599133535720622590418086741813454729364738106153859574184180668010051798480951149403654046976783560725010216616808116846133438155958487556872720297986860216590004638420928193444580959536837888312241582573692394120310969188799109002568560938554143766751708116414350489831005170217616853405791847497063527964169784482651802290697090311629596963822500999877533436456384898657613688425282028214999131265039455724711281245152721339003872261363832157030369038955496539440190248941710101324508198542442204959871715370003911359646624487169662792832534903493505139008146003505142889608968418355484880461091454155921037702915307762200113604751024808411904981928372923071918072409643960004623125810394772857404261620721511237639314658544000484020735102411002032400322270760781394556148881841833568686831954290303457958430249588858671533208555627484462251739125109767311605200726701870555166749607378329720718278374876433852422734764401499031602218923882548758401780432571117531023732749923778042239422171947280675713729004250984704867922554640015932631486987523301389492298873280931067456642172301871632389535450346207754270765342761817248638894874452799422804822405455809607392032734682202166784154075396099020334722938073843936458230492180018705804992560537169703850625124466921917688426231721238771711121540309313917670349639860020107478492987544825812578026265610735087424513243515932590768958017338841764823595158375527181210334864552394721035451050855801567985115523360957394376178033488459469166441290129024908378053153849853273913763940338587196134818146614390486422270779728172767129145077939286465891729255549454542773576164728105843108992332967844096386856173535696149819634227939743149012162763041945642726247964131973099749136766052818420796614031410772047436879175978917676789043522820175529981363111973164976126463977067062756175787725536685338585080163120372344488845272820197209980657714642344664067525302398411760967919330974916622335055304904238507887771007212099088675011700072873233251094561723960459898708199185683339791581289979547358684641629502009362047802351677580669205590374773897181779510772554001862507862466815458403477138600916307129681028679703246340121797604281662452303568514107500407170412256171903524965502923067794214715489137799005838988514586409474808369837127475910398848173450866150412954060558622955421859797413075019039957115371175881668511464055819581889390335679503076276918838582795430440971226708589347279422900662099975345423845019256560495898905194654529561698515434711454180395749972904477710978737870308859312739888751989611425900359183450765832243030372795438539584912963114652256710204220300702777763549595925941469600240137167310101869337336273258888594026365828253851513124731701383202374454238440455047161947126632407122644550645754216233355897046865558502474555958741369838407526156979592767029546840546092251157584012303455152218482115358230367901748837790801680600602368335604258894125793529335940397661743616274769520748280495832185029275199129525733916746480933095206778449105442107932839394474022924684198802073384108657042899427029308156648617502392869516954616477136387566609645463017652479530355243001865995843158691262121548548610041723559585188058961613845384009089654686670862689342594992463793705115595188921667581653132810743569287079472309693989028771540588498907964777202079311768636639783216850685318549136693097129928885753258815115514944233199081677889906768531074711401837969547610261902259109745379412275844633283024885919187913963400535689638336077118932832008602555631546155682069689993694754214538428598079205185987659701214097785466015967916029293651401562150689678578118875381987678296712114024522363959502184119097092926879549301816361123647839420416523494015536319285248211964777872063384934396094935193571483535725413153332178576093385164717844836098844760550800885915304567933460268274046296115379694017036220958780855775405475073181228870356928124524027387925399412526414488095732650384231761692951778792852920791271398313570013351023601807487157242528317927937215780708284000634942619314425137260144588475846097958531524035417265011750230055561769037089823126018687396984387518766630121089833381895661647856745523991337045767705872582004622152569959920843109571942876509033269690519835993557318591319937525640260174517384272127457387353289448334042199745254135539921947697729314307600510230776861652848047564472149908300053521989340641104264600324040108881279365833893769139919058754672750378008333348574373478146096165175515322510349952064920930331350366494200028700695176491912186090892187580759610305723412698041323879327822130776086698634618519633297824804672919642428092693419687856923301189612133306402494215843708038651686104170047936592995995377526734035597176440516873815764105975638245003336068817395616504472158274866117315296698070859287627266678748746290064978107370319167880355329231858243745274285352522214146332686670671485222724316482439344456985748531615878633465769990054556799898825086976091043057893691925552062099902013046276069558237934694730149547595154798679411453594055276933852194863759060466058081333360797380161660580919610282491318792049915910236205859499479397112163167041067290119543796130618252835107410194003405508444023967825705965848657511161882083516599045667434941863450026523184518882784580412642709110566064340703026964599816026844868685438361639770636784549178079642409195564320007906049167801323964118182845467712873243285090298333024698833457434215036307329546080897960246140051758477200687809340622891601762387797763724426513143987498407593758956501256149301045326190590930085152773566576033859755616029111508188199119176103342978069458402439985264984722691520484389947356404531891296297582868582398115574356240003611141530181854319597228365873308751138381708297135169278734540188149145975881305449965010012682742214637374871079324992266366765375523423174246034203961476042315565361488513284291321366711258928022710597058900985917423687250941546759621973974381704569979649506270496729355425777625894748686430257881121446475678002767661375000312257236692944517488307169936631716771226067132901351411760069174942678936794460302831351119720829281948478430335397249842025989987645976754125168927562705122330898180545926693721087909521804825807192147872014568931639859935545928031983911096100471509037170524279812437888773200759463312091627752266556577391434252220457596821783317275915077141197215567893056033310030509966984191374802127723433009386572569376160246606664961092190287844466281795306176867104809000259464668297978092880095348433546999802108397076066026975781059978322391146157786340842786332088699581267934727295736128985984045061243186435805314485165353305966080880009706337904012547979850313600928140022183963900054539564279753234849784325093605528618466261961425235706300147757242656592165207555749258589893893048975873810748627400063526832636972225693511103053935294328549791294962776671127248256174840372871889963474934831704672123790954093751059098542228829656853563485631793863806835298603854660682744643863050069008126305486642644500406084524022057849408321525699070701926019976830357458128640585461835086369731855208282092776617391649404718144844713389617536761655159261311347374624225926701879009582099586908004928528305271680739405251593508836157577269164395732658074926602741760549544265563761568122632369481958311464429686859083999149884684271847854923312433470318182505067564364517469301703852746634944992310018963616825932983351029311844639982747012845877809184372934607626751195655710195745925364661042896425286898273752264702086347174201862273000326426618998174914344317706180007117187293173368545888491915451927168741089248823210749948515156719150371714766510278443477575127276330132579395930958401366265144715454696383613066385346131067118854717155290924753186017099759314791315658179809180268193715390678763459523995598700170888761939293256494162477345761227277936571253100807576519863904537537686973946739491039053247827242514851514298569210974110282448283661464189922070346046358401921952120330837207534361355395060762425182406031007864466783294830130673911696456693265582392805199465968988577671810752855585949534100376334868978337413142573845928899432380459702299343693625207393824197524178780278628348997661614626220976247106409224114223354298012066612648266889650425970491046873374784043499769961068746979290623001691617387530385072749046625125041275372086889117697135255940987107423402225739751187006408110762574807238697220781465058348144459354621533922829684543847040498281628772234606501397175758455135429001240277615234955954577104928526050663407177565785773204858119904313432471645933200658948849064852680702879669041550116167522692768108451209634598455059229130328819712699649489716039354515875251601797401397945065190788441122781873789461326745734967228042606626579814514360418531052898227508265627222452399718401209413469092171687184336228237148881974990469298894947484312490845481888703478940317576009414730357888168275361326913279465670377423949569959059114369602535279905584087109130730643792267611982410277593121558421269519186716634678949794451017020510264485815873800160672587650531014229192091511512523665567241187331766246615611029845629427813869378345523835790953478028349841410488518240661496680513113937963941540541448306341569990440865917993878492991822407324143326243084854376368417544914409658703797551904315356733248383755054178361690889549832582326978035387949973653496585428676062752225848615074201175884724772183955419458381315004686907998125743105109721198431275766197027557473960523918287524796653637394912178684395758856040422224034322588401165399937558148182864292909944149330773966807696863635627293726504369860857649024260710722474939381454190084753547651459836378942407009757558391849499612887815537812418228494932188384483451584656831700882028129271955133046598469658597290768668204589643309752872659586710334474694875819173392134527043427452163135083411424566003382424617944593420607638607391325485274060232761073942894747514696192171687653647331895056760060227549749067296408109861751930570790281271187658771514805431000133259633957640154086136249048244106970479036723799044933183998627226809008199174761989920932458648790948867242634520890159608319547268089993737048520668401577471142892029274752364187459171922395160324015303425221972461752905139002651258722791738538569003797375995130023871348080719003666724718388548429446385254200111216540343236016813195963409334894990175010354282244990648721794982847077962859785463618300322372700868401847785428635321876333569755182112144312973286334090869097932720354339169090800352218652276135839180046975005168507547675878827625663391824746888331678340199270581557374672883749091115985959925986336336369776357434611908566601878848052602898097585312355243120203412140025244974290904314358006705054484143720037375034327766735981560745283383549025946340161119872671764231075846502840959447352929182229663398530381085526567883022053346027695537926179651366068018129467256173048485891706344525482152890299113878605356229617416512406174399295843223473173846345918421637027556684599514947704238952456910152544699339998516350057706645858763268549240584945783539460437971728167950031967872798678679573855476904749881898506978345437125615732807209099336570550348114703372723437995214601578058591584179238480023206062583372747937156283022614416796356792053995387372278500368212524197204878040193043321447789614154017362738515423973090804956028029941702951172650110223261398254874518564430460202358490095539125104055295610698242851357312886453392322209955759796089463828443814243179351156496376830123678391624179666233876690863172240295178390280184928482675031979794124207053695490697554958224318787470076395518908431605080164080505683741527376193730790906389111751616322278354303499490669242513891018949033143985154056233473134694449542443902764500980906741326772640379199362120036770987172041237303188309706935688053073915381747342789323100608822454187759021859091704945813744576220887892195822667343113800455940312140188051585631811093419534383783668763577608318571159697260716257493341259803954016224398330387636574909117619215057627012053073014162001706837512490204504292995041176398838044338695361813604054864683016465829152367668922212644004855994484077485642261273037803310113663996779189314511860646139293068974160485417120912101624577710204559105886041809482293496427644105756929989954597040812691968343292989207914104280708409709405174182531880470528370096421835710163441777620972164197431397666441543472655985470253741194745394103023897056212199448424749716912994821172103108710120559991865345185653390408274614343350078281575127629557059033493657196594936877441159989135113084582888593425306761639037229964469708130042888920834284090175925068415713169415769324948016993196995963443908166170190129994054658359737536791426836909331008028945145929295111789856269280058028751823708214754701146092959011364563535475693769077187104768163479272352289856555751546393542248991099600522575752327056603811764417072592831988627517298452919966809298148318449137309592125781621523057550155367202103203818438160108728913727064814396583205808716398981740639096959871824478478491151355069397657029497450571235007914347246231818368647174542458127872584043060339347019554686730578198542325479477555729721920722345102499184439396271906959383493888172631937585230966811233897911254798462234954306358350398782462834259979544802107270442730230587322772191055986411281214667435427851290530502378425625880296571803255026364386554618980749933700605508802724158453715717666380776765964981963960370760284104766345228792711481296049743976804281721364670970743494683312823185709804081302868359842777574674448780889710031503361100669775349829092037976220447907851195276911350533468847903626961945631740637840207773778462026298677571842184839205473661697360483085898291267876140003642483045159600471102442998234979409299208156689716638340515545077171015849651077087788955713317383262756014443432173626974660404416662788886566495308986491788786367896971325536293366749805832732584785670961018987253520063345338099240261112172706371048848499274113854576322164349790983971920305720803044549453532729835874087201619539534290467761530523666064346267924192713523009391294465567649929047140110085037457914551321956530268885379543136065967889385429805994037094706543907302359481291876569514889607531071065841395809831749383591618385536430410287934210193217476143637790732467783865836174022677605035563601466070058901738345351821055430755561875143098702979495906577081628626585338757533477995719199928442579258087898899575821820519268875650297091970565476837770315486698707894724025334486654298372246674200115058575146844783000896083067189350812964199978315340861910151542559770684413067214762881667219948683951749962101030543747308387204439904553380083736537593740197271909892480075235769497480940963698770678022281108510857667842513862154972885696889625353440732438968598537062318095545988679485762890800249606879858725030013089379927323604606396795742940328584805819161107531697673916423192134979342010875294529622283386681839784279790426609557127593514497195416314559447412327865851633738377511970332265225496995221403576797023036622782877862527005615254035444217488775335280099946854419456964549356591291875982889856770269078401268663673649488273278335159826321747643146789357789024555322316910304711323991835213064093270319759110084343846001299164187799950154868488637567042831597193582537612671924193510448590782000892621033879058794219482865797870726401893495399993621874862171199263129112562531228586726955415225049131721926134284623043726240943306387481711516519846750491922627320418343369175398918572776565917391850278431170099843892649441267504167150917738525660327666183927515288550980964961575554517684812412495363183914715516938683538493705504611373213999597037982528807489241275359884473171606819933528771987092463367729961672087103782727058473893261001388984409760549662271366953985479455616213132218388823110527449565388861854575744221546834254168698027798411743667689435778607373168631876666300725244345429214730102428711305680978733567507269323896241640378643219477158620617961179198501053824874078437471345044738933992304791137737968691818653426674989537811249579053372004165110682503230097567614394248904417947395104956670937705467561531726476253112221591695133472021100038049593240465645394765422313518865303660003857515109805434072125382060769840808262302883194130242776758753558848385597526369218162358123561776940343600318300419515345229654496308702323893418278610831088396220592835348765185416877565148310697724500194569825788177595440460029427772470104198827550133204302595646833988824568646354765831028278946349318663626866787081912330638043416244722053357338296386965004200499331847904929568613982106284825504630001823423831441887086987968058064459510909789861787722911229462215447146903871891647610105077952480661489770250889238924127555492482245200453775631828621088847471531735984025338489043499506079301032250495548916422694229191381238943899988978175165016319467847525701530292054445828073276769828091445882290465419038049398029940356547528270564290051608661487955376181364801174346784189160958622747608918902684414601347307736627658624144158559524076358698550595688179387214298478787451528401630684401093919564294537697250398273652096507471511384658584270955619684624935833433353197783368850272813541154097035421683600853794462540941976801491832740887878668349454533371866887762292128188796015304355208229322676689376211459984965770762600239926202831362472406432118450161335514165634371288474760987244271843266425818866112853682421286501114754479545040959993197016923408018286708182837481047496332021300285610780792691633775180513117694648448206946340604285228350479338512373708702433777716853017652996859141534410661545898130318346233842888373049392402267804548430415856859151830687636111253053476293595248268915615134255555365413655316201479412375658711999591006053239968698612425260896169685270656281892594745539992707454666774077963055306193619998865818803361591702031172562642469102796366657184174404918725588277048504849854359585372838913928702224717402924386058215934220989762681636243698223931010265712498477817155905482475065270955422165656453940755267694754722580039179950101125317150069948593616088863849380277268867811389074124161661483104181359211737210504565754063061877013360288319657191053623189329515665935628230801734365002907679183432446214140003690487636404371027540913253215282699612941075660957824409077228278711142536036931313659902022466956635836553884513503189089063564553433303756596930974383935756679160631749036545472042907196568260331203526934654536126625656396913177732972573848217427344008418878782749510912624750515666478168488782636441146204615910278563478138489769489734140972992079415761241453546312375353740421792252902738131048391217995090066258329394854827340950360802706488588013114200724990154020679942618256413247648091782342582280628425599567811108327229907362867413185719849154270373217595995738571310844713354940548875296892667847898791570488222119022550254154734575386552658773269338199101602539305708266775701177369356494337404594284111152411249350535683765597911122710943334598349892408303583764403837100880359416756077986419181450686977584442469608471226412527283638185823859355019465699548335160233719239436141691793954069165252133605915299858471556130721357544395404305825147189460279415105849155483206907828414998480741912016861694375330763170052887666362361205831717629173006377228483882607516292851243142687146981095543849497322752833629473435008909650992877016019184431474861144593780043057152407708294983627835385291429579889776477322190283116134336571657261312306747015689285405590908429754123652262884239873881517796958591288769682640137576091443554188299940053476406451140597885330390466396417562425411286720047840469074472869791725812070302111422831606073690792242556814789997205426466842867550361590397513763057297059870241391392227440654315811192914158226199707613472229100527737788586033685360169032700459187429589185548323405155437459329952863731514192899516099033496366902986115551069991424112619078894144737991788657780720589298769410977086499907018053243768448148600889828409964931232140072213676432800782534183317986942752016093988073202997125528407742400979751553993209123856641938212857382253136924330005663114170141628664939842595628817740054385619251892486900049284158304244933796414842010264386837979917278088343949204852664539407252030110758064980169755232209193699197909507494485786331355579028332695121341993463544230886494520327529218899209643972482987630337805125937309919864295525327311375314998815201869161938045339517324238812574366547265199931436975449981247300076254676110131345195595614894270583807172042721328739855810354787410649042031086399218426533803498044900712429086612688565426014861021731104823412670592243217762505819986529832621881931844450082121611815242939952166938796149747171763566813435597645273068424117952910308132635601431953471948863158944626491161545874750365708781935840939449806736118616100887182671529229002078657319136644796478005077822446488923892310983495720916712521227893997808979761218743352579179399712119455433700222450998730068701458440336301824042562280743303320640168398044837566823636338717252384180739532997099719221916766514403411646231814188656001707575560077269014762880173586103262490837910379892719423132053801386490476170845059575699629635575024132569848741187547835578021196247489239981628101400458916649765854425450440361948299722792694529608575597497615840302708107500714309398788814072562962779919742631005230401884390800682199938283916327717091913977070439409885902523014714823402486531946340828559224340381686782523844356207393879429272641951285059870974900911321633342110407629553959577545867568042058416639614101576217629582112580966962358445142963601633501449378828204049509760706654797466848664572792740553452727285779873506720474560329312292743068007960892158870869139713443184847667818059503245929043582238999146922410303172154666943073037547230177835681523488222095621576218058623976765815052432251631982251323738114518367112191209028241930367767541807360454898898173613444786343548348338369386458040779965964318820969347204739669156406021729779670168999282024758222760539079321266934955920964531553557533808314344482357168099014944998451002759722286649760428115966159218965406865785501040307012125491961573422819327806495579716361525036008842642456958764708445592738532954898066984441550901860026879319665484779734978718945259318832962947086070792775987027340382981760368294536954021282622124522928887133478839772525637410829908140955566254672095554979170173794690183392333275155658833212001604245739947222561930938278477564541891794051325322594256265311011719820320503854047286968546593817034040276525815064544136679576785849731437086864100501666527660319695055589827418645333344018136515710171672692006761139918513178355206752112435538431971919878310950311429828014600314507091378142884545180300203952543515448297136694656832739640607572400876350029590194289420381739535567889879685847296405344600298910946978605885322746883264475758391823756108777725619460670911186690372151768976369999134234691707839916882588668897607702074497717390945068353999708233062617200110762904362812800707100925269842393053580304510729731669985272740916208890312951543580254278152426230268971771901972881000625239193465385368537590539095377698861913786294938651226163892571121395439166483754417265083078236760358815044005006053692596505989913765349331532907243845527821347739218017818120286736688202327455192795734400756142477020281395235881910301948502687096336663665996886226894887063536033102658536308378009265806066833221069209295752525033074276572241756707584779743596377858726626357868295914761347073995708938599199924162427990667023513381800391054629458950796377244371348442669944825165408948812680775646103388900165705217074175420945445274147366269319239066030909477216893372703848334060315578078387814568849570540343398233921879953108113574607291159718129191151323917966579203837463210488944656338326432972042576326947354844086788701169529441044973133710345221818296835920778349751651299068444823675163175823497672585075476099053297239896460644272328532578440246390505229587563765296216475968002314901851950884244645855245194328535389951556393018926974890401920276862614606656470759577094370713784991882412755745649450858546310581973739061039566893391551950743005751720654104930121517489623886596754412315790985511162868604401186570067350487055338934126217007952118178968953106258398501850479210482931126486602345878861945178643539384252387987221384876794889247508910225036268539479501831999607568197384904509938389716936814589920585564690440487365132274396965396130080142777730732589679572946814600034273434222272765441763839752721276514580071120085882522565080965651251948756333600145943610716646558892207057165814116750991132663634719093951275485578922371726573711918883037167432432223395847634183978491070669562224369562719867134175634135089204521447267150203651753172946631036701181691727602010647017685609388643328266362007073649951245833691122526677170261264154657474028006900078382760570764915742091593948692354203927884420072136702351334048416160794101274041351715594897864108865902211568659671945061818408643016319826427981654873234156638143625274623141524574194018259277683740243220872907509391548570741541379439522499652023969621993182610386966500962692602406854687078336287939452352822310652290410335279273699619940322238781721201268707146250692190148646114186895546060975106776021914637463382503756902217142905007133065234353383756056622909698907895016545673545968746028886593810183683693560022703495019518068500883465015016518704724510095267386733463779070470267714728768683348238304579884886832053027779528349404981046013722344655681651114545203766781096874303014551119540738821794811780868718556311450084321333995307583585336198908986188978699428194602606971514555227780418512118853171840433444755554970426553036475250554845847284080558011749458859574945228098723568042558149927695260033558966864727626881119427797976574693173029307262250668967288551098853144665442664953019582295708866874692811219552250437696283273853660504132206435872396207118808317780342819559537224548243514784344356213294713105994606122249710877984359414402401431947360835671647523422390790212975314550323138839656999536301046675210444031341022960977144468010297194735582104898054223240026283837003758759561790127819992730792351085968721782501870442942595452767470425998238926275303570851586452874756781730098002238888559473588666838649294584519823600021505531472698823235066749439038377182893988353461498325309959678324209790388925503514166211062385569115870655925610542208972326106005681562042710659728143653315103283800163243813018710263251536570763462417125837572972789675440298153759391352428645721716579505501088680462619215110850245369212413207883923887616154242002670662132953092713030147272092166833647819914866648585280009539546932095351334325930987353014587141839167628054577322918156275402721038603362560631492218899012490653934894564167272119062896835133703445828179742684920105132376802463286383493800227450608130819443692734848447529157486390716995513161318201804174119466117530735700607324011280445307354294585679705454919240106713422238512756558987031073656430621303023071240247523107389023834225233856978031763734590625265112626913353605384595946435026808978750889250624873848145086071415364662361277225278718857046189714662260665046571772525806562349338350427960389583660121962754353038097745366605135538907800386157939314957272030845526341597829164979784286547425751413946505241640643105990059833647968753156317835989627447136654362378653924015800929487924382970116043372419820513152148114211512414106525233197488108846494586420059933302180091571467751254843697680563828300578759790525849353264120163815511397037397476330089212910962802446801738498940019486678748405566771585102422010408692677269259283444570050180735280539220948341841057461162492953369639377490720412668734848417864784075267264116248004896048160574698433099126832678861393654243389830925889902982112175441788649864753169014827354590073531178217380755851160689153522880934363488187211222082205136324633903959200584942405704378395144917998171163814800740835438514170842891057547785158174467826794138676759455454552075523887987024967374877579830005554592244648449077248603580450093097862273411019446959281810839414607314673172233217863305135286472053490505411115048176461596426358265096440736420840460463131191003997250414225424908283895794029822151681697800473657342011440945328736714903689186829755725814438403569630095971596907039265141098302853882186508421438171072424269581432885173940449469010190258268123675672592341225783148554734903254133159686134240471531688554541032351996540527792336980401300005466124947936023335470385085646628280528740789475473023936137767430152749061243632925320047852999983045741520546296885269988006633688912356831057919270948568502380529463604694787175382356866053016805252099417245231706369289595877433995931678332165338448643913099838599861637878476082877008947773128059663517295144795837834377313038108566800265067741695250204904700270668324121987259731240342327930181800754800360395769368373990672695723313528052066491385466664049683619070944801672095170781119513433409019999589938819345817845640183396030492856142182550764608717474410778056451670498291317647379998753354253231427967912632818849024271150651973320822075495638621339535707972966674000930802654312829019860086516943410448646231379334888563831360704824186692888684311408327495498617663361978994084059686895603757114444309152886236576278913148951684872369516910168318983105838088587811465917848903300309612588757082814999978449665007315258390073569895156581029164347622513243201788884914857338257816745355428284190043447893758850116936283096436813255200667566356990001863233652664933264431098889747862083243019282834781079573611428200526568661222079703288684149593988913047174861861061708607953325244206439276510899765298313852140006498489498717112496835698362281058554317475849645115397736907126707067971477310909319516627593885823220149791695967689559579213539136361647240701697777551474717342764194609677508673164911173469777973031426935151141734805632640073112246837061122343408994221666796799594912847862597784355867091946722929537880129933490710300763294411367636859387229483468490006374275556274013623626096847933705884167258179578312131870255617593654045341693006597175881728518713924067230629377244696447210100855685664028351140469279429385863004103468602490240743209650322346276403604056209006711887615192059300509495412735035777745062672162993229927201776216727286973476415734961800238296132837131328701760704724725390323315087166431407701601254081907515762739512487308344272388585723397237400974362466321608187001100533547712389405420826067988550210476974985309619850825482972356313008307550332073960019758214539309132249132515326438190603571334872535951164756950403863102635722476931248089253038268357988345771097391067699421813735369079038581690688610278792797778451169692859607386197609939235199994867619004082006331965829858014499543145435806428535113975989924931867389163213331369820882575233150733639273553003683916130032523965671186648808579360732968282569432997195646684824310616366890451826394921229617646484038302786780064149497602397957140116734604493790031792430694354350539979614322285774702274175755896895878897800367959070026998065816076500542815456138097478227315838319779138500839597368006796387964454071966506142461580592332043914094302555880094810404768013044929406484148795085814923087992843640250851466594384153835744362389987223442572639653287738155036489139507519584488119904672114686190064299567286338536234645499998282349269068303954360460066773469317798098924793664951223076250919046138793723890256656015191586899167038137515393842853285767890564868751434121994404235187348024348912299360136455714697818563239835480604939845459209253893892458875442536274959732162648275438640900894832403644999826840616844936389377496384016267342077894477690898274469835335763926505478517501666121089442416080875920313172263594924710484488559694065202637271757654099413232013718506078493647931811420038563943772542970321680158211509323249975253984295663772416616373842761154906471165724274569095604706095535137076063056625158131677762446732845160957190638339422137954882387052518754326015968327673911603450900102176654175153325673631272283717190995679334071577174054132439315961902488737380124318535762231653812469295517625874400526403017026310814788930691103306668327314993701932665383688680965215312124639939505123081129669825742315139129059582239385119491783320893694683629955886436102288791419466098858392768887077205188380708010123344962721299943845421417548873559147101392707276991340199301274223983980835031010441655593792856198284891000974214278602811805256187930431524249740552892008854149756355396124843779366287819527093612884841082492161399196882355856390763193315291235241417874588721802469614794045243386755257944172158452985035051176750672251842948880796791800782236527575548113692594866357301598336823144828871772457819819123314727532048682758840452371975126915499370852613431157041136306636826354917360409348698915894752274349844206023836019672470312482811521122127123118338820565159560329098556507222433053994163899319688012212269465674431530920182239879917676082111491717431284147721264659431076008021547401854620817584484927174002327310241947324293943027874977897706282901062288304818634028475142055426406648865711858922598924012735527876792006491781138099550476288200144086851101530084375036734738657569217690926009537969593108837734210771412800412908816118193948441791549096463020441845892138144439957184531975106715613762931840447994792477647654457494395288991737641615968591291123494777310604237435478270945789754498274684467320840518126200804671903053929172343620819096261657416330048172220781935520487822012933038489133983865066291726600149269447339127318215074824758621214272051307644409153522868087005144090380436822949424895822167493094798708169817660717991783918842914544923270552241783789560140491868629044778222904437211954755418615538086134975243728707388700225292604054796528406350812518715862207413254352497200330514185923573132848271217180346634027252319472116303614399726330411112785644125113213036454772094418517184164307946119605014955528383082272646903119274899969983089736526238174491447454771146656457877952959334229096888991662257399793077176144794251565027500873176213230748162990714731682622193286608310621941305361214354971213906423147479357375543348301156062256604094737941932655090198150928270357336694230258948892908809893944919694908270136528728002421376148997873605325793322564742819479584213130188289579267235626118553897237839208100055531978068707452004706449591110057328901100187858488270455623399610777584414953989562239088567629895935098311882243679798074146473723865778551815731587517396177886510336955214428441205858132871276797269856670349501956063706530625497737868307681818343460804045985534925032627531081521301413212873757202936830495010322026230823507700871941016464274542879388512272159082784722033774658199837288511520579486559170701065515928352606158679718532721246029108603006508590346778966201397537284910443756361363750978694839801330150156183334764989832546398272405293866464592484241878834748411121497195719676363932085988504694453138134198904818826083243663600003006627797553431616549569330029058299911923468156896101669956879274266891556136177607809407036918183635392764382683584738235112000173209923935415797011834617614534239015043509286587340855227251353947136351965500566924634985163703343385370251709714969830570867401299788811095684508696448095220390719972000859791457862853008340658382378413570069061381726989351716473663546829625989511320159139205194066898142558035097078388920198092699228929608893242147492230670236090697599596148996201128455516809145364996939881381820359297971709477938963698070266962994362452401616661104761014862073927558653905739555308730913934996643505614205392507935156667952982254519860736927426294048895985789590465168616668018022230803131904074891172007401118999334450189024325760662517651871652181318852285107487096850086037977289789163837231354433568458981108705906505770349639143131118654133939474446223271728168057513440494284658139563911091231332564422082551978257807959019445988665712596273351551625699306252065813796522151661726243378909118693280072947704539440820405680340406591083272638695283524787081419267433844162978471278209069669919974882824477621336223526330113913144313140104225790244738720417803257813309061304523952070174067221855920028985815681798967570040531908528369710857559233431838237097911318608972575446447221807387921414959246972574687446440983053209591161218159626257647655615616276399922088929660527353755053568997213428756347368498399879037207593109092811188949615788872604976218379479421403069479770847770425263537669590342524730290491274548802981538557749208295004255625154457192188416821517208995032123038982746668732162889488105546242660376850120741080604994032025968726015710015707581137505179919841983080660233245130194037844844113324433974279530432545792952953843600787809962235653662427076601540391122962278046611104716775112931630112049101918337858702812003193798226757470676778887422137256765155511765428017360305669769487953741514347116926533238763742702975528288924670610185821752487790531695922654615736291675103792210530591409955524740422790481257060433841668114699024497320076250427583640794073557625352294195259128690102769631565227749911164046525965755790338784828244849710961288552550899266798451603490658355070331682842366853811873301764718553205710187194309433839234419708402207224761029879084182633449126334202440451670537363142987147426982907177540537242928432268743231577513699390276566481705778403007954065521177029694691284146026308828588801413839829554335705548332542669747557462849989124219117014093856780829823469116604109705456535093624797475505592420474139111412185682737671493037536330151209113397355629544637309046063879990052548421276147626592822890020777714549280325583051483959437836909586958280396868669641936238967496172503928510266256231169967044508887372166845814289873990870377017654556130101665573671499243732377702534196174080566169548694451839724819431309925348357664309870098643923925016426398264942880388477628917589714465744690412649998708414103991149413400364280298912177787241680199290488866469802832361029861656079671384737805999972511858501245213836770780049860300988669666646189238471361396494339606246037729891038738681524872627286290677468332340704386255663522104871773392371689362045047165971524711665930131165324775521930052997003798512240331240508220212031951771028454542684586435714380743480366974611707021750595194465463644782757695826598969258033493930216267713600928540584442967641149551300196818670907683743137929764097754841713220158729143298183730507481569736627819349820584710755902692691093598164508647651223062532291065945565748131975366298107893413258758159992440179584912340069104507140040587072258023752513601826529997961690101892006651044135062569533418712629723030599999434678488300639877397351240311487521201713235858994764060857534150934264219643191188256204630587098107276263040488122464899877858282277394926110976621574409666641255568686493271691753527858931553984589883358594659216814705415169330753178704408653980356722950250019858141258328936092206306738922329343843620071920684341928556874704103824915378845801678293856046961911749659231783855599258347515928709428994342082142572818032468608595486896471805054514283486123992469055025577128739135855173524363916692916110012621683163578406624058268540777341072241041598817913510558168537564258890899034600201407449075407286121034796521111219869145899469159360080971597607039522366850893064511127872307295594772449706726424755417563880715692452526603849018391007509429078809042987909328808586715756578209541038047286790973143866914522338662825293784163392074019891033069369052914783735469739451116434455714918530602948666328978396501929704355946479235028795684516321271365016781090930576567465423731005053492766541629288014559500620962302942795927418942061004007314577767166874467333434458526117795657600611416248342381049562282241773837894819011877628932252864396639984513052503784566770364082583156103491373936680400243691313234123356619104480765244697476537146592112630709153405355873138646209267706799062591423094881275531757681062659476323268192167122965139649091517804137728039599250528686109045604598714713775464997735790640397325894522772557678684925767141413962496844754663903873811330633975626786014974953262784543916064054496496719335060991765942232493777913365672590680553250956935826945569687274593834690171065011218335854950776569581277503070766848078943074789851182814770884020939512440385393148767033975801869945868516326724373337885409376562168800971163312012337472333952556694350266172903555853738645365630310829283560137940658747866436970019116376532337192451186898327114144878761135922651308288844847633211296176906403321359959299553210245054241381201381391750039010704447636982194366562801953264871354115727444692260029571972790474561270578060657752017195014163319862085139744316646797899209729478950457508801405763075338326239145990956512126449653657600124293381748241977735228831042927902292132064717750090350791983066634895549841424567675752600877322263178724335735317853816769298293534896113552904630857554371905460234990311610316076942423639681160758795426420548101717848791360910762455500901244836185052841114322351571555981097020014120089677604674401513600116223819298085966007162038001834802009197926820638478357295666263380300682955233303353675520514174687015524344435323388632869113469340418775687290468425062837857380635355926842187747778627165924323247134984420382776010696336973688099627808719215794023679807071116978754062158664817716748796831537077339431816450540839604474525237646072214920980411966867833492540992605960322162271655007000178647671963155125183155832376988428971515352998678664100650496665129585238287972122633685058474490515981966808007117488433081057793327926342342243976676197195714810062687698668161195852116041467355915947744553584888023775266168793539921851404797693297730228234146665105678435530461234469612539895776548483691696985811198677219619281599456006010740872827724935759784936656917768635690114312656252932755262722840201061731390174624118367116751707069338079673607642969344234827652872298364795983856928477136398001897644151202047212719601024768863511130279272144377879024586775853303677115241113607224786270375765072066165026435557998501831808053782656453871305704968194228012171803089709031338313542291193516917269333890473017833099117796899963589032296225744129445038806193889254936852221285463738418143068178183586211187285733346216134249200950799942181395991479253681279385841502524243889952335075906964749228868206904722097985569583555923695829845797647940930045918684234698500891777046087245970862464118970669049486689337228405093804710030661409311726452818502275098251705869838228647328344131134918743666983373846137646636249547788856931792505013838234140248661927942988211701016068361737243232089602283762411303730319200346536859745257756879399079644769650722053285414414429619204467024454023411238047486802852618528032372531273291749556395542786535072546626199306511279072666440290350848916721748053702810768871344192245652211896640797834308634743945770632606215383607824708865556489099737555336872958956614107858648035025480316235346478602983334220603780034438319610369888569070028187717561480580785826445404650524621000928133316818927617596623869385219734856360680079044249257323261328761074523373713537133098295832691805904543712022419732884997282877078409419203795503238880841584443855771127924401310909736668127004469629160248172084346857471564701480575811463210710949426786504174337310101762826487331742898040276232259022058902225558439055740640971821820726975625583333410714967622879426111017436168876994667639693680223567686754449446301501823523824561475255001030179404113397733949780367107333664527866312148218938008378233954927053641072277772545002104243279619437240634945613031274128274650558022899924004635644449583516494600270987775137548022456155792310960268499205419437175257161647435085088323240291453657147938484565107419599134768318981200201400907275642667178997821122115898280714905293212663951361362705217685692030063855500519142167426736339786975062693514017716711904952245201660379465236302458084604471700370287175092814455259027496933275699910647417413928269348787535518301931863834181906525562859441250589694940432862730662088728676428975974296894487641924262613204781425196353085494217623735341417487315455082817981214816586575724562134705937497659683948975342336517630896044201479406389881195388067736916665410024464813349545879979718774937026266579394174382012906013470939342363516932483359901147605449940270608209932147540826284181289038837892402264977363444236304974715112088044333112456259201172259057143755350683252702530570446166127852559221162923038300460356911197897632300999449210203616104510249182113486515966320887504694008463496081808890850157087358194712681499188637662122870101151902481968125412300898195432428945207820077170059679429455987819632803364973389142071622619290167369655010375907891893432896264628487989317132079480283299996107804722031086846023208022759836830570314361230867579823285571171888090064191070870770154978736413251213903820589569485879568295660219147133575286612925675855244590607580481682658822495194202441207036951964403503341870587526443317245840162658550960581403477019151938413586227276134597689438482666042738246590923811643137223494551783798295787291587242206965736797765679393379975627730542136279444002340243325393568722853661998023379629678608723428625793415648811310418445343014698868132110619954264016437345263450631378719729496407965200038522786398326355312007279480278483998930458379647083151016802487471724602780329049138054539086801507586416983080273492142839230326594607825271415338310740284124470583848908470166281420052866772009014161034097837299347636317244258645431052573062840247425300499017441226893761940602545818848394466326664947065609133108609910113922020407382775802769765535320690261116739223627341984968824907308211883862856936992621048247440159678281658154159711220094194627059428171433426354818325499748286623664535124157069035565571540209954405099925633997965757477201696992195796449626719608384165088365771752163539509687479734035757694911802808631195734233729418247115406905987724304216574457445806573630689948247192635824341404566796958903780472870934735758052226780160530911753476694505310485218999967746649419608032987196757898222053470487961808835049972018397176139689525150817320019924345222565670135525927595213866837231291586526345521944762684764828910798845412401279886411431877243156329971326243358237281942636004880414814354620864387940176332910268663593636018690402297234537143743947641680638293259908761536797474665110366496915901817470985633545300653194214596898112286427404033305678653348795399084000165844310449585124276587479656389943517852275491360036099839906078804817697425910566428650465599764857646172305986016980431344784208242177832497312993539241982029092484398421196797968615199243102733043618149588977147988205852797200703908743066384568444982188229888312080983083563452765838000392003928436763348140582387181957346682022141026374469723681044768855026699921671330021906259903827222817380230209170391402688771934870944264018692732329875381926412307972531122186085016199159955894738862410943612241316414473747256214760096235941593470265617419776662412812998666251159446608828556045408937120591269873223268594797131602763006113141456003909770348660966962645691737202780209438272352330377418154206022513566833449350260326650776786057493826985760260305279111234915539305597167434606745498636924974072998170378664074469980240882920394408188474354226847567629587535319799903254198397753660556880967339409724820571015057047868767123101713930538457462397236636481658770955892293608959373323772323423749409652851067736986225950530049995289273684757883993168188344495462596035744553948582065915686087043443707411407438341806851613921501649976572470850127599791004149336256184222706047314247207799586772402388265239295400530563977706790961769696565330090430143573241325402846166049774433513518390304394219147364221735284740801920907079017658706260414901218994724695610175782149143567943541140636237537777515436450696495955963279912567762108334564910348283258594325845933541232471268495251297950014260356403035933546162407038024473723515678628092072611446878858004929369654441515103963876506029197222997795392358294818999016064097979846219772261873494318740608276811399452544806386848088104054227445850612706289040167344965266583961855620404876429099068241950300186463477352399744763759109104914530323977639041582486279040870886651483378932697206407606570902910095895154960776231559791630048672764465545931690276579116675860273555947864173511862876501173984710405310855870786365317800712011369070151765144287828357965714908288727670576405265330061703308616212196716064616969038491175513033826923693672387231501673944416302980392295879269209860352937447961913905156671777411209845258499051197181022473635752650714024044726705173980079159857246564831729893173158212062230990288389975243306331931474015607774165030064424579052125104143828134745564695957220905423237250064708497804103973478615094499736873292929031591788744543216561363140110760304347177388503328145848359319415366824522596207039613175959450345622372560655783414865995044088130638228660649923039342719448395190600763778631443816859113256438182806735552184851379340917791048782824868773351522234114399324302763266129437297119226896301192049927702493642601533505158224394769360927570103653724163724455052702311325435333609296046617578938879190463108708200655147570310582172256483210203383472988917437419896276872066082618428898543510004710720309234613825552692653772877893487551275851752801159425318505683018735139825735430830131941070562952828731108115657947856863779326465509132231218949877517948172337973341333685196333441491232932945215645046490852545880360515003233134128860730846297009802378302737627762116414277533355890744367938255398213439875691556146693752162608811454342399012206434921654145330588073285502175324421909823715938674000059339254328693394402137061102584708575944885416495172427478905013069356369235944462574317476108770648185129868135272434033936761470997702732715899625439870904179483691029120938302856678170940648631530583185939471662072152988753589609890422747656160842360082531858287385937321824794657789885640070257886892308410550975856000705215077202074323767480476863845342413627987670495541854232213105882722978443111633774715024618721963976185482259139275224931481950374897635502487694712354396162567154530270214647365101181679443806542167983848404801582268074655670075790395483389589966196273599831287563477969388901860014010346147398018304284690920040890676287736488833850099494495254302316540456752185466203291599539345832711123218503616538193050966675466290695866688078808141435362986098412466442557674224270615288809098422539852677247797581452235765297227095270271503171970804425264398579060630767640200948629179829768047401001288367348520799773869891138643231069420968514430398106764231847210453353937372036244727129613293250272314945105800598267926233387640239937932417470669743999983413210405874804544686379176676287001044631974871306010889440545851872957553880875806092646504762566755242823667261538383263282794006370433898563130113534512127369998014467759284432327388019290277081799724439715103322229143218058299392143792533498553373045245828370205192390705276541300216540327276285161814343842711782290698561377275514281884059612766382156459430037234973540242648047758475009102885358230693621708655921447611553242649888462919646956938286734965312700640057875260618371587717401426417427650351770055147896063554307374990472291856862819071397879459733524062678679138102734513009572080854389077844633286013441055751964074361710694912436584512476163672864161882606359633770722161739357427722621692661464062560731393597838826981127428267101399081988805758047716143360231151130098019478679764621663810893685132595650878432529593685035902190875861388021263284428230615197430273000714340735419282030368166867233834319368331346189210622058128442015202329890458968463951036701980166432814728917518361477458272263377701950694650508701943359793511028117063469867728839379921585801951396305745697045726299151658542484592598153048026778097105627943982664210254043830998100876788053276511367051330525789896653667264287665686649737128979508962082951414177154187343908051543256352822234926573169618624225060729093508720356495387049508349681023628225943900722421968102965623741161937292964281324287691584188453883035125179512090923575833890786199778151834898797410877773472327383563275530622785821930538453719664532586995457987470982681073888224955080669405847016040071313913497292849810461869418614467193731715467703514173146155161028185965845822783405237392877118967847916117649598217219267392483350821190672887957507943533777981039650805704406765833757755357604861096925727748672320401111135884977674838561646761386362648952204769727895153319515227543193671262936415666851963875490212629360084396557454750798529534954978185068500199735118676710866908577176557913623506681928635151329929445432443995154726939515841717776611461866134359318087357312450565266733999756614090147621106199507258362682820628825450532924677015111070931257184503352518162472451415490673817189083547167898471148400336190064150477829006367919518210178920633757942328738008999170501031686281776489027286309305463839975102606247645886227682490724071729759949603266541594101912234346142122397449571131216424016457052883872854448653111201371116756367127689149161707203292584271379507654434460051194465673813353938051306311866420809748480299507669083714376527789364605172587356904458565922420606485853749589372306657655075025933214646359472777577329746964317727654231354944071667876601619825837349548111168861948141359530209757648780917295152723336678349293377391215315561262140655500766581110633085434759683993136151951530309936165899699927489135402641388111257138656224306607835247665951842359747013024511714976613335074173338961386423427521461611136089463071520038572371302171657441673891138611868041875742772726795280173419301596512484645540905349586232547731336793226808145891219394827731777628648570536324068480133750517792469732889523866890794154092607047662510249164172417128910093019789492858836909663640211271906845489128836547069967622421997011370490168107218903424261040820894342013828051017961200872151623517728576255613803713863328895224655086687097395911988331416023582112764098356625052920843968382875643358704833814468368000067586704964574875341088920224361525026635920917722059981778159593381061338936661656378417944826496823906060695361476991673110467802673128938225049917280139534983275712284976057267037414738358237900473648163491070935856342565029541214078331814375424209447312018506340737369634140892609992865698949064282238612409113918695837989298425419013518794612903139837474601652459360721981372067934116956496122882343975239939660282445392926394515486641041466018247603614931341959545344894202156962261207536021787071544835946339033405013808244070552779498792043967117202692443845727680735242396249531842909243958358534852868738111128617739637463400794247575474600505064649009199230817928194049611649753726768251983622616153956503472762661453479118737940354628994745120140502312276845941017535946723666954418048234484132885160257479218888011385746087374127214362811088905580336373945330727362285068647683494627310914453342126467481932960866899169761242282615234873572386144971259096691028949531578707440114311074875472252838456809629930075789992382969921766866345684017366626649071671158001520373677620104133468199745051390924971671104758146621152380157469264472613442565265312939673322474080209899723755628626040784834344422061098276289245515359970816170460148292385943255909647545582713220660363200315153837247937004331258814055539619012444618775997420955668992150226496027635359246702336485035168662194764038029767563260352782894647046515587421948901684702967030157555870902825139581868456822671923061078683001240732715788816108647465537027916187223695355464119002364411374074864682110974924860640937544427447028334065938401704123843241297944667646688670187389098640468090296434685781659071974915706901725681235721157937399818627097210248844527324327142341157911625490423203439205526576108873236463823381922221852161908708311536144774230201653125584729793102653307869576482393304049855517998457884872449791415486985693514879538018664308757729142505461193600721137747197942741820832411092123267367791365629781763267038808346369317956640400362641645788639426962088445391008011762450181939357042862502722750294527198107360210141749776764080026613180808989131918065284720003597431626571592272256798159115238325873705542778200848293686155893748146546714750730976819251637247335526614898449399615640677926134695788747500351071375776062514076114623316054053174434568381154796051600710758916930032666338791497906119262277436261191715098436546154058276670566658034028735110131632237289035210124204586836095744145040967616965641321051846190856620874618867165830639378833006672283827088938834722634645033707123625239300911391763065468502596303148646613314794872021747609065197383965754081350767624092939085570642026693730199512515024900359852363358432059626230098765302820795614986751609424698415270763864222834737214568801555193483916710170463935053255093286085287828256137399448193725609325053622615014878657777185045386156525276619572843715841807776386069538142413003686137312878161391156940369387995433088506086547727760610803345874703934566289893732164234502716719592610301383813944591264414267893372840165835164735128133644246578278709849223848055295293240038300515640579392980387973375710382247270700962233596941396672008887741069712608250694715974990101056101267557438784560447544024678726517302476299822416588888206417342948839441529131401479936833842273167493509503502317920806548466565371842148764654145631623396002901228533933338019356094852123474727541719989439912116140866877843559264192853327565111422650140042684768729845013165182374911582508306156833660948623997999643252322232623995547048097262558019065675562312218805549428720351246507529565398797898151586264217113622171719529904637225463161222093435411686091190775551685664987504828542629443498867318035463408485114211449748186091481492921579244965771790730915808390949126919003808539876116296120864549246115622057080045101188136175311575443963873263142432852092443086224049855862435308196298060568733253380374720347372207593959051014655391364961988587806420520306430183667822150005337738750922420136101670497179481903861252808492876182593790124406515162886352912406935265465619938219966123944027886488805533080017553750505440718009814865687800699713446198305297456875119601006683910487422505556703816707933357067880920905484867842347200996788801789262402837964502568274840110175428212133892468998309259298572139918138585365126077179578477151832373274364145209723621153643828677417984462342462276570025761435020630577817949292950758699607712363285009382469617098626795942736442928790704208688019137998746499658402238740696124895885352558935234844934247707285950602504960544027354125434570436766300062579227211240953124041824868512210342244376451755650956868795615955746281523915903788967122039634593830020189608206245222623996487075574657627955090379447223864140087254802374896616298865263478954197898141618294271086181645579601934945613734167034835570299227071267887987921039581905241684177249964614754587688635903077608493162493722829668055567928757172659588099148582029059201373428244769419626700459795832681478576023508381570528097642404254999223328732366542972611634781501683003269466473979112303739294279837647875938045245600141879872274788219801628584060047148097175202688777936138648307049990446603384694647145587117823049492266206811496591784767529657763263597638938106958465587981506165311364096744698494504151819105924771482553600694360849500614466173051537677183145000050846686164929064068056938873712501217028249450677553331699783673988929479821038944203064374598805353259558014291465535104321658449510652826478434365703336048290832239933853147881683394346551520924208436730205205306515731089567293561504827007756634125893357587443344917737868585212872692192955401081211238747918349159927733482249922754820885305603100762531912430715264841171219716178958596842214747328558272957119526977316453453876215080539571573347689331780840329733520808567223397109021514940623432508778270835706594637036801730749787424895335341468541288065357740017564559511725832307216451714482681257906095566037495808167287681704949311820719040303262087018146885046870560876023626976340362222443066484928267367065129419824333534145040661221997492494777276331717572439052403953077418653916821724036954703359129667359638109392162949279795746089486547495954836687181805508690145722664663581395918160055515384694888229105710617839469131910348141399177269281978656799643192522069975729040831476822717376980674371740664413590342153395392223262415669576385098263125402273682746074796463934535743429215536630163114697507318507930606325720226567173229264362494988613931988839238831465963767376382037217011781508431870522413308694179668596240354859635309587269744747669838289623375163228250298412795581431129570011670795848315415951544738380976580667741465397736442195004241500032750183767785368861462106238510597586709526064181429537615746853167852038328096862121692053134975020943475458505058155544399866498214774261547245118307332580437981287361601725673660123991118700150793359941514639714470821964826005312440359028475562073959457003332428870759122547287221637601426569403029052065101624520564159958520338545736470239038963905659172888503303057726004765284941080169804322427817759165292216274970055177010880591886318874350785261959724770847571462063559274522125246200380229762985678248172385550717447757210267212215915043584025972695349840625109722969740921664176389738823738514191648447464937822362006639826244698930387223050415879180230226001527635340913151178907162438294197515983301188627077983925039225669225683164749130887984783578803969563431015373099347763040500324535107494703262911152571809580911164131611466883705696250336570347815741628878783315180346960152131789058301800113119741049951492821327348320871352549556158038416987315775876368337016822496715390994077031352341918081332167879684079696211533285674874062165526288692139471464870929238304831861109960063561233453607683207747766462237365175901336996399224750012988979531990383335960081172363866808779597585912742075153068448634758154046531795764314854979285678239944874454779843931909907766702141582928762185439627397407634381824798158407626369733156047100277445512634737436132103667758642295488350328256611417700248193903484347695520800225570738543975379382772226025405963094339731557151954105023412322035759712483206659626230045777803506022513625725182604076326485444595984981966506660858091552434813412197735974083682653129729917657924575566962826954719553351836319061352935229832525639877221491904249548465590821745038557698469328350181134799378082272310404009110178761664807114421409066953267523182937271126666506431812319040932457528830768274519099035774993217550889500934938933006666148768789833030117875732589064977037034758146020879580702265219059602256769668530525956514129584317287389736404443085257647068727905344205863865425298524457942188518803828777829360139759380895887262556762112472822368610325043476760499820119965250494741914141112790560351629157400072270428704507869237146593925597288844588116214529041113965511644886628900780606331853104806137301739827345485043189398163626665765213535349149721638695294155632610446806489018262528292897180412371653540065974311034911406679068735595105459369384272968260512318616961180981862152356388742109363527266367015341574418079096739492567791108623347224956246294918636142787228163283553842349911339690093847401523957451229294224918252996576711966789325476141196152066380488083196334896343105156573828989922905568743847901619562631314102470583160664067267874082474630929381430805699749819943031414916391770232345967410143696344545713957396527993233544735890723216750416163180176172334318321016552531940811512630499652089826934897433271711531874417275475638514759437121501816528515313368235459494536746867237793080248858835314274373472294533730304572145171628957367977021010795918555150030220263481804016790457558966282957990803421369843349326470020495673130921909701541219301837013435973523836943285975752207506085196901743707898461753552441580668043338165878410786734349656854266602112593684386948416718924706024738402627214424995232470089397530721118659279547765651405304131837989987988289677988853079555264768568329063606072096253528103660230695159906344846991350494301553442176889268684133594925299080972873694970703690372460056144100113072277270319049331900601449505131168471440275135396837371839927436369198001923414062768439515815066375499109620225801457947665570641946578085793300082035860594597470607750146327121958524231478496477016266931214450276757150512880709862383070072628145792503476001524804321850795336311905159314082960813879169431346189180379750976008346615482073366964330790071642784474651494651327313742282215893570380699771792748616643607416804496422750276342508425470239277786232915095171497342798238614126461620267069170341806082096954040695145943265782131272696340605903546456418088706012413043085814472402043000165204887649584381205164186858899653004560802902485891950830597893756621577458110391169875427295466177440733754537673305151608811007007126064453445910378493646878559682082917289710407508725871730050532652689831915570185527852938125201972271559294476368480536503568137609901953311969428796549307993247457456980482588178413688510740317656219875630504470982195821318679511994925121565452435498338275787259819955629357808415294688509957128717983204488129647310678891308029395294150674801981391639385215680982167710739531988955171037127839392838004419265508628362407646161369750395500436106040725689885260487839985105752053340619660588081876967494422490416054027588181444092845016620109204133410076523733829236556835459114557442557150437051077433808338858756761886433079801108330494443609774037561889834504069900385710574109257575898730372725027374078178235055876786640183895310499906791335243691812959355481451152699296852764160759048383726194454098314733665820411598567781801347541410721106210521365665798725425480797911469706745912891098157184667669335734777806710585851365033728659875798696198753517907258389216133591146004551275694852202143413642447604159502078122466446828632411763972823074028251014585901400487595249295126526663270476239741395951076675623565446620927652131474229123898096552682746988459702188166983333047255996256806968591949211778525219021011221640517563690726334136793445162467512180098205259398930566848258659370340947095298063059395827080827028519409320573534033107073850388890770470449314005454958216619597722553370874574981527119747648360142390751510800124604801563925708399689668598631764301354645249991612028650820769262062550153372327592336599546735291999209352754757708838158507053975027799484823626623281958830662056598379196148347023745065953496768293988790330507973838209451239871394108901945032563499233061530160230396949634822674700011714875262800149273642610921928495503836125322921703287664288123231194683292777851877540247136131154075524633261993776058806838191693652299316942689790157358306488870227918080822877972663244859194841065502829681323245311652210381967958806695728825718709868379318614083012064176266111197628311558175808669371676030771601039490526878266977634913753218585045364619165464393316383728377672570343164077631036222306926691815098111290089158396413768161811316787777092758753696758095973008864172838392677632943901176529163683844233941405164599237233216114674709189766434212915550520768792389340875841218541904758547622878264565681927502689091897349225734890575729187296716143466968386384657304893973100983818796720510421189800630660561038431774924389585862822385278578786606552370141696863668751897173771279654230832092787990631204930573772744465512602025831597981090746685155732959819818467631169343023060085519469993088913782387591191861886030691179070820624627316241030178032848033514775664025504873256163264823497778969738655828844985895790558039711758110646340112447763294077789014014832349630719963196377360509016656413813916194645258689543675322984207454635373679069261786221351725903889409901753560733668760219866384013790532110013453970843512992680426021159382684842142442359196450020264958124045700499637798844379022098618487915767600482175006013271400467127607677041613633167803550670223605998134460914157175521573668942052136692595357645652923516259158042592727942036014727417206863290201579242921842366645079394452879644162500766702951067977422740163157984378650301316878773181131643737937833030146878071002326337901327024564810585590700732305904698133725308368503234200282717786106723400339653235876626934928214852273481801410736129580342521545672916748084752176896042526981339901925172017350525063289248165694296928970551099528784809813418405871885225007172499635020634923512258593970341483844979925344861627190834462460767443655287182541756467856340231963608340879057912503753846378060615878673218001607621062804036308802870169878068302781195713424838801679416242346673117633486625386049621835596582667903267130043814259681684944669169665304862409167891185793942819276002590084414402725485498447993970463531261604046444643113467783366166886176570077803985753678363354466837156220977033116977103389708750104977381672173737282090989807202227075298873504465421297886915168052790631509621398615375510015713066835994613479524361399434442155464814267168489274084872501737389415780597401939841628706780363691976979038766602763283189462899639906530172690586135835356995307899550118061359714007489359076636055373894516388037630196500873518451162959812750995260588417218759220843803233469142074096207174908010516222283262123743849359549584936937505631563667267745353990735931836540359328893820437196600683700882272274161956029617728353590810507745588252146853887303129780904078928669185103383404343224815601660958528649000959498409817014291008459282268995492911705995615291863858132244737874822780937637578675178834919463445362287517943319644371100798854672638725681931248349448090565363952854096657544159350567718305984969541045606311758025737589575350543776802988456498120586460597981465588664428625459949080778729388380558991111606522311234374839294409867197814185486158459313576341006467696632656303723700186653072069233501227225738608946931979836250818090313225400961603860657504706073621779873651151417786965206381410658634898116573584822502150105578012670116151166846920614535803514428291737985382730581592303746293944090808552290767957205027570650012034494402499162195239983395544393534157434061231855375335203719909136192591847084250472857785397431566960240128656289407925549436508832762219859795458714799221959768554705179138307199890136382761945583978025152095366279054046071265179397501642601582153597664662514411389815013262685737205278696987827964850220102342815685634767785810091646254844565034313509714299691901214468769170629248670088149140344429977231142288046723889064854316677967203884928823579876837012646279580022211518401841027191778017885724318488459408175091080462461312597308865091073319874340146090503566010601835120135328379420439999505621267636275105891962529769413668422288098561750374184192756635065728893495988523200308442467474973163433739367650870069231273255588138964260645197233602484060949028821125242566321844602211176482970696112017743924493608326911140765742662637123561604676300236961822298975970968904009600821037736836429501666679080446242592087217760269992813489132320069966363254708192886158193634483570905960633515232513992343999372227182936224847409820066660643815936617336097346301715495561074177332647992830341669842904983130045782612499634034104361673508662431826366395391128295030861131483094227714588603914790441049018399627989137642060106397443697596778034934551675282686484338922103772098947549452056130744052599685858226056463222349677674027283666094264761245507176137972555348861520927480246669238920443921744174592361413336178249111380314633857326611554820831084862280756923442837952072535297942174182615810671081536031751772882630188991198159824583373953747071301483573543955399603773235325585202456749726616428043671202572407379678869328746261782282829483367987360485513130633315601816459726465091069873523474756295707316882277960936771923647039455594134892042557896601282623028426563383509586175377640715619912448594487915538035127039904088426493837699096525752003968477843704796262399173958321088121962174121956038457880445281610531054732677688478888763252563493349835938550287240327714446287642335634725253231984037796209955464822363409749109385444713187616974245538630589684070363312255438880302010842379324670219629216118733457421968055078354986508118862164183864680182583988974163361180690065178824824465386773125488901876884258815395352389787519550429938397066081068786804525487915906358806040774293559705867710222276986405423086609602954280025488663404088435368213026319885673788498611881283065272226953656932780886532821255703088437628956981225276803667936656825198761948983443893934145588516371471097105382938512142286497374224201572819467689588665844605412583832026314423048222747312070828020791727406525657732985037641781964929164155799673349653215118149008583126891645258038926177334435249120087139752017945505738671892223093522331987802191555666634414248124353986504890993483427353453722709125148033732974522532900216216868525320518013141876508780536329808162047700483413979347447300778748531961734339150856620410372569350936246114315602003816252694340301243528335411853667009687070243881802922277800080231742990774072916040584621152528844098885815104594556561133678349001547050570500309558898658139201882086676770595740073377364551298220975626099999747834670535601506012900646754677617834516040236020999303160279762389432582410280729186663715625208716899990370910350733197688165335463375681840568313250545107872288944009243451112158957648305104920550972564222954654045198787193333830974020882901757301786720500989439280432441308170048690752154110123306054584757158959274188951546086265500619812136815064573813282571205265196354433827645328693980955196314540073997126952684747883704982792263735645015161183618304830936804756960787598787123947685860450898437623878776890499137938728451849670647745587912020242827623928487837764452607291036076959369906535333906296493810701908421400786838729097655515854708430166329539356116865884521502226245313858914394392862602935728239839828727350112808378598766761126735735574368960727679983200028069304260791076354107189361911360473892183356397188904853746934538203158181444501286284276458010814243457943178280741258705243841055206635156396677386903227666362084335002636332202309487438173143369962174196101847462365556314196341477048807835134492549628325912055776821726575874768711190225786910288525223138840288051808413715185470086928877851659694949220745090174772219664049479525098002636697376305495010808697580660887901706008564795157600135332821520350644084656103764237654371137302234181747162259558133978154970113514583424607183872425615654683011314263905312593987242141660118001887908585324031418914216764398977721234126741472038454856634392096527333054907493475496613872117116143022369804642555304037489176969957615706082090803875630773587138643252090399590067492333240708379849183534714414924397870283581325278302574967798601206803105812494074346171545681451472379917208591045681028733876168181859760066238836794662205959740619680403598119957433704814062847308129912210616371418908553007583680623208991600227955592861954016619976023896589164075460062521005668222091765709592108493571037914523329017380737428425509535749982399468085235248555892825727825688912820939056963264169707399123112609604493154577210522629702029786829053426669341945352469177268914171612762287526726600266043670278131170789765895481267563183030235650227244012161949054007174284254056068812170666125699192608791867937582808964457824549014776093820696529374501699632268177420872591036478140691756855112849587105858829080247542924312198077143425632248129412482967381371753828866084761275348491199481570097804723805452292952349919564910252848303296410936625753888292237621365690507534840009509734486720242214697907560184717859330429240814071943271036523801949749094521491624493003844391466359420899387213329823675121202651175809259408348407738891138927555976971122025022724736365451739882502007929322505384648104427525692223988237019586685284357290544413904493411580158244111494309908270943387694317046701940915419265280633039626250332584895394775827002420231028095389499359143463766407121015593104889064865755211563237132791828180642902999567590806906340338847652618743150873859410838196155427568902893600507787471201659594990931012681445358560049479215960435573256855872079734448648423309879101088712478099590639009746657169970544931372805960129840655556190181417086939688760903714413243198049359233878047746304061477035896377478508227785451492810040603215352596026055752303597286443444784342462134374360326604344480565946746172124335201119473776014211179921328405391088666797309635063892359353715092928994830127202505617526674733623577944731761779619792875658016209481518515719394731150055297980162948998050520179307276585557490264213076012259240889148078835540256885301564412720499741276742047146237720294257106662148714284543589188849520092339661099948055073325751630747576418008586300071377475483230327043212026509502225324765309527637615687941537547424199238418877034439320849624870030744129948013314547720704242076259424500227820251396849448760171876316418333364578294929279077125086778087224571680447086490054621142856322963760552313222245948188939158115279028468280428000195094892276692594651392798202388797914586738453967802929949047842437978929477585144866073100243790235319334173481864082528036716468645321765494031287747435021394340622357051746487627346841056384374854486973128206220868789366099684163968218417164522575748236485510894526311668467800475788386242928154260515213275091242741885901044403062949576352928339036578991225301528815835663682268076583791329032454797717344464716515169299685049572219481806118759333010104500595178209813715576173640210020101876696778706899577306565887747550849241143232397797767884928115525870887278962777695202292946298732875701949809079491447647693339611072148544912399619199967437758145523715876874824329378879107085692158786022941585079854371807269331225171724018597813752875054984717540583484678373658550690580879458211208713135002250535294573671558483844337010875627286189348602622830530171893833575613296652878261909060274194792085052486039068903256723795440952966206434581327055401263176152526176182141244389483363480700637678686968467610227576635280386562061627444544689182699476847922899502756158329928916939464637899063529682516661366410724118151520926089932675768073729930120221579343162860826168705542792707136710333003328118907520034062942669486058664849907963304662534900668728485775279088230735767616276127828439681143223308570006232942049802950872966871795234566094342923999642627304097477769632598516221035515843035496718854221639772769951469936808900782529433595230391870714724436024949388509845551171971302146029540868558763860825421942831277068487994213233470572801906883073377596940064257481857018172836610660860132352034491648335536668529814705295326199064405640824493708256296139861682170657462565464378303323159149237538606677139406543618779532837897758939333516691241142347657148133475815824392425780520159542798244645326027349564230256410767463179243743499779380499423381719404474542573725275289066017117032992259658801960807620958983754904376384037614171686115008566166771351608005314296668674199298863043754376660724282232978499874249022159863259586609410107096916836113414901312442532395013531076147784149329227907095037346954762119729060729106395258979290702883514221226133405876309666951777067377575973468612898597473996558708880014680690475883525283470558693054434697836732735056254244189951263037689851737468404800519229608826317980541652813638543288085769157525074710993485610767096969482273470168899120145262487968465719101191766474101949836937467530261204760231393331553339200467592504013428213341891614308838889910752003427780934936388747992193882540309229279432003476234215302012765070364218184901552691739089872467072294608993219504357668818844795250712756931419688474703767416012497848058783858041132242881482528720282370750205929276241795661629933321602518427104722563664938039942481315346297919908519045475583298839248729368907908951737635926862975513772130363130701723279591983368207393163931288696012057713746731134798910362241839535861151499913253445149801708344550276027909531523185712168033901983947906805215374482533577047551807811534310493536144187428956868404348883931698301930611199862041768380584984134885542587169974903805123806490832530664710664355260227355824578303554662698224415728302011643753228599658138061352752660240485843304861287140692952477969745984298186655248315414314718883052071931126901682668357773219383427011576361919531727924985952547662495638707294535389134401271780150713738625311957705829680311244299856947234933290068349864681684448084434671325914468015048624375211046537739184944680516710087697471035502367989035196814613168730486007347917356471793326170610148262237642556297880547388511811319643204492064676721832945817777811026837562570883553142195634991557505223378502236233052472497793250150163882906045068276986149763679639152206733865898932144170976130263952907307728060593733568016363919520715511446124276923097672384688239269813831092194937933763782358502663132537479344843781265633429019798595724215146016646487205676941713660734806446056309205511627061697169228109970662028352405423838413055049012449376138113088606638383647353044403645797244318942765156733694270539848219643474585780867071008071791888795139933947212497303225026900087488239369077079433296187340818413126280196992712952629795447800065449863218741730818350428769655102566392060847847413346299751958096928141903523304998025968107941639501428904616522586424683237101944379176336766175103948015154689791043608794201067549318021279016242777963207516375869133273629292969754355255013632730367809264424650132480485238045789345872252717747204159466014779602641203099528537332040206632092457205289871009547697153621524974502761882539597192411312818065049416115836629246703516171720249764507048893546697846259278574383986379426035298829127446094961806046334023048477313847991444772460691376534363152276080246606379736684935608363844647890833149276482192095838210857826139629682415737260818845771922017223604528144103828283073834131450645815035441618614661908674293849505082017774795976609992909002933569935014185020233229376529368400195418627514678604303336166371757472713835015457183556492715385251406529010584175549937207390506532232209270591926435589176246452180091413387764696969269692216286711352926733728079971758197399616823370503221825879697155452140704878778815847497954676524928276722613041427838081000785351173269490246118715466790109222576352120660668932121946598346473903645840716051595454023564985602763838404056836739367759892768946200536513156343854203852620035763579191655719641362688098249292013360564094852318540420314269016672088321028787078913439597219802808142271069306999574505052562790372645286275934875026279529666841105664068187091879023695480479036059001079504116582678354320551435147965271334335108564099497629192420966624997738490834920538528198472087492192238151960837773465840134392660452898167313279401295575431450592067113697735551529230432265351004519690035511975997593097195872086330571818804339889887779555366632454099580226714096193305713265947453841860865916034146811481798659217347264949643014452825980851647317499741703249393772063790945056335045810830011132932033504810442215129092563150386572095072933208540645105106624906289768732503022096024792009350573798564690148222371478237272873661675327370336747885244172348739103263639091901537156826003636385908500795406328789732071872239173833011964620748173368575115916522502040939155633650337408024709984315942254101294148916413797075084240753322301312256851165187956326392772890907654719853885747415884015694073366849915885646869541475258224964186232014778556934315196463485886845731535749417138512097120800652823234772389768020130541901591164224611189192955923046754148473234306595839169848235661352195678538809559288339313600880652349826430587360872030133176048202536401766931162500938369001521907946080121347363134885152394634471021381973973020773799868827609872211834129359994635466887877995244671974712874698734826285185640464465080447677335423456813654552151592307939318694199254167814569843709755851666148618101757826226044950130969537628742127041202545668434171095427493117293434095449910981291619892358297132088657712307886731675726795310744218559112299224591391539904163523787985304192260212905343104438654989834375674247137923677938894278374419258870533213962782174563616356411311328242173177618558080659632688927924206908498572080458539660476875683557530621122308635763551382384937423114124571744037266483439785927032966678084373262821821978125947060920724368215833328824655530808841727165200504536148872411514203255843651117328336320660197443424677111163660329844154784818485614401780734620098958946026248689241539091884150798294957761270854379913086511730837121967507517631606576271875702091850113025785587178440827432088911610089847041004498006355979663646137373462614817861163774282705543030686506250869934848311640364610270555583321897155338624033349322069345103758248192427509199891462694476829682762299458420691912853193007869457099070240747200845500714901798580278753190768921643867394797723939644738485046328100636563255834169583422221243846166336616632648409325252289502851141375558881200846590386942167592816491241051017146512720796703786614655169331953583233215452188896827359117822407379564583256672969248254571921566845604979411771739635709123317249769238025428612549796059598789539829748777891879138808906779284926128133048436500080673249938653887335019129866919502641361364765277699907076868781570201768827307781910657730829321944864663082974652761294496583138779839712162757529281839563045612671075061575903887111646737872205880963140957844652288084526318101967128548981858172975119626094571136729194453406684324596874649168424715967724328003036596683606977024855219815227923682090628110347516227885924018799905527385754567454256889990987343106373774028649195487187563980763407681844455294246923753788337440759252132895480738571072234229175578801513275700906636140017563580244996866566402794381329605899367248911297988819967524738222445699651459992189533147472157332393868586348166751876270724265158158032888992676635988198939710989976720082467150880001798247788354961737230595046773977338075628238836541669204779690965708293177065085139498998540816898511669174460263722354824628283514687660579165520021153854716075501339366353496621841476263255968844237099767923514656442985527962828347087762088229929428728437819352244179764556353915687882461305584217710962757674818500477840850320385345902789839100896615527084862226207746620241531402084049431749934393971863768331475900954807935959859215674151875284459435399648115204658704554615203447976845251236565790889411533192060708977242938219834038258710588726725632137628451280471381618802833262980434187415730244283843973326007088145560385168776761763775857261891934082198984580681322664870626848067200737327428877005412813438539868608573277081297546452179697767049505079453587777872839802851150943665978823976410399711581527270339666083887097189293116562598828037584368419825592543657696968937754196662788394739426363363209489676506262785908057051897988704116741651791540617458206769338603987414509910538162834884281551059525285200495319382278924170041590727061298902204416675019378830240168282126502621517221004946559115651216622629607856109957748945958476581223800069610636591513783405617086955955143157789799094226952074206980330034332987979101576818923025305962177668151737976780026529740438355831960720660145794334658739772353754548324707774053912735254469318358298767067750634301428239324353676118300401691422604637105972816349761853566577019735183399365909594676941882319339322540289469877693168533387831113924938667107065577656447857816608910667453667652279827714795308487814631473521394994024795109686392250478665467068673944021181539669995647269853704710573242980431769277895164217356061744537345609154501353806658396171034798071351384608893024600703964646963522738117444202161624749060023534726833955992786831541133397418279868579912936217158514431539598752419769324182324413052762848829580281598840715161195093141445014389584327556397045145177087415451611385568437564209171359684300346503503560775227422912939977932690172075814027740493436519185504793903064939439780843027010770973461406509522279779257965323355859011486964511531394425266345841252335286525554101849765973535859770336506958773648036719226704829805007254710280712520109483682775591648226307624950958883717721018521644228983566294828023465339084700499633458977813324556899010975329041286532310772806750377290102431684202899794867889530280564170979757090669859393650395096870978126601063110303052652626155996852541555017026057327401533781817080402111298860234417045035872560121086381404487427525005786518937414839131628286669882243146653094632045585673931637574776010770307769205812452427660322598963890125020267818983269504040879626025121906885573582449527205609526530084859026110229093406447522239417067578057061624388092643402231065390171810203420579740684230681092471923704754860111360982739403890059356617698149242403755184232047089234705813298425155168168337720048043944841408271990524181609655277344084927565342978949295881848191337003397890870323945168288463524501190820581375489798902514493471958626361667354918420861782328334860070307974385982769486576105016484795353734888327064804492413748690131608964563851788503128397334303065722919725925601577437430951057037337466559179985472048678076989392137302751511402978110511039929135541526766770845954630329748155465051811323637990839090952787129218811178301360423967700909021798628779405781068661033709492524910133141103494813347537683498556978170087059745595487574070392488919953802490134794867939502033700189752921084765194740213142409468499978135573148581810543050132180544455271950224779363643566236099632994556042245733680622140221875858884187322479015504112441336092666191073908711044619334386852707499714611384636594615551148486684850286952837463179091747461576684796946664070522936493669405690541837717134846547570296920739306270465751981583101460191822017625577650291935944791293789507880779386948688378688680723042745968157834115736496004322095847895267870227819754890521012666124578588206482489156402576390080462730570212012827378596047101984698318127903998703088254585530474485363807508626241580345865004193103574065577483608528861946594147819422396877763397705291334091337037087514975138317288407658915303095652687547851655324813701155723532990328515172482761502550718653798725011856228933759558902044992766295250160882365073058903279039235416240286195950570825282773271015254656939249721048617824786316482519100050072532459527063516260757786962611095302193764698488557855888306973083382373579605113806341269290319824781804806588860865720416221386398742734686288798080684651998384254167080133089184455867168741302768586627580594289011873743824879735849711446294883340130905798057487885938576369261902062268057448091177936732698236179400066566022603406652728136135284729914641769232582889649901322879326720101026561955371306654729833675592850809697036838516504061800557171458563883507152628869843575313394788357301408195155749375057049621536142831709482729551026430459778560008627553823214305209273880593139224471211125062031844081301906131443333230492594757417432908507570310965433230258998854630616427522490710140206892698172049947034052160682528871092113828192866004838044732240907470643924152187251338887512407671332417144158086212773496695684762655442780923576930190706881540180951764571012380345248346857551179740825489246031759258990238904381477582752965871171250213351071102072920219613394912834185822218838392816397212044995163344321389904674629620044350231566529521984513204043484949859770309183061512469005800285158007218486880872162246864103710268645442957276369920690662838054999103518981828697296606105164828012252796765932983100701198226412065503432118813859956376398956101179648570980595760810487227559781064748619952489744702450143101520179105759805335713207601060329425432549409287376779419284748414997682818875211095477318901250283737699197771844492886341331791419570295169556257015965818929924229586538059799263221930003007796624128539511485292800281668358553086861271276589863040697637688498887429318008946707686781426204354723080952176441139411812717486817690157942407508802265737906714560220288134921947018459272690810002629028177694727129493997841294340838628463558896293711487297641645939125107109412348949502930853308624540184788021412467560834274660290568360639235860200270523551488092421625149202091635213448502479256924271308039756457513956882008954211013159033339638555990615195481449697998834816633173182400689819675059738109905240138518523161369753458122891930938411042305800764664356630051377509576262366695452265212236711553495752991744641829387153459241839024273110741056025611989360269556153114011409126290322721725415162849912762896978640457540029820751373875334004046547873523739368511712693937942677884159934463366107456955278594066904290843429070821363586695520508161544409366612989720172405998696210111649536068834367250131905126971193265236114883827331898206278205429890279876767120756720626021092064359500732314864800519662301043193891676498021128217761692859145988686156294252294709468528281677668640045607924875330509277704610916115368975449060635823121784855158967480769273002180660191994083503689381496171554952845193670252536315059187560688618848471355978494589283688879062883256858778459175969573667947516447505637278389329200871885954691936640466744430861547039752690189386499279858924796009491230659902139230891584030732684374244367552545358548739777895783848241412518230708343340719029320984819896962787305858883765505923716230231857089461503322021971424198737567711120955311830500971104178710013504818901146211043108110865430689961322160784815464952648508484185045608901169185904044308611018125020164737887639189279287386158050566212635366043991732371326047557294083794620904049008682160523913500249342444456031523087682148241167463089434143837788351934481835257112481571199969331303010504554378714058033851912900304068462249490909756080051695493321587003297529012625166395913928531134917206086512166595424681212520828906817987235314497433081651086476618748769506069397400222759476903714557066295997903549147020336461236023458714170195915775775290646416481827435057637956426290024345319122547636188496634553810715452066046148080242750734527300293118642054771374929422409294955239106963850239273157268576507795167734519277613344449586647675606825390400185184349681575950881748305199006600391762998224219106515584489772116960579775353829430755749356165460186785161995342227145811951651738709520787721633951482579881914367635869722338266146585044889998695314884840524523574436692052165867198568646162216612760833669892820490636846037891940529130371028601504752040569348957291116266318015253434019754771780815050879746586646774017419864331369921962348584376204664572834772424502994483248158174506369544931448495262325485034083533396744352338151369685605314743422629189972596276887660296407771892222200695132906489720550804119385964182306066482981798216845234539469031407762636716381376130574324227517380110820797300688693977028130332052713266852792864534190742561693567755539636204162307949359568863951977703881901627086703680009429272427791631185720604570034156670973609388022192797738489501299369586575568676846622375829685555287246490356154713862700804066453019407455577098961495883783856619609841561518298567827616323953478718141774560390208370385670528174844420660720701338318242795460289824855913816502848865654449505470237871488004715978137806897758211344231047496244081745777031949392378902218150730614588326146925897828476493245280646435274725389531968267237290928205118665046559315446065019584829054532021894772893846911343824729967311519322802236135946207000261853391146625508922451443482385949220509266304578405799782875791485745838268953098671367582548168352421078320716933441464531003252566812044874992143075027359583130340387584656230122147301770777320488043868431209808970716451416647537979600385120742445725604655605886594145649657868380446877856905157310705515860258603546405511741117137299329950603675413368434591943895819159157004494522690050584894282290854467150908414497409272196556583013610744150263089247779664946781891276945636278449657250941574035378974208232440920375054692001807996747270357510572842090761455968389326268810909835894620115614741744747734681568692820203996215921387596058675543219850728040815992181789041378734256493473832868922448372538719510272452480951976923950738634580714869436145155146795542008339825467425187642418408671083892967105260808893055945601071850039844850995268291308768363890657314992028775620882077920797524919340802306196578652073042982735944210409199813982963553200308783800997809840790124437922550897468061545221245012439566131274139436208611698360043769792492568591998751576286679174263981726636101503180605970707342683710384055284158673883316791594482470692429137393564734844133871930910783609861712817431511522875466272195887865067024029077387134598573536475882078130722115089286208813631984512709984023483544883714587630936739261373067443977490333483129892673032788443443446290135832175025761582279913676817934735808048381775854881289835905491653637912655353824578435590711373314875649729977388283741704743140106636060310373084371555412666472380542136469238021536240372098072570200465143450847281839641905231953445097715765176190114931236734673982891114508766532167863988319480283012320512635797216181712722367001763047931103258825719437457312976331515796003414726105991480185629561564597147303483730815875321414152651365238507124759315192332046572864227231935184490571854151255037151922300327061379513546618019437212651049240730825433269914820890530945993256741735469429921345021008978450156504015078419296965802360008219757869785556188207282882386359847195248431710688566265338362753502030685109412006375461987356509814693497594190564476532658588435994601102433068242420623197448540785953582148259297491643718766011908183344094576399069754175722662491178445574192540065070437436272910170400407879962490243022860536370020879411044621751819414350105139469899396335135016164250305143715333697221353989538820829798351616557637700846525047155923735809217007651044993381084156022092783899950304881763267216483131867969310062784696913086773499811934706043832846955758391467838609624239024076184598867887116282149474997860378572043886093625146310896776368726547948324755348205219911199259140700875224896233506234301883476807266122832733231172091280630019571505793246290301376882499493347890837486730945334713396993778105618942017478578273038805228063100210527558357164436116993890241308918730959252028145274776996976777643218906369419320715137121116057243091137522999194396252316062240426780004142245816635256737071514798003509238869331468573651389416941246140649495033577344790403934659975953601075022115047393722572162904594785603264224554014822338355498223451971817781899871582792754710952044985798973199165455403665549952956940448649421949675306252905682511128336024741213529091304064236816694055008269507990177147228970525700420436610692775462299370263474594528322714864990176818132836507279170302689425025637063946676253492653015061324186478937667210178754121780451953655455780159466398630974171889680607726903795125573056832051479735661023798219468565179162666423570165635453273513455739071699870272346720760303633894847783868968832414917829175734230191340376588952379261535687838807879834426202122930028048274793455451500747478859869582378896906458610592109849451366271116493411007373959605910972830254142403515296010441372807934201680156513985897449577432865398901694690655583647933875201025335881949563475553247528793455071752531081894031467873493507812293390357542427776918892427604155971879902960508289421713820939568986934445196814202058619601481870311115866920931452777958135302494182884879134429540110261506236915542838745675607788035991476874987376867959738840581089408917463257473722773527323627529455347800986867714269224110016881286193388332894797869417368514246617508691446641789143180610535223975137998555400224198500234545155078706924428180178379511533230521938041229064239063653850586147178283415331270471694948750751955692885409117991581162366582741540870205883568033657609409090106642834672929817489278060426872190161158231372237387283084197275348975147364266756994805158918384075876387076206432817297688814816623487993127815764711761653459724089084717978667760879075759207913038401388279179303004333991970455169330743202153629954822779994004602723331913398020847172537605179074739643073839695436685729385364391544155516814517118887926003497524645272774687667731712752971108480518613696816989854074713168778715126280569472797874694065366824033276710311615866991536514375939735149078857056873007508378598303302717518698043028009010655372345394326623718711097104926004490856919139301336344675732427408594951805712756209697436055130563387052056811117685942089260094714913322791558663020894833892944040733427931565336743326146347975333351310074388382188641588672748928960801263525823151527893037051830514156344141813000302209600748961407715504159489123738417953511868997400576245664954781965236304146396640771765754014821454835139592330232690777445558940083379379486818585215115299342115817179288280187380060529618293586861274893367945601020485830244060310958259079546290761688382767220914514298336729832550815137548577947941750777006375699000193956164970900785510628424220354109603410772023151692251070693417312565050307468034620320385453339590562716720509836600645926151578401570460476205146401857832257858033185146639473794224426595453226682898377260781766027942665403211758024833441647367762628722258681909704847634273653831488961938862255484207956715804723109590886089104280374023477336326470114406014731685977298660094703675378002741930058989724391908192791891373553650355857870047410505579961664356080781748157052324626945326448848861336877962460799823279783268497371953240044134030041346547255524842259863450496301232571660262846566865184460446766473950689094046760881347917950749140787107101468921265994932547362450713398611576937053203212766163853352621621094475804830985653068361323511837772730862467423929933062880080215146695050487099800583590326727274312167414415126065142019276995433748614872301740239655955246560985768694099339605351993701237773288033443342026712532399257956690706024795522832102124072949091495258232127548063102401873197342263963338876105440621485680878527224261260916585819181345714939322139255267759504655711443675099378023583911203063219311457958929761374460482534901023655819004504994981237070502857528693429345682601717520844353459700257745728813011261959560623055090329988691465606699166292207405263231108054965955027362383699295905535047673295720586089079623897351201984855259296630611382950250810749827854511668219199219311122197722657702287837267598113844843876213268672855185734916456611480830447864804458111654388060439562054753172142988697937707709769137812567716858731632864471289057075828610482605666748431167587301699984068755194549962927561130520335261152271338167896391058049222043191569249445135670716248517462489401295567874854588418094902388322894079471950895495954241996054027520244446405021490033198159343542870926198931124565584273231568372153874487159080975616305494205310572822918730541829642834933946516493062652616906936519471452849967449165345067370782013684802523569016547356429151816157886251813961126232198050382801240464246935926739822214181066110176941927588599767903109189402580282391803440692292483785079432716165833369686123334381960412447334566442248859735174120945394047055644164409064961003449584853813705331091611387417038421763857333088475661258962693258286442430729535559626456889982716632608871194112936809628658249329017390634005311968167971653843852395795019037430003154827538197873978381417852172179321223379192235726597918834873639276191008437913184952540832975968823378867793420465840181055690012778607028898744033927759568057009087588468011753291234059333094495500792915495471229679072099194975111046661245943384882319237572902510274034983852632761571510860025234557106840480383236910192773209648826211261844346068193940108586090703021798096134762546732515060200668735986372059748821926680650959878441509093903507356553591638053582896218663721936318542713625019762292955216101601270254345383615511346976220706496004233216746630645387754130242473662618414326073141805522326888742428426540882809029256939695727278438060602023315390922712103457955279896495304193785448089850228967175876591521357402302360786245957798457093175363796641991187525228819937375751176358343887251580521239118215513365922744259703571486315054991221295985040369225256070895937249233695160797372724979940687608650872477641976318870272057896799736530712290167191131305580797323998695060582058571271276936847712470914171149674760220625614889806017471623788503363896880987057790871765584352907207285434050690559692705478824357022288656346101354696785564732147070465973197858960450594930053784776655080753553734973761271610476707140706704840893519626156964647642348156474280337508149706763397612894391718259971123857759380430703915625258269912215989437336607816654597657000794131484799638193196873754130107006481845234148516068962105703927741626857098528173885026054324340677685530943295137123625668831674696827488742617549856416138242290555211495323512364427794751032565055949709690511666549405232687365509790963154642875252961431892639319754569962332695604425588335624480805654150280252244591341454975375383714014960126421625769981169252550782810261567233942276769574119519460174215642462968524520642923561541547951323745934598933846412569328534588126605891260670976102206202098536834378977157627455304703192000018879127400901284210307732148216124340692931184254372796640247977726064194150733267128211545470258229180323490944380830227248695286647177995890071227767673232602675782088399290796108456080214124403036629354581424160857434236339996866120529369463041737974718709010771946883349201141504238110683990234793227148616283265734358275819065819890086970628462812829746134553898243807207960677484565862017047394611597006803139806065548773814068038108613355244642071489629632172912634340052704222876758378939826948777363212748522092386610690291897055063634723930939913593448921562074132180618778121875999043286405019918527376730678730913000579943989259093933296107101444087735940428575302139148872488310953457113401609790486509826803798516598234981991535803246926845997723821223818431763623522641219173005841224374489908218603973593665483669825153165093466638552251424594641274095992584994916612782993627346066347645928426841885828022192800896281818775896134749043781847541261261789791358194361216736363371985173604329697767732372902880734785170376743556741822444722214566544515575258684780228344490755995028473384172023599724999805475788351797814894484849886733977791826675801547750243913798720764810416706143476389384732078319175444105119206782108109364616268382753979166876687189369105614125570082445642187156630442305088360405521900860949438442362029292927250333693253636100069657559197843399528578831370031461961107505652796050663391211690048936773640660098533260240078664582432704909854994076122442624009272694857787677334386441654835751517432688337416067997050245211041338562470917490738194508658550751801030648723385078511897508114749652919219977320149115714221936678386678891518897124170496010456807671516145699428119620489519810561189909480866481913897640908920200232118812853327045828219767403064374465960556146289890633754125986089048135482373711318038265853542174079443260000630382178358564295380027403512520558421174710066488365991694294172851655535829558370672997560793346488056110606189016274321384363400301642411626947968087100244439883099012071533428302524538427940233410057312591671526680135245001226543500787327771453117347232730154498392497291970274251698467583305445903104906093200283366737224752078781093145116709337890151807481160241150101976307012054806814627991281201279721346239350196941896787892604230485658625313204710628454215440493421874452600504778612407213318804499659931665185039806527798602978996292137656829055719848830977774536298553452061862481690248516329235264759650092978523061424875778790554036251092073129137135238228621184265751237254057348328311238442372369587358107490441456874117562096539673776009741901758039506091281575949906805584472736888339789234434084537434418922663276822705438303246666031588780749788194600529130101751140117117753847014802306659055201079356365476259074666302443023628664453042038483008130481574861856137420996324903456466319236813833645342132244054466637004294346651602407332335318039581868599190033014058180293049897504167693367754100510878072526900920518044887232209693849428649837926386086279418856511698660228312892907534409579605155039534023264052881242687341272603314126124755510410468837442381033018095677681265344423994139274435800174683421073298879720061832754314284142873657717835371130876524784469210720741287735685181449110169001488799426188222117101800459602394897925490605717606656970421186262610795801470176921623607835726404040406924097933818021943054058788642507329560712498092208239325101595592797904249338109739786494102637895833896407616181859458541815557437178222205408521532285471494113848738845639692628792121681826621013896515143511618821587315719114956762025832322439005242803791507276813579031342554618147378464623980991274760632059596800644871482593844917984528674407042085943841745004536072731447672350244481236103989400855181739537597788558866527790434785832130249754337457881776079222797341755169684017708412636332846832442971155024052433715154561312622082095865639367379783262516358849883780288884335001836838365459664465948342508011624407492798540321729162832009130043541408151986002274458083541701584596268628047513789546694274280924719639084590164702307498234487136361285075874402450705967166091877052408248196368713055518934098060897220905523653061940891210039283295504337914401062337210042608995754990330033370550657361287981217277885840520481323438902541544744033944646086345592046777294492723660123239459877657521502309679035701974574603848321811253298675576852084091752915148720329500344413562895629277111602539818008870538436741785499018217290331562871862428328600783439446468977531021616263883789511397878327747004209632909518459115719415023032717676852742446776605392988367047195955558788708528536149131199694268135094303046311761646184789020719045856860480938779785757697810175114785285665904860006416451092673424581192362226939251440523629895309528581836002637675564940157448443463588574317859528686817534562676925107642983428435556173224099197181431643951089747545919376493477569029766024990288249812518904916097140400018330715125293854137062974922678345615865984779466661937212136428352608166072645557514797376726197869803606159116032685311522032261350908637417107167793106682881633364591535263681532570168038571562940036042755290511619882676102817965068853918094687501810279552258013421389235796286440680148797518911121652935929779393579136825131842291854710648070589191630867522009217098352551530475498381284636840734597492898360569926302021943035544749642299559560224285963548678960581994074052662107589607540559305143000609785552824833972054335510325244450195871066069580087037939242191907053705645870966850110591825509182896301997072689786110155569460495230427439589068403778318017668414578050362641808433540104949654859899935036826152008003689745129511818569927463157166929100398578233719909131325920184974429199098314949320451015690433288414216644040054146929636540679632262651378973344333088720024096312814546615151169100509181873074582503202682314085103338453112885058862679452255784763235770471242541057965109285326021360792368384579654245347874382320708011869701282814976524636324296914958228350492728906899773151469493131303183001029730214840060349034054233773502924942068407765192940520445321687356276675682949443859460491447600645892534916123957218213271036570159159829072128791649506738521344572647523857826262195563483706496090195570934245232234497584802097023313867587267502258912738269826581696039647305631639131784353160445172162748246309134449622363602915042314800939189520687594201231784006023987820591661228392544015463581469294718928379904236597277461920385065025654000175086490598774676193104981572284498284841027470337455097663421658400854289618505128496795104590584609047153096521052787994819595064334811185692691166073773630705954308173562893481262891313843134330611939352588451873213874785031266826102628860252121475362035753114159605505410226505350921473433598955908249794554963735839236596931847093598674965686954826012244699952880098398777891331898933413700983336282293143615667468954192858379753949316952435910059996514892316959202216480810394560711999580113092626186227013025019606632508285582552966358392642553082706836847801028961218366364779449361385245437452928892234335059787497588608193760407473519940801589703069124772047193977638350324677211236237989765174596534310035239252850113023290350398949754118154576239008977484372361929029659837391618402555019570529694108350602370883554048535991508243374796819567279109791349277031440258538625440639277593559699994893960952980821902081478906806609550234788242056424485598076027598750581310994558655603335682045612005098310721895848216417273635975054654574700094984827761938978621251902680405405826588828436707558741478920929056002265173036478837057302009571006811261159344218094897643387040341374762250324889282244846689189511663566725397213892477629965413741766237198993602550040744718046185419465442453554761405072321692421843291976310680784978692829704596047868997562219780940009594125550259995662802642631828724503486617493725287911931851870809718377238750518086159172138836694308465995797005548363655962874489134705367785143820667786464192478376338593767757772908742178239796774179589283116404555459265020225967613015838128860906658595861520156868000180507256062957654216131132236308490256707343920096528010178572120958379545977122974926599825390251524518818457155676754142828239783435208064183206857507642248664281357612456398873832024599768501934923516201758588156370760605978639641255486476897441372226491104189075473754522934173039222521236322800875468161831356738525873804405154334969435921187872282705250029582774042798673584350523112926622013018785056504760952560130396362109395848283994299739766812781174401815279512813114269715119089907278556726368705589367950652809538410845034741942481737577058977487434259588181542468115352188298738725647527892878603618848108213646178691980555973233703097646638280707455228149861497162464280825967125080640945994586378414902133958396187361172786552102859950483546389990923153417386365953632097041588922065053270360877549553527038399451251954024065539194441475681376436410004169517844092181257625179853676643626464831675348289853239235316913940214859302075937767108005217487480310666111522223666497536353687018594676193322991500351585103769951312230393123604420508054933140210838242781437404827216820521216610237001166618173213117461553905360524493886358150494146036869405935222732869277210402043841004733085299330079270985874730643492789741539107902534304880090843030876342914056879625094615372370064907180618144311746954661571792977960962768613809902587626894587582920059361503805148184520792767434836385317138190751346837569112890470353676734557404714521966021171778603951075427924903590920210432326016127755199999708891715436790856682456082700337448331195487866776918227275671516259849169535582946516475388540766887512866721806642805318595590420635879978187277069587624878219072865709837494721836061072841528682427724562449911355355969837876061779053868914844959642807777298535887361235307584683133095482427894313452648344473034656697624202758853151174661816920249058099394358292348978092269360186770657599678955174417116256723364878625368515598799739087440754037441907707872166966139191100746002924908495892143218014739671435710222638275239966856992350914090140512004295117304426713022875926126996448927637902135489858565512379540389810056185103451566555778648529712870119503511901564322337842881873070281043753836678382326613620322180576406234680049959411740732190421237438506022055866665901705893463478237611220361319924318354984624497172388945131249054844104540844004799067199564066269834855844169443064544572784305635821743975789264802243014307341167278348352527174616156676516649146662059013060661743397316349234356679896551168979823325453032914184404297210173086028478778204833335695699648582545928401207723824635873937929206472096000880981053373376983897997389218337881198921526067450315277971314467283054262821863266735949618790732891574639141859594093569453058077168646097864518300585830717452131359768506366048043180167835713750291704868562200369122918972011995450879779627623167391290821883740272490358030467347845358666000982867048362178016510958830042987650809738697095390808454176150966091351907373934313254744361414722674437892487519520143870259429803406145935876281246090404657833945252118706793320737504146577640180027176243691234209885771464094851123067904460978804573869929744641793590906404190242277681048793621174721796535384178289893146428699251903871343339998172409642852200006374378891935075614197440310722921952673692276259383117685931261850560467373396528881929159244268098729253752103981475528618494070234183454223582968153985847401378308283266386025860847627439927848384441686695160482159718873046955404537742945603711002883485870805803255618161397389475113222188751808746899297484439689229929490815896667977074926585897663323467438187336966507950267387051196737942237151770033519355118819577760699365679064789530269103952309162661616305627401235018127953622650748944363795210405392331878122490216789755330567449232065676188049276255561223711100875405287610569941570963303327641497756554070824122334473778758840549156989170501468013250580871732096948952946717958092363011180506347485589952130805972168120358014119916475405799912530800024729918207485758151909062182783711436482045279485328872380717863114185747092020074798655666728704350652599258841560203428611179571875626724962623345956831741460249351077687296160969815027712263038330259981519144737975012968221885112676442486881144855831779647341344992522146667920541546616005483032806443516479608745621453953680644470562756531453396473369959230201539844107259791428502935831396779192556418006446508931462774319302065775318853828475014283467590286651050739709852333238265484356879929992816464308537771916308042150496922145296523689160288607669370809615684401304390987460970030272503722802909361369463107755099530464975310986970055063104727214370674884602129200748836251796173608648708141053065467358147153194746152165125456432330739075046266723663745234228966128044441504819922377000100210313393623785132001551062375138521462744478195971144223665648024746115481169092426298572384319417902922536175420139928635277836880364045549451686555098440148321020545115610818864488971193788449277535735083364478419982898370315056001165817746169069574449540579395421413793398752417360983548762518788724885901085634827327098442553089670192324749373799300502633910557666711476001384026430594672483749566476381330139237056312559852509325738739456470618341527214079750807682081354042927770712787618162094445070308497116207060819402783644674145284218306285709691576066833342840122382134267877038794341353063677750892319736142834278036875071362344131277393915857163850771051760494828579437005203994551736568861830850353491335301842125436290589356360702641693799612242552658469810552930589950168786488802024987324411109221991969281880617725565533013230530056934773901338186894366185744194591770888311293689700958877240840604193194844155181368969945626800393782467514468515489919008003553834820806587472524032331097493816949172418488856124521645130361822248052573629571595672615807182180439926235332097987128450088792191476615325743020935029363292817558202579336086227912001934803154476608050517079194761156730421244763004251890766689825976354833683393376839414500005692572436250581698485497535649453453943001663846351727495252539987482991137424204876065514746464009886939035859640799345455031770451504956526440186959603685271324294616316546765258983062651256560636435747829015685764317594908060825058552733230914723841270566940421854406863752704164524975499497272289090493330191887700973471829253933555403115729034230647702227026602828144668358151786865815138967018661904722120664714146808531720769172778033376685513211127992676982137250271374085525267222217284958446695532103613951963704175972698929738656065838950851913127636605405347435376532553197784060748249302508851004099741448966718841982159450027685382511595325807799273535361472447527429875272443390855402164366744146742499463906183284028165999528271913465774951030122490375658067018550465461785488619187150314875940354670085970592349007888680432437853629047364624888725027692973894360300311188434361160820242980448231885023967196578948846113086556098344729112634316516471872575839135226384650763423851102814968686947241980748557575075995200637857287348904381775852697510827477729850808248975249564190532105247447987364924403460021375838378390668857753617214085845133247316120752922706974513393296842828683394516293383919927644748670943399776206295645652817543739175097662617180302498247127503086285116569174084490249671086047285566787812965956408297726821553350636175474150451558376591919637781953668981540922445665015173245172430234052727250160778888179989224399300552647256858899421935396223887678354839057077538510342140417563916277620151887696307784239355474682685095230368648375796668249500540858193326934360539418232867415156775940068946232617051289920842979780958864911867089389009379610906696195508316943727628331839744283203511942336703075599426407486366053195471989813780452969411974289549172424280419234157310028874497739048505459312656599973259869828923271336149648172450663910114703256996518805586845228904987040836071231771865347608289162998220429537465944739465023128524281712759926282530286744076517437930382525142117822872860742077270147005173830990736422838956906944368397066345865056030374310191753087164361627434263329737234825210481783107060820440031380479106282800319183048998175156684264632429785363006932237168556803912235106764552841256510153325281599424114321764176806844117026251646505629298804991597645033824969525404229293533497205139156464089841396068014895345932593702306597058714335534766147688976624474133945673260235119960787740210182682890185640909578069447624663668748740325073192012815053560665526876510365399816549738045984110995975609007291249302911892324929964921008450666872262671781924452138618850482665460483575905762194952373972207888958901840004167062081990923946191297650706457336234996871645029691644046891155387970249518010442375469692710971121995473455904369201716602372576827320564821641873599773105975505314456075442665499925411990585542772537969344229684555523667928651594063251887699478050510609467011639027730552764672318277175854745654365398862096655627255027768346742431929817024212079699760592921229136357678965031472701240761898847045698514501674850899973054903579035164939310282431494239543779792800216588880727082987748488205099659986142434849962746742939894404174580068745013330169206131722294519221209188603734498765582426969814285811911191910148918916086718985172841934648472721052889384272524015016239694745034112213956421363579436146189364433411876982044008005052896284775947577296955422863900766401991068899175764061712125145431581092128406799573933725732124556884737166656008557628150760053392414328865252154373986402205723299783106585540651721532789531178185884212773556108420703049092737044897427678624704618116102758796809464954986940537183931306694003443819091692416233836752065488734412785930576219781910263985454887722621180679970757109557515517681320107891747391868397060066599245994775154376090740655515287451749270295059386102283556519482270103475672357193655373761817097069882492922030312050788204201923344069809888130470078052908962049109884528413370961259957549733838257392943392095465195403937499818598280887950366207531840143838055604596213183443180074224714264611615037927871742204875090787309173710487148397709670546197808308393866303621153913001631409292677966821627695950156762004411681685892440061571222712381382900351222436935829355466070552260066038586416021211268443922259533051493118153233772629052710739641634361165093838745170015794794607782260643137534823821670945686808464519802161047208470640522013002476989786423334295832046812955212049720043533439470464349649017664961132367672473607626908387630230797259303915896873932041540523272372284807265778968471766160506284953329265801722823397822477813428720192297965920855175829433261061848855597938568703450155152205620716699865988076998317094608349411103909274828328305377479357391257476386530178206263784515884039556796794536748484429686137928355182784220970170223788404832077469530513236198678331453744298411854385650608304295176056379816027701983952369247662134676965642572374943222293766664101280518067165781324317895338419508912621229797077526143061730979185764941115123683032983609643966039421820993880249543608989818526682386506336211459162301286314994510703744551836973268760199004538610562732837035365644154821620857241740759950641610397326008599778739729327967635748454775630968827657758857955426959665169524985210155677602525566549477003625341340131726308121869190243526916112502891711025598242024893211254423834298679791840388887699169958634236452611147786664481301675494041903756372873879546836344073876372798266460500882406209208458763329059535817631591127353187156952133664840745420836773833660247244035517798304962636795130174678367985817203840882689883245003227659980283333375817647910213641868257208662495807034657178320486419137846583007694961222254909804487635476647341201833249990718482473930930849170815183425280595607748160182792511865612938446520516528995891318712737663454184766763499988492681857104475790832921377323894730896075346295869531757379377436436024122422515535155444903200448520190014652161646516228412245403398442036567753413049212320173688244799231297200163890965366717420022782917148262772204586796226348218671472995365618828124307851549145563133930700976014169530210712719451490955231749799822353121939415569332075642329736297328656103060331203753640683409102088629558943920163125359775757585754728953074441057781489556929779950548532929581345972676044797686517483980288275030011433583008153260124217820796064532524170711654845703084016418149437106158857695844439599525030085449858661851526326238684027336775597135884258828141598429058432465327287765523013130442728695352149064524669896414058827205287226255820159158800463853756914650571099177334848236133076434599277464046016819570436437293671015320674880013651652769805983149880860583090792347588812275425171540499737683143489265030241504464849154221534969881690639380637727321635815961408272234199305601170843645225146298720802677816567524780301496663968691052227348597113690767239964817124124713283305028885834441463476403621641664528665990890764382425383791574060163090420497582563498754970017521136271640988418901074908669912581332406410544246102436561592838853984942181942656622905135060201210163024113087184037238044886207797272446230584081184045354277003335441001929896385190065023696967012505693521411119675435360387028974704871433245915499051526869211454068208933045548208537074424253913620059748414415230548030697565999500675377082324938363766325946678690028504972055396101976917134463598860382226681448773259863200092744573156515028589148382179048608118749653191890301600220672039302582859345230248863831858162915247760127056694767339106460723498016610003129196355275051926094818758524536733326804573077182584633332071145375417445515822833266591449314322175788975037045634745830515709272106756403130028083601077532433385046682100639618263354555910496275430767042731595092761846446444342944564905979820101463245948699401216626245365533939597386856474697467127971144950641278221378871335005523877321722546009928116331743324170627079258332427853122097314471902825161522972824883764680137543631235545549652741315700324780222798088903459098361220511000781853691878623250095032728301863855272881300598470510028028515892910816018452070833633441547580582513497408080645875104134422762768867071798519738556765606143645398830552388616394914900321072300472733786689345499911761832579343044765627879338896048529645984849221438870367689576216835035767112979424216509714211729708475233922988137601067308973364773165487707108691197521258716637423984614107938724857563440322649447054940680175369024485899847929808449085078444707527356516842293708151898705242086160252176737031575673096423321855926486299084089624510230208014424423160082593731082805900483417482165412840945761827710684172203272014047455893255340453291808425897523572935248733864667847474077268445917228837270570680245850888323261292118443689079314941130255051463860648223914171069973451650380048489593571388140535009690200209913447489379275951027848578266494696751387073065548798419240132605177631335526090529719479473706546794008552019269272916365204551583841371963365205152134354908305140206501939549037363772861107882459690751927410391777859590197965088423969242988912647698686201841722430009653318598125108869368712822660223072022303127080104159321143487659958007600181803140145902680337836537612632038256167334803344619881937898294663046974022827629837631746528727812049182177430667078338716411594526796458450722415642038624829959761572349519062278320902099948755013622879735527293008073420207874165985641569698634306602772708131267556319947485205679773827772246536744613912441435489447221170041794787593234251292925011762384873367543729543759282869723479419609046946092285327556271245812211198678857961723440593251783344625265631989515609088854134034782745416806514702755277362892264280474940503831282623329631436410509401958961062463627518920304092153764964386518249132844557932254223114278489113283056103865481926718973348748855922755255793367194903797793401597550474521630746890585532201595296796674759216233353426797747266572473513631071806086378815790003734887269363081634286061435427245657013275686679738804988583428847122444889346383665388471344520803766639498486104116454378304503445975858710118348786154871717204432877843017764569366433386759874871232825728230172285906874957936492982624541351434834567041893771747744948341004124593938073477187272926146079940544996478011026999755560516615597947061777323478449465083029468409377924570672743647311589290012084618721470888994279450593012225547813271619903970069816685375260139697126909657402929545184122551653938549255452428669266944322139789333620995090932429340505257017439210469465482182054725822118125685052309843068294549606808412810058476136562591907517277885869619422161190368561586974218603573752542563168487696574678361339550009844826679516979233168405432968876539941209294704122635552661989132989314422220058814175619706661906337395524879823133988813807266621053759136148932171916176631900848407173276439108833474234146490825663883940806809466934144295953051206338730216487951521083773941194069354712722298197110148293022438426483807849045285779368541831203706622603076850426567372520780232511806043536537088784901871191827910577259302378323386730713796692462420149588026026001003623810176449293124019036998216228977524097296042255892503125434992058159608385954388408844456650224521708144895632131511557672776399543205615489645109105910136204912439893071528178149969942610287227035297021717840262399569821119343134596743085435192587779077576929655617909626564872222924501622448418038792729272529414187740688696260115677262068867398383394968162337492395884315269803914563399602246754435150613636369376784492882326530232142555578199858997834755303772528912270160543448776236030180412358584044837150467900750489249486256851834750616717201686980346652023808074946790154588412146597724428687429024722234513502986381199572975296506589350243148390993694961635492201415413023638276909631521219937554149426470740462027972569460289777814788921032543207058671771162959095878525495689871967442672615311344049687615638470775465835240725858248680600900076099709634333852332789435764736946442037201069122540306575862900988018981250401708505046585327717579152034450166116245281832388159676474202041567103869462191940545293961512274090790144877427038019829178679508554181043962624184435796824306974026497816745908766563645826262109639958905976483238744477345903474489852125402828502394317585889983352584489563682859687668502269454528469076644399090236888830556388336171957794965248206284549934254573302051938279848254059109940332441056554522042810430939539519516230182878365477658346288834075536646588602314452736617687902059058063372099313547896904176894866443381009246803057439502929128702878737385203637268745666936195892246623859192652098141900493792565163980271699756538902941442479550172060055678218215152704158176636883841160017035104791066318322476284444674750781372920144548612280629604474270194232458629045299393766114996179317428294651499888189865928092733673521796059913594690477613724855204616917052824144130756543708008623630083891082502447771613961844161737210080687305422848595122522062750365073435105772531589589971544081914482815667740024280422398180562977762262956675467195666021002349005589500343434949954363360377917523523639473392426237353766191355455760243800855130990619433686416812694704687586455537020216264130749081831431951439803226060452719854733072899172338425399013788937986032287078606885167240594158840107781877219045351127237018547124537112952887651033976525776125592613280648117904191313239803368320957563220623857448716163901507535865870251521061919387320537272769976218521641508737769908169319482731725787129481088846152482382759432933499117994436539096690862363768294975673799572207478221314906340016946894371909618256030513857642022214520805594650573208077328061872072512824085027972557267590230825323255405374860489445177562110902121651719373282858820132726145521444742796332365731622307501588902298090685550596077346393153920906890637918530574846939879222542431254169241084833237028793566768314836660204015908710923359523223135928432965256396802482625128784545238224351313961463865242227473532533252110127891718404792524018742113694707955987512471966940091502632350611427681418330935588796274741588284521617604530211695693095632707297070196708675973282838992350455081780240345736348035778834834631088331313030474048458316381048524220569624421200228765058184835027545370226573960798974010083331353147877289478868751629633808418384001123736145176424634667949075483417950634336141034128159854287432548630783057378771247950134353109889645247738011155534446880465185434169409837007602545879607101827885092251684414619397816276797131523738208200704153744039178785659566911708249261415709399946439394726487609230001850189912612317272663818110267934066913549104026686901186685598209525184249996540893879175947360072956535005206251748808812822996872506797157951466689247596746837113209087487920014490692077726157194154065690042568010393978367787772698453089100170520723262178279349049494962508972375692871008406608980196750774309238456771941258665670548996121713308754529894498659170900545028455109948650669123090456185127034091986660134115734589825095681048051619110534157654576891360306283674520638323772912407671080034479376116249958603052593278412842677230736656448930817835895104436922055261089286142063817449647053032537254217928745717977094344016446330334984066003121582750343154985530033701248404667289081416223645875698096496277322376053181035393714910847337204674511257062398259257503822464096665827417695160551481456063451213963560394866953827406406516872680312528363829052316681705605825523290312403581702589639040152474479016247957178677296700269961114797333812472319922608876526104595591843361977189352425235001331007224761041095136921822315829500792199592379883303071733901408138154646696927625729350383484432128103777804589651157390835394832201812140821504416597867884360406233204473772251981956107632684365885668322062681395432482623353810380182744431197483702935541323320106352615177923143965437073898479877026282035475002114789896897274169672364381199299217466422966219932112064469144175843472508478579122610911940747730453035400383577175623021007503894847266386791251651098549314993965515437773096670649571130137374493888437458036969246999283535177844591363171576109757599966035054159486067129660316069535096515416309298773763125065296894350643871655703372027359287198657123827356595428606873283118757377293937022791403267527851538520426367150300167498360991318756383861655671235810761093665089424572362749723657877759073647961190060123528033551902206073720109322927148289105129175770077859248653149158443033905963659317671951847776958555556051449773497084323898324336785838453995643976839364494599244018031807638822562481949935873915687443187979196789196675603738159985927766854778812396275661940809840400068382860251505058234538690283692277889440841546822040911771534985893811738053663886293578585257654965444023646811965203322505075717187612499283918244077861020697608015616338934065944939584588588100971588783946695500781809195480652536450981062049307508901909173896972634666520094318478321993131934448602826925613054975653391833392254574843320878588013317823306992767000645130273397723050201055116751301048449337755104270211672935891961685376005239259132798278695408703844767124158516161104244572112334246057302208021663081092403255267053627720818673639529062880749691285765450374972890829709533658337897342640614529419240328618259150105212415307839816271969160102532746627039175849073380632483118715096694431092667221333437736027270066101006023635318042731767538974153029346799123067191271737276221596421142884144709221694391484730294402886833790356990852489789267620413257358737071571260826467511576404719066748853736696850918018127329450832473592483021639499858475139845294802944812911983322922890418746234275085161549546199921254156203345481268587965945682318633052844661207491622982090661755713708500244198249940397169086659156152679744044850877202026776567400761281685535074747390199771209669561262515197224454071922351008535882401005647180692000365345298587193210476446331652082813373972853482454551888377367224010870619031099495900987695787900983214047660812980793465023886111633129199751600340412146482223411925629515121027780994095641779929262802774930117212701223059222263601388311170547426899916656458801008332205321405199868226978120315915796950614847896098919980450777237890350444514392461877121916184071484028924346755025925095161691337562878222053051082916273902947059234544831489388690304020942889543519820170143459457758080581863114728564485328381421317102569900769002697962088405352707122647013964310194111326639214702643540849502433638935676552324154372321168085135206249663072853198462978030928044722238687224531488236964979208299369370829276187743005094921782124606986119040003134268012927676268790212975784867770756926830130156168589260518687869741694820809566732406048703783280060349500350964344382047905272267262188715983793212331816090464627213969021350688751229152783473394416720054320356959682129928350437172159392641354437091200049457798532320898566688877952789464373446026278090302715808903493834016127895611114343900746554934068154205780403708420554157888235090427130163815148733149713603066237599985465036244649306582825641981946703170716021508627903687281636271950956759935366267406357132847990873679444146838808589860639575937737325262920609556875097201038374817375155060102939041891660302443952879933507421345752945002633496532682242017644013633283437045508853671662281457307956261038330489973627692710090507344088286358320732319107304065059608013751986419405638276444531908896894193427324659166458544846444948251835911555591148563015338735394236069406107978699731951372531099829941750307059176499910762334415803263072459932938660645291131933644931281143365501775349345759681390657386837665410688149044536721527859459188443648938291033238739864379945937731160639022797652936720950326752303369441649610605200668897098641232925491780590732785184577109493444772469183734957923240849090251446988128673209189911518629497744453945885758148985645962767893617008118490268728740924114977623262433993791325257398750671305718334388361041305604934129623102517020375295271666089685453846623767510836022242749847431436158278920811244916081078027438557444399178523011262774450218784689154797570562222754488728611515165183416850569655136650248618225943068755084991449245716630867089838443557552031536411340097076246181245466230276242673149088639606038195654799020583077461586326972255779211287384179374239122061667135268225073677997473851646355733707017341243304609741226297232658974572855286575544922982042689514567744674385327218272200682324236891416163232225855961309946832522606038564701359479743470980284849595990486119635719810036484081938620806259346222709254872549897016818039564058098628211742505979162882287838462248987589897047261083688645815045346382708394971192625673714446987938226815541569321897148891532557040094769799361125355612841343745377908451225396005286695613523502571175478485761157997389825904514791539517390136904382020525492869970748215481418985519260622317447185291351441771260379964731792787584227066128649172766113612876354182743584046746403281517324632783490378934371740006160349383396347040675955463704778940155696617172951190833086398574182620736639667278521161791950077136145887239057717435749295338172124301545790268551797309975153945293937523756819900441849955899639003504424802277441830553232773615113702418833636759864234027925727551709303223107695991285272590313567524373524229926903211774037673367734100465346591930382389650055737664464218306378431847783205493853739286305563740475039925115634725935438210220350762954711160928765473615411866706109781436893229636801305652399985257660672781076834684348445519625441337829309209166741715598896668991878093099764911036028474030674989636173027864361780227640502133123146802009005070214956121197493035057700102838868768247274383304493903630028539232253281354267927201800654179277150083221399667973828422648262082151000643410360531755108444727041623257401997193442167631402311105670531728212848483486663486677959325343206542360998163672730982607832608614909950800499421225458953414551803453798319503921470988160585467452308942375099123730037026505439853352137318398815202132611738587253674742029718275812256362960107484563907637053374373202449802138286624338272150713039351370366223533310766409704689823890963273902596771871108067515914964699349746852066287476534810905224411377552352162484628762039304552056422623745756303675816755502080567734707297407570897441203460088263917758487645378090455933416181487850056726665819198394688080354860784804915571426746178152087608437088470631063971811873505744251662984039157565995740464207524199327501151861071283292825256134630577515041687734502760708189801999835580985595851725213110028124743414607264212662464152554329891771128768266529298327316673011210100364561013947399271969002060329257946084710193106576583501870834332766945556563942185499544289936327995328591606883594771064929228933643576491296776880099943957607361777459995849640642223176314143433773844365939544363394878045300058050728108543424376293461407034852842906230911211513310332766612000081004100237501384832174686269588661386304100476869904289881283036559304811830830290781503920695135659371970206445782951167890489487061181306377076867394247863883310331969427658195388583222674108174711043485856541067408661710207238832812659653981049233075069203499578468057616084102037343320883344169686654022801523110252205943653998467246792704165129033731959223444138066200467272421721649491300142577198101754132007517986069751353729293571761055394492983271330412605598892785047230477725117471454925392849112300911581613771041405514053440405591043106730725864531137224960690745175506629173967567646336914841696371921045136574562709000263140367182521020048737957664171541849240651907786558855348606190421202464636504946465630119641305570527272965174428899639233388408779264988005190981549012061774795230834087918879418452224642766894732448229439088084256905862624328229465320904592022051673620824471173100156786207952066149930396824949428519354168635583627288160971807874466015837068510960496706145495384858773834165144592473294566395487669446931524908865719459220271391406615428423010451177244043277485107123039503355289556698088760858600474213220921846529274078835098506465644370406011990295294512296525692222453014602256103796932208509459641148124847714447228864603178140197373018028910942150566671775567569572460107095074137972548640312734335916134269461372398193606465460476155795197343522726217228610743776592083005231402364736164632555321382056273063459673773628583452071525546314747145111769149653727847132395112035376422361597802770756368899387457353312376753633673596646599948122995500000089777274996471924244683456009620072011859378704339684807104986466618891066139092654509679245286738132416110694834595735217854530494323510300872531462028567922535242405144803568242333339978595877926744805127158631604406608807104456182367995386055912674164232100034450246692881242421531958344378624896765415162422928415054703122071979869144698135710266797310199500993869253945582487779519996888351609383889638570757835341575870207531578521652053955090809274319955811490384610657528926441982790848615015039073011480429958369249530417791411421351910292964652935708636295604499750916190221489090967711358409020841901698388174151558475477314020753523792755306814336308382197373863789175643023160433095849082796779498525851485513403714004445400572723969085435211074625175047673427974197846153572281835331345477392198738011225108726860246147653171863474243731034039739939333508491021444067199629042841299833358699259762511046329144097924537615898543597716662216661544594429661634780902726471652396790450232723193265844828513790970099134909687605501463065569041504618521416724439246511732480527723389869862360196482945126050014685998228657181853947944766537924083508059412158040325784305003891299071352746837883865331928714299346132199460369846762330986867333665300153068341743879029443050316280934233482984001403269394360942172367507599873826784884298598075903858875010639134874150112558342577815182641404359382368741509240531586696543007322395258399357051475843158421601002221936841793632585793194444288503415710032954608846235717088091292564022316816960464042071087905248945233345632148803294474625146030822091380887939448711463194265332995137281062089497987802503484204055386613396334729557317755298418827271145314155494560889108855262671686479096168677372397513842751642762441802287991002424696701082826908551542467230001300921065959673335368942275686587793119645055119334599976112436797796739010958059286223869131582155942040005241748873614046630964956003301300040637967003990332713594807285209857552694033285784871347345036098420722621771640015209376328078843631935736994937911143675547177224079716914048977324039832360094394598055778420636029589827965197343614849481030839295050715457353265341069997949346048199718095904253491432185290430214339253232668325652004327989018443201786265138973189802430246514896858698323608433432451273189023237828605713733648060584971949565432349870333064336371649716536735168780785241577699265730992446108807956533839555463965303071834431683047388258694999934295239893178517925156023047254087562709896152274060919268844295676492662018524164864789749448638163172647931173425201054626108396658613292624568600471847166756566056744745883011750845572230389848763980959316833412632381249055127757513349200946239568154603442802211027696116642219643301120636732289635672217623257498858765853290758338934536014699145985261217143814816359965919515409821826359708516417622276795426184115533252477193105772106640568359873038153397802264923157332917742951610882538383187906922068548263570815809814141980903002545019535082568765995736931600073218338604102026056635893458522027321380674029024191772045302771376720236694677399061572691828167386645678711860526872441830006469731596344593626469269938798261398690354061708544378217951746008732090245014702469670199964583529725544348511998149040948843836877683041456214156605612847024413211096593799912345744026958771382892201592025934282415942858412678421597144780138602605382488664124709577797712505271394465844388127293026312935631857100777131085364184031341430110814904514346141317044375550831101169688411451111704934588729982252306887685212503224674048403655372302324083487149189409193732202943903783040015793660507880783465891821720025122403195336002429947771766859414954971658587354721985224277578379111818569957587912161036373125308902696512371170315555038115635109603247072852790173401777751521739871241883811150602989041840798053226717074632131555300084965345181427698230429624137937002349521178393760520225625347614117175553854787111431658953918419364137884068103330989526152695606655404148055447602887589723361401518696739951199997693219192392796043656926062205426676001042388779258774843029636680520134607617359366278751851861914188954003884241737677403141726597460588217538268962232677770185190206385825698655993469504817314552939849716492621691276657140128312010277856128293313580088266111494673808883377762906253053264474877801884239661800122148925496419685594807304013968967014993230139428658535267745261639360985808193583162239068357500951321719523073784171399048494643142429958127881234180986310051709295041838336547523979048201666685088135427362034941592982007350050282282277692530145615249524705262450585354752291749820667109534370792092926655922372559172283724821489413073437460383485994520960262808119659934610856412689596003880452813410552092528200156817952156022584383064247798642047621162314849300019093813707319303062690538703760408202754822608156490093980349317356737017921434883560578260058110168608914699941275168750675815299273232532328681901382676390974626653662897136483398677644026230176053696832175222840937909095630268268861715240037701598491829924261889172713634763668573609846720348599993773324646552337891050433549951368777066677569462536672527889396950426581709649434173088065531338399332465401073773667801606688179134496418885387144833715392888532496017300124730400253371301952459336405005728800433531837441985725213724517949965730182639857278622646057926347525093749807521589552739800232685801177481714005415211993841704938913609679718170677868464908482535768726900622243733074145604239007083724360805541967371954462770756274814783648108513627110678574281397693693995900012836136300586609633758862519597713860284550373239750517266518199751562063840330819037338063656395364675685003003742350126869286621090330871220632394570645303547822519323951869080921836121702519037559398192076794750299563730291691442925116034363273195825448786347620208893267248261551827304514069521600238792850439323546223990487554263769771683644577764915658275032013821702833888386128304848474553293559832036305020351935550187243964346262206132509614936687526593171596164471987699016857393052033116980153253884188708420736017761765867896844815208867982384447135753255349588651292950019810092334645221467756252114217360523102833699132144793034360789391908092371077481866268193730571798038881086173519204464359103746594658484509460472507656279432655809201675257393942069321232374579597163867068030224100828350729139830336123738061659747445614289049103539822384143324041829154255034403204024267203832428510521893390397599565414243725362818046973735913415788598795516930743925885631630779762501546803971093070758114987214124171362269048113177460183165537649017555392187186136615506894756038343307997782293298467340944073093808909940586569689364984268712721214858256620424635444012715280676786053414318162150389257976221215359434749585137446767399738770478125424928220796477077016608179553868028781379174796597235104635410999962810208737253261567233030387868763665333669674760002630482526510091478055054357683136071006112008444028804744032286156658358444760178813917980926519114385067243842999869356522748954620771693779944656310405679260045564022979092780713677833377351363897036040519491822943079014532784628018798196036280273668451114865280408237948596408181639175071925401185673499696213452306228355519565198108137988469284470241705648432053516161263380741427681806423247775248630113667235683110553686843470820434164934194543383736960422408007863463958586111984919420920365389068628443478045938078566938250214974296087014060124609983917420579785017234598643503283411195192543061158848443000135955527001671858141400985698207979419516842077791915128463648691167751542692536465689342287827613276274358330204526862771135815312819266033994854160975036041109158547170100451805955315345572679841502507775110699273791904292097215735278401485294229701389353673821186243479399910845414297513694158949660555364036303822887548561783042540938182637839806013362623382585694114524846631978187541477016928406290929314675040515544853340894198824084309490731955334478923064509276903875142911638200713880356381536513030945511711669392275159138630559228798010771488574357611769218052978147047818791051460513546709108075196165930482920162854687257372093141795203140624322239103897267442501915568243763453251089170858671827876471481648232078881296554694418255470932762892497515218714820056493168737684751039132169762351776509398630124996999771177783124381022535693713636957267764884724410933032135175351671015948994085995893830613258979078664168900428885800418452700594965176287336944513419067936446450469039228384498694234561241964966545054023803428138953198291677104803823670847571864565508372601308221239107359319085041688323728511701168010752094977972287320232428019809516094408986619476122250044508672638572639965280616900563670333310480894811346309007843461671072794494659243924989248933224980953520178130854537549919268371197779316004387041178926135315635799734468658855401354167682016333325494255152716915348843002409706776120992772218301445187946395794758915430708463505230802197916513150962265542079780868320229229404281765963915141989576024817090827962312356910142139772361125455014292987818835287112464636310021674050544859113798133893106670983581782550105440446803494930323739124828554038057152452498258027900280090706847140235572661491683309357472294031620068727439667187840224948588502771242416459464350462985509903448495178985720762186412919027362292969448316937831595028905232109838664597415639372720158741959514190217332100346185080235974537565003184885745564681651512596420789053576856928611662618628861352339603460510769960069018602644508397712324629773088254669792793819637912423636281910777629004023075187313889385318675758325728700993467456560973878895609260855167187359515898776792658498103977344846832471152009579380492446853270606958657170851492771071987196131719857904126003485544981626816393352060417415835968508351068420412873060225092525162846554052600116473073686893461085846044158123415904179374366042800260587614711660963926787267829260856447048338909643024413810149688842695646486349022679503451606333418822940362611326273703014912699847866994871741218537805372186965909087454967996821250678847784004719645121886984753686804303769283767596094382717901621401086118232234094743752186721895976829689953006962006411094640748361258745119482096737642502592657986159974760158953734953530938645488800965493810048136709078292418522044292432599252582907524407010394533606207532387915943509594855355213634760008671526846338519230420783318904467020998634200545185639869345224358154125803238103202427868108429618764459682521423472574208021096744064799266313580578553141648816833177353239384520714145520026832900879370740428638546874486913693846626876201525837676031428178232216972119980233898740419205524426437595705144179960958219448150708306645144083920345872959510329400744986324428662788393152816663066465857436873294547031014148187253920419794652343875442650708445677269406298880723763262986897319861084982918947716317432248462298401131799303238420046190961379593352276642240670727822621062824062697986978308931669050094068295281438782207995312452784031731669192537485770193295288072409722964703127982463876691173165785384107742110716288892324500166184418450488923907863571460648677521831020240830354587722589625695706329140063794046121840685407918318723179722957318941231807840476069142490198537472603560251829783387489273372711497564857327436028021276931117460351576370835831424117597756298754837269879147784998851491009493817206370556367038992371456456826629638532992072485076522460014990136500574747080941447517664887390279866109770630705344031380429974168283633256007169030069338711614182423240994620011030566454715533381527640774973222926423796685590422858892182367351758132931544278562587961775017746930891042469607474041207832506621443476646535405979350083908023853646904353804678993967435632772812274860164903397255818598087884539379148309390599175748458013230019484841695240836561580761643541917837802329236870514055307592209335059890585898798860613020460531585923295654731617123096979397107789590869402192410832752161089443670635108497361715382238756619800049987871294514632293732447677911798805326953048941803569728574832835030187670749011287911048960908482832195308493546425882172339888849942836263507975635748548679848293949004100299154962952672910968515829347410709850525411644961442165732262274526963138704614650537958998837571251087741613420658022972798148394185381111600634966245623378611708858300796914746695841806887923406031778604374446875355984240451633807708847237084708435692058862732779963041915022791856668425901418700954252679533571477603363631179886378472919058361635234828310578843069376213450458097329969250655503481197131819970357402632986316394025956427447227110408656871105484007501121093760667124345311760073214168526116177049828916595922204045109270355415582024291525598709700239861311275354668058042710626665350026317529702272771383257099391807581260009099122434367675749500841341403630343234290099245498495735349760511234615791809349704468360522796568215707410670450289112775888724551827145530364991963703359674671738944039972921478551731986071359651496273221269462469059277439312443473047371375572826854869391628410829741208015932607479340490057045003382454943265299217885096471744628571448296822988666389113419004799095802643585519595817084923848598299272729438891993067717388443352288922397790746190892842345158907653594544554842805445147843485386464894362153516562757457157640427882985265559611093010383615799649732044914556687381242736591355442898432430232075753062677454999686889790208246178977025793629336993044463973323738662518647690205183490812540358169515748574564763857198955759359001190356169181078329603975477157156450257957729146991204927665649939441231380002955850867860952211059285770836184888980280482784873695558546917099530919786901334684109982464874561218822723762545559248648626673792192078274502776001873095830863612480608529728162939516203192683463670181263745895168281740319719335756804844160983872739338354822749433724599244000285334069794941722353482885579703328223671619731095055130110804932587752923343527823238645207738861149149103881322936405103871636405787576850876019306327908348724142240727893491726176378171352632869881404130104154092849288257916255232083476708625008910221699039990074595581013747551265997194959656407435050795655843509947183497166979611610416035599424977305159419498757430289254065348777727116193368463805213111086174703036353928554259232498533900326204873025947669111518698424527476603589071594469017331395799946350608932054286594620216616808332074734902115437415695281745966524935730744679025060696460370501690720322470723938180546524614599825258651539976346042480513556275887574982307873165705429895731952381541712634461015908295110020225995423778688067806294566204852803926762074930499019564041190743855225336039662550129973995484652630836028769183166154650533135912999866012633132107902557216313745145844707005294012467012093914086228015599897265863027230306174830152185010922657551390558921094837761122501447210590171098590696850296047029969588122952436064772638712304377705270622693281843512814484018769051167520942205227824438894543630585653595344514191229578365948288667579404999274979101505219852560361440335904049428657518668007635197424923674964117268225880894365462783099359691175353553607683054996756838904959195038992471499245389542797842180199715012751776188710979665350901067987492790156441874201694260298408319511968413174528067253504199809884372614985434674459822291516731174597664251461894627054677517714514863694627911948747763906535972704949536380424430866309564414015560155009193408861724210544629670784032515535163595776157753754239245344204636058612267050930789178912471547392254768642412652033085713857327588372047317655695522831875642007545377381729269596778855582860100298316877725476604969342613377643425885131530626401420591313197947742644601415965454834273715627085995320101314506364340128996409592755156399879521285665107669539502583106852323534672452225571879690737484204425273685032998445624285277139044860412893004644594626815331170000612873949975129803191977352314320338822996267038307862788711794249473651944516135049891259719812198228301521109996591580419488069064131386086793224090970670954827494755001073555308459885146590098220893261794996179041684682840294920503226533625930163764005470448054838913960296580518802337819649463977523450874064455203821912748233387846964915608593495383262618088443148435723051199275710924266224854828588357035037660711352596643019420042830535156868712365108294613349009267304443344467683986700885381270980578152372561788171878259270649531239823535380032130060964071464170571754305251491141250943526185917496701209893231654805551044540781024697652362099674437240873476852160046581947865905068103883224255844726858374244687426478494004034787056777133392324533528820252095390996332390779994937974646557204439325412930534308878846341431083135714659090818610125072725333719059662060489152304895326015788463794042559013278604011125687447610401166090397573039291643398164767616908611976533728733148772264513624502995502236298416954149275140392343617986917380300738788288511121648699467963829266861406867047533402344050740176691713919308332536027526394274580118444546615278232817659834188802692393673738825683867486171178458857022587022363200573714797513934394556071778821671716797601183132566191809949455727724563209214816645452794759257642060243034121922155300781499102703561754719506252476075936138595939124103508171662542644444181629202873418459114089363750895700123532148911041479165950221749151620965623624743338101634359312467708181646623371422714402758289201246072341387972656133566958242221847064763923888625433241184411548392006746795820095461990076398330591339506847416682902972544360891703011587042693214161153457379564833198078220668722088398723532924835723384112494377872835478629786746923474720691979749580524615000628331546678027130741089641327624325990402158638019061701099137486805067998114952281051223977346994099857370698909428535017926552359702053713206154222588341759600471005342401635140205263619068247096168604878868031524977519782768881126763501931719073259509580315091160485003589273502818326420451029646282097048900365735910475572484689121331230261677152326533779331793510577842611209863026616453167057294333224405196445488025223933096746173171578100527966201085383128729373246756228782906064340801161738340529732791229378044380177075457664590981928227354165999402777794450308634352810750466282739821450864718740400846800591611777756282201314527368371801914509140099969671499990367442989533416976847914561384774872251979467253306538219932396098658318464005714015296459166857138358303036763081497507450495249209006326892566756642737409344306388115926334825629698112090376911119514706509120903513618442513168797231225799867632229141982517771036071479278245643550182541122498127781204636423749338292225780886406968131879563750510028128108296925142714767347536470451361930573965808418096219934377403774789050747109027177468219035648303414683063526066801812889886038489669246960372906962419453560643895546711368460199686183560450624659884896056343009885611965334288755756567956782066510923777393424163220166905898021256353382150792271141406979555697861411375406206435590482784070807090447160179978218506266845744177781993680056579116780596714233918426215721570407796832929887955829893869241259223983879584196666585199213174177279131741322659041097328193706015656333331935432121607564504518212632319037258767329801034593371776884781422564017485220121888018681396995947026325974259142096883339563714774254923196998929771381145111341199117904680195781145416287123635607540764495159224482661150030598314386604380612992475215454120521236609948339486085875155774317108156639273358759098819210847022299959937945437206208365645987097663606680311761754375062166380421815357296040727055513961201240744563697220376577440369144554354451364517458714021348126569549604218192938341739884783653383181048229500829226093378024196571849711360380578622070284731139629253726394736364514247431079324160592799290879731489667352954288165506371405015050466071765009750485491326002261053551216655893046190657771113749205509814224775115065354661892393261811098667655072114200962879207496235559055847404374106356004180777260624251631270861072430450334306014163953341366591927073082730808021822566819726232062464735475624447996440286062391155348245084259638277772528274561713166388693749788467428654849506043308638405814220195396799432658160071484065540330383853083574413410277439837106369335147742858059261833544652267945489651790697282712616782688787595832425629589790420798640342771387387071266581836503993427527696510050196158412162416138329596213139000044555617066754418356234652163314805017315222897663501167735767758033612243840449199712351104884775007329404733797531771283340198577772696536438489470175733834565481640265117801393936629842267165188387022270057145205982188291500812380701036376648356743671397654108098800103780903534077692291404710501609517963040701209638125714099198961898014571697347494253214894619756421324316247463859931244461951551970550515007283459001183666037910000401104673613594249615562058589474785015059056184620291017639640883658714539365486632070800516334257788721445766164822754429568424585825736104807220280920010309434694461939301100613068973219371561105727840725581746823361078586866010437280063727150817940749502771242156254862534810977620636600311606687101838260315188683822347616585359402659625498520618067164216617642584897008316476837508661174424072359216268637779753710351349371086804692520745957002493018153577175833869313488247627362771456361964460044246175491979556170145015830249048775221745811545505926865227652091632955118832254335657993991994547611494810118834826056576438239047683690191077978955260577061661440556729962105236201425858183557462989660504298711869258255197139735086990398030119002705908000531403828627536681316950244837935445950501314435268327726071507741341004104137995527825938258166101118001737434836453482032504681898840185231737809434235145340450037517320466830342571247523906407552502881881390923679031352274744377802608106377296491966490228822591777525226699377246920769349732380489478999690964004059264749963744552364480011619229588579359140079507302232556886957866432868319740515362282069018748248507792317821885077523697925391196771223575586433082123651842493201564618250274145128986422564312960289093679908920067324638188468409329893669701522130381576986858087104769957081377306192786737531975531128652118878739250859715227543987518804492388244664701575142759414744280778604267474590823425557188447580621177681594938311137251060170000661228012541426797622668373742959352297353704568019827994333453866277986421753585751132463281398220000084855423508860135349188218587935435551469482959266226954010453760768864633178377542975177246094052133498303836526180086339083381714759395936791977322200342888965627838964942782751926849291349793602580003205854767651216340183531888921394994822533904593344612291367145196115835219628876822877646767933324044129558038251441563760123693212350467638563850334643638756986329219424740174346380648163193722773652785107341978790160761769060750147748163939255717793183262825814826031834853748390943040908712963409409709825876612985710045113111547038889693326767047771712067436101890248743798051521269316797882686544261375848186815908184948418439251177311282540675803459741106556515402421955540053611967345535641446873628993482607602161436475821908135794041452458090395488933456499868129919131182603045820485384970202614844687666627483298320023547724109046355140857012168374498551786745476425282182478241216512774493392252646706857542278791923179164149414036761881556984729094179756276792676362989659268641210006713974091533892521976022591626140545008522159710954281288742741848496444678991141889936267098789551683933551309087054632802365034527339847799418022531401848810432541627973655082506628490390056480637500990821900110086250560120128258850044400732472289093417292718346578344394960449216566088017992015847218964614451485602324073119939461244771833951210572366603143003895339372894787752134028410790785198632222932912212662145852447170231899352049510278572326844574790028066599976440939638181467272111875902230362662264801808753413376889475995812857411787230784500856527497179998117104199198779430108210711812145705550871324278735427300827868385655362323295185275386348208257447675401856979069443102799304614058973586498510255947173123575351711299334188939283654586958864051792762454172998043500550320375223495848548745080635339768045962072760215396555401238982623359365578247439073895785627367668600978321302382755029326249956133874537975979842812556041640278803755536095542258505253980507815062998074152898903560302918478879036702788963190329896262675743651979853575688485480933554592629591198223386473401014060838659212487120425825804652921880572702872911281056895013957507065913646434916248316522409540913138789171987538113686210808328345383767036443131562060160716776239536737871764885081337931266227471230634470983219717682015141302506825256261029822276855695979642371049017026351618819390066238839204406733811006475043938773326793215527122735601455291237484069337161487830762747149081793594519157395967464550918724871916169794166489765611791610365094571623495321311033958282652548889332291952591568036546333477080238163519596039068385112189069484002672363913023274252225237861844662694294663256613360194010819247749258667040239082606496788081392702558431244697981542116998031488300922509697311371835219464786079452120575315763947347232884557736915864834957637934502175500986754373191858138558143693413052184781723728406901719969323431430413499904119543767540578583356588341435231802008091849527373035879221798236553715152198917549871280258210554944952544571748595407626378061603855018376936422226757546586679267892693199620642943304665951387675825731137598763800507466204805034515413618566451337647494537288532627295381951711804672478742113597740310106027194766345995524770897323389790785479956764547937111406450421040743392471354413606360653842165471845988734305648482756522436358727868782286107169075346851076875855179827348753264469937636448761153909613584338144126727847136605997282591910135959335003785735601417571341011888387514593261625046058651850566807293555810328686331360698257139492720921270294577407404252508773244862204625591494814505103683390390253148756108830260327888221521104384056589609129004225574736613797631434305708033084311937649358186765748386449363943969835003699810940829959384068711268078761443538567468158448330841029010510192585044155919863985548597530329022320078390712124199628940806228277401360187617245913182579910832769808800089752990278416554944476963742271621371879150162147867227888581683666923533348821778165081962365876608594086808361742556817126358462136090833703635065336153388085957556814118404620116935486562883434419604147675766496600394044429285449891660910864458149836303072744297069312769663504617309064353761401126249567637338516919089871485764765453567338155024968915159155308849617519676007252269479359173743201273060980676910056274396527871939044117973023117721051017042412780492533328749690754945742842844571117421883676512166116276469445698158873648221349161409072729299651896126436249288280612768576406281606141292032340742231211996454242789128804668258569435382908787891214364087856512335134716509237410463584057579113919434054085292469380682418285470821797157561633879615166655078662948881604006409211224623307394743911918316025346997359016660348066606877519808345181520846245157877981326004669125085823717377770270062740312999261834285608093549666857419017090292507711140727340803576538130907709428172375838435199544067410373279471566998101977040243471141067339015255584766301894901117823497501690572990644614378036072539660466247458658036110336541679983806825527811873740146568240009798447534721836803523783021662975958065936057038185393535468943868168618147785137982904640726891720790805571290137225055313012296206389405483601363716880690241719441120708072176005595209568020989110416955680377156804982566534064876372716446485175649602311185097342314575090443464809472205650455048300013273551775036488022957705353601758899704091149606030581405651573812123266936008970503244480841654547396935459536069499847222824790023786093286628777480572464069947730143886283363221644907816411920611734062271155897129384189972041967047739201773421589249638880898900719131036668763936982547641139109750632366719865248706491004940714511070426812367989615423664741226559187788001866015824164718069111786332531520802892114938689788515557713019474753882640010599599424436722320250129562467613696050692628600728104368364157599580824664918131508677158720565923194615613907478031267716047618979249014460706837105052519053719356209295016838611266086040607581274241666634756671378746535737645894664010061038871036249251878388030985789102573066726723142594846297154898989085593356569426163015288510879157345048550275675167363276495328541898384677053458325434717379304295726014026847384708527752650435783467229249224536991977555110251457506505600622662548777322016065777427872311097188220318647577620528783678888789305225912271186462735390457783394798599453112132884684017561574650299986032611422761412057204098711253538368445145838751548730078313596174249544895657078363268296442156147277715252723209368671245435301916888559638092667329828556539941708334651621147121417242130173501032824400269580189840334169529850603677164739148699395592327592459847941642394794661185977618756007588965881833065078384931676214610988890165611151399220388941454751881924580902351505819410011541572572686464894919950948057703353601920732722753057307774148140515587868351407234899871295194883030759579613440618277456715794094791252750040356456328835923045234075034626553622133558128366270597995223517589167162933697373182059895201254273095205564690443635866783439348120511486290375525059408377620144907290611377474581193968929823846097822981754088941762250366084480887192810472144558658557110178001693114278910339050816828626709824388202592624091161071043124598432687523380044438090198916807785420622895005128852179031715420928572154250965296608342665830625827193260485086327551763127125557555665176442000055451115244096591516379386085091128714924773011325537953082430814853655758279706549170076642197072371938943380366092068123680485307741730933400931489981969149796216470998210432909618583212419868979020528029203247764823656740826446077299864536685080429418349937949753391874878469542794465115121808275480442056781008682763640716406440631090963179015983323434118120401761850986145311388198175181422978912996263168553397332082462751508728116389514320787708515569458396574173881672521285810557054358358226544412441806769961798521064589555852811658755199225936596433316570395572227886775238262448614524317788726721791606491772881388306488481369630466780002013993896626138385804839475678712463585962204878857399880507525090104230644845757460819441970045361954057279162385131774310979950721880947430415917091710544491869285273460802963456868071054103150600710090618025494438180662826438969537118337813890311293865261242504196605637563519907389749186103169903029037004920644217086912829627283126440053362889357264958797348591351318157974855419136740509967192359799345551307739669967617920265573269893084449428276364121827266969132113428779871721857448710659885225995647052641417249728437081687082890375688068534075499020950696234567685887654882616879178829973189599628350443818468061716142134746024632808703679027397986251948060657602638547492929547605995520259565282082745491605335814131644874447524388139273018233119620871348848230496524212974906456885157415926731793989781188571298005568412847823052655362348178336507690901276691867633940441168681538706235777061909965927608769875710436269170439543558492888771110401124512039967779185454076387368607798722306090497345989841627293065753698116245978522915661911231303116059575207654054690756792211998003669419634411102954678167765732856548610435618556555738180575494286735060547927287074913118830558703705995146860327877545772104904466708689446577224879209171324513050300208137287850102806817842315876942801307556716053838990664694200575204562260969761364552281080773760995830124746835823555031563147735523699568128095632715040296708521232343501409226963759597953281556795770338779449399556615621878683045756402068231232626620265724484954521428932658760058451230911548413546256401583496890119531891456235382185907103968666028830395339150843918470001186205308602632324059440732503915933079258237229057132415533792699267867224371536548138055471912321494353234884619664051111696427589276519845565118890854456763601754894426490265685882376461101707136496166143493153606933201394983002148592061683692870000938542304532324090739771803694126630014103147796231339952565468925606046693347298577344873946208824506868780954316103494987208255713994795998823958031183602617902688764849149514123819479301186952281517416333990921962771568208865616574507423994663521630732238172358367065363132967909812904055980649034734217515926728628621629436744726305412521165271666632532954149405636815912769063320239169996476997508204550375069804293681785431264625021465569023420617930989357955816932296761814240946781953907679960330434885463214745203167288509397384093948571574650252051853781373570666486263653182878607268355147513792766969614529430749215151747192045055000124519141410218449793354414537467043127506656616739744260467610319876611865213648951840140093055631664914051889272931350654522668021790793860437894650576201755286569714077842408166329323224400575902626275224811046361495246415659771623890337701554258470809581629781367053084054315084825714087598080960215508486198996234768307202362560545996083894224190575070297926903634582882512050339512268387509712670928112283879209411215307544928005492979838762730321959210126078299024410646448313046517855101875542777775597138318060134429747399940879009354851986204334405351999582316594054931217256090138221086710217261317930776243260642503332356125735085277767642422444305242604775968366769420899979905538475679458873246775919682433622285336257947208823681499481560904152455209777550163494678244147051932876910136192689683313617035668830338482872408390908064605369780127848552140316221742567872087309911542023149621467449627239088457706343342000208700020167778607013717220092173455207720477833501152418644313180442532600518349062481089884307741855367911163826552667073733803294196418250009838043146013453696648023700918455960250508995778630807360347859403806455606002618593961709886899992719084326914067977596077409293359353947291526241525777475353745458091317542864673232691828749343700408898952646841802445941096284316343489872343450764045198182121532719533362967835223633178033746800105146179166069249148354404303888435165709821704056761014260750110719409668789055084736517411239944463791122045375841824743215170947064960236042325687740077983979121694609474700852061134301035291309798596510826040745233016490760512247028923558550613360788149848623287150197065360631893254951833849712994248423918278179823899498683102431951922170098265076985230820103610660617403399970406635130478137863626470795208133790653805980358292216742146090276298662433754924992983179664977311090366297049798042693351662212356237266093971287690099387488965803119279734827822691748726455257799186306383769452866450155190867907693265058213964099344847835510072750869385188189084984126735080579620994478822514289723890470212050739222006880150944225731587803032978769582849303707796760489771364992940764228884653335681109898308954721758477220621001005753449968028367762539518921646247952250169886676901989439384025118229973969161643241615867291659003509957484416968874527053577893340183198475458237475381643523339984241410479076139145903127382298135876307305460214923921226450179643468017938804173063690874944420576992578840083163189290619552417153948172135958268376562822762131420066905613155641401662332966672719852584650804814164660693126528807362301595130687047753989147894667856385056836867378450470179531207047135601167780543399856878392622955898532936711732245042173942585898300849537617158003688033243071125129897630559069323246916086827027802057068984138992475017140864891924594132422101265725759207137091841330952859260169093453599205159096253046798683021488775677394655551601035147373738877227995977252182250697981958056095450309821877416670475453628294806633636195663642337613383647759824630072533740640850193768062000971471641273526997320634980211529132768813490900366838695622651983754447023311320444554401117152448657560330356105683640664688831654303731172346072621761038281493519774585521457640544814688737203415912143077701367986086587508375348326241688857371183735463179019106093460048804141481179901366356539072653930217199327935844954477949471837808564067134529015512300055964083082040929018778070176426801187206811791697233686954631178855956451545685016343174819625585108470228403466638533874172644251812000786083299187630177107225560573142634655329671154287443695236185362689834873529889803978799526943647712551406292026662240599774311260778672302541747058909793377704115680214080559939728808272495278500370226647922550852664977223147380801157803546440330983193284096039889096064698585366330401488017329047058226350781294380160567649746968674984511802284937499848158491230387722242301509064303896633966534361146996034225721564817924897145380100495133811394273574375097046009502536356350675135130702615441865864359659450100541022697771494191176190248549515348616051288401614479270476375463067352648650978378570836312883030722120693869005573439248504544274308551753055264890872724984014531302987100088575765240413781943920682623393314207536779415543505969826970135169458232810507522401986512228626364445978553254815199207143197979649023758802135450719797568952311769631981595590951275681887323694671299354718972273938775838799943319376505894130350777087201549514439104850710873087683397780590423850444526475363237957760028782124148059923515452073552642604586048198566123823267028836520650210520545894450134341463214381700796592518974434327497719150051526247910445600115372793962731784530531305205693470143009808058731180460364580566835235579284026338081586364537942568005276355851995428079303000583769187328154684260404721218378745231501560917606252742847092027266651803360083233756542431675842971285619089391096993867195435678096746894552088009069780988659793857828662980391076632957612065905646682889055612316855439209509987314381923098498727224486139909361764801086892248594714217077286097650182286416434775344041563811118226024086017357570948661777070758486192339544028299448834174729788359032996735723654510398984844256554597083757504858253541884223640507733895291321925513267494598662926043023703459852678746079182981356930026532790981442753858771936998185842258518821851467372704471770774655883709723790059139845986137339538394473777516795146128703826341989023222545244302618577754307089029887084742836680249489367991084000457093840198702139424737593823255888798991517395773358635953763389338976766059734080470505216999839520849062767381688533611830737936043153073958410778088204141719697292886343212233470512821993724655314598265201122721605767116664201967898481704957109457526589687538285806613676672080374569362109490501875581162634633144882537440716981634659672198053155103473275038182963444685808919292705953608471233753686751464637012730025015200907231646255856602139856224305883044838820921044032200835209772373159729672419284270790037896276293826410782600133340301526060171880592194831033543204833617900240720539230358049929257788283828581741719555887895400306261600096790850295389102380627909842196028363009142791870060074878047058260290844851731434824178915455817314435472120132648714780915534916071644915463697223892226446406169378893915639592509599661960691505420910681715434641755400773177817789889897715092840797055528187693978042505594985978374125051494152086014940335059646820247068531049936973824157261530699261632573035257623989573781737835354604031627039688376946667765150587529629196635592866399111749303684535430209523394188296230037128927083076499378022079584724129432977740624232357180971180226088597201590213695530489047770248615507374248445119901812068965415527342530648329938640145578728392435442623682920235468630368824425375705094834861260610556180250246905393778028177787492268944976304683816242175949101280307528221173142174270041214735929070359009117820606284826000580768780154026462823595074024617654073848804130690055808014284811307266317906122203695223629707725128677218292258717128820258181641980282802634080241728491481280876931433559894130962720793534674933903935787886322819594310598169052718045713553901458832982435342236868328343038619293627073186133773702535830627922323443803624761127533704853598649876504114884747720179561124528022164171618340996153805101877418565457833451699709429020521763583952521116029383931238826891671849726805140554019526774210034727041851369084117783260773911946763676043573395574388008926036205190650002159924106784374786541747306238595206731701696808842189166469316708829816754436443518831082324931725792408302071940710168183594380344778352956417198577818972096165763361503563749413135606821468785997265632092886954210558268143704256798985183067059883327307541788011546580061794390610625726785036018932360346679656389110895325319939257779243616065333940252896805107043656081134280426932745219246661350611908985326244124049736536947723451744071215445519733427674943152657777965467199722687049979679953786258946311983060674787185914316659393363040593560365536205860660645849323550708168076787737053654250679272422671975574525220565892641228807521027175457593228258033667608464430385207001567451513704034425844506009944911904456674319682437968397520114784130869956481524050031877544309195093310456167687308700950113723504664863599735065469333149806668814180632905631257850306511268780444323459056063057675276901829671232711615712110315929624104019683453401419125813252246299699487822827615209004474605597740292045157323116840390769495985278563446855472298584320234910957882063974982998765331964721277536666785950094445464537823920248591370196867463006253141604608498705135205870722439896184756362715935837253753349609523163215088487980533484075284069346366380617341160558656556317908693996801830494916140257314719887462865512654703696792272266731666692088441969787745339345781337400672537656953790953685178997403065232070164521298706780822485744869569600250743477406269214927478322360518038279590520316724216662450670638898874909943863076267942280897375903084103901331537910350216038578395696062239270710015129757903923230367259597383151794389924642148783046005167993372166775956219240891854460873489172867171889694497210197038928351148960903445565356612086316253851287762363619784897601748941342663283738964329061904910246478358847359050740629600078403793257662913453855894386039641068819146067840224773778551855051479299844915465526107924786433424710018212950496883055636199928900422585999842381536797719368125077531073344611704310409082355036218045263914512474947493798410345552972518958015418942203430192658031119945446236726695407429991874705305929405092072795782823863728425589616239207249870311249593998117092098510743957476420398318063806805608151867377324446021643036483526459143860971348584244896689768870784673928957217409572193176126902541370576520006100343179297012915621785073618398789357378117227092662157977093073286056463535727595721848145843185887136957198602276520827846980225275562872011751593912161576636090531018767584482414005422475722536662348133116551450127697705843587042290507567798347732684950239475910441405182076047142255760597826166734705069628637444787972825862939466943946286771111625376942584101811536239754286657343510728103663361679268407209524454473940905577585748357591545014903110101649424946695480892524253048656607381968880927245814092574310537600309897306494623623580439080401120130230006906147750273771136420315159802894963858723544462763149797113801830975901686258788122960038653945260921991834078401144940889798751935340139543466822370814104293589710235635262072343432780688130865068065771953145326575333166400214022298349384793508612037043472280809003979960679463356180678874906161266716734907347056848225578134841040395850062946179858485895650710331917151714796979224046126516571929941380520151114647280300815582779795427144142968432343837322805328040586522732582904867435037722689711773786219231832368656579634926890484763121242918504664253313309271986449162248801807588677365744805493207180482321132750963679174349281683642073683392991535769702634558751938493875789716307379617014536366705173384979853747303781829154324341962764229756504751958219135687553194296377023267385955686058836964454382393011648393496336341222179362148117442262103774462382098205092205173335505950768135280808354728806573415557411481482869518876555258469455467712837700003902554978185218129450688450775269569786474070654507050806001828376090349780129801161686967968272012765080491930019368285659169305238761434071746602974105322251356933464193214697449890653710153158805670055650909743818989313504803669423198408015597301050256883699597703091185656331394232147612903452763714387562256360150468821192466280930647035736496752122157752538726562025862582282877844395218052838687446504634429949658796020857775072986719971911174952965511239597361165186493906046704812838672063212501091116228775556138102909212910871965325046741762134182611402722248292039590765936105225869950058211927791017996969869796826656481084430324700137152681321327432278667451313859760536833381939435355442377481115055435657807173894008578867265159568826470313062913725572615044008051350745688165372076023509012116704374546669198479192286648062355189453044440526462900775872812146947408576043878122252432815940597664867500524558718649631595182786647187247110020908584375274831123988621034137572659374257223290425045103567956977277862033618625360266832590490381031583762848445519767227545790521005562241373226341383390469248608162130481705954914264311773596857080620252903823495393006306532986279075775085449449023877357166182299750955856999597675691111096937305883643759720880184628114009406190697725505082276935771814409837811567463705357143976006060783675337612346198177736194709374894794882531438888984351880412771256072073698035958075394519118167172161016029280136413763997180299951064955521423954587049553435788245109440625164505051991975329274947039382176975599762363228495425107029748571670307330091744508236462567612377510099946826803787214762849702865253959678732326934245523690351745158588559329985366210224958503053078688347290785054047890502521061435420258690009429715909287143853638644426038746886502291671755680377268912404965053470489457185115352076752973786127327967398462140405618826091726868259384325121711213421234771224924749109003826218667357751523582900760804607443046871058624365420219270449713814306911384286024086870831969990637427896056334878712599646137629893666957716804295980716997090547806992341516055235333442051235584689430449935962464895254163037756903803732064304082746379954296502777532355674877197071382891306313464475800783374449132872783038795980709922600414906618455830743020440486858318977223873747016699872438196659992763918135798802586197683994818213434884794049971558206177836013057892268412063547602182041291853398773526599683588513870413820069248745187902146885604785009759007266660411039470123018702660599557589188024381548739679112067315388302168975947717321424218870387795936952937892317478286511759549683333206673243302831409690279602089248390628047405536678312889559678455590150098650478960525903569578907218377179569272899512416589489004633612682593944814167819494111526640029061380770728019703122713694343701681374944397724335650338413640064579626950766365758122038743693184137661257358414426308237503106686868399339137565290069053900864118544464364403004890967424185560637968002827545633729251867465460530270890138323543136242377027436828513811486742948293648709105750916281478997189592228581335526690512482303429775537488732393221508816977763891378756016702059004535635710135779271037941674456401008613513506285801020402019307567352769474506581283992558020014537598944518631369226707314468390263792629823963486645395578771449280185925356440380329327986691664347056100534204937674182021413007323906850230642554515679030298417806283213843733289200431019601991321334794857405854900605339534209692045224527163151647551190047715492044028766255948261388022053806381434595445038863425777459253419038530976348977977349852786761751783890224208460107339027062729280237264419427931002127643520966023647015065870178322426322692090833330682192244925005948342532270877253620363560521473386994317199544295318002824661158655175334661279721995571231486617537953835016737252500534908539961962409677436447638947290279843404363589748456531613859895662954394375488408434829383496861137036055329215194343802141642039451304705050222071699858372221785831783602171711702751740027300752294686280289785895225218649276356056962758596777788253937054103212615903762914101687104381598543651772771799046883664396584180583788483823063213788665419206597545128805605946892901597682592724424024187383134046384611221802720694605041590904159923402461206629625756429962575445685047708145265886029241990607908178437776204120078291425763273634220407025783656176089231422753098306329793012899391608256159987388618048174078106004627253148505433109923542459598444018486439021822530578416867989153876705488076405129886556046665606946493317731017883616014889035883038148180797293386870634148573731996813123445377904296658324003678631189059259158825131809621434752352736090488156025627945838453022382872577034139819118964668870170057027379746020454090940485748072474831133251347748534910775432498278677794357982161262872874089888223483712859131717288630166779041186702051481995496164478953697112379113225500748628086147192685167324104855674159460407934628682018048768409231045772701767753836889978439275993515494456297286962426088093654854661256653615628445497375822409387028696078831568505814896904273849232426690689338697835977904401818400797688331607859739046379569054541732857189741161833465575508399190358026328943227209742595134466002402658922029716171272520828293486145241525053791475667219822826519155844786849387015369984725925943695671736755589348726099985451141960859938990480196501996802826984019057792879792237374267306527009298484698669619686709221996361719179715842860194760917612063722652601138515846170918090518958353065732771979310369890051165607912965679567366848625176605062454966784017700789960201761747885101559584717259463405475450274199370747974204118292493725255800684427812976073913611767304814010937499354874486894831219937054155325595062766551283717087233675234350064498276062745348891404802708224567617079317059739478186551906890543959287283441824126672269240015610314334853016457745765487242495020208641665124847669416294123655646228324576637439593519184884009926014413032547884045182684956354826758470003663966452958648800185542453929726979186625444742465773687394691410064578133329625745679816084575287951316575542752558482773548713426196740172978570028683298225517706219882317427803788662853647419921433278585449634072268957045190081742418596300776940538317791032176165835943439171862895148510563224801150463893459684406282337207893685965224979444988074805785114468535708182450266472292130426479476207961516476334615059365926125244854910030161904271631188651387522454898847370250828869039460981635094302631133665559510161849584453397546173136191660170390655659726678361734706843707141306966079506164500647669934786400818881182599629787655353487774158277868088026442930844145067949340322245497825904399292492999889847464283213949945197357834873797145828374398458122135710096776507599472966939788610733016025656581582034083477596464613823009474803301648335848669030922085313538973024134417142262501055803002754349992886460999703949285659294411285730950167383377942723190253678106211667860154480271878198877784816530559315693618069491750146865914716251781568949463894803305543361672329159865079513972045683444196802399229545013219140084130553200223407676146672757136006660590127910383096479954105185172633017754591569555262650441124542078891757496006111050811378878114826154956146000748445791061909581018164170035168094240540857024012609500338795996065579182750223974095125622923236394668604301399957908490234258551837555922756181875455550297065939093870988904171358736923531529422638652167059506725667988267063399257530569808518770931443043125531592383205082201513209547590143198982812529036787354982876710962034841722813053553620235923813978310880470604334369095344332133063343004457835031355300755346945437584950168358882399247479324338355747106219516489405281708229688380075994141443458793580499699542327310840311876058714016267523436909854766776536560012796537325497010211691095834362607310457698191883831236996503562073598855844483963580666934356514333066014278191635387982913935795910754171796637566405003921597415688310507274373052195814122558326280272944669298888199710204244484253391379434942343031875591797165566066973330374754003400766165353703565698374694039015688110133962513335768766438188356456235857811030822756537437993184989818517883575824250852500976600508440798709392090255855752234280449460092319933243573526575451664080146057223795512757462441003066848582883364743381769239081182584102444859172128548591996944254906135928366452744112258453495533070281526341390715066508434476388134388945851749585717255423369309261515071449481113708787805763163240716425007050773806149990832713416359970825723549880136107534306707208022401283457469771487366122892587533864022861885279250058746723012540928048953290963616548679800992354124004290688219274014925603664604146440296122206209305662962107646656832945013662030280963390082740089965472865861387993848038372030604687246652600680003371572698202683848768336757151398329159311815004153542219190214371703277554743963524200602292577894873734704939430469537785881669421527653901566289379990176320529041652409910830986696661602588523991674049229599101405586959914659044378311015618279031900760939838287468863034388849675193072565006750152267948754507816801580683661249236787288941972729234278772214966817296315575419314451852133796327703903107652717072202381872372577578657733635361423543512410003179406749315087496757702979154675839117021173965058648686476234257797765864976483311971956891909195508612106146496774966207739946336011875245666017660970309647931104401095586632406532953712895776281330996812505405647503952684120855308189320212891921781196305350219685240084096739566147729683270666487075441545024636799173290708754785066650758072637081742584943566908913680386926576027144328165337219203146309190373058994291039883615656646099572530568993668831811194334265159429338164266983238969643471821902126766263398388940757578688899841838713854284256925309943519889051465210749384812531214407345317558061832391203872541271448497994031915816782714915475546018658682375328312936456282152175102771173779575850596876214431229842914359757251171811549997384900646996406013051096564552071032667320067033142329491421554395929926834015260266867184147322939657476995750409859766327995603811611831393347210140261654730539285233973422351474314817088531717464205451247719225720727932235408982148497115897057493614970499898822004379496569244049029551314175640113814057543673548262975603516644094608652940628279309878698154382272661746321169258404494210962998779257928104127205122890746315176761455330287544804369404984872100757877411393470690006499171417841942721548327758020464115885575550920686181280804552714362641322730190705360317706894215438828642551985958718624692197827726630374385975894221801941715351629613337721695486642880630459822080877722536383959703272290846878490997724971693372805293389177395021685404874406938598592734316857427472130001155616884461146605309002939163026953629926462163139286565213396968395095498070516299304201688990453602658885510305323633597599290285083025096114780836365078683360067534843538601049088630459398378251584268022398627008691338713514854244086998682136581089625377500218605086568483265786262222171350161471300615713776659982522798558643091417680980521690713669079302370349557967100269421826432553955432409886220290602631389100856475212126866170919600048781362664206381475874248040885852142473409292463692927273443668693599106654514925108723088602683228706627421717261354897094425690430848369886854589193548612289083767775872476497064675701463921250223277045344499758303795372388106059917591794261492541643134250093451690394225453024825134012235902407979725558795964735645031640676031929343283653861381285359372193738767418890788567197257364327590439243194682569367730042072850632203631785975349565600052266671819425714767102658204219950804445796660279557870327838995231019742260854933466662124045110354699322565637579198949348281965486193806011086248906467850566041993481802307203025388776956925639689813517202458475727012597762707137055807558706120468060782039003013230247401518354656985946472827598384562072019602005970886338099370520710504909193182936634087688691390773171004653176507305188041243449858950341547996549567957902390643013875532855358456624485553252146444022494364567625902687030518655429127856281338584703402105966550798397988783125714612777939061765550250113461675701333226775131206641574464352911417532286530499861293644833464923628875015478696497660136129115472058605945591070136242997550351606083822178941141480418925156625213300493136993644135315838133010065232841751194340713927461256294216739279894958038455980487321058004504290073701800940283540766977829312614302491796726140443440045508430458812589001938096374988941583018670965291300302504627657032493555036445842936866451832237627045974809615543680735308303742666955616055206307068790562968791856313950521545436429752716351522570430108373016337971832946841377609154139839399804749706914909348716850522358140580750919956148576416893131622207351806742283927655467606953304586030788187370001824553375747144899690618348190120163322841766134833057939400340499696612205623040271278788192150442452128699549806709496292763722320023846007753540578379343092415168871935463654150369476700047356349087033649116206058373826856790028691858571035189512850728662625022367278022108741623840465247697093623833613493699493558573108788224131157382126080242997006616268263807883321294965763201389657451566567217795496436817104861489980174694820655115945042334657969615890530497396147241410024677692891271768289886712770660891291801334822041563697941975675955949433275354890709231490581561994232067679154692194531832576808527404457775679366063787861410943289956071610960921362154850968716516139130241022269808706495480412516127073174689847865380023519697890309608732976489699397887463942646979589260663902941496372687576098411048679032537413963582381717197186086740857855533051736620815087746810553709335477500145160401205969023151486235420290204433697561648775704620936148073015595439119618205916952337128048454061771878117264364016228842957267705530282870054356846088061415349866004754565729655984747566248085851945196195632300540322574798171133838461251040958809362412183356525241279111586880110850602045782139145597522428969880309084555504522937944250322643485921793336720563185655622107248315635626803238814715521938896865225375428863831535257704874928026884713701277988785119713405841599083303203790227392784670456006236585022445682632400120970224034877472378693693498094278391100676488454828289617757826806679002563786392357722740250377650361470746322761664126088199137472740007885130934864867695036140838293229863210448950842629643406763057852053443322066749231887536676604689293966374761297026162054772117712045573507714193595317363454501481439589921416962324344790585586457609917828092088494776116458555287005486054443501332391795443246717703831145887376649801194077206773781548644933874042427966133504505710571757336644835625460127353138630717781341491617902749994061131463698914608711442921487644438607016276603457452689680523303972182952155873770362402135153240114661979177800665790417203120421699352440665075073273315889245800364230467482019192865718891060791596023964989050419108157353676108674865801249370315007366247819828574319135382325925450206713961944065548776471707669259973675162752084750212043900552406578252853996566792854656527347263988923322898877364458041352200201735743529042404699527750304474851166134913605503214353509802022754665040861375933529254739893374436397766281034999223985552449306760434409370634616822389346155377605393245969568745637459356576169655743523722066064071022150436433776371846713236313175343465293246620900692978783668465854743085369973610096944334858160415793165732819751130160684414995700820082109368218873655720473559875855495033167325314344983708540231652699490524609355800447415702095468907498834146927439060828837633790076768525343957095713481473463302170335775327512464962964504055672669645755807554953414928261046612746203954390115589577876648848498339883456459821908667374966693896244167795676752345678276046511345465155343153165861291443325782790105918754350034067748453463939182275090386334880304772468415014339894455362385522053658466781288383640530051560562277445020833611669365697690557785103779517802753094326805316301018080994221755562726299102084799567255586429968691738838789843696058275277416522944097321812395611037373533286066294684254048102999007995569729504586599696657172598043766405170534944483771494666579696763442304107724736072533346984975320574921281459833774642585950199672205098307266774004557939326947078869157176012840900869426316399364839382992683555456057878876740166291199131274371866578135850154945716177665385795912641196177007510116924881903923546973556320238449707061938019629600993841248879662903913824829621765344230092007004013256045346200133352901269773405739663972946317617947139945415222204081904189920492417216464304739894687187280028174683985919587216445514812292666001581496435207108592012494633647420756283010993370894082221850170984282429068508290701796612047330360006615715728968774619716033341171480216794300474518990270453228611689120717698455974480575941356463968373241170403675119270334998721095557418302073023364048414009130152564401269320474241675267274999128747818564364111660154421957046908770592831270093630311014519284277713090313948419335461861623932453639737887665498843795320906408134198571302612982783139914083073878899043073054688504595360495247770819440687163482196283287479525756192671271635220236889808656672759974046853738206280218504920170065352593778346285119868860802107017752541969077740626354957547507295046661944548881713737707480443556788450313678410320957414951776582662978160913238511010565747611693924402512966760777114561533694799103519300784708578820912765277918839662523620995873923753151234098705332737822756483208130052983503180151233450412310394260490069570502734833435211129828536268739144896631198763331778042518769341702477785623915670550643752085849407256827028564707010121771767895713225349358232938179278729787562314063994878000212504402456766101551426757470948846487580076877714425192855705564727674036126933380386167441362677822810955450618887163621204110854607834816333942975119870872481977483775861551285297273865868249791518865037337085537561100126254564217372209844408056378000156984296899752296847907322552074209665304973349733356322075454154904139671972873280688189960274069247566015070988244009143327679343670848689503651923321807067238754347640945805233875196984309922755876572140420329891513999741835195529342191179383691500515109205139268918831893439111764087979214990664187581469845864462248635404861821769914984255355153096102992785705532131888435027116162386079675603997945869190633912896035840265638760525009149954397263225601588736739101229376849680549106129798633231075972512456997080696880770990193086072435892935026356201997461422819590709763120594541169510926297227700392901453851283973782568114112456756071597787461512269076246112527688732799803630718795035911974327452404725981191652073888993799775265906222826442088126210788460946141685395884004496821471198794785232514559493988684641447978084512855455870226007765320767043580453840213296870229383286651138789573822398236610536466199957527952956219105247071211589384913255148608926881710263348182206516094567219084846823246061585706434599034655458962052138492542744999166564886817910582122685019417355342875359661131259709590189252650344155316300795112947063569556344307281293939871891340140785826449011510987956272397637916289414755044686426719660639064707006494830207342266874790553010152529577295796636953857008890547484746204525325549189161129955491478041786200748268774053567272923532963366909723483250838585969040789316658463051770778915906010184181337363597271401026869783895790769870260986106040606693032706947517418433930506764301755029806892517364111483879345537518921561960379084547753673091245839951463752059186338214394128262737360831908516404163293367266878135005564973469196530807402783945471941871613862729363311982272446395869345376526202026528195842311883485383431099256606108167413662465009159529907950668579803687147446766607529350119436553418602956096847550414913651107978230389449402191390683789788105678467577718907502664544220120206148281939679501081440920119946145600066315032883947001897471150019824163816815714772662317542091123932967471313303938010858135074877800370683715263921382358456890054922668789782549034764918301850551905171003133441832388620789398563178521277113749130505097701709651960136996083850948749961317274628436554169372971761385708578874186239836556597939870678878661992295291781152337727352022979655486523815552173402549179848459845030036470475156947702548686776567986766141665186822034195626933762959437300536468182388973423612812377430759715831823469047272275727964398961202833621165851708073454167370090038772854842424789496267217779990829112241576730793372878288234044293399569179201731107392566960246896268481101830421698692696336707492692642813261972751812530866134537526982068504561202627259410529664410486657629769692048377501151476878782786426020510858080255845398918075204413029735550060389400111152648907736759337014612934379982388399658898629788124092155841351973486768797292391770834170358795756320181315992356741159401172472544958447032318649514749355295659286012428380189882101080886894196167192703985401926909006613509586183828243245217632139404201592436865844185790043197903228060383631896284119520513680898028729197354478955058195702485411352713623509875354685038919630142695197434575377201363196256693888775595470808453343414402375340909280661414587542317463465227953248330761838781044587781615163067610562682759325826307826762743355398496723783878157516824433165011231474097364974232005195170319705442547644100131440901934496747185186120316046519558085856983365919723088643601439929280349925176156210879375814778463693979385160812370206259082912407924121567617549555248799882179453872649910370318250393845090328130579063237298224599257239731171402540737647290398270359022932538503600513802528865816244932824933937782908012650840611483196399538730284124818485294487108436493910047750482231637496929289037145029954640960159956664448023077554109541310654675849743384431928907123775333076968127916430787824133850203292537210427780475615453154545134984815632350203806631873712520563626116736827866451172365396873638585591615965018249629332317622359625055985407000350678993823610716984718754387838601746675820642972129875128352038481985853840007857485217137185717421022941674985412674762538303772377824344711384860584233837158743702068870637718320581487448686881471246660889425817961902788643702617983365326774665565122022196684168467093444768016175868604119679754227325122608274960894080723105818017974586700436935513490024060033827063928875447371911677316551670839944669352606863296140339337138262365840618125872704313046730106788059520088285368699916493763712453221942850542708914074002948013693953673006631954180901119005192459311381725748548746810192548020075078008779411184944280295998922223965735655654930821643361534753083283715381712427115741306384666532031341337992488901455253493332197735298663509394591413405686686358401298240830282140378071167986339973158664484913750115607575653850117801020324395114002337107125886980453437912488687279452532667073962762349398198918762645377544233184222181108603120151810118513114888472179015448103908244066796649663673779927180878343198915407702091099887095989677199934988993363865031503909054290664743669903708561471757101413493229458909864134460306246963104918698197665711755964677066652036812645586944744058748143068449617115875384741031393927828600662582985329062310920013543562646092737114144080978147892154768863994917013436373055948787318802091084789449582614872848271792536842060759889219883599021744308680759071311887856892062846212461877113464527841825831178693854668341771519474000018981445419199540085002368878172787011563034637398848188701246812824028578059955524344689746512790800057587742262748441605561016746388893287297108993650636548050228032570595210574737334583124702191034344160282583964422291340485328678023685268127314966872991103124778691174690090827676280855965279667939671956992605208762824354980238139650385548012901483350077497480863559232043856874442626348488765377844199841634243687538607871827362277870078008303301410132353095451818053200067307323109355233308765237572327671022598180007322502702786102522503692371136056338847682146625821787272944682859099594405753425452488154707021826550377752035975341666838797574987583081168332657491557211600751954797908278539224400030295738152262787812097274832736668914455582641025925087922088355553248186682773915461439779011108216662854316539914679744079967119387815726290713899307912213017398697876918970182021092671747474639808192894820688283214686092379841477084490882730132841762714686502684904016056793962708063766947303144374055841133869289950893926143785637157109092901634519899870144429589600635693834183985083594139982778354017561087255242860848488340955797026422803021486436613082702272959711134562981639136088377639777916431580360140391288158088405362679905319386604547611711368910173450465329770690584540870210496434914625296983012575214098546464186835864045000163006395322906138504021621063574625240278525260877957693687749935467121665765736934965790950413224696491863983893781190369187480685832628009209669796072895179325925231469346700758247628867973458520807093927856946070768682808328987362411495792343611721170209742455851713879615185022191959636979647156870264440084578896797677760930494575779504997033336926400984822168341606113262448893656141169812650279160912900212276168381519659719927956276056947507882662819207689870262919439774986076100093922235462607193985070342322823719095630700000013072229107511588676319174375494403638795805393627376337788550860477731979401177650623899987459447728686371457508831568741423066771931448864515361166367190808830442906552104700276989055969289078066680222251091998426738711986450136385932252860177167097926234566790715993103585087258638804092970947268187586397830989142224489346563569250660730583044493524659105170949702644671791070460969145688795770406977259452860330549930460752021485491863256213285839144875372814409206716105904519912873943178875466960708503775399648933031562125821630908115265294036976045842525049625797646718867065032428747940325859541527649929018416275832853601218678443900318206623529247939213435202855614989887628026582852842272320948354551376100536820760763873180441057481768758494560861095570020752964987911791698735074842051617114515029605030341366757412534823732174571441114761419589964048264238491826719329176781836222827849552001152106247391595873417205154014117730988993212625538968154789638935402933796979724204540969330680398753110002857527375750686621191135569839811041884096828451764117100498754776662301570241919497143133559098150234587241256212632692807639045351920801370184891085360739568322081180362282831919835486517273682688764445819527484485212551832846097984938794378013803911462246111113788485905717874850214188447146503270961920286242258257805793491954962278896252752391433034145307901396506706110181703340857486261942437613953881726930363159006896147511973940867656416705277130514640866910659131886787203556819966767067555100681479388113306481707872268150746170496679668348501347329164857262634542042506861999883801769882359618284341384713696500921864251553436269516855621614086002701648763558713156154519730249556194867261846736988145849798760405714019337237394515501189619645026519023900674137035201619371869719167017388097680283052758586964067665918586712111519185435052894683455002615221563041685100052562772700618869756846451537423127335979029134046184234082462113692487525012400762234022772113205699424560765792601923640537770395922502407130893909093232996948352106737555420336944854367943052290477023443363215539297752748378017089026421191955562495061959488505272434256575961186552812200035235445719644063909504471527038572617633892807433976179380581221934518753207420100873701432272594294341554969102971158997312181777754828396655304936134775242263923086645032054173421308863159434607804042477355505035917660557756140828053063213939241037190971736452438801224089821804160517959123534515400043597994258587523120742155642463477958066377356237417840544372768455153472417877572121891414704889870313889205486064525126990431145184907578894617168472581880524704537692111671022756275714028510619834895388930914274275776005201403050663546368261579355210660962901285113125159738250557405783893668062441550333909509690489548847471576090260330222909167405889122522217984907406246728602842434274226727879899928913024366452722423906962394421385355553591090638620994869592408182211927330709467150151096659867061807981608021457735245453728289816688624385374276732289564076238663412472738858878729876588787448020425188741416152473818356278422801876223157492731388977709415183454295215365809780060058997066842018520891420168645986256892491789348061050202931011401089667842251505535767678114724147032046766815318472983400878171586966354955673702049823071553356485321079107998731795816487216354299395103626092784881504355964271229948017785523278838060428504728088530666318336965248493783129515345534737473277836544143160357764591453700716381415362764160361070014061505488377403679719507375790403549225298627716106385640995595511817332747660242473038660104185702173591565854239551766888403643009889920209373514077078799176090804895260956912926105124576530172874725988171807462588006882759234732435209993961142186158028405522145710169652197184668497856385691020744717921271062582800461054554745806249021029735072009143671662323310689318245526975259515254327367695386686943290734740937021437206646157412840298469364311628389457637281887445757492180196644557981759188250837097239597759451058656464937100721971542263746961300069387297796291597785787874057745366272960072274631489625893543119363023158642732867798078858543589271031315146556175937051372430654877892289416770057984637336569535119549605242641384413943166632556159327227511033149521492349425668377672884276470314118602865987032479060685033455907793627553444162787420147016849889383519866710269126320417431558696262219160445174512102170805300688659273254445082598960268268542881774226664434505196768826746818483958324010489747824009754624914662020552532153040665625382170965202062234271335672864940561113088855700521282609246988421957956513500202555790334219372350792387808032809788034745028103821078754098431451167547130788856135555526862105249159802597087785320177264073482110054343920962119109062587652542766597507566021236779109247090408340630555750344158219370582070976523785472578612699090346602076261292946201951465772673367913265514920089668757007478616518159396964337006045521304956869324959890390976417032037217454264767503367726974390009218686323393526159803497883183370496971473425261002936570399714351226083691864594793224973590213129350729924373891090661902813929907013190232154742061646317677266881220792113408623477888655183949639162334552965453024575865244755162664136096141498575034524417410286722650097602184229375816827507165175068488304129791250555153274383426370020446630922310805182816340568102141047811304834869606267562316426962176125011480008828837170313926359279272785587192842020516651336026990488552766373614344730596712494977082144040020664963471724051118566490012207832631607414662925527981434184202931033967877618687366100059063436955476197549181215571003172224788875518899501441613408285048403067874731606081746117407105065054265634352479731151844795894441793238652486082261593799283600756727695104792160095261989528882871003803954022281495928675434967651933893007862947454672169083974300038963137821283157404191857350190521593650476146385944490945889762172383313197035303966913606493535982038536627778595560956880664992967609247291156743583702720589977265149604638677968192661791807932842869015038624530502086214900908864916634619168379226574839006407854666755260002360969313043691159929851843802854597602449381033558239534719539758414627214234285170478334114678104027079364719186480855102763554062545513949000722683573564305396206663480181963640545225420533842054647818734500998551120845478244663391469253019090155456332452969193880181830060289325417728979124493140386529840456127266797643768526840766363958762837325868641574984702802654358243916805386519422611940766236882914755513571830041509975260128121506369480349571778803872796806106552358032230046213803845994830310209343237741220323093179213701645438870054186347713851469790149245639390263716643938063207439533170748744607275696855391581946326547217968941032468818200362193533604365389511211010318882131838347488723978524614182654991883990017969004286300015443280531287761477052662477810760870824920012238599676041594734262592023124521769873722158166952049310448940119291817748250292942363452970282961091177581546733475583674536028766126495998263344593897339297758833067902058653374939569320461333951831906082482861985765684521733801990870992844903778110922884809841382417578970266824629542478199190308845902997454588450612272051096493435723639838996023455163472656326306130153051322885378283705315424963146316841723119267049645708607880191056719000821622306254242766411228195732989841169686221264938847646779521738362271559263851159245490493580680923366194850719003051228954952140642316130431964975100115138625481943979163728629086338912724885274810462371173863817521055851052243260989108286425302210155656119293385750022852600792912291194316841108410475378409790670889784058246409464643429145301563078846890516621099347532219692389768761428722603285092164184443264184852498662957118113978521949519103666644503134417076944861940487933625843267987956223938954618548094720680231555210379845465905723803648901657090987689284296260995224867170378158503134726408342754929344538576543030860896508481051166217828217235066539259736501782578551843548570441159646194068750744393294630681177758767896845375706468474848464990701549700420678535769208204136103071886771004164586305847744582820986146736213161947077394802978180123507853537313139826318939305159283527648345647338954334843503977529132998045951202425283276967026565534450606491699435677580988830075127288895522934190768372078791580369471926268149429859080970598698750623483181711861980210024891777025897876166269427345303698692101279929922190969209431997593607730626647806151324343035526894227770496487706720488212281525063686392517611588128312184401459472794969458940762073134772437611212894628903984639901047739780301815045033128863746904278687927763674156387657186495012022601741950232992562369538966404043856050976189686625262496403365721481369805194504019181972653085979238190686460744899817042939184994939255001152247799642860072959301598575970582645594506299729370500177175009780434881698630537757309326407515834571434037676529720075553452516164653243521838966727574336769078703690380237087265928122876798349659035696935766509450708663495275211629912297203240001997300516787639948448795076267550526883568360240466089516259415669073426046082406221901045211646887253310444829417712530772692269025028905325805906483395666223140645316388233131714669443643134951851427080779818385617242055114349471567892023022834288984631980960063979824599044562655116151078201093864634546311151593437420279541408636830637795305596461408451696430192430865577533535914676045882834459247990270089953224355996960384874986687019849987727515163407812871298366800863692095291111203877005654748157260753682035872000979438048839790403863683417200391376498082168222448468948034251447951633680789060588687689036445196244963110743170461774377735473328326924745054715690308096409170531782365467550007263437180269054554590263588116504339394697205983172714759512721085892159127912428650759561153401386124278151190247074765817238430823481320471242476407449927876981396560879352070623749066394983871692153836597751554604692874344996898463011915971849026624700818398445507207753925338852389657350273821535134464516318430569488079585239634004572094708947750099534520133812027204117575399957674373978156618659891651583604267025430848205814566569901223119514307337073123490007255838761052437526784746543438173567144211313107722467532884766205861078437238368400504682014536901593456139546084352589355915739178553596213334792310704571259915691891267849226515351969639252505561892778339757102088228880564111930676728036819836483452304035185838962754743181711136707709445081515999503726119337997877800011847107283530297843165507671644447586879689523103885044471956965452474595125856662484524765775408808991008268675306697131750870833158403617741381489523288887380544081863459250489564693235427019566855484308445634492242899347172807898391630269430059238632476599365285595047048276643728284305795447772333730570044741830813668051343501857218872410830955456897075043964565466236941365883739140871698710644427179517811932327005323664247454804247722154266577048551349930663992075651521156048121852262115539508701910024204356170209811652660818717421348170239092817948307194622305831019348791943016499045072704486236405209665344235338439520502545913277448103500562303141548130296712387442048522193200126556559563311486149910141635953455848956139670186536815503338906651521350236439569234836950039986808022602262617782452674804034119788543641384768384838048121279853160225230751846247049609180218817304307165646025150713851543871972681545515320006489254535866100956683976158402839874641932819632064643698680324257425074905546273561596720576529966994870015206945518654369856213540687863478463246042204469161183815048831662009082737914213784092824982719263540625428362327641768537802713229648621149323098771774160827014135272456929895510094970746492904624831460272337399597405751819372707078802221144933739592452270967621089903715618470138209609001568377581068501797651739687031691014596237957672669354177593994675423999925508055395675323779252114773805527847034089579806868495443961096372924156291963785641744213803120286487458306954000262467701775580036966723665655883035485747258708359822182497077969192168803948817639500726201524956410822577860003028043903189033878850163199044394932125021728492702929957928462019193467853150390287942515485647794789650358932428771730384500444237492369703343573546752473020593522303962761004594129379420339600001544152095755774215442913419996649801264040968194612873658561205371437179666157822466138500832555784343860764169613604257633286350296666822197903543311114811308022242973878468848854274634596474085958793527035811454132864209911525152785223693113634078571476310154768707884377126666341059396526291010106144304837670925553361614076353928627891347698016906801732995408421578310438592367277584498588328609499775422680793053333428681542331128932031907298192486581638644312696184506672694133100197510370364987790946142467708411344305656497105016452695971089003962695404444262588013499064207476989618919025699114428743427200159641931646151390477877329996513842970712438115095956492839411827184648509452270366581634376921373465415958525823673758291307441437302469084893178077913640847205821641821486020239978695142350400475613909396188107338718830406621366639392848677911422466577522133998143525259031977743025961495687853598723513994709882496787043478451846687330771631870868234013227313793808270752719518807271876512193180864319314967206670287205644378726363646214419086809120221079358237226218850978029344302493400948115315458525403307609908148199780578129252067465615594716048557004493341683108403082057880738731611559591362870630108942660230490988399984042444373032263035368092304722204272634413519390548200976499154668784337173740134692906029274265995508983882262396947414276257983833939093511218771749561357290200769968347247877552541744244013495807248116614070667348262688642258959134221767453724410014536851121771527492699027798085402284062851222036759054436427959317214415266511593350022177552675799647427702046622798285788058836976419694831867510873371062382557454440836487543767242539714071214613875918916923176313059447510351233303276794837508540764447184992236924876250628783515006687791227250953983422783760971245452940250814848979176183164018154133437376701143160548725045865599624821449329091506626513259742234191269550314821164440441892288912202548660532298378828494431207472906300184121191416740710276862352156105924899535370382520056147976759493718850626757812457555282654049920992934848168452844019019435548862304982593221105243914686165713167456913523689356914908494889753629008034431608562026563819129708019591744616795153053732426912583058981805899752787059533883820975677606504129900780436403405397952546087067445654803667806122090978518611078256983517982847151031681169789337856362109596951976350152697227169758530728094046270761870463061982618001444714730819577595283943394685884261312506457799780443827785651075222796519863376713898269059457097824093811051829636792749169404692379374507053587894273596244696053215840034212747806907868200636537643978114250260150732531683446186233751961941900506382373052875867149231438132958258060510126627111478683903427190875697166695369068864352699617888243173519920036143088354230393891058417347626501926678062674343275176452088694604449915027944795351133353255530646923912843555705669187555436422460989074586132117450894409922270195095784033254515299836443615543847795141219549338828497436876440479648059251108248585541174571822968380981574444203881733897707241792396829419223261674090390136088771427308013497264906417094995104974982682753570576030142595434254518335916564683001378478191651678820030663593472806205305971600250131905881034850171073389015519285482221307708262134643859131899220775748293658384633289048076609954696404010609001428264411847808204803096093109653411520909866901745251248049907359706436401740080235664603708913079953893058458215194708614331208321623043269076493119960239992359739942893826186658767890083783606174492431258499188507404589844535974026270597931454779515672296036665451776288145055579265834021604985319204207073502516516617294182592186251828995474607354731213232903606908196814146734438895508596098158251666622585963222584417743193209357044556775648353388724619761403649420143774383792507506533820582299278498300801067841387936732052705526835487467486961577238258533542964405822563100120265051419807319185642925458391868716472737534303309034762286291093186991615072258127873651042276070688219638828181438834298529663310747148338740003786133626039527368671924633166272911421739862735075788213967229158083293126849562085309491226989487799471345242974727250020266401580025826953794749001811239528775706313574862777947119271983021599854909409030724945143554816602577244702104018348606864765048801643747585046673931443954103789820848214187814003979376422960557019992372531907946165348242419715700751852797207435257049344000746693454068662675973935645906948483578880403600856237486947568312335920425204842052761169090266687775628571445434810410471357191501146307066880083136376238440605175064228520422684072686190760848831364971764228076130325940340621727731636498635402162326814830415717988407147268735304698972671032632865152853942692448275778361230311899048918808650312679327379806101813948779999549431197756226246615719737527731463235183464232807811989022866980562975622263954472681588182049443184847247801102426859663689858192521918138267859083181163742437192854402615505554793862476515045854252687328198811612651254456397808411656506600788600365356307894203255942025293356290613989638691318101721818988516922183879318763880791640627942206372994896880414456949067288296931297041289010097798553134694966838934717987776172545910571425151856344055559523597688376920607240306787543711825992673066690642414284894643507088453097902977819839159958068368891313338957958277797064316448586681393890803510455375573300203139788904988476207281985678305601098642471520044428438127543841072064424301234261799740143255322926754453155931797763776968167913583233710310988838573462731859670530793744236020125321430559590286737253382933882399437768146041686892114919827854823033620484406394121421850304193406031516022985187170056122061468526447082486377225421749238517180936830727975619665221285854605073983957906755520862573707219887084084809721146424102936559690385852658241105337256572954347571629788956294156513071543089925560048321568014051375703901439605903168152081098515001101051494260365354433025149664019441421745914486884744938593360958147511380749984972767543959313767863196318210699435224407537751673302005590346854406336187870970232123378826852180588360850515246853426836838938766707987567886776494583095594648797046806831294469599020259789080093891007629488296132372758945090839626067455463495836978253588734259573379841064031745047004832735104188709056446505703532326121859921619370903762330240872438278716674540772030286854155432590572495772349430152473454774085748548323852542541065900745136594169635910273071210083061941716172453259187197379348795590745891643166740567302273000687035055654318333589765477666444390074346089397242582459796755376986622462284905452107055949697445257664975738961886811144856366763364934490503238898568697856099514899898254492136658955237830743415375390702434597935479344302169852217899028276209304009532506290603281334980499373305949403172205176033472065282819792901539607138688692060431605117556116812440986382888994110080562409122370832331522283000521379007610283773391593699743485253931606263438378343495823188790093530950446904623066296211020305979745684882235941947360919226985568577501618557633120982519919086185247140150111256866512545838929562178914199488222649579845578819810395949262595607272368413510013419971198381536779007905540444570286903314478312478161123829973425199732065921434520036718833253743303336571609187152369781748656513058668916605161096949638051649231402740921236825828281870262560348989932034722938649939234139567848669830268993037524092050136866658653437691615370975811194233621250686038995364170277043490855385300386240675638136231017302420122501535787914067290363923814720925091948535979813174405613301137964111483698083453392830070620587469511747818561321554969922794239908906484542839135667408646939391906978992006382144909045017987735671043741509774985834351246593594538040466537195066264859552228571380235466147079823925418648431119882399585270215396024793645855561954454304676400046044846795851269834862847690156522445836567150609728688694715440831541635764569528868486630264220289984663043987247990434758546039409580228751038468495091200420792944729363436515966193050203917500931575450450388593407347431764220081255758100615625629349529349005385852161809834493343340082329722254615868353997493923028339875134809751767803117576937139207479249332853164597001166171969948357642983824477180776786073465279811316818876302762737931265845192885893697510121125155604009003124759946896319839538891742091431971948082262029331657926468133534749848297657946808997774607918755185960275223766774568637425017254126107330957954306778340675612986426164194984890359928822453891878770285635923294754863406574204997588204869147309088556431447142773471775495152395464331635996442732581768127305151330446053618440248887410946555052457554259968140448542478345059529890824257497041720817236018275243732653674083117008464760935881117506854198200240660987152723706689757250406095828126771182595923892030157012613657034156444983614013181426542868926591578072556647043854842793619006119302498370192155495262158991432771502988799523563588028835357944135616537267144664531164880511275269551216536811002565042681764162379173958850969199535292661050012375322868989998345241904191618859264485648688572289142699669336410816155251700251910465518858316010656075157187585859472456929305128643870693547128743203440834962463930679715554058533289121300710576215454388622937478986831204109057371402956448277970678419940151492373704108562761013544598478143947244064845125165711224513455821410585692497890493511296483072890395062097011152148039671130976407077507001465376652114638017469631815650563687192073256480282585855241300559322654269796563374105414277722791306361381374720327826275079529706213648535133681716266886494601401038524114064030657684040121656638949598745380588009300378449406355091890498780875147349917106305420149830992124854910775633836009033678898153448978429940302486697071713177048416627874771102822208331270030328227473403509131333077499356405019548490754837555019947919321066445837263516215562833223473303236892395710039505463561122672177896955558530440787428238997522120901823669882433584902321524793169380021784139131247288914558123301432593884243422837867935482469866758038940249881263305262093887533569293434079794897466589502344812482709486956008271442681305053082038347033042647233145445221268065869201444009186923184214076853653173136940720210114829752274789661436167418984645410577147436212137320256149690485091090967897397309727498840255089982796120798707015349024844297876513242488340187126379176741032034935273710630257995353987347520105187934478929288119981103253069471305311696570378873165216868738723366067308519946715092024033270896834421959905396573531950842634800395779202282835886164135751216290565768272352124323109118220483663061533786943526019064459813493506913125788465811833084991934357259603877461312138150352636606118772162032419934052592851950303319894702461626233127649365985127782413427302887482646322959486637582612607238584022081284809260468872464562010807572095966357623834063853448516763564688218754394866891197966336152653580739825011695013367204672507568449593329857603713616413495729637451250308208096864901863370377610490691431888706995915842456887648825366057508476489295621916715687148594855004043054775811492598307864201197612236822526777723031193962878071603295435144192356632433242514123714822549858871229533575177674898121751224779292205555190058681365374026098075051787424075753539235632607933938164616199755958834143370977609244183771328481536033593690633185563980747481818037283977313470804075725259119969961676787619952189556385699282863137475438445842291845611351911717667875384081863228190805905288612453761270937735869917243686013280153402726960400236153469526432141934703797718985214627039008200140208952735968164157486820417277798161460173849194709138434668819061263777837193878285046447971940621887456107601547624967714827150122858559188688653593841500045154451972745740046294320805233606190281939121949880709461809659313524414052300612573822370097573945836989425487840499866965446487650217895581632436800758214810680278756143394423762029577736261737143830407432302486006890453586192579184357827787619086058064516566090078372131679173068735005562397723055405833331717566672720627647037758713838689221865565796053504573231278407472853237615560773517641445505835228318962677421032178427288456028862818871042683483224498253106300828627052765820850741532087982097837951226398624804872041317351406743271152306455682428587079937950900448941368647479945675147971434474495990794268847171597860291095586452171877922847172725310317529451665590976733865724443568576380615124946489563312541872136410316003606761430280081637592175775823541555938218833008709956780564938945398126688045720380907909935424754062755191696551241566411091188780887974246344669886649079849309007873510693311212157558560387638814702998099512648979574471552940673835526877435341298602980372476607683832254988680646143644741179589053111043964652475568495878223526819149455353247903017784449142333050943539115761065841734272504093750414854522966307393270819148641161461864499324395895306546564184306019827048129352535921438037318416610274659596255770364863993397970373946491264669270249446342628908047041420369277896611067338907376946639632379290956368692130744863871171881277232914224343023045630617631402748972682444179018273163783966781553165492327268907693088713804166503081872997147695746153062768618094006630586888804487542520653371424540497938626344501595386618523043230854500533281274118464137838395859864409221893277480754887721016118043338881763884312070428886517794764615200019333156721592620918665382462115463127180858342030490126653448685605495315146625119699624290853503978456049762706879051869271866337662753077417545065493179973211687720285659624353824698895014400428342531249114188644322902819266846487460707415202748750618564129333330167824746798665967733897957471452794185481710172536435305179382813207191239316163939421387516383770392153093021898519409420304607695977058590167376786032706323699920627102095240919474922011133415064470549366337189912430027266021486137931087559273567607779961304968054218608726611453466130635538468876320717217240748134195466096731925478194902772187440340443758415893954670905247393977927587041392423816782554358057579939641292262912745636615893107586151567494090079833569020099254429056191076310365618379948552204799867039117649780986786786354284607513622925204318327985180813580754357729968517979158428617034248609578906665452690133208290198559168308891074160132411027143669003910622260394921478704844107690194176917250738190018229362948601868292342500060078893419082020510538022466511445501549678810537060881727868389427978760296933270297298160025047477210992838119201133481064714072903215006574283197793820411263244807379755987433693683866802876093702924907736604960463101267326950304122935871074513179142517974592006549780791157790760928479500354248860856022116234801900501599114869725162868206953569275360471339364665460164057025838297797681831526752943421676626258213685792704102542403820217775664942403903192585947130139295281159428232492941784733680953839215023037739355226509575397595159823416040240124170003436502442997290109933689297951342015099746308641925326699161241640655045139983913950769068666036681599834803517498445775218083849265018634298545165050618498069780771343588185607571450880641711291451325649369814480236775965789155203420798808893011872362425267488967379412227791833938648209780874950480488967412162781062828852752546486266810699101997152193288527516991420295395932993625083375411570876656847178800861921128181782874125040322873015059420587265812705834431939285916911783654103284922541649953658907222272886330840428900062213309945289095604118129311647385551360628348948736022125714214213649863530158726170718819209765741755959320524998622368094560269090762611350089251205282373848547332799572586102371446561063563661682920993797053725375475677561014518688625174064709046294910569609129414223905892388067171653754920026059074702761487485997669999950664920687353196395245306950132871058855180127651084886748771015930536255053008223574343649298529891150011317830842698481088679025109504820616612197408085509182234560366575680179564700882316993022780890828787530585977607666928659757613623977337095924463863720028902613103167090382956324392162910759885874020950795047773206303778529946738160194866278254341000144106312534988004904169887676723709254034003018075600021872341472380376493033124173709923987056155382630236468425979137943742556316156306322555527519332767629318918302916056998367999377329213364823571753209711479195349451445828975562239948778624356287878772743241833087397655927543655148066672998926668785262124607678091958480697020176386889251590600712799256450721714823859559999191228562939189429530608842750478910452455020621925563636519816025502596776744155404311132644765725966756727673878000816736226217746341283252085108063053699942394704848380573363942604444036497589942745308505599764959845410944353661729304276051949725012730603139207065620138820438820747043565458225730231127258335044362860674572379929875650208214375524765970162521773251578594732844354056477759131393822949862847240071023346991207357205443291881533945292623202608537309061303031542052913672513486285837804615712506586764367911053129182845241851082626594030654346267058341959559223811998788563098806687451443407787632393614567807953809360254072470219377095621468809884165372735363163427726328638604316289414477742661143771666911237131230239210915065118374003040080600966019035425970486825670016328290287656881260759641111290314748925643494531623730151920771490322234664600764360260819779777262903408346152938800028261183987221657348739257690992666656525425533606414187483225518403867943704965277584597904267264254674767273882076489969401416016404780886560737112025105534656673156920299996304750415443799741582339314531931097437584843522619542118148586239132406850111800352439604244167393618861254146910708977960508079184300944056088305987021883940420665135227161948020832886853254704905668660963001439565265172446886424406053991028702327218014858067729426461743274043493902071732884593607143600591227263751702316766392222612959775652102507690574575403429316326471203013382682462528142859110008298590456547369824628469821752009034540497056927837141498273446672454951565613270868531099924772524946184763440409970362145035262258811662269726415782037436134320851659209669366871752572052219031068796441815961009015707459589959340865424288179111822763308640978945040429269878342216815194405699614603103229904752814218855163638984662132116778158038601678642818431502734158897831124293989131016874024917074765732395555153338571670727035582208898912606757633472055751211954587375702944761675228247017662060101483661718517283390459128628252852934476740937800864161341412855369596459380307143134886471893294014394518044171345759817919205357541131611197879920254102975948016186781998002753424646498360014478841508267884103792596008939965316347561630265033329351845724774188645133470530122133131206812439710737296441704021286234879423113814510345446424851435336202269581502146155493165425054726005608792404462714456140558965078109607408260500370864394817050212243385157868383859685376092826750022054757033211519417232644374695084361980803289989550853133799435350601041328766372261923939208499599728484283154191205617243473039960680921446664806692802709227850404635443458023031687117137011803128578086983681156639487724191776199342567851746352269070551557310268808685564912744938370807419981637436764246047130553984942383730663501064307886888534364445196515831695539010547430013075876634941145722493718781652014531306629295956055484737729645389349740665420662357768067878185186368467240500522290715780401190647490266137257090115446871326534324089594555298503816755876449732350007552903021877875392277968133595865185802826510133882870788359610431698599083854458298591912054877821267174517448755010024854354118350954814209556499300455830534090195533095364697388827147871901889069742350168322289615893512805085648400149094085959167629619487562473979686119918553405430229231241077911622787415711829476778591163835682529292735610752701189448689850805875800547883957029983247642889336570405712998628666375367755566997011364954906561580500744670375128120550725678615288044470734758152694129686627046099870310729773644907490761973610607300156507091063207845921557212539774882844854928618193351772013174236567434798894093224559229949147534251432310679998738234474718211437550779475064286751725788354205590183507141143345997456648816628273600490999390157774154353270334510877570472471493862926805643115541401954205728770160548163702070936403188664810998564595501568782780131670208300567371374805501663193036376013517511257854456804252678651413503191777705842271069948656900253104080247010370991464128249268267826650319452450923468760710034241921153429712415947317433967442419377338709813257005694976842519276053263865596566049597700552327682001352100488418445028767642019854383306308947582045320375256190659378533202628814295965823697857995848214364934609613435171075327240883798290389233786357479550628803057207823732724978962288810632705585842531161428101538173174516175635659937251503487755775687034306850997773532748451937191433635087626969293955783156319534603042971787316076279419535819743484040516274005033905376162938390541573307528083532007435481200755485644925030152794793276613271056537588843622777734025335493449868065077721691709943625019910707813320149648724519251261672014222726247907248594339662442972479651897911421012703896459754146863169803279504363626247411176510090850784302255695065265516439663331272514483562868442903583646633573700675773582747358630733428023646757291774522951350257300725029781584888916362649742449260896353044890689460814252502511621589816050436459911470955307940862817601529119300682914199985219393215171206254715288431996247943846396961077773627686700737556182147359650192794443227660779433386640195773374744529762482532158712428657468737759988651263239719454132292451804073466978124284934259221221420103690315679560571971482532993858595759779245640638486741352877744608650693137535462784159749177823594248749438587896958587069687756753098267083403646768396348956945092838539000600413027538131358571126628749400485618695793230293112672944287410258286653021508530541609887432094744938888611386092590635173520285420724682520381823220995810836364631355137092732721223429439061350427659811593075673745048562098905158235869523021316901691679750842553633347264594374246130816189666018283363114551603299630574109240966489703641910238896917656292293778171892438478414327249213081919677122502780081274212375171651886451568433036549819968650148208682307155156106159795704103891632847991108698939537229834133532640391701206970878710890150428795494825533122729188864094038275599509081160392239484246677295707484091760550642019678224836330061624836641644418497968215631183306102305801733840026426769750786520216127593064135544030610921364602053454189133067711684141980472968383698178839495656231854789342925640104314168647443471429448589600470040678659501656527851755042464153898310353307019678879475910369745861290953269426240432453561297007417748589843331391189063286275295809064664163513438406246522412302087825412614436941897374002224026633091898431334254444406976309489504573077835048208129111173248649525272553392731501883679842460390846536373351724890037684365614276586645856126965162445699049731863832320135758565138902410291645294936091183796096542611011170100192585784913920632636087959599765370904824977572929911108691314106959147276750946266801274081812998011679570392457027264075534078103545000174651131907247542022728763346021299437615672683054691974984534111825621431982680492024422060426899643381047243348512672371551077614602786566695244354695719437939746661442116780345563981306242588029271061417502633662154618541030583866257028244748948432294081420221868729783207544690587309328676173373281928317696001849234979455277642643519786989785947813630399307365961248202663524061979467656259993675317214217773116318638825232509882437916811390070411929983032987293114421969234407615977720700891480625357984024797061632885661229809193376035391516508113479829926425536731061258096577138881572376012615787199434541773647134088676209927925119268380608336569805819412775130593449471863925443895008003089833378800636908385042795843711725029597138167960940584721487601584805487347899585571694800951329166836000729167348761425645373568802647510286665358601781032537222496964015778919336924072651429098721436771300213891938704015218064807083092140968188793551194561621390675153900050421487228518173311841367733447254393350235105392160601372545861134962175512764037112506273142321430795596736198142695188127090247168326517418474896118426130887989648658377349019953451838187450724072261415279340544549511328750853447282051572668687626697986219698253773828277274013366634085823923036703819667885717559615901918516332973881335239898732913342415699249735206730969034664882403525612672762515783831071019192165915708115740611400489121815745862748099487757404194980124143593270093546243421760988331437375202057238923908537855243786221578808188899438180653684801083395879020465371451188157712418651613784705663154862723429930090362024732330937899094020007930009450430749885611240826928419907346702019985410352039685276365336756846787446085494690829455708279185963915114708800861273638501994653012761155258442941166887099912044213958501101822666318264809054819994212508682757473188676568645380503513085260574153681594607656132466439955897787429201421420524984698996529808675001329521209972046055221488602125370258651691619858045130353478259662308775953334787497250663384072851239396857433348043353653705752824418512390838414331896089376225948827560718238049783916586085271646737077708635521486072673962403675924616906970287698840975048559733092234657541644738990346630658982484428518314658055629067592253265711324539730177870263205681118374584668913199284358594723755123177684757152809575037456576990366918444386175306162226857080822039718573164172975783161522506083340792810681611007751982178375848099307237611886739640945998853037927157787754821728356878368237353001442732233361389301285428924671711924544185991392038774652503541839886711314252432537532814381835247822189431804785191875368007095784537640067899619717037466785776198150926289564848484810808187325804977961595826655732347247347976347839672994170849861444103021833577162182015367326984931276513322266547250372565410741705753293623999794299614022369509099827000176944038247085828909248881251605210652387362109825882587075001390971235759175405680329545940312497887786842808408854658925550521787962876241762275491923121782475207963940723859434450151862134372939201656868286805844999451842551299104996127804132653036732375446186200238369306921392215279952144532883599061978218002541301944528039117738878775137129727238423764500566399180099329126882776900997049848245702708882803261931099679310111857157524173470340760192851226430956647142139858542003375367005731675757971891581258138408820435273487666874560479671077994124352508401729918150202906646073574184248594831398480249311741870061520741368414459276319808320103428667039110246693264862361499125815161924799389080302954772432972867889660949173713904465719922260447417633413588573879400741640966224630445436461472343895543456169870975707890785915415271992045192181802955785419889646965897719576726007443714478257388676255791759897431588030316897643321769034687662454619755827252800471421395790157676784642624085469299852853051136019685434553168947363293678325294172286016294326635085993451375102234018803189763037536152132256812671316281836213297265026181181321274081679027210215445707837285358073692762025094077157671993357771023309522359194778295023653419758295970926625915586936630600869601803921819357297327050920166245765894413449826593854344604209618509436933948058532817097642243846957259517683054872430275798330422671516702504147800623084935555024015082842419154175995923707930327829827614494291103562729357190369722918971284751487412574598246336528806598252977989879733411864508451941123674821640335856786805495572613174940541079354473488033455444737528417530673576121704614169483201897756039634233273791836289365184274745931674228569812198185837424051184334787799614812088250720963192250076684585650547453666838694827595894849427203607877044050758815492061480822970751867983408082894825422819371397183678154960254905150775170459921324064404678847391667688976604304863056815450750899849288601197307783457280318332115345457692495025056827547923866969627787248411449876817020503149394147425278401490611191032917329328933172300372409130689914100210447759930258498124305193954936614481370612646661652083925029999038145466092672476356827064829754519637195815837942107628738422546893752916894215980430607888481633111723583371578483462754371776283141432791555023548516990951348400625550117720085501202912698666229581252672349053913849360732449094820712998056731656304771746217684059507807488186506734464392042347502332608590101378798936779648457194772957688159253429963055866132885678381764830937613432154525150611529333195937954596360826573571369344272334099637125870782396513016755207312079584355129721878291827749805511644959363747966624296196762757523745721213649227389632843150907764230301728060963168083962978601629353798230779913395118156062499117479454531079256122429212699847103013414190260253256354415457084539570691739009676870737312526509709999036288338256372026551765727133775628613500101188131264171689071070506837993920296069046365307697655397218153555799009108467035488645030917706087190287471030096088507541955362919906328136849964911074279774516872027723826702693437162693903889354439126863617908568139518134351367068733963917967305918574648675285674520745948896269793986638874529919311916666423516504675464446599117548416408965825388172772208930720112570141399617725466645993308524830799199543206887837182718126251098738740492806002137312917432358114181490555952110740076067833267871394847251143731508704029019971160440728000718954829239432730047033204970358669189297356396736113316771884808912068640666365708477523963307075585497531991672679670077373154186605828619663968931770299613282845210608875981959874162731326906817175244877900692662015991464221748089232334205872314376908202336006092456304428976446176929309308186012623054757365948642272354758910501271254173343107931570025497766022120125387418360004690583564153025483087426710612936747755248819449327071319077835000878528365749353018572941967710434664928952522699108975697911217111008280083738782390970961906133718833178415739202906286692518936912081368184664141684288132407914146864874060426262170430939077907578136103750813743874697815485931504244693359165533365432653073290350004794356160286498386119789425502278915015304075526362640524475318059495632931236596312017872587690415835381495958691972084149294276238502122583930128701353777749318989698361394865340609101875558418532859356039217678064830713876197618145909684847895018272556155419699030464002784743500581597710267856552017874587054546157288053402228193779858560721986279228966575380738037508639876765660010911373204144994927538674757866602664216085529139614974047962310701122969509587279185814468490687604735168134645530919247040555877664631769003108497089990034373505721484466217719131361226288533537601543862001592064603497145212941190406983348917471477311143208501721997113252362580503978397980305603610914371133811913355820694771309262323010875971473078575715334884148489380287982548854611063716550266655626797895581985086892746172583486002472997155319718949121731436174987941238845718779194697238801968114772921013073424882058049004734100080684589958251492592424699947889552833828201919218057179343161271088524192441380109916742771802567656347636731902469437334574464441499909546699812596939892545288662401938361650009715465870797491941227963988348601881768104794851650632158411182219383560814332689468039004750728100664356992225556077952838254698203945833940979541834780150235660427646116727352648122004312158179382524845913003907721427957464039805523138345548607616069054693334614093846498589496096792791808023117492273014427045830648222338452725879699767381635402568212042452057605238894526629465969867349683657098198581450551606048513895950705265870411188664988465508242489467731156486232162346329971831101990782493603757024395271096511899394296782915559825618616169111721951371103114786405874405101647790025179786810247389665412561024465203238588759419943577345680567672417953457822723961974078091774177277325150527685827792173316257458732009174900501119365062952842276507472615223610267215242484411397821312694317599645352950341430478037275125380430313380868429511513423439435929912976873243524810340067840367521927851208063717617415347582728942751969108423853117398568789171667904131351329365106886102329604174549181198171842235465779754210685889799812804903528817225514082243831332233229713422214937316044117954001077018287761961010185974302672902043635824042243032304262617209254921131157870793396588240670002224126999257834954786722174044140526727787775700878416115305026393956675656079098931259260434997621647710807930473968582540089207268709319336916508156300814215498840377467011303407448324258475799607982029044117694768279570541472769113351245730173855923870858623995177688589529607874749087386816586224456827181401519668749867074545615168520031488203179367551786530784373118917670813133788263824418050530063115142837979530012568111466129637597793071802541001078922959713125015647348183817403646329990503059280192263100659953515346329170063934099786007904575213936331865479276911974471471119119838280052756542319016701442196770267118923731510589445478594910442884371894946876913711075169474529037081457612875069810284637848446694272494985203792499459784185754416135115501963173840309082357288372445243095334764649678974988569148161174839205036519002722432462653598904637205540512743233425609570365773601025922488668168041143414800044027665762524403949120768471439548058304740700401929309717430128774836599570553003782522794655948123177792194930135131986682783681730797373211212200980053884879528328261327195671330191279216277810378060756196224316691021239450617400291074212347639245392800054438154502959269930681394896402969746370728684678829413878125727498438055328447905422143963143540938936516419045630538745853702993809899495714260415419077685734048258338826962091521603342804916266693381365613008452539243560555991197284176676783822952201746660336422605409515319171049300006060641773419080140555219236166114451245042753791962758477033083326938801234123312197293380135977513280572531776309273443158982250790904309339740483285277593565250723970941000668538423485848760442275622226531787716719622375305339330808026673472784156793060147330679963396148773014017394767599859474215280593584343050681540201005435973074618300346440152933163227510822961035280417293247108401554227488877262785914419800600512870561904193957072320693556380897738103803114031207495458119880887049272439870940455650423912132244273520389606913508655446699298949874908753344881159690704931103954303910976627344844262093618336745384971188997962226038426153141052701689431922550847488634077789614221425994525513634936212012833958982433417445574756848422481355356721206236677716924122119804619093665310791993797089868579995131690110813352819222155117486678529438148534057465225900363649864809456197301313581600318670082018827998293875328308508316701996524923526467832592986645852217896234819903831111603179823688296563158980302499359841633887837255039154476984835238134490074140818721573659154238744128305448723051061431086510985687851643070107202867686834911685504075306087182263851235666227599607524779003881668761022532075875749260882537900407925799652134740764684055768697735717469366551945775904701259002947488646174973845567035630192189831201708547633759264388247053186740696974520665888796753196819414963866104269016936934177767408652255904162036718373694454140646884702261986488776172989533574326414968424056502243116389886324280024226061707354556385160859019526573206658295546373857825060618796269154636565271995187135351743681290952389103681916939093379333432838957318005227464795144214769747459566921690537010301678559735089881306168712693426114480092729604638836157691122992708633020218010975097402334973224922628890528687680826303216605615073530749934658450993641501817925387311290126951016121605805176000475129422701095333452997287932252720859457720387800974352984103366507084615573862834863561094477120216291885115359235549740286057825744903999776980126291809331718291775902062763916533211528364591871929078139447245385857805421560566956384164651924320016217237834091681921915188759617524156563991667786461253317499389415861510265545608536244586511564920138490572738095848649187635158225780483918506432664603470251587587226790153398862924695937368288886814499038783060009617351179234307470676972465397674969729268637946320302546528742339983637331067151666584392449256174285683591040780515137546282663964673952517813958662259255315714814561782820922428026610279578054848623155197844667648162116366163201564772880686737320372757532911213228103295459051420713816471805773434402780480409615696593189230694748087167309800203501228125243303814952704318192565060380896323986588856356416599301195900725438543936610814641447294003297665661818498746999648945086225023988263564715830018904591117184027494042231413583256379021883382257903130599352379557896286875802285448421098123073605453056533229988217759617475066998042103014826349156129766134739051360311883284973110484408490501620071558919573627437217531659564971293514049897886082566125576421126023032972900092330995166914173707736183956432359351860368724125653445530827058622484761568142780848343022881335429637018863293538250887341491626677732252266912240326278567954123106340359332619470223518966717302840579849478736204391809238237277336055411157744530103880492063749178125584972335633437095192713950721964766472666860476452472796148930652816119407969826013699565747975573138563554711733849742761971747183545901776496279742625583488437425607263855041149752790755088899903985754310335190753893897896622349376973310204823379349023750142642931006587897602857928472903373081636148511244901184971955562572670776908812005564278906025628584694699930872848155224872652327997044340511851289796859335057546872523289277925351616451550570665370530244804129469132419408793613913330315466899809303701426436200048160763481598687936271088756299593165100869895145414738333006398905041191198749329999663890470579761358764646862568504695470241532456699443475655593375369899783618047672774426729764769291623676698314148687210359052551500508108024007648036424895562739891599865617729494311951169331610529407836385959623653715295968462463813255779852467259376410445104626891249864490764344436695127572097264320143520206402109769491486016262725483426346593018347344259641148579552423480105055295743777840547299853530237034870345871106569398850465032007813953458087023278882529902601328284652083660811316509225630205641718099586938387299772423177211391872838859835713227061973390515461231480294036548209069828937096311768341687012208283957648785357774457421164842928714889591500470094828937478467198442562676588404273625127269517062111402594703903410992622331255279559105233305601885516032570395029356448730556714900820239756116043898796363386044500016100930193695919048891438442081291479214470147475602721562462378484689895846572789708139390232082646658337410694262738471077159373655373703496986649998743238881296442871341210731877308659515512934585258599997584547121674309178910456921200227631317791319174838099004294298029784134632145397130540159507609404240768353494682016966832433185232095129496977909485973032294329463165621926895629787594202776557626584122486866708730154619464912652134598044876828299396087592823410161808873880005068717484104302597600396571855877106327351100540393239554660337795204925470534948856533656410991214213094601696974501586786554601637763127301067845074160558367019357201724778336764561469732769910496740992525148930312344249631674995265533616396005260999598217069523853249085794719674374921252485210964265168666727090170588606497656926690590605379884487805471087555131978227685199272958984429950441221369979127191319544030680121902158393281945248689190695176473639126213772276243706021396730193494604373007116894788661252904148670301128914421918399375394063580827250789383874633774544745815603210185291893603395078541498975393876514542948059760844216382990521837447609849150006283019707821728869511257338131160047432899144139796908684335359053738360266695875388957668756283743282799931799264417228469165114904117959975364815025602664488912279137070326480376041940544125449100274126511573022666344700292910285717883405779108069085923085953866655059384956605412062817950091370466945704151836993307629694080120160004225372121772490946855033918871914548066099995647392615734343509017080688517054989989677276540604362448238618705105838455638785635069069614293150688108582706058233182260717928939331647424321278016981509875795761993411297495265246176757079123685606308843363554983471593738855161305341086398607349484907281307574556440178912642718953129458136268276382599593460968362931241875166062661089520406932936153654572162452582209368897745409105117066231689183673279790921592562432375072469582949363705173979917161058536763099403406756276593398135453044848838487885883442984468990768761292967471014618490986905017341700666224565593432045609922783729095259070719183037178463956611223428258597969401201021512701993302819528633090116993980290236707065784438771085390727827100719665922029157347023036453454634505809184731640551657470776418444346849498000097287911040352931019300446973570802595418064214513895063676397849395727537218773903392142163153306111643842273183170548429960579163429309498562849151353809197617445873535650935955158085098684354876434786862647594884213969578121132189740978121585190009264207485999030923852981205836574823070910922417759125097718694374579278482342146422288780787853310486561649007828480492883770007040491182166624389196843344136905041467988367710018228302220950841764547646427456420308477357961426521989357636300754502060337229167405229073555988925281614837622033509184749304164583379418064694199460167591457951949762501912412217796606887732951035718189995741971137825564516866899985545997953385232187104241199180041728414843412268992635748793040240697533155321816422841154022415117532110481497859498021114771681465114472197867460148713449053321727212054517882613363968001832053395103168221341207633155647780929399341455063459759281074251826003259407301437028762838617962404480528001819772965757382187128709133421520285282703915587911466249547589686737636359975035123202351438922536728714263553426137936314704875501427856315235214475302731546516428344898008386808487863795869374694703076357747716466672320061347864152970499062654017187484417365720908711518124877923044748183877470917541654870293423952797046329529832806187411412630510544721370250324082930132856034059520985462289662059322761799509393182130459115465350163425362787444146293988131287583329924972075389983505503402725073495471955593450614394394999316384693070301015394435937648304006236976642700867211345785462149469250829450102891925007941426201603441330620456839912359435551278422681746386798902554155820584409196720512009649794503568145175502003357607752104080133722864692226284599971671801081072100398083734339259632445948029612763465318853105226366669030540765173108388036399954548373744448688203349612794520553686398487353516161263503798669891694727790874308920295713116463212139052255209484752631631972881123228456025996973297652177186039324664693175155601165838052880764421081985820200573852311433751048525425696391428184943461733850639249749977745362818752431233560779811117892526085657893910435612874065608662019270573352660706015928567438551079774371699668839455179278976514989148128047628287365401381712100092546737020811582758894582050237430376645346142435847315159605667472435602992803967306039949693067599662303600605802788833344668195209531483503706299173535019992820056340854039801766246815642558604378523622952319424655499937360524947596835942757911965599594921912335012625610850083786213880614347415322212826297164011757573613948697431019067461427202418272313063379981328208590597554646642397233025557346941510964771268182606547749585440993002813059161491460768155601461361795480950822341602761941297378811210651884513487635541860664900210178982310454477872572072898173363326379398047353751822514203130714936555632695938028842608121419250028257006128889218207413478318710320699734449653101215623969627675865335898604414906632463312314489710335653964815791602764258108171991817612045447535314915060986569579816075806983380122649590943302003107901948261020624007382566696487912385995851625265249326388439153728608419053190408691055240751003002099947428809125495029136153428190571862367816204994051089565574168286626909599211407556716262563569174843364863752997868930660976830459421596502920459362312049638077678157004101941949821932941066246481013891753309032318229014281121551504491799080371893633844754461089426635303870785420252860104809653116974941011541526994603635753752879864783908203515340978032874861882342056674546554914305560194896995077733519475433351928415770355952702965809353599399192945976843243213108564619631333236409296106197889201823909570367069024497838203241139194490268916270070950388952769354486193590783452004739236479206264571488732830911935234286506328190370673401284964649499341568893304253842872981319540114757927598122069657463693456319289827415754342814151125756147281465803532236263808904037342710022679950945400818058538491359138910059545577976344311118999502510285697853644576078211922914676132875342655526156785675086515387085631484957971294920056309538888967388508478176841384876076600237191463966530778294719911630006230151187891696151590017798186474992537036847066540593946509158951477257548401366080462553644293407750331806068140370522423516748117317752372151472303832439678955956033512925281518384059367999153203552311637506611646177269295488419959410892877234644406403660267374635345264484263353995898000525761963599108906711857082532053279960742361984327752052397716142170692591844564237348222845614921616663716357303382594384240927106497069600054976302416722281265635015981170423194404235458616577478350701654670824907009620537172629486858429236725973745436805886661917732852467464949028693456271879924730123796419793756388495944466342460306004995457696063778218983569917736173659759391834343437002969647778519483932092169200621002427119598748870973797155751880559717082931902431285048606812337603568660047341475923309635308186621391925474840133291394331567991062136698360633071407158489079196509432203166123356777051998153281907992321649228996286134610465771370971136733660845568655105498375658259185239084838590592626092682289819674941103087277032986280587688240487303780595350872764582624603938513858061474784126019148883178271243170687672530432887113139849259758431980952445861909186424288593473112584733290858824731435158713691343295397266160983476637183600817596459641530829610811070591689022116117774211270839803885175409125815774488448049185172457250983390568947394851121272292063740037691788903803516649957847825664625050277308625215858224188867939594444203190521891087874009883018824215357353848767836245480450873490162468980025803171252699450651056599154304144012558988078882265069786223856066563115714410543920560103498713678281246717039726521337422095210097327076701320161401040635871245432475730268854168348928868075451416775134110948906567677437045131676249956726463333210182144564418768222282317320415015891482389545207013016276227820667565531198410732737735018899576739657367451282164755384388964401440247919976187131092785190378398677714208528721349380180614572612481811362961283153163435225717845181333345650777140481165976217504675208083785187873483013867982539729002291186315269855806944080946522366228290704829531827191507538538452407746698933622560898843794340742096410939084842052512976581002032772361901681494369172628666096433709291381249561105748229729427179250049176535567415751435061348752446616515654166113531898718952375516073279829248513689019970504323173028288773647702107814136681724961627565623773280918037779198324660439758527025180331752905767506030317574513998226580406859865628544205247530420209153381698185583847819198844652144027557484631988283057652947935728316096927450114527902647610168665772448679633141276099457494301647825238273500306964843198275735985771464815618442926438947822593471928928776948396004135183797237468414972346297741519405179304910359702177672213857961874183665673390245046892259977940216299614639304381173993748719519470876351299252401645809632439852632459878479876250586812709896213657029890996870678956899044124368252778240363656716274377613199071006036305621744919778837979901626187415296020494249014788367514532905735034500075656526795138552433454250349354338881572609583204447984671053410494396967852143880180812692737987571937052320246493283248971763073297718529766728134759976370501892522405926580815817024127307349194342909241265731716010549923478603416981601648539774036923512678913656402555293460470747213916417250152569170618484915416963201259315731227798295814194312536016754027849019338082114003479559020847286817660278628527320554588470750289758726872229857935437013817787757820141976201840482959349110991640271764489663749090836015765922293560338761590574541294634721300750975021371889437447754305624711184013966137815924625425018561568440914057133364899758427817067380303278544362767507978753754413523316809920322441801661884655960261815477866258659715855972714568828713204358886518409557717439522679641252917361207279826623985698152643128944226163457011184661472068349431095825162735055982297848679617821704328422141616088127669612146073165390954486903890046011278338076872507532536484648224512981875524946704167870471625170114178063541206205961730729609162062740437517918674193141447808688530880669132678806854385939242007522783523696424009738617224379668708627990011331139803827397806174487805850628658790327022198481924676595315685747046507802742057406422499385683592306188021168073093235987786828253318400693780627141882437051774718281297252496281928791299753349631501296561403157801187840503545400236759865204196142177389849983714815332810370489721540018471156413668967455185515578925778372489451369412496050804776973487853293686052214555426162526537824479570915376585452408758013343850519847269980580201605520128778554864887553518104922480427367886814401168504396151139022631214240512792407273169993708273536127171915094107854373127572787997542012696769490938472442689861083326058746450370347769450629367891012622129916966175545773136653957877108796635328472602219239718627618747976693883067415010208673081797233038559267494455746716738971340198185528513382333245819322923740240316102164714248912975409396561976046432081653713863852878261300306155030761700111318153787019320782538994766403268947107906760943466264240727444355667908088038894423067186964963292663696357651240029358829839408530011498712518809432734506302513418739716879131018669110379951099614574977333923920692869446370373703043323425000237239264944428204477984495926727645799477783482769902075152038060266930603842502818708706727482244471327767078433958162578411164594247628580068823399005442153362672335424677159821091475469307380251432221479439074865419104545379650168222547851858199967964991394425319246204984403225947246120516366170652023470525959792017560337485226360104111890130475950754094573807944269768205993762647971748574652996973330044945955755860847459153406455471474298682575111284585878879896885797490606938681980667774846034946606238268119806240196390481840679623597825583267664391995857915643974118015706078452903424734137007703785728259593065956352874040326933451689170440313392368006204772687986979549140666650902453328613317504810385271856391873246411965421605837088859476992508148662438298656307286327076911226955730825085769027297574542553721533403232522642799395688595121389819300055637098804579184907984477706483710725406693709424655418516708794626727217752718464155700917322722181346574437818529773839769979555309116931688339455260648853473929913925241691570353056132905352319529905979456167698787908458070829868656640060030335568414366486470616547863355674824350452011376199992142037276722240410173836211371244139164939265776300162186771941118226921616481160290521270070911246822446581640262520928201063115962352294375919744961447892721563404019645400726578722591018531621977155337467576359569006759825390892528140864182226868706087062734727445655356661382340030272235780566068932267157605986921597074537374587851293869200538524320211443277006770182190902685368169627344195488124859189163762578941221290308926602452672358924100521959830459206791392187613825639577906766025417674205297972394427929028333226426947172558399421055607258438628932100214933631903854200427760903968426312361469094716613548472942300245077097589103110318211138288116796343862257668787821730590056375710851216541681513310057325270386978048916484066209343157083277826822128069106558892871661514572736600262372842018827999930563415572966275950149767193148633157742252306916976306075931382973174394594900190399651607018076059170135594249720742548202622000264221084521461961257110560970961555165237533020737523360002918745071996212694012078493998524426949075070938546583001886002052484815641391771862164746447377312535233693651030970916546057460445978632307229186153019442998466583928706052329197788853664509146398085223748291152467450701568901669515254503642410406658304015120441343602625537795863765982376591656308491914559181472807323724398973865064857136244608841755942353344521360938989863416142172559323915452959513020714568201976071046980265886547877203358940866328912656246112953659932558689436563383856110675697285634059367096137907777038267949850945357123788767617753637331320820303567027946761191137791434486051283919227083929271018049384046551594507571022128824200435481519950201393599680144775222605785389802110221905468706221621610512689142741447468765290436864337260744134106988603584559818990487627088398666328707935401065485252210166474681909457951266979715612260292381311158585711062966686999422355965392347273344038238596977774585017932389989879458413765650200794577909703705716527357803372547460539183623716459887491428925273232823196895420430796410415658917351039236206020239525870401253227810275696278628991150212761846622574469206607008433209491867899376043846220287617235669568394669635464810437509101909743694122234695195117377942925999722246299982178981085696104503620120154294641754105642888402021546574285233813435181357949212880614317190697605055063415094466132176917626476214859111677998860038548772890804703778461311303683656802035943579194706410922767709815400195590310306010112971441389515263605535951415663761159335827802645239096639407475985644403580369610515317725603271040544039745962993711893948471515978075643831399545442945534400379328146369092139399979315601903917004878842218423228937673649081703463163027293921448495831378048680026082749061695090967049464402546801853714365164557158940882138977253407193896229938958542258521757526823030866801758760506530937562967602329356677484937890631286803176621839578244617082680329078428141356686973804180841806124506654214034041938748477384592885362968831496269513357278292463226690146020552916639190856229550554584824452231338722998764148786788567813619925350832245322837003255147228731081268827205108464520498886198097830329338785576377821507465522542264129513166548956795003708826032603353436835944558211248378049512903083137007917368591780514467968238614729989193386509970665591213754066419740692371847608702676466728971595855779241522903315806738669011043327182314673644367501733848647817197885008730230026894861752369981804836664001975220862895293180529395791024622010526479482121992797277959158206469958052212131176341088768862598471934017985873397395502065935872743788701236385406604085134306163618862314521883269107764220150813940843172066999665030728062323547311817615862237332915302596878697614524306509979162172339574006731060948798444735548390283650904664907018781411582444008889364290178579866549588825067399849070290117764123778949042672185911764612234559493258641558179201833276101874347779856944788766863511141890498436587149497134344493105917818558309530113974818758027267650268206606225500002430210720786957978114244849660249982124369938697985648529782210320147821868076266001484083643799548003362804481627956270266936221125393622021170046380163918914537944759715583088895633072884932458810410957406779428401051087221430944332362283240149641584394117172949044538566328873737187403315299589669723163263593737635974613357101687479023347241107771008329687043702657178963574508112976554179062187752835625204223529877955801563827042184950345512896290436480757346570251396945050105418391901805818569888071673908961410938385110284404935387555391268852080691795698465376904085223495398360241314086203728590263905278290809536172457877414295638112024287582202208097854007743065844931169898241520168908037931380679836032788121483658591453942357643509332741084959658972523783884017609659385527593684863109938972463962984588198057150785389724116805699497260252709699802400218194931957401151895615045740477809606159226298620283423729169805848408210045876779179723486408171408899431846902716376442231835072175079217749300375018333066078255119290867764796317988776312517696294048098799885490442830471220347959500638440867966899993750673416624009683471423051714005585920057331987069385193957830957821889087648679739211755970014266026089269125929571159032711927688494235404063563506614707535357669532192830548431443349360996877416200920730850318338914504793045328326083262130220826288356980918624508477101613217092589348057034796999445393587287555228075177842153142563425990193680215120634161456420563874403223802061018850910021021848604514542629881964168925980829523365800137145999113165698284193453814696294371341535245575810514867610001766478331661056558773521481657447447505592942319778002667058650242334925856951611791815074134805409212360708463172070790120152897916412032893533325075520876151495601311702466940462149150422915154562842251501909344083668534706703931397676228247422648135826478657661524745461757754272384158354230538762659165541398197449127341714709048224334025374344015952555550939809152690071506320658402221557524534723123590525873865947529680907774128843893662082386607100601636401654363594669686280800396788735980188462079046992781980998951980627465895332165737158956120165043018480985231300486651169590944129860321662447330527848512540482967356252022021014024401191345048855420352533878577329166978900673619473135190638538042227312450937262058205593069558413620788784920145021567081833047504051988170320735790443041678907310228524886059986747138197390460686028653935673799149108946185271888024333007279415262096475187688276981950895635375021723880010298767663635110999022543158986159270307445128117807542721573979581209659889550479820018635351311719344641812004606561566761566049468469925926716768791536906930442897042267530323686149576377371183174662310386555460984848768130545273611623724722002374789382476031634971673289312286369764548333586923283204774917538851641991703090183640485615998513444347345766941681314243807158508344488955168687682886571960249525129074803754855364886416682934545156630734262251848540196225699132388450753626239923042066881523946227612147126759625243836056223499905011736567495614718738020024708709896721363069609600673357634163523075359516557235618203051455975888217249448006014218226752708223382214622431750509219069639905816011924622588860438803254242750839041011520873359781061398464821692656470767609805527925088841022299983999913227397856758881195174014482470126814335790849669050061089610504255713955418938586219227847811649134618906584957783501780749100429761427818620148720155482883176941060593503646114660900052828228711988319340812919478493394339053748733523351019710447943999702009024715477384720961591034825562253493392956271330465912492658804351095656172946775499016993055506844779838185066617123279110558796861543001900222888450269108017396488689601787298780965983505918169754871747776622205912880585712905189301437751705941103794543590947079291216679793185422847636131063728801572782527072589226357149849517374828301291302394555926673484348417887692506201865412132778334248530291048178399733366786638325166963579537291985269991236034195743554904236252900928744851153504269692282634523305883967036474016357756893020854344548170315447598993861378377593931691247854178249833656647802826873217019461916121628482789889890200512283709835281179872128064890530678494575719410194396078978008847978701145342682060245648303597880052346314222178187324863115383385279621708209133784891354669884783056568962539156798535915903824007058435379090301940854587232701638206657835654900892364773523031200456070401076679473134786580362524529902766532416849934837334267549705679894775259740923918946915260282677336397551579039956428212468211301981853436529077435132269207281422821833471431619649655195924937257160671020871075550046271833354854659223019322752118580980935909034289036836083865215891869404527461934157791823326613991036085837547206085911139684663232812966489282970560630666596042636554363710401346870600521172844839369394400299696102119124903665721643611476600038296067649525428478300973355516779100434008726686987497250301952932526256482365673511564167698183847881512369388932220403136545382473251642231958890816471819125769670778267370151726492250996746945571416075335318137729885990244550138188140177020771460315447386213897575599663533174858820977154420349127387286410769300552520729499775437934391631863156292705038594809026559375075721645575030656591839894421846496196611892244710273689262655228101316518853802568055286338981051149522543573531140403622414652004638150270356422668797033673181552010072133580626918510865899924062383629365005960521018993888995359671976229546934456416600995205131711426387542339945571675880964790784899103703262403218203952756875406917162596734059656029716898591722216479039448767855786467462714835968125136440923276187415544476017915859449966941138551229774182138731210857055400650279602297143046100733065942181975200651180540664733100899984127533535501204881655664674447541934814393249169069711614119556869653335430531219382240756179748395296382848540336500332770040761214797525539079885024509958579361548392042957665508073136112167912937314993934597667890031088185696569868467944164849430200421944062699910613974211525515849140411583016322719999770909420300643182785506751474604862979642662825844041070103848582656715377155992446153593913254196666558216134769400913098453811154676164605226057158814810640907770990254015909866680524899505133615611563818324217702718751264549888187817988457331865111659288641199896580178091978055847452915946539479603922657946827278302991658863506368527955224906964008841598064110384261770974582806565805126350585614524416530946794057201753030464970219544643865245108802702079597393027232724875018594221737226200966720803380210477174031055410028335054881714238516030997488194658556031574681600251905297077904962853915187983904304081957709394235155782961532862146336097060288451607784897802071325070806098594575137854675431086055049159813646741107932724386669508644638768024888546211590743867287829258862535621178263750967343228533617896964374863661789032428010697106193503339716571162239182496693258753064211330524739945354785231853240728019299437523510475257786905968756120107677510715545226170668751773145236544551297524200869184347348017660909545719345977639608904126782133584072294686392680563188605459549651153832795309660223288011272701182374450422922564244066559018936880736893690062020100002719761170302780996972204299721233471547405767157525710971458074136845620805731989778025433115490936707939522273560489932093482250892778816315500626213194724574949735610681734385708354058198748004329678603629265491858601552046304529620453149436552383711701229945915516860866140745426524260836096113376928530278996537866958595014549820231985857556356816481083899783915965243765989396934894021984439425154551597343979224495086250945386018226642048400427517752604507289739023669734371176663857904504000337627871581962256340353918038567438136259904499275255083966178890470194225076051053512925204635121476536607583082916959920302703392000111428350420146587931561635576405525493170275639502558426347298570843828447714949670865810817484327657653795991060115959938873204415583165575290835632954443595191470408973715167919825251276052135449007097423519067423528352623665432827441435025216588955253001093742968912245542042736523437611003558716661858625202407255614250031006517803369481919792920951877180492756510044210184533045525320794642907819739877519485696500214598938540511112597120154631226927360535787697211271666173503733889525362232374546643228461385994604368783210579205830939696009876913938304941303438453097449572089961527877717056009277819118214942039548101225062009283264388542803920155609598676246909809509509518503347219477330538957788110938636185219199253199515757141838778431861217460712613350107589130142036262528730088273997876370157334267205027388431155317064830522815182491829330268803209565030298087859770568416199296334568681662360301198249242390408753905242979990239218072447884312585181321689911693557163697682393156156566649563961881203267748990224553029027176026562187272540440450024024718483663355635171804470040940394805526753427154917744821289388905918464440074820363887511888130912308742528979440792121953339817973333974184300151487015492986880760638711275734935088574671910931865977951343925519817217841549445469897321249847256878955889312752237305922679541745347064551440733669047199113504253783632961109687195189681561391642889783506432015061041717073637775983027599156620751251097082541897786847462294369824737552485459638829609354337306760174326852703819767515695000413130756275977096799698785499479062944175842577315432592395360444498415514646460001220718755552092501083298266355001249822957258966727792100105781900995683105283668563124267626793041576709373996453393608253502036848917090334839871599736900964189091693040304839737276863175469297310721929079900831709014870816109464073682199323602395873439541022582602165722198580087426052252469533193123102720584824353359699735897935307870438348692162824967606527029588922086413187749089425150731205101678246746530800080090757137664883545290218598820068140383622045711528870876476785836557000831332006985899232571816713877777257365097324563411777323244582487625252576001854644814272056766937298920572970391735422937993130622513715230883794178865465158746478405163337934965519451829108811577121545468215890359946713420836011652889928890627828863172616942539554457790608467306230871522350271927389795763779584130956330723397362565842326848948594529665397930557023242823534110712688062460226340543793230402680857162948448937804385353424481330305760104523744075230063614154742457005273442173572863501321071286693900172724528373397759562715485199765480382788024117604746430392526453130404518804990259745870726755168050392651641773061474781179026210027311996367875490729471985359489855372661331036048177261334233426710881523390880097178711271006760196240447854910838967402015737002213821476802463200681440338847883758684503652361127863344929891391070394403882516655061917937162237437061589854451516108460049351867088207863775552885865450712844545183223491892632092671655262947612427503788396978928336361820827674661907602227851351853993938672476157715290912253148767609272371247615833541287648851684581675609872971136298290637087714424779265687579292139303717190158898466955779297566364727398997775459073876234577387436966890322612198561845957837773863899263928235921402276555291662436152273013044888252037851147108768649036774837032167943988017943008086754026983102974823029274813240992730434691126384935969438381029154719001213881565949767046561238754387429286662120321262589889783753981065947023233302447881997528149018525155297548617441217807024169983772668590658038215505822017419571416928181222596861300992244733564685772954385794714645802610160993905547324132382702665908100351653253646538405795606137351856921132838215401881162689817690384099508520512790643816825597929818380808283419833673670987876251793683410831240208589879203134708874445798718387655975838942604143300131546766249023014752526802750489411224979014289925075488610119013731883538350307596172878914736675946256225482505609885782598797051685237667333631096044341449980215606646889421660353682285660783568281635690310980330560395766309004524649771592499327588591935397802475326256680922828689685222978676397676205767108005356721953075388082305456188608098523592947234032739394757024705768602376653654113529303983778909991988055914262341786007445027247801521391432048289309335735033323249232286155779600834357382133617885426818271919209725243750229013946351534652628825211866848564519937109260110924154095544582628465164725904038439947020437552264906161229720449438324414074447044528844148340253415343239012727664740300307387318747818965666538140301134933571107077256911166627410414851042915515715191649449494813047539843444783895702870462123902321510072748801766878819341761173321802858526773269309524776696476740457381559173124591557893889870238093103063499810041673369086363301562329639340090869846726207594504932470848787804045022324257643538001684505080978336588538118431807846974977902083865006087924498745875290914679982842711662667203718011917717306597837230723687992910189063190198259128304344864139089271714059973703929250484460789477145393727817515523521284727033911907029814713294190631313809921471783968103869383303957883421929651477110972833726169326423048659082035149466373365462181558157985761809354485577444429857711390148551977341157899187150459308216529966438046485618865590887105466157038249336599764538676868295246838974110247657879386082864808606086347065171842047078047141270826709880063760190198928982316350713208967074397720324992028242878654718812740249797264968135315231506098909456227381608330751623055889459812205225123771283937062278442233323697251533097773998014940948147678747194437091615257856715516429888199593734078283975217132235488554231124628005296743116545214465401704799304881125817789016224875318019371614270252402285259560863944786122125280166528920418737605509595634788575208811177342230910143354783362050382534015357875641028801420336657968094983403433100129138496721516648973713686116144970575032688649769074153440451682620681477039759717604716560648562293815260545112228529322822978315277958499491956295344837386283957128875799619925449318870912459187846421726410564439735488884403418710808328411116837442971172834794310059239158401682645935888154429359664643963496456992175690459683571956512223929875398029018692934010663211467379933453208697727924916365646735862299001129302437882580064829311744189277659710844009400616463738481048798836630019099749014554300831415195865712911529450250002015431853793528715191181510556728165686810456465274842661747296720052821240968308602172397343231175480535048207986529080064887393038917375513799181060978931833455191529617966681902078826449988837058123912928157905691974177571584166137688475214594530901382998208866168311359768605434543713728938797171554604096264092380448064694122397836644867929010296556526328460570564728606003070479110525694130582133464849512396247787687412613787435357588432008308576481304143462105124634927814490226262363462021672945440110717795280260479574991936541506820974148759694509161989328918077380671124862884299314287555151221914008464249235929663228079965187844584584705348824585511928843095423743874560901211576357626834846392605556297001322317415304831616741906971221450572768984949085393077097279420513391319259346688163942399853639084142341737942745206183820476185169666979650336620001309004202020818791021625663154626293377308927254319104506895220207215964417680053758291031418721830829419193711313970481224692330293670002966019117763789539822467063557433131939457858454470429642740199113599701504538761194208737395932657744795106378255418345099169480991215519490427234105279614005635670172461365706758607035509398565878708313861953996531887433858575583448879178323128178619324260461880578126254881544480131329639693727975118860429365312997479049565643827458693773165546308862030611445955310680448417168138320107570918361187752634379433309110720418837830424478602883228529132205059880557506805566295099112404665091358610000889364939911788869377628058719716621101251591799991974451121066569423733792281390034730739424518991030341952538752355124865983479093304849171639057219892042454387095318404078146393184432541228751578114107570922783925104506725189506163576790853171289827770869605645103518957484878126901683636092661781406225249251504850276600344947885906059851311622462796864598091258645344424332956365921652016101025240622375851846282054036232313987494619829624848057285942672485431698005374831042237212372624686313124459200713753900151120648433225690335799586503913327808685929193864810023701694016004621433570357021151244476834800724552837505637875083866734934389012279392972747307499838358609531845859812357766306411678831059935079605285404080842773006614869073580384915014581940602083359340913629621110866439948498854920377199862065295064654132637393713324807133862859408123089280207421064091919128590004879944085705799200077375227104525234500167512403740547593538911542333610957641072838514958832364528688063425750359224067465981799007771944865915863049103354655833451430103778594559875438187743215905921718992936581192967203805007605244817643190400767477920865784239922551492230753474896088553360973222687495586573014678935230889647300605861276234231340849981144878321471572545097810257192568139172041684140300512193244870932059826675615996275133229484799837999444857854638130146123172043127048265371640157023541697326178216002542460952805826057904382846822120190301176430902087428919728719840315681205088336850281001802329826841748865292868683098812462060153036386857434476172204321632615906672814314456271532202423743894269167242571111311418216764797342442298020137442905072372076091343391301543003139394502887008145715197531493578410857971486235745559369289856366883115998812727751987871050370150585532025419576044947415287731065762191688326224932881992539854502593917715421473518310481632876284742449693919935339804465899441183930357839226927248796902018176265456573439851182090547673776195712348364648522827151631560844492112427363077970508071640552858007152520642758266498686318276938750229306324578012702228479126981475969871639174269437192433336264507784522142218712942468279819975115129101584096358949133855179224580153755826554052164490426142347692570288670976590017888256854490768785684875024516455024382771537122725206816047202037371098869190427558483656828184763802839028638191125891458317146187859249399878573263185830873999736280312841385257726062267576423567275371849666454544040464151017770029599991694428328715608529882213731482661573611844165377568509133688792286146332291368530262928230674037109072304744747173883706893278601286737134335825524666872425136415200610982822733199751064613338957980398955851479800317858951760335625109921666994287800506011815747304131399065967433073449173318618176060368424621943176675973493927437259091225624917678340949963517934819277072334599409040814089348872654807663717177475987686279464937154759721293674397854846192653638439132979884697415567015053833243795857213053026242605055888799332983496222446860140287853604342872108845777375884315431788531353936072467498039006440224529313877411053868352588623156168693096133152673099951930927027184015799730093785010234632008666326782604446750089263835999765717857529707105942843208504363621773587647467685289417436688320962571599196038189506359056745023982874636110794585263092514200176799146877898133887556855505157672805293290425779500251016568691827494815919990699541019856221497761276338399179804244571477053295708421135543004087297308022785779682666042127324692986148472618845625739322569844622256564396186716087365494330186964747552769847891915203305117542010210275236539269571937547360262025023718852118991149664312815480954128236143822139776848010497926569563117464799979957108726194138396149564860501156637020595490803160527929318580748623466374278405284391661914856719823328151143271329760476686345819083448104001749145327298801819572657243197016959324594920102909997363563450648264676352527946555876433728785774096708358534649907228114797717374073637314239014066670027409554064918178364988498632595144214367196980601890471781098682820531554088764849263938679786298577004003789195150860152406881232470428686075732204366198115354463562617577351671987258322578731588111064312626206246097876483959957776762550007108248656220000317984066919338887372337280515551788652466179455323067944901884813913609760516139989667491852996995102352690570387792651966234894474223363849242173769153603707906504365262178589718733872164924887276908577806106984502948200464113286474596121163819721425964719783944422879210491193720990581251730641382448978898264273542437111965978671652259053528681477097879502225938050903845216715941933780827050879025195052579625036309717750945894507003970135583733760293712416890421572399317632963542234776222160346391340969213255173812906223263635067167510207703418015045870159503694561331829069769770090327021840402443206998106406885865644605201416533107153859378888352239090269952421823869230329785556441592245925762726064823265706668571260957279423819897640688299213034768338692801092935498181915771317575640298673831735416907614443836561015601634307612917581365420438232840118999290807022904540648706969618535140678956094963377311942493438806553005397941972107333066538769710292024957071623997080912237286795206908747474158222925785840308908379649474039904459312097507635614050614229471573308575057323073376924746931990925726126628974522560255753891099623218020099261777888134797035549078280917979689839236737359861181870636958319800947188942422768645545157381967877290710498200106778681186329339987064106282848822830480332489562078280168477913885052519107439503518195328858485428308271834260365746769139668155325841835812305839063857111311615504685565945773346224431448537737487422680520360384453100106608251790582803232235421392390174283608666139920836858742981689487834060119891061267659034442175516854751620997307141947055028252720345303549554318387492744497016519277184707516204371307404797400564413288662490730417371225257097578378718743111177519350062594508938531564655907225108122774911295655123701879754926772170201516305183363055641864872976972198671985927349244133582821776391580191925745714916160152006636889983028188323877232823506367248034564045142691172960563155632950266266532910166698277934926868778668282467427666302291659088749027892747305638119810006583135573462064361350651580339524621630186362452177286340950285676914123854909127958043489520682926261328131946176680809359343482804980021814840022368989376346420593299489045742748857026875379391620020278913080346115963736828530447873522203273815873797999360079782489913048106356273496927568451343162046244080441915311172552395599992024522717896297469463292495025135005874323591898957501810267724008955545427205323772187592325900897379351810850877898772121833529953663141439465168877548439787601133949855252460493411953885646306954469094025745507430654781428854513296410099693414703613781899037974043271551980484517899928408886054756216205055469273717172039535799780669562517945768063770890296119702587973182327826397360993530483998607668954842809277506157595435756636071369611668609427987935275809797533409513806672531130681672103651086679002972491238939472594650712343401156728603123761010521718570775195336816748318373109942917560387142652251605966412370101564559251841208923310551789173987092189896038500474215283905332116440280463159248902314667478827391611908270729292429529504948348494740063177056132793732504209107942771730308601019514422419720895410316163974600392631634533770855290272231729782768537282550981719264681978888602029873740752164224469256326217998567728219702769902175372359794581312652045801996614469719634842516586721186135896940225158050605951179507568056250341881430048868181539487224033219826892516982579966152366573849295918256224372961424277382942630604947426035080069116962124526024019824527952199265548585289691215935633663744056205304982576089093136322791611152607140040041716986071912423534834452143703312335016898245413465066921009993146391630938748127609540223138324800429353792206676579637678838453087737313952050671470843768317962555431974302616993970515779169272543404494110516411828112853042149458356214184903429397771433381891367792027944837229241033454351464618607685810587531306020523557099472567424548180675116887344879903013941831531423689815333977055115795535531579746270255869663105639038300336638764007137747309938734001944377624924390110637508991597428638636540433399952282236453125177913210882693030735512608005713997740425511998177754764168365908350420578268879923638196754785652178883545483543891476945974500625209723469836629899137717457061915196608270265389334668439691857100238666960113452355431733018685020091695210254034029122878971294064917833977818697590863040955981392803084097845149680803194075690305828861367218866659415762257920543832883388732675965484922506098770697492204615385133051503131357794208521805335842899852166098344609057661143495392219832799889788656946648658065499778498915212917242698442371160896047077326516418810541578598744271343561833269318392226028743455138587189717676982134210532067598004997188351939624041157562577020924287327115256068858048102956633119102414492141886504159673487474225989744744972146113878002375450848025548801886097675658435457359939773883417076992496880049724315113422216674831271892052115683389519919099715844966941423888418822473130158174881490982896048933474848930043210118309738638424057601913917155694315564957768284408385597866003083511478976536067001367386944483974655350304140473666114537151956152126572156126229357640114849059255546777098815963232250968488772653099306509264418742248302421616156301899418804098123503584349831222911053055091052412887043471262402390309263052345956640539401615073827579918401655850947379773230832527738305305938192781883869781628682689756208182154419215522596487861323988012625892292563139854222811730001178094627309725843331918176295221885473788845654798176339404211823061525995691058306995999657396274088053460984173904603707781307517957729869288064937494625118224365671928620323106228644739739468619153051598172712560832234487688029820819120167992675633477151796645048141330558016008709783000248831932073904950427724220067686341075684038294677338217522688396753719832514062790690639138219793813280190976839850944140854720447729981353073774267117788485663743812393857983743041809572634680858056235089802575044939762655120633343446739296325799099092509517392233891733393956409134593469412854547274778310475666389810135325171887095472944102917095847658022270438223547810509084686399869637388946266391667755963532835363612487250801871695824485345875819731722834226114820238896895896815833397062746492568514566450143684510319715051730916609586592235039444003924601886551070555612684865588101054913985759970986852598154504108273943490807897473156343052556782620122000231189795355766770554339729039563496351586357940192571702455350454407262594494442195097294352505667669316085144294208281934009387592583192803597344359320421925456844756176162409765773018733206560968340600567845487339096974126787487968288013424921933039344264242092289809862822283913586671852004638284332569405526437411015163347941553365614039536811837902308564228051449740481447489520177148928808447186291206253338324153209563238841938708586298567449985154409592732374948345649160714627884261654722029215400316580985188496091822239248195898523580638542897790016139731882269424772508802338681203391542506123972050114731533985486170639899153181373276895098186348722153117639734657115448948644792768612205321899266431776311642076019143630954911410919712225769987844367478967761714701159401190057916716318883803023809209331810186010324070676016618660428204773067823417384641662284955750889991856275482995396970220714440936554853109271247404878445340474142800101488525787835264986391965125056758619249622966696584348219107992762523096613646364279906730220328058586799944831878166496505781128281362673289720523866575357908019391808493078000451616834534878496080269990579978615511898352580788432363277649624659634455708508682344174264715445364697110408406279360301338160444640203732859035791419497442036307859844385752590764842875558109057944935412456287295259439741586492455268970493535162883972997585656198151490566555891922155569472632498118003100584979864150316727579142685345382886462909411639178183310880191546609937376494559538997100980667253210388899228504372200816961967600676135992701914503132234054324768355307244566475874640055930140238592548625772567316417168002794027766836596331492890047455435861468654607309376315154733264912596188383888266484249652837821407653684896803076171616627790377482899622064556116080457217133163270699172162542584960722409207918187266195158630753363452211953632118936659151864735816548503657785758988535889248875666857188615824741806974875319800180700170374377675020725761440478763537524109779561203167487891687946638684891043658941527023239786107554693792616053697232446110714234011019097572315492079716085380671850936155664553741925703377571204236954976059194376266604402293057611360056495999894844985467162917598075539752957068198019759945094575886022759813357290329485903247342440002943741069060838508323613676789406389250161291815604082932509242338041067153338439357239414167865755535089984773721546602424452354933529488049778804246089959029444285943535082026811192273699718088336366939552659524689477865731566492606995081775250405482506739354940485600300844940765420103654904400615726283202732650210994574486418802153262486261043246006357540595734627589902876453566974205443436097782470462059013502520562557694966594809019133888002429736506055466078086062186773446156176605363121405905603059990934830540807851941721508853274484109411118625297772852083166004329610892665417024703189449645587371216878197598198174038779551939911566570253325515001683829509369796860244989357237492732188393113662254891595149534982925603923468789922946638591389043729950929852306167666085051913130668004038670885817405941065135036948254547823704317735347787262035020223485040544760242684116183403616837435912220079364207498988638242424131616028040024463280654316150938149698641980753727814225780813061097326098085540576517930176119592620947301650385172254933311173162045112540593984582237094165116389336773226212618914721079028782193896562624280528047056432412743588764589847248394144813302427850082564631802827483900899988121603233992986428274942389665044935541363569514311666158766767901084999770974233420695347926901570065714956843226962796520969647420972082246864347021412313011820395827263225180479477001477900377478391980032754679729209421229657813375914798786015731840764637563215640837486009169419563992256900331993481812720538036277689748349222334474036085734545722686351221038005879801730605496141528976382507755416119811383916913364543584164654161592766293899807980316480230762728460598401330148539857745220528070155811789383929287139127351428075269027319173294232385659215710796292651552924989733768289421676674350936038528048566280291290275479339104973388672251051148513961701769780814679204704136324397749528079425364420461685342631201036760766882180363250067269310265381431214521566224243494748905508120858478741155758976949599323549803329407722542595144405290154416267599994874702018055421516971362052651520660531280028643707576336422017123778688613841644214700030277703270285220551517835785436678099342018708680412382367126872434472588896869090776351540387227130302456804335162882265666650143547251567518506403397408812411063541618942920817802989252273985122922775187663126759282788954533980341865405076610380602646778207926918782764393558119405681103918008846541129081334056992414786235924304481174894393416955764595771200505359369664171766575953718536886606810123084311838713934777796878359666671314077577767000687162149413013900194990625133904612636156806402658252721833752621695411539535253499282169185738363704928191140790291659707148990004519074304599279623188671797142799607387455911213884159740778155803554983459596590049100209240392121290409406114165038907476941634107051061192327188938971515499455710031270628691319575821365835641985575273002082013612859168621197495456971758164602172150074994852509485476963188110386390014428903362116485087419583124031342247762318254895551723360089633963154781836579948237784306871396990878026414838493088810116215096330402102657974457291803782887342589957070848743488086523944868572712312614939114717633403363171997421942791491569332788487210388392342183160571348747790639252118927996404978207787793046994015967361349040960318951117218751360161871524650238389919183961027306171969266013777714075086089525178370636739367837406195703559744381661561065744626099018169997913054229938762895337026486935338059771598286622664000254380786416093831727847408210030012178231155434060215082545401584839204938020271389747402502318070087884590268411382695046044446796063029458668822977955766556954203055121630980678726536164993490793034389503900413525332438116288189459383898845179878999693231421569522414908806107130390760875200849215936817412603947476399895636120538630115372589536638225541044311147962527652681896253018939815870311840186992039512153159078547306273252886330467354773938921667817295198885667790286860150609595154691501287815249769797261377305012554427476913635644735657184953459402915756359956942362693418846419869192149249721653093073283445864719505453798840571760488286989319369973336507981996046506817624649383436227933308724662804989930542678110987421138013011098569838249325810970284312146126391883332489473765073091714066229226093968477092334649156622099945350459285800703180613921634716714727865249067042082666483844720702051610803085539820785890589928319118598387037972429622875041611940269094676821748535956996200246278444256675471908839177721221723870845051335322967046927980635667544729968279793128807158806732465754966878945174739551453031551461404126872497799589035715542082231973909734189280827689719219918863514384004126017376319149422219165060331279192730073104090131010276575350946429060865697627151391974475170270434653987702607118693626118076049832158064532646387470744396929184419716993940290628953453998916644520945926753531023765752861319861544438967088308671712161137180881441340013678363948023502799040663018137842565674688115679009103676540624980463759610024168265892029752103893766246910357228380868417668371832722210288733590675204703109466137949837870234230090952243075385989237572246730259191338219480253595486465518186449985025944230590472790001846875768941623796303695817146321002779216366705661909675776991285004606119412802690429765890266626010573604253540706802203624053119203125472159590654954474546370617002447264740113495286018681022384758504139487292252191370304256467079140937916360956861080471447514541619149491460816679488124643279804316424094753627665510899162735810380898839348341565314364887937045991813765538709188219946789683694486275382967570524693088360491084811619861223325841705085774930968123085393916180880353514679943474030843887009761803306830456223777925355839647894187501679911077684821174953612883722840701328718321817887159312348126915687360649036846307466182028061976430352071134769788897133552944657515818008661159210558866049779798439454061275213719310052404970128349102261519744525687667123534281735202984744505593804810525940474404132565710575848759532044675851096809447296108123574400866590329958451980965915537648389611125203443088964675466048438158335524523744431903290320713767377558397629401905090336528341837818422757207597631764077054031287495600649173906030288369877591056498062659234938983039956849122698970781643739368390206688294703535983392078609326080648319030937326050536458917796969315084265310030850373024111453989710321138785028938181822902416952841602425238594573042541360540405117036317156245259843677229120924304758851786545245780291902988583600071890828960061757735042297982869463606047789793260488263808975023314078183547317210746016499007687775947199169126949499140852599821678371947418875382290964249694909972010584994334016928773553838414174145600481272418858863486098441996325163031182079617155937748199539946026603029802110408293547045238741838315635585641825578343430285261571688608975564477117389922969767922210921471659420042972531078631193792020400537426431530379563212971055626423240803247075361796293046541133985732116773579856895182738253392144807249759626972480286745775588107879664186665396309802353298227255426234272811219572551693267470050868520763324330446361542773392749877029450873855672957399752229198007076473478974258486147695498510353085772984944423872942534290057753647550328369564975892147561587249319291579308083962583914055493884724924908325073497022710178983441285189678991238475013265407633928059005941156067934623991998288780154691717521089798624380894508679276070799195840195519695824583198615280345999519197255484373199133929923259176045553351535268074923502815148950835962463732002229689843536972628083427156377568762377810001592947468361630238124617090234101457370713152834134781809733050555567802703194213162007762837244755853700032811848035742679934364186386097643553376284417152674258774746167477310977707527966991309802460224551646913937161674212303338379248301891354060273984553261639947155727935654244985500954093175534500092145350696083573767900572114800879014179629561799042536308572680264347934372742779305426864604509293482874594973604326634090260071862780142293701090904382849893905909684195012473576575125536504644478275496667060488878846177697126524803466893840346565999506902219378093248155724175683147337803300081383107153805060816331400197413174518197962689661262492578951909291669019411909092133518772306438516766125707503128208508461717148519528556927034423388956714258094517402000409958158430580403884078118198052188838391081360338424527101335283138379616340226785412931665836448587538764026474322531185189081931417511343715801566812829742616136442914835941684452488505816730490314232874238739922336445915302120175869839090644746898601655733208465258520064172327005015858293731443573410136843429296975009532968875226332736682657453897412175244603843813049951930777615192855967964772998234278642104478999896260090545512414711225097964495832390630842229874838724717087532936937456779084046265593245351111102679657436868087453155399134424653753607746257190990376454725716975908639955524488289065099713560367878288920255278462087822422081792881447610200059184642700934120760476807879425360450779504218457356435737846736934376294021058082573244599330775496528526006977389392217518059756839546775797392775229637361904682724306008696967734859602601667833508146817068337151635443536563186666695845994532760156628966699659290959544870538437402639480867015950415808549284157498332555858563524344837325031238788358230597534697612636162376566089400881682460868824350398414606939318268557718754329751537155030590103522871574463968602294146033082068573854579444551188422108842561005599722696862356339713301614833261539173590248473395953759511200597320293332652858279958150405199768438971736520865267595275056497824342006647262787403877144157330322477779215508672230913885600815872903490086895215108647166502134608521413189964242612463074454269113551788122970741759519108239587855751452431201070786215853817707845573092234991270341380307394169697694533189732369249476865732092443591155242228489283031488312465207959136563471135850908511176648976660231229252119547541933718559893295990652778374771021889682574340597696928303180442272899459796529681633126528363459089926341655050905696222270325899509364492826776830786322786554535030813228992043598728861546628655506304702259652471144440353205239298569520527684874811372339006501422474113343479245588035966613713791891587546325054551918332201696765937532746072005681829016659266788041236690653150623754852998772724872911509698055905385491250260925119606713565051391356993804290308951231832946593503967910738069992485945357542764690304377219636872476787977478275411703585468084498394446238470559965470875208919514909989334253023173652186288220807571672202102473261207393200090473237489728510677089471310544951179733434901820584427851067517261234699053320445216968458550383499818118209507110608157034308441728576863379947032394626859511089820119191505103521280320060478961504265647156992523330921202698485508174917310465629651931326349500317205283182301329005374049358040391222922592047388935043805520680812107895627074893147161475943675923322121191670649971579556975222801170536415873427401109625868697074579106384107850895228240566333946680165897854270213298720403980567962946854218353557987845980374257856697066752533851649850796046938285172194545364152685638031987247713649464996094539119183958764044172038345467088437011268049462212533007314908185933800049828094494289257164535715756300593698261550249339544303466072554998918654368955692916181118839322329495939746513452158179069025624592260344582256611693412731279471638602511788562661459596217495052957188976330341118113289367459554990459168506293585501825706353534069333532727434796846472133531946005680850410174532803470352048417540262374044269510021911522607544350105802794820203952397179779380995240698125985286300191481810295071212715846395698773475197860453587997347127227777708818968009258095660643688325222083032122944063312662808335579924343322158031713963671620405317509900249497984699577390493888362256842727427496016233875212649571880412004986424258179414278933811321690270777434353033090278629528363581838976247717268960368682122489969994892932130891988158301339985621132553820960346846958708334044457307720581607194502267804704960885176289800721327075855795414254924874285614858641831505755274301370528609292219806997361103671484625664749007000976990677249718509670740661440614436369499874478466510177424030118801209118361049572424812013202605982987216172195022962748751817189725387087100733759233779890773819148268613951597394134518990130480455424601730855921860248531283342688000629287764635573825295928848209713914137470194939050563826593654704068972110610526899084609966681409213498768392832247984400432552398064544209380447731899280994767675242417206669895332271346498274083718104593987822415678061277153075638860265220495929272657029297702924067103114129222241243485223476588733212456805789532329342870833166013273273892670131341444235397023440816975579229557494645572865137857211867443376291453608639367025853649438511257799025382833789522457085770033917805180064841392544012991022267874484151800637782472681701478740346693885664754152366579335058777097672880278177022071830277643559971795226716172321594833629174726456027360238045994764297334771153815929448954482074712849382704314170724482588628435455197202433439547915284476064031214425668213765785941647557662124931077687608145786945845699055327830722375129013822273445241711210324811893209061448460089485314866652532617725552673347716569122385090717896865850395136308366142142383611364286201127263956425042107412642558847206561685243461921435915109084738775588382535996704546063646439899289692349933426084465192305085734949052180231837277328761638409427002442271994312544460734472568825149323443188365881237226264842480907496991345623314400268339962388949346426533762133207649895316225074808771360529637302346300500143424255189308693811571868191711019858107653426338031192203773674327102463789222973687101220839176975405534563659885296560541497071811256412586278872073018472359608446513350747426185521896477903825712212553423076206553601570496272093026161677656998609639248120507315480064348755672523915942437298448593256617149428041972101446480507250662522817184320235073880921367436995221230901619587979915286330264394602311463303684033843651519743175232015609591892085184466134949155410077403861629352682451100942868274555484375386086185083811258098328342788871145938853572772520581426844661544439927488881000547448344414600394303608057037321773841726076936688759683533671548247810472279048797812805863121846489860044294554393747532956708076898313567631856655774542854513231073330054396039085034791942431139827526283246685537218901611213517023461591291940402435688830643366491812951643878325709777105939254391109405965062981474109332734041400139261655030726813463199283545977223737366409797316696382471587698542725160326445870084411253147767011953878627595101558969731680567663050876282556453401227560055268162948870443312840374368581649692171938996680586114637060178243398473287836463549439006783903372253783619469042803485095781175516540150573063684138120315086099465719432099117359131289917841887948459781486316118226686808723579369322425480450723777952083419417665805012561363521014943449521012436941231779246602695816463783372807143972358457303189717809821677743449584763166427068494979229065396819896881423582811960722506389939971625561595825738570418680893709662848914701380236212520385987901362005397849229190565561066487513058750697872767228955723062424985191678035557961633737572393936417189944443499029297674647134650756358892401917628043257158892664399268933311374770909138442940691553807028788133512824901394087844418321877616255449024450934676423303884147954248621703007927871031878799826936709995755046627871259877249422947462038584024071830965167800189180845944724388163178412055982505998536026189803774359574199639882552090708844923530497882420805368771637812237010666273698677555161864004015092819914186056711861832928243673266946969724106124317250424557970707636089185314520670598626417605292677059796814783303747486379044990533953819291771012450774674433215900186090535387523249938726629493041778715898716584458463279346306641318624810976926511392058661358430534862995900985619947532748796902168944323699282329463312211259260912680696219143479028583025646766643296876941328935427705126941568202085771978458392548988449799990260339427496932877660057076631502538665679876077516958866752943207187146089609895464065815655777685317219221646386194958082097901592874598086351113044729212076643689931477890853821336611066929504641980478417686989710680637780293311321131901428561739908173175322968361121128216381495804109743103067700293752543601130359812357524017690447480550548615360416776627885510728544890187054508363592568819458090427298032153254913947697445997646283234606258594274325484091717617926916883708590130843521548318591304895151706698944393636607494954333158077343168451335794127208761162169778080562330365307356576041648123337631477949916361531043240953160313551796073567119166794285960750850536183111239646676046370876769366193479230360482721997526125235847567888602911108642261616571106129160936055589989256783054945112519560402125903196125524331855399662986349872738810681898766369876103295941488962308753054139400756055342168730212789210107523686377657285805504427101075916869708882025203147778102777913113956668777117294672499288725421605426502130369008488510446056543795831783425247920461961659669066652157902976383478195704264098033146356144806913745295302762807752460002635189064596814508197572362189361218076869719148888161910665339710385626512170331107749306330287784937785829942468211047682839740012812521312288621680738356181705754361213817303421479525228646250022912147418355001371469363204583776496049671537231154099668438297917826645353032721092552353523327922895439075543993675791871821239354393372824756436577391587993330973047260585276796613585942244997557882838565120425654956982649134889177801570066493762366894224343885908433378502803100583598062649446532858361817483316909414690098027907322017637790188982790399381663299905538271257252291611390413422266450988696889915758934414779175776206293769548118365962920309121762153229465825492368469784942371554283117551423589688210286727999946960240816828558255239307327811917822263264190351979579136904899723265987907346147230007665954636305256136409826184839436783514465734411475476694112315468938606323845813003793460271822315017343692179272483511827362166951308932392992605794679601455189621464649783844036916304106477666408544475395225669773786734954764387043396993052891640275658450539399188642340397049251354285455466826763918532161921212837514120537587978636414600418474208825489192185383220549473503770962223564657596166159330977539591436881796374272088614976829205118206286775804487947370537564468426020214600249191142991713531565523125369800915243631760014649013747359484627352531405301725542745821485218751519946592397330000939014932183683926345861138787653954522417036668424664390820493002734479391551454572873868716215821142394081951095109839991674761516168559847092364715796027825254364229761416109821918029016700234261256174257762191319627181332955684495961172644886763803847719514883688280855695131526807833944062571220021672058487509211771962286493782735934870227164707953344884310969169933731253732057458083763090323408497450447631729838977177024903723884575492513874020418199689570005358088473145686458484564157289770972444162529872979147943754309701673600980299552814520576263573445116252703515017453866085071198625607247010632572943194831392568106272447501687249662019090481038101251483446988317079202535586949147652803534804585309500637065880755399188195428609062256523820124048096981651190826349352046704065436972324743429337005800779533148590728921773308946715949606598541046057656405228354897920874948159987079436672245169374002586801989580743221713367412070046495089695935937144932802109833992348270132862080913879258049703044126477555317705982309393771940864729383896521658639150895141349588969154104131292060298717050595259741004477686363152326316604738415613463634390128144193688868963477049519425924006270046441319438003733157880657546813355892632926520040852375030028484166259219829445283296716981752865206671342839168203410424737423680159823482515316041930945532349899301250845253013077123701483239303497593250712795240802235622785986754389288230457481336434203210152558810002986773713166946837304274700007231091813529551475315948278735954957545057822116554574086494867508109606714532704785903390319022465464284173743944466424292474518163255418368941855451229025684654444634280406999702173093372047823532476238656330253099441650324615071458250727584338247365121332383572021433112483204952656015116533992566356662109888070999014596146143867365357931363547753132014898033365997194965255614774879041488060364213531069347500941284263145174200032491073376289586446167011704141540783955280533794440522915234549593435097313186064015852019783056042046052797591434840333954792991220691649040212536983612442591238457732883088164255510839330775765691985248539877239545955166972563484724697620607626792393296659403685398709891186922805778788453548808273193545523738713511221309743490657004815168152463744944719539340788823189338191523714087315495801181678063275003125312346114126389544069587317883175008514654911683642521018397955448742558812870728142172872182322922358617515719695536553673642537244572810274761939652990331656408625103071708512379680474305547651654844929079164577087600067302413486654442425416144765707350787595768691028079428538035513936073394188496784877329542507066819707265226831779970537881449353673999724713079647003582372644713930170657626852437900734129606406565619924436779795909112418510932670547817154800619079165052838714571807339624149959531992137344080647894728313683972369375368376603126819354040071596323388700487011218879932173872644661428411715781520126844667996413537069826767829807970354884015118375311652157167736486538865341063818667373606793926654512244385780158613077204518079284128077184675484169159137550749643824432089374055904400810745442634065920303138755005191786404294104316015090494622321001300530239504375330395468722570108227910197061815844046580084761011252496141144574191747832514066705163398877030104348749009445584720854427488369391664102077972113965908561724657347879311381391591913193251439703295689679424386840292322447838378101068482800932234681414031128719770752486925262755368072871877862135750640492348863033043718421875545062911492851764975605244118196832093458903404716658830129762321373872558622355487288364766208459306104155483633846340825397203119740860664879985035524128516111154737832947016893398974173483514381788200383831223726468481322482362695482528548189449270558645186793900061906157158265651197000021694063292453644681678080153673732242574014879761736488409739000820175737501011730087777964412163442201466953724692653607929784261586348135480843140886214532895374517531809726897850031968007361475915838786567707906911384899786598356866807132030769661263158802829922926851213458405208543937672101440686782171244459080007357829823666192937701018671157687842051305046961354362342517426196822439698769960219610956453363354154002814799575890157054087758645267280961934926542202341337209525725921635403120852201534837079755621623951886109734043031008041101684685457679712702022331223526754244769646557638721187668875796006370250076307038462068353171825307952144908686309053164452363273895026948398415586070431004520739903386998228001487922407609100721262501004672714088946847059418562329319186539337714763328272441903483816937478543272374643552404863165417896430986026219639076215604933359739115112661589218828029967724931896970111857606785905596731763963792743210366554545719129463818518476089404880220948681700449206125682331257459634659207410987392478411945098104831223661924337706918128420353266147584262892513830456673570618800137747745936246813482669369462310303184429351237259026501256148610833835164964914027058406489523586219086630007293329293981170680544527921533785604242223773594992208192316384722517938587667148244639070997944158058060286116843598942598478488282398463912981130801379568209256464950029092811886429209847617755938816663125190537583082836512698695083614366712265161415284494794456892312099049474397452862853230752265860216854372881148155053122198462871225279263718440277398943600370049232921446026517281341004109301724768757356227094762081578852803450375795240360477828829316563525963836405992656529520012287702830248411162852604417849715672664305767305953521151946368066330507527594684183260489758174663030656337568027682685966151766605830080840081275690305245679421095439321337236650139359231124762660277633948986401208146676680112805105123869071051833895163262620191060487651616805895796310548676354842062466846972537754543905884016015669894595240136451312844362854942634870075590083548114571215970148802291647114210288172835731540623205454416767500779733306147820117768334429350794353595160280473370679908692537432665911308396031228803965842959482368222780940311860370035670695471350799829515532969464021434699743368825737175726010007222532182578380309560471390046432982037956616487669217562501572926882799285557683437951892981900241431529204578773752723147326041194697311343117884277110429407753815404183340501138474249115386953361389999693396608897449439403776877240988777561297736035401547490544484586220354157018766542532590750367679153693885169608579307017381485890050073001695765708342342465217038803799815048113023288196543452292480368685759377288548220762184118268931799115467191342256176315004030028607765992509504578288019369120125805006004820066327567849528887959470360952280535028621395157248965830682319578856121315218216692501025201094140276679120099029303583982876934256226063448073430094480037493226745233679473277276046213983398202762372873869531720222550050929741305286322483495159682794281425545719599029840531347661166024593674381970008111167802479737626850661628774213963238555303016805966303233618000305086893079804674959939304888926045793088057986513870796335152326093303181181453021799581215964041698013258940323454618594867355794587396826366939488076373857122482168742293384247063634697229650157571694360881555491580781012708419877274836736828212739388248849121260739572565101361868924372044620755156504113971435786458442142146862134342121741040221200315575633312045697313292791946205900699926314363196300690842673543849818574080385386252090244681825463964818253511745121297054769035066114581819445300916877222089754225219631306964574734110508081267610723977370324082600936955103975757504099192148946623548555370434731091421565591647942081627873708062964463349702643626180396297321122791246845628814283613759695909644680647112468998779894014256160335620836146009526626796392495090308525548157588080574074276395111731838602301226619818297480820042308446818201685723661089073331427389434857108834039337505676471869498870770621069667491912206339062751685516064121557379060459825048162057546324876818597249782445691502439960759755228787382560547851587722184865836779422662865873497858354786001277278375668433731521630723768957603366412857248019426783181459053407716630840883861013496882781151887642801809474164748445781931928181811739269394483114378661180512313179539241925178936285388870105853356580551822935616930301829750332986719659600194110835647388172801149225463628714852307836243313569431971493174305902514808723012794507098401730534116274882107642994527712416100153616362884695837952039252670703028696553630368708767818324588421873243484687450634052791579522494159454995679824849860558206749673683438646466098098297384520561392488994326438137290289005675479280588059605427906155166120448695344286501704366137827162398187006149794860086447851456186184860293087000765649148341320036162683994282280511717443509755585645222347076689530958668097213686983516898449968269240619309457879367415891377491820565309915228857701620533962413063065285980613253189437784185623117765525446323126886942993576066567093038344276311567983536834472825919992862536572915013415853141952217927149075657704983653895653116538693850575069407550438206534789823074616873867444851594523751292629817972292622010727163050277050870641618151766780523518494080867214942452761497516996414822308617860102100333186585171736947251667906687751666733718355223466033528279744876353657869598284993665744375227388858267152601303341480454850161148854616273123490766145014579493105097346761189581911808194099063523417830990423626550877253781113636171881593080546048207142568847983109467652810287671755858581308402591441817255923746855847139642731163009162644528226613787470037327489234742014846264563307415614257791136164830879085293643009827550904529897565575489832539737857146758925509162209559112776983935734856367869562073393152731464970074380316296572848717642325772872829126069058182751346369117442527807126533254047278115198978684413952299123945529329102636137730332626915760216867045996019721111664650357990493395786691357787728765312361328904790994257949413335944428241953523135999722941541369334144597812508811320207352593105928791663525521474911706858468814606442752012189431916691036852175540559548980912676485018117629805963272387280022981055877396451693312970292499143999964533417879061101971239726591263284664767015804998333372127656005162776965511541504843460802346208761397629162087744914757124622801734797272075387531026109609127927449000789882336091109789338143699275560616130238269610233180645460312344759209207430052556505546402125012047115904368340536474093287025086193184654337256060836081718783531730161108082739918614515051856370195773200052991044046070705843326200713444508716117247695859172997760898712531878652672698247820904701362575090601147877723045087660372523940999582411260600303523191935953282713167671094580013024557074360581295191279108853023313890656679741801843313095423948862791187052951134865953008781916448344968500385502470290866373294946505865533326678346851676666854904634800328016187994829166569382378725748766330190945138270274332716258593813311653285230565579773207351902049024867405894321436077222531723771311657102452188810561469446231911982416448889538347216486042742009917142109811108875320270603915135416099128548957377684233427248067655368874651935090642074101021617987823335534528080506234226058646729542309505191133752295526199246185195659201622420549037727052553899099240906989574105588582111841024946459630398495906557564337737536257214550287477586112890456573689537076372770507916681366954506314545996231150128683670192192126414170089700342527421123787272268598115804679878837086304472354847670723319390070813602089252130841631265236539584519905326114771204724559189638778809338723920113003599908899568758776984709634804154709201780501603291530354772269082680564335974466260456943347740956509092325614296604510340701271927673970586680300115482556547876201388937566974139671803540517438227807692517769148898726608957493682804151891763499031571599065330463710315488828066900141909355894086584259464361957566618281379058489193803501844316037216918562941813626157703412354154622957946267322829515366384664718772049413452938080512389819990510626573915516686023433245574921170972343113669333380197715185529673456281620371305452168708448694443752389647831550441481754473119546465422957132938651434249090521943225708829511244722053541286817279073955263429725247287095480317257618760523859630667904286270255398559604988095096626822502862188700880594025623215524069699083443132114645088600186509326331866386819853259756367478468756166913568617689383555160606536658668342070992586997005040988304611144897523671642179066880860110620170567839905539988685338426566814169071285225004702424025548805752747800828417217742140135400839842571197229715165645452037920813399057859871242177811843613643582901690464359966995419373011234128484220744717086451842632131616632802051442149707243911836829326477052764885218466892917538455036298133431408481666430624249591689919895970384123066359983781094984426987616459601385624310985483163846791469592591456046234202722655148298044099032615823955910923086575163350935579405698084930816557853382725138670595215689723731836092529399795737080945177846133189329062673951295031214663579063450926963648762513997810129323813946195268321546089802817390902876990045651941342309543961773044246583913457568408385637970980784121185046434223633542244373647256424103291866059596330434386428590373798674914331065035204848921567665223853476087410010294389077769906087178077255143331723319302822547665892144207174474532515238488067001680335612270821146352159944040287774430437033737257005982364323117486686978038981707037141611056285916351729384558611038738113102663755144996359743389381910783630817457894915168920953503642731962012448352308686678028743368625998942284114457580005577143172256031676670481805490915065446371549513521532129445334422275276382760201921401707605405939694227969427733557942740750790444121986243278069140963755719019322300613611882280937204768521785342212112257369146171077416186134630978024824374565891716041378784231764193788296596492163923581992751100894773019099560084343302682891312998155521018478250330821925778101404660166937439063486804845228785546155891862886451077489163085898015982178927021953843429284384827533397368199269635741972388151168912851814097762799224818404114071453643565495147447968134709502799033024408353262835319849045389654731315873377983452476586494427968484349942966743822967840529804204848789017957314266554645371617689325556820321599957303012216858450897052541351941367553456342204340146758285427513941357675785144658950326872221221306469924075989545314731258657711831772219780049089720116326840642251957814745774749625897493566725170269062479732356654089300021678754742161161470696718908854991091300152639488974088791906305767911631365601873054398481319141385968857318577499883691819268495548885321156639894938705387050713544415053352062592095968963510699173826129460057354904166361912857356318310769634081014793687795487884250717924003780039010465671685784716358457307931859415866454263084527930629960891063340538233813344200213937542715482231158678466982456088101002929466728117334669102594451859202586154015756165783042020737385134638645700263640587388537868805426697852578577992708952081097879548336073964552019784868123756159031711791250252065297919413221090909901365223265922383842529949820282140915995476171080549821543456055041305483083563803277740679997159420983476422676976431728756538211806579806530777881883095207417205502181333926548886417104645036896676714872513088285258910532635322065974762539022544095856456280660482872640612865377945360192021102873904109121526903717414659357078518587439830399595197687081577118352986084638198158423788709066698980479776668948779449328610788842488687837501863172089031482640190612424593304102794238489339669908570023794989769169035292936271613978324007016136544975949554750538301086270954460312683944481984839003188152500677957886976159218835775151456868365025534242274729510225352434705530594309545296851140308062866749289213385785098180478432351690979759617813894485596606372462902069665982767848174468642773315050261687213753481909413045650453209056309596639163202138005110786151732074757853339503138144138819761694157828973788447687397722907494223093988477887933569852792315420288562564504128827030609925614629282043320256868052539721079314739430501470808399334479472306738262490187535615359929432461145936520396830713211333377608204975709566002590957532141308694279318322267362399835309229269238550600017508356045909535600513131650104606855217979775860751636185902437583160638938887047430008433350874266434408029471304752282154236330793472683239860677639289116736852065244785600597621464153645680803663423353364445265403693618503543178975773833016436978112789765506642594914225027559307711904791196454504149787407150225216889131039471186548931126262696178087016666031160265942867722785720287945263075325455110145103368087952331545322745281276707064602886395148943764039645897314681094697401920712313158633780733074359885171473830180039478443956767055616879193450983138058789157075603127259221553628153574226474188871671631749751072709650270191974471555305735130195150995100606858141013636938828141352254061803615269077377560300146379946505176972216670047237566938396353308476938273155826577620020926096384210446140904808896733130650318402434977109114985569229906649840735594445022601662319620630212289271768961854743338092477107953190090875299833239393253174791675198859613416514514467114674433921104601115811256534901793369645831415746201064135864007743328441102448088632866935739805310066551156358767050703104693310173725276551712123956783784665039536994443231107059526194502918699968753861907771760522720767744966178022946211116416157440274025510208831223462700700037665170168808686544092357101297671432289538163790694861227954845076995328444395347892931157849276927502881451836395896004885908823115912042556176709327098198092992091828184220539522728110608712582683993003599659641073565719278495023756996487544072470204575681606157623156327749607441916559458380535740098715067128572269213333246086723629124971378197924920757978852413055334420209867417029941311346738017983706199352596438770564782643106632925015541677733332920723664696210800470138942691446972805052992395712268832671624164303172064102909908669540075685513897787773424263773717651168160813957179909202154465541294683248172336947957723445770570312158795281235046229875004845790479202286782039755568970351836394895143092857072563073578871864302638077125189970987720750946453909786699089585673076771731521545598339121889722783663019331546710134014718986656972763991303974049822766370954425316003713626003396342885183348459129912024304895086257833021893841557240902539789159228511770687867853770131641545024689430859702634932535371597681213599528194382591446036403502555037500194727974940294943624515795924215048375414763032485852286774472467741546580712485558321023265261095269947053665792743531490575782391772328297223877826019049885422529740223265891797394867553142112694489287577442719200505915017254861283251538836000224133072046120364549811439531756881339786181897889889748633153033676661079036497721146140632525808625127467720935265208513422876878813120771135932683110346193080445390345518079587685546318040762627620058930921385382484465011413127963209871630981313113703245869829599580791723297218579029984566181283903388863378555953772165631651822458466095270214115384035992138497887288327163080634348370594277672743958202078960500182220685730713514087807954274688814111361212642993876748245975882457741013690844737755502346101888329668841422632842677296209242895487472586637704658016946517551456814222702443627562703615013160882791418709550121509010812279171056171442392556917696721675394135656596903315992638763994885851789822475348891628845090848086096607066395973599796667967324726817336841137925508729814940389946837187795109427526231825734452135780535167837782299604872496414529656028605252710129880144137333983338455894327763336520858644123317288303317248489825446710986539572288332486456468212926221897797448534136292489296019322851299708236237283127297626212517979069537242315688061017994860242194737382685198477379074349634266260124386482975808823185014986998973798322550561723739870234998367409290604732162917140409004200152372699830136028816682697743774593465101904580443467518631596242160883007797214713009715320178770153792586152955784034108909696480974242541374382415114783034761989205645463900715549764377146397698931368435945889001131135538703954214519160129441680179993583054284522193019773109972350720458397317808708038035678393151533657895183095396316883434964854900861774533831715724962130851790775850708439247884680161218563459234739880338297903648885274089623132108763819301786079847597144163667004287128100282226494747265769495848684792272693806441970347184249678552077995926384784712572910436766645360457750165442537771764261190523128194676382358979861622334993244590799277224768314806029937960089668290255483586877149611007532978839511567997693810676213513305444218206157143483538705081463987360175018068600115852894912738415875452233122942521146473145193122931869899599491848882598488387899181815439261775448263515417328826895379466857963722987715133157823877839972609570592936873000195503445632848445662528646217637042907051049463599835770773048173403454957298378041309892342836619466173593627992765843290401131356612086248684770618282929487511318056145483681442123775062734465421023713435286500092496536927564006938516597212922194114291624844974945105536892713182779103295717905182670620574235033847950316119887618109467898112128285503911597380918831872337961202796797914510093193815008938406592031149460775779261022171608622005464276550712362236421413149180002776346704901914146337385361296974084882099844757299880111937637500076272538737799941203966766954498649072893078720754326204746607848639194922667247661733472429027637021792857420882027495447426793502222142485941945167671529566853191916560050022014339753485693596924077258350445573778736523338611711872309939283255529010438782820383091892589205776192626814907242344347598582359445010123451457291928418393592894460090933350736871159914619763306349233291735427086203303906403532774613670368392044246493585264560273670764416170088577593561356679313383914573149931461137091058770033877108171478185869601624938982112772522152754040979568621053903309819097787543695843829530513784556847142382173444499316823685769452648117046919196517305680050222213380341292504711426810914261460953021527706772514259032750466298139385569537372587619576175197852505373826376727592752428284165957147977924671251233021282108377413407432989027682086614457988113923340669405579831023828847873045694136021377546455595796696969723103313285719216883524345068377398708910810108238778582626695809494528653313500313168569118607356677546025979940957951259204058865430403499088361334140902330204227390247244265717376717262971026631922985320468108584872051046304759153085400164835098224919641004130385433174769094599201672423272579444613124187784118609777840321159830989937680399891714412850587031004825660620631976366150286442403341410625945137544920255500606330714549088274409402861580552925882956117520545025642166531114756412413152312346299060756832483661677335665510641219840454451315098941447044954725107707786144670505227564703682789317439868363289174076184678607489837424054852049399468922597222558612683358332578990266915120217312153562422547722606080590441039724594548189828296619988743783600402751889898478566893257538469044520410352970024459943567329024491788266834800547776982628266761816454219676572445348684649058461584010397473719671207614443107162448571080970881177344240480193558792040036556167835185411589762893390884214887541024858212990609621529830249887650118811507288161624478098931821285200073495739421660210361657630494421360787053092558270943228785694543761431192620937060809388169251093052497429644567167335306374472428408223871562455951282636611841439680977269908845020694187324458910699871850535772411655591312059723127361946369885006140400960493418088854425683708650119035852387570776924555101479240960664995478672590283656882992847081573920406507834434943404133311670373475091499852976573502989904086152891597933968937277659386247203969514659617127437997381593869917859442364777361614598873886524551880779357253440643995586099444434858387552722327339687154229062713864903372999417886428961837250962023126012094229769672556804138770594282122911035240787721325473137297569116982037455931461394034161434123276234265750197873270148349249411614287909714009551759155992148914377639197743583516985015647250644170455303666088827196209265157202753654307481393243195715357914067537900268216332105192933491777261205428449505804090453336432296133780981510714468287182463667741778140047405256067582197538151825622487544219853062541953499620544679420092868543986552313826278669033707979071973411407200098282424267561727662717737171147610170021205397636713206420977950135303881625398204736311824036962352329618087616545262089224937070432601274823807112533704556237792193101752567219984741537820283864032908558340913186835633186190732029684996299436799980881320199376579920137678278855051500694306261771088813448335406354135673552541989533812431463033861709432267780164524391922649317870121370443819903720964368285558552660519715987353409541711741225081930376025731503201272489455292106678403862639105612586534033301510176103077294226586421100312240908865886331683669113982800803130578344141665458072115456469174076304881851654863916366936327771542982702111426221897619036025269478482255922964098498774398058418245174565735769848351161607292748890643649819678322781864384082605285787202335766037591428283248887763816949864896201477381408733629393297675880142620282161013013660269288047389365517143068155085293974282764509750306353113107077111057949129455667952498674617189027183713390626799955377466544682380113177478016480205028403175842051584696387960315191012718537224066656399685958760896192462006244676868798441490427351469697557012885373293863521142863217810865897725381321815008050840065211329769898618039668479742960578643752635239622983845959998645577366827948475773910871075976252570179236255541432621457643872927860694777370059501050227125264971384714451339261958689118923813578446728444591529361746293271352677651702259416955614338636691777275849137230355230970251511164627790068300344775999674315696036051491622616941521485026073675389393169944618206858160484205433676907560224379366841715482591766128413563931111306229262409698539483095910197386912012987891788634849274236470707156333651892199727498188735032448344713439102675188323207357630096994722700009415800380730539498952626911400325277838409634688842684476432495459927479710237731550746478694210747299828602740587551932356352158305809842254041805084649593891516785860722510517389341096274126245126428268341375934544512111099746701034031048912993045773607318630065730355956102476158797512843445070438077803950824717605662235143155342119924826513208031212420166171987235472126609235978423552911832649404233166347299842204154768078924750500110663059974315103829801031818702703512234743807423438254551457789293479628607854718098803366060213521335148662865724949847945447425002174842898893808760050087087004794800214909203809072536393718050872038582586188841741341630017573285399592526554733751110114774484895443910657571203972680258760580849604209439273390103079761051558134069997324996040255933797983037173356330475733224494131070828047171665323673238923432171245657042787289768789686379422217451146040167182692289873771778487069571160730271046884742265995502232200160640508969368011913525178144063213223893169952055456479598180192202385678757177199141433016686449773253069889240205318767977181095509789236947252767993821731381139894592982774547627998046939756124064265530792027890042581211173187947676083759431410016666226333589190819950427035025193126018968209039140840809392709545203168401427691643976449778787856142844628791776680464751684870531940143040280847164794468737867379098704229765200797863120212543268535974708575881220861864183647410663894279925939876060938588455851710248295561390946562032591299327494142998945079232273482349786227976923569981336718108179120210456175599186242875737617843132783535624090306582910454210697435707449099266863990240644764798183457880866320293582557940925367652970252056392649505093396499641950482741490229818322913456214559003397262663036219058757587379175079244097027091636475937756948147791037568104279274103141934214804689104697635814899011623007742785149529218261383357586366736503352995315391243226249315407312111904258243352643550390450383425899158433253618272741359817695026913948254039809550827923656725366849466889990335247262491325654571858986389546109811437758052301462290693455842795996656986838570282616468457012663559304182656224873231273553109282199730376288081444839840608349340691392084528911446931634363915526296784241207147129273635868381577822190218445731345784982473696449805610361261645776297611203096585646362434227129789691921352236974173563739324914035551292917821716297483443167546940862019576011389930276690366536652719146232546118687554175250638109363892408400097751479271572931474056238234802755241229739339900994471267154340495427309565721304407712306443539136839180707809918396861980371383345377659785533146897334695474539097402419896644027984838228138890059420584130014452773616655392901127959301694973242301353979935281074651005987259408886988280921380223104381454545019485801588545747214758021916263708263759100576652168844788107894495713531778734138551318240427065360707419492760956114864436073243665458051504970526984607325981309104562500116246037534245592232446999051018082020459036618689200918671268386344434370089924479680796552176818739481361811806807757840681501024545551564098276697698558300057384680599580905932211978568658514183152192190240053742683298081865177576703052064576891302841163206454576300512476486861296449284187020434810229157926401080203998170227870880124131799693656211463423516065356747023714570605380070845953566613637198435313009867879840826691528329852351974361180750786295720975185956599367076618027533522313372725320568735171479076942679712950789917774836121451996818449725739629997516256326166908333141532468842510415813893497902450846977816392768858062672541141028726273519599021541290652299596411127451004627464753340571372794618958915566363340670261416031560706255299147198894535114738043768495658819610093410111716963781009947003061557904372929384169482907273764814808058973627862387327326058522875507850938549670915978816690151467913415241350575212151016565661821261866102667355901049634183906338098147723824086746784133642521464014908874674716797913967911027180049913334708903329756776032683830372876195407675447353265696120297153351167284519174861332293505912969450442184130064979095109592769785807946208275951692367134453606552410328379862813192089225123301469347870322746061834464891294692690052346451999744521671073651800549442118474897446462642878362446277582892633190796430578916355908112220892703855698188214639511306151830995275234176738868923614159587037640574700153358048664463067620263408430755717827915265254375049290799533662789558279441746543041848477756065153707767803918148687695093411359067070863988537762102545946421791962265849490796474677816341453406098047047832942256066651233614255131247626366779222614748859672459054534742554336983136153623007577763698679281738701859890210844001733721501613456260838990881264117247114838320801848678223136616104032609225367106568224796693070152942704902146391642748164731038849154769036513167152258271050203135516736928396578430274284535069926063793195520503190747304935905676523344031361077868230903920839586750097513924378322898827702663518467333413702842333838040946234026527427212236044198712972301863286680002595015832808148372517763232464179286472094799142425273807994365143065897617363423522976047499376007078678027225618488193440504838573208641372698282074218834727992757876794653637675242378568684255837467053322153704740161433863207348392557407750628167547785783762008627073075694212448801747210185011009377247403671721829459522746603868652024683100774131846859524256314758331848540238011207268472119271703407163859977169249743168749437500601512083874273641105915524880384537039526326849367085044900161314983131343091263939948936401525051949730967686714676363350142598378097430443574476158480338739141261281836193849499139015893762606047258229177266371193849759627869269685767637321233037692225186619962589748788331630020116975965796874113769672079000881803733306357984481211157789885595368216460337089892109477854578858491581851017369892752792501221056534450236654935733442712221963607868301262040955027462852103655849913666851034261722660651123113664594618638396697172324439092641675290093403815446294101313092377755126970852210386066153998652389583762570889319423557222025711648175759736709461010754459953941464882106429110926226368909428377298782191931323559477086760888728702265117577031967960091827543337148472792693602030583425107763448156206814896582620479545267125178551186124175968010577663784173908577230610140637306602787104879227143642991423918941168309171358147885029425093414191300104916921806369457311402958901521303336321542784608607169982111459413025811614682435018506695422105650483811993040178338107205048816240073166688663231516911429638582037031325761882068566368146634946747125943101805251262350727468943223193730184803992489363360034274572386206359133679942468311643983746206683188672450237699127145897139839265348864039916724338612068772898985091523960604321832759881412664514812435580807297752430604463065356145951486753819958850184467720426999410316746782390424864197466993630418760720292311397277265299404983784491327777870479455751652260277900087269383220125882463356549798920437691857072537424195902855446838348929238366942524654715832778244966113976566402450730901907727020022939169818419354808001494040059287786605935816212059124821452260081385157614646715769769912521640801497424754856474576180881565639126685011712870225099804486872164479964951972530849380083855914911947671696920531024658045807813995482042942826560256951809993046994943807977049068341095839122137459126598388137005160223768755441701165320290561838446110787347619898715739314279845830421790367037098804669818822429067174461130438984048358603594749467530374472437460769547605389334152268365058195542176157064080885572577145390162872817087442932269201750591394131204003219245075626075091195517502551015206793426832115594183217148467638235623253319017197020385830753143680944496983420554444312744595381137858241190763583514787954469520238722783319945690292959661166330276830198525467528501152417911799387995956990561025970536364328881206102914414900930842614032144730778960390210553324360749421831815900480402470563657367805501882483663811094233864826249487209732352301290079644810217377202936817813331115293423411022601206817429054732138977379833448150039561238800401443818739729715171265264575371708099858587207694283301360130626753033609339827513939273531508889192192247779289659116074396605490469277174662231557709691441981828211905749484393096600830437281061396929624607715946057898770177557982419313629811117680266008676995312100274783837409989246464271425087315699259364550271835096266221887909822250454741041594158868366352542045933218033195431253450681111069794558518337366215100191052846998040599170007150705440616459737584407116043646400285568297875218842845606873299634323538092055697283955831077783620432680534165501275291895809216219679721599703361642322524164230918424565911043492620645969303916694718150001691311474632754502145285457595110152720303131727611151655897024307980483021429230437709959140000599927448115908738883016576675644469775511226773051166082408737805780337157391953110771918153665868035005513749010614962120818234092613438262283675174304934586806906632150050210980145434864529046224891275029603483944811148064212071735720350403301624032954071974076796939676525258219053918876585969331496929077601086297717686519920400736590561519896178185659949357430970614543887528135044572985722391235972811015832372547086342880570232340315529556669787928118421291754586660537065182163938426797045608602478296611684595670252501583809212514114938031730286667008043302865517643894888389817833164892806140851758732211858122913705877225459266858931631634708618442344589584327314595314263835025258770777197310204979809348643718068581838796807680043135412764775357985842182304696226042686345375363542617758312962058676912211982499665239003304534564664453222067180073981613515796561431971002129827977621258253757669479745603519283392304146808745817669833735202961033904918509347455376935203181574328095088614736719603219985306973815408881782869528929263265123496683875486606237917505878300517985887143926160812042280652895260585684088369115638811852793024682311708563314652068117146505659745803288081779032660771537534416082070135045419547163578213392350989775564422605853313577091856270918931617498787590595661962391293358154208240403867801338598981139689949927313793394164804531216399912627189203944510378758384504766086162506455792399876758713317651901449608738995666765909365454130261957619378148277702862825053456868351971120635708925598695438393759810191340676606749098857159635033421065946428020299258067534194059137335280012315759948023430244232080705598105438526980421608885316964053934465532679029408454442710505354214346618048591631907507460189438981836964660539202350731315469047623894347402327788903769720485583934814800031868539458769040705223429331352525333478505288388217089163447958071179183993778947851204604307598673000268149737016297318264677145072599104167974680057976126567249701467730524635488116265264317617923957949120791791942099624802001257686196038567787937184164419752359622076302162893466607384632481175276527340927332507785633993980950194765921941132231026207835523298960503380003546564981146646478934067548483510303077640799204540789265211303891356915234928818602540995604145831438375607248770421444475548792459292584390429546973341712746318838125119298630224223186581906919304336987465952984334101258315037590328245955408117642135956514654086124699147902058457626044410821422511536315065879004925830103115010258263772836000281601320392636158364552532510379214807920453452370501317119095806842748456422480017558720909122046619151825741840807574875355666635696307721344356884606940007296600810506083729797557728706074479140372888504535858768236510800959556717119669231573736685222450034452826624746683364458052857789953179267340771408339428737131628898119807128187114739942449901144971651741994462241491729892292978531342957823661495412425897135531588170484736785361265587144022257665753603266020969045280695543620459220607609547093014101232271074284759956982794960047088245147428280595881031460517821323347144973710420287371612634384326791939230908511764423127278696646394772835757881280381728831005212457482288667353840720969752033228263517323130128404707224864647918899968571498921578098079286158708144717174425385796778901835959995031129828028657146873942282052110712185184897519991767753060454639601999161877709188588696128490685133000191037955816075287233803058506199423791780571470840857469958768364418462160289812717827459133869965333258296209535743689306521775477289844098191332956482601068654101109461930210523616827940141489967907361306453030619088074184197310235735610605704109625755294536347904693232150778336102544989273571206851312845098285269300532228483641972243322620418520699213325992444552809575326037944687665330918640394119925613303278312985228774394398423988253737214738675941742827411106940556447261259229464781583104826730514149008384605385209611185337628874471493155828256720959586228690853664569303570816406161147941568784856660943168956093769235289835644567009244113838265452324751619710075600558881308892441056741245253525000976213745021320037121473554180752089490401978448354910312997667702952426451981948974953757102529572690094610913921820967182346335405350909686734275945526711246326018327737489395196720605727148599194500557377648073685675893447886616607769153465285905016630063128036890056451927522741109569334720771117310814875221926576470722777895034887578396259849277010641194185346004471911889714251979369059473876167582582437276289779215333847930143153562818652796269663343670500932401096710317663552803289303464264386954245792717305919745074921859300700545730264832775210838015169717686795662274877553046567299300156302143758815134486957918386719111263443176536077552017570302417606754859677658782060923668605174556732422018379528337282123424967801313461401869619625032456069236888770709176902573838220700598031660258006242001825965364742578228610831406350197467968949330561929618415969164566902320235998793833107234037708542946161925023823908794379950144866910241910505125420404410689424066259787529559332644534968356259075667340292004765730290204451527988239746330872688730318220750412343154956038284534299611249206295665364895081339750689096183982941097533681162042548413842379317012317224427386812765498562333383009137479323015962673227884645057621936700411868120177211074706503355795373726296445289394430241675840593878830491876998024183641779666653811679251441510512083676455536176679807561355670207387637428236638359438100480989507897718868607655602627857639463641474963199625112381068657014345001417044572696016931946619452334743733687948903071585716123946626172995101786897275275228369108148523465452993950673086826820740682813227779260326099085468885188309755043708599024658783067569414037364988307756937162060322580419170648263013378547547544366229446182632623793142225733630632444213994349373696859501621638479765596800297592822712667055125823752187306051436774761859756754662123154989460624772023933475160808486568558412001845104158726554514634722492041156876707825479137581874509515423779528703420185154236960543698689155603377030670678196488668666557081176645686304521845712408575931327268747773579089327296144225484229250099967763819826112798611121740873177216814094803630185346714403958211717476748150404850808352864810183912727548096300216801573428731688487167179911380379944147801988738129481154347371434179297787393375741773519119544170352399394083041714246740790619244676562792502608098309019197386360403723057171371704961200527733773108676151237051817445421824536281116707384713963860219775027446251157317177729623137150710760513242605424584650287730580949400018004904653486263046154870818256705423252589858163215244391906389638138320426983788886964965571576108678402370363449547589968805500737284531528852106405840029507582927269846469312550253172705493975427211702346987402246435139924891482850512674005111605193213555249212703868756030817934269880294513614631629276006452204386600258542122987585800218425071359959333070419283787587565770188446256876177449519877770772846501388156157802580166338807682661868860535212559261369440792203393245886908711612776577154829881700204335030203568513837217476513207638633184585584396966565244218054621709999553756706204200962523992447152760497967544264837586067509198116315548967017156539909088221896711103838580810555658612215035849707884951412172389771981678381755746114171640980142875887994668603223118592297372945831775589370336245835701880620131312641197784722769290861438530576187996445303847103980682247423107329547176593368596582810293159939240307421684664625603212995357668069919573149204662942211054625380197119014240764932898340127754661287451930762362359417783384500110109007551586834695259810911696535198849713384974612480499716453550069509235582945847118372324200350557583559227491717193039100038616602015104249294850260301655400755290907147594931950025254187500421723040248446955885648459070539002486740761820562952740554773066286462870084731078694340183185377023467731869996019733645621577280497926565641774850280194731810033035750034306321505914180381763601694347613223074038679425232756355470410785798527750463355122606593943045284549198206453483540860994596762063314889018788043441953452462589776010352990880671069869448307425669002090703878097370752372470043469024946769985706327611714930636038748042308280310633423529019183970089871727938903923995856012009904933589180447844279892009984554492444705567181077476796995487609379743511251151898621218730437664083350016801293618983427498112357686981484296460942816281914437823749047814323372393838469620771032272275577417766178422743927819156164148605660371327429966198596507053726004926180659372783543257549024212743351267468460876790504309919761706948595381625014071709701191529757380889219847047185602958291268146556257787619250506845315213895882343208632930179003529178430111189755847797468965096033470620068555449333877185067274757067608983614719728335843398897810180841618600733179541381993793784674826693675897569432946886901226168145161976829142608527230637925524259610645045234677179485114670868719623109487597937892430526913988224791564105026984217871759360780145854446737780867597641859598753157424486644846027932084877239613152593818675118690075275779954077134772173872744082327355226169220216338967078725752452827697036429471415444197459607701883270485475923048737395981058929987810784669004711965348660603132422064765394920728405040983267178146095873798480320527813317220640346173852834204156501603213191574928610920722387518336180228588717584716457419726551019249000789567917159298397670995350171250243188872806515224424049277344367159507546732993471286624568282777980027728197080482081341010863175999098672108219327624757972414552124912013211074861082748961817942732352544356132991212763860661995894688783962634118863992603710651157914432075770693905944852581138257670978050319796017378308249516190153981320602181975105837099725710371860688379448105791973148998283500885390905053717015924897429747811828294488174811651904676614134710782915530668368390668595551557052486600200682782791730823542333099352445152105428489654140920574003446679360959201749886553363028371771191906534646845525796180440399606450271000988048764533948052453984213058352055638703773517951589833202004055567188321100304813377846900258238582169042324961473758197665256344133131974617114181204741664669699184960486901356032403785860229801227673829310542937487028420656921806649626486506483797675160421553315395929920086757297774749541755842563735429996978679959915355932755018895000078239146386622626558329849385555352477314606485122909045345791809728419331772390272266272547134892237263181402988795299123157143526661962103093847546400152082990003323682942330269746209529858440283729990477103324225635215059372251079567478317612608788053168642783556500582863548298142882283278647585517134440958728700941394139073541748553772944968966416576790331526938737886462535603326848176795129055443714395993460830554707403146399854720938076432087756430942455485433051483857551178607025943418959094936531942236550256467141370345712404221003858891488760697524306344586270687909094795483714765378037224763421211715521817791418751478809875319451025238231453231344384677571583987791696608343164246846221751864520634737421179815683810910166366250938293299136667938776345140223610503551588371884029298842861190166429703320193575848865947334383729906192534106893285978478751171557429440354832213255601016091819194206043842245895371647091538258136895014394667541187869025448918280016243857351862175054032276208996904923145714582865683482138058246292296266088436271097694410060713647057124359359894169061798874882388940849201654214457660912160648195643919852756645510921368330653891248054848289633975198593375882574002844121495463005440559847313144633236042667548772969591304018473855101866225559531336285143842991313415479993223874195779189158088588481426901310195920036641226058435104769264041587687590731825500224428102880961119682426505261658347700348140227570868119148512809638475584703299146093032263525502497476163014485218367745866091131732309629830242670180566766264772513173866052936069245661172049220153663369344167087586791327678139758958066182922618208049154065119691600732660128016677593786578940694428740659414511661359800625655329911992027113754565752565671943084490870363939501090775123265230963734396603408251477536929477183063682141993401901971079167670299165654444191403168072940219109660625783002080063100583368819625216301446376050372560234524993894989035372756601439742321095482556678196166107116252195976774219308694083740431301051322013602544835524894854104919155362394097939129130428620546315826417224961522750147448852543491840701366502013093216216089484598298176559709766737023657958028570137667537372064571034795204481078844461791981795530539675439911450904009216381255488987042921756911565649897707072961654067535327974933619576754306559493932411489143610798329462112750266120241362986170926734372509107862937646256231433147572104999594497634141379591211904261983056517700505163863591970276396292776718488561734572522993833697749377033274291264789256577422518759458368636145113570071312414471130587363713455514830051274627107963879837193498297070105989290063489677181721140654485013665983676459654123857074150914905662623003198257423124465764137636136295767706172920829445023547840107192249828360767941862505740848929147055103979109748090246220694602438044144556837518999131831437382181938509860258809048277225299243793964758883854883588301442656348345296582371803679130154723105532939558055045600221208621788567429753455841604691929525165309110895245521163696264843742210021891460573612623434154426241717770077257376455993422290667870602920963743091437286340330562838370834012137431354006155840213343735884820743710784458598576664273999959707405001817953090129418760985476510247872400083787412396994502880156293019279118379487306394738993226195848324496619531266451542815416773823786834755805489344014870685248860865749452324094505066385516963081811161248022340444657321187994790801528363488913821565240493698920891470450926791643785071661361734028930854649016520336500021430533202418317455801955322381301475855533978592395477287407140393826812846948244377023941538369296014441510523357592279382931284834896295166445825418546523515206674469962991929205996778971276115509452707681414682026365994303013776394563714741921903872896822851818669139505170564329364346912755961048943252609219702343365628985544587184985135721992304788787942282805760464055893177250300991664088923778972386045298738536380591033067541621198725406900328605917134279742950316966783372136171978443661875934621544779776764550378893864794912096238824094882995395321710392862445126868631281499278164938309468983509217061233362856781857382819673396653826426374041234665340236147310787327641834909303902939722338863789407601246647634383371649528883593842548934651089955642441831993877445975061822361124069625728865716627321336184086305128029755491446540064529630534922090267475845826832632745994258890174149027412248906814707553119527701033252341142144917047743453583994615099041862781080742137338623723244188834348812616346024709415935616312385849094777064561393565359588337619364201654740657208471919642487258953337600541443471979467148944609336972040509960521139477835440982730226963207801584974899337609053285162477636270428945767208553185012518705683553195235995858109754292641383338053139106384563874638018458544445061655229839276888914201982722251607320586957098022173977366131437150024289951938748960811848422298875060551633931845139402283212208488761629689446684852681073706984033434412073600416135979126780595346745431439654232743824918059832306811435669336205556529501980319036284679449651250638498870115695627724751414150867410633281858216298995902152331642840592663899195045816210194059331136003519203951993582180323396351818252833986707264464615102516196116903045302696296183100543930053073027024343438624755497255708615354127829315064315767074414093507744001406045704870067078658404270714873618249249087338765677322769339395477539356180948107135920568299929347649795143892715399328714393179733911527063823483428160946253906295237880528519966438720491053547842329349414685241428744094403929200071562066334020736179140733589616058407023525798453590559830162026801413074548076068685255925330693966731058582611376887991760419364074278613736092685039924216025275481660190623696443069844851169850921198160802046357065769991083301314667638546293246114454974050056785651987954590321693307088752511621045833804482293420950773332495001300803224230020528251059977551168946873899742047339088491956272059186754354783420833673907786499001950106136402270984069082519512842025263959613180594344348659244185458278678926534562039210604904685375423027584366563437790246081951225738384711144826213574668036680979336614931598519118209208067630091075817481247149776339959367046364713959516415595315638134595903297376487321696067331583816395044888755246276675188718795006321485742889923742098556305964714060760454320879205422617508016477097631506148148238260555668141585126021671522731883284021879791533345763275912976845521063843927275149627550647523222986520411927771053604197414001234456483460796574050133676050762909289590779563124666785638971814734957667159540294908701888048968425079522609961650365085881040741966684959030836670560745878723670338961990604138412494644272066667306043947841472382082232787172291692403740098755734550719018540445209286637115484144930777720285165944406938865664614030341853409670313821787527637257761731006379280529214839506199099286376941488816136364880850084758441059026207799991512316498666037270159868613666567946792183022984722680306471086139665181959522854978694552065891985466531317687680716427380902171459622553779767104309339159701627589429519662197979717898835372573089434455125960341994193799741688425684486478313656225811431216134463081312168954734138591248885667852896311262466963215784274656780540536137659789550203076715443291488753951625145300718753293372683305969253979957952688538322577297863898585599616079106792724923906386758051961394560848684467345332129337088434461918022581050279978281242767325348521831753345779478308725283789355412807647530326757792321471746725670497663981189059574022042149503075362565690282927420922910062485036554047101202251941528515601227703995970129551465959280476043048436437643899417277415631321261441616004679776960647209100697959385624323870271743473564777339248243248808724973922894067892382879646334110811471768009101896368058171705458650375648064234752051726734127247758172203850210878896793600297998713466560162341031882805543987455131360781176517325929177877064813454593918623476225107898993973554819602445706325329662423067665892758989659005436085534990754171815304628783474911513903080912000742676198273116114361509893406856064710207799218198567083399494802792760879395395384859385970748961428706097388997855771797859389766907131501896545241001004437359178915039326064942917770274097972410032455807694834200078371035945120968007079412747325983463027959661370226517592634219439585540646310630346633462419074808769373478993536915608924430536046844025191779095646078104142497828020842203141911957314674438875027904802330016368153435258946459080106897897758975729278279280793391560994238384123957372196588893196832589913157664132546496709716744679486684242132674922137824611890350674633433636124699633553830187356897373802209462434598267646337495889564270113267318708586211739474642297529422523182277534153506769231117046496490971536871189967314916880556959952022892931302037637628937079480068175961479043219029296911252520647227842929253525486344656503487210809055253207592488451830845340063703855492371089463808187594026814475680163037337913589224451763631839986730371016133731498877115861728088753015401922352871667628608987026134994849128153658065021923078869797336701621232397889088377628869487686711151506668995419973293606687441183958801742730368390210548715399750174106655747324540684534406634208720376241490292943989848641900194442642585870472144122629232478939336807253412304353520790436538562174593334761351722321381980187356478978568949007765983036498867214951279379084282548411809543608315254045980501451760171684497803388672036885049961863460616434639585438437986317628001432560705237633052298501941334192750403896657331378143752144389093755580531842716856028398183226609593334289680226315218378980285151718086176106614820188815268419336649297061992252142875075374325730944062745550700920656498386336863823019022950023941986903983827658465329705817178909102014814823245760286246438137871424318176014815861365982837599107893356276782192691986915085177188682412819086530092736784092338578077162181685024005298449984644767054306721441086026339815562934818442647298894165341116807262729242926712087418859664167487238055532707555873873760517792385934320520949078121908555565113212455225554399265532339055448701438373264702174249665241352802467066166052645523312013292517151096721994786100297406092075801560254464868452582970349047931956501636148912358285370024306995692218934644368738422548181472773154256261368196636304118473573053921710726265802234669446401380808649659761791967180071957104676975362740442438568005983418864463122514116935612457632240525160839967838579451156480258872791199753876213459359097244724623168437839166978475093236757143784108349493791765015425660721771615135037113937541020439056718649616642396773165019452650531189021041151033070565323472862766131319768634695752162465213952365205525167244333272267282370028911446335202327517349743877259754732930040791008337604544123676477261334134245841133622111892578686596126493283781759152312686538152666800576268227564487183570684544473312807268287733015416443751425168975180716919384437826120231190269169289172891061646438203345193749176606929171588570447967487984324599395024757763016344691184375863320898512140416544556178992081664524187110585124158169630872656976735181171197862402752561532381862783824460846036142494769580442377623718241884890358386059433364620491966717514937269875943788842398173661831076855346173183170483171279481427464991450491017182302509367077001223877855737653861728912660723099988536335317491018138338856641024862587522005654610718063831323197448515045382808204989258068071811567923456077038189636549794972711466843892578795759324019467652781092296929343086637860361463317201157541508517969799537745504870515060675122877376985500106336151104182372047141538731076406692028894349581556288593154461441690425030459706767199653355807925681521808240837734717071899990826648957655955180103582930241610039205799568847004640490484316514078080913977026067700073215926911498391781518606043308407548532081753143871747152991506500158394024280939293854439421491853455848393279531528356870703732777095653194479320561070229318631823383662704151601323064843344289157077291478012052694323597256171041800391652924354772419723689494981505659486068062221387367850600671857840615840092889334925233429781519989704345889316498748562397185179440991156739635577170067793792738511704207128490570268242791823897439887241345436428513261803149226959487803964329212460585921803862100756697055255041590734262848507348643486613923945259004815151446066112816447832495413541736536747313885345533722591581734802035272299078326644263251231920808144295592281649413749822927043877500758059594762195534218613875366273502879774790503305886799942122283929906269153937044580482454695121833996701450692715215479614201979885195191116503517016633528361738066707621574256836490454829175693368068421553184336009762626642847632612061346614237025259196108498075628250122650397834207680053096528630945016531541416331229158493223133573268680200988279455432641895527257444088834686913443343158584104530296521615946169182933254607487492304641700181854184594348313111572039392136426517605577225546370218181525620275007260036998695421619987845824702623165195961961894268583568639304763315939950178743727910147929144046519755197734486014495592883944011189411022713455026612576745172441189374002726340359278306073581381537065091244899454335531663741029289700838144795951859372585773092416848509495977917196202275365810967368348655881267266997468942470019718077474858545862036166502613692343705085653861817895575450742573755607965261114246750929760476938988330815360529319775440361857083993240632995494876075307452348751272716111880594118887513843137962309192908009830192664479848650927231404346394852623968531241879574005683476500982698303244455551869568823945462967318756355384647270920723064818236312907985293780809777357275494997263468497999799008514246607818576608011657556580685640412761910574341325722754659894594497000839260554354595535756707551201867184482837328019797203698772422484007247909722993668880323090621203843428187101217450975938633218667354979670771156053187475168529659921082823155748968852748832301423186881513566213766176632845388402349621231908879877029223344104422615121427406515349447702281307017895864149926758954440248775886148440175629349378266865735563453343650408158602459512078531899740205768822603307927852816035170957546041801904031200698390616991825456265412673310064801137150785949944467709739419525168759356249402492204889776822608110811846509164261675719366026773343200047430384309659979759241470126864801097933888119460744045046281779931594360366163849174314674221573361805419322661432219010218073588787491904242281945353618645313239792827228754596424655749386858996490509979835778454675779406386434703442732951788730055585812256096780478747447684186664877955169613808958599293424316250730975442702471703215602486453498855800124992575977468697787745051911611499877804942012557522921182123768368672251039428831504408258686592015275122747381645586878936882703250920191123192557179301990610921370507756651891919632408978322896141136322948452129585595857846556681099379488359127126558156366897080388533550143743594711123006470499731643601839621671821923902669040236272925548776923464065303369319254400809690964721511256909655240625230039013579938767426415187866992418257333442916399547508418023000747419693500374533274066256134375930391715197352836899911451516184745228388270960861423325316737052968986078130590697122806834994371780797137897046136243997350157893095428333447921233595648345757601554445214870545894632865282548573619682377338577214792453798170855903325639052237636051113448986042454305914848951330870792245647819929489321356646901741442078572410011402654745673687332855667997430883384521509686145385625707249632593957683879477474453122725281341953049515798011367110771051532064709930396615670305800678701578273090185931708139339144728914804822374962700404764824389006198376606415266896759507281810695928751625951729923968220432105405402031233832711848031502659001936519175646786429415107223474689563734649911132327332740012177000329085677411338929253059253025741598614548945932938701000987573556168114790510809806844991870154428626068259474295178346497124241775559290869623408086641174791912853991791335284063336774715054876351373547714234707503106082796141197555811482493686233356741121157892040756404323899571608364138506233351556392246560812457465991535121227128343844892870713226649165891064170289728848147240405542016066416469467796453272092269296369140106990182679042224569543911652048512252012825491387196493204388351569106297720726861062447058761988181824766224672813050460780593408130202720047895037650757707579570583889632865619085542263558162567334951100171611799115104566693318307007414534972732584945796046646956393570107691078344494594582604584788694181526838446760362398327706940581111846715933276650394323006651927985154909044984617934136806769259638204673709295681871760423117411399695735526055238984640286469833871074053868640774768660129383040821095262294041010813770659314273152919451628193205018064983816728635289996910556847226367288650384259033291477765821273143782528473532008439390324612927860395871077518185369999078715163625389991053926570901713141721977486524474151485805024724500282275224311002389569950441033426226976360427265119098265719978781466374312689513025606599550656640369835337101090611996657699023598553204802763491874087620753886666825545910683257609811319124432376614606241530109632081509850788811101395027829651403272834708426909690552513182238586404265797905081554773609741376463960074679170844201327882541486655992146979507911667373660771575920368730312224879123070083281987163257227073140287475193021270535645400819467811655060770787175034152268346265508180526356928402216805898203220488452750550431402382413040928071798999279688584722659049055222472334627072053553877709017387093224593768772358542686636965520538257414861949757641713376151697439414999498515741363468736089648230049608742495190312227525090508979429103203890660298908659521438528668307648191995940565645052308650159406052216715842430031667097223195504980345424447408673101107749811768580763114827354327058921930114903890235506938088194703100505383912835189318200629290445034906514573941431106774718980513292477658148664109763207263017375166878062156344744585164549912761440229816576697945921847714466761204500652491069349012038406410566899075290367145014775599528178036062342557041273301776924073294926979418448102023938571025969841287042511936768323790044174784844566412405489891189876681955958036639088371985123842720047617981652962505515708600403842469880899072288600029283505007645937076410235139664187471408489731257462930996550864487354570357644437993658920872391089150216738908783622303632993890580048872489260429569271218357017902071241526047221913748944322100423651186266801483240906309020870762505668903704598868887753845723062563827841543062924999932853010265809785955293026959762906046908937779047345166126959470642723280139776052551498562013643490052159139099970908433050850817398101225830882180644583937785816045498908720887979974956898242273144327930978608232726325182581942806304022503477514622406987400288655560442018412274284308193526364600081574982892483891349403871965929391527083860618750773066618387320602531083247577985053880864736131221000762974938458607034036041626402601412430984316966837432745169059503983130250986344896717266267685322890628082152404053734917603265437854167275453964681937253232243510208706938619562126399482520080213304886769077810223515476418711297699902075620619784517331389048566304781527252032826167567571393092571788059520110091849436223858730487935129602668229545903818956739328700305021512221351303525676865067060864158876218631769769372600910681160214136320808756040350539168468432752603368318469178970307220116696819931123959507222289461667958923496426598996162368173533167977292619810630185022441782908712240970900067589762584695622792677487988405379790455285256927077642427795004986849538187647087597129244799573505573409467739502254564607098606151865062571772588356471268203496763329120648253139986706569885649405902113526441037290954225618423248890920277004281681515644117629604394037181100712624925056380989087778086721604752886827591083303397338550751724100245135274630675723896554576857355691793648396311749681344471164243743879853791492374300921386201358429876031661761850745129103586955056187179666998543056173401713587425378322938588097329198533329939254509878860179837380195508010430428157594411615086949282900182231741292259909505923732524351449059440353886765607715653919539789661770794639974351964471758351773030577882716351572117203384481588279537415147977603989135965323060951562147246460088582720154094651206754746960876853961538871678095987621917802089401440050131269787575157139109197006617730099862928368046410202549734035738966422816852528793655859930489273918294095894629580956091765172678929096138889156875303838741036859554405175223242259385041983164715836110478748293309255330595753107918216179463407237587028215461225199178094352623494371646978780046783703072878638134342163091588272684599135435478285254862031120545165277598638301480789501204279983924191875581788913879616608601794552982837783720629168066703829572053915688179929766514446553374991178336419696536245870144517476547041215194204442337824250798300629205243132388771127119607326340864975197557949695445865280355534974392756998455011935043713602937552324900762397034338097920994490727642030230277818976286280558367294602947804282851687844930160252839781048673922219579550717362941019870384902646528385168850417151923643410764111036603335847633585372716468009830181159189419321860546144216212376481891395600144787073897791698085228469928002924266335821915854435208387422608790167020652803442628890882574428405290427303830868237470043892668160619248267013552272883216576114944595647179663127071569146845931852593247733078627599692369757857077203826490015870005395477034944570679505806287405784326376223644344612446123476478488294783716828383660841589398257007884867221723626721071363965126386042980044692430830238392455367359027577502350856034386469583714867019983647126547884690542066048478435869911114396289770440012702752799969983536738210587733463735729554676630552910297821999740590806326877638057685926641377530584423046737383671821067320263051900585300391524929663217899196953326063535315933881681168171078392585872894763927640871559048308889211373113826674744998518230356070370070738856705612023801142225932325056627775896888472941733987169649042384143657265145350879453700398414794927049295010567131183667743393417927596871077220020168527582465688933400501216005272614381599187892762240772474146599571595439507734536888798515948879644210917276298203799601456647554113171150786620594216464906507698521964206615815061500621607579806451610065958174758727389931083216331037321838511883315249498204085521370231090327071430330288761166670431867286173024614225440532190348254840837323162237447126987902658112721369245451865689445037894248659302967278810665533141871406402907974140534252740278149628118810849601973770607402944270189638865474698285198084246002150095540501083672949332018290587839539495356160222525552341922117903396202063962583774896445134522071419455783584113399093873833396148528135294165494201522998650492359253140884900765635587473738369475488315878349059443010976894201556237991596621925017696553100813023326087576225288375826989638606501252108867747330814763999039488185767821434330612885071278419625064013905855328081999725035754566923546849984406921487036065788174302057669424710095618517961865481677310989375792072499135258183092783585420691279619806658023149117013181691806426169409667882797983491867074889945760878415257439279169221493677339822410436169240703400699003055221397009033512279910452638826088309496480447987854477681796130395021538022501596956696868587449763182501085074653031015056132398975052951538549460618442787843840510413146456201273154183401400578334142960107017606376894834613594852704048768644377859213044857419349188681346780505765907520526498845335346096390451312671404403777036418898931451735699715854209970575792349757390578225470375520477309207193553319685137035333903697618903444380777214910385338512106572406496978523111902980127468289730734871382174521003420396022683405406521543501833996850355344777115107284557597096237611715360972297052605586950917331020150740913420396437922280558500062803901552244320414583647884839031674863303207637001633615647257377966625046720951658054168114184724418922853708326461747039881481216220864471797466515706119574374073222060181553268863821806120172453590567963239328722487110388910333587262158038036381051265751532483728701803151734859095557425772479829107713419739865974339750866414203288202878812960335969795250345888935075447396508375504752224086984243971035404001682339438536700244315280802952729847468750994557026261776629186793566067677620129809557365802637946040506831766699333555035572144401729526550459582117516952594296691936510163643126304222544649840990422317011952179150797976499787374418180392124111122124683669746803154083182244122124022920370099299557367471452564002658632893804966878220382879601410235229413928392288241277934843348851229430716998445290363543957159208845323762389467406409661285972835947528673775806478585040530708940209403834805530899437693169906151330637143351268550200818278801250925432237660380380472693756320845267337751521813924042241566193467708340890284253729947540655570282312198646208378954945671621096878592258193139880343592701886743334658866810975956066124382022848823827535991890382388832802651054224143278421360950466982040117819177733425696241714118103980347496092738066626739458700460041836197232194148251515966828114930099292226096901454187918910023149462839449660637538730605657234493469141060549468609758482963330958604553415692573333614549640566473560904987025464918001511757135742533665403586012409514117046751561900260547193140275847662464547995330684813914630080778765281654095588589810056137267293169401527311885996691013606160786529856335343711320120344200148947577549854429639891490753562123945483351180215634687061949113382835661776583960239498088209186563525785881921282739905678429479901381485668210938688719380066240968675243474727102291789659281909785818769565837692970116390292053417848003653906062321660547199784285393000529425950374982706387688164801397694722068136839529316579618298808196176812078857324923005063002093844160298015081384517679358960326232282332172700051851932793750789530866731548810460435125749894409171557590318964886797928759393414451683164662979567776747339186203581516089121277128772489291891981802476271659579343713523207646137250718168111293098632053987332857184146755580401784942815295584951556793955105996510288373289490964197507045467409961463517908035835535490751188803892035367930398860628811378715410185727394225338809366227648938945644746998010469297989418761312190019549599495758614846349189352201423173475324231772351574747158472075883114063718157442952539500822212569187362002710530369427092720741249206614868783783334458526096276333956926772206214007115349137150834100614577421583627683797748906022908782350985838046839280507051775522265908374659083502040769323631343460652487048853299867026877982840865227480046661204395807797742775442353393896895093504980826448228234017342780064752456653200973254164654148002717879528462221866883547285476891912693640538500558662937114192619720877799879796563888623097954627375641151671303323064982465662688052667467457284126268712503467123474451431861186422526297272842842867982681304876368451016627674760240235546677429776109034203288755195819981408546199370322329473267484187568690768771082910372576706153890932770090295799980437988550774098022030768905729472151852439972691941208164125988223782263436329315686120764892260902942999327908907170689678540880865941089858378504835458728731054107966530506472146403532749302389491085549315566994957731931209760977128555278169352963321339674149354971257246286285764494922845640751194738155911995927898972526025657723453076557830879136634971149749420088380020757629076289607613640576940749617628128066286055968154323753016417241085381672976069929922665031949179375056754041697315106728710672339246542183422353024591373990762230676748926662602828524019359270148094838433556645158701536249574764738320002310180734224427973919358382152986262452307532561788989353731808531598886820912599794459050156007808867565182146870498948496395497696634189936946392630252051597729016729970258669627398626300500663198503751939327062310565283579764376819773157621837351150653428121343635555767515523837167411494851004665292250976043057338334941076296765440004157103718817346601607534468150099315651059547999096182979893248947624958008196291842700098244237941049069987527396311769064393902894441065712732478810558128527616266980383299515042818212329097777316519027735041474240768215825332750168088879417767057663674156526580946588919553103753615129157525040116685051689444643649900254156814174648481441713976118488676061512025543729375664646182677282673059954722043312539089511064332087439525831261643928840166398726089355700636973651837381658405825565316585247373046830892678737221828767820713543979046293132978615086173174960471036501209272454915231920441945611469981108991087550557449146960370252245558735417473093403637011183756234117340950587091329834980819077530025598284852549459401136154277999252949411343424241289898373620424723436190332655994287753066936880463446216608720283253888327968550046472998863603870325678780340215798964499781325068662133068040146526729296841220084804834195248229116742715401215902606524918793183299617692254065459583454409624755216143598422914108360150783706958293955718335009743986873610943399281512909155715600210814450486521622580031796358961892793722511674786292519273392420908535911343636382148952845090299248590515388866482733795888776682709099914286545418050670133501457932823912393337812121148532248676669181969969800758241765009222788991587599955750441168280059831495839623126828055344333919704374026874432229178148127606821461180370463223067173009213890107870194418766544211709081425736072346729069653700503777778275509648000418771093927550925646430814866932268001408926091755174978671089697032611436326440982992769751182217923794547666338095449946709693374490120407885531703326009246611893044733755236718624948326500733156001029310015532688566960412715674312430630339183518834274376268027126266675277384614807500567019967192287623936103122620391236529466809702020734151265767998573022035744948792905822207955929392049315340995600560329251517979390738493351190665201192220052326727476948881954868761895435217055384541925226434333544318123695092674733113494091859131110770672220927106128876944184604517205905238669478404992500688627899778881221155879253644541120767558691804587542377372860192508585198711891563460915280122054665781912575188104641507689639198169642909062840373288507033587675550415572179433397817775947207529082547042794434565018108605752661891576411674836224125694890197952206953243501966133941841659956981452545228676962073759929627525915285357663133905098624588735714518670144292712136932473465073293774233899584066146454614287672095014372190122459022101787027356136275255960981344924940522591338175390029285518809933780652059209301420369126146703178962502820990348323160902577943883953532445088253437524320359769837387821468717814224312218831599094809833091692822681771908950514372700234113343315804803038555257156961448423964788333036291097361807065622696603130847249690315400702441826956213658822332625815567182035422957906624014283241526638447021425097620072142988512961165011226546980998421376457772198595240929832185300030243108509033888114226338936203770859035115320736101280104947214466546188299449763937220978876479449114626527312464050852976198103348594556373921817104586429330092186752079197435736252051401240010646804204923817497930576106167161196796673449924925110918623415735089439710885782545416556314395036968671726391776524433735119620169897629955811531978854212510594718119791547665706090577286130666175421330047320790773777412914513488464341832689843515548526918100543611092921825651274924170240645423131538093522397747570222999375061014363955843870119721589165049513608447030582524991067563383550732554295958893442980135152371130084773717393148808058230194813923898421334217609159854389655302153576972666675136879307413974085022720512797384058304818319954273513333487637638110527315830130643702872404328099494700031603985501107203569437542125396056269816894482135811265856030384933750686601620292795654373526823579005566986544062425774319062535248357760036192967308921658472966283393724183447826351015750519254846358394688995184533680777905342733098032750073051446505907343273482657560705337449866683106057308795294718612787815186706025926825052185598982243450692957048614626301773082636852367787374319449999754518553151292671125741346010248511905014959004271567330735858057232648735926445003259204159478289321248435766101806906832645086753800948816387826596811966256867663799755864456980390338809884008802664555138872458575177910649197187395409252488212527974582041433745087082347938142407822489376994115880743163464866702509760633580853899509235409825873978040951208480399907187094177617132321966384098100162437001665225764929972152842032303342959739515155475008663795575507716373703692417774842278798158547544978316323416666325807360349966706605465990664643837226337628004984487489964911860508132974779131342747742898597777388089091521513869104230512899958561201658856641476754650083208127138258182028982399249025802108959369306558564779760889063919837669231265970079334862659428811017105849257254256679436414413968749455770915295668449116656444319249809531187233949041383580833459996611120879153151847455598989382112239099494469047584422585499930810451010334617430453011033606335237096721278743896179479896045756131359863620969609349019802875883899203435916281659644755029822616985237163986294290513428911446132209103490523320872013074264586388564174900185303088677753309615859620611388862948701621840902398421932031886239818924296115222418964895025215630381853853348764920386275959187169024407037850738792502208556204944727549673005574112390496414816973768026197285082161022792947241522324589228421235275963506108364826717741096147696157749377835063046123962105832729413604095807756708669527520667802953586980160058625439584626143946797260641180201765218020803247967581560349959702599747571809205375081187654888019765673114319542028482149259798190136262989224410074372241596946100937489874353250765458556451649007162567105969499035843836106257708260650083147514345485975768365373400601759200976160273383273846358205232392939203510044704751755815232481694651463151885351018424030217978187479426503681695115620691204963744669425709071405851235676198537841480495780875879776376451948578010408394038438660930554711604982435676242980510373394437847430948904118846825485190911714733578441771494166577662987757712088316925265751623466433418202735293385235942557258855885601813272602177777313423533735751033039754926444802420693543933226885974644934319080197678746987406684116567347575087080661016995010396943724681751547141565393793629774650802442058480555259143587323829819436465597645931036631412082678685180659801177255866615571225991602669738784833278902297167197011472881360926418335666611930749697238457031658801052300418914895503986193357141121697122835807888807171433115240336713246132818854261667375464836840060613299180829272629051308399467304572019280675712951888035201288447555544208065316140571118209770602400180039565608428915507311911408353403376392944467292441918218478497122285197597002194398878949206555581401487061146921705686900418465858539266266383459862920796256842546085253333799399114758925213825062483298449817646823101423137146220686338978385506331207763819657839119842940149119784902785772140878509114340306923951923805938666871012904253823387028674504263578726971071317018803270893301941802875066459478612396985063054869383198812072701181181644653208210625124948409104822695799899240182841829808917224160306677290198753215915027818576328251526171954188037963598258091237380317816032526582369650451579557698448357639093772257560163095171127757128665495695129874033576059557514500329639507052913264695369484417342014430239733716359574159949674794809794347995527022059017817192577347220288718532617858729565351382998294660915837838540056229939003475930790141528171011128802003327588847320272114110686273599234611302476670716683788532716052973204313373014795909305491914625900127869132081387003787355137867039258977815379954833128969752041689012886577731719326265696874228644811938803836855456138011112946124528605529909837030866289626136505795915883373057472756584710727950351212540390233002272487048731361840726561484267883461783994976522643083381517170926495625370589247992691608365538246539715570503434597733774694253223768542696547067732933443192419290171774067681050611908884633874410065541301208881524376878931897066458693251928237887950061295581566083388634024822372199343111745706432369742231854471640174556353515078004258902155256037229173925742950257056166975739103172280201220296404828433471243167186158948704884738890072281620099979247027217489155717579962985205843241077749174897845699282956049524989999392781905328151008019871311316033827592748934567114748224941891451188254596210118737578560625386314104257254583851579445857606582786548005131043857978963662719918359683020717708601641809229373748001038980202930947446353406797780377168926711315381873207301401840836294674119750863527731133724200360079401669765494710370487850096954182840391740802766640103967841253625492371260148017846698502105820413754188515102731787548434866724258724543318590636066574942727709393297242733580888713099168254698117616888289900777478266078531702716383417819036100215363646598660770713766150046257950525791492681414311589927004281006774003939119868686741892589925513827380270884806593986862045005390955996361008805365916619162449927217009128029287931695502403773212039448748557030838029649648409702496662191598629561643850911049279182235758298271906760686579227134560241466327069039839017339284055629565623373009346115192527337782283385622013739146787749401743105087379546505245280832938205523002132223247788766728569040942373111028423820506300849401142918363171962541987934838358531194559264795151193923442227673639443882385855941851406745357046981713138667516906951204706517769426606807034799543812833100166180045604181759464559496032978763093423432722365293236880961648198296413788228303958900165422105426224091422352446074016985534291987266402148066058808018490467671390319189424219373567408968130645224081900683148226289820323310548968232138234683726804786480822031357544558247285796555106051374739710803679071506224595683554230928510169638383652200761163775234822023676471554888906687946734537123698759774172528277851511603471333512293149671556099963382029025022548372945889473738428064978400079560095914425780978887926251258151444815706925250325443300067769558499074427272606122492006050330426952882175448990889694455135938305416910286341796869202020367411378993960488512838202071221693026095948426007629855525837438648137292553265473152877332253746034438677775039274658501751899207924294747771390216480238235196294763065192975909257660642327794442761899445649974408238672579607505481208192149626330795567864720399635870077568771256914050786877014623614161627116217348425204122699876122124425011151889079080922965642046314978849184549550200639696829068321115924332903057462933445806058104784951217809013372833948591115319600512037314313782844964984505686704726100441289370764217547684804917704914243660832234021045799884331782038632925262222559536756898712176380990236555992817683293906612291146021682739743415006319310370836317792088491339360847336305271373302182434930359029472061343536669857708347520097073797906209046244911456716128626320500134003900460595447603018049429655761079410271483044693757096203941554969922647775014093013367233460088167233186393711384358153399940167442550492534332704499439227295118951681235989138407280455665851521920416228026253420109537500433737329519817722024748263403813870931826851317567906548484261922291891745175127356723737583933117268690384029327273769074081276523243163546883091804253003839040733230980844516963873225881421267915936170650019141168905867298718947473504604945799750844064908592619899776697020382301740865387234095135522421842467272701072230746824502899507606188953968395667275539708486179310742502246806151503656739509663038948402385338874517377059124034078422246102016629790928669660213573213320954128526663581379631291659586067473897719132532203819952239242089284284373356050395493409678079886338707938116785747048395683547711455561953329756665135481322506071316287018364089876909520778906017660778682562095694593230899204987432022370420064576456559520134505596970582207211495181478773088759195337206330773153585721486813221192651805166793529612689877498119873946424656183310304545416378545388875943303125984803615396599550647865536602083706469485146940542086856526647624447353344641438300213473614177214581482294732920875597479144200782430667889430801075087682366190445978541004120385836141163031998721501626633325358231173995794253572315743930168941449683632079144935767619494097725375354986943450991207984224588856041043838663334157162169510812963253504794234165939048721398396769745224849732684775316671672677507834948184352642263067552589503985371883438876947796810607098586962413304739763261030495172198980895178244959275612805652942742593112531748974746408758799900883109449612027967014786114906314423808650120242058100539919009233894431977249535282205626640334132411429053974003557281939036971143019363702391889712872972072195928568745268774036549243153252200158812502534931080013191453875265022497763539210534713634228262284703747264210719238083880134443498427795167304658785023561726806234432975085091257707415794539215458723097724573030672810652143628677839975283733025176448220158195333805612396962457503305282150387084800820989298605906881872626641808966551845719691523454101057293998977381287294457877617958342278527059942671580804758317134642994127878988678816090665444383233083268446700373997404757799171050496072023391726357341574262691283028614069449639392075758923372330612275324571048846231507323612790566970516977820770479935366558926942817608077619857086329744601582441744119721279813930702639708411843575128377077653974786198350097116043227842728177683894648720099390221834151681619105864548605257553524982236035255648725148453436634339564345888470176870995276189232586620269408312973464078066796858045395896914200371861598336533136160170004935079830176883539866454466019236663756348156380376795817855775659336274690023280029885140255432769139292224934051905912573870531613352954169678493875696123298278282457203925071039162252156782722328449198571757538022335552528196462710718059777149078403963746759310556359951739786524782147233782085681352641315106264045448766744660404467014052644887334196125518082806836431518437426526301099380253289153263929741547149651066975658067038366369872202659824504472569179035016563971717783182522430245224531849829338223339782512514455846343776725489411497823074746652215165073831841239188516376617662169774063816728568093899411306708590583960628718764894821622581302779226817632715893968213934420120857816383759113438783408753594590069190767693627935409742009130510792132198408386704423307240758692302669331394394591487120252551491063115325027326611448830285952157843605668385638354443853609100291498184083780959459950521741557327961384809882490518326733017992208993115934317143636411396644437531333202724741565229507529317387151240063852523039902955262586085949956665718426299035971449328667382482712378081165472420052404723207063906820620303391288543128714150558021410760412752871858418201682181734805887174461445123155173667458393323384828465709245717567737096622451769812173863852608319386010483739200336097249324224173296813006361038418668136218887038449395256234370506067923906897147622233862192227407174155213694181388153892592741857424135689812591357510197091079623615008272234315333666840214908963694472743153911832692901579451057455936270974029213522548164892893005007078051399551078742000616533254749078071451137526236717912201595797444972057625558684278671617162999198492165254565924443140751811267680363169332587981873166944856759594427407648111682255306503982476060669907673998622957109459834237452328218338411092841795240792551005543630329401357825992472277687327316665700390354187681945140746234858629448369841658334868714343493448267837322427126672577038490984562215136929557448792360532683746826035745989388281800988307870017888037187580269297650300024212945397678151938235829394736507759829067187696455494069954221718582011130956299766825843971492052762191766254153967929660982866668393714721170991393314586263440893699238308263595302242311205456443534593527179251940455297963478693376266818597203558839651048344782757565945884993992097385324965751274462349265616535763075121022211436747191533698645681143696425561425940465968529089821419787891398486121289571298636716878993169435913127225003247951255350239801107165297694537889006020052616182994267486422275701000374660615351775667056957435543160868567541098827037094496987053114621188494953110732573218710016773433456427439482670020211254822123558138082957210849575653711604748805095750269266442274691184794147167764637134616695779488515244783916362282742954534608129617960671347301793061795529872947698016607729714877984351157896928613959607547948943303114715741141908861930599112295576534106937215882018225458350902665053988806172240846016066030117829930278036743611661016172264349013984691446801149050032743461355791708537133308649182715831742628479977966873912417319929330563652362219412268632668060733735304709654641384206684724792245965112602894769055497425105604646141429693720260864023585034016473907253207348568631475724806377573584160509992057153513742887670936328287229929698795749858771302117393647868603319945958604311952444694475188025859851622183297847324374608906573546005650729400430728892274215050083672867281113045935091113195483069324895754405502084777169958671298178785597679036445440454574050261557222515580642340247008333331254714785841339277447854444199561677151976182196554715529557223697030650803673607602906983782670053715273535322955906264171754694905897172862724375854528381429411504308762586506998904785075921051072146110189582368628162423278896323426728758506774549525646174794662961996939240719540201165527506453857433721474811967748256361480881237802962756778108839269737347162313908106168124493989198009424048258092806171182391074839511801886595198532722167084369909822905558693387125786276590355021948883598481181807029228646581084253137325566308714778349850074242221927801630082818137283855360415095615461319806007911419309695278383083459622892845025343576353113038654190114923456569414972517330221648526643879228649784510707533949499802045908890548823583277374171566813043638075412462632480431176399035431445488663304186524190472458143138313365265715445706451837088561853247980677798924730279761693709183813911429863040784080454279195884613942678142969180815015184141907445156235852068251622721132634291998088308939137060596378542609155274404278259387370881194698621997145839358259285243077524964348137116082606730755859146452214247046152682782333286905103749738670781273191253354426485384245559448343340726521151904192253692221041522942331383876471126847682478196770555708632932969559613570064104068172157436438108285315315654403957763899768492930008023601826962966585203411486904461690527046552682953035480359120630214462776982073650051115591017351201937325253119858440933079815958930764008201176767455296862575029378355754074187459771714005727178120307878599879733446602472468416077180584317905985763173055628778047399781762228988447681920923018453868906642369536836358905310783650946303007092510234012904740432550976262421770048763447585093374139212347182349700240400894802202210884129415335569965562892840003906301114910980313419082609605439034022552097851662006926998780262363094042351524968701047839910534077003320352574519895232814596476445070734562430269622711210814183769741163129022568486095086570439262984805336599284852436454002153479836541967214469060484702083200873906432341781757886788148983521139412467230756481681943601377053883174827570701474328499962971796797789302606454823114099569013878060839437129976618169179695105353991008843200750090160759186787993887305494249712084285513298496696668966541906700468553605975301177713497895574505787191157658332544754947212320593140903015811502798824549740313641184038946761795721399070152921827380409929681743002332663289110856667474442766491457375245013116504146218686933044435604794058351679898750798194724656638452641984852742393215974643552059659961904868914309626748059718115231557772904502167725347956272137545719548113598569697375587759939983306274309911317487155144938142167636545789546471978339743536591502182910012479316385787426289354464887517880799200967839712854319258910888958705294847894168741547921140712316466426767355183874090578681500502871503873724433832595655968680979824393437020651428483826291479755399907206485609918093016155518892681672596758280811225648691211151252272274147169760727989825573601254611587544307113368598689254606496255313639448196884510934424764088792615741341430525785666358524317288506765146238503008253831278964820856578619608271886319610048271886515152487209547303124729830126938769488852006598908518493240203250982493869941013687649347762100897390200014345905240819906415816580175631995236575045499357267944609926871036731797977365647705157696487742675887230116041177215508118912686761242133393391018551863323573678372135436626531104207064251201815688865892817693370739551741336935909489115376783377698040788820037849279160183624261940971914087880686810907059220701455614548971419264813930757622288105709779209925895273653003784799092246071187198109056692055628497737387901102725234432973330782810784208561013570160222465794462173123935245947885424617227610632055036857302147191342556595917462563407653948145797932257223846375202300604520840480126606238569123326430858689246465805644438399629816068058432676116545702354322973851697204257188261207992484440777993070155820851767182218518058906555062664811992050531588192974416228413710601685290050245187591674808130302321786086146550600868036824929132615578532636058996652079306753711184804792842422573540778987588879998218608588481530842700547392212498284930060352048574634282023579652447533810408825543012510362737299893715704956944832912378216875449810960302062478797888471347546290728377566182402485954820418175006266642867376222516463219545035325275250696316362116574647360866411023975251857572708042697173797571216260941096649836245568858645922938833929452027109704270439531304974631688859472602006479998213375539608841184025775493636534036597373794987934404975339332881451847441880169926380448132405087623662462996865412021719050599617411793440107522205536190753207598109430696265781201288084492212991493935387829780568114936068285161338759928673991461265885521430895019934950506543649687793573472221774794393246699722510916271039943349562906360103703499723244780200611288107579368899191914196789418823790619722515564466439003231743364441144107973763186098091189189277466512149200982450429758611275194914578022771738482029820609436204521157983596558151921262202964843750652421142471293031280132552886334085982952653459219919760726801416133339774111874895624453143119522308524859184556286406048882560871830481927751980329178935290541350847881503181821554911215995600441716343465236806865837056245813300477286648675938785199526520386096536843238311780689598626792154136300183255109419421121346530983062010239940134671266838204202341493754074575664125263204653588612806953122579454651285280735366395307511877124068341208098907454037077291125260755524548078818330724975079815383655810835993568246492132335887844247786978044198210844269438311789568248957070660145226724596883380176876159024198521987765866437504118826392183159533176943988763018257484519656545848747242969512503842147651523389425255724300108101822291493490955472954841151121874193809097234228084844620985077157773501024760612901621133006835017234549692045739849007835419254523512971243549508679926857908010410855766718881298978372869890475968787642283645493032038886754487288352655584596277323175062257231204841742844380304397381037689244998697581027435580569471350915381289674920341914109770460215119474003429708617324209989411663449570742358508363018617703663413242935061958994026390017479329657567265520954389931333772768839639465905700912936682600975883136602789550389043321549336175290982964330071744990307194357285880091680351175498971771837680178589311524226017864241653649205246626799512566238094229086114690492329924837881003417934635107764795554228580722544994457994917475965924685146138936393136234697553278120044652672710179801332144892540873204622547518819265910766585265646055533650486063185220205739001587398421596713699709871037402697637992775164723413344552753002432542567792552957256857853667167267975985951316847521460822355543615106418695846828409963446664756494693989087129498889546145573754877920461073358588872929827782195621933440730660264761636281073719048890243387878479855429986034224843420208424942558967619082550416204302486738844215112860559000987945505840578765518900902323848208331638399830789460428424948379218101317978248152980172428938986429003448381536211416649410152360476835054386400038086366919986745723446693184803955324541737013257464115281168727637909158546797907655797205330304013424660324163643340917270712081886553217158946776201974050792409262264317492783220317193705784709387426763779419013152645016213864733435110324075520275278435452603669848642592874238699024473266959551802477276436396635010881665117856893234246126976837770795561025580514385894554307629127549160998398535650965015657256357829515904585174588416958554793971662929432833850135488414423924110658567402630002917256503762546273641092324432958405946526374906675070800021338335028102011338465196161706220945852402896573137402291624927102029668507366238416063354051955797239724212947384864214311200621286335026321800861962289709748614188555560273328661608138805239719909576702496276709537601693750548041408617728275155315449441413739597177129111546097049345983522587624720568712461179724628899181777143488074191359273358154850759429884424314139769785810043825200344643266087587241525978362776267230135048131379039620810164580209616136953982044827936227307693234290658372714341911199566879612938782790801857212362110211057558540624007304097279878793899477174394162679769511497376293599599315020472007974778108562070488764444318173404481999507759833740482256881590252988933594705525991664870939935825674326879068287245358483575382316003959109728564833655572810637698584308078392463153982061942219546919446174665288949841220464049927984847989693648740893097372890051596532534668373878751123329679981645244417858227965584565888178549973769583475679883653455387946016175708687727579471006413882725479099601448796224954762442783014446074461392062255427423534795508777614363229325108768100355792730528998314454399509786785342048349622157790467111436830828833833927976294231309197542070846942576622326812477848179887900039117262682806227539577351779130814187719582436721828872524538619726789446463390676708321453415296392881174063676732179139315039781043161258458582636039702033325295452046509095787202089611325693575833164044573518153065950331204863658529330802549401309689620311512769474530749346031614660258415648346920921414807433775201518848778118288033553616377131274673867655189008714073242591293365376455769571882180085564994784652345987912100990229894863767341847800671462949692801495482342065154864366024969261573959138136343396670349587405475744271393154151696763253107105649189502950483119230969055459455473819279967215236347505533840921197845894869718582218114957900513340403406476257346630525650203749783574788983367413392636523872549256230360947891926398105502979184048282826459545647927211235477066632847804307647117310916567402447045822498302524901275854742923742337338431814083478685048875367714507372813809562967772765876121100213251593343347309073386337946134485473411875494950761445551613853613395425387096568111410588268509126289505215298742812672162251811625714045245220369819675790961979258012899643783604568223866546969583007947877151948695133600285098180980320344948706846607703808164662679895744042316455357778374226028047102631692800195452374016254485811539073136032138112800788698227466733824191966719271270017176798013670985873834717278908132690235259672390551356930538186285664152577389889264758395247027144498899003983228430984159054736944656813821442280876270413660819430442391703259130335597303036193365136754986359448803680061161234189058594734808925838102991615804934013579525723376182204160763251600271831444575368918805982538104812705985634516148619361012760327550291962400915637020403297053535163495087100928336802280407105350460841027625445195925853816095182172658139163735833037219789224724970622779747207214397828548656649202446242828046947617036001520505578142585246608924705706850101659654743014482403219092508620229690891169393204783636393710937113024154448684125934287525217607537279662769065374827905863685142200743941771903379932001407895957311024048099332865363899214187126527940386164384525121214326766813164801895714009846352778512212254366177737467853756017945088728400426431338109508838754317588281126294274781495838596641593850720137457291306703928531436274360076723665734308875803423841699187088836266657802295249929252954772735398581056996528237030955141146729849479858914704829512618796307575849370080468884522118996602756407138516069603349104931949017624438256839915311522082462164525371323617971412048728904055718286989967228800639790698715188764124700239323932310691036295572563827016865185052281871479729221335381470051179484796436446367858868312927488405379600856287508280726376764422459375368295195641015700433226556210455803538196345665119099365673666722136972054674577466391974272287985741169555919743438007087222879719270375093080956175600003480095127362965626090987921441707455970811176070588231202049847396034149488370691796563152674069396558741226563063188308514404473602266256599382779614387382668016786469448681950465459404407969913239347392890654212737006900732383505983742978073607351947352247480581409343917439095202066310766601344775860670234241804289955692194914260484228364680607735976388659267589967931059597583067859430628143272847338463493711006846996755288770173906659660345346899222993718392989008640402784386834318969092159561055553614988873982344502726795302627448639496806419713562921205399304713349115266269924677505563894723846472790041762393994144429369200277833822289468707818227534663594971884066612830990672976101139454053622572624969461337887566972236022325236562802099789864805223382130774191794301542115776254967637430616189350889584164454697365460513179980105655958260456931896886819718029377866599008177682971988913963969408751366748297767463210215934250872842357910294174772180332239668771720855472522240806075485559453368409846162966996140039051133816889670454544263841924652885420774498555344337700839994601078892908141333621407252999002192158428812835551363636833564041539058963421610484844351158479198125153615026252214661547988253693307017255190528981925644867803823461302314278616507121610674025303231577214148572654074141582675566603208451380139078442631268464479310727750021966688605850620622589561099317975043696561629128708426068056741155160372437181500339879203939067726232819710055697937859714865904576551314292694492669715753284745174737920912305979745023239555259375730157697779316591128899245833474208505794362516121512806182386552298954299823253469274071128609073032827546470121787074402485774462971002234681510783705142554988039726845183370879080307445814577158371445914101015641294042996754504172594038817592492759229034045994811583372064743767470868445543913783943091598119327461685137113250905308288497436794533257295967934597344003337536416906470635180260164541182086607563082305247184571485098409953233933287785251885775380634216461254155261773446165567359203653735920280327485931254699419308976315551822967332341252124528899309360281725502152457970028498774805134212707177906443188615263157425253009357435791899769079087799470393062039997274019793143276814678039209446460709394707030736208219905451159453422635932783268560859621099984331431691946865995575039934960095578326210345854743573743406324885723146035945139084084058275925201897820302031899128897654030869526402857037145620453459143755892349446838473873170551533599459677601648860158197585138048240331798002423270899643618053096286514115117920731272056682296549487439213652694924589901624552884250422901989340711514917258221851553444930507633075352985949578408067762532391775493446277682891140559361057472434890872587045078587393764396742238797513760402254455303692599200320562671793407962748806420814036080278611466110637066829441955231982150165373687319878402067192646530399487894640835276261269895875084749209271441445506011525486565954494651229511676156497444254084752434196431699450117800610578989784942363315787995010764605052699126712783160666748957160143709779310707349383572601078270484811125646613807490667507449248766151316978410034178755541122920819673428064960486182931893921105313536045543639652236114749678643380891743820466263566045874825518984299571903510570882783971218165989402221540011206004819079403878387508454316753068348152059520821740537571560410154039139416298343452221302808200569484740749194543276685416919466936654576858341679139761761040568786676912612475295740513544611782666674028248061544521727990598700165131156446476786177633850075062304590022223271629750025399191247656059284207645194190535004826490701121769589357970885599428866990938011378399969748171060972439409965993882389735757426678059652096339839463250717540175913415119117509442096502652439027891198803351166244913671419586689936599692029921973369880083650485334347560712887211334528151716804745168147290194134479038086979425160329984336799762308139855785038406409905273480979524732275324144494188851956375382751250066916496542926292554750214794103972557131130019966177030887532393208949836010427345699498163438924496544875745989942453097908077082391724256199280460667497041769801041009415245879761680273161866791638589414441979567937067627056839106114073586813436455923862980883425627958344013107367734498804502698359128923368185581291733602442960683462180561346485555084320151362350914287431256154356196040102243027860266775683877296479845138597452933099761104108424929454731894389880013623782650337170381640601381530246466568297087805828441393825789232422768583373329323038629435717273419537571866861988088557715852160192455704531839831763747449788883366879710841902335256030113816777849512189997929420575507297322844403532530099102384614825345894875394987313346461522726617735965502717601153902479697799473342486424230557014254617471024752871745722374599971701985070927369213122435250463710733143825055214170313595612547634023345751755698806845538756232909606128275371126543317725333069388676969530696016549950200961978412360809004017404340019631768755420259793783714113517761793914063029187111324448265442732058538393437941478772066125299260574316325140705730505281013773168538115298498398741530848981675936529998820241413983966314970470733641472132341069848627173012065375192341950515607203471318176217808323101713337013825332743211702669994405401957445428383640904629658946411165687318944399717691379810649358684949883950386650573031373601387488124897507078664177208996384346880047519902992728221218890652798945273222946883062731389357398606815059020060372566311210374011280405466804409330832876793024194637657523963815993056315650823444551865281768808865384047647106155190273325279957172904807681691210584301240780908766944510899123496563701805717103897083227776297511960014051743176255036691735500450670730502875697483368244363067797501635840410536901442874863778175320907380656356450776663221926985318650129217745831086049226815798692793743576303424435152054844137594577600982537368349915634032096160655794550936400075682120912022698174664588556253035222299441413643041520815350015648791203340761271128701903699252428511797425752032728662564280361924299363643990469248887552182702071472860693268479791883520074232955748680185040279316285596329453788024891804821225639756279979904030366724529944383757751375247510347176920346970602514515572385657265460684050191921321923437573577322426608426652111428981880698392988246943460794266943211796916331983680249432855743313767401554997975042245472062026976884495030146258296853486964645739439652111776039600527030358593415392989874874420863568272566490615039033795450273160579457633137041446171732629160981329585572190014448462723144348210406176808220117765008170147903015652689586885041494473099452784903916181692581754340962608701646529089660134187441034628297346639556479968263539026686473866560330801264574365154871434336611262908573416381607666253709425021104660804879860375706732544760028171893430090452035404730906648693347612107025515432653746930292492957557732072711612558354119108991456621181850135831855609936774123169964948387399974170609497196265660711615622047026872893378223478925786674717530882722084034682696986430928732356842245436475140064661042699055170479026637204012895465723450534757384932393059720105027139189815030223967178043284352053416943434000354101286725291742712835836046575473365262140830271853383190850921137573748254880917065683479096100184168031026639042359702941535576355811000413021184644291208645110454748682320273254025013404897263907978793506894166077721736214908226692414566476152952632468783603678347714586990645254740590672169795999393825147882997456194870882210337480931403471512977339107252227344715741943593186901048523773270491582616866621584615090738841686398435367903167591793391138761373802103518422810481478727325245494992928070583337087970140663913284356515615344961107622628768634041010916444105117347672938153142431117442480961377725925503672370463980595124949916110273966517440575373191908237287630281689311157154159010940321547773685156683721792589180654099392566614510107780829677295955463863185430571209962020041523139466654019244181131409018855539849656327510176388963946005543854194562289111573175143350362561260139823965790544932625275486363922574753404094572520108393181751293980086085611212956987418768887223640883663266454631215904236738924337711272335883147017559482741358003362867223815169874427325636383934273279165916228589929868290855795167699239657169581375079147566438714835635262932478728246635469356508005473381106584243224469987061435297346478138423586737702740214226976470325666775243291012641488887355143600409468857653007707798745630978859170462994965873523944837188367525613756357782327148565512623781311162802540133373483394756790283623973348947050022807931197334283234987268728649255782779473387578270899900903710251822026447315809575606004033315320690372337409428695547248800200687344722908700109045372690831950375054077998048486735657417861135350894230076483719150739859168039666948307025562939959518125750111819963347682105934914777710045044857119548255523406430052364279172254885371723631429101537744142485698278514839875722338642706824308016998521697086200753413518776384698005289956347936284109782355176472319560070962021357537699985396773134961329943666158348991255908763131166533883027189341354305379533750235514140163797359207223527724500110465310212323939205087148207306069023030933851554733073762825423235873369025230162302052285298660934233353804356870737787340825055618773080898912234420754987258797372228519984911737917651475927715675471779095798058137715780038830172465114580140560895223192912985307010684972577292923134645448211249321490708890494706725225564585949838469566330659582721947096259284501791696910354507446542885977450779811001634262872137743919137510838286623487309669384319101682013906861241664116662076747801931976063816898777947644030708823994316103052718511446532004939920885707055484223377119126620885102823819342535172969896683946465765573528133939528445035308180887895881982363277514687955463432920731061576818038613634462857703678691882291278149736206874691881615148572284056444065614339132760009081846880717109148751895290463885854381348056245520657171061779127073797635599693881006320054943816068009284499436568320592033130379709249154254387796736875065383680083184049009232221641396143272423751779769220890139505291603156812701530028473810878382455714031983834565848772466630325037970375975092586713455861113543300228633835877450105747183548774880357212267231634434645723028290631332342897447758446840209386139397108086494626059521446391451690530744561873514424931987606775573118796976919551671142859044891764908510901021134903007725762292251017602817889200200417111545602720686855461943860673983729081207831324376753211700555780848113682392767327838947239945435886335035443725539181157005764552903797478352963329965867827738610185115578600986279673930220265137144787077909023419520400708873482638417490049923913347762857538928676061855264444670677250334844843060690101858125382302913979323802381785319624022772842123800409939723143613148824039666181997380234886156480192256931768055756776383397549436520885783800666598346186486157252227072912722702567137400358531071559298887379667279713588454616272906312106796347902021680240282721585685207646262974792689461991888432496025873245984652197502496675167748550416005786754578992892219873706601159469513948580681199147066067322576240594270401623190798463936053511977748439197879552887234610397821254699820986620206122739725119671033194028734066388240852797338623932196106924769781467099303793140293409585907818947336253409384006048161998684518538025429532986876619037502083427793609395544379270740714402116067027632483633952549524859890340770362176636023516506128198552534057089118049634251128387570078742989034062501060189675413121772025374592114875271924244608849427142431661459418691653288321704942848314675652965535242711791138674491438726782431571556310590150801696777785062340138875049314474099368994775200863547188422803079289761302008979626054822928123236118472875049234212301175214366604773319651161356895370953074939725517423694946940591283425593979762253600563673912376100044664201306968900056546850298933324131810421312044522103835401063182543073531018054027895363178779418078177773341160045833873411093786501037948719792564991450929549247153982916714786895321674141348228146805990134209606691958706979533857265900274589762447150239269448010795266740090636211886386729772629180330502977936056794084187294886218378874818952333060382540576236815583086712888923288194773036566520119265289819208375998064076345835736110476472551190622754129340468008816649515020109370446724698579270882628081531373227774134388418141154397446525614620187345676770691063494763423108432493049449092658218401065780312280704433573661522167075308182490421246377165445978023008719427905765396929106971421768022001340204406352462105610153548470274985504954187106685480911046732020392652036840767145371112979887538040982759132654411883281016594601981243684503427909295547728779286843747309238187311462134092598777189233259773352249385802355513869414838044863775847482581053098702121308675896632477847694295195734262652407735701380842078202019173308352217601453692239868079937354178225118135286072128899169193093801598019164385714053475851647327650334816055235550864168727137338127876128448734186062212275194350624287340237817889302018588778451887944761295950032354226869944314359830707788750813502125541535162385290014786898585791914890124015220916104904948024919455702592741774505779129099537284382909042210573022021952682052318039998318237245566654553784505139186533342145425683967782979765529399626652189805063758798245909713908186586924522976627667371980044720323830221088176036896738451189338979050995070053151068230800351602188500811280693170720424506763298925921589821027610889225459191094394493412421916883004324108530558905468589002379743047306952053554513821931679542466204623076665893984328914182382371658316207962440196809619626191465783595456341942066971409611352095143717181040018762681137487113564750399392805176616551541185806066449117091800372109600165245329378297604091746699681511164930270205073953123797423824203365221233652665164184844158584671371119135004726332950949230587100303139953082798204176766104672012704403989423011709236816510364783457094807165213883373036293642759103051379398627421221063154409468284190511599400081438406146093371262926425051909420178986844740050371089514794210765402352177024194532733285302992050432496642744600283742197092267268149401077167796129865744280139032162465942838717641553278280600382823482184668597546222611876838402229350949637969522947176631454413048357155394292087381871843589558319698910021181521402181720084437425944059029453215821667173865110498240032392372869954640506396859993512195478361520205516114482337689407852478361625850354240087958071485867773124854083258484615605401764129592284773293077925922744325540274106489354674739462948470030410106866437772579726220884707608814964438586298091432690291395428071573322791100464092544546647769275022402060066196371811896948457071716709852074548869393939849154774061318616943061046495202356686234814239924472879321135396708596400433880544963359955424275776041050394888959411543390917700188797842518276288081595479199286012948304843644062683449474538395528808857942154357379762579942662818340275835438947275227941266254887650249636330806223189922511528251205188648163570536627341169483316346578239075695457372563313814822123741928675979417902077298597902667676488863628220044031790709608727334182498689678835136788846725592091313698388569545316231552767830540753883569015222706185914509752757693665209907427529362893959376896270805817898615779067412606116782607550156101695539900277693717765326316054394262491081505413199210345908729038949400541075502125648015829070841822010727041950595304565193872498318685691133916207828349266720018278750447177970232049646766509457045922244504965811837282487352711084761682405103503293001699865672218686593422135604312401383267822587968895227741937920306855921644403703891431228841937863385061114281305604910924909931869794547590536560119045857325069457860754346406906424382515134357965173912971392113833484795204192176200074464058307151433920455379779362196761637872790899252659487384508276103929028668512097516518197771770307309972773895384214198619328392930642012079849919054962250937070264810542658988487256895518340478450953996547865813675843057632841720923499980731544124070512640547204370471363701001244726979683126954860026289583100847656946989460535707515983543653188102566154366748423269127014046246873768184748032466344721888654567113447149181324058179850416153899241435065310853001605047028049709519456399894973799630862299982987099724811647157420547120186805314604211047391481585924801611960385223748005557931059114507923274827787658309097995029187633431796016288207622343742174270359904313316261486555244205984986193338481478182236562769709845044278907843399184734210107510981479301170282468170346532531232398365562614271846865070572555472278606180613413569230927252237865830408036459820354392600720324734038663899169568173711770231700829703533287744662910727490346009171637792418413665404685812758853867958112671597564370226095984602494409626195294669642324357438330992352919075506475532472378032667792763317915533004014532211872145691074079446793181623009696870437059035057277417556889342482996684009276904618456297864030809405375060493549269269482412638002167075742846818120149171565742172266897108375400881357136185657401051857413969921178388170697779697221596803134541948638364667759449427592252092280010601683114582534057297594579578284314743190053763441514373182366886672288454865204959113521668053815026713310265822737103962552198124488004331420535930806292310118550560717177134638763200439739111099632094148123848009871846756591393277059613460339073505011409695142581222757861644271365097266953807219251713040968587382318216261901369696889230224919857214459408560784012097738446993436840477410904527150865263821023512424375353934529267349602649616551854087012165812644339915134522142261160963940634872802393283338453015763261029017673041802670313165097464995929626108527359037913628505062207464776917642026821309844931894040958880825232380144488940306117116628514578101639387316945740452856120297149634017684502346620237513030598192045664860817683357452701031565165131771332829071762573100081774856879237566980229596095995921722181617388789193994108579675529920046298959510991920486175058413024162347546647449813690645755939219629804447613760177410319424542840889594398367843677727515772589003165095310086890155867118312194338559983339786916437972397525928789080150874900589830181324558259200860437453354585652277974234287485404273089919514221967390144018133076332014416665113789774795268393028284197764431359609738261537664696261710010067606750892410380925841322882123274724252321347466614162315806770124580922025638271932994908659872801983493260933889881538132534562736180120287202113972693886629967885862128641501212436795206210410791638378577445385000821551555077164653865048960838476298574435734752561666441282601198224808524978939233893180928536728438371154790695703987873898627471018305944923341107794122580050794515308634134228135836616632307269047504593661903042023958634839260700970489310358369537271122548457397154397393712476258388158183754616987802456980540631312666798420327511502552324684438850766481592719946007682161492101168982702386834110572203748742880688996053107911383884543897000154748951329178533338387912321472440744130476471174051050356348031802857777786765244214792810077486798392123011617904850295979728198590183425709829724377388075920215447454586364913395759236435078124994701353470033338047358123258466073308037396454146506985821700911888793514316949656341887108880160803703027616897275082999578400268215660054469985198535477418072346414090908554978510580943331484738612266404114454686753615233519798262291789859721644753054962118745457607284023027683180985793913363216479157333218701903085524098237884092869147549919662873356808344452393300351474927841078867918323389629763964798363408723660043639419368490509424817049294875170232914322492017154883288043482225604124944603160000571205151442934625697809452634035708645500196011464038665972218364519809809681556949011506691436653869270420989857514109053790423525319601208173607848961002708015542451249592815379458971848544229548939755679057449206345764413300108551347821186163743098018051277487156413430723795839146420584535421318613542472807704415354723381042692539578007674541666026649077054383664856292639514214124630468036120050154952511617010312133721739957584582386143780265556874632873454643462784377573422241061707677901729456883970451107254774081636896069086880834217454698423938945609762016405867336021482696020800601577434866989278874463690423299566441130609189127988884465562993113667045916117201262047307722227821600589613859822504661641253388686067119578940445120703381131079594945886357032874413633684457113016535484603376140993675859866072042923063796069946621513814120955966455534924925458715969108525518613182881751999374987817289373343730253866568907683243116546120557594515228884296468489634989591848939299089541291034669945160267979996112908215802239072657201142150013661026239369377813329789266962059402091093317033599740017649124391715972767527453636752508936165014337466185720386050367394688757868298928505764369922048943309134939220169120477768473322453424430302783692824420849889743835078122377218360728757611136249733125157018903675769340406685061732603725744888166828520444257792900836800929675671854773087939022824786074800759629645502849088125501467061403629164585486906313905138426459791328666906423783274758636223487945250133745047838216930018986009811211245361315823671687983794425878172535639325775040850369042887971027117202437926149665245400703379213416734418907718865958468298386770911027298934686133580097889397944098666136090089726816881851883691256770681781974129759397177344971676752966311046934481121435066296570314630690496250460858495855052269388089596905602262980764993118473458567452460466122852636794875879648389027358289689899398111470297335681225505554417204473067247171019195899860849460473240437586465837969785448302029797279975307874192082425373230293578121662230735074945038285064236717183292554748749187590909760531562789575596813952147966553701537781087057216602274327177338826666559081991486542154675310183934396487783962030066996699917929595545462866938681379647897922630254091765073210689290805076843042027108691198384330159047562761290734971584516788019988311170004283923410221751175756437384953121995489091132893732811788582360481155276495295391826261090678287285573289839809184373453178112417539006187251455988371887815723290890348704592369727509419952273554858372251029769263095851142117329320836039541164556693565823463002092701923189641659627175030683582911533973758118759027926463359251560950946657914433300553975767125016848039810080931392086233562192336043047156839389903657115537239038012562335903011086669824139334489439132838277827089515087349602612685140772391237466322746202615776882558825195745093467386156412349356786332169655593815016903384689756829620445089117444831380256573626691927956745885266297240266516884562493967291137172972534492635427326850581695645658574699381043492089283968594326302017824732259936372307161535191484896733702049055706038897941567944921263660601763309114598452787505398701889583355302174181933307062331532005029980042493847160473455369037564749825997945735273187479471036225457120938428225058697883145445723362825212131924948561066537676891394642359283581536886499831419855355725371232135551687253768444731983683969191331734786264979843696709225011641074781919763943710578773881990128864794114123396950488483244253608133667959726318176695029130827616367245598609080429616419719248681235745892567360055049999738308880662664089003635897435974132755269807139088384019262596268206534778318847913700449417399800680157988973750819967029162017333923883825038917525154645470186972681301943737361032664426296570851534430081147467628835762535701483753234823987513654928193158371211533648440154034007902623201138136914808876156000976606431393895984594859467719643780491888402993919233904148309786548030931747834560933761692932640236073324836020270142286312359655064767071788627788909803053998939341233637003790415498203227828779722288471799499495401443059014134197428522230525980409913904716628750988813139745819506313481174397580702376045493242722448522553792719399805015878486266403538144188530976997677951174614589847068906218511341021480985008913615066281361551538246563870692101394116267383669952424632687783078630935113470740543658255291662402159969113343316288757908400343691775811742806664629135012116639377954456792364542755210779877373910151220131384586313467427134862408323635584235682409698617389037011320243069292275004957788959600015372819115373301909843615073276241646039841571067228572941039691554437697670941805348438197475072375993562532275154095087264015756565466161457531363408397395787005552770694351222929410007935970621981235939223236417651760335548471080549942176918793353607710346766440233006514127437583390897435476991711915000851104779157277310545032967295839824519876780743675949626628694461338458740991629359937231646483048118082565367023091014242540135553340574014881325387565094784309145111659682744615016727983067271876887132413344455478990077631662196594578006818921942462452527283563937547486287125546901169481298020683187490270262549547715897573203770485294815374960301001367419646729368810817406166713744276147487523890750729150157690549373603670457428688713128431157068514670394344104824245823806621082529714731521120143032344807579000745929559451526014659258621537609284039974092813895798114903860985050004686446091493870593810200678762473837402037271208877999754060122447932451317292180405557300142965805032598216607479435411200655903138167669107390309390737776227743120124096552987561616614045321411589249204485891965655767066748794268907060621401709040882162417394677739566466356007935811341845945337090584413096732932339078169837319100257753452317229277477267136125689659866886383901957052790164286817308455442611030561281294309025879765855596539635314079533792736884109703092997283904762317801569234655972788278536553953978908749793280410561656514119933724374132798125053907661006956133377895509696507578898743111710603324064351160797661524915285672671346861948530792129277599413698341625430753445162658979656857193455229231923891627482006563518132378776057518636715520890341046125530253535402393589034116981297241348903297108326019926376875367458969794387197841371598114862459626143233361440585576035314446067722491975013175957967031921788802111261922514966912512430739227533540693298432269116065890120686862270518793062762720345918441811215235860650210766670646453319094854328114004905474284628469104183093783425896157638515767126074527685818612426450486914904245580333870210500700913448233459017096686983015014396290227042324782941307902977871034258614642531111354375154462341849957584647145499685604684971630946695033366661847243570235750357650358547935450717261468518367229230684148329632999073351050749980377151229685877974895387721043304540785393102677039962188106960631509564819274307305063862241560329583100863050330921017058057331940221122939789553111040434226072621727610918777567071443637061060011878964260040562833647828469266339132813828747638085894905508493485503656602108111084887463479475483562307380440030841566716214849389889790084085133322430718249330618775064228070418990256521784888580200588030521091972811963911132560874603192502358900900467998929039064401627305073370600889710612431383489950524548666782672361633745575075254716061550245158614984004856291369153092164111063283390073828715842505275215475355527360767255684399586593915927330983380457742323809382665869756801081256652689569169754442770672306241621136541539846598472854421527429267694201549997598083716772080006517540336725735867884745184703647160399018882344686867788120611078414604885951861709930020032800120849700371614628783309485586805211525918113822535725683291050952396966619846727333602166438661688823925028481439683113570346848640756163652809505606462043751883625943225536890838037771860719095528093182634633363145927246066705549655443412050285880848695116159789272743407848541027963688218228745853939083236187885257687657367509374277331191132856821139989204705907454659815253499041037560796161345480160448846953303387890995102235572692712287033805468708678726050990095155106696217046891767055521219350699172522828409805948243978842335847226822360241878186208202257357682161925978092795858191273572421373533335663934183612756932582892541756152763936929899917082909538655024752117435898465637539975026096451718963442891955694363043291289092361879281672036472477507886025329514615405978674411883753382752686858008775456899684448484069289584418112327683909183891811513828683697833066257277223847227318355364329038945583299296374928648817765424555999207339210063306064557660244858334107670652668601153403121729204564844275301185302090782755291671260575903495935370797797298476307390160545117662316673955674265012248506539453954957326872410783819415524649577631929325251613960171154258961887935150683551438996052698178890896012579919810423820098745653682830884805305283282740851804244644237296263235368584952477593685185432797226607053510924385456876432592180858144912664041450348351100824638767475622605143944700054335654261635245920651942305742526780300620486620919545856119767590096642613987247036063357809299460442385255244385682870451088759337678566660180292268129659553428549335750442420256405640072058225748015587227940370596109791340587269365571892468478418868671098620451946009127349650031079671955394502398662643282486082849925754341803058794982409956606969375718181305139876478846003414351505980501106033776908399255697819960026997252775137925723749275817173509137181692758097675472169294015722226249817865517632820567815138240613026325452564959086354455011344507841037907670387864412583094017332261944053516035885659088314689136742773980726504358269871230254589301981331716382471906065059644595041371335172905244273585031344361220931773998250713589571417051948486407060810468382305823572344703397289485874867398968338232840766564338143743632636318760665337381927962705098182870006157622719430422643262184451708547681110952644383647512876293064145543573995460955654695603880163722002793460519404863006143177736143491296024846226775317964666606631398584567436789115103505790393956142856881835077632812795403874735621670084945172942426676851567989635592381275500770458152407058139461448668446291291344357373832655868486871888526260577421095011840261002581694676086768618740127591392571126042634941284029483117745830011898304580504601386955048108861981189622744581056217298153944762803613510960701372029275054515686942394402770653727689641021499986987887030187415453514990424019243992569325680053668849286037354439745419002785741556456235357523003917432452228557609521624389345117516777301978567556035063778418197658829871316060805083884775116128586894097015716702506149615968077489784718964085940167438790126462021596526472938662738586886472414446075652141314451405860209488771021449232986938281598916194505425052040927227669913804286499705684951353344418860684574356852043255563982152335522169752211146042418946666099830390639430340442891549830263477105674456749609529753578444797812789257507746609656311620848643459997994056858408284683800090322600455895953763343618242756859449550327089451454398544687146254196344937937141491529558306312812579510020178092962662688262461593023856453494318903763871786898422895696130194993776548410532902253410068064817253262341122272978002458000147348725782048591108374699948802710406109608623059507380958466168938749799508264696710269938185320124781998134206572642444865771887904022494712024129456646686945258483433799191861382239999003672548638596045645568288550411239777155138774865162939200997573609277371649045954748199477020831316915988958614619115333578214346170224974837351898658172202144509871124799249704682535822733708956039675882775298886018956274398311607934687724133464347332549449158289297922693363220886974369420688636818050905998760352023134857886694987830444247718079278452820779419993736800962637068243538712964093379331159414695857324178194773175621009368353094819511540186027778622593494035015745759190782895162457716880503689611910654073585506913743589582660647554816303516741811307459103809907788367143814389767343996267481272083052196075226910097129864120103010319098812647414076789913369174248949235550954253903839891620404280730060066658763810666069874795335316789213862828545712116415696148738923912994291840708673737451907437425282098256705860476786567117364538960699237147338677705086587738470033612854266163937021374075951340647043900141710886500904901447200817929254939715048275720053031538542906504180179347537278309402501193850608643057188724085633972137973886185040817672148045650637059039387083395705198294562909960076992531651669863350412805028806020652418477800515572875454642139829879450418399603495860137715134658481466958369711235783075059214495191424359630236882683870941269162823062163682060741792846192843163664466632875916710589498155324761001231225429216713080457173010476899352671970728923684840651205528142535043250255042988537321533999278687615798450958242631798091943915642386740425835982221152954668860859219142735756210622666454553899302768735327806971331811349492868504085139558641217927801284315077829914380119833399203288981009076604159405165112866411544483203903983394199703399186763251938244102626477818163970423578759800403072417274853452763597368507421268537117793202497107967486466717891678462278233785188840743152679942759432928034909863512392220062454048105708650693707388152907328673765126576647737497035809969315287507782562668351277947198083212805196359825438837672783428760927154934117683973192474828356663640175082193391821904881083278325319036676658906429304177605947372244389281196415170180730356643227441967566001553339497121643696212610120382856603048565634947939655410893238136180808229906732103574325748614390555698512825081935061474008864650906458928021119300374837607537895362552963536167320058078625147848312636966240065603728642414612982097360796166665129378972100624319643518299022231431259251533911752383242206551036265871910752484591906451680820241483011381696956354393723217039293159130793961705594249881296003193773366883187680578466437479301210946430871681398246542928263955943359188993943224683172652007313167753680610173565905896293651367947641126583483388213767512797495983804901430857571836697404257778077168385943627970700751946331347833397275783450933265517352524952729381221576833592468647995226318244402702841831356842206395825290349369433837016271297123895161392857548314530067417051880524218242770199828424110995037202419540873762283965107167517046969618758187843664938451838699196707178372567804096825920743906682537062130061565955418136317704390934348261690399031605705143066325014978063903493994804687690725165850537827214128924773770737167266887351606134444687833933557382363236625382726811812405437872211142598862652409966445770790708791316536409064718412402380317445240227198550321210498293223599820373335578404121821949679427396016534946894479043905871807989487405562121081486692619439701306122804305613305315973908070040830436827625125246676052214957801171076982206082049225241088674826873385218757156778629652548481652370288056036821476982329431886736481690825715176217096439476156991216721479420273560192395522459248390415668189284625834405324902276066484360068378151599628488999686092010946618964983128392001706622592706488131858077994533510079528112586317663103749904461405019021540890293472784628792982837068457745194286408214604671846675928498358457412786891365352995579050641451307923032997084342800189261601279692129382110363752260372626178408148768628643226447867997566239128992922446090001123124206551677282979905935257805081135051634480275791205083981701387376554015263847148456625037296214787697046488062657922788799860492119779144157842686682471210645777633140925327456977472551489702377538025276653793434390721555917612583441772397441605943306150989024779947828184559129469572746729351544856079301146640138479464804833320204742688552220642078795552539144598675005992617636525473241941379250402623478987567052033302791636256050521487897773290772938980535789450393291656518425856237000059186113234684652800803889826758587037074067509707382553711637937871515091919013318156813877706638386765498569564527917314341605767711485781206162205265004791831746850552369949696530037284645344562541918747299847618905128048955854396920600662417353991207090282519515249676966946922652767525289638619406428635084185807138656310172999107247665397132014939165714874904615338309709503117510977390985789788849026845778167832935997843346005495914804965096383043599266278102134308386536217293186289038366873866587448466947882077708138933598635583720158406992978456620217193511455854915964106090634273538729435162162168869010970221808634287551871640901765531290027642807325706531096998695545262610356070850816121984621246907206065959839981178554682420018253825238418343148126134073286717949384006130306516772516647272722592064393427782722979342272563621925557416433755375501544979907758187839003777235329729955817785499100000761005663047464253764019885911203623783796943985437576415585269160791979812811666475589665664981894700393856527330191178212157311094344761929739190586954514902815694630206744902237051223825632844900478606350843169088893109173128200780062319160111742207180240806233843579355272784046930280192850392623059838669628032433394830035696453737163601904566776413259342778346230030224149950802000640022543906824171815974301280958619641895357065036940550403844384242201697240272728203265007515771205269899470205307671856546289773992839937620800564630794537508473998467624982858622722438128015308524264833725985840401604829671773607121177057672797917140338934051745959705490817590622102983869187826811232832375017632419928464272788833102141546879797592115996873702445980335521367800291681298273024649373898748563115846126972818422374454443990184538696392155775211768867209175860124979458893635360973140153108914833820981368757480012530463951019687928891885854832769857487335457727676663088629892768013358569473960558280417944963510806712905616731005979304314671397511914051858935162012758455784086942200266888802694669293066944875082075646354427547356986035991122933768264918912138905490335731211158924453160994726476461101313267968214371787446661141986439880685365041836923710876459271384504318055223268210597229974100625030666991113358872619996661911293660356199936333733787215332630725449489836745542833134761418714426646210135577043144923336328918572431324054941165187562176046828645993414216428876610912984904554389760347654412307013467899785422210624105558838629056329921728922179428401851742291111889833896730121277451082013330948046089573246425167222202453561919192712296781951894203832403727543024892939218899388958715043322696573696415536381228522631352801325315395098436076321498846965526615666024923326633210434006032690932870487904319918410856972742939006984394015654908025654567295547825372131358848956328918797552219635780567743313825089709572523636883728762281446941339630096967015545282898668697492755640707177219529345363069456946564046194677038347394720203584146085003090280254935599518001027579612238294724054658002225485015241171920056431381464380099798014267983647283059619003780991087272018064828667774112879025649084791071293823999783586077057125158545097278604202953875738006428775291481321403407806919062883945569255017913186778204543498968970546975175591867198607531246059937903481237247862007260219932139677904902019606739841977550559263362267344761499254217259703877631695192302397685630592775158420523472156193754325701085019764358319018223331426199627494906801556850850066515849710270373840950192550812360828854147871290192732016483675161014224469562574410239137470626184503478615033535794900430128688764543102935796649583992715743831282256550319538107091288383626992191243668950716749995287502185397609657208575672855716875986702051699464525148713103402074533496697353898980709542422617560861839369971661656967478202163734406705005156333589144894379701548509967779952764209742901411034189922704743778099731264695086147647576124000288672277652688159282191888197847675052588482795036978452882410384489608005876480102086215956715790924153230545574208504384766146166534544607343936613418746614858678995698039293180990084250756198307949639417809183477484453539200192919370106901922145036519574587849436451669213659029107453331720078342038676660680569813319023032987810428333594288347064133859460506899494434336236673698985373026888224883557704967951234223745299898005195752994358170211642443691726438672172606484373425287975461468696465085666236820936872165458806411814040995336896535387159657182894510206357227717741936804776787244955770686874672010321311375432261508848461723370716459499132840923311346539169223281133815570471792275268792271589036548770103602127711912758561110948927578673954478405218382426197698896304424423310467728391656500591991697100822573791799852664737656345892858684717122016843225117066676879976567145481700619258349670481384428493789573403386070527540133368600167309538004768032891320178927145356734528857411862161748847976457780929550984070922843134354233045679027782037270805447472086889787747727899346993932639137370074300169422738173669535696316235288639877587324096480052938580539350061640999070194945640597837810874652907520316728139922737771157533351804994361083019102249134512849115425765722510274842705195556855620245825168688320615059588219841790031636427891564923021087309029507025244471723327717879409588998791137858808457696689431321058085971356312240434364717773505206537605149307912622840033296923185841192408681728701066178629593212733622059056877815126032343068611684306746963332735114979416799334834323143880077888479868300645710255028192449324936646224941225306156573632749082185487328720146325578004447008754141424310061893733453294843544047866922653898940037033360126931491225053811631615415864286746437945271457770354761289061922215092942112730222660096461187623219219068990607734898278826345027089926803848824525278277628098777019587564402778514151564689075877616328281687966261112057138183722721037644959771078246527537519792376637047327177917683373592594025958089312742334401762959678892222860919147221039386682166825008742796957437024648124029984590279594955613566055605017563735396437895418605157950575904701522333504349185039071325602243564526262068100189175648638495632273706889078450614355428289362657311982008719499481180270237711991067621002336227768217817454188460996494327050440160514599062231342640282238149498177610034152772270425089972511294193078651265907396028650477135943211352147880174930658763310849530042878675587827109185995335896355376723714076601987446308466989106476798394984516834456606872379254793491307047071109494297132322651854333602352411414412518677341039439334002986163053713528809395362753829075718272794004047571703365816120103667421656432505522875560189021067559069146599315796577053330580292089975464916702996627306934679599381448055517674798741828347058077923646256731202091999071983868478714953058681923522023661408790860163301429031460353936137807977793752904307796772595219404019361442382509702500730113115318031797972965224900989142404103179514909394707863462639132639021545016026929404954329366434701786665813333000696541664059493069171344743184832875417014480274270908381844138051678113591662621941936469806540978954951464574676178288213213775638721325852261511198455235401052997204006786436971139522296491525118254995384864591607225727226175474976512732077956282180418729207868350991668825758541486087908038654035458947943736074064293820198043619169475185460486851343835648756452590303917533042554256053490994278598551133202475860608493015964323478355576359584181570997931509006611432234632400372688141094061041236428833767235510060320855706105649277093893513786412271940654053128023868694296664844029877976334198752912401373291206999151668252434976336731175465534683741054583638488928683982347325204059949319193203965541065809034129607990060677766675784587479070929845295052656112287452164498819460573003985795091639129913859562854927474864063365230392085656971894429949467361557460098679049596582243692633429380643821900182539385387544452175608995477539046672736015818025046264931620884576352819202929626287080073936353653846142782664390990976201484001410034164214304807562663733156349014720318626259192831983697898347064351507285213071647341868451294646092589136314949796498477889472224050121705332639684305123962426017777823301783042635098246072627202161756754941680279638712195963877989280619638919756989947321500901188774472364033559884823011712667928215521789673351191517970248092015123663378299124098666695564153051960235638413328613235226856699883926909780635769165116586968537888599859657659321903003209187925144880687315101648183846352959991143676748558557364599277675794037415551681843438262992719339907556737254005980103459093423388205603295033908827716095779947559022641730173686853735537949653688833735814502967836563853928189610314588196760879671586578781154312203835135097622476146950856576900340310441351408204195935489151424173154099052208008638790905510402657627787915743713847778160696180755891899199736559301670458266274284728674404402415185086573781412773841559530382317434115956596264413293350322002654742282792969588470347025564580956671197187531806654045801795931136870009161216985136006910291721277664996005839920568918178700838512385807487119005162454491169287809591249553098757610803500159006443516267741954637291959474104970549170513186000345143300508380232193646208505907686722066677876935090795441073279178333271694262502136009276507792365201295892898742859003698534081128306923894557019625504523398579738846397504384826273692134599373988201746268780578589629607351242285725520848691753704470261963729518680093839133372687720800418183414880375598980517449642668159380125701904925619191878864723472774655299748996647530027575384389620027439636144996125267357838844097442145172818220956802373430596501012205727540344435519191868018207095161143773688799835230490663557865384991438765315445018927354436560806773309622922619297053863749610446770123618862560117484958405843020471156280352020938519156634705328196261433403260386307567143984343655864460174170832986526850491459667951487270897415206047363260393814754439404410934157389852757160432944128190883249198606349001045737124338467542991879632315351624355044385298128180168643798588868871570655145890838758406855546636985778617622058007907854305898679902310263749942442866640672131353006660755853386795652328613815661187427388223514634441330179136785653422763221135985080667662492461651023624688638770854298961525277249520383988713059985486209301071105920555612260031295770619128822333335591322645848496911908335890672833706548292671693425692579257148336445168380826108460620062207192372303808867188466780588256472348431921252865832766937188517307286732380605946709772785390874187364785028463498776731109609933396801910192536474655191036948587033963702643833400115358311705919667848120929449619530005940862946319993985642751265002501380244671848719630003252974689161977243696637396732310717427752488647361951391599903554959330169843425945483849906650657370932106380230480892978679507227365564836148914697986428584142467527652116080206948779672450536085071854533627947266874168234470486616740063608306757060893500818031869028066862720492341929427879947971149998141431964753346488809933664330036162018941825875377634639249129816164903522547228163179244049240182379364714022656788218041831258388583097235324306081021529771337979027028686923958946042105830685002862587126567863175576955212153723320568140660922180536467073018103599684684032304042023239933894476524608265066555636116345782468661995271337918016112536880191342824746006326497179986319765266997394263220425633521042127155074820410536969517801938548182174852462898492213051345994093623702141975508524037474580087642441779392636526657953402887604039511652857037621682143235966519455107113077075975238899920300197048900501972941994743519504209114214541759209634375390084894002823986327923638125842895696401810660018794753795237677870478192066383663907883712533992978969554462381827945126323585881610247275382256013272346994066480928755360222237844748487175705505550099207254240955175324828714169364491867351562849458649041921139616853065736694063551445114700015416557603761469037239251222833605429369257184025163557327814365058222028653297136129330204032122520861395664599978436614206790712912156283372823740467330119418947976035457394583791102543012211723680995152471390827126213600127047406376419479572885070432481064647775544738136558245909695375327361662608599241842881236903791669570533518010866764304574561129119331167232360186522983674869526455116728377632910337843605693308961765196605591446238727336615653638564056028138382135599000826473105435348337697416529568143561035964256667407513717153458208939211471993675230850791911567035428641939609293121784485826450745168097562305650223537084786401348884875005157359116341253917675693358513989706058219447367429871546273968498878033862223942912563281756573670376081566843797417090837576281287677564585784203608441553450165496295955809928533834077378791969546032057607391302220878006597890830841519892062041840637373148468096936417120924296198697972822104605175427195071400665346618567838992315613639288361774204409540098081132641423535432589622699040071386608799715332607687412070023484874059490988155954911832114183001447015144076718611060417622222109229070093369064591002491817476206156786889839319343682893679115189874735620843618037786669315483572971652223464253210749523917222094690672910880045258608525475486143096045453650534868252602148149967555806507810220639336272762857517193375896636346307301174552872497413192780151843143307362286391727176772949191317636565129707359072251193723422055695406066840088359136481307325750056731171764781534938453006234622767365168912155470112361339301612205148278717561165095020940868103742250501135845388594785910072524219091857713075945844377787755591919446689899817121594240417653617975405036830308436762023852475070189426007068371758833951247491406807444732675595673498702085542373222227343217280702505902846722381611708847596512181119738166728771768760617332234315621904532825350088812863963135461787945056068679745297517694272152439640785339657334277345508041722366979048179550868378214730590023760450548464846691531304097646968685558853883914326725908325866425933158254858045442588964503042632939459385087031372977407207598981596083478101935837927019649008890554177057541671959733429687333663353538161286326213166529701577142533856761069972075052214208776042430920794885095567072567336615696241984793026666256380610337348533162504948008400506693318125840049077597040307126484092093691038201819545296971977577063576373596926321500246449904386639528411885793686402881535853886645047154182115269112101007639820227076339944856909752405415291993894097111092477334872406787894494731644801385420243632285406245601682564896972743647019814071902810231861155952676116817657924970938753587803922599709824708457973919834763845007267309239482644419144426005027456072925076267230800419549930968222618766878907106587980659044058915661936238461901998270662419240589218059133523851646032788791096563284658028502431748362548875855463973658173720752054720095536630607834986743395825907018729811680256877818177469726335018259092727716663259769810163465843893018465288200119035213914671817844138444097822945325678631639478590956988866623349615402803033059661590798513778866829785368771378466888975520879195137213843465474892089952651006382046734967068465030297543591155772873172351889136188332991055592836318890979145964529218832345709453136529235952043843241769107427163230678892614599793844956079685151507046285395810722744708098868721430035096993571586758396763497813131924658381189934296566132755221445102923488099179183997738046141532559218875653981047227635206826448162568412631370334050530554461393861239699366046471056586530926835522449678487032104104793776373814473609010485995206776667182252152928495478096554361110055510121947010175066823150947741727809022815879268379800240988333669333837303758755657030571944766820608421783072132617591898915107102290285192381540797279869694421270903571309083330817877162242049954059371763919041846788868254280794222640436651648515904098139942363286349499643053008231141676817758542609129226985503189445557012532954114917956461706411820750558982763290700953204866012634981307749034693532992882843078353703070327720356508079153365466165600324363669101706854629027073997327012913400598025394902886346601063958962741521171030198369050942613369884332075352595969463496453214438687772666415683670466014608818592340959462757008568735074702053539922913415679494288059937612009167060632422826158931690755498480794876847463826283446260172742719132166137203181343470539320829320391566430652658277178688673924760398170073920056177591043274364994207572862687692152792381999992003433653035404318468094486744190821293799256150849714984283827694027527402049068380346166089979616732709253103278775214413386667198867803428536878068301996631173218588044344420397147939736875127727476342942375308786941956515068252360647843395889898436321216244171312992929591806137755368225687704941342195793456089150344171641441058938675067864111864756887310022824414328015235178731296963802071819946943797599027227684926586719275945942830327723875652050908246527183473477893276659796401093137348058404203346078425110373297190096058667349474644640128037133359372374472237237728079356651653186773042550311288953789246568228383708022618515878343918897866355539909333377157703697721004211345774596547317777942939796187536657791198255252382252348040088134523901901939242957853770108640411235244152932054983914468794554566907949172794685837450775105747801139985291027795042779323627063732465590282267319627162302438663632250196077260647940299408365347132447893076219959124777037246386291326424499331728136221834752913854506704251509566613449982820327980722349785080452047436209858799986168961581606325516393777260400913800003262277034650723877682417204589231320143212781334048416269776986723156571690693966479033644561869421891395883345112590781843521322386748253575888512608325849765321955985167795867954148168414467235286271519931966021300991941009767715061827588573475312263857586769393970847643123080373830838149209637718635387970574402028822979811964215483627931916503900509294907896902430495401883535727778870386716087267822629616750776736734205494061674051740039122209138714619330835629284095917017573188328996066916740828787971943684064478634910851427210861864123203037874836203091517256826553471578720918055616869421538153143995006587392616500838898691211414177783661618708252303064326063962825616879581009986862335877263439270977634576688270452883346127790160453980573146687321530720130746916826720326711007351828713645543357448262159118092259397701007036579711731834011795356067753292286527103500850284518527962809194431524475774088452775916930545612251375884953884245969459142098635170571000885945362684707461103229889300484731037753211305702135791719037572335192766386940498450377566674847840174420916444726054617430494885615385559805730427805686541179697271166349802483259058053934532236157541736609690288107615613160644364220537753124951351954256056765931355345286127764292622242375020855660631460148044495393937831509025658834728488246625202305884093043893701949947960154094457251289684789332161641128065544116089878122601506375698327934653111402858069904905954507637053091193392007851087520820079015175718656627678192733990857744570537046721108843808101933392021785238874282212375394158390947071286120906853278791198635518973097013148762706359480545081748670009101519844089812840138508299835385855548743696926523501813784631086206203710734617998381112542671643399743715788315617622572832978492777760899781918580970983189814671272251819081890337010506595894335388032676111425424925713541503169535646325362807759697424121988900920857165458691457480561342198629388063067040086443055834373599108897011774424431153570396614108677811064498426393650640280516221120512875898529159099612652041573720566068641088209734229320324550312654846774483962153631860921652212923133589502268602452995713180318976325436471211574300637248680319960792966605087959772081072754476360299946713065844573765588299150656641804076458829878169086082645099556079528030593507402884305138857108649508275778359832950844345606619654312738312336085323239552590476732230227023820232158614470315799371162797367910557575560430715704374278136922452130996895731832996540020115023437493469837686588950799777202412975948279599811988269455630280637153538361306074159304863853654699729621924807821240555801609989261739059615422606203101095727716668381678684721323054219440687222702760096320089437224004634334203064284184074593994350614722428218048274216902500289327193530129402891674384026656764267181985960734715947868114782360157234485623759589512831464317277093203211090832595754592455768210400878694150915991357472049418785396601832586658469304165415372836006956721147449785634912534990838182853487633594544140043071609946304341443996389249825704754763257925854093638820463606889048406038053614787051504778739775985579760753394012542328872864679523153166825492670125108466136238093361870560431462798277706781210332706842967747083262949469301667465186921049156255478636206644384111288109854036522457829798656656349324953140371022777152164741973646502896078586754917774222043068218020112337320375491207814660153290144287726565467490190569836767643756429475319053508433757263995196923597046407550928558865652455520835702046955285958734638107996262033504186708204893186634653402083810659702735792603814014340403464871338550422010846955208571611754176564416282510394109602757916240047560300173431387291796605013507231699124685304873126220764697686420654311852094351818422756078109790791867831461424507206230497034451963756663157959193924253896909782512556357305100402874946838179568481226130445170104209554923103455840502550222734273911258739450877233838909235840952120436152507873633363943585864678846428662461821741294872546915173130969915724913810271289439117603976797755036152067164416756618524488499933992532586986093291863188192498875932972156710759617158753974421196810854120267481160952759624457375468108851190061204847573055153421870930083075627170314919127169938519093142604047548519636564109434166081841042958377040745106634194905607461940767917796410381334540800356519574402996000779147578337181530864972596482196748414571755837281772435725531164199066114317029970122785092708961902090329453529221948205676477079874736320594996413623206774400834676692084279362475821368686399879659322386186064257205665687466866059243668337574212455892955789925995648847990080276293835954211383658390994806946931150180674283418636774713664901558365362071165803349162176164759818273219047705264954380567203821643033500152856830560815994962250688945685854463667042807868631881711128174371977801909855713806296711791695824163819295173560642315810911085235703124295422392629279840511348963511562608547471321188991008256621867108380524956713582073389542262282627302250139253486583702409270802229386121786522724379748692969655188663794123986032364127656959072366920972682832447586355686087312472861106024636498327472042429031180384017904348231619345728129045089757300227145300500026270207059455940146862120588970303718077750462010793195483327749298301980152507659039494454836877329729875001154794932799240992610401690455264444573452145251144374301071894205781811264395517871824429191591797739160500765318707721788666834627220234265721825851390920823448625517293939251446614214243302579563801242524910975353984940823085141759560799646836060471353183355401405955937141506092679091623908634499337568029764623043605875376243626752472468858554692186370410735335479244563080420023292234848568480227171821288957884333999206451028215452477281383930730998026236918538157753262713127261016614182146727097618055787491591306031684457609319396217112961737617746450265658675653122534247902146717340598117409394763263447415296258989292867527935326543265514105401456011120141152964832955303083641474769372635230811918290682932889042129160039722234088539423791530507084553848446217711513032529881412546697415646343926522935221577764611493039165925781439427090742006503325882936414285561048210263723417242926446554434695477652362710970747275867859522196756748922767956749095072904860880364548694340211608928594058771769548138719265585352437072300724279195114589875016295382936036234551195426200466414255160194722693384486238603069183153750623226045911731276146563508658459776088007576058698669873817967941869199814828074444723198956047684401830461887650660516482963106622036377082523596414603149972916136350482449539310596866147785779673448958070908892523032702237985313004604383697041449206516271559076793503067260860595746584721310062973331453301290911440989077797472297622722767311342275737304680648212882882772654003973697999374488097039845958456187768679034628369131205120397622059159911240105045629355197420144993480502510704165200702647789805962049564156515292654034494378483950072803660341761637560987055265865660405551872244896173286021392667260360479757558276632299167251096628319274488230075770893346281884930367150957511560849601638048513359295439966632404731836774904166601210514668980280582086915622736665039145313353638149230833658147373850792631677030257556092666950172655120944875793077480775096418139620649402294044610012061280525991781295364069447832622768465347411618972551864807303533580462281679908739100605356913147614889328063299014856950038965318895108188454272022908857830879847125155391503537496893862893576754289858534259757000162500554884995293403171609145775330533075767475456626842325585168347642362699264708587821792433081476485996763432853385923307845323708320927723061938052288641047878763409736019348294400386613702695265255770807500861882119348946748452004234446832655170091509079676871592724384225980408497124900179655754504094805422672937788886644686323279639710130722341416788190890775630172594691119649817758407361064613404791922024312014533371273355323723973581601796300612138663371457442993683783250788999609699585056173248409581162886863744945394522067829335907472095452952492041542518696786301538229230447622356258434385972442766508589053673305499720309312168248541451742949013583359157685018041204080010192972376890601505806573933339925071481146365733117341859816733676991941145743019274790183863193939361076983571692618295040424860671500011475058827951383054017275885212449597733521375398381895695518777230738350825143371914811731536365514383615669389789150875439383989889816706010304506474496984331790844774926247668684761136463644402597560639068621762849701001122925415351022696520926343848863848978496190950414057177508782960298173181821539770977914998571332881083318473064468347510576612938321693916792459881954381793322892086900055668874249623949938281042972208560918845771819314133470884708417981356066418138259944784569843506197860497673097464111795088788560661412346158540243844963577725171523731587577034465610427471188754770933287572529947511948458806929705679327939441684653763746169124104159529555102785489074715021091945299183354393585581856941806072513471057083678644341450848371487733448842317199731524403284458773058183738538411425311313607827448630400476812594370161920344030884116114364856666162772341038747581171065667827094927370984523655996730487696945199003605471193191869807881163024852172571583218022139124768881948025261771292605462051812232216302604629946659698312735347668673782433715569032702878472714823668586501424794668448764351558551591571486809576402955127781067381421780161170714079590146605750294592041648699133166494490225888526177662402441861014180524903448441488463525272012425994082654423123799686433071221489807382974898475679839833518258196461061332040914783467644010720444860046291110798793081450472178099575088801010545169350781822466420427534396959569251819050266588736391503324003509008670464499321915934840400694864160759573981073237031494809793271059423992411046881615256248700320020287797265708130867320604329564409575157712713306840159578790083169531332680982883826506399510891083335207018930024759713239160519745103219666042813927526529312112753121419571876712084777355571208637171825439844772941254674363842563275861925085099914242136070916001504905523063254862813511146380372057925100130118672634871985188738206340999496980396760106962312996895005065336744709332231994185629769362137389194338079446626464930698230740394098828008625941011331626735816692645161813529542712332097606982816156539952632625252238872935682636341723816671483595874324579992120259227626459448733074341641636140105697370121482951570952626017228976862522955779500757117794194010776330043814064421987456714132642291293235753610142687034459046189802971085426425557379223948038252935646407753287449466893359169311962922519368363663090375477128949967795306613702720633854512888945536807160947114686525485100275113415870311727338512827975990757403609127386137502988689758855583644325032060984875093992104195448027154206691118539550147359854731487405739635547887156415088903317701750092628726762009078416034720088641999017610380241971746480297164692741976966875890677372445932317308489962912929803034688568121589811167345265086408733575229982487891217147311533870328470468055173540683234811273503914310381369689905045594306370327601130852709903494934378751569385068198005290588220707911166255163194623865359893943563524079324746076262438865797401930915227859385885015833188521506005157551094893690965076497136093568911607992967082373844768306328276951930407408091255864103825888552497301438306004019242607050309083146891333263694115188061463467840576157436370983839456010641876558820451379955072131530264209872017403473983454990738788657711879637206143562894266053512541183881321465035974069553404062928408489093520879544879932045486477808343434084558505428100745278469685696537264839902291091128153564923114815095475454646452740124062234333322274416801607092857902518136967828012312015061040538801795764525097971755604359479775195648972638325475948826826172987398021038170251996769169551125313980539474834024608871353039788897730298068091863553196509005854750267830526125694714285645734050221551452986142416087921942925065786244832649259192247853990640226431328848723199878992973129906009397808893174176131202490673079917294266364374977381087422257223106008975264280064208748210007685515733411276506935843917056983072076993039965054045292116946593089902774733708695474105626444794793220093547591483554147456232602723222412442386417548520520363434932143142789048372871763756022462991069353873332076863816960183955381625699992057784738899884651937946182206124346875584641289288940138981077944185763573397082999975102224115837896636969738692428664490268629752357060946871895420918517570333771168065823452958291489203294831994893470484381477766521017264393093884896458537040237803745255434691774711492456587076731048536227717154399982803658422343388344180186549676528331845924743621136293511640477471657284680802174292316446649688478773754857973143332719097993413770599673709022112578488074104042966092722184527062396855413854277895881071950299128627959354901447218700977294990846183677580244669799009300720142481650833321905823726578979423454440861653217802164075096627889776853312527520013133649184432454122182077585837772719319726243207143621588278050495163251546548360684067397949779510596821434958855202934470130156972069749308237424412553225456345811965495284423794817475539821701783089051484544056740546515467560124054335573560064929939711212531205702417911147256891793750751231582186312610603328075206876838086090693290835310497654516431788369552648389065568223998753269843009139911332047052925296797107128541459709524391690923041747277073220444347014216325719995747902842536720407727610799175632291515754734371163056397651126853351558723525044372535441344865217456841142066303545750477606859869600673806977245705913341421235404232724143803628516462363290517148989539075550804032530869983315637132070386428906429932142353227866015133152207765515798045842814180191522864067638395358224579908187612612632868092034398993034035992095626953755314182250238588192002746805316685017138196281859109612531510104832786110721453422244127494105024560625241928944658935159490509277327068327270140856616691576803499331939497076544651446548518052348293403107036289042412675517702121900316226429670222630272545740765341533062134156531270755488222757139454915914397250137156164584145725664393797419952442664499588862154506667907511248661996297380820914963729814589580712403658896134235534007030652013540522388435084313539264771906514081627518800452453015922195594030188856391824520088991482243671199038986798799276853408921163673893036333157405213161689445699464292280130897380053378894750483364163355464935280303171277183276169738648589814328589629392699373808829492864209290711395705759732279882243084177800687421654389508400096981805341700594753919823298191258023732252458307712522245039088966377573635177544665262462151868880062034154225888436143044581942088973778246300960283555387343564659645288991431571982576470853177345597875980402097187842902893806715115054774772098437489284816804149422056052511045934570245139669653825846073108468668805953937672241771561937936858440746088550462780355891774803952794606059309815801026149651356485709186409261781704789999910934037530657689891141482929108030516737391660343397424167900165821707979101302085836898645103146793197542424502481157679606127233606905602838077817234235167113569374246103686358562400397414119751413732123168813398887363320180362836446121493475426223003289441848084410107708111394185949426480164208655994867764758454104422412321901406305235357574780610589584622649949925482528463554059440217606791834245374193980618054226028016338159162844103118786568971721513716636173743436471269084305054860611688534077245449774407155626876526641199032830844998538891109654311205736188356911436246406800449200297048409388454458858850695833189478946956331446594987913021824285575817887586814142282511648251621969134206024444292397118552357866210165626031791516762551055410297224838852663877972146008274237838000507073255190673365885340699455715295103984217888651495196568804527416881461486945312257602622919077096630011615434457109300653297820322835266285893718927658889716609586697615703741691678016437306686897409876954171475064392790288366605029540417406440008007656183153783484408935754198039458000210852416552470250607734037891157044026076520267086623824790898611973947655519593120325843186973906392760201826839524973626912999780300379847500910296039576474047436418061719231670519869704374510545590749218208505975554555536291520603510900136503984068877819899696200021503066634223948013422709399857036890712574550527529456086713810067548515526271141131266037027737833113275590249610504273719161948905001551201760884089412548494641889642581137196431547229541532229580117497301650886771144626547878458564257584945859438075804159917918660948812889974964168067019777073981832297135793494119846199933873683438964903482092309487468207523645967364933193182152419394538060113665497865376780036036753706096790351252161762945903147781173288023269994558834088539632844351639479070114891458822420693995012177843796835171327992415271832142992146513039000525063471400148386384468431178007010233037679159296104122009530279646413705537956500182824596274092950096329585763519235242667266909692676583409621015034500526418126405837940157156219320382708204822526442217541060238333641148737844683765569914647130537450579258808962020943886714507879360867649976888690388141441041769813624870854971250271076891571799033214981607435248819961618314185160637019328922535845483977217546231734732774838692250611790523925947903851882545888761846373282104809194938776073640910937956627021759824597781186384657078718795305168138931403062825148832630701494248434185431996774089567161610083272309101774333478532048882335328905888906963522037871933606167577871250783865222676820420921912588086164829991831159305764050452577156729110959869579395223405886840081981942779161162828136745778737151895885353777373750406869686258872075739369670681131662025805890528482105951659126639527409372848612477065682855808058403324314521710205748678227366884663622401460143208781252463872570320668757995811488335900939105161521437472115785666560976341992586499295815439723470539962837992105113183123705116087388279035992769440342871122268432299049216039858759128264213522648036036724965266330842751200164248701340918033776810096867930364749968385130028177637074628453342588272319404212438293870852961747163306987696511879038721660928905141596359820573026104661144423936541815907496631566203603408882272685982360283890293130730299636938160036517077955106732553856288258847542483748817407609803528694897936023472069924003336922445580178043010880503541596111745126218370089317294152309892380416521851722427935514006097577029320713770082703943887619028593252783711306150601347428628926031329773470795039611323301829844458558491996931725141851070713229069224613310996037821871002303173763049628661315746199437917487267770453239713336091241957629175633795765265562784413434183497414416656620883819850946727850520205443238978091030614022935600739744508957584633154698871499473980997340252986487699839909833156998283005164408188830990638427765688300527492598433019755708366155624734310419290871701808706579854935952878454549086367094790082783062072972259003163294551044051664916416789300215139918507843868070182401756217187451871860040736450506001646151782091847114529802543929813753420405026632819212016185124260195915706282436173102450224750933720105746079664524208491916922709557638393416506716299006837385280932621082266272959719565676489410633137525652479393868737342472398304373008236167736043628685340145108749075032709645330493607035222459980953959997430049420330252439401800739991882949773002177696741083186508985860323365489536639107072063652724298845761018267432777228897851839288127009853887307377565115164961413022081479239029199975037294262340199138664213044299047191347048994753177420744966629883450199936149872635317439153893424513249617765198286889336553771544584940885525827804466612500646573162923984846981812841654532704478489543500245793343566414469916552793571264583711114110980315230419803018579521639393660063402524124533921563787932410592220332420183895469206762016596254269455709340025909776860161061358594536431470466823576111492705912649987469713785348933377134117655780590894917341706460110705280743446263177451676127131704298013938090090758344543625640206609259618970034252186722266382768373176099798525008694609197051529227284954316917582698132418679183827690405360413248081681105561284017702455565322629070798352552618436279758677643087122165006129630588930784109486485755541612113788383084067814404655412690433079007453533697247046952801190762802276327672845872200066210904170619631145393881684210458198264890746731555098016829941414796256769569467152769026142048567435764023495585031607854374556927205307903066007382120306646715628699822730947623466976876053045291384713308101819802750804471530552007065198657027172423065027362655393248083263622551314826392482078689669005801077133854323069957666347754952936804824622186289345033203662310345477613109269146031719942411319775760781223755987780910861409722195153074205561803315144806303106598914143135017201878303175920022498473996309411074012993602295961299160594139498130939014548183350784585233872135550856066999795286085042767422037194851594861791118317874175876532040182416859169196079779964635977237145380162532892545976538699750701471146344758708351937490781052496002839935890587001070642276079335804437494921522234057842451253929852181087974825616974719209085938044951605269078563695418832452637550498515827081212692066355885175022715857877208014616658764873338801434278757275467669378005814732464944156896403926479949100316818794182678143508008281924978170579943343950613315811817693058926651642985935367441597599879010545679009657432506037234493052852630819920458269831770949674350597405102190122492650913278432210941296866375698001930718092048214554624195979965555541036484700580003513558955702079041261396119614308421526609317118816006303777280858150931573423370734495147654887814609710143958957164108810376313980740491637277432311100931955641204937207752034586160980450299774896954292087294018544784962990706941683244736803429425510034780717759414157445789025360936188191919885273099864256862707701603267936573198237471024282900085660310140826419122908375550979161294036908342635319004619376481461111671245859726333604993516018554868441248331427461618173747501557554627276749337255098817652044771581353683828016824183784169602276768519555468862377647830699074367692650627121827209552695978839945171867597979120001073606454768235006945071379441038340747618719875876273068806100776535854470720236536193680375976436900186511552372271376349177802179660596284847509559877402118351617244421725773051224067168822292784553917409479453056845153007347164697315434656233564094658429139114307770344164162037531410927899772857633521562890134773084596493317119973687193554269219444237807148260277911659602668792551752768877721641864644034554325510695267966831477091262278112636496876143104163830522287015837174875295814248312101888978310311653029571063965332865573992645039965165452276436861060932548995659033779536645272397240303051544636668859228343076508052624054288890028364000801941413089057562098198898715915474307117696597995577984529377111570194076901057689350056609454081803041361595374693784132041883407805416716906792343231023416032017150870477356067796714171435158706499527239647297395133417773093190466223823077261843495722686295812823856266693496689697136669916185568802030452810171091273233153029475874916640326411255966278872758931413256383563112855243009672593011516451444142416812137920347152828715145828935842273524563019866001197760683490188063330348438984753364016546497617824832552172102216501282582048132483772026297001822674198234680591939130749495979781539766599286604039658942786592704584076152561207063491113207616024759711824182492201682053062169432147577156781268061137595460950364589723075122013229172691788135491202875941998043539332933525354504102148123358262866484719444325804959443878831329209226713999013211843908705107556780762648425831923161680569646263570358451247324113648494054314288547377775718363470325922227227454990980562985182195442519445965540817023028541843188176100834177625084439226088078824788236005700493334546008147774852109904253537660490278103835657278825982060008271285441022929575452720527951862989080614611982811171309102794419210126733981883865902337766021004906168854232484245480786178806071441285818489720442808751677055547282274028820527271149675137316814208088471009218326895503320376022596324669127463753403040970123955534391741038154294742341889930557221025985972996753026531119054958433603102605566176746242714557921398944745521902551771785765178579525762660064100593539278265017829616304652906607122198459967599104523781630286613072809955990788963617059149414054893997297233030496921028978898833819311222832322413861915892907847942129612049258862297850135931542134910165360256961806996000134908529876814236465755915296900259366943945132367503245197263350197786092359024202269631696960347525618388591374772886037122041908211074621455884925026686884394632664868140208305437476132382878440791576586047336075433949094067964507832068617266072357333342875248309027961536916149476884960407944522545905873567164884897205928519380550613931107188857120575244107680955758171783127465434936101651453473085733268904225002813609201271699215146493696265608512040433424320770599648223852520410253383080961152293782015412739672122388500745797948769069591650494813941130390062345288646114338633933153896937108753406873507230611615265716955264789450711401366399413253787922057435617622164755561880316128674032292882105552852193225670273845932292171459085637622224119422384428712654782474697279091328795109161826232773417892313792149751697538882726052701195366133113190485715760800165447770869896074007727896127189933480604976262105581523450082713820861434279244900889266119617398156856281366684124481295095097150478592333005430911848378424174008394035549121526668912449999460865549548417452097223524820367592746368553551678489215628132546710802223184267981828614664474715427535871488965810601454389381184038068259816341354412943261429731594553788510464432112882295633311803506189560502559532415961760150468834848376246406383833012166229477022299658415314822339518534919684281715897468353124714763237397123710120974708760239791271506797890835530588300985506827822042530890902356928400674680920846128274402897393358218153017269482488485346776622275815646727387691530357454218860083611095621264694703786831638110768546369787496796607457024274948355943277825407205597930970806434618473566069863135885522230019968959944094897192206293583636643900717929256991242308370838369582902038450826051917779075862383732631267600078353568279052319597954487900011813697734476285431127991267800199837796659266087996460043053419137278775309548068178822201871740597820725599937832376756336094149756980804290759485697962661639275309975780816390778153479090477522041408577036241155969520730353719222603992991535240907072842994720862694637961346713285038548997766275645609794623192167080407271143162233299735314800476076473961256375895167989236274867317530688690615128690693399831085822140223950655213966602755980309313150183532605923405662305358847299720461873597450311008834268274727962263555155026439465357882344849307156836573293542045218256414124568868003198980267440110820946408111666856927327792940783178659739902323426415519054262663477393406471449382013994849496591321441974184191850024280987831153735032461032129886140667970080087517032175330865587328912675024730328326875337551067088758895595220061347983621823731934405710502554663708766694818827313674916943283435986499413033990022876613592852197760851831585909447209068552199279860148404094928258962439156228879819306048368364935568811259689569959579349824300866085559638209267556483101347541948681332910892322300831550668854556249394180539065856276947609012514368347711549925752714464874860215539126834785635731320022546288425501060317328198677019503356905133135988661849754259688364419708669987633899666767691049882292194981698491878626047035964685303605426490124113934611322701989616623204596111989930652921169174558580603435038655273690590086081338147111114272291709754050258065449640954790825112764528847903043117857575199970888401186576746469115489484092550469825032469469417501805511751951639957342252945836179858005422447482345756825855672729827373688333618523830681363959883771086203888414393266341457205847863913430616479941877348132743733551558706765502141995407922629421792026926715894349011580593638990181193987672224969283964177153446895288931541799353725772610766615365038828345847937691368958830559556571484722878582149163504616259919185197329797446470209883242068541173343827507858225677437141557057535246340102317777734062617331601559183271232473540581405608989930029875103470787680842177893756743710468794906061502343874891054875471389372670503945155727487998811555044913540667256411750658876985923932778233157461618798659790134732251336013945356389888177112711043576019459689004752037757859544834727121793572752183905318188135139141370465283039737085126398730097459607648935108139273200462192526104519157632566178231236969925480395477620315703688156170613768673240058133146606707325947014637585426152923888741179450420127942754225207456816499593872545347595048799494003015498103405941088046206210389800734965161433380398821372809492692435816995698161659001295703707103404204469268272166156923658655596012007668615743980415587590928705092271271886812306874961214042251723858505121307566535192541414118310542518049408968494510619078416602997095161346221028554418231436393678421280110718671688177008061725878746633419589903605486945443496352117430749952552873299608951428591016206242099801557251083560538933829674803095933243421318827877588629352538265789744422704251749205854106990175930532979524854661236264088717127749981775703462394171776134687159439658859329890143558559885980793810915145658216373685648101728153876252676280026973931127464948684235894221786079408816014560316622299998662346300620005800398269828871249952311498245917409956300736306694007123223408994669013101703414636391834095940036923708227523061082900076130677645994596842963330429972980803803760686345472158396836251233392898349571202554815831681561015138452371779282492803184563113401475529800393880026097747479984272762430257984615896214852670597782103781158705114327600537041276711278864665714758585901526548438800379439739739630983479882611766091426123970467930848484065940485482008916258226993609406349492959414743549374688822500707436420484882577713060132129807693286476854937768871619315937612214650715877794566198764935397474828343583707361007292222702464314107153031388160177523290350115835027303417935954371108990438924410362758203866064702087572989378713381842667729356676476572885091364338671576125139047998283647000449506266972208046615931623209817893189327595038134832066512405113794303787379576277045970393542407563157328811365923964311958842150372983895145120287544741247649896498598888030514205642120454069495541495948624483924152771446553711594877306793135462100565345262676345605583605157489978758435632114007723261092637448843749754440250308577546538978900904890001456890010420402017552711969510836237541038890750195936408295547018553257450965003192290063435446694245182480202492512780364689228057686927677528909609877421914701952608025280111355203261510927861840619053243579389335900931007140710890327063235478700397499697533526161209130594732851522834087454059581466838117510712361989350764171484689265011987411649201736111270355526453505278748608083475874801339051561123009573801512500741233556065414059706729699121742398233961968344447029177957541683859860287982715397349244114882105473634332180599507778375444996942304216482346616293199128233232606325171594693608780269791589402651243961667252515204563875250207175180663396973599962752963634293035273180580606924276015070888599508831045526695778360298168600406429124817633966620264131537660324354672020278671123116238141922823269105619671094317255161588810982210589959118785823272364106045046610638063108478287429561224010482003942737830890391358730427192493335627924197866689154293967710214681055659102719555896112460063013940458293619860889030958428240106751430394220990808084539709447638139721317801173736238043367788517572553801070990356356611071311425492996376963101177713684615952289519790740696726449699567647875456396304423638860745685289402343648455676807943030604057373596949088553805358216639116669482686795519047211171836807737523342573343770484182981847902015475338104500755906614749694258572469931958917576311846818585343078101724865595625805852718262998304332923885406091881923001067562838124471194577468621022142530480381258344582183294727563468524762165111871333665917306135560233078469381233783549992392400573334243910641963490893349403990199326315811929357351032478226785531450168767100249441536014503721196674128355577002401323649276120879727773857192562002181289123361950709510315617981864654033948534118642800708126288436411066649461030333236555314444173424704081461394252014327552159175882851251194311456619383212307924684872426576650209540482020602258010136078205607563310237722212623844804872328557845757234076364222217920788040175663459895592740544385276697235423407593946525558236916646997626155028525834527619873628759632798821048024714556478696819023176940051918257916401700443579743949146586533096580205326219073312492052877717000584301907471039220958490286833653456649725339137391414902973334725860267472055136522581630905463291256586543502781818765003619975621642736724630467205843201382772977320714408459002779359429422841691056140908617649847577858733527984721632055850302269891255682574032192831516518806523137383340738028018319674382113832860945191970098341666629144103816551524575224529085488413986476572189044936107157808616700427928391392526149130684609406221252515464655025037191167254599705212817517979672866671312636199369888120228458561785070078787317163823035696477087650766053614695500294903939505183789266843766749823212304912853914979946073076262436812492756379724861428549558119329158018854509815874449545758675608729963956487882974454354357016699721420291091962982381245532393634242544785421001420832750160214584097106778405304411269503341903154835307061277305267162166796255367876854178064309004522230111463847630552509325582056050301162750350170814735548078561963352142197176898127301252275321432362166529430995717493860828010311219036648770923117252450684828104648570140191082373898778215211973847691721670556501966440518872333903026018065923433452038791646843786214954736958067658999056653441799335406997963253715198907660444965105300975176486024436198855405920172158371472449419992630635735305421612768322322423019110659479187482324257722098545526968178778510791930287491161160277706152994684843824798391931094031066689259149436024667578096328019024436564260481056225399976829749269919435504282310164880619742213517032150930045039732890575446585277022921257155912303479362148179949032570832417307280145914964950195825375335037707548657104816750500923843388709467093499292495402485173523965183847403009062672540007148811528128880528799891934746602624215500008659899520759058434568284091243897744969161977243167998068566174013563861829641120218018723580014400550594163838050819410805761819473243049320476599554211546958005959963185129543798550236438750901264117419078551148592471542465878055236302194227136183183423310231559951113995552066759994437989334231545103854481847605662518873392865960385801906441078044717269015236583661862157497133619974005180354878405967695170061445096517333083297432048829288823116890814784984731761986264351340005616308155022562805539825963902419248815400296944211327542310998212581731903762317223545090828399106239625818006404999677872135701107326958970758230365384001188097033497725772093923442318059741061203649183860565845075670173856633127447936201737729580034645622550352394274394068436245893363132038660221766400813349383436854242753356003117921154264134999356548294643061364134519556134710174125739396668299138826422086560572167177865302131660692524467290474727243875816384496678330833944613514719021445245276336727959815654399849608697693447380080879380130536902507954968726081689737909592821512367924267390263296321068442043035260688644952062008687540576408142723262007114044669240096488928436431312816233821755266227438945697411853485879019161504458740113475062319706367604953818298384783706212754384118452076244402327564685578934612756033006879497626603165278871349774872615234029112427164703117184339286498504326932680200791102885597208476927308347471701525377242529970315559633773728493820207228571111114396795497390409917617029696812017899607115507790489608950383595826554462386876580472440303307495025140507823807330724344318040836967677218031831404712034883914202429055721166472569645382199899491935837380804424282428214991329201939944288998218118799840439260486538766948695363930611973815602730712546873929390193297509312001886199230895244457820352602197517263734879057114882430418288906633760826487226302931771310658911680643597861402852292714437827730347142948220264727201325626542278541800031781860960586895358126967256093266911756962472979566324022528609526667995460636179086384033932325506129362961499600265468467990905072689100655743096786437157416288754172055030174440301500025225772204332344787600445814495565931383253957410846786716470559560532471193883281190567226876519487207114323244962290282739615908273624972748472321607609942535191484209288024475692473007465699859480123976792740031245683163547753022454201404956412233413739356162021948735959738092435726281852200323275708346593057821767288701016699522017414061376429955742909355356381263309706151138508397743980776211391783496594087626263848000274485989783559016679807064715389423345314694451541496701531174751087976302897975746312577709839606657913628551204313228778587013143666995921852748678713328358671044368818397474948813237250528496851653532528540570939328128003309167644497364195146270181040733063445318654697307405666996837583459966914826848148691310861733698807303473253804031321600711114937092823741522147960032810084468554517573732595837345520878665033756867778001086120166633890744451114690520547382935147671309818908094984800603711288235522776231114561720524854858068216772923988795764665957032585509972224576615468104910074679795093396430834877828662839447066783019182189776230734624651189846189617014231092680015239950449103861992885112278873723024822613045248838692039113306653414825607828439881530403311636961563926962882534695773078821380937779023449617563291090837584095736186989985543132982882442615670670665220317233136691337290575002369862122534506647700820502312177186018362265614826990152060568254761120178322944192287542005190565415152718874600541033302014730044867653010926227206423068827641157323506740962157130461480158259759730912671029915133917769679096512786394921123544409602655996647140190885054675665277269264027985860790964279124721319485441116204658690787412906312598904398149763762382841422628340841914254607631698959073463005369688112003833826322988550344530990562730066218178412970462737223385363011129083480291726085113241450720724230489961543195470007106963027544529811485239874977385952188913598544962085079702487171093071134514635989873916169050397895266031121764252021658423674074302205139663761308850379314259310172374899619858637999015092580968863414397026841293617990602495801776824086388832504920216537876757542117847910213394248288951539120265169203563537318316985184778057793542704431836386091519271086530150396308501757136631335017956727401885476089613688692477479862515895502370504720481395931811566503825042666544259959273918302819542856766501567936382695032900186870196587610235873690052728445640532631613262430793850550002869084710336132631272132069365675575845200563500299851680547589858539413759054004957149354835015069588229024541195669621238150063679171289490948405080569170006805577125341623002427042909505240158751267247508052734487816705717049788116192798577394188149824392053275481628022649693478848918519427364793950948893139170185838313338695347817992826042244295626060553733405231879559534354603089453505120920597124959524227516512456628428620713196199218059423030888775920955342531472627717669171820095527044578626379979558322676336444413415280774053280977510009704171086053465724442061946402673524010672326459452735241399668560109311263777353948783352063812456970925610982862043795633913596848131695757512721303695437197956651388180890103558955977445793935895691053490313741241320026237598212113607068880780571397942108515072023810409028809390756105959899561569377841250201788990237206577132742073954732565730584373851762983396092924729570661586810813316208507590917477315475461070281839762674459303288856236708558248589211024785202378513034524510887843452898745151754182563708759886702912857041265815195235818079304419361578228219286153459824292213040019499465214931908238327403687136014196480261605433507781585322622455329969052993669596251616622088415594878287774044623674120756688487921559467670323275682483072292933137840586009642781436314448700422620272433524050842193687852538960524540619465079961498067773653916193585183461323358838366312006821391106530098120642100882802376465298524690760051576716384873796377409611757115734455049400416572156143887309004050630441230871904645254016424809665094568991576678504231517387778668625510825058759119920921030871406479357659658864724797832330382885781379051877660503091755890904498626863187462107722574009662762263250553017661880602068977777869807401626202212608476492493224666795011338101599863989878059105032810890602366926675120296714138102815200545402739338126195191558658509847761659253563529249815618810948738928686413375577415960518400988155720785868177462857729517788386770796705008314817477711982294800882442049344193143032043564769207772816165794684279737992926520853763221677399669844593972137385626590327948246598608125108636820527037899070826593546285233373543378678599830919571938675404746881340960561804919281481652307752316150269939189234877598286384144647129945320932530719128188314220089700781836864082999053839005965309780309311830895048834558705196874324054123461603969791515807459597810822973430417403527785777843668771740160964475995429398032295540219799889952791395803708724072148296387761743970919989721944879355368345120439050170820599306423490514746575523960617353705109668938806663815412722056205046788413898498705529621893622624380388544610488835506627019812129354826035075699075834005944995700198191542123725679405660903057045892766393881016568372829050934066172194267622612061488103994094831647523082710409843588291522662352201470365776582644820628371886248253509528755420437616470610352032322868950648335313906664524117777395340292822564297253252026171140611850751725439974094004339769267957650373335989256846112764239250356635221541453636715788989416985978148934559442774592114841277713035824910062129293761927895417120361992574230804701795098450546783500330302852323781088993065306541531502377835925226168572298387679925820620252440103733687376853689229776844049202696954880987361891254987925391849096387793372044306299580516657386209815278156600104788139863361529167152392360108945492990098285387508683400265590552017885797722780642185808925901465595335869995915511505626201995825433463525104216309811934218520944711927700620130722520682845881372032454093442520924552166143887060823711782531539072975269213666681320047712999287418754085314404810883683350927597729476018754527074169097482376353067799547779039787135445422842340108497881663423924419924525519055494885900563977401959419220887254344840974340369426171570641578199182552914121394079598134758154970721641089440800544346888679703492638826520140483395494546875310436547168831761397722257640518741317580221202467376992288218587358116701195967518846371219394840412000763104835676208667633628325362817992137992502095586641504417811993455905944662339443303852894597256734355812492396703748747018456668292515158154716308476017247999165055658465987218811578321584160784118563302650043436902086027183535377466288820697717086603795235331974374727568805061008420365528006819046125109076640889698654017557465298947922609893331183242791273001030470874854221742890342879158959635138340930612384564564853064357252736294057395324824711813749985315078507783116255085197856004839814728683505787890315564953121878503054170381154842639698871813730865502983699271039080343459909394322555039468035031892039116003210198629441019950104411622910149159571804879736297803184191435945861665585484741184024691843663907420065439900697655742954838920920683596859309662465047049022836842385917859263981249228180552596060913814643963540544859420446998614306916827959841794433940202217541756685680885214904809453763534125631421367961014500575368875307308502408257488183609006099549496402594031935966743558801537491243436301637217705483196666765008851604613408650985920577265802916881632862104116216868082804268435602038558679674626041612635674966490524220767694452029143293245192027660154870588148035799874504622654705080209810587389563513927045800587061550423211625669627441887297581079403446087458688704343787088464588272007967034732913262297172082494101418759664169271712353633792128954003319624502912997410633473415953290393876512098537059533626144333335628318715679400108051620722269528784105197394354592460643226216838997883933434837747494501015017706467683767367742344004550294732148747378542458303119598620629622673383548441305003645536152101478996435244156899590610905682167552889334878682333202096907373777436914807876681114656427581910932961281697914238276648624510253670849913125647339232645264162368655806753288009674450334215352038082902040333924290558048914703204045593462522575555676152231213886816018977086697676382095684934940333262972265900610101950810104114081104906750428766514331575407345645670839693527477987867302213662317855074143591435300761731429239709748138093854009002031652197534458165087640330656998460608755065733769759269052825599147210141328314856452715463296771167549253305652542833008455003824167800890708201847932548703697171218311699039126111392173298233570151671866966986213690722324123581256201281365820441688630468426081406819066076520073656837847763310704318419899366979060202207002274397414390527865177541085333249980867246958884772354835402745463992833785981463583843719567630253471471030331507476491267474969636111331419626206422845248202580786978490630822295459363884138338137876252748912169166208597330522203202127543794846332548704924150211422044769121442640439586487074600316391013483568083125532387469764160269642772982826356752790705470862181014167281376950146358358563754082649243236064965963309936307577457689307154304215210329590634135584354933585727616820982070098247732016029788614606662724994118349865120245060892085256493979921781174335029268634904042407331266231237981338433688826453179488194056356708601060950552724296692179926831328144502843503442185495783696496313413631510016684625974179270364388865740824188990651587622390274658330519101436735231666001882176138225331164482450225317523433023990220909163427642935072542913345980490151874100004205323720681375207755090941074103030987762991495193448376474686615007042584230760925062785049442055173460306743454212943853161617908137079881209415426042442357674398755557330779222857394594509728670343312917133593133304242869063256578042691196879325435664490854940596491401714108146042687489367647319256801777295257863279270545499202959137251088159467555714859331946951308342262497230046330607746282475320681362677663849630619781913303258135852112369605849746083690092640121583065906519041211397176456915013336601490146928527931459475676435309998998790102910882867179704784151574583344456235215237448807150760113471699412408407308757505861240337322910038027975914093005445195157404680931618332383372724358385455055959930037319454280879752211470242297825040265249705200345884739190806889445906707801588984295771818781414640231591074512356432903475693423887547733394393003704701064866884241848868936568118030704051408393989684811004123537856022770555538235214264854032522544363534097546203988782277646096332445959217289070190568900165598052925179153203823241861988323625639199079823617684562939430800376069992384292628773563206304880128989886606192066852623133345898993272580645849021213348721264455654856274780349175243687888835299279522891431738802354896044092061205993451099579343662693635541592508401828913704462032472678370167056787077109121155798758717151439271212952770763053264379420502854938621341234726142711058510228230127304626062569927013735636136445399978571932948279355728072674269750924410982000093347486709831380555233844350959859899488339018634234873622571350014202452197710705864265040704241866507538230810607711682579743980872041592447528011520792597045772928353715113179340801679117103633601213313017561500772643398665180602240168390734344035894929160555322776907450226697595055549259915568043620370926533300841856510029949812481138144686077736093002034100881068343677889634264215246884687825357464670197508160094654374863398643655753626330314746838300087788809658642951234650788425943772312970574191744015503168512250518850514401206196137499992916867159891921164992784352699848721062706612808234148444887916153480674145699281074695600573798188479167991141782900378888683357943668331399617305182840612311751136240030395211831880635681640023036716378821232862146499708136964707192745766568391229140964666182494281647671216139332408945787947328922400868691655542073990229709578132360503210310302341938589102120022738487339402873069426394689097813251330321468629044769656021716659616792008615764062551599530010825509181137084036664783709878842663679199409750650231179098729057826218608189214213910289061361997693350675303579115596960177576391552941863838989903420373450027223718903318390206984454711418301609574569307467846687335127648225638847739369510243771656835499346309347010286301959343292854035161903887296103976234382786502544386417632348023295388889913182610057188822081681673593940461563786135237349149335000514222210933286393543036664900402480053407186620840523000606074545988741921275055173626271519235656037250730782818655017360780740371394356567433788260301664518581163389980095553861954090347214953699251161143937755831437602777558628502899477120279774233428822649749248284584910661734650295823436247498697705779284402074004020637485734199086986150737001084155174508808565873222730939670878080574784327532858495623581469509061243042775213042730612936857698544958819152395718461007914551281588416339716917940329333641832288342535032220965847098478363554072271943639841725043202335476537408409740311241198106955994857678064785914223787431862880627547288512121274552927282646372129807657333554750881183305073775930621077770040881924822429285249651157014864638097951822551882539874582812566675157004549052119216166583211697719590099014041612363552080948845680291433583884630126406499178624259458753583058196781893164936659342334105728299429338117670477030404780307840620886574949680602879458011759293774608628943495861871898013061057378808859713478431817333192351082030873121661865012358496761312823615676523066986328792321161546736517583949681693617783735881812480804115158574413055836186056374125847784769906198594823558255119650724783981916871222204705225059117439533704399163704056406012617642329209874300035434880019855822062761179835867396957960562713934860547266513482433613577292128194499352422706799865110654067750531181487409284817590715434863989822601901623674942282349091647476571210448625629301564284957598190949454042400578474159966641076666271774215508364451578565461700826474932177763161647698067581518455763825793763722509871685383463460020150079118014966374137549538244207345665357880935237761269673460124199399548157243642776997705929782881560689666438940299297756198800238655081313832548102192997389395048381969907076638577233690912234846026588489573138125794614516894673224315784530499256778088053130135576786826176338235052883156218774774881635583493787557760504433883422501020107400549150235801214918833831169129844723302937638834772145575629356339704277457946511981570488687316672939144921234865276377531612757790738904604012482282573632079451908244701354398913205242361209094031343870958319903657118439948282508135904582828779586367740151339989415987525021169277312397451330618094971493271530741517399252997694818404280305662856174765900020727686576649466448758899348341461017182957768324591170581001428396190810675764679172286532964002254636767246755275337606814282416163654763258993855813861323868591877730840597309664075771481261991904636298442837848144544845474383949193352690049271004896229822009571634911182430285701343547173507920669051863469888484205181004728248148282768155889661340009548155303985120752075728205697524044547179105572253968341459518361479939089947038649444856615404620459170319106749718813239699994075287511087938753489384100149617805001966790864390454624998680529085263201765690483382623653683025804481634073540341307573175415532003109470188489287432402385971278411900326605467053580152662015336926497055855290391901744329499793122985022104483676635406880834881811666356132007156482051146152259537614012547888301077862097319410299781679041366931753784574109141439854167103478624794426974877686946169224649093150448846122005793109152721238963050292336456632863914011113116347836912293136257703647691642270014998165746593608234040054452267882289519049049635945485297379310655773999873129150335666382286168301842123397695692400551065622719831611581909269084143990599806204104536334838882998112197811461327012826420133955851938438567304997160802839001796167224979206963932086054892936783305791808064536385959104895985404905378019094943716830722179684290895841894057414564925808022401216556003286659472536216137407551830407614839538288359742728984047437256427083758830947873462876839650953645320553585868470500684009730670165308557259662004820558275009171414812894821738112099239497054393561712833234329739761868063905752943753526386404853654014166948038813841205546071681123205832616389967236927005449616326117701216999603166421189996652584669571271132094232930893993911422941126352219709060525312276415078530125119468471382530309974219165388945140895478088703770023439233903701430879410307241607254728130600292950776144577435105126823365949150151057813072623856808758427476657831862044103566089903396820756183530143017147290662697635090870866839382926656257172403155070601643836990964754756091334355275299504240369833149159270915218477867453304987384009315907179241542070359069884085231232746545127424782827524166674375046928809422256062016669185499011162283668771964146098462486604269285474127113408211847601512321825189239450845157522243803167789091598169763967837981133065005196806877951553817919094641625422258812972246758182306201059717171525424081129657612011642829536253877794440489442313539547249143721530100313942087806952773033110463263530246274119507278193963697170855773298079226055522948580289866046171593811692374480410438080888108292628467914658736135872950281498758983067844648815698006231431534666949261323079307078404053852342389641127097847989230711777027688599028355432514016143891106350033406968353068515575719856567144540735341119900701406318739532197263235980758782782632613002941670935639234992609607025693857453573357880241343223188615667890143642780994689345747457963133266030735122971621879061379712569662818849860782019876567878190908172522478210364782074314501986360399838825978138565317995655877893751422624216401113459859717705943921107076704562663005447960238964080905166432489971728158412659823321810973428960478621317912107401517518731646268174047384970646505157305825365108481342763784972667427741183069936604069116130825352496002216736734364905409401296574054422052459379618292053282118211637334666791326354624372917761104550946728529215548066723473913857213876362381177182892939307775674881895727495939677200983948627431713142348559134189778248030333283570855470518587896965512226984873196267993388363575018184095714843669827586574377813936050165041305009058007831782463261006337247072266654871367920774321089440654401479571076295294913319602934672392051528797142609737129755240590443536267063402879056821636296363549081547339284365857637066011464163272392044624733654766909485171435845606705091084068646592678723147371360362615080377567833763461932445389797430598248869463258532028704441309957811730755786751675835520581827660885370125328810819270171849179845214790688918421485377328072070749322652685259003323700974324188021304943248459833105528479472957801344793179903207373251784038870823361667387259157278126412132379656261744710182187299124744598883815252089968932802527693913661813906224701108869696844189043473182512617670654372644813156898403965610525167986583948220464413305404905277336952865997533284985767859517335022160365483822543535083646998862998204390719221735152634120014795802927335834274399002576991854471031256468322842395970979618840700685201493524954663519431416590343722890181332220843581543948546803473676764935495107988759175956100430554798816932515062195682847070516409536596773940206259693109314068905206580422030737508711276645582309187632233880583475283314822041796867653725041387344240675129017821715177498046223357262339893784210303113099892088338665781913859475267437744169463074230899847689793472806335449717224969820407469420444190833782467772273327646036225470592822182556026972226542812518891714224851366294825545930336870227502154097816784852994603948435710596763270551746074174396850717430324639014205715807031215119457302838241440970540924081891498510372953978942650357343641492703986492668611673006065368760546161525772309301344088483987708778908635436180858955589935727873676080254962088978689617813183384202189912827713324252714268177217949870644795441808930969998957140648040504535190241802662299427972342016957610582709468410304182929133511685112974257744885462686723407735849165097774252852718773273122123365904178940232427826626143465496387146463402997084776012791143879610876642378092538666513970669119445065544964333349598959283715814016656039589266876260448331735600571380796652203299346511545845730080912304417090041954000904639518537658512277462419114207039045081719157302251863778811033889995607315903924343192151921240855984092078297655188734928457495203502527064400135844698823265783614940993451155771220341825534088294857467868418432968161385070829183568118352854981718876398814943380339533991079194044217663945153371343646810426895862445299267018006864503182742852174624050211236043253057494361638527422176323028594692375888086543141773850510957002151566901541375095813131983426686083474777817841461599677316988715802877139928028904008233291975845120474807260798364629797062582761325539700543436768279796532427229728276792910262543012729041012561251949249483488706892066133291230624055348097512731308046406355655594036586511965173571070346706281790460290520892475672983644215879952779026140387018672142488446185545292222650442216700661122658812901300432245722842506608767874113946281604743940499616452044005911757412222809071206336310043405260624959989155335344728468349681784014461986136618220354573426624272005200757841923000464283394932062420253148166364290749822777518507170959748899307547408109685798774843654935357364751057778487970677932211134349086635525976392351395901919137790602382441709678597306842028047014586664527827768552363057483707171365002198582105320568987857779672509611326518301661545270694770861494653503864494501598208245594306830930557584345877580134696801573631382842003248794706467179017677053540512457492071466804695574730825197861969802477952642267095754778737317372978532548578647719840392659583020343728337826830113310329658366364578188813363339759917564783310555378696992066499965195087545029191149551467517175776543171149389947090844952738080214128536335208725202412337614499346425886949472509312655437099985359102754575086347537283765855961429202019902591470353710654135651150223761447621988261663367397502421904951979916380333703107282858379587965952342638033928948914204295960723918233121518375486845258815044921952267901152632603946148567162277841340456935426511787129712866893898165305010230262230612766555522188326695550059172532520072811852777400004242359793364810795387466531053844065348923575527232403800694262967055583596301119082113090943856374293307974591663628995579236957255717266133449304624023924447046349669475994196803964395041467375932324041942342115940632290114380895308243044690747737588084240883451258891999104211572780390097949778415164414399322995121314764187011576514717174229786265983879535765457997881218026718649409956494881137894871828936080589687514616246514781573654695499979710360645099341468645128362778371684612798219889167669062332930966124517353525468953776979224784086361066602740592992412024098461060240179984560388843982303367407663409985169123757408743483000841631596763997768003832882512335726042883648940166381387448423651049814004686664234923017237403680152506319769976756424564247562341037417924152890634035719931036394585015321967951124556496556007587591798562740509083417213870501504559320986586043589407423438446424238865804124249373154306551721906325921118776390228058339172576952049240586112463697397378519215251926285174285470498202144509343441763608947233579507862343383177371614373306774273562112718657868291012091508684872996957105168553261448285737711024513537233208438568224818983992158406373647247943043275368514649863236740082279493226155936393496287868257386158582195970526230450319352155311811956183136607926240985483163513321321951754806330075086384964435541564179931671615496158946666385819871098940407723646450334996732573633177083365588253145308925448074802444506233218701389823795028709218361108919844258335831115979972997306478776323279063753870287848276783034937917970115191381831429957183671935601513718705695555887784542635148460523365365204341977440412165680206895008467169701377428664086664573640920845103457464127471775890512989588588828480815632439619938417917634975136057477305851295744861075309976495225137344959566403968925721183311864841552754877410449277515679545460129447338039865410057952320057647768435809092058450455253106978483200362986525596762475227474313239130664397082984483750245390618878054688501623271786498547836069343386008997524459904650178805020634269063398587954580942047403232953829816268771510064845896019914495885923376934624674068186439367158363080540882687264851807126943735002919805891723788536542492034118013778458027983910644713454290980261005626368769030907846503170793356591806279683959257075578961712041888862477565264592372551752004227191333651804066791988774423926304970499860886902959164631370267875514415553177636495988223257663366658063793501708566817334914553685930017400479087299310964240788482455176481994212605900770563611816483938674360624255959769087452427606585793140337795777380195926510842428267348654689204772135809623628687372444346078786218566092206368576896001502247836961104557355024680120763618299748639352070488067944543855540201544720358009358935919584817524276217795601132087356678838441081898332259637931114145498209662576098868890952321486726909720105493313264160214068113866236015454762608957503082732468455939242981101780342448455112498361044315784504643352538813159480044566827006546854056872406633176143223951951841095407813023361788673652799379861106141300555104449182294426686203457229726129897379497664914539329530919690504893421453201795298266823386236654600933788166291197708611623541955271475955024751632040305871620345121694029096599791875508473259250049863235802081079313608857795106335017362639225395583885916642929903059862703337328771816865205693488461765089844434771045348672511764902782654532329862910351324500224066177891827648635624066287636381189862452164173821565918200653599569941759474347171802255699664696932705150162315425659053649155617070525306637340730152409720238772784039079684433326987867352779495016416269141253204109037469524701814307783575080009341863849393747036190344696065500706352640588844672104594374665057216779258256029549021224318297728778398594824019402942539400818651966528987659363134143517775176719980356378601764671023730801324596615793895497699970515044014773990890235707293845782819000792743798571386540548323962254011380398710320121318878001667715579720237171551056424527732016378534338421490157006944505038217193290843308919590851731999431076591564266303569750292455928466298370308550541197875089426862591626020064445061357734850561761091228397894632606773401292048832033072871577425286177441141863469923335218232070008300167511818790805186983055686047320995851296203626215993150354530485298850950360830783031460617555972564423060706866549724025159217470907652723249671761938868250366733620498734469714061337002699371087213818185476638045928162862559271347603673474121283409023991524395081116724671197321655962369175609450304519375471296468897093177944645978335943841531698777603057148880660579322296527905567055686841901620265797894363674373967612417918873014901169980973927673871365323980050865716242488992759038478043500054939053106282835867954958519621174229386715560352038290316493100931948447924729937100347016142374502731428138908691404720259107196494965068759517426722478002794959209841050075393290780805392794133580445965249049193819875268140691474081724338534410584860895940255872071430968265876277791154172138077854486711127901450062504255354872364461675146436626029686304810826214325268125264624002938499500973059393142599457667498988682000697763128217447912653792507331121907575567695838209266790556170266428164316931199065735892063732508162560319229200298398165083546614201078261344084356209576804325126188514698532856986256548112993830248138093120207761677288242646016849788655046027406131004089560180992860432351371949431112480681450267862965053275147981081564286679943945449850741875887519886566750822319275030234573566799811932133955130317418916300467183899597764547306515398265305756054786451365501995077113718466774922725825999088381039427728619252007001925553830055364986727864769506303588932098272187106050846476561817114228017390974350078059009390451667209919576561926905073777172142659249083687184855120854951523537535441746673987677064580039624942603555148667093737282263015692708377055848702204872871459154949273941662292913231077970522872144876497604249398408406348220826103536326581034251298562928848167529029641476289675115408858412313934649500269630358411001556783651649457897945856067808613650457600233240090090173273716642802771150231810341728604035064084038089748439479701917512759052504264721963908355348568236806031182507230005136329963896243388683135353956191091877545586468632241491891245761395928376556194449772772044344210757540035998871190466313270696568157972843973061238664833787114118184005968295504750523362342025194112692363960381849122939623470260880057311799300892390950030984076108923782356922504595793604222351967802117390563863517160311503938861381548546742553278088465471750213517637021698118768731130130640253601951524605221623721605198248203997934929175886158859107075562187877761249551533518883619433418599334436300645693651948572047740233487288533462068959220794868273906820306989204494677389518090308146378780493301781672633646272785836851758872893291728888608179280366619665071901924824062440332171059680821114309176507142020932176864358805593186069378913866725583580536834457567696908473884169281379944325127946435493071052057773855055092162981192035766813794010204131096964466230665030492251729111908494674648599103119267137236199059968029968807041592124604853904765997665446069971788718458138105403153471522552024103142955852227880312209387551078545900247063295237111298273703979424818249987835551048929968632626122968094519664544975501634929250965879347771906793281295281695048696350139145172094822650012779055489141520660778171519587081647474669072875977394654569400584717416947765109218198932816917878172515061105056360165612060375105624817913484508965846398934956129301263550099024126682579879254109039175397898011536748758147492417965403547643910628380218001610132359428350517366950931063545212409804444655044040648705167618803581049679199161571925189589996750048130161707091726352854019110199214869643702557229380091704615541898216348871370237448696696924563671235267160780018299751574146986662428402038137933277619804301196446989420427574119190131888556455140165992593895825003765843383279429028638413797741690607433760429471138202789294802008117728425011495502247266753345786880751975325223353942968938544747269053208835860932256437465899207749598903401258542997354648710015447367993059716333299007375428624090604314340134008360900276042550614848442989690223040985397124924268708973767753976317107784128031187485710073860889643175492242641061218017936242712788509368447172448510519758492950922717804457269941949385344157333063424747900881233168650517916475464119208229114684553085912598021493502236393283878252867913305221887959869385047127530360830734165268599036387618986376502801356438578884967769490573505580176029484023654337277929517510408127736880789461541801405313612809750035592335513650639335390991533667214076865781521474744563857303076593907841069552112208715795486749882798862030776471204833516060648660954726313113681103996360968415058473169749284693012326492148973988430442288241462692100087254231190123189447582522342698852823794235100957088422952337183486702041873498095458911081717888963270549616236952682403731443020486707353522974602695066889815361978931785426783419940009466303491528129443788005423260296792936482130771883703002108181432781380998935287987221396863376286377919621698108896997121871294482379875165921741056721357373553822071848917392269095644508296325423458476901036476442673591052020494272509044090515054920971622430161355542008167451418187769875878508710071966951094178624690420148456673164618890149989998658335309923599506789351344764824084239613827897659644831478757125899404437752442405471051433539467245853633645729732134848108548377378879400552635958555603768129110025699987966241781605831043372972159823051544580814662623042541688619057006607674434945061201095121649966228044269292919404711044082387141193737616768110487503424494035157552594999291826829159495183463081981084866446664336552476347677711417122205996989797494813919873444140405535977753101377079873233542191991625141282613570822832538763615584503820500465477444851719787648070635635394657788314683079132718653870793695220021733085778434076217390183175545838657875498605642137731439242979826502669697187966794491966095433276120173921799127830975232181447201755060258823020140288646556295686733119734732177168275852694736714621262436194360853984683850516802901806329934024670053806349260669388194471652574928085841406232650175806478962316763154390812847608536782313617781145635951453743868327559029545917924827902578199802158376245444810179441911057909254955837410947505962968856391201420115175594637750485410087114161805405624887275406155775983164093163839834127727368568411943899180311771439650438816367200982018955959957898281739342108235333884412410685761218440748510926420331875006234755978453668531280359691100907338745120835519963493794155545245842024459592944486737728981713989210722570305524979117846344230025141262065440569960537025913845079245826779756524442001828837296487252217019038222387081446185759683443318828509302602769284135485993298480372141396726879046223030785054865807768521586345461777100403067524686597492232300139125859268251732500196007761914500948258725928686509411315730195773720495604407941106856092603504798950459256637560699368780281978035348848915427660633068366724533044930428906276530873551049522028429390278958135719934930949394282693571136743492668631811570420164385008458756543200234532774947310437370381629956333614022263126079833422573238072800823369135744130718363680467003683381994202243649898437910427996680531319410604984633129409918868760025558678594895600962418077601980994219223152018238390562610963635253524513029206080727235314227546190729928250091365275121545704742899216131606870484405218164694056295903659341300015427362456409906814734199147361435901383008887087031119025056559110746397072043320501859879186304001970852486930086929469721343624148055508312519259448427621961408185910429777048492478766443840810176068674933757268611630774422063390351710941548669719074174448497385543575817604596109866559645122133443120133170259138552116805063603927162175913572630139927998070589616476898035397054592604465232036148908203639606591870947075043291394729875506308620526923293188268904127814025174436786385320416684916598320248060205400057984843338705156585507010342802885150623764447389426645228491926199762395971879737250220656939889453104274023882570357199631467704728026143758988880550393849279937126333367519169780980794705031043744883121386258039273073125255543656167374370600406006676142706105967944408997704106092317539625179399577335982130755973215242256726933764215468095993567918899220730167198857792020933729628772858860714217091799451045303893309411532502022463729670894645888196251084030711275289612786151471878781107872674748923625716997183714431480129412729112200250641485776300229661346808794521048401944189105061869781596765068665235136125936569611064775170237732269342315176634488864517987408240706788218840907767318411231843649494462180747056362574188395421885042250842503746982437336952297903913063093232247821263278325315627819345473081202228936563074414665217949232828278324329516125294037419876379947858264497480192604142832251546118775912997441789015522459158091259348256183856997682545929736723657738295788291617941008427619267207817334231992578352001780847074290578810415971581183849143346356885426329255775755335544861882706653577077637946924762862533404120212145017360190047151967021556900446646588843535376278420786029921671889342824220547285254758519764262408541403649122217811421445978700459495751277649870103417421156248219141538960632194956224700707251177122500948799823498436582097795774660206853026539401020649111552820419177831350089245095443861004407408086856940358839532061029666971199794801943765697192233033195056940703217015945592332305252928901814754616421481106606254060692808440728496626042737963000778567801352300300295508414282148762699298956149457600722168058675153430817009528094988731621470625286970992443996804611633582580333762185368602065190045688556445078936710307072722088265686219664723761749797029862089444024170218409932946732235298855588294444899464628162162503645627077802341803641386939792804185622172270415385366679089163806964625783651339938144336975397035072271261742420930864129864211695467460225137633713509628718151030670531180983144317246457807360429741306296133260131488285146212481314905624969918625828602152763740538383135373472985066503633570598351853842991564808944374454970544050935433803018735945233655730473772418905593028174489374991378128515880531707559533102755901484041060818466381351369610649133074478372153071825985734992666994559412599016696692993827215361783095136056125377393232317911158440372264393135292207519918083521120785413983801864521757564944057232355223516949891652878247716663447397529530009879109806272604627336527520061930753578804934788720075567472112113557901818536097260809764683796484719229995570590188638838630511831799652749252233354810617373612976747676271352687829639867524604472056993480034956569119627355334615127198027182932575844886863121675205613020297483271830018247280543591756453978212839725937288509246337113945218155942248743421227960037397019718459617135406061404660122117307338515366712649777093088163189267684460453423559747943163114021998464360893348561343630058557063254075637109477720899826577876025283036589664107685919395232701670090943773638387824122374649199637604869753863466023427866199003090167442533071156537738854565067694573193299261682537757226219465238691357037819625207059137970759863136358276195432722320199509758406603351608668642535882578579191222547246150087915547875256850176638756110909760475012429543660577604145816488509715429984282741743560292062107473304948365020234793205669760240935694766880579170720482987801387953020660558834969529302803015180895703586935061487887742801553429821389657149882029160912236946361662074706218425966692339065185343049914221741486828405752928760731029219457693449396460915667002525218726519151949203927585014034133652394830563483883637389262352129114333670839211805841050218529942337177461527500185285839053388560841532951785098590899986130000654150426275218552147394659848650549731340015391036383399417252338264258028626211348319074588265472255203821368635995019873095405473004507943204801536960039061459143482322799733243670820087755928650891469600979940824866002978140517969000065613027721496829157170504173301029914266463279538319470026329970066010598842545823900500653291019195382705927689321116535180185608093314011258170559803366297504607277242331441725537149189873338209040772159895027203240095279912894970784688980378612652545428065102411027923794278375727476372739185989261359770208700581700787771799242828480108426973449537609413942513412845683861457314338610919179357404715431476529169770712664289257941302277629281720093695487870566748863609202410365121176391444338645600040137733888363477697180334882708696936316025357265299347126844839027777417322864012614496457471405445442077408824104548494207356106575368906393960556606199010294411911113552153289882237579926357269689853299555979709621814046807570897037322364551792416899738367594098518714939164204422062264525670516574202485201763118926657667520659991445076651566314743278800483984290687004800583985523651436712545489139180375361151879950640888415555362351767936489041284469000281128827118797087070499223426617505227837685538958228851119195545794954474688285650223582628755196352130719059559949556979762074971737344298948759279505088214768415369070802329002076354543379488040935124391802492443148728371070927533047090447386905140813792635833356435305539847195615456871511633275193027163325557975363672020629910047377770385256184060640047671367051113965451087828252969591758101933891384164571719531666965063681992704361815574202894436025951599298267686298428051180783964855500065573389840964706656367143510274640235310133808172146444230282301875459701093964752809712181963795753025746834930220450275706256999324513231607434488135371144344004161326595041028490347455590813238004729288775097829464742886013345873820099039590561762625763128579656653697926813911471168239830481096135516985656418802671533619568181707066087290338292171849013743542346874673481776935318023099579078662435303688134838159114094760165995000151508762576222181445747058342464152701658685810125961209483908703653312036658499834254151670962292208238193609638458723362953612851930204228768878723677393776792266803105209882153513139849610122323793931049382576890775424533313584964869312396574482747358275669300515102055361193342190753989777260906013663102926694484136573679884385009786302138568632343340805208646200010114859864038191505928881417646119759206561763731448285236996168070362276601661489386465102911427162510302457427155288949525804586728222680485652994123300756645254135603460874889873982589545791157145746986190193817899188065610493953642380958884043293188036438202631213502023502071287840519770960396016510227764336295099996195209714609002248317984226125531252312426601675067360506338457630638752173997922662851314002040461088806270623727239431446683750474319925044644339836912602442169787358050583884419656411992801652339138524774098348520054782722845784140104417395595056285288348019528327307710047693749984387490011509348542138697106781537211638581713603079823889240026082324707947540809278450715831527545565548785425832110435607329718488215906775202290664100978544344841192473375077061376080547311329228504248974911389285364315184138699418494030471298654003836913066837136757135520068114497121196106038489211124320452174425423511595469032457188498610250040304326458052141561062543790413965114675159116818100357980269608343248465994586785209245203546963567356400399894112490756374144968198996947730026210520178000572601687716391141203688150698312646726609733971931261540693292048697207787091084850559545661428624072567931423535606833030950433560570122476444824446745451181166552623798758340353959393517210985662954998159688328654938447592452282954250344084708745113848476295215892879502412989809832019680720461314512861753679707561649386682158173288433673125696172236593176082581005132868238436600539378143272888714918891962351341588983578021028198123193259138962782234940273970893551027034355486486619984688655354308590610229338538649449000861079190232136028608437213630449530109458042113501323640934955543896066326089194247554914509086483782461553746595511061232438647093182641686939971821083375614662745855965552260806269792990534206652903062234746613895675071525040864653779947326642931677301521414741096670056806167189215046132566811593479354066851970552180780835387237628859257392794825647141936570357104542540621256424647898987470438086836933525119686524100891059198946241949359200781177227016948114000830256015741731381283224273036432347934363811929757972518981604456763572335180167038916413609664945467700680850122164802912395161037621304039143684446283826197919351432645123089652196641172483744280249397581197778744343544928511257673539736055412421683621955622485331059336605492768036245028762785117183477358381839243978573289176403880269867250287101718577051736625728411280645610073615049215185722632510297796710445807494013351910034353550282072278311324211475006151086707355412187170791958050277805549782669638803887825555982503384283250777949025974285068116490977204896110024753281137413647041054301753925884645263314514828417803375135980617628065315524395728486370848864761177978899340536946119086970347766987130028836238534323863707158200760769794934264894696694191838758631681500633640274911447621803777290763154948513213977821384550968635293973065743453192346711705326650396748089653302256424657521242630708136435262722563684608048096787002309707501600408394153265737904755376018603515181072035752003687037900939559964924174357041709651236803027432115269202600979663465770058036953729700352140006259877178185989142892776038970265995283052399393503779700788957549367785694212159243970305789492187809890913001669715699682770646220580025272749115590820944268662937357753714352939668136460588290970345528627913883716445856564239339390915189177640336583200087574242365611833785253719726053307596981052548073982597167382758893578240385604764576513735036305642346794009854704949413989258060239253757628864970425774051245937538103199119727403513110013464835711306463734412921535903334304943439870209397003621686014423125638176768466333039857462952078186172929192065711899708011340634309938323788629182454388896982599219609503517258860671319608813000074464341997683898997407196090656610535729992263919412312294377691033670994309000867655654789726094156970321259596558095394025786933501591480433311729406290458247397917641561772271952402734746368133771891525934517913381732780259361744869195166165673753847649755072844600630053585810578514795166964944876406267286970365502198572620734838287210392496497382915784107078551204293249963361784198703015706674657311436432410098987620885188851275946171581223229917383308564144280716468383335818647125312970408924035124898014703770956338190876469057648613825200083369540517066923021642350216389419210475278588924579846045855200984450326988458531907869067688283812292270103590251968279848091106121422066284394975585614191881717210358194873689427797286717297647625739800464003292366008318171137778518040534180496384165559890521890329424533662328846114271429235044718096834142662381386510482486390865644812550759282049704240681359725315480245345490327559977083201221450199121642501172381412663636749292440634706856742132822019247046350496882973183883256868170052533049147197921844765243229332722210031935979089527071127097684492052369392185437820237228786760647754857450108598760279169498888273576495034546000740438757117939092835601981906204024996291767156485762675408201983044505900046078382836382340924847321873189253649904947991947516418867102351825190042181300658050740682392681821730219753134885061435298961124180800618075784287178780628849612860221918440546409216899643917176397285207820192661193842850808507617146617269568940390851206993558568469432259126913289624577389627139196563056754541453873110813100662649967552939028802988052229740151136520931610377527514008176125769629734143294365614354180224035061353417712708322600467238693628752024604275640339505180649812863223626641972391424042455773829427967755823548287773741503071323284618786080048844557570797587561242553040742785135595499729747604640888678181229607956944262171869865605513963334007408757650452791788852136948645793761946185529891871115137571694144557384271221630017236574788053546967566919159372536733965203618926323168269802339004581438737914592068062215690992579030647177513481990376515264322730076874337931866772157335163765384909558233577179638768903617675375543266400147869651324841767739197892660282053533745825977778986651964490121171150900993382245127427627759854544416222505733245156672274130923942366220152469046889550264272508679489727087176988748126023511183021256165991048617130131610541357138472969664455659172440716245927521796500958019635416932277389919514147569660355252905031000999307853620615977670224991235043796828718184081443861327762526313828027757917708570531188611620778273508479246867985739107124205606102710868907534501308329539148460542677114042626535216321911372557100593037525550506907504369125530535188165853509691582937167030474129180119145460256681597918067682507933802380316705271587696508538833472264730638124653997173234190201652126703549451483888921706373094809066083690721261645274539321399030277615509312680879945629892239890834152833222181180177449958866046427720382216607034697518861235552592585580327884268612439942505956145524865980600604637920161207138249371890684511203902265778086938116701009837973100979522368656376072325178456851729410594927309610133733539857412366413211741910948549678068572692075838067552232389399842900153539635780148061850746807257734907163909860889204614603912706252125420388221343746014889598092156994087145030021493150944536385483740592100207159500160832762812635952014886064203038490082764122201868337492809744739693916419359081238172715831211782545131351562494368608625816161094895275128956876343274168550385034026047077978294051081408672430937837780987640821986912685250841602398674384051181465941642652292081897124024025093599416507359942940222525778242785436076846777717531199107231372362014803902437515948887090788799704782199572260161390427542226641356504458991418868793542795055405236431994656296549289615113611092717309211314263850726171159881123718303127626062730094329459439880940784106970096874098230265536125329474058820519943614460517127052715245840222892466087813336647910606850010578089110532636929117507282260881114899142743383437793994119536928304281734083440767183373306538947233507612273972012859950478229101053024883429923396848863616893595482711871099787128448746049301906072315133724920448101444534418238413783205655138010923196303396191903130986638644049338481080328012917355841829339247421608085672327562810470928151649582057712214853351514725364397731686471237951208511514977634995071498790094904350078014489665052210523747059800189758015807436213848841575684179836302962476674385988664594086479161650613808794463478931276453561135775114951821657398393262305873297421464604310314768006593000869910094658541339726152376887580596007349496088252687411031350101645105265661592377117255312473043694756517376712775180313788130000218530709028064503784867156066061884230926943827275627170890646300541541033243454331007342604787237348357956629891768777932169687553803133627995946710196126950288035813522482844425494052212000413805735205391967524073451099830674158627412500761496676080364628861559725519302118081633835480839108291591814740435181928671441901651364817753902671924860152290765562424165916790917380963203454952226833096100720524994474087814869594381928839884170796744231041443227405898569019861084387038876098818741712535011704939584853976734983599228294454496236178240264484364450487727949150986143517057505891333237776141933533471187980392706659906133911941042139810412316872648891559986455852938238397006059930654417115234899439248001553418532097494387150384233426939919970219891921751758886876801594527887390914319564125862406211538457442275547373947503379429299472628516075447511368244417091637370330806579112758097289263113760846826120064892073785260594713949096827446193680943281521994620849207620934948265501405832902617640734721187991558170987373811985446089983430555493068000545773989818529301172753763974744127132559738552380993449083552307934708143500445609980490786278105314983567247636841773515393767795992994817507054023233593958866584129056227789972535747734223963896488811002672399099258231824953594962555064968541676757727614059727656451372702036305415368235281285855225532958672321835749163703406712792878323965373273667402891129921497457076811587284879998544415788658483309359840228598418674651740898236144517375594971957790198777352066620109840370851166667832775732162017214154441577357426837252262435493482631919596123475800665285390258800248810007514003842650597944794789290838021756904975963498611967564196531981138926598261603189329173687849440616523794431298869866639491669153765494991586978514629942094398959061125183882018434265720461819570427309221811884820024547940438868648035515463923111846076337987010182735492133099908485602765784238120321845731109236226918367256871745694558550417680624169422561364334468895546461801238686107147359554627653576387750446763255942232394150897885164540586979581799642310208110271017089841077838653958616854113266309993170566869319511362075074352287240509627193432209787326728302322614817484351841744190873499325865587001132861162020805055372410324333984500418177406270785961670848273815436245123076971489701218448281947801985784704220291012380472200329731677912296607940717142332542507123862398696794117048307063154254667789951512397888036343625475335171828090835077457259160779956735934339343379774449271943599728751119310465926170890918219902698186232445793130459008034190655427708245547373532716481001963676481967394233791091030322117827516297389471203235889352302922483624389670047994709136159717938703918216200163107591294138918891051530791178390102395036298233120537316993428677615839747003277605428112116201653961840254322464740348552922052570507296146002167957318651921036290848336444958434360848307442103197729839552516199421508309889774437332172268208454943787869142357855768740643138027217678242424812566305149152097022947418712530838640185788776833883133681679604220842631007236995632130296724511292956749275274076195284179567014134640484623433377499085911765532157980327167194519300554971318904749721002125073488943674329921696384429212152974762340152327111781365502962455281729477444920319309444828476560634606509232049263873426703372108193268042576810894977060142683170784979898758237210685023144508411327506416334065324606255589334687257981668454772901072693430946464460270400743951141363295362047396767872923747756869935678430564907314309004772705894201632553872168273634405762688845424312434224522988555904066266410126568808740613667474577865044791176852242783967128255602377352026271988665164020607117742132717429433463887846763475268076377937349065254650488810519464442419069483688013775032442608566658531494723709065807229737746810831591883131357359957327912693875060701368825680435959761233404176698670146416404581470270553908189794376723222320266007122261550557463250589689987476748331284079231143018594513067394928485206880055489956600242575429511622357403162013129672674666146536705466465460707517327350156486941673385769163949022597023005489514764396968506282026822872322253103889207045254276525665838976132924620333670064682038820950545637632221043163651633143196411505592376158879702634703146844601100699846710202198032828430101033861141288056371766603191260468387304770914619937893731684059718688125897613691703098844884479966133609277363837289815002668230308216058052150939586541040871700154570135776298524447429661957462497626861457767562501091208167140054980093659920244762883113335616432387555978629171029662015834013828740086999985779247951096866494296197317616997039568299785932484703094370204888468834495113205251986402861912871513303937939660625222674989244192943187201103881170585446641033367425793380992328403852205886627756515716777606666210191352481799910387325933748101147428714264225595943629923263749808391232295867154754863862007264878855683465973788343925759353193017936657164518993472854620600120079114498802145882839807385871533988528797771740335690778574788294894388017028594657335326018154476491160678479256519046078876370606470996629555604709745941838558816393955369322811682444929074886192980266105234385846972899337991389350112991004986272760880432206714919026799766113074274164727250025928644293972455610276866343428710518329078278697018984046052462992339947342723628748562319594106382238984722983376224633690282431583823090749077217393524400307867700392724903546873751207530799561098778133943830161566124672447511628962887306111819440948618579053515766436140468710271772557460283345735384561544593925408250761573648382889801216015510808316023035204555904907145918170821604107313894441158152388689178823186721776208392287246839697105673846861745528380630178819316829253102280605199928445487980564350790054138553854381242667234583782848806797457891034808948595477080352710969268669434050718968112802939298597166740619942998800294490159101450649935382636570040203350020148365244559424114475134758927510357596942422174118491903965813906236817809364470863912739521500412976579879803278427495891656792616216415993143768427482786556717566809130182486974106055485553554956949725267591548289760187286710354015629312084278524175583607972109562992711166633067538618249721440540987055173531008099522045705502389048731341318206297979347774914332980377981853589497043303361854233073003421975975732266401012068339920448781871426899248686886346991021215949823217107782758086535434504935156849084391595174898455190261907590507034740155550077260415431502532523700679613447653068844868162148341779695034099665061274850373082562224532577839157244175653208233387467396144639209527059348580100001177925713591001894115206502159209784139287076017147481312565266672032364395018955597465064659513182191254276259365300898239060888555550329300102033265609545311430387316195489895663878806800952130759633546709986561871035789616255257203295728927368756720178303543970477803165196567039191248277251714305126074675481511226431671823631604934795217887140198613208426817610124687333752475995596868778948229186132547781985822462670078627562786023264902519001573418218863271022663197120944704687715742711166535615957491377602278540401621809573617501589817286720714453418956444225546129354974646944355144691767931149390356206059354749899003060870170241201049720537899241102091399313476967020622278923536145712236316240405945103659300822051123889470948563952996936059091419733963204514889030514890795053602373495632386254562204941569965425830411363517712161775524525641138539395624306821007098262903814401969438934297438532577971616983872704667796705134149439882104496244972903192613167708381632244346812294294700412770671546171568682351530207541092202234519170304150148744329102346738836920779040386317769534107140129669751769847165150397039977206272826735576832607132108739215086848415970362384141040847762411725027975015059652110446981738365855473846110126076114123961132604883170165719506170203989646483057778377939815403983653333900236392318453774608131238642834972344846204114783771170522625272886882426757382071462635158296105917004739939822545101510304894800211920067479041304075471727989622735242911238060326931872039781671678471093890181389827047694532890561934667141135104997551080363488588942265707480989632652618432181921906561615899526391988983986218610900380340553491316983441444876656735519841600950236847335855568489847888025380504907067108030128395427050281541216170844011861449677179533767073844244204063167790196868043779399997817649257732526430504378911251445800631476813320707054891060944354391051722381608915054415536953656175073735591231119328133311423133777029654113149192250427385592003990929358162597566490480243675628606792852778305088043448588771227237478261998456059672956938174791348670079149535038903478833497922346244113192954504379211049947908030694709444660213309545446329913778391614100702046048211264617928850873754233540301869688716425629023266111288093256482710952453611299018313912099527970029237359895891435393750373791432744458909820587690603871577180644447382592851496900939042136211346704239191058194666423394345315176702751889707545057413445967617049387635750552922390004239348917245353363214513887200321010119305933599315209339797664224246811173015839413842602933451445107126352828925590038081010336648018170203604204067856159207481344722877756913370142073274016235126944715561708157721353353133843896188883970893559590300243824626965808346269617629145764481839426253365502406554808862927063975574976501048471446812239569322994012453183802722665365345690994108990380101555524681028830473793717227422093011686952273123020298855244808696294849107976006194408508651543671301191037043235979271006146551146376964281825852258621500507590730148254308513531263685833472692558422672084108301373208196872110407582487866057400074113209012729344781821825760750705604140279836259391549376390080089063693665195791418451475334841075843898888050176681647791674199479515013405545853974639846581587750865888193756044626290858912893826646877246294238874523392267415870105297643147702908835816635066312629712669999431029784118684320164855399529014821913883151552718885200969415621712610453649042734492463978575090739578067130361943857774376598413566372743750834430523172237784958706617563842469953135799119173330114767247630437640272394564064717486756261375408754674245908003466998799276687691390731552267839284938554780461413823750521073643383569159526367030152690013743831778103441385067455202221568011120880667113810957827468368373622105929163151446274471711156707597207710922645175505116660164291606807327254468797395915029101425595401171878918322148671223827174756746687219663430085102513749632587787046935183124188408125098244015987316598163668103399846215601217492138124764236728414315642463810466725158677604029826869639344557980755820320477599607954343505773598272432464292031428713169806179106074701812151466518006680454509071175757756803313035457047195559099358171382065611328231424952795126297778910500585487803148486605055463224673512266536034580055582260869246331175217496088802754315258149112690464022507458720994453430572923653562171262823852951836007518727791425514012403530676703852845782789033404493222954483203968642633986341301986719556693025253623692081859767814236625343848464189565760033454836558135383357798574302576313555694934397259450992757893225463534633248100412016946784579128784211945517574366839405614684119947259920615094340604352404773020742719521375066760092317585495424691130726528160694745515334538622479557105257825626028994903167575889298037778844286522731063329220987015011149845873193382040823804916183354051764914262722328243734005047157620351123482859405085489531101681388986884238828697491445294046399507471173819741684031824777804554944072788820579988069551287935994626879696402510388460474982186099180694425419471085827606385984740541985744765443989920034833214118525972668365705961735476011991311256658125480420986777850051983659443464116111941384094888181074773104852990920766733057777271369218544452224435837436924539727745791296997207795077529795612474273657443446686312495045384041514976504019866312883662972930312715746427427538055791537869698394834365936851581834072581375985115948055504963542383297057533008752410722581695004787156103277864160308776550431677259151300780248805011976870256256225583794242489588006011181173057197937093687737364229660055037466074877706424032562018407957150934489372496887931538834422474632479233557321589408709897182094606855418102193037803462058589449981365481495650735483203596819507816928401742240745388784557810468311052341751475221417077165929847324249219467194614980901635359065619104708899486980839222315693324553762218094181689583022582181046612110103375605354817733840123439794920662074063377965971372670175114038134922720990591390204288163447337093373185216271441083209823214043218775843051996827031087637135092933956085560573086227974265997027190156056330756051467105935113224734294564760551443747736021783000167835552974531824454427875183480840579491634793601027971545560956470389502291199645235687287914023363281642319259455852793681795127061404225733473751876478755715276309913747730763885606676071539939561589402740688579449136969797176103694972484838493366108044246651707359487528161400539040098326985629368214500344061800439512798888280666955007630525930213424816078711103894447868846283218214764559580509784584629046361817605310675075327480274952664083010942304259954075954881097613028738549121172125456086073560495654537859548610220639703967412525741497156626240716487644059355361671470604588147107175933341889578349150495853087411901256087303932956170180575581162612149107381416627903502194388387927422348685477697035280728611825378090639105351250740979689124456821366942056163897225680220763154380647122892790594140267512435497830816061893588581215297346565289354781037693462528443153957128940903873440967110425898163248757850102036021996447804756590734685487803748063060723036666317729521737656516357449750320628589944801757888383026289517234186986819181091557985394955458774378879385305847859850213484234733538240330002284298295011262964884409808749701350415222791682500675269433392037445733741574868862969992760709825453545848721191792005129812083197257704374055881885980675822846011197777929230946988655242251407692046526314606589781283826751209737348898442225075960848363060285278760429830985145264942343988285586427952500674587491516082382143882452206606668470966807810568139045900237329020329020193951956198184943015854974384665847472786455626707141504899269259125916855084895400058751767838070832301635607493715950788523070474213248158904615080462857426474013481669101688781169406623944564587998860806127507655769692957397976853169415405678041807966702020254428804059357924486118056806459520769946950800652851534851654154704083126980925835204789134224775078006413086503317622385098759620241318179279533916545609807467080424869647621056713656923299194965006828844017436747513498262008782645953866395303466233703890240151427840227324720741580607228761206981232176297049641335992170978462946532940528969623774744378090588075518959070006026327628023362896671251890699710645016965905294101029395358483445533075696173742671912279960993848798358980648926069679667869140999091489612624645940189159497018277458475893333612923718815646972715132302540480313705094134783688374618292020382175854581063994063886849680934420841758075703388598102287385976346574405727637539304699937533272949089937143961336081815934822370826080946175252041603683362384116377778119804040807825541265012500918970513029209310378688555376341175378888558229250312845679857388742519797291588958376405681671142194925427977186217471333741314535151505938152166472124993791191366312496135898421512709105705854217013329900430319729921957193443119124906313054068401560914408163854559549711856650166398190800862851378898771568080761523615832982632758143225212199887198535975025444667373903743097868976094473836060487178461875095062694159065501920197846721494238188752537611166294957964463208383065926329351688137135735035712608816049363278202192369538261507261372774755933566185151669117883604971638601082364342055976644188308612425739636329463445877569035803885149314103330526330205873487036252483610398314666049811790336077067803671062238109116098361532700956593160134706512428740755435679512503682474988204308875427939675894551948708302553798820138066572205972199720646858780265257237314362390175034354042435537225316070633896777293782152183585787593341916963018100715388421860782031927238148659296178309991193741948488585432946510769161814679202580390968256563596765683218303314877582150928266774293982049276521317459254562478086060774278770662877240121647292644456342472700834203453201191473813536805448327114016094237513670780433495509910099411773657871007380054397382084535399852924075028030146958461087845034224232806191285331186686430191852016787154758789895741372611117632071876827256056625676048917572492278708204068391617807522368375056950642399900552209462483895515309799494679152758426196780988725652794980436693877676081877432048184607756837919372460110284742767668132503646305523437366852736403857392467059981198669160001985865866819216102314999471105429688754718575079201455815663446952853914076476649395611157663533588257764192434469906240504784815351791691391612395473624079036872580447800796451080775608099022346705289148787593766010147903650960864089124501683175769330624351031351363545218416014115658131646665482222798122960031806508698999191222889731358363254710453533466280034737530364435258811980627374890714413782022729129328833546001097998473724958234173471761185541218883859110119674245013075304803840410392620662772095029262394700443210458245782452470272682783379656384786025806161473873588767900320927390529309070389431313806537599837391607838697692608643024777920022209646675017597688684845136681493119480971085956592239464028096507167932182251544381800961087527144264909617786122253811675228243500637047092365797364749201643671629706554690069097377121186618248668595286265694252408427322476453764460084688536280572625145311221827873490664026318943473736005438521239986256638571791975658184625959912417863900188432610246317932570408994949745702469395603946126148498290087123407029228297179571474313511216210473307386071296446041214997370741982512482355304816120468246927933961267037442283465102843120687167312803319209422236920024291881545571448628861612169916408103394945554975416099630082654443455784027764006109893011217302977499326423666556101571288987721565377315442312353784737929953061853008599191638330203217555334516879146856860079513821530956169323619536455781988544070028648007283308494223997238158454723887788443637935754882015286754075376267053989010594182081163027620554190740872274210657727946680091998551286914023261592418916075929425074110705949377369154943303710506063221383676470729498881181542214154249026000921992730852827785629590024409965063921808759786040754393148453867102666417859302468368356195563118909858067206870175996447997509523585624010101052394740541635532138279973647729587079111911083715777373618034821771228380847533558922180119142848334745185423962523995681925045945751776566486717218701905704546396244781918405628143446052343668363056139738298696393981111854881007202005083073982446072731011015104996168376032362725047736251633268802329655509740511417582726756603730570338288163339285340625276459654780600356022389478064959707963823645561256417377582577421168803676473999705168530735666461159422149763135569917182128847956919544984288142153731168035090977643145766749700421178051495599944875303590768171632779684979738083199496789877603505179991337061689625914070269901108227213592494159299672946438997872459209193707550031797274577856230734550956424882031619574766446936138105653810670706426017728477183388504452289712712811718273986185468511560619542629743618113937990855941413891624329796949197368788062837415584384151450989699229415804212306428351983956662862408744390200247446087883185024649571458910995907965879851320180115636762832081862149466329928720045613267437066345672276525086722818570699804350851852195959447500848095285727411730689611160213094762510904521065795903948850758930711263232067424278769400240097745090240949146681582739696275135322349813357948657351888593680244673489012182916096266257877782840261087861943834791953969381279630901721824533320084955593632026684603412659707449387871803355700470786063310186766592293760383693945887052604270730253014797313857633725103278004799987447776753784755569874338214323298475397007476768080389003214744600606451449834715866413920209952348240901825003963799621914124034019444109557432431776489497265235541635734008005444706041690302972865563016591907742155020982138918130609099934354132944711704708114353560487544796854011794134570231212905686478384440534079269809095899032626630915510706216743006005444932708527090113983988894454630785849033426283632995708513662139599921399048070245253769375504181044256458822373216098934221167312614424434311222069505469881384519714721185404458319397954485416228028127320257951569317071799269930735710781550886843569827426541630757423498216510054288445344406563100427379071686831563983694437361033039874051437758989185653268457624121105140054250444776839810942307636545257454851202504537791673860858197122570117617807604920086554665916552806484348742355634627753737271100735465892914078890344674806955076073186569458646952215443980088358917713828598370712794618551765842159386922417864157233961878081895274220612865287838515960099984613321447189278510307140799312731744693556311010602851661107400269720680514375486150839956069215927338780426203916901264274680354675900952907146465462237279415554008295585323390293570057484209248486257284262110994918060533142769137443186051951578693460439339712561176958552701302450213169695423063723632344730549064255966857922031281278958568840458322294522231755579335370590611016987288235294296495030608392271933588792782773156080034970942938729306511758818325573638019563354224704162623764989630190514435871873720363568707805868147040133266106861396783461893695744409946739453272921764734568220670567337487365306618163532788881112562129640720967832440062250483140238538227025030544978950821149153943954470664385896975465133742691119758105960801270496130520908311217240122535564730062184558479225854529271371246268337712725956312079707425396349047573611878743506222071157826477357194157119361842203984226051995099656596102848826754261466722869376657678346155128564854411783791256563060724881374123948923317589480434303578091412933269473803504017966062732645634353902400811913174018442841267801487044728787495619999521832756234633604175011002557137873565359923022601343323295225675047489670875251828894815748698696204007502182801713396717545093521953754119254408746868340123834718849877671760084269669019040399831215533917538332901292408231203789817732585025601086682562485877206066470653013366727702049306560847674367737726994713009469861946889971517580741357457665734415685711201202699921230065857546803215843352218708225521721554841143790022412888551275093162196576148669588468383080271763540618252754542413655117711377491411333797929730708167368332539166875446357556760984788729019016959113740126032810501208734468864426738021591489679091186727092794955733326184703514883872956891625217214866661409469115869731051657229630350653322622783951066155017036452908864621290455298470760851439528754753440734294379492767440755144713437050214010391942434783573813882914924900139152707520317626438241210440961824080609415516471885813607965138847854682293329624566716829083641277998750423168785707725115243092766074499082538684205301957307938585673931691753566396621167058435344234427545797119229706257491084421979068911502298416203170829077115301038394708289497735173747347779526417050648659019641758924897533849892810877342218597161803891597896217557081180809443632574622044467550796163911411183541793283467226313851220277323842475251863443479085152988689287998366514078137941743464556360343826095857221911554909292720498631888619841288926626832408799225625292029832214024758054015369028166661195542312825247317242445717275276576437031446804463281442399178466911377502521866708391559140628021735033513044918367831669203662606111632439283981210337750460052367280997580232293731005287034016083084806661077608571166305210873147889554069720735361040099089017315393352976626217266005525068076034498179216897088342683971524095118795802489858614051973155152310697461009289061212736983652042505535725262407861866818008779940987753750701580067135165923506091491640454012150610688547609329986087287349729851655841778406855522256311269712460051151987808356713196152613176181348947772004828073277019747123791639619122224604900851269048873880831737439103938645009527464237240162940455005122434736071571774689259603316335930337381009006132125722870931777952483121926512106267761976769234890174399897516063394801171285157777512941977621735245047051708192571689431623239691570836038546451386757669655303235626356687714304582225658876805892742242842289915321696624925858819256642009304332677123436199893334230368331802461590649864786379547498593082511026380619913393554955950577149758531409438620667740916895037250508742253061750484094492713003911764071167765268373693331959382161670575568095251606238876237270566868091727339781988164387232919897349335611853916258403184376783651277339146792027467362312024453977152465144102532701792113143037861055634980832234877666617672903404938795813509593584336620712278464543347533561678854917991824091619779329030914769847915420848006519107724965009759858003725429036494094069665857690752628034512812015539863428074130521985019958498568731976552000207269667791177583978298473795344025233606378578259860501678514005070446157464448447106033355529770817867123150352477238577235385874901362797846646250884676402556176306007328930679333748186357479006623936653773405506962295596870533665251719082385400612671192062813564573290102542307551482779687409475718979243763182172117051728240947706103570518781462157648345238982831886919120897465586739958366452814458444848581338969301264598447202165516273418089901727444576359442362461302584089352478575371590556107231175954263578168643400000648310323164085310282053049307921199483073754112828571834683402213959206934549704356249357052858716089621146137232921832782592565378881274277910524672240792316854411376952760150317863918541465539634907205151050391014603629553492886046466713964126829949455841633801307606835797074969691316613404517745379595498638355745376397433249957695925619479990608094823413327169536171660177339880420856378662074843278768656942401126951018221815540418149967379461049900859436954715342049437858575652531824143885499029086833497493661439967258997943205298400390369556134161164335397689553725469421333339507632445155671101877326273999665693938192463723554534833571701895506960704840068545874912108384177806845119193869197887734593826138049863210658431402325813894766802596282470410732243480833285152823848384281031541801483973053036908149179559101904068832642472014318594818742973757331462641966296726759480306444965349761551705105310705144676181283373631453652725096123917440813102810032404578118114766406037161579235554038540010823730918929039550009809777951233746112689328973121460753541482945817612343524097993522005965657792059916357718459402605592740129456180605808528074027341484526631266870548907945457455594946434699746613999642692321927982981569638084614792384698806018746146722893612110244990463449457271698419581016546505605564213014381637290229679703075330522393014522819521796733502145055303623854625762952491029944583520209263404344050329169937050805243523592230948358192045432843357542081435010424728211152004847690188702743825454010806135642862646798162781816852083736651551568236970878870075162539245187476652236809553657317906411099267807772115394875946505301919075172251110087803920190783725997084737033123889670274366900311656982772368584863917993642505340230486690731101152270566202962421478754535013909038254014936358672629321296366753441994123767031046214530329220291211821997476583941429223427895041373091641815585971183114290632065526012024008813436847664567004787449197830931863997211946643336318180421292119483225295873624097141283639899804268985700349645034105169890794466380994000356306343683702598479959272408303997839478764327560477180023552790006995727003068216970426661591235350389413110631586313410396657122193867470667095569660998686708861100365553691924326336763947993047318306432258600388163830868151060593625912840245700539436174997122103656845977024315658206489047338183363390302662720083845731717174630356866436021711993789441413837747101583333698525353998002219979404987579076606592474310209787868123172521088084822610645948305498108404628273067544203960306345261826988717103772406124989526838764356576398512885946238353765165368647629973568322128954517251323474117243168519884956390034879167294745477342479025322270219223365190265732003668428240465509951213081725498105409998946853046211141532394976123580444153896158573830488364528123679637475003814690294433176800626668228857228079109597890293430696634180677257972402766250575004076339689804996135823546212818912194359029712396335423148794503172942319265316068542022887880907641696727404306950275762050241966923421189693533987883355996491629319528598729344214639947597617506155189045698824340669808027955827631882242072536311794866869779991546314225671224028276928927835807639943296890059546214491919780260231086984044304510602462179070874427254443268169378539704676853912796791181231252263753243143125052648226961844254110754472118495527177107272781443332777951284188436381996366203872806919154211396549216739059416430049057792510478566384398338123214514919047786283797231723032463507772053800050278235685005771142282237232370670583498952710865379916748605678742978203318805713283827130085133341926462899279889847629454355251548643067986695967097508725940281323483169775701789960481965975194445443569119527493066061190721927352991667663867615693878552539001101191716932216696605695034696216048586340561983967877984749303293647366017467455266887565122693025024727418114101092741567626574528934402631783207275893572905521964423857396091419083966895347643113656895647021292892056378968202053617936042708224835007167845097516126411657715739588934678546840929989217080513170422297146869565190056336145666525242998201544173515448886045547494847958969853399465812337308383545979236248123800921104335240243488574989879261786186831012538299701940508669236293669930745153648488084926842312322865879894095857411256792423172604036630940316741464262460015979330233607241325533213818075073470985841990724017516130916678170285014031969629864672678341998294537914769162945336302726345037615617810026422848395512071864550189681537296933192555850385986552253085415239911304411007163716874637499408870659075039303510824624745164476915810148772779189780770938009662641327939200645339716416155573239552288151192314815901149551617677195841536055749400648580686847504109489648324140062585146955469673265365193881155994801922978955928049135624535143290682182393656043198677197244157087765603005304384800933317364938833567901369238404268910980381865393821411395291901015133456623011355516245309622844931543181793156322642548488681497917968986877118679613386501821866832454221707209232184616654717058057593316179395426924956789170728349221075021681196801352722280515274166785633834775870064065406447439172204496213665818447052415062846173672478406325193210544290799170582893244807095245548751097764771426210820437205498774344372702339328793113782963246276862074399302011919620044036964514788870606586362649926118130711664492889622452671926713933901468378911952958497510338363821936958457537681851302563344956541895007992228013724015987636495954942538240527288388553238656852913835630222651481416317046368757080490591236428453442686780976949925660049826392285706910648127954355150608304955133461914800930245330291005082691835692817202807932684287536147540355367297342330811865445410937506799947804805262341184893382730436112236599747825370717977355960010541188798702750769845758456521387559429219749408048431691903555901316442764514863766554952947480998366820567014248589519261448999508667470636581886210258970318305273399995824641691223764926744988911953546653604896428784797807780463029494063470250958511394221243569230020196846626332714679874587922488663793971405268654760734127287259677767388100015416838396806692625828793586037514076691928772148716334105989153600487478031329200863134299405022655532949380138789787012594425824937463964253201044278155482742587419154841946335092303065157039644645058948740406985639218455940455093118516305067912654696242158754954138637798450778228222256070991939988751759152905072027125725555764554621419897106501372606750072398697661023621098847165800682796694156054833156013707763423408729266071799568924991930221567358502562416775731338155858150034294553645905832266664989071534868491547015022696832452762674651458338667308005135902247734597266437555869524328621623819802263466393551809209209988897707718199186989480545725461135602618544051364700466577221712885161739974007215497757055023574775281972811405427660784594661314248685041993448667663860610835822983731927674244122861875897012300572533647704384656274939119734233006113854730147437194372433107763925502994459783113470753051588892609538966187983439773846494080495947410904320471291784072151355848174674298170354609491546704544462552514918068822306184213537773301996766527406842942786221787924927293083633503464757912763415548927175431288977965596025248691143829196544515417450238874850467993246493067539219756166700213766614813402272555587505546923252136345065827270627330484935140552980360059400002641634873038397511471940925690404329163718990181080654068580302750363841230468797151574824986270351885554248294026048300796682608306595213076884723378556499823254705859567927884813465241288016404674357142715194175111810051470427133605351486947664211431403146535076572409500727055708022366453950039660258354474788119778441257729725367516119882659840579940961728557657859612797608493977674882839839941171652552317499080451738407548648806557098269483941019567174710584028669632465657450063030230927842654913515540468811658211539559164447502309005050767050896346210164455923938452079834803783625681661745584456646297830701347012916267632590921049627614484210916220213660645643237745637257838737043411028342455271672853296349667012135469090616083095844175893362780754573596703147295891051451574701109585284913308164074077496726501114399483872991812879875430068074303082761163005364869007572861811839966105963813460759358743102227384281141190052115255935089162234310614743316817832037369281164550830952901297610302695235636820564742041409608825877453599257890101986211907965316867591238362248142868686716708356773397498288083043233031577818892239076877733667471525442234799733632929721932912640618889022797651468253850040041907526967070917360003368472773553549719530093046214979672028102173543015510865764377690883130018997990894698992586151423248054349238498495506624484254904740155730153078205418472348266654421952711720261934772358091718850820646471655217563393125224383106884266216002915404726908375705590926179664192271836685515744365076717537084834592904302982697111745244742982931006962780851663892155513845958938417601108767088065231253402649108036779551899548176287134470224099437093020066200168368966936301161528740741447736788771401773101720697720953925290576205848019263800574676613816010793857146035578471138190732882730999286157227913036404288634043998518706542491499295953024130570745735319259805236852156362472156621424582497170098221720056537106407035240646829444861817280393877514156150548816721106726573709589022125199618918212593825556199396868762539854256991783695866052544416429551334742942064042196238077778988372610880575334275528343010441529672372939728308416099905152140762245632248596509693128326781491341221669380981662035108689909702588424079236715394342101176411167352716937566082073641720149381948045348289215551977497762352760145993846060850881878725388737949797869919641801095704898644802832229276388633915309899847508798575605268632166784801626487672155647077535450482292460797222563101323101888464319244653786635025521865103599893875827136479724878305763182072329412790343452989616623150675045456713806509095270042239152556696598007761956254288979546740742547905612248123905068834664564185863276635375427285154784902603159475485261240785217334297243329895950925009607366021033962411332200282407798127437268409398416883480384808940481389792653164651909428044442894642226768209381036640943406858555383846678531224640996196240719849131195499877715540640644176072170005508598397996414653731782504245964988716879895387036313935125699771695068522697154717731284766920762387917839487538032633169489342944975161694671813649476090972288990132593212548787408856066410392512151152198731039766361785300860571146744740857885519528340240396301476901729166308204394358576269751641991039587972078511584082728193127791905170010734909783346129122195823730592101717324395770096424298803247688885702781910697140747781035332806939610635304596135569452347812640857582690463332180463838919708809634055616236321493469821022939447684894590004180712317407830921535968535235035665546294630952618278844045382670737181965465300949052217729065355882150594506961115843544511328723380128324798473035074876043304555569657120589218182542966605234802433503590215321800502570345644835994515566119911470405150606841339015528680428348185861166967567420689645215805275818113396511057943575147339565239759859867169463074079903741865250089482545963642728587278897486143818994458475075131005103060688078935715731204771221734295103756789765029114493291435458286891503064014008005558475715236831104702340116374894769754044717948562514130426726277812820296971676327293250954564976224535906960830277784198609977266480516921710015346540965460129670769577966425393908933750365821047845506705103505194699334571645518392229093952069814249606936186896337773122441069121546314206463780935754958906985968003771998808433448527227123390158208104292288042040853626358014314795585474636737982174619694931044098574200193537156214788871403503119569920082044146309917994269074492965278694894488385573882640733778773640632564070817573948659649139076080387642175863298514545910786984425824256382217240061579214037309883675916326975620249435836042083811237920455241844225070612941360672322596155578226810903751086599694214149495978345298624369195742063361430415979551768575632985882135501927436334408477880294615725281031698277223867870562777419610873187408348987148898665285586345495582023581211933966878141998579972885986693240324744920753745067615708064275331236775700285508294507593256358530788195990214339289151433401254566764434119504686935655738353850290533663020407270223243073551610495190975023051258620374340349884019235620681704780807078976236786226169094966320006754238050863489440387364507657968663689094169907057929417240478359803727434917071590991749551434715894997501719270938298523130073903943906135811768495440455212024466846549107291528002352426633867558444097806835031702535064274001212797232860154432870212467687975163340189229840789083889989385099237566511939694375817902731250120672230018093686813837318248393565755020187189633031820309210992354367130294446930812576435261709643708110505521445315394674732020824275882323624181603031390552215196419276931451861153388203664605043849132684075891171186375286060676851111461215680924061465827239199053123196116039747649324032762564267383118178826624113823375120628781707958519160922985918590934138561523972671556921019866397421254484789805336888893215523926888953424712002108868919849601059055606016456152967801778294611254096489745217948072262357439827498611976567926425425755717223735109684250599599888372483019195580947853189606211001872524489443587690263349231632527655785631811573102556502915121985922479386276611221830150876312598613066810071106108210798446528507704607841817776360599169907685164608938240822094542113453491120445138791843946270553828657066082711622411838886768764327133060005435210820631353208326492754636293355590569612889309448497167116729745391335564197945953812987186937367962607525217649581927334521462482481141250318625609689561085604118821713974154092025876428749117087495738484090568867455962738050689928499869439691720642502410591928072141115604975722042284277532982806853832310853730829097497650817039625964605965135352489466101891033019036179781198970683609690275708470419639255161363068400098671403402207656644020052861284184608180596356299848589903848044268178617065933516041197587941184925717981150418136391308598157487384582220623632094908199300121344087936137316873420831833966930195351380728414556005882424829142365030199564049821608716491353838362584624350127750833418640756342355513357794116325986932457459237468096727756000805801030374190167442666616887867120962312127403956426042388755939791944041578673714411741237908636346748898121269030582979018185170721910454887033041185833027388744165241245907639622743256628404495551765331783736543006618361978159214969318815467041053299369173752770197003680173999276866838130316762146083074893292490000413985567678903740483728515629357332046369197668706143687913106270698836777878054214050945665521092389730918063575562475535990872876389662028555521247344686954298868832519180356430976622188531412351078251369382140139046610238361645309772290740830967888867642508624537414509287846932239732066471746985268198671183831755448436172409751067982354271107626640065105531724340374596436876733736715724581046847742224950296873708743237183028552833803416450900155685078275872994307742520390990987241997100533817295935055998249408313034387185764938186940380716450451434438593680225942755961434275264496821350725755596598115489744023647054055324278294140733769291784591286663790140891755085417923704371192416538983107817303649313126493782027047040792587627974120397935167283545813897087884061678117186903270107799524600844476374568030129508583745533950505184954783374755428981078567878036702785581356670066692286807543932180716651864587156483253533671805057320149510704392246415453665357726030423603759886335101641177335622500821888914108098848382481384367268300792003274989636838812617423680306737021251836412687264725593392426646530554764025781632293228719672629582533175141631915358403531265482723239293710408344859524995519245131242285079615130639880089932202688146997008328130024179615473323125654692861652636758687199988394121071184014076441099132107155792910803090816734980094340235053503495259590904665122875851973748585988169071453475543037853730650132713059824841310722166163161747471986739262153603239833853940936708745348562335711271990436508796409469759905117110520245124535926027216862448993565183996455340401112559582143347317974265597086993408197763589246194676965942321705437179253767869611925133246571722650449963803068692801898984859072334651241208388933481792321340287642211124394905619468381948495591414381517864156529655922319668717865034810837330664975261732299349552027353285134867662899374585254052686206927706711209241637468774847629251753652066658023061338169852304352851857276857695697439150734693872964331095538444390621715977167033086147884095546263169877944292480426135165901863263456167092852011091942784645067122802660858122636952277722842785980303959608989565161005626013176542413227110318807067288093214274874312799011108190444618270817844465552603687459032092954943801419378128124119773845332278714916105449776211393731980664554385969413273414730454778301753115125311165536313909956617704814057375961151727901653880686994974604850901151670728758477675528960595559744281293660487144423494603023534014568841775217038753707296768877649650283818545297044669399386547770449917055246937174335589339129817810183777886647171571393283262337459662858067272443763252278542964807378062901683333179173631590880126421723328991098235734992390843482604341498401018709352361026306297520344449396855392237527089059111944202536249634333225015536958872390647246482956459661129652620284344677311947657465106178899202055823279278639122098775762547697347794437287171379423134516762293875266708187176052834385626331824449346308068729011810612594058322367523938332441379334089277252350019488169637644852466177332992380348689237261165672059664550371277672827938693600014670612991602970195584890969387690082329889509792184939527472477411551933192004732291078589385579120292518079831388852752307857216158383235811374713580839438905903499314248683144914362914520420632988984633351685489347495808030695245713602774974710356350788981280908922708212619370603907672852463467710590964351123357501844495951179721561412528610277853099602733185386225763811982117698596312886057095399548703614263752083756307168398535412499122031339758410187580630850379344632539064249011723910742834584572719450313942467178455874083464995009393323118152121653709425381871381014345538794258587483792002076084652472115231977896789297936566307890659302804045592611633640364929703561220648885328515617671191921043376829547891830239597905653140595369372245932156338709080084451730955961379539658199224153121942984825453081981840467075364581354612549535444274752072432011214751927380910704868551557504692990765859588060878881144070479303095097319197175968572859967749867630869473315597158041296828023999594460449170746078375227518204276807741143719927395557534975329743915477713232832159214048528857980658953855246575735868940645864907366517780710720687829885102312592320490275444974619250905716981723850068334668929585667477226858042416187376620122857686430426870970263069544804779889373723825544091578048491310839888568136072850117766498561872546884094089350356083083335232999618243116588891114478774904916979731101096408162967976941189262778772563429749370210066137712832874993240911280130644367162715053395596136996941330159774410577040575149797469538380402641363849334411313998201552151340047583495607340566825637377877299644606795671094195594021139069241337578888540641403290478987618379385056449332344749669645981412704655541157262318697931423679399978488118882207607132249440683165311741611645593806701639380165509192166647391782298730685602849265065079258797163443304244110036436928725264375360171500482376862751393879307704558056473058997234224815001844581030378472567321859527194966978409993117056535180489522731104342416218661298385647777520060493287489831921582401692702248739456142829557011406430411136969229929829658835439288209267661964749343363961679991884734640583715905048065532166980951724745464642851931407557384085962796022867296008811726305815025686654136930466182939712558129816298551796279045638203257277113265308047544848955239268091137212027579878785956865671811845577498983112802308087473544398011019138470459997385273398888304061152964385555231003320405560385712868292394052352815525741011857766049577441025899334922092354826583883781043251832243795190589799497168930553058367806700478497037691143957453539553074366786649515199313747021505493752480238629007710165100720093149836711584082462139026747339449343794384926292850258253682519948420871836388786419546392786280885267052381719756434594028641210276981712417532776868085170138158302871167297761419547882041118945191031795233873082715900706592253535800418505438499610583192951227574282566585780868714443015718290633488633119763609118766480966286684729807080779540204574765727339560349556303965702161451168243391814164907549152704930024251351601456530426005015788082829973813181103374136296632208563528179280686023810620634878382951456713059278889558052947963522067585588623859981493192030775909348918007804655191055617514161947131114787138992020589960360927270892442225802863774387729407471861458767538458794079177356045612046782265210200525775922900023159512780379978994486163266449591557743139994951788707321415164405576754726502184882888868169920827075000379727981199659896031880372950407962994613161432993900581815641007600445821157904585166426503883458829807172363650457174994957831541544199570109385408196753989256427862307925360964896961849991718834158340244286589980638136839121978305971750002634683670171242151632195942017242763741245064640466961939068760112142137559536824723171914587517349513675318537165473035086791562886061234266699714132198814241956532648229231189415430061156144990585940177202179503869999274809068315456041743919767785513056471903330386147359950449306380421025365953068759832884169301285194554849445846699604701843544360198087680557195472941501567875648064690502070844865738529505806824123241346427949892059056372118115060319631291213593448733416736893069901730096291417982504484682066822764363891499681364858178001981637539624542004701536529913072031023573613579872276171087591820598341347860252360615949147449245110671669310413140578598662744628532477686018342849083851886396414182341128963510876926445092259965332248061646600871246949264514039827459296627843583170462337354421450926592017662804561003255565697843330446490042180052161910363517986785666341108546555711215384581066164559426837545314541613680094266641588230689385452999022960248317436123389447499174114425081623115593461911309923014370121351183049384635625497991744352942599342724693404719714679674408997509354992595347005208356067811682624839762903863697773508454582479345890856424708616312084653097115210184162096142541114976699287794395579498460646135405045099057581314652636065862882220571284425666457442013248393484208882845384148802286503084397072712298619567321127453999021943438190715994576335415331463418042132484430391625541705737616548001759382087271938333204426990523275843522126078213000897691356446988260025467390570136927760822939717543214934194427413967210484453747486042159509104940683811079793641359488048935035097793916555101922464506523933539923773555865971738568649824090989059333008100470100062036171594144558351516820275520051829305624429726342517681121486268971655105934722851448680010951478432446960928986907575142393711052102057484823454161860353844307469458029492085258360776497216035461273968323641094330753595849555596824786424058020019220267104021506298193384179625205032776311947592279442219623381695457455120652668000114048867966302143087799225786060967834377105530319920005925696583349227015770373853262862235981416070612027287799747034672267181368589425998174058057981317710676564183612038053566760892855049592505543574282476429217066754962798477592524913741767067103563765299219675177871396272152422288980923671182744599468285053914747702483154834686739531489501616760142977415274630996856314627540930244077001055978181104855331950542444127642520830745020341400357701669252045892115442574113582800303071767193738550819844008442931767615627092792198353539147078278024985817749528433999112511731972836727797963326808755869309650162222073112910625887312627203476305424601104658159925977552471357727231598913816749630531492638691958140355167828933014266691329734064981533989504103533572508821946996136478070861657786159309288423260911743326706175103021686683552999420041285515410820953893953407778455650172461457802165925610235577871466627048799572241534112446411231390224974414226067454710850057708397748845971876345291682422255174531537458621831628320364279214220007160270310464585603544678172833693196343629028488158010356925745257413247656079243584463696561692528840071243795679249778694607496266128672077431331111954674253130144361144760639828826901689189749942932499007284287150158632380765457516058316383188274135210221512440585633162146393646667135335291229940460054327811844571115847396045404450231366477055139793851003245605448973451326593686078792343537057378877646602335239867403824349682582977041720187457058203526815684192343087613289417065544392230966560068384528896555357487429007800384441571509832750783691936559692402663615377922922395575219246349340077005155966735245855673417609484722493818717802805723325547255517980699922023344831209471566406725972528641072426536035026504689810787358159535640615410316325958136541642753094867550059520160925450014451910594409331518413626622407222746315200907301909280927487805340183686212248008238428546747667893513654679520907126883285188681238467941001640451474317130050400625772399580268589325656014733996225889056393406548387582170705123438382504669270161696503979214515756395788873926714155800406683289158089556249821591210960987497638518631930725784547055052801456696747438336796964874703645182426792406140691375355699324867844578633322599737489748113845607210660609674777644226105527430604224477728671406652819299898971327176624451300542857369912538859201438502001915310511354114626384974377160558726897101675006306713152744696268778315649602080064716762060560915767771411684285430377278823941134844325638592027197253912479512751767087885157543141916338620028069719271515080521866480842204144796884411410706259167918793361923133715689583066994095117956155886869563411359014319885721550512011065396674465230020618565410836495145231122559337785536335375496182234810854137217473735759706144173264798471640313025049731674105052765969862933273986393880175309495402820613879586003635616512390137671710219281770067374519774499705546673806757765959988918204526071634199897937132577078369504167546725684095624837286773568549524050693494044420360683192009468253000062000329022084731484066440321424941279772684932371073241893622711017858254147092912887573659960593641786463341325310154269846712211549286000658727741008799395886776068695136547466542342603690291571462311848327803196937293615183241043948729373141257002668983852803904863460241447270715382709845286077223292224932700519215309956367089031632655294563945036583279389114249450804462240648218470904554558025986036865290236974159453018484834417552642060037976730209991834811466571339942025071899268155458888892670714113229403708678429738426572259139003810000316314574294969833315647565389174274699134414448928916564172739023552015450809000871845282671528520413376308038525144830566878502411498073481694558520115710484680318335030568847817304934890025206274910713032516481932047218498652734771124316901083884551216159857941908612510837769928154142650608495408558435919207999370040800856370170182625625483866974305782067925644248438014976571915501974575209781973957331141067928284216733804941620576695339064555447841277942095554995842716685988132778216804936080267762779691969149450249633779504152364674374252705069229508926944340214309851092825490816601338552773435928355900942412807707291248081860978338761142363569458455871556505781976438103022736150210173402506352327441846009418141671893768552439380260682492399210027084043065476139194209284385174467669626398253521710872724301058980639835793609331872823445205150628448384673349475119026231496263166036059161706333173269346616551073972655547749146695349954783799596530268690201603649428573512493860403722468393028572002830653300474187078780379783940251929170700879864395839934153097952704026002496692915674302809252392659301209992682076839486768156611136132208281216672278590173068360946825813210398386050842005705525853898829158241297020282477155851330739940245289295115961384630220921803574965423122647588602865660595662750207667545911995428318083972955110332703491451214539438451126947413516132414269273820363807886099974283779071380008971680808044883522849637924363008290578796475147181451077872459708297700797777916486243830683836480558252974044714528254565732513325454614161560103487520802823127116921800940592882618675804651201107935032279059784050815634536688161305932074863967342390745065013663669155325470721411376137934561613282833143169212181960891709441603569762501199617161154701491852363642639839169211062096566191751675049397569268594799771100126509025576363915435675426107625062800337132609169684078318559091239503402985747629354534010680317053470234427581782589230710836980921352294617873726075028907362863562370058106392597652358360972379668572044879571794549393421035022173622584356314652907588423906313549619142862384634422801461686918315658339308881706178458827165140318311542407383005384575442378247921514290003633255799573617470394447958054740306857674597442209784481523061364282053546386973187520802670258820146581693922581469088492382442373686157272828499206884740332176040256510420821655239263181935424786114825107655484754546646635409040237912667063253869384243605912155503845153432016830511767572110393842141755403000334917932143404777854083641721805432721776667828642753645812628283486941720697860173083812899360757322724448920756383591984016137336743803474370594826813656149765108959914231927140924487499192915344273710248087248595134783939878030943147652006160287219598922552197349987262814636973367575545642325419794027976321338236636409454964475125362446926746649137532360349107754869347912879428229261375898203450498915963542316816114880454545815205551130089945804222389421976558102790671694771199870517523248686638472501671229303439179669995013796566388740126758040755071126891104723707277959590956715043473244459642371978168658131148717106330957017076260321020646919842721444997320692309471110983660676334245860584913278202811844245596085772240240171066076640451679733358777077844435715652482626718395342123773268439801302765907258976336591295097093610348329961517060237980543274749889497624554949131738193134373846647249124676321138639199625605750323106657454230914065114586351056745419400955018692072531451530732125689309360348022288539229385419499677246307637379708924749834492396021585847982993083073853752892486526256064809144399310392902356651031206977543373658921546203789881839980013603787217868883148739949483350614794182496194398243011619168776336983043010175167366498781001544566777291500342428455127015777245405611723642832046553031016767317645384135897211332832561335131539843748188881872316348396311092957452860993978876667772490030173366632284839408265849012196134871838139925085738994342638174191425739882873212999436028140953174405575621019274325362796041846910552347803434195847582464463401682060649032129281611292099723049221562056843437223858385857703588454719623114616457360480817732071670520974957798007821708085950312258001416030060260556203504813254629296631421081823031707043027688502646539935979440764683817660089627682635451335147857769629483100630896585125120542875888220507043807516064055200701830340931098250844509511027180864798012985880778627036468551041951048560582856194881198423029375294617897422345435528272101647377946169602581047560260606671577527757676858391563896661578729636251055855436439216922341781427324712418180184027015550895883730017756370237880437050610720611556570401187410207532444124246271523424219714755952975416656183352378936886526347908244226467822720495929028733908296875723268579359605411491558926970618084266557415302659499531356889953468008392902497048632894058172750301319342614845535172048460913918092566009184023922372216304765216954881130731703944491675320236883497186785140033250551001537330160393057891044870713379575629167835249637613060467576259364788828225823449562473410931651230532565322562127483861231644095875567400113290235026946535528217851243170335465477718520788650426305633222286586138823686278628142499581816578547987502914331953413703172251226661665013764040662888112461299240887591444776432937724005898237223733287262249810639342116236315799827714801990982073538430822352652095095793051563502532605127645196922296454930231581624968722566612402380856488118050808233186526098236012588466816721802161918689003929080878718620146401032532208225464262972946133375243736718333527734869406906538920297676030654072415873307559626530420538182681261205385299157829938877912689201346293093385662883126119372609250508391476152745911366226853641264386525877416339284640494351512105499547973177368472412694653842612961822693945657904389085464686539924039715626066589377414854471816479007949382774261933760352062738104876319167186844703021933141087776816064656223039614012509280969899716980883006696195957855694078931541992794369689274674983363605028397939742612045091442261607277989134459672721764661414856327744788180484595291961857303252423566448287238211923104016102176967249026253927034376613655573642984458666433162058664046107379499957042637559873587698637446247800109493944269261281340193128247660683036471172600815381333364244416778060955082713399754665337753119450760373520832823198091695662495313521235118081379722609156808770025174883583092572339097853434716813353361504857301101406813641861355746757833029798947349192284243607347905167100121472137362805476535130159840341054864268795536362647418437533735506062053317452768079406778847046449263526590818825566927097875921394971118524697876093650587916923317775720255342926080893965460272837322845186610524254531205238030650222062138740812773195948465321979140501195002980472424308357569689460474280353886907280185175117636288374403176637926960380690528919420649008205501046290906525845234879300660470012493488095856236205228405004727661338836301250756034031633898616056496184704573297612862881058827878124249583631249531593609927977152897246112692180923399346148691836503413030882373841175546371266899421471510682886227500603202386056116374978488403441798548371964812080523801891374183799427861007670338479883737493102425372375070255217907527941377342922159584622777544281490619672901700911170422273619824587358501574210772549697079278319121497773665284159967811982037713960203271483910422034192714188835491812069475898845832781713677289566775639777643841470179820096110536331916685324944442594664942867153585923056655672303104269879377415190286910254424112502898645323073579265885052191986179072786095449487557685913404980993337074323148812023882925287971392580505803299366307749851044373227325659049628823036381253945041004070865858175918968307834407283718790691027533259075894753713338166207663917175499534243607181198220604468230956227420559369901472729076570277898543631115121665239796790402268414910368918482733003803881031717334633770005865216100153007797289503868921733968773453455324720946280813011475831503992793080632365179675966571838314949846037486112959033085868657919111682346460507019183335616491056609209417539139033488630948537138954395455915323464088998195388570276986858994886395099413481863893918884819370740690454755122300868157702310061861142961879094068330562429656631537390081763053552499092939128158481066722896665911002419535106270018318647804647245866731471804809163883914927052811109519323946233197185557179853105793904699364081020298245443788725794428532406853760548715759290051704915457209476322351532609973923784096932966805651125650470276563115169178304836636598494026800932191056258601342767958966165299713226512615033125907765035872641459423688150103503683218346161358503127473182187048630460572402647025077474602177352016104470315663265936417864017281956172071242122984897559778190132622769806140722691353873282525112853534759631527943426369181851971584051038005049723950531856438195934803431186237608663341719746981532995581905184661636877877503116950393610491171405325963494121711344174733947303081070978021186884406437198978439681306233011450232326079437740219824108956639651892843045057407297129375209318766483674933110531030849953325234334585481976099626784344466042078302627789625524678544508335043602184418250369504003175242905627958272481030065032317048834892482904690198321393559482681386632749430356095490794033918000644697811138578639224143558469106775106489512666890322221081254425678538821367178247383032592470386485721467553968702682901212864348389825226453160736596640411161436165993970559704344387949574174148476127976814375113985153440575442037806661122745869553776501174372334700546043825812945033582367862498251924360703560482202138534592847692899847484268141103619437898140857260275010035357647552153567320912999077743734039556936403152256268029060308732181306235759699881521176399677903628516761211181923517259275254661926463917128557960104807171785048270382814788508401179315467968909363887657041771301896990981386691535332846582200725379849311019239838594086090199940747318856765913403767938930803949554031572592327312250519029599065712302443208772987521903219814222495144229674930709130104926471820324881089973692247414648715082895672918164298838393522796309398958950318438929846832124507416902362932110271068875144242819467986892253763242083566177069283128242168922677859164681553784609318392458562605509322355747452266832073232161068633657795158527943636839847579599844239059842719929620005749875924175614683847832103671191182190584821546740856428197680009007021108045793523880193927160867750095705230470743781660943970920373119668395318977508986248638848165970456812323188911640825183448593026531516774176755660130764213206962066979150447683692999077169319231577410576722315176932068651586028864272187831435215989573073900300837434499377526647766904392002532947113298887182481509883733642537129223668450491543381620974073711863604115695726048870035508690103858005784575959425629479151065914213873850122268198782430878174859489084811752101490369580137761677678318456435525243280001128544919660397432260512138423131287402079279243791103759527714015342122608934331972277745980114983496463059935801317385967093597201207891532670127906127189060174169239169080085784902441002226353212655136846449759991868482171124402192449160462150616234531377167293652238912286136308451039774896279060026820953680942442888282563253659727329947895305452730770191369717755499182648208804734813364555507944396541640348840352177158303828293655078049797020209796461855438688774189976560160290394816724679569669663662993462006501883399353283513551050973545164596910096709918691706751576559689757380680026479888709723773790340233466878220730989085086392760921696756633689895235198612697512308774438661279179462105282951697283008790958965962552890559744570736960667583056806397259052572811578975827112519150889071292904930316875367123361380693370884770313029264650560676597873061085604528066365930423028295569135798517610478509925482689687188006697206728263243509377735751918973882902942461666426078635793070117052594715974596651700445640956763903814184466671804594878763466045746508962842740527284060872219519783865838559963872449879597285163352449230028266832280414940702790432864727394199634385981740585953265318461523955905000445644822682262434063834435627503258114363606038279822743845881848302515773840999913453573024631060845249777029443657160870502274935793163127733646689378883639533700584315433650185133768567451013739922937621746061673127017988448728319952853152518230882105864111532142401100974531628157970819411908579167251711870323609805932812040599190233438635695964450485187814090801640426498452634567909545284476883833066839133985734184626177522862137478879822559504478258282559335747022961444604918619322592363659256405977041635124457495824041398984847507457203573484736834644442256515829936990147059979168076614680672670591566129926526653827746286826429805713960037580908525742367435763946854353679835182943187750409304470962309792537936977116351435589825949406748924896471497768520071597330393648955852330598319251250097050717750001240889390874626367638021824485211619912550862117905244522551397597793102821079154478591466653252821124090860295232890471618108793937771022222292211775501695760969074344236630390129279364915043369184032626436786299289260204545232871918716899913474168819774591935143148225812745107241148846819330247383883421246488481636877610877901969086213283684806031941835615923114874285052635797255394994860128864578412892394020510270271568000143870735959103787655799114202273348076709541077271534462207967199379940071685428913778649989822061036476247206362558753314564131751346286774541524897438150904479074086600441872788319849910710352417808053030634322692750597449045183526368579926547394183923322118518349978292845319101509660547592106710922744912368657492188405468954636873559416672092801284005004918015307615523921344951171403869243176143079287395172572300355625483594483974752417343362974051225960958318665635264715618277253089747607132647944465079276256100709528297768172712124629089825860760792611686345414197052961035130861339780311413218519465434976550468201499362455348307059715730256421961789107311459845182297652828857049276064616974974778167281438785714104258191916519775656223083544865641198938303686600417556070316850433613989877940697773690096494769459218796595364045571513676525325427343925425236154803387328458702029477201785185441785793101347335412163266609778096034137477832656056116196630800568002001063636198069301072117543025242059984940137724129929162041061492489282973522671684815246374963066926076822123895680053540112522520598263449931686803801140083460975294191339731994366674541487646583622348512554246700854370324574682812347889983405094301019786537350925769768883518419175159765259231209553345856853020788602891641611685347270176968568123491292529025371955244056009308820405873418041293731487156123022546214268013591292100853125707480596021516010578958954048747388821817018353589632346107171535641878185227717366357802301605245020470061909556619311052820934829617868823110894451894509959111038647320024322454571751412570071516716872127500616949881534703411229519304155452297253626364894631194027937157781146126318409759265723563243164384685148276157654266990227377733423107572615175714038619837713495490778133686152362285848978738076237898380935708765745676309704254056204358462871150002621216297127500944047785552248602546552050092330730061449837544046893806110432867687936791544800636718508073360745454974766498015244121291725027256276737620628767976883399128669820484819138978963684563578251493286177944514571549600366770444736316756377802551945206476140450760509322189786028674051654852981224347018474126134412074615451026077085132164537283278099356868784776134764274439438117677098661128296610385924194224454693102289404743008113495619621863249689567095763471690404837543454224095475376391423060968842945524881637047310498307731435787690803545449281174904871139612879220706128840243065698351093992647940522413519930970677952447056870434522011185396969068176364689583330524881966971668164329583738074724377073251369857689060162979337981821093285614584060154484357935919075635743223458568799576256942709349667233477540165787513409988719647869607484825763107051138475246745019058531334212229743487258542305826764203744504583016317413156588217348788539245384459882915804196828234866142555691342587427483285970536466034809072463204080380107421470907642477259673267989524629967883527367819194400833952277788459460198398613797662508475464273165931160070358989318988949570868293545267728982421903998109226069853734254626649098535766245951043893795449825005652205503790950237749603572835448310432818531359326818668512857749648560762787328187580974879131679856191363041678332372756908892766832661471253351657814279357103856644245813198249003930233677558028882583428563210474635844516832320530294655057463311716088455530158293470390394470035824972628894881173328102694832242496384562149648307884847767781482543967788585759731834403523516535718202391153824774720274932395725782126840925098648115026402493077156867502786614207331384766325579654498268030866781937046469167702134063962013489391730429098852618372301604941870228724465684587474318926181251670914599944745441496545990294822964582849562063761302862416049287861209347958832718266790925170062556051097405471368816447446431554223372033234573416295719236532742557906211320977519581246264392687543218747034450498786836026545687145947376977516285791918395821034684141393147920347022116032323151783960040583336698689338249564719680107775324719988449322232616132104066880021788640833224066160227416269184996324553600629125179463201669962764574704396544570198975544969227350155000532990245465633329000711323916937357093489838616922535896078931048805327414547083363221292960740294918267452412687987890855279957316992888641423848826437803354260225625286226294346490608428216058967076059775814444381844790243562855861503153558274620689365470208096145662758736719883887318722495138682613094464132248036923165414504820517868280679064896751609368136899894455914898036671407536385238233848074334634159818991998143003424377522859167901938203911409479179637265462163029882948533913164348749329443500555924178172159734377232989152722562280276587902640274085793236855829971658298985298604282264978891208386681736547739139839511927864492933861308391439099755925044767335744935869267188577483268187923855157371237631979097484627343045385773653867162133204880072463218612336182554250846416258770804885839567462718765174541316251900251510720673094089988910413417151184827480072298283273922069801736266662662467272905439309229784021561187317223121493048755856730188596436852101616605662663523104335682219859301229827951757089077572891739704358939689024174065623273891669437707047865818950954387120552898286025315861066999368022262092828942283613025845198916620967353221177622963802627497410311845886802534704331182683981088408625397070244769026042643918366611154244729228607596329011203755352435710060577390407202129557597176031125120880404144355715897610914712836716485133710920571637519348422439479585375775186565013676221929591306489304255049114496637357046344743939849336046997189302438644812839040036736754666292073574006212884168819737237900464458063572979927622923545611996813668770072450109792478714168841147219332758679314433979427738758374415977361043462740834914759208728029761116371121353057963975767913872304564706521342831252538747122357522786922627883726718209285957250926476099203460615631776313450537314629541166050009553253246869364809773650626795220173355419789117378344693440071813392942649086807525018918003334508015969434377131990330352598338271869141329493698803305539026276704994120922189006201032975542526385496603681839095237198144939446183011915728035781088043739843652585259081034060683275360688167821918279722940609945805040859985425845128513032913463732818049343703142377051927947536071598877913096696608504399104060045413188149798520924695986709557709834401538724307760058784997502810135355865557856444740786769354069004193508463126073934314651777983337824864268314968097700478339796033592432898428511750767918039632075335854820934234907111088266217604422033509448509574306559506020578710666785481869422393314040533554722801908292411443527676561533939493031460631738170395286261206427446845425996446885299076170208552947861417348404727378943715151822523179161346663087968636013710216233448409305081632141785839953661355550643147412651633960417029027049969049199765511531228432815671042535087006938006415124790052506997144800031046533609028233803863807159261952639716234687412065594505100242141019714656524738906306479519836955386751806298200503506594568131369909890353983834710440367218893674169458970401536821122650797586352133000408262593921452176272994850221558400059366809783642867945903866639555772205769240232462492583195564689266205357905612107837336384255592297598719287797915909914682883673340204979655130343965802570934564564685160408637457267606607495664328736552163756805910703095577414961827691338368500790421859912268885615415440244399924313007410837224135448379642371925610663858451794929667787971344561189675112852100875675781475577349615777221239974400029205744432531165194244469489797106483808339765881836457956523816576989051070133450361949665427370184833171067731631944388986883556823535499100172831632172787956107309856052642981741651062761802935557610520025486297813846957899321815611789561425283966552795939911131707242103246114974708512638753644140434911061880311934658851993218978261264167753488507559073820544224785122695771327234388480282300947879973719200760864995846800067532557182044861663202399130645333511067929652532024854045781619537952742425954928062876686408958887624788209535089551372069941902676529910408866214386069674045037514737430645205149476646494239444221694713907917862141579366514724307598821979058417196612848654038528123764211706637129022372354428730197099527482457376964123030243720105661614586666404120963017353751362201054624346913210804270801124101032130014748976871113390398958645088614555001304317827116419058268075678362329743773233080542000897426662208495169692983427945738003365763276334783017116975766320289872959979529665320055528522697830708782206185706204074642367334531923638573353617992256510164213596668290663843302925179500997387636457565182360329174711260701101146765185496667183176422501608119524607126400165421365475130997455631529438528820472086153344351210821115307079123068125464202549055362986492545602145338146580913228203785514450519143360094613031067854009912939855896824655760684633303869779860389552435355797783581733846337898544768469797208071362906641639671529530438252243852485699597072633519282380578451215915999499366104326446297723848251366529131607991622646577964136824301207380833285503358624507550821692376076286425628412649182658082835989226019130439905844497884294078736692497536399535226333751199322063615430264236854594428725035529278023076106256348577389954175216222255919903953329084030313888500894878232018120941298630806332974306088129147480801539041385551783421380607363610138110977886569456523215629778214564871428421949188447768299829570364216673442417048253652276746094157564550949174482311044104529614441956600002294866134076770994802472210546668386959356324142237791038762158682701211005208956331650842689452831801006570311437369958598027465142369240301490096946800771547738443823992629640426353154124382679699722876968211856602130510540971042983591377569554600200152971422392827889733422614965740906733069161139043462667143412460629570216706446347259067317294449062700392356383175787600124786677736330894062616027721336347381455457056201513314854763636678769987159064846864753923651018000062009010386659904261668395858701302784489435064239559987930454778946988309150805502356082780148605625449865946851686028434075553423424342268205973621223247908078317026373243888773688830201800053845052477571010190070120974997033854700857631481283042494497346164501290716272155839316284193506610710406762026615869781649021835488162096073100143940213923543448875364793532348769141898580675165087434996415715902497663074745402783661386905531661573390169722981184436843915239272607976953303838421233477889226660922537706968827951296266430223703717758304912042081479475260058592917879420506284117157654251883502186142787228238144414661527641092326613949671209776629735530175436046447971076795958539802215860051358469411224372559731576307100579795673394320228785418505188400490641700252760074727521577436908096965400950112970231994544440192256302306580480227104813997265506170702396712181306560880843651790699567080265158608820870246528386424744646045398162396297152475069551489326174380576846718984660969309003615618102370868176996639759568642202557440658456276964517979018816835098206084107365148936732462005247324679888134920266795111298424714438736805328951255265494303595785524915185521037995357072907270714706682089561974215152044911308915349330326678964683659961083180107994683752564407480694660639422189034459213155091884656074967306548693928584060139912864946060359108584918827420329082659455747425987161273231950006288742640066658985562384099844627472045862607971915483235253338206765483997099709521674306393287471403037422517057201779247000213290785922490763906864597397944914488957130517198339092097959300877647804105855740773854041744848806837088804344879447485510927053140462872081657377531987250280335520269837395231859241366654606808632101712369462802492824595069636822572437417840261097022403089608510180563001908840946123797701012162365740950635565350604816441285383756788818081215064732912683278118694718127574942636095699621419821592111059128755902579170813239855455391114910288513183474932271427796976203283629324576683804701940102994433793070357535265234538746845909614170930393033547131207001795867380779251049844218777422696190169154144792748021114168450829510169098368526194153556589699367708425845928914987530097791289880846704851796380064320383612040127340580910661921371944977268968702134024967587084898418596048024882918273557878433309043009250020663652914516587574676730210039916029756157291909627814079629828778270336921595037881549844095378848735699319689821702256298392816396773808997294611919641496547241420300386202363356927708975182893945619587506818790301161976829958746758423985545458478170772589181381569837767301784661133720721604098344638127736916773803595652741593787085104083357864071353585630083263246251683088009243157072363967186508127446140629443768885911189109876914735979197706783225253027207686642476563754666492851587520261229299132336125412126924123529590626335027417907280509063863712209964444491317785671218456406897403480445932995926752650910616814952318781113616639927435368283406051499063949072650930314097994880093934658371592246403710577580024520641093836720060120134431647528817887159407307229829579369437796844647307536482693892358466547011194732003311774542356092025369392033445176657526900072398525234244750734136124072837903837608043721301085509106884486805010053624524607561091745964619657759267528495717308366469882674348535171579890558926018857366724692556408233277792677551931903644919156024808723358807896584014982414101026929066429993532219167256544732216982730741417732386955404541482705196369186902375561504385126001891582611993690861213098602923528315879865722921508076359126389215255780743102582754567801307248475595266398260290859773253287424751180485533850115776489143905760750855781619327564987696970324419348633551847863170772151172526485609617913670168347429796633561160674939792271052470906552363765824665288383740461695679483675999266952848361468481561433624037358818880073493575815838165697722102372069840001033318025770828160967930954325559125509065620034983021669328162815394674673467606326606300713322449675321044909664587900324254798860990716286067528572321506007944492069125212445615173176051686741845921032112679034313027371745087308684876994612383805021882340650873128691719212059840756051432121489936871473862137668223536151548955174219666731645690610985942598662225636767828954646670786705039224741945684641470555167128253899762520928090829287027392014904592428913986033707717077556091126873880023058080012489714836987200139238322194773894368086075543949810482126579368452867166552694608576297236876102072311934045842988343237424138958224445667570442306072780252251099407567112287806226270223594306296591560977679136573614218127237121599771007719264598483913955725990867823294900265156585544900057324069901523172293763985521106911801775543780171950320988564383586439007805971543306696914361065195981932237432556783634683850433500250176029173690154570314883823748160441423885700410051776494963668851874024142234201367202386596452329577662499632681605492237908868123644150084737340956609993274446090120547740269687805473509947968972311986065022620771408246883254336419377495869505490207899337966055263601153314952973838717566459295186661867713912564153347092579343942812200916112687027081064264312248550953998121313463950852812254654659726455525196866565011334651164804523407039935748239400515638067223655674752865114324362265448753701177089374694984096862245981172243636434468564310666337412571487651449128890416030768706688450157618962707990695765370612114342083441660519050569858469796787964293221833640627053218366415717522939443945062687523623817726786139981560063529250297644308144519283307272378879527527283293667525163311117357892068989004112243935202703359818852758238171545762136490440325611129545182027888915292771073825771311040655355991166075089399581558091954422335390867893487040652108955166540397107998654327963898545051797854050944027062318424495352169099282787600021188076852863749651420744697495063333235432562701727195326092380237096265640930341771053285324073859474626787472298015794061861134343991889263304227971984080738156319650885794460406495207660620830919569618343151927209426759001658965017676881186139181844820596511759903264409400429812829489594495433891113364912433871275361156161506518506950471642518185217490699998349359665717510634137510982259303961233458240948689795148355025590633603134267678489524236136448874069620929430640675627695530077418058220630120576986522194624215217254885555316881104992047485825492322986186235514849744395832571655120697144860269495698889406154895607568221175525337577180875191513668772845139694291540406465845030002869210942270391414491051680407772308447858404869083160738850860797546714661615644131946786845438815733101418646866727321337041314137196519442665616349669294676671977457269772747725237966438499189282384068321128623834094269090314604640834402250007664587877977001530715898147827256239999748597032599771041500352189234309764501893896456026750251909903765856177168928334463522454612309034010310145386076449068628862518073981241568487316456938421136719844218250724402026949994013959740221761941596182329705311376735029560014677485807156230089912662959206995165790615395449887987337029067553262419921383551641024932407992583367634886025402965090750223561060240191886002553259023497486748336163174067686390316499053197504798519235182769112659730570670272317578342721669618472607684475393746824285815736442629174269951866799620167906420480191330283687552116360052419105135003519751488869065970871741315458421137379288535725549626557970711290215442352777925801498784282095861193866575244409196110866574238804870113563828703843982524489306639778576163116915268207756410409876216552424311692603635362323526307679644514979753214688045546450813269776955103645766224502599582899654251452226986715696105627042965912935883761018516494065847159215039436362454458316726147167214682930969877993631053875719774597002453317494446663601256957856163486231317745761555666165458796527732123827499008134935176717075245019203027101203548204217464240042679396110027941845886935831334725947528815903129649825136589656093326049902832714772053238766516251639951382087038238868755510811261812122168675593675416351873619888967734412884703941853431293322493737690078925012458491814933585407758114314073852371680983065086876045737544844160456119760301609713813546489426475901596486275697883476921540652200523714636232820336421016935962796303760069875478785247066256585885918343035471915864984869529076127641899755171331654898858641624928156722349969178066607634363361060184998065005266643433624910115264733155111667300540728251915992115617191810463855348716440100655555345493991809678669272910672797344662306264772238519527788278012250311268784543654641060339017758952146735428355826606466363705620131002040607259978102781326421750638871981123782539758250383793225783384832772656097051112934334509219950326164899886970581307975338097738375433563851536855081480835166614374452415971204741263496117932968207827142490897251934623249481165831158992300043808799305997917570683946843192454332127882725077053440599483160564392335344546561794785085139093558852373913669731447783751103207847586236165318286773248594193618244116173117579905234196461921949928989896508005487020912899107768676612780990540363552697270374261108991049638147550467668241897811138546390207705557273020599383808677962354727081541330647990374002211314604489826895016887754848170419538265563832144210129870850433686263521061766538872189231088339107668766278217870971501126960383081610413974183260223070279583666046578325002600942859265910179576824388409227987329502230089309334716962153586872470430297655462767068940110569414098860837925034638691581257598454674395987751860892550464201302579105730924326809382827381663139895990555908145290041553336800371580747239446444122964239878500349752568191679702503525872223340807684226493488013137612575011467064034701250901604901604539276675317045451390304214628039137588569236929723599432251587136981876858555266118417332794751464949535926927021394455409749797640311316973165792741686164726374636635626925180967322512613580724464098905289591440356237990624357150534195100952321997516671091134675932023691844338858344717370573692344049612907536854813938676517028200544888616479882465275467361444353568918034295203579308480779909749924630954803865112080431822212094511855218210144289575046096383152493911333015759271389525304186777824809059577157336200991334714306797666298422061503571065265871695561275479494632137988732878840881633638733633045496917632493098422955641802374729199138872997756932460634217461724958947003343982362533389511185213732893397066168040185392101670546954848301605049196067926306320426010052194416884525685007769947545608325704351397861386585313598481845368582048224406909429044820533672341450262407875636644476693645003884699527649597572019734317473176457066210981586171834848110373666752213020332571760801791230740069070396313893587015875233651235804679173937890329641908502686836794614284696638539935863200881509535100979343401942267941096247563495416737690481894929993128254409904254409372504420350131333383544742144542191546365337349922704620217749265024451230541231766529914872294712692189651267086021703297749925294715727262238869083392353057513738076068040836447946244999549256874197775567025522070346796579332856967964019419801822994103785271105832964819712780382362596932599395686327543380353981773334593876211309240077379261124700455560947842455425105622007327068799241172887351224784433948012962646129141753745754373476481315205910768470717595159081276450150252134661291756788477820770753951246428222288971110737826554855437229343791977438736022895641997432450416613945956967744081978317590869374418372699445334154480863150050780177004014393191694677113755989733282001104105872362791622379036537540310556996125106306616685840200665896954718782713453658153142909114552554086094030921588724707633035929544615880509546417173721808536946171442381753331944005001477750755011237763651737097716064272930930432798884688909461876924007804813077603896832050929569988382233028075651817597522622640984125030601603708311010785277072784138000488079569743704030199636524770880097370038642369985251255130701265265385121246517869346581505938187968755830534594183366795836659188370898549567195550697310578325011620916501867428232185780601289336332804375287401397971563123375693858992175356418210046352060498752316719454671285160223056337250255103465708489778391307095001843384279588794298758339293743722891458939656446690030604945116746224168857343790786762289320002216556721880352744170190369207411953439571238613389949337050194054869745160019759780980522589206405503933444682303587995422289709532358507977452262015834419225682519832127463715826357724762175955479650848719893106628339832826509631858509007125079812470757461371627635364986480107448750395320557940526659205478280940319842135265521533778687733115787552917945227551002205219115435508729428788723164928943712932325511756738098817747390671735001970921944171123655177922255357416832284668355617865558442085789562001759089338755817456913180711815339505162742679139058313521160930580885170865865385223620699199274512568999271965008423039487604995136498660506611436476851029242268148231814270513977483981047431459692913595172082777215274249885879353641644503294620610879186924365618317195529067059300155609280036779692098019295924351101404024730318946464233486835318754055060783956336983249533020070040343137598972732367859825367314377064905199448115398499230565373321869699519391737702055406755021937484647861130357068600795870640834083886327795375109939255134407803012191960486554059284162499988974357416483136114293568307067296333116503116471788388912323673569598845327507566466139620409419234545292502936163532773361558281676832061005529735931689123363128134979256008874162888064891473491940527667413448026632700070089858846469313014022576900636389276183212935586009689879154059639011628313122241571956309091557534007808197019871664598933690578479500060300487498645653826041123387438343116677431338990161797064631987014319115663162413414185515435617062782954781546484097713246755013419172824552251632701613342494836721470192780924683656592878749419388799883311826472081310205348109301679064918105108918306929176479314082849553354820595759594349381294638213066236058723061874631383731348729873651881208697682986558080226429127626660874173230351338924867325424601024443445640304727009087236087339881735278849402991121004970232821766129457760143146845077794542301144058155829691352281709092186104062913942010901447071533898282044396349200652768101344752810321987200103892856557033294256730568091554940629998022832482466462244459622027004001002777864587169559524502469111923866063218144615345916660525805573576614914219699040676295777928263162646330107934335768824745139467025716956174158527888732428238444517428085764316574512537179448816560252418691850127438893366457931739692004876843103775321143043448583138994356717328753850928502092771371482240031925753157317059004634255288001350807633415247371682289456737772934379706584684650559824994286307222406493317579349489750104171195132762823149515020682836698965386774097625770559227393725432136374474285943572179660167317986289338501938645330638363426860482361717391181449386837779943944770862405158137797101750036484315910690567242924808536631408973990844198705111796953130995517549043439035492679313659832125884744422805592533723027812888344874770626296943921146764862540635613863337920361077405386155543883475207292253879400013343045142029497116610691558122809977321638132500203715039698449608869752514759415723635114679375380319254494173816428448428761380599912379898156280730140366912436296035308601450964929391722402151691743463735440067340632378076040950147389453045791063450627150299830038322837962500230592133714223071167587548259444895859250764009934672086883810377395019162698345075048263509183270754799284926572298530249793562099463611326120700225843632889359340843917812514013656398883630446125022912108671639938558565208676338390686578958328465871852447577367690773197423986869297175379424342357500702704410264725977122808567453952960885561511367295587443228692818102918917983276276177386019833808278862021513642640262407014772211302810376870324915562586627735694843162351076636428161415585167637008468047546394251486338934728444045174851310391674331441506809892740420106952738491385221940455051403866111444355320927859925458196695647296264476657995196469635941583997675247107079205120434098171910466546935200052301864288814664598137764199137876588329521258230470060676075199468392663662424084540469642348884485633320819227468979633430298425267156341958014935192336335008835591217508735625202388995323014770996362140637809440791291132194300696075850662047617465726442394666291363862080260915650502696801141986611794466434472366074220369545237390628052029769774040039812899817593096203690675986350150430599091535414177471547708992206908958717455297909693277979573757773906232792413364961581329000890153499176407623027351469492449322280929696736327982002655414690823629835373701624724709492436095738516103857727849759927998400743887796535097269532892539092214293736371678869408453116600265199126576658838572613195317619557186981254700916861541172675703645104209033449061050323205455661292557795979035058352126297007041264257686254577371725010294632237387027848622096839655002398678019191342451158827681486742498733085305933077671226632745440650396249748856579942657428350591992165255191639582777505165334928067574969480819755491077095580985538553026030122938967919540833471537297171842689158578451762724780463941480502144211379323225660556455824349293196406938732889498857218810940469881106568971374270415724433362621243937302332878374318452638136371372951003661500091319883732974662733398712751753260160642185919667729940111262123224348504754117078346678175086941850533503184224729987009226954830606834783754437017011946456085368641887272186384652432740698675758358532198003489487556637538816791178390033616731273253680339808629993295224762918856319567498184792933542041023272509237694492702942974914038651188545031063274598220822243806778584395742597088325498119372265937261923030469562988083093276069713789957919239038359560698907804548383004886268084159262049650614456321636305256772357456326359227014004174298456325079656167266546580826292407412180636223203965564079273629525315842232969697699038796719079300118197338541440723527757239169674639729837366477375535980286516025825017272975081549474648500893208965371219551749361311586501907597955910432264016728016101676622628364748777972360336236972106613797141776280572278673722478706896216305254506173255871704167222326397465079649582997856982951696464988602449409027226326786575379420419640861249076544051107544378656988376412347268141968660943873003275866225745128596968815158745418979195833265230619630172249443505968869655613985298715752711808816856567288129989770211090012174145710774777738194525152543800820608578499600039212379380424571458011074579476522595453948761517081424043073697501569941537093399832534403285390345260740172589021730324557205648030130141073463831848338649708007320628190601963063040851994005358265214838898139671356795309879131120452576950539441885599041307045289492740485786288171540689898441701033295806512995572367188741506818161965774139668668444573206760540934254831929824852565809836153859045427157465176619638822418415592767814114169999071067465360687955336089376345358877084397036217582856283581020080664583243008142646014459305554721438306344058729433181757033549499500059740927381327459571675146977280218984018438612908685827024708956217934877647571861113153752933831174170074345536595127027775008868172503986977562481578759107306788466400169594889523145653208072272323882312915483577298545793074607311288947766659488971742936016785256933560892408060832382080350923050422126584984834734357004503451856630389677678080277765630595891008004876729280284666735048363807426139197325184761396646493757224391105119372722358334496071808650951479986991745153694664886554902588934241262829054398885182468348574602777927426937937313816919417398744563452450711731706879029693390663380592303370746043740717278608206059498167216463034240516320928352482369520596301159152176230430659049038530757327912986649555598441377445708552684978725929771877715232297864565849052913575007557222346321071413425350146947328881746034528904715778406803717177194373240556970941743155345296646735880161060740390356106465170575490135981893716888897616908797178252042934259236146567368900210826120560519140061373575408115000497565507104650084220499055797044282066811341311337167005163637994539647604683751455413114689824700026013320763359087488691420440870084613236142491514580011004247059193090399334441848929910480704238231241991737044382561963924401281728435993797691333970462241419550275387700673623060267193903892263131203602189817504669956441267688843440073519202965503751592311501791145223581741896271267012940471491045560821443961732735666939566917265679442106228160142425474721304300611978212727243372915708565704058212318457475789557060211648199453913186214110597957119531657550693070375424436906767454362439049238701184613817028371812837540617963109782612890412524669342730115147369078948272417758523382522161105228178238945049050940891560869963081745469218778853150693914540803561110789709853432031635160332299809403774495746185661343390727412506205508798281802636470049775572969257038829326930541615388338891800661233824209956401998738315103462920307887855859697483609662473026790630298283363530654607848315748448783206491829003289439205250063448811040041267505801320381127861270213413104563978931165207133447167807483458990310026209780521668797032096278532147774413293677081011331776082185857958333824386842083231120411303199148886304467453567967012164220038123139711550897527785341665423833118914556007319544654340641588244159446060575625581102080642281487930435779645583415109212753131679916440714694595489536246856227440844566892229183886743066844580094955968067081653288952214412741045399235377230176106755521575046912885917125476109146748771459275945225805674070213667781579816646262992362891332137355496058634543198705900994316051904726657046579196431875977997725811436066435733895830680417015686170200528173884251875174071403266547025122907722019119492633365186237086740054381541394447229700772086970372109075142857371001579163383909105292470465899049890912273551032316083685455887064513416198814336620660845729448062249707365683309935672223912516777352113879136925309370483265139853416214904695571551214677206668976189153079082548256087133861308908893846260286849699955769155175854707487201253343568265321799899328544329534752496780099823668770934082883336490224951316313503960032210290671797622687110641427041557008547574049925511527116979658229836381239228584062612914919087987371527309858857516727436216184268255178909468165317176293467952429777731321713100729474918435134147556912863639809313336896208132722182629368391748142837182834462901221053736515252042925167971134014368360787282903412359853785567074982430850880882991680402393714633603251321393699591190906714708326959311294611474461719136864161864616478204167224583888656490047900644373379356548095018207442263186569116924568215217773921583653995331055485091530097634134739620022434776065315459816799822797890690582556273199237132733360885814697085334354800861635602839804291876714749460797545973160209683011433198921780888509009646715220536378282644158814104483993338874461936724046022257982904163430722464549972100227306370959783124267024621460656869083063624994391448197729488270523810171057259049224364629510359721198826912088337710832893460894618102175733523365198673387508516950126637470579301231598982955998802844069544868933056433642036933239964824282742702820882749204237242306753804723686052232751969551962829978755191971944751335575012179189507288288210532306591823919002070819103688957381809835196396067333337760737209223173149924882243127859364674905853102933405290387206296817192882579563528694790356084789418261967977546467577861036724523374305783909187057545652564414608156496403354507418672052773008204972685669914763538334284913629528038855010057722261714820721451549479506841856648614773969069021345619493979368031126992375368208926693906654908171724193730325586101334286338088396288953782170198228505729994243135570374254564407728686772313831128979884385029893387144581188539569860113439156242063356561799298072913880237874743799390778615616898176582011643357998000433509752084713792847864038441543123802325403363638090944230436819998731696654197027450444269564448147512141778586170217802761640847434070014194742458375074673264975702459640061184674682306204335972051935528158708561686230203964604617418362833622696330087551272890734805098738612244064663188341806224560708628933954665063007472522517795496067791797813545619998789165270916386317630041575456300820302069009301139925577067766580642362389308559316300323642557079081520345451798736039414866074110155257025406651190475721182491760483877176046327270980671448362661758186324995135834075984635582860662925825434741572402049233598196900510363605118250754737948407422821734262893175954875652136353489547539280915620791096826783462585538692197351431128680303113289927636380971533358865997966884682447337276649832350182851017406250576675228563290916670166715689014220576788333038804344847232119457843058518736443474052045356510664375454601399295333521308414697198274928199792631368790216470813613914693913698181191537360708396427097613620824191347042116711119402620388119227274830664942249731167422504838605948080018993463967601801965206694937458698038761192573797091436951745153625984179119024412582498742314181515731135050451954509145996655904213239658210666054033076050961457313730566851817822529572654713844271899883571145945868643123546460067760042736035927045021198501989418490955311383268715659821228165065101643548563179807820708480862322715706526327375376222642285413548668358181096257768430099380027170870741978630175061288396577259539744491648368925748185094019738396732129551124204933981145046776537486563407699590188866088171606110770269541646083368229370791733894762335024287399268102527761008992874464598175450318261276659294071739349263256499375672955119090547278314839732309121255342397776804177715285168129263364305508957546433638347499529706994504552914164121996953842176932995215179980058893256942969000467742553957655098329554294247513157587979007597467479522651868548939162835005047011634425721787755733891963261828895175981757407869745851981190199749084104761247575805178773160329347302276769714664823722486067978479789311262904429729601566525476375164620495998166819072838930285714798904303621626417038451121413036048652055617366166763331947712131044087015460316547005965053781126295073661949392074370096280440618032220852686897736468716016352710664276657736786497233919456730636202060375689985371092401008195357820922372030374947902281094836489230045114735741508141949279151116682933735325513365284727655607211685507709414915033399528520995106156271572331579128074269269951875066869761760661771191998334709967531332424881701208592056867763825105079911471117966632566975823942438306675077755835388826304393312274337965255704569015535837288459771808070573189981930770648563999231100942228103849762948393025260763831219032788773618162632082164862664501422922098313886141853374368129389741293187048678244620934962632533931973196107855756482210987875978845404828418102711955722639326348300981594533578228518801927065911995508321063120342478684670639547095329357243548827741964757459844880713886537047239340178271895151004496567952318254812520150257847641837378554421401250087235773060149020529382957074914175396237346722067615391286505312846504283255221188544107425347221794130082302916608289761149205548403206495964321288235397256416703101743566105132245334623928470916903661578437422153255648825768837770745066387914596586889190516200425397787695650623433666425872550665947050289378293498922644579665258835534539030374481666893806446930780369253035266516467827974898359535996253111989343541617873001383465640542605038973128317061076967034037495365972445369353388931802092211690158301831336772125256130417913216294511962334473998836797227856770447251149438666015315806854659223125152328524957690836755951682616054796730664731830490622826413751611542333759533664934695209346193366102806539991481200657894385620966581362503597353569403202518901098402207521186256566100564463359494031480416773420231368315778681031755775995827885438936320100663039387152614401867737082144560925269344641657908797260240443632251982980453768231954312262476497898912501645939632160699798779778466220087623312892288597939871867602374615691164600031219633042873015741099015244669081656496350636735250595211256930249326119883045266259922491849148396885037599522219325172888585020949874166312513480890921599025861927117581907896265991259488189727277531745237367840062717573410443001766469304831063814066492630939070966909674239213174380507304567909330812051664507693790670935930565218732668409448311762902765588059298774496663949278845772860708661107317476912189645458134013631254062624509343839978377639762304620892520211646523520753376389553721090737936436434203146325457308189238724215461302284935883426546440015029200053223190902852442249457408852656364611054693498004673880837871561769847598202334096949656567473293683732274351937076470489877855340730168260623427172589076129314412754308680628853172388579056525348532727472915818436021688678226946234513520659208857322938478803374758197751925650651074831803735198837699486083687644993371396709379269247188255298624610310527404729780815986824734179914963502020198778203076863860213930756215779710330585032668090445197604348747725724621696611143694566531281335616584688653009503225239603901814609159272253563813339917912982804716377607095519948694654016507376664320273350546311744482812758265872562501264485203494581893766911551700024147723071511327324725883620642160826577175518246303702548757245841855236330409058505026161158018318602685891086394674561911344290814138547351642237261231175689703410936516614695817790062565260787119718898201694767973072671426876418319929711258488433093875252551084489241447101173808339716976143238910717483984694250971693883754915147031964876851064703646296114056286702920570608969321051836805644792752469878046205913498563521800728410730286913141369960135124159879348008376360873007157044351675743397953710326075238791425855300551173105942519851041751099132136160972454258489972651509391273754320865478782396318281847071451541298339124046357424958173375634676163178625653180580711383632448695103820317737012624680531599310264321617148443775370323161524751703650926916093198640634187793044209328123737570565456116168367567825728165333740751512317138483795693312579549693364119389853904765198143231240956578671641047289571234305950355654580829383499100189888225559646386141826534706642069074060704811240924695522470131945383075074854460323831752063515461783667401381562043003618176374483698371611987161855405191787143529967186192964556528789221078877651733089035754925538748804859825140910882244882677273471820053398174270786940721879653439820675367392073678678561000501522617794674901680960119899156879605834611587954095357828244335693541874756873255736468100968230574311088703604436651458553580720801416304035415664194824251481732282937392753239473183998662956675075773841518973475341773674898355796946249729007345005768674109191144454673389863315573584347479054309248039638443663337494918032119597986518581993629321935355935607206477053703302611660117436442968444127468975829599711861360247926267513775656242642500781201725829346484794004769128933597690945166970428529154897748899525463127975828687536913733864922987445461866586009536052657454969604200086492792161976582162468549252361916604295531082870137873663472520905686146006301572803364091814368586724092826969611276641745497518127642363786745788021073921100477985641736192734100939108385205165978894042920568803644516189977565095384970902384353788684216505760890295007881091275691702230974462378025699937725805600442803911213026496393828550517652146898856186307204547426133862615057633997958077970454004389432572841063887633871871072523768924372240378481913895392016518759990985284760681264215204278868084536300391268983954229764765891708038815132219246861626298043208803287271747642845336520152926876638461587144893143221739231754718473169406330616071980396715646410017253420925337445136414621013532232251725844935115323796828863107931915779361720127705475150175173757129418747369692926088650857596931969051884821308583756273724992856241299469504189241632448833274852481080264716251332575444074168256285344970382758927963358898055524886299221526125061187208020164882568065156790548873141619693944807338103011031687151567122927028777928044938154398058070840362037643585691634561607624576403706201541664651651727829926616165029217315211961683342064210323918509065573434669464361677154359352659430760080158580184727685602824131684530841900209989861131584264168566699039965531489438961912386776461205446728199162343778705106131846113653071445730655583656592532959098266154233232195636891108832567412552376861496886292596435872316394445195042628419331195334213409588133001367474295338504792721598661787807052104515661108165701666513012625805778551959147633408164061293726966545725772939115390675585312152795736086592916858808669419993617896350675147124925819287644093084196959486608188202682985282081025507878736671496270114602409465458938737401796641429378238876693759864531160254628812626191628431886514630474372688528225303656996815814027603533565230898586603138586798911240383563900001265661376117932071358804166902302290018542394015574256670923366321626655058773903898479893534801179794462597661200259317984434255322382306557681568771918379580833618308354404538355522118938321580106370377888679279725872393151896419197170483580156094007136099120410734662553674623630615883496653600018946292854222641868598011309421134106645107358160952963711206455357888868801834719082510238093835660552569705461394749644340938214255678821039047154587622938262593026757789499944958970246048800060560375009116715813337661047032217595057840370273914914930810525200288650265818427871414836512477634750436250622030941759330499825499922243097455152073223733568179165597368376797009927413613526538027297837948135545943456701381204122740077038859604156060057178940506335155665095746363859463580711412808871456052736473185390024692164259980430085327037492059679766635350131495736287335806774824945393680084639029183146701800435244377366552306086995819037438601429986389662985213510416253625360158752317638720079870882848693335328866493630471283835722415160742583290435525103315378306465780060164482728908089841807791261373506629486158611279736667039082409440544819391310772998067050041469141161727967678267005214644109626388871552108738803253462639055174754125110478545633005615606779162087604531583127685933427773317554936358523181357739456692967855235683509638924090752501036797368938532686038551097446352334235537484043950477182268305524149503343289788757614089083541380580515041226602759000702274013804207507802339691644577069535507302859865615188255596789900739115908680055419067422578520292088186354855212371285042150799589190985096595705793943535462653932938420284377952715300954204351039980537289448182941759957667918037185081939717869044504297014761691452744451367597971922633135122257124916791652870878773940907501725579447463365221448053660134693179343113191387406991959561322486794098825559222488940159234151976528687226691095799032060131343306464445236590966359894326335899719798184707190975958789792412976855105020793873857754472480835877961655237035906306993908678829971018464088273930644640846061157989188883830986130756481099120950264569532113039753784039066370531429947264288014015067391120334039496031924758733175102763651680667263116104011994260575648989604021957969903753172525061620082065126439624593809778998586475370470608847009971150859923315196554173190290641833454625267867945749779786321338399460992397030533756693744856874051303230515109358165117695936887289249640206980915902584858020774850719316870368067213404191105313066469748942263360331236268026484055821136186405967952528604256900007918986296457573374620680275331825936127751956357398433263493257904549974290011257230432293284960847769407961938130666535603968881108904667039894236546463808399541915697707075081623844588052898918273025364771515127459141275182332776631615123476823036573280735109892111661498021178347507085393245751770300986789531249179449449470959806957321805620481190443467284089966112244965402037369528213866943886000615373722393635486205380656052127334784283915438714701598406500469243606526669102904590501002785939219233199384375016913372526996099459106671343966858263728934882788611588575850249835667448174218176633518284999063157540986644128407496265189185390049202566701705810326587007820788171923761589177463140666195189261276887111552743027682424687596411567643843111585366722689586285168014565623208562071961867990198568629133866408728362185339005784410665209593325401506584154437552922007889520227568023260825320130844910928229970930475031124078379103745697138826556514872780563152488699098264798299676135435272220329905113466393277923286142902978288611582077368599637934176324459452378506697693374555173969953740578986391422259257597516389110553563415141872735022638364819013679301302790674783622528650242846310223874743154788397396794642833182681345646650087445091468048983127720649475409859928373537041856535383318650748939098984564792691839811191865178978516615648067752851696596223401872188082207881820270460714249936923195920143359604458151334278989322072597780060209684272036142288114309348109331182865872552024933290537080937785989800126011835768519489299548963438299642232945689183700249013670646048943286014425969142215337538665502346465109463750354271886701919169219248324453818950783011670399703995728277912909416294417637255057365680958516456349473133486161655332816829941022732660627768723887111667735405240997214586176919401164849455281705969322296526651808049472733724008553149796817535066642347753481883186631068957248955808099185934464741655158586544272235286858921932052504219240643366439299198015244378798305003969864282586985904487667852483178494384663662630899318815737206936683344726256189189222999798519648798337296683401773087662480408603183593164320381616406815077227695333751001650323803690451466791506537191359698097774488718298389232538351728186377862546270156051312999482797265552039899667055778519045376181703290934490826350941439907953812694617885552141962426727245871284884406995719362223468712582722859863060359146704924728419586086707908794112832394857539739526572225757028192160425696718536541402780554732562629570906888109047988826231737988779495015986355850831174741799928718251940280796427389536183281724892523630408720227980593342374790751412312677851077501097680156245402838562165325429782352845315188158668865214100116327447735628250632866342924135437753737454720246515183977216416293209526217173130803783514736428928793117343342552772357233634973203940914264535963160424050184894436920309357342017302347201340736318610608163028700413688292952816665908257998974941232863942968165075653141799514762113896937174358336165536123470240328248970200595862569711413262329401322812512917117952444342250958001108785488602118736970085518747167122129578341907710525847447977501816342091072105956221998450467249662110187636703330179059805530438041614937831175746442192369091090466668796602097856491638795627711036657720908322491825582574042041250289935057457817853072796043190828637127470815313401249090109877058284654026041248361196075400635675775442241505266562792407151195178742246104335295235867907615261099798561596255460161920789771739115600893044671897697044154813623881065144215636596321119057491268389732675679875882785097624748476973678207451560870252293650975766396600237968759784708497594505278695778195457042488547394373941164262912994956297292016652392918418609186793450142989979591928438582972293983312683547238805810203165728323156193406933094842998815328062627926257253473731339112793658471179062225966344225163181761267332895187626429944843999200321711626725887739210522356545406712919688227207655485625282689060949577173738070755425104933122850325958653975737893471845783988635852862991527134033515999018738404639230704102826374263626894243180890874616237836074055723636904715286879458000681406125821630294053153421657406398791252328765343503393223707016562761310672878085056985661369748640185068579050413745182818175609716378628546622380823818574005098871804188206250272273435451356014204037076923535275193705394370867883993399340949611956013768228465820594815579840034723912940810892231744330067289828978992093304420692898084939181875706922960603755708887440164618392540628523595340077727023506513031464010466428484128164804576580252441647508587642942118775407231640359597330631733820724413472458735208040281531036749075523355358469981313894166304171005951535185709502892843514149035081276001228812711937687812423923386758141241214674236174375329603279855733071845357782485299053816173738756293308459882480093795016035653906108202330702088634148132613286756761296469608370700826153408099342982528684438130065524406083963947879393829818204233142939704215972522202697500615950561266830717603434915195816586045857958281419915659728414505750274990168049122125853599940103895101431098874305997320335266394741857498896498724198442720011746649989190413551492884964041860054479889956940557838020234777461317248399649678117638510119937404149686884265249064187642102319376770152771308594550073476893985120603534182836270694569348644040290113079651157587240336484434421696695814840890966546706767692458424678040740348990417909335989755451467265631152436587368700391446341594069945146884660523157456189219712649847479197007699349942561945513808392974269860688966066116791254115653627921939548972284176136103335180340655128235065176872313633939013708770745362711800816046282380445186718910064373757100878024954575182641689596313463164363651225133184720859058600753516085802291213572959737853975008167668723181439707746445700648568281512516382697608303159651785708575639740700885665687347461710326500710708260086507861983329438349859313292339568318720267062727005975727321994387774298820776832945002000354267951318278526364110170603128825566465358765439548128348711943978382941289302225274033654064815465602488511691682029789359587672735712928847751949182575273539435989782462972626728375440244168638486247752215124734496574765763459045828884894454311869877627728211558588044877129019707475734534035286293974635342878753177298607028190517656747285955201754473714557042700475329622444558089274201252940696914694108372881441098144533463836310555470703448376214059540854377134325601305919802078859854525387236392699564830213249183882756541283122979463112763490586835117122356791477421442792602230188794611875629392699857685531110372719885802676607276531635884378483866878824829377421281268777902082447567047036518717632690663980460592339090090668561835140849759922661857081079295429069729209599006747522816831735416121175209656557097103615363780460491957461083288901572996368728728605278238141652984890163662647797345981203134529553944026876079742340033438324590433834343006078524177480769171310543539017827899584201411852912133452197161142368509017646732595482156745027505219162207827135481363308295357140483795063542634771974944001936367904880393575909114894215138216406550855068309589728093935938569150399217788363360714955499571842150732245990021160789005752116018505578897993763948542918411730509885442830267648359652147154074283939292770210164685620474453493085527768045352440687257976958037578438878562240504698332932597347500915830923971973060504445596663579108063152205004002424084989341330070901668150341460714787387456309066229600795722205060488907236242251884044321083491848107165549028824714424100402907937515736856461325980309964384135060436442458253507313012173764398913288760274048739596652439512424240294405350058190183874363825225285678576004748733043421008651425398815427671226277136200156069840247933727291020587100179683739501666043494622098828420074968846450698988759650528165427608131750339885998764809393989993738255275157248027108110649129127984362496118261595605802887864200010258811920810440731216874308826419615365469308652654539648962937433912318563852141807665798529314425590408554971815528519633719464536608743461913615645065612554950992728294540736444364900047056421405635166648994653405305328700236742195607588742448940016227597423066627082640886988911482604293000029968778458816857656363242460650245030582909206059470348017268764739348948036370384102792498593979061634079443268976659454004142510306345919239207617418281580525304445047806133074874341781702033671362212451847059891942347607995839640591021659478498222477299572953203090634723722876220762524544748532412055786858498742899321488679087651903031130596176461560507222229617180840595799114386825471119000987914504333950889399772478089779850857922952025514872303338943819584901854205953552791386493652405490330758600619956461391045516769127242092398156779812691306095156541697270100463616627632820419978337848234016257821660646641873156862170670679622485637865068164196805368242250677317437575693352477912628708373130612632674541203315539341032692960993414697918338382090474221411406581196509995515813986338979591709265089864915315978571423455084481499771345502777229313199440599558752138145348447202777326173358615484809939848182864916289629432869868051470233272614869493025985199641128959023680664758673813716426790949431419837317795642409797925534048461153422623607041169166848998959649125705877319493630915406221397002880912550699201390590512846479758867528239431760664192271572206397844178720080871138712456453704022949121363041593642660187897328684820786717101996741920670679123860519408023877098719364525117186773701358339566955966607815218448523110586894387341345547895987432860399526984658017402594921180817472883244963901684255728708919303321684607493507314569081072321928293697838734996763165842396855722149071134487718401997353648741566292150920569703703075898972609102691878262233252965544388749082310063657709261243403472388181990775569561638951538341722293399464271723552275224426393760892017511069690110298004438618749573712272630017594484971634162854955089891328742785798401405766121366390669725531111716300253485145719000870150293119795833540226537548943269388864902781255443691791419513132542238718137188898736953224566765594061159231514173372238456053477182999948419493254959219770452210048776354740138670498745396943393638964424381180940720793209435378057814084647689879747133352345588099646877985042077608947252153398355615598994945858618975525025017871203263777519901919013597518338552819169819296892808058905770769094234928484328038999061801733468116454280111021175498347885165693711973588529718207317161513846956175267692526682470511673119928046432578748153717083157300236166005626030184718101326277532219028363346940794563287090162788055164796212610534199190628318547652933196364499217281943009895186930592471403635968503737759070874653419184508236151608201674065088598083472897924402927232992720778361012218751659365278214073022038621437494930413632151214682955552003460855033526426612185632025937703136732823851762005775607499643355325858266509263169467589172774960363318609008917526562891805360494920220273760788450031839424557093841723636938573220011131440879775267394033495534178915041684562962892719968320753813429719233662421091492250375774598110016289191004161507303708783982423662480787133216182142115116260262932006054104581339128751353387564789996412149067992688923499398946971152873922388803160324774632953323629688125526379252743739958191775997297009245724158822125007573736501317404257125596136772642679298323816729404817709742143828202737483012072036729584019034693802263976956883869203420821746997446927325570814767973849122309172120953916176101863992224901276932392049879646842606791533108783335271203902216837080868361402822671147444188686162399648689962396635919210731278148859033414639796873356591286655777588684218582663472440643108927061256326139244490676765595570519123237023527594719446701049850455701465745497271340185445570350029381338995404203556219456807555694043970879737478569533380882795121225207254793021498424429054916835608050571885560769300322078905366451295507499659567546994526852482164053354691696289978041843073027013766959706277748873729561527707510133613675092528474576634544885571778321596442622002586489460957495979649564557151898439540886966019297237522062853221458973684082438512011058355649270278676758955120301894755318901399012646783585000602707735397432329057893619293627515595555704654280416060684324121640661413286810265704538073513970153337622448583573062186358714209169398260029481888344156834377798692275265609367462259514887570573927942515804862951370470195776047437889823751317035234737544047817613882959372696490651578046912319351547458396788807039679474698010303187455120615449459506479543017735575993081170784991016487199073397727297104881939064327194690598889718478744182850394652608092009527350968925368937146740632794400949171577261868198429666164254000894154448369819442833132757548481896840355489635175322938004004208608291547427773330986223511533279128827595042835747326072558595839999774059134687044191442181701050587465016502603140613156830337921433527744425021258299111924397857894302320604590898454005352715112027967294073722586724668264435624358849136473850989145195858483991987864454996464709555607088828783097268624930725411751558577609489135898092627780083732629864403651425105147411344172509798313465904743981031287208454808623410284861402313726474655126968024422922369592765067180978376556111569437314871924719467009715112433756015123096821536194815042198736212744087732489180127414668191028755192019439681460464906055144332500156290691247917892918339313994624215481410023285065417098399354282534903652601133306733952670295590606698969973946260125418311967995265423869977262968875411841358247541355844609779999249598386426574432176088515677636288750991073475543900262994294557369903892155332992311065194110668980087398910605302879869391662118983567131754587058599263023711498740595467871424465570318297209948223955238665092806505114145955177196108685743290283364983376681702784087251615641885216470916001113600245527758292615754940925103183363447722628183217297521055846421017579716862339862769268587013947948132940696882207533694857854247445416632901410329535570578210449663595431474335017344623064817960259267579450105585979571998180515903708333950974290154162695147388813083665467637274735886478633314658345744032918004842467917110136491336053567863642239426513974287707474604224815482704510685289222010721770431850077353122752825662194869846483105732895286704234198846047849779018337138840597099568779683644742786098449281322542688810287249726536257396689630034448807539990149557715570284219786431655306423701805129511667376947729097225557821091804123493860575222502768618124805198337465824710073092368413944174202421044846097699508396895138035259774381544134636965326215467818442628590386585803102673115514507765363333370199969967214491210272353781419240724962058760738429065827365411393101040898266617644756674575345626685758281470950581585767595951314870388811166162578459449866819778340719705158202149398722024856946444301536692094440664672221517781911393952532370185429211235631639224806293931815160917351919161105747126228926977361966250994859460211634984040349282600295219950551196663409848704672781007554474582512096321068268523756226918138568115224032547054625218439367458575630373908593381652114653165495227066175111516886507180255174799621227852397722662221653333273443681445003058044342763753950838628616959661319111352691461959465256013426845562057628939788214852870526685116394766967300727997951542935859625096797648234529284331064466096780106112385383718732131516420643123120245790210541112655575706653640163200934067893925600568199206312879240575421024025506831857596522166280614727772681808972675786530668136031618267489243390812726367934285394412004922544485196644655772764740307848018439184205728740994970187749296826727860109639366488329103322843691064804472179763049967060390017042025710875178145057230175289380204028880988511993821026145141517887342085639951609215537925849043733373900781477977704674908708043589668197655090379071831013382884487374946216177199377250786774878614065097381307185068428018170031823598969551440742329777214301356319622842157016038382534224320715356102161587530555564455804336451288096688148489667146658960834170000560326612285396413851191079742511739372339076800053267077014881731666582675306886249862191945692833242214920232821899138296968831063361682541108611460957249690297234837231524529312187304784598753046712706977662502168634066127299882346362694009513463139892748712647291901849507705349770770449205853888983837729909539645692293966016881685246800122009489839654040790246494820703348045303986667117064258903367671596747839784055760676259713599444549828782954872631877719586761642490643236535886040439746097863664934477447368648500778574075734620630341952369323961524407979356620473941191714533974361044402309803244166946779084749465618717278401338604393027541444867018925147621333432869425485338328928151455501700709147172393220157309407165965057902198500148972289620721114068937079895825685047708933782288485336496068228444701661096924013227040351098456207124855785622679415252935541986005407542177032545846904821150073332326017539613527605222150531425505405764624310957939324892844480118233807065783279826081441007021911334903339348241387605013803229807410020862480273395168440713494854804873796672749410918663431253912987884524449797009851766541011218207960076719242306281918905310451541269339883116744145853728552679184185161777645493554511013907825905624349913363526158188465336758652345506184970180498563266433456298318523491265289459070858429394141927034165890979515174620422895807171378216611111328526022965455368029298624967443923257330832702407157569570479473247961773708649401396428898055118424274404740310243335921616473679549544582516612187889153489069478587958281786454351225932921226489701559019150780358214714355659110274497041979715644737945678012929142147412129934279639364050347705391298365729991471845863445056270503066844991459532888357235768776051306414626732402656870008183665865968188007781091380652909553784604831027912942608785208643772238755710010502172332799180922998574010410974365112684736376215680359032764594810937079583306474051569718498012157869481921870089989223680832629427844699976131287393114208233316797854223987207441329574944752933201004801619051692943784953769107767780770151447472832711846152493006484920322116958369488618615215781111955044135144248730002685727874279325241491702233685578319946735656946140487085412057002377981274405711496101003295474121534853294415014541267715103771084949196602743120110838401660059537137084054312209167118726817957223596256677925052448521570888563589191307890791229556410830891008636020049200407018409038745888325179746451760833709894606899353541676337807230446109762830346607093029061289866704663384190762075929202897905337899293777815935186086292428091966113044832468975749468880695639764185013164104720785357524474509470228552321637487689363220912462199602343879707897377303514862996325294485065760217315659215831220307605523213035544980810618702801468470966445751510950492845673633484364435451154160022000414660621535381818000675240666477449848361764895191148703149125748566349001629360111544022888511252464138057165646591897577752892416655786082097075616743487006133688175685830250715518688256679871210682061923867845829498795200583503260438163967431108719435160163802346394426424799582464177273112684373138790398467664359985993731205620596157724610926286026413871356546678580885442537225378469787568007939092346092521606209305155127070736438454611965547255784615955267998674098749846375037672859882383614369888869342765374911107301609148780391553670925623301056538766583187919770624726421234858398385229949932896489046032957231789516053514161078228317718087289720854043696519678358083201681853216343020016711935601795310470715562571231512968316235206462227993470220382542362567728251914083385295433172189150707552554651973904365514622916512953754468628012767539524181420004906856602293239431022127741290039159643258059963197393193786420424706121865184189373641009042204870239969624261201708237698249904211383130694322635614255953357795777051127794341101336121836910123291064880702856524190354601670387069892070836674880957194495645707173937555199364999954289228601698586015591658499982189357878687391923718942545084956373263394679474400598650641172194304938637580529326227630641565851870010455734988217945610335069247535505041270392384450256219104951190405482651589282271498567866786437727369283936533370341152598126088662379578162350417644256301075088505652672960869791924094566576827843775303162096316580410582811373723212759833638070579029777729277755356515243717806602933418343703945227492568730914842459450519042855094064360279765775157870936331114658791162948619806181409403989208912972111563661986090350858654419116271885517597125876266553481489906848016654066202360528722513523464634469213813583884285131390339987986673346635064264283794396881347005630272278545519684812851328379379315173006983023476955684475308726172637723160309206233199394967905553668074279195400725394775893836457932507422381440771224142624437988869805197619910039527844265504361003492706291764734489178385760063176157249405113021877175725794509288416303032807361893590030096612499908401136604576058814113493826059939560753127260657909724280899614715702838059208719921890979688698856036474212287729326474962494508327735616282250880892612433891314274273329678500170746351493918590870020788248813281325175169561130371026070167527004055992644912425450938285194963307104754726142320559166643672613908173931808311830529099001763664975863747469766810692229616674348915535222991160973059076667643368575815896051175018379809567526065943543101811285953261057347363103590526485731871014511064906000574512428754246173798560591485310685150261749263742234699648984018054022889818862706063656934994057388423429749328748026107561515372788110060374993459675302097341205847603099780726188864576607217391653223556504054346381584811584163865873738404941885455607039455310464095739014584774512959763785283122843471207848368921445756825019783251777268313272794477951973937241342479118754364741095308292565587495558767396347667207303596743560125667835243806518560808590738049015712152818529002691238734230076839888107740642093352251143403656407007802911690675991616421612978856853663376588007944281006804244890608698285957635791562070427916217307701941769725884358241025918956277289085751457467793855433911865672346181916631275117491748667064212562097927516538814091408018023449064896147903045822282163387570847456868846035452689023533591981172907948008323058384909962165153925753705314781507497742531001113103617031258672209616717349819257268976081330828955474190708417489581259544064224592403221448663278910190658982378138055784496920348191051189844126460163314597485140187222941049015618870794479274759534338024991862570506569951317732993894285625661571208019857314884009711057208001840532566440808020976359428520744390444090428009935506041500382600490884918722765144606530858640685287106521170619916264650267569665651140003282710022356691413072666750822527770778796207266709827202019941077862535642928872053949726626418645427658229815486115358387085310313436243952112699994810517310340833781950510434611929771892481935514729591518498709362378528655557422320908501425395137813824509502495453393171661243079508219845437224657920506936140218883114981094231637512082552281226910857877457116046636853446051905059854713256345552182521634432300648833963972108321426529034832528957655227683148105238183633710282142117159654997156008526714442688225706831210420756309250328866180700837057617981430713739099825871439678241651618480374666226059167595015250564529705218288048140558880783649352090241665656849224092532353718400250395410912352345141553427402966114036732112461157567145344363146267117585886342082694116504899595466830058173871515036621274590731125207485783591042853715990744819656853009912689110099582424475861277211710787481711256600830384808792810209487373985204112159960374098393726173865413469139933921778876935298755100059626863642470877716785523240360026807210847331636653946732012761582633010932137917273227658405545464360643112756026292089145266312747572779743977674499226369568096841073807730701679354097893676000620363839546738590258309644683113680705097351725388439653773777956501339562462930763656030496885292328004065386465394515505282522677720161002591387518080522806933450097004639057547204463152732284256568531812318314634851530511847812052893869236609013616980000441809314337961506992736269875155903854069096504345851479541966319026317098528495361900158559861279979085683617501762027074383107467643509533839371322572101098860415445609379103057262762694500688224995997548105480342676099105084300766602615095933181524324049049892778322063496663787369635927346174611638247715468299008434073166563615497724681429997284804019001976983319415219732247446562269697448858110364850967496055023089226326673251428897390111247237749243668932113182630779872271668887022046628364547520061784303551698597857414258215512158257222175061508470601587533921478494406216595878858240222118482133992173406970686274549471359525854053472846773930497631009460360138786789832345820085745134550339905705342106611177714637604261935037425729396289832197058737757794645637718640579220268102654586509136908238979369868169706025109738376970559113000223211563100622618918021119982072473883851066696683518885802702114813415132172743139502293143287580384010289710982618939726990390675395612328356288891997530420451191027182680827766995163609607883238625703263790474172597432494849606027348103851022710517845470698568731629302110374618688269378841967474187415487552687005320380438097069748424683889618259700505529981555896130032345305863544802850265473977015534989594912255391493040058375987787341829009318619902837686725365688982434409212397478533723455022768906259295798459407183038594793444712830855107665974219035381434329987262951920246320393797683199517154011998223514043744715132637489460405302274366962655018190028920353417539777014583190376179261534500920440629757459632342637032641976144065194301320832611890168128843657800162165827663064096135379902361183821433045819821644032803595352498159623517719776709980818652528970390719784817249780072316199647102482143712320673938262456289075629500383987043707508332663347226817400245524894987888276482494966598113118705865543509647081365533108691715953083642297943452387589557155741709106491887224362203173071035382200599214070818590208414207610634834382591996778181629038471295044932883329503203186825179164758448463464254067056603499014594291665650231241467639191833430838141671913139225298440061381991579187975002854192395188755503786590575494861009238382330508250847528388853245226473602095053522696153146750590114467486421994508830647460243443377935870099886249554569701182595728734933768005152130783128507698004716332279603440459581212697519353581297536441411879132931905884636301366207515245048767053049227249636105470165756586332595179156177461420725977329608472092637148912840946767683963286256460376491827483569046078564026606421345851459922931131688403543991449313064949162741103193959348449781742916820218841155650804372947641149058380401090176624507338110702784346307713026390958806633558284816438502305040212307309620489682833823678440613902748202386299755894992089271342113492508510196671251645964834387139703951051234908018793920057316668895535277674303379088221414800859018567192273990603913720311094059727448645327067915748691128063968176883162979467654983049675462489679348024925329813608296980100842952900410863448746871743448490461492162774391732233901206974421577898481993134072019473835225317877906712342628697354864309471187964901989156007557372879179429883059307024451708541346940380678959804728078117406921448881488763900495311799281391536628756906510192409641640602287265582710169033188154781085662765611026945149831533901303147433744925288330540392314005280723262354223902444393568701476806532365840876891315125412631229616857015483514261923750269840540909522112627940844318523004047657738302804011968296043362787922968884518080348291772168935107974673129147091800142368011087733113873285442099980750860634786465284661774837566560614616845227299486627091508755778509263225469023754390411181716578339319216611772620938994015976812622697108052265975168402686870770874585498613450512058036361721849906151726087696842128354108102702056716154132638946873963271143946085877806759442302239472366580818666115603274216881489643178613122363188441619531452903618462912285739377975154621941274363829528836607274183619075909977263055003508114914525703093922312163635406103463740479089765907723258961531295222426377676604554434177668481047714873468070350117086315987101671680984244586093567501904525207355102141072209295459789526871639787083557195544140057607040589479809821161548654156401017586839606629568794622943064936759690027306895895384292200138687528031298723128600353039083212773872218863498201157761789539325629320853829783138395654907210412064967915565154956396667615300725745160758564981285804603131018490928017086502062659689373221605444018885968662198748469042589649676372048482990408665393148018780589247732423816990304612920042238246896366631052915703857060900528717704403484727875943852902525756460086252514557709401446183963509603914717876106685464816529660691166248280131490347127685186481378421264751727209680290265199739586087511804862494753566375167074383220126750589615578071663125731229290829382231649315381413144578097242870531286657540672571183796273571374685124339089207324295340362747143874964077450796453438809284434594541093702386622642554707594702929766826968293293859621013232676685655217601797909756607933800983479099538337207537348760666136606508346220528666617763226215266013364107039453508663537052267596039087295585158166506162635898262214172748837035633535366574639529516809114040003197129603700817473462195230321212781723378603544000536063823559387534129946510476031330759397954249840128451066464648056008277935029749779786629737482981480500215005319383751524030412338677650924305496565000146219790146241695935823864353296378048110671117162522416382853068402654543327750410551952217033827099443445933289246358650676390131418225458847398124905331149511883739095221790720002579473055895357110761637424613329188818426192259287589979616708016300699288312612217621479678736927613665542926400881063177576571060737549608819114470807761093733471952040951832506723482006325684056340191383415109616308257517688759258782717096455737031062193383335915457267916923995777731808418890766280455836166176939765952441429629260778355319306618176630773478672839537661764297331696908429894796466042504393098238665050563506354865556996692000858511109959625411007396344409050685040300373756208098598728330376594512554307336273956999616386107067615470782156723904804511584575449468257345703026225556345640997499922580773422796334913825397882781666846980164991962636400572327298004595431580017740772308243320574116570979585750233685580986437180617886908174693350139416085204894680338866975151132950102764875117516623770912119941057138635941520534093664672770959333831871111033904386735472447457927091670172705322587063109480061632149738408970968835239612872879384665157588997173817433469604851483700173708618938438704411247152060333791347192767956237615657145758390940140969633643524385755831094235291641416402790656189913897294515665554062686751489123118246799308965032930684912461228969302369577672123702430926801826001469095057255726679192841204030442043926981997427882907491260272142462539702199622199700045316359854793674249666422686856596671309920540058355657939291458590421589435801210897392983366252952337107274100213763564848491450545224607327081682488486060235759529995019684854791123986415758858935173235560198719985937523988768810837574588369953389536068878693919583287133118006535745195687203415667480036380932291498719267393364103510830892575825614699179558447576624307886274236596546592549369894502568841162000002354709462383631550995495500512735193172633742575093136510860731958400510160221104644951304321312689530037047140111389771528119766287348121143365729956537284928905987625349204698027083298155640208651761202032793571109928660852535663121422535119710616243704841928329560222949045901540392299379979171222671226581732041935020638716103201826999434269080920234258080846949472216939143666035291563324625962233927671416072126368465036893930347565044272114365701228619599488628158839436078914540202774803552838584880446334860975275547953959934401116384912647994510971730450143591072710686433704440734535446018439609135548253035216415112072846590667049798855276129819159544612230557247268072210760942918101783934832812737852982382165197186765560417304334091055311522860964551089075428478469903698015374127336999221955037898897818292484522327289245666510907558622634967881019319220687286857893476315547339149882019605616344467679787997610308178982682004271458002585513702373867127244772156574869964924273694961435397194363416839933619312987719870076562095222625725405351330383844963703010502132966116366936233973126139793114116406613545556865950940971593775197121310043633968248079648828256067095769920518734949688284107864645090251809078393154273977641900400582719753834621806721632383153354351862267534856681590139989445404503418031675366649825108858412792996606456076251525092105909567430866403837181238711081783603959762072360081057948305184681457758984378329000029312270016476927920125640203566263770057713597893922351316834542890047250297284648081114406417101444482559840428983591931978872551437567697129510660844859521045266061426494318054044541196778868009720052682641597309974194267150816319959618980282302893053316711127237946989457845446266438128267439875245665299325597992409643709737258358398870094895803089472504428991674378136331103523933488908714706106184550588046422707983945556979441916772497834174275041105594872650929306939450072475037075516047452492318309233371849837093839705015661768370681288700122067339816816076539212090172788350469642844843269426474891530901695416211149468242261906258766847288171876232670081010836194499999769207153420108375122354278829325712692042183907356115113174931362281066313115182333659915227684006310483793341675951371219450840732821220878191249047663258372031616088828037342887439698599720541919905144143328522076570463347349579633636261450821527609973868919350121446332413575906965573628962982430382087357623929037606467576740549819556747846871160755620921773712816673653058125186101447554226367233706442678689177097638996233401227778322366686206292249851919313790953967677190427440191268947998705317914358258638863500360223183277556922363391450611366951546700843569897628646076495757149990288364317061793958670014970433973987525267307712686154481847370622117085762317479403184672533652727277947419886257031341054131301207450223631096093838089139265922560297241303855827560926214680034875453657398680950918362832840045354905131016189534849178623296728730509826429837138090608116773089248061938259964501427257821283736336601724126389965975784470998603124124946997142953859210923167199796956493182058489618015706291388567635509812833726470691698848335553465235384143453548766611954807941318543046269531174572533940150388955394125536924875748656225649714617347450919193312479782846620298052588724179622601927662303214593964095787020190167413376871400753427600839631745831202461595304423425091638400377328936770105764793653980295156318089766185899931603211861027611717380223834580765083317948687443174409243292047570026402648364398064390248433729277684080103327655223820091497059962555019777373058141347564808150066999687680702166349871657921337162347640973099295434867106526845498918058587617019376912022530894126216999129462616404628659310521028995074930320408716857128514201938862311824027334656632119719746810344062934474976645681529749310244657272391565555201621948844617495092968322970668688325062542165919101386139237949391200742262141140432351034394532349121591338059746380984100501407493941069998375962885291880227777734242578951346132213557827963515124182392768431297728518300357379776683486706582251566996984056850802688879402850525924359731738512756862565760681047596769981864868924028471821182376676365408167346812894212686598774179506679824357025127690341522968748905361609330548211308010411361057703195347151825014389201326191738476269441759981153648725775694331903197949925447785861645289757188763384375839450780039388167248478768290139462017373771179256707601684709083271428379636341255983203071761853923097530605672229797685194783522644208577256155587073107559217728589777504343372837550524642891068476854738687102067150990990586561737665395692519341061924464252045546826821238054308832977397772744616924368543530516797450499154842925914925336354863367082745490124322805531546701522258343117272151500290043651485678500896301902568222958618444616277613177329890039488653476809879673311089243923068327067104322611018796157547814893192374720237575374398775385283862662703554709354380271020185737071901345535418650743974380342272103400761006226083930130037855748074888868244479310909898880865035519448790364605381860961784264162470445899177203303771489565900158009692273994027476407734624881088561803405737386474037661976261553221222059548451881237457452892204219958441275137766551768732699587141105727699000265710166456038717114454551531221340934209742302842312853960762561025944809859874660396852906376505085563096780387259152277233877513982901979542189640006588717374195754456309824309504753146425883867193058453798124749445052391913347061368794752515232121893819076500002583817468400823735050988129035360731829558976166819627697568539022413476016740229952657304834174679625239567170033680293979185668394802374444503609664781033946527141703927637417090966669568277402249159766189484967660353785068071014512132533303066172736000878951542769076382166227401025399230945120476514426139090259735606492655060522356296173627061959466434985764564613708732990756847496020097936932844875455866818559291539345939261952102198821944387893490954677464158287018945479285893070057403916727658857392885763953726975773700946974545490384368842726415932196133917073566178642059291836678353264815892499852918373605589630573041429135100129849457292011852362825702605984514703878036860159070079856040469204373192321704549481985010945162741748080173182361233800435033389470078515689476638787650461933557964504707742286489894562342699927425831884148306852999109376572359598219938070233414401095842104072921357448871554395155761788138101626314070932346608492041884557357534863902898452989166163187363038037318685487560799580210719025222801012532664196504788919160722971982208785768935792959138527065465197777698189920729987192000354706002930406227173582831593614505708650846190083557909772612579246213997684800823180144715595129179340647332029590716917931968511676673588383766603524188939751070059456508525969203908854494057843447048145030012762846708304733232157751921309321565767220836263202100278520979330481892397504960506477314031614466248519843259110288403876435743384863723443177187578479473705755490469587110569516134408095747957585545528634913671199453654485946059571363406366700115459307101504284930875581275919646598766556719230405682943330309523914223813591553162375167606348361395629265288829575782209357953658699130315266087172598222219786842813355955561446853285662054551624132360952468663634149501219837866870673626763809183445105161700349050300512451915244537166662576449436005885812325704187996159390161097698148432703010020636556600696213488986402273452794562602683751482845990666002225617737701377167735915690076681040320753507071610448713170683949990522678459739292986150244800117750243418627377799223055595323365561048995016748395781281053669450495155720275160917019218088497870524017302347455775158034077205412435863537435345361790309648476037266648616233360177058993487920113111754938670357685501930658470206357448134740533727121409556418197860874880960510528407712527268338530641514657703166836794651742479357546871044580207871445216879431374702916923798268714367826269604705786979800266770612403340126187741041513271274142661364945640519554161181531693183363188632200995187947854914407498806954121426478933246693257891736305993046534127856882266589269015839984382388760974667586668190233369429177045397143328705363504217014414171491315672568095646982292023052233602680578625825037235940113136326483520307112455371950970670159244287144970683804739920155176243124326831348488686737747546720110332653762000897254084815615336699248217038979495417516753446381920872431198510831175940623942989403772913052604153761658356412211944743016493526557727585360976308068985038117245028228293692132734276513667630760714287143029770470307163322750398706459124067730109210886562578552052608160980884728699150812244808690844267045460496777636778073978592631298901467033828090687855973453100532254247248943520825496968173344281220034000976791653097562265676864481633471669732349778925172486267876808732831737393336115748107454983674097086274372250190304415340352904175146574802962922139620378445097823577368881131301469629991829071008082295218855614695195995001282203865137106473667860982642808005168691932301537852940915880522430275709383027737879284048534360923054097920861885396348918905657046133384918218665121077763480964242403281280097494637956234308789063960067289209993158242432495965579859522405511949159686318794129738251059987915245008680085009350441772749525214179512234205371742342515478168460933853881078391638542241542393585735266030941070137732023853683986261391802774441117807769685167346218372848274720825844510981291473710910529220556500723478780886069281339298555481795568447811572492430047500910442820957349542458716239120040824097288689355389132050741974704414962993603545706087068836609097377257778342856667520253247601300611364972368322733329154339716292795305865067940754670289841415070205055831552445347862411625961034931705648930761423397981224398173322940324657380102952186406354241076551486434508190621336496954183938178273327854198960159221885400369755222329401832210017094193943707738914130558594765573279877260362206432780394795440072135589470827033501743464144098824685081569112113218165795682117257953062509092957731302758804785123770699763881451465683791573849556852861629906141018288163945852371238279869765751503771915445240224726460196018756973011397845264790617558256666892839124963418204200815662591454610450168376511974622817132701868363277683990852612748755290519682485322476273397917661319203808514486410555651823817267683105889706371214539543604917122115321536725012722680076342748523421155644528362319056399006365646213825022773264122278433721253963695184208272162465079655539568593410766941756635176668492407942714291848466882697120598582427899785820296852248577001805739771367277036666512623056468540782838202793120132609354279188713659106899667462638569636598925429676708795250182838279889810800859097029302057146942625048775315378937978878790326370552971644692433521674216489426902270243822038204986485239571552431047137938523260493543637663749292992799259826190045087384440330865875440813169855427222605371712507310354995004895372527900771777890648780205552173664064076996278666594874914438788215287561997138612079036506798641534529099752966182850255609303220756461829481030186792717314154959902614811099324050386422792999273127219992487469220130354517689884346349886625955076542721856723627520848329373925917006837259589373029104435621475805277234628225825483047355728076002816742066255440580199690934775799137046807636485664539831608061246568922736282410577856533540317384364416077097220716927922000885377390406615803703214698103236108784458796872452592081732180624496099694295721655695399326631743194001309492761028349148640088347317442110327389629122737727540655632371538377561694203261342140505005979241021297549475505723852023488724828035562443062545489815919566151322859942899936686360605083424320987469488059023407172847998097436261713319928751122957643594436136646949293326196601017519705458396892885614115829082357275704840514440529658157396382344116694125593572707849770829790937852224326357740388158491975948041397897969552057670075099753426358093683653541350069062228902903953117675226534460877078043094879751302179350183896810965503160018971765237377022403979395807065774462966559984395972245087977166017424572410843927596544726269147279526300158526552359611342773146223366879101692438535100385315840606286937491461333746236986014481942177696146552574176771259144644861769257551942899096499004634053280616310771817765860277820048579819267063189716857846201817261453853989244482757134863988976631077292680994544819918853252594798043737105022704854975437458605028474657335310517944130770112511027821480464368573480206744870829008485855638703572422926347593467673981269034989407476336873198727778927332876318829314543654382790498224432519177080445406710582232196925234588917325337650626648071575746979331598505252291617172844333608179526767150540319946703692453170360507836180236580389112988120276648257617187321802285721297553856026710969837108374666330540683361743381178795842551429393076595669332660780534091087939957158142359560883101849982835490187874914713917374042469844036746965644540444905405830049114846779956439565899327605533829180777601494126194920983435704052425869531676349337745018497388913997194940534124437864162573530591558964646585973509959448034738331037558403924583282076809275078722737449198173947924603573951316046559165472925573179524221439917294624036543309876013752529020558207540876296570173630888957138791766240850594427748211893765711726113094895278015739791166853401414026587984566783735410559834028870499297104667407178559384573745824192592441032872896035705857960785936256129840285138176760326938500636471251508863604620046224817590346967451213903561748807800251325095265296447692509063428941587994071395183704361824813360833602308319029633225917211069505967989303066681586721867002478631872422801391671886129789167725806884635106083664154959546114593253547536422584000204332599349571611181671172562244072871283494367608003268518917384401202836544400552783003301390351467116279725941496961624517957615214431905102704324538132885768432159174987554686540049409958638701074197150825363246896228288952011781002315362137865601922834647032822684257804584974530753524286230247842812963246907034374989371951684799013314073380306018584698338862678941996546775846470476807654465024978631359028335635451286751218356578188055968462601971077163440936819089986375035460555231569145721648101298937938091949242237143107860871775602277856538525528399060719437191030927168668364184415768529755660922005784165930495980456317960598035151327683604707592440363584287249515316365329884562167543807687908978431017898659496057722567884862645305127393833577472829771099774130352882734348267198301522005784820203055710637654539943751104684869154502297626858334417698184986823251786208412415674121504890224493771141642742526749286054213656892255401546277334455809198556212341912519745093515645769405235913390120305022848574629043026957462162183865542816015015350067363235195679381593541466058725595993893157918405467841884254051810660168195220488472040911373535452310771677109233447473838558509881205502835064355494668361767767768623861853229260435848521405007413596869674491237543607588468016734336458161373671948933182602158679715812386135556201050255542349820792832064891470382398390851219867108231920127153110872843651629370218615151670269448612056203032822909793467606047103040115507034317629131332681137375980767126420330175956955359796807103843503964022295635716662918065220453427179488889302134289504154801277416143714779830536104568078884430006718107438111428450546363139071989054537295308813775604231071544665975384286771298244920452899848671907513660485538327015421135390517941940968792741923725931390277880120351172268492354985929240394613926378779281795405797751863932528008151552973517034256357303331730956919163249957784407024426509006791575433485687944570275107363704061866943715182208538622518301431422860952047284465717788947625585436822812138826221776200773992970104156657558868687188731093902097279627132563113318877302721052612394726573855963013923393915813057522086271672064245515381125992559828297183137508103520513753974905221386989032869479462385284449391711862375635246276913783348109214613895166855508919815054475874046355051569284361694661779329898441730488511451382472163502213283527681022717486317607676744719175326371336115090105550103584259375259530529175988983700239144496811330984467644459851498936994040817735823318519528132727420766454289511681591320764135496193725219582013503773674150650251993998335149876997815940595615522970898169774779041209617299762910181280917572806806207374123940427811123027691467083324563377776629739217147134338166956367314191969409428686355006571302832640145164267208517558351788771125466095153385000864271971981616572682682091137318492436299566572665601903084580750432404213422006316616771110547805417751190811251376769281292108407086453580077302423862320699749002877169661986551738698475261943697200577445714552261585186868134497959003351745807152108913793830197870460970110256840667561648827779503495259122559226574005489944260110743867154275088175308004755256453668823235987489128242486078854361390284431620865321718896352455105395327902004527281402282139869014665299438939235867288163513790844086590323664071034941169222498588848311988686101906089369085725392032794093441853582427774730830768156771090244292269190653500308918403576624823424624055548616922664121037561206786172520698762900642386545687114328753579323786166743661577992258461366471740963659627954172604135909029774927127111272009239584466577851340989263899346923356345633703009681798180387865075099004724567335586147685933517310134127516208833284744460836076201285375321586497690989214458993401553493776128095684970327185581132116151282129030164399917518108534689578337990715011188568423989120296169819013735328482006473518644352851496245115251181656781945237040520081323923811873027705551773206415483979152426711564756370909723496333520787173038439263286038654085533533474476974128200510318416063834426293876658845777761280204976746023882831112422736572899039231158042534324884382610805274610464061873603349933554980338244549028967262617133867931987873425597307982339696666593056193690930728595173739406169460488926082785712956376385390378608864042666374864269129350893889328774178273213049434927551089717179063427805331526126803750527261849155089284570003200638830530290557730663199204097427092433429314366946028717479987930062943273268491867549599270141645308132225245702561066929085990253309717231225350644137086568320976446608694506674358912171308421465929934719676470681726627156904260754805578167599194525796270361139859786772242505763813374843874491412231185345560049337271558806270835519286342898672563398436965309398565678224469488897923277026592747175511857149474889667377418269474974134767448572786484445799941355024561187236284208968402330228312515834476109067293179786977983023364185092043162523203210581541447008564533362236428151236444771068514551897786670742928722118767380294947492837409229701724111798936552669420108312223811073808691144105773581034676972844719103957835221991050714848086892035099796546686601680158460665290207421734864598027280859475431614776908907077299291816931293436736887474326538590131133424705181740693059201484252390344842357260820530924934583420598623785906743889286226614158192730763999754314990995810361219211925843647237013755351357932818171572581070290254199953097159210639332573382479554712667987865585105226834824074112771999278729330607173424720044418425483385461264157557497117589151666877295011226741184488708294192830612481735046211066023704969166566320540061710561248026862441713537880338260926639337946603651131837034608940161768157193656715150609791411544357575515940349088702409013629873405936207064995744463180022814678741142569127885114679257015318034305038254671460420010061696481108755121908850284810960894265664863785252704654620000666852615493287684425348699408577325505923916280775109103247139886366361130173312166865406749640430608030463445847621798509828871179254489340575896063423509013565545242575427133678452933179090174429070164753026708207677394744097631655568021099354152928571786845768978606995601586731273659925908750900556171411077819252244502724689298790309146243526274647050591415517526418508855415109692640269795527540165689719860977507866086119354926793591573202640888009381426054780001986860637730955913180889717782182392705014121232838334847601405791848623122366355973300738662986056829917769712242200197863476934194521604941790941541825976543538721112147711346877984102331015099767655017116406004515642418951484191972401204384048213513471651565663439754602416001754079405328426098700833813201682504745513426901537864506308219082347722437273880822178514860314997636952593848556917163484437618903545329951475894502423531276374330052957745396760369124881642190168411211355377921057961175232397319429453676006751868993655846825420200074370768473829779850381772153932816976511794229908883556988102336408829844245535166499288548552111669495967860504330124901245129465420364526007049298239449436194549592343668615370030888684507459027261949414203482789942104423335424260663295632470887084916693456033592577556364913780523673215246294602994398103618154722225099534037789754308612741924792385785000500357439000299155654764141435055292502619143499794587822227840672406498235649894261648155652050048119218672711717360941594711280679143123687590336163747483580279855744834767006903349186326965918277347382900499265787925250314837610890747295809072871892323097093015363658339292463334140740367303678051051672056818923267240990774253432270601610355180465096740988981762562978663122004600337164088896814984166246473717530152894567967780210208172948397067789667574363319690704004355330092521994783001463325468107309638994888235467154218453314350804333968328999691049682384150619630586506506985120158081525365994418665030649609259802849170551011427069657219661288523984961685852087882069523481134946520425205790220685164409972692812225174330167821283570797369650019167246477049568199407066632213765332365864724630248046983909418759354211472988898132681917326645542994028434817751113477513876166553808305179527101583666825139086718694282424662253076967911835151112001813945959247586363920671140329763098848895165170810979323259583863247189203644570939656054959400019636445239669739076578265333408782950714322021517232730587972437511762618087405866324652831457383778167435008434820055128880509130928071460928621175876054356745294546753831854920149037220241183056881205611695977138109289555588671096721719327025173187782182952106503494348585350993723755553607536484542842047430629264625030257302008814938626743197192180347190643372259090659784857626878316587425849092599910834315995839184389531147281061229455523828872523112790281585204735574505589286198594516105013357482733685478778213284559546980131799250132278486664705627905795745237727091990992212435986473841898863592997501085998547231427297630552886107821053779530900525944684518381585598095930230482357063080846984027528716289519043525559298018033767939609572932827178832394382313946227036714321936071655222627154115855378360002445718496076202676807258623786413060829905597372901154788181876448977517037453189247528328294670238893036469243182657757058186491604301346132732709931698820877314821245745562619020847884914740309342241527779523353821399898270163319190414272129389843426338985318149420055005709586496630278115294340322269612030099808839597702034422889910168942258206919090400508550722480012098215588851770806986495538032693694895855448076374391210691669501992851257729432805532313250705506328131800324772427895842302862375282999567595450612540635649280424374113138504274055414848226532057283777287128719801477359648937354185494168234860215641982845924627948002327919883383837892653316414548128203466965105385568296845686118194034754461866696063284120722814493945562217103711755288141664429127435584998208711762375117655941535105444722214411365870928322260212074481621426068533941446036766686493590672527645729267097674415886649210343147977495291605977089115771199109624588046660616776787366066692354335093148104232786063338456197669204631526244114213978232653515475828899593769628487149086196172213774642574731019252565448670114173968896340298798626095233462555804367025777249755079459306303617006533110061377115421792841396745713854224925221292011525862939326714242737794045054387064947186369995528617379077721788705845285531245453395263279841579232543418651952440722854566993421502762245397878864932416594141466824670428060117685525158534454031767216255703805898652335708152675296007099310679770011656767297795929510725580004509738704662459670908423545337169828311837886334536403677433884853558351202372060293158755381224867608852389042864924850569949742942058349092335921792091854623591812381550784257108494376571203170032623125393010849405708006150209429646116743932275774238196916595357793227015118795239672040601475748723062914031641525487927268244104718556548115576226777590891437303010097764870077585170427946413545870992499062768758891908135393456787934379460809930954474006844707721854329111153181830405143337846405358130956595251008940752142093831458924931981384626628054772889931777163440329167106321074519081856657820525006251682966680992096657117993284615288121146824800670609126060777189272431173453453773316833774487400228184825712480264902587020822352332293181568205183605033000610182111311464739925417189009995273472093029583296379879944612137060253650440258102366078491103070500598880790810712821091699535985077165335914794112590159417830018332563686949549400616949634560825707134846059997549995473951606044073210285810466237142982139241110814151151390523123100457788552501955109004621498686785255069490828025725916871660014914983588900104990192680679429452817720414896433774110298668676721434731138437830138143255847870327446374271071663136261243833997729967011867377535694356326634638528899232501865119037257685797901567433685138325280605412185429265823174170296477285541527665076220281308963730189818480263192130135293380521382836786054890999013858534686641710547166295272427154134127424967255817138579547763627490076925853062424155165651709897899328314166498418230425147519976762680289391086255755345523190245303365317885197051071009532516472076858691419663204418868985275651714070334098423881891679310167867713475624930768027827676789994527370751523864688230085845063710652347705426243073512675441525672696549841490431640566481942306078362490632084324742622825466244954919465733489226157036902906538215097565533318245792713280182265085055396287811626696997323823336345357083457378093127381220343236117658148763575587545446100583393312425050500833125556098299249625548825854620894236177496031396806066462572416101995019923256405758556502665779035672352293069091454557092949971900935457542640620986242683967738981416647026887239268827768016205496244809301928103519093411452457296761592799842100753158012662718937815650661126669841352266970482739062557329122524302350917779825349271851249044886604769501443300645562189218173664543817692016485248615624489989243204298145693068729159631337422011918908027421245620523504617392827205806540882597779890042324453045949894054255375053860226214493345746383012466734220363381513334460521545950288059336070826612634624908943722624121654577354251672822644691835155123228119128585922867022807504308458448835074584762862839201281540202952026098072904807184872526665736436669120528458437572955161147705032737297245398017814093187526158212152647240668206547983577299162520823052769776305114913978409605548919237691498847304477193929753284766803735003895057027558076635035675258846811632931552909577920611318585162166763480097410504461936662850484062543154225113167713576221418257016943865129681169637382341116858502929905677117023119532035380994573325504637834387210441624370027428351138956007814942345387787976674991119105982330260306880744839715825205813524985180891623168874771012935126701098134881420669170384660880595275841216868252596288901391509823071563724570044969186096682642970928617488001834326290005347619298187069748457231777334676714329166985376285560807774008083946516726366520620803486803618156264213650358700335526829933219406945369244039642827122715445571822659486098077014372027329965961569922153276093557846419121354122908632985766557153807922279671618991092038366485295254550760154380663928747981248332475383989828558426938410527081970917820544406009140233691602731158759881305639362914945782887062358798364964631060648415992697609881601821947516817784535356994859645781656090685195935876564179219075972064086912625977241461395538018207539699225041073315627138446222977152806416682259416063109138759636749203417741699250454817249230642622736708830348289552118737235907320765113951908499182208135713332307273406671172589879650110504291970405405931584459467181547398762874824607147446302427798356549230376496651007552567278257905261786254151338945335689833074538119388112365897408747055034150084654143825829968877142921090623847788386221130149467928900974159950783180292321725848447451650962684015349965265218394579163089766860307680862236217269717521454959224384898685176029587301807738131299294505300922538337602787491557156100284928819377257865590490899464713637937017108467302776341407806121985746349082439068301687763110061751797597331803378722053576333281738203558452351592837316791381385024398952091222488249664237530977163780284268303353881160569212087606143964120582519987101722606377770735637519722727439777340040037960563200513019455037071318287900741744286958562153826024501271994967531275026370998141467686149291138754305706169747964290804375779911084665503191839035872877801581361506340638541606245659921968940167380341642129450012889118989100343274747238149412048110166366827420597283992925102269845224738130846631601453576153785117560557716269986579890524440006426339723418422219404679875221039007020236387755782036769267708854507984008789720793810681750151283095805114467471509945253367832468839369932492733766852117048015249486012799059220811874340154567853484602347346293049772894217031927841261386957557484527902278783238793370344158546526271521459579922115056617809176184638620921469434269133602131755366429744857967441608768172805610815393878412282039163545881333722418304537215554051669711201149001734443407503668868042819870641535871712176612680294319524226649738445743221647604176735537682188189938703218026881023188846480081329705532716299196593257079665115723768361611442221393498340076150765668638278633001410680282192844115164984515830165199047107432200435014097311915867528823436637786036526600158409233975167083412231167232858388372171721035358491514266422334859056056680487546334192057477616749867961364737220176572140522835457651920630247894194217996176568916474364735400199158829490323281013376817676071058986777778367350203659005712320174334568183208589154367406308425327899988787830737523941753244956251240200418614187045878191760816354669428932736962217974497636373984916519739925773852835127284529302155364617269229873012378869566080911419292692502309068059870541093736240766086632067171812544857836980423398077323673618190734586257311419121171437038633314793989471901265935193878135922513041837930532575973416423447262354406280711551266450504625778323755301282967879024969687629994286973105473717915055393967414001355704995613674504389910520782551665189052559451453222614924544841369308975048890942183047855446974857683222403227940461974645883921223647396974423229226016463233805465814850118428136284521181377814663117856725180335557338852393140412931843099429266376438781743012517702579739223064532938597306344437517725615262500638538723007000875657741097247453659833754350230171412837147612438551936781665547287292657851907523360090779457817802108835169765806836175455135120585655425787282635298538575804764739444394504635169692708098983786991086454319409203607832673454530307045042767524142832084884070837648496616663025516145516279042258469218514357052516511354910087788906069858214827652362093644544692758983250597031677851848651578783677611801609757216638059274573603164624622553323369604198311827281406785806716251778829215061627485451902787027277270223263970530760308454719865928996625130713137733690473550674829799779382011956208593860465141830378881433336364990255190043560456944919381149558451075014274117362787357432550440113637366360119664016482186772554606130247920614289489790461769911559784345003322824299482998480033431857319640982751032639069761423524229195758013244865357393670572209363273338001976173025924702218944919524750670341166713872284480202850354591921363460512163404203652767113422692009469133494117212934609998506873104187438960797488124132893142023114884830087979850386676272080951311867791076620275682093523668212740540019287413515256464621880318670143413512933298780167053012612388736426853836545371972114486114722548831537773638449521059638697063660319204894075589129503610743644318981751016326792759910517462459109928164887845833285134627729648908139788380930244970465015682272938353548198985747102632877634603281524137567458997576775224542016189393662523266457258954738539501398046052136274188791137631616541746429962547717622813878316617866644794537642540255250878422694529548523701433064681917065951396921881272974468906894228639395638754347932493545471435164478645902263317606557914492458587755614996464574683916424666306098573800741567427111598931444205594315107442042680751875465219372118479531149929966791870265383461442486819355703435723756974767701474415281791792550700648471236678831673406435071943126192642908385742082662167767258712576522296840955208068153766746360015511550809205823686920592603926256317956918046969435446296792384395682953975925060031398499683887830444073142725576518508282209020513302390128111743017987388999897855097624802475570459430628079068509762375416772734196508989777115096434819155876888599340213980223324978529071224198137753950397476518107675473542429342629598133115218291233530447832494526699031155986640755191716437924273985737788735718988799214177172637290810981290669336771332486058127639938570227581123172616507364942996467891913702289372297065546912992211731326430347494244693439048843732949278525971190050546215607817857983124793131229065397478239134776910682731896904135213674750263593477001705756801253485412317328819541943348751738597011167286725784315617776748936182694297964619659427272910002717214622648303077284421702758409712712640391583328718252491493846526760858573472336983805185458936718512363042610598010105623463586946469283254594169119315942634176618775789267038189332504821604995935087104195371335051035356999582617029273358931558088976880851876330842905598609265980230503579650562437700368302188516907357261624459854222084166184692982351471561028787229107341560459112837954654007258572174451724228475628445012306651592565327313652654578314964248156436918822222137792787168820233254114936996240472096711813777666030445957864316653947463290067054215237525391002570948901041810434131989564377790370229218389179364198655806920028859131927229371843820918037250984121487314977118223604384267080985628172547683727760045377295674935606535874722119113273313902470501286598231177528815993188116514926516887796057694136966604971293413164892637106297510378862170387851919310479173451175357512897929300074019650734870609094328772764539616016891008533091393892049498623057662669788059297414655752718588035680748017697044627195154030058983472279361590319245214280604831967204915141849846077235623832410271336058634328033280902569495092040568112719023696416518495716188840001373471203554136524479446824015039434545730829881611608953112390199524122704457912419678562774776417666718248512059740033204438084313504235611305087939305296097423303951417867860035583687581624181750213506027987687492913209160303966965938988329640148610481924697052905927903285769458938195694293668388891058095504015493087674543304160455835182864548588405107428591604415872658274934639374582261971800044266162192736362793483165841028623143086223328892724071076860801643469070102829579925017897995800051201770723784103488922030730122944629436347893191611021285146455907173553327224265443948520489791011919167633197076447769442220364192787116094682792667145224046885137972804785552834848615178539804896748461114976960469232648442859432337056990730801074405907464111652825231736328156470112741902030651986415747099814036945782928165732010118072305596913584799479981437261604107746116243128773713604344569694750219968968456733457880707640270262499570480616659408496187576111869255609415088758397215551950728688057262955041475401866831011251632079790627497322308061907868650310837556141513704933727428932419814851467976826534378590442492261398427972817710087509542795456578183002505594138208402197643581616156684117680606159619697761708048663735701873470599623325470375695737233601597101294038449848746310839977015799729273693462343005677509018765579888033654907773880426977303383150138914133826097044038976008905407056766937755792412044130763230110110135320820308948385509032679445321976047079416756410197069266026177571578231233624087147991615024322725424273811308238126638216400784716774219022178441207274362762233085868535303659468037379345144445367899518291521927760110270382733860449723587457491251676333873083795294631123717595011855009907765879127940146840701930417516742492515851190185151123819306112681008181142035741409382896162416171531562111405694795468889967031289008352637745331681227250330475232865234450924597044095478750245539757713458069228596220927577978534682175292738407003591169581669586167824455884684474525147321418177507447839656572189185820150935308511692537103783561384596076019018056591195229994512857440864824328268659309344062510963112134967577683184718003983228579764356758356429399276283279453846323323053549118665676522026105950041953968277529817514494289606072658355464290545869583865166142068922413667682654770170247290832155403338527464747773912572348435524421247820685655673698287654147875105087453835296058419380314778736733784473315262541526625828390709941395259744928099033734942074962197571569621160588327413060847506268812969505346646018196152505137585815338521513949443387955631523726884778852734905457063210509040818432473421507714646708002356080028395474392691808569242794983789937162551104048455913139164089258928398973848405902431918719171671592380707714356345720539280220282770903684928589283521707932616034569732454743404616108933740050298994650361034522179443747735826883923587865616230704034706294828078779099152163012393533547542840631596775695416913857445927305674068472893161203459593055623005923178441374775019473120931487900478664091521564986005250461925305020178176601534835781450504040869098442591260697849546618928134504357797643486617624835597658569217013009543041486992551407074502411592152368816845516474821194630140404037108885336850517985853264452353033930067508827786158063301679444745861061122544700446470331174341399734589585391604390804639272603705744198745890222302937071446980437045467976845210591378841334619881803842470383576153634646985983585965031600395092804964393813636788094582125199151356282830040529105390734472727923139537082945510102524962116058233462937816191545832409688114577819013085690776002692864634734788570227480148066153350900716155072917884449175034448638269078690538922215904320585197042911504453374541806107001928180734722701792723422728918207977691369680488891591830869863709949229954882910463653738831617472898536281615257763899516652815520837916495455008737241637238727886590829736059336233862869513598341408624983233835657703996635474748953879701057251786660034369311839173454500997565830949995100348462730431606097744551569026176036127417154537759142317473893745151505959520984823457526195250275626022216186638889285318226228124111834930847360249669680375967111343793115213036608818040263459405660002311700052019413070140322367216712514598284610794683784316184582109564198250800269933719316724702281143587309654404892383871860135866078227933025576213975492682255152046111994155097011956937204177024146775044664054884965671185030128234727179503185890168569716459299142584431564976900446301974715325705658706987529952338655834567149280912316931075568217004591999196299108677845527664171213779951389625137130876388535865759685963670217220211902914473071030789034676899518017831981226584577515287495214058123603262290377453057379480961563774446554854482668132142120405017935563934185674679151592587014300552699231263508697800968507711282841695672916796767623498018873502300717835413292670997069077987851273620270327678770568388819105731396842577203227542604052025286535342074034574842428770502345502552510629204278727620565130133945843115577133161775827392965835872181510069627954510808627029723882126200959913466449609033433019917785404267232428503483764731686659543993813167089697798390161086361874802118762169059477668437104021885414754204442220068726713530253864661158782810063082734379474101494438912397150979422217802099262014606843707725599425193594674164926553435627108739402245998951398699616316224630318801796454575509150580571485503757983340538220427499126308962965169665862377479284773807530930514056219507915177149154674851624225848394892031061901149325485724418724292239063630857814615356831078604511228401097733744197486989411566696421769551341997825055109210841751265338742176814191311415738123779452744072378811449812748015068903062570911913082715333034378350202942678031580417411945806723769617117014120087789524550107630546760924210947809803507335134951212506660403717186463228249616272194489297160902507932448085041474260628414890347488928400089935487254802436481798241734001374601378589704231241180009348300836087113306895776826621965835162720614743218316419779441869824374987435053277805188475621511349795213395465307517543268508872930806912353589491502338967484458112526447722120065398757755096939281582482695239770254535209884870073397052834677743824311199102795184828371239222355844338919286204288407477189322963502765574018945805118408017552057439172762383914714121690416045039636289532237076344434221391539273476222647914107735299845392959936850777993207053568507508358183052077996260337844042581704742318984289006280687591483873107124187904479725271040578038811628295393418924086553465706861375275288279622019815177227276696024250748305932228410299788527936433662631935966387581791527305022788916923046445745309145899966185916011077780994970489169781974676854982213237506950730311802031930117487543902158609709330706762603046092723056654186077317911378684081049837856968194226175919965411502272249795022023178442488478107255866256249985852091041998132745966545891555836769484053646794674226165727729023604982740339937116307693060715553336521700570814057960760620606585687908734047351159758944900327553051960025241153271463654166423794186292421850928543080178567761390264124044361768911702969605025175024737505321085817644006667645486834138157795064167523633543451497765715849593589094881981972673211784413693773032479029934894651413776176164387670765039381841457785461220275122240478930990409291276550145978240274637094472454850650289879540387991438708227288154297348735209272309275503640256919067342869132521667699235573427739077104323979990698390994270752545350461863987873875672490330415805971712882550807062309956569295585128143706251176614595140397534623377061430604521777605580542638196557070272578869042405085674807870981842320252719152745244700521595991241462696888289122975056463039568880735531407877050212725838467185551651482586030942033311664267975692358155326179159511419979335506676372436297867134115795710210319706413823533529271364615679914437642397629585187279678629052402216204576403592710083251255545650163028569940120566830407720449461620274473500027401933446913959944521894608682525396034338985558782510126624608701372233217679749805278279855281219685563145163565468658903955294331678906336197009065252280650304586805538728321044210311188475782003309673797866836612333046234044358700224580522557559568723909947738076792627883831508217388310600556465323232942282260339220983498726443431514590286276762893523054230686932265778654821370696854861706135687915261056235553792205652518841399106712880803006790768835057012711713622340315265656344204198577518616702032885826417233400550944045738201933431451404584328958430338041407557539519778705293127440632434754922848286856324653672089224941400786923785058215699408823148257511192558944505242979473554154517449285844756893824598643221189651010365141255190473912714598547171661024323367050740147288459637795180514441201484144626212891860453180505851003115118076072872895664295443589593403547904141296423283577788588804826616198855033525023484113175993872781607217118214687796238763461368717263230783920670459205518891560338819935560856191998097563705712336886578143459369260517422119710694530674059970864860595746481205572770027010925053650213996820243589271686143143887411398898399976055615918837833803739097021617852106144103546610185388128466086001495631733236585419860313548572517986458812181014049973998788212433080106690853640543204933178017913506536250138743013982722982327855415801287049435479823382770765202475706321161350591847131425507947555726097433724808682144719605202462001390671597700389932275100904241430555071461838522650640521450164691342837909301380288305398927791583412282450569677498304806273953824205219468141051643559938937631690863871502250370506600983349319242818969418939152820677049300387711817107876460908998016075233361689035622677557847294603189847924034449115362324133272161228605956026778244210151684122443110894941485690791364347653605471952872371916329544412968570451703821386883688056864258995315103424754988346135595553138717037100217456005908024723785173054922180037385022787934396217097832547976394786501185953210194378646994380661573606550051458392400979466116075371605871231467111143215441362979396225542863046152142150855157985337017291591697177764739192166421978983192595974073219204777545238950207423204935061258674520112974061889777839065783749502630850927460863938603840679505459391526710267329547318642914977803562524980269146553310697926307508861864085201156121667752570664662837794497015916936003800437657867455106358144447832538004143124109177882823372333163993457622219632374607588599390357581218780136757396802294269953041878098227511700033524147097094501807359042072622969794006859620793941136140916923307385082192077074831897735115491394981965273810511994851057081400315004062980904395678601490487522291050854639873399167889072755119652062576743376145652501838706929640759291292694190752288511877133372110567529991928843780213391753141081713452253889563769118698579671877478183256955598928492433659293815913523141002151499821147762460940253466902136848066666151434311389618130451708869041384958636820413345778356975285486672526166529122059228089647874656022255507186510880901750463351214207936917597113035414867896751513527832376064020431499873022154564321520458688052202186310867114721561354594228872622076142208519146315157306802483753683927248173528283485219924713215742169270936954428262660451084906478461603452731374686464033680922731002408467878264095719696085425948424711654404022029814772448377375357583296824297239609951614418683195146194170185143342731855378277396186966993213270376138683853267743603752869895803614984133010155849755901741637370926999582778644064670682547930005975089571427182688053233473812180076088127261528867389614896256825530822713957637145738966238345014250746365991312556603336000106119577766854262163521093449866472014595501959956529990222411811813017033309276354516742640090131229149810273206373657811113724651240255014503541838601664788745919680633018684137543742157898637116057439775586832800804710837638526971123074710075039757721322541344445323429150956576731595830657495264833416931241398011671533736988314726046200432159117594259613550495524950489412816039435081892097875392126815077900342564567627365961361526057429647842458260905921404535674692835784997364774939352302841696131592918943150326966618733732073058502347696838181294508686328717473153608102298095096894389657593150859355455077619416972112300026109029251966395579894413946894734646267006866656031371140282486339524451254415864558879465386002871438995108364509339236459439415997176643410570948767830340264261454295171240549166904219270450127335320924899176524502345072563405882196428115630285810488278027699480267990446928216410816671453347480865555041998315416375199505570656984144931707044110490999178791193293616334216189716397502077860562722981037931956879992750609670680402213318256015160662643517371103497085853442145808835166421594924576068744035977121962097561227115684197243761744701341542475146533223278674965111877596913437789027851518690702210440944861679910586982428446999408181870951635211282185089966148735181642677232153998733821041481265478250276231289727515526687705225667594361679499739544887828149155177725888012445827514718147795575111178670084278448044662994218083123602515224591894354588288247890392215517540882101380081794367696815527109196310643811633581851795270040306029984306077803313214354867378174793970887444244540861032566291811113478729044319041932656295615777727233310787659800058518924114921792480514175371021856464360230931136569451315074868851839631402259325609514909089484572569898824468683538590368684031415856984415581548406185113383432726314470872244249743576511083985501235192350375350595245360726839510570963460883499409092773366817654356788478206804706329113166254319134911996853189929130820708698907382860578808010732881806994932421343233133248458462483918791070574895860006035776624310770646498401219865140662926719304677623009958622263586629666828678313013313546604991599322149646489876338192852038420324322045316790759735770851782729320370890117896378641701425236386440838415639913112809938980944817458138044384589346460689120584761716587378769513013038735696516801912191748056406782919246005845405821709907178412188151748095297399526598408329409291262614675828422456082645857816593345315832057062844918464866636578415354570902596109896536195391062023612548215948884421123139686515910164049008462633781217555937926731963013179996654361606944750701919765207126196177249339859910363484315316108677300346045222355349062571311650137855337601389259191224267621013227435929830486283338121410733598665573350070925784965660917161840575996268534381650454519859588497794945451093492749043362036381354910388638904694824978244188666968232228842153174505632596998923702694689554574805887044564267142111575829180317158773945880841169446073399313266522850189190331615476608042188806421415364156877992857334137531715345307970311660217626766078938545334611376694045748876478661605102144592509235714521876242233560581216078391077415054330331307390560197258359197263778167586020920630028153661507268026077036447922026543521211930862523329325178771679715943733254693156533038526002528264602160728808611921913476555719023868780649983060606627811326327656784457974376828683819665867557241672086869664992175070138376061211850847262048387962011075451607904933007823765029484227841581155500090070403611885340495973345030992113237607890717846205721286813028678249214238086373966400151119172513653811031089096339936059969912274744721641809290947846047128745293950104521372634809617852428171929988161416489884745220336816508474969725596956898542403573055962544066601138975838857604334517694526564865499616390486973126979056978482843090872769023743710077966719283139404682073475133444626517079166962185914271605130932324213613612421456400905032482214136710471551749878724492779398450281616088779857818866029991051897792178037880092742811594316974043794224802496277480398876831309866566207884167776548172158225027019483098260478397447222123087571192568370999043385122056370681981649279040029570779078213976063386489276827930004285807544846292032556506970401206925922942115656593839800038005881096527863402288994064442915209469660659118164423178237232518064596802436750479222886141310468713668946021017293818212926520799134758899881871640202548107972905907468640032889895369811912632676545466385155293898880990243309666340598268365773072446507332333000546642199571343158345397322104257764559693042702259093337591455567901622359119928177046409300661581196371745365955028895532528871331193156207659569133537880397732474789448222416879972845039420521746723917056568802284988779352694691521569075360293362753010614620226245021026360835758549816987536356050290111872260890810793700504147731050025976808239237878691737442250910533788704550879868434248191112602273490856209947184711366555290334954993727525457680838961998648922082569643726990440576299299000584037341697200216668638968418409408667291256835506984539273203219906006549393136038077434749896120956471936315481936554059304917650946864567469527592516281042310416224716472009254694082919402305643779155897625742131112586650811040512139472902826307580965938648729234667039276680688515097475203492058930142735339817053259924511096940119984139340416356773684498961731295930887994458956760271809901987346600253051909727691474043873851542280865856531066027035267542396604484038131846882100918075884132162338176081694860965812766411391912588781307421641371648037750696184754134095309207319994458590886528292874810542127168636854098222902026973542920956087568863873030949472608957540298232785495889557375191336966890002950384852386909222711760086929016110056392801734856698630504390592226959878426916734127616411323526788302566743230085899987997613357268068334372298970829954544150630259338246033646623311647546179201960320725745806415022881818000415377148237358468581330852120557805766159087919942039330974525700260147169229446668580510154284302757315521487562789874281377890455330024085225054688594165564723630581951798875776665952199728224595573136987266961180757723722303587418509584366924643183726516348678823992587697612309521676379899901123335384880992313858129006993796970028269941573733183257444443270922790448286297287828082117052838995197756225678828493937964699858610611420572013398827884626809111704736272930995987458100642245780045248783632052821951204864803658026547876867918318518094493769048371474917738223167206341244600241861508408049001885031330918397231142964328379840989505834538421394446230776162923656256642570164690829945595599518524570792200473352383556066112437323060604597439326886348136893024535391618379623957590887206316339562182428367870509976771656964689804818521511330171192520520770867825508065524570067436413738457539735679609395217206349546820096417960603430014086630155520832106915646420054406921976108994133204422909250710933993540624103608815465496859170724009893691930218667137195406374579269278624353372018191554003339411036433430183136919850846383304623107820058030134222945709556978071911961336778249163297208869728972518193966336209809027513933505441376831479111844210751631136007856931416356647297051866659639155887939374935645997511492941624744814770857666014983871235816637835974797953025290591999811317805233490799615027646821790654927649033726475579960285703150733441241275706759623897829949632046466811082651618801488354975487199509203041553389651314832332309963808359018361204007351600786033938483038203628403571056759011093050137978281091587832890546034819141684179767791414319317436374095371874702840307670612429801731164251486799691967645221617651923777719192201335397714508918596368245561604213978385787937188725728389668263111754968225775129271643495762952863908271413363255197987195830894895872468146284906866204144973818711862141216660743927950470249256847069193688166674171507751980769959494992411024095049153047812031255426603734252702547286010422641200918203924401433082212538090177060603852518656492483491570061380926205239253335879528473666897499046816856266028711477853473791750588516977619425262914810312577659419134273952745062472750791935460307970194252441450094107396317585193342923773197039329730421877087383969263788571238435126303835615512232075699566085615813060975316688183870511246966574355265726032169250728258861191814971699234159101723180759634581847092074156464566413159028904261199948447029370458917599813098285888542876319163632290851823612828830155222477058155989637394082880876409802998071382594873589858939191913712431069517267796381311180826832002576494707132245120802559621562712286949384016639251901610533541517482636322111121535377875155678844296144135641294120238302771385599481892910723802720831125707266207651658193194671923476185570039419303821178478332896438367289368828367002725764271621103882336622766629702909977301707042297003370523442604484247689942708155296431185766776950132705135625220704227294981234557814932026355860501868807266599308352320648064186469526423541831164150945753056827056650799665772498865509215605381969031562042026904611174788772194556496472684316993323085143501652659908940938686245065323534215868649742005591701087854051951520579940909345548264923239065223152452203822713350929741370640682688730453123636805973865915955878820516528532014269018749770819409348774533815488809036883591453800848876624773567294829538334661627018002886255192404461534210848720842155148786843951050025659356734180130305958135786158853145425408371855297759048336420208876403088219785010751379577642338356514927638073064748500652684874599268243165656526872319175730343187271845865838716740036232333134988175618144175225280094301180383775006590940446235366522451264451721996845055499183119466288306217913828604711725124476170398440890159019952333883732023472263065090711284768513803897683713950599242244518877459719563946644276492123726055326237493907429600315353854980445322080494325569651757656463411367951661008429057139141143140597153631137250770917100642187977998488801318120246424994026530480739493322576638366862731297059573454260339503581576427363223336012551382252521048244833647903429607829086135788406266096500295672167264255190418253301177676578936782754474146667192518436473070469232001509358609970250528519653786299032196653700381208160638304150973773703522313193015788533918771573719309886795366149165056076192446097714583916145200459811220606042227870165528188924372091796608702571517418864657308972665017773463769393149784202465600987093364229095838517105569565903106438874269774694863597749900705085497971178364606604674393634172321862623672592925118371375932164413949555357865907635648655078694559303940447758130014548032496377141031983387996699035831448720480666860109073624329629003390937437397005033584072434458306157566062191817792325244901595266563275611434670963480562263535796644188068555535412987000039241569216917515169628355770926086159307314116587161997394719663490002646325639226847367950918900390313862108955193435072946645484155915154428181902591652063661822947383449775334864723751722409670591455178992972255894780683315633355429797526435622067919076212711494510305261405836683962632500771877172434187510013472309911936267108184714361996674161113046694580637062803364186710111895829238041870133629517320149743642218102863113523628636227315589008040580894250470757033914971698194100750624130694319760952654281769817165210366337236320574536709833754214804960123677932884623955668598104335509734598737337491742499406483078510855559376970218208410481239829175140054954975267208259849678009675181261329273145781873337210327977573509372622103916207649398989412739309321131245329118985678525947040954148239976738131024990877393545230032095595146753190490426318853940530758030602993711158809653394019558706617853800157674767092738385880402876622004259902671593563593643869688270755192756649602527958793017325711118857181511914305383046432663589631444149100600002368031946439802181006774784692871923942560859575262267825123235397576471412521560921760592641216499762747869862226549683298084879637254307018800364117604569150320801124844514807724900188260556892662598731634177317955068876116944003084609726221887062335708041263039165444974216067319660465411285968974872299315136950089114924880761235455876193644918592967912136689445884066230550323156035765961064901690955268351582295602675825406789566220275275493244405175037703349699300614843797929602727280733571364938074056122301985224542960219985348477010821238706136417945175867049586542504417780365304573093682630493664826126441679212512298660497758023141553591604976834034684377344085753742729865356040515886704646232459445412251078052637128383949171460680826027671427421029032455169929287861022767881222421131241598890117771827178332669374983859120512961767446827789039927486936582391962746267900058367400908019150354061626338811055456341647332967139171107973022770814085211991872613391119782448157055700878747079714762163928765705598715358154970869250223468737931253644846512855161071824682898821102055989947344207767105067016166194948581892530620216201440128065378570289611589726427054078651017520881849825062707154371975257647576514330920309857841175971312890801254830773686571980115620065553723886457847848851081458199455140744675951372151913630460509855096877590215221808745653309466383811265822655545602956919885589767294678468546692282786483807579280773949195567298341259686451596388442361678303527339440689950039407933908317050173764361700702836489201740289857434593794332299374276281992552169605352606308713579125038870952780229142180528499589751335267994763763118894336349892691287094757278193473401941968510696634377829342635853950204730942025162785533122229892630275916155647854883007023188824150386467180045851337648056463578948410426563443101982353503309886308442637336221688182134179850878704371969534456482477675050786422549284150621599055029414658415400564906721053274244679064259213979114422608879806677674887681983537239697581057812858343674463165707208593114200459948579984799507574256537386704884823053863116110832131534001740328508981118504936937718969098934297911511459457113608393921296699107056004481940450088833916694744573272984583034866685961192579312116067091935092881551244100585711416986718956775525597824206699198326075407969517206660627399703760337739636599733551883848662490853645404885876526676711613642251700655708741979377221968826005182716778565844810077242185409620328744366184268006383951940341946241618191027087131236094938084281190604408736294760041063827065624700616134312286273317961365216659837649300139698296982068962926335406002300283501307021322141640304667687169996164995084304872452154570893716754342240380043961609870671501742501566486828482069546803350010671875924459822600191756032039121783448504146574009981178296817724410097962007772946210535959971574285555400869047930864590984925672839693340919716545541926895890058505436438090355169811150186058122036270063682965863730259132588645914289354729969897094894835146828234719307125703635226078967915230293813130895581183069178669762754662990704756912369121673440914168478761952359829405235475914250919835292993519571507569770828642350462503846408635475974877589548299447463617773802979271391871156557904338823155683455062723335405235574940005814318827286116308875665873637351403036791038336743681623455151653512605610325984910170854278491655315393298446855108759023481784274562847745045522506479221715597881988850510033055869390406349501786754590274204899403668054690131521906723404043668965422018118305361045811606827021926094489609211627787893429192092888803437097659400654138810351890011259389163523391952782704013325505316487357888818062566928131140607081736500171058264252885321642429523204203984480419680956713140151425435954345977359809073969486313185398849445856367650831582385374172879896463107370658948552095020365291679657976581084280134170748323878704581200684120408799570042156696163590028496869165361898753956509180829340717046909546016402673014240697138149123993113664969767847275632656923068372675954823756744431810671121712999770991968152521395243610811262446285658551002136163326375188938460382307071596429280857019193227392465847505877846926430834837658569621727655891443862133450200992409325776719459442995305788843112789103340209816373395786046023925426922424783192882919244125397602134953474106666104287274343982393383519829081497447991097031567727612736843514223603838603398141658402562992812262781656068961143338477099846490611416365146781101962782587671443962946826604379589835380198077919523976614064165262302097068679741191559773951193077156113989624357650450726758947374643148784220999086639207538175837613376772947857603392705899537072863238748984017824709677145778785489874852153562335277888985497917594943518009131013575408382922635420139467634454250371904389944330585234134614994147587402203870632185013216763331046864934250757834550457033265528637353440517945602386912045085808423009458712661948871319155980274556456011421249680451075489152538718001091030168583108891530623289347909707804307442378325275821544553222398804057369391041262428173643197388252652960353596279647241299435452553102483983128186430152794531688005154104410240838232417586473122104055605877276874292677182752685673822745174771200181650910911552418653666973521765250562979045777379394317308218633692117560447026383737198863606541444390730744281117008339885846808216767021307651378601229363070521041998365090523941662903133288441655115155823535071422996203760263943701306471925162501229713065379856297942677880491317046063409847638098337108998544899424915053447663203886149703686759446717642043863627491861016808795868450951881833746021453843793836740702439410785283362120221625283242116951614912556283662215574301387012529107695382332406765886742652231339416736448082342983384006484211640249119933050077711822746125486832419220412207673219709027895511399688791436494407515045464133101372757480227344943037565171037569302883639918415242074201966193765559163458646805848809697725246419800977850629999716735569788217009209405184228373914218580391970189415117993030745443576256506012165876563693529349182889285222249810098051575019126564006450050666577526909768336022047341595368456965024470392416741729476283845515379630769516388883757241040181133626916934319436253274926568528222689501273028520216014020383368758824653096803826485608997398785430183896371691799356813360345247251591375031786481633793879789171387261030100165650551288185132628344866940013086187573261865245186863058474325526342676661450633119340171032860189390585160792779883119396212039420031551604669972200010978281181119475019223630815702785552243553622515551080680958813405239184370235171183248368942791835610111050766825792702333505432638581317681537679105624519841100342189057392172977968184609468400341280230606720426970281009816161550344249865547827128184599571565185517761113544291668748355855530816125122528951798860721705831196706752085787957231668061036259142596142957668506011962633545524172460958927324076500791062438488177719734577451780870568018486443968041765542516007405625320282970196564847684560447902880328205319954683861807516588009611802082370242365979747900777128346254552055798272954041801735161460344219118209215144302737451876689960097582258421614315878678118514801538854410608981701890895433445488683528921697770697437632123475452265629726835300883061279241642305504740778617893492939425597471293009596832290783899627706672529888078440905222638778528792395112055694876866233963809639243688273063950703703862142556221003054634753633418076325094966905204846435701530650712990466496430204160352865153642504491358474904632920609299097777074662505715622722350140727866115329004724890975621029207217925353454197274843081794373345775205338727547555248027747237538794146920769436922893157460236741985055066951153527414901997680815223351664568446118901408295247436933978905134662504277105951107096749815986953440358153474939192104514019688212515717537027676276354491772150407415470398655237085310709932815208211338631557793008152606443094011297524194819356803259706238591137467816545129189327430071397411322795148835750072138462311409821235936649637175297146513964033110436344795078601831621622928113459553069642042844370913588757494958495559789349639999887718365301181664321975378855712724786177019210076174996924440137551789426536677390308063507365878048286014258252948271198834641650168140175067241378399990805057275402730271539242237321957983998388130822863881202986340875025613279005205277140622799382943541422646370028272035783574523631822482205488101293039609747168405574527930672668487030837937754699784606135855825417345771928264784504187931698749941237014524597080999117870480754778795722816290834946085734643222627666594105013025339308599712498499657765606977510012708335876221563381427935300487034089689210573846845507398782779301611515305995903084626687897005667208441510125458579962195161124570774903602610426584225038158739612365381756184672661155111927825759763762790779340012056594461760523411141718781174601565881884134189756983272925124049461216279021824380204011768075129330877993004024528209324257033223654644170445345068327106026716824877103637771985596062655440880360144549652114843496913810836129114490871349692684822903818582710513720775297754466404538849008414422323646707274505133332414443678596158724827353373504792489618964362495757234885654559031864098835376526305867180178017573717024240221159901635854330552700792629848562902090877650188262462173588754355454941118967720356375092988523347844656880136645761105723058680284265564119961900721981708897243662001451862202203518527394373434153497464031253437290868252245487018995815231815132119688321974206194169385678652185961160052828604478929570455458177871816616257060358225271405944878870239961571123297321383034593889698471094999172149083347861317403778026225183380131543626838854739248995266993719801009648823313077968723298784919018315823876089403606925580183529596068024925170900830222758304255802021337280667824513783469737288608911156933931825527033155403397382752510256474008161390196580807178915272333960378392600890145782208252118638124401235692258207195992590443112630643942813725465383575778949277771165539160619813310343878342045273833654974545413150547287200052477435016946329617191007421487995732221443199103443018110634789374185344492156717036425981638538971539213989205006304630193022532007991274998059222471522465682009552490813743273297597781919417905205441567314602551128897995270078483834497976822806633731153907038771463299462984243764116481540908839006472101864002433392495218416602809576717119603914947861527161673111605667917253343691701405020774605456311899599630381069368927052355483432571639583809427694611468036779238247739380348430664779314474653334282428916648850564126827082028533644797074246176125203002739136599541741456858788402581622952314463188161926297835082643935208287327266907981952316874071358320274449933140837933245178612251647725513274838869676040677012633722856580468662092851951957473519355964926419789707099765760015731311101869681051634694487942837930169113701889616610694480783556785929359730606031383444214620882951667672898585156834843490073401799727848301981193265370419736884674775074346095398080628577729174144907723834491342977544435072365291902297346515735255216212388219067772505036966364784948230141199575860541096375233890060145796364479716303527509448867240351777301660893262687646214160904753629446194125856437565787925332985220284227002160819028452469728161679164079361514722648076245346519817551201417856767161584088557579103838652648547238240942389421037147275382436111453013242698690705801662699383437728340038727368631197594960871841416141567680400975846432500380417017814866546114570734410940377631324168058249544494597389436916883410487647988059668220482840049765430256807936997617769490998823774349553069146328944670808131689958143742743265971498653167629385986664650908374911611247516009682544901725147650776546833404155278487125961902085445194271313267913767126202230470707615759742716320783497841439848842339566160810430521535861327544535606260132845943414986382331903308489661476677000494312033657225645603829166372728601901671870760376897645971664821119783254619873460555467394927298238195929852278237868195091392479858980051831102789916877478541837201798652196013981464357006211028511932432223521168169612796629581710031324107634258913426115242491408971817947211011495339225340173375323264231296426245986525539343269269564950906925081596464675858535993782069393689476203547809157692708538564289381791397076681129486009123617559507911382594141411794781955601363982485887521894703539620468838142331542788628436818674872227870277635978743485614145779508557089219763080307084935753655459715659536405082172327733013102321895425371442795312192298573581450112842397835757590795283410795215961850326598639007946701161279665394036753656686412113964779922340696833640974645840970277783735856003040385870988255050734894798495572389604210373385162649870516217177896952999076454743110780267158317585860729967312748810434144303259610787252436267285747115402107395415272440536619162133954417759913130038212817784626073148749353537359837928570078750596908106529766509548549086113925622924774493488342504041753156707163372361254477093427838194567981171133933424684276906993272177558960080903764323275878102189590021985914718824184610357347062165072722604773255473406519256137331392180488993598363570946312749800972478082710301745340761280050323956730349319582856706515686265147635681120853578836917180769831027157392882236154436965623788978905754977065337200841858509771830487109901229582444052530814350003105004098556735961528754935971398603344122335504087029357523467873650535549652732302852122850192684432826194967844433847085969633523358859269923479218952903518532399963136347813170380593203777265681974805248044466929200880869950427667863590831737347163776809364324080028115655159070166015319902882993404641458888484519298621990743148175460803122971831014835917535575037931919855395586602308389860511489978784841896729042006152158638685667403183201911668921588148446444254339135353059599286849863923006571488230126257060075083493344038470054069768880529846102994598953622744273911544963616108420339599137586046087555772402885718850399747308181149831707810824651281586921120874066563834979626458637549857463767554080806138314319637176578970960539326116249073563063145555853449182270563714278837669264962219719760552040547116173348368443362088940136560196225504370693051902524959190215052075843803847635722747930302839591076243450541388165465185794679824918290810506838879650637309321114257498009121764356123247657492513347408689798181558092544358501481424436318440103292714500997334516785197907465307474185540193056635482384504401795120720695913939836400115583246321431737903131101952297949362734390196025549125291033180503264934350464042045959957808822780588940520892789877052834925565815928946496515010209348939668540718958189764697739827364458898017330286662553304527782846695617558265686480419241688689109058529512730783263413688517903867799714423125091729778098309841949318237648060927448476528760131948732145509816385188825139049061843987887702432309838499691542265943542414573530122279614917248408614530847610767655692048177010546812802738209531885555688926251822015195671085096674138612454083239148012369261708486876485462774533804372253423434871592227562866223968240555245428454213254355275342701781176348753261633911503053266476957229609826109648085760921896156487450835811041282700333050661925130265814164615926250310606685335023148899041968065103643071489240536518665321735046240671756862792086747106586090308999360330809748403261791946999631324270807322171178519814622593241071727132337524857705083807751440340196640985150159152935644427666286419591712422960366257908796724676441555965681134828016026754862930199812734850047369909871275988182574076892736640407251679168640923624659036472543235103773408199173721370120539750600356445106535203262365265190141911460572840721510011358118012988683747259048533935624771851709509131966062070561868663572871719686007160961860935878094002705693964631515944009094304913417630809648359603083774285045223239755125004569993240685902514996503548555534565861904761518094779754726686195528552393370951619122010542267846081898330166135599489308021466660598748280188562030172306684474000324966031313120431560796179672097131376035849636557045006052941858454446756413129082462960976036883459879880045898960587908769921438153281749459385284009137057327222412160376013782251624780673093428529480954229220877138722418786055953935199368557293565446909471691411094825000002747847495605175267269469634864986474172497146242378489683185352804793431701703107103584437474028747253271003629436707853732824819369593678976944087916063692539872990984244661545473049098669375745786552211856377002049992355387128006122547255543037576594798865579565200398289137991207370176288043008514379880350235013106873670872539214975827076516053183631325633574647687453194240488279634761946213007445496235918078988002459224923420655511173215407088936781035123740833056255936326194008232886542674556593898241273606454117150977847742974323947183191751956368658771090061149178000113287623940646832437089053001951785113715149222597542144218638854971450483534069199978532637878793321101436958228507234893202800679186738742699005773972683296540906802795528164806716788829753396935944657619869795319713767693849873000713463864987650366580692743162983138684486890319839105972355804158924947446529320409880790867156618192356817564921632112326971512674369950193389505557253434891888072917955491838013485946740185983521982606924431882645493202223861279958586006378713489274119969406119736240289442250006403340170669067618124922759572526245527994811461538845129654958676899971079996093594003979526232228632347699780824127837934354933286991342982022279387313457769350012326088856732784396040577561793565567640467483819807210115523131273921303793581627498757335611752756149709916884859687456216795824951117617870111222186386490646857360842722720313951559087583570055329824311364873168325051040158093036967401873225024722130226934747878920471205656609514975200802866010687391872448942444859217764609323261104772594539877767388324913057108772120111108879347093513676828071984143735129073800086903386582680648748440340649888096874151526868838669506838970078406194292582032483490800767782100878992439724202462190132325052333503104201025348924367379285032888011947070652504536976354455091948248759864248636828932203598452629785948573051040869641166491825080592753282991229249781225149059858402282567016108266975740132198571165623166605029057436850291927088202290231295362210394710779377135120117507547868790624282022408349052404274318449944362808226630642619603655558864881520487998824223293016258244514916339808524686059136542252201915546674020040954544964527479961289032555672392547287355544826465557587991265416651050281387225752593673445735844830101009385079980440954128960899047094488588807641743924025860489968147492430847321620180783633059332141202669782372911169871677489845201414557021506678825985177110997981008537307935322952048882808894986037240868262365304922822045226694679255316473162348996029150285611216581266716104401316875121268328199669161261195859040599679174502630153468078161484211400330473373692727693240265915359755240295219602212122858215214957458018873987472466903695592324202268481083077282588558334984698461015867384107391242207238932072695428829473607901674090041836800659358267881995152519391618529980164881438338038946945665289648473261190818014885836134962938149628755658227651168325297976419282935580309890984785189337176820382671357083959333247643247286248664427554321056635600399959227803034798138298181094714787312254351665261938950754600408144567646229386410241238150907179203398948143193651444383609971264244510358453752410404480741916892672093225904157669166020497777705118922622788089704587715498223104492812097895077631721254061551229214766430127830100068354620215243496656054214850400743639781798550957483376079694424548054306892416456399953489089211864030593257703152757455400344944731653139834110969785883192884491973358972437388167868138525412917027488079805874195438163914960811876383946994189725426042176215481701752796128861026654538456848312189967071819761977972589174236649181017688479510440663511024613455892880562514959217584238247011808940007222389435884148398175220170125696085049243481293886911881843792994141014178225454292625742154338763836005445576236265115286901389146071202092521610971037905540387620369928973827396463990548274736304014331292700266174287646613608555563367284564065181356461198489540817793449343665064073784120895140170348278594698107411484554170310720850351375931836512177056367516407991741764348355401796898300582278976443186035663904251774440884031378491548870278763057258750535915089186987615216339940701193398487745940953571851483855278866285283034050451039023119543653728527280820854669313021688710220770439395531988470684288453385457300693056665500894441783372744230512148461013147991059284187927197199900937942251243597641804793142787919991423772092336670199297387159811459022088450964060290455180981845845611648403056869011177295989005878344791368037239951791135505274455680963224706988279549621725178901111901655306636201965512046753918629572434326239206309893117558881869224406049306548531468431873222924258105822075585694429164783717305372002150249999722347873193215313068764431680371437395630591255408690966161720569943462297309347967425278877342361461206762139341660177374147975304919944860009274843909529602769028375611600083243460248280812008270055668714254805588366219819290577674564083110626161020165793108899608799659428504536037551024923965716450102394495963671765933757050411613363172238978920294975570222672816029817065474185280683295780594065900574899429489296897432543024724069449383401058584672790868928044898606211758818996953181394582748473049117689542011791684116442885141846251631739326169418485681021772372552908988134861506226308011355679822485971625193389796780667531337958401805851732771036916981304409174080758976638398682688423258730190525104775126919329758523288946215829005155381298154262485495917382019945548920985028962961409123113034345833033446589418904832244953977403549590310326610377604969424548207783484490758124192628581382642544295062940267637292194683814146111688880221624813106747196416809230607686777276837124270046232724880313973074620854593977702929119225055990565152057721088265006724882415314986926879621516227536314867008801606636328164085466071049811365854290122761953785841336521720646093182568192609467503443278186318863584807472831221549504163480063554870190360148582980390032011396922777235091894799247006818817368491312231384635338081863522161806808774660912742862132820080572913514977457491513627354574784980880022206716827179780791330432901800998547172049462312480503827509814927263654989480341450971123621904409154742670097988706209035079519613223774758749594692837532098691292685050157000116696573098968547522194047548979939668633125633654646109251504814643339885304923138794352532041578582713578176428217102787767766263995651244658337310904112625016473359588816186224820946853008056219486731252275913432395129172897979802820590476262088198228017073249119132197050113580065474764199224125011233514464046753743537681889730343769963459991228300111478030345163239223176455084630585214008210367693774818227501829879243789973065261865023029678120853336417285001911538265347255552041988313415470898433802557245901243720776919416249304289807159253466195512358101903716564950656280005247351591504667809890705362390716849303824423191475855791759723722984730349063366300203824828193963575936672085942929572008898632619975548999732556522688189513218611442791691126556804679710979276025855214799492168370897101354772933068303542010894461599495317836001039267153793939683629850779009320956559742912240386212778309242034508781357968755670519895852626755848237486842607226690306439187389474418737720112014623477697755643801809737095137776618514862634507936396260326421637505950473474076594008495428169420358769677708920905574825845593192602736080879503418132572454716586188070710057027227349630258755380618636078079487530534454193455116043382073893839764480837152885449836841922700896680337966515918302791174460861616117315058885681804430729846564344108567318755945222120135172597707825669931268570204091839201022298749346430771777679091990400028688445886958954116006939267615824154371976263438636508124728711577598939470780054300318170912292964579708162515410254915508725115095368781725666527099669276787085030638119179621104287379388332756774948183694482099081942692529995520459347135157637323596529521705372311590922723020267253459585779632445239136794408726078810153131920144518593173324341330941453347288816704465662821347568478198738923302188244388875074623481587727767902359402858102442637990566815371462816337938739891157325022045274775589944140711337619854392209461443705508261422500636937122538493387501166934095176980423241336632157732803121738816903552941688889481813279959971084618487744217201434881874521806898241644093563913306493479172157388629237020307887394844291487708473355812466820326256226747058922070290246916956392333674719600082507876050854034765589426225639071591535585439219026912614790415733274652306390870902208332984711727397235191695572992151333573260963231958850784956142186542307981345489093980920887951902326445920963040657818756708570029892319618545089088348419894069245153151700416692334381135370439339035697665908143368562056434433737148118163353277641366379462976725732726241843680577945135700162249300541953989645640737082874814862742918189351385499032255255136030553430094174717892508917744643859912043293216319231881673130071336715498940774736096820647995017651345851611881785546599924282560673972411473532077434343763394327831974242317015804765923012933562865620572101912697062412894113777546345969503557144196798875823962454639516621279835823060404082105078702018440263056976897653614984287919301503647545836115704805201129867780513360069996179927097361758797162336673988286356244625368986832495673728563072860222559002259379199476594910707746615751044725310601776687373050304757000040821886916496373774632356737757496104564253541598801675318587463906660848887050380441664104687292873542297137796430962236943167258779811371824787988279866443853228265922075785562423144610029183648350583418295556703344949301013291360965574935397977124718955264987899142298477328070197624918919859104615127494428651810868679112889593310851037787378863966088736372085529919045525033509744361087023499976473083995995500976704740702221518929171059827935458572861296483065135444852683262813988532331911405259328196925960702671908806370862229125368082362098709823137647841788157580420126588111650615380695635313925112808017718030944088011105841116071260760292008111542642202719029010626137797951367008795990298039456971457995523799039580528317678853138844810839354982170295586685441978361115070791279518039549397270766986109866956310247318998609479851556817731387153394718206985104029031209181741388309927608190880503862911777301922920597718571771749685091841886358479999037466477513681842285814717873609880984144010502871273046497926934949579347873854263323428509197699134527993174090737219529240384247107193873932648349815852778587762970011818308398363963280959737791263603353237562026482088293760921630967310379385764985840684117953368392635884367076733952272282953152214462224839871587100834168531352006554621270337068579846149159084136403525020803187140777706006793034730046914890820093225896354375110639126971873149083164356853966392278595897437535599408035673419096510359433429748987260480131866273984970260913212809749867730325546952996952051962739329134623840848846077240899286769112703793420514535801617655326187572346428892983265424998796791993951144703420331613901515889658096749268496406687688845818638103486576334094823944035574150678027451891863250758292851555374061759679224723633076758972871834200192514066858195517179262696986237626067291306567167029621071561968489478654688945692634713478925052926787263633286236689352241658236152018154469548679333600597094286543912703445798175277503878807990357450806004659855556784409295033183786227300415514453574393471047430066611349478929900713067150986690673649221867783676599781159990244798442175197443997517864278011033052701213066411927159690339762415356399884691329954292597170830747158559302677358430035812369191039039333782817486495796455171220143153244733227513763994738559805903384506191350917224352465274756122831663983239067108721395531906853689619839104491007466402018101421532988646661746794640986718103546379514284095358713652860977355802442485552331105480189617736622383577764592249802590509094263127813689758845846864673148114299240143957957691614737824834659448665345611623911237927518449963930068693214925510584379476138638050432749342135263776235532979239505271122856679027533393414452592932646306578285809903042223683025760047056509234621136092003783923411043557992551848963754235125480744187071961439618593532412650352708366488231575796770442193376504363041925519865045451234135784146106023747294437416484315742934072805981505191719983785064939831669971637013796098865128335144717642566204361268651251047517136398908486717182755668222214428053286919364477539250417231301187104501789992708756829180067343452339108238285139655293494076371131566706568946477983177049468459334694775303527266592248547257133003294491405136785931355316636302926951354571226411407827981078091413572093951358379812018728400776846600153287101340087973434893338340276231714360755589014487786434111993219362786902310981485874049922943378345020233710120394618271656045672350275899939980441174892605656242800924464422143980532360609839702582664164110358742827166411936390420481072981007457493265042402166243100890274428899492857310269945442785580097973211482882290929145311336675947986877736576696829484197172562388663452626738124384751612445554831191376576623103028185220630665169750202626404072362021702773377025834549896785189823985488962027811179152000587836776728515864500586326725754051605420858677778273660663146750939124757147061303900752373910739624428614400490153087305632492456704689189269702761844352583760320414150622566341723135301245111569614951385290169200117064720391176735868225587760481271123145343984964605911825466782830498476353434912212450171869238009329132864076283605172007205641505695696309270328156722415958986444333714677781824243370469693062969481041171555957628719753807209166590760423605298185725470160157637366779423266872623216488229334123724920647423079796467437278629208410280651192540719183280216398676457362469023622920706962155872037788118158503239428346170889195544749849935217457581663541479845133215312163429991721202954843049442787263459004594030076209759789612849190146903533240633289240402338906966823985755194469682228498052632026157156463806055006017913045344562995444022117519255346584341234541788497813276563684709736107587873555252185210853358467039951146552256690238097137886746374125344547495464071414597793910452226573195886580868807237720819348098513719930388580777745160950284330506999635555691909298969454987401677653156303164980364926209399036793684841701933864823997048018078250457706313661135712928028868478267464257226762060402501235603314696406791592159462989369641215343727953208486585296334257604023024094825359366609234654928878314348936890811176596570998851665262879092763885508504355879183167778730242398290514533259079536698831136621954921605588382614812287464036686845611777511061601327428931184577356445005145110956600647238334402223352956509686087463648155700054474766324338301720794166592230709286432185523252583186998533941119054415893449768632916811672824483661005600838269760824020159370142514964653552914897535314990645172848710012613623122360797379021547788067673834338302018167096413666394505739016247412645580645365814211697962785788418726774490492530091309313885397570916908602948465287254867112804229117944462286958688255718718877010216327951898356337064871280956152052918255360800136426235102877039313378013542728200584508371021967105476444669278310628604918178440675554366103218542402280645682165329862815296905995082913489007789181149762525945398299253627390904603417269501818889898237088609953185172409011226187304951940129810761186623027639831288066380476362827136278456297791730775227315581499976622511562903235177086186621054764154991431790554743159753596371344875646009630175630211449611308121182741176893739503646658980843004357060060245995274206319114520800576593616029576650009048279071173533930315851919175745419678043128371051187124560528267102490141037110252756596240468873970689644068254754562381344793255435677366780695150578796431941399863040540985205604507583083078536972806162140806174905895963880920924667617123406389894077780673694108627324734159744310812922529793785803983297948978381186613621064539326052843748995307073075913499901371531302439816804055260210622572617429708758797095000320285182402444482049364114356996435853320163910646678858235134561255158627134925107868926683559404360837256859107752113264404065387186146660393160086088952934254051160007632638080430173890182992619559557146626715196020777016921569454536717857835772438379287000365137223569218272547391171689807376132656556314160905565964076525532205313203829060040425050144605627891826949353425686317710034829398715001457049123125160997817209664069693337978386161905858576604885104061091923754216493021889598538598677106369130301556028626303660852355821906236769826979201466999236583428533484809006999936270111992545099646319606906182172605262879723649035445288270934861673111976976187591493458696359324554776471076822201888584686422408678141999163354749681879623519274957766672782319887781095288491568000469724634325286704378781989819852930463013543963111473568236979988255783649244991320242725903924106264756732783846310682129587027267070340759989355232291404103961617960613246941818394912099326126234784443502878370472886311273506188657673995137780030112520185050678413362451831690055587539530989174466549751280515009912223469930694039012506937122893608467675150534206515390019563502381778642537133130300128963963114822360790371686781526851437088487395333101072622236021316149290746503028293886012594202983747702937011483386756002988771836871433519922330047284271089786110435975006482909377156261573818935553036923932388488572702646281169648700327884506988422285366293320070467627232865822232502626519044852143348273725454006854566967342245844975507324836855620935281045190730841674285237527010870349755390476340136764426436794455572740097539330317724798950318390875150263149456055797250016850752901573310826039798845004496560303770221550605536121856941393668331610611196011026163626225346826804103450187840633602969957853741756855260541001313501630978046039636359083614533975354662822287178427228327827480685087975136186432424740678876797303840590318060348000577573543650307403186214360386716280991666533244699055469989020911450873454455229296418761886294365944238827780155867991090247981623735069645958483067031943686663388582256938221530483274780265739497830908445931347219015604700842240224129937025437983423879490955580376933479932706155553755897532163500780026045568515359779962054044151968361096946765419588798205188502409180926035121972010764902584642962603372084919867798852618303892476370847519178833473182966691448162122163273817851646612476515985608716302716942075832100388891754155614329568380869722397505314336031967260288318278747534832000217409305037680547515225177146184660623655227421063996724441542080110979000042872848908802649866137397709315469407049022577363848680543139192743691652078061637079656321674459268732430667495335886374108329704021268948058921864580870487151991026382329378820333229956597255677010614921360008677560312723106674235048435703503033633827966067784720999738427937715398388054149400416181338539978424780748903351260467064677234450035152170661117292972033744896404003049296914441046697268117014187875859798140639725166519747833825306832320924630501610909805637482669807732093596898922121051844962417438887694286123195762792753100590981331151740070788400480840032642794541403701680043758887758563748412373387733607669390439118171373535311219926467308020366113864659361607657899643493185609709885419009386236766455671325600226067472978722314677063744545998371513082300161422864391464638362418325843382381812851640161521414962482074988586759664910311485015615247550496718046465034384205613634982108351090829886251715057730472765058697927665001016861570868646486850207475361095792496419273829856965902993897469380575546350072277175919286866930092500713205678403496711518876292407779887607471041290818246423567775363611100213780438798747864187527710775468900002790829339937604759632324123000375723657526728352763597107621566763785486145664934537446164805355778030099974517265672040446922154898330411424588234702861089389963564453325759429816880697626617202268865801900905164171836409585634044072292122479884480751070803936800586038255047108349063931517989525852015474290042630293734640230379395533102625639004850796774312907436564065073932952729050654630629728464456019384256830319487721181361412922352211902052431759095773628062980327236556152251908553182248777635241812742846890681866180012385969071490263093882969370631760274965714351127737401812893060494387183152602302374460477386037950683568285482457354779068469135318679497124994711847521232757960590072215526860171902219887862349402628490646355065236337186997569231312916845768937497193014844400601840838710157460092078128163448834358401580475081064181955977650345377284139936334121189775640907208714190067460681710701618376723257457150121817622644137729178467212515051863467925344487592143223472846030383653760306137830891238023004502089414789694745361216423288204444476674943898362710486031159634983243820778102631540353204689375970883541732212625796989647279569253244862629900833609532652495423970367124024955855648972842329813659658221065588671463370480822830643094871459437632599684962395311549885807133612246131303758419192899629674411184929119147631588458672786938418009914875711001192351285416792562130462420982929529630320067366822578512504541959772728273445773547497934350138221366696218415690022392687070096810155484728653675293738574786540044606415915397863106666978948865236694760841775706086879335434493600374287621846836908505101777757127239081267532183931370193679956556960613661298621040409473806122332193435229042093632068032245779084314254913674719594769384946830702785687411936580483006909158690662511081984999031798810647159405920150761141585830961463337088424571882970096952717931000853917383521332350063451608828297160107098756529807406437409784927672884682036453912095812731661712775969619461342424799916343459246329333156880833491381743869911246538007938522357719077054286668742363492691282255792476545614596842251253780744160498076586624669719661738757060141174312166964337749084131336654149885525292567135064703786529554971997438845367717832912059205303711640737216259078600122572172943136690194737726768218133323204040831647087946595811851422310775169715170578123659259985124178819782059713190470920042019211849929122917200354193751974144428750427414549297236370647214958638203535472891344009878098456739700888949909147148703208649653526995015165330912111961350560498231813680305862966710811618960705431745252050118353827098268688565021276274941804343424958716055703993151514118875396317406572024057807417686254933204984417852785413840806582238127833962232215324021933010306025298347741338661702731354497724641016031672182961598871233179819053526107635001928860029572671828625851328641142682783438994276498362976946555135822544089877964634105482736185083081249035914856678944049253225864114857421815122329653980629565462075105980624580208176144707821150203916879841314344890375655357791073032023213614895004475008893078658767287744489861403266490086810906695127118941935890643027197905977305758197225069006159289520949688907137125598923808737451799805479742206471218219520481869876839529232223491153864670849959655805376854073178513655858294822256639870272045470248121336955715479568403519296259324648974269005195544056117297718647032634503061239573297773344499278288975272481961842062802508440812849678393623021645202647863258970388723693535803629525725691137765165309735053954531604533198077614606554061687169557782261172902825669379850573872449663048071826953346649025042468446299287357166285404924749055774782051207824715786757856403591517721795475815153393085575243469461331226378465424478585416224411088891609059244695337411772646433518339699050883733708172718765950369066111824203198576326586452618067585770224983320999588628309396829230764282417671943740878606724425944137422582911658713854450748458573436035207293950007221907717835065478642687997885348467631124986714357498157513489950532692686622758159743353128387972904431143511483184953899491197983454847668495050767287825883442366866036453961004575137495184521802236242319193536390075266315750096813408060310334118689905840212855327467076376915379088694857342486627859783476637922278629473568137293433499923968580434907981768935805009657583262348205016428166366389826391739877639040986100108606178028160441680684745791557768434700516590386867536250084424016351241814700906567338365934442941047655570400995771112865977358422080885601929016374752503174441625311264603252399576060782552825791393489398557235522872030320632454030506224093510580362488339012307453130369814628171333398181613224966574291857921069458555804634452864448255911611407071331775248728437523273193075946660610125704705810427609227349879377650916440555199309161441516347798639595204958846597807632467734169336564851249956398009594133510672463525729461980028750483103712189304180182238684543762874575132460971608060491936935684571695689187733016511172949191662919715015576902979596729058967944294112370189468993676609397172420025527933712875417528373758653420025174209259682363014002361896819003338017743751590203414628907001687346421649816939824403154979161759019334231113099113433552392195539697107623020337763876427524493014816193659349590987311524678890445559530502142571825523125270706680637945372234216208953699845474965752630400658804942539124680337650008090335495491381867191733989326244598705266945198002685902969531664613417461547187763406888936674203213796443698027073822573365940040664526013633971456930263019998569682700928856183789348139274729552982330898572193781705440319071984038722376475749550164853668152211400611582458636335138479210641107450443855789626694267051223619491455885642625430268584304860781599603026040655558954031053203736607085225429695251727059392321141464212124802085581247261105138576102864085712229731953082926716886628688850137724866805034814211571610928562788317312605387417268701202922429487128485028540957521978809698821241160849063515503425775501162160018825617733213784604973190225718237054451594161222787953992948522093351833040823085086735501869100412421560381943783812058187109046373464443780264686754678956686974102653667261835554897384719494515087168788240685748394930018647522578085943199582488295508014790691714278934489398850737746819778608181375365142390614916861742130363325879533101108512451255506062775697461314327659165084012989035780451604244009221286823908098198998372158067150700219554440864485504929707525202657525676892984943981391716438057775053190857159822098761477636867161098009417534326467454549817452959179559608068732012706306877252905047403535095276546087685604982612189385285056898785531314886888865364834774753844100926887075015935006790856968739356544360039353025817067458224749272530639115374120117913515420749544771332249268615733278573455908694904006644491635456871099907216811872853541778975160765135754594796668234990986171592540285656640467497867301480535901804873545168713981270508495298669918350966105382542330651844154046252121553233755737424166827413899893946467621382980550211374507383092100398510205335677170515388027380707245515126916453776341405190802179019294778495462435713884223426223845180993259412770546957672116626850391897197781601532740391595040448057829541541357960000593591149368742045464778672891307975918495683224383232343808044319286568236299234464995180234827976257463946861182469269084167249720047097432888036941630788923653387036392214394996983666568259156672702228475451288564438862167991143741316048188331407649827354736727715099893064994675144166880038343114349142787874657666950990981252368082184720530705667141473927850673107189150381631598681545544968346082109651195939288417532448715675614275937722619813390021943058932314974297790922746319537456472252407696042079091983378164605794423770809147424353061266318785351186117631282598590157359574531464043316656022420494047778106958310505491184476249899534330461553302942009532129772464684004789691316725415242724574431732444328225832770656457994844946829437031740164829081907221229345190788852799569522625817999589490895906478705435199220516841267198469298651664982834999254808534943112468541539505419070452965027968393107181314929496884838952737570029268581352105745571843754899031883493897669878178142818959295724812629287029761248215289238185915356795003432240589639718792630403632725333074735829757389701180666968853569131238449077209776060553553300042725192944834241816764374505493459202745059333643922653266749247503220806963370643501581140880978142291201788385528208252484499881780900034489496441772985639182021022656681061916899405491879534631927778243931096645415760329824685521715344126843597352889020529544807473285365653504925481044452042664262343667875976771724114122953621914190800207780810241518899395214993684949414872088601333610756996772985499805076866526609200785423245563678648630308643170266662483325335678211159879969324192150384212972435122467578520101488073838372737385830313905628197438890445750066245047891769905517437850045800264709568957190694902360669384990253304821837115522854978467228572559130981373393140021379818949032605516358491933242883572696235406847506569829903647053158285989557858784350398829818449705997595730467288853414784211820352515405480804790855508208167604042013431563597803878099172820413698095065145812395826545724385929205401280783403663477385293551561179907227201426800088576553419819239135049003800410754746293821893811534492056155621227795096395964667192740517982463354202052471508949126323345399453140305348882139638204834248798579197803980208438938119621007313988841996815803040166547738709296821028272960630416706019300958049062930388378053162691576792396683878134154757344874168005119527364575844033739328782949949956065807543566357012242645794637595483499192979649685326966107002218307862560374585657878585453026274224599526036733798500693668781428217072998882533204683303432775230036637158902363944554600479156243555623923493578916555352902008635371449337935441366816703881268633549723187038515233492869090711002128721578352110130546036912490989398105689843376302003342235800289030344869305672518340726868528420843571096138716316266029187906996009278046505350458408547893362832921922354317426257830810475063348851528641071602673272507298540442161474103423560159243695607486697041547883847224782050037390851738446769623070999230986253623095059050084400564206803704189125093442850157591160716967547685401694761350651453243849071971641200949935031774553512669069045064114331276641072418790284547274620968046813834452756816483340361069366441498754557077963575894106877211901616864126392848495913526146981119051171678702480212111646470481007831796186236875716150771091932965097663438581758409509146698132024616954368448533812031801714255185618165311432858535673601856900715910698654473634912592254594961207523210386748528867466325068217819454803518629728363204911037634599048061530065939020492164664094994230730372555426799843184797525844443009765084073383112939854794912889527132080899340547701198027080259906228136339851261583325231362164753477577942389689376675265927881293172905690124006482596301348245094647599140920561066807053155794605714165702908954752423251988212669358823872110156598709069318105919810188235122523186060941829916169204559134882550861092159665519187155351812622325819927746043466802166807725094525104811477698582306403519883723169515651484751818006102066668627106438841874924951518312301180095090486027247643639540557075624087233275323003706227462404597097421567700047220236639369794046588849032893146428353319882029075602927777671347999416468400065986019344475739824582650644563038134859947805928631478375908295983448410189050968768032597521249969708309916556744357223193292229310612950268892663252014511567477880187048245064806073405990377116367277834362736193193815610792050535574148723227755485467627923473899398158156132827667747997649213696941264459012108847338477039609903410325587622892339228321613666875947390222568849445666724719624930233021079594804206502079428670916502928481121939311842062042664049402338528537031588728821288499178524310078137605507967558957470683375285753787146266329024649445953057217582726854791848575246968981587514491590787570285939556899856619597904920066555745953246107132230914206051608743341623544511726596525147002758285939467416803568686316684408545159423076659085419461303685574576921589182719452022373663928237336343286467728773399645172631602518214193252363490263762702653015187348352595503984379188779544593451610421613371827340438902495810093271249379796049450437369426062821114180843059424775565397483710588460967389734836562418900913432110634915293744997274403217528556463860646834546084935725531414516980382607341883769295106934401489312530599998031979112460498771353904864575054351674958658662747690801923180680864769981603416188441635499392476146092163239563441513618308671288235983749288547884527413163560742528350691318000301616559927843810825124218329052142769700122785886674179569247669544194989111939475065144720839429972986092551598299889295432608835664192408494577000771391306635128962816007231750723029420199164577242270364608541737012172755522646691717632885731170465078925698962283932570755877540211835980598955824891691960322144620886384695626037557524366052415439887106679337493928314335518851080114835886739746756296188004573619183052721949760657693500990267220959626713303935039311688062290822402530750677871812882834531503558863757693722361384476186112417217301810548290821617708478105525169804925156143403826165772711011934983455197588844564181486198583293371490563384093791181017472280683814202552291052908710699110529031160120534495405948249109991065278721071004266548587525209992359441200262503187156213476130463723341575421906586239055601229241286679724517858016915916819745356406693564519357431170056228200070504452140452946063873125516392068444637405295461509386449985120462791638058000363695492368469986138342604035297797009367863042731246506731979773823909760127545368833530490289274171070181571944759241526921898487317367630053380154120137365087719176313255597832223589008544586898361633981540282064585597402873516497818145685812528707754383943591975242782985880958585868097682317063434176280592784033930765009387651341044101457549133443934354310773510862542021946733584085372637296806563821573407410029657215053577215329233044531144878832269067807936582997837275931288884839084911957659786633294956687744289978347720828766444375011197538473477862536420064580845325457364382090301149256191446542466790210326231745048186716172198261483750866239039849511186647971100741361521786136013747967481309632152918487619352795504748454450171199928378341187695186579716003580912854590160231160985732775572079935637835980897094563639023776267109903622195796129750465267748094638067878708434757887418825053515053455796618378330049744871056393259708089308986188993915986257273882349728849553734311364856937860060368045653906666475786561456359054283509245599025026530061246300112639649767600481059576086855869344095442128235620832258742728457440760139542357648647729308758875495012198455081184757525930283673668353352954585915656916418602223553662211914295404662669618322952665554708483800009212975660525810385905044435108952533177616983505173373091622464091688084230843031659815950333834625017176707665988398501814189000036216528910036057875837439184146089266350612052948642813868349941961846938422944405626744318641322618272050340366749150592454915843025613044356676531771097608210008345355928064234753396687673219043007534666143810884094304041129579290520451218080785591524270308303774943886489245553661971606195677109242911243237312006296820720515405090200463487275438094550501289109664837647442567735719635254955478359655570080355624841979131180006550691221505998850918542248019169382126505368592959476142771302067333592062539999137526164194823048728754562562738600462472579703164836755985127643088979920478037636988660396102281434387553847514540800862750392250018127338938206112626679082211592523324230861989873313602056094293435716389810869800283227943619849892233018707521656713806780185038838888619556419374792266927204757713938477905280115696267581421924508672502996290709762442399220940375642298119624618096784148616904278202653957835808352721314592793680121198789529731016565881438988392632210107392644525676805688580542059115530263808464841485685878358888146683013632587718288808219939475283516725373288056881535673664289434004403060230069035531514908946182640263751171987640455673759053204828814637018492204126734836200556520780477463948145617190068848720725000141449355997117577761305900380995373758297523839095521563684715622879513115876921186915736643598955045208498212121072436063854791720835603401147566199941937946732701113719075171960940912421216582225849156741662700452186123519327349551002388382061755309313768243402673324952135305178062921089527816226770917277815209105248073640875073835831758074379318840536043042952918567411591179334288226438551096741024918474023149376222448257539895233146471193618858902851719390875431064945323191281758855166998439852365071504016575250099026499463888293652195533144038262306470140043847568952739544690835834276105410274221453197945837135268815150255356338165939106644143565781155780583444791787549326416866972776881052423258013436547941536611236101618648580377562580596172660433343050551427085413139330531851538202127529437345419929884981675109088638918814802471363698203531549647775027054673186780797628096237638569676057091037633466183191004524232509090435849007163495085016105638554702246256771577794480561480008757613743627186568909196082380510555525149790276550552434727930409620214651909282754769402718494414966296171763410006735374898846601124921195214727073146521321921766832566086665113641585528876940490328623670875207418501206148633988631344089234699494293372974015194802135503757509458241448856680428997064909412302118935666807560839972937697078088479045224663084616214995042545600662778667585456862087425332556058305781960066777022185101911229431300285442593107770749703166985540716206962571076366876251131919978462994581147303460891643812685138271810341656274645376301811559142906401737928424569458270130954013889911584433018732153199018926857787393326923042370971773919405015202213842078712648186209057984239964790016249358857330805472011176323540814581428962085044948484082419717718353386005281111511671575008303725529450415760187569895980753035275223151109971555548709671992261233829543493955383714325575568154127419613586708141050993893561844078319047639503480612578088951794811191362003419679036228993491671303867796121075048720680148698854768091370489248874470466164773566534644890198227480351811295456135267269074508736694091460524514788405773451316897685767361567946063132703892866171793983142751107420469432457519349958359404887488053633648828534661361490780993194575108039845878067360404392217513795586289086168235109795419416224041497652212243171673239846259509749672550841178698049169386498092000811032936859401497719574395101768955000524329075668706054951422585198857757081975070610680038326746482741109686335439823556814425924636882665464314475205256097675793526952530013105819649176461716128458784610974484330459052196669661138600761429803943530219838848192482822660631522752970263828226314469608124566321523405261674358921296987873126156105281096790310142294826013620453152174664030045094566959517433284675195991299158429946501832678100849939588524994222938977820988934844001396762834831811948329091275748890048359073684152159494648093266116023189162266534768553225861285426629306878457637706371272424746197778400179462785670370783167771266722236731918324970785595107187353230749026951608038694483305889108081975129070075364024519074735541467263011596387664775449715105491418710377672115940381947556581649701751902854886352297237177810881050794107652483246971867739292246623026505225587862642144991988737624166232684985938322454889334036041754441686426853217769207300341872236040360686292180461630252010767631182151675479684146840212335424624834608756574537521564029814637915446854822020222808641229676677040238426338837680371913837161898862489561636188048577511287364553968062968366461088054666403608702729022784083647376202369597645101991742698589345113639317864821027728724263707559552498745944698624402574469854277277477894550149368861486035045688020437435063059009813768605730815419769869681758377714100734612730021347958796119844474005039955753844263933276045940090357791150716335146626913396138560015074977204784326035815132722955464632627135409019459822565213026870171432354396179970084002567920537414706939626532860228700339847200655426718691755566686894738448923775339191667916410823978403619065768782908130160288048648364593166067017130718580791950927898157169247250409930807111495558293203942404366514227099153371689210202720856661621469053854302589836591705449051549776364016448702450394454722378495581815661994559333086428115920172418319085143375130968337116037744226394785746389583511791554839451148613170319101480745932272018043348228057855234685978571720288838977373514341203324531706595160812011301954074100068026961229756578488550827470810545666948085037647610288369306009369965531360830800668189237274460487268693957468065750833511025126228442240938103808592315759869368537952414078069959240159952558385693194823414554304449475320231416949836663714563207182834287555167384042844301923445855273708959828874559233636582313093616788422721698376402023864215335841924799308695203026231503168381576816100750930360543883833832369082562715139513929176896655182479702067321961149081174243494580257002896278591796681038453400410564369207065750039234839561889376175990905963648166996339664843332109702741066852997406148456399615150935646336784218508828669322313928881292897456235706676539681584486618360174826416746757378488511202614659048618236836432197689157522635061784254389238781638650884634452104811000890180582780607058231218777902527880591066990111336588815282286889975063068621260780799219773911293094289113486007510081775609139481169860780712094307066211656066876139731463509492003593456078751915694905407277254697969216929151086455372562490725413126905948540400409084640035700916183888556642079059581223578709722681329676859584696536806297610079933900334905285558973648580021737471768156610897781737340100624102666044067971833623438179764515772915638050501518142623355424868593206392264484589704512368701128920203321209803354584409986806915565918720053919909366959977727862691466530758244550344050674974045055337369027334446780388587134351205800180584906495825014982835162765843293499162153430422242998859886030383744485020828033014245111765289425290678817145588831689010102583103958925320657436299598379234411179479608008860437004027998526012336699156331468872250782960628310259282465812368247026588834815384910972912399988987639975344863390072972827335828630197611981797470033648911394651618085734237019628901689308399808103326053282469076238462615008040869027077878727100975785583784404377333473579198426490969069252282244212884424650785509385324411864329686327718552043629964021871244089076682093017550148975680974021871956919076645592000147390879692649575399074578006180527622229558804884310300571054257006338645106763684875282413863326435273551423341861597339876074164601753898103285701025204321840924378814788267194653150212348756810224064504085820224317983464326597637467951571151337732217628416060763418478527120532899051963587907872713230948878836993681716865270202057893146693745895861194837962108241664770612132344137198760934661654441999081875426272661381432895783194585005686918435918164079620894254478041637739373191670271022806714857389195079303465141039214970425537638726306535636091750579800778186993524613932114750877235270867241429253326716663285749158927636206898944559397877633041125249456771751955795970145238297003791661637707288534984362463077756226206195576039673604895389837494525415308302339351680772306752557936260037543751897109058200378781630128593695828638857365567408974810868669733705603732557217753785805119611005992907308530869992548986569529958395287362147026469774278358061579063880916041835137559176293683174337644360953636286868664362161866533373570330348658398475748659626969652316200435721182264896850604644645811622189840343614031653311339780535999760626108641643340148989452884379188366677394855271448188841264940767716604462323001070819248822811919641825256607965438549186223218238540810152672154179730398421213135990791455533065643524798204597414919872207728764489252538392264850109092999151050222801271023023782107733922448012850370518723691877426860821930368225011340238193191377477324818555333775825935601734146196152154447089715144585063824673017429704669847378803630803226393324039364348490310721091631414908545452373662168385721010598428120014957801505075139383061701213039789354305817792862576778260526230349230322149670728886656408833909235988214733297420204451289313999872092867854974793316001292981395954443689064906379074343319548845675390964777476326425527928719531683901689931235866742318030839442997177927948822220499654081295543073669855769419900410638904591524857854686368024120534322376090593697264624016861862357305976057538927243938230292556618542148245036349165246308471729777456059154274026845799910097312126205966284827903673011551226816822094330344407201812035899981404970314322373196332523968836853302907159981106988254837528488507907987694525318669953494800844292212463121865036118295781139013256405742166256593416557734713596167253683896709137111316739005318345451507540328885232909450817511858162333110379809174152159152199572686049081694592883644593370571397633773251646733423171586927128895134636059211535395341860970297186503462575202040652285170878861836673077822574304287078549446499566575559780119049783815986945103443483387510017548958522401865007057306660762676737846939724725472565577171360272977566237639395610440190306480245618610372439597689837355816537334996909279595519134010869515768806451680519665636674661569519590067745063520745990097070502291534636461868300493534364410550395302537516055399897511950714168648784546937796426035290131667402505013382139765928324277290021443596787911991649659676989899438672509569796377803481853946755999270881139694486595879032595455915370183330281873265352425785774702258969067446405484904573119280064428739278624150398837148759920294499973387286412532759097262869386859380372705625578041807161693359134244924275689841725696833497006494580612374603864076471484542663277911812785100985126615809728950688235877839225801119224861936906980037446999562278888604346477502671426450979888227736918170977794176432246656353949035657816218314297517129722953576815484968771035318740849459377130395894831440507857353536351791543822612148874319813306492659250108190001127946074187330366315638222664580706988182879858165790649580451068512580873890115624655389930795659574213796584865912916526772105464380128498694282765094899243552273513529698918576324673948418086545204866662286442373365800459555894517042991849486017537434185424703581941460351589452659922134333643259848477292090289453460379653979271361431095869243853685049911886687014946654226698065682140350991441583304453253885167513208921157838104864092733984351932246266837346495817809740144850679113552849712109482920618366690554929795248669484621063047625275497477822043785643979996091903210516606286601653714580382745546613963873767085438054681256833837142612197490207583977327862727211830477875207191066486771806391614926315441580230939481053488981065750654092273837453698175049000500382862098026134824954332815553278629809110207891365744183856201638254915186069939339254027833655345037379394507492058567080928144998132931937729410000247291139486788361697354120050209883241609943298675963601340151011187435430299979364173298001785262177093675549119547006780396197257960107421783680996570118983638800882015631408763712320234818726209393496068542137470523197510888434041277033617823435545161052645010842706698605590313052295855421253393309325313893413490364021752336988300851258040525464531673156598905357455346904436044052292402963268243746633425995297201433544069639157087291824740750933508668818017440462678824400924836878396104009332406654277163331164777883702834630746467658251786835925675675984879628365336168497654986460610833712738265112718600206001051484489324307249182691362517875245323337202399763146981405210176582034612854433578923782594615281465609758955313312046196846571621657127607125255891693652045605471876533689537478304865155074435880519765447353399155174589719851799211825476482039622621483545785022607555380890239187002461232950750409084283519546506556308942377674080948129153283211216381907756648777841279270522903459909468865649201671544696008058922886531725718189790998462117646913565216479845891369711153707189623085925459189792214059233488203764795930073235901173773240076724267589295939473942019032337054922419944943106325623013250206772027277767868747079764341438129310636332555497849075620037659608275349062120902820885764803391681890022244718599834786391688726360546169108908198315997768717933729333341171579417940491105034753532419098852441750200716077504058342060679692160849446650997971356082467532566090682850524656936178602508807400956540016471016802760816298691536012584228830733691554352649806010864929800782018871849949715120999537185380035582642913023963065663044295161724706763309944330371960616049894531451964175152109323057701612739765728438777217489657018412036719234939294174822414698986860038819317028422856772115265681166580715066344277210408597414504628391483713332558516165368987938090894657216117583606005283789084816003366071205036900185153594140249629130999284421199660724091082639984547537094541875163365063353697670392264347958794992130006405907596465178727052797280718766032698595029027357296680710821240161051939601585004858493233171039878490193808036697228633427655257343863202232704543587980496164793601782846779613553820352707593303568104173715198223889423494271074593014474341613946859736838602549320768109827253868651037039951154857277793112736330983418913340456170322542711817409661954068122816946932681325327459875950190335015712332020439850030530205793432248003874472127689479347783831453702789424216125444242008960400778544265174676207167561560899013529038143620486341563510509940046358423178422677119048747281657130257117050452847882643916603332009193008235254990897733866782909660297155230596187044641020094611525805136527920887038321698709880693581769498887815790138614909381334088430784204650318868180213019896764408032490573726597458813366185833133213723349308153748246838858489339863982556156977421320351231739373613721957176226514326092472547917062205692175448151154190845622342286845183399421282146340147762807430668219257326000750545999156309708458427132112588583421116218569369210653200950600072019332068098409235583980277222390341336123286624918340647472635395136419851530607770047507057930516292762283138238436126997948544420725427872710727542881872861348053370678392417783136322719529633265746629691572864683401373005026332100603083457328453423848425165166573548163611375197247662856746181322990230946380453615877590088460355253879129755263442528418196008612757682897852631851609244152151409718654825381860741741657107434005053846372303974498448042822131128659549799042824132031200472600779144109299014093785639886670347533071879291515149648326022630193994167157917167099849917125490072640200847812017275391991735039973657389530859315486476365905188144206387848485403623536663814238086438184975603186041101165565399177389146544034477642116739655262896660229170031094311688728505617156718012892152096355498565280076970863586922280354166850849439820240315631038714924698285910260235773948978159826903105839495986535956548080563267871897002857659606367205325324120605425411877169253875590224899715211229685417400084421675506941294221580075808122510576017099423784278022171645975533501816963363931819475137525996538567262977639761950163645022196794131971753456692881081542339108995404629663800951562176465480755522388033915215198036937649478004504413782341973631293789805004767780975382599171302982164657330782267614664862435611676342737613390143970729688104447867472749303692125992365818476156491108203077422019141717821110568818471070289404476634267153039380462147642248489873455255894474364106714015216980403613243052076545554224045806423704688090039210673490245595102430468275255267121173953919324611089564121609013998220866208546290032021224430447048519027862773431874753004894087061743561914691213341659098909757551211411653913727293025579705661786888365179277765117889158158741971494089908046773722255439291168786267610455942488418395211616437741883758070012234131725706052192806456139055290361477709151983615213537230655684363471256156406145325079309287830946380889198937303366714851056840378633456949636865550742398407681319739798503446097408847192458633288970995467529622987348364568473724745832028240773363996326993947270796046011106800467668356633519307321690674314129054724188501975769883416845346872358588448712538711356077229776091102696239721407162453574963579374406805539170754803401806694975636025176297251600473289992435250836626222825044735264671944637078039898469158376788103268017738906698464090908130037987493883216759866614146640259006401982143194992742424896882996788980096543145196797429602923693316090030659404292652928275324330606164277007463530314439865165804874813524828755272373908561279588340303505028242979970132251348962068094502206571233221935542964357564696440582520120082191389010192655044483185066067635719647158498834977543320657959893759729688155039974229897834493712264967645798010152930057555424441896489994048873034750551035636920861299732410469120703766116309855672387053890440524124462107353582379247436306177459071321879083219020637192802781581825755954839801068991144418200372753561424045097744419345956420047710378998822916558865115786716887226003524634811398019293897944676495215218949170182181936917602096467157967464652177140748461200740203288169857038080787267836738369783226443984413460860268863397969373142154720064040918750662963412161930144993232218229484365250605857064890068642821545908546456657828115677323807770565343807117678548923012934566923414673449283021609613958977242723587977124692685814292847891021109264317505220905129104802000793400542572915996771790705786469451960429415299103136720580259628612034980213881295820022556359545405250586433353849180488634737573602987217228260132910797910345100988563907710966269669653080781661630370924297448123984176714804800063305902179921015166968311456750398675140495504299081729554673315810119471527007884767067887771882482673117788236814643494504056808845812544387929933608579941175142233236446852354858455745476747412223752679293252498855871745578395901219317744829355832947825751092331779387581403676189975036633331248080969106732932594388325510129129102477775017703816217975227181722326345142801004805655071890877276174255310017702419323373063587750587338330653038771127017074226233229786336514452842805038777478361917262226866631021782686624032158789716456208483908285748525108613173777863090097730852014864082809841330106971920484677824260913810172772534030318335074632139533812424277805349487022371656304261924314242960471058259907578709094058423257470275569921823599145016850851348455706436278018356053214649656044656238262737921983604339061122146705513092749093628760461380761905650006330824624420068064535423814052482059893426210907140996210902450425916993398451417868568657132611600330325029591074043341594443972772128623721156619236855955766493589560704599593333051020292357109497065380276779063250641090612164632846257179412419155983863607149841055022931120556996354864758092982382702921495909538678410460541753608813970207196727434732194467205426200425876109670764259344667348985926165135344331896229157174161109458862746203195278158103434612177965259492862824390972221789869055550859120411972719432531914409400198082628648574599322285018320826772100553458129222989389863720056591677698853656779055472837968639160107996125020576096048809505786703472091504298011399866137248642785943235150324073356354188240302976466537807218775116875757182996463693651980668247030672568110377412479445910323395554712122056290887240634372781021059016310058043199650844056648800209614028441425777708325774284702201288444445317278475435025856055101527461991588352135723566082510477054779786266405999322410638982379246113831084114028382991322634364161052549318397794718201827262799985926780938631564055167741132289091245618384616693951337803704368373956282255677224912501692179384702311912463721918343582807378751622982150959853548578633653324513942240237454772250555322554696570862737247533783275027121697494785805703712230807651606570004634791010163820884250937305448402662225829764855861346746087874154623771464087774311525916270709647263126620604407065427837695229146371554823583275856676484871798327283097269928754456714245342418876025382402137274736795840539587929643562359647205161393426911848104370545995394468222306319658938342964943303861052199558925682647378874781838996073563769955006142529356798259381092395764709441696522317487797565645548239262041321486497454221801628013889603105743247571337477806124304389336861201581512221491484841038596606727600081113798880040320237765006034293238757979897269356005141779347368356755023416518114573933246169997530621026832946239142950243812135562418925339757518855934289040937833645246806275845635393185869047061393818445720876712233625727354591983098993940190208795976826150410128090996593195058406323323912516301484666815949796186769745424632260625938829422787040854429665559248842173902316620667661973702228539705059876902927534879895188614532691820514155118476651875657154615630463738710308780359745774248306129167488643697039954713019107078319703678234091356719211027732357523377971835936445203634083526624776492424982236757223176976436469384476471347625707133190582548198348715347182517724206309031081858026985483906403884092627420825589649539532353397303256462146055772275765174646260295182941652301100087496533297803986203790290399554655514831909223729231458321723828782474543648707244026165246754125033676993698799949131328786321860685051517784728919839673942898249041238688470447193514499032742554737412558995781767275017666305591485255535412117329004753476102021346974945348662695832428824828116066917618186210959871911030636136649478467860719998202128129096412662247731986507769265015505635897322017674761640441632790386388431797634698570318833754967573029779572769240280700731104703242351877432168415132587267234591599817358283585839978792521231149813727585056249636722025406981596646861994177997887684441954965804925474123358674366380186196914193430385253827709886557334396199969785378214783714264180477501525128898774556914587143517913565528112313956277306047725398801430273103238823352047548882742663024414234501816228186944378680247156862450617567686983647271716311003069233621989477746375375667158265788631634030618346010051008833769715863947110913406430199307616190643186932023885379575771376331171534674206684944980731431720380947036039293241403666292785485036782378660246449097626491389588592888164367192808604389761289593433659033124755675123016534687873850849812089024600962158770569546197177774021445905868276920770951491785900709750796563967557123200527348972258118032826957307359158926937767584045280355997098471231965451625108673649632225058052799087566836951479058240442543156244373485152672282004976021965915956778003528836173188634278563379872449963633356772986723274934457301570117361635306172718853490577415881467527088677661813009226283468003349472215878796876358060268136969867748026250711204167848142332450460913386576150230374336644407745265145979504072211550357876087059345131808232400118100360068811019319593565065655487143760842353055886745827365079113352621082478248132563891259006102973690714518470735915531013162114199099778651572040733650747456755639673980505219530507203306976365814186400954667346495608310742951879048406566256034118220616579807105968083301158548654422928499578577817612301186444075382632258776866756578103337397074673475495373291390004679443705226187396626177365502390765578969883695451613978748701235980216615425537113485415883984055358257867969224503238561326501497707431224998332848701488218215049157218990393908471540574060212684805297934437630901899546625946710287724951792948338830938031439883407404909376651730028180097927015248179564401521475774956675885496517305186388783778218467710494484008057234959744009982963992099512329007182184462774201659229972737422855011372360199482287929362621944699047089449456045387214177120110317467708570518947184701659341006965301994242338407749579071217684364592810720921756362913342802557291367323606229252899818803439084176187765300074844111420654350599439778830200132614957029128724595566569895944401863678834719058207848463765482317182283232880747343761994016167500162435675532128115749800356290734413223724740204139768817527808301700979065374259620490268362897591877228846647999755356755738235393657503552768148686798378315668235070180532065071755472488388257576255507011232205408279164318472153447252475773332215921950143809915409255854138450664894613327925777697693774078621781717014949532178554325584012360352239839266680124256819875753777771693551829393727549437720769530300568339431174046319650782229161863448006861053615056503446563075594989335425438512602978439952939857686214239383707396473530427479081377237796613790289617921791636173675192240824880910205376839535587084935093258795669571090955234930880044461137920369589196361336149747343974671758345279885579055758361722906432308987848290160415316748941540928262315561952415204370074883031537053836835601556257328833175082910454323345390255346437134190546518034982844846297963820794300406993950097524801321041485704148526894538093062331246223405272345458261145161036430391392887504353458661779659739564677411990225437198053401217946601315821956010235785218410117000131402850188322417611044389334789706423588606551314478980716201765968287694442251701964081707933007621163912774699422133787205540725577008744724853916383122928565667100376032422997414162839188040488023417694661605700911940271190646538365862843058348327551150104764766330726397591281390332757420094233009207699420948945718545301178145339859360025396523999458628049495891207342082411253159042787663467853942447224957581832264593679374779664600018689276224658337970362927074862251621052732666340270101180149660534414287145691975187579367172786051409846996610149666340060951490819325497158634390083533057230445489306451521846295059143531031660806327504626797586290594666641085937863455759214420489843661423332623153806334391203025927705531688897297730134264258823158472211207625206093409549342527767608728311950121602736538426829511845819522497127355456405537753393232990306646449291984735907812743087037150204209129423685171176941061566706381156771846966836332485529235055789268550085071273290694566206320115624592145058633921969828348036989191039533424794482770606427254767721846517397659213648998776469574857835631672525084283519028985145893953448391135091396275589077468119556270468704433283188333017271337429269165382930330747965370814603573784795683778424951799235295784528848910660419784990798677268695594693602669380528014560945036912544847808782568785308778485731417649904073519494545420147356724044985279819559351326878368272141503100807429155986249001680520837314572243906976008976310280588374523172181638253970292905160814521210145486247830552372940840027576955900037148523398157231459534860711142291608611657921647094380152984284852886983578182335716646959763762061143331077170190612896718675654442431940189983592039206561814119035741914204107266430427932957009933313518176951441552904410769907008857774641287432120384492907648940139455362440831546235774499995943214056309404570726702392954320467248177613664851278788062107268746736239115578249936375109316365056040030103785000814696137738549072412038746826921772509673265650301463874428291746428791834647464217621234105967632042558591862615458839222456256506817835533712209389073519553757402344094904885569599207350067872102161843190467265809231850596966614311912040359262916322285432015470770056797037742339163591217951553536065016584260722753175866514842687782148071848290306312862563858303396222659060603818236339090990130286592364626566938690798221820680574536349764321575494699732585698741162162519989446044012727270437187845944455273074338372063655174274365956341222746860978765800739744909514637907381377980707583154525934767571990773745037904655797807405421905134425823578248347059151303917535415367885290054811184383217592678968842256615060581945336447729373661118213939308228772467243090141969570602719829152413792549621212755014761807515421448034877560127297836018929220382557303969487220189421931443535906651968188385618084100489050759564905341214697768389967528845291339459740127860738295550303067471278853323182111742815556066154148672633137647016167748732054251280578120358288281336673878845490141898314117442756922860445163314547622592669086342795068158265191158970765009775490786107055983068675613114096811008436563893710199180644484947742573730958846323108620618453543939770457902874335414755932176478792019292362709432690588299417853690667109377868042916251871102231151043486202288772644379616308641644813203430363444494396407089946851446462944185664192324774129963838848838950454721374157381503314740046148926323879527952887138091025876069406240783781748392844337444969327569700944778158330802427353914546010396395312113940274590373924367598231328977160738271724740809109183437614616698382146183405983155662180057240396763394539135408589116109727304434404113336421530287970796511149626925281797805831616315394360924266100954391979873298337705791367340471364678422604591773829482940947875465613204218949073843500987074425109242898898771521492305383212477052846317692024422091833991159814467417145957438784342775210320310249141290553751176191323248688737510563298037312959584448738532530454735034358144416276244922029909338723651261026421657536991279863433081124260669518946940456681411846986919081235828536330089379523691574439625391416108093198566735120348985642658059624634267587486368803344334356401515528947667094724234435293688770761257435669621335607351518265244325592989159017718313621229663409946362635629385809698386596276577252556345685592054860683700894832815110046221483326269089756781239502715451163344168036910081110342264262122153120744200628001928861765561626502932092607820527165390135216730409189309401809758417737818438515232609797561708412020554150611254845722543345290339233857177244040117581304004722089433938081823029753096869981780730549110981064775992806047964341056455843538820828128827071548384410231885238497210545089741736945995902875782231219463704814448667591694706894018886728691710081501547733684198036022054396873448726981886426050665400868355036111541063327116315916303338200430368215747010515367752329360951959665344761498101828909163006714248758529219268445355362706800406365907425815992971350949944584533216513753669009501213483981226944813210433155449687249763718830025897910005587174643511957370712418691571532747099218824708991884100029726881582643980160630971622910900851955041113982556381530694246028154244154582526216507015093601602910197594849832525403526154453775586364864295708259605695204274032137530519532277719011672008095839134537649100011985077267581408937833661092631509998601257660013585696258480822743934197675655972074362440721337870676509583272862254718771487361247365858496763658834417033392292216623584713417837609749885435652126261613838133949212971247967364477739173954507239718893029282532476719857616282395859916325720381511304360456577490415588399504017714443096857424106153205472462883198144079181649349559186452895097919271971869767841952012713918837240369342910718766359475858665732919309901483767445662012589696875192028581563096088905856612019017192892918882762394426733515288911317537455218502693253397597394610523639123489070648015890725589910097837076376364729004022484548145969487577953635420573909495082425239708339237140081570818971112227487539316578021433071423228308938383511977777950295367277752156311918870299055386444807533642670413244919750925820029715319376638477694472598904685559389725001687286935140909028368755962120870322680759489840137763318548032816691524842515383190493435261981200267551297744176663541402476614160124668625920892542855888566141849400960829767034929704775937119546120723826570095227728868578226712656315133214565354952574221580034485112667971429397441783546070112174521102493014802590019769215373552786910231851022400373104449575427570347307673021672706935908052540017095129895914677557290142877332190376415007308368732184193959473349985026902590742328763592265282801020131565587725743491296543646355841482386685953936253353051049556491605923449526742980643468580507804641386008639911565465636961673865642112880559944466566865782722875389972357557631931708284366132668672582332166567663338717722470973853526590791175648652527639043187916297965614693141126141437039288385572769200665197403852447390303228078371976017081727557324374426787602965496818013793336383487023559944992371604833010402114954542105758972285372315121182481796824763357586361369804721276904392610534685360713993626872611681153915926022258768082701882207015035317281258449463286383634996079017377622553523836671731688395341051524660572325198582735513870729432388639551492186332875225642526286542387261049915455554516495427253053802132319743373460351652111080919112679817424216881433060587739859777042895948555548228008445934982567612316526702263952229351903737416527729457055388090929492052095686224786087898404087604409807861275805873762115122230911637839228106847480179318355598926765006553721535468852305157049705519486716101413262046464143245360045809595260298541676904212014677551799120535398932411976031064716752544171938489362462210635802655150262571947756866240549709526697515319362845955740944865652773712679857448535737998554036228861731484098159211394748757133612944725007832444227480031813778023863069273071705733960059597361173873052243720613928970624177701009963590253732280751319207277186943690980044855139182505324817335221084869591705615818314077948325039342544794041175673311073919577880340831035724270637384393038697944388028675581847771291711052035059583750435748101079722142607708040522082842845934660885143807683709737664467526981435523657626903126807232191629989282640133464052165048228574711282834822383598365173411142070603075382633159968058722686473220847419031010259504323922454976616674465417773483300966705708951323423321943225584082229426578111341872376894632159123057895629470435760307060710439819547381078444071751476187353903015632921777143766550142185599695272752694604740725455079057131814951426725249460666385598485394139767075474858816397976225929822671753718453509389171902286774269446103188653414474465009149000751988835833765413042395534880393096051052914387759725429467022364441208903660999314400322621315003247353427345785734365823348704011826959168708754906916649039610177987226832338170390806964612292081655486558342175730492890678723140372374394078459647393850841712418576953032026926852772097756213279694809295831804361893052903586722827667959680586893438706377621188417884064685748801911228768940500271386982050837322237982115311070399144558523501976857821564079489237212563109283124107749693182544550242224374343540926143823556428448524098820504279071897270463776129588491271468775689466209821390794891730919404757603035432318393737311559625556712857360365687313183812289266499436360806600342711157215764414649135727078652531242086646094173982350201602329166960332912512720730476175774980014078214013407616994979606243585648571313089326533192317112611665073908532189600550935347627031005660595403748423521560345419759200401088022235995062907912086309745557133755148585428567936860525077302917662838538562172588851191983123941023344598877639719919791380201565117925866836166172033990335696579254473915623043011000486842884312842065358935101649812089626018470185569856612928786770104965334792075499104513711075135086165719767929091737020752373207202513396786643703912762652149223677573330057550691706293917859857079698337665857961982554784103221479337533098890172078479146243767368973108052391125938189722037306108083560076165231468382917328690362414150965099677335255740911378692685194565685011916568571667913165682070546511603709887342947908261178573386250620941890837055501409761668593337614972041170292913720506065265658369504710651193271386287940567770565287798348707463973905633601251680336522598526808438258324103374520661752186931392798462117068951287690557277703529227399428084062172220734582366568780272981727779179133479978349674126077443973075845166397740155370846369970746525740590436943800634886942815888894438633716262311197040761185686612249028145792297788306115346777905756526965293984768773842227681277897574501725944058842968260780683185629893864875540916007930875719143738997104330073316670999564928648853187396930570129563009570305167279217705661284948803021378182585406659178731298021019715538514491422408576453832940718099625347620963321742642515412815939640755386102990918246228194931249691282705019500411930627136366452909720305526624481304097699483683250718243778351811555093946505376436612345928058967907815064391628337973529693050590595742078529724342488931673772295281133276399649083721755512620637403925974736393420500854763116932883729860625342136247041010707983538215746692275667526201883465241973548640813538136492081494759098038038099613101377942359083286706636836428142865766547314572318444112470785483227255108466413966601494074059874318627051018638137113932078540509785569380380424565386506102614325456350773753988837534697411901289416801378124903690265274767745004694351164289387687408695311602959187727778347804614514714403793922332903009849418008473102979954987958960885805087379725824500739132200596497619858254765192345159018814253352299881157696323405441963096301693307703431211783181397390534029780678401540604658100669316434452731310793637897125926091526147420319792523666955327102574536090618413340455601325673310137048311377740203401052902804030159336529306422168870626776993774172310832104216897796354585908083335066262812600416539479427566279197530162020092508899308670097299649299057797818622967489825110349552403403351797050681403813374696063302017750237897765853823777988267026092518957377091534693141296230741031801052791237132185857679015851256885366389262055810788020077687562830829598987606513603858735547438072446922463706464891752615307540285131218067928408588713221275495091005947672799606917846956131000077111697322360789600452237896842589719134454951381753796432038469781747621598515909622313919470615520326453145856442111377709186301496175135829354045096255344596448370127534992907704242733891776844864552253843044588238904452983248114950194428767959297509119662623706829798422384709230831349027080272427013941935035804510485587120082708085748559165007203624493112344511672538255134176701270191561898112708305340969165525093909049899479842787096595002229013558763553219128339072984821468834636183466180236710723651440147550742163698522610823682498633149422877358550414339761921956889971033345892141704132684033067764931173855004153237422305594636180704647577352301227936584700749988260744604080227099165282515016317135193361862849118189438614219711006599610972201564330619948219629397363586471591447538482290659092838600156053528500694001535868325099063086960757902963502632814980761154820870562188515263419929710298072074677077024224630533074903761687837685868793870372066762421613099999167270000042689523777082653402283215927429065849187532035294376053001001943719622031569635837493502791269345323445246065625186931422862112239769916904267028308172548144744135106954671763003109461597780380979035248860207698575206480147288415229104987183555589223257871835531918917128789596864099569365470645813718799760775474502901299563256475662083881573598412317684274571394562340248731273109414864621394481174619008909319428545184705441103087241401904939556653633064239846530925201719326951078771041914810350335718887026400667494177820744670735180710283073329327724409156788501347401687865945466149643073560787558186730235556047491198505923071144121963929316150138299617489194330082561831134398196842134600248315653478283676143295815563903205256973076052916315446312850504989231363740671519138259237197810965765953707213102041563463937536056709404592296220551906627376936130215731216606666425039940099349368901176215543952198267277921593838684897937853846828288442591052774521669007059445950455412644756998290041566684248647362483487872930263975234750819740696823341324832682969458722898954004342128157324541235863895251312660534833679861873449040428983253751470431490311601289587263652689188853281135099711441241090435283798935154359909579514911399100959986518197628037933882188643079073546709030497101102289213194308089040592954706017861874349561364098029214165521880410268577475698606225959124320789859646106508990966703437743020269720007601073650231215548091311048148407558331734167911349418063466515370877867834633293372960288863718423615773431194287490397812081811370739934724318738067071163355174754783902053591254711526478938575074332079527238474694170560458905565465243719704157198540484352512740409972264426392811978165628009415222735593980348810054874413507955123955353983364795503709139798338968001136645392899536718853851314854883460727772314934902972861997171957672347784116194445650231646967637438561233486839491265843445382668487645460369668175336793223789417057648371027105984962440206635513305350550875979395564905969719524661595301146375208543733655261547851935577269426138627873694714291781940094046701772315755971028251252174927295406337673390934735335763246525359724101574450343028394480111342597899807360925508776589921685304845022069324119806238311296587626058685790018866719328740278372870912779145600161239108618961011993660651687962154096873855733763124056720935862344557795776039052500554251966083578525641954005202629108353802030719137650985569854883346222469166671453619367118424540384605049286175407268802771187730710471470462439841215631997102663178574793081879414689240497918818983242501230027517197002040941152979148631568256089519246180007919682150416698477441999476368290058813242994643122337885527011765643431779837821991218085598494361954317781242717577732148402660149103411963577684328829616531463334826523838458936673385599592417387582467509985167585208338351101737671061448677561374498812469736175273847305811170425491921641134564352185869837156218263590285678228961748078555402182877778444523308709761121760950328294384372574868609689025623978103049739779959234632901429895668100580364530333881139318712607048988544846591463299637095712279411812473980597769358317443945706715192200348983843379360708968666019887949473796935305197710949925150413039691060972892379971366138527302600391304059772472127985064130271993659028937897709195809188922838970368261779021132758408892789007936442104957215612717485349718496544931246928648684729736712466561274248087739361654975151737191323378352323955874735350616396514563182096863458580778890032610737860284640300426157232652970798211892076291520594886442250742380958964642221658736822119917996903290836693980626633537373871114256569694374277460184330292084189073232400006964452392236113769295398219335504553011048361579179019188958437986428328459890264804951862931098085809624568294648924690166199692292564065450947132177594252905802655370598188293224578871268846358278386183208203581092500189744162225804174709856896990443856278038188843610641774518430072522730863971192005406473966047182965792443682562919694131493288958101785795791839725132811741653220764838014881955338709895265687638530314511970595164072742966340969740954582951266825210633466113401346461765050354145272346940669346756590655315617214723171873055039709584722448716317015493996970504508520312615609197266217721478793226082697068980853438927183813975450650633382970456333939397558188642576529285253535212682500215766398566919870946502815916026439688243235223318808926744548843502444897925614271481793242830679559886384402291517790437381220372717703484913770374123863147629753926379672954591811692375006130042186927430929882578358526188073906465269970314497126567914275654633481052164946021646858224642081048089117672837954162362784968075677200696334547556249979353705590443974500432453479421627116036031792044368327545857250235388270688678456509507450936593846991092837072961549218992060915947330577468266222894806956051959910246542527447212652022056025475946155277394911158258127701492908540438013146295486225050655518276284875876973212559301298358988372826916848009863039505077438945168072568901089292036573999756195937444619420172410241244298036944317275755618814216053138592325762448406723422316795598039925849330359442858722138828366862995708995221765366968681209750513513134241222385785644075275074902026617488221257834136239637416916095794076308144846562691647541603031843447999740647608871291313887089277468098502099978422262917621046230868507636400229759516048723678833815359531523870513208427123576999269088077804015282396602024087998448291757677014525197693581179022747828731649512893089179619853817480403438579673373273688516028437941448790595315745477378140388857315458047333274828922003892310521011058237842301377732818809773667599154812497111921947592873601568682698372959060234735031090240995373267890949356268306880122037972776857602061652057108011548181363255562892223551162159402856916139031534143003085768501909550546397015488571602189095556070787283381647902789020018278137767451765230898042844734484974410301746137162400151054366335708468857557732722836257619289087579580884035134352875224571175260288752809552325862215009543647861238546463874422280964762537818753198583548440657157178711074563838361864651955604179386156336260230118501187676472957578987324414184020702407615429528678338082957438577917312765515944880728288193236717536688018513196499358529815603197137829927160698966583161985437819375002685025272703514761147315993403356063901565212053713845759391463060257875152449710612831385825828026710106730756790360345314392990979613822299875026697199742638646785576846130706256513768875403069215784490856464364579439270984440045598502154431087565518408629694840557459327173824494129083750594672657755677951252036374589311237685952088589859012385809263184075923163657582839209430359979268641546962866660683401665777394668335215111830025972896571510832491107639784172357362198300304518338388355776471111822366356503191870058975359426365008749736338181750163689777317555537897168918261223891427166786110207643161432117316817715746839535106275548475464654327796530474498036688989107408937481867356669466265599433326944574128682985087532066130040993343039704138178152038572116254178032481415711578749741658670694928039558568154176087115879689264675377324694656201614090791455030973976721252223270366240103803121066300183578025515327084740586006720058874622331863169218211388672126743349593212777637411463439364592700582907288813169684405245467189025674546710147700611657626330620355083462803211063168613219474414121970940033472441001049981367070724367762668239833393415239634569942050399470028660949952265604010061233227341755661526684901522693366703750275524017248215636273467695972582838453161716256021846183025890199927282041428022115828470563068903747995533567152302692299990402300079989262825907410644082270729786519114371835416567252497746201216274851286300742938572411630595464295835549846072813651312966718758943454788009738710251156757605395675418341822765751750707146972828264278925555583446757118978932208269230141751381097993116862229507168818198430027402224880245421484914965589653592277065183243329129706491758138588245739525421922381077098875033416139211008171689298464959512368388889567243603832720253541821613622940515920353753330206243257903744423575334748623452589136165095532908138308226181472490379689157178931946089454296489605453499659329196004770055347362055991499544815604011235291360092335862822540917337492743961258601558536392160439987473977305691891402166183205134065443458777202450513921495447748526606829832431294002995573618478128294130074375905161376437833130263057983289755691313243134742867303525856251343711407975233637663577590799938745164213629937462118322135546170831175504866819434322100587634690452317973099184957642383246096845219243084667963320845625640484766296054095964023764462064082263243942438657691366229329791765522586972336512960117492493633575209532287528911969006626093335695069794509957783358291207869585050665630402009283650869374621067287699236748025552886321595503511899542676044072146452065407593769104112867987965974522028712291505826666182155465477766452142306735132133859240926239675172403426521315106248795766802819278183511963255881740747862224550401922439791274356737758229162376331117301031870623291589725468546292139818988232121298242033407566288992594895520788018781640705107729351732698784918333046896116855251097405157076063303091147110588880712329510826595241013632190227948795572424975728617059406389618444805407876104870668134473899268989220584860175344156785719761078825343289626874543775149545159354081583277629662816658366742939078807522017321005910430543688184440511424273427986050651032550760239572378210699620052095860083274483434904252818626064330343075868455266487029172157867753314273862313866843293857451549393944836294600374557816996992624326224528669622446639346342321968333768410874852704996026514063490214079970769594559792499569961679163673630745245204798851417932466354180468557983901405099830293333656435154035836982560366402274056708069753112713456037250492749607208912613733275736644498408302403911692100710543372291237633725760644310566265845488291326553398220459899402453541767526277618694644514395844067846759940955646989539695535095677249757632873437211521265771032974607779850631871840138788099076955846445570953026737095287332642856592478508475385848070280391256181160856632843869024389367777122386380428045552943622232237474907838786004014802086907924119811956279146780574184364726407262589040174432480395930341003708145536317454661706396805750256012761833745662887346821662521177192846996138085348615380036222247379555115874602017953306829806530022061750194186240026267119394469351112032333244836103804733972071202293917405346085460574109090010700547383845739088426225670661703103570119724031070098734227665186834853570429773513138300520173605650538972574618929876642690967186587897487896186206427043048228905101035603916587262787908619859241017620767718383088393332564078851462822023832961003922901780682236555726961522144211325955479966279679534690132735954580701809198923741145744295792710139644633655278943583910771043273249613556156139430721565942014808341028643171884030507648471585323018733710688935251563938909902443671843925300963310058709942405891117077633215619711441442019478982959137117234615194986698647038766776358009861890915268746386556787060156987464617413329680865066515523354473146912682980003082538634700525727861153445270686722124428380781481621598021147310362116661164808480473906010397749112984861806729310603412434755684557073065514368396288647424546342392575645181888872972291707059652623395078128074885524823838490854977743811756742621188224792154530694734573121859877603142309625941800692151325311957261306482474653713632266331028398648589194912435045888419852900259745051441227075908345927615639414777090159298616213412361892059034098389615201725635244460430705511970175900927292231792833257357837733022556915891507488249948360140308772582401102640124549877602022105488475646104061659234847012195514348420347991196648244931920603161915853704210446392829326744635863798393552713516623826281626600093033489868924086120500545806622698936275717239107642088075378117874647430583135845129144639616772485037570575653657199484388935547543055721184522241080942419192788240695088221264230445074329850938102097647066868630115347151307718493815925714658909639945200043103170353773918702786126584928941670146951713281549110295349861552000767641316267463136333511864485045353421241719045955844373306823673410342649858831565416162963862911574217322959987200276045257863566584485987622910498359827310070653523388858002748802122490178625229535486415497727592867505840651393928542974249594996118211902425843979386947431140810688859118895891221596989632586248103002814112332005691476014573401610959490298306400489717764776377121042116579277819346376238004386211017438435384976744573787376453933186491883554333793937723962091569361206091791177083436592839176476192031361947614478681963805957533886898547429155548688446193341188239955536760940726336452220907763766095510927083496972786400089649038684722793823311790617768233762248556765222685528432610094853053118580000831319206047653582408352717253389451860936353140353286022357858555568950030468134516406373515397562441406172359019599431326959348937846535015438071946232622686346489727144897055338390150476577316028645036740176013917147582992854681704786233852887185605134618431863015747120171317742995616027712287149922050128814958862731694582385191998573712540168675233676112613801958122212434037054693194009967699752108435115812328010403003602317065901908783309637978492833875347194688585999880716979485588094056326453470542833423977763921397821658925755501800579126331052728409351041627477945511761655898028072920216743015605336748158337930392436735398861921892990638269325498323999370948226633756163523976102871704396402773521258329054262506980069793999096228757092099654743714036885002102919805021459367317627168848441619558097277908936682771163618891491474393856707485242329901487708349385019708253839199588960617448241577561633855988959244293825897957408889891642303954493627987425276757561985398422947533462369247444803365663245108698446014700684918946417778192411276128190888612110189505836450941784361045285195610447441796162713511962116939335881164664225494750506471654140414715412727784445451031468112139618437342245315966117670470846198010399449481746070751180823304410297739687267147786109781214163461848058573331456690880919674709919128777635784657133015984545145456385477690102049722656456593087171294265765802346391611951288883195641502839927465575651551224757363314383648664494730549711159027458390685954410189012085690793877255670466479458424617913798919091668733564395060566732105299881337218074907605669386384881810457284432302506030310889834837993459140124843972158543591662902782957380744967123049859923889201625730086279289675396570800569209678592643598240918859655924365893299801533105137896177190649671809834654447635151154107829514911321518258431552923048436603667449547338770708137336203369602527583685749328160584681852886253678889149453129997291347144635179147147940010563720294735975811582410022804911600777327754142893348938520231521436368605362748581954876057639557867848657806324658419879410245859039012558781720404714127815439989376450596118335621944987301836858614540497138094652215900551191376762869267986547960302150970825793874731849294878983989019370083632794145311394088674978091039110804619248459876150045011286407798858397373687444398239845911590463992576290344000223324862870593948665251857799369177278331843141561354705090801150467271825933137394001981085971832002439229823118146519869836262164993360627085039383985663538743185294892790629819878061304220318002772321195927961761741643933754500603034885696286278970957105880631601157140438259373580186290310269491958712591986425889220690145025733400722409329734992598578524938642917184509192490339358966346772155043930805235880286001919689090330107420720242470135183907412816879074044063879737761913102426154436912238061750654250737643638371278481712440630817113326074213699377630105377767013935862607985675171926706396449680797115105394234590537831322115649394599175197475084874427622082929645540853872621821377260273769135710208331653858176534126705627380663005338432835537891032641653384795391253326587264273243147966793219751756457178474874389413026754804264483335443963992104702782200015497995487252145525703495908844172362093723202107684877827826387676873999117353844477695790934587600426949877258389870921288899409971611013939425965176708692253918364722375850660073771917451804891597701089689701943987634017986691425235604552866064453654590615070692196223751060541470458584669833274158581087664286225862476639186768687444137942938220840678063913111741014026013926327365036629819900205821596134460208727074801192703531327517851978400678257047960934020648319219288612311135161511171810956661800459914469907688529778111191968432998730293883663312422153869398889730346965230364913959576259733382827221412053564288432357518958140797043921231339944792743419974642920681157779328773085868594356362483584504196293140528935025084563484371902836848231304076831322028367835635429716765195387299027872059154866831320296056133374003788061771463267130839372592468446874838928175494142113194424119566133765256277930823759496810842787793681446796774119148135972810919699793776778999520564073947947085386961271457234809591820935235682129239122244845363811133528734628531882349813854120385307524351759195383353484286370723162626234463192348587460926277385994631241922744071055632528512169457963822831593082957413914031024379771548886080638328829665732797842647768960663174680922957949038825072248934053473850901096598946919281871777617923723351567922410495159690875683169824307120261445036815374660865732227579327358978158028047635995200515967810709542823936774156821004939467662492492001891439119870118253876173525763132224519835724772061823544116517300922336883108838809061071048025693480152173055803089515291817170192523577359493502980743160375074898518484983467392729116961416642198513767562806521775210999574094040442080917123940438993194427085676520494726889970746113031344343915514968145284377120271825779982472396147097658379347113129594086116317676561713081136191460618396517243770783187712149080075633708890637678118442184631165569857499023794220081945338008445400826631901408760460536550782454827940916502721609889965227712028638502680545234800401550358419959144068248559182481116471112337687444879559244545205834643652969416006437535479644098316643185990254857629661696216024704476680750331275010062551425976559119186544706150563113164700827137005088822403697399354821213093514291949956988182300035322568730808162760485700259347373382815816328191477196524674768919845971203888166305009537983888345804823807230548886274397471299571562893179272108343288850945715887087857518455355625279461703459477492748246848504623059570609892763755232716763546153028476054742258204849767859316697404120108283312258575370247446995423375352868491508450251901161735561826185933041539431438459147233713309031839689013952080031398480486931763482254804932128866679673130129334833375171745163929621742555400323569903585794426124769545715246854017749267604216119053278846430935683552072866378416662784661785325420311542431574919253981721847597337209708979528750558594967676649026528946505700655679011151015081429106659695361313702343931640568621178526851128242768833822762232579374463020671059897924176677712028203611552381027981669664395478670360414368632284556855589073144939357200678472440051360072499966754028556920466928059869011263337700428815932127824433993901647252543169986658384952402875478707286299705994991961634641816292020208034925354919811713117160327679433385470158370348612976058066126763628181021753802583454515048022999004665340299165719123145061394901682036107825307376004949363006784515220801844995748979789620627373822868735354871988786407475012900137745539663529605230051146934660603069771811756601201526515662119308623113430430640172627691573132454830515871482499103303212254561216571642083080385297909320386089783132731592774377177708084936490769660674481003520627680633489067574034044995433788484489757089278249309029191864123780369768219366876459565945201757080942817091802411087330679918823896539871253164752312489388768788219614529317203903024168109391964636438802052767092916115624369029823182104537827147706322791863606939375367599954682810551106998005922326173103783255854492715659915107416322256076462523596641384691586779710902114093280755386128364223907801679691682716425459251371309735438533405866538446690468299255485281464031525068711429812474653711513337330021160118709242767733929057755939139498932705438927771227702871273792781198832713763845838204404114837030945675454903197393713131639133846819268028401598794485840980248669377059564972724717211873698898510094370689075014508634433541996158192263836674844962459981785114622513142658662980485485023719712626071383007640811963495659029182606293735885490955774366957045044083723060188675427094524854591852425355507601172446459083360869135700934991724994314422096707653925795542978767361805730173795885890559005668304490811921308761476285004482734066708389531729400512790763527433079433259868866601058144888668907532633527000836120881926337564921634921170566317321526216839040069174827347986061570308102485121186422498647829058355312788436066368411025503916453870160413493996138369592543049065309569747841148849973703784809022450934193755052400888571380288847117624529894633769694803992567359338924872271417154714649945901192039003391589944127612793113162513846892617525045598926169917388614961963977590812834864186610355515373586317580569373085205474117587754577343699142087698104937254569575761549985492606918207447025340609040782450755366317309042871744607519796705508084294773637986689978537860167151638261139981640062607333976325651800834753833510804658060199957538602508921563405752419660546793348022526610002670427386829044134796690191630706899936892951457517168312997370202058360513883770865076093125726547554779991550086044305664103472323793220410446067131359580326118252155803128989826317146908829602941930037620823983289528272821978017282364990563250138735869328479248891673872035329468291337144924239953292439635166734560822096681703209387358614922526448303812152760722898150800222371972630358937946445250919513912751466076417241254173032783088622108478865753325391979684889845917784550768068652529777341498247589720180568509744603332890791956219309426827562844435010830264168027271692995703652903748309278636109435101576971032722701997748266214459803311497002781320826159099336113573517245280045208258221046680158657810546769398590658444075971668769276560773282879224342101215275351602872673894071624532255071197132428556740410050297842686924635618505623426577058787848467866171628218290125691575731211569870813676073152301970947037111434489783900305933064141997607553867901129151106677757918447386691198512862752692011749990959600816367574997151521092928912160564285599570649625175372018604687315527028829418705927768337833094625652874961491136928720175987560654086624851274829067361164156612019900650483245284765610499852893333151304918260126606981913930640203995272912398325598538203326151470595129627527659698163490603342871702167019400727814688697107694887461485016665873517749669767003645523774188453935857664624339721083058553703298589895815516921426672689236667494887007730104713905222896000706859328667646915363287488845210187198505246412176365082678894493448759401796961171927273582996808357033828190513673356774908912462337443678502540553590751525484121633178186143350039325447837314961630458570670171861317693456382396235259710695183664194599503182880329341311364237648098881353439165642787182150611855339368721481557530774549762063502024064414722093260425710547225861259162923452149026860683581087582945838347804152339625626693274929758259757293899869384806513064982594363833285722891476659242630202666557951123583044356366844325556595823001548632261589634775213459747056108354162480636973620731498144243058952974697427155068450775563395045206958956858447862393519500932852572329470556378544144793793903416586837718187754660327974357328724738380722635903580719880084382462075759814574374975980094770048470495660926510714132972448765703117998193743328174146680303122007825917391995467314753026223008721452225835746818050117717002634961253128825052586362261858292491638888691149841452455758840041687655799708018522743926574105868108036337076897468660873988496330975000399932572826767801989568139965371879790860471091862935891155032420616713395631851478712012309484327275580216037494469320359116958698084146654632446330397929435217579755350883652854865398479546125751178133253027205144832689197097751783443186024957246275865775504138035937134119614931379115164161225175345304098171218393769050290541216998741182356520804773935370969110498371348258893925061650843274885566227622878334316712585416854078513954343841051303037134992605388132230025506520135025611167616022259434695123173301671408106333319537608654740576673640565865465465404353609597224968411895504128647865581784602389585893406337917852204573231222032195576536708632597722661284359529927111611345089819615459868014121641059827192070079389760885253692957550703471202829134010383424599684343063496647056861065130422180014158660547265945158675357982656334063111165893745871644857662480358816775167372120558021000730922798711652312355173938332918839809560828097946628367863989316183715435840809298987148029543234476169355846264357147985090043102595654713431934446400496515730213586426181554923227996743030860555111567967786966003213905113877123497117052860624859047714382895724314697427323745965734248170984681505131465584197193775276954633228935923887591628009679431855301078184693173230613159276570095423432643372714666309530967391123159938200486343073280343621230800057884480414005231521071696594739956138485915640266465030286999272112417331929400042704082989206423147755484113896012412076260504707680452974936841207815333590048434450709417004405692830337892033872082158196559077521363536202620749603753594790011264092944736683831434131253257498347711703078577452025604200005920324983888861411082498900559483232063910154539002021326658428556590059586772612758986237618433618444143659145738519769348636954995641880707696699970002589921056845367920659445749139324704212196085694857983887291890225422112394098353004312397877278071901770691778832440624262309170367292538741113678601505160073647708377035154007623271236145965324629763838814968209123994014575651947296753062363845643852392050069191765854466811971474494614321966138631781462673814713445442622206184315131925138532767604606128776873345606552210298987623969716815751207801185013328098604038650459147431782860518041576722796368935256719695601603569053139764333385800612787119098607738537404750614024654163024108584702465267127726563088200862546422298923199314646980866607346130700437146924174752328038402743503378377792612950743941076309884317311150853326372543466016512895887067851659526493110049000661200040328995573023773286617760417774692918541174319325868040726206732422210568627361130938965441764538100154977934065970115557627062671722641225283942569501758876494852156147110606171923457769712560874784564320681157444423840993552158082284508287315863897353971376462582830210420308474661453770616282750763853010601099498683321553727196198065184620014387426019581948831543746059397992679290668490902414075105152451383061812390482656239509049284893070670091756178303857405598236313109174370317817600171939110352038669162659829341756631905760664295582351261467321322190649235234258250311190560691500550370984792216440793794940100479932983988366169986034144359621469523828506688414018896107937784497944354100179455340810780414588638440433339320553834543662953276338850130746828925189835996299786553557591515832993090283867163858744790670386264024463337500302045674297517726284248899622920867379999767192755038454168861423080746416015243294188339357474999887087868682603279120594733207423466950173571102291755274153652198051191976937770685563805981203668956314625381001662008363149373668296990853716961490549376532981103686288797312983785398484288895392573163152981769135814026070910420677985832390443757814415107383713667638426135010002703401750284088767764041957514692629145963798852747535069731628978852462165253290656415140613754952785560181450396459205470021319404925731287792778664954735223750253473885657314115987135189124085807434301277888474290787979432744590575856695639082213501979502203017997576388380138341809992380279849595217060455793552805231461563702309309570788082720046277524970162842132867095535890764842541809809508673823271751811548028230438938188057152607591799363811212248314896271628349118449433529603861483296669221828179515880290477819920182406764606806163892641961618498092404628707629033369768924067398198142760240698088746079303005467821661612696783483698670895446387679412289607608982668657912365418958776572922577347630744668072899960238037162643239389698079525258782137059860602899948861283347653176851234852270708293673050592668343525706324829636811579825119309967661337545983317673088843570807582195007088073607492534270165301709320156494720608422970278063192632671115783803244031729956329173295965347939299692175209181371668960740441644412069026167760681664666408024058663932382720715037586554864672605938350280404884555847267597032033558917497528165793797852957796193762045221892275992455108156381107499247091836670657650107154549036029768530703265925564072903492838129701302141053003319194710986414197476874813609911192332675241286711738421505963682965424012314843709932393620106507395637933649731084019091169611685973799065574433061750434427820038906911845675302325230516083746104584908716382144070237316747395624874811369198598608820892253362522280790358650487401765618230611658861148004629384806718614571521701039888865047799546140078339517540565665994843895039735430234802069041807050830808758176847020047475308307847828834741431385657384087147069062563633971401037171051712137683268908037893571694063963057891811166142092370809252443207280046957895687684766896469986076458531422478823805100895482483684206054295651128528989396134360045380104298492945392642653430835741948288981187790029632982940351409750527136800083992634135186623229110886522767454034011453733239124099590784958324951320531101721561965101608629960508282539108664939190529170298692665418324548445354042142836263833797643700727464065176757777674828628194013760077698785922187238633208338889582284264763396483593898641213952902759375022247780352327407366093168797045562284302188327318531146768266378176757993431654117309988998114095042184886462473746120518813990513403943403359939346731031894257875770907296735908143322350494005379592899577041728844319394025908685159737555607764699117857423712337503378903684786182141952662522114349885788202031811032575583713854497047866712669112279568646136162900313899740602881031472366094995095872313266397442418027532144311908545572014757884980448686527227740762788732488461446100825051747991369180007048660741398408553028220363168614929563818137801341267198856796387579469111940879223423964907715020416329001429287899182781616773933107551902014026513463212897112142602648870209560319588474411953354780282449996243255153233181068036191749498610421166636362781355996718181189053041849966968521578610786675939335621176767331944320378637513997423252080813155977838247563236159511966285207223818246960973064084473676768234856452954535675788779596597079921004429808571550786203468486664866682590668555459439876425763752108373010862549576134321168808215030072869487806697988318921446601856876898308710931651652545082598776378564761249062242947103864912587274743782309984970288055803547114525259139592250410159247221602770529526142843387109994117851653404694371923851871293128403460604979556761894476187703619683845901879135737354000707563649232097620924935010003132124756656876965042402522845116465425393465925798066601376527713481929007477506746803862139171267002816970303124356302301037065939009023929029243836809275005367389000552744377272192894472520102817235027709815797846505031840716277755054611453023981089008126305254799982600898538977681613756919967346334398178684688446600077583110170122303644917164255730173984281406565226268626682715967238318865079160730057009853368847085225435700713752144159448363502809779042550339240410995657692108358613429255300351212727142496508782184403410586505173140041852941138746728272763199134687027077659474173177886458497858353519112544346164363242653338076695646864034554500024642064461306066591073518658589067934574302856386911827887182893454998776228347496342076987301526169760925034313548381902742664578735329167168851853503246612726030915384359941521084360058785284060333390349690868082514895926509615888405221099726864314861010820264279574717985579576636060823248907267988304634061167964458861472447067190479927166637009468167685937997240781639679568395854881796871921790208457645803057526936732029141966678301556755684489429137207363144701387941059235225719080447387298260449123734958482945833708539145727234474078941983190027988816500151494253026848031880732704331247250217380313075493334561242643545993115123435794336072004382220941649841308027424640810619142108454889200061385996579888687193372143100531483993201524689112518554932922741529486397499552159279930093487887912605043708899765287728020047770563389209707711744101362599095994353642019685389022322913929725784768647877144477407129972179616114240554236324739031318110132981702924945001114925211858807481297924945774823781341495984664589484937546586173142835667659523453479034318425548019623297258852651420336117086976913892793770749364571702462149703269153928623429404589147069934379106390348823384593519708078869664451830180664810495890570908048955948207842830354881210002622027398917188309143438124597499095560390474952109954246111939791602799026390729799557182055594401101687543733302618925603212385012879364459758130159438006213795121904273489349115126367920040764580008838953240651838021012280665160601768036466486483081929407784602079117704464006000711819657199321963150601048393038698311765189968931833266069909679104224894031688953255341049322781141294028011150251318505871589319079426500787391677718178923981395902704196579078506563099655722735491650620397163203295007684809109093233205333911562874659430008594268202247693268465609551034304784705616424056375026003323707128469516260149598591576852980981203837662283961210960620074522276763325366643598183309103532501716569547285487506921798618706010254145012930579282409887584052475212817691513808986182137343955070257537910322136545714506931399882966736385594162512196443481292717233167982048270796129999545871610658907255529898930906892155797604776581721700379067942568215182852621640184895328339596086661571382697920882249308898738429851024275529413419133995932490483689694774785924991754882199248439190568741320026849964085478218368341920259123529134943157762522240526463398699993732576004170228119260818302366964291598317829587928563200297114042016764289027215531481356250044844137300470540167993101793379876776598202403720774151742751154007444776903200793700224516947115578666825669536974174854016606669981517958256230197530635544984691234076494115401622887880008123573485120260513967166947220373622356888644183194046273329284828840963105684129343364836977954567455415648628085296657209606276120028193233180415056984745085573681177185648396047486163798162781544070098158664786792977596404290788871345685767276205221569260996705221280178346212321220577103154816674752926864279674367574728549666336477881738009452406296821221425712876400331338112475023739507909541273251967938447558722910037212201474913245099456339679831853686613528709680384325478733365300065879900844459240919283621567575598823072071272184723625854638419466437250088711444093777185394540123839344636296306606101209252575422505414760047317989501252769180821682710227526461021524480547089629636570115451010974638256178069735734249718370281255567354812145630475014697351282685451588499940988595373776819561585404385794564494078010808169349169892499825904873910925638122920592254210875744957974684300810422700106499882280528194895547236448893376523946607396390452483008623861749756917939887260300435908720740182411724971807610347403250929034911570037011959808481849255864490581892601104686555949746021042637370116322609074554447562956088347640834665712008170294233828344139082378266820038044431426422494921139747207445163005127322173074210434659719060098535278139822708149856375454821212533026717274583996145622108153867622242940622646772432911447899591818292939095758581159173109905432736781509211521213847568274287724686578517403340993767428853526109424029128084180526917949742555362157901684348108429589367998195298323750422260732277768644810317883954615213488339635792159331205879222664063210992833411185647472985047890166334925833711047340956871420857593650402116101037723434116357347202819867612691409054547547633997984426024375984076439632633665443091486233467869488186634141957686282972420357438959275864901979725623470266305615594377093259176915048364700236575749505027564213055647894702553336943393640095048381894981411195192927987171694496909362983978636229461514354901056161675194901487706815418777122554433142934829579083086564851734599445380714602718849794606571304837566457827044931637626534585892438949523697093097159607153981419631134136273164461550782872504592885420311686517162519526919371043982590742890445447479603460349060641129154585569741105208659497420577568414603903102524521689367841981768777024911653639903636389969250871224441938940657193158528844005881255954906510827133452420119332783598169781651882636154660145619442439875802933303093024584753207528520061135551593629630591559485898170877690825477919113369913428412949013525930524245988476644035756971363935428814180538987484026372718682968680514512209892648536256794078355894625864657203454014578922843791562252517668854581869036350783859086803781186971577591843070955185248915254114710113367797856360143108786469796222046901086604889488688901136453290277887684634269772868807149738821946078787157954626358992846985055512229454170739518929088192007483391205513868903841218355498466507946011209085715916439898674115406508052210986869525140018860238284921254610269360791424984720786344341266048708287663041401873100066373368350042316849852236724064555146063210330889884789112455852574565318318848812710849255284337063610531032251164251529118198623475309214254919537202516483798631881891994109666133170801194437594737980172084573831358131569016014288922443759742218011346062178956884676669474604202768756293084194942460959471270454925241102382083520771126706811258166083457537616661652065716525837884366812324322290229061314938433484545095086822975542705269284700915522024754248510429021736376578487905589756189634598898136135768330396789293326554941877833413641205849900995670560422094557062395155316248697232360523923871134032761031382433680182838638469101318208481775991175482792629543714475397732575865006240415263860420534933879631884827966299009396710018006952947565638259237895347993634615610550988863622651709917817291093004047036561918035442948232033083537626173257555187483784311333464558565058623673820904542575555266827827910960805292285463551367647631696471993297776735602410222457422565402335934674225176922441789387653385272546239995075884004052645581528391325969602899313394751960068074587824903709024763775505237666395074055803122248729260943580313265488977080439687207786360359130251622577661634915342008299553098275151050472597253905717657779114352206803895707059270076232427832684019333709484297600998624199396836236781027652448236147999016369257287308584490480839918517640209634289466104441061347473662848917068300196282544592936513492226245172975158037573010348429433746617275025220576807027199403336695760042687441124392054911149601958099296827758434127153547085368242311117636017813330473596315259595463831909557171782651984158142980223058595296775094782888344179823307169692037867097257012958042427655966050323519547086491307131167015655392586585879850296818829594796211766700476957857326110721508474692656226038841875119596310165521663529041128442150848290048878231200608244855394566774767739709147046390658384544356438210772457876779173010890050578824169940091186817040537961724677181945309912877257422966746864129540817768369660512932448557780814497352971770440428504095349936732697830912343686665993086900243012218622433990993742863890195249159551099685081729949157781320058468796305520726266030392519089440412570774753633303363511795157211456409599448071233335938050091044146692513393362873631543105792967642794023802325534289152886200171375944780504140791025961061457793601999391418045372139103962362498722426652204973120196109106063578285180329238889981697614363736863700887531530380309584990339131774304531979870233194867457902407559447675068785140660683601313328349737372399285623877203090249578411807761848575248258537285307138918300558215654172513415435231109521114105105224881792831384199929600026322883506338223580561918888612101372790072321675981687479399774029699087869389122109223677807019603281465145074411527767932831991298148295335040290071950219292563436344702341706262929650296586121800870315854120996933894695348208300941959988605971425171762826879033832378486338642466426704226690578221122252142913956005904161716395681049840106903690398642239986580508207187387768149647557739048015582892058737907069611484247829445738515685391677201412919079555236711691206549239678284670969663344742262262552345994136468768244185351410053323486400592254540820390844217872417513849190039506769384217538383278629228981864421741405724938075434818472196449885010212606333180969246563392116064649243658587317145629742113629013106686608792642025856400438384188775778801058862267106417466210090170908915118047856540956230420021687944931897852622945515779355759816841673168966042250798421824808154518497431790665851239596408141290384127364109578336245630983484641729931715405935937173425791627368759011965320651446240719392595198939178447261596450013685506960683648011109300501497442964071341886214274200554270529797897812376818223869405685983350004181586665968718745328311789480638134641716829913001806643236806253578641086113155289693606850545751177493196736502070863761750125626820035096683978209507643640620315838562747437952050710370733297734572103890151827865711785099906907102320049644329333332212690930644553365181186045241550738084319649344230650712299471151009662401756486506032181329994721719386176617529801794510286699673033299482727247360517193240801006692965524948055265667574397358896151499007854608746915116713927692180100112190721667250943491070409632681780035128643264038943507076103329374583190052546576489416157399340499942077363935125169085217215116189142783586427852972840780252973488785345792612401243598638677029531205466564228246495627873637739702490256393700031514317437057530298520678735213813595873787158385964574907202286087982484165643903319942293125547575035152418391315099198195593433960505024394943113555823838043135593596912643174464838512948978976114545735163870327243653271535939355659072573392266992889707831829716700652575234799821723183131107712076935496947814185318406021062282269652870824545347866399832261044953750154116209413570266211605665478438198150980785463276678415443795221183382676504706183866689297405878360534893554304689911756962935165513823390610185917863805622838987690436293968544098007181978377831609935861276174149370656216999950408952778043371914177198219337378534556879540834677733707128233211577646711637819769584767279791583680398880472021917767327601340573981849331127239240696650810522734166983281938540663036312397890888737642813197746699613747380626839184834001851859290157781879321829076478685119177115162392691700708484090382109184700265004266018596902784753919680435761317148566049212667626156671663513230990752430035076956661042636254570562177781787185097309424949038699611785860759970123813501553556914136148045731833992822941605065869078845494151589165411201338857020650970311930201236612593958900407479673084409223695881402083199505955853132343817781850997980987864058296520190488769574113461600156383723973755604013909527706080899745368328197123190472009925567645875850636062750533781147594219052985886340324385726560194856909886097169605634164058619263461136540725573665785352650910393856749848314292382066825217284970755451984052286141524884539573809759751488677608928511543180945264580205809360131744033043157405196210639016964251126087213853197603364135447803076804127204110327750419147863378828278489466414086236302137312613130157281460498559532612965039676844565845717237352144041828879092222635642260470022980263828688070436603863029041389909078093252148465357755688670880172719178601865112514791697784980158296562427525208599089081996664123485894564886214261038634735430964620626881905833429318138897754259857687824495267183168754944530311537425249161552884949436846206133708877828639358066626624390327302776585576609338606602156423039851944215244088872843418013905428933603243365576265244676278405677871477594562992382342096713691784136897355546558545029385232817560230106520592164876226361202244058839620214646249486084103775270270955150170436948390628708751123077346113733499784859931546289871827102657834093824105109756094647873548170509962072690012301808166691863077006099686816467631211842496967039754728521447384894595892159930875408768414691589462194718649213563340809713920011065463030251379825947464904412234545150225027461129995427771965027396327417740719156007356931801985176547440002180223987122164194819073159589306720588200360351340282063950434566217460839720488660240053748390967085132772017820081717866627664389354404402751555491540713499537069956157044870608488556049208257943308501990763653184396648549611772266858275994057991172511933102301732658950785486138827574536164461412336358244758790009408658545186903856836421170605737557499246853732731117908417725831692132015829919961514114853966602148140012575015919794158564542103174805746111038421418203053131933000499694754034260091061140813697799326121385082842538820940148274572156047868097084000248871273557318218245117677305611312264506032193145441112520127693868774268680001858792836693244196301354549214405227673261068024821732915430331097671582765358196526041019556791573092096453232517983097536884377171678483240102276921603325383237063516450709841975593467349012108948637181824010758618319811506305101674605317654402194513933238859732955568215494870752391664230089617761587926549367294002468683921176166278901885285479514899240019769616470896520526352857572819945177391358543396092700669843338442607181260921737308242224291151512459503977781781883079406872972685445140049992893394238872035225878549686579488091118226241839499831679607578980230911343130689397529391410673522311567838120995836476120189538431732611356384610218158492812921139843287148906566530648935384443731327912468151590703822085068335218950381420681178120128908101938690232116143168384244104546200892999351157768943261379855165668786080241009756083972563755068525401483684417476043015627453447943281323296476616758734789273472349219363402733905946391420718201763809651699184689080891494202267732771309325462609790937618452299620492473805207664466824321453233757671778661167620932922809661055370538833188820760036802067484358823225389432396157718417128032206502886216019209476774156460480453148422462575906543325494549072851160387988964869888377616654076459108571090692910092014633529252571303392918376150837632250737554605626287368023235872562727835792382328751049184267835065741038303514582704151188138238730577900932286178613526989995737011539146749275382593858237192776381404700303754561251614688189071874016054501386870961636870689661382549502356810640779832444135609063845459469139404709071151650455915889118179543866954653933169611883932924572108998969241761190592052260073398806685914870686087903903804124073321064841360475030389625663261157108394795066477994275210675670928179334322776656044985932126433820621215710876452628360903688395999407266400790046807523794451264481587502937099135293937439591584656144502491372451208456908219312602822928041681990406505991329086174298485306686769390860881844666093109317358614882494581172248739998444818185295747665851914115642737488089966940075830069356035752767583407981397855146447923983355771654805944917492531066067981936843070653056615727663049774468560649133723791157742493624461924921673883134603867509321508049278874952746511038357918871925921138113784535985730260863472452992989269296228361432907584130861843339103635127338890296729630506672053734868134831346227955695015060361428612400090282703436801672652694169063094611760888312328810884423121273765968928217891457153684342124728602960132277826531569912302876561419683256587965322253375325539141902348878697061323686178940931156316371710433035455637931803417685212336049227165531758185819680469670976971256079258325429721484453573906449265429590106154913866144466982992173634121462975633666854329552127545591046563940398150040121904083107115429226571221159958778223024767727074107364552471442553944302027578614375149699015394323104076705993037222504698843012138852764736218700396865235654758870001262935515705720734856007626696995186564838143333607305580193527986203133745564811391305298805933651124290332291108777982945097660687142460856605116061810312589660595907873058486583138070701530198782767174937604945747196608551001933673902451235347485516981131103043819934789134686214762602790510459053265496706302002309301939730329420369235529552682195840311882162084131862137472723106401845282709555613034665670636715033071018841791791979955645478102070444368979797307223922567791885992261843076557475226836311015856444134115414534825248304619818146368805110486950425388437110091668656048961970424288852099354648894348326082325480180994539695992847528537493472263657724353993442091279366260837274798520398146074513143947803109561296234035828639443440328392720958887483166845708035035550136339058768866955186853692069934048973860305214986896701575691882336650734897311523917074787710107718028015103930643593171785247275931913676621046807868952679585748497326295453678336988146875079581618229982086488348512917352993561467821072581043207348397756202073153126258067780979912723081490056399530138403652610644028040631422006602941930380750788288980470243036610511894824482024911943339325944939489046855287258177208383974801920810793736619117168710477110925874686566578176907090533338811064355420650921961421754243891934671926702607438068535536969233635349825823752826634799869806665110080858735238455747593346576913278700762708759813285517759243725762664873174178053179293931045316230001319679694835940670870025487432327312670336903949615765434273461817594308395837576825145150253261876078811405284349845645546883844543262274478053088412344240266630164808269145775742459213864778089519521128057709253242218539081194906839504131995391607621660231061204375342366413320968002149922170936626981378637053373968675921116582306083218507109761788638408719976861863799915695753328582705660082297010587513384536127811346478419327670950058570638379347663692049666883645316511578278470554500822115999880178348759289883012457154383155337104343187819012729074127626581663555474229181472880924769534533535734992970011976270586106873907420018087431530321520088470059892042360090925002521977003835753319927771856084370998972004567718631108427516541501241508911722280035405585109515485156098981609450000397103664846289773386865082367288259222564931592567822549112542668773567487303941756471523730228326561039690952186732258581638026760317354670508860501048485609605372110385672645476027380259531405715205006848180268757754958987690941440432172675497624910035316424071348903807530711099071407276510815440176933616323881903517037047149344035299685311108624181191305154082864944197219778236482851699901328889816233312938958805423013755412398265345834155756819946187652508998972961362383826740162608977456223679323031162500136331084134803992517542882855999251177961421874272299541739874481188767542038295538317691712184619177939794949347648229779344758807591341424297496704454923985585339626159687358871275311584073061523010380956707290597515997980265346362629529637704758100514666526880007360801120112854951517263484479242467162641541516993104426054940136921939516404136729187793071694436731568997736736992538994900859382785166857211425276108345402324477660931529841664640831671259632537805849340885392879992399172196294806169259138679880745707882089164555236031201012980442668303318801468404292805305497863852853102530383666381197548570247245179468573587942002150108785769329642272198098257205168649414549408353031650498716615694662897792951027056503680212834746723260260615874292428601776472950658037059012236080297509614534484398004851410189399947141551822560406767840965475607858737779850016983530470824157006857724177482421426137067422052456481399308729415810995712591340953750702154805271626884488652148295417533786588916808197585558194910123501165989014729403023860762621477545569112996785883088260080169077106404235804911053674455891099372214310259522523571556481140503489023815885672775326854608015099865425510832681386434176314309435662030970076641786559756836034783961431341598071012522704723158294206354259441882528993297165388850396403812735732840835868467202106910481215728892478663726448896440615229819571760091254504584385232240660167602897234106527468269771020726054797738506365359241559698232241381021394991320717112450432314406602898153249674569141790641138535592152063979236225185747786999495265453308830990665136862098038885035209489846235173271283840217818859159362750996437642210295132413348950233333297827978324578535187182631631147823493761637031629953467261777820181256173260007672695619490695442363237052380313345624627977441842130827706006246102607757423566446162309252359119598059522839499495083468480548954132372360914556688456873084428181847965307927705098747323006768693954753326207535815724113258134774780400581321742880077335805459825507754401327304087842938874935679203562485986048210526733490012145139857658951602666392564712778782165380467360019762200620650849440839742596628233241659538224979031817856836729514350317849803486947656108014882988264973150097940605451346328544040000952444067405996577629203313494980778038787548623904959806306755300146986483573265354533677428006265155102861327775214659816446749509495718534562045386895986283330996320676057256663663813388227354577499407097169604374244620097484761469533420121135281910085992528377910054000390022539702749123956092001433352999569833426141726883866824809693328217753766614742180554213687269011312897720748872667608551672629597467019783837711247117910709948030691478673944602454717369823198018573168441089435782845536282539482398836843245905029575362283787580876121151452023521394940254624438301568797509127194781904591648703697351394194604596377798143865348799593965331025494807149566577250347947187153842611152174571293207279141669373942790541077435264167207361047856321394025606702310495726991046916240233951361428507232604514107584884292074424010375169344370461351441433243442600905502712609926189715707911494051502098207006629201792678650649730444764292392026519183996837457401301364451228056379566947623270296663606212288253089273057373421471092206695002790832340363973481870273277407337012257288929502683535328427307613172086889740807267268455779224496342521706764161853699411930028880168036329325876848879743381475552735711906938969050198916111970188883086029778123037469395500074913232581596230131518054220093546588282897522041363560483735672540362089994437247298914226534665619906360126414657654167635420237825734359816398172562289824828172590880347021248031644145125949872779272707919624892141086481253749301184721587832706889866555975444459402331981413282043142643785848242832732936442807732738419136988020877523033409931573529808200008861013965854629238466853367276985327454991993306758087615457287415488870628912429721475833443161543543774391489801338560132888516414534584417459300613361130238072202576303111427413487838562831135637678001161077508711765137735787616519287094768178268940189789939629717247792496603283675027400913920394022255200846238028769034859846029108819836229518392671370247816684499248232355940896273738540743119897586568256365088592661718029966049614554506229181301781726968121193832351468148709728941762579737459495615555827360947157061038969690099115376397626063908755811055885610303919078592876288271727536743280268308798131778292716748608168322171099799054462265334223611094146210714150249158420928736160386317691957385552676541820448357322153335379555617839069808892251524201030070879491004326763352371726860815792527687041040755146234662065517567527468263608665690051056928592858224601429957627636797117821975489877071777729554856195426443878953681586702350883332258804509135518200066717886442451782558719461759125997832214388260117995319621540694382940912316854103364010553603394794119564241551229837628908055016983627653911393142381483281877707190432733744622168319284982090129213548110300412315119241306615983459857296211660203552060942220182956591736929769182237689009936599722750444588908141797819017152224883848673821768944482722610016061409216039741631270252488859348883110675833238891271915122880704670678977084889375746125900075294363155247068312325320243620310742354876636681135265930715049924572766680637322566824283608019598025931308808163367588445121492282151789904485370903672625366045591911193529770294736212715714519533127103290066263603999298264713731765918374030077705565013474919766817337008153649230940768429492616895270342250699195842800712736037480265631031592394632222552174637552260512529836357752365802385958888181477918178200028723306310574585259295258873558155496491508506354259164502020011421744423910201466841684527919376439805330239510901765813917534830256012264797174644994446505970974671902284216182576843076778031765768794661766533135789328354625272566179389968637508215730063371938847223924828645396433102027786307240687873980781617615662048955705634994773810686689913691611245840789783789271866334556872396520534252214652049695111846183162441712450342111883545458188910130347869136448076817909460780788391226694322509229877556282246659282354774635265398245550619785334800139847965146752017323532637529177331438874382724517424417186348816198482148283218017178556135412444953694165693785431489320981059539401625986090582347159441105728697909346225108604372433726855657095668762134957867454480928018485451497753815379108447426205029430748485557122499377773477148989425262369903224291832793864791244268389969238397298194248141943719564059116153512732210554852183434232020696406575009227828389041525970343855115902615453571531745231841374274130857917826159683045891995213925645156950162280570514580368834390943567856051328424178911130786705871723032775336995534161438259306358932890210326940300184825534588740332481721260093812297394743710057252364773765708286583292552355583084906766476059399024544055235833972661953489535910053116951180544055804041819924019069405882670414426302266772337818615311998741897356946985738949070146738335937347667433704905898337796080387017197811680225942462538035024513110694049308139187616120206582337932687800655893597600223800260190439900952018954190972679143462259335016230904818142386512187807568104519059297223869577058450085938652969326460245867168327565878477241890118701434370306848386374624324593239350333455997185906681955615191962888681621245980905772861497918553548827057081911409247177752879912859801069783545829276970954828832221953463040682798142908954120717595890654883218874663698775563040646650795121957454262040475613586641023285714371066952792743834267653762908409922537453515058210550289689258522536953142109025684823522223034814632566366217271470100735551696292171805894097473337405510326468581719485623438403012152746886428327957537836596559341418359017801093085896335192779427949651530286105040700711569178007335987444186208865396323349286520922425994111260638929236910599919345041657388572689415710739743074919032295766103958933220763750028705989347641212333586442539780004281716549365145617331291833452257205771852592231297114859927232376498507883628128108721371197666790514025661551454274713072440751701490030657705304231130956368791182687488500778562242124595065119922605677534569713260805525703259180861252266432285964413471093433312406441886811814344814145988612948954386106508783982638931448962066813273811077661204730846273760806356004062520779280755274060484087132209664914793507230265730751347152343120268353989462132938029700746376637018891103576729045662272851808851854256161605614342155911537934634385677952407545382877741986366067114812380998153729304281867967264662715072222000503475021946339286099678584992478855674914649239980620704293045695175928179120282477874090379906535349675788765585458666612922756116987352803228982308118861830523547005229124327693792987088933759051462354498107962913006730720038568445047152426894729713615959942793188944870133233175466144472227519978147182034263932268158430138983043110520317365302464206676730849088925341452044970056862527882412235907398878333949199770365836226356923086084947450795335112220060117886051254717659860996881729144928631922281383862062217784316849844199843421301678639237998578879375424393131401305111343655493885252833461864185469800114476962422934837404299764512044516601654480990384107231295883240192373274823725355191799817738063478398779634526535563861127271990527399579416790212135113378266206568606306865872490107406724126353837838367583761714295016612116527349420271205501093215608158039138602311879208098545784130012580186165616739749650865200425099329591992153152303078928763347780546050644180967740301448508987825145237398628598538699358410924811166775971475258873085399591526976334502609823988044137070692253919731765723543666652732223860308223466576947036449234271883650078720958727309051531129846431032776210205908934958494780505482850301216744783493699624743181334127676063457789353263186236933569104007519556938117875719069079863512830153739087309917574621798956308080369440654500147539127779317016028316328334224565449793332687545656920427229758818682425784723473391103916773907875777997766824547879102934243585771310546355362392299219364868958793967434935488890710141380858557562944134033922759781257947888788006387031826569473034940804463083714178408672214096577223715758278520934389128741730536807293473549453345769143376940366212632901290223655356006447530179127342738528924207232670926615240413925203552414593577053189477159645602015524002368767515403107836187700091931854967547692126510157621124196445059156318550996865520093646964529399641969572957614558833249343792537689110441695159016971091909636593528446399226833876115682444591980172088718051463474008137330070221599876902159846541225787744607773738989616323310902610056705462092529282442356480960164713800610951980154606345727351595405685744891725948226179495163007430023801977434224487044652316181594121423250891314443969171279371582669751335267674812126480453283747602104762657021210930143830278759189104280537643874651072670479584665201749246198815622003225183120508909584848062318837432008804043224394179551401748947294036413160534496497852537190285727981422091611767967331905744001289774549251079881348076398060916590375176862668748518946379237109552943952686736085528508556284408503421712779006451827564271695387354793628192151615857307166886427528254289790435862710723706382875386426568402432165184531438278808657531502487551995106940557159542790381459628543839355981298115261516672449292106012186156760082997891723343655334908792508623965245933987464061626327653915872441435619220262248243862761648300979318008900010875494498297273471397825526223132954904271901067678124360884921207363944804433180782483097225521146404839114058333942095885955704108855378916577211543175986655267975775506733601075871151895414747603838720294781272989028848709185485540074890224939964711151386094168852401594691167772289983024547346421984371846227104995856702869015029788408126028461549447251801290601603077157647733112749161347913728752746103586166631826014356316888702315484830232269278538722950111098452364324712524010331753814485330105020077120128916191762900916398592295120139812999579083889935094922531317239514309800065850759382176605350988533630432090496643008002263081186647149326518179690793754774145423029934759035526168909966061869199067869828544821183963229714343676172321478959835035183249688940584989342887425159902277833616888378954075936378133705086672095868142775129703330451655462771416059958189675220402683256733176917142331231067076788597387650962679424903233332515658797942136076923274577149550881614798228512543900537330445418390583232413226518567258384129666101951707385098522154353948863682500438072310143767630679427573643805786346768788018485597844790471930547795432506357353388489250386772508030657776613725298079166550384205346413322633367096740591472189651748913694907815246818112493816847725974352390366476394714832789954170595103313513400998412197992472301453585797182514980209198277111589706256657939216975881012460087666816876029004660895468978757935134122848640558388458408089551850912240312385475196457737751842173228875076488832105424045370092139358194267621489170671353643802614391307045977270408680735090765114794365942062890332084429184721165345600102414387238217820909528670564459468272197166935032802774087144780443919055265151115448868969522125679569402333211560007188912743849829501958376936276333754239417909419983697879241003962330631706089215949206320138434086361993505075979741226735392237263270523804821148047432273474032406470290346393610437578930781238462380493739687856538476409124799823232805542889603327909625318427511804619048289702712559851006092749864419840282233795642979972450869112409683629637997166419982208619050251465791943469721516616729139238811005062154505795890878798485949707593859388469245617524401747883896556773671000617434455575839241515200710717602388294610559484404292573758391507702924312304972821228239422906303134716375909857707045183222010769683499111778380295195390580347134879342420313433200629714433243757678120510908891057820451834887435396536830220788764453045459974818954623069425804390710207243076609524560900603942960185156800504912303002809863985783570660601789535717309975493505236624623762149904146063714571642606860617949983503820212049744461009411759526050544856313443935310583713026275802537007978336083880021792035781499058311111341541061333346635836787968282721481187907049482520805956252328091744984293841544813712328342130566206413399259912665826276383653078091295810328953255842305677663593196337447481145080837568204646817043057968009090231475971728960584140471067737465078307674204061377936186844677471027535103210857665483709570778549166010598426807829800704427194459322946933082150180512278286912135272372756623750011269734078619300838916444930267458486198535165524414736368748654073905805705555812359169531210788934918337487088218871847435288728020702135489918014081708376202894378318604820541910203752533006625927074126533323270425279659252315742034659760111253509153408893836142312258936250898714002711910769619334807844820899536728509593911557373573690026986624971033609697017409675946785652290181758109554627617323412029124177369851191886689447763822841357686259943670512937018534038249513120798689953978922952714658293684545143829853566188375756493679512856363640874219599164680121129157990173802184745907063462282378066513681828737265128809586442651254721753600192059805749257230648655464491040710705502154840408339353481571379519446843628529375843981859110954850060117029769138192843799800422587542351356029123641130331235153139696127814410642064021209354804374150816350530987525930872969936165875255945658213446761695570653306290434518344100327544477797591637772482213149537997719417063535131559985653658542512133051468627479841240393525739804642787664835503466204243543553625904261016969555283388456858783059633270053963231980156436818268133020360630832150244439318130024678401914273342126343590763388732372146431888694451597115542809780999414263047372631578491000974651906829679325120353136134103073552396171174788505167264417550453566215014866486341123029504674602304328240129286224741409079595233141073054299662318721484522108033980452662174241526830053163530967165588470240741221595738286796849704320617508406743698859116438354220335917407495640286420414105536878910791847098237972172395008447277304361016296002974554378996086038730147616344535955333078915859276837113127836416506685035089878759239723181903551386711295738050859988826535371138451594343162652143919641087610977660909553720622101857021929187264011585212179154237549239727767330360249278161191463205102029397056032465321645791794894881759832411280304578402171773997101196103928471142792478162404287998122960818060665294285683014314976325171760502329798778906135292756233917681561099181561370658672483022854435314846095354538005335990202952895702497046634913446319919597625928156824738517173824799546458277218025496627223369076331663559298972729716410702113423633491624181549504848655760189627746380715835955488627650493342020838102943260851186018814657086815587536960134989766764359670220719058616894822428875883288256847453006564478357108425863920267741808041825753963316856896197444935984179002823180818238685270491498371735836740203457006284562510736818712091360041618623091385446098979590232565522594628614465831117067214514446185396153597831429385608152231123364432035743939732774402641445562185183907908718118699333112508147132669770290351954205772386118914567839799190517593887491376127393810820125692186311924047106687229774799675745292268764434212983733315050941409683072491618831724200810071831348467150119730664475882631145305977085299107239578488513269501478646401659147965399808516571283125354201199223435523833549301642635102922014441115285713550892296748257069228972531296962248144436805467562018193477398681786497222915617858071368890961266442409270979278150186266579320768668155993371768772612723783134940846104572224507264046316362568552667490391717351664368582189533884160026036722992264245317172983291602648271570210738100332356930122059755774599846359312005705277706391864704493516775223971466142162479899389175647513713175224737452239496841998977552610022633283191705170146816572756487298732667457548413370322576457141122720348341198602093454161063798780791727583090026724675533459808072623379538599652336493346842225095560788408850677719103385121472574630745227065702223721616516986989299001623351736450946420210749251153622388493857758118865432644875601589958982243961716010845196299245351640123308199502978836335359968689107099499646201760653111920157737959678639386873057666256502120016723081072868743327692166453149881011135112755810356808675524464920713904969943291611624939596958554125042029007493808018081713309209388464677306968078094116235893828633821459297973599651043715325055217439695782487922529768937912144400057832350937723918874306274322398571608966334946864378143907474628504429895090095784305626133382900506915817701785470988834719200062807443757944793294312155362607256671228454182697906146561272541750703003068861955134572037737231431130014700930015150147621821197596509110796509971145837553410928202018724174141886563078191448282609360608738575690351636414082603896032987209205997565040773062887325946757025962974071907889408026715045046684040894191182849880119477507200815389826300870877500936271758051497861742761719348009886509154493267935783305825587724020019964047819908829276900382654368776059852669426837688020114425896729863625492093590481640290910339807356350807200947322427063069184562845837953282253660842117350943219242046567756852257151018097986651787556363441599008246611002229757037090909682359880398048487003552992057698684387297951415350380788346761158554845657216811414356726961756289372302215483424016987202593397639562228501438407692696562614142892404714027680624682914507408182918658994643667171855095197881034830452976091363753205668808582021546007740567949408684181117142562615006242332308899180197475859345753021710918588065112409116950814829648992341375674690849043503613777572725578568656245892288469849235842911374524109769113207013758150460335745956023441040169250819582162621674688729939581134184664424136095094757699603739189451073401661820080959961012689983301823931448830402691026793549251806755478217736584247555750951275589704824760607056930716061365838342372736920238107145037750224240782609708478728565866624597525970348071478057379930191131414261776215903824200879181822761651071276026560848529097439844273148111342799525866479948881600850634943432511034995107356854624075757979541691596090689299341978387671346000937439673589197790094174873916596566146325997279714822109940456299003701960304349044570584923071250460337246999249945445098637238981310307483710041647889139797283412046037692120660598267449123506195875893880406191240943337217690191059450751269899328797906002411220813730645502382576505107227825841950601982269705178244290492378569835481616819709443297426297712128420681987466045726785039193122027706767096925182633689274477750612730498813471166570819838278395312322815305527417635462163363302549655169138433908698036358254577327356153752796117772711995955881488999896662974324126763903159171772911616813691155677639606477834463669823688874930542998342165176850761351103329993099358416044097520633274095041539131609935250717452005496921416349918037408033053065986312041842734755231598465607897020069320757024498823293523399732972052372572243113214206241375258039359460056609450493736199284065070520701232595157289724674512737742215927291555165598609021238467945715207500949728609158592104381378280480982528925841628285346406458034649028327027931169377190515859235071232427720393873848307002361466476744029510905832884629577139150734581468823906290415877732160275255848060270434821479310751262528149924902438345768372033614805078054018385418168015120804147444217076695367664239089855596519345796422434121639893398036787302442594927959159887766246848665060402802002953308684389406263932985060895725787340757332127643683448941091075975004981307689665109460214197920786192180178759066949667364261468906337387174198777893165531358591010404201505051109644608138251321890984585071204253114957109629886266079825802655533102269126224082893317680115461946098383554074793116838484807263046990555305181304741174999383850944266458491355028855159507282037326269247790753027493786954815609227326604268253219963846773198264037330303239654353430791039772907317407811537541482298745987741903273553243057442024247610285921184575060481323042999747225224306462997479258798406601009203513767496232032460312575690385976592409348974272393760850883301117339895967606490297948331253866773675837032826187790630032408664194042163300833311005267493629429348349021327185175783186257768769334775490518370805429121475440899300783569574872660406908913857991663865819465686647250303894802964908609489801225022326010966701088258324285545081540028328634818718437523836034437575527156033732585833943431386402071368795174858764124263925057174191952621933393662719898459811563197120565179276688356051828491354378530810328499670718424318157442186218575889921973556413259816267824912717420277003132647940770446455229912004324169204455312100605005013276820633070293946675925469024487284971650894412932897384494404321467292233524844851984345945475236546134977685666093627196197233277454866560435632964899620621517898075650234000925250140253254205154697192384591358406431853269137170129855375586678011301644279397578555358104770915733390558633975558497124004116757887286656689162520019175029851944775153954820504797474417285901496445899995611274847680567421780430463163154912137611755167169772201348972236285815170095778261321064048027501157967043901102313846094004453142255563010876916692279337769361515082731036611205318822088495394523934352569065929180551826942923555086153113117967190752007943851395579191506973176220095467883216377671210992264620376894235381551267382229333669724411572624389148123944458903705696271508609451916558018509560767006470702166579554703312651718496883171947959079831763552809416538039309618960354686607219793145727619645305401412652206514792461321648134530142511738301264636390207710308662744132529265498485141284996467946509045921680575525711432129456381382100902119011908271407439048227134251551906962063610836770825476235474893606969065632669088827229853456430137248086536409335291532649262864921892535763433741409471901033900010394997651596737883765748985569516462881341869545226188917331065135392350167572672261500156967148682259601398206217776489671300509750831254186989431125874098601073972847269093213381427407474235128267183396353780149881380217076435104398448837415146734501025633112083496742858723298347335814541241416226502214408732516426780158410983289778838499624856115574792069767710071754830857742743455078308927515196363059029810215595910983015918460545222449541089048185993070723824259898737420332345255691776721085964233258514788119077693761066314052160056155083424692504326357884328336468169968862012675510857474363824727415121129915714098244392021134034054185051445638104056665674775659363544610696025307494834900943145708739274239746690858248326844562945489494806285469839586941411115561176173821694823089174252848784967764499778071786716673111263230835457776258344442141402114104911851525854552768450249096380913215684051297611283767703905666040756484935331145050014010405311956940001290727995042840678163520550235257777489728556517775691945476304864048037280468645175078941450117826670836013312925003391060778283185748116005219225892151505556264109620523381349291158375183499525003787621814028235675411532892631041348924787487412212158343471870952476477980081742273370198927537994232088786228572362062221822873506730178661017624338941653670369577940849902418404929584649225603797780049127226610149718115084974806742912704818675910490733638126656706500127128720492824346016794395483349719918518871447712624368957480785349550444329842573286448929094639999496170256084974980352813985318708027279548498529292179434724278735151882479632119665830841999319215685003894956701006490370182499327212414627663571048367847256064069510503333341376689063500646088685563793873965130835623587832593552941066654876169000978797364500074279877230349865595818067898544954279256911336408565283553367730648181425921612564710780597261905005812300268091163619591414271749221860011697970194721853386672320600624346521728658679281992964791645376306340830589673116154589475882219672328119492638245849034263589903359716644550685936569547450084439870498947697235432371898110796905993792422524513177954511517418947737485576200549181790413699536374170076391608759359888668644362575694920836147925275981855534913075194481759947684129619114419086827482985660528505278387521349876828680420329520269883026803763307181723789918081275062359117031759751302594282710465109843188605796282537909775740002665399241151289120306459899548748690524923893963524873352550572051801061003348035944594772293407799631369923221668432716414157474152559833806273222602100503217494589600249809909802560450050539750144692624946315412102621610648864086610639653681270064797384605354654755979367226243619623248470936230766153423613193065854663513704592991535187081702918839111997024724341620512560827886287150422858064011444566402860065372735304001374701709078187120062277549497041346964581337342202062739912486911106979515151755092534872108175488309648233233953941291241753699268202826336594584383192713132783605743388094944823684532404928909078527170013631709606230126764818422305280516615968903720594323215160225929871885654285193855123889380617084929097712346432428445649056465149273292918373927579309851494430652928035686234946253682865468976560974690381661864660247203370679152001771035080340194006806629059657349347166900208562983635410755527749771659098382299712341073623160040145801556737210605973730639064133944347105426097296860797652047565209594974068037775292420941488514672715737090629942108249542032090466695407272513241725716463386829498130958364062894098759347949648271989969705659914388822877832577634012916825326491372761562402409036705208567709230443242786755228804481024597335103164748797441247025792298115508694596451118353998020807113391683320708442349099867535196925069657810690271917204679301555682022466471272811632605199085866039343887315322933026153424745508208070510507901825222228274917525322501076365359154844489458998447592525210973752725947693538023418115790315042065041106507264683601197389959976611913831107828935961585071018724135204360765593153419743963799554214554001831682604811410215156750293715982343791737898756397678883079586188737792745200575435734120575883802089164958148341316441890931001285525295331090611231300971316721391085145639360511713321995543129660563370674388795006743620236034718398256294919600991115644535469511614567936658945342953083553378963037687882284716836159286963164720494794022569741083130149938143335110006155778537329209379605291137260255058163868793600211336544527684504771782174374041455641091984701286832425093460755925483659068016747921811160956457332928792412777860001952087175657532101780844257727267014538576931499638172898085693129207053672121372030132427464389778465729689775648264196716319390532868836014283743204345850905834344993888746189029975499559220188557190311476026738396910269042799167952628309606502503554090000621975630812478936657956704594249101517737743314873890930339063994848438632108012562894057067643719587972123271110300888862155173188063359420482733539303940847324537531631533456529443505301559122465118044393003038219718996014327863499438985984412662630260509742068515469347275128763140033870373653303293860172570444372493579330704926668975779997305806629758386931603875342838799572140502995416463081784338270495566532439981431439471632527849629831319840328027561964401821523357529301192172345153915621151165351622176065411199688424170642297455720571015942293001625703001918672443608127467521771037581617899503370834152473615630305560742831145156157194154862898946062923650688407989306404779737183921794725067310107096035772330680122397245076124161395386059742585424646396275366238844173151422461577723134951541109248238219724731596144319666480315993529465379094002062196476025481314422625408336999325208061750707608794673856716028109815132559197221290346330360137219800643318745968665503916181935448992235038263646330055059343102554889796177965008877124976911651834351080814316084977484992172419631835576062733637317192459514181726749747214547696629419727131861539028520740157481931689302763161932638386120870177037469107208676166247980995984277496544990089892853887505869719592842945043201567726974538479529236731476088460470685918996031858472468230368153716670319770406940955562078664546637084998289452210625462106402281802363388084885028726931804774092272707235254665101579175590587308964293274132809356902957170734537813715785877753547049577122615618525223975726275573327276882405000003747343920948538115408621483420396312411192322239001967587385086593877080788846332321137076560740803093252923164513217209560996899689230098082659247088741555871506138312315487295076633741054521464152040954662300054355049630595280450125457109191941718284804900248683222409874147534135724636093049842156997474146207847282628445425822961958703287304284765451418627990402149990424323263708902213730682376209356883423691234005992468480593573807568164721326435640093549909175689699950401458373782765322120974072494894000486156407565689954139516382733254917766396522651135624758465519583357542624868830170851968525949373912747661068456309909909715764821385603473485776829374422568747584109430690479388629150191549260946925343081969287953440053013484656098238462743403601707288587688243155902828611643663057471650750391347920025267877338240276753573373996055235608440844293937252870408350719487495686504532094565171885142349724133462000787944336211213308600682553956553855441299897312287423240748314122729813069320394048694899261382586350764237982928596763326018740796119327341212099301389589272878355803737526658485719148695093752206206888311731475579506112243445716582847803632422433690385594176308122614858538364377154250174411415955416310680457014326980124408813237328912182685631790155229307055535647600278629350155882315762066064227182207296795234113823472057317937781096476704626441311805314816121718148783308574779114428097231350101935849343104707429640503094628843125242281424562045659202674540655184420337664393244414814383039905497845462821949227773798981247050636397484259629125421672542284883333741940832417870929310026753816807998656547897797255548272972226214606261206368704327365530462772720217896866141950351900002307911956632315855389118521481090170262270657056388917624095478297982500734566689761006368739620644097479790054738469034353966460011851277943616953163685334725386598956565984159880400523976032716695404398633678686782819922390861146428231843378673386176770099898452709698196529918068137806006689667745619717108139809013194577415574632401084043228478066005175324295653838998942705044614290684438620312655764604483341481150928187620912297288797954139064667971275046688473986928499506113848494030443541595633790511574033308461969001521622228444294220022420489121934086561015343917904099021574967461677630717772089809816228425409602525384420156608720251749747613635955904939124081187396072824999034440388851571093724837263640813491264209759198505007950453778339062019068663531460479761020897881830595896586195606539859703997506082613951025439672963424207219144675677832679098203541726864425830164836796323049178913709437715092162887372846587772160441281052298570230031413007505933850925727163927443159891748927894719542265062563236554450582184139946007675626016258768506205206878723755337652518516342461728069376385744107857596791336802958596649089506180353815894004160131250210840764140075574126743641833844665541863044431072849063438084343620209136952820753601688760571178765962342229625234765556140897561367979595603031896568511862546166110519633685890101801676572325729913679413596199105143986511930492296378115063087603853820368630870132709598816815692268633371682388997099878538437400867909692505455838170151693556287462672881977756685717522609606740608460807518670954963642218428754418112227360661196813681608833136751178015324366081368398525381768381854689668183403461566054200684088982784903785300375546754420362350594199093692667198320657434320188281056216867177849906103688867779962796803503251041142108473616119951117297929431190412308984319196200425387721242023977738106620920293900450544478998553333708369302920411677957782407009700660381934264496209765557154286161498779937474258950284083970198410099752873840648041965206435014633873676079551353818477942419131137353848615136154941366573729789757544190134920334751147021392957805484317411420371776082751606069987632424617637166167990936263142167304686142145765481386034192652098959781183117142849846758184552552054940833198655496950803426446743519686272817989272989387891455061736849233379651540895750229478277312999814254139413913673352159157103088644491133903121958998847093181420176671026653892650479396310754938264183436881283294291490756691397156938371801700192963362616233064128610673660409526235094924673804615582182154101435417770268589916260501846387746606995662014386128120382914161010656985450463960005856043880948476206737093738986502862254596073056887020028828781239841869518330910511376141646380913718218175538899616973176075483413816088947610750464479878819183305061355330511407425950437321996101634741587826008324647171212310674667588527978268587371305992438248544801591269373292122697685134076770598991684678227790488902806076620881027506670530717572821351701196920578703696571734582212038711884710500841553668176343544936844788454042005223016702888935189673546126469476020982772732765626350154082495342828226331579524764264274975127893566348055804465397606515038940341136977883884121005699150439455706369201332408641377149163171268769380424405503264716599289300489882413811513782572134628909526451937454547465467323680052179640739207403481026598792392056027115082079333131965265084250508152923998970779406339748937070697993085105370581046846256105702799447057247346961699909032601294176259740444713655198384257347058589294065602351718111460665380910205423618591123570609328827218965433107987106795273560680543372726257614204532045184799559193141768324542715298434334925763655811505302100416346731025468816152555069115720996527372206381490276300811788723532025331326962653160526146789711623470742920092572155465844737263136207011569461421049774554858574461510051311877344644846088970615494748180432761253204911644140720639324001543287501846030214590623739466722919291331687911806643175572430100400023449261322851580778018582385948840538572481841506604496280560852757284388423647729950920646911018731673045629890388492430328970297650025685247909825408422432442354887552341719798201236510902361331115388888700926782358205866696056219087346794569092032648910987164448256111787336963674980854248741040419497058311675500441051276673614750876436999491134306431283584719244248013041091035646036212494942704650346823528822625601828318821652766789731715972555577477751711128663916406696325395317913467225196235327978769842870824216425439603945283505406147562636867335222888301039019606163813317480846213717149998630773661281194368250744930719087104845547702007744048221945383082295339861852510258491544993806523513372639177323593565013120679478837852664364367152156885587797119924111653488955338000809023258831459136685458157079241221685554703272095054902701205024993417462281832890426079211144302777875784897274493689243978246584530192553111192438179296794825870988866526970275551322450633391327853032370576062161830693226162633585696459982867668879671033978618586528351267228221900186379571251000873629442468936858963336214309542224314748601083566632602682059577131384616984761062426603271668008941908877077035520195997157249547914659928052274250147928564727016439786174645589169137535926361933665121242658791077674193264054101101796086283381530538858441826921145674993549243324431249606345871526249798864394242865598136302113384147550958567123653275423040017466799583695241395825079447813041331400009441519270961099290179764200252701529988437779441445393687562561642031491599623411446380962315691206095303692629820045006284273923779695726729721761374605099168389000718144831690424852784331401778489031516828749701171981933490675042734093448363271346569938369501305497334989111313900252429801422926854742595032409950091786300112805785887948454527629097886957127197233330432155271218054004636503370388376612679703409357167355146149276878859975746329517381930906986054672457489011661670298189711281576477450521455357926426946837113131580018733101559129416989895626643366299374951636221653855548970490329721921657795171887423309492404329635118390496379056821655926310622392012958600608348876172251796820778009475830878842880378365724067837178398342581724710169687995409346642378067796884539237815329343632902514117208506503713848750878869573336824093588643100548662568342470712059418478830914723263421136597121498301435014306102908134895996773084674262608269360475774447717088437171214023438755613097941497808928911786673819905814911901310400020432792306309035145393151586355148065085606023406126931302096164402165039872719560676130562868251798812310345223215108426337992394105822799134983889360575212503265852519767370897509040892004330456255681652515702452841967058788261822562653750874216934309978366457639077262984195619820822745916630719335867099856730041167522143039945526401676710367609062365478504076185248437549471497795612435640438009980869247483299940206519721097427806095507739122650870921133874074336027312771841065675124590655757863659724640011722140933227766106207166236477681107283155244953325496220505773029582172884260366904743973841387959884526154260039690353560722266135424260498804583460659719421230706968277177598681938272373477889806257330467988049333674868511742021808271735183253535076134290959533953423070961190576547972988582689566819582975559088607627463115026564477724322465194435438641872961546235165412813196141372992942244810710287481198636629806903874303777454879291991006902636448691092735513378672790525682454599280594297920461070309009094216167040267625966915908631596516337722770944385779826151350966067701145887073246700729774066642238167308401603526301780131187352752669354982267939940517120148912761963929204437864221916620811885843366156579410021677781000820663117290828136111740824941444283964531288990126403075898975138301091125463771160501883968348841755176146629982233047638157815794512979273085207370693743882587544857887191042720065390496237710905791309230000453262234844587864408080269690873248626001380351220277362859216445952150512980738206328813122031788220563182138512696038015284040235727017928037966627567906218057582325256071530047741847404646123445206124489059562817869891683995808290772009560623261370261011264603249465385785995630095554040083091534458853628222996466785539824746859967704541739698829333220893300900761946401122713142492773908296724754127286990651176186224277090767950330205114897056646670754614241841190032858804142668362159588398564947622346153343614687150202898929525748302336483354202763902236193329161861634336864870215517521752851822786971688671110397311795988523934850712983928366644253865046625834833484093073196412300602269607817791460420860677424759713198664792031899645050447030508283408964190867446933654105840395582040646002797554114579582909717394943678492729520410434572343120809611926233914856567011317872601499301637436993000037189079236955364151897757939264529353641315845831106285460230531780720562121485781313753071476955262657936161891039887660367246829537650032741396035772895829136217375815120859957848168611173752510586652720371597015862144688430882499732394775858723465055316293547714534427534833621636439303947860371311031951631134849757804994186408806071116215989696555394593291575249798238383601431674960504094807711339628290881250610103075649482394711364164498050205452535269418518565921135444265682024911510367937287701217764054318510719887506494727772486589065436527563360152563071300977337089140831943541645507915582915621991824858271429575361898570609738708688165120869940872437873749176257943092112541143733980512381066294257088236865394956412245830326667525094751788034128018580881153298228322461038875623997087906524624126960352495269568633813384991915708054930343077819769110770024442178438697396350199763428047957845035877930706423122403878455236510347900464258073240223684214443623165653728858333191795711677607579183380055690573401742655957519210949381442921222857938779236762870113595324049131264363548971369851575002018590260224782474786176614042444643017855998141569821350989442341256436927770783720841419400675420585046632117840501792215646598042738011302213539633180479556833893914303242719245320929947604680870311611495828761587309870758905156037773875765269019366429929256841894240568531347895366862039462070215009774463572139735676352458641306382531004767840769031455098935756629111999813853021770289595456009654930573366764489578084840489370304555516219664446281803171057374339288374379483911302462820854666668352867221388433158603579364944942121324557423578465108808279923317675979713145921110194207079068001339590116660447599364420064243742738343196354130512472858583802952443556555691407864190322824947269137021686882826138199393550616781648720740234455432027507205148844307748559335679491566027178966007115544768153451466245980398490826693376679963804937422179455194691044226740738727230836626794633102231417607884569965301400618026587287181665574800070229209441388113770024922166576487703860915743596451852640120640384117588142627580066276574835455240765153953615160737700522020394155667753533181645717774952195476120419848489059622531430542026700143682621652834133552293979259748113168629590057828666007157732934343450414684035595578256465727789038474581218512746842262382827747277328962463347230525926147816052686839241064724896279832110951234074422715465213204237577914570977396959680784574404115618921570291587373293025929046691664286279760648031335994831097421182508518216805971228778601867846087560554736222523739364050364061685534239766977656533843904763965302090775713822736732895499538025115929591276931507732366719411229216750526452697655575055808803359433877062642973664449684176755158394693746084588058799760557504544838517159499257605202848527641892366276158600993658716210385095174500168865206370588525253062866762845525349220692949529073223331245347206171205508795772666370097566340394788968165687558546018076498958064427621833468013441721949258372834583438655867676952801151334149877499841865715401248612175318428730009605491353804552069403780367946049409019299837309054102389793937066965414865527800509767751125536734726726628102757707862971067212488070269956347350606091758945705598934807987210946675839038440028891804194803836151816743350693106914704830579295224372200343074072362011728325054793215761638419167645391900031432116305916576570592755495083473897718599795621743065326315971243299679710863076623268854631772354562084178972563110410440674546443211035450987047469501104529360871966725143601323704661273146482039471177224398600348571181530450316571017553871801119194467703770364938168203986013833068489813878520812013975100727512563928905136163498536234460793978996877069816179870156799862973032551434034377566117047856530261840532688442846680035580634207593187519003896436874320210038994534719143431311367116145240811882898473000938557948781282004164094574323460980693012830380177045150829991865317670234168549666380944214031276095013871988097107383449049836796903889676567576045171899836885922185385216811879162293256292045883370303847940034194417205960930856375192784848677770369530072883737118424763565298068534953868133736829395907128856872252180523475313593946055166729218770193919836354732271030331258822302358973149274202615810743637805117161514277875041656488463368698955700639198437336902428385687783683991950423487452803423579029149047840220425591589034629290191561631786671367343829645159255326163471728487613822974451332814847544599836204739105220953348449099968085739417686830001093209780404524508890446772613642970877600449254664508792823033106671820805388871082803699408965626750770963488292140272793602254902091462965009780180004300950767768650822858668481446014287804160632070005002106523458778143932798383247642259385550168799766078727432116743966891604379423492129109662800224547406103627394438186206258047301254218870461404692170230615586796281966803538915574672326051178217952988428155706450462131935661476371060003092941584452576579462128589226626257856771507211972883055792461510372670037837217073589692559457947397934459207779285162463664286177788934215509129510207630866786584135955430582100727496951660601408623464201175525803123331631679140072901887462888183016712759430138103023783307628669435206148239990751120044396760045091190172750331630028195495924878989761830946366891135044905873014617968912464490475254094089945680597625830199758169416838494994523716342559800255622934390555515429580835043259470517309891748023248830465579641826435614795292042422877392116505674578101015226749771426593696989970928154920858669743058762577555131867906311043660198258119581635549433815820244012677935423400109449916698654813827143400909728116579134926686703264351375011967816595940454102748186749045403337069797384392689844284497466538826369706346534261072158596689474636897422038432125025926170132458114098117601066428454569160749761072930226916836299777322439729503190778019197116405950706612121956910076491179265085419226576177106582909204035860365526347979647953885593439999092253456680020091482464046729765138961924633554216563437870360611275542805758084395229852022356413018996459118689435593299378553133319346910298580630139402709641844079845560925880100805699925850476677889180630805829841003401639453369710256232791941041380049180115082813289122952069565273981299773560619594930801382182638466781259083765471884850720241407867265529158149898667814246799313123931227578898837216912182364280230247986516583780853554419124866842838529918280522541450257755002873583245565985105100939422206511843358374043227793998095342712267810626187010543973851344835031577823297719767621450284918431180310905433377674087399662247358639775077642895290084504516900566157886912313673262833137401429658149905851060240827332759954985324487356925116603384710546486141377372172292777563433940147448660772951068413472035991631975408793769286948024315327808941064888466960597824547656716447167376785223874597965899554353649487004292898364611755202165843644336604893409401828714983903556024980980831662242686449317604951150464269775792232029948575901064720931445738328249368284848812388984238479225752651222209502117652859886511917533437379774531872639140309915185625232084068879011504829507971506512814502587271281769942471552725997806572917743177843082872550679796810097149136861959102042963784905818940049159617593291272943570550881698920752134604761065710306829647878372326481123902811752692390730709874725247342191169340057484167279496373694018204792887931836634320651107286667861733075348519662602366675255077304890311647531606416322237211058056747521084054483448044475070788748005441693034082880275507546595208769725435694792140787730181670892173076469853952601335671463668802528327546975878646459947882192903937299746125766951548309833639453090918686066134188028629662573240337875835914147479257110642233820973311277775680722410857327216777444808030282304535931234691017636310656967153564095367206388830002674232096890727445477834507327810380425011667826539675087398832115448242478132501860667670264550165562379388683154371958836526123032380980473319210508839306139768163001551847594294304633712911749012325277080990842876246570683012508112778041982155080458919869820695596289489884742500672965258155029112836792147157523254172924593741322495263269224084087791392576070106373213185985767705164312735210355994718769523819141031447776325326089608393861290702309413664755540081789023016163254619610604999108439115054266473225042392141928056413885191280073369539043934672427566542453145639815046048766895485797779825873884397471372585187134606366760090602676368628855724028699861260766231447607473176666020101947160168770097537725154666342049142077354841371195990035103215917446806650761096507844360409509228552258505555812487814374505298370880300070241977273179751177293656858990215724937258306102842893342630098067264135429095430438362744342126883555261430138883939582628982948359719729385262258857039845464550815584070515187048623235970717911264503463354562032335136977294027461636356326589940659605666880180418925419999540106201603036243630471476451747819782405170852520831974258499248708963689732064447605711499135993021929322175445174888891588693859745936131907793046595226689246482220519532143293383381107747667655484268742145127453732660330063753765477427463045711781563422849585397736490475133050395784196883162361329848608160411617559942969206498200400858677748631413059062357125032860201388031047024915179207150840797430550260570885900097167325071270033526172941499299263984239265080298962359093944717853634587634537497051676937943509322032306261225124603270319432624324236109257298144734246617005892384260678910665028850704041441383041420849953491665552687127020135525361111586935443333280918712437520312518504739127508865264389716718757546219906272584684709053520501316419892794630079698398254455715592404216088333198145147387359108551845776327875806600979337825873576056931120948833679229328575821083499708421924514501800656424661025639910041525862447707267274332056895844208733097340099615327527782600641454251877875202013105326965121739918644788076483207271980546127402688027221576707032855817229736032145893313351785781170591010854816808859672152260755147424425836290955029332835741176187027686854660629944629094067122422187479051075317653001668579626463844917806816231719691779294265488290209604601605597460177293719472340085402039233573100007630831029440627317140649563191779084550980203361807604008062339840155626989559491880095983460619687337997381067589739123644661875492449273822064585006330250665257010857514823890121233238044686619511827008346947699044640442650587319625397098455001636944006633582180431842888189534118886871892820645058835425227078257440627598765701038292158518748787052051735686837082888404697080735554313234413092020239569068166903165042146336955863105550245221805511830066708299866932544060329925780611762970785084451174106261688592606302778587118707009575583999283775612289826664544519162286519050051300722400265817591185310153848331128133302736730537446907679770544302408638813613631678501950887125766810742163777345994543534727738697197858169110309496034091895165451232238367547285750059583698902701199365438775504259692778001841789361804762876992839119137661467948001055274596554126260495617471432498841482818720579956485245027148928577545716000011655683971371877670896316727326358631495397915718544464457063053456432812907059200150668563949789865682113866148619256935882737263866036795812571296014452819634106668212526700470537519440867993233015974060261984451735450507723486572754046127896136558337085206621765341966685385983689509992678142617099615054404889021001341236381096844216201571961117458386261915406586229345850493582079686087330005227946796676278737679598995409283111917775483189944749336734772838950470340387146308934451943026432103717314984851510203196171661897867891895436256989401911217043943721386270340555535612648296424028728815817909927395712846203523515651449447410517873732117592659184053881285950341042154287514977368358434358657705557637458586187920449082196539127880182473781540855292831898810465955767282020747449153892578290184722667671506366607587690753253093078897726264445423934644715019500937848897512802384690260764380499267322101900633369600334274553895908833479506468027444472420684326890727199261238273822565078367027415804003896684091975558877041005239116087578216813684088659345650989744381944956512478677916164153175182476086271426300736606377207302913777894149337427343895453491954247498346303074367989977103489207881851435772250474049981924715352272720188302746111759024692134105187948172134818564020201929399815730070813727397423922317337271389803424561622020358855963461942843957861615686593270714498171949293643429013542954431223551344107473828005388433521660309004755580447053170535297640467350045194585782420765781998996138297772259336463707482194435959094312765148081020145080849729772199306000211375531837273022622367147991664033164057849191197799373130634735949955940667580627955783025666451189162607558628615070932636137486283515714384787560299821838532064184383591383416163184848496682037168327231481410964267682505815714385875148380019595230638005842399714885767766744681312866233458356776711694869999631689119179275016394023078712218274257934377080019710387047253121231958961606047894789353883898267945035652231251829516769813080574149034631543847559075756286003265905928561906506487677672795572099060834286183415757112008360679890102429346170433774905360136610801629137787479732016616900519276773370577713032431969067065431851774322032063498373536833560528555698580236277164176978800717269961718464069874659583031288073739602439151842595100799773429223056160652746592272714194357023866509360483593440713435442643891724101261462495910933508178502697494267573179100682913308629765082718974310634115900868612466819296637683882124714570757049897297734331657944207589351596224449881537323964913209793570572511828831589392821342211230896051476998361946702726848749148185846483360455728451160686623091542390211817062486845592010655562852255250226027488089164070701376788000631172638502847745341289917217935115844613183356015855691009881955880229717651844691941441596212588335362188035017490987247302562256007880069212298443253821165249830006284910757271563928475486093850510114008297634322364546164498561434465318240310584646058248301749226879134768724363691782084164647040214923396233502749378072027570331823958250847858212986917018816487300049364807253042080508981208132234725520931916574642075169740483539822740555194791112317033702970405872119871923736720887221417045277042795393750608589472925821078551857897279507877800030978650987713990509144007482410882982996028641486269913149369131063633286822179751427428060413683352460158698320624847556796245669590398172923707077822023996558636733970568747253105328259032465171288210027818401547362893463862698916901906873560030984186429929505574780412615359041271565688202761475613420948898665087198812056829929743195035138051068599810655520760275814603767539576112128359592452033908134657300826745492551804061566687319327412382783785093366146046618291050627310368476089368956448818913138790209083811911193761019305525956817310357171400700476038158708442485069781361786333829189094169085700703078453924186399095048143531550406237544954169608711376913454159558026875074643850583663503638947220415662535957716249473179155074241496559643991153070046240175400198846346457487569695994340564528245067672516469220473184116279561394297538029610410661645438624039506179062934474334657212584949669344029096597823951986837642204047705492357402329010083975123039964877380476643536540492456223413032896966523114705962669573165330802279131146065594853610018388086363375719957183421149918207171171775580907152984231192149410275809967265730780149305756340612136538190253203455309279930432496863870151329266428303904171355639604404197741054288468705256921678684000374222667175556000509066948573631174619663178775341159349403148222880916903716857831366269491162947947556292996392268895009208334377399214518547394314685943372598432272624881168952432164109307059676695171460729561488479427318680561380798515781884226658628430167502843687523000434431157626364637962594085248469778428107535165914109949542521708209006334553084008958871693373066191395087010249738604673709102450926881910263061019254625382598289841449789306284374523302336470132546920449744344996591157562667616232729616388903026190799747718211861349101970281026028544721321973775641537521456375363689313217425308274631159325070561561521583700651199526711799207784409037410633996117089046687678289336218765711555870269344742178609911090059824187149164730846694645685964785710285371771155921049738228453540089892722908790114391100792951089707884530307772421443641688801069357862638174745218814829348327906143303480496845439800643441311785099970836732459566112337013649289696327652804503909691577303171954242124527787302641909385452478462768316040040792893660981254472579696826830185671571833665458059880311516406292468085563361132957412321040780819402971903474267896860769252266336960894018171141672971238913106252329389600112153769433672211173090026312836602153538098579875064095392059203107156422352320554352030608926838464894998601267967431459389514615408413452639172257819542044346342697630282858729570387027671647885308197272640974158202594651712323758798269631109588418507890931176814177093783598169585432281769091947951152668129123123116939533538097420125612818419746350985035218033597587984510955859139474492524051934574732775854091455883975249568024202408784608437723457643223111105593286191251839335587211937762304521735865057646125596964174462841605417172374923020698282961039233528037003841188918806427818454580588095047867936303779729763010833890739377912849979530562405231039828972662367065558138832580504134864588060122497649741998369758315751620750570527632454500828853714463442952045060760639275669245789302850240583956366611926694258895611938876512656420646434987139127023324539288393799623318330032823694670630041741021129836024710302676272567133749878907131023743405426227651552750018276854483058329147066619051014213656973387502311587122511331429070748282640507621446341102572334710124985988296891135465005411619290418966912658455247205920018749465423394014387942055824942570055473348225190872206436684769865983368026950869015777225953342281055644325614605546761184721156068890627376022882251250505207364030173223948342328038845815130119019425899464514705823465394442715285059079756720835766635480913917629564567125185460253178321921447366660141582664656314635031068898098114944834067954581655582312618530871223185209313659119390350627132149460674639814793873217212843885915974549403634647193308246369056541402053353929363922488298698331731996453681091078061642596470815035674887365641652881360894003061150007749581623603274496592650006508066019490164993706128754369602169794034557975598716478591059649031606722658244030842716079909283916335499118068746785193551993526213920425323429765236108049428691432207457038251413120531399721383062090401366759673787506646314897968595844245452129418025407104328454765591661911659999225123285226099913790415581351884973693110349556818826927521490779302065152397245925841848755378991853023097679127824164953247864924740798170161269195184963518312881970491416256811301398465047235718140074438028031929936867092763805516933507253082727518602224255117934864329924268308542546044055061500213542092711495414305623439373755350351477389730416273021797972665575591755948982415576096677710208913983200241220480782559565367029992980080432448476224845049184943791877570437912208523723868634930715521894304067527041153225732031394719627686724542349840671301242191664646601337051201962804205676325996933277744452155679317491129575665089253392894912037014328975907099247945798634897479057926632778537407767230614532005078630263422339071534262162057852309403656001615208131898766627440091403821276420002361849865347598026259408363330589831482277860371128609382636672287323877319479394502566517341080423158198292817402074285718949450524933018921286070253424677042938372448287901983165459550003170070706089189060448043621356816121899377210321019095186520564232795815443790662207746911914873385060361747978763694380854677253143446350167417614777024213092547841703331506565380748777969449663136702899700624977628592869273381149975330898759017811526783579627936063711776034651947062824483766194895082355992380342427971069252380059132249875872351186312031126292436669986962986310501477856684158388018743771795157812847824139872568989666266798278246304634563238767432215458999221517825268213006260541837129181729463529222702214521205197886963325352084296774977969276081023966505838967789770538104290861966347399740020941631418555871126800377728495164600348421314315393337955468377131416189194067267416242123752695292638185792956317757317231143069661262933480374093543192672090027241498209441451175644188305600568003871154174306048842156367793199262912912140663454170811421718943997217953083765726600361994307278109962449404740803706147901558250858992641707095736016103802441729045253146320688340786273921157922147899501922187037178807942219848028744621927144070492993943237289113120337136611949033487154494960545700287450405464579284714151745183854640915020149258867285347971527184032640039999694063335114407841624402893248110677382269483646456166323959916350026685354579428805661147332206904982839120397275146555755694900810948154097603820933301397332812471000084710312201803072001437538982947826560768473843926094806960345943652528929187771979100797057757046496590612298616921782301967624117098852871983413724562659558406696915445441855663440577755904741846182931901550954026339060707593300373236058417628834026677520158952781156406155756740785293665316298073983757420129501960816393013423694229567140612607931040328095522778924815054764486448495860836316103950014266695509469412016917035890754436967376304425473524888882804963894861685356016640892706671862302332706328866654652272027422452378316246422899245395973512303904017003031560583551637199944628873951595402105753353927256355337297209927410099333892294233782639529166112691124135646382404844722358683303498847396562584356997234021635795432449016454011025462139120502396982186636345735041922982462281433132545065259026544451160718960075474796165506459356094519511913689034396823810719524645693586784069642343362535111264489208071119551115648210609033673056028813988809887095568524229423976754912922055402752003124697985187314800929205331234177890539010693944208619198547411472609061371824425700304397415001551850391676592564145232146188114204837361756562241380627344545870846406461856076042994954759080069554980645094228038378526305245388583376939699583432018260209797608102094445388418926357389911386021423953175077836066767847313161835866892978280075767761348546832136408931709390543433185113103363715310973867466604824428948922816074752090984317496133692659636011110092116654200841523563628649974495253942520830590594229783382733797646492103313574326171572349946276585015351664483533873592528840457132924072141430590523876413643012627211347959396664070953573353509582672867399530569453467041773957641242645472437840661390199481907302401386200835388991351472379998462780226521531778346094437482760147992372635354670508684581908762876384027384561720495082940080049157753457250102172379715820976297458066338705316949602719226201237279900502900578450966448853130301400428199502366675748031075854996663324891272059830258130658536338377291308941439716448707996520016984286898611427748332368131188839458478879485856559375756055353565458736638583454410032919393234774367877648278313452459359504138916062047638867271045681254350979602732513890560180025095187061015724585827060085285861560081256044933016917937770477668173415620863016273781185224235214472944849154389734878914818219327710907319291749784274533082022797586316534146152074917894136399072868132829559377245603347822293974621500918959674947867587791193032818427547325469109809263180786819251872578055068813302886167508445607613273483621131910644308477774543275673684497696275505644753436473780194293336527433146047595110776945645275007285747035109588383644351906366776117078914920932637925274989271317939066584130898765552147992811749819572367471916992584133196211736962259498823540317123394788041762619094177744465806063667353066642622414514256575536223194061565903899976091963111025487372729959867711891152948753944208039737546154009227970396879815865674512180323217178225849157590721730256597193552999243049934728110423688321749602766206383734937424529224118358323940428640931295741548286516984432311771543552769322733022427383339816546362395013583536941574968037958906772905599322013959326023792320629119876342620948266147384940217189493457389368343199717190244776872964412082926654154909088466753513308283600964485145689590602019996154040171487914822734447059537084428118650565027479072839361756026523421699848520971705531259757956595609127157567490544585047378780967462810527783737511303883928686442379764015448588376856547478146706099698004690457853770591268685720189715500987277061974347480385903885182243863004092310884530745640781750159008530842700464136937423460203322518836370684133338207399257865361386148075485229316117133197081569729791680259187234737149049891617125138854142142623330705175069966546961916120660747265812990873501130915025278683188941009734669086097410376298778473105783351218675524779417186872825150469358593298107175839481628010542848739155628259316908532117559006716013612288511745333299227020325113484381919489106649494368534676259487627759775873332159255604142150406252137622649650062317495461536705470956996407184003923747376378225039205963432136955891223157098182045972130114654987567081847913671145425920229104092854218727885085604168604935601897750494058581357176455717354085251021369498715560342646021682847468209777508425470969551897288382783213342635145804117201234807712782164001915409727629077043567135913108499222603810885877785041486191242004273016347168574092467025345343315394043614424950133626401021362166631675322465817565868872447231162217426107274805350030165734283767330680104176198008534472914173183439480425540378810691708290539092067017678330007654533909140396371360389366868729198127041817117540600471421587135434598178270154661837190251291663340272672520104440057052784999999516082200686159002973540540614725275670688865505432027675549988932115000121484520829368163733444104241551918201174330189101631836563393243333367668847302090716122864872159643820338536807969060544814356362532638540549896427020101800609676397203184650328014306736393061458869943383695390501107655477455385218189073342621907908822360294413196057874521083786447273780035994304612388960616166705581278682279937633329612567041737333109303512008160652835540447732459734517252339642591509895030535825607491365574375190431096210680705869283013664411233738798944251505642380972878576861902327381735119564713904095831739436965883214793701250087186642593093754737069613240040720084032893683517848785682177321586384150856481465785733314999703307791731455945803790573219112344256320877026537251764952694823493514077875069201163377238067950768226333146231897730676407341804807411827940858889861324307011424718942146464760891683941512040337858138255790879940905819739997484487687695058309232463683586244246583955770003174608148558701251017347244668788044759753954370072555506034630924001402275313584219519992228276617671259575379660757190176780682188294370461319231932067660659143388440037329209090425619358089581304997734027956655106416017766266665202271089564341079565464220016636122884979482885310462303312683363046512034790379642057706661174075702071753170414599704499687466503272138326629298532035127348351376882335072086374706036118279886880886209017979122524012379511994868585363703175491996950142686546785125035353769834643780141622346888064739121954118813531419440915683108034128392996941815260887314505149649420866234328256127010721545093384621579783263237990724268603625518914529339779424571479931633331979520888244802940455658422160956812442441418664488888113003205442946005665611117262943175321817242966513364822362272838746998665063480230046776418954037857085675371391353095088771803321440058392669906655744944032978585644810517725617460723984298208449443518295546703530953733902838540243797228450889670612785168227613832783136971145696040208685943218257466031247236130650579512210234996810401293102235994625163347668885212481024261744057154750195666777795522184489271267214457716970097225281191091734633564698584227055485801686230608366390929689185579119879722568143056323749017858221423023545902357179258088512579218644608623024837621351175325888358599005143101762210461605848686149215030870819384685253780243510535376876216180904726766129388657768503462307395079750173839954655379347656814385854053037081928826669055211430869299835516990829931903876419545616155752887077763952260588545686961859195620640814411299497027857988999132929404905850876259039812708409383390102111895593610271397192284734404437844895421354002653036335092863919262948616289512650432398257847367397658156528937075358509181242771615418759217002695956979581164594534376356254158264910387678525535352113585926792479754685844582061719007045910042118872053652092985669256108601850809877278775485233325234470853868591563278684414517486813332287203726153299548104885883465670653931996701611294675014938723928910203230338219349744826237911195303903282388180960013344242398334030612249907106197157361380365495669763141035100303225654231276472633700854988275736143440655605126130199930041573985414668978986748815456753610094943149845541534870471065522827185593478021057020876888933593434130934636480415219916835601757394215786335255469718527571029487528180752459241323525870436935665807875753284658313727100854760872244087123822381651674716576205893197344935520411624133456548227689809983734109452882715628875642632074069894376602384207129815815310839567394444430660567478691855273454247003419523696362430464510279499989890067202828093194345499020382675280183157383543904188044842190265124775041193512916554281742984775687290149335630919307849383987096583097949062230011810365685531713702182959006067008999120800706161936984060436815110871038912327110932265063001528815928273576031148458655641839535233986421579034205152209421758171531649460440530865791083617848806865445952037508982759838082854713346823538638003306554239037838525341060970410051672419228458231000835157502313291961822610816087798749235020801475734339068725895872103616124775047125154103441867225236445501571853561597776572173052103297287449992147347183550269569116492771266531038996855193482622203144533014538797516892624083043052987475330812706165353838282175821929653183890065669477525153348714016803808700902311088203838810199959530168063677822412070652882525124138202153669691787912182482498839216932739344209665981231766429814250099041144401360385116564848952233053963893712735305449691805525461878074646526353441988057510405725238560537235849188163049104290659501123419135871485983041941255204004287093541206510465902327184924667360318628515015657984200787208822307466875793599389180820391660141315896141415008631782268230168960075984510885004360280992582294985499283162991928360103257023306082625257373009660680958627699686395884680414283291501767013108457875274155382598799144365247390274274334427873135337018035775732889977592502024273620435544333508462181649320788759162911637205451333790876043661072807521049485592148796328137784852580285863777558238485406501964677659003838679502280345973051258792969081323292758673666634722793702344647550847032268335580788482052189570380079366176857487908221816511241567574147955208844481297320827213417349763260824067235389665584623520629952633704822673068433085197618789614133691726360421163473040300430125381957248992236234626247778982227310005774850664943798453934343669451520667995967360452091616488729539862265716713247841738105714959746452432333181135841548246308173596426055199392820598721572056473325749829567228497338173393823601977280745105771202519351966929866238335389527022159154807424945256687383813807454775716957478572867208742069751680429228011581043397699388448029450472314773610536456567114418810490244860459065238642794991163827283035694543570186657481553727905665157576521908315467600801799171517837249214843126424263788503711613176629562519414795254928380739856359218511925493036274757409368107779245715293658011337387726993887454484256968163816734163603992482946231924731946902816454010995723139722222088993085725725956380778832260962410739291776228588352309185470759525034445305391549744742429833184731942104134398094806787775921705363220751830985072672036080364709340361499765833825036211461671580449097419819325435882783626861124672154697562674286095543993783469332404913857586211602381915509660082959998159797715891811737214313587293253461978313760463751346672491574052838756072257888609656611508312009029951845656279627439393816217171699026341740604410246298464559312419297839781246628904937581068377384975873073980773553654229298945136256089541568757977431803859694345138401981829197934045259597320576367805233917533891627996136843890993910622775193519799248429868002884546441721595454145859511933474041649472170953308774509367560950872439134325321765591402521595897726941597575008466601160507223507673742517757234623644211847680980127046983796500648049624144948807107956741648652714262020988538834917334623878750000742834560804209946969989848346221935071771821816312003542176075529956077673910533280814874772298040084193247489638115017464907006238720570858693410716693000372304454697538584156114575521284180913991516634308893849748289096646612693751119412416572362057502249399468883115241925981706587334636479169225720516432267521714026406184330189821793327424568319235512066507135591957503973610658388254123282910209856487373501535538877637719052335593850326880692358028690957583940280838197127620357805521959624184768571350329252328219673791389636014119144620137463194035752106361885779010837248518559465360799232372785685116757494369831985567192008353644648768495890131119592566056247940623374041073054415586564316359519825540662122913489151419395052181706896191331114110387758353902576119841436403652822590297631640769367978572326009627371677690735725240495827360511329598273152271906712768674966769158310268203951006709383082528777097209841183948058271133023553072155621496169436221309550919508374985521367628812345718024580463497194373829883755884452689603397924302587758342870701491690716272487391924134841253726695362149192258044894667830993110911562849381995460099953812014290405799064873668077073349189680397759711411283226905932623444459385059229392879083597102631020301939524391492397337458015760430697696337144712788891270116322857104540257099585430575848434162743876881551579093320848391534970594023505830046725454571281008005522707390707767530542002477573606539041415984647499165978676898174040364248471347824784500131223891376591398648955332755228795574631317236170137770035074289974349987782978343984053533766366575061999792651055806674356448555873191174080671697502760295235574052409957247603664018383206611218710754045383025256677129945029374819460141420183007356155712694858780834536020438504072297033450280260592482026364567920708002491921489075205232022311947225959113928733248795619684408993939024327850681486856995071485340861736966883985624892985190223343961714750779905016976613790821492897980487180087267297763090995616977453113668750165325156840331739464085540374173263833050941579234025304846753024922961078360730056515394963265032833639528248475538443239678942354053620861567017026782646722191796201797108089107104524187329941165652250566505002713343483400836231836035427857432474476134482190037474437576218281937219456748364746750253997349316151254694714897144642380767082520686338124267112064977581646984855321228466857689407187980765477718399473769647458363598022115263361804222739671109015233775369620041238150302746868002224733861772151104557079289873835741918354611625898630520350297420518601295882131194693508839604383810427339311460231758861050413607907201505908831635467386962470337679743837829841402432030363873437628740804091242024914952293972301754914206055522491481042970675468393997381116805537548132943327557557024467024867460024951308935899627619704637704660532071861167229663213499895857509192227258688644574968786084804978748089694547514374687589211962287543879608894670938100248335755221527022230976230157962725452248666890094997109168131610945085760654434427654257076022152582046259383327432158931991361282423645054369525227393979169527709706641204189184963218899989779152456249986088162661806101795946552531167759146911800795109026382381611904620481666465480602467508970753312751843772931695256636644460773148467475084421891878672167405308923632976481460225194451193819857552915005674232632780471196383072292893499169926630698188401237678361766229450556810875200138308180890637723753460734540102947285427175778212969772191261820090787886185800364430488200198185597898194419998274512430244825766698718601902608096655978738198092832911024072322816165810910913135772802643869126199299030513732606594641536062787163202697641543146004230255642613152849005475550690112585090541172336561511214001483622349737038039741666393179162958014293213645488216432750439442963317448626947208452372400814072955710746146649595519428782181459548058341978128854273832504609491718302538801149592598445712586582094734200667290648516468140178717099740397323596843950641127548502890236958515370024040987899283788514466762782917031921295225206156921010340797500351540115600024988579425760618815789308637323586507130626056393499505896541010710942338536813387257424032950438178058610258122031113144365144266095699886141508098072481888132010578209473491600287401867996695932538486748172683019495373713446595653907323388557286357466490186286858582416548302444852349074578631391143925628992643536648586675858109190271560905767862403724672477431823519562498840977608548812830261017584324978943013912769774192757314555381776023746853166475244296485380983803560825668840611430638165901635732874832345968979543791767385543068390791800603215687560456522054668631256087139294601688476329520298849765813297750158696559362110332207614131688828875121673126913654991664246423677130519159701888972582245381212584674973855761373913358438493491770258187894555075533001893217774738746115475670678436406302062741093023547388559130051475444539171754315986624875975360073557376891953498417293025927672047792677471141199227826833180508953779982742570316982608139059479078738908306531634032955554719591535598684881795472269718545043282857526594155330933408772934344488096992796272563812515455316483162740101387028887474543070160456668933694425591729116746477501125176760340228892201181768645320638738309136100182553701787928092848139752799414796588804482302233323782835157921334155519392889930542673488856794868231067027159825014053290461550106000601173189184483698650722140789591777548995488010577956079780460108908078899210646614844407298108845607627100858906081862882587870613316825870895626485573002343497672428966178458177093483711207322221503671665406783845460850281984794387267021531411001717979928030653321242192728375402419147360781261915527094244085096976624805183872959704628388552231243967400475554449603103860573623213836621651577063614822314367484519493702350295362588123459685293189507296235628253499606189353681910275111358175199909818645639986435045969207688837456414503572741710305029399358093260796442307619395106211279391374014153346147070571911818990762503040965996255918941547841742008973506595414142619802162315305824765602951192574269531700482551324973203955168548015127452165936183965656688372379977696050640098271129899215523421164552509694586970887348360431608345419082230173553686549060770433460933846041152935753718971490136408938684556265234976336983982332380142152373252091820496301089819683786572924677767406092804809228598778202572008393157210989302235178557902817485936086433404336596391313518483162009486067738640187301324895137250802492232234307354249802971079801327246143693962012605381277727072862920110887080889870001300578658957743483973233582892563219136303081248804950028086680562875760142512126738157198637210670303356467093484225297683278345364932898449141010188859135258830156916659548526957022933931328725295814766097083218250907241726799908250918362415929574202612409764341480217213008170819495255347117194186983099345318117971215512091176830324162483748528964042674687360262021684923772032272745771558168618922893898427328510531327755047872178756011073379799110137998571631213631401495594227017275730788263444066591621228026530462954246257807279730047352525691008929580332635534310512272842099575441874207502321188346629814558904569135316843914779418173974730445250395101202403652365648571230424247498390381576168323518629449842129765584972005870278043790991644591555368885122045909606986694470221449667296736561831563220233308413875674864063908025115236202481939193453439752126021905156744582843594165856140457959218648470848617342728031040726300482281773605476683795962442512994079575206103329111035400260638090217365277579007675218909938345355566092134360518921675641831943296685682776825416807838436566585316774641866337836561554596641352783824859265605742813511665312004350057835007878908519268668976289089168772992354415924716136420264020707420894700230358036281827838065631824678575582945164258570178831114643282145515875043293137921607505935043045040324296811014369288371348583144941249179221281022941398959148899164066926481752192273408422074005377894116833740169446855625183609845692767039055813425953793295574052135237649277754314116660508763426551613436045626561273682450577552095709463302734868549559066898032962180919916465330007383094555201991716665574625868648600454416073663722577277040373185475424737240665614485109045142854675114470255502000999157419577442065268980173034805489616455855249717021193648905217294796165920141921971017548803553517754193994075735865686813049516776324805698553686323439661801689992184764641036276386396869957720400119564721159431337043104732636874396711443658988251153312000428157386341421301815492916366700682220559437770981052770105475912461716618728988311393505230587625634296605904801008541052508518348104001574317063931967141587418058628618505881776584932595794806425403521576194885626122481139144945585523368028816292737770681257622080978316553065736222438618793244894272213768663225081921693773544824257836102886620883269132914486312252469905355822144240141791797487230768084647245652870050396538356883319742028253308349048537966903704357701606509001102150050447018852749392830721889840222397092136630146141475576931011899249654717902312437304713703752352998620292785043147900892289628456129676527645455253300222967613888251360455308775900278926940224028728229800011737371907748298766215580282344561291441602551169909983159442792942755066197987006363947879750717404003041692685014841612335959705530135602941348317585020218506973108436343551947791386536842028729963463516187257045208836081865808368571471144491970551142385145331280881981766641150088042609274534911309731921393817105763556975389951162642095258075080895925254353666900227949245317048999090914023213630994039303142527680101211771692127412575600567409742605728853940726127994968092123651541068671420395076061696126275323554593150709121167445286283963123058740486225879103932703844930366032394687188748751686534529983244957182226917028253677026301350850149486640646951983188348090636161321726793670564093046412540420590103413490843539418110015947668936317219279423271513284469242117408650861615061075755170249134805281976688302519346565039649876203168776259110970999390969989076849546995583026240976996602765100836017354285962593399019012172694008121805837060664612912469238318467070578318077111708754922413653712892581813267532584869007021616319685087604956850219987081453803683987009534930250330008742970888699954667217034227235076703415036305761159590958910844160562563608872862934895866242990005536518474293212519039312293390126226405914622878837239152432590306590704339379723926075696313316839187096675309465869041713705998417040722983652681402961043130590090947190851932927374706104510816722660178288516857986334771261167364684000067209140544457695333721298510041415664121154722525786576156925252971107751203715034010431270729954219345414849404582735291340944165122092699366135803654289916344588760560607637861991015626704440573868145982513528655139465103826645715134417503460385213470784872730264721308191328561138927747769848089619019042322454572030669971603454475130818364904905271550213283487835990920865287067177891326294111430386363400743837533963120772382365384617582927818895781149438608255108724174433998363172266607109905976920784260460253797502264446251608634952527468273470138837039852118326450389790204823774852417344583615212841546905846099695684844985794754304441879519008310159567724974532369821749817474067646051486014056420660571742652339464303177672833080216460758772255291116201866326115752788907481411387630748649311207219376332901214972760345391304448308895595579851517323901113091546012327261864256386016455372951320827329670277842106050053939557175387168460329358776755113996338882828956574032141062992147422035689410061232639633482395300704981911923835173956516813675325951076993793479278734419800599937881570588417424795595009379341858123886303139915940896902032578939889955811488245564414815879655402230498352362468741970168129753597422595952300853772794719091124475277579723006321589193518061747784093064307870163002282077774210364590310675149043260890672943995353448013421766582823969160142915799845863175345995088966075535276056331535822693877932101397498783982916435211671053999876897467817591153117898733783503776812213698484781602844274034229462336008059730054379769194719260293393294698060823237358753697389850718305265694199236729032721846697760634819480797746410755439396641828042365292572565405576179423818104049786099559656559182417065603931857177312442477309235789822923769948893108767125779440552244185701324596735587210903161227877150267793670388772702749277346273118854151878179044640704895667839271071149767357981863180284039521060117637377513183524488198409906826949497959363541702274813562081498240517768248386498326590917383738978799758105417959764486723661296397327641957616746187804854795947220120815680106562994225101840960595396471379046279820711709611137137392587787745929428774038474127756171866733918506983220738144114426763382866518291533390286346620299598419485528014150166755072411843084203317199682905567587883286044915246640918340527769152685598726458393608079147307971650745165227126682800509319181295933543019260686328890245452212640982645914497980851913089562635796535135311401532816969739849172888421258065941559695058734086462194046662960668354696305166030281634573384772644872978441872168898524933937885444627148524048368150037872886306964952888281307768710892095133190821222327319172194280977531403982905079359772935969727300204516866010645983218263589562145888403750507982841632833173790625746149391725045320583415058962061272557820694789755823846016849299753490478478859361822729386990458802785215618986585193508437486657816923435512307390142868222070301515884855792016159970662908519143242183770421865501985838347242526640319786747853610770843341442988693395812415159202564018996341451640864574600038274933170147768576740573207372379723144555515511747919118675126705815073934975171381101536348768895695813230703690599546715302591133610332724371453474580637029448961423388799246042632879861209982173108602610919923096247456083551675291192622798325146999009795395939318949573050769412777503826760696491730073568482805468623964651244006044521296044153428072667891539362489533420456581310506859469097901588566002871178487602808097275513796999007634474490769426580174487227431830450238471296617251522063407268462390312263889634974041798803384282876322160909644949916807207696048072755004324386448294992167452765275280170333364291406619594357140531886759718590052176992397032659267216232483357281161876218731017210051602470250866992438702203277027958583123980820569053256467084807500584289427738591619916019942091550482039128415168177287000595878752944280908240977432313168679345533498454388808031122486171110843534547633537136604639509238457944769393653533524389822071159855155603472832713307669643936391880416886753362057396884315749250136314931981016430433717558979083762888466741016238040978685210498224693219703099902608424541259956493717856188312075823472511905909757410289759242345017474056424604484874989734156491178824867052216449353797005978122334351235316107348010385778416589890783596692496122987427599504149846045044985031550899360602837646799530852137723243115749291425678913529190814660343653248239907636874031108629728490732419546663854914730426338937034117912557213291648389818429583525696117036279583240112472351857166887699458860749066814207574615676058699877476318919038230387145548894906509602966904469780132476108795729751578638514789752457686095023558361480453352733110652330663493686494810061677135862326955908770712339740956903546238618802666044473152086959213711230972312573429549249062992082960600213707918079546554136779933193242125935332651243148512997619989052083302104150149766550425546685605170088858102521741324352547735248458101574167110694474977153090504066057654860321104985074560450095955536965848487923117752244366742289857252446538391169878063319948441949576215605903896400087548637818625624413184490707400974430357124263469107596122070530785319843101091738089691188295230853295356235222115265944829452877692884196175799081728684784758614805973910415442111164876620300769774888513160266349321419549760153192052739862289387405838267139367837785585871797728612308214973163810865125556030157515150733431607283471517153291578889516923662923064871258097035123922671873966726568478800290700838809480242531175310341341444246947810124638734929344283150332099166587663480037809869990995793467371716043735306897422510068396906353366910335654543170757908374090890420888309058736641224762140266440372993535518293974668867955013153296791271847819227385118033329116880608013525137181177565000814666371640315710878944259064320565173953417154588628035727861300124046726618466675126952775156663606128107627281794659969613638492798416606347942781788069184468728739166150257880790944383039064588970862091322610363184212514316234243598786118905236235169703050427201966873747255066477776423381121582774666825308504817428103689260481268928477035623312811397707338914388752414519734557793773033444300536713305371808943059074328664347319844781511320671584620579415628964541164277858576889998830465067265249765175915541605518995184419907383162518880873837229963579867195045342395126695401455588019162282261104266153752716958785230954385510712611458298725003561636853244503176242118431098816645128770298812887310658650588301763955704342952067089170120721851607305581554589778030134666559009242097699584457540690302544950459163245974350132235854544461709546281865948794763935699304228055262663620036092049897021844439800437516030295296039952451732696036729673259637740291775653532422191530862348407712789330344929887746078082073515030877177269801970194021506746630845662656980619700625381836313722736474788911613939875527186654639275209945907562665675951657451940087396319255779526221964831059687119240237565416335490111266327235573859715647912197637595194160227911481057064846339179523461131083710378055005566081934760742943863612175510689823381221183924407483732052330442394130385853198093950081824663862690141862783437109753169133834699828536776073341383504064188268753643341329152139970147882323812184372288495207775491272773337985463783188060109274209989306300954619721476239028655895902829407358197232087142823116963947683527007061246904788025768278645501392021062318470416318474509943764835161407547070356556777873948488422894954486806918025638381511027762525535113421161716434376918272455112533968100250510604604937505666289773622528891644317502524841993874472466461116014804981494699767667763544438484993507388539213750538658144644953744658561155196378089487572702177295062660751540669198779156507293906890857930276487333149808861668121331944103322927945489794166885673408397763962207285346615894111995280929144690385695802706706197445221809902563668681219301651568345809597808116180109445462301276129568950810828043008713233420812241392179750623212335944833601874800262876564881683313337946398825082279950716855959378775885400930364211282457923297498188754107685513580295572371572212480521235780671206810915755420656285529845362203013805957918305655106037144680986102536879971231371982975055317766143489659748482970909262335590787482699683980801766374166337433457199087465139129951510890279809561893063335973742646605353499380517161705488021953254520892570206585333929045116654499482793842119377799146355765307620406193959724003197550889452930482761972058910563046261306885060369651392682143144837970133815750128937160778595797464179492391693376240484618479312243847648152776319322181308555613181585823304414419292160909575685362001885132172697077832410317816746200759490928746708099046231058782512035207050651316618493271109054547014863553410335755589543193338982424758287846503931275978357643787177383437553840920210569977638895830615571987045259503367299669235392612594166844435075609457497855928188878798167357192585554262616551030537748983707441169867540294960224523753869035078708788364861930400910154604430536341261993755969949020016449933507768617092989435494066105608025802822599699968908384758667255486516064496637998884116772962004960800714911973805461352783055387057141856627714866231200127831491040631149774344584698474849907566367016096046486974412704078467023719171708822231292865809658644614091065588914804936753425867496698797346271442619302726532965330035701845681234599293092474702365652552661881005834328264835431111669762816640737712773973898779561367506563170022032106125995125129902749331331030426304692882634540667574565950584115581539443825298763004910136648850468075803312265340221098638624418433075143989883963199489085404906691329341717809892812652854759164275688729781103175545287460810457476310471083583558676863750193174328449679511523565672592438909048492235318667652677270124061526251829895823198741151239431636241592039888241562883470904010653276245128506064858265844127265019450065375657167261582745337475898012077274343965524155556816763083888004568450752395764810353288812421821154030381792935553699661249659154988821797296286201535504104127916904280075591277241247717024417811829657556891933502296978368339496310338530831349294771082095609772526192853159696481639349054292364563080540916766146626595373379118829659839267522506851140252906328797993752150567768928240995020642649031749790978330170046709330951287241160979237067144543483604051738961365842266430812671723543883097187180411393091706398635809332076463222847590150725736955417514576121616367612007378016092479877573109597060403315312068012021974467375271903913461820496569128841759388649663744246249827929526984848589739467026621342179790693843375483433521414830368622079824444290470448107565936886774575377847266391837574774193252433127510092057389042237751661677166874278981233057330359338240346184575214649838808530891081559174578097398163748885343285499922198657585586768779326633564289494725321594973250901086411195542005226534801971840862481817450820453275797807325747615733767484811282827660663638146937546462794154753385030134461229903988446228759836473259574832828154126760206513668500705600975168715833098016175677985541940335238166377847419238491661671481717545420437890141673084469047177787933070365308115911121870408787804783106472701052373064059966548173681609567126965802176515655761083535786864317163340687418064030740327799372073513609832151521082870157177048599630684979631321706490544312180575306925100641721577583340158765379839704063685286955679281318592425040795619111121296748892211765113681375298882339280490546581963453817202712479153995877427961763290109637199686081938357068267554550165791536395529542368838428004546909701417483017474528083518847299231093224371533683990901786166267007302513047602786178840141857314018603296168481359019282709733294127408006433260174232170842158971591428354556162890808346103573562292061219686519409846885082217085116793967757158251742952157852955128971578040045663916540263426255911850434381962313878036712386092039581862401826628251115486202335157677415449754769094122553599972428086576648241428448578910427005564324071505438065883850151229949414347126267941842973126918161594389386674702952419817051330319454168701989884076010857951801492568402899390569294349186371567205961237411169437031956138619701737360117077757630259281089064507649960686481418422485610391465894379059262409528824269563774118160878551853971694790919674809614628805666716255089710435490779263704669230547571698433944597563059123598707973381200564867674206307192013099009945786575593402286143128935544878236592601458756086909653300940587618134308654948686077158563907323844533691800316639704365187558490861654595403439747181614274589652724096023040474341611885019908189916424162824182043592264401027965825550562649399665003014336471904218567726362256971144353543320912577138554978153730874868285424830976229146788992009894846842583628301813967057433711770441874121328309203515665647333023023947176389896690012619728390252808458672435803825544985429379067942593333718865019193863135042437176820647611771567425986940829978055545361482473234377072061320401291335649462853393788686142944166610179716283120179090255731470623414501653754679786987445489976967822578984840827179252199928702283378136273537374062569750168927593253644711582722501857311603570811802851435382573177840903799487147079521500241138298601480952447482670161060053864699064058245543796121667337784636745419983228761808537787085403288842458619482003447217588455042402659637232991899747552116854788255980275992090313786312722092419930874728286130371521856656712957498700565201416135500832469254959689268614022258550282081532417084279944769424416483207253531474060680868018702321783750832593894237510201623415276553532233634649913895171426415001895847410876519005235591130519726142193546098532050097148216085942481163373584052993950857216980347679126076148098081911455820252811120769444398063231969051220430132045761891958521392181438329794836439482244091367830479497038093371158403396707680360964429088327147175152557645647729000406005523821451876134219957167186035335915595722539360778021195055706101492611582097149664238604352825315465228855610296762246678764846778289996101426099717867783655276886092361018972069091343602530066236006392731236376385973287281158713331019280495474365688290553184844652625463046730899962617126602547143174926181456724865968609869693500041673233105760608532039070869035167797072209543711445934627387571390411502640532973166160414213355140188871542423821212338376257544420043694425060486751546166952063898327204579405109175156600490550271630629670126379320311720657526681787297643119836278683369786921107031060517679916803084390379846435552329045145859829135640786875451281289993430653516644816737663137193132340528262830078589922444153500248007870381380633916463942762171952054909883057002295060435280265385244011166584925806087503511230468358299985146869797711678901443481880123118397853182394269874679591831767884784877455287768617925801930698331489365773947818447188334604245752794489969985566318299816807906499317738193762234190564900624569569599132776476725138478079545496209413610520359129016704760961814845864248444929941429061419793935665958488524222731422395086510111123748697056538901562951017726993311305788865333861012546742866549691807299163036172584453054609854977123749841820673926892853194902446963845782090668384179444807129513328636110435301509668517305533707843698988875681738302244640262442981374019047391611953947752133420449251510748701783062887207628041905661976945967176602220181092253850311140012253290589961268310891233821366459877057433235480090231946366539271610868862376426364922660717068040806400695382173666237243043514543995094860973660286452406276575967465462878416268285834492615638415835141796594763977844464283297632653098575596810859696682698165853395476195677400498094949358836436363758902337488753835796890386110144629737698882750412600213268122474355470007080968780246107459754169783098009042779457542981230639130108808003613727263981515455756164406780284175606315542414017925068836480494636584222950396027149472044626010648402673334426796340343926230556625048274428187490409220487221351376432172815015224818860302131867370207605577533179146584785609146907682973815550057744508173418031795148363262669260192504019378121974341625363029918221665872799282341810903026968304985967844965477563650429394650983468600522904108228964850850580401332093414756933841126086894327308260500540515759063167894558203660750717826758765910906234407145158182241215620414203753735309776560301912477736494445626579090415401510792316127895967933854250601110666679509126239519295911701963714782686314457329187583342908305459392212600811941678702437130522070448011984511112377582926591567129934339558555768870197604958351680619527065622739354137548517033684629367837560172230089327435877856559518899739906336928628067687973156978091511115342455483414084803066279014030010230273252042244135913626644328060055513915911987872924484293795883893323097749363545384343075291953993929291222538035439652623289142482108834520997898017718167681301516000097093411068567609291167938233764485181189488737527264341567268813723734753268873390124601099321500898051669568551106654772299353176802444893149616422629152327724961738411795502209438354553324002919903979837607620281292493609623224595658834061413699074646265400211576890636095668752290407446693630538719375416843329812514947763228740221350358232960569266407365687016074173804939964762167005569159726109532578077553364331922099127906044051301123688778079985244811184893081705973797242377612037812407922585757066879514577303341312922023723903119402566282545891296938998957507356483246249982550064265173455505252341275686042916510128781817773979866769583079191533235859145867567947094335269224953146277148813043975861883691879590521488738856544242214754570870538190402142612763527507838589696696510974748910280761670050185097825130139458703499538297085977805061546326440830593995864126329009749405990006862874252471691654797477622373652536427414822246065501921010398634618418465888606931297219482327172189067053679940058366841811355672393154185509031255368350324332504850108703933189463394381531061081631570284946670637380551541296744490921486664758465511574099020260430086976731535198894825411803364635902616380417441962543245183363437623632924959920371088773878340833603621015673563172882217123011316531221221672842134911463902290251367952629707514363989239455809273861892516598284136014543748603381799698915300145671540536099665572316004110046560805339973737102112070997769200379494707201416351662647332339196859590525033426448719851963630244398477887438211828677001784656392666842262583891141625424671803804846172958022834492449467053250136261116635974845672738200835253517681242461405988472619082055506450869221751018523176446659239021227029957269275976012941222129791501630630650449163112010427105139425271139751334211565110921681228586456417921987628632868860977178761065307618551734453090899073569003534864643938838236899461281159979015011594026029806737272490189652420948328924362236463846629829198838975130176365787386443638613339794186985596913880011783737574436013842416486742670471617043751492356130566688476574901810730206108348672345072120333326295581041115522234205750702449201824670535500618776477301137673358512477538256892879068602448620087916154299784092732064579290320566575899452181970683111698933668446196323376402023001769752121759145541307651040071463388781165830535682010874948823949366161433527384330272554945010954566796065088284409151568266862189329159805179981161813185494228122692738935258545982344402820837666316855484405784957984956309149116705635366438391802266186471675524975257604225198360157284058406433096456975211858671708442849983215320305476573251022708161578028784617799883600699962700046968570643348901255983976605374676548169459705926118462423478993119647450941531368049852807687018979635379922992005637841338314512101036350249955773295217722873571418726374451362994356726069196799222499567096851162551072605219150851172842055912025131728576631331752532800178385057318817043771270404336441051845224905426285460437389825928084852994301012366128260265850314148238284403551290145914783679128538075741676070523522028766998254378563133688009070586818085292730332108345850104597423378513098811480064340905150085961872133274566829566872771318307047898019116230637043576361757350523749453704497323996920329447297801746922309094145953491502125976811005813988255906934279151558616625924498418254960034378457910512017895394297059221017207912841298351768751359324705520328284025276899578602615681319153942403061221447913073793970314829372807298390693551500369887884309184966724567547971670157289231780203279591673373882231595869802631697758598930255929415179500402504471355320408614365738173406487386950183101721782203471514722659906124742103499341069613837224002126494724526008957754448104347630091760568209855579331414289288908175767556578621847772858146263254249575585515701553089851278381259767055677619690239189210750924535960167607413606818106047712757516925493814614863240038954911973590490687931923706166795410205950429704907757535801714339936270101796376530198242432659641850733379519058648829889698654944124190798713928609604141255013432621827382799419898410619356183927216797922547290514814275081166500409626695461131313380292029874434141269211660343584002008371152493504581309616890835896961972579774993887202549667038147801565340743891411872130457800754168932365253073843627273661595396466059738970387818231790945302281373402168286941275381462240840266138373997625540654679110954017518947204045197082648630298539035272584172925342635042943681005977556344416200619102408337097265548914812533028027712388573044706013250867656232858636842596991206443837538081379896441867920634368552413130747218511290073143774844627675163702718464420430516613058341334112304592749091291037197034251538830520910395038427264247563091559699057860673105908417425941599345213422895980547523977448630417954521029571989928321993964052992067010343323547618818047412976672359559439685523124296813441574335470724727000497056282499710250730039426890396265823146448907659844783681011238854569072226972942531154623561975049150586411432786730428638154215632675745457132495020191745029395647852514907167851789859234876141407477519011536781353973425307657565676458908715757724806984408384911120710622773046549416650731518073541774670002363013624265476475146748625495305386372433228793281915133841918066282612687599673609460863261121665760094442535788675077506784703445065679098053966032638095617893069572891385499343448982575325411240196669851942767359315411491219254283601725028188368657663430906030472280490769705546274662987054421653793595359188804479800778897264649510176162233666883788226068425541111439059550950502712202610127693593940880234865539331756599492063151115504904431424672574145068093477105970537398534773073841378981136504110572912934507321579099023739440992515112132552337425509126992636900868912437039693364096259143551645449071905558613996546127122215182602165622883037861203125252388400005626045505650085149535592910378134750984418923068381350167060933702808124852991789106722998439904523994071408548820758881256078949380518218590431117091171999751710720879866328581257006464052312479627063614486751331218836544327723660004110243219125268264357676553018212698796893965327452910884991952809446538596679866539545196024147213302750304807804059740585075041911363351354351971242874492204915028357900380409733074293859536692295296510944692532017132349961614085810131020028355545307571955833089077938401011043589752930137738157282165221130384132748717143436918749617911102900411664982667316807286901839278754352462414707342253635907761731438989293977292971847280698868540251314038980661029474675878051159327817181717209495060260004831654214006766038909464860263421591257104131350532675391143683114050679312965415405137876196902979146476436994964046132330941702797983979616948475670748731163162099233958146915586850600038599297254061517151645466688971933750637303409779628715859814079224411136726989395843733473005728805560905439238923864909566895596987719379317429795257718301142897219196361973208098351415173907967589033057416086448415503014776617428169867596074538175945459999391364922168949460312203043301329811439047416439495990250698766894586021819163867797182700856453013793502359559077694535487412523665779648237137475747054850488619481765340105920401091878884523244529239483745559286358993181545029255999350486296270159182673208648547488251348338884137502719852433966779413049846658196618261541996466154402320661947506609046912300946564891517738621520729119379332488464297738535851288952973488228038002479154218585258069630464742197983503811329884236749694035834903175768798804586832627933349037271436462553833579245578633012012856335524480893598430175316978635364325260158925017917422153118050041541890809119491913995379308592941022084911537850903657265106411593884805349258423893225131764965728165157345794301412192518790756070080671566330187345133457672204500895567234824383874102399044886244374923475206293405127808921386274622411804676139744020873477955181303657053875573122023271184530618042359977200712459570223049639298330165841171689856931897680728021423520327745262127296275161782070652245052979526792319752538801642455105969684201322561340857472472619997564113133607832724205888827972569978506028921649342294138218246989191763764468082078829537962885202203709483955872335169117923839695035463460998222626912173498443019036598067992336674201434098123945305202426360740392585478998081945954919979310624842330696798634124857901060021016841001888800743008224319097359183477588982668395365917071362691451948261777166714089392783768314133916206753321922961658183272635700859959087905503734522940625433110564305078180138636990045020605876649117855824348399770886964352914039481903782889553756405301015871256626044094674116015920696845574434023765323106858565966815782152557700740730309835206636011603639869344232167711845664444364808805617428685655310460680882230144960272690285458107773200980713812154750677392832081225308179944476700345950027709648046187093051687972898210850323766389281503981620025636752577510075858412432510736865472424600659987830620087280305414959698682232618767010081440176466968727296323071784879636236617494126156734104477234664275881401718581570406120724856571377418870486768224901106085597049988011200499712636772217617158894054085710161568654929381891555634460774554903779109885120060213236498791443478141378555491366800147166765165806408799208638539070243893288305136722520147872345480684368265837802465520595409283452295137231435136200674454002589544528434514981328267912727641926422292244825403692691538713925375798850312247450919807627471916339787221959203508626920430564840971321313542453111531811030897665924086081411574627863656923871279777608607221556032280538214691253035610005143433972839058878798076755501098785219830010808031563824930226973783139693714339900938754313395045094865586679557037966554468913450129032014138606374803430095839150158803325063004705951852040078537715200907776448309090731846437396337592064910848115757043166221954762844387587913292236620995739364305259042204097121023158741732023977399596749824972632908131136375980819988276406129830430734233605301037907949094588979521158164859881871139573510585631806947703236497529870621719505389247644507328987939011789410710033387851247688606717043891219556443932814885854224119874050533905854087212461919518322787570403684012256358632139809754508065141203599458392481706478291950146646070544908414880754256888100322812834574608612037347864474517068198077054238003854576077820601486796299358553976890410862567850370377505559642542909110378640969187013780914003559020908882770499490018231240985958156202888486993050155838473020747465941608870769451655427026605568442286934541740368285113323857897444537657443896909691176355280500803326039560696429994089870035753213108499298507879973887821477891101961775185002663804938526438031620666548474374499012156176043991708633257965261032390274303149808110052259933180269551940623148422663029802810092539920768334826425049647311667487263448181950862371051973627844844661259583715226562520866455061438379472382273260750757290538583162635041337440972990392834923861148924529965365573559121811250188556349627753659239843395548012314536960368263130998828538185264621495566438955243358788528681339393487638357323258618948090119791602506801155471432287262330033472798534470615408815846550292977649303886408859387052690876437972647581449277228989346797412934827391755544608000534672117338304317642947220615845469609626367596978546016986419008834856571426727470488089790192315186429774521301763241212368170165315653819893539612912406513464913416382972850838723970897801721311544740981977223220199930972506847797270539028939927774143768030927754445093555890941525778344865465490590910571537602719074255963208749992387447529296682561658530077217466950955942929056658095921330201453628301406042294654441467051299561784580409167895164984089338589283707396265169363059561364872493586374901854551156253747652253282121988731012082941814227501307919405144452109057743792507484450748170950176722356957130397758232336656499036399164845732886295165019060891091906516352700344640921954989414630415082732754346586332312720756372301528477378011082578467228548202684786021692969728083290702075140461721921308507131283808909615718074883833235530097557159495359033694265793171339366040083059054838171030496090006342644466828600177378347743836372976854139365983300170801185602901980470759901924389065434405541302471546912473261539105352252865776851516552828730884182046028280765609849656565431499154480690512997926948774196670787529414358924217788345729055209451624651584278763475720723601814848024035096187147667554117891705043286579039246750254893193714136921405828539709105952709610430314227959278554726404848198048262189113688152749499328997523379110894698632678275549025330484957669791909359335394918414564928511950614956376129939820940562642650185048941016242596230798519037435431506147440678877286981976411587592292093661384828049761847161957780799658225077762140507827905853786466894760936426311574277742111051288759084797133172132968334829856350582638759851400709331650702433315969398964150309402454802591576283754233783401058571464329411098842949483045164605292550125399987723894968911894831145952613315960290137824057194905852448513432320156425517699570132896735751985947121563995883906311251836086019490134061942091100254782230439425718088408092607122727337397159243639341484041768464277286439007324222699860343919636748847037297657478897997752987311453759253602795894781203211728040192675753733155401240521036057818719002416169339370661507097070752649444130303483669644376121107230706600237522502377899468298928414377083540576422629093969835575540177823473384977336446402045335024888058020923605908019284354172277614837616641840700089288222090909499549613863473527950015474585851708811747588280442982327237362301387941346080604406163251799259740195547756031493541081073615737513662925305869008106118662421259818415377665443617439902162899316856305879592495800352104693800547773761910007082031490927439373333065070054795735734588058590566362828895721862929275324885640536305850731235421929193095958440361862972862429461153583856017629391158687979468675979203405133174291948478424224268455888806408546652007428221330449441385082577135049171672579858824610403003919857099220550158753736769768141740057137077005640342015218763391609137722998982352318381028088716418031721134188029457116752391493326728760520797911451055543371818343373426307571848633159520549461056249949488616520157198913800208582725139961272945028814818241721767469768457870101239254927775434080427596949621086022180609639533606619879754043374319468368019749659359648399105025463571940199072254670925094034813918265139632660023436028560288149915337493128387259285780840692470974953147646878914648845209176793464430244076844613949758973314604527205657608728527403192211840581745678271098674682636843277484853620202496447976503390243530691526515500101264711439739426073035464278684241704734829815607770465548440784510382606522984194292822853905818933109891154029318387023752991090234528383577577943227493762009201180122479508568091542152957056444478588929261960799543226067041084094227329762994409579581318473623584456963492094456784125116099198379120679367749761956340174773540935075650011635663310726036342154803570123193538290972287815800139155455218387134166816265434736818105673667436059177473323866011921055359425200937736536445134581897007691916887491642638439322582201488008753286473742472683924111800273220008760069669341907537959784977144198561370445922941181227577768219043639463123745273201936155452949728784564376822254407962731197879619668043659678486378967211421546403497951417045625676796054614571116130148156797093436375824917843115570916920487407041471683694089982801241353477316200446232757133997930767663614674888429123518632915855013347210215746470891062974238708535909726594410539998157789837950605717098291864172989515702423746123382216549108487341905607735828869505015176572362537952783965543194765130165850710208953710147505097085072052084914194665431952131289379810663871787562998634712706425316454256855797075891737296613739100570886791844506156340379187127120252726610424000396016115453293521860738554109172456493431752583580534369062698507949049874327924348413696011018308589995042546636253078524733063241863667835647642395231173860204771884237020837429873216822700248045116694271001717520303974166274934161504185339814781582027934588500818059393382661421549876713606200693110392473430295742619937071202437104127654193882651650891038239865274085333721436714596583479716148528675833046493349929388376980284260775890908125606480349023458381164488638265548562053933918015947865779769347751077900984413971649756705519904200351073473613565884885810655570599133081428550345690670641272633863598677645052004741100842371925918429971705024643863464549133431281106507528511820200738856395672888155162577799774816812763661086111594876841271326366829096080518936764762633552572194608521762004330810492025221001383775277438341794747117067018019179479851699601403713412605959817783803296111418344661488120597182606973652910040607662729353266825218008287305974689111962735780939614565967039505589820178053602311062691579191256894825272939663859259744312623044910958586950187052828069957885236328646809619147244215769482297787169665953216805238227422199132701575988947713079219169688446486320768673574182801857192964505043458403412326487396212828231744319844274463360290865341213275142031515915137392884683769014222654587511343485064101160391387229098899294204501751508773267205410666576462084898944311312795310077677160322947297504753933804095165231446327924328384980270439232603728436868036231565696407671348284842889652853826060749413450706718428106722608870613095880629874052708933155657526573385157579511478712974732631124241879192290943115709502468060425035496871144911089104489030387228290199003615745852980319300479106564308122458753402724106004472234084168116047928955452640179964456352513420697318031745564947032357234958048492370050453609335662001646332834633051633501162785211486029085358327309539873717901341394747149710876976768605999311050983498245866164644060866563425303729241926864315658967137432607421350636296847387231395036918393686213393835947412869391655021576310810046780505737934318230318841893016457115820406350125030641940113898580718420369564278823404283669734100802488816844486893158215972344291037162457547567645755154646045440049676808328270352154260527794127646663228373510805933998552308872601797279822242507390670459359283958021725768551241720364921764017201497842169459488873654204074357748435213742300070242958469610166016567736804627714605699807041263539065766029328829664949671238025726479340834510090970587505348809128207220202570850348029217686191910473756086747133144499084812056613670485412087984981339548487189958763989928851974290202604828138957554928578083371862287466236512986986746204572771345472474644686563518047577293280525779272405073579682839592714583074123101692773682357826493105948789147178281908319269616387791732083690737208255651170407358971463321869357414998183668751837824840327381576435347600130789074973090652582453231737306371754779398336947731074859897086292717473175192441257154068951597766643751205112974257777925257290323842983569159441977189718310047046121946438404156360137181766257634463130843792776388016940714720965916601286646378640631522558185731491857154009469173754294969778544266863057499528787441007494003193170612299809292916837809485165637019607450900734766704601108337849803275775863529522448410188788202583550621457366017826912932182633176259055714929528790198148462988341886320707191250890727902067906780999819123910126537716620553431310516881795152943510342539973862841244910451762842372395722052399287246763707256435826523326044665749898066529682213396694760469987250129500680823539914740141423804944322386527076133212906235362854293667126214983010197423957822679260977076693565632854275861861949450954345264818606613432583412889120890637226663508678513331507195885763110777020188603557199837404689028371919839933880117180937827279858261067111919316937608448834742244528120751586062854536584730359207570686441206039114890545352786497323289046103212282137837561905193023364410476287214673264314996691292871308055475923612868594945214710473453349470650053734749436826810068195784466898802308378924513587382793118246617402780824530154970459867385101648665836112972501742051491767599768816352843493680403665696353465416775306952272234551162801060174135944590144232477919846905814810787593257589547803825386047693506120883219532735238797974114324176357366864551188213319648852401850188704740162615943992424071175140158022551599986891159450297514819323477239548359990509974280857870637984868669182219486049098556697242026872818367865352358951362837827862972249309314130960170443711963509489142696180319000968049282256293882102682260423415855693974387255125290226485143862845995513122847769003308221233820987474691897908711169430159645876345456654692685542198231158961502828941099756969161496420453177969657093284919611703664721700843577339411890764025202060049406386956506650370656011402808208727710885600366431441491958668533835893489021213415391789576912704500137253332331391942000452947769261918467353994176836442031159491811617855621588642348993164202854569467862830855007473748890474092411150146407436578080487847831017902661521251182426821621899921684892924219236796108989452993141484038925626887359389553006651836510075421347181763892701089907305431100865604296018368729553934530302303547756203612972134560287734492557972920196798941708495479441624055302836079214932778772788658280631178718307815327618400866950874988015092299415700254072423101932789610199302986802894629293202453812565745075286033132213438325074045823889158623236069945823512614619676067099810435200727409005646838650790483355039569098768952430657403539230737808179216209990712530400692344484416268945609238659938200235525016440886181638707448873140322211630520556499972840181529863234404684791132256470765875390233772434529486048463976187620645397102426443971689447546554966174081797940972415214546600392969725698902656650415117437788158290447962522700603155938497235610987460204492426875324988175748709201459242182460912485985900448520038088340906396232763750915765950459186185498735472048664219925607119517719631117634216221840371219746117128712939697907336354836514797307808705344514956899246121480380148125763048467947032458378656040860221016653326914433088012132905771713033354686747405084186898019630868419224502645594353665171826953543426980811206057896319360737119297972151746416745039480046913823489382707652840252745365704837836355776478489628439072724485399551975743583434220224094530475761427405550660541802126234964472132650989311652090304214310719193329683156460078344362838105071227700302538415335045486697878782449492490888182223992686792464266970282184408665407060058279378191129568376891466774428916788303504039882000263196030168522059494843133049076482173260651617779369879443178888617057569842406506366527728094416782132662516662986511457374104594756777763028612769745271987852908977155856958673309015710858307321488516568088582739632584477753644270274393234073588961480597095916173036645770010982571121729387131046011910077052008578499832154784267577706715969335028508796119590829328337296217082507460391825593756907383423872813502681637605127311245687625478773620824146303528373651526105573194065362220374446249506674610301108846248577048726121161316753189301938812173956252139858160256026471073369366757075485994131114734975524483882512328599732082498606435271023090010024056750958681212605271105131607677689179960099953249506758010598743883661922653413875414144522033029374429140486412788342333754013097334025556749526813177470918315093963475272526451765950032306348231614800252113571941740428518369520553791702768013070111344706014404662977542767730645929539778321687081456047429067096443254092153463392236475513066847574984577800206542003123694163495267849200532941408978384758229878868021249241051856573428290740230609661191464916880907230639238509352997197269803653940760302710624470033462864020966298257107792205469894887655442666344573281818440956696676783222016970069628832319082744883702959295776783375122148583731419961252883762961650175653553357176703882844430601394816144879411189227700960814275771463881702942420845901727245685981239769430163110605179628251673310856464582017672651839612404087049088908410603280379562925403490986009949384801101984895649826679205413257985804413488202683291240691289200934873136811303194631467454496643509083015547793218557483651300033031613887921980782298573450089043602092018930331857641361815010866600787607447841379178343156002638469349042456738923176761014075658657806948245274809830022937328632526379348962669657380628662900505968124419180087451058948114748989052719420482642108001829894131463698946544710717513413246683822199799106109734493980166143321523327479635188227833028875082414956772286770022452406774676615071573381126593338113156325259335673919595880816836267895559825469941016200327742935640480492847613974502996379194020586112254762965230549254053889154034198705933791396712493677093325024501321564130204433376730609495485942321545834753106530433349770913142851207970427974193304914579506301294859905907922652408769223109879976705910359089683982441576415775534087661955403262505541899802016845418851199260590332495913403926866704263039644448076015726972809404817142498566111873732583557938782952850466955061523309628214362113557046951146321144046207361132722251510182414889597134498889759346809724335244486650974017781323851089345687587391304547014583643042993568495197709044556766310904227880526527347699343805221327530935105180265110544963263877337282478079560259849210176145262859908966848238835838177115924641843340966789551403375642602628766374122146347607808362035719165777538877950135937875230255978606131652087706342514435270619733909901965519012971434313547111978411046582769278993964957805807915513578622704697944885925920306845698246268848766457739776181812784281510866136829450596782606719838471523681738325069162632286943665040081268350690451233040428973524319076173051781508372566479776155528387658798520442379495371512567922585807815432924805847420861245388656091079579514563807003156024667052753877784258380332966468967694315504882463953267772764334972649447956266644810328127407005138340559799551872816849809750732871961355437009203216096992371730766022613113888649800794283601017646346241070772516664189259739836408282395342671624761385923020524669541536580653678912375149608699694165481847486728665550136668046129741951042700086653671459085783974818731192670024595590190388168831946916714665435111086163328200798372124423623412942832899658994565074937682350403790420599897420468894072564280491005201493526863698637869345277372692533307724783529432552746900103224366220190908179383674166819605836958642854129398736858517076721267588340118342287613744785903457740428260884090937613809797472149506880158418088835709187955543186484177252390872225677611742736221002870994471287943363595358552100516721310292768044969597555872795152780163348108190299436410777164633289139179871454346091742403808943433378491435677144204983071406036723711766141782694858074881186404102859451749952506308988033449619957008283625337261927165598974900239469980738632274757274791852511214398310720377369769024892815028595143634387718331593996672421166558752257435911174097231541015060818863206147085729803590425650526621756447898618990801076957687815839258262508266031992046918091381123833679738185143244401679948488659654154651766243216077988507142257707740329000801555088856853460217488420555677557276290778896040892093267573993246175305943997230835201928515380418700130471808801064096042604310734074994658823651092777734096124890962295589226498984688524208592821995385712523456913522399365672361171582612912585493393283322489272803626568209138075675609872991750542865391189609249383581681599015869533083374937783466433775273978267316975260067242503192976917430667737940702179585576055346410308339393842426555876179513053732651845361743796171631399940775785315543610135239760492678082414383118217085422818501275655991276578034250340040501748401816315147323012519532768682552495890197379560467123804024566633751365620571000884295350197268315665609614292740451020167353376115910383287002116643136862364325928427580996480873284295720937810056172697261640398329399369755054144415357001306317746938019470428755438887740321598911486564176880863576729448641510544019780963770401124721698625474680440186204120695857303726225474370677980457732362531677022292566013295033960967674258813785868683735798020304286312619653705218579542720008551643573521622350510815421505778197440282750115254517021801413024712832939107575420131443229516266724040311962139584064454837598779555443780823499900759379335468020286963447761557382221707264551113144711607193682070388567283944042855246638083484742043511067663724495232258720692522520250851653403842618860414848034433496079464427701957361080799514065075845909563685804480662613267278489535986174113747969731998774105901500134655149270495460276094844650722028154818068013233978360089751850567938240121943835677813009374842440857682021092697262885249697090401630174763530759687147286142486044652244938344395523106329399979511212873116103196612159633661286498552067174730777315053545545727064684100488562342202821821551411724482878749350270680748161451629820575939007242562194130027720409768761831232317767274338128568467941017802450259224411423753684868641734823445579992109521395501627768017334152491166138827079623790484514080698190924202600532293963637902363427541441199429016903585730762919851865789439356969681571840757340355678746860556448002442042884055960498878671610280572502677871483124905024497296726942226655502222841013984716679296072498765129630127254326171517736472031793035216420026064369419765054639333070231845573978853474339989795816484874506540010621044165279983622809019945833860312927986999105289428068966881327015649747400717252069124429909768784639094353511938005905241106144232015984693051767355675906031296899536047483461100130533112056933002541754787399344218389906349224047826424199575170267923946228134216472459986174161862394816936592732569584127905583917736150015513538377939986743583950051022383789465343958327318748385278239753342099746618509161695094149958722826531357179639721305659308397341167653736147290606536041821705033718569828128664551327219498169945429711707705857903144358144121794934713357690228801938845807195240272118254856541027739995537181475408883428912786249117034111003184755787511818053540713102846036923880035387252317047973958706603481513376418269482247033388296048834295222448201398500816337936969075286746567723532317724141406692275043278380985444913999714831358519679270969180775047793134382178047784664790359422911259536276910713963396747560300147013469759542567120646713030439617671972403108228169097790488240438519907165295331187513753569648873205525535521429285084014373282143754438354028193251120894608921986942700048934478543571713412257529684947983420464681004091038785751908504750930699622451062853726102809900941893502088627757089349340044748047520378351320846591605801097874174928802261617364272077530605079958355329117355038567191233412905616134634932727083590277043011655086412764886723535781045954648490149277599578209833973147553967961859777680493491426785003882547426996040976904391368574241608232911068529698453920160745495571932543210268921658068484608047443707031919376359138907402201591567890008002895260944916528259460491844122254467821112237064093797988405746790176557567613118533986354501285367942563855352598203129206652342916480249799229748076177760340278373447320109229456672351336115505873630587694018926043729225089607577425259330469301298649828837666882779498648793578498826133659680836054342453216284694031384576262235885440785673846111637325372014768204478006556327246551954688220077321169363853877630310745624772919304451898840720217013457835089039727954905877551753720562994922111420111699025582511283084383414793071550818707615606251627776663399148191891933472713345509712720511592034526847025068630173115102104005841480055321526164739482296000110409597918368256474749171966397672923207178755619673605640907847025196606173697515442222229094826386024361455295782206868066813676056569921418431059204923786987129103384251487005439471015926991990684466525695244979934891217125583388634623685216321219574668938456762615092905942569694701576341336553418906081031514209845136506202506706477327325331228593752457576312292943463657076806203088140036236479415572057294299532837229822026899498585705426565370625603925379003815112897345442203409180066318026230625639006576899255086407100047827840051595877611279934106879751608951084864800491702549211238100166944212566598374362958882605111263286327769903904691395806021854196682136382573640530789325005533972428846755058576922496353095134092402916696871465361514504713829101106637227958648313450151573253063089389670949430314463245341574800960799787425662285294715374679179793817718350877321088300898249121528542031440956503145840882568121393525995656358032340907832828497370230297254239909835825658540589968118318313253272851295275697003025311213679196521004575216621449923849889505316084395061536970856189275391580424729292829016526506687195075927295501912393990475300647442458858007084567365603123691021580441898965271308643940104158615494638208743939357894383945124586820556064587400105587045966985020177424048109012315886451446912996882717561777644950656856045048932319317414313916451060222910338847027419736951491352769451225865083857504728991089391898321159076354907173230541522690374235638864180628067926116310307498826334129656343167569702566053831101409746980790656535915550862062918519150542800343431855286424997019168834342295294321437820233594660183213992592619194556393499121675859861413760034479723426051729182033551846355609254009884732799446353621772522540467492722848237713850807555620848174513824883855689045998438679957073028776802810855495924815804803703283572006852382678690364885624932437674538855145710377282791250239442453920344022805447224353194649316401296746019087093625405749605315422398954049981794654345110899642843245653637172746000395563751719736949048062434736995834668397355077490125978618064179130818536077188559952427278699247173833309240754839824194447122522671808572512666413271826922579599311694437566474400193660310707574465559679042679832402437091699792988237333457564101234872809899305509318277554553656616420739862919632120293471092414243717970518674432342504943128304362943226004895649773427732466925488924315488362315930386430250819504268526658520822421232158166397263652939371054361916094255682697444439912766218999397396208741916741511773759658718363997200947063041502378043845018114818566921361149918424700668871754344839962288112087134927690771776726326235442698853073057381503758812843624889382981338130498048879155236155106122708919722635711186902083043088581421257309874838027015719435055999447808623884936153636149259449825420875868992879303764051162660841194004879082579547234030101291377622878042632121277085460819692082090286447868392021017188910680708980160845240735647443738739092704969554703957497307595752263869154152553455574721898844684622591407411131595134460502182374756700182229515961119259655634841789110196199013093868547626760564146901139556534044282962457768534419941361287689834796271363856284068448903698537990610544499851660807796712292064015863093495532542860484791816415685961045019630083648748082151342188594794493278315767858349908302279760255117065168238290150123655922522172627612281945535361092186640277054803159852462182146336227003441327445619773826142490914076979440553111470113895456586958189815641606223594341217389882662623991693121511626956184513854773457531208102562336730840296165302407957397112244708220064013223595212608830675717596123989282227542861597072889623150880993208885467073208981040789704649696421981937809594220532940717672234166082276498640939722369091656879768011007189796599997201716718884088460306877923811911186051991928720257710143217625631198207503982054643921311193664935081932719279262151596735184544280712209873009883235693700168195526886339684282413561972670578630063912734179896141707260008804548399205132994346237592406835952662065108039005354779122257436601692792447256005360413431527524467937686621475698387409339817304651800278998081810481632557644858955990897085445257783812706330632435453590235685451352703994261319938279166973775880729407393182437021417833328925676898671185632268701372003053998510062381901976773252116369566463187393031407943471473436499749293246898320394701381514110758085138854008905580341794142802159730982255850814091984853234248466352913458365678221555312343062430335717911171468362699025960323554393730054014266483405201728659210357540237027288938326818235510619884493998100551895520758803889496781651517021786832830155042188888852941925286747079481303356242300988830698235142666085694443877924172809648497022443209109755202980583417603660141783088973449398798689445220121641338708912665623104678436932061679802709643489052371274949533457725974488525710879061194403133830139526726589782330835394825731459305022654664205797631704724892495559716457214195572456959202630458535173845887266629366319081287543960644393168716151129353249788162182385301958003469040633977216817288343561060028346832967530553591185935883581683457298188133691807364418288390430167806239689834287071058829993752790915455636837879023352962402082304240585410336837218687446087290025273505450542128175359837832751745445646732928131967751972488267286012445693357752598882194948408161605887852256432027314729943656347244426616533637177229999797440495378096065446095163868743450435946262018923138198658059715474540711826643245583125263594866663966291940734503097277228163868011786088709930247343396064889479543774117268377646822823891843583997717048106146559457750132379304315004729580173822819339588790678572665243589378176674477917499596646352328083255474740490569332687602141435960301063671700283014814948936115948322572603215233188868178501926300273589961268718651599630586572831743543919559424104141781664002092947917285355032581196227231668090855472450310373282046210197916732375871945543042779532675755853269110692535910437957866525479783405136357542601939325899456194842987225543869009394900083815693210064859429778412371318060510641558420415589002021381614500102619292416772211132615683654884410634897580929304438685421151495022865027522005656271512720810660848720182185923069684781642186141164203294478184283373719133991469396113093847043010569547588146698992770896886350744123384244708033777992655184477354750322066013423316184628326162742551587619935398826422740526034015749412655116131762436128695457746789296540117254734158926843650012407123777290355034968740338817199331227416837372384384105196400286116393694099961146071945114478157421059085657181950941209885988391611164463777450306389503214254733273950081360747714384040469347430151544856196046794107465122074702486957234749852746720947935310412691887490962961412221018456998158084810349393100054068075403332958878976718849068389898857410203645279805546795622966633731069756654547541165981946726561460053326627329207087475096492877673124584166025678698628809672268819162000836066965286173496400844661206960380270777070026062645203126896311399736457953382844574826894014090914299406454477026240933010086473652539076939094246531065601440518130868345600944474883660771789418204428495568740244041888609133565695092389508016167724669016162400467748869517881565872900821953688282158499713434273556592822616111724951753697088925396285359935298480063730994161412850965272402644319256383112563037969117696326541885667439943048462072817389351089824479236924692296878283927749291249114016367459618852071352649484193181587218226566249305466345684066934914111422796138042628954969580711690035698122821161992950331089424032227873833136551110678415921394457475912947094489859257485671579116831104121863886214283424448041758909770953204384259769369492400178868847557146460048136064543791571412920882418993543627660582851303486078861431931045361653638644144208583730506501746429623697571165377551774466899549536102913506116051107961906071835048102663327346484358623047449748316989083793151589299823455190047518900838036772545753366892541388061208529013803115783752063563993086076618486204930063404176924920050789725139424103131844154208127756172134931291643556067031433381759078851569035330256795052094152673307612213582771932440376688128644980606320128277319707207988877695850785424996059386681020798109447863217446906936593065017445635365394184103016419329404625039060951454140939613940901108804183892875440915388337821685846440022117179359964987060420897687053137383225957431127604694351031245750282288769767792227053022722406781668096544910857258088498031392212136221157534634309211390166620168076001822001616965135799840863187691406399742132754654132261249788000919890406583350457047842317467017035460731806021599825488561774419233321603949328533823549254716015035494918779931955933262298795502418719742850991198752088824324245442480488553256158026373291698841139348146091652955579913986945795907041760958685657214823650601274114284258627467074415988812389723569021335649923593305985873967720721331841977309613820602491032464139519399826865753229415788666794606513332624819788566070353219728825399740204407583199534605722008753620112430917118289421652868775043179792583303562035346326929143711986782448269540335701755366800061950596940708606410589549330926572041342035388066754033188005064803293559202967468789803703106875535957057717550778428172992342397813639327335475446500102267800204252948442458317954005080413634923065150995677741997585277806086077048319472469137485277814527217311494236089821884084686319060661492605519672784886247657775287298722218759193520918371454544491782117189257284367128853364432631969926077649396923656939142615611005316058714852709067745980372798955532126893507006357799863758029570419018394108494164027337653541347821156692733571768354126984439979615244518661879425775323809700590072915880774115654301780906431733859743996675109471819311714091977815888580019024057260311020690851790334473844162817440809273624839844297336130527282722512688522694153607827570599490105315699496399984874482478842810890867194423673410199443038939854512768587182168568117077236003618791702229349831225345761220535971587644400994800901432348807131895367551220760830620359209844641481734657925176181783719669405555450175707662422293387978144681237059531389964353296051741382265964533544431317422157763999179089826669886487558261757462465264689435221347080236072197114511505345281249959686727879476279252838059365221181414519000655268307901021381390936876333745392652462745338107563803893743116427428968836768488192791480048684031908487912547224557329870247979625279454785302629588903979533135656681411303437102011795498268067152349361929887969825252517427004658847738243717054156900684188714237904210343812429893524893761985685936448608348225514027045250570857228480247590588623238946740999640536678383674005733142940599416035264322353868239576188766402399425472476807525645604722578733606713191034669536982319326605077260661874360137951303735972714152673503000231088770147141021996630018326068610929898623667317590105807757165069520765087446818406453796206105932891795047236820240221940653047329638948636409063429889151476893681923985739686955582863161072163134507086175928363949001749367503665567917412804889187381143498486448921408344431141058450767673201768252681405946626962518831019746501432327334452784328402236468968298253796863442813668556415811061664823611720151992100044777007214716231075642281593202823766142895544244208076841790352434156106602531417431428547356009529633674402211795802222012504985979597885351165687132908444968671994751276804271025879077326227961582516318917987259213917732406515108537254851662728923560518741109128647629452708407757233250228350975372912909651195989139104055953306089236997658689123756227956174998404154258536065341862272918482925075066917597263791468729740800165349888985742535428267076715524820175596504809236152932245325367442553430078639322987241921622398085615188687771760987449159328946460041535151783078883099891557185189053179469884342015757597236066535820810672840176614656234336980306575542115218890432633707033511187444360427075002732338431829487833643943705800270808692962430421029896333298491948723801155087414822436159285979230090076995988229467667161680507747575253596033919453922797653861481985693682502284594844770336449043561398364201008476818487717531005552291086533538763684251522208407299658609933027976333728334209185502737321252697685761583143171012567370717544838058429067173177003169986395015978846513585407261928546520401203823510957589600907929805220997380981295303103402379668212569058552467166622197834978898712421052054569364679003858515546791681646189141290166151190521531901973260749560534494358110675987838114191278101651790795035630380593811654240275682187356710618279683279826747804666941440818853955690288404497043125044597961505351137758817296074557277992562363281607585502206843895943697341101196343928237262387378248297327383025054417774111398095402628214891905352387974913116433036725698348928189826515553560815365926513209218387753588128918039241062571907945236267786524127080709555031009718933181977996780332358907806113220348577186017645056805991335734125302475779045606282388284871670835147673729048882204976659152160872079697545503649329455024317810987768784065548580506268058208601663466141002996574542532613840521863713444299554929403454611017757234383786194189798480516522524805902258179060142619705268527497584476511627604960908436961442944083556401129111916277697198905900918895993545613450032606449847819719384955108443544053760234290004882025859853836012841694345216879087682380532549843329829442973177571467249127336883404582035112862664132607631635049384964651186574481057727425995342366800885625131002850737060316762679678921815570953260893449844695550240068536503947385738387947017644837506435559543064767584681707172599543001919769413711250640402524854783909887695563221135287223844933699452312524169345356982153646874858649443059289019647067732671066315619819900421134713497688907576871869135915779655005858605712976746726259845769604030318566928193652088017405979796571376396493141677307474892130494635564340988868831324521848065754156464168289196327243399783306689429851984458025372855072115455646889435711963377649806464138827569820954070501573988225948049541242828456055262914911588782769612719919495468307101954510136030049463737535927603295512231025894402218485678615802186179930940070045857501697335022200129385221113775436417813467155104358208467372814179993194491075667084085757973897216356325574582499592212876529857861950297955263735490934936253734749427960418681273863920422609118932385437530251116113941530287920479627091664398041169995931701961945159750888910806811608211525209052175343694786886977110137677460999642166912724006745078898882470134337030937014389268108214947369546114805454680808058648839579961097208226900090431016010603790913830956601980652417288947558403488762489826808265452055672021977785559454159451763156959063073269476983221699131136387738450235741813278287609264061697510127351911298570904493204554901686859237860678832274549325545107585023482631131706336455774488523147498097506223602423716281535966737286031222453352277409105753238015984613633007038884634150222827711433313663395158057312883799348841782613261548076223935507917450704234456615753461888640803310733189886210111541151409230336291662303792613897728233199981382421879701975086211403996701488774353480105018752173451185675189652545636448372212733433059268397687913479964552953709832150573983421955916090805088132760642980488480680729954045474312640585702254685938802471587232044114558213582491687938481977255294976191654891291414671906694230340827506403137207275575699017575493138477541021866002427793624875802777512941128330590919927889038251709727260021258491287717841415034169788686089922181070218264883559250279503012247524786443721593880166949192196430519942579615547612298176101414183168974761824300636681008930471712058627879368040240225104075552867183585415763526827537023810519662359370276320257560982427938018589636576660075151665338417920709776341851368143754349061507377645960604074955134927119226193488911793082565039758569039152143542144477152274127166934415770701180188796241858403965650078856180848921256111800382136125116771236200370847986976697905263057053422330302431768843058697124187566002452656957708673999585113145748053313223816122962005934407382792795525635737096651155032836929338307062375073824064613237438022816138768295364121825054023755147881933257297871938457000739989610286313111758967708143591919893234164615924278928799922277895286772512205482289697498192367140117019467836948202137100990431650605513268370774593755714638858899817677231191828715646904429001123314151300160768978221131047235304006737578715328736814634499304853352392970019916365548671791747042647056702833299755936500004878936451836562234984703131314547034047011106101969708286113280756213379596142819570779396551473133100195413203710831206274677992618996104023384167048595078900946701617122608363479090645082802633805668371365696624380193102918529066798812815701442119829600410384092577356825281866477268404331192416120804872353388886576089691504522049374826420076611275385010012027070575102551970061842000557638188603180629713513207771918667636044015540729602660214755542011640111543255655015875619871244210543030275666997388064659422111900861813722128768856418620009133308908677686922500803701326528150344297418772066319527526824824729394891182368641662769907105659499973571987358387741594913561769101052275960502887751944712683872105094089536345596970584716887194592050137223377207042525656884568924561376542178051060385757132748058889894019574603654756673450484914401253603908193686376483275611374452171875905504724480528254440935152326035364346425116534522835417552630799723455819104974377101308296890421477313750914772894419331289286714109753072520326854847197272222940203772691526929595765768462427324938354481118765856573516339526340288640031451725935427139967653224101877355846876362208853633968094944126126827009277922881095414272102244229848600689211800350652642614556888253100184138439456515824758700614316797111674772305792870874495817219040469640737824735367889525247628150259403679565347236628279215457986245655434838327092930568116896642169480157911162361697339407157631233048779270219285128770650848501864532214218979858489871646363780644449046940599213247887840238496378839480556061160236703234820332749047175053196935865436850855591616705748761069160067628359011830563854502523041671378839304561207668787161288514544372614678788671165640284788042778333693602129796382624203153524256071375599876352753077719410397847071861042812066368421148464667540550273772243848226277956403925183387333477448886474292193498213862101895837376777684991293394435832968198745689050076100002749926200222606854081603100667214953096165077436080986887767932119184568437314075280992068300127097677722320276478970754472780548182527696622101073647540321821293520812108804620361967266507679149031232171251890037818595743840090530870741711356630744832340403074043361109507809214976097946596611476439470440623422289155601646374093141716898241181939914497046192687866190304328210237913218480998670972622804546569598574812746423883687447532020370821983788502105996333653745473685479841726788318213701400502591960674857382571222239487412371696187498065056829123020260549709247710909074260849952608306871629350967991682267121527344599292362449131284473430635873064769058439078392148060425701154368314134823797631125438785805850633447386583049727304815663139032714904346936640554546889509263629871382155688659206325087602376700858094763348709388595738741919431069426613654398570647761670846144943184344628890563609383371434072340751488963032839468074043048637281660579824068636334158085983103883749829722886191230363620450867499594585847289459431511236144758676146968849938213722780430253510398133511475294968022697597087892766312087007178232093210559597462327330730704242324855476771407976354675375427888192225709777243288917043940569630383258419488142471826062527578157860411148860113096432842034239677469618535423756810536419255431438385925630991802406510517204321634452316903430617725627473160577346196981324644450432927456454968105607017459908458464504741187298760182887978243677713463432033661070358117607023351936296735013619061038945147466114266035577534278074923470090464846207388921201528857166405895848487022842438626364280841550305385985978494402488755008095827711778303227964315389143065512882933789649086905569713647177993660537988751054446960244989484631145041478528404086969367753122841253981555030888233660362125511895596806482622977513553669816415722696659981410907390983207560363790660889523918006433294937199565395286395708552813464386193402476397420905910686474102549857140775125978386106608388313261029145400234193733464210587415723376690727127657142312085478649326261257414073741900231418275710161650233110934198479945349945370014547635589684836180588512951867876465057631623015115080704157933947334204081569172383070440953529472107584988542661793457723716589980543510387601448833655240688931737993150891315097509902846264255088333343906497412475454753825240061939719545415234951742322303524592922179052865431197114353039112284761018178592685626188338796570181163836558955488620377359837221546543899006709672772618165943289552286458417996617048534176065081751959737097793693685757351927124272190139681943824831603193370597479841936718052844702392236149704469112290867046465181956879090617031686764004155701561188654321621558985703876658648766083810199643835195433511803721491592075709788793667509198544529086950970897139875590554879500267673640306204736302883128743162952382214271574172114414626412555425217598077655220511942623973489631528392068376863305107496229600984005750422228794158507563629659424852135704258658116919655551395109785293426018058961026476041753158566476519364657905500923241940972344659208834667537162977754919179999308676109716315815879353167723164906412118610615813946993876723964110115559943905130334271812963887284243692769246912683513024974053029005694079327372738129275365581801783587663425425029989756120899380158201702232011479686914405079661245828172534803466991283251690014934528940525493150591318252633328728976155873155063391325159617865531670136446590963836002823310364392117001990316914527548243470507406870140979121314756377378712355821576631556119026692580466815094305786528593477792775868069730750405567100585881624438833306925417193287696137631863399936320466945437056414199182550705295165821410185809100063933856382133574274060344739066183589649607239449494755192966326666084881416248806467509757140533403807809535329433588716259204139735994981981534762288141744918642025677671124699257614930808451062866062653299239556308124485173278041563504118664831135703255581430098080842290328690286296161626345360408629218474995294313185886117911851896816296166130726383276955208384481894793792521485581321139849254753890906119329929612618172861311885803277000218814602120050995305184880182025008444070626055471695044337149342049740035330769058599508384029103514480775505863089446864359057627364601309146044241987286988991905227715493337228254564767636802992085344538319404940709583912560534638166092017533200410435911590506424953803805540364727890267565225047806500834826479266261883624538493815021248423061225794186210147564959926573664946508761819660905879590319264274530574660283821002365103483057272512324731355931907458423917070115455366003454079619089106003726400340203997948050777390553245804486998643025160373144151603930599090947108571914884129780892071534404497175815173416112118423470732634320130473003092429163862181490079667188166419415000174902105352411021534834750319011574995003878648757564572594580487592371400067910191170448221051575513112640637059088852340478309318753095812882552218287156370979972346002848885270207620065709506407348064248944310834862688064444197195855986843730205748134151291864108924330205197691999904852746797806047813001257935334138149025648816489433296784625315946932029538441380698982053472799824033196765250552258241915070134313177036261038891603331881309432875959125847933516225465615803190863135796379395736650422768857367531562580002832373973821075158902173620921088184587464372885272623381395845211562883562020133726609086426566602300560084972208013570392836855689560570653677665460068123926534053146065970490905174884134143228934549333807781583945578874925204311544497981521940151749172426414194838862179404669287269901331674548636583358928775340061451155813299833938184661845897058679470197176129680648276227378498287588687877861257204420390423667131260033144560657139717205799575084946720075007121292268253307501614143638962452418818309780647236600171743019276108385667119996609945517173784856593601188995367096649909899790063347305597242963380683513431804383633531562657594740443172281049366964989060991303115668074081924046730382385317318171564463672988536634079240208045882183473431806711657450772550475233971724981028912532958809029461609062409735976403223801670586983936054811956308573810874522016983807687932743204135827133034513269291590942182759044502737891618013334280562155058798400348344330582921451526986174267427494664567496318521126041533466674716643216000517936134339641187404160569880205590154620136156435394534754481104100178686205575198757397424849316874035318363097420951840348577434401696117762807198287056629691345759157058465299194953007566419768514342003083307885891675534178417861269050850108306138863625297835860724671851828699270221713525216267923667705276981951856179090721016087906121357262101024855173442668560875874026578347765187201605682570591216421729974611645110797012267742602282597662094577373293560268297359866790804729063652082368367182633854855203553307180863551073514113075615062607860908812398749792991324025587311403454634561185551527001933992161562757109997930442464986725148056235521481800563276147237037417184864806874226674459448288673098894491702765433321235587825972047681507889931120708465489303460244381611111906184865099458558472952460280378006013514859884146545737001749578974423253620392160275342255633330710796124745488709385181470420963229495466450049512156867282667791844491819061373548403556203587992901931555140501222387909480658167011609743756548404891327207362139412398431521681681024956292205170501749006220505251886123923869128350137429418659901410791383020707972636091532882679084946970623844918569682893442940891086666135044098819022825878662396732433670969126734020151155704277600731974942379091128869446885888970050381036227777213921481906433523025493410407448428257077100319266201150891820030617145376381027488977953924855699392255549253993270896180988969755383920511842142610488000154535274488849066613870429123671158340763393250499740008626376969706315320629368261137542998299392995825651924391848924536112639415046905840488487450941284099777130188077547898427275729586865008253308215941578272066436595905799009152032111510740068803217502297106949387207913286111764258073172983018904374100205043620515212510515490581374930060696001572627543301649529098042804785031579456755845768779120333429668503500387774145520785343461147930512043312354054961754985368420008848939959770504778593127569284225591578574106795648447818237971529519515073748281495056945158940274069708440360304911512892348871570826477123684405250596678659919618614308204811579152935192545042441289755956956300839013974118446178837991904663676960367337959497754706018706215993345911004789317015933551043237946866489051503227948527693955445684429991152615225121270821467521108527315099604958970766974701376602299467735090731311371439004679004202917373360205470152792318833327329688728127886167663603217343607733041132389280816534762749966489264889408663148230338767682487599230924410763598662815421628151296955214955258664606567730966606649926299086366223245949793808719212465408531616680806256226079154246827406338634282382580456624967056646572938454166069330365795803013019734410556442660269425884718824753900268194834054121381912702337907102783760568014092100763918475154623052145134008916860462992115481205424863986972249870086004515479529060030686785908942620366320590208201973616917923993084419508938770158146317652340262966523952484631974971069519014892671575462966935847788656353285039250968196267795016874206858191996449041513923744399525881656413146974290917597105010851904354834918167596731107741941294484905567298545633265480887767722566164752931067077270385263810675185799758030004683679274050317928256685496089956786693603615443822516889232175834697211472672081930558474695584882110038846358102227660473915444127455359903945043625095308273881924078260979432049819191338647758229336382134886086789067703913107954332558182011158422167693462463971478354853646369782259479307639461003200390509535463815153743698445552178489567031834972155200903580148396869151448778461605164739869719714859360211380685931013017156009730353756348986027493760279464608692641407163892715857958202991312142486787821369520781521117016250541861333748235412643195640579058808197108817811897177314164463449202054444355755349020169207954847535128765697383832063072709761095645370867275057400350474449403906300004019692849101177711083599529264498238628824359472496693422320841608857318150123899654307288978361823972864802598397994505596818035888746379401246415272874960528643998220309891050976975502191637240909420784796602884703556905279001524364724153668282107716033513333952202444678976243693297967523517122630309981671555587606661088118933971349518049397440234205179060079390618205961130582345920131414372675443024564683545110591223233660765664464739314851394911103904500464264468715513613829220550134995948272749375333019029129065433180351795641773900123192535809408322104045241205919044798406774169259293267036968111382629335923715269415468592279983315712215032854814134180393068262730642805819611655817067936454550962866752210316330089946124612410283648772630332782065473831771233809437894002197725631207202329339252566423042222554919963042522569495602628983220911156417469327560011671174270727908892791992245807053783705271460141727304065374823877698652868655951984255662623555270234915616560019051728512751460768418439748207205824497141260738916631933510896661414288107473377792321345351668536837595108660180363847874132023307477736101095081885990191290200502151557588449258081646309801534550452539823322993648712734144530896174461937937184366751096696825566305771384299042060772930469883935633637064738542668228460688629376692553073582549056346614868597284462085039064974657741870564632758776542187392994274470442781355824178494827192679172052238504231918165986441683012546700037973774477342922643882318397506868014851338792364051993634949598073210073562089708826778436937983740073339390649595419835496035969090753841279376283374885377168288664985067961093077496949080805193968422715003361524502827585808782851474888886151841004464223118835052242592689409976359336885927007950421638363430989748338365817417511393868460620400221021511295398063402625306969560132882226323344774916591451274960180667342534278007845001605577191465311904564448103744751354234276845210096502415240896233034121072667347963130430531274801135697315191736690863118941089006514994876847280780983448488597662506504470647649849144453491758016985476156643030722597450890861117476276348143977194352611421381636828316805496479101966719815653924370072527756723066690261496381613639000682903782298646484786475576119731893436715204489114049104042656735935363331797587086345710884591491602698736951621578335558745188204629377581677680451396800994755669796558442033753693093068727478469944161745763705891076224358169632216806213322575948345339828211156085240113379477470656988055036452983531045218641987392309873304518184904880842567143472740206486845403544386895647800929705094996292939002101502819727966899412362166376422650040368791300885577705554337346686998981245776764294707433435407962264915892342864415408594331657230705870914286507671457733926836191942998877777662918219749706913225949690847363878708779668735196532385925021395851637995744724830081881671431974655066952977485900582682606299538704282229042381819119687120596654645295088247903300165017669647956166912975523458061365277946616093934173671227689542034117067999446990405321387635302412569908384557805223613339396523467139438349929619925674884898657850611185419645086883288177637156750660475381171930485557009329589640204826551466760916423186502341059494186486340974296950397844748880999640300534100924447653251896096173646625875396515149217405423385829066800689524588225185553227191986146488026358743913605512218308056302343300534138183435086244316848752111848485122091878844848132265849001879948093939827805449430917848627239975426645687089480499713527011930888374886712663275448762856643155000371168984784251651500822617179512069749321735931439050657405919568501595850748495903821599051229669787375080129634470492850964889789608276761159476834124521339232312582423214801352849488571122370315344417403771128528165610697769683343664879322410630093493885910491655312275668179375056420734003153283402725254868491363258125761484358838278656613203821580882374841332677558423473278820672157877875962219369372910519299864703304722540695148712234533797241860324002864224787439751774965389434743215031505894832576303933454625079438681486969387604766604360218480326250267576515417963218013985126691200784595091829153423205634630366624733889787050462223268231711224293719235895145258003859009402324356141206627838916950957111002474308115485960786121612649799861460817754619304472498144521225534509356676636871808644106352338772375442769351377799254096714621704724791168492813669278249797855318596326754546844475595112880341082176374042144272509966359349508450240051155106649611391815855121729494847914978729568967876966706061842992664106561233641999379659751089691627205874780130323965597127850519328608880258954126176033122396493372500630953044520530927685418660238367080562592931006906130390068553602514941633969217758028111511420546982085224199173801258049827523256850147193443845988942208993375985439336259850807299628782812062976635170441492585050229892008844287206117229641954289814312596180153318351579619979806427050087170213637065935941664107022350670811454425593255750125923257806898263098559302560953930244201889409350751783933605824428473093180513592079403860570500069394053336923344013439490476758303720246122203726643050979525806533775958529666813535373787571634680403256964021845905419040881611189175933714787280549681607292710481524613679632248482382174627573875002321097998628865742862639550825304838959714316483713510874285914612373027276417955155013724806439877202007295086999920983935849630988551819787241764199633894904714958163133885056620742369017027375679098815909088037388050946746306849248419647889624699396972101972580247200459128655785454518887026640366502660441082122097270463300542219462268907868598444659496462407140090110946585922856237353418395089562130671939864077658450126350436238006278525000684771879055159167820659965766080764520601359910556508931761949078174336391283847047881030165414288032146110397713463436852924439812976155029963862612079336255561655812238887150814403694408183493216350594795169123462588095858976569881034717334736931845987274421015715278722246381505971332100303262856484132582401329374560128442518606048792128663282963743292954904210106761925414881381538406835730897172401932709660678514162146887760556936608107288936416275177316092829482524640803416740425427188745775090885714556397621765251469055237183675293271214266969997854807518884635092538022073810997197568600578941970953094776365264737113569874760162681295463445345538316578972889521101545677021418312583832490031438127296321767097436765379297915589199999531472542872802397161975237546360140356262046031058605909081995915775548354721076849292222806395704353524775981889859932577210670879058016563506347573856027517363316111070129727481507329338434129060410982010302246806790024952365436395782512868056801725108896603119845376779399417284431652799485597841248846388650166314210271609029538213648480564685361019657935735515811135087593738259281084947697584813653530587444851718617115744405450944906162115994908979679380093544244863571316939734093624384919381778458721787537127079371124361819422632659791774380166893990182184123301974073136658868353344242663346907501557890852478851217490582002199068172572442981789329943994698584212326117675267976092317428703679523012482155272878079630601270437616649543190577603615586825217227093303629350273477615584814733676352306544627408833577170691666043426874462123664604892397548289265566551833204018286577852287825632007723805415174109048368705452198957323718704444114521612378743048206383391630392320301546521503522441711785161537923476871283718421290732356023566309663598789739026895658857089295189920078450712354263541113549574617863943647367824521000080560843912278126483585306365862219507796151872213536684780896902849998926015011051424750766001303087045950633702644387479125557090418939269306489510108957038862726025664293171551408784055139323687491995448177563903344691696279015148365709458009921354323591357010879548303407524809315390978910474888437800740566314235825898983999904002571061478952504030376933920636612676965921119652391077300557044691899896191731889563052806340013961689101608779058636914814317431469563048390478595012817081263634179748224658366244745777627477873238897094673399191480184013865665452950017906593476344732795376776382140741360997120243269678436469699660011214478992431209992508715311689233041341513293745822105647396837986334754936925115018790878091773259891814628540976128379319020082762403131341444635547534227682400183558128853568977692437629781963344625313564379199062828496627741614957953709263862960569489710887443683554251313242156322624051961374065964554330686789214304637700775398990094071194710346340204209235750841888027506222124440872261085201010588126646429927975940558584377601692263260927491510652239092524850276670646708076369070315954005377817313103670503006115741487476073077825633865360852366748424115054093548903216129274576865161574116906759318430457834545929159781018298622856433362172488575812924136563770468403920657790839480030987806156784847690088720110212270108550241118295024357703172156744298867065645065344243508131719027955951788720976520422343547265637217410309399005178955072821414350591308224437121594540513631634580232381591389247540721604086528307408896542233030931105707479220069658058688971567321912442136154617790532094706800170963223789200421650844921721187074388337509291789609584043513674267797173106262788564100738722977227572583684868324503267054266755289405601119688404682324102651073786385604966216926531872490827635538398455349531031362029369272584827921732826612513905959364645161217305875538819811986356572730588845401407723966012555159495577421689771460728290182156956100469948331321851561652601842451051105897051722024073789904899010914247901599725982869044090785726703293526511860085404017054589371685713928920537476029460533641698041265221016951642052710563049767135081517391713188997047894351256225993765107913658515044809727163097367215599648991322737827322596768933579752483628324485749039344156393770922639504785348944370715048274315298836561273573689843990551366026091279510762532788282687872505752649799115646974074095904986932687782182142778592678359461334750403463915844094383064379281826950602082563646471188940703970253331236536773947411056896802320785671992739462053670154030481428810391441282690678899597752096060569163429409873301240651040211021716339489138771025763448356624235500471261455367548084432189406911997903989649491055727440946066764349574686924826214408097072020899926099771612775336379799295541437090691712062967590440172631688482077381295091967446760586320339528068699676528374616747757814884063065543699978473814242684334443480125838701926551775355496638145228081888451420380639329610607786840528047020814664094239854607571085006741814593735752463762661298352474270153122804915230913493226815988050514412498480996068426584438513196275191793846251740656488067117369189927362438680105979371674165359441585039056824689999055921198521833418849679282963499859751465263663077576535854271674257577427029906285205085127252750865057458774347310473111566961664894052054808746989595757687911326425756394625869320137991699829817514413983043204309357602969018289101777259468198182666953162550334635489785144435931664498422489322237110790390435185908545200687609437671448474736355001503581193892411745924129103478220559773807507812093345699164261629392160862840646402786343311483859909694264839009197117961347311468015243147198860612453780169557094715513747949410603388674930903662332423457592602088129027673606268912951037388695031518007834623248372510019683991894095187082431001425594559344003414329328282874633221523139568565002281195282538929685567739081293569972464317199340774975404188843182023719074360182811267702079029343378882687043520939921528713145495725713916436616348396583393725523504604146139219264549353329865709044853560255606012789884286385470354315948724369600510583003700360720823779042288307890183608731926600359257999394251006682486977988799404686208412577046600986460949173251221327782676836152817990528022622371735037619943903059077883179688685476856408259801557855994644588771088432165674772442971279758935990453950487926190067711428096621903737263631384854583207727169101001061476512555613239589593077786859909480118107050661824685142686373333619217358393883059104590240994024704425244179214176024411428373239202045011774277304409316818486567700276635957083374425477204482476038713130171187226345226067105152944257092459889316396552100491103371128085578008969174691923061303718532829344286967050383894871945128726525471633173882426144230852313660525938665531929391902954756869496247522061562547800018852250902283090091955159181798807719077588720668725270928753274331315927928058740457977870729015611736929690700982706875111170597003123976682716505433738769244947554185836877419502127024037452720287669214857029677855225237334510666227163669341927016127833264393560030430062993037901696887434028238987164221159661712082525819775906977480722567659675830509589804227627952539510504228981655521012925989957035357542349667767972969803388213035681424697965692528272831868280836312112405982071446367382603250426917460880350751917525697751160799571224622330051688359849598057565498406178000012215523687856447628544393164212338720818232199700962085733589553677900488180059740533431507518010980233096458026910240604599847876240928543980068977256374374984714671513981547306732511422078254528589978475402444397303472932432622657081358416059253256752103713286134768701732031883318626980601472593756814269557002177523333278114217282980490983925946512233148076983503741017353213897527539340372118393669624725075875242654413198163339461259144147563827729048408960499570105031240265134190320406846694759104485739287703353429214748734145958395515492030348157561584861667582844496533055779153178423431355718545465425353627793760210473109949827838498998335092009661737971771202222264513585280244100152318238084052897030222770114830562855504434557300755333475928302072082610850509216135755850249833843691007094016143410679144641826092469298224483138963004291293428134674116155783598689578061553923728807554656631150035870635853073329163586502005696408339882702075822855450661451572053380072213631052895451655635052627404492896708872202895440178497365229366585116217731325959944252069006429708307777114350452909735677835195238427420960477552675838842685986004060113264368049133651285805922942378122868531892455314417173402506483947726431461952052370266530443368787547677084187869159003319497995973869348923886784659969012365066350327575078195557110168337946390234690919888859017569250505213330809290392651923482809344094277650036219192450905374936703390908764750909206107661368659043279700026833755003962295245263224410208608637278423984599018998377874604590441256629092182615317538958227654785473587959377885291135078800064793212832869846508125883943177995017976861761421887130067405241029038962808603869110827495511439729009471915262822612511574148600422416048246603950253436869920044536822793549425718729927673147152055605334142901305578395136630236489540071116094595561219279416064953851898100273933122037264552749201319164670095044098416652068666732463859793200968751427863795440025998485164807721226934094694815392246512828373510930334414282261755849641488297927222957570629805775283511466724054413105204028271714620305086177200187997703808481960017955113662004903593498160614252429532498179414485740039758474756979893913487664072818798913609009642313462165087309348963075768355329591738612505195505312707279003380178248263533420325127191823764976712095131535461448814953200964881824143102430496473653349189445516925125877209772551631126618936769398040020868995849504119899346690453741397672019177792435022107460025038391086275504848128780420344301335002115313137264818211331444669787582850235458317209508234909882808306976522412051300035692780211135744443638416220695438770502579196285172237423542714116366764790962763357046441394667850344876675939709675529385496217620041963468944840972759671399731718178545144501155017583143197403399811877964283151028490195976185952413918050677038348072619946076726202751558187286895835891936656554756301873155722386344389364212432990272441887934801582563612253304658520314789471523500922697987488959420900257031828859492366524827832750591741530583292838522634630906607563990143860923047483241723183726803989596480673788836477399118510565704563069718994910035781935909476686716730857293682113087144328896036550681832635462239467749515438646014118486993989739162037052064364137965858641168310562659998112494061958902234444045283404933290191817074281624930530193636378059177273994989240576352644564361850673777102990360964101851111015484565516767669538966978112614910212223522558890900307540488205184322875429888119695333648879044235835645034118970793522557292938797182278139025403462843491036730741320873022201997628423507985727231825320053463149249271922885591092380044289925227181996998045559061849170794132016497534742278643048693484796628924918573090953125687720463537709437178819601560073842958948738688536076092619866735369697952628267076989545693452148848990292575035169835512012433812406808824364139786919963021519186606853657946049383247245818174483677688795432799693440247781454139429412360367510019716819087535716252295614133365138821727343056833390523013983099944818951252750513094461554536673601537296453393965167482892668676962961348314597827022370635555408180349413399174376230649284224441271621882694687008091361807298391446930360897358410438426710881971462712831853232934340093991344590333224165254321554877692779369338315565428231499581201168874673173294858100792607111568945540141737041550061351064854194074955113141808470499460836581783459941056320904880196293136922698034147064826787805681857397408737571904056745573662293000083309842508750210616609615396951626478558338812940834302924656581984454970598827203629217599346388577011153866744399965924656222893984360119038345092485607656986959338012518257872800061385696870485652582113980328628186580209443392264313657411398720502369025650505791740929672939525632672467740686479948992610657728186425520495913006785643368083635183364631345004239351642566519446330468612264546154615979153667366681483184533834957818614576259978125798119192420909170486942025629114527449479359925931455013979192205880033588832562876785676429075599133988852012897397203674312207122426486676931291578446039617719555137486605499283197273509512361700586633809471565208179320555377189915794412646506510938746093619419755582065044583883460027280118487565074596490070843353481344621007223939758402228592726991913683432064699166624096255468259645813873327806082500864076667255283176399310241223364611763772811712801363298135802429294702030086436533188296000393205782939410231032339379851175407328931158559225300575802369792016001250987188026088907867913580725682692750868097663961900288809845725595290757021657053861111723949449897786915843749318285561543287866360499025442022088316410186627584268662687383869557140348108886942141506704585441196986004139490701585425976765597777943794645377240296453655790041765875646533355521437310501366069277746657253388408740421890858394198952401555644008763552861797585813252643908895502083959405078372420676931597552821249646895206256325581859634822324036094907175965155998676477548598065428680077817546432281332408883129454059525246087586127232743236851774803594869489226275689950638288529057722921176514688356942453124546828687930222078823635141867523041259987932098169581568124850704422216877378259387191922745791566110851824595659461175488209753213133083057842342805645733618299632926142553083129690459619078241967291759701126851462505925813625174257908750477504186507800282960125684763178390170513632775436656761436146241122241565893512603204354928269500695869541922455003905857612409185459233650508387173700904368466359917131993549523508216296550519255027765961631775851277932845508370043414728883562098129477590269649793543329287325600406936738740517884184698078735419251981003960450150340413694650851680028824853958185198655731858965410902403788769281019446723168233723388610937361699298394340419558001529946160375579203005459683074445321487928721122761234862371467619082962428108532317848706580308533604482881092763485972219448619717123305323454039694391127211480550347254518822857621902269967047028477098296291657616401669685336628546209610088193275287934723309868230275302546706854267107347768559142073562791762310374097421739964862167267330486819065595212958315945172558150519349005197241627886897404016514306691761216341717999182620219151515097388242825042243150727811300831311016670170327465364211468654586634994124618116200547007289160865103921032864345031265508373664933403181707847790023259728824759670225780201723168157479636464286365350173907116745901723996100639377057881415293885700570987861173193016522610185796130763627253999037334093227614195469608204533995695070726700761192364177871274516305420886969438660071832541572594425664597955542317469252111548171212830466589863171330026717633078462331584235903215295308492731809550822629912734805014471262422233481169184433031283766608253313645125275296579906420115533882798663593741987446481327637693986328134664559344953734731840186557339612317916347912230204198425571981288909784359313460264724999858678767763991744692804996321443616750352196915751108055510724925405098467236786633711657225663401327717730983647509001098543924086761036831585087357867011473761570212883764313061567834700602481650043966362247390727770145101705491698261029151879782625715524006826706198207603494251110202986245263369396855461165625178027895185172030398758612217989330297517713834841164978709304824619901973114194418361642523804448552994562476752451060837300698809002005207823062409253791536871325750138225963878302702682988929471343362276518424528866748865275466006287245989337089875868792987858649129444105090966421945061301135079100772422489017783648930071405762349205735494652961372833175948023141754244332045820156348795952208568073250169992115008075257589573670271410829617407199396718740221530021456096678708121179201159162484382082376720513267285416561400933011050180058368440837153384521969811548048314042579400360874904012273515797886425502523532433546056315201148230772283328643503487494716526426008114555141684080174105551861887936735987713958264876125901571163049172236844837408633787723463788940579110340664889627059045893669868758246725489712986652878453999636748484800748445619912838671602015238870813067394806080062401251153624268293353763570069348027298777096215417345782346093294483385492444759868722169473250339858533403435779014647725695373060409648269736706854358293411899209217839922670999349571011896458409701534130931176262232606252871633262113474668516675717313558738704595225069064348637127718868371061878660546703035527023720426416327270080854467713479634339188228620955002516803342590359351231875620158142897516926945810540404807572055307151379449418938195260298826971184832359973121983879366392474695265007885915358127219258445081211765807844443840594113051872570286891553922690319975005508837940215850318817146637048223726230542759516707656965077729911839296205266136874903433844261191046057540039151223966653367391721717248897634618790346914803173244943034034817651914633870490634723163729848543128993874060286943010668688281987062411403987723804702530780097212409255774399822211167378397135926414537950905260637250164417920454447637607145721754293413793715908704704420143893768970822996258133598494494752952519726658252086147830070607795454354331436847423974375267358331406945853484776829191374084885041054566544591438375683859862444370116780888426701941170896984470180389490507558763277492603345293086176077976613501815326127704520794938658545670295820993586880519697660277519493822017876927290132775532280511959637188799524375550793042375106088751558676858988299911526444447795379197947578319263996620612411996335210148007390624502681057030602115910619658311573762664755873013897513436533614809157845989438952025321125598140992752757108190492069444763392634017449242571492141180480807380582290610885739101666677082762386356839320020207137611169947729789598661793364651102581428383242744042043311674997306015629698202119642016409328759875879329588820380699434109786831566773697994131368150637110555231215398948595359220696393900912692913611080463421580710017038124898239944613275881573478594883168194007936694051095878175972205582243211748125251968061999166082406972304934694227979705008175982954452701411239687073843311121617295176492325657401638281425271222277505093755143223366516410154616051870608322031945955335736770778509379643749134331061610182444973580291679591639834908344189655683468060759221634730511980282727028362062766092934680688967266131337609503666805442033798158744975994469813214049377753273537457851994326726400356454023556898248064490566554753866629064026212403224001915914035291567186355499871622471568611633143870620724874625062031942903738634190824130636622946874022249085120313527604927176752502942537452697557009412214108086769453806090774113674997920811186478274501378725081462172289339986358843074758594337006359200310777967610800235259795898103921818321059284890876333233542362926156024874024893736120828333681810493120153683144046939257965752552097256578886927309841517233134213632084175101052068142157806309324964472914635135869840950693034538865297883693597142409497874409005175492090405041007449422481955752727287554989155619102768689837373908431827762523463697167620909146884208122431649642055234528151689638344459535085725335192338476217311695824981149503203253706674647831536875274099124084808022493898096622844237099982778382976830314130060697649137733636279769192627545251583371778496427818799732981093925364227262729531168359610289762369719656072659658974785286722816098469171428513979042830260880328792650335455937516598464702503984072538414715727008456548896246245498052755451486269494709991806603813483931663258730936461813856326804795872688233349487356291810816447551156377888835190203877201453133994781862902883014042270684671827595311695657206559467019108388773063302377959602840275406406956449318465781676313527505047594392567881513477207193713015783668215628078117152406119046777695167373039714186658634273650529068297898004232482977040229978545456621746420099572516539538460405725217315487029084409566758824320811863269978284316008617947199109072557795359058396440622620777411278814951791395003229263961031352219356268814179050650137874240282577843556975395245989430707560637088307918085819774684411924695842130619134983896389531803994667325278906507175191219475512335362768164113381328484716324673282607490677079985040818471875443058175851609698143637494461018690048857162559421713258141429410662883927049057550497485165697768650244809410162743262927889099189186890726141347855807202126825903562999334589328572256025051463959662508521508318422985747588138749585938075207113084658405342633349317133227598814400958489929985631961771529456605566227691586791815130910918411732955488096100125725199982661584533267557231359544073468365570420606184997341711000980889519515165458583514288372743571775065480419397156861820788339089736895360426299683455966315070343214992697411501411273730461182612030565381356092298208426674629302395135925094244938987390813740207736251274146865745969226130930939223068586535832783556914643701840374600394439408698161585840710368659638840536018823641704427594020808969433762793722109150559258250951606731905391402608326138264913368564124113713705713320716404332664441757342582797044138806805736889280092813985497123251001267520727698505281079491774841002215911810795665654260573256789490256241765971397549733363277252077953975391539155723446221477715455826306647277023601525193059898817037469182861433992329144392757616433162299894175016314964373476337180896412734266703556932758177776644868502877528133540709917101532871902026354287669217182114612051858335274528007635853101068086992303353827142906699225593124113103559472947377595961181518601975153368009820889087027277759746517846115375379092506303661155354252369232939368650644896839149584113893693657260556330685556706144941284599824007211905610619924463429545318095395934326897326164504454253784069148338020927036835793805677706669615112551470563189053535659631279970491361653309086124416490798995808130096503060689658602037497861631401339390368864120375589922483068359856756424011634396665368292457061030535700329124102145580042599917557561642655804871948341688376154875940139999301970217823760946512456169687319267131428813626525170588160441015781679395113134196796311829519375720232253862168893674547619269978854707246879940848731666097579845406050666406207627175987277569551781184580991084983251105556773117471045542270745420217637190806221305883381397342331357695539650505095636298799373932185508070888846273659341578458243121004028639128395146689283615610497324327820564040603743022061323477434982610920785653472101014094967924852153579856955435612487718751225967105656790430985350078200864720107230544381083273691895898227656809643377813133626811553992844046489232793194883536929635961651968228313866039046851565009979786419951617061187353488650736140962501991856161342281041407574422660101860222596258084534193703730108473746564136700065864638247990841988947184049376963514605637617568967321178808272954731192320627158624717828253325305108494955707517032860047697802122854213205276228732995357192284323672600664954015826495964150539067569465696734072467720548024984669225927752261618414011762255016542342098625596472438083122445905735149339421978402714625090230496893822634982174487720634584561466968591742186055269651774323579975827790722520730527112190919505877938086925603283129608930956703109561634087372553732071386499695315656382125693191866351126116242391677441419311799852089632579450836844548831801358646377852567048498742670862278734690667778479352679351073784154866303016019987427459485985994311564913105297539368193919888069750368248313315830906678291202519602495382435717086753708149099925088114899898958360464513155744968283664259980353912867262471135930987233437577170385828644236276061055524301488601049997385894021554697070412152869853356527797755327283916449511698494519829542807813699512500315823265120543671378829901721315587960361695183774000608896616554376790094964444263481969696840249497139974412294705203102886279044270990164835099369416477637631565344779373632891694520509063151941935999533920053020902794967300222288795461838033866250551898537026270019733252754640759500077506195667535276530562288549927783955635179945589682199542381501395530827337202705675864266424831981172289363036156022568411875735606342324263735948282022799872221309117136712099537506960860414541715705416972754656469272059980378011733423589975512727442720141836003127293001228282536283994023394479504608970907525422760760895670984959112403335799945690559425281740582128832205218369240002096976629967445235239550831596932009742335049419273959262753623637065307683253483385783688346966461095718819593600575932399682333096126451073730047200397350050610222768707667556121840882287002751004396150165802206893798727649771525647298144608156058301011522128479844594903379045683315556955810875050386027699597770804983804490944936808684089379679711500581589341075473766258437524764534566267923696019109113932427310403460418833106062885029021414311643144559153566939004487139073905675753766094837955418149176040282789134115354641020938175702520696400113690800753900229541835869454975424902491134156649597059168572279654178728543053870182511801576046539901278473282737168822790601577872248550016362165191276652951825393749560834662785170871451152656481696142586964669567321360998053835705802490615324899025755102990406585378052320088354254447855436174768033453545310364232247673279677817560560226615548769330366846055116970674635881891308093947435858602184102138150206553570467346332064703412597034170115393259287862021750476972509268280717327643016307034917654282852911652132369913624938869005208002716931320402609707782811644032398470142430612117119163223775693531037299878672375964810380155917669175492349598408858271888127426671498355220135709984939676860433526556709920188133002541568717121266106436857444508563565685571340766000653092115904934827908063888774951176633901101099276960165041931895008543146299470030810725788851388930098477412059267314858946162787361289333009560866669846089129395263634222765161637038410456582100621633939370014538335622568807741205815963079503585993721119059201672647354146747783812799089855746318238546008528912199957861601176832530465375385670375924417505260642935603248885298576368241982496862918600209317282441076688903694673763922123163553574066539499265747307357344925805316360685546258898264525268504931366323636865951989473406195694082112725920382836833303278483036800763251398300322825446832055519961449168104042268147800797546128479212413056399681504620359294261107525027220472636830988201959892541747369762846240844814135086213340499601711679925195511547235885481761433792278190623053877528256140764541209717694237100236791643039547680523139410450614261625205031348927489369179321335123648967466809522930384670959025229105837412016807288730837661745428356428124851196070884595654058980753446937282455421567162102102221745851553894176573569346242417480609654776141240175595472808504722953137221057753541503613429467163126429775918892349653780877499969756560648462406691987753746560679320723602173698522762470250520303950662063590234704283167379843763455285531847189389521524618846282353364894210196501453666689707563593485984668645963402421852700492976631569958123815682644948515247370853114676012151939832804640724332565395900458357869325941365087531475398070967371836170578182976923981692985572693038040783465987225997197676986516741105412677127618601485208714421192462890544208369682061818868252780372025422847788617849679367620247174155719896568318049837001474727916709185337062544544735794837212875218843064287392092643167365236924203086441288287804935590035026152614435560948064425033700155489886881861682378414745971986744031597728495682087028045213328777715276058990304084916853101521520575508856800425373296700180910293548564921248163181941649155541655845189977683681364867517047622220136284908360371506368807592351402754953206701649553847871022122769044386511226301644539916737655710391071912565193846992544267447598098793355426261907265104563662159904426014957178227915292880145454759898176244697917019213064478152575631714037835115518389642152100207077126302043162228087296632570096993926126838803319773800535071735327727873170321192497813028271903013977656676194280292509682952419805201448050986483092225096005781824780328192096700189271149323875596827491179036733832084416246164185466037471232328247232045435308000796844330564151468842505095382441546415627191656020286920713753176379568588039112473587268817778199269288503885910906662795941412230470015908266645023697512986988127398100310957755053623140082819206405687098583729018868806521682205703546709476207744683043922153770667508774661086436430189846195620233138291533926661142081369952889376012614537787576611378162303494526916060580405523710034618563557854552563869035198061390409797119023384200654555409929149833989901029983228778670560166618483525073120504450773787467586728351384199940411004261146248639613115569702863287800844104646847507361063408789633191523028464188709877483798383554350439851443292222432076762467602500977503582745932539583248806841140858960031463977820795616064171822661848997317277660937870220887369850348932115002267589946657637317558471983326690418997591226720452937518134723066801240361791666071650589311598312248092121481522387671050957869762766036872726096270442732452518314828248199543014166867080470726906881076778353481721290433261053037204926750007734087539324757684476267745442047921237406008088448561446310683473620138807602453707119226459381160316070879793692777931637426433376008467102666301892537978945575072812167021036832129779720414121562110306885745931946048626923961848199115319299231704590340188568426611306304071555169295888920393820453022981057446128869499396288675446451923828691951545407752907039125755348177370675042690511365147682151656182067296641314205003458278260417169328622506906765580525971113313977686690350240616773303436384901331989767794015363100693045605288074952809156019510114535053000789645526651761855069420548826246661632722648287031510055138450027153814871215297746044582140180440900521745523160533421426296387839758272551888081573883882470151854222035957304538344186020782715105603959382620384803143600440854383909682728005867597526805528643821058593116548962605855613981854779402818336678277157239464263720704014039606414680464665829995156658690170098774253366133551780978659134040609250587439484719144872272085303581700276528066360715860697338314872579423391201053909936095475492258248804734606298154484292724750055382134399688831613162065310273570406915740281148364451251730615470153804181880949735485213889199713674411486638538644360863102911119163833234582777443154576052410261553549086613645773035038522810173514370921668662123248028983724918596590052566738240991301352302017295900882006373011228993674313857653854598915770098069788374466640016046174791460582750202815041643360374570747388840936494971819274634597983402202150347725800708570769162005063804171689326678365565010295789556552946091595678837658719923542966882414237072760977676375204091552367521326599609366539989296325655000778652448260448426606510355930551084624920893734567348538117504325521904629067525505995485627214064266717330873165281836505683160657050213671377143222381336462162077525959681896204568848437895935073482501078083929374598467928479216060062240834898291412806133837671455590526479566504325181981200374208712697003792540092591404379333232196346507746259514198214387919161701803869149476999883323728936941793141369990858850376310411899457300243453727097088117474198773963334710201966685614732704455984651928863420935699485088403341417289377622896521064017074978973926377420454400732626129497852253336656562944034576685105337550619689282694503747810960397541823141505503383260821457407436908369445251226339564710445270125967217833837532392206020221325207240402016485350376826859917100779910561311589421720632624824779172649603587241366721747970886240230636500110117813351932983001011008145698919955376421531237008337248906394203277907926665235059858302435513197980643966498628078912153738201124745897724769282530378330149203561376032544407355757271426606708382345947621136833287447377638300979129516541417136658952101241991934322025330102252846895140027413336430213356164581661969514670837132435818606651912680203117044248281562754075618227848076023495805011265884235328656854767589409264536087383206695850080993451138828941550583583987588772623365379078252802959132021544336491114421505697111050737844531763050611164252999862267090429126615481694546365062621186412504853546346679772772747697999667187880615225146678993864549894603972248248229257593799749775031215161012136493311671468351097667941346261578159800720368426340434390229538612974485539961340913272461234835404807107692208313132180481170196506805258041983537238508849384715493147278598564841742729188003356103834015926558571994573456505781336963804059186265004206514714243322772556716799770835297373885334822945693807166210708733913699239552602563661557451793081578370385318535047349583448036128612661782757776713589326320114980099379115130642092182918949602230955189367346434796368355294444207985950750310298511955897500111293295516428316112414736378264207148724764449275332932559508187333713486716921036913181062053434926900723245185821757048364375742029966230969708946873281324085199842802257068704386188146798846260710702315097844218867316736058455038622015506488138344404445640641207249898530311731789269869858755576841494499605428264207562551030459368714629868022612774763819543416301326408393711892896018284139924354264599027840460936855447476268313398393448036659265356674093964923921983303666401331157811961532145688345394464341895906731514614725026738173100265353233958925681679180126276581843677958217495707731017199918118147438556909621390637701275807071188357218534971319433873735420039335395444776041643144869041342240074913431916122792943637580257118682553560069323856582660090314404174018502510814483036798731733102230493906509707196502300337541287582063205720881963385103031794148021350750107944635024772957796324629739501129268189812337324868802445698265212493898037402251645680951900681683293447324015951513291761386705062396594943195743980008093948115535746821126957373676424186908458461573530544582280311727462736536566122436289898830575747575422275474447464015165503844138155422635410442505197105939853749715443567024153179838336413395531217395232398143368842611827267266190120120138083137192361581290025332927529994974686679507143254786586031091460051393572525831515978816664569174947448855979640509873013141375918875204271368541098329219969080566013569134395320508448331046118688809756763374883652548751790696371620731701775945103581252547162372121709807644504478185906156362877267607495276992477475234443085419488332704867478713919277129665551089402996145332706855653842469413015185115848475893819727432163073743573801761030874554524115336917943715594305092756724493280475550507626342372022539250097912079592042382729127474797219243429738003735103452805744649527623849962582084044036513879736198453121877665174374238694783039715085192173784215197806184032574471344814399659602631019635737228425348068355159368007857947425094220904751064208396168944633429743616870917324347448219453504921398927633017945624381156939023686042388153257528955373064625872614203019541735093202498052071914097050431473931072306342058872911570504885955535562958416221061817722461714400625172021822403990596794324246556265021879740752343543135349287276901424787869222706296988768272559155918861792073589134156745686947475616511700551001957428692411818766028620006024262656536609189567824477234987556797789691763576955410825471453404694788858982084787993337056744007523193335650293692236926926762749203204991621548713496495794243661244697161483817920404647715452075329627190531184960179173519598360763680717620060436762609981273681119514356182724273720359403305806167171861651061041774475549777629306962720450251414017667533031900071179391233979567904259512158250407657656715349163280007792500377498518990027874730694917870126209187373387198574297473532935768626684163131895385201788309166737819703673237563055735829848618002838701703734879517455593620283388174697503857606072564246210922307346954741630033454795775788152802119554505914103125185387221033346611421613683804966214413669700494030915833118191337829290043325673384400628309102726223800015680827094452448611802499353064179403213565626213472771982880357308073182340629945461003399945092201147915155288957832490652662327128269062605195453866376271981718411190915664277997462768772293448676345513832099439237939083631524424809911384424589302823526556394062948584631785103320369853128430480969007831365008642763705784979628511374415994266883049173155050766311245464329330594279955724327537679339606010769307712047532803142168095848271451160380576730510752246701932309937027170684579732814233261773967819197536241108885186307587563585525944890301415833337730430049148167397353617684617244472984895265987793544760611822013372124388901859058880044654324102823404323602123227682590835207053994900104710581160673725771817840515519465909052325352006117358737327812386377485207296261536816932175746026692085820667080093963959072883046628523444787669865319968469125942884527198568868044969427708631771698599903347305233092845180844429535591473503352646086325443802545964875557331265919112422880797254961781199772220603353236403382649239386633421093988790633844485685349915448465990266732451716008944892051846116307954125647240556777387313726276141246434562900468562015938487783758348795475898146126828531658358296879919274395053681494647873381068347846842544325110505658471934530452433506776462241262370796925498641895010192435983663020216608966118572058366293460031959172696348743338670091045090008536250626919245736169482336274498664603016370798376411051603464353898960371368746122133885283021645450044676896266223341958478170729230483189244524088950666201828282528626803284367302412710814063833248859291911469251232971937222169602598632537183688758219317199800867390719565616651474598022118412673009724968274221032444382262475961462418455606250684391773598602341170662722395116110884878971665397028943491972576166980315032871193801612671428628512267425784239292258674643362817666388484756374316544431890043539382770591973079813722180800923308081008195074226240264181815299170814785003300850786999936883483580333017307431583811601613257451888732098363224304375900862822499950953838788034750586814211790716170217670821593688782574649012540995546420444451865121551435894763354310486712198162413938842583147543417316783036937487608198687743702546456752474225094470499449513402575015282622965672588843682418691229018621454161587399437835823684578358917522936419133132467798468915776244191128655608325129507600376933787889782113573994696565324611397501818069339046076959845656880244048188584165442606119428423229120813327433794269351385474302289056812252823930381556572983839290844235639908915175379558405712873580608372088205294267732881634622415351099414517445658626842583829196595486892674237205052878958457808251477498162052267445624226714732507760735188422532247139107048632712527001005228309302148803145503252754928275893332206306940710518969997522350254173193371288016287303216823931149059702604124703434181446199509607190649142146387332492024101243650117816274017429762692918210887413988789029968949785946459836972888648761558001937065471459635942368622252686946618295241351152417639903783168746806091524769483687199922480060985359378500284706513301677989442267920949261752479575110234294743454849347888031934400795915321350085133068849982094963828942244556371971153562544326437933663887249614048591629981827344509004939082082359622263013412439762224405909093413841370523602905606371412689410394476561216003874198314453990092133383041945700189906002439467957774680957081756291419994869561305963756426492877143097821498081195883571141315466782478004542640068887362870956674436669103875474385146482313011142533661032465094428078123366443505161279764343973848507093829461979086098950868046640652264954656934712104420502753819287369319388757394141078015555223669715393448818101780874410654002244351545719250935668141012576672143904779654929779800950219394778187589086603734025754744698609578682831804810705972883369507294922966130619738715152515737178614432521918828736465140953460254310456816974555800515990462230484521979618407664224202796082970134739948362046574064699517142169232800349209704802953578238359262323909773851596342057722104455722832992424305512093582778125587382901974223376679582653826858698980028656866236340654085297986156032130384152798343564864370234858263724130684056416457483799557011431023053264990994704990452388824207218571309242449015544128189756677977555914183255644360747876354907020107143650900039458643280770184280509286813365536105303514730387201616173594554895819484794157160709878784841969020257434878207079350411823578677483151518436297196741358040228959021646278769237822847984619350233553633026589514989876101292736405972525983865786030540295391078502204990183553926666468922610712653737264350331345045448563342332152302988288626059163673896736418012339732194455692674754603792396271131139326258543909001784793736096777972255544686320381091332484780770923073497935831146989340676272864947259846590102677850385929158355137680781305722367610403091771363425062315726142908819813512120728707561186214022201406971173290514846767584966996503059389374887713166307993757057450056386975029433981353611241737188950400724341357763332365421383697431795422643755188522575307754793289475492718007971422801769518099445687579293241827478530927465050730047371258217773125131135227772328621050249284672226888582486850893872414910274334610646520176860914836782721242203833258394530452823829593439289993695918793316950865840340919633664559220163882922827050943858854804056593109272144272111500692507908344273896900201510931437086453391552864937523546939331180921173285622444492394850254312273429434918237142908767648160051331036970130971128822841591239310636474336050371936514473473068884550114654740549178815403038480664066098936209980129672299552768827219654896399360268229559711097955925631432588997882367405478885700477167277992263718257947545551798961267738451390946299841299159018269077831959140170587305906876132545752144676245983017955374617729216896951149271358929944935591797740778706272144374523687486016582767929260512151884457973789521732108523292238862502786260798310358564201426923209462107934188765956616558467788073179139512164853539239385579243996107938982087376136777305699089613673257017283959821949198178637562594351333118870557602162871147127638343758077992628517336968240293456148762875910095784508513027959684745339638357982142010865885605761764497170244882024354240677377047183311182394941456056525332280767599411612882630139025880907201169830453195573586734935091953379731220576042950719244507983184797408759382335579247772343283964809251702916690422982247826526254538437625571335505983204165542127495296903310985778581585213392866180585966197336397858733741191123393941977313118050161571570958771096036044582392675962666784327178233260638053986814819463305856990810566394473957465972858926186979219659307292594734524161148870450421682244182397198790459034339110059314026564627940800728154553134428734784847186847991874975744706029867564059064896788797759025283968582053208241115191674292943249817055293779440806428612859994616318705556364168475894879346603277719548251282846934294810103238991298681063513460053797878256395674250829817998036145083923982278020739060762386948136847580817193712954801114698944363009506402795733456104814766066758613879389816580682434946107257077081594779520992466882361360352625522809928174868740002439553254706616125853336812556556301351571863956610568901141821287246029161555543787545925012988169809219670835372519490826447358560991109933053763638178932790023010552545082719016172893179122315901611261361694305091231091510788600349450139557536764090769005829255944729532779504160115758177029296697244142613365419403459046898343172239770358006512424296645805062757917676453861516718454191759944549475580507877520327908595140072059312804963470415705845030810680517222737204866631495344632714486380087742410062549493724966600321736030426753481307950342876525160719532310906702553469265348688853125498700258561569396374341675410265343774034289929091369675314771927664355588320547590590599700680295921520692673901071248419336513626939221151735014689708277486195391304481257606844221757776663026846226151252150487384106306457527359372044135559532822609443967282594566085309199723243182725279460406584791334299269804447074058036155722220992218418384589449954567487315787120182058849766863871196856319829437028272766532264770649540875854854087746057342364230965576572375471847505831395043807193110487819262728515537019173995915318908992946313609441901133775595753702249464058638501264955125687443165332926922105267911337907793439708952052270218876274197839006425017578405511430816265856333137427339035091447543911756053612176084951650634296721602748385996148213306401849278753641123522200113164242824222698139332289751040862159838333019885550227808459813268345887746524805363227236534295843247060475267644086333567169451322480806278625397843825046105979580203448739217896621117707216664723939287696318783208370588419925944966332424362864646198076716006306905352201297133988955430897160443275884662086408239079550991270059897212506560405112595392300806354736010007487041685352604074137394750898885862225826776318966494190955464838272545303739823852608289711488118029490206620752506720731016433155413553621421700223974128530335004616883411183709851122129710330851526319574763032467150658123376014098888945427525284316171248093768565930701031563392330109068034502483739245386013942234026457012913959341019107768746203392028573898364215577353423313919712924162903999365101387919551549439429140368804518056911244948574658146733074655714595347609379646939435252264717740636307667665256871492851602033559934246932686625108240357058736003840976696708752805764004356575236053726691280406622119803551275131371580748181196831892379746918503011797201819915580349683767208819823003211675216481301279954054379211962584375587270845390074444020399205094003893373376155827790776294023918858167369832836344051577693971966701691437995132917227440425012391829057920585509083925232635911663236788208733810978935401186012577460119346868164297671439503525922111640525996556701908847370290067491439199299092519036497904421628013816958469161430556283739143281394303918872562442844501445530044773506998524474154942901263103842058049422627106521677353990111866783544059396829656661343688807774532439166547625752244047748915216709235596940854523055551052900197254852380495235225565326925286067530328160366392677155218538478248033313063278103141700032506987098154495528467849271818628567183068919400807469091931714555865744000361154482694498325415908929640949790403649364074630816936076202440697314089640894129670723921851083935732988955525296533782537303525345453342983945459300762856646340538555323364948387322859920036799370227618784389175855214721785678322395330802322302856374539774707208949106053990166360413761145918882320665486522884201345266552614220384663540884964511557490223018276711481699903276031005666781624251954693077641061439032882189464658785766280535427273475026141891203433931093620032549654481023621349635429625158754483268997118899652694165797506424686857759060642182575418324760750099999612137118715670308387956469065968896453190669927726532559074549769099410026557217353797526744725391146489106912948443169988993065750776916249089231382229159050592766166437218520151924235819217923229825363643417886321700662491587057830900673269427403960226791446037152184795731135655887515772074082615899164913101455169410053371314848192387447615750024226370638758989471813537928322600288267849813080943956891348155265714371296207910639832291674020839771399407081680021505612765498433319679994285591037609426679016579162540104692764566032277852349221646808519335421510667498763043415853976163101533495621416953862977942559054966246562551190326652921484641472214300159968972904063183638809012467011188050421002106956105592770097957758989169961955117293847666181770937813663694166024014782320263781274097571567075540798755445109024894810264423597714032670793426254985693089018678252060229010780660654745498861419005458024107040112847590213410467193837618783664944234957340717966361549365628318749951864993975844939530843942336814013869588634217022178093410814381646084665826370154929590865450759202569838938645091086922452602920331554468321820052730305782866189328158840597327767717713909125612294812523489749393227886898103894591784166334349956389172023701061314982408397587925903857041855078679466802539358382567871274178802895077409884346504651628495580401225776827437531270405423567720813673495566627838391356025283608173716611103050347990506683624450243359415569729055784663829480118707762589115339936245547224862298331611281045664505251800685011413623146584233734578395984057858959761386698977639038065139139810394530202001787530515048007753079668722735861718245220102977295372690895034971204070854581863430919130032178984150266119655661317769031102507268553270953151225015658193608807679939500549979432037911570717723888031320547706742591675650095338329454964211526013771040319228249524049512790457922436027471713325795362120980279381785183494342732370181793141736252991890514882651306973074332580657482792717414853792094005046836393779505764923136819674528786606237405052770758092128240888024852011934245995234305372416697142719204990490674058739453890447124263318756337033660512360035754447720761442859324641672253078886964619871855160930744505872409815645159052070168428176992946622841026033669446068406453970310272286281199110105300237324783912745946238859403436168096901317239424111420562769126213048411223433870089284954920104759073144322451909085907878595742220435549630145437652002291940431326491471147952703717029251112796915183924359314365856670991868171803894685648814758841512443118882072841215506508059587873514125843814218217155613918508823065674216362703968366919139935014058753898180770986468943054442230615147543807969806484927342180427385449982958145910976096541972934940850800759683697828859686279815464403298902874023517465637303820935858222417100376566992876905618534347661837983572012939841414168764845613658801710544823364294028951353762684034691924543105983529619323922267848676518152825190051324632406626948542008385566791185547115918335038526152035093426540222058561255405647573386884176627081580887226522051555998776878521868317517348556302707816211729037849683044524531272231414165058114030376043614701792859837812431558462943542333300589196726240968583431286416996634241641359674927388870661448806650964163245618798736259979363717639223933616866720138497959215272907719573602288591970555094828461692678109902315287003918330786767689326961780160497240821250622382924153188883674193405790205303315262216962093027991986939223478017253673836060307932703465431214711951635880556441829854367100155504715993933463179708575128187716908451297043461652832910343047638835106880481495389104223273416417141377760435745977268933453588369793812021474285406023347088620945837751251625366098050164183481010460766131875460863114325987114266701451284195150404640994765014999145672995752743905276311284455850985227202358235354260921286258061441952636206621272602938159564413050180885376736852636593562221921955574319129901727699794386717860490817504691020493006886862433892733340443089043548017755132463377786924806944292387728994815936255061238413713378632143601309107691080676806848684850803943045384542556180491818200986219150208627985875813528614984166834550414644192483094792090195444230078817212875221799367510561077401719801566124533852956423164810543903370128318968300397941573833410108026153521109360495999158336149381673744081499699180725375977128353060474989565497303613082566490697607115652364911893986726207258929521875667477599153664626136764452333944428021666791730516779476896451392512520287903800738035769275302585531641636233555331688110979250445608923700064927051172032926404975540554908756819961001000641326226878454429124055027087927727706810556208835930706131730412810039358926297646809554048705104492693178492140138698811090532717636698050324841023515980986711542234805301512157940832061484924629074254324532002743735608809014700191939851682215420800943830660653216260404065792080388759195592996859986303661487605619297553870280934576020429549321321239533172143017448883190002685884508419106378054095372226862665544955632817408709328892931777023213123752497099843362421349742163728688746425666471421083578401832366369668243698988903589191435932344565924607985800741068880660544788703481538739923912072336331612996892980674804286472333702944820307889008849527337128229053543910962647642496502597989568128412435099233639588137406068480021606831806877569451173935451635781648025723734666987234814419473591255856033537944347999995291932506102280746560708724300423082091376556132219757656891013996832210370807828916800722560239893474164737218249031001253808975575031169472525152621809823682461849990918719046998550155648814122194468232526331283026188814768547236447953889567206322389196351523143557500285411027643100467212583763503681344026345593405756738275661876963963125746758688963374686123182905637087593608247703398015029420198542598990851742690205717456961613813535919879229167639407550508895418295332351100994249214381320137333570441137193485582092710877000335282137231201704722459679202958049419388743021467390652406454202686790050199915694669814180210030613197897143747708540930368463956609066959229125330682089927285429799931606761572469948508904026470818535465659662639563737039021025703136551519775079487359155390066396131381940024876844955771598171937286912445436173898246565707402702812310516569358798278450029362030841278582086245272289645864891788299250553448386934306457377181159796117372287735601786771492567088582930602390748242824748215515240123814832339216837612624390279921202843188562225098784009945352422037636465536927769844948670544294479273921599605307885458772339007360767757252345801716389933901289057295873230909867974994100700769732654145338274685942361754336819425880320486350066156081960486665039463374665954098275923288054265328472640562646707042774252234182623198335092394519232155879111377287289934168042563635825016168969062723750639853659754880730909067222824997628012651268818543531392702276677551260847839197572147998760462508197552198600851796078530947017039682001061859141726998251718073633495349076283903083731328123697044522359101589532092941265776669591313483171704857254021093883311880961374677081614106382824780721507286406166953183980020785679996194669499769071108818345401556303798082967650657142212160873525773628253962580227834718244946010289657440148031003820486449403911472173858167364659780552579033138880734463416871164966535801582452665559265554589647640463589202655623993395253364097552517704623081287077635346608455338026368914096314458260720735899394465306866638617855286123070065317191085185941984651989768003998580918633390964064633612165264271290718591608297924484780543320090679970509672404572423619386686964539349756935798768237541251274713193058270596035336451275913846658767706221171328351402845039505253649479631185511339957186573349045734382760726229530595680426107272961755891705453794162978531553662640633723471070096622122669943380064272638796459834205896414336189755386170373400569024602214903081886854177944791071168458858048002290560977410616661794875666485610111898325670661051203490783668841168324340863118805425536415770757201800740268245267168028519605841034776906103439236482890671059364650136839964745813780516129500257565871416907434045411160331904225446724021219307238526897687684298370228862184412621100992714593951397337229068854183443731052318671554723390760131121508976468248226604582509476793365948867036631144712085088769105299225465512447733048625436027495191257364888200315433828815100890311020729963149224340849890834006790966778248955489142207619552402588832322747430801379215455029035494481667924716860593479070406214159503850225907167539577960670222497292981231819347864375314880749724475438972441477451279811550298321845394383010604912406831465787617501152441004299048676886303786530558996419921497154228637866335644100668825245018762509400921858517115885201384387638497171866180370174057841944705787894033224630082975317726791328832200514624373730920202913799895779549527319104038978542315504838173735106579163122567668551637607570056062195503137009177917803079173546307907438479623772031605970606089333643789313423976135216793597264183154730657011153360475158155890601822371461689760475606944256434397083233400042513001005655008133108639803712034879974125799553553478417978648879410073852240523391459446429535814508673984849133403504143953577568485175893434493332952122544229636860634331772720575868536598307502821178404768116970451731422254459365449095507056657719160393258076910029265939760334877562716370860887801059377210358827159939297444658291469593821137448704760924050834968724679387498873693847484256898163598369165217103926539036906723019126388721940778936160318029417674181239771188919077069665570531106469335592384231955619245900714925803416642665913685516863449249333568701717252357118486439190259644260496723404268155981429467702320024342714153517521108026679212256613484702064495451118392737292421501629597051441265546696682498402052304192407370245589915215913611391453433149020107202255249176135177654695555899403252813665348276634693813636380141569415061457622664664423033723993697678348822313675864410312837118648219267604672433233527141939563821420366746033150040227752600949381793907118187668398582571836635096422907144303293213106702395853380529286603254206166045418862589860773680556172909344995761753087103379125103362239084561100293228478930004698491071286251691971173179007970688610539304847805220234989652504472375564823487127043771956107154829801776951331213555407012810744029542517700224478696142468329584389351125961919316229902184322965551974221000128929546820933136535192874813534852535081088201740858812890378468281686776191648770443709049667684501043844667893404240724034006370789522368087479972818120032675855726825964111321582877408031283337375187203572068879521287155666392483454575438806401335670635735250717943463535859681051154173921786475393143248164033825223279820264007540142936873934558952032820673676270091718766162830055395622634392036867454739475941424348935725191010757082592087474786670440546177543293296632939576347252420556280918012640725120457785625774662560471341785707324613633430606861697833233851680202430653367873409588014816903176312397593739805324185601125741702384727212575531519548568131834820617229559804991801565875163686209273162509047852020166132005897240619316502021002185633214085877851547845315376993392500267338527778683093818809644837276703502851889904702106265970142784483384198344013255291489077025775695965572715614480372466700646390612357460316468236965525916417344299609081747378946553636599117380808815061138744331313734193437518295521253142872212744230363900096542243749338646082011721454739996675424497632500778751716555567109207053179706560250034309399944186929090137740853051709350838994755850004615343143976672032898093608064853948121622394243738118695087637248965974991219200447495654901780074612252694784534930375451239193981300971521612906074570250390100408294735512867230820908939589891201624602443370436847495282679069682140998007898641306187706676142777105539498451698360765895106892362378978976739736943555213064253164688204997145412283185762501938242031137583631329424244348374821133934684224247636084853304214859717997491305439387259407662644668106536383578026688692469219350241636614453938819003488443145641082437171974369438279326202029559835156887334170063620476361923037413474541653087939558550578564030310031445362410216244299160161955467381165466079151881699245859303902486987789007960231995470041533029099605751627291226717508395255045742526091538738691459098254794950738460734215550867004724882099980823648477873724820721451412615776268432673077193349128994186545421728923314695839885164073732282320433425824923214720097059629259589614711044792196615272196966844850459502289102439772778331710333401422112304592077382032308649536991192436259902611610686274955895239590105561293247214883482781410161516670415013203278899850610397533375361017511670528245866234677835094934524407234021700802157363107097166967518413467901399660217991830323470219260594555936081984893021578450708263855292207181312350335798632925062146052207109132758544517799570642725762641878636700145639876297387378604139003423124817912507558461269172297546994046907307271106479846490801552676511324812883137074625337313413730923790686664229288121065403062208574649772274577308904875011357028795869657193171971856819468132716044572664686221928336603827952535870460525173881309825530973103552964807302833306844302677929313811379301440004128099643520980447014611283363402709538470720933027260299092421863729921405142069427582859198958962221418012924618563490413639084713987001629421029135876800577612010253924044395051027065677896969500342018609271153954854842901927737451712617500144857292128522708619966289478415656068973567759688378052069990565551752318344586269534210443283373140119610941138650669195656478947513129229636446455112322030851161075613009944712655616120597689818043222325269083854765299917437073846195569174898674258559221419228023723398221549624040368721091350426638630733816539065589464652448706151807669345411685683058234429585233635969820259160685436977485390710132443868571364218192700602361017316960174667947338752127228529161683683878915406412490701427680837741676233797148479814163783306372632338574230132219573281688405583316753794723251125058622978631378146151621695987918855419090588784508640029579709196105743562908609804866295502344743272361321281842572380297683461642886446298940952140283936037341270089265686733435991929072217009490275062032886562801756373126996520002030957459415035032542745409622447657951478081691206446485536563597455154369077251209269251019559183266674426431826160621846766249981637037160348868557642545674784259561521677740837176323458588114474936369725530150154642404186514423134010506720367000355365947752891000595738135105275242377521313892915156667245345056702285704093745107426491988894754627614852213088337965820078555459916345062381805409355620398836539310231979149915578405515047292011152433606480785401694113073763775874721856463747130331876517039436754981185002621122377465074524337229363115850025710978873611916589554601390372933263062848983441176715329301356830141365837927416491241315846916075029264827100305296677312912233544617642736818415343081843289988760417774853601259493126671833184960031471368778246388168994565255457304700986558185197961568308758936420924700648842562917570312055459234628624467313572272985264609928888676223814639744879685645354253526279740424150770654354642011148692201588434426263724310191473624297285311626020432284233699853347784695309830305914497431891657324290582908940787106325150700008363640148290751632380621119672282639896709751499312644537796915355855664559793344591685083902369997680930431167287234601016356038930310390591081358988576080412508506491149447760199076540757837040129668790806417675408804947382544605192888813513199305171051543386773165637102202186080846882507951513881379151570136872713533805317876075819225358033831476314774190757365573905933412879256297370232211876675906095909055176093013829159795347903227336329388229165185752643625866450665107354128960378381588111049510191687881690262904146499874143245923096681377954363518965775704179860325247597271880814558268995424228729327551821874084564894640885629423042080492390845029869554202670120204369636610219516851268630900260251072643458014149414519375521603607969296318734088361098453064376770354010954611339209580646589698265976222560908802616429831791446507453130692558136736167857211378936767790354131625616227730445862505182210232068775963343838828893806616322469531541810989313053838168013795331069550565700255572470211210967358345484205346563520301076408319164150595710238019984287618850336734906406395366588878528728261676705952398199553805078346475141080255541617547713245040924120085870740613289527664169375806820101385834830914396270737492095230741904782279955657727538930095452431259505287584856769747106675523099063377385306962479492125945341541141762565868926179964206857348653108483679902301425635555383281771282692978633764741875170329164678838653904872724832475462291075150346687970525114308697003794168551090884367721297152743289949601585139618910827540188655796320734292569557545831399322369830530571411229555939875201158248802891364334557817845030153768265665742085200500795903831454226886680105378932958785134680237602527152018999282885155502170347135322518962389417212671958992640128392276347998169870262478821970242810184280516174644640969792459029692990868867017270694287271149934808774170434898318390089796430913325538504301918384553453108302562127459421087060798460642182430674619012706262958696221534139934632632603466833894004391108988056494717711050719544766817588486004325769637806622844386939433266427930234704340456460323573017645683993418609328331549298782442588376931354833782641347237251969421358861664822426615274544230316807467128920153206466475681124471172304546154329402157547493863497903706007887646602702696579721263930167607986703467311256982795410423906976747867233088375881284064400863960760126363431725316261081681285811728006012469659227430757181107432613124204567131689649556650582276122754829383967670066344640288475722007950229508234908380679911017595988400296662501023858838230932989540996432134636903359309911848496480869504779702892663567545223878798476989737978846791822881872347168682006491546827016347498222295103697172751881434412402207364504663918786114902400191713701561768560143520053936017789559696193147615826166253330428641033541698542683324184777876288536612550000892809822852751424809061699425860073126092426359062253871447361818933317337640985862731452601434621928888159356010003276838468707637619665106405158175352754728083352934391299647798048236617219915532108755243846228355882006369874246061477181128793735656460338242815288710736927311616383483508863615648035835301707983693168677033890561946735748688947034692393398226124794395631948992761425552718442193504857573536448544597417947259669331275647771314639918381002964284756427875647220480279796322071415930665353753494160137170593866029603349186623785772270517863021340527112618714026170545786402169236508598027960016455912615761197072317505771025456157056862732623603016226674011176448727617884761744916378800580729867420101180053876251334747917216451636728576970267819546402844655910310220719525869549472492146761854834638658031184007966052486596899897424646277199284358658637897615614685465495296529180274170587193135896954240676292805266985428434736240138245009206766207531576648934277828110715138986509373964142235158529819414943992434050670141170206724326947321548781190702056315547974213305927398431195559537036187394133723907554205852099952093000879011321887326420198262893028618525473998128883914467359154582070844242215876998727988668639469263331547438024371384975619853171606057110285234177530599197311626601148571310513828189038864782126202552791964887997510118584378155286829999914124756404506254915502076722023143926346349625398806772461272938859719434013955849567647028651616435041262480268171029546024255600769442089416873686425765498093285418890478067812518306775257115732176723491559091698021130829664484279604965152027650453072117179692344122550916237320474491258537059833367374576830252029168749220162306213219346595065652522651479396612929924702238078132364383491773775862799326459474698658554711049216512887330951668122280109428928126074660107757045819365398595683672721762346509686700899725650927806288310404558761258335911416961516547688122312364678597315666835780707519917854104757633424741586945693552955414209196536249484967449241863098205671475708304672205409084998774284732527648270968726714190122859886911994364805299385530777283651282950939513693147199420287311701044185326717762690668307769344312668161363023175032304351044743281645211580074595032441396581735646134918116256363205844032801838819545265424331026677185146968723685712414129649985029356895098425834414928421670954723278813651616537883296596315716590748000155196345029096334942700774847731839721825599514070537462826651270673367052402335143794812018324733991329154935217458140473869573689271462597507614356160318586106505623658795970021564894576709688244574923262267987507554175538498421335721787698117167401776642118860578844941395791508305192367517007540839877092455197166996476785544016817597966871642493271247891103948584826946758855966099654159866952529741309681464216547845051627250827076880915677317303073141601717416475775174007199791392756078674226959288574260933897855844822107377372532286193339038185482232421007560076641081040985458593553370869494678793172991227516162853189324735878601954955526897121066551254542883200681912150016369296596473696487604348635052129151341286747949074782563285057726808478138015944970437688747567734471649639944320324460632466926781884680999504086857074266480752966495152809846720305215739735843846419575401875924645763103484011187761496645836909815804644166896911097769662985862369494898857549364856109491811072235263854491882692182644470673981234443382920065278955313882964726396521215739078564089887735905619787631643139091445047078853469051645881813589362794297988011575683001139816684009173274167894424825916488250577705130901109650893296143375448458674061620913388645608338152525134814632659913771410014874093578056471786625686049970272620904579487020384243305413538726080245786961340657644447700829283574261392550230333179231918451469475797841210213786072316168144770930264735063828070755125939712181687277857165441474747917566793956566007308933339683589824860139775830600244605660224715456926649851501937166723067449683562828740662103582835815507618242462175985212961659794696192038300735567270644909038098741627161092195563865882009817086135309260470157872688407947614487171792276260736395536199859827776248362860987447241844189298300826769515574355349558034587745829349780950267722152032343792920091887773369344078779248816822620083382662387503336426909512196611949007717559111378182719889151939593816216733660099688854388351272425845503097186914292988141197467894784285022608478254632106542465807323735205736291478758266381173551288069325438208714057077121376331790581531213968058538952619800773034873922686352566965346401725589571977037606464406332590266722625846596982810497282013046079261539370820161611664240093135495451545164571610062347960304817293087419444634598717659139525674411660427564517507982805432181763501857804366229690733442988196928401994072129175344833599901054983507640454345359547185335287924455659131341045778641473075852482018829766013904414506097901170023748166585114571568825102385097600336833413592118786043001307888417686888842218932370767322019677680027209265557507905139828737211286188668067299062937673502209506065748468531938223215062712721404102903335454654303811583662736920371529226881042201553642566260876555077133430786342110372634287875669354590961244259248896462718360655564413269685448075344220834961269928791135764571488437251297808513138473329594927451453919485660573152142647092415331756725116693749631110955781669928512073930618610404628757505138893750154878029134682114576980965029014844181061670940261576015628780630949707960523001482412579243381903547056999269848506463657204208170419710263710050914573503989066913285145346684064700940420803002833100671700309174252695624733261542618820911130228106790000813712630787040345257166527146995718328392165945697237705086029016904459884287722539759863672896588246047899596847511195683573507686085753522099195274475012334682593948950085405878587957744389859349692642925752033037020084759193650828128680834431867970596574996665391085708663607940476892865507519463728339966977564434633643624962813203491557229931106678721858633899000672725870914617545470102544537065874101011669935257416190296533136106234211264890686825437862257344681467108728673866328035767004611294866683705587698217097214339560924860489027503758675512946195347126732381135181956658097660393971160582854933338771781706639434147676192088582299717725533846269048461693266620260330903730534106489370359248911689142438811763833139020912442214447166586747908920953046252019280784916568664504792861157419799302120063638760256264102082929194940012738518698066208943387311080552288428391564105110858215154882273342060032091874471863497724883886372674264957012806184395049320726244709641996331280035269393536142828825167678608455170807284941796584908889189644297014570536466707732583630186100675471637593583009445832592252629762838773527135746091696791383102323540548892219029219384527809886701832434616319317598298985974997765451192655070973519378024260036919454520132015560923721790919482502610943563290881893392041581454016598545233700324708047683660081705415672476893589211730105169211121514862989356800362565529708025103313061378966779733819669644800419145346369480244874350838370793857600824318558609148385151798443348605468205099897013878082909030658630802208246848560036199720057579540561596272675124831314103797940317859497973046823332734149044432489527333040742918580410004948952309272468239603773946721255576268768596912345695942140243434607107590114303555671580093213775555491931894770208797578044860814109920952503221108605306724589878181880802799052041052001512445298507923723584813567239642152454175542025227119123556662276318506731731831778116997796367879783286958824544115955082838844751554433763492374903215074544279329076192902453286244115152090778658232162581696067442755364655974260775484685381179644047556098264468775798007569753149837496514733981400334453671272963568073022498702625724998021807958084894636439003943994440661297076774878916843533776977368460721449681333373171611689020154570420485509949241146574738169013345426768136504979996077810570336314035149082066043730091403984622004604958525366523263847478586079324359585286554445157092717624172546655706269089128691702044957981416068774523708697255775948133031017637319966897856932558729024974015983235960984776831813086041338495531241731243535893873619995772925397618333631466983056498506998254575460609884161282370526427740907487415105841029436942666717935894798476876252730310388687057832887472444217836973520855550177255539394479809118993951631526683300679643002365005890244268568084209674734181897284963722502844331137796962362720562200464828015698533658043012879671246473103900362539348098199533666156854975019410488693888700397759025207632730080295969964531732845571046544394169652725946791055495715099496739375523136151739316450360788685078095652491872712433146814984004368953765809249787970849523719719713223147792409251838039536461924662899627468870576977136898060988872352554946099397780796421554256094007963803671185858401786900578431869047450234022521213690475928281295909591283875360532262525466460417417351548146596730829134574258232882822032230440869524170948678947194764407675368896273185821508496869534100038448769324622472391231755140112090783071451368798367795351954480752548712129041697731276694161144193132526655209600342788880932392555885191520502917269491532993981501890982330412515335871964697376005055264681395031816163399322468349359893094758142724215648292125310147055025474480136932659090568627385088610165594496972353693655303182272391871110952454553192028355102094660468628471705016596188964342600525241874091022455329035702529361675362786062103449748140526187739518396559253664730503728325782404583309153327435240968138597371011348875119153193381220015570855927834942446017131052752093718650879830938249995369007400615158648404697912185850665512339038444303737198343355489311743776702634355836728290266447049882355187522518653851358224311727292161962792190865485298156988633657473795253175258352520271416900616705558341203818708178116133700960459207725748348031306236614115747548249852812290542555289494949717349228344140252721088579995725243757575439595359705164923346231056529964525827062928245200662918631695193639524619601675626404785534574663797071735170310471790662494703490953776088699438869982240706352660952999851308801895435391192877925686796490881029979479244510284373421476843241812163880335990231985040859138841726564673634790182662330114445083200108699191989334449917871518370767660901494569762976436660413467755954773418770682889715971445147098454055783245360419391750104663045370494400551698834468501247550614918806337290417172336045686834230512868150560542494987218735553012431177181176508612002421360099999686441117771310079610633407592709466358821803029497706222915881605403402347429384947224376127519171860756002960031460262185650896093510911036075989863305773079040319612568998670845198275083279909025452878316718484033034485368370536700138995678093610531754327388798080075785893116074715877754022602104178849973644402781397519611999424663582862971289066188608222527967854331539826338858280302837294960666581980694039370892478799528380298742041783676913736988764159416104211928672393216558155597447125577270489652154733202593627396994762802748361395028910476008307703972050820172277769736773230162278383390885740948899808648750546427546655073272548681838323595483017407599467804109739091304668662313380086214620011479630085583251170490785042805688948257066086805618254254329999132792254777461363020327578425102675809875970999064685700645406354404349859542039838527934720947909953015216107013922212176920297510658602578755275783204842497267020061544909719640004626544485131673371299592219166417109796752020797645393085682401495950803053317635905064248664105863150577628900468167675440273659743558254365724273870063696935378124807520296649016051862119787261981968057451114566964583147970816109202175602808760880240552103682221879790689647627683191480202449312245701092056431196144485175436500972972029251150361910477793919327912386569939867579752461861260550140053991432787293669609340463086578584817582294904158206314980707715604015065099859778572513278217758964953517417015390924054330310682709462099381013560428600624956572663900372019399190679998703352427228483529111521590959802419611008806618484844180575992338196328215183713267846371748812004611638749172896834991872281091569825472596121671253597830924691900023809958131237555207379049736458174097154511486296991139406273075657384644046087337330116958487911671754451532013418382440368253936970201315642346432774762622880790363078465344334167305246686987582863696158987113887288848897440978076603507730569310357043632189491522529817281283457437020675438039305889616018632607688517442585958659138653571170537707018917410552810114454146413793351585004321210688748572440826983141942367514732740443377075035133966583640785243890557607462184498650874734537356924256994238309850616967076069824031165596361258795047383561691437069255278812494692238191382517208817309572833437717688164511755742655078196373571544007228778054647954596314241622501454422864199906730428019202927530099666908408497084482829867896361319259753815566958976002521958625096809887931174225746604443310227705876131073918933424553445073916030203751892731832384951641204349910865560692024012246667262064471034250701540871723568055440657655100394796735326597870134267799694065989831321105264021632120918649426593230780356361958232690946480443656370163375400854876439732917880804354026731702218408916115954667177321434876322098282119919774028246409294303423932583912098739677107517693726523599915419048460286328993044689310293342008614112268023461163728921064501864736845808581404593312640394007291894650322627976146940323443795189075521182295871271982496000297114078960101329798657588324112025235815063436108483452144254567665451650789760780874427237035762121120662143049200796754663421360451872331246823325171135009915493817625059306072607366596496985386236464538208374171789045680651826568160724961629414602231267706763776948964289119125343986890541221733477244031308829379634707397883071060686906160373498792893143425769762674004299092691483733847786043413754492698466384144903454120669222833205412708881038748225737960713107515581481677893724652662223015820367931254699634414334027531180192724005321829981219598156289269350416072412834601235661117600413100179877596444880138832834249970056524780948394551683330208479978454661970614645650788881891244445011906357813957286191676464476468945591591218470599297930537339428010861283602590033352060660690742478073947391445657586179465130019736938193504364039516900860295094685591686130844129007482653448637329352776816790616180500366183117501731910216204526845551965881854775037472295649954339906606313638898917827407128082710345842554799216346155732606925147666429326314153834319286432606963787253545784587810060391369823801142600292576703966179170857970086976879157462855102600005574623754202459258136769862649726545512805057582916461522021425469256721935134003761366958111879250509450456180923517094287398751289039445586640617597461434998278311233889800511906022467694362716272222165550300100246039965477196735061896983289304665357186916851871073646365427698333169210738813510207569154362208647369173159813360654621974186077272089397928799636958284000598547873515876830529753093110830387840913388508227264204441919875715770806493474010652884697559603884497998395959747021515732607307965550865074844767291221738852255360449229577941594496086381923287050264993133298685719516421451126115104610534348727970351676401956532449089370991075291434157384110817978417887085841847490121220119298151802119070761284761158318109685618352532137041167155750795078838894241777390332890800947294690933757503487959745020150656140222523230208201806709833964457958456439098214534359034609497845181853753555231229786399409407799981801571958096389423239860838230578086453306751835419283579940706653325672789029018914786853284291753761186947007450179618869077267814403733507758275826668343126842587684802643779996053214882175702639833337795432303819097058864839781210542901739140121714597097250419068196337576098740456361492092957154094837194028695407903836568624768795440709289402804016612664234243367024163949165072598093411511846598528337816628860915675315162007302565439475889608207873577669787802245044315755762773221777591101213061535088291582583018940564844615994204997907086084496884936851037418303936525586212281184824942295009375717405636207010735554510614973117444264462287906190479686035057551533584320689022052188371999547767354668720190671425413260025205749948863321417878933631497311772461791268902015821406826942499906253120490356105531813572121923498697288669363131171963116903769731245855818831918803730965752730648078245723956776080176781725972333299273830713194018592161625069253274829101436856772476663245292720350281457784943295934931555670226471705211750531218688023949398895997403551241422971600719345564793929603652908817861404261971065212185348590175235897835026468838016775872615264883752003834637927892831871268654975891717337524277863323645875980504441733820178109672493058572305835126237864766599228009870928317909766649755612158049864514307732231644888787848401300927274749374326688829556007257600481248111700027228271709604780258100056893746209283822724711043690424827703436334844457566748772271089242334634985779143077574352798626878140058843438943293328946224255007313290573366374027674631523700857370934964212409319243718759455967787459083924727621954697044666015448831292701930254132401547653302557280461954345688616386304239525858453106534105125733266904986944193653888342963469957440170509918866671496370030631746232424950581529127507165805168787089250295723156896926486784077850595200756140089553716200346942568542765156893089414348755717153563613772024930405451138238241962931322949936987065670404903076836471953586644285153106375048109186920989825259186923912380544585311881036597937027912275842039080384406126264982713530062029107479779480123106652877600817569562541426742211726467169104170806455666301282278463519609779285029845791086050545247480801618120055924792283567899772673920224964235863024721856122376358436596194013889546692398930638586837942135981827884242514324106338102705244055461527767988753855757644390231250823796931078334518668098426323835832767615270684524628093058296469930707775346887902764222353094745834058076911873167965525286615919406372174622334018185818509809976227914292935132723010822661405324763278327749474140294400678795687895098380770631964126196802505495046436011153337642813566948500599531214947741910009672144631750345292580369742954133776256851305423868448360280778149424936270874685932754982746993459710285306437603869492604838077540109303380202346916258169859860825192594061464023660241281994137479266579231370760740846743177232433465130997173435902755231807484523948872780683800415891033946210050286977634411325363402458184758223867819117000815408827604257063354121615842525225336074029154934292190916690976704942725864421646736894754813312312163650851808773382527096507533947648866751370072091920534576741718506890879517005962575162217030643024497896124092660646256513617716868994489975180002998028490694008260018438543499218028721293726916695184605253226926437712404222341573206051902774317978267436536180090606022894666859040163105294580587077763774624025210002082794750064692357873348535421011080729508738001096753527494655195376163053410611717151751430153775463816572004713710671444622604148752041160426953753964089730796840892688560640931522471635468654518039202221033640034737156294662625602294312868637884147890424694848525228366834159631945110934726003612476186183972235466062930653089483142633334980023995639199142654909991434205340163550479563988538829381757437621677289735768711178324634736125987796093061078292261929401270095382332083117572523051053795904106348210330009191905979404415123719392261897324157531304373173062638222129311903202881218762758605845793630196376937428643654656314572707607107286642429360656160494098210225030728433891756731833182196365541401302695603853507536339216118458005512599613690640988591740268982073403411515217882837200242017758543262882721642728093690758852135675159435642645606407088178451882018477173089305446688297893883122203630762560751902420445185286811725856928695303429923120433615374265592673157632386486383806096742453449634648836382764612323574267816578684426578779722664171413248927077009757851817877215618377955504425991686109188425956814010610921070224487556293913407663017293504290648497664412001471980017881974704719850250231416227460234357086807680726397957769565482337942153063140841524213794669669288101693233719610596550807017872388973682666338654413426411404624963779434440286604397544869028521752106407688699393643339756582717442387589189362864580899426143926296227551774437058466617911505954158172801594077563554192936175254630494719435593885287718561624163697776956606128401031041679518326554712558850508170748297582988328472086068073404002540763711047274177956128937165207192815295869467253536449523023464713685390296457862011667218704890897930359972900605508557507521651881084922691997987744110911126439154195094193855751055970270371589767334462481757708495544402026814818370697535380764111151466621059747978343091933195296691617968081747660047649480257168521907317566840544880045295634549793902485874253950530958544308792870071095847144330490956327574021179790600464559439940345644720268015120470084337225261310895189439565589508010488258792290472119348801389901909782700878673605421151912702234282803501839805225352978453692265650741486955770018879563307869712892819625562200137261136956395995127269982742421051863961619115647088310319543282648942957380352924622446204823802014032434743444936595317184078572384665280535540059382242477028679021936826659704162225581726017454928093609921362831432947951112755154312408881338703986680562277540758923930912298174653291668288605312832038776811351299613357824967590767650941684658338233060212207976466575851718953355517372618530835221910613307105488883855738816181045964744470748791042103836084287810428994378978735676692139350811522129512698201261060337941798469935085396443642558429542762722112732989107989266708049344697533875697194051816916856490547167350415008429920621115200673126763671526444731690268985764214563132873680985415261201519371306709146536051659100149527292691167414539618752915156664801591008488281197735069505385934973449662227148041606899904725107877527537991809742960730908788157483050889593960543289767065596900218697165058950817169415697712881765884548166633172940562706836119184581262454381914035091646708246142449491755123031659065992975684941109885478249221599195352428852849384553290015426165043269659902368618812486210377888980113426897865727699640198408951777967772487521215533481526813361091828520688951169092131375833706888207653259606110147384319760856724257860336260642255061143917065835163886451133542696524195109546952482117116744703933883419794082861475570061174731770045529336118965001458528653815240825363935763865123950187882563806843999662832098104498260439340856727340121581302686213033977960699326144229490657608030622584138998943939474192576443673087197760752277126490036970795812102851798933461595540514880499260373587908746760697287532898584326904338846033706749351761223802445869675706394781467736680141401675542031654052697818541568390969951556081795120251737559839582808885730791805701377016434429679542134308138304994758858917019872991634193666300063195836941244147006297644633149115938405460362078827283922684835920712643606933579023674270428296698785364023114859975696815487496653858888162002732549793226188069096886607669338012776711150695442042120428594762993741210645706655330772920966100093944354343207448326707994832743402823539424101072431446369924528210160684043561988987432758543482987846859328943071012882657854302166291966286970254680395576296562107942762425752509480499823784387096453525708520578287999949325661265364057011722697762876780597565084150156550555066967495734260074793430730739008507231968151250246331035059657881301798625529938726819637239531211865355298456881204073118880954253047474996109401032406098261543130586580313694996204113511182596444319551011160852229416411912412404766721456189065801805461191309551486195789605665202106855056568311098646327927957779584624180835781749164291765179629270501136009754622015524336835308875845020475780042876696776142300240255510227297167254048151382434247017046353302077981887479285629475600256839796639301531197372398422144187710575909430146289055628848141832955536014987803830585914895145798484731051191177561906633673297766585682609585315752871776618081055747546746573092152034291189228532931823475036527943780694676920601204409724337493511549443125703403724387864579319242994404356148297641928274809494070209640410353110063009072942525841961860597465422815971816869025739626298128824973890437738208989520975521004951499535200597279842911821804458844016471913635856604504767174374063920592927383183946976030719046202177380390472926330030126135607305219635008371012380740372403762944016876751833742361754197459112049347579639742539378652225556451941576552736544226993366971292497209656346851545878703902396812358580058100257526855126066537214308889979862984146693853667140961616502222354744470370177232901500063369582322163546199669289336993652742083026019626548086333246578986220215879779295560692407746483446739663862260551381739753579992086838889772897172561919975288171802892815691749780998721552256548673173367553622718162217825628950932486067382137137323675343596948481022731544477059842926136954407775247707629980550973368606187066765952800721829698753870578790404347440427693020585397654357485964800864538598887367545064035631105695938588090016335314620192836799241795433416758703692972331059184929873108071307402844366935705954800050742302753569659827412179189567691946538136673741729444179673306116316658535248993821594938864205309560076809324201118773953723071243628292395510347719667430217435150421858672178671308664994422110519669176311949256914226971786779704599469156694509206355029362975051834579200182771094873451687295172950838887372927688406085671973285592747035363417346397888900655655925544924542823458560977715974170551555781838304891554046621315792311645332637605499876911405168605098852533318316824184414691868167027026111849571651839512454316874943446864306702009805333302207732540497507580971489646883004362510575641676301728038447805360613119988804200141463274098755194425580013987155480243138670732417594630296916297605048399768467053817001028745653116247219276260400389773646612249426428804844853511058385897491075387216018182334704890645052655046878553322300261363834988764748679262425356173151963304314442097071450078522084160598368062639112606115873936925272575359997575258022189125277528307609482836532002734791955919762198449649582427050860325533005596029388967635675086374872352260443787224120301283305448604919242018291690244694213480700534531039949170197929035714880490241394110591164590978124384130171535559001683582589289655204215979565190638808797121987455754637905957591582145310835517438035269677867247996052288094420185997009569674116076865654461861604215404914304886070479362123718626825964787209423586070389092704827483902432275209082599134156812305815702482745621655790456535184472632546848927293562315845847293029239584848124754149210769865316493157170130374323966185145227410564495231856125745647186970914096814057835779703725503013374206865098602152677633535937047912634334460791771875550564301888037513259198698427632998506458805896491529463678787061114563281283304951500718048446308041611474717425541082045140273407049732152771366317358046387474917646702331415631255155648361519020905675792957401070933349000432207454481554733762366880509647986509392908510553256035606746395580208565188049187113163342340102425481961264008088081094865032813299122849904779628100605205586759224122372094655795162802277397955198836072631438719916657371828167193762082418718156282064058000800780205591455128794993647004739422323135219224774412260950638837589494742146477881686799673145056950182600775603771578302588535872037441181400653675359740119864844118887230139076597987690274899983756631032609361674065076656712427995350299583390909087815681586477616684943807125230531258548913585098364316783862102154529857827194449501108281084598447786452310733681215676743148847569442695603353855045716278700056155391101534271248346027859149717796283200838931516877787319968517347048194278839455811713749014473765538241644653994112186504581287842439114345988534967529373094011068730320010583765168511604935672350829094775821297638664980947931790500653529759582817937502784685482211075742132407529086464559588654533312304074340465053186426021602383824884848162025983251136331825269128826345357366013063651651340596962472578699317800853321882395788671337176463870636291284174929608543907326458614010572390955607607796129964968860583685865809049037455814187269889207326782428501067668981313468976758424186013477230516506081249828229494811245001395917634101871210249057166715315143001872799872234735736798349744241201506358019737645276504280577733607004187368240940978138249577108479173177187091228599453348430622838961304937956831606186256750746678675256806891191151073203326059236956896165549952742263029468859825406847128336489229178855528280722764178694311428994393248890755064779036501495677109768192660457610191086630914135818530400377888615472122967629963316527546122408411504507642521162686205789115942351659336361626183841345517531422522983303684506009121894186439361076128187348028224403651450620638167358309679867548315439947380040619084685456503794958354325234948727965852966123431912326315560915123154796849305046205509247027271391999429492928790576012046122693163024838120234680620833399555297090460777548789973970362996170689580448740867820557099709827317228757226716971474166826172359037045526640081603643907080890822226498217612495330833697713482055513505070247232750148075365569614818274158925089536860100455117663691681138415640648192091975384174366265786230220324297497041353094415653177936344408357411603883990824633841387097313731465961765311886947902063700990707243893761632154641100870414665493269270127030284765029977124538728956789764106819124675562357672223080459375742541476942592329723337789932871414397331362217655054057897182532543101922815293536317598042710229079750944764840408190166642511856425691991484613312235332790608636869863965620591100662936948145704883379057361081299458530407001329641553417669343215562564616580618890507325678512047044325107995565759509617000929253629603526143934348826512525712620111465517581458103379721178218138618135540391088571590719134331958437929352686549383925768528533456606404993619376970191615297136027012863822247673331210437056970358613949551879424226380613742614138062442025596512223783140680315283986868744743285753446556860792317695740402874790049376663409671520202424891083204042616621762593082076946276747740434444383351931010515539415714907632713020961651739377349353416265940843524418817570597112582500519884225009866514346484945333604311290907239711333147948239820301613923503135212778028737244311018215730042033884475129549155994486888986198599577713192491330443472707042218039557139913461068064398994820755396477778817994200370547374951314331853007938428972551405404118148126760699710646107569350426684547604380556711355766684974609456817913227288153691769622304748662926916601531117792867504801560754913056496865066959514601970464995384395685074161669813854973403366085952120996059785248540055298441838765283131884778305850982152298109733681334153641112560893812945786628767865082116097153786537659119771895514900385903039744029189417974224648418581885273676252538685871288001484603320446165560191664382231587156700446841190931128237485531758017552682694285890042163392631989554455145403699672188488405784761999841588128997831883075478640385978399610971045812672208291877342220225845955085777411023554498901708298776562126048412621025878464547836133293285396008346905740764122030471878764907120221489541800720982141552486694082037090881124244437454239337326422894165481351789841873454902312838738496274625561839699990220260485620731304947352860627442271131966645057713514185596993391635351104764044818998836870337469679355437456862226471398320334405988183378662725021098633258638401649586266174990252107000051521176211018381543531684427152931224688397031427376575299050698736304109196964590784973948147979361354958078036832669218244143653506213506257000054966955207174380353236325985777419565734510469747125345572003022783497970068680234481916035112681419005353651992781389907539591358913263788611570823399610800397939754809620061647934132994206586853970736230816187619534822105467081908147679462060606146364397462055477745361422853819128602520663221786944475783063456320514804540757334254775268910632903031486629176867903991905252373251111919541062488940995513027813079844562363692980767426707159269784671845935958765261483350593942807841639335099556133957326228031560182415830213504294823210964722737706012694835534637868609967373381805748879342576078599364512324624877405534650200928096853958625303880475301446470861672059710123101270348321038333851702330710933350348994871254847489340021984447731359352937946123208489334223965220688358246624116544230196722449459846255225739184523091255379885067187713646923667893753813985375092682794343712485599518755073785413069494087965660858500584949479975695663876718510656283419078191053038570353136411613192695559922251892377830707604088510370115550024682075580117319180447987731116307892091972721088600687832077465250787632503514079493771564963386612221782968158067386565649047715050229017903292240859431083623943227855639335688583826332079149195585169676807661291963411216520407599110438849994098149373677782378341846538664224772844415833485636551734999741254854606449449781856996340376578732869230035276940566309106201606093834699241669328838429181328064065076313525698326112042289532364080144234497632217176215402000610450801390321339062348314632216432879409105191510114706312173037623273811863381617747508326609471811106194221039119604978755057776227133276799858412776021424461273912862223756758230934448105136878650109746575932635469737706311503788313797688939129378131070500902083559854844646414547410665351582862942122668588610048296455506272462151294603088948091913625487580834721803974204440099110660624165284103023015757689859842321341712320344669744723182335161099960045706890238343225867139124086832078281661893167853291287756502681464861648722544462607638750249883762871097708529424804328032310340597949532051952514616831590038696744725371260924377366546409735071646605213042298227484142020840685172623714712307784578941781685844702050621338292602280461277640520992197532646640047085468641713579252985337334595777278682500817614659556076712107783175212870004846415226728265560208618996012897414204985609357454317192593828497229366434725458063826431295392289560622052987552104685819607674918765639143421061456483534726542704914900360784691686296445515296091949600616125764900672070880709202380360226201833882080910311972064752243495236946599209201934651508671784836001186655183750466159798136030654092161475808352366728201608936334405106100270806639492080147743661338690955290969663866706988188059350297069231702007627761836858357178134096976590479474456794308589775917327112030906276068787571887040510028254766362134629103272851183249197979730120106272104082572474452387391497572766487083167661136527881377619188048742752049224952338655357683648761929841503209228680529758743158168295782988937201959281569511671318781191656163204844534283165568551467240881628767465652265151771279789864298010809213740832971468594180435828223466660434093547196840077744969170088269186335936654473245377704173061163924779031453234511122676141726574029052283379405335080509547664717156516905193836321607317994662922395684753287962599686130068124732621625445684941765578477248701266883834329928162079793720372194675710963404684638490597015606081096742120834880102022513301657329789227797807030051776796443546434082559126497063378890229973139341274951544117348031339835705378237586884298098993284330047386416871426616010876056745923224997967168942171871898735687126174438017188909580441559222775926153270700451344865471736815015793934610786387875165941685055564401453174892958642606483842360563820936979509515815156591182075751602831105167914854048906389810147666778371302476760313027389607954880658013580818383237501249072659939718495285042081887101569218159641907415647501451865863443880961829047294585957600913340521630678424904807803865471839502052122840694935587387136482049245748090686149475800079384218968839304539463807502705529793431078433437011899637806480027938149716750992807958979166255456927050645811965934976636875830506988345776107556118872900888389818534574201800307362050340433992255195653893825080539131066559026371143580121573211636516998040813267263961677169619275684596233503986452239444382359774917085444469752192270101353049279856460657786181576115801912340019434385562522498995749299207092805679134145968427192770045257617040034894812345875876354962199562591883661293992388195259235852957864618521085608718386214689702397611561718614868130099646486619970970316413731042959053925486425933006392674497636856809212928685718791604947369516544261612106690191203443613857299554093543849642218316198777813065199595567605691135286753129274313440924262904611319946162080925551017303442439574187838079512924296076734167513962988872527331248904626423637222798602054438637965252004361823026780266913955470308979231829868546318725681672130877299876586346548653013303153301301839762559749201108770358872692967012039758837984757385942852030997759897034056361504650272292157272319952799144469656652296105924136766883686150424625517936845835527865631494075030801400947643202538609770841653188987044220166218319940483639499670326923077368020626930751617739368992118225397221556709640063863882754740393172209385680786673849909937996823956882956560639187936859914341494220801048629168133254306543744710186705433606422849826798563220096573183437795456250841262647548742556628785808462474677806091328754685507698791911027694948823830749733058461649717491898180538141902975846279323433858522094258866424335857303359408665078631830002179737555691777182689728083158030854129779139084723380439948032523855221729660948931984136625768550704278081108913190829015080698740298833995491348368474019266457645430388241672191021788829776462054662432818590944987936456909348102589118353135584144531731911626825122008229539394264148616343860992062256634302315405750582945922334562305283903938722202691705350250514150113035037530750725479011440569946771442836583503709050633339415024935352524006836413282388522407676818155669945420179723714426916545611624166625841769690477574341463381214232646341389614105242968639437082016332107305220514386142767941741901164155211718641942752871028484809695141467712331192447743165862604309505319849831710457257497020885234921630885553648572220742519931448896253624183691309452622094370093738498166336749806458064431267414775323784495944258484656277580164007485830160158753535611327460211998307779684851509982069303342354630587961211867194217010302627696127232527718306996743435108834083138040368082765416500701229802925336560883774424820341628616770982811332802065121844417354149537201232211771381473572161524049302689866945726063395302895374723955322219138076532770795087547220363687479431744391482426542306076787727060624229854871116315708820016408748534509030998287317079593809069190359679887801688011281176475834123727541959582262168061113494817446073672764362739011574240517539254800417171482742076878321642299550626436230485321564063880165785461525684531583749556234008121659032638085921945613177660756676900707727783196455684214246239492178583662874042143002010963078595617424433122738954851969728467869752465155086411908237712828753217696034905269889258489059703247379579017494162657532211256136008713315102474689227576042950173459066759592883482735156831179569137730236168054528587746346383042817718286124648574766068455406540316640573867206158007873720418183914848114540540702879077599604080396167654222304656770275445580872888067159154372742660938359507555836416693025159303504193811694133094498058160997140582979243118850925298544088332927910641874136272360743170272126601701195901344043642365189685749847733303077779758918650678337424803226061039689488536109696987421340770654054030753339240918927912355445026930561012519714742269120053855349070022805285304165109251220880678681373099748929087918606686368285972439182185949075181722548140693054707379273445481756123010718431381595531708739037423211095533697175896752483094993176901920768401722221877042360031231948095342787732605285416276772927500984934259849855614626262325305147606566440606428274521357265478995212428793513296094665606093732234069979548362929105923046914167542093130541195857674466889446300026545110656643387880526563038759751987075094697018784693097980948807236479874341151785014543898947323057933056195929199251068701972957939137840893446340411464215480008334963525973027135083528402713196610083950860224102584136249188113728883313676281892746280474547320740444039193595152254634724856617312808530150561481768417605794762356219790968481105703548262523756978189068969798612875225925305230569976256388470254615094374532604357030882157706510393951376365056945353959671248852218989414875466959971101677652550851461330829986095935320216346045918271941307958662898070652888734799248021489245960258004597701189651341754367864917073317477328901446042061599288414603229749679042642120124616055168199250843847189789803250193395811263264384607978097346557470967421418161718344896457734106735974298342035978025181632508682054520784601774198037211356136249626600834629084578539917459697197349487787172522686184544405231302187915889879312967347785034782602117003571718778365505221782738466994013678391497258928136630016807077063796628657429394284179207762716215178812633436643248931424376917204279393926417050100715874369086224879357282534416095155534693643735105634935615477368156903978299226703740653068062352908924192242823675808147993683607229334713574759303939621240508654768146626043204144671150091968947098425223779351411346471496004499610066555319691717041977275059401167021776596070506519738003444882914548758275482611257137561395125785496871359025738641288102598258251325487723379332681432765581399013497061238687664774542604110329610913788154408391629134645024323817749592673522074470170339754123799167394649303708838426580717079153493921964681851732666625799431884366458509832263320087666952753177638812350893332769168696930963789408361975271091037775034352752987144081436038045929008102904971568462787527761955386116212090334949691907451631664148964604395545581254859746048066663898969921785960256358637409047330689002771799432393892393204257255517601156484440079562675983051373264502426998146996485867481402414613449704626112825279718050701484734100236942963561060401942861881790693845935010207191929456314405366646204461379392816557368957685702725550017662273524304922772739524791282838808848938082573375552981444554058447968942413498056091817629549797176704865098721553437945538769456919997682871720200614079448249635693387130241595164022767244371699832495767106339742742797971284422367388337975049152482836928524687064235787958143853345483301373824933811014322309906621579597330949487100854617301700221060087114576347290671997596247016814062189359449539632723624714432261253550086646126643084093182562235075277997728935367570411791117273584712453327510656604808929517520583874620344912677614242309106494866865393737306794017155063066781608102424963421247090570158151561730529215588160229232637888178365277519294949577044192649553476432747401845965436574719504363738864395220356778323920144561038765250571946397160929459377175258010109242571757260618334915904821510252968821774655566583655873730908743449746603979520321936292444019432484221358671498737992927085476082336642228077407901424265177938047216869651890359054897396172309641809906780815074615619418863828268252018653821793234413486048378531605410314421736471121243367930038746877626872050865473266711580942117575098437640408278335149403351502786234276846748439614105707064405578761879840340373495621838424050657377264329644349964265825396780753017009434778813545279527962677728169232737320331204589339063251261424512291965786033741449449783061200785917814451787297239919096500609374365597765036927236917409422783354545192080408717059800584924479458126067315416753282679100776134752072977777645356807427866316752044311991097108208950983317514757570213786763805353997568136457367620034106366532576388972735368517140932868886888134389952834729168140791880279674821380300507610946863151469798410243413883322758168688215348004261956503009532550547312455907899904790947884575448266450148582178029721401778406719018509954481690267075056304640970953580655423206784581319173509072869270607392270293344263330127590808315335909166167749416481048190823913879541405197464850596089586483694516835422720623124147400576006761760462857272421678873621657089273749559514763643043566883403763331760134982511785064317072840261423754294080978153850627300656569317391716342959673432116946561245223455887496566044975471865083770724020832179756763569550508564733258319842406293384137550367743103676187997891080089016237227239349004592967134624758892757372310104725455163768776750952561773102768060451165580161443737996232744148231626528196591598819866887618432009497398886031242176940612387277854873310422870579561039354991388536622010536455688888047149564243282683654070012261070796015087125316775898320900735220646493709664666197614609404919436309087883206848078477481166483431384089925662098877416905499330481374854373278825865100022979351827381669232674703714130683062905618600080405166633717294731026750808243051746875724767434888970996324416990794016215081193508468486049223626342802906545619674579217962881325391847281610819035572290617966385124121694931155901521269490040978995170140003608757093253148403273620735759817118082306774380160742385189032243059159047485355678678570597092371199309449634407589018909390107430664973314083766072452718217992913340703516111766264677702584479733554580446909355275890910975127686775103998543365744188389640754480782521469637158201830331877190613452386858481627195045317505746147291402480236527443763240691012788960139567243181385758459836716027050610394214580375431825503664894586381760433034572660913278236980672986619730908855177564219785474125991562850004712060070328086812743133996337924009110711835769367628398436928750793501445352483159277366706247010971908723665678731284343689144399821546785426629704172710874401360282862246018195198827965388507351294017871142314600444327789533942084091796369316886290944474731762888080773061945290480296144434099313271084809280877623608540103978577550941456068407973844802436938650977236437449151251135235320027099196612894364417677528448152129737537443681039155230061169142191469520998052224790601134800039871517111642210830997714640789688055209099892624946485014006133794716765330621375546108492709817032532688401176808363030379924088285162640087880282093113572867683070403296365635623837291084201150913532022289354247837161700263688085702753450628158865661734338219191059902748715655889938418820543369465877933404433658909159398266328318961448794889659960965767406863997219608290408067655435165358968713764564074699306518317726468066360203862532215048201042329416616545373592719132805063397855519125626792731142691676830715111935662291459057806285394976134133383758672249697137536106214298273488862935813590325202848034527206887673853282762158301226081417718630868201362416817819256996172242782707725158580891713922236800563291153430976927494269317921948675125637173525489769374584942677102543052067359149145421650916980549059901357022177761104980560138873236887393344624342319319175257464144928782646327384657109941359365836932047512209573397572033103894632334171516892270698933990421231035539974183555792987186696620497717500202684215938922429533538789268179702480292099687138102111167892146375009007053903990634833045954407814197293253679259004427196013198662185654857077890267233100738376771756252529610721687614364454642144354877046623696591308827125700951985158142696130421998709204650001048923095456433758910125893549332338907340966531369268203410110992669033334658849644720001050157239789126250039465220199575167378485256590527147651355247497721303692855436268036916827396782114711907247364914991272855243390178355080137300744141019883232827031506486727902632639164423515740722628919759582689938941077685648683972877572875936783511376444135279944909584313715890023541431138571352665395241957797114655576089363179603266453955997189218902461477814899719731599682810143043564558213793502871969994112299126266387931240109441495269572364167753382203978677860399644687600140513100165365885016880612696032327163842919160586038203167417383033362789640941860134173355607590197826827501458017273344200605472356594339883011435393338543938503353616963411620442122204946897875410502457801959327246895246046314561610131563729976126642125034449294785363432054337534636413799067290680582325631236301600089344156316978811370429606773955836812271041205029437594053659641221238150839396020739612791824031033854762892164999998523653297797241569465148923879891428432519308304714735984527599450249639407320698417473862635962819936083461956250623130159939169749405961479601967004551241274973365601902801309443443445062043341201704637036840027297340776581905441990421206871259761401877050274280244741188765043141374158263885918628360769915488452377202950740896222844334197965203382535569196681136188914918354972307908389602575621838854359869298413057165567693911042552684941043477968705268650688434798549547928265180250269069783068385029351463955966867258001998583557134111090559144922780124035466286723548840839596627275488157923732835226559383105455808437437609928300269407824269367204299420573491880262665518055790873220476129778020740385918871124135925680745287513238933180263337370894153229396083757318157298006704927478274998908114607745068335207967401900945398038969812421539532762125841251111508807538383568431000772511920606063689364092053184413109834791175559133909092401503302764028402045757908936010923451122801309991139950705285820095230686788892439938430959954582669747931188066843769979059676225855517358835424059421754772198627213296946985593141504178124714973772544933858548592175485208247738994361854044245189390818576923968542219465002866951525496194171606491755793558638599214567234830372277792255126583153643443945656899247416832060468660710319378702009561974200548618607383050311826497425787018298973957153444610502820856169838244420153482955474635021565607727232737847242765433529921792071044678761548963126028332421697368132038031571093842226436707137108469403988135636117924707984039010305061809976272933172710938761376358289387883987455865608918695034351920312998800362980620753962412258494750597970582374968281924522880954797700285502428070349094260542717991141543790090052455893265423341277347552575904999522505743638645408223010783962697582866649445382714514116004525594387211972774755565884097458796600136220625947459703354804200059519835938435932154459106958983498587948545539017298285148090057150169793688786649344318571612492330402103779158882359073584716928844134831744878804746614240453160306231016338363086584702041004011845166935554488683389775204743549711974751599538369041598731642449772672820746271452980660273295138705907501525973312856186018528826169887441378041521382569419342138214195364935129166105785800434213678054382444580741525442230813783295221059328877580315126284633170058119187651287090496353292403327353085709751190318351436212622726009053486028921571274984973445601013361636186164323395075058004295656142060596718775747647214589965227893713457872515525116867528987358352404025927680915183415364514290492789864923880819049628494987231514297518044389573051355782684029100589877298957813877046998193614955216062834442498823350791625394702049355731739457057753853688098607894134959533203595858471152571656966476843140441674118174542605841148692008946210541014592631972707636489228649843050204012297672256803657389824590480839132848927495252118147476591368173569118996865293179939860956922746603615546911939300686550621783348930626654435083597801030681265347450877700970662054977597963570879960271808202672177871370582980526877925326109327110120960210046816954768766411881448646232576071476023050524989545374189515086906440200156927113507147415784256217718366962980045828086901340752304281959678584252600399332202712978250031081421509960674115127037451627757346276736466330259914654517256403612397482670938503807643003676937337214064802428418269998003719647886116113778551829261359529494297159703722763045806052512546633754249948700317376230149009913450631955404162791768159398180625999906071043516280635988985236186040433156524957628206695973274414964311667398787123868367664139849178764698220642565111968769747064479218645647284378358007768448606107907089986523237820995922426613887361452100946881856919116942930995504310631944821187986457874591021702067171975138319309021976596863411267279933334053977335335678002534321467329790619751628714344949104216822858168625453334194250587807720448852718158272167756388592064194227536954536569127573310800279212159095436453128797729604789185456201442011752237888619813940547883411155719143608196536047462929657586556193440460387572762169741093761473791503236573719143818164198729441422425218465119490449946250652701497312022835740085119920336355270188812345466404709320875298510748452148635215126606355162179959826548608352817446985136014911987795076424675954507129065207859858095872107069057551051795132821998887369218134903153680669207333869799574843146795229980353602145103141243904750382684318361535234952013189957618259599049930889362868917092722327127560313350516333532414244069136369661174702374709701695878911176754159159110298761457597133922488006456861458335862643239908636568444670944437306485070824382163435711068135896049469500816545619323377010079546395508857126429399268964457685672846808691266096687908284113425225682091718639739036270731545255806421671705659548236459578206075772582711579246832013616646913991113823843379996151969618672995799279012193558061190455810211774873220996676734588191829194396012907782383092886665134111593577491431489921548892841786785871826851387381156405871436187594395740298958772515794923378303607601377855168252829250960853725960123310904715048453568871512533330283391082517226810646629962437455290786891348025444333873920878880105198360644039972836191705882948374414512544410351064045832887940654060575115179869563851253768926293504045512812209805708175359570346948795869913360692321391484417212286002240485991321936726573522924612130958091755212773529677685963311538921557592248183818266927844414028892378759436488794573936224522923351958035713029229854894427608159640976958473713033255494607823533689498879033731453238236309860617933474159347443384581167483973029358086929552341144045385084333971637434288204709542866745951056782890258345480850942011705973442221681265716120300372361929343227120964016805613621739133858337494468956057940965534427279475307177604947734425339058459680156259883583437219279115987000097195822005820194048329847379125315534807673916493470043493753185744747665442520100409378318008271118217077028678055067282684127292963520812156736812262141683168001017907756910748776896744619408227462431403473287816985392199809841456043533580404246957776255943932973284319042515332713378920373380205470115632805521111983957547200600576945849644885032830042607798205938692365193084273765126106551504037809816651981966510865492450069219223442184599693109976542843501741439755096975156810068607022941628485034585657048937555355190167958609960290498170952613663252980670416463119011893558400820405836785065437947769073011309442193754818425663141371570517311059098721283230547759384292087975567105387017732611750192664720870749298558073718047215400591950481882758436645567004666375557689376485299081975691428043092019371014536640906977599776207068236382130588376291005436886594958060552569964296095814114358614709761452282792179891030429152932470505178917037282633223457543585291677798067474096042437390600524130863683916726793904358831965778935064869955472108579540179359119410623148915674322868907477564804241624672554377997504871281843468660662933656450740081827876285401021695778806057035622826643700060065889719996877077537308669367635590423226520047679098929913466861419590635338152930938251318894776921924586216729387006300819943151592533191279275106159659335918819224862555237114547879919170821395026255992683071020457646717294502555463950948116589897183798749450665653769568472345014629168938680124312783986980587698303510610308640834101747032095094362776755815437348135305504762879351056961270838435573898249901701893340037647905666141768382509173576182432960851453372247363208017611508972490573184956410308305585879576170060605433560450592182921011024994732713828401060279886634905092994316604179938926029370859616974161285683613921957911359974828138502263057633554795944548677345836373699163210307095903241655942454539838711688753827523511234206627595405405550106732831712301611344114672758340182501811223809753295512663488911395397660349200845612777227004039874956957316851379392094216249344310907666113715290780612165787580459373992464502772006252136346789437339668756527128540390266062287258422567235273382329963517960380210929928134753495106158323955316083650732666934513722485050185714702009975669410571263874447970050946977877882600681816337836528888885078100938521825184413910407009648822673683197509719613835128809464200059479923246182857145055835602651933199362793987987425380245837259634857317608695131148311117092017234408764322467942660305633275069350769666626429808543920696476749057336093809424952134840061975739804299807582711858910611316325304817105051376656154754584762982851588836463828790463249810012929369028534242202397429784367807744808715546642322269162873967004157916436423752814057259800129478215130076967426112526186421624023150322594630295339704425369473638954078990064354734992399279787528167460510358997372129623281369296738194390785433084185523686875824678473893673003778294583048260179341428562280198982797002598840987741641572208171396306889301973195571722695857486889066376355184332321129016907263967880901570313754411019078366481430098133130604403832022577594081170251518303683775206014112270439735574040237579251334372912137919866832336668013577648615693408139916136209673432750494039225414160996611138202245265256682672945462509699728005489400516918154359045797726228406168442252176552377937212046450401334079941953736112399219844913177376906542637650507649175129873769852728871553545483604182591128674966087017056918378074704994672190636608351227244583105852656692370588824000773517110433504136004961248013357637587813922592238826203197011933413852650096555638904236838751076815973326379886130519628293657615867900943588150403091594131831656642619412488708772638945502172900462112595099587218068465889923042935775753405305419973944924336214699763556682080375483170113962767013341330397797106459985256737910504780533317989943578922758280899048779638539686167332524089579875771773664660634441557861233872907385206395074118176808609743098871250936800295177380660706870244563611277792382441602954952578448227955793835709313253070741376345044955517387520920547498986923473735236062687297296858135357411161935922848407917105722643458478632173037070790742427266446289165820206697980460183944665363154934233136321828002878750227107207853153869789902536368198408649158440245972341426875935972741015083214557337755866498160558546965677213987308873634979369505972351387136475192621730117862766754726008485736322803210656288291825723803743520283304812067164069809907181306818320357380969620987026307063143694391486346552608789862857462290504509312403711971727327552294497806814956694449774605939469939114601528788584771329854581914157754453710475733508812964939816759692718514109527621644685358557160431076243370987694068471220695893456216780200550578036954998750833422896664622236456285147537585351352589202433686681448656070301374701841763403179605598584062076540483258228397233766286584982511492177615777562163600323421058036714124434667574491403841905956788524601470266490196146681800549807950987537767837390442506382220216855826660855268988765829265629683114694060856206112327346858509930467462941994603587434812768172086282866907368498483787567845893018897972492754062827625684389148402056083311931218362624022700089782730744215696676067346793664110152866732755835692859913886194731556314217360301165631120008316880079149225363875066302743506217866738152428900506306708337231150830022878992266061029070522085619766685169594112770826987836120410355207434632581826105877121126163710231872968664033029204652031191781030272377940252378641052437995020342019394289908869294176857644385830514573541087252193970322661692216457503045037981375998076829314042165888013116671485425533368217502404236937601227635526514462053514948417831128880561860426405137706952021586294170356247306208825569335140648025375778300874765635998073317039366934236101747138315928409864207860948365377826063257588487120608399034985246765382285167893181187411547845881168885857193588594545054945262759349614201784385607919499011300159846909059814867204247042800548383133065623617592354345705248593767352660638173696173680796273348997320309126935919604025307222918262924340781924792776405597633809689274170392380614044361802041934647391491663242728213615571413333145304947221061950015397808529784666690887307201087589452397553843029352463930157463424977800046670513218098685884956154882877568303629155020924715417547899691432541926169362142224436209811480722796666141608653806538400443513750644568931482990661588900988975153689524243337313745927051237388533359341660157569939707184131658326349013839622390740170399491650379312179217448193831868170270972691241337425529467048026980809947904592451326696409952424828486193628076780912648246003283258721538534770415207240934392005588260379205960612570579127586343603969521630795909913164837002011869675454127875018761855099830992189889892922141922380736118216068476000720464052273939348496415202708338558187381730052865773687252269275289089408900642399772794654575087122124027686788524676057333082314063575915682738251564869518016051405567416649395515700235520028115375406771109467281763241164685904922931314883294061760778939379404810756524252069974288390572353193732780622198925325275631078931735486430096987956430044018654194237798040406318435878605592517879818516478239390519037437083296800907040582001444425503467118535877910144657332631714202085638215017910931991149238974846447296145880875017492934018854660539995870118663318712968651468512053238284484192277284743249146531540677201028200618063488355900121602937216387103116506663884452233270515088959961775966698362525070101605135427836338464788401598349327491247573525368003020616013465733273247765736556402437496086046902200812216880724404782207581139242504830980011215075879752139263768276132690295986283849805322344350096103146604979762503184253988373361781355540483773850486597004144203779693258298181301039359803873618399928080940758747579223004190368520215817159563912820319014231494756806052665848082742342960907636428502601331080208246424561409079594687573135218342132282621965266073636868332275550026524722110519065766978412426116180051495290335258358246914063116784836475800088893799348275523879897002530380925726774781968519222938318388975546900819922430095224283730651737573256771782474071214537342874317164515325126333161892891386981168252302283574499507103011107353501531566336592862254689909754023795004094769289261848045823230922269380245906083807666062132563944884721566629434637492824897345911352935230546731650329334501409850672789505105036496434321520012732292218846480762827520040057483106872009411271608691026489171631891332563872176991752367658551641884798002256594600825546361996235637174040075891621286276941216601554217075256925863641886671206233797001372699012786057733741744244000012940605784307435796623704870260065304549299254642963177099518074594195922904043031371920464796788489907703754527019413592233327386778691079622146703071729665033537255180372734140513108924522349129203458574541078209653146852698535916364611560749676089065727087055712601253846980086528475816713213993859923313300531058803724363086123068952752415589714463065005315659705167499454928897998356062952591424666834042960248147800680161841491285009614327747114978255452039623709435569870345562955834569336611668636793034053062539876658777558052231499604461983569649949228455654545849803276889536608838815359452113813513209147930738279179033286725257936435898068077881701503805145879208538984990715652242171144120002748701810690021641830465425955795275767130169182130691730499512454361169330538054077634673995212777564148519611492336148617963517788079280172458137710687089239245331615478042810688427964834270323069531777473483667649270128450565672112731416383182019803245803570000544938396577462826638961805439213239802006757537648959646866958712869999496473270812888727127882583518330681933654244029202135183475598042138916324382645775050076599343315756087667992681058654048459696645097645199745178914723888051902523470636419327479904888125671645296101302026693121980842012194547739019507714666892291621662883289408563104546083583993785555220324849509384391097979550556599209103906921707019661223374586673133217134372862376730242023413783888911118045301358611186701914850127677819522692735339271837760770312459468231919556111356572461685311926818264400640822230262533014181088867194109346022082125577382432093873430633144550702265889196129824079701365967582580486780181056004074195064553376010159362995870067839968587567163019257217998499952200571506471137194828257828323302707465596843106915860187843350302939529108257331038148814911094744320223259936284899261938452146374959294819693439996692784321552790568243751483515678136107343921048823209235260538677021196735179510570455602619999146089569118856045682011782565072203105112955902228244698801934186310945631438667572679518310154638883429671748486099258828781076893321558335665569628273555944228931265697971416660935065089408120404454362627762998622700505806462137696443206920753563383970126448391569071124845431047074556349036827977793114243212608893873012217883692972492366341574845888043765988975998726129144137525245529514758049190000725797574482599414477903934095268060170587404307279222377356327775406045003340859334417646507122193098025075361219690157366569895780924891520798785048205324047379912439462684113424291828110580246206468245318585514163571469673791700123749171566118772020704505880241801003418937387218466404835080777916230799295956021404718374797036886364263996680923237138372507377863064969600993291595766587122161932478459631877945095486863099696714299100005040186861683682304253492459744669588101364987566667243022406726303307850960453381090577177021500548721091221726632301969705960659301783605369915958699183388629974700252414011762337018556646512814669438246057236949007001143737015646035613145227885042348167156939275898104789351505124698074657573059482104361026727507702452202560310280920847303443354983137513324246607492192503409569656733306785187806552515946073394058956977456826601712399307861601604712512071633248776178520781672701872738375751555899919627959798575569343758047932492689199881960418726130286899615039984388937178361242719785411587836106976697226965738357480099902337298669174426984689860876207708403874645592789326056867690709493466938931612537888297848082628324967448504353850469561665972649571878762907942296373261129057968390582953215610691099852798524303199318529159583547975573107798099204337889204550394550890685764630560509941147132066202100856339261805092521841417443643303217180001979040148164092024194108134749298115543699600588524223919471426436150250652921475241178362510177810802503824633447900006768284484313266050739969248942541455885522172005307788609855728680983388016028349291344318888788546604360426653659819956974462324965134700235174947159552650990685170242733821429912010711502572408775189241128487343729931060026170846006028042939938092391345013730977915575713562030175362944727653462656372377454509596995273942350683158912532134098486844994357316350561825365338854661527869460398409914994045440411082335994074957895613539594523613125684105179373569477191110981959687934591752468590536661370047592806488668583341659418715855319082693746946430162856238612915660139559301565658537290759300954422845309820270289683953219032487862457867070849426308122523498380858574443296088553266173977579209724876187897593060072148449156673226904635455419563532058601507129660176395517148579399251997528066104283680674261695943538155134833771582860260032755440432545505631622240006064853753737989004097576922837850461913520665743936356567495198955050349954141745272901315180837376779535725351367227941630247874677156418188786533578291881315973834904789556556000070430495784200254727689791870186081290049779540917232460177650381119811089930333747988960242081619044386149579652817779590984230045780278481832874864130555935953773378223538468157025838869980714220698499430498907238067805807858906350289638134183618214739917480480784548501796930529917142385745806262980835492727666943376224870405213548566504130749616713787886051716450067170416299500510696357201266335848095226753599721644025635446775500867765301855154726847261725417689460474767081002752750567813005244299837759646329186819128615202256312972659976028123154949436865813394530635269062734354229067652776807967950727348022272466818612993301659586220670743616469267574682418051218918852421925373780458226021012691731507398061516383939913174755896754353485054464192675076023316495221866946475085298914414846893020460693358514412314216889317613778672982742178258361581332001380035331086103195806776615342046042686280593214526731354238140610003532699926846059281442673460518840338572502625808941654502806648394291328351238153402408603565406799436078744942709134096683104733595151534766336271491497917803919466190563379454356040500014541768358088343897097008696669477781374568993145584014076969675745664963575385215347992747112163104959732813278814171612302070779622420766014911792117935053429732747236930342968968399100880232218286011391826201020916824854459068010944507180027616624298996267100798191387918609282119716498782610031857899203529916465810325303623704531469022445265106323993070884930349037235779637317920782273566654179931233760714660247722200158199074808316217020154524446030764559731395916175201315755399529799911412593634003033447729055050069671512049843870978600380136181925975093539104355376611131083551124166741134431249208565403371464743777913867338803867118685264295902999632415337751507112877584945739242435827940440717517378223436419275570831194865197300245351249553146173670974455036042081113035251782478052858620812943544333821155653157073715881902553294711185059210560860918416137458750850036413664438205325276059050374554113385805173629391184362436331522212552234154458843448905600847908854344356110629707784754106420675273087943615954551426722233582857457551162669388042361300546100365803241291804250741111694599566037146575064715479904367109486269586036868153477044873798451329041795582371243871369655790447239908408639905334919722900317449573600692550829411718997153907718086457064508351642840502427794126756702128829536430784352176238273553514844885193433731934688031621572640473733042944653337667239205179417297931228816695004900944331075503594902541772409044471466867944436362458113134739841174081399561883603152013845906847601092382388630064498971822988037427353406741713006112262058797848239997877309418275715649167151624057749631518490720452473782727410477982142293194809308354299750019760963630235920514120841981609063687213451388621913809541249371663931974889998467501226077176341133479505409497425102084836427556165269924509177659270545212821202781826755890555411017302048360775708591640936900359224881024572073070284721406221474927387461529626056425220411406046953592843229779730304724420320022087051691452922297230341582133215915334558672631582293151550988434574890249111947705863150923608026068852085146872334368764381107242945062657183824775151719818957696670937969763667228567439495320134422229275660269172712365148245852886113253868925980233893022238561515534399600102010674622826490093977191828386654543811205359859513812197846301777422743640496221975859849457817784245111687446006293867837211885503390447096361798594825766922635772557423994683355326064452539195991509550918266843182000854968205807438896664821770282692857783130480215108361794270989229889061250293623518192385505331576129511088707488431890151828320376301841498248845455362983454196619476970438598831295242805846531329871321305357061146124222652652500246921284059275154926299903507852938617837364264873961799978837199714623329222421266463067087386169178363524212198509743604888096041362908889858564663881981173157990791494607102069491429480222822721494954859220003915669346649000159205523640036551485052088681948570483765620313976229547340354683120078982036443715271022876866744957933382964571956885523342849676102282679947976046652047942293961088691717547830457635932001324216670904792142738660383979516301350115449199753055998285869972913891376176985779310746026151886949654973759526803811224094319814848695499384450061266099696316129311850671970345535226799180871973338426327832246469573000556793369033779520814327464165578355303905763978635417955752042396901048683627013090171864829362778666638063831701811380313339542930339805524870279488386949629265296051317249197533946053299553587954021468789221674603397766732000304959528205837696971146157168937428583601435677412911230930562111469722065041383577322468983241540585596013133402192250059868304567365819997017908704437892061178526167320054854880304529660652622105039479377045687516732904136399214312341950536754299530471553316456556155542547085109878669294232386282028157590338446234860158322199719985418355141742317856019553666945254909915416206322529975608442218705548289750128756161778439474336922721614943351608241131194760731377627542135028239665787157064124206446187256524937001337800646867076914976455092306732584495725748796942278786659073279417208564411779920645866887745538237278737999650006732499102506212295928771607407024387944686052505484151743767064391786061928111568174067358575559197043718283180220486128335200266354868103178293180789464060767866444716616514041221782139643654089959569949663150187964808313626605354672655664161126887339985948953530860252114482703426821647294232318925721058442633380933286438771420175799568668001367116783693787191072234250658799335489208253570534368868966393193932209706406943003265175913013714492073643403434335125584430802000206944395172008006701172845640440819188331084778235892634562023970312981677630645445146386430447473351827438357019109577815638431019462352633902436596423183838535956487630373144391018114066986002347910399239613319560551738655295447788755743168534299565540783100827237995934762505603226313385590970877450021744628790425292923837656232760898166529235830497304213550141488175197360579307188970701026581118543649154312973816020266699011759457696767941493492730465985813127970541624795043609562796349201089416979446497650821673812788162206204393310184939441369824141868621642286140116065928098441498512259596233383938928185436612265777968542327088777013143252632360319770026399218959651974021820995572647617640822222465600397421805594312643616405015763424370840592604086712075196356427423460208103106170349207339808918514602392585542402908969269293221369844374369116954189730368984004656353413278714480586723761274341741749929671310035719150298833340628472572856506664670069010925759460249973067095750350957284170324650432749799330212083825347240289007702067848732648204023013743775664801534440597123246818322653841930041780821825926283390564080440781927175338515765265010365653421093813251832697653323968194472082620940706726322446963323722452678346865259321436128438253162997168691433423039412459499789805159787421787792882498933122744362149908457156786091196062204435268361138759582074258308220955192260408048476965163058345649540293588208859630966698168062660301762117974399412678416722583464962606756218039433140977705045029265189466208041995976745186657078222309841798488322110169843099111845196543983914147323603301725358135472385131987438717217129096731510547040669959972226201241158712616974992323519827318300673032870513292775713255761021894593430761657431524095445430428177870084664065435314682393447825538533665508380300377873738926659816722219306754200484118617490809461479493878328854205293832675044156026744817883736115183662650196006818895592228783259933759550718909681365847238313564903664844310540897506241683522341926490727438702021953227874275978566227183806070882750252710444168351049724649025033398977651233070195431788441208862340325009367468706531166982904162537570645240644644497578983800088565001727754781763172385194582151771157895770042928787439184256093147566475363025049157386615361207976300711711660621141634746000706759508596123059187262872369147077726097043802025221648250765401702800725429892013065347144316013572943648500810304372586614401756894206839647479426071662637054229500061577413063617409217146379696588648795085170417888354221423799383850293435871864628256446336673980934264075570441076181084171350513206568340882178903695484582881096920490368818829516808040237959842675901139828382880563107964422320180796632373211428373796304732372520023739640625330818662405700260465587364060088291591965314025573872220817402632435965808296138928032961745102493698841023081946006694834623100792892966169826568932619266612030726596047723169216544434389357403922235834340672101863401614486216313950524704922471196127809865332891984580656491941018182818126857386105126576038736529258145997572300441329072710796962503567306294287654116255795593071779863447899051603313425602461184806730630390130500823287963002781052318144433926454753456521326110363873819875541984384234392634530826425180545209109748639822843537593224893109459205881456972862754931143641609337755531015746565710365862963851525728710934208927114762867590103874342050842088882469323489441625940671161272019610341910308350695803211956764861605220017020873394740628864691630919563216993598333788983297035995616796655427552264603341467726216163925315217343443757220162453106572311471125910667247706724246037615931978319380918823900886897554551299549461142234570481941353703790882826065917768926055316278296703623894137797775471361333703296780743754195002952022617194685374485723176842347841467895123937232336898199991043908183956828993791326028597653292214433129283181945620779850153207143738855884288959038397907917338550000579000673133570563365545668789969197757413788861403970619927156097699864396137773298080450171334118067154032594928459791445599659860757687389612182292458173520668988442613613978125493711913633531609281589171232642431188564435330118064306800999171402444635278724562983051962558261259430773319254872876243843543759305326862726313445867277464995999693215962274372536061809650430027514892128018504806336662809213194335871941303135092726552083489624080406114102407653872444908230867399079797141052424723676375395749724043406083310865904246200735054829257476436224871325368634524853420653092308921151046568874734204443448189775650829128314649816585097176518917453056025135440166964200237492242929534149166680933021719059863084978743158273033618546139024961019561783112271465657981907934962459280637497318299926387214134852933484364316686382491270349054233004147217501720364860272935814765535857764521459519785750944411468098406855796436935492017115157821054218594946940882892088822778840955426276640618838925028016497705301081663030381996663538044165549596685093033074718132265378037548007758530553372673103724010312342011184211449582434241785728878357827757782946626436344066178786042223306471649030652151659681455725961719331117218633655584958755356623206788126847818475230753620921494408631327831243925695335266517365468906066105900303253255403287404820213312602547770103325792033322434418946571473073077000697458390561388268516763355595869984336631370638824078289700015897252169030292587531723814902451472880876319481732049179730111201742728354492816304145529233097726231358571011228021849644556886721774837332860079497272027063328151238647325893309627581158309749995105340169563426025729777774524045597058146345672947674130645818115379722821215462548333502081128665376469441480802930296504787645136183973096575234705396122173145858808278346800791284520793083010075182918981831759667690254785245318552884528934620927570602961780373871352906572023048455010141737141970014600291693096385837817011962079165419331422578620696094639818722002572166969243383414731754285914745905082615302682434331985676688843939257675523346462338249381298803765541999490968288676311045874693614737786511621285539607164958430181821449182772366402548304210588022641996256361691339331288878335726161703912201414279076541724478684385119155888311270001756869104991808548005928205755171454019480208342421370917800795233503179080359147756212735692821841392275813747082222505009933365039888825106519210679972923183350182501168357020734198918801305129305856194845539565052960845717152443144444139808339303939454745004517444577948076545841867850514930163664585302946201649823470242053352060977009501779358260599650688858713587619376508389851465567744611334081290097099900735923297424169141968459274148868184645192290813341475016179973330338360252536805927398192073643939066900662472457808947217272038025602395178410615828763870409273236003463922280296224192441989945288484564859595713128231116087853899727048677272072723338520036079171718840522747538449359653154480658861423453888333407837504497623766841008561255370212525044606490060246125145602264389700110646369668808161095715314118856816094593573602457346645321778665209291306915949330065957663203941310028145330499084727077911059427327767460587883663312964502210109796306218740358520280724064517221262030621718812506184189377043936498348130348136872483639174307853482507716948716690673202207159961619645498308383978288238232191128985416634854082915688402473145488211630620819315181695434863775281861629784837454636527104432263999863485558024624089118318976307638093692062144211361148095849178245356172739492398333533267104908702905223638310342344541328207157424946773745015570069529826902866078158657509715342484605144217188926817534981019513692882314586070698858093149111711975201285974682935954546311374089470022826000599294137079040138029721026964236740417449607936378344612339441241658318044794058157617605073054581879780550798463258247364543454617181128473515602054642194833826203379910557660902479516043852691632972924628013190064279851779155885529997036108188488159844149263785429582010507956954594252662343609358187956787552202347533451021927650914905190507749678683363134831090820706376528947354231361102391894932024433907468565409034961203910904101946153717253123638649665433042889660999580248346695182825680663863988443519881539662166764130531096065816721939349657406728611999630542952310663409687348698161065584625006679028873792915736952818662687422629126722242566405950306495349613054843102825615480258038472816448550568058195464497336634219225465726313710606906102443197947382964856042571805972950463341656413900189126039724579677078117232282519060778894034944381077885967728755130632790826547286053488968779949391441380666540944363045714064961482971990599192026141034184264813681396327202995063987415165047356877306210192660012048989377705119733218913262897561453366344869458556351302429578242479441391668205249638619823582529112417592250439194661634836392931913158474107560752612520560176822755019902220952707224431587018944720793319761538796018652349706077969096164915945329364063254113394646758877601381755162781488153206782942270113685479825853522761017852310216119052674257369292342539819396872147378138163911965993904262074742336787857729238258026785871602331263423843240619114205127245017616870214422199208209951412252571375336324288342808870427285865598768604725432878717361719606900092248315573090440131355597913436463961898384132891402507646957107392956268156731963825915131583246262117737570732859026748138428255150271900008445454766256753186127912766914434436182222808629516150385433107931348652253815872491658228139353582960150424303783788889011129783347730613654648059344623641423826150046842614034509228178293471636045546492041325122288000414331055928877721429782552392352921315619994654242592379507622965999328233984745298573971733513456681792399006170337458127375317205480878934744487880276698865433036861163527869818808636140442223788398814690454710113992353729862850502615608480844765964819426587587149640560083391853026811221406383717484754086893068240109808219383802620529331058940829911149741309470916480285264958692959201624654200490019305331975876134913702658921705626399674848202964741393493667858074939095845134404265315346971528776327371835778474610252693415443588708626273661036582469370968792494488225472999840561407862320688738110060461650484833754438880984698018029527363066345821503144519360668631984388378523386602158427618479499066037464753682252287382430463459943785043335087731639720782757919266843375923710437744570044201723807167953715355333808675165892306916554305938719568561148253954585742582550013783731506684974062709692120000429760389338714034874592608383357660459356891410677040380170946626511015706550830965712653734514246540515919453252820500854393438792060485921484830995793683934331545254673791325665158746327124727435337115677434193857545267185336150976829676986286051299569246081454750487571150432382316280508116685029939728431699863113142354291408262448634250214267596385528138286312727686125982359984218819459407420610858535388845527630489282336760167114571426671277668173209001226519062467550389808332549122237851009110967263573269419621564106868244495603212428201395008307941035024895560069612852689406352850255123305307012059091871075056264591872468088574440923448990104371810776500046752620410296583569333349092904455078305180567449651107206466941973221925999761792071624060827217543476446855969388687829146108819073971458116921599076874197146102258427492157816507895259733827609148302866292040873923768299939527036887412278695424836085493457377530690941438049977539431489229571859178210009190771576042458738018347322281654119409879124647175449656308073336851362816578742273925551137668817349811615363178270150950569202204314068997290478973985363980107850760952405163920956532619121791878811743428408000352396902151223053998182564371697689156095411121472814164145397913262671256577306486427155679441689196924711536498145155823749937679650333641915563617007847340768498906699599432666193732518335406727900880570753222668212763916383265155509538105133662800684343180951591016593552749244431700714155801067433290700515472412660670889978159216124919602872340008228953868254925174189693051085210485551635872079487183914808649290625332951385011775610148953727805292600724393582932609077716594175911202876537341948165916063470496807275325506024665069507231593841359729539708793552968549110466327444201072723011829422675531069285709821852827878783958556729613191002599770884300358653244494826063968803617272342031039792762207115048094651598305717946809710728442090463321952115118036232210517728500332599677717118091406090742452574214088975147093505122899418589926198091713142110725039068796823049820645582710859442420223581647380947105998217743936032970785602946215388190134882009131661417689672972276778812514046753042360736183149915481340920623646471639035981038934981344004335987962448273152984255450032563032368803288508732077231217859092066564358491582224948078930384533763094852542307286850703338677518740173080819517010139044662191130209680080952762912970979933199675723142518489496745624074053308741196924956468717614839177482499612273649714047716358558337846149222861153006466483322146224473257524795426457893410861141024601984383092802669337813738929488926680696035801115333128767936193913427413517722667514870104929156362455490571336797819462732816039660085558260213525687374388781025308457850449145209071529924714018948531448848539505113568469125299415190589435419039097487900252527325872273896950408467331904376981174039842538803048002608669087615548320737565377191457700219079247741205092163934267619447727074435335764211398471008655845802633241979426910828308670583629100248716043397847835977550462369669725780730124416569295062762734761201909943928089167270940598063637315318310331431560521703678035959324286745687760622102959194606064137995463739085446889675943973120764458806533105529249377834822376320838176200345774084680595809379946414382926664420204831069378531243567475480682785401885155808617953148246124481666063570117748712493374653487442222320152860331889063233058735309950844047752182303131801458011069281103836690375759165653330425063537673957982784726420103123920211446376929394986628303559985491280974619768962147815343811478969432888931936304889413537288925496633391680070568225931909384422882902171218395544066161302689993162048082767816284411824916548194628381575379555170957886465917220041412101097317459014927994173590339033593793486496957044029640005218328278917333769651710482221456373508394436555286121504066860784226417406621365133335976542691052889249363507520108180083494611239638300527566724766945059133955481228264734658042987391479055163337303580406958043020158648829472925856969190930484313826146917355733188943851493525500178137215917861257555643010670346930466290340821259980854868870729477048031890218677274516709581928465561859724860216008328963596850073308173655153914508423815711009446253424546455674145254678956597574836582838771677949842498686185431479979601423903362208364226672455054511175985784652386605067070717635075280833818070463965312918295697051377851373073482091765309063208521790603116899323731459925366118776212666057351514040954528661881281750980376063733314387202726949759571382198946120940958383434890290590356761075338989176707211409957933510741197452323642984454061335788129141650371982000563907412182659679035573086450078931616248044723597630310401703942390591215438010433939349091881801968949585400894298356834188269997367249047947928640002748882769023293297764915044122897441072195192464136152817755567457716175308744652902160002056599980982060712165715751384405401021406930448516828046025507947960035459750368512874295494780588843292145841091515150033313453867644118523665971941895999480793751424369747748239932399218520240471860154791744522616213205031808279864183617771634100923263597402634006395418544059145299194175155378417662134901420068670177775241759886623997617346459196176736273918955290531811117263533956113419008954077394967009222646438942613967022339659499199165508010516827455217179729820784347904626546471318995143114304213461584792868683437144972798857445874852155241125053035329941494613401379425060731116425504899486209400508640343935267530225111255984004206441641961404429542704503691474231567907514162316155549787846356849060829824497295836644126427682191425719064957955554906360925269627661029614413580944978679640475450887969825700985914592630868530689578317479393959176299164964184122204242069973349994622282137026136134799411910298685317203204455055805254831948696910246545985388711311594393704462856033852068747707762368503506235770102642690057989566087295524977857525191988512230348151198567713746872212224027697994578239385225506382907283526353253298741890876237808304916511401171373094426352870659981764827716374651259253821999530298549306237441261754839011983550324177400203382254550788317283726145149340495572080183703116724086032676314370286969785487103264470370216527103226333588845465829475817420743388046570525353420236740326418861446840480712789443235257985262096826556414538613097973345952281536548706540629794154090477348727527074945111586206877694785450898458576353265516351772768894508111345575271550411782730167252807391090445436996381876776028783328886633754306715671222867052710937410719057880473269552120992745133172634842471847231946183592544997453917466177239686855467804224643662435023887387837099871009325302423622806482759000826507903193252457359325764892470982654074778166547681028449945151379512657492598701087491488805527655706105331402000282089839982284894699927385252321781909168598430292780138880033396637042846040691124225263961924516369561541260881240144737727504197108969057173043249153443239383653440620774913471935399079536935633871353754869676676567082791328247086370669309539788688220431946610814889672500612668139382301595437889081618471803220810627314117453050432638762575901060054078875661209079041909925989347891815410340799083337707197388073626124882575743913774424974962657851249755462810131183196168180313814228513101588233494652772933720309695013826980363998054564648285143168300536082821029615512167192932752654366012314021535049390678496183180024489705672485468605284216949147198619323489543393947746386454468449785139506094250710145127184618908047315429246516631114814485749006222796448510466170280089234198007207171614600727237682165390040542432753126019599031896318361512651300265848214527294032357268712508654341544114525586225573588597467109587742398287113903114212753851124625270369845381540354273311142373684364649254523779482389383948692121375198997898954647334044646070815878796584776431977290186596536415413170750426154310155817543456378035816575805862776568305747030435440840713078919086875873575981443706158955682196828409405057282731641378428109431245005842487897037456573647051994621836459856523860508997386927855601028462996467919574362059777726936928930242155594001095967514395610064733915720835722504302483211764368235874894685730446215814249119174703907081777758532758891709035171263498372446077159252178590953317252995536178966612963950037679676274946922568613115130639986443194172629415187251645099374363764675110752868943263763070134937664067848173184876776354188866371392312139488156619818704962357904119424822463939888347555782102518315112467193357760695188245019445943613540495546495166888327492970465711234036734161648348144665008625967138200400267142969840183500103118982416114439219134694251535433969520646727659417290561538392332533751412749947297442532591914619231575484457814403399558923511829630338097278715116180478466501431555834657035188541000992187225072056249461672183134438726828420823601113719316533147941567774769480479773998643382451249507141735674679955134918789975100789738644378061249872943989598815813797332608404052540783465930739449112386061968576425068457063926237819897948923668447436733172891844744296160711398269426941004546129584899316880626117415899700710508126000963775137474467627401256928408531251815206583578112619199069511292230887162816263652772498165991264132049803258556614390367111720915605835539343994713366768065956232091883144039300881562413315530025001211247870577293174154567267486162407514484489263656978037970880911588091481980668821246434006638641727463059511635984674068298528836699287648150474030490905871033734140230656952169564306217397782962275343988112120069275191145253513720936958852615077777774792955139398818169576662724446953308431889427596364111290738042648794209179814945277144793533951241073736209842326689508057884773472214068575444716159983518446548548829893515571208365071238346938664995782443308905249475158414634540526904816164783949206717244691893664871328325294585536787690429555700440644738219036035448604250873996166937380109563792330842998072613988660535991995768294187811513870921530904521619584143019812280053761719787761116003037975692735238294762912547950944494467445620612612040477849101020713945394047693252025433285305039463909876165775191394983618267308792542710152508813809339726010153422643795441064084575480306751476375793152642100956658371863725956946603023095824759122006373509687023213598155366736016165915287328224154607303660906500091999715722253526400424850848522362264870887236555376601643604380025707125502165125050647233257204637727789110729151222865295627290063499599293939755487753586869296511695458239369565424703081975544973823214900946976737369831976773971194328429239984915686616282345920332016903803442660238636501731254213835874388249487888636343807263133805930090706415657824845809141666282358872661669299573570028028681869162870194926311074249811945417154122519316938071502312062958541031153461311309353687491268961797615817453321024314416143198136967440382753707001113720555597741818651842596062005886205344174079623279544059072068096216448682086347659230598462245845292846224870916193068331078780514156418057948428547381893941205679093223384144583676347687546886870875257245494113702430091563579338610256078753336302241257969705097785095377639143436876511815433290147661178456462222841129887581005530352479842177990076724819931300999494061671737662409180543326935777220509513103697989987731187468338226142827271160273990211513585375045340205711635131869867844761792184695078283413145736041583862473954613589988079087026286079266919145938512450677349143456322511855858759299439679267137107716965067097410465302809984517583117971577417108376300108218573913290167139247285256542833522909473026991214060716276295489495797452950091202181922698227361737886878257123671534147887788163625691400107363583688382409002331981840879925577152477351002876164665957342253363698485112965555024963438223111850415348118478897368832749810226149259942081901575124933181459005929059584530812369171688172439162888830137762524676022646404970187918898313480988406650465172081949495967382240786410235873226339319160421518574121936594735095738794765394454907627268000248557970135218504795703832240665958382348883426219335110441307704969274090216711418574085097076086377419761721980165959690809097588161919510165818747326171638851296738042699536290529157535717673371038199035887875154714683214562186138619126059634062540780145801477951989408243354800689228890516335448780235391751887543946247172705241011897581715740236407364094983570664702853177569830628300760385169446128487922806349561989642949148325551295756767184723320833190827006456228335200673003444769186527861749480703222629476904330793017491479554439123633669203639485568478156466760015548312759951556008372570446609449512173621182779522588666100405799599223878429548290514106515504138192334177968417693066980035011085368481133554965743386802828268215926580056134608409530861916270433140421920598000288316196351768031195799446272115022843522767947961849372503229462486202920267729843275321534867942333715278826097467751808756595206261312517494377398528660794296329570878046135158560472303533307781090422391905616578960698841197570382625574484327509506663100105756509872788970195991616802843532908374594307614721310365462648841965190017867741010173197725969251478586616704220559888902645410620158440955359160436454277131622199972474316562609020404262100229458312260611739873890898537551972715645185004859987489772537735865249697877340197596584323096033430899797840096508547469423250603806654581968563028315214958130864436059414188337324963170217439989751419823270119248645222848267701243093363465037076095464835451471800068864771667800061122530379406047908176613711973213078974211620346267131827901738827795082075849828153524372390452707041055804715360926826458744087031510235969857465323559810459442348032781517824572216866862621158970795319873274170235325329677172491743977795627804330394655899204590051363801243246797581040466283235705100555082418833191637381652993108431166150425013922453849716108926523334501820536902189892091490559902752838891162801819431861463298203507379779882996017544087676767332970463836057007755763435838366339469843359075277555668639421099739240747505240921693683319018810966342404510264014155142451768799277402674160668567304679358415546589119215450184380829092165788779450149789840511834325399213378954923986955733286439767370510542274476780296863853892387237731063717780443231760367983329289646966408107616828672594341543004302399070497936955068431720451690262673490151871949937816646659103083060233986146006898603740021473009217636360455363086104226744272077161877061645712685886356327095516168539819728371523941187097258605960073179170069470645837336309820320868053163523883756101546414842274665129442131162139525995519199317313444840632603473687860363894037231349906839322730447673148374642720791599034163682147129488375139733372560079297558756572086327003868415988070164878804132265968197990194739458698127499483545780923049635147979868433563519326175019882560713671271949070967962474178564702058298108803447221535652197847089338852159450646904982855702960973928139380383867695672743795414363448550361885285672714073913894278711047008300236298854517574507588345802105328794662237097571299287023017153269150960831321279483234578038695333654881292642584581526187345945062242637480569138381833293787157345278545383547597100993381813350029267999003649356334594325563352650602627212668604760106953238814317555398347290813378328182993476047424152512519460531970620672558873281852837036102216336069939736522852768001458937024240271663788846058310859316152261816804884005869276508425644589064852579864304704907319704966611422985901689455265138322130282946900233810275105810530160894736121936833947105679387913143855403972123610999382042744234061243501229264190668022554127265517669812924264196217948006876050899808502361369576394248437631463633081260788047331295654120687838542170004228795842909497811056171344772590824600548634542250808158256925413265613984192413920387858231828268865448814041286076248376060131151949920763661367754906266572661469886213602209052839316424517341453011611566610162555160020907956758236494606729229519903186896730696309777821031591542165279898028555706270427471613940922865895511360492645011603169241512917614331228477611176834757175887701729690072183941982449487306330957568355846420685616233730308101859201442070120699202095240837561946789281733829557419554705743568910540780844604332521196261091598994208941503052161485451799651218308667891707174166880871882089318477006386954541665394865546134754705064166189704324333731278923664771357271485050022173910463445311741970057354299430894459797446727456606653211743427079006000679349512889317648109042349296744552154226125373809849069360584950537605073568779983775420079469214022968700200944728258624668943266178278193739502786671018689044498100106818297137946680338482276660358787524114367081240103132305987437172548225128328507857180608369551678884428178291601739093637450179718094720658942014294101308881773832982551399694868931653716652794216709524691771666765250952872469693927380399602605174288525404080506215439048715684657864842645040741121222503154600719568000864854678398259903626179802623618403544721417011461251297865943800684438166438599269534689318741318218825596687807598708879117408040094908393328059295228006822760449088226147816133298796336703972000553944552037841984879743339451719645615128832902477741044001327920282357500316400588643893405962224984760669563775129022747100721027891862253922384217102855345705461539445307654981041562562464928182542834964759599463113105852141600415058661729609472674460329917668329573607515888209869904533454094055701333851752237245003306131254499689656567722003345587321678484228975887104146002959824970896398185845285786081073036411031533366619527900336860434775380696774851246757363457212194790134554580221485427537876895261018533468963400235559938037854197449127880420441908001158455634233611462481921053697999752421142657713955902157779819569351184588562583503598399072675825487314614725347900788181596069679289038877720118047966658997934554734746022422231119557608039379682069872183821451370639436296398771186950524517390299031826869531927089437379645060930513945264955940193538310068611911931003681842053535038059747498220005687448073209193797478722811873947398330748641704668236048050238592247367592801502590483846974209218176557945729100899291086531580446288573205838435294688567198428186179625617049865237836718844457013599003135519469769381688921275471246252417109246956070427494342644250781611437887104425382928552454280311169791986079214199493576428807214411057429367410483388227892133467920142100851800696192239430341915163085442367218595625870885166959820232425191756766918795813890744996771006147384873323658387591189465907804477701873465259999426463942612921802142568013672603286349364125436319575786877675348731158694878084852009198206905110461256915202073071829592288921567831266278506651131233538753311555225526318315092496973408132023927405019590619660283175492381949383755447951805999315348751291011417023911884465328941471943827467905638106240506877020351047809472736946630457569097379865840843215628010641202490760127915499321902194432256532151841252654821956874693004817434308722935521314024108288319710841727639157585696704204253512535969306877241512206704710045166985515875532386156815658609305144098868682789120663002234484197482404208005688770538635106782764123777217643866674439306614648462855507280590289653610463224741394738212109892204635121557032189796123447600624841936665706824239645368897066955834069347684556297146988846584663412714152305780948721768173309115907864053600980889273604860969533605614113702300028010503648713742783827634194863428952024216492115623723770851350311398367956553283575415299647634444116832213167147517716567081245569645362379122370864662895277898615174130736150073987578828038805784519649215457089382497470361906982402601949032451915155203293236963436664289689079065681658574426241552174599324640247109328687931830637037386939169391591375573300709874391626900601616850000309368661566374492887885679312218657141024253352021297279036187054000591384361655069997247204223231457267222068514454220209762635478303120535314111804171575901539455132591068659222116917579985268924417741399869362842661397737210136121580142850807975908265007893622757745585920996566608044516824352402752975082495197967324929469833058776337079422601673152587827799355646153623894902266723235881332293296645494994417152027054408509825795607115615784510234747465125779378011171929370964310041128686318790092940086922324688595449280856446894748519546751412851823722613606463344973790281548720208347961179441420112472652406958276971994512755609726544864801979152014361239719354178345636828790064938650006421749324199542414752506548474804252479051471648764121400882638001136055928348224094477154782415298223987489600150810026986614617680895380201496620718692468659760664537226262143858913500917498340784951765562221321771181761686584771067721405185917150741724323318062890318954920264395195587617221373546518992998536121149034728595171898116568040862795911849620393020370742027588472486997835975704858353914825704231770301566607131403383032796470150887725276141997567186562270221788315744779707752131035894390165234245468236896234003804777784196558694869780651168079613432493792198969302505508065135947777536594635760633681445567050437113633536007420994354916196585758038057780992890517078378002651593284426611001149337721995466318877336199911790840739967307598381231599241146051837921419654160796535959927268098970710884341450178808655139989053823537011758392952239734466751693846125072986575699104269640576948075312406656102904822462229453658986032208019836467391989148822497360104631147857255050559097015486829827324454517644011414087876468497751965333300756965061443980912499581529125930613420393566059419884883478682892819128474327173832808109640990300111270241782321852986322562614673599178519472877876214859404906325004471805682237139830251789178318583723115350413251276299304033621278374222302406491608641146337569628557937237240603020329221471260201130542519593994365698526145037280859951480967785316429066153017962937071127521149995250610370564977440448750881450222990688115616239311841946365534941910236754475244263197938148337327223966475156083138997107628848557583957566139741089802716798549666405194853814093589825955027617347211004247889481535376412795604443721339292929851645493466705978009285470700002932936268108712837654606659048430908250543978620830275383576585401845655584102132692815277051430980811725586199116851377485097294087768815610082106968380479672378047066370095141517998597876088212454675711667495095745331722137720588165849387001106160122230142764425065273056378471053246883979848221356294856112242259573112624553159014072840830238266471022842869279973412848956526621031909659410981012627854391310560882859117267638313761277914224899226832489920298719334530280445152726762120635115241522632635032494941660015331512472502455102127908823075654605504306862717331911832092357043010804877469689687505328355875432065435062484118862190850737570859760540439697528334184309343194678534806903806519345297759373667648044988335743458222626750016382013617476527558061600191038147776982539724836822356824117949199407526589972879845327899311266398020566701462147987853914233705283846811932006669439387196834011828500648997054137864044614628090032721711918261065988396217682958340064038159241365477148163107070594220832172194426158764665558914561210716990389286744708526543445596567596116250262306964507115879959473907038837734812216073092467980148510061780035000586227790257361112912604122966995782117354394144658292164062125460828353091528322209499459606483806594847889577206806625673990916907260920072274439309381537969068659569092519437800884758909268321342449085872384646495325461418888995074325139748531573996740968722887287262630080037609681310696437851590095464493658940428162456265365398486676429837360938546856376013260979960199461710207123024242687373872436138843961907732752260772128924834158673767166205701553188527961413213463747664813546850662287195327385795214851692125661586096027857476499274917438328995134215749832834678347287157389393577358409803949588269504771702626284212737070411672440331642375930522415599080685746218833837720923114777756342351705785999677252711191888506747921176613825783536997126833927030217948834181654510355880003925887585961387832909205909938072165421673015726452665881314639842183610190339685935091098549272743167133340825073316108664752286793930234333116926352274616793600331368150407756565911119857193206934225357977835874425520468561256497216249706352748865488844539916665532040695412322344090120042491889220059869436839410492352141662118708836281196700009946292522650917230609942173629297041749451834114555645687302839667591158946361685137145657981957404658421386401908200598239072105609787199131271076812517553502681802944078334878193549581784113409797234282828314290575956442342676250890589882875814748187301810677883899548705996077381899061769787733461122264351071177255830386689582369272328683482876527303875373694680861038627275712589306023548427856782181012076501184905196910899771054658374045874042096516419745815471655998118257388988127004403397127729495409486330073006348317941844877234046596824904066102133679822000000705703686468566244725275881437118759127153760334943505659990826115552580343355833784942424461565695808230285000665079413512801055599527736167552028826890007997940106256303937555728061289083522571433779943517805400379468085180884204089665247762448507251982522604750685049796796536176381731379934798281558943642693792484195483859647507154547895870659595574884993210241804055259448590581372669322854562539665047777384384427246184464792701960433297398478136835274332790223176180011616640035567153532094049531975655037065548400125861925336486109781862254028952038670698960962129176645447315115472408412981427133540858039035092069021081537869159690176782965529009430130077291096453696318779377516536065507944090204309186638431362756940449393949165016414505427382464126904059638954100077356501173151689778555024827774495632507400335948264478543892648293805359436033999670828868926499079398714829184738082199698321739473755576062126936498457712015634734385971595384060871263401661232994555870014841853787845492831524696179786089997891190325240903769839016848137540166782146571919872139662241035528319684426586005490131934803808249381543670001255885587655617873359501065575990638500350892621845784504173525200475614030773331488734695123879748616237858697314985463785472265645819603635561449319088230850705393323981212919466722565999411277199592146696327156213646005343905033727362804914008254931767506161754302167363827457412674624665905094438019920118584012104737366112441524995480714753580824284143481866249676531653896087482516257642428750222638009525852167149848698081989348645994958953246057463077277121650345014541918719788253565023388393922034684453499756281090058842439794596225620788850814324502023618438810171115841328856948037057310032644917917615520552315255004720569313150459458257585139878898085251694691435216520747409781788585092840137171315476318426554925868294874072011788400900156879981171529731924566257849165145617349395468474817440978561309401632777984558693547362666532168867928506293387253807712861467294932819668550667096844301109609618792651786732995052973112807675211176343981347755513348994636331085301597715150641024932454101562414193298094043102586807669303591574968091849423239573369864174852473991913064637495297322872653609667272655777080413627782388342119009790679161348304906823941729554188115685246921393809453378210881001567069441521059997315426938089786139869011941847114588601923150433408157893860930286162991523869167338394082266171608999052718727146149037980377548094316144515932362014669162043857246898566533278509915195978986567463567439892367782465036736490775372379563657160735954821046757564562690503911883918837732918684576058501397675159500383346453485318896206970492290750923388896632200523590444252379608652994418331788221526665750457639050649906490478528976930040348330985229855937475459507987628059989156970640986478918989328660809729526068751015960954631003212704594110879723684524577397761654142384766435486407385315077852867379448635344642068612687666894134707522677306740174975905737718602622332738923684980877101416673996063541620533329726908010294628367418705492919284729516766334767080902088635446714506100513692982880340055084156909028981598370971499966808897260262954456422144096595813189218685800244325199140561991892039243936489550021741679496088390013439334473626002209966782035009059616920788743023907780195820478922447366419144776294749474534971993646951724473634878933440136109433055915292816737891895935004940515569333116625123751402642805943288537814914016223347459438261826075331879878832131167817758505757339287160125664934947163605423811195987134685293287735985993980170010559154728534919241719217506451992589198449525015098579256202912268244204628706806058617853155583123025105203311583118379287548880358958734158287122709012158920404379156299536718367700682619756005773302236819279692830289663932104149909426640901752675422011076889238736053753402657122878409426228691783381185784232315307559556849677380753806854673440283347135164816485173047765434979121832919183291274430120384462286544266063414222835227485528058683917541285388625949784304614526496083799225706256065169385785145313412951135913082810981267322465680124481733114830870132838276841127649962890728063318088486123671229428927929021933896174030660646927892200666340553619720878364552989138658650414675985584314519732667353465249872574740436834402667107515208976949569386952516025466230043098164100782600950444468614947424775292739638645020665079049634924358129397467292186621638903352331069012625301882804380614220458021858510610468225771089307580600693209434709171095236232346265576756478121127339942093716851593049101597378751314439964737944627851712988821474880208771012992468060930834341910172616018819215883185707303519742167177861013947290239363287006392147304997166535086265044009212868317393454269124124098255017903261594382282602757896521275134250366177919574896150628104415065054450629265087683564224877713151163858098848229762221133327118240542657833155605778429235761382307712636520983882489486638369336677644664873845468181433052850993814957147505280183961719109455548565639013543954015282711867734725892715011448294507906395700842243989304403696890411187306047478620174876055009374710378550339948402022149417892475472521291704475679252115610742037775925681448452300960863541370060063748596482131238054441577554060715902797233337262867021016350115175053159590973069490761650537054694785692144729837004444931698064740884964797406882398806989634114794595482209635612502752245857248265594042609003952890527791128234301142539013865753777817163592896513377242526164113326745600282239089042818602116759269997889698711368872620963851654421589058068137722290596411318335148070153604761108658656160878106243399987787648307990397991714031864516971143122027516905578283134366552254921709160313609343447378490057982438387885903188983419782069155577504966234942891912136127563586763839779797895715627156712352382483097348838880075027011407236615530181376112530957667499621513244491564304887977035111666774352147806156992743005032861716592372710088217364476264044461162929791961202795904013380498891566453677129888714320672472662591299604720424994399670623245070980492958949802095643657861296524997197592879063538459070653380319968698913334165245706267294132345271340057765498403340032618440144468240211809617571375846300592049538930542629715540032558262113097412706644539846795967313998185440777981110929642783597134044553086446683818084693741069686589329543565138685872972630621301122577603776034356674465962569700100777190430019789172607870947235073109705727015770570656081447654781423648490357014931659400264510369469592513260634556298772343223650229929203385264383706126721173570087478369679799855910893754029933456486141733592225672795234061555943108978153432101454651227513960051450478260870285442725983163643824488038179901377361403084955276645332478191597303347055866817306806265950630536174279290638009458044400360314569014050019000209083883344157027411628964895591685782057051677180103677540153974717602483665540503925187377842700792888548434906870806677788939490161067635378222570425900079731436898842955863745842050609317561806592094741409216648851105931270823319698439038529244558785914608753011038922163343235688427656810707677022297799226968904930169938455493078948951680104794179116984073741166324891878337875586024930363322870113087080113272115655078001511351098324590012426151379959714454406479378768355494401003889918880301872978651454181827070015327295942677116839650152898200852979944269329273183734219253985812342908129878380172571308385027630041139310170042199773659457975138038284780281021636377329597696329371562528221700060198481124661890706946962431949220923294828858143834446562604772568839119080135262048219861073980967632700921759157414556391118243299629771338257684704559405285975565321191698844033807351474021418747279205861529840419244581039088593899832672392822018513603451642964995920831972459331355658885499744505524637393727098543870218261592128179527734673231669986314461672647050759743189390364979560721672889285647955489717591554841556213937718246696271042040635907601980228292760335941759398667405510477898247237835785258073716826473800577257362113404073673186943647707921219926901940818834188358148179417936974242804603502024971718064959528551400595436868088580573371788447073351368454334926145351007588200689165664699455718334061532834634592402378687782358640250533898643333844963581055369915669606801741220960563509249585834550212598568445722195436031654155698367856926634523578858058134497092233110375686245651016091283337592744122522666474367041698864744441999724123848468233306238428788689356664808813014546794602064317626795584525369039834635673658165042924601734397879367618391576338639006496675459606547216668835055327228562015101056729968315049683335734264142380136431087984659248548278249583030140339501718121700668620916553367618890426904561450260519090262968278816942939890551785565241607637723454241213677060503202768331304418713074800495124944020060745536414890476204572211860852878225025918291245826349643808035661312055225486533843165638423199544663501024746580645500820854856387147508016670591332888583983826398478060320074405584340780760633900898618968808930718880149433363149409391423897145022997610668192328142761857104932964672076429940280343736534845815118926858438023429159472637969702646524590161107223266812974701467023295635829479207320493408770846428507760422828732221089182043801228698519298689407502900060540298504576984663126307839533310039615403577022151508261087234947215947389530477308293935562868139690923589922788786085373420128996334559589391649736010522561752405244511482071838676374489927674374611411716657466100327986294555750469669879737541138263912512400052107473249777333538558815595736573980001319277646257594825068263613491891313459938095296908283730637485104426663235590337982451384614113108800456852515589844453075995271717040107560078062909380194099621527209346407341776974104703033787136065989909165606259775898528346765350715508771354411796092599149364417782571325665051729486114502428479404893858218583875083076719516777181371834450015461720758448599204185917604086828847013283561875717307048567467886685773927400922852486167337188228964363927764132917163089579602564805051816399295955246756534229494701416046936469364778764148493687683939167477394875740772238613801136503545646102506613260962588723830980045167001313049831564522836236192894444773196904667297922568135554677808326363377540522568126649379908990716322247414310468319757305101052352439567492037980829298938538450511076710094440467274201423841141033901186107185061371229349751657085589470388176639005346382222642092913168603284188056598114848421984767413393112998816192645749552667308751984141591702643855455785608261478412116366586034927390949678848161433228608207632572152451444576619378458185019838633385170193613527926828893829291601239265761848816743847431831187695273416980244142462957991874154772102972704250934607686862481497810239764249432821608858963781297848726662792195504234144557451569666038266938536488363673124066918721229762111141094161591060604961822512704567216179795429540266615035744638877679197832730840684161761611031669524954782394466105573088334598867207642194043015958432912644396130591658272234822051175855213976871242504095255351278030188095571951563863558362847404795620910630379980570843724859345862943606318103043240841892873188262902032557893464199096748926257320889603047002354136336033366575005911865091868991947798615245516641872987377571551703057024530232392458956145872759406510090631253184251034764693535040746402819423107407924426826928327600873279438096696222477412992124784796393230558044462613013189260554209223699327292701281557456842235575396536818369185918463646313506811115265415195026955512994614344167550262976877043581545574596946305736896004970752637931765103516027506325294131318603332290038316415742656666091430478177643238730450356064319097662771490996738648827606889629343830409713230716337750631815254342157851901876540432804003257189685584161449797438247177427729635061084663946113941091046898505842330350602562732385359943789079207736446092324020342744112502799196914842827467663117359751955346857606355191050386350405723899150103935503266379233332961562974938712779231350629398135990023084581620673789868400380049592537794686538170348832186973936640319440244725652736492335338421518589075425250329653989785731146853069297082885222836206035985554995580751696170818924500363993601794121342594633087680298851002448076295089222940111882704601827091267381612055044471694619519066248023982639685813784920540818995143117365427805115693158707623403251557089343575221415510336049171318452252266765321740461634714814873381653480726527293731178086742623404576041707809585634804747050362538561864811560837338907030810321443097930195958852086522224503065210490738161368510666782142589332102120442616411900429343419690188076169667229175237838933403039772221616408556016105969553021990248250978595107751034148119883359408415494526284352444559804154192400605543234715990616001055915057637768430657884956778408136777845627326660929087602582199061136260546255821424148313994861489302536133421542635940704679717802003422536335699789722151137607438916707209968550236239545345168810542146364023863410493156115660124292478560160006988649536989834213806052586791869171769707441387922888226828929178354456948173712004584245189144180786900245490223268879090107080386074208590107086514503099830013996538263092449058828920210377261183732291037034650800627058979080209045935288542914946401565739905636036877008667953381649932447060750895067887969823373956952652907159596304542923137578748365013647171130521366478491915190020207691061964753444744514977971123900912986478021371093151889619087199445862880427703494679449137714320126765967163306887046036879415449010087031363799673653267723054263827015312547801884658293708263646143990170213837576599782681255001036548737869509220340566812638834762117423611349137111306976540213927962826166926486400310225299634175034588720163701409542254236202686368935934638455500830415374191959840018973139085665590446855239585116162593804558788046468784408652876566616742336272451953869770506157974423171104541193064960001038484639279575007699747468499954548482226956267258064942068003707256139068973714260816090621971517591124559417007116793617021635227151057306581017017613775757534981505921346618887110630793882851780045237303612305817084280829007503490682449603655603198523442106509747599253771982024767355036096743764530768934621221187675935758539241552629140610486464030580049497331622819381946323104079931610760272221614753723645246523303551573112226418774540584101328607938800357985505875003784878798791494252097759823987868988224244157679203291976332606351819137072378197795357291056862406991870089778927647218650800968162237983248595863485496174957322089477323255728728314106333978661509683646004617688151561785310192545942843498163633251058776605609508490865987961347467634908873179258057500291537061156147846144970968553071378187215854074078036510420661217088105195541492992222485163299265885753866193897585178452123958431388756357116444932099693376999461734470023013962620103545318464995075998147348903388424908948882822816165451548939937925633794104171685397623634705975698658044187023035554252874113154691234397890105446879549024658589114989009532184682695352746212077879616043888774402672220681607512387430367358791015921930467902404823583258258101307521092368845847022191710455742004254117583979918836798983291358218890370944034968848938915547308183238580351422888787052061138254743078683728760878785759197063930189055820451961600119895436382173567157722848160890286963217079167603449587239475843509281709774339402077227655847150114262259023687272689381583171903405018721991529332981674937607257106288668486710147466770445131865595114832971064073982955720328845044105290462987162140221063818556236386912438847075303671799671650558106362604292518630580887765980632926123453084417652799466323355100657183154590493770763794103559204475147014183155927683209360324317096261489524293107219242133720705552555275004245843053804071870596612685272008465994350469407758363212602379480390140110169390129975594209526717726752087140818274609271821157764902444204566887719507008404892956943177573916591302714289176051967564773996011432028351176877386078049454879206153219410769920404611323093423675656827361402532747478638369731775033454442540686596833140270835451249457722303185235044441074132532816862256716646525257710347152271587307077141231824099253141293730896330538891217950320876467374209831112623925775096821480812972083555710246487289469410858469923356809664994368040997329629723405546942640605535774537857517887497684607478122131999895013874011946404208352670609460646040631533617221030084253493056578169011214436562806520255702976568482362492259662042837668016578326929778345727138555449925349013978047770165087964808226037601776218273401187269050024716620133144509103801373685404550679625080343192094550352673445004589320380834051165234985089737770555583218491839669096781990677433211509548467049042566260904474988819440942162762724065010809837483941580796770244314334383942670980715631355165493927543382356884572488436606850280739941691955330193757977580742905607895192242786581382483180139611603605542723547111926091355400540380101291520264994861309703674726023796892455319100452441046478987344576935082627464103386850791458056493650761305416325370524337479026461131218147579837241286755661160626033607438580282600516144331803340818360265187397358044713104535783855168032154502449797672696576657617365454248961750866294611725091700334901257844378330755823868910413244503482655765823555585528085185746140152694964907872149035151404200241576855488623236594900755095170494375008000233259068835590232176264878978346160718711783607427239267264567186427892006965152371769827893430818877005382230624358496854426655314867724708350914571251744931520931616844023708487954117219141934770571565848709658655543241319991834942192133686210322435267950466779129609789818107169885663607694788905026541587207874654847080218507492373148158620191484624888016369584469433810086281300493847270087889053900498256959747177934863211915758930454667436375469928817670450017163606997338904772241302575783807411014111146002187221704463485311511996776356689425558087799460970832896850277710708332538923548321413426226875984419845238495830905196252368522615815524007617836576899125187722241223762021881812941740373385440268105133718229356246123845493473459503796243653086272332319158571493645827083733392030259025248477309718243883490940052715026906002867853210221421910244134958411454997252835734158784868228887654011673645389060717249641631386312909072940183807048012944825506774575382326928898907468368414805899315260855600651140560486715737895561202826740764018353588771217627765465105685928605870350433135407661138020280056790645876965351976860225666123155084784976497086042331852868707653541770124935485818141193544760442666456801951744489244160261811702873628641361899726723560040885470868842423633729646660731298141009220785910850660199447659992660789121870555053364087965861122502820948718968757249173686919949532687188115768489188535494416929641734632823062713446743471890711923650111875036229377206422951950361148050400003351433055068657928520062386194290737686208715212340971212824470120446484635988157234444088051776627067496987609867482114772237156645073698889950335220488746687888399857427782128670977692630633920980153697837765241913459358508100065329250237007987278280464152230637949789710340144707556593729957563518459787625946632397908387216050472231403345472736833616714967051652097143299043925755698447564803447017270011043547194642657182360148923133102659671152788905837508528193634477252176935765675667085427933579792650965119743801491013293380233930019282146480800355767552993871583469237523295219344361308815266023469891362129232777396296657361244329800976631361558674653106469379923426438842817872265570341442642300644412089068146063241697581238953342676975830930004162333014244861454075797571222084685028840226235638532300720900344024542822142111053054294649361813007838860430363323392331964402102326877954993090355587658889741409872279583350973922890173443963892518434385541188135391796731246067019565152793830285566676216027167335872277015302886593816239072807067985105859785614381771038887619251540281561229025102360458908881629402611934034290390034440080849705601428564446817911644789137570138868673862167622876671674284773927994514185632545321804495342299323367690596881430275059547101347164356300349031493807793849762660919243364810331386380772557805242510066728975360790627176821387486888095506253040121637673665257926777155041757066356788308173963667819074326514245358963391188890409933533697361200614839683281305209359570252601808712849195770935584176315220687697296337780736999992148873594635308763602147062695022218672503886444937481550169798701707449404796138746829903396845669212674288773168182152725604383851861199844234541049988897341427926593992403896595510788404653983491913175384830094328305692414693784048854826709264411596386455354311555068663407990053587193359603649965771845290754035691625662905736592656537947267262510675097803712737740942097513594146394407201027594611604866850699255071713863975271809932609284273181158612033130168879707600804523382961381030109863703664465266751492770801090512906803060720740147218735020737192799868247500908574504533610313128852130070716030837264702103379202106333160950530507439079812843391577398035625832135311136321020334912507959618905841191983477903614131563676806119164888588977610830900812134333267619985023032551176765573647464096149098275176014987199067512261433421643296629856638854760920435242350851078837746454209071611705014355458013529578621784988222959506394339594527961837317418845177860650749376536677202406927334944292197224194718564161935212113867967348908199642707505047906668506836925636886341105378964173044827525633433290066452561119674868408562811295610091177079087606421601104592699996436746552517890838941919727376932661925024868035869569326466055072228076749692909023625200410786526625301691895120846716164927047569334481438170470131967991270361244899843542911025825724993830752645032606403112633745015331436778382509675209988027538820916926697451399283895464004428329000399061809132139784334088392666297964616297854613307894372557596958093734832184356115144379819694420766524080648950277834894910636248916277431724898909884286211477039976765965504889841420429017813784236485924150747709995703231533874674475967031000830679899746873114034058490381892352354046910973090039407160007271247768893385427740326472460220455807396568191050880206445831572742598255246188281787482199665539101031590876978900424978589337915780875337683738823014792291920208496961808332334638184135004887085866914297573407775870231810162041765324268254975897082869394166683573642441944330055578658645776592016292595980958812832221983008851165932557839496221135106240148493039848591448528809905775155410155266297695782039838096748146256071492312093504414294751890952134829622984470081762697719628997838233139965664615780947528304240060059462493200032183381077400121062890539085572574822136648673690906206499861771487395933216043629223342512959035711268514478718379838106547933052121764675135619320481448239063135207408842239259895931667182493739570418916641362984417879182022642688774489685933373859768003198503972142841145195539774091306287497861154596983271215907593010549123945906943455044943001133747572197731717661313269131481614679460849540597884457968745677608931744545635503007471768780679828361118883115063164305688493143798180818864311892289568925068589949148238253602322104807785248902417342176750206613631866451100179621603444054876720720662571780635693801630661303033441951433179776243135232930426940937549771264736983332165034110809455995197421924952814195582756881152663087712287431880039324215945474462467686037679715926256633064375604270764580606287990026767761993280414420675758595561835182403682766735367496739341618401446236460997217992990526866223606635104094168027387647025739295014119791485447430452430996855899089259898741716566413603124576398177562087881523395717014156023304306373211828537956159992590991139560140385962810293742177930994049852422447783522527028528399321874415870924957971221427300737356748605936399944253182871127344825726969209896529795885107380572598958566463932583927892127400930351722085025114697183361654301949742856563603334521350248287312665014992791832449909001210514132392253215932939109182318900042325230796840377766410722605634105054860904600392512322246496440166734209918414272670230228591346666656647015497959147520727491511053228166751838621111326358779413370160010728829928439264960763408884405907346809096491515038796151115765357024311961667047650447481761879837612466546164536167064334913300622460801336348729395210810928719377268781136319185189469920409251940720884770518959187642317741900938085930034781860177242491441743881476508373948710440584877694669553913285688313021493070365998353709231043366709304813420309598148122074624093702236983404139372253087097586596115807270052356851051466939047577987217186318188659899765135855631602134609800851441277703496526826663528861572946392585450220038127225033389906937771276002690318494949085027483124745729129050565691430526183250666980717472622747115524858627481454023182454621590482080421780177359758400192538381972905130408847795741785915146173407044807074680737021084309143159541920821303019825633395262057041396058508020742375146751396928276150189556799969043663179306270024838168202177021634529008523483091965799639158222102058288435289169895820224353423393567875192544558425239015274499877824613933730328046475847662964314380850165506089370803744701262998621717090656856491989437171811487491527970704478667183932554603871436934976636856107203327011040802813318596928165554285322833122903312419802443648900386060410127697490910920238957989983099446056762535432399022781544167334692117068446740848181551738471948828070568986321500052348149859882351680806008389194301291167689925469371719934098322056385328665729474633603154493839337118118520766319022756017737395087188936970301352755390629658769394872785746454979073372256636579371743738194664206876684887811526737027896560847086703547991849953394471124961827350393532550656342311558546383662770716522504330795380760755471329282490531393562632677351270646223178989897339056557405308641807827477149103232621367332617694883820513905994597256935504703524109855702111682861177378056288808961352821285493758598089686477610587275389659447054719523845523666053393221295176081737273715834435854404603268111100997700482760694056693605830602563575738528015652953957649100716219308621873316922610636345033970054957222433113726072481424330906330289550370643054071284688808923289379320594203625880730266073406954505040176784283598096307977916309547997476879533776902268730649032938655856739020368469239824803317600314705180548558944544936009368969568375472313822224183338853827490978674936149296506204498763062834780309684501985847553680653876633962918188413859702530757700672241651059707055670480698838327758521991583524747496779651151905631456640572763971454347772769988234481088906170879228250082482044400731288441052366749143858294497220888312352480009523158347647579632701841058986778752226735793092165672860123573738732011470585796341381804588692095319555461260236579679499456690566005469455883667985958337029269713159918395415627175127996003714257765904970125893533943613906531971494645995356684362582556752004264902247614887019074161063007421503772906459173729951090137807859819009369187668363318171549870961643851927552299185990952984265206208938292388572974236417088981604708792774048153947687356433638408849141771413197256353741442152845960345528907655420039065134970018729957036677416917393885057721279003957275887680577737253151956444807128586299642126876071671843347685241793958059796911815010400791744399824355771273148078566447594647937314214716279542794034581298732972740031889573644092838523283040753899155868665139410683964354112754700698003492947868123997147091194763174846257485741582574666152622557718009795821426944844777951082948080657431602176336645401384065320216685651488980177240392905640197757408214880715001945469788897279060366999010737792361946204254492583297295957549886524840419753626952506716398355633325484114601519588899234497304649594672535958264541078346498286090155680601918581046329473895072482534467571903569410207174397586409241238779438543833875418945529903472655741105449321547560516287626117692663704524018680535583852440499062924487387178794201474445174607039665934866440027666145400109037281675369525597327028886303525926529153621235127511799147313864517021338885238967325007457082127450552768146565829271390686755073575197398687940228573581897410016384460114357357999402998957784179564093121762776218286370089835585234419276744516808876351042686102323416691601023329669460968201824349018773924522359463495912474079344595664447703277488281168185974210022429694712704093913200013933178486426170061981510889011326377800564683328050193332153663537470056199975581164968197393168559312690405849599542935145906071674017862640616254304880033353933211631519360534848253303948057250331818210076512049661717297289448142012463947290490252950891848742059136185276112332320367400918309460314323844935130488452941308173476932404399403936468278176239432491848582611640311505000416358650870496507157888652831679822989476074487456640594633196059418408483937283717425153048177092731653147063069041040693259909965568349901541446006011511096632332279374818777846079903870439174210473198681102435813511947879857651328972071668156267435165921777174001645720848662506598471325374932920891664563792117853638319959341356147206968701884540415389529648622304444628378882108871865850984344430208711733796168725246101195695456990175471442390554670158798473850709119736415110115713294783276107570969890397748190930510852907705513181770965010421382951536673770811085579705581693864031985700201891067467542829047894671778323489495457842779096038476066889272250534756698943242944092594092463235417912859931791177026025477381401328980611610178436105614511605671146099907163268606119725954038491226528388018002087149547150706333957507151888437664867111321900223975275543520151971668114998494989253870255054158380252287807513802011318928310066015236635848704911190549546722246657822376142564263650508337129597702794741220772072798286836141956670077506744418587716894301989514320073508606899231224212116984370344062602319624249232363378265681003617029554621472572704229663591129339032984807670778058997702202490198931075429444370196135109012137992790772322419117301123942014268710328012824285813934630086763806279332064905898008030150399308208568601597476775317953367207163833295546843228695253776377730517606348295381250267930244418404920842419757205098286234590876130654776251620176765461120331497177493089637925728977193636735584957265706644435547034046344724583017267902815074067881708319290145205471778446835159660565966945513984125656250642905454544906101850006209576652723131903537423729509961959909690741943332225231746289679176518080489603456755821956789467169689979335045656196126114628088874887619447316637095051023475535802909262187080129215787253571296309627174969663581114541733340966944277286123391115583333407386891242620433400319692283008897154999107636280195993865222917699967603246520015242672318653848074553002057217957163992214004139689937747669792171426841204196240349941565708149619282855286920509097985787411186214178447338346549143687205152795191689892230107603961781014039153987261539496959490520147498308155346965775201040239828221695173146888861251591554467012147242071492800241803327803436964047541568252548018935654577205571094251339530606120716818016083649278134691697887795351877096278681293048077067095397194866685211013506396187575032521040661234869497688455181762735687653707632654537823398912262329941933683623537550766129006990611790730001083510940985752606664580670643908756076189920294986897290263681691367404042934866730494918833711490009438119293182555360537057512460191343246578884407402011749037985536445338021994936530137549585481051577887450252282942079570796252584492502269876615615556796390049894251785037755258064057754894368249143132947262116275867334201962862359275452105019443714602476049702362778125528530523778642565907655492857993503716167593765134730561774939938810649735562512136449479836289182819927158510452815574866223041966472422567546925454288757849153546904348291163782003473783361753837716165027275388225713586831817559433498136897140744398766193826488427957288427700868274860042518200091203736434150087323429586602719147974156806878701728978054732111793441375037738382936923845377768344983143714657376520187504191061165246149917076692958483684602973783734396822654578693377261248518401300251267441553496412916280009968722801974263914929061319916780839329841873229486143920782958125334553255034902143084670537662101381163790667171589821048135375228939613915452624908846635808404750588322312674208347847851644282458371161227832030391520615071232896020872070821574957235104763695316367384624004112958161728526078862807211944128102470628031583161787618202758568198232335655887376442584771120747499735469845158092899076434954817803949979785225189769589982095402346172579309383193943993618662560303854119168152586501392974686222735564019389053423795560635095860148636019862533895996455543982112388800659191524022964759077851284565309734683847948608177211931257925290980407787583774020000791040474693385028630195830229518182427406402174794899637593543803945503525485407198625621492065197462205640423647949199388361307230307131697805923666505564755894441829231967974460571370013625083460092024015902034879368454671154214819663655070506346580119433652206508831403501415264786095484507296308004568866770727661082241313245907495661636237647198837609141272969865305709180900012491099799791826703855785465265645312923363504863369139229655532826462860013672331914648699771425307080674169906380305945530046213289429242676902038770647196274162210216030127348161897568656311771201409365122692463823480363548890687412628552550949040117745283651913930242309651574940182898131554224003507854665959655545774641862754244206591668024123781472341073362746755693001416412360162070599937110261188621556248834336862430813312685006938091721661241793424213433375064010803569790756463560244589195465613877332280499591192836451545176289109637403452370870599043727249713300507929643113449611173071039392690419363233011046409499307705979280962745944329917147781137801885377714590871435938402186877970192950757047792007355021690854491047782335065017352965509091815555219871133420495680691832403475978302430276682637879229472765605735450869119824521267331546634285330092552224993847660363519565575318811584629159687308995395658811796456259389314956643823699190653523705453629389050608124764334899650671717345477521998693581009079360717479341284553386094177762458891003828900872176966701430291903637562274043326531472627790244969513430688913024242313603953840268409597207073415541087237926723693104747203903265568447482641038801363585301369203453050116125664768821896305713687756669210736269284109649687134859092903412608974567635205793340456868164902537152021609257103332750091882699436016104401627810476173826850986389126440199828046894371379125475741923291657057644142892488060245600881947274792897845237995827070454003839732856589509791181065423641733681608086437071902677311641311677857781880893922084717322059362333026819446396960319154685895172343762105955586486680942979028582663393147794416402881363234095909856844745130247100501264019805278549526777255599934477353585637214049040311379635677704698108066902252994893611241721673779952055217382598748988776665254302441734601210156986597950544579070084457636325036879758768895082513079537672906379232484506066525434612551408834659724663344257261995400712760765081727806033086277923647047862070460423147441628422505746197906859803954975011676012463033713354366816517802921845226034513826922008417575896048883115435840819668977414358962930434726644995237737905355252446111136772904832283540539503961667557632481044083858134096822813719171758059997314400827100625304774299691388410761078273956275771705745104051044094516857635544857052288794577657413406650649826248031517253569476887070377159253793090663959200816248156181023451388312729177111491994873371011299423457803741700136926249229264905716993745599759415165836423347283239965697374527021135598945823729750593226411496703901552577646513407652182448681123586986432330732271681886617187181259796302053768242974652827642367254307308959239363331797973254342724110907203556598433924242527600307647854566378133797463934489091693246434585868825932253287032099937625299370105104151662197695769035420065008029442490377395085209289755349673881232726341087214963098531691073796692302541178401514452981685601586608531072324439713581714753999216619740521327578524524527720737437628634600497463735541331719032726730693729393855529247755428042657425896717889069731755094299361456757881048762056966271378155643537091325982828321310587167979694839694496129131065017677333971248359504966623683583145568570850947486553782223190837664551318133100777430847741297999189434900166259006696662015888619807698134085245377324629424985777069738270868721556419925741050839662928143412730698901388931652867887953551946010302431407584516543790616474092947157807098026756703358267757440430134398986186223383380520827068822960331031932026867531876341750597321299191396820764781201157817797716079987958488675157553267519184542526346167475901854615230273004762968592668772115494682034568404639124561940968957153692410197543462921894307745527861197498363361393527310225579697300422150295590582669616205507513227009034343384706914842287506164044361061781394038220771616334662201259833428616633177790710924254433288247280055449102936578248288299892376065798289969093878055819677109259883340337808559977003626165969831771131170146191295664243661873998065658974859550913414230989981353601991545135641223788865759974281223800601857955284446944012204257475080245404543733575600118334703452263949586594887632575111817908839390677501778908409335196701699058532761002279520042823544440004172322275909782087180716383065385514471846094479720016608865528555956620116911977967680413660637819369971816003036810878484400877125801008909881702273507123907522627693324967931072916630198394998156728754167450771038271008013056338744543882355847428477082233889683091894437619894155459543762384682513567128031921666453235669322348466414011016856058835202294770458509817640954164558603301330443920035885520107668796752549286178810577341420647946375826108308109100055044646846689769184465745715572795622900773255075978415196162641505089958471327820662873023400956103424829614007767444800678825727250926369195739313600641416000806343314640606949180404490431984860909470127841464237617026874330888251678855958876728912896142588317238984126113534050389007317464305922497206486104707383268116878688542288600540776914764872220699071758106148511157235472359235773582053451562423288202898093679429754758805245854170029113992443810890115774244060656930927017520906241986681345001217881722338791306858420635270762966984952648751290070110316291802565651501286964274750331551800467510079580466214658829535929395448340638707309181744901825542708034010280536374959108126606722949131923124361071149593435067879114581174732605387265785762861700734729042363043037749192096012275444781060201456009827372611758215268366414284517197570643228840717690513797829559221365424965136825633691149240451956885876964404445264229782293022695364490907005725926101543261944430061965074115639662829519905536668718731561137826271558851643432464342900749014608335228059753576432009733788463353451078671853607963422860114046732673970595641036919240165485312178924671679319179909391641186830537211775588820813821743940427859442114878159358085871896873814581291897937156522412658034175959762570902636225292896329450648698677657413639747082462107155521276948018997795846119473388981353641021070357039275346466169441108479403245923484890065259632442414061999422187798512879014992836744485758579075771567290832639923167972254633811803644911728489481474897693238797482186568778789005413403767838341261868147002482237037862491629705626213692277617128065497958762213377974139839967780357936076597238142877971700394539550496841145044255358764464412969610560443888507178460119912428709869013373126593115270221906873041961280233387122109883885228788952851994113999503522280240353885209616367240105013410279196966143104453002176718905210791944122137064898181478755068371636650377011117264225231227963235058999527804949353417110388854493421747952612819061694896240765114898423819745845681451172328392906746324142020505668926800343571309817250645264559112597618201306203975883755459868080332378564257385276554863185376972400323866714173747820198835897248748599867773358132384859259946471942943761109125885672709029745027668154857722440884257625325479467034367004911822211785544626920151857563187062532711003820162222744574348388876929748899839449452969525355891266622652704990764414632122101688078330871073869162760692800289356566561912853506679979956045206412770039048191157757111897204378642336165727149258701961186348586970304982512460704362874351721183787131131299333502669173755570185135439726497126848976049101631765570545310716483730563432341293879569879074276327899665681373037637134391356705533195626539555432871394977786450864444146810965129175204260105406468236533380040613005039207021198810556595151577012079415480329924212113721656802421227615934141578699085759140470796000792423216589533661803449412949472794257597126595854166757075334797440906253867625394581432941005334815600486681768306612334663289183483584388341182797034491888870533464463443355050383709600778413424823471169568295927178535265698312982769156547548182047763821041759236896832085546820386761017199553132791733310388297769119577578359961989138313117513892693212190952684503188855385449668142761858281725938760469600402840176228389794520203555474201951158688354828673876978964252878015501663283072079330960285784627288639894122140649791628793048944458137440321821069908998192690697128538866277987908997103570179017801295600148494877559356913656409263596922269330279842131288530673318401704911260359644865059953194011010344933115790859520739210349251956603724621141813485609689445432700645749448056774607573811009170640271232258723471643288276492933160203363521394908912319970156811092217786039275355673109222506958376464082388303219485807204560837115718808755769846734281610947315302128975927239126808819849128910762657188090147044965992607143455114536329010642782104089253237028804712432945785698020047758699405987782359909861067364206447198558695542058006525548800413796875676926410263799463490670302065016713532914115771819656572602421390268115045349482989456089933684754853991671936972882862126341869595148734016379283730823889712666273136892588340666909459485531042339945766205019910742408092474751324615047700514332657318054670031617683311757515235691264711338713792890680948344687580603671186119562892214748483960649852270691266375105653111627277218490503877775120462002916652889572935172490553041848255873847262262526101518204060310867429475795168611444327738570874756926876382816043464848476950390205001435025354323881011673250528244488846240043038327276436192192490166138660738075114591317384466817439905519035902244433341853702008329243334110673027377455514169482283792981397231167630541345892587024575729831472536898797703761813529230916321971873821653642064455924810459638342150434791444307976547573379855910533539276387297692131385752444348608426831734227706693327498508969690371780413289676974550756734308207167651911155510969799720532534863765786304933285808818836112940509575817054821949570239279366120713579020359169760407218414701453175870334804275820714143160570134117832660607790477297277009299335011092654230933714229695038362890968774213090365156002486509752268257395751141431462149215968077827798944063973406539451131231112731948463998858373266099643801192565303580219759924830973313222332964015732546953176441742276621672769186559985099515324261746045526733778387801057600257478272672712329250959350483797440157004450472654685930671251464839267678054359696092225272968366054794637527724466756931785266049673026075564400075021530379117813423531851290198507177847572950567554509348627137486373163966209230400619767791724087756740471925997903707385365653372693723985072074241934274393312906068307726918147312054076321960705126001497188175198624859165946966395785552454951612264820979108923202911765734626144841747688383119534210719412483396958351033280457915868356650817417029883462422427263514544216295286413869967484780167325852492809358492450935511284523377456035827381636206403169188752642896362919415450802706997381869153255167242008775608270554912150212075931048153642507263829595501254450578462870648978571827435768335454437635262460199781599218788918267592714190037600599077470386377293225579641528256247372848507849864339249683746175189210486081631733829548127954176106406902336000289402578621943181977381571452452763160308364749585970831751183651803772329732270374239247039131628463782601458257368553236599151733574658638819440521169034796321741349951239368162987154625208695558847055722729504852356595140321569127119170022544442740495377202272676803677300574515939252171117663166724915760124066067703921307901312187464956312091664662139849031538765267084593735547015507829007160648890124345767403981765311479222747686399007247560185931382404427769380061580492414756715165797128317207824875679780874926036894755955153898443725553024107379961662957994690765165258461445768614135828228560848123502434816412531643503827886575806559641594186270911387704766996829331539388944772863895673978369847350527678987555022969443169203971546169730680671793012930275890123688469336135056834498071104580705150213527101472628986735024676010474768043889313058949342115756452871165973976845640522953745650074766257236328969436904897720135076347416484823243184326074656513378900430897020922511129269303741960844263214261978217435507381031969430133421429315385716050016461827838547716798086462776589117301783103588632421929552202638661787802464901031331978425464820789579922717709209574521442847280253747489617338708870652737234694544395688978400986042782950343117678574378152926881334116104651786464379669096433117004992115752623029249760010365526090717480274763303264327213732474649274066422871474953497064138902036519495323346992652038040362463094365147371373896175363281912480216666225015323218427843994082136908182812302471163537555269887567448627379359842667593300664401722454092536957326972669453967161220358348161996118454930947153473005096579090695192006935127744486705988516765671654923145655280436260352694549328878065074071542219688161940898909656695786936171640243879362670302727340252391934138152054429533420860616673904573340357307247594211454082667845871094011630868711082421614043972016008014618739943485184032982377725981733701510605993831488223584727082584349187747551106529865764881364566205435439530399747285829882544509706083812000421972965935894436462744395646608911721954420985267543921660572701957954735847749940469268772158219484593464835268814656187262001101258685817784411817906025425692897727925407811229639913127760385794855549798427917810393171617575252162599931305540977738497190565602312325851902285900825525139835015510514447910952195055528631812749491595327651608549989392154271996720985469318465142336807887537410530294686931705816490048581435329011214749618280771194451506697902256455789103660205346939857922018020068903059167996274461693303624859703156809772149697408590252116445395472450943778761853019268414140301811486675432986493715210283624456030898074549500740443032320329847139868102071625185833207734362813123146633613141084659496206405662137138887753359122700084716834268107484852908869753336498449429147858868569593763921130077564681994770087081786404113042253841559817511575279744863613249278994975743122925552226894299015325845674789963674660803988033905359091546179434969476209603161581849026471304488183503654017408097587206824443888642302106966121765841050891203901866593496695293405905504547941790411718685071911539570259504008966710661907638548926661108786087333764765076668687214337759369778595470261900637977241130022031803853980989054602521339218622515153660554904730935113052795412932098163023952534509184566967508877809558314204186138738641608705066353257778213291784554013575312491501143768239732711461794353335530271070202781181820989157751650352607043983846358022832045506738372302051421066937993511163861136148589828142625820831627231127132048243523883323330914019848142004348676829371273410741113247032866894965950442869073289142649571764429263930412602101252197068620595320965173446345300188357437628503996544852391595300585967855027537081556038607185592309106956091998500038996359315999072111431619114469819404401444241664815946466166631357853657456611499791056720966495330269703364379220922492308010091402548689836293081010647075666194882195633300316966102071707994646569293223773666043584065922622423751226195920556676179566410416467376862841255575011112600732117815830838412689834862990392756258863871982784947856117621287104525368160694327069572632727968206627891029766110953734027057815600478271755631777119356377429773284573019403430471099342525966180403888271518099033149222954908115409303410470646670764847962189589477773191599903896209544596920062021176427590466558706219573891999993826636640811379711579899458560685771910066567824210660777334649438569375403116466206347278721353454844535897832607302277798768471684213102766697614448461843441011261910677970433370216924065023859967484729617283430178879632839245071643231593483097130019825493525021041518630368975495246237890994903022135131721252788232574956935736139751951107261013287394205533433234401655662679516925521642349053657155862605004401072353793123190588488351127307454096274473564533201450370505676566280120966040836788977857327250223127139073603266108409937542578319195622730234724219852292610824412992621336641396000423318674117460093572351820585203744103292790329179768794575107562277141330851992645299673049971233325441527298866366514981213887221982006681089990640174152528840716595065478380625985027068109967768556949433073272629132514045753155814091414034183167971567569801003732977663342715379252218249472245617281069315185204439526849594680571026047969574898678734973194808516416337149239401472070946244258398731940827447966491497214760966205805752087114714906571365228399186992622671803192012600202994586148878706142748597521054618362148917653226565494284670703135714164498276511842734100949597324864686633132665612760961655798840061186594896831257121216773087652102745616826485450230581517716905357088456433340837240935367881224322435478570009546260954862758722057128753867894125783349858103272412684693833640832439910066856889092165542755785900266987706147565702166347224357857391164055739076766677110511429750789166474644560137412084681745869395393229023296968249706455284969742617897631073021828089239867423643666208442511225425930237972413976914370664911302109603940884096910281681648715108752221466653733472143794875409643020956179282184089902176087468644961612525746681635997394429487283565197860889248278540053266708173810586146045522431201628046503333369405565180872512595253782987676438701987692197473696324882921296496131215232268598917033712056706338005122362344002960257563897997873410079756710040665970548708606033293309564825085007624362011707054099786674595702992498084111517308590407433812044192625396628518635439205760691453329072001223897601538495620004380623927394392127733893740628863336513899462151822234165001284875308912838167341570465628089775359813186402368919433622362373556701271045044031418771045813883237222062725400437771485800687931857232497767683135948929005195569236622225236778444867914065366573961351178776166288320800636188159869053996733841148729657647536950980535970743265979305332469936819028780587693060237224026439564736264400881160713443696995632434336308340437413220735576174219974604063754532621663512338153731646437440621024660556983292957575900738600791522159126802557567248739610416930660495715353700942559102992358906598840467186552550192782535670047980032504424009139719074862623050087463147242966694281336544433042402807774501449551961082190898416175779127470461655504566668484707492854955010268862393245944868786964852665886308216105319412071402296539295192811255274493888575541038243056737030656001537252895212713486547341451554000301457567356024546254778411279524392340255423239568475943035487528220383132777561128842657312410830890775937359953669072676374136710021953423333298798952584629263566946582934382036322047511165804380212499672848259336514215631160830393835379725930115012920694418362771480025621896004416653349771811973311627880491685937400929549238736222543777433105402343971089426610854895530452102573901183742055694528872704203847679836274492932351243107632623320262556345764869319526413540498683526177225156666061261264709686831195978003375341166087541422833090565444643568590888360722360384797473958189471653479008614163974190261752151206411808687039963227651104775557873643698713578675260083840218275117511658740495887646611268291791656545291790004528664397987607839123053993242070826057980645755671264741600344792948069718999874845175319849127447890079768654386047620603227745635364511570392037343477104281584252310818476473645298645751756362083137797800005367833499235032804398916365384626084177816852248844523063490757822607333463387174731119619849897410335402846647958015658721045230294280757938969133075359623434244549628507076467694325241312922719388545536121569243993132801311007405078379148343539071093572690932640384228100064208550727845535653858747197709820513722717987722901487495745202281336450435622481073318382264629875348632273959758286182356105685406429889187530169209084162373535511154209833939374228234057016239462298724413543781947448106441526390000239447393819769203392695074591911562194022091229328830617527505352133566977636623004787083000257245580183960007461984110236170590222909807696342365550163795988266697271687701428659113847936212653004919687080957141562599322524383543105023169865926085403797599348845948594862094514979797659280133279237116617335314066315692335299334254029598762333479666901280440298636191897184874955346822648307617320382698077243648998308841260416997806807760965289904870694931229548513093246449087586644967381854280305971896361511635035131853283319373943766166711709651256401693597594792294020107362787490635457548614725375797773161347366287935716109247424285730439309712441565770798847964674514026120327216616753887193497096677218605467869704357018394737859777135754080814236712106853524985407252331781613423931733362701201978476697369295399310757746116259318917058443282854560482867060292626673588289177441193086571706254995061542067408677337877511839710671993859741357015281039859164297286676637393475704337442674439707052119259366094110338189076191902748227033109328367021797769231042850403219732591672230893455932482551550304485919618377478598634440226221480049691125746563794606315974447833736105002372984110091840565875304015352928564283693683899001695941472749065839139974541378601183338911466847866158269721857654885609480208233556341755893878301497027401740336694227217791910134108189717099672489380651535744930979645578121444442872248955840750356879155491410144470524814149318327445566785914662004024702584373173828784235508613477234320231706443245199243763860027335013502672097508513726335353639048308455082799984567027181445948226630810748776172608755765117552611705794282834438999926542480585473943188942284841904802040014771421805039714165277025765532073473888888389773318364464711744433524911146922139677059902334311308765828964876535266573877920191763376935737681123143480272719149615464243094301172704275528718018419728135438817615938692412089956974572149332042755409271730625136430692085803665849020979116701722785890146001705129892739780726741757034852864786814788149807880084181396156677825908042174557535407495879397805972009317849302996037154442480034381322913252655441055858667914728279131997840986149139796895190778695825572065302068644390652504155925513566033464151449110989277318331158347619490836827560230200380306736396076482935787622045909101007669933382973567015657321239302166263143768257754520886818961852908073157680770529975919211667954697396833407922224651759030561027063451624368298026281641258304815173734419911362803812904129486129027550406128072203226548804032018189146639382533869619458350594968855894115427480158395318150749139507538948669056363091489034868506826741350437696625669982257189560751443022649940812178388118103942866720731307986330957730362086552121104909709769047141045858717901308403656480031866701705088997087090286246677776316863136850029266035973560742421132266336664102019409463542351095784083808592736870810446013370979833905833152238202803614887656997298257962974165929427572801907683488216373155289246775395318612814759785645434539681063423977430980124862270731776442236945632126517740800213388429739836674234766176209431134328319847337619702174844785717916788945371103916868358808034465976817866812075560281932164180857532742008074850678198570022936465392376872379547313732189479436903488417748205777180675578396739143756446507467032311413645112832411165183583959931106033738685576005232407012123243071998448797159150396092620628381800585724098084685937493599780686352651558215362563335619803878502270976490605333907431453501857124906188715267143069865794706796752289185254674888405601102839300253889277030813497579294528340551855006940508187704606972835705284767150061015291082097545048544223838230738636427393814849313726353062661573252730786056825729772933666298938427145469173857126909869341759035051569508760492898694298102470846541725329653184933771083408137350702785105953312276632248115765552844657712243351990254574398032440321014401172379532056739562986787164901199635455656978899837326536679382272912925966419500324770425763083416806499063994355180174705550258866140727007105564134397555335005980315072820626297953920601562810518751871284570132883251497099647596010359676462293624565335294578869355745733800041982252199092395859550760077066964850072551868344640219439020285844898788302533932275723409405391252563561960128449975817096340020786632364575059341168828338081481443164872122475452255359666280913411266814935166796761431524533674950150749700807072032624174697446382315579213359757736937445539932276430165122162235439784591743492604203963563270415990248875950146471512328466327136757556460179673402772079803723761891274423032287695742491167852613576904552302572636465587492214888427423237813954307196318341566978561944991697727942502415352070566738440467970033648087330546654531603325005334701545201592027350269653179126180273869597752469436073572151721821087186812576349031473445622720901890536025956968677323121172581104787509824627039303256226917541774198652622935582258496160100324988330263249083199780796731728072413481486793357175802686243166571286224096929445508907342142884720968001132548407851215261174930185126481245936617688903659445787900283858186234787917812389231802627599954682359958436710584373927975637244359237774901529531744999709361879645788249937893833583079915157384165737458492262608333884390911722493652050013489097971674099813222195627665810768642214364526474813997517279909756713779986104609125762433590169166504163454886801177022441623414884040998661244592390427568312489809323205778291896068888671650761441697411161274164479876209415962259920449516460309740532284593225297148598026795393482310952547234115800053608639758576596798826368441588481065230748381964794940626782320932063724341401228854568615323450024700934925707986195435382716029487909899140860602229759952812289770656678085250612419401519966947171118521392993610834380289016113162309707450624584543128826079710774117647868540550559820258350850722392358136929079057147026681218216886410647638426904466840764862340403111744008926475191945275068055367986803054642741212845972360547833841611555253394601161311778580569988382904423929871606258230112744251612893424581536529593949340999970804486484993995212100112162812450692561378590205023490554445373480593765129658491666971066731736406066989442528193982281710110595285855612791205468504937928466973625792450643568610922662244300039523115212132962829312237969648282188730281761525998615478701205342857073012619380167342970604723966545961231342017643041532761322726663654907191950757828303556624522164031249778997782075077228719078714196185143745967411514397835965779131819200002913987440423357809241446724521529267577524747229501435998739755485479767055300239878150649419857024575001621210517486535025707764293257670381161370395806553405029949924689838269873582642883655309052298008179977396828881487779756953610600368665039591406280154007743849548626749544662076518710274302653548331372534407725501536927080644554895691688474972376943121840570699690882066830154387181806663699889483647324202129227956964004632666832220824230985587831206165121123157680046081096798802067811176610433668613738360485930719825017199379991879108681122268228847729821791628184692579047051055754346500939013502579547112270272541345027082456392131293967374199181608387219385994105388051489284736568236012855214672213528449065766666862875779337600521544274803110101654444357389539385998311011340391275928685950828305130162704871172406566740305066228848146660100613615475119603058156068101651949118059825409680859512544240286738188085572870902817566392563803648764113964186493541123647439479861243613431104911248782875399705416599453847293463770854295730106392842220142324581027255831967089715922432211221499395868305073954775654730121905504295408654465286968206073693603296585643948360218415857161070426416437037389965695875721544795554794158267214771408673896202858339562070330972865160052961193188619106246392225548096710360927915395261540403713454640965264293905028103928005448367784849280766976874525505671737121253263494594043447510202048332777101944717115440499404840041429598457389698141733418826479117441524904424683365893747219259515993581644822326607609457097341176426823680106070978100999355283201012298996967554310083869948806948527487476939880863763106275067127938644061402040720927152979911284640952552871445883943232686180308903432209998919989177494343243577660964754946919614775520704937432514595632908384931726794934065314631616710407440946445076453092416542888877768724528727118927795889314439663516590832993019432322435017611263257265559725227330837709381013548501787479070374040012163041362643532910763369939416172385490237183924831069387703433172948773100172170225581400438939256045689560503928918902082476957670900816101401236111041794031098137752314518449092749897310240497518525084109994294223058020056930037308655931937394501895430023172421014610662115613172990457459687898039361990732718225137940674291938330816241286503370610472545046510564695871587420276300288562058542499769564518606711150197373560308142021786823572094441765299881764003985218263452145799430413335574146351246428113804021016528406948523246060712764050946017893828337212539200716239132599799551004992680568266278035451460760481369268104142889355784008259956582326883761405591251027864325565842747330434468360398275668904426356080267034376669314326621667874192067562473562424771315350980727978073455120184859353772845486786285772116426057808101024213407767768176080808361748548737785019367330578962319863239987073650337846217103517534546969827411551588520514281573127943237883953206804708883344274848829981636280006417534533372833916233214310243869941152995772605463796491740026092435322872348661048356150675019757500803844279244699203054560001103257936599359442875567228544994808106140727036080937782519234953248243669710609586133466006406283336958396492247863918057627717823056858714388163155528913546442963662468573365253483612360134270352965474867726101806430696736642732747469757687262903936161618484789204578553458116699327220161150775688564557517006649450005765049280234627021757599434178007733530642996507082232006519091377111103580533933715666148015386002526327677141330265954701157844544804017708140969827682384928832330423253660030805092155450363522076570332250525120885965209526956551317329836909098565687838994196563339850056260510263300196984831868975213223425301332987938193566081886325488094571557646051377611688179273204600129237002204962772211658204337476443338682806425848743982084988244418954677179840443862809986334754721991313934879664356574271413971160301512296164064747803595885329782455600436372235454142357010855842724162013223286219315510683471757472360991293032619466234120593775053439915443505277626140930057048698196579533233331813202037426364604077847098715568523328047429210072259398792890940234659003975655971705023323328904075505883930496046521791089688360685771443624142390385886357806447948458267679014177000653317983532813813071377255936038109645489453244989191807757855569450416539464903580414524487535560267378124203514431182521763700171802888697997008418743205341826970388257272559990682184889027615665984708714617646760081277320350434911866534712049996037499018979892026533881835826420617687087723329153809540114714878838644656767872185239154744889812274116601809653600070116889029156362192926093823538922221912110315945925227329648715211697820820420055804020106402367024987322949897018857736560972043870310741111981467375459706362462196841188018246861660532417979375258726164539171930500060217918441842526553595822865865237618308381923503692676773968090177838717715505120567085204775451793273142324377658290285951133479194163845953557332170486821339186955867852948621688707697409205745704606961466652097424707869746040020261841644522026367826043723622827692913355068815034800528216346192532922124941947355881053969042086969112719772769574918992444897421460181994646174482264632359054243094207723560535860833724061335711902417871334421080721606841878026412162244204986803829981308469551590527628420453012045476428876710878875683438802583177366518010236282032854842336096294759062165848918648565931568146786894373161639623975509475497238948430702541512822867568636699414504176479062510612954625541681006758138132544807016339652708338523756001909145479413460789797141461764138041064218998265169542444205090389437446527816819662086947431832621995507571136726079766036043064139583256410314289983664277832894533439133559823006834046909844735901137009653322847680219845117751261050184353935783540076633310550670272901913205011627882817681786903908948175105163246439618992993198984803713634137092873780672900701280850893211655913921676190166145005889200125161515585919938050457285564615444479410996438638153000168905445562828818514924538808411363367671691978663829077292318284117631163488399459846486984091550000763955746847422929028610005947936831920733964627977476011801182723152250599138151509018806467610769777824896317212043714701952231591540726590611266168714287332421153336189525219063776644603439071540689277439203831411256736357597722405950876667630772499743277759821188144940153060017910559823190480396268071732703653446151426525115782334023285990483871845261596790267841325970977461979589404495113547596347709355164325820646127075003058221592206150781974027408194293044059168663599595163166558297735674372348551224054970194768253635989914863097588529692252898457650328378833218403768987918982654509448101951346229222730130128667857400120466586444360204553315654000680068293214309863646656279951218174415075333936004103191694378340432474132040596191080164177779945967838354615318203720498820414140142914633426500205952534658352391376764720891862921009233799068429994325413911980935128218622290217114876008927998987267744032392473070471849134682151394913538831009296584501443431012174044826069126915478025825447281367818634537957872085909342267974234521266429055861146216668601953442147183857207369298271388228624216832113181142617193793347729564740063552077369708177057041132129712358614426290135318197710245006521651641792998041308428389970406804960321318954727077770708583035912211782753132081167447033104529359105202764978972198534679147879784901338488642510435748184685565083104959292021833221216489805877080239140426830336367312584411695279011853146017178154839416675518768531671319198789853050867459298337223238470969051444061567955308742233333288681092239428226694293120858748274544143910917748815359171530169743110652527727255600733718150659004198856004626761027117028305783207574687331572155596340244197583232183541530774590021149622404555653767289655663275407723537341623651113970643453834492788117271864402138500328840638344451350561604872816440719787232171745976952301590612654825239272523966372465447926593444177176989580826849965911466871071163645093686107827869546783247055292162005858347799549548558324415557561846729284746446477616756704853860212511492760513304521516741261984856871240127233155659847272159730094791871922766928851761269130360081878080821482775159973284019744368908063160441429784847746093791547403845393371794237883837223715912909790019104307872351582180971478039216256230887200598491199814276061056285291475487977622503838732981861449124924815550085684081478385493793353815111050035294094926413147930709417467759475701300160077329472882078386732172567498444061415245676648682419682283304801834726091680907127071719379120051001486503006554523071610101224784590876640496008012516033104294768213633501111671743694790622262692736331235706622799654740932720459936483407497657181566178195045091128693756236549812014614178441375861948536572255757288587532800962594135725814519454373483142591672741817361723219878972593032675371018609422641925278377193777006428011539885042140340049494233232463743360972184216420324299520805518266534883412869014388582211508951507248420768781162357735054432545302166986086981262406684918208033269106904896024043384246722145515895695246308259465278046550563043873460611451828112474832177542028549788351876045350841419016322385160059982242111152396772681081089801034849782120545527444803963193377020599095874463270775766544719811452847814497494601314523360667729113591676677468577293767331742778873817362749674687373019911368376390948299999975781112651946290017284761323118567578680852996486443993877779742206274533149724720137411686701992242756731769853184497145282747047753929672824587837259362723820648028359116948450282612893964961210059465498042327867298211485357961916242445664259412943103580923810322714759358961226670085188404540132020936304013473355637947362377724638189955409193300198776139298573336179710086415958765521932875917200084740140559646470320762483809552057172419228864735964722239099099406571975777411320618274816487012342170984572348350529721925327019389972567152750407893861129191542593799095998950352193375931573904447123143356801667499080550004625361869852220809292084888963695074791108648865524423219775597346016059473072470693416622496418544596921827169850894926250175596789445238698453173017385526268775218580581299055451433973020855200463596329529157227457122316597953516627482339280367714310817332408937798783423789579716328713648470524322799839332337695371466344687072761698441048473871401670015990554946617553466544003243481939319229855653066534694160199704777212642660042389476426061874275449059869502856207564015155981143458523837075008496120082670220759604145406587728185512328489705728025304196141787284137632335243829761428487118193566007383150841311898652873608916435540256572632464219519145939076140046622595386514497530232552614863957489999088049220752822321821055268896905221897901728783536696693302240737616021497883339933565318619605999929566664131764230598807533090028561100848935587411582735449900131885849723572897401441344819891826744634258053274046062212330283826433825744122426619819340704701626305540132389139227962056242970106566855354736337209276285039891712982689696264460237305648842328795640875473389867116596479655482783395084236708919673968308373929679971729171584096191448337363767323088420250415134946275676297072650136138763565529790549600236177643506544914188218615332521076067721514401690316381625868832715332957190474851625229679156657062835189137671718202855214367275609623518051494311834839610137257705141184229631906516956330462326063631194085361989765068237987994699668542687832061394821212130844546726151983843496364690389229238990850659111156316197841787256092403152482964484851814789553565030946858977619793969061335940573814897746357115210654894687193455562907627045061844649965172039522323502645615597360807335963609821201654049907381891343549415743760591932513750467054317701341598522918031077780482317739744264363924681046585435538793562105364388538797437750205023863179892248291086602110984276652331025288534829676207122116426860871831034065890010875463364706038945098501406345644132311230175425187228462378795798541984624793720698385868976338258051622228863109405153701088481021670661413627607208579451824210463477280026614356952092921792886103817032541935463665524313522193760814965245353348440075929525057767094418641425067251304267276515962705346966206207280924996052991590796710920508720165511381768421805585465422009782962761451229174454682578827696527508082406642780525204506912740692995878686522275485556780468441069276872086144040037238454626061144044077317402987432410250750547196159080306328661984729210316547456614550212305735514642868771624493642973862763873085619820776714993808102199097656976675211126146196228018870434537929574502676731755623084672585062287978166757988105652957140027604162095114998181226863068113162990015431677601643669451552791154702681219372431271304789568184855670413672312945041918481363804104062204765211577075514947878928977434176026279948741822389474709263731752683190584512730233047786275604704655533040917783479895372359100728127291063820907165617082404352756844512997966547071178951765741963655617843272898198718150737058066349791279845031973367431994148322114672474644808276189871648402382797283640750810346507379498300643336290605581481242662211860349818408739310548951481957369803086307302524827767272373738323960554560028457325614337621362704274616871308622502015202447597299597292909675982700350725983453695079123414372502819447930462878341316837996553106255953208703665952930616205462292352636046417249588296636045696013308890405071231304655355518546820527341935093685422717054396418018038978835046361360116084891913638028310463060228974646698405025795619115584780947998508778366495428100697025377719353255412527376328657546918426340576206110221618908581471958879235708893385048456045296296547447292715102486525768023920477022815499546694585377478921593547428879909214434404722619451086224099460482541307973083533487802382874890454836536997247654040620991983877877288204584354554037192726793874012197233121707290856204521148222321034655062506373588678351512055029140614554055343941676579135181743885099175907861750211006216032103955186728049206173163445358830941008990345087909709257551265510996466056366139761957985095848855771180506202416815470853919598026642655378701512628822894232235709338509448133517860696190423006347544311547240357954642942284164601867510627915136634153118200206244229457890412607981421141128472631707249252508986255242644038463799470480067623516657448766274308528995678461096609395962189735553682177302140912469656353975300477045609261474010407739708364525908310569723938138953664715518465832423078165540015216600770484912266955514971904880710594043433184008724551067629116655271301277029207130528635597116143888433205846203670942497482261794682586393547149186214697197372830055109126325552066311124079063843844502484827323159625880998588685241132639117538459208797717192341294818937125205500610611583911764434366813140240830614257101208629544714044892707717491176302186597414540551640289206375818356286394878224728354044143275265681640045395629295821106024021358356879788230549624436502036721479682529395779326263840963356351231524020508377707168191238888784639123837493340585418899916884672452817527578870094618637087334035248606344882416887880124763609421138357270763055844470638293151189372950001101612617951079202437856990045469222915442303309233868671915599192263335187909775474366744632506840531298852686799649213553421102262791159283527637832815434112814470885214375012032850631728037407532934173303490618807649362424306316190838322123325448107491105504564936259776373822950787440641982636948974728821435485151736389851298935477896984528283641445723222115167356661951660384402259678975834416514944234852118743964498688925140500034242171730128124376697881847293528321507191791138537051001613816764433459515386743542232908167064739886678885361642431647462044079594196803245300724764819605597568223288199064889505754346780626679735498999566440845914662371288714483384075544203850776705271375673676984388171536802008774452216750926526910844805993353835378333931779649277278353002505185834109824582222506515791971788891133730711462068510047947696467798952975781555613332584246304160617459580344280242460137573035090212088256158818499794854725866220795714631038549332194398382122086173834004460410108512729690812765870547425392713573479463250401901964211185258990802201306316881001874599621476880410171568482615622120590423441174672046269462435521764483865909880021941526279938841538754964228396062391649338695222590012529871780063591061212570113768112275381214582053758686318357851599352650820777579960553399378078308615968271606181540641169014547631513603594843132448254750691555566610170985501540103926633794336593259146211048600271591014588487743183852926374141379671119537518565352944222689888720488332842994224392857030023518015294067403487423197130481028125319471192022685939220044492057234468892334204109177373890734474591299233629156846300201222329416112624701418508229198176088572663674971832077340589852937820489045194195204157487586934446010836283766602066324568710474053581311616019065510855436181453027232417235066000062728174487262633859795113003269740960801913599320995165023657888891729516962615417624237794039687601399970144607624543177241157692625470342820342324166983687984250436255612074347522381258794978743585660745977974181274612656532050378404803669605892318986188818673496069456638280194984196707212999682115549306953920566634153386626918422025996602716302973844170318442296189386234931374744166341632868738954906043157117725847588329535980028433863333934387396357277438233351592405714194668922279474177902774500824745418696995993168934620076600206549545530581491385575300699829191028373654190306642761438731229274550303407358154270457403254766430750304039816501253456998929819376528380396546477145475958078658052563443407246321954489021897083642008501320893590010285123635904306580480231619929175079489398079958675804532077128862599112308337092424463250955089255552797100776808543538460160878482916552972831915791505694320068415715274372182159141365981886287963712287585138508397763666320903641107923253950250787047761662220096406000220698231572029431627946578453012368409346240987799913728628777001550032700724653527863777295398372253640025282032181082417186298905813566146748363720480458137339683077327544707069262604486702658686631134905065330146644665588268246634994427144132638475798844520026066766613104995004035848781326635545254854211337271987472142918068500899923369264060947983969167280961562784943484049998575163115281449007084702014062609027741189784275137227046854699277792939324614031762813182370622626212688386314196817715676430846951104230308040221111476206900373740136111415128162821766865356203366197530473318643255339870774504909124463936858131509108650032851568458892275566423162048083232000759180577185989573644201191883237710257258471374365420284649853389345628597481739850541359292882407889956967830107723800151730040636097436570232111834730231255064513280169480144025406137926006800908670731105884183746047720533043896150169328191065297205137895364208759813446867801327825708569008890762265441039478564478581055966850907856038222793355327243992178843475993268591750871416482519234357518270767798659483856556386621764700325290419484870219352387028231413297230203652158190969228828071617604803440526889958683415731400231059219922197234857995176810686336498784943977937667995536956502260868736788147500277983052816328918802654476097316416233550248822495261053819596163661748195077069503396779621728429980868122269361791973064145348635216477984649919522435586515032248410638872113747375782868630778092351805973042915354563500740623716904439394826192654298020225449762859903418922069964079862158617306525702267935116890145655013299074483686163499752431573501015880666549163626499660300221982846891154937530510037683762297264314636386724412758665630713815231052621809478404911208103882537840093500802780602576024386695970125453055136905694288258710791598462239897975736214899264420352142536846846721566360030333922550139280788409714976862928692757344274999480684462740724114817337618625410354348301361068203569534148488981602072902812695892485654408472670260163788868103203606832911144902671014273886735651473837643792960894704050343695816955319382312582093383299086337580756584041636954071820242814658090040615121941272680752320039374940204746426914444792484103347318426767956131928588633292844957597670352328427592200589307624676181172126184545149060216317789041340321719184636881749880197156589685069101115548676537373036051350637735245516768306015171853784793502415812667676755894631517798271943360446784014726177169159637047849319628653805651863669150699708497504063173186572922459147765555019190632689618913804358036174007458456565533803546832544895298663813699162971138370004609444901294338576367377146546680063484328943548466218896067526953345247713540267566193112434998091396072226292692662664396019155810204563914543310260987801952926707466095917478845050777106091765346007791330349742143222223468147057053443018106571169349518318947228213021806158295021830988937317762567999832282250835662045771440887888371355435084544552430615663256607430960852260395504768925892158597521103721926483401010033613405291359798589285462437785394652167013214660353166317716666151851263907206548332113318105259605685322162573160710687895214359787977322427005898379733324091581021808516287489205522669441821262559014197545147211062582546162762429919098476497739425175135038074758924870886072118548515379125209249197561111936869744494318799489936948963133042073295790830762694895445146017628932396449791479536582382865708018727483588261282844588457375906777117669668621373981945727472597174899809489960614407401599802543638890552064589860741809439945337235061638609095734192205055093044894688538414626745779174388229761302267639132684498538441745616454983438698138454067731813805735912448251875971656828063725046456545057375659363305916502316700138582277583214657225608768738869401964934427923909550339541253169250443663146688091355196134083999866678294778966050338790025975736508800620104972806088972146137762569898570873480425446312472575215081923802737439951778711782203765925851125116428998786371821116993116058227787843519007263107651559898757526782340721734229719639674669869298514570036196079682686023064896012605855706227180123718700895287573632559457911766007486379991179093940469087612125602265962355832524233759643520485565406914218451433323173556793306475755344382000321588798214103784865362255964889830555470465669666508209780627124551179926215439495600872794872727862287998877389805362657562705864684080854383924338079790929749236664882126294774703053039085226866404279451076178600397085959926332578401862030810737462603452771087508513307754873968961289041785949032826521096991404185474414354350888821428163820269366477024820389311590344244223651361859992469667724158685479881058825411379072869914040766524670551194964412511508789548872049847747229634425702682977320994715005473065362621135618364420020121739729433094240990222868173433087894766027076842502029192886517560654104097168857673535691108357479906733785238909830342276522234249756231261224896587664580365115414756780274209437270707729443833002074158011709408762617521148452456113380946864057914513652440494699576951675617316482287888676081973896162394525907971654532603532510143128575579967019625799493448428918511312802126015127625250436709604724029658976661039593036483097170260161318620043547981139481479895985447879950040555991328736756164149392163535955361534941249542519730152916984917035242687860504968339637082308761430733414118773422551032165552867423567021348447568509668049780722647419128283654256762418138168554712591627063872845521932966049562215216878683151497033825217821002810151944681409276519434589249039943869560958293616223627653509123444280805604461966381325596984202653332670590104109384582780613357548594469061392213866526173033577901842503151953861956974403161446091211019824082048254186316156046192918485261634170276047868647798012876315100476635545792388008973732967235555161307110751684001610432180377274840889323202579064512526855187349558695098338566894166358642732673161294545825239444389078994522346313435458581735416761410143648977443548153111882829996631287721918844380776437449930709039391137574059316062073631597359121430377107778521106857258494866013721228773270116651166891164138645260657125859699276427080279406807168989647764050112322718819352887330445779223613197286752236639771997310562011571496822869556112998684576277517434850888289147860704612799058919564078917440376687501889951598700728970359662954821446587585813179490142931934411872817826868458264876389584804955826711675562716118471977852953427011330961395698541442078375275289437884087625027561544350549992176556867185956366910922112387481926095826466542523749437498794417167352622593263336344820749049260708445591864638375754415824248691280748472726808713163009287135523185825921466187183834510766851916829182883916120939844003518823719379205900353511811076337807437166441626143206502134335563626864167030759591718143503455145991710269692404634064339410004186515867146599893978144549208623976640139550285988255294237205904496495358951656075232412059871579714350425587825530905352779074531706806022700652706895923504801548099056150649120990000236654378995930556262288236060693576837572221518386252159813380470992621347300817662259635857072800955112723549690710471077561415211514259096917088829233233123785634378325918757790885827596278677407510906998587936333191009409203879288104092027200989429553850184861854869790973676285866051884727714413905060432147617385858296416334585576412997524797182755099222264719616048496505888798118355475594593027563608538759959390190288389583475214582558878702688930559258138886913465297811343781728468534080126877482051950748287147965672636263990706528362000232241768910274901252536447444046269829844536680367966958777729010757675956175015937130007227996590819642528802049767110116991620333594977415509245793315852879508187349580713482911129317495044649358821742397421386726847822756276593409693618124750155634045773310512995194465736572174338202255297446068119675190617414881532029830529872722378922014098892938675692865764500697394320957219778502134735500269773538776522535190170336043775287445765505758147991979863685844416216082030144193056503489194649811197823300301354850190554019140212597693885379094166635443651090938938921725439358749264924660877322937776278728831834823405168030137588049535719322064632037911732078636737443547293557754389308312176863873071675601088703450021543119845317425947471136654622736516678280421928196546586986264634353333453418555388562832392959185572396549502395704801180741397766789342775933827231032335522309498426532016561580623705634730956728843777446875455032877451313151134642678803135462443578521362027382323236493051179138970135505192607601381552980546213665920905277805085689633227181419963363915933289682093740010602309505466641630670061580089318933252907521619118916182578343541853356558798666489571584861621652727511099109764157221697391123515144771995583512032606102566938150311120282552800379283034495605383789936699790640345682497312849514679815337114496548068448885652889354590947642155417697394695164011993675010859081736513558306325382636138704836464282989249562322647287385026694888174006144646404035964618247265034576615934253985090058101219009443189556015294199589988552532806187821361850579740704560152747627939812274583264235074547018980424951204913602130432530668974289778603421742661362622016615976631379960933254757724341283646386879360116495013512027944800451271062878528572226939361125678850415423113135451651231319581764586098536559272282368777253483295550282046423848477926775346214587063398695319287366575721010448479895358025089424908581848615640088893929036282206242391566731688991616491263698509299926600628374818791594782653678877553232097354031851477348206090658373640775793519064605982677136465524553100807508553426112698043206766680456064131984009860241872598264256676097092342614511201151896360757606144155911751788722339464819251607865420674948420013192985605269098442970074398215524919304581303598613514142969849711830127636587858231491104085843577361523338321240785806604100502093843428362028276306346691918129251395308038597586143962734230169613581510466067412555413432666963060188678909816511031078577255380651722615286135037096264624369744937857465592620713967052576805125821966148464703053639663532359128773597000798715458656046584418001862505659670096126938151372324474650729729200911528522785564200155240265453366485727596600180400087585640522531719382437513518891889818547805381309759554962874892062990866021718940025898055520078142067397826799227246311901684273991175570086525549391236988713963089687378622888849759864931963176314322246614634014703735094533476495111032901248951244958443225082169630596500744623714416751474186972217231104634232371075796358021501856775681284835275905518709714100261180836399396451794389114281340734595666709222410327048330962387796120022412551213305461031809127302736345755014675991287525544127690084529525300168408316391668510332417287629928051458596267264107142050865309893986450304784386286176550163152239642649215957766417083946100929782644753259232789720200928720074425221052011087299850512696074440241073714194535295353652875645592305138430093755947540194374264580254818613796385053999445037327595690016466556060594036618855649960286643996782164684318296893600241213804899031380618620760549709029387196740145615118414783821097443226661421138337568708913548082428392945546947449465181576644388131602326364786152408555034523825956881772727662194894253469020430558679162042121313194291596127158243671958332393572308639530607955290406013092869325971468881352372180112817496082463660358196991414524696609545283169191332176360223460801792231764775942892024520303104804644765126845694294537504519224302405650099370949367358108776136903751179252663678522568888093437866998016231241853415001535083525032594275554680170879641233198932304367005259177017327151704787802673006491677537626421635413572878965587494228271277929810633640726973985646487293847534816315362664043578001204413782306465069775896223691643945337803596559323864945072251518805559656125890898821327084297773214917366387933327895444473554400555314512651939302471261137199362897958431834624010500127373241286922629310811005592459267046686472850859514042099149433222994801819610695830769838723494976267635006388246556296546064571034597107934089613077706025304804100475470435561974102994835204406189645932056104710497860944760113290548329171675540668822066811548292557384836210710976714881528107473117161619113764038978564683128389779881548727015083388809754628813730732532147748996442668691644661154961925809362004030650327074991419757359569589920512423072096627986554945633410805237455697127137926605684794396047661893908598906114627658221324548110205170701605075494980215692361015357389825025334865410325649226288626773228261922376634774309598238420094681232456219458508863433282405071425098592266214915737317797278202953834238837136947743973897774133977200756847075826158217905524338720951868238870257511087381883423281719951673137097438928157986196315131483411398459262205936582459030002030127236863523605391533929291685985452427132793334668992781152353017395926389182313884802870342634789083674095299079847263889353160805672100371400143398219751268953977389726777874743762924705282969360796111132498609291916206787124297968002228105479210519914005913431012485188088897677424718464055181201312465148841108425144425134273685066553289915535351771308203335636084900432668739456824979124043175969536881884024486780443078383451654020792104308786046045616349978707358280954114292911984694833887749636924032009358448864596552423200450012620103668249289881078089351204183713922679133817342391124880860230782557706828851940587364631971137838615180279953869114578073157453670409218803146704231223655073207197348440242460714287784502860307337556506598249863004195629431840229859844065749884621568086745483230473756393319665760615433354142084819599152092708452539040463064247787619873965881612503456721300047985686821308910765207315543259845988375331626656776859324574255162172817659852385128265993150610756374621922581944894239617094355102939881095592811794871413640201672681683474265454058927033707018382650282708038890669353168652836533950568229710749473047102089028817602534150995192333573041458001839532151794836489631477856149677971545501695931832634423171500031957717611502068138504475318040590868800607803992287352486318517266877409499409071604491863916432067816804519596614818510688676946081219611113024300864252696135439347976495590011503553243756381776635979349979081894423950869571490210231040650352466056137253331170364971105202855242193246485390735748548977317752311429142233493885717697339955482980573834122882290445533388806214093585837428408946122288211254841308920704730708116562540466828107657624822520039435367342038185732154628687148427089837675208729462306782431352745255286054072823308452895262861899347920976008383502467151064335653772745989709932575485031837898923409395417464919618722684083730010046035984880637794318355148536462630258308145771673949994237097754433640778413082665716306524617476390413227066046418528919197518675368454960847966476747080681475869297003523770418957516907621193102433824296062135738803919723873985491526400041834875818357287046151785539943893852919778886945260511359867727317676669110236369071858925243578261040920826956680742426034236541140460262576615435702131192456249372443213549303152371785774352181042488809034357725992271429913998573258742918805493660919978548273814930448064454293184352051539931479126369438451990202976310843879554611282690515464047606269246409796418776475091790991986038821020422828576131316103621303478310059814838472507741537959669538475616368413509136361724035980897713369117399241696259761411212093242993382255535493666614337811419050265420696555681748128584825788152557770381178036155983083560491824943561506660013906575793844990898320849568622626878977686276979576194712744357471168106805597155402760067027169999439329027680577892438702042318272742312949578226329418270223032701667082910911863320347706741307632822296468596078714799810436757958809789673648420760786619966183265845989137393390313598274152700274277734828702021937001894058797550061581454748141630304690917091491866877924058149616651621545938750678102859350406505782849410566123897911222290134270465731893273073573294291535630602483698552521628917721443338325000188680291990318013607073348017208258175513165494536203037236118618834431249849964248959506865774904470772873366923153693282297917234398539463231534620862396359726768381803791514868160206971922892263096153851200034667912469402642783638744493962256536772628372733472545988759314429740417010486664897851097819979881145883145358714011865133666299891667366397984643973091458330332055505983336850722008543319045249832251285345427041840900821248991346351384904235552354984296854629287767653293822408039121281755977960736367088483130799444234884083311170503037046057084034808681420159115467885167287353580259299629182901574247791323280018273438754009947823582052924497461487349678627024621714546719670919086618039136749864413915036250526475532997837991395317289815968987513347628972378679586098600749599906957146641486420941102384848229921177841115864138310296264458649093955163932538952214833318333315663529618304164031609918738310104146418968580355574210788124679621997566733212271989713909213198656422115761176343524781083501114641507025931806563900827851531807237978490143333608401535478845115556104588152302710357930557249426166164034598214356331477573334149001058335097536706765318339112649466246902816883132618778852366556345347694525343346572491897294381475921890060748780758169450990062852642839777500360509037404175911418437661563844093049132077977609277354133516851120126221888219869615713509737928512065856423470910994429913547093703181637097573166690378625711578620427046751808266236408947603693820907622986298240967906393379004037363777596457238976994110680868505955012713914617888569814851627647597407184918266470959519080819220456594828494820799932310271473712592008984584938033105931197293540737114708328242328483227019206760596121933929569642314411877619810831242482743813533160403243200166983114008286925085658059990741695406275012226492907563004022610671203945893771763104913831630557649325879671458529384844670713836974692675511797973343430852236292236996082779485953888636895498554093328200324022387196082929148357492912272832274873165151763183382771780205014874388661271691208166080735128752606216870324531793106311415039104719562591230850744991198088506846027837163465554950942577838345605600033052239969417337572303373572719563417869439315168432903370100703775897983935523609217438729401623677051152468242426958517906309444217237737065305584054291993438151127024528021607591662999937692552524138991541618992237866260876159646781879822671696717606841980370923885220713171081355876465629144073766718070625666015952001921188869333369623011061953564078235815664424654477213134070482249381409692550360658322113661220209070659642860959744809034965317254118502353882676221087103247713678786320003845692986846521862074445123530072123726890003685569345918473974248223909089349548832510767461392157886678117072301932075291247475579744324922246612320121581243812252568959572011691888458993921885407465921368006568515015997871854619607419132709143655233088099599942376472131196007893978696338247824534185532090826467470754386392306845798762727400660153382693967679024828882222195232338377012252316606871135417136067670764713263696220965721345721902529648131893625155412663346991767311978734555488759846303011139667635995352851437114716381368631360038593132890064768561181036592157917022128507636781241789170474546427200701844243177290853792907420944547334548544764281294694984197892875042735636378438147941055355288157203768961939145493974692270800078544704184229023148961309460582555873399769026355621069778001120084418000293038256174784793842984252016248423038183249113124432063738837445235958074126781769594598517454077939815818639381297008317643717958428467915143924292284586567675373831786495187115033806197128008475499119268940884004905449478207789646000005858198644689831143612934332044643686920682638070315500509007946948860567120770643101977270309358307506446900104168805672342073094473203329289134329515753955997090874218308719440877582287795794135299500293680797409383201903013606888227583208762731522800268516379427191331539920820955024643234098906380133407614312575066073801024465341380217344089598288079567908511684822348194622490053357170627902492017927303651161850236831603266697406849917664521283526983261095551510920702564777949267542590998145808251408745226974925226580574898339949555707014605077923141785578537440999567727244967460079459299206032127553388180093805211141570570242308396128402448422086507771098462202524861441823242695620253230857736648027623164003480110895660306701839353457760740883073762765609993506438354490659678124836197486731851569419213613560797469092751525751867592710141168099290807215629606458666270403359850392493901641833864555414807271600655830967460307711031920530763416222360309741344026165303585890022040384396716524486801038219613648314779708599271655582763674781786777274841498852695941591987661275431948788001972492345989383779525909465787043624753370078790400175433131790475308138169563837517254746951885976854384496121889146734508936499735620292325869466951093817405865968865466006309490192482481269375576212843378006620083733684363980998585429916175497236227374823908120187416815894555881607281085074945314083398157593998486384205415555644131607528406571174950919124224821490379223255599118799960128855316271929236814667900662908075941138967443656737247451227675811831286621247044473878657983989192877598733121578410921259599448345458945471836470353526162970577377471557322807693076869174925159685350866268448022993365393378629034252968278500681241315127839744396021103966246339239669981430257258617994254801623305015473007764470054145939815245889177128950127084452446485426778286629940382160908341114409385271469197814371499778314706801717932663074178639152691260790360229671638558882514843191209867401837790687532055845834370740942043469982946734676356374066765265399338732486645814618453883918841586623489332953762158015947579621248717938933791080181413890473389528052548970408541556218657390641227587031390687987905356212569403347309998693238118399049226169169177443786311554725153629048355593867227577252661478871681772328800363559077570063800465980462055156181740314075661574051362536447727821564538740444952147414017135966640421001685423077529089755695110108148946456674188715923899663187690315397080783877392086918059272129229761792798996960325982614620221226952212156502844774862371799178460778261846328411282984565347373633386969390533184337797455949110776562098552447149014590015422639410269406086999191675658426887103152137011800046717867376550611404050532554698408855394369883800359464252886283599373280266042127543463647586141220872085380125621649674558765188535134654767142895378801143059150169716095438840186948120506451664674202405868783238013642758404628591439322397758971707198965918875310245521371651232355002987240750040014597063967726633140795206095641157709709758535238357642793549633856240225354108720376837978056332369420377795008874516469632259952274333300631763137996083859248461104137007347004685702645698089985370707934124262711365390394601087777757476208355258056103279689786748273929213593241974762880703813447152329337201106851307872604644726357960924601774779997787793273908424146776611959890191348229417031257147983488613327053931067114522315162501980115870812509161716365813720394759800068767340642709864386839965002796876733945993429843128036277827154307174060966295542649663240081910319925531741379733617355494021222368392841995422464183554727759974980548107338036923454204234295136966972380002122415180930628332632492546283079204146059068624273521883782921689154605879010179400134771853418454725372720923756451948327559805147068476143472652236938446633856570500085026530268829113895432567213743286610570629361116680879860900884240516802948150986689431776422716901633113859898807478754041964728938864931642699119459908626556043861616277107540335937571627994944537443582547963086787405960049939331437007507799576614800725329649949977430990248962578168366080105795679499178814658333050781488381315929105117881279907567959885072160119614242357570898301513808102830688191656212299445767505787789795722994983543087863560638177306486127138004174883578017873976091363465854381399923728381489883904123121550504628098125306600225032236793504809411312788296784535593902838701215127679773858325075229092345285807281381873285744958576383094568242609804176428092985323115006950849460441638695815200681887597279749709896849629668997043258270081372431508049153969729233828844596013519026380010191348970131735358868849059144012028039036779269494739765138121958184145198227681542312189187484721030995276818233541679102313281807272348344377803049788084703777112077778895066379133720955418547056929085148390155442461617084879485915314575215937132271686948440417448958503599300276117402955952019232975326666448343072089151046601743408841214619372924014059867162071214223188247597354194619994276466638368140661866928798146701177111351439454477463998062688718739011548059857910655411738053327890514694709989172173288121515912023958925742140236145466072778006712752503569898443228937497380366346289526107641695596041499848713230301890730097794119621189639737619057673061606859528506567185661612033474497012548981147828061320769732732668214976773217713247753299144172020532381907300462539857132361893928371845247226764535596832509473295357722354190283370139883337579526408472368840029291955118021002797390480161354934041020591659959188278357457123735172835132782551853121654061181412523213686671478544850600580676116472517572129214785232251421067967242295315633322539102180725175884865177598594718358674365518617924326499661621148276028256881965489610484483138942450919505053599637757197838374455292125856444986071500917824381334484201183047313417411917175672872812504703556110107813553650338207261348432678919437190813556485410744987177154831367084854954978866582600747121900758018467914830237924131057532494856937935249828756721026670598063357833158374522304128657324347971288520200260535993432466709952238487963073293174749140535401592293211393190475614351497049965345386233081953992488829393243698599822957861239113185701390239278485452406083565628358533472705932345389999240825352218092082917963653832946061464898684362935130001932974141315151674274900798773093723057399270316778680633100278376144152920809671575581883624671556676000124229372009239021681906010178581239377366077798364710935678083132825998962669452502029314513594200290566660130137797592637603940284792685497444368124855574108707726619713334999032064621751223034048637726915435910316180017347849080074932683055445191059814504623653015222284363206581119529781871711301098642894111057642523406901555102323527497694308224795541009677868680266436893184685283438902982304447258558970632575642237069919402256544828955263813311309866348266445943724005845980290759179143739223961858032797537314552896632611788346968022875617304736366855791446963166089993002803461001287828193174756165569148138982148787084593674687309363322887279277349844013938898046066909113377912383517096145822519806714761380049550203977991031850261024001601653355217809149722054651451739269853585722366713886654189201649338805537495729628972913934768156503637826275728820621306631251537858429522406844390726945099837485675604878557128340096957861731367961231558622884733976463004276128009107936502348693275158208266235614456960242179086904992387444133539894526598736609390545240084621427495808722301846814844195566189764009830735389044940330193206263111880119275985642499170792301600754989123085498650709152239466904598076828401668650297254529374733916023404244975174498445496123080427845725345484205880484269948096813089618559874090874963719937910088155987182896589400194691125844035503874303927140995615721460594365541728753001163097134956150450831256276538966863038428539482285579520203001106777854084521962915482817566471297558119993067502224278002879572185530149740954750182283577027913910136335666104317604632474333044898590250337954420226286219020682427083380165723165094061443658250347437188092454972264338303972514946335579674816934023207792913870701414285194382359775687864191843107671693960789549040979410520817441209709284609400693403848713710602655899220017568390600898607950638695895967052058972377397991136752975445066494337017432293773955062683498062495091764578697143149659643976721890823607935951000705998057441053411049593932984674598015205948490699392709690165926608274929237794105107834258527598425250462046569067564645256444930499358835481671428996294317790724230793816922141910544617983327592975270021850631019235114919194180695601622834571036069447082300553698457097768338459571228853563374196396221388186227913467047262138780494433886869211409796766635507271323696025347688702251145933210867479986871949578894961989417688603643146446789138424730193645864036680286018665267814244738104522795795798491961709841711667888019409618831874263830488173959640774289330585389410266673344412816046796975580594334882972955973565352129382414297088666477072937022452619642717954145141133938049938990097108241170340988003871165265213458596141590165115324901529172674690017376147151460916250977084293896973984468680014549871450006847661098738861106724184340566215945882430232198825649553370534486943011349357100379861845475805441658164998319531609022483023086985005003717085698327241622414331941171306962343817936779419807297316155194994545571993669448709894861539598811001508746694489684986964367336819670255790287363271638185004583188506279938227761314836377127221967508708704802348990025568078753558149957774046020850069643434563025504234546655042873465370547317336382258959315887218654190476133148608243385979137841966441698117820115189907888628228379661328912154499139757369755156294735503716546483461348667343430051746898567804283717659908468834355057031269115804506223617658078062600635415883311848422934498762195329242271039857000484851113398690592259694540726591493101846791811069140398982367430960116395140740639227013612117972737881109013563572942936776288464583459087184334175159083145801744810282469674237320175011566041319237052398435697877654115011597453823017398563851853192123010535899090313943551556210480904604182663821760686416525189294469798041707821319625122869018792754434370075524876435324205378871686296844602411363644336561615106782206850442243520236766418893352763404063950874322985961663125754405966222093032526347551467400211980742833851420841802331060567379531530155715911759998926537617821853901264791612578941388622420501353781538642215580631930679996418401432464769502019823099203939503279528191040195315887367740733414807122782691147179923319332687242604572812960245046555438926688995741250640768944465413884313354618662520363654827227865010436872380705534839510256192871600952760461620591409390431034133802028500261452506535831299109372825255699316585636437741873812257810610031274028223238958702716962637765399092247714521913432205414730282009857545542355436299532732859464094282690729099134595345094466581532507703093937910662796614937641233604695634477030772934757779534046109547593094152811452501230194419599703592460332057189999369688224172207069390225411799687559872245555313845955998866895437726311938932017043433181179075280615738324276054699068020897769167260189268515388773214873396344381724407055557094045448309724445680980815718276269452680928938978025817332589603636949134455611864253841663335768102535185697853958102748640700324980480057892274464344730941799123595389223658108692616580809568840316726687893497382669574478283905971852127099794077320714675170667226076601852773351756060836073403921893582966703745553707139540467229205954091336887075956334976001916096846774041868141438787336747641264903436334681478105794361792770517223507931082291162529558379628753365462672147065268797343422325650913355780595787042729678531685317420244274466350657755342613071848265552857719859028216484076396502704686036558168613142437563199774628998219239495840162434914952437946937919894752747086261449392920841813364476437347050537332200934671626560447306347090618668298401803692707884507227010145650442690291363051346858559284997189646319734643060702463712219080290895293792519441196076196526204432158105761237324564045533555819177732152790814101252504296601392159638407493942513402713746537651785486003480801448212138657346718425491660705226509961137127782912584480023778540412660851866248553844386420857880035632044181614726382061031794893534244369533380685377982048127222795007036936055665668102927059911651944054717832574393124931730946099663017650485721949638290598219746611714961069198830532374329359569828374400684748143194409853709428785713941009129728772749769466119613827252576710667322613068233721200651197501843908591158084441778625492598530405623480216209040565498805921744536718108637523358634234106705854283551668465252743528117232609233895378078313574310146981103627799209773258707630494684249764801473731897287951180919418543292244338731834247549604644127139768659917380496658792524347991291615560513495585072523605438307278188488302379244073616526852167057285264012217291961654780528193104784662630210525458391748056534313171038184127278810902273824209244475590882163784057967910779269500224989385787708645798556964344553710379084934060487441600903118224273966487438774422186956263113412952125904094987709831997929179797417482407159083353825071730486021637026979934362503289085767820508365090670262387299846510017420635161165419883796550196909257596855073123404236478334108182779755773611887201436799422625586679757233009806661573656160838824550903196936450951230712823126507713940683459766317323779490269869045112600495519547690016096626333408746311017213759894956097855723058986752892511091813045206474514056179204783222541197392425736010322068542219105442347113005224774443501326915045940301195454799740561678321023063039488387275217136976652556904783588239175553679111024661916941549206937320991625021248990136889543936051623635035999462282518366146865716602141165466665436776090434712262433674928434115965439418162115545484581788645243374888762404957442456863677874525933960236507793415638179276724278505381544938318654013172092186979103383773234854282867856637232893934599005985496256898085445341015617346267889608843623674153077995064187673856757699013534263164247403940216227905115046980812255837244248793311241216782879642886442463418304536196784808396845704230738905423681184630080140211147890095306308632999057786271156292173679902643153394695133894393361320217194729711454356426797625788583631578074983311461778639335556774309503695974227759238655903888510628436705160823337654261308216410573476982321760682027243913353892141828042707712408427361039664019381343219011892746336912365309577332001427003725030658497590100641255221272170857795061286558653495483037433988571003035034263885770693787573814189849318602114675303365452716681853426649543730230829051270007384332249677267790000602955843039501809075588433785865227144039875662941489280227540544499026589615981122935482821461450691346879113677784473941830816517496525258608634318263854327157330917691487745837421508794247975283340294099983295836433782064189338508136726845014260878670041329242821141386930530800325580100699436377987639729396885454867020849684963774458281714100864730235821397804896885060193308254813420935674711535394056621607464550656411860946287190865105199706499348176232915777739325073236819478775092532178909642679278434936274174132112678171219833888376894807575167955226224080840700269837946794918030265949477718727656965184661371903302854267798013076995101175339420622529491744855007095412862477161092612316103868737949008789667875249143208149726636186833664648463389959213535883079879065848101053860157687540859658989796519367503084464721830263721816196660317168961132609635007207595191806107603946412361799315195106415888970624891367625273227885189960601366409262672202670746785285469331067314647663452717702394189756728617170719238387139711727074685138284222618139758716874477261474035988796803289338234004958261814343022482614858052084852775622224555333100311146457932188735201691163244138709841783141166845595059064501573162895894646854320438022697978896739036203830588596114625198285403294735587326240477523986843497075508141496799066206599416149150439667545710344059158445239699717800364692652491523040316999957431290101214329549280337702901576632212889815535677700884236880358454463643530207055998245249008448362050832021732343272671474370321437042754308855625207846614284008223244085093095586250364455822613246522466669136334889556954106054292960476835311184212916883739941141744941760570560378189602086250651045445508892794130231722066459500962352857128510964887483089245075931749070928578884645679717360774017741253742418508354361605196717643087602809551791908081470229818086623924944693985366152897908095349495084570602124040641468514958182428104851712097449094128862171570446308440856048017968283639098660847369110508139038221414688269619011094920049639554509720426700010156273230254964031750436337070648111085635335059591452800750545306882795815864750085247090111429022864606134474160319021844309495156471179722579654292256094070770612669119211367745594460950011359530521888757914280611730748622019219834396017539965180873758149113652591032278652168245412174872422857225986393879026980297398486108921286437125359380447900967653117406824569764346765659130474512277116900549617141483766501877159736327859048939488020155723193799952273365568686904093938975244348128185972954129196140356489026565878022858774611341158265617111813143460176935845361205281084402915291214574009033331966399460384748566283114661363925109023453892077932378196759148739838815293515253873875155966454078143480218091962445924010969599592608746544499243123131657383867018239732002440957414665683934915532213893751486801406737240817855502003231263152609048147943974467104708326726025979077860338266181109718327123648625963750953454702750523545843402864453654803690922639363683392566960545203537937122910583872181584148593314050553222167834294708122581716601513539178100360918580176345673919627281589301609090207659612542739592609436154713308221175669518347133070484637234366579465456161706375817140710461854199010676727006652120449941270961404750318349628923809040058960787928361808082643582070660133011806650362724357818182990302752089738651645647179891138352276578046435366724949158194218739515590728096451415690239746967131895940760668001575650760119828268966902380023745326690990106662083125224575410082802287612700849230328453873335679235598172737745998597805942451913364097483832592138135725379582243057402859335262718204667554802555247173319953351218808567573220169787666289835069224996802332215049755927773716296575491610711632381801895098948041368323867323130199982299289271288838891973069603261878525570876672560246480280693036194380941237559498262267029217982588955926883439313939139642581185003477126360030021138054380323655910126163848933656568489653436379433125353555949440240315269344877111070324144265276327256630230440728259267508518232772069919348500006842295473013575759584451218040851111023324448411296695356726899692058711642462810912183005366903012519661726378346328911105601454234700530157131591131098318667120190623667521261724236592484220561488160848696539906565606799370606939854956755190507904777917303838734370057564118867173442665727084771689848013484397280146124934161470816395739269677600888840411549817336190561835081945968817195850667741039216227640036002935919880773086841989798018627986710909712212367329593230973665643359061410503451258343116297216044840152554842123121792843959522584486684059966352475189850956603804809791457461125838402842276409117489903690984597760932372750908179432732376546890170661665831391307741740228438252455343535949162348921014831006194619080976695912352836982873526025404362167024810290947749838269652680982792886477606526267962037958135750641909611205163663490907215816415475702491934579551892011606676178129475002032624031972218812618931819481263988833599126210305112348837617430260273843722411392324319521163999624764614008210786652488197096272245245341350315935671496274081048260416056579979083127784164434878607815422025237061260558031880593456996659501721259030874527217509408013841996328727569619796719193533232848442618060624043196934163535001269858276085043213556723224250333298099357672636534484073500651551811562048757214013526839630422129326828899781878634994070429573972577040645565829548538564887985134219798923714985004759114927014775661190066134702936251502283651943236995451070246566717321812014696011170613783535580544243245015518447919841880951318371618675650180501671950299784876834367078479207173553668388918684969794189267122524456365404964611888544880992973400646037095063004754241564718945989142265145450702094349749369874962958317906289092415187130902680639226916742515243030270923109951334011707613554045259198340526064531669758401534680115480947863118124442685000607869583257992839065665306449922978374661500159833087842746574483608616507499114655146892274519863872479466485388071080125061617930865221443406986330845594353447539627231999559199815395297656787883690343640915420713493617012080317572191147602385280076825193314460889481325883577129698719185023852461180088631168163715832586986668944524426200887645371104132239488009544649508624443461051578891761099028192206172691873055468283751572841536851069595179947127784558388542433669562013646666700601284049171534357449779674489121244809997509809138507083540088012639500029613469642151992856144458537710317496890011993281900786453855617119172044556308452986082126054313076613927902842955090841969381967743841073482947116898625788592900236621698514838518258836089695632844318165415223259486004726179577451612908668094327682630713423169474093768008933178818201003993290136136103495481234039198978785710317234107559218810737144527180974948567581139057238359156784089942078941161487312701600070875432639757937969893732229233427693717678736218796753001323075511673758025008050538647760558159419639503075765626326058570484101008901228552941044833263220579369757850319418539985576893275481258889048876349493162692914913977760532702361271250518921932856834078787145147865300522629633048477968990079392205655802799427893028731325453305214916066326369440047509675955537394691959418945472217504356833680765540728005876794087518433169171629673330361896309265568530174532239717267469524367398579083042030909543638674704797644915239183351665939671451234083760870531015157979170386831926227311446139694158975351996996089164610661982527528403976291097110463325787976417977503824910209449734051507073898028168171200641976170000576147820863846541589276742472717025573421088560459977512661416479080455381956725800707175458636364200211727953525152481652967209703020613119161935668603140638698115847742784096562405004816378272103432827252011700219330482210645711145581025769906925904808522528486744850286807595301088324987527808275663891319994270402010516584434154396908342122438792521115273325804343170699141902654994714643790731879894296662007094096607715179272763777603227998153197665946407687179142857892163338793987833905914916163172968305143826663613203564676989102335102379882861231917232979884018394278579952408900889138124568449169128541404514492864352165594335863481751836306301003588432452062865482843192355265787134847113406884463126683055349237692488006370618922956644109894712205959596663086876701982039366756390172575642386424724217545109969718558917396688644525807840919983402418350777991758277461628541533642164283138274637048225629449267921195548652156866376857789578789851043616479676099959721656864959745062127742800384054421285598826944699614919659597837253693021074071978094265947370332107354787416208877447876710930170578167309304545197279019346250333866258804592683023029253477476636784543420038695213839794146740445030118907109939885839511917319838165510389591338823687263036450774135590562553522643230461071667004058649729048891111640620363600269996940618832983283952272070358234146672873043663134926636288232410930047613459953491471304181491312798575280472057610787849474296490639924034121285287396299657459890548822017453810869875817331895521997618309759409878350240720465554055993729312877102167351641274799740193115902672866077058463782220969722664145691244425784945404552660477276428396052257718006979659544829417296936581511609106846239636807982317444443499240825842493627040184007562883954474029616468370103145398272821963562249791270037392125788103683658574528700974578200142625577496925721107374810203644476242339117153904182065809919080474627107848631182479673105352173248689312028623293839419099287533906063393668053983866368802455068581573064307737073855778078998200315841069563166097953801222703845767432707778237908777628278429128486095474539219775505078777876343483356197475856279314736350141041996124115548260944753244239000666915991906281131069801888585358583237455347673497951044062359686852749652341558747761456427786849491248350704146437751226313622350588651860811170744561861480986549329318347424176425991044261794171444953650701276436537436888074099634716485363950339864747735741129892360609649928432889268755614357532424706260989211599359881412739264787688562780500698613612270012115675082394166097516769576338476759007276635294508195615844134895606014697401636919391558099400911385094525403664431235597334616386964529007668569284175126359792558772826952472878003978257287199626605715150299417697050678635156509698469317110405094175099504749085831598811493513870070286144158401870054612918985313794654762253419895045897395538253333712148849875647621212211000042169250542892655574396098849396494805379095850078404435947332623405898410849117938041848891463234703333738480744992882197578905433191703715032938864958851257567864620583352260684282670389985226989593048036385512022831443615849234784680864387118429610867141446278911531033118347934645226636319657084599243139165740698998315039028465632032629112950283729276166319658278773159505636239649734182082168406572576076467724399308112415354204993975220218632641727705228923814517201175136287522011806172385724959672513893719474213608371326412728161860563375254343936652470773105605354275101021303251035720330264021992514369595197348960201442424258343131586075262886326102881616207736385784346240472678519067245625088777820902597674437390245293878739710096337239931316303703572853166732086996789272538627089522583770605450265407097561680641533214605502605832136930536579870691137768101473026911784862136470110655595982161396297092390702590841849950191134507561273449777268849706524387371975769918944246713917502951128656622360700716103180040649750938664993210356493087032758192250272908042452827476489141941601730004240976500400991112521425817071095465757192538784650535589221131335754306024993331279388395291735987326999935542908333022543505320049076478308842318276898953557286981881113908938696492523725120333842004955165134755054148961396929378990244668285686712117066828931799643670052121876095306276755397105413558372810709819775537999869418284800939025612594340334662498086467316579500073416241433810205463945166683244000858276345393888314911260342351004838174913992781399623120559125243381628140942309671038521181594221499379943060493193682016431185585783393141619355364463914378591308035058867406767586222688030932156243850343817988355132528032115032740691248973863285433351773616738491336889202754557680254268426372580540188583789417662243109167807814003473841047088629050644985934381015027226371479545046043477770036915959965889732855883116389225171808615503328040120414145998421739805078554436121337169711599403296791536938233938835645743423740790500579711737752297021255302267370764977504785618882012750763980708560785678467350353762372319598213497546744906533716711419595671084413719774582174169695001931175056073986197655905789620320484779126471206609979784985280532411497154718373559708028804729558798257949946655011612460910492985446940188458910924777326614354862067627744260937078646506919884146520595811258624314909030196031702775219211708606062595116513385840269649260920367270917620141260651416618529952940422060205081341924214738822512160620566512621578981568633910858581658821508600887778583994692445035758556845719673352962946590297489766839658949355497223630501719465404713743275421724322332281275744721259588996977714612815670796467637160299242073924776082995673279248236374820646178704019245954401277820623399963758722999068398361355115622105898840111742323720114761350632973783163026079600886043443606195570583923939153379457253138256388512214083565325852520296833027055160619431672448890804454179680592058427601746519269755967425258628902452935308909086533530494201687635367769139573689485986905776140765368642386522460299340891950492115915059969170630076349891615297185145115360567631855324449538826077827774476624787849381212398363930130556951856715905351553748799452320555043585304990222030898021537349170895060940483535795272127397178812114016700360253307602297606499104526458551219403692781073876721445077387660892503381106680162019477113221742078700037164890598125198328716933654020636985109197621041704573745692332133264623683361031308491778849911320971533842741899819099945085512009301413410396911098715157151535310445742242641575561688651069349048687576991165801405950855104949107807851550133482094510820125952393243199348919181547052161272735603304953965421379908586823547405047994760733885858108684549395337394490154814012676364168431347034152168470095550191405438985454932668770605679092952533300414411861048461203557129429216771930936837251576149840406606436617094245568961958576228166487969143034107718399781785189168154632215261628933903870275716928236927854738028696575787684721797734037916807036477944192789899722740312310980430209297149082821130615717127932726891533661122212703365240301053575244248480679380510968932047449772021697855454380342153932369305663050581165826028979189242283060523356367179222692057703247231299158943993586128089870040913612646113017957097708573930031068840410702130572374075640021834544397159400117364848183173455498132107889050757360842703691367906545259773076720034234412752497394133067418285740594986547857924598770751705136320645754457676164053625031888987659536177705285378013398770498503841131872542474703529666697473370276108813553620677354979416306866389104964775958832172178264386160076112839971858746315114282336448321271161305199453760462656748563040589721628239298604318714309667684761785167499328031572673495137659494225030603046761434878483880837043812995314192563913895131272738375027672772067327672033314090856920623298371285156380098804062367463950384442655055060948419029478713914571773882653572158509743335623082090661473150377095858748783503786640602957848691145180922518061504555719047590969689022435977774832723832260017582620657669535485804401574054131278073974048399976219426131135821943861091196148467299483373584991598573296038306399148321527695197951845518475604204018634720433688908544254407079019339182383582847251120810308830676015394904370569737903534932356816099769972656712501303506839348323651932103010032942017121159757354324833988603522196877158443542450651368269102655824949858645193467153351756934838185657222295782527883842947821623303265998571728716795884933901207489708971153343240972214326036512064514379983369668786232210858547682296388541667225494975344874712560082445256064001134147403307485716376804016652828936671074717515108923434985327069334768358020525190630220720076866571124941046932597519610646713019395950006704586786823094585569904751166978424505674860068086988367122347125143099454030003680718572816860472005544609225515074982214659471208154863122864824586962606469123697210152284388541798278656129894830105845126317265249534378509812405912204285601327811344780199656329317009966377925801637413128674346354699372578153671860101301850895994445575524385740374465700585415550142458967137175571696470161106365405030369791964080585539826186957626918019049382227847881269766357667101066618860850263697957661855780178138930778715120019732388159302339783923361730197594531034857586501778611748569986161760406553268519741413225558458551257273017929880988890757112375296741786941191916931302275086822909142925205146722192034420996882881478163371887097766862871711318527817276315291984572241127716042710993779868648580706065609899187860819608351252111905730704436641654924607129582624441842240799016030566218351809666598354321541573815036730466990572524618702667431204500808926716970634200190733691857499453394175393148664937100874690978697764946078076295333004708093200974062426999299662225035473147379786309322060699757536431242187373541019794467761680674553340610562171897589820176417464948438547415056475827835872319579213483546360101849813626345990820021280025221809997000390661419847522583335843189453760944125218804633137873493320452866582697236173451159231089951178162357872529091907671930034586864326529988189723785764160531921803677347674068866704500569827899070416540711686977997738703518820654741003836868339937452901342844350305953592809217105336237562604636118512179559702298798462320531522902948677284623178324325682191684011362962457016965988011322352061117039958500342244010633609178870036272589220963700202797370898289395090690547437237403729341097846914193690421741455689908783977080377525691104485360563909133470935241156535025157229403723725532746306745447214915781910274373505863652354842028305228906413972671427407477791013235483595867900359421890702312402211277276317973001888668684499890534373984264280066453818972290942585919597392314237611833551489766810730410922404427574731423736890804507379995087589459512881669790116851881134754384616503907337400483784035677989825286012399259529556753083216684717063922039376860199490352960035271717487609914406679724284103799333297035515319046631567303068127570451627519232114372281807258150614488381636833684964307836324507140052050084557295250477819731346674585920406551837057329646710242489268358812000859089078462828914527399786478632157174973364655970804730404082118768914500612689412957843410739865986091119542639130645658506997959330686969281278689408757256266037742457554410016060096731453677250708644435368749438275167999194243064725434035970516755395278001224163901668316732267280961501474254701909922600847455134294552645654601851184848809071546721218289976204343049007192071803600338236696489243810196747380117622196661808458738509065064463196866101288595801771540863817150251737145144867435533289279743114334608744721680063775519320156174199619386981644485842584318288188624489647593652257240096268635635512282932348507292197159155928511596914372851883963499550574920262508214952032467884174206303303833092982142956105889489193975834335030740289865413843722075102054737592667133503980624437875704180079335119522430587713790829289775995978849797833156462853004653235025643847235175393140686951063052809016098187561489760887312487132382890125630516117085611715491257512250574638296129753444168783475210177721732906597016622687432615123736792103711018931576732561751299957819218355687229048170372929220740685668683950711762940436021352025067694395917088036864643997601825727546004034916669879731956851481492548187345642230461402688777278111233056606639631789508883786028034006700902090759356322857871254729130995894806846623075793240521660573031604323304950261317729351700503624065042242613503510845862861092763469064010952406790402250294739250556896338601978442845019021682317944789427104844022868978511961192382749065367275124930684914132133501645763380560695152534728415543717709172786487915109264151566289312747526474119462927795707780293788203719745987177212556064907613101857361004126432909216219966559513119316757301351805258576122639275537249139517192126508646368702991883554750391218556561157958484257805113192746788972718550005685779226997927271219928792074126018012913157103307093079601275010850723045757857529458118311807980175963252309154424199727258218956307767070542249879730965284614049589345904614472628706373338015833037671185456634300208649844852663339557436828368368603075850212568691008340185821114308588019915932012923747880323859702178753836475509055381419131172451096668414381635797909931441421389574651830798526283946641643394075396517723402164516824754119732385153826048084430412853638185281541676039819297920778778068180181116800097115777472943713345438490864756369281883394881128351457224183694163294360895856854219454181405223080898095705492667988882974484226641961888516546742851245339438415335397018028628130256404549204145046258387728916148750098876402056822581627360427463481119028204727540094434720054670755937710307385560291569441332910764600067828271303294334961962363496877469727856529842509478056254600408983475373433235641225951711213123565512305405142665560964398676093941670876159154832059350570885115205993842573918570886649247875809717293805599210807840579997410729601475285530924899069754633974421886899076056363682778231434036078508731650358600312612719251603976345482131396700315617256642001846725389610621676105340641956228142224678919807388552403023405879773958068316485208432450682049486573558032603957202578895310417959796023741066519833512842665933295891100752413793202108803009793793420811566155957555314690570121601870340838491169991778487084976282879699079467928026474834794020353865941741046967661509307309025377132646442627654487730562042346169976853381088245338756888302135725451009685336108643847669656498944137209645103225188315248789421392778260975298868036915900318476057776435596505378451029656917307818335833189039877754129905844836936179265694863613370043921752807418543080141718808693921954094737414870958561466950914065813352104062829614516499654368620766524663853474925011558230899095199959461248501178670562914309282561136473831436748729863920271955948535456443691848745011780102501344787575004772560018469115927213810132497520317364863142912207179148298622585444879146885413096880996686485555351977583059886994869369520069881619504291632039259010536360110986204587730276587973308450222276520829508578229408081550786448545401298446047535072748301296350105404276580569370610515418993647653248300396272514171903902087794725787024901738698514330405671444279948803494393064223756874522549372885872554168386057213957591853997097053629540046570215137855344647905400487839686042904585492018702580051237142553522217617117044444892785214038569059011906633059779694682440342062001278180724615688091900649004240722345933950512599412853858984575251484830259953838356255161472022672290122026666609039998770676187933904914917151021933370900254549045359653128594970683495739572042123694852152856294887378719450844454685833418443103655568039880776273768361369468093270867909715748486896928753654234507543174524466985280892126909712424735748923223157725345652971808236502417982478256906454370826402650144489954792255572628512526848694846186841337468373901012534545311983186649911228322048028942898249288434048925267305608819674913532224388107612921960080031375977472371131177694828164468656012894680724589955947173095403742325744288609141543124443063461832034255257366572290816682209206708558435563494866628571995606784241890048656743249067029824923146558567852935582900527045748421618747604035565920267705265950109215400321529132389335224259494608439456220026088179229408350800943821637480279923681770082977218421458143132507230025204840183316484825007156870382786428714160072376582644607540943716752264615690740861712543619194193487689057024095834673168874678211001807905378183077134094664126840136946373070664777049588696832664003510022121177365134378252260189658841150849677099939839862865969488205091400143610504484295641181013144469455910800914281704562330987370176716860107073115765815243675545156391028772958662703020920914972053040325103061264741665250120704946364284417224902186747136290258256434672150512047840042706673222158888324465508644430062938906068361158412282933910575888053648949972291516742349121495564779536939650253978940120066267916125028834054467789989711928210925023565717150826715269517842574684657704876216365740319896090180816551519445267915426190166896321546928150020585128855638768894856260234730854518969774458004021809118163061437377357364214363809481875771548912387829019734691803740268561114939618356071042481959781808600221091313626102682648237315871935281626293128668769279286643839785170201971429340534822111924775404262815295704818747626686692084454904176783436230484853811212703184581112446885343630399749751382142710037609497800972118404705395763465453205269594792186453765833451060980650301142487566296419046223531056968823931366714179007252732073894557237504054353107437644829766229967318414304097103603093948352370208310548997618126324709139554635213970369398799715402122587737125197007266974921387443024427168504067938787014829286640978111355789091211518191140429990643002918628969999080302236293393654742280183910254445799397823503297011259806820375978260832947558079738869430123788408322723363085236679737349528807114632175339781549122709208680414593272653635848303015582999065322700313254639375738537225071422343970194261306047455691686086808858749676689689672551080729822464668791410603527199366618666290957920011036812185425249443426331101297737949838149803855789245960344154242248422276234034770230158744251394554101498247856898635100000442811498706514517009405055333113177665140933374193489274245728547904346640870021157270471489433457621474982228659322733441468526666944732777198248128960295282182293424800599023646889268520678627069664795549849883040583332852974820582879169799472839034504813724696093350753700481662975993571997581747224010528431099085536562027334081010822184450448616162709618754446517257077722570924982922883421674597126572533172475853796526648299897744082806183361289554500411089196330329870995035205208723492782531168291084494835963414737693995104472406197448455326510834008147940355477739411980037215552294588866577564935201160902075163035903332664675029458540774001983596162900110257454211113232092231000548502055249572769915857733018542025265697372854335049107757434606739366099754785815768785472237493892246081484729446093298485778040668317805215318560565821997841402497443913699917787114428901550143480625797132403195196747505444928360685877426467784690724300347612571086151937880298740620582323520940070127553345355708914084324956578122376521596004251436806530046505283058299016899902632729042620440153972934629791137589734939950769334263557497417613686168126117061466853503865271633842851880891634479791455401954197327895252474848120080824906844770643065306104490591155675262611333000108240700135762817430022283636137428312762812441038747777744283693311950685378633177858465554318734212349500386402446173755737347415254855402390539799258899507885069806571459009309827452801031974463465428900920948754694748619474828321543312562491184223740830633843114919499935383816545936711535317965230054031345893461845283842669413278468088484492783770168415210627150841007714408472076093904395094555923214234848749853167572423112311917602744581461674863931244513293063678719136477725269984604887489303788565054434181719482772793626525315885790831202646091958145535839883685922751357220374768005861590531503867606081121769569716936368253921384851154007900612650390379167706282836427518593233334635011283889110171258871084246108946550859523448702162668135143237604809630935907119885830417763779866215953743055433440726497593152282757769498991708384433728930020692317901365858161733663511604286035745424804810575067816191052084769770230851620688155553737361314111340118541149990751564776278504851864472727248078650367302562716558509725239799677808614367909264957031792350521296944203230465096556023237725121960059099112130123273513468765038901170419262613370161394465651225953270133634595224712135195236921535100356317735257791225924787765407766164861788535626095898227258341451521188066592968642433280207785354973278437715988166111367396593560616325383342402258199173407578008704881997043783139915660642824582061551684126770396504885322805839038566861079297306482530694001890495565357390409892653171825442270825687080535732183576285120396997284407326026739775431646174206207119478507152559887449216111686194850164828032109450083015483956989538830798486314720847749766353164496835155322119130167079091671288115547398830246143489546912501095781303437464856962837679330483615820989964241115941122583412789788175892953805330731232657419530311449709334212905484345951721473429017024903546171179999787309944905184502693141758412127942516504607767603950572360128980041147298084446348252036210264387309919050455300813810528450558980846132383671021577914920000006040399698516051634213074705428635544042181289100285701743138108683968920595482628097753384098110065634596365605079964683268065400688500114270439398202053589972815036492150636774824651996383211122189374076664733671951134526679909961448673477376741685556273579623730308133288129559447622048697319867821343842362550083592428776540581960461927434717586830500940671041902859830611898393257639354373408546708421427213303565391951179850346352242837612224838173415264410737794979380195273087076970669527050164712913305245040784850486916956323266234463537643482292356554371042352680600071641509040489168209353403183330206133087487013352899623698942722283865438089551084780202242898508415410047150918665895527796345127809974836743399794980186473996833520111854951885789866839028216777396368057116489197461741289226210505512319086383321797507743860482021114157197360646591779063288053189486653114945718103853585255208235417241960598780993132758178110276008749099778064764924457102791769167142334104682617399083709937537645704810192433945452742110206941996493446367461001184127700003232031579616807815697066139153980065897421255805485546420081213059471382659092464422918520383180359957455309905383447255399891316295338387298343396265912948876078334061821269666597729490594602865745831150619817620156479039680165542565294807956766983635972457785372086134876126837302699142007272944188936784046540209682265202159571345632014146632179481518847115122970496255882922901268720038648506892702521893704704696292440063360945605725834314084790182720085482559082772314301596798135890903044585560346643758611399560724499876951320208792777904629293807710840338904264184842011701024970982310944464833701269168115942816833497351585601937021574123989328227383088203605000349883282732070907653424810884659502995547452423632495869581082375896583282759081031018009396695876904063986655590723182203671532484613195993502554926428286570616516588583879553137354823066668131047821764980959513020595036612508719023913166326410736052524804704437483423035197495496603228993992540564722524761991651602866307040144509277171540094080878051548262000514396653125145825337956408678629921060861724206860336046378471574772654682642020875361482336192318351049588765701258544073443322035726808207025028423213722887434302927117980983413480959744608241329305613226609527326131814152568550190226602288685092690310072826116574282531062835408100264035508323053892474175247396038854991732733960026425845309396862291619441924563937150910071598021271966841206675967044051328266590509706000705218467053473359325006727227684808914719249517794046976821963462668928114672716776133686640668296821556510373737145292237575140814032411701006905767868766296582534790616106606077529951016881509482187237613163826532088405103930993344975703390508556066522541037602990232954825936259545105568339296376582123690868261447619368523379920967516487187069525414443089491116259975850339403414508264560514222964124298368473696497597455554903218729248001540597718664246690879419994236891308912749811235274025442818223370461522648456016748700940974610363960839573566772202113434307640508043325920138312046302084910355950637796698034408699697008308944435509196878302747526193367248669986193334969549359079050675862371470387689848957951353284612079525868828314267652311251739536895936711958265180347687326638543719755157078231522428037546638514942461084876062726950895130436176189420243086125434450111458920126102359884414440230399790815824743855920591302077014869855005160968840534224109010599133582046027896240855980758659304701467970985036643352321103144410520522948463057222017252823128573015694443108492068437054145766859604563675666590409063643781037117120315883638335350602501307862544609561670788491978252776588585840335971204050483956293124567831831128503792429933607357612520699756362625211801708451842126030543629950814485347575701019447083768571098381040875246091129223700337934191564529042302552141141666971251071583008251577772055292251918192950159395287664871091657303006945243423972485801487128213730241241686593840453282478239143336932901178408042140693275422591189801843219028104155121351837668765983073018608842275748333164623839532030470551552826597997274932913053016601705464345412722664887063111392089963708625632519298869587889539197601761743459224933831547372939734149671241620722719530146664090874770217029607334842679719846543169735391806295560319605800532080644526436482285505785664885326133823670920169673432843908282884725655795286065676540366124208744671392304125941782967108531833182344294700826889185105912844959060500429626243355800626082967694631402022109289138200610828909895681355751502386374213231876324820980998934524593452811354964127584889544174755322956982198979000317002946142908649761524450841059955252829156691701790222951780435786584563678680724569245160626590370574257594594971401433427860306950041497318589824819818769197867328476880920188381176708153214895200643238052327895855855497000130576600773355135169879711712911592538253508234526096870626431631143651002815887962731316863011432864542247245261576533174071955052178783113278260280232492837126969723998335487540076325216602194923217255617287374293509660222346682294622450426318513904839492874809846251014315352585609793371450372120980956919255109210448977166965259281950145141482867514547638080829986113649880296366637948485724022414268210405596036811358843226939822567097487240763945545540369593332735588379673042296094408411710345929739596810927860340018086344481251039676223526178568609666275751502271559095015469431178260118308259052040793331611576947885391312117844654443486068415898515217330063810071765060744665293599100007122494625565043222498569343006918358605072818119941295450696740376736958258897995052066031984691214341175197592551935576715083401746370235193920000319443696358103000462634614892168733992474404713613456986848413666031361984248058406172012819012359136163889171772800098971037417984625602932266552889581276707735613293274226380805343952685551686215737692800658083239210524257858679319759249776376858120780406532768986399657342643797994120306217854443539888943590819766671998035898264596096382168203823450420298376939963414551700481005265295872738867271499590352012943897027903398947670344666931064610868393542126185099315585766555587515226865469079656486799018153614690152362790494420785758331170314296333899506994706724046527125593220150097799084705379953502729672693669113571398791087804300731694562522154600339116865373915525415937913535707887764442877962896541772370295549997474499601475450842935633345080898894336771893040705577783805914679544709188144586199383343553500331449716756121197504445313940364104017313983489561758903916962745650716858528584717279366867329747051277500843654720767023312062741112607865600258150140759502022286561431897661283276099380450791948089651182018925230120808535465263939743775592904769383700455445935013067327318003760924330306968496745441340126994751759226104078132307532942887173791870506473759183835553789472537690348370478119023938384716978980167702857111369436579114026749734495192768218262868282995880856112307782808879657270893596233196123560836228362952499817841464723542964165640026037027247645677528041004388969523955581586761963778055197366543902271390445218388207899390856435914670829071701100469249671320712473701247192759097842394867812398094849358088144328919143070853787730622011551410845999538612048886154614797963955620864280320339477371620743662306239724357014466189285703190769147630712881424789794727264233523462369587865163302504345882593241669901467491490555656808516447277952067328249839549789407938689182762959136206070323727680808469413916774952504876833485810091329487651708466314421837249212787501126153422932920304013195581247186071240295005217861492871433373231674126910235475968939815567560317988682734811561478587476264553613169646973798060830729666571137570378621758153452577807595747295166796363702258198320197990240070082847809697639456612447833754133614151634600133642661282867453404282007391686530347282066287153992659636836658461613377793368137687434817385917750082195522619246631410891346065564400613348872405079735537217062145161204414612070149826007152111256272264489889644265172681729173499416513844750589526044101627824649629743754317690716478852372644813554788831936196214007230205910627109358282330610897839908717151239829405612781545479932559131243370627185934785302371591254012225731804742113819149327047919811918771581231909345819692739166131062878403750705259417614639343100533523236370062513279858360018574964878352751761050602694046160921054613489530641639475517576374986805040623183912352366735182570262043823287327418605347991052330643140368541448721322340303723750439423458916492601874248067621954633067748001186942152615710037863034262676738377344329476583188494233496321203676330826669359656828550590656483879159308928136940938072974762539622532167961110972469959555287215043897483191526469280985103796206591107951346955796597378054282010311386522592279718962949409817657052880011226385568026564161656609754814906312940949074968463321240065488970577985315889575859363764400916176835095182922128760770799496313406008620085546032250745587681659117963902534994686006440184556238320869955976048932134663008371997763640602880371414774951146122772222814224910382730652984012067047379507059664442463858217747637325096575633384190753618073643412106503875623757233004360231716544355898800239333887452227002622722467715706524946143375120985352088500638968184045347020656146337394987898996769116626691962347356425964800885358582806415189242462625070517432674689533107274020809360527772440199014681298850564092261060736734269167320303697735789375468102930452163672494634165924579153107183750307327774843676619249966608307364582962600349311295389565682912100678758694917021055716643270458302811145578408682110232758781764953501957419448164649119710673602950709882959791038780168097563318522498844568081387058296976978150090537119028696402114233933889670659817703383956507982389282162400853298990676773470731965443625225672804728984867601531152491576384885077666040615760935613450642210528113060381826331840597807060887746330084765731284433056350182620068212586185516890222373762496808871726796047972602691606128626078941497778199667800181343762076564025195167892223807928980489335424806069951209791044641736872896423861303255239887218999057173885417738109566782775018760600034560337458409891859422323142260179923010248377433118230005084127696395258016127824941878871433718267541080871144269934591188211794084202468323863711732431431075762030182114944695975462393787921870583918541924625319924636764457420253597635764946236339970195332961762635081267090782152898555380964120155977436056611865576722690367019469868175217885190498880392661312665586449589914491124064257592553076548331315896468430142604045726637685586173332725929614596676658452391021214190220868841920250588117002465230154501387636370544770714402148870714891326654651530377318375975768577753906025380980552114968248569226597273110196916378035307024818134216571212760154020560369423449642384605558635671241646720269170675422469419596563354854617640824760106614655901381591586333348324050957098857972440828941594171798117102189929410227118284748211249955148697444336199649539641500257256055279929632270308651921756347629636476765994182516462599900137312114808760164509939552112126994075325667582867173728651071555146982538461501775394222167827121337705507482091426754807884849614109480863960634153963808610030649411521972339811873182003938464210465442708261670094387295611402416740064524140638048924835095316473311232283539537929710959221322763088943135722934024991575123329015318862599358674307190494790195228807741262941441741704853312244346129380999457528734224429153356927729978501124489211229160507870781281181673314301247569880325930340614845219644463183954349013403309789843528569928372501478637563175044562228976588341926206457410070570536636617608209883434873322960926071970142290382830358947268316421288642990760404154261910651404877022646737537050340455398892694804633889370544944118148810514386923107664024833727887518065831247973203439299571771146199295748992991772959411663807411413688695872919620713836909590198929904665069345611268607576808165792049749676232708598242646399133793020160312940768625817703055029887442477986751351807625060528678283410225284390793199536062860937566701997728962919492802118311413769319890226721233532059627819392542483312170264298039167363606814467811795038224887522934446150735475502512287306969813762613141400961001751750869181141505633122027616387585017573079465300000517967879775682228643233083422649785868244893722518256699847183475237244784037127392222636732845158089322869407702771210216262718682371403830360375818004028636331296767672054793610412818811821752732769219204175205853164780519656974505908067739272035615677578658720531515772697908387215960409236307678935621826744273510153022480482448976602071359860376899470954743270074731612593174299319861026363439910053262468985439707452602314934301613888579726838306421020589341047230444463762266793957638832777167478085464574166417127713855674515032753092695788816813948294463632808413610172926383392797343339419688828202194892874364611351680761761042370136513489021917926609277141052808814197368400055655525255209605268445810504170666207605725344646173885990515740462343937250479750879950618328907009457087408636195805628577617382937839613797052050156383428388349492179042642240575241884631411722289645796324932726718556197861951660713181468417140817453433532754698500719654647593091472813404265632468663985412962572717245898178296930340794580917030041682057665021977623333928174316451524209995263861707035875512862366656372964331352019366392742946769404333873043302999342285198574052358979239070374495779476199355431738135491484745486140798415029437708384245708287638834068840377908755425402620471147948290970480175502849268147290525353687127620798141011268626782900194290298756512316711191372455453459883474988695686262398422890593593726928688391031235307680876627129289700169619421391726961120499916355877426750779541679160316262660309241025019407350386243279491250244403653777814025959770512321872052281503343977890067317853857308701644286777313123941201325102447998958891975669703270723494688560676110897753151167144985216893403476559545424991759335349840418396912233741292295931137815482876853144782402406670165965569332991364970005303413143923149036867818175447611958476058410711620806078450030214979538845245631992791515811781079711026765068424404317364022751941069474457285434994837489694861456631974878776849360180272067888675410965831716187893099949996110125361035148233307149686185280896037719904134195566568938514559512934520595828641640611117540795844652615269707773534675863540701618692212048885941304375237461004047102264031345375978295307196670442852386244232293792755311882279313910910136265867849982259665534487058441768179347980636133743674240154618083479325117823390410874070743060061828430112907825692054301496140613148042587437350440360516031146477225828260166493613362799183395350517988592833438416519005362758175922521618754173041719040066964796775389441006121458929408648399043377137946527422213630820840752094176593611135783916177085844519022276166798152912618586455414147166417934310216541189053790242522626268468060869534291846157176557694932685670102707754646401557197531359368916068895233696305367652451842504154750505652017085105098124292344077494533277289337785307902169462384308213204782629510618408750804430974612901349763102149924853699418216410857758181011111931465720256328050596182783851568107054868175386666896573270841059242376000215637229893789469863770436851968665221099175381017047366133538931994261459003522073452821149141592504849028469456857183671135058960518644418302932781068504602439530729205053526786846052543390280286968474191748507053205233233352736978526289398723213752541552583575546276178067009857836681458673845802957266561967917263584178423829008478834594723937339609776746197823124011612975895628808216229044070031203012865354790880549780805646867023685566083076968818921440206794588155015872435417312834664515011009656977346090247724989762103187277353985715793922795548248838391113470097371537759053971523913591667435195515538824621777669767017403609360695710869026857730181226235291403873837885844384472144723663092157452316210692208995874954831374422400897431004805624761574095335353717647768590989895809260153358691494087186630551087438127768080753211244212006140998586628773183628940316015659661772933735968687782015056280856920065709421311360770779392375229515981591653045529146173248257172016178817689817612149807779191397753223526514622441884467025149985871313272094633885253820080343975934327351519862320553324115315888752136939567710695633512072508537761276744979711222184956491218357804513440496813997519197045838191664675651169785494904588237839733787965136615335285030052642175264223996174704619799222824583349864190468781173994179885537722920327090057595199129078875943035203856971955209458785640966953499651802636368740324796192677445572795961208481963819319395797534855360521754565427445822352409091254468391458738485196652733222726230206196430024918174594148731367971242016685466334254420555570410906202744614524708198341855868619254836780569166644023800278257794982730841352199672540119920398009190991449452604941498883125791828681810203442647205435307429906841412166332683258433745659173578853259656735107570429485656946110885859809518374322410426163153540408260362116798759936990005562764969441489137294352994067394966266577200267653683286878094316884857834879047242781698712282113201151416659512682385726682587781767050210364966750105909556674741413899310187514192184185432169446904180848065997974388480074995683441219035432196720791586934287293266621243428842432365693560770458896353719318805563104980440267434270671857005604111635752298881558153078783661575384371869470710617573990427547002265028188560819670317878448876857530691043483467414471060623889999224027507746932195678811260962031525119106488092785449317742686647624970461369028536350564341858791606594107409158055216430384675888144772313086557067310480240282982269228881550979532094840109376687306698382855949092331169373725939666281834609232505864946064552328538140233415520020156237242302400748699683535339967045825143078066008930747214315935195190080332532402749264805146429818200774239284386960809814963691865299886032756264734871691767780509885219741861081435087576894696683533001096598589744908663551644899119506412411059414752670701000911669787464820106607430868912509774190335305229742003902674814239105801993023460361443676335120610036366803099205210696987853190570668149403500695467108760203598691129704599940965756179606471800298664977843520226686087463462658514548075208363676158197011966901262269470281384380213123400163318690380035419377627695643265887408385500100167948035055825854427931185729149523406293713888314181837857887743592448018291337024754584903755472766348645866640693909705116182885841447354894198181276022865533260809274218219775571110289177019847338013940139956948249642345099567285812358835181028688767536995971204015964271546097507725247517953258081105520822971186174356446636014547880247646973557641146506938157496995299502822414224092751448691575061888625223447167488229940348231721104007062669114944242454454028452835439360195939991462597093205042555643909139674007398752939773904027213086881006638461720895463354815407098072512597868886696948363717317779898369829912401016248392712975140505167004541805280184549116742391342989476883671288054055933410762564670437744346266614150389817940635045883383477404629139266375462601542656726484226305641832005604126827320854401367171816440716852736345429594668687519933577414713763419383593943626333845602430191939621323839551748576965303486504961313833335659099711628487290412951399918768259621900477075033202130160128464767071756773381132951318305047651541629419514827900381940310099979764887876352636722737108112250819729885992078064961853454749530430712614573843848704195082641297791574399056865150428268936286655025606866078899575316274305081674095818495966726351362312496487642536836946558189311883467294768072684253485417577263688052112088241717674975462632692049041720266285977380908222131726877418991079229974225663734731540226755020787681994596981987028727875978341005098079989730934256794869503589241546846127872159635386000720869563148879087958861647135864613938990288296797940951067040994147043302838939185743996158539452603954786189315789023379443618296150516997067733061798844830105083186939413169052566439279557963119155141435319762412731675418252993453432365119214597913887371627861155261989520496453285575869142900569584214916637936459102062937106567298299667977058912896493609633185451424056183410952365519299933490733078203488406889429708938820656892223007182881667765070884461174465809598201299054799819281000683545866482152485990818559788745979170454528289494558850318829063068689598798436033361290347879383092677980187435493670586598351901097390678956888205251692031868065626844620027036656013231615768307749502186531978400435440043398255007484041166094662633241119309288918377895610857109222955299244202574337899104598154943433727591521067101356803886161598681334619327669364585978310464870731105117708878924195897755880777663451097156652278544664897895621530185775441647108885019956347506228480907326748176031857945731167698837846385619737317191954487681963774291283457106242826354439456697994262723793451330281403511162889246647115785845763164905921552793104402008143309735880422626979315971208293483067097397247774748941031852714828510948271931778156151912625291879682251602030846791387923499568578835308209202091515061947769072443961882000314226239297152646238631515484379317824476790560718087256867515167576956898469388591107115618376118217421084357475703366788459540318367196426130697296862676843106829408213389590466056524184745800798448143211794128927157442181441599256102606627332580271470342913593660065200737286484308304922967748651711019660031802956766517065185990031281153741489855362337770074627658756547604387063918702265969717915682854686646648235667416871149725663663180986867716390080194684196966380533381642780475670796478177335259223894670966844784905367385372837238407837678685982294296913720115594732218042711314689678805660042068666428838879016562710795312685396942190759642911066086596970300126959676524459862893591035007265815682026381605783762697558081128212055111943723185939410763363709625776893499081341647158650401219812377171807515523466654784024094272287809380087470792708441883062148916320564118648255436893947506581584621574414551639608707118577763494625299959779709532416502204671440843427193273739544405626088692568899816408640533450716729676128212552647015574972062636870455773467092458361066982169514867277999944323050318087743969042817178123584869039402627398374404230691527334337156627487809099036784174961727417856610039133301201457256787200617059212644711123483347806069279023526459214628078923853733452219372609195834124599485814613601598887424682040547896471545633487969134382035191639179008854433722192509156414294938543906918093955795061155506890893994218278974740874455565970880190878041181973082298687456780441796309512744416035558036011800222961254596198117966427997526178641367792537043850699265267977725943237019555200865146112035958149056085182453638737792066968085363402140477235540975435935314578241490684741008886209791123812363494052185321788193367022954525175275800823697469707665256006655555999204858356656627658736828102079862289704144930031182146576002656696312251827909439994430833619198301609133134904342258445519488399276815741516305019956331513724872561286087251280601544736022361627192970819996793244629486087171306792203423956579393728823178125395825036917201515456472571401960978001889005025967857926773656645273557017896897511160967542437856714940356716644758114190450534762148412857529812857652858882678292771974220147241901010073166483275749365210398159201788803597536593824914041576117019017917693717286174568489797820119049222854959274270199504569701079123597059337479158221980847749860295337069909214650198490612569492353176442389875678681509462604686433994008297910448217707167374424564047575804502770786901394551678033008139569139114196673401855163892113560820734660068939482217433514382980040656685548544408188212852658421524703836596982557845176905513184040922306472351787504875555215002034402070215150592757581178877223478570006072513014602917625507828715008734203695590269539714512077296792383244007752968218901460729783347653006770404514164138092843448510973183741082771658915783941632101989874510872350215352722704163610161209868442675351605459597004823950672821884447178758726239922314605428475163393964330773804455093973087238283039780015764497727750114600698001736276966535653916047989927990675723165109799073188275374728379009339931499768067187663160965372805844913608945339191093439843788154410948526438276266993866389073618519293359859475415724271231442187700740983498088025624027889809606778091507860135025180538263898688148021705707224673983425902957384038085851916380086411908328300937761104174372265224392524587009728763946926684054355328493707106087467608791928795358442105398215500469792834042433135453181166669252726193865673224642487027300120317094375283458998516260858677636762308402280064686405712195160672266537778201521329999003163504987083043408079400975171826480180629012447057714794423970258789492251109283647704699413257220225315395631172582222543929372522038062406846709892543044200573803857684510908235150983236081025024801274603433574098469000448073538261879271405353843928146852000261791492924271916394755231099113848307671851444941793767099631725410171070857447437517130598916572363984431403478395981109663647700129401112327091065560980127660389865450723187941943866551455885299806109822145781634262808130648113355612652755567086364297432522193327340662639453981377018932746555111359249523132725124481043948973982523447463446349256255373850670671015608222546033730324159820005800019966923447057286016620131267227850403687065930482435845006041323616481892331979075852985480749278021918551189742147243745483872558561802414104820030217277937905012123486408862438710703250615896952246650365690126461502446004620104643934039997804197753965648594358908911829306028028528486497115303193894011665067324165487421500779155927971893330297184515342327460432109450855636641599973413987004240332367643661381111375749537779929480503895213059316148823006978542414336475331511124672436184360770232899674528077569795410278125416675661621643291214072359960588474741180857747307019132471835218142676191212787237172191434897930874472408091592080100727493471856219314118165515589132067809280387404505998217318204583974303710304658758356352558653948436846073554510469951736618624874631290366951027853007906669095435538408507245972827740878760605959046479613294666374803362513681803644566261009775482522230667103509894494235391559819084582598231064297988133642376568412320649708553696310968706137403974614529596286499093536926711956383723476105330267955477028581413702992239898822566735758781303418221753825777498308796624127583024210817268626339830161126498079823359616912617633033985167070224398059267375746975054142990313399754821994681399248973680811535539886852381828038971940165885629401525964956692848846106005218776244958203097849917490105298622487699278871332087785466736796168283407163956141016168012158478106847261626816329899689437817192489839442586257354176071299993992006076933107102508263987824351952027295415204702530806589794181886165174786475607128046792373639197278248388635359927284490182611624079022447529929857860733746025958479850037178614708440948309355306512452359416169395402184768364261710271234578771116663793899701008155118233951668832024351756689925240332195776846455445794150809519051346611067606349660733419643469717170500180582699503259131046907963892288495720804334283452521252222143867241468882647642295174964823346339382678738148221414147614606461348224249383268640338700405144852048928842103432511704342241530152512412585963645532905394484712891050722027619818681156428270621313317675672282162312186589790036636657032414648602007578052321625997524741697444377014173776761370796688472020828442913153985701439549974684939010320470268796965304530499562928045274648892233398425819096425050334188239460466711603884652845170656857092295390708027886733737607037377066403824788130806446540683027562306539203771675777226851096523244484099139726238200866959576484950411079477306616331658813332928653095995699649810854257857100120759287265494004351984513772580959851004881582926980159275415374480077410865424151803452028732146655585655894729344072092080393887949762067342344077166530235631150417338616779814406627214730581268786626399621599456771513282959667601538799229543820930742491032748175491391315539728594592393987556284872314462392918172194178513316565153151552357056096086786484477354520432983244898020784961236775809622431958867193033715687693764232026302794109674980998156638253137800768998355639789107356727433462777561543521983500272475700678210770855224265270493837704458962654219876400173009155699733356854182039415287008135530824378741529287740668527416250384826819271904965014244931357661440073126896996068209064112375551603224633374090330639520742610921872012518478604427017386094786707596284908298604464483430208418244654443618865856795125967495512517698599044633301853937796514990350003425573252421782499852249362833196140572058112331326710711167551028158247502690346989102896546560993105607155564845531947630494768096059182260309789314431074935252115168553362796030412122237415645931264422724156229113065460354286438566015631827989768466474911394170507011635201128301241180453112018571212790261706280392021294575530619478978386062394708743620398106730486594989909158020318892086221049433378020897093119821382929273725145278583988249650401552049906781682526181693282276567947558884732569661187007256409634936602764294835687917410335124850355732069882247943086393314575687254904896599193677079319103993860119179160036820556655522669841217011686703091483703308472609836471790712390531780475179123279490416023233970548515194354398459408775841047863106423403179689802489598421246805521245676457439406389179933329870239076004188528256562506903081986312313043525060824487217877625204533413655026239357541583517724253882156720793324966067362672892565232809654476526156800927757295494672327734216641291503320425356067572985183325868808107397313336175571009786224028268158057697639319286899206025380266043698847704905130500082626068490283832546012988796380277213184579512741256800744790897208315487234671103926859730460646926940902450275792985194173198666761419359344467448455884101585851765018618321836998734614283307917521938160975080331298202347770413090859858254995322377219038853841676787686666943362542929699110480578779267132821897476759997304783736815912275445089005032911871179478633187351131244649980353296454919285710519414458412526892222860529479329061847737765953102446076127784403419250765424100185365623364629829905958088787457286334265070746559301841192296878546859384619361225603508349462565882211995949611687846479038740181548301136729516471807329520032980237091834479386242366590408922578463363565145726225141820861765416652540877692908020302711094555592300650175814845287240123321364028730994449705161636888102340228009589102511616228188227712931832056300506171849725079773244015894201193645883622394589715131402299652833086603595249410478924805305701662825491902229220553626268431511564862906006727876344749073289305394466131960854439979396172216794906684033977329874660439290561125069814108655414670561620946841124095160666998111383932602314296137770753975067821579929509638179171369967454343167464870517791159808428423755880321369305456348492457085803606564495617104228160316403896938028824116576875298029450084438377497222413533208950320415356431702459779241937451928987015420463637670919520167710732014957460936508851476751763713330313738897962815831877264518861307691527967772281164639975120942377451309764090106364954684478770964418395301804583940512237585081877253151596401052784370029906268306718430956419888613267808512351121535766270291353413418440742220002586893721498071685812025913896572333501205854236909048276642241925822827118796495935277638406389462854532348019810877756563665594860853054097525652767393030677569119842822515215668300995982818446726081294379594572026105233746978243502155325888466871423274861358220939847821684080275149707441360999985760254085752345225511577342152093908516567163368006643916171477175908366522797726619404810745416888207733057037590674787177034279690541636870529488836096287208079705911420495958177447587277045577817777626969117627363855407739805011207740570654158583621331624055583521334190532883335896850030852342761073888813330605361080883558701279290262680167345693143574019782451672069432950118944680682445821157942732162131425805008227598830753165008380024325720286069645376521084931198124764987959978701362074062755741020872790803365979740222785068827827773501232390839604206012875382155947099633522297353807992413499083524799874287371698485549658792524276538944592142044946338341334471531041898342108709299875314123187022655625050441680158157206736083318063905669961528139790618246869897469391282981437174067935533450635275492338957282082577436856469986129083143116276136327056796400308948609947969529359207902808692769337321165574915262253005368780330068597865861009836592221124261374745552485283556694899432403636823644519964990032596913631473209821063143628641882999914617962056123295201676472723085093230233176321266469123101493464648981612385114310198500770507906491256577891909132126794286921952828236945441469868643993651882984198523103508308294676644872217603175722209063078063564450294665101974878625712261602946054347893154623356962427868519065460685592455883938994824812324434673870158590458532348956842401450182721708346822750475828556954603593462130564186908374862900729745574064107733661762361390204359240633708162868708083868661392980842329570049357673803664991834345503458255857896829172020787799129551452327110083561471459987706203355692865601869049593335694411767824175832440931075030181218250525424875321593239197574335721341531737880739188283539570631485833242553789853726426327710324509158937558763060855991372145362903673637248414945638861376429332366389137395230664142440290013556813761852381864761331993863447456856322634930651294461519859444438768762637213442563101185266321104126304136394239537820536707818719731734037952426657384121526135129723608531243278950090508126263406438793978104203965409097283804183633783995055634131867706155528418863231976336446523233516037898960485630655248272789955181529048505823104018857326990663464140187511138268945868109775678301212299008742706155049346512518763314574052744424624179548049570687638084861862667392554339121864146064418159171295665756128581331074136477592469384632484595000476977450925831872147398680828307547177721828493968172372116270740186556706734105324928830197826518772498203569540995811205287366161165637079173048049504841688759634658317274356837899370610414567613809332567505332359924855746413580289822730593751880629814834951988154222329842602715196539051735448454481200173417879866600674432637019469030807234516707391781075915040579882327904263054544449145529104674677591597896132974874146828081617936613218663350233976944044100200503965737699118435280994703396269398337580144828040866965756687780851364140394078157206600387866025205506648681029319554340206787093752672115724054826474606319291700662250609854914285434511504225433173267209572480422380202641625870293043515014807065967785584148621879818451941847445790615597188912311707230036477860017346548184035935854282638316948390148650516116765639363195960643867018878764565049969837049845689059183366685619143576935196442204534008238498813777619889072478617699624004765749910258694445084624129833446914227185745478338740569405022337722581957772890595361578427998258594065973651126718688745093819012202136755060581540986188000603040213331948780871471285985794039515770415851802229002986049871827152434620514246074415356908724081168313745683200381242681777388255357919382267023246947107010845420209067732679749413835152138106579653107181169491655798284544788139747599052453726331023135168464831446244112853792318511074041778867602229463641737729100864796081148874367778763828487478563066300322770105265309773169136082828058649733349152615699432029096762255115109879632601075584153788446353951826427323774302238856101913577830632285058254112743669294173027949137561361367001939229808345265778636291125035509382059198907821691690799273047317381587298075489476239980822036944903206593370694707454177637255593435071164717811415357752859889535852406643020683420898647316314734273942133026907340075872540305692974700605007903569354434881892378818506395561457340666448807396551764697579348642355266773320747154507213578550380766405291931850804513052103126757234582089236110784453910054385762745788403920456955972926133604439650736886356575822634824484891856524388402497589274545284384531737431904287324210654030205253137012745768300579440286437845735319128492095299238306756234711506033104129047017060558887171276509918008901067843823703021019213340186498276257948317337828688016735785381681854825545424485859245118937011174511408236078508971997484751880808332542702712328353124353824397601076979362893395345754369381310769942612945066568226762810276268992686344386642217506587335648276409573306161895760290595271899365534279367366958294754681338752238378184617174869593511672655880481812041281519146002057921016731599476308707685282056702979344392869717419378233737449717532336445089285148881057937022082205616850235919079007757131619550515800686806901758498484992193489252075627145735113620604796419432600583192558073403808387726271903322382555947961069549009965169848984392001772331401876372594982695024152674910231294324212784876562927185600243212807329547199210481011178001874512451547434390126110665027375182874017006250507285628321817991650997426991253639065351823532970836764060581342842802371883661197471670669869932945620387670411652824919580340518006443429506881418649577248830512718128305419034792541965898580291753153068040130964414431852293652168108317835697621651693768481791404542363661686569544681551761800652638337603124813561111250807754557166327129197127511720739257371024919377801740896183573939896018956084698651917981316881331796798706993439206745711591346878406491781627150771925053244059919118066429712131522746094377116474678703059569202357059252962385780468154634931655358444666118826944090038535715496006959791380930824486131304110874105488736425850888916349580567397021114590431560061757900018882741881506215937047157829424060698624471296531058451704282382113768544151134131122973223258846242014847102483166561833134232962487164450623187674642002334227056534869902093412315146326685361618779336228394121415819735911752052295309033264614500935598442480935686950123255147482209328472270916202314187258363251235156073150264342145964291823648064517758491518797085078181341044443038491588155894449053524246444230940294515746199563079661163207503030138659248631775365949844570426398308279410267523886361293080125764739250325325767522212688541752868662858594995931890585464817803788580823506307934749604778036604910757721749017322037150637043097677602186843496999136933319722628221345855342154552187019442460944435691294071873856572073919039062288561027335233900990588979271190362837303545596131473276257343118252359272058863781175616302513161416804369854638255199365187334917123674969985240862883185258342053017116210226955045610903533831066015999643549880466124768943739809397424254374772780960852424549839096642052445898746405179629344110001996648806021687978888183896809473954597357054247305746236414473541057943898307865384273281471668472646461199929336192568608681040949745156716272781595760591043028260100853646536218230553193827973664432145066371997340833948590186649554327916637568910391949146356478970279077834686289119216433984410365756586564532533157541182027205770175296279394957836766147568831248325664181818299576087788919926106818262815502657236482532553333217119289926341971015230757345648425090886852711468607259091797151397409754510791195200421728143206888805174403577601857000403135423339499994887054549163050828975689673342102522049310680370960510888611423357596883642807345247627344689511619156409642941949606322724423746956099266372327246414038424272690590809939538559096114759144171752794717757935534557058234609032257067532917038033151798889831754727331254499576556472172763062340946606996417717222732498273376402207359249462835043722896027319928237230270240407448234876800005685440197412613081846785805072014714218714616291184732732573487719471962516451929271115897448355411969778555550690062517210335978772950853284722469541763377005523271042365723651248971814017584055620192967262109047417877348706634182404668361927259706816792185872085166082821539341648579120128479660452930140133078207099331528822156318551260641283284347280226897162235132617966061027366985211409557642154015546564456436979615395945146435089745459436544029726878069595547111382530357653654245055697021002302173785281543111145605280649739901949156082906163984432264078348070553037765675221224805071202240445706330919942948251819626178085001580095035197340007078151291681538507357393391102464575688875202725891706952662441553195957772722779660472517594970848901647028323484350349809735945111785126305200062818230326979633358294758638696505468031055655841970566147207199620514675227311745310392799512505211541748803539479240318056666516466284848320322710452870159874604278852117757294989442552158046047912573581690897451330418621878647223814699878314798583416145728000660519708390925479178521157049125840826403967632709948914781700549295160303009169739339424651159119725178058227996918099555997843083216706032493343980675860973139842730873237140115066536383587397756671040922077337140582147664791099932089467923162498548496723211898395763664111570214066330752041124270605574216493378170043428610109702030417761382380639675558834627917837224941481107802389951630786175591643741617069660635813044891806641896775837754131077363032407786439307202008007740147540305128972675896057447123726518082061358306656094650742943214075080418944765526957090674872304811826200120739974026788806469331386654562334532768449075128959999075467790174091910724252990739163107786381337232142059598713173961742095624349385680265096249002643045867316320476199032118942945636295353429999581171580032384110364888072096218611183780541070936523214648329874720712588497362093245352334545689270711234419764705255250581601883214771099619911314136663600695696596289570104064726646100441518831759063413303856799313666554740791709150906313466162936505301375652448932539316127516347295761869786393547829299200270121989157419716983219734767041311568858419491073000886097180059736366782784140908070252187715037834270676841876528237718606531211247564781749004253947005306248471975402277091230799791986489673882088152388438875412598622784995310380952225388997862734669107361368618714134397213865941291348950715535871646544208426014087115470065618403045379346839298102610899376500989910987151644170007779425726624988412841110332814207006630795286542234593663335435331130546212374962983788286376297061473826479485291497206376221139863583945744958413328362236112050893445831752683808222795176025998210179475758169027936479394255156936027358118129812127776694863345097544249029892721563792926440245091183877617174384279920909598296496519521132137476194320117569583731665705076590791891566416119766003747249263806939772346955285380383783140705301797163056347466196463456816994749436607371824501135636826914751802530120195466706241981827351048769820260651647077645237083812674414188950130744513540450765620153376970383411355649162505557931439873479450742040087220971276891642064833592289736441805596330449299173441911575075651136628862177610493399628298336934612959422636927339859509973119861258051050146249429306909516077248799258199028271343188514002681091536417490271013371670153152105855951139237104339370507466876876309694063445528965711545288733166875743235523632201884585750408171369079436709541274552096511385276445831841516050736515367563524517045262126589559304113079099676883432260461089785445012670065614095553103766578115162561838012973722449115312421874346990385685540079704594870493893492075769641712543061888556320549002300782012123709866994976158548511301876270485493250276905340472315425861056878759102058519370401047543652443706623427668071096576611809434683567253867938106323030812678611212376540502311197565936252712014813562390869064343737922330506397019727809394808380513544323267824013201113660871708058453059667213050104337664279335588751299977003117418070395249688587311871088451674231343778698037678184808403989645185552861198195309069102436262290790218769527347177879280540819902957390289860178099672708910047162658465142317701733124267555765075726224119683635354298049287686663180566010860891540197030569143306028580952212828004834393151541992631485328701402410548965863345733111962521520760927650163773719833723721801438893296177433462433236079873123607366017109317133367738404832770833232832117043646393052867387411104045662720474422680561744401560493068893243030000387511597376466314582139659845849671377153125321371757281766676771637529174924510843469095835055797974020139312290235115819208668409175067299708194217539149156294759850507688051408183382922491032653175210131608822521296120318238568877356344027636841333995608297710943243871774496376028063479961253906122856904694976927124727525425546248871945733305300296798549754914268177634586730248190525967466953126890924022138748408805790872301429613342637921481346263101514718588653164691116918954855387676147113213346591940301331121498352369517234292348083819600922815230919523983854040198887960148963355584435202727452530796985890582492617337297945388020739903294465687697273955998535020685741161346284657699377430133354683408432457119162677792012296419254750553980851471943121796512950487192442259795881727404706016600858388669570389322929263660740731716225781195018971786266150080619361977962925679009333820104496104115545386717867947321946025364975333577320896929977787640054014223896946684248424302191268898736276686977154526482921979091124911416530201712771846617856156782983146880147378296255230789448777394243562583674850622659891086082617271510071797612023738029879989277986964443380689041937694050335144907831331435686853929881213343270258778495171881415087565609660109077467120293030740864767901253904827932321074863310585320807255523423763928487737185518177179608720976447460232503595130912266233614893200099647243125209773900881738698942320884727721570317997005600268056191787575286151862955344720601241261654806088250982652853681020336790142876819471453420122112418892293853506935598378258084071518424553891795053723631531852286700957316087093590553981283577669208542888102958315861226186445947489265880508921568212639977847322380426683727110845208736024902452714073407882920014380190198472570830444842740031937351107280485344202723933733543818257906874383525343324829562640616487080100547965734466062973229541560606485611018688729491574462477592525869400974617137801151560476354844825480335016414322371896361319014778657243473262958901283879096474431303816728527774391484120349376562235762105062698368765029601387111886284597348463785126402120502585496976181777611359070864570486164284995539286208188428401130692837528879650850404157679077434533813679225742345868031815492567162472705656625189292917468833764548703355031794563401055773215492254028388505820795575622761959985581386693506442759810934424797391952382438870201385260592920279762082364359034669311583789965837527387478976846237943576160812761403519558079418152505390721810507864337715529469386757529054858964635726055139677588684020999502815656782409801638851127084367220839153471072640980220256155200924579720782665185453549121356650587045007719257314700068299996786698453500157460092420985312097463132865457989160163777970630903857508017139673872770435074287262445359470871122401676656111096884489084050902556954913982175135427092883714608158966906854199400008412125310706226349988903186627783018964904971910872155501800825969584813910373784002809670419462357979077496372405523108176598746651585100127545269762165132734386790493953527155361257775151684263776543582630762004337325764879186152994290893817108348417780131453097747496483431287441293169662419263578835027810477100158990590735800093697283133039541357885397559429409002047981053197525853648485254062110528269192941246084806019421303501349760858183232122884528599431004660391323677371947832399673904891364122687994061105790546567697896749473468668142864141506655186447892795730042634965047048683455351720830803572806187159529801232687336799043571382427348649671539249053648549428549756192038648305230078803850751931445673194418396595993530049439488320039414374053008004846794162227911332034663830556027446784607528483765532334010471722693366699905344251020561494767871606421484371431794945409410396910818549685027932673246061546587980881603696883922008175106480869513577267590398869967303313116623143327115972266539551340932142066704199869454733486300324868407839319647598645362711993581707224439145242162580045132846585895149344162670753958989665499950417201967702787447202441979901608771663605332220010875706465560479172265657750440053476641193621837077644294687626295153116415849280597995493648262288129163094848653715399285886511904195564865274578518185871120277813423540732028695190827511018224217656128866341927254502558660068583848562588021068721297235247335645682191817560508994324921674378956885703695996383779682723014010123881892963418554146198501366602890752222337002192403883556110947456589154590922109633345875254188271267550915432403837791033471872125053772902915128307556156013604869945812288954672151475655043862565194352862518788769477866139415357085663553854361741825225907164261150874316192127650121748312767544538615275573696265532637944406985821917871079865394488678354604186536293059337765209895242613306570762594404165026617825688028395850630737434845732156611865190697654383848131241503556333995964261362003541307228828429478375553932687650316732057968996098519480711832608034690278968794415134875478160462662041844439379231870739616665103132359641121423554117369433382145887241138245227995385342444670591438885705506967216620387491351938224448872102341863601896312738391278939861493564842907028564092000580408603896428984042249509910654634344967774681583117418199329803505611538915450494533034937298656759735273918480744217444940437359648951981597137635341788334774439550508025752837125213063907674394574376538073668283699965289888728528837637360262312786996569881523173084928859261496777242475018685447350862780112031746615173976848338616340396966230010680621677271074731430572044291112762809056185260327977287540635885951599122118581266536049172163813117360906389558540236611177102945072686714520308887227731713555522809567725246208384908383632207538880314702294962127184466900097109721935257006705406876539210925665939286363498073271932913437444943826010183490697598464349865445038884570348973129978386954151869821917075689195374290448499431876752633067607556710548729412974099718329422794034534621319182058910540101272581443404024027514881521330596759169132586096352747688886984150645493626617983846989463433203068825494571140893191426437915068734430505275000505773219139022455300422924224245637131759170972682196563756836162520309561031060927517364247712522983170344087524817375618787162396815858683823245468828037894853257670634435326102056843936613153150512981831205883770715178564163545230732499050418493490427425170774535832817433719621758057994920472999835763861948293395923542392350843886021784026642302854612571138207211628622399978081738134169984318070789002074031166504586042437139196252078239377280085759358217696910003585504356522736675847125677045610681366069184163148592120936591775140839881374268396902924644365373252981655727086959346383741312029601244432059435658384675067283511734679804435609321009186421249115433823350468738781202120268373231797245975336374358492601423777370889736864987518003346943773004789286038780693487449333121480650251557541875011480786161382614214372645699266419876427158564362716889265201502327484982800305753829006470345666129609608580869480319688247805289442737789802161721785163458921255298938812880547379418196733916908577095233002245933598556491221529846566126682992002798796623975996638094384245227467361567336588614833142101850798400254619616528350335729045085229722460477187075284410602244166530789067501696540326458203953072881691064793153586390504669556489864929338662521068624705715438878686798621778602570201752054864913706313338422559744797452850605807472324356576068022413795750367104281066992950831327189719091158875913476114494207996423764139307584177166045324659687815026053638676674517365263958782010800542493661106217167123257265170103586576020076477913114770903488216335443685403688929129673784513051238704581791601252791652757334763919346858666503426293595953890885416877670115245536962269780461729192026542035212285607384007512538986380395621708778585311662957305496864980624682745255614821139145206573500644760963366674251710075179329908175680371699695021201249228734745494223323080890447559637077289728277204480660214004956180682422165084755857210601810313681944071064797090396515673740355318161690296542759958065206689649310940275022757013198050986707926628829320962101098163899906718439097434675493164562191193029546361895564922638513875796044747202148402364383493477399114896862090238695541814879149579851845200425182848091397404117342197946934759506761977733156017660149537374711946752383557445197597337573532089619496787123717550847318360343764331854000042811858535534867535089912974049125123391141314989031417128147344616688549334579953785004068261840324866176207034806788563988804838820839878407069340612531993601946573633058897993445894187457383600475673159848487599616643244794464722043913659212226137692623024839898805432791414161617287544866257256761390949588038200125656271035331274424799586912671681103578503567862736292757151471785168797212353071973261820327268672600810643136799482940542212194985735719908830673216254720189892012488489899202990548754968049900676780335515078718000750601070589749000218324719824753322143513373749679197923189449330723765506490863994268942851862108233038177162167504981569854948588036607844116095475156235877088551432443808591871014359982979010817847095204844573192960217144965465547598693840103389635035504993715424641560503922646150465172377516569178677086947892318829157355838392867817735593296852526625583481659996513735114770049517538754244287410898272177968572348812464368076413472716566520599760378642518121278046244867827934596177757174752694477384305901278016913499601143771771204515290611015265228610222708326981694314802116511043852419597561572119056203748444320531475968911845140930466141868322914264469356398707692299347578849508329556952597207271338828234560291098205264253872090440061233416630051652748747791024523922416798312139837194065248325971821556579080841821192131019430876024206830935477543783249375274547954555343787039482259790507583743954739080576070746874704274611256600674976198069488559297612229698786691590938501479653680412466432033239696352683622835004150289647300726911410859143742927105346664732906503526696339370262571168965389013872923212625233383943415618415102160918715894337714401649670538968199186777548143280531876191175699569050580695766988498983432791603793162753470871536541594735018801769834852632188818901350303744680596965992288150543577215007116047125798840251695704733072517569010744117230160784002502029964214247583132879205574138844761425332426789870073733532910558030035275468787368423043095530796338602120604910449476885043761743707961163039818184722378924096907931518491413237235302396184242419458527126514972060524484087116540050119939728391172817323423483043516661630125121737413745647025789595870146021339310801938710040112128957925160347174025697253268930080253267349386757456139326316738775148529829617351678087468259823474994466195855832897431254845261765409762961381780305244478786760552996596353513619391708345382953149184613451633281124052881738953874221467594240929329659783086092601499566234482989355601498657306455291803950598476366506712395098153478202140230499803957255144565251405296383977953802924322174404162742592936917542493769315411806744258315154634012559330683983323833032710482637050217584943384425241709629125015627849408525697206218232446014374956295045710539612598482429427180005638734321400196173178192340376434069478522426441111497282781326573751734664089547451228831971946080425548534816005433216775440929212933447112811476854079305113387485481669008792474476984860422675946483297771712019869039043306801342223701753466153392348282074258581727305192267247332908317704527218968485897134058475906838690648003955415722694625374254805539018530779620643754904331813832708128290059547358784539247683547067188682001029836810518061218921943129890496089297512937603581703426743424137660005329846218785678700316466868481790572758630182877536212614460531715708515874221481733293918038842370319794874498098267821816654868751010963782568131194070796192458589912986354227126950664013272086395259892179397103298769415695844765597825081222576786368759919847912629501327798778915201001423501085422005486143145670744791481685788516303375795384758021432006621949307410172379388860445294553073771891208881866505812654827653691909809965945852142116512172915757416701356039988270178913105402140398652536927804771813112714593995503702377869548580768868076327241136040616146060434292069260808962346791616435919618331070216308681230094725060212420648549810153237403715484654068886666785592245857399693950739518771918994332957486920999250458351861009141241529809638181721340411676893346830493219522631227248118916737866526178658724515796679166834002086292395863597589463997996793199879182402717493994646097642119417578318967458223503279451412135229974989251362407435033733173233996998943834279785949311518582705498369002210182352524570529470752291890167982027200982988459071126476025113417131496290040083711547799167965241864496057370357705196263422906856672899411827549051632710448771700905931593913870913092376759543862924234915886507109192307641523262331746823320341886281038377229862685422706676811565936436773991987281257632871230252895062340545898986406487824329099014198138738553843279045366911059950733084716157152783145930183615725920971102756405034051030223595962174756454424241453133134406477671349752931762496690576096657974031915292543139471103340006201049095529796698269462694633892466074608911013347906280362651232904984896782569599665537328416248555190976570532897280686009056245171201213072606782612519975251031000375117799667598094074444650528473456738092841756061290872996719594238974658985552965625714060707503339941155845181323212621230602808713570851154591378325882840236336424619371249597280111451190139736642977626948145486796075792465994499685473203189572604742700312332414731556582392643965065617559696131978557892804893928023206751959366690175248841039157715313886456084058456216758456020489955733005665916114222993165950196147473451258025825406739471011088448760566235521011240269255781652993097774698246488754420443248127395867266197730144913916292315851966412671655499681967880978314202948696127403221011659699123572081284786484223801377475424847034512397078742738774136954374450156835035175770289018943929829402156993682336728631799991199650177295007462557913406244946558401969402653466506474996268509392915142073321228177032275392076670893183025513881508112955620425821805894078757873459123504385434929646007597434965175656292422798306716510349693456995059463759352851261396341187656986054117489016393192323310217227894432902994380039450673353077056836845375299713637170323845924089842058232697699178272603547789718456958929260802978318172131341889588764763420712191005216584182449999618838280471951563863724961237582004051117012477253031256336821682628067644793849356579705351380884497763194622415744909589802943362059143429999123461321282638360942302094772407494272943771943336794624948429916156712486280153441165667062291317363278012306062434195533418103727782949186900557400209835336332896865689568687882698158008715624421164286973362825986338295740490987135248198884851824178356568712159446347287130199438186891822177969016104277050616507597326809784312583906685004383188413375980546238233910251336209128237971017875114630807913109564181211551023600999987312623220382412776956287011471900356775314385196912688073492340923358638711636383024009253670437690444909226814167093522938765721767764487652675809120930050376332973037802637139892403700797731996046474620578213762225754724544879911638411089323355589575830491693590431580141837823235194090132196175005932651495795357763869741679274779174196498480374927128846424307714422948794115871197463480874979485336119054945691388712361354088880252727314134103729150523440643407345837575692904939352221794229827708240233717126884739782518319251108462945965270865143734912197285657727765216609959899867036883390571455328566141001504522284859352266159904876150842898802590007059596437702586183544578308645672882434445594182681455340455485086398946459864585779871601011820389632248143702793591462969812227690716256055357293440423341719008678673532095913845332040171246807926586610146300427321488306992580335228782857103010489486019601570362249541888886695224971052270600283859153181335004174068522219627740882825717542634520109462618027328419805713469992036831648044318505067066360998994361688735843077220687188841972441388421332209771253129996003466652910101494735365638223411159077420017645967391408512047736523314926827220814322813320239616990445431393646204799243016227429184775342720314666000992727005843634524327980637112016450738269917757290570504280024698989307181206730833865522785992984539055274617234946357025418944385305051582285073493567204381927093510794932564222643916069975552027955184637563350114233557277818786353963369871635878314938829471588788971079219791187366581476256147101020467405890278882488803568821378766819927192312137257825063359196812858965764238709710365822745050878132501851280263334163441708224311023532547856937612760543692121997240860628361456191924837803119206484966859465436281940009782072693621301137827182047441491080662532222031106473601906429048868193777890462219887640487465436606353044111503329829511563894150679769399081570838730285086310644915209909031742530005323115100641755951255629927836845346082211527795851891221449265711740614638676404849045128278335200802715614422807509022566713066470643521169387783614270404564672577177094470122403492440311058692204552765216542929823803284990164725282707541975293497490988801590228822302539172377245422761140462338634623191421506528376004524353873152405716043888071516295352078987399396734694870105170863483344701689734142665811990311456654939848963640402576477652410932869472372186081090318682424816394006520516145199730360173469034376324527499407651035889522712185526854435057489194716417341382828062790575645115082916308571503216670643415705797388745331512511864493035624322195963556079931167217582556108138610012541834151815555993406067215255028685365869522106516757646788180136118645660927725453678299672114926944226703864504062690346451545725268887969063358644421338699474240368753151498246996865580605586401520858222976606082184275923107075598038938646845853919973828071877918290121569496700639114397866740147503025299700878255620330194298277857789098545922741250272628641085310492005363540431755868297362353377115415276641465302861615527467922837884186265261592936930928876709667941528746521672044477114994193733627091305582344020220132655284132273788304506551463107502947230520661015035015080609927536636494466182636780406758765189356766001120826527299268147408959592539649619947430916189873367402016719875723565190734014243530232718973806757143016357531371858931814094161867766471367658860842721109761330728600957615718074424134047095025541520592702578550110916985874276464831769690295885327162459145380524299938152833897735557939634323779285932917855815937629858998513834286541829295512931060037416025939886678160861767882212714964956915734018583897694398866072387988460002417826344650595408298795547678142295281464170583556714956829660422939666032888796806935195578005921176214533013348047307891037003980511794065268572126526766173048502275367556945389770268918268095050309225183067994916728795365998842354388578448321823181909823731632539426529109280717742565130916514423543912754462317841768132316734716572906006141495800821070716587576883241572371178304541299232550300511694431544901642147490114489290267738510851626861442074694985561006798527020469648776850816588882036627992571820606592253202301129377360975804113694245950945295996278016620086475522932977626238121463889240578644302389245291877216783776728433565581254599938628179038515181491038698142573045713268898796796080089179228474047993239161411402831308250788587779299160819789236337764922309851103161059032246961866540933982947615907308563290942749888556006268185758610178098323062109478121957451983023321275238892804584515130712757847868393342071932403558289132321279590887190587599023810602624306997762638923961280192152614970128064369147037390011680660261522288115649103973790020985605981804894388037943002684965273621597699795838770205133130009441520996177675490865521993622174200279492216343446701636349592558968345494555647868040090049728918345295162699997682190158850973720791295509704070210535696269996292718684040236516520158975910208042975599882468613003391228978492171396582175865557153292547265150052650358063797694360895832653501479486728197657747478706962446396511137832342602133769435208070788809422610906080227869725742609922085775407767211782777163920993058270403655168389582298083225039756695630911487545484811555828722863057023517132281683979015601364548972077656494857424420255359290327010876994672548497207186606061766371696315417290434875203266463010539360069713201667621837832882819513849854275719449044184333768089623935808146950755290009313357196325765709897064250696354730076687445001698861010035897383854193192475704493730901324834919746386702980833873292626639484318092991587018096347811604010964502016744247479031749285611000396966315875776044500623109360550015193980384838501290741609693033143008490507350763272896173007603518717132981341365078803363148328375587648892420801734949579247902610564426716646729739478657578714312386664766610482640413978316855545207489398461994977643398823911362291196359486939419915113363750275943253364626433302501008640607228195083148966278567260558841557764876411749734881430513952834760369056424624868726221016380968421846428080996897071239371608413423003067823693944810004090269068959094651264237518359735958339515178370783618788495091273647527527988827065355110126601428106031748910650861215744332538706417220198896736515601139597388841515327290353689260041110206604239434863462035558648496464093133316309514703770368449293343321428739041001940847793904964758648057225439920681265610929679954190645291532190591494471666758217566182231652778449534686433486785167109128442205301636088178629242813674010235621908949556368352482698859529917168326408064919725307773786797642483437466113826128570718691894585529653101772500267520053951365621110264420188907682097193689844141466514716927595299312678110695260724095881442604800503294210495555011194193012097622435749543776876270939359590355291676518029903058013477023975456370072741524258390329828141768605259514077332568329791886299040430607177272389890210415392800595020948871951611169282332025649831259481109239410756882669382601539302807252774105510304465452345740477998356937048112550327544597488858773385760708673345242535356962105747460972925570000594621860928578305370980028821041350962217752093793058026876982758991358245179201506651911788978931112223813154227491245402690019024099357068707382943585277865225261179813218011531426424323673543463108269954093350063228809981093701275648952746509062918126867010124698209623233020300602554380487787919245581065344949377198106297365411597367503497119093724529064981488134140715010284613692178490018225764347241956591966379414420305784529605244852604162903953721709041380544603466286085042615992029144561687563823713277963368722986610027077448156479472160456512981272031228694544553717264051462302842588733235201056252249939544858313240896033351949076673537448961613607637940601492721112750486836318327328227281138202727703918470734034327109562742113540566865278922850957533214475008530663184020920506851369067740996560639974956949686361751165333940074324101493479932666368480790694098723704701135391385394693237268790575714591948559634019663576593400822240628803076379302955644977116433143477799680092261901967513147213721371770055627353849206314174380295283224063257846129897078167215021640670355879201140125590196411300209001683085052125341524673766037448634118113890155516762760104020008544819072494365297662200455951754243753636306251545548187611773028775672063922984073119102080187854908740896151351453838388251777612111808683428194726929618943607617494789249759226568018181036202097688728653954825808079538178638479250186041319666141437972198989903899657071269276008113331974283359446939107761571096187190754258624497784259028764688114216875371154544494621449797392259125352547089114712883377618946695449907920718214665796117827920016909969737486083447287228419873365563590492834383308134632237086894077673707993754849854711435672618889840170847820395223393042601263274657907760177074812991496664868995278955666140931487682610567740125852036575148037696864042544846501423283557641446855468232538022928357369788347067589530273910774846782617084855563069113296370268850604265097109579101153736159803865374037985792411162123333741060401425627985772762482664135248665914917775888448900774956753860620164812729039427711956642190507154754740827380013224840500021286695214458602654138299498647024150566426108856586968681196391248031214768297659325347995461265257793448778924647060241989091491675555719416646312119397180036133838878029078407541842522887979591333758991973334722622304669997109474405704809558272416270710390568341330379725753890775002333375719833100884345343756976707738985564864481398339214963762893960698881554611069784248293225574185127608549465094456588844532503024813232161932127167613816048587827604381942413619777950555314725844345279983287587707477747637018594468598646472727251190775458655865633596723747506308376286935967416688216347398234660144858262201389019409422125787440739631483959959965611075071844427167312957201059570234259605569333132445560375006638169038980528438960049098176824257828532011914128619158241549139667179840214826478989854592744746118876162962603540479964719197059884180197054687863217508959712277618653112308112584617678588155505211728492534170178180926704746700386776974676944106524244899554649540527075008025676707268368188181820021442733867417822724280859316310516517538966472311659177064980494002499034733698185130304438673823901778050016887930555645339971861266668909788553492068143291907164304166917498794076444990946652836753471766641564917674398709795105594584361103335975044712035755758911052199873306745751231747079783006684097578393556090266147276558749949496557594464827093909844934392650986775885270583688550851377932523944715689601783133268607233573474128800731301773064897683171128802272121950339561713437319657335754930145981858628368702562407296329236180235831978798464578069837062479124257356754771838817427726920108830349898087603629185417143375490145452676332190283730640277538201730307164170791872414543055176848122498092245337287498699014315744701567604275659526117709712037195637719595622684155527588185078066573911553784271887615599272479928557309146473078192283230179383517157951232412180775564696056088594821690742268930450108028327672134915418939932442900097238287945070837159165346814410522025402042885110140304583891742175716902597604207161290032551506377509003413137691413509904467878190632267356745750192836093639403946675355918667883664459725087214617913567360424466905877432831873394227635935118359766864830801103823951518409248989927052076315244139451153489458861919268277577833849688487623118974926611246470308947682843997663515154086282516557866292455099552902597662286887222472361850659903870328156948982039974907642247698218743867669907769051899590656328281328374519793208020245589430418324809667204801361663488225329598930591175661386570417847432762847977984362419213214769213244036183035768670735284334691759249508140175369847861968180321073660609744207149448967451728229543661239199281598670669663033344636282298473792264911605415102483652561906001561351703440730842843198146973623458715542676237769223776916530807707852465088807894389815633656179603993340838609488936706011770382680512898706267371848029101124000774017538307803990909694794178464054669824494284335564350383248574969133959534593271116048612839913609668346275338060121017725185391883995155771587290277062968272110302792688685951427545377716947565851263685007632380181527261217562952560900342676625152851394471531649993396575444801003806496673206775717503429564870057217212549387375039018059428184528722271994657396524599420212533766118485986696015266199085344670945968828517400249362962459215300824103157700802550366380077241386626810308767813645847232465675578215813938586263127598227944323180128115904261423051772588348835456929904636915269848796585692942513512873718353645011004706795060648427906806310360054698777711274538520370515412077099913063116527697852102007304560341552431623478246548813689356979535406993224635376653614435289672829217585089181657396710657235729931062187388772470000352088927099692565005590722177904457881069835955994692701807802636284347614616232120134219499907726057716314075878350540217100235021396749097121789346963327647546061560712992696619250532748207132516476721207012690931425647556937028165785721531612236849586348566307599210326538355571039673148517369710274362202230247011835694332231612209794858727940129270571991644323981731725319785545317738761109835333227969718449016121742652585343107852295758197125277774511576530920010307616788377185904161414205522717776601850526755016909444446362158022124873753714491514798440782809398345272255927348107698263600663183277260528719526140282143431626326476737473981808399474278892860323190830190948478795120000220690548723992704976866993743647132307337291503981660978764848164284915662505291886691999615971740061350494977420021281973537968431520778999394099490729333843124032115763381093480209664221422900731154706904013096357620469789731137228509530773976553261221254374945151595706135668035093526952786182158750718215799499810709095262378853164901277410794956109295277583265542201964915775000390115814697627347140389960045555484412497109569709273443008623514342888571813891414419624751350791393271531423800158216437958682399344599504276884217170082273235649164808705272086392858808145443982045983996552005311267026412725039645427929126662405516594386261391415541867179291578374946493290938503333451843125235712566205411151241067377118444349416323135575562015375481034908389908423926811356014460694551375666965255976566593294331207303981377658449278238312308096065928040881867864963014354839661531688415086605425463013817453290251568802561934930599214747292303235952577974228067289822326009670097351960618411092556702983274094810486485920757895142698734152724622586374514597043744643428875892136407581291987077865952429122472279891420376754244486734543490536348396905338670755799310101548963780336234506892013887830591335813638251763049950728416902413458378927098284560405668695180190246512352418244327512662090688497119844445853920339183137608990423055497531893681454251293981046530581791882100509495577403869744350024094746976479353686747874155484223356980758868517485880972174164455596150156464663061160125444486786707078446161910863868924739614655371680188980745779141315149457920999912481725040392772925847824890883292793385834639797430864953127503190187571617463851390634879741250011427540681764951295060072940298704100037183907879669103467049524264705740819717028354480234825629711802428114336728963613971358538897433271431633779323223132072844557295429021640899368247492122863819454105065683222195695333803937380796180310666560290124653139262800111684486142237926635267778284565320860464185108597575580337515219385431821029227452261991580033331361979985575009495471016929883539558535734118754080056720592650568763478381582463541144011516044966102867739907996569179616734808247086346302304046314770462006272466686161124871597251668469009094795271912147590307864648505827109929622290668066166271291241809637311310531406864481377647316533525959872210981620772615442113270275815132688295924554315716265884430334137291425019475749372543410473013905218178706109899177247221309761753848025225921063545325959550873794793355215124662203684946828719877991131802915185629346210972169298412491909582140327948217282136224698113724126484990327384355731494502974082118388673213155889501179442793135865791081610494338972750077308583771927312771409255591351654281089435030576634388622323335820358529504266134013211097502941040295506152287559932603360063067910580242678143839503985814733412804711252743348851275123132631056780803801042733963044398290840596903115865629613820120876327767549402834457849622480134930254100758144145893783809706737447720252010488429735953382763767018187340824677675905623760908142202922969227111551863187340723451536836587734526283381670883270109911418690843113890141026290826383300885393513838633171145781159115426031450502514737052872127795882025846624105245968206349620522372106882799454956617219604158000599386398319884046486922371441132940637256484104045343469949304422028279556900131499342168640665668831194597559484102861128443285271601541525139336598435304601729987763085679645375275038523882769696188723983452173255853639320031855234739174042468661600012145680204438697085899386612511866099084100917396136176299497660608460777950751256360896764554218404527481155061013085948759498430312880484583261562362972585569895615903432286805465039983141534163642039993005299555414086920981647176282523015231139158804761624947046409924341718652584982765397644340833833906369002328362327640495407313234119283658324691409066987925533051328222077736601384297760591480345977705780371941006979385326969074540320576539282853630931169933547552764139827797172420610911910463927712434090881435166899215001776734103716276171455189331472500373038336851734008476614699552674493738813188551262767640528657841584620041620399818036956177303936376892079821782332865811962524701677874644480455644738332983832175500697486666761319184969811296663390736009166238616327853796794893443272764207052652571209224447346025273527967221901650576234291361739519780122105183573621064556663714690801269205693064589479868077476504041894982325523874340316082925196871033045839116503618380882347707841099916460098820472897364150919768932172784155383333410007623885630334735376024717965958082502411489944103281225784226695617479980557890833382172795905307259857176104308299943047968838030984710013018032586832257699776946832020472263885639197689175777551868911643399313797012899743591144333379956119983942945734972396179258337878117106140647349727042213111249694064091364280019183865959466663422165631531228783897150858516924649977544955838670976549237983266035745530014816908122138172356256522046923540675027050764991624620544053870269992107990779965749845319747732237514155889359692497168310834848110244087248465350996877973808544239663800847854603417290922338616590637923775079492653794780009489131952866857150721862400828174259403068142121925818208743175647050325061511601657157176091396626415672020027808632099074530174923386396667530735807292551349801688436969330964592575344758707580436087234934772334232650351227007655142080658723767788937867268354782013095572058376034533414552196573240109255021421156577416826411824894448324107072205455181842058399316763460612992414282099357295008138245436117152612504465143375728201334072192885849117229102322199326467011599052831580529469018589023456759140114532436516740251000686667609864492947967249488072867705314231193968883871547582922857368425294144085573700776608357342084195214857459687566228009516829179454685981930524019145078467330618158701305505489449706891710496166857313134268505876249985191565811406675026455763277768070896253849819862531218406986450611186426774591473310217954507905073049791854523350487350060773784731688203216088287306843360825356815178820240858340417861981719131528269737322813684784528491307012842196989940261017851960502027882791647379257605429779195479247649981747057124138620795112035823692409913463535519334578748678717855791321610366991030373647579554834038224963128980091971895281978205565939057710678277003063188938186002991892091359133206168697928243051662595500181016079090143694210875522083383728538290126928987870481800840666473799848106564454035887662976590703737483378750241154291633137882110869847372632331518253817763064862732274422835240954989034720113154279163993494395778099197013304168810804409632203795372861256028924827639462611729795946089309837234913151784254238155760505135113304642061925856403285080059134634916240849260185353135678599469705663452244014271787617005417359910117874503201995405041230412776218376001803491548549432425434201376117220921389220317762027159108660675321587472460748294970074878357433713227121468649452316628570977686993215057694815857719906687912314559653538819769352434106650708431969691546576729718718927762265604762212936268479263112661504063183008032813526016201197780133230744589077126420219452318450854092332214500360933627330742652068803613003414339736074684237620675629851644304404549444530686445546356863160785176671323842054196834393736366601198568721893907570375898821350356042870739091463086078477665857089071765457703264269288365604090159288051149608247312196208718448553883130435045355506016211317277256174411676590549201736111983615359568376867720715627853541142616942152622127095030883076528545629978248422786249448742995769804731404642401053401543390899154808024183984424222322175259202126683180985655490180766071368528327715263015631188826557158326490605624843956805106941234411818278818624232288300653236128330176132169556368701696304031369772424199775604444025890500348942537551684328728174584825664144504216409260200281156199680815101930576105407031199945664666316984453330891582624873578836276328191749173585275606959524907874345994992281832128824824652839640396362523802217253373836978152017039389668252373283144032514561277181755327108005925823117322060214272357965694777909069763414776857628090677265706922659184185861803218481318694763019559308457369027876410775391944422611391583938084193177752346772551229379983450142728926210845651704533416597552598681042978173906880279262160295630054796593342315427590001343459608727115189607681619869241009055539757565100499784617925300141874860453420677711150172550311706469930186666964130020684707833944870928774437627881449734926326037949416158021058182073316683424623163183486421584185173526177875085583604784815221854857761324773872497339080066741320168924469586157064432727208249675549140395230345210710096316052344559659447132913097720477253333688074310768088316948122258240260545016783191351840087379398060044313728899177547727415530470053277255113174336256954191990952871395542827042943761595048941734994879153787477252541797756957267780581262413075442094102684246369734073839571670029842776777668972779924223031739157699538974087710101939747263409879236943276638445123762132768864747602153125687187886000319798067087684833344662059985483833162663308562628415352726477204567880969101383563412816168879932323978931211755634393270550965297068699159342825428257533346636552195966802635236368439796822037566040244772928741769722033668580912990231357746040099786924513076361644340133227128320688029984167962298220346306597070223238193943024707095934248598115570344440184190727862750603907248358575840284137204598188394993681634341246165397671547295922693253623908208859766124056167955620208624782545478485327880006026619171430222881943848152215893990702308250864185659676647200192943545481656016844709340118150805522241833542692132948737473815649899434260780255966981765685979377968735626595585328652050772612494068557924226748906482897230013418716948384512281579683295784251122247624865707594018728078340949145151432527921671004041530558848046525217113226192251146889329194296297954352388634508689852440053740959091568642294315491467001142866176919294374135146728925550465171327843146921154452823346859126296214992564329577909259377670925334842983422840078506289614489869735198582895757237988447379373121973098202701713057250412451811291453984555067848495057033289440376503261853361569674429601992732393874803794218281026821057938196572592068845487866409883760215891433560564842378397529073271302226141812370921628060824525959566799875824744112040007911703270061209146621150700205803030641913215606998921316686627891850870687144910878027841352147416386370043823728079959382974460742163117845334169839878512292557003103855179059188104970519501504519370499681156947468877230499901058112078315998718155119514511483805619484037800087641028104602269431334724368947997758859569190991414801346092784905008244820429189000322143867875524632444567263832781934186952242810090550089041009406502240652257591953547115453300696534536462214036954643416457399949190743072417920648423712949365618406817763609955731406402874389356605570348842555861628266120429412690471550994229712903346038663555636150926509021716450998817451126496627524953844373273483597068486964934089003692755978732545359805388750783030967576179667611016435002076274623167236395909040047189846274624648326097282420059907386076096123678161442186967266193579290845660140396415647927266921947915323062024101978492116619082501033997983844667014109642604167799233962357528515154904260932577905024040351276971385681573008063705279813497591234093691890060333830784842993017707900381140303085151233821327634130394906083971117751564998845014590770296165940441514628681836377521017200122509893813871523604938897314832893995828957853995496516793280410288279050163534163669654883135951505284857124010261248478291039295116869881144587607981323445428654477454154182179322793635594640139894690501063958309502786629356920423060877041793467401713400603415783345862400292916564707334886631289737166591567940671958697466094726294390072135121982360177193609918257542061446735426537631947907781654609563943721528125154872695636244278190983903537853603779584100901475363296364609083519612828103149905632614944081353224357233935937147765587994398964799655132533589054320525593633006119226612847387851402750362518245911641181996640374143711092172748913677284899565623711102622314027623740079782752440409733964223644778757796331823977012167990692543256452638674508689082871519031738695492815912386719602362729932805505732592589736937876030725984309396197294626794681225356686205011998114896884473287247243695335993078503730767029155222052312052118751299319315696837515706620629803896580875919181510372113401707598610307215863204262760222715586893274240265354559807449959037758909092757384404625890905435186635123512859304506630045811065298730104619135967313505377257244950810722084904400794760188173520087157479762172916233110993270323269368103261117693770792440528064470607840099093925302910780665574345164735883641927300377684678774965989666925161554404899453586595224512550708838023943857474983553046888897293010319248373527760484949165534465816388694369652543470807244429724984018902318547691613810577717774502335554596742912523897113355281667327707658965933549296434829587293458771737549402538387523744616649680310822829915604634350884812295635931874613290220276117096496385464587394302676172872123069304464723869366164156838895956227715188538207917390040649751279500574636916807237669585114000682438502679242942400608857563649545924110686127525637294396031224195539582568540880537423010753838623785166873914450362019984929898044191575529956735714080271652587004716588160351172729423076487600583922999718728613973253724579947562698920724769571304743996203556250306678853792999543661769832673209590652767455082321140631936519937142409511290713606131572843034626162780200105188931547673801197260835101397735754554901556767158076004741485293774474885157747542335903045223498124632200789569775790121629611879845906706996322020680101613990128469607428157189880534199692514239532013454000205391235551383126527670924575405276475525264840146805132079166963052834024544947029466304997549481604440237166144644145553054326952469148522354075656084432232398668823067194866692803910016642384057706682305352343616970630452152231773281925246534382046424622820728350046530537389936660931040358473588268918082057505482906164856195397500654860055764748102686538293573306178764978775079411577299633354944958326764341896728467313725847732981980380352078270481320609305158788138609144019761211394882861292849137069036319861426710599437628474062425909563511984954013844811571342504090700730089588936089706084739606290370204562689476492869056986533717195724727772862033622940497378108100991738297839909865818745764455748632863013280420891826494940586178250811190527244550918713116439611859838655278358605369998580594911363963156269042094876603400097329046533957662000671388779559034400514158785778053825046548391196792753533115174910024937591050995043034658528428642986399212038010885024320517162248872194240269230651075579996854453052124949447245860715845869072602132018750045508734496572114038415506128762056567376517563432026096929730141077020118463855539154011121259864149707830722311204530239510258191946971234987830760021532947670835744739146364939603937670683702105529602277957996712291713050072607110556379195406185489910749124577086057683947706928604635784304747274878438981451876626996770774816407427794178550118779770595211844520481154422795771811282378836294231672211093022224300657772844502857189513206315181221087203360038425452939576783556142083986046583034616561269182651524931366573982989815698077231466200119789334764542104913842009756082988559618871301028967727150713046421363964549833471258825548988269318802021684635701720303734705659221975497872731151832320350357175616678460213261491282661411400824702107950535193412364480582657295196841120581885903661273363523572771116958956205887668034608863053566963170615008420082147421957255938623225674970421141524504882896393006040931607998577691717721871646741310673307647969110546834362395510830595155318311880911337181903909912067315379905536328495360094253849364666234960626574668590021379544786331347521875820120951435805415254305385350700733387600414828323871736983269632404796154867628462181412772883940304257889421231090524378329149439711108182682832400750967682564592228688308945725269827611849297064184961766921944738068526736414180858654091383645583399597977658010538325742244308179339809262572190826732166503081223493972859785584177200309683818635894133502139637016607957445846467785601761405107463159454008940417739577349008520399345015083643930248901731960644022433754599658097748819612008597462161726392821802819059612135786458638564169257111827681366229066034061561801978982491649944873568523237557123510281241236042090742828940021911485584795092417753768026402989104960159673737670827111087734757050427033619644770189802194690643542574361487665714757478698202465475400314421174506922000985668826170847634841388671405856592439932124376059175426496607133749770796243209301172818423682387890006853863786616270240598826450706843435253198148449163492530164589031681991717426144325615334531589421966422119854575803288830182563306379976091081551150427874262340450812113185423320208880957159907332859404587076066386236703443114344680126987094948219565363498432513127260440694325380360321188675303234155673455478215495879923540061131506449462270038929100328401693274264962742352780461089056946810556644090898591619479435811020606951297113631669593678806556064108995194553871303934133300305507595313570034036990495234129306037305850995166020564005922200433995331934233761461649101684266811642676248507801813754834005779350090011839230939180860523466259447612558801156046247497809951902999996009118283253422565143617635418639182987301290499632621958788961072330793922908883041536855215595906547752814590845398013720285718368923067420709741131902415574285861604224884622583319172676164916240105099768177007718904790356658831372443859876838200979392664982680512277292833649398366217433659100896853299131178715090668182130218503882073778293281124399940908195557631711669974885528955465737296611388026464982674861240509957603915671537773548544057686420695446296245497449704543997159517292357650491175178190727610040984910307608363355723051142758236619441608013610559742690020659172685633642068077409094223167312972274089840424104821349520274781158120758202508426998997763408853345071726834502631544384871655816565195864351231524826733065179958320378513356628388508323597466253923759459006312837351667901922591439278280709142983368017068370942025615820834572007030417799034854855576012817231801245414861482311197072519390748880124476646348317634711533757829164416326009080886224827036266536425992026232064434321289188415383550986874515608631874374608667708156493360615873182467726731449690486344511091939772106456389276084647354616129174132785602046882930220033692296602264898812604432038675111679936300099750478008793249096602341997079891155680933176522803995510946702936376951398151321188804058157512470848454836397742634175387015516269670076225434039974095267215646095484785457910864888704858871178800779777300550382419402141356569789438302816160581351842210054647823864929160734925690557509260151150917260137319314295263312286601762845574895525292507982103513830801618800402854087211809350376425370989557371331779041925737548292084793198012701299195378930157558665077250464025968661847031843740265196277274224173631818540038127364031743658304441065353196730165279944316222031598808110941222002930051110906507461314526383033645226359931260678141275686763653555311808665479098562721693056571675098778346509662237137099678662743143806046393574445087211893848641133721003690066402892085889186686757430200158049771961112313714721744794881772793497444765058390633735924636442568177024310895461162954627510820102272077306478892104521688638120802771896062471509098000737518719330353935806617515292934658790657579551134597333367663775617820097065619237047571485620522944076575729610087484360157055508997855239575891928907221691140100468370769732824873778966330718011315112137715071632715625942120700900915898541313573761494153968313878684109225385072911540372258496549969971534458319033907495462730554919894878208172504566988203183358623861248852466393441926565970168774881520676299068938046863509661236514845574029122791836786414057549678131217628698549038345336893309718987462369889632802528662972965176206111221043616901942589372078891954186622783719825460426771351439735271805972806679445096609561301094576955358423904156403005472520628456490437262200750117523775761506339081017268735427058132156038042826512176621172695264463755566051137005174472718822983650635807349614045838439353242500393343745873752070977490945354576720720992976358788210946821551166688593244702086811887426909866716171243900910750800431069586470645543401498275572198935371925811194681968449530105081983371418250025995731368243898498252788947601682456389464189796906455039477691491912153908012221919368535148253950315235872565393346278825877407121521934000846665686500124949503866362022880041509617808469370527667999586142359958792480359154288500986883410264247143869728498420165721038042204114167273877907827148533967670280565113848935416278335117802354455628704027867646505991164827484399773180235083519276089103633523172910051922421503099510641653933918233979050773126824000536036192716201193461326271214233478824461792824789388180864882375150178767855430785002581106847114182326693170215150061227310914322378663752460134320600601698288850651620398368140342712145991825057421599429017566110803682511436258279137829906573633601680199779367066504295012634549993653595137548106096085311073332015685373977068331116986841009518002299153086226282365973802708315595060266313963626880130911675757802044144712970077619855632533998834476352664960657897216936629190658352597955202379617091500043446430201489423344004544181557898525779056030371590990361089141656293798570425004837596504708567450930836857475145857585794442145322385034099982091226018609876149547686658715629012690778374865768894804104936317978563494363287305134280136508955935972622850910491006346643829875779967304458893349295462005853021491246176230669503875558342925854691263909551030170983774587724816916176873014147594489631817211537474477173984407682809767189991548801567239841314525093982370343423029193794683160122684788604927851292275113684947752932524890611584440383396853423264782618136670816785540519979065861994355441436186834379181381098631506255300600235082520884940979101934340695238824669436071265535690417216680450555624169494175684057451404046523439803405146308779151128682298609112129222568092732667861638346919366309498203742582577988970485508931137882645668289287060740995000015445286841919272159203769546590059242263268923213340989446227360294515302257892491612844365841405222143136898360870452788915924121800348239794436463792233098275799490892539833561545260060867641380583854739652586931379842431168617221755439102599545299095384801937811848852265578793138619122351604092055158389296867313632553349376782366618242369578503179895812183276591970943648807469246599986362973047955352250347570812166116450322950508400405733520129625820810950416809150996856568826586869431383178138546584811484000224853246051891882129404051870591132272432005219349744284256153115738699322562631858874022701159818336453157269179600178953866270966511496621435287574860425415041737999350183368959502791750533516756350817410052857057307609360107333504736117880995349400262295111354966477928470029658256844772536551745378049970660209110175933025409683358257886009616586895847061232126526880893515440697709049890355752962709724950643134166800769167524987568859790208289422928693589066320706862429023104052673758550176758371515465420899782818839014640707847123192953779060932445137571610551148282071371021525092870116434749412853075456538786269341327684341112915796879584914555920509289295604469787928169435518289696513861520266591728409480094278898583262684286514886640317277753520606248365476153444922973625300120964136845858049552380973879334540230632650810259959462099383801338906155862914449222839549514315753092046872105940347254047433745087362704766332848451043170790633227455157317835867625222688402976993446351311789043628435477210841873535864899526901110524040125798583190827595723180403122048573495760862292888113008332896103202553498821575316756621443377563066590280275327220379025905349135254895307195262339465180291622094168670222324068401052740897253751955426556721069721924012840498042857333212725915793335325866112417218141501550251521574849179829491986150049879069397653326712107162028504565297857891270443145574667414785133153426409508750770825907753068613646748417063401815200756984881418923330243794474334372317659459806832805436086735564359474501281681001463068896275831186318790528959350594626049884004982490488300878335214918805226669534293285177030266593099814772151139635354056846612872875981446225597806080879144717363909563780281201526760975575800158651281640257036630656693599343702305985736348364358606413067836898105406719930137143864968797742988807856337073359516025076777066287208763824255054470884363239127332114728678747735615763065905150901276992468633164432353310503224484325139598978453829503846555449523987907363168662703852197864794134169933826954801556404411269121813649893975316828167038515806698294735553103551755685217810866336934926499926167940774077267102641211856206312760965061002760930865319914574483276959554406522674591006067820284800117006905020487789564972888279450842944584893521640076480666140613377822410436129392232010289599148439314971692901509792303482468341914788217790358507273565673486123037453491284381831063281478088063940641277280810194409860297041450273939706057051488248492987928532423753344350798164781395932477143339130190644680979431640766235611579475704993086248585222443968259114489740278431630708288496857216032167764557797298539877637916365984376689169626594912671429574954586154527851150852202161002181001822384009568672404717040277053437973639715221694593587507678046590225673916625300979717907736685666164032742334689650358399744450880787995045826016602622363983439570184275739150362911856030371558772656159826386638958464777616483228482412519699371042206695094605664770132092454805187300756661936104735397035325384865222364621985704163345311467829188826012627931674456306640032931904630868620350001848497581331492566388572662290708659249876114854889753744674305749703260678624725059463971220679024061152162870410060437749532610162520091392777423833328419951538269132539973738447843959170975569966217248487515830673159035603495113843025625332098671157178118060653342849771061797843246338742490120508963624712794410034646479515519815832758260941127851501461853998811331164719474620880696074970051024607763656517915491701849353727948208106519018243369256144723602092347584357111454482455762771737379865110066606755324495069417285462825985397226209221944322449472365929110418046789174065157861225367865494564306655123940045028513930355471220203915339101261905864145390576711498761699810934633333952237920670058124858081755868416646530145997802932348998694812808533765152055398105589502201026586684661005144400094321364774796557508285898215643477119822424747753187770918021599151911132013125873748025822954647198726432467856749829062117322481532396154289863553000332636589883479872871335057073791442897598464339382549479614976916176368191796310235893080067073295933657568620484585099825339909889486779344885171586539554675661694896330577584986064233459027768113803355131837145797571916846588242018675696346671444988908002682864831189300446384711424489117466322482032239495604916434479008968177444725281894837973665578413376270171654769439040424832604185916839103126080966133369529993784288995592523162146433264329826406474026851776018116754970579165172959970912906166509719207771573348429312613475625701173019685445907791389458796306679893772299078624444122676802099588002273207897974467540946022058272275929516629905013947754897895423483862347652660015302893648296313599935189830461041579844614023865734173139027802654952290501652253996698783317255615463991099521671931864366548618783286343032529306564860272375341111870896578465240939318360749839155352017722006800159929056003471946571429818318817092770486779674094432163696693568305055913631170540560986715663219771396227606186846050848417461754757469714498738225210807810298531912661044657443028712775639810348829005181862723942243263351332684320940096448282223132775509811526113176033681037780449770357573625732442695002448795335091969936558632855134310882033630431443423814296583166256424743563821252154931810387441478084952620704200297982589742734939186108366232698428235280540261761413784581867793956995010762852490987896434106912305468320971685689216388189891196290937693937313154664768136455547217277632645347853513164506404354675736579040287213119248326726616014266730939761283035801151266010348463181240701899272666507442417808042324960527575775581979180322494847934116270047462329718370508995383163949559263408344673836254955338221828146763224363558397857283430052145669963535560938085588290887566307262791374492259431850699048718379177665804925843072713025394988215777239907880993487661051940220766027836535947927046927544329266915463523635673435028046596829937789621826825401762361151100524562262816877020303206356545316615948140189155593457008536722005093849777037922014337178125036419762539088957417450825305518500582727182136887559271561919395164238563599648040931841648705944640576556587798270966222567151236471515413855878484766530487259265689822171719192780278582057062881168285297665001438460614333989588108419440334989494091228115606501563559906472824351392214350890326584440453480593101263828275411824438338881488805004451729772198340983386790982709573739175287102053446342251960621652119838978139317604337817824893977195932148362552246923705201955098252611266827221701485468507839851912042861948810316594451170445069447021396321726962859070126698747427802903759551526663022710769916255366424506663026657117346164838401639697853218427057855464590969976869385356144819176786999074510024565129412383904675618151212741020795935437122146821862327943664840001833405964284719200103712937375464679714023303763642336080518736722285857438377207742673523166360025071857914023071057276955966396460787635896566694330611280086085276867785325763081303509750979734387095382670514820159050993137405279818852220476015225466883673130876718903208146398029283342674913443240266991282094022019440205511667526721575544250723235702314192302310156907433860904909734329660546935569185405546729667273541098406740917016381423563862051658333810803354850449384643773432059746203104782097544609427921331280409933464152517739466090434185409191375166593820515507233356226820211057495609478926486845909966397214047540424855354731315593986730906115391826753660281028855731017388786394800249744548964650011951617594686927109356535402998606742590105333104375057250748715164146279629840574321136345610622919331978246365159506791846862629685993625969949329310513462087488975126673816649477076458621298699482015397349744527394846310100512417818857950395326052373110631300923821997738321771460804234578707924751549180600402262719970642368762818970115669974728678126987248765923579105333511945471770340971115568897183193731020360992640536219613248619989987636705021339590528617069382605546594478962881415741578620337953461485539984654112983686733668536787973662120629820751500154010933586251414586090354817702042550100273880811928363496714044239356255547078708242651422426996621605180869209589198052578538778266277240676341920260166749413170328630063305703713735286237438695258870101987985539099538859586405228630177394981939718105756351012273589590080966248168286081456423517675565637063386370367425098077672935579557810083497673067466952671834207108767530236990488690232186716719931381255292818714433041007689057942516298084833020911125575358066370994354808429315065766414474868541930573077832205042204642691284005889823319904748147291894902347782452218493718997759257161815906991147920215678323660313506556426243289103478656272528712380442125652770178361647945215162107713904647218485616379173968121933969824189577351387414486595029382775990573350249136904459708677640294204361948858556702799171739949008712682567473508116517916328393235498667473871596674706646517671467830152960801320185158496581452376260639600310986755684496004381827903612434797304658385401393036708124523365824418644148472160480394920485739098769661372074070080038718969984879095139804274859961490943434921230394183906390761591125745298287810648431186328040535686096795811995212202628138217604205425248864128430209325546616399988824963270323538811778672443587973125878612525089970458847261280075699602921563368183081611247634685382641726366542386788469991002126360998323881252783555791429600880549945241153379593558134848420807110295422065578134151654894924408187414626573540569363455180396787611627004594093419012770465279225142799345429003459218430527604606088889425699612608941229797845723609533684729820062769517957673464484546105426285008443282643192814736596285947344574083712036537341867746367394820804670257689450239526075519432069846869213125193540151450318037800181332187630385132241477966851390963953551838783415671509780897831715548475016958763755111897861726250897505479205358430249824209490143496446793395476239220768078386249385289317497702516705176243881570168669136027455456718256936636859502987664703756282139464416769727888378089841996354353462716934700448773731876602094685454385585016343326172481709434924665259635656691999174079756432028194737082066678949089428031157241543797962928041519168945989238570519070893017812368503903970116652176198642182165897857255508778186842324421284771821058091249710763515117091975752125685002385022976323874666040699542584363158053943565703969537999805880481453887338951822653175195229051847782692629562220895285389736436744976208428867028231938837877347820438918736552974879562434658203276524261488822749519179619920280183870455018980222257331714335068597633057693184547318034320616200443905597427801140048839227153774228117379151918145692941927622475096233306225297699163545328745132160543037340443025958614954947049564686256204318383117640259111087811735177001939304038047954543989618837113739875438618352733791990116554010757711335961787995922289225349258366405016126824950770511749114268274675305598231290707502666323657826336967504668383602021109335455192073802296609844810174417634893056259895754773563517342023898076099713108018613879983729805824389317566016273366978496873944675731014341956171521994632563001732950027164727704997623701943003960745790964683988984136439010121914495727868431701715714149868400120835604654724744260085306746695104338975995965059916740541215490041284709395894592038389513246782191450885031211939011378538114775024095433040149529541421900281257708655062020555684744418618492518803534940792485061495460929705498481023326139272413869799835929758188338572699153053327687583756283825035484806083016910488054457784782858600477610489478280920352826990303556117329891795356306651067484812899503232866335271373489350056360626122227780854865745834505962070628384861044765356642411890988244702769023940328582949228933115024556816081828895919747102260065328185567487344852268544368979380483123988912404884159078523402831678320786981649692384869886198538400523823650151403096809879689652565650023996818776879148400557652275357789191994275259232246604085484286772317201579670401217662292457396262175267675036477004062593545686346645734876140217167582545398877237431011467151666463451164471195157208801798260623527478883545750814064777452907828930770464344465009314016847402605751951223290964094707928580955353489952332110824559677517343842732716651219267146983332388081025378993426802077759840956108605972134001240887082516908636743473604058236345112222281704032652570216824287420187445985989356810720308564429461950719709910549963778209728838311156655740484586496771984606416126198449885764676756860923373724435717011192927502468127539314122784933558936678608766678118958713103639718492862735567115822291494919137534719259290461747897649118782980000280228578357839110289679177247647225925984812856444596132028959689801816801948604761286054734525597386907152203196354794679258630557623068322753578399357942811043563253387788484502618613877032806243216078726925960275032257543950449938180851362924564609163390479336884124146574431449798131423847855308378706709360837481940737955903883543879552645815579252404733475470520310493936208610870523779994192594553491052869725396718820909328393413576395849318952165490332055233329641319347128531197736304497428296492840079781614808016193757701979122687324308172622033739790756148420003374150897521408873575794171718500574184725676906407546048403483835223896019555678088648777356662198836419658232385575218285365070897214826019338777076280685001968347966041172192334954996785410582173310738137320745421632180633799806275749732277770764942433406809456022912236049898062306568668615361051004621686182861740290834267268927794408842046378506879798014514538382252622707622151517819066040288682322337977266541099261994687732410464928394955232978329076802593889618494664502051964698223959125919513303983813970780028177288533603748053118854983770645701182491420965880301636029524052087150515952598099668299401985437745087598034914442981792259836717321612625144638795803806783743449740564395372043510287030681341071257410410555854482760568642020050943083251010085520157748758126255686921769982027316633682683271504240599095021223623697041762843406784226415198686944432160167267734945590009356168307269848178017296469999241962900506506944410660722268015801854944165387969592375297021138077907615007364893319713563687671688419238621305196658749811580778825839485277699904544188954959879146451089508967009838363225071225649466338313516727632464697899419877498436842441079270408511434940528529231687434023667390799404320510861399810376936532550455530302539983271198980059323743344680223481860666952779233515806195628014861150246208362167002663850508637385141002075789092802027969311222759616895128517740533578491174240322751982708363468496083513798417190402752411108252501963299568171029463563430777140098627158796452213729285358920769520648021525669609984841877072364071755958594781880702244073537095160731854045689673242155764522068509001481423121012853954212033576373457039400480711907498421436122252955533018597612206884704029233368415681800209378465395901603639616432833841395059613440067882605854758040534986641962172803276646475125827985650183107689836692845979409776840398514992268756617667792649569129547337030705428693901514229000243374346070027226737713074858348228459766487080753586871378432822146857595595401891045475427866813769094468527493229541920117266893883037401509541307386573620640698278205571744362711848531565044857844668086000834925357386645981414556144943039261159695875998821622346631711793884093852745301813901442708295979975975154646447364291829275099041570076614560052357083358767389932035525373724404201849609826032229239923333356774698321543352054643674344712220848801513168041187579566161579202748977274416197613480136541744072805454543629374562273690916913765535334722747115505247291520571496997690195452891541767623983096740263066612371798404472460811924896107250293787511416771537656473897207093456258263839964019952386063709612069727203211731457192171507644392678760861069306223187319128461015755220127743438429142222482412991998831315208973358523227164178340033519564234598353599872574703479963463227734506835544813009147617866061709248793076522649050734530072262995171326890640692509933762796927325075480493892971426672742090800454956562514895918405499423546102142977835435638414827944570708275211161833276501883797847410673832907199377830499117040796540556298462302280806517428965655757571055704391298811046905291511413314803753240991908284909520608099125658842660864060955412535455232659018141048113632300036536715137038709808068140630741520308932223382222034310681122717016431320962285537445485814636283266872659317019247223406058666019362330842645564685643298274187178939076319653964981003832667197898485432162036350838615769344349862862686484713914131859059912778001020529341376266642731892091706611278578971512930905527705776358250473705010511208612904928156776305864666175923234140151377292843252528675133101500864062873119360112172476250121677082790292378636390674342445180408169510099311388892300253686946907654936959644132386364146289345456328257215650633834124569516621366747622629198828237555164932395627025365856468034987278588778715129223712395357964366948877181849685671442766512138721278784851423328654558506258349828606952618463462039619061238080338927947645512497482083869868267912477630805082226276045318961087905564991856629420582417396314987003750414783762109902625518949839391024325639940932820899611172478670598569311345896349882499782561167081350816795767345705440952447234975884014091559577313090914024962207229036059139503270976659470515992643398392709017126193672060281979140894508021930218424905521218973456850391381268071903386644103140723745634746770523180794349199342224882223137335428063152711592822393976015943644997447717255723877265140351917019301314269080056374304445228930005882086456936066743945761800247962678889224056399028870446214582380316321670772720863607944136471954632729479691852643807593581213333482439460238592392191226643357882352628219574559564414155101505704846403538278164728093703821957649768277268164484581539289260350725996036416236681276192343464504921507025982831465454487236199065778168259762500850898449296294947253171854820869925185007197684722245258019028748137489266474507287110966398987013734357014302132133682396258662336872182360892758849243080380405356123316859375019252254195541067730190619304922711530428252039809998774526740454928611552527892825863196525356426046641079880021823578991607557172465753499127086319753581646857447376007346483555748042077480071523357089817279834762788829197803232086324347983580395908334735096734409414402534872545901471184692404205127105727475857917778207684796540191669902098540116941637292727105386743392087715371766871008109519200226009573818025470467613301972695105854819429189361520332552271663350537192410809703227929575624155122944912962625635391817589840403775228688263911080974021603765649805990877072291003815192513979574974915624602465399767134996480600373889969051987623363811231357883760340703675063431617488391042332603460840183337407349562400046663624651805273289773798002379504820673738108240568354609961060621957186367464540341994579844214807500312330523434130266443803497178736768217863716044761486822877488502184715211263264959955248175095153120342626369283280133356656452188722087244339000433366527591160434152720210633546582114603487415173108584836266318145223141409233492099372144038098109058381344189731596522153651636698920970906283023045770140358012496027018278620704181238004271889624652327119309388564665062028085998979001838440353003851885199727986031412401893279942665506693585421578173735830892058701950882622356324482850681982776371736158417363552931965608281736297382254350042370782917341908494591835028509081438067675237298858253572560952307154448968500049706300360141281935505072827367757084180580979675376593344032643992622545058809352565326444001720803959477244945555563029411597400219848221832588116322667540764048876047045625306407997689560734865349754564101944334764174394402717370958660182093195116393752031928592487376105964202970140591799954051147632337667898761192217809491655834421833708277718430223394848905031564290966808549951998255263012410137307342920204315115846389672117013734038590462093603209080821020235824171285108215421386164381864786444675988882177399609684210876466715600787365183977242847068820765280967483476712717074274567078263285189708309448698735801741680186197221132680529659364538772545618923371170992445875758214497772996524761288463730734924500063342391120700433732064499775484547814370330764332032847125876486743226594065716048421626538666311972968350931118361295186855466120125064662625006155365334559466408253709672103242583973487977868374377402609222193893845004940506837358164043628371012212534179732442787560910038946071424399915961559907548317278422474284130423325726300990397347539946171431531035856694532278731138347312519667270178637275976215033990235235348578250691741432680424082513578420548560525207865046012753024238193547969881795259341710647263050901745442862944187357690152814796064268947957502584130571385187097085935476050250719336811600066156317247353141397246215224907806389512959915207166500892140616715948012799842743432258708328926759889549281343731473451346650007924028810193961617563869026549195749435865121856422417198350794633786891768458433774872565994610830544333657062165728916811365557615284164239157934637162351424877326173032185635251816356431777083855420755197574947449161284407990738148545340715652833308250361577846523837993085308428513471324449613170020821370469090642414831839274350556058701032834323995090527010589168753138597882967012792005401480039115400117850155373455261726196824940612443795865913655513314234811335205494014317891735285854015559187780684601410198347744154176425985562002780584121066250274489096801763750744109543484248655995438136994463403082448993553527884927106113755885194380539170917419935636778974883685840068674143471805534852571477196553909862484218645078440492846439426165065220944258246580161420789458818658044019491728767448036242764610955785011018032520405602784262360056929788391213042609540179121325511313980784429247248891383281620313301439428648062374904780323880639552335676355103170724601875327506697126259030707663109376556461253458059700970778374311419323714534912309309501112729428786448162241976671149912527294184171785078092355242906201383298376706211338106764918827385273937924358058447409477207833104646146043183600692764061675960444729520664244874868486717278236275220133160185382138732156800643978805393841104504793164762066924386432187798445985319201334282274704197136823864744695284519122627001832457893332836125359987955010158528131309541482440768092669207108062562042654844517856420107622528764650221327175735743948858216505710253656434820933181875209569661499834245984524661945334576695087420227863730136928584808817949481360898882890270829003515221334567274936592199137494000708221663801421761097284071242474280368534651939441200628440634363959666725789229196059346406654324289755347042042665981400625920789829222994679943167767056551576254997967155717542390792430466104333231508627027693095114760384373731663559245548029860615893827524152483255071684201024714316320047617863294231409681638716698906001212351152000242542275339228304057634363322618464935339324488916958665018319206219101979988290224067653874405823069134310467100246767427086177365896597728395066549649473378208608410373894698814645983354668364612836812149639842802206488563429888074934545202274531466380387191743362232538706023049742238372960092361550770522638691645034923709299514554880944338790840236048547773780200144038894542176685017682701672554883644654838095312588786488952878963529117282531503681889016428533146694264381564414753200591927934872389214291876112868572168135010627954565149830522556039062811375933424360957520848206339843818947414425827582305499876052995475672689200576401501538873329639832499750107365441659939257449036014538946745907012734609617896391145400284294622462434316296827210223075913445504932433036330770406157408951398162027977627784119457346063345054499706209120209605196824216733564787989051155946251693604608673525976106789441497212435442013791928390264071692420601714446663497433140447144003583627133088160383269501360554642684265269124506030270830589652767092662913002725088630533533491181949462261346752215236980869036344847850972405915786570620641087705111754145130515491984548399587290504595146722740462791145993847108673837171126356307872667177989530218733962814109474637667881078331487514985328620256986990270104665497308273955978023721525877542329749659730483249334178636298767699213867499517589954008413960135623489663117302620023710334643994937303753366309169417764753329400175221556252179252062341476448807424755756948851255316281750225809529144612591635410609712234176830234859158289774815968545705891022166787417968982262321639075839482329095640028053245833728249156183456568632984197911458617439369253177243781952183080275195854798894234724399884240886912946007590273152321901048084678156586887024930621613794012722599522418937887443581807134830454684339820161653240568854647557104580250874759963788317691741822204981333531948314040239402496647689096958845303873398282401801646362425933970748561614601823466059472599220461867141012817753117319792134658187590965084108090674315500947839367523603910584114009516949215818038127841643537688339799856869579036976940669727862131333378003338933634666015637371526605334201485812880800684171083037637491737267355842171886080893971508382230169168241762555622216070386480593521333046514902744326774839515185281824585395621876518306001463001877915406167872221359965270256286169437317318416416145287515327527339299850367546396364077596577992355992765451618894675875734125453776662655081020634896255705954116037958474107601094136427147635170547392072507087782292187149339904386170838153837749966751275369056212758420409768621290351753849932030472894431489276134178455138798330820915144988961090529270373138596475719132509353168857410122837894429011462774830902654031431251358948184242511487643802751785014227569348670292495029914780420404319816763821004907045580552591488152439620588070592538138589281639211488829047345469146722196308920740190951193454397921231539473803351873550261591280600114381028717336126966355956893265440756034788192700766820201720535897224610974968467282078461260529437384906612559866684796542314890689766695465668676074980884379721059750506845763035552125873221593416543283280706167951875686268226512820710738234521285038723760107477072390907635236616158399609382722634669638412535850739932058655675217542961436455807808708226028559887303865761227705984725409313449903662882072964924047994401036083802224015725855437925508118529373656415360946661153774251525627298103126897350283282248955383139196895946247275366584587530730193359564893082249423128030602955305174487342377222875916969710567472702013974969007953976605913369215910838534893435024581940526981184656887605600833865989871584547356381900268682851778095531866658601977109337841720391864978752801967410604858446166200719753892105164341645565101965290796500674391691465925217684414194377947214858905299663236884374341017736301408273142654756128274194544588793316472114412898858593675490100371041817932838475765514799631497692565568827959876720430940256846229058978867958032297031780812363211922278666574209541841470195801383739270905437470420116556887405082232405753574720385299815136611019653528820846742948314901126199383411034012451450020065139792130023224234870982779203336228451647921372174538406342930284028022366635858971402032864571630134235524201266131045816802800330518865578238915976500101549975536803629915482496070676778964893901979056859692740229074433057062564604813557168578938665858593124259232814672314712698766128472457025555278990857612092925297057853631362515456117546600967564600447237767029374017603272315827255088927826528248049229186831883733224304749252972100386289690060024694864430455651194325164404316098034163260093933697195261832684483204854641606959130886474936835061010164218666981174123240253810071094332502041429633093060408987423496604645513723261501736100437232433363393018331605156723150513471622139349353778394919192307754595128266163890113797886507145065746054409112994158781903568391495138753244436956594737334636375113845160635271968426773484277683140706417013458659190739662456661328355919257350015498300707853913423300314248298548737028491412239223805361787523577665983187653842276110436389530454622008861049448818568669698853825593004138571699477138697922662623579175429192390147203750201115470291305316966560140105086013107463181593878498863849444599198435667887268466417713385713103838236536515171008950143977778412430344973010155242868533468493140267955589389730751134009138029405651214099006100788034736184415992742347928277454104130948951525125127823717866609727399358664786561004328571477602353778390608072514374751696642376728178495618611940939729949441106650418560849122245917241165168290119797557455497605720316083282277817437627717430083806595288615054631458959122879733233994069288497522066844677060873348219530583809247967144071096300612189685848944489540238628523760563080640404835713195866266784620976890089210982715733539750530206952501892251873977226735714582899463836217425055257090631632724985771295953513693721318414218692295060846118818629600879046864668615480842659537748139013379141241892137994602495445051804736775789413547255970060639862295344118664294101112230483241781998620766952937088655120573292553168581783282137778195056967077315587198510175255222163784797700660691920089619057551943581518875135691494463489879092369757712157191722109733543231016659912314049018072294590561513946912133495296639205294500397843811159776073566600820923947075822682802250668527070128899770199837731374432670763531594145352907511189529298359720991639401435286860789690373257392859610571376528985994756691340122047711745216862532064091361641635713660263181219691789143149614416258076043484039019469324258116204559618451930637173471454180102819113936379908020456740788427997309945071115075869994125168590448802722456686856906798298922871426992201629168367504238755799168692648893239541630392551612068792525110941832766255151283233205385939502446072463295083630300208448863371740099244156323872640877519525762393427225950746150503147582831401671006086746420386535425471491863237413909218393151336459379378967870988159881471043628478669586620410454076810354668739933567901449806820883183879935249539211268337272076578514476446970481768560531821368691484300485978607620702732264116302148925863234912793010464143448490019859636126574437142224039699915627903726040568856309081680684262749280139723215664523354773300511804485044013701978406823595896845855760777637345237079746586142288689338817478836448567609373443509073639843743020818957081101886685206924425157101124288795354643373819809242771937096559462115183529830778052950814688995765482583979519464877735206401776628429226807318295947244741149930081903609780085993954578306874572531967124340107022380669844668303942860670256323589782836467044313776553199325648233407630647051436673724827745106153885369357883578460467671805408342278098580246780788085069438838696400518560950999189636647365022174059990361173478809746548587664735539931496399218378440864079408264820283791814839904223582241390306381900125376764460000044502302723282478849408414186123837898447784581281266156766910344058322033030111122437961201303117054420597827769046775935927289263602108816876485052971901210078774923244351685280817306680079629835287816624512733331540094065955106595390279429001556318345952643051572808949491139930160230899421379997065842827116192702708216440477196067883101376964409972344025742800071579350349688638726680428556689066786187501147693588566904210144069860138836075848470808005922035327761293360735032839445458172229044377586573550866586282279868334497067314180412145972924021104668919751506617374732094452576477903259581898144690263178933531232925189948645649467167049993864537735828717278450602324659171516978140615429099184425125589941641746084103313183988941271106417248844747305330716981467079706568591498858849285617607298033725202680593652613432336364011811603861186419788852467133270951452814165144448058395603418862343967105897749220091812853598568607168425195446827213069633675798912928041431416535090325049286688733381499923817545347989431554185996346654084406836212473741360682357886901833016219513354888308138310845536481398157757044924780754009162170721406801368021354720855785992377291077976667082733800136764763527760920937952793419156229537909296985039463192824695723978570381963222646451423834483336896281851026202417811088985264085636774858148498275129319753162403923513571260550734889381029748622985117971540015587694072782236433439345959731346257843292830950762617117250065261396127251165780521382518495484232260153010369041140246281450154870700253499361562208524038841273285669865330406666522677617321607135193638051016840020650344512628884325437899217714831057355414868085338346612554722891136307023005321258269851798211630298844720951250809812939634725772723845222096593665479936463627484280341536392506092034605988736565936151374637838603791349104342682894619077334437005722294433715012454790284925606042103594935265202342767750959848211652416186281508016973078207972867490906593513740241965378989242425993695951927323229264522964809395996793700071025251720053488950560450210213322730517832208690350914542840656429044865302785502786816560539770335144561337582526338643883532732214976658666847389599584002690457406398877685354909738330040717309893560098246063182640561397091238995362605951751627293947951326989819940006356379616293074591323180881608506598620853029136291322957016134347965641492933554673499479959662488580044949121947540119997248007564504974677928533144093535973895423457152584756030865338501265399905731180461436598002503817544551000518214576788142492157481685557866383308565482842233247963833756029666096099113125228563061842843060090251120792676514812221325234570172744814603114246300616302870288424296090426338551455390547783555183410535497239825769585383104945466186324000280251329027510818403861853596155030051450131932964958908963385711072259467490204073952971328837813001080855426824242131313906851913104564592455113743111063324616675137116691069303436435955277900982969888051920421036522062787745895303127852585899461536297619186788366364998861373716723996242118511896254399810500003894886768153653462709814350203099420303587106808812890111933915191033899174383564974627327715179975743514944027965866228394977016185824553969233021169623929997814596320853587719713426753379261433260665808405055787586076950789945831071774070771422592924098597588201042971740075264623159036690468834442446169084171648686566206105195419406979895289211042299740596836132447821883490092363560263542077550722173266202029216232877465217644992974598253307776121047570882199278652478840864139561255321996450019041726145474475343483399771236412567599232131324104698716944120579340662849636649654957463795909487205608306839181794796701333198198155778728766023330365467349336721220046393905966488967077767544454861747422559365680685278692459850442794586360478162390147145900042828416199720267101893347912580963708152364452393659728575854726445201865144821644600227477623312576888398327480527028696708029354958096450467988552298212544522018124775839692810755179100784722168182702202522854447475257730598670543701379304870138524960079373394873016188231080384376076616769246992236519254556878063243495263518258407389593121505608681322213029148247828762286296556755944844785481571895540199101405430201644320964673978144537421855500748411562796918045179744155852023469537623667370791391954776517466362636877272365207036366563797840012612378588555147088636679475491946579852043817722608789113642186701764031094200619041695911076383605931691599001924263449389469097116480790385341352475231852179674173264772297479423245569158066355110405448348067930792771887605636443791669376739698695338468223349852966236035712396334458035930409822753391732633979587615889147276943623161547850424113601192957061587382207068519377043927759286924879114200792804951154771955492861053253645057665063967898996188194436080248292887854672939545311951378881422272209294564478458879734060896389930235313152245936857776682017184965144738388018037325768258477272559927327451889101129061982708227297749028987641014020340214629674547346695238474049677735231898648988697056075336721044440371739925839067217753742336222001777534400165517698346514201231906484005652623460487841277399571463672384992506958253753951214692538088871790962087124980205227874017038936654304583336028309546338436136710921246418417946788897902892930406116889079842420993839706213107919738386901636475597150102349412189961005514425285649140551464400718002661924921345163366279191547888891348434342204304218185992416555881798722348033446548775514986476629333175415839590756483967375395967020426711178350646450466217949646664715039178948121317900134340330370668459898821910642435391035070494380177818713199114916889695333263084657008767631029169866704686522407445681787019675520391253516462751167355494218756265935512895606582729004723240508790151135687630537765977791874904673360626661490729527594267434119947491526465217852702664603116508515125010777534961364501335311739642803552005356656827084356927931153334725613081676564334491392735094162822530860337817476170430039988352207935960145723118435128981778607913072502196290946757427830323312335812303572946167735875601142461851567168078067685072902336999880423799915777320305917346938333069357339843929290825939028076686165762497122866723448835138714506254804763036760810678447212599051078729573920658910427889859060004436367518671156685011664136784501208138295774360826450733485631610933193303903925032038658947959566085600221285944266139556753572304686447672968998863465275929483252840845776916334703987070642658545880111288305466664464446106110728582026940804881031574759682974819232930763522269651029146474132851676564706374711574084097188809174690763564369489122048945266937615187772651264985463344840176687009578721854551355678057375284326820939828299508886239452012523516348607764308253369870857894805592231151829750947383153973822274905079963357539575447202389550603912222102840162183922882359089056801590849038975461662811156426800711741148945652140920312956464686868120507511459135669299463099744701623952853126469883615558508474407502151718841607980177081126459388650692946914687544152825366933566073806049373680520913527810160804885647918024587217067894871936946795904141644608055898958036072900355700368466715652598031947102953759172396551059509247616595801467799996253593432483232994564113436395629512312405490437083603485522223219345667367842127215948664750182248785535034423016387232483545697406037934079014430386115594393918947731012124178686539137908938333714188189473001994858036815667526994384741261162649810213319332732161005838769180003820386036520331833162800757111149897247412331383187482146369183616733521142000492848475759723552645202462630583391760841226543720603501318492309925985671425852413897916415241106081483680254747829054405713275656209644841469638885283338615272503317116979098143580928540733033049111024531665362722479570025298594001352234501346390844701544738122089759819229251572709710385039811592718858432762793542292350240110620649055090767660446235494883500277352539511273836593471283185129585632787120936817080220901730239499220302851125102842318153432820402322046671365265786799097470548870102132561250969245588204912073297350656617959052643192724977757378022616310923808441006605354086877906940718667379778410657821702804353885421873681057802226805462195509530135300778059545077335948919052411926939086994155034956849386891329724296920201614827967013836524772097877124271634299387169045396912639822073443458219450914655798812590722662374989755318954094062183522045896328571357241725577092866477649578303551410098455522349479706538781939000282296728419060088296004233394166747924677222925186214210290552941103670128091669440128419168558696582679451097339081420223578687363480457845476694567944587116049197555791048107929257745657013568131515891641257415964457053016663066106143173535535966570103940076361821107764131411571324208792252519940511208532794695865579116926268731738370886107124407648944811426233602758741326035103252974811463840938441195112354608154499577316944570124293718943430973591157232382742756848607011191019655189249544957273211460868061543799254217933000082973812740356940172932211658436268162995485643488623957646771743879324021260848204280351559796343070932257818830467631975166905968833495973811241625957675285449570457391190272112402508125465949645962050782386197645316710443602099914407862963064708661953013040568375490838380293455498314340683483474263427340965338076279112409727768675628372341630589206753951215232975177758160168738737158808696144306340818830284948010618050039058673379822622595386392147564794991439631266529251296708272092211981011780387976172317548577812589006538411829621323682320973016412503580726886536135964092256713293579627048125274403823808529940975830512335130207008065054710347404687019354754143331942380518272680335969806019169221061834440022887934859133199249483199370598002179169477017056537731906059927629054500476072240306721789201483770009387160982293484176140646499289466726510229436652898124425203297395688226396929395316840490579746698977415208560339464893079620815843804295917989743340103095391230226116050261683740534113763029698719920899340089939178046807161091958405662910736340330168431479936758766839640785490971422069280423209336958897142081331592708861933313732917981842565210582036616123801262551951130762007278656661537563723391930335046141544235866006567700128468572251742619871218674129051972715463765969724263905688770621277078520057928369278189747709489537937983627538173546165738825012607338165108100720108892241248247181351909688927090782416455871092455236900387559089228164771427421203421641640539302282470257768687193849722921905449563834616786328083555400188354774650404817257616786429474419048284859724760717145541348048693121400078204621410225695300104341020886020848643624535555029743309049798614994331603715011166453219885099550233970078622741429432018906902162699593764136112750493908929544699553302159069439082622478334563751314640951773530217921965017343658724736149857401727175492407567029984147916432608690798650551181656556545520480777070268106817357817108959772613369791726852822986388425508139260121920869736473224325996397481754923845348934061758603991301124491141637200299249232036105159745750032517121339666792429790770193935593764671510650865677725906883269114275274148801317943867558666919898190009809127149552262205245688671687476525792200501809564346096218329265270129219867181738654049564502085268784178335162209640137821526885909668021546043750527475003884047781759724911353876195252911537345029202177490993689824027907985024564454284011095958935417868201944695731786677320677413898624329570195857185594729850323806539028551106325528905154867802548202653696618242688855881472235072076362315638965538117617013899704776614699026308702003022460044193637367413560113485149342023179019051994819392962063225326023793648733601897375109904236103097270467307293915991575073989736846565837086174317325347786093193985565280610131033984836007849354329567741374820855738496470201243454329735163884263958494679133947986483798555893327570143498287135813620908468674449908454231125187747143709840718654570466618995514691524071869058517191467563765291726766869528321157400655658503880504387683692316700038234807920551887203546042032047568039733933821560059959050943759621723675404263429383471976202794898248161121905573735180546452113998577345948425346273769200498659265445525668033427920296385737415634105048707917472109794443134532118616665719826654628161532773874351590001681287804036103319429418689547898232751124338692986490212059550740268139984429439633726848856123050921423833582294163690869452871140898594085563722877941550619068389359815866600496581736022253162174222990234546505458537297170177309134691997575416809104296221865677920197842763031400190879932017024269943690307555619090788953265338067143940636741591139514359983510201994415045199503890249398006974675822169315443510826515026224646685526550919520625467140718829573810004195044631677720664708246911826824176603384700520218107609438387743719952813657337444064127252347202797742603401043383877515427464899710001668779994690360176732055730611476565618934885007200511898463534361482461221480799622023876143295943197459971282324969482665027460405165061209829003642244956493520617299217812826511215357868109096372161275118881419064012307470238742646299363466699189469722141041592029557905402120139958790922616814059271018694676148281426280332711459534456497138763777824341537850857453285497292451307805129492205721992150903163393178751030925064186982241927472020836066771949212459460623323988883227490025184621785112818989746959245930989563227109237014024830808770000567300071107050164054662960019136049602689212239484167224350350197946861795961752343147960708661195249265160935842302839092894050926410783324410829711738556048706328715080529874082518531328612032427629307375291607071087171334326007540577480579352853519434591639783685047911216633559568283861233466843199689987621385522201869085844557342336345133154033111963762002631903953991463864574786925287786534920744450510328296926581191485213536067127596633141075096615480721820405721097523064792605694085118818834717868477085822761676528770976573104756265028735443753046520697758122121065197230422202796660130854114843904688981027061513471123345281881218802039765936050151060865273623160863609563032579788530572960791092360870825496960546362230183448498250620251825943141793523322899876215013639556934642096145955800159480141675340999444984574771319429946652465902831394547353616790496701614225187353721470968447422398448286681191564494274586218421585461993008883208516761854957583778743733466182358907123291988706214892342224439828919998062577905296309271840080552801156769230099243665800886938773523341352805999772502505606782152403626066405790694338942479140635852712748709885948167304328105490529334323105490009856390378247789822314476337458068536376079788484361826474266764319568192206929647815840383246666661022897557021711611492302578677434328644137003025615156003094904626480166767082519904357453105294748370331572569101958020318999922009493598809372490531932042481649760612677787220048137874931761251295572761494056754986406384147787879508103171222603116919207070402370524766676936320749500559203575720404649864824625783496938605792961291790657245119322124546039706046319484851009554024908193733026642110993626881307809977952788663692879679060964494951612339291495161095687104198579771714929089467144815815802028401405267281301219446084214264296844305361684100686428166959494756423225318455468460479481702370375330417375608255089627297870133288337679833890967831309264252626699460693538321297254922385692420100254821298777209048899784919542220624052830465199857717516067784257540274998716644442005531004661453277559627326834103322661823523048922021036225815057296255097947896245301626241495648239272911875175638230967787429787217017890015388697148389359791908891396348697094339451983245608114129551783161248061266034196096502115256026917316216192968090895383177474596365359044713159654368933148866070799315078153847958530943935956981969674942525452492948551400831172248439811838062225417755867510819240409365005147341407068652068887999607354357775184885930324805789595191191572295534957840174479719688555281752063099863632683582511993160787886237001935148376006256193411614791109311568534386310653145206700890139771439924293086853786676607729940165521994798134638403076987312780654645390128542270036710855118271044313376617795350773454961716590924475888257279592746121756935342855111763949591225716202575542228274036830936216821388877232074209894441165875795719154517070069946510424552419173702982928982219821986523641224580783446356574585282556564882240763242381530607300193021286149118859017167233349470016874909432002472318164559118064504530101329769117774069691425631068342439633074990033897338713885054872156156006113103227078228923404133997619978784070668097260038556039456916493471004491604743279154051889686256649133359669879889613662731774737269259307027955332834362406089240956870239669545544450024425723147811716686863873073687052907313781887559520281102565817819385266615334245243926352170011490067049374623937467038435503485160137732354009149172551451953696548926360109196217959484643145616121969083696508090136427919039183443851882128108899008204411443789074910181914406118509575235665789799281375682443181524144137230461282469439337715142110362698684324793143287838382415243799594796760303992165732550328163182663568950098242471463580630777882229787148747255273679736280722598070847772127310048999497205475752730986560087388265668281182732654703891366014456286114730703777193093908208937648201960526483122567619950476593232258336944929125797473896308010533798188990356030506424988534406467646340868192491040353620831779532396818657881739576198990722279244761921020993214379130277986952002247095471674659849387614483099064533110748140308704589039562384843368722782264838591456659368156869699017233708622339745851030021791144075141508423257594458077136656984248890197653325502573955787791602193648495753160204244439280994747137888997431714301342049720159206283364074995338542378050677089196355373584779027972309948613575201715184251079317873867852213000091440137322046352832226054128562527200676368052256263648075486041365153920504397753756627365169364726779245050643116650642490712184572890223923052043542074827230362771290732067654086850986663384953720279237554825978434943711658294904913187610696162276720230046310430358190128770179086308895507013097890518853214122186183844860889762499294315305636041035698396591280342896608685773902705660560882195562145241887892545900220809564894313666686158384076056619349907759501419842818369922185182988413361024444655056343115128750285091535109189917330357633604914856324783408594843039088859875692250613043821196857481394808078715596222032769589002385094855744254244518169940839468196889517240402614433500375130176079585065815876658845991774400338242857400850976648869237866232353573728778082983070548079982482608465270485578558202007351420149072965306481449733702518035857500023855563694484025448285328134437754177371949925364032942001180735043402061033020178367722604598158251347357823108966150491696835359109474389183878636054839534720552331762763617372867603824244222976831530911332138214981298454902611017701463606886283918513483506647325702504177537176790241314893294925926933890767854077971739250103819280611167154313858894538219683052866206830498516004460987986265634088748334464180265291164122685690637029419533895518047163801053328862780136090472593139471093769692202906316851649687906748472795662694699682276076927280836881278224770983992793704521169047032826870411450571132166964791787379969555810985818445796821042431942626196104760271235813521948820390549091795869120625433747390465475002668670788889633455002208176797797577581807570652057631995204838424845675235111695258239139806432213653046256986548955027059234861709821089830316346148716740945739285929019151517515718150382621925574991139211746147795199827960772485729095519382370932197569838710688136796108436777096850929623129257993329488938069523710619630787172714680591204278011790586427463059022455207768802293168799143424091798569692163010439474608082017807036123437025208433374262787594212767285304394154092467967690615556804220842041908130577010662462540564207076833419720204446959327199662997635323378947732547239147084282186794516824450726627603005888296653029208958234137897203522970370440994381226999782002142262216530595357571482854130134675783331408343779978428799064937359114880010796957411191361075624939904254124641940828771487558475192341734127211361659340750895614907354669423780195924121193779173580286526314387610995587659872250011747891504848161031831964331794643586153903559968036107156577972598508708581978206613267698583024174783323170400167556241200759698012545793746453712228078766504470595268995483990638617544974153171880179816903262417531139905280352715219367769401890651151571594981693673311593877540279450493655970971952957468077748009197332870064700801110944732420692225383858989543996435394086941761886817472419443780321073864193253336164710027405582675836841541443178474874758959704376376166937271405263221235046755164003953600463013478946832906401348042950079296263408599192513945994950954474469792040389836729148620040750847305883140263741463772611578454482878069806823414755632027646269288441018456863066003064859206008476519398899613398983094608672137096176772445371178165784054508757457862191130829805327456171512299008207652170455188001652632025086734230550247947316345833344176678532432244389424669188650040716045033358294692672675981934289811212981315578265725751602757279563717004599989758446553492456284992050257820457663171537052926145267173251576341860589907639980273304863880208975902773762408436959399792848228164434092015667019017804460696311596938666727475444535916696349762330711749988072313163274444826791391855039657283055250880975232745196129400081070430191278283941798805696414585439343452369725407061513902738984098150324559300847226260844646305251017323594968827328732640969166785602016323445527906409961556776259918132510944471868472399557984746053714453730626497018517310730508354258064721174024213977303415113395870504910793580244236475494214368307562481175835213232635861604108792902352191070413240800275749271064763355708526241129375377006548400299566739452185627951481296247065810999162478528127264829211691116491947560471024565076762290000053113151593030523277205191634507094019675698949919623204892512969409762199096120616211177787265206346194580194249618824920968632357322872442493321876732870263779419614230798488738195856681014400217321071462987841918862712939388051640446263642451451581348870661819086008664855106071392386445815684629636355903428986522007875647870995807633215102974953176825046816469834223761531859684074014895522374755663614942330665236810461582042165991398877314413076661478860832944874607884391999699239966318317332205565379391503923530161900659935044305454075361433846916247392366521373304156510212577068249468936496135151515576307676794699857296470895497954098170859103825638239008074472355384794796153028177147354155517452296186219173294404016819537087463622657855730873641269229314312325235969495947086662840298314344101404223517708245014421607115601948890373962343908523482519859956440670555250256957682254200792249283244886926237639632949361943399223757504167779086462440619497704971486654117918875642434024294274403864246698807539168551140104103454572593794992274951941803894369945936115746884652842204968604650125677131038237062311700720490799318559663925158901031517920367118912961712355472537247024019868148175919257778974885640845947740449737498908963269160369614525022042654705644622742326737204644374074890411774569425585711512517981395839650368949269999122545675732365261469776372604326601685649556960029932664578497131172496392993038500417179897405591775648583019915123186732589227277521408720904792377483016336415282862271834834033913830430822450472161595545540583889968210908834684567229752942878412527606071444242712309606684287339668167897670635448407283851013067294536146940625109058469254901670949154469820015492934203591485736722200695872077574597474894637011889055669840881902595824625763382942112452164900246077081215278987959640405454288336268394720944480573592810137557512729492778651343747945749233900795638843060947890919125356042570251179817674694015587201107214848121113957227930171475921760809161293201337801439004830468125733181017484840662396515318755836558799426593678759721725403689814157954623108144025563705479902802274705157281511275891277286510388203954594820598852279562313680309690292863649677412232181181825883723792370068504195424944423757193525325038261491493837312597727223819339203179160412507304977751283305904740973405688985009546765855336347569589796455523529344012052169258786210031667997561431812782145581518487557256978421793808685009201763069898865847298914412811172078180270088162070774832626431888691395644798473346081178373035494503305050367784856510094967204499930835557920089058182071527595385753297934234608891470481517611324056253578887415616054479716812091536798393638032862365809175969892596479610086844256005314876660554671390510783783966490272537229567569624136995101177062661229143430113039010968662669988330007759737857487824905473741962258542331194741731997839367547359900996227268008633521984094866281558121371442682183753958343939370718171685959478238116440736264478544469016382908480100532194828616168603914210057087287817579059809560395424364526840763194403699424956625156574368781989326210162421433541834430094334155557831900468692817787034852399873920510477866453888349939147216792325828797877361335232669450715558137297041298063326426033897222703676338401233752433027774678895210471126967395781121875668489894331716507178986757641777759739065729275349134969180419275042493469183651917072780997406568357455274034129503302397088584282473020527115515445949785595266683978998130065013624572792881348989615265662036658043371985173294066415595713172678149773430663489299814512123439448595022077500712061024573543632263666997614628025434309147531033559545248303679557902002324605888095897220562757729491988005073889600420884855984223492631836713540002511722099290871733448768245328113917500083765412648718147774104383707862340074787145135442268450107832376257428420334418968763394393291015263470859550560267770940508793485967904717932683508646902504104203396929032830297086742143399658113279893573382080899816444810833495217088457061452553658533714062472811374558536412528537021575805792218311883337549623237713104232774323872241856185506162970329478776031000553954019661545557780269501789157678271985529136970419859166045145338998793321706770154522756542028909290985057312080727034948657935138242279729808877748513035085318254038247007782120486663504203361165263330624137648066033182992097987809470923862360602115311565159560561623109896293323047590631122485013620991963697945422264131388055487357975639485572879508725429142381628525877864704550922798096024131351603430080173196700036008751552793597876939744489787875307079334725523944658437056951707271072231907727814751598566362869024351781053694101933236070600245598207650175936358736415834667300259380531798769712466887853078601165302543083676895590062649003044700641286388759642161336553240979335489092100532813815612782556772343641340513133319150626871284916875404037947587356798706725448891785661979532067148890790382289100634861873830444865965141653785795127196862786488287159052470988780563045652765348729111389802860004204998741295650120924766669076232240944119097836883358539176997351992649610782980194057866800411066459206369793742983913635066972470106163106057030392206482070090372846552092142139996914321599483905665565110758246566793678715560897481025604251945803217710958320024300103597660700418039944215697246239725083576458639431170266455410088611868632404446932365422208706542659849033988076325019860235329963680239537136522177696163865383828427070929981217870196841113940736800328081047714747865946286853664953870870345288522039797728087039175079319598920404504797639097985147743977166622470926904580399426919382844113410519938925648539947750097447633915909210673119921177123589007068810688777076954743337199107181802916330277279311506608368882084699226718924624746147780700339626848292866912285671637862196743975206569141723049046968842231048368017594309299051031584905346843779332421652203675401390164073545315049963811076661414974905576559081607710240056354929956042500001979389951445323919276623451579310927075189171550547835073343611912343932827720340412390224630741967801694886729293269748023578322318076855713217030894552194305325094203888782237981502075371498362162581734596464113069196373300930498130944025900572318677628085541197590560888461594998261270468428484039940541390870951704363391118895764930477596772125170145689704399796726435854937472669336510017375076180793872883054439474966650159561324867930611386616248415575454089312662429433286762301519065363437800465543930670824159816017161122256278050416113963934595371445316418771913121975819941516616778823024014307958058609765745906749866956597521406064769434065864491284236029577026983588434719455950339362159304091607587055236416283565193303306260109820533155377348014078806484914928080588366271190363125006512012703108065894953289216654971923433629270858411917611442066306401549989061640515112296751865400479113261606763215214060213411620053315703515514852251725872843932156167103966239897792169371190586723901794521295724444093528500789139899730390478234450054553271140184798476017070433866139741680262755051605586094496157429242625620799989705142035887447956733024050522551219006392718379481852364673032442408246191941802569150672607291277003313131604032724203004412162677099031647832271341831427008516243349621537007943234989726691992050934805416461377731406412050193280823053838071645634788784128274479923952430946727138998380910231904875174576351576254155971794307171385747800834560918003406808632331436121990982341057074844316052407243302809584373063440791798154791290326411917710831086203335132575190127542699317613562739196462229974614904006031096157428097880388927140911271687062204338442411266652511922643588848346988128592340060301676613948640938492543863612404078289194468407751954640381698883783312274338562308600584487452694912870454245137684431699393383606702517876721502485181675722327441357695117299656167372252276293743454181810340444316872132307623732493278489027503164842412583049882365356128444032194286175203432364933629352087678673348151819426075971615465118517220895498885591271442508164801791929481923696842303459225182330622881667288834219828352975407220694751485697297522665837684977192624721348333899993496580978349100289652550985821223255563188984067186016432355408174841123655034985543313630183999004155168524351170207577405275827498973673098908114552224296387511323048145001075274241960091349227889432202487474062772213731052396294563303540705962578062216318648272776391798560912532740251291186407257038014654889283561964529244057401229194173139714575333500277530152686310252393990307958860255713170888099596102193351709846361837159362035676356222005237011735586459533620499928461765376775409476837776405854019861036333460124111038515596988765420705836639686543566010161144064792264157759366053859247649752294874980959602556043279321737069922440161421764967810533031727542677630821508826555405505866566311197485334989401958291680893381601523789379275508880522211699824361697629953932165927476806077288473499070187273334134410592986558277210743814156032175644212838184746751699169406113308586428002483668662945049317995340451309879507334474894314871365065988797380578218730144908522330486865981112445484646210480023228583033181403579894649613487953881533116755077623174480530657473406798366047477469753181413448740189527630345833412267478794859732201523163520652162809048672516306110866050961044635236452092807175781764496694360628716901539370419502840546167754349104382331618181270136857037360350156357563530960464533938003222845845413288191122429747687843881334874982351270972232202200726637143351287684773299272137477960999736209982412252697733457829739391558213418037069595301936318279084330213830763261253193926656887073330675911669690236100080380145864794658178963304382367780353241359088741675569656291676814392364650313612516975142102048952403351860298998144729032175935897021948245008444160088482719771120219954030451102099811208414778682724420005493432421376905835397827048416121259809586817826220014751980256643620258395885537324625368475027287645555918765906074605301127133310023899181248067796211752929053015787560981798790342611085589744829575529196738522183131157935461314994468139102792200230243193003568381262050817657672872867003048207665604064208095838209205534150594794852930575120394795301494141960627107183062294193373613733029958739026739895969112223641887760738013235063412899362900513428693517525952691873077531266589468298317152813926584761765822086655277253841211959450126328965723985807330141071596111172643853638075122328565880915957951912922452419319575920113440993512838118313256749488970449938286139954370414036244240284431889761550456516069028189326258103308426084907432231288693252296472124844703326507214802476151395221710729714107821547473636036942921816847742276769053623593877323352450722225385121577783092491833994944066152111658072297248738362716415976954021614170725153389846125126860265819512499799445118922597552676434465536720950602016799851849980397115467620383822856336734639597577456180475167111812524007358596716410824566855019455970460706043449042339464114071615249334462704302889124271489247510745506691966200902615132143219653031443705104283601651899222628859711518537844141826082322062784495688519155450986657865688133451262592450746973956955417888575151770175962037085440081117320253294827008460924995007269399887081349414310730080016958368603403188123606266193272620698194479458453964381247527117630521345958298116503135404962138367590813408240901322855531234251293745933280315922842662558607968263200946229149276174128541159117144820162707250703637888841070645843274094969781132975714868574517973690170751735636891079406356930925789222699498870750099004746296350854661028038149579102707097710553210973389307935005279315519787658162978365484422912908581663956107641592027622110056566327848341425386130989784021951722551310948250052932788512200462158044644713345533749936439205108728953221396744046409773151614040691049455870369923251955118659158460125141744442241037266848168889318788063951961303989695064390490953191071981249506869281534864549685462057449880851300682657157802656328768558741160659059611259856723020497748579584396839873591805733062107243056760195830245793152642620869203771745183356190366590416754971105856354994931831441109898237742293081325592557832683649401978648248792826540634270395494799801877396028507405804881032062200320207643330103372357106293404215130464250733221151597312759809658259165005289345532778600780991554766853336527875861027362430834096765520904221940495896850363677895851977673214635614221014979457024423902182418669756562442039048360665373096147163503073807985997157259276948886913328386420229483422224270056652030367519216088003202213688323576828943233730250113213361866335628726187915795877699889706047213961021902394926074491553942367186991399699487074392141552752653040501596141143839702854168461623018494131196272636240090964517870119588947594161635672038780738192112792139540763978545766859145910575887672337352263422047088780991260168540669759955484651926591925608433602948275841306375768656256230998923103092857680759140485212748982057573704587757571421669199025908761569580356041656592589768649166872282851904496510145339213378747935517768184425853923054598068324969633691172625307816022684168499382499665805989904752961166382064258541425598530827070792502364011129633632029805579749908997928372014275572062593951788686727982559789455890348619150121111578917227898640242015509954513976666570410435012612319462387200996384104156683631251546218385817282351784107219829099968798239503538400121167661582255216231955478430950426888700053347845463192063004515228560026310857746637747430236605315662276040880274301216504099100218521922084654946953072510181942812775980029148215478915663976112129249618537897277107886367126582354660055475418332952308227069712457239959385922646927136345091171762056972835231194357658769864739467292902864331615196670572087907889622044951891886944828840844912449615030911921093005976501824901009443469244762204566581310926742829129862758934095676376715161084410543157430633547224091141927390914654139717869756148617336416990181160143202376394354047763581625747851063253132241105778044440043588146300594224449259565758395010309904748870615589120004704513730894918273819882796900587808559827258203625593648753332645078735301899756728135833490487166113990414289612324025012774677291663716200966626104997984763584509091427298800287182035356049253261009671965530403654326074615313295977900279213529286020580053834288303617747940008694273741108026461253810592512293532424522344893496249719520085990183133910179908837489757979639341330708918419386424536160968959240886884275112278104273241879582143363985333987535017432917548488469334469184359655564800287449558990164207140539537754795155379736310911080855140953946222032154663717353562302417451682812923812275713195593120679899135367257972330442306064019345225806079060903477825345259496086663614432196227816055224828815661605475450649235358626453831392272147893729101153154600154069517957902797518410106483183004670268988714850107099597963183454696345926522163002205018210627043029183965527476693269998307202099141491778025365561153773957595160062942328591896895808464373364165681753482250617383380092262025636468259703492178712056007062310113850134971056300077888365891963322510125178889287816763122929031706215990995933871501491841491879805884388334230958136657392066446206116721902784242906494610519481706207802204362685129218771365699127226891890179597796811809183936631520657085649634832729543736700189790385943930581386485529030042240498905881720760690564126143925140493915298241474809420734670700717203480343107027999204277195538578817089066608475505858349000504078896336419452029746021278793626508682719792114122350999381212657107446882031350170294472215759984655700586649377054242184309325710639462377728228323439231119624617746681766320311375437493289693034644245642177431919296184409083959267123535262743077713849429850635706046801987722225019689836530924743638437715281346748755709172498780263887250249294797652644298985242057350410745384342769817146592684255604585264065227112300012370049433667812878030784457017524608174778276453628431972745653364189658535050168620283217634520352879176175982905136337794492887543367586712443719344914887939545816853979207620789274813275214903092900526885976700794324214388484625154644536152329776679862856279252411802561972190715233719768424595179637624583140266216403207884808308936830627922880976464046665221713849794246944058238004546547465899276381430008281143743745274689042659019297330132627291152691426794484163543062991048305971508722041474000188610166566484081322816527444159437986752348224928834766997667378521193790628824450846564155601415799720808777251724503012134124384821180820483325227724286611554214339736114142624550114855033900304425033088736367813744520876373723927243318344865839409378723865209874160995534578361529447925011043978446515402632112675007450677510750731981321338368421272178044271067642143708789964140724435280797710318092697502092967311717033467108169703830115793226373393485511523524014682354069577861109983124606906300276968379336320045841939104904786792138840602816645858754660104731833218055595793616289952769176281093744433381883215062976585285346939199542710538765342966505422263344002603602009077313907930100614947786503616787907746315487019321332564659817082674075720187973176326333541866544689065142214444019214644822044105594698646279783781242577425654717331632367606158277456845534162039586598180729757802271223091721139359056662429749473267010599618509932881359243722043873149349253635941858249349431768776274166308684829126319950198409858927539042568459464684141721528630491673440978175189684192446839500946022517987065846698920757520314207459928393097007896611404527921483732510093982008545914104582455876073759847538946392642414167537539201154602594164564782011448011937489608086519983869272331757035273964506831159631499691596529354593077096642020725713187090249368844504415191466889328943860521441184328797956161690784398691289168605987555288927811114711555565713199531415423724828116954847140461371419860265418003179172442388367115844424599500889439536295257475658974990751599634648527494571737466642049586746382346657470318040351587101569073438030828481286291551127806701789255319579410609767322940108521327290740723748354988428877139953329434082108863612976243584514206149277209514635083298861220447608252297193949928343252914270538211274786086757877936312440335907831710300366239097683946544841561579771706456555300868689976692096520023167458158046196741001119040875730672373096199685993788626336496509712429535887516785536056608318384933829197216804574256161567133462704786479849860963619857640469982569605487939545358569790528596699331431718060550821654369627018326570369591984540352278315664881471043228101216182784951627830476311850238778690272879581300365577182982572249063745136472108418717588896775188315639132407317492612861907675737646634883108782429515341607330917904967588452675003392367262486392607897470398574449521958396071728613506886988641113396369716238176272952764275497422629219302387418746071733542475371529308240727236173921374173294069975423853027192161153110276110759184164814232378283744317966760224979897370440315903335073083292850228913245826890463799467842510387794511684601492760755953562990990144867976512710365343553071415650437646820490039708163798451607924056033674374347237194323871661156302149376681902073667822792846929786029700272304661602319570763488319537795378602605590749636157810184521787409641028885502276885401665927155923394596104267882745086728792155459163977164496033149109564790199046024457776394644797547862074550097989363272792402750017264436319842971842260306311661380645219662682161168562644768952755951736600197067443723683714343264268685908270950766903971604379766316782908860673478947752073415098012403256100397556415631707804021063659328485115982884503119560263106782926317239164384076393359765192346880468859641866803782582807513807642573127004431536792968528857416783042004228746932430370754523290588220229434319951532889938398009502667214401020629039093582149425535158650519347164006884576706699071678054603763935965631258993763630285693747237003216280188096813718218228204418565354942358912088550563425328819462917991869139135428677890346584065944709363561617496116797499056479625596000989682464519011063712350098005622936751549117630658955685263614033565742241811599415363637179157742834056468133243090201635150965105390930079436248553133784194842632002491787241381814769407786710641231901128280275154695895252651153052823368391779519611237048932332264788440801796991812780357606872808326827519322950422598314446173763400626460227105235088717073723375780276780153102627205488617928128155189429067414334937608454560173372502053725485827568064508465086341484552963062084908254086894912308394117188787364526980345032193311416584284524432816654650371018049273758847919248315401785624301734823171294088523935914977087794871638823895330983424730308981118665097083067157570118199219451768421837053536771685097712978611044300906901830387421528155676191704597254296031406765952498457988575016810775674737931441082592388960109350202014693861257029720227670843757510688787268949424755493711771371842220739654541162501713297671828937260648814505410159568848050709276555233278252505795727268613631952378608117308649206847205249383357286424397351372655563450328784991040939647148010257094643452628690823994257483302720964727223840554507793149537460555656039049412488678123492254195680300297657953076410961665643166537363787651483542840897094238471366364897876888263987200401306317215348998508665825866745738975737202075260479851970763100676824643445398809083836861394090930324747674731807425179521040624526823312643748402426122192481422937459521118362031930388087046642765268391348447140674295427587881179230263181195369964321147709889195613966776007701002599494141140375263774589571154461682159562713627053662853975849598456841418818963025644024027924674029008816198276935557085760810164010328828949643542528232690887061336137076018204609739311081926849227365565900196507826768648259778752315654477076889954402622977629352833754872163134543498945501833299999279924006459955321355207815866268491262960975034511624286309419685547244366200951212182761603757537032947803557225006894557878156166324399510676350236598735952566949725546410152371277469559441804423301415484763748534471798566000003512232511909075566058672112625045578018429684864176619791387383379856327464576180078259558262598049397564566569935185941599513052090252310366500402896160441904187552885302318714913099367860238870170468199161364898620184160137491296055725491204682246671953938174279218530861047288518458374377396530644710144500770445958345641617576043331377186603164982502530850317414067240041507144070192375972799137390945258712587985248451697966637773952887394466593165927737253691651496463364685151394167624870563203500036006456167831677887903125981887202230683819899530918587338467552999563329438899828969322579202378318291385990993153814293508386918046415695109692255963120394279371955221676750335576984886346188693509434708486685184025159536929369642512821139288693851472712636901271844727966852309328262183386281864009967108067147396459958093708939811548873745977224212480532260041481868318736655365405098796549131820748364067515503753942701403323598360396734055485048150995132923564128956412172883262328343789356202455205086872541371697704311622233337577559859881219032190302951662172837801911289830146951707134361634391344070344920849300790886018934132370220378738904073487286486991232324674835946144572689849231518032048929944573224495788101924378925386009770038221696401394328973938062164324456848549274270933152329997516435971061173152032794690498177517117067256646091982308385652051587240197758214062703633905536193783626054053469474848133501345896848087453358422466767550751502245081951434013552185429635333237613451332508255832547995623025727685216149319584821417812578149998628631744604595036693497693684388748155741386708780617539850300395331061022579932580811542433697837344510623586880718722334012317622128583154844489851617853574372501985363072579150893389957106446939869876923337352000622456230810159950572124781711660218306550125982309663911930186582562702352348579378845032178592200087675168525291729706124260637738452525930665702267378853586262635020269975386471855856455213186652398754916522472556595383912393740946988276013047913406682596825016222325270539872815362516371539880829593146160452130506199617387309578888883056725837423186046532673678759220024976168996058376228846402958770198141137704342766157869101666725311196124821299318905022806098220579068184876749418587936807872366879057888358394047325339506211015764235444601306501883558624786333640064880697618175754889984209542191528508925564049122539174438279391980532057527407490196973616900282856867748375740425483713002861919727629353419358597376488138211460078061569086867084854449608525517797255612180935448976839286596416840516678553890177931883977901611329027187588446282778335634224664821434318757597460565139297019837513658444513239486253670742801435022009838191238170121108412057604273771250798801232350856907189133506550356782926826928695016479825253849166820916604505149084262459249894854742249773986094473400166133625263733822784585910855711764614958936823252459666126027048214432122544724563328113622112175895584943032164728561906584027688938586731546470167287464034036381633492681143504861925027141679544707449508593254893843782608021361216138854270530872963768503021207658284042622607361438728123361384291979557481548834889104719680956403639374994695492007902570783594587089003879373329776003790679212368257121882584934257445383186915329330855889239017388331999990293849375888424995563845015538791989905504487831540024960407190358838265358713229702976822720674147509126259247256947665507837968806018908091302252668703368595897469921476707286537706097540010420585678923498555978563071854254269567743664852193739906586270438592056095458777305599210823118024746231758215222842856926732620556921102618345015589334626414903937248943489303202510486737751783871268114452068752734841812058300119424460432982347486804634955375764884408084290763544534585916124497813487996445437982243588982675276810449975936977051315219806794693812026290742127480750974054734268276994114059284041431108847757576013508878971071604510403014421406881525073253812633455012952786308177395569111239893649174693295020936664605045280860133980637771243481054654352369816984364803802376313512341472109934297104301395497699545775930881569612693835444524111656501828723295698546536371383185410249475122827025390973277123316909656572035573496841322834129449906664423423783323320920639254502636956075621168606178880268183999166824452329507019617683728358856859647134133608314577262036787239421087667623090252316767802477974798987198650858727745604800925940238137750428309306939627933295254860095987291524715310028276274681565237805552989169133787220282428464508898528404667302477868632485306596107601430253798882279958557075494736939675308457391298890038025069661831210649494197359779782771043918121972584992101426706932538165431861063413942869264717747066509322146524324486197406455548643371230550986698833171956757610747940514589779888113094650421549096393292396824487432504170048028566434340655618242397108258513395183320710278208968280251428003319346880273961807141786917334078680724100507064017052065365821886882666980030783901388946628891524797357393036849882022606738339024001881046638259913066493713572498202396228727980507123431807939373947209897802343189076202407346331991425670523612376801054214873374171810859026690676361009463886564010680692131306673272129948707149649700226804381078153166431851200156901537215597248229854598860306944757539846105350573983631797738874874182679825572911508537975564517001137494537898407450559776818474765609581072061225951042528889344649370953527597406050471109433433782072799324177603086354921308795707429682924547333891079973857064029371019846083561820804345841447333265320166869981043022441651286766861446254972993344625992784092160140888397400527677678303513312475507190303384455377689095767880963049888932474481527766498600197661501470688316412299078991806641703961722769775818567402960915762815684963132077219693489142483711482727215226352725671928676685871494738538304779087252612051084294067344784437042782178562333117938727901127313144396271427367633690496296490239899727042549466602559783780500986066330672881777476575940476369125360283338870345589838467192947039867669578391505540929563029660264887432616121793781250107989739573564405283872747550931229094298149627466401312835043714935798323722072150491109972850205304179624754976831582039288181149357576063309838580610832716365020416976402934214848930819060567727426429397575719598435043420282163315600437878300080087244310870221990015223200493417461482367866148947938550701217504159461319627106229830162214263667859066046744334377780316507660329464367634835499994075299438311304543469564962925011473729335014721704525711226347845659482388213201435162026098850131386578334352809466691357376606696573939489041557253445744509046646355290851173335027774151560730450512624387472653092525713295260720041139397121796554419981853749229966837040029016038389822739586071572980234080205742008961321071933807689106375543323950257468654124659258153413576606565294269172437786609570020991115360264595982295108022872654748314925623016864611167319031092549711985312840935442455912038978814513012603737847623972462657776824433888714354800606609855818716853805185205099135934772115607845026542398391296475618657024588574157979176743721194813417387734722154451302209133697664893509004424008479629941447834678993432376096127196815950809700335670564031609992239544873012224977817436575159336489218348655644278710543279367769478235743068523036085878547894038673246624950803180596598707339370205837727981995917621033792192658970742301904975306377147939791917601245462701619553557364334627551739110108872155982777341340450896918237663518466368746709401602285712237150270087689815366094080679267472439812746129383837957589839903338483748706456391706949676568863447528930060386230477628938100123055804851566869369707468505998608852579415145971938636840363924715915415728227952784283635271418354298393727152390248828160196230622796455950799793109610176564370833888462791206039565660389000968940497355815568882525320413343985800485049708193575196610945862898190080493704995549783639367061892480257666137163857665442623785388073956985272224576604639517568607641913655291770568506242553060918884879596061335692788629184500650540279879675860019648044257214006117216114004138251427931913666196403246765861064377450519629064254919711395013219087612737188632393100448022756681680908116095568346652990426031478927603991837484377382872018388687817178292201779136950782929508716722220570288669714659904279810540081035219506381420282264059939236283625617375085629975195720712013946227993990354134033924657314701493174355326799491837782694239727126943362774498579355376080764536012584794825501875420283973079445251325299394568316012748087960484798219750715748906632868722892631324285311130761613900307908051632073188014622075138166495055679630843850704683118071525188301781885523131280028018008692182346123787749837732962142166397752934499888873192027967587298637240923178791050476045066946967984598187029732510586777066830361867563606544119275796910452597555673002986493576865444312289085815505104672528499122844026837069362013657625130486849424882229423721227547643162180998624335952232987811702451075400120668881951281137470433000988142611550189903202154521253164608118116175886151930279129318374297619544640037785172204599759572704650537535209928447670037982500882401238009056266166645934020651028329198524651186156144103147704411074633809289782923330302828847112293046859872407669551694581371583372204786379396377672019378556375630591248682986663963367880833620233914344326288108981647683985900314454539803259745988227724268882410106377473199385548098367139859391694498390039869802161571692382059274356015673281015196553756002595632407721913416589684211673055214250010924528218612621950490949367488033563113146211255140048297232543578743916936328429634420669514316497852014183776194606623432096483376444222684726525655166653092181909264150778661779234192740389314243853107115832546685186731140756925218374847097881932073005933641862534662536174524857740577522523560337894726320918563515261600087162470184499615435845585486082177980689537230042765935061626974775940850063145786479396646093918239160282142604513431848260591773213149972573176047007897809102555776250458338263420025194269405560668403601467820829215101654618764738340486457848448691683744901652239005952752582866897857917486775979989401791828566505682500302306181756168062571556616399014686652347419467832127085831760323422988232165024639078480004277958990800193148679296806567448721437928915650849570825319851348549315523822955934441191644507736704687887869966963807790582625322522613378950114458128610511153202320224652233310802653939752869048442802312964800543744477641565324947027728092247152580082755125642469542813743874141994876776868463895633985781590764640158787958296697201532428114752251759892891856274106514642631594268373280624695771261187502611381768468611172614798961418722936560938485829440952239470656732558621360860295139883740562825466383641668873309418110026025733750258565991316716336101721515017311762608150091473654787868555380656393093674192801336508559867437969253313419262191436266382451048926100008888831637853175223630440915158343017027139202489296458077747103244910298760278697796455439612976724702752038330555152817746569233136350934039383717069062189928787376985857174297144278108273437714709428683478723634737312744012333892780047761905805372190177447499542665108169268634627221108311072659278686111130256434009261194527658010606179532717691455146731241110287089495869431130446492013812665424404424320524176849299906198492879365508634152846299364958594404738274553122998285831218545874685643105111609392380656860513743206530285467546350806445399812484875317826649276101579767062727363505725283987461296935975948770286776972528727818042512513457585865057031328237090326622516595006346361185268741456803818500710889311279904015526315141412771914392391370622249158993152840639370408750604670753431909464878000069567587159087192697190079652705219522465069823165755575704930876787881173572284772180895569461358689958731451137886889067606449799481834191385357250602799016056779124591625542981828769932808910424146369591714990221511913030380833567511622807247233818694529934367785776600426406844147134118865423582727981294275200991674240177595550388966557081015089612338077623716481667726225661753642351423139109091858986124554783996722517663758299339341641863244232224433001574506821338397480653729739757719187610570130713315950559193812738306721956273116374468701384748173873906554512728720219346482158384064481381844212261564918898111206853293999754665316289016601835218209560892202407337462133359154758023478206416494509621080155159628353217974621224169384143623190846063793335321044636181291701448822069079970925021277875944193219327421107754601551208416808504908876247186184673503139006059697182124019631854996025289742046648444637825058922510371121607807094533846177895967024588101351328324831644666479368637175234761404357030914556448796773831184013290915283606005040652809852595866667210080803599740760548452699698121742007515712967722660041412073423246960240747040851975962262420000768349043919603269611706676976934051880923176473506791814630058247837445878089613444529383252715367968990463021138960850146076957164364166200727633321656567208837265089774078505159334284997296992821870367853889252782993813266890702497359128640145578960873814709164911119982470514946767131921895199984421163954903020326719670330880721022820678414379073626603270174902052014560266637468411316635000678381506976190342622664225704031821942539384806122406859025256622665222601311715774996259682203082964802894574956284138178923802115029955251531395395749877274208246129006819359742064844120404577156125196402925036399379815261778801929277713997960316246090974309587237095356313984684703731754808859228359500532840604121082164545665573161035209329983460124907342843778266726119100306526118411450418995902426743232002474436415210091311797102940119425993561568777996302062537467977630536221607796507303170337765971501497097036681541907792906671855176240634698534596014425418446853692679512604374499395340417318002209787106589696102392939505685532386438181650160182405505409681046457070645399817165495082661971238181320290674690124220544065570982116458842885360473494435531506660007757570656839779013821161078686194990420099661718579629138736958553815073509137371399044866173990996821911478221648973594986168305046195140135834884156616396210910419398996563074904080068839248364230366787088623447291707019131581525168386138349441187765063591595786891167202440535330086742077259573764937886134921064598581858455759778512737111613022757798307210788781766469552574518461419298539453567151119130792837451206722034887251359327792870042835933368715435749947665205901886705698829970713769173307258382022125293539328015684077448820748618081918081330133250753994866635758420870123919843223207925702005806457409783200980150305217283022106655215692537663262922335244487762809533017335533481321047014441175624401220403860770793254132710629282436567298929158703679291058073025112869612658603399269208286663128458106855304225781011551215955242851839173775373263750694127252783096542767840646045863207278618106537079077132389371687677013221460721269857365894909532837271848591608941750550287810658588043480760870600808180912187657294517423236731179140546393259507462636695022649210577824419105220188739753315516333669299374328158239758652495763054002078908934608563350383110756435430977384232641667737188349934856127856780066043500842432478904935845698574326181555336748498312464875015943682104263762228351693613813857342699326239108807218878103508781634721275877437702505080236973467887854454908726764843112836915775348791593437127307030048727797984028346878597134129519726367678665603370357676935469562205854623991494013866176848466151583703847086535311572265032380890569393924272473605650063622914238335100544120640437512568624334823469571960272906712909186185394237048631263074658372024084096205679573149449493084479194207365881167895349559024769032372560595499727211369753981093207916325262236413716310200381102110125904505613495050333771674883310207081717180125329172353749610191841061372294869079613510195313101885655184369404367569857472026231611545289697468349343062924971473904390429424993294883355923553732564948175096127447873962240783620829643493899946009196742195160588436977600007062183385268699637192237987997237878524232615628317741803416274478218858661127871354743252095559560017322807413852544984204429768251242302951133286342507681101439178690573404622726875149868705579608256905509309970409366779370367401992739867671009469725917798144634780063579585079556858333101062839818382215058712275068920911399467757668671523666196757841261094456211807131365080883964449171290627952429914548867175127375364995945110277189277324872047473891046144732762031025043778201133194943470486592135364061459717836330234576855188492663786534521519990657661272214761716974799011677865033599726335728115637828131917638724708795772095469282313712886349868215634335498354158813912161761075731330518327834022845839589631338387622809365787293841651150790121976326051728255596425065447789925673332523699635243546426389778555597708657114350602542526217431771663634205816197955741250768044920380124645575833551934245363524786433206318445465699089513029627139662935638495888565770261225812456626261476503519007442325417537871241298017728245813024367606605486891140988247450257658769804795061433484047216883837882265394653801886861243875081073455921440228455213161338522256739981307297936961580956957014941777888962022405036188872104078419938465961232241514305859093347575509822873017187672168306413305264435568976278144454506428893829939798576351608804722516070392144685041141807380199634699965567745684989892860155578121276079788772345374239735774100297850807976112113031848908140800842629552923869910866191983077135367586976185434951309657543655177013261123550316126617185620899537091392256865816183180884807011787452589338780508030642131244917576029633702730060850807097633467375923848953441518303419256884142125087489011448978040819753103193108044722722437263011625410025438604047035065669845984600267385477187791393949883221748445681110425221638641825449239879589364788369840320754333607087475598315545325889886294225123631538118812220107695161561234317523270806421169499376385573471197373820381077257921855686079799055217486246810065738380238931045275467414886991910543517809116790063160187472872198552625839640942706623169396093937460291408887738776589026045863943139825088215048002138276565048935100858548688802523471898797353573756489078349416398176086094580015686987259315992052274584753779501184596508754284395120403944203224758240547932641093749499988225617603377787673617980004583516887916052220423957911056296286786666445324857964090073654939658992903652373031453508866461001922238033232110660206063403558638681589801209369533620800497244620174360685258118436964500929451423045405075312842590056604929715043021610562263762427680170833688270745685669300164812821404426391972191964736758028259411665917070312033984285232955166152625688227562190332335408353738446974488612479825335140402728022839608540573096529311773406465237200068380383515942084601351286187050244831435158732479837792095514356730967140560606767092367824456408757158656724486291799701790991947885841419541265994911920017482224685367337648443598091835762696916521315370387970349429736976634180433212879424393049041347323110872309582081433461858187097112024120982920783020043949239116824907472940836601483420646121092326851613294177694660249979348732246177830290774928957465937220922429715818594869369099226283451094162720575505591874701861943894375601244172364066183324126278052342626222180030832567311594265485514507809702672809814068393189037119603584026093884388284647284266893361744845900666821104731326689242722294893382328150982742237602003496468401509659298881362072170179201515336182375950000278179540493192605806868370530752117015266983528369884997546888382819434547760127772526524136575521663574131570608643958819788667616759069787572367625594043994476609927092802485229200091838174802507617365570417946607519953740038848932595876540399909009179878442559329088599082023576932365227114693482957793470748407037891083982140695021691813439394489556061755494520876168611572707954788740242739530696057929447136387875857273330749744108441459847124451744026237081794993458110009908450643035405632446953668224278963702226712329668350606700886779548321368057380278188045899205099154841186408905535706095784852082046270923723903737667077513636672827305509391338471957084541425123084645334835899597053554218441005250243950759539380310640669757064330465933993987797189768545021896701302004733560919596348801273952694788646059024136590986676454999276567411794644042034565234132804389348544423056980916092642389884388334872263864021228085050869026445831170990970474762691133670493034424745128943581127161732997135722926574700984245035568696811120375903082224629969672654617772160476560256415050219214457288401140186064362437834197817540569309438076749511520186682731311874836907977861979787737217910703069735159096210716620404667735152300359770690732306105477247557267223020770482650273814417672466210629996156327074308752308969152669918653747298914938635037068291881219112136000684489509232793427928235703721107428703495787808994474157014076564070434782571496641605338368389031775245093409771093471073594996382326875612649385670777068211752686172034657581133322257301158483345136648468660926371858190993197297952139408088234320929259901005859623944050945276728119674789931795175428851353870179256140464708626778504072707213363325283802050379871150008317896924529335013606374446134852982518398828095651001113319598839111262265575280092034673062624204335172783813256582674024784491377538803532335779065630569816350023784810224038974908144409801550137785607817283882046119237098781725347200126217750467670693418098247066358379484051555902534251919154942620502550463786551609247416375969956016321529116204172420617859359859341895213700249931350063754456724117204331629241407969204906228746641556724203403242423963118923899904668306166387453169847180287401807655451267480835284064925307040938244288041731304782285467386935310989359880498395711590367561517647264654305513598364061047673505899518804351244952313586452126440961367751180878941260452172837672655937896466476604339020149088437809232368386661398128896416303790021280522050630178084002773410058311209245890703793165105822890488794495514355380811836511744339067370512885076783299687622730243311880249544189981836298938727543514029961896400841268213707310857992822436616157749489163462854058811598565180333690053772754297998159557567889237769962270207629790783419889473954336254217556733301222745169732606230882388167587707076765873668876559686154582798005729682686030827355303616370452747815813322176406524940221212044503650212802357099145914782500499215811720897290296282470322768999625265552529140503085478341227335035507970909100669972517900001820870236771015310379244646324460643211922252320793858616377797810616240958789658889000193027390009717242368361437024015989347739777711675223745625793613743134653415608991641074464532831080561440088242733807194945332904349867107754722744306568714297290992766343210970638972314629509363785376490847429310623992259368698078544433896547463544133987485079462403602721843794474073313565645991648591318684040513246362751691359710376112355290496897311126201902815759690414892137544219521628729860718955574895042785634295475982575968906272206734611020057525046144386145907301166005477438093269152639459101859516068072361158594366592154805573394979844712528509015851012026878763083885127162185104820275993437946338212500873726355811697130405498063495293762572123984563279116140999138051631971722446467495380140600982925939719217743382860726159185185531514972547839096110788991179210796605525271887504650543027267466175524178575649811822784086934907548021462896239624859332610894592181177133850665548545281708058735452775790018414081234144946124108549151800854563107042336745552542960409560769787228581617378764026632314238329776500938828649837047459813812976761583687148624475066287876654935499853743684986146353796654960323771407777979139815175179535189637641565360052107016924675384370891804532115899015312812468888361564652264937893101747281731039131530914520554990401390233062886522364325876425121820153105328813979301477569886404914696781082116391514971068641156721476638521342757348808855279689127997065741385301264663669391329816660268620352997356158043712374083914132593635126752972331160715324291159756266311565688360762792444436976172833385495095799499881152218601123166426453783915352734836207872031336962204713387232589482173985192044061455887622389612761270866080808279416309677257796156114576493263856513624119558282496736213106974969764502443329084398778913127080485110250655609939253100930140355635382391052949291445549836604279905434410252791610746296336046352747070243375030431150526282979837679272228036931167499202065171563716513716675350599724562144244910496785823960334799576258748455240055475122541758680292128696394561389446239753845062938139532604166795327668670640403586048166856110161049747760227754349114866490026543242635234293967810233339374174651739219364407395691478723735225574722979864037582541612330438510507225600224899945405835403548104769970100304266980375536788510789403147640331591771613618999034988038015554257359277611117952723249703553656340086080606891310423350951702753651009547686307421692081821603264588820740700501725621341756555391193431749723388019745905913815710852623244237754098747122780120471091455201216302577412696281323664216294857767356466908374974257054793184668492629764819525661273373370250036679759977165197399182549106524933857456748219580219501461938417597902883041614124375251618359193726644862940140934363037582501003755833798545630225797472013175032909039640951223417519071305675760569293423458097629545913104808984879693268587848164363151194622310651732120241896439226050314206342835557125063359764499410984630915913538120737178505107903838739006699775963791498031941080855057270053910003784052171062405225466649313932375393158213120375201078006461513512657778457217651655270874471414755789477574104740781300560662384227446827841453045858850081907797278803734473741154679090062193171673595152705738134998530939377813127296396482347849473107282912644450726877166055229316535227751369091542770578220598347737459828096075213639155179274671410113556739717345066612790684422830714988590171985859913098240760527673542653070960384202378936098644757322230648467466323070364717306953833154708558814282308502414511116973021577404358695115603069319525867221348695930101732817304725235702660667660342600731501532368455821087397268025347778228924618464302330108880388477230843600643864944937758331663013751141569539431621583966852966458240907075221311981668742870964224716834719571221637768972868936892677868877345276736445235375040391931839110386683688894545418665643349941125137771924178976075697826159944055979941928603444548948352945249170358988084512829101355868277870232174496093050635342998526838123890918194322117727112683855371489908623190663110263466234216335533161545306497362884528781884343070111236134998724677106484146982803916893374703054618228222023335617072503194831010343498376259061540106715367771627493622079335582575813244459871186651758598462054661681183165581777776756416409426224636821041897862305334671289455807048925703713876397166436238132116820431589059978561119751810171014976410911977428572570667905859012016009588649644536605905303100855143809697327608937867237562987455145515729930173719034421777150083086261795033097032593386131555025369585732172905494885980219744895125346264314358944933704067304647770694966893199628939635722691310503866152581340157967100496431716220747272876555127650390500970528391863961706002524341294064218988370236179045785408279263430475795385693325206840658279996195770459237429264390466630552140189019246404667754495510058448449819003279830725364435470603798639150450127590459252152555221113050388763724144630394105495630705636152981776882175916396051345939858402712423947644729595445156154407727589905642682802018496492812195493725892216099902381838658019429353163171545404333611226435668570885956141089335196713115842728275231210915442155983282543440173866115206791361209409350291942747733477436675939434615711478280015705931723559346296599241794174549641918916252963276733087952237352769589519853097623321693201645047698370578731870832467324405332025825438111399875351574899491319458661681515003041180476210428941927468338625531111618485542297484779596000943886946620330892369774667660661373827863311659769452574814029585509962302598355399916993665108461294658662574041782594735859158525541685998178265771798266567096454002700226061242779380822542741329222963593060226565863832456057508435499774784343101773993674829116893402974492229797064491353536050317937941316022389936483616715373894649677874058140360187637009197289857705866507929177461346692275692710019010384496508034647907057963616029454742240658196865160029675355816463426206431098299064837770643721346457678398103541988829142269111941676625161910369307941884630604929574796954825149995615408466424558260493792234218235884549089329890820593194356272677728881279112675063571384345555107809864269779448698537112221872530264797322243965580681010235336412194700204246950042083193405414284997230937263794263537508902915304565924990816114216736098445268074551076940872221107552451874680341111826697885712410330847776980817895187778270527989903267178862748580947843942002778780576752372376820762495333188358706744287190517194714598965822709290744594913374739654948827764479530165894565051712488181959484426171775624054830510622397517338445103090744748533549324299239987075120044079590368524145552246672303281017358352628224354327001510320461865800823449037950478490481391832227105723971805885438140866305229158449861726868665174698829774779304090207190796953790499190752729029113274066295783504281109872456538696195347256433428370211638219545914244241688314274754405835329921723864829953334598310838048601786813675583756058209857159086216056760915378214872898809723498747122840122198320566309112167762059035672162389538975920339260905177599965150262720472851577280619398015399436856624208188887579109922044882565010162825174926783890002467596376295594858501763530766782052037899175173481309000246563229236967504317515894182774025216404044465462401457618048216588845273894738513533309131269084587913522722715384174191689015717472116791342677847396555752519782952626527767087231205362043188698705311897058564146684584558734415151704268048561801507617546947687489863359947119012921385155979671754465811715775794103317942130205807183800340029064416948491090692765049569355346693712155116532996550811290899422648754763361277851596595507213498851347090852140726512216753180434271514538848154700606768559740289488841186216131659732404805032249124432504292219548860924852329252343989912029331801783833211219891621831066100951151720237376974517386326472230742229374590121859346512572391942610155012013643049657795519837886609658851604119628268375568859340161460165193349758909896375070208765442408006033082873890062489117060598629794390339073998321473409749682670536532758597149596700453557420799030616226960719256794716079038296631913561891091707001541853068182663248282314529765479460720431791308976752398427397860222498234442351465686947268010682643837653366365170678949173358086122672696406953131703639692491072888060646319789147336567621301141098921387934734764610743217043110224345510100404566357754532039574314681833298280968782986310926118176943830863390906138854240267033475365014625909027791762244035768026633209322858190198934133862321634780052631312514584705156923431853624725029517364153283274155726203687884783673756851235876408515832876233701132317111587312636343567292871931930808671135746112926363004604535422718163804705888283146707292145073793085815350839545435370445288304086239934275089208721422125301437029698010903295544797056047667201536624465062480921236960823680842861798672819400645812443893328121781800127667894728133484678657309044829865355899998761860520235990819746392780013615949490400841574446343198267343787597729236424308446665332469600544568205380388522964899345149680343984630839712995660615911727586074512875952256992020006852894670605767696196621944443564973495011109524755621900837870996752562809712602724197961925950420830279192673279334697697777549188018620128618237843539089401180416098620887609910546481661122123112615087388554219624194359601965508461817277203927005336947689076279893553623514232675759855942125430512259743484125242422162253787575789471599846932713977684576457136310692411347807111668326935991049898499593806595115146502063676826931329261653733363531234051515913607426509901268893665993083430325302045086472960242255348254203387952533958116162181072063195817354979246456778157812618342625114147870692993230021673993829011647945908101336134242669812025534774255296434105901594757011545606941343941688079973212839022557286798791344374952801428151273319518223062452029610807967234252135295496101379323206608559457993653384342707031544144570978872252178395547621842429450952735280818698108724549128299209005965315214663999751679154374176219014032679308827732180712289512232866094211894050268503126754937541926787644711710317762769267796462523150614416563812357889282228590676255531264989540795868609335827920139400446943969183867578927333284879310296315211129524606822537805121166308514319113666266611070418280199927775566834607316430511417650869372936778732720467160553741590177339955294235101588638617849614117836579281466530699246167215757426472155931882067607493045364540677259865378209609215401396039589472702137466502658804567020142250964777704745888865202984625168394117461249240508974393035992845017236365125259615964095115581704484833838634605754773915136759155712257700572254358232291487886081935462286789201465240925980877458268784686571270931234194865098297594721025631924693497343957115806755309555115596509172492262430893642035642865908052754934014374164321859610850809105843311612973826457919618191103017939328116870004266664809120074201360266526518463339420253125979146842907909270201354439984902839452883818827418365257062284456951204838288784005994587339511164594170652858781205588237661042834603987613812763100604543108105222405636482146112459852667308549947260627749771025481104072627808288779371052207086212194456705826623222123508987031669732538555652915978916961245376508980277782547377953068757978438410589211377340914600861816206545603133201292654485350600369432708740383213951060327689334862747430284341266946275187137969523320488267491744498935564988716673543821320944917343338798493064603494236253845387868440553214144593282080293333978957137022731609792736118749863007910387837096971888426095741451025921019948835699270772157964406962171149996622383274951512995964136575529204874934867808162819570367621295739101122651366472743206417462583709619482647099756172714039296831376998276757502181637279084611664769795010556011735882776506051815941480408088837074058903585630501722541208360164840804240654319433408689546699984020161769725339026923009692882349279515949184903664435768819079888322062768835922714192651794652515956703696208541737821137048465611599082113814076792296871600966470374001964902283728946645718456948602181712613603846115508523599999502802555027569670505463489049973088720601188672009904844437613929338857547679877352788702817986142986888375608698858162656375791086755798894799565294332856114063466281291241613005646677206357257406149349715862700383541990615047536831659579611487341498451529240460849169360296565315739725616652980706829778926241624787866475472487186118701716185556800892346598521036144152325250174454914715360493583859025614449736147902364877117280925095816033700958505184905068090892007671125211580343621479976031948301584145530530534068233187042381058368484752220798712530379027817014004431239779829856050906520583348218050869798868349181443231797531520328453188272089257538926798602145256569543384210237457504391107285733523913932011143326807893812273596668439111941076783764919574079084912396912149530211722468463002631812640208640947046270303983777008210755547622527210999685710995849068665789716876764981899186872046536441673969976817288011615416613814932616526963515678873188467451241916334061926471517784326493995320974721833779715894404409083058383927504986130046139503257679073153035473596659257151609924898009735073136454611764277215136172357509726734376156694331609061367312761159556779736696342544051942436710969046963347228030577096756990806779763238594712438591119060223998813363572796938410604391114783588106846920700407758681695207096056899775326060096946170979499832371990647860185324402606329837032238863441356867725152652470446684943805493320911449972028011167764264606271243799998851557554277774363416778392404519615668152035877944593057829577876105582534640373895306684295781491070005918014866117140597349737928891075317474296818158510563314542823835478573808437828171654999401708126137605071888687597791781571174780249146681901622938123273883174739154469778569242027049335003769600822275202788454842324964154387296532517361016963665889803756760874929886650669783559633421116529525335242116602067367500008517692664326902719127988945328146491967091545100770384951665660535514060534424339163695561068417988667201214321541967022442069613218318612697329930602981373870985037547875431410233949846522720233704587961659939853254581111020661964280271495400108427904822354319524132151773062989219913974392250185394503794059905326365062531742417816706754070672938837595987528967791521436830254926866707281723905373800427197707789922071986684416552027100367852570202447961017904202173390049258067233282245911972623134635568278082210372116090102113132320658637488645289204317525227177596924948270936853570541612619577832892750035143755894861666826921591580654460773993620404471824918322419286206231291322024452183768009172004626818279646819207509803040745802599668386838379444906965948798638953300162192895724929752687651143581364983622781427816686820900843351631869644445777006425170847308776465510729111212653861351652450411064397398143791088721490341765652103192056362154679707112362078652364123519515751320078192301689371860222178201668450344194135515513575805512815034954130391450414456528732847749841861249010665981552813242787384429316269400327225136659237179211092782968521840884130897711804214907204602394315253953904990116814476056705239309609892644445625758544908029557928304010411308546041800674514801592116609259375270723411276262377871567062987701024347008618658532298099910267279954201309392722969557255484258219434423815642976540046766919841891828954327192894795479531356737705924704254137163193928730486955776765787479159576663069069611100833782746831700750925396470763596428646260334116987030854699974073282915308004567566546949856124579791255097240421189086233322247861700585824635489409552561932562839482017347124756749155833141740741471377925234440270682962470421719236183554483780576360443215756928028823691382282192721710589879450025216989034942618227160906073473914483327634587241425540343584267147453992518107360917260427620880795895145641628323754038350981345078653582367989490700937334543822810784328470636099353932191118022840483156971925165711105085222769619309094073380529894563846641042810649394908545158649620751963945513555599343171715095269474722231926936822992537822722993695575649949976438464184681813522484217645595726811609388933941820286611560615570321247059057991614244887801906863960043437565000796402222236882592147685529494025921285177933825325387679898406732174116000254354736483013830831916647876735348488127538008943777133489975987380014107163068495582305319900342114920623517095864325519021240378904372540450528830748898189984252346906986809521027252242211926889596527518320760273268374263252473254920678048300059430649512658886623455082855504501726225965802223440265136989926464432155272929604246354104123460266266777351249469069253107021772657249363546747621289149400092607891056494152740824598039062907110523979353110869365583146928443473279080888451667000460435463697562073189385763041895342696230465827001321084590510089637080759845879579054880103807859175297829138693517638761226559562016946637405965873343403344861896090917593558632766277687282187418423615745003462020137768647236875312611381368568901149509600526535564091702337195422330113665037026799282626802347476253689879923843266517266492712557613825725493876128208273685065208000570249757934224114349355227051732497461234832431431427716790813567641078109956575685725623076094990557018389486056882329443944776350942990510396194506396782591336771136240147764965889465940411771562270796626742044490046107358381095217112291189394807372219778636141867853846374025861251104232348008705303327654642874668317744542630896659762093957942539544504994378169725058406858938152218440611228869897105849325470016744801340120478544589707723397801058762179382647630325240508643931352796296979485270936769714303381429321091190334001451320858532508030641970467256458127295358260622617080468045041253856290452800254679524725217514439778730991704239559024316804822946782543118012146759441852195433323278514617153587852170145219244928659441061113325078615212248476119667805143575933452969712917778440917880843433793778521785479643933485233150195260036641119346326183161047191326992223395550084435108011645187375400461896284716082868546299354558175188438186227777936702739074365771434153324585745633419002739392166060575834786777874617429029383868074991741296630325039056583337426947501387134656664889730509183914325555025420188769776367634932969167844110811236038821961455318979351520307457222045661058632597499943492378659208762932324238322386172835475292775146616097746758469964173098825606214366268476233177348547001093462718917345537301668244081388961710304612046847592517581997527634158573450492620600381567748383306198128521053099766871552526011813272167655933955432369085547633780180988129846033997255445582329071752377652985376326850299475198198096997876183798770609589855232420680314130392487246369426181879238844331272235087381819437661367223380580143738912362028582732865352262144088924676486818877942720297161252383016708791458521781822280234851885145299119969348978880115298439189830073738892236424164927342087146702512997899990609224670058300119143247108422481041105272452058080889469654798267116827828343417957093921834877751984636342675599161983468679648697965494340698149261247685233085771797760948976614893355128490535206410156156386996139883765463481283583030319720525238072724750931982405402784774184125411956218531038465603088601681305385849428206118924862749552302992560361512225228865802239850268208792001450122095732294021891541693905820649493800055349911059286651855786893151090116206127564054335892782885035459181777358426114431842317519391190408016924675426763054829049180115125812468010115722218799937240167980471950395719943860588471439995396934944575208208694055017325569923669197343841321377010520994238059107969989152829916205633326601777063643193907522729079827744363296486287480684139303218386292915974310317854397555882987004902668528248168447089536663270359977406391767781093142799084502072580989656630061380716571808082540449815619298620059685078842823822458442451305511373149503143199018952681583928987281528524971661572729355906596958116313493246311455098264683368714098486520582056676971440824722008330474909791945798138853641937889780312725005648863467384535531290909729334876515552280276527197543054975170881323710295103194314190299557863650916102139144718975177237829044098628952918752964764205410709448129406137052046910495280093631200638634513310446487655468921414578236120271832446651951626181297541011474773449140799899245386870795814683859964040499907341604269357154873764901238253645567247717121439789868744630438501513321441457553451301235187697595952979900122458667794143199147164097965819423218471720928689365724566374038712660335531672436317234438910588074063304397159733712618057812104054614380203282068937566737543572234040541614457632230659071413209569995534348791874333227118165977368316836063022970462334604166986674755193370128234434778542075510125985996289546965685545559836048860768092262843012564863924630948480469171314453508962776712511293633285379097909841011353829001059498409472596271500062382005398299974363771595394534605262334147402115160279144987035551442845849770060983801949363521580146867609956492497960226024350603110861468858959764721449306345649804814517608796864263973923288308051851980107982323179757029502223829842194639669225623414578065857835020985428651863315942742216972600755364098570173356352025291732221131801320002295199684025491712002320770811689126242900335628416631235676402813046255377604500639784023437300638332754486516064123806585020081837107353305675358735667405674430014660200212431739622923580493893813584176903238377414117157915032173015559827080769408694810039135121183102654630203038617769336993198887885884244143031518353785917778666343503598705604109566115953532738392098897248993920166247918088326006133221614395937239298703241302201266229481612614589807054481418035063851554519334551211652160579148945625463435387486643352133055695908129135212194464051445300461211916947875328258710076285845562815946502447945625214816150134906710926458998535641428464028219518466070375670127261579276412502861442818062493202308019500638659032302442245275098407790354496057613103950270689196377312924731026903968351641988045901557581862012450010964495198724570984641072876170728134796397765852261251881014539865632932104679726951047969665182922966817730363635903361557892893761579989634090316228392404942955451443605780277659954591571871752348000508400751820430208906453653519340522412853336617310366426100317566372585918933762004965512120417069397477711570365469705985558146394771299767202052575911875910017606049971553821136282407983047310781921526976207602318226553221939104917601215829681018731895480043086136037470940486598322654336432148472164665820535111604605957097381128372097799199257177055018340616596378954225105736824176540284773633476752472499484191962544416546307361274308754896039331031647727261296100808012116789414832453873250823664576492796819472618810630882228386731225785166774183026108737359498313281498271430028667856443513429012483479279420360626692024877743144160238669640152611533220145825920880413087190318033375827849156101655852386179705449540448975216084429414856569503420800107596146534266091151858261891887382044048018351341373111835992400656867658226386952359753355793368800185344926378733490167977204849271906543635902336830097435319450632414335161763855403270087862888214968018949195420681135509338686015470432801603594933983897268379300908573349490515310690116486867652169629845731601935869598509945249513307478315566185279606094535159640889971773496554680111730465346047541313844220094350829741511895943803705301800956841322642674490623997660659497397809036017267395278204522150612931294894181137344975837797994907145664043170197075450028408412818730044731367239401083792808155240975157159269480290357691370700930220762490604145731496570093469311508987896832893342258893610342591199746130066899046822009824800770121796208338888331578361299653289949929654933772536655197664150847356201641053464092634098789529902193934991430008229051668716885808930859209992415978120133688530290033101320929353356775723621771318910103343021399186537913280437585378144114445311301733338631964768706144113146523058614995341551727998699853889113702754624410378326203094275209147369323788035737478136805886284811459556469645546497009709609777584429751845722053674599014881214766385765965142840334538497901102435986620838833435823822192167986510646436863215234870015635334671001225614591533985743188543101354209340335488150370486012951841344619588013922876695044593038519990017116512883695894977077384731256630178110763965371090897230403320247125599680450642785534800303965574299649157688850770941504187306574199665881719966582508144974417964465053474220766397340585463075095383086718639525462506753034611995161536798530758081647734081747056345422692374410288595536126133451098570462598729523869416258229633810727025218516710346047489571449350156120809959075996895844404799298647440126143384952613275593499631169703585671159088276360387506324774305141445971181840271409789376201657772391888440204047478706330893682559769476641934164541997968950712460260134490448984328206634505378552351622132569615636871485399425765898458372260533137936363761175868777929790170216088514716002543168816498790037030777839696022477973167648970438061282961409144550276882661549567343509578075157992468972206777789499548991635202791355286499549721770446334658705771445390984306890396916782717418144565078655120909238441919796319814276084907537519206437359417533044136181443442995154524908871810262811425470433163461449926099187877375203514989877703983626955864088534514754917547193564035973518545509497425993643016022983821948873793026754894614462047122752928156834329549554590091477179736022709232243462989038229713328089973757667546206330361271379235610625251611763775569760164170800636680736550583760881245336845986357329820522665591645346258667312117610248318820173358751054394614906413117080486281868481070033702071649723690912611773640239080769164368844726768534744084348682753743434610731795749371585246492777583640875776199705581744929417651409250708921624200646145776033924161454749262609875257619464845578836738117628278001847774101637141445630526993622193243369798455262422156861230014786401120958077171632081844041705044183186119494550523993591164041143317038760654065195513803651374112573403514710358921983473373265233506985147352492042473730011511945284746366073024491444230714246586014659221668572656876663039830459706395313154868752589073553629870402227776476133270120688172807683984504220824219507371668633742822006847924869019482892172720288329409624740146739052010369489014024785276362611690071197443935595310571554907026385885468543223983171340995482529749864707885275097094759013833297349283175532187436209107440511344348746323668276009592952097831342440301684436722987976798399724678069506704350145169884201722179220718956598257126334274079465549488917703467607878657184289373120259320991892120527583324197015779134362609927320055467585014822261249436233444261642162536472803492644619524114264633508280209065924319238791694059061142804186605350035377928128801752772274994481014774801825782280619090754125208238461598452085438986937259640053206143911525643190173855916925427933165061056967086166252386571105675422343918728424150443878419702760638364782990226025040045203522000289157028653967802221035851829679287747937603002725127739817981732215824803545586677767236656863320624184305560417199356125282602287930138565000544730160229389624963452387008557435083784640517548154144516002107408543538067521544564598390508795948550490955582825878454320095964886185176340988486864476516936180389715164821136120033174152450921358321965750260756534102486772526075257914035792619748982913463839652667193885815373007547577979450244627244380671104559489059674737794671423101295435194829193838167566456813998191431706847745285473237076930605186442839250096901816494727163041594759745024769179450453830919365444141209492315669030465198341268502207028595398265543757853873482805179736287088347375015726455755201011159399573373123392554494460575539056881024654178350719018675114725482880475210695430983283464931144059538874716457921686791893991342074836711018203460837025955967667913046224067955200982185284039470307158817097566345586426292813221996096165723815902731477058242961682971885983773954421472319414849090449159245337851032210112800413612525617334714781921243588040906860995751454809867060047546749953286294975516258366496076883016756131903207745028201843547633058404774617990334315748159441465295401914442731749631189034090293249460056286647962830324773647225624607198900583787834363661099586086505099852868737319114873771359421125805604616695569280280041927883631909245685442285533619697821597852578772154088429121974345735068214099975252224260730869559677637524078467334632457240330586041923568768491179343126065306579586322052410226299130381341992167010702872452522631695787639569077222271162124555421789791938066948843702288891633435517246722310810393943310042578902219620941788286123097075192118583366332745598746568958419627990493112689891449924050835110882402339777925762601067942450164122678599700963258469353946730214782233993023267218120007552739614762379714172025403884347653380621616575054297937533888178720370245576910411181216989618649481996118855671018993583548577976135309457656357066487692582091730349688330603700789453575226304071327498527157736110148180702250778617771656285000111086300005871098018375345718786768041942124112775269808127415346640086353216720824221922898130616050727474272023835529371344396354013938968655377649816103614016585688971661316205840473888148072734381798103473780017628437007373555053438860812069404435943326564053246159134721402556994208778751842508406260916551320581915939329307621655607418464372245654722003399239061858941639505439914705811488527827220486562909083308955711728599496357347848147020731142264058921557119501741681814194457204521384291634857190456971385992434525645908755595224996367870148033965488928925591241271738086914376358870062833165428885899549127975043557625478776055306388226661771961566409127584077550458684332078976490497600342835196025116000144087307543513005582054017718729932523125477840865645987272546354541510180171903618882080684943522118953486355712227830384917610469253361146731300908178706073811750573382152414527421238387119641659132038831819313219617000990842174038256212726366280245112665746963550918789380499682281641897941040216887683303000722433205245721175043496465994866282234556961019660698034433197727238360987746253910159411066193067427032280596961993564944357062573140019074181948909629378935622122363222147460976312273730498198842207558344181754960862844654971927857832495989931845031791258838012376712098442919431122556867449166784989757420799778692014035697079019036507741347555854655153307444594184148100601915621277590181034385081787073833888349083879618388110887670009600623274485785586606746750843398040679759629756669501148790522703592410450935699745565976222186326765996408154448857147351373745648671924212343323743465941187505465291139699566007516718135826104346463906867948009262128396571644008093591177235912414397673123919245320807453304967137007133863870659218436993622729528358048697162598319057424790573811322761552971671290669269170446892589815176018445036484403814680262099823572895224121755806926893026850707919994620288966949893515120850080180942896082496776199234470577720742795475839058906362778766175791200069815061499949371940797630958546178913194557873878697399660635255358348986557635875764799274074140407564327966078393171510676319416745346368451793198049832922126014084904641470239060148379315108991401805184913835740568393469875452879982751874304648148862796585964948409974676263356458525796769067993891948160700777589393436910500971607716009039300130901239455174614255579775440915305103201952933493392930176423038762555676776942641885930809672266013785019262269260729625190255891281347582860818462661141778947323605058593881503269765760134500880579314988758095533371541291000853480542513838062368692736721783859746589273194805148308209961140544616581362129016125091408331305509851278597482900157438100821958389613315265764819099373666664157403657141083889294113928736331818295646081616335690259222343018901550734123642035250196629890279591719458258772807324281276655048889081214113921279934768490372961283294872918724696699864674744868433010242188049361664536786667992514181469375753108321574691054089556717880742084486560556773753510096034578192355034471956784020736944855978749001078011525867042386308532791321102549143816388303665057720413464765855126147205662285862691340483539696011682493899932795856542632376096690464034346189369852966355388352416082917848629656768948094255174098757141130502439935956009461923237960926702882728931235830080600981469580354967755219657830314255255378550684827295687901534014806919094166988016869737937064950502140204984250155349319374734588076705155712363503446455439571597644043518802715254173624948925144158212581845077737184958176940420769193236343137591843382730568333109279377103124187643482979102846259019578602159923832943092068704353342299063962559248124464031217642387577425590880560904905743650436600646220799135920414030466990841775889909629429456025678224781461014755692309433516548417937886572014202006181512090848065406088986857975836958781256427942256281152379605432723297231178041737804504758546577711186459717731872846390416784015659314916733613984685370062120823204578544336558907997896555014612497599430441747817675062426266887054840532898057102014723092782734272086341524198629351762859733721427208344236428270571571515935178105165123264133830021627586318408337306326037369829016124027248292910717131756075530970715467215535886209576946885627221890130941832912398698592712408336247791032041218840112327015895731363116102099568363182931569502009923102324640431904832384503310038015092983179644281085476490639461019179790364788919823184850124586713536409507572797842713357141107433789256172990353943864970888372210208408245726460813833132214968711749951614989529719078493006556959762626246329416182592501774318487192304254953539778095555840621016971868829965483104493168121719479634774601184286787458229508213455660255411296740416196373911742702277164090608471580831704622232848628318996302943248264192754795251234275891844922936491143669753838165368562906099933294470232280269456132452660874395497182794342144492375085758716368290808621009718273364616078809302294494384004294483477236549593059471183430049774725313518771340223555278934451831966213342448487894373675289996026414620115002974357313207645499160186443190159949937735476424461744332955786001221373343763310529355593146184440060854207971710619321470596602461158364346958284524506972484872344113625457194783447675183986092459726467385137664973264061327046344163385248435217732620809923670319554341221656548289550523239086969101248473982158966949427662651769293015207385581366393898449305541665638779936884556367683229298068943963119425350664583744341597510773809702974728582706014450669908389559747727810142237866173861521535678277426100094844556413357382330395364764014998661042321321837486814261714640988467671291883493739599702728048094406937821139690168475206803403749733108058883056869412002538911015210050360388772590983728683954699738184952801539735879795853629400526175257844527158045565427464299364915987639305011361640821360293502484102073274674161467563224979672645556731462663437127763105106925614614900186669984479050296042147219418213987739272250802889509815847751590111842297737767652020030996605292493650517432694226943347343701030163483155996812416447910130156199857984175134122146088026116861921697966146484203318980625333722752970075580666625223956854611645901203657573005305679447359868135415412886638017585992509919703610765188965351023580483607632751569981748482759298455815238326222916509766048306342010458735142363929743035301892436199139933316128243948584783761693601340447893469432144159273618677149818224184784919858587017613165159938483753432178070664852861927748811016728844773991237899376285662982973728905889727197024636450717152844313105494036883182221219304177051990267087928191203546972730627802568963686984694327213390365282787312146897355235656912203575776556454991041886542741286489611884995215522848779543670074846845181268810066658281784760222872184447519311233493188375939814853290921630106920127646219158435991038859711118355282959370132963615827093796104771019515169483891757427949109276924363479571360588453016812528401808759784276399618708070585375751020908136836343176523531730905356009835953480832990375607713295759925067349288166316834015737943841213885562988610800074380225594053399115628577711659247906549670797997539662143950331071190412494203764924256429152351664053175016732352888929191993780283581930133893152689510728229489589180647974995465872539880488077817627508964486733510843708236113731121717072169371656578753449276118679266356840197547439060044672538263577799201430967207457124939601912181270546968665019516645250313102756905375950174564216728278807900939271862714004024632327880540186159588020687154424742399782037330032946357725697550014879539703693523579449494354369128969508941546391587063647153629696455945350232603631363044461935219468663617313217019460736451659632177632404241756742130120538483966987401727701425847249421374318092376380430523480915798748132698378519258416925545435389132444371069728080542058696601311152165242952815340934349986858095994678650542319710410483778428966670146996796062978542817600408037554149401173479681209383683097420491776462795266022106179247757513109355216155455245032284559793727338948345156461675009799261472459089253413064353369916498269189152340664245498197571793024019304130318985361546015923186244266317137744341759338021910815910871944412242175880510075191251743953301102790051068137329718072181881333344595350128575834925536576046278155536166722596171475310983009059117278968537883054197221215245352231825261646140480073495281900358189431055226933450175202491588201273614401443043613012546511656193071087522976678295800743033327480767392639509765793061460312311457996028879926108774843626892595489380601907447343912735942692063582477689414148414855905375832885474849303578172704930323270056616658794985114418685317620800802135414047920714490061296339913355604039770388548495771022913145090989335661704847562414437957859411691050951569552563833216651630857821659596367953001540044524878540038394322540691051685484286274781929532787913516888936141202710178427464227875902760751082281820084664566705555662743495092417082789181494078052541170276410189304220170266250213916369836700305546637861411541330717025908389391389954424609966822947716798974563373282991691688564790674608042016877654942289398370770831007383718551307064450905304107194489957379795279235595322344691449066011377535605414417542164414633105574285170481421469312894841180057709575157384855399746038134961387713286208648003204641580521372031635682696525576297616569053510514716987674807331911163165428302746983091904769765328060602537814077631428116175258118339944220859287191803901779840496719050192526053049822519303276892956625931660719894044598646334504024782991225168350574998512730012006939577573218874200861696560949517609463551319211440413654152798708045089114495235368713951162131987947749962074705409671405162213775055959328106588047839116523240140899049268931726599281992049231760276049092565292232647698983560065964557006145434769114637611399376624460355416187687103081720824647504513419150683455125510278428337460204384504974068687722469684304054566388885975991354455365777810654700131091802156234343203112762066184988804288082218377808123617820841606091757753379016894908970453416082103198738811624585214034057443296746960038926431007813429675027695542486000612806703534194563865032901681014459118561800719067209587954726992365455512065556858460119486744714075527904928231499678621792461538050508072431466314736463843505244022879735252025807760865451689164304220601425916501069811891463773587168883589646267559506656810038156376210455344370538709643394582035546922422246659994444908988575089141144809649430514316477717942342276284854332875124479033139875171291808244251676563550135858435426205227855322104014956086861631046077699697749523263660108419372581576520226238854417660929080042470632902840831259655727025423341000467891844949021129374092107720718581281663365928882853012181620588670124121811251291302559787084262677353180816187446583347401591147045999760768236758069838931134293116052247806523910820042640996749925199086144837193028301738271509667063297531479315291314041489894257517240856900147390851629999774642033657507772585641180772401579295065615233809441371070718039522817354551263334809508005193922998686561333519843581575771858798410991173431807897491765002329411783816159737716503547269577715622603933648454297996137584284226927305418079360013415971162987091571275797453954978588879852893774950879430963361971366943725973727180796847435760924407101579288969778299055862890900518973826396280199519009585935375624470122637639308242764773301971100884371839546491007906618866311694236395633152566740566686260434435789519715205862638279155193020224573451111257104174297793780038360228270375323122347531766160945794888773066053604127232646386292449882920500735925028533134089923286048830988883118076186082334016668652592758919707169466902717929421113502426671745918973601231052825879499603277561426651059825111944076555493520160015670084779354561854863622999651559905071154624149132993162145171047110012084851929772683942760490440614237012428992182517124930222138746310264975990496211195302844574620462442952371025387731053317424037217440930992095634311585072150716848197633004569555596861197661487236333818998874301189091073414836431571366407258040752892500443740832956619375007490405889250817306036486669272082474240108398887389137510597843705837041568356007059441705071624845849871004377450900492829482279214925067120205790248043038925556366483904367805363390287917156106606855453829727793327127773439429227669653877460490142440888553322483897801337708917865259775574714995880327158560695061278627240558041751375790806975737484755338593935658765429829863420944173715886735196336221061575556156051113646136776551348076954843266738954151151263305821562954947645796923663758120572696915467299839238054849680340518634070262933999140574830416467596618333375986226183688426523326251050518133934445811109990510783175157079327897817259970971030032770618844567269827734397341252089264955067709439742971310321027908392605326478830971131595201084503708686775001772308170110940824406512115826661247317598862220540439135024892768022237166440340296884865478686239450337347405546332135213604953871266806905064411971425178806717291471983978956352416037135296016844056543386465083925658900008110452315028125014724472155487510443229911800404872756220702653528525938233941942986683535867311165012674904540595733428467292794268497190980678719437496873136602045471819695684637933239455567745282179538977258010495198089131510673923867373270515513846893653124913688969557172580821525566269728642575612991210175344159791129430857889262367829343717773955179880966685457744107224593314775955536479938802434234115454535453629654633426356142216190786510424771567921530429688316783308396377679393540675427103771627244270227676998869411283161890902863352332491006387228697379034397437381597141975812542067811801381125338670870942614778474040533654344125118075203852359594419341465667870247071304828304746243982436525658152581889625389030711278494603329719808275310420230712086242996409909073073640606805118132021866401322903101883667025040707887303099765557137159302949229873695481592516868871866580601218994700184859894355350797473024730537130331216711202308478705502961858346137477980564154590242434360007677807757731710476052704763751626509932943930540697877482564627187036491294903833573277432170705396669255351508361719387670109233670348118354226184778668752315695670880986916744885946970414355185668881812555569514568940207938890667723005697919321699775936095247109691630836846964629950595055819170378742494347703724850234823344356528482699967460828997809651174933859961689553121645093686337171966371596295663193745504465024670220033132592410241841851024302923580827109493464265939163592619443460652757637289422792204091241367974165005061883669221853724664508722297555754015365744374998805738293943943841783384260482109013204077094513662740379179007170880878386135816578935745420047095100517697853616250898494569381586470610522630867350065807982973381754179657561080013657934897359735875501514718756721797908970826010704367190934994399131401662359356205973136141786756312850705633332849681862732314121255133825357081352584913867777733293366198600445078866424870382439177483888125960634156380743164800213064629938052358680747419886162912868284943764813556660392820113149179389819089264945837896594619004582110069198488132859301481651121147850199789940628041254029857298524137535974633699911222412989831954148826319929660859590437789557999764975117791946638609597566974853722549006398474395931459082661142107961199306487028481351850477833368699390164682146638635121968654984924369124370673586183071100707234375709772492957812263744136775723602653257811376771599793186267089752713228587837160377491400496409760981943248876609657423073150412010737503171061804858452731496660207485769071268148303787722668132459623247071344776087121967821867217792963310438447417146977996064091530525227583676715152646567723277268100133478509640217270150813716047414122130453672908368317364031780843957516422584318087737804968494383795074142562136945066989633180219981790926128065817691485755206331279883957240853073166910563103671308901285510388462632378712690399819813765432516430054997926969348995917774499434015006126335443879575545974578799298971907012331621742748513450363934451124770962949729817418046469676711797855907281275719257153893079523745777451159504030574139986782502022085883296423807232726515818130421189306506871123365220115597744086628546780160515897260577509757253687958435774305552607259512464520615307234692856669174171920716499826904909592573591500040219041094651874314424309854223975206852830542118860379783601174603396915401663922352194636219824813269600923096756035929599046563621949304285948096816149016220848587137679826785641769228665832878645825786794337728095834888314887966371899967818207355940002577300452684421417361252973254701678344790882933641303922070302223130922672520895906003387979795965139352120242522093322231950862375862383346611682199337813518126153136564036826558761534837128249917785631271156827536475838903138353020381567825309224744279313908396682729049335459872975442009863277309312741657292685748910740557422526128942628606992205223231892330975885380689705886821050206327690360972251390036024906679994759680927022289290142943905049826954029583727363908200018231885330907636942620627517254741317192749526558820280994463838536360248741244017877453845583147651096653304757636460746567420508553012158023950783745459627065780583744032921348430851198302699309247100304287358945589205875457790258787192712479101834975850931268686497794781933121598316737041358322370345681139230015942542490595688933347642502981968915489336281247145232673719344563343681002362619120983341195339118497781209222121630070896056178466276049515230697335154181964817950694379723152898762338514481725134865471707227972464285167584460483417957250401780656997982724809736191075000756515983031391180700136559844823012047120711411534636406446791320716249071989545166241542006495934233609457448906226316033208038954462985261761631876361323738747793318973581561301582105405485052635094593604414529272932732277061701228259962438320754166558079739123242837980899104195349691326368740203325515708766271687189991228352421385514532812786829618535330179139114168834007280620996812174122182511147036519475447293179212167225439174805077725078584343844190902623249771506337080777576124283355566162744304720214551355983992667456669461352053596011201156755328562917090481704608605404905149425368417812353430249311494497335321951529770280363072096087368622014544403215727482804557494539280079433966226506613851781905495271367498892610676466706238463789965328894879283382097209725472985480482565479135861053569058745212810500359383499423015083919425069983775661863214161201657818418060543073252865502715852946954538193829921173554101549205135433779414478185712221477917015194891957854159722256703134048640292931759128651238281833716851495534205773613995814225925561125990040348594626607066064367083181253680953276905208436208592065311650163315226129662963877341303755776224645828990497916985032899964673505075231916362657869279444260465645571561405832817773817560268818949720747659982878789061814493641751137650256450253593657711151924843823267454114570710589897741124974930667853680759940152003579602346783290243142206648902050430429323468647685083238061761467061434558267343969546835843290439531829752188115653045178910148059887298694201599434819091273391892616159537377441324394846945363742798868626749026310178232327592651828569950050300186206161419227241378186853336091873457553571290973996818965355151714636150855835330176010281350312777838266067608291162744169155737193770253090887272444119115305910749174527851540696088079429499023576543240026785557299395761425530139274825371128154553763533811350376439686157730337689112419513976059158045556569785892909481055860590315149517002627825452356543956051457415146780144794272743320577590268387735276961276993568629966162368978944826077448465154668980364904231359507740592909885441249040837829225817255215206183376515647758193672804398777057031721768865807059592175773367339274743352066905985951298062121526754320868783801324197709445883089277152855503980125046404939738500826274982882627712695078069171227282825713861638379831903882268640220597719523331489117139800230459612193794027544623078780076346956777751046640394808951153516535285449376681705173472375756571154616700838813637252914629763261922671349686031824921157253831008677388358841554255167831597480796321048808780130999497705804628459763944310662697900138209742064172977493212416856338659651875651174835218845544003938400306847670203044887624355445969252965800939214566880157248825024961397003905852517985122894261159463449336389435212171534537043513456135061103983148612836950191590121584017427719089833120954114460670696668706802631116345764091140627569116665738828758271147196394247521587649720729885890522727512324373519701559822359483557482819447949851159423237902592043523075540394596196822161546625876133830461487624162152468694700430000198980045126898701096426366080850874430766520468310201393597955260039817888784224375979781337025124206366077082253759225339245249666494634389999282039863123453230533148940570304105872366335527142516007535109714344929772722461633845458186343266378079889200737063667855099950020156772865677590082792388258561423758299080537373226540324485454634306417279729846496621996398128719103482202337981252866120552230738911886910161226855235104516698526738519313004152844129370859002051316564296591720864530998814387539590332705921997786106933660314818470940992032550905503497185440969749048558574909978804756782914346404721261409299455436594401375344991139529436834913834841295910779205453360185139653251762870599526770482586143564290204609666488148842601422853840167405328871360646346668064606811888514247984912834503168890134350650682693851434790520095089253408775716052545638556370079744341838321002397907487605237075273918954600576796971987303361060187180613125362202853471059724346934271319561379967725964996895880002284717030712830049905561820096474091086001696615269881067589631751778093184263507204911123428667750131738974011930054715803139635839529612741523457796108684572314388591679300350023391483401447088878180638710945623864019978617734392045273743943420579918134094662886917659219932192347588478888160418257667298905106211771305031551545639123441357553048678896269853846186069681914834644510357277829066451574994071943010493004393290484137467767674778898635421494494512946115206579694520689822771225196091548930247541494855665185164687929175353278347081075582874255219325874228127576965083906589465360132722353720599719617178391327652429160905156757734797223520619490010923507595421069682043114547825249828392889638445397652740656265656489302778001939584344563109667350088430970414400181891197428413909885725768963242594660091945753616066536758160670996592107784745179602759437434198340438220147220031389335390819756521261882957265248750442916176892366428365497725636101781041772634523473042233975664976849594736301404371163696571308823847922974249028803581338319975349004544485229080796007734669955496247595764253042405327236873491388071049560218750311618604186025312247910197203640437560136677043527247350183587340041089032620495701388598738325939923399335545067216497674652567376416823293751640582843230199167771374929750588161126517924271141204201149903776816634130815641670213309567566129153372844902990872062357932744663713320602413783835586977129533497439718432108203996426405481967158832249845301912090032950153412411611060741849651577060570646378340139741515941439199969112658326434949836377149653612534581858022067356896526500001575098076570242650173365346108561141178720252437191191172916292938050289394412889073575161685597254393645010291231865300889841476526427191615129304557169550661715851647878815051629961797157944618793388787085172630670085622720682459125770554444257776801768510860829963180830935266742104428470521358206578569340595470038575797102242954394057158542939693895427622953960051291526199403471498101438019328449584243225055657164204653406600726139143846984216572895026078980628547795593243605875344546258046784202327428231183402427685100689456801422014786904795021250432292877057009311946776697892853323776456204335430818564462348372050853264013024634175279991842809013911021028286766405929616706263807880989938647675051373416888879731683327664279683314909553366923981552627210046960672819442416435162578321740331649616534127023683273698653824217011623218399111883548211211894287745922146076451898788563089841147302721088702242275625830427321944472992858009437755523043704901283655189417878521767807223963359460570153289466386949910655089850887847487169657368688962157188670582596769244471283962385152924002857748563206262164438568228366809154583026809634747832854814345173519530122779788887062122093117711260522350683475401901556048996240642384809903295306656373039792938682657257403319307367427166300187797107157781056278090194370379416816228216961216267492994103555923230873442267065691639405949181170753142994080126160026738791833788081463806965178523089240607619725085824704920835745171682788710881492022349700146911996119546891353136526751608639686561152933639812040476590036004246397095617004073773077356134854202670270925277014882590037485153187376225114741018472612743962317231726767363600432050064854510642283702213803215699565867460641675141561302921882743716261199719499461399276647430328578336959415448489727217757436720725594128474049733565871241860163772611334185319664458446205293102115088212692339015159349225290657840842033501470295789426783935146589819133719318422012948048253630844557427339468453884412877053308882066126939519752578758017961241518308205129282594866786048202030479314303836352415135180992928182869311651472423603536754441819314878817046762223029546553833665896007026202847574217427130534255755244243919820262460386456940661681066753401657403150549700399540160495503725519784605995477167843926418591440369210245921644201521114015131792126629195362071162243676211328961790282970014047028859959345634492382675461722670727020261867058634925719854937113758407085677092971634510720866155059215402953976327663624268358602453411654877576681134664426002277079961207775974036082421590299165151513301230495486641329624990964621727513652456487252978545586010730494183573051657305612139934045857909013544307292891964082085969073630730106076660470558160727101302633142536905465905580256816787159889835652049255152001932022465315987775776027288213650774322357369865206690793832761455092736941233444159973165407136769206918476451695423215582024298347450351708973625231618511773287024396470927304243709581024111053757858311419202906119136575037431702705508973563195297671567576609139626774372606856886516992624684120902746510591775897661331742092676809370180083522062291267770338602111503619432203655149844341936007059878262986910423485086165597368513531741652309502259679442070995746024258125313099437028832739826379121218634879545637799863179846606508390590558470487665099481596987096197548304678317670984192702108939480871513357165001809064415294044731472858603595414589723376195544035277535280913778632584493223510087286102981621981119989698258183586129502066864920342281300158182275033563697004840018378875042616988521386563439450061754806712963909523343181714365429838177554455758146564950934356763687776117177498664712169070650249009380646262760386922886102021023061988928195156620543363486511095959106833156505892501091436055903177962811962352986246608013445550412465859471732565315011228191105855820145152831502036749105359806783014533342429657755410763227434929761068951127339201053589894679244647498311694995909929805551841721470300380217163806610730147252432499487376670420850479204847181406927491312265211414428707233296189920516696397457844942309391845818603824323108575419708261199432393250899530462782060092528399710927321807048523678873711334669734252992081317325164095243495048461934221622343511216466073375489281102715730330471970157119397783671143560372674147774572801385006125858074234987204412615596987871412702909614066554265765187171656182707297027441052465380223372327618575777956190987227924919095793069283280085239683430912428532152403276743374315727971200947313211832782111765122119109974080312662530972083572270375307940937434044494651804911853083707881379013928621129916870288569870204634541080258021965986577865978496886723073524260259929235567482304469948296943015664437823560725799485713823583220640858323415518736615578927724330415176637582174776472938296281341919297346129555704033578299241054567568622667646081672619185297330879315887671186436258150573456729629094969158919244788837450943590237900859874178754443534278353023965585351035814453641172519794462633832251180443295242171127370784069321027033686737626699764344614352634145385645498234247521823564911022401337016989566517495643959751139360070181289077475235225901659424385646176020554098822942905555947390336599656054236228451643170000205527771426819595623610119116853284499693372544026599286639934738745077175895631727892779599055854209979616298517042525181774862835051688910338924000444896861666942667358802936868084137708646096421731209377886330635911322594667116643414760667738070215707202828774126127778766384445548755651527055658735323035930638125015908427616521049180419883161492860402345540298839052438999469352308088660190840233971270458118200661779799798306780811804916156585770656242421639403731123429136039113212988219769410688804139967116544494351326396652756584683991175901936358023653929122022662450221203926815703494409068855512901483752896577621655530205981512010227266962213284197661262439898970548224323339359415122304050585653299515244970292874992716151926382041199851420501186962652392891387475124324038762083225581741812567977804116903590432317394318092032432600733284308970864570559997409817324437746183638428451294020159228118934273321000296975092441029294033114593048004424191677463509062514211183744965773772055090327330453802608419014894046349770450982645295469141845811929797368700396354887517986849725123827244636435526001263858368800177476574554638274945736820336924583437398273308363702639373701064221437829236339523867688606824427153746960225611065402113554163885023252013795512522589476862297914256091448145478024960798172813064966837265955426711894046463902813927923890749710679159309319255436042030902931138846916868823347721102496561752846393192865457148070804351230851315744439475464502085729902178233694146558692111757168496168839740894919781450868360017212092635917762069723489429602008193341314438150919130617747939112326624560441378363149164358997466505009958947090143604153102446964041201191587165917408214180449260905415590164119645254516371982804224314016402444721935822398403205091820816701306715826159422597884433094664734579638714794972952875649556009096500338622332633489445631705974542137005162132839536358084310404274275306918916243514674686415361231421054572483746772173653699664253975678234749441264281153074814245836150133403383479833110346832445715982446849587229895462537647044073100226498718584897905281875551497231109084324229532624238284177261700881843246482379967353604150820239710703396760741861138947725077334877729054174700775666693202583562872705374772099224571215243036252990975467541526051694238566937111606174358683108446388483184810457618880889209601501650834750101561600833124297604671701344799528364401587685471666208406648752009454622020174812007493991754639123197773515320621843109293766256005402705956811245970478689617161033497793254735607942452647366501606738771009242414889087016660721323459886439872235078237247841485149857072582393107677859631630064921462442909939129928939383098275040876514354603259993064425536692134998750429018335773763182687910683852685876219929559236396746566798068707122260533068514607079965601503238875021078430404155777702706174090193270598202355763143010789595093581656842264590024738653872473241254400990716852283579352271162047753166437662081434718446227842867421493063407790425413243137147502355834915188683790560787319373532485416790578155337572475385892512678148843613536964195164137441671447258291388447837406340581688796198400643352978513364274409249331020964727131141143603142407824909154595388971929630830371848005684520666122285959490797023347861492523822268683337203414014008932742419810406399613231380198084076969939783148404058290425512359859557383266038196377610656835432180720953058829643476251218440265617978240844212498522117244747851347135987086654190237123009805741039021848187145052436810763524001101588055105959009265417429898370391437430776319687006802034534168027539257515787026584267334257902748147349865841048065248742943618674022880687660884558336629187743522437439449267856054026112776177119230570438497550145266982379201527688544516275273367541392024338446220782910005476016408658019554354999761387031591633916897099607304393238641519996057885130163574647971723009541560822132955778468794779651102544644776904609257119298038886815946355374085478025781395901333908182196780039890467925082546056019616132618176104029367566825892379860633225506257095767205212189030073715791971764444342951643296829246626848845168925677900841947783294231901209953509959508876109859092060724201961915432660177911516056334762592179657330865464039435753390507020280889661566621418812994036571352643528617086803325740552575012776654720390891106425487760775632490403561223529000306699600058798545387499628172836590160399548004755562890539130579012642402094926741402769948255374697730957559776172447348250017327629428645630834503919586901947512790975663486351558972074791422749545337641142698772708421226509618160535393678013584606908817259023188359801868397461586435024326939348393849365299140605679501591360672506337849098629520118380107630308603462692266326450258774045323595778461434115862298938706861469799225412082743433344143219719121381011610023720528567411996822917363043236751608273400164402534114796910086349745655252700269812251227701866981566530072289409626401175529132103107504216089913647882626019255376835935917852959304414627264016985790611108680799599577473484596720059330791768218078522448662772643989380037641342501564257588149999784228437261781638126950079168830027970485546946026775692663133695362636460682307991384116393142272628525623235113817629029118930773942277497943431224709689339596872113539354658941808691310915142750395574880243418618489699712524833129777472843997900038454693703619950882102648190790967852422295338189341780812243534385131443674710657272330163648336936296343515831140996256169029357384962761497024571854861089513834503275862474401351086000972779519608622505246677638252667847403112151860433907203337035093511183313469363787575699565617128224024562842688600591980800442095857685887229828815937969413186794730778239877846733317810931233606403354180488455172681306371581251822336860763336649209362481640538803361342862516791481324739715018972416308508934718221972710825577918631796912017150346381120019581188884945443827347248001724981039594136666769193478247684087941699063760830242891530281105916779856330321203145576328276772170872551868076282401225123523111829347292532163988243438625616329436998107936713954561924744528099392293230506184733955086219675218570060894369471821073708133734907860748979665807553484773776869969076792114195558175583781707994451565389340263216856820932232999080591379959362834018142620374952815807043116956382386548109370416007699539069736326475595519550751723415528663387527944673554674459365520463352860306214156846417434094875208071032060351348306377100618893183114838902347587755035688201492474192563662627220736499657280772057467461875153324550040309673929597369277124205616296235677698913652612333304287693718086503409555270768567006265847943297484781518290442471001608442170566701163312877355465641808251074484309718521042644689952923639661746721898645924008770278860519688836414736118463288905981621561256054223492477878093051810124724365929055289623076472350660928666076313511419249483283405816364757906886884660781651358090969090593845685967005673188439454567023567783425150691625652867242007292451244633230563415936322056874302764187586870983914800028131616735265861895893731912716011066693553700838014300989904641367026418361411198582699381962265143093937833893308698032083400796235484774492179449332140472966886155401882082611790355728771114009211506222871240975534750241323129172977711005598203996939996289290745506466528990419377246706662062667134978446802354451763457917329425821719479559301620108637375058872138672303201556304067827902875079762595156482773856962066337945363412551899947016692374313094921357806106617708531278716294192756052075486366920369677672100131581037248279524289543921328135222784229587669184562050063943254092237969158765558710025794860643338524003317687707893523871116185564363912579520198377911808095362580252279845374434023745955537408542176679157894284833466952509857591491615624401525061695729416474450284634987663479038113711233164478296441054246288498742759683742099556901899188506780035701440154361449507343116228213016084450279175470111841735824419059389857574296895217097158953756265563269401866022657327045540184566237168597870130947656587574241355205462269413245001338335306697528956517992770577453624413554330860727914005395931748172128150219482425446269864109642489387339898978654115976843190415541193561854714780754662024784808546183087802855641493133954051071474650729671708951514749122648714846445187642768519827788894243214991946382237101280902984772866296658140499166261230759086750643161746168960721746365207892795236446959368633337814898932038900321035498238391257202960712688700690112704508789644472555430105522466295847995868175710993846716260657767138378880572986641462946818303577440336013672429423902979821587761561789446993199595045293989461682464256920375354259443322908343308071772083036942942213815632200108684925614455607757242793124143877796222081849419598756334468377920824732938217248763426211350181453815113358542512271050760326649258208065149612810328647507441346060715385133548718260464959275488720659318807573546467324878862731879765309673311165181511892778023707982614573283245210310553718835159137675846750114813878696332995051247593960073110682346674830461810930679025255641735105924568527487633392956689595571284994676219097122570602258577473578988076923146519051340362563882495059059239746027898394600968024050366867449619405055379279127189064428244032944432534263077167186934667932727727662229482210074910405836112497484550074306646821242653082999524511309032453501942493526793407682021655813191736152316820418832590374116707263476853920078187267568452051588644765997750480446444536351251227446261183900021380925495466578134878703417407653724874061610051572865121038958578937456531022631474477774337793101052128222951653597329540094437247196741283911252160661551267385426293704382222974184333112142159654162873947855926885923525611981922920876902773269821147021452329828373854422511404035675707750533910745872133933678915102614094458087684743448830513761578325965263944079217341833535654702900860931794595427920596573655050370370785478251311802179393854933015771249870758053871810781699394268161537437354590874091922556448704466361699586551889221116513049307920532640811233782048482864902389552964098087548909154586968066337855465776156577569183948848551819469489025848289036097439115734967954798581845245380409805923177250729640533304502430518050090605899991460142969445156649595175938189558437514704022087993708048624371709800314093059254280408870023495942398779308657119670910797448826670252777156103374307075713403336781770905263745954301619965116929086894458986752064638247893942333038361461313195512915757505439792223430967058221935237803220597706288650188716068045515547295439870786135857146676014039675922042722482158069310278333350877567394477027622373157140123998341256832117708883787527075248896181908245341742166284937490632900845664409064049700947245009460919084748898063188659277035633650707336431684449237287223414852083120760851875911324811831858361486596613828027810655911037691799612765181418327280221323252888398717618875908012934729540223464850199609457810546175089114951226546105568030272294647105096886920840776293883292650830052596909337297971409957940366379733181909724907307686933056130339115277884251436800544737289519854206132921118816371290725165877610844091992524145517584091961067201472195120045882545820160238366448637904283445317388217425302895248748998312361289636150079453342128083358779985337057285928733268876718004166097508507310419398877547965474382652475218632048712534504859632982831614443493225427714238797585447894897583944547333219089915181119272074386709665723255045306450198991614894048163027316291833162492829941979913329251541091181938193040706029440218788208005049416194127810830784802425594728619684701853006361902472513555321199391630316058645272134548398633616606883414417426305724512560892266673433156461094324558712585416401782634127921557997643531694883601144754680238281377009654350261695378291487928192888910220625201676709897699699142574228045957340953864801179817566704151678453314690902720443580302072989913740421983663747281314432039572322223391572872588923666621238374217739032194898248686472670897259299664548136697917893983612482617070921783597102821653936412186421024563634697140851062958263553098623210727044345232095300277842728768682561980866810331398364063856538055428926526600572220600820778044542997638735298405440796399102585315664516601902974991999856261553711849963344325573782312955717713978812396958050238148988350478696828320625862866006144452532645532461384694318695103129446909836585557519450388313340256263140652998386253030513344822310390339421106274631420957519148760947186556317682021832291782618038753664374499851589364737142390066624289551300724616007938714409847582749306206521728965630063744014472666464332132431208466138298680829374194521363927255473172058863037325702471223045284234105481545946094719365777420566314502650132705809319749121585179563066956298643880209228485136115563680917834712498855404645528064205113452044680284705489675285477331718658095532306912734095391099322093449360687133871348581248961658077447592630186718223455154129303177925302668478082242833050498453803016236088460558178149468185605005431343414771328425329771218218113321609049398086513496492912468260017043057211846181656756324316391381257751540109901271717261254898331047438934947461746982751148383523729366043267708840030510334741150334692295753323015479340790375665174857350486889577764667234490111790923566175152087212749972875467814875197932145152584396406139135386160664826770329264169050333347650975005812158100131152846295250206889034578552566190982630674813127984521462392605567356077297056181581597470161883694050403621180632593143195546776433871281551890735363068458885806192133520383512440373367493925795901450583320992780787299987898901369915906097098509097419650660268731775792003940779770192141343234764601291654162394970517405467496822256699727536483265755066116022769841350406766464518373828710750835535733025967221333743550214287719418113457056751361084915449882581512083948254921793581228838282917901159117556174440181669007336085839603190187562932770046934556723339963903314988549673324767989865842772199840430293219431607021563871722265815580770412680258329861511262512521777789097663890692481482355277752796781706088931255499184348179825196379965850173635320843606462278345378696788119704618633706931188746343380868867659361122810155360491637041364212650561095927881327004907935432983215403431046412423213071572152641023492522695264623342117358330931948491005280529127881546088428550441432630408826054147113976039348682076339448035118181860882555535799857424853650027276848325428751099591378622085070012704069162910277734296577589506503308855329504573189782131841432815713265074737184978111347469828368743340024755574227897469921479722303803025228512749380978490073107604196111869304227543685056615035645252744406483917983585502781375338620991403150223657736026185003191279723597929101001407704292459690729857094581936302546496978086063396187292715914886717682869639876740717940567000952444964495150320742851317013222161531306102642084799295179897551335303505557471833213152947484134770244242386879156837737196008590423379412582033271645913729808284446890117859841516448790415168073721299627722904557843730811444709138588941356620354643454444751296190371940768865639562952469047162253304744114517815580499268320116710991737283832245590741223154154668214810743436756084216635789555759761051454999791401206877585120850065206819159192226009566496667255425496938553032923468726196002153064684291553314845922726279103962799671792644314354277531123818344428736139910373737170138114822937161788412533951078242392719007896994124688869568508483624261725639517225272127837627976906824959468652636320382445524327814858350720922928456250107150162541873800153122877240485090135884820420772349378258330864753552340147057294943615848011134267204377305546056300803619365145780259141992616756449340931373148172819895459794907962200070152783809316531092514711888699235347671455108683631357573218484567381529599879719462232386078374240378778104538121328927405967583754305234831896122686029357190490367754819883130924777387139764769451784526087531955326421160491625571257045604008484080306780569609327591557687288394002452504096543999172264661660024716418153895615753391660960286747207241080681574982824883762927980121031951919113413724163705540482415900380583366971651193825510004561994007831981298782290111008527259185945194180599489948310683760404117996413703948460034050116642011719228745917245478806034474980839209243067212021506073310418117193357422852629278193184786359169540391833078815553042693015955669293732126061742555019227361377271185533122819880150172405809017014392525446004907539892395750185257278891905491121432619831028583971338025863418558671808399467347220817613912547997337263354738035570857947701746790148428803588515422411823699843957715536730463855294124243846389943101796208558842705585249157938281369468188318175163685182955112661135520111417499329186563131914382131748827848935570590297014893036319087688770718538541005289473834284055044194619633977100684003134256890731689722877133820447198408939628376516008186897502348360518873807596656032299971829498598548283613393218958469316998508876460162312404297689102192637752755912047140679268170854632694162439464662273903847804497385912841971694350686598859423391230686664374182215661032881941652819057488006651175206177401088264636512920956491712283030871337801998284593974412335503449018148779491204994863565700732026555754176394330377217717781758129892678692687239902340303528442585667761804623971456874565095939522106317259591186376069648059194294714286909534197497229685606003085984423824655844170551731192086614692642254405286488056970557685926934832931182684744179091286010916269179436049326711462797987640404419487790824045435961889075008739872418057879901586573491664250562581364431710795071745252989327207440266265560845464206440001805973482056462574524803497978676295589816216257617969860454316281807232821692058595910829172460184300319898791641289794769364245544258759922210608286933863018299841836814336270440764577953141325683144803919406238072251229372102000761751570376449240370256015627248766062858368234576722745512678682357155974223111094937545610241153645522377641386805442782899475394011324395586479310156138752193723186378935115160318008628265459319221732064009036258639292589694777252046995229275769495584879801514146298826125272207461895802263133168525130760060863183214208779814933335564773887848737268645886559291115172653479021858991213544478691090328203930383452228705786193827203548997529259441020155054960693730865588986654838919577573192175514081220315453853709352776117434815139943538232142282349325373435213824732610853013487716626983270721793695703042052964372903928485611522992660719057664916303655567734187778768229303671612959272846116247941218205712294198561192856000660579229381500954878757444988264184175748721260939376200869304400668559209293545978518622700935572544845500856076213071293410610752945632423390890108123990832852139045042465976283880760591558991395045584028371113478138621083521283765694618328777602352597250903522367285704007568025062813854948783680509146998451231169232628455532560166826509193138736912431001525467885979646380341833806229693148628047285101311982632638398302031122430821532056736867782096419591123359225068306872028921129881119697499941675285234082286490090478043939279499356704296504901195523959559844311359499327497196090707347947804642767218045350329039268343613268322036383698567878929701966662509481444321929817680463822778907060549860033068824095851586949791795961762092936782403698549300766072304930533153983368410881218085758245156198785516256501376814716767621614413741057460240207526796363240706868927997493492680591049408607732262614489650040608905088887791438684422381730428419283572412164364434144755672648071869450682785295214600166197686017589896997192643786460782146236766145510887597474041206252637679928200505415729253747509832831958805801099743425068068201721505933573554041881536258298523981748718592600100936941765429688514198396436415630517171956682404036922113764781202977658123118784976555463775220786151748868773060183806703335128167728214820716000485892470406144020002371774711870226144949355158158721768070544708680796192524989292175938996906814010932793890771204475331464721985462049671177668856841926629023734132551281737555988027838958541258624930879677840525659693098521133967563234691143155774663794141338421612515627229789669317514717557697946478552025023752454810548709116153563839012788735680325033138453217852714861728507895483825172190526668334849162547829295110146985119143571967091163253613725212644467132922803493553315658739241796078797829815488911937388916091863208924423746171340138991849990983474029033642757166311778878272187200751600561903158945517945541657239376707353055214948884153817643744122795107742309374438463186923217347092532477586899382583239627097824259906443571459762687177278586774897284897379085324829733725697005704422141970811655343340579805788243858220227714765442500584315590497555490258568674087235533118938656831821715787900518135904816703142733417413390673338911459428850034122825715608932959834171124035049417219558735231582206834963719218759977090953150652640639146393039038917277594559996526377480390551334649193803701237472512044348390980752650729409192322186754083409638794133303917924572915479146573727377430798278592565208387647805166347630805254152853082072003525336076941873170902407285512711121874283895542490624920101129439992533593326315427860395434976917303703087076822655435267890807987717833002630631003307542878967522754680405960930208549139661912759097902038948144980062297674773082112770395577335481487678278995395680122015768696777026790332441798121130708000048873998273219084226699069587522985265196882938724170614808913646283249890226717550273810497281232827148170238748143460587086971582830379962728225874654808781384338531829358947391170516946207930201587838974243561202214633546580217611216731999111349341412223769822228326710349279545039199360496496970423158193646237488087712641202064865018383847534654696630888830666723959804553497314175467517436936749594253091541347820643064604824658707248465185964328531304271310817238011124979407480045933543595994486522349699866801126474417947874210220935675175778643841587233844357500816173670011404332716061844215805804532151802973986526114903840318676378416524399611316029568787830636384057889104749474490675675826236197740488816515190233799639881725190002237525775550935448153418855392776682120377905863928830757753230392024521563830335652527910172900324460492070985712922486134906094598618611109954271957511871751554751448483166737000140023896716465428006312074915188356978045955115873261973961804538099427746746117509116109108444610849266283901193562880023747570386918445017827851080811560125399721481549942910279594297639185305508184174721317060252622564993448138406054681834513595099597241107804742994432157723511171639726462443137944685460892584767927831280265078484634264738128948860751899400450020505431876601317071101061780195347208237665156522595503094932638015830374126160843688671883591497337930008213127147464879034713964156597002484247195127167974634821327366009494131670756522244907360195176962606556560288922129759338381603887396298810412694353806812017466933011696482107241439266913007681430046575002966355415061216285233101259599425217217371259346911575065480240965808087003815899604394050817769583454670232617228454266971638860849073882942566777027195042537189707136000843944590704528105964817177604545311277991444073962825223651561804597981836504139086098129413362732693569668783620230861514475067103826061056933035396562478510170774497601453904957535214870515455317145700983684422257070222401226023333898900163422897657642317629924075116090180018791943579523941037322594197422251230966870235098177857887858864827295623295410522446035733613152367507834051598358869703260325761256396997473717524204387449408574666081194991797652858198674479476699489625720540385529029170356633080834886990029275822948723185098433277462115778856059506002635188318854035101322399995608852024675081868113827718621138741056493217652493703566974691456083695861458693986335414021571744036362535804725906522415557391011577867083162166215146192228180170330561987346950356570496758672245551581128183398396897364320084765538320103916910992756726098481411897661254516923587061870143620482456491626867892739283115327349091466892766753426358229692735027630477073797178369581408492174571654989043811969024701343592027644542452836829480960873470479061604104970348338215144464618143666063545922045369864321268909139965226319555381309555411917470213382239134707174225665624417785822182841967497650900099091038720059746110420654486762833006893202773081768270350216083111663620981315545296760026576052127221378169233453946305585838759453140322669725337144656151947750993967899209131750888110987255241964887011808928264077157029390520959676943126702846358598009631574490584068580742727069793026551027367908198115770391522471845547771981457014666809113169918961418881266473153055333351641904428478825736457880651352832633505576118735982881229983550144827889435568221554887662208915989323519039062165971680301682588700731273533422362135024020150107286896199840079744013027187191473478884281328638827446185658043812838964733333643941062191345519829411495436019394170971733212607957004726072925806668269101252272307346735145485947982021293126728035791026939127419064702446129417636956494405401342370493567453931897053420908404310598100210262158581218816618024427428619556375698551233066735013367132217302919336841240682858454552629710932595808263605231391688467620708403678162604432719776179401106206011855007156944829965096630930120575697873036680473675322130448258618763543868693899860220038714479509796050173767130817912875069409220276032071253318545418320085483371924635107187474383860318543262477397268294980542934665952502741251384646459946060139362160521784471413657061122515001710448532329453224667644549969654496434486308058147405832306424743049815602963523609544368626650598749649316020529335512349197190497085430595935810314524780333983417405289973121802164466953161882005382600194695758281891554977102503613481971240764136743680057305385439829966078763010806603310024662499928318011894019924667703163229074104485918035097708582904995789290591992277268224177647614741312096492515331723935826163024345258392105897555818067763668021185986594681887861748263237089466557418265740390458452899909198201867139639791139678912028652549233809098157972528043136391194828838438779742893674254180351326662921164262619199428888194790086094178027057729383850497941654460210897231267618322867691729733765638421876160051518983953229548664293463382083127267089320260430663752477697245935902895727609551429914653270373881814297311294575762141863488758832788606131662993305610597733037577640579251942836556931402204792005354468889441640028199427035525213185516964383626288586396677997850596657063998733262070862694315331620740073934226703958432871452551592048246853220509655080142580780509468783584180920739706640755365926008389365727042926634697426250414814467847750861659042674974485922513553377147431558474680274620406570003071503620953206319488935389247274864707723463562668642065666034956464224397603577749957659127376286062202449503802883178640593731367055883001218299902934757690376061384799842428090687797836373251111830898610294239416791552564719280872391621204961720849013126382986726135952607507886879477533894486416513750753632665573849354677955990898733917407854916678535933397433102174697648757783575348640703819384779751557392401045817247779456245268283443909499591563360402899749725820192071913727480854648331660732311220566509345603547724760662421386946241860051736207873865300456378756295224491575898667684542669870601631533536757000197861737347266121643375488555502762501776922016647733586865817207659660921604127722004050121494132673415461739092051407041878169173536442777879087716988833804099674276432255310691716036009653236268627851982673165742185977689467636731709993143356272880371024752573456888010748121469695226268417905744338836390726436422699153147774773390337558174851213746300032770246563463381849072321621027186043311852182542567011919912614119127566727807830120729305932324906601143947059248986805250015775021095228819217994596479096875389445937576321366343101475936622865840762782036268055567257417672887949575951772443808526724765346069517746078630271057785213006222043818968614778859156837028575815410033895562672185541710708208731363541598050372667881114701309026619514490902563745230318601790962123232639033830342994357289971839714724737669884865477015703083722960329960417361637857623228379086843974021070182145916972657178724999590121532834275351782400491883442122588005377087604493768919217452886243439663183228747663148376779677069219373242873359264286231239778774849892686320972994375534513235452105004010240050821427421652261705822016524018832676466664480526193836753840339733360578484800243511403954370238110588723013454680966595768820231274906011559271360653778246131465057277158144444832594498662971905688688536158650376498568288927528526837998311300570438945479614076013733428886935319396699281549455541612525866320999525178812010429566309542716777224792036275905140219554646804511726852306157572914211603217168339639036815499442799132679902168679240122524726534683859298898189231972868862751568651021393245970556954214296315847104509911604819478884714403409678733977955872188879036237129477064308807073866360755304749121327651864461894054384757708693945991661466243594132847365280500729329797923573027891877836898713140558338530021384575074820183786604821303209654052680063108280543351399420807563920987987278171480386220440455756037062766823142703386965226704698913877406724987516831672569973364591385188350670866108719844795397905568423474601462642741564415474010325394598649785986530029691827899879800592852202889758306994614442724111424184613023312663595417662608806405111090963242311308107561581553819371176333493928208261799377176978382382531440447615950495425232490674749729030473873072627029436577231486257894165159011674838651923613183771595407041398066985855269940182201227226426378073212620845604627770267652786722310206912476862063709742839604003820372590616284815179812077985636630559304065776205053643936346063281414170235451317859924860288598495404177144969321181128035342147609193790821266347828511275718507919738199999482498670369176857410716674734224841665843580533500975520364057628146294148477360976219052662420992174295545697340729303612134363420087673017603485343449327240953735893499157034946160029545498399457524725526946518032631984594861084976870273382980177000133853726935323015516751763646508156224871405312339169749013175798267969087783431397969076886520702176268784252186948932699507051260172834408181696787323243675997744651673763257676805736567327594480103834449814958480794159572067873359905474067197780342114364535542974145823053021124757671370027402174733303418060261547277474899832628682307995736075848118383188020410592403455411988953089417108974355841927480380218463202475552600733324706295230142945702649125261318080698205293974467079215965524894629965888938703092984908188733208091228301507007461032860649918629774966531037968293865773334323562343216792585925840612743251789869895745709564459200305730973264814502109130340549652449537963211566862085156331969219225610007988258117163392429635524393104143095222416766432948659579524792057866801272453954356482175121610916462667887942592542668282312601166073539003533896266524579852078003994468570039262566193186289977251025096397964870353304285716841149140415544683921115843362110813501859076298233795074615522027378180542375768829691643419635589007459465643650266073461625899320248414263661084476417264537937174343153424522180078665520926334250327575121533997800417742945230286809559917557161335860722817330192134121750810948436510192608803486270885736043882467822595253385597984780842888171429202398822398390926677452421828261712409769813283110503136498315976240698298652914628617540440935753361164108516718444505792843087522609591954965180373560385386355216976764182723100156604164795865273051277718639406463657922760862678783824578128818760599668966726714063578828846220328627866005161963829825074065386796270570697551980752509401709401503854581659876585081782837733265466251672794923321799901578894914934113396427768861484896219216976980972671240591719882765507355858230561681094385776648960610967396881266971325932244306403277734033621757991753802436034947263179151639041453909068952258456739967381584897810103862557665297971191777311219165358810735530530969293142256217712615104586476107664398514774489930925668710575089297183299383105107007714843287495079793395245061190485824278703681583815246120031228105126072186338562254932315406223302861798033054233389802965153414721291558417149030562277802962683094116522940888911712878017122719882461775933217512416287579010010656548598975599155487624694586911091981586951662886478709833488236223773184590999345372992805738108787857400837287087892445088301916876743032819840588315186587920341815571485453349889197242737334289333111331938549768862124748646910754734507720727172490413534665514752692374966722875463131404936832858479061190327489569818981597282590048492773392455241733440328559506090487223893135901793229898407210556388623569824466561259035532185971446075397395847427589221673030565156805608098492523466106717670720560148659249446822343486405092211384739323558094674590360278411473609091583093066081750515363931308312682825889160800451619005121880630821083293753207692710693053022899641637904040565277188171641520837758649486564263856501143890632830427780189429608123664256303065828798357474004163777515429725334907134836778812804409780241456848240434875632393351459526560022977224001568635905629342420895258410422743526854282573005721451817035072907103330443413105988618408322440914777267737401327943704771035035577497490601114001107563636082518911554216577985483550620191849389552283619802718718295720827925812281237310267822636326139024928694936916109741405447149412280628856851024762611890519092223276874121489768581739121812617520786585934837281757187867380541541374469161487523807005600795984058641155427216285249072498446308004018145317786609228565488449931630716033715066808791762100122163000527039777462090447579781763696952387495751742575639227497617472400599755150481156258799437554924012008585528703588208853910930228673196748419684076263571314618536305271548878476879438199739164847925508992047585882060639575082493342648478602279305158808695585031677230828329534396377888519322826330321829102203898891315772237288068406566251729124905148946626874925292412916190602503965839848804350569018302992884176847711709039534421889966145114568709577834859112808594833527629343436349902840183351034912097219680970132104792090189537357415407406395195947705559891455054447136391660252580696121503352859565981252016925543141763324617146699116188705464349038664922488700980828361054586303610255539006182541453612659259107893783384042605588903428097611601483870724171434753828145393666678237490197704111865774618625274218510930849666087024000395770282574158699351336514358252809460172396333473978667741839910094449538731591229384225089037318284329017039997920739328347413671623817291651705612296789962929767046871212411745858492616931889694392509394100761195326459699267787668100486175005972438721822027072482120604889766688835343575086184429677593964824018716880772290074551319002078720262868186970906174440832861436400429763862136813496281751287881864741047495518779523643585526494195993891206023289984766792392314454221384649365538865065284696589333179371323564776715442870398698316218922856498121230662984973252325874845316642758173535975124095502580055372846497117918716768835258568859387288118929732446570193571153348666488325103900250163931656879673027023012046602579987844539135777122524359338218026061906692912837119983584113772425282407755999000403185434691394422713581594660574423410352674599846599692625975611669011745838925123851986748319864791942605453975245324970943806398272407529217665981679978114751638765020977342788674584657694912476648529714347429541366914324964827633191181469495520098753932894151762585241336526292931774165258705641139805915292172929336111929373065669686559727114176345232993984615420769804158445882970327590972421250211514753800015860467375947303671338830820039880054683660745626350605045521539274886740018157313625492911483090508217099188365423671171443115529315423505920957651362000671275721383397141030306643217534828545966128862734858749026218203947659380634314215404215665680940986828319922456374949859331725046840983173235730441600110818742614275231285410170852645101838393128103416208876445854193281468247946048862606651390743837620407746496840361715321087216700917047943700935094935354162663022132240145394826887095641414068809754498475100009862977853515393299228458093774104737806930522146555058820471730224314161943319604870018898461878631594597352257325069293061300433185908546247947518342570051226037235700799822573301679893111203249928723600203488374838114406537465835209326075740182845039902315507609565787765784636487445361258684374103238298745555936188172106304966512667516979675488664443812998755495482480477089160233797478626017881586216999388711590533311770456275804320343450340262384490511475233383530420198367846335187817002744119894647362536969762144325992989865117343791917410091114906392057406654306504772916888936506699611844525026833785479526757541101659457807482534193263238803396562704889333487101267669850539494158932314809483530370210096251104210543146013423883593661082868354216831973506843082304180707558263349478928958416288559642199038088416845100419869398524954873403507648818203414474429383212622882698455384950220860886982485207832231906838664568967656658797508583483799865411790142325696417161942065252081891212253544499140475221565231490027059350150079701227151707726430327043496036646942168601661165680919643900767824921401351332636799448525977491729791698688550380375329329036535400404259202478319891517306193075032616894223312175651069956045683033045257019179918522642542307245864789770457872393843119604465063386580393844415273242651811466854633684764865859027779003409296907352620788667806177915203712871879275673944392807017945274650778600203481754568779016353324628970253352764086684747442660090374177924283284029334035504644195648218594117093290785420783834915313365186745007049409426094884714903217392529914522972113325570558052037472530875199679381812265989858513776678500174675334504912864516808014632115384517598092025561240925820188551951733723733257766496398517794225472290798425897298182104519051390636976383243934339065066752705563640167547680990843413907165576222218642261830581186849904601993808647584466710547686044053011330432023621304261558393179641502400327508536576840210150454292113861886666267302116013331175465192505854011396165515510735765360729156982598617041651285431660171928170130804836401017635666607797164596078906148730970816899646753443166713756210437635992172349336682936277995898864208059709725719902078306570237558057986144847640728292402788483610941836836058778391241072486855536888787963141176927120615316163960361853755073721715803575801603264955227644420949124428457098561277180789291932536746002390772233364819912811228778551253895699396516618188094656483976849760850312694603435698951398573945683799480015447956779021097681259619592575729318156118713584322749654320527673057426900638454750283657026898466986315652178561280812975392290060643700414081098374482096876938267293869290914319792769687065099864478224984294192008786741575279558436353572215438951986740247954128589087878463808057527549454301489934451111425150369889847844701158160595651036746833007095434623734695207321502882793191122071896361688447037364982136890195833408428300772908955557840377928190825717450041013053008214654862171056295268259587806785665274125818218465095429178821565558792654538687298309637438859530963737905026500295236064107103317029014575695464701505171899161437528274082070375391342127877127016208919284908692997884430171067532772445978635081446215490005118550138582895729180662111756691796194464493434023775082186909785713273574882127121372946033824729071141130163591557758742071885521258627685089280593626420996662390158329882855338023209626791992432922287894380029468870521730954163887103200833387953345039922754901142881733389215950283672609033679430635611774715291632754432689357946116582120184057372587964101013909575571547528227232248577659335534154563186378201815265298668571593359453040372339994947667962378886526553520197803927277389932205862905413728023108740436364746655202046968928592868125005452219136278817740548261855900095374242859002530186648137476657722561716111705767279497444647204290175518276039933377432541832348533627277016306498760808270637529893640760933844017675692114531380662848331476045468090710892905369774259400020737655478773072860436027998604071872376054634221321763505657797802264863904377256605243217995373765784542936326674084772077965074185365809424290506336476971854613479412997502945064426387147805710320468590730352545085991758128611230760460600972035292443939109521150620423279046407420790345059972776758010726470230550470588980233074936417198213018707693712698054850895403318289692126353102175170147171073211613268679924547207803793642009923135249189714076922384169344947282544777929874452774768546108691014747880369219654274962464637545859834476748737581750521170984345665753671087290430711402129633562583166748978947160497364241862812784192061769380017939133300656996072561757869079022731114354204030078727009181915345504834000266769528762135927439549949857624710608930058318620473835337896766426052063487522815154841834766747560278286871330148421203787286495049334738753761359739685713743536295851323450094103437624554247343147367557198325189144809812592009569856395289507039916355013430778179428881504214024561745895110392549952430783218537706109521936052117048031572146316137298126963790312337017194551264302421140831918236755753947039009297518197334633360692255822690320859733880329425526725867878188192735522040674981817613465261787118100800380490080209445193470990024431683947168561173807434094097927098081696922554721422429422411368690447706976755499291274963230446385491260836252504551001093731371889153565858404033615880226569436769499953697847607358847111776501175307736784653969759234120170816376051253706188974117529002661485923656114163709202934771544303233934702521376875345967860399411079608882784655987986977814746291674910609471036611834540374844401478616985616753066067978073465114476974593672462307696266012484372710042286318915791594633950208021265957420393356126336534610872586267577541568245687659290568675600663720432645024827025736238282259604581051494935344980663545057193139747633941213653046743040660356604395068197512772984307015756101166398018511508077818197353318036699105960947907474266074825150073502010976024704946454551492296044096038017049516674583857976965188959039214655408983288687632517969979541459366564665004536550362405876087615389205175033474746127018556545071940442674546266978046974637941610844084848948220980402037112979633089181212953812801673041081686531956470914744021175262973250311972092372092699693449265829447985046562009798237645382699469376814833168725852927727378218300083176548678491316681075487740416360806305843797515203372316830785881532890235555294222409692037692502792329190963075760771610556132369346226381377785162825023316787725403429716031485726509935228981568579686993575049717839728155650791538655346021440849971089919877944974346751024040093911469399216144919141579481773362009736569452686404236440629563352637148282244515896080692565636078996418132453754226696857919537182210825176391339805251456615182975974656466423282547378338520455233456320432259341817477075978245630566650125608820469022152347814301990254688131128239548470407555198917832257594439467318826425627745497832689659533764475339666304485680499807692913368973824336704039049270754106815902361285988677715662454367891412462753727656055537626489936483973332281090659876630123251445241417715887706050597823081738449305640164025618375255734334041026333926777628520334723118781332627795793997288078375691284695674261853969115560860263521013231433869259092920428724305831213903316618413538410189857622661675084311545357907874740741283110248656455749972375600621798239339944092009400535761631872439914884133255217743028104068090318214378994934498263065989470210820537203551920892494628556116822287297964095447130627174106746240443212676629696480157273587152514337797657070561923465233084585599466723782811162931499317535137231519920973412019735057205612672947518286265806520972405280529075929788910130462133006317527312598894154075136866545820411514562508744689102323352450343020804031803508294450872264046563959633794442097405196490861140585372273051395803485642398970336755242315623074091153510134751543669873707509202760314014818103824119274147117389924505396483964644936298538208924591762564808756032736721526157916550037669003479021700409766402089317721159876468862537262410569806830053226315071361993008241211173824137567590644357784016662166707857102697416875938871434878017109373587109476150761706271612230748132592157957855926599683874870269728543978057207077547659342421607806824595240761709002292468204642239514340554602259826174265573118174022355728001106131630087056030763156259061513597797792877021670382799816455113874632110984567870448024722452195707228158585256749787378169051374757382979159540208338967794007530485597373976304314728381171252279369622219380811454083601754340506054151851194163939149359435036893180733127621883618756760737676005860907619492223704095575503294586926490452180878542317467342011402849178776551797049573949067235638671523856156632418503479990795290942274094641382890449066123668298809507150771321326228024673992159673515430422635527459948374278167224770932408061004976543718767032063754740967677751551945476903319226333112153170439968094334681481694700429903536644542947298832797427583293278587201828986267871818765526224652319752384886372039330587957384482942613681214394499285760062127208090502013547500316768652150437556409172105305368803820947823865342522273710393872469386551306728873839238147199755210040753070803623647840610455824854404424061168169851934320869960975174226927273033344461001916376341169348731516878835880254624842183476376567456706038961980322296287557547953640981926357484414212966432977186133724190432573390362777810947618048625294013636945743223229547227893750306477911709879591684285031435820261725359760550109295837830502578854940918616084882775239394273536953461113835001664546996095938059056216861715619346320502862279576141017380361924269549935222514480890126561114093171874774722962335502197876632820433349137079674889331645957666381865197083849315229004765499441563067893403492876606358051223236946608108336449298156559403140691319595914425637698077019322480256322311887077225929407702128940112739535864037837329565331886007834080013968691567731033576349453407603700533734973553949322351738799892422506635890662670135238194360504949337555295036014844941295232874701849075723306475055702020314216796345346795764113967074928760132499437381115635722019544227538626500455819102970085386105168072791153572225728599406749497539286725604993049902215094006362708927235762515812996705244453038807008860853310319707462642861497784358825725461685753691836485750958248279618161684338974148044031367031342545046806808114140665938861221913576517371473130162926825775034480426958565720205066404202698143734977880921103889702593568272807196862297800520008917583937856015170215004915981579062241858917487304122391889518215452394159924849216497376118517620675782921243496493344000201601236480522522641936170730327621816292706963036014489740647119814088496855169441510190997179495486740840256729506613137927374259640245921018439529128653218256175672575411529323926012639206753393523646755035582716513523741316334514470358272808597222054867601293079290079823943579404922902972385450053368389382289465331939663429563827483373484285658306744096436794181215734689953247993851932456873381255118300931656994298393100207343807793815539355729400937978353182806189436558093830780180157661612326257889286004083657793710245977101124938943164435339403631886861102144128822060203612090118670144588008244934793576876663012542878502908776606200431834395863007645361331186374793212927979011712369746651803991377415360916136903051931004222106207122617594897919744299121894198681113697426241986089384527209968258729676168579938081417233713452688492467541544186079452662546915545255873314885281373808172514080009383087272882992456406375938612394659693967944315480232581607327507914151330337106423576219702364325804053062128304355167298508243640674400634139765410213726486325180898679663758645125478197759050429322625225412375752443120578534637809887546525643248907319673073443631456290360961695315528327139907547561579000953111330827980249669896683151529146780513021616668859536832558933495066512428351072196988963306101483314579888726373807266481396142720013046005641353527520333971226531139575934107837570740844148622409362781298749313954173971503977239971466130674468496128267645890073382273465176690657498516330951621693121046487156643646498715238802258855770714053889617012995479674153103639609151160537572814242531990872311544819328122722450431612675603060559199351156912691548981452921303265296222125363688499075754330624820591096250291993495572456480323404310578484872840657532661411533337321146798407334181655064168486483712326642276402175277272765494108663224600053644473706805160191637111130686154044985016244207018619021310570737534745221228331515719173458140477775564624552607451409928229469098836540275875565077501311171107800244030646013838911675856017593603072340554138741671102716787033895774218821970398333900161795816582909369553964373650041660748433851333822955541649081394546473321491534514466803260397560449633132375633100637862960118325701249211346490071368262057041098449057348318354056850750378835859097726878056528784047814432757235238763797314451162231586938032322765101137625866734707154930728435821651398414261988906943516820071956177356000572038055710322078267996546699466418867949529755396934745862587374352983824877682473016852258454932582478559648122853363454616815248062528688864792791826054582582128787657765797643262464679996860003723811906717642460547956248523133382832698875263316822913320565349932084139379191965115520969024130618719942242373359339123110414715684666560300250430146785537951562713683836580066905120324343982299249819367885886262925482882750074336907399621423886915728887502814890432375684665054203292372636902661211298985145188634066437197577440566429177313015085439386241043611218576394622041719353199801887672909772564101448561750531659277812162762916494952149459755467375280658964251430554359334296025012907914285090690422515856682958862959344119225099229818986092423168465888339668483595720057932696345720375303750729216679745689852506627917269052532604674021335316169660885300067960309261752449419237192393254252296396613075031206991910475807827944801484476380562185541501706936622121613836455330648509459179081597017135564329896180421672924939644589839534943494118516814290927154000681222573260827978646738967629546060766345293892914753081196377825394379355382817427543290893354315680992398047791458761715946740668414156047229773937931490858071677470083372470099847248891152255608703349628368803211006872901320256221328909859193081103738973567644079668110857628402350290710390634806509621534498587630231780488735602285204273364091961405014789300286866551340023803207654416111005366798506750132658139194772034926935542851725866235024231088012954142692674943450880535498006063094267433794494621276402333515871656910740704109168661936620001963931899087890323690803420772584584307716393062327809575058966958380617088992683680138667406869577986609560067693307904647879805764523730411889313822597646457591815977270280826107255705923690716879741962761232441131759845794148646527350443696026666934791501804798562610345770357094129620372578636771688083785915246383935751882367117471108849420011384837439765663241569258933661099079992607759609853018780588634256495356424525565571700788985377112419181819338038611853942684899192575462996693224273118046598761789505085769702099178536361724462408828501602010972676289852070549065829410412359413266965544184352714094506501397293816872012982903916668455679699900047597517321536613202435480330554244614556644976132399399706032229954901181297880468284828820502367299136570391070718817069449243529393222429935855923704346964475769614550392332345798901516640064493979880508734457224145524620544358055348853480035035334262291446309298057029021115224540195891769451019225457071875566301026734037271300326063431622821262923635978762188446790802411863188664119627391254958240370224721494090145113761346213665975018135327027418242752637179727481982636973003999837961345368039718838852149340263886215493643141176296373341393623515242120609206454459905307232091894762507410624270661670768019047060072814611852654790837654511755795336972258401811095457550054377606280461766630124010331053507402744541205654382151074450176992807247207068192503928533081669630483167681855876490291943522044726698724211644258711591792083176361994743170743491279543632203980450017660543062778650178707853634501459999049506133364938047687070732739914024261898272038830644634437507818680941725121609828475645176390655884387274753085832692821135727930191269956812240739111521063732271328141217857623456787206772944025299831813958262008353925093345486310926497582121739106785567021834481397305040956514529278239252263411277687843899352282847702289183367906349505560339023616749785673944875249958702557100709965200196028601060280982459220288967962001533748542412591948628656417938630980807529124298474685915910073673325868201241438983636169308476986624190246698703331327663755235177731992210842903509108860001140960062605243468106890559799843960144081101015360868659913871201607820053729053233358841157837912807117576250825641584465395663196361564197584271273366813567975775965659853312278181749554327558393014130525933579045533144076164821350824745338470988625301370675634215280160278382186858925181193774485188952414453189750207514618754995562827787390124168697077322697276045320117752388018446073324026330271930453100910217002569464890795269226899361273367658315593446596212724602762297898865634764078395633927536532026020639687204133314395388541730412953764260309180500393880182062705453061887857422239876269787128618177693991376631120050481416367791127646359852678811018856083478188542876740133352763473900608154237212750431390623444403515032966917015270786506009801665028667504598547830634333294912318537149034502702334159712017268509662947991048102517132438790786609891744466668330274451701774111786891652708362186097311260088775777177412464098699252930431512379084735683049065687118097709413807842798423860087171806709364020813548717472470381715813540739750735720579568098582032794673130534029823221625408793844855733550936387253188770797930024790708924541889948750879002147173720263560579205794540675535245268697358516832015714009050963256369692901390633491646363819375610539220444527860651482817831748750291966295846201668560731806181773281617036244098695224417329784233057330073850096886052924755771633336989613414171529064032240647350331229613536908596548275196490925372472220681638081120059359319017658498847528639159945983070657784649914451728978451089082009060760861314539227898439959610763066121544331576188660286150661098514385459241876699149364627341065702201761009062712803658762430831210608747350731950368932868446923283365250369471877552396553124662619534025724839508065146370498651885525656344417782372041278872294931374735199127939209800033442024033922224817945569065087022012212990606992083806444848401678716500993405596974238059699969721626981142699699749150354615956144780187764094267519443361917393460793324027451744149522038020579890702357459514308683716468902098514645054474663253130814117884939723114930464490319979812126587548794737923748440018111104344252871349653009393352177822836632666090941208873747930032267976579312279948536394982229238888371494214161808551806299670492185918184370730311557524863670128916271335392866290938716523320196637022493611051428637870991090763338586400877544953647754589190649198780182480172343407473431826822199842525678918618054526761906099267977353527287234290693730560376727433420825558547777999203235385685306379250894243765259734075636202804228176035179219013679389330127261899402946344406711397632644671709723856302119910660657976979541625053926212950403421523364837055697026158958876775826480295771280096100337077308944441888919173087701105029984931590020198998073955351635716278868675935633283910024890548603907922361712370138581873643465767169643673338810679062464704703256326956891195057128080070313218053991687286766423654768434523674250955554553707043850630409675252405004093555729853593325419671215486542383800084857700854112984736103026059104206421075368835473559766563860691681664214190051961117477775817475195270217711176222830619220582943909220974469039307103502045012015647828263478806856465066996560813605324584979303234917727118605908267153294401216879261373642223370714819167014783596178587957054021730809374646701838334998291011069551033828132218846088224630168558294484930248724619774292038327211696434962490662588605846086437562424012648335905664238064631142532900764672270400383068628309961928356339284469605363683542901301457934404102246666950489909250860653207867772499732378354732599819174290706666372207950771499590523337708799601644357075306004020713173886190933629051841068676655602316317765606043331556875610099572682220345246191426636417123017151745344904901235246023557590224190042924077463176975343483015954280971527798618184082578762559696540327308850118721653642076064586371074652639211202233204184596116498555325608306127208846328208127652662981824903533895884598568013444498172902631190811227244166521653882283872334531944032417694444485145833843166265939685950904499246108807359086587924238501357728339443381401368395578710193443471323773711871874692136081943061019096068808184601743499084864874346772089849365658391176477556667152287719291006353972906082232397845072289688795874950349906385333368693883253301854926455155243982217111450857472680182017437239090468646829006351987459614379524007588908614101788432654278715778757057269982458869304149196609495637236909531803575185906289588021222856743724689227846885971575788492891997159991471121573812945555002539532308974242922362379355984953387580401024387209638374264409221061517384640063367667123046362675854129202507024104512354050171271786428293867300915450215368579158300776012946482918757603017836154321718808866148572042063390197134045389641953368594520439584263948399003825802176586804403779171653858666217221579716224363756198267307797190972147164715253231970888407785577352441822952279585359265678874927241504572567260438487991505307767512248959816824145956317394837023384911810470578715925535928719393944673512917522216800419559300810378743194324285435756083440564991651986305364008270883450809152760360163692071708957889731215083005998884327288528559676445762816309384977531785084897699203396998384964087178987659756160205769503268428013704063674800187263243346442699250315579647404463065804108256229950169141273118830569612090259974079866006056652364061744073482338716882564125855060550950837277972026125419203087766187891662053617248045564923684903508423383548302612880628295648833302706174521911662916141830857948076121431300730203141751495590409723113884861462984476342132213891043967140424434809386064428915326630369409221223677245411690434947437128312950108874659080934919300172720086139977915860270387593258639886704763507587644444432149122550330602422725701964133590245294693134296143746980782829651261704583269009589143714805074003641635784136888123360160950139529519493917260149052527521197133212596349458971277178207249074283877085691523623278547904113078456840434737680107432719509435087500037165711438145280784855797386509681723520154392847671425330785306309267394878451996969057326678748860865286552056372128083237641923317582196965069256984479329825560602234245228029674199003010491265231908436639204305423338880729228927801366486520429185297242144026987325780322386849859337740045028146465343440316804071895348626232585485139498291406219345923763675099804011836425834715508343529126490996904097561646511848267374840526799210748485261958781571992392000489317497471561552679159755950021486308543519603983061880971643891625964487994364545201779883310222514143252547969869092252081496022396127084552192389781619704119167510543287947896148537622500785684766903003947626001178617265560678880739890002187835252502088290557334127044955416488705103441275102086781299010565367055748835956136389257851997777577652178810419217015123047132976313699502583964200209563772745621054285455482369436417038788622777181583742504644670624862335346720275632202119848752910426340975918225751723960786788856416543173872020809802735795638747180444415252807293450423855715724729101024349502904482540932125309107567172883235655298735487631542881273328524300037336385739049477542431204387392317467549177031991855391420536230494132686312314632982640492250812543334518027756938229258027240809221864639860534836067555872185290479864584980590211941935922555009033298442027274948099087744866395528129873675482827951781054855387369902464488846011567686086276726365080806174359652759585005506017593497090771543001343314503864790599824510115008157616107400852565442022723342974251191415965096520153758966176536072058260675051598836492961213222171019766718488043309832729673488128368842583614760449515607811584126032404504280375480209313846536760255046724937227454158018697236863354509033581236450315356644757726053615991038390650361531390007410448030655950375946005362353753545376014144448903888590387372748681897374140464835724409969737789904735698891486171604988418965679164318716813869482832256899180453997428565854122125371708161802051524212316674576277360103025368706498481710230320028174655701690044089059159273563937216004699829799233151144622943205701972198746175910521482657413690227541525841012620813493553846516729685880179400490923270148533664161858497164770058751607854257097833187167522431390226746346690532947263618576019451738787599874215347945666405483523073159516268090126190841697295078628996709817763922973518079220202134545574775241535320811936901946677143249650102389891623853325267213665173307274275947762050570979050465189361387572905173389418154097197808963494184670266392678078090090636588658870312146991724159515148726328352646330428826899374155597148596396612700003927672149013906402167402787372731730684887808711631617897155964190900786733164040340782764026283144172156612278750995566121751753486970939908559812788466238277031024488666165995606369345251250592998529904647429194147394778440470522409148975241606912333579769586788893583468538709758449645180185725906104905952160984856481530406250852103969874534619306369731374198372228150488070310790303316224222995240422589272973730544302288861760536591294506792485497127366977735914932992383226313971513989389375419720338254083392771981393741659085555120218245485390127451458471076472288188456720410329210963463507587916713959411692232580944467446945724725180747735129030544631954091119184033230916069041817709226036444806316266749922074105110681843237994659635501728442115669775270989292544194587917502811015284848725050230145786013103643644005185651579967345777259503355439420058293331438871875077801930567552709022198982056779350338069219037118107465059881643372985100909322835866515433720683758614247433434174546693787038715421203769943350301963988737622300972043689314583886455838321276041488537267599329794840260771094671824123733996056365199511130195496551402051757760136933393127200224527393912816191394422810566306515666669849369123990968934473591702833374766052304699479588734310937661288201550283347138039394420906801238315253482337746053548115808386386199723902347573635157360413087483271159394674478970140598341926866618906983229381469412046710602715120068780439424479295146109534673557485401361379895014239442844584954426250658273694646109261977133049301094510536387037246362860381182754206086435372078230308983756298979725002193148314511855791012644101170999209535567928322063007544140504579415978102287771053204612945851324827883312520797348532069903764464620479517869538223460710097275358207619378618586987511277813965013617137259768960641704680883248847901312272781536366820070705633476525602179006447378550783476740214860375411509174538275719959888935454443562375858995554195639851631185545980418534783860602152032583419828821862762175900686166440398548967774280610992740172847469470979366565774938709258182796187144859059491738312974876264876303170264063805737522470278748338131032635634128937137473961139993475032054311979294638541760299070069558732011798763206139961381191476578527101872635797022843085571498957754889079733671955395946300190415278775151507806202984991553921664787184453263825564737909946211737806034285130428425913283585325784669230528918830737659406751501639080657408241947427539830342049802969101887442204745024358710812642330119125156766770957050708156264113061280437998549595649447242315102242398539576755345070640642505754714865225515168258864718442711603996228716523465784385668401971508030847286975048987760470839072892978443849161827986669861119738761648011541100133742266458462176374938740247673390881809280565419251252593579520795465530161296147864068444919420962261968980640427516651125286362580212106416448646084398428068377795504371578433492893587135161175793405448633439743783505381287417522944161853763198943782019305564005031139374751559875623070230807041115585330321779130964438396400159118395709640895067724099984346965756752698884118537219686234316597738472684485291852412508289481408155035285967631294010816887421221922087976149207775287954388046056749581960202410756028154981839827449649220337632496433227491011610072835299427642798109442125445989791844257342228526730141905296719461612012667245822549209415883990345383768069855810849899660074549493314284040770045823883593727295168625987062838139707843304286633151814980061659726489400776347153466762122656646226293136827799490975271801811653959628209300250427256445633561389294741006373124070567238361956374779049643823679873573648085467975909954384641034543514409777257829460139235433043125769002929286446444535382705760107342682313791693831658305123222282765335680648042058843401815517072485065246382563470484831531094625192019439112720445393219710867173926408284801285029329544391914674529729836001540151447365738075674596843662425758685701081104222854875286858230179765785058972435040047435575666592926776864487423269653613334394992915163818916548956729244535003402342600397702454947894841656487888520721674135036636261363946916419876106760492689686356268744603708112415586372342841050715724097260538501407953382005343821911801527232535676086775842323085036934194402253490057849887142044976811474380612847672247427744515924555792002768222441310011212905945120216227173303372243149968623931435017472299368549507065761658229379429417281330145999554545095965354539876426057304102041549740596416563506164057004678118623431215686771993063879475595119139013834064410696473813070709162332983216061060153762957905462494349064805665896908839360830453368657202333204298590666636898005526285086230647138293460232504331514680975061463197909142353270546570566056956957170192816119879738261941521784150936992493949694822353638035998716620926473116165419185828455515902374995617356003641925584717040028596505051378703044455739020595831120851749621540239422121334414152920901485294070817725829653445833497412805478866219148647950878436000000121347701299376297453746804078810970997533450953444880154605873770710434650782789766963264747135141674145143500081918426768054791489700235063818517748327996909459952735549701856503218520453108572863838062772481191604137814679755586957977887668490066656758100316888299384324890636471603409174815217799240599991482007539118877241077009161975905743466654652703933217133331188232871024335956482403726820627251050834476741247603785918937959762406505088037707242412225352631455893674295711549152577243740737912317440274020339484953979716004653297245040157375970760077684516362821756296194033286191013679630087499209787543744632138270711600420731599711741582477288880350578064698637144533857450119429504951565785991795880806905237010599723417177983113599202508406615626955233520215144083968840519210506115167466562627368638032128549732219222988969991088290337591338984132607593711595825891833916426946641644518531687641273277283278161490788971382529008015965369136338418752893182656989238192875856254077658352285511567461082873944668184054646712200506825273715024378020022902747685988737045463058781834947542313190832457618266466685042776142504322790906062343178800962519617744528386486212173828326302676628929839552497162224934418965609815406735700014807906738867252025338176175284525784558122931472908201990370117336598932277199727883301527584358229468425035656460680390332304194901883154139404043688521178393573582520885727363833095571688957548822145072850503511075744013173311891073577156785116367678703453339325781987092330360110587685383327219007713119603334617167418939978096548432848771583200431419024409015961621231095080659209463506448462347426321671699741376607565500132063189656998151321574593084169933443272186990369681695450965253589133676453239821354898352486414946116585686328212175324534657441653800752111106234359631977229324865623803637109748348807614362431318219645113336509283534357295521309719865799315816598712686142563462801657629673575443673205561205591015848446529428273454431979097498010182938311277814616184191950326481656993072438474658648692212968428978821979552470890731043162587489638679350065208939738484757536472656376696397699446090818310899743343318613841044716226382774148799108237520141154827992588298714768990622090269439351228775291099470483499899747962360671148947333772221086618969017642608804747276118376615809788504742198075256325017428117969219319390182983989926128040318264624013952930322811700238909145754323117308055060918441875651520353127767562378390779399304827177271949689425779379237183412989851412609707629706037289980456152619864320911205015758431336296994593103763642950470900838855881376682418269498772180867410596942859517970934115872314923326811926480365958820668630932188628686863898820913944479353027858667745516658622974551426047986604153399224751046336610798824112027514926105796741145353869296785751644255408421269409900500274319770491198060607974868281039014362771399984272941106089877055164874464229484630269298311853644402899472307299131472975583903426906491460396165450864790057491952301456323911414157195134676161391133450065311761141624682088474261886036610551884180562222155421195305128685839265080614465126417997116343791379045467422682586021774966115776945096218940097795404881621789478647229799597926522108401324240893215562140765740257984612554543132150667146567933326981702789313144909899999590934695769531229265506469773007784066578015353408189929941576376301725659164594646117501289035543096194101502726405115441344012697303171754653481291788248541954331036957973299013035151109950686014784687372351906519709352788708245333333969891093221990388845274317906860835651144679167643652286691779974612381907091223318260394952597487888716445555917818837815153088689665941858610854972195798322776970114034604825865924305966624350305179746222145187311318793707929758770420344106353963130724816568852305509449502757436512232494161181216979489485979060938278617183493483494867627140814383304192796732273315362363478795543826152117651220786819318614988202864595880276143877928442885406860054592025030711102962311629459803662732551159590416792267915566258913818043945594102167299378151365999783521550490093940582485695182616862637371231215047943561041339409105766678954420021423392429388852825197883760422688337702812213069126457903371713645207202985012149969004809438327282302342708270391843468781152964433787931466345727013476475470635575653662708817602566538288383646334015741986779363230289335739591277472247505834235265454473336670959452980617572598349759605206672541056849492637417768249744521895255116671780348239972122246466112442523627063018841320493252204139517483053094520921135954798231974208798900028796059304471873343288393396842014554807618074776057679738847153275350047425671248138167689423573510409509518602105248387752617634506280067723579382302965208908513834608673487618060488624417972209554458073757186378571043040829853762068049852503269233905427008001765515089219194167176554186804071150615502606069615797993357666298235237428729804769555710992763519537278193443294127831580684513752048694281983383372202576611206382360088106671270273820572583452919310448514077168661996774421637484717449274154341667106333796696966680395720163293697692517211970999697868823970684339627445239082294303162475776824795257656784629450581453392551208087376003833198578240445270580270074944364006175066760404187234471623784344425486620250826042756187771154365856134243952854989910046767264702654309152650665887536392064581023448625040995842486313041746210242125036957799040258397743052997060165948769674412211794784086736881091949630282530071772909861446672610290718000151030023516957408953953445441610662801896799504886264784000106274407947684318684002534216982874922123360539978703407349313058266957274544132209730733279370317951088916335199144474716412981441852346255257257669109549841790847232910254947401860976358821869910392609542770403712917671390774035648794842692238500995099096482704713110578571791950676140878560565461266212092568069423325292080975331177906543084766047206537994499393360919390107951002773372266954638162284908490606833282972858534554676750415751893999717881170321256922036721648799599727027715708689809678446249799085608193320016215921878487354062381083095965660407065137231324566667685738599376035508838077907165214793088346137998685701465253200194981980867830867648181772386960467509696320456706946755710353213040688622839962046150550925922696489027456116486467775726378747803549004109708522400832762020462743598359286084853752535241430222603260771160705661168307423689640291010551370658362506491076665585810285955313872933525891752897116473921538454400626141833183547286388716090403514047052971625183611039948151990302478013969565801261348300484289734778957822624853454430179809642925379371328851558806527375232020039414970943151836497134739555813791122308802831992922938424182513145976405985505629747895124798703689437414753052483273918683320974610863077722000944684787135214499315916119738302197304440090883683979718478420041839384829812398562093845050407026253240619370824283426393910050872070215569943756729764295224170793664005217403021638158821614918042230518270237232054308194323608750922853287087397100669902769452966746780758521089926442946892841079643665905523988667097846231225224277045016158501192076366205144678350179686838985555025799953707038974605095245523545943473446716958262458493343699819177768344902357552422490498971962335655992107635927418571720233187687528133209535355870959842134278609770281365462251636176051148498236071631397167179208801443098199326721533895100247066651245411493097953000022393870041611763053383797006754831571368060231055177763071975183935994379449732710361703214267105750639901736320865653221401184178953433353536243400623584236895330279480205527753947798250284482818018683032253800130321089851136100699657577944304081815893193016339354059305068851926928267676445299337512656397471182394237845691872828897320476503435845625731056736057733036118040279026313397231263964871829337521142487752277892348587225133773323332654660688188853487209791653928040131478861893914479064642434874295478153084003622939500909970423634349441383639555515855567694446366774769591810044696831532325548080722974851561577490718382230104457701017592535814673785758994466255874906537666262533681536478606293376477909467936196925133654486853060938414394984952839710839570957682124320799101440886262805003060436385724066181367841660564348046802195207419737433341098785548276091430151197241502761811559907276171515262874624011417179915951559267452957060773695072284655281531422655082693355725876803265098849239626042470882195608821995584846078443832442734056603277638311816809494078007919515628939511247878345881816594266975968491650757439258863866353941484065304424226621396186134622113214253763115190537715147733938957836231643627219895098969754288019882527136059574876186586643427215520506302016954966170437485340434507779407236547693724496078359651400850648760567990906167003104135110871357393337161549800819410536941886481970547631800628101167199939674364840881147032018198132690054656636177652528109709681524296645793565124135399224338963437740391605164760709625052217822552887339521504003415410334407256691842042524188284563854370657582992980529824003757589949651020275243021500300547060566495035995773247380829005580047927717642996732440875111073576833637351781341993269352001963341954813379742447986355802423187935470343370823374378123584358281807239313309406935121985583805189778953430315026164531503205330666953234350313196160608065565751837770906155714676952626531031949146724092777915169852795630901574246396654522932525599410574404567790422009073520228202916250991532270445949046635811720623514358329625508023979320569891135772793486530870738868264890695116701448098653101314321632260733954400850095413701338868835429438609642819270965432531724315864285149978466376367500124340276876503560779517292965546197542129358513956771340068306148203777255290612764357926192701253258188553838322456477033599243814266944624958716081086810781324031743507596626842425274521000351386502583810728632761475161758347053684573800067871176185699459908453606163876072441318236199755090597163953643769258994825845444532167808917757587381514598336565476788531154377413133003906167630053470571635716309762506052437796574536772298599131792873645795264549469779898377180831888577092538431638257979683150190013771464941354232259362616399006161905222414529697386935423436271636308003221443838852703904733133394404385383863384623735420349583219891671515123623554876338321311695381536051867374506323336119921655407459055598393395846686132621308355856406525982730735829909021715785856634496464925686292847996558327834826946005618371237233635091520800303629136849502276715839646642258137556962960894573217363129900901881301717800770210548556890935333732071876645968836684889215254803156417607802227708608129491539682732952391194791633627116537100299772302854960699326074230696467379121350015285843979371648202804387913638715824523292512745742040286339422876614939541536889017299355646331409958286530124110188837306178857102736827266877097895027124249092200293636580582464230383718892056658286102190107347257552161985400434412364051066917200828805773023811052340168094663993680375476390505012716069269691889658432176122411516722426598150783484167870967637309456429821263098054450579456384668203173334534244124552013570085962496537525112369688336106972867303085833008970295959316296776948560750579359180800349158658753379889744931127728712604621460278174416458990358483891520500933365199143540105857055200196746275260062037976409314168592921834064022582413534846465755552184061012444922588244014681803890862813113464158088313411261066419528148736176057872827112606412898408550456321535323183491133210872175265707789842524063478146990379865005733978605523196726027590803895584543958823588907198274777218508185717225903382190408170202861090274603391766335541231458978520419265501948281752300545132748993231851705175589929561975333518573859378049089593050603964744269439209124686976810673487669419109576526253266756553400546364043585892107512240746783696092772567568278278269247027653036281838492193264032011092813612910090762723278507705349523759879917684520536764087971224153842144247371758418998330542918634932106273334463506781537602859002169887735907338004573226610267695371338328160080445915422306354949273284577044095140178614309408823821610826975017460461969123436983478941466849415197758465972576691051961941684331214785393785598552093784096000544614082183868638439396393206987053810186212515423155635926556724826297788732165907185149121989673997477011443027660564384702544904916930681454900991803196932778128436777116006194810446144410107928665634373641235647075952040856171858169108231305935693481072389564436006917899020520487946374180125401265074319494421386589635640990077767080636909191530141411940384096769809430841656955736517936920389664969379081611740860700791836858531319453939379523773594593565547589488484212209083988265904114749527141306570912746274108164405748857254124904493806564127624571633204444649990559528323941603722163933524465128921637178198560222417906270349068011488343731611369377698550783527334197299400054188618905869234221346996111658477982190915936899268841189805109454668163672422700438744972810618323227210826448494236682316247270357481365030555806334085911579995646398724933963196578694977452808926161716010679896660617640057243316934528402208158926410625655870810921731022274130903749307051557106190835615355700326241433645599851669894697991954826097173149575052695331643484838161167792504304592552966636507088104737963902419789568526504446947854611258576568694559256144536240600235158743651185339850990340180667791738663589974222459632390947180976403137126427216582548523082051456124961220007741210205561812278536190196904286098816022999916419677366835281075500755482622255724967792489239258968182024036373935130758149754572594522831481104651244070908583873266368279693514491964120939183535365704499661821344644203072544073246962572961000172835887898827765708749904590992152278185635241879055030062560579907667899222544835152538547871738265889696926142266074626051854168719282448499309298304854931831614104974302600692467244029036177715351211044666643438409824302729012119753037808433415572942445941904536393862595321607141613184199622952266286302967008338041675258280089691363457371616029610360004154291828446547775959699958842390522952853033032276520890963139713911722788368763555020552541872854965566160165153346622476653388194474252979099663529185175771142081364002247044506632592137765251712604439577753900705172295786590502360899101843374785764616280753205664115292751165145675273503260587869911552189902416076624835321396396967985712222365575247438009575831140602958799402600155711702712112806868382120184307915277464160926225175768016469441605069290275206167119540981384345819483991643666501025846901781655536801875818884119395125938157115175402287732197130325294338509669318448573207433506761020127987567672706167506903286490137782879152752307507017387293011746638628114343604143669866952530514355933117467559642600935746763531183478532172143266804390895338241965096239777982675785107672353543098175104573283952838975686438932631431603852763045650167789668843691856493574025386286129671214376429331055802817684741340659374026702397699636325326790573367534271032085766939407558358800293626465724051454112358504792434940906324215746965237797289876073890147801094358585461423784001351496231106235495645042734333814281927127261631828517919412262884772782888084475388794528257897579660523187156784564800020595131770683124558735028791468176848799163781435656086482505572408056238227289748693896426149345617408197226169293810065414831896043720192846563703665057642984655613017643806287517619409755602586897422610690415127148856089026937229377926557374350559243929843962717449985177180221418556451427863085198448391043169701883162572668501899971688037821892106565059580954492594224981851517608349021620600249596000510637531778559653512219573750925249904465367635376750043110161453264475018302852846265530484532982565774043644416111715803868241367677948262016524713065247151660715394688232254383019333016162126244799973831044317900317143364700434141178045191263133962001893526534287073596536786875130622604141466944227487622235406198170480521866897375463354223028986396612473731138390150339749662755681081543968842338190904777114485578973471269658689846030378597283552705795747831117736644670400086635954569996073343563691658667301224230045365842531114596391012414511142791161984071730112681832027337184263419169215768950270197921074444679253155455011190084178492463423749957981791402674998533964253466377574042518745410337386340757563955785028362017423426362908151945427021701008798135310239583068584605739206050968094344469137260227909976007303673845426920167158794648454950394713967433708215490881929421470983965064452529474589024515072263530114250555857746343229833928032233178811185601312916698789960644663805081309614302893604002036657174614177895591252213032869172448691717081330156871361498614604140829937805264528043107928753457810371097249800402051246606415402468848023429332354079209612516562876840444040246616756381742658758618175657457979041158280636386425400570855520023589960627892077627692656673782695201354113807796339028160168652610813556465165430787213755611908095902824135975804954834140613531558757078893698918784171233657383488227207891989147106126705221626174191023811044124539022259340065299611362913290810338891937692654870522967556319070689571641126367934895311089729635208782758500979100242563595048497707115092168773324210531384743843358579223943133317545489753018678392111679313876205967619971597851870525823309637684345985142103944339440049522608637447167423978778288186595846381854517512845385801730754199690279818933933934545075854464684168281166437617869002880188116146289966222510263191751830390091506896300282089131579054940951675207497863221724251127366227948244569250347654569194794869349404068995083353805927848259499066743802600764930151560967223070281454672092349467738363812776191895765411160349014620592152554576461637969247787461657140038084399424636924453591173879204018013572230800636254689951045256073062013325358009245301196657795604481027869650027184920070487672758773847646823446674141753592460036513915000483280051915623076640481323664342223698718057041705809265761449493635034772208042039483515302859249570577927766800495087188746204922210240301662398823452164894134878280228350163263487344158797818896295804693956758893164380466572816215215012602252556869892892849022726777547444549090505929190062274078048497053746219088204752666917080455508863342204101834491750623913402492416311662169607057274731467873322114102074656930192772522508097966898761437236619552194768320981804760137488646481313698914041406879663372775389191106464009320045094169548446193470812783169725667721227925303513252375002476431882153553092007720375013764783071511110825644107458252923847306776750217959737204452155189905573544683816565289630635821499098658023863402690700681455232693854939363304861736535803646484514220765314265647025166609138150540889161327114025527065814778351566948415996283512480234273498260137796962891676881402910265280567216113834991955954033759287436067198874423361473141774886013221158742897625272419548687059638086452833896107241567085367416426717522924217629343051878715687217677478369118082419007393045318443597240497733105017732550854938465466786606309684658845101298046686084951490070552465884946099480354643160014883929612144185954273267676916436284255504276889964493905500509390920499575314679109569815908019297440585530090328334854587388671835797053132406244686452138796765649163927062753614259420215097106746373388234870237407185288356279371976064403974132299612109995486624110646361796440262062899049738412682010643901645900396987926128531460154300598298194528569412724168427917081007655625742875351378605656556250407783869678899386755476655219870228009884129447743948928757184080450920008856135788460782622020184844216533898346513604598713345711660347863130773973255308851442591205611842356416515777429471289663529067549238356939396460242229996454107688636340461853073034008436798715088129402170096678746172537108535855571313265223925045873401215267471662269415270142862130009815522851546067673334698230357888563264125286405472223269467200892062624851679216080846369880483942991133442312239049936135233772492977189585536173177644359435150747366429742186607901427829377107707563586012838249775771410697097584752317524316617980491915330821253557047796542730497974019264755145175295333115179540451236186934340168634835878208566053007933316796740094256787345008839789324254989917213375676347680165734624571344648951972539285317939030529542088301224509023587382491720802821932096175604786804620083235340934758411896867647269944084375485099898425677434242334364720874161912714256304672506697850878992861572717421463941381363855520680182827693127076185229681155742078116974689392014520659223536874892661361363811110053188091945878275248600086713473095280597083529922450605633735896631373195136428746061476589347892161503370548479435354844921074880697980748163860541011283419282397794718864660440786177823446734484881562313894838096943988481398128187960949068918755450973570388195675919951656718371907601422944480089055057910953560054587145688332029268536571098326435311611613449642890629170876978303016851670619586281230251360946328417278489980980651855876930162472522230614143716137317299384023568421136340989472270284867970185219925615815804221085411061515178614965716996602160505380649466526768935360377720363439233476873126025638770750691516122428908489964350905196688186001150174289540520512306130227269987895768916815536555292229299642606830688828800066551448629549982076457870111989257280904743125024876910839198217369273186499645036340560987791820498222822097628421139142956374135970226566747863313803449896540484067122885287983579115691432569814416057185365194052289287714601598021264772124190704765131948977570835178697570355607614176243195015782620499144057536502217738020942536160857765558371017615929078255374313751322355231949078762254903685700880202391100406119919548064720291264517996238485149377217382969773632659016644080577700563591268956059760754019371516309925584223939299470687725458602176273468686510958799577862148877932646382251666928922993348486195632201022893968634581714174634218707260559483644869551013675665386074606972279135785390487698537282011550671261720142715406388625798646123031968627371499206337711204120385175797363204069206622744908563141233393822900677551358916800242395921109670251686442043092606481860754739439616462940150998738875438233907601670440727528060509117547793268400757607013377594408992882001555159109710177387766688889153475512576121262308076419940062100483668964096719187661329434615931680911300840177339538740375446827993526675787198140152795942171621602786867563802539791082456319377738057014974910426565019965000188711688449874258773546457236045620451809198781864672036772753318727730460456666727397651802101883150981766109865693468763315869301357470611193672946841508508671472133540510486580135114074650976919139269113073210241671770351545435036292424111595901244982656529464427030467535946942489546908041026169410719787090624362331722316200768565621969587335150256613559736492220607686733640696564516223929960936848837178340893911943502230378989400828035512703094167279902519880080394851761653952262638472100476949510815069348713767220787262125688559326303861516583119130898108114027986204143082357963340666716679882274868107972959725026950051461647180890423937334179148484856559192880105870534170235488433992564626158810945447826286144666432959098781366721645224899976074501790106273058877194605538540587161186044930877472148008565280943285433371949244674044501348769417988287424137912792017413001104334709244646216195068177599145029327761937945375121865875189149006555507492102952588408523883699597615566618083990465551910594796832720040297082530352711849292102397208784594855650561605780432234441028049396755699205495134295360693339179892721853699682071850004825506840034896516423735288623543335399193801483403757324511446902273605229494585554082827588986011218712846819357889915986007500004391939948409000564298682744439114136925576141293731298229272859076686630393427573452506225787190226905568769360190214921191953411300682167713117806827985229568782604835158234788214925040048461072595402307632850345811296757634811709633875172489333119916266100430641636824083739209767136678692918780262604103497202435708381589155631031729975808953807289765311319303061043538785535827459441016830536977879213493407934096850429820196409958487077580003395207064781224607545742893674124711039794399973688194326798596942219026434580279254482502467938486591081808934537967366636957762097922706309921332235468015042414587202934363764877712431494754305428386483893813592821447860842313502148871801852650803123315021610682407856420216232102355413558566755780145863832331787513669132987984784290633366023016221460575265163620475731418594597379686134512840214312398875584396135485169207675230607205403057505259514050977529825990967922578258897013310897609980255568812914160138242184281716221677527421102872033878901155148253358253878399477431779198951021638576483172374261558866308034883063657110952650901750013086023161798963218091337516130045958533724992856294742942645493220897301392192326766217700304062818310372945181622761030987934684063724022486180197476646337150855983673976157176528955006953681653810918724747102458856251596054876326311259523725084175025095713625398166322073315065340799251464541928405117740668611287889622567890028801471714070496354267851305913777258266749611724302972442278357337271693562192786321593324027948177849465302530221452982279313486573800586742431442875042047323713019162135883609481470756023978683289224904913270900431445786317519397233569726807889400294563972707493032488566759200780003552210327909101865087112204048668131802342744148418305249442972946046179894632544660324529558982890862963117353425526581496154531389947488772394433115400641098383658325651162529723233869879881665571606634593238918303155357914277295223097168869130667943395001253173444780079242162737322672328882671451071486592254209870392499494200251242650692618421358517844078452388853038297450379704634978293167018415653565874104180504033725178170153665791963461188900760690682467510701913784879852330029842898345791259463508860129389219934918693647205097212565113520177777563698488816197075437365426341253862923657454525032408943878271556910061042203089784112244082669797977788966573847979449864207725471149976441295541292383006198316615029755975699735446247886847852941556672976300295478190514152667050167647721163528276871639392599701663134766400621910041027378060464230629517436390555697071406425291932354561028464475425140810591645047315803367899960607144288329428896675197303879447043782353811168076334359384124032765159001613289734565028712545527710468772150802681513348833888801910295195800502322362390601012812814592474365725615446380061426391940008137364585147564378411184789852858043072681018733467953080370008222146714544973554258138034759969348216715904896983274569043942265334455351540253993742305297934327920131640972715939623742637749071739905390372870829881240561525657568972604625798267717291258016372997498780816011812220023275136999659778010773699553772022545237581520482339762909463353510981029940072518809817114590932245722783296847714851280050377547613434934887789851086145130689530176156882895711271878705139026455520019530957254721659408004787463079179252431929200134512624627658500809429536928244033144726210756038618188309101847525613524760265045477602689457844494378642762444358130538076481650023355758085872770662816646716509717091906422607629652902245793288657584621209061691710560659804687993614109994475824675218020023109178939283421816144516144085460077410603646916622201078690832748368450734238988331991673880743767255540237768366795526757995395284660826974257554132738880208626022830819683995387315843566739878280316501324651492338247708469621661418598862278852832920555580834086239578064397449478799765936112828615087732262671783755093817221975235502180620803325999678853017514798006181318487040074830726417808028325746152214399276571191252049650918590173490379908392152836786184832174118871731365417970119400326163201493545198999701542054893406542744805742262009804821351892196491643511545620972268037912511201903283703940714994221906186732951437393647345461731433373616218519683098809149513756949727558931435635236011111991772728482891614261552288291130476595237572426800175491289393312109549663338569308060035343460949579105738187078975180326151191740934863748746009463642236487578011033789826118494569838570977766399962565374164466655091673667546661217787170777589951060934862562258120655791505062619925321367865987678551114884535578862711901232125396810298702623531448991771079612748652162639524339169565313030538881939107095782452061614233014649573561121709216391539925002235470199275176608648220379816858061922903244519744873770468862413042194975814388972398492006210813379829185734456216798703266878810734227909055017594574462121285411252775733586290637176870790423030395906607578962341669903193965217266604328700512968180920834272203444608700162530256725324218080027635848881404931214121320325235666296081072540978501079300834383621498946772087128740086018554150305051458000661122419344105815579723608333204952712779658441343139771204296312781654372309121285626303265709097263138182898521846401500073953558780359567323149894083176645183952505744919247270315709678680880982744353221717404442141909324464019558669167218271071974226651449884486655656489994617861744266529598404175043089668523305662231002400777473169278147039832099654238348686242373200599214741450026993148156596100623914196691863175749044775769855098943541433524357902909295204976546850557737987379773766398343589856787730654971070524739169676176351190440774447814460290784530981664075652768702836069351559627542174791830370411436183068748647949765819812028078071659793264235091823763409557091261916362873252005688973278709746855529393892553396727407075791710184067592142552806458699424948005285110387702572141767876781473372729166982769103311515952279248041869830062368962821845929889421280071880036447743418955155470289724237283060468126194838526435806028648981769714779125557151905845503357826486251890843060354035215233880525621501465871199327997081155806063169689859211120542576595016746809318143488928528999028875142087892584350505987650206255432461742064885798572441812957710620987681765970430709335136049092846522168129014284716166141603504464285475424498068753864357244094222232156445843837324190890634803340475347175121541819094124316702038182374456107994552044442497766031399092849308259767650403584373963870776855822866126632071621794959678854923384991599964710433242780434233144059374225220930114652773725535341532788294825852830392101806339220805850257228209706838570004042181100152977729973465503834720754772186930271087719893410008820455324554122495900089902830742317273226012575565778232852044586737847802761555616643213704975434322136736564743118958626634301744177205953407726315942195245328610223741236780458389490070089253414874682411455654538412582727575234112129663167693855791628514841061855525635308690928396296660415466921595044945289688409564112476712024881117008456175071746886897345616979278294138703958615327606450042454840433225491937143484574469637464019221943434045154940688257328844736547121857232571840101275881131335975717592298123266041761769832365493090372855322418333960186968185750418928501174364806714679089079519694813648313644649026193906811826722767425941725590625026200007275450236449630789372998845736407789880848341958377180424172295717083868434171598021879315980796119648795615358007559402506213824523636680845149724444185506423963436443188651280566676881985546827610617922574633274653454016412571724827643071639919399830673867031011783204284571366747885033143729652741339067618345849339654778789629955324638133388728155849386298112409749518419140984938467510672979836673292535148507119342559911961217275073232060479401982964122163905512141166233048936990547401860291340000510887758252720278348767887760279157039466917553050233821628788984617518972172676019699944978375262098300569897579349453933145515466820620692864686334984224897409582368889974395571420484931176356817953624216115750445087366587231692499066143722504229258253205390979730531972328852633948849359240872100308816787915037960931451043530614622771224482439323038818290284409158884523497928695856598466430141905969697139592207729119825909503456699824633861589710761465728796873447364375646457668923964531687554513180157645909061253483849039470264027363404244873508572420737865397264192159507877818105059306309601543791805215590276312063989660657261097934364688877518894389023270232255163364371689515692072092979413148120698052018517632336835501189605235794865231225259956313682980243551419453463145506273875702101227683908572440726898743199676235931086529401009684173513768647260234511292701741012610848142283231094612972741440404933617465952956893519467095237709800941269468402825358447912677964635617390720960726795144035097896142657745405955225430003888877174655775929150422903513943128542843996090379301280143594194586949866636701132057040776302160927546145932238708000969971278687012138799822906910923583900159231717330721400912539485147981731030862598358993207413071577791092789310391071617239303720584371795018441692991975336472535428593556393036323962097493077972474238861779243975498148049546364494764661362485922545913461524708491621839118037391836129869194076572442993381511675248883793245852624089100072064291309813094088217081266824525849080594942415311232645141980551350535593811318777916269449489799883004687532027550044094409288106861816004943454368178348543812970482201629421841500272031679089827931231276756124310807508014603321552085864793843206602395755006529901132650085730698456137425762033682954203142310471534187964177791363782063146409400256755433370912931727491816512706357995640495317307094243933980299340220739776840032554475529138505373928023185034599187439895016680102520501460113168888507769018033486760997729848957263027809991400018893225545607560318904884960479336014627002208501625119919089412560715558715756915759565608110203816575059745747277648293957808647981307342436824769592934367164688595755988302910769449690527930548920014440360211879659817992183222601120357434293744941792296655364812885931604031202522734677769376197040694902366206261984084284488906707819182474155917744045599675289405572910710999589037722691434884558223997575267353052256376238921370173569073533063515627186931509340816796136447683889497072813059303260020832859393413646614407039390638604009445713405027705653853187636046440183934489467003437498903616140295917327335241422814891111878591930773370964658247161723006548699272920613169698361951934903729034767591543824309805391583934877547256515032870395104947016462381089563718219780078617650814752859509133227177082929827139119230083667386532829247841598625635750992262050713998844902237005441297292203734862297509849137665721047713978121832900239051248668275564172784762209502986599855503763786777594804254787738711042597107030078808747563609401440381113864253753162038762405457048438039888838902393270918888382855393764632390657095098930105657105535499336679760059144277206035610501130153506047822040737547953812983523197987549693987521484725534389012002020001419769867939042900929502376929697740669244943828787006978503573890392370051632148259445713096919037557353727896296686705298698376818477416339699037328185761058545152220690085312912165403178457321719115163723160613777800574380127173080011036874154844316452081906730967713699000422533652984134116504640001676523591084245704272274118917652249518684424152312767301280477030854269214350342500757532055177070899914427548995234405634486291922715812698970671368944626420367262848738988160610443664993074617344716141884254566477683772441137333120429131388149403284904513786083481026174999956819573060981971104555737593572086466879776835038424496136156345383639043506703214336519314922216953960154183234824377107835900578917872757209448009456667666054067951535824194732651781072150489330521548291380024770238900634259202812948337756342103060205227253816144832644515809857156073546871591565332584934994485459977868895214464131620322912312012794506239350998008701999485704082321914098658081198820399115495644239672461920395449060842098518511156016414763035897250027729183225033753131967856176088162740404735515431955559445399662081638029246446487698091948432091188799270449649401608597046628698966497392971510027986872400396556712323913362952582817204375482821210834114782542671764452050816480157655163499410929587981719346872717853170624161339692182405075651061290808619038102855433250742449761243729549240309195083598008760826704322493012160684869049966142920932778487041079585302521846886647309276845091434673691140553477105879757812771861641275736689778864030138633846822467189665635673506761240287103859962733431694935542575401749784464366590300598575108812854094959327438835560871935154640592710115368952148316254787283289706543771639686206441127734938738171809607682083926081818234091659992553292189804929896724997108326988719806530777762892848974838296180605244352525245829249834591398177715112973839116935941246895368890368857144805070633303987116669947571464183040742259072092462814565454226623956678178722729054295256102289908443154262966366865299791190147274326520577995704937307059150725012510954840139038896152062499798449152443387308797156565108424281718589569382048129629874149596729233508997037054011832427451241124222303447657568148372881846879013370395725233318084261328071918024553031225422947429834827549514674203567768965123515722890695183437813307317243650118587085736989334680147087400229148683396846518313613680462247108993106611681974190121379194550183975778369994249766220443359648713967792962157715456041156805816530496250844515195136276539477623469008424395686717946621508043526378401027571271240644755515512638577455833381664426535086784623466602116321674655430456581254619390066568556274807988021282931839039743317723524546527876588403496536111594760541934700667264884189733345883192224399379381695335291956363695545832607602050375018952619103351298015827462322146891359703985861550859299892939461317294397242144540914088142701297336506638525579703155261357129838285980982931061668006926059778458525741935280008890294367762272315862100009331317991704916907137099902844658155243982571770276018433074796478071438282311024367452685663625777189837320225558179250935517673313093268184475571443271209980578791852847647793031696970118330836070328189963486149319968383116079277740485545041222100391756132030438216870893164506501622180212079675857789906190401142123650168011464790675536777405445762599612107645678143963344592370220706446816840813170085337067392298855734519918677888955771026188665434931810937857138782244814972420314092468987947159305963667021234119093152081006196375603471662671582647846079504990171251476266819251162809455389730053156737141203339302525660982440819865762471317890211967291688139869314651505785559088315630558491289255546517178840448180997107463978063667852904749906223762946345586390995444930392779480142307677665647814949295220592322668079204056271650875693780814518638565294850847825263927287634653978875713139990480336229053558371221223099669117020170105839708672392046652290841587951563343032574655171681362287711210507371687387656365751425455643730198221376183813108389344143998376639813576093983361723731323282575063339218490634503522595183515708377119029775065128717968520561328811279603140560486018781652844676595069087710063825197464595928061577882311137339543361252657623725007646760279661124728400525576216211988319726680251948221357529884009562078412144492785199968005405932926304968523278698550291432944723452493461606361707892048273969719122593337149419326530998059647733140123717411799768621556623111907360703820191855855712846714163559508898479558415066252687788400222915276892344363169729539942903405286525835946279963538659243045019700641823379988371369724697637632697057670560558537250107556730318874395953119923094533546034239746365345112389474411323320673535077606525629743006330324351593173654080819703914389211832912147432582333207641033804959747700139073505162307229520244359362649319565626162522240172334715865569743412889196482744866875022592043690275860694963111888934035791557270387254862961002156626833021850383464836238810731793312960024551591660934350969010751049469012340689218507120905704094983181245273253028622663129812230530166371144174510870352227934232793538415482968478824718001672503889835456790527298141720725559236235280101476808448411894393867487718730846920686182027287031714560673251507617196802506732239844490338194497382870216076465404942261439340564264753463609546500879194618335196056703834354330474728816440438992922442799758954700806964806655726312622417314576332185022505579525574830923933835666015685606559350421633884413091831041349683071010892005658798352794601244497303858311245688707602144077879534998284375891045297322232354073256953022064418108747044867057760430241249410172025343038815628293255081537474799569516445978746770319807432535997024582116565489901747361932238913311216895796501621046174117348719871232081316487625609286320923281125567741769698850249108837011902363007669565013894016814276407209450123132145849309288304232898142286103377864991432201182632059297741785929760885627887805342558597031108286232343997740627399407112216370291329348042519169889126444960527295947752763791882117146002429065605763704433507439933244322219333645759565498946008108450002645815036558124917516113300940697475439307791618181382198532257136778727283728189039781530924441183596760575418869412067317134453195905861575540668715164059554976651901431966078713853767741765455823764332545692659875933501681793882215501179608370620796786988204721649398109061096846562628302392893846903705947619611156630474579357045217022490771094790490524605162227727428744662875117580985290602326478496068615583296914139862119020938841851132080727356794317470519854220146082569107246407545049283425933759444375532582119445056953635299614567618594618106000163200388968327706355722082932089787586330632485095551149901239629658409958242607030218126100354451853024057437240773924857808066611912670219739516215390325739820164940894296847149667904009307882025900144507468740613048521059644898735416566427136385823621187562082964019089980874805369137895346251227344526509525113817665987205666388873169607229786305959036046404282074680186513405030128340500583619384542504346098098611482266513738150848104866692690900994481781562432399113323692186017264828199511975563875348590039146474816483354164015943879198850401650200628587530007597434009221503787223049428412421783935992314259563089217623185331485956816595180153576651955806652432145456135007225361731255109002871011047707047302182210285245728630029740060235737165772194426881150834072159161355225718472233476100403734553892002353795790298193494318569466224952352705637970554756793020598498078120452222062654166941447638834882786584022362657226981414062380329986343452665114663062908199876338525905297805718161419288127620115559025099298823763024021451817471405388202874628235057540392841132808345467269122539828178170181732564410942221173996914413316827636851770487892109537935873787135312688085829048050217419420260443462333427653804267140409099715142585900005562825527801096127009350919668757860284295153286102408958185430997993735601223258646534598251437251479982973254524922810071093809392206094286684474000684860987156329319092582152075291077117945279393372205004822303227655189449948124697529095971233813061033334258821210601801161501384199681390986647546593243073850491999864380035532119339749965375139245564085739561818100289105570368598465579681648391174651257626534181856143787819344975577440463897266761256115979049805298503293965161438521989377662072661744003138826618619869999843260426145007968041998287651173330333462531148120588125760372107598352863310497282015981851422728771443538462961717883474838640530062678062631698010291885714327842936008611760970786263467493598960597765966738085624340808446031161162666765442254606245959431468941035076766416248494216347918941134109963426148320929728302998958327422985274923696171873560836903777973058116048295879147840838313416657972265204535129163311950879769922761298045636209409118036578216402728090781548317267005120718156494633579737875829575200823503813447521065988878734684329357122853549557274159914037151615911443693789790748138737885166717165934890816462375709685325921904708557944145141872729411467955264189491557540385028317425045904312859407167680192645747302076916000375514377833271119617106812124512215105108966977392275539453961365521806560220070547043146248452337476502545335887303338118034551785634793379047726085816930540244097182507109203239394124718823840174364423868810044097456321070786176305778084591013243680580104676047507240018749692306904045341118474605420602414852990949438897642500126813138635431509864840369172318514482205818028421813711241699711723740584818146655164372426452020960295364505783175615389759857016715029268612383114082357294167649044656676724879784908530147689060780168291612670690514053874605105101785789450489155219912413243423172352139526273922417740039434178437959333042250399094999109209278382341536203689741023247442693824565446176818488646130677645622108664327962676353191416210524715406856611253010091770459752769880131301850912355590394620005595147256500236043529938558810171893935981223752603002791670144534916808056162151348769133178638770703038310789750861800015179996072342743442966737181188515632833096746110259440890361234368681192720494283769707424666884817330107469265221341107030028685652671411403031056783297696131669251262157649054758615358184019907589880439052877489790245903678249330164875956847801256555986498872858725435363515184647773744385639824465060585559111290526787115050511761460345451533321203945329656648419403368933112573441372346420676632582932370725540147266618255405607731304126211658447826428399042073709437959220644836848557524680592663085200536052538966210872954613737693078500513063134264013533212684354835644690502090142494351512829788386183601631124075897661397142336570959237300312705073867302218309929348287442471444872586314684391936892707445507219743908101164458690719045753771457932402591477385749191765079218168216664966679527204275515936457770975148627336633332282151916010301631863013009747499595272615743180719577508816721691239936841321493504156436615835997045508532162116829832455644234962848875396123988926885625177151623455297566765133042567359571401794077278598665388503511602317580742811259163941300349253732578332618067177431054354460139563135722473998178489212246721879344786608966413826987392258058684463567460700884934295299461559868280098805515460763234542453801483516975990695588569767150117946088111456606760600964087707835045322987661521950790109372661449635096574560156744438403166853084256595098229901932891983096049704816796835747367517538383864737910727174834612062450116601476157681825107016861679203870888358950053328901930527332695543484647207875146810635346306079065128994963383269258021823926275617318897652274283982643703193856654390523754114602941591864133828469346937065978571939160070724675074426500205893900780318176414447180498357817655607082715158113304939865914640728389774955323922832184445139596058362775325861281837397571738119398009591981748176813986037767024429875315802652576904151711051451006786773299077029680530324559343986304926281466987945046150839796521053856427351582333303956695973226296501944887163224057036236993263254253282811792478178246434863052893997452701151529768371805654119031737541792245658360173905915240484633626548819210741209932948820714623291512727329830768711903551539366102187044183229307295208808429729672150374656344926868484156512402678986502727146984011030471746364469939990736279657834250993575852563590372827769629721972892335938367194823475805167631270857841000544385645590171495123442556664085714521968149241737859726896657540127664045133359317165927252544809105525923344384609260957866436541890979693904085110913755297113689075506575991398745495515216583210171460376263763155853270612077972443031426479182112788620226504461025970225139528405293839440483112386823057259603323662380708754161757301722330766350577280599713668222198582557149573893712926737697198195625234441312313053654671113475452359687506504254362264060129297230722605492728639460494270565075258800579192777967977478670270204282535260385949870584172907904709020517449528676799912387055051450155832409796537562875637458404891154782003693034840610114067206285334684611696824254153997823785758997097377840749040180401203806911348592648050193133762960810433608771566491689692348053016469234674064314583808470052857872023000865340896597646948029138334751223022025365905026565750665484380142027216716057711034878919537021954199520377501827847597000156413210193027020647863343339791265951431051871814307062363969696294594465727365256742925763002681201605497814776686027924894488119836545202034288153106092139762930964213397324866116938848654042251854489807921159735358685069822324650692905377420180403959625694814354330171383415686663003217503467764982135352684352844093519792037052945447580003104016910742550801440860487340455018037900005878930425644530132908426457667190375341024162117945587082523906298465329540541179636208773202292101209654502561812060394869073203401201482091098572992382960096347188731247390819177872628899219772396019707531592299659934443603600051644602141511121744149134442235534589857344666892859753451302579464060145309306354882395037622452779822675475314399389096316664444441587393632242646113447825359317229638584025071897784583244105712659548990036362439386581583775185630951821648696118141631568383380443311718110970459010469600111997678289781562682356946857895417467343049740386856917654659414231551711460242515360101283608364880996932933540247657759806868119082184813979752351138875900975694824942455818650728300394660084220529878317128212128230167468959151749381106034718178357162083668423027654623936643632997231205740631655181845122682442853739677381529808449381464638429887202933141690635784422761683405594867443074037533803207683755708280577695061579397187767105841074052553727318487996167272112094275987869572732364643404502469073312716169621911155958569740822754465735612368401800867947681186526132183944659306283301025244883285778594599156450517297804723392933779066937461737308650622655639931370038096133591856868033148497396972338453754710420441424584508775944241577478475954686099680644651271431441751776669679370151042194574157469057723071951112266538556451872521740461127088948074063721782348490646314158583838736006755377107030802822010026399672512604005029368761647201725791959554586139966859838750147355413924692861583194414011529256176555452871092072136275497656447510750228870714567417055110761233371831990716642415617549485565725895277911214778282686871270254043755819509052039663365974653454754048489103152999098233064569104026757953446389804732660715731828594848339693366471352413768723660535951334993194748930275119364662958915444331734567959067613963138120602740063087469720748878116823499250848371069581607422587816374524923296033351491192793920091654620362689024849016556589869853892030758102502500081261306428138818208518226548036938862659367189738415282963006516899069205450288289290375048304728266443247243693120752404536787362199253158797546601844894298753273283711593262625462231884059859769668944036663347745497293789615411410990211762794857403063947355205111815725508931419828457758345171424198922618751422039573516767127543205336344082725031077869368348696846055055622483253168560998279354315906322960798803305031129794697247379341115386607998254710128785575846150973968162458476611494824675246262901880175925250205808862314392765054013357567690707731299088682504760620030812632869955994287147872852415355167355958221742712312353284071650290728600164075545155748211137172383850553928851611690229255309203343353143689878518535564251334040979468881886636461438487245156026833307153107251133370346105133952825646406552782218581528130481123187039401765672078687769610542027717637458763691200635913288473297350768473908506512041533932954196306700010569430446405974699995549016753961549629265520433323782305966892191521332482706919475510504444255921714134476092352160714913075160360147082232593851700372574904059352316704505107092588896407742393469398568735701265968646294051418864398363842060479032945064387367404095392273504170191278758117910559370648387526458846479151799275266735206342162122272128562628699110862014876233485577006596926911519242639404847711664699768961234268609886075478554266160352893116982739988928540032600543416519371368505397668894010473993715803915790746993419400445492165320071934128773390571449527328210903958644603292341931590909032939900632157798319925138722042679167398916118465677435816349723900807217761988265653708227753243796587061341670150125745603174968372041666117555704465944001337016051227515696752085716606953284149308589357858204297966560451583247561986343614823227967290339653597486280092185961225089416791878562983064207046266938198760281817662037041643535418744371886295884183283828618721812659058853760459323439761938551451553016827459492644169321545305003829934355213881337896579861964515052471293120477800552136306514998661423713703820734192164263469723701522908166629864536860359397835273186884709506010036306816441011806645548631990499594258307954002774678681759270963510598947442978818206110845157720186260911058339762265568107391975614019294681725986515352725483003857574808751087081846460873336190837730913385618423929980289678023978385735841115440778010117872388550134878771930614664887256125062341103509648636881677151725213835794367785816032140806790231160037413741585081390301019129773186022030858805748939506010333616964487583438656464051519781795076357203708953484476522810363453599382880073141059558638344913213177626997664319682372783346252692971573103686205284869206359351762818574613307546830087590554449443910813887261787991006655661887572511363581126847554233190663076664475903060738108078993184699123537487281734168124073695025974591825720650288183819824156191096098027169819712274115894597066180243489482814462097147347056155002692898373882360213422414763219309025351179399497041228092799087239914533068050672317201140812363471131667778084303159600150505412175070231886883675174625891540138291175801676186009811481756901079090665073549507024220439897056943202840540970414294282038072462282870170466168628253650247493090385476296335380919090273926266837651323221020928689351435375653683501398599213791610299011702789710194411622341751345090878693726949401591731844267553655511580131466050761615886024256403579552507398153079195825604644099792634359312045288188896715618570714146405181063773412458421468350275838395603253038878323548940730316534750810999466521516085236336936234541503276633514836688270606330017186590236474588484624630454440621262407244544517644658469066966935179853128546761112042200813335272717610444495822805877704359004348968368346862163349515029964914014566091267272211635052407987368336098309654930290333542450322729428353084677583758452059897919895070385067279454444296099635320379274330407650394713544210692246053406466073171209206790502069778953904883654056574638093968843638242630672010161100098447510857198886967772076414418395584359757930793377381489702775879103714331145661470973111865117674415630190565672270762291385795698598995240629560298493911351314326060191761577213954326242259586050451042479124964428238108573653289461111404065838723113617716607988252402130335170172457451278380611701736645509907234247167167646240639460510020500315904410254719779619606129698453016845177717843623258026266232860168877967339816543569520735459732968501164103405794588388926655109708833247377373068795922159546910490082494598642664390377840088519965569752888659234686252445819227603917611778504497265770636054577462712007736445874973834614238379511013605653180855903286360742705986524851351798151120309771583130360755080513549409642339011378295794177439163640169791147515870133963214954121565249354410334439041071434467986663774813762400375348072511453990574758158249393937832006537651460656605582457624428648097995084054922566391936865881066366094322496779926250850612029594554460241366605396051795928772059700537443432693514429270415876252933813974349838949387913394141136854489908136418874167538730300592546460081989540141949878589182360712837418367567527251558951162984651902414643724429679116625173377666837770988119837578869767538734225673246056741892311475967405888745511682268711577700545857284950162683352199268327774603415978116820808036237131565880675580928104768291638936081954521538177408859202292394991795157572121716237509704773937065718095782315176504790214358698183334885702132034531422104538277258945200397521694305111599926046191584357963011527124507020418779598901892946315697530913860147533259286089378549208889800448076540444774800813393220971837852542680317439717742352783373929895360155920854411565861197647184564942860851102103161379505236106529322707057337142462750134481123073870124738789011870526275353910056359219983016898251364805680522630256589159745042395613582446205866451657605982120704317823676804195324539134389392304005525991571429655423416612737952097012163207792678688499605310432030156885984890315366721266388980784077227295738129220642533828476081889984995344438922406956435482454504942391121321691863965108668824329895780050445603749673564105272466529059125411247348565576460832290180871428615357080821040885668980281050489878582299479737185805755843820548386218104741792690169789863574567607014838099639286919024293555258223839785757416880855806032547089165617477405177545922464848819020259955421619324393747576675864280680026860609016733788292049088629807116943279279893750263739851073587814011412190964958285312635895903068426945729676133053777534690549598791011840365311130030376115242113745342333022885176502591147019725941353899956015212164802536171485759198173736908505363496915174015135144044403976017989963137480111298756920739003787837932374546485750434939715573833375153248385926135105698372862146282619261776739240661968279088950920236540408607977306638189076860527521537223670489108111304488228148240354639010465484029015348945767990643659343724260856106664993250047877108996569490339462029965923532938123440513147477151319211187342956135774479322302146594228060791277473952783153222876077589423878590748863299476065204184146245928105852656395451180697776441677952926229168160203794585227021914347743207048914629027130322336019110911747100530871665983199700139866449561360342098495812680907062745068919285666483665861321220453639027518588555441267365567678221492372840940488468108773183784987078878656092867890157296934533639076633073713821297852869916409272050687112111136994051502731716637437473084758553759402932759988238205038516184170178741049626438361682882844642853270411236759944363305041899547360147175866162216357485585979061735011173611836609502297721180396228646663861939074408726146868718681381938334634388990128825280793268279909947425695887625481662627044024817099464536055745259050282970372259941585804648576831039490458345949258949710304722202929476062757080819630029705112456739553821389881572240907532521414387597789608863802761928716055095542406278647441439248861137481286334264404435967328346865265046794821974303070441122436942557512698533559580480358759922947396544350316323888393729904606633655742689384153303261737569501865130051383812227115732925199774777933886100332062549310963416663095626506740990328342664515804157490412501868062373466859381670973320924475781313808093372299047502607711267731132041592372110752632681998041151343584827413579607381751781866429047128726000115909457998399393258604559225177427777991416155794543495795655968987189532859594908831238666332446434853883978423917909384295409399313829271588663865697918467016013236577646046772026567092475752614992993021496210511984707895249408927438269423839281886477909763732157058737897903975929599764109724486837051266723595359998189777345257970270585026997660814177650388656817311998457971077579875037307081632947531534292131998642333472349089902342298669296376918940100179095456506490092165067516892625519134774015550010217460707649903736809871553865488971561136742750252384811798911400600734369937061791588517110910132553968264754703090206322309257448400120738533856034360873530345077173666735636115753685700712089660687175127475764299357129217021188109154132330010853176933844689129865299005479557542615900099897058606625824743932118100076246100205033876085799326043301630714307739304222585567682649626219316415964758686873557246663007705352533214995442658987629935971385792771793697481672150190861978186692762558323165494200375476977819226775356953007774358051297939483512584423380177997097762747984174009903799688281048802380875984665158694447218646767102105145369333394957834830449381607404980337376718276052611683347624054677326634872411436629124280220279822289016461957018989290967928887901263826050967311852654153455119698406098787905679746393153697691665722710072529274824156463813372988229489824863462626624139182115618459147994191398723755887353455540382201896837416435445831967429652187706791235996106364907876096824008626205218908001029063578942235504731969059658183283759915577875767281439981137403516834087897589290731230368617116288209979835989503346028295243830441988372666522075403276728661387369198206195804382019543736056956870367869627786671740516333868674080354617962640293950936783642031232618519566054441771058615194853852480853221665136530523933368933507238333142211905279513722527424494145625426956150832616548565104386166094751701750844883032673894555830484510336633274127126893385958898382250112553359685587645460676475295826478363626259275095403191848306475210134205740865174139689967040399486226540356685043861381140776297535379206741013259086344230516157936023520053868764810034330395097540840905179755894000202563348744095493306321851663083694381251031167635525418427063345929854322221947817237881386123790051385913956573873170674396775881946540624911092640425383545386378915907972692289495994696656505401159602439862675735193492393300163844160894319859770102798136299950596527212643919542578419522985876794977358907310001794493282004349090565241636071847998280840446470716663380433170014783773545931553623509795381113564426418905816021288662044140118270655447350485285521082768437086967129185834007563204981590090439258572624814443626299076909755934140204471558075703062279015146045189005521887800252452714574815505320277267238411099775225539486292667208362481130776428549502788895300705496774369899228891430357038865979432429656696744434051121644345734154742226836886722336742987512129901411817712759215015431220487953955025923856068580879069229032195699832331342685770409040060426810711099140711974448679034960178395076887722575777419847821784909669847820183479913503294548368514043222526766371795498784408999613811578684606974095937857474508226591354098623438131672285070183151978635454005163440060225196209999218890002112190741930907844768711583858671315579424234271698111630167994759717298590043993202251196075368846446927314521885030165117732360082268466927807123593480433255833001311569475580898142037801244192353696391481305016823423795806544141414083420713177659546151762871608074467416411724964131922758450502228746719677028887804384301186476046259569981576892227946632414821747805766360130154228377250337383903599115888926080879953027631626060278044129750945039533938494870805027818932182131464362465691356310455583093971613056663519109045357766348312278475980768550731431381246208027979335515734460431282804522011165521932820897574846803459957582677890704194860124004248521729674481421689990988765820887528390617098590453150089645924572954103837707609712754167730101886465886697760093343241518392086689335837403630137091006754898271922994086306714369419381548835047072955208833062812311003732292275308430361688128618998609861750707225123535462246065186382658689519082917047724747075255780212586448471951382803043982176669098727980056609273474961465303441733437424155046714019453223707010324850363557695323021764262201690195357408682243352940867413143158516761076810812495490880785559860557603021547977263923880793282034813748684676296513149725451534920167392605367498611729210018913887664627220038526410345332995869257949698220789939475214620985129321087133760045707900640665037045054997442201240866306591833082018329779825299376688640074956657471378224673102958448316982837394942961122225613959401950365166190674656565570465574856484115225816010743049073097318052359303665747643718065443307652586264640383254767871220042199722050733234958568486571312120120618595338489382105755813199359902091532797607302420330079768834796600564443059077551208866025568312253844942542720916144540238733747916350258613911536103712202063943669663911163538744507496574838133927997254707289874315816437010026811169645095547692277529273545584356772483814270174463034284223441861457729179562845645901868693986749379594841993591250335147270686236623476794698569992882301489097571857806140986751955086840611225850631633960428592532361663691002026124353492341782564661912187509478814289295346474677874471998629471094504842058175378391584493974349125129179843828616272745721115981962709603454363961707185316975795569675237102009246866590982711631691142767826893094178918437992729865379615502576162704713162043916985719792040754302737570936388714303928913972659589391354978694082996169283014858732657910714299891417628433559110661274100221889844844650268428769585303982926713778427055739994997539993329477172710572876923974714022672657841274742245033282281922356013391490305375206038350153446836907458118884653735260922844836857593489845062532901754577884879839222706557367219956333150744396299865434601479296823805313519568751409234771706403094443651272504171112325968295280102070665098093642014228111031052479976895676861778208042471537582492572622367038513380063657993357010056224808930202711516139025711421786313652789595978805372065186205354243993176997237940956019215724695715548203670697221713721936304486551391775927056218692407974152986484949449057303725838087633465171014621778133757759321179516687096100481320212365609105068779832821409099418485094449723342200723758142429707230585692262180267004967612646018782516050619417652792416404637074369738330003480864555033620144419841616751554727843176544493130288429701157810759245963942653654069798430961715105867179107128687882998792401224437011779909299630134128692631681334700479691373341840954823510024774737231606938083003906631923779622182156358694128600027890023057386364200111844881690691762549567066369003788449467579427023265941392172639161442731760264827796015370001138197400054241692791870483178251183662063160788674085443895671725623957098850367139573988841798584231290406184075465084032243308567133432915798412351092667334882484686425822517537451026422505061405578545480637994002743645961759027168233994236367367707052039552495749049042324020918771239670770203780138589151783418519390838788114739167822608537409436049263015515092875393512150478497670530886697550658783822881117024029512112206593631636221396805880273398794983564498915677277762547858664667738056842217517777764972250486977202042949166010892247656971595333877311007202874029774517696347155759526854220145105890343183656991630998674549280987348654407221491988767365694830508386784972031185929624928388806504947808113624163150210540539706013068637191096492240606985705145677663447614119942217271647801465726860672672151881336962339290359792922253798344628241158850797320934014109749238922115741952814979952026879386290236374360507489267637850883233961287092820736724281363404674663604939688362312721841734351831534673914718715644939844711952110371015312829468623572422934232031147522436023410651651899637168852296006206073262133996940817566163183624277736978058706700961213735848122983734804249984200820939336558296805723526870716990106336983895028389843566508412861280534453857996356764597485494153759570750912546200795478170667284539843629785487213701930886282906493966653941370655646269903937596213699847939427059261500394668441645759795413214517178125923216320270546522466377682995135919910436778825889603869402578410408858303077781992691035767586918882217410978281742085950539062274310599915002613963477367063827844685767011083966450819926823357830687030622202192089781224538033722245481750013517841432178163849103973221006263574628393130774975652302340962799716779221088395728574236968290527715916881138098737561444113152829130319458896575798406233371862911615381857565431037160365632399301959648513022220647145786482595543894964867525938580354367003494615834009989009907405835041639647207586548612610589548059947582133576656793742522616102500207302599535326816630646986832219656109077724943739335747053859375507499275596653425412243518540360375817363920507243402100153396015687259175558607719986913693728418744905515002599835917643294457382281194852640086811463828928127166534583507581506324056432609133677798472877653330819952353574288877140508068461093652529274566843808196116035737570478789474053664533521034991879662620416982751004251590652712293940886198151938479219681445965993313705050804730746902122469923508772902204038343708391224319999963819676477315780202717418438514331415249533667432620785136030153648403586947953748785204142523762314841647703578234782814342621527200447133661486851183983377836587129166628410999336250375234205093595099673544201739326105694459157961591168167462277083102877638616084815279332741966705863542883329806093589845631179107211668283783659792575112383975546416635293725076022919387838712581676174455990041338682792230183950249112303914735434500687917921132742121752056447801823142056222060713733433262622545545484151505528024873861548687424898271316716411070198015687577926316354730326756698583295273619319553009526761093477693024637160533510169723975549768770773366812529519458063389141696868467398494426099136240272874772197177479139403617432716051833143710066408035341611504499690076580653729163947654159988049234409762600301760320269650260025991482459787469273896123098674308930280078156073510895661966306626561684345583612055498890887031066997995149933354963671996088613439336637310500381930787209243583833406091286578007950260901840923944629611081077886750147022617974281568363049592810651517378443492320086924539394291697401017432541353911921179896658100848279652992365730098499601657238494765375219319420999218470069783060888911152442226245305120252210542251604872167050862736657580530472911758503575951156822257640547316940419240808117180709993105901061311288971236553362290191611326364104160444414393516179378021451044542161429805039613023102631176859319899442884192676675376638137332676548978727101336039763243004491904926527762569524441034346914420345600306886933786082106348785794334143878852181440350939184001829970834459259280613710612084012006633385818305290611139376874854232975002250404855078628418222968969805413285076167837031944081680721779235674279989046125622074159231630381138884653203362049062339971433881580591034842192492628073457709370407959955139553916937131850995464562542942079520664287652775622654352799442949316695918313877351003946506046680765053238097073186680710191023723437396547343643037044252678098874389914664660532325969346293285824654552331846054758612722976765658534250658668164977979052724196419907154666435732559989899796533866713721492681674209672881849120870943246951317132011964752247112212063760589160230858202437832384248657572710955014626343624730864686643732971467190734032753036316024915716935786960244390557800898916426065965051715686909538004634127007358945508069091033772190913433506402117838816813860250092183699332354588374626374537752401885121486424690637761585004889463546062323339797240985902447679242453448365804556725943152301358414155097362962267926412875913398771765577457380227154771563718477209719859967330974538978826084559675082363227120681594038498998533296616614836485487131050723313182081647744653584974806666607112713850743853078230596088141961912495246238171951793605875061612877846761930396140491028339462722209581211964349587297067046751135861670581227260218162097529243738086878394198735493477371589511277885259875003811282210963621449083307530909165878242422898312138726058829476269438951619821045062964786635939208315762554896832479212287949440111846862616420506856458489104251615359454455066586045725231897437610485879006021381607586179774861510908435586252721834518843624240389970233740476674532026240198491373335904270223021381919797883421366871737738607449853990850794181370803409483688570458640464913514271283430953400339059304621821780864133576612330412730283372438267132859187269897556011518645718407128472867846121504955003552574082023194166132096343396943086610089298270179833858250194905206322429571758467165771782921051351374086262412069462474290570800774007963142781325412824542733776248674899550369197973484771623462700396950948561747696818956871967033363873400282610025971005973470210707396773915552670959354667582277047478180578596287820073069268439988468446867393829229887468096830386516450678351592014548991344813792883454341282192154969499115081721665561341018096576444619519589788102388044306041750370228626363836733591093626877195368532890937044510918563228877802924220149282065376191573032004434549422196642536944004678761420480698378151111993905198713498527365214973287138607558267651861613163294787062884783011288970233132164393976806492929100850427790254294627871529010643482146437482149386828139401288032043498597758477115281894602375042812414003909942884257301534008664234297119115120650936138887706444856527209087033850084007187273154633201321185238925856188651924841382715162085882388267456832809952931467583116232678114170124216585273050660454190242741258126991602619849563754493479254471345591617465051160023780518768763355359453955692146652108075152856042707409252011320908410686350870542459154184001478591298701753871915973057745034763482522521447472574807558422712700906529955948479261300693429587235665485306390932243362208006286792270721482834032762556577643095969636140984718119088431155976220638424812631742353478562780598179202867049727547425305244237626448586572739247130106823216170104656616412550407556442963475422853816972154398622681343349409587065503813952895318480398424410085793554959665362574264138447278684013605132681743169582393414887654755322172893424319134837743203843182625664049490009341429447925077888260716481044521322259205950526825841286883867742101470071479669852891213630249332259838378403606961601965939744497730862086289548332630911728733136914460147258282396060191844394938574479090800131571452783525549455325502662143495481904596774897204813467267935992997670794726592108618885091217831838471900140509885201344513610442579197549737877468274889247025160859983265820034517128185970221437358753738682160398377474687333680561600614799634701213897143555907897908272081002112237446083009997784048428692509704274028540375306615120083962992534478954723373001689953841418806291868902359061383017402460701463819633894968921194591461801931595814023847651056510580010051832658111870483192952992120425581324827437483797725063008588791164170391955011917819227876494336363867495513451546887040323453711911137921701995203650995151563899026677656766310353473968446326588763749281341845435432270671952881046470897586307227717482056073350072211599841524840187803203479321415209307396776622138925425659750043631359437335540825907181441933394734055612603858437305349852782956879479283389025459086060349047264977061298618053350382798837784849925102343578140182625400372695489344695887951848625665630492009911442407855583814078005575961498812161212919559632122308368288905835219920756961574124857089044621915950976209489965207937554672639474477193125255836884207326600334534333639513867032077239807102615148919407273793153882640677499833759684882642851805640294117376412522265654871676792837082095602558325284309195069106434869753581490288625943267846064060940365782308423576188670314767410513576696798233952681244939280470960032066622482877527166613375417729536118023876958231368129980656639515005397711834078258623997237299301093171157642608502580219985934675060472699114212560732473669005344141148334676488722747946341103979580056264301103438949191397829947379307843808607689275053131475430570228793079007807882712472365624222291643112935983301820106103054414735597860991325754182290762530357583569147349725240943364018518704137522420604246460715602928563700097238389907265911241200691016793390259437040722529171711147614145284025522608786974724080824423385082034315575452133521459300902773976526257108497330635241169107506163764563483383591266619911186422238933387124560230964798423042259616737903328765326779696555987804583940470709599481417642163269479730132586205315933187354444139693500851064617919236878191955846041423637940840057679443790833101172181436918205419655292511594209894044530450042049021567116688160585766381901213186206078337878487429485433867822249490497653906403225768725072615849481983577220699777010530306515613337134346266142112249446994699428438674108325526708199732822095496511021989926158795137573947190147364271691187574091471427408550658744240853193155034823634647161483616680107617708193198781070313084656191838903421305517639901329005665912054483623758134577953882141370921085507241598750943917612318987047586300011379338722186968992451504454716621291888031921396278784847275709385288594451188235194527257159042819194801692376373190667983217651883069650248996711876498007239683149248397509575688333022297365059078679275668766638157431466541050649861943273995254604193040894470047993120363549870612494548195816037086309272722642125279194804264529808017531702279809198114565890003296430681738884756713186185553921698524376217770708111399019849572993954127692467271738884600585053256957649275686638831829369611067813426090566858475202202184919243030347522716281354839903539769213312264812464773319257041703677036598861034327908630609961841894854623641097436910927411044814366001400301687644993022460307055145116260273730342572318427461644862123270591478663490595374160891216375110212335714395931703899135384296098867739553817018318244134660068689679988183703432834549370545428753975768643350486480951857142759064159035226060252936067884036430392000609343650088918920377786851977873666937293744983007806730542237109759571827286819591207115022266399324769308128392161485701525300840944175082654464901006212380732729205216653141255779388934858922409172217015695401935926009698472454093026725454324097465416451963873054871025526625908573274169954293965607710838580380337350026463598757530103546986436983892074987749480103318007185179139851699738956951089179524472774934262071432754042701817808981329917632845149107424624023897370605020741785249891719583981169827367529488599961293420749999664831591810389301083950530446517647337552101330724308222942272023549135821868448012634415879598552875662001552263861995946073646681197655815184718419038392838892349899526528141901072362711555711292840189690449387024946518847890645021713362451918576090887502246760699300038965282325781470983237775090704045896963028595383330609302588460889409144033912938553750352681118837089996571456876708837667754622578529396152972919626835395913141007774481712626151458941992527918437009109938461227035260032651841840414877503131177425503951414321626824474257304604239335853343445126455118443369758673231504830229535919166884723721446943972379873706274439310298905358213802617281013880964111822801491984822403077274055892137256952474830834021033406712643394650093693981774481375040071097917444354091984165559596995192276548277446877137948040800305205046430687703967378628713527326713724785486872283729882122749782224938640354766176984203234595733258096487679551934685691808382033507969729919509995674824214786005853237964721861046015011867408514738782881318421750622114531031311675453644806636680540719632016894276850184120489199071892464121071551598178728616899382431524932863988928574939410595343918175809408179559640072831035139762782094195861541484128833709121451596334924699383941754503268851626008053816749376081749892879216135806109946347103182221026689922063590855020524591359557923093010253176266706425396672068967154092091151910505714615718619362680949874855918704424144501625151169600266355931030349461749401046689112022106633718450845537066298537202919875715729681287435280615554033250797189783816023068728736331726635265291138337051531580043903414943282708697615541943907883365269913555481886940425623314180101282171727174775669037989061511082803755865450025239854360107909787720020270905792768756377500255874280876745902963761127843018236898529660034811967479355987523140378579955663234189307998865068425168918216526946048695392255046221024235140377638656195470756854762557483504603125079200415717689026150438245997524090130134842626098956307195002626608114245108001430091441237169058743696365701087108678854321532885377001855784032083300683867327272907646110506496277156263467367932977320434623079839142374732513875484949618228141955149262980939674922875990330578835255731515041475953527080114160216008532996430953169937486158012616166259616933222151144093031400155453077985579881503781232394007847805792808496486252228513113496391809024938211920568700702357284230442459353288316504619711171943944587729978712742533733927460448520363103979043896050390323813056226728442314508756858597126946322748121040779239515974821285055715750854357462599742318506201148564226591131282596607742745810257810193413775341779313880790619808774078817982369698648374910687240781746604308646466912415203114484175497109376361373886564714166662634811915870358497358578676242888218591612964681687409810465580164982830017421578723325387464985224513659329570364867259856566895177612892481605796733660014502657268235806353745714952660614067358875853139684154264237519955592844210725080020487201807591480886735967826594535246283722828976389149886272377070931984391702008431699990693110480991525482418681303126590300241648047245003409139815811807278362468520907370343213978437988918890798451684140956258465625653749598228393241324375854686765628519158863533116323563699037818853489170490951304552734115859824129596909879258922183927354135594075611134031633897449068362787001440605459258885683999220493046343189147022571578047283856865998833040692481865244266707889833634638119042325248056545312329318433067562615662870083399757125480986696787741060553790658337236797217442933247694720305973612281819458565341837223374804473464318253996305098988857095057428069404883574771303951946639845131414870482009696452254033405563849845247934967954832306053117860770875858308312422823117693881326828039005170271896424830938428144296887836528745870167181034540321040634657645510663744685654077411739860544318563835563650276922873938420201800321946047675400456591074349850488921453193689308027165594058447533249971055151790616213206661319480801020756199455121340089755899791045636177254860343339665293880933820165678319235443318884288813658170898835359564876168863950740790651140605973784499655583255406631720154420924202655613135910438129240599721065128490949622893165937816379585779459698110208417994986783976121709632042340192544032562678170650678299128889368833525574452777068751428458485334709160078643044984661658613643348063738159623346286939400144681952734842822289914792567859691590962330772788409766007544413593330485627244258305430810332336767723356585516596467548354775800911605104494885406277672855121026057072752426942897083455422853879846409669239839901412792983056736822203022637506752475754450799887841034115850848419971502705589694272839574024273991961146779715669022854849221712428318239816657222585984894027425264142418062986683471077516637916309819266193125366989425016850972761401810945994123158177663969056758359877174393840181521342976876716437795241026558424915725716859921331175473439526502439037624703439509591819855601096152032640711500299745234318329746974443706480623441835095839911722230665011268781437677663929708057413970113319546293249816246112255153491220950708271910759415486115101605537921786154651001514872102062717696888220779565378451402595962480271641510137679826156223680384178782697253496610594699296262731450655406364511239040548433892919981436713795683844273820681471649504741320161310520746379344340728137723426022702669590082032994810703658140902289224173570893702771072631489001344283820206840417226694364450707016650486999435781572163585018304507552743290673080793668581444563763337306473463364500892727661469220560094091295204510564215183544083129022001526758815778395376910277999539484330361587857812948918737014459849118019310658749275275562631159160791156847438972095983782831335391624555785553406046710525487922125161457761253993982816328592740559334723903352130046785310172466647730261294774686315848800993373785546580258180734612842737267835283525909189835028051407644057019974001666575732351743501885701113238868357288399235719585841878299994143172600163758794267043226987350188017431012094875599824271901852529512515367150826323921532416350656247309964361953819088378938189263834074637477839836438118537636261586843637737983807118704106012214653694743604317924046826028234067310262357768649410498268088008379522479361438130953252558897766291368313377849479882077238439461475208470075068614076495067054434399403861646409024195712467546314563225459432631732211318984771578767075692000534602070423894889716198326455117553637290360929301933314481182806418467471936149083782171332918768121400898149626266581067184365238818010152774531527541741078581447561447564012102256334624841433610396207485795190667908003837575848135985381964029916822736889308596773491071351156139383820947824908391229993880774109135756892574090814293652652400561520107908812621532096555601738475838514250944573880701005986610193889558607933713172207486374360809634080171702769966062122687198633673007404520014051656135655508068224445585558286608281513859693941571400680009539950074185094951914201296275807844065014262603935853786260660041691700548808012520308141192018389501660185802378940090441981603554532144607576668323213925173374624639108987433635151575624909766527816598549639176423390359330935182759214735698535282956285259867776774830063262017110367473054982174956021075749830106653070967511382513374778625943920412879203018571214090610090191917016223121362605915293622895045454603643774653283961499730841142536462888065033470658697230286808841630622064103703207596750427169754263690452007609900332043507285246927341161673178413477642022552602623915056331693045274833164392479101162746632038216129977127936797418153667562910212447567207000573418853056647863343263230678974238486402294349533469803540751490552527835383197404075264136325108439738093998448219838323953022078000720225865455768213055435998032439849858624437350507148740676530588826121339442963553544813321022843228327047580636342071112197112152598700041016645226300915512029976802579151137618727783668938423217597500623950631421575014416661355443036455131985497325718020114724702019429342630906543848524015047215358801732150706795459044623791986419443327892123601031564467056362460814687954719238314370110248360162650613988088969058750863438968164430519703807158791085605024287640487210283911372335721904617637200260510797850404047699674446888909109448914207283801212529745147195354145554853319218430742912337186339237277293820378442830982753785719391856656327986934886736274609833635344877990605970907659133408497253342141893544043616806199673801635705717392921582793478090120213992753262978966364361284271259142120613280406108158261453722246665311659822143912652498408236391907692836366601481290424870057020349600980541916343997533028722007075600339779269995578162888916691780640591165353049200289070074469464803871279809522221854580906865257461359939717890253796854391073320911436435096288024673710667534140591373102676578699788623049412951293814412895381271580949507520261923666545242333213458209778395499701402070766888272828869593694696516324229135571090295127949771983043637483401118908104383071101292644360706086195180920170686096649247644633284938184884641684124256867843229344378937955775437733045602581320806166409364384497242019398015534173658482312989555853974651654264459114677735265897084910229014538397881382723234187788389356221083250697200426993183067549383071932650053236486740126733432068316400840391200663443941050810267956861388355120283280569945399681996872508033261387381124823197876721264631893129981628144694879525585105759516330004930862893863810649120094750113202858229174019188908560982716904509499536668398360330461439454818724166655300010384445114497094161463462950349022247671972749816095207781524612536166809351431464919491114579155168810631793857022583980119193015804158166753658850955088835785935814054832498175617284323046458485129618993704467350209151984578320364261303632484019170521563381957025082702117882626747266680442054141595342580288067100498075795474138058435155709157860839900731532983250167762350274012687458262119240166988538599044947347894032705774182555204070440799910674391477953088258729606592255935180527383838826130473413283077988517417150573235969033214441090662414529958190689408489602252188496777536064915145255268604999037994454681665273156693539133551913392537630357341112019889950873014118124514124159751678771965479845502096401706341096049416958681742428697799579404808053521439802144267485525724915465637032668713614908862956152484560758589055154955167858068677442849610043417187019259257735358470727069551745327496246079767906659888813892321447416409953598470097078943942163544042365302000609734086591927290483296764308726818952029937622528946053374335650841401633847941712922376021970775010417077834171766740176532142101928457555232569466697576138157305779261518453237578352855322849484206800050256087381011028531421323680969824656436686753152076859546437980481113174166699274819740409452972435361442029269617968067978991665138010087122436250078561763903046418397326446132970912324670501415028425769284310004918018435478683388049104443618829060942124016650407389794561575954161213706185347173265261944166514769745119353027764307087713927888351773073303040404894965897587191948140563539650514456539954297447880737409757976804529193761989743195808800461373682967118887812604965230365409287683742561845905462339534713717503202030028489451376655571828070415230954624762163798075514946803100911705352824581602597524835613021754916642190412286217468367772257434064317506736395767765389224751309613352992248665867729327097793430768771614933733296469090541233995909744401642662437880633487227827157519177525147580851938953130342341971240295309961305690178335195793081126497972326570926953951066605884378579823462598326837446905113557494022055102470481602554761143897898713482059005818963648384261381392324331255838351931966888301011270584114108535147339219974909650710874768642340833870439165903847045819481093836120183475151488798002050951195215729349079914656915305205565191483330918462880616042426237838066451441290310281153089662274591993950655776918376934883619153705676517362319860405557634452893953842189171912866653163564367874619978762900497729553092162324632321700808499226372011506645998133540320856433373378497649052759836067724246344603997822274055165875293025802168733829927464368109983222710597802098000361142763405283137043842871498065358526704992451466206770488717788157744229460381507596973490985268107910928553052988897725956859210353978160731745719794267148705970350034916460471792465440657706741534939370947180894076805181873243679652871004490448651518740710920975368785808111658098370373126362243005797362477556376471140787283808577256035838513749913278572814198116701596292612847205968370043269260706546926843878618346304275212711554967590014454905941490797859349991646645597952836254844285396766776671550946909034993817992082290322623791237803923079887877565177838054343976128684082008795451669386066754106857188250428028384526325565331212150006582023089768414356252598881021878035883693154495363978661853060739774805277981789377128743459567630398381214125651420715230938406076866444961072374247428872996760623296042578130064013118152842949193022613631671991267497227749242089875815620178225138690560705905832275146488975725560084321593782406406178731216412969562973060205709998839201947885760496076614429350134470205132042232003541575427364017210644859233007825040236175694855718743662560455815544542144461548621507986263273653787487942314569202966178016946974451601324444324316296855208970197799873004239488047187031780104274598077285082184238595341590124346745803934474473875331338868976052831111483724506620797660615713343461432246159826013653705969956964466499249533499179461926361226955159719431785843614693200486670800312745497648042263629836077356981660725514567668909890172271629070535962878791806555366187365127410018291581897604721934831608851401281544002810508474949638165460691483661286039679014334913948316884533399414446921612363703212796684116847181567949803498820925778568431405811695461148518615510693957405674465025973721081156848192045016729393541009280121391662832749285953008893220240574956086485244297088443136582662774587198820401906305414921299542805054257378874780617859655015161863690582241863436650773537208984718897421825485928584426120282593891681099150011839121585033387888972024914712036756853887657568948778630580887643465395490322276263304175544246702906086193313880450308808480696819267305227194609499495567370765163715272575175235050852506096505734794816364516235907532845327290544205129129049051415034742816135318831403170979792648096752362499912499094773679791880141980201778590952962530644525854059277187156340856271913526169295642306495529430469849235933518194808572758103741625886463053438578136162340101261985802942859659378581030689714048523054367475282068884639601663172397279406516626461228988036871534118476900933154704514883804881382693393494746246073491146427488489325777057875519678523447046001595353617407002689712877199817787083903551584468385772385980268720338155362189867145960424310391365385887043829800562678900086607116918353861099986607338933248610833669198037381639559508712799889966607378170886860438377000423039061874177714440027426793548403710790350287222270357763912290811109797802776349221931127407476097483228816281830526087180462659316431534126718829233493768277511815217818015748024463065829360967703325320875811994501351711353493305346248187647713848544249998157173676056570782782868509262914376079730562913766446123246706304961843452142461230717068563837199867972555770700064989821270591258752972121278797020140147990863568203625571676341905341336660003716396181213460944898575233042331863868048347708858813119044523227384508843765468409695503621084985533698570530172601965249733604695953961289564631773958351906787345605364452766093993381311949403717972771165803888779907114203777126554823732057049379429271259915699094385258038796400732745743090104769328013036300923634917276574648079483480672017252028330056874145049125595264387115493939664345004324088568860919504695422863762119545105504038209437175705475142871428302237392399484081069575264312118461977283158880040873841102035922517468135333247083370629742687957656679041200606236002552843808768750266912033044234811220008303524055991433821845845968555357505830334731652620257700172288839397702099106865894751029846108665437362307250411341763439975006876442309653693605056431228440668021835422672460946905337962321142771527038816080588937265331030276886841030843809815053360838727559259103144826751430310422447711073054947658636112627316641774409187217589895428393533514553068142564583103510965508815879967682228148929312566857383549076035759116532038679953496262697813261763230121831351221684578565807346777223168929679928258972694978215518552766492700580087402513342361936672641461522071385111769778227303459678137341255352953399519567111959966130656958561158242022722477396744007533151260168877896890039868624233411179954933926674672041059811103276157401190565429257812311997254874797501948831266991370708520782835974784160595054327325116457173902408401784537699351090823328839295459326618547592803133426165262579532145896357940654622035967108604062776159637554520742176569408399903098990742462767810730247037606937199795661115046298854681896746164185919364870025452292210415549872029327472493127256617195227638483744129150371941929558832499021119427593643421354005307375423401291117798953777880204892378293706757525067148672775500661597112869101789057720116977987491459000430434432591957210312628122737778451244234170471469625238470147491099272250323933324741038876861516984815050320097122229444757669665652969343154536825565151169587279052230261590986177711633183747822634171443911815704545096338726719605899483349345509179458911033818404430727036453452437041718787151775197475429369992801124383038398959141655840323310679163627755487698248017447064568511454385787335232373663553991470546247686517715276423740206495058581432907419717148685079687343566646896672697448912786881129759809822526715158095533015329181001791365591483360490069698207351925924815682239594169936598878299586910638043174563223317651186184730798037806520035707427713327909672303879236721498365131442992802395224606125491121155207646640086978262236247359158823746692943485397085106348363772386674787576540358757488758432486523609832718217529629995023305769665740553195373194819632056506912224305627851433935145885363710326612945952718409384095595710485278026224674027923985913067349998808100453956328958103337789467208444058063531214688488707911931360689780630642675440363813405354305148203888275722480252376283865694212466435001977460705743029458745339906933213547920382719728936439112276546765911751909265229392038941233337691946176506924236582680986793050081334887170151111584067772026029254580902160185151582372373083496222842877474133060820970532184723891263999736995697845647526126307232150982305991444028242777459490030019613131683679882474827622301237306377883865876608563614802135950631414449893858042842597961793343430408541886046218645729605577134573478714979212905196420574787083183470749937629531255739818481327932846257495746244376905607196196025617426388110370575030806070722770087723221789272167462654539069115191570686753703033741338003582441150892023815193956508535592047234806572758718666419443202647071528443224265397528807564630677925715180791967681426499514640059942283979243093628556794834928087576219798739245195988618815409275425896005112360717267028202730015269988033706919911119312375492023698372792970404046442444655827929472235682566904452749838214327530151426692139138892449481537188479828480865022345726308705468878202471220414830848052455709358484002002988807606867938523013280893140785504998459536485611710659170621013610897802322136920058834766792051156631555568206233856730848988711361241305256817095666955873655604361002892217846866257993439997687806767307186661770709794455912999656126592581995599043675674957100527810214555098826592436008500917025782528229304041655557885212632661452568990376356903240540540085961525733015105935199756659018313710656433621861017083482568002580434719244518843459020534089937423957797751958249618746136845036946362394539130048404196967816148012531311262001575867818495747166814830941309058949029553658964306143847669923540973181566887412444432409298200039672301304778438464380342776361895301546453957125454102696839515424536880310483992307366930109423884877745097515062562179092865315578883540316971485685919781150151214437736104765609541251090784382184040056777801225793564118229770666154276854169978894827446324211013119632870876071591077347524671376281117133623207437222953842363482757908822602903109797868578931914910130731744904805127542707950964997588876618400956475952187801167965792949039494109130487324012902435956681070310310300710140537887944663375025916094105855174488875236147651627897251775627492529561559665610732237158887415327558239576116226578651805050047644421904499567038968974132549069637556087943524868141623407646685313985985089422136962014129701906330260370511202115189365831852133088445734681861914038481165414616658171734879095758741921864531790591164953603152823714031693837510966772635170131004212224449910767159141959737140789445821477707300733942257278135292024942844179108006813110019597640332257401602351468676124034965920962132486114936749922244391920596618130226200836668469007927760442618414033129076228978976003891430737107638552304633828518153743837597769085996856853647734287622444580028837018241831705810447022612563483109568849202793140106387312869410770609042041783449685511193734629613147154896694368370437489064167359077032055240889122581476709096768870894911661104445125923983734173254884460131632879074007701121460449277931700688933599852364744335831428420240248970610844650669436988139731840712617028747454482749395912853480715583215764570688807472946291215897928872517257089441111659876869658349412271587905235733233765916618316596551668475902460342545388563683758584582791112375973044747510179403313667096687694393449432020885583777642764916744243667337416067625414875825086156423902274073219980407141061344830078233850818139667894788056717111660698475242629796009911136467741358121254439428022357502437494120054815869012839159034604066760254013906907471581659319939800069025418558832900604100845709631632139734364408463764735702210403110947520971515391939938467792120367398793388874299465918631416094779639233610946786420404356978959639590248310273108572943906947572151091314487555438403009963259840697931528543567051969284727513935906960301092281473932467115852570385039568682582988659357137086373750166729923424243015622024382190822263861517553740391919338317177815181033718501584622731013369862790406736384725339103174298296599602140660601149482426734312567697069236801250250014212985210968967501928393664605179730017239944211679966082741991083215260670983754377453765437749195313677715399913593425159035604379320387847658342912081264065668360352885213413685031016426993088693751134869223881876017019890749591334231904377809525961647190990902515120407912777045119386740242959280523431720193448818270866587676065924712301434752792246158705712904487754025695404467791927421188549338190970126363783907278998808368460891158635644735343167008487064636525718313776701459777979561684530586853962379945130667940133354675468006569722302171292052974124960215141810600785810054902431480454156903298632965045181877469213427055018077540699580552829587617052369463001446632636566523271194167798234247499106615013382819125615021431071805394421878581093200173043047799705886100293417347286609768635114276999805863163002832249870045243401926234520886789045842438712545117236431832101458562605625824282871988071209022409014837544919328544055533291636443751868582395803900030690788360311630873491260794334484514811108804396252158125110549905995254588520648010268591208147999715499133199593877991359876434647698887666581149158801381899549413375143057229520042771424485779771711579918908786951740728063794775492653241589297203999938085833130672662002259853680552869204803781096957268359472215048792560073479117497744321910715275078142467017007999608807490220534177818998149227857008284925337272827615710806090891559058527343332335367904495119330293154584393246812221269932970954545076125729296918244937894413041103584951434943077045865922216076574661976944279999234696534057177835828201093499339680653630381301620760880217466022481700708198370621285900471350623686600845066693286586951496103094226628380616560569240113000238576198664086919888656844432039185461401204815146608889318272648023824704867766733849208110206205852094908935213895504567807974511211965051053974235500418467888316497614247712126929439225853210861111696727691607565402552753421485577692963574775898250773082208382791336593400046837007566170290543850317190488187321388271537749554351338720297033462097111311856129184441474915761347630808901475924034906404307211123261415630823473014846986239093842848246694284993490098770072876215935683336891048248275967672180634504044662839557914844421190612501104480981938027293546476649731914490231923437100243115121211772206230387582103088552528629216338041006209081505661310934641344833996811004772793409378143934574197916171163908663290973027091198514373526953056203315433135500641605925589497792872478414913674456742907473626972575551471663635705439083937282306883987280486135668402924692027651566471601844906290463473248083640994146593623587988014532498244564856389784281768042344732264539993604589155105557821585919425535356659105620855860200414403925210019632223807734197323535731699366383025610956331178970860181314902899010737959213294212448321513313981291364320013007596287934000157064915067677334001292026578654246651787443283239807154059727741562664115391220495788373028462428443826909888838265164241258319210142758694120284728645450131165138182093034718318865399676614184291451237748568979540669622174345562180446499057838731088980850023847854899688711437696010863980088954672879949372875437624760823430945909208389829492603150349726945202455361945955787158583682411652175996772435133904233470025133412811920245196431347386205168179727359944401947739297797211464912823788795595056056666685933900702908979826779353424350465643192123653372919640731619429269717087062338247326373223336539488112085311399341070878129996855455919346375985937545473031448564861497414149465965712998434410149405901803916951997653332990606731233584510294086631111908946083844507640505217014920532137009365001455864914406976698558378987795783113160141513465373108876072333284602050027611296547578735369726132726458327635056675929122187265112935405444968780962517141466113197359171119955192852455004868258314362698599203950860230010835379836040474021416956116912565020378679911108769614928704182872500115626922987654796390506242198598878460212858093008775342416206386616996941778229167138994487785268613547689132500351865798505090497391858456229712351335740152592329891724697205477236535829087691292778841711405475299024867834439654962883089482978989203801466014355324572444216486183920483293258709937829110023342097414789944353023396447854909561426621972177371291793228156615919027616035032437524299957108518565406781271770698710383877712332383763477658986975106572223995151351983436886987512350667637532121765955395450657659126666156126735955242375931840693172308830090530967952717055552323097373521229678923767105641399436503998010538856142793124092934045480201458973227742231183254584013173289552641922093730219382718467187835574594425602865845845514980188109685013081541569046617052517303929988712983366514947089162688015639607110536401917962846386874329148335264027038776102429152825318385636049739514863267528534861278412691971072139513061476127334258837379372027470044370681871550050661606483402112050385263411484858592659913558851745079174804238794746758404364915533209916841098147055078136669568675144239230812085500315846344725153508896744015902141307495355733076130749657040909572727432466643552194434227052367474716867178616499601120810556730924446703715883659965254782735016989291013476818232482667452266543649058661013662354610604050905228416133022743895578920602044884545633738992849203904778385704172394993437173042946741744709387553304621959069988759868255381655604068597601149204107755412073516235021107800421483018185349645260205080495848478604369104675632591354276722319316143929074608123662471258683441040239383751443280244263877052205418512467453774380221336532037139149304743556289192606535077003883682651806380362483128644174926140937037255450105023510407661146412833407719647093449899574043024675464755263430441597840019976649982292270177180945979333717009935382109597435049698011352398468393833518715543982015960273207775244697557574475914438554385004449879848595552365712917615323879684275415489637001919869925794931619867759855945066191816785579118331871746259573311753403684876247410867212772558742800560775227813447740315375290642379657861753396989600754664925677153638912572758665219919382486260965628969905539953146887069139521841297089679821460977237755696407573317419514578728138414063098926476191759908220516690822640795617489085045945291347382765500325889848849095391447566173233650086555445402917037944155464873609766617745881224507907352704089278996003777447175670888331819783849201731280431754630781638541915942233467903879391037488439591226934384288500409504420862905596243651431946548060126384451765319969018416190404968022530558766830998956982124895057108204190977825309197831167667975852418869819523772364739765737352883191373210300433390287064410548804336522199543972958857169834568388938273461651123270176487390561134978207101510836577436813288062195109584635427608173310239069380455381481217405125253529193321968911464283379243959662510646175706549831154421366840931290529966520934751149308423263051831837134832297607058635113048642118112659717717798971271763400665195502510980870268715122524555638752096441336699120132663651574696470404950074478547693301166567481347247266990186838610758407270582598179137725472314880224513690989626389136884809000030583490905539762447984722816286536094339300668359797807812170408975416904554444466930677341278061610044255388161297946554932770461598233377081600702067404262464595591559591929296999306903017352025528017640233928843744075068380404751168177472854988445780365750353970508008010777211015053906486262532944821782920892158841513924177457865704391540710240023748606984933750708751750384625743905563689483785578496879693586122125645348174401287042558788277850150460309173336856054341180985419404292514834457130950331745527951096921171580378885377301491013130935522738049616049113718317758279199895704320139237634516556620156326792315587433414154061175015394036136170163030371830252146866289555599230876834262731358915419573194948705392210710181044613794394637842284846347086102949350828491536536947963803803369126892115121748655719782872920592861947865157059788793046715212093137067141652936141338202829929134328148863874315388939612343426650688046280129890120346308458053377998005816597992088790765285323476546673437852604756054016856588748233906329070506271196716127151125323878295774889653467100895234332723044321838966194307040133342522377043640916254456218171777223817885301198145581500508957418652780542188640513480515156714183158238831002529259381786128775374111353828063868725481085536879260751230301757463095305514688466772652388438454434950065588883947598958096111296582583961957152054246178876205318481281485756738770860149652001496767385258581327682836112951507725282587022030958117387943861495619117504951254711292704705327636728357395755266785094861703907786504970043209517688385225763917395804965485757432599330059036564104405902225905688553551055483103499676809133956233129239733140790503497119496093484127059718053214943253849336787559763175485808338332526612800974111351559236864294935447605748736053157538336992067494203308282188519529842329802057539514142221093635102086135149029597826923233445258237552243751283080665224675665066342363380859874188959038228925325013474574481688878975124782370373406343554526343675972379448283101565439309684126641735413983111572250175987325186765864597267618099926204288844507322484126899504957519399798327423013823494933173586046433046159594898348125424645750660012614219686962666139885152903305427404211422002530333335252497495594631938505627897545969453231611274805353561542426808884702490487454352167765489356269216270890480390061224847496301104872827802804859097780085001408075764876458673174907315436911632928154583937114794825555711907325518229097484647794020742464118158479867923271613921112858573923185817228564485539387103566894843963187056000667870973211992812630399197076085616221861522909948958818236190102763083800558168993838418862637905828270367597416636004174242109612380893508737553978988220588298484598436361630000961065922523411059164033890880148126610748159553798585779689553420010576029035171829820274943010175989396839896315895606089424002763023821525016078747219721757356406139284586243084777954219275680159210735446130346149231369618394060509773019654818051534280443633250019558067805649825406130968893620188312516057331674200071714440164245800829415528553105427966557535115686113358590903038774894327328166534657300238157466427330903785507147478260717105038413620355438975764358443424079289834597723130648459281810060789506746387181637393993891630371666205146523576898155729291357160993223872198124844157687687030747515696582263266881868409412039180665380622315877412921110417043104583668190455622257545447379165305606715065789960259225039026842719141399136428610665983075250086864614383167393304461055551317753795947582079492028162043237169710398346087446518584074660216712682894243632564409778908628254980866395596377596112685442520614296872835751292341631171304547519194925499379249008178186194591119134044789690549678158791797023045293433281111875253308572200302048691091458196016962075044027598410570301022605821208202575994111438973045421366441332837216415264635919648445763035534987316459709642446834952702937777434843482300968463623508869932439967260762891000856898015871890991405181059146832268791700554292755218634977310088966521175000078925780246613693856362009676345809272618348872700917515647552318454262261234007359402917087850273539262272369723399827431201112325020565861011626070883163675223030255749728578872975652899250481457029390362048190846761524082415014603269976157129998279060932854106292760178304203672072139554024787106680109178346167006556420775454958400980759601548129213779437650039506890117989073143837701889540764810606462071095751821823548740798679402682759534579494873765351232242763249011733749923145861516590189407914218143289115610638170758413619521290909535668521975560482545410347040044765559779093756311622413865536688460422660850510129683613594000233713295080055614940074649750399356694923121418472276518016108052380878073311931593670828728490873910441916546514818657629436042677788826566326427995331768153480988300861907071155035719948918501011806364063081986893295461950082351929283049128781616725479259306440376961438909567277611467520148560337120728617246091477762136614121557217446883781891698519859235510558915668540359418772909363601306112206743924613989851007019357410631352615734532620503259742124622563033386738224399041329249640815490581583686779355593917683704375537090506700763044922008729226836691684463182314188228850943153139005963240280479338608285094984928862987310618664077663162354142738650374188918939052619239033481492857648715027325541529855596407111342524410257345419244502721831501785449079283804228333936251731925111881057439531013247629547003362136029620405917746054096115735269645024069711440560710626753974320563980557830571150455217128645661627037563607394929646147410396994762245471205170410741285453149385203767328508417079674619842436014065773902328715246873188283014504314013033058669012022725325158219556016519009747669884827838514076871187476238121332240772938713010747230283707730131184305639816570174386567331276900412511371599376459118356448635356113837078550674875135434364538974991312841559177352662541417953686380596771856185200592813891952999000940004320044689884966506438333474699243250516989489649918682766277037078092051698714544813995899425324473110023786266773486697734743262704967988528483552273339630176692005745968997673059027258262866472746401988961248835915966463798445035694233301157570430233831471669399016330760207223898564481861700149966765664527584861430921962559674013436580081182293545442760187742304016597160180698132745240319649945074556991924537962584802793463142192322172394415965401154545373047194857461792418546711785368078896746486351380164432280589082011830008949163567497036558725204099058742353389688233325572481003038779991808578943188422295057293938578407325294388108454760966742861568061343153861597776817940800753461980221066329808504483499744669312898508402076386114328516793649791662892561567197862975604331154197481462655055032933381735582870110380090356523072253303939850703801887599132305604774862647143364487272270811742664348902038217307426230735294232495516164520884358665707951928011393900287063492979337031808279584884240633098828213885782259813123867073897101467940749917871244047255538600188552959494262781275510116683811640554187488619508693611615611632786884633220558109456135678936777543561208256516187237028075992516926807968690042906178962727922727488745829780486123067424572469272645312052012429321693145749118440892289364773333670394265099355201014259239339859100233143002774664997528126147871839978770316074779680463863807398600965053033412170939531466040184756540202123791607296045506931154173960087237473806539835304247921133042267103346906727459193018009248488129207288927082662933989035721095871908497484728352362509670494689451095477590359602692306948103804677223545924347222127801702451705729322974327741106655565631633821717284650677602602131059544355658510644530079185438101893058212849889019202009900190309953198782501688071900972913460501789046083556611392036576831572631819142614577346004608477844936443160403345382751201100175297027333015004624556430369496502121800140280235543529315416106544331480544780490314952093930780568376880249243889315961853961857814087417351935476253860665381509181106038490554730998066195781283329042807637631674511728276002017241216631596314828502759329963127804902468737908621627083526244978909180963480334492119247843943001124492012095599924273841738895587092145028574750291947702428983109848856059061677903876087979866279851041723059447115354805994593294740890239439603905793660243845642661705903243949644143683443722565362930659227548710589521005877242195712051933784496201697910525455061467414960363295761696761814046632528756591686467281715583860031451718029584842567296506259189146931898236069669466835126802294277577067328224180820246005886167273437151511063316955391696891404362345774347757062255911951562089869636585842004983710907212725716267639875259771943444413202988728671683855374530483989712623391448893577937655538190836468532084889872845516311568514046303058576302913201836510770882116841290423220848705357289528715335704891496569553047321746411940862594794958233972597841227151387972393162240156406282527419314126342150128740344618000100929508402100956257576894386574956365986849106271621021789243781923218065525780669129540298475218119763091358300590570340012015912818117294730574102819320555586011690687396155786304486511253713117450931797242701036983929028490940410747996668994990410540958129665189262308890639133265961636832586445416384269706741395489591766175535997381909488002015409130341298127630234727648235698317343559958499494094226426728349963907072100696834023127327902974910718958819775275675656929426718944257620032306991164716694725490746735046834372305587235738917786813472052829539329573357073321779641149662717856180271146497891818785451087146979690035420736544756817827188578235287658885335072106853302698640465977483355446925856513167725269073542644034652734028295174574405168604042471348613147118723607650048768330500007703187410663997111999127216330186750398060575071295611613327820145319266452673034274404278930291807233234498857818916049646272369311596036734272237919928013149955626112881623865534268460715678658938929034707567271463887600056086006994676059453001120209790437541907343214338350384105286205348359127403492710179059070290737797944012612283178449441353705373791319810557144023922273478081602308246639029361041288725957827800096184247781367101163135608973888412460278094741719179684856774199395334665644163741459112438776260521838331569676481418663689103103836902909249127978255117590845948899794912228035641874299021017413990012870204671947921497971083469751807988608782081450869018394344423979972952590313012933331473607988619633914197017010732549968862508055785721146833338796576649845173288976091867144094826555628322401130101681223671593768148021447725886949136386694813949474461253063757904480384278286709628075530348811151679650524698605755331596987503232815721888570420713264302818471470434914019464876232203784979309302846324232049526559196069456079455791020592259271544398572444429887488133872425067307038605804114310180440988869600196499139505971354898573013813776689322174145132758938913752334328962595856405915466094437804391183552243478228830568744457886172118494560314676505222432051232910835434883029744776852230481200057387354642368923175938777545388773428413612587424969229050926302806113403382677092961328959394486451534160733158741755687350779676975279182201221153794499009153950952377202112308050022393273246658470248852381154082336548309620077407389478562660903230089724894784298530221240295451931775294002367799820026269105188435801156009469694691628361161976044353392243250181071532239517494121091595680361726745287736606670482182714477788591223074951971787371695530497243691846410527468038652270202058078069144143235546566788618109833355127957828348409599728809511413169135069575717747173075227560038442671010184542098320486539380079911791729147677757531196641474436050344938003754998030416804607598184120775650393895262959777146379172394655633796598361277425167948345907449790376705490887130256164784054764831567621148630753072035413616865461243515735998927090758416910187893002096030048296674337881087245737418747586887896633936439196598548725637414401591801784472247412138328703864062740656008937385824919023290462464503342691517736560413017087342765213510477829951902610697557598169624305708421363092622980881008889304827435029742655937273673180167082216389012174564550942435990043831498846400010316622243323722883767141671824325860992845357295773059039230403878363283508766342816456853909671926486963248674742477014302311475535714549779263089352140621557498448737141466843285513686740038749260764464046296149119313527744785243015291303211834181810711995734736249744947460979791729520571701253115445109576760196434171299400528027490252033872178633959278113267153583730873239184828923362482268638636101552373538578285968388756963173434510139546734142439926391281406162862014509597834334617234815123060375282007773285827031474791513127771604373938866757300910129649508869018747300112160192680759186510324020154148228546533662981864034944254513207982510735854623760990243562782788573571282168197456949946372448308227883807963880043133328738976917260773482467394064550643488659454345429285527742815472923146877458293707340216828163191451935591470911044265200665785042926743375089873097955839750997869218010365600224185361310401713198062625706396438304028268136979534143192859205545858953090150391659510321321086483034854333007956581428511669218308638684882390262585624081670478534704129517120761707089205758128402357929394486429401147386615369677849506089768639327639785515631027886285513162217543832746173047999604374658787790460568438646272444213270495389483175164238289596071939523685122435937891542828481646465253991685226640386215325859950045414239466796364431799565760562231399871538281181110272790328409852072335652271761848126818697281560837150837537536674989914480979703152498115579746715443037358398348801711170938317379416635246610989158326419004057405176029608649911661507303316390564528830338051340243551454413686433657206636170659044733496550725733408954866047383339637481107981891506936843060627446391164483048671565576991668449000999970264193248590525420511389072559994550560904136059275093688482214433680132964291318681982813532503710547690745009082462967234953033606699567294484195707485247592489192877850970052419824585311771098825329951760946764785397471096908193327424840282734912346329681556853845694294741789654171888418119259902684928981729662338726187582857430021840272650382875021166411777597951845436518577007204599628175756157538527303662661924529661601502271267470346825349577909856997766113730924093082354387324965759983547699552404343943068024850511969819785261678421624296006504852623118974734618299349789482728955167905058830769827304019372682495548376568413858574154625428754547938659700519016199286965792716484250235760726628680117002254375086890131984522186802591269987886522381039119128649090577459367897532894019335518241990740455836860779552743753888479903179888509910869884024533994697998594855507844598047641752483544223914315689741461548440866830981659891465728731407079109318713694906931741615534139462517742688163554286387855051462440913276479509266472242722424822230382276595500152625922953473589462967891895476742771179556339685061743762199486190801285996868660996175884499105832130002705583413529941060395667705655468991602219192251509902090114127316600011994294954794144713696631176278289080359610430136282857083926528424924499829303119345444607208196054303060984828103941710929777579781151936199358205176837567802174751667222370858700947243354788257847353539672211291991647874786519646176806197822752668767661240308233434336370991110916548680587514384537260655175253933843216898372216339164189159331810074762745729604335192212863722025966769893098838057394245088752934799258831382796028065949664406820270701574229270556497592351866600266240926256944788284080051011135249429433028661052078312054739848560389599360942098564163657906176703129950534499705856232287975411210715102644634895818459430685154306037338957051739364100215473112336546919284720556662967284593681154302456514392551905032298512999863537574461925169458472249984551371206520819216841236861075064706991594492391689344777569217233260775293647843372221409535969370631864432236632069039275252784894864643163415843927064177211654279178016325006088876034391640445515535346667572246644155896990988328226386595365045806790011180452346651526097690278434364555472325628603569769707312954829359489531144302365872644524469391133624580140584644179203158857868383463995650225834655911969324778386771434473476035442759195975427993259074829712016165872329096603369296422288375972848995693231109661214760729178148972713109558170946968075153034004896864812207007928666981636164706873894880482610951479616184262046311535744997212438959245088962167893204781807781600785819634058145855592114940123617984216967212815387881647395124877937199128434025451504880311112950814714318289882564647781080711597349019794907463152382262056906522030969664376845462940290556020064671838064172113946606226780631722920483478384431787289049722489647601822279155443789246525959097251384294654497243746509766514987774440892574737461294133893078543618421571564530136604132005906794620306868587432805692673420179765966303041827800677171294689480185118554722658738844118826893979539449631452844174696088790817008284315554396206699794158933199807168348622662653699224720920753499470386386158207284553309471858393342926030629966891182757171743580982844836676500648337174022921904979782585561791248745799889579246082758050334745751668233462776675941312462611689839141965166990695709354491218694120835197992770899021952885246885476209434252392488456719453878936542743938308284538828198701066199801174097882277092741538934217284957186921578965290925973430311315149997387359959685547992360157077306189168077724185665129223059693450358163906132891918826927966243591716763296852972580252978454650820827925054819261819012652837740051352699410488427355946410834791760219652628461901831923662944832168976447437710972282445789877603775715632384528626933065180579977195738320898324371028858908583189297615705623098595191400273139147967420251952065751742449923702879766621274518554457944932610874173205793830560560313363151478961353328956863781528651494749548261037648235410305838991415510468584509773174452313987214093440782048235097969289051825429710113455301086047547243544248696402261669021706173350823045780568282342031422052782377534994236951752050979460429529259968854613738119359525956779932781615005385737904499257894769264075819244044209857666301906296904960418162910290309522402339259425608959534639322382873116635632014900236378483637723291657495683027700074060680293356990706403924528133061802213601777014790838311387269131854498552765736572014666088488435007190226610314390979980981884801430952610592567973824460194387890526481616931226983190656092352612472589165478874354771162478884370856748725516123247547654873797360771152565211338364257559001962609148937123555111151252090951755758858487843592832453901010705375095037351080193799186420717210795694782379398936529274702184462802476219514069296495169148739535914752602524501253244910714390230917201908365588507126276440699784854938644638700127723183981698074267020556025460708728215598015354307658276972955935740454853716793321335727770587165915603954651071758618225989175420137804406536697866551558620039995089275312437534545765615397413544937497061142809764688307936395807913410087999131413889367570050435572780682368051345315113706335088095726769793732798663988760857982282915179356417537612035313922802256680821305328171288543591411792360072527302329696294894234887252910922191887116776073965716024089274204573226677757320059544671227450955619357034409090432980516807887639754573196516191580470104049124119867794855634580062267922897728118499040821111708873861194041040066160716400558832072804517791532051545076198620190359827965697703025134553024778714346542960492496621347690106108115891193282438968994392844111906268969855123631501766306117753263945351696854274136815038031107622918962165741450452304827837814950639809303314061329538720489872647630529529287341015277723073704311749394038213533549167804354842817124992297083164225874486899768094924770831709950963004466170664433444831804044990554270591893986501359582620772597698582414860818516420474502342722699217676905804221447269615605935989336047869327298846473531186950901628727424706795647659259622222406149948334576626777307167445426773329423436606365648718496201727245359559622485006387592677196170852912195151963364709800855661002038670419533947700778213408343186306041082814514973537948619725206094336406010023374981666449561616607048388366977506279405786775018340794821319728090302593958998541165529569090312131943739905896654107890894423135611957999518279306753622343441505478813589228449988022109538745664428597007289052785333485443046131229085656440121742057691272554756829078650076367397750161996039842103824909816747301348535613059598611447769374567498355697257854449208472552115705305681226812471719168634797465684065584511703851657223108890179348441179477121647060113771923997893887721250312050887559075161874951712258301598023579535290329809171960057399587755138538248462521261155423889204234767455148423306637273719431013037681731705065269864591740719851289695226563796963052073416293293627826587867116005911910367754030608166620876687014977222645608220987480530105762257572101066684660968159359316293078593533725925917161813658671424227180281189023237986518536701521618427676884920373474074488625107619764266486636844700310397610457745098837801129042057988222401361544760218369958568001075919304354611648063747959642639400404585714655190217332270326976242450952566166832681004944541660117309440320354456794889873883550662951936557778682715450598915197894829914816756332335714353501545257042155128694244013942837884403104056904877995834990816038861343513389218813700528251808237764887161045224068424179039095858114637680694695984633938696251395841667920721738570203300183485865342196148827002419813374055049719207619925465444460727334953853136820282583354309548656357425964482423876963043318718860556695600176578743948364882028521080604784867050544766263041733851608713755588255410584451384997786832369764442345469620038472677363197686999212336872142457262226657086857778621825410353415288098221646379690283476595380983119050696093743382087781635090844020606824354305712469359749083942625068034097620264186318348937337801595626608956964638642311012825161475532827712669792594457933442488964177528639177499578244150458678560715551377641348047834754289624350791795932550493833158986326114211624639798978157213169444154310623134952945571846563232846900579426858775213418549661844630808426133235741940092576986207918682834432190110504239410371404462903662095098440985729547116794512398686253967825248110754764018467266971914009494795064962364041226709570599891108889326941603786657279257819974333408722239362027466794071643320846397047363562487982943453196919539937229540705458370180602358605478092234711439321492868430650843546056682870849130699901072770313196723516475800235113515147650389526377322804412676616283286122887584609810982440070041739547733783090744030090578375991744563441871105413847213112825955048686813156271202620737060182429996439974571841285753572439870192944667430241715164232429381268395964463437477377609156071596077647828588697796861927039342875922947774179014123451456896147039815595326283612867583367620057584826771617067276887984612908130296411617860493908449718637381704002082371138005781716156657184554168744536817348756453914267125274470834339843437857973530882135162785923295102483111925740659481152361586483560645839373981703374106486922891486545997023821168914004500185831635196482463291764584384204551243326422446151639055385517672658525336212650912328573153822663089896487882480666492425333828122723026897714689743305368347115794105202256378215500302362437050692858500912058943515259813839141760502148761314982375243170603543264546902018394365333561321901914992121233784469913426144264940594440639960976958701570052833323501866233638347565830272508472973543677500492224837893548445375130111270136929363255955205805633100626750300965585016773415230674980272445574680972329876791920900214280297312116358431590393073465619409481647529854940665901033720853780409446029488275873053886306730972910547785630717019853735325463815708548093042477283531580127624756427319602299123617331446938329739154275610797847162830198550148595268315603840695891220000516899338099011999041484890872783514205577849583964437162458009728808248960266419181292278926327807549492827658762905165233743039643586828573286873967231694305766634265214052774992674599784848800269177054029390558804280318187564446640895357853930718886671181076442351973888581955706406640985926482178949640010665390988936750509921942208298050043525302393268189122920078092130479301858430805763307975955418409579326958840997557142730756549586089885771700667967971022131258531627821298374160128031644444578482124641443820508794168352952479443598254043578804198361802490413365187281857388830808147290553700497427682542928892722385264232929357239178622935884641745616257333805321048777135795188398870578558890853675137761746625472776496844545382985200761925529227498960909092424543007823673093000578358336365767797757521758492130165451126008767253859952218291209047231277429773380355748028375312802188188715259397042807080891614329762807596649356524084205922261950851185761142700712553029188680558767013073568778157633468639501899530523340236093893649733670693482432904661084524797009833036274349414648597466688952063333731271297136922492840336487462084154754629572539700341707694814019751986862341741526639206049523367567075104088945395527185909061762324270835801323639367594024394095804441978958400665870339909537723529331852221874178529792596216970869404929512015077436583536304788700551169158230000258744997613057020378654983295998901557048816559620316247663495348346589920291342912141945867088001217352257457591214154946141125665962914156595428585981892536084160610761338754183472007193771457845346218659130179689910222919424550575496801470802694115812556019935219899022601144149458977327790702481852553735669710425862165415280277184997289909158797465697789906797695516220275338224596983061202749630984691922676533781367708226500458364397564768830036267562997817259787408100450354252049045428179900850993759014933940664570372324911535442329220381880954531193131318846838745637292834607615263860301781890701235591101671982250861295495148058781523263497087534843777399018009610867809728151459867740071326325059224325259705755565248194299882276868305043554149200229088695196253203891516538799444564655847478656686012404402568995826571228092712964044302548476558486870786618282827365662660120767275104648884523717045902044900418918451447846879908746762054580886744916827909771800421047920886852557648482335331153516788943951212762661898736213709814407314523525214043665908020880663713919859601077766297746598647889744661368505289457273559294772358036787459631556246366034504500709274413573682642759804894448075393865601749726207422256067152502974750642722891863878758629787281883855502456551845100115381472301998481050024448270105431079209368955646534743807161571459505268251608053106697319146927334473478257365840928002965644406971635151280298808356156922958873221066159908711383172936820331531309865512578706518719663245292730284150498053843303017677714679859783128512136738330743571205831504733449410436639003470004629350054042978470558425025792715223328921013479925857841325652287960658763795262983539953654690625649633120385573885912106028917949371565724152761311483935862649952890008689733563427189802808637137059376621088901585698001063957812260003308309280192561769327336577247450055772492782494334379753346778449113850609067527842682292893080793862904571534968074874523521268435211785572015608218291169009348787935526923338896280285894602324319285567189813557673572256059689961139291242917574294803043349626521607546449926773790902076886048704012351650153455794472232739209434289822802276155134118387766166759530001986962635826858266376877974313574988927949763580770210850328169222800155313783259715654139507087953288159884859309455393482679590738841982295771356251164847225795408839903696825304705874280152571283771142271208929752188597641476754739150556952942724398663882410048853422240031227504831683654342743533706274394892527068138573736878404204638413294038695950776909438616551472141136326109618928815605586061134344680194249942128508552923412233967473227472917151890890744443246094745087305698017922641696587631157542460333880398188641085922459279882137074335624061998850978592522669009730722845342494790220908307894022080791569588403588807215907157973244411584354081068135849920688719555484758284835116152207917761720575054807237553005268609298131598336748759611198970687546025936381582107336266638168790045624636755196225886464219165010904884212525096969892125867778643807032246982059463773092872361984175332970987767215512139484620563260829650384870338942487729667977662643952574735168959388052744420513616248409684050448937916162406429489525627398924759596299894190140665205104937707612409397283765587486455676350104963578081834243413096983259601010163218511574889851558370365821019595901520010018914242361645951643525015214790003677907825930171462611784702607734215334842305758011829387068060377306257667028532742869319192238676226420067359883407544673373665417486992209698477205321645050344729243716090165510700808291405729030648770697733470967311013275241067848476915791752505394215864999044528979334540716720262498775113287419619473490590906894915750047197748338577417716341868152892599947056584770143171873727005223213123396320131483701144708529448307704537329998347375786090571989110230187137351900509194520616212970350526001165701429387224097140581675045422790811926508291663880699377144346863111190631291202067115053544508968748142552035247902007196239507420683212974859908573632638075031491993626138720170720755682672136496822067396660276730258972587188518914567781446092690064700136570147868722735268946305230610848181355924313563971119780309051731186578087666901425057073048616895351680009315338597113210276102963474472269662389469620433609286745515165965136322362293010843613104518483144387703887774242691488539359319350652552323325671186934562877806887272414367534390261814900888601272758402910856879827693041019900195753493344832695545964152805453831101459847559454154125581901211502128526051419139869040257752365679755763323845510892609251334956787373027220733884181008766620839697350881436271571405412383655261130397128992309995974413216821631181623330346893491395116690884902527699003916832284244132225399204643494583495082266772940922006289400534005057228012972812695881565016638073397210285538197535819279306053387126589110167690195979944126487885920437124751179777066522546165860716889886562887045509359416967659853037024941508556888166609822120868314943269612487585022774973720831485559610363015157430510742727192026950811491048246544302051182543185877679967100137193903899205780762324407486169691236738129329897478251952322363239498857334370583214548230664473956336495228923095388803764341780225215269778247630866040302147152508296543070566310186630426186308273334113295922780929838341571666515188429954161786120612640834978955617252990671483248944740616975422777665062158688198152232047926354530767552078232412931445177408851089335376115634028931666671377253325805044791549768790428623788916224931339660376768054729846591825265219635283137100192260892933049236931455343056299196863540099973721776891299811915918212578585468312427229757745614776237773960334792021726799584254830621712069543215491263356659624863297317738986281305738561906121314070405007612931852163621454597450667613248404685173264463357639449287440374130107880484852432564923788508222007276800114611369418509896193735913032939784623792206101215317273660259837876254747163162594167347959303667234309919902155563526335080119459274927616945500769610829567315970351438979780629181307136057209654365024933238586250449954313261619682621246547816537485318711900125234744714473749865760706939771378430241724810352727606141762877199519910602062137813944305365708026511133393160176581226699460733193087642122264982329713882315249899018601587309715160810531816836658304958971921165014001779036825046835100853273502764005462162014186404323380386502790268419498833185752677158299603595885015602552568609245296032295936898718191564894197747554686799046687853614076876371476292745455567902281581750471148564321665096434221521696545933941976000375753238997953011011658865092093085654007627282420200865101448583095249749927891307077408693741451814113138046994742615012059689850506184887535020671634001078799048759373796536819775754905578345938450689900086741644423532391780346881991154694340549943269548050780913248497947144617327950173290698315354857839156897322890393940777489196950930897348727552647399842493980181554267958682523471795733745028651553469421053585005868221308214513025876159046033944708848874280217326515242668002962455234517231229106216744384712706247517564186065618340561147422368691760091652984017666263509924215777971256281996470422019802104145203553564771838043682633498071517179321994910764358898586034420589082342009123576859591952788919234205335960082588667330587059588751877347999694244512939135786733722628383043419712789250124987309223168360436316272073268821723596041375726007601283550851827451059955838522086585145543702443057052639463948794679298903671302965022788281583143900306959956470714163729826801956172964572502421875239894410529160891693427347503822422254032629127179757430365071443857328583737734885855496551915215746668014880948654423036095402251137439653858601703068008429925127060267245327370451798584352635917342074461841602632527590234364964937298329931518723002404380772434293515662142785018220351144550995901210445661824201979415073317302942894547643009034838349430352163951080126102330978032055128517867588570289022996252552053637443414208815658938297875182295717244769625418257932951235795607640561079222961279356753093676988921319473428404207278901660565153359217908516519887325728415525895136382162709669734279278251544710890776167881434453057954592356931444745917032390450880772702068577310730690567378108108318640194635816169594592187432261035415093667841397312576387816640775866570832605221492562303184578637126301818996312759111598670453323226736275483965318820091054644319477931291192761219838513494322830811061694946201297117845942766932775676410417873275454450685530767478956424899293750749306239885289116661744884951563804726835658716898014630238012077960752934425040823133695141627244424994189437195279520596193213638280857025437988685885931448828451542518376666274412215679310303700783354502935357881204446435714326654272822114711144647183048038859943183185816718646913462931818907427674120354559042006334741724100398738113442749976003684521011963507013687119136705052584027452188122106571516332948989910543782071005916558907021180973183080250757773653309008279083402098638856628681483278737481761020245488080179114026951819518333169838348398253776816801430635207921537213395305520664724094373971957198734786801303560488645469804265311414164188968797242400884913345912259063098322247879061038769176346506505495054405718432575658191473112208213065885785998804282826427530421176432278283783775379055760751490976504896520000898590777552981150590747062616288940675047712978783396327736511736110858669823055395716003823861547900113312474072491645451566908079738946948985548206858727625926563659668097524861455997752445400202761708077412326575122810369968251982333791752859558616104249644169394199919276606415547482404362090707921121249365228346969057425843279360651094175543404994388510660866767595993069602759828313890255268323643143768876684880720064926981016424658894313675374985972189602466989219602241878472475258763608346989275223672611235966570333959921925933493500842508070174694019517720156857546312501999779033669147550112994433138900204584852677083948227029254365007621742027912171282823306859469183053062933797917537749322337775484391685637677366181128019848679448941098582731495276081531418798978830643397266573791268233288973719849758883792199516443671880333189389666243282651045214485227188644801791942379647331116776444603678648425844256525463417007435985474482082279496817943874653418213995352643476558820678003433887620250737197561294814505402457293030739576154582667577512607818788627454769469578323386142086798424739666697848203206839845278940561245025929639442138873956872061800444468391238501365132402667267295395525892516960405930871415885706306891060759811969451588809057755064778009085700578486108854607556236755223564094972773017184349782796258965804311464131187152758699705034599057690879549178010501193728140015125707548776069518396274316261188679120169034077640872032543609849710015360169261222326982470815662024486800435824530305297889870483383445239275379624044656211154748742775344462631099958404443906545788603454600127820476098691775025182498523437806365673440374326030727772234081488550598573335562432379781335975744014867939622025313609845673922926979963009598921774615892462874049591375714108510526389039115590472279104076066666724007695244622586008608223528121413365047400739014149582505296037883491379673684478370471378841711031238197258777602697076201395909005654969991070771748449777777118548659402624614357737470298029798739915596139046992768619160445744401601082339946967965268552838652017934134539556513324095056233129165795061672716300438045944573586825649438816247074985667457262224358140636348396626704345010608235660561462871499465779630517752019496848296403202648739142684386947217578841257259830745210290371398073971325106399648497121306475868855688995949976426095762323776479446284093019441217494623220299664326704896417162924868288233923511822614608537956834467047647109436716689679415809388381253686928721571711381545528164235873276879799918091962655617062416119872145009730812707284053520200627844957371019809644111456619382264295845602379982977485395104100111838229573817713053007907515584899875260175442213687316265419919385951300508331745577710375818617599892741403375555335539143796537027808147997608903865078154894141256802542209233460306319643982580513534718832484676036015795018597160468912830636630083849606205782767286687766696903375945932828166261542530787394649485819169907980629220484130613991164242022073525791502754708724903183608653093491492441501992042750842812591622339405413362659070352664621750964674306885072632685538724784989209726548172142557858354860573165197263347912545236971230524650286205695400235722070352076174096027007576558079665732534352370958201674860615442034037823121125078061423691374744860071269389888412865702718733155687188301091211327766957345698961768407152278044461438331938490400351904547588096336386977940007983876814958678271977342659664086840465059423426952955105652999682570803051947179285273792716638546620220832904591286459439045751815887323997801283534014307302915283006521281962826880602909872535318903950295367612591390767018891622892624348895083884942087823824606132343390305220315148540291664436300453102435705972602120631905647973256014033269037329262382564587566808669743146992499561271550310355437766723077424381807256753316434517228596995238702925558306519516985627637441059899365380282167120719483730108059559413330965048702815517235318719359461167954730934889896627929244490871716389793750896947365378226623001312876357741096596675518055343596748082435652858329585471475505053864943630252131129369992152879210058847062019793950671337476708778764329911641347315757412043814599417302704819674816555972858079114223783515446047908798950457857587334282913529717163557053460894723150660725500364020675794723581752327115777991163788449620328749386951140035008742540340461300195905107143746376606284511569270816541824005545683034749665717838744777474185675757233037834567503850074779159969203648426562085688312382460068606492238246821347238014895752973734257054783696019365225843659678491917541768545999569003479967516505862707765490749388920448628165081214085409954842579984995006737768393384780773308868982780738659662075372074397296287223806574318515070073026444061217510950925902059560279213216170522449075775349564953848104696787996637700014073124782785485411597076413976831976524617144917097210014175856062081497641958528598912547870551412421500732402166222824891038607156608730812789879000735759783073766933375773267452453647155179861333817329298386980125812684419352746332614746137746323385977471696484766927546486590271562666654466733370667307248220548133951354365503738302437206782614724571122284763462466353032394061857548939928521676394367017820729888464461095895641809464629572151483280756919790324626140317387930576839813296031743975246893787884514090359449259322834611568448473624484396594918946774115160567328723265359424347027874691993832586147713334486343718934194594616004928027209397033302759699408834641809380893488641553545088933525334488927021620475807883214733516814893673708512832544451959651565890686862928387329432632379889965128447437590459514116342543347347999080025891217119581997620052451593183201868058136981178457110648061641011157043878875058028053376890732841042523427861399176048308019221379367868699446060719833995472193254316233204709539930852968305363427897382700373131188458642567163628153438805910174095521422629757314643394236914257633728967727864089634382160240381176311716717699578798327644715127285918378238222604915547738276692350547206051100744246897177914731996930912727554262980887978245042749532890088072385177386320279971032485468180354745052054367899711101464710202501120006727028282872078928518535203807332546883536368073620326033168320208545815735129386073912862880911944835703796907257986741154615051715716279608948318846921879766210844116732161929982251533000470088589322967152192945502959194361025677506280587123088393614451219226098917916584797586017204078741602595542236924345353170762274214897191563071243075858860824597865372168617382720508814030275374241537278533996356488102555231030742201631040399548663923909480111844738482163553127447609724088304922447205560909321543122932414513930785059479067186488892530713594797131708583651097399534629238067617846299852249108389964841371145766823334988898568243525574028228515702212329400104014641856088669286672991646674388416691427068474967591091862927129505722233110885024700536515321651121262946932672054066295010827843567310436752195038177352281070619483386048957758656684404208539042048292087782813219211782842246305223708075113047812765894605109556477863752291138565708511432644883181875435140307482950779455952982898531127386943877290069279047795845528758605265163252393947182661115773318427282224664065551951403291099321581346644427036831704670033475193699553234199604202496374699259186419648401781384863805100888649814614802987282901892459500053811147986989135758882866385797314646557470984125964043623810580395423915303128713781315396871753819635411192720187831098007093242801000954564345986285054224878803787746277866827438674352760274678090850707907885191718460144562426506982702359232202251916459912265212549584303623457929935047132097536488651766099167687129029747240322819240356795922891857540123262462002830190150770922356147069077052420982292539574312211408985664155450399496607006436472366373513649220214985064904694484089435333207881530170225304621004017419010916380675329819541083231758054652424411256082056694233841882757900590678652020155971176145737071020689872018441773958491215466631889079399569208827178420099591859656180050521349812964301529603138768393326543733451900307017333206709301501404503982680466027365731173582724083402457470380089727400524438507527247088295068900447014021162094210291780342900726332500515392322762269852291227184960149416912010904123007437973777704352808161749936176156001691252974748820086586397627948808483459507607469407712945684651225817326360122226625800208082854693688619030093980212274081546319378936552801679236696157966007562658160606769044016945862167008269054592783546611351679805973503888379739541331059084051664210318140583494012752309872020461687713527566205648440777454042305733750444497002883877363808145332038794099371302372619076544491492746161769142738030852278583943373903708639376543423927058214680624379991497066267351809878135138802159822908396713462290175836040539789480162667183071645685045678766744346773826623234050297092588929050686213736991507866138190435044353362601446099453311523928136225149908303150609438352313588943879287857320633024557551171005241505894603244522260412880967859971147815604172766361838955058179856118512440280145635818654755838931604367625762742546946394404034418933318210133167791372270446581327206297299995570607656811475390108825511258796748284055404830799715275356415621420648328345871883254258699195983276620164214994139887805207733269926520277340203538922690880181396321145969262242614758534961452295042693671789157993177872469319642362045234950896660861046917942684808587120663412463337874935729461802480106914307579494743797966586520567072261466306011234304904691001405654382884424427633649684881171223833625213932504389787321558438285916218064130023483699810199081950787250872149764954921778311308376130287414592514617295678963549564661554792331934790809994911627978722767082220256813782008738451661838760498619672511061643724430884413582218796492053331909192607488783406232585731262461488009117671755552776511460684904260039800267905834362880298331937145345502461193616892228613754534782347871596410245876193654533124259627026236770000240936375970340150844326518493382684971192392715475097055301631150696386785293627025572919611448332101644219233103260642551824803563317595966546763157000559549181262454478283086113782953493305419993341240639636699838695661010206082128546451591338619013202212280651503228824229509890234010793861925510745529421224181268127817613446530074624947733420936138127635118775532055178202710168242612395337515132549264280349203582559145378695903132198540940898964909953275788415136284501508366490783451718136675721185512718107546872058502847882052134881480763176124931256159888420099078536802161723156502160709322283283580719620753876853356026821586961014794660440602201585073661515055705775236026877852065654763317459376618763008226798024150519020713602194042189146649923795174466989209899886374296557931279483859671457178152832827075989589089738605083774643704600398264188819733503035173131097698253491356982082933909565320541304747978862043295733703774769141250555566451778176984466375034459209755974388463174087017643619754565736845689538863195538696743576066940997500902239280675786531628058679888694497656257580874916503680785798455864953161124741645328555879578075043579448495741765137439502301793208783121481507759409729417161421235771376160729270806993013053123857604208758583537052589455059922543982947952768615460839780866845818922265641554412851231070898569544904378353544643762468703041839642717262774205976726552298126003535150915593427910550175732286520117128029349357936340650746127776392238361631144435398084539305780033551502387891219250605071734517731912780108440251366565082895099888629924462039972525328506161524351667085886709750809057738122264767571975774909336389214043689351921962689269701251993227713360846016051127085788851040063944904793678597423906314591831631793075026911309147353678880129587468307992578804435784643024252629527050323334675482268956168248012933488433250009929830745773950885425977402362277483160639785150045469184624209458581003340087441811683085448367953901988615702760734839779219245233661819441633463941352164251025286870059073986360418648819743802697112596362127193904019256116912847386909340054743067727748436924793402164973846429022623492423796937050178292644794392120039711221604416650921681336004958769438315358728034188304053465465306962862325719152102933775724199919740762536071224879659336645151874408387979532378550668067010668380685493533345599409740183088185602904246604305890253264192414850577876529776292578717894215322493056738153062044393014025143631588833210160199734635011878821786851936262531882383801967934928023602929041365624459819342330391619012724868805893245493269214799146668609305474712216726729498596192176727694137362827033631042765720297247180256601691826321501863349711073459093218221589841859616333747480827485432625335427234024188450206893578381522394777456329654139744647757395647923075200736229242727686639378526176882319737007167020114163193759093617706700468098566020464382297779544273424689605584464906378539233391815251979839582297113878014436216677528979260148008768076555520396212343487306467851502932433670197129299082874997597810272507670600909421733110122916945644456683022295092154685345348420486762314123955049087502160548592193444597762354496337154019293036614966790946422308881094991874261472032992028595184141007523734497369352486569859658337479431949408888388873391060648477894161011154656358178971365709711325139589512074733923862631706904285862352023509608427782244899616533230351997079669156418724799091186537070176970359004974713021697977167053983431125319454269676572719523032490606863727717913342303049637242748993038824547101266710635808634425642810827113084496617311683576408866834011912130657472892316244601572885443406160607776214011770234548871071512185685777646759305546952916001121899659591942253140382834458684120947945486825640043456773883327632336071599250969558332240879220835807717297659795603599843566817904977266224651256860020456048500804216671882037373624332144098113497909140622815359753126616162188219023494154534237993128136456938657718322505936565361154047068124581386234850627369545451303689795021274552094702885183197255908779244835265766034348894459401814931796665252895397992380168923014378407094072639680207977827022907369958319119106351529050829398049875479423584190571242373685683916852706151878245921694172518076940536442672651481374571672305146791980234074584228833206616988787474722969626665283470621918460693784967265260438034076879881049517339179423827907548268975305403090100438845412499907864324847926138682609905775973334961410499487653430700919031230831752459927201067047802828505231325552880907747157867933377421047377644200935995877285263350754540618484332947323170473354813035684123749082395585967105463913166979945973771255284238152635484833008033623898884464185884374212840342031825785146013906404892857352344226706942899057594103337205894842656454846630950809074338728881217522866975396910683961066246370761094394982755619639353879996030297990388955767390301260522738664720783662367014352450513391916823074066639824732279101371482896507232946691763624766769963379664931481083033861139026577909185943926237878643670558083113056646839194191209807112433910165836631646432723429286067040517206594457564672434621960428299776458616895560022059673201948195882081929481895413723545200092581731136988671185869101140000133349133962800759769265453470416053103610150496609071400825609384853393100046856156773750592688254575536607970153499455618473325465874000531847887356689595999892907225204190356141663044807015929126903394481162861487937053425619936593344351177058680248140457312883587016656182343481995535571162193040902422554516278399724116689165547047830202631473391529041259666858058715117182715539900369337375657245760552754128922418338582372844406428306521841168595759781023840453665364425199534618328785204614190319407890840924748736912451323631482223994030745128064303011882042336997947027643524037434371134624066125882418172643153157859332321396595764122645435337447249731032266448715806435863096124477487370868741238756672640404494447308356175712083963954602499792928495344058248716032719808706489845956873937088943968113910982202583265069640982962574706584020141137131036935943774685799673411103708170321811082841781238697511610784738607556690207335195510068510924911925464245362716023828488406999336000555330195764225260129596232465226716814183276816151276383169827757694716895000206696167350063225253627756398863431804686312113142222616697908092351290191145053723148256787687736952663423294511996960042761276106818262681748149535895149749496506115699380336396642140942397499108273215104593088456573464003641014266773982194331699334102288750002765889420323620344598642416914595012693412699723965520828799026623793776083636588304211679128849633630160308550005310122014546990663763212133470100226594252518456395790094235365971107717234869986902865666032995003448116201289660017172810384067084519020530507466696134443507181680964878966158440892856153802648117636356291856323736294534016517956938241750327294026040819921707393283171614124333792402628819159424938459208357739885648442428070176171596952849933455629826591933272892790158162485949976672820377217002137593704080417037400208285831597493416137255778613417356493599646389630642322777518585781392408323702922656160521301459221598134864467765190106916780100253005136114235335968421624247978094598352298347959762533633549561923443662140598450093822024340861486207345463394989044002881538713085203710616043779646957254208687390728362562072967848060354775067264510499573149369580777074608060080642677427516418133607681256293787744753596286545828123148711237060689233365203121676856373302388346565714745070014803999219539789210349742006484530858724823592865586683586821150769622025955570141902815367291907246705984319429479183752052774845948205750553173749484965557523263779269269117674952257698968704753563131329137055244508671888774545327275138812096723647493895559459044302580341498260140232414291163706238146951343765310004332250551688668974448096609805478699502440427904036870586059499624765308554817605480802957798475633003924328999022500778460126010223071103502012915701810534700494928736076424576026219840592473162417943504948676408910259209361172917227654916413561228085583346860401117197771518125577014278877354640055728311284336540005389225423572988004362893052543614935712018136361173255027168467315254692493653471776969128844366200968454548601035027809600241361759254519837847561038021515869096151540907733257110719003727667364341667748480903619165345049741185938580475109092267591823057232733883066899148556451610742932250537327255355677594567477475174310030793012168585287849551747137061934980722629245459137901282794939656634336322154240042568504398152247902591695688741945477042914034670993130143545512792945630113183911844940533966349354798572088686967830991394312892654751613231502097254662679581696867694933878540795397511210945190699645716548112938945971156241928859447575412817932417053793162782507777950659241776453404402089492547747845419996026190871612687713366674004325521537662842244441065143050044992132118498062244891996797949645143197047198232231557366822320442612900053734237763261686833003398990593404174971737219008443522447187585736774750214673105689477211932349435219510694922635478294292000318919739617653711817651098757987559228910016888420671623344540593736116570780441275170651555553247366781629724607261943852328729606034785001071197899793250514618410794334997216579687147579029638079685098853832358050702030932376698295712585309843039619109976038339490123724520184785603270807118358837059174151612466831854689029622970168290376976342805983154140843022694040828686690788441512806480567546553617964669640564337788745453710502040121752988846094431698411492843584758564086238718337451536353158096798768807042496291419055382542991818112838655920574984276601739543863502586284694417357796979035292710482091434333270200975125294461536059061390042178047513880797977541066063992416835211282777038452640007421463472285742602657573183867105976990113321475429619270523847190498597755472232011026686706284956669016988877847775192626394130610108650443754378057130999102627717500010943882684134180983066705557725925393457474709223391017972117263950305268438912399365384066483897577310966370837819833093843719794850976967269130960757310427743425570497458579600281953297776695753226860906003507985931030770574341012987935652339947159314608599439508256678791211252439220328322153680375036096839287833235557736601375183906414231644968077513610012406653370357955197169410620696783590687481622607427467809103744139144000380961759548639299394058091566949999267000932359691429255554797068297228705942610201331728773328977064920728385659496274317279577555050103754585621765120950288545654935059047624800649077928006981659337851519440795229633860740033997735865456489120997983304103580774367602722245366387526807702141976701178275910331939476162700806870739459695354759309334040633868892239459957928616438576149009104402365136061578213472353713454759773822523481367747621888937487974995524741225684922143394845087147602412586730487850791468831597778229551988633035994071615805061541471873689317276289535655528066957913427030543332612439538780342892156554733182919471714803903411633610510093735902376192432727630524081904780507953333368543178758210551167799781543362035333424569784307338977202243616945607541658417200984626257645195567668198302354693486094319812704742051624372893588615720521680824928743234323608067925625823310159117646713421316218735661603677409809456921035099948899376947806053592391947705226781093561256245343051312748332651558132436547078270195517058562441037194757731761493476866993169707479797630912996900691704164071021221211681316067818056394328280090531776847231637382668905718232080437708921392084121411464122545199361401506719447353239154823413866793505218606195063606353633263661898059097018830421539192275857692788526288097659963751791732618049420377455189956527531946856119125074299898333292967148529121227713210591889488078919174054584393297241667093879062814984580300332398975238129968123741746303273406961505941825414418122877348966449851887563110436094489621559969348878334640166876479466816787613046633666487129404804369870105463571666353953501281554669379830317069536515005858150420760174414890331104365766837129709067016469760186484897957157726771133105315319864631335084464045239664827098464493167238291218970971397274194325680725062551814426849695013729155360992206301088981900188082836216300801620318382193058075756930143688294580170421740203660619277157479159550443446208013039349077787930496294627204205063298323967347632713575274070143337566783023577269900602106185272181149562050491553838899855508035220132415258943027045147142042707453325077771366830825485328027392240363618613368548970204982580747800253990098094383887914888809256916653748246829350493453149066251973639673122425954060549394873711277568222513940518475298961816089519408941275307087349194695807053591500557341620693136581038562150082720597022673600137821363599689651711702258479013454365817028563871248261835332681700201843014845870760107042403915800125365020771419589509958555543721116404161544432851830837693391016962385883444217027299388325132869957345706893736779826051651907848845945829799052832528293255826924811222768872609646251851015777688023603911506083676454948853958824339603712297956537242680246797786672584929839408675656805891223787414072290968232118137395134869418256515412855086868300936071036261143691763120061843084889982621611558358850613908537206776741334072450234124788315912478336805093228690649127010104769446748935334167331524483430176203956021474397087518476529235404266168440186305501609576562620236249434606228631442544118827329368656365179099881678755777809335300976713311802405686554525714108381291359392594821619101245507345483187913860919395105855659437377625659576440855298481736634771932509554421702445188115489526156835057823732861026641611424453636582949344962265647676397476484213612518626923387853640596952374651712937263593660239893587545387288603707624891254082009680582776740987339162053292175623275195144594938257870794853361419891489970401869304536019259566516563791709111284105140937678662644800335226349776027583666031370244740648149760418833804519221527767104544042930294441929175956353288864160708977103657204061910965704422798112485550728331813759620851122806722420951717678342110185880424183855340503469074863228939145258524582939894692929981985805764784651391829753770825555520830519576530986447708943180129535575607228787374475359644418147114386891685572971776268350315540402796256018947163697841702812889386504500109968448785114506991722237868888780458838486904758196012067134222121620840065660237294953923874875373335719664483344112530994656152885886185673318232843964557382276604082773088155203016066940425464609275145178340212094956008186827077254797645024422319895420883021957784112275386570224983963766626147265377523385531763795090140685127898364618154053925710859673724354402163116119208052705363227151534044897046615582122776114543917249088670263389159688868165212849127076655458821346316681482692771282245712262450824289767437007370532478092364423703906544068683393866583934718747204288416191532958811032257940284867927709744096865067688277013110315936546345218367000364572993094955582673993192995464570875491801377134519137520758392080326991733132806528515407578410836735898423748564372891448611808130396547801166049718532010684058528906588895965825133379390956806123350110461699763741581082764983381997458444187709967675694225423593257797364612986840746569116531655211949187385851159383471307369871792498856671534412528072828548484112743124422130507893385671036273534269397393971208112332333441910766356005687612279940620104955110350632742522121207468263708434932045228971222825223868980695746687218189499773847270704859848070923029825238107776622751918934338890474121161642822539771088097915863915308235634695944737740790469266356137981292342310847063032343539338730841841031139515088865443231370171776413511961868162181517020735294222721810983471021143124353678684575429297749884362073419993455619296744023851499835690435488612118126175485233238426225685436130370575161945641399540506406249143564550710816849722574595337750168602637601453706879693404881944939203232378226697051766454619203690712671040885573836508151590547525290463836002134088434913689712998220747815631164061246757358290508221890863319630470830813049714999907216672729365025101481799513110754221022442947541535228493403587610078188792572768867324391644678835591762345494699134799963127956305457583281243597329205200411808416604852766600374558222329714137236534331208887385165003545673945082604395359430375779088757678104741399200339682420143111732923386363271229717005458012248305699987413937220716228612047566254191152999525698087523152440325749653562151601978624788877670993671028718422238461310942079029422203998901765159671170772744475809215665458411558120117431930763764043781441829730280226618582453032190848415262532863300459907061264958113115184599432646606118240869491503218599171680571040816508708176802857674539586643577079919803588724495646856690058349471472551997128770938175143478945216839786509471432664326401540411430726840737978563707959575644173421210639326472917317656311634215510929505542922884479510875406643560582352805253827270235628493898977600194013121905143131298796885765956006821231104116077304277170778846335862423600197147881999208487512214512934842388564133495514668254858666189821667204287604712009683980506168740426087255577706592306852372546325968631724257753961603136962821717056606685435185209913292828068269747530875344466933820921476236455351698018381266597899566098761140605445837265089136279942867372793884393456882772211189530657122197709918494699463030085517176122981688920312052149917995045133820122416088811196036992367394220765911065202928943817865191153461407572413328135668167048555272566686385328435244972996973080086339153974752481738936066489746157537874206710301127229286296772242125829670506032840298655671274150488493115011991875828711039729156131067530824303463930289333638335551613155758892422012611330380432930205789945137720469155462917210237140754176127314807296106163708686579610490642422004358434804229429297765866327371996026964866402911229121456694120786567851364144950514764424352297347069730898152887200256273375227160205568484067996238155722273738018370061352121626792369183398874048639552106816263491692556128796482752811359628065868247117184951422727532140192709886976420988379296376345282482488342929326738059122590467883814032854087509067272236385980358251196123138211948329109061197868404908246710925332789537546562636456211203827479852428635648368407409713148109863580775276778684216377248849972456131999368690628352756162834752781106053049985209666102708089386081345193117897769575599424187901581988022755503552109147039896812154501818806800655574586111152564533205490930679624852678039898646299416036524566215434470486249564307374080725459196368573193820116453320397442605112924581663436776786214077562495975025731378388116287637396754577426756723594426441173022100773152010613940329527656795282501052336576890522990971489788040689252434305902114379860201291969693710757472673443043837529525613126922888211724014810798442624994402614293351745313037886076054859035357870274156871288840722691391077758581276645746606025309634360320488272918723600000432881509501869000896598987153232261576838914144983496801421391250437438513238260796531708996898893045435818762289981639465876278817622725293825834876109686949872791046360554089904640615118487446829636999820419130299093792091789186792284207197385927433089030652277029191072390570317265572175091256336799864212356924690978349991828930028879137615866021190918888009993047302564275202157243770812196499220133612195967308069424768962033091950806389515531082350567221087539051109298586130543844850668649506523044260569851469532309668486177720377332453201989474797375287735982494650588919324090332853406436750265548666659823940812360165581906459539761143766633642769869452036864263269464402680853919204274099253983903101472425594855778041301237299630444553233853379982564941429897787815273901621243943317033763685295429764556238530315583487067991612477290499790585036497524095688046093732523974011522684583292055111622510637567656051781470405130641643505247964094139614814409584260559230531301774731803059278660024268186302194070359487763670213138429221297199331629062224901199389693506762996215510517654382898756914027734588146378074261104242763735100764625838767777601342517307221975939327203292082971960365490071481742947758060936909287642749177944162300194661916820836308460058376178367401578642074122544214073850356476597418287183265894743469307407232629066398730532271474548175362498451786457123290978539588394339452347601852173000057055494170243339692949910433536941356826648970937127650184793497157687864268799695416773052970048641679031216069715706756324292190083287123170020406876680259543002197607779334815925038263424093233863723639622942475647737332696577833606522268455209392118118156609064794488174205477848717408361943609866438470653299228570039880119535182331781832911326307291925948765859515010560935914485635459294709490744560938833970253395804721324793041598024987482902232374983662897167677743427212288489154981031143367812090968770580671105782796703837298276429056830096232747691919737648372070572809600894232600745897328450923548788458846919304737709412284885151147254331686400126253174421559513197150957244023544979316463492681330028626999586768497167857600896009137559611601549236845096840535565210613167602304057493614052640171305581780516535592080110083826272471824759262446383742185938457723864763881328398974430048197287757030330463291890419463756436389992573211571860171276720029599963920507840891362947003716995578147978329712107033569569038455411291260224907895217346252480359720130119743445831314239568115118046041642989495390953414179657797264193986464223251803712785555646824756627095087667149979026612805347411670477258733065653937408710264657814169228414046244967819569390315385855387208538317239539172631894028628487719936139477561793723396482267457774094195806048967513692769777901033232509318811819820791404587049891178112008052311429961520600621042204534233415101744362263651065606724548449798747107357776108136986203799181850358164950772723556266584077838754971059155617303697703491438174259396644218325141473454253657417137165462393427910633478481046179835207473107788328329697847413702383938350509083463388866511503498790716541816900568956123610795884549235278080621512343738258800497555757996837643454386941478785970640960139494487966514266989411091587274739649754967328981486478629348760081553018860394530541445661434600486527292514999684056846876432828967888934103016597584995333610244835955573390622025207413591185047267754269180080663414352762249039852484707772156807469937472188411995735786286684456997136034872777535891585474802485999658549364552029334820768621839526329246108289586312669675847746148018220864056373822365955323089177865728660936007877762453898247870470678392885419419506103504250724099556581363792900630880825740943127591295174432896018948817603467424248708620623220844047600484689454862308572612129576991203049339746501144690093794753301275275993998193849700260078091322431432081948737735650979360925373968157778507046930268929788274839977568053336052628662729572556711729731598777491396940006370780989531648270316701787059193798466874137459418416687596144796775650506405527678560700887804751574952829409796353777739564918158818539772368766516459316566624504694549307158823063397631272122683937729788578295017277057746551721417702220776819904206213047967208083110957244731681261572461058023546675374436683971515587971537569442678145521011359194495179507888605472616383507653560763443228171924620075833539664596334306302932990257810467549089254657145607013123034449033351368372967972327697256244005697164181449494619358948615779246438352500775140356007947314125641770815883821421881263638249747959356859349393155661280476079774801995839401685345623336407324456799680207453207140922267653949826768753398027459090289404986264566734947457848889291540579830131291579455325405288977876604842633462571319098494391113000625421537778019979135595511144551346249459285429275090836968210027073373895737536404449227870054311716313019125425259010115567264955630971426142273767338000879271823678792447924012907490793162096076616948343548719784781670058737029061750146482744968954019794754688794009147035465441285925801881136203512562814691916120341432913407823755837641200418042233985277671990869083648523016161675918638953005940075592231019833010153986451669079239373417879628647244971001044583174678014487939268654622324322730649308010334443103167655761525979770570255126431345485157896018819377075597275169642225326602083621187476504253233150894461131319609554079803665380214230275368878450420870855285502037097142023688991300867140644730466236937035084371373696640379340092675203468642883496742098205785942859391096973074518707015008288779940162453990294054601831867871721481987456920826826141484856185804396004682361275885542008538890682550002098973597710194831496560218347082782933935425635969123276486969617679202166823651216960386136752013744096453690881153838657485241147276766161403674465722716327356464634388166864676216277262172627224442136288545803057234358064129919783111328379801461230915135286131117436954778140603327788356420869908194974311170818077188502062705307674108881206406271784266856987348196386489265715155498848106463753066150376418357058508184099029694655892537138068464652285534457354827409652525317790338367556565614182169069553056642410357640835449895061878492105796794590165930186060928906946182378892669879082726070833247305449343372176561525340546401489832428022782058460025287408570739646894868345727186687425807264738883049541485266733822281479903252851161084169586797040964367920859654581220958013360088233379795488376343693966957310277358272723671945886052571376440317257144152174335798915427681130001211295789835720666240286693700574785866314636077056322087693282465320497609548812374849758505012296027643964851568452840158312745034656304600726346872686075811049897665447768047536684818655544365599082640292164262636164273550185846919162346976024837109694462580364946642837196770609318379009042668676522703717915349312438166183675550283924809976695688501689771515956125771017105619605844197518016593833543247111563835704369058535686620190300956922378775371753128086585622673559051877662244485107327010267924475855270107039383853106848943925460189865546311873267566812040041220869728646558487867967946430658988845892802458285981876521183830191953210030461310719503940962865515230579738167379048361823809643785499969627008703546111654553135839495322054718973607789287971344848046704376636898295908470612156966860997997369675502379316549335816611323741543046560127743297657969493004543160136995810690810242638882421761723065575959654091152055964361930402671525978409529151002908640522196596540565169083615743589282651986247885631633095438048570979022225105392290171186593469346404455898214744445399920266258308483517372903787253421572746531641368161923162776829185875859074875025589006741849300401143000861677574166586145199567191429126880649128442052608987023432070317645893795490317871000888943479406268899368040744753648897376096508928842451784096335369903803382995195844479105522985855864812544411159781734556523403913266805045494582956738404550137163597602587259331412151883723521377174147941952604504906794322743570276099319747589572530977479302102751320083755409496058132591064410842562439908839692442223503021877943728028287381836133657517959416591576773719775056602549112932280025284100341041500137670620639596463089208782294678895437994830096443354389353828703125147753096012451257766623987288320362856011594421985255231711063655692532514993413500475626939296919401604488619186677073827324674827189606092556264859535549834367604850958632341151184435028517984523220531923669174368821057100691531926606982591260583029834569009262180425731634419133741760104636285608837996468544550706085944565870969705062033865518136655860221195235281512835704843095232823488873976014245698000720601692084962795930916161040713107033754201678500850817509771555530104916883106297551226294960095676306857162372429661164993824770077928923491133621356909677739995375543233915004560483429104099054393413171372354028127189629519461692588318499539534704053330113052043079197690273027650198433982487865818544405100893799579238287451794067896909878008051938315111904233387230488598750143104617968057834641995246570129555544878515485288676855233841122252073969307591082524278866254060213662750822295782051739503593433014330953833388589928694563515654081074796423065709240371309227932030220131261681130021153594312240427914060516633361484335245208871225453808487473032678587187446698825167823655530784327929665419226478082768830011116508058798371383313627638305179018941809058788475088802571204106884899624995118686098285638513977994686358533231761074545035027332778742380832265959926412970620197178103407253489092383029198953721577796357832469907383903978904916200994188933750542492155680511010497841594337619197236119313455129892502440680163824249932318095749665640267827673146668219195500227781879633177011770668427208569361375923399714963299475564598452155144108331075003727367864661719969880838548253778759235773443348563297234846123783748263212978648699306680235190224737358312880171758958770636197315949412728844275711142049216112695659650375116370564995618256087291482205547296065845022688262723932773530219769515021999020410430053889578517395562404061910207211953732103407779439878240738536503796820717417129723606718064868426014605824208601450446969712512814280002305937860754376513332622623976483952229470220690874810764290330633176086617263179511334066683504992601358091352148042596579950599125737614545230163739194239645574337600872265531508557882675968772434364634164800000219574670920443434211499173363465243180108091574143849673755647731752594226032205244312058938329845761402126226630654220482097256106615578692351717284195675151881182203864006982461936212502164107323248330866352245116691143641136806974277902915270621561807534866905678346590504195541925578868030589045489998421666740101792709226896949558181532318984803519574209752864136119676921495533615123666398355394687380305781062401486456651645496944741813461082301630567915387406438281066859975289280169246209001141352537472130452250881415339914382412845418786397379585064836418766095312268903695075918858663546847362705500723866149319382767691166095481693320214061240513773642409979295417230161895169285850361888739449988980556701509462577096812408400203449479178571541590805137422779510687887237283046053711712644904089814660579489845738583990803158150633927956426682300892518305373899350705902137053509158290970524454276534502875647032621228654488771402439694908117413636069480143003814031220298410533293925915075845761335646201285646402767496135049341515183253763191837760133263688854550307128826739869429125534932815029535706315432956761197468298783549562373457914675203705667870458944687020407853306151103555221140152756890111697480736552517208497449861289237479854293073786599047476777783592162895341809472605076234328880409609021280788764650986341029439660886876545144802136036113741921708130973946922375079878976476357078786678219322074342116887954683097855997065086977675564720855036192586462771169872641559351019847927390439045968841931379312734093141868533932321305080561470107103310501678748179544500297099282979862578112472762179831833543080868509636513379468780941047224935817192177067288818720010057898931112097549790733896110645301521463530075167122754731837981051228151882780577789326541837187201718491305538268908112628689721931000763782968236497885851241129346113763289210583506356075734781228126682251936490124760492887670756410327353417186289095625837932882103779411255909179870564748557030204833412343470173485221380788191301563601973752729350737990912015661540625150889702816184773077843320111294159110809709707125034254354492989686828136938012928611225281907023535920717748236686305142091769903783636647262359805300239728567341648405273422613622093437258839905090232176266542412116996537121967945594937337828130031380153105551351599342832507150108335843778885271157769267008007595364000116865226314367188909654788948948905041353392709738895405182237630824518288741025378535702062800116805197809761904528960878323890978557816376435368834951278663786625973978047330762381955570349390344218477728436083617969558192722599246270060079933133159364713473245533128953480021469909048491651026905354340166268753802686145208066759454241194112945466839671482699065055420103069048464793722433776207692679265027511934673353803605010126248732199798441862699975738220329910595583072127720232317032107655539422127778461776048598170655472021918525870245858435756453598968027106266133073806583054848960727707603813039374364586264313894103429406124485352951835963751131602062227649387451090958519069485637924951434417632784344739062540460218927798175752310259755098334886097462508812312046058809899499627003960578816185607015757277160986598115383625121557550675801417625009239295929879305878460562965101988223212686408632130772098023070755477112978362841769503907478097172918575858907650417970170190079900256420470151752351282387893912206284868170166325658695569326349589943470186834682932608639921945123485906798348721112450894773585840777715679514346014007659532109334116696689346315130704966214960714064109907748174205296137065345383230535481374327294183177923539947766093720266840790412639134771229908805198984644134996907726447647512580103658838324752342254375205366019796536153547352152497944179434205044789758641820786736599943229132659886691548850535584417783581497166436763476273698477477849759869233724099853745779569040521463972366891040199749993136574374408738292617064079528126870691533890090037944942503411653665787258400809993968283620658558904168615710664959667226712900199709968869784440366572205793495029476789376777887321324779874143187679011261426703948197339629853216874099082659145898058581785690666871409580818129920689499975548373623742454976178782604840925819615891376087042827232285500439929723209932748570249421591942622391022956788569156540443341227521558981872573692036726340478243178050150044067420701758112366314952403223265855446544503666902890193726993730001170188899082632710196644075031635407586336713722432068892101186741673812430980420493778549828399537126888185093009919194025580933551030935018657779272264677880734903444720356729726654955537315208541088098634713566770858411448897678545651556333599409605185635371658001036257851110172829966757364537251746294463496457855851230772130001233560126079080887369570565152298741706167923519740184600267169170086884906198631646407863935661625033579709502068781209320431691407179274980200589021230167226518977427648036457109684145774657803206915855721124530771434367770681287673160002352712164263224270411559307833314746501753626221094897398116085252372753953601446744521837983734599662807313752593552187894001440810931302061354528684337796113959274606112724461910162533007346081280513376412817153271563194280332584590699342584271844248739572915074327788436168128727636116578726554066307139550639830072788455918532555714886688394010751224196237584912498818867536513607779911920902477526042812040252129775455156979094536821850009148833454201987679664276241174590219206925412354455255524991630160685536806039961592501902067975113457997797520077022783599801880627440426109639242226098567614228158803208796885801234557262700255428928764420502194351596472084949987579762826961890343422772585979357910922623299616092143081621334259430448182583854571919768627533722142526514393122870688242838240222617390259470044723244830582533296697924770843176342046566835502680242812106611855779682566722758435768190430486495658498336513161833017110076015590922380108709036812179393664260199663338649694035512409459644758243485358532103230536149443435146325732891444761767214412118273889018681017807851327545623795274190370140328198387326744448851492842079933301872176576237606035926803437778555533273259593553764905407223671030496874590179144963173233052496551079811356192702827415118628895908097287169338011576316864733032370391190792309544404561874222043588838789451660860488565348743294414189997153235664375464788242252710957824699679004114544706706279256510149648365940119620421291877444076214513892695816124760856530737357290821765272988833160719317008027934341741273969523588145805665528397020996885592912588486714245450707867080825471496493143905711811729092948108504695212936031518028167310042394494784192200388628024688782198498950612726108408703154478774611491449578633959335773353346790977492902706801447132372092858212466171381449667309671527096953611175645120327960865975765844690527305988981302068664001087588627919007805720940848788250483743049697732249822945260427403031700066216257128684325602337102899244435807684101865839745369058181363307705084081286263500462389376807115305016237502431536029610837148733365374344988903653501779718639125603753716042617741316301552278682992961160732345899998182102200350813884238765599698365191533736619702802662500911079896613227628535096157129918028015828580121835661483723653688828269695372668594325254244962515238599963135594436832714713195053659108337361626644268685471159323844959825235794661486851550404784607863395667693769892270886056602954841606748053510795724081656814498573899917350240383403929709520817062130809424184224584870554170574152249311651504371646776199730170738380955343043643999792974101639493871417510013902350490847622288111760177535051009963882352250170975996701442306913236904773424859093656795370752211379087324881660560271568906136760807668355576538909917551819923871478946307949332039720253934624642158014152601425319379426983271444902179782910929729099625150034999239076617316207863041663244438736469695951847430547606665405488269969784482335060814706973581719422501204810170728138861397058726350370419617261171956205832830808962916393512587885840977993372075832121900723030307864170654842729510293330781983840839015799930112509948529848071526969307864846288014529279361520019494428023400370203251769017034733069186826903984570927406700709128901045256116421687000797172174498965655620484799368695733327338845684706688571068667479592857044894198980068117509721668134059304507932146321533593295197951158613037363894069089659945142732862297699788540677429779139308044798221902163809487244859472451691623886387514489046397226219020666426384991525617473300177363468176625906628588587323636120589697570475872952320556317936382767313292777076594840668318590412867486426235936448413995944671348447379856589005270329268972595856925886537030628851020032272364805755215321122105642150478466324399722912764228695718837156998546899396060477163346590630340466980154449567000246957140830581640750701039105599514241945389026258408048981204456154070811336697347977753999126051440326392428935573261369608370046983807219433816503964631592730760977934991874509275677159596666239685284699800381311306483447604542422442992633971518804361173119822752949193670202093401993544695152448763822534076621442711039785985430282774147024325347624551141298325303067798979481386927597028490137618526838703770008542180285404444582505752259029240583897161263337793494863135615241972745916926200455246194735108856033305764455400859056302058741948564659128403024435675559901308417510673106260933620961664708166155814724184035143088876626972587020701472679395470911265297936340162749508910790123383989355842176877394461679129056231712545543715182368458122178644345820318348987262871963533779805315326443514562403491720909007914450575353061119193348882085587367618175605824494442935201766142877666868185505493190506822158713258377142713587414549788083389425830822422577911453116700916672067082216385368485274287520863938117466793958250124487973726639289537767023527570164097850929642215360833328915051438846399955906385170480182853704880887341015590220773899946696916569834420123872965247080246139367469126261407091766581514116808714214063720057010827692460086535731014464667380468766859671974238280239637858610237895427480920563232488743869387391977659654953293137419248862537821471655715700742899734399305254860590835327128921705389771420437504009685724347775474893796314512215924313223455273846424135237204367607191930705097998328580074990745576526767727488581197553648380112043302402497805483843246766951319114031596385878438019367606533040524570339368479818552622325859753614582907564912938778662011968788696591197676963542868404508459877044941414231738413230329517761988674500489221882337436094874203947413479716772109423476832267563567793050828150865294182203483913222909067515635464000271941713109568811183322618524619634470178152482154748217441864487837682720230954745335212748491163111092227756942823588843820098360933948040054030233029319793267551787230465803655957380006702204027393823282029323299347962134142710619741469330757640287403611380715687194996422555591924722752856080315149079975906069349498354731968688569399734828027787310498309395549192237642776226696692742966421848212584534126442021365529167320763201920927667538760715225267338297638208072599964854250380824139697031897260916030945711985525586186870822306187482140715643360298743065830369468541714713707249919960728302194977121565155097004109345012114441267316408850270599071749633491198181834552180050763133649669528927118024379364732012005364293378809667466674502175629540683124872100296274440721172718850709597620066899374507433140384828148648892362801376709849222452764884488448515960581860269210730847640096510334977520906363352817084390697494952483326659346385835662084982792106796266608027130555203106641628628620854363285712634149677610300239327417452524024351603278613669610471274193330257935753589572543351316366333229028770725465099511039398588477386993091666535460510200226558800812667701762049954146674119904229121956175096833628579609157331628367198230932813616749383783634488895527852344799770892309527241678107466759282981792920980735640650978812724359288037277831309411506353985182018417849682903891508447849678912676615603610242754790830844490449734605815913210137094738796745846162964178575081402888735091122541367568357005959961764065967011022478269441699365043288580175787569502624528686677872110074013031152973036134267275820039685474152073090689781509747365032034868798835653883953510349336199325587128250641268510679450089570253554558427366207978249384173244260374647767533981588056204936259428254025490202219064888649437471035466058957300173035328086678893910174247776853429094763750061779881981458503700035051980724848943059504101238199985316039504722218466103427996563373502731866100541764517754020357673646358898984117812073387252871023242497763747873877756755568489187569907640393578718247679637343049478649539571054997076967537761820173872518005472315058779239410258454502716157298494575929031303143952215126972395542301315277202295170576710923016462226197423516849200540024503220614293463565951223918745025965770117846819876718516311694220468980239547970978398495721596610168670184197963577980913420053574962437355552822044102600489968095215993415277998531237421920120643396083664237105832378422250476071856657556832032637930862931523707269692176612632001112030942937173711006153857010900840158507469457719736738407537646713080201662027264454328488969057186614512082583197943999885388313520217560943493192833688930319832962726279953189171176486558099996050658400232447278923824727048707703580118012424962895787348366143785427809202793781073791373850712216471973751423227034586293507581862742752540153450423542631630359641761911969834820035449733891586124726563282532175243752575639095274776459659048111789019591216409717870450023306598816613440010444315495911306072407888667814215866423864021572978406418294485477074408257858916670912255991646085647616952667867084867004524989734284066827176669220204965102079918025875970723680940814801258109345532534849945326222215973662152970976355299050473896487683339515550857943991827522637672638743744231927633975230569198683063771606088388775934970804139030518502822973944801923170457883934315657093677198334217201274551491866053533735445993312863453949522737299116439987162021743593699329405527863441464408322206078510127214204438173212439436306520607727878184152251483235614107984114034897128917986184361648133599684136849467403979730138397227105495926766521735840555991050760057150945875946636512889636756267692791219320176905750236237477441423819150109327622759090490570927512343158140197931148886828628218683419151967267447847497981165643961395265913376264471937119862404626805665301713627885601450865944423585840725233952220750972781292140821855097459150176858320942034686219874378398212432919024461735668599840206111146517607829866920709492593163853059696687393725832649152262822213423396093243127236542056036708481279380001438056932838140747663653439692945239026910254603264352392536723542700902672604799741589673326713942583820678272741588369463599110047334479532366435702856968101987263288591634570470594650028212636355480834262590769859211414150331297549389825669885377337138274203041718592153863441090217172468287245512991337869826977511418171022808558746086670480381917040645408105804005280724113361016841283777753733215882377338313973302542584724861732391510434650889320360695490854153832839876670583282762590041074457252769045841116291443459744436473505468114679265401456466331670452586486924563381734701667266267271290839311390296108417583116467888286172948437360182132113719362995314459915328326833842881060303425046271476084156425201517569370616704954184602638948178498052908561069412173210238527672923285128632623464585679521435970020806029563422413807489953410525130680326267607853512523976587921833508359447373108335705623536955350628312594764049798250208491222448348525385322555635275130148477323121700488947965938738522760900246558176343442333448397769991244009769689320122730603177590065130347629726452657887881746409882473934779656838139603481973002381988384323850282427297968763109039611095439372130384414704561005756214103280696995054175666458129108258215135102568244423039932757110249992425246425211556819314702025280919649222411822482603533848800511783442502697745392319604118426740909128988014877629683552977081782210347844336990140510108364814481450236226570722483990558231061230790055605979321057431166651764229231618323912218916600194405896177230320665684175357768574344605335657738629680777948115595468604924825250365143109625300559933609780352947725427096736350772299664036246676913739728941546117959132309076853207981387704486030419867303857446040083282233299304763091964465701759623260707380525162446122037755763021577441117407075979874279358777212032238348736524410083617541707741468501775332514212595185546840258192929617647703959691961046635557951064591156000891746665147729764312345595812499178299346241398710406072134938273742368508900883437754276652118213443406729643087727545034683956480191026611856460462460843440547868746659833254380001827629003769476740784829475315460952118929019535426979802074495854708286597659114982452057333473759566980144705746434746855341997426244086956915096122042382588529241167482323358733866256751841123874224599536372175049776302257846219888406879906924218496181063638593130463506855922310722181911634600187202538644215412649273078569679412191361392918182942837085760042964808672859258686817037401797840019627884149357577357397827909650166283441277714876719735974682086484701786765983361706934371267450360272749531696122436602278658688704432327174319241299422836592673820877640562690200563842411229951744578379765792410466614909335328261419549702650584642501805045863159237840111754454599410292244217216785529201971962179435861858682176891452749569731152246223060530006205974992757430192027140109776064375629492880404858746624658335006559229420604383705200396788820437569819047362368161314830306602897045331804741900536202174150460150009517807248475143274463176602057446615773668304314471721298533906885743791874588329445100371220108997096176290930862140804667044946151814773797331162678538688982021677515914129512322576428031257812158973061827036437615810303118180206184778858412602066941111045833179391269334496426441329781218102526023096580374012555593748543650111317680010236256183408598142430709319357666234122368717724808243924291587405551678979939143385611829550849740487587121032942036549891683026363697278450906229485879593803464484149171353274480787027947108101682316151288282176742372283686703719878065251501195073130750672584856183052283462193735718029719635628587844856298456858683268116449193359486782057720886462908776785176581993504260003342390078071627948415078018622749584926553620067198624791167616867274264319367088096037840106247848334967847699342565418663799243299484702129424816518635792953839282458896517121227987543303445376449893689394261436757707531936086822498562064426296813759524488959506103928001205054458875344258724002068177459033486516015127112203491647499507814588824718524143183977322525866177683695184252810226754743525680066400943404158599178608343726612354240585378426320269635033583794820076370414609394567446251693250002394417887425131355408861212346606837563514259568383423264343062054842181747693897282502707559056917205541605365027850835921818944932791246009487233353418781413328015970213529003819967985741966344968588419582573320613148024477318321842136863988936151206828573072855903611768441326749404532018144361652399030070774329281522572795365525340742307059871018979103544558115054193585945639307239658118722470395143327971712386022190798217312185673289443053236314710691327459150584761694312286155124523544967463680210212191886899968673331875911450189270367480722624142505621521877865188045707694816950126748320966901848406139900259194268914230287931619405629146348332943700298135284844549133385309397395888609573638543919923404419857491653156780657673073479320030246209630641250273378917866428685552073282096804110951701132635855269107486548670723897289450704206392693391161899932143213767871022132881839900239374543602155003565771922216851414549392599729311439640106029100944428948830663223348191266979808538124945783423401074244529301661025503732645748743609791934821006462231494542989577692665893897993580535580732989136182858832898047947817068117893273892813651857031514278082178153992245064275126593659380112898010967258862028460170670130240890938693767998367152129204212410029865820233312182903822512299952020916848914411232940102297290146179395908760894090983503842728166210550325684577040778397531089554056095188544816281474980894239087358810207913849338294170208700880949355735647768411081426159049956727645434545858352480527151814132918234772536104480837383070893831450412318425449474073146407352957098409992216499404844948398901176763848502670551900165524088905127087182078719694101138486174424112345746788421811860947472146692290781148189458188456143304115450674280278031498139386398929226232645673671858966780616439368496997016327131760926680250998895303932925456098596401193147459759448454191378316501883565854862778369075464417460692989558779757446394595379149214943186785602332650084091627028348219631036550222551497720379687173695540904283106948888903395627998434522497822520289068544244848988067049364890482723086554223548958905551312588962128158482657964251826917655181731612142134279234766153534028597814779661052933736751182691452280300668664340355522886770834197425400438313240958246847622238106085349693576456971197660994617793914474446135868185942792835683420863706426122506500039374227816306192373833268528957987581206494319663266595652705142867365649820740071467494126867280235224298548148671169207659740122213773121739657273417985180860978542374873424888068407836448817334307971440013883934994089791105459687690774969885762976538232509635111256083577633288246650079264420255502540718368250187522715808652933706347561201653263548415633108766927058472895340293984994786788935759783521837248485453718748112899855903465027562923766047511741010253904755838560527564950997092218116000569885317541087362725931071106953194930898285065459758396496577560104527731358910362097904062019586468235606390552041637856098375289707104259822455256046809691455308943466968913560646532563867144674712486228929536203621706729679319100257728956884773994946270544101437968886625108064516416039223352221025050812370940222885516637040498281656924104531945658189623856330080387023050266248459401201610009939821970006324801123284280611479463644836702821955216081156746719973761634937652824952452654872319201672793491947648505191894730170872711639214701611343741093225552557597001215372215844323442570713107402786410064855891213064152324409588050871994734103414631666852193041190345349492852272945153905652018038600448778131838781968286330175924789549456072830303463906872917286653396851840351486826971466425174044449491679139054574884536430859948696802554888947778980662065023121562988031965575827347316430474674381010525646985725981839556979223558580472673337586011477608799576877091059225465735141338303225897223146674266455623671236107714742775264742942897974293051449515628734268000879234755700287699955451401275425689969065419040372878309981402504113387630354384760449527971759553964342885066767144020515872961862438605572196282026570712207355037878041619632210647202293237633382845227629808561798664504809510106638903948521291281767637697937872022760427539566474464798401527266911153196176070721530653312848489282815257301785867063806496675286694051674508729552825313023461718058165384129712025345105321223038345596302960273382781295594345146170515862275004817626211564865059982127860913133528477154487411021717006807361788221154733678328664063062900101789401168211762489440413252366999260283550565107191428213799839240059295327666513025533612574492684023474069880347427867670710608390212652018583515052151932634295516465207676213977920130497667903510251122843692164288245802435753340237640737286393491148551657511769831410414392974896792115940372797388006437655144225262742773643185359712019139362920707263116784475070683288737426021157078432878487673592901952040792892423054757358399094515296380336001152961945921894786497852820618731638058536209559352827536253501638740715592608997482728794411784251380297265329463315625670218311780316983711648954298282812648162654192350951146807630778422864639085778334084082251672343143060153332982762282302217745749083933974502994860199933422336619203595010851410020070523337647563859797541520922216624461431662681811117350214180630273853815467963693360291796428828938992710109362118433331594299657840149065456562134610197115943959127507705914934577934952295190004390647189602955286599568858521249646713233703511625698903359256565789294240676309504010125742367597907489638330020870597073060138775780311224487394875910205070575887826440301904799327674947958971899689917364315714996945995366198446469917498284878237903082799309942408421750086938505673328938014832864909439589829612450003739695758245711329491802528651592399382520677000511093940613123316050695605859199154303572250120327568050286877531661477046974882689873436343871398891773943456450048049668786070500672019992525037247088131257977482758226495294769856918003326320363078288288513803125822431126014787718748633152620548917304147701120248330215829162482756784845382835199282590149625601607228020091672408661310839285109087095793288582073587310716179095200864741059328152007052373993103075064921614976696614514395882506088145727186342167285985528575139070575983513404189763651798275457426611447417484633397852992328245045624176675755145584242232682558213932905873810948320538084582163446680013796300254549791405931643545518592061926315115830467144346168395346561648809244080317718045342090825550974989364492154744920369464694238889033459988830638178192475763055199554004200532189305297570104427107557670518342132811926962080104984140139620914326181005566050583676139134134813089302374863439439689856852648950647699009577160470034928873056543388947117189096465558105412380622034365471508338781128544202280401268155293014516525816959128833760430067423216215281555530145572392204681060173561208961293296302360742348161654371817019154342615341300636897950758012931979226549363975734937427745135847243106254596136233462129989137483988560895864486385792632996883338925165346555176655703718896399855934610900551786236198012503678994975940415248673181238501272073401694828170887447534967780320937028846646757268135608581755256956856750329992994023783273355299144579123007185821394978269271137325005095624675618624848927580792279146069905034738111099542067163162708120706464046274624976825971321188887551370577184786476238843776703833216485248857371259666154018420228719652489649813107484352071316587384453774191172461184172125427577037672121049379264241864678741606362001146904439465561847351306970068852434809079775868448175451748616137409877896214341210053165941519905515683624181079997301481622173489018422040072500995741588937160802269011759742215670398212806399615419926724161702854134086223945030964171689222291470949125723238077939001991237767755378191779453208357114767431950744358904140959096710552083714709290493731731110985814323186926446189462052139741536436175953977624726709122805052303396504302367472244414486798300262275712922598464728003967667960108569255336047388011241195899084729537047276109817757889997949558016595993211936257020813329828084791285264962444838799333933153417620801742088704476178885277597199657998615629046079572779384193538545453866905195370508490676916856588471971151630470316054467557417597015703944067005343152745150019636152432281469023809103450964486384519899871191300668949343481644654705355389424422632286113726419540072865582537184967593490982770848558950071927968827088110395878769246274526719981997808804341535372358341284784002969912997688304132473223168271347331258504926249956278600056695203526648697198460050658900694761579045427681374874451433035522091306417932740933731725098677042539362141997620424769026435318855009113104451648198118509667112929275059600273498688433675031199057954827114352053291990198194743760058294838824650126478319345236981831935219853483808461491905898803973710937629415695572659283635074249560706041154215448227682838881368773398332398171939911636463558936864473158309694930194322876788785317986086960610294979603840298012265778540340506344667923412292692863849760187047029501189798950434812935473272833462730812695898689896021726849487203074771699646097073100526261931472388629921977173403334742000628591433217752992946470141582787877942586750255729604837078394966549147608254492239708454410516183566191990364010221701158167756481479383997596499588088304652760712696054523179892189836496626403230625351770137127791801711533914940639691057263103809335907630114162560556473763726906098255458568992989411710378013555993101812482086787977924806674181220391733978793197696238890985405849044398287721024649897685348842015237026517606668248107862367365427981494637638111839998136178477866494467313630510636109025096863163768707291590265694964111643578569271305367403836698463080897694086799833627337251293313563631450485632654787506587309892366390361497750579695419526260389908550302058305280402178192838210921044608369926430023851059716745612811690267061479256228920104052980301399388515747595413978909518056748424158078937386864233403569674893067158983112129261279062171947014283164835405917677485769629041017724733811646699253565153962370104675914615962608898563751427860737873877673496032250203425680480458897581336427810145239925543042637812203326693047950215773028930883585328520671801908063760974687220513339951285991423465088457093129424328367010479534455506507771649026198951502152403815603325328719078529855939391365278324082963875119327650956068330689024577599474691644002820091362964980581267374916824664080111918435313378641266060607186994388724599107379156489388138799237659368452017487164712598901893144145666639278222555948120177591112217575257760506961115803684550863199370966634435653589167618546567628091223824518269464806437634336844734499535307489782715679693903255536332601342692962296550552248450109009779804312440057909529940032538595678403051363114958757865043539069034272341782433459369958993359260703920065284817963002973608335303467508002742665682794834286630316333382396518453516110091516459550471828403751583992410380460662909760572783047296404054107754052640693144209719379911023300168002711222845324735633112252853351705625612837463010797165144831181323058394872300212683682237397531407040311281304127312318032487467015221476044232162854338231251052419868234581990361227229546200440950709934459516792660914946205626890380123761974045896445078321126808590169296787985393896899508982289019410847476951613903614398634315522048393653346951570232011268985538282893504397717102605358592486382154601467378676143685384241585278172456248208167533372734232347065974552468727264510714623594633587201391727872441918215010233385154053495151738165670744744037856106390840492733810191517414252859406815656659634017184534230980030860023950892956954512870690830951304655639775035734685111978253762621618062032412838630714370112610144111491413383988682450456764527812410536934885552015756522953559827647051751852933134885441549353286182264539625906926197252478610844696587802263753491023960207200717559851063010112254968136591074547721388076972108737044511767373123671483671276984624630858438762392942835892840797613692716963045710151828813029288986256003191357582016926472995862440430074264410321727764219113066183409034913113508166343072345304682218807649006027597465375901093807262869289156228684547196385578764154135560493459838729121276337135959438120565132696543029994876764380663382427019645417924656068367897501267254027054676598420664751483037258741909722764071466315325165306070772515148696579303631012866131657775467492584045688864112725983033180682463675570337509587869706847504908062057787265522575645911673241991846945952084479763263606472137516666073671190598561689416239256886367652556021909405341043961899026291709041917257435240460105805163142012700192985166945610511883423776161834326368828616149860364101165823659061741919676072293592934943832615004134694549259232801436430466486521145653308495753388727309341499410908076727143890375178505450764827534784896572670659880793323246736689058414520111293724459946482072092324537030537411156294214142268810443471356792801557663805523021869127571823816427084678273821696457137483824822742360782860834587682497848374026572758839867740105071244769158587820064007138417717559330286910795260928714273665480114347367611394394798992087703806894229889890757036280463129072141963405830258074598128360648415803946526764884859661095977876670102591703791118446226061200139318490561953881077383298038566687615756542519863885745953578188486063272351437770398486734442183051471138508400397424350729942784603755967387111818371719112051911399017825041696202584596735205904771958312622017229102048514232791607252698215596574695564786684213643429906151120325671243939158216792359125443804428181396633466369393539046479954679636210145186666642874079988854433386421803448046035059805499913421157805100993918596072440084685131040286735663701900567900234208188925790011132828769717831524423001508435444507108837602502571748990931107554559548204133085114814158667358615299202510489723874054098264607023767337008564257737651467393846012163746312613783615470503813250655372912606454949484859194083996988658111278662804669531765049830937049460621324002161449405331230154458011040232708829324760123904732574216685808552025850287459515875876016771659027122016629335993693908826182375658973664309177412039709245669445669625352614524443746024661553712362040392207339419728727954988885671964354078701680135584891225118476508257817989526321385940553867181744451389780328581636662548494221068584754319105257040493421060922833314835455617033158584782292435792382240144573723384077463055025769366323892176740751855100136065581037191244825095146360687731455155407882300194710947650045339646281632175001219049165026013738012687546996104062801164625450535356028568917749132759551929843104244958718336656504490670421890463017253670333960832512817836563477450172500248772435026611132927816813375068555509841418272998209419392408704023183320841511450955977947945452835489829602349409740442745037140877873309918966519424733481078204964856687551707502601110099124133444860774718446679278370892877756931703910211230403165458307036191127018175310430541316586009681194105475249725155695437178524326570939499164152110212700155116786740592417126203965489011417783365865750508884669411291534672562434882478082187317287448550777996137135532636508546342008614811081360134076612363719209806097337865303491087200452481621549624485725326179810014801697163871982115442812247104634145415277642877759669696837989924350858819317587054401473477714482781121651300587826357235956395596323785731166161724832317940611481651601600363381020230056759440527184839508694404384195508229865585166719926479306942846438100728862412404669393112865065805821292845601028340738057997715411115437235395883409885444151600250995415001396133173734816150545063572076659201670212955130966154206500359088890325636648695638970140421727689743881209002651250872107073631995302510487447364650701968052147653985162938535008606100075880758735306336183222087053179741767830741292219967904315991684547961730863735091910781842689842445053190583431161717234333037941424820902128277084922365811075550633880140351768691402859998791929878275472571221243632879607416434102658115996413184129118305559427286489055042437973333237360584151358994122476622537742946350247152297949097272061888993722075544388371813343741298831766488302258451109416980631493026052731353740630622524911533143700000757331047511924603001014804380294795700800342445172267811956215880064053128101404522009417950847815887480920273801122185678161179746702717054385029260498238986155133928182113773318543215918594443808446853294034670276966233261460854419529414433966756097519689516258431798793721560409746006086949351341718811257726079853237193286705952717114106882268152526332167072376187329355718607989731620542924934826163957341721213199463858990458755907703001654330431445457342740367253806723765601229649343150684598243541815933610375763367576237275322296818266135603886317566630739028203751461368736347535822028873294092888917732924559395955376491956365468013792973797409282608382810758355018938054180750653369945166854697565645328546798210230797964970796510642995643953880912665713909072172559902131949312038482674074829796232127255177616442712056962263573798476219954116524981383627041831395538284428160049869110957669820502031731359546839027344662909778139238541986524762451742685341599390087388640996705388913590589069674767476946983539861600926354915649500564616409814615379388835890077778648328535089106793022160116578476931555834869980266323274477728744399348968401049572866900977812597138248766659200411013979016398308223536190703081742522723913196036846620361768085426560890047963058768241620781295447862591264980241001476389515104498235230513006379826854188727012868123306835842238958684131088434747083969240776307499208633120688982449715251971043127595768124223248352010801578462556262685154258672861332566607816152903951544724169862730133371835546997242296775505487071620317816551201304196724007481909134930084845056832953685311344876063417365462215130556928082586785844874222719861607084686457745104642731809719905967283877612403087476003219999954599921055677838729404082986379086309740254793485057990214387488395446740307696249582941550253114430763318984674857808348602082608496895135635187361942268289128356664793908933045128661101126219804908169255119253737903952633068715375826237736224397070630505528234312799421111506740437394305100102905848077255998580752863284069517805598914216025207952381278270110394084374115461813645998054206156109940640773709962121761562771266157564079096592279473137811670620403483196373506961866661025078531725586656651041362411255855940555564805797509509035765209097569330484171384682503534275325594013157522234597690601726629364302825718455765586460565645867040822472108529630898357673566616300030500976313837239952654702028930304549957653804835596099844937575258400150294825991633878089973774420206605016501066539765098483086219790717527475959773358317244258162298699291816444278906718055798949900517072684526915616505746250802780773487966319768395347663733578647517945994540280764553474653453130031612780526028501692483202135822265088073863213745750193080295434020741841454424339391442051975929278402300745376057954705115344378316659411978935185321432167285033702167042435959767059060230783028389430215163670894624131866728716584228176590324890196395812201441178605601996695502199386566748338592084982492669213771205445003414483803859263304190203355249001258258535426579739314123173583777203221766264328947491773505890162170716489376235609931825915790229382419844528199394465111175707920668180069167684586117818146139943221060056688343368480562119303298958944972510555715677095483393824066948307313381534218491810312661696575384642175750156023939350848490267731077766435797085861173240472784872120468469023894198889278251728637980720466015863942326829859061846523385701580263531185251155337281084169572031451222189048613645188822363072885994084300735989975581251912123494455849033119689505130668844957020379773264199618484855754966297724760055493814399775271119258438704121220673151060669765031605804351044399920006382947682670067633918793445346563216810112861199166065379982030365658851505448616551818358708110392126832797591110824215019494366436661512238810045330389199757427382312556972557073242303035242750999341098208698643537211825668791197448446283100913288200731778801068025396328027751361076988957495586135785882468955856326818751436415622559706256503954492440797639662344839688524668550924985073138613810746742610052965540150627197251202041892419999942929479199240136986666981625817177492660403605517175892286455255107271020885528253883399681954674672818854217746336151659404699605003672036889292047413907651557833848319902518376413718558955123413930274778456648609211523296393253403934654418739919703709515117402020620645386220798900469093066003527234916168429702045125451703596357560645832464488660416503575923412320372983119913362776425844386030029370530212959155884216140578546761047056940943195942420920778369362321484765212447459429852804653922454942279826581914223651384569423697232552045357189237645240042644464731656552895341901766726722780211302592370592055791155781226063478369784435099712631035784364227701635987151207618601983984508748303525896875350563299332601588933538544024951729526092502142105339172543620207858457872952430396607069747933765885466285232399015434049544646233613244341788361667757509354851442829773567370545717909062599116290574456968065334137597380724477513585053077450410500790528583416427383730468692184622888446794833981443943362497836703124863520531008586598585540779539913710447188986675614743765510552145296822866915984229016072872353790796828159061835805063194698838002652010263953482855469949212191569287058141327744796282673514364929828859449487387450740913076732375919383232592811615770494054089540991662647282263258459433252892283656684693908801598724009577271435753324824257795545654945209150579317890678961014911924970710513714008016379507370881446664173961486815185774251204583983847327284926913583413698199516797139875649415750709498787186042520040035661879069147630732072208859463333326377809346215034519065301977939398130132005367693507795169811714152695920606431872905634821829134295031019219058658590886706053867144575238484997542686773677746684571359130010492200231583486702840763173426180093265946804562459022521384010653268132878704560965457083349083025264855705764388166281424326881026513083393958469547744738664731668489707410295731843133533694622298955633891016904001056601563758780822916540745793036004813809086154425540159704096827377149368449500146465638562138964144847431336177409622651659512205392537957410218693107500816115671451318583188438348983981786284176074731121749060663427589619948476915914910790920613739617336084227335704832086502148705263622622057578511522680668346915969147221595067287630960349607046738056297606451097728494685319616780756424158552673922745270622577133848740565302127093102917188948903826458063222062597811315216125400700240205898619941979577502483862862127635051817727738108185042791396048194995300742223743438840264943206026436639084989412468378917970493633421118764331909560807389038124435184356171855657847548876238726025622086875749008913470877156374349197412013261181830968746160900529593469324305836999624789085754578411141856007884113938406973913624745930321017992847192434989007084311494977116055621392973722812402818875004839205671037708416722199442109368513558012468994836332207668688440287341555150595612184209841759818332447518021427907419672589075652488406227570671696690829452237846225765140409826731948856091384501839900747678190555025273478872435584094212920201327443402801027531424468583663085518352963998287699531613848775926048418026215163199126535178962231092542127817897310218135958471729861407659040046517524614267606495362094593332227336532525046258238286142740381629720891582027894761035144195683284900988208661832848289333776326503739682988815606515787129976198319845031609252431185125858299153089564966976292696755859192832348670171907381609702200246864495316763488147024465787802670415133767790161821319032794391427677219382257273849432018619639555787515835571708071710055298812056293192024687737827306102169549101583061658990892276052544516567676758210699769573175523960465141175650750919178366196316408724163590996602999089006708542984762452143890333034397515972247644363035097977663699478580733614266997744613241575963972008717619655552458872164078143443439356005637558880072438605602458239141782930732805578235365755411769367698500671596605197544870407535008400511720004539590320531871629509907678074871613861924650309238419869083636944187925376120140668913259662653138209409279425299243449230055743751774468766628657725186114082027333566097660013647693686638119419715381064399888521702081402956877317271060738707102119596249512910299893733780057638596455451900453100087948327352922247322305658491796307491665122841689853878051888898299621130596395180529131231186566148090453712772188544239405185769915234861964485201551987555547516804865793230959341612862878072058838487576157239842300076605294686445451172969284971607115216398093442500254986574222295376868802147779961549488372947088250500688422035365323639061265822011419708541281730713077363631341289377316935190002645307616700876080030194393712505521955079548799329528541570969984311589073680569661691326375202203230219484461698347124960776239703590523856864794692523827705008055942365319381625618180323270029012638514243945117921599484888806712993493439973904446406587270765374343624859605601974761722821557523790320053280925869083601348188150048531798979190892761238921835324689282781236187054096967708102752480936555339586766539425834441436810159317917446689747114977825218326964293981290319944020536664093197597638596824125235630012354317228203326110930503291844055542298330092311559149421411388599459105873528723917096907844501005377609186111033067590883136312264702502571488945791228353651129884769674362828834442281685468533261456969879215821013922001042192505128402228758446811746120301275354302855248820990925440072808506788086725234926303017506360853610078072842631413279685381197345598764687077289145538411753126990724119090426418987503474715514307805534091532436619485965485274455915668951807965337676800062177790005378064104038665488876045324361407791891641344264136940307570913824451114972593890074395595769615535688332754420815174301145169235411531717469286969989831348838828201000448619589205525568789292393119627858408896430581560038376812534665631556486818763244266739432674051576351656451480668497680416049645954707952594454201690295746022501597675095033093805774451904691350680343466217724499048951546060860794698037150284841617624446103973458140647024305282938712201525024992610850395251279131221479219245537407238687993983781912275510492420736601252130688302872060010604915507580313462420540421146493628842061373437155286257058968711818047517210426508873461760551550499056448367145621662623540339493106321892764050930749906100705686008893847836491553330474894204146682820501143045849798889608371506039884802198458836662634018313588959415300075224375789784943682266218189193706583935714393934923482627461237335885193296687104605939888286682878293632331697337706822153036941524124905015722075281778750164282218966740881120978524599660892439557331918699494192737853027188158916161777514760283081050249269999397102891650470406276527404938680592230395071364452313172173526356148240192352324500947143255140858173715682352591152154602232099758038923987040546562312967176144542979090516181963565132564190897308613686195004696471707929295996400293327451214039188272050154148018319727268389347925758041972474864286487331137267859963639093097690722363353904084227467185669152464979549234994480695659987706374989113856721747642025287084615153517717806595049264099475699245605756955180907007300315547289888027216470471457892568589077196147151197615061998519930362698844856636486993450879813632729706048565433349011249163151204787493263324571215551283081507825271261392648806485555451449685717996745184601527765378490226392760485495444536801683665420671881810677783191382885864354965436977791465097849660694693261379743326610854386145702116830564262289206650895645992820889194735828021520602756282984678756922073425134776368237611633935967218168898209477410554883687384460762462056456869126371064278083762918377886567345885617290550801575917461535039779858380081571403576493438843240224163638319489783296823724127915399592008311109969327086352748425114714552993373793960738670020647675867284133251390328514409544694482920685488664804698445371073937104413860874901571600167091475573249209440966286579023803098041054365734904179469426094562345248028419775681783522861402761124137439114010449620482920196254407154157875222800321147157773838514600216406109249922669883627077016948726378898445227829500905700121363680498063010899927512933787258058543543983611133962850606073467247860277469555581537890836457005253778096256598422447794397605196445594586661407514521682725680249093844772832779538663519381290728426552476189830902558271655984818216282414848294361811615307053743507239865942894484499069224833308601324788900914383419785812121865491749397563268981053502232248088711379909956782983398103029633777155881074926436655223633053311333339637088587174629321203545427277139964446715056158491173656308106406597405907663633910867891477063863291326136595252002981715307976474613594960462026204959263724611334387312222266925655797621854183694481241929006617072292981534662177928956339241817476755960129484034144502131120231269906377574091758372596415866961884380845076918913648869896614436181371197989119992165363233160557496415113347409960470423038901104220546700173244137673693294613386320383191053722285005810245632825841943337829632956159234723070857141239406660343022128957390219575920650194407858127409468950982744916451592375667414153797102599340447294608868005113358501145167413590969096988614755135765859719915858547904075129542720082028050551353802514084207063861527685610959977784630467755049809498647105107455442150000120772258879593443189505539500358825126815800324475678239641317290360974819405608942717875008108573062420929070493917735005519630970329232000993265439913141141784925983510399386540813514565837270627207089009403865009558606718336157888021418589864021406357874130854161898760675212715199518441205277397851039915909858061257758291395065444443901677424947051085636946010135172811265273587512704472126219084847110772122217525910377481526034718412128753823911087869027613648705702149772203894885496150128906174949901923904790892228026426592329225272787838560972777768598288768618283248641463563389606844374526609591921284706862556088356126841532004582779692762217067879772160228572994635124066315511255784077543165570568571192871247339094695595551269582069640192001813403435372437326990263440833195694256565538160409148543998783762576090241934919993694675229994584099854671047715239597320274189342697698989101209370745428456960540527561309464040466705961513449416322490577901718411212468510609965101380268909369103941408398298346152156805198225214131934965800199739860368208296923295946297838162274595220689931838166647093142663284763106193462101981088800434277124136288870465534172948428631068142350323819201666721973267119316353518687557887218106896032690632633792953348656046582988645220550202841027082706731892703522906481270165536699680784924688278653664550744682952101447017746619780619312035008990975119851699692186822395248979173304322243607110598002342518919163689821011253922117207157367622567849601392583195766322044863777145384081470047482185572304209573566723590984093660193440703918080463510990135067872217116700047226949842641339640027388131844983756715465001578580518250499211864025005501998511255945271933598235149373910208662843372077200135089358372776113334153618028952406544044708730760465499332345601022487122602917522100855579241452969177375837164622094517464890180644018958467756611525961647552715016566299399473002221640004426919524326571722334109755627897730603625221172988544881572196068788164854649471258117964089601743084277643928816096259309950651037037108793480773790349942366001174680750393740300706799432915799254505813732271971889227024810339149231028936782950363572414480523676618287726129758030364437384027738399194757038183267681149005543787498250334655508824179334175727660560776265749223406690009104630025010626519519958830195458724938215823067817124197591689695027299077178752398457158002199869256713642902826276022319795939940365501257882638664289927841153615648614501502415191625638291421038073645537234798891039591397616889826966671175866942142654796645384638610762815009676405904819770843575210164622306774436353599456435527418519548028322621224206595515069478937486697233271348648146408934238601978244136779913821210432086703454813322944381740167058652767957162065961440057529699809899715341000520025377198926443749141575748573680210791269206647455848827889850563581907377853532384627421278907770742024747216610064503932979273752826900393582255358972863601680399165682799624012473201584683576039068090247806056911136580959380822298549577990646755003934819628014226392413595233815723658614347371374607816247670591203865858630270470877293973530925680486054798285493530833875005480371607366423279216007561633741694597764212912339813033847088635943934130364497383411708444297750532126511840854275356783663266505896886346743425490628594660409404518234698258055339385296790236350390568873340096568675776635504432328915026688357382790171277631671850945442356050034673647489890876581952099631237833222490508408275247481315024434898601461466016631332634883741416158343558903148213525078494449612078060339634075055297268078424562641644576188057972002334609140524641217271017518219304060010274753882584745653542676632684267074960170153472890740537040979413692646920846086601524312703380978518056953347951452964600029420995651049955205005958137160882564658374913532006773664483626550457902814508363273099487108287229956053921996860944979341730634542073143075773803939855667090471267832103145888840480522579967276798855796062814415516081315779183463458099226971913192326996131810900574413840712112904678582186610816484195990186744343855584746708781818087707372004836290664704436398961221715065289250616950292574797382984254394540157188051266773979771163698836054343996596857851725902938028513954399188065551667164435970276557540220581071537348878456091495842624782406992671415792392021134019348471968381564790347202200451736749999972826945478210697261273701041894679452367078277078908444858984660332970382022959246374442545052897445413526803120508754266680252325633815967695191255381792227578683703278703256375544119694299536756096987641111831787004238422092712069788970908320416324898573913231231478762409155914716452527616743977094496437431460230276381177496767034106385263397568927794689305716771291999541401622304718933004036769121032067210004809345952095108787113565238557700332613037803481829342963485254944470778134135408825856019998897571006532670518637231608220050297980843036748725561950774929627044225377694599851072364770131938050276844858276187962557156426699873906848557974731072908716630593739112840231521582753951606534938843205284161478542947891670781956254499911060217950284250248666756724717389541221736094437168468468218474918252550360390978967063308302304674728844558205045429832086956103922331482303813831135305370228940695990076839581870999311572746116538462707733486959227365254955534007108783379611125963073906413048201095305817010954041043726472255240703848253190343091385722943650694188225713145810818811193053501842445272436573314205550221136745039028336138082937776655461467309767261124282972077833384352057009553663518762256516378021657875997321522614087907126148193648598447196862662035956279012792074213471862056045181415046719433959903104061347494020442653148251449015217315146378341154863419419468873337950197582208935071320252853943092725008479505716889910949228418849426876559507079823409595523473719401904301834604154882157928198559452453087997946340664721611691669823347244770667193377294759166101626834541551199199163025134274118270933720495953846299338478200937908760007477480230599408344845334338527201639528035736497303405003281084501180551405915872529785033191165342848313309343735104843073536303332739925758395456409313523347278528233370761927960370671476785527676904172206013155860140516634391020751625337861957019490753863438482285149900706101030415767046328780141632150439564132803673674114976714853861081786358486977268229925007165226792742538206987299539537680620978842347892199992031273069618955141782522590752483390352379235013378049956969665920601915376188382686242663362902057116636400067398437934731032756387972925465810754122508749402953572145244718759417784062285248990950384110963275836115500727767466391196755471368551305414657415498756835608685902277175541102769973673025397000481253319081223269060174929033369840290941682180107619130965851086861953899078596443080630015485321281686288201803285992035811598975668419344981453850026271892688681218669911483883685082777432255363612389529505427672775256321921818942133608908669921343825695767901632381904881717496669113976111139088873422491518910858802192222199420550174132083906700187853980137334785030522220039690990527424711781977773943626986132024199310859705805124465066890244301385939628380571697977935553923077503162993107613744189004770583306374325799480374096596040803884370963941884562503659156266762774771654533214000500678447869761197514443932065640801659368002922888628900680551401608683635147012466986533231157154173754198750410519664156937699843525142777919862135705861423898437998922173050592851355289182350813851904896590936735920715673591909846946720704666416339774828464741475858909901796705640477459612758238751344046811808242879974022841077196691911884903216414932775443001754059183565377098213663602852945815764995628269869287113067833472696767439457697357708216290575637156478748705747226634681967334703369357903916453277821097692822029809152671792542242025653152086881400863307728476205180470003496629295577323733245110047528972127326777724888148835701942130631555656186405725605764836399741086798534620529275535572596636812106702731057745544125800499711258240697037394457666525891142150390243595318319699906459840924922047225972825555916218802390006115871581311204664440462626938434985182468359904717265241959317325079774770204927379462000494897303282203040882768717103477047322680196555782027137093051970613831071007930559532866187695547596488182111652185142056755761747655254544258644707093909578357823600004735317453863587880040097451748421154310398285443450077586677466630716354059777061456820683758464711614100276792647291334632698698771274661397351685072691585626468551727569662230344977903060177765295373625905279853779858906037631044020832783449647046622505912705067667133035757464659123980145520156746826568476419646179295055805063897089893193674163784059195091010657691774176699366694006325844338369482467783618612050257986091117088741707231411709432684083678435128848055317192835402695931314772558477967139503096891852317011339467172230363978275685022314074816782522721358861137124016065839500359874683733417004732131792910875743286131782457338584260776701171083676574715445144695340264657869323041119205400627246253085798868199911245815979015470016678398984782842497994599588948836059557637792509401521848619384648635385985815253662166154171044522631225180027101322022615103654928345498138858836628025638005671144487490815404979108849337893674491469476922128516821847410089495124028703929109061789063135667013909706725993052082327193982875069897030449373767802083859842218283970456387304427125040937641395703820727766777084231245400446363069619494030127932159653858874178898319121977472516263282138635938297799194879015799873652062716762360188416106896775356747678310178776680866939190982127941779531901671100700583651478702370970488505466996709061358644838338639617516661774506489912530660008344827510566850521733611639123069663466175001098801285742795198812303636148401106533943466227910093593329555933731268415010210414190501528922085224921359408254893705251121601071248531428823273472709093974624225161952247118157968981675674292448269404178123673764435727261970659694832888897924815806357685867674370940678661305981835663403772747415933328217273927999804353207696290516923055187305913956906418360710863421581864042780064228624619253756552635905656058561406293756942666621912822716369460952903333034659715068509142090244549980833658511000305508889743115405023405790339121807971923678272780868866325011053853254854343334443916258145406059048967205232694309088089383020094715995659123812944494113625356044790636044720665158766146895787830290422646577066499822194654669000265129152591855034129808537120759291335055442972217912805222054902862101126411259597068450014857483265518897245538591983435732312632581110588627781745111024003501172224998848295388844348571980642368967483892137440637239795126819491102027639999458177288221961104245433279614164835241348316012644924679423364533409709640886887241642282857747848459740638615242537459005295755374171738464574733559758971553848192701863913450248730608623782934341310382060267639878428320522696198413083711208626980571296164972687198578254832435560802598545842579881418351510802110449334837459288545053355080020571156032283549596522563564570148768141311529519886911362039439090902282898069501524666154808795069262172220202187619868947065271821948516399951687792049003906781600410332143630833491257183681716551600381633575611766393983933528154327609538461871323173618637031535272433961825645183576379902109493109560632812510258803854688304252172990976053781397787918229242339784811288825769615192212261802841215313837250714475946171007041398970755375782339100938274360995536586370420602949321276373692449880909550601973987152923301076022633865078409098372531228935511204653752824425689324871384943598600419066692566995530947699117286936928523739603697648423026082533897325293327868935009896232552755256465751963777764581181262107602524491089757455794650279789486788173001751170585326738980326546016020631058152107086032825006337159265479244531877700240333917971027027399019792259578155448892826018115610098984609577019485901728680177823796270151826584027802730344755990925993980664544060113724995282778758592737421976616271788219929450868495219039329548861508331921743189697041849491308067005362230244710633130187907857448701692985270381516858514760917594850502800183660654291135343026984985309751191102462845546142034095325456949938663920570564026409189638508544406326432290806690134018003141181023175158701315540800457688786434596957273190791470251295591461219391157718425567185208933543030009782208306926867766194631803763115426725182350288364427425494560286999832766544036739586734557434311878046860263746055487824408854248214380690063230858527820832716187096086046219131344391310056712179615145347410719160056822541008130623613768815260243384042378247651249233628793607845578378482424699084778161472618092095121423940388342505720547926906084504590022929626086283912754712194243676679329432902992209491346181179703724888619396305853398209825094935434562587816470487802149671875729170690399797551809780373334792318617146814357661640583933354359742850944183806049954842089014963341145584135896475630635484304394692632754780049211755563896650620608922720990454393483554513376926223085118989466094689678747051762070499528905850067709293154840795314387733030471029566779149930657919686749675120588675871028291796714529817591536646161382856323101662984257560375422585552101855832418838305618702736714984079346294577981768072943348490081122803779110290888268814869944806823938678954722527645850543886130471243296704901398623889144117325439260298484530443979455721234139119122361245331707511052416718307466449042430961743902866203073249250402675643041391556438694093342116471682150101972819849549947159830028125213423809247059927439998175137491673682650136332861220962832079343279593564564254044119966067307114083625095502298830088069714340895083664327343238173682275418075896389360859394739279878954353386246656313608936101641904282856934972947405446448986285464027054804235266598553011894821349011986689101127922600522035060045057609137013997374152636090346815937318126221657996746804627285914265887571715061320251889101046594540444596302735280800459074065373535740262016676180781408678091835720153723544800584826001395157826004618031005561754675095467107536686049885307974191526348978520971997331859371414108985097272588079139149272331576763802270422548810140168771413493322423555449241812996962777476463439421246346883332095167578321593639552407165511134569106434225991875328765050063262738559468917364706263805252382840036445933233296021208448521770393490358150869434727480548318771356949339174024044289284308659461339790420345753000373656369891588583432958861821279562929715874585843179760130119783158276977174158264865761260780301702890000119982355785754518823868316113452472398427342430154162639314794561123210424229334177473036313789760297402573910516948917284398280550958517879581506435138649144131733318126715599254559916983346314187203906255910636538490880491713374376395751959713030038955735030564614323574198054643006508718873225636595511430646627402201716723247858429931863034207443591322109645946500215981855477714665589759808111011552942308471646518035075610272855844523440469582173709137445565322691720068631236489644926536739906311731029963511213890686925212277373959551823358858693698484200899818819119230547572084723943569410526517170114883080859662961365950618826899979756637883455009646795306149154800430823845509107736029622313571938973331725239947960898345405284236624460200080296275548624696615604177691819981562090494831084295304483281135152143297994879136971791192268459353821667702902854572059154617849881212304246981618074753835910011961667989447267606532863275972744500283213029194015812829800230467347663145193939816231000651263286270559799409224655126553735928066458106421423542511771903976384480530266185445743578814737636577071284958293191484980958087194872436729711757232173627846368720158087081420860365960806515246344846048916295263523953266840089408838435438846505879439638939077762747666072420059422955476114979952613521504519715076551426821926618640343489933589823400905848595261935321180102593422595918201412343104252611859415281574119024872789141421482838343002675089225971236631202365949571325984265466877280851564687360306045419571819925142364851087362335095209119374127847704331081743929640021932181150654262841874140433117418883540999803229169891034490959642739025858107701803974117212965834222933316483074012359598697331856095116950959810804336782480859978384766529970532708234517904083664989247346737303866587770703036080267411178109009141767028305654890523655640038855259957096861626009585862585768252857979050351123443243475020014721090491544601294866296398326783913178554386566748432997388552606370903350040824544099823505511077091882530075325025171169510629220774913417069464677036406936299972502350772562132107888236453298833396614423485802461069555024494826548562245038308148969932731712179791369188316034746771282760971006750932110161681984322219713525637401060638011183380823895089619612376455366987443316153030182049439491157562682633457498711345416530280766619167925596263452989963173341865710852514843326121171941732938621896876277769976902043552392536950011741549854898375140547342686204600401662539508939014219471618383944040965484835067539636159279930203154960002874143655379027046785542222071452223044324961906425975585877224864683836034606268382090976096060958964558402932973773814382779327271521449818996099304566905744844206769121559230763634708356723781346380568668924421184556920659912694262356914579482769966077876339643628970744100632091628047761217789220934701428161147849896885450132500782090188211865406564606093897908173491222134899316043684295551526919492689135141514604693014846358078823810802930743700517429751713781384031703800012161017773863467517708108055768375684796950750671773999436654703050341815009658455726362983557214094907437050632198393156149485646228105775369131899509515396776976243017313299593173065801135817866869057416451337237305845793882534782921417362758468506683549597795361617997114805545860232497902370344872476294245048867729179235316463043214189825777747962554705834371106286622325524222282670259145209884570594569392287873653802399625975195374132957648273844813279090205997947732535418718225213440379819482187602543326362419300396641475500829180669502675526475393174679835063172831247750815381440887533018529551582882225679536383524783905903004139543148116119182053783387217509194120960762678287983842643787359390484885789469488253894181698579557225651869774385777108258673619948280496207991273604920648717753788915997734712670786379339529063306004843157558543739427939964147756944743447240273398779096163163826565875458942693579562673009596395083802053387242281566408759073547243134943790709782980193677155045003510385595444083545722746469868613228988244495664972989740084681492134638817585037106040678427731948632891642607616077971494643295708335092986232472516939058599504703026750909594990658783009841234592789203255590798689195080527842876297243844697413450937546628590627131032066950179693446353108798015819717839827071464097390749496915163477078526162147063452610000601378479537676719333734314325790279834374020060512147157221258383419874796724004118395683652663503508125884410099529056438478268773528157609659930844181024313535840606892223609167940316641294476761722930003484931630593499721754716395220202631294348321436622641862104360913979768766164820412111408706024869684755176764341699938206920154960828703969797525166615921040584146039164654980442685487559988841309066789268284386858020753121684766841420971295674411350686669352456423378955709928552232625008621903544061716374162934399541144909893038316789132448631098934736545159242411401400298511237893688916515140038051683858920379331023972860318220507053597721249032116479916869270495233543678073432337675566862701694484336219959057235717194029461006590165710747050973671085006576049590700787786595230888582499348174338426693676678937285922899826383423649888340404548164316572342557920419324291352913769787593749980524351930488353279849603786065356037029779246038013787468172356349927001084142055718509263448103858929411242831178001358752361955788992280184142290105477558133878337515341265718732555522689642972859647685256238120459403347300364342002642672323000071429605676924013621292957673553930668721418420197382086798661256686987061573414855943680256380229011672505978519819863133955528835495912767134379263178527505157632649283599563407901945476224254945281772943568827953917556823506947663216877552841537467073318477243766062358818770229230130003762969515767991096863542258999441376176500783967631508555769267505145829582930502301078827868342460876082801072329632203252902584911668900055219728136146890011093136882760505489890801996673170978499632375513140011379884684363866439650922972380869700415774044791185860144047273791907594589792670978180671063539675455730654047384075535520237139339938960356347345292467317863583577794414765787022609763451589725083798736092687329928654154303063168043077229281122213792361222372767381232131605029469573940320141938691070059071104936163441889904267314226754441211992862139995976222508731849497581720592735196539487852653514447703971212348139855273024495061017490000859018358919462368674295587684920074713040765741295850319692108754122661041653761443806750521180363018355563912739373046726436676898938636743861209432238680688109219097193009306080169842461690900542221854767461606069776743894098350124830404630355644056468981566093248034022964768513461826934780156894861535186361262262932930045252666949505632720013173608046150088363402706697773947320469652541541040089260565594135492179631149918619746763446045601937252296438374872804491663441627154355903675610159046841282067577943560303070100264388886200839220187636160053165850525147700416450859676660386026937455157053023502075701800509764699381036205619282959730669845812114014447481019597782790590988492901325041409596865126148497037884939097767204191678517549430362095290286767091370291887224101635349312575858514260063447009570968029138428990216161301791067352794810026218574658033949781410814759276468947485367866828813239979678047815740385211006162060382168533128393272028329279883682262641003659689693539994799501750619800257793565745759164155574259794927780863274055770454234262199026025554038265990435042699241181871124610539294299442299818856042841712441112664901506885646227899420380335398079021236610435492856480918731637695416744433762349652869031249120112210593982049144217102868320323843817002198051183075836380689906629776380987177694437857072294080769522583402761169292545751763093534347848021314813155401266778147703092321517784007015051474425869020191116618880065027091356160019713762612018666565622386450468740922217908690710900556983404661296713996283777655671852094266523748364342704679478835774821437327955989313883701963529486797134138248064834327309976838890819732688353309174782715566470922017286584456159307271438613911438460775124433611371137983479367411716889000927925276871887985667785529621964502138076419861143697171444611389288687733236596169596648855920899096047748533113966864160613210828706428915123444758791586581640898218696648440722171004424346935594346370856774608576647626282045654379194379078911653679549397544032175848877113403268762513716015743470572465949583649845942235013596332799211341720071924963074500974789292175166192831339161735389925686189640778811599145691628700191557806224173676702786092974301591295744288913897672169751417002410853295137475747598325755509385527468505701321801953289372205942580226287001482760001796880120357315668278753746666344360231802795267489737125600697789849415686952150726789553439235919490581672583474132432802029751326258576824827229819236802686024768222414647652761429841357594374996589175035164709909443503836108655578770738073746315816727832092208173359526895595617601723490031713626084850140138722839743961724045162999248366426708725985798292789305197030528960335902830827188383385190622172150619708079856980419564202483035168426205040464821253161115673781466955623094082575975133998142250972694939395999811902432349307139528062495887760115557287881485546407585149470155242010611837387329802598445961023375794547082262456361396677363181036544781842887696247773467061105522988834455284242265235330268374837796611023086759121747964190371236185078195692449651727902853489035962225487107014993664873011548772450430848683460592809206984181057512751427623548778610057802873134394055881848611372123589342290310338257411534487474695193382996028345565867173430855760837216188832624443901233589668761180105726274800913791902265775631041569277859819898579697640999854784393315418112019867727204803877715530298258715110722250969297094081069887887974032680328001189603397671595007777830043082659777500970131403737525119573153747318157662476433913731009254157457339003472521261483107781991251592108390055704499399634023212732372966598301438678322450245022247267585133268643703394265725940890145527125503790216464231969399517654717139106099483657260732556430153098851042099179445528439923154709146516820357779952417682161642974151560917451068646995682321311009326622560492082097318302768103693167256709770884949084427849124235518571667014666521809814790045320377517958830631439851656815439143727547528823365820966575049878980338195846517428946469983709647028612223560291809300069037785381824617621812926557028353519492063598365509954449092659549192314380378172959511585943227003334860187522508548838056830748244696901290928873102688387618136671264787443428013467953912593808087748502180728149709923078428078626910260346022251931691344770677815445424561334217202113089493110407410504068872240016020560549269613778329114684654594989824131392195761802395333231406623584804615825800567365854280409438035320481375363983853726422429990477576206522600936333495165815800364657068712091030546779717830186129456061054689585697837295994402656814850196419953770511587873447235437115222939923104964680054370042590859417984513169767087068293299063370520566909299387292669913648321997564037562824375567453612336785960786132851753464155810324849564335349867150777936775891043387257521497263186854214877065175967221104184242701903551862479717128640307934720624381675435702392021838009937054515665098090655292018013108766307354740713905729513672667246297568886167450191296846282357500752061480610746854426218602783779180192841490435373122159060470399297736487012546011299543434898950690817023905398166163453040157702766022369321538849308510843409636732441730459673641918797175388040453181247270915689551649096999716751053317373573077228651720916041084397008961177662740060348451157155182520285126372448794620915722811940086508538292703043542646500958884511111062253786834561130906320340852490978355871726953596527694150871712738050265819710246522246428441940177612790750276967331049875734289955324913926626737408726818942905142561914005953379413021307587927644607533039283210407424427285357224571591037278618257353937835355677695648787936304127433556154441224091712888859483836910229982803374993576903452216974941680100682505421959539893630288257110148347736150031341248040674737103470822767212552680082522309167789464882182173528761372587265883734555880327396480670777357978908083819920586199980734988547168419341310371699107148063487141214096339851696579372783797284881121008440423003299008430888220720420639689696164543453765753215720318429458611586572817732373247111800874520916362680772058073008856295813082884147748791894800852389843779106495238763994822145635487043054803028200283075864572657128056749203039454888874117675678549909349965909962452938453939044118245186083233160625321380504171528861673497792618889994931467199033628567588875614540458434399855456620042451943005319651253868226949703281113103815808391515526315349376722894810462265999279329675738336403963839621387092179759895717416543390470314838342120775924670020767696866531347300375391589667547642519227644424820934797964964620373112198250641412704501469560148671823216466702997552135932475400395662817000361540778603376501083010440108536796650853522549455921192441647126069731627447470662489382320449808491670466765796275484227688848688015357058377205726094778725425560312315030521251265609033410038841850395241733698959978962514031556047645056696568807116981370114170688195033317270695303726128348169070878790456386957244278616033318347080578015372210918456061265199502294126782174868692703607689268222191265939377119990923728653894388311299404773528523852674827081847138803313640604803423734949552879613163121793775012413330715779948791185731495562883857453136329730830684866612283069103867668584991471006506900811844649114849604705801139948732424423874971007856396030338068892571426417037301150673712499230158130030712561702042228490131879690377695139696570852878453407156587642334478692863247813840608411818607923076611082442833838105521670352722471443678387943625647273029033942716599401771250965935916056921468313765488774256807857842105014534886268683376756845093814479332698124371904239296262453838059704671603628414219115313648379675981769194738227700623251664421302478915445219260999590845155883397319163713528674530037866359012492991390585508544308811119169259004051652567553457308045082002298807390612583347203755624256097586784327119623680396546646897550662466919838925930588972463677283289438847208433589094243438696990943531979424318858667975789204999790147144377761693367690607383225004285574530520437390021572638737732846384088910270827304389311857419325028349649896554384428611839778472955791278156320884426141968957433707560363031268197092686517607562482629862053306632949434216832837288109458590774324190595205079784610169604172219059437906992977544318418224397897554994320817640979192945908948659671713328536370420246756023476119322018239809360168151219963664423204770814373739537866938494379735203963250391890394254299352921266434599310244430399562877100780355577360353112592060152468174564602832998381991665119019641848034443262331362908869227040081151894614643070455223857926253792007320444110954844413363127306385749796651558748673163228641280648757225093356570188368323857023363506616741934171236798134829481779834452434782751283669041596671068667892718450742883875831860738550390482320658700596952743737738057556392636065005061691919553024295565357402736818517897424092839321802079593100111495435004718877858525102023229806952305501849596262424904281950171609277083789103616411392588412160789976866515759204286004822068547172705614142716061417550946697783866081607480134287991629245711382428638810469329051500325909808411699637341204660653083627360398734462877631973839926269625327228627626699401415660499454413486963815103210713531022577818718212996039559555410856202300493803698801557930815045638360261289813797551032648421111672626018213151879492090346919259694548117341022674280605798281965236303711623116802649228568322438969905266076707221970004839703117813248855915289120117426523455425642358841457803445296762070443379173526084725822883056293242129187827555583264515550098577008368333565276092606996067403961154801642493255596602119308163339470377226563422400038876548793543404160241971849287552305030574667470108203069695799752230533178256327009279050178462224237991847748073215505879698557356452712938855143435535703635732032663687495832386855625105753025388619307076298193112213282202891776181491203495349469661940854875533265360065865491504114354572225643418750997736817994970701225549950752136097026789314130218873127537744492481270177329097993266647482737207866733745444465998218629663678313441756346005027271362917807828654272421787927096456962060170438914600265652821293117367716019082386689033101075510713870115189097449358449910769255183288045934880518798864528760196746880575130422237089884807701125476021947323493587323671522767613612971063650960331018214020646992354499161804699774831517566980172738147186277109946315769619108702515762375053454030357558407503579393175613154922806051813553545746659515427453808845338137319529247377377170423619431036340205063606187817756744483987452441257117741220153829600079146696575323851331593782033612214718801032379974428087040772737899670401641885262802852091442595468314062155934598407495003649818629113500206301032612711627928294647882332156460476836342939564248814773786562887018432715402387743912347672865408885381780399439494081468995466913770060804030583876871976694253462275957651906150000859224729306858686798997080387846078221951030442061966705335164599663259475850884462140667568517472528082129302407081068252524078890999019575913354956083854352530123574631056928774157982230119299916017316778240939281601272269448523476289086203880027032033624434825542656307975291773836388914066521780470942814602762036481390719685370733686100006022279305631974983099956174537964630030404375426969819764155411130910744582979273127119572986451224864531646459989328550006897978948208073585797269339561839600640080580510425760915295339264765589839004272164522421989577179577303829786955284237752397891129252196982014220715552834744736629589056877040259255031387231377420757545489145469378733140012757689650483326301655293344389103735896136091439849747995040987730262299422246445233651993150719041739678321043920128933712145784164224533326303973530227961545565329302214405356566404582185694402125116694619532991087775007573429654352542685742875359273998107920003211624071870172198979546732476764329517287951924199781385129622016655342014098568562847089432304832414812992158655493640346336125576565335077923634073385782466355360970175533358983761930214115589870118891593960620858103367897332762360351356291831454322168525717702423838928365248782263396039622369390097216761514851183140881262939776476426368772150714135064622213801775220743424901083658103590185450877383228912648958452733311628307598068879622390507080597316515194817532946380312969034238976575146705625580698188113791479423371676990002025810465256817171332822773269125015673145521379070555734359105472804205353137790177911089148443308873731583869769105236566943192941391629562162365911400017090548539563731025964782558792712939637126133220130025241830762813032943311316684529405921802541430191868569910535177084173422028373958896992884039506009749330496856145214188345835572446017416054397871143907797729969910636415209103980681879109892237744253844555863738653976812589709187772557856697075810970694355123643574736455063138918445436042623239215511236698491941291261485951031752817771673348852881104520861280946980446358282675179734367908109636235229451052696439184471236236350862044877927433783442298187687009189999716385558315583494790570331119674249220415522212076597706314665488013193960581020787844904597718478170832305508571387952845187138018049280885287908959441788516239763951207011652046016830869178194271121683481294780133360337545349044937019740867035901523756745090575688317583757391626266983337635598165446734519520805651939179657843460875921153663346868074951839167259820868074421006315019114534407413072168874206600072469734275839754197666442145647362068338224154851982571286140926621691321121318887575870334459742561635809299665910282442885937378989088343826965310358850877034358577820345551906737254699642336100554589026464098856823391509104206601662120972010103534164839894659359199571038124913750035002192007231642719689314486640326959015433924655455901731851781295952619086216157498599233476918437539928596838099577151223708579914327267753793820623385644380169425951497468642656179942448318894771574084519403648650920007756761695825057073528457027335814329415027516182269356648365776909472197084225660846821815899566974966076429059092457505818122237280447462213693206334623490359997098661475101403851053274578051269692692602814063276537265009965490240348904355979144930219128811614806550723496289683381788245979835772619527782860961260718811884460432240874101858556508135344139610772920778875458997154893350666305885147606406941939742729419226169609494677248671573112088376005349299874333227739775212544939078412997185999169867631027071966141797338164034815778304131659969437889704168457131837185639109817232448772932848123305367660529016819295692700821280981153203347973232067107483924511014672062534985472970134000073065432426924820595727578742489493931785229074986873730562708961023774365963718071672030800543905835359990931357605560118801417128039967503209754541505528673005113267596675277262864910652495737445907340738738144888140531267287263686067942738945031736623678089253936851887795945938146674004162250186421545822264633111063060169662959604360458629601349441758899310064214802822893103357614715326718979069833281157866438152648105541798818184883249170937972871144660045636350540717702239162046529857440233728108872156208954960103833326615905181465563985518367461466560931069974137193433336017666343784524565544987072287818145670452026916057057390282618848437481868969448445350233271204331596820378243063080147973962227231063593896961435411667757263027836536208163861035959019947595551674727747088943046595078871886656498815308424447419418616114359375754211924763388054116647756507251488602028892714006159035499467377220704779520717000926717215400659879639328846228022062493090464000432075405896625504176387917517399363559589088053961627134288023570295156473434124226160760097849359224714719195947204433178413771378305234445042758856133735112897593520402021821668399347782580828954968132924975410602667915266844163171831684763245237212126427082169298713144065882747056945450818214406142533979412617303993734514914108412635484617754375107076010544168806080892265473651538926239385624165296880220780571824850244322438079640125564506404886624779407688519479917102147602921925738007613054420891751506611873619774755709129834654857826656822749712370968736097838623775053960090249843490907820752587544977829047038471602018387080635838197384836740812119150775033310282808322668221302066922534090975074977353753085738296175293216389072392026840877721842436537421567066735550087534835446688815597660552634535592661343837244386108816560626026379960008180067587743786698825750134672666958714561699789090901221178670985745962359503796326769421936964012117914692335277400872948535992960350822364127127216015794992444160200715057702102567383559033349494977025218081050987305015783101184071440520124768844230878463372464227366833674042463291070430561243113574809661492807568577527212566682803867782383582306792512067298364467184239416340037743251762011796545731656415090424993717194203489064049008833333811398833368550239541842233053933622750135884547820106963359571083362922482908623917279034876956815121054102182339257849578191491193653838179718880130397063952997495466166306253239370183653919307256263968752304465210641933363096522161199912042797880032334402044427915948629652303060987150040300365376589802139896273438101942999947693174351753880217684777485881182541743840149318422508548300307248493262876489083958042947744487645082202951090427161713968729464503908187584358528472470807465719189880893911551008429716021006576443455865856538572977436902486319505650513016993300612699339647759892290467431146060341001426383148766841271680718311551526417119443184473103187990969222621788865286192734130365862042262466146444434863579283673547719782410286722639287930703267228323251654598437245393177185037128130169088423564620045442909976258897105083232006321719352259566389515319363603949064156065043253991620065973308934051877126628344086030189910502107957832097296197331823340117074208592258943505651873984560062388747147545647873116658861110686613106622332260445092079237388294826616412314096999627798517718898110363349448482262122538915945347254567471771236023956865964166560788296954583503315419549282286451100614430746490863363585471193133702503291358057337604804259745466378020813229964813031654629749910906675729866557175211786834630635338486713785064728695563917805711146310250263820866975984448346155968004660658016140712352124835017751595298189520660158283922179118675947653511236802661916348599546866923855826029317852153031403528856731681572830347793588242102381874721446926719766430639777779039270278047206100857687481141300604473380766289567505872288685566878512956518167280018293200357911009288237460494501502574911210669742696372121999832582480597548937921180152985536383534529099767673026197721551116243678541772417866567930712067982720592137522830823403927392012704986032991922863848164450294446586407863566810076919357849854413240785873026358833146815765668518209416970201181208328541093295973342466993493858482879600853825304363581322788721945002583652881384228161070662121538687657920559795236202702093200223976425224382971023821495243791224958250448220577120295427919137234611725181697470073677646012284360570431057091287200969824555015952450668905873494980665690412423232150977570550287651528126372218515689165868647980206173527040158837457953071947059998227189444857664161239736120983262211024005365643590915568494909310324886057761605442673291435981413793353920408509884324183575777109746476751777469516849387796659237948147056636535122699164379114753370108145557367606714236364068732887891946027642452356261031071693739916437626379426120672734311665422903319727375977877599818464359902867793625347937486014300408545868299365988613565624616253717899879506012986695553317771569136849988992639838122261817198698371004410399871338473208817440623350592285409223738172877069590213210486709846488794962484967501807801867642817229514944820262634902248004416984144265094682580318574522941658203238279872304615296759499391959852090401378632762860145541898529883125847247435937199839524662137067840417332012071426221885342473451623444283639119454794966877718003717169848583739361759359652485194796910274026389797873226984374804425796272970310433570336386878702114269759003396932513901138944626762947211089051398024269043752511500285379400530827506539592833833470515154324045284359415351329695106342472439844286277254116221375523751947039612922561330126052585303103039554169921280989314527607664421836388188233932041785780191715626534599267422198327686314475872791476063235053714045261959258834801959284830127325676124925628846135289955629906329947378503181227639503739914037298221596671911575365509995001248468163319136558930409710426269785418212245642880755314814147217193630100426214074919722368258345623030465860584630713500749200541498748369011870276105007237412429385513138377978357331558556683479056077052709592248255413101354420270831042161031373729170334905475886752177990323228337749299334667997913049590878848698050548626578549354414217679779835523419292561982982351819668968256669274414133384469578853716384376356694164212886084075388073822433496333739898955311726901767817384627408690810602984217770291048010666544244035952903872079154778511963470342539511009387371764791024565662645607370533275258279588766585921246868174111944796871359257240602385274260763944869288394837792098810175673033226174012935366047201488697507446509792005598419676205952380103266511211740864107131766205937721491947136946518428594317374358361552969743332598596353721690495517504826610928974984042225062008289173561955639215926901402051783478485845277693296524851803735746658042570058985984189433418486384186290343147915087016301088839223560688779343747310189298364436839184708584436120832875894127067485214149451418633136776915745169605833423833201650482488992600540982648925100000951503422954922664764942933690748108794576874842830580389372965273775501486494330081290150331394802998592150763800209895502506704529767088821796076063466355277112841982755793498851681456984496994770956237578512673526016683769741232544939491156077814327756637157735533815027493651080935799633825968297725291131331718719140470672138351682675054595635091582511445004813563291855553475164836459381142322724710123877267796521502090738900500343988958422514966167012170740516691367152594441153761407884767428539649633948098262571575143969309775342781198614080074032189942192130328777099167683099645068765906781302064205132396329444045760223611665509877733310797632282083038797823500797489793658933044348016305432138650907582442185077779527805453148647792048772304310676710398982910376696910707156993044210103803744420539995110619130410982684831667508679874422980449881707528713155018790955442218051228604042262241428379968516916808629353805514343056457256216139954107886921664191697913979200818919572154879992418051517495740371226979278518386312448649735176295180588430577431649001127790476166642798900055609815561835211697344436902607655332174390186502480730487003411473041460125804953577562378121306892124607163813755348957203909480220892950629833827863778496760314292027860826715956729433106356481033167520403682501352494775120008135553765599621106795006737485829317749802596064887252123800243695968545138951441571973172223926683788290459271804840197340393064744268243630320784241541103180325731450743760389445452025469763343530170934658965814256167719346832610214726472671990764080887638230715673855379529602342277156328766226295124858031650760459392749082907910872895608997757154223056352667831682886463000088519002687436091430307685355919548769355521595384950293800642232243153125093421790164633091616458881171195757719901901001962563758966837069987324452064506859883891742724921566433395703904053905023171171038709022719651812393117685739846004408033759322078163072031541184609350989011558641137039820682695706425889779751384118202236578703987239542737544368557115543831945300335128909477465438169375784689671206013715292332131357350355220867248675822275622288445958583685874949174790396899544024765225428930212809515697985624097945222964776984435119327405661641511402298276032350126496399753360444431936380973436733651672298562338617414670413524826619227810664367337237977144201200151195317097435122008681587767451317216158097295983633880795359500566241343692450342834917649200525896234835170917263871258081905256121335637829447135167528757217782272985037121847448573422244863736023734439293762724456113348721453999132886157832152730746967205759079338412858852180811582214765411748381110449666479456924749305240223081694765029618786512008754578051206831393738695459166733243926159863645844457312198403132362890846825563914195984758207296046819949517929839577088276043957507454928973197949451716000105636317787238665556557549824998117773417772389683575153864741246614603712210268736467140180409396780562436710527483551246560678786390992815885440075290176346289744398371493035971172502776931659658056856917504228058577647611247988952863332457779619385134560624847925771807176042201970655599546779838770170186502363807788336400181504285035693922398194425928597025374906069739049949318280288271569078743201978390917906959253757406760749252188561773569312158564552617252714352441160339334544077671744232511622471363166532220818378482577728420526111879343725028679330341735092629618458055924266333288685101368159133409900615626599624078791133150756780724865458569281541610550560386676691482002951151581590595952195353805217325037960105237791964333974966855516323441474866096767182259449919914347093340335031859994673041767259797160112717649343817045282143669137261626075706530368771896303643907727889388650931233968288796651366674274003732288225059408001413723657144761225628647820300056767231828387651847398062961960066222141107481873056465566052562960165154574795407914418174991082946655765248312634085909341227914712563515502687279668014364369813557368330421015713062998921783703759679345016310240445867560144774419136065054565085578436828107315232777299996905488794078961185353802838254175195643197094272237963683289337740173126806607483927845536482374197361045066232828698521821239101200811149032136983122901673998284900594440870056241273596634070123832865321581724079525564391931149396297320452786323368113144422412270567843319576532199904638297670234662558303799383428955880875551677528213374685212035392110012376873069580675007160153162300668135942877336508825374582919131532380821057141497047692779948843686252637603718666927932840918388708010647219242919390235129950161661080229523491229382124668052114924938522395407574390272853138836512559439850173166958372440936003015117414423240168359430031399397627923177643404396166995831941756455318516977204715117654953738810132573657909658179262948995115975159431900202488718808412674015313821151238272864927039053399829678546754612427186853110801942870237220130468712995609266103578798738975674656688894053029130061543796340961657153376449938804645518195598787486101228626664681716620980954633676833643638737691349012290289458486768199761251159069205731090592807406732196000599555949961828839613711989926998079374472445745074546199209166004601520993248236611833152761381848352162652874590982381228782812487474598067134936404250133621493395404112730891035425519393647873041700603232275182661716666798332472350672080888550636427870697437114256767125285676788082087447154829562790617881737966438609787624391970112860167932049347022488032518613772293758783638370457941346358506516343782088225940591437185858312419612650369819446051040380324477204607937440418221937506178248916812797455570284912638332723248312111440929957085992999791268767850012725594446418545970633051745501092275810282126078499121347118679792472859656766808691966111994587496816973319467693387234508912100708899177832029722578862299372284161081503756168251839248321677125287765045797804378030485540069521337603452817457356064460512924761091711911330164602483716159370233555608023671143365906475210787545456275586292748830866043527887988471041207940746856984116954242591634963701130804136047127213223474694307555982930484808394875906646887216343444504773346123337843390338005705286927957302403388061952768683010851067876924566220538990328271060596577414448715803182207738360327416881658793954872554721782559061969783598262743070570242978524981505427754889204022463117278585967761473116460111058495728905806261222878592063671125266275137407189251026070042748749959183899288228208081547786096398018564014728164386762104318378303890887562711006282657812564359430599895439221520255184018295951633843327473780260690732862359083288574154190385745230639043105517262320452788433046645494656892546559349126885518547666595420667562955802601739076636578521197186986722169205856574492635912092447478631372860304587007090045260546096818267973585503840782869457659265915698013798038342631739128538580469723301338129415301745933889865186084037564746131975808668904768426080791657278787644759325966201139298184249057940493570373903098224350237549620626332653596435034154684778275459642221249245686702466378873069115356337876139354492580660249880793590917773808201428072085161126531735577055747720023478889225490237776989126281075108527942150112519019565719501392787545114722797752957908766484627620396063667455057121637621261462863649192762508176616312603824457729913980286859989385478858406687111335875756299609886188919980556658987728820345382156474160066126441952886212587998256006826327574831039886727943578922106212638103306711236038364347875105638125409510073538335877277360638020144397158540998953426827012253906717022119667986794730083919729911568490266079387433838430670042647350079586015714661548041345057204296376137335130211604134542396001286314189268942309624262857000892452200468438248878554169323097304351290851404797410925199837049354714995807614029872895483919729721440606180943289748188936138873761962673198980502840497233096174470504161541593354998243527431750021941334961057658033853553048066576211403737441371676110360758647710795020009509941936294249529350981660474904837494038180921880311265496286834414543311775497548404524495712370398045772958666777213473938280070007703662728525539980133006566191983647910337784799771530421555547705727051443729097294781684048979720757180785828664247419305259528463667221188397397149204678018513047178667203987669352247906681823133140986196125784656750718772104313833024084981980160647309888782175802503994719571051491180381172681205732043083996082352547737782115130891473580142897702667162979189706582792792675004083661344137826815970742361181773783223277086192370047946514770925638556444328682212542003879971805313554249728994024220634517297151552055805108888941692924949215182449423255483694243753267988401998267238526162903326299015051689918673766381517137172747525843015968300348406799309558724557021325609344037399464597339290252498901735336072631128859745523725782400577822512465477764562213579539512518011869117756913047145225600078041025777385739066078412436545084399622501159776352525180872613595116886236726819611106211865214236688888486409480608904689265734993312722889031565295712509996466856955048238976716536170676223732635810436329016889790570095780265011660524376970383845890922774143086364346836626551223888309598864835114122880801658023778046284501846865773392606934231886379246239926014345529178424620519179661622658852655009890326478287153377661064214496402234519256041379241132504619009904359850024728778913354012938941256313367171969548828159489278693814639092319656355505999843459606865441410230144203263882420462455755446933039591107202357488250419271681727591368387333542614903744070193808934260753194401308147633941725268706092151042704894304799141265477910379391123219735282949393279602524542286860093977135362637884970061123405936337166224867946415571013236195088894923915769937161372139024569419568588504640955757515184166103737018275004827437433676006518213898305287706598730593841060485177980404799059782510519079839494058557789006074375734565533178478970194345292026108143058854254801700519241912476518158105329612632012495487136425701313274505626416076576698613975106062608691537927516637354882326965824007888019932155018872257307031083239497556314748394586471064470137491688068904392939517451627606255135321408199214390099254626504772189065024616228791865177818283990125161185535140126406953782367493372153006142189386131667312224786542008012510591599583336198699607851498370717427720993383229076232277690654072877856208749671108553806935050533365826849315448974538356212597634445557352574309409037971625720871442571097294774658061630622565555591963896648647037165974223283782525303962339856805695313384633088896928054136041038438300225186033180608953111566465934874568018802359433117119746728981546895287982509782867831909877475190218741119894989831242205038655728867755050728211501726014129048331275160206071193547409817196174260547342338682938697109625634469519410471287392015661562757581492742215837834878206089151949654566895230078829562031063823283012470880674952624450648354709420728712005749495768346518090517789662763972590215682103734308437181753536860689439355778716265424399170283690104772093826567750593964687062472932562179599012233932863829829116540097370202819410567145959747650601244892786145806979432143792793048124094232517086687694513039993141147474737378035056874787367496696935380466382462371415865202001509943386364074258649657619780628724789440155374534260861854883876727253668088870075733713489149587188234331961782891136627699707861822149992243399020769031771176646225673067849305590923327359878473024220531118534614004318641468455888550658007711391751523464435801093170424168113279734921022422922782905120083669472692375200089273919145993958542825914160449319579985545079451361303454478606844748087816301047366486214941631730992055545399866952259246391397377533782880214923616272998283577095735743182608095379500648619053056764168366140084627331083503405130859018006836026068298177693439374740952425618466063216858163736727978163588785145317243800419692679386123583907853262330215289720900321075079137958374363510897893867531839510732152859793940740209026649689370990387417390919614053348940853587451473969422707586520548067926536138652737645258820044159157533039227559426574903651139944768765636147717960787244625657604557110523154620099387558972306817909331694935553799919066344427719139543658862096756916528587681532330617271432541918165481364798778477667455924340040047150933203181253901881772615624034559102879601135559450228985582142821640839329297797886973715354730563633291256155299239189113023434058432469644551256449164398981592451387747472131744032447794745063589153695214204411417143647747541501486255247142880628006392989495547763957566746560726761482732834403504774332017015497956091764756107364158846816461769370138813385419942883454518941544136233361178549663435638527757016849711644763539295556510891335418212646807813595347150490173736908684447415155401458383312160589664130770763801864367301023311344245654168618643626180753611858571415094110720521405647128553994692795544348123098574934196512322745969253859848543864359991487970755818897821760302867772767411455247966842651173631310665470587129661085718244467048935578954667363396384318103418120611708806807319205321817590016293755712672176166196120652481494683355236488662244324829372995135606847222351743499832320824999806666537592290846917162110807045704614246030468780659496006008956734854587734961367349821092914002866735933034075556149878810448957026273954771714270878756045657801900046173398196320373035974093943846606988238978650731462666974346368799638286827453217978393846631263143541732935943973411389606552167883080317529222375340188629501941364089533767570571409233830928654555375750369720003635106334645711631752989878227741480717924541026525127024700600616197174171925034362814429871148726424633625022113112006248327819495866520408150081211499142723028095888682423473608710313761175146294494998391393548506297543608548526701902044735343073775987996889475352850398069449635317634221286851453796021693302535228233394039808768101159192504847102678537887623507820841073200237084553123744838885781297729267795985962248864169511459945377889611549038129277956019339483757238176722328347730432122242740405728741548528381830212878931191931024074061723913890948981769355756582068887343190865821122389047610124057852585422402264886500083656940414761050133854473897549533479370348184019052360182726253285180046143221652256395339497358989886116961528259509875945956447763133124752348103889832763561362241715791103277616830644764425621159625910183977895603292203366979675696606584036781197674599937339096597356033448523959169993857093330764558080683428863608556024851631272564952201902686813650261522840090098830345144603967480228405135249450234580998068082488885777499160364434637575748876113297800659851337818647114694736608180043601301073050548707070543650014593696727965122550482886597959726455647415311115282623549891974512175163754951576923196591031131882614613227084732078568539828958600713123692112359024982836578862110493618078464773435541646086906689169637119071737737102369316920131833676362924710623971072548990496733554352727791163283178137021324956197399620343874714391485261009556762987535153121802182956086083282036225881096198506163664193149329487299362678714346803558535436818893621103149752341512744542343835360815263911980281397922891579426059018872309807548909978960359164541317578609882433385852712927150718439022787432960264697199285839886078473780913551542532519825173029476622840240622644941301320216349054807842414260414146328292823407793294241303929096742545315322984104049879530051557420051536000824935492988352744352139228263512295301053364430352796131909372052105380806921794470499661792367369191996124692747177192600971407948977869139335479013510123057116503607720816379979096762217743225848504265183925505354994221955562785940422935971484853863204845205090174478460070821262794532760561707403238208704255185982269838946792404559261080470577155516921284751330722620756327577860571714100841282193288361605567997189057781459122671146807156642548269382911926473623994387087135431259595849211700223924014208773749733400865085712021848205307558138962268499610085453975696051397311400986438338733033628204343011787824587571387611010573357219077259731229743608997528797384179457341657015624571354809369884811895119346370908441328954240496878201480109780011503752671026350398155576746940453305555052156319653619960391037610409059747996882792586676406947753429233006054218249578054663223950017145467257603075251937267006117764687596596088680654394485715493920771614970882248138471830387319321256730675697619537051870524495775528230364708313469807378571813646274698936064412313058926493405196548028357179624215925082764609446535647858315118636685409773037447751453141697424308164386836579242732880989417591473938134770066492617506210039755880599135096966099950159530130634329873850841901887685418750549994347169504855584177360756807766583993214691460197463123733876580133374848040933736537417511895022997444166118116074305608037630602150779995671165267229901145128865763266653040082505777105090336557956869923403935220886584561948643172782763207817599880355329988404406818734320512549194185263265353854867684347962687521884765627612119532476537197656717092827195017512572796861406417611624018043692454506174623635784586109624789359462866465450037705936484869568737641400555121700112098161986374086815655631758068634247929423141913835256334513806940727117181101077969262193727430717623981334204369320147746300645568242987080931305348508161132389580972482135227257577249585728358315616548488641380141937000060085269779342461809607575609378153714530865380863173525750093221571908705033785854573876104062270592982525036965178064707525268130397646884069104132542465616923739694065565238607714269152140126128986239687053478518248641800036036830095504369147007341363714703160684732715940521454146785682120699247639458861014699794411266714568475552949637878043101876872246680527928816637838351012046604726335579042958605981847792703351703428450135095976600485136040174798026658499696715207628650549798928432590149983032985399361658480490060814725033707911475658701536462085056247116628076840991712174215519635988556228825233873068681195475524258547114157344317734979617415967699657468577446476826987749195237522267999376658927615568043207974970183999869328056174449897892711811034263207007045188530998449375539986389598259069531317008407007773514095219476413862323435760664560168694894636012526933933150967299589952715253222183880437683406282963698706233477009241205239749657373288457874577839933077525408457852219151562315616535192992221621068449436975277629944196934509213643188384527081743808855359247622903915859965314526810115761934896387525015100881288018771822408387365149776374556250529594392101805720954689333092216706564145243788486928030297978288430264406188830596388786629346551796606174083271464835977328044984091964238015383258651915473743075464704120481399338748234834704875213288627984666230282967285046744017773108797949996231911811723451799224643042271144034559235958294238968315808656637475171193308945810432135785274566249588197913015630467309725406367041502882568198235568765945898745277569768734401130390563237884253365640192570711305658277508516084407826787352478972501545082034764553777702430846315337939103921088116496721446517516042249215468338228566320823626427952892623029421301325923925502427686419852983517877887321489665514877491961833789419182635892251617691820579204933895100891843397602136239262239741743250268419047177853777789580538598529970811385104677897469851247807521055278615738008282901075033716286891821092173776397421849537175974979216510585187624950277465710737414747479465296654742242523703068098270368594444809038571718662346970013993167651066953035861308328259761124550367889004365765689674168298906049841042377461187444790822061374407100232924139327376328161411466266453403166344200365176901143039712276291845632671535343174763012219450215562374040115622035097927471970989071958144241964180823784528860983278646050156077408076908827905335735434574788831917598164784527784284690138817817192382470889642813782003378784901430475539491017054141389324033987489214148013714353998823608377678341152507382672101293627561452778534119958386370328969718611426365168537917937535769211518337230073230831477623870984174541085669134928475485408051379220662298567334027865017417012933213686661962683801671621938543036464998575574899089487100560473374557107597965996981120298730390154784069165688215611112686916051657909142012364077323424921531732870439578911551670778783014737292818901076494707018075872833556821205739215213959318652017004590555219135969999448231791235918862339099257091084225443945890911796750256864782715400458381046881969120403538181891276884104831457222991947687117068864910255506194307807900700626221011226014046274613044605397729903266285759235557958366173132702340664802977830576929235466150014041815506646572567038007066031921416120311600210367466260429230392996867128379763515400554656137053749022423588659832376699966150332583417756588263245789612895690549545067059685385803448881284774497379774858979568293851406938230853756774825724164604952027649390081677740429712361554394200951862008122382514981945884552232919754628883290557900891745077636120284510960454207735953243337623887787226593976767517822919545344030944910226158295376372499793476391146300179547255043925103352195390529694774309108839501427481352909598298971469327664984329734106627445968577609477015951936215126417580406208410193913000090871100786379300233069388741982544403921934574311232638119076629851937114882798174024554118822304929225453303673840035913943188201935452639375672447260352231540268327553956327769485170610168827019439653726249844142237706634703190221011483076847511314976480129564056877501991489884592776952436544796487368873140125041739265921853666876877166605249439312218015638398508066360671881303432100605771878695341265786512069756240853400201210396786219155190192798403944152613241587028644352772753889153984810851983510899668759288457039421951228119623731025328533669309557619409986596300212808168260702234272561614712216993294796127615866056605881830326903859569965646890459616637257520476560436491894396319964398013607068319404335852878995124389134278985551847240797664872293055043904975435027298937968846233148881044112207574323624793469903117900881366596910236552469205731103530208367051837058468084608697112981686190238616252027103601869693447155476880292157814298085970376856203529556954708566053887356728833177784784266561494030327099657432613578703671006020480652018151535016468416191585573695495393409273539088658632530968357668749445391641482931687330678855404041948669615416742979152667600643694355247209988031617997716644782687341161787290446319497375984655573138608394662510100668005270285423692332289940767194817122254206915738768645154459419572376013943951076666125325064477498012098451709720522450768553585854943550882217980447469939649966979699706109872777306636294876099516881366468929361846707702521951498672547804442852192906309973701719361565188102574176437520042868110955794613110264651522226775850946433157550824459766376027870463843709258857271110799554422689705337469990487989475764471606110229434944185567877920302843613206709176502837818597783145799828080692496009470624274550747010140609118950081420440109233476094516893218954186378365920769214675453560594938689306811044160849265768376318775370736949666143922056156044281988369085256864424990871671721076849483538399786537952978764097480036238089977941010345557812740262160932052436981412788109697587247247808405725776308330794169120876660742071505668228509316532760412567359625013934441565287228685599921230157028655441895580445386817005780608291368125634454187470280974189392855154479383393942879414548788201027652606531595299733798248250753538212743281240565143403241759310019666297904474393272370685090531210243713245726181540799971488921177922186302001352898771432254369318541169471785147458737007595759845663959246650947459540301092420547713395463446610761835229780573932637655283763872186386433300173495303602727426492232034796629689723535068453301335650733363261089474621644239574423231269298662315265086220214993710784482985159463244581645576549976879371458213970874091623764761337015916242616152686300293427245183499087227669166652170194845678817136914849415997399158499934916199386473667154581916316419184955836742701197144150257799369655879233256214703857288504786212949158815929457391996366596200323816214997397965333103642080959111311020496636301412037378046543770755342766243080430298790399286808507840030885523668254119311393695587467517513077544290722656578766250215084600519932555604243537988494607913206701637809841474756420331930736822664764481152192840335818138886326279238552603579901349630666028184929214815593996924394911431532901656439963958324624302051981910974393994435860284857275735342870210884990119664365028948679778376809728995507636102820531429051231112924610746662943030884374179518933133841566833788133627872960319553762120428879165752544047620571097580288480285039696139792710099091133851449466853804988143542643785015583962017858992457473650025999883561708093165678036963640471271620178191448971481745489682357201295189114948013372854398151786563321972213989509814541392540806188905308912205369948586635959433051677063301550744341469417663450602266896548792364886808057610307308218453106129494771101291195647791402866722968777463607933411480179706660813343392700510267999142543777727709303731921725757186056809958874712635455231063315492618444590393406148703382218908014020958097298380414031899181878060479472508868485982437760012458385967578174061915127053284124898962420478092074528713998669778923415780425363339863137236657650412971177962900650598474920309276306968326108708106619846126870526760232634966160173799662694322194806653329804552301243784335601421613177801881937583148655597196249739122023632390326292546490239900056920966668940017114718791578872586779046844622200960081127693741345339612299634547895507068020124730168405067171906282164264159332108509822229763634684731258675905710935362941497780851548406552830193347647825940456794506612278045421240379393403485552656311127886114202668144211120242589749183074424130992154503942988787809402237622746953367685433612513642999321551825178167751210255329294956761793495409432973110625408571924116905157083767367045331505143361052549991454612768308544648176334122086634387316499663294674179086492917492072827328112031647980364447363702815372563011157476924006240364779947442905961116243551990026064389368133878203442013686002287304486405163254083628818098715297734909516806168456335649316469815568627813064864074039533833724473672733588632830945551092439440569719346851789915345484084297514910678484385508818356864070097353058278178567326494523195080636401094142259718473536463183261646511916315270169399869936533811854613767024439017832834212780503499094669733709899375229977132158841227802752746456458977538052817574258119899598633847880331029928428998917614070430028224193060354334344041187085765257982159323859351229606829086673857066782374610527795976775353831626604469467143904979220965225316817678911914803252016948219401162333543836572505345393412248115097404379104778098501775017584810739841154702706715532511546007140210956176641769542200267436205316203599532261226943866568559586914081298417404294697209657777406588345725447505341220303613623959339560595660748781890960873331532201313145672233500324466165077671322780556602945590028870984892577772072157150409429306018554725088471328895574919677124895727935374926685456630635382403440955559567681630894869642243282695025846626743121474444301358487851092797415172478256394808665636494982399356470922826635916616879755642334049145479104745440447433605303872315257285668766814840094720204478999856987406078670533761382323079986092972959675884801520802702494148138701381760138260752983878303183286851584026538571822894884809363615750658887166565040310443162828428910396136917819572184488860065497464813793166767712123571777399256190264904354895213741243098794604823336257970341152963474613568809307701476796774434589925529602618341799263126675679864256126910199054668659343566808665038608993150806258122528496804380490688127523518708645935288636366684190263442714711205039242211751274039860336315126216718224015459953127693178449618056327764626700620511430468996302222565343922278838747134558634101946057912032248232531982377348115365175307062654413468521069269476173469560538277610630793629433004419768674414870503712487749939453416698439251809465493691406768994206683842769243906017615187876531799116620655545650421202656102287210370331026994404672384306908549934149374738457330699181819444280179447351059530247246039402799929756493512988523657614707055162639602382094189135272010796963188073912531843846045854585967958694191073792077361098102942659165403219202824866891512841617650186173121293868810801453889053750735001914285654055700010938701762831155915118413501438306125975096941342178607196564050386969269680690439611992228602345029575272949967612138956596623616278764771558437323341855494016311912645572762319396804134475700545251031201452530020161321664019525601684189616701823020485758391657481036898071218158930194016178128341864571109462452892396799156640047105258038852976341106207362395458535916980577176188884787932796206242200823888576194003688482547981876029980837211097162371538219576583693487493815977065454358246900027531723023938144934323163806697806076097859242652800199486611836907687659967788022718769274058052793283627459139019932755551424557639913386898918961401787749241553804235482581650630708942223039889528263992105751561172214964291983230248416064761504722119834211903098799303637788795399458526499323583252668018495578343018535377883580892453287554983546961127190897667156637118609199387408208729438839198391641581297055319496063652656625841076755364598092043228360305433683856137282723805121449713526512329358894750022034562394180768289349150512935194295215503832113534905673192717687747436357867105552037718140468414199311455987381667702967615875505502630733709530564895191350085837306164597055602551310762953267758352532230842783895303953951903382747366274951546376127999178232269936493385941702083121179932807475188024232792212557262640727210359836525263826355406833878243010849816009466062325780753947288309529035684532618342133907949114582059197931111918467926010422214251459639970431059939337989981515999623648370063658794667362331442849443205610635335716103835060583880037538883154013694261841277521072074846143492509461260885230744975609831702480625216062791895801898415012198540298198856923001113582656195922828911407225892418225606780361822850624131224165036909118050081418566614928918269507905109796401697697212049404579294513356238584161264068754020338664494710012958374014769407490299340429123693512110503046741792833577502561450119505498218261879713072184226839814499872868300227241724649649984065231459252580797332930921679778516800010043434237572000059878091063630609934100012584041854199459108334518306044183932223163369181281873397565123362618323419137646583680501017308794422949091928666237663088656677639203172671590383186579000757529878960041881479330690979351193033165639050694793392344318014049598802601301998494028349908504912681106891959690643561231267262088070528740516372040942667612181537591166301702786734460798683478041076674971767399313389976822364996005930340942477468274333906712514230830070064554570385868140749523982505662242910289739759394933044392463748391534931345871227818229319750978035718315908990265759911690100418618565527547093334269822832218753366464026601567615369308595246454085415710285208663229723763809408095663954405841156845970193970599602268353959678841330680189016236529514536108563214527438295256605813710835510341206080099525988074511713237988089733613010608145970888374317147308976363291342392054182755005034043839010025971382105463012449109926806189275938721570943878527120850950411999880808341994920444084262987068232392199097140940723323010561006658815685971531309842580334358082216906072598594741462633098427526629302078089961476417625482969310928695779915565159292477670149953951986808689318195789189333330427394409961207386527112201141528650864244705638508494101240787079012083508695288133972209045215897534739497479676009155190422631196774782077823170886432051033393858149587836751350017961173606687536205883021007402538144723680463981321185574018214638121293748751385936853794261369618059580282499800293799681799579682777504641133945632958529944903107292604276444385728732481387207113283509134174351184468159013089264830993672050057618417664658487603785292816608465002231045982849445744961135901688687920300935593654538492357905360028400178467545717192528582117839405312699655047409734048909320891489811217314616626583330811493096497788986362506711614519311821353276547187710982111190556327990649910280288163912325142314344725297714007329142408177166939522158550370588925919616647213365534700521215452004338958366326495599772362468217537716102929701281586839089768075845294984083260970661820515335343685212142964324330626522139272424781430636267798295649745118122522865816936681331368206183500090943531783675062224188562835160870526793026561124566884997036953037454258952157629923152344369494973266672316233628811628470311909346981058800302493295440660512754436209356845915794737873157250448095528832038343668021616256803579947387967117169709232296719022594516070561390793647595263504657563673679028780870134607912881759260353915807589024722809955874189822581038934017727128065121084903285466090052305469678953513442548115793721193788105466622386538036089368673019897218608140915041266756122723566647932082746172383634804227858642292677349223361691966909315651427041340574848556720954076601073074138431967498567459569832421491601327434635931563938437538718916872627821749748774204026012656844778152405035136570624420560896625365534925609953672768355449958818351946105607760523163257255582007067730781134826481136549669232835585841139483724428453014396340900266462447435330519975019067041904010887085515735456834489047461904821419894351576849574445083943402792329051356394190826336869696191312838138021307256464509274973485883777572291243766743141210905145769530241335844282650351877146141389473533597941255207650186927140694491753462092530614555954429312806553953250700263392759104161228209625240297043375158541411773242172600962721006241892437222386309628874706164395893360817150342143879234120782268078024088069011003101249310418794281654047623671947412524308548798975680003160683648549537861503848517922105515241687292884673938488438186788381707651475348570703063685856795840684348191085183981676183949616737037686924014019737316376444053402239399960645148809595501889520960661133253998603759181515298134484594103363401760698816825360688621897232678059243534743700638501258675415341889424366277502749454320710086608648537667736552705542339693951608365849160638225470049600023190819979872725368838578274999100761182037683231277347020382811944711884910663928124780840785303159966097710080710609142340483955644274747502525874806840515764063614366505113363014550721640543171885640380996335978565490841295972574426306862939993046523188677664456801924265539845083947425266054615286190432169107104133689529760594372881240651226491581495978983946986437454599535763644660508297101824010384477510336413311120843783640734780909191317776178445409359152155874290793395994353711099978796324356893147246264744093463231537651063873342559541613773391015878934920765676562524915939309057599394955717334255619670317740976658797302972214598783420693502878344722503093229389968826189140159948842462092829790631807397248421865543484173136951190625985683753525952468341219908980915378647863549875632043359989536205368665830041918072272942841237002195570427178211837477154733177016306374436651093512801259491047519110170692240675072720036704919366702110748756673236145085956763259774052500989324087203847766278867688700214547503742973962685663866932698247190248420677971067568679996437158296585565408671024253987436680195793418328518333755286328120516825191584385804207431328717084226887636587583844647944671251202617666072346461144771908807251123089253191596994519350025588630562226189500097566181559269997371075767278663875453090808274015714528017710229379735816875764980605461447811022770526712667625680926243184885602795477192424648599781595443856214217723166799644024229363757139141866792325852142687161058910556052074427408465355948786068434859697324482226646783752097946487833518390460216750158510015044334914114877161030474750205425513187139563167156679778692039375448110865484769024137434179302305279577025815469014322956042860086477627236194378579168449110915459517364660024213405314600756799726207614406109920063454837378460425128588080856530450613448877182995572372887701757933058754966286913694135685462317903128850284318483252950031079743847812006682963069147149671692931351032935563147481406528098405808262168910014824176311919343096864706597314553879911088347130407784676187782953600194899580411104819259596030249868641228655363969266411346741075427111994699424754934954617078651658663357667483588968921472273286514037263791696652180556035830223527174057778670437654911615307041897059626495698576670882012464481986447833922837151107930215657155741075366483311908557806018248405477118583975852838413158935474696570852486028552811433387952426495345435852684403060624357012791297259425354789319123477505911263979375839891314960008990208681692885498983241345003226357721597039006838194906204107672126500357681376613047394515995356136561684723744588810591114637154878059846818243712716826531213952398358025970214524237878592398366032136681735103987066762426553636828066781223879176720130381140357533477972901721852764943530573767447973354488518793533133201526693797312944630427996314684685827318727433049498845734601410293347326190993727736030584971033834658550247993723382273293495401692346822401022807994416673070219335109680345081896198418417834821043532448341258446798000746344697825240826497134676541985699783216908507400626881183539045482601788306351777659332853197673690317723304836496978714307702903970289960792877336986159281773816890710654752541305896442019918450794916331108052670973009807771344408310914666182271898665999791502793667000150401093079832447208858289133499807668397206478685141356879558719883980477183941178490314439052288139495664300169241653197433195348496498976483132960634810288128579772670044454105849882934156757480792758871942177009357909557079969233784292812448096383255216247652282354120541291753535417080387365758184027028684083113360291207468391941273474183651680611552434847060196908930290723233605012204973135466319631854893107936314627687955018229041938663965079819891750378842898847705389162066210837320941806597695798869416448755421947464534622155437752990347833203986487235924046724805040265571402424441596842936023490768349352285419627173527996203105331582118575749323790599274793638562656300250949655440578459580038228164542801831030989734328220889468481188241486093018899028217548863301615682630535744317394198780719390593578072896469650092571424151971670114499885277700203730797198860572615376483014297125017768301447980728134686365360252114434660308148176107621176480644583625004044305947326328566922924150497492581916898010430903566639866253999339118570040288609387385742505695465476310525270239807338337775699401010965904344944177249120373884210644897264445322179301164567201285241040501349620212838296174246444729136940296514205545861673089937764679201980079646700643950283230437203170489034128049927629762802079017522460867608756691739307623059877426235113758537038472102764956363039457109756905768135864224002171755474360589956568990490657464564567930278094803277494122878551823033912667435458416538532409816665723797313034403304757062664224869271657666988043416067065545705014831503011064191593003247610189495713926178310486954765873854482628914038190884377227806640702312295692023895421679943466981166139284401870192279495240258118552878132702216430967399203371928579483354876255443698460386441437927662244022080218514934796110359757111220195284051222839147587527550404352180731748887221211308047542965186895650179839662826674807972471470916746216941373343148770857838406059589626773691125960817571257821331613448416179920548573218248532698301696877729246775871768102880867091185102083257182139588094469262599598604562313806901053587639012675886881786559018364870007022151344063497843249962230198300559651346529957872391654355251878403564886234327147719811346794586059408012851083669683752899849524276804226010974866048954514587268201644929200451085798397931700181640746896891785538837873690345343593074561820163909658554626870871478224170516575950300567179227045761122190055714439680205292941766371581922800046043306077274604953078032279366607687091661541454608489473837882108274301469809238199987902768211608368815246226246212582435308362056224827916534791140123903923638411108878652099204673577317391793657171139152412593178989207687657360400693170248411937491197569251541189467098198703768111063425758713423936000830017549608423524116124774226120967810474484789029806568061875484977852581190703494158379916304702014891586797432534153021280407235344124986848406534674890123063778122363824462877376811404289183027983408454795160111336064568370692494434394081086397711737895924420685212634089452933892908612992421682097345424098352930850921075173265170823946729769893162772090028437645885425760551730577498597142819415746623750863865359232000684843371458133050524317577428475546748056272166625859805491109345961113404443815351343877116260762261950090987766090565888925051069333143212734243790477040039646175559731192342658594326194468127924671584635366592020230684733086490012819274495564614264538766527030304710005052144130182584165965242907363355270335291576995285580415016091116773303364194656332304544959430772797330990503008719166552366450054080200138921667032464045181580688026124777438986403612013910537072490251342981524631070374457971992030498340732195078078695031807506512864366467537354918654079353188545872549225908370327380725590156969832371209892724787226886716290042849344146275842980902733572529178015401310974136605715993872232453472907346398320021764664821279926201869446232951112912351360682241260332640078364499692074254530115549073755355032903794411575009269815261073202030127967268334551082363460588616330406055366394384729356273787561708068166934982999633275504494052647197404792646621457591906950923096253466292272174210928154197700724076327844383323319572996995739367812999052883455485350138840276783127674541387382888924815355793079274143053102975184416844344807699531247358984576033605157873683762751714623452131228234371324701465887401972379891515698416443818511760471552798145116752251166956129250723202565602885226346904312495920079595582386715734108476069438075567602297707616915326269417240946454476201550702267426104428264589591152192450971372450905982589183011337166263531699904187639816582199864909227516759316939864599093984020732486067385630750446044666593095026164001660826293987593312774300595846203438359131395134803791240197648310244292169322736478583188378263589830404109669023732367127644746980021977029665142681339620014171728681089527759273791223617652466820367885882754698299455528927172959183807119141691427311480390857085928779478079655111993880913394030749843918650946936947344888248392442805644163584963457772951125826249046131137308005067371313374889118577876160520844580609899676677634968365012290893837569481657349702185933419267074258669114701918768832408982963981920115337435907022127442418095710175873846533011227610370301042298819323464872679597624729365712548127071390407401987319155947872713791544088297576709938846345631035348077500649644315368846969505930627571389863021088757559626093690559192664261804005054472300505109138066111592516485293932431937813293143455633456251556743466266402775789725502876414234056611585221569012725885542977318560972707231995279746040057381730141087371116888118610484271763878133916978738941011567881147810920821886616904433957545050739055029882478303573307744046130470165606783811349557633971539443510048894153115964156891676355428813511817302915861377999296355300963897215570716549139356886619881632349881876633068878258105115044707041144517192674822311014750614925606789864907016751353781675879923459112033298746552188115061251741820261352904673239287102096792434414618628398196543256517487097873136459374790870145158187989295409402312410349425327216288929669620119034732425475079954161507017496322009470553770897362638619475818317598888874549692681270842853952674727978654622492085397875096828611676777925568058161926536422565538442538809845379732104295728656587924375188751922534557545520441920429962868135233380012062888563291761935170110945263361386664390994336494518715356731066964163588683458127454297103565165858531450767741488510608908011156907018961426369763420475446648213167611739019546107036402363818772468730321188079652524875828384446891755683877431113147320317842261531555630693950181606495814236913933216003179853388429088655132763328492689891670581369119108154065274347237617312042031358470292505749650620603362810207262308094382862403778080596125560515382065351840072512699696307669017043715990836548047234277433334405792410811638006797765266149467718693549809417307787720408018176981409421339539547993731347111466854168826563591068122736730671935011286407321066773567468208091374261913420452830334754984593446552202418881604933290368734371158583095201443638708887539822230492724258031330590336984903597786321020628233322118306012051163616516725521603316229960030347136182367421278022579512786699689797831741434879519541263152104835916853487916134679803398032963202501773040211943068415439544759972951497183246589968559472498811771402445641754641877127992945972491002323693971805161430457736687943308961146227378397584499643278769322737271322774814238082318320320162378856936802057155426852938500386794949014818039430502609181693238977155638181754317812865910682601663488215143367627835271522047175239894746045674903020915454836720519114958221315968614142658228917444589175523340220816689622384421964384599000909314209827376434161158108080157881755287043585380929625579752453841498572183690343884186655690166756591462946624480469907636714578216726560968492277290196005132064909275068836184900166288891828086405682598708112789715334554856765893505915770608130263608700500347124817641885669465577978651846779720243495745212553936235086799884485361863005548001791676133018382118074222572292211071654475795012864587589568902265592114232740828261476036460555720139101788103387207275843478838232204991754722338409594468613691185751381747886894581306148040783985611244360782973961442228782160901830080793058042580236843009589003519765669468017433493900320171054732519930253045008489346391945650441803157751782764823940048536923614965720079586901472136289080389721024903557490922744604314757378994993731499534075526891657326488490310744346554744497912336342029908403246325910276470381473662233961310302689485487046897586660745052824765788873295355085041537453677806021903802734959912832572686172375197484064611768257076803449228182729022698864182215073284507338233047551027426372938732639675043189621891899080048123003827368954175407335189967570065252227419178694965603966122911447928719837600729505559182206611228691773448735780333738129619010861691193537003486404180163402541886614931298584841503316273040259040928131024970424136075851767553636365702838250533479488387678246724579019386889924347984091997491438231660825742895248305113943244217874044442381732178398688898275256704976594642871071759170872767263718914673399359786068257989492534385791994642831589679027498116376258575740425210923954278907708119011370843049912232647251355861367639693699538822002940784231393399871260745589538995663666100454693829135545835357322928414636839761999195725672816325511496924403088342996092123826612512455164378766233071759551482286244723728353520375904825683535759324700923863443673367399063178623082927894600117442411665122364017632717545640761537718895121452900758975909243260573469665218425919466314794965377415879797047668022040468647368935253777221302068934655251313458900440392238459300663658732306602721546024021619822903790765094772029169264544014686412756311706069936567923647552664534070990840055633018609844238024487790694359807883880825251166595061605219424235713688954296486665891452510882291389484102569159172662267034845857726453180304130358700751093678580588875649454216290253961044179816751887895118898894585136281748892592965560815564322233017502350888790694539653182317444244846249910412285783140737911381759211724114056875992852021748242408439650837080011694717753102721304661945856601485397782549332428151057431737058566862463216292146164003851864852746008354679173220383578109761800677080476260798042371904383181927854708093716449111658599939653303464190505590555153798724734506366748984498495195022935476046004441018888006082763252547224446763700696831707363139153051233424132943239000705312220623154221832870318375284950688807236142190488433190638432394527982563445186678605867585332138298174325543873102684381648178887612085087494204188954369904053496988703533706230720906435909449752177324844937325367675793459839210210890925546817092866082169608216138593093795009014181897603698995642041256955587191345861238453541020841750271294486131436691723166962974873983481563718537026284222121847649242011708775681837703913725912481077663106734158099928585635771498455800370881341865438547863174952907074445263637723092351551214270487172248531641840059031823670301710950190248995084848747320922369735378766352967457890491631040712954553696763819668097197108056490989165158074238713058616554445885727117800789411543324841408491424644450008064081943217343617776364867833121168474219333860941239623986170092995676490949294303327548987035671420580944767268705588818740987761421139097798178652677454562878443387551575405339025627786015795961087949142584228781678687570299335790457649569005605799340511082489285669847313086892092901513794756043612291363665886013486120418427296399125477205535547686927924611269476179735930785914364248965756079411775615531872830280433343008625524928784569458049284901812150240299846161907766801779212090288829736359805006202858836919168294889565756185484415188814419859428948306386892735014853017225611780054991573551274944490970909664910797187896687408061066446888661645097418824877405072798472443177358292313957400871817713952133010324088782424523866827154023489959300389855021079476677606582619094644244399724869205172018486476515539983446589422317359104154268587359124578969599163419436318587566711378976040872155803724238117369131397435639615534071288079697607915381799508070620990745621385561417021047913406279616796676486830489842679629244153583652521284039385752974597453600708260428641128395464378958014231973565177856150964537325210419722015784656922799999805475094581606224074781081061418769291105551691924277113117744237669516044688495823433401581569040781592187427154978900781350954888724090779252995308398553910629352900835426505957605861333896088322218308328297416727484096463163679819533373709428244189896592516899321516888733633998870479711535876706216560757402159949349232483476534502377352613434865570021921190515458459633350565316485276995975197475694330356455951100061420179008242247641680366767914855317351143961757235573911005566279661081028596658719313399588822408736350046349177437101670398232117641336565245288500440820070442640026036884768906500740364172629343940214473777658091330882189758794745185854958190104647275033081019129700158811248437936141904938427302332309886480395129957096949256269043060001827169396964861815179124327287625297038035322897582335644053142085979289902421219316291190284072628491409238147039963410087091973403215090738184333004678343025336052980287295921971317155834175805349355407028825713497037671150467647121010703183175122361648296419843798851559673493329068647630427080141681205907436431731442099045281995590313876950526575299433696398662672198230757586382351222933145315708701317000480623771918138952530494278593873998644350055657451728305890602279669431144016686822019286283697013882353522096925381256557720470664064514374928126097954181968857207016201895530980429769525282212747360370109720712773113982306626810095992322838252944875712089143710303369835392477406405271822588245757727814214932948207320641659762167776731532162894659134870407690818600370769664085363217018972497294064917223990539482271003620038476662390133005845414141168082383490187567117142407850905125665897286192747884064656639900413706747071574810555316919574214865267285911642340119403553424728992259089978207705091688296961490273771554982085929866339112588237656755778781217911492339773541970418107075948738998153111414782086687669791243826725851123581498238581012867206183107807858198668778659365249634458991150722306633430041481561726485462545159594897638127703469299571084400229467805006262395002750773268331205077920280384738943921937526955699060394536966738867466375440350185239357898289191091663302342454211375312679736232543539778976107896611731769183852360222376737156407682696108904325411153732021684038885789666627619066983578826356894321311555611348789950986133296475838814126437805906115614414195924705794595495420160391054103579084429982397708942769834855418072746619089487226563473954664586607435034959557297927501647572493938501621599164697097876598405342340056703999124665096563764882648586617947434923466776494287657818154264929057886621236054676887688713301974883222848646893822660027302210282446206867422760137477557770951479977510943549870651881880793903194273747679733093614217849408295703696966057625820423112860968038694483118461966490806757603593606169019640842534032669284331533528453668895741163501931094566680608773006940521604143553303410037953667115982270189258578701697954798690685003902904644965109909897472533415984300176347638595211839038732175239758186419085017265763136681643874493695190583810870384396573148539862679872338778783322096105610396689965341280778300646617446802581089438070498937261616738430247909633613830999704544015117309388107310091073401163179663221841140758749161265449240809756230664205691146716050877283160087541418536487157750772750243266241633176194550757242109766683842901708263895717026212120680525666100666808402483405257383951332786846508138509562853155641669221256486340528132536628804945252485916009647366282262761545053307458951387608603962488677002532315999339418274955060181604795637372267031756781132028068955738622304761326487599727872089078855811242655149092536914936430037897459152439834408996821880677328729308403355897518263929319702210177280802420881053081882808017212316486926152478313060646860286613531585326799773327425581729952647743627921385049160498669392293785641209952268241568312047305201815717788562031980737357966260776739324406558238447094587252728271168576472880383258627122893858879688563355845287252998606482937026774728002031895110699247060241143405798240928738834889012844826471254457895220188674584505283472304742377061970316500796482957205747865364279755384843487878364853201374926551107905701951237578645913527083150342020153808396583919550359114925718635424093622040009703898835405445304322918806522427669107423676133376554759541081035730674994298923738573210124144861741240620761428306146977522361539080699557466339592399541725729485730657606234265247468502202748782073813093416339977591525478689160808067459751333668600272769365906922065035972842018840867407507173502715087048509438810776418629051049200825203658892127991334367116274217920275044187313023466716053304789483075570935970959780285858294777509287239910488779462249115729438661894032876291890421395316784478450876121755967883573989694405416628432077021703796082357479964786590708410039014707640230574944933771028777208097116118617884015967373490885027122012472183349583025716449319654186533351796318199080721281196497600606194815414778682731471700002688202530241962602496011103896790337017077994395304684382684176339768958781951279071536238793450485456909069703136116783628504784026467579561111996713947207048703129439822269587997984436006787873556097726308113715441037990507059271312835275816552585531938450224534202150887495884905424676798619957818966718304397926931628933464662892222339878655281287900805746040136489617410689104620607857277743602727623624062806245568595961468355471451035302252838343927613519602649148418107142660035269560553046941376685830416648138358029762464447773364631499409744552057638496784722278059480503734946239048301879301855686611954968699216078236465693227199766847518628831023855296223956374254274952611723313827450035057545315731689874221695703392269419703011433927503966363434456161479435892392692983876303590153422663217145738837395873331418919026877904121367788571307427244824666202214687790860525979839618083840529868913528519754360919969362140048113949727857661747364518104704128146451309421174969339964818081319323134404367422568208694238744966273993420580885400602150664139870652264185901414282533317450357000327930474178904281124166809018301584871317602506994951380490937214237616482348713418993465350918418099031297641814773113528788271071556143284365873625065783495330565681190302782267341238815085441831983003990856789242973138143972376053447244280365524825298224975751309477413785371058899335485043177004152527690057823189254688338188642755011978687311663848364003559651706718594365662200259555121601126789450383540126310087278031092163855758639155723588538472685584022606120847437551088943826113426905538936575303449614469530134890267756960335684954002266663210824443153030068122444171744599738346203319178580749392830381614526514831256348261683734487399362093301307166606246746601586247425332060050752137171049356424695499918302226809317566846384062397833440562534808457424717866112100300161159317327029205725300413142057108633813301985089810530839240847274910757439667306498495354973695837691517634794800915597091935386237895860067933034944906550743696840308210296402887779311611451090059957642037077750112585482937668319501465637524014977918377060112747117526215450768732759084366213852566259399651182147425855217034851030000485468095149371487555636277804304884871211768187758312829670326714799560188481709169062635496434766288073040367252139756043914941318865908220284144569925450814663379177201992990949572107051688868886427757842815483647659999169684828939038332285532461483231867793073895764111757409893222017552173487472975310374262620425494614813026828863098886377695976684499926422046206723992601991419732875056326882220877497952672417053687867892073704870135864419870207960154646641276352542048384665427722716464363335553471081790437728840936441464966839899096446101792052609244833222910924582979342885575589305049032447512940444843320548501890973932679641200451801052714732790558186729753868671716561862819175054338813125805012002510222711468427187408866559602478127345493419618602104684076320771039959904716871269194787762922178259514235321442523264688264231724756238610712076059592246892714515424633292723407448560990969139833282353537707389079080579030284462073875653225863860404051723004348992516229265242695602864406762609462874793886680343659678285281798004379011908413589352450337045199726842480900870325082476343876505673810897875007888617092228409868028072622771397371892561117284973688230130627197601563809887552879323510441675121010513296361989627807168716537344314983052297511556936119254999803632435668824718610297551223455279051944845529525854670934536042917594139007626216005750212065890911705523687329694529741288737138102098887860430409169662681312668358447689807349563553108223241177968463484214852799829175921530844641696964874012205727331497309499190854216859896506050615396391963771581906672652256541288985065119027778303157804928743491344383555236292728216593609768166566831993959993330235324516519555723551362363742710003429110421592556202276459726883388075290639323852509389019321263202471168062337511931046330087091277004243960693137167854457624070175190268725568459776624563173760750786820882402160031857421017068999302057981795340242591371644227209376905111446597625869483356023366548097443741764397063109938747284381489928461339086440298483765292632125270249943840222548301496252705276497903853224154024450111763978822191884946765773265188951091360376684089098363000390091830272897125536545308608518033663995862298761181477135064543941778748627868571937181129212220963361276959688684441044010572497134528405427679683667690655253791026743621259421365634543302456242734928744354281275774190364959479466171452775853081652092510426848924001105073981678549649495029829523949528200092053737858118621754427275907015951846151570388411341339224688311156811968208096619288548893203825259308044407247226486716760861017229591484287266062096267662330517217771766198921213789523076887626739689897158831287151494350977646383569516301926993796931000752655249443189934120193481921567302220078785896132319692751317995253248137600336245511001006025172505049231166177257778003563948470475709836290355036580256328527344170904858265860348271827316280341160722647693304280860982887485662316823064891289522625088010610140459731693998282952832129364924435877705981281314803561930781016456417170350623877719110089420954431471159976284754057092189315866475602210263852682431942528959700278335293881042068204760772992506016761823738306412938907192501170679540047510814776256520412527373310799165191084893845886152689306605790391663912528070676846413870926246035894956527197544054616653946147462250826278814410362572635726306264517217777816801628675962979878141869025616590510449829571956454118853896658388776815765014103858105655041642633089443757443383063439024207393190718807248407308561022047272949334462266740165180337631294849314716212163807313901237023218136582177044096583326919847679713453283677266284546102617761240841764135646285671586286327175381053409175664539025314089007235999547093123085230077277843994701511466898009491919305717118554141504121095102198022186794762419361498399929833861194523352003559581117955732697676058006839077243584812906804305472872367181613237174131741718055648558634642233234712991294775277031966638807660605879583760384831003022015134673022914006951165166959402589710886626016341954587440237846302989779664761291429491384411126387864007840587800067812309112635184298236471673724635054777112902065618288819997818700286302385724489050945520748549969940735904799421492391448299275612312832409195302102449899482271390344214029784194946004955565192498545591866105310262944053329224615241781274949154542751661980648578700448555095670868878063572505890898187759687967706284451975890382574563597680193289982553225798045284490394665413054088104187117677953963794019173545647543109820665702401776165560278713340007551892508588827808397008321146673294165344147068876822245508267707622397574239135846344168484834779072429434308870829268556056015244392654952867782817937313846175828180967032434624369854644118142173137374176608439257054275592393074392843419211066774057483826022304621990178752004912418879024370010124752244152515813651040880153148524449807621557677458345549919524381591771994874879416921526625755560756235781673132104356041519905265236062127595701090375274366950266703424471665481736866602007432581764139087077797613435078368227307617282551654508658509138300446688371298448884540824776510714844290818204712420358459972132782680771928728739785404074288114233969840514473887794176613467962142731184351184391013110188474719561824273400966465740328395569648503416070292752915433747217405818712713376132130011106290518997478303923100710642254139604447627439198454467420071543504016238496690803025296298131510922760388065983553063537541160637942564302722817964801521136614693379142175558790929263685388983522411470692238323733105213139500918756832906859246511573851184527525084880090001094286178784823255518084213591774247501894591023781685488849176131690791468081209152627141127359853029590276136809016405108050848642784649468726838793635644578729284683436705852570508341192776126555243866845487103857481800823940379460944281947950572794989600296058477405467991915643156313861580976428415637387475552612343480075976745505707757102737508148026861925526164541720656382756620443898158018332524096149957592164884340719494570589574776324851889406468681623692412024243816976528887295686474245444337716550977991152970669533389359971497986847770402787326969030361961859638752011878590035376906341520425950768737126008010857948778279930496882313343838466402374479094284239879622841672393273784535512986277199851209184689274176192371067130260774837357520398576811267460544709611865129215764722162075535986122133163996480183648519829739718381405697486943206248683723070586820197935925892968600876809287125190610025958182302067922394344059376121426642354056131200901917063098702902227977941578741971422707477160637277726360851623558943283830443170247889390461812538521145859464653992971953572844586448987401060481101256371826565578833439545795172383457411291299766470440510497766370540602060221643251723467893578489064033444653514249227479116774040865155233594032845488136365966310883324530251687467477968784318812937610700089651077214830108653418242242976273812550010464131886003409753010844444251165309150838795393556622233489296352002262336667084828155922599674130842947482198128185019532873727525197197933534420906342578338662324391412302100073432282570886259608274615659283827725045565649848630555941764874259105440896331460760903279072236699085810564869475721980309446529881687992927555387019063478180761907630532956579154618034243168503293226523550730620250073851311197477678401087472034471848697612839852655805197063272894852804127496760200102776947325948046685185586621304230265814557482226060369550407020307264397584953642806585672315455453529528471064321237129523867918643767351453552491943547074074565703668773576562612317329736337209557364848602218988957324368626197370089249308803334721525407136565332666105109788202990919232466678423167683026249403902474168664762402523673430685212187294310675284810073528625455901276780247011982374519533467954360814453758894597654298301808405548673847885211955331034101695862246071840529771925555699176792507966449562382507408424149916136316605009555692610484126658537983844225874774435048493472446983257508147504563857639186506798880616356064721583116432797035501586069768653367530078673393062984842504705391529880732586761060464725635383443248871593784176512121162295454510465945099796760506002125475450070689830847584174590732960604263602075863619861404059798204127859392881453485754473714511459889522657883121623783196786123194791861920367510895946873734958775033508868322271553871458194709410690953383148422742034692048110794198249575422490120190347199623532380924906838181775149318180844500209102945525332078570138499333900671361209067958256122529985322719571948659508719018943593732931971954490865209630741756013283794596508802824658508425496704386942781008876526137402092786693910278325548767767514370712269328179456707677073304559237495671655421208232620958354310414881418523632397582622251745053985451550997585976273912358146951897798476313345174583278046139967871854163351373052258413498242655861960988013339136891653967700833036772725667034883088878564120058497898946815458242670150002087089781781230484666230859058145898297552072664202266964803415467912549612663370278030620048412442582778091768020609571120268581413838082803512630293516603578200150711689570577405646452041751218259152643349690855468203657507972992568550217231915929523707502388007006358171351285329069886882585348245489478872449290627351644399494635603295887960220578294501964995088337513141769845356732062598001756805243114165672528411304982693178756349450450650968332419826528834139312434656863157308168478204016958242333247632797890769273684362602652546693272314891397529050139135530843186589566034046088987394959458465640346988967872059231318230710941407682186557409596114894440724285873838077443510223623396355180443724787081505424426874129788392213063775376729503341750925699770013950417515038215683063911543554425717804063437090947191815260999712765553643729794680732291698496000586358477269937737282774021903733174521901055316755216727319453063933743567465195514871971536282296513651185244803255745414602826468993899397704594886640551666395401463900633173979004133843015795914414069417849947756399179794554164603272233584720434915078252482189885017252645899442438646098704776911762765379105632302732375353686662546571915502370025285702915755813549749296144944566081086939566103387498376784603126956443031667096743706271771125990668704815669962815215742508843081536409270963812559006127435542529545277282989231808779400409782336029100930367998403352659329089968095465917648977159066402137939123522483975222538487119144507250221161512946540044997240625402642655020415234584554493172504702770499864306256883967056420454591734496314549839636253715880408898471557163232752504813160674193738667083490870956082606744096038549352438225791824567202205920901088841855552205994134392189372430810999856884567851844212623592142664788712100362222475973348549277125667524480533916597201610280355990271157099398775191448251527348909995071246991495567786803963633226598816386041178908705506408735315470487760610495568078673428916417478598173748261888700867048306481179906343101563654102197834003483777401650249789358991802605238516520326954792099547583671880344672925688155477784769767592884510175284638942239271215347747843887609221201000711624786039788173229558509269021420575199688158242065620829641248598938241886037938456097065089715573844082581482109626109386797272767755031245639181519188724989072894148643080955138176492510911334023347701720548327260959340729754160049079666272827943075832746298250469805437639424072751979382407161938705048490811278081586501208512885785783144902854884620360059925342846590483796494923283967054419719252893225992065064755266942983343797150143073351037318624526604600560132116985819235318671862221628751747762959848541143775884141575764501369223700143262871029445464036640673555099413396592030494297398876908162285065228911880050403458990837618550470035431358580205911945567786208033161393455644761412957659727355604154639447090103013872019452124739880305557954716043350590646218636982846452409507962921810290161172354840038567523130752847308457993665625732611453512043265738321288660233196241282854581616666119176642820428095500485056670622522898614673171127038049250948928784571380711716575654480660565655085919104289319303774843835275742345333949291050220078620634176803294383227649263513422134346585397657034756465494015126404931198069961171602457891596954483576753031687103070351201438303474193870160119070358487919420866646974511948641718611143359670893502942135923522071700351452294284426132469282294647713951249730487393991730166216030449143354191589285687339975467523326624561700402041248098394520972877113417140277862473649350935037983089286353634382011371889583046163182960714869371309114808671589541909059601780430891306615718881658859806624661485803228942170444523002356151887121524557732372415229361095056229556717473350431016517153468277199812984869101263240178564394272220216818429160323934697179976041139171223640787863013949333768418658978002517467506861173818926411037981004741804313661267192573389078890152848814905380202066479664028211993419210834779745824743778021257523932427286385188433635730720675438239232935158577078084284232782309065261883253938089424744699457514232405681525299296922041280157984471916262415561748948738381148363996590864764416663924882304195963137832931277959100718309528710405635945123731829542930433311772844202458240077539988242334292045282564897534541701910050422252343753183335573884883304962463378226315005177092662721036502536942486887240385862669370155406449690649136173176679829823928047601637189281996351735302288502246582191822084304706469877252404052225785657329197581421658663624504904562445304890004253844596989002947194918661468282518639131220950404234682050314990789443718615714296011957058294222489456261004593211709556709878703830505081780171365842019209064248638393988632397075926108472085117941768618559445752646785055639282442077332955889171190109177841998573919057757155547300121002016318195924443720009345750587842242811270310293666480699423661335075389175030134924320422692239733495629055709915962299600935687070089939483000223032358748982766592968995284138694781900587460041421804418797026030785233367962042682858220960654756950550578778234149538683164355300551983050753434442861175795134360476117377600134068200239703636812826585167499074322067962673203703670016486632129405322045327891567437016494964766111483326826717519884509365679877779106054918959050819319394201068737319222530150768148276503642866207478850517248527223084406367571236916763728257533310367712438836292515140895487894873854084011919435871948540450515328569147367986125188041530774164727746420104534758938976870126370051815711678025772423291297965191547926687530551691241653576646390383061102551492014465871443198981112132391151234827147371339554427572385515940831404682712946573837705599416480813340741876903796884287313103625595845543780207474821893709151436496636032902346970842032242757379482258780452973284948170516667716148219857150487630488825919180832657598748536992257355366746372996070734400356931172767254180085810662167085462141017233249588769409628706724446200421378648161899558133850665233327143135500821919008430235199985639359112988480985848812830510019567574674870302164704776423969270322355937776576474177164943293066387191895176112088085562511149524552532539145151309943028162799953007532111486202588858393363643548131454199354760663528537990515608552345352559349695353219743637536217548193437703457225910943133553828594414647306035751004994179456597992601884946087201020613610904268034519268916025337754801373758863929616496824905518497968329086702626492150916300287662965357634055027624713094716779131502970984784751236925993018196656496031432585160832397881260948109066041853779340205257000451023957590343666614349076180046194955668287017854788478109307573434666251890595833848197844552865501350731272637514544547478205555265415202349471113880805841614874357023494732732394883994513405957649412126410565620264361115352650088147486129805345374433882920631035387594328061998435614450135951934568658472598861060124295083969253272030874153433358622677485255985445980229817299863527653029082318760540286999590697547910887727295763642803953221160014933498130220470669042962405309354538858237282412402559679054997781509243273962032335098651926456965930533370112715860055173679444106340789201409551312395136037919762133443761186236880865318168159078406291609440062076563905536677484035134592036033578931589655873878834676878367092349469785343368053437207693017485247091133408636776941658856457429964166566969539384443609497701765239802035447873689649289627711795779403618683695931056544119482905629264784587015122055377770474192338144305179370587652748806547796980503642438595097482469122370403415317857493886784329987485964411541050761286910659362331889997374661808865135915513467038915658826358720209592792120261020895110567196605780416647890793833866055377724979911148926739129199732475688894274976591313063384058790072210428198569818104219633070598026399293588758926702373735765662385565566643574834510176977924790700706197179866105356207386366391004745723951164398497179889160595912147004313444331606114323139927999110400704219318337059200928349376177187805421191615121782424178015689621287694437568102996554529286317542622071388542683708924319957128866408025350295348428202153136740122895931373030296897566622836061960663093423621054549278027240847135906654048875168565006175166543332851008255363780300560185827587417007287215802016403247419535496831640646318277977893825261561197209305829899762653780572458632091210971675676754310994868566565403041282987369670907704761756164631891608360344712778791699616204259283525964381755654747735757581773858348231094744315756123032435545158581390542990348185456238767195049582965283111984343476191879170025665630013476220596526996606770024324935289498764957792184998485985838181020724665939553167563513637933554254781655764777605136537714088245354214534191199845022893058394942055303539329137913582952061162293306902947440283553439084274559980332182788443047102454447999336618942146270377058068923196834579288920870121323789256764890944629822962959825461304344651779753036287361275205189016693473483737433418704349258233889986854585138834632852173673962427806280373043382821804960900448968404742209158678819571813961936689991408828734504225230798497440266248553334030188977038893140155854244517468693929730410464933161728799666064374099962659459408821027424658876954716271236942055009192985442500525392034539285469272315741703429136239513439477432885468079889577160438064478961369407033260952885370503070903553864389737474826954000102707677124757607754385517940016528491402013892401585967468290652048443540738423987780429192279461637225420468804522626097253248056298279531608909382225150320776133015164036688030994894395829963381049191349606444283244000712663007587510645702656599353538022133285853714675371805215514818181344123961415533336098742206657006084198224574828713805274002909256097698589111316079429934599889624176478146593334256680405643256573181589846672172643740255722208665674827335699946595968456908502280296191187260032678980429370193480771412976831419010476014470473321644922727764644031197732521218888976331426103471685205489886671969006274796490508824375138412025146483554084336488298055768681100532539733484089469068798414981948290007777555186070384649476381103441633005610684101945150795825806161741639782565791608657175175114367375946692560178809712179588567265488260572887773769513275555011704850451242684643792098882389310749957002834640814997422051927604835193483997678001901158400676049598607137389809379488856793185840540944247359099513091438928429198698745977471414007298379873300917430456772413388097948496623812302154511216746357130192558245555771590151910799176884662316726141007605227169648815860632895251082717611514740156735273533308447394785439979512214344606446616461324271536120612997156816683445896125274057920652601386506944217459967223367841951801833888958997707592324301587235764361963212678194955882820362939718042290032855245931275477766199092669055680153307736055023079415933397153386081370777037942041696669650281736894102330808341203044218759678285556434701344249227372020700091919407570581419960358170170760278802003611194368608347629445571686816156744672683715375333070915811000998095022913277127558124530359334835191202417189221841353194918350352362744073984735444561249931846261807586515123265478960994002558178649053856972789659178128030367327554487510282431757237831305774944929852379758855237842724377554991019418091985950442227331986826226305620253882022296693211178313549911123578252091904242408853668683019853753821421174661589664019079775271880544916668212359945107289541988054733328692752911882595405277069836604018973278104753272071178092774119420522801242040377200334872310198534870932618893314114989139185413745954618449465111831221384502840055210372240403088578836879620615882114965010042922922203078026288377668202554293125549641083993787986376035161253177551146978141887498634622284681736200322768334583212833483303937719740725066400098428605227511557138912128134607916626101743485093935961934583830299633071951310523339775624084404822109419138541999107804184476740272623572588653397187949418169526591134251617478083589007269208636748358914939930713070871260069187163355286270057132005763831064721616949892234535179827637547637439037922096321558479274823004949461919927238902809621961115487495478558175758741951935868680047941035918681079609740664177680002068673265964609352754030827549420741026560039399048706940490831414925708258235690405164342797912219134895976484815054385109431343782641089840387110729181705221103184737231791648274281000290454795943114926283867248793317412229956994324842495414597793643873089636696164128999132250180818132212776555316050239088529084523693024972122411270126531328796694303301971060988119648368501690677117848942106532489822965734552905537753648312247220800550193490165162996256554208137552399758147785783341678483914154491407222258745498783466421820560344971932889991276070364064806257460574811950402373774571303563349056202245434136950407559118246254949816723042839886274532278079423246462376106719535578455057202063204193892080064045950845733216940410205771277551102696215380734920899693005488717554496547254459463847685633637601462686706388898864736557922418777284044604647444994459628325376449882857512195824218712275160719597207609640303073831760060337344544050607617134523075831303291741233876439163042206988236694942719424106306699933541064985532513663866806464462015150325454462662092435377442734968873904952179159926403688047849204258894884174810147412672395246975650420184783047806033072190626057034388469066878826855507956579667693408800320536587720631637822478262632949271444160619101331987392845289372075798142483631891967010081358965202738952638302492442567584009175492068909062859673080666152597476314343961460444625244482228549998852133596598659328096367846275710859753010736104929813938722768359279965209210703242597852144326933240309368369987707549416467928372473877373560884430032328311060273665277684627643125550992547468349194223923889686188854607875990300006332284763195810339955131054038239520018397090372593251473432719886355138542714268317071464300253235374087175970526252011495149964654293223465360970778677244989115636439145841129211426956683963718003736571284841769483029580354341591711334487496224587368499716323216112115735120379695036682891448033849398425797923757444184945418199318461571415245412323296190021188471137354270319489961242312393639658700630035876717569780068201876581283301860484479832999753382191105289801665086114445896009169425016578635864260222275315223702499008409739082412672235975943134607275374253105723029763966145449034204768193520059461562400283077407879052080966981376592471888244118382242588913016613051239186946834097168666109542457675986558791009573222120546223279006344041384228958515404562383438244941824991657774345659036038369546567776287444961151982513372468300292529377702922688127555456735277971976263520018770047335850056435376779975782262993340874201199852810239199087735287497307545330841158382304580508464523468722993662620355647470826320500603824630639698357991985854918419520213289226365841265411391835827085760960280452093770628546115680591002221299235878217761931053591249593168598059315028436261527586575832822947876000845018285097918415906391926982006415960346073752658259504221889584537521788830877855462512769964662606572518523308350884083702529443464772304473897892531587061189762563082720803767157176489034023831730457318092037169469927570784010812217913887619600319825081930205198292396013958555611938274759424662187199656577953071387034683000020051254368230706262394240176205948967596979409371249367499009515038650889208142490545751530982999498971636122369385355937295021381565710737429227779707332707345328193336558165742142139602235896524864752935333536730141602265595237183605399332951689443946835369732835408267709642729011531340660011904150323383242377421924277700178622839908345283892104022286002071806498445925610556406573883192890548344973929351330375080396585883423711496245307334759851145835977079750237025740069308891228733350532591562312085985453934601062364236402993402921201348415512273396045999729517693561526137524049859635954563145638504613191858407954204702643194180406647649621017822080132432397215884510915096130048601793076369707668894539830771500350479833834063861182110294419341809228731326689855138798549666186663800041819181651057665545440991909028935305590110287446766593972209487293027224441314707079031810215582146820136300902643103827674429205095289005560015651653019370318007340728140222806842046637221911747786339909337032224060939448408237918787498689442541666544817313368975408259690730356015572988606562999732181920845541277072821040254976569169203626365463613358051229308060061450056362784902962060679351047851828680097824261810896498968788769054910575651347565454449633453807388029979015133664177896516203276496916454485250238428814557500495141806858268501360781260653798639241750770245565908645732032225591967403285994180863070233563071440073348847646410685922079963549900262416432142823378605877454649030920120498269402735305404339432710438927779858493183415612598486088902642437307201943003610957696797435763563105915223887556744794691019122092536592726443136418022369138642444692317307591440230780071783726387010735310815669153252751845037946887895138921768405178524939500426777105360038203423109218686270708240736349617947168986410810410286977575030659235728772006557609173614131278525929215874686208637730054462798634567574740503567972485820672576208491872927113003417539999935390345879592682858610977530360006680667499619778165487114718178083964453296711049900776475670070671713610985350722647022868034712290129495540398352438395935889446979378955692016833491670664576624192458107791878277190044342987029241645725233433727257928825505761308162060780688607592673422274755346407476741673457354848673016726780630979231337343903218404300125888236189183766571738544537306226268171302320143277734246904609268990742215488602167436660954659268397897294956113269856753614351674783587460048667797223525203787374511109794332958230043365272406414278093600999473838603656681658046420697195169950559476787447731473428611763011495348101847850181168694490721739689873090441559819220039578866152084408593983379086071015747266382051568481140040874807281914158730784319473342528389772388117017545829923452946002518551015505282192760221566371873435447357849963053657962266579258985747669247834144585155301236103493345015490924658916047196073691908807464694409323364401607522663282210306642645282112035069362313258526215704915990838071855726341009374898482698621246467885895453605328720022200611374617091769323519778263522724670868425683125951119978572561457692622009946194389208992593431536140193447296625973299808465990187920183396581679244791738628533179745621625090123939526396790620088894308139442657544607617460077773048963212453978170570211457764073032930292331933562374135757394682001112444606052608176250125625493009234769281397114683067890830155654048025574772966059460386229938689648192753347206111371117414396826039853070669217163545588221516536688518454045759193362568488276023995923454983429342397370608949765922654025354554040021943293829422791809371406497248005682010011897244594498107756029528177485596274801176982838270280682416555062168396979004845058960495107959733143124736613707187438864787959706200837221478190931665895954901018143762314374794843139352073279260568358971940707329920817221014791197656307047728407957404694146237206832481061685083746152405304269475098708022941218492017195626027079154251411562944250024522896502904671831941846714756775418554957680687579813765422798454058445506806349529705034455154034430126115500656309129654730583147322619006231949352106890134317939059911413707408597513702348854451320212753888559996847520918936367211307998869038890610838164317862932741100716139384086873426803211956017338461277385350878344175121117963726858263730887843247877981139945317138749343630784835593568709555911094332310128740557819846754598739178259220454541647848841879320976389044195125428195868937993401494689681210218145847680300223295479084804816243165398127046066229012767983702874197551262712667952127994866622383213296140958869618881591686153236158148884996454946040046050308199493490033937116417159212439778895731874797326627321157321851519208620174298100036550189145727274041176697353456782218607668805317702896081740250115400124193399229748532073356423183104538109377319081833471166473037200325550995999980286419750098285083095204064281621952222008147521802725003183101618750399229773324723931582443930503412935596341014355511872751891365115086719601798390657819564016483850978222716412163007849709986773699672248334076435044798387068754840393119535004789710209641908687871543424135905576540154366163377157103097647383946303926486560078679099921618897643398024310604169740477746082961067761379898786604632895134606996091754423749349045331707386362633371630528438991175451118522914247587258719724402812575874336455916663077868039904655684275885459726690812079035691471714313199767941346575504173449409367872393096089889208168940697956656090719400436272011922186329053627936127491817211672335705751027711198909351190672894484278000575914621071092055602728656470702333287496819828566632757340252897905632372515429370906693662551379028215866926231996885758537497581472799128272503485765785701695801735924878189032473623549197493483783155389763114463470213948749734735902131514207221143265709785193981225536627680120629110454320302757914620952837517785780961421638407809641202322929800543718601549042998963356412871423961334535897661361659777230673550506187991552831491301947504640162623272387430343645623661394963345512476114269640394505914862583471731701895487201769757429169677019782950181904357651464946477066922758545673136835163013471885602003743027668075849753287842519659045264937976958759554671046698425965469118377090015653248694643678129523197308677893318900675480872246375035936582050705664473601047987048547736002418061265810927739563659559951267090163352417901671759994972875915457526260134350665396413187549505789232431121067193859658045422199508252057000614758691144392013372850576005958673447547850677863388968331184626416332393423208015561085007776785133457898042922828963873602156223921542212355623513956675869205307933042580581485147495216591660274355297391944832666427744243619507145798055870591097468072716829740601441446484342533889349013718337539822479089579804134731958750561344131315970685013174464077799793085550937327075300092180619030221626663013239668616834178437570274722105914556020826589403181633693029413417756764037688391256078703147450041883064338173357288053941305932890045221955796838735754513885838749686200171842251448974009106136616958780013685500899106257515447869355527524560813432062010153695803066154723880018703894688481484460666622598855131039484376371565563084869963796207215290727361806604206286094284347785668093480783586299913751444641467738364231148811366853190796772473771921957259931890421315512234576691092066029455142667120359525641742008024292094565693829010779378505957238437133615703352339049852077589373455658483366759142333000041503568801709473578696970336991423064247364088527519486718864174754978501697752504026630498493894160944875660409356447269581427878780113633671955382693945560886035478069401397863057460994427874842861228191050781023748771718779241380263837931205486794217001881081762438448599211689499203102621184512102405578717623141838481127530426273732097290665734210845049294600031139655388062600171446835807733708963191792733234611609956006692437735376106170783592663085415467212290781678745443130115966297398473767521287366019643402826839929221072082722245368936349925366883587435734421526864997508378066008031355001799044226247866588320491885847961246915635468279777457748814970427529716289172121595642645563390643991574356159833572249269532205317387274808516864128621552836709260124558082182842441607515734234367722340062166684346029124316156785008495229339739841794585873941203743193808909734500609340965758185693185881671120264703739835188523428661554012516080095127701667504102750423047360808154011593849212000971579318759789344006990565345182787731486263041141644069250914576201385092728743236793792479150343332785794249396682875649644074540191310326710278447163451999241078344547501025471364792915715287028582575699477994244833520954370456803310951615734301004471986899620917745373045870879831092743029399309733919101932375865314716080410441591918239702472009112754613249597466927236298545684112113129312651013324658854418055742946156273553655787351810256753752349405280307922288696288157930982694911668219339014262369050943141772825070573307702844337462723349338422858539734295728189312698155166671170952178832821282606659013064029325935910015041736675491840735931338093923378591746087877253994073087188868845961385782487509601286223528573889573086551895196280610919178214884822647803367323899743286408920545102312966843420967850886342716768753984175763655625468814572944952176585654084531810141382854894291894904395479308584045386719705861916321894748653521282895390482101531244541843391260960381152426760380664325833914489989659728960534681890726485981132919245945274218216466335487414764987662819326027973193282639145094026680414063342573472012218452008855134672363898343237311389612308359726430087004886899031684789466315374187762280450582734991101935653920714170140154565045217967230734190807558657428820215883570407882494348231306962936560864271394288984451306792363725325355951681007835646633445452877195227802610537725260067825219100210074057459455838528351665129039876231585328045939400375163877110697249624796357436271412480027230818545879987760193246738746396132486550023845377921164881038879359964384621461937497657510153847062324815939831621239784247021255426724627264592210093705382936703305605259643413933721271425332486944535470534326735144040916783220097847257921633686653926930232843358242961193398697088370337759281589229656795128315066119028429118912441337355297663087780329316478933510969594572572494382150555073138093439380090900477380321049747980052618007857937899613983387169192672395583513343854256142452767025222851418619323335906920452551172472600128629175378675796938710381016259557395687971414705976324656406215040249800168384127315149830951991694640159695020194469026082120561621779428223523662440285902385677106972969831505943494138380908391972924360465862655830398159469356651679013082164833225790800769754689805827231349896276967228063065758059347043136067669220095790154114482336043225713289664476584902600217524612376578389734999959231070916810306441902976681300565687587451418571595932200068868713762948140279511612163619145194307651998139833930020099832009362942666903247453032878589387310695908271076020213793856906277928981790038373215335188697570250548413525869159897755861059892560527999171157671517267968468488130787649746905623183317983376454055017358547654191134025661619387880353405486708294448280495492534249612042581729148198672379792707695116505087273988805406141180928347850806064433779106892157409508480394648807421872002110443339641533575161375457586337511744328989635643820593299940219311703160092515722527473094511398605673742908836968861759927497518202345799909722877375276410947863667814704572029923625420529345697245972038501494370492263903561517600655416942691192580899692082980273244833642039668307735191203041794057392556744816303449956078098477358363853940661652337133006163620958509511242347873294988528035147168058049262183294440689738078854102673918531565000451943468480075081260830024107301224651337447308040466134777677543452096007433608538833629832463998752211835587611359853998796322346824208649035803763943651887436948310524200561460265961245834937437306725542447102400847539244292751834782286359354294849756357164988928321574128109284559324136565692828964804715318409810835340505155435311226248824110272635981868518178895944058710823835384820190571401286850083772236978830324972158990774926278394770576936963579930725590504352943727386474901211453363632727720474438335338966085078313107787203392141769277594184336481044581202072910734384382336641512594711558373284883106670781699451011494960789356017909919907043573994939697717220658193012144084756872135155649353480943601682441302026744615814172066604886694689777714354415199459137249897699834701758177232536736422065932482887961479111066981604540124341222148302189378840322044058101162624650391418179048378410563404507506383321873781222128445588891434473712377900176633457835142665542491497090921432153628949808786886065046386610946732944178558024694495631215311726757834842027380764909321039169251244220463041113657629562066060232184185011676740999703260174292280435099393964460838374005195089393534604772736384373639696802369897778400577755156746080199252895251245335022083649478420476706408528967664883511773907201123760376115688908481381861562295057312934058004945803671556092792284405179660385931416954650408774509459205919979990868634306122690084586962702501671194235135101385654881143813487981789117589700469300719358205622355641610084094051882813364701950773813132042010594882363492552086105227659625817518896576663213163034676912695664078772979169892313097118744428251642219431585108428488871555350852876558357916667518497198357751744353538724357418457485556661729958437819790138884369591738898681428402991335158136914999691299037159591139495916074349566486138004943572434176188714157460643151294209136783606326567540486794372151987940898591717102811768971120483307882165126864283127801319022073717805263329366038217062096473945891610992240190667471126486795899236905573004010135357332958350769383090400627316971861814790275444862816431561542720184619504993772488607991671926394487512666221338840226404077397630157952182672464791454649056535648681895170618679649108302387936709855225296048224817850127331324947581377537630675266897194262924294072896897713653199491824866312514702284541199519960818931122038114026941116237709389969290178514433904142967809437048845793256309378468993605173819377255878979083402123788777829078520324755330143159392784511484973630287189054851885246160024385129309305228935966306843723679364485957628189537417141823621813246319345420637918846697276949782527166371468776993104270020417286758337047209801867499580380907510031214001390937036833351127972030773547866831189610398974501370596636229766456984566302873869220931211984664889136829979325311143070102955522280084051049612275024365257426725411233011926937859459572536154162183326395068104121433960740509651155754096642441153705814895225217030976526043853203884256012438795714974593388195688648165275191715188946518857890066962328781035686612120999624861203322397541596552690787342532760269156051864181909362656114569006050292779787833287855551248997081961184947075346950680939405326951536424851674506477491078717588165617421661109840508119120548234904394816875486312200604701521789580418519737979159256390211848780766663077603341641517435130786328546226876611578654794614897364491881200275597794694013791259509162740621405928649553026470565176498238164606330548100354024653608347094678348892903542065021542381415258679485625857380377412653643164041184641765710747656457791547107013524968532007262665824566928700929010814838488996496507091748097708850887374899834107443458446666302133329496560104837269399890058171568038267602707587470220177367195752076094395609425029853414034409116514326808623649794056263756654353314422631077470812491137053655364289365432624124447842886820938586782526530290890520171831985203541703235735182835442318729282493387518594549658478962737101195225874013779591391428590741362339601261895054021572702778978327032012907265204581074003617020326924057287136655955550898943476779987559286041127806972436094440360809073768790749502774628242838913580711647427609446057026514341834018655327605380822887156903456786929938646035013012593011289564112965123576919147843832011278806701377006122040102564646091509999786007807606492940786453872857903953209007955085278816080961306431476141975064212279334896951730679818770924079878411030233081581146040771366082011840492814927680839687999799906255872316623323712324789069555088387004000061774123771063064381020779560923585279877477855611088763152631812292851499302984131093926651200452013252951226050798759394718237453824683019625635303401817593311918715916904415494851073068267190300085033962569881965367826569979454052888810864747714683132041528393712559564388879869639727300825324097251181320557515043116097711760140766112711685343179355027592064782770362892936737036989208230922455868281791504083872126364565355540798140908333428547280718925521229506867640487353756100856556748240892477012836182151205080175140997355100270252232847842122630028987290337887185066680748958950980972771228359180423863131692419030721032052839212897003068759258899979577053356748391591368657117976177109267245079484414894104995011502748959949590952304917928993997802487412781877038672888046143459312673725138117793863124578092972383694728095635376108443250273543251401837147655109582662155827408066987976288568127548433771796056803569508483710550387014502465382705908545818609266989010708158217198743523329465407461903571700887468921381893075498781115905894647838084803439492328969544111757951536818688708103969071291699022149988252059514587406854855436837389582920022363203722416406583865811518382605133969605456841701937530589488138895247251301375581531840016864158000760838115856325638983695335289780620385645244922539785231903911506343396291536757410651841793662464604213151321380867939675720571890664819985707042495279904666172470198683396765322496970142493394186882611226244933250053173495480598626157310205521106592478771941781325475642410321779702605217670475222194070230889295457915161384913493223271697650861192526778523929606053609611921832694900409145694387948555385466209331053643912906416975995589086509704898254820912063322436527628712935894949045743371930588740172999125715322489335587544567028414946344976455538995973592313505556040294658466478529314500438775177722821355962996750276436166261459989613558504702284373749123048326914066275964215465505201728656857533695694348018926260740210908603915007566723479469438697653194903152175669020152567817494204555941827729486464889570348416846838042710283627452232412822395969277425706609887847949743028749957092510223871563447042841043456402214722214775378241802465085202351594612028579755101427584567984639758626269362433875425162789442918829261561948082749245816338298934324812186571939826860882765598860252391240255016978865276500799224782479211149401686405066713327206567750903463285244341402519085779042520230544302322720752730119845920056596058489345835360878063826067742278380960090764509242993788369890174097014021572659298160441525180630357021441258988817641559879819844106343747837597717493156272800821357595214464344396676603550685344830196050723087542423682145380159657809366472320577469770703911513476662420290941610166391769103351468292479885946533179123822907575583011551686604419108753769128650635434029435530194918531329347630864956008025812773121947350849846868217967721882991542381981412469021191209299731016687201972019051410805065563056660101011824845872985663392358663341448810602947972317324446653224447648688821931506038665921210744132286228653323119547426606974450040586200060022849117824173665541131351962845168783439780543965596770143830391797329389110087576798376580903454041633220591603669002119293104695459163658115681617093230777924294729780944013762810744592885873186258631864032850692922742802922139534798644423426428125301190447140463342928359473183670464085255696826763064652871414665463571363743842821545016555591932951836218299629149710707647753120928278353322553212937725145950034526684720812728000530176516545999458309228838236770732693469629671711823784139012483667826954047771030904527226673453250556035031270659271757855824636465749502962811358863153361425358899109298603310264918543181207707009145865308251063509318216904981952680447809324134137575097829406821398666587762097868059284799108245196413333908276820033618924858012555338719965557089919989451851978212661918415687086003865567096942322037561262363776670173822560448504055272459156908876758133987381069390451515139276438976097825921111721321312622157507085501492696454121886341273297469214706069167229085319375063162844875257482734838999210066135400062068934549122490418057506532680156756171483380108493591965761167987790622651336963440184841723513875346619460756097408597123877755622014955585560437603999829361862725948004093091448846443915947331144084164608906098389932626588330380982337931360250707179267111066497649349024981568974713730689582955402501766630605671490209769147652835336533832386074426347449784742992051330316911111140296489205732713593030848566393222010598804700800634771297304246887752945326560437037423445947661104587180656488685518107611527628319903810050227613534624971245980328830730500800908124439476902931427252201613635562885991324804069767907756574389233665616241175253572161129040001759354812570558809773597768626816117369826009914344336793404817705809414376436507386308690548772851208325592802328477758708966393438840232297604632262132188297004123941345752712488786297497481035983293384686447718523339243326544247248918815386304604037790109686981070978083565386214684265089166076016207451284949958975517278865489465780873444577978979506479068876708211534687085704275290325802790601511541243337237238459271759726856539721312678744022719456918606157434897861338907097077623102657211905951309530892070749759327413868475239441244288724263913283931856013075005387878464024980832072377538345526675055747047434088689213940998440866103198309656068142736385667333821680375202574985908334423127617454595217859767501725435398906343265831700930246684150469696479731566006938430534137962501780900883401274351819492956600301443919871577375119936494746734598806128996530996980690279528075352185662710857413445955007935751326306619622962819160449805240530133636118439010833885480608052976556036693619451104853579679673997868229647263402218291324107977374600726584983615223048624016520465079791272743398330928383224539111251130150731428966078655987040583940282234022343607607847356703498926383585990752395241693236693124500062525435749735586948703524930085647197182702880552827207874099233513203584099860967530213300174344888728498724674154491243753987835449864305709093234436307578661889432967281498038626424092993289921625662404060345843014116497518207136094616159317284247968467280204733982951148103078153443341688228796001163210295135705989973556866230239647786933063215891520129576090771992381026276769898436956657551057968085294489383084933622276732541124581935637484437324647509930800374124857639824730325908431592800434971011225150067674874845506965487892490116032916395113434533117334010753731969576980885263733878074201481203479433378112671280712758718709325133593887957559931776948031714336253785283872240434956360660468968965648058290740441640379130574032854409470965451196686053372129672930702190848036746639223694470114147665932449668519637948358044642159079616718275368330618984981813014630124393169950727015608893371077895872876055579555657325185728954750991682844027624880297244599838374243283121009578127275890502662373404485160622820092489994642589026531708249727768048023478353936701547504785823721108608267506295823751021175842168048183224348987768971925328336767647500348001477955621721897366115597029327979870154240282391801231952723153070947118761622113323154872837111608899357291808106899870185468749448457673197420740788006599855586092855897164870839341489531097303849822194301721274122731065917671106303624840502274456217470638267347914750907490077354398301545319094387671722226559455650564922559873356368785062030055062947318445461808684945729284999133625045111904628852403623678826561312855243950719678716558989910004598025305483186034391315118218912601342149728962277591720246856897128903984618238273854098306723269378083897486195077185127586967161327045685566791504165518612734866365537916832553551584730578386135754258059213429024040439735529439403016485702677821358444158242624400922119900856481230400768377954495770390085353256940902680836529691694398242945692455364796884588702271440497992476907432655865015006870146905271768198729774070436837257389594057414290525478491454173841356600356299430340843739824794128327172425616111573789848908153387459394652125086845524590808235659337733554756961207019427412771972692145855019711143005498113766753721604568773629724615996207317268381080638051518011861964632515265702509126843977955982681577757276998840191295594248324075714649145086852464808548233296391390433336647924594066911223333660949341490328331497391281069800253080941381437398446504469262000582905650680361129987327886772787259942149958773475473943061183145439354611617126789886178311760567342495416954231181679521822095446847245760472888135154484316826650601913684650085152368043118480911487325572031489327843483268052320347130791918165160870457463902845804134777245328939626068223842755427605397498470212618201463049836493807407527810589105793289383160819334550243023343039086598223036411792190164991134188163055427741421973318634047802291942362581508157348573917534003676732717616479032635606854905810978509122240142812614325301641292664182140682094870383280060826937904441100630692671282760241910986963445949437634781960332447377271608196555162247197865686267458619960679053512484824321830956986942699621630454795788289860743238288743725232742010677532381828046187179858844070959058279478870404898777985863133141822896057974769131537688139556407409792661337490077039881975025278867969785814370434234028612531370299662846853248070131798499958454985444718799292252994512342991261390005682992341017528646580128605546674996531021370517844601322628718591932465363763049087505531197185860492835736832118194570958052822363528397106628691942060442562554877066791134092271443323061405937836349357853083905537278438410625327606071332389920629399798546124942267429780527518907538144542647198891160336283786199926263922571471717546371089515055366940656707829453040988286533721434650158215259263560828935777220787739405657192337976826292555134434529521673906829082930562940570772758789175246203196710955018576721792816045311117589164610449719860679460972765584188371453815149776102371057468096270589809453986205498573124547979348320972429369314702466067200622704397748439205209330710354265382332454923793756691862012799429647718729326692913471641376581000200030379374643546988766497704872769993409993226266476873569817236623773663572210846525374446738930609870506684467731005200739491491652133695175152525634346986074255932041278585527159083608042660714185173110207910369315032477627393142680801070497516227486312829251826693050172543328180731750069122652614459213877753415782347672007973222365201928085816018718085155949775702955426631084103719304797554933457280405581323195694786607426696885058056912422760905514288689437454108868194508267954427703710436847273935004155227350351028947367472369350264196574713140828993616436152433093441611044594004801802706487291649816307951629539959806172614119929101311265738956947746646217960966665067332421098756494573112561983562473055356280067026411951088222253433620738369575802542610675592005971202278941141881303422527377709590500951305868253040155455336130550373885667603455487327179279338988444872163237442915398698666357829716061853345335643896321689210554222765628891889546895610939954080966452730376727159039686559077953939367488899048390012697783041245815550601797745247986462757346986517148287268383433372621033804204005647236940128489552762066672263071604851002344948367917814715431043817269845136619742015180565536951996312861181434411247416789199641124968288563872879128719406063120920861005260795150568831500927431368546434243207579264575976038288100129661123824070432670003483280703233437801432587762214483986137463143129991637770810722357798260770648976371093371041045239798206967431166432224733156888928479481969586149932549757828175897218414155859047007557453032350665566492680377973445974681533342267454382368776883452691196188632800958878089423570363601993555510022377713208560397020523805402503843582160522055404921128390335757816476691125865577766110636132998673279288636830112100263626240409262800986728631099737522958450697706966128305466616732873639441988582433794851340186257121755828138905365238031466453780602656987722393226837857770400954449468942409485160787833247630010809278289710447584806903024572901970178243530262541858636878559834824419154792869625720380860649606289967253670227947517037272514755921942693085327681988504670557112011739889377214098174730380621656175026102022124909916469225612685625594527552966634704961571563292616917877614708944574052128895561007603576741894374346063953075742208428466361938929171728638881166485783075126987690591445539479299662907413610208285479796353371915484607323580240506097892556752182273961037536585679815403959522353265426893747708208566518385948292445516301100908884790289476680340541407442732124397285259147656089871901713433628720995452386254200970294115471596827693203176743974480588410897897734396856548115874724410021642749038517959365444758232211778556262990093742800712919155932729578194511459374264171071053095509143178183179103842648525342157432587023479031669704461473125198811039234156158359328734752643406475494939007078668447285177527059524923522180360760864364086883756060643816062464399354280931403443870140418710588898870473667988011824892569681992903839909596567371843053398706834467665448467827946974583598114777956965079662634407971918883675347280117068553760475155311099016093326398253744978886943012604277776604663369715764996110718129582242852877634896738495194058030607297217860636365510376640050664498001547029328365445930989425501231624341229917909481665860023951943592523452532288958536905121418765188196801622963834671906761630215061572870143604990367348120208028115735017839844710345174554217660203921173340216020030674654154450632169831286417880165156078120614869923556385296627997682658302581599809082742783855584725997118219812201308466109123338530068742690408410459060073674382079198511133087675321816808313530204976454961830844881368836451410947241526429254827240087316477083433625943062549893829612611083859399211596647167944556210968719376824540009669687750287132976359866251278739660462631473940019347630840745733793548496980537069741352247529776261458865068126311837168651124327798329595233996787054422464175246744774393189962831414020521904614433222068862824522222060951880816589395726158257017515772657549887593996769917902882006690034003652175236548757013551469112182310813531810590800726144554944015317415746738262187800412788589201046026090470822765395165842204847050605933011957266410216477955782205694991481220716837030232517119303800445753316788847873806022867929398682044163693948342147330056948231709798938385406072386621746369522839009448821679366030536034940717489605253859684015371657618780869355742393940292778900802029646481928938106789629108335259272396313549060094687902102256977282035167597820990695629594078956908780294220098264043726879040674639722770635682928593288679176533949951022777898939253054070494057725350907615188594827129803929531892743729426189368862418641694132407865598164575196561545813277239524332501214197088109552282665837487655792108576475586702033571199384460750834743617601919180052020915312389826241100975042123680283359839821605745383284075027511371399889855325894737490809913686382875903279289213813879765082616334353860346894675656922303865463022906205637822140573357425437567837936845101153155290541248109171956750428034010000886449886285604011821916936114493349140170360524368216880276900187497390376311584479428056110200524255242525635972443507384893630702088547374711866250734431836475110956705927567808515614243012322472394474943235090400104061053136906255781038751793605270600807774879915061364415051704608103120975796631777348128010745237657270721968829977967301158485542884160215530212337406572134330842311084073428928982446238840372977511490213443426711533300840063216465593208751997389028401925151058434479655207658801641687198148449801247502035438869153722451623799880311099499818841161508540311262727432200104383552586632228946640657441185648074095033857117336922799429519168784398787275106840689174978308290095823871461805746141923561551166405268885456580029436236510431553449725385712414731437623170081062620338967955496314404267827691643055473010230012895234818153229229496828230360442542777859257518892669332188250883931767351531034996922983275361976182164489829156632127201333970751871359163456325417219370367396024608675655063597080616648212436286839527500238894406734993766840741956366397194386792730274179378908890629486699599115129742564284530294776968001061546270396311034557655832906354243095587084397540449255421594435109659151106219523257090423966170851143607074039784886027886691747582630342308024058320473368122284242717526175764608881378686048058935789988348099630753544036796216114286174017187767680005791981125496141545034283111388816420147450146673549886860117967993196664946407807658949579088483030712586034248403943005724805992563837503633153409714008386173577045050886048893695464457076814878281779980495059752428799838691906247936587171750233077335425120516654753935408894755622672193974144674205162058906437598527509280545470689746759394085892041117537276096316942528770649276242894644271482631234638344165825009877365619293032218172820414404430929560567577539479562298288806484683540213782261608985718806507064486286253682254155664811614407842927861892972596788636725340786345871208926364484485909511626300713616234576782431375408143180229151132425297558394513689710052422905493321256752799647194938641565264851930164411830987534490640255176235442503657528835709549073659077839996667526801915135743835734973210834595530501610476462232378340944107520895642591767316838026906333560877703993677408984573963454745365345935043665660831170148631083935929044615582388744356650873997422736701353631132050000629861353045200281251734257177863443647298111970537705391603669056713989028688294320041916020004510949490897362128819663719643578374779248580181521452729165504461619428629649986472999256104792162827749753481473479332942377954406644110757092605984798525003011489552120406043901291910940408362015836687391564603389229912197067398220645239186648616258241621678190822629660848616419294975620623580799285560358324331323862669410968278539315688809241259599513694306108457268923444265832366608938585637721202657270628734761460613252458206966455697991027606011974552915762069825954344236193373297422019946180761508389052524886676065144654384858293002730728708405572673889620743965592545154830296727915372668541376578589016225543640698693463328006186764142728371062113933178701524114847833028215898478057036665442583231997563136445497508629441728985001539901457445086503534450796059324912172732752852198827932266008408784867573387961653189987806999320272320308663668777520118209989108624900264317211868537887157505066047297432193006172435364826684014914352826381954131895791487709426365459787195564392731418479316870447333523102720403333967740605361129298609443715553205029342653871613651218549947023992599308996016343013777415046653717392129576513439281695643592430788202875638408745221542004603789916054740874171042996131439859568144448755690880711198915896507782809821621383928541205049166771799949741023149101316592432055422453637164320259624305275970843015326102407995142204842403313506016855334454759785466132275697295273475560194630070351096928635432378448789354242078033152718199238755471558023022565221278910140196183668502190174240044923096362351205597199451328169066229639470147911458650643606636542311788564549983029585953855205772584469416206938888154171263808983258051086390651558979851011794706940734174885856671461448461262032730564238895118046245760685613501887753742043493385065963679669711879475611279729321242287016902468532374561127375755353846568614581448950707209998352872694202839296603983571471286341521280251998165827621949941124490571746034085604090315148654712708286515025011419891868876280887046736031559067339800521040682958195212052482356771429699575204681034008122202639098575830994415679196578899727786700250718541553206573078778575149683926822091934312174218963399798037638811113173713761309965025847253358398694911301887118516817289161311053025405971940864390300875247747189187447680499351378630298051634035377815435495489869169907890584471445541452213691178572303449971299232857082713962604286261166052254330678270121690348733637375084784617852900145301596576915748641734837000332363821758317053684798738384406115267637581918363591406720088603889312361088200131985077558143988231259352253315018418786403039361798224059475277562995936860084444273989902021036615310856690289357661354598753464714378588518746158342992327198312865131585995094997566141661886718048300227927793888182904555100460453183476633539787396721493117176659552856120277325746531267995281027181924948976661747680699306080364833085957192411866782137720583355587811839477199286458032842898238863267238567991059137819847625701972023956227275858786438910399726398875844058556852008913061503917947415636394148087290420215528238522393347604525366332071677415184353371868997664622838995269748421398918662608647363310654211217692330095764724745049686574002324925367010535630302728408502509740375492699244636953360775773857455863450603141808407688436022658232644982509759109617958333762858316129550736395756261156345315920106369778236579152238688417047438149414838601143188845359464009994685338943790631811359147661953109873941365896003059104273003139771157282640614831821473076259339474792324264221613651822738351671190737028157392690248088826812232057725652363526067600336598461878848118633265426168684667878264027817674490225507872232305622468024384545896280122557450726938837297901571999393000310081080478536691640900071820306065653232511686297235529631365377775575839793607522912217742267025697531951879572140980528182352225465084079421031550063422863322078556551033370507131348056351312767233337039536413562175948591919482347145566206846720361953741918544553845652630541576428302630520838071841148716369331813297167644181911503619372789353219923283740655829707255173338419239112640415729190774173766929014905956507239934100674019697962508474478512388239678386827042035430972950682180833353923484488248617029356061142491249690107395761134238405519820247761042196475430519572519027418710728793495336349979171153697841186604328827176447863510127042886120570935479406779183404424903273633217102921347836005809839770857207317113963145278586749466317936089416150756750516839343642228970077766614048248461490740449917263382624449200295694645713381420121917045530534454474362768384124246190455037616482661085516199502728130153606023200500420152880423253926926508264095091688079807980523610019888696785490642946841655408132778271786841475619446443002600558803172958096449596137460733426412132282699939045438716529084263786614440545450744039199069212353017256813620299413492974139699375472394176949450217726871238041472073916484635169592708097995632653040245202087067120517104540455592936515534512533171204343444748726086845068501234392949295933665309014544113036215023455109896373968484309992449323383801862933860023839143596560882275000952006276160867526181076540331982151595236461454013902330569491615145341000650476886631950949633724250274823819501721218878418942894952640956609074374776554855249567946483796805505439324741194469500291121500328604270125738028315656940388385542000300611315088126096074840881627056316992570931210005589532513920132087178847220628432820006643793218034169263945084628336615386416864809366887485688630086260550244794772889937895620094570177558253312384669935965803974725009627398878173801320925555481974702781259396048985496087846499248880421732774556543192372257642538357756710673761941395876643458142900467978393459704613414311187585226443456280990566674069295513059062193008719391616918026935485246930909782218329985116298944321978971076968102363352429096988852612995308628190284126901086913433285706526897482502892784759636156804220858990680629546852662077664545486364598127396687465362187827945936444561954903828584433479682331259140439554244028889789389123253557795026324357868416133082767546531279780887768625207714389420412545750968857369665810166908108158388288912773659068883589230918308003037844453735167887545729370423058708305639577570500721651632236359065485886612976898136105546033492745995422178576023441767186918448965385282292400042186822870414404102583481986390570772634726493671179586473038806766200994832874190832315560256826709076152395935870091157924652041513947256705134130899626194489794127926988952107345291352151971102775082593192383467610681471962938466271231103475457769396820348763298848704707865876717155270206683184403008715596534602619409376577766137717747442967191369742581397667017391951449823946197937546170898999952765802772142211241274972031968006937770771888617561433822414099639525899071892661728695770465712202288908059729080821949109128805264273119996472927745720754487660955898923483212160863631714604381926434667190091329525078081318637177519327900699457746673566793602181155935410991524753515338960120053588054764001198102027033941958433195692590485967905692341821310452380446623583599688487111568195930997234106149463504706930461067405209007849218718626795454687222291734328172835308836679337502681203931435689959832991080575103645300393517170755048643426353584570376085236398350504812177550717149151674989628641068166168042447203357067212575391074120167491773297038538791167944239112259442234897431361095164356483551788992225670902246936362619635540837261492135929039049834047053397186252425248658057569500812974801386055814293379645606127514990130726309867779804875703967119301578761540110798028146498482412501789394038149964226984360463887493497312876858346596971828872752710388634800838739743575769772686313980969676363662256325164906433029657119687340973006490769813844513566725065669086981866690687610006956636915335998177835901831726416409844113429625758410132599135699344136212983786471516320160983512686330658709433448999709312716913491059345914871552441793525479421132932297154674627040962032876847436258828145290027364825453403133118072053759437781442483715164837430472098121883589876005133503819509454888718756641853855967501090948458129268375273133055113224130618534286218613172503516577243632633960206993470820678396923455144091923561791478290540657122087235128678210676638726872710016296463995080182117234853776537919233690045647667904036998836564873453525310178835635856083324724148244563811201669014100702603420005554201862556132477710486664239144566523428753400264002245157294618334965636796243719644548563479316080533828261065987873016362665652168648072543295089985990143533556084646369581493786967867664783392285541582504590353813416477283572283917663822039573201709395421308870862849078477880989971773814142642238304592295253406521640636315358167277894515934221534943854407456788520363805856984062459888354106307600150183552132758302504203286996028974721467029212542704306287754783475404300626323819833952250227300119997397913794356362830805102191955001396606814118449389762376097179336597416249872920596973472109128263802453536945095468040939484871240460640143216384215843935537958938652121172547450148514865145691489719375914442353453879627496277742201726253573299470421230489103396665211041928513437074827525956493710994386032184730265017343043330674208171132594891718043465511276771287801630731614367725239694923837085911208997678429622965449570665854108569651590749829007572179816123486437627438262069640192009790942247861175058319660592536219614414035328161310862631930230341536056121950490341892167032091278353297142292096490442542893071516165617063975791641749016884480082828528263250244998209916578302265721365940021605300742629599931061805627671402459080404576517621399880902476324600066799257449845125989968731243168819592951726756121232982820458645606771694696260956107187347681778811511096031464223341643105432153958458515364645639797069946593402748157530069916787903114474482367282588825676341946522255352682934278908146633897100238133031948719489614516438821767466762487446508472729272852080946599698558690685632759550680663533106808231082955216773285672657748173633761867595022858758285625453108665045454993707896103056869452995538851413176322515796032001744435456297498331778516144559080432314822345061228661806906250019492731999875825690996412587719002791556017549337173211625743097654092238612270362244783189150233300565017861208724492730150643738704101102600991041274116886829516001708973004661450040778255086484000177910161007015184409495661143475143419729328792910671641129308043391621023235196978723877047890548612484658998083054026968967221359714569582612482820460256347079022221708155127877472172058327402274121525370713477455050487694521754993278906029150685700776637158158680099039222728159529645006648569133719927369773142474932023162202964554529619671036170985693168610828094887515580302400989500557617285895531584999266137542069698107339733503661914417448211027316885502009796056575109593858075357313790449520117079792191763842107062164233501360981224176861631338625058627500831347061720442772079692355095075744637141419731544486372416940508709753448918005536784744405537417613854019118063845272185636252908198423306244622398374943412060806966275845436216745225041053330951001378796487929257042110272510594214510352177553075804965561485654836774608260111301135575174821952886331879157552997900839956081180399824212807107907523145588701756686017174793293349558733093845533687466749352196967252396547599416751000946210400872214487771814175984043824595472966528783511855627765300483739761460877351737662089171146844968639597367592857187951462060534582915901404197046094806493361580687350979306260081755888426726103783127482411498458576231013121314625182604423012646868621897576289361630501326091260519566569951499998352264171479375890454252382988028344063496049224359454118348256944362884944230591438235079882320071146441198883556186845192896340223017672477878841711005762541239686179306039767352984160270098571515082184782354262908176853031541000987656003048281071211336185447744923406425542146518861521043211313034588196111448629295225713134873221409640062839200000502462632575835628539175597019459631202497866013377506750929307595583215863100923718368921113537830890198263700726001147061191364326225659610107472676294270403614808103756899912166465397017701545845187000087062858903690030850170845974551093561934611480086876177205410247863471074783603389836137362229167907722041882161756322801851804839610040358594371376907684595494773044737694613718051366220440400232593416097181380467801055815542502285762108039536600507538024734854501039838419086870431729435857993895376898717194094574126163407342170163834819919947539580573374853004561849322826058616458549939842491089462699801117777224189288411192730476485276703973677996418547247147362915252262664592336973296635003043603449917144502619486006147751588434615388524240937681760336517204799895115018045678662480960048376735155420584752262579877578241880566426446039611550159871224687605116358282301610576373020591185296018334585914452851416008493975677640860820421623254480193301478956606919453847783368746165872257944739254978883469292921404244845537542950946738488850856650916540370611810700300387583717116684375399562906013117928179554545100100919590009977080348447290726800495889414607089489313904417550820558046994759816897763664348696183184296972695339867543015838037049519155086139506893284572766289984255466778805710716070967473448327624814958136297132032612344199176704813409358032264082681484767873721918628556721945978781272260761190889509879667517354783972268374823067801636257289984289366933871045376985157768864963618756192227168421590807123861100859450838194163920152207308253985173401041643502352298763496128456099420135380859098637418333024143671043381268250695001223073935978229378682811153814171019262418913634248658025726717536577482660938789238516995244710488532922753422461256843333273312057161125937952794221479842773273022031728778172292056588075892163379723771265072772516058882994087610352329947172923823934788801753398885638914754001019779947868328926580285087311376466666899783871183098469492766248482604752360080885701331216216867553404825075999445204804156272397025239868559509319020505527376651295466478523077090034633258419576608244392018850137896096306184427133320566818604548476344348664409656577689815032164164234501573130075159840366920300708091616559504679405351491781684592933400324832393760723457820703987972301613251218123552141407625033089269045171136229913017725513244480446969887380859274096075644480874086002772339596403339859375320335460641787955595845984824202611647410406806085937906207740788941860488115875243406880350245814932147268745565650318200458105596967498494218625166537822538408528138910647055722158951078878976822322870298593942882817334090235629987248506783341308757823115883301436348442233838393496950543742100078588570337766616704686244358948666478297745574771333781329920131205593819967701444736205002880302052916662042473187410568474845079647203220180106484014011706695387422130031613556730725086928755865174859632699150006948785813602367159121353397949125305333584452323436878973179105845165088605625665889618085478711430992287062253853487351831252932952908674897976057554185485264055137611543274624655695008968086850647886805112846858433210804305557978022166494668017326788400762372307425490119455830901301634080523061571720785352890416318733442191538090209514495495768431289755003748427128340136660241679187643981651429463556362918250886147194478130845192515153794351979366723491467744819847058838991747719185740819486270987760939566952174407739264597910187311186824301744087684389646961768948847848114759427364464241163330736826090708437932574213511027888720561346114436496620849229415625162945716913267843629955068459234401414975204495977574770677690277419353683240398334444283420348038294874613962596320227637708875143495146165817266639773258346866953864427665989765533538687730827066210023576943270483214466005955422846242628690433452925739377383597540927607452339838017832148972267454032546639539454022543055053438627617961650426381711504935216004982071865277484999029723810757096787840761397329561540318306446680822377845972701827055022784412302801664598594692515798620508591124380406460927621809532446176632137008219741810957649257051589069042936618565227742574021985365960768369358661728125806645582723154793128466171221487271504086690888763122907432254695681637538575920753071979642216627388396217142788904292490902002416383797434930934242449813307437001100020266135968020534153481133015480075541948538836021261909631196320342615456737331936396607006084190686056929836881192924938870669218842818082226654388172728250592424028774247090599653721863337113648650382141270925367614508497426224716901089495403804648445584406678641018060432894774629183299297756885322768823648495383667873097366006320553048006263172229953641266489120780792247220750752132132443126599399785831143868055378711610464017970224965943993788115190698876303275949658617358848512163888821228704078354470741853836568908752803998472580956655122970310099449704040983632443545777094243351157333431345979243980177598839249099638916693643448006142903274037026936298423952172334412174741363291918245715112632389927489189283424564238227761398576774173125493651300843664441668372489341114655760232454488775173630579179063858769166889812713826912680333682218974173139411375800489260818766508372035032223508896700008705957936396603030343700626410793304259709869603524071144838808599673275122360619109715859388877638577053644455458977311692468144373074919684886360728251693006980328200078148411551862272520697188819978216510548946176777087174585854139909134424466112200200737367960050431789129386972236185364202121524630334514535275310746328365918729734212248786500877897733366307209454198933241323772463917372637991503316866560699536176143772034583113903730861101722884547542966068831290285064137913998514083382891636588001990041500267040466442523283412100299724625487198177957641733021555048455022009556776271594536846887880118837946843018374819274213325380821252913256751060294318787757584654941384555250010149420055960734202717041640464422070702102597088462902581099411515458717361121370991596832862971471111826495595529821382445162586097487928877860387543712954162595169041631329107307824302443818215657855567858609527673482556046032614847035392649098321995166505790063727838927772256916082247985949473359191064033076978496013514707230688688742462992295868740420846644500655666181048167913310215864310582742316160452970877136269533670990284571149174404848750953616552493749188415656877979697836236171970571695911276293737923286627085712786140457122715135947778552567885882191067728898311585688666066932590578848830534116048102884960188760531855767421249236389657368783526173693415561549771309618123681334166550882817539726227354540577154527422068775441114256427667430642964051528076049079513472455409770813785588394991034567221421602271226893297587292414280219139236542523939579004899206395573158490168457221190046161840119877191335996709061960824012736881481993283134077373730678255920412887283438630960220064182104429340561460467881837560448969193655004935170613562720347109338206630706152334448626911522123972124372789776651929311531819643631414251866793516593311532721845739226521999476878267700998147990696227105695940719364162971934806882959534880528939564265967513825725290724051678117119842164706297077970589795800808270463884038894754962418170927626312535223635097195089116929394349843608178161946358090132784376461566306708624894730955464842421763740111249058137538238407711520571497150498172666709872258929540388962794586335896921921848345449189335342267758909224475481187688464975977690522201280461328630779602693639084143858607271246637109858263924669090422203124949574943317046664640042921655991983841306853675650938204118565007752559060698081583160492453065607993628083161723814215789553309384118309831915034387748947796518828756822123998108322854171480357218906100954055187587415919600669033686014745533778149648339310389240593439236428335002975245051071699971715144585930163954396643064764589401919513134197011709063521638113315290387188959837399941103745958276389416946820964042033366078045423154856186897411387872892777814279805885508096010771266999737949000128154825571670187347143040160254850791797553316557340670969495676636073432904493037028755439374174592859256478378963801326846598720047564519766367952464507257356674799425513808919211633659184142756657111131422773195636017572057143949107764897814695843077078371102902430382067382665327988928991903617816996366152108493105824630417398383160092245744721448359530925943667970925167017102896017972633430325875638197744186218834638623687147617886683919232688826695699205491263436919063064136283363093752768134634553431778541114630582880498454092046160523963259927720293366200406626280642702792055027624515957708782840293747944891339125249920354562399644911601878054185980763581276182739614097905784723383810953939093323295461738627945894006367707185399536820536135477124720549892880345179017299971409610969701229586722009256952616708934179048771365822610327349002604382405719027966254929284465280110955137212479204454468984856895047926695391735207121636103262243329982358706236782723627515744391800835108363869481392790580569634777722722215431819551544153494032026482515658353308408138177728895134806289335615850022391240017825840437208295031130715771071366672727510326396693967794012146622365164032787614704503436529662388806057099589664578703136692171579100927476464726734036789287188404004616346416275322026593222242196875240720048157529130392021042980422884945942498256975290304516962705330376213108456713759432024525077708861256497577211072657984940018040259744066411774989367526457642923778057199130075424740846983671567984808063790666206280450718412721235551207836102950561077948817929799887224702545436243634850097413265423557801613209337518251032640211699946589700140586686838662655233073769173424275117943521184147238170827824474897377353809935785654666229249726371325507217557710564254528153560277053059132724563830559903035110270366974398790151453776356598655283410274413546107648339231359589529771310143440192455278448558688422305847005377304874636802827262979993104334339909073299267901690821948350197400304740357321778783319393208368935664245710951006830219892466463518390181163044181263797219491078089264112394990645068571720052088477717419923644274318549917862078658548591151606067638365728939672610313714384221824061454767479471987177064329031298485965059516154027509942983134302408307981982622101250096832955513234863923811525234132829963252648642825352543521587924246686569023676678768965903279607794478361111826736136857429453448415915018961013560897295746715331939006366052051084643538768441437940074448792090351379415014624300933290838507860539912157191680847122501735429499946135171582502710048986273242949456598402344271722161745998256520599676590073134843330148971145057292558401813828515576193563520810692643165308214353952082185518696672620875664223515254444378035958249084568187691724573333500385367694051339613764437878104692840242568765039596651652927237800815530109797974350704345384965552410636055153564333308173455303186247889703024195211948830735462968823571056189264494548446301054308290378448450677696036465301236719328175182713027916158191584262601582907492281988769362959651336138580802257686492828098695808574892779342305275458058618138264141479074675065506187238139973546636840174287396421209591794493895080087044834788772667766486352782303481680986804767649918510223416792898458840672007507844036804487785294520110207594822119386844846139848341930199211862100186449562784464615927635617084538448597625696921904099879230354298953496111575395077609218271716476204522012910003718447698859663550121578726072935945344346637192402562421115733835088787823324259553930463720273831945946865167829364541281126072489048706504001133538195479042593316484383187781297326986564837553615378784125378768855045293107760259482215548221653616522422838066598948126099342835083524688988670154187313338856534788519158810997040509802032705830451076888924195170506962640609807870262703300326137328130517747596609080844830781400109285493472208458767047449810262725824889768172964395628477711213017585562049716375191466472970520959258304184074929608885231064267168393076017473731208614640094782895165174445667079182010139683872255768818474108550012698175593108869824676334480766158518024413362717472125454156326217607215223461814223404516726990131442553297631262720426668908088875620810083934729039338891817228511486613001631490960448496051508989140493244318241111456621749013752268503807921145969350784368214630078023563363830520607630981807156507956461850033806713061338558200077159546966215348806869639885409347130883964459690079092363597864973510345455720025267986812527516908569210410587849605394006489295014344680578766826007765296560256255358707635321669600182956044247509082739174325666024653434523970039043280044217188571150092440154133291640442472688086638597151355917202204437630402382802565404315664406241534367073270797701236110218324338590290807764931168792876386037659777524190843750472864238183944550420007959496006175204816618500191033858136352711522462691743761948931723078476298380981675283066883115297587645691976741816283989412848456158592889528191557260515856083239122055113480325382301997666597753429745695147613517435685206992683793082607649948825397815190017985717721973309402020058325948562668579453413360079991837987975076034129528830228863338181831918918346629914099885647537272534158792583077054970686545446410513245123486798057244270004954948441355967037940027617811126908390914657962872633754771149174571930936899425960837123811890954370771743259625683399435260352220434660906369787174819921978028304346198124356038601317112937680258949651751009415559160706197648296450437332781926016484342103054544053783474888020135097766740769665340165718564407608832006978587587382961681128563295598674726248846834128830833976976669740489806988445691545510101246888133536974330457599897081029806421218458304960554487397015590705659016751543170830055658156838793398174192060541350545061020666277909087217736505938445515154937791607656151472850742246004267829493853398175917272697986094432058999023066401374521611999131905948608415698467716792829157375830691598341593743148493939971283234204091564651769744646392429404082451638492677877480744038633346103775487305857144125606407099658308257339427256683870815858631065120826639125647292082804047660489478852651292302396105387699550667349793034478312448367398097611727159548911362456920414722671888416158350179950102880698325149854983858522760579720893577225882670533772438621303195780608112013278739687143739894243085974555266055120780204967194097765820495506501691806542971699581910774351123371620084485297848026955704400833253318347078428748449360356136081717370228772512107902540658666868526208000991009665083464381692038096491994920831121154265816473818560231763250198342214062565139936881315609126634231293849374982407922539596685306526236111486382782507655617898155407939028900511787943826124730955932191969260214991991320211979065619771133400927041364752269933217109344610573568690819873315947624348404934943886517006002607214955562337247006460548116402266387637233391954912297495144251711641346925619610047551179107221290094985806147076625223623319433495946015877528131448090399909059979412849082762286040862301139136261343194670936249108155023047941592038519306934965144629241323393918911305009152922442240454885604634091350746793625273189401370276258414515753034565898531207434718690216716001528695744234030051451603875401079452677229619249452986491428529173249250674434436067139388317627623767264934357931482109477933431897769929832069623663490261768811124307059375495533768684453480995892637736573095599145904574257698119984705637278862105435607257030261055142381251685922457534565027757426653796045288314487853718057693430770927085308767313890351014464857855614783462009978508183288516414465440338826357962572829237092862396117470198416140719223895817417177216360516936879238390667937669921735710878273833818504959727064960190063973808881462979584210642063896902387925100120857556011863853368551679400095789412235802527494704924909167821658786157677166717456435567496606844597186505551629862122333439913516801662222669412467233199508204216685929605889550140337016498837262617122874306568803206752730460797497948810429119696765675567634871308091881010361662057753830848966704713429214447170154994465274222139427172314644598806833554568452777047394412083833738222482199750629265367128990860162232399949270440438044116522438636618499781975484884296758009407349137705342055849390417401548832258719736495961078817522729414022776609106239748857274339073760280174163238917273219579899519973743148906357132292077419169000695261032265042417519062750175981516217096310209571251709289260215997603812107151744523352773465956779035715716883382492677462986041698310404143450636461491620416912438231343557303130936311277784879090945843523026617223411968569354847560888654924035163420402837179809619143617448054106540736025150353929650425747745767193668556225372274079905336608586222160281223965950573968890123496033806023768074075296543018028287165288338606232271434133949023842947987196684865771726083859953497765398644221690689366164077073241191982053257017102559639129072476545263382942288195827284738539232845136949737242005178423872699119069705603310622842624570177935378027175315596227781685789539092317131766693649394005495659794291733762698995776235945351463363305097957661101511606843216702730774558237269959243711618713609472713674910785731570611735853756666928197474186272133273678316337428236707014961713677089757021954792701702325614765877585529290130220678653751942584054511194862124833212184284375168179128089790557973485724501224683921974614905450597444427200286294464177494803225072130250365830616103236020005509635120763050562566068601933306068540540829402585957453420405050909847146437729813335120619404059016457040379206299182513995176886442695398668429159815499287268467933524411341591136020783965600933673874416992933895913366727814999059505278309149857978088874820651182440079666910456039671026157921195486490347701631438925757463921933641577546734439520271542059853619188251946553173752003060727316943145306642011810827599334927639169335939219632477708389110367812315820933276561744276951750203204245326155648278185051846728631461078724018419989865314810125855423174155320573680260180597810940533398961791362960417577732608503480616976140316884971580065538321659399199088895317184276720689954858770615463634270654041121851094740059010308404916021619063587813529658589134119934632973761675860086276859946043506024283773520491508009336032647395301782500449347385682314701538106341104416704408302511789002918519653281771145401412680685326124805107597547770514875946671469450668790589826808189722101664279552742771110029637475382243347860498970185954358620619964197279218417626500021207041890608211485249532831795645983517694474175857657394158473706380843757664040255828153485148877501311991385244896526570255899549032478125493840906049124879423631383479027416572369971290995676422117862766770968362631729283562141552781926490878495810450317719060244121399510817112559699332946862110607737749078220132681134617073947653499384573023973366322787296024987164078513987929052795077708654543724570726798725229818384567868143172172068718608032694984629165034841551874623719260219717010282794564650425957591520335588948145335598176947064721653895505565478553381731884905171519229722552059874948563288493767869012925190307738296291413454217628066550031454335266647735413690076376652215480898084148747013269372272405575287387100015221021761736442371705535251390153390665216951586836583715085150525131056045932407155239371595870161452200343928338545128952348732827343249948909396715034618722052828288645874957053925258010906525037363417746333497331361390852979486441113470155387299026136278972730256812285787538042042539885359963412485005255573560065850042363653985162068268280261272193871699237600627426551003399291612845122796679928469894908354636023819341793876744934659085590961890856787669758294222923816814740232460610804056088981328401744864825988912121709242539573200293073322635279469930322386589624874268339082539944777373337806658430546535943022421371048252564940087211395674339417015362266159317690278447977938311058751550805299851179584675207292659025415848772619454253158988151261380559918603371670200851067007143335766253355131240943629820643595044447692305105711285836694835482088971207662613265255035218937875228695591408852266437088459934455867527939791164495973359267941734723041776731885727004134572303102987665108443874242974644760518902655984771309905853491969035232911845028887068174493158047095721252328731071278100027269966767412717689616428705919528769772203906157565651890184818581764628133131080985443356263967081085839228506572930325760127841389003957791624524388067163654677848643827381155638185405150697513819193971705093879755518946210408989978215652357799377313150824649833926554801091158293104399128584890801817835143266251670025027598403275288728157807700366114944124325713157592395458004121115513842829098529979217008407617259642120051194339982997384136911739539029535398138285234761788643340405306856871180430939145203971879914335685138711529308835355561013935617875079970675764298289159007084018046919868571185390356198957507423046220786815588991192029711125752645820695947397097801943882892968387195661250882990290397273920367769046561817723372679124188082334610400674651373995506715512380212462338496024459466090117568405406116614422951270537746811952131676737614526904512126233808768526650284699396970100213155533796493298378973265013463066226786445836823957932108178146277480190718238389279750553700808046272829825898754914764018443329428354385493556752680842492934869010845512127540883794455588353584647268695604087382023257480770543955975301251486110249735402383542266301015470278146964977638838980361996212396860465159824667466923993952467077860957506106496747930791340810447824238734545912674642041635140135791002684712802857908035282539463785863870366299076880881095888948861111667287600796893382267200285528643610559237336528952934618062052641983779590868174791188778726752782572156801009732387952454171053210795509597253003341571420988358651203864766991898446020198154152422534468596424813534599917796544265011167930817192064018097525407731986898726528896786958575390336685449372192069880276315012928350457060297057372197962011138625472695867652411581699252673984083912521195236409480094353861719364219418922549465725805545437619467202967361404011045816259285155110278848115564067412705833533997215985409102509542043436620622982511444362889602733000640038365519504370904039359808481265694682378631334247222997976619263318539862567058163773247709408043971531061083684142399403152928030660097825501947590388912944529802777926635339285336476110430903629723593483825569173850901100424179419211655564645523416401140733180272857225439732509518566994929295926494212122170286586711866926958594621335067188854992146912071793747149008455832776435811062103809149965472456272169436504720112594469972076956912742893186067904195028521196540483187933529902710903842036224551747873023321880568775494537403802892605708860975958906958370700718476265041442903126060068691751805168306832459646027354046947628125624874491616384004753722089463308350423891835873435266512340202284533653347550555818890036493612759254085593993477854951777844624615267415814233689715072433815532155524608671569721640790379183949152484540428767969246312028707520912468140514697168415422725020338318963117938743926049552144908920965907928855474131156674633829205944111622141219647057121280161695987327851121782249353506458891486933325890642191511364426182978474304791587249172925815461403845459652734850819803045913347510257703387474769386494949123964075453929829696817823549199550363174396569490022835029192540180292489538437608102452001475815202303583004880175904934913877358128698630230394730421850311262787967508085987183439997752613147877418080665665847870203446977211395831432189308071346942912912367073282855497598778336209268704050918851712955948840616682284544317217100071901112291413935203813390553501218772200147052229656173003717951978875204058953681010755098408076302305195988309580011222835779848703505962636570505340449489886971423589518263503666016699256242923502641531617334456255794582576844968711347763873079970560383569326760837663385960141231845282890369692512828688054500622293582783713631302889570317510964939423733253075904524240082566867541516802291192319572247591784265460015370465234720004109704007931050913572810647895156221567051475110537513086666803865408530054577956451327437660253763820855008170142864456521008914471251537950119531600743585459660684018243850407425301823491293915784196437628358685340959120476322998498301882605671447115001670455341584245429328083922234408406556915844422450368318819343663554292315359349902690042549214240530849139734378753593840941723853426968227072405532280368252681433742789563940590188724585847298544894948496364207989145797049256861070883390900614672466725498784748703568492423460717940716197158460030762382003679140178929283665048729232760835867860118341366679098333556815223282848428469936567284635943812175946986453134719043194754540961426416589180404032873776933525433214515887121757203921299219343948150908977397863507910393111406195894572248223724761058514276599501675252321439657158609967908934957394573370472087867610946163758917868726183136357549011783423085796741785580032249131447566800510721274438315971584984376311091435970256804335666597498108056703669277308658058506077818963442244716190072959046351450991968732361235077935769777110421905161329006289416560508343018960188812385919003853551941225110912193455492932587880093939181044313252290890846122356373623172070951741632834415738892376829669954702565546646770747308229204084878358460301753747509721748802014466433838725362739634320998459645416271979732721280013420067397480738301765357479846686619323466415774248183838806921116298661323092746214157553202082727829644273609120921002919484655176332415216677239853812909359527070994253731442740536118893955011227762146018558665296738963044245016802390552953184167931337048548548073083006821310847950854665415310376380206666025062380690712164894115248061228345465087426580964383022323011449108992943584542687738296751678928127265898151727736384713278513126944575125750882239703405387039743069752305732050638841711238725695898198598706987016230070099329640185815857000500506995796725429093957856844099859878097618736455783034222843800818133345522893800639753326170977476609591307095342690118612143771883237746483179288001159133046921344856821359166742127658894259463772966312184516382767119145009572280286984832778211540990565337966868276802602457837147975164274226035069366219456142205359123224571880377212214989654629078746651968806542285341261596188619039668878622578517350252357140534650830740688090715372095936820154417694474215615983445788847213346598326612757137153570842502587420579179906743529852733107601456653732941634440103190522423973872411547307607525783419392390922820726645265697981251481802293862753809847661622357881854804535109661243519572821072574725559924684142890595604393827451862463923217745955998231830575029314564607535014786951330740955332559114552895172274358855483284564369252560311119366372137091699184603476461876664353665755600022731207349246024250096818108880355121413450095652046403670231514636997574623305058201300783620787340454440581442776533514503336826304970243454929296718363847713120932467953542442628298801682764154670433755371307640595579780722091921962322573169837634856859100211743425370872859815659073146784323252786009288856308826004060207174090038804303044707605153836474023805978918972425131030075611901064445660734175221276166841986957079561502718352258125056706419699938260323869212053595401350305236098129940845839923438526950548109052387727916649477808222505215423318512706268050690865479076147442591783772129723304034578900594169773517257119342185005084253305584608570543990129435841066174314169006127369206527986896221733447177258709217844589136382137654564081308459290551806998480893137134499570291591770400204365897286387127541815547905295364945910155448728277124558551184036448696893848125486807477309312596985421805711496037860791802462867661514667955139603335262901408969955891778425656892625057702632809737497127902928605642398797030394964664798122750064252774319971922618998901985660772649886635082009844535616565614006218551938252588947345606752496054087784953909634995277232953250699564997298488129365478017323263100583745695393763508542593309567853457012870697994277512795345707987542983308456299437850309665579486527134161101459585433407656758226504849304910201131228337867492641170213926982511690930183139186364720704895529758851432611192038970225832361019772535125019275021549558464221604226388807916081804998513907895040568719779306361340338205063054620523242396825626173190321871374971681737305709462859764107778552863126937047124662092695340457756602625011289809420309275414552304638490810734212354023330265890586830168736192438817575283650952047471550253783991676503476939722965497782427600994944723427958512844916623467331167063173961757252599603153357096159463609604953565949652738005609439858765748099637247461830458564192118744798837908736447577909781884133742773918808470229573853641336855855996037668635415911615060715851900131645647880493394211557769332433352539439518419190564533587853040948506774558487064468352838392316730710450710527838080169417178069825382377839254829961613826146794457626168411597777664127343513880090371436306226380389186133043105819653958965627803752513237968210394431714857572444778832492856352156823795594145846491494034009774033558455972024869069450684404664674661206273023383654132950502185797678796897075417229137277717745413452074546316229800580866907861473178406098085419627795135310887674331385328654191497694192574260860584393779050382688115754469775594446470876148663582612175921984094496334098814015268331631169303938420300900579082843804746083818687036724527459294249090434176230471801660251832996362108105575045326262376004115628838016204824723230418723678919165932397645129545052765452764863408692998972946681368716362914493230342370569928336766115728674338461830104623512181005930004904845865942579508011263534982668756855321454210328429445152318959574277865856428956891405064796961686660300430585079725351828812086303439515896024352346969898949160143637782455905948360565554341412779646596959615945610634273883677529803686591325371366221494548137721768641423673527757316404200384330108933508543434503948015309929965220441263017002611535164936970833601894535802431128618623752404282658787767847543118231683239204944544419226959456834231110979574600417037094373897775611828496406886733546128014531767748232311377763821140484096041160566868264873486996137792677359629235790314634963513462288166922617391177951635891310678475312743188209010551543533893802407725540995662609983244620749827107152795909877816806543823240800505842247517155607917018060004019927789989991353014263256070845182418000146055342412576931704234217180594769183007367090273185168034379774096405221899863981758219656939646164484483608866548078891747276360927370927985645722873039936050050997471624236429549824953705455971663713375685988221376345110813161152761475501543661408211268945476059144108816592751405531219218071602373721296296116998899777750827421552124401163677541191622045526518887501340182466659634227923912137221407292273291001033302708800245941645284000508882062437153509800824848822195630488270967740434231133044212923698516659293784416148990598799596845920792502889856910329214016956414457527733219308840140497763040518832895566262522995839914215674308102659035219764140898669475993527258848244095407142112476441762227047367514381041683682886775141278356110763678279011212699347189524568374328327311517875665365589844308785749219154556235564902823791228201558320167149800127790351264003102884351973693281564377757114069419499334093959370221992790238827715542550811185320954302712489282305046714260547018929848011192485950277391362037238562498926581414034789203622276791221258151836858191556474420287788346897728632072449203923928588607266799496864924104670097717463638499922796693422356043226406995580258158631220788444426082131244217156839676888087832531525530301227754863373990686826974734671383502162347392674247784716303857750345590394871194906376838840081224292349535902003379558237559989044080572904004618008772731879430556302298993267768551968289262072362166371764113522331758586997730913943841795194934274144162933493585068955476811337356992982834440716036847345296117969897818350583570314159678953620600014672884117684184006635409165403058098363160074366805647902683268059807753386617638430356359332140692750061948014625846626907797628526773397514895541404205803910712419533820933672031591300197960130185260332361030539636199239007094357644542964926504657851168026492364403388315906229711367003636522264964372111885586366706970861048613531756976371416204445013788567882366153012961662820915972808321627697191633490228983456701672804536606508224057241448492734398449957738920714639203792243814987152838051798574143403745477137298935775102768814298361807719549241024077553418891456357210610279760640699581603855793664217358192350857737697731632661481674178844218000110635170794549407112038817113570481055492973364291054700695339770452420803539633296366654041505174811457544000997205578180140019813738234844459287247384070467235516086544322365542840705866722469090262229159742194373974252662916652278645125780490339022711412441333020448893633975528876003799470836289501790014271115684264356812074643320449374796463554895486620692173278035647648159026612342027403274947443891149394222370309379455148852536737027002771887192617525093222609633772975155423525147654820329522387304487548363680051457866516699499015837941339581624848905567529736413582798887368652533201946255462312983938444738846200913337027423547662339977529526796037185084532394521864402924015037727123323696878384231659241452372769519147774793405000013833351060231599833673894397128832952100166924486933958485115926960526800349091543145764015017361743417998172872211483336873296352798259506083181256293710105045052324047061628984921801068596924028775712537925705192160397429871767431515755643991582159095471925921495836752657536082047076933050270214920741758050445147867307264827832493761080775770325320435329927537161165551564187174016068534350978440349486210474260127513660364066592665294420939445319606850915199371899768078944770046325200485549319158679776478880040995492078326963734167667564856019918853236609570489990865678975666103496777158876031963984971053565036925178604009499223322685925610120150981482911481733249723652940484115489132715001679436152839439818118211574871638466808965161290928892285526837226342254257557639267809835348225920987346430304024842923567188426218041080837036716041446219922799944096431616666411451197262260452528293996848913548463886122940982638386428543057837866003090306584065217914712030802472077595606231476019135816612516552631191460776417264912331041203242075953112181971947328328522122213856040033629011031072809814126709905850421158451627458519779974085404576852919764969889573911330417511245820618181429408007705748186945274646356023202092049001751254606570461809595906893583290048472134415391942348069032838644860295720588973948543005656928687863825358321169755028032923100963349622273157130812339854569877404077549407017044445601870085865485661534286706065564784203454842367198997574766062848562431254370512978247013526554420396721395770916268412055984479591114635647471885697626955799517612207617574055853456577245171721498322394574368714029193137599330264975549177008955458403387861304189759739918980742276706257229801689834723109869096102078429305301142657294860939147479951690917865882813300411361518508571452020948908845374641188545797561130769167130967472835406945818240816580955519831218465204023090754544216828274427465243562116294328078550619369537833060133393692668568514155333189403140857359349089146108244741454117136066831498668286764956113168914382040236154188778203458465956352549304740049385601107252268484655477149117596718154870848690969981365951575351711403520891452228671011444492547078278441728543112573863040711158540242765380233722824712163086254730379741325243743161737533187464513327575726065953845879468714351335978299870746255153090892905563061192239756612552637414682029979126378038178108442351847226174325230483723146772883203689434614995679233997483333342706350151910087624648113962432103000661412980263234442989770008679931990951333285058728103941373684313139488132281889669781763768039829296306609973038457406565033091571395749807469470014199914274821601727175108900575800486565976941082827978375085199950406941736327231515754607183294945958057225653638999744174094738981206115408015247645965966835293299148708398298115155689193694910645420953700572346832211743625582635112915770582770315768454253096247817685846422183369442672085307934955118052574683340815889945857886475488571786642527929282178402744251008020527046772563748826728038006130188547097110906629579860701787314251324841285960390108339724765580414363709819920063175003235429854010133214312734138980036633257371709842131405652446005276999061683900504695271647286884310184127066815094401969943266425651664986100346080115944524686502983915624570302971278473148384687352994971291298236871495388167431407823096138721211835337112118936938999275989718019321856205998866039885061077252140557596094923374729777961173905219236410504767859771984013210500470759942863967585469148673189375537443279864629569229678188380751994057875245084479235279045293136244191072477752351620104059745590453485195798897533851109216515432147392082601166737305332817911066078085751252868769357657592105118466716834553103954977537287842495468568778558898269847374463492725382091905123510095125685142461175421239346204697989896004633173375397643116138134193212752873940180872962927977498237726469762633690019126244589941779823059629576003542094253721832435482536644978657114305756551810678493052733263332424003411142017317670879788300615627112128950707061522514595391113850315644896529789692012536298006739301772156533778947973224551603330307280146017837426678947964520609883146533499499632396993556897321153479337358643557121557978989979589933027556161686387927198188501353896353875392026475351070773832440985937791364731348104723363289609596143559705497049913259575319343739667605006537958051130600764069806429919293101689383114453522316650133938331966336578606728505091160284232235322830095932732189955959949418778126047939546687369509705630999155922516849984615122674487811249138124717813159516737876162029555327511592537009710083446973974502297978874559454422590176557895527664823355713907482550494001569224508821063268779840008129577730379391229257444310954327263606135297765842119853252540949006343947279176083835691071479130311022121235973714244995884092466876797702872156450451374774886411963335234114177688343154981691359001450277596046967604854590531771375423277027146035045485608201165720146767451433481438420494737946234506970357273530315147596273459789887257204600877467485577740288416520417078747560345530963470848139179592231944480097772078913212091094133373187930219829253948663178377220865066016044270700068291644983194836875553633035136748779520320628136877701279914385741877663425813342849021824141073362940370202613513696896294961321414979069330099701748874918766263741786341290623356496986779641680911156820416175535995669768338422726144353216360805425497696878175757846902285858605308794931751192857315981833350342965823598454090421551599151926457119324583072412023451275809893206015605362617980084291817372014410030871485651600466346077109031392918468358787924131593120962908521906599361464462826705237774958819965533473621989861257077190278032362650804787948267019723287646160330981713622564056980684803198656706508958124893975269832681985648998917341575815384780407733126533779990722038108241440141549129925733509216958997985565215587960629358769058053118398647934309167746447571464026122139014566241194065037799338112352237917506680866763654499882910636157520242789772163836798651508836117504957079733326685808133800035115708650089163182091552887060474256403268762858933289702516199041098544243557113099812044506241593022707571105909229151877944562354563256909956528577174400176047447283977075495348064016804406077668882032999370106814469356705716439186049574521109578542002735102569566097174949897225760061097900666197241867524795166060310765766436218465013928419264375936151729421994579150429210919508788409440686045241029924406045692388378075381175287208205229400100860988491476911649856381126290932319559008859909451710597454299965693843790993698884439298553910699524727738327886824692440674107192977472802774017269132802225451381666802092172435310998056124269646260503861471723917860636459757979344673196584328239851996961423386000776544241332979458187892592021476239877716268284042734152085847876829027430763512749304427750095648398824833085834132455720514832469543792729673825554160709130769169371210716600853914471059964853370395935990516758738930490855615361051093465615107619583463054546034152265510848263264356631105309738471840774057788190518068248572399000124567146649607546361101112660110807716027150001996522382477873055837028915363712204120938256340025033707099720751615211505721427690111222153103989649765278740128279948179444944903062992421057400973514101467019399917389758215512415230752041212832132744166034228749402490827828402397824706264204142650796180141793952016084317911969659447773871196971466870021165236850744581038811576426253732623131063661186144515753390873250747632244386073630620380945891836781781628973630647207279939156485078245440901727548744986430421274592834532776335998299498075863465135070032198973268787406254119567697311727424154054787449286879746948728882233117112359922701705446513130227283520340153261893546973689413698177517224331915330256399309958801863582586484821861015721286498751928944490153891584488601714909491799092872969284190278741970139486913144790473008670011223744146313223285377150488966537071012611763340524953162913648480924777450674882437051384564177916371563783417838161417631092311940989030771182585864185372272822113606151116515915286950703508436940756462777504720337815639178730417020743652232565741424319941109700011985894805645130468477279974831307286491023804107845825464840775508898326221025187774114385896351672215821237178918520204879986012773318620358697277194512991556926757929003334083908168075961101801757758292277452583529707847740047751283651992126759854741145535173218308125249235842828487332691833908728757053408958524206605743948286512949149461946483015577781957662086077702929249024486142269967861129125542456332432807579257427767257533775306576862363641834793824139949079722600586533706357666790538422560944753522535145607620918959422018181490140346632379203344216291558875761301462622521312131714437833996622206731439706733868412131281230437378382018941950605892037372818977714731473902425597116824370299744163533350064248943774395301914599218231596132555632648373075126890969013023087136383890216937020028714610332564779366465666377745361151900282368587141315062684325003235334373281300444768271021545093849584307750270083869470860394390516235592583471859595236227897993365250165394487223001416296673967107303379484415678927964702079824184578957558854252943309365709951763340091793053908064545571321674458671549783553602610460469477326122392277734458928986071584442001804930767894413091034651025066942124877886908504242807089878264693776330866142288608155506952905118735225417258232029760171901266794131282154274798159058881315510889005215212554782784446021595388971764354663434110984461985318494193945183891521173752110568991418267000884193869121588757090384388588410216932186528726551186438647499700353816562404626711810849322312841364482444939079237561964220256962585207146621696981534460808194970701681658653177025337706343300629905105238553681958069874753039682752377314124045121449252719916672389353277695832757884926138344271709000863383778777962543097648444140302267529641721632778123241079229493621164137968523721364194786885864652476884611881970238083137350602115385295126296547044625650438131969202582547106985378052269041207170196604051724835800715287830239940635822070078879701670166198914911440447283167387518667690687910622970507007965974009274065449087791935839411387174683441956061373117840236612334115729080444131817508012326008714905292384108364778464200931557444752428047018211440158427558898372226329621846977197809584962913714670363974852223327876795806440882465676825886768026775362805222057788806844480113769102161916118164245474640633699923518268270226014543266525723792612287678207380639903797883700029220963431806860675049002965699836394677151254854560485581883411762489397573695356609989905437020859101821085856042456260674826955069921711418919516220430811295299540312274044947757159060227991777832778579608570766762136979652425698416683766026183383809297449264835293990271607751009716578194110167598772509532399251266057892063946627793466932372908959257173675938815557808707793195728727721613022600600901260442830397884682673052550293061162247576169826720370998349015214382979123304274373292286136355891049083052388169035847350310953420990686838825763062967895808890187421564942563195205806362332150293371551050939347689081852832991620122765678074626046153060198760105075761936959282063277036669068037066041243887503791426526829162389206261083580973008112105634120251895618494269715753950495695997849258202807791271091441892382890390209619755888745752747472819337899078676867915181644119708673544399421307100879620693030743034551740656720982534920147827150609776493258316546206306910175271637282034569664247756146382926529224282411629859775754378644091211642365728379295466418104964215650460725776543022100808143882665538674770489709864607141276340459246323788736214809524810972021426432699979236721427637905198426552430322621178275629221836563170647863998444959064669706879242173268692062751325285138328698149267079008339947524293048902691207501712719230048414920880848051246801671881281999279433312681401352562450292725630971932269640897725039238407780635258886187214300705773621369035185116208789322795119893714589137065294755080053891422183158027842459828028878844074771088522356878046503486817205193743428079762523029850760323959936252557044953588135780567668468746062945560196566749068414381663569055577378763893721114333005954383721880980310431942002924671010386626044710478619853402523905278351147228321811827640581667252397052936048407399689215688911377588617615643214782917013348910679675794816134943789190460659215006125743220027369415423215596636707713471476322228806287753153963755016585926454921407131282288579254392656568155010712658521824329199125344700434214069505017232063940380088108672079308443591875851460865713850454205753807049131037096180924900456905496540634888661442519356362768450138279982410560099666904403404675824155783066254246611916088322401797836717471313519985578299515477332276680122623383117730082990813971133394871807634226257136399279669609191009709656206750827824288076931958634265300119499636347342948968058864984007840384781015399308632316632930130954641963690644942319543007149908253419173596902294310659415351983961555035881760280582339438944042952502386983601045672043630856227311600844745086259319450315675271872122397059520355575829461086489934736473513926677478520924774707777058624639422721183157895065407698738643040321751669549633957976728785386720510676179154404343623715869997220763052151467539560187408850155175954587583231737457972476982123620866273983287565462271947512122872175937308229137340281316165868577212455017908459414710900650668189828884684100066392824418439962077278600651648833464481807622243427456301746722842609385982072064563674355454558390445981693792058124771037892168316261385141842627108199813478269701192657692712063330184873418653415865204734986921641141166041583021810884206287796357100851966623914081542941685971987616530079024555827189088817086878981847893440896174175460292132233893015137557052335202709199820029819152133406001811825798537723066076619465799365702041987869829519337752392232270655902240930204350382432311454402252717542544885657878896123471561572085513146887121807521894345347910180509503049788844121624876089363765343861025346909824599386991108691916464997918375176359178108332297324943734247594744520197369893503845431650191219974990467473098700115408580708492376261598468745851774460971405974216178668581712179925198840560529747129658987405736848161972813726383022965042608914756612451135606625608732585968276377929184068795819173102304502079390728393776766607816294370851182578128124509017898612041304673883208852772351902007715214842119753619057454168959259238691236224401127565971071208003887379139058850022421861724356983942050671392477849247612426529980813593993024594477968418760502138534749467464293220445243163008773130316183030234212346523057572853241070552980488112252927750555950359471473754726782520518530501845304702461174945531284488720157294462758772080579610338240110145882654496241656319649183499776462059459861967866508504717678643858913760118478546012835925696524397257999606895556816796182258236470915328166740192116116814559121935262648043156873931396417503929557763893424122684488823464149942256535507306589551623263343249454327344404112391557530266827212727450827197321566365270219416020916034924517580897217512198149373530573247467207462690543138547858518573048722539379181364883645510349711365640280914239778055081549054697148353869437357516217211538588864781854074460316734616253870459479346205382157239528689919870153998555868614690142263358200024152851474005097549221779795264948463488431859276820105456874277951858114017818838322838988266351989960415214823425711205105984048984726375369611536899141494079057764106398590851440185441130223218514870504225529046271241406404086216464246498505961614049530598951394845803057797714658922201179201390473794973378628207836395538882342015730004358089840442659264454645796729276336347280604091256785223298665421846711086698132496739131597797450085764920935555957646178794670238770625334759875688619398896991877977112833193073068462069373669151573676596999808228647151059058860372209308942081041767181721631040894710725844117720362400929895042054413488322707566310000989342756863015037761470943153055152047675442737691460450297010092545012615244254818940091663348343214508333484867941812354284591180941888824348991468078658340174373078899014094057138179617578207752554730271067563524454027748043507714216106211056836495700443576841102337076332201769866491055051810069400311437426230694562151395988784183735210257120362896476010018798342329363239775463121578933312828858780882323342401348296478425733439846481083388382851865948541781257538347338269828636093497709627430380644838438674707920705293575889103036956019670793701404943427386930413512072330242531490988514256835991629451245554961397555458534171701188522329229318353758835193628512155169549320357592881447781752246613387523774033651908492730317828164078355129401759124739618596978405339123123002458509301557749460946259922558028841322566318400233019249126322843008923686702372277888009717312576871635460236837733132400307001672104732201907775377879928638383394345023806490854813491066961374908281264666873292406450445257679195740205429186127946052020553985815917138209204392402859791616775285876090477074005375974365631662817788771457412718708531221661332366044316446652226306782860326059637921976814791692379286617593751111666291082558828817751103010278784438763794529979787005826410582938531956960774629559434300405287630915258065449195845111560000855173665387305452889053828762063834373932428041047619627115646977855919637221610235708518401322475293957276617564474537427298914437748371610655225017274287410836167428195469335752515109204355861721979946642551234142499268619145704652007802612853100441105839889290226522027943052473274197123757577549358152905893266413077046476996105824137982570842526076504461469245184895891449273768197586132582242249482443367187975909653004133258170442034536604618899750298295133533869003334982097232852284730999683493535353272338349251141976824777337592081147153597234434204048255310607716268743924998657164690020264344339478487973198685337357522198363506133320460215178184368696872330941518414379987541282265550128064025763678723169118890582676125271717323080839643562376003159216503641983188651898789115179396466155823779749888336923104213801107810638689623506530869013439071112327189650939648144922202994553422152522271224807796882202341834852844050216826270809674416056263385272401951999640336829379324294398487091083428667796172251347032883959450533129083273866877389451381195908139403089358907304481068354156577924498838834030044542392414767528240399423606567575835070004519940089886172763367458197470740707611186791211915997921866057601180561533432727723666349031671630807967767045373249264694391983036621287205929774942321227621643951807738414611975556673057575793754060849289301622568580762256001139450547876785815629850068408403429140024881413655318884577529919735770650914485857941456780301039069305356562280653838361223482327285739842569373368556365473257170071308936561712305528615153356195554046231187046472166628544696798434022612475695581981245019614382841763867547677090920530891162294605486289047213731233657058666109825295688663303378562625025228303733956697092272428842468196297455753510090011953101212493861284215602219950686339673082667544087396500369934537864176640922266725790652518996712568953496058705753227650246621549157451309885275016110463645311305104799615783156022078092600689160702058128131572680364900407178120828487952341164846101727502310281403201987640609703507775245012331463413201973261721595403047537053928728981281468969056882144398905222186728628201241448998360672957707694059493042441901226041849218168537802098470606185170791390119004993304794321610119666376218880217473010251848871468483158868701233986116155463810387547897917534619662249609325278532846853760108304904796980749139713885641879049863755434765196406730781549046074150176239441000839331624351037762233666029034664759756102889132399973252077412847308736176696845187303242562466677207917875724951159571176372817248213718197225903525879706341908649058802477983314262452740953677559955893933911712286523822101656794839702694081179046919560438397316341462739985779526577328627528119831476721165330864827105559394628537237753055284228634873540817766907711560014437290625362294900504287364466195330368670243548253707372052344291507416583526319614559642338700844154669251870391049151582260551277600835616399999503543373385036708787359139315288549395918183762863713875478342913646883593080430225929875326880325587107988263421091232504339976400436781282902957791453046958574767428162559133311594003003987559175393779691057230172343903730712043388722918213714587150881899034652014395699708559408689060205980211391327619678652410687358237913756255635746766763563239019692939009041286983603849958190080492534979800011059645316021995880951010117914729161590041853028159483436591577710114055394022825788251331002528075743028989256856439364901160244984967697631065689242837976990736638482998999285846418209471764110716591945095854545777418113348214912982152918471190205565297477402504097166671000071154877344174341443611657023466041413653009481334224926816823393923718133340141054650478602857869914093364424595365273316997847384468446410278725601143576475234023599881148492746341061050060503987243402146807730414235426201520635919324687480998576930520025275036514676612559377959284026851843901579735815215859466190944050970830088768818423217801860988376282339183128678735061707770412854899057131088859477851651301877978497768889382074967304788844596747915913860326982820742377080809714901619616123025980435907986629201939870494849214348885253383758009342342497313820580367258453465176906607378744642090412794133271396285070184925910011827890206686005004824762475184809665375372273022163386723215941938933687490581081596519684524603378694754251804973205802016602230727621618317851906906461881905975371785686518304902110140473216731981252726391640999891299913414691422265941729176604727021842142232000807686343677216471675704447805484290590927008850999477910059359481055510539874680492295591125881280368597606940538171902465705069071124409108187074554877833929192525414206283225822866473703906197580309435068595227437498514646462702380379836334120755372607296870665708455420038599025382483600703998361541685168260375791475326604633949054463854930279067156482197459831315966033352739456807846091857345241403839708859499160249080325746891316233410805385909574132210232224443131961645389414672710420861072740685903133180338029380970198071718046575458081080711878161235939974531414599505115221542979573151790391238113976535122768248559568746924805683652620640846086876138761447233305947068092492112506441889571698300034972173414053894441329659451687668218699141803674641096544957605316521750794865371405104755594637054875749672696296507043705871598356944818202314598367830591310910960698010313199292950667607976243302623177837363057537765396096285972508850629881126940441978634691524540332543703678942553047323155626583905735039940945416027784114224772431275643972106845790840974556819747566681192337349833250182998622249870181857495533016176509664161685713510321754854731113756711869517062364958188286467696792119299826416300559279542211316834647976655374354492687376581773761523455753261672177597736576442333308144465629316440596158729089802331299873846114235869735553454351980211775272458125139695599415102876971294842942051752737152386117303199753338571098881003960798665765820015158526567382551317734938714909610541633099327528498147857679870866233927157935534260327453693369889103429313803104412949467827409735166713788566643388708183812173972422229091523175611245252973855009365180941251014792244598454558298230281556519676348364433125202708886163094023510454662283325415233127419737346737531886427497926544165134410331789197866692993853492803486708042977401305736323023378756386099819395949950599406770981356933751907986698529409500344978276204820985880657645572108450892117732183832857786226854183342758025115621438888713004850687544481377898844914775718306018264184300690054912872288277165527122852377790485102760694611843951257417406954437370147267596304284665229073789885230390839899174728826091856254863409824328799236255720534240188238151936953903141784299752596386631080342899432148218795027371208226279113795352960791280379681231410249851147789601506643703117836938658035345438859038087304495631639191181990670160249976740955148365998703513255333206543425090928394031653727665368215939959477284441996255300782286660183109559312848516097903254616197308418888221232330317850372344703686903690373338366528441389329138685535356039555026225573714880078814097078308844651692517073801533710074435403940358293570798256768947358973723702259616923009688193626287239667958611217419028596110139678809458487471632715728395470802815725071739454910173454318854879705424845530665590622139767389430956557422801800357491390787920367784187023451923012960008886589056028487848805962934027789271307882234449871763885827483470425910982233581449946622187545994781911230661008617825945208268098959489674332605244070492641225308857106122890363829543757213942604011807026246694931937995213144467954503699199138920666410187229414211341165613885464315017297001884649950946070455554585114736349623558019981717236014346887907545899695054971712412021811879203545912113553033180346796216610225613420365446555791235346360484890726677973940962002787666722371481476667929987033565069618537512585647395324425757107350947895247808631409230121532144824162064024893658083364615178630211303698196996908418913583246900782851477903514781572779295397257331530769563667529572102440653176532588934770444858355084325499742755656483542320357929835047704928397153625944592983337337316142720105479216588381380559113435980088400256873783815731013847795701749950730203651640137771738902023269242719267169066386699629420807779527145510912988249035050381570426081139145575144080166470263806814838554130295067340760949182433123193398422375279072546729081107803291171534216372169083173392732717853447369970598673679175613640535202337109754533440071914181087402521801753768528998109977066892287128682129080817730984016849708336157886919748301810975447571513540125768380306078822225611823449941805576472940991671921186159488957626829608098983830754448658915673357094200252359797311846230480363034482494055388830949763445540296838923213195926640928424222470860683128007760281464629859381170451475330269996575364512495388594508344421370213238528904073157807122390481150433297598578006084651042836525635021153971796461585079532381351244268603792862717059894735148365827473885527172421602628743804611151990614085692856038888716492445211188961379801889334679318573892733697534864449142437789732746701580132580141831501961419974832418309440979291946368573979919845559540750352749653303450876588943860342218463053875515495149384296063212721452541690751664074030259363985638848867965211284395716875899532006939245596673522513844785022086649163344935275598133229079976486000983862435964590900619127732174093530057088029443343638568298087149011654868605480348070907218965663442555767204453203965831916718577769144840755207820961834069857576285746193742423047962481701550495270987151918171759116262796311315637851396592533593250080593308849838342798100771987580078160556265534829070474641361307454368607900367351494077332339851752997619266383148937958645822585045906806067313690044684335558218136103067441307164054500589883295997040828546059975583112619203538798607420315967324036880345684360340923654643903543622999399204816532616937441505926669122871582420344799552508651812929279125733276326137699615110970420362871427936992032146719787685769655749882702990990206932031917378764999380965584127576921336952688469055893880097529293516643372955486019841728708386909395084332701998451077467443454577894359298910337469172025280742861033576022218880772882000785553690074247190901424339321634455542596631687659927655331033226328490047917783743759627700101451257507846394549385172478440555365297514753148087429330713990582576359195141200083131270557650865688696487973984038762285273896521503200205081126086385830248354834501984083976509661141028499702545285599216293710167627978642730745984138326380160851207786345621371538141982521413689587330804490618568281648842370700971676282734345195436515007675382555789745352361586140483889087974782873538059560523152936504002741080568691311235903597230203328671950213431327359978728688869695457993629588604197929538173065588630867462488225541844560886577771729797638870477357850410380603773497491269546363527458512341703689100718524627081534250576622918104556559857557351047119472830563128470696981602878229048303000712924645556229320963212427599810208478316112102267367939288753629572731089571709733630328800253110451196925864029640363012905114421471820941789663891259635158279771936822789621085984228180029923580108240367525274757997397166697007312916215781699796722218213597608152090131149318197105359086543701089143764290489057686490099746943904171828843748074923329264520044294299481344496426768089730342358182706141071944242886598251823041263430067226545855943400877567666913912715636435717154897561727851151455893450890006221782804610389731433369745601260626276791212997573428216127273662715319302691524186842653789749821375612757604314935900810715197368541378964642898480327145069997078599964072967439535343734005367731236717442201798661859328992446124463637806982916373336270436756276740691139910180445209436102431795234293442348378066903411739694396381721421675341669453713261306262293525963453074709313480153661157229065137530530588862236753564262722957457768754086800636935747181935599186258087960719578904204896237593464300262380144463376103402239757369608067372490574960253675537119884434369231585804653879475443889632213143086562874173032913634908708821336783846873637069726888760518442250402389674667309222202508723476076011875710893094891234732453362535161055817419057372269574968463691723496820545273134404777896091050784783944383415966164265875082490173255709177250082946458262095398915506883946454164686782245252795159280605942821877931142728887164755423248225923323313582201811963563858189997673382914183687009904404145476236437753374530097464974328082508882469434591815808319460004469104707244922910855586132311173977053327920723650328426910705674233716363617754730548487485746184262487124294264284724305670336195050792039901811565496136003577662995613887618802688482099805721327950242502838526462419356694635058863259252197896584653323550892954545163598592678890101707018327241303011184385360965005117734023963020923861374613651590107966779434861690878844992739990570087482649435146737358486436534768266728423217898343206593844941300521084889917678563503253028927686546065105400695947460659464615088538719897260063769605504219192589141091848475133784751272649808542098931812287367391490470728478168014087432373796360194656217972965447653662128610652445140203055814559712302840506883580681225630251545430100767489545455750431962803885427033230855168566795372691637968262747098463512562958213017889121931123989798115108802430335068800943272894235805782131215380167596536276775657527422467410886142639941566177124458899265586855279140978308565772154837604524958011134890306081654059427605098683562816795017100409710587905902967363884779294965817658929246156706063270029416715355359456480035822453650217278387992395086691978492568426720936657020492956822590897116470628171996205765510718304502584861865175823094051483293826044152043714338587763433463783965208537258187135383885476264324045893596673497947385410359525552893639586437943409280863689661615548750551119736213214371904198825125143128006507683836320625549763184511896255058432967887878059287465022498864929893042699536252362360859449302076480564332892253654548257776480932056974250381324861393700983720824223486517190101759310659266316445783473887488438748547393637083193381754654277350098001302046159095042809370828089006468049274940127424861005713434163702338942430046233524113665922785456632333575129986284880261841236122919594368749762704381553141571678915995063398266336122179453533103020602505240976902519880824971759835425578953705123268046079626899028727908048326019328663021266893942375983358874926367633310655338359955695296633792512290283282352448781912584861453111862917410412906749828895350634042102236864886931711916971727779740287421868882729297158756340183200853575930033947620553469228866455963456709834699020719587337607173992954246660706249464322123875957258886680536601753661542244947994190896091023350528492687892511302744479223149946799759052824631135359769015911670622473940289123973901650625535746059439648305847242158830546520326328070956985342519327583466770247730811502817450291417856869732585930205749971929183742885155256188168667174036199887521552456450455230659219514030174904420022564119559146185788534171589603397982440270127835733834511839659421851023173586233881884112596197748887532522119014799230541602243444179595838296168343577444233465837412516612378496559603540333412242433215365153442181085855938490203884673107431000777281308423840078728742695220352380318670607880161604970014588446029321672224346979032564646203737373667715125426684166148478936570451785368416562708436251640968951177845173640031642336227545272254149536889923165337497274571935750969374953696728176495875679569114007264977767139523244318268473134640618201173243242972835294692526553125944106372431158027410119716587470395385489231168742111087483368930127848816565138710835661487765184325535714838625342741398479435607951625496130748346737529589375161103161027375743186914297000403998639776733728399152258740775690169525259133346682334749489232498302165244496679111531986414608040706927122135301553879659156970919708139275437213358945580501671186051840085902804807986610880675760966336887525670025135669314857566126825585181783697005850515419654500318969113499704630828622003555715721031833339059006479017237993295664909385004617867672982208934666034760053331648219192806281797931740311842312947901812275477422885055336285017220446607481141318310876837065322637851650058731365546718101578623581162270393298564189239773263034657807624241656111172926063595109813899783568153198488434738001581936007096217242183210338587737531264696121797001207724598866385085867607223737789656142440224356038260438275002777783309723766718862980003131196919697752263736719628981055999573079588227051835735584587599288427549188472574755602322673401048622530069523154830968153165687961049787671605265348640414807930235564859089510368228506469366221323324841649867579490065481052469429554085045335617690178938670808458848981408989755966151049091672018091224343832622508755749532207796529429567121824956788483618155414432273902652602342995162808401624290561087457634688043759088918056436557393615677412768180418395070604482481556243542853365877697505351852065938867063243320861921752676116352309476219400571580548677598765748472052320821186882417326161356591091369662278190416480338717272215339707526078461133271655761708270134442266747102774450664566556791102583950076556073122198037829023748665839746767847954790894154245456834743689839294823977981486082589270867856271444708727081822166394331487261776804554830620643735515466066609405835909390929072951197403462919606925346352796753214017753330020458940077144069110236441782968627826934153245771487841046915337728819244810576859476481049155946485586803886864812908090151551520620977751035128700009499481676280556499647298378723849706385423042461621713414735765225853434685222337198384276296664288830872154860490475341154839064334997890545735218643749845449822345630017828134380546877550319512535401554972214476166449910002497850910261920583781746492652647040422191923639714312034372377807188432415730869793900154722895964007240548016367909647351309371196640270679658576080798478720649502392130032252001483348394458137597835213155330231662577917786636371791249074471940183178911318234656777105209380660402158462390393387793144259695856640673645943042910263407824491391059088024941974137825380418383093735994367807935744758494433452655436329258229665825714854497729339669412882924988521848369159886439331358843747492563739710829155700124508929866541984213686847556665540404248167476586110067293333286305294690149609765393200764816663753554733087733441317575531586957871020107989494343483897179402321633702140121550951296610934798072095777368363435304288597307818983667098800352383260601663259534793787511368641365188957706763630431911635399274327759886349742995273830341714229391668121886672466968379722806957511118560518891246067863380912903211741609836807327278422205142889703174500942733286363481226952189926980584889761093541069717790027384969247307728148153107403556558665345381552201940099928362601777849387460317290078986377334639116246290032190904617426988516198583069949528974605104487571272706067221814190267221211191533600985267785525732151322529650069465575361585922353939695600227452374155281871857667638751159654809009994986637380886348931049875038692041365892243348839201815309250044212232747889298056830793693391478136607897650340646250779697117415830265806209546562100886432906743300662534582237315587592290402027075267656743721349525067886009077771496696835938505434870941455844119364442789000353796055685808995702233931856753647611466360238023354376383210257060974728729624498099628074181420873108996598420748475131411617155218592703397408742819813358350947386589824875210901430174345998708212019331510628260584484763560695258906270496274570845647935108307244142127706240663700367109071556540253850117564581609072965624566945019309195004363582440607334636281296360340141459170075212815252063216952602132971555531869649613068692621148277022349835132392311545618434909279692471742039048470779047142964586963019680457012153966837876797981209214581512164667843471835141087345467076033833252929763714934271303404898459754875474515162177061871398591716873870904113229316323167801344100198778364063684001819358951711518140231882338620744669809096033958587774549615434214338767854904171338426410092622889462569209048962672702281242629902090952254113023301779675419114164678543910162729570420462543612044313764244531055797972693372616444531371617396254909268622476435975729900502023438200327098541531521101844252816409724472974433597443444753286632996677289883008498847454361138058041429052809577109697313888565239135558164747557798170560312542728906216243597209913247522289036018949018369062001250923357991694497205865770025621213037083710699818290825825691638964144206073094441642834812732947789420895552275196681195530115306375058158489731899373677414443862215440706778843429045095394329022581268891169623913814242456818266428795145338134494661601305830079127176155945464569014211283022259374500563849487619829087290528008154076342489045456815322178744364613177079525671446212637935274574796781761159043083457534715602476422998179405943110331669209060672078994719074923998089081984753103457729324319114686386184876235636202122045712497574142770787342389339147186792278409926240597963203769554019671855962933423812390166249572290799572762566488123870106205358277284106296515564992068723099499254409982118669233973987267764276184828874639592627382765347720635919173538388508232077948327307387875951090642424456532759584053483228910506335925057601994256855874566109915154803803276871823083407671445881570251323158030106068255799834647736436756652571708133157550102418061476957477070153098448619616676502585696127968730683840495366068673218457078310988229262914195245997111996939846549589468717796421942079128730941375654925576818065792752985906313406759538160839983556863436402749651391612262006115740450914302012161080037264563339806340220262711605541814115633006598888671205163913825896789685084082261994853887360472087520307419650328469610446631679895426859239690869576329979285604837963446495171850425737658374949201117514453914043864023687858374375545604369970223758001935754312658709695331718653086273759453832834499307572102435627356513086209942587018219518966741516766805165224876730117973637908851401344753466872667165021746300496394983449185431152748829746364918365797416423823687291699579472668581572048959949428635207643466615250879897219558963859032756039942462417160024607989908129900252266074323966142219761985372601372234470749912531209174382265159178218442031226096623139807001282463710879729491447670647624361507031332375983768342390265801865260570561990473097611530502634793533645049593443702989001811513044219056192319940884560773068005408280923903121451278151537281755454443309676867988148520155702344477111517923992802613411612293855998243584762862644306177258168385672184905298643629264808950202169860508311064176449260181855667221877399493924931451163743249795590829002728548641178742368523433642130160634673926099727756464591893254370213362972827862681039058868328894615054313330245616564065449651014491103113919341259272870522486912051575170846792785786422757430454759122239057778214267938506873138441191287869411977186894347266746277220248867920050346931639484202086931061770948564946906595642923550017784380565262556278840458673618665752860659721009873938538559816052677177184436840205460966368534619650869487911956635557728289331034849837618542237331072762896250718358682597029829395389667099814069076969152106689886309218954601657260599167975515038078306954519006386877436254635772813565652084135263874929119590211505127818352069107776659699216947256920409532947302624628037283395218963279558531957881839570108734920837610130676532876450723345651301341664258510633081531154978436560654218548050340582092931620931571815660988411693926888611875028882202256167906896327822390990212223803570618872296957528842392478095452381152637634659067908587148873975237657995134213539451635923904981162445213711865529348751298073535694788623343182831479687106774848408141535426015664661909891412153508652938001375785828313922255192975530025969623413952143734811465079341704732593715602090025237213729234791588155712291412952084508311163751844444108168176740844747563053541502377241687419671991910436921294774885301081561238336997547777790923379504017552299736369412409965057534216776686120196116930771252008240361051569677682862639090384293012739793007023379584799004344654192499001200407748690948114092438609472222657086410515466323657045628328769122045038975921286213363156552748940362861770035672494318670993623281247067763352566531877080716241725455163811126427758980934442770662031066052169931490172903121073270798795879013927743232859861396502022087327714634344689178639185986133979869344413482033580353858740118781789705077789335130270184340447274790072413885370551927777758778219506143074311170024272223239216186733641232468443916699790450501917732733433915195322420284162180240447504404941488757101440046252809245854308918707819754748177340847496568765783439656622857122073050961622129112451365099785105460932033238483885919576109526976728158832623488841424252020173265238222777251482893363377153667690182714217989996871658290622175002877715937279087594643665375596177462509588800272038212093884842828955436755140645043769552016769956858194384758465324463327013292973702584003290676261869211717985813148170282236841853755109453927029750353615595451946429706085091802131209342226120677713463187620390157861693029831726960671010407297856793243889884915533268095791877083985522547870425700942616724401307540588272760383944801585002386725491022723879220721984661834705857337541471091102935867926197520939706893246068907332230611440317494753824776878074366500820934367271409422243283075323010992783598626399701389850884764552909462602303355710684362856127002230962434440431666294980362615235507675703364405781081470380904879732077108182597720361474320753797172862766078885262874708885417489086866913303056272491138222599881637904060305734829658975506708324785737001638797188537562612495357457348053435987640369966614238363784861792039037718488729236326830211173833467253676267749810538594273254337752610847349033435976795375891117897356394313947948048407800121004327799698113150055080666869915059006547583175497569172321856010647721280407211803047309555111738967035526496676424184685293245868002046562728484609142169508697732491904620419651778545563544216761177985221610299699861754133771832742283193300752083500376635515025724103291299831084567894470703219286738689996917392828386401381556158911596745174288722587590752488954235945024432604780122326185935588326582034999271840657409475282765340193620497772197747523110080624179648381716247713674167888765690103007336724128858288872167132244230495403992769230455955504055312761064684959770657437767622567066979344002147048388786387955873351476069912391941793085459460757470322590821256471490086460112978950277512643007435908479211817668716622599736464671507930053921017733829554116642175730772092395877973970702083228190298398778749146190028425907358353030974605081509209061582105770023889956183658728916620479331456278963708605534719007080317899482746763409948202977026608549142310861526592518756170118640164679312078510023829304714854282966970073302842428723560330842024314202741209591108033119381141305195785238546860741895572125003992767246841267835927838969564035054621683512544033151419594788315822551981373878464926864983326569860644104683515293506301503824863058411157327021154978733984689297639692414195692537692208773214005126780973961498100300309519237348372262104068909158014049602990130672343519710647143730486413689202303148208472019360543303138283409775676036689755935234483104950650450263577465155865507171443506857893258534132833614968911645979789635293076341890884483634743266119570186481260636600969001086109751213690283313473040238913237330802841271352144223766169740528957083754314149524917562104158847764820244789220602521220533606957003315844832815463902462492984237184942427504781628652821798807135218586218731382601924745697237193678764726920984486708601533409693163889272736964012434549754305852424639806499152132481245865183071620706737492920903418919975649423126383187076788006530162898805081949611088614745057977263738588665715042031704716777542138975417748269550758205403721521482724634094640409673146413638388129075083663120969916200115678993423836189499984298997830529357582949716280958339717560768649118194392532225248330133149699867264162689143591306967730899089471933917310461070012437227920043836045512911069590316444588355217595453258079936863429953758892010407997714198182958607406140032305888696281153640229252605718394061989596949916857598190371586407908131090989038355987965704231382005655970780897826197015150901458701135115249155330016341744289303503696984638110423312986345184527501816840976094794175478705336688088297441841536669915545507714196202927713285384001373966792656380806202730048420311659995503093928101187968065426304649123269825119249309329570708110805906136117573285468560760000283550812416346328732491090823269092024018826410081303374402875607571897026767717657135163136954124546291122287719511156017759277105115438828940557988872727479226095848174449703496647616456421780754926178923017276971648591436729383333354736861862152610141514759702968914620883256269817650866993334505066226445410175422258331013924767455449705752580796744961507991634472329436530838387589140764998566050755036836891137414236027042091731298143977302499628646253976946072375854655518682825104498006535907819235251503395249234676094843713047551553999779253564494136995313064042922159249722169597880108221114794128417474816867798942156047972977359701173570783472076088690013265037635933306628259260343307259310162755731004413616927266307729644275115055440370866037847112704227188414709543123281359757928268339456396498100637141732305637104899500222332822971474377490783158150921732470438361936184703686914556987119674659635509378620368344096693783834767481831420762678314016359068767287159484555535493292892988625104936579360799867496898738446046382201312319417049779939459628537759203720471333044008177769314417288312278062906107299459317983872148868546364082438259842038040065699608915060413865284357528643796076534549738158139549343501926202046704131354282432796413382015133130955930604271999335408461558953413206749999275810642853889478311585229582948307058591400242630607822660528191152639115847423189936658158272674770141159922630769175030381056323488515500750364427810289318596000456998781699741724591688889251376770813593203044553941598400756556328825609380803974788233323171317983775851299979135601511221636913261195562812934917832415360775711778760114364281745117386271125244139619873464764350482010759920609646868343494722036068451613393477176200906905456757593830957857940322495441624424905144915604065839423213057981816319672658777690800064464968713302257367760123943073519885468677702169236143641903192377657152070879683469023867589683814242293298679842575217761710554440581123209043490538846517767848834747137969018497312379490969409006775768319724109800335484495217510313454039364317092512197112363356213617981654402135533955689925501805354538504819783753356229057047463199639944721260210875668187946079436884331179030800083441264740498977017545491822329343759375007073565763396765177231703522094538670369525291155526264188174169540329025007791458967234642525847732664936909582020296002746543177495747747472874867164510761181691443844327492307119229648610888014833624976610671597053077003168559033718953592495611373757365173779634794364616547148701740426141390421097429531948334060974141210041083870128492205019340666028830665622692289647099160006227885754451960289736007942449472552575155400929924622918436481473778744975572403962536597291035984106343771457831240230116014540360960460554925981571999220617517654728814407599778812724940994887348584317766594545595768589394223502790042267585593286869941919698139836758013459859956986086816378550073990516681621118733960327848817253205390344891683891188364880159375965049058350821487531776163162983144822387124130000333925167738900313920589601424824355598560089115002183564629711585784824109794971879065347354932116218267193369712514191378525701030272116440577560861352313856473080177315187951289658030935211101641440042564371636782312050638719691964271193349801483294803331115225090632818929685770323174783534963198053786685180188674805354089808671177479702851176983479148572850516288651967088987509028791670396145841447121616360705397650232206971713859087656581235046752768821642519825717481877147881769661837371070038056355274315655439711563224539943608268728222920444495337552095133630912124038433946785375788688048524093213618351060866164854431486602765552119738418206366413502752798658701797850348671687784385616952992709715542052044420342108825200329941757981451053242773400582801185229112853988393383153114686832110963015466669589645265012379401969050257946635807765395406545518625359933635372138753609140594963193828206354367811439061969467285286558562951761486990117726991909338111316182975087549711766324554084845351131140133753608113137413225404550208135515252969382092493152763695184370155584025421720569061224084535663802222783831223311729914170798480283849039396946054766469433346718447218495649575067484803933677403755224924814755296807052325503007833371983334711923479191512532799068439716768255210620152178259726495901911511627283485491292448349447782822228664142360539686906649734464954787023113979653026688439508563792249818143222954808186156316195450329449012785737428736792181767402177734697845259731311230225862258045123000396340095044741836588149507606090362030900145489947908975114323322946112842559815330969317821743931464415368167528878246911534588415794026814132937647658023997189844718558649612717085547498722306469897751388627263736795178176031187049685325344971872161126066934251289431732302684116229027016625383276929762863654682578930591121195769385494915461437614124854479597255475932770356641992736940811515752397181698546200512255254316473703179824848946122263509682278762813051110414967135864897469496804272748289233032222783952938091484146466113375723738002471815483076976736094348076343225227481590607479946001199355399966947505284262565526263883860729904253739120702318321988400691383710682095010908659311708075718845654089426761722899158919474552584060331746739055453396969618940953521742923212383889337361776387177629791691952062007989271434192682460886272352629595149786037163066133694780959020751971241895088440119875140072956372587675293786872391988750777679246748455914767362337760256870527406681760260536317379459903142155976957578408874108868466918307775628362949095561689987318689135900247511781562426426519878924711250997615806116130338314762496466515510515933191697388438473282513156092106604294834040150956435893622289894228995595855005425373581561827015069689671297002490490660248812314619291801970598474044182956713770118851962652147790886658972123796289073602099512648882325322828645076121078525148110385722473390727580171516510426129111929868695106935937054608246952066638744198458512436323245283678373930059927170772605974165215594382525732218067808622121988573662670388603633122229924826171732604224377569515999243074431640084190176280761721183843732148090234403442423763762319928736865303123887697700171151892226223332090421221998553761626630910140849441386260659721465864310255103544236882541070969903594001071420174044463064734231366766068903858731816766296755325769351945761598502192233741647990726201373640728115797498524705584080599857590813693587730126532849872341242863680170968043388698966979854138618152185204882652510519695436597821867240636451929316883470850691359905330846648529653298752968287456328890144324450414171089683409694122845186135452239834026815463170546140679369700809050509927133599543776291519983027870866097907170144083965124549090026285511216840940903631663362697082821280913151856687728230049530442899434519591055259497843672203612329434459373286072688709736880925179890749800993267877979839656388920383749098018336032406518877467753777880553797377139073797149651615747450578273673455595770117154960861484763634255041477053846157860721296618206198204343127233290683227234719075313547573975096518971094674568641172754160545670297527343778302894614329241454305201658217665736920885813877055298517462313940890483707186925644385690690290415171290721000289652021646386132213180626880975031966098180384441682443537875338204112341745679522284728940353539448510312192732268868837649673477471921033299122935703440981530085526230205087676910655980518573371150663261580423335114734052619487838740740601103018454609062487147764198387237151822217560593518477401516505879719404784513405935810191647710148952299663372935368572852188581854882206840088779677472689001926774635015771138787621770245224690256185708937191628810175075870840690998661579867284784697825393733353309032053132395219473093571237785761696755303649678962584209942861250351577711002677580863238050394146850676652693434331167794006013399985308696839974855776634683844874700208141271699026202008581808756542888738152246485286142813988303999654706039833724205566613976102798704704266896393863411696601877232980289572367056665854483588098190807359238560476659580140332708029337634940634389950935334073286869622068486180126693870702313513274142763197436589258358138951650255457542446981329187776358821318207147204306458563225220004911694137749616205812746784944328375312450165405907298413967474304605733960979121629632075902464945690496906591808574791077266318019925420226605274051235744437071584802647333655155751899153400550635229086043563127687627386997487278017452687340021780125369483200409881984572760677814551543848453497231718001020574167391899434394417242125979771205855376155203625592467707433177494384733313114582398860975143893491337565513065978982145208082638238856888474530013646242554808792121793927203240008590810223751793632225149404263942115642213039941643515315392560865123566911005543769426099642008767334441771325488162030834225350283495055174849040453903008352339889174205222830899820409327309773252419543628269637629543105415603864632367836846624227317166546196340722400809292080633060165835467578648832572769021682707637693330413132422397420427917868221892550901589809388765474614584341663581219315717644634184239786568107804699005026693476272196771265232567875986963943272794975425393532604517082610295759766456229663895113222626544288652589817168784168334510020281499372264657438066206954127869542905694421579949003381038792729945311103573856376048048886864968500449603412316568774197620804928814101152550068029847327131349782292797770757821835414946980043150558796320486964937832858545949433867313151320882527109336354661543212422901845812210356701092000636527071320779178239211515273509478938007202079068656702346000143171445339080048143286982323361656692354012411885735129793313512075648564520496090997632365026289304236252934128595445105190172177497243674943374890016077252891613902279342088983081002445619713286389479316256850472675681577350355373195358813397003192230119470593838838524753794991079386304229358720298852090630875924126805066562974726024783212079894551858493479902475276446545869332268413641195327680364464536893456636963415463166830388650636776956442891490161881088521186949046834135965264265138527567709002736753408118252599142769983314402491649811898763352254183007492015407852588110571649925991411939474980639331466380285754697284757578052174552959649790010291632479954823327562136852996530415733353967230221308450309842300967379700865795683074659459754314339331378992323660047553559049648041417722253919228856770080515660490930809451652387061002112789484293054859591035645417699447790793980910911267185678404773363654822312838901519592273308684178747991067030924975651184603163026581266111944579166586266266677627708331385570332055557608667542573099916180525493976081712295742530327284492992326887539175653518058596624449272197442058297442413308660887848926610517588379153329936236248272239242287229431880936745571700591648458416515340876497651948717211521758803062026290464882743670586233342276527232726197769011217345548299016984940258192539100008899980315501749132831537865311866675316642974004358406537110976726708159071227126729124264525474312792051139881098205404680722137452451535848246681130614573070202672991049850116638873915644471683650788410968989627634839235404087599880666356512216629129813415251240974793683618741574331724309996691192230183060321421969462212670514652195956542266615591369809470470937738659777797681702954735882417313655747392625498804609450503956618152957118169835897141998530081038007671043554464443192533156313088198483466638637349707828929905808723022858588892354741272256254335657984993368993685303721262167483154553933311770076691104368978344917935545775246276103394689481889074829196492966533321463897497717804162224832536271395646775640937130426561422804392571193849840266690959578820316732193988542548513576755916325982122960221955437197573987170495284440009487281604086167751628161504965304846151885434772770087104442167885935439372777245856683625557475240192654267813974309876424002302733438221171338933213677409566450299470073285190612026546794850459593756740199192311144179642559620735739661647243152451339037031813758339880830481457750998396731950551448693075712179075935976124951038156852584201057587638385608341262049795259355361464369088988653615175291676267581868809718290204417810898779223110955775440578557244321577947981892436559828083093407082049979714053087174012998083539395011251323642787637015007666098157860327560314597825469125054620522403906689572645342322543510783082717752802314675552877993987895447972140254605688691830045879129213372815823099183570073835892388874080052902575064051606690565625086044572237496826304620077785835399133059836207834559007388471496183956763201336026764578654254265672247457440922876977323085478032623918155486015546400750622954645717233168275999285805734243073776164451202370098626528238867773716607786033181497123317375951238635296195150194330451362403199752529635285510933378334904920410270604992997694251968766176036254253385351136046479152770831292121591383282063309064791464900759197675375283995820326789178936817732531868541132729960227734034864026499469989611715305044505535351238826033535094343686532427280541462055862872423361326389580694925281730103710337676693672213887129619310978257144561547384036260605139887120562737287190544764294381251272803054993780184705234555666523996891696245728577877302549380932930112301623503567472419469205722797676274023493978230692160284166746599883402061368103360110919446140511672909260427650617928858833108191214658478657018116654932354690804779393539508126656179991765713696002702842324182853342634510913015293567428758932951268708336460820771478330244639519226427619437124494836969925848303002178264377701860815193513298213912253606588657846431548778931015042682490453290711709928315637757493018632719713946556501649666696921916518306568836186353546185701213973995864861221503051709322319599539559704107438997279497988359953366021861528999569780864183815495779637426388688750354026196584214486772696226674018626462012667328821886371812376959919058559616399880650438681596851201385836268020860166229542501926055188538081031675350460593329827511608957076226304342884478668463929957311760335932738819059780840313189634293165503215033986708112343735183961408960965354085837384001542385889098656512321331423469268359720982415094214208761552830561968049911610127843866043670511250418595091460820563447524343576943506051237723413194351554036852680407142150650310797368362044002623894585803494628878378986513734265586260607912959523247901304596677673637672925883939756719834479013390228033074975161152191055596968969069223505176559732642193239444437765635137723012084778685832656002390056046163739651563276931073510327367486425531237791105447453325962986851729385280214063182513565086620262809679534077127150569231338845907894569670442069869456163507575990819932160835000820541428324341292461330396412550834013745859317356777452096077376050937416101225014050418336193770364052921977810875816080278671218082819868903627451296797670100316483482260307035127775064123223199215169497868408762479757059706230567435504299359397194237904576831328791822138114577311186466118774363929181478507915867977864335630179304801915670823282724608780562527588206684423039246534796841768203339165194541107583896957340130735342563937597791185546629329713065279410591078985945278053315243218308545225241575122155129568736387821092751786286885348730315310380524830692106913556568622518369344954391101963316457564362488948049167885708888234893785528775258118748540740912125817904028800896355989694807677797412363815962303516148595382917672823521607603575095146825140091813952996405289102336914940239348996080929381005940529553115312238797892354393155385310874583319285556914573930956713551404468602439710903792846145786783594346573053426636569152705164132384107498142656661258952008705757043247212853232553169541706489734016742986952737257314083743101432152910682993517280469261653811107845979003281120440974261570165076951095851665386639532876384663669842347414770480184263872683793498284171888858253850243601609578718905169975120854620661912984254572594215215987553490815494224121960604641664050711033111281812886445898456498631943957539066284339469507218210819574396975288280689920587469740468606226756271502206476376674568906882226879567979515739668753945173411568435443797740835517470504248789997093953146883492046463416869299452853306322050873801609062720796565770993485555221709336920807511619265759436616629782378305737425573691310445908398354579119359842626126764745894202750253372217039086759544749112753737099568670332536974408862590385230375109568414107718925184311080336721848114367049036018330734371597582099390267761628971852887202467389524449829218632290872171085788102877471941633661215629417094769788953304584876202110233948526059145195433788004628992109284924282161842449411760518422105522685339150198134729524882766794847064884415954346337927029611184616709132658590696024874854828690039797001977020728578472197036107962662394020472612548821508795293526458409184357533083088534337415473639792855583050721790651731807512492480463827652137208362810836489252773497300022067807330261612229542252968360613561387104651055899436071309557092447787911741650351349958297373518099188710504111348530129261578238323813501517344274649788507412683724541380534148062717181002619240357805754151914468587323541497235999932233067854479653109457474034685493611244584417617619099560696101523579738775942443123428274070726344181480721488189430862650873201641174866309838252523885491690903228311741063173702180660999124302752678748511569335015656315433024828223038424324927186930172416236418599460938137111021573779554166454616886832447340305785609086186450295659404216017351744222296843410673515056850556094038697469330413242179543366770684419874572390414246521019839019131092801133520847681268400167970201475097186755235702384993728267002835703755332405116035013000964370712832650922138596769544631914939312324793874502294455999460568873977468027621552176930728598858474723963735025632594989900744765443695296895327806734955750554903391494557285730600126313612654729059716747437124656856522336424400160380162255276153227107855671992760096221239297513016793339093846671831245495593324197602335151452884526368658910387218232413355934515763819294156632069268013009642745577247796560457079047201476187822171274878883836428572854204082558849511578839984820106112163922128007841502173310868811637813857849496045758710010919084876436645199562669434244909500031376707774683583733238453927247847523941900877766098302151900406826550841609228713128192079526327516414001159807593514790288107327058005545559119951295497515945957394125228957722896317056550312418189847215705348150877052203651449149987715496294916588206211659153374944698800660623992791051004023608930604115508722010156656612164196224316198807285376992127657172455424115945862971234968458737085134040625420789203794380974118842775762067027309032319494973755078422637858104264946559025485399611039090375485353457868519083747911335745701657998647177034292244337168706192371118598151033834878925221242481919480064675071661835943787097018434713457245307427418788834518898518212011359654290798115158900829273468056312966942699805868305857741264292115637628557954476432314481940054968172806829237201884891318220461664585834733525659048727947345031551823237887926279728614847326052853264835357233590418206713749456699048073780590899131060702332752592032893603504287882800635183732694912890578580132434877345842394390057806918506372636609037435963108244158108969867220573959368053422335099600885586855642693025498859077610726822019154673822371693358583437899508367233736850241638247134820596984080302820310919025564131410505060532435953400983440790241584560690553701405448936387358646971421095252303676656453784315356810390081894002428927595503028022664546765184480829425101338827034382155711029039251649112743857234269560941525423255480328132627792577522409343461239514648251327702924145979451461808980064251350700169602691836601154042291185547699110389095603331292426501601436312278719453242662575140575471163118477589406048983987535924652333214769079921547632930808326781166392772056645757885249259825243570917187723634912635380939999522633367658450408692235005315165652691200650821993489830331072272371762306975252643419794604909063696469653084275631949992744187934661343001920283041620344186346948989610260444338111861957493203791944355891648353379558585788580187554201809665799191254405036666869753923356906768788382628873468069570610739738181014562832401072485122169697130344878060479500934127683322080797881457311833171843928227719528813958018748757510645844657623865840448853065369805612368205987162154220094419247815673872605872498239795445720270150071876862219899936016051457514561853341566626953376094785899161369852605969323244491534955217116409026377083051553211277872028628925836336631060732491794135454067774072563269811932704151648794205167529338194917018981398643476991962720036825395044014183609407709310194609406369105671331598417324217212667461138607867251375096538570128494956043715824731180847343700117333484119742653677175966707275135003981017770257241797932619598224936047567331083635343267595768364969465835613911751997974581102824293991353640737250991642370879603125483062617321531123089834845842894933530533681235014984722832024555504132757637577950172480890052859980863400120803193921061204086525155099901243315483829671802200578935072030938368541477307539196895919631410058104828259463843994182632675950125116658874828911569993609716772317294373517023515034306205852443694894137751919495217671984591332400871787051988849680240050027311988201008961831921096229235923816902752302376650320851322449262215750412517218484575681875222941021517414759148991999776152851093895287490218112569816118212996338829996839985158480838289805433643431589512188993690784001709353062347622083911842080465982307942656157150602625206595685729886696934614934933371036741455182275091167458457643310323194485409481862933296719139101284991036894504951621576168061657586564755796651121455993857287378108397976624203618237411759889329365570053747641642500780615057166460943391502935650533102142663754969777211847268669097946766364412035381745039013799145103554911397370807579214713371704666489451622184801378748338939376379907574953592425820498771286700827001467058359568252863309322972716186759769700489212723719349898413359301476160118275345733956270197762596204279101284410350211281659819217121758946084815042936913020821308977004540215288777823156755953567802451487588950242872194573690636413684443204326468430743894607460342185690287936638675955151355374204807421720330925134516186395161554967071887526069198985757675508429565937383675189096062143575658573785536524735444323336825627044102977945644183197414985317187108350767248958319850085333711361134267432578239833011059328946411658998372999197079461916802424747549796147200879466860703918654393795240058364724267141764869436328594769998276618768028848735026735003629514992471492169030478268744836358324810403485071193786169104218349328089555162658846657562248205550180127429347956299075680580851402888029541515128072093761280522365140293793153166409397096413282979090289877086503063266785643911220978510328139531426467521787549395740111775328962165355694803810347641689982279992716186078670139659800608251562628913919797169611786882573846181153927198894561982688018502654168803909173205116138387235701762032161992597378228271350833876806344296563618076353436881715046726031262136641953204776234031046311567206824089475362833228251069106417295338943938374398221949758397254111523309900407588559240694052390323142427591377789879641861061915340740736897990604765034964845815649976788042887773277027599523960890498743494368624413947886973382974831743042629119305595965219202266996133831583542145188006364883808007715690381950471538068255461458593231183943553243380218721520434956018623808313472605863903841658482813666638609096065308112468028963618819069817855350656486174183112143059873347670541764172603757035802323470493262438107634448515696769174517993407820738678186864583267978985446489403180479246672313783365937843944545819350133674207629269969044155874976025852162204797059627644007506512910168655655475733734706818942515167542670132934046424021494093998828818093948765354557336176509173500695494371636693034984763725566112569858263086606735959315800679245577937659047691802126921753588527018180377856606419157374764496270284975320959968824610398020824216699892514587216206609502365595740613834023133429602327316353384942531755796318110627029504442090455213719816008428714234272370027584632081028529635516964866134075400394492611803803162887396604911025332061326816433774847364985935073373329656887610609236066505769007991598410327240875501113201451609210979856617284855786007242340677841861390457108477972881776295679348369154819372567123361772025417258485790833132876124019618588112992135136762302877778829793804437415347816143863416369768321389853310916793298769141155207730985182248336386309244190801510517080546757804597268583822587426797175636916544771838956497572945789922969967076266431264428966845982698067577447002014393814965566287454483907029291859148790027808287155935199472935139628375166372905059095473228492169279659907067826568957909385004681140757188870107050510541009233490735997953813096696858469718944268352902029768542245544324072897887580667281646425145192229714128667442793303946041223795215044166569466039988302743642561181735359625379601936699493549121516409599999211437478745632338572295634857585747936395257746902510553167027086117170487811897145784931937251128965660657867269998008111659408475235006273210756353193174731582151061203672132748827043370637190849355771452132558993947991200628964480531223397558055265370551978537782437736711325973681390951209357873748417314154523316358751329657378522644746351482150011140507193159803919483289328254307620475169144190713399749945149098577305655254646464585800959944471076667113427221818508329528647178987854354812867412441189137838486177544953023704283919031371566356390217251820258622768138588463896601519479017741738147797045866091237458905742665286482253928563656192333762064446475887702347888170744425887355883319589897375540087098232717372816116691274429106650511012311775915441632000747263611225247732893892825841691347512896177184665008561311165591674093787722060974679306221457372430287981046734794225933362243907050368868242748472819089254263421111344150124834486083424349455459666630035428658316205818169292767240754531736155976107994760244273647269703640894820305273685391166045147188627221238407345330518627466847593021006201942141423501259545306054818591926013659866576496800972106534829482184606947563724975293664860980348545345235688732640340353534425797454187706534430685700625316000626848995309721303272589049136497582356627531588256969125371848190520058783541572048308482610055251061255249164253068483748103887169971687038897245064966778877639241252015091604048426420210455266810004955990801121816822520670354428759493568874168906538454934171937227003713018370517154052612691248369643092861841641681629623764941989754285592232473822265470210338454134706659287501766794175908258062443424909391346779764894659798692924976588944891729720066126422711132798995428480199174776133316359320229274474784949048703350527826640010074989930905667811382572307245378648530685759966812445334194560408812324250341267594407445391380534226159366675442528242313670894581820426421934970436387206960897587905253803399270877087726024713237648681698660660970252341983973585671255323132314895801882345169098611453986278545774507169212375984439837633227579606460952633902843853645063792392909474228663886348684462186164050170755635356656686357787360540026111600708184702308624112587921135838945018070489363450874771280830173498555717511742659447484173582907291106571019393629885912416771102343089973452637724387686734552392595823641924996379911154595643453796602212038484475154134139379601499356022617755079986327576384470593299534834738337714039877689352125977889634691205799896028332186787908499790408828308336635335554249386579329918938176102973131384864827493800870748499523753389417951913207262631565532389331962270140814927263023394983658492388557756184274814230942974459889479029437840001034336410373520664083190766388917126067089291202216241247669252008563209618897146433976944679379427743878954943877829187079156458250156531700003958843387339798617753591166542810864928344490205147742718499886418220480499880597326166854516600964853939968407901172231073493647153786416331073370217460074200402803896308142519601801429395869828606169044587396398863369910159898670341580066180077698660912545517174635872814239310201035785657691286606191450328317600564520891167668637127831743004356973505274929845635259670994627712373725496557629577792202923594966539870421884307704456648790778167797149851130558415660691246659352531204656167085613539397774210417731539693063069744985508381915236213649010942994214371872946987804631465623310477654049893811864028620375370094068035265278570051539938050440095348152759686766195118786644576650229477216957822194137993430027608562422643034884667675307581836103062654581830436281737756777625773624738111825566766773439280593789480070178976334207464431173027362575266154939712989789035317833200780074727273988762634044997259554819710000566562724491710284727417444224149077828287059477132051615708091078947274243087647254386125055093653425775729505494408701571678684383881893332880949008074562929312601271931691959270546792073773543714117381381788048097391900052887330741236461489129284991532928996994963776818518396013455936890416627611052387191546202226574254141252441957980392693601358480119289157532671209738922583833023219096793821524478151167514865732341593558746178834537268108756447935135437445268688452951771512214598006054356522834986182868120063797392761358155221286614093557245813026448308176695410523197997869414337100508924816837695645067337920489035948225724820519820340543388351579814790938981472272032685861741200784393030308479329711279632259023119390135784162118853846120325736861089606433082634878553258245376637229770198862569961003860459502417874772252804031141708985757782001528732464715778804244039898079936157035453549871970210966825434517941086664744190681315751805324253137660675080970609392861958927496901291247508019857483573397042857893347797015500242017434184715284043617809729964118165252921271412736732255820503764640097673382396104377167436558187067408159723557734851668053632854609230171759379369214357088877923327289643429919391534984581293429930914023524040308429161145471801225406655119956498538140884366429844115293282213753113484850989783526351311742371510094483085899072178437417802737829293403690419341648700396193344863710140832692325606118411907958408686166309883935462950430369786232824246421367182572085343527620046848793827947837472351878099373299008025692722545270870030677730817307020360894378839238106170351599149306032199613772031622944894370774919085309535079357340234266042112862789024173282504142118886607484026862924778633694305810305708248789169077259043875020304211968354085462705049546506659218221331787948563609260914862483381989736091925940986586065401140979997827563893987099895612217678810389687713587239596268301485398069166576858190769074157171677780335217736251714130676867574723430407965940017763468838017298010638843838788843956610971949097251979261766381530408904330680169026764846748206428089217678985699142533662740468975420424554835650362664964320030949237676934936577852194892966853209467243855726866743827977108232158840640745606155589699924645936936605049626406423433605291407744504015684526524304532673679769930631826198911621301413462858241386842130181101785756701590621456529763184419517870694621037757290742480323372436261232234411033115045256590765293530542826348986825841401973332101766840513922167522004932876348254199351386267535268023172447240283739477764800494624539664343575079262378550281652500171674298419219753312753622393297922364767162532246354910228131155937095332644082288796634246831010887806068618912204709004540256700545926332923435091092223904612185662933484274907789979264350697633222696974976171380167608172172962566952365830755476170376155875769430625390349028429136304053629491982950219575087284072492296684365693495179205546444803960546092456700835331389755065220380643076522085600638081892810863573109274777952485645745299697953833429508324166453842337154495626552744789892071262728573956149547030675263395070684183308101162745614797891856965081937714964167476044110455527973027317020642164628929422660914492565899529747237623306177341818910682908170772895968468392567062960202165513889310254721069210567997126718698751418744679787998078138666211511519981900793765783519944891304317933772980986711583443992016369293173606322468225811440325988798817476688131682736026735679887192122168970589573368861575753236267402124092511059852273753246663446729302596999664580968727367966746409038245494360696668763820953175350817508093961083545560312531923392666221335081899411180653669255639665189610193694439306513615364064843562587180876580471334858971838503816380458003530552727623552989876480455589352207845455643674037617071581601732013512617516111439505929873529198774320297308716735459258691535198691284995637731730774313599813306511308593735182781302369387786543767268119459771580802164708101058467629441996249937637791387836672704848491682243766105517374079556101580793422753712847403545275811760212641445977461728762064890357136149925313123593687464049767893787267970963880571819203546358990233253297112570546901498791018291195419564899483351986030061370032360226849271737274015025040799259403998465960954401168849930557579736378502294323106174988590188711268836873162428443374263320925293904219503297720766294274797111897295449743763173446400108846977214254523989860571012131986266483628877238101032648434841669251256025057484356951121287748426623985989570808220655915732901845240690767240502334322561476687175789013062856157431048092263773629281991783288685745584139453600458736701930848679869030921372198788643303685879992242595007241612124640198511136090093382157886105234162287376615057926437644078231153540256179830271540669133667949050475622990136810183323732308225773043305677733115219399450003141598084991265828578209628194646853773178139666635174768246845324914374258360345710975364220169956902922472353992972012820931205821076671040640393095024029033931301527767702408191125854704587243314487146260448454779059713646247184246321512285449805249160787467139425171625532398639221790098787028487834920789580771134237157662741027639860041259967229177048460973340717779380406870230162684444993229591779085461319117750710613443663773487729159016862552907433260444754713768303186453652977424396823925661965919018261139078721844015202796494492484167689668532387901536291662717011246375866860640748781957316281185913748785379933161702698942330411709446238990520452158972425784207402219494643207731581945003347636437072331036374710605011476849423739006388983375183507790743142898449905022023991240428531623820994013342364820585074097718962555353272233027218659674363092178109292967802264086481465475707586120449866331495909940669341374249612247045808706609400425549422278015300136353674920760563210673649260577373458247006043338166152331342073686108846046047662324534774518374063404871455310064858525311054343764882270881944922355521900490390802032582423904014429185356299162476505029440892542942953125887702304325642733728128652994236313679223478167477304496295012310316747947132891995622398883720385409656753221023893274046787518983525361498593748238904632208599311433602142089947964238338319990449618035308060534248463046389700588923124736612818195822212279022059528009866690139093420413874335043036709672778758832746451449649231748279605167437190760590771725399333045254291039889253534874683794902748260001570430146861765117946720522467568132031012908554937437187373852353269597339826175519809890284203433956933382599094995445933124854326280997543591005825511377333548500252765810736103591072237538018933783315847046582576192075590631701264039207928110887573489559944781088692657323094791132530157866252890814150969987687146181355623323732185285079805467434884301545312725050973927655004123280575990416245535681894671961899298714714944350830013767911516094210455719067730766535419471787498957955039584919304447148681840092687203394811463128774909874990756471902609273244360450103432712074412551146207030486422983348431423984469382366937273507881452982890858125809897895431854024406380959523060078841314294923562671602142568590096992845783048843959927939555781549914588468104022721066131310115890757190076832725334221366969592918219895719479561159688090089718629157935430164464279004675628829572923371301719926396417632425389913632647078856872674222448199971056659837306949516044425862880990682636377989926575390480477220692311447530045368232096565089445359290204543103186503993543436069485433647128307901347205390783286057432809134135164220952331110014734127843410985953094289324112781998253241342641719088107174403759161217914450319508672355126139835653536299240159589521307113702645883539004804265821237706268571831133985638086490057376979610526492234757541491062085093545503603007106643391789760531678499228545601093686767056154403395128275331614223602949917961881277984601889739354494707131986362988365223026525710617070852024496796491341616468008665398759731866532158497539935144281568854339882895592019413525166973182303771583493250791532957424181667926052084835079967286787897050710027950873869613375017313054413596214144645146562218964113731112619168606440880560039328937596584938336284790978175568681830711819123653479577786257366230081791935582928196542662031333135884663440067237577625863484014423175422485066053817014489871660984810786465418236130287469147624728639205642980852688923739646985437318316358746673901109681116608351728141839367385076181769333728159675928959669417627397816051348559543183056510846495829954300145478100478085043073328539362175034212883812198551008190279977140711033074991124414971398734115927810026735037803502679415465068244988874522605267754489394687815541399634103143526729300290821881218464541891983401857127454982108505480622873206964204410533231572660376071389488829749839341558222434326426767457614870322147019569470111448140147955725665962550883439140405335016731230559956960549445016166470798065673935896131664035478149795484569245946207978630137295094884653818350942076199412607382108389712875689834615249219823511570123452674864902872802380622126412014554628276567090489440700279422835702377628345123373253516217453658354460702272423705033518935540767040453743669014119661257770252935884994416865666090062991473875172192500270411990523837493546980873596898544726206810070205116411131669723349438014256080401515461300024081878152240447093148506187601872958025149255373295553590607985159266967006160866128375966255605850869812402654873492681367986978629449408172668324165014911419552792897741523903707379178347343687814695976923426577150929351233726292373565133593769910559820125651931503416838352929461989177355718554471524526441627134500551290219480889141593798809693886905017196301962630278063703541099439163129438650031918286386143370914565040380383757628535689188457455592991948943259651426365053277442971163672768783617888348236719295712905773121401355105365764713185726558254392311720794200617686655547537243910886155631373429077446961062865596198689937302696757844039789773100037620730746793884135914751317425248645370212918910195105100480094765750942043181490263847203847714086653433581278397735086003101219621077079096017258968161402676954691237256631652935776463161746756745878456624697237569150139923175530128732095142372223839795212894782328541805141406058195525636330165162060190815593440765624552218434343934453422986613732476700369206615026441453508538157369169152257451235392056278287105492252588440711413686942037071210938011847155371667628224657717833599093837842055978692486310232207287210720571345643474420777114136846033700487855628654037254308408590904573724810173316539775665944362096703062987278859960134554652141778140689362108785565061765496252878334925211522608071237462328346660800395350316350488842496954564074747672532593779348137523191909871066203843478152492706260927690517832559383147898301569407283709679374588674669462350389470744179999409262094254104287140304254149966091985730865408458697081931670118411644591416304564072375118151660664554823816855518332218483229682781254665090915531526567361607039973032597685544996428453670004939372095881563937595945216979877074544363364900692804871539469304478969957437229414671810042418768710019991530054330668591969899011229350935330926655899662417573622758934712982014412997673915632588404790613165907055907093696118858778985405897053340227724886728568984540248986457226422142534908811799618448883872854044589325109397498891688546879213014934316622578487386619378908043051005270972999879566560573304379719657357822823646898718205325803152264127729247741421944559300168591435280245683221814205498006250356244640732191770966421167049381528469913179561187788640080085861189676594586112605333238576918700102315936751193700332949628554636409681349054332916775784715043918097786532866844454960512082430282949160418083181961593427277846109275766739829411819088832818830704322113999756842156156195640783897533029667391261512909045808190132839400259565030667609477294720941340799635037066313537431925419747496385537456317341590153519840883295163257832231639215260045705445485572044265172023544313358733987305885686165090460526070815800949880483307166255404225025984204055915185690634429160383311213984637297149517954920155308064829581187432478629147246150134009285501214809654334417623495359820049546743428197124701644843737488002111608417084648777357163701372705911382909503355946525838963645421606692716154257562290096976784248253776999157556313589633406067669388568734939271457301574488140230206147883733119019329154077781227329472545329134075191071352542815759301591078941545616490943869616946085160885608346209013697837477174086690630809564801872806903497898558766189363704069443714987131568817213793572140231385238789719117317833933544941932043279919097401458860563817000190725761362404780388223845057874252973126864230639220454315373452776236846180796211413194793837904660601364509004475527252573822463230594651046368336456251357922126808577253906585413784860228473584545794017072751510857549411758055196744201118677097649178785820873809347354663588503226708391398766229621312144682006655286548448682277016587825631727594711492316682437334103423825758676488338654527685890344739023926280158451634840013382152970332511569035406160180094219448722267151618659803083624100874901844721489622084025655791959861947478574612561530534926480167223671319422386076528983326816398074542460284577579438865652942081320538627993644582598739240625199665341368443235169420290616856786125754774802607736373167640303243304060156151111642781406677063493843973874172601588870752386660283308255440605892167700134577139301936331419602403988583048197210613359692426409392687766456148495672275854614791565178408440086332738362839035107256163382022906236451198591874144095527864195120366216774270267829793765849437212488041177065295084475347427382627829059712105188724523304533931991593921146525762794984881070893988353725894795377331978154657975109984867459816297161891101598499222861629619998250811130929736959933035609988882491283911403653477368256280947510734312411157336598688746541263242461659228407943721442489842078806271647687705436407799723590774896939767984602337605515916796707158151447584109194531346939662805025347431559845599043537228079205279809629084233275219919305234307748218027698803950907840705672496435879676467176863871614397698654374166737075925396181178877379619611203527658986504575224371030977988159702083392251428801942599167913163903391955626230082156103853566630338116824724615722683935143469594151245386945626296225687185457958936297329824068816526651032004454663477790988876057863941681472281258928980284702380548380994717433140015198499170022655731247376545987962356301127398280070025374861181750752661567196524458423134864987520975567562763846159256324545510642585167603342028269561491790841142459745375766828669424436986532369885642500819057639970704187789623567876361285836494597219129614908592848792790650079180790010684774855633072991921267847838933986430346861795444030002332683384975942055375811167148828157939084852813971632668931800712487415544148408332184473531513866956993119679613450416505054726375841657291399896687499786436943910195471037230830128367749991190500804916086654214820524658470385684392167804812201435811001711089059044513007121120971703012827336164610996440413227107558420337977295393423688857896470022190916803880772924392759826103480073069122062791326563902652008216952260126874907486055533160150693583128185588553601080047853312918735731110874757870319376831993332451249931222983342549305384749799021852219105211607890783933593066689772292308345228977991856516778061016854793747833208323149714449584088693390330486930348126992929355545466687718622681360936696856427152430194284801437766899638133922210079271704357826544805519724582361002504796388239526104698036382978452245104772184698315908142225380929514639312807880242100494088886153506750221683796957612878745442153948732679612629467253475428490878014291041813520069362251318559588010780417992206067857272811073297649812387037546955041754382360651963501324951162383810839389971182777502578838139755634523275877157841839053721191559300459048337599785404562863905935833438382623132367332830355668468295334174771335635294543508513502567142526372035319577743061422852118657705078137137850033078045449320725782010690821965747470533003323598000444102484873465495148528903842079629079160581476898074594718056795831910602990805838414474205234812118632867805055459146412215215973296297185752230331777610166897377432473379596627245387680355606912927258654380357224738487943512457354033994158984420698795294687649239844459907039671712640994542846847590609053492705223069426628015283221052802841400668055285630031815225435903352208030308557386731205919434898327251681770897028354877922841044970004869019737032546712982780757707506449678452009999069304333477750062888447762486514405870075306719032765091110341759805768839553420835679151551798668473909141352031866793168824110386351638846940731528135598680318882477195300467978790239279756587316084140965833097869637633154889841257890753921546164775662968607823687918644154329766548518638600451547574949773170670705673039228639609767573863701692824130269244826435864617068468668382163673118133188143240399955674160113256905988597164005091847378281753571952209396044848931536525841459874730452306880640622594357669863411810290510751474560938999380894632247247725128857678299092471358815195638384697900999920747253335316560144107688782937282110345883073768888826357791586709242517993050253745950046102517896052331093020282047715111220466647225516408398576703027860642837368887343088819110548291527150289689594964404912409904509652008527834971781742813215089476069626618391230412801943359660836735656002548333639482229654745846247317856873616148752436335480734002018079493418172213247381599678726846411157374127221131667449103936972081149425459016242077756182323998356545316205783606705496940985394446464213826729346831088420039146239825920755988725855164668243539815023916401018779717729587832655192266650426876573810998036621103352758017765329892862670477981895525685006188804431557070157535620933102756421831208566017345525659931519302999239107208414031854393946388184156618448574421236700999292810179109623419090578685680438025276808873799804956115411106251776883553671014048192434856863135884174282320732745519827243480630486315077518351131802639497737271730256876183979387565840345209306577543558279789087487517848847866990632975724395910681958053250293907670743820134189862619629192715911870209557436165834408844873220408020860696628891435095062540219491139795235096199556403303324112323992302340327260893988971512759456778864316083062595071398096383675853465150515880289908452366565868097619561587437321153690236829799168825422033784059709408436000058252960057421336329791973000319090334532995689592219821197243066657119697694261820131533909315684023723570102403968922156926174275400879430768266593336222027205198383565430424839823047951665794356429132551816772877052678697209882533723286721488659170973407638281273275771498647359135461526248534236899011124182474687152047972194543329434915629491947253739346856479065875369815309960176036870129694281956547876853060020449438145349901751190313541782598009691157907928721040493120194481181836108231285895237993253290565823128549658520733896338070387599610402837876579547140616423779679734237206278531658003895154268449220166389359380396117229213457495792032675623682522368419426371409866914773210116449882321059340234720015192908835100563755261975249970115073412250514892739128131613540256245340278222203812424347260516679949200079311736989158067948668681408369600621810938527877512850945150866967881917782052396838759057702441992878903126843278039446762817191377649806744437650522154352467251649372311447465731740978773415819984179428134822467132750181692079633949880109975032621249942265984745226960694104665216011834184782202593171556102952156336703021682041018915715658835416626401109316602045729136902572584889813280275054095041797646638329662954977012186167058842986941203290021075596374289667021709611441575544884980418043382746742372833352098779146687663655823177853363465292300694649588282509016284347115763657012048173303894724103855870496581665290906087962129144243257589779679490533305487220133541649545948965003111757672066552141029246291521414202738911635504332943590117146391863165009278591124873454481352144732202765656359588371868674900745522891067047010045897930955969267598261293042410940276233331943366421311058343445330005906252898334901531820425213928170250590332044548875413124013040898738607669596231279023512841142701574634338808909025417428521205946344697761462773286966067109931582679147927560408782312853554735026818327008315942387257593314834144748636514930102544174987400975673170996174713697957840186577947128517243213768721466035412787889955378876835268205255948549690938539230309616436124046954222896287675749990266995815914785277208038908285451517342123295456153957314877615783404415945144674810016249895557758285010317382419623416702185102194161228453788234663913502123196035649734625590259980083592429446225229077256053095566778159097259194767925659672728847215634053030816082320367585802519126403728505805275524486490215346033266127971126775244019724244395186856691752754752200126470477777681100207396414224277249782080413397176395501829179067949059513025241941084851197084075415636809836190203353115853081734529243276508722158718540084338422773598091099696378984418032526781065037560931378655727952580345897913463304895177070749150051167227892134879335134894982327432638007035786573790913472371922875482827955625696577680254386886558800627621101612959704315385483325969858532090689853522474021930572525839346954579814022253714604477299553927013981587207918527177766784199632729741740770424890910973057279604779301520279387663691560631848066816518915362490869743158184718493511645579844535053413545228044937849684147771701698243436024933697920863417883908679880423692752716445055600431244097240067978002112058074484335576959011038508613859928966630350128835428040786308211359168582591634409965025952556341154777235196564773063408355986157038323361592633522932162949998623225584469112074648360217431366243750995977093216886563089408751211998420792652793050321133729796992641895047025125406924475834064727491061784478853937671308404506184546011072500038165430856866863605559820590313272367545738723146971366723297227128417269247093978285241447107002992777317462306106799374801640453993266640856902384844665386514582883380155696715028389953566646347245228484675150765799636883784603829409916301840387532561885710014289330905231767770554696220139559662043148176922448698512960323440626549286635970445314516372571252394981443996558199882207726689889852069234990417497140392008749087320105431518014829899069766805435752218627495761793299736086876034444416799412535201421744425062814631270697035285827527384447360507338190053441771769236454267992957121324051693563790141002710244495368201949367277383720797068176530301818055040453398592688614164053894927194400529672156081557230360693855143703197264578059435313856067649692612641216561533097379672123715682390574899821863081050840084918320921719006916118788972564099032180144374180140490668704221912159127342476435264461121342211546946264149450035528694261585907288149538761649468682567181000888326403330616596994213314274436058974527141629848653453184297281570097569172147094427638327555905279607673688148416959997232485606109423172798438460061742301448099083398099770840599230988979011661101057764646083154611441661499694099879548372153269135179259310668363827126310807932452707659484428323979722043826875031688416542847240592864628151692478578396851615755272759373451127332708558260404146892264131957062837391716634257087550444161705837709106654696268769246142673531598514899253023038079946159176363439858265721974057914967027602815656232046890190648262941860369009712552028322896415482728064377366048653651647867105793312112876506242544399007082775946979655047671599635451831715377030794774299633610150576814504071868375019219712283817256751261715530663522522581881777323309165397176640777530957799965510489146898511163714108979053939786014447376409943044573750913816266635072265898731400526770384941979010921683465560747079414913051704134760992015337259810888892065838646311949304889551262009144112213253036152998823094124081564267469763544893140718867490325904785898071751488178075567262431329082818478892210506630319195978735630442939088464633896455469236149101754045083304597817364221071891592098140594324605514103494629309749162225779682389968610544491733179758128109871318468393237773438157632132691510056522154169163582042264141175257667215396901400968043932316509719213449201409611321109228883162436063536541409050498479568836908795731306153520389012135706828627822084160111648777692093330239668521379281055436475290589703073420908811018618273448871089285150836110101924863064531306798961695910808448203310193519808176456007110321380062446630503877544991513392488879831844287974593018583682339129123158815343274210566249788558681665897044656441338637210699486402200945539779215430817067754825731433672422262617821641977270147520443103613800529015720772129290083777857249919572104358575531751783978573078482269268107294604555198816302611139061647210346192812476576257042856750173183750025343794673079358056619695608330093953570954624933786658131474685680492932395487044346437587856200532988025222650055790159518271319100768856391648628196903399971423591178259862848598814699485251334062961204358617170902625534175823175949848281590048357821697120525972870447727577687356495838497261527695815793199811920721051566834846808670859199878075064785792452328552002422628509089145404428176411094038604723885007353577616998181654743838146619250049773146237318354911801161590556775227703001900171784573100268687726599742842592387758192850736128308541711378399348184709116786405040592365895966707345541311755836612309758006048007146501287504356388609547719508399464999819261912572108090330840102201239335200783799106585209265908545467423031189125515134761080473645282711864943476697798930062222720442704198794093311370982850871325353995165405941086405046918416816255623967246200941898728941965560470509379766347586461581708800141821491094485983456152253712339251292407148889442106488452171630067314185669961991297409918317128063780620949275680011279408510355157159714706455293461656004626325808887024681729876578797470937260828054852444769383202889153486878953052080938350569502187227297834937167841857149138676017049196412920602641298089021988492840501555261288510424578140370534169459546843024587301491068834366412284790536600463095279028082154904699245383297323025032910111925527877564747381450414073685497441165150741856788127970447827852951128487459894366935362697205220133943312343982532304758442589924125383781692312809467707871511803455436665079198264033175295099845288287128330176946722289870072323502198991690770380930216511569086404339638664912806733771681997433556447073813335289586756696581949142536127731941149572255150104133835453030195364534248178854177605203227081997031170319599091376745229653537171608400622407155493353969590477717111098704344039169501295867153684253462052950635673991143533838320177474186352546637846285593518049915767225733743179354636316467485707200095260581395243639170404303855486529443624050504933925779242643023460223407797528273066235558681841327526870962165219355007811572701142294201795309920707280222239981061144536622398054480209275466179130070128483852177766372931315002675617150908688768673039525857497490017581124031040094567147735088996761805193652127312337873289569228563547346278026897871209965766436431103706371090226325229799165296579668372925302048645009830333063756144740045464856252724612691934767094409627445447367358107782993036439955624794920143395668581956605417064619768436265677306139699756482672268266087269030294159824071830252203520148511553042664319988048140475027343466891543927624703244251447117994902011319757504736412649838314244217942163920688463106572020462597077049308110301643353871605818410318985756122773845371134878459220126052009025072048493059781214881964707334434151294147248414938646346119082896735443564103029564443953167689632874628954086573625105798276901782618889194326109832754601799956028355512567408532837529788008687928080328547727553463297538101997890807074335982649696023007962269579385363473130168684125548090727237819688698790927377249575226962640916897245951326515752098465886633108360209992515370254031580005936374395286205496714305645425467007280622258262204879306819592252906313492003890286990189145529578793109424929358543925823236299356972410843729566277075546591802697584538814972275174246514746080025336751729223515962136515439683725703498077856655688324287153221267112865214851760673835236779960175518610058390244712729898908333533972296499225161846596723563013987073291853949860442434185668642972491130448157629635190247772699614104944104154659748941831917880545791249954377194636667601159209782188603776832487569195862688663886083588672351432929298485571380531648979613244299855713232171205392231197913774799894603658111428427231842239220071239352970474038164682258944013920822470877350857728721552101776028699530068577505961782050900930169375106238355996022171929965585910871387956915013263029075359687651763428744722496715379121325491967387760724180105686115212556578895246310108201760125371437367440607997749538179148816674874973320364592844014931213105944956209402622862785299133413970192492919823315621437618917187964267421306158546274930340346547234377951959570041098661171734780481372144132533955345464426393822217409366010860611623618647346189995054208094076687586291571085911034152227332584138161424444913150858314286684444690017311013181944001671527195966650179394943853051607893925544833986890159554122116411298538875867341082864872199041535844062975223803962689642245056388221322989314460508723107687388671941032317576952031061771709302114301372195849998723096351876013422270739050092990594696774060037171201833293766520180085422365786554281353304957422325805596481165610639068842816974759479731039558573856636709561273193712486019494878892727453430165009659881858809801154582959675194293924883076324423820949810920675290686781236068036079821449464140140288448784344773464344733256276829637443920149681991033641023960407675792252572792763085974841710439285258623754679072352017988699634108818351279284513169271220071904037184701031989974272579961120424735522908529393047608277187667486671899672567941360980215560029779133699735068738290881230914240265079699763454522161733542788512634692330529869519768014930502050177973042434342880626079076419143131297820509682461764197548393567582020939224134832991079453248940787321169263047361515092442249106405155212340341885099236403751083331009200848581545968750972150662918793830271695597163066190673567811288110873731293481644222736985228955049653779029584826850760758813962375678151336222120845388244029068233304746050226896766934982365897583554015073887313452644817741101942682073052960764712989776543122004302275208450514384925133118331192228398103236640357756148957911838685088887814603477140225346521987138396904153234393325860166335620399626077916087174387403793105233451937086253060357843260162273228313214165616793361096071712180536273225438213214330262310990647091162630336961854785719908698366605899805864462711561895230263114915732651486427737231524624919535788680016134690380998595285541895420799777657840192976619697634219875144705745906456243752253938311160966346768229669781260117496544726949855355675097768225276708504586563308094312965184187440465161316888179753149685137915687210110616449339373976369644359333091681851766573831534572587748377007191334072803883553741591510020212955603700351068215882268621061308262933388211991638766671309658224960013251460391962644538999271248355569829942211055078640508177043339983645836584719770545143025476241973698638677246080919230613032746920730869353757553274254472942711800607631042620929886347470626435604860346526695337210537907269725419179563645149699825858477077759267521868124478261925799157877506018583548013391502640638483211610964048427559082945198726237336964830803652764245649485579355576482546663592924586877675723029177286775472349825704588629555250627161497716638796012355060406350752573577517557856746532383236367441549907997390851912008043523588781712359386913270677300876867141702091692681401065990422871858857076648855595776865519848759456371799204279826735361867266662033983107006481006869863754468026211893803876829491280829544654912627095856175071443501799205586582932880517181649338970881241039802852357567720449607155492906405423161979409513711237205081684299176815078643936592628985837158461710775900107370241087063047744515894818305927018325039277295197052538842464047026379873739627740879090080861332305656870201434692147729158767458325448194214086537191118137701312569445398099930609074732355236847088402795440423818726663069011097364839754290622239463770628518772152316074817683310262626439312935210950282900302248644383269692996516642469555119912887967311158024526181833385372831966835599825284107599491963027226347028165230262072301883799369544511261064751191496758183606226682268097741112143751269398078782944526621637836982566605291731480803421106719664657109090971362849950544987421791221454211588251523820160304949293528515515932048562811209332025033974973557740023520501764709808059669162278365606323448198905860519507920186058801049201889465851942670003991419550784959246780487203553348891107493697270778942151293251596853694592695873783340566395927863890894693813961677492346007477497254994602282600798511671246016523259546709052409944670232557309730723532914300547233117876637937245009354320986024745758134766543851788793858908385862112429098195775621754608991935482394995881383832169841091500724111335524029918987961079519546883652249145556999064958695272341093778750945371242869593095921188854958555633597404883996456248175199336313018060043651686340068518756934241003095920213397115771509826591022805577916601558123920359823031192198284455354578300464624334641484201779315307351829629247059496591253826974413153992393662484412661748348982860587810960734348507016007451446381252250357957145116995654301045929781744611453301053432001605344770038187022838255754054895311410833948144413014577846438234241985481682634802875306238748867150770379496474808127474292455725542026677273959678655250788107692542995378685061936617963125242316616129339675262384345671379723682495601728238584257981736547297984469767446026427841181929772754722714675479580385272099122328520716086247679507151597761718889132580647043417843078330238635589263098364351976794052748195560481193966773515620528922542334325080351269780381838886303377123756283157448245919227689364507999724264725529619380279096380950636211677238687227506318532942452510211039249205770347074643584282144018835901826639540825301772921069712843747308122003815480683838438395696072190664387422934855869835679998059925745667857449430718195698204599636366416762405997381741840571187184139721927867725684892930776687504586950555373175985326471014256223158858932138227205705918679700611593786289371488023439358151277306961197812171040853748273588375323937645402241923797409015112733733299098712492542832942162256259469712336667912997400326412803422584634946356189323716895735444291106766012847475724997678745177969448411545635406923648484435661473278112610243290930796075334387160476356938806872583512431273549237159882104482226460325195388579358578491138899871937628422505555024176419816947949955492176861209237809945605080472295443797021846407187247987277650317712353149965262262298176770930430374777758910076790145270473380843287660174550457613179547857081247859856832671722873738162636632700954789402052455456350453837608724704064482098523649208121903590442178908577914383939373394811195041239752019901122984729643643499923843603283237196098044074110298457412923658899514135327508336438920468586619399031690432039039576376545453303399209227080920043136107414056436198962386934125664732969002062334811142783313479488177004825470382953652193126502636529242822152274712225543914265888626574689286393511559842052287748973807735648182174799465779438926830237059745201300961825871975571188384172854814281221068711538937291839964190869672931746045719348658884240980665731422619478084402675991883722705279534207668011821809465474102308559159139783214958622297014833176783688461848640550512872289590934001305784733487591530915373700864782237640123042822230435164459330330007587505309029785289655521364446675253018355865653749340074314640977032374504040071624342667469021407197339695261329243595127512305592374274962263664773725015619992941031584355121972562937577237568740660519997407548047113775878153101667704137464486670482710916761185168862696313945941353304417157017597475825788940076704137471947224537970569436624164422920619371552517616105913824596780076008355241443428683074566864446278580178155453047789911839617454078747283618935155268885956179147444320136359451424716890972706937228189596648985938568719451646816967566590621132160430758891100047747849205478320742708215349882633681428642834933594651399406104456189750380661280497751547509883467145702543061597280055042116677280667732864923084830514686801959559801434476377092499055260614940352751603366244837568852279907623982162659454589574255288695454992345008108017497413241240074811524869482450196130403135522755349913312746872845233943279486227807580285440574413198600336742840051065209189967618825021940983514290127727249178251935506702358425681519187327147867143194618834095362701538128090466454048464655215054330922363967236583005351610447233863293108901848367258478226291089393669824953652329461454202938756971192294648319775212728225026093837115560113287807355921724618677922216638403974281748238600127297387317549129185967335827274042010664238197227717671601563471348227733306902420333990614095135140717058013754196497449027646664087379255269132927435423299900864689073348161933939520526517364874613383087002267201647678406634994298013670801876473949017457301613902600766377936811775187695188738007243270986165418720363435057301697365217283954390288137609997826290862010724388718685158570774775528625158350571964436181214157409306373160145299879912427913258313690683880800062878419855140975543347230828028608267611559175762921770422891775074790659378389719170991230711004602799724925932271408571336585325424911665878093587384254372376542101578084767091839526659947197138521262398961840098010416815219996173416217928608074999762755783875803369764828403495497137068670006285534180483399034468787223220974257755891621461558770099716308405801847510324524906754351711080115532047540824322080050240023292274294159860474056864381487159436517855570480235759867441679168815306743152798629377643636392856956071515406251652757852273193283381964938390683657893466327234271378292562492535446192526026641006717699949963746333252011302857090569331539042562125165307848995867262942923831421748912539439620422894282476228899413106234202701994984607527001876513603407294623699499665056160788578370982363568469080316065619915892944016866224413943885047068836049897086616671403943490570594914877994036294247898080844609941137166739034327756360715292204492182011560258219285688203849242965456481011879410260192850374854590836122251698876402284425652617094795676982031378193897175540174019894014851361376044616256399854214562360507093472210840936882871074084201987158001450888365445159533958141679015360335050039308024695154528055008504221657855272756870484524056205161139962867167503971159329584069263572684324760772707406267595523250559547914150648002063945709536310284922309956179392307071381393310680592886200481714524163216312327943745275875848463429753588006163361702001410851454538728944227251368949072421456573742518201015484104927859240337648544368394127878452110180105058961117387020772563061823892004783169607592442797063590771994786398919312823073240319913646699695921681782437521194843972118166922443032939568403146915250689956474300973443490067431729278370943664547110813659674116398588568413996718432027983586745522646511367308080902219428219489106696059585320851653855211588837644427365682849107143641328957024006926350824757310060577437012786650328461998147761968077828984468525390988037574500044270307406393334211756889001740732354764942458999903715871056091392900150076379179815045284820289953175597644092535346036908992555482933439832793327638617229971298153813590340708326322446857616525302150822911433971985033862112399186886251639244023377718448025764103329522414612799977535916651613619536649834613725948572018291547648102597422493952311256143898325226608900794393593950887315288541010091195384112118215008042812053347293013105401735856170910741734682473938863502559212684373565624615231536524238368005152680644620887847831863403374945227605089383729607410662317052944033732940782579933498612660359814640376679730897766443485397769427419616633725716520594566265571225634532084475360180768671384194423412308355312413925114829822871221676995972475146423140330426007665896788924242207830792942319922079293799964633713885045838690996296700673509891607231080128521283415638955214178664968370529198514007263512875912190653385721665542242756192299048098802899944435817942039752365908473027251864561026449247149058468409841736889395919486865477004197360524162100563413738673015758985508025369781149457360051199825584376465176844445700813186832697727662355905362811337288773874431380582430521827721014801225500838128078779189489306810017887348661505764836137136026677053075359197813007739332953373883664865838298594972712118208253095125254280378096170538419020602190665164313064223295224833390768035432850851011137153525369566573435394345116473694284936580576335088377478704980560611626764209279853776816052957372949509848575151189824317804273384276856511026226095751341312763307071496163249381404185855553366257199938717411971414668000260294612670970479871119577486312040777723146825115428353957617307321759563104517208517077667355510086897373736130530985514706531097507455902659072901300537623508489052654635431941757089138703071128755046920869297324379234799355922148400329221223080827142464060279173323039432964744774354115253570864567792119740276196781725009260584752199309842520214980333417522357628731403280803514033585707165522874118779519445452792948307615866705430055602280894025251315235731926395498559009142414617097686439207351136064837078936495656141082933444944787140652979069292970447718124687525935639955288551458095179938752535876877691307258026988343849890811748496136385753078216218739863303170934421134556365101372271949981580012809802520491058889581415736183737514883703645539191574096286861363162283922103990211806109011714260740142019564983420579881840208773856912105392876308390156297214847275581640586080359852795736315663756395944757871066545223904454602671335565876583395917744699056735826212891225947912234939957615149310641027556545666175785676749555505123302024616481192587263635643048855843333282498859483605827120781381296998012740847896752458686202242183220576678707299460998512010424858063947445606980566474789184741633643496133449987250002616865171534983866805485494191457880163755158459500005707500750777520927689840557290276603538921947008560224278709306077859150158946662296245471959892202678567334134951699284995982223160984000172358358111607645927924359047882499167902057368271867135841540291406660130256493431608630966416518856325358575200732066136222408484269093800127411103619426366726882907819032315805729832697002736140905888442868163920661881206281393132492484081210429422967750065270343631299910851550543025060241070058626231024071219481808775907310985604701830525416419555213206425415549289109215738970998930221379085715624095411944487388394588176661648115839037199293744705481944664327610852844086594535060237428329271696623526900039047526733025630971852993185365708326836684065192766486962238751964543469791711935340619957828605107252430082482551018675047510425962138142854120064121232979181734939704384618355603988489518765137280184353819319083393660865296137290014281522464436852980580982971669536357460140638444325118961508001108592498234666767287563216020673312567615151766487142469221317341001830782094860024664019171742906719438832840992566376549306881830101714165289368196467191645393316900763247666225705371394837634162420779847658368129838953579341264306194554813030315131168494371042281366271162743983990090041423134944517266870639967969914403820546684526883050825317720230127166610891822581941248716030536206081531976918206960066323842661021483771921637818752472390130229728239718646577326929992215253065510669133013290382718675717304283082199686134981514310045382359863735355052460694057080499898612965761239642260437180281896858362148455170151005415698188156743075371771576689351966919658857886849711265707468100978513132698313923814239833891316908023960618174065773909109732875517095945473877985224120532609219344524173793736865979804477969451507799067090034335140866158748257122137731386175227891669632285529540005734834382048202985569101035418828739695547888388268547415868088527162800623820040309695516982773017697658213812403236237373534841249680464567435508024817607307025839725145721989270015597337570356977573451368622545579109732739810482911520678321272464845084956379450857822424813321768041025741172727837364356304613766387443160184098123909745682998668213425821676108843641411835127888973833297831921472568749931139692762082880166707758248982334119294732435172751670927863620274606435975840337112862786475987624257796321058914501202364943638029802917297839908397478654746914450213601361954739963175898159965039528049160185663086321673145874068957051178836036170385846451377716116794385497288738616031259501339835519204864725508057743617597663951081914345518032304881622806242679747402554637088333411447277244365299601558182033363227271930853872746411786446886096129980738383799210089810200622436129122742913964463359529862352854795511628704656268022449558927551934608436145600874830911789293930871327958545254406346564829399690566860828739971426465631479464789966531409578862220092833901110985120904377697621375595352575322527759995977242090277755812894420916040596283287819826289448401630272766488714853829302849854346294753200581560511305523448256926840005148789321307135695374650802947635560747687131845391104503392167041729893097052478164548076793470035424011062347004165525531133813393229838262449522494912248974415286638991134855053761912833671408331564566977240782387772825216885591421655701805225680216660561619342196154935712816847400459446308534329600693979199817653895155292519199231365239676099776778421437802329795368477601987741706981711098495485007942787803840927692591708367921433005429444985010957064923132305023120106310492435952562244516096078141899488002217139260137862014750226197516794582648575679110145453031512870124088560990439295133676722037124615567159634628201425404866521024889984302963778632213655863146999547742171913557203914849703892764357246020209768026201535619947213056105022307286801472854358012985152357533786236150677081208470517422717569648054810897418954610428593036416719012640189835179400947425662458928344639787695471750898677463690555982722137362336383763358989071850558314334939161080579245338901232189428363968059785228242643867529232684153252468519431539927584648373213300648455132809438405140920376212185354287058278264409589727078289569689839744688550049438121340462599535117155836168155501377008376461052840382146567177530233764978958306050486252843011868540472209421572059919649135114973592624643311935935244034445307544132956478487364782665133960809615245325858859775471392467172574570767904632717867542956589847353515368205593343627863025918758891328603243189822706623567852119636921261186529607084370425650942044613987275467193751459371141326159352551376493943338935470843970635450603182798222010876782753647723534012082114147858713472706663273768793027182202587307000088565096180350134943992649083348997859950191437792916948657783070823018987928510690102330986178580031943836108670638280578300180335502748054024894403695077072225101099527867969794385793882126337594286594466072767941179659815572561905765770515730969195894819774018352060197738128464719054499391026515972693060945408316351205344010952851234573412519491863093439492241157891132121325288291925142178848599039452476604999047290890449864229785852094906706222046925555428227393210164201417402007030417428623359524609268970089616337803715995971351312802401758641069714806551989862084346802477241359782332621848669576099369086144417918508762112912414974650682410669798375539768336553907628475701600412942984205558384955896101372972043287568238304065162100718494727993403445517809803309597222063063660068682648583259912106178065990371707088917619434967029957024292324902891351396849918234164524635681911731747968993012042155446074815959136153826314110549381406190856376037556762178926544416901227925608606581523323362100283291891679611702244102974104002713848457442019043444857404359250635069462849596984639322322846830067855364974690049977898019345600249356376672020247250545961695085056987692558082277032667285239903249475753795476885982427456548001768744193230868389660546221348398804416448514491298273925634034973397913958380742973871775210384317271213253025186926086553763481201407536368938634322368946779565511973490630490305290937168384775021859139881524664189851493182374779390834574794284075456822190470976392175025226904382708986363291361746055912358104513719968936748648167698099212218283360611170589533036819893218716645412205710060792938311208565307863475758580958835556364631517321634115722662906638307924331541343328241229065364321660844297584848085888389956292419284411655925658951569970602601137347529176967374558608038445683110134632816357657806690712197249840223321361710769292366325235369932887407551882280649161370122855879954836083435278260362026785053248484960771265559727960270049327850105300082959426730639194414883217765447356841565413898022837406029901635196530071369486779062623883912400716572282875036868205246356196884524950054513638102439098642713204269626559661132423171426879007170625837831608375506234763526423524071680201906922221655415594793377973990741036855045421415401918686534782346004391771109375009646557609896356639394420115150366284669185119884411617015094398982935236114354485250624858213833853014465410033658396196879855451737698589404916269789744086289729866218198649074967338465000880566805910673089220907346102840856363324213969131986751445308172271107207638843109928062526477034392415873474487004116116891555465310073385796795445666615664938448904116564678819195076467360243698722116742945173452116852914824217154988968621008149646223485727558576732063405276093135859783435227031756697626632503054264835601563071842592776568569137128942516944461395188522438038589634516273700681423113553654524980425373565785955115993422446055924656809061333509673364487604787750494969474164883888160892094152837857448218380045155993391900527434743783004030725055051377418556952583359971480876573979611185867882434275398799317398162545102332299580589266409157522223176054521665206456178616424077394903454787943139387363023385533711376479559200422882761529358758074051547287011215450008424322504276894514938410840582908687191449721230769239797107006717037009760148694821626850850396440795424305826726804288722079019411710398136024798916522885613298025600482542451041799382081660983046546883384395505598282897544042673863327448268415517148360848592138653994511851674875403454515428156903629657752353014253150343141839511313523991953665712677535139630821239409003336737856526875994371262266800405755250249052457760038978655338493921289154959948684601124394853140479945331841784733610760401207415905155529953458503023319728088185648047841469409670587534430256678922821879687484534624795786537317138341789574005556509770739791504207707608696549955333341857766605453502689688055752838548888692269261410788362729528585343504184878180527808880141330595637359592009398829233804023172991231735649629394603766368084171148833697207998226561643992671991495194288631177811353644041962586764465130600050951132793850223863879487254135207377695180137224318199984709310272861148975879975251034090538213063224498887185663801807446965306621017158379775140246490394102165556632088624880202671919753880861943862033603507181261044576498227661538973425606039012433153089492425956143321285613332099861868986168948794689509615651045787143964144195761912021321556639106242882998896589024218625559575905257800413765856858338236485894688531327665917393079181462205426979098072153545086970071582556751658836697084189219764633848002714948352767875556333022456006989872952375531541622663121636172887234233715095545293367657687827567204276037578834225643458783480479036855057028682505181603392100111231600847541988909750894003897599108343426731297978656121918042773055480808827627923624235116948810060245610669700902662303553804937336901262821592732639651447931323593884647956771631105007410693990063587975482021982619725085694436703298456435243045328602512757261215497109778212344761470473797711868475430347064908908393413660000424786649922202653379939950541743849913224350803402495800795203096856175621784004211042425940307146516280140158496598476942275259651478566957816426241709928009521071719903444255748336917574359624459343106539201685079704723199187691852908223715590250360879331366179481075298982021031912958633362980418633830346135819355719647829815352858545415400522355644104620043891780693047773090579853560758702722680889593290269536541756151822276404163846357470844569816579655160520470737572565886581130665117097487711533491433710905920258206924885543070945105197221710459648500393213342066225226783285895277891757213868483572342693166539502541471555374434008715180119099299835972391550876010570398513439743682598222956736758098343925801640650911045882615003101154879201489502623389603686173211035724669207628266719089604354026314329591566596735821187436569520649424943358229869298772546726822218168550689341736869128752275380195554765418329432652787139751089492815048981723702352496301588822578866782041919499878271929036708919330736852011353049956643199814298665722316250891631972566055087383752101776035477716097116850914606933556157642421167957665887159531960667125304437895552158042699322120473034745384436379654693070710264960001470203325123092411910525626245515778998852424288078912737316688905499251224290246455913240568476480695276943271667670398608697005407779478681045012399789182713926670530161179809580716714690097793846020691071515249106264529645985204300371607300253980233549496387448935239352954955167464171610915958073218238271653074503777912415087394871261229010030030361693342647879392539222448265335840872752627818061472516602912208488050948829219603764404643974970453280062345737070304962786422065324867243940981203104735179625079120982847777452913724802048771013053260072193278780095488460112464289544406371984432218249298954484521215257675688976533382975842464210609902293720462685310270649632542327329677238807011357730470538328356200023846023936007275245137669084619016172796357071500313255717537642098270449254564969719754113880845770061895832489457248079752305201165631181299857536600093674950303797665615202625235694764536264131763135202700558494957707416736991858842135860129553293596016273711585297466622620649630787688502585566341055897576327084614133392494478732144580097712459708795403472267536167408634613463053553431166561040353837908986984981481996712308388565787005015960748421256839957037220826138150049105939871164120106014030658742248630446761840230338826820135408743944408167699798727091975440188794531994017165014150618491714017391516224433875377777867431395846075580805250533044501467137367151500148660584351730363960851311988696016583885400324752567651333376478215444235160632032023330779555205182905805263659274341105705132789346066110870736046285679154083462301665176915968601873940101385772961418335859456773130928573102951611159187693563394112397484373381672876144394474650556606102886692815260585497607112839525390835771288711068470804230257118587644094628130409623021123129233707241171215305001465985700201765501698036582182556271311197816188442882856072810768149042949999946576108232184991579208264433356556006607805517411960222433852598305043852699884540086656970472534343002307324362716415206455010839936955968608385282332061804137297146614133560077752028047696123344178510392211944360812563578140202176927670915619891677312939387526498479764116186195200269355243472138731191675527533247157116859747787481168260638092389285447759398609934488677490009131112081623536596659340874731388128325944486483464933576105762507059351252174859396133324193537217952253694001770996378178437006983642188464646294234407618955677221568800061674660316452433375656913789977507689862825348777573071349439315814725715465866809847589233674467139581345730839556610669033295210511460349359784086854015050873909899067855327469038015240131632315150606369140025125574372590709430732635756174454329647037489091678022317982129420574553159724996864956896578223823533718150190559802113320461288721977139405170942186339037586166090480642109787295043422126543315404876136782061550445688415261596219085530575878378803154779679759304050950441519979477136914454927876609031445213682104210547366206130237632900503046353425261841747832951326883201012999203051787193570280467264259174487510884963550864780585623578675033265020679914534935639448126142576995536246080220191800563309667359993403555382128631398676478391642451491649755034545054258687260675406962580122398742549717300703647223029276117049155961269878491069941623309159535516849032217936001175218423784477279730611589873662943211296277969712917610744004489072384957771475677889253781558729575816554095657012344230474931228690685615561839019554111967816569884294718265301996821594175774503666048870770637494132180055332860129248429134886013878156752292799831140721103664746487828294482793175040186650158477522573974422808421556900424388042956537955807791290436297464327577891908005118162619381362606394876820751670624085381998137705905808906428374318705008898828297396941857792986403510632061634797083063617490362543665708928597304943322182210800951884529608344625344573231527400247881809058556062138955599409333323248334138981106515166483131378276259889389502859388037290488158594917876563691322815769780424351313261023315074816627118150441681396341083660528894465495435007375055959678015908342275559535154065883193525225481514788399809486221604971999668351252038855863306213648471954417860738135156220535556112475082275002549829111555729951091646624513239742035822566362802175741935752431313304561784313196796481504403376770728247059605749355505209983037179963618127952209921959376622410610831085854983285706427238210206492092984470045780432991184392957014137357128881092117040764260265935247836623798785624552741912446335489555109060741047839397997804169038240662838679411094646571506001074475698044769949918374973700433153548603415380253860007071418996571074680378994950557281495613889710361876280079937347853699555034142756275348756801005408536698706819025562558793673924528540901224563292169507548725382874620937399446415418231537292681929592776738856272957255525957650447362510753486564857910219209943550002418423520909078098331001348264824950765246463485267496424096759136063312366629622729928200436929010443814405290101263103552053020280649415959472924310653450563866445368419247502732314063177936838234369415224343102507273288627191714068769201662769722971986318273629661546228252502584576173241456046169909625664916739899357256893990029129857960514235756354170897023648668649129819267333352909002910915195497091814462793120866323472426861357366300079458668194263629057154354084696762037672533109448532443411783775095074704634236387104509281595280891207378450086693781644907438344634107703533466275778921585626488412282450608477466337106676975574851433678412795327126654279349904191691749499541310453557691629720700653536293175034161103140465203966383954120961492220275119617549996147086507436720294270664729886728720384976898622133424321167138107278398807732320054264181035110624886061804818746153875034995648065097642682966564254393533394540826398029040932789460338900105148305396465700483922158160732083185064247407387775759929072412318616547989161757846346585513503494867187660592143722381539544537821458474068197904538442475211685218003819575574359208503353779965428286190120525082916348835647599208132225635705097288379408859161064207583538350154604061750155633839553391309300452444847793995356312894101576163280930948651562623928792450526126621633101557171559455708556193702876048252708795183999197197146673151042105090997820229499411430524805133456457956401245355815103895567481689199009699019775000990194725721382753487893989132447913891294637654812648728774413994438529526976737903692160409903545050368851838553002393791249452967474737270992921106235369085800204388274142548324573965015613088728802368315830613633559961431520785777209450861996171885119855053657377719838703705530808747160459472484773374181251978381744429213723002776189629131891669713132842377151925964921150507925421971104561251886694656022453283909882209700394855293401299964436426845899171913569643580278442325755652349559954699766451561954075044160357627822904246682655024378404971045982454421567885436080658510798575631296569583431545142497605534096920951403192503652490176095676117349055115119232064182914924587836239342259671570915680079705992510118201439050310580816902341485927202486246807124738611013534501046424830125438174530238652882863289174297165265527241434442936020556045880872235805441710954568879562887176084722049720792365516172479438180846157490635321425188989080321288569230845857234103066998109135245842966159537903616901022396262597734856068176264404319812814155948921196848373643523105162577478171448084745731021733516779930459031893087898354068588093200334481822355190028226174393130504762589090395028347301445142187860072613701812981232354323566532197765724715848261291605591927638240072585431808269029488794668388195525574188097758523257647666649733790619332978575846476388219671961426676897251677833223949295577441147373974493013954101956964551000623195396296003359944381200902152050663694612779913647067727595936128193875332753669689142215089935420205470246030417316135893464529674555605088956975211434348107659287066504553959753270040019428146693705647448798092384491750138145378033022024519415111001189440536907178937285140529783475316836042711191485355599946432609275132682546390581874478128832276717178461477681972653774671893133385585470916033019799650801534934215853579566258179816027214754407600244285373474609082148754887185547168843552284225620964546840711696171907575118928879609779245563703727593861488745976577723204496608958338848666762118468586938231350460749887286503448326203141181387083110901910711429777604974476055025703040253844542211509759260937831724107323472057643025049744041213150332204790558050171189101619065165863001131314727978047665661747529518854169199136043546994522045647921245084373256391296875488093376201850510112668032099684806067420098694053638840038553532850869179356486675103875049115588033144717397641102262381424164875583374922312364466190416101086079218638243297963791381693159973200816286366537736968957542379931445606011545229371639069808820682321509966468274896161861967136452920730101257941779431610370131233618180151569170265573624827717806820238798734070468605948355184572312878652605923142705577632341696104326223197608679956784271110439593871761375274373718568687027852299842059734518018676804588265539623039760799135728635007611962297460591320324832238052223900042463266083873277169105938459474885713795956283016521803576882932798124395093600574155289864630561604324518583698410338930467811288306388672878568500405780206035303871345202918952760202177084199665443187602775098350855248277475510015667434209064998926895902288874011730048932482713766737503222046587988884397560817339156936386345911743870817218716114714529891848345950739952952115322906952427098308995640605257173285037126945779131260324058543915212561204934621985145292465784966507932954588618601710165876568166793814098159915046695275204215121010803426962042018485087502242054486432803294006678194175714549145580373941702035598017919326478082089794965918655622268330054678815618832888359107648837774537962363213263630954249894385562280356282079986686054220604287787370934156546992768814690047645991671204751881721151441307801482883301601961812857222223272714570076086015178894495208504767589134569152894343711210319121233859605246401834520427356173036471855728652404406446377505399039709302515215028654862321521043271118484289947000884499268456130633307353091040310260947773928337954880055328008493891539445478889946186634715977400075138059265151583649060125282767799459043710236294707827103033929568670017769842281786897296830715684636032717248130595521357071571831293312818745925403290905765956639978552025564875192066348294728396290678281540578043571562271116432217189151581310061552879070118423336303766945406576471240080917003269566665188409107865838905649512282987739921496991760643198830868183633622071793610576018686932436149231319372145351162313343223829630828905417337061495510024286278810755110449721297736715680062832578401123747098653742608535441191683555844917607193143956530198026431978722677923481357631867567354474151724033118643616518124589539853245104432348904958757982439731444727874897537240748244968671981023189207781133948682078774094401162362740244013067995493999318619414913717297105954421589714735835403750466837434019705567514229052113664811967152110246620914897114629047710108200080648355693311458647865098556676041766797409275929104926225651336381699529455882193489466869322288595651108593413489645179828211784731470172133384319435714241905923294657860474461969662779027379662899485812224850810899466499998934256331676055414158372860000887195087155679014462497230104629124725783630133858426917266160537641671544896584019763660862470384300584464517595737200430560247586637887748695801012189174823432554319566656855443774794884148156745440261881270584986783393534027292893499323222736846135388449625573599223653140050105711843567523035169174310300858372393433007428778339281323868624078247020147448335796350620475373781920624780541193400985234320363634814429714403383611495875126985684630902369938087237332176754804483032636725425811848714221143089576552392429896543452000490513230525317952028132533541845751257675925965260502617466125191427318469103297328032514120825153582297024944436562512496513760258972686466626837498271445868099366695189455739507768334361372768732879975865770789996473493983187132066276815532542236223423114933835669201581876062854368381775236422753743396031231019903992436497765700994904371078613262845495940904218641856169448090861542789625286615198087500962864248232862216467233119151870568594019545030427002389598322179046506172087823511831105307497349655983496256680965296325380712220920356336909432435450242925787962944255656049987787899560906328246269297419259820024136949720896744771451657108968127769147156106737595624415095325216550798350305417370906090623465231435784470872493489394348506527437483083399252458843427305631351828509228431503592397894590504777164385483273496402729735472484280456785804023844266592239634896746834995410657196100468730179748943228572002452594947706629180171673116955251590764131618053485607740169781363150934299380285425481525306146105363827151533535893116961939706598574678129352197273737753152490032299692266427721648500280856493516143603205884890693389389572262029622864283605924286740015042467265565016199814685170903385657737187561788416128867057511433193600167880296771164110507943663075336892663523002431614922667249321720116299181979489130714418449486276191368717205631207315642313862372129781891074085789225289883639378303699899198915827927554900534221939977767451163590794918120975142008747977536011834726045982202836690161085413001381531972659277056723104624513307356768606410083524652835763017912288787687009786808424906842928978807509608651243159437213912968796200913285125325873898467398982725348529161134889383608483967391126355961009624407504624178474490273336039895609777017391784870179990908009780656911013305074912950035360800140830282895264988833140946371620013352890119582208452410401635052584789516752779423463949340427485129186183039388018245274590773288840401711165532972476986458352864126950817323206823413811230206833670607448184085368376464391765682819842178525486929453894199725124895865390300789001876006994930817002353951230291291950380407759445184478909374297193417325061147665742404839022872716603605838289636956567096352242146588720495888913975301307933676192148028871097392050293518834932930551118150373184387990686535941897645126267447377096233070740199313477942695197660820603280078050968810783005004794194080234978084646218423472322484351853608897762098856173173618669683737253855707294204099721535053278942426843268241457171355326212323362924688631066794932496502609515023373099515359817645802807134282459117450685792856196968325032738597815510650310543374937575864317393644782355747349420293472245225718355769594566850831348343833998719938420405415167968494210396313078770833370948443762834220592584109453567351029861943518794260312968456751412591637058291898863180668149353348698626030283607511383673116127890539162074436499750707507367498862347301457128738329315120332233876854211369681638025267745391949795658840838210216779574037089676038545317021911247671871506622089008332866698349374353038052705627048797600886295871980892739229480966937984289422319568767429949306683680731601838326591518330806873743832868226729486580919031383233070962754380312309481588324162501085704747351992726129729474491121416419075364044084988712501920837835667745040310590432599441803185976241794776864989003523589402907837992570683547093525308909297750358533217586400575654367190038555140346829382872144957714885487721022237213496442970137652685905465465644655560030993102493096379479782223183785349451770762423939050403738547092570666395978850992437696679970365233177187562827494429088392433230763760180413947663573972988788125684639406559957829180198572211129348134749056487333295054262269947660610943638675991385754719910951141039315837944470097133374104040771308228297414451007948939027837970044820094034605769838996583070379928958518341214777179904355959525925106669609127089563652072108650647844792053991320589564571592027755692787063063984097291150196566990956214931204208183169763677877196862023598903134393778164044545043541812030707445626587835758684160128396163498609345789527733348301107603226537087763914300651213703332746413969629528448671701195082452314226890285239734887380167616161976314596875279446536006931217859418019213783799837913199274547916548648870724918819810744167138933585049020323906445551362990229176814516172699400529702160809614935917135313193625123159997520632476081797785241092923595624100652925479876756250921897432029475823560520888074839971724724682811249705791013733172238356417065228719360109319933787058241862855690484419640068412072613729910097646798030701019637188862847411565659857918667164188197973987652817371500010414235503045035985915344937780004297995363215891371782736260443591428928120123993272616305460657285327471596031629723456878912750493542931047731879988398915892382786917206150953858474335727705480136734230188766833758337369253035707569720902717254227577651785056520027549605646123246119438445182445031979920757048766584747109426260631508736794571387453615038143069010084386484441501380727264524244677320875307502989419963288912078820199068716798391622201181359915880645617027391820550825293108687210858767065820986697295948691203154357384740680104020918871166205708454707369542554081359592876926674418565997688578812781889658665076355693085939637256194526953181382716204027931779529024838779048035292376784978375843186636710549608251292816604966660215632157318099943202043918455926818564059431694813660184603058900569375268982402294156959163517649196723980127007586457984082554307871307418047836736968622756274946349298761606804121875731858768597197865257002874274266644069665027221151985745010472049846222702302435238137734724525436516797939172909402946229751400196136502282006286306025117404094071834128197611434893746449864876515928232473011826384866566406896461631129326396344787152833777795852459145902736950612790593971300771914016165749817274834827508512780274156996812410196096966129407745897683012840853563441774295311912383731782691934677139721143619497778871496692266469578899350567841320282751199423480460176188213921379020532721687616697995404327627087478872955085403975814528893287731873635036265297770487494785623442229248042605852918513534301235079708074330680820615613122060981336883808103336120498851172796633197410178860967620437540917389214649997289752190646380680406723794692556118136079329436850145958854680685286696044338812700572814405996280001116851783286429540083969948201026049113652255568674389467674461367080286206338176644778111727452332533318039298976749688595489725871796582197021179194020926881778969365496210442068525987372395661178910689188657484577079533791141910312128895442751288051652067407988233839661548781694225235398066280683338244510286390207583584050337925539402330131876157153512194010376350066943585632476400124993055594326218775433672282368482779046953545328135425161045905616047427490114613407300016283834112938440944540847792353001946275308524961060792869602545352369991765616292191091003984784878421735462835313165620104981569668046370507337289253018139035843888082360656906637604618019108245526397995985120534317626539459249724684369583761186147994010233480236367417147745113741195732313382564002511069726637649518997599043730748167474106360490810387893408801394804132820498044437152029855235453310718391681974689051446465389050809016296927452229883566213385393809617525827498149040292926981396130819784191073434844715550489643366446387077000626264666244008142976388212187966687263458473084219964502525265528748131676437176650907650842654499591884040662055638014155040718533118010304455861155149346910781674204600239478444367425717596276125131926440521317265741505717921788447906921885903630391512575757413227283282429535298099421883158455243420550064239589265552671589855847180288563182452540102221317489316431051426939621743793216452128027852984524537974258614864682154855384875079456964961488307796745936974333933264286077522748726510990052298184486858253735422575247420972723971524507050542130577342613323622926341623940618264281829798302355000890734476885092304569961900319353623416653360986435633657437340353276673156465383420766324445597170068218285629416598133787755774348337982342701962561857761572566082296337220424575899123374585057704950143530189610444382080616926575291399980987870731051560943230665156620789945312976406648869482610493230506891309095906910656703908767736490265864867957720134570373416269521257381848273542678166087068304605973202583607580354588729446591439952261857914151139874248379874067649257282945251741880755106937402987837372701422163041593736636184372030101678775182009871965445611083916478351956846803034962950393476167544414309550714096807027263856721186899408864261027315422084274626633926799753623719770408144699034648026763438877920452345596172521299250948282652630410730793967022401796838862309417056192738818093004588929759123105855545553726958408934540899396788306734518514933325821080146420226294615465026862144543531897634400949769217211839892670540486161394260159158194032550881719340618823354519761996676452548702564024122305823211411276592155991414584947282004350315796463793624204632113223703662436351640388926528507815813587671131308184300943236687485617170784232907786739082453364827489821690172671075926767876590965610996680962229863434387334353650549558427785727314438977153199485563423644157667978342447397621734561933358551499581215267839756016980466029868694784061657397735802610549588195328503267727410968982848761930301636535079365476386017908303656699083480955548312371173800001144557839765553059517240438963562504989894547441696539792773232785631039361367234944288379381890384869839403607174375589335286038935920142090630745057540488363776376280256726744725741189221461144585875596072739212164931413282795022149873145351306022343270030356854958214405037296066062057836540314891443295111585114708093998999477266720500963749364691118701354854990176683005986901153823790298488789591639797077086115736068463552408467325577440662396161836639963081316327999087269931729808953892319056871281189284199923809933045117050648528978498673535209203541814617688940554698368035454445138332773459406638575369920201679913174189754902011276838942067782714349418024883545954987014760885110293442737069750774926263428619873661049906102711031448294181920147668229502081956292765802064630021509135810466786131957407324292904650825128248792370523731894800833751785218663945149442640382389199204536082835322754916156375099868779601193201250623514509355484317482598004454349210487273661308751447940987216115187145769730107564058935812279395947576882501822993284859024193999574680050414714256556717463480439737009781313803461049780045916178397736221110484621517991234968175573359660058279105843498183080689639975982205220819229591993858572482264026350968347616259159261563972710295345653576331071834114425738475955332778252542727704749737466377897339107450160000467967446292784644708735200868680395205965588896289688689295746504744802624090542518301116364064141840136845161755435992799535417584196152983955471488370981141636064254472499407362327849703750592667311631429552338520144895140926986954751175437252868667527307152961203900510991926549733035872679665991580502621479514095986495949096665570947080357150557554368282356664226982134447599925998858032013408811728192033044613344419276779394246906847339745642600660316659106804337078528211723351885668686072993856761649694742175983834886116074413670041426022691296806195336287592042857651942989689506120374170119620720468069491433794858813258082192972455573802544763256753784016478676558301215954487527538053169594487961766928548988944265125114943643489354673576664886796716207567155968679765895216574290936805075120628934050769988320362311812292801547980844895547405329577053358065100496867099052321280304215314874580115272113802788429723937231787933142646107741197377881372334684650892007324939968199294135151409586751130367467454369602883817006998723505964152606258859839182561714028918978673501646374785246586067127884000997575472443293192019367929522711301331286861338824264042400565371567738876930409127382096219762283628321487339099155329049592778519029699698882183290632358896484990422933152145622846847009145117737115458408763426066865705796769562345038333389310891239713005532183646401910972590092180277046922688857585942430593555799723050167999704118749004435369287245569111301199086687161527117122419261200854173054325473948727692783072514887910591565604138617206517241879621713252908363002816580478485044660656705811679764927472409287058469810453264384819377991926931233625857135176138529277044920288782901344654888881397422902918554248126938673321624834166660988984285064256415873030066707965933134387455865365454996890684829672861628571368739647021177438565154114729781358483589406546966044442090164065901002285934915593967801288875851795887423617930635329577132068067429304579108779768269668965667103447701644139477544477053525387618878940362792154933273363993102676602136085728977532249409409836814347725572460845739162624534301202406152111991363695306949882230945452347344475358746972639795907927841463599502262046629756258364159534510188147853222856981580807045614824576821909085162567155266864595653204700163796785490612027219508467054816885166963415277687451905912884598315582750355922587397912409373397834793123768397025769276050605531705233494477385068251646875431066451994482432712103506855069085947928372499403775162055380006619311246092744087983240717087885604790339160790367730497813187789395864589501665145165035790213152568240535455849212900503070987258887651389898990352476631488386168806223033373370640119458576971457771292526293331390879832728333976185463347234855600702547963862770718574903996416025513022349051545131491578658120218916067333037850063312396991585987017649463959685671721647777729100323429700339427712439871936280541361449499696582793795623759935853444502651237444550003907488969355237797184525303797634223775232165585008760779890819839565133855353476621714187498193738120001608120317961967542692640815048313662636068113947011379758039561895693822486684595763997697510791531591974926410577663706181134980176834917089232730523257886206077363568491555931383601611238426292784905462898774276910214966394861994067101278822681350760894941992149935903838288140803268587433321281442277489153045983026443744572675456275367082814951860790095975518232944008997765687551026538026205419064727382385015490848966153907531971439792302169798257279604041664357630381393264123390654840245878646849254206329611556261985211137643332343866740201904688597525972730130314586865262824324184241421743417430500861287250449480477185802259896228579367053135617146587032159837253998883807253365952560470465162330270336664172165930258535012476249373231872733569109779040886895219547006916388887828082521178546844735277328712891534159471551906190423536112688271874393313227683196131284369942082081167406421704990292727944229544723015323738174772933563119352887287512420791831506353675265610723346983533887184415947771623125779735071231669237045673375396870099326740633749536712726406578226274828482906227069641585265830800586555545347914142952107745889909180447927881318474052296600291137071553333265999287865435931902965598113657849325550298108040883168601576696630824025153724402961817675799980357861065773549382419848507177642670233098775371811572741377534319488051788577532586468328938492332147440863121027224239007628258063970995101526545494792586911778548631838389767471627034815754070162473784868153053293899404821867258555683042587281326005366811420802510288035016830050423595960822181120660757580431597961028593009094189059610111684629125570202360025047455385138627143986387285820810997153822738944149519645211603732033144148878509078463481006732690346016760176957475290087431044604020971136068630030428606441048674161354749384321618556848231892654918604810138413371713284513736956632097579446474237016985391566662012102963080868589729244360984219704450094129608992038988346747334794742536129437041443674342206283564418673193025886651753320607062644148747558528555606535581646315431378780078772278475160543107279858577962811978152438738835492577133943665574997374502703659147551961409203105263614330078403926480639950144851388542304510705891310726893971673938774204055163481329396566292097853615673409741776792802349764246617509360768494204412607979542161185880389165041081770650385396789670450585404729873666414062378920268779210545567909127512900876697348267238938799327240349083750499234016854950029946386614242019888014084866352563664702232296450325529922030467539050204842944841185613327444230369952096884903513692835775555740593517245307742784456645894908644678354109723003229989747231056605204964908506165601951291307497821805928073585800130080219019575248124772053587797991269558219518023484492014646787757793798169407173153151322105223185954236996760579071983300921669039360088456827215558117478696201501440578840805130467621236387713566370653365194068493483632530756033606610223400949655537272535366378663283113965461323632982982223493659184362081184502961897091403894212309588757068472029687247016688979864384559370371787066993866706325204887542521359676409672922475583043437317334151250005577683921711298968662385318524515059277842239346437736985872793641417196997447730194205023034933864280477969552662281219839094182486260139823092759712276170356548518051153435953722034216955088505551960305222064054474603306685210176574016544712590711633250223025623102934825935624141971770192858430673229479128811187147695472585343933381830164907715339428045667259076348864481509465989806753341792565469274610656768758713822446895153008355365100439354833027310557226122417623350476707246562990894028608607139760671000909393958040929480407277065740623132396793248911034278207518814924023194013536579233295479651801911361461978274729863407046945914939324450937097246667772567630435448714494994016854674421368207199666589900951828362765979327855670305936341151426603093063550118036450925070124163507319949070056919018433985505705685879636055993032596140261022428473944213790213367823476547123139037620378605431468292861493646247079969078272168210069339959190188618530797145699374633325227493561963642153700632421541233569797912101424614370080733588924913649957701285134734100721166116691878514966115214714717779801485484088869376635856628411766760779241032828002935892176771705855524798077938816148885845385745621237543635837108618052309023279562334627333465603491365960633749616311070387132483579091822767867489825088167912163408328968592107137182037686176759531076144374866240999055113760772603812461459155846383261282177235435624118154392594677991869268846393943032562226441064684905468063897784741382525444329021555751534085560097464318125125793466977921908798653852627187534445469639591660401815839336343365126961096170679963534287895374465664979302335058366201118087583289038525380019685386555563873086489630542729815152336536153676803392575868976288095962550521183048109039076591543057861592813997618641726487683261965286259118615144998912370639334765731692536389577128855189861646623332980566072638321918731137427570295918577072169941402014210521249550279335034721024609163910595789278513601306538078601849987939568390051898951789206158518224375323594918706568087462299200646515134183413841181464306821242937093287592729951370421302428686884958878304909247836987178963594815272932144406983426556983270301899038078822953559382140456289251256554570321248327932803418949941966089068249144540582613167318173364413573073389006615583380371299941725942131610603205511617588529401702732771016046861595876063385912210528992135355020647795618114393418743554402864620414483364863614781862700476911137821422392233219840976024344139135775752017670093751600164346345115035112387405618187638464789306973280518914064151857246129818641404579859656363322975565054145434848286798496595770581708014315853021031379451533017651966254946494642865972989183869230800334679480057709613212138825649485521117895999863850845405288778806586014662587811928554282293101309606141012691885126258423071250960108476106855160100362623260864887734225489173078068131350106463540797119558523457551600591054655053022153075545755785338692543647902232732871637820070021973742085657362701017882406044718699785793762590851661292278201255134671811558693636210700482710840313605369133844840174353906630996551375427709580941779351847245155498140971601910450218030537857717181988865211027265766458942962266682800643088797380068919043241844604051646992447807365740813063188226668200395549504469608025085599967570262358734821359951575014204996420467341420848739367295533145203126194960998969470926969340109074177100614052662571823145295241523603415082700091617601597984473075057145852189210634161996326113635788843545331897337397737686731509157212719475913411798134997759456779598936674999988275938900169525377341423020885629527928861679134000236662540363338771451396343075614787297109176921935351442089964636290767573267462022823334108111839242505922496980844160623838539987661428525548438757773875498092579862803679404577221142798280168726857179675046142130216274533716679962500431649414694368870665614206752343861687077257651865441857835193688377430807103879959333662869914618211930238361078679137264358841762879872298268384545754923356999077415818998927021541976867883313494426621712865552488825726181344712581358451056444207596637921229056132330384345805569511198631281453597169020866512961224218884090362929471055898791350169902397722503310820599092200345227515038340969223198124040571598540503380319475831931759102755515817211169220636248131513046214434576195629724405040861436502135727252703574707131826150171642463956984817028499618546151059130267924659162118751781183632114427371453879087436398520932993982375081900331238505461171689688430880600556266432281399586837254783930571139651478402012767638864389237325882970459359997403895179080498590550142229095093577682943330413067325509406615698243136478562814786726301210005450517071017067809528169119784434163293265024649009912692743647276722803255018403662708683093683333982986969792476777900351679795560695669766973293902508969617254085735740740173671839838979819034052907723299961805371316548195786667508631119650178273512435058301098224173130007943927425343618285691089377647363206593426891584382535958595668495840030834504430263450850986592574656538479962027340708422998182068224276933656331751899067368623201859700220256999404693942036955471420632325147754873924531941492436822302431074382289165257172223168118753652577807067037936455124585707670477537601733863465127748763006311597842146315401799018182937305340780414158165714199648158038612587914070992102921654024612699827627273091599641591692699824578226766569720053907850206257300662906909263865129809546499569327091118476749139889251587071190335990673291592772766138412781087424890622035004741557610924140563656105488598513247277296911118640680378671726384535112550129671852882092863177079730130552426979406001371339423648270504691820769025505843175656189745472301609545070586644589388393077273932747819751527127204585401027398773436395300695052671661905236423800359834298589594427671382859104086400257902879084087606561592558994632786153783174574199143653975390302746981386610435404581854645597689887075873697300360813545884380489738754627514385622397095047694820129870174609297713321395575691852943282909492155903986643393762212924103870447480429608601936709178539633170947121318170194793353718720882095336595251424768087728598533151379803759748448493761154153881638845073341563642917364950566447571716201861379617541557192953011700255211837866457891688245452449964065590115205085455095644212448617851582072791993496966784246620279247029947073650123583727713875761285570522958823120706531022218085820846394210331530098450426120097876072165557543170175815747241451353544799342360183764791388037642850186921679360635453286064173564943436672214226701664271951728999879391232058046057254363748316663305036165480251683976579390532223695678909806313262617610123904512526308882402010016096521346538988882983565321280076925220646994802847078376713349283353085436365914701657908252228852709585852774191623713082476204674056144643959697119730334886357102548007922861834792545103586132375108697395728968987725589541809409249295720592583482187116173416071844811559964927611093809714612965553901634899548073027684720146897637243959110427951492534292525253945991653848888085414486689715155980597873164915635560463476276846299828423230382947972957930091822918837063525848851116275146638755997391187533493922618258408134037595706080178443456880863216649220865782407696620441469944197902666318432814539090488882928487834282653974220508965579799218021957207372802009462773917428272389149955503497822033439078946609477627470735147332343170142136510615867827941495638416242488623284756478930603345498855388549411354919528548716950628686327710640811618936164743096947654631921165138755023515369847972628975914911672824379348339404356148722750074515229433647055134549136785380534339709912121844313638330982823481666365893564801875855573876566808446630142229006849444375899865566727942671302283300758987214885961724810419205675063568551256815647771412386029253499731679717350556405396442749905984303344814941647945446656901665780532308133514630695547881188418080201000539320214407829727180300996919442860073592117649001588227463688119999265956623856059213487310201047544275291647442128339386606661413876006123449008756133667351883199872079640874067745958894491006379823576627684510359055828861405079268984251616342061634708943341376428208269216708520458812254256186692464292976866660604976360918628627465386682020186237805317553604211211199732859662892045191428074722447254027044870172015045348307323756577345004473035012252074742896182319127883123710686350105841703935910788559180967941055631499496122663365739580480256714791999670123377945611134322998151660141361173919532713186735196314815659335759131082065350866632061163494829108524736561539911667235584945585482397587696820413776259435449567793503950012776010174457408952307014479831216382147999553234194872793864671716398069518148500654294898998543526597812380190471798409440011730627868661554951619804509417440349755188004925510296283703944330826059835398599640037912801906873773658805804844200458421347273737018624875976778112564368519766431071772563165446006741192426688872101693967098419475398061293428255607990509441441198743566458157151636981380501795505769864823685986815474475045748785022869510556670856294057579929358608050056224092994519280709066568570719941723840719412798559278953875246427865072698091733733689970341118305607050205994391547324897684821379680309687727728275944737130372743866556567713047972084869887452912335055534284214638580816626731677403765653920503690054745472651546454895048255317161604250785222452043199919001300040616434963620735498198095729085935914294243740823675209928647661615770591873603889131247511050067121768729153354306895235441605582537611604182204529136939931918761638947905479858389112982943169859376564257132284646450579823299949699236851248962799392083387380119227964247628527246454383528687145310958319675411668887696052418414576060992212346049000331279828375986573228077626710076614118798397743963644507083508360673481602526275688646208249557265778792453462673953090596404815876359187102494514390518555404152063347507231595749551059930202014131507026497439682905824612175058341220381262412446472486022995191849228034173676972661647077125160991801597851896582209316126552494063450163059462715504519828646450535488785261460241983777870138705650937061059954628779309097776444174017073839934108864791175056376152045794150416508757318697412702847554360899925026178761707176801660001149249538337416363722629153101947106673037104865380378079138445607577679722105768077541472422543800005449765820174996643587267044179799677312224789594605320221456808887997723270723842436054386783666080407218336240936843519165370495386544224702392758254518476045768653576193937572178275226637949695718486264672472287459262979923022383344003918922374037293753153451172826094376786674014146000869011622935289090509684685797818561419469840767964600533556944457022978797458874560796971819686298726117661616371923522658808531717721039874236346866999731776510318024095607267742265714313691958362670965036179590869414871617789680366184207382997437567775976964629423664470463675618227279004721206819553035010751654844287490088558244523890575282189174726670809557409890258526542745865591507630009005345564168105254586586178585036062029396864711795778526909737449218621446153689885474292698179570520471482583154505724683258629564486443380920067004153186375166214098447036069890624760164224718031062100535341530520459036612061378677187766455165234431522537417965954543790200167321131511783847871106740897260667466416258057589407187792710969468131051647620271584390619900982762185382633235823560182812168415670214437559097443204146778287949724150509096535685351792468011222025843838504945331437126263510065469700875479823660973868491957994302421990202877848470156259393115559667943538575349397530618414677224661689894100950215984999152272954189380779400130491334233540678476483818107934032464591368698888598307420858830866468271390411499168059100176854525984419003781230409746090420233648262221198288247065020272862403013834980594250725676672921431738025191926197236851211579720131359747283610687571199418069295230163828526459697623485575564605445228595906319346003233629333180482582830882209688756484477590388018214110432461347395366617985211903620807912408554712172558622028905771483411368652724870264252506908893809032657641406986050132534481001949160323912806192014327105288360345413645320490322732700293492718290708152839979647807028259795426518720103387566118554241359790317335497679019023973923313741431597325570329519993340855891887647328664254979188670870100251042619793012841695117872059018964583276636886089087294628382971282171809099053796861840550253074083552968580119571650257260811580072930120442171017670726423341650786248838655134731153016467375194855248694117873645945180962916893721108890530707586795254611444665865518453026984332252172174632864046252102671327005138088559328777826604600066024610070596285882269734319347380490782388004898425698217871414665508614827604268301648736827844629469575227567212066484942265486094693647211035744939199230456643517545133459278508760034053374236929973489166852339489908965613023733628686460283091205125038189166254999358560225223773182734165804014622420615259967044999497978495642088710669794112831326198244536533642040709851924702589701933589209581928615057148367157032469009722452692875717443510806311886708654463522417938298216511800984218919104661155667585312365708922229290385489244996357160408214564861869504984188145970519317625228941504778831103054927339963349915896933824050845350779368078866782430171117322261341309164754804818351962793685106158714467044713849914437118933716835692165080117299421893191392367658979439460566961226765636000588049782137342851830431214738183335569531843992817153429570640652889195042430089076922194581646966667201603021795425858615116053024830969344971929957045055227596209181594732756727864847714167909531224069634732458210937050815801252536709810768197508467089361530741481160980076227594302488827542198349958949091351463178605527931193113973296764479060835146144270679506738826133048041167157921267470809126867133824418078088697252441968592000794384028328956939511861918092872009073631056310715453626875864891293151962828608191284287762252176736434451479199397725352504864028491083994720251377638630733437906685433707720476440277949927222514178531041197617020837615776313131915967594022806480739463270771941298354114518301958038776645834849488427950490226423238967596620549080128384700454677797623048325971894681440749688889057322860564140805493105867474635669799254552117895358457932162484498959991131202327063522348868604168574477441366069908711470205777242991486775574383681495177073686108231189852742797985128889639105111536158043108557609123702719734639726302196096885164663149627792081037808613486531375064178242004923287878197318520565436370278549048978081964418226505228875121911186343465934941238736397475892694535113919596281035843304211566049084646866764168283126878381441935111367544279912567369922109320359177066398149146555050228875602238688062339868150419105705251305234482404380797931634009247691409626146690497725840152466817771430044848845947008671375614775366164274045073129159975956787986027246639577764605583110140118966200380478654459604108085256238322383967785936106437908755361011751882478131250081405441568141721290907640664114178931669267380144263870863868056542208763218348093238369397781248209730445143405945170792398972509701031731652267090437084748526891552644133543183196895328429070612586107143237061792985425668789686016733748772362382888350318218800356972844002902710771755500834497731033715258258430852255627700989466537731927207525554479268242784484894175875375593182826015826640567934107653525693776413904498094172956721578238681440196978647185126632120318550012080019429543091432405174871421332715092849880340351750239277741001096607224099573122948933208510427840846884243765192375393809870552290689061477789094618886089298755010048554265558979884315277246320305521878269080555996993903537426248671873309141466625003090865612757687258097417972943585964450502894506150507553771788481013049973730433417902214976724866201184078007760735929380712961416303820442191181523841849195736480680304705602522609077048554902875166744646975082217162093961453813268405442711154202333079882694298073502260726664632036452514153050619349820521664626036883230333813351849520690664467441350696438731999684693290300282777956916719946608702175901378961719299820445588262146473943668850499915500697010645679244282232834638934367983495506668552754474687923005243365190073302389217699246840084216073017470955381768697303393561874268860449570822772035804814071696920919671612891703454217150941357786740053481632766233131497284635136525640842857198629188633501866981937106110404577711923105480556132645806324770688823568492511364864193749067407041711204481105378514384850361625419222572720000746017611965570444632357788113884538428998872058233156140886761452167852649114195989956892389147317421550538692641244577762908910310218820075938683454312241285918359815671474838110298639461830141573085682726740785970159393683068496081097893425040980351816073743782974842046701507673222481419173221949057027496899978630741748908000266297415989481544644646122198378086515074579216085560756741141825683322813682119365554786674289721871611735967746426754223223144176146001276719309255498247461419779915158143636248697257257027940520875921682204355081096653857368759297201626445933027077553809124395718209694990744179121891449999711567023365879363169782218404704493025339322481340953727486893371976093594329334163549429286297293390644151604663538503224601443808622701810969260510782558097749877837545542248687877093553817956941808430129635658036432492149896586883514237993260008007705007566484192627810626231813613089618904378738508404967712041319652379409719998016914555286727618537922498789522319599461512250121110575409444193230744717625587320092273407378817932324508166635337941447435879672120874850915571386464479691585363097731018028661086019372538161263350909207121717025562969571739961449579146069404949585373654656861621277093636132342949927301954896137449068156415475051481721339582883288644060894331848025930734297202183397954673823527244558051948150397251269641554493395068441717118327846740374553558207917262632371726243948069892714898186171889776311818068117032228258164263402056132985130962186220883333379128902715393045873256266067433545394737692763383395545056755237838761927413345701760146151762933806320464090748454225228501964071218354995744392861152069492257198357466102452752542155691588039353795536533352236908765141404704995550644938538099252557074893142051696257683234286432413488424490636836193253723393180632668598262761783316194919084465525164026740539141934824314420887779519723640465219159073882700856023463902475451605355710132763378632552357465543300445067548449411449576060931036769346118396171682840843960597286777648428759539950689873760001735081857514715452251888341111930208070751446504063567557344984879435177660919357398221929029962099261678242074098433221041694193111957229473743351073377997260881654051284555059260042646326999329768112209560996476272502909464351394867419189895656358780593735184900730599107603706384553930739851685077961430733926407509909961448779585972220830022291533177158984338684948478097052410522975715751237941034639596042431108822030469273513092725854902396535308010029500094911414612526970266843659719476889249966651377449907749407162623872091057423414099829667989212471710178061832200545746565138422051661763475608938671479601156163727053379394975006218170508952026827921591796245553804930058940291144176407564098216023746611714678859576587399256424460478538422208607693160763046521295419296403599166023474125513181591411542090659015988088744605628856294213025140839085202107852866393405613503434981095269348151056302357551459577216983026016757507712563531628624315940857802318558792252546915549801068934299648406049456348785094371220035183972729348299339246349697591780887534492374957192715725507314857651332699435544426149867946378029222858241943545416964807111170280329631451257618970509777468842635097651552919150174650003121219495501781298347262606989434172887635514329455951422653263921307658535421875534074689815275781505393950783334876023054680812333802087881664150205227061606806223708230920878197398391822513257909977945069218682252842346793929278064741140766272557537431860246547030124495962499427428565729604518925944309424264926063926023756380079112581057526332075984489563449821854729445342239310037293190454234791773812811905803177671384842963176217647554773544155347949335511274707824368640007892523378014452939801498220600630263870953444104710062150195765829330902686688176007196404319213327569736221795366535970335406997420857973238687565524491798891054245573183391483908374875019787507190292824705228120150327613685435881694192233931015094891299338921427579861347899908723140117760018643281847813387751624165746267951288576811979365407111944201372306857771536446174032813294231058300837175566196523382965117021157206443136307508093466262680072970383753668999712804015489417929525162422905941620816041216172957613468701367109372139045409124898213011043545610095954862580897422137423174042012782158280914864080001144164375710189228623141099872029843466671793779994966718633282157988516265268911956868040084308182038024208552920347234031004853153497177448434720202163191755235605986008782939781684990523235080197640469010441489848840221126042426876374991316671534270337900814433707124370908800341930564069686327393521075736969425632587657757722520503212021236253730166553445568416220035663653998998095396799929014308215874396843954740142019851973948383051158643114575070951088138913336590792043588717927735949195046559735478922139921696794964591936259222470859209082918711403468700256902919694433885710123890336801853224231281033263203414296092918857642274693372945403732037751691642909888168983448324240639861366880143631955277100915210552246504585952943359182232952407718853684553743060963609125616269261395898822664449460529972599718769874076733898157644464918222135695576041114898957955505041070721169063235735182041538415062432166599381008053107969660171694377061855422931173682897242093323022130514983846283879999831275455940771745319808817512360363344886665300621655843362094876645844638182564539293548218866630720710020246750464580002200191785850061685005119392627005055040546707153717232899974713639790181623589854635648362219301019551364731998109085991558958476096853282805978213153244628738939111846780936928262374974204483637092896436142513587721942396599998970599517042666132919882532658026151684822904277081167864417020920930665962058498579254184203966621629810663216713086058363456458879317864927468503517226980209695757154982770853286897038541491699342719367177703403619387301283528573061467669935630240890697512419656557152509053627164516046503981480388413387793044058001057617972754327901475197361662954747948205269221938312359637874142764419429686309854398523385459377307486294818861652325458946237129574995500968385803661999773628075540271484438279389291745172082222145166744032028754177880466709707629797526756601401815550086812581969439711028023560102268473966082004526948293263645534677519504908023101930773382168564491829474788961760176420209208861537311619898148387930558574061123544136636019446234406554393018311546641168648278117501353669148479303396737916976882122888810897487728232966507545733856234335522610900889740571342702880185566274680596582218032315795703051066743248311918378818599916627082891683479881333418617147086324348472872567979634059962783440339589004373740355817924563769606642416052503952978459310120347771409931748033041367579942896849395680251237684203371167933976010840120451986116557606868018021931336901112927481171952485044047372275301015551977481541264213164722426696218137973140543950739925368260742187434480176697013547199643601121941639147971553839680366227681570098477170910916712003539716028758930396723987388275530349647049889169564433828423243537220902995942385981972384732302735742026252789833735828534145633639373383147746736650932965176973086626819804508235529678121940954889655646877469138035010548856344260082195635667782110062433080592464310302893201476935235378014012668268415806348330556120128747004525438030440433543970475861451615847091034600458632762190893228059728445294401759470499641014058178268847927432244178711331560403176377056193305351035050510248678972856918293277519256894744396712568086809131618212154816745791677554845178766614031237742752053686996247147263267318736750819524106274157421072946677237233181290141021865589073261491341615506702609136730884672554580957550526403481289629362414064428477282706712317178530821850369535226263620272289000903429200985435969374906573260607451410915156391751774459570514527039777483270387174862594921408509149625721586921706033241061416887773013946720305527804686619586582810569098957650087803345218918559237195218413058499039449207523331116920092731027374382905908736423889330491406144305631545624804340390061785059014331141509287787346238592944489232340694499964861963294204538744372269313641301940717052663475765107145171072664947181023434176886857316626289928741870654070618327897861400271972743842195902739830649613220431713201242071509087549099848549302839186747535447180904288219714895776641447071356722759572793183282816591380009546894762188449434465021995145436027364753285402213375248383792100856055288746519749421684124933559655851514838950887381688390062683369244617352454132128940979647358133076469807682424369128020163068491246366633913391314611892172226288845826855567131247314694689652927153727452602739348117103092611440537491931831394676184979330444848704421410651925034646860891189521781515294718052021577873486950800536862383710263943320462030359453318622006114009409529833944202786363434044998745965409544226876640752052875140705333817223573877209211124120918445507809683971108756168205186037979976921882377634445751434033224189532724871364140212665367915672589894507052107591562381193044521065998036094211324009652738204223393145241591147396130241612394756271290717510084535463215805090977293070568382452426316969651566053272832752318728915312014965642154431350968559066520097122313655828840628357232512633484950840802873021416801733400193086067992732089381985924741826074114607904799192420263136152595873781740174294883665431361772913395737487818428337058019028421837853509602638002700398248533375809681579715466355410882448523049018796784604949461675839744867939877631928015603956316729058776311246871134542437796520357779285528519307449461614136540172435868008073639213683998590757934547522970460667024543241248929224628124134269996131489833397944015177786153035170995313009784760018747369442001656651221793195146067686597869668986333072293199696841379692707836731807203201448866714727021777833620193608040219799769176098816560679121060134731285271358574849471405813614710687883355488590853694650651152140213068547892436636544987059589455829643964682707949252674417236663596483754719683410549432935192146693095087164196168992376584032741294295214129532085548561313676512626727097999470088570519603222708781945034649714366302628773794404957177234786312932527396603277369916619531746065358291369611688519680523343285266320588018316316802682774875623806406467758754167534556264842878814347671966210106006459033863481689880304586924103086982857774020894407659181279685642784580608285257608971768402262613084022689597513874538689916149593298117807015695899647631516490375800197702931601888136040009539176873570431713836349646688256694397418642791138129713451832665173163703288428351829988049146830736181652433637498608643614167291134909828620391901150522309215499072602587017320373127649399797520487880036726071297490053190597541544837665448125391437699230539052171801444640592812781348950226676890552922291301643123394223072357873903666594574795198903355328358132549218813668940576622531146401565303305855034347655563830768591815085492611899649331294485698597309751383281557204980303326064548541621957461887370021091573431329659976855857639595446598658263007668363022052553848959449433806642449935912473239359055956645038111033576833967690090791733746997350707688658441050857528310599133442266595853431967505277466444740285573742659832092006057819356286704550010296970977903203564538286269119900968605917410072773431679062940203186456291542904230197058275139738063992621294901176409782342027968015452524539872845879653796766622990369475714848955371763126957408051546771413158906196785630371992821548076475651401466130242481296225074228710356498756524548445158283864995551954492252510712355970388620037593636396026817818647967226991209150132967882473735420091165791512307471090046414222184988730513797088587730802134063283879453167946095208638061916439650361324786455116878820107324654589442573695090163946916637014920242175901556702642856341994374158369012414605367916186196582778308219221095881442675502218277153430375739557876605299366729676620912444564734048661269960338995883710209924427390625659476879879853429268303274185348977703508013568138692394786794162159359189187166026744546408765805506470470376006254200713094839881432983636934538632856713461810972077871797237982962811083694916535336024428042299720390735698835018570428196802646207794629278184235977417904019162810721776606251699760112875969530754894563411910765859441297397862654636808269307062371493845064534061138255924381475698601915025501638728651209834262353028216564628178194059351642803966840936198643840624936022259367141722853241251830805249502652096441699176899553993376927244561034470544884909399732386150460204144031898484568886901776674152040738035362424786251713851284944082217154771468845007210755750295800124233642922909370420650801370262141700972522582495315212304568969263180856108155484168850186674664780484606006768852784235942504830689859316827345573527034224436745902387672889907674632841800243683110993019856060430380026863540687411226767082965419878193419280871223976602060382456344388877352450807468675456107955974475104313397688336374123140411971017243778755831387187223769679554559693759737394504717233919543214109757840552190103915194035696566220040105537280510082960441032961543721845614342630660345635153421042972067713496593789334937596959662683565208911335612220911180175310612505848123576891619159312118624155583294314328456958963703451207874329964028485297169984632212629504846365345365650886316372299357121567487706367960238961588651008423110489489884575821666232042294596574442298518290166852373288766783379848689714228251023845393945447962341849705642467493717028251063292292412371111300940221260943059139690244037042245862939777017574959560558581416756599997847289362540404181026016024580951437111151706887167667975524005241412783672247086154273598608145818121230111029787409490348882101013236230261866264329782420781651131431595371765697516136238676175383475823148137560096516402458502544539378272421442116332104038402880607574104664717187261147913285778387877131307991682759908062479868117918445336053600185234040784123755732779565397122797794285077123087702901692155352630796032904646924016412041616786162884738417429530032072188708841185322693493915604649208943626142463538367799635354725267562052381273164241365582575056195168602878863602866660385600463384941629765980219413957418223429897308149720633964046413350952744414032497319535019882423560980173976425022686861442724996082928939994368296057022892416012356690945268385150768431591249155115662393907363691307377053755450950915003351575339720302119238033900114125832431343938997826443948881402434154401738677960201375490697686101282856065681535906256444997158821623410754508655462805288022621289697748425303221363814830216858878115739651211342106654252069684396522592575845673930080466055158304545680378093164583688299584794615732904314205910460641269297651781912474276881268411903885369698187391076998652676350487797722697260892294697875957537018013084542233563019226461881384420264390018795674332559442663924266671109776191524165527195104283688510564198001685682827531341062223397331683822453276788944195309335387184782694793439041569937240299654221922017561858059500690643888885868123598958237616206541204869495527949063837418357174505760308366938903160040862364754480228019985027316063560576545387024810536738025730744720935919773728447356223910299893071568117218709988204853687727294292588368097390428415907108344987653061685134741480365345727403103351923440031547205901046771371102883987194003884386352879813525951814547164113549187984095208584412158206411492270160046832747060650002745305885255245853661425658673493569622624761966711993432122725311919121210029635816439258501386876989245424079910500910020595703970014659715664613865566327184566913910933022518962818711643620681398129566102735732579095245509095246567349163112246452850668400605598526910953245254303387234797544436395675572216359337994308644746740640421803595529580751488110550522001341334897233090708742313918041958001555849979407581209289644574649992025935064346811512006049577020310147326116330729881495673023940189718091828461234247803144503895270389031214734417668404423454556870160417228226620189385582365881433190661295878279009249167068216154005833774617260389806420981154042495219908346562713320564026215667612632584046106807299021111035759945000288526251573767373043649432541914579637744226968059448036129137222950874751738248183450374445354624085126165824539636772496216704532683511785466066098277916109735186570700042435871485436112408319159327192695533421166952627412255920284433229513451008530076862269562389334671105764255032667786060020822160262087289892883299834243654609536526398451999871564610727565232976975636482761900513943666488513386394299139938551394145198265982967897175549927530929579489952820023141734228391476212766515555898181166000320850181248337056685603848512741861733327631553162024646822623531767777127088284783584498467796544029171589632047341647174383017489974363590558806885365304337421834562900539159304822271633701911175639195992752089137867682714366965053286761790987100280065841315767519505342590416852515657211819742255727410594164189678138581594205792149516736938033173648505095822336980469779377924498102602526453315872989350887847115618423864378691581903887417142419619729911360399742853543696762340024976384636829783006244324805513601667266044192312810718770788041382705450198867732228567740564869598058894594054088385214506266392590820177486814208094001794457568282564965537341108657775820953490346432953724514790840990410992306167467909135258251790386602575640511701392482884167917441206215182513570257139490112070733529340115079092437395410998047832085307510662820703571714048451073303550823270967594486855366128391700734576093897629029300596868502144105501102703999326733054069095685376959978666795688365596894717978540586685856492334226976724432798807006962199322912466683689654903320617885148206225430916564147593484248708645742789128948319081582626494166657890878015861356041330302482118761541997801081747666536131426378602048163438912873033078733676443831315738648599775316163542640156555944388486693127899160104511455693119383954237703047658166268519621320715802581723031970016837702276703414852085819113500398937467906077469128074521915233190172422808773424854281143613484980617796394693233372993154064854761786265944363893811849376614370918398040657671563565547751150321475541312748940249437422237967394935007609024908051560392960099699568112041216696780577936660810688174934884228346147715279954237523583804854462259536195664423965447366133412896353390529093960096659660935937520179496106177194393240006810748544895358749146819509011788211749605057072560747662739799630857532182501969728471492588465138495743922449602264591166651435679828155026780327458757344192977487821998726094865685753866357000941198396582809735568403580128600481432705880071482302689398873064565027628483818635797670211797203510138146756214278449100960774319968358441647280315782721799001785531788934000743227611464862727383469027941723540648034238087450640423427167717146258456305804201887071238485597781482596934154461956485622509253714162078328981314019457609342970526831437287282343196233939889903080345684901759103784593991761653303379363914841678338485698851642666717324500346344142787679533548493056723911833543730383909492208013352256436621258024754815478349820692089519068762521269710822109489672620279117072499880332578422310230664268573706593509666383497226164040241947852005823430832138936368907492007503717029399354568104283265598035211622763222655415125116567604728084268207282835479589389602786121364643641875257686418456916249112730193278618852600519298418004987933807504741710906536921338141866032348620909202154568747684463617520857994030175621250818652899487644241133974359136339103778990974679500580813287562763323240492988370067160123793102569325313781706010695521727824446154673689913610557389536631967912272439500080168578996899975040254928919951910591274896861220536227514174169697074781990379154446022125325532548478436993643275602315219181785545683688110660916545436376662510437944876686540316585639974477780420736762393485245009913573843300972013455546885357057261111124515065194275047380173367965638437430345536047713143504729763768202551922661232438125329337152404351090615684390180471252809304314964862483729225438540934215145548390333866992199016177540795795017731707702236435134698188914078989751529400762740642650175020791287153722958723092997029526480284728220754372332228338365114485930457224400630818571668303591403282730868330689620732545934914734225492075418529814324911042888371643967464158433322576918954510880618996036136015117308083663983191882078314075070215852275023823598312716041401391704870963547637628534273210225655291465361846533257707589060419637781943291982492613565247067524898951368481921265205130285083409889523984537494700011415734975103882116199557907104111154770089839874326022855070560309398800643627201651757354509482626036584280509054483991973096363534024073525200197643671586484244789184804995511420205340039201922597500213083103060593757337867608525665171091531225840417321671757925603392735444999630459564913309692902820761356737355987985883713181877729279970699077007733990657820074252275124250935998966764864280128763579292499481615608625466820861283129250890264882120166259865351451092706397557029377525184240416646781173743939644400415055438192503924623348759184902536624682800295991291502600246252056209697360014899111140093556463805970699210794595768236048266190753110977535897215436256813796375150810286844256075337757061336311346752352342126556615284110766178295176215135990857808450325406757853399176087735598233911077304627189326433029673080827458505231942095778025465872474418279722266098017480165597386927129406638446340515049952442583482367929510286914810272380019380806955355849733368230213804298466291950738859247644183819792640787115759760878799517634478988751808768147169180036905814853094830893642460981048367994635165044386331089812622345559212625509586822764321137766751613409333503981751899962762400703567652551655591396186157950324739195569687681974436650624841165683100645243937307312142948585154368595285629686054494694033942123789438629809668339329447021472693360869367419193574522452902220478990339007507160573222592353860665829657008383707094112406226883757190613760969945917161884745011158199878030312431829164423781369126057548437787636572194319655180005741013268600226771050548902187317437772484472305211494396624656954787088762876111649802097863754989916463658096393391839422725810039355159635681792765989621688398805657295087483721369844628079447609801109414598129817988079542551582343351110227743818275854463233359991601922325055293082043034459590601196479663103512301819391212200428307816891742953142252507767415842952073690353767012243675005446037046068323665185373349271597173475910862315760345058861857055044343326472484714489657170400087709714369463445060871332018374585797140842609469231946090206648962187993422743169858399829713693012065729468410178390232142011957697565704436878049100168285099324834307323052987813677879312283994076152029951077775768484121466467543823791899673986848946302886631925030544175406349478863547526140842727143340790483172802304855464928751252829141127228206086318740231210511609996820241983263925440759080316290075586529594999624564720665107525336647485801768753992723028050680633596807202211871118695963608111257942007896465879863311986500898219325949542644216066253093329602090046570500793826383281936550569797854183187534788838244648891482567516489410482082098461897854728456521169557261472641736400186861299013540228282724938488212548706906546501444601837513268169063397440336346616565082865892834829850085317773476901761423554689019270214768644972367068005830204632323384733957809026266083433222734379057303156794169654954635838324969664598894073455240671576163854932016151324855022878757176737844071411331814524413252735668547461412627072337278819884865296495523693015509610918378381922851556096179289146815813169129349179625035348602211773111344541968362508977104499418826103043660819664202355763510896709796014572934352062298411827944222222472242889993903569466950954199958078163860772570291732018958993544261640739542820607877154115165086730786468920718619686838243478204070868434929839428487489215205558055722164427451484161284623563333856476514335138903606379950228929352510262208532807448312973236739913328460668275259797956898881658400502527122999474131240766923471541008282499115878266637342137868876195483425948902320757197676830719809566835144542237326831292236673715103975072716551167215963146482804201293147569254949452813267008952835365675644007355749966721841330841411079123784210319804893951163421086451006259764898523169091957130255328877012987075666071545625112313844506208313178583465941302239945036890029338735592696634416698551741776528463832866676646889792377789779380453773023265454900315773333803238144874170967878004732161523721965476873496943747770993816722847375409142098668271435207114256018931237782825499002002272498214303418752360042244133480786668293421099771068055895290688099681096642565614109977714260176168566825480763466370536977357975135163843977756416877351175749675772830362422681287904838280943604489004732385339313490034359004220879448587292117081755361051431537708924685496562625639149779904652505107809810066665465411056164161540611904933698217371970493038058589852776813305092536884488069732627856820801826244793218488765852395710442102463732636454076383339148197213121653990672217834069379931235919289213627852404047550989322439747577815609784012069100514698495862411405171531897082468586956482429778201874413038975594274939859961972236894434455182377506307560834119939088935503019416037435448371632417134512499117456737645015282105900437781025340141171677064273235824355072070185011244341843950814063574208042959708598788889275485281903036560865453949362202792576366828384973063784498459950535934397755849151697336419810358073892904093134207186065461783977704770657819865540718988844491902548095828600107903648326581723975362745966188724831549604283529749234356433754407397643723450999084769261269833441483908482010207221153788708881389137936651977860989357027589947021300246916506487612075113080565645844753470440524592496444604641385030080249540300362939984803251949058569675597022409430841687925995895571704465338609157584814227074709386657481639530309053413257381828710580581401169613257850783614585930041618380447065000870916820795578884207166716539517604815117032645818006808079247279747117024376591040902684584393944380461549025404571924645576788821722286589337989589775555690016379912637769491332215263680484945577416109223698809525552517040852960727914817733101426953558348908366398214969336497283738330297457867427945683315252112223455317830563795236110490918398325906834070834847211892958692103204976742696634877359243673181504328868112378818630145156746688714196766383814019420691297842311645174707895417351339792952522804801187195193097108641265171662486494322879074999409420410820446055117549171480029146939735811708519660730752264553329554096327331422757662713192645602188873306720411633876473734702867087704363512024340521683186987697907601418811398556086951270904399241585431968736295013124670500970276075404500893602169602203891796015911034108281675063284424266258747984455151241437539885952482981168447538308128167443613970131184188120609820432809683397246069435458466323775135723950975960410710215077651293460137584393857287654742234557925131485427963943152727963229422188210766527941356260923140034108773950695846299736519414145599531627626544249619128043608041651978934002479703268765460069524088839544225639671188496966281356775613952300244704547294718791510126266717040629634633495975031009694685976353256577391107037018049771931436283047975515487694160771393357095331226078177317614981620239983784366903240728471029496316555375587246928337670767242128585672241775975495905439856099805345557393875169499474333588957834391091153750272466708778070961902525126228812249071057617259119891371588785995985246523844262435544656039268555871973413692330131133196427134562239660867528846677537728552931218117317116589120737604562376117625266106136264598426051733347704950629090590446006597754427037293820109455046599507598061508058845768934237458398214838686522605736662413430712828425116216039302685648256178264184612909184338370472729620448672134817180106881297867501181290174648071568675025764649282699530366334861071495497102322877678064595788271691649183626472026962000125457346684545412377197658755161984296582783100500850153858129531437470704688968407686391851117253401329257991163902511958788863496449447552070512287653421536953615112671378507673295015576608786202588516546600158984889720522349048457155343494346483739036649950200342985233342299184115247343596579431722045317527878003944355141680334940271576568432873215203274939440266629784098143058921687796184144527227731642474720552328163580722515305482088493844406863454398096524401467463011550066023301139834649586880233454408435423392510375016274206485886890094185915347917041615779082806492138445901190028202743706395682817255949000431501164151922257917235843749637652690772516390612452794358727933002945127304644619510202885248312172235794867313573998541467422046681531692932486056009233878211601084420508680090731708313385528962376345947634900274607413319429659821662194929118823249290473398605230629926550617938358815254841612358499602827015406129320230069526735748393693639903517521156375422774471214595694164141355072563263528925559704606465061819830879509619626102658787472784249719449667830522279359725710260207328833533711161499016059182113692932313408421753917712191766264954996832304327801494319647802151586965223249576359709691055503368067720567256639997872156405200860439741789810944168311020350578410473371573923991868907183340506514337105023760067703812214651847664756234744139277013928989736932631338281882965158453444212592610049683619269705828988144164423827122096086549785837193020617630318466291821614562612050044261604318018735175006448837443697562606572306107980989082154654117295923027239207643896283280341247045089913905791711708152982633963857675139781009678977329291199179719640568381231387734478343950652160562627613913197036631657997683758697944659579319033393031733229728398249528911070860813871050105319539602379074523593873821120072965786801595695645069604865332443838877164367045544917013472881955834607384268307097309051400454861817283234303180011300986354050881717822062909602457171080847759492382887629867989227625617076140293686732695631149192379185164040641434375039355322672191430496844922157970075973504473121821956326997963903477412006844258707311787804604953238954497701027881730811537552956823960768373634575532726613585606151876671765212013433117327585443897229523219314030629134076145188280076358370994798120811349850027673494292493026399709992069082516097714784193447113654367477359639846281697989634652564780478991539008126038565841363761957167657488646163527370046087575299412234360573373198819715222677976177190414488257429194531175449192938889811886553864207659638609593377064742156883518981375607224846424203695819339651584120161255769862982977182921426639467268103891853093704260221745313898616956022585662376691429984305554790121107532114098645533377669547418629666855281575272948055331494000025559810575046144310338401935669916680239123328331656512986888585908825100874264324755592532845860790019498227057577121026664454143570676972545845875259776058968548395240105687327402583687936372329707940743075707863676576003296230412553135526596504262694094385592211948906728039471817187444352066551060882230972836707363721270075623390660131597358541249437707667222800777383118600615233150654344751027662184341528265220948060186927689784356472393022839180764122981823256753128465773579008045605426897766800678084184728600327040833543309465055009729923453457831985426786519950927620374745408132825800923692501387935945840306378193185055635358998383438186573363055313009151335647805849552550244487243251299315838696697935082419405582309118321040214038799950208120541376506695427725801333447222528360072313136418397541337518609295029649534108821465980714591704589151015135762955115406677662757047868310709588920949703809259266895502469562273107618195448383038698372329719285201285630602513173591359487023111283692935475284615374543406429279158853591977402379347426636788882847141478308570341647748592963185224610277560868394294219550705223635091347522094505380319010651709332029698877772482388611109093610140401764663692412077357667118202757989495510481867272731078562588684547611776576205490395822783949585108339984899218536017428366024303486605845484930979111278265288373910894832878414390286344016662296686756423140589831822268928681515285374522994089226186852825773893462569086129123728737899226361590343276872574379581525339060491259293832494051051223079338900269817527295902897352492730976926925768676089975259020549059469524235122567579647226450265946244334632775859965283574351501671762866480834797734230715978150988368636771350642276613995438109432928220534138571039723988192067220128258274874949858925348958870029885423626905010175732485591613730670647679534047149406823157853250094829317232902288018558453211822644855993319675411831349659143736472286337278220741303272137288188424943358583404847833214444297121593630765522555538538880419658242534967511329423299185859854217028168515575483537539863343611827430665090731624251126795262606491148343366325109336103228124409618939615768325644056193655593923504336521055335790400104427132032175718747484918968435583117190164694325847000744197756556959063602106507787278136807505291237754402374205092140405718486733280752940706597504167683539047035987274762326031524015662731892303892309823676187907594644398327610647501303875244149670434544451984989889833387366095778446523158014569675641733757198507966194521513720730329822548296365293428092317109079076960579631454292389178190852389608443586728983669222929783793612840100084302854921976849908384213455379425071445889996740980976655910040847147720549190145020465134312803045978623222579037655740049959136876721193088290370378578892081512652396090488664058214703249071314840713613794852464858386388858762143472794039571807513207400555508326845565749259770341755963072337732552174718398067867520362805004747851984665072875116938056859362386432386719244952843851203456722437477594488228558879237959792861908290299003167395516514218804052930702631580483659248981338678204652657704225512595220874414256552420513120514587722700849527024954446780414253959979104512549584736311502244326849963259904043576140918588549741576736892666958584727544675465910943359404047887857496067553812523315251683019076153208829941138701603082038332884056385083864827772106014475522203219086760856086713817063554980562628395461064210336643005449768317255321250627550959624552367021598579341359621862176806910124216390789337252711636969126197675073224234857090382241938962262464448737610381483087818360099944090909795585606686845228707661740890431993796921401226556062633410581164753888809544846894859214483452153050646558318438355091691599197674129717533937810368623003864269986319551785589143633791019188919028577724960853167290524078642976868767081281411638164480255391705586431337208042288121585659213494357714770556436088980665870833130096941429569953002656022908879794721940101969797224314212013833845850626413314384634958994961480611916958820007826703523348468869598459282327407457060475305465747730207284952870999201005422903896585768929327189328846351889258527542206791378237737416384313598586585472335347738952157868046799586786586894245277260509468269969665353886541128576464744154555377517623225185193669609771378518139633280281553450687836216397453475196041156705767665135127337759133880240030469141754325016110056725241725862532789457719686121731111504512580856111266343628747710938823457896539780801839117625059126148833732917828320383488908071960441924807582382762885258088224112026123314337839448163762052838008372685385907525474549055148310992433771470455569768706244039159525199360760529706706697521028061544759554207881876306410675964372945639616032689658704340292905124667382992055214400616512941110589541975286165154519077493518315076196491969689972056232909528159869113132552054048122389095572166285910191710729339473438568122544019174074345439972627777954001494620382012208295223369213050034976573107956246556344107801573933867225763334401159720167019489251195541898203306955026529875668390909225822594209079749637303751982946268075610010452977231300479704666391797301910273621611801876629074396334553967524762207586866124230844158868650104711837581604556892010026697861452994375062733352895168959232137341115709988129800400782068166212419502339699752431538717543697492931463915736715255290597058127311329323831595696758576025568660145126993031493252708664132134062505014619948939701813060469018782209496321875162939829119884560858364383605195652606413394059114140049978704589758488808568410906624189195386955610843821073910461871193992437169504535697214636187932681429590456401360158419386247336828588695432536881266759725222052041664386713529506273890153264353219696163138941694710267882650199101980436693529052159238700020042281124779063901448030721617466909774662616941319387164196303673170269005999381897650469958403281405813242297958887094133099512000996433154861660692680946458569191544693844096691583683036326908480993824490397972594136498812591142210330930906050050130063997139332501347997859717034708865644804875512081675821312093979166783381587121662214603664014883796545803384800848595962098679729027117866740081229724441500472197703530166939074480508726097356070151673953447022831720697218727233580090881053716977362038835546485782568196370601803524533723030359707760862846922426231857140122932896355511259502108289547667788848016959685011867371358012207145957023328704545778947882048034505014740283337293580971183273613116214745672282781756059494865206845308316125599221109658973627131752624546463039744877837928099961215839434918744464770230038215419060031064576798715360557495650650541774615762305453341420111949261704769080468234356112794132303404204802633988515015036609909602655012458921448185180651503032470521076941635130482063963995927907502326627310610484098194855821265092274578108640666857633113949919185801401081476347081768874452823784870837528184589956026622216286905080392008494097014569634423700227141058616180018541761513504546643156950508422637579017671215067329027621661962027032357200513249620038619187551339056863034804248324975058539480396214670505439965387268162726395136744833371180386555618653641663894150353346596946241354933725695460039041704699655705380463049598364791268979570265089641992999700199404451426976036414046708913388632432753648284341456420199968091464888303402404522335088371907905758094812147227243690782794678272224702268283817225459162455634380581972378111398786145253961980627508667283466774252786129580115561861484027573768527567367506167231285390046489831253261634419385151824740215818645806968218425976482475519265553528397291810374762777285794316508767361526714326005801221424631618401462945372115755459283725342312437122050675258740675723353564122851869851479854516294895411901711831204254148623012314202226066246324554189762759490666946302367453740981511757862317982830346469527102885078573334927287633207746100273778217693164837894060813416795932589306754174039007659787156342325103723686160298307465327293090431551786585505988113951076917201985058325465732331282105066289150959744468110655208165354077884528576876978683503246836004326418633459931756092398231331394842742331247763247063202153403297365614571755361831404406118554907543562400609844461539757182665969082832705379815899175887400545827287736541419905568187859991122544111575965151389570704332094844312654721476933940074810127443561316996697078911103520509769716317396295412663864862924017221265234660947309386376880750421910118511718623308364108892074089774466505185049966723847991622771480446980777502913324484219659237086177709593011368594678991084221953629127842659741544562103202227530646919741898864274847624890448492279162544995896105391355477218723925503273413510051316976003035780169312952278240244668045991250447904112418783261236032515033503337492677390898203578513305145368008107318247847198478078618513539424483082666820040485918741743506647129704202983172287413305824015467810170167190763415436991599011412048095590638033214279579438661377942366065395456476783593183057990144761704876436814918581140706460358517921732906445073963582209853126454898147202902296664721570921285402807931635484410011053666203373774155274043669665936637698478300926973702937115576268909368251997484921097492198677415938814979079443088039530713630701713797738449214550834419801629407708223755685810195497620921537822433037622094159638727292590889391774428956056930022782288887317052458232361119464092688094872996825571545680177314850375070521215524411446707320704127874998008099762411539436319912514755775869174248590392934638697934887006642681850315345250042977686210506305726441109379441752261657029729060729974405731783562081548694777615277168117365923703245949427122184687942882931754968091347811178414984246613640094438364498471940915815797274386708638797021895788974425221160140137883792490048233467404054323771127826820183900162622191176312823139285800134559831285290947801334106572010428153338301120844211933373675402406775981487081180103377398224523921758002790430454873220295483042911804965623566930520281517107011073976523378701754642448154090775455628307207811578519667948883422925008375835641159105609099771166098448892790095556959497314456331267352446595895895614116979734231446616926566772394250005748976438761456101476532384045096743039222752020002540520280430451174893867170525692953016680922511523575749429738252588569603043301403030865671874189805519807021735932514758157621520580159951738720468114542874369018459646538162320058604629857691781695123953663520379275269242002944393251208300987135643202600604095503005018115041053180873441674534729400481985743083351020368814028443078497707844788675471483710889161867329953889616959673181356699062390576552194178704920499117394526351306855503902630524243652760431540766074499469796813732965360434055393185310038541873756144005500579035879414032053368379190597066951853062517477834117475918126629433613075764272341721468478602975612245801701449670844687619766094704096924410945493042640468504457899726686912686722775457457679748412529291997899274354018212236000421122273405571989329201673243469809578712107521693109708213482231533673209513462579065341113811255180326204573798427439652980111502355073975050515349910722111752787985590367288750606934401563359788592664649872233595939715222757538520358625584072265701126736937582778275046633301249655290433144435335185099711034998683243451935240274726487563216999443511470573618652056747067392735925692790253868301287828386369644284531058221515615450102186295833373686071402157723700889412735896524459044387872025054353496361777823875447458121234120732612796324135877683820924179834143508884173381745004448942900579045714649997606839644606931495566518736956524258604732815832633593715934547698567260486383429431299434423658793747055869814102186152469070908213747780965807326777534147130541797095358012400089728687805096126132627308091122522106658248983670565023225635076854526226913984575530708868872087092428078382629817423513465651374006321945861282977477820900035341028012607502622340512752444405618338265307681208572315334262804663732867673501981387962945239928289353930817520443214531079625209967069305662247393012095796004331554663804761591895466752972518452054870449622670346362931163835246801579520241009220531548860977098634133158062234253398650549933050110356260870888640504299428127785886008732579007807200136380688836035770415033336829571396319953342018571334699032403729647246550138977192945729644033659033576670536814403390379877082924290155421351683243288061295463985616203928925025568721978107397476158895518187097314644445796763758237923919311541915841014234339232665603456345626618554681761862352147929548800238650373730092114249999412408331770955298065700303175873990770984238622666491990525124345394148605782008932096901898160510909311167383820741697150292108986859431571974076623755031142094025612490775433170756653292307241480370844825471952035057470249362960716193479909056854254454189319679679153173449007695679137130376441441567796587253550938816714534489368163343951972098022385754547839852013274651965118984073789911394541758542479542421950248993222647076310235563484975010832077484886300883147402837287063369272077639458352236415062827249633454749241304974117155813620965064236285845162459678908744169922098032378831746059710630795746931489243489343351051029854572810690064790859206381702315186871217038575288506614910016084875370729292160609943318239728638148932510226364566144384519197049399360343047309847792033633515691333931187487111977269067550896847811531763382597019985445258730785660338219616887273013500116560616269296362257097381842956002490533806181734760564643609903944911738942772604191370466963662182475582120398239679836937242526719669772366655884063905023032008956428188712341167760383050461165369475798897936080528219398978562156699230161478385258372807194507358538855164657998917898709403544499614307459744760388662762902908491512825117234079158593347506418952104266194320575637774142915128804787658127404950458318865516875013039890064947078265574331343729235882832577160500585125519408576445919353728345124781171992486745925319475659333821586380305920456382776049934650720197362566140326340569818961186848181951657134356797289133919964230868279419646056411382326419750688270965782532119959359821016089108516268102134072903392293969968763189121610172881571590491384742660183352664334352269076929402404076953883834054698515250107368711038578491979197126966651205166572355807816900305925920723508882863596163404381800172821875037360842732234914509927429680468706215054533620343286604455591132469885476622031663411024088264873159182615801022366843873468893005647936558602674592182418146813287056985472851643617112077098524679829720539970828087919545294194214170695216908707948117997149539239139320117422881011662378225765410390887712618302580740356988232003833968100964856234031044427984195618698443084699168597616598133820782156639172634448151161274983097681136654694831287974559958859158867895811486792730302203224815704555246201505954518450304782416155133620706679827218809012711325664766089650016463550827018760026183917344955531388526254289553468797082145097702622927807580520743137516710431999327064518921367032016469850674852859683937419965546127761547987946204834473147955786969211610906320303128950598705816133855245751448342740194487807446186674566503969394932068459030048870075057190383115597522355024414177829215498499668449006631205906083524919139309575482181911797877361986137077360233304095777951989207904004691176819530070577870254059340418522595886082077719706265762271806012382291125232311976927193529659601820277846608527650801272366702903522796799604726127098394143193298677955905315980768915675846996123112219980833353950291838716980172657500258122106264390992898317022057728775729220968292809961881187659117377263180264991788768944136319295942320335662598172413258639633242303071659669340181088437176051719361551397020233065243976159432324605908819462202972571603616960158892059302691614524602710373593906430647167159530946918476550711389945620608086926517795863566904096145748481586087257753785186508465089488310697090001878988044846517041648481382785094767320043367185931378126039643709372235105686225122485948250038501902646679383884340137883595424398115819564272380074407186993064782972975347477852997117859289564704268974342180704982898865167019637990446987978122253733569300054877273594114684105803318689420729638046277090168133630175460784284873215008938562448459452607045461600973156300405917186831983037837479744574097670134965810028661413833735066391367498904979402464238110868659420987586473705115969429599297348010241249724709231955667621488640123724795563044810092001222621612596628407783760025050610394419809909286628929563071117943882935373265758158524118228451509355998446245750314147143699565861465359797251468632940789026416017849419788560118802372392231841964735454499511501305943914945257254945226986996427811674445149442704796419867658654522490052617751634984432033537638373664800202253321160759648015753626985321338399987431057188477861309387986069078532836403658344061307829692099987344649068586717342643314290979458956342570912850746411084980334181677305471416852923891714841847233402242536317489809535660479571222928677817497157051260980344548171617157113433710241827034419335497222496501910277457202365199299633187893146395538298557920913552226102140319087387053383695641025442903798976284164393721798006688181985418868063792481306050112337772381772796433421219404823229469749651757151392079221153664894330238170774095600433911356582835895404363102467335819784725861318002239148162105734813632472870191127836326909423288106734631850055186157432506034340210810587711616440774002073018737543563279248473461787686068370765210119101986535132810942002639510485841865800317265463214797353313474445492556111579748742794875318149203488860786127396525196475197544797472474047115106060385644579145646509105733510631361940336840100471245504800105080536700936912032845699614894844256386860618339917704300342262477780769822581186076634763752176352174859052399369417875388631874197087802904344371157154808448946399386057362797848451895494714910242527547064623303610808056652183899364296881083562042017395980847934201066697064510510483172212629513725162578783533314320585996930350764942349422287761381236434873714302073931603792783872133007479805885620094580903812906899991988150552971989245302937350439445201978712141807917852641207918066410809645650041595080075870736013530439185297686514743387519153803868323598724661652194516673305404501042107273131956450720733692558899436780358616525337286826641567344003163176794775216195023283957876264492315375350253453032639489499910367565240706434762112784435360620600758832658662038846365089859210926916804538942966634628736639975443668411319123726036257602249246200336968520226834121296910073666039011600356799786069616770663800908350237497070460699741780628467343085668929625333954277088486191700985827033119747560259194043491417866891126982425199167080529235713627272152186633070848358785653367915407705971289581446400530821543190213395123495536542449264566935205915579951472404281521078904902852697702384536919601194348700377941637126189680958393400615572028182555458564152800911273864642331697601232832125022235768602504970464181841013205169186535052218490102774000789866517343864154431788768276974014304995860047582213329235289396045998944509214531158231987746837519511719189740039517704969600677661108801387576275912473353855531237787794403944641254893450124976580242980230008637604020306356607996091199044068460588334525668916286897172261638347849220836166847295109311521307717514394050656669543480480357565240159244047415206200578032033685441161632383035694469728474430147930811238493394741212465790427104967822808336990611935808881379408093964794221860805753293805321254070504671016440648305814851036408433776123699336297113405143094136303890081297445157403701602134661876224723456298312078568059744790391899196015573704931013680790185826426513769486744404501078931257780505343600945660128298655199143263666860741805054180056989523688734650654762141962455442641807714587919690339949825792752485976350283502496991923825427307646179162170776759939302157132501392643570042087068062885873275325322222089607976402685676169558972418246603019123929683554350925651742453947977758032420953691207447326156706311295845845219679194353307454845956518376094561287998221609650037542968896715462032213219678380143493871700598385130364699601492529642035875348071531184684064479689671203012864499305442194636257960247771767868669372642930224652730024342363286139805434091407377643835565600132168220715960066205910039723998701189153217544991173894431712019410090726519893404905419077991259375606202556491725940680221425013792930482811123306015686780330917156112994642958229283984989310234140808253317878859150016939300254423490354565099278789401196658204017962344219738666906603536273115611186817672577388434665965425553197443916453420386387349399735693437438546465977502189296509662328848439043947390189858024283006293270568611888961519221566004211935457409787060132688890411901274446639486872009197307987112661849337220607567161596841015319427383509808116649213362194989579723944035149484779106172202741814925031609270521953581328176781140408886816201786791759877732588858718111843034275747116671289454888492920709057083294060719884857558188575427051548853381163270632765184572865085992447825500309068207195002851784787648680558572409699445125897191485289071072189908979661947568566503698665076492897415970457901141774943966725268106338360756733540254954279496898731662185204288545368047460301237729831827824701887778499696980338270973628083224279018578598574132249529810691564661894260132971687477246218545046143359006020926899376333857404035055539344626291404920325209092403235678859069665822037606411520981312208008131074680671593834404267085722233318216602375582458168854098016241119211333184091516642349389852901755566889373178346192358074350980216551726604101409512954414755844927516096384879535005144294472880006689140662978647793076123367452825439720059025957106241134505656974184170666916477809257715415316264965688517802974990278880492720032096695679646816064808443449199937692221225356251308871107887571271345320894657234327122567001413950315129900940776817845715496577395791397587306467558073950305959683076392581383310756434522767452822786272710984233651227377470330093639468684875362101853269168804070508059142701359369831788820585753277383341926738324748575824632115672895737079634397911173827259456738165976497950059152685280825945728079079063403900160185458729571824955775590895192676483017568988410152980213725026595741461606211990007093108530772784899577862827418541006011709073764591111094952560941332105796207135984818588260576799134109379987156871144921924572547641868434463024735111123129880530982812678889481760345768661232938626825126946180709939178470384766686630213581914939065025974424924515955211610590201077012383515201142410424678959141895362068302021903030722637389169758739591931726973943715177356130344608805576596105581500004980320133014305212591770633960525776717315342776713758943044410055596859946408600898259157038901095862431334666157625505901275275253632264306461681781828041201559238932758230943374156320379292678479767269415469715524267752209992143772683974490716974722996423512236428693445316344093013176862579047151459423597591604682311806066145962715363830635354712528229058850737734796134313801786904890805785965905466456094824639415673083331923877556399613269014314827982073665596247447811059638721444682905888895003856388115614631321487425182119737113840227969208604694877545876402586842786417224217045990330658212500677732550526173461013741449759761312654626397767087988375405009921942549626310680422799531504702934839614069266025396794155883125578446639249231609637750172113691157871926791783479829266264629339837323882565984383670192985443290680924866822864345983112043265720454188078128826102547788980548198407335719642273632998608621093639397972770692738984266143100942947471654797848817744535047815353517228072686905777311600868879826875210834587244583907731784860439264666927743556137331045382782203460398075879647675606154924521145410767939616776046119368171008735074777040113606359523027002975867806404893201682425756707028010152369430688515749321132399170850367100335021178799376477748577715792103722078659688311985736369793046349922897643449690927772831916605777112379757387727885333761514644172668602140871351027769919186908132322146446695134838996841035490931106196325172452127070474308723433619473357416683409674518372130679621165070434333400942368052075559223477957708595785534366591645467325907059691545650352090580887666423627128572195366199749424544938828906988933332177827703751749618018229885827140411863751457942921121811155817120958185311070356324783429772510050447935060975850345021587475014277446056983062156934277349929101012998505713294568603451084777680294664032011853764820544059428305746933131178109319435387737217144741803771554925371854768155612628062388806369958170180755044705964426872053798163738559730934599615334635366270390440498166783485897585333147815589865808594311272953839147203827283132337182509197370834957204885420279268377369178375629712154135689068708068514766942117009526726083362878889537937435403941971175510479391625377278022620648219379669239480674539422421435830559998030268251573300879923719633030319386223741281498830845506079928080015229971465452260867196830966411274575237241732308054817749196013648329625026379440691997796429592545417836000520197031746174962336171728568594221329636084126337133566167872057904774515898992717090230566865339500788448270035838410102673497111184040043093020095024124211786315451529515095820950123944053579289887282952863606050780168168204660828899045525266700126296209808977358316723567149272064735782925984653365414688885998413658617936825523638731382991987627767666435456122968024214222242197213250140417441582679420389195196939376762189817745836224489061575583251527953706347058299631048732395085841205871673114134921186449969174531535517541347170255275531695241590762298179957865987921130140431037961522526306476433598257018917492498943231405989409831744240378815097219524653669058793674432146000235968021582902533579299252656549241641546122819979564507872638647654333757021915607273989805829002875030971343893676268894783541174142263257426815902111236176302902796721724509535237243365933444212212183816970734140047034109620270220687145145202630356302000441174847130118633790386536761973266721508982857032137633112064425112930178036522749881976493957705821913862033517897854761335539265338303694708786423199538317313649632358231489371193291064988414259625098882228811729368834176543718054354572513908696053788084093258437120105445692359554915281883599998187051772450626174443573369125092050969631239034514653068898791962335012479352999904271460355136487884415204851394959680302900175999838696204715341945914524487387837352909604699372930713247946248772300198524397130178369853366414858176748673204500297709596745946056783085127869734969551299177710218430875448230934123349136939260210438141222361650611730137900596005861117451316331816454094900600090469792248617980806461019273734913361961136387247885288370800704541248200931804494502488008112668985866968007331090153795703030709686363262326981651911823363727551854757039815675197833990276650884389080327569974420980806794191879041671859836026175817828001395130820677156801300237359880751419458750857041819034897147440427757133314008672147776917878323757405814011253088496042516675078766924128521495150907676781177783019483647590119653176316474612363963256039923523855178935941597754775742642159730802890208547638780053105249373902441822444813932631639144686720713561744870579071792331474318379390694325835957033290300173185249658433525595921352837940410502087509666780308614451726165195353433079739206205145427255067664784804623274422282960705798782449084910885352965487302111105726679327518145493892549593752044959838502430333626279108917234731004101275758412267457711389152370414970222618819160915766254303322001693033255269292778860909982418885165378544502602220057292054690456365299942471850883399165646155838422961006885977905400650684271072596618705044673674442215178560790634493562633729821736946102574587645238293052855762486795368279283139562443678502174887869439508159386402079593065088989180413508683401728428342928362345295019276915437554233593935448513377340673385869604983355313502117470688067071781495527136348479640135865806876880844073993341838490340830820806847506262753281789933676336560010904802247258789006233935025057258353707579171653618680584893212744301998858981566910747349071102834718814496937357833182189417070889311324558299050776391576415111437326408604640172593483899941722407223928685126008815497200999804300419350445550207603040605348136542048502016322390141432713495168238892653224782778142442274058042593639391961566924820920617900053675547158689808543585695423849323763398386554593159671900605065345434060321658494760634787670434571716522312784013043407587212465927425676091711871196617312214765329018524262935085538642895239418880863550753300929982625710806651018520693065709936802594701416612279832377666338531271552081958767188548425730054531058133831636246014944218202619168467277032365560433708362949604127957809041515358860699112241322611982492541074389528168435342697183464278868459808324175705739091282552155967717542519403146619620786752033344419062171154391309446234193647678805807370166112292152795541363623383265291593735105490944063637087763150372158551089795122660700877590332883003331962802389916715486062154086678657277118802013071200131608725696769260926392712429971591437530236105814201483011662167851317859230846533016999973680180078703975710339159017416940819239143636214663050408825629706403091310564256574986005586844269034103295503120563231291949279132790176182421201763114202238500420267436133523416718283206809415150243663074298704310970550841835728688857462575875336908670733542408763012385155320791309604522716600688640142491560460026527665381164151897652876492354610318436674188724204937600258743545309070079382271633593662692327709200860487268060471864249079858250024489913379995451029663091610682996206925328255368549567876375871461168446742913823903843423106817115972448702536512109632061929605010664160918595019385864705394242319823576741107900489312959041766478636451909863133764931655339582816942588542072524383894873237183581565897479257757315472187356330435837028079255688224127111198266184089281056893894971078128757751900454880051137216138289260414740185410324807664681599452041854221275451352716120258612751587285080570950036002053027219922549471449798622232933005649061078649223386762947085909186619669112901923487784154547137125108249413256434580964151924285093217707384635446068438650643743857548415485360493965862722951972839362194153696455819286838075177536692881544923983840900624443344596525908820022536542953398756488440956908001465218560263086500418323397234971736889457175763717286230425107060930606742369157656921399302113153525618055936638170310098428354546259025616540831848785720837721580405106426150989432564581285827091286163664158431196676257542504937615729496060181767837461307992036581357613568560900420805411438292012314890780811912499043029765615285592435097593713032614835626184441456121708043351140571099923642921582877948130597985825409328635006932192968835247825673668701112931666380412769360056825668599969276983997458131230598906885700987862448004781854955069747022283352173008608432013984440068358624163677989364180063827877711370684371647165416699549278886140181244090935725301812345966660804584811004487702881343992841848003458618921333531159572530470888736817004321091805964196531529817458836554634903728793381063192287300844115815287131112921607240122859038157258060736205083832784348058383735514247503648583481492676053425466789187896185021876298156245091868494623149049255424419444442041990488478220338724488495650434066519900836269470141161878547750710181448336363382440221967392598459749257180626592334278697819447417315845682804675364636148309411318478937296893176493272869201933740262487687732294795856763858863887241277315430643079922991386231736838666512931957604939516102414604819248748482319584787055879752027577566338049836250703387566329034964841389063346707848573421712297084721333352910821549789250422463518868960942290681668936772060646828819639962984699955496769271111947032452014354029922173152549978358473692127738895966994101254422157651146846570184469760502725636425920370449323356033318431526210458206436168819669640647634149723558555937598789085926917504650385810739930098863967149304401523244634357302281360640600374096954187801183113449324657817400128983924255533946077662377538046753757127149779812537164794544506317786801078979091345933324714074688391407049898472389277601308465447619324839274064762839164783114519461527284592161835319069975504290899996641740226673376696325153789411246851093095975602568871793945578142700481083088362726981484231915486072644368844959100543304395864461401027908294238748505632841557816502709621906232024894604740202126062940971811353845422643136727761501946700729027802858547590925784691933722856043933545318804591455194077007940973978887931234336399415923245819912146088619578466944957079572793453321914013841567041803761022757369753680027914498695961314620093822143915745283120494010413589103498024147448296284523403803531779948351543980520009602614372583255864832013721798774878205631635689784566572915600659206600799021980062189808334341616907549756802790184444311943735901582511207374018363231021257082301767364008043296832583692546988569339286206441741104216178129937508200136840117557693019526577776769890112876526016450068897925061474077060476686662055826585388156430642160878027646782230580476705066214344631199376777831731389070022517463199398623123852106548363816842643020649667994733384915135593295492815251814595419366930892510949539739000142000808430770807004087124849015042440891320921579544612213768761713266738571349893230895329182440753671255640967499987665768556018645289729572827012643764079672196362638089532346739761214850021741910504791931118331601517047437252459731824708052059675298467617176587220530514663125426961593387995775035726233347363927501235615343666503876006231787003943139178602141690885016026246594810100902458305326182544304928534570208285526556693022328105621176090445348205671834094426951392022868754430047932235041815530439735134727015152291677430628997188409307280348174760798151123083868516316015513818683855074370363238086177096121767051934985752927816917121454896931188107888961272456058907707040087877520870234558751968647950533322453171360503177202137886243501113684604011933119275750584230100869063634015493666704089619567558410862819830155822904547712398727739307327879246288429487671840217535713621902813058208381791638219006873070617836201884057607869302763132490936445953890902515628646739068486507212229440576250858403252356437386972001009440752187740299173104818228186397548502614684730167343770056795182277378691819482297956528695770901469424000281351014284664941884501116220627568820206003026549449672247213745752641405480698651150531536608959959967049125487410451383375331943546273079320411039193050439622862127123997888946547039394421524555305400054149591935696134529465516262780507654396101371688817860512633861102816284451909995525869077281516946110729201862161618231041025872791339336004113195292042228943564614192986157836867346183248213874538540706983914964207575866024903108035403965829927755152062355251739031954447510974643874526088143420882161609791667445585088499683926267189259083234961859268354895288258488549851963308300469930397665024048661909959884511506881677681667717569021439797444099377119100650877375535856187608109728453041188879970244948152407408295928070803528579482001273305389662395854062352493395334613053850315941536239320803705596201632650895023108373512577313848265116460534395874993353687981808609291346150597276690749870034339069447783158026713598802356493259763685792734216507373669889004980146626430118180285908430593141505348980259057419018574806685334118747222998070836285829706993116328563648110899689039747760988096008075193001691478299457545231084242283049131722373361757412622377134718053264029390780665982024705804044065100212483576972893613166982973077528722408961577045868244315867000224182212881189580946526036540859698212201178038834083228053812189922390262302510200504094503231670875008052626807478827706652486855758530337776277315703242074963341855282192383787190401159986790227778054482614529524527952042324673438638130349013306561880083085832298367082685080067946651661017560358788231518989403004282045186489940742549617955430003409304792801131405738804957659532688583231414652705026127530021121983075391758466315599616484896532009626243764650151252365410478337689119154883979948811770817817196002245175027423493138451076985152102557979980078807791452539856147722714793225855379969536102358620245043097488631540831645268484005149716660659428418008939190105604038887996065751615752496275594443341308620852984427620523842737594736544590430946046751413983797073051875253760460496756302212261921449542820351690644335703503717181501002348477420865307554486530550021748885410695895207192235158135484798280053754425929761383960807697757426385432769257678874996974258516760083319028511826468343845139749075393719875988872521784332176697649524313735359210926255380908554934339783520404190253213931267343210124651194246809853649011552956607187843365908501971165250255509388451739496782292139021501448417696384845294941255108084970811358680173261953057587483484248340037085260070985807233012308469231424329815034427318389459097985685389897860740226723274242801196326136775603400630747128387313773458276663227416487009032131583534349654809485394018103625324916174335706956087586457553831332926907526119180624276908077781167052420942747547610045697174466203432289538281978435320450178465825720952560714298329976100003526245183103507254375889970858947735019455263314865857200697116813338909692085738543084600768158560034837326022864892954321865989567411421193801493841872044447641780618219616223247643581732744651076039536084008811960997647962725125052284404308602419578423656970762896619404639742144650683478026991720789463004126285692971734433256269568507877072845773096943220763822839619850387453497303996777206834660224682397980771771033420584377466877390479753634500827116892748054232994115734224976956065370110247796085521825801593016539767695641731701924662852323809914503627871082375361674646204299019600528326134973647658029165057632657640362686630788380075824710230362175741694277423118079994353064627524982809393889122852415805841435243221156351707610891610652570576990090920280557408743979209936804018200883542466300451281643820565983556746457201116472164837519717784029855517513331086201596203323459345099118709945861713055356165682246583495999249947534719116478431805777384851615556525220998100264820718315826249950052312075648226019697343025139919580162902851088063901077529005175538505496194632105440755225731973457793491133522636118294368670624845823148746970725849126788404991713797297706523211367926026860954858674129696807222732667451483738228441948743929038514274344093278369342118975185702497883305649927003222149668138021044782750073045450705992219721512455930972657861590034663842851054935778274652764674885063071392041604864461474451021177372041184957954023310658405137690350365381251274400958162629928065898110575622010520155895877377087947126653622606312997523706463605514274403887771863320006458668418243438905962673424652457852304280611143682044413384056888280806552604135500620664374751367547124161480852022265915571656445274498673100061864973411859806989326396481377519896712708058006395702831154271249153619815665181783802781126710098400959482163056987959071596615532990446574137905123038670575413285442495215005644801107802468144689172974157318920157328937958731437317388465833591382013995412740411048803886933464121064898323428665907078182117372539469758258942293260415184483058482867288286960251843221180822386975975534783732028727991769327753974814465470029392157793272698247035606979531219640193128091798970353363243057959590018995640888146008243001427999592539648420682124193327106340188308414230635326985743529339824716309843308438279603644473288286213142069854911658190502884491314464768541431526722162632163188051117566517694088083461828995876958221979677103707239251108119969163931379630951607577965016104063248380307347887818840198011337169409421678689778456134587248109902636273678600637843550506039991580127362280566248791382746041438499771458785996758567868609975787235657413645873755165338650259160815551162042272020439225029324388998480689348778476555627621665004227426027168065546534581746251280597563079490043448775238453896069737722629305504174597578854661584302757166954902882461292272027894184130913670783774035415478085963388133788133590361079631918033649979621225551678127943466766012588981774090584233700234754401161794554321085328503196014239420954159577912943454190015605399310756149088386323655054651065484755460644314842663212390006997881686505029971858690803477338090827152243848480900503383891657852369690043666820091497405084975272797915057748952349381714084639848039905881026246312074113023095808016742616542989638349196747812533335675808796161488078828109348576533921425534168645536603306299445044518817330638228303729323062078418325849537909003892131149292595211000901601482055704539315560913539004360156990234692107865346405809870219478641131263035964433491410289086886924497058247109357844772776126790327218669117822942668545408578558971661769086941311860981643967925519726526627475380621174101062129246694514054972332356362300078875555990272544494134348586569589017690366527055808517960853072582725494270290259726847722840183903189157271102512227493542676166082069148799838716425633836418889817222629841001692954294534115709745515006665167220940868963998980198697330452282123877432939734065683980953266534808040119127274959611974110139573938814956465041822097351846935806065435953812754865612062140221644349107555887523832968996044489527707649843114406686220435549802953673874768770224703815121818466601705767574150662391910488775490604044657198188785009738839983598940740618404493752097663926429327445192685267267808452580417252614007199390181830758260217702195665144300060359105467695377311396525036200750215298506013394406297347497448892502153396491812352495088358058879334368444525555853420481292845222065724808644623048053676768082313461616594664607757149907213404534593680796328297562744757451866722079951202888386489111254683859149467491033142008594804281755227273364404958288506948575334859194135923128791821847487760511045105408751108346774108949852485603753418737968618561073244798304808397900210924345860817518038732942623235429425617736053543103914989849234904212949013010359335058461488897400193966260572850501402604612036109930823009281746735405527015130021762886983119434970267231188977524256201086454884180650222997027438845475412878367127167452786023773883475481898114744258464041962542984525728875895119379932053037257266865054287195359012637233056851114044649937488602610631472401181808274740132828655563418485637511826332065837127775102259837200551801462429178228321963127172507626845168466538515186610769180301387478866338418777153373621756143090910311399456148634774602002046366515478056820945352091888150065966609602699466977068296087127933393713812478196858349965218710588714336123054928780067807025254626263963162479291151617127891407348811722402624259690527579778732360129015949409207716795186159990600393528006078195747306253386530572241546612304343299419431209786257856704474444002137162808041925220313369060751704780172809756210398245840418631708610091543491345831441920035012092155802776955909567277516251568508972569394638481844712574863880609529455177195853887069024048512723235982787767783638998365007373809642097692281311791194183124133269988140427134646757631195730770848766881189069876462122034421585561097769687012040469305288553724673804931588612735778538539459622825318585324498620851911013940318470439279150022092468717328912127935559845043353845975069418108786266820425569034834100601432252837795705009796038359461157993419108125918229744894530951140057710986333865910213517606032372267909843763276879721129700462751899791387125913281948605411731967141616707602391482819191504452448733009421440918907237995062422575554919939059486817671497483107436697769325755576368690311980382541994613804906730089409930858286129060823628629564397046228683077681139631895059455309256859206311711102990498746382258883628933341270459020084072933868757265262835068451434378891073236449135403252737144509864518250952039861571635786382387207194469152354681094474204053778544931406539214048022820594226845465655902051044855020616020362606767671989347940895786512675291638001208527012136307054723685958922316629467408961182957335654759641225297118600103373443685588549006877929454670901536127075907038461329736064398597771613606264173450581034931905037182171366642321632289572489983195830900609263822725177268959842788645068125353684935123194279187996117317328485864257186688218928943662129666732876286440159035692227360893984476974255570983842538719897274056845710925840697879249535547388529589256506072770866355426946472520517403250740170365281546994577350772700828703767567428596852448956149889684738521381480349974334668546117327710128246453887663673036519208265310652638444240834662907464912858703542880434147412301831331963832331893533246238357187191357945527970594127926036389178818009208778234819863976427390150836938100224244660476151879076494825474718640649716264050367781154762393224939128226722219530607227684484415944488198468200422668619706251036980156247883826911497899619838291580748599348128502005830540985853735186997245176809022999419718244965740861226409928121661051183348399059176457606618431693594815760126043640226175990617536211543337429421632944156617195240324032726041181646923690465133670683176288115407352103828393131482038162448589006160470801532418006025837696560266380435407724256164660092545126344690784411375885530267292325663025975588829707911556030392612089149674751905053828541726729296423755535800787795610007460023163538890745009135231212000771675156699919867782646206277185419916281492174635461567205432402798298095959534134830695726759360701860734054720356944854177329235230883244374760846436087739406709847635735663868392528110133296478540173942298610129717475400869738760734669482376823393140942096879117874794636303780880774063830310923831109759699955827772303815231940206799509948338821468061091124845171434709242270329366357626312277910285789791352436244670103963404833950929444142965338242117418159163837540655763785464151432837109242644348825164911140694945282542585677240861575437443921635760839821853261324393723126988223172063081779259009465892721851632641148756222611755591949804841765787419706339534656014941226470598351328292385294110461834588070891228162544724703026415705955704188068969171606252205503792311060462853888143479068631184910477183908198280357899681667249006419134782277457725466042140915416148959185604730894417715707549794678391319495526615267030237403788150161052522911883473393630297814499826282195349807706388609254447591776046090960372640639276774986859381971574576432726101217459492487138954080187286989478760366131477435542594935817595022690406215433534545495584887939501575096191040257722835392410545434291467828514633891166801915010894731083461542409269720191272978229453209029324687404405759893966069201185375265909280480028956097746163113716475151935444801430020843188959298978757240948661074130941248615961616932140325190549814036878615116480022610592531768765515385539926096301937290094844720959531871687959714732165339653531416416796182989251491145916056965986258679112675001033170847948758954422433058346670468317729325818585129679010460595127314931192035022338867269562274948111997305136260664183798953255698965061144578866224530777505162647540838060418473149666815926917471774161430026493563101191879011905188605504548415547079750311308959284073525622037218781177223236017938221298640610401323479959142619189337872798658144572046532580950693024308238910307303794150167595213501768856995999133148912467637476752057683342703772955788561405847441918827648001501800212902794866988984011552865427274363862715272057277951807716330341269118574014548661652401241294058331172470482592186006699669937254869768043879908540184409040742387431521772265545927776854350132919655563016610551152640806928072984004278317739821967004796821265999818987389336639015678569644052841602790615855537511548748152060717283359313055132367980267273898991767015266930131858380838854378143310966948711382466655491766717068478529926820209668441510055138293463156423833759882279708177055060363997236765191705436698835011907677367995829500406624962131661542278291041728283216971999266345185138127817859839323942523943046090850427127076197527090962930762372307482719747795594182557377381247683220135579298060318133156185515134842566092842504740470413305355270628219257217334811001269027524763429008567886777632132784128805518747877617057412066383008400017957669108468488326685291546487927582869452456665139205773070788747422417295503033765976314406071854279578627605325150218936374330437294730984763931420952578137880822546520329733176643782004116568261030965912641872843943210335385835039452184077697875607101517865985088713028332644902748815096127237520874586469168502295035600370739832541741113253455531488945802911937329786424395477358822064511656754502118188452273243683316706177182196880020859727900333762289534843553791645514440836452279778670293377757792230351109587707588121175102191244579417606106596815961598860086071051621639076305003967441075208006233632846324803674394667685801370504584285582261388116612882677746129349773363285505433207764897296855529312628969001204968569313016931189488788719521715120639120409610815443666498833921313397588446749482609755568149452123707189324148684145162999949530870619964611349613180067381978264224652745258538525477535650121717708860609227847863124061151031121941593461891794173494815076776847305618452550463616456390595960969335893015016299347738691982729144811613825545155719146133443865901499901549369202280717056460388482161850148203840847769497159775542236022967352160293109791798611374263246126266953022189573586226932033674459442093879397938236826832079479562400673655252159106407286397576882843677873512769980526760328412140872828968600587609143742658613873745087617568121907641771488779286605144933008032939579122226997046546884211060874753665866600895380371192167789484827016655059894936141641874316164993514851052637128699841457820998104976515433905860996163171489853896861291582857882494630810788375414033743028026640644846950472205492993618881225351051938520711345011197138702461052652852883189088188088812595661965700870059281582421852117379353530554526670089871095478512631193773005211065394262021451379874495813850529538732769837065015964455963927456342252949148014560740443728903004197732200968416141120262098531753065435162121332206194284799760615377978080613698303552585428589262154749606189954998013598787338853341787733474842065668461308567816410974794532762796109105714809150818277854426381754461383832870266787186114738673682302653408175235682375684307920379730529947802656866138498014446534588312778206709023573953208661265113918243013684242069057158818459670616120877561983687620006884494532264483493557339762214665732457954833593400732400325515711134150670420918722160147762391199444939967783683646880524999170534371580727155244145557829419077195831640063541539383997805805894367992432201357390283798754629867209905714878323763165473110035515380512018409242375094662569344182634764786387878119750386923344342372679674867522218403773756519801109970355853546418261388676151017243605115392800617689203703833063627347801566994449109843656898146264139315461356988496491642368082712990673715647039123054036124000373093811844640526069208340948730902645370582676771221190282813083547291545562513865961523810954735882780074079534103494569443630280377739038728796027401777852519770851556436547497912582347245482799889127908953409495834924954796958873302602164666337650343381130906079547997002136111068466722373557848406865839050646043386449694859883432995926123383329610881567932403544975362558151220206284171796875820977246039207907017991878694867930617625137131335772606789685737417249171044291949876511989286206101261432060466635698808426919870365831360907175672354379771402115138360908881632053698211620991908345551648280976683569484449712368032520498771386290392842510020560972557373532771230216009999956964411633968056058275422796939691341918893967746645880613082390401646666564722101010375217083295595419078088896335494862693269527061707292423692068167514183622605110157554992816122899118741590072998917952171494480619371870396009180539460417336806720092071282475377537347483410455758947943469971788810816129121789528289478031253882527288912725860214513586298210223447931160229408125142057881487339642831169418973254931200905494229585036999850226986010429842571970575814727941695262373615512220117922311484467633080137970924210592421769986901849988518562664219243994854388698285837905364419979756010620379844975610312846670721801169655593765932038365460166439831856630025339095806583393538066414439023664798554490202716193201852477360971916705914402743611818086867682099123781453772098767797105613248364641429375312206735020960408019056306977966885076629668597467794311782476424788331042113340350893042996010441278940709663357234072171309068715460348050030870862483859824165817107379888808556350827192696667219204149568369571985902311735340049921544325206317225849659911378804984295827451869969523391806073752575692305426688174809701773996405932587520526523474284397865444832778027790450320840234091801926120166476595629510655497307940885840197509075299122016569198089756621208290998462520727751894082605690114425687666455588431510648846488713308932414155384618235605922804584653031815269690960281183259313539854798267923925314333430044307945261485639337453757599836606102590946055199040874509093317437805875091707686435369987192884738126360814094642658159850847237924252506987395528528338478493452859437714528314104710465575674258372663788268319550444914699266748206180292347247770514060107571881498206604738644533057029142626911662547316170449585910207477592064717032391111460891192273988089713543020128651694783706008227305952648527207882980230942996607881526318102632276906197867471391140216227384587669141324997116713258100482234664499235898771890177090376815952943361421207665671555173626162628064257215075644294054502820912398017661678417556267262165640686820969112078674285578207364166774028114441357555766650241494609197496503138419967652774127716918604274734261483018862743739910210669822735184482781197697637978386041279753665055729254583430907456805577520329961476682484921030089154182642429179240813737427184094652912725080005129147294451446492483428839933890794768361039525786814375421355515739799588266241355143041029201101335883704415040680524491739662349176027868874100635676398986323869141269965580782675869124780518302021753190436939213488453818414265618186927105366249715707994141234845757717498043839093833736390067767619963447563549774652938186294180864161394934106578675444124791326744480563284653617341928332798206229125083795108598804207058421296724300991932055453980321355981559957638097451531573825315919766351774144440669907205404145018896556469388001544830771960830771562960900250842666353912136586075864817390801465564404515398764708053369823808817107823863060522209133505525078989238757706190987054791683648833056589857040136843699809404856884166511625532757732616291897760204454374266935442609342319556806365993884529793066367754082224440354614921744052792251050166931647542703715458311797991309967076354922304454049142789729783079099106060246368989732767918689964626488782487541633454715290895317368036135188070211930932058655344315152635200540666691997056393866669552822624392600304853125835477035437213088054596255174096169656954889613838655757353826204889788468811163560010250352489256875848246147181674982162041179579831544433286243351614910682632376175239534591602039337486829978790104096530402535590031793391318298452442609502837958721920178189697544359954935019887649513273739797695899288571674958340933854352512227071671043134424946665490618284012392277554789812743746562351507527680424632435417676425156114593976092851791119341824334575310562415718581415338325520542152366535448128549213927958979396774573997061570687318011516858627797633842291017338286198669520755497011916987387120832444940962418444866027991052393205493869980932753917872842047032609630029084382679937605175206880137911710710771485726157938762823919142705092559449343166835403445765979905989313509701715891414182067182891984368589022802622484266748544098248409560550691264293129880237731740183107861625735861692216697720889103404695832426266471095876165878977552542095755864623247377355908088203993388898490528201024820290876702439343437916135259482243974380232668655487369580695623389378337682497554467159839472559173924752426453792164974403072732338805726027675927860368657543348915735204206623660739384617779621550558971829369867222044733613320303735984554615353273348209911237516628973726938337937676607029940868289055512867694186167996449694654800108097451891616231550604121277204761897252930821498299092459875671046077954786889737741996419257296625707039588412623347985080316678215674480223830077983509815449115329006365242327609697114169414406449225873192927907223468457645063300770783768549963295017530553578783053904160251590505893908108718264763796056755805803521420036903437395634428263462081747417213259961351851739845462755245551243147695583055096126818504114429558679979646597525077920476320914642458968272736941400581201978348814247405323451596040121871112351610020600056866344015104208386841538961260224692092936459110665395339262415531373825675605437481939517699808811618977668903503427555478656414297171655566578753276075425261026789575194838462873239997972475034474303289526948713589442566390015310907237613279272994171758868037598408016774066005382356646445172656021635780724283513355874985262840435905760062937940647794581471815256522774133421763331973748908088926713785837959287367409883408677020842117637813854367063955601051115141034953048806823214990084683447830521604363662303871984013019712523629803392808337670463531073557456122159484139478848548543275728859673129303734341257532767426127728450957342042741866616869790319128899586348647075866829759230576161515030576356944996263936969353335476893999241080383272853411068638243041280268419408679439010048278529122020623025546534089293549004675657107838123422321674475847092954263774560597481569608984451007053636993346819678413710520702055548348567779207218409049912544254333775187331286463897831708972687016692098419737105559515931638841861349675988116213230427457296533532573495046444073896006877016188346669006895360554496309383211843542202637119110422972220227122427123949064797215204144074798877702714080721431486533108714597208627993762180373982474980279061582831928029671850487318788748145752940468835919714745681954863228297113300499341618452231782597127956408089220328448150624139570096248407025862272455007201541687251642280970329170372169802777732754653196619685249887451864221246544148006922053774003104047659830577476166569380473504300881203620723450517022771703457405581757861679837461271231952063444019669341870784082941249562174481167817011883231663814701316603005104389678743134014673376307982140551965552344298343794670013360959893715258745649576280918029089155143872801876718625180417105699479325506870305921225337841099473273717716948565648897354959494984531766589565365966589659112785383034521167635336920407017181850566082753490423622226250354413135846503463884683504660632163238755603595837432169557565514432494780635838754937643039302121951463806805490763114473640684970571060921510235912248336679793591774505224692320071056916801043719031089842232963054094272081493651262788648055909861351048580316447256996855461309631174509261464239343957336535646060087178881487427169381472828743127043772958160396250677367363936575454880416296503351977909149557762361315239046838186927959528094146764214888851319074668121986409280091870865317254529983710676852300485284274556555720210399600050447145788743170584215268551839390140569192349894129278808692369893774196545689411261924701079310299012929107534472995217310872474894683090465727318159262335965752715086246064516225321215624460424688386368293647972579088735551253055407795838246673965012218575621096825632439162843839477803497201461803444458297693642539565761678835652629456769030515386574325375608004252624741578558160009255138665684692537241708349785091489765071675634221998709429031719855350191424027243167131053696315606435462423431354648372600067612466449433162000508626950515523417038001199829511024936768696786494890903793949236873394162529624516980861242140829256142946216580484664630364289505617107145926563943525929098331126663735414518633587041331721495875189289018715230644727721314690130075977814056211745957102207471371695649459608668334797853882104463064553775307646865643739773670299450126541927095539177974813426077891106289897251493575314713001110641176690061054506909247720218859112459631278888721382321508942172580801278510920923286910911442266168396331930195010775937604390266638685120630081691466954800187764397344654863879750992300588766214177655132621272580662550787584130047783526795082466161403676534777509835168154662141671078776465024236403811310208727156471894472507807155488437068879627436801562141724338296975028672544057215624860853119282138923501783594524660639761800759942233877416252081242219670789403023205189899227951415653488024922078968293278271022153437038325645844135731861132883232790402278678788189840325217820348406513200185957138405955206627343274610957403668731498181351554560082742524042623205010844487325301603243650775837354912526398952536133029820327458597696169598351187662937993246956621633155096968869264226322745354980798465748673983371932906521154633426820301574122698665520151275037582964365580973413828199182102127028822878016018292818917876556501180762781884581456667712977505323372285164837374675821955925490760950347926446115487630253474861002538462886855501656291658826237728745177029926336572329383395681569378296961540755370113450148151423910913460012354406573855583282395870885448786285912814635744691677081546363317732974901959536971925640070056497208105009610305134251456665476592140940950273535943793052398542946888931776036660199648665363370601545481220943794157247922338274185445059363910395877796305264517704197317790683642960841641190199219620951414787737927172130673500092141564640129400572524234114103364053048408213884582481609027222877165962428220838843599103930292751282515547464580070967109208371541173631985749243068192616558321000875999569605289029608325573105768119724564924366415436010964728223172348194096222045410301050070002474641557098998147902090379852587096891431372851310083376411875303949013732333473160936273290688678236654693884625068350097072220554026823147054559742474884410229491628595134654603858055733607601765319166187264451997708699558469833075112603343208586712738937691582977152529498856614373214744379910461644202098189262608267206425425648038768293365586519262496114811840880742053074015379681329224882554976929030614470195617077831484894710586902240680930669469568941145118529728247318384916345093309985476226352805883730781269955850073502213081041163965629598958338515963719171453398581612145295600378801215165039931464276047253825224154983128210125499774204721391553692465044800801374379991859715119439859115810031212729157118562249319943373995933585065199426621401876963202569981424733189150411447403876808511657294868877534696171318518217811150541208638968537987641040181782994118228586894798525975162153928756758925050001437548696086763341621782108387144102937837242780337916861110789370752376602426443205368042758671755358066081756232620614525853993636390905867465411588772543057861092949901270539176584967353532913708275623508157213091885743324855272751541806603818053527815058782497989099876981331764568478916783227002045170909491672459844351296210009821180270058400964829948884616714112913060350045792172836444167107206702409105354629720809375597021461764412911016536485430774852741230261320668353706823778315251839254534358954325434048386803668506284740646001461100863573717539960208299944288740497497829896416998622327049421371716888978840316896179391487713044548568611987736195710129548736561062299296598183323795681363545880416976425333194621683083440104588935515654236640188087596707952322906699667608792796822738346769826417298463159643072836882255229154079921082253231288025204924221719506034004398618041782625557435310549339853951968147783432938067506553702259813294456790422653030934945636737879042253087245835772255000016264178217866272692658663991143664240603660063343161084326555347829354770429863588870207553365169635437235370076681022092919409505194700186402768144239516201765334031372543850976302579953354307280585486028810610261673629885670337014782345178101631118817166033156438887344442612783276697068223380095472641249226146506669341370486732296268274253507982886382341200960362316537888549340315280388369454232549774476427062217469321734939164190262692821209019594576080535882229787833503950165406947297996584126368574874529421583607641464876126546370694668715644684086894482730483042193488474817629750925050556386557711112032455393957431609514043196200244472686292170515648549519981932267154238216993416740869832317681131951569163196157097562760033294133006227373391639771036805357263657928661344353969540028413521996906088352262015246822853567610509996216558410538581478662968270352892849222304428528490404172155180726387593444325695029059103755721586677085481246074488918920756628271608761536495980202898472851161258767870978963379407171696477332459820005685429398027961157620239170813718254581186012466891882794156105635210465513334336593437111010880451769906449859444164330451554450073403951991577200824590056332359114457868959356175308827829054596515911947257450036820071140596977228689309345603614124740707679909270339128743546023879990874352379680199000529471221206845435736146304588071771278218627448126894862505985314386228171432575983794091759246332670242246177037746572366167463407471076302721344774456857417706768668023534719541352734284429336180369069099532324686780135454737063249030720041127380752423476030381833920100304382511235081899872188096481702997157932577434625761078020590651276669405682863096438072168158510305150160830138611577581096366742138344737067220956489355897828793535453868893052097575200780045178085819820831262254965790111801347201498500495958692043764424366354113031395241926740613979785908441638302117226980352089088419113404542374986798022856451254146434501445509920943298587907279190693116981648716057054685631322799154326259434024750487650867772675272280383276491392352688841569337086710673030415150595161675991476323150438442601264679847296270241900712497892990709267406437082634744987015122123639013681629751503517557948188386763367916767894487369763983734728740006436459626169844056588945921184825656597248667686672088132355513205757036949920764811257212354601835681660844176142140829168115407487272928602477000312859789728421096452187317977236443069043886452261318347928892403604861131232764755842367513197101914419911169949319561068957493926927693045573559921893328361053602354319259333441460458549230545223192050754340287212809837870082731805441772707402505172405979506227630394870625425401023562746605698733034399471015460322328570292973989117356426919073491647311541492574893794874159658810939161274342287620994610644483196632002233474628544699353246163965576282803943530147914382274738325419924757323849754437250592025008165093962067362139790069368707218966475274925177403609251983446180236046606332142439375806368734028140053811296113992935287064836111190770620673703868388314241950894689399492096067397685417838729844314801344602809948738110754760932098673312274954622875362845756068625695054458324664078799533849638534210069174176767077219480512735292814755125405108307097138898221601758834742879852805999392239334833204988616210195024746918583343193611270352379856479036080095533960656477913699258499193402919127582471917017007502388310693980990705704546759365443681136706955009875028344074155373709199441754734166599045317480177022075898767108580635235148978644982949086298715571982743262305318593631964903284782165341309184812957082877713047135899185915507696213377990272682356343216406207383653567079195936138424892120228516266083289778395383256215110505963393833249459128837297334372090403820394926731228374828951643254231853773793583454585475064992885380305456009115662196168527230573251452764915056077119470052420292236234343154115188175015691203312804548833066165523388098308439830824489299016444625094354297325970504933813494637666180532521004546039014171067472885824523771966720811760693034449942670744830826379699532793774090410565007939441025328148406494902611416915176331191512661525924065731766361368510991233475511388913721424442569486358403394096890441160692718301244974274325398462418482599004518810588191852504597815103595085202667276561102039227342725037514573785052792314988660192166145560524424891413763655781576549315394409820591991236410502795688349603943993405945036318885858576204370997744331102399294808061710930815098425555092258431479619031631393166514156156851307196923652981031119475832739736472341760345684139035619627606690977162224234348461586966832115587316766909319073012457476436418204131885879994820550542367793141399532673081770597417758710721645552491169950187506761055000079283708403629500168318313074286480628794335483671866752086564989740189225965378954464359257556782438750658089025940572270595320761334712188636905883596750060021312447470653128852549877213801597536953587027257908131412772425609773907201460675630822072402546396523205129494644437499187677702874306267292371292937158048607097949281026004671428093768621728629610870415622960580378641427231286507623475552735627437279661016377383213977055636047224711569765583720613203651772770712737877186347809696110996704621046424245384275802920275328720478942873498290548428588950991110460146894055458939077243454246641001115122776541825580881435247414149295219690771372164372547801630216906680449295630131166456904090575829658164085549340828827157013380035714793323089441066122682057515394016209349787410555679654487705826308855483951814766058713405721569716509037174666962454345352856020586469566774150198591076027314985327394334384449143676673832369795216941342053932620616845231527684783146284565581679980141861335813943813112477991891933035300870863456574053026662841845638822462705278402796425341067781645506622370570012500958667573361331513450066822108954752092641076594659827289459059598620887015943058475646132343579433005197377819075897682694254888443621184067555979743559417432115230344928518462889467844458700303123910374182903439983470484256099143930821888217171548983799153232589919013173745107933689220247860070194004511726562059308462054280776999427102153422825434641795116936059093464706602979243519969776746261166399728726338498743428650166337822424682023610417721812081552340135218505329198944007132528577167070575841718570964659019713945090308774417927899272565015199664597382893871554042413616634811402362716777841974661905851991990865425137592880825537364227885765499671955800386873442524375144341781922608299061076444843810374426279312272709972457948367278066900288084836470906087716741233514964620167547432500866876277478312228461358145500496394468638018930426963491166361053852713675536577212771101163794218631032244480539949867366822339199884483518251037123366457286250687738150059905053657788540005976426696152485347177571651881096216565581520855494861194531727100191024209298605205640507620201913196300590994158279869660407271345881033780178217854634152562270091274960125002110949957849403062806581821218676953243621807616722103625457250501154803709726768251800347736769000088976143958152974182567259338270707082869318213855738265481394604360253432163125327454542999967277563259633955644573548120703590244404152847893457293532458783906489829426042410740610475243826893384229588915670142665737382514510324459540055041298578375952270919839664601856035305353655140662213867617262833278463960189434728453886892597274355325039971633818306355452990598890334484319016985002262205504561113312739779655844287585505736985226054289910786389783154588398292317573396590597333287476324556189647679288262924906082912330891079272958528414776502659782567583875009142827485831788356462431060536371610950641841653334675490378350587067621849740288783619688737808525472082332895306133928642701557287155678100605944164072597221790733742457004130740981013877791210326522207023339155583970181640288091682304295937274576331195892369537749879128496297598655950758657107613560705316713640620252242696870576384325454673456583625600459136205314340562725674151829026152167985748301104275381794662759397566499629380502557722531196338619580509496058638110914189492431730811321392207188096045051702243855355249123933407694791963067107651226841759848959055609264807418451265228703985704128741526892661908880684994929330768352713418518906177571339868496793489782425116217954529303723810366176329102419508865484359994391392437816312953410297626373749041034045081688229495386664413644635782629324247082754747109409761556983723431960897244824977964519656142295686989045087731142424667243066939301719516569697828730486932979312227219864111051435644586093134500920432308166697012066681857677714239127922582936672014942090366402783909747867973872592255898982011367602401541804723627872750234937675383196976688442658003390046783808610383221276813058341455809209077054435668653546223501919572882421686552073080230340610586590845862498885478740458331148066013054981035635193079365160201309883975042735371048765192659641592016222758577386595195945185823644714026063512879084273774013398430725383512146307020219498300836737804211536357333451969022414013299341616103275149627980775446827427907503452008201697480345439139346611160699561158638897471261501115195526548745163531805771593975399218735608552740789859028049748084563905556475490567096401490362268431665453948337174967223826660887942397985674899578935790128312349566556347712662718659496294664680370715239624472999023562966447877616007066338874645160266590584617034119781782505189022905437168352845956984156187126643958580432497013981120473631297292956278374356737395182455123051973263968328901314584966597458307253807001931677874500167849675557728170588621720603384426434164982580164303699841019471425773232864648770962178228348470403541276331618763109684910145192766205851995447089831059443255743213204854809778869109238207198184266774802178536677087767585223297473541862433881905235605484802564484092165327717002535353958275502904893406109785676816257080309487121048416831669345177045156228217499506646960339063214449856707947603054928612272008201990009627765066066103790644390249286111720413743523290473435229775642395552229865350858454730448079723416682263671489287528089740654970301817044074716523127310012546865916497692638228976274167396117904392679049930016522843647911108369012613458548742175158509828314696644563796152452129473002883498128933333616619185635590594462483815180879408921162750609262737847633508716014339629599866078740331054575885209549310107098131379909006801733462602206701109665353576257242753475877812281266914104874059872668390940208110196341667245629501135011046976351544932139729951447097959781502457245409656983677218868864459548564042900128868820338242010607104282883405398238622927041897996459376714025749826190072881106347475886109131278333610884526360611604965717381706840710027018789505517611530096740176098460305643410384089725381464447163347456056923767894265683271099588598848886352038555629696756560947410674500109733870179612218923126761090887840037416189033576605040397962117968275632440440218971551967301133063653539496620932168131121954580764143202889923718603568359423241457136478333715134551032430090539569074397190588717460474775906392696146454283541763262187184070010754072739448492290703506941867010770196572140295800811907351527396091238131288159827428827170342141277675838314156709982609423781631746642189710934246664101915399813939343244534599507306634341006536806353876264955262277498967732723816869968885726142245922540022454459589036635554932430715657445429092216847334265368342647630126107521576212883456369374118485322339750689704087223731196505932170238859312801620140441225954377188630217523175441023348905394225095508481425839164567957403213166392029298522169599276357237755878878823951668973954495353763196839711116511260385101693262508015241896099590438076229667058080485021792769850392052033304530732563133806764418355079464248676247953279912713589644526503921050820876791966405759710695407562161958725920324220647835750776912037517333739699961817347280940754333969901288389337698626498859440124424875910716243808447040601838574346802477151707544553468407364568121469883664079549674596948609554261594175075100058602710921457938350343733676062616581559707726407035176122544530137735413660702911709081596961612099293995589751778982687324403557577827874202077987415626957218971027689468431224950021733186822054345389409675113573949688491577930511954445344631376849199087677273386206925825185657247727874950306218247972874115669026536707116553392836825608414312459377855365408765864057705447008957033495476020716837130606135807677312136639503249383963509542651251865631840114275093543708421117449882850074115718144883389867660047619760250242307550655485292784108761859901503680673360117154008925117335500293513943996299952652195231841273804270852037757512201664164190251332938529999832155677997473726120528588384446635327398035448160052697574375112627606914921815211493727633258257598935987100451869824570141656534400789784645309865752252869040699421539696079481134298343076321941017901456320914233981174245466518526761457715409562280945173394431299627743044388428517950759862020656902600286670763986005551790394841655826069053155788637497650657646753737144692514611310662899425418350055476926587077009646795773194915565893708653955435527718682802915705867421183844336036941122824879716882462988754277014202939638466088383417556813857950649806895873215524564464756513794352632574828866649446701816713366494823577740202653257875893782828590068576202302600878439897524368782177848394977640412718433276633497448305847928358888696549845859539926654738051374798846182660969246723784353570393819620421624328803489462459507721906799655100738298279625207849669060983534884010345843490647628817763879002334833563471556844726047382821340791339261805005497355242331951334732149861445956058470267398830831681387890718603322369524873095880067045763587752659903703494913879604713679718228535421685085766092086975069369072480467740088175484859745132625435707050048366528464426375809838278616671174028023782368875312205956199111121063291933716590735389819601905028258897670012049935370138130121696627828538473377366547484781430662609116611731353670357389057097382226903824238337153928774942092470488294348333405956708426153406850550395330393876191662811007213501906750738897230210321256350747042063450874706283604450840340454326410164738662222748965284924414922292511372901781847846271115629948159404211799321677856824594194866274236880135982637764615341612997572448039902455644931843376554429386385154207204859236915676433764699216885848829668521152122765329287614971630852397656047785585464410691685082288653472223880854172091400783868955227361540596259194907635723787955374579382604550180203855884837809640180566927947299464866335812147991507139331066293511647056656092071795631363501234440488725469339598678841982623501974168873058564580052103346632615246103875598007467963360429824328473347690494730339497064778338338934944777082923624782977105770554116443767070658838869980500551760881943686942210969519855578756513235956893664977306456747475090935218546625138220950691181903596769859953640688570917238136768622977106252474008518604908671039718473247960025515713638072570936964403055272457041517019814559884423392115800431944221319637808756537625622483541650946505585848338359446364669760410827672735556416282847646245957821072744235606451124137393688357803005185636443345346058069976716048702120699941107237021808848835594624163216746553177475849474508427939275214856801461248613364777950643294130038697135634685319517466825444304875790983069454194387040706384647229184398032628522948069524248667500838762372333268415647360649412827904113546483121798031787552655737164370516415031272061860308179105591676467564511705849579236234971233858536981538122984256118150114772920424720831871512333492081031867495259460818078831620545601140195816487915014449972610316190951736523527325739335683372920745053809188571267464508832576678348064022722852070493809882552409776767061604541385497991684263719182353565678451653323920599538716074309058628489828537536824521527308080970471270589044670686407166114108408126578799414325476860970946307029690580692010090288986685266925505603973318481226465053923534390326750253524939404470957796158698564634134048977308044912472890870192142243928880338916984055476316573271591321512783390683522264183642898835740047380730991083879100609924635082896488977071194756523202139910956193902058323164574330341475502693659688623880910123484234546207694228239465904756702251922102182916456270125970394116101024700678121386291333338257055182230238238297480540345578341187667251900573178925489946931695576286899005452299393846623961295050528639210964915502069441072127273752949785961072420822055840037232236754770002687992796432665522983224000763658956021807062616266913485321287775125507198993142681026546112690137832618887363726937586162389683523427570953736928793485011580438044815308042520525756436167302413203336176302692845886229333227005254508353726031862623019136220922361343562969533553615350881809432337444505979992321400545202127872185584939995224477853270527216182599422030520989433129221974294930747057468114842112086320562666957441626077120415064784392118701882351743383219419194042790740517942562699348037768423186097457672616440179847804559391274020595420532474992850493254553891283549190779312950057319965069341543436481794089145120230474404191889981459091569253859289593172310046577795826688199106350448946742085250610676123427825575750622745412059497414114528355596281883117681768014955229158381904045248448448889195960593306878508075063783899505072665638917163938327604970773418895800158589955144854503448798339532609009935033120966219107929803213653239984340984383377276375074769948072538102958481921257589048926242195917351369658141252730190283388750464785078528342888027686125996872632233030695326844814153968216589456250096201685272314683095623135505037455648572870180827624290576293880693892179661703976253596575383326131522411864475155913277783647534562815351889129664879618247785470243158614332271365019989446368386161248638953145901272587700659159889399288108623116539984033340276078124659636021189343137621969135671095000867192531821312552034625979750257196635488806455191772890643622704989988888211259884836617945461377587624226148206501666469185669148125960907910712243242942624985835239336855164352323289367335626813733910462951246105197217904042541519354501283898396371477679981287674937880836371540523602219235500217176030747617483436976348648945661988010168931586018411778546151757377665153324465965684959022486509148271591055696103582402719245956985846572156579806777991226806534956135803811813900765530623257143973020773663705175922110953256707869414778555811709769089553690180014760210546681625250154103592521220982975377644680648599096869168416004980508843630942732416521749674580637111782762030401836166462778042229004169926307798381623403946783660576040005865519478221396536185911413364882512414683278105033306722717305981850027847050070383234439333312202891167288079484482530736076783170259167289881844131189930075534776834461168868107098690780671582014285679818787639948444439241322966162170740329660920855750551856492773196939373244388203560526774276867940681494391048944867025598699527915203178393115054949376084946829474489229214168136486601787838293885075439834618415560191850425158380503779839158650702130770452799054086776444407042974289929050971138327924750972001624895624107789393546845547131688424233683937701418937673910649095181892624628926825842262787806350931853963668390628975824426533262855628573323118264259496564413226324860372444009346407634184235357504969879239365970970685511076749800377699079895494926230433567368038953944243460419219823147977075572490374874170500252181927589793858607349771626033283758004552862815876659926694340010317294049541573617499602599853049285100830994611999969432106120884461643958583074148492589309035177339426778321111113979523102657090057942541078287291939147737172251904861678594974313424690772842067509763924755501120015229140253211927367955480696827885469595586772644783490852399334292321142698417367045363096653425683045695486814641483414165417355736274862652132715183678502050537728818329584542546553413518425040280883669102413607777331481490543161278618997488829131923113233250900039364982850159895855971729973662755382608919254479771367180257213130950043219767377257638657130677024603990180965966106693567836502857559822426042049747249677787375066179305096656855234257412194284868899763499023543114320231693602011237840177612704749250239951300631067754352474009372872176839970322392186560972605026792382639684032148926386909717279651150526066927936054204744698862223673450696398809538272521600413962424054335051168502970370477919363420109436031180093187247717069400980123042466550062909008422462574511435551030879627472139519240705778073756951182890789158884932926503717323762927896469140111508875291009110513920306747513357731110262882029364975638671762987378873612589640632253430872234940473847699472001707552940962485168211286676318594047853662122522585424531718954813093244953113745651684279029595449268779513571331177434988399941864774707652579785155080319292444391254654583930445953807168842406922516683459135165675362562332403866722816756867684179856429569440010735546821596056990309941881238547016959065107259398540332118516834134580226033482228835755044581127932397397816607783800186209768940717087004943906564567154733861802493292197308695351938394482814099343773125299355166630852483984935248973336732426023283411728578366395270476859108265349124344206589587318321540795594957442825751167864387237891280758566141520497777432920987784107051749877675423465177636105822130117327797747874649214902702063100926733026477673622189278908109455335520699321371571473792948955125117293732936768231727544848793807586456095958677196836137990876594944890421261348619672833902224505081264280170678460209971509243101637449131820024784762568728172331563317229998212294172814156472512129607361142947692228536389865382812040062063758417971572790540388837979445071379163521221297590574534007610471397795376876842414653842955674328573523466570186008665306363813126098650562657140227049358512587350729666395477870449598963759494806224454833581802269098062455781515768028128608243334584265959776097506957122208139257017919430963827697534202705982822881192740074253700093151591328296196683664093845079994429958880751194165925467791231421376414150258675588025109117580734315582187483814000170927061574581040813222638452704091859825670478310090707500518733023453545462213348656218653344742424442432949084693587053145447338169058675902801567979946486162940400587132678958475190586056880888533025166120725562213186273165099875389760540312453727068389698452863340209948191854281717267072968632218772240283513699821309672225819351669270719959941112894970914889684387440854621602005002689928623503387361421648965991787855620195101249547173897832835922948499877052105464514774062836834722291607518458753583314204254599808950740817502071674637780203973225915957429435248721921850282986884037438135592032683874851277158068570239983476413737912835949006405842028419552978283028020641875545854235714794277950204907858718068901662993946854415914545661052653095419086855954174826757770720093106221643176471195879442443092738339452955267992434176419009835930740107413931545061267498412202114615775139619853379034131852149049356406880422870190521711919264761792045347766180999034381601841943540361586660391298023298599819903042994635982927844938419385164277490247551516062878370897959491740818889784436382861984015728391739067460437349535919686389335641219814945205049256455310725203967517848445374777923250130588618753778930603709683678978418253099779146950648431666942879305385260999178662825798223729928037198391210233707150343556873790540875033904578499921367372363132683781667191418158405923585890615185076423797076189946805392211055278044788451304610822923898375253152404395148133296235016709369348467419057453908435480449247400828991104250657455929139259481930978251959126883633302655507541371210165425862351296579804472869207795546071136200483091522402539539149581102393558273828228568341393127523667627596252661362656543297457212990307969289241264335273391214409070828084203886701442937119021896565589630991935788889079501701908018132560362121822340524997589329494989634697955804317861108415743479460466635896520399724669182870126752642259687113060931710721559315748080402875233059077498181885137626858572592051248824116538830444842715812984793086252458722254888448769967263343687581832801008558799197217962220050797990860867278248797439731874620744393891602616897345237226657365071884472939600271416000511973748615648932361655820305616087147726888024152178411702930602628314496254158058274573108691155519537533801164807925384786566649105679038472780445056126156953442719036194369247442184443358549302777149924542121086977063256226712913508537734395869706334466459918933412572795663163788406674557093868851482567092987238607104230612066353700676144373515379004858157935579295373008908016368584328507083687901784680549030460689574370399385542102208006304546165888964271266361111654428349172079640086818341861112068707413503952463150425678614303676254479876970115703415774429161836784756158428113514104723195882694332307471367400389576642472359231428951446995005902276344661999832058982595689407759602830229077572350358507515600629331250066068016913536542566166768329255028014085801517916456203531317950940989025346569526356563102281821943739185878414877953446863048606140693801231684305434501184655568309642726095332777241367654172388063984058460447597399549645976946137253131335184768208520201950866262464836818016448624834130028005290877634961904482238371131325960146248313608498421912735910909599538769760188003756402245499768907581851334762819282235272224150323990703954679418368751966501602014089662852644554703321247059174560773433760244283020009670005067467805013289724659072149707721040966417200520919553632785992530742395764088037431434393785140415045685555616180075748401644560440949205536427787155088630671251993986840348790221404131402987413631183271473423476061015528841944950073628549446335104608086168786079162494350549231589996612398097655556071825293767045494127918029161407342946891546648022891176606110079647557227120317413669196814370651028015481329613616070491159593716391698870504359463442378372258757283744862882654592956554203446773961421475352886745481213157445720141764088608001185088900669687587590422394720540536829128531783387050716283979870415640652836878617535045962689445508947897468469286134901617932676162401811777563871863903129741522285487225000734686622915113568494220910040981278496656922017106800113751244442191906525247649307110610688369822785711256892825977590495268596717904659996670331313352933405859961097793958717441149431155158097021939650960830541492760610702152538847973918875755236074009733904162532197477720255450877302643805739945482473720132339355158113782148449070973742677962644794421895542611885992975865039522699194367012002383427709047522130117807349059165718664790917534236776643757903474200751283751028344500069716488882411224513916225536567260286042185592318211143208993607130799610680538940566089936693917480634678278199233313589007157489277224669922569606893740715075363069081306427078572824869088386409627951126335793085760520338705096659070953725552719138455438901046538702248212606544614506775403943641004016928819270454923093725923065887161146545961859851580262310391995412473055729318655214524244080311678563069089836659855790091855300591809782835376951885167520271589498042859355850054186092986756147982381865370457575397278280067841066096014195505258199499020460865542098530723951997755771041794174630020266790433629141795703329946059728734538699300404731222730004041397082485184124881703055309438755636431768521950835294059030234877962489247227553484733615987138307677572020021555117625104714076705088961623510237928575334071224744016945738228836026127058112213020482334246285817411081647033675479366995913889764785250837633833101986443719438899450166179338782756125836200975636003109657721174047975551207683965237443290671495075991788755435691383471870677564064939741494398585207588657814127914833576539219824024156259855705488939929489582764847049340156189967533270239911001541896677504627149105114925722848794428127010819720847232655839749546713791497707661019222502104914350939170109090800129017440223850347699319407872807457268906645727056389545031256697194836412239672505720646769702849400003362442907746184697093803235355827557952390151765894755708849615168801960725528747034115870973013317875702278744188841655663980851133864353422887453096257066870173678405870229816460733354257297942124601781011024930314370505837013375647778387024344104995191128188452285132734717987969578915418018189848162398390917644813589624876567324248306349565759412111479239036395194608531049419545102644238687738503113395098039263737302928086560384348035883844834085267987715688792602164606583039310316159953610633444273689396798466973967230548309773795038278940831840373979076218121132103608602817855838942818002423920662779792172643997910849432117408486210223321288370623876589801936903974244317183175248799677023098461379325400228651203999708928025513425100275934840599054436418116615891273104975646833317776573919234728028364724081234468358018643143160970743692177528203861701193819439123256783264466391387209591029690099489169948876681932308651656053430815897851256120965517807065048741352415876276059667897269727169491501737006795068643744448066931814529634160629340942347142789452612457594612947971628740237020108986990656753660183203898291043089564395440411108354946365961854836289728098488219647809621483574873667162108426649582714560535709570183471180802149724840175211609771054204875865675113390818269905785274046606018096703067139526001068178934362734064922311838619116896429307584782650547477233406303020366241027450732479263213693203886953532638473627094064421007838115215933630144016868588919425441200943362914548131224525166513960318937801772905589526372762452723800219749052889129885490705634290031600512915778383990477923156185489947242416026001823941026643393962481936415000839502754421459177924932998045162129516317308056173133347345322689823475268947277208407444994267053973763959272620765553536903137658403999893279057954609586415491291369679030048553523931285666323789087060068199545538058257109070871616221356751268729186828025182572256765024430361347950869031415837180264835035596996727660107015047806472693382699159477558626671153805988551992916435751705742207508744883311271009329275708515671123276496177937980745896679606217794202645266429782734121136861432272826215826884993773243669098398793598459033272084570898790867625257573819371585445826739053535392260368194209653048109635475887853624995411959438911872841921418229323261964773778852995133674261724699617914899854386411788703253744166686199785719966780108908468938468359080573258814882848591992471029752323873276493047519540748858540788888753421510382405608985970634269038001017975472399539053694122578915539412977165886617247813087132010857640702417100721835399870905450357294542813689345544238809486160048597800654763366323554071999167183683494791623944435340974204385046177180217310813228399229221293587105170692537535544639422470214707593823256768594010647504719469023751767678154122029462841117856700932929606600220684783629012849138403758695083833095442708187301298098115651585541676429065648896346795414030986063970566388381851483742168347477841243783186989152795550917762670789360469059295801498572670362356954448507179991750963879842856435172131925053845868980652686281979513926600133914555859764170581630201825130280522065676659536858571388893473794214876552380513369826979582241364824393153402400526009949952879087448520147913059970762494600830265411231832061978368274693759455340698169253365689262788634378098644293892576529353895193640441911543965365761348073189221527442578972756290026599489798003179515733941723663541302597714720596839481050391629239981924457704848897407952488822125801654184651765007577703258727820008649035760560418768982729701173762967012904067926126884350132544271954161271528036524225846523438483683525933408500469019062455668678558610901374186308567484923714553497077386211556194178156356427065331009115959713873877448137385217641687306426997116814851609447906778600835853794710027192296738900251857749111901430003707335497475309199723191230604949188447169282121599384981843312788452131708387369414739745365568844257170340655204853457948201726695459573612484287455844147741592994789077979131697069326267948949287314873855432707078859170447606685988959735196093469386148703251937344583712844455340878915661948540215552315797793145909828652879136741876747728999863879067115883418292798480901067647403578131671387816699205596482983988869384475570222473691636455478410262636440848931696941258577533344737254431796991485717164478042105972524816987888443453330750529093169940646547756019748299708894532191803417487569079158296923765818000842630088722341136665503050420705578711301137022902430676372009933858383722872150450285331907414742526714170239741387650088589609974677725314599557086108267574942057239850111964654652803324639615684523026313308594374862969299159578285940629327603084834224358741520633912989258833152130015251092216084416490010104200417887167772215547219601585433721502933072776584016660078983834343749639513699453225250817483267072842612050523441360081318965200085155668106637075875024230487128736052504713427536141934270117066227403789389798537307965733143691988887207402758655575197872167716390433325699621207491783372830367842016789957524686375896215239800665876572108722591167992011964648885400466411815391675089470865990071861898742820796975505973259079615913488384374777034020140140268342249662871476511142735554346834629786144586078447967785637950459256372235898956761030861328203446233182955301980096702283056400558382913305798218756977813376548931553658816012524420841695318618264133204242198827442376326715149198529807534981090824690609927040683230903959503200048783562360030351352014812776613505860296983932674802612212573359713668286005932612588762682739511572772996414194138738929450618693096728635141638395002623899840658742434845138087061954013934601258535992181301644848400323582621270858409334957212236666309595195230646401775943233698636907681694936093006900596529172828826482781246055319051884050358818426756613609327075520903379261397751742111134538666077391915328576301508158464268306274312789412286219756451156809673107278597852455228900552746754588222472725488563068791508721129357228490030445386445880999463794981138900190490818068941279811999002842401570250049663401919933018172584120861281054202921966997333002976645342348900466940701308021329811407891791007794453098423744649648741014336657442457721593034521041847524194666756919994979733676597868199194442276214902604281537767366619717318153623851340014478890707427403225644504259633871799992446364276086097190571671906205617967822156526308904458456330048094286340130943740769442463898680957348088957916716359469032115776144156992955337226942386433459013257435052330168282859885377501071873206926311654260950415834099223245790878974055457126284669921606373584185903475801841953516662032814152228776739528692623707409623156418648935924178641255602903319748363587339137342726903978552925741394848160686850617519462877738186637069670297441473507709127149085549584966490931625320650697702079179228915175235373816576486432940791151513885894199180551368496698208109052441372519820120992159184101535079999711641765844043601076656046157021199532093548377464672754634046152789244994117028226825838798207433464530288057627826213675720370545908412649953725143798428653241447229579526059970088591791413962154705734591832308477034205918757459274606216088154575878495578676469262199368900832875936900366878192947523424123833254265105305971938035835415485147052390888012389427652693213034361677101188452345938552524470250146560976951732416765580546230068617789784874293799333590570067431261855724500550644367294345533031088810709322545300439493237952561612871504012596053985984586588169282404975055633027586015765010986364675273189089574308542131068762498317057181468491458806538803073150395518245824544742436842269788109909084570033956670700300858394986829479939357029418801595801624139628668932410770281420914756753673511293865652824513708660286876417501994147167537474214715529984584806344822901945665030639549457329826663942810600257036373205736299336776119931675090768435397088248514208454116342455236448652944179443372420172791019991353691552583256929628768309210421704904519455351516210178174221777064663200378391683918398766707278697117592024061503002324255832633092922385613451770206053202315233581608915209485723660993253215492132836882270609179410694585095450390876397962680358741504811317330141142845471055200937907700184817349351155379293742622005469401338643004103243392137407085043849759510945595704625621143173930358551394467664137048569256936883053893167232530235324644997675030546493275890880134206620346096191118273861684492085564682655106411720094905639097285207134496325123434902497640038491979531285459881245252542116820408291371921752928104361484214062488759835416897464705511029036879568962372844286930297739472653601735751123346713218476502406156779975878683625577921755996172992392486674008602594999229034168653857882604025414756775745846838869203601836766735765543638298176655653434028862953246069612096066070805311417303446914504862389850690212292933551486703522270456914324975543467152484436259729468481320633177283513401474497110549711139376942229111215999242904025225538157896422871027512442845597202663245545188581752283553986749763933409620344636499182449978869625231013526107150085808803948032500721726164477364154510675277793301385050375409726161360241615721802090588676238733753829501699228188790341391535038755706367715733078114818272236857218208718266298852499558678775892938653195245289349788206917747821115057444623958578817968412183866511165035735339072955691070329726613780336370488437694581485914047596332891181536193494790398240043641842520643311624067483639981735178308417273597326612318486454183878236086038263712707704184487921572506000684378379350133013631599642994750890174897968018737273725041735509505351171238629270546920087559471868358512556109044867538688195486949491683257351649029393528810549853529789618363681636463453343290366160558532549399521444919747263302844347431469979311783002479599576605381086037588657843634539708906171026610560865412134842707783952031680041252358978104777750450686458931110993481907475278224665524064803106606434940244540245953004821016914188366384806823113189707983786987054730681821280578281410775021947822831710914224461847106157206495920242248740309166627339702888393934350440901157053696757778098005705173281961122487814856730065347215758848449087809682909210188661778120917731842373511640134519498636979930648406007752766233434768255778453961072805695829155979805934533038520895433389302462765899332828195078534741842242903899228596026928272018581789572065657416112475990395215729056471942124058652141234785334962221671899959293137104403840170704257617228823108756443656328582068669955762362360036593755487912006745735701085503465554399703555809017873904583019541015456789812313321425653268703912038700473456725754288019499661583557939394558003600340163630597035571451610042225854277232102261341738806809340772044027254206441350722718041762893528725203227743689823440185246125630680330752132086143644610703110418867431452235495642635030565452075515299343427146462574815750573963420961169902980961101829082594559168951442179417995386641583133025612512170252760753852834847573420303199692650826174639050667330093161283589732611685194027080697513250277537798230334406773294320316226726613633294975575409347697591720068959135508505523886778211278178873901507127077856629355677473761310628022158945041215791467004850177497033801660236516204561059204674115604001237036013224048793988150171144937112800808587185447941407342246021488070500900031775523754201273044995448530003536972433684052962870263581908457427502076063183649512227801123206650646694074466258886820437524067376304677282997270162415533667739870154575335979561060694441223697637708805650244255100054764854401526096789082262584867181458682872888858876576706732028160189150918530338266884464378807114362694645420560420422739609372739313450381770458443501913777356275960082406538643908284899235183637628921294201067454222479134304074616271862175914397022496092539182614648652672274560937712669085340592370819299752178620388449910530093120168727121647747521947870660413899999065627080094957851728998976523315424176995758696672051082530826004512465676192913432758155593427656792831551636354592258702799673203702389807045101691370296109668608995020078993902259436095962729136272594840972114518485160058414611449358499131213252118398337324631285183874604175148124567415946694866162922235445864212510838889856212467889600503992403138182608489254401631581191549028919276464025136589966660190643826359554374564624565393540773427486633822484046714663257637917929675916064025246768515110481829927637252532838946708354832725759403015873924032295866307516364017598040968950530009095471804882492173929095389412759308231991112990778050163332386431081382992655917993181438664369020930509192461126918380914100311959346379087913738714880481531955817525467160982092274080902637946924742190844905539487918105086792838080410445948909226292571259033962291353904113527873547428844968878888066132336075337979627947336193952226512745885892868021652138467692589489087012980872765585190293623683068461647658839609744579890804489874512317113538778634325515928899287330164930639602885364091479200822369746990358415319607280699113822221470219141914583418137777278213130176593483140253663746876442727131098892106628048737596855153626581114446809971153561677977569401801637884001982333169320921466332206563767222651342510061335188984701956448481966740066189741580127228251351630633962362824471301308640673996508659768101500565649680281645826593521426045677032694495147394904314925376040757254017041291238811905250342021071107301991087128948109744201327631164468500992241892644574710386396289969245318971293787970037180195049769508624817842998752150769125117432273205263463998744448446136309013858521873269618527278241089408852211933292094086081714649204770674170442629355259686573287045939495881508190334426868826543882485601012632889043001995556324616811068179045051229083472083941451428918391324239980945703866428863099578665944535916212952775207572085025374213584993844655645573775219272858114085913339679498468574152003255160628527873366226437284973413724809249953524984545160534621399562583700507507462011138645809669930357127188208686343864331027150872855671830513311579811426930515143044074141681633045270190025644105565040061003421878642582412662958592704503356941973084480610532049730392637629948398604394801358318811778949730195528639678777963124984675946348632057404336465834907155080845671937307787638735504594100138734288016589576345765374239984793918515242671550458134519456462868000473827339169422046242668030981821899077375187441741544194518858277745521227928299635030254253729463761945241269426580938778360965701849232074047454795651322087058772851186805840445603220657783285117937044071815756284583483382459292995780162646589496705497868092881756038379045003363431886238626327835063481452459783331325262631520814351419322082513502152987879613546419495303586971239541153439082263566195278628694476532736171552225478306942569096420462244858295985035482287966514145099878934198012052189516833492594737045510840079730782522778633887005693581541407420705960497432804145814253291365554786777134263953494972849797393728310897752515859500937737332378939659069408866041571219651985483151330571948987029137187647480233135928327529617481332738700538855485472125512736413452339549743019181475147694688723394619377272632794024825391139976212461083110897755584417609860653693684855526035476798907015558249086773049696490492407964670067141735742476954148750546851135720698992156261026448649411839222203579563505998899823188102078818624269011878951087038505201212862374959260742315777758341085834952787179456594035239344068670409336416045863395504156662266099691158196240995382891808584561754703931892360943436792505269266680561926901723180746697166313787691255626551980521134637589583524108441720739125288651577308597750416417840833159150763917725362733954902875575214714996666736580184897145546544378943714557285028674079709836215370199428309053582260150651164902134507530161932975259230464345441596040105807517730703799353300089760476631240894370463782322226083173577973356279068165723498032510209683132452133558953019741606977750286275729853882689737033379389946487324484487084411199570120977576195610377455660636394301637207536606889982157358656772638867681259896850401821422236150655863248838379499677066481719363717592404858530756831061978972745059076861257575255074491956014083444344245262374457253434234368095831384201085009840807641141565012848174859592602513958740424969241113677051045447389461917586466576538815022380552337745984954260642359966194866629113194280803373284882310257522709192698875636746516082065936049614286820527269431708065433343781299011062680635625505919977879545621308113718579572801534519498910112741252974927895034517212411851019708515572553733028553460764956275729675495762539117578276269028526281250752320732941770537860797912361396071150784302416417482450862594341122616927935496950929291815660016898117758805301585888154802278701163087726185778254232177903163496913024215753113250680936635289196964144774527730829709791945294263509074080158638913732017172686438900700050089525526646406044928926841540916812025339885464476576068921351684497172827403232726098404286631061831568772665221838750941042037109040959319078236553491074429776310778579967618094765182408230983138578108024329227763078241777243579429314202913459877548832175099923177417750908056539284213180232248962481019969708719387327944118492875014084536681363003077773718738148983118508536297666874916701836901921909883752000457417430199968066056398085500773742367084262821019934497851901955630342547192385473783346264143347100636202411619088796815990605751924105538124054571329127201651990379410284278994347142594084830881804212552976098155194706429149901608285629489208925388732277747922927832586219497649219997550589179058956953248518826909804039095820986189237168800413611832584151181411331016313659961725785694544256219808462928393883102639190755393172940253741733093212042966183051337243898737542147357327915998221163419170125396529918539690736848255358514981510793383464534221999908576076879023898517612485756557706007175719227131610476628125909729232513758377258984895360960830715423833907137557654429541182152345499385116281956554077066389771570940039832091978511352886196768070274337331530178330732486461817925027907851254856600483316494529071749731442679057410783139092065806115399767910217188328105426993854732747188955136423613087867804556822745890737381639264296064221941432262926366561221974840270481069478839373628721619387830265083136631289425389633235481106702219943484604225893771567765413098450272138273505939492932972354258746466948595872023642314138140016685253406298770603571735521776301576535517445017621644444768287098875241616389652222137847752356647259177198604632011650551776991372341890075104664488066873525449484715348497234853038400598069311457201861430234236026323099827752841566382502727498333282045620205220851525389135040428233099965141096520583544864201032022607821170830982839846594539376581612754685292897761482474740246095012558970575938039656838474157781620782445687580818442106691454103414781606303691560893326906909339726037487696119574706169695695413505308608769684194905440544124124546411636672811288976703493088837873631222967906270664984395293709514897092100411363287794222659238645724993068170605847281662241316004016836188673354586872335505672810608451413337472253851621702478772223056047925360363722772822840609416741545054282667077426124580961119783443366825170606902057374799487886747183178130770027942479277498082743237390327741478430719731398855697906135519231694203112298896989793838463456769101184288345780310731906420100754641223271678896892895552756166151313296378300507227148598112065043094667403633509433152691395365154930827281524610844290106915051796162322552081358575579812340892835339020027085453142283943156548241398662602753260969691953269091118057036122915065844271931771479836444549863002754924641985554317919688843205727941102586465232657266229002565679259677647911553392848871013786548898909280970257957307614426445819990864402099549783371429423398007477867607097212008614250731016943864118064033853664464785073717621032730994896989752310804581000380655761490761777818073831218747263539397682580609739939987318947515928361824387996934936739027077102549139190819511053000573873433153080800097790521357748900054812870860699095663814412158275248324410565689153584238296460793084277430847235059748198410703177099412913399763166693229142849467128536144220812586249587739520652018691941375881838156998668867196908487370798960085850730079593282078191197797983213124682774761042563209890293663734668415872355967134602215383530533591589316199182044813687226570599587738696649792334723914210382244233917683268549482517955931558661963625112286327221428315276858290410369701197599295209864380419262035299563750545341484024210742678782554805913601330156429910248211580795020888273562953920380332820409960654905608589513042156503927945084872287989731833888427393100580289546799517546957454581636093269348195301013798815281481417442957484323693451212062415727471347050552675375444869335902342435432649109933595323950521824724908627722103965710971649573587022681562053948839170135988435369945061226186677060739977056849394641873709270552073054562047204599775885968102142131908614860331610213651171801476072298544381255689235161818093107711665947935498237422360945614078519518914555949363156833586655165331353546983051378647743056886440113741721770955607018037453120291479302757413567360239610667681265997762829352113560816608817648727819312952917172347528106222542968588337093634530801325025329591860376073034598164204932515835190560941017495449461243787123353301037636882674345918937058088582599565862530561391225626391852645343549506807314026913053352470274942739802095164389559910192521016352642664050243639874381756191133569905690140875460571450272248550296130588727240536034286232856171276303812719137306436885699757597013199010853295095789614907543607929209972196244766334381650190630509431037017775431870631140699405969170279240685389086115336338800711059770762643267174069090549764694630847626345801830675931652729874972202772271604326126710347789139682726796939474778774874375919711524621805194814580525390848870911492755601292222847563569119814374139733964106614144804893617400924199515866777629593166281539134858944529432725314602027011800511907835793101699391048479618716077161954953241305645965733234017406845550335620884231745933587787280262683897679379912369079401751609336415615275845875615552981328042776178617558178561333519035984937348688836256518689978166768864552031525325986773924347214841922235812422460305317951195807737490050378653354405613322584140579311676799176525427780314614242367714959860485023987942867195751766017574202476439359128261922847023644658935354291011055912352359008550327556655143892967432164354628705371635781310864438218696070922955744243108657136199442369138593854591334169894594506476442059564455430975075528299836815993802712035404359223994591327381018988688830298938426997198697913519612443945463986375289938292154101167073981196262455837815188536865754697834169493361339434051734386559893051782183982211312415384642570338063648924902470865401902037765565642268426767779532026537225337042105470622325408201129993454262645554740240218970446447564876893743126333235058242180368613178461069208437204948764984298164223534620007061108922120253127984465646593799942289262943846025848212078296039837306876338370198460835837096006557627964105801093090358237340308065355227846837008837103553749840808614447623848257688355617318868082695666591827566210837763989404938297060128967654285355681333809772196371596793768222555754395943920630394786411920962189560952315345863943660871909708684428466436463568490439209545501313724308303883091592759815983176664692460863839049367878404526018178062063327728804228271822402909216621486748051637482661689283086111928609048485514534104831645684462587829439306783085877118362313051645720628575149845351113220248860068162717561124516022545610915284142371464572908901263817245843385472075300610574920240549666581412986880945781029884887140954068361292028844060526985354306442169195327856840026593207122985351056912033343946343908955361622769336775396247875076778383992254124376900093485535955385582122041506538710664232127768160017400766798946304092355386529039513672835886266732180750539443675673744989836434492107305518032935649978498610931270794451287644415666178351654281524484243505718586172958406020637852261547911877600944809848657104031373137677141214875436117865806507957166192776072664602359081027145028376834920472484512426790681392173241537306865161533513618693122137586093619298867141721937737114166029203681174093933054221982093759958115476735434843478430418325125173210418682470781533567842462338071114535527481667012500534494062157731033987769682583695802354534117328768161949672923315232767184450107555297551250870141915997377361151833901069461045391968234377470622528400086135649506087540503025199570156219372642989740470814294591568241114268492624150003816685658404783346247013345940738288896862191290987017222064800599659388910617000678950752622306446006069442837900604932252748106926259501008555550911649796625807076069953633545789245528874029387761493634453562312681263215496136597595651591504311906281814191926419497925355621494770732845385981549097637985810192586759119114092404091438551776475164278445984834006549953571020760008111795047024813335692359894443861986843114604929028622738750514635259936182908311344697295201818500922343620643965371568324707675632626410113354148138810817907090710363300843344797924682710250504822307485943034009569347068379293681839397049853971604688322252778575922638981229368234730139638697550501468761827826896691176671087738352019489937707651669358304020438303657396177352892005550140646569612886056167367493427075896004291612633319947687342648996495158341527525096236647036945554347571451208909413673154638719452342134280777671130029924686989442858247945062750548049752379610115548327294108000406446174693741954339559437305840094806398988340997587564402152944132573260020293427059747325728857160565422061324446561086812784787227857355425584992932174821964174115646302307844848729151135889063367507114521552779267778680436459461431010497373354914509282743341777665323970489666402348670123930083875817708148137941084929810178131524710688427157623750852910989581808936100841070643357983651332952613484172494397983938821861226514810487977430682635772469832462693526010733996852663051340575070180171833964060937240551044244666274826966019668318616222879089625112731438355616083698388866404668592030536074103320883540320629718530976196515140241110654773539847901568613016945644947623697375222520919795995118815669197360633846815607741446576322079696491932775843130874918191400227837618398616244351861746136031086015407644840752597131080052346467396072857841211927342471747128385871198784924396452612771005995550427871141555484751901799340144210236066161056181055076608685921060298384882926395255297939576794230333296810368445761838034777254920429794869880124001421644360931917105239974283144896578592668554324775949391679476998861727671900475501782892520252666776040131555761149716216785815731580555520302997962758851612773955420460974741505656729670476582846115695487721052756228052722530214731844938192115585965418003312514747169746646544847387097739642892060677908074979206776187231406071027671830132468969787491978775169896511406658700276577125581267670706567339605611783293905862311439662846057843446581959504625826373295964045156712950648362786272316951148012325391681245040731205691552969247988410325085348040216865673732376103137379364353077366252777872620987077716897307009072858867839223999430453768648832253723218146652381179832459791639734489463197653116753185752967992934008560699008314083804014146723123159740898893368390551754752553203634072784822239659642609553594696677532471557367451524192242008780633169368971696451680618515359963803865986016206074318318548276017998703730090248834442418729905130218257708937839000240292046066821145419469860404954005863939335480366911140357922796721096272769967450409993553338445907515820504308671255403607179257822979077054771972473747336627513937625289277493885868131532529402712898667208040834806420081123626595848495452368232221281971313513633631910547944430715588994666792515747018810433908742502601321179960090116611530720947098872050619958051020466248507447343902250070570544137888862228455984183403951131808855047376366413396373749179722309825042444044447942278066269196327842155023804143409079318906411257343368197799221299939237658817664820150394921315118740514525580474350033102888106999317903662232616093954414753091759231525965366023096907974021218378840845271257256858387179093509129410846873486718946707048789559026998076319533807112468958186104130952023278838829088910073423761176596927583340538803868013356802516765612614939139829523763895104796924080238913059502457121851501313571231803923593690468785059455960244306187134998724182520482469049735741748689138479982048060002898625610528151218754030116155180752458854134002357055407362906183886107148245435132229525669670354037275165143450421057023078258629775247649320629001536668498382014813605654548851777069797853925549233583347923546835937738742454260928504258951561995943105890432506694462870224801231802631838890531511217537160260905490390997844667497727278130261589740342140620167224442693360090195915757007291888882898396748796973315659021686996139908393145918051485173386622342799490489087030423705043951158088768235126452866562270536120181006538132114231844721573243912197594146430151907268843492169089599875735681580013759342554905378517735714769981227584884187349531580416936115908977413733558967534109430133613677926107820153248229222052063278559639077759641163323022731406565151709450205172513958781410548058929804764110730675534053531522152630143347479455910849704836635449642698698004409356968205638644314586364176774426274284282282916750048109259465956686665158952524251635551481093083778993827443879499242282199524992255128971874677614844739330149858357816238424077571087436159878963611587057563229134247981662983465994041453332656587346264555183942057934620163594809026022836468055614758002685254859804797551466853310752766394612958612286062197100557873770037735185964674041733325981169447360028847835780515754603626527337178730928251248589404575175394220905009878965087557661125343653947959010036794511911821867201802934464152602943535055040090515226528505842694804272934713766273535577039323899223838126966530574033457959478004422109811577496219046271155831372614943664314336980907344807125963770571817802019721238459425669861194205015764719323902279626707308907710678333737072493752280306005255036805679909530093013142047176531378472657832373432379983661969477566539022875524430865000084433128999106157095512484155922480767669674865350409008771188765391527573353229300568748081014427126150944715377272602412114653591560143190362487003468178879397778710176274769714272812340490044710904024300559672230543637180715618866490239371980079950287467512907711395925335671096121961064760637404585555266358345291965768140414125277475660951408958379430534119306187007922646047519305472538509322693495993841601881828285864499657298027679542823849863045676480908790619570840344588545662221336629981818979445231714163855035616984986583586032103288460163259912942781673650134563034032589408382586100993557091390062988405507157420920677449055198347566998367023883461392413434567010420635861531758681949025467419282637337059922423563641765645416122581070623162186759181319757692122074489489127336297695246468862442709008152407674676024214042701104966507899683329130836150992758701125941739443938335174246801343034542164747104374791679479076625844219287666592030635137598342227669238181282107834255884488673700807868273879735218636767746252470180127680119631265541073816735218230649768917880730663886794321972484007061156265078734375586270012251447487387913328341074556837071881670727541289843757689410981955202286793333377688457381608415036643668388422901955681096859889121341547463154293740281702343802804427500967141487158311141164834363042137131053902202178496907959041074805757350508071376224931808749082890285564888747297201381623103775803859749555646041210823257401402281701908664905206076530491925699165711159760832565930289611982737180985274291897728483843918933998151063875569176474944995968162428913164262412137630489267053260002190882692133335607537758927077044845675983401613782615224885989736369737662210489382074301859627361434308025213130015036385812222457609487719198762004929420123632502097304829342005689350386307998030325728296978071226013629972222620511009524608595107109988474343490574308694147329181297661157156779362122575080071389393863872442578184466232007302868262117501145417454343311771322733689698926342622426278047906160911327630263555135678939924381479849388248296015257633137505557223199015236710738626036493064502332378465442819783739351246323852891583869289256839779674204430068976204733100701138320479876089518010922597754277401437145838357122402737255048584347286034563582576738168256818089499448839132227548333153692467434109827116017000173727413195118477109834164734370262401991381690470994927497128647436020081118652963127331997938159350244083317803338933060207744185016689269087269137667946364117902772345741156668587720175860025236236085940661837917229363812406059789443870336304324862149268272741941792049231405309606929047705430365618464960445691323692442433617323127551707557919608711707353443039471547503027368023660100845836127362172117755460592294328304080987025553141186473894544142378946919982982550273051967159136226270835749911698239317315798462013676960088652758919888606316222222552195240647616998738842201836754799894760046010655690110117967235239680552186788391587614378539930873941256976860815028893379049705857211746446165628780456516227137185303852372737822945978443642158836741057250376434120629922127770190380528797163137233798174009814802926864195431499706532618630202513638263272787135441952135770308096892934658406452448807792643679647394780073691462831454931228906661995237303270744933938415713549383868664235215369952971594026669924039554742095278877437265930706509219504363027511327106431251952743538596211559909231247238803612672297299500944551906282690322293593322659872676151473499463066682089742357400845221041165546584751963507645663063736646099429134736938240801314094973919408803450146550288044568080980119917728661082820371960111476515943608909163062800947428145144058802356283945239208667287238169357750183223463841296829189392777009448708323110687591259759883432832117898690980614156802262606865742949247707669201242872660976861698091983528182245129072730638615107398176700155973530876040161239565483837711384168257063506211842993473897698410253106404661539335825284358203121194355946247286516996598596986523019486736065925643008413903963211373259263441099639298706518064043840860727263891788608039855366137778860943138593360311957736179464924367440366785012356353466100556954033381769528991703480528860570044314275507415193139183245294433478114168445291307191285762585004796353950874846920210559831460523525785811572001173387074181572111985236671509291213796100306560111313994827622838786744944772979173542843270653947578439782618844762755843888247052343481791918375286855677374399488580184963703498350461911965143375433407401820097402684936030678618945977937172104726779364001469085782117637363331333616752282054766510730632999720420765021264549223062780320475944612730472587158697618821993881501201434271410962978045746706019941492911975579264827992939081041137123677377442665924641587952198311595915996302300603046743284340702104161122766175144655186092273379157901120888996933449682360328306012591644721135544213092936963237189105302548126077601230792480190252401047230605039027017343316533950948237131387858078246034414926042350604873770718718164062007620057977993325945514960006666559125920793150692655981103434322759362094218181809897340540018191673868906143578021518825497566485020054726674411096305911882757344725102617189980331163278778995795662244793610475537914187447872276312982241521445194797122577850901242406043768882375655826033926890995656140464386737652607320383495945570698385755623016808716650908834866252530956959895175736726870412262713509344747944015194213479226852712183081715642482861955167074269250035009992564957543609010374271932465537103125256555877430681018607982413545104414355588431366133047329356443731184572320860889844577697718048344920751589543732871120445365241648636616930850517372089633616338253618166629127485545235694025155411511843303528868256655840958421100173485082514582024588839261177219504693170699558654085134353462126307465415024933198319808493507496224970470799738641469305781482281207638294305107669607812843392843052955852084484761375652397059448595990953368813598887070915782320827847253892955143672972405033214333929658498387241265494473400206218807051732908035529025812678599106144539208475566396201075244456565493108500410457646050864855891377956996829691008248419681609464446212510832095226413096653015303145868724577921419830761035799454403193652648192048758256504776502425417052469590881816747114511940229989050256629186909680959774833194358968978492553757515790460255240201506514229392445223630783927121973652535166322741900953202245493353678326585108608177821083646274435210044538278367002273012400520241982657076755086668450053171916394937889432022254480088247075187212230620975137708127097426144872837733398066817158808123348793093571668670923564641915975167437739297600215814256664423179825596773691398815750449579379171131116613838579643238657750103986521554418839569508062885723241975466116564351849184129627350227939030549713600095025993470839208938471181812141766369975593785147680625178102854779069016009444159976128998490193873965565857591723190275645578609920230631166019691184902478622594981303051060860501906723620006777092350182831939495504938421249264765664653914258716902418321723499622793033441872966836366685097384615178172770893043655318947755140102193705850187260122262970991710026594364880488224758177225984329020784617881668002651005899417979189712711024394959028429702896988004319767103076750693691309498815400643579686258510147506242788057823602460696227027641797262764196493077402099792553559084114731584971513981371987818770103195775844012191963841907854297842297960249524497050499708327774709122856132056397319845488260516968939534893868498932326853824237945675229910156317082510676092147792357741522328028603164260100892276587808841837344817966077551484248451189353692492905202409864444305382993726068237898739617648009085240029374027236683693432737453013093560717319675176736892420865759408904647825730106439306742232438744924720828915121020443788024012685847124237425649013629042132890820681581311304012689209701404418115755193434040264013051907358122099895779290435083436010871099908030611053748426660450295618548636580818095656132147139915258905716475824122383977916511160378122025516451172341146372400128010440159099590793920270422341819863413036517213737581559728789920313650475728664524406143726493665331785968580534129550695753850973224732892012081347030398020382327621931280765025160527273559115331904507778793924731163496513362282125530884499788408509718320216599102018284277172412224195062758527039156737670494744407046360871806519642662110964123696466107647703313135961678800623897235052397824675454205146169908268723715936840162347374638818467039060969067757531246618157610320172708243375736836668334814742320501849062494644510446396526497547699221916101526189427138295913838167574272928409571212048373031676366931603919929470812938686111239805604519163379272047796377362828630546966407085624828932633916238399985890145744650363914661291332232364544101143417711511522830895730639834296393267447145609654416652968679764196778583514984472730626415505286916282460367828943199613280341297116971245066931259999873275073775027034339063956820107473396158938238860621022276554763568377881493209502936187313330246355471499521204594963252869690267005685589624254437059395628830144974572369425142757907419402832653877949909766276782546499206739994569043568143173537530210527212068544138515868903715980259089867916852681414541312953439104538796094842245888144771770822034620022419808916664996648261116993204897647351110756374086865157752487054094206487008996323993685680811473720730421588156623282359863781334210592529148004063107799661416389011742890252382607316633197658647614774599447273881202459704904171077762698653894070484455137073173023157824408893287663935645844843170741064776038817678001139753627252834016796768988196552986868498882344114753983121247428155714280977721083417597498931996812481626873932943142845904272599353901965361738392505006925317840046638726178722540494822998734633639598806815309599354795713987951679730154293150218899335654379341262785265071138379768824144950312332571867475273416958490333805170168954024848953184993317972782381797994874376633872914010535060581580456913650832690143390021865160537690790775298293863621763058819317640865450291740879998070265744659026012676770378444718486277288488374446870040133309460773538781280231942051388132141773920696123627482300923790707467789541758765646267335522293761660505592352206715707211970423570364548233520774374868728053750347662504793617679641770492872428010159192700057478700118323629392724729543269572730409379109169639002113106713895011431864117002017169078893431944204834994422095393386134697260604544189509087421251281810902853963468482545533324859567776135300793643330914409790432360872979792883674362609695174104643700059850509996079670184933510220020327749515262737847845300207214301935286472001526192824395394426729906851592962906043997810210169758852366574538704760346042737087204628973974770645231230986698787163271918651752678233192884424845953874296515354711823266829531818395735421283150285534668865605186751580557780038570975262852015143284000181234090901370748103761683480436794968128200380105915308564348007578841081525783449545998671320738766283316526267063647780335489780050582162367558978056423369431882926023897318096754189292409754035658262434147351113755882638747000602044494533064627176621199565057914747418095538068787188593832696273937319387552136424666335485070721609445649529438882187592787793336432616912385490614869406694021288318237126804691153497092046845829156325674604491088736891247302347147462074719826949659318776451712101538195329842314443112274526305804274395855753225393686522195461885134785691804509780120066060686284131863101661084071819870958352441812858278572857994199643104271426436258350991853446173337978963921072161339241883465670079645419764603196500671494412106148487288165271846004003089937519429115352177399400292274649074506999181582064879122286162493281307218965650226619084719032132278489315352127861054587896164493586096828790118976495056201204401907301021711953740224886068958717571301410255615548797812821543794961253271298488369150327735803249260179419823674709117473997157009079349215752267136678035645208801348268066188558369913814027230347401790116898578284089397501066416463064008661975650082911025756362543224354078211235902927331628697374615344568713938665877329742834816143762200234322319631849405639238659401979428229971512106081236754520183939634160380877365848467360159297147025338096411756703260487909161172619326745192185440943802142861407726340514517682411784500059448176716021153573871140492916277155529434338255770149176742414889368586188934444611156182170976462276620205792254799679386631933574846687216748246100868876027912082365577003379021790299935501166249343511786983149175205296085926040719117402819750492895785469606323592736555021975964291191379011257569232568021137040468407479269693849389959341393715918237744023820892012538479951233067627937180214458814394875390243470450360488224348581607533726051371205602951183543827195838182745482677776260018686662250252192035501208454758246055104236567035353319932586269759337931381209381083203373544319619349450936004473464453081598539848870224230158023355735498263342930455368129200996903397914702949994465893243241948114727148566887740823048666553364653189314126010472001632336973251960938603407573619237514659110294501137274667482346485319102378181146591104988272314563995724951320978336898666115044242636849564517391190605801262560366976224317696622324725146601832931857964854143502858518706113245485469134109569375035599360769717167280956620880301216096921164938840785061259349974858257523591026026535952658583065583569361630671764440689465796576726693572785147229013237568039368266742902358412318375247415437821235775507026782886981242084635647502489334451018708676729528725866126627856426165594045671160419402852883509376110871261123760186597274758506164572659137387128501931271732052741174231806378192608115077030839641533235002057360855803837143627582104731892573103824569027384317313231205523239977747305453742911874770100649651137830771573690547634210812946515934485398491307246443765817190209572250144397695592584406128413936384570658737709111764559358364388269937495310984392156966591541673482361235408455483442860670380030582012582684678780769193515832132358191596113192766427370622264594419780512564545399814834791691107489702031372945646012341978067415281913418168586369398865683077616061468264313102980264038258538278955410305558954374854442404047430682761159044325135282580608965609617860787282046171637104254517602716749664088371774961544370111168031766518665802440234722057988472035523890743738356591495157925068037791403081206220975873999487591714800176911733678168519858403001580636780537211318125952477653058643964633809007004147612973819087959336553195207855605805844915684285804513473282638401655764495917825942564452535414393469563483353333288102811567824242783876342305893024072459658001144968271810892044986974483286943561474572866290332313080145962673737256965569022265904687876342439878308084505684154136914883226923344091041849780984495793396744581055111007596248703718222941105655483679431009877822102904982505677491690272875283250644775615320620647916578514667948646737243047896154071029351639731327788672189268334084683285138216294228925795172172621917234666884209517426304992039956657368469900464098358311890923862408016244889661316429145229623022744113337146542598554804188271419849286693553779864735608275897436513466645933940153176970517956436098468355399312972090733979093624695000082903189579237752054690391533717241594038244009096307018267945152841793884374516784411583804334461335729818525609466532862681492566273615481174557175545385292744429103168345491110205604089577479622393342097066018401767564275417634780931121928530970053068525032857410007372721638325672518957850596152937809444269318854573054525641413592722345551113637779721046908155917190802961240045774924487839675946972562947053461534390241467786985614661887954380529902042646128327879432190314354672177387639716884253973863635887741837684272338140837237564116992907314109287713771239821560106698074103012497983783882731347338208265268478691367322180657262713519046964461950762841423811188151312238531008647034314074771442190119595490105538821043981304980967595910939050859104253501227214979417902919089799280587575161505872427650146603148711592730525717063373404124689641710969783801032611001207290993131630442066281970772571799300958522159267534752435215297193511356310089314055090364440918004090673764154948107886100396301667981523236497906791457883402310024831297781199604311232727314075482035556796001757259227268193447752322920006741337101989079640027007600492938977870952331118961423014952885881681233129252170998255429828063684089554823908964839733170402260096267989941391911575873101151292066101041398094454889942516447207872915382919693709519658314300693483152484634307901685122432596058846888200883390639366806483630974504605892143478245982368025003879606052530436661465362988712090989237556814876736348299140496667360181063699028610288049817721637753532949480317716372434416507326488156346534681132640581094722848304475523754890500056747798827704439294716064955620167256278806342905446664804528363046480892369088586020993989659767760527834131035155015916509722766913073690127042793293976434388936247730054583703405540792092141127228434170826041833737432121425094944681739466758316141952384662802886909684467084202450563207498771850928230396524196565500174075075625000929655682973548900321870008116036663925234316282811243967260766571844508402205847430221918228472752677673019916116880979520938096392448497168466374747420059833019269756816601142740991433577967566340534998044979815947190725078427534511462896931882364754821046294502133452146582309477735741251942060938254068470423286454687198661300922858957998688350787496301787073610238485802964750413337601470599667615643417835619725251108058267424541222713145308172471990636425731564939216672034579467635379144548208788670216924016865953332944537279997693671616988879000797163835607471490294940232415353526241103953606124642480254864642273758878841809618257291791182528704057062317208053513199869712430527923464273332755333012231577515290118407639844349718845244241445058475352028531972303879810684847024272329029917914283364085102365796899444321298622274595064972168093258923138084215280188872259507887704310627720217844947045719684771588192831484441392140201626098909460223032778609268299846794586647422520594687218995179397654493757507193796656416612191525374873430759116237598625824654153007471103429988312762263287091219076800412304404024665376010912763419924817143727757938507408960203708499448088141796154702979440769312028447521955347424519087705140973685053887650084992659921413504509451915746453500676102595163639622069893785753873909730001770223889084008142448298720878567951200619608977862242811760641337904706710789233802365978794332067379747198285110060946155761581649082536062575751914123891534788581866720462703858546273828280073011306161402107505951755978716689773407137319794847254930310500910268198918877313421423243206176083869275391112904924567197755732278627383693732429270054273323873230489929461318197963810719892773552548921717278756829490594081779091579378029680835573256174211596783821965195143649822902917205353076285827604019021662194276891143605113856591885196269153715873809971229670286355738745547233293310058136736198066748648012395418025371809508557067174542920527876722808061362058550374038312759227245428288714060248534220652679809011125512094763236521464245312225775320286036800743554624082257949056630167802705169887428824271126926688630810765444998587124903147958418924516254541715600020455507734458245915310125063388168434962711998106362894367245927502210923411730082969680409339154000279640924947272027560017938800588647980633371600665278643558192825085811864616022359058265962380134501034205299062889772054531501195118231330203511369370421741692886874163563279327495502739520541281515900801940965576465176688622037092146559835235279786809112319932227698681942193348732940803175621003554726734564665887175684387118973859436329236860279795300145905156887214848975973004857822510741463018929523893049264001930965936508623622196148653159771872006518883997502411551331418641036839585260619821125703999515176964228776807267540007274855186717978980566724789699920738282237261994576467700042218664562229379711956087137832152872058888913526860289729139526175619077478483257126982611362926048569715462486836017831467038466774442433182895729350934784759213616626345795298905409591917422803564105919580421135882018233532015990236956937003765213774554246817369085576485907324639843308317069106719131820118240483112389750886687394151230517977114465435060780145162075194121750917639291518891716905839660461304644666129464011731569545422916741986883092603395035511518266656785357189263517426343878510636409618279269822391691200368431778967422813041651683340838840924701424024830589503649458802254361718463538468979014664517214604544336082400147616981078765448546055838095152586423015545039860183999520163257632812979005849056712454058650111300618257748099870187331038585388606227681220535228467389880148504777671668560930929218170508094149029910245382249929671508785591947855463916413245433679960014695940907855580283454438525036033556349894523020970151342750054757449412322281952652412855112888165543028920474809929809267218523862936266059309987539582394175663670311910067108520676937677074068674910330756528058895049098984210776145184028613139890382477428265858008226876479388000897185308771888364160610438489232687952785603124869752924612505801131911021744372815347525742975549466917129195321132938731086856439552415933671567219245083914531423385763057387541741924529860633485990330785078148427054891209075201383963173601024356442467194057947472586385331278619399372521362293142166095187386504568800733807078963024630523492948612057486287851787794088372458331855504930948080349718782141232374433569843899488576871704834523820297948817575756505348053863604828015907981169660201597062036601338879508301346528456983643243147192245624891739387172905100116662662372446161028458585801973379220405175555353573046282689967880092751091007714314865525461610522153259606711085602353504926263068485286230313274573291534732516359501298052881232553032887148973772796434113035345247044100469873897622703943200439707193958084675761560468591191016870467594915841554544326406084491439952678453129486182765161596010360959049346689868800299225657814651613630355311200461833884066170082567691155230311725650184324766107071520365393380710571910160306341589581077255739067587941310083250559311081650011296424351208528642463093443551190605236225968245746923728525467880648942882783605904579127632779944656735229211152765716285016752403914706896695739319031247812761258720697294000750467749365501951021088977759731137986213353523141543263558644941466232018449544439494581140796339940900793653577454019738015810015326711023765280988144403653008002218763448629352255367872688351922352032318689112277391983545462726257036017606295469718779028178660187342778416235620578063449880899231259870910029752661643035403433500939889224511223996448478388625923766678455907806767159038606942592524224439232450979959298277991231230313712824613654440536151048005491630986010101074391855859963384817827424060810331241734406772378796780344662370647240434247725795969591388001103142508722712692548652000414401639799292090944567063467420665326055853359536315529029414110619909812453129264135199319551382033009763179364347629061227140503846316028043712270984116224749687218208050885972475631348968283529718358282094296304733514700151328109804521197921882407106248899327706487750501441372969388886992176717212403627414746912079927649048741941061357104302710618497966976512817085000187773322656068600101781826070902523831064450667999294092794132016297432638857474042172447542861159057660943643368247541916943833801228185843223393472244292755479974575010163933217770118989307463998193722789710269696847072398043658049201875259044267856237435027603628695639322719609778392236574219075211578246492142656610180928009513524308091214760357994244606321605197150184323903683825764646283737947152822678071543014911280062411559970007323066021248670276076769949614415745606641835427045598983439403344388391164613814218091002761291999343408811961986615613672952955354487139981146801324214374640481127980749631188869974994946114959892156987651260115375732587751933517588009544248615004613788365751984502231424881301409631982998460028773901800394810289476297823895802613831279522203720851847351676242449050141128902062129642998758761819964693618549665517993223741622322768665981830317979496414594760728251215135969608379762765529445895040740429116739419682947907449732454557127007078502201196093539915442225632552096727923378036055507054153644362580116390098799900309841459615569392385730847752801480663387956913048128290581690808985376227499866576599153000692787521508180890899777746130260023815900818089076377383263892802992786863309206510537716113888288198587040918361401870745231691660917734578547528839760584740497827220809138845982493674055662297189894650102751494040853490745565390908854187930496668450189696183533629653609216050112069012392111220901665885585487038917104649414487313394875899974318847614676816624219855373696152823291160348347485821343678095750907593798144877050294110525851653832400705748334203841335034492635032262733456380359888389480411345046505938414214132614672014599597876113791218234673034057074893069787412978496066344003664624889092393002544228641696312301811449673416032132680072293748448941235167530972185983230391019588880232345078856916032771621553863655064206685079835962799055908505567075883391740654094629483332525681352950058874387878666295194466247443964334219684083212990684893775980825365510142729835104461399137148159449549761944763010006410477776953837694694836806560936801310090739557947850930108826798456735303023043786845924421879628940196146930085368602144169516775982369748145368644058060371723361498988663775250871683144994725870484598085010052573309712958277262835657989260430009724273780779182780941536812148930013707548646027852981243168834520592675820542056848833449690627804754215808223139635067269370412458722377182484540494248103335214518576750368659820172220569122195986924622547306481546277414626761843199811926807505698183699386289678960631600999255593904564390086027281700512267101481455123701262596463188247239294284779728004961229433309910638687372217584884052934686818916222835268370971342812803668578639196725021989263307121424100760418620702894652389120826344948682948368850050491918537775440413008279036145978103603695535705270848471747270695556023957944347466188333580447051123390734919772734134064434868682915509268486298921362828859443078745351584471943473626538788258208058334411564494953283507055730300257726882244844550774484670689487726238455034289331698915738982235715987279422347785525754432827564004732196008787083682728444802241357606775187642215107808448804379291101584791586899620441729377527487070514178975375514604807706536689275342731513971336927310351975538929248356300727960284091405174210022882679868921108734691661702159368270102913920625262816504345896540012683375751137136787892310988258637601576070603782993876628489754548583386764771537942533598090611614211091192024490451519826253359503590324321212235092731470412120503068713683500549677096851345428528631118492917088979092263538789078301367393206100937324958359590717158330859943728386352660142910479696965922515926403541492621119441202279308996842129876080531356183381204545447691444847812589276667216259294933443610384720576085065971004194006403456567209995541387758151858779487854889421421712613590932796977571373478520417382443254504438140284495902042664889328953941506027794055845652840330845352541853834665777788386111091326518802327817975505337760181130842391367648159001428109463910527414085799494490458035881972712320602050639903012436291096403588271704467597419565119719745262906046365912606525151236796901176020117890574693455276848106879423965408616864948565832676195314750943774570858984362924441522424978108454849941605137267204288705893939938221716376132370292415102049423562814282621914381652891287748473139352872049235573345856221535943685776732290323330961361183147570254267288197840102147789548310467346234884528309355518419917032993530782183182667896826752576245828681116190727995577273849257344805675231091087330125623924678653253710065797131264547997283187427197079616042808568704896065204308682148562768672398642730365371328472844259428163298609735736101374199917873140030467436266161420905149008319618388782186399166181383467459498968242375810838420017444332711101004574457482252601606312686676748588035524663874971767035016048776199292446156171267397329075906561997531471469814622752951625220699847299645793449884649090837827100178519051532439034313578859527136846844789451015059713522001718174097609561066055048787562101965874998852751805764512254718732674944039385287997453116241990436438006399173979229161124937979717389640469503579129742824811680104236218965899526843820344686870441309199932621318237967616338910116916528420572503456551393957271409786007752720782109276185682806023275078276167481370557185671514722205490093706998494692524565482307169308697088852027241017074390137077764183299558374970077169839505986551597013774098357267532227713786634721917377721152897644935443518335545205659166289330491415397038825153549392529321279024421773928052492607022253765067325038886385504738251774510810372484996796516764314822300541512874841661067101564274051740195225381516016791181576889219291492755575959623519680890380536660087372567084057142367714402129606369685493077759614243247553444792217741897653872319250698011145211860485604554334161626923947448220482834820640755227700377984027102279291160640942269615113073373308435810952378781515704058655469706639719563713938904355714640753692299212085794019744298379687842795862733039224199686759317238575713164656386353417299580157587481130114322119359668223785460167449952731170350282727676722574263984603025491568207043313467626274248710016573680521195143634144396310108033686579463444097568767663900155553359326843002522760604196144801549505621652753741994747989107388997012841986156801060784103661317526774378634432682203172972019828461240157831066274872519620671718261831513273547890902950228095719402724059372433657637728794620149091289349092521720819135648287110178670331067752516789110213010606170178185570916181576603905135965005702988051681390370841103563387214594103605745691591317974415560991872637562506443876078435858181754168038114896343267404654720720817568154863827169246563904914065300254501591383757184246912227952332903355968074755361066799571889434852463054254723580160812598609469900567615202298955478567279522105841495308345420431574100278753728345334587626003159132217881118557288805159316621974803027759365850590638522214647678725015784906058127082728927845816503469331314189217248804132246814901933828996378364283248349506994148822068037795908746801121483906829392089296476465681099551305298738594225057655837985388475150090632412224842274654117952121554722701796086493002740281462717429371112832253849435348317614452073614483165021413860573669487710396151241620081219067875382146469933724092505288410286704744455713109115568581349544040217720818110452028937884745630113024571810014980616421981005589734056861157003119328820948903399651131683738573305601405918039672176385787874782102339849520163250525823286224918857884486839689509697106276737734846179617997928879796789934986447815951879959868366449901034258170050143894468185566158166705677641051019658235954836712339427791931068615875645237017695751220975686545896880830631759662929291792877401950014800309614314581632743997255383792778001081705635890392650121112016865116469313483779191703578271595768279553710920760241845333281748197990474821302912637946585943509073793909817108269709028221756400139038309149993570596076796633076227369159000858212733936766454473118759232899582243435371515822249287272546999182637405831965954483017851322863264198969995147887526862007430106724586036762151215949033980020652521196626358016915869824811553914693149330585189933422767488790486023201665114537447881706482205553884633372503474969669166103946229374849799987851400306150778560158421265128195308837717089468297806801088237313403143105909657426653770644359325051781471554176728225951947227021576955874667575171471958232534746480701913157618564618139208844292286549116419679947804409994562251744420968951629231937346204568093768391527669394006453617013115884238342342176772816766337694795041969858057899615089657922439132240286638703032740454773450390370475017175758165263010120590871770255245391031109416134865493352682003776544933528636648609244451276918711562890928962727894894097133743380600962229842378118225899812302308093695205786085013571631489223299115555768869344122606407820563016806928973123572628351106984503426463713635809140629065988542507160421782359636332464056735218742143268376590291271337059513914861815169079773015929693141513247077551347145413004468383819389353366083419665863906961083855115016082404010765200086150680863925180346120696357633827971711366918890234419233827913980872157226406287558125326501621933083716047508285453674283060131688841472349515120099611655625150656298493410403803328445969401616326883043848796856880393662371738345735475833320423808924213474560052056106413945611502632407522800354385665111672744163116905519721250483155690595123991030400184126610164599873062687466458999096979865666708236829455589057104425114177847726660770439255416085527612638318555218512377776352606043622814532677603941239934393782515126910172583619647063731438430182491143861777324194450547040043241684571471941824722352294283739749760401287625059053515295050480960914258602251729504235411995514209822062147240666759214752307616741124687637786793345648713331009463134996284812401367422046493027197644106609781438890288598670421469905182309521947795177367587293556134339068465912403085790188884289279688711264260064028465888511069987363071596492614601387464007038443073080822649797128438069895186321027914651672754692219733545494990241075493201314624338632133548960610551849874910882362188821925799512957953754813137913888990107902913993846408707621140553354369034379112520518671492067106346136674966300401257692027902680272751666627328747699728373128366902069080268061101197364158606436153327039577762070882450456600700361761975470115209040617642636553257784561322816681599895760336141692733647130199758031611459294878614082493381427790806943680647134899706285497984660096424320961632224885360657228258460639609367425835344876754953150549871101296132531951497992611281648833234749128612493298767805276716746063725357439904127453702561574438225561084015015352710923653112134813046878481882392462108737386921964503190130952595914827493176940107547959701865793728238932826607182411293392716607117331632033878242781996956901041710984383721184245049125585828943152183360635781707783777347008193148749976880494721046228051401131554826999528660844703009231761031496121804424171753828096811771998983747419563132089759512939676418968041563450630000674892281810400708503883421399969859106094785520183860259548542345057359790116531443811147241901818161469621849424869493611624285729795976754445926181953509021186415454051965462640499263798028541701483760679291681373663156683325926171758473183579103575694788029305885339962688286756251462532557057787554476931906698397145557275821340199207133384460045732707708129044572543282862999154464734550607912554265955556370589414793567229551227958978643966378905066274431610045649940120129838032325305746231003112812613360903390990464547214985269915675270121147399233800013213428138853136779619325505753521600624287263352020266317596005387895088697660485772515025066048948710302886178730307923825510772486858917464067950801934794406519477342103038025143194587620865724302920967664567079988771748867831449040426451125371073949130180555742897855063989556153022420196017193666156297680691230198095796041433593006948669771724808047103650432031172737732767389936315339509371252085638062098537222419267541732059062557647356112249488034476395118851380032791364139128245614492819553968252538754939186821624644697153233287977201965794593261606326707991075110251280384662031778838021659803258664526685282561904383662951306030307032032848434819552885594507165179499076494115510073781910197202276006704053160422498363656264694247686417604211932185582205075559392269538173362221835978028152187179766277996466643183983534530904232477856400194114702014448217737679588506861980485469607815608043438372979027767327177151076945249321683309006339856920186685477916555108167687223580915667212824671071856608600055160066881307610607678732469692039230351475603839630436085571624666460339009117029849080969113673962371841488473711681100263757968082943820225224636271212082550853247728026373677988054276936498994087474245953309189071458159683131978427915264565801816312958789038701544961171164966976640929205171162163521045484128215143389423296784533175861867200790462735333217244916749353880478971023620724088837168440611125675217968451271302644080456905505925546441307130286347912034686981200678178883110316563244492954649170830446679754568891058421133194691774918968675924012011258760316380614405121437640540311422298634163756999934007352243278723198472146350396109739155746172392333099611543296510483619525449343177130701189529188869388212673056128210545441123181228385625977801290603121883449226096698326672293301387280512376621870657836710089484136267038715961615857892063491487440015896431386428963684654722737703836347249023381953861505843594636036389900275781235353612320601904181983680594203357920074628016473422856467410172823268615338365123787275387531841963273334126414090542533653651461722405728780698708655763687811893594336026990327642569374115039569007950092271154396282567646331737879974568093390176341794531085435942507117976198003474061025794220108528792389640433724232855077114475461851180192484972322544646491916244246528659233425361474528192344964247435952890426573496584532579659082275622069430695297075847155017916871406937391266113816730715007920097132320591079468635497471305198240177169384385861187695542885793063589361554106554562645023158115333950295623956153179473190986022437207179724774956568833661302943349914696014360054980081296336292347373155353682678306624701126995900919991864097709646133370803579350485335245018199346697495793847010270256541009348474371794880210727387516984478210278763810367978872133500912270068594922461333243870085409358185713962485854732362466450690235240705409314351199402444555509439417729153512795141894713488373154818204820791322395222417067332962834321544364876036160231481466930114621586140637118351582098856614950839750570911906780790379700636926139988260856615274286322830186783180572131437099108460519417048805219948968473005167093289974754899837841464378097426186035794804353546664857488887966569706412352497970947464250228979890072821409532612571511894418437603585948097003403167022467756341992255329277213609953569310307261703199431560106140966689434312068559966247700483444526977667113372126230307106564874336838823910359902665577502613037253242005462192936296111585069648324584113776138786687322186660980588272387568441566825754814055276429076086594254086023575108903457202897880964525851043300097663164513777560690537202960543389111293644327057460096836412202181003822216357074628865062043138053538463307237953688914775881736973223150898510330572147506717110690458982956534457961116494209492327324242681452227064238843137034055014122749988314640200110145655585257345652273839785730056588890427894606098046478808710500930404393492806344909728554910348447331523943093496282696944363808498072443949961944920746790772284957659276119104219291095492251076983958749273898190913694932143928391855724668802987558183376502301121192230345547536088570500773013208152491561936818155431872691544353770378967935387377839304281972410606308217639609670057898515007009007241368842285033302073555437370822396879969785253501243893673869845901422931617544620170877423237393313841344651901539526188746017039664468837183101524501439271127511391608589593482076409921038623170173797654956538564062775489777355856580870254344797284289016166449414485691810887973161711328380250602356693706823612552286528327787415454098505147023627587032581562393944784173546300083612454284019967687568028515828793740964925808275026542786899442417064594498026018287659284667844666076295675991141954631874166960151718548528860214574294973201547715807179427224038748412809690592183660272429596397418447065454783882777911487640454442811543903605586442738331459655325881684118636117671756235805937239516416295239256079070761448776824069951735372811150863233740702938929075453338476542039368708738933985314670445590400922915766474186886126349791442245138965810901758751263788670536244768038921091355031329475436467219397237558562600292376868189533867729068405017476661029727678809568062183191807990904074223157006860607909294529030417391404846588114978301404623781351770599145630755635384667236203244235143308265449815440021216119210069268269747136482112258657096249262887095800421851020461265704573164816788324582875899382406605331623642127270440960150068276321543220647429347305074487618649587183301105905020318782624444735244525878801236325759015344288123153849041945596438526893230919056368858707555244259655520369756698340103118927800615028000680076520942242653828466162297870461084983702211322898492089684208250371124177553328707376209037928564327548744185686098308490956661624779316453273197974282946533865593425844873015784880418341484069772096996552880475096931774303232674532621046756219586681290775379182604699286709577822782185034872724615956834241049849643247897955206086598690458048935920912855243911487899577181455796642686783598735216505507047975417720153835396831720916516949105733362471553106593653369585142141997392960320082285307582956541990166513482476611270932827768663397083836019998754938670199040831561007296246670959807872650613733146603624862353280270863135927660038924617565356242058349195643962048378346643663350071259171929775362993107539621441256121741148216427401504512613864630550132143314016541857472282660075817039668561722649380297458293091099523140216582143851503433554180414998577417185150002415535426251710685579654635555366805214845992534120224131695166837478519436007936338780062295018527710736833866655133454093266861201447478985938661652540815575095193875415312892123349377526074827716421102538565427121556059304176543099029824477095441917867131437977282455237347348066536446915358348866651095080195919745355066308847524674738609939068775827049522683128853622015214437897459090426365452025024091380162801241366389497718443649612026979200827112159606694667608771417891049593607542922233718154778429403150626232050002413880464612491254390813897867650885263997089016528698525605344123967785885633912481061973836942007771141204505356014321418802113336880276084884715731823649048619092546135432956827382053613080502800472129888115669051800577205658690379058971676812668144945688932653419940500250789921737171548003184153541110078200656760269404301788955801761133209474234346683514029513330511036639542931969445253972473980026664245377670071947212958904972580825008255643427966913396447918251724375703588735760983814571143971327039120205775990956394123087524594119321529202467859082962213976416510009346111114579901927456132336270578678666491773450012435670181225351996996100788757807313637467759760720796024053712503008790904470570723697578405056224879269162813739535665784059233716482367122288161860284172914446036942270491700390766525720569915504099765376720456257390672256391982557906311323763122326025979124010831883493490605701220164242659879550659622854356591046015374807780240670262057922868136346138838652302850317719638033777028013511317546227755844587070956579657722298114102597955581087797153501903956891650016654854209934917959595113701468036563162712167063299496766454171306231034111671056474580590227643480563013595027238959867545224391431586119625826049074139771651338836353100842871616088331398255103501641596561226965584841438831073349408992565688722280934924808355422145040892612084065170662196281227967032658955964997583546121460400016081875640268054861835719043579592008426332467947058144115187084847560719747184395785947087832376378602392604375521389113005084148289499937890144750820646331047412859129816505397318016107357991188820615510521500197857217167951934184174780247900949796865615258667418933011439987222351608834639479099191058034801778795938324976887229436159936270938932399176239716614243531713072008037918042931352740090570470941803707263061503103938657208551706910543313539582770431138375275038416810549232762608534246529933554821049111185570436236572759146218923125975053316831875997799236556129376176737526214237697695893397148020942057582088502828001874130003962919063269896726988706103349572417649666032364739385667028437982097173242312185822965534500974349846901962439914613705836276707845415502306677286159334429456907071371756543872069451518029371158201052842787553034196530705598034630728842734883479705226221336124416900528356268481407755521977752641516562736755445632509509198415773486027700460508292243244247412317868165239490533478057920797712209495357667819078973507561423293425511030868387610776747563914648930024916995853798420941017118865691652055630776571857923187905242110852471064247537100411126955087501698874841068128007941182241540778854142063442899151796574272658991436278802467964792322719776151378261642582517816985376658418316809978850571728927456697732019955211560576421840892644424062211260668624003084681976820216101823955721421882109495249434013418947207183466551384098191443449485575572900115764157669376754718403363188392354028972622763124204441044165719899630518557018500951777489130542933490375799707056249082167922531972024154627466918531092503832428185001568280792414371598158807248560276806250675178074913773128782545707638358844985952365286192460639242758963993500130148787892518101415114147266681251373541238341252167103815463137906287662579680845138277895680037167377538434810910468270490581476145967790269075455694400140219887447901154640369880015257210220583643786370782246844951894781687070611828878935044970150341798348660845137257868762850560220148678661611641121443213515207843716023774831906323910949488024701893122472474456266913905005707033189775984898591950064541626947798419723150920829621621625702546216004927457864028358664138083267036971533270540569929445204573327507174902475637415332284862086976753303479334602014952278487161430212664860531455813972758114645823919416523015435422552998419089772475411563494553836637149186402466347494330035979528426402283806057567722617133885046538949327867375312729346883594288331768872060426237900162868567887970860613988340071824386419871223565426171481353504151497667665738824171850400587347623926648953870607785692741035485359020599273046956934063781194496956785375561354243796701655233746811778800250818301648762295453134010900381794291502934259656508554431194845325425375162821298870389096831275933162349252970588965996860455683273299742249852434479603640318384987345556878517052732947551985489184003926591588580327635603207092106395738837314470337561805794167676328486341493963874636718086469049229208473195633714283250359111589030454747983666746374055613417735911277113347000382597856991171572776534828068531701437121492645661355361614443769731653709243348589212797739259400324043807824986120899307025405053862716420346068720775454704023439223383582210671171768970422590325453499814158906023381546225241820161265360231151242951057567863570272409098488252893482766108986830486910799407060395282093120996964514890570862000081921786376425188126918398043306019547690820593464911448669768188990653615052086250975888255632734959937651707060666180511450925336526214112997848778323344837664008050901969667018939272773839822375934732085927701300042413148029049601625331236023650695481659812646776822435353796537649140796754302910208846722782183160409140303369326603003973724860492123199864966582592307925620096321582719335545750389843398992628482972364931255362959571077004754235214438514922874995399034533888649484032952442981757103792083967765001745969721105653659610099200383226171878982289994639356131834403008800116583086142269072996911746839744005203945900394904187139778072241008197270041112301222964021250043400016560728863173552635210927344216349695093075704621756418902938229286828463209550171171845748435498114728220342162543532512440413640214633392465680923540760670688708523486373281913809275920116379749605739792216236216142615627321850671305731661692428958930869840012582739464970498705827956719469541061599249504895029422597120541280760671261575991423404659891160777298451174230812825904173780920329174162003414479328876692617296062857898550763654226396517222426660760977834156714012555892187015779731055878817060150827680909883289757842820067480183753157972977062581268569791485629789630252826468497452344089420242689382469147976200781468184448700623627160425851271508493893539752222546928571860566541688812759619943566100158663563565561842033082575419989949921737228316655947463496665855833700112341999095920167707665185447899062111356303577940722795033405776790641746966565681802736198084804693941608110389112789620602774788574710774100478996680053541183885390277222270078502884077629267614811066154656641152452942103427152723405874943184538022467010204051196628021046939052526909041394725343725492486725776511391585317534553613564809553649886841840670672482923023160997095512565011313472381614447869358565561463373021336461943729093052160854498358870155862773815557896407133687242829339458826851620726181315250230389111961024640668411750798960807900635535612880980188079405196913545935459934423109348859597784501844583972076125620377159988073829415465373295517987899233864782283411239345134748437848216831092532698029005478051076251653538308072952902302637351679798810349404323472334906827984006205074748815044100673590658207328300898316939461155821104943455849471304179680087749303500391780258498398266334256806614727202759747771296550656718813740909155722490736923405563580568407831974963688850087594693706190452669792094299392458268693493499462998534539895365705032197255372759294633840954354955342956313282633363990306863849460041449335211800385110631852071181342115964033424134955810654871723176948739515831481010294766306014734083273335797787271103132255426468375060271119197888979768708619143095525445115730586226141743961846228397854231716532914860777255720686886514528530936190065077087142490232773409326212305436516566273591294025269237937247769126413523980933597027263493125589724311186585919516649168794043684208614187652905728376564976371082747152467818496956973666431257636064645323307994618484828162329721801293498465043714969063733349986540791304648471817358816336124297968541739703217812824118421631998624564998554060325905499368174277408886138202251216106909368797728245020529985804624035801363058928199101608013232607569608648629934090370068798737461028402669758749154445087598777762242089191399446335184082621501295528658494650881299496462912040834257969631879765864989532061551203563849431570242824590816150023915810525058170664827015068328544534114491371505242835384774823285397258456054761462767411033361349500333928614305023839722087299604816865875213629074379886307900433453476672252421173204440528930575006468266613545226372650508198529529434540272253612192956121509406327182075112300210512416329990862452302769839310266946851155446372940909160429193002935712214107270987996230140939536746576394302650653670719682251963739327487970848147076858448551882856570731125719851913216395981274001227390541510848131916590339997949876539499577982818199030075011569713923116289387718014546845064484588581071104612434719204349372919893625201372829264427973752406567370991593640341305741652170314121698237727199124147697186101012623212898881861270743055920229038666366462546832744033514346676204991115592292490010202860079283856708229582266832450989615118389813934042540460185055567152055388458191571485537081938982056024163411595218516982127784586489260986390778351970016276763391889638618269013936786892687993211497043735808966783036832753296863415436549216235250737627646371472400491429982924276378668689480440005743720019642159270532422921471726579985895885152851024987260667005831861131969355671899936303214452516826471551750090135128221041617597327506886200609064964491912388928930470314555210313286779055156689609372959091255967506149325015667825606159365098596780913632545684085945864051601731568144907274529919756912525197732993640329946438419733846081804817829222221616566265918305097258041261883940487807725556992846637819624239892680611743764214234011834267165782516111561104454583696014466319835394258002894835652860584295125972768821381062116322310489513457796194061645431019738744234914660671704631962466954744963647906385885254905168285072086165408720612882214405565722163274054012566983425817467258922770284908691396966443109797689597070381432302846964863269978815089260886320262009685771374533407847551474422257157390585291375415938604170916531641075593310722477802449454755220587793198770041225306612454908091819325728792054103436711836822462608787942265541656023794940443788950562536588683819313381622746145286169560702827111301771344462523538410417320278120596910928159240033313633631701393182881998713334205068758307067349118113455526596713105814029960684962312483009544953549030882811370624327043695031139694674444583826225094787085988525671851588931666367702715384573937352984766006067809354499171839973354392172280067837665672806088342065534491207377650993840384331807597387918701863980066186051265705377314711349176484299582078986123931019842505365217811937929796833578129670986982970004289749123088573900118732803531680571024158756125746947646768561216092687879507298015020889654354635972121670002572863961288803464043225007771390464854192467789965261414881161439340573024684813835983949062494719158061746898058574969695152856430257024953557956091556774025430694483000914289023961150821810532197142550070118146065911262036718095770627712587633602183755558884796878315215239198125010915142007932479872307409017780760968034471652372129450934349745176084750509065336790099921366954130071155706741301943014322435635910463335073757881744367250557088790087243342553460228470372402905352390615618237189482526161684016603513927231441256312907801842298876881820796149809929896788482346224663302860724056980984928466044890473530038484869590782672691544424543743412028809186754407016028780317092935552984882888763847431116104646628070855897196350045138034224916052022179808118150282176883361421827619876683146560362058863180853163512829164863160795498261042374156881424285994686157584500842547940685420513991574115592192984115957785989349834416304471164644293328491985924389198636206825908018933272592078254092129364085085011649371881848756500811327249111260055063174643647904312170647743445471234351072638708065260222681983592736444815604114589212581773653185399872865272322491641055905229605535013133576240492915919302002592292499067308037116728470487599828173033931118151862128949645853796274982760687088022236453469609285275889341625743884062091757053760373915314047643231037400193303500410495270517177175527860394913669860746383415998900669450301350136680791247211877129481365100213615793986691431594801924949369637748512830932277094023152234646217416412830834355748790420969951298541874107820729861805155496620980088458231463874552208921925059375954577241239623165417922398687333457359645726727822389449881501004154947618557983482208808010101683237461148022070368828674190280271084213536622414084709421622328964159971507845452006365736356177941228396328159359022056414882989607333386639619872925771319557431167771716003657288915978014742461641730184648092327712036656378390574792429367998463411438925180460752266440165672842024690950137317771021089591227886718606461068964949535140900068493381036306869469705621401690842277003429614436815880737516318945890123296407253122899907581761059716468298855106624237580239269979343498368020990483982395122932514999549138326929862451144481444206189091759441763736495110522841066668012720507277322669946703207328223538217975994576219143566131515270443270008317183776381450745437687038288472972765598231210758771761142438203587791118697073138571351521109633695125106075100977667446826776459412303506996586576288875927002498111888989719509199500870933550554060396162644340763467002477682797954025584571356803477356618913688813307023951145018197638187205406747631032596681265096284065441388226437151258743770433919540133235474169173893830736716639909532476057793571141356239773833708105706724011016119399843122981402463957346316399566662453949689678736971986921907307708525759277571832004471432730541994511180787075065872065917288912683170684547179024523785862169181937161296512668097678790219415220699275153895300463401074220991260556474334540940427553171497658702688024667214831357996252780159587232943795101877403341534250713019260181912495139738560941104634369384685708133384940177856905642692796961115839753690307424950271176222215985740397577915875824280573943194553234922777804524094058046985127756870736469895228622011143504467969639061729246820380120164602609328622733424454519143130474166274165666962612451720866891547296437196024186783324849806022824594030403793652854718405937776037404964553934812293362289353758811937321768944469247959280336028130919669905787895392849489301505417749962144762642182101314560099335194532368056417631340642620998184104083278821929521886406541405133360512998404423422874982258058432431192449876870272117614730175086997135045051409702953291443446909697219165055384485782069615876299814781327647556957876294590381893122365171192834378164533011731480167812890628677920046701067061718137239627604206399960049593225178121104839362107330518683927848032666771967032216041495654941156880581645637927228071180143273939024960629913819554657325130855298020489982699507083970001340201383411586461354145040354936155542975722219734475547950870139910148367549167700661023943976950211770474400823550551025242924874700290340995210575542328853143206204920307991524227301367731069046898030631532163681355545938992444694981579545441288532698168413089422993822066142717832579597386662612800458912948216987943011091153105189611292145465771857661066800014151196898530370542132358990731604256710472551391799793976175817464028439426880957159481573244320617064558689592285058271523380025034109634819189316695907942191326892064636461477658823615539163785290173457205589384356938442283428724118081784527538367754893016153041271777122021640167472048222194573259991404780304154219682105481050923448863343400561578518374005087308839412963784776701296588435339030479041234073277582143360340828430634579913971276441022768614068129741795554425161816055805068748143075954384960771190728328371207743396612565518429371895262644916329421961842118767517058149718670708574563455413207157644607397100287636455692835166760615656824548507708906164440832178596358834731750588517730028411892089488247909928063621861787654179147688292425869462987705523747849283449568846219368116835651820541949011105615349604834372935657505199342888719963035753594460945471588080595627460406343436678779132455740975200974395556559644665856010836326280104419510304474787595572757873128883653319219589445482934270070605769891854851024498798192028215186871884238664243469502754233842062899029712541366580189437333216031382043426571257306650595875614443093731390338386093851751662409337663052162369614579586447971098569057862705584233898689719628782395046632034126186483018381556791853588418320119465787820020078694081026219896263895205952656755925693569339835500829468436565216584836312092555210382361628021969293770950836599201107865341660898294455609633066915620941139602826733081760518198472476291094452115010915181184715802118160958979539172535521951954659440282632189588235842679874073547206496920724146534023152682440738849696720654843461854718465388158494269402945433809361180220127007528225982820761081287311822761017766356399127318674278128490203927762068766717506869610864351085548723259008227773900884107437664453190853423903365724513386294832764064102094052693596976291452026267880492386856350369692192500411890284429728622157858617547970034593049860810404723929817300426912366731567688468702937444436988772061278111826325311371189048203118453034713538277762965433261149049734129059395685517010510997113226325724762526026882040269286689354297503001244242248310679158173557654242495275730223261303688300034873006857701194293536379813582161229768657090933769104798877262862518298463240909677400940459007153663745078831694455271977272646141688548848164356923124505428793038799071162353383161179652782745564073111470918944691994406034282677151014023880084496732557505776547539465166640730525764705625631911196078264051651505328689144826453688269875898964802783458229863023344039435695890368210513634105063179415809446619522696306064448321696441675228086943919998050115949756486814864145101646351302358893257646148310135514256924574106918195495837560459386562643499630426837434046796210547344575285512310543510342975940751925621906937715912095003682149080553570264465069236135928939021093986878509114105078153818283399516288143040676618744314534302935161117864501225657068315446835231096982464003804009067173886465747998398536366983992366190148559064614528860039415762609921247463428672784636625045408878059842738573446994045616873095268834125083402961826468774782796802675424923786525975619851395385730519986674070597987106763205464995663906942071372954795477658668248025974206576107621346816952701770952619239942893159408135058804798355477501397180149869420888077914254833286056462019611474722941930711515822091666188434078660671353349056256609288435649701319112598902258139271100786433920770460894256460769703929557862617751644055837159970481838081451378597865635162132613912463419955017997883690789550628790223848125010264772401008769425787429894545583821516277240626482407391650054175791930276766589650773511644801387717176041780547303063393019760092970363144579889170968425002792626046988010802343880727602687968879579390714256193899158292440274561248770160313822593591468077616424160792527205793908223800255099101898041833373813904822952210973365106073096082644259856818447887923650078360131177417249859861192445335670274273292315777695966570936854762773197408412071165844453555422740218714258442012231752814245440008460383041620603433317486203015082217728358488627217136043639793908539232968182762074787346137207471945893036889019316875600653707586489301103400475821940352315599447684170727860746419958138197012061977522656399188804587324613017299949237897164061373681225565618994996395463392114198534888400805064043513295790766108586861168840837466973183817161463160463708532600209823287909688901024655789144693329732792863943521794326239594573795593071918873228962897217412471467496413672168555747262887479975027256898741683724124276153768346074219868704680315987454809861776491715180322620710252254749094805596439148136548231143563332070575548015313210159911000201967838925917362096279228677820681224661024286359443211004418473997502827614928446835933468600664474989268792884010958648981020237754083791659743046399718168252494955968508059075805987772851006258996059571727508870884457416313130029505865089336691829657071430338344927939433986895030442668018985867247285247721667724309676449944251894679681141534149673263300394915185393395417487025926235851797130265847947360479733190523418808790719443620248443708386569995794280666843291421203647248406629564230897969356352977326998235011542714494821923397251025821689175572549797798284558519928919655416887686317321570381304247869798027410857566356495991560376857794461086199054836731927079248053328378735889960406252099555840035683547148528964087066286310226580932899263455839269704345734432281628097256797404501729702997254590006125139499220008490694082158628688744132261459183027107535031089913227407263824481197485580632289957794195950583950468120720565674577790142578333995132885177125918342970190576922952161970864698420904936579989965641169738569359987501359129771712996257674081297825612605641789345212941456449453911741941820743815879713613447289102718901805479834953181599260039077565183922052490287520072287376865959578222122394073365092161706061635947504766072186529998529404807250740054918404637907734488614469004254840537749778270966947960568432501710319391282339156383300557264592509169122490414710554771230798621782437429130068046232499258285306204740490603135949047403781097920162408957433009498764975821966818199651535811215812090197007462331994747416853483416123947832509259379443800985076071337363410639407992149270568873911301116636880232540748131205925991848205466905629112481493015918615635017745834481935767098402830508923489230403989927876082668357823695667840527673194486659452959420506287158550946259580560307794695766183056536595992680764294058505591498625747508459500482376694965414177439973109714779256711249386134709328775625188098971519565176368668623686658616544540172546774562041050894010277741735001736480975710388522591502057726366789836901575835970482403876156875084775573938918791741899497130472445562258531614460109278011040132238244651043710395362417167093459505772315320572740085964603376036778616748059811968375554762151384804460449956680658349964185933812380190745479787809733788061211518499070363877978711734580170318997369835693336876085120751578688067586265035286739749286729400200126732267292410377356866048267518261337651845496264194088560910873059724838119202957405740110173366586953031672616338796518388965353929030137808616202049002495894577823766103715606015186620377368730639083625779822612858240662557038907677334733969900702763431758918853798341093930503171429119332222240896773776560531372501890943452243656818216357490782798462996828668734146982807262867667365464640800275153926901618361402099772403153434715057655514015265032849303371460270587571487555077590788096143728842747752151049721819063680244964956208096169070658742196647151931649360716681924859102584510592138735917886436061398949165803745257862446378690785747810661599047671779989055422770095875623298273462512322223872457477205057412701101697735054017976106985328603750008617789500610633495906107476099280088136787839824756843635947364987341077708041275608593715806175425969578033542488958254086491768050046550244119783902924848493318860181705820529453409031248717270719306736942136775703554465645546404652777858986278104626274832192828169357712857580461707247288760639585751313634071410275942054517015715315304498451882739128494114687869306162900950675405888246569477395948176097694305150871293229732865450936504698823880220002939640244940391439798671143890812657150521704987892402458355924352050509104037970494840349400487731143744432550971037860125722629870298858966887511732346651963972329150938905693970524161271411952160109899449685188273947457215418180857709114903914836587130162935686748890114508884163901981260791754639081669702724687776470128517217257081378705857170777241638534178495706836387909809135670225240063502657742322144539544862398625489047418698447540944994039203751892195607105200231004451290323412352898067946842169409216892547453738398694096026230455895217779483118084325914755680103975943702857756052438310375040240406697309875190468344052106810223682379977339370654514284870477965387071833501591502727785792689920367897812142014472757670371926373249149410394212401817602648269271420226406244263988875989931678378905371857620923722163520829347241450605517637198527710767909086376017284982885670630918926975990815628373607982532858074341392165140361596486800037327441562225527063445695620538785353129318053905247495241819165308373193404019631395263082342467659300478976354496314667112262462810194448829870717199561778605940440893081984517023648036529742812004461640954390706021271946130759251835437167888528014933846067818397893223913378667108401113710785778743617692757685557340786644840704481226071616675874866000443065368364168936352511221639667536699082770105242015369812232502370364544971539058271579022506143373853776114005711126016790412996318270155233796516143923361580942802081176748637246271912071891912061108504149641089363792961239357822531991582150118292165349756654757349530270954318471903665794085746905737493998534397968256187095633972614032053876672108119519377816752282499283669196835624235318440408593473361808951462954734042184247924115926724006999873634104629497981193869932162172886616097070833949329689868826068450383277854326420784779349486103194265461953796281281391360676585411875589516814862188966275996998920173576403913156850959774745383526998346563951791453669007156330838094985725230346486215665544302990341794535505788304484412206100909476266515190092029048717112207501634991157060486808545844049712162681738551056466891931981984456590849984301260248792663964885563471824842125779990551669007277062416574554411273560217530120648833574230126482621088371524254802932093612331096113004206236061352043442247146972351397482370163247143512703963691938901516699046978394387468120111650598380341192250168033535308773595242859175932778730130650275873038673944794885547748001992072583023189967909438364024695047308578154859787959160159130866290043794834602119959396335146386203417889946014966722729715357504059966453609282571156579417896075117655045460202413737956778156047429028959245227360955467242580768459264979917111539859285473807799625558590499661149067113511613425320326042733829866258072760543072457763026455218710664164957706327790105205308063826667058204469513869028896681997726362350289748505196087432025591748081671088926274982588859277199197531208008146071532638542447814350549259809110526806910297739298846357939419449420855724193412218252663220279694281985552584036971095616101973142493891189105939705693118017503582548917538740559958688255341254565539037358423897975670215258827183886545265224402926128737584234584205649223569297352375840686451851724404258088532010155910047738889313047387070493998372963583994030332023415719495525709306738241510766790093267039610616787673760890182450384940167820870918013018768418499996231728784467010673181579048051779969199066710415495823184154554018543677683399502899085293079072206037779590425263574035126757656121013699431168919354982293935332019214502852114840224227423720212086522579603655711943647991803635844370794454119329973053699629029737499956545066781904945766990439337228478187179641838856819429274966142188274902736119333877888939480439139758153156677290955176875097128385265763676096287319403018640895387636777209459875168113749407235866394551289293370714528110503281471442495781512546768707084799983649225975761492765935787707392559398191608854203414937999422949084477863614718131607927970966828854124195102385871166160150183493165792273556306358667896284627671056349960068429499389933134728410650297189811374770873390822321970700101033190461685377283778691024077999111096803036316603294205129826909501541749203963834693145851894688059006262031101922949515934149380129285952774239220543432297834846426693396609669708514497456808007273379187603373657894369164072228278945674205548486123432238979387105656940714973985460606469583564276026333025783553225420526223176423860676643352501222446795271597103783358757438227791277686110961576249008422124451286663709028036203930987633497066026995358589713105819698250437296536889760764858261841823046331380437154803605759294969589428228242212702990774619937464175731074251688650607635259147116049580145584378205747307122040080496685108574297084226214190779201598123000190869191770450922702480739570323185602069880990998118807271260497649875390705129898415538980067672219934172260193422869818779346682587174901132382918691504437434051026298279957289465756558550092537143840292133979321845119695309757967870292120606805009441269326912384105107136624997716919235972599466488044739059567787353834929580719324361174853855608866174697015090166219838768167901656757001594717873242063159001419856446100748874019494429691587834895011634397869080979110164445974712303110330668860126889937300105816467502720463078539059996889455752988879536431523591487138920156955551530887916680085392866874477095897434726137217445753276322164932526156373086379829669454734322625201232689748321986244874230592501882872484396733351408289392290665938525023700751874877249954649429872999848035408945358336713827144780316376926225450851126240349647298677775973020188128015724907541534464050881226696840982850219510632386411278062789718184193708928996370547973875712909409617077005908531981277859719288145618922671151847783632260976689302311217304421916662924331483787699176552174045469289107430003243269584290662016062870177438149160132967231833478297552982269692889251617818718497578220423813798117134960431552526549662717648064668210788738035338619822496057877587003149742519652775154493051791686896510232628972116022847470171051187815386827253667670161294648078871578704247998330920547582172251897219615586115296814114340282603140296331595829209756123066850756694949269593024654352438858325433113241904578899470425973571054064852257692587863468348169481134230493029602504405547116434050677403758350748023865055131832795450446209285081738734174991139159091451119147125016558580459669051231091469712285986427302086267256131457594563687611237813855536182052906974050194805726367579053742991736144487788428984037432524161135777542058478611263238590671106162096942849393127808191733664732721999979142089044276233868903973577274879916391624379541759349746950020373335129413070984131864181416042314938682405461730412590929170650406525522592894261068483677972043295326252954685962770906078458508928547847494673013544008982900038960034900957945919017581437819862957120807248018825608264779260330113654609375943450140853096688946089701257165212064667726897430732711143815857318094015875867158225226393906431917072721006728075886385552422808268433521863673299664941569840972144034365744691492427728040784015508202565648890930243984696895599627257338717506166774818347023556950142641413955600544036112866410793988332643209197048878595507335265545789686726110450104148028167077960019097324454325297315937742832835348488626763282456929028791855200471252119832079463400243120284498868401743423441019909050368092491571362324160244542223895330819527411884379920952651725700956222305147698011411876339997222677107325839629987511858920888925197008178305598360038240072013009569680560947810491712873516785334643370530638031989952888410938935367395487421691540390392295604118465339259294965809241889336197013250622528656524859001604460296136661361822009115299566121282650785153725532768840440471782967295113188014559372778748034874078907953819024055192813605923447918132417609232227824650450290730750696339012264913263867962498463990876260227011116386339253198411398283338006427009187790287435188514097352914586288411200294439888233236915977227774995514920423819302323166227653778442399258641195410920018679086221242009855697287394640023100568429868113940000100587376114053849498891928483664586313185592480243415661551227602933615490727947541495009985595042371100457459884994512092550196317214628522100229014197708078412967560745862675463198954384681619571770199565237754031622171288125919842897767763127645165445720227159508255551145208019734117528895163881476135149078290550117870326749145446817846027352396837521502561269942335122322437670491717879560987892276297248385495717871531394750404337585107400208059414768407796044163294509126686716611053493111340033195475151986443095459123047666212984727420074937711402937758787370971132344788120697042207966719299881295329428606026179492090966128194012775567088297064282230189300069097424582770729589531115128459515004791473429914333594707818590556609603990318903952807067437278502754096471596574707977589480235051619310974723778544833289833024824700303037840776155954987632443001258725831451863251120320952292669351823698994441607011340917524393996046087642899958081682702417243057723547506566887187039732121032579786491099693134988068642470286081776339589523081406034419542917451716653762303402079668802211151141439018575582596324481377511112562015736494760524684191930866229799566455683928640018652586525602413198666097350100243960737626047416959020367007601923457310816852073390081409316233066897636924891865670416262571448655423642873069840545708685417334605860083611305692726375770272282746801902842466650327909401688557085067193322798745876372034470410119977136504527319397197269728331567508891697102057225729164063733475575563824048788993145337963835437772997453822782815435591971567378430323406258846960364604699402869916853494742481045521107667833788152321237016490579583636696073446313160544754597607615653466956857532991564255307159947901617080760584902631434539669425838402447628651131009184382763361228705885888733565244929262306146989995567527257073566211212348021537211793320606190744689368844763076550706797258666073930865093326497493665604797924081207519618333859100334428644807063539776130774389305927679993387735181058302529512964560363955520286124745623190821483992107733726183333551285811455015074307884284401940512489059114487192363520409340523795717505613633403424476450379471458207274732586361488513955898124211576082053756177978495189679158146286559106524817583622205801656983614904831835976531789161186625371758997264895842171523630191913604917005786809770463122028339870873736713292907586683720701484664047970217939890501131190093791232972595663456343360309928774070809735218901706254621726874014930530285386902530361544375657316506423305617636798720478614656039477700377059921318148416479420953018138546628001937084849839862331723729989674214531817916202155599505532681663946319870450779365763878233403788749312697301864202792767746185916171377988523092151301188034421377957769634969054311419676338716909526903686620315750014794121086289653990309549126370618486830740178683123029101478302964992576534214463517127197454927560642728016106162192889297174804292333762033711847385492457936134613803829925820950201730696975337116955374537296902233126762314571323171764409639335191821159281308363078001658337404615984660749130899806179853017078767096875993897932928675148749201829460198059863417738020127739686277900043737743033522454473630239984906235772842174369802479919203291213292502723791859394184980563509160320093587141158677881023147492889075740353173814554564122169826473130080347402836398771082075404696831141313745590400301046566063373285945746609207463839901938152473873632437749239048587017278249500632624671057046495228885258527912295393839474516264589231072562592657033740972746964282566160101674148572393886668222120729012141580601567455309146833923693533440955065773676716496963305179606705433048315247523592198765954048603296219587174940642181171178553069668672294710753136047380424026512774462328796306160677115672539917406333667517460400976469212055225277872963315216284750669510405453188951532469669855625068774658959180586145534704768193599872262831894365202339396297978081234735927980430326323886546407785748234627043383401946569393954672145665257883051561205902901423082725051996480684366053570297486555953181114094090498523961828839619062413923951320558805525372516896510640404182202064501719532426891441608453880250682758938281034932680652983889269946262165053296599607068517276055069463093316530396827430263203031108533582101915221061735133993781965432648389195262334036869659079585999366183671755729174710709541798637203630533394934153907726885077108387440910655414011616236982581545082451339238253873299060604586036269133791412102651320507265493090656273555053777460068021995335588154360803747327939762650812545381178666242657822837161041465678086601209662604687321047462693177509031768099687554098961297381390600038652400268498018726221073861144758793992153091831721171554785135846326314775312464495385608945319831381304645178442726052495145990285796906806455735499880689872663285598690385272955807921504765011059272107539507143229519419040765772029274529688554440728178981765230903117944121143562033849675516546651955882491941015413492452095993257109449002125352827785251939363553652743070806502558626220213541218878348177809933579083185037409453045842878014634131847592039986882844588571024998016000153975132527438265426444844922567162390064526127605949374262576760977393954034663044888919956808021677287130930524790381703615746496417912774463671160297373701500411916934620717417241209110661647441828289460126601712915117326783534031547290544451118010615635565478230953975751609574272865260143572451123860861688624498792423007558341779637446324793551520818228308867010340823358296796503185331678490295330733896801225644540469981423072358898746933169700143601259659347852444225770464152798001214089655539275310724738291663745430964868013640712230267152284360894471024297825066602331197002990495105251165771759236348716566537745633767228594827667715893336211759712459248230025854320915710729283328766999994329212748517071984313756747321124781947637731218889826396971450582355629843807095867795060582144526137596400622036749858267030375136505359881786601422980647145458359453074446017004840080776877197354974471870798075761206918226737178803626758687305750770448801355340237014773986419816506170589213177177363725081553060753091135716962265405548990714446492996035350320521718605117898078108162627207517690168051267435914718192898686499932077700840051382926157321008627241340639694301718005648839322712058648298750933233278902532186534731782383313021232543069285701628291665955963839818866421916416439286504818639987074452457904209031951132180870467477242108901147605894457076634854289475417131909099212961315639958799463680552148122641414475304368184022799970712755333335622435462167269880930575770874327193935783059225779571158028906119744081221910893849220377794788374159581394754027085082807736507545068010249255593774521748763436938700733410428100994675015009759832878649951784803239955900802375363441003676533204120097592957277276859311388010043545860897847481001526506620476677835412696379464185468862803412481261173680439506637182070229247869246154877685269501619934242870591949741511251938182469442643802804640154537933986744717882128831815845985497492252904171474706090727412185271397175038847046926077949994141266467236489227150066877793249795426323273117654812963965036110814180757404722148880804976699154604727787966991893514395337245308132597937829937158549831660959398800881857616963253137013669244627995845049421196137451568758916543905426837457168330248754325356742579543457123329875044173675289078810337875441814278128349805108203241340308107448607471921688756289439585507206512992970898849260753519178078252969250706755242647646562682550083332328516396342448303752961494997519964136271826945931182425756930385844385647368612223486660409709625349467210799230213439033080157286974424508038703533852080113999607388963765156674250395682353594436592273906623279354776079460946071421258547668313446873202085113938367526143378867519131806517768613203605225797981297385753123157440117377780549036851018738353086531063656508323784438749690548905198739862387353243554410214554805013600277006187081744040298552769826039419013910134853701893506273495180627694774636559651056725269726316489685914078378244019912691453649798505584075517314761680233339464967519161249404181654776965687304180086559304570056809175509799654116157943515801374061271680695266307685395615408189434536325410815381566980922560995684526192518536003351190541585713133894047875275860688577981734225851829843780149755565336345402106548836186158886299495121075404804047815837083653788730310318147834954291588217499515347712969240407939409026126144841979833626801634366501955318132233901942074401923215031802453735794463614887697958819719288512353938007272897231239303813537582795600198417207654937186317271589081525045271818596624454921958753017585134620110643287109245914973272677739442146030386625773507375059776615461250739531666669876600263313729922812992724050936694160393643250272091065787224276811537403474337753015121999049546582542443563171727380923236723654596829891520151359323334005185612880432934286101606181625651081769311170429772159131953896831785503835385117130819830902907045363540875505490261041321810420307747825252698566862441062072799242194929168163050354562238933033345861446473976142771996691513679203560243132625664564317488746915025744778957537213996694055553807302667777714163086670959571074371986962157608004753471016330016577144273633722002969421649272460185466966025687677618175298596800685500045705717884154454517278903259563639172257585755460308503319158041914964483358967107984270187153077106412683225040388114522993884625335536454481269772793514175518465034899589947103960837151206739226081552980827575139292534642536101799816177406238212889950308184473459320060427888189284679013230646856306214772388444871298000822391602685722802170392775757787727398149010511332063226135830503584602852505834548176112810774480080906215648782262479016469318772391976243029274351874409527515711243783851825507420858806399797542629073944382368563436268000342828797696688973133147405924691539579329288021890969683422157456260952696211125117496932326743147432269730657897439001313176941641478770582964609369351205557411525523870137293775504800688959286353610607581236529366460677276067661654888651882833642205915969831335477553243884371731300832401353138374189373682644375028841228942851242147470008453534077900757096291613898542215986284922224773673619269214042119156390499394069722818979022719723771928837295314153471577059581905772505715628423638128996712309412540008325998080769396070211276657148975326963253840972941990365091981538656195011270170474434002354199797492353637588659236161219107128285304702059191468287521795048855316380641936355789395560014377708186622633236164091689333645413483653494438396822962021940682209839029418038415887583589693230362182884063789874776976454823448047832997644928693208277125777611641802328564102969820898370378269600570352920584003090832235014327669262771193499904075601356427473388461179009562892559776655888049857471193251926880331298265105993890003887898360049609617194801197363378466475906457177790866663806535381667313442628149729223548567523384692651781144378299433490896327465554979371712629146201436484715667352021099098241057283783676304186498590526578381614045630300239244296733081997783718039838094911790496843001173030335875462093045742573187428753982347521181008770390689811880010156525387995054856409385196013792821324342913950749585134694297016438804585717639215101806691629522321041880410665590187835840774321340787086955879331791489717710079121600475585431217706772970937271109279410119650160106464171875594600816575387590590318402743762125842762372310914143828490171105916026670217191846553543810392155195853951988937801651226947574273925716430527076059100465516837820250686702871474766628101357437771938942308920739663570382135104035251538891997823700538446648095109444268912203377860643369073695384834022566295767329693250737967132472190383623808173821257817816550615344805666239745193035888035331465128703599364447531813800684404381986957970527872173778327781349083223386716054341625339032698064174768416087060463331313385669163243483736756990897366290452756360882541354686743966337323811704546722856187364437303910790051771585524303944759052511861966826892716009967798310602318303243466931423050888366240723058806857703220128153736740388206551439514856328833752320795372498492512578568699375594315707145365314829300503173065179518397116280828902942488345843605258018017332362378816856377928606015864689735095363305532483965935787657404365016100251081229307712263784438022704348152630143779889388106523462625085708345567524065093793162667018586151801647692967017681276988344609026128349264874087782892125257838825874864534541556480116677263208752367027427098508797245328909839675562028392638909284584827554725327553309985781446738458231540104010962597152436029397802721699192943412253316937675227087292944927654525355642872573891627224367032655573869575358839442320475943855730167913333750225657762475499913821502877028694090654555109057134811638505062484987189215025411572200423980405425699570316902716043454268979320187864495470078778337112491338390077526293192898708645141541882732048088071306695262055896818088996192462984496679115454334247476775945216255161573440168309383470079125499050764444948983104103639472887081396672095674560911738727008622690784974008149582298830757317925629327180969810520834985315542255746749792582214531058169752080413237901547795484241765606224838213451205925308664876689912621007413576024732101326664044373690114247135150751397348520027626146444021857290266982461348334606747903475021030222604662442137142195997419790105022596680903260107071988053881316424102784360757508006250973259248590947570573495708111431615940555037281218234306748989550552369337750027755037551937283542433137011818636187393800288137990748183013581294173661117385275649455055762360823456291747716911104003521066239948299035856122886428119119070237547035128867842511797677173065651802371300928877691159429231010944687180275218383641573312875872768129880559312498050717564565129139627710164048112640358538311389326561673373875829805193172432853579310730264744442471299056428896678306272873757755883684876969532140614449325954611303969457723612036120525846316870437163703867837938958989434659635467417570342517080667445896008782566192056413602781717258555134841550241017355203445984981095700363735983876206115185186478586613689170397705986168438148394485719330046046742320492183873962939552584986852083029800562088911379345583270683889353622320376358002737782163069161165713250754953609484611279369767837338879838243355063648303667575371695951136450683938189324046209023773353798101106214514000655158952237062485760558967625957954267840804640107948744908867803549858258575889157066948412474727412818029040311611336134539200853903798173140905374144008691455364032317305470490671446618764436105963993662246807153599810029025781288433829467861222199273314804998872572906206367310154057809182208629219309271618009049030450832750025732893180658943470681773935625285004852105600773644723220981089555883027699640673979252938939097631154044605766712824870017380734838806427622749396994976767796690687101526666321936510769721843975222492181679808365037494674902498932823106719626575700133265862564562962057330431642723078332241594514023396696387541929972685937266200952321715362399608473627681712354544004981130342560270390400641756418596737972337712080870958968937973923648788996358899814460892841668444694453773666366425853522535264020171291956429491613660141744634198865482675019136435361369745835026613802936091358559607188592267496776322289944396818812712752875256981990744459957249961990272588869100148254782573054749851443790337222516481322451394395513487210600922879758317198929456275809996583295106485516097157221790022411914325019352698016815970354021543815818830350464582767706353603174826721216856744797856062431489230622579504251603262565149199214501885673357843523820157243027178074319434370949382057266195991891859244457336861432013614614892090578049078096724378396183904108974290852301980895818404989096438832035217688577197993280583402252487016598532236044926343844980046044676893672996180008319964019593648839245183422151905143149462950231700490588822643157347040418885247727871628535671475341343695308474701124898066055748227667732523478778407896032935050281955090180450710590147583565965542601291760683402613179305009847342887023265962227116423066126516735615213815944864067416485991935887664364846173162254689543546501155682506905836743810932157834416552795503711398909096525903238197734413402704317976649921550100065213273333780584400667756163855290514500936259295337465848298205322945274055489058146304685777081562011617701682344252604737302135359004883808455766936633085916988719774629593268700895216119718111218765488807976214045062045351223999826498992915627195167342797019145707334084063693545920791493602237393991671545882719683635336605401793754554155152249977398662133621707078722805505349590391044453911649856219009315240846848617673386005764144595483802284293500911599089609619695988031642041119989985639327128863264006801058548061208637869467658271530521908278460762838654408482351194675266115755489068796570054021479239522119522975497952028967056711253829602593865252718502165893522701203830446611685041023728938169387425024356273805548586987908580793438398561054175099027862817621388881158286540846628771121617059553078784904313573134500243305190764517557568870236363230617419420861701210075369276912529227188804575009538208866620090342130379655545127258075791870344288788334218361478073098187694564908766363040465237552617224900449648460127801571941725531894323283325283291949930273087178068471933979684866253912150373423950895518363088977735416205984056856303060150776651327671649395031932071045978947996670835114084620355782890703531860329225716176201215488206934744452725974769290980759279351292621283500390027373980572168598456817155693623083872377515154289850792097838798644966231916556078650308447371056130131710311657420110245898994387739142119338322758634800619255774351503828854695805270365966632671147226185952289255113122102550391074927677425456112262795984066947419048978385630387036827285651327878695342390876637447546589647377562847945300793407650229273034755813743000979991894375004499783402443541828022752364440980354249014720982482839080105839782830960189051484202505463323984470767750985278474020128660579586225321966000984002189661898857262923701603807452814263507390879169938243434928605597487599195403678929392319556732255086271383371973034629944756935367836982457232665074497486350167407016227719712515589324118474417479097061163429517531588623601840609208273775954635048292402602767109075459706787979324352737739198568804659995376184661984570681389435118780615255762585858991824556205059798796407883511726713883563727926922350682104362826840685502697024506782240117045439930961184497245142397510936434178082002529551721547852500651905532861459910557794945464263192120166235223426812652862750905943982449220946617488863332656765335807896566625181595511851516812670461307690791394083428991943840877456775033301253277798596559574354562537756277216872930769852966754511397707602121889654566148475111975873807411099318585828557482504278867300067352614214890656786875880628089324125179232361569495183897536601738228149950190358298640275672195492376342113125485606500426812209792817403601459973843318837982985024020023056272233104853875480374044895218733794160679703582827358458431792915213944641664603481442653702406367342300704687537305021409596510722148341958983863073591994701433846067495935164489771095562633178311987899875521242178242224574593335522388407868891681775037968511459412016111780829768416241795528026594519098317946022347073523892951995784159482838979332227448738003395505482211801812594646767153999990712162273185933526667207006421428609275318321662046320863842179556798113314345081137145956234743761250367738651456740303473015346128887279687524642093082427429291982638350233777114891593144069876889965648297828440263834369382407148436984236475015619784041889940594078941325968918830888654885689438422343748736061284075633106391555428869303840147961240216356560704883763743036832428064521960328638850849188760267435198341179817147474589807056730162866694413743267199694955247064697870679416731044533408379341967260690020783302434448157136673598802866856319521729655526998793903852035571824926520052633697271833366661206765039798924507144613614198516318028438584731740468675916119286338675379877329725102401731845414322914606913358564591216518305167964122057225390157659121232514340231652134280988274509456964981007598749148148589010643936598432899461013330433097627894701414299812295810539281476500149903497969984986909401131688109097206827551718934728326030983688742081987985880715979826022471347774399978409505007157417939437249487087727232709979220252603757407600978831269516270370791734317884165653130887782257334795517792474549675140978471176896373163703610317502786819790452884670479648969553262422606049523844328566621783008618883019552735845438065898439430512356329332449729834842575679434090871957541109918543575875149396514686810067027982085065533598325392703166441551918833048226633369998321559254313804468529797934050751698164639684993676038701003551136485961860298315436112416298867873822179884508154909404352906248760563371589653382971131589212205280184235778407028438889238340913467677455354756491235349209788894414278704862656882250049039267299481122190790141499258438172785197468027327697472716161478274792263791623100666545605706335935567593615918424094798224048241032180635167501849311912073869473804331215948763126887590026956436657251868205916981792112735476083055746566579256567348464285607142361005655019900184841132603756290568342226665252117578654746951664187457887849504279147235759712209658903559454073373034537821948692505638668637842478451646184034459693392822201125085682715888819300227736922876027074926618756092534818912431604932447927274026861263908046786583443939884552053813939044476777945329981263856088340942983417576032861539554947722493137545201431634885340309546123275203710969854936963558509028867404615200518351495518942420863912780098532467095270061028957162550784166433621949242132467884161736130903287068668062172862590851429442345324888189655738047107227621989154770363366406329203126489510559197541859395271324601105198472735022019802791480307318699827290229683496760713154602687128491913824862783090243053062048517673684017999179064414522372378654447639810941555239942512518160786522881169738842799244198923460180614573096496626532431938094396870777311765867896194298905369823130541660284621182688549394301452591055402624317881107910982762261706695984687311759897352613814500828362150586073664136948480950632023589078991954774606536175908074253300403473537765353844336304331396584906470177178025998460734231639675744530394606522694684253026909881129470313680916995449825495651407392325391497301901634649851999551953396008707824625426695307562360134802662411978316766002403985266800062243626754168825651549410369840980979669641552250897807488913675260702879425128621972183804395531114349818802625781783526797930774295615417019882482842879359586934432784403549002694178638204712896555334376130196991645641501531111132693402582165106276583758638831556649582668905873018424959646488575710737818867499999848639119736956804544416181166282646368195229748531750362836898921534502050303959689109442243702735150885875899944785669131439407953878855453194821726642884079278838038520828318347666985619841932176888282659288732397492879151590559424240737608455729683259702545943497579742353561556186705563375364993917984725171309359342613771523049977933652467404673089612316526463326466800296473488747970741851395584411048965495280218541444027473040498157015866939492116589698249235804954453804387237479003234823549589986854054437014731151762627367336644506517860758298159581392214989199048723836828746771271920122626081808580399810142450271741815394436051916185834145035238992546689431148808969078917425157267897689094349443518109922565142535373037453013936456902140001088363138310402646046859963232601986572589226902317157389469485720757888699408326336344195559735598671416480300129391866867779271309475187054677333429552695715440664583815779203218540240892231482796097171946390683537909315916114573844469546989569247495188640398809376454241890809624375094023636769695195564492874232921396263043902633046564419533064646708648590050827625457165602838435342708097237900133958657686328398258568062892173946086991808093088129794736567358750255457169778838660358433621196879585245487831123060486906592413814410264993558008858430048953336862520230780674101461188877386122880730828113845408127168704847066373919376067773052125399868356382187994713417126703911600841728772421142011799847142296872739367185671402239104531913087546444249087818003765348317912676088729970718656907323207240089385545395346065704482283570705188578874206577042393709209211983818797746180457688720479325576727034484846156121899150211441194104094816367119121257981365213847381124687382708549402221356536412959926422048644524153922028249329225703333035177617336789827570454093077619661237102016094198431666602345455576176214039856501947117095850328678296770355114939297292469473875677299640736033949347204337671364004925401570645693048960421497779334614833179428985172253331743055893490259117427536070403713953940359765473030946362985131364179204865159261288247706053773257619263399040040131140101384928360866155861362363734470383181408137536217629085821641081936512289902112612854431293512031988572474694190742003601369617737739003901577274132730135918206529574834692955940104505337964807479482445398172056117616060424264435839093713362986805971543970381231835371523233911994328579398234802818182643219038916053524618073918000231128914241116634012704459100572610130209100143795199746768001372650933475648043610771514970914717301433299365283687079734861155122262237927841217001336041078765026057272467575830008675130259594260282417474803269201447728163567911546154799845336502983525024664279928775731796131437218161183829583362597038560393663859405249016969622573907541829054420107790051010736298193913460236950972435345913386728169552020084642802943438682651520341307108675781280708200522684117424651214235092752943868922119636433802767341072627163041284505572136950286981189218802806092201119018550664062436195215506007746193829322580996870985783632166845077839312027162277546405490672269970606823532381371847420676074323623867321456356795619702656843449910781838846494542267622365618275817866637470302400869606659793704529131270138237844949279856627023968085633684861876680598510478517860840096287336374231677669834975033728576938166273366662076939330407831965158716752990460420896251099030205564890718486490272108897222305545239090691653366341938848853267046128479283557415671367891643810599645203868087319436876266005551133068293900504798965727720852513889440347281036195324788878359545872126428416561653170102432246876380098998965994680291247518928831303523562907557766292463006143687048254002031608676718428194493134066923844584960536944085605645894077493959031487977113799225701135178082642772701308027345391763437962503205590286528044513722091949928194362777726765147372753033077118357405334989491285462137592979142004024701370904886321321032300421806971978577707037190711873480022397559950789735248229068909224251765343446457711204080938557477242010816952651370226971727679367775590498310404390531578033479669503925758813326362978400005541888991594437416271485268921347133975237659159416402985668966788264893840483152852670626999557507204336571835682790327988841002717936326063576762392781797773758812663824166408741388986987540271399889300676185402999447727542035260036138791133797402569230000438074854210856710688485184034015986285612563668590131816408432095513211897479413269494880910647343530318683753132720657685394519125307979115976932714228210755271498704509320006568525363681117125347067354829794251562219742069839614181959698180455941728672604655193672779637310645709471122432323810610971130799462416159218578264031045811287479006691898821578084106956635729412217747548511851040464962725388380686099526040764355995590693099338804637333762021579174096295623958000353355694077751495040822834463222267247086013468962939296111204083117608591627569777983081933870855286665850894056278175988778435119525451923715764307062524386897339993227994618587794563796146395926209582547754303983367662246998162736881575220372504273248291875587784243212268378957778103268440268792192328764528759938627705755030123624894042809875074227041358358913406565315439715456496855247691941054184270834085986370567443780847069854586299365516009555568966761027995866188817929648302886347115603579274090985163793240128359125137194972235107354862840113319775371095831201390554530711068020047527436337821070364459755268660419062349173933606924935276175644913994863346529748258578321078059418938158927106924550528179549885348605547869802663265224288956050996585756177569977167713106552304685991853653406005583850275660739226581320560383073041425010918500625753980022292985530005486881283322934667220681628245932797719743271131492020708993969913830164727221603835771411942809712911962660607278429410733968645994938554460963053170244556186136634848979080457368319875896427527965856178730276905432780910342885845152843698055363487534894633895705526482505963375650063898854282528216790532321861780118475143095902804128474143574803404306757374176708025999404266910698084362800001546460615483675002486300044051993453220734420304471383340343636504775760051077982641300519455412234983014794290282729733108466411278544485693892513521327209651526066489743393899704355029526290912990295982400603724826635202018824100773109404240491338136084553217477612025962458600271458705472092221250916388877637547271720314428876234819961759033167213393398146198999840165327744366560247179367414693113010093666157848777801913747719971230886633803794277645928932324270369273918188961689027289876987185983705109425763452405863943400095886258546391770733360769147766762908604197275815269354587293862530611441798966896732098355346809802197184192571205414452263650895603625639412484356488219212561115715323809276210845617619987284499807529853817411258566685045646956133198072078307436569472304790900412231918248804348544730159532743344952376260354524481606817017364622877985880424038654567554721701296217949096608481729854553553405279013012422435154316656217725022334307690792295072863610998571093995783383384613152214395360317012145631079680811203610470312581946285250342052586021814495756214275725293062906353615699738143439763751947119950236934628736840941597564943637549296429524740877601417095518684904001576243916340214416033903212779631516696948638285546652505948776114025977805185190357634348085640577284882734713448670313582025851734892375855518372592420047711163352582909013420845822617780019423765354508424340115024372269960263403070108876140484933799192989683711241485079863327398573661109864619564206658576624150873655975762143404840980774073648837735046677743599544474783910491242053281120796778800762064877797826235492112286060663797684449961549241200722278135239242565491916226637953240185154720334175476833814626757229476076462314697647476761178133616739388086635999232920735557478393281852345993033299467861125392725082917935757509549721915016449344655769562958044610105451528874073368554998155825997391312193782672376092853099179408954179233889948515235782146718729677790285945456618109269967674607097457352369846167627513943080280468594889489064550372897499776270803226217612679200230902600248530585274817023125391685433394887627297555711158733937231395019153837095541212477520568280939276202333475793255517246574874066292136046647457230812681792513695808163331512087250451524706952894931510659196049082526198581740333045474509510162742513070900904072038778984014009427163008308712162266992993533675892722022418561581347312795962757563181518873911249279729811170780909356535431586765343996276879836611318423207088649290513913212589792036555489335305135510551718206864027066432484487121433015650361293423145962136490335716763945087749349608804459399806746187169771298362854309061561258533402174892845862159732098457221360189156492321529731393792155517679023258319185581904163143779592378159615106893368987399708509021646893753038160072515053557595539506508693744639438467947370412494174277409856656844963934909385127619304697469024068117188547400438823601192579583991720070088877872828884984009640161145237010021562132404048003893181724085578326853115016865014573868493268184941308249668343702146367327823450965188460135380703072720860672517629623603175024743991160381332090120855525349071738914324873488308331959731986095279715120033046713225081786163601268700879770330708439296243538300870928236188815784218649587626854735944099292188755620154072473856605552790111942137583231525073998518751546854984703517280669308760922229951220469332264971620291034138368578615772911414048074510660711757393970854426731417211997640077763119571100110832277429184314867263860099836918111280772862131417314405570021623361274057313348416079937438036131430358967256834840761225497242773445127885210913915375982249387563813622000252071632883050598606262362250365269045778404906031774212924721704130600233269889745730191464113571741998984168787377004884301480759814847428133202174929239146076805293695323774973015082481170939904745053688092668970537743010700100608948514488648075275071830503710311578475890228610230398409249826788835292270151938719633310273749887150504093154520617578961325691306681707309731236258801435827979821169678102695917774558385143052203447045441770896773189486151441026310790322118735697926139749553384979358872525643610316665736173855855843795510236425638263236321999929223870649445363830897319933610238831423709375615848045469593958600665533740923420691657362180949717660569056992060120636527807893045168511610072175035376136371121787687553092508664040835122669823164055333688786103999641401424898334095195584979219035598865858090064996471174410612395713224374193067663168921263246383190500039890948960088957509003240570658775237052807116368151733862000560401257697166157723859108394051232059938825777228043106935757380893005003016837524123883611902094142979304912585239461139941028031209879750712415486636459891653855284850093104547311911424659406860397336140291473226292536306369163790751008653327473239745832797900704648421584104075877204825887741149198289829319753930639927081119075665020976963408269606234865705945592206070259308338436874227148158268112972082947627950295157087465724959554638537227511336958473234111287837532302795482025181696507114518156164534574844690102285314826240206742824958224557353434135611743015546120729011413610417466458968256617582760821501430623961319329931905617756621268967550271869090046869849539397625176011056058189306926422645201311685073056708148966606089742712883316383938789196283889628344415934966508891563742906309927765722677911644376668068825361167747813849988563388019549882079231641460330901783751516868733672796905244246920871453631740068721030349370329079377661443260436263436116881012205457445255517694874934347860275088638750714563549468926701797790103322082564480306918613390416850491593137776909141187741968565861487799808489726468116962305060974651839328390879073963354911669197755116025931110126610524231792678330753269857471625066021777449278884215879785227441358255291060053427902110855897080290804979046455095248217756476541272255064354400978791063813012133087351938269741202901392705832236006904432480822689693006320822555670755749300155871322746363039282088691407997440047704128706497533318978353166157820358561038575705224549050915053912271260342978878800264099044947175053979222050600191576564268466976848324296119969988101732696799901941512116127092849291621056916944733808562787477439749394290429359939051953565475073677775780906024397161036478209284834984757205483773180209472258669331097968987345661181721853290783706825457958710163224119410231561098927560770576311138236731990254597511534042182616022651603731352813294007362316916270440675260498505255967282270446175216031676571435022999357576281654258933555101794944350820890089093930671383005151955922137862437102799233858481673321059930312629865890818479457195642015471969152789894990474366998101874046938927933083996264260328009098827254435986586529824505058709731788429403211547722102893648469880682341566960711682169519329444063256136240643536789028814756877410999658183246619491954020041385959361041422104409990519285977397772760420231392176335203259639919333508529103658183976892844352584917069527012581032086641727206953607957801735616623720377417968627451587919730969130624028476258732953696166111930544242315702817355322333555102012017220470111290460455941268125738246237322225581358415452194769402035784258784980974054623943349110090410760483242509889188366707630415592416445536496923568746617977281933621893127417602811277299271883033146737159385125004038524927045863055321223210260394052906981111958464482502218934331846818532075999314039695092466788666655393291998999219464067969160178668231675830310852547048335145572349776448973751361092135591530777505198703051852114330552938151130362197759534364316304776038647415577981523892169312444185105423700595307804416000561845696087235061503757961307750934315639581873592631838216796807329928633360583713210337998700523678747342256178334427180840276776959428185506332204098420338664902989199467999581041939546220965417611340829190839603721116173823525339193107090579715081375741110333221119428743483189830302826260312689904263151335114998704473710789706386536240311973114198575169892039756697485286248841351849069967400447779791622467566799990227483936760782231700295246179929477772964757490847342545772109172864994134629883641832784835313509929754799418703942548214746909929926325696326529874683778630360081892804325647336820735287259492002098779137345747755151187361340869916604534172632336745086658815967398529343762445264837931690986574890617346361932001398760770186823416568719441631198329439850573078599323383902802301304085560327036177625031483578354665027595682668311214524448485625740330733003327664878068432734665530081226776968365080045682005208392570262039302002428170635161808723327420783881819575425770202370096486284405803584537887045972769692510945386846606315842918592089545791562956518608965691302951548029931320262645880300389606460479301835369718131819868611102777144323570257326994027993313558628119332205243081335444645935658343322724173645628246735015396138186670390241036711606389719174128233626216497798310494596343459345357538466886402093994644089772101973012057262089689665486633048265777597372221664781279995498362340783532968981814431851918662036134171047924100387270395871657409123930289309863769306361730801877226986650954877725016466680494505773167835895661904451075248082004823662981172051722208165968388392259861871905393582961723970654096813346969246330616636920814682013864323019820743955650536165489034005873212623963407762693296945102285690172405136153756468205772713376637672219715511726220575001539417809169155868459696030317445747819453065526887271803406829976814328733665865974869983720310460673861341615414108317507637212325556008188524360672309618313090616341249045635676531422749801422156399286128352406469033842929436590960430543881610324362796219435156263915040983927561437362567463145350468601320356625740785290115456271787539450177575965346108680782686125720044187791013452479307460545140351392886944405168145927913456983408126228821267953983954610525513873204181141757787664944126247996943823303682716177896908619034996380535604958856173969772408588119236698947826629086004133495353677981122549270896073053227636135810375711498396982331717925798008175059257603935533404531905787865069949430382930880171397163850780400888879864371478764312004719841013005753063364327957523338007074994851700370676742672056612550548147987395253572041290643530133527049293652544448792212923876139384395326557731520018067408798211560639402695858990686733485096922171308423793639456007252571555680711572376141185744871198702707934030447933971354179776957034281051134759530965269524950684985547748055324735438470275120456314791966533381173031365508122169645865981019742692170607378518466863421185757823869096167101920601809841835221269665012539095785121782186302198341367825018421455466445848104916417952156523282085386105823132203752681509334328776321522468503281541702513831915816327178172259915293151465253501155943008623457010316250626539080332034388790008768875514823262221157501454004399517080559866966568810516063646231035187430110162171186001011964558503615057022720394887791829273020907834720830855565687683699110395364064820638445150169698826089897045257245337139998722774930409094805904833023469218722247658024842953923570922295266802188739248904657277714584614658820954826914627336795782546511585324019111672143325785657030150984408724585587738400165531877840240688158465387135975525408408925267768079482452636475782909398791680951977681393824137061949667251712781873272418699132455829135674497420501743599310742157258936360722554812303792236867191383097660891709059663108992998327132514844436449918206294275780465309723029706452807384744235460123402411552549617726873408930187093816082493291427896107772701908758123057611539014299404786051275741370979583835456275590852441955980519734932483637369963246115733410610306661867163976162805055421252436823935700493977022127266195047086426374095643488032334386705581922739605569163849533991090672886322575717390077241896478146527171776921216028048396652653495672986913612433156658467966446672806140674716817459004709813318320111971707934360325030567831822244226974839847434296953153886257018834847931925566067728538007931596444237929040742205246115658481529257350969691176898273272704402529772118308573143608490771004053899727104381856939633567162583622666377764941014007920084547789810318101383552717853000309545295012011512553771538246764407543966905738477865033482430342366187488907198955157671868065460198788928612300125266198212565597774926973004765110303879522801536663338113834133910181044744228869589968047494135009956032775246549564855233017212775043838008793137487814436105667094417779648633303053660238438208678966700054942047726730543367856202165143105698827050932498667985776116993364246767170735141267831212680672205501728189620600490801249144445546355549548262863001952544143859939415892790945927333269725804400186659225766831772707413426990901024385685864923554520392555948975981591943261166347398002622266647816271926043096560874827272105539314452313590365940409612031131953833072303262810893621928034286533372785230165524334233509683872037934515147012043943380729102977886579429570053641637078121713591944974333972107445450797029008724643159063982852526925778872933271371819863818864570251803691341417032670327172117912016468614389077421750461519867974631859754889532817938804489811487535633206947815888996305054364578245605755374716778858501835700252582478860690053337388846477112432095995112062978859111622964704325402643034770788403036631867430644766511026271215844757324572858657378359433154384396938426809966579794047027953525866703415797852386820817079060031336953385211184791271701958787082558668044458573826817889986077376010830061700667601737823724751319295435871434858658730857374360945584362114907884659374691395788862021286318853616978807794519486091777858063207206034965775508055099165680944747536055280695452294877891579471150064034980246164918409967048978517135414539032604355900318761623699826811339079447244042061820042142168179318083504155736603968061646803258089114635143176897808072459208318276237765767583724053022880194894500017909443600945776083238575894032144645823037602901173328000499269878510239153094134410427369487960750803425623632649303360261337524737101211737200710698713588634629264320322186503189955419753265791886166192750215792574660405484953654204518998834247608089753095183984019942715301335500864994119627002178510260233211704123457062225127516315083706643950392279689635371477950002601462485062513050483811887183116386943927207195281131674825798145200509482157664367367178927345382115882382699670157626839883493497949705070036926453212726806400213387970863990038578492675699122394235782332704400934414213455337653224252861227605463178817971173519100936608168786030659184036228162161749681456147572111512586115080980455116459861683019389022410082162511757990501185813180938909199704636162791082440849087786457444634640778066655436664774447003324887094055782279376467313932607124071847200006006604732069906587228867453041101313082233423806281559353447875586613708750778214316755178173493192678052970122279006206329252841595652182228506697475167560648351438940231114775499077381845180157971871014035567901151407565437694928923886975825735377018160763952805880806441908760087052935296356079833374627782759298484767435706392281715315402151485698897327798536294256983660153197798375918518044602177392203577623447008027443856352049953005120302689249734051428241881649194566525687942261226393886181009599394921716959716412062184981161723079251965622983073535784467196231557138215051389208848989169426104970933975801779031773158613472670891257126353927353599415000096510918354946539199462017941924309489214349788017467536854118216573012437291107811746359483542750918750328471061515865370713619013884313253633434391846277433343391655802628017239279125641201562832577933662050367538162744408430802565737723704325529156372105433392004067254891786672143189850141568817648343638178548328688815110070120868308356299201722834486695406925618944409213558580053072975639037028625032733121385480279724277304593306763924011575064003353108686711883305408307493689107214527318720466720563978912224042965828668963716234192678863865284775284995447904786184544430302410932306572167247030057693810493015724843918402271726140195067715056633191269282678762011671137609144669752429704320439544210505415925493999510998040189840307068197129164269565265405277827264504602715159134203234880448443128277092608316583439554215199549964961471714616232258977290864588426643456102317949773905150236368955759442864837546821627103152529882403214993576151633095347058973433799570351844872245720975697939364507471950505271608163937368534252015915995548372411515863189087495128351484471520391885838839529837570885301188266360773808956837490131005366771451933256772512965575178298850144827808134347175707271569970567444086073356118921038525366690484428364585223883042275862927803139394217573909487412171971743730299568720168064848653945595792095531384485752066153532100329439095409339161106526164052574411774624145543287812004808901132900420929537985712269484225435447614360361381247914921890662691055529355074297839410359296418076778028442971582997291371059424403487563691512473327536270916258820311025512967482753231536589224747603978113214295209394558575924139407137922346103943449244218021138963430388843786249651965595559470838691081155377482214148997665052715352201555943963973998893325426658565834090486396550726755133543464945354480691964360715483870683635531235858150794430835688817185314307834794744936432311315731094503449823746468300830536556581676465294372827382813534584112519695200400675919338008340269781897845616245497550729753238185178192153211804737606457947909080453110248565219653145568921038433093254924541110581404021694884568362947284769208471334786330129318395784850396524490209889905840848469298125489527634154726562590331732150532403495063997284093787565600418447378672026601007642607062499086658881480715485681415802048185940082739170306588113752378563507150219957230950404652773061247050153979287699380737651777484251233644605411011923517811635633537157892174190249750803578882336525791509940287662009382632472941301633584821478985431733160932919048308825952409740228350441394508050114908346323093379217899234400800020427195732930742782373456035288588349838890497529732161975039698916014120945954739063740119619957602097394938394672493329571728690700949293487439886677319963243893700084617428458334196670507348710201860477529658754796386004094048455150394662641138603408935130386083669706725485391912128062245113007788715684940880038892890653390316176932869061615682107794866796290112160795353081296854017989017679683479964813935203030713552473393645940431136952985943512269732857355665621298028518319441654687273632593948562365956510574265306124522437285339888034880203886860874498931948458022537963571691022980892978416977619047986951509405279741453707769912371033888044559104183807329557828862806886762729044648839873688138613182657878740469863260278827219721729559747888225583210537224108692006353697011399197993662432352617210076348362569002596898295980471856784496991330395200816631397850327965796524516388278058725761201118327328509356571880142371893404773520022523727206203432011242581981656282475322559676366227365706285965189521576211933873561664553855748812248367480308327771936150205121555413333973695471524868503906532198325995860909244673232014664653160437454378059279139647246899593750056249448987514580747460660067718832393196467540346578293361422890644209792286135034961096874403402466339706836776013704648496221695780651085482772064223105576115550696314982491648013412566463582952371873425036732287418972177424893382888365494427669639250487301194519721962637771820953833042905670322008354487536783937169685110290267523488737751432555995725400644480083316929882135330983202357893431175180333665298405991162217348868249801214245520968001771051185508418423241082256056807456382510700730350723893710910038609236049555645508067890164350220508652524444637950070502185149130692146684951449462618952246521575334212290126064710454551857573133203662188156602455873894901071627257024434790950792354006832918432486889306824887800692265806493261762092257863370412538454950828425837292448636186263349898820882731501229763285479972418925827810901846396475842936593745401816801378325784530452764199835179160560821466611943594767689291332114210413298855738135240445772235128666497987025874947958060876534419580186883183929911842327625806355345669345588366792239243554203625373053194753386762998833228826036208758103426711758942842513392573157833846779236797212062447183671333429369067277555995330659633499238505975851035926011665658718693063895574922420583660210509328224169536887485280475867136162348920899653310523302500382030907816931996921528837553965940990391552303228327114097315016095190356493535512489491768743183204189804493920128385300276493540816025763568639922986108436144121970798492536164720939833665618135663363567404370751632777711072604291906026668821307655927019236575415202268765786280949437004930466718838846871841170328851514363233461475714442850704698790200012077343294243142497857004614874247402573543886186876544257203908721021249206138992727262877618361218528408155477461341288980738923295668767588534019848888124400455508914944102214670312037975423359569084455238589990388618530592732874521630688291974644811317939771806913720114292914068866541179427985446110353219046587681185837187534863555547611948021418911484851070473739912178035484712031058612518662958758352641736445036354564837631571325104185028382452869694748406924649421784287659549710227720147102466062426031455955136079701952858720433877229409373188549946586439768849372750796124028072499704046484652200389973507156273283111234572635283765579517162699777191077138322860411086073884687120790518081347204211192236259848257675049012884640319902636436827051061732532338002356123366516123808316929725280216170218326792804680663906871859263275776464841170220549762007280814689887058177426731774314054059902803385498709559856598973077389560290319122124376828924107897152834625941050186128966752055015544505929480243475771980323692768376183270858620518238018520250880582286894954080531831503816782007296137235195422605499122985328047898297108784660116111307859877499499494266636288757496913687453730434817172606465188556244535943541581228539299974306989629890270420755569550453254289710839110011363713397595241924842755533821403669354836656217645190176740264094243859329927865410075457781539773316318756370966676401789635630235449670978239581056611559971492657696434415689329370646066937908122651024724052782065391420594773596361144176859087388384041587126222542149385230115621723599351157428642283431862684914039451689532412476166206578132173129958748909581941454611055597012207671635656814533083696543520587695267335192028122360520966177928138197715156079767298200302524417421439484706939721714277994586863984814927807206285445341472631468468649279369902723904388417425048304490587760539361701839001217623375991313318823321126929482233955858187670335393367848310245269927313520593813282337091217131206836725356575429626350250697394204573549808895881944687346280309410673493707239084649972889979238852952002391950774899163987476662599580910323750199345219467982018503579859590168402175365644558540415661366051391732035417870542696375123523612510414179304479912791656434632531295536969854341444515934286145283899663505592165958725351800440300204880324848888481767265908578056214502108641939862103756577339868503057594738778635582797365776248536057499932382416474984775972258250280737666899441256107651691812107994044964013615449531185590898446541851046963924229514305576717894878246785354975044697718372205009479510794347125056087363201436494973362772012781177958759929364512566144033389178793336042881983831484003568701755800070429801973049913554520561892810012530003389706118277779603457634347142536298122904426624036577689675779811081520522912657261206778123700859607113506939736600260351162807768744751901887941244261503747029734520513745468079074275471113970393749848540804536461908215853474948784356754884262349560933803702440714523630694629888157986017592073002456245645444712656352636835321965741599770190580772041963529525914391610632066128356831035061770244213612573583682696824549335401551053628845407807789963799421515055310531048926252231916342853087966796069507013020502343265229138389258217242549298207119504877529988079333685871248417053244948132105328492973929026050377107222248043702322729865803833335764217548141386557369916421448776571668541123390254347824524604328030668543598775614160480395047787195325420396741583584065699866785143025094929059241574625422476824389883477179243308092707980650342545342767610870928962505430127296343474810764862932119413384450828687934292864737576666035226095408723319541142772809502661808500614553864799307582251380823203239112208887942904685794916197552214232693681563702073487178417460244396985323549725722189862733761869945347324950316853780487998566470239895421889892096622710842726184077961611109558765585175033767883972526559573965434932517626444364327535399302514353893718035758229009606847033970605844614591174457103248987269010396864052088411233436547748325825641548901644355627459729830854891730142279819288925678183623099005139299004681145563793991191744426767088293255986851464051840806811988207456358565335159305211773531922588691141979172197440653941314479749858270367289113276867146405563012380622093906997359342282499089341787815086457826058889282607891595760486507915435277080625433227578885889049815363906700112778830158848782039832505721729421923899980508422855274069257870419513069100780764401092863663133391130167094297427854812509317727987754185169918488249182923871760630459683656651890160792754764063748964359562308809975284897636301203815874166226053622360184247496945990331085282008377685835322072396366357767615414214390271667750438665746590088042042365967936685321794043834964193150768721063703782105094373306879905873976415394194605812112870117036449717441481428898657203159412750930090474951301570528339335013596036801225694319341880689407074828018555730550488369324412159079186358486552380668830004896195008242925939353807911572646403430497539994104897932646484852229032932837017709658564763033412112681333982385844486846358873384465617680610751907965526909446755213622257389998958841582472191075681610685587199120155616042337032781294082475190880226370810311997984414763787691468795868531650853561087272016681178939684990936309836758283840385764338525389015325189823188100754028490267299486482256101528989039968863767965822532344361148769140671579870215522661909665071258262767923676683884675910566528268501518535733955261869146358163159868130872480192053399200489511993913292659538386042002656264817900571662655455130522936908401887009069363528081321004227710904066022003558567440183454317566694085558985005225245336543240649525138590392448187048730812966061394321445367082907021220220547634865564024896617458859298396994584060714106252130779471110889427475943335538999963585958648966305914266753925036608484147231964045707693746984790553899990613675627313147056619300272828880542463541196785775971663620165787522986942723197057237240573564548948137575814578928049909684417974544874824347697498045489384435290867040339098606422729669314143221644835963486480871472076693712321117775765020826923162215429475863501869585884507545300260064892611872556974094918205030398236336273630611219606897278378766152270768389461617133073252976014834028409230253514001624633419092073595601620789718412873767269110951136726325239998077988324255571607925786975880694163398544078850563245196641748284659924272568285974490082369028904911594328702488878810755539682381548820553693102483353716885310725074754837414442984580885552768219485140970927083905321391598672081511794811545582382736920957101837491603115751719392346691809930260189614750396585734824326360789028829874289757146840197605729480987050652847486310699474702856038002613381716770694785153226330294588906906005625313192257675192925268772490862680922794922372925965872842385425261364109042651876705722121783021521211749688719810710826002891685275529812453538369990037938205957425607920094608649954018345133421168551716220737643680662654951986325006126939120555861123097577616204635326187034950773717616880373677568515367232427713458186195977286500661023015682262690321669907646356176131119513733950757788971579426463739609444651353103008858994049238983913353568437675126713532490527949292621864902273401123837329502780076040092097900547315031207469183171819259647655448667256927591468417960305027453026279272371031162866025935684242418248765005689428646095796849236479397366384913791208645390645327407468077441076809024763043901513563350696902279209621140182097064013020926849893693952890071592826938744028381139478006242242712666772106061020567937520722395697206795546068602087028790969431295410464501514899670959007593098970892565354204682713939026939629617852836223859952687592644766544671695151705839687502740522229881068952824640146500307549836742265805213158512586015350077509148783718053738403215137160269332820172383976499059753755402677582772977301410941631726619487204608856115787254413961644963023952957070440951193903504624873089688632704802244800532684925046857949250331744169334641047183310021770874024695918866903880793492685072145992369169501546847581897030845385293598097304651509738759342929887220998128319981518486955015724510584975103312600622525736747027033094793566402079083512819660246602340567362463498889610910118363177911782246924735284053166538435884819338004070152364532126976775864411953801202575743190164661494043593680637568869167884060502854583876612875497008390326953495838455814149890855178819696167857563200856065672276235368551449637395109966424269132143226853701272918881566284851409368360106134377429378963311510167813659832135233570306264399995405846972330276968981809530288384468028034336647403478174156195997656924648180812019752029806963676555331282415277327520557551788487118186442328376133412210794947362237114627273086244651068211351718458232400982354256876997444238038456781674217665669798149892530152935443936232501910474979000272878959906032065260267780507537700614416306848309485863453304683612862449203053672646137587645911558759046070579349947666829986519954239602250078469627777970634020151786055040050146142712915807015384438027922011985725004229217495486683986295455792578523623938960540582492477257271660351586292727957828789915807689171028923025146819879882788756138695991964199077506531126815167523068015088872264333065093378404573195111030218092648149848833674365147559848627591058365800274468451554641940571073973489683738809802198405329263484998249992712800546549069471100874743368668149833294596827848418258462658054000272277113221432261134407550620546629565237572881144189776438048370869959414208563844057705639172933735981897700340244462350202126424183212508102056335909300146724891665954359000910779846260727793656499446089643538969407358525747321893843579622127038141088368084321115429346595614328225508420760657039909851996236323054732615814110085695268907383629549218334132253222362662272996326033515436070953829298057703601551118657423140956800477109036813795172338371447715370710883575614736384457689508315981831991395757863477723731723671052502503427570557630953071050872604570429922312608832107984868422024332800310923254040431117029504194635593003738567072096894761995472850938243501694227403076156939898731892355580859035406823849321382525250737243044953161795065594518553434624408235835067193258306238558937660891204436194329429700538799818505026091606778858240679917498382011959178749982278282283517711571958332833725565728607061556547482465652729104370576578796278884439756479116770139730679400207413373875003552153972420721483185704815469258163954543103094164780636509778614822837240578557306817750272240233190724006829193872382568898616338480438838430906931401087753451522531740912501824035756084942095314365668506148805868875618218292067473930707845738243754075516292600830768167927913169576714147962687516394230430787539555426640590199776082111216880685421732515260933598800308029296902435075676494236797337641921554320774049626515225230070341748318088164941375309764052707920516934808204276948782552142314294239762228619024459987208459672165361226643590519941076592102876255219555354779057715129924560300330295358330520828041191959966983198148519513791557786970487473240524214022666354154121433527765480567697317957193861943491821190175215723699502705012074857234686126902660740857321609145660490816725015919190531006377527443513156446302271204760165419995378431817977465548097805500743169085143465243060646737453075347390939907536423433990196481014941286689031386644597094505582262440744624356255182702796923694983629065403907172814912158685032745146431070944536134480366034256716066602097338534471432078273808118700797837225023738925813178961876743608596029101137658623980978930129535211991319817659988770253768392544841920020926068925968106543656876417048603024082772253566865526231797333616714269731689894277552399870174215473660563529421169345496045124475188064859110624420136677978052373435877944735160226816312871677927442312091082180963429397995757358777755669142143682940794641263514203801081302396643781250498986763266376156653984984706322923319499315174091345640787255701585282282509693399815366330391813166452290781242395051348911111300244368339879607790299220817811692910493541690652195071924982221277555722141534900212621981483741154292491267821820599734903975054046139002208759947890431775373792260954276218622855234264175439088033081918488075497088616705416051829009301977650788422698494234421395006625074791987600059639208653808600368615788770076391560858266453072643089193050454673901900342420406777501287821946152086630754122734453772026472809352261064551099194936389424735504065703798691888846299864323394320760209224457648362109311846242878728900104834212235746510129344217962197103363331694532014797504434345247464920349502086297974824336357061788658433719327510643817559767845784902655108859821925174059240683052830211918086856325617595303102120513273988807340239006567292463005698235502499391209864093341147891453604255540942497241420329582235676937580389997739035306512798735951282504289907748142683527051537023045273400235106923787702638553349930836801204369590627077692242740022802570517653165620474932629252704295289594831211463443944218128341540714785282809796924048662701125046770673397591084267887161139284930456114283213142824598484526118205477203936523142796241088413924523913671198154173497386059557778106276160650740812202977030435966642382648633647537927055052893998243656328072780610293492437689776069044279618924811917174202852109353799491363871588303911563737626278051854343821876162598879621626543282125161274709822355110584843399590223754247083387553459739135890978767638568707220546965363652691600756410723413895803194447696054970070255808356396306602333842087635696946799973603417534999609993549367436126744757401478974216627535694405101594824200426248553745570732760566205055844085441033564706391763762536817669245946814776765327236525467699105374285235249793151440758964933973893720953336599190208588535006025633045146481838119827659843377137402548568293087135802597419466685733148931718296054907362499993915942989101558747503515444034442059030678192203401921182061835344713048965376445605223065861863037235163116587808166320943140798500670513783335452507827526022179776649238369813205184063793007822890327739686665872442897203576104767136439033455331126832615967598929207346132755900108208089052709403991697473221982470106700109358890679458830247274859863984613701081529946108340032735598629011940572571228225492140390091099169654087769024710099206561861460174187436585905375998079263152998713971907637689500828159823137411975343785863932465804907882460067068521828505683044686765833349111122990676699549409644844324210703348850693201908980163230682484389365923616622369127223503595651370886784487652074904021155762033481151023165205015555393297552908865694842635427321963079537286631745241839025576089859527644351356712615097118874364727262315716788014172001983585891363794620822062476708872025409433330395024743689734687161449316057514188199469335719070152311662988404512799276928060827473090894059200606798546072425794064827130780085698045806537258688448278716906418956589141035653166102652865647025962113186756132467428737909409364609453122249607281377671312058387896684610133385357344206207069482294121722820328427283787514830048123249728133113998293851612527415157581531389905218895274119733021763610103922579403185085203740809672641144160985503894229404828776177358270688932632524962330785323494933063277952257870734426983317376793262135874263331293719195945349306135380366306163727865992928477246813876049485648585599226747015170705836001022560798810610392489453827888202554249359909843407764390812760140078495029229944442664850014321235542569084368033464421109972182322349974477985782228878615156084242138439336796123602357192974932448878441198210710169968736704040811507370622636995979034906685151032829265542974949264256976973787464776968254739437115599336260113057899873102494514515961127297894941387381319975593506210942948023573010688297931305330949901044743264894656433512338469890602212038810870772857668585759141193916177308580879790870961708680536109745249218544697642131007561892062743758507151887091178190829336839424399486499709735542373902663559533139826894458714003997381310423754136891006781773762577934496742365856163938602612984368731166935407426759810110795014037423671659230315431968986262224714079758285827531133270949973856578761508343458466187749467353371132440021935318139418415875497453811550170923121004427163186128632631327682824948529594182390111079920157860440747697780288956133654589325302514166735818664302352387743213377111159371089781304716793445563766180084501188720049156506713204072574416512582190116031353557920734595364502189561971059505997748994359966293455071074979991026400705697404538336376281479957289058081251823688939900852373547876613431834338320666947703191506086177953911515807062992564271005077496610169336717573741238441273181425932218872992177214533406441319565300071627179925995097955909032514802115196669964450805978438291602216336103436019620904587560330127981564666947145059344068612400361872630033948761672130474542576524922612518929615057062591400280748344462434774112240220212237313297619773494882237407920928491950407292912669626995368030542337622178645469459501847680043240695510991497491465240844176980745722938663319527540376202073018047604367595622394134657841254989777690752576618604808076049734641051641255123242810505746977464466960601820314884033981253825756387444608464985100711995673929008139013587895243713090373658134886624396726651877142959917163537569352538701736543710241384645679777327317784638867821415526008985301227224291362382521813506765057577233172806627510526155883386699952379364371467613327217357500641827572814424074565942673589367559444715495049347155568898429709636876297298067949764888160228227317470600658767187431411262923864134317702141895523606054547520954876199044839717542626079714372215211342358724536367730052581281496411320850107044235065384749114201973545167878973127850007854246548758462270880343310759329521873010405853718975488462700988573505074670292906532591167191395824326691525232012533974021866296250545490645373720294671424428869851016537476438194059256396162349142635164703526449528888186185963756466894251775355142910093994334007395687506356784351227572490108570315140240051129839693322135016475153711467003695160840530103388649151552996710838470114982034643565962332572815420401616826292719789484278967828407136613520550130758091260780094376889567976133454614927582365328821017529581825755076550409903292750601810813012585506026294189394782954842703168267945354383558908948199879545734438318859171995248435110714325375145612239940838262911300622982072285421179530469058895003016030574315398621345366336600911231030868954950438350683252518957910973179174214763191682696384624602564961171190247625950373836955299215894381176821127101023585450378071801462999548692046427457075756587896243237449053065645047338536782366756101718010173315889058271049006944869390540829356492210739562908969453074860370361440329673470237734715268418094865805058713953747859188829329258785855703287863566159085298485757904518258669629403997432365992630938427255825269996986723601613330474410713316325348539827949795396280534602426170544425674811113043134409569942762393697116540968862615029507958136604079306233081039147609154814865883724962087519076071403900981916305699228285997218301691720041035877442305541935130439758230873504241368271068417395901527271039965061928877484459758166669083519726296284978856228727917429736450180584109129142659560279328904036437676818686109258938214175714274265373811351660766377521110342534875942841131528977566853868021455107189419756475337848110357045203585607095984776273962970180880136530353601816125436879307724978487484853594145991528054148303669637108368414235522922277322668599232705780286286187971479920481434764548054796314391678128747108642692628548909582370832142572544622334880598197491293241692350368778143447840550829064598987822104703010268566142657474956305947803345663060131477705555662623203748894756715824637160956845664484927030283472685652383591102158432058309214488222862034312494862165236242961538214047638278300624920761171511797019436492377390026020684660645762583609076990824461272935672487964742252576941088532459088504664101348506157038802208039404159915982469118854230172807596475000387491720165563093928837619391448686936535326331606291350556605538350656298355827060055500817374952849482531046717433890442678384430508871123245178620954757273067102855878476404964746278271765102600864118546567781064026414970928627826437277699251395529922227434324034210064973872360779815821072512124627309865318585335450211852308670643825023734765793529271773607609348331327462949840670818397690256543753111956014530695545235871931780495417022558823085215480494582279884055592080309781573882383219221906771728196541733496302558601728127953991478194001975696128399816547942338509471845677629071151383551627608045658000622836219676446019518413197549854985257775256015454474779762310790260050734891669707261149412158438950268602345108027372948090263678259198223815773573638163708514956854911245588309984487621055012506015572859643299107725367354136552622197297547234110450470441093354116886603828661511475780604316541409636100752018449686554433159820383204540106315598016600065182639671768408411158686972863546692359918688276384485935049709429870488835859483838155657835693761366141695286604469758996542599837079230147973697726845451153882245063084992509423860922005955878414392922165273762781108656027163632521005313827514670449322510531603939467364332641186317230706858590132273217268019523123604584585836486873804347025219709015817891385717809359120962439252675228390758175439043074082061262684774402692763679335753883763438280768009257803272120015014619145786946126159173089529660789980310927699473579767912352144768541675017741757859201242618181441723991517981048430085685737343243906871186661010938198974860511677143444296759900317763525247225338608479082299268289887746631484471117717022108728847798394456998730597942470741705857887807454381323030031562036799280905767190910397927806423429075308985909206221143528690013002079203450516332792780363644938203476783157914305919815629273320597342181041626771817007558288090554123509758473081833323250733880196328937931473918607454386047069608045166016352744020765296472404518131860423202788605154794891431227736044779349283829286492488013636866011734448846607398882532803809149988019221560632647668960734076322010496745439060527398355753094776846678379754885476758693094474858605592441997244126391040325671551876748405682804584010793727176396519005501906348509014944530189818471448060196601388646136638614934303667528542077656385734908358940627534674406981567140510264306850917120524966585616552444418297556188947410868898089078548070561393729277561089899212429110871100917843084960296939313238159687074496718309139938006365432888000528083164562678658157442454216207592401279475840719586848499840674537438238884464636917548520708072708255186226576826327379794815664960368859749226417792629955316332406010457878102103184767287256179762885923086134324246244380919300777949272024901060610588459758223822365013774920314513988282560906442930891177670723958217010048320041628196388324772271103824749655247944087627648399829774548095657702004564212775541744910815106031956343332208275263515762483856481551884483647662833292516024996611099770457426909975411027152763052301115463088420762211080135319660145912022121924097061012985624715737461582183136648118648773048193943477692753262881193737865796325234736289165933535370517332994894249488491605143068016500497821950638311396657655917382508795804850546623290876268308218133410113603887605018377704703863241753306379523236451699695632995906304930173016636794745281885731870783699422105533874960117273573287501070335706946935003523673561474392877104423958699215643413158203687974641622693380056772377288256339373928643765331017147362605672911640761436744585792166662147003791466504034379833315257708484855271498193993622764125758902960002463041363739829481650023884520901117592019594360916030876251050276931573790217624042345188798809996106196784835599063531307627571609983848278103228702425198573093289072664968249220177910737883098880702460227698376613887819444802122343900067665839965521014502248573881477464785268687574221803821197179619508635546212992412958399697733292339204682787235362129406242164757507883507762213538741463267004154373159839270325144604920068267702156170365719423973177230260840068113482711057166763976402352469895377096588213350274649334615824063157502484057779767940158486277053336114277108075019841309409935751914248234906686142881021685293194726188380987600882186943788949649577660204306998237138510509079847682045288609879531124970300576638165682399608287978853136528623793275308965748397720096230055939741490708230384054939922611800401293166315076940764472900404119800787919286153596995666994085225602824942499359692720381439043794459335964728341103687284447765370810523471484769294590463742082159600144373195473096438321715640076004575846736795296397905832247815320287450437457513470907412600928017545082626774949456222007460058640572732011219646076415390983713970971344924968933694930033764407102564364121678875507421792671673573251554738215772755661263361489372091726177384219926196390761140245080192529474642715235501219515524890983378017746836783420181134097507758971885351198482034759096572719114064895719705013488182031252474033361179807444292031482212650936941108103631275521848401044876404955929947743481417975295256982448171276775686757039515145575099459448049073733932619008241054042291746867841876781436600464645350458358986537683776541947248218651071472433431488651142309710182684765891845658081198770347034579225450766727127868625775680861238965079513502161935562798553669668804801514415839358739354265839221177533487963624242397940858781003484836624894545343265274749921504457335060827870798531971447884777530693694908830663323824484106360110578636714223115726938339019278438924489223166375752701112325557140889382958206027457408854557061696799067234707270683560666054478111182847840902069364916123495141314344140783835026934902311061369778389512045211228730156015105416984050872168894326940705964918541111753081532021178140693729942843772012483287318830003074564276855237009817176610502934523232791461774900107141149156543999484997523672181568039569260031453798521239004688456940427145988698456216303696969284202774264357235143840117316582100371456926655627319095033550923270169165611073721350738567419301754399060370258296347682289954586133561309939912256147657226956362056060229557002346084288798564714294983507485703492068644637915111039664852543773190925807268163775068101533131559600213874732106929371104851305770783233669794850615310012249917544765510294027023179570349255277840055322312252781350605858311355404749838578667915975048424682604609225342862984954289680341158606937905531868796855613165954285718279604734195560272228290188760383719070743419257420520291824107557570447344862726632700975026944652080140311770014407670805791482968388138843720903131590444825644672234925367360313863939163937961393965992451052899983669952397568704260612692612731597226478414230608477285471070016650612331568002323929511129104874918025603575681269472165491950620014863143494643358190159499411450960960409580106484068382008235104351376423050536326445219927885722844302416513656593193214919924300499763162994166238796615054675490622270422192074374451750679331177948542671179990172646741200688908020815149186710555773729698190574027534330800466537166076629419717077616785451623975083017067361160901160765924302841567920056928910278127406242975560723755474777394099824558892401278005715025766231076284592968948063749067804734721493670004646518735994177429451823706964996576463341146005453620417211113229011183049478324878925880029406594420176575454399008733129450628200190895544305428724017152810662125275019571564115367042770023988125864988632359966076694532679734538430307688808311885281910147346973027778561579059179069131836314105027688431966873601646047248249781251476700553237491159830755238539828114624887805885128575079837964732210085128190349462452885116349182167576068974227844051498913612974205678635666778548555870609478061521455945369383346542139123234757182123310615546091010387264373977664989199097912108837060602679778870191112313490329091972992391437841987815041736677405276021487925680050737870611913079985055368779304687378170620471270978945697696185288449307639052759427140146744327720848916905149046799295820926256653948978153402910075483261972370021417746498357076077687633081944074826598720758734890602921281265196500988783046697928123717851248177704521156576704629566776083779915334928908361045927093756599743301243732820068432439533967739535472790190826752486901920570781602482657744443025451009004364163770817630875834673405222560930642764609255057194591162468752094030739124118904414826396515051588133313688986133357835546865987234279883860272383539206400003425367640578583917391032404638507285295403265877770896348008106382162809575799033730534395045067116908181256312416528262327418363789614140862342013234604760880495469041843817751538344045380348787314323395653854762968918728339560923788471549334650689981096895741339657311655062326980608807122047396356107239483456607098038307336925590020595274601193329300558873587375188067964438796247330964206886486182066695873166767452819809239079143734429965592820972773477724746454790691291166229204647334101931305969305561972971671208255318594306084095933897984747166576433765802600661197484415711050256569900922202559850943343498198840578500182708168229077974928645216150271011886995845197155407180618547902982821545641937641556434721578682619098342956474434944228512787588880011726220695592525852687574067768021198000676685241466710090000444579620599982037949373547940680065107280072540075450992391453759251418999403241320372779363899469407271112890970318281588602635038938069909598178367788137054804685438894265114431885386312850403680342185898409134892184716452043752648063106725301159239493975339388381454036510285032283977496903530173266932599811517744291813801708759566888762095499146772501375361382092855061390141967446367874618535407375640331272500515389788025887495839988647839524600968549659939057737677875759415980636713301883496276215106189352752885645189232704216863734293812404510275457349127545045762076879805106576454636871258427164927446058508837394050260353714924930818102928451162902305017749857285244260940152812674028094832275934772057235173641302495784294556570578079200875614658408875617428758679315748976892063427327041742083194055872278638779357767621168268037558573408115926183572390567431137103112594191429547463101875882011896902513681972069176104494492864420032761156223509974653811924546071956936882856317964577210143916618873946923471431603176108238344509817588592419107848750233430095373381909139049555398080066836617699345066807181741255911636121790478543768443157945764297462262733920644486253673937452723385288871022571122882069968240972258033193886474176374192781567196472927566806116814023435193076962460400839568033344592048736899838074269909721997057878336923879994175387290587203422335860709694723672259747982492155022256038574985759032285758739838308164980282045091897966043520034931107956551762702511762605220263453980853929739660043584085157090636997723865016821436086915156702650273935111701811959869018316176463663332512374965394343200201346727271405716386036077549584655166639637418640894444927108907334280816306935999813911003386743812886567465322840899327794304147101474627230746101199338169449018532380393980862653119389518779756281052288883286898231040385661344476554492311718502146079836485548807832440448392377030988312196221585871913447392434385449320186560002866495953737028590296133172719115382367018214586006878209416202329168847836488655763574692717813542816534214541644108674787945300977401597775939681732970180281832663014575183884755634566479508130141654242055359341164161660646464306737938184774441700699717019022009407584953279254749912012093720400512704363295640486046419111584250822331717018047741162028869796500883865856097792212248838958668925585346170237186894674814250866412518713785579285828931677194072948908189941184791814340279411467506974222196561598419606020478881666574842742273725012742987295338557893525817821444708189141064883176564803426957447203059029553134752509668399238308385947914848202724800796851256259941026404339030034830557257791267026954792917208020392891699635268638979117845004397227728470592973652184988044996988323821748490666739948019134049203247062183075668437747651192059935142073245111109624301468942014675647329392591679202539129399133542443845698732461979422018603222519661186463275438708622118867087155030029626077538754036756196087007264570784791493267314606281247764399471284690334083595684152735951226716786275926751644073324844624045135649564451283537956409124392598837228904621325263570707646678169253988082418277128476143287931205500360407647038751188858113991910730267629056922528530462131901155023917956545761491239437644311194896897672531209002804256306897921168894660508816716703707922723244864262893616476735132595076846303123763510535271434945207793212453825773918181868544249891530345065341626811357970687538011128600002535500476386996004634576394476027628735493606076065362103045725476114526586566524770246099179579762440903531409853383109683239195813170918151403167708227466368609692170329836417368004699026809031447994371334596034322546374838780827197668621311272008336512742020956533890079909493210608728398073521711754582360291217619252599021821319721237265825330361073513572091111961754169938774639576730806673878643373267897953149865448202972768533072439185981189612473533824611449142440877286269760498414728025436253931694912640617732047302510083973311530385956054899877473289007080054612006879072398756660085973518767150968404983432382295160251730108217035220027893801747495625543630969080580244129386674454727787643985989247120004200358681438196332964832492607432692225713490678600979259698333564156237277182439166912507720551033207541640906734175147905237685380752128489942244751217625371731871707925798043219199112758897925274938031561300431241663743188691733296477785870653991117260333347274912029222312669351726584358876881754028543087301220932367974257084143180989552947363248620951013568370839789375564725632550121508948615067222956192137378599341351894232633014236115768423268464497547029816274940894830731083934646036758942078431169771675101578452402801358504334316801666609409083938801098482753341607145859520648084195683577550223898663483624855816751816323043006988835961383312931041104466569980799641619775604752300715882900865823768732249728168689892893336689755697230729508653751437293191373280751038421302186166780837234738662600468903108591453649888403145644394533466908740125014662062578117952018161996952495969583398710672086117780831413886784539105357110848840525227004539736937477476968453363681616184039616739860600716926227189601060695169678659678168071307753644558387471305941551638400666325012483462309315014924008137755304472825602002185154650225787684591142538619949858681688875244038730710413749239671034717960676744271826379585132631359388128872555351536907074863961334992583920352247894299127890067801386494400420902794484382920308802450234162010139174781618150342513641183830451830462979332570908181838104244146063382870938980633422515314994118340875940616732130427018099807888101027000859896844261225632991703771797258590197250053834839536927241241727536816131552667461463135822664271443376878049071060588030948235664412313980630181999161228941469073864995394483506485797315304556631880211631417694327687224610775511331478897269663922871044208962849597486259569398266386709562997670969248257548128315916192422985069429144819711922426810981656014147862990626756803289814333335497986302970222974379947778662789184663274836718898691394867768214339686514273068041310926546579710938130976886043639339728635710168406514209561555418134995762824019795352196606063053766832692426261505974480826326223607438047166629652603438522010477454204804152741653594992311625449261103650411286463544222102467187796457576823456024685074082864179463435244594031903682370752455825143778188362441622443378235667551527815937234297373752250747944941110185012490204066587185601195554203212682813947075900418588595968737369398578280532443542019965110497732924942670636940492197830949224980002058913596184835751755082946585113244728776344738262109790080407534594477308320239670538129053465482143657811860875151684171336412014683789811641429001337936741727551588596853362781104058994369534264691962317047492830048315029307510339911769292023949295314335609327460259991661820887530352112190431384290025390161732455687663310368467117235631099847225464428148784014433300412902615108197959846661559518788342474990664295546165765774406285880117161328563532750951454107248623967287776503465146249779065899181374987824220820308272766584936413884960957404973288691536627892549585737013382358907487944639163012404854065091877175978582472556274860790413905169606636511756271526970915124107715300663731468456598852433776692270939395027217862745883689223749085148211778757150709798754237719189822329725793663533705983722640970295208978592181223590268958782366122816273374414706251428329545472172219683230567243643145338310824187779454789072483643786670766167868525438041064931847465077413356746904359840585473508750319840557857504107378422854852446319326871229018501149648584749416219591586360534882825852428329654263347357508982022268405511896078515142424498236767535357546775520044182129757207442489765561328986532193776858847674854368684110657945388533611866062535258851939421489468640033069135576423150580280812487514118779686615593824400076949826527086697299109612774966018138861294026762052789422642499148362735266119226174078139215424553522101269730907724724810059916006957615550557715599447606956299177221932750734164053946719611941139077741443441203750514967560210365620551188619866253834153005279164874379893115948806764606933826242547057572393335313240720768014341117625841349637285537518718870769616378000572811675930434140522821558843019152396804119480257214830940423299081275762519528265189512341981099885978941962899609826035327448772644463305600458261683513188505546439998772176861075828237960691207583460215918799147682276742110687333754131383969933326608899962967132995604509700929964234573890426620559877968823358727846285232360662585431145514971289378199521064904319750147058701344413229829296253975129471042081949372781582565127829512938283080917569042374435763749267403048182478938850437339319034644747591453580474695270260780209573169085094491901761504504693989495161677161061884131700417616216846021103302911664806391047550953156959293432000313262242773320253840657822942981753997939555440840570833879485646129291831749753437854376517218534402106735607344360831608201042795635506459026805811353145356610684804000569398151033951102721396644076087761116533834209814562393184365657302375948986932272556530329556293850392148804418676881486777897963814295898590999207080132737188621857933426958728282687405138529268333165830754431169542991505719510184066501337511107010337246259416323192962199690469709059544021993436244364731760525288775399121413173311864944625998383204800488106794942810341755742942232638050093150419923137753723207360707672154905781061470608342130776019709902106577500527694811636633128512060974698958383115770120434373217079777915260722900745964155850292298581990416061447228896263428344731156546810045454357129917995105586719644282416788517408839380992374422921845373252691840978753807320917318058527205435523490017444984611365389336375136773523536110288169171852104235297719076844888252478437755834407838453361775052654371621746013351233873041352533371793571108115040678837327041708068769518866859330982029598753421688607675438554954770185717100282861281004497410464307235610027498530595289329431978587933060428494178114279896060181100988592315996974940059097762396550104085909524704438796328377227331630887975529108876460233539787493773315083826125812575615178528067270865326376783344383602891143990998046698678835743826666018366566305955337395901184951689697299988315136742282929953867073137494109004570182597415377523790168551694860407798951834074527819104383301443290407954763759043264878791270831057286130744092787710422040123585124802262709806275266667637266866646549283409165958626992678616682243754328345682274170958090502838929206886284245536076527943725179981698269374599092726693335380847253773335304074157467931065173999716222312503417078184774400634598160073732035617276854565473758081269839778410159758950244371325971308834643820760774855812780471418229360442284192671605438155078412101661060289229447295939261063003268233201877072965715260147221336284558583808205998131037003803614792991518131176480690969332209668994067955124215222364664192188715856649134359191667318791091525368000458478922605201676707490435445289589769125283778827341998176962690986264449523914077656605203424710207692885342208579849304910751222036014296577180690895130375978339324561268373430365718840182253814132207566591251414868005968711118323998432630137332987127103491035527412439892134614224190368807644557792047203484184461610160042504270153744960894020567317958797691135079226802906814444357864715160731937184960748776779578635698169696926040008058573239327127079167840388794447562945218926931737652914756645102939600690666153366577831048927177593299982880896004790771051316038067398769061030973021555818313155264880188811060025504575759079097600643838647284123985296177472260678262787573103506837449595537429785273867567576258333961844745475362795683774690998562183519680030537500507601894621368936582159799468338124333330906227502459167125292664459901509309385393825462987178713221702723430991494901136109433213398317728268570549853290745716525560099225400674677894336922209054931625867905541255987739820601305422009375385122259941468768223827668915767461486832445793354569820250743010426619430069349229266549334237901218375938621891482238893513819427693071232229903539242044438659127395881204263393843495537416885006841864262725507559816637988289348294725401327307809279818544581495348213995312891781072962393481083730917142651599286361393497428647367972670009809338299903559966986461004301108920320549196859093487049218112322558578618259561990506036200336849645537518288418447116051308571018398477183729438472467311760357551748307689908785508749451531086665490149724984136638332454499608674129160872850286739062088356292707008819961706465668438874640164533943297753273019210240073756866814133004592086590489099548897028586410163629362861048909278886402671489712713514335417881073307731299623889368499998994416976229766079868561045696022436020357300937198123181245127150609634534584969934490469785268493128925887981853855955397793541457103704506794774428522115681911363150357477289712983865139276054102785130515647525823230521693438320543311090973802444135390534691373201800156350841210209925423668965776028809544231572467553220572019999674468832685934390182442923175055798403794693567970934533424410217441879485309512723523409990989693419505151267800320836927639542174070105753499181817939353567683088807280812597833058021218275555430654279615405303372848790748268858868956677733359986020650579986751841584944443965329076604786126277852985350514730529079497532620203227812558936620654915036148302028556727623015780038006805901533743614464093332156250340146048999952645481241344381010030603078445142371750975253530029009962581921656884400762882804578347006644757624729075426324806644260259382446763868292363822826832471081799954120629276959103710292857006107908895312156335608201593851340179909239873388680677150163547196289609045492724849613995723896835984948500752339554123222461120558188117238231511436772450373159493112047299765752774239809388138301147122225861933437708166593146463537699426760041402428678784706997767734290340385562195378090684056956640488835384442225041517541359368834064774630368790770493818322522894047493892895006334329543356331525068325662424754884949968238785898748054717328810516099660732090964650547020970223445834558715933001847145591809981057372552457858095103870005940613413077460076888694338631896989915182688397690561776255771145549820803233028202517685617623729348577357457137725120936067220911520852888897343521269566337959031153087802081935405814718268586476098729784301197658891106336365737060331382110629274924438750982255457486160122920276225264455969109054756089819744264405810087865682025059258433086031746054011903376510037266270313266144450048632200419360408748500105895314140627537999090947279218033679339240589024155550784807439807350825788150286020497204935845842016365188033837487650106227835487733830828056249796305298638047986660580957897506537897364349017097903335102637669053625115957779832741850432513725618767082398703167224146784809586785857527220399814298913169755220095452312035380718272918490717338631002954048776305932546573586942026416922876881535584005712054343924973540512676334544860769171306562250420210642611408779322545221536166464145395737218229930269806943759137282938007733996130825846347543145566977884168855629724199519783551362146132545627191592860447619406179928659526742378142699214438881443247133922119982071135213412897516254456063844647789517834588341247740460424734657235998471981614650667411516687893305130360106195357132532069120277302274104794884950078206311217295804580748169749649404962189084263221646121868718767119863516457030850315448862305597640148734021861841727563700969373065000093160724760233166871668261257236265348785217848152268054893221960978295411919922708165888302999422921168580050812077677023620963425809270510590736634501055996724059400229608266895540962616488504445569501007021144395079537877644496448128685681193014170603904997760525621095015712113160619286653460188806880752708142444947248255399126232204961016156905390017054080963238024122795531446985317397874918876443666959065744491915162069002471466544286333998377076569545565471031558627223860485322537444126462197119759070843772631929676410678451807966956226525660159454424839087148286670907248370302260016676016004830828151687868400193475316713044944201130024405081367406644031069871196667133928360832831972159366939682127941678236069942267637198320889292873107404706563532309075784832868263781060925736137089856167025406759388960295107655345390980949707939455831781221800455593618892868521975934888332736136592321003726277118358493261874406487258312764533103061481775207474598810744142353889464755063611388934258112078294070830351624895867873502860198975619412495295754913024418285315812752363536134910761769375701852331267173524979466224342962967405780045820573029931601942246196432773473673689184381061422489790404556167756843589604207163347213432042907816569044021072540498040217166185745414824472105921555429696733805743408096820176577880253547183039778429714704236875038276782227104177133132468390638482953875461329717826306967572293667485307160273003063082619214334024176764575815964811422007119355608860372228421896498752353219700719234183094535202898959654983964986284939252778423538801510286821017870895725339447904044854043228681195473683320350078676000305707550560701945171856540733492900134872833276957083681249935153265187998457302134094924833981494953816140097050188772025708863217543280939439569444929318465261565296968667225025067666819327511902608757602687998002066069711826289355918986050916812485700397176806752794336251613689520185796247054978645513084760126226421222438449879414905632180243915762688707480605069145916866692930993661977630103392457355155844473812291425128247273892059292613244584859258021959368938482317337558756174962644329706079726261332962436970860157833798390768486855772410946254671004552893561135737138323298126065766536222718410991726803160050775920098300189029026787724369728333785395255205297402391699660929954508966407836181641649397281463062796592489659558591179257878629104393580088104846835804192355882136094247184401046208305313944522683384243928121366654342647709041444669972144690173263175190198324544993114848912686433837900279171614746610539053100046721137663907107558666339932441631468574710397111435850914630319854576218248179920546954921351242924482695515864275785940462437747026920722297826378237131275377030466734461301190099698277748395823108438535880371259324737524842481616784727617679664810177968766799213564088112104433332573935229793317995844019567908376893490345940375076424848491533408100989854253597754550814105075546259527976335851378311729309030318855431614632199475889171116221015315218165038427527399856466059836714481269685679098598255164552874156775589857294262477724352994138677925200652356435698205587768919742623313868804080956290544131916376536369237769703763396929969722351843686928337578121860019080638022339109711947918945036923938549080777767960027727841734845526876524386196659970086975802010189337142942926492414444894281912676524147652164354178556942639852638121180251877356258518889689950022995261093580318194425822864699904654379510774133302361714733392009156589304186306357630219931534850752855333852092548332973830796996152535967318180383953289761222518996099638855321695183978628993170442849026642178581452582884253276328810822795581051555715916092146626118353391315576522847433284998482171833697844432206347561559162318794042922887254094216444386403604869780833490733090580104047567655087944724131845363913924152457087066662736363033215681434975830063409594757424394309528583435210609003678654807922583866488448347779462554941791057707104417671161195262604320519439275602702115011621749942777735600751205815947194725082759584360325619573471303809036423361191793760915832515522050742595548207028225563997424938893852465744760322496340855670024563443383074032335452086095960394738061716487032508161988565801365148938479402012660040181923115025077717735202156246504949203470458252999401149597563571291837325163993766043228858849370286232217454615071624633330565030016114115527048636016399978005297760581015756395156745477892187488094738132165892794886295716886629804773811137036719405587698156237363439068795634239962385297249994290527223120938026453503313762497844399222325757516802260980898455268953057608070573216476302221937014046695622561019684674125286811765958893175410348371108233976453274877172710368691530955247848293972462927170534546215607895488358797593873632898078624737280843879489174824224929768268578197903693648806384440341291235816744548068450299477537564567566840510670372245835853064525796456697685127746061632682869981320573603573889859354064559244485220234414161382163082671531832931595582709283928215681914667967579376194872793625394755513803721894771324275112167574397347019788265128401600879153745085120991122601376476929337374029978803547844018212985567602118726373442275716202353711916855081726466087400174738933118111760916684038468573958464916520840769315981930181152472222348181181248460057496285332271660843505065653683639624457221200003316244483779584937748419015766075058039841422341397155105361361879417458700302408863793396775898774892057820758373855758413027382067193851268442160065943474768123672116115788020804690643412059832284909172549900132916830311572220775597463976115702761414153679288492240043915857399113043629713122769465739451461185041565297316359388950455111006596920393999696562547616162688750069783772066607870978678240365086666262876655863511438240469580311855500969893512975052668236543924881543008107950808237577170451776633015131138255721983993685484773971644245169059392756741738222922949312105696512698277868141010244406726803954068127153281819942590045230790651497278048383621895573138244809228111175152402310153860412445024192654516664146493484477133585278375096668574868688816646240100973269813822982347175339595421881395145411885890809957277193284506977842522767490376789125465766538850473056429350553444778881896756753818723246377727760586749773062311460107418044548582358510295732645885723924491692210727337635517738044117458826344900799437781777139234828001489103194559388374806048581442208407442092188861222591014954640030106193500002148483002552716726617926085009759181866029781820072131315877721613328345170487709625171654215193914246761150364594939631198907001297199365644734779031147129020985705412130837838451709283945135684801041994977686716779448921617320599906399683033452370890638798042028662313675451253902657416494298226184715711603664922148435687720159992248076754830078757303640826901534189298278120034177311909152948139444166299934709976225900061367490551878505909582183528056666424884747250109123832510762548207900401779748539658116444871918199821777348182326198114812477336512892479661151795826642739478650035168527461078238431955016725841579094760557172295668962953777978705563363512218796987034031405139809336665253922015840332801407858334855216210645294442614450537048413466301016149908002729601049688019088281775976693694737159236180522326433318236964926415103859273478090028232598376722501762114386582155628915481678687714504937764548118233225851825635176774363995657942908533149267691436570854200022610970058259417663870363678879944315311601585471566523219238548088705655027396221774632098666952501348555370173864886759730574115608441345154267542729391770904324497540931217933653223761423322760216012143891663625566332843267936462393426286888425949952564878304393705495482049846912989527580212886159401337973392540115443715529697820641595539955440874119904507006302283744302180847863395515184208973049997659393651744980469788586545965052050438272302944366910007407439669953793690888484017546783082060622278928215074726228493440074556611502367405662807261153604307667130992893750134374001952935976663421765905480017460318947850492451440482792302598392958813082816636676557138701684803815139713700331701069352989162728538054713616201234019001566531577787990565237302445007330652166631695329044327894210052671970494208934607331882158784814248459257701635401456796808098947078115839148366639063030938838448136032583564652421304863393710807565472066605852951103553003956469672030833123372961820508196637463774584214129612207596927238485262694427537391545938275191657233942357443953747504288212922742272570668858294442135547412136641860237802298308886433801081112460798855235237723951718854651214490182742264414483584959006034808133169506696214550094890747549225960739890175400533481234915494372675144245141375221923843023496687178533438429618362474646068326216122749101677947639133909204060146866833327169636673720273194852682760407349819234357362869687009759403614008211381323091894214345581122687025405981515381408801932996326676607752194043948315946157521656642733084080656909207062281146437600321968107056835817027100374024038003669266240604456383535811001118429484483390881980054719185900970431684297255497924146804399282458334725315175711248216043861338261358004408520114413445569856838346330333183966170368407362958827679708240684895130249048388198056914093362374642795813771607219783675962734954728346365635081360812151331446539207112538682589436319858203066885939102039725671608941114479209680928443911926800839381802331766352352530322346813685269252766919524430150572325724050566393834163741416662231156830870961265351517776774594274018131606958656326788252578788680148452895077377604808923075564595744087833702339166809384005451400946407780045582610311178783057495473077145135962650965442797231397804116084718035409925560259879143776515756466425455284379575456105212455877177043384208803590951918651915790983212948425570296200972976084795112269771474689648133066262827080672026518276779253755710592999582421494761132197764912147630555819930971751427024749922858630310773426664814991212560857390374375510819372260452264261321174824283239619220713780070631817526283735669209855284369324606181892603043578047136342114090917012921074060482213485990368331139722710761335976230356883942612255360794219396596906993944635754216580188124557485168963274709763093929593187816723017715314437305756527524512648034849004131848441689191278897403244394336544289430976418000311775618569599581095333219689853193182664071925216395087390855604451175006896227392700137904956472698976151892147328084477696222603556185355080229393817511583839043998374999365962906235133326390765538006406942105280647074169313334850554792988583137925253810589453896202626937157001263112443414586329230687413785401388218812960225959082543010671316746068942208720858022302048666920343462233767051521254871907704638739363475615754639316665271253459468072372928525672962331390493442298960914846749657811046502239347147370376564872639576650153414457907585752478527653779150896028243216597181437624688434016496387005926905869181066438586697058594571722089216131063187723853805512310400376551346926820162102344970228886435535634332301759764401573430381128464540415040893985289321360267838503667470089685867989010454215176621866371056625421976887682647970792260530554799368038729254494024721425569941623520930653941444604944849271968180300600172078805072226331008064202324268108343023760025421983914236771543795328181168374348930979111574574318726526453636446752356959720203925324991517008811157130360573549789313007188303175705772553148101085291680625869813830992751837724623953334497187320388162475755481565919149362394673780837584552820353989720408398554226556236456448111401861816199012200641032261524618521934179085688126134577383469600703308312114807664160196389638461735065417570667105322508618965966916141303224523989529265677469962674445785515462606755532682029018202597950291548928999042443571732190892221818404058481707552465328938100598195030514252398166895229390604627667551929770375382457245568811834646177427267013338835094762973332197135440149139785119521898786697690483932872421998707361881865910908556019519492789103682555557045987693366219554853282596957496080303434759287965352561698963885138620074176932244558465826642611595767332352358487161627315012775566669944770923900048883423329523392153482345415232845075507133163454808925846519299957679433560996323970323277644763904283667699694225853440787792944281272017584862978159135919674662337399143390770468956983734330381950369055562997691803129580223607541808690707069288529906222854318334293698398528128635122284129643135535493544953826281878720253189353223088395274213130042082958318849903555222228971336680394658161517666946179796065790043822692822564384139858837767104739426879159629192686101411607383277757773681633154163303663602446964619675394148914886986412834689928702649639246558925342861639785160396660192437651857927410669662115794497928909493084365514816054122044753054200963019429872377484721597843349534989918538830914149049703835095678655412495508646861600445285689672579183245093233977470908980656938255387813927026265293131283648106445089033563101932060819443817914072040876308195524317532630338997691807492340503050658076382767215215566875299298597270697930641653560062548673851506474773843846565068956394713959345840473165163899341812434941963301375419107452274449646604583499436044521898203974076759537106961675075563361059528739677431475837251063704806548871190831735498219688879353208935570199966064820964160668429680051030639926817169637723904219004901864844618044021926426715032281407110908977591236237997931497957753474541989502309074387548986473331826607107461466717254143124588713785196951587915241808881443325292717992640710441460975866370996674481657779744433585718375228542742284989765537494348704102936670979050491979317061677227386414813741009068667110139991387261740472287811449017715179472593695777843654409435884111475667196242875194150658634267768888759394642507297430787327011327526902103476077534246232493729766927735451355082210375831946696740128270236153820032566675920587938887117613154740171733664099774326490311215037333802258244615893645209985428618873385025863303077997417957583696712044407799554768124043824491708094874648193369287658359859177994308507707330738970857320627815498513663392329782491417623930465946534948233503062973321917584480731038333995316862151712376877408057849646384413035861240189819996302996524724118688396327417246691556649476923829174432301426711845346070384995285509303501366142806121969482382318420838534064784722667433522984515083000445902732396390182415248217247122474983298971225150294251400008644759697804662106101804312083051661078568240900578692145547009651407417875481374288242382325547014849791440548072979813289779960434054938769978767472825671054486062434158463975028425014513909396878197054699705623584956791945660806859672959359735497646713724613009767442931756323430914439766785722241847381557410940654736290122923291496269823605425790436228227137633409947131781532469080786968334458564914552278863965706529530379343363346669635990140799155293087552860986935841935465098954977863235787544449756462401881859932508729363127763898034289609121100223303116772624981326411357659132264484593017138921475282507353909733773510754904843932089262359075454811751398463692203222694106996322863323785929120632235804721262621108577062052855297001098265565324900452642236974051385961687290849034214211246583823773890833309980596815531845183697813406244177571061572339206814336768204154091928600307044330458734035430199915119054228263719252404587032275544271847682654361839585781065158673881605400352641808981366107764412134551633674478368274385288344324774583392566345997060319500707929345542762563548129120325730069554642431116993064934487840727073049737777061767256728422854157498958472163089082536827300856680082390057004860905656420456616595516760646419296355858341681358409131717300335044507882449102951712400236104697281831003994248816647786080424246816394852571502403647394481600104540054787730294487372682687478071328906532464565800031110734343157192307109015786390822225782881719006234527760832467911434882040151679767711701725907295617369168140632436510996855833784270205559821805231162487053443515495672371898460995013720652528851271027736150073152353765891198131290013801672373990565848108327685313468488397506642524947085766394888710009648882557309106558675515853770052926027174374492581286013104642502373956671843603127222007112080023694382693611351448037550594110719332897107468259453458745757127223535066089172493200168764428749648469925008136191058720786696448180712954950890719051547595573284613014409751364125743328963108694339003529246879156533761458237928560962499757694301701591940463424938742422228081010320539084171616974143479925581313766864818510913051417804483252140901459273962023672658163615607504419536010962751071300335328999949932177294269082748481779928116132602415933681928391983088169824054227559989012831568220916967138798665974453573120224888462841544239195938689292352082419013567434799005861379442864975583821647715159697880563324874734280436898456783943893342666536991582377427358615232003833806920440671098353487011268200812412628455372040985836193702964152138981615182369988122865597193004754705094120899821472837007715834255498298189816300547202597363038153554391972213346154862067849604877979358249220345176963752605773093466441892180446129959140466984046581505121361543970730601583880616351239115073824847651960721740658935852732660396939700628577185781805785267133151613867771939022275754122408697100991014763559765952182640933565926514246024095608164492345886008669119373282685277543396926140456959864540051750660834002942613824966718572695428550422567678178874320436914692006405031423719906576308865278767327498197752634345900714221171902822834920551401071881490943095383033987252200314954867396005175751786987228925046810037050383461429725336429988222860146125729981468245136988740301738204777933468671283877907977592742230243018002476862520696301937931792584913628934315750224461380080872963451759861487325851489070523312619100303077173389310350857308873219066250587488909036112234214964831120150510717745182455754232397855127021606612424472269417049855957913346273651944982001580484226596602706770868869373922080536832387243619924985673639275038901790569265329107668469016984457815717955544109765565313340488954015492298639210996931269622668393549201699962378750703521730965042980577322444897451286661024148064592684788158597298224518499373041420577283830445672233387783722272647633141180332354665143297849503393742381113320709070590899372302954745575439362874706559625354894797572753434187780735982105295622201202005630412947051411793526783633048549546260526373061193646785565032919641215714368579426394999001023941931134582068011657979133357396373348157497635633003898216531209511031716499729608047932455805809855083410191277922317087401064234526080462610624899493026119162782925240406216368728875989338220317543489091009491136473060090852117254350550762578230445831496358449604262992490154289490126802084323892001391730581292665995733968545285406647711462352976262486945064037688072903184458770124938610532592175534896730377455568357174912665916065053235148912940397371523102451762841036027018532651889687205919810712680421779755700354508641239415411458709819702797675586795853618625221083702805150164639926818936088375078504019807571699034625146410081871848702420977590586866076885583550139443995174612634481028076892178031429401478693667695003932600420460807657227794894738464441035954666966872837200987708885853543843325418596579732287462720919901855344658170006249896343423495006275791541472302360937598272266546308145106282413568710379188933708267507514526276757570064646289680922880650422894995337862222724372895641710454010674438984852548978994085934061705304494414428913812230196867434237682014225866418229449629977428332375474658914268173151454640582334321647316481023058238622858112108182804299089435525923094530568300458594848129179033532533662556065103602299812510585166179053475655780707451809161985689621454056345419199340771761579035663814663184644879229278754038043287135851085919754836236476903960727922359463207793189074898149997855420076047079773673887380713644511300631057086363396165545754306059400213651330068703182189445982049406747223258975460310480635666712465987253099316120781819571902857332880539408182859572796780641075967347252792768377924049325801401704552628315526807012598998647156018740232317542036225529005883913643272724626868817104833196659836866703289501386593466284399415904630635591480009006695813295853414376203829166162498950365741113886866979026137915400471189374674437501841960430782261499821445445027019681056342488731987474977424877347098926033165450092955827834619511280955296680209562526490755991774101247796223102714245147225020954365261055322942434185074609545581164418968243741136357780267657619885046326734366487278313601615797350321549149207219627014245921480030522866654529086855567079262283670184650124177171195685003885340752313181631578735501517547370407652126190821056826803342423757441385986578480217692312361190204814360312069748112478534196991166931295871439440443383877510409871935710795858862585808712075883894362000509959893383649658766136008835009154178927598470723546095290508328007762667993193959621419584916667670009368571553158953489956325638244780464492361269314201563444286564701951165754582994935829795018976920076014805060838002116217299833012305745483250349031587753637398310299728416504262150461557590953674751089150214960220850760654641856993238111954185874251339119882282141862280497947682328320272861347440270842148814902420215287030354589607708090097338257212859086038798848986347456843085145141660365078943277221402361621322848304551524835209678589612271369029164308910040453007908693375934704850741649698554549070373092745671904778298806494085647077359506094810666388857330123662619798923014849300869384051123536874340169736074250035240707849805573721781162097638004698026960871858557577476279945714256954879707119436538755649202619323677451853588839793188649878130086051128537020921720607230409312993130031769130828296528563374255515769185871235892433000923884022255468725805997771315362011226641463055021596990184508045421088132621589772437400934646812039730338481332765748417182474032979981766623428110584563954803327441531633146192316105041144100016447529450554488983578611244618394573943147331158984610120005748999977970261662700457581880430810461688992299630734381045246954436937956139598061531127360998216922924791817327745518680850529499847871015204526273248218571337235277048056869311865612651914544599751176643713624921597421651892365751762373453775694727619514467383904567283025178941958675194471895499686586138612886087589255420952736798669923185355850035963679575312707743986561305786119261835926400371555612535488846858054444158972165547124115133366629790552292211229542079615592335625322643490584857408150576081875159586701818789476867735721576309317756877724543396469322645583626326604330137003880517133002446516360327338119113169311079835057664427872520715347367258620130354745292210912727536309651274819749565655502504330664771125213450867076356983006296436922528387419051202651462639132571802477458730387262405514033570572022425734409588981803622935791445610388358584544814251986466050537769259484377059562032930859900637344319481476866109039114955403081842183624695358904303056311636779440143317585274279590633120885166191984418054145741967734424852548324477143088602283170507736933491431511301915738017036101796889285619799424735900709478578086229529437304599241448974357184643072584210075093015776166966694231882958479600238126367875097379606838828570182299646992900737019563095921824205667889223827633177184636337309783018647416368125852610643870775007364446458751489463563540264935549562825976686174736492881248634627244671457924230842572317125818808708276936184274326369586287070881532460950299244276637687631413151125734794235016044741073082167956219499133764146948382400700681239517847825151735302601885050166094474735475528430533036402681120049932996684531744361243389391111135714895073580775428432073850299907524697232118555564829042654447139409331804093045025385404093905779060202055260859445932096615114658057320742329974332510415527440730370800830832915313530397500921293021778259764957546885690487078015302590765134366621258275270159904174211408994318831648946453091519159015426520693670390933747933904219101332170628970155799067470039729796040755710359344624873294138148209419602458176989470805527081073755537795334323845691463710093601654660879726787490567819969325847915819053108370871089835939836041358454869626875297112694865432057570544534170199307116105091282780030551496696761471423659005036501019474067915683533675443098458342976001240918080520619078703188228485362174268993706464466745240119759735834507675896695316475469568018489528855062956045277503490581859643668094327005087541233088441931133316315470684092822173637980186809122053885762400952394261738972331748309159782296424277799276808523452934810313259107541207642711181534078348936818440642911113546015384670765744814410239367970882243998573819574449677327090915757502638033993069068312051775231715235880631008701229984843903199802870928715478333687142722896720862341079592978029178356601120794487275846964232271551756294494407984946160611115420005965300261997874130163090901924700851089618776696202496185995871659848686000706414848519778899830387510567524530186068233942490707607150876529912433529927871796639816162523821731240471082181445499089664497174588356536547811096569036629660914577145729233808660918124277360941201482663059204527424534857453711548365131228512504119415071390472225754639612908768467277538113161569229870110248069101501696672860942111032444226581900874056255300073289797164381453589282730521259791614202962338672808784588898304607181839074109077537957646141670978668678802230385392337258327770382504541636943183920225471637349659133680056674872692171290954553492863949641311450412608765376247560016796511557813067106995933778032048160745743030218485126111020627292526528757752411543450884779601170674894257862380015955204561621753323364541700840689112402933043797941223247233420841919991264426478938251435417961013659368978955689875956522665762873205560760326989350936362831881517731273356985675076254291585672407956566189280945075392105604337605374709200117881313729916405077518289415984589261726104940587832038515342966495014612261362753135564592492473768999335915984054254380906922850300197690725483840243679002235270701290106159998898902002210068753782055323733443255034724511058198722493304861797306015411871136167248172694329954691530540547144277545155494169445698850655954659147733545979163227088205906335714736772751159770915841420058378449746958967613555385454065528329414821895045148277705180884870080060543982713407556291726896281461328750364217755433884048580434012258074472458077096512659891146984753284224887713562073627903722599206397664941907930626773072518284853596244549982605130442840546160290486995182444854585295633055210337640058010968254383732716207732592664368383830207327886273382051106369928951487666675712244333797166417007862233242184672379332998079707286572544651883443226716997853303374368100384181203875768228791884481940257531357293203812694532575364314628261131323759489686556936580796789039117291545715127497232396522288512657508068725067977115318075031839497675606991105273602622956628992761324575867980795891619864803091134188941865714107315508627179543271061008376230577547411453867301286294485086646976054902174014970558270143181801643768375386511828799806022680683955450528463824105763933081886736015858671537176252413794531118397490487027102409745914443093393377777669102329885848013432179932329546920059201545268558322981380495331000235097969600629175879980371085095223386806452817962093111337072284035177605581945089299257540602304109216410414669859282587514132342605058899374255322357728101215948342395341974446649860276583206121553130581477067124857963352915261770406409925022401246042444454907010294581718242000198435006197288259038992179115244950862524836972539126733209321965792575082635810442740559356202301627249216234438576540787127691461986751029261601693591450233831119151829111116425882762895905723483347021974276395253692657751327968747152474899888749734333714711805534091887278642226905820723560122170078197150547256481278965518441945013011953390358417682088943152569332379647922222222751651395510693946908688367575261998939650024576317860983339825524166510521467568094973188712259164213064281074309617164737876051624631593870341065211179618952118072440520271088686946243075755032758831535259288846718235049518072482353045875958177797996471191864595356411461836084598336058382634266252552326817592483852173090839531526438096812809749549986289387383735787598588996355099220325662270149613406375856162613778705373372002225180288358078265199682091554473492639659166367024701770147463937765052224529204148239699165407344042056119569478311848033447796680639302659982667414629798634705844510847841202020763113776087421835067324756799677335397352373548763564238239020712614219424133929384489327213060176599981032733602474332681479684597744165231686382337520705572487736460802020862182782371754590742803199489687433816661703511013823030020275897409738605003693474318850380829208084917812577751905892921444343552711341828354697861529655845495156679892180971460533167332168835085053389561934666374328477886038614984411856634194083225664886130685565562820121235921988044561565254665120889260024383900935795854273889419889393276102528416138741128823854726950280333761100342004729333802655146024763139283203346556300069778807452393829214560724908475184488560686853512399669087831023896666204920706347520130953374046124195636715168576300076195555424435998302332599060829755592726939489389681909416065883218334885405947963315657867752158804524386701736312632964670801787415728049185566559335146871588374696169499380255198191392747644814198870229968998768044758926210751642342613148326200313861650281927312508477362796765546180402098700659598980555834910498836222931333065079144325605220291862330847452707010553485455457743390052437746270496758811416802461073475018962535754075309871644084858483672766873158761468570897671296911401001728971178121200169105922205057448768892028209208648450993158862682544761785141743538116540859686848768413100200272003119249600697372088384410510585624175602793039853897549958923712666263582539993921812498142936800365104971679458409794161403234240833832143880934801168146978306456704484377269645283527966678407178559064955454693422018069536525111618855975887487034477972658201064448224932306680338111901074542765384001597165875200808193674554182327814435478089746443300528906624400123330600624863375542288813536651267744741928698423875141280047234069389921693920470619706544854434686270778564299993489926429923485416611060828175333893191216712909633128101048926057930264285340686613393729411378321558434892233332023692971363029863492494141314315144356299214854353293633609286822047039613880492056168401300162475470512868177592385940202956055064010200491532578675691097885145976202301143940045434618753033311107190865374832008354302429743827771786153491585499885385874011944686221737315482083694456394294235492273924901915835549496269175343300450856452916709392836397868720510752747031043352874830336702564615397549891474461866943696865886531665758307822860414431965870031653519253523043305443828581839177641901241695105727507272097105396300944674472121025215186952660991125068561996031384322883579139271109393273002405851703158885883542793984099440784064987080359872715713146885544892724955988110797705046834314447057779257865677085420638697055410178832344792028602758553018334534118323167825244368361816796080352158296923495978857130653051873406949923851334848306657675110787448709078135230127701140670554736304019035788375041197955031112288791686933455060310360158824743394361341200002415721559773238248822477363114534706795231454548376794255388905060332674602053959663183516184042487564016448993522825871137560300241328501779721738462609438123423385386016374304183803662847880806209367093795505497575061455823392823231674919006024239382380452861392391627134777986976562542198101841045500987037857917729928288029989534526456735707246433409036039846150883739895525818772020984796001508576974017785792558799385829306822790317157301452567583038269135056271840376881969847073103876000870003661933103544271054155490210599807248929626493330896814435890056428256666612260257607606045492243527053897591045720305907349645599759606758222382080687213073592785790981343189147592002880007113562891093166885284274589816020686049050294046446053828359477835419299678779912028399381985808678659124176908761345994840379878276222227984925106388943300477023329517354411122437652206706528461540754158063257895517988897341397893906698316886568748899945459528873659958915620275331674991505521504950394076064412008686604549259706764694589871136668914836559911167864995499827480447940974756562074426308692032083102743246760073202641870538286350621322499544184585451599016997848896683110723133140699795749346111592199025119450225075148403310087468383287480762702565219903435264369152319050115894625665682698867422375507964543697869894478543997617097677908952033199852281478507388204663094225046913416916922985675756752352841345965088365460086906971091024979931870415358900856007688540605867709697883953798793414832363164943144444028138439861630979770905712329504838630473019353911322458488001640418185639364551081835482262752588337548387935733254521248332300818219004123475508448225745209293680652503486349490458876074635825315952966907197878369713368978105121566469420645687738225878777999163948619720617220173759781821725925640345377062252324669119887991265501708019969620703923290614446392881033846712419610571209323761364966730577418738234500533096921429128711385864144360207644093149718112010654085755013052600206751337062643047345149749517857223571358578541201913633374267331063308179123167584820463347501370075853067032254168143873848953722413933378989420228733424832033920055816784345846068011438639286148994358549530653255932070468352280716849224955687536491249566917374464210045937493945326549812884106295273854832873174450187276278638400264000648014559137581566538397192204326582397079666118434325923243477728378172685510153778236915927228487312382639548331998500796640494615466961138390455286676840609878240857496345009767256615791508902427841182316505225300024571688431642210152987004783544835993123364783648657903881075505182930840731865043008817041912725828720995476168567332681467849286124051522098439317018678654454467197131190060975766711657349954936842701131351933178678881183919789932418930015112860877650760378753943950262106492979105255134965435845701811321174655110315281578050598564627743192185046826066871285928104840908461072925035485003199012337782224788031716691697943348631417479082449631536365136572220986866467734379197827057294986557835866612111512875415077457188197568982410451567837246530156182306881162644568435699388293588510704548406196648523686256054950634807389176615339559610727221872750972123728330862004728959629392172451949860860356118136791275051520610149836207309819982423747181391098874169191420353784168880738871160591475550674986230440034390831614362354628939525968116535077994689112491579960223758472263425731501058938371903832885703486880645789890904225125465258131606038857771945089526074390610580925486738225384640171706113254436547382073550143666445862380540669594572131672101094689162761497559446597625352691583338269743905555465254111078373174025391292670528059880483271784321451088414305007475472267475750820934844205953468560859315218114664215402601861412647398094643375011885195348766642563756231297432250472197580811304775959318648296448981701917132519271950372676205551062978122428660249585325651176351212915867040555629780010327619800315627503848734814509820879381926879819949103581756478378758720347279429300507767445236612664413390438163531074787847959536360373978153783150338861729783407999626250574982810478930645687865387427191319932170142061237721780917455862644387313798742669378652534997575142465176504996405597473798965578606875308509815427151272592244893970792189153338784629484184986783166227909588953037553272642984004615627291518659572025892402742006369437050174275010612771584773428492882909041408252261748576276126271050266802250261393231003978459301347228534891220775549514743546879886853872375071874298070566847364694566138390255865568376855578751835840217378575527267229884571955741227553455199811747124144686875415391480285625457506436200272431954916422529392022944883764361721455933732112499769103041627286556843520324819640875258094572784637974872079709256272934047119251620635819486358269939348694807782312886999766640918768581411210665562885581480225628011854173358966945351711432958583701567485033228617462138833470884216771157207283024367346948925948032771136813754609172737597580696615892995377359805683088154367078187659027784309260855367819112438434512434610909630595282676984681229377437533814571602196555056996946922767445288374636502447625743766667889510223527203253927472140287824975866402505681762141989536308711087587095826063711805631743507304042231594522245050134754071382372590517766207588906675452701468834942438540310512696927148482356688290978292929471658822479793157052162901852496900825228037736029443597212180317378811003594235486896180575618471441404008886768406702874716250682909661407825930473709077870325847195223844974486872212685831097550152644083665121444560414949559882322362822838975056117266356113661596386948252404612945091597542947449585639616698043537996306159207614085094093688677547372130877767776183947123252398680650270355763794733372851603862166540400795684478349096560413166595209584584412978047142848565398655958561079657169473116386625891502132320432619549681592739680045721359966125314791403584084551250530246326071435926061663125667749783866547405260906870429387725481185508004498819718199745081111470117553488010820479192337925299954026127227090690296567168012422575510567978519587421885785494668357481290067352166763450727632260700498638193368716904368178090266474900027600438980726458752285631183503319420864417535130045620960994455800460219029591719955950385064796844976095455391640514934432447165699064526652150882734887576629234740464905606645897612583617382003459078903916273605464227170267526430361739806064686453928781566700270669185325813653260562260592866940970680980657798085019529924065126689984003570077859027485901702968784657775790568984115525729675900619232548827063065942833253170375089717373973973926556443497904578757168192388803694620217258815384113151330095087924854676667305839393445335123825329088643985863063569253418786781757306493829229054634539355840995120403196270100175476383344566873869450585682952228218799683716544619030070760683524013743574564711254905922048082061510682168660589826356861133012504168507670459567428987384552650669980728653951003127465886551926938190463974644018460486316550652015973133519359186701043608191222684980177245798143443504978675452697809524409272434682939350000286726385420624536724461930199469919192160341861960541772456155816126631802762171169034877938698082063996764715694464047899507289229243352531867305958645206901713331452870031143840781850650943533562072594003245154109435556322120130674147169469841586862603622651644655425424217517931303722894989706289513257653994079392847914336208409927728053854846232525067554130178903144654984424944800151893437713712457842796201793304243746921674491240114432574571614243351537306363756237829845094994322249168955002904870954568406009279028956116397468829018397363679368008372227848897373663707339264675609321554695279489229642341304275666637371360119661316678633094927341079189548280829758405799353094724408871982664487722097414983083651859811841344446136014648172453038383567959297839928044808614894557055504095536054655701098682197127668659649754750699303109161285822595815519916173742291309085764497378955020697844323453046942478366332754916365251350939948007878768840449867530906773095541700382158651162844770209692638031743275501422574608767024605923955727447465477929486770252364428822070112824751279207631069185282457995173856392106253968184168570175728570760806340692997098346841346297857238606346485882943401208602781739178498050173989484083470077509670630987379783718651266386133811148697964731181165196621120981556000978660184156689746713516371713783991087007352965693603736302702944397530378943113046558448589564037812172430509506328726526104969630925593713268525139958005165412305663221577579101148411663189224784670359390257918962702953265497340327192479087938357013032340069930170792522866590452988489814695940150088765962567333341037046983770766922351414521288797385968202916291899220720030179307174385498985170333841698647540200101465170514529887497540886022665240717291165677947417517509355587792576951140728994827779556170858029872508480598420099821438506463873135684165471792826896192902331667464217182865633818075218508704550827071125923536654478921422525378927669897885803521751503680896539975662783535768126288739643498167130291592113174964528726427414815230558656406397707502101696816992414866785678113536328346423026842758113419130982082210995587458229623613146140452120393311653816875322065612071948797403575460155562423702820051927169464258118666025873478142444024132767999284796798105930120938005001811286404216125069427434963328299176203489000561682688737062005593261952293961110193574338290904550910609226684944357541575012124292398780473321327736921759587595958597140818153347502786336613455046297162114059747176573289551474947164168044513243863756482446499781793146527086250498125643455677600513009618759625731101139619247724317923083914157627486032453936533275641919916138129705224915906534102597275598763891526991020576766297946182226285973012287956388757119399189093696704259855787423633161526117514055708525374649817571976447903205780731260287813149155184289685720382816530060662781544543283859171731235128827950578322443380403262651109635853695686745481047740737982591548902295970269909051696309251057666465512838649411400774511989128872717407505991415818813748122820878379850807441511029907086198485096854776975373758655261175461274541631679115185791738451167850828393071677552989942188217939077876176458121682336975225303170404399045184032100593844333191078433977239925658207238308570909511474057350419993903531745269246112584031481164847272058484400057907331503109779608773489539068118231348588548103350102477529557918762127370613699868105455336193756148554665166411279223185156366140974398214832258173489872737013637184483032099294178742774242333169047895545600448479254058711101223738628744038324395731248738714478906643293257049567728622391917846846323494258724568109854495302640605875363220094053172929421667320113447196939711854545271140543176760498794955675843880958270780651565388041080717946778562920551723335823694207193880647032430705586987306564228479301029472517798381007576896059206194977835489713082822071060446362307961343485391311006791412987591156202111417604926595007472569629873423482385777048463848367207605901537667792707999719054080181805129553491862156541501132616720288603524321406176409908709367756876639320696775849918690465044269617072071052368474911310617955891520906694041912960444123948491500248454813213137982516007531217840246108535831334225095834465669141305079935198231199224413013369614016938649248250947981720473397393422816971424611781866088843703291361553428121783676515533074665826880166077687770051380151436688682175883697634822388810330908683244469223151676041200864829453568917745374908287616001936498239584356113498699079277570546656578056693245562030980288719924347143830541319305046237121732868146932295533208353446124780716254662732815949899832347035552120159975492904809167490750347033912579240052049063550650079674750800155412007146195831173864137078507469238641599379136493057987383667593778309927295203353317977972100574456673914429713319085065512716355965889357350373078833325539072274962610118130953908881884212605745369445784986483490966260709527809480843142762873735671285348508881415943200570480531254216865683144113182558954317284400321233269413695874018174570210194687474722399090095965547346733518327543241830789713498443947102683826157498729752448780554424234075726561216307358061875598484007080535732042326702188404574963235161732474986941288006649203394649597495087731387087076651682591967249877442331677389617597772069856293117684447355655219367854388313136685248283573641703605595966427188180348392587829814862099075971728164753387754730965451862180573086861874166630676135114269167482797281214828177287520923350935579610608617738089871793589407608032250033729710009811087719213360538869965558411828675623603797228824403582649793139463494124242799384090377264961873769487666852561601198543041494293727555525355414601210187966481763691609519546340665003668452089065057342319204788514976729286982845015181964192693981638310345474922616493724120629803515551335161745723262374268348432379352654268828463806417214813846059947001115319396235134599565423889138906737198438298610180960147730202780130327984475242205603166147000524702881165040608969311549620161665965266387067739798127826787786409853981893485300940167241961864107296541539563178775181986172887950682788982948300648856506009355293056071168451145805916605070056720444824226088764530069904718577920801810921689334278457497234140111479769837043286835972759138887883422456136496240512014783688824251837659222573476583432591519125979695485827377740908039232557199342690067371428382190771432322782066802453359345522686555047708436225344302926586641088902577360741455600775752598749976425269622942464616800456500964530452368395563760202372795048008037439055051939220101834982626890348383861344284298115623335843168061501935563333322249288842827482596841971546580296508294073753768004099833057840849741266162708707278295041999432318282450972322890549057679004072411853018381574248210921696151193836268875369792746936805158227453743469070239356028690199883550820248559067677425159143136860328755655017073376589970824071954616776752050650964392191683939434330124149200149269250198804114031572153302040340995871994428227373898916552159055189331911529871419424992062255624449480314456334963050407599535850876335382306052166397025937396757642139344409263351590170498279999633386851149793715967735106136181639169124068333642896626301052248319144053010241982418769019851923263010404788767969534317205940717077059795735305108580989337216476487725875807536688374213964881793526628112172684347654415019109432530492871752627222974039897348149133056518970760589680384988223744194242812076375832886973746380741181112371770248335200801748861469315365157272650905786156100127238743649959001581242456383332463473021035093968502216688054262458766879474540405739830717049653249613239278893460369233697628104858270016871925253752465207617760631611791188662250236442172761245197991592760195443749052211580184200286966576870593029701587710265891301063117603738511813628987645707660115307528338062075846620026190754620797212313863017119961304044542354373322493140890576401800457989913360774368226428903312094553990723322682681389083781796726410070110773676010197069093314883288654272492678607608696371589886106001364901772365453257558723171012698275992086116461998445422082577937987288426693513357862697300488851392637212039949309244765876302219929351958832184822789676470121386327763889603119441639924809833975576696814567307973838021093500055256463591538170905117034514649503638692150682843947784294666899732248196676233812200579949135751949105186549194150362426161812939685136227453200001278034608767078957117469090207467612194536380969225907969099556056486348710263979056948050412118560623213956458650970416466015288103773636063330687889853350388568892495054890020650376173237104504356118766579517951088706562067025726783696474251590437948824487593024292980435149362501166207459683031820105143469826106761446854085886026815633271495572072044967045375223336354713668884417512422120045011370993634721661069378783967060559674127920403913670747452091947214627149805314505465372050508662993583882224941184273471229444666550282498488012562665579639777474972357230923482472521755114369116585206283231294657424459131122085542018786700663409009213274419323963646479038164169726174065975577950584183219416238799434759931334720782804620397802876708221548786352185148199597886894351783590746245825461934584045722976997035478868345471759051483698907729051474635065424244057656886014193160657076996908945228940398166669867360073690151088117608311689941669321155310081114481579787017166254212129860592012014020565379624894933621068528450858016077386598336660208967678779120106867591647851345106795008378583095623057688947484957581606518882830002511112497793790683584848267928435262539112159187733299326174908198005161852073818065543307581783950593501684629861974671300944907540127782628103330306139182261112255072121499120136189674876462690822496834145861673064487055045942622176356451152395682743022032731774608099518923167331546564553253863711593923483558624935228503660187967041621941672454312876609351268742451526059642030618952318109057037979928521930534052173828927297235243852183362381183074529144934423351386776114105186426072370225491710179199510676325527165299491231601664520134932885274055808825100019899603336457447654041829633681024539246160385143847727093630621190461504516652369455591268165199601646953209089179074692106817421554111384340388790426886926137532530078768493835555039898842434349839271065158444638665795565082235458043955741849890515149512313618814901409404894708363390773159936658303001496110032918264090195421490627365248551103300939958517961488657450195807960822131440155526104950357140510364369646073759371276942269599616123423892442778836584557791173168848784280044895245895053059151123668130544022640976031482214811520580881841110964033463942210616957554462243226994061939308830575201375634744314480260330485752741844816052011949798849102290487202115527150684699084208435637606763845766310069421420194064864635992378247780050495600272392483615430128691467536491708718828023966478242218102869041062347117957077560874585153295398773437516653692906031128978114387171654092165557822295305433332055173147902264222921747621536151757890961393856518510451989871172191790208817652334287833282755233829354432501890247637637430726158031691825750513150698509881465523730318368694677504687713973458167891850475981772430054169463009247737434253337031126219300048977534660140247503063862933893722172879979391928923670603368175695096132803764623331295925843351970421519037075439196204550854331588015892766768812404282484541376246114179444471568205015583357586189442175051054089977666563157589256375868663048723254669893051324481895465036522768364581595308512835088743205581660413917672400474820552679294827744278924786126781328734618372831469132777651034413284830753740286427690641167916090902304486137189391920221837085724561019416521863918853304212895344899186665549906862072115194551225961263983473703052118167424899084219731546840393500752076372015733221473677175093073270676493834810542221027391942324072277094970696279795585913757212954987710864872061766089327056913492547185178509567259944965392866057456373916973383726766343129808775430914867168351428187350927770135858657270091399402337504829456996169460636471679604969718931049972750046070957523987292376338642503289808416962705817445935127289973558443352071656950333611761453673056967319989484949043455509758349492549900774282226874211849174745083470227467065875258526339958097077177429344319770971775771504176224321294611734644105147564683658874878361022465364361431193683345242953250524548662776112443706645984362750667839476306947679972656811302743047849311748795021742738695701349202435740728979132838038424925082488358450249689959327020951724002902849507612979992043452839603352227542784346629659547039622657168571724599235580591111602825187969586865445136554106585113425804795612108563639035361549396640737375846801499726967530354502300238707697379233639177280689152835098262953113391215160121116669353115813343295899336471014919041864734116864564910446893512788021212700515189372883330684320667589239471664264756220695926703943597407796673983758630720470286911972325790612670722688104523939451043417615166211427059868463800651597988219172493765009150881611058421463631328929306573248099773354801397887424995079525479137130501774193533791420174846054296174757918433109801698991034666993540754687729583781982741101933198477516157440565699379536350597714033836218288466922273142488949091596661674664712488050008684691265731897066220172954270400570712178568127804438161669507585712043560352075588690392046774837732230022609079782639666322155343788434337702448743828476513794891622149423757043153905607531069346319181262408931155149774676640542302767207196972950828961207768496667643970180185732698848109346289076564386305152464700510595812713258265065968297393773409467782675569030533084334737340190050129158300712310235977166521024463257293132205150809683833030556022383564986535578177109895865272372193053897000331481840197955444660730941775922291506600482929080363117518259362970404597338621809887037418659783780955749019188187697804805735077238246126950859703612381780813285131264424122906136073627229027144317017276521073757924355013143539246006777879101480630306715807119733999870303440636796275279907507513228474874572431117900344202174237482537538856731337090788071028806705473492341866878966807794477635898547461542402095728548874239356245584074461093298524888385744764338730053998183728741840075314928914463052151662615091131817421145683659648107979313248314452821742981719504802523667565195233574627760233314567007813657232545024726236932777264507740451531081270300483573221458951597577275831439430168883729256826924735444643998207916945819019175069203809062921125832641499920693770315364952002461771465409628859308710165745384731144615685447215398279887478173783948217701001483199729050122556665862419394899480758327423106174758302820417178031679388200727344809441312192326844371167415195462289024013245863778010116974965928743964743822413587698925966716996494107978183355147650602660151279962328759317630460799585507742281724569151640032505314607615338880569760175899802284391565869202094786438943862835949261955201379584253052059809472116264835357760725431322406359076928949844718503291151426617126518560805276854022272413924647830221006305256535421159509578674661367428403021716605109240457475546357868487106781611791686632767378868071917243160582312790715195011367215200805477921572729910717105675910513941531756219146821703083261577917260048947602414980239459796847235085690090749857621360904512235258503266070651469766350969539059870701485711527049978598119515609573339019048562225327534174268904496502518000435354959320210274872973454012652830184366211039770794249892712216476010808991672227822411335961960606177946823630680997100416668725396766786242227776706226341188160007970018216550932482386085940453748134072982942616684902281339313097093666628528554235887898149261135733076706101615228042590095652895702977771049825070616444414707036724427161344506088862323631974216631851890612180737812395336445018458192921737506437696480897267539580271656192058127504167315671378843175306979591666108349258381976721636251953828226369771972327882530016301290184543577924742273012127583770511823445967607281342804578293921903291265582642651002231930750197487525445568079834416313303418105757313577335917964266730891282100964816977515676314229719529712367328888677483306968551922316882437019990550966270417170528819501306250176507538767801201346346720992454596637996211857103939363300914864052914126074792442148388189289319729487882725110870054038638814585725958364524079992252988797511205202672856089853360494024344139403528861581308192789056997573646981994448944892503415668242416710493685062615875747466396351816051432744303402136397201950251864874687654747341556836489582070790782270654316515986468856371021211873843360122652865004067263762235180637865398591603544253957321645705009169325506578333404538710288124283648969394690825746212052038013340934803020114355775721179861785508372020422350436480868831455287492904933383373049546443685145698343036481271015989599633197281630045710439214034527664606612200808198389033539560528374596803086680207663674013480043557781035198342024899797248165686133260565024158811814280250619822088014112999278175393946705136491480706657607805629372521956811559647969900597848231690715084818456242170019088407779472951135310771924574904061184769722437841129635144357805078313339325619876207941607951705910468235228616723223192438432264484899648822898612585158355430976107073897065248435896440045718447727940882719580936740156672565427043016398847867386648129258527084323387358150699900626628236756700874670919221886748486441210802513967001064381929826912661947760738079844711425339765239595020004112993224436830028491459609754649995063255409995272336657221530381902137987744474882115555501779918546769429137584728079512767868116389851458419341234101491358325604616343093861906528479504438439069337893355335232988468462211077097080404942647751172365442482584001828509324118894234216495601042609090988383786826606056256735295603878289948537684301573649950129488671619225457563558100493216841152145849869124609893490588579686161932524959081008468106831074542034090411234526525072844690512368239141141337487240532033521431905361123884102292799763103443771128740614120562219009245969140039128339845497539964413461518382501532628890837485185292500720228907406364013747342136156104210122025642711833161184792036812796929457421078938605552668974450025007479268951135901662322282617485070867830966053057974395084586714787812543610574055030960154076506200355412788286031467104236220069558032921248775893369380497643519926615851789721020763558147230803698324944468995922296046825057015235869914818535377693203776050414424601335845080449555872816370425760848373639163796788348046258280505946565596747132462597861411043788178632163977440933859675006612206956863893611792846112362980583110038001104950007228670988115922065279073160642497923828890820846688976221663567173213764844288959318351050786012722360335557772820547991685958364587913555413350840106197035042594448557109175190670719422246736617519278025551334356292545488683830646295150882446501009139300258365883288822905892528817708434366805859525178796946655680393688742966058722889738696090441791809715821218027888132380906186585879271287454206000737998697952156958869873560430355772034948099396015487351868656903962671122810700384529927859228531948188376899846086672346600972309164195456169504487452928048358099044066306955994982746447067193331632740036503932294488415105310916265793051518105778536652904207893039842540670809957627492920637490080278595763853224292769504073027847120316469021823608442205757919806426185460631981558024695423197218093110272090719233310830945750435231148496812025762741780429169717397341959156523314908183363219131260996230007087191117332633052229196838841476778050709275755264765762486892172641811366638616922137689363219675320112988847897470672998092006954492384281886553355687799807890833006969375563413038656979102101622626476744164344579011618085640167701543429740137075824147350310366333224626970592654284642739678785338369250474088948554233319552534493010509218688363593762509748769025039346759990542378490157647058704190702315898523213732890609961055124254675857711187895377469932461674755912961557408264340142470734078657837148494896604686026814474189291039381126771927124465096959919132665540111718121031596248419690021038162604439152571207439428003013408493623242872087613350428908848010091325189136842803321139119583408367966157078658224605687032249442923885617253585125340083112681894783632220964907269059564760921606363851096112552225804625061787868588042760633033609458289339169032830986026631113268386701557064865274368649893751373633875001630708834263032965055502095183607136320279722752806789675640570432852138367659025143996213503269656373417687574420982137220321499240834487738856420419800702112173018436332627904208673066033823325522210844370371534535603510897857764491815742289805690229555583096876143151782551446880222615701797359609639440413481541711127291570976932198307908233921663542617890873692330539057636799836727340247253565199437326866951828425743252267571202305530018568990564399423581384589057876525491031495588412086275691375891340620046056752810060359964118609688067774789228635951548328518872923246700005696021017261068135647164796634382093116307098186643368092152444140392284808947150722072660088089420852455643432939723496154993920548459067203390782908187385443690854253142450065002761121972509291915701059901028006846962255394386803373419043198225758265654268427852835674863246065035613495259023728573016189367216325804434711682837326724286061092014837228606712605301242788418129186628627174236197978400238851376064411758635755656042984323522521413525537485093580219067677352872802613584224927385664147180085771560470084295604008250445047972745156826181166627746493083239404965242295365213300050709888474532205024816382504879050303442272542407187492774891616233247199755507543209840880144336820348696845914632724652451597844358898512193778277342395777741227608752407275701580976607851493810836405414632621204542543524708400774559942750991621797976262522864525394511865598875531913853932882134735658980498865688798173254417475401613294972360729698932627511129749522347022533831564889194736988221016020442566793433736720823320843330066204594625753966443715100458852704327605209393433457884793870473015049731243676960839555708115594074977266816503848639170795089769899199154497169461939233695151845243091737727391547484257508476806635955863977613431864776682570721725914351094392318480146134380265659611018644317591767576575659837419083556041406164429650485734067236760524384282274624522672858445864476312403608489749943013489467375297952477028659143398199075961638308753020645970451332400214775189722901172341603524944643024753453680869926342758789587659633736231848474092239854161683387867692333376046815971755538065128073686651156458649013025704131121245475811114203866056844749467724582668848568926158521793996341397341691445962286537675577062676947202212652341778481604724076982707932394196998293903865124390901270726940139810803418173860638240893961514630863045129067947605529297176956635038086763868692061388423493425689179283009184177952444152706929113275894290061701914528792412346122402902103834715036361440277071981953121260335110154132556695544195201486711311569222081737807234296851234053350029681583689242289954138526421692404430134604442691852393292025168949648961574703763611779189353352300720810942701368981785402227758888109783274981906082059562596771301072754226817136392895405219935185879598334161677296153709024120292816338740173994626437565204843386571903380369162913174969018018017756746645559300209053334073231579251554564729880273094178844568248974079543520410187385510055729863021164401768261199881926496234225354536257082085462714171250418730376611188530490060418408192714782123866844361166280113960356038510118307043380466725530990862690151050559007811400688261167851277386731600970816109548482737127782108387083213336192750035848023786301739079946408548494341631763434473475980310997451548026542642794526660225302974920596719823437947491096818935930380335511842415614063855669225492475279828833575406352278061443131757475696981924251993595198700986281729568264195754656957678471908423808955926661988139599837803086001818946735659057624343812909973129139817549528195140941461748461368452363436808835150282291308556269935377242871436778166989898239817995632600825577297468522454897623229961012481302623128719014745263524248534314189054861417736218788354324894926855261746477457071173332941793186097965341481992024287440034588185064909498882118806029426232664522044922956496915744856409606089891205389537575502964746450631940310142274305403429442226644026035964293281609992801939738896796577182654438694342984998561351110357581953719214420768397161829237437076662022359505507748120881010982423600902573015769001239659158710546372524912069949224349592157600302221701347969892402246351369827179233333106121305884878528129770780737792526674075675700723113458986180876478226608857264393387369317981704061090762597110621967935576865073641843284116785600078304165344141900193311914087238662239765871919942160678847745606351916844163747978929689581754430173789360668771394464390366857754237190916038805538570681962863495405038476246028779464662921438831982830530269892616195787540413395176146631067832762727686032625266336291416409713880607320581310804613501897008513000751775788490651956135590847459837805317057072067278030985639508532267263953800636869840950028915586733073641187737962753089034150463090563308727554487464798868446758125351872438147319729972064084807481883122308934739756884408038287625685528223018224109829721381048259388862320704836806153560217167099144616918545498991774756362920176506989277807485830640118342337439144947672895332885061287914603092057620437780417275720686454078058153356070630676281463870118506156696310658821467885094178882403233146893273200080240075871221491745108015282044749176398949692383848568917601667227598194658475021656591385300883069945854236274532906365898516718532774448096972863851737647017432033808630707123757785729320985041900415685476504206045125606827616990919861317879450948987791900307427538353032350970202020341856436628708289767397489513236925206991723672645237955936759824791435451579241580058360414814586905956144429474662725440988947615824501073067252919546063992842209296666435653992467425187359520352980714739262844740839357867666617271668659737690243281947177665058876090482598260320912998406996143951524777813374905304977946556766021029845218750672802623232277322612158537846744073825332703160130415270067590706522016017738015061788100193334440308500388969146518026984738914520825053334210109710187102515718028817058616272029443482914731318804806934628655896592719502633157090936157068916285239686969510315010788382692518244102411848845561173976640022558103601707379392793082278880855953044444104661774437617868813671867474114487702614401226217168996970818919023092829916462237761654823800296508587034795321991769200507448741053907274724198003731748988386347271173634564352859171657032443978859497892769464624115041242620068494014724514783376641119335448564103607358913577347582808012180803066008787829583244855896014386154934290120758287189142808890651002834627966067775277567508440746420693024866215163995884765878557191417639897201880399174246273347800357535172971089461095143459765908118759876652969640642666439578966842594265313083139003775490810027971311780036734890393598817725793885452621907659181159880848044963420668701397040720786308809069782990504622657086580815906655330157593515809760267428639011150953342025951544851812962695019254021115970430476344780033500268097082591578759937448777813784652593929007364453623043654611631531418939661075293586704787312590707832171910406942399217902605720283951809910754253921535358061873295197790669355688915307974258214278599962921774877351397378192277981571908630230518177012863195685434461320508965229972189323645759123263266415588150558156480057773739610921968756123100893161480986021531772972814956506253194438606271982774818900958640700026698960444117073476518585930755024547341479545830521468823851355936526875998882157578114437435384333407280321248006287978552008658402277561256071088579292864280320737120711417867225390458105159866871652121414028730592269169206992913711128606560133997689289568691678318650613037216772650805491248772996828453873327657591138978949744800020601314107515794485225962592718200895896973518521041144917782736909130286561512754604775611830544727235958316679115331901125467745748024025674129693573976703212894810376618051398092674403380562877831907857566280571850974281874316684960881999047140893819689518250714475157376203720393454389710874105657205922422242669355082289914115094762351047743417262543950051710543335654638754058135654906482328291821973023352034299333498709956730802465811601899138834741093924601355845858462539176905031266850915254252997407575145115288213905206473744986123774727554594640771838131179791680129660994518940957883139210292091274945320127995169329568555397576263270400370681959462144009471696367984905342172906750473881934862472859816325517210429226716246342840622573987875571927352142959598466805983703767299666797656496669704406942352420137469428623754867257309890711956815553844646994442329106774430914428834514118701656228833224453856795975588523320370200199275263988723519515145988020244309215477916689343229919760210247818602880452988308313602985525394076287336565306607257463049948585543111407640547663729312067649081373247022152276714891760957850164160573975481734543104079876606665487671121814515659852795383573224806673971150826680188103964426288034916928331378444764687088828282721559154758517244269720248483905497795762387415239895089826907005753806010862974175181224744639071161584233135337980226793398775286843449600775570650337201044179850560567095874204955324586193424908433152683380723536061576213638104416873604078280384632972255177981374577923696488154263779169060622096622293495533536252505178186181579996486663772611980048741644909709313289497936865399363774011968152140043801992905867628702102651526498017762648651603479464703011758424101192268105094915121079562558396920511518714179467497427756204388459008595483266869193865670394381905071662673875361617575419234616841415618364443072266848511203815855573984363515317741832763511678699064605746193563673790403041279062085725978461000363167116711212461144323335284536441774452885865258280215563043122694819455028632462746090436031128803337781827155678844412138924187055433610809763411371028355909839323807417010663094238516957230125396782766372370557601636660824964970573316427518808824762860354346839898072364921574046893237771876781980760500485769784003288771981331874276063877835225530329932502036382139386088009252572247491843050357236915845399301596316031420455540999808601701796046068141784883332363862168437853240043614589108205411245305368589092680144627348025642365127840114373807565753379297291086149075088208305133046094602933883426158065021504037830077347981515110387034789188719699086224643630591333158818121251048821181756201277635963315527935314591315886796301193587980662816112818335224880733696161252501879816689788447096106837785535524899717086491463154960580101217955684789490779280756899970300010478415249378545722890136866967439157266711147340240368041853133632075567068095792739326887337690054149060736880703330713230725382256386570192349134526061965332602766006938396380850270584701475871199291530367590041643633251794825249524329859524362067348335370731178611798985623634085783574470018805001331299214103858416116866114897487835021837256075602032620043269936136140858086021429974432379415826021939874253677137788378411954213448271842408798299382014182899093644448526702847267681400544605962298655573105103354761406880854885698067680045617493713465033178446273064899632552265166675040282313855931244183570467461361211262915044444050854843642438070666672851086923196630893357171516170127293527525316865880774432686793446969245379858416578257311852330979873528105640478432909096992008647376942727151180251689197983608551928197952165783097213062701873950777924966363172990933262060717903243904791119475911071088379424546259678566282418979378878483123736593913181565153937101000754258149338893154493668614086084978513970173698855087827851214318148815509845462482629356522475361823803213767104223511450633296581241521728253630739015139567103792724281323718934986282212517125497397051207375282392158083528415252937946653290215789678357292147311220173026406903783571115960699949722637980852414942138519630918070250247836142354622169229741766696773657079379987628704257574519846458623452349884081660846149847752747268022103143758740733987934473143556603460076518483867215259635062588529272743762175270571419073798554445905941081511262899943774542685450057002929867996943162762244396806577211088269139673118906788157294380324860380777047484731242739106848039482602631548125057141320822619985358510511352586854172255396861079302869184504933950586391251901604573140646794178483582211643852454416541725658146942409328775239876328345019531124762844066177783288761836289457552170841384769517309454408425611030237472172366210682216633768833025711943632106891167977410185245471629081436552642810994802706782160375426429527685233418881062799171165972361867947829268694616142219599089110305905405288134701313439224031061017533568647743725271378470865975486307857302013759313000728949176421594528567390842366322239832579212234735936732427416089896332242438231376196852047073437935097508837754763022137020474033868165594627379425975157167409664091087943706859584155990786075344326675476708348636416470173930538431010513614398194734605450577166996371651379687579504236938947581222496278344476278937610690125902084268575995008663014105403842026331657094693397556143162375984453038633700024910685304866720750383630979021568522208281954280791969969167602800080282449641567899891147009243429004432956093559526517356605563422043872783788116765216217892497430645998195505815995532384820212016830473985930859125987110615500031145814539906177791382363682281309766576015017142477745752364524469535725722340017917976837263812602874053350068689199913405026783117968275078545250354085218678856544466421002822619784968148157255006242330665948017369252368201404625866744275033031383899201873524904985783132290986391901529133785760231335853179554731065346933505339075303428944289082422349149621144606727363442129168722912775581491313811762181140607299541388530598060014540627714862372761982739540924877350211576741085349735964872494055875640783148378006721559779595246462354261408770021628918584617026776892353298353319938648425585111404736025106486592753557822666655451242857487164999942872003633864586979766228235637790500796582273725647725123248988813110196895835114442686431824477043893045471924387954531694244312976546096266053101961395462030876734293990286186873551509053304228094793700577755771433601653845815291467078082894000460767713485681246208283200830131025691481445263730775182385794547826451360530007692073515216466147672358116126387057058982540187213439731755614047026049408977109051650889390939374311912971818648862906683168370035856503579690613536045223169948513721440269675579210963184951902231082959112800020645686871312952601078793597812691033760690498233048387464518277239335454266868421036160434738750464306038124648941845398077395144096305808971787953161258891346511618914640346141413216562656984466409886493036967979636015167829611849614257748760592282037789970751991527953971633683788569083948289109305871072213761726302586780649070996818056181455871966002659985694288003630822057591010645817323733986178601940120481745804484002144317034611148246585790367319244652873272005585617390294381654144121715424381442461345200151254299374512188443068799559451857020871250103324216522739085687219286833770797513581216911138665354775083943968504224749379016594969446133606901023175722026643629688323031851765318733315689392557930332537507428905613644320642130422350568362864353323376693332370139792846571354045285773858536742680929944260676139699763974891996324395271866475759527409483352769155035745586598462877876043952886765836775297859197920857549158597139749519994311194873833542883540355039170848489513230959125931308238368965532008477911100902153578772134649072647581245378966587229231864671562447905510592270437685226666621057350053238954877653445206200413635997012262320098815154527859486543424381554359341411303825370494090092243587868552192235409022040679467306394811812365484242936198815686939718738484339320561398450502350714620893383753679798839277847052779407650157899234155898664506183798530712396559065486018011658742888278497017197219936922972816937243719644629945250976622297116604299078168289941390384689483473385165807484946642191384982706504104054581466094300500622618191170757463165360931080613894483351828575984024395294250320869216101065549070068973626434634996991604991723635257162055033332275349414964490374698713330802039015510232620206461306209607014554192981786422012415640621988075499170218606506020274876457011975180172468235719923917558215715081596829299849771075631992105662886483277167775334068946080884002292400992676515532305738050584032508054733996038377297920783025133169591935958787514535035261422748418770212898630904943061345454517593184303411492071676162640133416418178214528070351520777691817571154937851937047633648025327778807802166554484395175836441002512789710012728271800657366771874029687726721902086359241716194567302690077452005351548327538326712300764667539390696827268743761372270871055821619011092376725184776644543240114659005001176575323565026854708536545337901036131224143174782387755866538061034248796484301263568089949480591079296419551333068674795967673699959159187571134877148813600856312644517468459311001027669996753617942298349072632701092159175141769411640140433329009122301893881797656584545267390373487638717360942323712301200245973775078055583614338961354090383714027128229378790609741004939159044784489548252009752337844460476541704540070898519549752183626371289524692276378419175240225959991457712790187882086885968373082731986616678462235061169216245496322532534399941393702912600457701126319506798628163546751922509264192584461858864422199536453096857709334258885770247531836446214287423309023711516863361090222042411287198713710361751588555577851658602083115668926098370239605254192381734581979761332904335275059821384731207452940102281532415791586916284304169036238267736589416842844710145216775542305203441381400211510687291889629192372509611342761727052489180436033379510239177476069568640467016343584620987248948646329157491273303283399638709589541993895829407519804366821000839652683020565506457364848633357606274862542625444249149484238059950657074357585550207092911427561425800177023797374997284079772117453681863359490592172554199385692089486732021300831697930911853761997076142106344264899791077590644945373322932512819734309969407349205023400084710837483056885522622522794768788668863282519864402572209203077105460205957184859556343574194086643600080007777239913102581022175433957991592008623991951982858614080908883814172836213373663224895849706410090470394659120922493982240120347012354511232081127649172412858538002505839998970419569875617483458719984788834932993924108845301813213657350683389097839878027314634067088761552424240805318243120602032491265929097758899124901023828581074418449332889742703701607402540989469641150723923033141734459910523930142077354929984992263341866820427770658306245062692115303999558538523038717451537501345799555519951789519100905815016967866394495308756516530726036534547312490387197790898402877006627085838060215235643106477564746452085404899539362134966219926487555953488085148793230792591354876028467665695130178943269165935123338670619483237495615906796524320684260780178974901857700779768942712437604730909295287555152673112349148086040585712795175299802574562182006360770194687598071183962880078122352672895821898203605922099675136657750339729413448720927606917461426724229161525305050091989414339836775639618969175901428871776482042493503933993903666656400291840570624245566310091164689909703859704572296229791745838526282870170557597159254584971329532094332632610633429221888258917235767395029996239477083956039156615507726181775410304918430563843415527844957512672008711857352840130805853709033953688542939834086339031530272438347637014173167007197388479419811504301790360979722180323691023677699816323088903328994807362591367776628218266109613069509828749109054653304345745260402921525178216658289706986615774252228997718660712405932824304083836388216752610033100022182663770035989283859854380708894975364727313011434366263364658041906341121795576521586147745903812174087434538700042709283582477839424065966478329114478060644118001799602609961918499613748681925142851509906898388120264220407831359353901883419632131211787125078803584851889996777761895604046998522709184797804941876738713599838390107116284357820453018082912196792052813920819202819413667148551340308836529909416456359850978328561236694720333070111594989214109323806377196772819443676773471389137663576089578765091854099500341046827242753429888764757895519215065010605648995668698734770847757718417217364479297085981467635680826328007922053143286298827941581218306719145335907435696880777429489984753265651968687864689112003594064349116204908784159007264432609508166256213332529379907004165448088524447484782766647915171029959249448006859348987441622005251255911755650584691739532549140509162153247310079130274520752375547777587523322142811585006863525560867172723577546902807939268936204075595961107279710451847750703709808458499878236928561851101984387909750047219755608047923343826764307102880931043425882478745331514799279960111867841576576540624374360926384258818206765756338945292251015116432561528216451709612560488747312702195294763524533263234611275506177139469479402871522966547374043655560091482802249157663954666108332489457918485695748177891831179365711216193841161992085378189870844056608929316605121766020418596621936502197687539633669374706005373819142424849977434600436432085038808947569332874124142444793092142754728185687099452248671715783934384686206304174625849839311877216969700338274716935960860602209644378058549325269078571675818728779997015499706514671886493993979082460617622107047998434472140343449367338480795760492865024235618422949454632858876081291865914346867704576553599224146070464895301359640127779294154438849440972649021363325573707248424457176355636019227802312875516688833409002598010836151041763814080636649972593254765167000070182111600732940275873356205551730483966368287817855435066593157251010362324249256383292199704131751915689684615989071188655851626693544579730693529507812124425464035592242862517153431355906178093819111779098330542240731157423408682308643916524744349160077020408643278600844638715603589140347441768727570962824481650669849376608270212976873116161231588280521484126824584073556568417354312391528514227041662620409371491529310882870497316193464417786319957467983962479959432834891753144977090561588275648353974292792561743285514482558847878772266568941841671663484396160940135029355565427270105030467418495039087059813546754426195089254656342723187456137461613917309171470132604986016179832091507367941261980259287994089321797796813316689830389526486625599675027804575077894596302067482570228511678791386468235983428880265366829998695066690314174389713546740749941098463080954893259978455503178283798279157806944191733006827792560822067075143055396961300495016394925665853637798181975119416014347197141461392247920379641148333588883620034679549903319803763390206251237582811723150633076024117775110136522868832486174801251675073290501626008865674398620878844999411558302918470643015505090540311421764475008397252007756087864309986077530209295385810907063327890053102950432620978773278203081082455518535641700737106933090963668805487179961154384508584853678581193787628757856630921021184927347295494744771772854569150755659914546868503856789995471032089152346106197605151812512455727810951259742651850843583194097065375199368660635156071944268678747446029786986776252506339600673125397761485758916071739444433835907215918475947229347529609752085924572091399766144380370893477098669610951539810562776349811460519953431904950591904542272195443277873035107808544098328031957247342066352306678156294438415082698684314392388406033727776281865120918032235961454413111605860557770744862247306253582849714032819694064915753567943689010744514086946925802154654479494692110923210172201004022929473465911381984314523944002671400487116595336636089767445251520995237008725364085460667693169417218124427139777125780191337885702168052447263908442746243061047033494803952677813954522491714674498750487601397721723736160584516853960367880698020410081793059539176636346173115115019513285330682225909377147890317031670076416392591123782186520583809119131473959788989896172577365952627042818846613461305743869998816169963468291600764668384532681600696476346170803463217499191928521288881295468444229552533010349586221629420616608183093986438440339478849247205764526513732033194923534111119286549542996072423463153737858362552181628476007146416029603134543245054711393219249309979990261789298113324767572657619264059727200717415652856861002108457050894785006202839674513479573425966389922338467564046934309729638280934308345698610202461770851495491844289260793811954740011761587206065396021969701945124991809247811002781614754574027337811679806360178043563721326126491196884299961118094858509115172190259918670883120954417279952117337389078768475742098091665509306208659253242210631529085587898738120547105002836312162144737752423883642829511341667477174885847469652414450554845384971835769272737545759114208847416531512976838260564803343362087493538966656263548782355653392766700493170299068002453288244194902156340903405698378181399899677681272942783085744224729905800544269981207069912303376379020466520733059546174386374655932552412676139289030545288528421346554033768894249409466199980330558697962424269270048534386488065330361850526817621612642882477584619550392028145082968488522132725096974293059643023615922565094611722885163217474410362020628234371074893551241616906770958180880898441322936660976914290859980208961457779196355893700822516115639802960730447887769568974231947908410898747614464069178105276501894104541099952612779835701404812879414960741289546687944642191538886610646099477760191821358218935671645848725761357686425244362008667913607393359596115730128900480065002921430537091917523187430248887084763310809030930158236655595648957343731071543348475167538603005118749805967282222522636337194945129914560140460857034282183088272496638139824629970774011957386126990131472927951074622473572377780487987154134796246625339047883116504921795304145375929898785413236882277779057114182138442155243633290356984408487263401295842950550936282492961640180547362599293677295950934819831147441963469361229449548562768142258449102836752159568636356746610563647781194590896904921218769654565179346974524360851621942951194360238956888695031305666173365631193890287825295544369641253915004860096557700412831207020626923292173345752653938021430854954222053446991962429590647299596860889434227278739295331522095277614062356928151710482904946296176344869906541623052720978817965227739654091117517541826701623918568630292661107531537904829385013971263259815388343490769407346430007864754153248075270133796684250664381559869026765936462780398559658843647951627596641981890611617328189400469468581375519054889237530936847374243991676959419520892755024435853921236144930182491879032410030610502367230329557263505655210737714562345650279254990893790383630170058503036805296680544314396364532300792654692133928050290739511602866520252398020957839428077292885746053684253254595580142052039428662538401621413416782539780725680368216557330492752441181355532037055918291480063562114937410363375182203314220387325264730001583152152831530963288943164507925706931785496612048176300540439092512281522728221338551422526067305820198824668660566394544928428094032428776342493889423982405529473155636047628955232390183170801388758944687016112398119799070905364393435264215530933983811419475741340722939829143342288474948352549339417544288041848221754891408864127658934951365092685814451957569575308330821089087493308578690509492405247697443695167271775798147120111540955633435153379278840709008473863550887206165441374137589494359759567710668681985844591026005053848990260131679035480081739216474106210106485235903585076195128471512720642399066941251311337469024957640760070672430544465169693663467250918156425401832312826109068990867409625765716354967503919951635510927329259776210046601753472005525592840519209911387433577084875879009059407122355134567178118383739950052825632087741541329538553524952021267123118931042568904261496498958782558894162442060479397073451064831185503665797356098907020322999338335674463069529331033833083686346112766009505182250536194261883256280876386817727411732335518405101036324926092342537091746449427761500735310250048958123681123582236046775620296713702138705114076607316714845242759687526944348654613254637227466991422520990915954366657790339847266279294125374631652020131106150126835441470421978535485552577276425702498270395431234274427788006043522665007105935285633203942732569224759511897915160369867300501717178464989585956799469837646007833708092893530179854488432483571397538579639143638396133553788674693391766798474705971322000181426078915485241253236894201654592311408102657224076530645528828423977276315244776052043251912475171912650799026499784025628153010433673791097619728825180164041414618757721427704788350454310053268340237579135330043728561905760575025993953144572555299958413284408004383220523713285434506028878610902567296340473795095791596664239681748246268211363796988625221824192263649234314440177038995817245553337898310108891393483987853004122529989444404132810340111213010420141571306848078052433010636423402455148490754850665050927922709549444347010950866393144981962893085039184206016600507533931335549300946397495539712355449251755563562194331241426301119619370181076934807125907023739426372863966916451580232162278038559749298117002449757710476531032319279102895526617409110145789506088588196433476516935053011089068035032965539228688378452916286759370363966552531181682608254369065344537565503908147284625554474389338630047201154053377587903423233739054936990138134759049208028284797130527367978105059238085218978537133762410582526186041511404884844817752178771660998018907616906804639291128439149324938256283074278784473997543824446061783048704477771793518007320120723634029373901731448433143393381031240943843169034423840039704133825963317906148564902359987551652792120140173063414651206914553518792207459856334560231098952943831220399691840119129218485763747062789496260039019154775326340756513547729609829751906397333377113797320722968939563170385298812200453209312426947438857506231367908293687025859186863494925329582700416490754082422006044495966290002229767350064605681006422763668142624663929859867888610261757497498607293564461276944730695988157939605450313613977301742731959979723552932837556398899849465139272764025023085557066925468120879536708968247630588377918904575973163272517728064407868583694930012962926997774802314883753653562856689591576040331790771321268395072020798724423067686372873459910035312684479093384407896976962446851248942474268572899568950634027355043277701510028190344385942846981532855481120047556720467838469950961676790830476693174648867169802091672826800310353648007262691715478317564352667512478801264749401726774064926344022502198629602452388944610212428000774712340661800208280180820268184886559824008721646485929650731742868006869057779275206482074265408737873741965783851013389442378243190019325809478575236703414762621660095479996262088842651983468338716489831227438379648071317620145899236627472187974900646546428645533595941890239227304615771937373452874449512384064291567900287472318233404044089883734551785689591418368538174396025764043317399270171750159333546015337206997804942335954353761256817310063787656790519192795750495841221107935484622441141859896033332932039672290389577179486503552770880444559856790546202242862157699717565159904427997531712197262507177650619819946781693711367491867128358921677270274043440434471356304430141533402711752080666928022485737024777603768400299804611330394434658590036236782786365628412156216058010429771906447405959811739715416737600164543313510566733274237220793547082190950399473224239898456533403467965754161997737159835971758789819796110532368708733680195322084803937214791552048497364012933528945295673422098124094533431466374604105857223633690515014342439533544276669715158488649321603815420064704029314982064226401842871928495827357589928224397773279402437668965750693213747620641806103592214864068527224791472967051734726849204733629239705992627265996242415561084218222231097375484833306582930825377060755617015290922000881563372966046844674970625474183656588475377391812876638519499063334711473228321881536408621090148889712872713717710569609099878746247404712548538660297726717361041651971342677949392546253485595625840852250735576904004234413431091370402692585764768384794341977011876176455639623953136672786984920169190411519468036282214775755744367372102121897420879654621514136607407035210283453591173727402147877174662957395734505799176034541228325154933037410103314137769570654678973870475844118517053749563765862368010917646144085484314299701180130113378597646536842681691472360626443836756674369963060588289894163852686264849565074602434345859414347709510395071612877204430314149296752211352748994162107856405744892892010856154378825354957097967305632159984820158728623161286982632929948482212428665261213497655843859904491530748824458589101582769455761973042201809604118119819417987274876985618937306936574292637569637696851791791802187388520220365623340506569022225715844718523040159312669723869488971498383593876520072491102097731481889731726629938900986698110408409153299594274361580245515257182820826838891913384595807665909933182232060605201602703265404749927593705704128173292761114087530969532584269358938143006852808464204786847050763827671875279184364715039578167902226789524207587549490836075957355456036056419378403391824686105573005181473755138595881005925920265116790682600856409906326406730839369644908952769783542050603062736108293109251798328261485309379370267596308469892441577352713413294018428311904381579153363500702349264380573136682640814964673070855876778017927261765972083466913640379993044594845295184370902223926410197428471611412260058112396216895492745088818009278962687550595824868267821923092232578868519293546715216123578385946760754200986794965616938238227964725574301289545669165830800822799352286718016343418686223759466444086929861280119839209630291534545772722397738903048925027297288669412268199010973308656888108167323714554470677385735224236151055847618006850295682065907628869519301491529850033752720970943337008678476029896250502790670668009727062273770116891204204611813592035969137232043191433252952181314435395249242110071896479777613079889242528352541910699577111399234060927979439680350165456840290632901480955002207843544869697677362010680960230467563493519790994062669333670883200188009072010485056103176928867403717739509153563187844936494156416052320610079992423648064356450635167726589088312496910919194419841670157285323176786946615943267966146016893389670017192724435316473202925649462003790431020897469217702955584514015116689410814143725821931370028436769228788057275534801545393851415086580978599661924647398698438823429052696931522144516997263892906583998543772785642047726569445416737764451475823183869950552992676370265100939750792719952334015151673442039982287250446866085758270025241581528890294332936471587421060755380334937752838733533728751663490891502834313387863761504513951112873663642892331785963428932821589954205761478307798515138736446267941673266756148072191438408489238739510126331744567182109592337326610393988241795371925178121317288997234136683560915783938446903774536755475008861679637043117144915179844217096919854374994105777332747389293618993430254351769279556521870597646776591639971823488094665842056332296796629863803924412596125310948115145157693760731164042593820074929133985401138091753667173373776291013747934922699526764418668980233984438272735669581161230847195253662740528674637424549082228176413413639430095293111500103013393308476718879398437054189716660527733596710020502654606124384723511642932989754076082191820314315950216740840874307919744019979084066143188295483524851943151538889544384788857811904473576087493947314807132455173852211579852908923736552717159573490767663657205015644697786391426303911434671730040637788884152131781011123475850794997145086196799059665819711138349302527075747151415817866215025888817677165756481942462031514253923586306017518269493273703793077033667265742752978660243471070395946892739108485665163384734807789915346010292626082658627187664606945118742817163410973590582543415649611260929049521509679966647050814195347176349368429204755595786735333255629119764695551390539153162915736559689125567659019151574214333264187126105589981738247810924252773346067788094057413730096415334994159167078599778640108563079540958502793597392055313321253111657626508843083376000292060259524722126780245450474307020958969604461509353944546667815000687087349983457871102394144713223533269376407811173158153144964328396423739902161896420100380921641584827826697403770255059078295707909706829695748006818909282016544229982998414438091499303668777703570451699053538695889788330755122596152963069243780595513504847494234368265929949728373798743576102294717124804197378733587381802944521917242386229230002051483329950327265363720920163428973892109555417088379641293454643862799088415458184466311628756549658268640989152275674465403844143039114434561008985947152300515947736508648146259419633740577393147516699878027870235168432101880332176312060030172095224347562816678200247047500106640406517246544265659313824882545096947342103816920437521608447486394713045551771624638748696720229860301478422823574673942700686130946414966377429634321727619913338524650081072534015967716026753784678892392018821547993643971683745714941630942762359868421853093833851095292351718667552787931014203766516423065811647802559114377484546985164779036617274581433106753796672628695666278560670487298191954061288047630246596661224764589171886324224006035599270062386119017665987738335685975730207828996311514901010875726419529931913530858613839279112641770196694673503625979661169259823206116859546580227245966280532554553520841289878516029679225957033523464979191302846492724133179510325596590364899077513607845044692641996679397879913414130598881036669759473551541697322401153354226931254073603254810434555209362952605739556820542928460825309683033695196650477066357292467700278144680581214911556527921653206673223935784271626945598839209860979578697974602776506772445238276628553253381020142623891917735080138502993703318691294401784071733173827611436490470749030165663133648019571009261681969339656763601369223935413337279426058243368720546130701143164964314581249381438236860522200517366077340497025801111560855591830064681698085120122434349784527380505507524013187298251091430811767877619546564314405588983308120464260209598277899923439720036222017332746356996465546286892965658964730559328208570707724616466459507013133370598468838638417893898208945223484154868117413982233960514992314440662626742628749379716471012669467460518779996004440989777168607838272131169889879118990986617642777987180884820469344446098169905353857260198123015467518963026223481784412710116002819458964292329622953280626972919934787702148652735024027017867036801957179207897036903631531330642267406099783380841480757746939975058415539152959698307200298814535975514597887790482963912701309141349383202601166944640562621078367921230634124565447736187424773350355329558676924197767972265311334691668430754336568447658450744634972981714388550577564395781601710315594385558732987641342510408334507862978090104671686735026440906516756017646493313671366198989914648563639107639598048467714388915068270252351618609081895185836496848205907111280178756692164938728457057349834103709073153276786616292990248293588974599281915362848525066983596464549219017072463126216647787435321906329134552721131523341402958729778690095035137321347940165138222745109049824841082669731504987354577969891049407648327608674770746951679899475275823685379952224647273503621445624377823142514181144931490244537812788902382471837631898189265270568962302487982726540373294497143423755287063557475979563309744078458123716895866543784104514687142619565562383812455702010463482855747460838408490474616369518865207415130478671101529128238378244092054994934637391585298194133520812007165123782037254711321443207054665308094239746775895544264112806277422490503801717300417032019580860799462077849922902710080932047250273712330301766743671941931303295400190336442365047376922651911433801755557385997813439948204059900388992876171669717762569298623689775271998359987759055575481405964300083769970803246337198138181551664411755126787845037301149303163529895598540382180363880541635514171054404014019238063560785075273054579782065723669912084412845303660291776967904822365588839421886897054642117748958472960975861377718758796732310415807535078751656950845965609301915415476009718916134293783778885518739899390568718293122378409276406547255094682639777012834428514641521715997726388977040758599573471672472311621270861203310728985769594253455193518133189977543840546212536484392453331496192919889453948918225025011706466079485582971506359608737654957272579981638984585710810651059505499032420438649308480694692635578635139522546665927588890266285218423262305525325595127827685099482111952625679583140168709589854910165213024868130566936957628250710602351630654888897599639288684579179934277605196112360953209342023160618204899075473593807478109579907674506266346532078262469201876420500623237183054184428555505077379667244295338852007400372454634992786932319647497914662999636788532056573503345590959918779154925127985355500862866436754391435297538480540528853784071398221635149724959490061392926301209417923901377163874088565603086153057257989514984409408499900236913191793222836418145095790338044345884834724239038871259993080125550336094272573659938500476316331425537685918448576742664236344606791412300403781291678538020783874590538051675214690194871480162284352873886910404779668894252007837784294295124906589307430566632825052216330459924852132156629775069152086835350324621132269011934758397360625041853454141976611543678389053177224678987034764965969020704401551080034238243988438723770320827309891823267627186793350665101039184692284879718679617997929889736593230295169313147630330599119323595160931148345859940964807873506204040914596087343321066229269458939707277106401998328168324374574318611038313467810113166941653499185137591797670935396150139874535735236098956220513991970334088226792185316854835695498423311264504563534840668604264280112278099281870006894515730334378635179177008814281300206279027453958921783511109120731042092309756862000233696776408824770400618492016221951629326686748893904718938401399675982697149767051457751279100043307172293723796925433149075190885638731596014352017868755622035014475947715903744031555142979724460769469077687398485532926479431594143634898424213197931960674260786277376286118914841743726492555690893174225957678416921194638270935557071321522972849922757466661494706195661087029261926575551597350354941590910158840840294442496961117619675841291701896164882897634823397388601737479350982329712067427128835292937844973122505576195683043516474375269242376486584293593259912840326845061833024657909508965497836225857640140819766186418687535388746977883384784106503583851760000556011528905115659580386529723498329016698268039272282369583509699578165358087899958608852080458823297616382585793250094120327733549212785524382468199831621156836396872218359710495180415385699300364105768127189183691221016879857788280972903954052074790953078205748907573719930675889110771565502807889650180911413972478523612216693165499121724856662139370575400167416449311493976027702498437446731427743764852326442824698983261345784004204651550528424717775350364932484631926411166989795211025919274974357788074935679452489292673485764061493222085050485887158688070787775845160813376316821360817040528044761793921089971928853986026091956278468277896051833962829573672787206644152105071938649095869481761933716812264189229758784709385407437045273923418247864595241290483715548874903013654965907933146201456597825412182818089652017986201078819926375589490378337996732041709540953382074467805633072537795703053941417518890082927037723400321342516587931816302514385786089214958664870108096530310922804665390109043737332200705628779285323358724765568631057945848766642995376064212647713702085202145157636180934902339473712639710691684360767283370138560295770120362647145625135327047480254951024526367907741509603579913939924203305646486676715011208887915028470348601216666085532132066645336269791748957857035049227164279972586657751453349553376832225609474622841497246126201647173960961559526301504435384093028710792625416433708757687890406161039195763027237202908512556299161626192742447129584780363697667728150056872430266164371919121779752254320486532684171535267581650361303305907641335000813338678623116144157359640677932247380389853470009605390548220419979973476200910249676879753063116434126531824225954562420580354092051321113179342076581747875559937590674989225442184778001328109073140517185581465196289977166734138804064356773196026173079782187392578547847467644294456156335815787283559995574426832852129522568648905296876836721972990514487341491015469383016355057535300814743432751232975055886327964656195742085402754383564322344986710248597302947849931982883063809996973935465387321360837496108900566015749623758003442648280423885907908822051715389626893234545521212184541781757538997792789963874002475350551153139136546335504721251693366353666199254576435828299280867633057291209241778313261852536701088336307831842609358622225032578379374840899863694703855962565462787363740851248004461925207810721560612885247612571209927009967056656434905632286954211112366758894399153424363185724146632278190045642699762409941877018056028853394945136152910996161701941784347309407276525880399785930570531025558641219867312344101201527630965088851901711270956277939406879665032963132230236436495192949822776372179602791688446348887209242351922540172519534297343299959790459790991099215925407333957429269418279520461408766573040691807847473971399011170902908944219220911049282737348823182269126198326939592896190663920725861134797087921584097064418537490589445274444687078705337688095771705591735443780034156656018302729618147737822479652611726051400265450027685131393150222605667801343268635021576976803360061257629615050548251667221111501196623785602430227945447636635493210515161257019363637558218035299293337001566426656235103017052780527282300827591920233534138039750289415935636390539680269749932107059954916869470751828645462189621418578826238967787307826398505218981976186530383263063893423103059357160699702264277221264731462535095395766252479404679877488552754591444541217305193540824664838912575432030008436257127629879282264088236106768636700071198263276639572875395501815414777020487361303275273388316089462350988105398995247229323654565962798509364654726021953016721005764581420332760917357825868609524142151247791690433008679911346759241667341834096066495370247158871305280555072962789821331279841099321345893916902845630240056791628916657554142000089576648034119910911949890880795955813064592757241275760740705336078153692380554642030901877223564512115302005497215503065090841768284511240621460287070776911275897652458498366148924551310270409733063225963182629846024509423911432594945950582593373035716756737737496332128114428935419531930231889744021894030238372508675280245752700027329893012778162239884274216267719343896389191633308483827289739384539700289129275295961615910410745668656641403881516516511391042218877716793551312631350675510206066080491500169606319503107188515016034066077523307738052158822850346555293633606724954990105092950383611343912593219020259541756314598705577039686155040105220585205914522804811394391995392342184345878684865470700279736437641312333364928769506450109069201403650455308328192323762849357183101112453600613018015088159935443806894508763489784079043322888340623244440082688127920762782436382513612670514649062988997122705576560120228478769390643281902946635748645448040728956791602402002923146267507583226392107253860647994873931261916086900859351293707394134201529910550429954662091086053973315530443100555599779507389527126080336389283529958643352557890932801138328841785336095391660344632220495028907076280760890134385289210945705480199479126528159857029853410222395858059198670048181264446075026893009201374425263179531256817077187866564370973181354387201938831862368447862222589666016510400381286046620243859891012041888070082564921866525090766997860849000926958538239683094725942789379619745827529102260926933588493902667573262397965900921641610312539194865548269409535805602202201381438886115301737069801445334933956588702407755309779900137623283201526957165324479783921227945810004135032863484289013276510867578936222737690260820441195019500851278962808481759267408226639177332605060606187261109075898412056723843956591983927299239358268191593196601846290479703340638534618560356364203804284331371141393556718111258929438479604310121924714538465699581725949915043201037966834201831851081498010143884157947722149097728968217666706506126784877565016591648375803111059200667595971412333572846758218986760403777429363035847594345802198036267988362926045926877746519867283111436128178281531926087585530979247701707684461889317215620380295847091780428576466422961990820430114329103120500269054294522243856948281829468099345042291002759659120033490433031386013595753811466408454183908199691971626325561363654416553899430329986992165939748178064718308418026505213034956885700932245538298904387540564206806882377868025255280436519085626127038949951392305766351448437852597624147721777750174592952930040216077856024751019432199142822488404262103822492790246817767150567367402909436386717446773542705722658083082696516274276821281460507523765741460851694456487197960322016416714273728470190314749050029437705383291367474562003379985579352060318976551755978371479513908631018132772291038591395698685463306538174500461629528110034449089147906628093328163532437843081076050275821975196117759736707449980102824140933359349496040602693648221307026984382279431292961959630228379412468911523950454549458022610491994912085497543616482261522302141950045408072369253372546790405977630266549263171847215713794653100149863481153517637229401207065730105120119186610433135395279264922369530038560899857544285524805366765846934924514070807933634151762039850380087251550614971234105095402338336485580202465484960329637973804158912529484194840755879988308700881373036315354781256812008010122328101199361090035518306257789953492140751088851402571160311641506790541687397278383627449523907084894324494171461257590268635559281437667981398686540114319487535239956830404336927836112707022124903982527212350566859352979864314084987917607408784383889213677588569235690098498900477569313752442088102203812573355856659068907232889981240039255186520995369604141241959672781853820976389480508557206563563393095698468163140627246953744949782005959041254576677712888680915689285792493228277920098590327351271468008333697570135138369112622337716495645470524009908885162813446116625212834389411681656620320571560283022265428492278175442504601768511953249050533213921302351380797876253972891769969322891624480020784785456094686709051277701100579153004811429011364658906104499162835176976313275831027162693708205961471901322850102538177833384466306480600758045355657849089949456901411621135191485025985016366696785885683024437009280185276978431246849926969012435639423381053714754485238709825204415025514869722048359613894414401580853064851553598393469473181671113619080597792031795215980243168808890855961177326598502440404518994927338478799048421160406840061039918143080554834942422589619856052997121747889013739298433575145148199256228508973892941604237597315354543057858126749375536791271748684911231942948737001337992390872375601994505907605881772413962552242998034132748638817975427937338991780891084354802669769877615979890412116029717322578374632247396997417810115820781203652289476175736032775305742544538470062847660924742892074013804984287869482328557601374980170711943791405832245707791596779543268419657837272723797404422928473631796297775131541849766409511737114140096215451310248972696325495337607677950910921979574922078130940483026593629950922542630557193867919760326947694684393323840259687352703385308381121615745398007941437556924693115991146813825385326089535821909396365899797086918306601534879188548528461793457876756898686953064774581784937438221127572487843558820232481163713710762108875466045687797361905063705509146954262293234514669224059928479642845101551795868509004119431616372173974885401016932059623560453226855012726542752423231518146968766258140864856909654437644335954490842303086752468797573682500203273769516050298058770843779247583036625105443726748651292580144012915847862925278458004004179385394929947900601303299283814691291144376606148379997238566047856412110611971252203416957690292488813454290405457474380646174318974409678851740893846720778912651167504401394809748344630659347631433875266841872664571747102128300490973571535603969748495530356414223987873727031531512354763316665960891500729322328573189460844570207148656260944882369790600501802440532228545279605129490344210989614159880973542487125439287008507592101077205027216061665097701009423068999204319657408560761833304506103380879223755787411397464857899023532971674818081699689585584341728871177794038848950367210708839976248197767836187719486104731084569115240508378030903274435684301007656053457479142897058441437917670847495850988490383328329725250896801649975037960989819528721764306358033963550283627534904307136342836137181397019848218654553574656356725283122334255541705359601502845604609405701541428842143547962685962153345918292541278195288087255369403931763467314885081670655503136738264115060359323272322585285261545401439861139352215939318975842823541210151810553342232692582081588891712711005301948317022910607002995523208660301121442978179938280132900470399859083120986102504924621584656166459415769513474655931673509807031089130262328283138891905970892488661654204200423523361186656467000696360174703383998613426168922034110493333937271888106787176935819910716793320569694629757676935843412049267354019657556414422810740972319698980194644245589905114933861956049643198371779899701603890320171617992525678833990969600946524874574887524848198472812892193659952783198154156149679171679747198888226588023217237326846432885212067757376284958285076050213173162150288000752616323560861269769807452626801307995920732455014107637622359905495204144014130108497995510142511682947798940244366623721094907417693263662403609925720342068726782942775312760915780109546383078409460675193444895025474794781758806414656208533982526759823277677733628043061905889024100915203985906062548891874739197878029689195521973694805538995677978924832025741691857817852482973274251357152645784817945104524963206909098895883264546753147788435416432885914116253463302252944769502291657745324077144546743132763120273612829356302665088456842498480190030885074176613146190865950482500073742595018108911748561628588948599014971510494232575217596186656191984370242058956736821252960102046279457990016042364912788900980733287233195401527281394020859842611184140158360870333561232013650930374022741223779833558435529319402165254565615990868860977283718220006952665352929111868297332258712758833008952032689815897678617888186808668868634855268357772544297001929526654354978782063483992784130362888495167359767793301695457784021403471967209323841190886497740601964578555841634181551681451886397077500507179905234905454030201979128787230294176877588367165388533667750001047955746669506706319406933779976699552231191071228634231246477902163161321730063877255631843074261730674613202669268882026583856174375088001463096861867042296637843303399587298985841176846231373371722158504278151340544532495301615868492792237320828814170517251905356323684980504080524539530674482256240163197718707321991251083881889597371417070873916579391077627957439906652642327249920465065725613030108293323929750297661608249097942237162298448651209526320863609660499686514020048107183529412489524655787098483196308830132406221663643194665722806639763241412804619302336307639647450010212879800355292948530000421446241213815051364281863110440752141950221500554143774281634078026130537356189919486686237836960942804019550496623611622627132340767279828293558554677386642671488604048268316476167603378109392434888825830722411061750634238073549283473597393668915148026376557157451104791723952096015074132597209099782104761828604415391982661393971558086156750624056379621465095358952165289283814730210840206900939215447485543604737272388686731868079325296878295847612831002840495314982728440932818041094920902492076203763627181982895989551900386928066794448325835043344186602646334706769777718833766294595774446710850697937224824452859645814680168714082705463710704629649149773120807833420552590894365707612344360529473027923069217075329504209441119352606290952694698264130201014945938809720484079088289231325451708212476156955760971894355288516253816593215827687164951274823787043813456566792050701543840341981915972617016839719905516821953194973436181421329539397382216133641113236245477510125172239670013124682028452474831567341843489262657041291255417779622707379477717483457488933545652728483158642442365731198841628193840405483023130885384566700426512264613841930296511891694648804199016510144913152563247850397788731726611340089840058930867272725724024411767068931526785668299564159915054913161160618360424299870523197111569557079630405392016572722495191953140315702565183631045730571976801601232632679513417109873439345904638507786745991747612754576931279617229364698390620160603768158989437210681935588356938282202480943551264309522734452121422798005390869514525197115388539162077388558672015236008678879573752204546662170293893611496004526294781923678463006848719567374592173594784084616954454455259028977180937218523807513067786134202970225998956892959799350920228851199789825811495083762090980202052544654845144779902104562277585153307922906531302938176754592307438504220986767801506324168800973210269208391479343201545619464753108534310706498315814604581068804985919079613286922791919553769686200305673001524101862957380196139329221995500600107344627319580903076617265848092260716019202937713912034790679209618488550106571981921624852335306555429010685845392206801559917008755523730832415660695038824002563142956204101523066647216732931847699151067141961098676135861246118394179097655591210626502078690806003189205869587509692901122519240565288596925040236980149027127362229076500711821214353889828429397254720090792598952204740415344006147104607337947248742000322134951402883976693250747879926595034406703926294882264674218632122810825032200316802127608397107445877329549800361879035603159931134583419182898437219348275571470162208540277461019845528697141803191706580707586984553021680858572045465280672861637126623507141349278454486496397631449961414784976060293513244044775596311860399756396249006705658043016681360713774966836554107129388671340833422523336631598189404738780383428822944902398888358053943846142454705437945540187286770363781659929444864616837839646178937401834322708237988239186389467853578027428002315350990832642663888324446001009230770368674130196324482018785902494971029279416519466396833981695011801262354990458349885144479300098594308546645098219032036264293697056690189105636480114274246308537649142076091065026792571915093992916773956994343640644657350656715696167999663815479926511558433501358378439417978044273191978941884800206575329078035882122669551481265776796170525724177882604537909032384652295699927310555516481325098921691135375923192288808809894522181289236784134883873928666363040009893574260033779293540228629419727676065624656657687606074970290541224200258474323381104056021559882454913175650050454325419130095596642782892167207311065440920585356996863952826029111703663141587483348680804539648371619877919594266012535007470426823814792232713901641763389909745254723736143528436409492817377026558459982831157648157993737990172942986442336938293317911741390031503943276080821371058605752436399711089021885680024330132918635197534051768294334881192393600633517980196963855785242806697604287924374770658542753888924118792912149921632256583859840248001806991024950244160303636904859151054813203910049823929364030427282843180982083546674216074084344137242028195568811401718976548216804651384522632978512537699386068242181001186805611794594322098307927899054741023953829265697693560051176886970658608148926397460954586335371802228021394858282256915705412894565099761947598617468554403874411488931760313192938292291745821809199905856214854777855457909410194266470482732172859243097414494472121514299664711068601833215056048197409472223872014515270016824394678786977473420195329123577969573661173706261836985298183354670275211660088282708066671369160324173858076208832205721153833896069157069006478218732834482694716366728757414436779771978600480031154485530790327220868052277122379199850612020900351396486277826890373155399408570761722145698011463406291195837778248824002751623096146653082354772194791989553754570260892755599213344171474843025632558054484756437719878414856468741492199069622848568753922964872964636241489648894081338195207199412259403947179739343635964710009219107448651383848092204209231062302520601779883299694763064142698753708794924353159649326284349471088995482424390618291757531001874607937318596056587619364797228937397451293187362443309195961356226553928532135290096863833343898059068185728578260018043347319420212755680033451597568690118599692918395654423639480224734661147756298854171775702154797971957011734134435483150150653436418087464218833145474675552762128149405117861690379647498502314465291052856151854750819152091431374534851720790988808946181150461441058514178638624044066820985930910573264051444188354318136542188391439475713714390029880941751892589261824291666178438063464195548123115593205244361976187435714748170490013418339600406567590759330705784938461577978527447683538295458027424101428740626860719243056615488059152654675482505621102178449504414028680487889418720718275685267743486081792626710286175312635746264348520428847173784610031828227617242649914165712041282484929854132089885171874780643969717968754727092445589627065511170670804658658615772981661205297326993807781384452134784685232015437474528161651418726716429661670635151551255885859649316781139276758939479398852146225591529760560103110772132108959674061265679781020802115360025917907613073418085864171474543811072520019977160140064890672621504896325448256901562349123541935145782181164818397366810960530661305999574348344642072018881819696829852374153717522805766031059876659447358791084669720563298899546341264808793429178056141945442211056597278943384089994100464550589987842022707503398032894743395562921723031591111575409172534069506319458568615239279536834296573287373522423625681848763033250388031780928778124774718954251793939067218888490539312660731265388922345164895652767052256865322792533294135097941840492437068504871125799835726102677931236300694045137489938284428683382366119819698308003036366563746436817954556958515497889894771532525542611399299863604694795693782867338253683501223067814676712393734598194057490316920341470408610652838498022236955010684132569739495469584973900193468954917481214571320224424439169809619843379132385255405462074508520593384540871583408827869449252701965942780327656339935911882173749435301140137408693919444051900138616568865496417797761963900878141976020309419544449417455962949171884672681532122081401372325082634533917072741980765277180935097078211154806653810668775095614266010486767878674829375459399978003381033989037596306940775097279225681816829213147877882518127161525386639465725632913671462020511027355070037072057547858266233835796007652470684071222896186406448028183148621300182746871350936429776895028561220114058920296199008319980406930469798547721740691258418696611830053433046438231547493635460829443976871431799888937206084078215191696172103893081746731039375446952487397269609922010890786879320408821511242092562555138825113203318740341376417292329810760616817671740328548995712026618334020152602929575765611873631425589204341413280295146093804476255064611281914836033805144514594048929548345849376398637209641329035548830898327897288710652632910260441764470544189799733159481763363601597719992758368381529095710471201850686869213235776774166530514149708624944908523999666581590965617839313510356518799233514467757966995133663140693911431134658266437924920227505735134039445125482930556291472495115820371907328223512135620944454155444483467230875075699859395795483509100512139382588023371715312205823460213163303581526077454742330164285228262599155692535946221862925676442899010399725867757055562628249587163723920063395398141795499926772614673115294309702964814026264740415833208033805479435130557500122087246257928655833336668266563087507157259421956242371855317166704822799608173650747232828914534264496816391707184981660897819941384233298205587095490129210675932052395016009838364259025221380579036177141149950909474991806733736513184710371763663453762131498551745341824547384458088917632244816220448500112513929327317632549587019250664549953090553964493961794046640762017032375919910196130886988538511805807949349055713506624300611564971561408719479874114932537733064672408336971766462461743911432824562518582193330563227707657532424724307524600429959360004682198916903054023663304426909610853949838819373143400425692685284404858976829420696014809329080226674140672866068965556558202740341251096966238601657346643239243411521223398290937340557779511806199674097323597590588622799011896355339944140568254636856932900145617214001670044591485296429485838613866858870850533051198664260403765149823220453899752597864560644566883723321197977067052631383473263204724052451426346909224644330388833328406206534696726711074103009653925645505123146644436769036284832746696353539082730513226319264755868341103102613610495019166060193891581678447674872530166441838553472283836429721145050063540055458490719205191973787878227669392018359276350897035454316410671592288277850591779385154958441731795325563366167432346323396653144775634216226694490684279319435082033925454178253965269791345216136623190707004010232777287250147170559532807451499130898485509908353038922482938511218440571315644178689746311020890928624997909601057791884789838432300595654328569802718191500042015538064227865129186273701803971870958284820811083340219085089889243168653858406222703543893519720956023811663431532180713825158078398259352346152289478842035437983169332980256886759771526721791445473123794437136445212227946522683056709473818066543700850583511797966099988902927421980230465681401213364590320768761532543340095590203794996672706474611534793889802934043031450037028731607769057681791357527249109415425651574297980921196012703927075332462257637540955605333282058669846112277578227714958067015333997179059986942559657850093884583275449420422045284076906405481660723659338254428344063570708295699863482080108444962333113692659318014670199993056883030746991525922625785965458093201818832964185388789246116038426679466187393145873958710797526877893560584926622071113540011759399731623561411681869984942303252978639930930854771907741632348757837630829468900032575072778995099839409934005727370268952937079739484429459149877525268221308145181746182851756776753366431857904645826101299691577908942448143910863493666009759475779705766486670650431699531346383486283118264443499787254787598248461040384811779684150444504839514217562390566037493855410455867177248563342139408022782690227998356711575089854844940352252305573730373661534612669995779826004278260744229592004643542707583825280734101800409025743375483203962648208868766228602026261088252350001626638134261738898175247714959292356147640766847565857031189956101648923793523165789098743217404742459916366260957697556731808176248482762318599636202010521714413999337952037266277742036223949961884216907753100548927406745923160876338327654856281381620524648170763204046595213248530915943402323045907578897443592533747290102836776589724068765474011205755401731033755374573271799433170867229894136602932722881866870151283945257275456057860113996091371953664519026526080694861971815226276948811357045168912117199798108689685229771114954790856247439681513113233714441458982724576220633530688713526378367437718181311501788741190759392064309320699025972199162325008652920836268458965385842179382564689478476275380987430717970113313297647979385161612315768405240690274831355574973891207530172640678578810934752972441932030678331801125048330895996049656415430859761838520160969000167449319264866762202016990071444636390166327839715764705444909506745430781387109714949460882978293487540184166251737232897367388653943089089553387161273207613609071499612581349014004093727423884738468639718532385880524506362909736657475950281580656316113757119970869009299188806502961203681945707879073792588913574008158581906212516726098726970970405828747225417553864169907186136320902259594292982723939025398817613694347943040490043807311238933193653506480989117148135920617312601151483138649579784784105865770061278808500824340160149793336300332788645015350447577233899060173916795615031045610615909303007721780589459782225206291961940609404034705458746433252881508549368034497681005946219942954191843545707736116508899655889298925067060108344308666743576384481293950589071585301932805894989492575727577934984515466628979823802020943878309723787385941066667333203256970041339929382406949993523492274184034811465317207342641143910767815717142651336386009182990554178445253628903750282090287117166309855526521797818355534744698165825121355829462334872219042343277027142078655036323918068120360526991128600706639763678890454222154287821362106636150807215268082347822553935328130178504049614552915744644798397104679244257016799834278735867622320478519722088766039713517588248535087286251891390610624931595264352199834001352459837590018493385455317928074552956312487031149220651283333699139314020254456412781625926951970800016352673125380252971893451574856188125321518830008532974277511403932960520095599385935194546987914021951749904618955334986755462150033640808274558901434017263941677271757903012975331700061891603039732778610040169775268168492079468507653465068507574940866928214554437381178742211864708828102969039960691519485942398762889837633705820928523796655406883026626465116691213048985611909374214761419317043076997802010242942993217171297699679421461839678204516059889713881098816355611275595545578989257510150940998199156418225262558497486901403428101892000997322104310445346453625013140115762021788301917355585805469891572557358914632370951001733138442901425240725535692273409907761547691649923667933831891127996969842174925404829944349394669314127023422743323902066039752350617445739142453270951470058102208476223763900248765438719879343287495226935391842331040034946548494487844167472485144659755056900223568537677766862774628792533916431894523675424241993725137653425140320201767752351502112395110121148715073178851956333967404325637334519963202300238487901218714959659540126536211969666207615433657921320280007007382785161761986455901103668136057383227904685295377692526764390097410668151476381062178387049152450721748974334403047156072362815356247598740643228657245948073427492856943095447426594522700835811708117020168405230309510718002238791754179192621353361400631299470377285503174612238778756147050443099999287895339446069285087462722452339667536358235011670948094623764344819113786337517803265991586632807483207544819503055063001253520807454319068494128485451486532487927172045926990134548006609342524379892158076992195958805141906736129714747760102015951010433637132051748390436398847130060286538306882681973881027605415302837975979940869574796082756343835335200636084387176736314065321266414993756749124764855619721987270928505547870120048905913523139844166524417368658579876978493856487475585190202863932286533126330360920890368400923259732798535645109585566079151258038297675148481990946855237048023982437136118288616590116183499668820386159694476393111465062203895756498851152202873665291836071969413885822332768610739584399881080456659282438251308014520012355363166983795321211983768904574371423834170659838643264463882071742683057455179712835127387186152196971228765044393799147736676893212590381700483533661252864655994681398104974302920078280126589979591018628572463146350754273079794193527256445273604099212468263910739188548565763105280849452922164790784004485605599443699314078197032721291735516898459393028279295831297343132548255305534710790819312079442753457677809814279175658072428287215849059543031477532358279964871627999957267016223297691511800113764379796083494206701667482883013262038410444473700594409109876352637171486188278805129278355881644103895703444218886098473811032993648354876457021484354948518008682714767987897684189695872705913501745458340827199040116459889780916268416862730151819723459525127146000322898160972731504594101077480790479596999816625028160059605700366485176653100673371236413425799033675428540617475731739131838531423633988167332180004321767107853013589501432934160859338516260367371068932222767411789034774187947390598456311485526768666788489565406724984848708299724768639417313918265645287416171879035092629286666385846909255189931405562586914834475362458803405527072476673399251598425886336771815024437566671329712258112293565163541969989073340261989673086128394684488929821135560650043124691750243393682061770910202541753316234775959321728319450047869596098110990620235347746306345295268788856333606533629695931474003768764701396508937857921550421827310590497396616007467331638089787073905588687043092497821453916687918719445483679166066069980642582656399823483720268542986894559548035391441331799380647210077023706185463173251180670774975225369714512691908724468638435269365003671341386438727157736332662896234428715287380953506051418879839580498104917751203748132788432585241079053448499301377555781093716654425402929002055873795045149054890472453013014372799987336063687616406521963337968735249900931244945352366321152745344797140336493226800268141005713294379317895678289926659111552681714433459061818454658890177470426512357045139211532033509823977713573680525736345385779175374754835239651468376524499568084699437531040351601702019691855441572325837365276340039289764689458610484133833645169346698160225092617818804838774720703836990685694497300859904047636926579551074300725488718380309726907061759863483708266353806593224459972296086636904429717736150240843633646657578171708354979405688784589752893290508345088200130213002908344079077750182177329843124065373987611538634969394264263757801465339625465366582798294000401108319363752972026326041168630030296597082586801615116989958577937174893908534080586256693046372781409508315484242467880410685844996476023410142912294519174419210661961217693771468864272775324178596202901271309908328309990426251082589762071499893970498232036555632481086388472019128665268519146679046090225477598745108439959269290277767017121783869470874061817567092265765012754270121328270119095339434728263644470945382191996972239548434573617230922745483653568053573874657928820607134772301157077318812482349980744099522407598173992103097440306176943125843016107799493748920087258340516616980687152328010376856551436832977094512061420353499876076134917370722499735768868826515345821399708258516627320303156895994182551542633469703926029606160706923651624287526912843891671043381148801772522945878090103663016180298817367942096851337276714197926782645272724371782037929096232271843145293913773560148522479909159675751963497502576277685590647901172652871244381065347422847955085403738958098730470287962488233094180272937337926291059638557551873208217587765154357410560083206230781131958691208175428023471173759396328510890894844807648549913391910786000646497997103695284346207817260777103556477455174478774756070803747486790365648815413227969270808002006837895307452523684168844474855230700222562996635193291108405488854008400544404301825160171058907980458951882468912257623173091174709025930207207443604389707984432477851917649257205808701385657814348896868801446170750811877826487170773019916740645812676905656845472531351733144905428813746230515713324348060999150259569666254528132950797571359725467200779042131893445282553793482230479693148672073983212499623953013333261199692236200178761571451544154892767219956593550142372893494501570201282655570591117587698070817315941868768393254746660926034025276452132294036877731350603054806417258169874539476730287488038482234527394781920697973313798578312254104100845767207938979645782296290047339260805410175983303934088992192280133449726080637789111675134780533997579776722742565925604405553985065426352162793710984019674062288334876784390362498035582214571839433056346568054708168925736890507685146088034268262170623062303853170211129836986784032422971838317070494190729106501903777904226252416881733304298861819484926403291012329198667416041430069489297758139068200262594443209430698788589045846567053392310714119789770340728898574390577228617452570677784941389817434900330392716818189247254079233835753078850795397724787525530855165819417460724695417258398286808942691246184735357601536951346590034528743389687315223883353240344178458839501081275350799048152677535552999697229985024679190526845614630094334110828541199535629205877871364500083782258756797928829793886875644487725981089995923113250232621866591847963809106489870492994136058685998557569539880940872177125595270090159220833205628961711985247894641214745899953966966131409041797549707988275140341554503487569319800429047757418438230678964963284091178369143053750618230836704921002179038022788020426384698043174401020567999628036013188942932560113261724101462816162379006356107662896419069937765884389109207828026587386950061514576035017827490735691688713576084864907161389441922333092433283635779687328509567505442845720816391550727676463083653706048456745146391564210949075362383955991564572372766152186205662260322053321679711222663300004665567582324477658786710691953320527280677085877292846626101831296132043786685699508723001447900541696040358059916114699154189136120196258540975798369609703920047601658295059937528736263149100196102467424363799405768543337486591239554702954639844318334387775800543885832585782124795690649650227495652048531011310273036780999083152724896727717212250811114622965092755820483200910299725920371773314851289432723561226480782837955801660519617032516984676112073854773209587871139662302919520759637628338978183383733323700141627757610867288677436918133801828225913637139023874041238357073691245862364547033499552367528437570317096507485241893271862427674425232652938129733553916784905499819364032028172784723580263627670395714531561455896427823042256728697508577508785761192021240884217424732757826624064969461414556318765904543550066094890860043176639342541344824012494786381740456337062596562261657478900055050275799361541674075004153847504365960898455630353806628406942983905497335581897659860522965472795387418279474683617878745165802847610278797066425732054556497718747305144834367036645777914049483392537490634077216896266617887621610904716869382155296941537137260533895724602928507258613042226921732157034896813156687297144631721610999861417485208829720442636470988315303723397543316986302130327738452829128422864712261128260943765151656634361023778267884947798558968735839205247850323059938254722254717312498351862094209825968782668698725088524559448341697566393324653273716181179282246109934037862992662153571284822029505893272078730154879580533144789806873870791062286071932441121977737197332869693606615255667662568737333868996885383289725779003171254948840552400002197312226665609607643388359031420005102564773424416747041235865663276673210222329864515931534219316370372510161583570178543314131451906550432100176360830451853409871927572986369837088741525640408550525374829311665795255178830269571772290570828164711549968824971233108335828355982803422750657636827405594721613018647691742415148631823063403946208842065656805581818034647588232821360096352570627486511305312100113458367643377933320230198682276001887939857624187615774835070478192427778402928495726739118616150389818347829711644249024822688380335014891616944239481393661844694659846563289895833671339419418448490276532749104951486340969744329079854287574467427053643822394762008917260624826016609154768854993494853131486499560181273945947644503127555100440868857257840008215287554743694544614605752420850128189320873757320572064471819502623875275277005946108487638956580516328407780797636293545927679493589742689924760842758991165038077022866947109097631509639187527345498711107114699346762046277609672616829409349389521077561937156931973926298699602172262645200735444470771826522445775997735560417349623774564683885638654510103141953604669925012944390908960304396095558162146994723000667340810854839281185662686019184190650304506525169293655796110881660469498196612493373078869782671116163524482908115123871703067733895648385540791135555732352732083272020119041504619054875133827329621108521224541471249681484735431180821575825368518860441769793132659968561024743011134964261942770568761238883359525825900452380927901327644486044603509881308687118102723800666706573564243452388563821597356183135561994725318481359927423810878973299178318004659330444104101421437787341813232832008580406483437403964374100074609747907401498460111520587325940082504720484397556918851526556826513056647641103314344362748256534195461082379533995617170797487793052456704751705590729715292273162687907710894923685550383726990184779989019222013109950618495577760386284549300230935436443842131253413765372846694942102357043430430122057980993943121389263576723184543943699987538746275850129547839836467411642210315619691403869680023820276835645069445385378925715524424776958510662487656762563669756008647446424655229538640919966116943894935883513534809749830245854181784780763615350369485624788358891667334605106420006179111032948855507683540696403172242880181386070923820093196735470495141096344109495944185569092214884811635944032033871962201821641060366788975979065185527664448662929475730497832544549083489778255331744978980512947415526537634516395521916448229041882565423093202854124289966531229574907246410203531839631898647282926133712242438512779282228898057818593404205366171076193246888569138942076977183476621878530572760880138709183325994800163242285716357686533137384282300186156858749600347456162199948937994689934833753045717986372530681251963217632499152439106706836370242656076168900999676177550156888732434456098329756974701506862568891926621011297946141073947555558803870612799545744396667519350150872418013268348186100641631671750828911646562077772406646976451450700681585016905559779226833614797546462340883153897610383053837178566541143318785015233816895433279311965851874601741950285480368776135905797469351094640040151693177983344771445157454495314358850055614099416371413144587424836800372673745189302747706909460635186050854241336541590394884976953717170097569618250454231269152537552798862785933480586883752355629871042282669302020819409332631161410599286222998165070293798364902182185641843001980679627983618538451264381899942397965562632277199270367245631370555891902772231326257618224427766911598961049388334789363267620816715506848000856035555002447900247179494828554671384595491861714282275022197356536901373455338196068164610932662046773114327091618277040579273325017593458287403247126079669765372049221105537456354237485398065701925448481987963720419526378688980930676979246236340645836822543705433444254094466726275352129363248061545085758809929272750486671885757494109729602605527233487254346566262909114629757787528368458096591235650917484364534958659318618344983857114781683326384225355013603653879705032240873962846976378894801370493032756156873502566042781364959131949964376344598087879261387942374344172802021140667503318907202069136511194963249373842236604487350827694144456643490210841246525929752170007100788457129052423674234887489298858355074289625684609420292360320522871553328315212724478569678657779360996597527439288249860873391885474854153753076104813868864833489399112936931194614942237424434328638412035617046574468688433193019287373251494703147305659066306080453293715112436947641256775011656225382148859332430285434951443945450347603588882906404282349770744261932118610927359234383452596149341441255395519356781319774052318300097068397670057574162120232033402617789480871691307728572095037894192782938644080862397260618467840691832610100607792691410203670051823594334839354997896194761446046295096295720455209956131902433088768226032761378259009752134120446911044130193861951352690842372845397141070675406804602800627023339472045290904838630674698662205269674238843731743976818410131340868589164150883663557384043365482541820330429260071277419190197020960222003635222648489516177158812571502194042378656043965339956395404995842413526787198703248048116472213646222301425013915944269717908746368648085991731927606626049990804594849062626194632916025145789753917053039573418522171078933122479274995057319992890668231519796711542080876394635030058011256943055246212566676673890999602109549732178733238982427688317400094215112694034279464293936816437164160802048131392721895059284222424148677693273049087809235542252973638024459805546179042503322772866487468451133084664917157147732165520735736919788036975039008617551947476623756503544098204240404851544584540055052982677967613651516612358780468242288967562580218545787477946128596514974948720422127248401382937569013994514288242592843191265586191338908148600521664696586211031022645912169202913658093661460950304550812275055618918944044320162969583423504029401141355499779230423205283021304679634785119008937884220718169918999490287452974074986663241216635909121638794910112817868675910668842043315452968211390176692131154923137508209026480789363408567557768166509862047302681979696621727620641160695231807823963764525817641181742185452619073444102136928200840094764175402598731381466906725689620424583262678259241307375281079544750409369252583668672733576702900321097267918579280480701576138007385576147083400311996024282863157045484293777305462577074056608912404624890754298203923242786403108628147752819339791090544018113217145157887018325839968645049508323336744492896484155567229668001396406594287883446791299733237927306194118592304177602645007601390700876775518870845109012493025824472382336379055920632728521142734721232643279444075857926198360827113337420047470693468985485838711058963041343534369650114557911314146850543658908959102056336785791099892484800970175757934337955381200935897448108525975637297404569182779026206844330951822725887354970385449819899234493287710730398214852733083224827619850064404053936743710072691973302517468058731625828833534671705224248913407781833007050302937005171334389883831591676829679068381172530742108584812432637433703026724710654000139886106950489501192362792665428865974627138001045910703501884347206651931543426462633796847741313472715456334898768960599490605454460826861267654119408518821894697445060789340364315145461186230915150931495449143297180266447920463549320116885540916887274652307750199997254326898647746012696276676339504697458670366171690576101698875407748239710562139604654084939758160532001550073037878222161164272601203573778529935197589897118079007055436497617152608806891502277595846673249176877875789274671332702116220842332730054632932177399691236812344020407650004053736569707538307973294298438543345801286082043750327504562225763166071756135200347736933359518535476022227459212423876442415661791250174379733506657799864077895442880542281576771501387897165867964070386851144521399943869606689264966925259137671266076046293756197320489421070449926734676351438324453209118568522194970257918446929354056275176066658119618491475305238602147622306899604840886681474077820941486168510178966179480071973486645975053523862365064036490405877676931209859263258635658334207235495039101106138149749857968516107371569558037849225614510831343034236072120130915009865005800890773667451503453211030678790626391779541015258694111403631282382535784586863476408032095867256628454663092464712195674624526489379219443111343276627642064386591901121875635629835765566880126526948611240102988565389742417917598922934761588778948912850418400098679147502094087268687491461684248724460411257804937757374828717053341754361883817357095691280121836013623310025863026633717362305819120495391499449238202524182713308011667394249698596011278471839983383278365894692890186957789512406220853610605594699069945972025419897734783624365636007807433700184839586380663987622576955667579597221084574206075808233012949766491505550420526577985658505376625371661619479806324834166925805271846544590055691325073394424004136867451351349291774724398918873170953184400661106567813105286598007221236856322348829381333549389102885278932861379607406132206411595746988445688800816181888633201053075169111010577107221116007409507309608816986577018868002633339680463494779184947133339950200127444518813992639814056154816601144570212181853847818154872933614934565679747632488374238265261774729571285553501602856191614366757789571188489843187402178608252224226903622394208689545884050146366097318199966671632674974233692037266542790512911253105791405963470292724302528195935613357642627473237932349013120811996009890582567283974737743050785205917850675840582628079067661341013610791739523266625735098040530179768651053396105130123674485930755391218972379169283233928846134231488031547200555844074370851724678327213769167672931697012258260919588946211582473412365272241921971664048512441431754455195336701865451429494877796544885133312169027932453461938050236914756238754599819586273925289205570531462424470560470753182857943039734851079525333686001422542249393619696234344414327255314229151619243959691704542072637699060476347493999579107048125171456745700641608496671214032861978109265515312369622188730305207176297154366501727535626862788575271771033030142904934213377241241404385543437326109677876482882857123131061034829767444594265605369469062108214570402532302847520537985351631798465383606134707783042043092012947371961575231166879004265577515729603896206577858181164391937974583061762585809324217839293239297858883209106704039487229243387285699077182698893800716088246901065931274966447143502426218921427060883903416352650897481538963683640624591649326087064469343841837687151424156096137122586257327527940503182851516622617574925625748999762733604679530159571686441393920578601772820577697950939277406978091616611383983608564694953460611200487910358567040614978620395996165782253136360701395391582044414503014664920238813049289413004986615032524884598631238535919451292610697961541347416626474357888680753654385970159534390539677779733048440300326516463599096292794109726754073863747864773877152104537377728979021729788051104452295417097923802150495796532986076809467226902070699129709223131419582365615370759786718509222321389825306342288673135606236981280254885907561398656595976658080446244605923076947360355947783988501097776150189081054681681340889806180044230763515635304809202227999831273372254926647195729886636214917684705205524367752505203062267632104328423119540833675965492862592195321071487181544868585120982118196007368237049815333659522674722554247806849443379167246191068388581138965506894534447965701462971217346767632342133143447374972205911040667798651159033085400505869385468902517228653030396894793747950142697148157382535494397275411481500177258713928928969737089362376277776834021390136843150127131987555849288731030554192191902024669281162228836265867863327528589489061224636312007919987570962907119298135192258809582408723514646224881983806746085828921260389033414669765311016179349178350204307757773466722209082973321172105384997823070606841013575158521048144887848202829057903720540597524959806945911483992490406569206238461521279905351072054989608561718262723023375921342584079545093775481248950718684065198655737827924237093412585138211633770062578629189093281052326966320490752506817435043200272198850022744345047392552206686124516762513896535964452305712299273578736322950645114328120387615548173561473113225147012962535754180760283472986811000242184545960805146099403507630148551472913171773973840390461153687899259910175441420533665081528276326454528606894388937775446231132490474289974228679399273970289303665741333646618623892402490876589067680422257952745559992513466826988560885184526624804270648364127196085141143521244384122381725667680062556774888491869153288182599983909867008353927408423444890481702579079630464169210235935379802258853162296327760906653194044895723417225827645325268378860375876995217772105187930062508390331880608472855319441128111525128458556921086575477460714659768179637258263193683221804846458553905397679829386517588624347038342517810718945712696960108667461847776349635725133275846770832291965635590329624003186286921463504857568902569314258701094341229078329802181857185707963423445718931089586868650223593606351737962112066458496981006213316702108815269694743646357643143683727825754954007469050873495655098623584047350222571053491925650505090803731715915450671805573821326092685515840133572314837890243333882979036443532097892870119755044280590536368822240683134171591222240928694853726838318773467036998731932973441824442860359346880518630182658686910951029068395365018971163053249898472393641510644135792915260266835051312701298415723308208409748579733627287901051152126022091433856725209665020462855943459244533641877058734432964603744475136025522925899806987547630787356755114339536437920681839570546677078741572885476858087524032503486538427539254368148278378008806358015895434890994554684707197562684942696107452078382102610533670857961568798269823369299336007823758785996093153504107324864811382751777375501616689267125796756049605772897809011437657171237432924233923870219226080470020010545373933078370422385313616973897618445161828839284870335894254585059122025612251894629434845376008839518967512971931898180011659323853074723738633354354227918429564035825588746026053112940785279778838609701778716091160243186729126069270016464382065341571059455135933185605859689234167734973825436126867404542667665969018859729787827063209373845588747197425546915467674316132240663532182526951313797584527632701771968807554400688797126790144907501266972714153591546068499780658070709803100106820022292305403652658493939363300863842445701521631877258683518294496738861998597570919440013201266401353203951556043709807575341221092643879799426081886692951141271512796625386723361930005736287306065798606018333879593773943064707370932918765408475202370455302377594137100887986034316890454904840762418643314128724191862266967755494285742826288891959619022500256030224787328312410020312471171138135879165252619796122977839498347688674047476907669462853670051630192092913823413493532428137373665386310703017908486920602930787304470360653235836482512958264560495291175635697966899020791899175442672984276782568630178158123733789431129349014098774832061621146879839546029475768457870739686776622319134071069226370203052526726716660981560436495820072742251824195253936006729836532331344559566349957264679516442429755820973781695302058406509501220200797000252937800146149934864433145416374122768646264727984194349298116490240895924390777461810458396713763779715803672606783314933928254921957747318300184767930467267680120534838611919335822888479010250061285303976414972228842424279571259980664300784457136529099982755521969218995767115795314347306268747414517022016715085228087613020212292961976304104603566317941685529231607153251158621414693222183083493866178504653890634019204948155658431399984511517397629618691483775390165963854899697224005999370193728566590403563673896783244932222778097016577955768331595331723651752667157651281946570754951124538836797889989950021753959372223030329398356735874867186099614388473974404879176541921987279257836021638463505254087416464015824656547291897737263281124331715918316252838405251835939716899964172542376346717184400057280602195422392139005703307478815358447280419746958946641377021321336679444942862584118308845332729082435023573844584644948859345051172784669473356724842455348373415933872946694170925777631359173129030761164787319179819158279433277744944191378697075652648777457561145155615202731731243072222453687711282435942379698404047502053210079718459830510271926545140364207455928569282094519638184495829128547106885823894887898870759809652542861185658966226824217661066352725408820486459573987957880833377850278663329167788176043373683394501235052044626025717383284747462044095446853794449970757423032964873554318461579715852309836500812454630030410008093665671605499551338408348986421542956017506095854321148264676791976293105897258040006410617573683842568528253651804218813249003381871631487873060337643387737648138320197190696120204010580873508458677706113322080503766857822758958933637619353765232267251157886767112045867159123903541708762089268462025554370286972177483642380359315386506339143424342897233842285153385106312515516845489854746112946740538733505769954334271766504905569357946232054600910432443834194134786956438446425794354334431105829134447407124919430072893909799271700056017097595602869600346127893428155797209088658354660202041651250174514306836175314771101206728540491693244602313189027451482041329426048419324601954989973292482201083546871554374903789484759658189290083002698050031283294991545957189370986915487932304586392741525819244831815919752329282874419654326552533326006918237374871463093708617607474871588044730388698423327359045593538090017600296439963329825699179871781939981895407147435794997303798630787299511690835401990435201952496861732793225589661302863085846516130726338807910469571489651347878613205061577425773637956098084941918748126001061116487449460833645784707625118372820550616336471141290557846079329607094649814786588219685152879318329131207341002850606372591650976452208688954290689427910348292880468358236687451065742618670877570435225761025858811331286475852587291394928316062740935498743630214260078726927726986356386600337025493027060169199479680475546724557315668805348289783828396692751710217319698384971631510719535465118430191975282027305680775818313788828052684790137825700630744509638141027087675200940516798208209142723857638231794037390843908039075918412746605056904127990647266457834597622802492954991963388962992988187663097491161426708423401884822036130119211239104765258374836933699270606102350516819591144990864828370109761271701443048616713482279107424767737289336337169984372162134003683932168323681899764749458493132120401157872762426290014817673748626372671225239874026486525453325877632726396774350331761141657961450783909230646767482762488295518844337108947121782424538882779019950336483727924233478920352267513014372454074036306639038378046532027408876554511730901488088917741719961085892089852284581851300603497244181948194555527647293918119305653398710024133511123880702883553922828981613280607461130615191197892192367387798330667549723862962080741565328211774330994667007792919787961039003553464241216466556374744308859122127843600625570829240055143089682882746260778620240778936220641128477423251857007047828022785293602285234612193451547666665893589460656813388380172607186536776618585843468601343726163070336190638473691143445436629453782785631724445008117880728157490495278697753041996734317271388840036361714022349169203786618928012624701363875911977220165097335807297620233883017960579257754599622904336117937530006339585794510556427464289501832933397017018774282428862256889958436433961721433522624355308849003902126143537462253550433989353827604518233319844721670763020655434040598813200811754675163064479059610674199763201791541931553943127744318247083877314199037597073090018881826562695167889110038633720440753964034799051405046228062005528073828618158892405770093883414191817193067818413831610889462168897635871134370826144036805055783571000703207789471999683174646176303060168606767304731421680356368940008109606015862525509911209044124613782253925076112613111115379760446342672109905870667496023565916741081471509211369925510623007363664822962125147466868722407869062320422158181543163849483212777942553371549028913496761126677133066317368135468258581028737103651773700711542785453651860297715123374889780210453799488169615289962342898128499865061610997426990645156335264622717931951319760245409476203902220885337022425268075310985744626628038411300955741758325013861065145333905559133045056325511036462638306307660780151604018688317982810537431779776314256573958588010236964110878935062456646056456664748164468880768337144292736516093563067160409455029736608953139004420547054177786605046401871236843116582301329243660376178032744049159659721448571079438752533410527946336903685336601839483911968384541557382226311884370945716612199001028590982741312540600202097154899915800943309105953440550351799996318653603359341089734902538309214854199583453065582128896252754935084030531118710903200149471075562270251892301154949571835032556049374030942834395474340020702803009182625577186743206849686314436133665733815478549057710506950911989396176644496511996972518281817730640484253342987591364950504390962467622963114066724227713243191504311576217851309795246798496184425107365250907147798385601854743334807140604821413216629387084423049944571629439524647494189076445645086684844231062302466726758823986072040957742513214199829093009226421389339664155915620498177809717439921780993155018776096362852407775198058975530545037249021272114108431999343732346614590801036074954743391834640891858391777992938139746713353853404293718160119276004385667215942169914720186046415573822890198883819165670479303635428019585698799976147580439044194872152371525131199672303751995254824170242529919689979621318968596706909953169311382479040868772640104527571235739519442868349183359637815448208237935557263812464585996028283756555013523795934717817850551310584368826322184852285160015969655130615175372914795741661192825382892297691134314820739954534183634288885295520237037276250135832681265179714214942368700306202082172570435252323996718678344031214727960091091179079400203208125351701416051231788776694907709103351390593605423446321217870830890061753459377721672172915173650926790032588724252917260074263819407066951179070547163502530496842344061309008185245802454103541796550539218360612117754616579544391966069878310385988452978187018996076781694829324645537536042212268846919761409959656578550357710682921129009528891608011336392874286499805649098353297206487581090356854306952339066791268148470597404808549911969449403712074582284555299644145046207956483142189930963578605632356901336016716322754800117893403588989719229511904677861354741836592839287562711884944893798148769962468428528176883924850252794222282090119153613584364105609403525833772634927327460679690677311283794814885980055272204531810357733750347942064295443732845634186945550964100751316869219549164836225290559375839256349452768439989360942580226484003999264066980847883736300280111460504842643789572286464112487599762066544077485242255770071127927674470722951425164930124540912695948725607433100025325794510037967340656688130818794075361045333829159501823718893824512921154848552054679986794034480953205392616996303886532019033763629440162090858792071409410960661498499333054713264143653344029285364041502303519522151668794886014669585254964895153059863972555038161503056744745794851630734904101465697128382488715114897455427679497258222436035671915251129765828611520783126815659134115321331568092979714278691695357342026273160602872939487148956095887558737158046144724917747319893090314163501656253930910514570808280272214146042139353847777595836567548909379288121228147705504918107953944028379338453469519485609533793007123228041616330971989703794379952842828349239334015845709463305686381488250968671311231392843176033972504301727831785691309249939349655540772700794814633908720271748164862105174475080646238710044533837388772563564331308094624630663390939947724824895085129150586006815401796163846686992515917846825708079416984231001548701014626520236187027192295468647277894399009813908141878327353628982377042060742825058254598158244356399119744930592693977896799555278241165008649330671138667866871906386295087078056949819044110811004008922321217721995447393172881050177161255138125011864335669571626886895193581597179606520612438829924675425716745578253467290476462556227617795536962859105902881223227488357562253978574272532018044107109767243598963270771679109768296414679253260301275895607072785382896448052568711984336345370419292543804226380488699950652525678566599497074112641544754687480774868732813190797584882909476356888137451325537790656068782218834247736947132012479820894069207764071655689300872929302010741113263883873961669162151288288614618645448455784442871240572924557918633178515920085491817233800492195388540896002178359423427387725860118096387922523823304974000051834269133638972761115606976522386737572601056477930650575153402597080070548443231490455344924081623574828671072602235410584075686524650616247212680918436919917282872418717058278663432401427243014706169211714298371811552796264399804699036921917320581262768313681241832800121586219323546545470262740068461043423514526725202093009922040871023676790516248288323226601681510173427065932709081195757063247741735000744752176762582782130904037834396831467264147628655903987472619778238514603825133903940832367896686765583530594504540086076831126827985566080636144370970635766777334156248891053737776225907765929257232381416057718672287359058671079874759604604463560831872246777086629678753428901673188553169909758244432108138372075881534202185374226340560075348847766538708090254872684620831829077601863413977236603875597079748243073560101717427467628128423822628477479742525718973370600691789183705065647844347384270216621163451106140662143333284164613875202802279181272856047537851660251047652968259981489612113115502747536785058667812564115161839473242088645929876379105856749197092531363021825829946393202116931998857703730201207336080379449078091092666731994537579034930135526189845061443931604018827870480721901075271810317197802297551535563725651703595160405873338376182996169803259218804563212134519880311119819805868690260123584698941583791445680620220707407720293543392874830821187718833044877044503346001034547460538494894974871207007080467349306596758533301409302596202329283392549818757416188841171665926357284766190503842381822086513150899049860974804686949197806993590274519334123029018684518676494892116237808852538281078168040942374784346399662809156685018184427121127370788374684633987357760771979105646373664253457038618781488372130487472640955361137954546196019190149887745036163518304502490954429241807540914676107089968288588818298348169126483754792143329186525104269183760086757225632409720548747509521834342956596008931269576014978775694656515150631016752082324884902051358544070641116152267041669520050531731787828405345701984564076888280837952185511618066207258918748585887054794015735542703436391692396344784720441496973504826345243556226540993047758573535160250003597797607324325168633210567835077016894369241878325564270035987499947556180049940065940881221878681870313822126833210463497907922333397491002561552546323090760029430210100837287624254088344527250605597132924107739401502821610573466186064232787130149685422348567633501078236832432248732497461338881103874002170465423933250453812054893156609191097241315920246063340755081618001980002177987400009641189323225793688580887958840208187139719700368831346606194008468655447321320675649918954180791171713933038166621285369797058410180536089872536057493107050315010682512468426661789994243167114407316321336214589157565521614948096251424851207550252602074302604220180883618216947704722965700738036809615612543694478902018352161261413315934021510436901953359262467604508778384034521886730648333002817406549105730511468136403169170018310875452510172294752201466908100092400888650472379910997067242023432705291008839963805959441205079260043941760676398319421865652661115051040345325026986616516834175048613302468433937327422871360749575162801246573602761551085991371572633442092106394030705324075466718025116647993811667818832619162304555539908031371722052884267699798812368475342478737748231565035291847102160511458724542449612920760883150688206493068419094865023649855924536748381166338807200911702692773354244083710655792314600573534791368112712885312820541888577811337449831017422777534762581440876869240704652202253703083555552787187674198368277015347043074286321010967973950524257335370555259884101167217289793047514332676903445112579038372675972468459036837290904429126085947342085275913716017663969087664629651337060351151979420432803417545894194113973451279295242416450556756035842866940673055234558190046376484096611508944575825520758497210828974940359276037387150722878740360701441977688400414178117593813628160645166498683169365713888557837244799027794187097485078636052085708581522568098470015722960056078480868931799580519219130037384968494391591375400638822432526627399717832625561365564618857726974461895099186816646373704000687970249433270608428564074281294762307300472343468887293089570702275793622917989320368972893657580625998190040111998174794088895663090513901978822974478725906908107616368403759993935803178689897830091727994699884887544912922149962505157196869854263854018849202835551055987359579471702790672136017017420571909047530492078093687724350197180311264995043911097182598905710864167883102215683754834086464488967066997654301029434646790420626415299873003179326909635568811580468228118669218645856418458461544120101782876106720897353888563668555550296198645692583045254093868550006385859356774514277208663602897561373022335605870475814211792653936503046995513290321347906871017335609011042282089349820438416975951002051148340699356842793542884953771603646467900876978352842389242925617049036594540703464049406150656250497489903995590433957195356419524776043588623270008354429468330009226530462716884436998520021538778293503833786971301035148167233278978435735393429774536208545779146229716645888847373092642153537317493992084490105353487473560953839390791334565856889479784813684157662564008701561445730207609041397109757922495703662315202588431084258538504274954754660637499084463174216455926811683175323229863753527309863173897214720221620202227422033752682708919510578722503981784308874999169953185721432448016364403775992103461387084322009035707039795409238957642264934923036412348218969726997786366811920458852248898196529750393131223611605974129267725887946823205630972107901912671494922066004689367198930215701290197812781043010366080390023451883933288671585120425493673772431627450304585885140043731975995197210567955168785298018373796065031500687373361901874014733953195079375787698926655150785989266149296085250857305042386582827771182305216657532099868987376391278679573180167512561016797745042765112751793748576126325790858060790091235111224792955050812609747597811475830765536616574375518776896928463065427434561292616716090391376711893007351355234647475221112590035064362367980630588433954154019978638090873590237120630136143979630421974823581481535657987872111304160247347829041902778923298460782610690471564954889884194834942967516111581378992400870752261834589120195314365572705976029030272659570850394238201210769349077298630344139026859970198015105580494306108602051030845302453944732692994670606795536045171451852447185490166425484211868385653434425768367894564744470071706827435048277894913504153646872554210573319832124222005157632719103521837020425291650253215156078982974418537658304847371472168066923024576601206732347684726673461996614090719125268079941483845327664245335564805211614726670654643651334279657662995233770924883573092318037170131853724238788873500113945318614956302978544262318780620268979941857394150536656777327503507722119084346493965673752864905024226789211309764218763203237149507174359564736605948012444935404265955375162100050386593971072876012996833800836024967589047543495106012215111440412829138139877261087836161961741350982537254161123806911616685908750993862239789328819598751243184095296847763545575874243524082582089343871971293009937196122667733027627026551626613316893603643453152248994608085964640370383997450267570633935064179342574519412563417773257343280442934665163180548388198228593928401712889851538475890219382596883923094994115106110004969702744456166841771353863082709019278198300085266448820652773225177136177078316546071858208776207677172835684282859634181896766555392620220101147589791663488478724479965334522711686414072900598882325674463924998419044491602455720364239127431166115422294249482186150329371018903792058050142683305897620667542129106899650780768263823147123402522829261493436445509242393540246287532090166138345913646630156436209264708396409203319956230362244397264964481563604733930294462371912809880763531009166355402717071129206424170033581340833904180865549484224196567083369824896553993115980531460670600563284332371937044626104111774588767057226420186589759669637219015270013052988667965325683268980983465861016951247999932843473698848805499782518619164717622881484636564494457069917119155919334800406228027960801792436225369250294504011753683805857830145576803938361019345080073093879492280042984423597407610493513850663667660148910293946820608229847306011352566097611807800446226652217243697813903089205417898674760717261619113392012484557231483484573556165427455139006149524223446695076883766103585260611321634006483175774474871723066289552620126216782582004959826862653827191099810414708362818139209425758948813016830533283977580901880091529177736528893605736604577753708829747564655304417849112874564678556523388787434181856349919308032194400128962413164426261023493432516249666245152069552214549376052808729877187193118109850999495219632881926108168060663335402930392127139910205387439430174239108803027470072079923450197384110856010600457251277756540393570745932440943206760196421781574443304540011505049855350737077600160889609163559215966476494805827668739384316184851360291961702398040267013560366456429280778807996643375027385252203232503370885420803633576321270853658652643801259108244365323565079013867878124984667186863080782559439062655846663510706972562882809018467453342363347101708660447296219034138741210060642233794926065144682868985271990208686511708900519585658508644198675840773877927498468728106192353482214205215212545959468352890040966383882653863745289590796249617591910989426546229385090042206088862559087432331573498788702132826185624495965636528876398617095796512341087750571737198835325831535138332480304142998165917414887186885898027726999552226742418645549296730938733375478893716167380358128884497991093098826713341778224460355521414435291675080732664516761037980885108159889285942731233737664708030616841153978636279974503574713366898459199280670497990847719365066101513292944365111665453570865326829828056216576390499184772821990761074130110086352990249799617101330536694820620812314143722412177922851899508615523707481514168432572670209904715295883026086386453793166979806716808186040012083012606176219435123846770495370052907356042600496510607415507251451666948201667915404053602900340835104188973053987856909732749920781832438525028053361620252668630627666602346992522950801597079901319825735281971901940335227359963886843228426028982779648998170382925310709122430492421891056737762556654569478853371527912982576307901947311077389792331370095688642636887310304697243534822870737784134077593040890264877764949708563671453129121308119058876796535166360922582511584539041109818287685372140337014860169741970039658858526446277742405887423620826343271025250049670915750131236423184723042616113360441149604792817025321332778710935201667055464393669011180173963869951833018469627128006491405768164921970488060420722177940602185935999907777405148528402233998586810876175714243460602986658737074635635024293303532849712760369185623212570554117854516813000297968794450660930437826747236323827095537508288516967672113688908555178893776459804635080927579018401360714169971535656403645347040314612319697260665719355830678187880558168022029672710832004477717614223372141177879967653051296694340802601212659965829555542550306271063223770519375793333898058176723139366531821662669286599814477544506934668103852199067572097553706409303857151500381655241855172421065694523953826303017212542346567952893847657804413668247239267682776421500960289200580082513771084685749001018615448547198372816934652891023760268089870807608981410908119773817258157213215098825013891464391468127661027359148739256993029982372591450284657246780017013019164890841700982756919233925918719141268676184099016918745049181983817080668492814098119018907075312753035058307036817505397214345661838485200998413334938593617736124205770437097790357111998144905583577382140611927895933066514005026929927417922895471018120694791970403921747391302671857673116643468167994200728308204064296719058381124447427104559337523793602095347041638575241147600604654622649925127529657141060158727125747335983485945956704831527353213735656110344919303290157620772896809757723137943656357388334497121494168881867972971410916327466978595663623958370318179841541423469932331327815607645442742090974090976963751315523154714557780197778133305883806818218567195763939899078704781692888418758235111126408879756314789179313635849083001575777821330250420981809715108531153831063097585634230185035802984965370385693368072287372004243258515410672873264874285069129672888621402247775015430091851760780128152688359716389155266073052651185750832878117773321124723262776966993029395700652817310082169206190522373887302514094905252799951180758673162278875026041282265460601219089897858960244219570593451908524406790981077297483723882247719828166301830066483215694461325263238699478389002872563519471135093884526967049288292034506766858427420935253016837441440221440400159771777003258428082467022098756315597271919007594120027339847954916564767940097006307290472011378748303254712860752532082237519931633255814546376485426845491939081610505410058850147607163085737146241181976952840033174797676474896933680755429452089316099269966363434961548030225369900146825119557660902305416139513400187227674955305331460433076521481609655455283283485447116725235486939435159610938844245914849288254886878957114525942583737452809294325228681423002008886479866103819833267319307640259474350274177032070207174144735086363011225208764661848350344287833888026982952536818681673565550492360032121604017781116559286120379692986818072770719634063456176591954941804553799947732734020346429335344509833611058895879627282753265567274234737066516134211156232737994301197308099165066355394140208588637936832911240126878141227439581341972875429660037122509189183054961424756382298722358916251420695859957586163281096049037506102004447571689720729951560597825951688429991408692496626470211774773823497272838791555454195169684332380318055184322448799084927991297207785159413952847479208806745205367736500271474125222490913509842119444982692215959863754386807845801081434624117054096502666628876954189730840938118360867228733303992312899584737119908370216449120697183180383764342855485789175431970869517918972764597291954335168474634075733283715256441998349951821715162803727647164894212597026069655512303866931374354332085426471122003148498464625217414978300999577462009355367665389336629556390118371291221583759206120645012215546699634838299486683126834858073102445230884156351902964756372935041596733815942405191588301402817008653655300197173544785013354397486590532434036008448977150312666617807325344103382699297382374623078048897208999120313469787823498756375313084155648776332484148025312980824571794522069896169757292822639027166497494380896414182051802869821774639750822092791613550373922255822835459200389360837563842444484819068282633722638010784937719498137583736726185307367041063588691510337486593027481127766133958120580263270133366489986802568180917309972937204885036345880818975569605703992796067627266637236751420715748753752679954521966559077250960262533132767107962029580265457618708603828715746634248150547489957584604835982554324871554801613640299558061254040807397753635903367525833084508393616979229687018464166203149327598454555801895917508704235549275338653818469566882472599244245206031394195245784980895005282208451347055581380711198641226674120250868192910616475988882147952372830123508334723710907736228114347050260111963129270786013174091249159114231345621196684493471892169691945775613057678621954572538169108496808553294533669072208996213024164919341765514491196353480577369049921516255079771503553124990294203238573709255367184419826264193574884210529264380335576528605977961079180180721009855043378347161157253264098198021153704658751648032724199943279428586710787618025758264093677246058722468493007752047898698332799815329607733884318214133459478894009852121597451088724248724190146710929664419107224718082834146933748259130804712964754537292305488967293585216735704087319849501724796603454792688792625989804696690806022948498040043443676555197318727434058921770006966981765838052945587547358445736595083664535594297497075652268380131955134368763237949133308321073495667518096796264122358847851335689460763694666398026189207723453829337139231544312649707002516442850376973296043707100475248215679366920424109229731371956556337088845820905441188115528927754660037096974706386577974899845343482740305015431592331327780512536882234826375498913499828358516636509400047440600992631219517379730922482564032954251032893339890834664169043153742058496199341576088979063271256617001997082811116220141917004044827342394871000752442162969115598605114716055442581721614436103594196144111561785478910446918359755580513733430276288842961250027501506636416658912870173948385251823546722354968111606921358292980150259472201437806058329003599126058015543951863624237415297851331299831046806507481172528254476555332703316364713916649726642742073058886002624126006198602465709412129475895045002682757615234429315490330085914822369121091461805645064759934125581100067696979414645918912639273448967941199909170840354414634370154269407980642994115176695895238134047811796833667522819660494286586799193478004070080398556659628129844528405187851158108805674413128660165638641305422792350825003859651151244370345599802112661500782037981970114416401427105870001131870700208893083436236495260704325315318615301250744753873309268046818176448017635406703816390496029159115932410268002543999634367140814392730003033802478518107415822231498315632634911845685278385371586545723959216623767791781094655754578284630233319719713188683620372181396941623389561827657857229877216976625373376392507367492586235457437852995879553245529448250430657525769840640129895294749016912241199792418012043694489959786295157774877744834695923593417806229522050006835293192604672698085489644072730290285819640669826168699128117152187555213906643896652174757550759450823218302114024926304689820345767232393532207009570007118650665557164447138118378007863391630722043121586543870928120101371426125490468757164174345630938359486702477102604213892787053927752605335877865623955549108039188817381581614448246592193972562631440195364878660197215409835053658688848015634000063995334472238991493209924405834794909195721247781800968185876734303710643729492701604819523022055337550535479472085269957081407574944268595726294888543048180956448302831870754176136810913309296307224588424737588439745335392986523232460892557262266353191159416765881272420711826675094302701354480145050756233732680425578941412497516558458656285185761810008658180014159288542055672672605690569340965387484213991305237102008379839318528456619400442707204347071783699850368299387766039559018634473922873945626741601379513711243400149250636026134355265601958181885025908628314288345709096023905865967854419987173521383188387860408578177407581010708257327393082605858179745573970730282841747754679347702061345227894987692177939854922794046488101578996405092397977430734948208405237760704493163406321565757331014592465585814569237477583300201676904303780722415901758377462733306123778181851657974807842517567633923033929074906042887652454051118430301120813866819177449986432263019241936027372015154607261711896540946109273187101175005313864670353899258211862239930083249021186551836931048078298893800066906219868243292676657281642753868874153868607908634861927494219169794910929197316804026084716562349954477106877174898258664709423445025787901161193717945011397072489393670022677402516845904142240773532557281966509762051149383178362943724305034281795960383951666420648943059963202294808662752514649608216637152547785532760500156280368949732337217453184483872212862350459134982623549102683122787658838911019672937895217043689265252266548651714004042365144543107997111857304374055480579954456942372166370568982604230473989750881829125767191354428793378407706818089036650745026760279312403816762267266544316517948073914152268419367837544149952952834677948077676370468605489335939077020154494243850809082500612968955063015384499582818579830946857551983163320831336665368037335198663391414231607356859079968435888550145065280738531145842582722167746954452475518665683873741943368820739336635255394088883759488915158048714229268504601223675665405472611369212188937166990618235393154578589260241389584048177269003009101619523194624644616879497946942352331580546405643620015863674704186116989962727340591811709041777454818823320631151385920405603450155130180189368422450352414926932581937489338573188163174868924059267093674821010173996824120596963714370467021483868963631041823271298788073856105287635606479492636403667243290985894066573206988478054680207135816523656485873321808019098537406284839596287879442726636388882081316841112560679780286191129599608513799838420920622691740231485642496398398186147218913327212781530527339596947211686469394132859967277402336964502216958182608849981182617356395551707893412744306000670394710520971948535689008251527463689440700538529580641345131114995029785497142771101421740387051707272944563425417737133441023802538334702914380964590315158370268522230487666044799658280806502346859722099617569507722012778354689706267653514526272522587010984070904487958138773289428284997907690798142084106141640117514338316176428635376068800888394313701315892242122443186088668845534576088120350887659179429173877065457088146695777169321288975824093536736103183042083087092280316879304616576281337950336824038811445291770271219662243978252981074458544859686910993210449682117926936624270137481257300306468734271403681795056364544234823994932829342885400804117092769873320812878205824395134821725697062514415578349336466016593215268442441386916712433386706525192358439078852330508825865804394257034822719941373413095231192349256324740689241973524236455958620482949333457692212324899935235959938667239594489060371404702315747903519257192391315252178609397492550514276183268385735834251430792164576236952142080359362566374066561148853152733960174515523004018437127211187978788914240227944510964223707723130197740792172199642490862346222292165403120691210612740532233397697614404754428253224442561274749385607216757002646091228740073318069174134143201464614233558285627171757960388530559302698359271570525945635569173422431651050181975702691775585769697773602658390228817637829221763239694546831131932435865469629744581867117735834938824035135321831555721447843034030553744118923594074316272757719893542376666905220071911860462922346184489139663115026555722540519609041782082063506303914783566331000861683577687417540891425092514540979358246310102042357082642322732629042594255298015530821606235990740484473609394642087066123701024368402317957743777871851219887336599834513708550151565321569259676327672448977715310780319425235886016319623783738732536331226872497603857084842892114965597635976855229205885721898597038091695051827833479980173547889676930318386265218994440837375069161876888489467012794272333494959230527197802678643569793095150825440070228288711255390182250626738579590055257000333293783000415732646230663698391335152268923001487693272956623326450269994408526924762076473433141354462883360339899050643487467525601261896064670964889227679031108762519646324172531469746455859934433435918213824642473816153203241540115511012367537210047966503233407627514314353923207366822273300973611121888385689981729075092687654215556715556954539329783051126374805400536252000699428333416822552669234936620535302094734562359127147201503537760498344047256952588004751884304357751873334835144383739861829780064034440686000668076400935869447633293137608386500685365356259720724028159410720619915618013214775212521999226339802670549269464860430436615861273139880436751827285868752737727679504016106628121710231989781163103788849771580752281535591047075801739606329095769202795905658498936698294204809688687596728343062914639872094899370816024628013561099275405365403570480859091897089573614340851882993183419684289586872915574013101206420039423009640191734218040419185252658840727625122164814757055345485895509823117768826922927983170978319048037139197002046659129183722690022800700642956169431545138364504609167790919016305222070252594561149098758820692153382408700343586416881448466490710262331952296746370720304387615669444735212254712513047532996473076903717384922955514432150686973835011788902781066329530463892946778353750696117016655742845886076754108078659925764400564324139304771829074590740776260135564142198397884482652793937754571905190657813999557532715170732311073292884863471297409178852694150645829901240938568232573722861548825841914740201827689958769728002298386896900161656598057032199354308151324468232092865928186428027830176421814017496952699685211972754167001789106434524494792529708772897630717952424100006106756426218341642924571702153042996728015881394079921308749595763403164414706960229820900208328982494005355910831668009247424960173107829538775703993694697986259630639010013873138001187283361266359486475874556582623965301824985362666842627771354508468208093991913031143845337177521311055035395788559230191191413900299487787950961454834807481109535529949472006179960929151290763280366809715615134721313083350821797285877613207728016099676045005491466178384960276124374788400243160354063615048530085371401758313221438167739382334514937896045774268410018286523578757505026138523562419887476652326686174570770765473418619141343377930172567324319982299572903894067055738973062334719959404722731619063725902091502911619108191101052199297622780227797233799441506686038977208884794614109106854412995304110406508074974849136967725914838400668486913885441682065668272580014074326089441037972939258908719278223251505989730009564350818668428198516703765782438583181271884155381665298744201325840063107009373545950982548477099329368342338911489294737994577878016645992222963348140737938935876948335429619556158982498160540012341535381203308537213681657717197148847053819681957349263814802819038865760651690254140325934641263633741074579382098635677522839272267851565088757007353329582467841493418504764355360512491088297611236142874086682084705858511246763079848501610283506228971681455596201930849836199427769395333952193209039967261973267277325541091509596729810625574912865498814727513520894196866061799461675464813090002761344421080566262826246689936843680020606902314904872591411531721718273922801224790750010300670287290054798768952162641402465134475924054103497370222386074627208300790354190902963254200280335265566027863168095839231306838682213508171336126537103084087982099153350644213923202561212630150894133345182043675711280901992639915299442528745553133790024131328770897355662114603941751242753076135005851674373733508082628726581507698696674164297771688058917792145901749318411891826568824928229279320811835778816235623378315520051760474489561130068291308955237073067320113515557926269439009214047406815843810702091290379492824988794175073195747533981397364013416507067552356286963280691778613804371725137564616307645140502804280004754806272285590931802813063582176891426153664982313809121082667232946549102362967101638231828444138543739300488948390466386302158215351837783886617039358086922821628378935191723432084561403996650094453105904008786885805786230380290309154797473590934916660974722475737902382487982721938408746889188799052165837930492189351009061469612690055724441307594530361155940369440893021308100225589553171046256620396487595586041772758742726369926715161998878593857846637826970699487522033799520734915011104406592772171291415524366307881182888896214480271356654623722170388116631831713945300657469177491046920004686383316287786302627631796870017969741866480790234647627021104099260452027168504173294230705986130798702621691243858769213320634314221203499124746276178330776784526135097492059802307644148488406303947912196665781742007461909627547915072756346529619736369054330449844619911508691627828975970710571055557695564783729195411908618513451483022774740718054357850863011996396119797855421399567026211354121778099291533832614412880607618292840367476428829505890520597823323660553149371985564432424205939131201061278407956640718232917262687814073072207072835816923044796744616695178696045163389652429524461745207262530971968909969283615636777740005938230298359897779595465959530491583860570329501596169874336838061769697343790092155971262133048821257890071144236043175176552576297438257985206843074159395928051959151887307192582575810920303793676950701199116735236498015343347311325664867756238441815913877826460278224639107452920169299939368804157052457367042651281902991800580108230897734781324766609400884463702455177676978224025360100656316790211659539031231078481584210884447112395277684541595304955181457327933711300029219707804001604923806498542073799496877005413416922287432152686506380482667991064781609215486859300612146502823521266436007421524588188223472135105604846946313679773611476240431431852302751474288657491076389011821395730526898955509338714109476967829058099052909128520159387362171643463434211491327510251432192268766007859486618412571684117639593712565912487676083779540511298277242661122750327259657274095736150433477019709137131010114062813106896994821690744716223437918163797937733290147160511833790262002578583499549770438928383986441797597758756324898653916767330265853601612309261376943194856433103229073999668263728553882173079943271035029603606338922449225131227529677719074062190891717386627978996021132077822258952752500210175766014499463749896523948365360451150528173029261526280975147330853947453149246155084715809004269503915515525649855018006301290561930271581701013953643209374701259783292483542177395507839822917287811980875951801969722659202691664576231767288927268484655729549700771168443350573311465774029915757799119878039809596443528430130449699764301387068500666068938927253395848720255449190834715585274379939138334018943309905748887359337033401360906890277316747961396758866489629146830378584242590992928424324610298943960793955229759330299663951153744294892714590168092513574719464927783643463662654247363347934747799025345723815798387371943288804099373094416347022404991466532709746201620599305189152592407350118147557344358315636376534006202354561969898818672580679246070915018686305963907147649588285002687179721866114178759571923729313933432527214968129645817090995577784074830774407349145631429824372109065480309239801952338348289971151711454108396239937081088434404288367430737508765842535925694089020893570386821859179887698029001961273085030176642956649414662458942558680351683617919536467741377622665508943815269998063295494819838969339247434658714325514529531177775661992685292525823118202085275298826685955195401507910826647526253371666281360770729823271998125028662454137658340009381535035181299078263194703901737678248931293548449790661774420147718980683881630569379711209000008075120332621314556231337637103712391834396315243798633397991615329511050710330186639352238774203477776047440549017361170013733003728794065054148710816014486542211198890884661345297013305565942606187735950735817084613662624142663916823177317353327375367857015651574608818052013327138875439843248347439045705674659019257510363850424097837084491652577149810886527775576539150390177163177567354756270241949555427273620418815451284555857579758092859214351257625061051566955445728655070241009842622266410381307636996940373498440802553490319023049766467860289718583854307661523996773204615206131322641272175241521926899351382839969031243237152530840515588706893483515676760944502153146037896777552295690550571250093415029085759419263086972836197950691360926947539090017635429780654306215109240380983806682354977304279024495823056572187380103575639437379162485875440018169063351905049275250545073487867032389943778091321935488636394614564891510164112642877230202335768046390175185522650271539435325301923245826960809767112725415755611265603046609823734831235451701356224647257844447750518840820100061754335191461853566812855954404087659692024500656166484519470927871189061119327517433505756977622053599922761644641608733053469708262327256673417012693333162858671231650306925386373071880592061622715342610277799064627925998527197757401047355954586638671945513971012736258558481047724963923744406277315260306043200741475033031757363265612686963792488212430335114629629155228785270039725785549416714064763082858393802993359745668860761866264181667884437691450857371749726568882236625310314721534759867177594074052185469480623403584514536079051683849883427046988588295947844193233136665033648327460057170888494969537485870606201006219178720826042922102268150286111184323693437937306351810225315615621124536637985162106420041090257770398700625044170620884956305395590577377711736144055568075598164626919250370932309198277939129557092112505564926972262331097073747244712095263706961192579295693139432394166167405260642500433753709093837727533786547560735026024450882281473021525684143413951581800456755958908762371533618039274872588370752036122459994689091683880383859497974762458419213504379038223017416223460425837394289183360849320053655571363158689488326389120062242340034784185211612423825548597961136115086292599373717750511329294053636989521200203446357795209961670450020068052251660926176179233627162011985804752100247425239107536487238208628936663078577774559438621433834254958203661431671628565134523936509045916393062551751574366841744512570038448253275018655425141975387760267651481494949981223226631510064759070060638408842966824535240599226781836188720203755754723882869542718092998796267083505643579714416534843345229764638606849895296558816181518253155645160439651890157656212091320638071177643770441457930986242848205891794424728509290344719540987290653498446303766973984631940881035600707586156241359910899962903767735688716380111240296336876786885340102869212299431496373072490879825243385672243451380733860995644911296151858947163343070879210108409043725217304477911087357281921718788943409013419226195182971258684353636862459652504111342147366648246505844156572456499266478403337190095186670962737080695631511439922148301508672887240517796593515356127605115783824371009638072141949502603993696388293782965429721970149870922640275078924843251240238633266807348270521870087941484647699314005627250228147596031433739099802111927927314398774194979458314891091131901572323890208281251890116131401144673791253949402111577340716955545284282902086388914824645863200097693600291271244103608418472668490283339144578968217097170999108919234229687608676958916140251098693093102641179643553757494822027204846191888168755353717852897887942919756615205531480111219833722541664456621876524543866257529579714394068683557706312169010949284849570862168467330831607737482181746087558522004987864355081048576353616062034189277430879161964008273686111456227835529381276594541718259832162195543777354396471799789669523983235555411966463351209682215657438886922964927855446857547861895081333427861264003775788607329415772863443579108631286566930836972007789439479038277576787386552709408704977433353358870389774149880022654046725725029964221552364703841309548849718703311106860418007718588124192765772405647548858235577532702013394115691942772693613994381676297812161351825362358893567745581993111931924927368305107593339202701551906457668704335995253835571847220906929451672550375508737540504709180179415614781227266428680178730382263072796779269022840549301317564809200624127521971445058601167161260118958078274546106021577174450097340100153993964970099211817378933283589734858612352290265973691692794391983962243538401349437087699810739631590298694932384529919268308494229391154436607859058018296998484914313722049592685463736376753472789384692413741439899302987430036727630679722218027836022053588803228514837702988993403421733574987876200578308336640157522603543947447369315912262814234567400913316794699779995785166910712716733591392595828464708072509977364618208643418354371331068631876522449888974668798129156766416355284823936520589259408412749528434487765853787939742591769118063263644164745240698755193872656651835956443292573525648181659297230964115405122512226586551209378296851957291444857713543188046260888876024987363462173256301596810924954017832576448683749775024462929518476528012610730286367801406598681840069842985155878504368399826825666936633406833066101486344664281654807137683780945994882684446211804285847923197514045355765974495968338000302859992469703902004204972196381315465435527474347258220638486687229105684647588236098078400005049839720724858092611922041486961945949468038462615413841689376872367612669137551613695998942337341778945230439500217715977221683040150649058669064603111447099342193006032668853609247026251548293189260719301708322918437775185604391410992165876935639443438170806414726835019563660291749846900137725330231242299103272802898674364820215226874798382378349981383410919047312868568492442409477584126263202182205872417875764881093852488100116229476233457025847517332334095940872359089790812975628754960872530142510564371948336499544056727188205951434881784318369373668270552437330635387290969497797556277197733789376826795219131139646101050694825914685724552954168305761313661047662615913366182771996203331100007441129984634664044503356682866856961119833399192935992534600270589308413760117906191343293607870704350553085005523781475477488330908236542874873400680670439330813175180629798646377293983936407662426786370903457341402449436214720242076973560687095419412798900818964405982108665860299945320367751444675452662416090719639692614458777158450730179709970115199130558102740791827630226777478458940965750216807746561873796321296375893459757048647363986858944307015650606946410320157355130365554880703574338275244274525086069649035029265457260506297057929419858350125563020068280534846669377967839997579672864948639739150604969828508311528194914763911989879737506493486940755074516263032539710535570176782567358981582666368042591305161021011516858470834409387716073165322522930908795766503319323430330356499096055699993833324434648136478774882295817645712759258096571161036554760281506324395562239592227563311116470884885470273525636272306772991740658733176596996816871167764037591743662519792703297599168213400325552408556606262477106129076923018943476329859786603569398601779787570262229990718790724164524781789581417769161475968837991397951506126393970654712322481517523105989357347538446233727481977488293095262454439835389745156700883535283354361489005764468831742687958584686207272913774307305284305705210863900544786836681545165399245632715823590282745602856771973805227510802709496463027357649156858981945183517044781531687291923566045139956838179298391212832447653183105173824546189659745504048008004875490530351436429175129029331500872233366358060126406901402792484214245705700906541538309789659150002885230778516806958591149732511939093895910331175412030832331916384490682712224455484761991790817346850785796436923521700698963684514839170833011275239446456116445905527572453071783660323377721894691984674120846504189047618374738085943758718674902466999222207286414459378491626364592321517090657254427878286433417155076715215181580592771367599794514334192502774680543976036793476669665070503510501867184877117773127873735347688349104520827462824202365297933578212261470181849355365919843327521622858186199272598436756971082357284141858838949292892262873118920834505915325017954767444440151095970332690111653967372482302547342290333215714496418593710540215135735736312971814543345101405469728136867273187717403135774909582946011705849826668858308898399890352107203578120347132900654175990451813728374179752131636893878942865380177763866039105147264619969683825337855192516827779694776952679633459920684059756828806614914749236715834158788414801938733885411198154218126058758642978880019305692177686646233381672558026803272732828835664131367583146025438477004972118280563234688884838570943499842330244831620236696384792868935139268358345199353805995232979535003640904451013120301969234805650242207421541871446482780347828297669338938477737761523383461561286015656455298826151313131232101778984845718956154085200954451525698060898577156996048094015617520717310952405002833932191774397951054083924370101394805180315591779519081870656928907256149825373957610008941825473634883676973405043654347615557059272280441481628193389662919011903862033153763422741431051497004968786040827371172428695682652990275409632251528876712524476230488388737384180833238173803556601590245008556957541576902719458608538959617221337343438770954266141906811839683202415608294760195200363248919176869224968754234114304589987692985756451021637268441212288198290737550834046652400416341208788920970705819019223714028509205791888815223229993161213877287170766065574116340188249671508355144441307738402721302196103366812667333385184471040784439971629671049594333863915895419998353849510889153420316585617178436173600631161375045832891944326660256714389163350613523654895318961374129088583999727611381307019450814312253695307087724456581879354617145672510284304334463834341234112649666177257915341815165573283690899851183628223768497416040727915786028555884002601432731302610712228372544846958477672213831347250835973468390725035674545524668516920176588979222449453104649523888959587284226929893505185876271543065137906361733918837625345506917779850713553213030123961032145343615829151570305568224212961678871424348354431597794282074314777892192000062934002337318103578516592691948677221943207298990930757507446073632258854575303387885999611575863131546231671679935080778996633219642919957356428089316199101184694115120048916631088071271476143959793474993668002917168705646516385592634989043120953911482086296885907838928269473927940448538636524606304691642418828251782805847258809714170503678684066124664441672772051037042957730789570803073046166556658143188411508823785250701280990247250093245364363363688584930681638746072792560365653959694749523272200833446646911920938141636238123513359015174545699658024312808682718459462323260083711805172151014610739794184018872768582906141719944992736319456303931867578773552189332812716679230272004405101391815767246381727665307548619132315993912438157276273213074988249904778623578887119921852487291273278533712090806436155319035455024033217944033189122186873212783200346325700954187794920782736343653485463061976055618075497249186694093405487057837573698239099791449736658172775944771747661645471778452799670102281815518800957192207656232099277745430785328552674687110836512312489289978961160573702666366769063971585596644003224243344335842300842257013153013161089178588755004048367159750630321179154175257770670663996074897409526949378585169429819585695878717755533619075038863871409273833771665403955852378676474203683592287196176816525205964140332614577465699353054545596683368848808266139855930608058077292989303366844316299997208309066474543295695901509152856929428861719105374755649089448797804051675051979550710374127984598658779086302307222426196196624722420302292396042847650958195985589479931873507247058472255459463490780661097632940412905574938019506344731651416602564326932911234839263591997318991431105869380487488543820655261670719059431401306443384919350553055333283138507458646413592083432527442766691256474544564671675167512213384779062829133532624780780257900622833115019195883794075686829753337089644385706885778605639543608057426370741593880928134263460296487343310013422488693328677200467485641918435135762673925990437763364314911067410388145382726890325124429567710016627012866894193881912150727745075113645679772195906234149396605886994864510332192758839930315737677644537368529851347461025842739051969594937704057292969987397641281248584658491459895417953314017248387012476496580195526654134511620316435141213817001271527848981575543466460381877852840606864402331805126660003504738285971232725578695574844842980666394988557501942758762952757938850089898685341133182479988584546090279976917080584429157125476193724714583912039852957791516463443780372789732758037177132538337824084161202843973156184998701879142533628672454085386966868921086797671226618298215627780468171951340663993732529531811722649172423617098917609297039368302273050641608235053240195034774548538989670178829085034546742620912136598411871400936472477297123207957401773710162435998779256788827788943646825371513652153119276188690088639745433318586394273759382763149963428010620765596331926804321680213805551653100152901123369670195885483498072763359894700220459018127561511894353410596045231334540258681656695944058036747965394211538122271508317160156020160583142756246148093370384966379702854164049713550944710043139740409383680995131998666309964343733117766870559590927965260654931172663040376180317143008284632671458807441102966727088330334866079269075867333637597376500177812623197413599565513955489011092564814810904099556876203130685449743422340647660434474765663514758029126011071325096827670936723366466615695064181790807459664721426937774448283933867064971967309375639006868536488516406899244674560462850878266553298193243929304533307352957999346425980869455101494506112316245329485904114908227295017935358275817747451057208318592905265151745787882919790216111153178717562489287972743817232352622313502066495291911368567219116269567707157439506558027227877052936706643103142538545765316257982229848317537323481702626437476112042967459032540215611061491597657621307687046151689337178915252054620218908262307595182100975097827605825701781436040447533212753958698427906797515747055840414347668015163694060837257634779872738249318249501093948049982648966607337778854370531929865492880001126271175826500722924345251535906482066649221505294098305014985920387840850228123007908068169774799704892357108127523342078069940148144300637386379684477587508316111318403553278373888374633624797291770065200593338755213312111248867983423174855538808874694866190716224938884299266200861049326579473448747797793366958658858689437418303135461140250108260908221854635940139500131124994484829943924955325706426463063854270135000789003502652970631853962796014561807913242305017852050368004030691486867972513762828711281059163753287450974412142009414670485976109388997886426236512466996044219347518046051518783961509185168052432960817187856728291583219462054290700390070139094595440930791698718268558679264321358070896151798121276395763499425822354583551904280928963710084559402040535096957363688107745486707681048395660209627703252821031836660371110537892895990918261094745701551708036463496106933974369478519978973979316800616693050653562457411693352683536633902304443955706524665126690914025408545318444889964324851700893877341668089338963038312401580716332389841169853944616084240421675888598954957794144288653697931241245325800500741525900468599264336375835525141562648102098405473441036784494267508775424511948324847066854381117041203655749044641239106158216896684732900648629874806223202094524658943447187650725442082617616399531855139951773656093558255496484020220887922168732847508859968042021218522852121032394530339764164808771308676955598946341871564877910070069697799374929590143737974704454550300500045818029405733754585656136869829196941033477204985919150916764176802387694686505117519722521525847816217011165646829339937644179245183913581852397154321355825671067723522736366580603393569776044870976460138400455162361182589916956806248314469730954291628232366417661524578471312569065385940344188999715853845008999314360102021675176201126150381033079340143699226003333835884522607675981979498173079041857253732808994913922578461932062585526169825069640570425901423185842526240636197841666449887121200655080873688572576926801711137482585213967984156038991693097884833075761832817185555401542392236405501057018105382002690936675508279724607428288501562798485309809216123341074922188911684142272828545823367873450301945910142350236115134559016545729944091493413255897385577003155077206718791012649632779782572353248089983956182780814188119970306178791319318706852054015594268802440635440009919784580278808932094536855689395936576591988530245177348045397531289368664761049174239787084662174683099393143647004711576910854529343633742915526949061146203490685256630705145950707916978211309083531952165141033015812627484423504886979728650253861049615060147576841404795122857132115179044198164138590181274213398039944067582683588117276939436924468960581662243542824467618127137640071545590771184829845339594094042263264652554911538538335265719503492946757276257134632777304863631571322386813188786377304771667362850149166181726433887887119017447718318346082892998005291680049125786166126717468117265647067336710751284076911586419418070173619073451925027503248818987112853757664430743882868183771659716303941820971270348836722106419738406122538450955866568553163358407794079588504536367448405866853737920769840792303348440261515914189884433341560561904515052515046104513972729958614577595567052538730195522369369052984393770234752975895682461588246222810161401128392524167222835129033022925350677459061716351941819347893068521916892074640676184069633404944483424114842984965050681738271793416614652805525672674701658036628919462812757175139120974533152745564713805387484931293341290855620986947670677320870136116229600370137279995716131010409929597689562187987349441931316272217593522519784128505522901293327940752052770603268215498880906440459693264080407782499610753825538458395963741449282857347517753993622889837472409525434155404636268486571677306772129888260604191475232014558878072725015721361480167560686591650393659021372822638412673559215637365484323718277577480699400554852821776765316884072415767007363692634041319016058939857893145767826773211248779868341714242055050168717087663776554872910212942775699271100524731596281798413455558798662209391372728584527026969240333101205689359714379665812629237696689594241236164176340320315869769606087488078681291989716991438981632313781577633432949486049352264008506677756639110557671893740729149211826552997699375187244284661873391116165516678159221710629995759678313156152622741668063973064234096802594450933858559132495528361372984388796237539155920065438563021228766043339310923550116700601429608232448856595352746527845751114904479687199547341384849291294464180144333749497051536025641646274858393318913386060126915838550872254777957031839359702605741615947463278629169150605074246843931712945954621996935354190509532462927253546988229788689949022288337870292842847990003327663938338161220666899547893106208859249193471760663989576075744603276430179153568480250760359601871527406073246593876935229804555602227950750032033271490529456800560294256841014900311405934352364211322516337034858366976834623879877744612528156389251584688764187816854109386999998735535466832990833737228801466910677000341765038329959096279137493369375838148025507689959904664324483555501288529038535739201734529055198505952002653070448635048620208875892444429095959692679448368411881367725741712529828719725403867955049506062449953924640824602041748509517325757385990745433441095652804327619409735522063619530239909202974166266538498940110580315212884855634811654515478594755624730445990474170081414246158695041180709486602225970317755632656805727147104217038479148314207510060549780113873648774492455537718506559226485287380684651381792679261292379994472768356523435919901138919124985880281471574705261194879889908663539720333558107040585027214639891228219376079546435661921128101647373163330145011158102136942631248078611573232309224600824841284500994658580837529029027550711567805737931008819210111372073351094749674433931826943489624931832448817839723167234802099124203661383775087657850934195640316705565148465620596479229822500795406292014295422724943125057741158003181305194562233378664678678634011697949935998122396459824607989939267851295153467023229384563967299803603571247743169251433056934246889267749306492230868350359721055629589511561839708446516493888832223663314347935467525231421350773646498540174972239292924841820967335465081079390829969366848702588624943972474137209463080234750439926921783161194139852953450448955027151519549011356499559281019567370780071596898617044322575100108582087138515042325845193035596502082424666657161290624244563663816198098521304256862106598783084820804340603965167570395497556443226916862230587661564618652031660556746619547826937568065609012435890280933509581393202777910564400597241913355490106937974889362801490179698411804153403718930798477098483052376607590288374828048066309396493905273717154664006030189251026054268216161584868965111170036685815572049989571923456132526604646390038285740999053855248311231318345234408084296070252818127118236239337424525756688462704683149520862905649859325265518869912706544215472537139463079464556947950981597806702999549401754135814238471124620810878138673792895667886801425757042821604243052925224307992906639794679317551986207994737864799608180374581496138306576853036372628689694510205330939615905038531033674479120392301387693432341243920111695795578289526041624099244551329790712211356226281859645167060418113159470080867723809130082565356249899720995618360146438631444265460420571461724516100651689601133081043564276824929335925730472958317877496481474207213919688362108141265269846884710795091251081679069618060083548206599345083384399149323538200676494187432942485486308007846649081796376430395113063164587317570357430083709714738249296464055440110476709173512076827328489909485786457789139688460139770507984917598199495142947925119163467536815309322222738427723501156196555505681086434624376600011535451742345182939070730545471414015157533383944730689188993878168884949657101447029354189690928929974941334404167872769547654499553530453130805120743068247289483004412966857620850611402876253009880549365273735869098444101908813381220900539302865065288269522738459606331267028977668403385232291158330653726508356984285377284562095004891628221180066772222235600785073526530762972501290889216499734111787740358189978359409691463414146087185056289533807288593150276164552431773209654069488237239571362713086696343171146104983805323897954850461460922811952251935503028529076676908124998199350893580358383762274011102528000024900790176980339148083433965179527034823827701711832860865423192492246032012037249810982490079975361181570231989767207510620468713833489240860834398699491314352287073611675100089762185061567521742844835756073225223780978590247327488638626092259037892884733531417648352574492158176108329124207719973579283270131610492483648397760727703666594567915933592280930976173854551327889479427201096028543171000548581368857658197990108669456946547210833596057011663130417112477604723815778437297948998142997691746278029682199630513022525048272833407651883294084041221359248426057412964055203848107325210526498217271793295656533440652423271013119728672822647819638284110051077258175847872714800688705563054860135182237592957658468639490629796027028075715535873629729523026112671348366887636819890776851650637839557854149252868255970617893331852894904015287146590634378405804996513851808492808010770562691535245428728420484108122921064820478621453488092950058376353034666884936099993204536991385278528855870140812475988950923229597095327622586884722424780710071846243757136638063782431366524349389243173465219462790710942292396078893586855755180613887686102602753316737095995524773119392727671293484138169234674164030140529868224237150167613302824684881308243429606821478838534370819750998685938404904387546356970201167207808609315359415275574477105520566869583463995036910593780269337143119612414761130955455312726338818783634469389736354349479756329538418887781239888602590299596838162186728107730594321483884223463962431448706913541402134046427183694549415426440537026059194086757994683623524555366618577956491873472286164076394866085251564206854204109160839646906764144581190892202669004342850863875615898400286300433326879748780795015387186224824080766558437096781952690336927231470641353801346557425775982069020111136095070084764032106423271938206092788110997834775963727369645483141284480988894493578659864090220674871953172615958389473372740635674601152083100612203148199889492147234530936808918742350732723567944058617192096162807968845634637994193991128875169748318831136415587993491830969867328779901837572780759158210306486831433478509402763286092356856878877045991449774054217060751286901746887294294637084672218296860187616410232870294858425127525852963813682740172972906274634696662427937324875126076718139043816268953010834655862092857394664388688665487700336501017636540249195951396632123689686274434257085160758712267450081523564660018310231943106808208718299247225246476602569997543557967126295696873927674946373788649178035243090408600647859160890604653052739593156041870459008463797912288394877565958282022688900706168671210308859692346630570101011581364854288261871751222004550500998595470812704257943284786933262628600436264437000918760893191334499507624032390641001186907210333184354330096553513618768921109132957514405503096429723084001104243293506439424015440427819253861603717432401051459334956644699913916328784510604659791419318127699652378924236531046933063074852500058547850707221627090063791907860796589376148919886790267153781791723974887764246788669000728232870171778425912360515452572662088833087146247610314378336850789556699404545682268139694422363958131672196636582381353146261508530788385335475198996578614564058418730948784671288047314487331012581672022481961029405658866812968386377558863568221220112896536390319383542768233437359296282840757460191322694388700690606482983035945945724235910920559752117887587111293834495016915564058469232914382714842368371171860531349326854371620893044547995630831678818206218810280593697228444412695404839119930320022636759552266794543415590967170466429349889429825556702385499816780606024126681957484396811832027322335573280131265425186205256531476362189447278027588800042472069819467606906646450931009611044311663977524473485648148732317387851167362600731885518369436921383862750029706885481715634242358693434728273895321471339416870657034796400375458516575152789099884568976490183234551502305513084051803203997461143405407177514343967118215984832956476438522880716768690118591136584006375981687751491105376314580164981475412395298931332557016951115348117165435398045065466019049339587829538323382218378762821086420866931300576458613464006137770644357826774611778128283468790776067184116818241529733258444054902951338433804486728302141007451252446939596912488444572290578041294798589044522827450448386102729857413194017627066869132589805766293639798074822617693146468143395627386346799923337996439986819859659090885485718250574574233859601896911569572745380365813502180475115784736781566211167261825939890164679250461916190614432649084693644374512145326367958007468905873218177761550914333615512526485408284118606652673921039302842940518817944951079555738906338353271098859849817963686190161779378291915803421052505585187134223245427755715535525071733239341792874148298477216081225158788147106998032064063798650956488756446310387917829171480945946735644869526749656961060162215835689304454120045432943914219096823037447715722536523939102485047841035306179031304673240928572737893651317796569342876807676349821748681980519929058688394586245547825231312072443310074623254238320325528280170433411559838674071206954358672088086146167897381158449340138822649647250819199868040292360278340669450781174249322193039120340611801692974065918887457969428021131646727683898770724832142306502500727259038199383634988244432864700282413497481812763926148679858729896264914336635023223225093384509964739096098433134929022798979002807555136337955719529583323865801371809854045553798590398813961237646339000577735644194231773240165312167565009356963698343379348843055295532485863039668037258415902433231333447857655319593443631577147399794087159178614796175034322870685672351352657286399317669387017411729460896449244704581000780639361423910231040262819675593454275748382734123349522220750865815256231684498659311985643644179294795775473166065717112841794240743849303706165688411530368311189287549892781339642850650975755556163170506582950467215779291348869558904715421791118361181469841194628006991873829464338877881930563480923765617042915036060125671931733426046174825710470231400370886179703491498475863110551733418246672010554937409638786404647807575468959677453533043404907772369281829041208580852666107286143786998711029075118667698791586386498610991105339520959312735729592372687020573640757784636769725426630379542029880327534283760074077940305331512719230185921441187719368051303107413467711739051828616838463275177876833762834132182583783876658634653369278776783687676939275023141882426570312724928855479190247312134870018308820752982605771244280267491566607298395657351264520056413350595568449851628038324177023754373026801800934954409605505697297489753628594811075929314029221475120031210729852891525705102914426860828126830252322012155994143584310098749782297946845438941955507817393989041361819324733412637301617510022275676584158349329821024764521705224899454121662836429436959716631875256080855628366225873532806431790461972335294256034453988276310739466417982014459005387892881867222453189663150294263674329595490201914287139681400094905938380064529959393849323972846268600081606522270735506087381197187070077503126439388229895476790723595559450997719692281507333163394524343927650647383497497537749046858426626174363113134749347017202169319951612906157235074124336060495084471929532896976246188724901925902597091638840632478310842061188513939586691480541552445504179706968820172922999969016143084955431778584776745881683067133893328240178801835958268547764377845259189675397086994952649966848211779342888342292687673627968021935709065508968279606392795225285114420372593536138643785063032335581317913639993281695140446745539906811663024956536978600239381063683861347829064582066482896879738936108650488278006179487463581516699954471290852261013800120323589840667068878862693772753616797557684202210672344640380160869283187618797151153300346506186974354692554451695374914127553588791912102161283303405914083175090163806438694188895373109552433415139971113229729363479035120887152373133989362927152099151128702138181902029300353850756809081926072212256793131787840897336999242270194052455581824824033753740637610770608879821797613127828198077669793632183895732432221900316789705680992881063391557139321212018187711679278104274163708710270358560793762536607300833011257046729188432210175246331371780462317289142977425882027256535723681152315756730084466098388618836127582482231911374848725071962175870117059292679288972459003508829054151927172662782764864202623870510400432070209540109056593472810275896045588318845466593383472144974569314555912989295634234181351588736968498513681192206489722242446352195577542228522738895731533333958254029766690149848157106800125970522347054619013222969982427006020284734394204692142040446283099119975353889012530926214046835680681403352007469680639512167854850858689907425808286714197044614769744289219654969664329817343127824157376326678559979039536234970961373833787833914279611795260664295412152097380110462462192107100557879876728917471889434678397558248123839602789746756431714630737313010070072834283583466963208140414627395183895528228154709449890160060155389485007744667082284081948529606600896827283764182108722365689635483296786610729437459905811574361678727223831064053813673569485395178965076932676846928754399240312938695544229478789176268205073495644459528569445886813763820612581149923198956940032645489208248677975654086429316996053370587311002820251015473983051119672366370229321266295433283941011118273705307650084383198147402805741488023218501564622617143365006426309959875401870730321247843054033499176301040158624323794447653200426876891356258850415374237783851719623256837892522900529723452900347393846311253102823011567406476814176081918190013141135586431881178123282428959316618147898586470590524368795783873049869053475505074331660212861770435504398328572838685069588425467157522806729305814362467679241962390943862958787070180023752806363777942124642079386218319236016066266954658034636147737881106636649510892446267561278562363194562971876072570641087771222659171502929001124685941866996571026012880040733435349570916134616813815955945764402873394007428394714856610237200901459395588334323443830592019298127808866691558289019803562718401218465058546955727870438116754961121354029744233616998636812900317789627968605858803540385588108882805617660955571895394465638866301687693790702260198289978852374308841895730890239149194438912527598156942874020552635546785875027729759299609133509857700837821118152118586326607323263524916226125869342831409206522433459366076954806841292399597568558105251005036997801966624946155416631885327972681637622446193724898041541437086498604090699039454529409509126791872907954770306067188335799799341847596330984690292530392279692491874333350697229659489498598372081044219327027893436105000383325607335670369190769425625364426841366628112904777838126316247141042965370879970399694927146487586844249786581335222608205935616466588287012082752639829451558063445134797073368985741105986827469466009864707704598241128150799655646649423412767494508522658993756125586247473276892616212451558021117457911154356180998966104639841310792777008980008034508594668026467321074884501657753048661634034567332663330839749804617783315560825211964886868292915456286954519061424336968821034627321796668000621322270436805624875007076812653899572010424924049912740716651355074628558435000718714310490689869609860854084915567186729877472314849541910125768859568540712864444148644358285839618836449833811380070263843714457752322212376252342874763924254176791894723763638214038854764310119887045318474356940862162627341782695160302907378741273168720476375710316454526254235309181273946370256570102739444540088921709445016176057619549934098348295801248534876168592424772379394285955995115184629517774371314234141877081666307301827521551215474701774808165025356155130973678481058735702349600425103106357777592078616833670331890855155707253764253002903607315670556804296413025149664231288447801813495288971112830436499988081293053632789192551863768419224293582733195134873876564009970096382806416644273898210589618961155488067760832402805644242576307501315434183900817081946898537968236726993121940637216604377319004086099666675303784210436468820539252364443830603192593138818231144506087187954928659682166043385190661694481591931086162986660943827095330159408279686403566757535211599178632915582575074635946656179965810071145784720370950427002277156829605232880106658354662053975443601929911320605559589281969421396188954124326437093404622874615713575068911142199689158675746012148460565830901958600790956268031898829787800422034681070643140546462273190964870428527887045128448717908730459941315077280609840260812045429932715353062769577189450188866594934396945151512702300531136971382529759252865843224911072383202980206864033990285211027955003122542167209949980620262625605316876422070228148809526316232178734989795112027069169676459850249269497737982354105852919350590031391323169603484983407702509303052183197714851464498703265494597681585598863286284198303047540199877751774415262745357834418153559038544826230952681842934380451042983384495397586381332848934635997248417956749750638372159839638387666824916496419710349278036300705765350446719227027855800166289182451953698085677967733603095560227954713271967992106388834760832331278673641555863156644456856939137998193369868159183559194847682332538306674960444882700193619361065852766420695005298529272957677744561544842691797230335967064174932908652770667694323183906619227907704158236409590212547780968382250594463867638058779042543931661628948393383250066176121537754766871871568244484198797915576643646044849016137929618561836026475113604394193833304187852269637070772381230293677625839446435520165518145790165209276412952960562013299184338607918312369296967235749243328459444267158451210098997811017964855947760426651334232095405211569169275657382301112514093785675232367710710950795166489007361952243724449028689471331576288101085204601388998911479528780437273794539341744308978624512944913026699110346301242716779548100144723012818156210585754432185645305748334778930959326109851231404579709741790885708713133406636640985914043098692852406384168127088006520877819893957138792535969476021632228145005635626883940221632232783305093844084517016550004207188845810600393594999202354983575526062160159029742665632058869767660664529713447412291244714968253044572447264660088352467726743040615152353948307899563500208276391714546534982358765288314522259471038547884325631629607203348487163242825343032890209086484358914519664502398390880725230107377863742090871059533980351121873104968567435778878822381945655697610610272937832648938185268140577078928449329666524751144451282787109792887593389576913725589965079526298155934273493298201601862004942968782731605941996116141227655332989032680392515180963785708278019456522706750963259477115388718730598643263516979243967442376959501172527709375362565210945836169131513972563373131805800403494469410074350306923764996451417827265790473878240068996748630637242762420696818355643494913851424183236527843172041486013233054365899016736769092453068263093570803698708802413876140762582221537591108125010405985415391399809497331970720900677782018137314092278105132913815852438075489437815827647983498489420421130247263818752649159310379046962729870814207080588536578439330795291220810800476200356351596762164454325295801729261213896090584654007474967979799787444667683004355567318141255767755217779998797655052089244312357096715321638963409836838959594402686064502803785460078295251488747314346101179635047694974944753789429565790029300024100979906047168757197965175380036050244908345422560390436265695329860650964043038505737380271312339913134191948390384319758535277149072493374311723893451561405683644111983041066820465804171286325945938459188605183294337406381361730013494221218458233926244129665155051791783442638676291676079635597745928015819491065016524261897334196528162210789434591370519378556322303064004300065350546881967356917548336463313112890077535087198126160748583682289096192793764679898604235359464111799136095831080309555172357479651052898670254224002551679659092933615501667906973527407997866987496675588990934374057019882153895476563551998170706176843367928773053092465101651590393347484078324275401043479234495102002681265122877730010082838409618740311703738697911081263072339602878178084602606320077160687511764120138832718637206986457257733778709881917021200670338724281911985192976038185058931676116097192462529927074159550897976421454140591509444020677758035872586805179047040917254009845365801001181882368607260603984960797124117486347994894771328676133557025104827811007651179020584288045640818447161128932018132594695662373299286252937937952205769500227374172231490022985403798609512225310838607259529352363362226749740210908068438120081362436744751412044458809718338943168327455867070550607626044116302044975854395700628500333577422133138992951420523720817849166967305652210630904560404514627268397482299259746591359228595486590111574958256420168191638713005210945575188803827650250457899720151879024796661269793685239634971858969089421946128739091777695002700343790934802115695329288120995951357833003397041759398371572249394235203079408438796532755918520275866828179892824594143884908430559582162621636823550532191235927638998455723701470218176188753584279519752730306452736578250628112199237318367073129805247466922218429405516258568274596992852790916630324364779279035162880954756500301395235058341648160015659621135883852086608497902089386057086148162895436939896465766232788598789475260487298196458750531199369770514057970070780501325417024968054379490502853176312893222858313794513116442811755488761806088558551196701438963389898064148046099934108977528402419830499719188829520573839409123586505561191017689777806242505327510067059715063984433901886650500847968883887850341092028303630395144459541322354543303832962222582582877708119489909176821525465266697901472119514219369482355812600422733782511951993822820892002847519261788470008511621536911365397267499750044595678591884795657978192597494845034709225333500479092600340343743761625882643269122508889010690606315846327932951319011483897783358445567687333657523670243254510721606555235342304863285179653712116223425023132387127298381627228852215942229667365269689861131200579080758466255824890847944277944705916225829498282247544638440045055899575983376636054857190670860505256910877674448263214315502349563635866081622768029472573317147865997359571139218973891585351300503194810089637712513790596490005480251406145689198962222348839553669301425422933883421561974977884938348397361233875811479569599640289796224869484051196244401234015132843526893657793283954427182112994663337981215126549095664262691241100627187972857546758138670177000208989220960074769851547110829340260310447615157792614678127607639419094247419054167445941355373280579831153201221640434887511259551991387757130152070392399591087096706615165872791527128113331210273113621904479598530611574775877274097439607667548578349453043386012277981052420691844130696718775732632111727580577143094405174329233178791857022483185033172205216198352313188506129511148676090446908943486709923080634700324477812581859496555030900820317015148301818304342321529837189641334469467943031895304302447677502376834350842898722377678060460751168274748348587045893805848184410184976101855937166269103766046074654230745627080499312653365773595447222745489733661914784708301566609010693800821619752776206428206771104422079388113436989494071464655611674358255720469877199995221399873540515013166991737311969995408063121295559873934219341718326615682120102575554314818733786754404639870994878737128852503762503445899601977249845822117198507975581416748461549064951887528784241133915433933588569787701121452131866053520849872765641450978062656401879141893387266266085648495708897810706742611776877339356916214328319797251849856904344669294163969893410807808264049335512866677535649402737528915762721492364034374925398014757623938454464326310258718042295089389903590677915665742065283429396445536438434542116980747568177523480523172718373214821158792749415962334846824516726530370325584321266435678831584703001691776977756872246569735101324164700090321549797001026126999809698960298583036468879439565586693018570733559066557893281372357202461096281672701204514799738864718105264471575076967796548315353221070770537872875191410035769519803665466666526534375313661725985655397583697432660321181503068970009551384962338274048934099028983685916922004365049548068438928430868844819880080383879615088802465458811776370023398679514703551660327313367246967726052413722324473066209418105958794254592675335593338107062535179572074166983150155142998778640649009780733174190336426877213425382555409369976811416914817922991042609801960772610757466967761191376259264636542375886224739286084798759294500466062601212826343942456252349815998454786766282567452047651753045654754745168549832570791720111736892119786537204454683532530507841687278539850641323556699672701576013427565492717607184074483990463662270924462578395234973422485927862421603910367949076989587453059310375061006577072207435263848874002205541317015846746523931291956856772380384646290236938989934750106274255245258822028405045980596415077938486090564895535068627618612451889179711693999792407035320593336263912242120410673116695629715210194139767309299901229819819195655254356926113147274717304034235869454742383689513051789069050304819323991447249218878443206286606083946043658123067519762759048822979015420878234389979089268880345433466486585816265865083362164677898905455297037449803561800095103165250038964756944174379754019997286043073906226855936549644262593892072538738760185602343580467446830222510624556383560003410780786429545733014383169171086997410867612852665968134068224741167994882927965526725479818007294720604744099949942420857965295995155294486089054253817473747450268683641097496089382709081922290009770984563337500732284842278535648331695953930404496122443662584401077709833785076477485844984758106449458613900326732330312649440460326670104254974504570980346445147495838037430911126331723079304015994999073510644634859405026479664577393648167251818926945328406749782404274971033469160694826811011656234331793563217241336952946779313255967539073168629692735130202179292517107236248515573111801334290470188430303906499093482650885970442320268873292522340901554295753514801691354216108566908544330452559828221808980877711362433610278912184770863477484527452665372448363055866587617209703227655451542793824527815305928595543753655739228064574141526056770406087482322049971181815369366103560322465743625093900070992500454779116536743402167507777051087963650229723942494912647122352798873607696313940282249205039464448730472725377543923354606047999450515423535016231340317543625039900518345456478186012416715079602789663151064704734480457410925684879105673783306386453795958720397895992522023413282395807124798841238657516148403709317735886915738768446220808614664325445480269157003294230116639871526216901850093444413102083571134975938074982492389699512604653342779400331309030157454140690204340467237631884113360178776818237626576220826440171920038060947699259223406970996813016942237949273730078717148731469023256537659054609199680032860782358060292911637819656818752837211646990212588359857709424415287584711254701498926165274873300324293141276049535396791729643416872270774759481943627466338261865439203744604797691560560923814374882362134687345857902697516928846429145981625495141229144837624586413259862089673286565146137116970728389110190754941427801037496858319672393132382801435382549508690752260282186625649838471213370034611798588120974674941330263653357046252604250919769521650634730081063431555268668339589572713544729880949563578042045352812463446809078554457802718600232096352696907661625150404142300892935305449645366162552428395013353445596497177360126796071726072888935154973882612827815842546093684534092074092810316385083112214636398691052908777563568945862727376136440079532517733064190749159344512349074618134454476891466635182515118253714412769001162327519900520694212409127237113583471667104484336727426780828510799566136312697074712484102803099545992186836386093750794849537499887120902040341072633337555053048424506165478151741756381958517975426862970264995233744960377772140663939192397718810150348662595954569090019136584244343333158400402050025223011330420162588038881067469180651051093101238585083138709482758418538627244849478314128456979832804621813081066207579402737310688243159516424088331276085302447329098130595518128915777862923903215997685712336449897067177659943035021781092194006312901985833927486366372458968520970495548281568590483830709490516127903882965899945800779463115919262698965429284398861672193690068156001752629042972250507248779095592051318298243976087408859244413814661254684907582875842737080043455439730422559604708598191562488902961152016183008872584428243607029828827847404599867909020660089824522125923440869092346154835214767476054805624642356986464548615914821386242797498768784611639965058218365348975777887004041253094455551126034419708964091042960870303989630184258723611555690452887817805758701158503960831095593480071039994732397695672477635085101883239027138972348151899211493636622690542001267471219599964747488591286279415845312591276455224986480909686950510968122477156849941223594613438025456392333839537533442282928011815600108393368652068582895187722342587002894971910271101228480808378941993253187557066476116537995713424310602013842057496352672042953107945867169556300474764384144341826632234312885990056708936294676999831296659366682743878945208675582659582677060954975476355780417007006554365565110203231585366417983019047481106859602531921203193033016413902601615868578817840936765466480385966105408360276005466982851282094550359175818683120023761478292506882838245290684403150236632406254220714946475855438434306013731047796319428764472955537264943006629634894252369659991829776484778448838273896980460240335922086508937700478983214341019038386657754207603193259299773507797979143904964274112753275806667874212272976639512510449408876906328465826981421208695800901565403432298037983030112815099586996399830051399772104923164116620945842339251843565055436833624434282670104325342362408854350485686233198869719104932506929157859567394344744612866399891953780409945407519690653904994980649861093880733188883882088629113768131463368746644889719454227910703975348909768382882749732464898372370193722442004007668004291664327095762436827497642935607659126544090787162607360361677652052072407554555869064093332606504745024425967183687034048065057583938163572845221267096108367173983481767465002520669635542921125450456366545394759893265037518508230202487208884406424481078010571975070228014999032255528882557029098306960239815652526622435992049425784878145435491584115701049554379715149042588306236148673039035721604391199489012407817174220613409942722420566873142763196845619094248929367008612427364187250581889610774697137522946575961741622341358664603203190604303102129335058288505727709647646091227989819270509970673681399684387104961316672328620850825519068950057237468480163148258994261895988942342380275414016230351612525750457705059170865026656794837038210339043327273078684871999390381385287232613836073678510402419453200411771173409910909051116624641495773908985249654168718402023081698246116025709423300426413103818991564003891862741613627553455023580652579758076182738275821704896395398669295021565915632936345511633626540964029275629182175896636805315619984362161406075461514254012169106599509728964673951960318550238820323118006410080612848978574852748101282485867373433692027499518328459571529512890853523451826010543780488539731885129784381601543445439113794345548222373157903065163812745108265341357987120573518105593372520831969830098251126694828920022455508302461121935548820494973204543561195996155729867835850709008440995870385471827738749120113070363152785609856174214651169631510020467484584471564647846268910371819798032695897825974172066164334927045884966129404112327649513775518233118593148745170331870235324778414442946353614001630404367352368793628940755671439041570060090179468248996888572582220194380466545552725042953436721747456565711385523799579799754361096373650403376782054730504143190670317801810333630016420023954380692892604100063757945918963557256551622457624686913315333220617924174070589565544066557427864796704786841721638576975941986088181565492042907905557814429387837741995598604535953433972900047868388808525147273884337913242952231765183384671602157450250216964512449227240760039778282893902478926538716493766588035688850738621583543718010935079518285133327081886423595186253597542665061162873252735432697359924150379536838688728192562130907838423876375531818271738129706200682551092531242696572665103541164503058752115291305824098710330936576056672954723996761082764642281103285307098663256883015815301954177980996534424854503568004864637097564560048457569986666481270996532397700095401743842073194399453670253166434953546971471607450713022548825906563392285656521323225876585867418632784452526389786269370648539375239580418597191296297045842837297797801881159483116356220615978562725800131860016838362481596158618091064780761767431666597134794534258597803180264764487982451993360335483451574124426800073509538813145993673490665077171903841555583308338289355013301974384209113569225088579628730508391420831116009923570257758015050319988869481139543158507145465522697218154969744164779026787287708293622302559337768952090412738803331574384718133410582022395857229198077058434580014998819187479297585400145722184651181211303353233585532271628594854677404451444549974335882676288525141344908870012877797757389705270399371537541651091322595213652554001274882435848804072052113992359796447911554275029304477798734895407340999979886675643093484621062682465111839642165828420685797875802435904151821299955096317270756634917706409963215536241538817157382612409229608175210373171445257777438880963426124131548329830082640428875674665797478866725471396224395337257914993726671766912304403450320969138525083457694666618400390685400499643484534687493460906184752440390327321463942521639958480142582256734503055167857664570052714633465253664569993748968766164252609016989664837918286888970690866617967380062686545481844314874168891564147723344789926526816080079307693257343439938324355278110871408469486912542576699003993893227730707024131558507869791425880378984153769962762334232184061050725034247697927261250970974184871988274502891564581154020479702408609581636910604011104628309741083735310196614718840296396384704944869092137858573390970821694484316179156029654470973454675267506740094939028361854421451138049767331896045143282434868602482423117948161782326712361844617376581439021458446052041927930114077433546936334151215035131870893368174052884079834315849045561489173236129639619576168412565842835878874458711330006306041850040523287016663634565123288656870453288313481939518548276175603132122071948631790380815292682134488359384252558191127826803409281492784237275407971548696275800218742073464636710089625750821315967090322823109072161196928106291342722195883254603257285392841271530282355161312775223637051894843887664696253931691617359004933222340262506083112281637020612589767387256405739558815449558441714691310371495636711252044144457369474489986189401425625854684766085844607390946022714619424218722505943219046194303095976299910568702925585827909372998375775677390205282430693063562464130316998823066167027788299039219899208410364094037822138617537136806382720187590138050038607419920978490161591541561354468912843003699843737926144602142706078238203460757632293323554136687236486956511369818505576676605173749208908956608619066052787370145784076222902510532131099445263862630839935705566943795188810551576967554775525567240600222781581125657306131260986720834506286655310032466011522842932060113954116801954887157537323105632492331325987476370211279792571939757091449894093184936553222456459477491127689854255423782022118479396557309058688339422769108475471840058504404242328929663508218837556206627327154542884573771121820817020169177499961693655814812350887092454067354431292664474186987402508899185380513803062662976396697875602016949616019001720480161059154414483004251725944502770782419605086006884070848558173381503625643164113894660972063443956198272076484033828730393502204520388702490292785553124116181872325623799549208278224891047085011289619558557697475186883375182327526233473766082438362342184392927686217973678092270273447225445219966688861369693912569843151225869869280370444002182472582225035127986869204463075834498768375677186347800625673400261563890359263357221216741762411216447259706018749245922036389366958462296190520137349211029069947471969611148387396025959596127073258444768175713128689649511610499693374538436628907318754072714561267061034800196355226958077349215046514209637242158049352373042463687424968575756718110247852643392502401444165842692756372176539759087748805806877407594064344548915261852904455980247452636630970750972370491967838022101011220371772372207795271971693871518907913852830377092934218999267953017289981381318358796139010031213050263416665202118136489810159351989482120470479076179641488841183131653501736176390702950629487630669502370261762950487622378869805560583177904399134253529409024648700899377112081322484743910102049946232647699045872082997778681432216448516569292247122299197536898320729998327176942134176950355167630098990824744110228592066058580370204744983142546037975641498182505416145403745707927099344939671838804145143111425459229536915576846534009212402597380372406793280480074826814202049672216365750372517988539766728582297383392884247153377531712941435925088228567890195941952943342742301857140977511082320855288060289406262750325667712912632344094568279227980179490859396608958256031710149640047065281104863905356151507886488736312495132920529853802406385515327732193255523222576641639724646224903842626353608922417632525166105847261965228689079859343280513016522437960658826366797881064121137405727223857794153774990688604571259404841025353060889529625872242394573441181059179407101453637336942761382025753650829203009621843724255664704920122790122989580265334572450541402301398001015878909485378673696465475111455251405731830026811381095429907954794463439136132679109077938111596414211844327396149389351574307159036734622874351496202341890402543391024474269730307860994810988903745763108548167433875621198888495578046879577856356603331145240438674292672526497305747032755671136094368575495859693859178249533689001877364171258641262595332741442651413652032505600708362135892535995236402166529305363410507849392942488899583053311757078094894558434962181324303326150587791785145184638019506340954456222299533978785670503541258754806058638197442423201562291036501138583817539841542527060039747233387168180789223624387763335715032911952782398978992842348042460341677728335496372138862746409979672999290427590896485480950319805444175327978771562665918308324805881167525217858345329008996304749042471596017258588936787281000511893049569719400740790806588475050641585959257959620592795202433476506063598736492389128683116171447777175095196159890949698111594973714755350969605116437378355866511895391423755517288203169630089320181255912423019304984180351585175021576682570774055759907622468218770351270775594724227655863512342976778957715312352773872610665441713056706980822026371803806894025025354312669106258338413252529705243761172206711101266250634235426986585468955878201516801224209387108978547723055535574166646422344280430890615665970568812005897079274118056048800817513916053645467654333895506552165108279406263576594372827407940601793645204643171630439947984094604301721266072239301520984009670323947441246267104899910441721460185766323601014858862089775157735240877248542526609304336096046193012501609829005308653948648763863266492991089796681141303020072041152350644711382973127445319153849897851483528772833665094304735020267975272574960314336663311438993400962163142505669119412428531502299483463556014766851989845861278376533124973430784963093161374587734818859760728055170135109704052068718360722280263595376502943269203206899003953514797800865149025946541601754979564508020907503741144221117541874401057727640885945713641264092223272724389876188655243976921624826197962109076967809757535654181696348808744335360662233043977725513487226686205056919496363627628148580464325870345466059882793393065977875570405138110735361318633784521500462382195678437561209574885046099672889661406215943728897696834316615463571709022319716079810863173083856704960332975975812788886847600924830709736374654241653708156556054423487861558682114732241316649073118059702762692758167387297326532663336110917914919956589762369591700078715905239557247841019148088213961448010205627983706690534356917900056360683683193651414280232960726189966232391983577524991049753154108134184183700023146268844970206781150204172732130407590741382872768519024939513023372591073195488048067834435032705036901714189462796017235004471845228744260544686428172848002990407022266406766834292079917004926175025808366592018420854540741782628324110929883853269384968850560115699766843983746746264826055482241913023450319853297334804612200241715242116769414422416319237589436067179670409764510577361479072125915795616101336720372876872495746971100848220935718531772746602212636526582097746951591101031679340209109392838866990516240990081106013119602719984183578837250332252817257052066222152867367653190628029589962004913485043628583788875666559692316569335608212297656439510752171774120537135591820356404460410651010787759661727357450968556718794017635762880654483001049046796880382962799258858460986699922318512333142532882017172249666540907791837056733421327816377134731776751885632298353520626736838441812021845954347551389699032450393289408613238162103863768519535006880004804849244415262471025733094332808936724888610273085464191859912919902664427238688555085177470909707343565817952187471913668094952371231120517350281864108704693060572038559219774584960788272669497076343399109195369567306261672769651598653867503243007376345372576750473654294251240174316905159627545546285525877410276572519194890431385778650804573815975035147994417039503167593401903692622077587703690795245147163834604879658043432797968343665011601699286340896408551302532316947791485443881823541551261245779559228706155083417692170333193641219501233513008122500021383984888786787649977748059263411554012370055877951474607427544176235193490318149289943734446406585287742555412566892627590414279376909290512933791934101107570793709125065795667533968616396326451494720699385878232662799724594777062776642272526167601449312173758799795149503276693859940890395143834714891233007238004657161843269896354979245247659369074623804952020212064463773825720112247296436434059351417660598090602287998540091989032844941021640508366182736351272982439366621339636833303284551673186674299959823812305987110976312018929339080782393739528423332044531688158862958355904640206105229167666898764367504479623888624505703192551471962307963138424479662531250655941386564567479179349387675662282028193037080523342490084789217251838948250758692856214532777189713412471258265167366789769391131961946181910308960285897499102259041907246012002236839985485597570137447220885102626542260992770084447462148313999597234038070374422837562561798975857383190640066651251089202124153668520227645827768772542084750153305899160749661074437688950557981308581040455784024161117277773872267513672306357991326036948254763781988073071800847044472162868903069836292636312844634278650469957437507295191809997204630097708908438398861659121668443687306745790441892833460550863548805454761565671926270022517912116608335033330849025632064692268623515455857134499526781345804832079613310621968378082484965956767182573142829200106524427810270624785479675084449527612407388118491566281490599038611784569774698479084922138093370955396724063740608654153028397094736035474056535709218620758153473975802197131839053190788635916914533313727235170574766960434793019673553524878597749876099547441140858540937708816411752378436470657126093709830727477605883321316791271919680523776389279092217162421181695656773442367200429029610871635753411892320103060355065425020169872526035686542199348683201736461201930837248077849504461528076045730834186054223856150110154468887063153944076192238002456253902008820332380352210780890997223895694144530240859097112898474852129126218836605118711726815895043474022086739472764839707390807470815471759554330098328352458139536586890688450242959294432832103317495527396871627775611659280961759480256868921121978596222072244563771521354821616438434769577266218986431918501960105158053776112848117401685042818518546849590388799827004161969873718797481493174231262014199499781377746286097473153519288945583635801066253953749443202739301182170815013315388336184303749122177570123874183544416681475055804413269166897362204973415496632925400233350377606260019531661616585352218961210855455161718763687024029507976211893279768560910113398001604836222958579191600382520392991372234838892237919872175750616798014615623940601052893870107357509672466363815875235496884541224133291915371498778276982870243207265421294908905960497211139753636985571756240369078091976603402131035552861751629989336452983929305525806944852400380429229250500883458517982499613912115346268478230131522922165609952556003933864957351006837702690178074103402034550257627514914415802744255491137957328829192994290341706668762316778036001990492137445871588908201517766250467235872723416915824965613146551947492185736193810699264354910391531714051669205145817806463062739776026740313273280109712464240327718204630538644388408477262700853612239788207480080274641550226503119041546288329990133418833012395670346706439560025443965241193629169118078889137915828265503441758575084466448375108224996806878963688299427744415794758719684338929122207469523583851638842023583509161705887834832063578646953185070977641126773779964490815459427416507632258401529690354549417745560950444893991344432341658298114517753692873417635406087833764628784853298790356150284596104565943593544749675055065191311162115735999420949682969746252115361423103207921246976863847367412613190479684327042647584000545552087283580080419065813079501616805062519976135481066207448942564402687082575110707138065048353874437803419071826037842436671553316468849411103262470529351182235843656202013480235836719313390370574801462979063643509065029737085632052939475087708377521018691404300292253942399455455545678555411425212352954623225426074012230250435627109473107402212255278319168105338296910351445605346004989296821759990800429559611524671189777223288973767396862575329163418489725127944858288540589555716423544465208395069669332256093924470398586016244911343955765462827774257014570459729111188426928993352118487642495795481226863946555444102772330780499805773156924491675845327432178532232292105338328093415670506925894800667382627860804197463419882648425316971325418163574408694231984626518501681477348319631432138750023996831278378764877277060108873171986134705026390606640681728220624815370538378390158188005983707196908251352010221596959972737656858022052561851004191021327442663700910594215977132021597711311058170728070710418212509743208727035011264520785034795833125391752779853984586236271588832094762826079370753177284209991203876966973292287887647573261464527803275620477435658078856152047927016643261744774145783901973815642172463697860034928591855670785691916803770634365616523508316699191855370004672737951722450064079289667665949833886800559209943589969335196447618157572646186048263809705521132374319083785500201115069989228298135369585539255216297525584017376209887472754442916963807007722902572392240724907811672789546295646378453581373857930499792119559493742576867041751599649233468834792651311446590762096881307584086995898618464312251043540448969394730109299093583174944431539798648974331598183375543394942815122293782508623053539155840705302302421748178892835542703573173160789892582491146171284022899604236150359790904959205603909112897038470483799151048031371517860348456947416086449828171482041170158049362555343873390928704127358557998359852490981219350741995669700788490751451284756532998833790465102640390219692530065153213190364533869662690205365369108108522199921545888799053174725491850916243820590014517175311455629554678508648519270837604184736404772779798891994008977235598175489424205471549349722262635172040695524159937274398747866605117170191052861694029717616478878515739588721755112192261172027817896596777962788271511866962747015810545687831081140415001508823665115974743144652061318831334906549215396860912715766559275268770036372220747043784151123222978456245731097894084763304091241621534369462932105915796251755545764527404226021990638045620218546442733165490236058531991246870868115309108077234778119829217104419943369074883095699386164015285714945097996852410110245073076286563665532030989321544579335746952105613338639277296632766129852469146226481543247966352219934297265601157002419809673147114837561014329057777634366661403620113004542574630844260773788141822454478264992748826543356248530385626548977426300237142960877156925056812220282385138165378884757259645179348635666073910635118508090085176571852324249824983899916769083230943935707036820288162651544671280774876305126923762588541966631402484287921359804446746345482437578411112783526730105001619558328592949874372923694106416712504212807274629216833204351882773917322772597773400231962167759355602602263742150827683018544040874312843398028413314574585871426525038459708062077624748035948832837081596059789211907398592330039160582547388179171243287696096991965882906285016389630256810524311731387694794152556468555979945979275949310691704676735260616300309521695332155221999573020754905513950169156407353183881396967469204921618391289510171495659323669315380808095892930888445478538830158030780133874303551648555398320816897833172081574772757795952433659948582142308623130453819746081773535363059483969114830110007343324465022771875219950658497446369671154613205798520784350745928232438927187064564603954299093098813864578486228339922667926906235739524454469887039189786936610277147433789056473087084767648406447087126517146278659812553695788178081649923387353936755973249510467203700682096666280361574223600326979281308483517524447782514266917083217153034432092548901353960608086606628072718386032473254148179745888782141925369277314522970240306149648447877785501243098479418730167291985615589387710822753336340861004690734956059693584167791636490462818415079708025340537374194896357425167898465866212474014052848085693846851891789075703233253898867118843212559697502988893892478806461672890730405209622714964101031374127640306771892494479398399391047316364892289284473144397007890392029546422532497670814845872675538867542995881469326963409596837367307996562361665073247979182728296467979696949445990520421065398134145176287835999870027052338920376560424673382917863017575963781109744999259725208567821223500731148611403218437170764559549163819575779393496460015721369391536469246608739098702342701635058014031313590489300782344307268218115831863688373999108840797832677291278541723242866037600643824460615074670369863289683845772060809797849155818675784395408713176277987817099659079852030190397016046839862002621428439303218390816219860663524991199096787631647413239962400421751240345223041006143648444839104984243029866569368011299136126154829955342071210229941733994242327147255815024617998019374191544219355752403527481745431595711658625359185013730154160759785960566362376785363754726283313242203957759600405798894940624748182012243271087927029973020514314442230096079132136028755047641821918067437033763425960233574084703348196887810104921842553940723773955477048623580856013929299096774377558631970972608386755366137199271553707913215296499589374790990764151703793360472787094448538292917894633452929117880643330679110603625050637224731817540888828826011739715319050263117494549292631243065471997772009639964538224959271457409825002222782893975678095520819712333090809434275655681716273427790882361180725178578492878641624848775043779771353650864795190132294677237451736819592552823709393198056196459757215820477706048337402564896163135750451678747686151788504997938322028549901962443022678351036398551545090427881008902856242521255509889609434576168166565907973855677885493767218386620041463716048088248888186498898275844879692631936104159653056659249787131891888493537982898080722887755188788787592561736256874304194725828084455131997693570443278263585090512952929681392157534612523982688336495410326790090950214904568958855029344137132147064271807946480617871515828468513928779826813482172981340896184905628628705784863785674579151418355295789411487261603706556102741133919307464275923589242827204992019823981117043673545815443655491404560643546524893332148422844017053659661021841884120687141399295442440138749904708468148114832963135701893642407544530791018733754199011705268770745824438776890873110516380614272835426436263226012378803494175621777002235119895797892436653760214569614457373054129483064931234551190394628511797154356585694535881107078438093004683806736321692396453334990782721472639011721947777654273578112007714946401336058224825544190121874687128329038535921820367117188954508512635157424318739291276540764956687568654814469569516102487024962647516240339397781052466875628153928039440950340421288573874452989713333729257545844602547132987800751486002364603420750680401113706926105033971276271587049948654868928253733340468692746374203083984440420404575832242128893857010632630637735410280672609803243494613825511722555810969525897568545946806622654346698456599307360392256300542937490004633786189039099950661913491939683956493367225226766456235574287112745303768273055996450604612278116860023425189730759908655172168145430602045208170804366688383767133485760831368000637326148115129889496489148322739457644942991250423989992370519637029453879532045660684344617738132319912320769929194080624386049903508753112105549821060268181265102093488225750320515107922441270166750198369554747993128071884737979639937306070399320859045903932742360512263006368350895498394597379984385944290185404468225621792190017191310797253550929390430988804298868180947169982428062903038781306304777632147284098496408474503083015501295459086399678402183755330090142181056672414119347472080597315243151491454018956842783048985181145392949995547998896071042928792249788858116913855330317780574886340041596868318697037013288014251184987071577389440411237360087862285176216113207398762342110385877028256390579735626867171447054762298475147559722260169524004176354561268203538364826123568441546137624985540447497746735692769753488763866122952915179967643306090771835856782550263295642386952341074616758893148697523103734037573942777360354881351309448794876751062971193245879383017400082259721327901250499969360454945760022809282907692083922329504918773567256933841176891571212277939414908704715304641140353983291323523165198582767420844579084904557929964039939750238354440474253372300753269944482346166158907993315500940286256448768157778239795149532887437868340355959680041666955910591825768948362410431883131628576769161354974079854800189273370109463810657085534602627004213420276656341303206376893720821237906282735824303545500651235777539299315846440996359795947941073883344212071727055218773169948635745529272030354075714156526118034401078391429047762874436689457647262812580363571682687035303642205298334817429685505518555826219871405849718860148979940056441289409792952339817437851058529120502315285949460240696919028331541712145399588795077958555981667087716810329660869035620034952300542736541689224259319084266215614057478457271446915932573031339653505091171674997091723364661716231393646258709157320260708031718831818678681174430636214767364761523058652948971372129568197829708325709946422852755393369632498299852445987583262540947786227925136365375129784282626044118162236426087892448242549429655414566256186951996556809000631053213629664390864970822048628556278484669577786653365644585179428448958372287960669567050069428567663505546897435472036991768037399090518231072041113416926437973020866708457279177824736412142342166506148592404195667492222502234988786960513649643006053818157058905427640071278687316230244209763235364116976399979779183937208540567784222918313139942445747986328475286679334034907128072107987956885736675389922537965229013782795031303767758220389401122737505792760607868993339587500695318708917129952927052160289233657898625131371915998111735554353680658496988403778947521623455968914587747659414649530506410438564714947708372464909725046326273082154503853325072988660980101791084004331388541066455505286321728437034147960002831214011753755508221570660999127772087160516949039421826002628621067345580745244404152778412903940713726556013611035246986284968861981804465465036863608096124232056505906518590832382454002683264669298368394269788308123455315967544491978876618519145734527549522519262610950140695667267049793446274203189990440088084046741368079466391456466778346565364565837577217644657999195995760612900061736847407817086598612471891007182352277869497154902198147257683603998857317290341141101773122039792879729978915128789188349534902668873960106552084248188595300688742270914637220522367001257821462006421722516901994535397663270073756612390892524248838306879730824280421373280002660990332680443770971384703504529532904807153171224049202738115446201902544003006470807506628006382685597070914104342609583408939956438454823236345834269443776406514827768704451729910990513504019894809661891832019567972326624725634232071388032577247507405214960701977133479480176999397764246213596255520257437353559607320196407776814447630274882844433035474700363621176618927810615921500120326635327408702080258838464627391020777704644270528612440235865906877277692459378996857439324270452489736268069469002263564913616603279736653202244207000272648304928846108273225743115852875854642109640631159690332713746776967350294686037383085044506487302121698569705072169689825877117659961351307890347715731141826165106746202213001264652293663522203546570681250743266763881180062536204563395399935026310391814916341532958596987189373400481519472566813047059368363567750448348926207795480483711293096056076860966722747322486287908358073878643909299902130384440578542527101033648955439950656086553397723727078729213951599459980564738217435149743063354601765441017498823473972007810600521321324518434524074029356776423258011968050532027031499684093408743923026868459107800308929584979827446754380138165059253005973059257255016176628696564275002858421217667771557579180632107249653759085369879709286343866550207583960220773459276402441153804494224548685179360876330388258823187533173692961306274473039639504194086562051374922616834543496070771084362388439163341677412069410791271468352330399825034306709994990728297556251541856017199519706267002544013912850892634886043763510058915350658221055315506106571559285719814848913542785761427613674967073242785523896926688153490890609017761399688755051463643548663858412338136509159177500113686927080803609462726079380664110525757117409214378940437295823973301210990318180671751762691163357304736079287072329305783268232612658250741819793294047063231345646387638789732829290632582187613617781839150914297449677762798894838654581301981625516722214970909937687776048099716712344386298353500049991659725937295162265922155851874634984600450397014118144705027988307495347567582057698771471190062964639052876721846804199536706655104777857841898492266697628323232740406598632493708180510099185753776123181164362370790264492225418830108176062010181608270917475540744173848763734291163899191265824021862879521707707964570763974637805061660393421938663519363469177933977908816304777015400789087397562868701554301726965746046072506334977053590967929401348301029060001192887951550698155518487195868249033376957398354447571834923969682082306218418087460787753297170072195141763899630910003826896136286473854551514761480712554711563539652719871769513799606139340538598594691385870537449367119477020466955568294073182736749664547529427900124894480613459566627051644339356895947715260346475212297807563045887628840404566923866805147811455642890702359535408030848045396517691880060135639364046235908383589715413781889669690111535472070608783942258030752502645784674006721425673727426601506632744202640145921413771661526962538914068064767109387480149497620116100713366757348598413607601608261988357870610710467316345383198704386561478414160642968047977420117989012143823387565241665484737057912162441120414014979314681806011354369195568848073647417857659063209862249339848557113278568320075637586963977562029594953624135239683421666221621761130983378657603173008915824377380456784382098495544504235862720645011181648269954613267665576464511078810739570596748243749942061947653485685537868323385784817386505960248723319965549273186827162359360020612686118734929873494459936235527467450798724242556342321899834723677925476010917681534708770382330486711371276347510517174070553831852390552315519631419228342333527040549063547408391124225804874714153595203561616369643781322357559481670634031592275213115802813134398850154488638004220644198820754326489014579964039684246766217803205477891199980509943906690212877977119548746029455796757169819253202637758847505313212816942309746485235724628005501219619071385019073209403677442409163612042652392187669452642315021169194838487652781399331452054966188803580712897177349209211368969676008337404453799701437367930891973372884108841928637246390703531116322891330825673449684216516937935352935031249816718071004540050359833017427165293025706397055978345960140561806885649077729638269567305678145379710443836393553708479361498479561013892085652545632020688783893965664362807947548563526485120051899552611709854577929695298881055679599453900374315545579206933480907279256687925631421020176535052984971378742419264569694623340855104124902622569774388103981571183971668222479573611167120045540759526209624942743885295289116163651693443969473147554495410957271442977042322826221566229489668339727512471061082778481182557800327298157585468532162950540934463123951838913449170409804165411662302828459005884940031183947540623924234316285033231842368557884848524203607526669200280264272799426060721203013662287434245724788675320532082051992276053362258456684564001902302544486627167002869709919649282246343278453850768925588596959838169643302979766356842605551303826951509357789505949738920030696426828711560441104340736340387746569180287310010111518915931072196864352833404520432810133920326528582024082629395617962425413230979000270476173748293483762284052850175900855261437872137806716012409615109577516053801614624793363683870241720674386165937268216139965276911237878995960783640527575780111815525159031419593563224860216215420671884137899170320060469130987856699911008128686130380836372645932247792863043564950894000986502375345767646604256191929136736933637855117114035640914082126018356615087418870023309899817694343963096651883392515245877221688800942802159073390789127263023072848676192797998025155373243299892287394022878437352778555341088919099549111575946004390461764083121329898324189746503400419243976934225724475425882565599849453444995868854566746903360866363449148297060016446472409859188847766624792799436806198326302428045324733925269355845566816653530106181727997616274492721257529420521608608660945043832867691623966902028233356868086505204275281585008896320906694154090891830330224627339004428117645684218863687079487157161983500893055105787303648560791674174201955127832552164918599238546602933984757481088169552118177420998111648970000215327793795500444995808228259545810693084400286708986341323086732163186125828655806688962928907483700709977372978544404943115452662642217901650137497666533279319848429800593523211325030410707533377110740833235048574356629858513375901995928508980278043227796767195737224004010488791630087653293075309914643871699364742829864287507358645982876750249265389806134947296826448190232530370434135945029317940247851817524664733493166020109638204629908209101893530242484870573221547958817106639678826283224162533578705696330405288685648210597595137210699798119705400756222392475651051657964798925004856034601987738167261234157749619627964246589894508299332892553671426869184888907939251018790650226843289497598371073420965996990987276812859495980924360804755919528441257725261555830882055972893247558805135431383849636659407933707677993124708054758807337277505955161271009846664909914218011213955178389334991481728349036719244431837209114861301256027581235758836050650188386260770937029894507825084880739934539342945859909770764177380377289114667395447138384764001490420363187762072750506385384814342427084505687006450993000802599971246378184020502152263653261688525609247165382032216292572524008015637029542874940021605018703537476828603719615492708609261517417224845704375743868020813321696635376569035686029716719723648054200001292188690587971752771184475668498805384905925164013809374419462542814211550690695096649203615729148279269978644204706300596375437242342820256461501917481640494909825749467438845799843256375656612690566022840535757657049794211956914370840619982846502792703730029390846764584954764413290470661648562141103745621614994184142728270655905952539149993136333601445535775905755375824933875579608955048175307325935034732321426014808791525141319343328973395329639264033767776326961541525786693239149893529381536692936308241650045612043434017466766687920513477539522498653446788932942542151677978986610914331257675356068770372942001950514784864450316401848142171661382231711797732128232420612345466234247916884927463190438455292535828022262863781994865579269706476478808344139237550780550253744141808613011892542305819013823148670707983169990165189950906802081510626697021790384443981210270014817035480552971493449444382138781665174425150377641567066516471078420538660671613477933918965822260717845239506274934660741897836976224772181933299484193884121621826585984736975148179163841716700272114014967112974548436223545942122934817250328775499676839763777678163129996681863203357065255673144038351540319245880829713176948775074792301149907443518383847529503795810211973870977120039272635092413211075053766134716049806101307571501436473921813235545596058630339107559518290907712413153858787996340555689559071580725796709784057360919029584825662697576956534661721163863844181234668723055033793991801708660446871504217118275323168342784452306953194149100488686902440863656220023517870690177051051918894095870403416916350105651988848611237748787282571056189210405361401561471253494235004325964632993832917698894789568859475015194751732346949896330931470133032469347257870021624811446964312777812702226728155023656042274791339490138760631597606178299179248565496428822374076911389214106948747924280891303655662234937007672108414297727897571835840771086879909803788467875448634657086450026020354400881572157613442797518375723467537069912203188561087225131445539771671059230579049737503718220967913753327004300164908119213857064190936453119667393013544907278856520355423536596631395416325386995023796918163442371249978338024739716361604374252828680022060061411998408025473661758773449215183328134613588115497933247603480444356035416437567458193896412998409733869585622228479459703227101618887377029138961431445442179790562564398587685136663676475618225702597126638270966624223418826464704107322784994145807972138789938476474466837385035709164873014218154270583257735505554436418140802821074087496394465196634078733773716986862833936943896315596924312099930060068823477806597465296228062623640525386413245478194466289709420022297689543260763230581139983265495323978145977408233431596558420214939402225697998601884158634003520239697008115019325830661163275865160529972123934403790438854892888450992316310513613481768142064405838246320595913925131576266188361296509326863385509290724703298395300426355473813875630703414750569327494801002763066880420824933394353379048906381157908657866920332586503537692523768275504615569453506147499762210546649285251431650005788086841779862108683588653277396154067742021891764504139598592161339951614969348431660502677950691262129329528527422642826795339731084093709306755884293879400685038166014418741986032585600071165787608360466163388119656217786183388769028260704190553924943654718214396961384720113384164091052800776564113961109520343681767757514043716100191722200288015737667559924915206802221318172586087216590491213815977947092525363793658856972970941503537978625808332223495695588322221361862266181515785109742578815743770269685607653506753410921713844724677044129924783325297081736076919729586121306042488905592171875271187688368659485894472277155268976763327401363023169607400808175995812128187462338607954867857294709009478781452646513631279059244252691152720829368599104309103449156893656164963453608775836094099599894116115892052574624946147221033700641030770231363155410109947763589814194235403491549805539722034468117793105772759238808263630981708282959036404289381355289804941679767040694775785133365710159690133500842847569517328476794671101734420335316212807851892293068177677357032616263685094210941296400039963182655065875808846131466489657098645313642069146579925423551940721681694461246910268721082948804061345613991769935935757299726866497098311520521993567884690366179895547225193764653650694945507654325014387421211820989870474776248358345627621282052899966914374615141650488382230562943918579639778942077273366807268773313429305317952763873729278377168264483304419345828354338416898441258990620513149856687614839041143948909165693840141219728384349499521256681975744230873165566180949944255308370413864525647859290768653027325747564658434696787341275464114237597621705691162922125377287913507165812149740128878584658383623219183474858073223062978792987736517705366393108019280946465862044196115466025655290922117964706839521448925305220725520186606370533772309133485339882302617529205425449018530976376306701786641225670360187001960788662483993144274497134230965549554843145737664701683237225049001487358460788110897482781659970396202873299849879234602028295994905238031770364169587872830426029809376887561628772421390481604436239929592303317400409104075241633267837308746001456699617555899684443640443011890482282760770224793829806110905056866061756399371491639146908621100554822429187131680249623797420032375895294320076067252364624258886307757488692847455480550083671658429920027157011263565472502078497335253482120074276658110772422145012594780275800782981621907056228465100576482568027050258517605881805279755614809424195808177489695847234856291771981496438846306250825146604407213543833561174256116120906214507106701850566480021304349205084299905609182921470449278755723524786433072503972457321511770428702490659206281275000772996684214799026171488867821300591858951311142158593321700431477789945370720061073474058137035880247433297380657427687613307560794026719240479993006623300843655655161921798565533850459013163945507131573173808776636515889726171815358765074083820697840592347923444972925515810904854053157522267067277604320092033135384529634784016350177471781860869131465551795323949252664558329090001574062986087920411040926065284098425679099303033145720266654692666050289263918994884324627489483283463698609716167826232450840582005701746583794484466227359603239783662907296473610906540834389746601909858299685236648019281137727706505794670494879389657832464754002637261499748876465457416817599667916494417169955579085056381916338826919479389820936746029755313120160617333680532215285451870205683489340656730403684434297114090646085235184650127625189107170995703726514518342073656888424311340900903846985097178893039485368742707290869894954495857423454461172164334377255624789460347781201082248122996418992285649284545598200953155456314838625726933631618920468279874415398070345390844634934952105934104958844969728825991620698815413673850308624446083891084581320039674673981782056895664695072925259285552010987253533200236097362962663446734893056605273374919049428977083816321907405128857459798769320139592545049262826842569223633316894421985626136931770769100767692982693579682392652011456730970090198884121709807971605007031128020887937561760453642432539202766460640177983638711964811035881786820330871258685592834721768385034683468484558823659715907167864612966047334144909157608746517399252236528945232318085461580521328949278665289881335170880998539892883562002303901549063297039486196991755166293126034530803720205509871848507463461516020007258203934573720625131759842619979658630970105063328600387032029158003849800499063181324264409203253454083409263202679937705969052014398611518310427041419874710329997072507034812456270090945515421461745763231164909123123183480570295053903891374959522998511433038741643114355275051941086884159781768568434498166019089465906849651074672886051734608216788420347821594391080224943287661024361780582964153471764816857352671683505028783515001174026105345714369830976609330820885803052566177479681478607037986940818077626051130871867827404836732111249723929622178011676522621344096321371917484430371381866656103692070978427568482958401789651403077239456538046564515279107616898093864857358490238817673733510818646385918424275992552857054953660578101545730268770669741694298392959349275010420426094019960687926821072950365269046239666429300556864473954970942926387600664442953123232968523645806492321797644826581169276804108918182755765466517175289072542106013544028860963125206961511128834404153962354937357587314691530223627468451979730899401391268741966794697153386758550041382835011398452527417523993205240488768362368329278798922283159378623595812020676636082958307228235359460417182500619220470799975010895582877768970545354441151336730494466184490978932337607498911034151155745395944787911103724097910268367132084234848816801048255766358911757366380780382081776756897358245504084972034132829987389085975304965395155734013822797684121543049129163262512910343569808793862740928918295182843686669441933360936927762017569957070078541042740387159014738285068774342539002323035800577733987521948573957541451158994366257377389522436221941826263861885641089184609932197039625632941592887074749138737260344179259352836694457850277334208294766835844104667131091727613919560111711733960119141810049933166663408257933728444236132802423906364888291256839197890535242085487796913660948373637404906172436640865814219504348235954219750192788077315837157484101082384132281832104001923929687992507660247531467807688819056169062162505613833471153393663096439200813781866651545947197038820892841867791016814497149429018466755787188052853928791220207189741293856440970365320326846968870600065344005326945224046161987180663818701197023254008161570609047266970878912093073666629863022566197661218638277540066598554724614252019254577083021690315537405564893697636977017693858612199438181356977405741025096780123641153275702484778066006649980865630569638082561533835296620061370431813906073377463077726545629126367791888635950986577488009047497479904142816869614556781061484050835927076256968944212498144572683683521213636869979929221107275099751722520051839751291083967859022699726727760045488369882338421961672744883585394732241450382606673467778464854282308271784786039976614889594795462135476377576385850063784794528143554428595290216399034655037528604516099694018790783744388941247743544876661038436985159348187200028698554390142347277356749850790818165364217359336954632996806532115233332838099709479371667660891005914390100391580584732504266291036955226763217090497697493601270222399277133826704422399596424943105911151202089561579001107802364979014152206135801015501764128547602543425992265605608087992525345475050410639833804830342038789472073737026305998150297964224933903816375909381976355651940204554063206434082940587841012919180037312302782552630750482639318238965636926194973033131286750521421567978982413382244708467949078531106811914849224470986421305228120372384356266283818623511424693525685233765670324857702684008275184886187576192786969340699984519881574662552429630131334585200053137296067203324523691395743367389582907375082033102144495541086306098799383070653584285509529606715264313605626199632988849768641378949627063713992519826616861326394901392089070664759121525689642718835317553373574071663841684271916957866030241132044300573400382621408996432638509112367467694546912945180561128206061990370996355822419598806755658238098723315007053341873243202044627438842923446993923615575184457458908163937418246002219237587208098325407868592731878485488333914669314012336525357534650151635189161195576040407893061190459089652710128513880667396135369530918597696694620637238054423460381067589715154013945203685787401096394071059152956227021022078420915823826534797337222677885802074973736020461872180166573117417923967871453924841381256368112750479121450952635081343968392602491083933269387695505915074443148034507414387409147823913517128874760025548771845949664677606309076944530795010322910510662538616604263645506613555870584140147186779872114017460925204980142488518998848906282891011625907631691090180818214071863854194329326603353433319045682997403569082724128315397361979831041007851378587668667682154229906866811972850532767239804503972307916036786852992777515928348080149231765635981972811999518738255969117357470828325029720768078106133469156033754786429831944970181780779234294671217987572303885046526662246999367805894501080832086646226744702001969465480413569306289144919878175333656148122098345207981341172034240080156193119722024491066626378444746766722529261114491356672861885780748401831119411400926578342708841595750449472387051168764989558029595578708722820522506439865639610966267970076706290783316859118537847415749293494301984768646488751747100670529697965191368593474244223706858389550085671035916312203576553126222051098050779374703783477525607614844930984205141538832257654208513286780300994235851319166137864166127676723994721276936196390319369228904750405978724889686195553589678264803385564016243434350314089174649115772956783740673923942595429689803899212373896140750611449947852496652446371286816970962795020551097328143854298093406863407568449921920937777336434191000599152687168432235221502310900176676990743562662762489003357826085441786141276453360704087872499228476799755991470009914308513511391346824127643170817404134613270486753854092254490620016674175477221310200754586900155769706196080702577578672591900270083283331605467246433674988819796083492926355311545247945793553662594277754367882175701620342008211687601675355311487172893450291660878614503233048004120321937396769971617280832008388868675495037970120860282165504186973713975874970319338960770940287692071772831476134187749162857145390680844911977945138726383098789174287222934252143306386363577252077306893220729210628127729219515374860350415699561527607696002007166636308618565502274414686937060521866373937442841586819102382571876801555156468783108850428110164811393111632544506608006602308840167355738441758301010126378096537377495647995478328847045709556338872810009378334754753342726649367804661550018242189322132794639509663004733750225492633170196980110235555587228710617979361512733080663602949210366309506586538356120589397852854397212411936137889364749492228889354782923833646247167289881105088670116912903633524222896951763101550862283067293401826113001473993933544367051357325231034424776401671322242143287708965100594019528271417523988530361698311802271384726653057702290966981194055432591565580311902507885763098973915625937076960002161221477668974038310801986009043978377616152240748847270160930687236387890248926602276172354485514978882288458537647434122085691869523985512953030823484296337751244309213074427422750444085575225968625037843427118972413894928170381481788127535641678959208545242804666164642265400076296138089844490031913312866249208525738329794497254754894098440776970831091746295318926481613067110577600265219759448990094395269206209550690869392016795049453683117349132476566977913435870827093619983308217304444900429026989711142413374862088620395651362339708741558610893627955871579763970362956236828465184450390621816810469502798629683050104005529615753806903318541747416069729915121999449498966019469876450288303969343792955336104863636432932183170227969188069430603787596986366296743144591293354534120567125524495727895287411986194832466325872236816420789520354206372979949042007104723379532503295352900625477629109928037868663318632139653365251374319402121177732270449811430539814487529155291933387645336490071807760225398964385250914928124136665945295835492033432652938434081179257086765207932802863225139163238069672422472768077718785504909319266419959182663017696839395565742950258987204805581873163606266771991615936070067525556111558972453780171642751580759239186899260817653714313889258712923450919030381125222082005163120064657212778278459267271659333300303539181578842861842152636038182249549358637436488833643252482615674676337264976715648071282939708613738471479553575299759466318149455352764986638093354428438568387200756128436462863385368769777428521121150841250353227065444778935389756212709020455461338846122953602511269719827504922372602777084606027475216662697871741611996754825631749057222723952947123065561766621474975762825523050256096446808807447999727593961984795349566454583780853175660318210531837056910623177539565067526397088393656746582467723019263543658606844886096274916065774501282297781320707414892227915065067220994753283925544808757806230350620832058253783638794269871123010642920433091523564730589947163326125629040483390058464379130882173148464169995086821971748178748469948158388723518207183707954524647641428430571521621499478440891681730033545400684112769460011104046944204559379748360303869033015254378642617153808541551074824387287613317523954314051586628023787644428898045036385355948829750122727348047516970467234443333497968698849995618145442809542733049973025734501871634358724181239457909462948499171729939658038764820382682970621363608677722053568833860080944751910605406435726921769714282336348781685473995240313799084685003949312886597405281632434171493825763631090051105750099420253434950137719111454300191310027392365596105521921814013505308527297071168348273748791855998368230064720664687941065728350959109810370246413638207920384054366410371155351088331430508713521426304534570439777738230505785065066085620503613402434275487090380118082913832031395977641675653902910602360572228866889732185073144305818614793401382880785568397552913072250172494625430326782823341852977261420434473340378868177121564680366824079091479761035897217917962427003555096276351392581047041806088929680652068349838687339634750429723212245455441442432610204874229823615411463290084345609321775803889314261546549275639865557398418382655153257423564961197775227217465686461310192624119615665858375450767860169685195775766572513008297983808375182344077772851957893054462773724595881198476413749709705666255527842323821360949843198800881981745752253623113115264697603231042055744317573053917758117938062640620805565547675554384452307595219512221564507966485159310533274890164021618416558021255748505145748646790393834645325412130129781489483216960599469718842872251976114326447180419617287852013556207817524763703128391944621058247192172970589013918299326036448066380287665803685197774490387730495369307509915575833087554946649542672159442111961396781587020640454102897089700575051559488036977038279882758522660600179742173098405690240810704300928181381218584844675060966895972302363243746290197645375457985168950859073378450050871588734915300300771464066985055274184489241597060078311609618197329891735182761269380861513225266052193271671632850288421368451901546963503448293905520795802273686877226642142767745023630638207401640917765949755538150354429870872385224555888079458390662265945959008057140623540474957002776539673529949683987299864559440857741252732529308343417229638484185999286354663493322408688847961753591416461307150256068283199132416085573582617433995486509858730833357571886696908475076707554318569636260791110018219524530182633257242139565388407497123491561451082499694777053887595232553036480391286308658947738724594813726859233641027202728368870954161706501935849685551592627289608160666062823807261400228128612166059940930789509355477372593391089782759386292505906019304701534476773481500663395111779555208768106786077723498700360004768727520327314457243334988856116936863905338835398517252306950804467949287611380192527612250535674431429631563528322119918071438022316887170825898156168764303072911827092101457483458563842077684261659297707891962142896448079448411769436801514797028600397276541567412272109850604358117399884823495418161020449975003911052471558977190029196963995009460044341247755883792540265737581547607629167980087295965430354527577419969945400529706657080312770120073772632939286129091055554434528099503671949539431563953652185644018806771909533034123348662088470222412105578457671884347441583001644915349444596049229020367311351343028744507918818631209459919873397760988614318671053015254258676964128021066532166085244528683322606415194524814763128806697674556733065170989139799974274887826735143732200299123206031633307153421045206890722606203399824676931010545465839345558612042134017554084014540695768879694350263740385191734817387691509118128826960554395232880010363225767911202265828845127724766432431650746510677747114223174450130402256960161245375675440699658364257559049737379185134782919947298234488562547333133085382640271538325905487155406975529560271940553975722553795341197584754666415097585522950257931596351143075799153614941116228588635624614686382799960700480733730795948880400756222200270898675587730140533447937625220475775027790951472358536873378765964570570099701844604197467011119555864075942856481980642235051722125065044339138541588791372374029097951613366600598832157718851313694342602879572900435099870073996988627437377983841383146844927711867614969280425086690227974809411771877173023229492159468267466351767505592775746254365965806487953207825719674049537718207362227552364580650881004115325198497858672961750443924403969336845332657773040744730216054066235286059877249941083379585348634074138556861198572378328873771960331228592455442533032212072152238381708708254301997739114882382804910900529295511122904770695764560413025856930873428583725344902426177953756767460884408566469288650620699428621874890511445489597829729386375099062835666865198591036882025175475541427291130673537018259850975139802910997512850372284460022031787979813446186640836045152085884844158908956936554968942735773773483414512907127646518269322323900734748375587066476759721723713548691710658934255218353976589700424970485607219005566849029455820595056944331570080183451249306339457665819697545479266429858536290883567151920843941467785698440079809424856495570796559923491406321391879781336627147671204762505344297670317774502250149765541728204078283008670775819483954122427041507533994818008594985187657652307018607155705950583467762737683546402583366839630366286282667612650250988759293691808370331930257258642410838528689595814001738702611507082204238010232304080129270124919074815836181971629364132869781391358966688448397942366343905130421122439720848153561952352508975954008446060154115030041786217189915199913824298208078323194612460210393072095141072698105516754538528942305860686184415938052158789898441100224913666222892311812449724796383171485505302037939774420676079505642421943144274540422050567837147845240250351581525790023014512408278720113287843584514760506387955671619912535169018913140884317196737878430682727791851049670389275320365504008079367687968141205689050419519838450271457281866099253105037846152209426140821247124429812387418152404940908199764387395718866523349301157691900459908561487412113291676876974160460819801535779501220320557049758179654310388114141044208156906953176248395095081080673013121900344553901124622749884005923323809662521837726451939925547570244531380662582397677976946003561259950883190409976880197208547396293505305015304573261111407149096829541942693341453916887396653959098039425537398478496970906002243898856157604285290903349235746384064542692970299698317088661873872824082527848717109127490567391905026319544082618903931608763510999083977331309102827030123232221861664425889878477299842354436810539399147582223311896604989505855622093182381121630451656582643070169176783269872225651591050880803540487809427171684753504753392399416889791975427895892606714549225389121904396087533038109096689865751997592483229392200263676158446121356975163095980628779709977363927400056839803678906013897067563063653506424891622306686184826464626405148042896997987752253072852008821082967635023147954300983564817056851752929356025576804734116776156665033650403559515228935786356543350942423081534401419273264301916543364538818916379406244842664930303719179286998388049646734429590173836617115686586452719038170817971006849027867938753036955663373486176180048703986858189061248930524183031134652354876300186309781679034595120706575422754877736630544062267781271638562240743421828152732639504136015313449519912407932810226287536434283168819221352522382656802480676854912839004290403501819533288648522231513928112170655209486757256076282854856737205198457019819434176881877874879775256706921159443924818635733233794009825280405611435516966006039004014772149936844034951997467506726991101501388424163991102214149378209052716923821970245256316673479738683732514129881607665033361428583663279765093864229226714712340970040369675456463017583389088844789805665341015339046263843444872885368185356190108206726216163909481213735290190396482492536690669670281258162274275002113892847033006665467232428279984203925017921247676818854973697515566807636097480350476716674084360634457417644245840848577694011250019467259757877118055282087815905996708804881663520478284011255589853400368555999966021745957111360948113484532831296465691932915209824480855105083943556150393954125441511359903620481740069840405933399097869535167752720599305896815668881292449665806348777375738130508270639097034173423195362398240135476344935996617178272810370837858631456827173324846524995855943717739313055567361023684165245629788447023087203489777184434345424981105442882590720383529174619991013800730769385655359768254232933069210108809091115145421419427637445177931802368915924152380327549417960277935903419129879247205706582768147427005901056743699821023004544358987655456507701710367882139430140841930211598986547288079313799161465365852739718949605746893271234270857048723866443113470206506052250086351411890693066962563727531870368269086656505892479332116412179013993849541899639521360081313358507755672646877721462390968695517190326551825011244981365448417437347040599525617176265987266366269738574972728283088528361327314155734464030611471064347879051512907816144076125191357347809759937455535974196050657493207237450331711392821483001875987903475370216402149364326478734176477947422603467993843702884084439465261347309866921603243643677967733244698768849813127985965319148354488051887426687744497803740135010322686740388348373074451351345098424609310222475565283456233766383179097281306225598323784536929712788542448992145566190305205348798916202530002060451537171682660649396282551240074190022081979299511489274224299086966888254703528854061430429747777241565172328702293994186820249181423624319818611677771113643380037216516371364082082471547259911708986842138185569038389599546106111764450429191983963870534150277984594055499051673163203015577305213620453584020132081595822733774957342451057896895783878126950080721573684678470968151718007399214433523532986102182359089859223744277700010525523166093320963462928764355917263982551251670513193219714158239843090112048431269301834677394971795096649707545154817294346240562348815602731620867138706173606271417161147726828555600392442372594071405243380641123087819929555721426577927459762931612101010754918415312202625287128016531954275931331046939408315126196786388390954062170821121901274202828090838177358714758155598555305934671111200036730224822025065279990588923019719204239016530645817582682219943212344486357015820613645141575046521994069880857629163999218254172263982849826845697025998173775093378731939257132984915560134426402263553766933547164556552076650061728077835166552321971331698978032753296650811874548607727823015519134711156203091213753683195398568963021313128033027625753219973186720575091987750282709655288055226232122791245980766896669299734261003349616269097788557847722002121012076665466599935423333312076426335325747424627408815897613602936099270298973125928008385662052795633526508019122371337471853856585595569493801691732567371724598435284411546768898330420512974862151394219850307343201945292131554766436123581842632698146168339027871695206593623078630643486349030649016166745110754775578839128741973167501317852575120423256179235790965507118103822161596208129228562771609266044319709341187691823332015430286131965203560492326048762925813583756682301730356826464716039243143197432238938027978882352379480284280117997608108946290475700677634828765980825056800370718911126595812554641128732466883470980452688991667147688818221971729080732910319147848487663779921093658265550101402285319219142574202137659224069895933561046217603234007159314647402894764336146136271740502062217369116194320073163618825182207211333008745174424750914577095196346461494182306390368618897026437389484849866186301298087135279266245634128923058767110259162312411298290007750606058033350230131002348701898174332177245265213766926573865148784430467740929704494187975712856876293447670378856820074648056009692603956225698050354564182390774792282396986519138423174517857713745628269438705600058582435427304068824357828921989431222994265833912148101040371986039876696774149408326998025734480051646199215986876870784120977821910522156101495027892897245080747323643885822862976657018572019111823805038563712570128565209310652217320344967873623066598208250405700007178792368101147909706417006062823244621952592782013936259857417718241841730866893279956852803643979145264814332171956459783373446907577464191035057650963516196225296720084985970372455555517483734589338374998938794722669236289956542960879262351916997373915543720533406393184742524890299275433981895656818302904161361820935614548895188073045374983048314222074902799854092554410588754641203723297359319489910090782944279767607700973267377524047228406360974382469891095743754548201249133385332456978078638530305573354122735953129596274605988247595602464971677370954466806078392316447827045296291944371348499401772473379789801672624143541596679024949171364439878241931929484629636960244259171972469989902557136721862701320867995187246352273487837980255844517396141357300432849101156399305660910525393977912273118374509919303663902610331041613041916265873778841714608933104126956092749219576245157919734312141806981912629143060294540231053766950115397958780513275578665415765182972752579623277263450223262301930904024632073374583354579639207333562429270851541913163903175992887474253385758700237953862537720427281071004995517133241317130636819935937922763485530100604018599372513001026372340004362919131230810141101580050501916995267005240713939379184839293546569030501539246705073499760303518211014400282084493096545487184471717360529874241374744472384048275066912379871066313059127221148809589627359745800162212406395025503808427582827713613513251566957216116095515624189021761656772631514191414879967411905092027609346805775529444132925917818999113398665796883096480882743142940426385490298064739628707664051208858701109814964965361969603046730509978775193609359392667790281727622147216567608953315333617604628360453359531510759353616684029460124103922435047979845041357931161352550107580284789420508538742807722780898606534973468473536457941540335251213719515500994164769190425564696143164542622003382579727701189635660203687621992407703366558314099951098865549386591040500531048737411719677589729633715529870072493929123834051346308457301221016276845896747668411786105273203645727799651148128701561886029891771280431014146417708793180277533966205104200060190170243579811898298543496609280892164100624377416825567627388838405382032900841313654883560142853723572026489756584256836613982990563758556546315691531348287797268139498202360141952304094734900532595312082648290669297431972912837713993880147205712801673418886832014676450051304834103547635331909268040911150821948649661071672661402629151888165817271569984333987073047796798351936677392723923434514426851648043770183657572524988495692548028714499287259358422551620723340267114110260083864499906101792389283884583586294459564301912267724823361917395536439327843569160509294480564622351643235978978860891066763759912197900701080024900867669998383751734882403568257354422500540606036803706660622052131293866258928239952304299578243125589163800222247341012189646860628079566382323994625393192427275601391481676739440661465510494765323231569244727618966292941618256593413173463947935194817031733938012080412726746590731255734319530906099984776667594938522550979431560569872311005331675666877713142650033862689062148088624331770839724623108578648766838866079537811175401485917466215265815915528735868091063477614178248843556187938294367189582567040534687146347396109222947971052879400818949230811216894778169057705677417040349648590466709881617235577839013757880898423817674858934697451424339774390671797062425281402579632549368254235094994723744248060325192961603158033991287669416305675178009067390283597714343868383672303443528510459286742926690010683642025109601493802014879795834502714754455256703423722220562280847599682105053350258508331814985822152011137919694831494721463878365903270461818223487750239577687297354944184350630594117585913846520200856351235237600484889313155873366700897915429560824430327113084930609678234404527386982410075213409007261457179166416294749682639677828111507240895843811743508029438681705890001349934034946674551108644022047016962703560117398764709397656763943453732892897927439031768644814780838062170513229569151316452836088069970090712944471906518874371735902801453009649050941953138779194880786505149784200952727903569730185238329343229872137415438916735711771668169403305258369426317469620840397547758751627582781393683668731475714185368617979090803652523234870810402837454240839425561468147281909661242109990336383462092940211245561435841468216344159999441590009550976684588464091920439346359820840815051018078724877388156776173712652294801785898121397516890627280092530778160070605873738036431064297731805915414832907820310945866056310660419907277631809505141026822052043699951193475545097620866671761620249250982343258981201526715043966751046592064551129031488491310115393466930486870914054336204567447777290856462066611108000246606343605361297040020402106821318256969958061442139220944553803940867412897307319757911355993481201904248493987607641263888272102995682941338800426708823899932843627604013596654036548438492597738192254052685440298540374563040977579868203177245505458219138959600904424650403654669804172204156478513110498520941498743255653256469217103134151160321539827760244270038487074439534037223363633412402873958141678286345204819689086073982689977958386332395219535331740977847281424042937398282428362942564623373105113292186163828834671619028011292712771522196672850348529749161549030002272864184108489045302056648001986181627539927098483120774917738032082688059749204152385778199984233214647924269182716345743729054732966234691316085966636804921667796569635550634661981660595788409702809502258346341030575024318824943397869614444942093181427940298316418878131304791212320525614273306231987512431888374309086131807927367767544805433471794857793623348302833496659998674128478259762122846276783894323076396591996422631139981321276985588535326462955101206626964334451550858943430779905086038568780910655195453615739799873094448028197543095540934314429831363035249534134428852476838814222782340582088697138128736890029867950201947977706969068512280141655569258252208062060298679519412766563889894628248954299630657887590723567319438468915344219552034877449365614184624962765806328988691987857622859035664028225039681849235428617985279305810760604622465142307865900926647002987417433072236821726660376937087822071646514409190661027735876767789823277921317019720530786873854073717066904879489591291861530816566799377180989069266241725203601020398252364749197593589354489367147229614411983720853808832710321710395793118396756742840808087902861774131353863825263299463144071662307762890641736990822342588875623523015522872430534534760207210793188393211300219990820917111662938058299646897654412305399513714952762550741774428348616655629474460934704869720081542756086117774328993590202875360058267333911631162004317589417932734416006423727203884974733131759085508094519367517342647155755694950081886596336943474753268261251715615745028727919989439013503812391432042525333151431615352730350635160984136386970191209747137538146364851080332119613043338391817819552682977369323770696083311809916418744539279176076717614370014016446431560970147186860375505702902866352594046242236063828664160066543181333254607839442931710211108916938305542912927478036642887073329209992436655729533593639405845334692974950063840523132440120811197738910310355399377001636393955390094860542548036952952465566512431087008085253963626263759945051398112214396071287967815475978515040527663896117919642326791586494661386743708471834906460743561582477683857379293052207155997410882443892159343900681574295751977622469246967258246046490583932012258658000550679196215838502055947602419627464349225857835775423886966811329097138515050931530837732030756706549364750649857436213517860782223743144580328571935149583032521322216393924663877530554144495724850304325733641221312785190709149445397890483747558169685870220870999639405159236612906829256430781912599251322395028795856752936033730120713410422850132197088619141723243136580142329499450055904565454546671378722056683469213217972766400164443788420710170496998192471132939820472877479669682794260015582730881481181639061255057846605787690275268313268518076682898121314496340745045912334205799563238294371350206313332613643286025807319572063798517406351863156002786163684595189512947473892735409562655309604432625729615712354469309570088437926152042231601548249565421205359759119838943943570811648193189908864005631133632759185612501368757445975963095996889150887616574718527677923293635783793773700663740346704149994882581619441314036904011061498178355365187525673691424658282520949908894020310905378629626597810923153373772938491591144111318537410433570190508391416345566874972953732874466462538453883646431004736558104099975132613492455800309042937085516255151724015284978005072310390150519142123463488848848945926059478360969210056416116080655880889620258502671403370127108456922577532036714820252495141426941905764483100323427521145211886100854011211553992375659545666393210369386572996028840528873127594451895294283761170995785010751319737417278205594776341894472871672815832808765113721850236151801614695402774669771527563810619813065023414552000815559134325747603373674792350610954614334203693497024371659963795654348884631198515779874953757684495602236702197126854351357414591814673617149340040732229057524273790166511470189590443492555678198648541843772519357444577492442489960703728655417500967011129967975345414959286827761438659069455207628589469417191997632321740103314271469542425897704751515674176804283186336498836797798626002435630102539335348615095619266844132882103407619591775779050462837794085602009655830641928177668181086500113876713950094752545657057901269000991891140205353790812368966359347348292640077815881816951426498860115851939360671090432663865577451807277538904537559837444591013964600840905766940001172908686637415685494148104663942074074119660854133092166506273494849141921458976696557583279769538051981653342563068025785825586983448789387889281209579913397843520753347337452832864273627187797679131343727050553678525175284507969000206557870261420568689698108426044597023167225497895214500235241937283922387007428083100883236048105918531139078427926542760809984794554604903554007924708426470910895361998910495501437167027034385003957670004101492704696400326580983014608309218038093094494827547982966904513899347488439825530222429868293788553386512663770805234198567802674677664079566986892380883928809162626861167825823541468626001722922979096207495031832636668373578295036033356559685365152735684825428373923513289074406630497447371378556200761631269905036682953155583819132475689256995481299502530711647211174073508831317962208766449983417053538994517956368460597376553544669123939986492702122485816903311771174251381973269390936917367661766154013807880732828829382728866394307064498037342818244388551633407233324936529748680588890049506613585620607178978627659212777290551955391758317514287779979915008999077493171883396469692161422002999995902029780078049911932097966382122805595599245512537596086854584470043204428796292039691389634189937484267209873196486819828698714521992811409516070745479929069536175340410429554896692639825190536451508068566352002537206642062059962075524369707171594679914019389056435651297694441990010056871425960514877992359570152919934251794853628822294834615827997804361288360953258826271732556624184048095803177809794379197451620224034340842239712335446617303922443847333340059980404417104289271919651821620762278829212686596995019122666635871469176886423855924501203264390356675276328515000795083620630082358612750457769776956566757204569005303021370918738313904948429561464041674495240622759922135344280148907126666510248370553429034905966047233161213348040407249474819618753248409498797278130178437780477738466418837612377239232346444337808922120308364806107088126794185550208028384436892023776225942336187343800105277331249350492372954493213501669135019452597927525722919300588175300320634315077454598853101401910560404298637002879819746194911160294005224779127418605651270547141808314433199125797732609406509421804543319963591463379014969989096979837057819517636358256828468378855910618186352022716436096039474297309314784347414444684371088278929021597078187868370526255416848344424783211498976257013974956840302292859060976052609412300778418017358133082887134691615367522115701953444729502052029229880681660882607586353565163044760072895397822795163000300322269078407756567515909367133775823860908420217064585313319225591220123402336669895567654748116643420571957435639661598621689846416351947189776316063995074197727236393883290372064792829774316562861551963601014025978435628246501953633199307565645499411812493814556213508834670737157300689055774220468184122919304232315433706169447230339615044560865740376524995664877747806664616972142212752366392529375718190380509086412245211805713939202064037657059831999489276828700160864566273645312428406189453615021761532796108911893968627422840603130461670126235234863811563401558784984056529612835427127157910748565501514302170390007519631249234313721102199108921124734353097783888825701578643831039743184802839894967022851300658980693539848810091548212621730589451971136565328570660209747071482585561511266186190693196370375163601749602594019910235944485777954309087725954594011334127572244242477977000830478633527401695643065505578313502462423118162874628690230072675197752913605891663063481941603121150483172333165916312391576940990316475105148130482798789497826339268735885385672886881975459306196000365585751472102924620148073150583674585031015610078721523477257212463258521909239380302344656652352949706871640675769561341526414748874811267869290942154853760586436515701895758251072678877567258546642051229724758860104305869050011162649822067960316896129117671178525346407620438848711663873862778187806933154134104846738521486513212281052240521385728101935647086116021844466746982428891019085554636082957729584623199116080731899909630284395765186440209416386378077924249369198020205234315634330842548781457682411406729842075824814422016958453191286296046816568148067205770153839917621162974303067595614921502598992830332334974034805214297772706035192548070625373796521459964772042729747130433545133294353388031990838748925063411262627795929523876036784246051111321104155937866238836444524434638030168242684175655115027826335953148120944969791058949009408964552157071936592872231472858437917284228499724086433859484911260694737623007026763643385425063382104544277967991383473340601225643081538258226803798869765094881034752964975072570199616225550276656140563146611287154167313342404591202337389306800344520218452437694158274045334467527079947614277011703533145195834806655151168315885299241813315957121676704024163567463319677050268994708460266434176277516173531294845785695709367543504752868850109376004138281366830937521163495015099696311480949436197873971321939961969689012327487804463031819179175429285358767644988920063440044049742192558881855589327994773956955195059970250720250790610121575091926303690215458440019978745316071846310916104826850331217046591054352239411693442268839502293856431864646775321528868024850836676838171088634936588595287286920736796296578629637276680376394496361847179419624801569290595982891643494808006748630501899513488654054766830730224655963127767468048802525527341997586123438182170183040561387541157424480251215347301135463589860833750645316151757692334352369183310104333377001901436300986776335871643448082812261785403738405215882700330394443890446307851714148009685543169915136180184633916857569800300297433753672009244294509158876180979451122407605049018978540425688665397588370732962701251649943131279446788755765348587067422388250412574627904500285377070702922466909175144353627203430086842085230961469530326416053702482084497380591287331640148848896518241135660969830552160305045488234040549325013638072054572062152878113600791795014774560416177896622144220623308997054778449373069374475530730137202496062913286621410325692280906864852994505568753676940365204564328499477813257843397884373264975551339407981003253053254252297011921848137055956161294871275227993670712552617048130390179532569034634523335559936992074893680716510291541815584470561009295555468215719152290473854529267019244486966792093929732745002874946553748598108277303649728573505301257792301725983068324187283773245139552469545599646615525757130372424779178899200322177033403868186132888415029724316521090290693910430300171576400845459700266544746947032048157426776708901838739108580252649831886851156887487854426978683510156549959597668676453703696543211622537269739854024958541577045578050507535858790587120725466593385545598510327710946540764109685795496955627908606353586170564509806609294502777761285473429511092441709865492539319458251474868421422463707643187035154022073482479213599967228500318119901711735676546024777870059079579393247139168453128997815327927832864286046221591228582912019875186474946726731535275441908229985927622362256337217047667531234096376095106232269431869565152091045765808876092312825325602179203722714039211253832949273359065777199695706513799413826870746267182092242806102621799887939467113244199437624223318989759709581821766311977550822915977226327994959753267477419327984604381777461539372683336927589077505651050747755230223526732894590560487645615338218243659565342566201986705141744616658763573050741660253468168659914290499803507595906274009545359167777691254135840376570360115326364243515390120618754581559560099057375258621875650911821935904580548920327889022005423864133479152707910264713750601723216123391726043704677266950706628734275517080226808452463014586828597777810971289059456966913518885462617448789556191892975203353817572338717376446919874047121218858650455399331961878818985507957535717428046995546588749632397558165359685069153492350575840358965884673866452359900524227576730681411863955219321022190926395189225234686661350664739488957680519380213111650983340151352671368570019543977157467170077343042420422713363528136323590488301005837385721296323077615036627159463477011586908921903295631779806102182199353811939166176187983221972405644036820148416099117106989778914872978616027434874013900690681978689868809312640493052602640686250984360383606689877843326112802754947963538245760946650173741859899889502757163830433397217199075006817939122310345542716425634061607592923532549358378458439850316799926429360948838709117723780768569855015051947912945740468027640155540688576389924199223618491726964226368152930626201919006205455420392053364470483873054557239997976101450127363951180009013709073123947658825123458040563667132961576614607432641822306392533488387858573397164218339772783246591994326776113776613131234195991822328413414655972153217094066396237283549671584684980139557153195808493759194806812555619876340143052943363552296039629974336383815875697258537584508981574675658159958046213574380015236167295306236104941653373011543045542547278958025457525377212865844584702091592940209321680835554668271028673449428201393887412045498965755221082264672162541907491183044139870238364853748856635548523568808450382699263765234926601920285296240142741390640702790523069350858617390499850977101761482436133427058787591494101699128360179199454339946073339048944598341088657140179557131321431370268882185922152848684828493644993169682495209322869829867871690594022159683516045199307134736558784251696336039459058868727093509694931208742133239063534161770895608037029329276357295625658620344883586965715593780634744456389748636166187908585339446075311916560405725828982106645849595323014096258085186768593799764875181413917648412170414567594962484062080903010597404163610190862215892660976717506933795221627812349076994277798810260650998872356494083867958897651420114330941371850884998443664016772405277505059283905955347290453588952770474860743819384144652742533315405703707171467088227454132820126738159593281752867754072757286141978729482599688264849920604249717697645199369098461912295389494716617833585732959924134371387443166161781072426785773723127950984177683525638976447378209618133485817403699284384008901733742010314779824752914368667903798825468447628922220912956656226397717727587579840089429558180527825184938638909665593664752607120288165475319054231522659705757533620837339728995811646678893672976301318128205742138669838611378645276962093594969381923919641863685104739674029509138586962930350113975753404120040831631425878654276285432629535572674693705349158312445761761433169047866999622401427671558479498609668064150979577267069739802939795576688778582787310188329267139341769466004534890921400985800507358288852340266239761523821017477231444537488866603241821245266710652630234224324158394417724747368114162750771648552753260419208059262821182874617680231990153868294752836902421857019577744609105220520280277993989998759662149784534678932080528098865348167761714897417655677635542460291690060390051525905458630080188161925009232412277658170620591742837076399272604872847808581494224313246375974998083299358355098424561803556090853321218003732824593656665245934730523695422036720752305087487639722024353894646750693575771169533236941720458306094902904976658948480300208354272044572622673354076921423789553557784676397151917020409756674785675864895117232615363897199300711738549993630884911354622346210573040000157129121374024608080587858236576190765115072191092780007248238040572452192102169514092795099626241321859725964326561496147244551082027770680484962977460943600071158614322524267550801756061863186930679684501737556830512851945788580360277342955053133984215743972030347390138008340392990968540666279874034433166161101727877594170256107969011061793706839679169160428910870587460533063253799061059723942702976079334662389328030048485804829586184822288316894632085353466559922794212293779657423444898697697796948522801684082278060585626958595085732860635696022501972789216139496045204213264166964220427701390256860897900392398506142887560829954313431865401250109385984522254654501323823213792154262092620161044213315059153306144073099590190899530839393856927285651656749583480937902618348997457149638371188144010507578143912086702904584625196760309310096138677200410431559341390077486406052615917200450824256458678267918995760617072958292561099019703809200378405535149908878838197704957868766046466899396837284648603138023321415897913007940393322267870218808787364552405640977315051770508526176095364048526130033585293947014409746584687609544065973502156795104399279496620809472802026413140576543978417126375171459213987235627851759299339811995730878587938343687345006610664942944338057007234344574380154391718368975919102607701668250954900864308244855538171207431687645174589802565520832533995861378255335359794621415403412144615951208740895427479116833745674467787274327769868619642611112920567614697338857298919330049402533752897294089471841883949680762813927896279825162928953301610198922859787366301333982163682020960219159305023917949303211896248767866858763343854880578440216219754910804624054579318742062055900117518963674403364983265098881858226268607873303379645392181439532313859239875853075406398218800318845852767016951833879197791553866125134167730821754605530264461590656592282330935605459340378254465683649023045813889940315389641199040362531128086518466365355845174465286493609730184063100355719669579347894497444111060900663988294665485213049868532418539754951505250627581390261290910480395771709352638414807895600204030016567406476341263453521181215124066734343610863049480785843339427828062215039545374004487096019224463340350967859976525214108087630548960249180596521562375626261959903509603715638652211212707600857856536020831204088394821350204296857164217199242597727509905533818073903795127735603772486828888132141269841215781587811014600954563235950566556819926996570755668145455164829129344756817482516689264146702309356087455431752993182892013994647288055068211990571789667750924493915093173537882188612311480108576819281714608645875883063105776895316098534147431229415323059646785985990819956224178501949946824367311842554138530367603305745737144637867046189199149666116540334696328566450141095891619770882733539756378122380813295875833046948965524250410411254629990043589473597632695014212246451444124165190012819755921926222337830316764416697289452464976292408878652199060277178302063487233151993358766809692075839776797465430468814752013957575780294581457770500604124432861285336054891940147432133381745910644628021753993087327841762279987170005084808884757172009862340821241014671525881218567749012814281884810105632847880587598813250839783298018856386525183393633763477656173825347317254635570084524324952576347375267277766819319653853470750159398546722858738535291801482959708400548251352839539248400672394614322555995308456560161670276419407785197383597865643341598617247276560652858038596872904819739392685035216903446267124544630267339790287334789157632035596438554561154247283110879560555935501780062142299861086047232634939685229681441912418724199440247434289185243956695406079983365433697800517599143612793848119189719296227363737282166085844244749438939035610579921393673749155638715354540868159373829979233829700109541516973037662476370437871688183690642820722271534868109689593411439637362705980846564429216773578416691004738813214014390209140960269341291304670104621639387031407593621838876584325303605674286218970044952568869958043928633484777301160267328178859786643357691789146482159320589166281643453958950987940911724148566726378567128228267718333647387665985459648704172530171751203906414917406539816660036180512455222186862983622215504545920141205207741016752186620525626182872190173300989667430360682914220648459686367262634783985572036689608575983306685437932007154576578397444418408255976472296325624156629560582116816928037143784594060829887458366010635633518685284500632683278992242188504648997393571811224438131675244857004204230529140829740252010620002906843208833491173715370939930749268369929796222114915385472888467812800621042617970359723407712486112190522697827522578303783547636577631869231375709645322924572058491099508685168900120281570252135090291600337993698190755916355666597992502225569822554274493861539685451142704289632460328147939280347225836058587104873346362555520887959444388629498832495507683083658294459526391846376487562449984871384439839087709176386368409188013778562178900196113118523674791120447163373220003122244795407906224312012334186042872326627772352214158690022831918616995399887268079006863125147294941848154118107575325731013378070599681103269286421292108205986049061041191305915525738491717042105576617484373115288476554704089702007910426040196502084321775439468625490538492911356343233923011963841920206992730279780012533907194270112024377196281664139566954983217625665563223494911546950452762837538530427604400588125255603824854634700946821609982655005318623194323350885547631028854425952347451462350678942595690878925811010106135932247039803417532020211811260110090415893721331585657418696247774318138257302430687838479678024112691577477999025901169048230261911100957197192541030643688374035052707457738956894720169015131211241233573637531304162042766286719899483969912465472187516585661736928369351163788734224919859092250597837063742529455035109085525676953231174616836655387400113928508707050408935011115458050209939353815729444356434730802655483711689165879662838842588986104184383556890306522433754486695948346641060921784032024062731597719635880932537607186492724754384485862330708214214043767658695131565076040282437369514365245804719419899383665479386601870765260566087229163303432575182243248152685127281219478088878066350394242610722994101098662125290902578261138195851557748690532621139497914936706502864882512203208753203816765603492749465130832642726314802630759479844429890591854207591245249686948512033952189160929415373360321838400195517038283958709570022000895582121506999106081186204709170338372781773478836120567987173646743408978747045923604319684704794396161378117387374584440922374119240885273645977018799274886013928514908640110307790002139153962954653411152491943177823297195882235227566953617747879387024950452880842227066316655062247635309401260672887962822473316431835665890257025889508849859444836821365233281388855469920127506165560811281997439420055866213671172896111233463841093922435042588196816197101078977739983686858877234996650574662261710598538113254199988221474999529652552012855135152567684663335309745653092968828016995332757004882426574549697147418279258054169574178568922577731117504642402705824042854073892488102056160022463271740668386701582516076532994667126306792054654142284063016745678062901263908189758404864014284206767389856055504626876301488245117937747584340303752366483721058116085474202068530046381289911835178001512170461547591831641927864400468991600858815488724404924149142881439576911780570908401584328034854726796922328206414137817706004795054428896443894912178106504562285187765125928518192732576664561311046128081765448206100416055192194910645282832756124959945595041719319318935159300029562062108565310542418494401129791079990853045030690874181098941627590147656292249790271250228999536190959556461822953424365870876155307161994093328138436657335813776083330357548259987657877118349233513229960708796203019448538228397328786813405672293711547736338342061902746424151448476366820464385041130387462023992513655024118266738099179212706303600316641268780594778081301262704513680864466488951163355697294508089373577050227618616631516486981175621050574296880242847411612053430242004455155521949208761780289476777021573675954201726403631039022257734720848218291050773097773851400005141208851422523773263048410027737106274207518040894091763244796088990851040950173562003966821550542351292473400482732129574746754271431492393021566721209651304203964121137803730721540218514691615424940019783808093381801304549103194989296793300486401851265047703368423110300276712524995574940994593470852697841652653457918923298599473226410656020445025462238110483649406523473357400922191818530941095995540713250604189287408616067568235946270803856361130302902249728686234268129041688529606159159010400718687884165400416315789727039594935924929052787452106394779243415163856731739916420859825640818321329148756203825368119943149748894840886973981277122933234290937659065421933562903951888529262221180347169763715535162079075115428872350644538457459849287839818384909618735150317658392458544262700881124865839272925829962425441282730285285879067406685874001044165441063781153614967835578260825701460468190304825449635017858509476185001786050153081788124657088321194574127575732066076289273880512104693189237078476291118815383272595827456210686069474406157702462861972824896232392211897033647927796307613062168914597392348331207721105945129184187749315833086093852227241250369544463762064696303443121346300083864484923112462692661133055792451978104266087228268771640588196702668991985836058317541789212315487752087355417838030231349778304716585835191344402214324294818608859771768086117515606225323332568748985649161870358607406400677014126079101361088134746300968469645600241485961142572683234793237568172734625240528010782621443434773039566625387733594659185105007527980799353684260281847989125101315485297039274506415660235795315240750722649388990107509906126894058281394212606393721758524543749215639981689633498433626013122420864326870002645549365056316986062399403239461250866586835406375746459923409551673418882778159945084138500647624779311002431694033245477690096053543535916496561049351582989174040757861001606414815797913093669823427794141868573186213463979639652929066613047546096640450110500929774239337739112443670149204612810737120441331214062269665837704435889600506252135537266509745864465198825097568424412069072760184024132833224758076464088583908275143731290958838731713477353429470467790263477118615563329321528755704536274284314905125734575595393966484691845306555498411859390781971178112457070741533823636798951662281893796914529608582784383494998731434544424289454815048587251624298612133237850172911351796868635872683569128932895604165188846089465018712050428060563777841012678942559402961884205726235248650170256512909291086495354104886751560946938521069101907926896977153294287070425369870266710801489059556539667001080207952737808321483386811471265390459258350951456972298565656737274094847742059635614697684472714715374252673090141066458886413651602710757554033484814009120598373418610662267354139601807187259591679106076702044269512410703669572743351105628745555105545673996861968463720067939675880943876306181823499884886163953188131406902735951449611481695949575824841768983990574302128909583691201332657337432672244787908293121165729838202064159443258759771903067773120559049073583906863327097901499161262082927039094744361366945036338220607645926180181506203164968361236987932774742459366442132433502237039147036170243287643455537125671243562587314459147544533497785860756758728347137843331918027526627585849418585919446830991644133972410804490376201180322441805806956554217571208895374288908707642412567254535197934283313724820079787432202130285379428022562713949471196233898059310486376221223435227821986318051938202404253265611087221668233364898304977765724439676930682906040004096801095286823694169150884370423230186979204636047952659342401347603805651396667044549721651302921292279127346558734671790696969288635240440353114585825111599817283893589959202198822058007644730223980927964522514532018131016971862183647279909432361475138019488575692582809311157310540656821817641282808317986384413729670397678589905677261864295617974431638388747393717454320607321132291801882044344831013456658305516636276642758019368091684715577711880388974963051861215063064831959594574942218333729560309557604277106165752109459745292395406916862109860066090763929636892708317821360521443906409614467721925600563929950387615139762319920508893812002427023078715961079310748622579152763307418637426844223485546292279898774855290281228727990154414887455542976976424646246434432209375065245402599107846003998173888039560784090269260614515617285396558770400033700140370388671246910741450769848090596046683973357936918958427840565568090780194751658208560362843501400092740035704154709172753733869381760229222471771391216362505569937375401318357900467616590357369886791155475554125157795339035030712055027390493570913860823349957263563542796672015651959481157002840035883918140416109137157506515267164986762397174973484545277338704305101026458069452645955886748258296557354900789387730387836129343206327197927788995253924627114964660579478424506920509256451831057550869998072322679367557910834230992653148113216034164461097190297460042120735088078490250788260573242669985245374116325542946703103420804612967743094944086519763862089234775766084209158239303013456514150256817758822559640360870786588076061259565940099836075250064248985879673090498843809825021061356321398483290633535233338972170405759775222559698096383239080291340478040258604396853664286594602796771426779706975793531641570141926600287285180394569386588248967843392588169945967108417578569010895119575282893937165673428228250309963457570563699923808469024498285537568385727897699947644857227480724655296509211086331351372078939519604561666191890907551218668715193170845043624802036285646406166837778773354083430702428340252579381036184442506769137821392230913095823170911176276605255213226382038485747877952344308090998816924022443546830559041366860476568102544137290841635067399984428187359944730212128966056975459732323099384776312047669540850346071615510907642167101607900894944149625946544839062286274815074837472372390509484742328999743839325742654504008100604899449913158536655988535846529308758169143322760643279968572873798019527285601498882015037470292347006178193765069121774681608020622412262889829715076961070156053028266851132957080809126186364089079763675952186707236186460702143753836299869160896043499059579159557459071824195597109043100115331057932429792740477070771920798987373335216164929124343897812860758141339545259458907630950694390794565522494754294159847029517329000111496661962243140512663166557028032306264948210829353008650791042580566618714618133590473168315102317210810283316627722695267656758976448864042684835746814762102062768295883264973794969335857228992625959192823164986818726072348208228520828545294189293334196427179254142644471810951591930277164088344208759035830031649145087720168429072182102171957636865412133212182608317625075789917644177287275812545455013309136584069975571679229086799533771609163668510451682222378815775283182408581371791400983195838420081712257015830577208653598213838420065156714961632564730215214504374682510667294331736832151482704845051589994353657347508864199794323811322987482777833833684732088835461745846401369728000908329027816949709095019245465999793242815408856598045775696713077512063654330128495368180382538458885262435037401525534057352599423930596608530875432127387584333706764917882987624847104627129315073968908734210620611684086023542461790495142984179122784284365354548286944860074268503572986896624860860807823367214233771381511861572428018533370982826617238674863239715412280925524032674768876062475327024869865799625855902880868846417425342383630758990921138879403263397510522360721961751690400585098535108262200146726423598420315937529034670931345990151816705266153447204285802191350569926672186420208113036254025856524155166432183702056444557619353224997427186544403164117059567835978709099999288492686726451309584918844365994527995436364064887824733447503284111377780798934805672780134221445340296407640274620402098538189842018489957598961982171305902326068994433506037147172118910389806472678289772467632068625014730664372067618629727232878042055301409986993351759329024451768150124828593166437846825653119123605988933925097268505301534519125940047953556346634911405249563939668214462549023472806419765743983319915659683839430840712522883531249602883869092790301090102470457062461167451466731225540966013857873752268702740784171317010004286678162946700626735059550487005941043929034668184683951468280320853626885744549569272516657360029522110139343894737892242351411895242798936542491917848113872765732179123540825551024962202707007366913414567424133010551811672705406234893216328963547803654108362027137463695855343915121267281605652648277871798952030632138168484650001590451900247870757011695801152392656580440473813796379039958363715829758404630546574105730390949061312863438250952377018623326648912724469669980838148655279600659325068553281674463274650548075403476732943225335871461826085477768862118464304397530550118719957025727711416869968878871815253033657414339558642027171501766828780909544523008313982761046738491802607524821692558638763061681083387860865666123756468822837896234921201711002876962680940709372348442047164718624080356884263980698845749051716539846159561196915264122326376758936873158280371936644640911089714773258935961075762529759295203397326985083200745143501311447167305168476236021772809303245352916240548231164821899322477164198501544792128918540785638218300759120395718347999798881619305572971565808217825128134727696383546495713979993668777545134665954701846779447664662305143859519927152883725560738900934034929588897841752632903839399307442997493343800466430852145522001959306393872157227262185455644000331672000972057379840886913635597226215937543794109361395919827630278658719222186068295290780059602763434503591410523267119461509506905906632429258490073761752265320056877137698943265962137256060426570386231638028967746079664879738376658533452615163462964633729460759856074747482806230321016906710667265514706789065685194104385752545712030919850477917361972523956873308891550492949439714799756595561572458677671500443838940347296819820995023948175780335078297226800455070702780881414312210222323574581931733901738008112172228552780563022436752207970597201981095780067075122715839746274809657517740067662427228956653993877544273497582327789043824056154356165888732539309086372612500340757641814471620819111698505530780803853424648990035792336553229456090747519708411561471507516964768621102632247963542976160423407512124187056685225905358320044050975257233246291494422377228635162890549292378271378793838327623530809115964808300801954554704262458747309054028300192951111837741174192666758737283556626319438543549108343727306154438581187180161588500250624170658551892241131801045030128037727705721278484747512276859005141508744106074728692701419295284519636927392756703112238952562369439596302434472585453641868389308581321122576730459211773031921371333357091391167507277815344497433039098343639117021166795966182530026373150918729562538317632170129972673256357984461798215479072599693986418336739567908543916437741033271091914247723238317667766615386034091089972258028952936318709203293037466568662639692616844605527537228366503387814914429542501547608669974058296106818420312487297794535851886047526950922355534903420352186430766137381046490450181693156958172618849886673574113242263379277755276682250268122240677194442722664110087120827688577105170596011831161300875184039376619455452713391292156863845838399019257940225188718060707684040941060788700978945723832276550975648133458326908772713779282761541732720296263784375238617531087502020095310258714182607933426659285142710991450034592212634039584260977554960539009262196500764383951275850301852410566133517535893164992483112304323601982100615364634202311123504588507026451697935586209298910866016971502646463076409452744552788417397549183884017530976717555563757395897615368748376805429749029098920083128372523356228168820806123422098785809148654875676924202239617283824434288697302772834009173688346297250408695382832630780106180830823892537323474469506485773168027490653747437394334793960873891979186074900143009571317964202593618490546936954252096846181255646690360948564629041497827746126356938028021027305525091862026810775340445559155172018390267475059343224118382541969467778329421028426203374669448016921802841127393475122649949961913858408822413351204680223115455667198023187407154693367965401313576928403367872448784152816384905811818312204409812543720490863266972012087503725737810231923182969088835650093318741528397115831460643259831309077072744721542636591471976155875728054502851361993088383787721232922019536458877043689728253394516179592427687732028742933061789682205942105377750383855917766123899637625084203608016692306077575863578614516173181619647533659616843168231563378135538312074728507060508227778155207975885080607678937852151916521586416737238234521197510377970904077115358474787586485474551528540195688505868181305904528888076029786476161836514970917667784044420656294120032465958013026408912015727914551974900436095802588093739846227349845260084370826072038013421193832413003108454583686476223641898397472927492994228196537596464848041900561557620706393160254177254521328935488234700480676132558568832705108294413715745078408348960893041453443113662133325370746029180145732142227562625540989791171858998493229608529328297488850618681757680057043883727564190529686055413796877053872866612527652161320523802956043063899351993385120827434889487200201922087478278405459016007745261446357220451218865317936036705853282274040380075881251866331047343697993244345574706616940410956888872154159323351922292232586363236121442704313678152778856080253144711833329071423464828830224317436194550652916576278441992932110001311074091984654543794661579730696507807119817598825919581992493660735974556018033938168816111272199185847810840384217070289507561384414530499338788920363679224982397131163222527817557807552083478574862366028175453891725789152057422783960598237521323656832330297441560547061104651334466956984667870987038475865060247466395348019842676571259358734337115379466504921055850172665728041557533205147267584419412430416447058040223990429608971728273696799500016320204743385014045903790259959304519321316420030279203867245471714926259380879386551272144681694670641864419034401022665733839270621498000113145310721890320774652161438571475295140621757946237053147189432550601542436296828683675556585521371369457126990000205146688070840793104502596081028134692424512972174490764027948189980012961148550583109238234623393259061035381064035814644018093268045627338245476672639891248660083726602743680509480046213902510013607992651169669905469406397814775746445172611877619615664512387496049987400201906329728716185919905400808988762547787297113018530261911168019922955757478315217195492902384724295659672758571065437162297241004646257365987830004926114322416254725319493571378741747340390718041954418401622149277911346141331419293903765293120504705621974799925361399386949824168089641747961743532783097439448627336179052207145339803712173445838652068706539359809338380687595755053777161943563664872647742015553198059336062632426955025265325150936394193906695535822214806591098224050207287183693895047804690658439645097860107613079358664108909836074895194300913976496883606148815142598992749189049896797381834371146940508804108283381626402037603437291267228557920574119161863698703494912494830391330731456301485587389670450616751161094938089184158087258394046122317346511966063376184072707253997059902026036538031198304569749633876802957832218969144668649027875316138932149713212427784971208123065831180174202585644699332713494844346139543638205322299645052588831209241834954684521094292860113419188885505104162486125590660691802311212784047212519755899822482761406221934672186804618188770616284248662819066316102721584447702496584638420278729344396905420028776543644989726224162758953232557004386553883448190900553032916323281825406536751556962181102095001145235729081126246394938100891209955730748625287885688908542148463925063769694511309740759529816447420853527839246186677433899848796707565186790771956716288605171059031872548331444177167422533811917304711234851543923053028636816677835679731454965486300930438719303119491199903068149682049800226777245044555508700614531014847012390081399897503388984917914756784025293420011534682863317256557444600000771967752239577556534965257954249322857434717329881102344349600017354702889387914857982208151128715981653627024547700258605430352669063001454255072360164250751111889797914037092029918531354906573018154548112330151986515427330481388357640076119417218477369335106893887460752823154339742659004952226238087110019870638651669547908476591286595772525971479575209930556906402918686112294336711290815567168890283202732014488318104980881831848984637811015601522108566222159685511860480814170583509253397740921705565772578429217618363737104641178749548970680899220560877868757737600456815019700248931830297508512205546599371046579636147941601353318510937154340190688034009715493655491344135625032417293350765160034297889688248933312896342542630691626672415643771166123451797375466562646324043626106948922791653420141993969162780813086107608615591945571220082614434659786275104889607520349171093139707303971865898718299815196416114152175122499519042142729924581761795461431052026366647052025539154835776087351208678502139362798974953544537986751574415895209534593278488599474280847496029873129945202661451443616584961728921162534101388567108013108859171872693392175877197037138540856776712832382882931844006876258694553209033470172098826707763393628732274665246933769196008367240989559448629200240561653496582801791286243891247736472773075987437666699429561516294948449376997434396022069528626493385580578948842508826990309764875139932320160524795633558128582862250756461781064771460179679002953664197246483769956350634736675408322381383655356397510108810746083510686489383772673825238645458871382226534582703326179302048958521438903189009414169558568620377392803164293183927525450855079482898057095840580337861614891237504386993030400944662033909549305706494738646961744787011532338321885384612502504314375687327665706006636895821279472366023133959422602766961217755098475897230609403775821087220408264479420287592551727136385430775423077143447775240996011838175926289327146252922024191107772345726426446155349637741328614408110237789459534397646428987773746378711160290897111512854079529010661140567455783210867193467190479348136308581464771177752610528903587962782751260148778461996622339124238828088256663286370601805038984478291885344439086360193808742230146616281684810878091108605268078362981429606347199405943741360140872368197056075770944662683797706426453420938765464183119222043110614428837419359908259091050779867428457069020422316250076129521685051653336737646831213216215337058816966452530074138024431056622863648322815302275902195752272433235011459022214127359021682022469588911463650603223901818041108186419943540574169170102336845420826184895614265445495886492981868646554087936264913733906755518775074848119012476197437840279601428043754411215284062012772404366057766848457703504173888535055502415845995877571094072396291126910538623162873801193114526637839821573358190494698314542514708020397181186199005248021186623168254241290770854194591230995353431812393893555152978259018202643561697242402750287167432570503307656520643094553886628430264649754826170819675185704321262473214482764439567822108649242984405072149814272485717933111062226869714577505705557361220789404599844691870556392433862444848280082271479253634479417833549950649654531954742378140925230124616559124543046008863130149100071370633247763997537238129330286617877409045953649927969944452022219243320500579518941248551730089434976383932650521045881456859960527331601667680944813599937728651261006034982446057370587930495930629145720788372368762902037890760769743353280363890392750195767541217438681019582667676234203110150733535099986234324416886476502966664162271683149901420300379336635543417151772675153540928760537485812116359385949420450043875407361898196141592179378843421357823196476637989173091746635131029933364230963521947623670292327278120786171878639658123536761853499067788488157319720620251170027607109373301960935602548786348959473377687662247875123119889683366676165680559181658744742038719622509999810188254256114047624130853740897582082117506441792888697590196670243455958403138246458862984504920048423303487497233026179549233980907525451327747646092904053557354347844332852453970303804701487742794625683814965193509000277579030125734470475951693384915948417708383077503776819446316947433128549644224538813071974051870099872863561772228670247672244372559996300272543588516130113028263335247701356664216557204347414348297055398926705073586490678999684204969615243870534457814652484788176784396521507382099577088472270837375267564039459400009367218934532356951569740397207750840187311166441086229790216089294003122232337246630876052387400468935434647140793146403146970038977363785937562742153218581807388763600046788807828194229822406882541131371860670826744990184444240589651682212593184883219243503512006854507052351836532674279427157719641230741889139671776914936452696388300530367003193857690205160104202873347603103277827480362523666806145602151989799449603486582341515701024270773786396950505260683443568064944619081556265982876154192771351270312299746179824439490822235608739350438456715898916945191458221511192940104349348118820960227200391835604105485782030437593404120348328553809889392151248306563040904815749292191166453686782358483906375393355729948442764228525932339187132095123325775886807594021168708854333025428698549609172573095594719685897199446612673918389917573355526672332090281965454826847574390818657220204693760721473491703690307554419448935816239387253172921544637533661778465097916240297100432599172208235969767140461274597047213688489132942104486099126692011709995017302747775994521067389213731754059735482164600622597220520349069817598862180202410258359650372366492850630686415174752551189602807207059861623157287936915805225886764227632507697337542575922561310312048867171656696913561595688669048762766302531009290211277842822508198405538331407782487194606903111000247357854532155575654611488230358462990035894436375569835354355761406435104710598425499928096483965323688591470751100972822304460996967210909021444708065178976574907347058624077419219134750888791095654900165880602822285282107981152806138683771748187936743590297103766391176221925836757718185423053347864883350623888660487785719931463295129977311882605264294664679087238924186751010198929139740563944115000023274843863141136987111337563514447266889458780508873628534536847333813955330442423265655814901312099849475810488838629356887884195677423188930937141645576807692668563879671012571153034507437644437280520633685979157416131544303436933928069696735753278536593483866659779340772677470301851729616091616207637632266745702652285858240730720159954570303405236547793123480030994603079945657006753465542620764574979204118812546557260938117392552682115619901653782761441057201325201001179991366886181138120596458025855870298449858279303160174649660572674830042027832755589393830256051326891733539147227168254072339505476641693720215928622005545028470322016158007794674439950146618768327932928565943197532570715535821366360554330531523558071216982758695855554399258778018333340877985605793196021722148987096627416345871212874287212410770091777423487475314573542761798385163400575234230055836793480834402463464776815280292926569378150896024193060008291652513573876557633315843101636637507046053568114345581525340063415110340247336564327595736784417805071777641192001962872989899141681412392936897412018926202048899291770919744758533706820022952244278834595357674081802617784623034551776364455907581828005612052842781871371523565802167291279546284884014539724010299496678593132191579327149399926401470016578067410890801425663670980798202151254051957627495593525241572169093321798169591938300723879748840375225725017271240196045023913787016672700969348452802059738927095099426532361833678139882062017461760023112023863059132970278181929190944937111529864373067866652424057709805223946703038195963467367871044402284387968232847244981287433606302333600359705270769230783738682010626135693911799945691926974951028949063545745643036384446465508662649308222306111385740692808876418477905302553495295506464868049452681115820413376307206837939713713044615934929922580344701576348345172476230811859095676069884218928365107005806697025432858274218238043587700387092724865189207076575479119212679577852354180350535757548481062666425843637551727414307614677387945487990996623975724003884611152410276168877767599030009295014118543217541945455522251831992632999446066463583055437848928269203026877164305372472900925968887224908016942843836977145954991602705719834363426980924111540992331197017408826421604004242759362663315728306396776147625137164646951881873071475020813518547096195292369590176970005747400591953932159924336443661760667557626839126597544200365486602353419062750905241151551690559041645028804408528963969379541885815675903307623863925221563992130294758681777343467022042300119297038588890921588038968443143064563152896515604509871956250336423420696923851371396414202120658932386622523581037686490693073177683308072950659429929440888258867857026855633247229843289105975100950525475274690698101216594342047956529980830371318749372806714359126397493575781726258743883200872441903402796656455619999345997213608947804115096766418233961856516079116984451597305590862985904341357791664292042782083486970124586119497519723020365675051186039268949393844311279280123499262738747908029251854621199172946630551104828934579040414071322014380743201541513179524978760667954978101733538493018673154137485595831264630773308316780296995084431253787200364886568490836856102940961559207259799520930358413074509310147962782608991582789777553462482855371965431787575381876557176058309830753012368357756501707024410624537819778740789475894499310697497169999077219377108362394284991018264279914697192009686885727729303808244294978010674651947264675527006634972845099562913458621177382359061528457192822178512870704742910381882728434566283532163006756268174365971712885134461932997187197316595901878972358002590186437169326154239650700906714391520709535543076070664513054230233121517473340898349117920179726749764312004173059163289670199807569669092542402254093359394524241093076417324709718933931743848411509777864502550811909087016386296652841038748528242136326641622901263123929775444275289899665627366605253663988789960171407559632974054127890690257419810111992870616241716945287732485053946096283194259763690697199649278009407895952216279236450661427609265866307713275325392103719379798889238868909219632158856057423764237567387549896762702525295276426005270643717545720981694798120998210759378407454393463446793144324465933003736679451090307067945043538388961170803761621781334424060316628991432506714016260777701099259434099601610900075679165444990504931502242068269900135296894135232517389937598233875867733092200018741476860235194749969197013653084822556784050866292289595360525030425379629835461875347380424504636560787792385598625585283220449837655107234065031960084453960273219514528521361712467663951926425565776099456842553810826418853882835058909584533877917992207231222654761097404955999270128384389271282373358455065972677600610550832761737798515720325227739008973922839847945530798545092839239612078742093122170015166282373886118519511423007104381961377569001231919100992665129435390443006125513143260446238144884475464070846340327423767140446036905455708542969081255530102580425704866114004029286326969092414802822064324316495507299177992410639921971358592566290604319972533033932591176760883998740575895831412588752058013353656975138922468466220124214472767301809863991495896981668036582318325968429384611983699645721839091128592922229691388721604855263149932830285191490326716678797947307471654533156098064282066266575962979310687574117881893014447924014017534419014370559499562962021969920945786573212550649607864753074120792452015303038361795024915397848678515690892099877856919152898488300592595870758077592998136590134257055353755387993929885632076031583717586429561167408062522406989391172243295895428559273943592579791556752985140324452450561792853873316114524942623070012878439443528616075117028034047790835709531084997065262169896454427397519865816527271550744874212029618645229134419968817042744888488363103992448626009602169814007960552173890939394875268722856934490205802657620605951654090743599591789324846531082705418479470782310331085265304365638295030555245186662354631450951922377036259416697498361394956372981850679621725956788923464054765892717247053402072619072739539054291756776037039026034415604335260063897738270654253836123627064498455370864597378198991194431249213698690519053196532133898779994046167432421369190397814884512575434618369404147087484551961493295703478421711708403966337828204723143968661633204417384708964851792201635257302519023775412695381435747699789812198848075807672328194349083111407251205575270397300205577210458949855430402104945295993412886660029941217679520870315722802705342188307176769257669357560281919224205868355015220367419254512150300874647606081415342495203641625463076614647834980215163693784563739826836407014808216612377581036363801669608543837109261981666177036295347454959819794832825260886604735510535479869364270867701992151064640575865072091895339549084468453420680377725239806413770678195555782089989040279048194416471401794930552795221183880368260234491259819074559469709466563857878940867945394478150126091855227731413929809445015093651860970700650099480541165510918699787649583761458098427683121390238937184285573407028062868862448021655324252584024275890427699987619546855415388987392845764882948082135679426996603910156567323085383680636903329683459199284798903704495458631254990109572948049473741449128428714328241221303729061533745262928085276439591933269103468419818787612381404643956894760450101194336478457438477311960209430635009183901952877265328258765369742530721092569045169708984231614409988559634477927798486268143384371300447524333022667925824912460112697344081862171198153504865661730226418929157857903686625490261953345761765295999991614797256954510953384683566088274830241398295803837661082083482883734290614010446135367914244935050442615163921260713014214140509268192080365392688509819306844314365009076118352961509075921336981524649277910533954056603324377332179899073058427597096061336847873484222799999301547397546852719473460327089352735775090205225049304664224338004171345802088577818936586107074211867023766023904984742554885531015381658101768349069195150928152589887819832227769407025806297030284796423084023307183026622287528923247777953251970007102926362147152743885088057728441559546440004733812418590761488226363206586807973586476961622748599696455363278650919295736368777170317763217590962023382232341141047585600479707921950808469906766363555696098323427343706019130377517101109116610763763320231218951483806905085108939071321317051080815077163565085347181369512184308206662787838154630163197619465780740859587154364149897840854407624518027149241702931718431411858393057431379352001305453071660380872758488119332225703662535315605559597221703443605315167911875680585750913528936973307268663929444435080925093894038649996648485904561356005205783963986551142919977782395903344819399435309387128988421623540928136008157423946071918835748429877836533038595353889300304830746065093045120668757262491159501734713813301959436527312679112508568668431277225270896205545956673932625155840648705648531136177728155930176896230866990833656909891870490031380478379122121544946755631068495076567453578812403302441709334548698716023532991352971649625527036431540666124188598257139471741822798238988482489336438814435285155133864279467729754369009275118024471046411609553657580421600349006494346083548649961611095406726534898641033061163588481695253462648620773909388755516389601898029684430751228626795416435774645663607467989475138378028162462745550839899511192567288793218674274460227345546588761827083262245346702525983664031499022420190195562422051799419834343500291326363480546711947063189908203262538213348811673658366540009740169335368977870316917141167902629655472038731346246578581506228041300779941083521089831157810578575177706752869948185386454363823096398096067222182110085549213409343360361066051787888489085768770767779096952351605499695322141193208735052000274988742133676534658969760850921537305533804427476398564161405547565701943563247179890980802234081441490123333033999043347297190054257089495239693929944404816751127287272029615342780997047678173669111857179347474960527276146491344418327498224081170690289218280312945003393318167466006882357758665950912184397944980543735547643297315300141334970024741882911725132645477430662809187457699525971417702062333170657317078528558446023936284708860264562427221809272857327916137052773898426055999179102779471300427814220295792848719835905141528035730291672759822311382398536343032985594216889066249726794746279252275581142573517536870175505438453400290870465421919258534061891487079996307920993286407881924253329825699421776445903848939778886637624670433434831922380207102576029970391803596595952266152726412792496758218132884975544945889881356979910688628847826651831521167683401826064781001249409143823572607548712755157677249424193326957761040741234550505259358321994294122690683622037126278483219380599365589861920746077745257610748962983424623598800470884962984003856696707506230809490617279110852060897115886872761676691851266436525997706518386898762262784443105891030349045344586924245002597381172425785117849789571031227064165794846720826015179194696716657287118630708524375416696659679635985274518636765117354563222158855305807354488891505059008137634088419011836092933607452181566964484593783577711768029719172474314356076360221346734366986848027297800805587958893661076775156988967087578967170577146018660043763715461784501455938012167591991237086398519567018073165263303195120285668636428993341038536488304773037092932786746023289966202741133695032037934958788619852556388529994720540097958638410873995023895895507525583998175684088119612754123857525579032934526191235069048563548905791329027084817988118379186562734802086352268774017845426167483252261261269163626342108316663133957463130111989805952056636960554915390112257064438762956978089017132770563853917603658438176739751198713685943784786199832966488722435391945275308305373022332351430331906471555352207394954111396280377910864830129163397028561578905922507518924541251740222314165108238447851674661069441826020101892537732704684883153097574285991244548198463377999666586728686178769518739692872340327758271168874437605206121381631893616639886913951549904892111342564787002160244372043350136923631145819662838852482430808733700942064613829033057683849670632296406412347428202435183619478120354795753683664178463833691481857331274086193590352343177874731037620981528493323974035805003561918438520616431106481626747652900572296837356347792901543914929098794667322713997476603779998688442496371878998402911964075612816806366380436474814392607830323501875355583764836969938791132586361573509524719308710418359378800082353680290846014102860608852729238258217406860238363507909210255834860976242188885127967440637458131307516385051114827040238391683147540523886199885282356226422823162787433233829196043680825468794288759913705858775218557844701737879149053236273721757574886601088580680756228609813964135739435147862478564925647739311692503813239786420405065600480498510744748370600142236875569891090788858808915308363006668695372060763909755777747623760002661536914796731124011061009685376942858857785749374846151687623224280903442220361263153734012646249235429821864817110694785813859303019622726298227090503574640993085942954880801522305179860162146034980681544773934973739194808297550651945239530816615359807521784082897766198878357038728178582397949536403656509084980598028727158498199962072388029220123051948264433388740071162000025856342331021423040271729430149047937384774960031387455823230224929319774562959819513714746782814426546189504020080773887926249650753786786634316952863073704263277730504246705358905990890521756314616426751836678688110588862416250043561585423749798684020057693672152285589319141948757184531619308126368378967477856188920465630269619335911690853245238290901161052838525489726198298446309753148883757441469676381919796400441293269863435601027326416090709386642184632971896038859134620190052917222443227939007013417551035971469708335806035730141779807806200473390376121251888810539062797073563680657825433169981008416443583641235281415966365367731516408356909959016400109948959607474353325646251749351118341056461273156580204906841006348408618054574060610963442865977812194065154874024462283352973006839187311408549344509308734062082516300519949110043787498444132475722072971878094918464452057281526320435281817350503939790222891939613036660757449574263867596479573676766742089951632969011010022740505016044781686095443500630219357268529440365261910847959499351706215779196610252430935255001474602626123858809832861885783810059320064500076521102788853355572709612470613402818138908675272937813057765153118712588252232719419953842559315680741577033322006442906768533017700606459861027856332626472153739033802955826035050227627792235801995717658505681039224662312665529829583251918348128226903395667276815951617620645153735185932764948251586575484370891370626316272076211992329309451191746489864210726582820591099042570933938296156166968314812315158405322295948181135525798976537953277292358144591654148534087917407858549288222387243825670112336259722686704563398399287379088526189890543344511504448839878394852820054344359013108331576069334042034412096289652808447954115283656055638777745566608823716963306454292456011464109985331569081538266611387369803180335398577640969522215426424599784927407108736722218227027899771624644297278606048009200316525003263855526804802365640726449133608183452446914176416495509874678184675425739583364837571027014968397691256147150727776385129866277045896154870285067387333184063442298149127821697760940217192362241017412271883473461522011945201837581188868542554169434405493788688376415226079451317741682352561827254844346993633369083075547489356602774846284789983140184258070039463125700921833269109915057844464566589487430795269916894132165528416342463845432427826875605361620499762278992610768727774901926766311569433015870262477514833872627164104153807474341025078792902410012122576000327308673382754688181330140622632891868562756826445381480481528598577010591930826446920521426422126433811775189257987675040308965369877845454986632352848791862909078133145101192548775685683765726400177193169158213946483128566425406000074271433033871124273109060701115857005451370272514662159908302224078058725722727997837595243181215331932864687029997519021138065562534834399131433180562389854226137142478713638805438620316969828007922125140515526882243623437549168225175922365660311944993053952903177937952592240998592355174927017749874309123292164002529347840083062652699477543464660740246356408330098405982723714716349700135775230161084308713639270775204352594592223700719566479168078046349034740222977367252679687903944194322229861542547440591969744637695770841143398454586157908754068198465908335724812424833519217411567367906407746122358063104981166376057885195521847922192616469851401883613298945756474409390264275175122298099556336005016263313089184407698790284792507893098079856102620746865258821584206929829855182064154367580341223558445199742778670050286844661957552372765793694815705403260903101665178922867868319874903909480766658007640934336461967505538750893212136134202025899481344756363796305557994903889657125623908344256859879796544511084866281367572737455550058856742377553148234424387447021223228569940217049105150501595897153098401588897734858711201477249271131197517449723963236276904199430498593438709293842995752463570621611501566899413686550128362651711881950120229217065158107689035575035906884822042730332788518515467811516885792461231187831927856873842783954137208882034555981820067549292095905270496039773179075982133216496528847835136153438777218707804711908028989828412407187638402127611317984818522187654802281776992635560691797822825978216716051887372392093699300571931631280787794088740213166998413285484078998207619707693875209510256496180841741712224548082460591231142767047908639713017275234843773362759710680384981391246931303737738376841960050993819015320301463198316063839349726296797740920267469475287147828242938351272859841992441421219567574620426912464299791919531366337006487457287912578807613250698732064367431103732005638287284191989788726139621434374744287198824636714519583560983718139652519436404163707365442104450937534856164010997469934780611994445238050537445561209847470627882350888210072995162307474278952369752263027687588441175319508016486501649262008364241691978699511334504653262574948632702853381214469217143088449727912237498200105108655023369599556948447054343822837554025972511512913389055837619015222251650565818352769541082585565414664770206703996191494403770469990929805401594639870605094900479677815491918681439645163573799433151816794403319703914826346969815017222737904197995555119698374357634406916073589919465462997051201430459001599068190797495650126942363103881656171973951531086912878590435375973305758254158809488368327081475404911607153089287610156770580773337114234961251557812974144346520369739138770124520628024072261691039015474402936281500265451789945680065257174803431031819933404172982489364890372231731824574181498072276259979849079255132680243103145054607376421595907244223839182883620350199912510676763025589292582054376915177396034493372104296329688157289721529360294462163964533340777713347171729884499513017034180830113834834256859457427851979107101428784542467540501472908308346614152723397752063867487531336731952978057119084633298438621350580360074995794447971952055370414542363919169475367394995813215467772335101506861147321775010063416541850437484859591551808781217059827194814915948974527121071691547187973148919655254916744636589123665645848638033024764530278466429464762388010985202315533746521925841776376642694310761506299918891246826895641560411574574311656237430675293638039717149731007450182855249506873467966780052500097206763668064448616828554746111774864492467319119764786069654494232514473800999367453728272673432346052443054598618050050326926185902110951531078778552044351346444643912506703769121632827399775545399470151603463718605343332777610283757714032752121294237099082872530439809474327133038040919864332307438078198680811422522491214095278921320822829770774500564974494996638331467781670422224844630341954012864446258271215795499679359790416410851266053067761022908179839148022773863343518716650921017979535953888414393061656894862765304835708754511097842069050222512102383240368315532685854676142322273886277733663618166821951248636203903776355457154472981558783539500336663783238808694960173660452658076189703084952988148522013275776293842167212441868787059560683355976717966906528597028192895103962313423888274893633970842441968851679299511858070508737873796360830853829927358708000085177368018114389700492327418150145386961224362945352804122048197942383074267897385852312912242537667833018017129188399223223050479110624519280094171389229047333937645864668715866555004042193616112059398531850020878144841882938662414992492620070290130873608319357746672432742897509145499408069188827674489671180392213319449835870022843190513878675127011776913485808736503744411223959276551335704333904717124200761579327482248132350311145248881223949462237872744604453499485228560760062691550836143071833843156459531031648902266613960498822582594845301685107749938178990514936129059903904989184764627337644538935655177086006769102912627688597877760150163413145361275852398660736157775787028939629360804151629188601608439511361437951945394954585815438619400323862742745015048490423412969138195372255484921008301932914508294109399408688088494167031912948901667454505372547801198160556928763527680370708976589346189330831842334630087871305962196558172470665343767363053256818034545247361428241228330727076840066428802265196791254558367636451856683647883678551217929854157348493830743405305716410899434163422271665542661612095612024592969144658244361522906844404054647710704142097950950475422647239788119814249025941814411113337962425464265820850744677413597707278798693001958351377043824395939538244290305124627325940136863226452670240843440861868763746345629895017018813878794398713633850802137706249790418717678215174780191100436038024634313118164956809225877313051650872449669843855721070282738968081587542648702677141074709653563916098765685880426724476278790140948848434015748910500492403105034120646361049566534758670260954908889870056964985615417189787795935490005254554664440693683343357079924755413849994284499572478026835291191491899919875218118732344232804614121995721490790168982352273701153529285809900583691182764114784559643955627249939355459155718486076540963585703886922939220514656035581053752121432695187469730970377062588236858557969746315364638619265891861373129250720723932890966446352103107179138559713778135824686804679924397842086570641923596920167250885737727533705456874448936968341677725016902457395090428210433916203426905616098912134376179719834479250547074533489781874398625765639258901380395693293065098815921573075581041859113242148183060224711189239225934774728850520919370981109019339889427640235680397272274453610777014887100713387189415511161275343638140138348279510022118157457175631756752264295588768469535754198330043961927996756084784259188176698808271664600582957402940628281228729308902013084273918178211370667447121568373050204752330755549764300111330030338813976344194253764963418812005121802561591831800872541787670470533013519657235415431581370360867397201132737263628227628665426739740394929258024100149619901662684859714076985656286389067263681504805935909647674011065685476665111907947101872804920011518140415531261857708184455934634176096273912034055576514557396319111712982494888459431516778857270057419163072964152482643753140871008611555847041691676205201834924524095363470474636347167871474006302344797572267129487980086410820581126221442485562590787200463219449334942612768336770868089936738542536809720987991061279909899531095576028576397896195087627290642039009684196340186148703848602414023637487248420251238501711450085507017028777924900474329123443088969265306326302047945136892775944135826283184091684123200635382928555672836707446720288037276703056898336121006493243265432660053449696131267412867029315560542176977233095809907257132292740701362245356836772566766548612787020094272255420080941974816051129798055427758816354454431980000437194291990679064837281787558566200021215432047279702419812395681188738077244417038371071497083852279296368791931159482208520031402074936066498080972265453577474795810906901928844543559772683001265698851944926480817107465397124659975091554931251585370728002596377199139547309826441594994443773833863726918409759869545548655133271572762634396268835060684453973397648629329537624922370772547575571635176758703581502709269508991933790486675756300707866950989350823538105148035978544594024015738666969413195123365860600776203452600657750486039274187695788303698070800214408374523079913364852049175575777055131786246906686800509883822279938596536469100100535429001267830137310674664277406735741622984900657725707408765513632303399742810297237907864958046560506757886460451664005145351328232647107197099794923140491314891047730299083495839837291100634514845246123851588243405816421406175547865281051910861131299537796528080387678079943375650387418647431761963006364694048389354072030833448321019476418645941868582458556451514621804696249835415102968726820905221007669672258968038116022687301525445973105648903721267947147452866795888962530435308239687568123367994947774872005184424340241127360370935267148707917431039423512597129950540134782690642778425794178933735378388550806545550790984199867859450481592161950081247053912990692716844179102198373504659511714762330596100130416576468230289693442759424365018251730263962125305561342685932523349241479463799337413499030319245807544038995388928758980474120530208511682315241669440398946263446360208002536584391214186135480449815839126971467949076487911533897770251103482585005903592420267387562893500495729332880785361916990489486003500279837968375349068738568820364450124073194552067825353503812078253998305038126043799179238574661157307969694579456671647837873975693598027596318859236718968051658562115900814039346070484180454282479876101286211162403412792403457406196524388217620543569729436308436759694249124624641712188891070848655907121075034240333105976166392459759489543821308851385555247405703538223541296758307488790610952456273912459419120584074870584560408530876270644771720666644947926343959330896573620394731335129315951550662852476157185336726851340448779108695869108351464261091609981018428426342394060171330926558098337853534063742330547119409869969479765591535640131737681973534522023180497911420204283433793837867239769000717902510686420307417618606958136812151907182835123935241688436861199123006248095339400323695897316925962827814633014533005988509812842426070392973432579726233467296238247248138103455701895633167102429338575292212972634372676409685514103529928978121025710883066212729654336272981402296801104352245070433839829085353643472500028883045246764077776531704552869651162046544144714768538798252935830189294383332110813143361549618628309467804871361817482679617370128150665132640586051514612615596118875961584151582428381102262095583795372714086999948731378664956772981648434576653240767566366540389081870641845055667917647222000162318691485874452170278150609373558117898888038012133121526175743397883618533426141581650268313877315560981162369373728913634501743266137894174340665030471656399860725739813810096016674201445688061841656981856645522357681092767817516730354634760177998422186733245413005880789051908978631714784000645698360568626428404974276333420301172879160756902449365259427870027662701547663222672781012640723431212913854712757668869444363214649016193367864388977181320192649011702532502970804296066650028147372679512072579918875667834820777296334604633026143963238062165839700181718319434623130437097202077269221417491978531417803319000277307984054943684946227623876384766987259441440361358281639709471990847105582976627552297047511171641839048327403810222413843057186735396396604980060420786599555252794796834131097415471634178290964618616064975640785194046344488556170305411120227717463147949707927424422773225513840381995136716445223686665075965487750035982852682656033082690121247598999315241691073699416619914668070682758905129805174066627935725570455300382055692005898584148297026840346926782561158658685934498557935845091335190636780942427779361646295420782875732341747034876842610501679604231181247357322516654211668791322500232230628901867118398338075606989574257437044143623015416949903981500692366712733231406206940806241867351766729080897889803118410060381076664761943151465160376856575716109844330435905737623458433285609644665254988550335667756877016375864086855519766380582711499353209224672539558413435613052304074078378157823650624398104699602095862955224219406953836798633542890968527295300905478545813310065619744130107138845859488304080047558821075884300349210429079591151605255674264154543748549950590891654818558266989085853105892375113311952246206588147458659676967338499079983819842439302594378096938606255877905676314801273914702957476692660313514111094164676196889477829042869957511565312681091444881322566388676276744736061295577532941493765752173331550142721966495400950151932122963994777656114043703620792159247761894930710149774876465050409957087125289323026269742715976535371978075338699844325403239171410590150023764463707271795978402732477150156635574295446252989946317785772019202356743513353894057656924321593401930976254249349025774367646453235774575471907998194253992028944837593027585695785897936917990457936203373666944947982499010549484919578366188985959603619358542644333941745674402026898051253671510791376662593273779640254749698095823073804269034811324295425090664137188905556933658419816564459104880798672320949026487315910879689499307053846170814673202155157718548540193635085646405647441780867504481311127867404434147160992333965359043324530348836348857336250388582084001812141319926940949645773443923846143824527323538072658782911662316804944784252636397096513053374144000285137525481428107936078052510929150629226461545123227808856223659745778162337344240730140651047693830442155897992930038519904433409690019115612547841073095290773932616328895627801143436923705527083153085371153557095534177344703146081568554185530751363217239352296434201209823045875224694419268387352496007564943046401092020594359571029069605581850542281926400330253031382842128291450092869189898960314923800511029573066962126769956864846064902002243179453539474564748973999417245180741334912966031209256951983969930250064121575602129599759309028611136201921477494377327986143240364042879782717148302655818720689665603239262146605101837954147648892295701571568114572484661298956103381724241474651076635857486219410321549147940261415170341842652016698094085561519886754970625577004779828161687225182938485687332197648620345670380484251265930798049789057977889447584554344054578159925405331954942479237372473263035468725953138888938530060612013523325806762012165116309140553520349043237537602200018115217949008432355797678707464174303992663401104948812765626195762363512050932804412969033327949690657257197176595510325375111048778976866439045916939823013942965760689702353273737768367635345514045164248950040549014065678987257816822712238980923695295296049266260325517765377931296486649122724606794246361811766158852422958762632869787954448422786294791676864604522798867852714287186961609428906013843329318776669410384503504229804509572956048235259743245408961007696269692310837047467522086591169047039278938917009622304290501625928900045221655260158401364206561287818217725656644633115443090360223989533099091153664071677476122450715837628573901243629207889235133130007289928905120037621193104505511285257183728419726966387708200296125971811038992332077360909896839291239053196895683845628208523453412000289817682675361813344914373074340917406587567904002946314736480179938968488735684870901849844362297016432720931291229070056697567463859645208978266831745852336129147776357109402188854014915680347881230794671881113917110490999333532457099668468163456827602358979843505491943669012273432037332091274852841963130288456133159978805199548118559731648519512160116397721630352663977562324709828386821514178767117199547096260191863871378943620340229156111185210699550810605588138291368478856170437913371064323587295214334360857447687699944577299981475519993493116443984170622131096511716378606566352206104056990712359607627587301235398898938209039047969382411535944218603189268318791992504498137726451966618895431829120874284828857578388101478542823343902281701637402656888993770767225126047199559327118969013491560422518856583226113910519070117170674843658063760523637216347201130144845051955768111891944389089451397983212070149142111940833030562861108371028979401972859130042878963751432852251618412916569668151675313756964660264204550092464205487098921979465418341558771208089639030591161389596966493760670054299276891984809763129089278049398128322849966452168691987494018459314184494800692678545926385621655014374687163692192987147470916941323416782516512816920820176198390327254094828253562228268424878318511838938594906209133596032494492192609698451771777697781348428366839060650548920460417943076719289624610666109280593690118573523134139747714912130450125359770663313352604854371886836474561035103530282198439433207856921108391541737855703178860978146615512941261033600139321927510039338714507653636429516341999166742732078732476628176327501040958631056244224749305986249154551577270555511527793590373783338328015378205377789438891269066666724478774026881549794429318044452008621437673598925469301861654167714658288948394288290713957528144666186005117050712374576075724485954206089696219892411311609880755942552719197155102667906014970812956822616583112249440131090787294392552885940350116086860654564557564829886260725705110179657070370707814026542456084971502991232735953531465819746006384920740463287929659127482659712484744685478266859995290208143540771138269060239942203897009717646411346415112065192339357568748272972295475086595443924875641661919702764778732601706611245254536446005146120369288160687893922610838289226576238814614076675156995719997398324877103048398230881773244863158855800417365545878671767055366236316351202573649669843577065689667071265668977700732528582583847523551276397434664229556480422350759403691930415501375537548388794502383228910349450485894344838494307953463924199795459212738296395735760859097008241057300867736140437272521755440382302958895717038601173119561772979773922721636767730855392485936002593296354718163406571898629274365342998117188178134284244166766687591573347318076914995196468921504293238500238781108026741053092481455444912911186285196311128271552755450814997738160696588451538166457777401619281740898598613699543395647444121370478664054997580376891408941770473044295656166773391048806771626250751492572898684128398723079926777109597920669773128193647670981862823330757974212294563935838762388032541944732991788132006255483437514971892621894411693188900540362378673730919350988128580708116261156456215605533319595592922485131049313089301353791734017696420543585205786549597840182635612699773037361606634184227496386559740201873185673924111633013191107154184931083328045495268879803372226328640928277959191625938184305972965372899929535194364020234634576200651699526642271431030169216407896395110077299878156238926226412878498544702188832212463299539813434660587983998938947642835465057744517439136879530183393102274111703599140808984786557405691804620260049051160042951761645454013842693953337102106182338703953393586284224894277685285378091609775127615981187868980366612022728058692409402541610069614237148012327684062431535709154345916006746894764448594137039923668542822585550402257152433445527410742617216762697487685992395754465881922684652199563061974968462633190030260448211969664176279966989451208075132322700423250428583419305561389040394418068537255482033672095342765307282553932871776203842787834371446787553703359487822736220013747343458881065098574939547368246340484324435355546500326149705532155697510151793610582776974796607292399835858854376911090597204197082245185981767702157052244975403552061483675871218580858744502572937350994433714831392483912670579014918465159332726170932571956602931547485613697082645203021523782243974951709558269080277912990905509325189050718301389381082931329980754326011998255769488947487662345941386913148434450717838951763484515290307754229761493319542159471962262605992235350734468205415073447100854168940989880824005304846147773773054508190956874352448197979696493503822669704287298106473975472582216820917847977201890437098544620557219884161655647564610111812885321089159879821592631295763522086691915941904399314281115687099176390653461826448531455863726115139431656671771444004415553107334614486145423842039306470936527529637870309872275841144229688686911238726385243260747072594223817068528885195653698491470912388536094740706524214163490561613042249524649379573784600249723583626065795604102094934176439623057273534032116511854448006858460628754829526422186659793784445998579455858903944656745513963201685254744876582263202678248694024555007515843427191410190772413706551814694538772160428928899522836823992725151979272236963014364382438443523972981814649692786647459908314936239593535231520695054895828579850859204834670825584100254145961051810903902487474191577456063460020283466462963833774274573944974998342101830310062056308101422572473145539004388771534140102445544221222312052814229006557309931657660411229063475756265144481782566206026411727157840398343110413387392460873176970974642200304357400938265675245935045121019197889286603417438469027995723987941807159243662403407083038481701677162708269137263456601737180904626408471481963112818233954009739353851619618074970370368328844851220773780095615141307822795900271690450961920842779306659061796182861893104537485069945963926195931016814555078654904188145924956184375578689140720669399831092497846470957758190729019464226136532242674313383743398599443170916046574202904521333941628686268002734395434756326502431272481178586585637203997724107236123208408406467486883651408862406497549170789621802016344946415647732749059365179817080176322970599584711794203166463345043185137424862206241546401736950566930430018983668454437634489955061542771936520940883059506655552562333609998956074362024528115660649888234168573553068826058783048356744050507813221157646540771823198624798548378279543046742756154429364000295056993840584456809519061063386357667144464194340537234585619541235010569262972873960100333753481462521496391219632763979339096158364285802814560932516229414021173073294133933197410384113060503492936284395922579262950669757616183095518709596445870521545971554767294665572513183225600085450318997435674774905389356227191655384622927468804279207051570286397920321975907209110720986599204542970942519340185813733097691800916592225057905924664155377326708164254021003683934907930327220275894774435474902988927231283179402691145002829537309401169688867990147811198996773054363838581796124769507270359631402637182595121616809995044905459269614578088582378747679969733710324425883202363882077467042129875590520665671498455437552992157831208042453572387825021206329194098948736713844006439803765463782947770737931173220491742169617535511250578600152259898861195100972874717776165315027440962976803281863496555939262982915944226249689044173976219109128973510848542550715539438912423405681029316677590397659097055437433976466978419291791183463994501110817204673143333661488248860051638728265578483872531230624028367724113377090121124505931365887849754827026439242634635555864420902268801492988832622360957789772292764067559053612468390040781078693438945092961369128319342199486191987684100919257769502192041924372430740262128343494939145917679336674715315115553438607043388624416314451815070593087463212947684797512166561354934718758214682822845924633830908097248482895108580058137308709149896157196203247235645425005175246518334989428366334827436661275282873837294261343213875865859843110141066765161448375547914878399983373248880043455231964331237613039270677581667382689192498595725307654635601533949976110531427932659051603798900704092009862722290681062337980851965893741123260808908691206303025818532402221317329230722979798704230959174514228684424850363867975743421727525986245158993798558784582800719963483980771976097731442246414125317634009372191748252323023655526656287758914831853247628600539924962165887069760361634762157475981415285575760471419776456098295210270384495107386469969688049773579419335809377709778054129162632987624602916086394054311904070321095627464620686559150864816613547278637310717632418231953622248511066723149345667494223006008638477590182601378901069334806385531729137437172967746105766886115108189100894597383126155040253427575121667125451464762065055548432774846232012820854253204657172499375264671562985269156544142421916924998672422763272633626520611854421675073920005103162473956168586668830644920104201610366205841197071341862260947717876233353157473137281451857046313553550550175781210951427035738887649012810164094410153223092767746609768742530090062914199456687264840744289084682665928232274235224832986836984792544224644403482640252581787350389375871279590701349150745116494959392710784364712049152221044692888412925953932334642673255786399058574318302759545150432771024860853158350052712731297957777376137106093634212474765555994687730898781276245601402744048285574380407450697604678480384789322464621713433894701224546879290724046786623184982756961250255979501505220728323133351116676864770739396085314212135292254134861180792886747371977415422172478023521066236750529383492162241229198218533904604705366059125304823551102252918926102276481376889906572294885682325325054098624126837325243698079925161026450204496498594399886943294303548104208536293969137334688670714990102906654988169928038982381530092986784433661479334432702467448108395891558100516988726973435931852091392616515158330740279507852730900347611753206854134328809297736724406132976220558249164459514717084888322152983020674603172103527772606492253755946545205620054200320030880840448766379826912249041205846304666336606681701793273174403079496420027861588378964028239473993455680621072671311290942914376836117080520120622449551642489816536900778993926382157080527326749005105552154088736351613106886381269019750912538860854132143972200302073235344877775573492850451301538991614667143194907192690793196407159009528038180574993895201300661714934836806949344971939188625026601654334640391812353398783713370107954657215655702514440331579274519578622098265699422960129833508855564178293021770283900194592895480895770833883757095356547228964191226857702195208540545074807900427114007724122901992448162965721531300215749103194888630647409889104385414469212753001845801395056263683417941516680695736060338379965502154802758006623236622139895905919230955200683885814909063052899837328168853462592541983657780266301013308758111291049219065504657056153143579297632179739430887850392606753335818247573076170813117043300039951145668197299926439729568076170067116126222339301429010102870766623729141516164521398668183624734496582050797430460632949482348099175129050746487703074941334558174885771726770452939426212680133311723411072316597784188129332932795938844490329954484618018864999322808683747059220438835725242081803761901443377006274860638146204245794720501368037802326521247003242589662970536261252029579096492480515969074052202143436538114750347701140797690241026216413828723746036153331598016222338651566093476187685297850929598657744622294416239397008159986548766583153919275425628823387290318792758779672121421503395523521129363984356401552983092467095673398680337055188332574985239826268122962165764733897377092707062973943428664211008413432511099393796379141408229277568576684147324422551860389734000119639900655472401542249237977354468163014346897356819638972071091793249130346546062528393536270870801104321049112471075735656044137623184448875302499835077109826168815556368136816670791714687765328559054174185806054708316760757316707108017173709773172231543362226780853162714961098486817697058830208871670970595304876208246381518360688752729036009964249874675608192533368545731678694275290894891358181104896952880345698617355060367329758330015220550216375802747693785920926095181026311674067378185050498604217227462261325078043240553651187552079975179905020017176701174628198865861881061821615591714982718915788912165485171825022599995158909522004493171345098005856173955077030678852468935899564058597497568388077889022953259459823726934525437754175215306708587320786843300833617595754994071677910325564452647860321596062939673947017408873881374612543031029678456225179201807457282507275039544088655849142175478978191915160847738216551479230407114653700811311126714175106508245911202385415851426254027201277452038542806091327658082875615523746659401090530463564046323574746333965374320242412906557770589098041369002865733484269229666263076460993533340822242439313502272937656889979302800337002491512331364420362399526057706107105173967883091009777250542469534538324102060365037524674183559817691191998330920677816514313504658320699956195304808266538867084325849532305079593226747436432077738148319303208752080942957302576309498960569679549916412934100412770075884591552660519863495529543257741662773623122808758363761095182618552941164043297896249433915637600866647912217999862853995396298027997988386979714518189621570230658717341911468325035952636727797108080484073560892565344753275157352892495063942500488883850221521296656872669149483243482045553703613241725089153447731957745713710300955389459107232858484793941119257365125202785017603188790451087078972521030654848194367931081977171850690763271454777288506693669694204773156008048225810291581358549815913466111929778160026261555356249579468986337265428049703891559502664606138096660298379798135957591499540193936655978891268160044073324972072923816164465870984041454226485825732995140594017900094617963443662454734984764370428451315917450411044919375558325915272750880990215594789263228908195467865312163446841234336407581266058773165212490384002284777688284619079656379455218874085571701025677482957352319426952784936737905224822366720965923876843743063503016426307983908774722449219642705029636852937399474062649197235869113754305039417054534005666401738084300986977474829344350365667418260799699698723715212455228402389296346150086217111538172252720787881380893493607117005134377320374175371319271467260995144627800234838905415787023651232980134436845413294895839895593678489095738278755116247648978220547919599165600072397374139463595388614643626864532602653394337201529929517790001115587955491923167192526413684952629997077825916605630567314173368649249675484742372026349017909021680610146884302278014574832414082956389119376815575112211939953560496553291081915298224466161941444091520234786548498170546554622057600494993268842762911207481589838200178517883695259166206923350843222263661058756361371637733740079731780297139140547220986743461491774880026141071927975682435206515193517094813232107181329553006677463183906043166271536051401354730971411060391946083108147662591625469831280470734732346582397495201021287891409674294831447925619350603486635655171799844135340589996008679169480940378483766079120846643597252187419674065452766082105709985905846104020043009800261124782739952665361992829067459298474045701456952600431985102831632935509263678118670998514465628862568247238055711095179490592965896969694096142949522420128906664118513595384324382377618452838371924650333372225263835003284108415151674893778765312791867268458469614983849514469227088311311897928707580219919398220791250842446365416823994282745628557103501161740101571551522987940554224078319327066112482124634573569714215365294184845871211272977598498979110929289024462446813769233392215292110880022300762511296498149959456169571645275768464249233234076665363612878331632777634260783133838939697611468595708697359430460258254029235167997873284194370909568575625431526265130316384291986874753430072505376835245907936024623856110009342883042822430168583645867002722406020417504704814784060976179527453413197176686494761536764973708565523053949718015696665213940015194398532799279055557309709404284539936550382733149317192410606943321713410020811745209540121623035934503177400959974203378438269574441758290368261378910594823290908970507411738977555576871363685539274472134699523484385794874913395060965895067703275876782248870278845195028182763326985694934731860684886119585445665783504993773123586094353311555320021007015067050022884222154303738475032174575187929095377369048514500792709792504782082739575001024422510982612331714654503357028026566113992672595298750822027179466874332154725204633412890093423025347021439600266510744608940873853131344101067778978707330739277584612448252983557606368117270936974946468532528927571009695401711057210695809952403911415853772803397631599665564742603608001201924373001982030643353893177554129832887527175363488240538284403968115294496782245235517981440917588806496880682117807087074817376233303663497456895607435874491661860099142337573114179877313672689135120844197058415845844732400787525959293313840308905657140062695344687592985824343593301950785460234825632694933279187806934209661136227314403994188833513302921032326766347769861755436301230523243186417372394257852383061736964813237859954541226566482065707497539110968248131900354208181928751877033680394242645745418338207150231891678795962283683778785401286677062318887233254252598519656964060132699519198827371495764198222382746569496290099894954217551502409976813087704904814241564550088823901329999631591298344634233468696006787072037857570814001813333324876985669722465113338687602865482415232796918307177467429230504436263723917937734565339253207545520553050049979808811070654325967809641949572499464154322408640338894908984553400714590882266587034096241112339771829190053390658133520568383745226357535614390394398185851068248281328583417616796566546202031405642624162727909305185631213409478611503051016551670570857742620717735074206625623761448987817369060377831223148264092737471679108686024324868812403843796370863790433210854610073522017041280789715507232224770537546908987975531079717630762585435710217645063012715889818897666462681300653868428859801644423378683305778159977632170871006074659972091568440533485962560710402176316055173777697162161432283862024197756847303995555040098906320143507607521085815977405976496641598060462001468246509394357854179963891319703617959237251994383164300796918217472878890279737322854400099848415715726507112564229863021462377799914268592764006992894337252553700989004037240339559062867554920625023373341503789285647406478014326166360837898061328115973016777888254279584035700776412805452494279660488014810545697096267936416792440799238333768317409728454441351833974511008702485186340519573076138604743043161763477661972123112362304261730888000354367313297950984270279845534072320509144949642029582764014911492082507976627847756634105394583876806611339895439270745070369981624730266721590405560734634894342262442400100186656883047970284143964396184966862809111302165821632449654273330820322274637150140116530364482328091659081483731865427263416974171489896769092128873588429493602662683387643350676277192672792988316302758052465790575508194278566665720953641265433079049809304495299890330570698822245837657272533065101309771088864345896827600625713270155357702103933438148839112857584543743788004284424767591451080265184390072863783877147276264431201107797810351423226507871317454384325107576186894384132695475324599069464529566310766420193148252200769362619834135220919214402940438300723997116987239711277663798461229641262339625519689374010071203148030593957186309094339904877206917464553362680957132222435873506836866900531663304078587587716193276189326383711516426097381318898743686542259446378782820111157193267455298571174519079263013559455004939818804060521992267239184185298714473254726256466197056406583749164357661341070958532597030648920957123057459263470994801942230044824324913210992077158951925287673479637931577973089330318215951835368308316437210787985807367922536995722603470460280742584713185527653259021218854058783567284471512553125750628672009018471565347517935667409312401830901803581412486218206269429385410779058595736903822052693692047994955740933459881740489067719244666502303430760498696937138224414908452475311251053294206803784192532364115135210556219983777236359977674675231462960576650895739845264892926509219004350823443009468680653590159061466136252590425605826026747482922301977864624336652497964786657385469464124432613252530709574651550951973114530855124423068694556981816272713403097715633082851990082560834122310323628618458712129706439628729405644718937461409928747478823169138487992830647737874980958160425006946128063619496394681399066441729371252967001640817315768368458337066069766485977615982638314756974387259573898076169758168967341082691594912482441273967730883293454359544973293697171222623876853214861744087646791024240223570142596091564622821375254744588826441958284758085905038706388110538839705179259944716454698607063334929715895415743027655066377787053236499156593310460539784713912349918376598980417881788681095898503168547586412186938135141763673076546531613743195225000760212830770008799907991125793802001391267212137148949089709726675829110747693199540172999342796702066747122455058688523453733510344759022498338325393188504232169025684972528984863824876429462881994872414011554100491132015926694102216938391109786656966897969323266160840469992489548253826125038337041149312953319963624085829668440845880873441641252448873946340127318289128896088218798657168362204755553434859167771500151153394284228909170170415035850651045572579378093787942369992412466009592785967521467499777484425153012234042329259465402846498295215503416332747422173641357644570484221223491767993642028634871375630113196118605754486012410710863401906754352216984383126376846710278605832152939384032228223505073891875097304210205088251928802269151431488733242550369154099493118176028401990114542302618564286854519886171241789869434247813665188478183603375627633618365573781921397319407526689701161409980670057290335437723806742581445554002914790576664009817836690725531738602862419616265993302917282827942081833053547881511436333777600731264991758716868423481066989755605611463547708436254500509607368015661144801797378746781832255772116854001717923765251226066801902655401442155294618008717545613372876786222525330183349430618536771046620903018796179384835025300548723028747001405991494627853432706641366283248953493034070551193655566878999914233645103140076042578039497900393112101720317154238120359347681276390217466130431007819235204073509174525886254127759278745510879544257523209830537266800256568069300096419629874502805384781464822411369227812764815948112534696281088670777234681758823766336150824593255533988607503551793854602216000121165822169211769920386305320647865979230416671353645839962965540633877988597033873881368021952559947041268344424532078327538093248144750877129059163313854876770440964913535171270860027157233799949841063305827427810361097398980768972991957254757648391456362852508590888666199107799999838038544459863666313984452827115350424527757551677290268458830269239519054147478431600389685873556331086025938151022595157858033294239940234969059480903512983751360267973596252487526753777026774370910120850255098040358318396603190108112778739930211838624620930467808569282304599900228627952802341819504314742493978801346407703407342733255254983449707547036534455871460079885405384893078586766783806036613221258115232072588598175650816309457397520001907921684407616565335008545908011012720359955213550887652666893012338068764388400687924019125706700119805703186730070432755603073650203970824848899982144307326559471464223861223798555513087694487708303544574986484854275178575328783708082650250604961590951546782272242936084364856892949328915348867783274192121486850193483859341476870395209303103895620849902002204701147750481429471657006676889511709855240132319689593118500375041977965875840563928713652747349969558501721543684287705872519956649744506842550147740515197176531661802961496847755030379751227336517801194017095922230939513377630466783973494489603365405846806248104843690302124836022926609389493252935291098689324952093886833330810609577354337930463227931212610085905648677344580775601646979402716142279136674814863549004649963120006373231484473934444793660598238518252986999747205832601539298659670892210805207392483950111049783696612686301525626969689321580672417828545063234625321273719311216250827841990209789950037029871853806532062258628379987910834269095799134300290812625923126301492023803291424236749328350380106959211645413774919999809734003285308894946203463134682850881691987083986418654892315196571530644592593787579529009732717677301453461707539398174748290284411267980403779095441375549161511037814168493987668476549927991173146655510305891657009180595060803521946717276788059102290343413699689826304131830675234098659575379302756980192744206026551881597646857700980857918187683426331782214805650497236396878782841407710672239789012669622558974218975390949081323243741850488630318295318266345627750830653883271153914902999911155755796734945033352507484608309141846304849804787470496562952448022263946981736854847091289243283121620754696970608142711463845908988910153632473909696268654505528759225925343176100635188598944935938134824705841154637940999881807996953551497819050972244798231486051219004811275028044038497295122392039718231288022873757335476213848025731360566074259318778837051001155022793234740901593966779401284570190195548817468108783918410563206621488893708697635183787408682336641922438694850676747340002628999636892926222870260635038322226720783363212280495099465097240040032465832036439810131229087576377023413195615216727541400705896339909890182655155702189708616423308699026522148230385352874966610800657237126723383066356871671256446244267093730136449806123910820614363364116517244138307027840020417755033444251912928599318461376010446069770243370655766766795474686301712769833104939143522109417303259739132626272200181939408771262797273589567238810246359425898337398187731145533323460720382472115912216578997837985835905575989451069496135743043908816491424173664519305235135863742917035943507548410788750607205315207039655157675179569349480681382102289263431309216847331031644120971126988077477489192552983114192204892179097930649940133701288799175396351438210979584738264305344552947697915986967027739519987304212963726493627271628252485876452677814532439500441609301956886106658888941546328783386717021726169449044090762738956291239917230590466369094072579872658893366778411125616813608619345091043065290947846474639294414179601359909852830621179652359099852400099203195357042951263818238870371974444304909341450065738953325917315428393728032760130122412785454058463065452579836926298599549150877280410558938063990161672253066547090660810969486836252071167603437479371521540605042139102468228209473426128177185313715038003377342110360815972095259921878812675926553638157983345422289995971175306416347888279674675254940010164677664166376068117026857014247844482309169291740727921840619659601978441560602833595342349236484779672119013678349980717545154328230272889333336798535637087208085173751603737404527548513240257643046319479275209944636597788065839301809462544995714520755485854557667090147615607935289186043841956450205745252959209671514067875493407312559300080786253567805150398536357310679654745052694483257936594442907281320721885419147302959824120173027452601084824151575246416343903143934189025375202485783573695285941848661212747530998972150567207969506005936970656299695219308180810127597993954583259665066524466761866727202116798834656507489680255619950238027915625749703559971880630335039844968380313588840865710290425088816563284330471818612655951052480219636571830372008194328980059969088454948142983971147953847705726526687001840032856437926741491502676407082217817125646867832805040046577037027059681945980430872359328796973307074596378136031831705908126281732244133565000757243228546149756843695031446754585378292173028466918402857552646311294013939127502974547942206237163014826408597474527233891253538349575189113819692946779811390844669972432051078641054928677466219261121867437560436116445863785038927770696797575234761327806915603561597254156189171581045478741970330890199281993642835311972864676062744932737572538644490743622239586643387395453832878015841025127523834482699500348566493418549460681059851121197461260982214884219726981879462053084191731566076449930206715629261753197951408469677282916284243658153666605174211065672900308241700447369000361505545707232819350385324788577673810816975961897883109039303725814706651749182278208849218947148800388258225779495959057401804320757406817849509025680129924614173135243781440830735517504762899501151798864038047583630608887966023973454726942201844030167131169628275205026313584448953688464338206379537490633810708901404712770988799518114658073254360071099381946219308413424923082179536037437528746249558044462379734178477884577498929536048841316380070433016421791538857308258841303964205034737847631380571358196941948068030249876215555961762242134564230501471456690181895610477989633356570139758302151803108230443260223467712391473351739223612412455498134314839021263155073191232424017985070076758833798858463883746260740817969104662901864934878614911215577137317439231237293965234423243660314919192794245708651954392551747896683614564245560637443848260654838407196483603718790448201569976356451069636032870930735963001937159753725802546863159068095285172025167285457716377369031982632707445843108602354581216337170319834525595205610077322181174577570042643095724236028167458419413920878967820083391975063273051370051929173779739616821094976058807162539612935635348368925157573837842724615798296079125737860154278436661080044531321938817277673161397751019545818803678953714626564967616632230319387878241200931379960041526144795686149757521029996358700697513311044239430330348027516800360415628178434982274381506145181011413969182304346594195810941074820273817561589830812055322726853434659898873218716145914111394848232748489731653393970983173771510546775435636384140427056513374539525335210484979774795230567925959816972562496868804294395170461611884730670923964713216711057404148247465615351677523901429986710274233069625988375037034794136609117452581579292523170315087249312571663018674321584569619431177703732748307938427877594161644082695873194622559668184514623104936643133301451696663036535233318779107021710942730838063023893347899072860084217368494933169978783164820931210785602854397477292245788034158639950826019232324633042266616361917108635707716418905369496051994961460740957282371887149800983213010193764789215997905782057108703926196054263410881042577950882625250317808080272983323189259851726888596492325172054829158050258454315851642688704878846717724790193783290739602681291696585699515015208574726511894775445805619705209688072792269330073330038288795039461072576493925638808377059479693474472747910346709253405639262004986724588403690349805575167752883995055922363300806074444082799846526834070679236645532257885414490717128937506566948226283376765879066214862510529194076264696989611434541109933100010116809713183389882187441262347564955280345230949491544303452063353977520989530702495766863715062477869510964986765672672848855438527273936763732422782430835637452808614275196234147070572513291397643022325311909251346540796149173359567518870397274096337532135171774902791968548504430775183613109997408111212581362639886859827617421660052790165342157937239599725066394740014709102196118685195606014783301548037391027455510722435598423038134126515389597154335362830408882045190706478813933005793431379348337105430762903387814820976669530399783889062649685785576056013451294072022013789838110184272152613567860733870219313302501207793135256799936226058288262862434868836540622925814399911968632451429665889447814408397901713984529513447911873367383662571224617432931625860266154545490294482422625650785682273318778498428672029553726307518633334948971051461081525252017904392518729125095827724159442812953166937693191979784277989608645037647678331523960820038872916513536979637447985049178262861504641613900871353860804010609016993208259199557850786404052275564748197362734829455769103629781428991991951825742176270330757006568101505290077425874293140748731860243586676849064449081727692947355619573815195443200629188352345939579053999779038982183608295390611743636600844421459980954952218117611244263759950144471132228774339414459480769065158076839802670053834024563553163346726403417839008322100125287551245356718401938263779855540910329284909221958999871339900315683488620243966118377388410853738473005773203592196878334326419392956524234549161371724304865048858786933259865021092644232593553355821336432456731149598240178860022518557320357975218495298011130816172776746842889159736323765084098543931983312117906155625225011293830408414624184459881905273072408009140603827650211935067141998352653744510937778196769434603139392957342578851151418483688264600075076677790645494811303720731416686379047813172425708833243591607604753326686262924071644718470725464533942546387668460886264583122583774260110221397885711228917557469066774899908802778734015248004296680683334782261553325238365573964342958348953887153362542427783975365123999677191258352464401935422164821103061948200424915612091730603014065519279748494951128916226009629723730791887680909590543102359875756377519326082474844837228364931916432808490823189750010422642425140083635529928192481375580831220571418630280348546210118492051204282213248713512407956962092797254819309419837426861003658140596437878030595322783867432893420950434357681173034604121004306222865212486536639472980142446630023937651952422015615940508950789943840408582833379370219826878911636847102948609661529389278982150154934225575358243222596156333679104441867825470829208643434078142395156959153872455395079490173559032906482247846334326211170649689338573040663925768477934994270405374715520572267509258921842107294556912317702742895285529898194445607033286985028301610535684897768047825476095264603928185921960781594251620102493893056842679855085235119295531859101810827688189318719346218629828965539127528836631992562372819320847273697019637410860727231073714096091549479287673882169382636330728523413431015600164919862577626580717508390433220245885834009821245315893094308268134171295231939010931348126791578816727986911079847931155847721079208130573989394534139744596483875501922701284692771368315721715309487171594058641328426489202618500400558985234030526205541340067195015370172097642126750693720101784671013658047693885821697692087115712267022811029239603513446721253809548736591172255974346802890661308409342924132859794124918082106906343866738391832275358751516422024119010795719971718492562336056250644187333747626942324412427888369323557663848678849673099248398596598867786724271882015022407056132048023973623781086945316414781213715312009428265504485070107027440564240223656961798850346803668370653464588948589438560464742600452533491221502864774469756073925441018309739586453520494602582107080928911639600588097772323961053111606315549253654818776862117046255671968507136360152854604282934629419993557085652060618055414189486778346416542049679337076892832244505669909876366422748179415948654708947987969993928763327576382476462668141963196540212212171878552772006114651010857674023075660146488291273679850829867454791057698948645071010280463348225633417651406284364797719767942953820611752119658667792452609248717288712902372254873472572541931864579644820054882508119214998881179262865574864288067546901039315533265699438694523531917206748180091483688795465257311895422599932377293160352502549800399382920255412731391768737916808822646695255549213126019418059571790675856104182675425809816498862883362349398068372281402560101999914616549611873360933198340176109333186798675497495866794596241773453704701750004151062273181597187924927205882662246229105459502919890246603373397778372024386018711687933450643974267570346518534956317435005142242300210086647410019915298759974168384632046707059897748175927010567426492972297677142053658514135878725664013510223751008911414811058493580187694475064787058539039763842393678206746437578285936016347825010999946789603214933940585988347557837832419713154530126410555660434158801650515018764353994948057770978547773501495915191289365985986659155284730791812924624845690907771200658417532461146883839972555178180361195964153282154625091381677451397488689166701457804151256699455761014434616156208248850586745327952565530532147754338609900897662990968700048439413841957656008642824851670809924675130757062763148444323615644930542421659621596395912737653175325855762739768495056501462505037048715523113937535036236529967310052650387249433533253306344473136999428302925016652703162327633224079093085419980020245452423730625162082688047435391136691462015154681779083257246298357819458516381478222652176128106193045955199818599428045992796362096612007495480473003502528131263372254158366405519249273865517360379365615588338880778638820107105457929032060255299515379092746165584702190489424717224938492896049039913694908853341918019635274589305287542733910104547713910137128121517095796113728180146684065914850408876513784879170013972727061890129670665321668923173411402230777524623043802321372663642333437901832785674959521092449959983940367726865436669617580805251884631340627907765717146005399398839068560850942665556695867509518986635735727375700398720539516658451033688435126054769669162832011235283816559475793220152515414010775727435961807213912800389299176076729275618329054411417013971977539369514586995021601444862290389261077716467802905496991332222815561347937240246247085004313495201476457191467427343295006378597737577973471601934602056418786376735868203951442610094111237788092400197023624205704274764508200077902728418406530368427264559408212521263820498694953958667572867694696321295987018993234640052004742622839410777665996491874834376760899076303296101051000400241359856864301449967964031808097782658310520967673521689380338293685364286336228900272086747460958389820003926699143005778568394564562055946140177029840179215754191639384144744259649052678776353124389218538546378246561701837184379551504505818608713295825716090075989340612323425231296600070264783147164548685147100944809788684933100095740417547566930314758052713188237677503951962455713086851793112936024841165064818237779212337859605705265980475847763216218497836409507327158331064697386532578373803748326626538704839772306476962897763997052634405056902207301625781747233961093798733017357098172684648913301967016773916293093898236940382478303882086355854089067627320976712631411224701499886118167897285885475027273405932620009626154104608141049433257984988852467326619926558135425456805213447544362571493535883574885689908165449569115153689646230975196731085388825758071767899111560410013718703196868008713454242981895254393915465252050667408501646487271845674313770406524099518193231956049596645779673525242446785423627787265446011151921062358617600876821768875968547302427869324773016210053704993939401870572303580442804565166015296017945770921134700720234198084658620425669164072894367859715781954163471722829430533976021896616816436081061639006436479789252783003526511301944299697665919793734185045716793126243469867149188369981004926316973627298871593241142688887438228830912218107987253235388888705479881629487160034569231198328956613307673806123787707760003914081079766223137494828953156464484533046533951601861321836078579670982347623160449555656594925332445976742438184153087369175884108414921108726006869353736194514091902905781213973183599397283473477004745526208259561693062079824153409899915448450145197169149026486838242772998681181965920228823852514573240163782943145593975726331905438683762606944179180496501153727000250707531029071345485567281577628429799747539127570680286277738911312506583706262637199423483336870697661956550980860716127104052288525886836712138188304289657241982507016819410178721786180437696195943548213507230387740337815267699749205597471128458519584779256355423878303379139579842676833908658417718786763836563710129279299547724791059920761615104866269981929837913535739296461662214493888163886745390419963242806682194888825895650400680893020519885871524003238438967093348911292757386300238860212647661497359992557894702551943780041232180028846025309921731854650022041022973795392303192980346661637863348219834880871008293097010173205474688857326085275728403870367076758782533490760705326350712959407539823846313855352601383974654998386510028334711314832659104305459490038759454117986103338202193003251089420938380140139715071763102757841727660012978269032913592283391904525606535166653437268164776124176142259983731319094846928990319740271063293392943530483252049296221764594114805493390826771122248057334683571987189664901372345358110735067774599442060513026972834340169558104742454570984267506851575521345143237713266008683091573571446600534964498393115615565200203062773231822056226115155327951636777259344661353719977714000649410895831933252459469507337577373866388817202444142016986639083402372923172183553698821288203128275760039400546693413094432553735008617342878638234590780418833124359900462401331035560082858066383055424598193774749726129707092598012481593374615194898321486833594585763273585924568857090794442537126504675977701492548666387741632069760843500930588400023714147242316737819337216020618332268223136410288533020038437191705697475481525181723249194331437946999987448152034581270483962623571578367618320512247574110927113978366287310488920276056199343814047188830290747309105447810233820722421831288226065481242560924499342815492008574523934681807033205241227301822791478293334514158699760661946483670951374667117234783697316973767211823275034619442886469590100801125921936433781892824562808449878556162862456600156791327320632102294648889338905560282042442840223522413891910926255240984962986226172942721044056963241997511913834873629291698420203740116891864093004163886607333415784387540467955611148906721367536739665424290997916936189134956112925083549524809010644053269041298341166021401564361392432604111229778280217984239134992423587000514357253632929321505543986199759565155520222688061658505747277578126380456983453356540238849118288887573847994317889604126264807124815110135556434984843189251487012769030649651767065401045425368408106608634864585586301451121962190882667186175856901434535507338903372592532586046273999290010521963025765144956476873724559340282586315581651985727865809765694452326663297558493352456371437111981467054213187889542929168017722881509261756181382165092864986327418639731268048320658112857503380100139173159347973644215567176678529159968635577911756001198984514185200960491070714370397725139131036851556206094612433836403600422695116261997649536603198073468260624351125651451656713309904081309143833748759555306315502768578415403091030814544448585933315011661755381958952680657376019445853611188908857607452988447673528466473700833825713504226148634877213845463733545196711717236745835734691290379346707256362596183035821261209066762533107243478334544157541816270876649726157674598896004752648703640671412157737995281539385607312355925458560298448618184036667637230694151477065313863828315077238936363440521872695326844669501101830506719099905493601795115878987698710731411236890321499426839907350253370554840083968010818463818168696649575706950632661899896331374975417750933980141568514050414119793955410615505880291175524966137256816626757098228087584576181787568910353186214191595694094949374044535472911341011388524633687572342838740196433632748102285770490132383325408258301155395054605761987445043610050478479949264353023427494970145945101921715743627415754155667691295326406930340405739944714887293978942898396289772227141048654315855628950294976630570886214430384890430213631982189965129147905621337658015756103145368630836006657086145587803630023447077784546192675942085667283920914702204389770698112535946566307628341977460843776634960761914791939422437787312366023405822170989177941934741318935380225270532498541444892755163861715020741105763428780848732265970831859342380375788174697401354369164848645818618167363928706630958504531674012823306412687088928824564280318326960599461030259721684547530604427112667788681731258382416914646178395020772906191332032522863385631836036969237828225648993941158068643443062638966438407429381174144414039894022294265095917460781773917488609046959983789866223329531843909492030411683035235639838807997508802903040826465988292080519814019210274407444836668535536747833370247049992359186936789225069118332757954655641870048383622215510282882057544651721400653670593567094139732364712267578926665366040941641558379529602710870603602503718484002643045931508255816142465621582374616914009131431143336662502931317454570054205116668032757909464141011253738056950037902082954865933383282029061106646581356028018361419862244955709651711009554925759570615448356493691837376894538762861208522355079320385710193384841921111783984934378404536445989384918885755456620935247307271063939921811551963259912202956922400301100163184739584572052449136642174500230665785022582155968114410405432699545168608822146276249332087008467265858444302794602975461757049305990283319284902409980200811172042747829316979749995076448605645876608201608210015152600239255142322399307884079330252308078875841916317181684795023277833721636498851405122326835477437946436779483102846085029882536858861688060764942645168556558021034450251485098735681717481522347183010316337506807613217269748572535492545099427711084207950652101965937510961874094673321305082334489055396191093014137525853406918420790433440434018725946042075607920048615849978559210615933034419533557917409787002267842149027470983245673036232950312330600832352896729187746041618390425580051732610908118245700812285276800669406286778852117999623764101643961961346684173475532618208409955137937073846954365937798731305570137890400722053423134707900712482630216966115840741423113948272362714626407412481323025843775334930379213165962120343031283370733139703319515239847736480417929335822643021371036551032406293433704380763465308002176524008733278857958806722465904129039596132054729016381036035412222604623849471050677813578544677279062123749221425259991279327988602761848661258811676763883184624151977712437713623695126676774065777669292098284593703991619615915765897304247241752758588388306189228159649396824325360782127600037017576367099491216877283015050080241047072745730043403730489673801207678925542634498179083367493138456534514833325850973356455920038917458874234456219461279602316532167016691059295966969504809429605427997154048565986622685912968933271836975580094540947132025021849139097363077759299239012281487354684132806121115337880839827398834016948343840879820640025385525757058351776840944410391559174545249756239417608534456276808599125343380740104114272942185888864111407622770200520694416351058990722772069370988855978153364580675681524410296922248168481715437515845716987451024989278125921937438503000384556708307586893815549408577228681038103073712448846466739360591587787626775021957655782812426224487039402649271335326673880149905155246698335345848470536863740377291743513293912991310879631624373835264638502036663303120363579391449911734044758490396786346372810767299312704010782842033292052555975125881727749233271201244033351662784340341466959832088413621241537352256253440409152435813298952771292029899208286357336964901296537819035920626036255374635273690097282542217330995429349289080618248086820751564290826300189936051643885286418265482006522143208287767017513299693064614095632558573309880656412222814478043678318646396419408500400849446356028272483802828636827536882918161008366791621037845900413849867608019702934277865456001711422160652073447686588339360237381261510038726224778045655863325219953298708960783996667643630555079046411989045606989207262062720629003756307358810741144983885743777302014265468233225405227887829262306295961183577580955819621107918518863471081394451195149433273740153504006648175386810380078395962431362443573526171849533568170729864001064276133510549110558762736104978613355801371846663337440821285214795370586939603537140164407844636986723633111794986680131668468704029746698106151600472149976806229330690974037293083170006297656539073817435158811223693069102944234478253325753936070896571791093672874267103443731606083336707449129603544012831778770530154369505398671303561189216938520388460808484896376016564359518209958099431017813421912077877489827590857317732845554684064764811647240337429498365256300282130017148465838941379412234925373166842549845085667973224394604910910455899438377332894358515488655489406572388250829838663015055479677806841431094839454026989872816712526765690570280910824153338038078848568837908357538675881877710745527748333538978579608594283049473163889413851268567634198654926646295868068117892179366965891540906678651746088395661262876150993507847971787199054996211706262666887063790736576781359994443684618956899991671842894680010886588430822158611788883604949034436666728108459672235385993224653714381033965847759634963320450224129869352618869537444338484988495888788997107524402658491017659097808029694141655821740008449160156840905531274542186332344904259582717310619559804238975642139900668014357089253004992089079123100255360005398468022044589496989312662144111121912904586740117961007013052841294214025871667650175370732527636242935820813638711171629210704665466044484853789176080192967645814286413163411770928431088107694708001181813472345687519581803805781145194542323928525906355214460897293606239373085446809433173915145273647824179414965747951254739558890627035714914389148661959726940051331881183678281943739454829425195034027265861661726307344828112824427358827929576217884191537909864744353829030921424575060657927246332324412370559113719332470437709853141280937751650558667591183189233091648664868059520437185581100161479590136143195457075371548963794782604031532373728251127568851145758567433982885716859363837820872325151297975027286134116582465869138453785579881676337242989163420772692766006479402008817761946252087934549290431784699710709276408637791975926312722228833044808255520987843375355367700021800278357209130312255305950154474562627312341670713814051292563300371060609079226092027003455012055519191804571146887968189822094644521730836043965918982416642903382045251156455796758676814839405983455713133149948041052949316608172343207388303159320265415893220054643570656730334160948831133215796784875427331142917849794859458544113838387962193822700958711407808409178719969384345379141798420102204361519051461460417096670165812113619905463924452423275967474923149467786555231160735514325793981620644477875109556082378757929175205572227493644633147507271389412080467517707260084407720344040833256652365826920618887108096161342130402070044045879298853497451925858651727593232225619280439987280619490306408495833779293494854244640431945670456429911583469349435568051744393376799944478244770623661027497448200400337476779877617673392576345076596350903701435898073889861646743029282742113180629955774751102800436443829912116264529619232951335974145279135599915071516158300915542758444736227966849376159019829893538250713745500851221325216109935596894136509899365232296064696739707816064892542253674835489254764058050829663744827781238367163942813609370105748991113875105302843141873962312864036503961759996001356733197669179754327156252565016408236576521930035148361756164095485123823276407153623243903266332848581943462499614618011852102061599810182068162575045386348675993258877742391832385651087547399224307814631357906756597028684057886873176136823837244216176613086770541246469567999644314187454336805788891459860217638808531350410870164047742369261652556844298594663198461241757790352488161691817118140586777212008105328232245139024396180499579246675312526625759949115501342661142767682403608835249939921208724396975955260703210225087477875274033844660680064069686504279819046590641601868437343459580509656352008212589739155629619874186226637976247824349484450695944342952078884561014921157965873131107568836871132425691323697688508145886613875764122679570403847918379507950815183370869945416369186833796690993011269112199025693419447321159381412523964691863342940392334043479956993263056282836752683565201421133222042194162540639205378141238395889888671834900843403446303912854688449871526580930528956040779119735186107390403248865192270692119720465499539210966982862715808330764094877013395544017681664510588081297511618914205153300161146036045694969560542983967645384719052144613054244988646218022288002902710059702232085339314736845391437371710414919106223669346824742022350918633903064557708865721756780972429487730212632252995749315006872713872898228493182059051062443288059897845684932702187556203998733694728784629788819871654172159239176461940286470386102234930544101091709261516176016316189929189032997818838358398742390804696637715742554242857261865821373634868464790238999163922892699368256620444692922368416607409130734421005813625114117538765482559958064257573042780811918000343575748669933190766341694598248498342112661861908182767547382072155206374582191836701937222929522863362794227204664555160535451053352509284517632225610917642774183183891849971315117846673553829261741718575597681520635269565270466959010838069035739460080160403562442444725613502445079185561150473796573978076121567211770858198005583354428695186939379397779856733366210601246522900968445005452073458222073733325763381287949891491717833292814989722505375489716075374682461994000776852908722116235757666370309785165639078792866054540145474187370154522140234064983430800034663273632518444295158078235909072467865572269650804141456944765541951039225672804963344140426219941218708355557798016348208337264812224068436887570426310563826039761181954424163589354803366208011104786858479839034923638468995206320166800421897409757042737534084067158435970662568706266936700141783071953591437354858871295390333244976731577543321169624314030307974844567807950196643241798008837676398724845491149591322670858288988015876307282555271727913682328808817176883426892896273739035133670735501117983432298703917418356695302527090679550695106370301771317152190870058317441348750157299990170415077513178819231053058593420903675668810720295870481937529988260771496040540044500334693042547004794303540342280394181069910796884490871779203185783718786506392629958457807174724241205546494543392495904703171730542853437182321279671180925792993941332620033604613727657564834912485924994510099294501253686625064639363595818238639704283286046228258916019832021496067407629620246326628902111529472319072762855839022513656042716294703292272778245569651205793805134094027051881532777248519268942463763904378406290002682282342137609723726497288017203179175259947989412742314068024551827363709007337622292918743176897862503770927590488068084124696286565478128040531763675016546646385725911888903876555916848809008429933520740726312893513760538973095700119332664573060767118132074683693633569046850903326756058830029594715731827618916049257232120549377987373272806387705656265414259590576653354015540354634156893009060734273675855399495313909360426858993232762385927817480298665893072263386205198157703794536153129321286405564641504304013672627507327268593836322241012086205286520821619237247073089350266577097937539460768051212375624982727230437177610312151992482070619968919951568392835103935848312939518665899342976316154697662922026988420669786406472877420400118577234913545997665463007371080185839784881112950436826285833046547513835848833744376416674814367033601644556868197190358229888337978539477730840932502577686654656538325848356707880980798242033894112081386669145448868392470009381965842871099653655368891043767962606376367227517950434713754907285794034636847346130032143634147719413167235046819908702100451111656983225332770320786145114268420518361088279765025145083831771703286487259620722331700589790928868190040474786953912757387551978667270992082593924104932055335733086370277346298171809159054180571317517001604592634790561890053559257008401311536540030689341520977256906766837636410253190858240572227270799533299298914562116963478047702214807240983360602010029137313716253832947274086219800109758643970641651148338540917739866582751626994941032640176911155091446813834457341747575692765687071708992732363681551425758998620603341396327339706883528534798714651136693041842731578977804497907048202893615200661298994739174959028766472832524565310224661349714640234463176418785801448254210155062990305485438533141617907981674768326159886178749974632127569406101527925112242006669831134313667801654191100300803259121006340273928783851291265357664281522070596513344012230658545716529825048855729382312526481574392311865047923862096094043994692693910832189448366459471162876575769189566003040499159049658425323295779439686491538598590768361555835614026278304077117656616431318227114131414554638417702797061169463401997931258799034903375770265849322638225476658444499063605485570107004019935170226175373313266059042720488911358074119061294269753293668901078005624229389128443334585022821267018319858698460684272566862295741773757721276308263098572804108213316347847123833122856764443136763499119339782523333553135248467938745541421232274776567750680510274079016023677050946631347466002199705508603193211876733858164359945859331130686360543602872219627307366094612824345289763809347817770515988297322816078347281729823712148286464284165378580786760886386354237747980389197535841338653471968629015501147049641947519944163153145720091087978931909556158571218411303580857955647949856285142913321169518899319085162683823479314370563164244203066545614765315708937076284822646209924798580098061943600581997684471191590722544936791403251140671884287384444325368700051481561211917647883157896090143820746348216122713814038194388880728281235399812521186981070018811608219551955597852150030882268460424002979765120695921424429202408548917884466217826626393290043350701724005147578851082604402225859211250522772148550237246880273978024566887348255183282991221732807490382096672981303480735615012004441632345624390479921782080514648081543023405870992399595546143711640333160071202117725227667714307910298332155093131349245241346492180937635430703324446975182689395685844714599767652462574168565274890084286726797620330434902198096641902748591248078194964988237898852856521778607522082099722936545703768471420829396047891777666596054638873149731260567241713341208301046671036207013680291078819955405283584837041506101128659254758027770305696859732207504117159589090866509057080217421501217129295797742780520555752456413212696644422046571336504207606050995453294296567667460666186608131514261190014628680277353479738403739663583690121909350905754478913831426840630176148331213716283475888906854629577465350904437782680316319107372423447053541181217758240335461338723359037048051095049719814497321003765143675897094109142823766877629929008052311067265694946171562131245905321777619884738941456651048287746035880433720950368049286009792189012682440263208260846435812035146665164882888100457461819495732254816988445346135422256377106011638473326366023505386868143364304581466949215855985692009988447120874043046499207374768450024452192747409025955097797599955161278899574114775548971091703590524819155911151017494009879608596529942540026564929186025024541080558034830458421685036986826782306039437884729913606676925871494802696248966539700918793692850287209800588836786211258120785729436134314138705378766007537964460027014764872219161925270477885006425923854131428086815169249666290260336019159525096701504838647135396428673876308933454535341965273514576144131852390622400235463396323524473950717643904458832509277258340948645738624671415742409616201684954199092140210791330861565479516499639864415103620747381196729274374420297326727843086792581192562353817272651895038797741658315158063968998546278815235140092072190294651283923251932249901290590886638944276576566105516634311797011284733985601206094652037508207737140876403961093498857046360385119954870171593200226394362446619524732785697937390909268287173111005589816232550373768939876553951376961197664372242289188237426126042887082449612542558738434082018459799395241534599824986787636871053204335373439324418523967490196303619466311113810132641971499768727911536751694001978484709677841163601797256796998279263321412820185360225570795103062466700509768098286063331770628870095929431657989717795489363731854332322105743565405006188022466548385418149567239410333372435021176501457330940869893529341460729668353211411310075614779426480486615247877601747173930901228481682033252478452322556464374899939841295652162107212238704898017157763277190431231427317400400971780666738860806495009955618245885076322246676504955788724681411704427375909052797942279335883721554543593464127382930404214048951049452333137181172847869359978581006064704589599410813782752033359511502607954571523154469096798924132138216499545472861974733984966396179013984805506261778980485869668389596725212457112676970621888312519483317019567030149158904845027195564039071035977540911552463250954211246950170116011149271792522456737034462692502029903110684429957698952479735411907766749234385981353671850814435886009476089241479212579305065148171090287279226841229622745758076393784094070285657625435450840159917746106333986563138298127470361946761720178968968506243684379501924664472101572808609438587431939400382997899666092030770329415788009108299389863600012904614580539032128232575686128305392577990809228234776432162956429977758663310041218669466988838317155936727624619065091626259860114733694098326514718571402402110199201255031999065529837982355922576828017358537016401424361156890323563494209977597623267776459656276793308919111242659944027070329265733789435201880336346493609459670720429304370051163460914228818615233068768672373788907697341422988181254864403067702148711281991247317288358370331588149930929498422252313971877313364364282592418164130031402545807627120896016271717172409836804013127292245934325254696597128975379544241918183201513570094806923129619104417458879757763496789597060982956050108461430236603358095286976760864642102479476130658282714966496156880559157515374238667314264390287633952740898174891659021232456005576437527559200753576624090853788478010698145905610123399388181341233358456422377324138367503443204366239090538498376480466866545601925141291570790978483897805049709198056302617058173507226453787351210841360518550874523281775481727594076276492571951863632088046887489772342885096508585950360109079883449167654064530177196560804432345759392434424048115722034220544102896993412343002866500468467033830468449190236179458892110469099540596055094518558388518804438657870807784067953441580198836243636625853656911363439499411387648384298323289094410559664004141245179556692455509185595670203878566458430311427186061949057518730007093805005492399217496782747170406005593893793345657976756618123534910047143305078084663739448590890971641198896538215803357548917711230245267500624754878201707701579029672500183305215181519103561541006979035164022091117648495139444839142655544755905607330312302151858149744766995141092201152903368498878006696787042483340424450624139125440974463787974246184489010537229160446662537456756903021488679174219006436951115939809635343181247959938163337301714975503974680278431473873103814240809817161702194713040600000830673074997457285757252355789549253892960380240701390214000354195289675770502450435475747512226877675097675415740025540728206011898153971941369242999984896874443608300548994377464498298248784781086229940449433215757868872173235329192201586601993591146921492994886046336042093721836101767334696095933121276880522725661261641483583745424559608209034530424123118912014381560938535603781655334370097478359382506497168909509115850147410455560051717498514396307303637612863067883759371223658331304804251867155185058894095750683829835039370534976296443044551320830361982909950340818412505158658164776875351732683098952726361792807626227915546433374512606290927910436516796148925535324905178820539420120028066037239650390422391614548254111270496335725683713522887376429339821855322577788152788083839872943978634754490620552257865944085973657443035365257723930335020661376720347181211924004627047971394093415910405219320505748690402947753562871218383212712350255663834283915498805510002352258889637606334760521798078538733855472495155262159245480901551833560208767792488488406786871136100858815353196862231523894264135453237165477894109235195624167864475506764239510396911291371638155640847400946208181673444195357084005337725691682626289275929635709366390908555780105081706745477359571416008664229884944228438633795428157261056677158682081080232815445238843080769081606291754455106049117214060550451438916591985419878429879974906372836840544201465496685451353969068804768723452584136388990309121429737321364910406245383098255223286687197935177485958835586407391106026659276199597697053064809661280812294735323633151922269643209115446213164667407972127408432196012473203775448239834489705698792447276493908393886149015658461148580960166807245056889824729465306196794996220986405145503101431250395013506695672859502744080520797454320647843031721623926743164038738364926884607681054503015861263698783657192928382140268416370635184108266136872806093080107875755765449060009030267451631543952413255160564451668333132571854327432094180553737473313525964217550765939260815725747217934651672491314409794624334534256442873727967945777233576740618732898942820497197196923177930109743883592830334275273036542219491299814360864265417361332160354006603990115038570596574569609810102462716854351860091254699536548231235615240697829949238117882961352369251622140568314736039266671156105250203840080304586258663667139547616277465183667994851784450110262825686046233658687077569159968930684698247695282357560246797264362647983475525422835560791874870373864110139973923496109070000592981645987639762761245294843320690068381811308023050697533590276959142732771603461262579429674552067670830498415780416515150599298039248925926075036859815357371005338475704891520865792342155613662524537498996322722512443545733448676505522402191774661337509600158459645792769422024290540495703866022431165970171801613897770183022425125241846984755790959795564485220851352649917252647952422213685346117713422584990340553800388946106018085578733625393616009114874582633914411799857707565659331587541447281126625533240341164494522640753514212069983733231904385823592343796107781101534087170080391966465951376020357217206547727384729445868664690372789937919909085537573756984445651821976295110690087929074879582811158514091217259604028897699765686892243830073206028624647840324939315392385524481466345042730009112581251494873319670715879259405223876170983907221319217981323337198904551987533139597400232264535879408841934808134501856486280559689188955331043847825517059153490886261268073298103771826636823133845334968443863220102940073081418527915959620233239064450393234062639292019529602599253953248336806149683809766612200081688256280866106020073486103832110450206776658398293111012760610701656407354348222076968821207256049361247896723961022500865857137328621685491179709582068819076454832120158258101522183067504608082381881753845050308512312852644143855986822538530305848733061041966130798033672843883036494602405544360343237473128461856024659818573836588439528916313988913666625531193258536215621351390747346898774995965757569347837610127841510102968482792821318357859733959188305700677030083827281775804985233009030835891278272680260610642152375578058676926957412161814110526900147818195574586737901083293280718046353324169552997985823941527674481965935079405504678879022068726315057084472230158289284422037063027870528855674012814351279650932180513620582173888697317698593123262186671950535684603751731433669930089975904536043369107755322699819275598964117300108878390830306764814196269608337444757001735884966850238816117917185733507966930909544574901474772934139568126815251122701834790840744362851557808543462492955767994635128787154995842419937680435379708191842159212492220704001210631457234669459145253114891088366868867096050084805739445515653058141584251506906810112077541789539438916139498604991116372082459080332588649936912113222736898220069327206506849081314421650526614682179256986059728194349505874028634964530013792339963014855096901189759766636983541893398061977905884805534871772947717788591753984906220219118357504981846823873274914628668270102833084960949142759612936698088317950831877491952300808001299865835591265495763546021489637094066946108606310823694070614908955544166370085076625830293275267163257578826399093329387725132991732583990931990955423853513537893321815872628886379524286355541411277439266090242012953002031803228748052700125954501226293571166216503896253497045618097923656812427584947842142334731390104899528412479605958017006176872456089437741800103739996305638106293885861388716494319897896547905149910667987679553251308850778573349268890742359975434641900075499637656251071457001078875725221552470606838912409911213116732159176982006525162537025110919576312821982622982847996079182571583342044187544618131271639676824894206906598293591429602701387078774418521097028215435533417279591141545775060104158710173834177311967003118046620726595099024097154308928634830372492008216128719178983042399654080622041023541715523757566528172666811120214214718315893162368711908528186448894835815328922825124057291081000059827535925298540559294417317551393278017415683615690044447661059163739239297525120045527766376585787564771760382136642562999996477130701065096564183947718681995638277208239839291202491015062169048755527368309887244936607381102905563798877183771191192692614490549260152409271886507664742546834056784057873045562356980386902320495736146502056485710612028891544816806612539963027657350866161620306047280032481872558611262073235747417846852817760267663697780768234013165052206653033568316710531316549683599975033814998908270502633421821400070599756055867479607171327125998727974092437501103831299189685964926419336801580872424189139453667151998956632618509701028281518262594561572155364238796211837863281108661555875169519533745308625814076898459689079319574710390690226128545340339346395844513383801586761702099400075432909268096269500720757060423542468064062803738658250935675046852109295466959809667246104263804928691908328844545061164026960413396856892064143090677135997419261780673960256802976072679799353334154650332705782205599276232531739421992583754545310506018471712645708836432505459998926481684898335801623783319816817719088620699624077279274402885611791783845179547971338595072554963273564852611459787135769872662812016875705935218032998660630656893653157094397073647510028747253905510165395812969591755626861846467443370337558236418177263637896591873140476810516294007118423636943056442473656950945236208906591762712729402387402040722285120057972326912708487400035727931294956066053824832418960025669188855706728205770618105650126498662552356465568948075181916771552788919741738490991834737352524343843238851274707189245912407745969387053091141643079200724763141645742601742578905679691947699984882546706981598168191182407789851485165488204695980671537009999405862840607181502727336892436582428579767367487695431345928398545185178875722358855965534756470121956530173137921658232552011833142228419676736068868920107808306713153642170183904675880177544178894240485261345745963175193605768858827639781043600668925173219827609873666029159669968456792413175064536325391816552697812839653299541384783871867173104528197478328094878837272269196407433109496382988631082406054427176448825490042701044685820100543332959752204546014033259944027672489621439796323443044631751650150834309262909934206140113569314725283638619536271656049943012107716607307945230634990732432910413346286924014997834838293229239299777393543521499015091322773627131295516548661103894237783156024367178876623470183202024469821775292809607583397508766596293676327541805768036793371309291467811125448649433048022686962293098894575048624989734203386607446229329272481977740668702563871974558653946652308723979197044746756385123460137540025946104431166480581098033463275889825486289005017008943729147014875888063967527493938081321710706697884388022006676806954980081417371399208689362870036786311920758659776365348221185751401180555963879725364580977706059990245917571680946264350883098905721061759446706874930056916436558603767906198372289815744214960806669175686563922421311038503493940823099988586015107862238107199520682310126732773152502819234249874725405865044490280892742045022698645837151523411603737772338470600605438207548787594497558878444170753956946426257303680332798624017915068959250454131825598950590375379529321592799170890137656318814342349124548585801072646237973327552416320700621019718905370136526029247427198475633111310978130017609653655899818305569997492098209616048864773403873995362380821508594760521075719694957917929758148796790072225128017310977167952698388150798773088728125558299668897819187661902251417271117594861742118244932033321582983661463379625093169360261355735755704512759711695493705615284450906401699847331581677763895999587614137311467215730682757151818937955792608664351508208147032857465455176966357654452179000114404284336475917909888673004910563885524211953083285686876893247734584972401218175216170180280133439260010080731317273122033870519322561055760230506888328724739705867371303031673010342586890177045569345281897694720515886529727154834746902223161904298802043853696162008597975875824152707480177902367251152080813311529219666774881030595734527302503108916328222192200489886218049443794313668188838923622244089971595244367852104111851111516727368599288326014947191271314289179589910307238577494139699151805604795197175159263878311528793625330032951619322720788855026692652890105106548353462642304343494138386761838309534695873086187837214625485172180847390199045574197773415832037641491806981155351936240824659293377374282838646230477026826436420024000149122284637297006204682372696321892139695608665387394341363077124856974269102351548841525312372992229981174950025298373616006205737490725179656734766792541889649529749151077976897404688788882792954737232960406102991744066892771419590218727426234632053941790801806906446504571300762161362366721287955618062345672041921689923848975827432659200046626858521115979373580451465335883993652179190500076740976570257421443095854767402719419510045598423311927935385761176116614953237288662091549780190805735962362359270601637234387821010511266885942969023042102682718418315162708557071847854528954410825064693102682387225564142222021448738581544918063780078201688444987159507966639151991197749603350467107059400789207155606980497778468032917378942292488034204795710844531198565489765448788353337810687869878369634707182838230091108688827066668550265874462237193644597684132942205617613385413690463180159328931350837164514127385881856970568624053258287747481221504961314237772563451874132558896546984589682308753568367890320750416755973202642200207672741470299655424715907869986656915048525292425040662407942712329644305302686805521340646606228767616155573129791276813306315732289777878448615882406738694625114129996964014634541965713140626624268648192078800149684948095342479020167797181739158443018367115012436408209703779037365711799578469928733598240137663473963917985758134743293401929292333296701945767050477595875126231912166246773823679421329074908985218649193165606245417919394620703949944849102391074369805373042144536057552534722835572527937342717590351742556654609349195958169029080437223612372725426119103268699991449540943291575977651254681168065158148889073551309002437632811671469258760127027885615583157348559313010929863246753713970035796537539666810229078953733450793452430084290294448418350846717805996159995492487159482228875715426406133661778687126365220817550790270621919337447359730265303044444546794610246250961044335305699689754986104883268240334927361529006515092367352259788197718977417761843921320870463190857508324050885098152593162499915777331176722017532488600092163408774135501854337557911206625490823801336051574433637610585282068507107659979560079215278574030490578796276901380943971702043134982191590891454603617219791767812325967233285212478117212237297286000449846234557346180558629035354745216881501320623179066924371071736068758449599395932280332167092825632367371331976667735672719386534194254720240343737588731151598072538415955410109388531934376248169949800098353393545871507359377963854002216650526470392179884826111465077131194705108942459271608270486357098885923796253252633156326936374738250195422482618827030286300464438628519868877037120647932399100351032237655322025892012167659014958705411602622321383342698673210900076433174578438896074918704972541577961454042584582653098627758022839047152423220747283154192614069326551418435250193506100283792035487405619131977226408585604264118853038176534753947446849919533635771985131623665825291899089712800157292471426669796510360877790006163834598534986831696820561250337251888114598504619689930403669328999596944329611846508627923776199068850621575109654257824357113511537508107261957199391025523244043813806731900785693979552659917840384214904455802374432780331488656004614248948110845126489755676567384465307505283502323445923333694682210623822380973290972276174368003092904289801229219432839765514461024146551307373283135074923895716795388551512534783809325519053752346967188437945225050095646141286123386519647070158160732488698715546644469495935250837000399865702599336939481031352642836869352550693532545316146092550069130846812811638020882457734253824860451028369979009096164622728992395903779926602381543764823199230205579696135492921494087892303668421635802435940590224013481933257587186831948392699211812060938013271064492419415245791383588677159783911988416041290633466608197309029841809573851606119609955358819814235243942773542196988455055387822705750420753920936429041046497309751809300806805255077874061778161493900506234851946679986003318831496863977933135098945220966192205447230117551755243839125342319988636024362655101347604379888502373328185430856014682763618488356858565412774747336805115702643915823687184817503644721615385950087691750074498464560612236037712465331375577168602458563726963698351412445037581680408285793424106979398384277731439672118936297445869508159801504269043499322415014852544965775769109512754366192558340526541704631255619813844210309075177549639068407985783205193585094375308412061775073225674567332115332671439210001797624425397168044203872012657508138856949556356936243122974067035902221856649164686609861915509638199603908672384876205213585444460716591764978526131263078257958524460035432524619754738178339725115517054050944712927547985210015210213533290333388710874004480298979562423366299238671441762054216153678990693709429778722068349000636885552404500759168394534813923548916269127701184742812443930524885929034548461008148172480969572241826919360938873698658602959390041583790341366599483841523262426605568697162406422593462713789873952521726955501728004686926235394114159717425711629658124970856568361307753692789056169379415451948622003570672951419857244796300102912309846977080938439088299538089775118456421901900994880224809943880078459887616956498994896900184024386918696424386349820721033327120405710473231173107078725016062091929432727007399757089871029865464364249258393745325002434941783124357680614524078259587236242981844801033840993532492648327497027365597888681419788812682961346889558905702917242583402464145813927398197931831037603759580243079314347320428086543297202718813629839764985427699870087906706203892992671587835763402484747565712922673491890448675673021526409130792695948180316404277061168168622768141116487046795737140025236308796464241349091908946752801275212475634846748799346292644442676888908815035340581414106676157768992803545112095085856939230236700706825272384191802034115201660753073786783922407756416833752405700601251936036871218565294953853378614227538918558046857667105836316116512823878264969026090628136491048443191503603804977136312032930475113605361201379514275677961386396499083941372571868446755740056693263854511331283187410685647636576910547607562292484078997343046021158543358272345191548031069593694592693165242186682577731256666037834269224825027439773432741118686689727141751617271617561986986441617272319237921139998524839891859346300419046884967815797927971015874551891188322562012276235693337609135796075929649170522919951841624199026591451215909843910636041074690353209952047817786189410464999272832786315446005484559214750404013344266091725599366242375735453015905608173063510725882406109931101204891480649864005460498255585432455541818281957851986886146908692480874414498844692910340083551554323850563377741437995281618546382475651984744688119889884450035628960531819774530869733568113558027278044924693123124544900932292506405196818103284676851407472074730771251738853588441595977122886404253373661167749794732821405662618216812369183984411414081955312601949358007041211238096920856325801657126263239070817522455969133192368501295559976271982829108670406607422609069607328051770380045614294929813956134421723479423666964038690095980137351675056648160846202313848465813908558888160240463744478244376942201158496076778830984352429630887176569714621722725869921286764062765618182713497587952296836512423416247117850271221874607783088670794229210972208524137110411150859895911761056186849826954287887013054318987151227180664749472194288020895835329298108211264566260243860287890973241013662177612556699692174280160582897601117691746760208015741127502305145325161655010163375259848691665089819617956468853275401449821552314337507198537506378435577761526862615770338538670776677946354420072937136844270731224781144502968989560817779968981714083024127570457149020311375078847360526241377616550271945826332714871028987646488576790829898155204932831225715418160256005430090573209659933237512951271142144040359174283320634633952151163761798269056855264260502790855926244302462646240853796304702303156710242366581768120757549512938272268221367731014850447410087277277259432902079437251764445686119639718386587437512546644304004597769965216970914963652985324411530458628500581458179406774942434356251391771923327850560387217015023676124960484046085029808684341367152046045811313823577016840328757969485991088947953648319562820578254448910569519819501716886314118063601957273840149091029164204664425310923173358740600999179648833530785995987368378899420319349228808701596056268604023975669305332472149385470007229897138650623765922478649807964354959476370317140454051588007345940699009151454382420523971821769756187377884095730056556810423214499325700724832930213790573860559269353295790060053015727708132684452975953495283013117998561025909974036301682634449590538154607076114122335045935816104999713438345765209918000347268234615919798806678104484846807276804886110053453770533209260469834087165564143447245340621257672756984261294572110941985222592418790945818002665308182709781242326791814792450644830548054428650864185511690422587675155521499107555456781993921181246554884582401192238933386230473447317790924459769204496970066988148385769626963677191396869523277062887850440409010525338910320745973176971212056003770388506835640778962139542537011726569124504979801462170256624236873445133526076301049007706445741752591912603805985816506653956266451059048418809172379718846126833524507062170589037293241794327478156061097915925718210686223669733030751076774704162323320225056784760775270710774772876988947443353039293247286793338855546457492098906934396644152995258909756127514743763201067921773114107319795038106220222577333525549438186683586396402470066235452345849954171557031276527332974291954893908927223304338037488502856704182691895368970214646099772643757679413228999082429339775917510559259677632349450371419028446065515237795185302952595134838317555440404139082066983566841918277963283272927128028115202961667685379408624054365484843770899502047597405424893653832684769812471839993620017141096582008859304831824695521855969559865028206960240025736281592133011861312403330452466874562243882977990670948036799095645243268854148197083088870335195664681604620150320980347733661358425215349508011388345491555282974557653747948681081933593170817253209038373511877734633339287857590511082688920188645822716098294522525012436411899774529368596868238348637124786202644326491233012948952409766178877976049571946620162685456274713229109393057500838382700451865951885885739295176016971007235892519421809496485347452775859231224385069127573526426514417508483133071922049266605017922944407802142378903729668600442647311764403624061163687309552559825316543876004127041620171754760998149623752856144988439365688950311162038395246822967251823455334581332488639799593111342583014844392845032259473699517398688553483290993355815405202459783704181878410790240890885058168788183627016727216150790637617302616339852694182873969208993627983723189072144939768806388768887134689595317015528817652971747625937976398815692786115916976778839866503248193575991502988819560302283946663435288241861502743936903837790217979448636797386024426660911629558743533295287953803924836409124928281864155268546443926158314196674466160336683142464177767247500615538325161451099996973072400920799003522747494077370655061484515816884524352243984840596715702038370501588492357587243773184083325960864206044426704504054486433629682924228702114172965583440012934843080765444003252397543318252720251424292973475839308339206407122795086013274003340090163451160731778341260902847030909036851897610730962003304831749245089510915540009058179321900452121386231638211833028323326348335850664894457340440780482527771575998960796905125966311676594921628480445990246064808559143169282902483579124826065420943821685390193599918186349617142428831736825066688534723240090430424903190630467506004599939831814570229420352484170025640946942550410541657581963705950086533687284354067696650113795882837735711520973677194444472709060102355923829191912912525010890786403424775483800629739163597605326876178481809849782088082590040216688270534347116780797841599700529833575733126168971436950305850499121401728567335037561452865636781906423641779124659128603936480939194914046362339228494071945614495675130109458367645553066332304551946077353364410197178801426433630689495362248321176470817585337683431819576830687821181890081442155660938750393761317357568113197717696853950815528171300222493230364243612890380910039771967703811805654120245539939909534991468401697927275603564607672521791254629981474947316443700760757579803360052693147147489462734111949583060499472118295405714656755112739718509880040121784503036163050128767147724968784836127000306055212395927471634103693745070765972419412918293341981165765611318026208332594410212568726023449006754651411841804811810193211451435735020240551519496428965892015143581215558533982297549612179506442974152742411221391678956957143313378173825749943996647648443107915141179700028460186973968038272594909438760018518772057707726934551228471048083979364467534071268618189186277493196313737332855889008682501840948331003366798365984781977945421092235257479165416021437953794550887710103537640433882164980415095704329760058569581176136296624525988753429700824600812085114785865623501570149251144021692009879341685923363629774877412242718939126956655819553929201789933485662724579098063049938815256232468048057491324291699017297538465671154429315756696110575536947129299924339631675277078315358952219842581559884028512611696369454692972575634087566329434027544276509863138644100941461730244295323884040175010476257984352993331086775733838034653137797218593277157812354619852108902651216279978361049205047301533049318824248773363352139252764922918039206677555441950716818725032124092026710642625896502888332085671237246064611481714645331684095280700751648472202252649524391376118679709297013214134798964105208801048364369691671756521491701649584595888820621394054603596864827072390877841193465939336515098188713641781113436047673065569266752169416693146918951606172350729373445407758750424919101426412596219483313649930651792996812169872410554135684980730202857470532008781139690692774706238325208045097970157745790122838841396203165591821429411024167134418699788607122835989118467970128966867454795918054186436451662200583296032536264784543648466372327388534869298938594260890344833162387879076553603949341799205321309971258468205761339907099918117612834041998810494471294277006010215324125107631381721618752432041277603247474349755822035647705631350898030261791644039670528839333663959963051902732985206458160852198319930081231831451807716133640092530117788683967548512194304667929768508666932024158183104861035405305452906785660111583266900751152967406353166100072841454442241690638734972692768485440168773763161382751200965523467856979577218098430560085410886558861436297250344765726655441691037596087705219295722076714877047599813102878149591852234151721382271799695529399365698761317934884268224163520032379842328427915541962566516549956941323470218885049038447311543826896787138166989718194864672053211081805845631065264511785205755303272559664298208710121263142523468033706558089207265031357098954397536758857822397268239729435002628998122989579874717887771554984074597025158198096806050605738180815593166766473853200237459133054148217532592075150586652982350123310666794815183803509439553824474800008949092479860353370399893787419347739437068068485527827254163428309296153569602653472662885566213892649503333799443501843878900931385899322848358071707216714881029285650926021412611605819720668264446809946790246771534098173908706013713275640682737243585822236674172282640358711136904328972514977052977413102172330259044248622847804126596937431883463610045354303353977739710949097212700143833350850463229468568549812954529786503152732228081492277592246428940742562111834764291208038058739156419493823387967920725471139235465559125765234644782710411704741196797929694583896410958889910480214534512600554706062791173117176099939351119033011791604616466245249968443242535063892884949051459730484409984937470069942332122592731522243166432690135203946763239551076323229523589239749237563105164707893206278033907492186860922485508389998066398245316754752696279963941227356749914891121310577293950032041546528947218259489972894697693205197229181079966637645728779656379089663307151421194652778627254410966580204263539392201143514586895607426311459180404694331805214795757291363759380490145149440520262606632997706730670912454239270540251213862638581065604244124749444257135723745236661732022688701085563717041636181515850714133424463808302100017873821968775226659816545778215129003543068504700915344049983559881513467858895773875848025910229668163237952071793010885172510061368696805044064505550619189631967324851447268960364067790477342784302105262884071522446330136877992187804227830030242161766399887749105986864740710268345983132977889798326519183587111847983553774118668184381924989201878185826555252198129179120100692071572392035101147728884160735202288180473138222534336550494950200631478519367706542991956722751476025085644167493916806081596652842901583886360956128510298244009158758997973571184631399712890756844665216309914881435789986134359448690163459225810235903027929565228312228417734378802955007106467548180308056954795425670607551222183789143854105062130459804424243130885923824141289143005378921657283700107235769442516323503287869430374434908019234610085092136417110173048011917355258666193622519053971406411303160725223916270221379111898734616175588186030039045369832789519516068881686104304856356303048246395854425147949745896767143924135228806445805866066717477442633046385153256035985499117521377975703099201085282769781057345387739583166818270243597711141306815426070867711729849088765770190941458020167505202923376445153789626486012964748176221313173619382471287319384294689179767438917451400066605534884427033480200295842703537790888251950901547311314368591251311150474054735581794106326106549097490833640534700380712748445423111905945484177128777555472764255050914813057563153819140092035447949109456225733041845191732364061611561605248718325863474500312803939207223744853187362586278691053800404242133665905917598218583399682817571294035704844297571626950120313303853363213912511027378700889676775656018903920669242438759491899999892205368722769767990831164631272997487242456822440143517484096450865212200537437824950753655634238234232018711026501416389687927989667393238574235880103699838500362708929571598633929525636643093847425047620362063452999700226914137365820841471830985981554827132628264681207941645813956299902674795361911255559890948545050734892814139553123621837207413303672083971900088104030891209530953578267713708857023829351209970949253053641456648374683650016901373796822184353361257591466339550579476989096707127296199240513618070116292064599304622288118063251456753273809649990087336998639994324724369646757978967849599040583679852303722131146903525768801487703639874277554633606686102023162170282387456580582553536822391284634277025432220134096653600926706171861221286847265188106469949501574689649013131172226141851099921966405692383879581281265086293691854047906137856025625806603694664017029728233048421383492013332069162449230342145714135971509803324055983661085519902866895687027434205663803729404187061358736845739629051983100963281473724655973816931090809911147747954260688797556591354107924284189225844234327568007175275381108036601174884464885607064410384085407273901655986595454458577872210247535602055357642422664851225654673311191388616907558952392944378431765299754954601795325401226585920376652791107736702332107100172731100606043260192012533797160655583811975716224343586127051895258834158810225378710696150359207086267373191973197312736247310667617959774810440620188453943184503120759574929134313636726921627727534259285654845890077313321534297145093295448839183770770947938034757290187704542026534508043904715491858152392350047363876392139018746203189627820576475148146082708442123806311496757040088889633145221896921742588503478370171715415263639296948298669570132704870608791600642026269147058174326341677109453672646405100215153954275646731038931839739135890509625194395113933551323473906872511502965492389319749003958628642140920980102718177118450954103067795192238040975828491479132297808689147365131697094771616901219294849933735328996908275686407277352388613443065691825605472638273606387865955262945962919889191537011064308735236638550020309112154787224548715465711420981036727680905693609535012966726931244069618507798604090974745979738663973990607597900624453524901809220558384691040941865290872951783298946007122762710002239915657161655600864756197109153479998402187998624777211613391841882680620693379130385431231982925078758304759398329396763782873585686019981047667184989103866846475912298030299245787426695387519526228672011845999006199520125073906051266268892824298003137748211411683503042915147412749645313711801644975802031791534857717674202838737957562311457500313643429206168683109010781166601750154398385690157358196718154252051033944077461241369417633996559044015681333426437992955168498591996258548043976953073001242465895675693023088881646144545420708139010512027425433253820611014116523658142907253694068495631225242825317320754920042649138354515609002475632881414609959817670166378149965303178041917088804260124607074239720973201538613311340235367808909815478682276707875972748912152313394379841935980342625372099966250976576890809050298288248698437343878002687040172385720798922096735419246390130394639075973817133843761279277463995018169968837581041380474212442927765258912905086651001140220711497651829288877792976659074543846710022714497241346127294106966325119442798980376879858541000598470756946950725092109327878198345606521072704765332230557366968766251648440920463078812957899622832330388679358936696427681238256192626253479420627917143908290839801268839156367014653057622144633646511315295799835813378429728413236221695088074476014253681083036251439805836732770811576735495983273823028106633984744500467704439951176203101786393962289577119646698985723033722661624873776389469633766874013763128020764169710479912224888873920410863035781909471561272312726591355288228752920181409451486105280968149284684886256654281381225452561132567970867860469123242526928847458036957989405744884552933270015442986599891904949625513571880352488275651577729999801163358024403915060353665223402994695030944023873647452795245127981570910738039626004393922591874758733321843372595083479313163332633608473906869647715591705634704261075170554583921408992285067147076168499647632762775656558256179886772309894223365614175396043454351994093902083840942264377495428909340604385350582771257129123656506871283512262939900765200736122070238803163916549203759043761670249570218201376853245844077622913857329382521656099897732418094283257119234621994787889092778499251709171850337662116476950399605028867785376374626951068827788813835496893235524600611635892085314638120458583844822861719927864996501782803208694456152582368157821507427772881291395168325282429672236567278288866318519662020170607778631527851234573818842375403889460986449765107674885095524684733434469462821783463321238752134063411090165471771539662662839147533525476244111047678927351600722403403370637328896247923570802050836531274713485129340796636830644410391389686524181558331323231151862925190610231422657395550890139359158680250470261340506811489470899283867905001305345803060747709524907562525891017407394390517938684754185440809868135058036800108585098340261306661081530442666517004097591085811917178938860755254192981634310468080602829536628923342975346233913186924669586372099311226918141592135909479375230749321911392087572120696521780929363863146089946049802851504477806428331873625558827438236270498654680854267067387062599659563835075637176171805713611320504237200870573635073908826728637052579743710700303160447373460512699388350145110474656355108629717294342491173358785508808888717527593085431160235095600165759484869220915852824880230376502248875891740852809958973440894795074387400877962514186504276440649031694287619502426274366148720504479279165216025736058065261829307062931423288917380777313348333828352272417029808709789202161644661859040549482130293993293762056644308991980132253099234807008181762839832788303707805945582981690756240735777548634840101963970507986505710885334468829718051590114779128337908026035459021606941799305151806403788641707479824627829720878736396968370309421183076945502079093406310891653078796023210145938402392347467024413453087084209021210939277269616228599874331662325062346791063723447313096889655842477184402815553401539821521934929183918281622221264707657614498398506184667748125450068013591690133522801325753457759041438449865287417458510379365251241516709827717048137248813988096652499878911623419826005621618307128188965867726596289208829914552080466476505663519356451292623054823828835843839180934757604644664827364302652408162927578130736541997679492183086312305165273331295103933759053885130505544696618453891240366370340647740889374361707493809418755108429016076139643005155884354601044259754687674102279993158044125521705523510886362422351238750876630079551722807449222907550962675257487526692658256468098583708250178644281013004542136424671062223694546389201542308640388355875072126430808617584815080854929718015383169832607905887712815446101827344121749147826719563640379012782929592007968453978796187582549027326051671048429367575260883586134356764230122596310632050975204527224033461670170962180651412177549787366377364877990445631576126805319021246971441763855450119542907725218059500047957721890949483278972148967958865202441081945892025250764498873083813310992823991327336083064669916717816044532619155068234602532880791599658375531099129196013968948055669206917073753720220046536480515622222042930556232547183233929395628326078767975634359782291568767082716348625950421333149002215164905540953772282522314320209175391915074673420160268193547473219306601687228630887881871170144463306870035819611655674084079026154662791318474062372942636159601234843480108649313838308922022813724929950697457728783796683303466238525394181404236116053564502462274226771792856920252397842075383284439730094520188961667261563263794100916737926827284793918392374477788901784837977111956082752935062242387490031030803285758785624488825767111193809424627468625660910799063521540614841154447788731064867869972805267650107279327011043126687985886790706919413388650368394615567274073511088969167308448190172541267828372673638257114245443804282214447966972249196244250082654327568909086154206659099241992986430536043138041353760761584718079487546068606554645896611561733335053760523472283983822588665239741995852666375953754809423555923270581467069262610505428051661625653079023302241694311575885543090629889144732278909081821207541057413071800190836331457112401167319369001987312124816234626840044800421815969397521543999984134829044474013100884180087618234882496310786707196694404814213990211898947978480592506821374015053877074498060956991867771739370277347097822331050112289038962485805464451729926818249252418142299509601780200968679654273879341146117109488310107301334154268778747401054062739787648291627888634703784330070542141445508030459739092090570678761556517539360928778183547110136627985367177231578990056653827461116429738516807013659279110803013955721173421891563364974559208202837152809909479811285146127548529957718112550576050817334867571981263786923642682758516978795696942659194498394881591175745603352682813761494796286951269843737386425254723381324125902596443318201431918818713963997334272306431762395596683856570516851033955884049778843399939503138347889593402363240261560180694895306106647448784101293422005953148189559365925342577314458085971957458142015561702019546098811924745171266264726390042212798941438347983868889692902355372593429137890433069759718794201169693295158382034732402088210532370905599908428052436870287248323065419223066268963740658796788249689948942452969971733966703215112775570317458258079776277193587248833952303205852030173045863565658624684092214519123631239311285969720145316973200261333954834786439601475808574839971817101687587610902116956084321198614869366268607370902908851532530051327297485529782110361279593382308801081049804191457545855809316826025544047025523170918820463578099016504983857671723996827223655476522884740164079502780623254703523465626123322158059302944889555072539313271297837177338502890443348357356233622560170571695074167440088835079184203457758432658510601259772005496128743817083458229262208774159143973528479268203547006238482558479243612752671589640562007329580223094522639157252060947818881310201272199878807634361214692261417084762365734799231107088875769831542305295833395303261872362100546325333185640025214003028218818940315911199600522334620529217151045990239481028339372760923622315943897855901174531217364417471558280805458049459495550185967819508343045030825507271042578119160483293766370337378788439291678795076102717582707769095302522583675489288902602460921567497906440122094278256829240446689889112097154954783364652012707279962711679458994069809694591767967858753777573568209894815716671629112509354674727522598728553043541292035761952252101609295213077273591150952104404398075352282851034137849079546916347137427130322195787288817990716450645751963483582035361033780103246857875031846844217151616302193828776835698459869948571289320959829220981907024762059502914916879423730062631085028700882516091671601070087941680942825337355558936543911089910095262967363814399841930937353642451257042011699012028443458884288745954152615688764010415835615855180625828810655174015510310477468356798542858484953672216618092067646709889609902568307091584805713004471404170845646497418562342646147941227180037456650980216946587753078099187201666117013746999062361833584607042656426397107478963034338058255555345761558109442365797539211719616985943306583211075535662966569862013232612934050861730077620352452897332635141255205071336028477657824602219357179461616460032990343994542538816333908670674912540481325234032503777855861887968175677831240671205371896428776369217509270929637960416496872974507130942570236821983754297479206730254075903310605278128839322130249833901047813673873161150870504017786736287832398686088611404840193013964821555306895520168715894524310141831430952561956751566424009620246796368656715641909157340188729053114923063406612677151145185717504048257688392964325804431758219395015337992632287986649553763545536385424433040453850253281630503225942419456693465148453626804470835586993731303150083365346949945330132781610029946251654900544236338347426350684784933068893355928271025713320686998323590621545702002474791267128816700538285851809582353596923942692587356770657243353511742765948956567336725680817364509094583089500532544628342226705900212473242797202034711256175711852530886624889829866371749781605011171221367119648597077126607435376447494714625424197066947238722543535333753596613906148308051455762241300428345680606469804703265130928441346967703955024391186263579035780319814191176076352388451733935421445574995209112232931798368487112341876658704651786273840830312995348231454798918188681398150174035648921046814326924477442453287519638832416394504443035871412780398604436588158177704133351530185902518675504044477497216685771396292223277104010780199828889262021608195790413942618784074237429420675299325923941783315273143547463642147847979722251195380831972480456799847104703577370757242520639410127370889007943189240010682049101402103412075413214276312705767555742998197419309343301914039418638923758506746648663092363904732669126912902607233550100593715419095419803653312318121691458344835325699391884807531129889382188015791287453926321689815231064985284740615261608206505865974782409132248631971694543555040975987351858468018836313388550229295109015338378343783518005585905373348590433089715141104972370138948652167468617425552214684096692647686871770572878008829893029715398918197683755121264493427083078168264711042246639911013340318420673656171128495823314764136854924892893314639709539581075236141659082002914241586970555900605176717309406700307757773963181115430073996901957271825145194273671651057101455994977920125631787638775593622965440812264760777575128556204173872371391839114127021037374677605610311915329895126857560079941124714785199501452269932021964386580134071426956082849164281443265508357804419319361768797942673693417060071755316873116835440978117254851062336690908842493135413625474488707240990836314902238072097922816424916820459389249094482378451086278142725385335553599575609045237750484508359327807863883063278366174608091262786321335201312953713346661311784426569090688256573742903540665386837050693779179041812851019971655580781974135844355392975834056924432270096495995503304559316374434295810818742308353991849265473728477843764575755581702046751663540573770357207567137081972594432674823589043776606512420989792205092627699702956236087541461209933545649919271895827206550838176215835654985014594888085982997150117023241051428465904169989179613508421416472386142449967494518070055972070056225794659968503390011131663684871719242807604884169373952516892523689829671299800782741091660998815889449736969987126162577887748438180411308971519510623187572036333124874462299819598919354561932344219036025110021008401964535292995590645792911882048887066894474617447072269701374365864866099579460405076724134314864459412412230013047009715103831605944630706696924541069541849225076657522270141308227804978834982046898740586537233198460274453520432472320695278115967692877625261294865203019686638325837674632069127787364023458432702801248520623242838142822629474086801500809681239038816057610237407736134812925999481989528847097115569989022192232676661567742560323616998022527333509145179580322333351618951265897437874669136309369852763163871680269647041226644440082458375508284018915755472170316831755714327465788720319991685758462794143163827384908174508916452891094534321728029614821399412196449187808908921126616322010548509354589170685649334259731380571774155727186948472510725439158413475824252717095866944484378650580726668325094827411451078912796885724303616277536873135582620231088721597186694061699889507748890956093325525332787838553580731682001712512808063977922858045346446994116697727224859032345606784902939537142909366776154298243528854400873968275845395835973856664311475927711935498389749556562626147745205859593294966696457689707636725493226990633570067462626828304751122012963971648592052155892479564447560124058620901776828992597675125184538488125684977969428603772060945350789834086720820799749112975828810035303849404127952023556394214043903255968421123655091373127619564211038387490758819976272737901390112253285971359117429711140997356085568633723601029960969949856546842021991827167936309654489289649958151388879266364255315770994750719810908893780535198839336519419298116863378679062249099623983321076010313663497494917008954994389088096376514429616016052961998622100297825331340235419697441199712353288661083001186782661173274449273196952627440328875035324229170437596032492776898958728043875581619969664290049042554046084902875400430966731521995466157443422044121527194803986122940734149899296960878836264689047504943713454511203680597010932825063355079225672599767440065056279668617841876915304377056670967166776375617948689326148316997234866066041010961264644234574366095327072128943224874911872709908341309203369938337589254667979909036630053236466049315186207361053392216313892412116936788393720988976436801508135937879406477246785991788369565805774953997598070131998820901284282452225604129992301821992203879043886082907892499534810313503029926177901240398808648517105381392876420647261322344098012424675673737857788313151732476670532284459071928807725622171399704047661705265631432075925215565021856648697159850457033735312044002408435816376500374794267801163221868742258189040482570508281758274506666824823473755683336973541816108373103093381790510074929444760050181937813694229833176446501281387548324626459466514770425649944680025364904985291139405646609929384863716721182661436095286997936211179163840730538872221165610584687956490197786069237097761436087936029058598174453283575828656730524585362763223719750829351768683929328586035557321758204206552803845349609377419606890773978786953861114297371774371025098583884431378973200859141245843091348893533392537893347716820268650756939280055995484939213292692898581310085014039214243569983272886158346825929954575462690920441957999421973654666986887632097825028041663780682664713813036986309721008728445501711597797368109264746121759610610035314472562628113131041735679124777157113683233146014025982919191523552983949211763352307131751039913965671001999663381124858794941022357482477292209791337386244660531341888007702027012885779152355175883021914523771985118187447523638339996345638803255274779160746413932202280311690529365812338809653661129577744875739235607739063019594993196984913108547071705321388209343711156843279171540188223956615181157810781845057868283608395455455469734626973218793385611878571600413081828988809126617192586678068019425111430115860734533445519633191422888747154471242180261243262452273945132830971538627326824847056967097150721325916381917016342721366889463185488416503990791062152197892090339299978344535251728544161323898561616202238123460321557974524788592938742088913921789803360492546575710464542991774731366939136803985516555536750331137442090952304737483867446160578632196053377463464904723680076691283273087581911464596730266034604065162053040543023057288064046628814646138968628829504680403061242482734217226529134069841064158242653444525313138166335564874216186169119885666803720145706764297079587354129271402380404552295380879962038791975711214778907520153499540540612770251478748662014745181707892795251696863344484873506888582450797106422231639258799629865863123214842762761276810319545160092100037221270875065730001921283523089735711032162469698615592183942220611848605120240076094368603076069749722170924821819531336263388334911113445885140984018975725332201148328007995791220830979077873863904386641322680072408632533111370817218177963353851275903221856855063743391508158345558349230032325517220056213688417650374620119868152982503526346261529498633230784592969878085833218189108468331646159224138082581538116509973149773006115254403794479659464510984281384104716407629367591983893394796065717759840444025385950410524230837288241344908741731559115309443807841252054453146700905152168036050533159042517310327258187850684793626634687756064774512151479374310775351806095573127024283258740409996653046158605004711002427819486845388194101227208417046345397805789366925247378391663757839554636164669178038838819501108244870880063213098188456128735652908300289350654153293862048173375103037629751135610127993140155413600938377688199626589530851899428187487625995830886828274227550532846210668581023710407904373959078040237925051769310421230943541672379579275426450096301156806176593438887226202846311212739335482587242679166843977850831388962204750636794608772304421795971383785081735767869321632052375383102850073500590120217671632495488760493156272582487992508300347743047311450668577169297601673487120547965617372753082995901244760976900794851959938294534573450312585830243473535459489691394566815584858968942720825769557986380783229148139375103598606927356980511804160845957980337850666857411166150377072696715771729124235990152259081751102759962412909028451916990561998289651420592348161644593719367358344808819667096006355183704969833192721228280948187828512549863179702113570167370361074548210850638888435095214796469205979552809121226593021770818063254154374937015982196063212147701133568750889582814935463310739293198290180755656419969455550860140879620605412798042534728268103486988717524057822199905004257446291698470026541603732049583785134562295272259555817168877813365586314870183181102580376503838909908320421797124566952429329470949911066041171255754525596024220573546294483293452140847043739574567349137717511522435589709434608027841683569348116348296800330817766042345805357948775394287570929070535810940942569132835882464879261261031274760963774007447116487305587752495222510557649995568891580772967389118908150228650606042724846679958003869858294515058768817166517743859886329452603199039779925767556914067858005426229226601461880240254830952013133448328975888263857344644358634062141615345359358358330950155437146780429551043661451279782972235187115687953206528314357277063394258366319907242313428306221246015295971459799947675518583949557109660487567631604959642016111994216464764234084919359221815577761204968355974064092148215363667759491154968166671810154039252070597676591732339763488018350910981061212486493611575690866550087457920646598031856759284919543393881741529356011195211430889511306945754867191918094149986914263929782562311021304768082421730307996692768979388117676889096705052075058100867984967707497931519907067055181158679238364562650068686459327431174130750081638761529725999433232478899942801461387571672169094531573319432536469025804237240514289865755819968540529880963656136126274462431784765669708556519139183576362953940311693662946872561416347687864561616227904725649455708662326853391378986466437896519818851913804817058090801623744526347194856408897569354798945594731139019839746228594406701650800014014097537560694153103122935960173098110674410338712052637826711506684539395096158864472643608454582890055567017281151308173242829939772414239904453610307298505741851104742981287400198852011862321663157266938291552472283478857131090479700185196578753076287607656299428043946729733607228492821499128301911114150456257425089860915670047727556769338650916214800025964593886041994779590346933537253072735200468277326712974119755657178097591738165098972185702916820026462170133860298692700038536793139134505903628706692611948242285170124429765563195040629967697162091090762740679431873411385061696229770178444410122611986195955072117123741133196010255218323932070561872742494152106399835098452137711245075546784892695113287031941154248390104615926089727270642740243014558742527036912398171042828246796993510718622588876943485490888599275919113698057924077092585336430073438491012450625011336156325405133408331615288245141316788123389456879942492894222997777143078179079728956319501478999640348967711423736581573554994285372941379226797790208346776028910052926546931080656189811263282208297668801123267444552665693756822975567990302744901920239037671483017720930939946096849786449444250624062197108721518064847065213406973186586733392004525025966531911737808515418672374227659586450091464189112034048185521145462438671673838662304301218962639194667291048549401110282177392431118084091022591142241834693694098672717781536387955774786066191704289783256920972687846738733435487032502586764986105594766457134117963973143963959844261450481119166451423916230567430988797347718817765930048518033704545833782036506618474959119424717563461488750031038135995314140318519551667485037550801196757207787093864008598243342744019648374903943798383308743650559268418874453738000278647720357667778213630158566710273208709450863355588535935453907573746694751153323440715522985807174809106981246498929328368613180022398737044324115255175004763116117702955608937140628287923873839781983000437937717770464500005105500774842489383394974620795076309248576924955594301418924530851040334738594183361089362493222616304048791690996561670670753765104360028759819112582186844132579537901062737365935302850907404279249483609502928791286643744024395580883523401562867180381654655250107367490983973604686928252510531585512744399258798361091116133563161714212061315721607229264149352741765367549434787968743953638552865400101031844298747599907336776031199171126789662961067349843419713165250041444237673420728346594463553218139681730913765473232332172537070042639255106284322504677357540915767511006318971584423309742939572820879663369164159740906441215656714546207872502858075561395173391160409847956022550288008362391846462003058555839958994610847100763544266863130033661863595032561839714112375707716802799234701692260754839644537091047784768618555497775001585560617131135512342551014727364159739595372018774123407570198666836744266346869490724614331008334041330817436883936991179237332852711742713595868188780838678637750043343413609313624072870666469903698769687244554148468867173925660476275521665664420220114668604119763866671928324234215728429685828507236477323839212782289247313866013788315446606715486960522966009477589747625159346489611549721283286556411806404994213973526815496487768600971918651771394486374566363476480602314421180865538034566568521940853514069887294882304680140688896645438589135737816242464964466079001686118032069355351963549747325408402692804464085200353720293091722107277506961114875960900464655602506501513699809224465542353203900407925116765003068640812657310557039153756418274287252099143640217757246314652124898572286973579863618662202108345321829280991084020640496115886703996292251877317338029156637363513960736202903991775770768175999818548490051039290368539267364029372248292635942731248930589061013751706184668556566373910403261739087683442467751187898859061459109693840587745441547255134516507052535744554312819550649443776805241907150047734391069248941604066362423666242926004876249359146734602766401059674602695141482921022139463119294828889384689372447392778234380663262742457440517747666788295768070099969092502093467087714720793424193017136010016047661930760254568888718848032652310558700017970674662711836797865528500835946527729563954168300662723836549980956097867547537893106516755657838562388142783916283106943721720344922522188792153004971227416222650263081886597401275717856304595059446034124823479002829229586444551988109357376797408459706874719185367438214000979285915393160270738084854656153866230722755613077195648181308461895923648571396529556135412411434099510906250331279437232268508282212560420662312666739574658043798716648918223650381996730198497513472198050172167430449632151098176332306121058777868897138167247867808412456083381819932597325133287068222635319315954311624607394826920340656437598034808076486689934867647124470512926318249519063284212920656596399725578977577028836667687903020425120311636416755648258610079855537243397061080178390291187746408281583436196542523359647107028515373535522117363516010758620495722326160767372578030154155877576837760157217013908776518602353128112689978454056964868446462698979296067353557291865189115925447687327483537978674376508652190898776925871343296406395384764061228443084894561347386118574478668970782261600907224668427216246924082896911901459388781172451717630357373385892725487214477634457645256015011080290592651268997443245865799370621764123848501909359151955905521897908014591843585645408423523624481634113444936279614934967066946193180685170337900952299685932640548614451346260887393916708941376140215031371276234157433086527841889773818561864381122389547092218443798112069878590136087724633913006969547200579539044204926252884869751806495818028600318479318505492956879494652504175226802196814201764332581480116295074908587884970351350045152274425748359230500517898015760996210748573416190237256258709253057732163882731373789259934264808003219811713593691883764472014009305082018627747149022361345351032086383226671696594651595996418249576418864384469109765383228039441467405934347977823519794724645870537490639456709173321316226976567096495465854314963977491381737999409707601051347889377908978272709823295663213740221502340643353577998409946866885703098196883673183944728859227010682392012454006221952420481758761367599181485462994644722066294633087203327482263698008901518006913660185285700958374219241994666496802673787321522128954662519279779453724090047628303358901896155534084498165481434823329906793953599627776182839645987848619175242567367508455706244996380104500091255472057081269099021777629175204887598924280715829401272018037331637739763319327641415290600252903714020316260164325826695259642010476873626495504008575487308650283144238629589728371897193670053690206343410157717177927098595417041303579701511533038660173750005252847828530725197614083063280816308502674342782541941726651547280170197393872338534553808745212231889507618421114081344249416928757490033664951487792825624206957002464040183819091293664560954608844047297651215981060865373679632161583929813706513280881131917864468042220804537011469296830222267097844790821563188202935201056632387168167848352880826648991787333075248649075837223860261159178984711373140555795193082985518188766880152938554479726580386508778681846746647240003979881020909236845242406119027150427870510949828157048976878857171591797848321839625995665382801786483061897604130133244714215493872659357099456834506411484396831052099321963426234283398194586645495383754197367467758832407744219297623801476885239236102303156005157168799143826970699827468483358250999932437208828346358060052936632288584046797250073661441857033429547729667085298627204161765310041781768844520953992330623263586646199078565866357842015474093616256339392554711976945101701207993768518818339570832507674687606412890669400597190160101661241619146487800876745565359868442745963088432585603039466415152899955227308369097733743941829031255884218322914357796496011330805640643431632831832966756102538246073990803759472921947943740720204020162825802067980367842174425336805956034619118003943441471059129164205392354162343229939055056160067090458731280975154008516031362800212060081654228812382173641625078539824592310990876988394463176741744072351589946056542007904442654715098653217152772243015246559462834015810956066811302062098676455046952498480418030060523560372034525896557650279995352239194692561665250000978223620699733377890234371585694041964709399884203937987603468011684662921436947226521818589652099210707001111156731578798381682779499969936698179462052884758478727765195635334760125392616977858257761646506261250493165427246497222647873423383076496480341470698597936683200207147998834677340027777549311494388966147794683818728855523895655668214152464866099583503650368097304781936383056193718253837224717667291356857425009195437766746569695201490706140705980443890049163377755215871873188325242327347075584236030589939748329758603143810042404715624630016341802352450200694053026548992096199142678865538202071347342498836425099887098028831897952849588269211960686456365527488471845899657321648805124559456704941136826545733974248106456229016263161970539530349477295644788080142708765642257965559268189869085305093707886979989572358757570747893051066558416654801620193124244656488454443502672191661410904908851363229786202556660108581473848111228955476715384585026795906902679905803324722272317911894266654705518762880373885920022734787308225617639781446223503075887014746249022660128335729149329053216221114797716718842781053442567478800240582127715549859906037734165400388996431624376505395417703393849526198659258078024803792098285708718562696443820869761896774096174218081949755112840126344357485004873094284839483803982611568380378682950657214900507135742544684101695967375445652214725083877565760388528458680001067963886506728601248491378346011600555651785945117740340587087004698790675710707656688539632793968015704962069863023618278258285058221238683200286540935053224823064114934635645579263302169086534534145741032395584472254715093868999269434476696554800957841704021668106283273761577573557842725888601951826540065239516581501998945283145497763498496703759476927449071134063771383029290050816387663109324825950042312913083109465360961489633868046873551140538315905008062365447188016216595562552927767463099486657629987696915852971304936025924562022878786826881508371820545145128445171862492537088017743178478026926454660164414616219487168291046443333883692587200225060775358152149021025384774810254985490507285777364673901862937043419593012140721940314581943862712582200883383397513174049701756996445876254719598546134400296880352622732055836623862606657945864647292911567204798518356246772110931755670458744344095604551871150248196535656020274587967332989676901952427799132191427034635791790718578098938689329207726932259294682350752983411021060272585391408597825909643831126126667560410648850430403706577679842667297690063450149842073804956507391851223120075054656096710659802012294539682614744197561750194839076547465339258514048834913516247141026524776246140457911790642430165053948218675081083326718775395369273179816361247247944252320791149907843262517546724094412638156704879537385431572523692492811005070213236035855677950402594591936258326548034317745271598425201402944358398704108600769295275479777696236296723337869026298141424184687753270823178041444499303469007208000382569049842967024834675957875756445255215313844523393579511828964078867579506591214773117589727683723174083133972895867548015335179124477816026579863549617146682398892119747515414016338588240744700114509648305150090760150115825243679340075232276768768894093793267817928863578760558002598355941203726456259044881714903638236163953654995252889650841033925959082992789357623441808551784584599140154146441319275525966572769512951124194958770202803748046002691437969728482811804463591299729260100958058275890955169526139553440090652576264420813982499809992970457604543424288199473731814570241279768463581255656970145340662060419900786425483613782712220201033943772179898546034597663969123635666916701876487589214625216988955517931465912789320454331017823539664297799445328110721859704933035065440648388125133738695317166086169525767377585014850848650934687621515429676790964804119032529830577736279267422767431337259838501301828928870317018771420105186870131711279791101422644272611901852149328129012690715977350627699256518030112154016215443819001038078465079009640777669092787603772403196050219910404802977281077858653427095310188693910223752748776618381181729055479586596303830285334273548415295811084484197555466578404038974481457444665346820718090289188924382934113072521584817712144563807590648703571757600612080591764534290045552018167693347760472712850363175649068073386661214104432930653939278744260592002307236449854665197956200180606653285613058253185568587341672728939396411207558377919225652720180674691971055578480337535795605512875253774185766332185758090426552630045298603139434628146084697918540255279283688242263977680650601539297497293129204156705067522132652100501494999320540834184758238449316556926865735357127473486182308482589641614300599046702920609080656918515782706682051673278193627693415266705172620686573535901404005813414119368944807360735970209919524023389776575000742827309442932130758947890263951615559201856581679234607910775132782827825945631712551411082468566192326739405062432573389002641030878188903479436014549871145597171307313822732884615466858631876854508887152232148232916040443373567185061678879822990308113355915946547562936235819255888742738326605199164017536835078635527911218233450530445012286230842204662569523117390717337721489114067241172653952601553029185799486246355818861555575265581155758237557796673865783190347937159502354102844852704385480461350373721625017538334164713975439066563778308612391597519700728834166672288175382150457417674828275419339288653982869293483479938433739378549911729463336982927562875534696760233602936621663290275286526743977128007754486943500243168284005341595565504918166960644443893835368050824986770564403892749231687798476114605264953768951319600046896157409478557405624534909016173936769258387803664704874802480868624933813497193276370229458187030782839352525992370837639781437825718025354825668022193535501118207205761114728892428553106582761574229419046874922475165925775811405602939690625941853266235192928392148372429274994715185818969121699446793239378733314643283111349887837899719978703015929480950667433739224447536266818686041156001521350464151021515866695996684559824649292359646568641281521355045388563234480505816569516934692939495956259109315851666099298861608837930097777109009948548571234131545294126935658868066516646193271009301616286995634361534712612716405919818895810164119328099162976155712270353889898182950887280651948259760271160467474477858811753469486385405772322338936799310315639759244920181483458139133489547218936139843601340096773779009177598034165089203949596680673773928638911931215570635863846881185544441200602896549728511698490283283877947985063891937480112270223434770917535718601752824543316728096472520551963629103569126599075013894516703797546463677536794519772957448162062490367559180789980221751794632185912694682952445532762587204861682825798190141624656351272323674627537199965180212996822891953405280272192779354431177131594414442900381114124758342443207350203579418772778719264824228886420136377447727088981898037191773081312539389144322966733885762428837213651477644363690397476557296959025275068947954455379484828572065152032169117546574352360026470957539999323173265464743451864957817765697248112679498008727180749401770931923089203703479966127495209728065414860382313654477659343499190427157543873713469790723323879585556997175671295725474006542453677041725252633179215295780442437142788468399665355454426254106321620280046631265968656696777374121509409900892505479783538992550886478112518175052431946759423708886845271112438537971591620730076449352062443510442935962317516654497828791376141289993282139236868238657280911542386403437563612012575783245933218187108496319203774620085957283978841780816100479420517729158831726650439451083503327343897971987735217330698914847220599460562341305667206987861943272454417783792379280331145817679375162569223167323292176440277571281708702165888312077421044856215095765606928881784299623659982307471759147122246649310686346173540732297405346439623949693893159647790015491012470222308822627655959739074918617854692752309234180689456625569699185536446088441405726135632302994606702287733158874982785431166777066292686233963652017508707718524082083921688071745918231969611462097203217399511552515931080366500563293654191803834822656921561938047378552124104207591039878976508254985795357411777681102533610282494908578197788476252557358029496553323854281105228639630589294832570096550589514332707556945971608463848743645539278827487397355435064887618210302436982334292936240789598311995065160815206144688316103533771957010391416715754240998342447531222596501156846815567181898631059863293051650029535156850196500886273655748796557525796398411762109677791405102337537436130475280942311974796596529847391763909775496168296937581348488303719718383136446362430979936545241151883801913900456457996398407939869466435951883015775459594597198600373097836828510334772665846985820475456356879303508044041437168806463028014213775264370248382249283357573375650298148703784365084873228398839056388657354655934468299663396938492269494032373577595682677158070209388963674780384589751267221664579410239777311990419709103609809379147516132174306887266961191250017471422349068717264313720243902432151793738985921423816981200650818036770342735645826380219673601686556858381574184615609731049288699945039761799551662388319286202178119473338994807363124066626041474700498111863332825292835272413153368665153341357454110548593382518752368316889473388308646952593219486185545188871905491119618830370028926043579701197355574705827584903320004157761408286019149775556057784914474475837451173134256552007396635560793269728061995196141029622771691555142831106170264817375144620119038116852516535034937741893973661414649035768671192421131050499457202518692232867325207725190956255427846629295218508586242409880858822417794353961535122968731667893520992458564123364183228187126059193241193210539540232341939517615517762562736627180087345750956364140857484270364685009840884805239769385508485455752203013395671109142185985553631901581648641043718077107991975235381043895126001073796160433252819343786224400108676663857689360528727223626201623994504590675977356599225092541366452365428157094852841794189761142501908108846092223889580723042334412543802180256266503073973106800319514569341087279848129930835085522416717191624711178330139383975979981484492281640951527702945991004065648823536649770505133118480684056562493139786312133771950533434063403691253210441929257003588756038147816884649373859479870275134619397571630966044667089529227833815502367915728089162913090344056218282723870855949982563691584166033374793997131911833994077519233836026992424118823770131866035426838432536717978489739504372560806495533198589160875622230701614821718213607245924875515051248943986208117207617959587844468658445115672519682235905202251531762108972692899731221799868934605896828132461682066367439806298085582775582846418664540929198829047652050977388174201128707646618261505735787039009407685202570254913590604990793736576151130804262881253329047636768153502403475524858184427259584773396268338986250274693527128505871844483030636626284117844279709713794414508295846139655167281370395756787731412696436296423935126458041433118620700487847954164049497454055592618228916910841434654334394501361027572969830824395388606746215394962427531138695081223718750018342060460229858447307386064217806934635079562662984263372459834221826212922965412740527688684628619393168310053101556430397326549219906847183696632883728060041851111477067692853503790423349002236245553487060749817837217361515312267836226183900929252396297502855953385650398680349138411021556763108556404165343549251848049872670979833906734834272731115554710064204719765322437707659120488844854632937806568263269245852679692898441303052200715423132828458450327609219749290973306315322832026740033606203575106398392958992084975285288604411232074066659602540326630512915585943396977193646475544697285729641152990371016045355129895466910820079376489712735299871528568586207236509441487247705509143253346334222002029460200852465250343054657779299657557190420012105040109330010211754014533571814980765362040717737318167766437805819915328003706880131158437842688053869724629659735316135350146444550925114294273115685985446999969975573271813713720040215231169078215040855633242711195670493132761415214845103995714888913283725480234432080313360743281289627301859696740992787087733351947171164008096718112704120296372680674856345617851253868811885537164102442725251987514740444994080332762067027240799362598524925834636086427912614573831855103659038454257303336653781662573444507565249433116069836363008361246549249362303389090729222009522433858305518336352855481464846907603019154359604790803260201607985748436661004123215421911453587968048018104026927419200570080765117471846485572407079897199743963502482172592297182224258124651819795881795070689516547683593816454545929773393985487700387861550591152682694672196046636705633023643774010391622904322790808525793717051560617731719854842511252195668134393397970407001303566510276438485071815941765445286554772797043984395114684476021893583831588513330294498863248909326578179320326655444184498813810909249250944126984406493586168267622041500823925010355579274175159821465051383995020106192976409591202999927119148835748113274171795407861299594000540043032646399099185456570005368113344572998049055105564473909234555094487876151537601135353331438697962692685161361613080237114701511591234073342359950280932038802394156594837255648268729358911273842604903006466781214243032335973392810025585959392944737190812516915888319503262442639958673118864497136714370924050001056839746601191255745366331442188548806920970810321308314213683154413608739648596559102031600857786857826595479884862722021668632166657214097276510329240005115338826258417898579162567005937960453592041270144682328435004558157571569263697862624300942989781959772369078547460619433047304668903092583770640174012361869190133407154080944109269592184246698871208411505494723752899747860059504508603087920158741785575258045197722538942739029759693865769790715828304264644806565077367517350544859141534702214025043968797499323347050232271821455889605813679133223078286649391810752736269844266858420983511636898452796260550632568999217327688641693771327842042850352382274586267645091720280041273830461318958221894504856203696116810339428304410525397711689879718763774236398537533542391442348625859912782527512691060087872749251136682839093376013008506627448654292166964369936951342281935589057092743754025397574540694977199949105684167048623805422126833253384984241416367500612214090407379071217629703413640743398748827632568806068158209892670061794494273989360953483175377544680243620957351767213982512704604097513922374033891781365865058321556232339408595835977345267317389842981330574637572191198009876299731756410674971090952661828244546979133181366443614034892756252874316023818091011376716496699502806103780367432313567151811061407400445265790555035929174912169057007723955860850699125773129504524356180137518079347664322659244521834866840692328279129279194526442269654298939663185993307711447473774524312958872159335488627017658509243077962410110597606450315759050797450024314073556795707971131169729740098757348171978818838533871439268653534802620075318655257784740258651451967223406412526187637377352245896185064684394668428643193936312527497198057810457211723137422649060479296063128019906924659240522757259839119698842299845396844244411464034412566228499437381967368459901730356537006538171003461385999357945084120952741400359420595086674751456551668430198970862481256227649969754393373167022238785646289776006845408037720358642255827367289121751919651573480278668203159984188947047716381291440454944753714298538456067352756491676889368007458059562970875032881562240221504606809015748336967389470514154417374155412034026216024172488865674418779545926944510587125380667121006711971975667706428532022408958250019091650552823406135495523364935243960516774907422264365649641027058430986547986947283283377293410277369190317464078061198605118913221338955537633334905715667076702249436337723149422027687725676263627981652578517724852540387359359296836711663835905360365615776363554277043564647778145807145623514146911390272150532438434335318749647133063747366371431243552868138691282170456943672169676772396715241854042448158876834676591162238755800869709896580329142323396605604278075437282566165740956839098189036410108777204196058075596226826378917208779014537420968007861271448748003231553956892460093048492355268620163786900601621856754878078671319313176873830894369082478197511664227304917184214200959076933072063424379003566913992271416631010411588995088501908260637006134846486977432158117906478935658199859829600212560148601112263212659843966338097847796663490712116759994844215792315073571418479252387588849396932180014404194711612891696688735649473102988738567441967975783164324035404459296297462898320923224975914127615103277192074557945710865045841241684393040645882673571009582069423097653138266706443369885654689965944014442663691884275642814963404907938432821173311856139937181014035629351005479067495335493475904517957420070032384493165193335364197041104816760396680818094433312421054630114263505012443383731787462638594242745571950055575686338715505245452395274569986260001589843652624587070068791801210558448325504636913677204283077612700900472580456431202191940470941570637551074034471829580950552128530964526289593274393464629578382843967050696352878297373136247390326081893729183607991922211698760905498923378651082359385506844231814697217061763891342469369040138531611766171365588139795834528680340389948728080923635917163281319550880265995612962651289980475105523579819019587857000477421658628944410933964493120694695875400213259225491611669129865753463477853665788219621641530115468083654976315725721156973496033068972231192715720007226544551921712912714203050193289610782612060827535388575632013308834895811825807225275723527200019847138413756363690384097545140989013527581371591464559855281210649965551918728304297693204447480808237949472708435489608569380929991143308634600768970679800944235018832590725227018186110301362779029330954210203110413105452708246630546879479615109430883992521809556348419186737135017849234876323532797349156358777206052832447400562520335938533762170159887746151652062840103844211748503463717046564468262000139578795509724474791052552298483339462220265372037813975667123436915395316010807338435927128321889743775494751860542099088160949683122989857403518111112704767306802670303249978868181209128499643644564509041472981252571316812236972492758849291897743443921492940336808734345781799264270938420072644933799594370123394573347538211108127061398430943868344203999854378916928782472878666138317975086056348125647527780329448767702679626933137028028525613824726692148733639095805825543488804576014246682425596970429772174265941504685419452352841298224306090299486685855924737523705514108745644245206285933513212536639859307021801541860763088524192283627400730954644159079501027621175476955760384459990622651070519687774731333488028627022921818455540262402666540088960054730610921207356507253709268311080169807751469662309180455183613260037854820353478263505656562689681974643939206005221782878099903572909550085935831093320803515524581764326857844601067545077320261349316925472270026675292732688946732364556935292362186925244252060071081652411978479299409975969545742532027512039458751544584994863407738032790355002444435789001043317382671985135856961230270949187262173303976772130659937055416908364588249189325565210411574851859421005565548585658707835012247489998607217934234965002215342796784643840250393283170899151146221654815357990742673310991875568446972669347116715743819369711466168314018888308615483539152947128297885415315937763574280521122019362642167576810041258237236437965775279463866731382515243554874333860739883495477880871250366958165809977138094352019496749715729237869961586154951787798863864347131207848350084406990084840335319324769191380280760284594652573740779112093230638162314009523845795612269072432823301006152685591918546372214890938056787708484909870873789899684043750887183653595178129649780095153668367138305707103349557823610247362184598639542474288331195925474807955638088348630440102290486391394364481826210676061416260590831824171026509587356647138637151629722204262105524790894895206223544758815980480646486607584096918864843591452731049529595844574535390490388771280126484097248100607826825485669733258391963755913845265956847037371026535867851566007546377041691959801919483445915224789125822067487258961454237195935758768508706448176315812978802544208859094774910392199978700629380465592744311542959134942040663622318750079668352059502709944816468830156501485846741532231204008877187711934799588127019533510541644562132719701133556551230003536851979165881264606374565738736539266924316302475247786503967115039924991158026501821194847440672262365701764279488859326816743234459829214692263703285321699594953665722053813494553813599442212121587547365473498783449402453336002206646681245350675290054184677017474793164325724994365747703897430028677089333415466816570317532815072662013535965100326278086214395986651371074514144454950560505716470068234548064087813130132703751129029204359343382781199621846486485477466704076184025886673753382804459544308395615034589472432660791677598928556115285149153253047721818844806204549461244371956669886458561196097147593360785597810010573380121608245937443710492267446755637117393376986848662768104351658610911559217979361984572549321951840168827367343794354543719971402853544219820059751764933305585316445263414840096972359292982888342493230956111598608075770687071777133007378882047432856938926057650210520488646499012392623667927006068430632760712114572775517134947594248314771715596937100246431054142686146073332447689953943105280677567879943031716659926923825437322306807354357690938808895606886110455055786689300223259704004106004947128013239542429096658046784142630621334700306135857673432327638165501186777059943923432605394829032336176491026704886663432415012603039189940679688673308593892646085330025732927187667978397881190032332426295403775970618549694581959930806421031580765202974407594338083429304968179738300355876461658730329642847537288608266404546320745879303930625320497460238557822030157146973191404628665074289337053741516386135308219769115876566513486911198735534197026503379550614217302095715927495390808933121639983836118362307745764718706444139257347680921800964412799140041769242208276521287330376237537689722354797518127539266171708246204093174267272792495965825231194156088906863965127116306804799221426220579551208872622816410528569899076010734066478226247794357615343125670437369468092900357513987177491082607043357754933197926100133594740811614554646155367825938307806255292047994724257941081071102127946578544855705116035023187903160549315889404468225581402907117431161300735265335966820799561121246477634450359825424606245881587240098892178969083260368969520946367466800683483218982426155710117577989834895736258638762880945409770635099852880738082900621815625493080823457472119273826277819110693655025416035875261209959984103610602426814181172959066526325638054897138103868459914474628762743221409269545581703299535204783988351528098564251038929196959956722371494092734875395702431629799314524879121934776113260214850032567665026967301071150485102017225260215950472046290753881182864787980128664403369372823061425013858253193438024195859640559069080640048394459921277246924009799250564679219635101932071059635038677561227868183388875904947940859317754530505878003544655518389267193053069981710738465996038966808818828307911599174354194076003681225382088366602764330042246320912341600627052287519870658071949614967954493242824842802360612314901481174547875970961435666785560345358274827284269685773561407585855146219171008963752194223369793926136172209523964744451867127814449641062321230343213741907076858542265377039329637324510214110306977169481091514152787330224089886039627265637290097576403651363499166711726374535969076723732097294664149952572029768409193679095180548073546928508643268201776674175135715328645542657102986238655970021393360304058747579724278654925523271787058497782295761737478923538057353087715088951633393580902650722553886907243317505949142370591016423284733664097082333374119126817349998918315680758170768357234624119836472339574278781138867673699263192815018079291314680206655847008912828120781722298448482620087636086122097476150378670119607740343700062078917855552199172276137171877522603207297606806193719480779244334309262204905306330427497758150903483486350562750442519017500099212515203352321291786094983758082107835177940589420536903866712247105006342317650349234051356010171482041298273352212121453877309146231209043341071447225223213940949137893671904419205820768594387457345240199516813574732688959998046337627283788819558134584400609510280547296446615162103556769686179629230506239362808958002477135775930807796492989198773823629200904720783816024126359237627656352564362916504468439866166860112626443451379029950470115243090525448108146906789132947505050039813941821640070264458756336940432211580387721639245779486112322122822316253649849369774337999211706614866889543692094721909522049705381244343476422758681023556205329741513653238107732059053635758484210750178313062446776291288695588730521866260411304086034083556918541599777066803105595418577916611039768569933010068748338890716625808175223272544363355600782107323382176827017293176118896958295077791603218540594729582609766987849745287246753809097817206686885497048933644179720389287460102662931997966074536402441248692140553920945581913764971844813745064161037927371829798564030989414432935821861843011932387647144307696363894190187091696287627177189767055976235575210864703186203335375023361963754860096073831121522552582939799276378664677234031473471222783645705195184035158737719685885322380467521513100602926243618875053002226686762360286316924201611936213031772733418334928640477547339359438173280625706963250738700176539836990468898854408619213683051432774820665758452821360768534541896759215927417853885474875605568596571795998759239269442744087085106553384406958154958302059201939878292829277295050595567667423533707853774158416713594101340148154067932979220763369372297393329952981580402157219225915354456450461716411538564779200341185113303871287593718102019799255552896523135334982973143947608264611556137904879863841091000576935396102687666480726436560206483903714218586697272467382167049663869777211813757483646702150645138180474742264166406037670939253308261846468416228679389232432902919149057495791946417171427873139692613142748594127313354777132567798863423776533130642458635633840270591355712580355804836400285291350564862851580183378913045992451197628114036672748448923496187605099598165684354779776604287456888778235596191698231933128442294546166203666561712195420529518002278316747737292456543847871802801834700138919857105587284482080287291330284908783809865544267060703882634534715368227946344043737397638232386073465287391609292240942788371473536462614693901016373966616801495333045559251239895230826296889445234518195534068816230523694705571109745589106298141483241866488133965089812129318069905650930107529789463624109616038662427457582334594892981997016302137074779714156456585264903749161287855958086742096435380120623889361263345629071828799824474526645400253887474226872821761064736014048665560533351264707166781329921188009921328807385063274890078801547692716873447886057092570653434798385445866672254979257507359006299445717268112819644565687070869689194143409848034049705203325012604760202429240368091185071774862227307547546916202052950323078577554350890212153801087067960126062718011433488689327764168342010509049317166286000475189564631898510548311314080473494863212390057769936225720276756895141485317342111761378447754869454732018884419133707174921741818330393288428894830803542342849913055154743708888877914537623381876105058574542943245204830225661897297610654593991208236480942542479812471480957694392214292492139189873509189068365984297320702689865743332144676745274599696475966874314987704160655007349978056823505581186219174548493604588328146128675113945070747151304378090791001350974149606984201373522251369965137002025507507861837128095591023677275780766266018013039961292498042922083553410275507422761702499989043198230880424296838304655331852266211090053017979199958652961096766777871959672008155559967629258138174955986292488574561586027210236764606081219201306208655421365273698481331915998380828229330064451885159885943671246266352808533687652496872359935884874095040500931445213754272515651804470820938554163652449782500746293254895844173284970600095764697598205864297205419444831904202192298266901887643488907467015965890269625885851796007495158177878316600025553636373388309844043322140505817798408514349284155948122414123769173866620850540026065488168812571528275279149723211096519451434143856915561066074624196245640415758971960794433641915828474172203614935592632009060077613835554095350774291924479109998175253307070985403765444863239926645403989918585693341460097497783305469391785928700718871508017149856637411448165369157197087971183146044378940125110356918532601197083217830039746065321961758865048701677624479287647796435139565739895445489518275993554826909096164334193344612398101780478025755470650083172304990875075344146591086496004497264912721227436141448986777730781181858097780057099718802661647526999897074060211270873220216504947861905635393957928146864895707427898971279577448598550790651294610108744257635514003511441110288747801073224688607605427409506639890538407523277827081106093193856305008710194248106159325891256293540052463218607323637170742620080950404733835402243839585181694597169788708774844613175855249486927178509842335444453748431909822330752399313247135469676250693720385281955201705311027524410838570280954992383716802396558163266986491784666230155129671012471005864985508616290044940398722303734567723959372853692509625996197973434672815729854916732286079196874597195403710848271012048555071465379620371077630496487502026366844004107458012324183672574742957899992064287985856077651621288337013557316391045223019442114628608432986088929232072592962488627622599420172911727447751720028624680946362554503966377199363560289076423546350114416632677983536307245689924780489337802409813882812232125413417030789759315099512007871591659157255517072720017102061356983130594624187014794555845455081723851482832856645748357744433089129257310292148408510535155048512769615952278971692924746891224813935403924220263464301511396667482009134233433531918255029944585367969027199301604873448204788510639791012967417689485676806236142782177324757502353215853356176626383633656085035598280253924561540547903132452228901297865144568342300276830025545968590148991592223758917663930299095301844162612035557824660296600212463679834766132169613893654545717998393706213926791813255557119572765780751188597247413133692991076086926566095723729140587506357963054791407738398222594298826251399730140034447694944883150147548270169475756773224044681650851180456711084309180077331322274030945831126085672809736969742896268727100771326518427245442890451908613426652409449810961738969920597432913239590949218553268613014972152391176011301355849796307603769308697015006261983143281824001372593255370020293110456853829521138348606407368154088859956973846142757935924206044281451043076861358262814952774654253427582543853700939038564555755686214401028187854960669769283875218322379348657236314371561265018101092780418891779647965471363710139117264847634610115426926933793899245003022729645316229251558041598413638874493572775434170276482546785162087291280710490577285019982270273352704767444076157912241522384582606400844161651724147898797411508824272059827652496894991525771584738371902232876128677051024765417259149829172987320572488124719434088263948512722105496028868355809758847445923622291134672429174908765036999973303554981148482528364721371877972690694141188335010543094201465826798639305138361529198438769662119833180499319075454407914452725114530394465573930197923321853425918749254426801176980710507070609222347753912158556964169852157609225424827761530506448480126770367252597156243860685638305643764895491534910952006632409636476218173100759499930216038341372989732435745126345334445478081450276400278644287097822448840731672286102320155225564158604164924162208770568310250195672496490268660427398971723013060677981356722228289085296016548086709493009087448211851764126463383381823826305305017465291274229406851282116985857290432565058364067485901167950374764246354530723156156617536232902677071675746428633885799668096977520998383450175972718679866453605145256700218888217484582967150733001536436300700889677087177030208357570854206678822016326900058000638468098753880357106757894423174502014382572177621882363984193437221393301061143108691429989597508688194219091492815845400274551934516253774936157638443721930542312489825799988853837449870831904950658114581842147345121704698450302167735055090414577079283618722078599003859074281010247009169571760604453615578644982921732994390991050596702779252860428392471239848266961151010063256142067961534904187805955546867085193687177683202166796506607482777021727041309937462516954375487968059686970899953334624242489734508002410664918194867318154222176513277267698940558816144557849122284128824682677233442913417633139251699418815095287383806420474717850739211292281435876017362698755149900261557017837566446895690320755015366248268486179449272070709756852216721211120280117854087902947830912475935758359365857669050933978877239136281829013596520886999482234856549445403797801161804074316479831344151820600090442920851208459153041687461501900637414595681669016205086397564899335766309046114874219636718589092715346838816954623807809681803906907650663235731436782802891471555245374032661828126212849978124758167426209520408288541944208693933649619798688493512824890784308424656471522379943059288265454530698971190689495018251720925393964229173516193023337396338682041413752294919314952797631935702089299113102463354892292496816934145166163151312830642864842939558790793809612138981330486190031166918986988658435725308455060603960977315632901003926681489232130290622458797905075984925461983020322444224946929530635811411235459330508568231773167631654491236101542740992408061960996694494543851786552975521011701231110417387900329489691078065602770148620619682318479706938607068370361087413856735313344112798300600833275770533208241306120316609632942251596397048580861263993893123984227002999658529481203569596143599109767143218750978214762192720106833963670442763158375410962057246143856617501636931906349618540175310374146897670193100238392260260828313271051411420311672372997403738157683741410828364650963313883316463856414840975771635054354488351031430765970663858246015658425735113929631365165860186287183699719443050236189874128709101360110408390923250896058464888229311445186394170071164399907675686719301487994498876147252807907425716445773708669816556804590357774812751866054730217192563038324319994300934198411019349377791096059264989796715823557553723945356972443776697486483132133513657122637714702917049997166091642323604173025729164600425726746301524366552843896506474584616821559650655561705264673240185920538730427311566842658338206864876510020932726186689512783239678380628434137845847846600355729086886664622995388070607943734598452139110030178227616843080967056277847028521668843487716695267022389099563811219944155338717211492488728426181792753037105737344855968766311717809749025189919288508574389310691550798035247547145526573870800989167025602610002129085129474902509599533283917864130583229863033358940492234124861266140232177051064360069507992954148720278458843615945197397523686127110117733415240821197829023493353877890818971383242710205487830869908772657114552177306795471137413379648033739518513535453844714008513507768145939323427152888543981597436633967254778050352477330053735823166637770437126882074535349994048044288580668390628002632913746551144764950460268869296234403502136482931374015106624930748881650656733485741280723093655588366534744476370052726372841227057690731286895721509045500701697083477475367127358946382126660656985809902133845379090510849564803911140276889235941453014443437686826323574773737697502110982802030336271721964675366526349057625602357205824839729562250240848075342304819161568837474508228288119921243271544238619218375243160704056527736385576789945354280501637520721024286461014449665913943251897864842877927587387613809636706835940846626191732055479143660066718683880647699728371848708707942336993972730006422645307873537463315612242259845477737594248935836723269636769020723891673052567509218734136610309596511078644474122454224881890444159375657199149481837316645501002469549397052556474872844852240221883025519588383881133891309523640320987674048199494043676059371227647374668864001199247411411570585344076055313698094984253453912269235009693030726205351175279145306600202819164293207799921280339901858410839377437015950790799948760558822535845645168430004679372245167301316287125526191273853139641531395922516722054325584726753111281449956585786824802850869382208875826665616822101828102536549371514728733422149941011013162126542790555025575307014705111067060852893701930495425132391511571625004602792536476756918057293823448974787810573828204857547392602303216954126763596339643485960955997403843020113827201576160226747353691194772863923928899078003572362538444943980271171713216267878355604075412032306946567718788761564955061706351355383705113391121530245791852719568335031330138090703958005091905384150170430741397624690687089365509990671007002381067237000853753425259817531688331874113874407664198194279169643505575777028202589316959646206865461144348011639723095277760098021885404229504965280509848760915404311653108066974964048739548458040298448581123472111428753021210668581968740295126956746828970970830396039162715168618432114219381123414974443387694433306764749401681869940805929262743940675338292582419741491520365110509485150637317040653867435459616948909804710481964444699862888433919664043921272090689290471084843696194303903457454534615896271493940693864605265157931883817044768333138970502015735016544322418321564924598634880809564541665445315929821054615696244388873567543863935371630402204991363083178259750263801209088567628720814654541893537325961033417812941147136650975121264043488133628980689055502572918477023443180916173134887136114108898914270456681659110518493049562388101767088297576108519846348946263231705870507705060325197066621457609266551948192327661901348055679423639175817233987065308401206398019907099837692915591162440223116534549104596535835682255399191285762865965635228117869226464394327877777428054044666359168805130964007557345099280588230709865668593290531040211391005287184466981044519697522961170832132123205354728334571151017158467773669905054285169169988170019195777873439161867016580475280905477541569240544200028630431450523528229019936501983877982937964212288568647915452156750946481736122739421832623126515477525343423831444151722695038931627235368831620062149205866268541275499435963548839942131030740232581532998603083636374144705274900506210748090682302384995499261372616224291771137646598334593162064143336795999959144967910757011540101199325498723764475931922971760544536585415765134092443462318541261406193578886421878856282899419461715317331083529288692511898518965548534852241003771685614510624889479066426909392937273300795584215526732015525417622303517266615588027979161680706760593442744592261372010928903355952702801850188171915296367386203212510674619822389754398543008894187992756543778210736155808309219769918076588655954799667322629760122349909808653298912856080125973055039875953078372535400309143925590968503092726006619827246109741413608007012967443941648777514343583694883089529488187393363079525354286505530138148699441254027655361839270533463549819616782781397804176412756341177955878436484084089012144376638915008909143093647367623166218721041794572781779042855664331738704851848945371874365314061731329883529042214453167117424021558694003834560804099175942058885239197842877195195256538954977816636713906973169823415184770511123687069308363798484901689527902277261717423523346046980611053571753516698837807471688148116307020504866817173705488933258357498183322576864939869402071691246469829273486513888477537331506340097126186218100882271707675465877469868447401546271086581052252727340459345047571269603961562145154648131473260082306689816905360264307888004902336239882519923801500286363806121304966224890830168904426796196867759306261389942029342561898316413146478851453026643356688092135950222139654180891225415447988418959965376408962878799914893030437883552156433391803627271291592400441085327531089245858489208884468016428758278414541282563236340850530517461046695656575792208770369803303747465072425336862002698616795635214174700486369159358625731996830918091089026582689063888523483263205929597992406244626139836711303549389167165647211743872836228797321234126335248000354797474556684799756662311794682951004742755247211838118481373775766158584120654996266198571902993855269785411037611161654669932956092373851095427368281835404764514932314667012435913489199147746496003340192261443357885582904849949913638873510992050088398708847587110147733269266772767688689432448076909412437286205287331576206411129736341611214515775604003460477574386559514722224828187844718436043378976759328595485487312558073068747140379938152665181325890475512962267427760761403147761459704517138569087623694415215839217198470261976764638346544367868176363270919180021345690332401891381420982434033310363306308656790599284579643396306917507691326910657044444749439013710263592847845690016588251407769084062325533917368375530620938622321855202582528792471002565445903899499299860222252578531781688497895991764389218208940809618353532843344456503182411664513047109026743754069042048428261346964081197820075813785357453111169499995603317389986776290720191866801940747621592631941287888542322444273182884813188742176255431936945614519268042378104382768038288777076776574471617866024033028214344702640379410598656301253187400860828385862342538836644779774002750114459571612584002133760361906697750502203070912775721683437145366073368075750713722289497724595659253793018570478179009241390642849915807712824769693958293110354007088631538671058582282540742354512885173785744041086569814801038742179527733931741772515292289391082884077790032915996005555535196568574330612711850848207467746730331860888352023073604431965049215037434228662453549429041911304337204218149307528747614128591361852927122361969685724685750041882851077877293320287336691690538976533464052688689374551191965674775411977806297372029525016917197736487115858174775893734945130863407623758372213824523493623881999307056339516764668749333316374575137321393675608953730868446915974882166068698816458706212159905069115707084611159061659641270796240815338977337823051983536981701857861804828546077122743135135743655126886931403789628430460626943303974756180948607295352982676498394176119384925879017478921986912971300529828362880305482742609228130288629495946869216818603280390320880624914877169622699733144701258923552763544624397747407428402982455830108159806672158025197958893164675484202320570052066512180056923770692039544547621456408029358624097501902551852698782801162098106889359304992186679214706250366378218556802682870439084425276290058719113620495284110306896432115300296840087092145401520118955037225233597757408527671732267773682155140976597168046776045209678407582121692010474835170258844539441204976466967039917425114036382309415596261939279567331852447503589015447476855021299150126623226493827983235590681844127589704419457134465338315800895267262937812809176748414484727412422975092693279380883425124645462169354323702624484864333590268688454132979679242686739282659536450063226083455936070629049243588583563167000906591333547731913915970853558797251146777841235429929590925071665261167147771581945625770349547113381577471129624083243531310015220406243589610147463225185313399066690577315217614738728680220603106145622091622198170639535798936937403626498830618289143244602094274091885191311075415107116765230039883250360429656912715591625942966136617684883603087367523079052899689038553247683416485248716018516811699595135072704475108609888470083139464668864489836778717151996104079299699652362863748435609724738862421126938080797493870018683880577808543889123832912587069960844148837197957209514083545028750474982546777542605220834474672324836453284284096823964666796320105469235038037885271526662884615856138163008184683456549442327043772945053449749424153825713870313583313069057224805206186175140623189033723307947589247453387105984139740089461575444561612192982365435027972253545014464859899093009844761471524448576385147823248632411926036837526393803179524065175468983299118799956660052246614102542812270602908932955528476608192696537390841763305377098726952180720294426847032224624410632997851614962705957789039626053240526148703540003890209918483250756601263813143310681071995982056970675124383388193515877331251646572272538971554346608100831251709189275962019823856282259238989437287977347756241798676561268463392847496784496610575464030018231912198981433923937518663157970106257447457694165658128282069855887147545188637157589750935248659073386316270940116280578105235254711358940190537543199477989911862394713395223378317625663115078576430826686864905138715947354257481229868311560560340981798325609097709277723329725273800213161098436157100479793051130719575170791515623494999718981860516089555562176090689321603092328456710748718518111434360744870197376509794049991080278970062715845896951948081502524748246856105661145674768346315297666847872416882561147461841675114004627274860369987586087489805507672137653196675140468713797899705631291836480540335279609390897401757873872794667371838005055456089220114041300626792737896438946346028705720765866605986806657357083035209576069561454725864206860662081702775764155410991745887132099572359636958727550411146642097420566591075517284293131276643079431256380069588292003846468180208797013895896848977722637571143141413626224190389038186156687206676119269812477879318226545412502100520975958173868917445759381036807206419467328814607650384171414909995430759948488456188418443078423209436244762843497868891224519674240319552519734071257797787453525901098651988884712791374292541467738475968002200925802171262810651599629019666282752353342089268999901642213783149381448458242272311655704394450796449849972707515320023774512535661978688814938874492456027486181527126897354182148164008934766912408444699848339731594629285539505383326623587827865547771088544131881306355027801310053477295072821226983326192125766558219903680274143890969047607283577310368951752577248718421873471966723808145091317283801743094303158776594563470393354582562690780382046695914989387220453686245242880035577342175052626320020336263769511995364360245179780017281452783391742748066644729777157527936215729320757402001764107439372770304731591066086217201093576966252858382906222342254293730370651349278117336538994403620762934399229971858304922842964114623763345634452661063163941427574156045310891745834133540177481285208773040177246820975177322380765670058300615533838200951252412483312582562427904707174261954651673041662567785378940845006210785670989381559369028694842272391736868699641350996039908906276693516348798621930246242106301286913866984839277042643569613695700639645330319691675688216927438219173366523442446710035260842698968983325983015635217987881021098138818431829678270341684059833368101701584106488563918103208652306522338369437292668963991285804335251875463595643384985551685438443810474415947540564728972490725156478509079360540834447938313630012217623497895921089717568302371245943844405164750854867302080591490819212811261502505693414813525131600328314110223676932169971756032011999064204724113734437442010177599825540719694420006173992240873676620320743206369568462626418811467403763479359584910691034972152451295933597168705593447109251680332188627454085423605241689299799229024555538258966488973832536473425728318846064910945405186761526420725259376741505021482468033111121577967692938844309561714910332027436945231473025718626099817537007629912099236626224376066912812753659582038797857938510591390658735161407656571814697920594480826319467719376094854935375317259234970509807503345691052327715559597356950638290041612589898185819069977561766970834533435640818506772000697788593206005393135900648486624670575467563934950062573411361314669237545600187882531136275791797925562884384854001573771455757766183333700832681236352068510716500436225354000933246746513267482974397420700734731968679255801672174780800911224131219189012444011048205372089139907893311269361206332994565110952885675450487524620459802602896317104936591694370198148984532788197898945453832774254801999656248814143356436134255029917357235944250539452302238720265469246197247548053602547992925431850683468726508763478510555339860665610584206428844518233210350035005141662990525386441602077746175993457176161126654339270796618787748067583413333238274146589449921231527973507424473362003815124981490894572794130556369608890021857992435660758279555462802582946297154923315449804778991255486425062639497809545820998029065039097615801502528335339959071932262919784535617703031297038259277403465188309905218227030857614253271839207366936849501290831208611823635882607805797175912622383264784908904957780403028001286570611993705550923321359283533807930303596289141219644213134857227937862834117594864363556418529842143174890826881734980446147266241218147054352297666846745391027753393152421176225311531873119976350672162527306736292985161752726203492496746693051505153208874822964784001004597488901953209654398932236672511676690041630347243523953626712349763201744796098995061663731337656359407775645363131928732715313061376762588614470171194546016783199127693709147617657818551253595796265057616993767986813788053472305710391175222791365393071581998991718587878709888262548092698171960139518424343801599163846742035879288875913355911601468414434818305291186138106945748346830496238037036928229658856891788469254994114213572082387897563601591444111633833739049454657191745968046013796182428465104219210629798240159752156132149798979060936737651177488392989725872178326764399493041687620125598033237552195355996594396692584640160657829094660485654870933673359331226945328322117796256369856849714547285743204485421812349424936056192881712389832342199110165445269454952011966416013121588667201894181805546294809444917488815702664039757824049935397787307538358930166748701963922560137729075931900966746393491213662392654634280253385538933528462835602760886687444724681040886019346428327643357921075783958210456496971920248997667864959593961739979093043892708026936805149370299082470647495079348959910483798042550457450967362396233915070905719470963099691021659295717457274753581966379350382845535111540615992196870217366811482096914714588817863998380718658816940167850548212989713830728193276448892554844585160796314803447108402041550254192532894553890035435210691525297602460001965921542337384597832948271005125043108482571315648104520350335521086551563837840484721037429882882973449596277763013628499490826158732408958393847092096187351710192130499075761933823469344295257569779855463767622667514285459688921632406878461634766388840430354601635443823880194273174031110650799973506218813967840618201662308590487250398360562564491737174538568978123426346729393077018200912334985079708201431953636536649696827513593401095838284480821676496336618800947730367338933278986367096800159482318896821269983481734032121926188845423863177527125653557811199485762691944092082825158728538949056754542340438577213625726964709265025701298953427977435220959279194887419560768669225586720977729848314200377177257625126043200273078838775117326817993204947784314091642185156837300257265416027024193122492627793635640574742371278650881890607114011563972741672633535665819424414756153509570523511386316865293395504943064017347205718398384783509251517337290680445920205967071333694485317299053922732709815142057480121449191321387819876354586479948377179775450119650787629397282193225713901738222719232538687751069640125637180047862361905400945293348372535188118905771731814097672862696194699191729788691096579719480227922622052721008165184257367879514755302100480001217525037202848984461115778192624483674543306494064510229865161541293704303126548387698330360926482843035436392024328330479100533249576546573093117661077994753412370147002273103073487963144431703676390530808523166929437574141707000546121258962806868297533187304101017189474839040115170485765111855556626298716751516867522185943858502349912660386421618262419790431162524518731211968521408682215895053243776054205557630552602766707678040475925787206454688510088788829157379636624295109675064921586405379527126523619956637110767233293332249895184513318368616027744231877582858547967465067755463931395644356235638215458219935517261827154550317072302833593300156540312297077970991920094820700391460451448202165057410272048826472700924665621566224747310560958695894176100076475876901780212591262699812262434610762581903090188418425922505276014842309323406906783640985932353391004451092896611857633497860256793369312554241573606277993019923062997393661745792604220756721907358413994314006928627756835415045195069097493707933806249615258264742203384762355843012606875296046201358948243292492745759449887610961406631268946786197579339348967633982633773267330461665225939573586040070075397762390642425787463667982715628290644011885685391810145276630889819874805409994525660299496605195683391105869052332539881276450048902579317834448803047425641000280229798719807085981740987973340765998635301056388203403155680817331760783151168804983387914417192781946219689624213864963627062674051038464808141018625641678157597163104476041804093009551006172698537028788800559337218171777767651284634801953481634900519708763112172852261633328329013473165557490143725929263933635678186880463954527234529203926587891222135779786878675953954503485372992891320858073713489034310420495039338196996896546027590270720342861546584025512120208960742321170465977910324515321178724226143044858960242636191777520231064165160890410243711609762695938436613037300760726405638067158380329036256286702043288870621684911173251791855818164660499132074822188721938257092388339503430949409172756103188189254372491998346952725140724924799935827735926779959101087354462606585209268986566931725695103749983612556124531586211291870352373930881666451975530641171156146293807223543150606581074133585817396645265017785572890103007559487417389451092311590822018064761969647081385131666071126060761736031859617794731969638573616500924061389217872836974375790956741162460838672444040345539700429770916538125728116349296209139134431621373374832367745763276695781868808635642951470628183174253085406715223009875637571909973046279825206277833762890635654539555305358311191898307429785453636401063498908904778758140445243546780821661325059358705132891158251096496147823404130175422139151047138666931801711644884930500315767360270323264999393399981021554036096501061700065233090945018434203461606155414858718122861099742137858820518557050359368008052852468316021288542101798196786068031506356363882127354308554771678815071864875510237660754555653832787065081713317518503795417222712966500780222846146052911719101694236793240430712193049957093071430751212279342049681912311937741375886239703683722959364729811151487228761075503537314273059518062739827999955913008785118182342415704866479191987829755450001277720171163141027424616870018202915370485739670968900283727804699470851421696938156126740537434860309592802266772451579634631090964542588021294486787371588275433424394582823646735947926941716139514469446076764274221479343973852743893880304337399363465600205947312950632992107064915932898547618753437211005731544456805673228096159934649406045681677546146174886143090821809094131743784366029502064750918610768627786676495690475918637788992884700553922100083405110917174326965194728717457685385182585966971803331627828081222396382098876870235032126584977940392286419240778567552768823398489451214370421917985328673950662197788179049425909361343194908079482151336888824570876357183547971291416501213903285967725714335825201353534419131110072759120878056750342207633250365529875631628224394976477805856460177219779439774190992609048631798749382842312515076506656250178741269586267952079285155916977102428068119033826858455967496723957518048845732664827354909209236920844393760364155817690646993908101398123261898929047541967206109756122730789020502650913269137978834620663031297414831098468362626316412418139587857220671410680678689111833627252049583209886230081230461453796443795100237128235656549774886333716220032455247432836900070416393624776797481545958065310267290689465158000463390603841124780873580517054684143494026943673151387701145275102752482201781035302848884172445639911661466355714053884307769404696235820217933795326837011433827324654175393867000654377993023256241275641027231095813292821827736389073582381276447395505861029827345267914692606125741149814389087918727360044748658878423200438792285889010471839112732913323334021014973287339632262448951984218661936445987198830519716100100835382023209969748753210660454301534106706660873976677986701608921531465143895538739006130708809582944335765547484254357380495506131358861356378671238855227843406567757882544806813565335486784551793139121793908874913733745556309487988905313937072308839643360529810572240115010603803920925444435007631665610530582691375008470409540885536443167105382036300301595764800532192740369597944419530531467124723764382539457780629460997123748429024283955138340876781341405106252238817810744505488806161781340662743488578020067970016708030671148103622457795517962306456323288815842244743266510652078549231958427294384728511825624526306727638107659663209577629490918125584491812489774597234370164214398347700809859298111217920168662386423558118404273862217903054800685116956752863653212838073735696361409145618033897813327071218071111962381983359408683104459833586032845593374198557932679259379402134647980299500299959963176674694563497088192960156526471072635889063886388702068243288786434541099806371894542204390110067636144976878304904076506596205560372413979004312037604219219730324536510182078834542345781706515236837448037835573676681609132953259558630249851754052592260718399980467916095922553157400928240430752981660589933286217726878901679693596099513115288339808143539344883345864413722119577575238706342829486675342985999573839687712806263946543397961981296042491362772273629253723207292335090502594143521588200508194757686297467758610125737339226090848822740688644659983364490865430704875034662157145532196254423606660601116407147267386568956292653822802813745901234203373956750874604866042708110033170136427322197221577507561183014703434354108876911373267844233089447607795397186484549751056554674662098820835276217604741080618674944904879240140229739131856863318655853152447677656100879929202464336762396571843552396201294311410795438728228788620176913040327503565815069390631531798664839849038518869591599775185405608790261514148749993489076840241838382965185650436272529411185093003967576240521973699368384489985071914361756193908517965346638585323172764905301558861946167324744643232443599443731844754617305814921090011036455470016727535931545290379185105601691040464987215597330507134787180623987245377661127263212422997781149289344800096416962252736052231205351333957388822816575888928196823585713178267222611530165274905648497364954183797180425443205400273507315755084349709137043612914372396016607004020665211862012161842568274161956711432668971367743195024038976493787212438106117986010020184846632732035079133865579228168728726010169043212354444401494459738457669094512483666180660837229537971276724952291852471178135086475767074702969143407247911681224275870246880367320448141791836397454289498894812503491904963199393024421156604550778125676651268664387660159003481447900235032354241179324715979129506052269660160600690090897721984804025089435816353147915262770000560373260994112755897227311501383810889293263661985297959175750618603252400059426731575013772586878251431286171250066815646369453960213406015295892461201161490816698544704806632084387117243438111877073790594252825153829911738120510679892405941460517610611553060295864726937895585487599923003537232178902752996657005386862629099149926617280357195150159451744443695384190211362602920726902206849698862332874423075815730625088398919569631565861310771349907750321865026702396743829803781707754042754643898109166601299365909702745614820919845072283354315748055194827182142555232207723795804879021696631847150024481679598342788889904035838818480924679196171064390359527140564950931823187583023151168024864478356717626575529893557860678809247731986508069401618540440449141218535944654785343236902451580550368439746266098754094793393233447567589800606129751869409033483297905471036514661717225768971748680868005322373129799964497602120032379324507329052031329048701420587318887476552654755718856419965860789803443880477597950323465430024550994107752663760830530821250275697294087056366918907182073383387718673964202576491491398086401522607550296910049741245598454506302735182631092681207648464313479566534260287569034577727057731156723249847935835201734678072103663549668185188372953291172158186988024670624085092354312976279521646153781759463671520173499799971659270121976575427556160651767003716991800602596728332614423205367583759986948330387142326452233065741061139976928735837716907633488707945546285510454116428458881827532452410959178239739321088697491115053016690432853344635407096707575483356892585261038871081751027195691573546451966392373578612770276066826874999154797812638984114760894820777912237595086514114475665316365068591836918035348022965294291112052866397226797113580170106706102014736733762896406298026404448200827072148856429898685568085631333119690668294748916407101632626085154451607026774328241195212257731207023916123402790497895504131851169004641437749794142505294585861933545502971675161116050491667430364624248087592661451773223500300957654434861981770203608739622667299028558971602228973479778726499238511358829552835541742475818606345623216647840753523360735449536988319928976885713801243272171785867910411697706996894363911864577120330188256077435510238926467045303906021185536809671025263424817877464272292913886718960770247370133799396495355190381376053422799208318944269928676492215169563615408847438453247992897084675272678272698149640630532365710246239436227132412693422540117450610778945721846070228963812593503333214718942964913577643753667561290326166272236658928733443590610095788689297636151876936701464174591970434913201099755707745801208790766992635343027827563129784372237854524552919888702471340374396287208210298691043341553864045407831507004376052809848181384798523403955137874857939628901622678420119477098057313002393546723353612435236369196799833911684923406420071929380518447796142910982572571870231031957842835163911914083823153902703048728479848675399952674821927507243932947633834058984145002311288790155170728312044186430032364450209547456252311924502090793538568494400894635507503278953606615821971903930734062388180946383705427392564778197335359567811068919807188913829366227063457076055668678883485111921457680160876370058513473386488979151872803277896087287007499478359554413176728331859205425737750664758806229861609978944603734010469121785842600929636299484754102489459868663409934619510058865483657901168923020078688216490448969594847301009398101837709664870631057218802454432406933067290169043940115279727295477219142347513965575986358774280244153012604728845791668454256043461122049772224054132169050201995735797645403629184165904587625322915624506973519492431817163166405740682261672597321051901608554605181085896205201439546805579115880488617981895727795128661777676563276427557466507978844339209885664685396949423995656285944911649520302856933477730969274380089070518130337550348924404289541241038342465513924148314117723270411466351136500685092748810043949509804655930841560667969591170485952179063090866665919886035616783258408687019397801033743373176252139517699274344414353958675948823708567679343235653078714469706777049913029562409524769406720685915663422070751867095275037803619063668054896811950935728843377929324697944198541340815623347385474174390478440965514135335967757422343351762610250327108254009172720748957801394225812416224499244408149343556345799294287387804107821117002359764294571555300029989523456090336824274836071993191386481889406676272366156471224659671332071051767804176036563111129410868910704492076133929890265435458274334186548829748985369347464380998850953924998022733965694130737475252321607024931026656302839598992249011858972019518723188632805451901827977874781170207178768108213128369644449616968847629975552372171066474170357222312617012703360036066965927180875290967552729093276417607493619723772718892400645582827648030771021136158982812720947867212342243503310524431916326319780867883008626569524486628230910573427439200060980862772459408956677060131836816076733397337264687882289938934612620628213302902919576988493466456489623234605050114473167127430509410519001327053496084426847096040242583893420482183861878621975677897965849477889688415519360010621572530716740045844177166219972274460278345080263719092326767058194614894471310420440933829808393971417717842053966246055436270944333088509754885019111529139537921519419020776864864817413535278679580718536175029381121406588721407330758926734685315645154706498502578037106413040690495538000697057705657717133786251514335897546219387396030995439573535597265998539739604418266125180093735467563298469436082799976429062308309796562600858988825497048264881519223492751840615062095323430184110101262205985052746916156375611265436242989535968355423114478495709596241155519641657108122329806214610757562436019211883567460578181652110529401225846862731844712370278185981019019958090177333841791710506872467787309997133374593796634589642536436755044680038713756496441388916321677764069873076878632929474930904035492582162603657996476414044325160960675157082272819694928935945497268470482482693589751968965066283306521478493565113410894748831977100480931250190318030171571956146035240873837595002204285189436054032692202882556304074005002368720270752826746322169360920339545372697917608529360176707175500476337499549277475039425188505179258252775834795084559239366508188758765297163560405142397322046314407013432284212650598002307019565788412829326013031758706803477917974209713068625069123629449394059012290903851694979162900299173160704877446084451612439903409579030758354081119853913997892715847914978367330393168023719503724648411151027069622560144808668961534586695559460694035115081374402730237694471246166068669446200667310601593987318317797720219951654379427771553494307529898607803359970446154516776256613365628113908114514160639862456506296520044404790707109933660922834610112106052605487602121552604179439410468591314363400204194834806964998886383909006614629946533122655780983362681837203961567648357713093544762140400570637660759107292622342571397367544174429621177649899952733633467151154709121283250930229092519931568283581449709825262949426798004011330315280578102891522155307666459126268337607643910554769490725272143275385505956976543186932333617822121855309065972839530075352371806805626933238746522267377433090770285310690206535024227511649108463841775557772426344952039380055379310293308050799463091275419952504608817886034343144148626259138572733001711507170681482894343834643737558275324661137476546483208210663332039258747260734749953173507838904503666305426938258119754893946318008997652416987491393861484219633686009892873174968283755279822559651372908672915016610525493468120595495599021194476153405009980592155778376759866888385560530885831499418101230720129584794243012962297914760845011440713362037958399056805556105997096659371501008450534034047786706633049021206717162892955800757198318279685974509639804281344335412588044584604802927661079069464761129919318901775884758494741734374390670671569182442865775040400662587780887387758708931244649830276123274246374334413693004300370366234376908012013258107806332263791776696818628400079106373294529798441226796506997404630636293249395766236098833239585515694269711581064414761269517579975772191286936200238359041756620293341502946593789095350943975365014027459436751318833767333776576503040489162359945492571633650762431586310072424492594824400099824434719736850035342788264754835152851889789656018624326240066991193257744222636626097845926724096387863056440199413461606425106301187156856668929562131880639647932664159503417360833883310348843189417842415019797364037598158279015974159612821599881565041116893578961943310517062943442410413711876961257094780492623383739652748896205559722891833167859603408100973467000211633305389265775259443156212322084287096429353240337299841860517756388593083774469412351853074730961166551641555369577954173181039803866053367897240551457682608128010458255396025962370912560305457851973553556390213901670108302322130520952183391090864471577119208997860820741971456753953110118997980479511080780296951535369211701252602477058713445576171921113695864571223884284041085542997601912598056420766462260093302506812356723501557802438415262070616527713997374507400703514998805953555514429161810324184417679310567971994777781209172742815630626871799534081255218533713540043100372368271748468823847146110063707208761498249257635824287150367057687101543654913069214045242596776336352775919994794817041698889044726633369691378000820824716537846553025635877332494623367159262010574893351336655063943139061797510790425016312835963838820977498427196126670160157516723420688217127552621716104172335777620719681408807534673305865684854788830243408079246296960782152213058624558589124203043497935153209237103840061707803199346701749331907605439567473624614510607397809304603946673262876143613845759479211370937527817863051922698609900864994692689098540544429242260363565756886316897626100516917298608293236440323720000725348005756923561463942841220070823256304323375870628733521503455293145172052116008645872107385032779990141471236875252928461135472074063563945692389073684313212962932161418088834392245276610195806868922521075743163270225704182806330649656532078883199110927257408783703097182833789243343389892136940748221580430358441089090668481400224010870982119240548289646545719744050500673956700213009823347875796227444012618364107403303458988750452920566127194073608590330209664413488248971059434352991589592045302846053342488108797956872027984077872206585423420074259927213497409931660036891307511250147302864698360185329381879922007645896772035418682044392930667236430080730954268443681649230837390959834103743979019274993611080368815458611196541509257614587097818181851600875446399892675921422734559145042092423931065773605717378731694620144332456599916313590913349991416656643496055651248682913800387233447173951714219518029585016934272010426811261292147917039899568307168863504274909721840424991912533418455980530277757824058905979304300832075957835509984665632142361436656953101977853475983858769386587300556537438749305121646808745262547460541379324976547177542707844373248390378958003844820707246787138657677674176744748840939167775694857344045118335054679074790645911740555351228035157842300504220472984159013973813253083193291754861058021654020906107906406000574144777126208057320027202174667807590243423898022057815842082426717728405616014980129108795745009811196919320137117754081486309442704171162405407334687908592839449073047809011046628259206178517621144447487083712541061051301442020874035580032704051897719519933303547954063863350096205365683693368548751281834696164184142159381309750648616209987689336187004887789375899286851131505780514802991810423168034250557894989211231350066114036740593768847247957720769046760959170723055895471378473675479533420026496680620915724584373136106858351650450494654491284809746597475330295346838062192091252298757442935185633356470536975340168867642180140618646349343630988313591719906915853944861470148740410446444778212354583948594072945637653859010926028659697724092309451502554913042230179280505822223844507710001048094511585569664005166202992082589359967654921784851091622083072265798785870128681676748086972852891699502379551499700346499106023707253708279590867170023809811825137798554963246360610084379414782796410033505582940674924452320822800651784697448208807531707344527355184701994835458012585524880804650648619290524897200895159795858401099985550899536163437666978371356885137285611572076964844410209758357480139517200953932058434906837322442978013231572113208423380488879496174278368519333637421210083397067720476362314224358344260348076917150233364250288745644544424019613552108568102233837902936306177974392812608806001914308397154641344974896284044703940225598018896440629954835953719504740937808172394980495432620638704755324920148894625948910859056774184643474001370912501299600067600638119860715844005084019319910427309283773240476039974938906086506547600893801040072226643392015730033533806252401007876296221519580792728727187637855133800080275792712704945039303487692033559532503978157657418499775902006446455130526933243840315906639255969316244257469285342570477030687657480317128978334190965569588442075355811235709584829662118795514057215768906147868812810151170940192803051620926144652592360077432292930847550043495162973064769681537180862777681399921618628970522363009529396171505961179371377227114129900261855210015633654921176722285026211941853047903914867758643528674998483087113133098806996227778618009026917701467059525779386988771367378890097882055864177278600220130891716051201340702371453369987749016223690963935781277530066563005235993100825053835956460543297350225400072438171095096393485939129659784530604896869858469934274916911247259323922407178652733676761114976147769244055701892857063608328600418259658385160987876996787354190071797999337158169341220011891533876982135376048376418733980866157904510419280483580201982486818769205770945289019117654403708303102565240288518540034176360243983278011789234777818959663093116417728648394744445488082742288671010326983677269007550727598768146654373489176543615407937409441158537730151608776127979942070096264162183234110073357168813869964672129992078748962089930763183384468014230854049162742359624051345906487379799814070815606224925123662972884098484637427862212353911046878043867478898042641866962308778274877998641239314434005105045195186597307329217215861642964321543999856509451205742259219927427937390944063880885252170127241986873850720912398638748657093324866435399341287242277507323577467662716589502090090958633308701691979135993212306511683256306343273569803898264061277293040457476064251789776122372117967612514450189658979548147031364859973700166351384713102138794262937887992183804798449930651837907732293918743590160901894211761556648223847519082886434813314558661237696184104481771102924613044665366533001404580875778979761819561070058835993068286130195848252488678632337998456785550713571185662949089313462632898900422792500052305466175548681826902976281237228651892956938788031915651480477032676844492826822709669897239606083531703574474754071180569417593392425984837464298107658299507867954562704995576103814892832051793577097897198707652837378140954101113398044394268435346973439723582782303221811146265398079562627746090888133704366905353581700208191460435472518291705889633088284096339457032849583310749749825911463773283120302414127167121031097345498036493810076338901332156591320403238362959060537425632771547401432210461462261406111714184205236643528004972614865506052923324427411922098757694678571097480814617956121927799758112330108594286908116232469904347643965272088784004128196981673759020837538869930976978510164086735528710495388098246902290708599616257866812058089406074478452097778949622300752755184810177528073531900147380667982205745335192297559536989726740699808641051927274287129746272955324278467243017652294604723431748738303597148465523758755537255562339944005861296951212337032505398242087887532110179716152150241661261544042282953236252809070418169822920945984251243164269074653748133938173087246450299557048511711796854506801194025250093015292063859168567660062211226418030648376999267860999744588369932406128462671591708232480477355047705965028866226744750868159765998051793011377172095240905765863090660170805771330449219041684260269719193104832439764081067615683072980237551978979342405932218361305629312172685470737615444390901527306874626902093998442038360368530921986377650838071179651231399115362031138209487033704340536390104562542498266147055361604069166548603846623215786211359838239132732206254976167517122916243384527367622500592533707586619249999428451776726882873372588108293363209649612306813583891482167594311032346629812021542378822042422705346016958311869191736157504962191996421772571893053216733949339939503596193724256965877899142313625336312829624145978224613304362764817964701001590175401004936025359633324860305921055486448572256794272385188582502276212815780288481860585926100165080325495980263959127356184264238898397519166577876222035777031786267703243202368023770602684774807453995892038074626713454631731576200238999986956152546808128652902887456832965491482178197386865514993691405266001117317916170311139723374615639928860323472260613174122048412135569009389965433007315263960807923978325179977366149962617739070170400880500489185946436409690784020996023852839413388020020454851713429869526585771551618293202104174048329343579264805440177135563496120466083117731705216856040231578394854455932771836873941592681684633034936455916701907661121241149007074128761485136484083505656402756209845959691322514009863819929883548216540583794102781879992469100202703848337311601245145097024880703858704941114247788280992394839551065294418615269564337987278538655406825738823355013519174814248706316669669245820283614107142845133056387474738585165333448267010480750520779324115730535663752142530207745324386952047335396047603779276290975198501471764271159708834611766462413713004606245459106999099960282299841842382632409273570766752165872094577149783809551337046298602946984948315109169235784608430284796924580550222713024388441003829977289291408366446051762535220197361800926923441084668732831546951834580143298328442975843412261550403642378165389558235933784181555048603215033008805757693194150115006855289347078345140423548539593399394397282259305227414006910665183962689494255206205981578012211652568205213099161305831613231604815342673359879296848123288049705387771500058849315906247851862512791361567972793178379636914440463441014356015161975461262698884071457468020166037608262733248556514307568166404091353620358204798638933601016345160297511758787696576509221115085010624373043675891882046286571042445800102566891711640301457276018949779062093170534918392177645773231183910244862512103951201496741143916767968673690814079699354366578337965320329524600883516957682037531267380572160627441364488379454794637817150218832716098505008314947623121048720455676213631944903604910229947221224083229152144671924188039663696409274346315156125792372132913857693430524950943428949588437716960968864724019809515523263114555429918072304205376420078062201691594450090455989967156313347310221200911124119828603604160404047267459228313249803196718298667676469808274343772029699749499596793064074000572056069613258324740551600987781293535748577154935825048435138797726012111600148634082177571163280581030053219739854737750290897479478619439234425171071475369195361575532630110687700414026930360950739226208861850608254865546305360985687280068461260462242704855071159549368161147390724271299479211913805332887820623069902117552403161506339453610603729454889145071731538950787675187966086246484133448425102387351726507985902961192447471676874775008105007579721500273930408800082622962560223570289455016358168410471384305961817076516311170767670152089986182317648253440672068571950862019461626800507112719047316261277399206579968802779166426445147815291321164508473542328554521026153169167321242630391854936568347828071717539728757951377555654753101013168624752589423056116872315761242690739123992232560639047693865007978916116868261877638896888415500022063464255900133707675755130507137354383758289580264534455586882307861676347266438778748124028139412429175754191581677003548027120030224332791660075458424087650067027813006686762232851509976193818355373526758324253636852479406115441572450114261006311426203877740743086107944667506051776535766206847961079970216080593633511655434574819652976687219136231685663865044994502911105847526959253705173615376186100341678684297120756997184392754961386939412154236020309729182499518504430033739247980416314552695574342445612754451244251312663919778132481369301257600285878514275807323990468604152083554429998731457319651288605686718474773102872629743854022543648404173730702763796992554889845229803524928450148608280720436750917343694055455350667834839682206857008839666758326399384087000472706828672543040373467411958729013564531514703168237048976809868835021707638464916370166677295125756610436634045232676645846672332995712891239798951453566449590376854118414467510339938954858866108437090884528880149823986196744699711154869526399944498533477635346203486744162209591228644155313303650095057308813773346138657812256947485097208092728618927038090324870118794220084853596875647609475386233604313056830953144440146422857580197075931053348412768634257405188441288044630433991668083938453343414045077017885183664374751545989534471664389960195251047621003886703057459423784970868107669962772001532675771368990338393982154801755431978235376037748080540909900924219449938859883845918361994494018763762641929742335162751505559740080798939822016772915994260904993065657167909396014041997406345092308050684777274942697409754255377182389038621941308651619034335748172009613603888876640351752746837564297313355350182181763892180863375630988572668122911387730334323475394427129799273640948811166526671496874387087060246488580837445773411367182410425276089507294349823824682625957738240751280367329452117289403459287239976478663038106431187929853167049118100081448698207095558841659797599798227807483755969728871373070732320747326432252541437202890610748252677757797906468466026376819760214198668992678541774122654192400728391157105977691645733051029326703137206137306912410504969482418251229445466401155044528874423227993316309592874371984269664121638097187910970683759993806044127986340440703852327663064330724111254243018029190567042696646269923990944246752701512154151754092127742907942108225294652054558645405967795260218927411483916348066659966113654000654559384379162794994611279229262559473065365888936073085516199613589203932242369752496404509378659151693054010944067412910765648930596673194828259470501180760990289379100830041367343148529075229151525928164517488958332227380839811106017500115701756613394076896117364364670793858700908042765796654794314945325062900854283309643525103314324646885510004407240011182915403534756977681309252285204097453403954841702995845241711989929665742398133762582414718919457005238482521738420310160047082918297053008024463378289368803467037892916764070961870487022800962949015787026393038098024562154946790421109301435702582407995591502128888314136082862840219207358444909047591012901707406965755302750742053024491893254026973989996040597549115430346502141625624016945608407763284637798113241698976707471930109935960254214812522442233235852923651600245016751922377617857833751345830853430670507218492995391298958416196212310381518864005660336315563039206092712015306505580861179073751829443807310869440851550053162307683145565025864973106516274733740013886504854144580644915857497378076749784551032220568694125752328528942254506175113456427245713591952360971526102352905846087738187821482275240551125936498041736037670600079791731876784484913089090759486573454757649683945383425780372488119717880944588500889660199037566271404530156504961747560330698603702923522771751137856928916634564667413158292172626373117008227871417747455112035901214112895572827154932839114730121583103881956755395965235230055445381565013677361820988004218130230324820887280761607673449335097005300688389699684093963185518512438925055615432097795346369772550620978984114691836263195962198036576700412147530960787965186234440416332029282624019256815641703822014497474297449425472682829527408668925303395114994553985196374915497602507647365270497460604732974305814517977996755846515643092314955555734689062817529949718919447988305899544463197537584093085654716283650984269045482819258022836695600997532066229768826687969008716241209746270738741766616573222609386459208422591084436992223599425613768309002154606618395277170026710827111224223828746066710386506230440990428678700047256675431657547525394036818422130355671001983207566685399188393171523524976417142703770001558932913109149459930470747690888842251497244098939490693983462474911700423247696370904843501198417290858155819511441523404616294277025961713708822002812235258940719031308517025600289501817462296925723365848109607089455861503548916542033419953383925367377947343319746572740562906565791597912378259888071951168414119539267299140218279925491159060173337174855532851584501356987882262047983960180315688861831888673905363674449094036790099245002939864025996572535509373547178969818071767137679246568817947464471469066703507916376109953165241906477088105147967216103296980645822074905038495965154447100301944810156223759720674394542681427099766566985473155484853620817528182338906103515836703097848055165506983593630736203490715125220329571120464371363711715086421295751247478769067254006142764468358932010532643023212058149506350552914728840617607881680283708272809093689368419261550952599520045354936803913356117650836356549401647926370780741059981330718690100055122996507289903501470228704244905660575465582540154896910461930399812674127453957445579740095789579070428282703645822747309486526242464201361772090626253743493960910412341231839345085265873022198157586502943927845039405481094721211591422714644672370932120933114935704173832418353353809834680615369355761110877508841836740607381560835145938278153452038547709333860070245399493447396299784780235366151062311439548213045965976725948519308480723388692232233745194354584845044982699269450465288928380842655816583749699144964291492723077144913680868847805718341661537187214961474359244997516509249005077882789221369301978783045327347972820330271777749111574429817554407713832606602037547027489532925987165997973363561208471685516836951092115894074978354791726575459407353669903126775140990336213167630610816303335826677960852345816465863124697483837074822545472687292203215543394219200314226936755767420271680106255079947229846924345532705265857926238448226642661662745918564561892811477050085720169458844119622665356388817512324481404903525062211768381514810292832541898422404067003343458457078336492064552933269357013856818591111351791174849252214170032176799516271592420974698356159232079053693554671562267366824999263472930620600798085311107591281022276341895195808762838884170266953400724750815461866881032150421528956264179335585931168031304787171271429312361685554321771515972037491138383476036970808938528771347617766377628594698862621170507289429899054656192809613055990137426929223920912550579098660684371681355268960415267670066928737073115781745618343441894178877066709381570157260800764754667984951703255166862127282311503609635707721035422363882291118084582958206086473629004735273748918238442810866402483171030440858387834264501933926164720776961949925272125976308927485944137249052536640981912948652561454041542753019908383741064838269821172476128426438939447606734720236734488761337111291911085536378021140114262168780516421241167547869117769581731896583192259154197361440639896330255304146201692073856702665000088288993226671723620456300769264509196618559284002362448337827436601653331965310672619425929972551455188790581026162043869027386143104157470254212817334172912983729107798707686243591271416501242036346025021054554427731568410053785660153817312941654699026517024324250922804273052755885109172572837947318195039033814742593792141080551274901924149449451947849366941808915548521697209074541999091635580195534921738538982439323652393707723152785058712273209389122461508175600876754957853175397415434779396320717999200935157289159498461318591164346031749742337395824945071100152720321115817494805117736331916569057876483171492035413621701085172537268141128375038183778569362628930458129093466588107930798467135893571229202024017679021796433222580914869221325632488308981384540723598844938656082750087826368552832974348209686954254495465076538323761957849714140698869754503841524493418999158085540918708337182074937044480291747058457102416242726757323624854481983535104193560305460915650002646194584212238332501979715374419132182748147113709843149402932819162936957522520317796941821437484135654961466257214901090987765022056058161651828634267743687416285793479467156080856454471278325569190292649082527324047411193140782904977230752191483778252096570318021339402250365968707654174734151435611672156587091070490858188731337431288625298302305360163804672398964055369127762102285244455663723980205443295269656613874554237236990711246507704407208751125262504230345183557247505724840115147466050776151997128794539363661699627970923557113369028270834053090778766161912688352706451272951866013263563996828633205963000912301477444000264934002318803975640565184249068120247941603035917974127924287601237975953970748165108710819040082760263670883387765057224379279081769946863757361180341943387397377089931372386658626567387019904053702433961310933553682049868180333167842162182100638818132850388555242228949883869295950194089268149587031074668851481324526315449754455614769040400707124959330920705324389895563323177424618463377912937165326531843197760718142063689942167744641822409863336262895150318528099373008306495949697995287120122667442356750000890074717326776140478387236397198760964855432383925354358318162289192143268805451623656401326828786348654824763085594594597574982591749717124641611694625045612311329041222628357750313702752059135204554365731600871258560918615041016005910002172269686077164689958425472816843365271223198177977692182089441931794908070838929958252116965494572235070713010753988104040555183292579963508772330163417874420001562245505708102333111951282307758643693663325874725993693341987826097462426004796257362863736492520719528796970783583591330194236876304804186343176474173978347481564012390790847268017592635186759207202087144734698636744826966314179438397362153839248702658157076611664321359754108282524399394025596154138497329220758863465711020944680908638055818242999574618386035425823337519931135184076807071393078825731419007581488085547110814332790767118380945129606899640361915202115920264743247132541729418432014372799276241199263225391888088016711155355483531398080017344225122055174382703675745980110603877600163323542952341486325563605858978486774263034288482737183154897348066727248212416745948743074640192873421235486541896305481381356971815631812592645986861464763276514078388809514905687429502825552375336102721327809581866682878553260649436386810762029091521007233344938106220391723137582399915969348896130097913346611220358496997819368967810814698261050008174351769976077087486234720001094737546371097739604803994930801593330243081863785677538218805733174655608089004072154866847134738246958851971392918008774762260271518808477259385250195268949853097464365800789278972244134247170728848015710121170053186705813646064591239977225015782087223585458831740445763090186327162417367849394609199576326169404959101199464002037129022159811697533158289074461317334146315736306303387456623211019760063314869696599533341555706391276967105853126059587211041643680650573950545133210461869027308895712558816226799153022571182459337719354232148018607514706522306729194768845253541333313980739153312029283480306017254719886480775062868713034982667489704480238526899966710582999252319472862864207811893532318544353187005965704745889417279951544011050766409582191398735967194601555748588689187260944082374377119155269557499388402419189796934562588208665270193125559765420959394439094092854012192842407203662036927510497730379435684197203037250734270743301933166264187449865315577643536759215516919706863330115329612728164212490253105633295038448452167388599315206861881946515005659302019817740263606743190758199243024782012567928813692239838855949715795902605199882273380368194770667495244121844388018075911098401044354964397698940355986436450259390933612096864956468824112305115207001524640403392483086873414713401292181527729652167016410898018940913430833720882469356461804242074778453057287562341670682818408797218634505355653778574355251060328456372698758409328170563157495180414130788451478033253164881141902871717733183189958039623252031640934008492185851796529856743382190285909529745592859004310046257442053318406019687127150339060939780751899235066891602201067584804929199091954268435414665167600130102022184603584183627742316721165005776498138052346309414932021541260820356441804024204538063817227352001010510324414462220127446820134070724868222974979258536140054639847324319897345275586671103534830591867640323366100544689268893738940417630091919309120651574791329640547594570394679898551223021229404856703155949313740092069955276433743663329951505874367700386498984573102608243738319484445830744826368836072795973113345695324274721064919863731873815017376572745253014322819017198789815202372961238365980781469796124736325550699648085824717717904096657226559946908892248258127669757707859172687775874796615406304238526323189999445687522140503982298944700127739784598229004222966564324728069264477102974576857835976780265559658881457826617448686641920642149099245502443173935777530129337916858836073960727153381318785175698258514169450422049354443577641757891434961193487675067611803951243290951651164318232395521551557327858321586133787835982487662225042531033226043283220806473845006409509040547860838197556968253329145941335397630495688126570679963253097623651273421876869541844540451121406003765537039331615181464171086763242018348796337191174525096672555569919978597382592403479684814056975144053654952710595490291003749875599280433499211769854082284256502578816080434228443602233144843465818524831265544632738814043128170740299922840037753647837719678303095760148553020355671780705834049745554706320890537851091596326539690603193712144819874199066252905523046219385050718921861960415643591222491215401835118368018299562254422735029082428591813426535891988691689551785993230411850833850234773247524661403428691023350793761113592402181590857579992843293768185101363908715448322080662582528603706834470945646595759584790340334151978274119346294526990586305774609855908650130743666655747833115699538566519090512256773147156658373797510827222910886218090772141782455244903281360098100719741736349622732569626863525566682256430731045283078468683138878942105367265991054770657377376791926627066259059322379663271825737971648220839777270534157804427879579282069411049254158516343265620388937637059288882437456204991110980522710439384917981367038705461418558284442026767221663434446660681079514537788425963752597531361607381424287402914962728753915177564641848191353278576234539015956088603832817034138054171171262218852252523169049826895673448668487229828219823864786951071756138244134976915725919672543078816088691147319221077982061618077992283889832706520362081395238640500381246645728293334214862962858585787557381461917170554407630040731598929569859332003198188973959194111823119591580711955962260941314296271002666001105004370865687714350878434993174255962038131479164544492410568366147273186574644179012284523714795853094457689435255976049599218260346488891829243574533094920295729375543509284305205715820727241906741633486943439410686862587639591675742345803515523331328855054041343958537676440915932443732637523463383746733615097269203626740015867411853198999708480072989509499424690540618224662938565790500781611748068172215706238459695295745282241364471508280101905123808395955441405616394854062040033703667682706347329900736575639478268785810205497309763795519262632506943663239167438309893004231875902471629515642535988239637601091395901859085439535018163979363652938832127381449909338491328252067235495243002985365095094587026477732229755586173913898114714708564645503941397756477318562031294234242854974383419020461536889274330911760751302195445582804404804229921221157448482024100654075343573834128171765986562780841835878201201754932001950497274617393509356345638035663309380247120476989397754278159975775346362571716633986385313367889168616118843796422129361270261969144526980304503965313652489894092861678124670666576881781610910267956230211866579833188204384249102986124527425379166179734407113098885732011911833833042433477959660900236405836865760426614709348030540034127816451268703960195071639358397654585675946753671994740060836159191828177898096284307131880022324388241961395805573023382561064381519848630668517017770569256896695232045910998808968617371367073426375738232478817167232135558941142100047324251761977439532482084677269787617161917726241139924994842573802762670023633633558677475956102036171273514229013229218700327478954357581715261338380520893234038858596247553179336647389155778457426449636585149965458179923131792685058390947972799893487319201092033483105669238854165312262880752822333586141398468696212446500010584422503855541512729961852536938505932807893287914617015936638744055007968003468631117730336946706152644671523447699582737069096220063374389518662853576267860996398688230796324784142111649825151664491588214659511594848046600019616707220022988288163660476899856342723010577955696595738482206305580883038815978593864808722216952653849596021433338393833613811284572323452680252884790364297430076314634952206305495909418056376322731939675365107750524476771539775542314496497693302473142270651865156219201671166966931480542328874691405048433430148109605659996993953855359863095748611588552215382969709450039749583147447383479726669065169927630604893114630132704866546785314716277054410373518668048060578443721912639132383090151146107514835909127169317599833523504102528073644323953693337421568117545973613520070741883080687078043212759873735104954039212727137093419140909728940487142846756782733938131164934771797226696526934315198023452286351941015456494704336582059747529693868430365999238384291291358111588294848914075944511065320584983825946563850659091739970242593084057665079024708738845795271035126182567942401352872857125825990656998874634741958850852602582195509411079761531597984541117390900862675935629272154407151663858776276098789728654671571213257139892081138050180352958548263340648462914800114980316825243726716230067934947276521851308647208295270606931025337635543107234993067033503766054752886152574954008426952915953479243197948219693648493630223753592841855895447441241230160460904069736075769170262696439654530029579922030203598174044519760446845452126663684747438558468002719454077365660761841310863357703982074979295000743734220764932540484006984654727260785994445683415492345367617659512827830073396404563301749550536220548666088113661644080837530350668437447356344446430365628027975460729548064170788672140973694075688383226332007046790353987302629601640661134964405885600419862759105515040397611100013651278170679279581601757081700792324147616834051137007215620279575449509705906026234255421056117934802418998103473371616348151146061826327170322261884723559610162745044032697036384118599283054958319577242860876424304748601729159010137730896628628923469065330541421590049080994183339813579586265339013657434195637991571867696208055159216894302538348086349988380524033208894045513938660084606617868891775377780018238627099394217767438491318302528949087572846163786004134687174651726331024653584580557742124669836465014909298824963308062700235979632312173017424486135881955786599168132181620304305396282645514461434529678838836017521215420294081206755413817128628969772965627774280581014654520399273994470771409623819402670399836619845329922209261108268259429706186071052151663878960294356377308071606329228776269905652158268468272496933120094271577100079077553153124675887334633041866037091889365502418954911295367352490742762351624592501227937562949451345894140370577898471749871056843940685594575469241996300766179661509895734696627710427366182854830234237544916005437484734339816475688693522107650048205251981654558147749772038804510324666777362777226526931978900125303824276526834357719107877166914653967023764131143664776850462816166348184427685729436008908199670048499279228981091925157049557132249964202846758393575622562188896362185573571905707964050098047290414880452064245559601364760590466272142684651127569728242884673796346300215891312160440186239063691111936688585316032625702656873752552601469443484536820737760500937542996584011948343346500401210476731917256660908749169867042652698812626565800865006373759196361688263760318801076303780125445845173501258293822882192312445124641434306369599372766652612745027889399812453510958178004686886239353156804850308958748729024196995008524463960283474724900598511718888841631672783950864415087567668354560037309451905942454264204083010363664909068311251922230409475097077435095644317821243570257681019676138529280391066525031200230282064518400620348474241545851160440784588337310881101563604589343499965921386556385370205483244614980827327297023160493597254219089580368764229434202385281525488289754395438468263418402848178660859242747100024134502862098743632740494561070864859265649398842514327442589422316797064447354443000674550593163314972170388712298414625698703816338061774361555377713122499498076917707405726650801422879949654654385829640998521340049297404350615348297508385485553045229573172935285006454188770501753098503299440996741250264266883761359202873428167115413674252045389475878858739720024406354640630696182814399143215144647799454302585490397202480142382740615736517086814780422142982078993784496478873749384142414019530896917182734227167478377352661709619384992727082927408989084338839218425387458313152299133907110875893964964501605856466680090219653480326853655007699562939313511119014888185380727323503230643356201004483628789434568809729188269899530725609811351821403368289821461803115351768242558377548929910558389565981694599101367710524869744789453820085994605847027761279135328468109181729549283430937759341118344440182856315125879914671400811059834412103144018414200327473360399002947156513007370402694911065704683641920199869521965529283451231140748974238399747856093486344779764403834486207564133375667427553991634332761706641129215448782740412479702508457013241972451975889420115259176257336558647079863228147772830787860458486560325399600943374820304251502693971386616291076917626728967892405001315461895735660806980178349657379645273139383425290656928637309344366111062254104368017083644822977096264710325649473870932342114705616220482797854020261447580523816019345830701844294336368610737257819730161386418973003630975070327030779905227378797590243016951227969695473748464146136017511272383420625119689483965760263400856632840369447859242563072307786371566564608776724484074019699001719892593891331294744594106938815986545405052234385872349243386751383617170902593817607825567115384189377958776346809487759522616351210516687159345622618524461047277114654399504457645996263256057782627088281147260694820314474663033215989039482923163298357387790614097835087363567975112950250141102137935457526154652427191384643707531768374921597928740644178990190124785168577679899279408936687826264601029918855128304093863041176468444326828586983296300587154065174315632252102140434504934018239506488218630304094379236572911055754605648461409300844506905059451232444272246527537420319253301129325592352211226641620703015621089475000651531953507805777959867500508630490241017732292327897719274138992469573030500972678661548141802324950015735544555766338157053407172134411574529666746593331246884671950615563946289307185721915655089417852341625666533448892179619923300485097251742636185402082523688473640182354865277689636553293223923316804151791171605550293136463602166637570813150152097500495710843146556267931209608660791805663180103589371440868958417282041902436254515329595279009467344130750240310324585065800943212293448479554778386256785547900605033519389529251828932633188196577751959855417667358574257553998081014419884184009147845501049458084408403068106710385479145444430502429746983839059473123226916493126814143701935890611223410289863267312751878865504535503893171317546906890587737228592913734039459373501575640736428120483583746346552478195540678867045252745049989608139876404579517809884486483806405583667594139993819931468089610491307039653371996020829562852192637254900557413260467424750680066551131626367550238879316055996677462095583288527577106583275274037610315465502585002023605829535214417528507133303642581797613142419834271503927602989291054795010977573049480160462694776978431427861149827748141207332304382790995961991659945510648341649310309473770155796176997452587642247082676521256206540331434441299089190933140839429182729457437835692026205366129193508278585199507621935968507703180513965060456389758455083614184537773288449763584014166430675012432220416438099383496735014094624079454763471092386425802751003809960293125261787361379279792034044574084295237223348332832218665973159540332920014983445322547680015327317999654720961091125816528257903107901063120758640374256250494785265199734267843993474745083618569584635177032452596787884305564979045657563862466908377474614196311946612271595248694587315536632636937970471708084218380332376867467306012154098686332172621018868114345515956650540405563401285875722936076072342930949798481917393488952699676572602130731656284016621198704242968714422320801177363411054470048900658239270551367033580092629336120842642289117141265064287402040403930686289992478675539089124298891654707971014495878765758070119257165983802159680570965336895379963718279697159696116807801088598198258803569088901385277428751354264458260182105000139506900125446796146111790408676088247928362434644103534323092995735179452186485006193366886389709659587409083544634200888328109773720510148270047801715390458659968350804549012667191404257789110442890070777742345451322017707472864588073013297418558224010523801345849266468258636256860709633443326772529037247408612546018839052938049467139467136118390920789729842429640177790252868894801592187386852006726679411488851718254773041178806471602237281095613863970983758990229600983948898128346600568987479423058747326634048097740090042929151994653979880064252251779654603434396888090066402900204335240263348113525387064924160336798508796797017909268429110413003898324406727430015420816540256603503048095378389185401663885861345271442654596764260693111268476352267259315594496614792275003110820106758875307545142656642110462487698057190723141530175712481711460627766745658609413491506822879785250096296397253119552944711245009369028383131884817599997720340171817129793057971581108999875323858761467724873554502844395314572077523407367477407386200287643877295047547752165732012539481346388037403272521253991463926928833300439411253100380407792177168816494025779704044072230967987152468167001327708340601257460823845897452538031133539437352213120950375915516110766056678809560444064560101651190532368388643507996007245964049584475170614961642766075706350342059873548065667463632752537465678536526927512051371560037111541892544587339460956546108763238014655964245004800362124375311078862261583390395216051694618480245166851036403937653652447485356038628231728169167718767355653994074705107378164390475213181632458566963594802954311292500078670284317039857864402261527085061505451755531028265014739179062545318680523309494384504575967879288893591285790150432570305972012882226935408902247981130728929868282781671014008285114313033829047201871719179777110345965748572999517877205319700543372370730651615151198597652351865186502744333237852179394586827467221508873188977693657243238881727368998296542098686597216703421877848543712340226518843360330227808501429695576283049564216871431798606224934676876242655294082578957152373694157082334333397189464521135625336307698324276510475699836642312100549368566126707774406602603310604015167661765902501478769747424693022576178967777140816584493978637771778950284697391734870323316422363814182806242911427561080734099555230442705803049632774283525921221797994511027061882033403579140148946446092450231525141794779376568759929796299475552601704187044151088831339226459812981519321386058188973955395842022926820967753796215079559568626352813989386905787448717842386429254632648445729136461127206987768416045552313901441729052667844001192489448556123012993133822684647805726204539254623028704811332203038715201881221046688534980775600673415742789504689989110753527740607898713138694556880609284445592250829138249508727958472973358416758731983180956600412499983938239635002469687940902650682561651298994736399136894496375906840217205690232680385068649580726297251633699322234886559322890661510908178569487159103744014345335276367869580463550092602475445968355827369312233455066016912110832179502221177513965725579866981127943586635261630303789143364999829750442514484554285816628819114952109589498147578919998250889776565750213953635893439086203116460184158471700738137848081520038247211512382996022722006190142847153880086271844363951376916546450158626047835341854820870248294472780929872518634311336895711677942029300585188980545913690141244694346242324371720844774303656053283192049480170968477428391761508316092013942878774260915236319144730145959831269636230315249004671794501382234541543052664484674431016068202861677863899769092655570835104139740815653418532775535053715709204583229441193210873573376752024690848056415928121646287314047705027607246501813126692304986213070241863642555092801898986179200857009542282483864852722587994918454014703212249195353498560247035537555945720950420872876477708047984396217690001572561798106668595130705883038296952607467744375604043575091192884872012514577748519600962383476476715258789084521826505993406518623895019020712829675291620483279311154186047324143788927758795840829092784816666690258590924634449952430244139128474402600687248755396946647687814737325245876778300802251401739577947939647763599184146601797871385457640778449721991486618453458790892910169335879107247072372070048357510801838469944246104340216093243744332804182496245524799564623054927547487280387967595919489055103646883324303092704530470486237041531858736057749076778892292656428052863162016341451773705972252235024181717737409528859650964628781830064483126170425716429209918503769357302194821733759653778693996173721768639945543709568259261087827521383559170451128481273037900963775067839043070107737116511776935935141242033711808606334340686269496391722987492841571896192384768160445283925145461714121488664169395874797214482599488943533207501947944622582117174598061717880542321192785819174962210938011509598052386432248112459157723170400457836371019105525702909680354050190686522429971120410921206741569265979424461529499711258198153305683086195511664188726608779362914343083583704685083602400580409045133175608955390021530387300030355745548219194663526707136183757005040133138614273341628866502246966584211801149148818201939273153105597994674512542824206233606582606200581557466364199637958800340480309643616646955348651501375283552380728585328632980984840833596422775553661394059550320247698311531241148263097882626899341500486259531730749326562279697008121281610973984599619744779258775849331384491807357703316812127243659821648253253715477536969977838872446605590682783520015776355953363679841104815785347677343347409258935975151374280069749368741213227907708967940542747252526426499805293463032975015622088564845641290339550255294130018613318548803499803773104847278728586250695056405302734176689393353259177522231085410860303488494615708769727003931933438329152562970645377228966467311319483861023062097822425794452771826290287548969668497714425998405412800487645911533701360745198030358962283636188958714794832763652211370839290089703893434617035900913117547928513615318448890648106588444312367898737833611598132508999683336147239801235306763372375545320676904919712125944178107806817197503237043023167932149800428343731173537568369959460233785285783120773024491834922596225084593074828003482173103843542016906762212538393339380867983869687691413972052803258242938221457091309042251433445677862821894162085943979506724814713269431487735442608773452650071687877321230009439359197173002907225079739076554542468242086992395308087460641671494532797607435223382185263411319320577429611762516236597883629116014293120904696428706058260652758833539313244016638537750010900323893796247620879690613157129507942216954367647359603667890702286221117978852149798504051883809975278605540826088925787411698336928825538447755952432742533446859965862201252740426338118980188090075733277452786689472400391977808352556596660248483819631021239366789134950907318209008869293658870305157486237276748018168264912615295852440730566255812193836137384201296884585108722017868774629370895410769187005093574288766272656696152539190069599761318098960763068106991622948974714619518422637286344055139959862967134685587298382749116948187192065486339753928676376726896733510043781317080172298563148844190462944735205959284881922533939411345170160339309092384593515740854328136567607566472569419008378711805698770773506454020098456773282744401753440066281644102149235215988170868915073072254205833146151320864238481569371445544840165159888134538512023714047942182133695894186836568870754726574974952016900970543204787290722721785188460459975696007695948080614920348933720930618065874193599609472650381890924429468937013793981188697409013847380543050638918150664848110812578688562439757665130348495901331297070707761607930064422531711149708096811136429348871673245790971046269803698567048438288129449163653128686806364572462818328610921969224364142600697010362301530001973245018987439617303925412984328229891696970350028713612890549717126335034782379103383496881107626221164043291745850290900425247707716811574622138283991289943435343263901087841121480794555962901620594549920508538785957751063281935820601159240807293786735691369411818699446333490123971897785317831612491264597991735621976699040669287617433453594119559877583630235264749831583492902756665390066292272691928000305623259962996051283181002383120736061809692488187412948074326215064248579247661152412641649637688648328957580615057294047397824627134711567860723439128401401753988574560207174875226407907944681574130192055009617360646633748915890778299143092864354128324762450194662111082943510232584920038277690200745993707667234207989470337792172467065244236041484042195057520675727737152097272845797240934587561026910391253791130855432021938026754486168892745536658814484937603486050613586784209769464123670877424183229836288802167928822369534166893211639261201830931440948819318932812627381435520953951080165294726050446582929264915247348975094820153231359086623388083710007205874457341922404258402912496249537039357889841332901067699993271183955940703085624380558800321287772249725875893453620110004990752731777808540447744059061851689215005956294131302170083419456450298403357298452223405261743997611924901199538206940394452796755178005795872888278086434221809185847321683570724772891317364040382194466868417989775448845843099486203470086518156180200272751353371047440037493082579260448457046202919540890885330581744916031907636749202108144605687958995807818151771173678760816510969996325446184485121888765567583038787014506756425830028656441129237036230553284993808667577789328054344923448323887145336432210903479577508612466814036529748560848287736961297583543786789015975363301645549739989381511674443504839279145218845432555775100779901915541503210596507895616918956603446871998265468569952460209210324488350244948821146520076884708065985280812116582941138742474675730151682716433556331746466980690153150902250404219062760069006491621927418709719678029908158717637779262523046592165523459693129398956602905711618226803224735226705657203670292934548979290312862653524348899974734769232807828123627739040075236713425382277625227736858166627947659654228281706893381950023351240771701957241946921266538648688275204616388380841770394875521308289587243560222590052601873640707296909424162198718508119617371860043154568960237438824330570492405685296025893564296581872210358233943540614270544205343905862424636700989931979858603771033841198073681970535291921587108587595467665795366293464740852209509933930785527188352715303339416782296567867153628341022742457327518019017334186841482948173962643385871154292381913920679302121174510469085957124017090040650480119543395469555344551248030839352665422051052237063276483383779032853071908530808898981781713558956592867839205436683916337223757878405576660218786954257225112559525465073489909616082068980949629239533638853492304960897452896690596761105229168776447512539240366596334151975788984216305007810082919699979820513218325829309553022937720223836867115472628285790604880884255096851314290435884688520554955076979088097368666458762420260850995514500103618004411519115373943132154144966385172440714759441402214545459528381059203981875655410611313003261937882989615259990140937970361822850792244331276327821058257796518628412909925009007419867803626419990769305269600255896888968747946422062506064488285685426066197179548205679704963366875196934518308808607973586175973169273907950352354787477159308838862041599753613064175256122114891654269903561770131507626683127046078138731326038316809526065909167745519772013967373748686847558833818951553923822387687644131330469563438419854566619047983991569116823188877588934643355048484752050560161127414073314468612578927313119756086949781078424735100996571760298090437966553612490328619928845232516205987886141506378910852531332726604769578534854885153578398408882480761730497795321512678001257360440776476062930942249165598468665948618649977172298476228150458799915896286280808499848927985621992621509525407286117981811910488104314359643055052156891129764808077898794932988264083577167576792826562855608866154031370616273074671256536316714960263734227357843307610284146834188545322366828135932125635031142924910865520112680928751167042133522573132420049074454030095961213335474665182913915687043374154902173320755780987464570732146566342480523998157688500165502983248956208616308619343189350897762928025913339754163184890101232313871621654861267972363829603524858448757678266911865185677576264342328947204795833112534954750689313163754259595111316227182241807167187579644484595765045349093543315911427880570948734710688769997421167518241165574723137229002386779617518922238998177874606733121613969786384779812882321524787595748640644871134039481822204117584853855948055538641290383024843309000233064246119861319751845194365745969236370398948088239499050085776703175328632818063454802520878512176637990583866500654655744480706697364422427113776335093486180078567854920883044599961087669102138981976160589505822066342813946887880506502424999077570010812583919188329668995086291481635409991025754831943798214632348801830844980186293021362765990312809628422478648342287502028460438571692451332335873542143934915241123970371485695892786213463413894452244592750450057458957789560335314201588281083360871181985830043464018758382940769715422515353848314401688062973698464221286184065634011864311050392170551544392180441947291742481561006799038330777547087307144529165763653115169533746924710831334668752327991262963659447483262816577961803105775644053515861697809636021478778271467807597535275886745516860731815906607683694467425388776753608865774344694464191234638871400979482337640354463674196053993454921950113448631161748692445564758541966506796544806451152638179234913316500703305638952391077317638101676503180346947920283524643060614089513180391176619870216794961222498238601185373482467717610395196724227993682221663791192796582069862410395857946628014217489598626094239254992347061637128905128455436287236734185965235723054968753495997044231574718874342414573082344534713497329660923728066357491497165579175887257163235483299059822131461347659402285637653719554327541159998318437093262910260203482757360296181255080896891495880011245962424877476308158949791369400225707581855970499862587008690773317324924037321780503077432048000414992520640660841711199645706667456721299385827094071840498377661740701657672739851458990734746147935669352009931455284703368157446079713530941462788022008379433753943193628974487449436569954269474040886351002817126023602214481447177305302804261214533453363507960516878487688395568692811043031166871371526622254271841558837467232062906970168435510347667372584349478288597658638548081633528285475378052937395289020274983172271900747222666691770628727367752010531024349206484507935112678471880560821505168031112888621477899063872512261995286927411676277492404886251278325854182359755339644526008694474435147443514903480450350597864496180350528953569494618206634926221192082005701611840034614857698278196348564465340342747615756187906545108260414532639800258218271772560777489996742899828396698447638412352155400310957391270323633685870151279657101051860664792524550828578436335994712722644745139829731144401769367339161475360579275818133157052927557818796256995144378624477425494642902978225133784833291610524493366700263109225765498031523145387506263500437840146910110556528119599155005488669351389669879691417243147822514760009809502682801913226789329258711240631363536465698040935685153687421144679228105500276121933939135219938188784709358065651977378375649423239835979938738118698098876217890616735329226605146518466185258568525650937164382015389169071489961518572590270327923632588173852206067401693540242161257933113479458485271971954147593934315481660869560088108394941476345149108265189853179983717638848896909777403491839176410110158539279143086136688057020742695639957768012265932579001265014330775711490357729137691146936203509920609339978414819556184987160569637389564952664816429452246306811400070514909800873952813603508109737626809451146302277359248655126088815001292927048499710035862710184621511825548926992026369801251714443593775169694214159388298856670996121507495535380115991375224314266271255550435667261508373479016000476913721725655541017331977989422944169432286724673193825689096445455150436434881752569645393453157662954228840332634590249498298095813325964444171655049746047691997889724638689043367578480878764178170674259912156575087964430363271429358230521120810568024466427764806990534883313095860135840163096570935477234051960155097562386269777309953326126083007544348306425635104826673311632904569117600691951104064400290034055119935616419433363545870383216717464700110392239491519675491625155097109056293194560729516038713515139325377406917681594683546991248183685682133785653777848044658490428046096479742141615447450159449597949131512048583267125279152829669731270719819050337526152410622342192503245915365957065024121612462581212906729496509512187271300550034240126881200685048233786381360334736340823305858656092977471191661975850686758415325672548050431401270219640328341307585883546266580867873290622723324933647565144376135289577135735175075157696898897053671374161523897795973051941594691988956981345147347034198476785306079806279625785004895201399017299571405275330578435775228983826219244540573664890922591238623371877367293303224321033276136356376515603775322924025474310415330195032141096573293997842553018960285644696290562548713046670704869957650240747617230139237052595836838632134183193943541658808428690230079855467628314572917579845202981520646479538614215288948607671978691104308067652092187865815502505878193756873253482823383945747388772078639299675095486190168660034234372126137564516488020974181303829746319616180626302760910869376440726218110291073363752003453724317709809487427218886812512499464517020842359192360823679799154802928566646013879752268624531197834795149360898926910809173645257528329358389337369965161518577890741944824047120810186035019842463448508422950242944422556898048993697670858216171694648191818393445185788786421334084009015038221118610294580029441011940008298118823354240927491233105867927242965724377626685676873646041258025969930691718950303929879828530510412075179307252975799058098804947235983402972685276018024397195987149835638557802517950076922526248109572103034201410886423759848649106545364756446924983589636428395788888650470772904099672979010275788426069526996067870254556708907725293610485406128983168157811887210971864698305202922429506817716415172462778964270286342269496346482589196028944431567119928863739227865740316476544613886640218031877977626446049565708758816775045004348194006116245190912774740788134127852470713515867652012952745065288318391133008158302559969665841780276895091837698790369525181376840033813864072338420160635108961866081916450155208375055041716486132310191311929126709079340054335030796717995937093926462874323469206322785987289247239608564785209241146485052854108524951355770738793504225464288406258510525830710431316162764949202321035205006880085690543577947531145024936991881779396342718099751224594928218490719499995822731874370555081435465717996009007630787891929399735877591010095773611778524181197600421618183621663202292574796336874477363086628245551430009934895128063451422952124272820265992309491553194302559465061331691657019773933787528804120352696654317528000280311640584978410701206319315579319449506369245316640625675059425594658333393074051157824376521380590769639907978324924322491617449123996492908836159212840799390763430293793035317035025185434464042890814826870234575934845333383264540463083183215046107965489214116660637341461607171969838960911132665816691436561723324592606323495906394571740552667591463569003163453886476874529964685361641080190993367066926794789497763374874864982258593542254899221863268257054690195120707609476093508087316391189029126755735523820036719861344915513328293654226441233787210891869287045789239738108712879687055845514596898962875537469578263787772153856035806846531981703975840936753870406386350630957764950254044033146130159344294526130072122278935354963583078599330738035026421450621184369860450171747741545224542862135987807224653176905916587809952909964086428360441088624327123386241589593251305947749968399755902035378891501511209890682221001164912375713392823724278000834381053047089179296253754307288549282674626780932393601416837862474117368147662354048459688278771981373765228426888231814117818196434804883812952440885633544770160067261155375071163120072171290746538519332528918343397908556576687249033764787640410592988034602497827946741183031872850852410391070882835120428673501143083008968238647918510477001413686671265013902536054063727898299625352316287394085818283743997672055597618641045244440954361543645463842887971561216350178076609692064622649573958824484878805126136345097929275360241656752368146080433598256028816720581300314771981235109362948977540946536174808080359155696561059832038363745769731411018456005767777160620421250548788656078564933134563435692545960946219138899038889131413284236807493906222037262231276929968237162175446182109211591885439944381088697037826299679555075359600314113491952931607453490900560962966394295307522359691515334141478678041766254140708203360213323800990170436563897732944440310328058089420498880798753369412017392874187193097732578910955278185970664111420394590937020207691133204759916901567856857091568588524796178861336480115460029927636689120696857055667049901956561474275859143668984633349650946829226403544065937961617427444607078499287260218609995530116276320005055690209670591146611597896571257075612374090514950316145297922993122440191921668943087059767908571052322189172146628456550114941708846221407381385539647032377729526658059545424928910557270980724020079090992827890166958318674252478115955811843691834161798687352775982835783107640423329455373486967691346786977977525887216840158486021780002929208420106250294823628428140242359607752524159005818039691759453271776770563134033141350930672246970875379749730850442409803204240198346101459011182648263601373193711715113407365701706690737093686305178512028697156755948173769954146345055014469924920973497371845634095914617522059601740452559838948700925043714850030432786353434241732641676452556343791066340117009417691593962809472356855647756233163822367219958194910736001104987810576468375258925411521563450832658439570216090875331057253230351429196436522772113644868236607654673904594236828602041286889054424698192050424185695871367404817174606770172745716794988196018079489166794795876164436237079420921510551776865356644751109924430603065240650845508037927668004725417063346853894006692532684667876423133827896131181355409034018063996902036067268363298430766253509468455862311300304607337892633206554913499586957435048000424474061032046782768785517883062165462948281474542616013747711213839640004927441412411658701175630423771615301188453525192959828793839124318398840711721130919915239202485636931655832523734308796724222520215343361299626822380168724530451728841672822349226066661817903946314050446705396276355452357402554358540407478171610511813372021971646530611202724673131444439822353705162189915435932348455071253052568799180398340569855610206269474309252084432332815636338963316602875338169822034777519261425154784874853745140595608134596926630212661185815753910450716275872085384028666456787675398216662993632648143813238917207066268492051903366689427351166640902662964618102140201492361195499141739072560865857268851524734729917693742382637594151960989402052138965762170090199828798983508625837143383826061837472726169247790337647729936575397318775971961438566568876391561655446130238331090716569480888195094405794957829930391266800804156790494840078850539005740139120921663708981629683305170979930546338973719809999454489511038007938416933437155957454417276342806892654910294189070319058144009208593668741264367216115264172349334103997194007029994517475640631830689885616202457671770624561542945543398948907575498014973882927634075403249960805367321079872782314547777410249781429344909072910980896621062909165685414541972608453441672844244238287880859698624354244130725126849581513696903542772199862644201911440072703200238711154532691471704465975577275316744154185818811625441882335315484430612669975263656658602458992304651491212499509503514308975376404542621232839244766899291501183693482151214374733221776186325678746865638435808265273657572918553952593220604888346535507769050396187296519858773631976468657350168760351136366889388365570472390027923825229179650904848541744019686405172588517622904818991142583447482406446658408315502743769475915987661406404182827668621623273317002438361263745325554396940680337332090531304064760907385784279390277954825257684569669600390140420551452256568730294696932549428101728818177485561938785690923166474369055357250152364155235701566850010675267206378846411477828133915294337657554488552936545342156700669227882413511482207093215346794245675577805613312410004101255605729326831346401578946574785606075130754256877328779584699968544933475943066393397493884597749108874762252796138807040427521825289003538019161233574383895701624240050787595076033002193814738692102755858261098250707481974754340195474722975416172905175889976387978048513814981513496063955244704810101825465067029447334423963667263309958853838318216600420179336903872681389641072577323363351712517829495720362164617087993202958713057044799512687143753137415584714965627143090118883571020534890792249505755899058220362471658090030239139961131446282805290265083156416954946891201029544298744258020377524686665722178686668598822808836420483187057852667230186341927990093715981342795146644561099865920380210799170663219572488901699370197201279026895809924126754729478545697468850144120886274503250856128874686652851258323634706862676746491268947729696937362311845023990295286756459867077345571438572257475881710950438022906612261008508757876899866565174895627745782259370722652807853555574602578023415178362178969023842451511325705232200809039311297234487715200268550464627959073852909410162463953335838742496847658191578049299019784802480728205276238419927252833814131339762002306781332126874134167551367526334067879158214572539160124801530901555002891668599698398195138632402654050807744999840576585191267367226781456724252544409689109193584570559814683618988374580844180468972634307867972636764941239176067204320952756544161378068672004539137983008649651005328893276330565101175708444034587563407221009925454098131632921042030441969172025034215484244445036970983833715567353916275089858102272316309040319440978055873215995626766577560827869839954283037810684422967446303765830520321763033175973752589746516423182724010240956793218353012249527848476415309150927278481174206029452884018668459181853558461405025520543751230225322724720505392360949744248027350249754705680248342804447766322997749921558486473256298324784821381977324172211208738664344062044034077907685280264399091238193550262930358083876794314304099916176038652187969367556951128820013264183464745115967408035464091197804445770281309333417306434792487367102297957216328339655230239814000512839483233954692860892448847376170208557487847601743186780220352438277874753401159904126955869185649053694807181531118019884325885017917794926350909712057848921358330407114644813831841263534820219023112598091473353685593780849049184518448023698423804288703722443482937319689979733106693383115813725712915113309804593895913615283032564577876770890187036412020010336595717535134489020883547921096290679719001824880757439477583818581025471428270532236834651401774358671396692863756306235879587650981641672353474132868240445533459534546587504654497381575539572223096554314820032954782687748429919416731068148536062271901371513478653239785932274588011080856542260114767800875564973174610237825745974219172064577555262378466542286271761929923864727321021978215374513443890199540088809594175513137766120266592744977381422131263591920421163515940808404393009870219601162663355621601631698512806745983281874398155087237932500889106670239864790719858944187401223544286629461659720679040788154595362173156753406085655228343851358115289951231364384676297523510476015810830377377180264476036450324004171560306507047230527829267244659750451826336113654434750877562127650456676452228608192933528746597604298848980062987832645393127088111004421429554065359459163620127888560598726131585825557363117218577217660675754085117269767096591458992791780201842531310599623523197820221122544279461587363493191434115270687075645630799529274763799290035677951594390752448332227949655111576597273716729112279088319309119663319345048151521351167939828630368652218937030413082110822646510030868446893381934454386264778038676311991342113032715524020098619696525529081978881755467128144142058089735459139394798515149270888943644277714094032842330869625510415453581788598704247742727870740167686100072232563639540868893632086290391092893338601214493005774686363442492667436563121835002610274369970190352173455840563838457442073280158476725372641409148394940632262533944379724959116843203633593978123675047612329291967367201282220284710605120794961197275914347941428578449912913299974563880066210022456561765929100278130140046715454939331833654897646516663341764400056588995711654005111477500766344658927047964761420571682874322849552781117395991696960967012116632702023434367324965045963881897446322624465142360284403229581027709104168482601378709741381314348346855318916250476926783231901463548499798330573276163255652476345973956275670485856932363857287000848265799757894185695591673278815102939275727267533588140532952250964356667586870702493379349852493179632919927559003456691035511108662342618145127482506369862938591279268428259889429445948405296648419222620459485354562900477287277682552362303398016740895637633632975168892364237460150711632396826323090293079980775404423167639300060083733881798134183382258050310952772557530075701533860150468143756575147304458841162467773990429341552612316058067499763502461426997031755390900227998133771089060200395991617685552613905940183455921921465298729342326950676341166873897465735475350356847926769242232649261231784189455495533240964846289197388705314726678258101193400236743661938826375931987111490464569863606188122974529193735478363409879786870336422822537887243859095024951754363726655817560606714779314443556183970283611260471646355971573835748200076205561303028071459319089670909522016756568356486927409162483923447100036099193236940344782967295439407291248569246363349514516339498489338857514341565325138709331584607600165559496062441461960236921128270957677647733562927057301523538342774957269194873976891622844727498629653965154592604534437819881407083267407426989294578164610998284386181771884636081174842558620479470568839299399829002459466013761497897877924460764104853027502914843369343098387826370354822481628674775978155579971633011389173479058030567970798456935328143371685665116649590374751431351736912357922239218100676004503521565853687385808275231459531718238534906409323221310801619407451834804528580735099027130258187602490770205714135381155529698978521277849154324651918123322605692197378245139149176774134531934191411957244032577560195197038803480478006845146880012842321793895529461939674438860048510228083695227101116332148070923662402398504478625361228873255185458591485671555390807388915239667258102895038001545245918627150747752230232927177021117675301848690157329518886802987577205441790563265992809594270283663239298872772136611680318881300428870630293190700564701222486660383627815085831652957287999555227289501755839647085168699069963492119100896481682143402581603430226527845885474495302857597408303714019859398123005106606990636196885454196098483882869753689019742374363365884769591216895115104301806606570230308621846535632781679833868369855448878587547910648887037130149064297124884902772102320849934651474284715910590350814025914705012710727193816078057579516099849547993451481864538043389234532152604017248541069811482632423797319347449817059515899856304095781819567407063188536353976396497215804087873072936634180084726802702382635407929043866669697566881108564076592266964626689398019203700174340556409649899760271725030823938427559532832063108482858878658419695217037114381522877724379028029064855673299128340449868375352200816000735103201398827015747411680958055042324779659646720469019680147904193278272305813766786985422665230618124495827053387949505155882372425332562776689762116366539425060586164218903877455478098190356509548933170340775212621681834837872216498067179517126294864552742928737791887487646515725271834689607090344625080182692064835695192921867411093604107515383656554942513826782850474669746581728865643709778157210621015447225427512434036184943119922226733810594530457262679318956701211041972446886353933097431410495038766319789652842142280252337836990874115011529595713057085477508997906238806178357753521486565523263376389567047343630896083321811791673172903688936868673815050954417974147711217841099986903186542400038578817818570372427639122774822029541355612611488676211421770795651762044246706308648785915846766833078272829669497309642549607977163370287161685429591616823219181387411990141612408179171128605388703847782845846341645405111043941745056755072436129839020024672628699089570725965175121336497414684895175245400881895860051723452864555248578372764479496970597635099298758063228949061346738950533265734238199768346974885958514400291029312995857772653244134340984101308002122527602463047306689698318615674824814128347581430925072456245268460478443835950450423114069644661999130982586242683350248265307763554139213731047153690961897927867981966691528273585401510566798294621373710242735437717010271663565524073171013262211991717020211932739324863409952963530735175346816788993854165330716986803283308124611310723026420882735449336525262678214094002553134022799640287434300192174543850667036636133985302609347360881527788828774882841113889944886317126345412040218289479160235354534337273930623640831990850940016250602122835154331641189262231891352869053332521227570706505996292388666682923732778422882108717272746614595240871547150338219847506080756131220547688210089560162193459865465891175895947874520582581597634387101719952390178260413759986310638981558223344094823907910786609303772603546321936494943406164430079336903178105833076566333832973682492633130556667875867684093510250246938044501861645249865109421857320382867815892561753701781229622123775805215904986122542888029696559272546048933870293682074998476110209133832834050854094170188243607593455344885678478369593586679220356005978939754962866509914166153554837348922682339043575351292591860889291923343130096169214157747136842156419387901287933529021314011023740190926149398400558837651973340886324707970842638790768306072117041942196016068402748737498474988821191773724604083352698384423177715909830956863745387234984193097598224202503705382837411461378564933837197340852033099481846285199815457085651246197563118723549237911307116859066073910001880326962119522377349412068596708237946241270866324513262015256339093297922362855155114699366534612011141251162970933395194808163684605315403844760957422526914993736840997534821075544541338682976853804682084910567611517562067184913264144942753701730677374539471724292711002467676912476591059994689094032329654567901864762377466048385530506675813052761662820342109716800496421896758539000983612653266294159674634449002274059932367634867389883276514597194537262771258388085330552169864668655116376795993744301835010189865910071963547764036727833151481297861596476292110772472286452410729641609803902534071438293783322575671482540449012657925466392226267406846478614751854660576354726932936275762839560026598947306502018306738792781251047887899752876978136869839883206731335339463671353062626892764205986661033152292347593696883993600463528653046962903854776390272817822543892134033126229615169325319633137953681205177728380635094091801954953816445335319733822762008971695156294443020929537801720260719806359339456984073328021808766624593915048362333993235385846577304964826424627590406924867186060289175553734249566497406935893590132998440496085252431924465258834898146807712597395898972093166953210094048624305796582453447000627969541109385098809739855508560113501866453305364078094698596710365299314731564060546090689164871962407717868615684573178822512719149504755253641979975568602627774482488820474918884426772179473693209141659496617967974696703011308692393589942726546069280034002021469230935677176185310981085252409069699927167102708373099067411911357896733895150265094104704794059680366891917081799376111760352854905204720017343081016827247150057350679931115687289647232444179852141920246831433283699439915025476286957376042607310586787045979457922195285220965562551789566818640926353757608982574574698634201681888056608374227964272647248451617889495156319402831701856600614571563513457386916790480175184797255755558561710184698718561297931610057498174161673165723040314806515867991129629977884848236540611243033693356968471913001992958493898311331971203830290817334245614297208523549808350758055988172322114820979474430108146130642864953973343069227728231796930024787132224961965433913415728600941022099680429333886462316043084526910614138965100303905656006414700000385941279541734479682172519358695045888102547537942110662448064475589351074946306161827989244573519124818787957524195794635358574314131698502332909011007312918956140185423893917633333537182274465197560736505555231506368037252782360942237353627389714631720863893200738391776023495171041184798758712001026671928694429446949865488006103674472064034071933224184987517732659526822005943688338289712403026809530754701536773952551714036867108595690356194339262120902379528022191052717260541908917031208276213468242643547415248667136946290152255772530373111047037455751137272309223861006248505880131039595990336221899273833138959799826350944973601994624712789656146567688253697863808482979431570208964105074223683421475221167675530640580713833042401546404508187333059148806768758500668976713282228639989785321652443277824176567959188530700397459740075749784316696717716428008490049992557947255819190217772674917439207777613454013160239600994718906468245091716049653519123502705031613023262800940647630322346143502374828894439517211021557293349570262585871330889651268715529211673955516571124140725132182476491760411004428017033720679962457949834213373261662684096595773528872138163191125909279404088449991668818668067711470211779729429316867945442778715360127093073578345619310670172771465967510382195050471004430952046345042100516408934134791074662267448562276630417244725061977176083569912620575200857720266094294467092716109348817133105077570960716390835531859915873898679973680516966628980068275131339616428490350277624575405260086091781640933465384643668936435045724733195621709585149609801352642970166151467203226389315615695832113113647612560397383525580749141043037208555397442948459452364275656437222641917171525365295573708120100855056113522755055109163504217128642780789870696471327813934467011940889597495686838133200252412296350519352168050694253406106677148853821621284273856140888683178673011051578260435107912986867649108952626844438707135432327895641091691449367997212008524779544092878432181440535512694216527218362042351865628791385018116182837780191957435162425371017845350817990230763717135178447557736293609839583381977138415697920968337599554020341119580293763523632697086103880345823772026144066841896164340770389114267317019422913023445157500458031291894924713036523947219582312557434421128970557740371507922283643284791754393693378036425440325351668888647020332237502993976937709677499580678857947425800678215747207074985935620694757764397873815186659515419731908226115123514260588548604343846582834397256580297191780058770931394882320477528318112066999646548837780552219640936920867347093556220047289249892239858754800538136913485560673237944929616563864865710503917328760973767983532543629921003785686883402749176435294110940876581804107248350771260815833192101087965960909347350359368869179568091960813611613843686399825576972217048344883603773538756496455492453609108703784208180173079650142561091442213589420194990574379621366467544545409647310816024090175472201554687599507634281598620271585383412477047390462935527370371830420677000572420818917295880603601350982630178642272653734945816390963226624208733434854002407335587364338258485956718805066389382832664403561048450765039766602257589809265938165914127535195376534551549192503347734771639020657688952488391567397602566935462674272135670991325838708973556848117643792607833673805367216721843662940752802518791463038261617509735113574249444999441717843699714513747635254665998810698021827048777998820936499362465830935063072325477986657755989161142737985534555808085008484946257409636929783808051324003499161830233160411655321816083692021390290752503244969475816648047893882535545916868504745838622286337777639633785902700796437136450797034773293115386231758110564239522075378913623163742884611015878295708134441930466751792560608718556937354068700807342704864197459441998396047738022825811487310708553821236129527597797410622845720296061164830940009885363484314779335258803723724995327920504814394210893441625744358328234066887492832266165458468575928263968105505695096971780273315079711537088923660273150274677727503219542743401812336555941618010697971953016140076569324572343401493988701098276814659848080583463514629551946123272943528345643254529615660012908799378680230800323587938157569783628159133838716056860949160079673672270316240696248597447011616731951440359507925548330381111019711985490060811044570577882707868613729464652082138100125301432121958655679061195530325004244861639294112319757252891204767922357688308006185561756272774471009601760970650906286843701185100943546040660763790946792773113032082745913636362274923315666223771551985243993541873297823897058767358240645975230768949565747778316026825558983279602200732869514300094357431094442378138042504710091940227192574739655251656637618199951232769327437538365002680241719189155262897864529903350545198458155139621238884190423030700708073957289237536560335623539469306796634850417407885876721494368371596242805716855855224284409982630222647488443811977219923181087238001713986196993852017054623655674134642766951955008525874229275680816287581555403720836332225346536680714514518168965296397310077271818241100914374202797095032470069309339051597263150120385782305816028549755535111661767927584985520956958050635828730797256772826537658953352417699292602192089017481918051445925841244902278638596971634413714275048524985530783473368069113823739554728603532637909457055010398309787623301347673487135839027832881397109575002811773079767114174578370969465602829451712973329043709614383041124434949808434912638249555429593152760070338827310532135600812461738080519737711814487095610151938039826336993237707720446058227231793182476241453416251030330786191461835159637628664952100651166573167148426923130643631715583536112963109492008787135102709974935666323697531480772362256474924758641361064645739499807524382378397362919337847757601762720668324330434430335687014645974090443454904559471382393922580110969781131480996534280233522368152005422343638147573810114560199686002650731440376970503410883464934872211195816709889596389560965945094112297137423926649667036716657254995276827926382052470446041952375850189466326816076806771800531973013567993765834880476459900761343884021481124798073194300054994531820569756315529284784337776140876683591719518521901576699268897156607113157933408008030322063147409608481579181967629863375292952139050986928987342906586308676857777601868861018570136807116409213756872381435117338300392182225111898804874562579823548050078922992007449042846637504347708843337851127304759275569374746333150752883795768671300726800941607739535498007113466198964705550976149496147347326780522202795614619173704175746979976148851556545233511436176382063561458486395936501159027979207935861099330334059672451620771887614833949155429137913066157131830035823002160935108464523691267728187767678038806478690865200076363547688456146230025489047237725226957778078561134096064509198308725569074039670580311342199429245915326849180168850413584819314611099593723683829947038177299700892256277063312224601653117345931590960275542998057750967563232863311841370932494959508423771309040036724215181463376336867431169340107054196797344754828818402283820926544479863941388143753035619579043938825864783552867545614133347614317637694431590279341027794138783669069843657403931415548854051829754715906026445867708795363766238854314213015323426217636919310540937969196336766676035248571925047332738988536882298790410001279676524635305655673804723252869688721120446120008682045837488162889554086576404603639836481621905795565824042421774933588049963257331136178934796230822197701880891161192688926893869457035412935657849723749918400667950956003190277531506622895398079930649005414207847044985070805831852067352505367861395808907412907588958090750615284458229439370300431430523810228414550931186418010323658458206184141688811642595051803572610274773685547571982586097212049848367383640522111455586309187059866712668485594473136121651458676843940072632836043946013008053706611508465393617299334685901731649116318357052991119424678812918347655174600113318614578712158552659391552219764451242999400173274644310110028613205099491615058676642002120966602023117854786404553039652102757035574255369337788233378253919207394527912054344390642787851846666440296929150582051483078086371252503954787956056493175197852569147654735992405197670378568347136415138643519623349650349064013138057386603285956408788010907895027259127135946469405678671875651685879139106171922058909462788205892208292120242121236137654277950314302362708915388364644568512880979633545845657986380968991681519003299271199448853844475118082674049997596173132244897049615204954098047960223111015235675116489616325274691359160026725077845592150243039894960313566842477684561959040210485680574920384581024255054945909065350901701629388788301961441454451715853919271327566018640170946803971961250121340815416291199375995499225755710855190808141684704295215057035010543183808349219026818491182994492754541923050184029200621846053466930961965127206645025447901860359017943845660881542434719974421383901929696127907647302076992514595994507063851935852404155986343411124075649947965203495704782223914243679416768156737479835930313235606014473186676326127837997474024275452412440092222552030852336518736243301408297678650030112739170085257186239671148266927413827121222619416181183438012907318160009289918951821816489891056424257767348910488263345897997597426225059145085906669199196017379657108547927323653650459117423346364661457664746707363940740704383222664017848421030194156914240779819147745451408554217528619897518354284156584304221133386661754804903121835607794235088761045193428661053462052508110134483820357009695402524093979014223249324823534042921810598378979929798097303528582959686383998270245434523400744198117277834871287001293077457238307973008697466246855732715235326040577289377137304082307090115131393764276682536605550704947155349839385372732038077812844337273425419514923715211306259458763473884505677838401515898805714304096912953950968856381168057164716794360720236757001891098199730867922939532579458405895948514309076641388196875793959603711158626309271991614196733241918419683650942261466506975729659223129595748019136969551590675566180382962648651709414389332559261492394953911665588053830883184081590219956246026869536677379863770607791552527208791124882185486856865762813119108778356720872071639493681865514277751703756885329841355862363033341695730532751405803541896267170066173814379852104663585891446896466770808144066924387532008992399319324582863395420488681729044526831744709460372992103986591235842495849628790516008832102092801773036514186596159655878946594750408849842189311657438001773765660507742078315763341761301796743628286080520980069904516638214292058272229090751258926161791385901197571449618342230439673663755980509430494445586085621936500050986054729252639143694302455341453500934661782539009193505336789882027320392262762736392824976799155820662012604234853890275665328930627124731660007293979561451489962884530162515713175121153902519379893191925262234220484752007152864388467787221517556088496964301214720688284713116050844177518945144328116307303778201571076617414659436210950132508171458091660807609309504453952123137666345741617454046584794529256527498866873556554159606177486248844090649887901262136702154086026215693454065778287886019539045820591980192762008165485042220667905346282721587601318391436085971138837855975517007055597218302334932221138924098802089821494638395974091955876343733398812588405740302796610561097670525426135180741694134965722531768014913918689377839850782205414542902243288358137534752123979868634195660811600497843849736132858303600455075343690000357679137013348811219598028643225554389995602686028541865488783913965967926388163975804396651943548119921160618580772507490558199085654097040596585709191171642698928353125683062909295448772559339152837685829932373848872634937999463221880780861427341982189795370688533740208306174228394300869255012442787878956084957461513654500976545102394617279458380978228252519961972270644122804306729650612025628310220523789068771272018189244977054726947969896503761055733535170799070303667623100096628103608166800930007947591459474932833531259177486066121694236104047843640372660902789587594252901970963835668092303509083148941607061010833916883193000739985131725027334530620784896834792486699829323660225008035857661818513729695254787422056936090316828797425386361491702933479557313844067447584598678199091397092513205165051420887196061380690774664806125411602818306397576853320200265661750310865376378275572812275547139596998616668490642278421998459044676377010801698365188043732143297616243534658692476797535443137064494272376243491072604147437088558916307810941255549252871294779812849832021467827384590282872036498608834715861881591890743773433609237359375066335148215617227418490831970430993174713691141736475071254407160279893248565386627478317470334199525236909068741638309435863639726688684297013353337760418974322078639972792413628136200628995581637255206261659089512826994171042213947267333721623063425771571682464547788240885886921760664638663909042434168402958094820692882304202725823609957622591424370279567113907297769151925104037295063612689556309602976812995443540988030388094390538217484676010954654380281357332303379525128143551715413104834893956801818851542693643254299163689573092527402647753114050586014082852616332935179461315366759279247874206415559325952011854644847380531373324066269803287763868622553133431744485839229817173204316536459565376353802787902198805985384081592930930331025195196784828308137595793550977099682017460913440915955065490248097822802653821726734279339451116160178198610185446634882681658100970786929113939325945746460698559143701492861366540048134672612408741168794856518655385953567175922780629203397212736706814349284635014171730838956902764992521364054065485828216953615757508719218029103390329984261495123484674755329813762937888688642282098359904475098825533888641542615325398536801931174171993808529949227913530800356462488355094515085894278649979766402119692065860833815650609061820737943124191496568101697316200896928655438854236568990734506668853230667523817084392906461910760007552855640338604335033697768908148137527366196711962832476708141460631736919711729508109355985690676198147666936217807551544415347577410666572879631225147377475919692100346113254685925974883308178965728457312021567277007186855410808251530664121653890809112779975735172481910818581001241493354274895370259198634905450543076830656647513416157412491119879093626619572340917780205790941589956839283599288475564657358205317829085636392068047102259222947783038471873255581605567646230280944601580647954353533948304855152948915724025071419966292875713515499878585135538289396591584799912658063672239572898018685278344453847753680245311954885028339167521670239413437550482219108809744352430558903098743673681838064572271634711865727628005017036285329658214076900549204512931747002909070484781422733943903007485286259338512388082047257627791069035152376446701770051675951035427247460942352431106166852283486121289983612160070639425791654392547436419340448367169607716804849952200074366245075312833884406077888763376362252523736175159846983985006245566473354193799700533861830352891116115737782838695672882145097973300773191620314842310463165626152658611172139370007754317521696977359810123023532188740397717293720425700128499283874948611850100834419310892211535922353954061565857245235192044447492594973614456507823455074488848150904177654227388150212479460701287421301487080435034439703533599946489198496193733129665434471423915401981184142420217271867698045606390245952256714109763489778672001597315872256764620079656696226550078570475744019375274589789090654486228191394520840622029354215247246453871887427153189369162869068288486584147241172031005542703428202484749094665765293130948167395275999539381015568429934678162513976389263360879708078341269697148202382461128711157384223372265191401047598747911410246185516976262966648545946006968488221819000263515193472415728650863497234351486423942625371035794822839466803094863417873317367796592913057696333091485173483614948052074816985235629200456230416961845448805830793799774749413387371950068900458569460750783555196147034221450975837092741113363383144589034099200931496710211394509206276017148313449938396190498655817644045546760536001477801992011805174992490561049533949581451815022582317020652055165154194060175678312860221790371115203718340626943512227289832136513593131044634926073175474351980525243494649214048232516196126558893718887004903238765576940358803071500291934096523572616245606464351284589430229622950777096731878213167395682206460652275108550921862328396118394953180851875239710259485680812157559658030034314861746263960230192669292370049861750059784687826226338500053596623909250511398739282759352260747446283792332641508315638387752261409700396867551623243108761329457250918534245391037060881164628653784900760092976425599064501626627987707986251498189206022476155218017990272461095274815935414140707824146464615546274807630307486838042579115566338977557525658564013303984894895665723759174135317287741969740367189314121680829949276209956821154644372984564620918497476199636476183973381245767284243304601425292950437504510935149496791762915610174864340228824743822063355820326913466917718343642009377266222497977639085627716741560530187506833301490837377215201544640389043659327383048483475393147416937383135737607160048824674561581131945653827660459084149474002742101758976110875492381501167598525371177823160956757163309913905479120106675429178969059218620292678216976853360543567816461615379697340147588740090313070634263234505413232782001077768769116372475383037426388056395447758312154724461235532756050496738305849587253456740121126068915071612805567068632261280749540261029301773088237751505894113280858035834337813451451354256226391285831148880777733657869603555445649337791230254025040646364297858537465185932977125517970672519799482372883955275294355161514529148196123222055597264876388686357703791942785523585085633712293733312632128283980247066223201991014716548544604255022146332136773741681764145178350464112411366105180410646061275379826934724249804918578846257084799406336382892594921004710418802633348313904943415966832803657504096273108805900269302322616395342766684239981521883618021474673673318226820866198059223873450120811358962005762154311858358222842680356887590748020282441472979518976326933614308459536195540469668624873181351646578237644613974128740203556585315238727641932281794078219678401970497651050691245401329280372165984833709477421513483260205830783178020498413779476117023560555467464957390933004725634032829511370946699812002561474346775061924715385816538973361620535690170918870597612045231194301677594603756733159813673655060298328371191720442430317809018828090572778437471077700647435172701280115936779502908866176166688695252732955438064064332801530616794351480102290517459274812030487227619235110356896524293294765842352846416241201720708102569631889615968442857375322050620309006059793359707127295053434130763051679851557293306763349469428138917585043968866420525484155626169831883984645752940783129958414384693215593497742644207218173064782084051541277297636106528534612406189640070364101581057531100458900002002215042231303044729927304146994206454858570640312294152086864190206342102321976199101748623908313389875612194658097027829613941708526505749041652233529466641504674188227120500881117659765349523481740275181665286312808212354235818192324640014740772188142180645613398714623122049769722469822783833517567073474498165921612954755011672776147941328491122012159238228782077802082534289401100043319683125837568785589644783885109098272147331689833569695524105643258260752566946757809451311469541108765906519076139275814513851163373413747878687616233445120144375255933713123896984844442830133689354690534626010203980623968571789796522553364391453076129644911577332941268672861226568263310983577885733290141852914755662038531310269157121426646294554101904135767284020221296194906018786750608919803617069111854652116995154551758927443672349283592126878338071047420079510097033981365135079781534870392164902642800134732990505451580768039188607948115549040492283904032137225605457303635235850553946022373523670899311610739813905772496765117017193822677849914474798247870385938279688070703552976140956761200045802367973301626749421035299772114066523985967204645942557116864810003134304398489076532223460425843024328260849500984789297586869543135111063558325720654597990750580752322225829904993120931061613440428337764430150152573330494181824784372391884996591373828549018553020945828042555159083582304264011169899008887058005584265515663430707666834218798743245108327276339677006698533506249692810234338253168411133542404344981345811709094362481430121843401502388093309591141454107697718488563520227485364964777579002780351635065176443560488352789618779018234070832591708321930932392434141221209606157316739170726205753714440850638795320465990789465029610716526131820128764623980116375639001564221489312287365870088868337149964428578820648098615296108553679074558366061771895160979364660238919757206696563906596306964893678383943921488541719616756964533562638884650088300883564155415906755066133977880897051999363149041280582682943619564905277055077923001505583183066335855956234898798538512525171229169132043996244868671785081942245469495225429524768203956174550409425455590434630612173576022826265568118040709318572066799965137639910609429122560086698519796719292570682113970734693571714669594937448176680227422346671758045681750704792230608675870200417194528089629168265471548525088938653007358808439094590742901787948068213162779597153399242220181850950247806899831781740084912277034653832419034209818502589146009293778514389653398847484871731869348176409225659682460620499762397829081006216845260752489870777342629472028093952771414769252894070231526226331057661841752282249565651886162830647208979642001689486046275643593610786271359352573083037670797688683701396767691319420058196164420933304820082515632077541181440214765566031127491906382302072413493010310655984021749696640054122696141090257288448516026904780142272590744170635616230990952900972554618899899556805971992343465406970690840397351513680160654396480295131643132975721938244644679990557128861699601444449048787110648865178959818577799288066502396459249247676731060655844762711961629338926279612265561250878887264352188582372424441935612833972648920058998427029330318042982704611760754972042895076575007920247789197139873363916468890488887102848528004363780125697856478028019511527687229806191553652373356726621086427307978108092323018102210745519034334368923943705322091841151830708176799589212266216266492976744591502461734524356860283932820997953951339883280966174795022111291627862970884991082832359836615047865800870003066586270740181049859282028237985032711823295766183112929448173394769604707993832417634751103548407849208241869297604678669123083528656561111756378513368296984432044083512415114252398269202200404262070976341566881568909283339630187818661667119871624743363887945718017622785664177439435623192522864440266333854607148620241346037415206825413355912897859037236419112712440577755230420803409866491409759994521203367677109960752015450656033753189522146821121706887571768452938418792452003388339756927245355244436128972896889469678026527642802613429811282367637883368604769178118577938375188248989511367433188419636630867108979137186009191971214188105769526390251521763628791686582001619804246751523442731605599382494362408610391467512113266935914763917700609029147508222545896017346902151361165898828023602018864225203816998271968335080412238682461017601643838509843987199277728763027626935420372414925986148664397657487758219685697216812690544058429092444175222429487846433742387955582051069020563050874456734774111455329475647153836518914627795488272471885988892388674113269169511489595618359636984369953806936017949259662007062703761791298742637409548544787916157502648356766906003101160546768259785337653266785124875182128933761017277127889897836151768785534496820178375683703955318958098778664608802550467473344123319261131290152569737056590909138289332853259481962743554421735877506576223026211483169304919229546003896642227955265559148355847410707976693329156141357000201154977538617068144440223220114085620494198139729581214088447009796443220888815156334304139000318286244670317920614899476539717513376047673676664665233235242057300032267391666880426857880552870900524052342610596907932531632830885193975966808645514569780836847985525826047423110200539197033723962534177538028650676323988722855523233928768124973992358327341388080416611758850846859433532793821054199374363810333248755908427238019197195358900755093459468573277065009350191864393265678895984273921941770023193710208986758863532901043193289900988415994794078878596772190089975454663782047111179196724487627959525288432335638077198906305791906698698530017749368833868054028403926017097194837880503813684282718180066907261305307640203102424324031120270317502699579845409673669673604392162493948549256038053309876354860347403579887923265597758716020071237656601796719626172551251554405696130045687399249957341121198893015276304252326173571510182877902962124901774924863836230820709981162884165209085043185221312371915799617283525630024632511498456473319341101100033167507979748322874631916036683018400196284459259320384647892391635225380346947241702746478827599930469113964830091173237312039044284514185902108142087217786084110725825743065534198494558666330889478822110874518766268783519631314080249903906542347323594827773005600786585510889311404621925679044809149051032500018686961354004864350348965218855212579007808493338730351216209747456707287566302099330171728342778317236785617615168017151551276429406198577536836603845870852243604053601804005654546378819763918391275079810079459048771813845531444794631430870548224413536706852550409451930576819600321237796713149963419012987171180989927272448501042751965424056930361942288214891641206120744751097609714484109253736647747272184251422174991573074540637041494080458257467499076821251702651520545781887008801137646666142137539058339265570377383920089753291692834154326563836803664544561550771665771117772906011141559181891811938472263509779804377259910450414970300861940817461976844773760052071173153444625725547004639954459464304290325394112077437825008040935073324926773479323136714829620166508769121851828871607462936776786285242531992193781140170651007328497541505965392498966130092196158289415764573303389093207500659943668582897102150231824305439159634861210887830080083740174637887198411840655242841852069727998997632145444542385463750278853753355672403359192136721368898720206082075281126737047883410577674729395578365065808477020658662605473645792484271659840811056025943625981161224874268176875750530985159166353315484490968038009175136819124487871928406127290447731404110426421119615878313908403323926454704493291629198837876390070593199523906005450075656919756594883183922163374158704318742352694988150513918190706044787543100111693188422735593327771250639563960137765315211486186218673522948722454724272941986042132910307601826289079575758180909281467087500229959081353804732183431167593440866534195217036620573930517412432899504296633703631509959201233866070245158194601142548785858147725770806199133024107571601772584756061936533960369434419434642333798634000293696686645417716739257096493936086467048657750739744645607815077413924706811317910320607349755495616750696392509276875714188675628961914114726715018546864873859961410178086639972087776516318476143654380457498365500795318243854675797170082078310028980920667672057342894970314989124652989741124195673084959896487842461476473543037827600441719740787687380918149354166754672986074862540242553001873390256098205872856123549641758676045547557299921533109856928619905375471106216142846961077852199679856085558725405989012713203644760896442655053658341836285434418861179342633107289887698451373270681620399514878102576511014719932442762095513592876945073723953932201930610629968181023052368846298683015914105487796740043887400317853609752762791369433315769360160755824678069159772040137322542938262082667128688829430844849921370421296663321649379581400797027151647974915764791159414478621946810312543176627248496617709510411729115486700922677339041644637111589641441928758232042051881693766577294972620294878077731285832699181850098736176671887683961748151551799555241460770059195523288561944335205649667779651778814099783943878465209061545390712384184746936059663245168346461571912574513094992502055802141050024038220245018858654530695631842110677898705233923205336673220952254259742580664986291922800697971181480564722709813755135358549980711903895811484876919193163448607359877759877226982320569960297709039295781818631248331019603064358597529795147950655960969718168177464603550094681629959472257096130127291655282126373503580296486829491291083974562357050957677459110493449732523463917786179751248957218883689182635723555331768202149173138344137761145827706568420322064516859648605094335150229891513684129112906904415542348530402292210599343053224000790440818075302140508293421241703064819374722821057935132493598449068908997483441215595648376844940134557685562000386033919775940891407487195027133383883445323330070348164494295810684751196631489848205156243563631983211495299081837390204717100359665983508809260060124685407456407529982641592143190102580650145191899912392706589949240462209675307352048191206590140848744536782586101054457468307130821279636487949230008206102590550032021884548181957947694826066035448624759905115741997969651572857606267727854541754147189854829866420362194035954519497983129992893838737945593258254352297676539194730110117274996065856028891599730291177703772933756846783486650891455195290728988124449004708934476173892598913769646788358495904551147534987270891732169186325019245125400542628557392439806355646821385686379151396014994104138102177877354677954869399035817145083248428044649322005821687095067112906186240547159178407952211883891272892107646503810633751564590997117220697537239395643930000328576545255392075075065603149026409873562891728790323759285571997428549792684193125408172347890101476113127227308425151378359762686518565079238865400788791504242467360750002324444360768872063740114411534514332281620779229029556916694014390852514025416273293554220785728923360210356063847787168318107429242065083566219431841705428815838666893987798449634194175949598453632838390486678655819944025127982719925216940935024768569492549576627382861001709648878351521267083960105801739278688886250123400416094874093966996496780427907977382378242255888629759408899630889354145148366004280815248489862657982383392788667288433594025105034348602288642815267582959177334927630746832799207345282239458259985237647486304802536635954687876075457201593465687971681008054338547614867121392946252616044191609291767520868025845716375974540697320967830126312032541243848027024052565169586958632120791097257451338907484483325348239124061641792006639442375658631121788209129049546713602497406747628760093387892540430024421837923798400543052195223465215664661111348076613824327907226814598890779292140977575147444389232273634522419261607337878370594894944654400174670012068308875543911791987497124487158856928961995842614470059121777857166501457436855957549359840429427793339002333711582407816330836356827390302568503685708259813567234673169252342070760081591620893286167493539785428817235603334291717071279357508080290927753871183452092801591999206794849888587778488147450834195500106556085558044039280202268439625793776102821062991178385656242613474609461508329353563843870187808202480758836394749669704182586206177960312117153168532269575195402852835990596708682874396612636498571253488095390342139102330711577313568051655782207706767191717241548756801167437177999022878097437477961572478059724089596014973299942626227884668378594689709909160204417305051679736549520052777413912716981948801510863660810617656604266525879384998236022495971385106038770955857494340712121034322044702289375714404072508206126149044534684696729768756165368068363528593244201797562177464803648831849117223710336649969835438417729787862670277915599164694729859697024965440621063468797653370840067353140162274443026797381741095722001125017129036411332660314576979495111810259441716913127272596706007241104936720610787442770942803439862235183081279061350394230899822056172357162376142901958715690444689032480429841614151195412809715243182038382576091493623137670875097677695078431945140408451033957578213973450425553235084566702942654338493884355562635247706745896729069237940178006293200111876125771538242724375154287927387966382670126880057484037497295514070920212770668472948790832778058470016083786320795836267321153119125601900124582464510461584191404986308668796097229893845439719727373783781207112440962992882142677197241455151046756039409337126473294373689474439683871252497584794437415929940425342674187939976665245022115258111073689585839319353821259448368747014128086466324019627691275911143427604466552105736856693586286106962934352952563545621498675001081260686853986039549469215065822253221776212870579207284807901209910541535994231074799844048648730676546577282324179040101057910951010300480012439870928952007823313020943051603175003613120323733538418153426997258496134128348248847100214995611993916832874734413263260716133068592459136397294717560795069571695206644248546439167094908263707730660771439192288379293450120926456424558024151040985575718789542358254302055672759979712677334069077369277674211291168410030807002247488985029911420277702600380818481243379864562913536053064818155700436792307951881871695743212408398993852308081986401760947916116364422233325906577567371029558046144870851523909434312703848064720139204280729691632872125888855577783010400462006468067620211474803068214210863788356236510616715623325131231982671589692877282127750686077930295498607486683039116737816317269246161680664271107004822608694545228911636733918386748431379703504755815353266732507955080217310686166445510481047635868265916667952061081028792184158319119056460118944859651027535467103215193014722440413562751580939760157013721195881967172723911158360746658883288242799948619742023059345834021950090353717166777252581398083502216960919797204393063484347358928170842112052831733993044231074279568327176909172165392107646600895972729001765690273381406138182709651571249915192201288344626728721658178874894028251058695305489716515202870910450058024629005243187290226618939143848398495325323205833525621227740541126049529000303847929018921234230619912900566773627985510844116720900707735085230485169135924765154384464144164656195176605117753441887113352504615000870584309032385162697229857042562715377873957137032967401636757827446957127407167351152147288295550779982399996762024540800509759615782164031461702246990607380660782848146856900948912513948093600947215818622381837708917388687574842162295987558818185489377625197968792938619911951399591557839672121109984656493221711119808792343792580619109400563666019065319414417028055396017774383520560921768755227699184946497041326161980053752514749421830807104736197365874291572529081103269513871074641855883994224976711286033565209083418059517517861144622182364262678882281694710656109485071848631845819905905798173358759939912016982517998110771075975657208057204533483641599532663673031113620845462890502084792369910724446980981876111857549381404541793989389083448272937327821397809716897314505106641553396366449552215439770262235559460064993816480507400912048229720821428201670740673719489494923429200241667168515378911232523216799657437105455247855778659742602708704886439108666697039926339226621988983070403437887385644656439960968559296465210814049384880785288018089739306245334384710101840228677302585652658639254089883343393895070134202619038746973864629531913763208217879032925782897267369051341587869177699326394987753201700735267576166658559085382077829530888086073108177342525880071466350272981303867952066316327580018897188946871015939546183983384099683745429453311600436743305978781913776121705825768544056733959197956643707021333629934204612482286017665969648038258642824183300713984351345763933737841508189117853302237990126333610610360476908851473496629506081035644677462406883980813920224892386180217484326954900655281449763573675403921304740646010483553793971317789250908765031116561102725280414252545289533450610189045688732863515384516330765600299483652644818359379224132790442137859821659822933720940167460909682380746473967373336571622109209001007363104058615069479183852118863823376070212301989156823412669910874802374762439344414792051317989776219587975181510777344855167942017133104666531721397212549447943568865620965799564901825952445825644620014006794306883117129822219233076212970478299556771631377400054368165446434741906498616304136346888193571049427287263166022581244550531684707436888049441656798755835339322030175740657323926007863162394914936979045721526548266656089656770691824277017477188713332105808003745441434473518378836849393617775256042011899130496073493212373891702615582204143622131729621319530463045436269970630646985822051359893714404362533385538126582065821785616972410517047892151798551118635513980242407317615864274209545114115079291317881845628145968257791020016560653966033238467576875081273507287703130126994384753055181696166629094337263295801510572305526619033829116712691329854278907282247582370131639028113147223336404874273047455716489210542697869113574175795584541425328250485223416888863051522074143586992955875358414475058419006891419964339386019365015083729398870511685379351161216370083019878329150838474835099501379659977493571010470052900701400592280965430368134518372208013775068118325949746953389995539714339214537615731805502974938009677145044028865027994858140794806257545693632596228662354140600741987055085003164573332566863516111024117645931499131267962405848008571493658846735660342413630509513737417975325737772268884962273250793518505471135369301488326674466080019543654838648907447105040393745412016890378912216648839873204800224718804526367566672584185674630375444160231507097564345003640018571280298460357100510915010421833296682279162208773836401651373038352862409744845540381609717756177761065918213555071574328474990413783619237029959590413430936649319509133654083332277159966794252175975037364336043104757035836923968410840017565638012546553890771072009665267297625049025204679183163201213277734274708681338668726184160595543514318741003663666032575766971406031337124646947428167570734773083088505118447738728532819934630370609760104255083087199229206736715407223970717850862697933347859768720980245763021103198899152039243876540230992424266706313150176804250852314079328617049139232957583389725043296874479103352629207216866843902416948598021591501175548128139980594261462322320502218117798035170362031793526140566677018706292836097682651265265149051591404186939352111397006726992262502867434850520131388241901154596756157629872457507946188310773396795472315666474971537028319476541132429670828565161727105895757936136584467626021611788255849965053611182954625548290396511117564154375386662386897260817478202716261861346817329007974796840906958015626455155967140161463765487003677845872431924698514390972394207635670536256012329820618874241528160502764573743296839933582666214920604499491822376145695488110370033372292800720389868532782267943062262462526542100022578122179986901514747124942076539286843139345192386575104625508528211919207411128377080185522582892928092735907811352473834263106421071668954610276651777027599030156071054860416787712313553106594209063409101812534508588949143638834873635272027593166936193376547943215461897135723184039081962645552336905778289677269854974915620343760540528143533475122103233750095233759229832741381864046425847096130736664657318150636653958196741075672493224628548823232085444231176307111903125760773061642453889262505340972629856288126433019805062754556668065657210528990279118230002922617542461892157198328988056983971826741139397003861789325246670609891446083989122801044556323587412312176740360904688585858506895571070604650315212692138291885264635988437622326939935460277173609992325871331023422394132789553111457515544462525321799852442006939207482516551033974861493564346165828162182166388219636204620763141460656126805411915405073658593518504079374748212973044777829578193416118477795738389726170291258546472411610199558719560760042244404132620177658285624328883067325876426298618516535421495669714281847642682286318336147009772802991205869587198008581139040393614793511149152442429506327802984002886244480582239486716146933173759695028077357928679202705972929447831255488467570268020458345143789263679682244641497938450995307213970548817963450912350280166266880612557353120177555707033598917629085983898403678036878857269818230302529158333356995408038122914345029528288890970309879466373018605938472379879489535420782327798104530786558200979151499450903306773469070937571267713390602427995852656749331109794365899053241582023882043666525217261080684238406628225116302343183991693651144557659322058887605923795203033917988311225589321908962127208598345778882278553494205972184332853978080667391516743772590251229365974166014667455282416850846449756061367218289890612846872414749532757941011264152623752643865477909398543421616865785362552860571129577983694130206194949552645648984700270980041585191913965606387236813071779244987710934166930541970612075996933332993972380960454429559288541821260843145707673389648173953873235526917132224877156547014911416750715184526162044069130953583137124746707811898040524681485466085838582237152532540662309948765655968019039994216027306502175213627281840332693676477145910360784498951387080684778939175686976165693856294836214550381986343494252622474600789913126991741620365242025321983797938324316114769869413865725836823977895159371643980642890222150724245786886444693071873399759533122121933573802290602510609897495276791957802874747200405935851648609396439688018801535853660774679741673463696329996573559499331580215034485996675441258450239092800777981313589810378139036845966254681541524497325369244794561292829723356048908946430065334442445196588842008107169261429640564347243306978811368292038111354460375763462521384931571091131369468693340761502272557735301812204861232114571514836969256107014181200607432984520671217447930052486645449828642363356992050808500960870332883289773348453398315552454460302904907676156408042842682995150619482375549605649795235366486141986205434659880488916677154971782144550849542117782741782677349337133487910471485352238805145967089085089523638807053673896402851818410478796479314152525773599405865092208268278186609733264124977173447201928723692591912842962545651299187470339909557217884647846152756332703286352843867153409826004155010172981940935372725431317510673498188272132569713446375673843026231207672945074063557203856485913434071377683747132395166822635764631053346418459517738736555196024570177671130279812105353198521750808599968034494831596687197452010068115750244411298890086349325147055725326840615109981815090241230679268879107420973704538226151295854773493033285534812967833495715709078263390946124096563619721338284013484955646940160823475259148275791757217659333860404559190291887170121147033301893787244485255407993475996268394561435833937582784435566041102833459171249933810247347531755675525302753385279277820365603016331736533314671253256035689748616791333886046182790799925607479048279185204348412496435371768532174809692956367588505936589201347277574535524802905551498461638687614743738844785667041207082366391051773854228561560680836685313411469082316471726592794726360977808573735309256212119340616249954618470380091760330560863334247991868889484549102132365012066497012667285295530568338576535978955985224524433110802649893272772732770954238456349986549809636478988534535440322905862845292490681862534059414527671867883877163294943784335908139162328612971892019310288164330419649322446862988587939458429138591976047632424595139415918976872037571320666164120034586440950143342072431569424794043693023775260890930995115878903373978351233912827167451870918063367667420282090636868666802916622638219068180006456835728717018270942161334916426503997037775178674085002049282135225855387534733876891936936252808782770601000613098127286529126364961168433292184861430549793818665456381935160321578104434242452219979435348480535794713729912160807124377214973533196662600073784997412449431894294212564580556965637650259361146781317418427133451120725383127244869091517685702947042985443450865645300241213544794805092899242983903319056514921713751933970193221798322555816163749588316343411963060406754472586553099905971611779541081901032562939148063150061090723619945495698718274481559964194765596074935161253225319299335051472669227584772238702160414113896117413410203467637257787057677663795684131394522016651690725752098423169848439971401434436476162949882626048528236118492991854553199509965638500933813807818576381105779415980994529096939424022788377111340560416342087727431431825370327912685991609628223047892686081520803319290996538330756170544444797943157140375636099129908623157582682215894787431694597146748903156593154759418938217941859904509922451251649714109555600703351322031093786587614745031267837653627840784292190955801282636360758096769999598716166261017170969475637394161619208003372464704926903159055474337784482795560011637889172425787794704510302613033955900134711924067520417050220887752884593830763572066400616765942034613883831463423964530952193710293436432985936679688009999635071605700973687384465364534433363977593940988277630909235863324049343343450289872331406755136556470233076262178750483796059058118961222993168843197236164646951900459895462264112862010677104010596051574925929210202973232293037998118962960102629271068181216219134039698242453723500901534696164213150662297799417928339646241194000017222446483002942265350162494505658942447439927501533737773940990522719672116374093513411863217335725772065807181766320305918999645775484382901403015862321714045625946089063647377275400546011296667270760777939333585713553712712685573482064959120546907261066258345802468455422460276242546476619179946656016991715288865927082930616383913623162039920881075027691130187038493849533084263202291861434266943272203219907594945645545028910244286048999508665287828194748635177632412831026766600050179681905417434482458516236093857728893970945806079554549231716121430333090867996813507495356011715518818371469388614337532210022244257207375175549895562610011302352627574811444833068722851626365809440169664306763647890850084668080924951088669436090860796888218618978668704910233762890654705198569711344750065586712944332852512658308437913255308830721017677174257980377807905394646364287233451560529789489802056358624871321335909147299148309067754357093132208363153849193081907928835000268189300817174085309030555767633073628738215033370951126972673339851599309235192108363986831259205936149785180841491023451921418104271767175425185426945466444790877822777202287753792387901067624327656215437682477606177369929874432832712954639893528562349639164497678253680503577592290564978475347378056157654193511044854330162513516811425252667213396262449647074225307467604385690746501458279366001749662823729889702993949100567424688033169780415291386570510547913477815609500884717826584649950317738486140652400827729972204889327020530338981332639037477939384755210218700841615696508702899501936312755312537506940360875767968907212028840525624461278628957516689609162971549967917857597057422287701890738332974351131122730145084774634547473153340276519995586217117798266712430569183541782757713754086277405622236533568011166629673004734304470586469164667620681683512118283843237940897469762683732542745686536511506376933471126756671942215897702912171277758974450502171723731768989980849239726857304261784713642012261875963151630257794706698802086386317911050352477923733787332041992402056532583905407033680505706965768928247225835798129242083412581479887758588878882613414393132934645977306164859935404744167502267235151308713338503999462068168644511624240470659490109763650986125807493296283149113172747060899788532308370805295804949022455409884987436440010178698633399713365211470414541467272007622392444530361598066331976464135112496051130157179575254530303142667261036374715786382372261567832970178637131639218296967960481072223821813106779874885858354654820531646821907025969925112394133275603073650474688631365027465431332423477171980942459812499665459848767252783235382624823905378097118405243603320761709052134806641588833420400135327843401757122016521582215548696314811309693461189367226733056156072448059064468072435324205591652224860317909152318566951593719616303142955660554002418104094543765171325123505987981647590044651842205455404738190642698695091128391210337837478298409331985942555906127127010862524516280086235178389980791633739652857331609032967117500459600423131642034208874186834231046300201352662331817960808738750794133413958641105386236418901778423532828509761522037246181926124037229740936602348281360482410639777318077913275685577978287865593283073065896056029045452566842427906460369475438470132125979284143617862222136833872832089370859429857658861058736813914881011225060269898514989096132105266364404657729126397953865471220661941991183427252454552696016015244965996134954285188714724413060680456905706768562787324963193324570080295161639721984866310252906477868202002432193049687013624184636722057515360025923800679906506512472944527267517612647305723980920221383465797595265285456523530047480790294214543306577408611981433259371137951353733259832453823603009054926425050959854183079535121927968245201310816563409229724507644822174937346383007061444581189227827465404394781486705383476409131417522857067797297452863088314114184249132613322910633223162634374602740485542575373859798469193076354923706091588348809610251728409792337345539646446988764234213870491886827965100602552254008260715260882002379252825670286237477183585436150733495346006632554747302587913134123525925675104657978554962682442457083928865912985121521609075883821471340505866033733647814366994902658696979432525289599720174261553813409001565104406117871097233772576102584330714520701381843420120926349285755344162737580333194054143636463705232863737803678529270646278167444768878448529925861739460682498614070386520497400233968496644450296846389604171375703177106320869058879313031881700289437776401543081974579859495066455069525836327154349584234843836764032663986520685908262242380676225291959970271088425714332500359392428399894548515464593257811955877354269537249694807374258342171976616732791580302757069614386215449292596200083092906190032164350788447717163178972672529867800615229381297492774047664703831677447786569261422525710279615237683650669318067452968792255657138102038103889633332904904219308439512241424187476934397306127081422892584412152102319864234428168165533770807471343706598831092413890938222145073772461753626013334298946444029114917910089077824778249493823974857773191475404051773381428658424029585402675217459860678793995894644382354416576306994572408297592726633184742708399594586249220509736673020620705169967395497634212358332588610596542901718229971515292892517146852519629278984986874099510913617447862949374069438799650471554842634234801556528189969653625064561839939605738205642212429054643733549900014836363669773474470266260970420400572531313297087565947027286230092598984467375353823972518060697615411241354840622397362438114982419219506866213552269086204560834446127634551002302281885026836788650050323565662802622532865760847689289329946647341272036171406762410509997612336602907546241787344566678303401584358846160202901419231948579551231913913456798748503181717578094961517395516064465491031343105393109592429766062477570175822607345911807608281071665253121210217161185052446746120927291333703390401969341986447172503639892735983750668332055047684853038096967397136850018783711528736918683540237829135763291568218815952434016112218985903483053771547240654927882443620096571636390131970864511205426375181618744766509657461004399191756293092494425259568790580684131668601344341822032614497790070177241575523176037862628165864687157979284084371874182625964524656336270472982820085911173351467252671765473297006929583621433938517096759470358359135816998337833260659897907435231893903278654312667150897441725725583039622348103983388433270756965934309928897850070305388999898680334599419904839978711187619900998350720749371337423622776881542653724131644319134129992748325305649255940336981475329406704043116429882475938388967601033715293493752025725411141225625667033852036727001706209289512416846328710706967292733883879805645245525421021362358478752634860305669535190714730877617228842581493039471450537449782629393427338483939697194374718169913300742044277566796913489488431584116297786745532434182571565518292006261881008944114983183667424861774992070084514767429841765568843169411021903790509427190049058691249073384250638826489347609244607733156551509914571726425242072243589287459803149057364638475671407516141772841387231503539790733173783422548009266175539446022156988240894906830600199968421771070485461951994445151123170316622043661088667885301538396071715691803899282403063592225938952133012318833106767043515556005826775261796961032843305918437117704512638875659833043509596902480836507375427457466971042264410116063292366115205908548701228091566154472073340972300594677148562367888132405226867931577668657342469948495728088713476935611104620473135485668127464748759598720373726486448464269237829014804984721132439937378199330571776617488012380214071433425199942113911785138693498058866029011472349676638451467308654545773068029066074231062299506932421752706065686211132932546772927110424213960443727024320907822576424608904391559513971989989080543435729961097905765077959904990838704015646602836096242262416928180461358149810712349876218442830963998094079025935985880822553490257154868865107436555142908007256343240774580336621322374838410006975560005451418798796621009843259480820764614414696119907479896170483235411787294888414812253729464193707048202265244132242119665939803588939760864638294554075280181568306214657409029532831480265481844726951320287380317906283463724626036272256651808186773638585680597945323577213428480238053765038563101950883978982974082381484516408195381099421875028368865593625863726544906494928393047743285841743481766065598033747202680754805718872104180825300753459542775992321539590864943193375378275204427609038669002314198774005065210302193023802823131386480826777751446008630642159967239433897980196398699753797381495665879924668939701116001986796300997823440390648935478693156082575371313428862881255527319227243692257042890637935317699160671931330605527327029049802721956032224346946902454930588750131078062223843023145799385118625102299057015473558432119430949004580636605830078378076013415554114821510138338072903700820511576701859569087975504637081575800475586893757180005009765733258397780317038659166903407462076613963987617759048911714786465865000298634847477095207984730803630485737136417353159553103601307863353552001106432081535722381119001396880357666059255552357620973539061677548527106913512965189544935553717678673857835610172236092194597610410039726826022375877838311449162753912214415704275802351921549812741098951007659099498253293417432464356501468910431723545445314001243174171314564194884749380635781021884212841300236007010175321103247233345453053810106715609613467216314533187795433635050019032484376548880630070867371925195175798632695658489192064143197622986911731839474947075307837125093891959372013910563238845145430078063834493490209001281293952508815670612785633951711935897685676212005529032928896067732603742176673148610745550832099440602380481302430607928678397157589987888160115867993136927795261184937351338140358553514813705521833045574481526472502202559818667346962996132727444656587095997791152882619698423569357503565340719184612779161601659704555251035032571591353797820684790700661775048249989973802615312308496425896227355568833487638669531898537905896881749230021541805931861010003506435497929016206260993688113589526412300990370547990744716784623210841480357034603455193670548176210242933545392537488793765729712054627807456699455900122278841795436731247137457686890521695221855642206002654270212479669046925443396446840809637374057381069168857545152464993883053940096378631682265658992372908300837698506282118672052372771093978532347049607383375515880504315045870612956558587769414812957332554201059389610470121463833534325283807274160502660948105916663035100031147126945512909953050467099762354677769737536248487333028904165430948611419202352981705288535211445654529469766313256115665056049566800362505503040498635824578068107646196814276420107662670905785988508967320404677784413074446621265888649493934837726555888256580789802242521986234741746593924090296693641682992050941378816357944815656967316565333559636716009920061209216689771850356054146926557081351148598535038876227156337701773042835380264110295422617323229916921979976758207726914850866741710653523226379861811990635806861182258852168699952953959247744778455138350188359344896302201956845819377823238631825666505575415103688450755722495434593432936408004595888634231105805704427957916946447509119617487175822019056650729355229810066651071576865186620284454456470675394285148319264742715555729707467042054304378392361914779665287572465371556585496846262997872403628854290312436803995173937660367449308456588837184222682467285456690927772167814437933205996048056119984786825875511423080432106052501016612955287682370304993213524899796278458792178273799247294527978972408710696581325852956088863944127299318859639858615896402745438167205884429213128156738982684841222411636510979536639087492778867202229900296553101529847416765198137937545970871304129504730870821650249214734349236540380719548900365361062998978448224964365206849746440850162239407613201515241001556622162338891169864478605944764375568172989750598645497366693191658668907271107030951119177911363979864824095968627803814812294661650507288842430431293533096510498187144146824301218202386042005773309118731534121798019636771147283585895680033737803370396414709507210704729465679754051274354741415040742986089924078210272403615353798455082699805744801828365067060377063241560385159187917086783857502602828635473570190921741981744067153030935084706086953670404487342398347779157391807879835287214632390033123622145768770621283991886182001528082504545291219609640009081020823636655965372044977512993658988179454049083353682283042601490148778731182431328209397743092924058737248158092645527471555005913910969949900230695719449760759947411276227277192577400420825471725151253687472560390787385629585242046842256628583118960909440982608975181970108141676212244513431391592257508905822186917863891602115689974426452687452772170491173738541183756123847662805564128835866580360634851710722512873841096188196499288136400489437785123005829019719424013428017174458775417476481987803834672195071462111712585124176281086220402282069291762051256947053353457489712086192526735593857427671613186422078776049546481136862488304395659974180661894328778325463770739958709197652683976991865151489959374865265326906119768174078041286155620527486000336677902936245077448291766697881426677269927961342185206266999367683957049429726984749581274210214174614198520877142674193374203484559240983199829376934373713741728721821426902474958656870660479047764721360154740206176924978321799220571333890713292488111827638549438081278915397195869267893241227066939807678172893240217120857138708330475894229984534089598671547130575916485479260995616462266826164888402399179725905148012706992525000027641212018723174784380122593318488934712979711478107483293411598678243784255351070053034225923620529687650247655219096354741918975058169763616885472330222752841994721811991830325649615045931105152870274022989772901137005504585347145376351008941610051845142423348337893728939612546254581738547801798356770728905627634050697066020524752610332943029562868711192719298190698984787697354806124482244297955769266921497805293923441330594582944129853673840978484574189199297750209355837811966180230651008589790637376056677842912754984990937651391570753666958215362108571333767380917079998822485392439856399746548601015831844615539098924430307187214866893143453446845092993896628591331534279784452894881519861255317893260325599550755826057724204071577939433059899840442539594853644405119039703391200612467378738644075509705735190449181790998804328674017478871289803685011858114181088139899227119017335061874871817648040415728363587871805017405269747598886885761199631190543301412153540930169278995514974978802915004439165317909006180707618555818171884608849662878445794726510810824999915895592688445748877813028038574236089523363497700259541219672945450205969293667349161117610970780657851042389053890536910885503628685943267258436779736682611489150034468297025317642455244861194148420560091026704637642108550387000534289135668865639524636662263218526372067430793254199008987164156739584839817547942246927076300690037164223465311932035053221092254970244893282153144767785386613090534803915052089666448470196305823411158431956547463424210811692814615966794282543594217473458732014352194144753174963825505686257061470142873955483512621423204526282068110781848761895223050605099926991611722647680120052745627004031898454171038993547722923464759475811560667364090954530918030319945277885315389275863794249758213139253998239017702478908887877663149270775430149737527047313434003165121295358802095572915948918917161695075498619663052472315680050248518846052565290159846609460118216084899801179867637154666402907564884515370192581832221030913776246031109549479542349520938681301715342927867287523219447697092357263544080042851565113205576774910508477777099681090910438200171670255522805492232631452042028225847585851557844222848436665323792083747268776505866428327182385083765521483795050164524951467237572690437828433130512605672616503337355636797192393475880895642271154761388893622416991329981330903018928325399066732807666993532403596933665648298048744870718209010416395529077337680314881473015257758270172655420451346193909571143156777906180124766971689357508473219294886148448002814659491538022058734253218532208951627440022675166253193909827868195051262526513443309897656049327041790866969913401828427349309983234178678394621274327213238598378394512682673574674748228213655063386068445050594858731544055345867316536350680390067600884970252654558240658663740966793110184937023920437020052925336185135722111145854374841086510642828755464221855101136636274851284139254064659177050978989363370173049958807327991243679300009199154908688421497459281719029509939895899533351351060172476777137521992409869531608499353257196687708584937453973523349755249692890939653992155378187546266842393086914339240445034786418405726418349247790413498743216581372244479244415790141658497384868226754907415734237515595635133455310942944542779261582460280083462421777192852716750055599037424016667912875765633007332800299775040875117362695511948724521770667992608079202371015151662359909820277264493444667870222784111996865035216146663551125187804779119352871475059892109445646543610523998404585765519789276832916492966310507642601426743941091579745668916578104197257613718167807554961853520377478470797266117921554915362288669418367950996798974246197870178743862822864648712480283131677533205816121935200224090096516984798626699315793644769770921733608625095853593797632064313007080525379735539087193989401355457438063032673963876072635612612483312398786527917660647533874242335503447190383432567384749854840523039144095075182924537690807220617839449789392574736220697158446250179492277150543179110553063749180508419967504018281011923080813023343304853884863806502180544561193253025963016677478504468466287414232063662525950544595147581990905667261311927847361310839448342220201274461228293676291543793002096821256208982520086840565674298941137919299425925161670359025530012597821672780940665801833968428189518041016581557090074897389785994116014284010216104610006804014109963872038719615098799073066149758532201373529938811072418119082141542814459150199538458894313468780910586385900946225831261591350734087785121086394433264788057842782366652233212770065483970858542512430059159506371553458298784861970232807213079689231775343433927965371236600141817211789904970001743662353833760481214268454173418059852432862361686049873156798593135703971183464553289680192165540105202015379507779428238798971732951625820474042315138151448998517546641003798235149093895178973809841236900436887385350816805827182133365548247027982203469914375737712991868319707113250332345898661778321364067192566514372714120289525536643089805441264535336409943916572686457958857738820285437336798471246644941158773251587517165832875107061179864614200592865063767725752828803552283851534025878219200737960651990931693260291518394913602791029429078150254515884858381661386619505979388385506906901532132549187119345909738879366869275937871841426269633658998133975401917715362368804164851181325081436655637106178511310376330353915557409999134983249745187494051543453479606373475297672929163426393864779801311254211470311667996692313053667066945548686191306473505434585929765515352620888009136459517815509733724559070732125543293212073186926323124939781455366897084727271618356647713516893552910375948653771553395107602064881823131645547139143277592854198413384970874350284021323949944053705236190358296331914052753640387823491071468199762366260661948170505491846171641319610648258127106244281483378682616807915622586109701137383097902779129145070235055123639237990224822647552720100821385754687595882770600208875376164725962540356856214074254538487275705446523392586116546483926752690104311951554810421266627275419579420230828651481807808020863601007727596052446371751609169466753102803490453775305263576085202032454648687317419296575487739829574851980486023233692356751512784250571466344496090257267379600710079605726749268162721292377274958362773089280543153002204990470931175649088563431214393868681963017256213094974202113108135827942394662648388570168921137193518845376081434163129940103023814744261060903755357857441748035231392012379025536816398729588595363784532111249187617309792414704342421435373490864441724958018483769738445654501944004637782656662115798018360945757900687773752259794328144321828799003279051453800163936903688170497566375704413826880801953973434476297808984286165090994034525481341538522389168732955977408718358641584279082322519655211038020018506112501255134473618564105417449982873238227483685854468612959117864444075379606514908748973756467848787181138084789155463585448065058699078880920418934163528538570560640020619829325722365868534182064586694743914983129850610281229914637617606698933469831482278172749755559522633247412007846316747810599913873719291746641531353782784826116163640589477928176389056926168516987089132251941704420849711479440019330045467740681340577421413104654573832557383112595436506131907941665733941941728015100499953810495272191320661526154800231187292927513741185023396394311080669001098024885932536846984505210422026891105780389511561425352774274457348639006346744638779423793450667121195159643395393514905172651653635433707459311242922939747932304649964528259377088940410852715827564075639813542160997014586707191589747399024207424375916095645419483847893016816940229223699706922379212895868110643055573790902006217853357492766506951089677989278213451503247408465012303949959980118612675902761111433223610319783008661666845265008869419995912804950446003373350037347873919595219507776590992561282812719914154436496733099385676587820539634027213558426516755606620106598646986144792682735706911630974700395201216816290692171708238227347878191665289110905423302952550109283317787492220145684606712111994535980230326834089711115985896720679635798274795015063691992722022167738276614619860416751983901690117915047988935818160061170441539180289204731671195327785271994862285695997486837815851351225825657643743480427845304451725808431084913308196825663300749571083182840926607510372336636468622889746901319813975536604876497090132102008052438711242150714727344046719970781033660752099628845871220464531393131324688703989445337925720541965357056179404105916161918796922311291499008408155967186002802486146331400853194542251108363155460826920813659900166379883731694835962679879824095540575421053922235877227878536378126086122954762848141103525066724147567721494041763286747670842751955163677344562232789063730459435579421037666653919386136882329488248054885915041150385824235839834334708292859951136058863248117510259600377320344754962866102580694251427839369437460627201077161668523594522060314633290314834419221643425070259303962914100619204051225334120265312015519038158390551355016024248949953924985976443530209169062729706183158296116973956695805416575675065866872819284602136267768796538890017788164367356042851381160441611992470127679431392589030155582250648024402462087460632754435005469785178502495243147011098557268716651585995479685199133640954952566253346969157235396934576082567091502726811890191174582175706742868830373530998146570236009698553722359885657090412763376283942778753490056196205282993913387954365319648945820266935910515868337087961051225370465057209318003779885452099092104593170014035470523905197748437892326699762397870792526122278995465327945778982367021520765631175620188155578785075136116640908616869850043068804190777291366010591090233727373639263110198468488214865247129401009448220705244719921220197188340751187450263650904781517368359702141414459512828683014105244647875700684300028049621685395888286641641591041709195382521996051229024982992404161255266787049598992365172965340198002438634249731519195348778313429403624794725206219964028728290048104182849717480171764051054213632385753473543471023791732590042303769601570175800648856515102356620842716980697915186023702194696603446265613391898302426711993282713876703778162780011748882169874854210164704798844980846829241534577585448728337263465222478169377408055279120970562480134351993574523640675868710715194576382448241178048874594199724052350425201022782986593078552150297593008763310520828366856156889360710329810747938217701574952357020685019278213229718459296279908131600973085448257823747317536751718023489947539468649217428199199481746297108457732115980949879441126892330338298401212615875430669427123895578842547247865502571746472278496689310393174211586090664844066173602956681127351169739133202096995524583262079663424952206368966840720762845388717235170485819364568369308000195341730368751712679853214640317779406694042426415747518173657331814562438968772839850920365256734127817726390557655795353809743256482700526133995875088317005523808312708989380785620449608524452244405161277372596383105586745321248448557936622997019965243682515229011280484190423199305081806946813324804982450513110492929929402074709162430319735745167918672806291649821683588421729721620426094119295375804973913962692987423722677481529099695037331499545807989636436291195061970779156656938005928837761085683614674424393314986669587318785819824080429613446460410610127988407586501523990584861299359551135854604638251843395847075226497934315850095639498904839753865143565367929229128246907393432630300434853505292036247137144712774504671091140163421655452935021019919240852462700327715843179990020806584094612745063794252581965846870289044364654137284832006840116447709008465024914927273756326731109817959909823877701019629039941639575622090529131437126819726372835795529949673395498731173506290718341557910313751808390295746621721833783351366312491077718841926186219134930902855446241552871511166730231883111014569576968200930130538793606287306532765858701732471722923136231248766981439548269130395282300196837724436743124371318751425567955544568315242342714716450199621329655133935904435705628039849603758790438059723591531718968665827430523089777257824535581254863395953331652569908903591390927437494676048179688604645257476741258347645891803699283540476876300511130230102724176910583122194081231892948413072331181408273633452865045700098972933557768612580102457383655910342167401124973016339252681113287221260425421045001973525128626079690842155375461267751654276453163821319645738205902527089325058092667866474790241863526021558689406775774242824237559215597960846011228384376154887236278162518312080846495936975198993994043042542040333026680078128141363011941553467935498996237994048839347391329955128469991416605773242035857228543697349873107806707073383595627931566840750710899531695433460265776320145860877651191438612300867044239668558405427512239863380896371677938553652001292465964785736257025841812752548106115467555057635084855170872014533988113220829299208956148179183211029571929653283877308414042508663296037456610703864160273815877034321668186960967526235850759029637228393564937919935818954019107514335285307394626273767121650977239305696038863006703798584159492267111850095961419308635691707931559589877557887149325645926160526099572793873775426721121616348688181626251213756710652320668992605621786603620775716906777882534467725641348803126640596824095723792179856747418086033574367208766932155018614899096061829159076941228089689654684138743081019751453348328089587264256567718079835174306843609100270485839245083835002333649503732826888003353100965578076411434995354689453762660900243853343056901974883111624857562484579507503221064749091718768718647199253851852640862347066276112775661589424061998821090145823894872444044991079601637710202577476707344496095237099417229758189899853219257410514483206324412373094397292701348026178388358780299465468966403005296969968764604748672751794981759543075004239477974707070593767774927941404276926871597930097427517785216893690809440554276026316714820708870468490558715182440420250626943374947040686402793366092499735069753933550462433650578105460050450380116035045485864970616322937826954194358889695440543505911059295091425101097192524354942214095917896803970213801378318312605362325799832647686542388905875253878156137612613370575119149858717256480115156179983274110887807954851698246639376899478553569836080007375987059411684308295620019683495492672936858562788314439209103271189556119234850896367739657300922071893386576730512497635463446982940510915173813803269020992673779995831810033378445398501812927272641905828890236894820344275993236864476746162188104731295502298065605438726948746706089240381380165001509616813014972893061776062222860737842147611586297789725367881450168597778668392686715854789500468535381980351565942093501569088379100912419485170754802089586059694352205450860995663672624812162790508298473379129583605398965600476156490182667206322454283144584473624953714537751477836106407692994364755515381570899528677896056854721063955182426020209739380415954003342425873929806445454209506275999178126681934824525268475026064914515731486819009907837813338504111858233779147449186741330438778080363186721863635986399711999467961049442258801695911973788176932826571116325530215671973508860923982270200298112333533086802406094013664469471085754240156307111505966502444252604288134534668365138842021368238588449032062923216305601565687439894828399989004386191255803000592793270670262488948132080298985924052978293982216282911612971201021335759349089325479479049398474598098618540196104558074909260787981951493313672418593501576633805710822066772595932912097479706285783663820732270084594379233054544246905453502014071841772273456268867811229366369728775853952411560266195949847731216324844134291038438643781334070330660352335140960409518679559704509023159260673686813349594052941192461492932818215627530048018981370910004625924657987557172589869196414334850685365128662047136245141768445902135995146584137104222754027185444244233996953581347965557443076859988584622245699621820752789335129313496975894259080630092753568932420180339073300093987710748691504579814708499802900912877353888741778601358851586032626969829953256201949185551176024609834470913049507951125969618616304802211476468409522722173961123012165666311360009098208966218614718109755914395086865472697561296681062769399323950526625132836644361420546863479676647708624914584664317064966218496265974928027329285518779488406026612916899173910774725643462222828062189370133872675262840910351574139927170064537284286967400675394606666633462071196856101004895190695079926430849472323501916530152717613129021766899858847982150553004385648185412640540977699400989588229573965511252782864946181951203620576720716322488155522887676375510377108643131140158320925079634880362762517738485696780668191998479319706909254069303512383096476851746547649328384015382282505823554532709906179650557605358879704518280607422191962813726642199168842798340286923649941120222741555099811852212421887313611220617825159886481648947971749434892080726425739189984641665942364641939888133646054277360144876595790367005310142144856110432341479698823675169508044200709375882875142142889505862592102218884785323855989410566056549594743440635865546072852331233901395763092213622824946729769355690193574916385669277825172539009732976158050068655342665175267322709137514510425118166749846618488855855056574129961537906878513326718226563864956284521223697921430410485487966054417776196834365146513548840538561581260954110099857894200284883896641844546560974902147283031494199677237946699654796431506508011106413690790820642613809134625165094269680762039047442574524739999605971759102827040363810172506934584783937197573094108760142437490807843050961446179148036907645304777217953790007182459696310888845389570359095046976178150659406493941266014392123289955553777363319766354472458433562511531120878651196006973021240536927267781368884737827924700019963598029139716059716817188479088638472232120148471680354941697713690247840358007590724113237202099837961849043135300309601596121257590790686071599679991807004003312103907976934394571969405220149881963545841830654875514601506976732021296005571799532511729281865562927156892775615300616636521397321247484199347807314677923999210642520385312393949308951571491628570087838442971352668061235255746848585673153236879019825037488607799151244446810319003854429570210607630905534190996515283609353386866284290659361965499866059498939227039293515886708971428886030231370807736905329770851850282854781838141116258191158108892669920002409172137479902206717124221186134487180752282580668066380698414182823848612138521594732550319591355746787669912270444991815115502231446643024067886850519445857064110072811540917284773182273807207755114619462278153973411967123071890784635747718650577793176213120119082269561242283434385864165305864781441203735807122280274771740929801445119232529540937449606412331618672177556390019301293951261973713976968648956338609816475627692511323904685649579465322925635672158972985458968367213581882298354892258748701890830021317192989885078459442487309526401881116223650310051452233706029247473644566502297081061475025254850201244667454106067645128502161120965636913485251904577644842966613312833231419354603756178130545262793515945290875576261911162850182185023988696633686000499001316026870571387428365946862469397713461939628076990288961173207128109522743463110534660583272987276294313000357513137840865000630134826420537598788711420588683641764470237260370920266740893720590271222939624847916226668680557982637756927541395546018244865304031519728505603128714657250970929158572664141064953082387506162356362809815590711418391060995889763187153421154816690556821415233747368367323020003629083161697386184153790961318948081183004607767104704248139808067908892257703043162738562525404985262696387733463871453817927047195779320387581011598596247292065375327512673639207453916014709442884321624290280849208699887205995682437220821689477023304414468067689265879369361024986229080100383193304166514394143129321449900400152416792939276551299740193762897246488377920226966939453049343537944968379293097273311574556144455421047226699191817321905689656506830011055955283644337560137251850699490836951464566985976108406799861798437507090239383547658526781148284430096757534865530768883587836681319341353942230049022153296354641240346051418916156329268630666734376303384180664885434880430376592903886402980805914808072701508533143168278745223628494831991835696613756697854103352453961893884089996793100500430838448601424994602155268663996036903024506474900112884643828529626314280566705644087639466939183932051473586596528072893264938648728517819683107426952449899773459034979949808517840689877097404309625761411948808786004452280657837456404774072760969531574216035864266352428443479915154865262789425515486905889907201895985183741524951901993931482981317368675140585411103907344726059105135396658287739483660050108242712318711847616994370871285023121981446602922389970341923868441386986116276102267280113632096751461285027285960896272362105800785465498328695554765149216567103690515179939385222342816710900202259044374248310384724322804988475152844057250633476468792709794279865810645680473289117675026622720114997932685795415237686817750825170312310678934831194076982619452737252422712781458093563166451394970477438173225338623776714545360407160873802048965051039178612679522548367223634569421255476097629677933681533800277822972793415901070115759921071617113896881231974373311169741690200370282724177489869064335801207041578599331542425943778119334541388384876528116580949320395169586028068851790991759736532477909611436044354483704311506908002719678114997178801406945996652344208404362592562416202664454054271770934226115143353488981276712940049513280601226500824399100761319119701634993271448595665136057320943109619686604499939913978392995204601748895949615267928601681962696624255157260058756060510233142844619153712900125359897827608795144654174703387262877765060276579833768273997328108181482318287279798388410204289839209875621826407578364663800703937456003750775241191136507808364524972958965184807578485706032044370095715409240664981266682668435836342080672343745688440423419144804831955311430680935874250242219592972109969724708570704019465447750187330545166227636374962858132697926806091010849366844956951491829716414584308961546699483231697395837999332654172406007461020296457579680471869402154395802548283126350515717558419726114876384616609429291805969863527473301411404095759181618004447766236484292956337599819670766458331206199804221306039260956072080401590893444662817430609092491562970305130234539893177069923391615996245967402512752842762804021672547269355001040400801951937575696616052619944297933945931157882462895076569242256985588595601262869916910655344525802157188460767033786152665317878688591759373636724712741884262270300604424227134235106323403577257793997892910156500471827050154849154892344312313026532716597083547056259992577942609306267051511314720453351541257795598087552901481383078733801499657583495831637052364656520525245092003694539095673220302310113786334878593088725990851272596280108383917254871960823259221234140880437968927625587265969913564466476421201008222429201088053749381060401603264158208769658779897861101473407365888143146632490990070657349251547458349950338384720148870267739367942973115606195925041205935991801779567980319608924187299919754485421963346491524749818830199805804850309381143191736252022870222668185881125704520795948705343788198761198877071854260010051597670714391212328714735495861397042186712822912324850062577277263353904343670068246520933697772549181121556963948534742007156455286603823135895572729448377001040004829462859409813875088570143386153159575934450330665243195264969133436475030041851656300414838329918201375009840674977024087902814323380142313232290903418774545877208483856573801684472491892020525998535420897400561541407055513308071167973150394063710634448985451999999232276588073627272149572299253191444053763045692481684039469607586997305435519898747905017107829862576789972626864312593274734688568943499300019877834353741627551990501366695369731459067246753532053847560600901372184297156846191807910381475660459804850285271485984576267144058205786123778570943918638306151039190638008161061883901665551162920553774143693083363040084137730681508397722729773694606060659269422169622329807725110205462169949191077118038356709550174217350230591751962961607350889227957986486523266938119010286648854175561295324085499745129073244511924923830719786791670041169712839074685484087865355781854845482853877341141450985217062723601537297287103447146088146952983972123024210906423395384723163122283866280590584466473568924301536748257954161283240655778726371318736908253435800534787517712970735336231109426447439250099217289293905794364013390253940888607752682658865421398375081652416275411766016038336522258662387707599410471687756037744386264568832153029636176478446058409155708060738194809188998380218760416584097111153797531398931120064965352964767659078922134029721111646561792478336071818572638967887147821058903704763162689899511968262875084228709997160313017704305970181598647273431259891302647252229903476854343679060483907135108861779897260521732506500168629763912918596029435599157371116033590228267621061722197154561087362747118191203696249806254833858265469847698729459766260456171137170020552084586722774498104449154954142328223214056808586996051320118692306624465685628431557808781902161949913935940224125049354417479461024886358122247167831267380713905180791978699011192125036789547462536100655761301169671237104107457575476107979790436904723180409370982589682451895274413339352646992499513139626480205480089033982846671433125890780432557642613773803435968419818683955095045676350030645056965659442064428918507515434932053032019057521752190242293311517894284046536809768420946539067316022033575692444389878928128496132615141615173683874671435279844169504458408341872303121319566058071174665008407489121315824594420747188450226755403262098680539870846191215522867005988904635087351461445181724324893861517754637802156509884876929456391313005325447658772689833642820282811700949144322463278340771939175625165805057200616784440451286452526375418682383939848126518513216353030087162977369636618030400896906642007240602320026015348724495439544808216604329415459814440972099791157370395625476402233425145365601874935459712700222853263263670005944836889343727954247819797016982794218464017569734900513466872185469468615718419787430073878977837387303849967260433110648155395484388391322628849546316625070487906199443920284430354051700190406310428750575558322526938337546321345250642788749651116103604891592002601206342367474907897831873262962351151727170600329824983042170810356028564104751199031708873529534290930751787129440449582752299114928723192016529460560396934555232195451998532840231567024772010177113053432229692440612268187598437963269517510593158739841395968632592016757498562378251086376630178995578852965875747517968600527256184682905158268499866562950458567130573521246830310978142442264945290962575067538696952859567168494568035072083965124731579139223001681865293547934838698820362596110799003113310997875546693887704447794463596273121516235160483396649825818772347602709446458000801774299467586396529857804853998694183029834138220059614244388663464092303536157329964851302742097656573765214769217094826690652466894985983351392368106135239982129960550893568415575117273433402685219542204735077455358887551287786205592410574458602247541541836427429056458791937767588288241535455058039219652244456362835315635692265551723170476430062629940803645599681376869318574687449967517353960228767699204811673205991933416873635994351992982155028988182504221098843349246311479557330374925635756919402598250515779878289495129827066139914222111755485914348583106657706123556084079456995570052343373080569714641283296497267955313210899226803587315162417370982544344115163200864098670355261920732858647692058863226329576953021853855416832751304999673613463431631528847398072953269107384620972566005554678768471498939518072190775884549916293972970877387429107414771761423163813591644947120426773581352529780202767558435822475786885684128663298258540849428013072816772017453614445937505523084910242844148485492461124268746566896477256334045433293292512610718690475517451408505011535952421480509576876264555762351043093879773636517556311751917301141867857482488148838875837644498560459641244854161890658500897435168511037219010687154918437857274323671044192247331176476176101335386883492114824183906634125353730464221733564708889614106574777451649057093443269054221461505232080014276658346674699682620709460141816788461018632519797958084217314414584962523278148915464159149591091303239168431818713675776451985834242384487897168512489663052596096497578140213297654736877542268609508091056785078573436917471716444868589024854291875336181392495873257567232794765297409928229949442225967142952689972220033582305646311292332779248733075576781389117418126800539227125966288147017531371964932768552863392326795005737612537039844715847705568765124817417001303555150891614423716912713208897150255012450479848032839209039761172658858456952534579940228323721475444391911419918837169029990239249362062095823726134159519682200788458534249755466963412476135579822225656753753027853017802744158348631351285675597654327631291852151448240732912240194416721891853887789616935019668111586233503921680332597884151710376232298579089656949787836621561227374215378344273121272991251173871398809568608948963497760044816614301733420766227353930922238131049010688005523096473550148478745736939427789389555028117246311274686624685128610093170905380490371817861969762714435294450142522372573970852651126169809337924456967103739931957818472462113522322699841331813640225087376235322319264753474020195831227722269040678275733313411415265641387864980040950776034341473873083378762075533390678908555958535663020006485129553268871289992325066742181703472188803809073273662501628970106774551692839135569832164398251746971782228851416887381277247254856332395200304589622295113274152500641581628582140111272781080249286488071629275191975882464267347081426324845329245074298091824014456326204464563485364163172342219086422457452555375298521649328753235633020041934465267979079132053826848378843381264354237915825871613296558162439371859324624541579229770413494269667126254542900784650722092065984819255333471151408914488751466223254124160966030256917588458103089184963887421534894251088472895850345031503259636621276178762636260410552545153881506035323039807016179995243253994813627086691868047451040100736155722213822105075311344934066106400634855533096922850728341997452578380761878352435501871910847791736493294306734560999689473007783832661928346699258401997013235328981864119836552058394282200248295051091578039674148118188657796843312362807435728758378297061658983806795536945092609351927304690655494788148494350819482955916507626367332691995468979587651669318692165919015399240358026689843729829622451266020433027818859247043915447050688738875357497902198678842774670993949413135535381684765662094982195450010461185693067740701264516325302712001709682263993943574773613256539234005489785725780842843118921814600897479873502540426230541375604181501252107818665656496921736578858706218880052773484785517485220035724660676728417940372239966186543774951939154719552948944076654367094978865900355515279773761699079156084184115120556358274346657982546433527184892430610360447836133586521454025877381889791071146642736284444813055339886680685437975017063874624146579405858320746486019488516019428736304924195074041277757145690542999683049532263704079636909976305381172043049580751875402756307123058084071123661819973618194226209415013972054068356328497990460735861879964310950124918084623241254621493011856400438830105717795044753355686982837536180983650306804668847897383646861473219974335427026615511046455289279222431148311575811961249080933014785306872328029620620368593535319906393704787497729020764740479751161742726237611346392791451643489330178224775762913715319394963486260329945606251090473066320802908105874329331555839398259432595325142156907758582226511687757882893522526017067136777242917557401750570177853722219652011043468720750415264090264243448662304201175943660036500592042185287721876151953626880230584176639383771634538907082017416745434751951933155206303149276675111525927739748061650460961748567881625455856806905798744321745216283607976231963111958574862974870381761429748145971855590415513192077882417153329887600087783049031324156346979957654796255018784972415138466388880641154990807392220833594229459625517247567967701803567269660483504058512859133529778707390885902154073268206987132084576552112264152817405494378704813551366777039053783492102942946082510057083040731497364163977830865185210567597080012590668311251229262762058161022790556142750311140138495045444961195131387166520308910005611711214267681784019117479640652192935595953665814283153919907158972909995274568279894212856310910147824824713489856290620119789299350289305378409920161445619706265284181195487321048652029698474145108296703381863836268323270066105397295833953345051639942970425018156476874611015499449121004389988181018994131830753511825175184083887964672945999915041627708552037769450994293495529440256050616923549417276324259263011360509806197357472871070089130583293573880356215850313277328417466197382587694643940674833240334614031824744687569343091916027800757479178356604943314422231952477026089829429202169516533563699314935576504216467091336827552178173840876725384826956616998060578616169928106141567565521644565550155387818045335180930356480146579468725540128388550558082411113989370822584509750921138258292697230217528943848830635773584856978991836621865947341583041355670046454177841437999062355321003576159644360402773959280141123055867398562342549311167245509656794668185370856841445724920013752411573079454850520286855214838303124461040927283560289235340396267011432881533404813603585817134834098466154212246763739011213515499814472096031583296314552898604585443186826094214340444713404208656354437395340757378443821519908918385440205844815724527746125317612803505848745762065710677475860817182205568454362814068065295650668282466140338402712690030705000411044878123732555646240197623321961295324407809773692310219484352795712715668109819989976832885113603438757118662684742372079099421141897889668483431130783395009986228921208854125509107787225617650260502017230772110600743515110768666203001134351606543100019956402901964279769169674098288706821490533529859954193269547781104052594360019489123662828825412109398614687954161683384361674591708345001665281067574346278908901320630065433076165415505612699751592538063474292396794562608871061529415064988342872458973819381631505010160772848337504522110624445816848255921440997999241284468147046207708295987085277875329143876079667757986175258112259790144723190230912017520914016724376210910898974310260312771294481110833340863828785320411332704623011238952330502637447246671635605013887841846915578070364738795019105752550368092293371789770710434987382375268035594424020081723545541878342046955312693417391991877370337881695176289890830747796209544560097309505022679287696597388894878140726636881748701816492892805134393436683070037674353737980974019547864078068065433812386500407206769746412479055419466897038205341758903756920291206047164113867987325688336844969250919494615641180957613344981251549842156033764731763044925889916166560202306415537360842076547892742640324852480670327263783513644725075016300495006836709251207088304084123004705325720382062853859992710009850898256515710248680138156607572837188041669316686729473232720684076751026863697618686881945406860743625986805305272479809199542990338612815944303329745085393045205289120892846883648078576051328421723249970512973310370700771761698454966511178414519887628315011845322139681566479868001750973256595503822645528170530043976676289966371956781310818483680767048023541694305721328014796428072528884428669705529282219714112721875200832628378120337816144005543452409836786927527366548123643449217761610065243504699776716825938899774979555885432038517469008974888850553018919816137704150141186262047222076557463466922297536143898238069838728065486307930695673363339852086518493881526229826818901047970916202538284643625204307227468342439252127455051770316442109845316378455257385311431745894535171774832245521819341841120719997259547093567426263724005756664747415060676249809500894332699348074579486105567692135169911272141538304610940245748143874978027516024891804369429587047672712084571118716481846334507430489902601589786290937458507278884642466901714273294982545277218785620007062061612897304266708847341513611964737621698601163719186253285510077934773379247812517611968594480860293550517062313764419068402651594070025228514613705039485465999702735414481872142224465235459324936521286140693518838013524831116461405113554861580925953292898363467671908536923294359033744731045991550804002299333361475262104753995035012531048250326157228615528543015312452221470450472408567843441520080228985613862001139272170583785280841315363885096417986501135330401235982885862248932750952260895893491814392784988499346719242293762816559381501839404481195605619995466925718727848115100619414409501258703806313724568700993427409882969692232128003187532471713823336382469484691561159384120803460563680367210694016318152496094909623112212139558625906084371632634019822659485258398878300767902397173038924870511609290919453934043599446541608421927603106202666736236281837449205711533015803244901736931141308415440381977455521597230697060094087668097698165198002640688929163914794915448635861775636545493054327871323754563190787083381359907203021046220469423057446325968218772556632682711745505174386004934010851048110334410255764845047805600735449379171435585464359642792407893142461496162343711077753714320056675995850352009051132864918789035666082882571595738455645537208452589562480816567609625588092122675802901202596475258288926197425525117796539827591558979255993489667094988401818230190978061841354602660270798973298939937564599310289706374662117868240252495987133058016713836525908824747488709310109823872139516079779755433820627817811371144706678092629302176801518013933252530048985875752951888049514931891915086708040393159357266693994255332551837987485889508089488424093740563488141379413646108455971264676376057536691008916294628111985660879735889303022508950025971873411994053284091360551186863069455179173256751383106880569103439166745734598582079845630726592469854085258521227482262802672728961561220106985455983161434936506130504960199936942530829902447517310068681235859359068215298171179172603667916629201750048560528147275395149561672157805766667206931490330658547704144037332952590855654505527116186554207655324173230627947109234872579711902141494571680614179439680077399675461393017798912796519493038031007353375962036636970417796420772484696593546317370741896197878847791179866190249237121583210271484895600403278614798548153344692123112138766927462689460069235125511644074218193238132379970909281487739530458476035352075590055160175727213629867431656120850180580869461037773333419128315653667503275476420552114953518402486664770488703240500346736307467546067794035400790698581405818635941469586608153552827168519711728796049110453890193518146536562859476050288132554374975506106124190765961737758270626967727346567683416854204331031105638031969740558567535643574677316958182823793955411070946388563626220587391189246543127739849830899606180082849202504329803192105208903276769865965722865251501713787225699423968348503439905842548083185558988633907623404017951975285018030962590735561693736868511855589473649230535739589151913214777566705086527829813123557230923862386042247278408654425704125204752171350157830302975835158769495984385963853540872794075615655830351604656444572091379858329098346847144756990352894325452400901720309467570381495942374950232478793113802812361710296359347922688311049271969773923804940938838675101024069479132030201513880584506287589402749881376938946682804260589391346156739630127338609096762994003073706577715660133045167454646671639876093249076865961462964618447578802730938411639701285524468530690062126972325668485961082803516121101023819488411456818460409290997005860850418698507115023392452041082533247667359505306258665317741859366123879010090844825140799615863858525328407926727719984622710693680491971707191381602765845282484286400583142826998769427091145093744720739249170740637702616589294200495489049646496000596122169283713091069157312964514037677067885150157141232760392535387108790230812955541482561246617409230592474447523541590059228536226922350242431692539838604103301513970494292188778150856866929731362514589084599467690525858261352763664514877200936515429346138195981186506556280141964183088499910292649144630479426773341680055898255674788859148960284037136368319167001944137444147531661406807773072088582622605718390517322484715472710035872475793633984188964677666274136249264730690130651213250262598496469304056562784527188380486537378313060868531695195556241437206146035213351725084284815468769556630654883475619193620932790063496409416028443378711897532304817200321220403564583160098288873540582087230961856408096168099237987907450653762891141594361621525892726713994314507310733301310889294225175774223575730954744357909886832209823245330802214659087912530691180797905971624009113268138166393163478880222454379723354291556673713997314502497711626223569522499769194225385761207628132789719455355286711477729323787989666972323108819559096522721371478662912557867703059656052494139759077123060475706854405071456518830771886658591203214775280982202444825875436432350446737318275432263882151587648393665129991480757376750850832154350100316478702955415205948674800076339022656399352826329314955982552134710115286953725028653074649739781310705374447242272181511018704269240569558087261341956394960207077261274027169718865500417249923284334570943327119043364036091087017737431268344028546530466567267322318875792482727435864798351446975930099519321465343618694676991924830913074021055258804400021979333042299307166099701769298466825486231465900887111219391183661634637391008321276614144086413191722140890250266111946926413921615273245344831037037023630429438492596700509234153891756417044627609538091608438344511164344847386263750835049482435099320491993614405939185261955816313969820054452063879710239812714366241321133574219229377567714478832973186496698748862178878979734138294200545264321494142649816630497443945592546883984149241754995085633304318762418587413137436242804513559414868464645024523236524715170310314465949031288229515806601381533198554879668354527741425975550706051495771438546158301635207220020220849660000368150490214707042838313796922919872969048064325074626188519188168098185514757925393777964168130807231609440413726601706735198857558072914702852439555638926504382249284003964063236726786716595964918410324658365068450959937783229479226481484776918893115774390550733007734266894544424956446879822844666844647572267056995825012004324209580661736129161645939849949595887988104924246145216005541314101054077594230096137076418249827974697683670681486884409158283201580774597753677270513005940005232976304247921029274231712856883991227601724055434422253584119954811273991037952692655046576484130309813598895253402348751328025326222439729508405842127615309936148173522384446063704485994334692752494533234291775036629544311654801569581210198022391172589971439802907272315015030150714587991396339272693141999256307663804588838700976051305477460715048688063801331897782287066541167292647156416868950876697594644563509057777783091162033765477691338407229634169460695368827898175373956012588217243830394625821399489834492509115020439184148863096527882144424781804711474606271210499496027429495235716263560910831614522498212452202734962773631581870720167047007285160204500380249903843328966580547233484716275374373598102478733414816260476735745198486627538170970012760856007976476976300069439978927817948257987473473517916712477054542658960458230737058583033582535798100710853583730054337697658743841547026074683445751216467470726265318735958769401169165480446235969505448366400410904269642466035996400465862508272704072009938609556319994998861148381027395784206986735279564073304707654545964392416572282904638580226160186527078682541524507205425390747824722578230586373642154455435578757903231164666865877360777586590889653418330556311253423682995880643323115326686373931265774891556868715734322573689053036751519770511916250456954470078388616956240665341082401515661241454676064092425837079938288952687451798104759905249312719699167775895884923027435912564569175987798173082155584989443693280694908815253613739789249653727183740739761857819236974985933282816545076131167360507617218917876113272254250980482831463214272790144615821645297665407040623779566473728796629923515949278231567485731513282103099516727746800334718644476726565217011632010670134114198468998958980020054574768036695437906965682387750905325384803971880109689187866303655606138724028447481422487101558262658485270242756144738359107578948305544102684265061737352636721272973847666248412845795194448955377996660222117751972504566607334421193111127487434083205772626095304627931155301020487692350604105505116948542172487140015908877917184729948380391298889814307461722896473832561145511818284354444527408127293290629849589081046243864644849855712724086211838507571466422424257746703713163782356432637710043138673079989869999753004252502932899322048888164563088130297040279966009598883942122322704627529697684230973205931181449253974386190356535377805155586508603180328509447622728785395717157578444012304147057366316125516834546305481075114176187663740386077378846843179995194246219755630954919063327844556268365200415670065298607754853857755999664944139351736425391237111130148388685093912451754327533567021205170065804997435217020076484074945532464306726874187121816338538515040669290722293688885400694561705426981538430931992364738096079842136389578158498841129622067143462142444831296115589069077353475381898926137454743840051739990302631744040697426290591509740032212551815016105904646551581433023606418520253832761640893423002048756933346575727722795803069887588374111841877268564841617062713844314246675226826631374373775520140439657314480752400803679440833758332471490361252286804304291018802930472865700822004417043227883726351618566479299128973533072233750470958118387443262073743080356937782005794054767442862939607588056989125822522078909086519710738874339292249958710480322058575112780184718765725097143431035193580136782937423496267076168633153014377761285239278607336593530033247299186199998800190362264883227334096761805849127723421013057385813973215369336392923479600656337031748829404278724822211059250789760582906638205861732749312863257684681739270481435240589712387487871864981759806041510631451378587160757142573110356145078288895694122225412570449045874637356732928012937900628663190602266406732566084540575400271490288946554849625638122564493858256193416744034660893465665003412898762070612805097696723133182223237990953513908217417170042022676489297901889344889148739951798780526563036299648807645226257450172540310708896394371264354126880468612424112048790928012457005205679623285416217311119221882144269908635143310961163525786590422948447374917836139225097108187710198716427216770710769631411801566929586362594477013787815133805227219119449096165396400710622405160510819957454261120991028779317700504385244479255950023808748112729154486136804627090914589431046947504343162042711911843580514231921969340796809349135761091217781839460337637627444562094813522057059604631613759927803788924484489720977702593730151619552941182023127489335694018306450653247452994477629689565622340817633419873743608969466535723831313344074521000527619953375916912777222641330170000473105115359634568308402592763102366295743755469035806212253925013615608280376767236646301878084386320386066753728133796003969599335428922643643226056422711805681977190081038268263759212804941948874832522979351697526918784947264672725156882436706081395434984438570015920530076336935072040187790107379167079167468826004511703342631176842838926706134636256887950480093574080557955826015434055171671987413722238176638994081991289419712439938635568023240125471534876165836072899832058365963752345544864342176856407112625756717990885080541406983031152936568358186226721411126834539405868674222315041698456247839356089773863709040224541134123508333774305771353909741259758063679405641959213366435161302272126440177169282387166694133448585901476410084783080683937295671436408580432531621949256722760601231827386641291403886762177437919558976388402086849917577310786229879610261851058406995960554239014995406308878825191569088642823459976115988223101150253231456144006561587647891021703224386500195754236425158533925938158212361926054627626062755013911823469498218782745593519809025684943006568708660465742941096162534391542352962228291682272132483426089120184544223703312725295570009272233423083492862448177583930995106244108951604152775567874917681574425882276469341703035416126054973312136760343406631200540855225455262779709558720808321313130797262745883069276969343124993548132209382049541918755440920437485098336505314041428262252385204010971691570289630617127715651132374832073268658915163194102180567566359505728820117930347023193002412713615192834318054057743021885195592027527777339906773284789765719633447231894457046689890799147589116679444211119710501801435258235380123862230714776852216000978533566860676545573051464295639060764978174147433544643923608419400577865666641967422045211697779058276809406180465356237227073999147641250037057866888088303753305641433335183125958551496049391687142763943830812327274918805556641579414927574653102311354756447724071530702302131093213366652846965913838799183488699177805408734641024780543404762355378314639056565383945753161338251703482888587459379615442159840936735936237018544973451415234471027094457997326143172861813508183987134918523602441875151008875622007636793853274848762772174830681673124467486248578908214006118390333570094543112837115331662705047417678241856230280994221284107515877954096018656068121031168901457923891052115982816784734660474966098975446907580458614388551668394490959404906906137615731335762288730979712604030363854804531756260568679365287376926608181232227375804873445096701488572428540305402709064901329357770800687960493285639054604166318110957116235229116901812669753366898836263491275047437703035257192471094469163851951953838911680500708164885553350704730455362315760833708477184943421908924400965840992529079727062780554994595328518643936848738997727238252946584233705871433794014684890958981853284577476145184021071402159898017302563871017654110741150056135525442686133321535136009291353040757786126940439247485456525888128123794753170585779558536438843857756866410015766755856398458466308587984656888867483815477955462176838003015090821077475285364360182703475577077428392386937262826735654486046551230122820435030337344385281356730720770345752186514079743521187020889040545937603173981469065299149728158745965385870372743564826447825533598727092453319789319579858588616539029807995965390382895968616169215793325124938362074355162834270039723760808190115742128714502298615460920858857712683758200343164225153262973614404278330651513954546054144895918572090194939691164391194854224732646827715214729672778116856820726117857521749017535392915794656384487276797104286284373898752129518736581214938331160144276549025721319684318105460817306952473419554576484450458447153111009254316757103237067404972168254584517725218180542089563487682613728467217664515762673553497999323803216159516013750519921407319212384607049180011958161130470945557681899780496565382559265444731882087347256308895856464360934469267931643731226144598313945995352490708326617096564658273915723170143775234079654247617928303753744949109808419386185081538020689936643230632198740535893889492571320229731003754973078308114463180747410646718586742703239778525093029888770591418546512145317751735996315981923684922773122270256854883000541441197993641453242881998068711994689773335603978341511569238922414531651819173959291887388859341329841851757583324008146666254742301622251672449457059324484135803660529780982896820284293413038021539759053787972894486283984337689254374047046320295405092225177940303002622625487196702706434052493749128753000472115936436936069816448546974292160069931842516723879657927648199206554177184515121943654803605742551888455979583104432480079366986322995124827457479113524077175857388745258428014717864954685446665509153481629672401992722364765105223292414477927029816004443726431823498556717941251935750511935070184100160266033809635948484485279366365985518555089055613669026864890432846131514041451023034230494101513803825436225868901483177981117824274433491280746296128205744139059550582074297026341013891325072482704869057754162860276364892696246657426248588882735396565348283173549625999005969367252901468013893799989863202873056245534251338386312774296042237927364421698349688571163221754875848824721665060762084870658278892044314988213911357208013823866412163351786097477344406363366928118569063553046242573247760021601921955612541772909326135872379475764380144456249535948025882747393547020299738410384879251831695637898264649465144933813932855575738437162720423271079729413636005894818177093204913575881620375564199930221658860790222367570228987217821333659007910982113507562550421875246985031970622391252786245287076166412093602074748858678698774844680021320646346601854797423461762920113012658828007179773347181691723308273597395904570880229581328624464687260828864801039953280156411125701691398744600781105485998854372750676804036959216793801701135971770174707622923359267271274739977692427671558672581716667563528753693953373799032608895815716653041724280054351632784832817050967381247195310502491594342297712879477152799923313081586146703370488753647749921541652743083751496909312535607912138323300500019057665203201670296660327559076023686584422978421354074305559496541096855060790993984686970249907931307937805580296192675022594188710124708014905314631883826666586431805407204682373481485071474936439925123083170166908381390574438695031085890430164038754016708264781844593809396905602172399043466896898389599011474212934706993195634465989443175949092298402293313664989651159251476492509450179427708830511863682883342051238464217568471157516807760134365044458929562345980495965592721320381372783692711756360937150839826230395990608398571427833657923021004638409390611371951810527779468681121223667768501587247525533326713935493158766404179313374662751734443485325205887148530413689340358381894890013893340214042458276786588587975088295091066898919730309772789591141973149703044060629049159544002216350569559768043061660700383450429300227145300369754874168450468658624217366509360655638637405419303519024163559421571604042424437089752489332682927779045790615423069793967924921177166175900470331222364630177366575376414544939786303660283015862223320635952075119470166118295870803420305539624239156761637913378039942383502456593302289501941615136586933906277782408863650176156976391768027052157509485646288520782378252163296526553739180491504559868109149593528056061870443121253420985122152938562603548342860262201430464402326064744330016462523758685198846909558481685588619890013430474062105905223214911351551974489082168111497902555719952013586624041758905886840032522229428501371815509969415926444850251298740826399008755071564255373457214260779557410794114404408179124239544450985465329702497340731446793591278157462016855323062029763719327968635105762319656687231326272029815811684998716858133988145375714364373896971129411651263711466114241504772001662074173813423160049311094053024924401470732176046133115767324189928230232447689555555791078576563619164493084335195564436771032395076734373994726758739026728250210537187333748482390360837449865280055100277242065112555769190257144155069969160642352843171080959635315624504252206713519526032897025969115998722962229096530689353348139946645146028993291458477990003172634586128383018818007736373165380162407690994695863437896114215932536879853508562110390501544867444283269084483521938840048749111822994370759798505493016742793859193869004546806087542542683752107919351886152006773798620538031931820184968814079990529895648461430781715984470707090168537854161360076577939191774282967304597490010870416642470009993058606575595062486764190958814045057071501853743959318293586559666937398043364737217800222042492691699713833635434587201839527712904037478925070783222373209151259457358930177698338545895788000499409004630634005543980064353422695018118184112270504002209535771610681527249710903007555569128262274292549998248154174301345920786800271845229789845219428508215286034208401822121104693267907277253740640316117826426782184903308370524372645128977710132335190709784825613877642106029074290976692902441842210780947049966127277270182440218711137355563944137966422767494670156404890259513069438611543245083078678415221464071302405931133088308367738398722943165378528324177071856843922681894461780394288389962928771212561091398998950262428200028677651768434282479050228931240766555081263620182764141796880589130378357034668068203446737850081200568340826853098794842565360507808191275559891702299563067771146649574494254629755238603926481230533974162416739536937631235182143787254636973498124740359461914375476361400367165096260485045898071721849507901401942135833966876838681690720176061291704607956275515532726023696086714829658796385089702956984541737769258524925937288823111823873971586119433272824390368534871273984897977979331621346763326283756538091179399762562398078069150267405862401630945732987422425492566964669244002718012829554649111635604890787280151474559825109579017853932372827636839301077889138283277932516821013455271273239637551537650971833150325040400287106495468194797730165572641242532369800213184665682840218231505245540184885107193630128698537021301564688808212071751928097430871148488373276899328384108057497203538412871851196389766743493238951748495994347603678591983435032803051617407752762654628858250759095869633504273091206293659019393711822083312433686670748551097545126871454034479464524840120629135474963787050828786221273239707028706808968344717307267651238502104389136116321945348440940894792152221263157438061082260167854448688137132155650680995575358439654718928176250353677064172924009657824201052862425947752669984838529559626471957430164945474393642882896152083078019724730380416142964409489162190584128508201262545356102818766533554437857663889574396166955358681766198784507228299039076001901883925615202899457936918665895164290065407895545020512352119873199073314245579699705705513435405369661365047043974797415411304827646109322367103891402449827684870316792043201289835754576891909136551010589615563536026301321711009987653620234709421611065274493299399083981956342910151112545451122679613756577432524222407440700767295414281253498778848967930761531542552796703660204953953194549233244985178246634958835950839605765082420985606312699222127935714998043748316820464997847330306341084291777649928846353510469526475784561424381250443273124103234888935203984348316455146443466101165695689036997126945795495078366574082900849524173918507796194788044393909362751834057886226424771688456395741937249769592970005185566615228687126444441050604808992965528683156428710874639603347767323104204971698722190166054089461993320474007176685950739970453580935721850624273107733113689127376944852946522134346830773567656629042116549135878453381798443364157575130855119485000313266695772618889329531788308306048369372494124317750431895124698042037791277197043558602168899023066349771931558600574062478030570137587915987168847654639921717291463728398492046001026569622431100656283088360361353581046176927099929147479336724037999289109752444431013537205234195176104488703281977719519541613405436515128118349767495775193969538044411940700529956066650332549109868054419695434978783048530167259478795231510142000470886793093708475015453263400011138008746809710410261622718511905336771140717974908461889995239072732025641069385482389959659496691871552577478326977554746475790627098902429606166881100324188878640630174925104818611888381447497528638280814830162425256842709069805945725630311478480869898042763751219536487503880161540117736477462848559090081618263992242249106707538422706143789756899035655677736120866113860281493487389584376947905039118705527283920583418340128417052621127991495754299077346599254246429661851734120670568747267106580405146666393995624419152500771008529117235708426319736190446313204197963422108221543309200947008158915872758326753400982305259333262358290455153823136013726050149640427398857406230153475272951687293191605879985875604638897946326815701669173005018713216778344871202760066213719581935014882300655252362045244072905505509537608020340529233702760557431518749629244282347650456930039971804490794126588924493969812272556443976599601704189279116747186783049720849609805243905986445611052735028891973956118216818963680512101112908397039091854870817326949181491984569176414654217474052484990039556892886830298063041908750014143631210758684307324894872793015124124163202375175716244593712129533847548779369963761397263748444114699428561269220818634682852257639375145770321056277234683740896066831518156098006433128033064749881647536721982019963678398584828128750051780123787032535161137179318808180621166181468347898113479733016432194240674661787747080231969964348641745158746485882142415769642731784555136694237331637655668906177347268309930273924004280162267885414214305753533629434232469489149810935231258705617759862203408103276356963625892524717218402409028176816797332586936603682067598893484921609908201059955769674963985191278462424777797096534243714534681420207635104956891049542463304234312246433862449877106008550041917403849327490567919884925402762702511057566151786318746092899704860680029879991599432614981238902797292022047779196990003347293602387538180596851831108067622944269390707686791371383355082022378834921425721872296115801510648877648839449058241521835852404235683388193646279848194960734094074547266117506710804488497755033084089508149511381989194316140160956398350944415065332192662521367030734297213578593964608608482747849657112226173464908421508592248490455162594762649405120550025824397269219681400565598057728896118767272429335602455949414691379552658595069929248313266031875105037070390108111013446814050298742844034767450451646944407153779411665180299486365848275009052464737032451777764210033726422916202774876529098304487338164899714842546169895355642941656953767379949946850366694705621011114215334272807594113145379830188866132199218569277120944983953464243045324226413530945580784206018572462838036648681028283625929717588169811374741721257230793940802051059142321141123223718835522644369939309972881497410959534671616710773333284444916701183880437237501516718759409050897585718913048030085612851564166614469610202110900725571583148482841384466849446691898337303905844052219290434088430618607274532190609926888798392176302259615746609396086692572446455980609419408850784987053588130835868899175159666932113972736047013101489164251412542701315750204392966804101068583762459686678038149147298179091642851245762522311806212874839419362705025112851454994591040404448465364747215667544386480011894233522679654067893503676107916357670473997558219688598705072426137993393345182794949241418261499707997320127370562357755127988161888797573310640866311015306630275113334507067905260912140133762517097842919416180999856016488279313523269675597383526688060644631143656182337335266246874596947472832771467280301623377185432296195861451254931651690881795029568589776607174831853876661812210381311772627409821576033431099728470047055081506905199006105391007247133572552331615652073079821054240717955833639022704661148910792254697770357715114067844806044548909220244424404761474460805755457255352350171641515649936433608508583738149289480499351877588317784095734274516906197485524032143604233533190801993844354908155020858762328510406940170763603696425212183753078376403610788979389076614569921374737777550311092249364974706100361577573738931147705649432298540727941616458449322007413014786088696311629401947045719017077301412383986644902371623923733472180105488061226521860586952674500507024034202492621823988083930342449486002272830776615388207066081031358631757711377434330517351300211105826723873729656564887999583199405268439254704093781283001541770974156595441137288265386596843624309462294507664770047686204395502008262986879966972259877779384320044174386742139880479653814722938564147110664903421983926038704420823775317964183319893919861659771636477556029935182947512395917938738084105056006469573947592931086932962271651324137734136856942869880200464687721956181995080555564904330667762767636054032130469581646336292657728019499040109702755469049420382696351427468260923263163628751249976938927210012885003853350442619499816974579732792897294075187734175468236105754675258799985341473869047377703107460368516875134184548423808555494274995128217136788234726719448748759995278438938977150848252589044044716577824592247810286699359736898512539752897552131759693659334472519204481550682348780725081853615837469094840426615140770793382189793950968702253526042765297234856056886829770719445721935138202805525048559901746568752757882146078283688698031418221253940887000954814101125662642112837994502616395557526346540058715434581409111501378708634726374860146289966340247675692341329011159787033879849030814390852946863589458191086411985826251782566020084488933657539456900327946265234444604831463059402706639078329503243391713465855706881543873670330037868869518265974537249948854922626340841459716393855149833276981752721705021744362678656271853720628796328194097565562019843830209638770048074585025794572584167116948481255357828062082395559459034942246823659968623868580453499343945225270149189915754447291988035182983220861777073568717140301509230340018644480795662966310697966315213626940362323865797908501608860011650414327173514882500267196270122510826646113708882405165467039959805097015635525776213733979164627853775096793456442076900210501642576498568597222009352770481444352307783885808064072785284496741502819511264731698982501504125684769522324366402689407820575590767851047233059296930934628936343423066332188105446436895105253205568861584795003612146510074556711313804148455370874404319523899300508599997791192632379940409231216871588267358251324190677247706901094632783844110836459292759400453405795351961488917234069187880087757732000612116885203849054519428529887906104585709673510218763755347219389700438488288056892065886623642453359620995430049486002081994711989914462239601111976436821665898892851453288587445923556185788545459596095519079990943226930221887750826723827376509147499491205732775050730326397273318814081692561356303493185838431863651041115073166829276712510083677786972446535591034440351180523105837438994070997275641136371552361582839114045270156081313182816473149009450964997933375672872166102914687465166665628305068852147372135886724887698907052990152257602206613984407134286103869307854462933861702006272093387527952766159280638038394108879727079490474656174380774846755125681611373016153302988277175136611710210520471074329479014344638512701407645457082121871725886988347944212630148182741468959448161675734413081951190480582396890453570560295790855951621528002548756275474293347412627235664225440298587621396601093149535991142463002331918139790565887443401758921448884055266118039165213038011842792560082472306764689866547354798009144058966995663957773350930351652000926817912293546847793666565677905276617553859663400151906345513387671310826635123461681024833483769006027269241058758715903147253528186342319130849084703047558280179117243355927034498497083664434562986064605341684779926563517889596730511672419707630082701953470901112981400398694489392599158492676185134865280522385998209616642622114618581872691110808133889679382586648693615396624617758505621125398780803427085023288611854313157423737711855878945142339766917212332187573738174237704322016229369115695650360163611681194011009622840717925146695806688525189004898631577802602243119130472294585226937487348455700088024036388793445336973629476371441024402136906796665887924411374339171228678517599580831522457230224723690241042338452291979539786810186514603022527500393232736286158652672080735093360294878513725352820096205038760718033423093247956458224280080509483426715866485376605301459902777847322836872061058704918749029083004133498929155529371603185870958338571436551828253081658046176400223106006174837883061474090823256409765055332958731739741517892223915064889910514682075045600282265371575988406319291145529153582557984305035487494528391898755550482696001548142792937927962788136773350133798711594958980874593174904113467395606926516807697505848595281278906116817644512073557360720144528481546537068810567348999613607921415060776240745125821523826634767348636579574274197150695313687032737815569059690743735733271898476687903170691576801436487029227747215791169650511358559548348707925873295812535493283562068415591028824546514996572887041915432017283649328041495731398630932373501358755790392993097463134802747216555535774052731943950662134084258021360809812292360064376020523111450991526907867808567473206651065987895232407086710146685064219652841014340862661368668660499883670633611328974372828212250791447067865589572137289656145054586972672724583235263975521672591983231807360839439202205783217474185721051137734535754112641901434404113347055028811302432736849189407383329598285742718392623725450442834593552001530037845189152141797461943085909762839977469031285788579149971405895154134520168962520870741478774191894124569395382020888010776420358265729626500989079095495856021746876941412076667209014885438392713617436983489876488663601321744231221200133022238703316800802639338556588108202021153530937831072752097968602078852454580360935736652667155100932199919871628850810161029493456732350368510973800423149787172250545557619706090217456855745517178794995538454835562277270816077818206417056382751980489253190817960691009318610142186121496544984502852589503080888048212440477217218628028781826659377177165906071803296493546261150492512854434044374093760878561538982633398187378009509161499467292305697118599837757062404114498813776590951906569303980073735673989741138111126284237495010668730014182447641707786961421863705631056448147225249850870288026976416827640825589705017273284057447899619768415835240539303490884225378281800231821901817370627121149163851043169260094817160527751503452753862326458062675683927118155771137932470565955672384529471671459616223041847762329257485638149279117849537152372357256230076945410296458877698517214751087386311309977268623380014853043635468260773202722020062107963828056215567159170503429049443961955797501493675323527929444015217875824584678893990923810697678245188731985783234665309685083821862241595680132429017480769234473821979344432747697044843497257775389402558562263789354755542850423587826184308533879357473300285696286958468312063151517710880886523549672355619750308359702876096437470554092092861436450250214288025131237697478514153630172517597474322523957487838580709053206095238253978404776824670149447446854929534053308190973650585339476975657319817904569033688193888363086503037685830960129134823118601457849682766379697582296449750380220567083876136298243298814050894409146009561720280394058668327852736749171301069167736591621176300774466293067313414574852207918689670400563496156055711026404185286793975585635992840594023928239954966640544685250954317998190171001974784083761306960316995685722456138689595874416261015271863003943079224689638914090892532489992134453971535646010582763670091460163786504057460193845342213310930187991670677379038897048333368623138731888018583666589144481176097476330728252073050969450742503406851639169549177663063133134965476044179522029667107141872392106798202170634705670935934951811061010066229285111391261013463658586432241366900996979851506076893626600473698774716915981215134478341686353216834257440401745622742727821491130844338308842820888336998074211909676599695640001036002213417245825548426137501008511828315939920113056587958475672076434434562163899565538115159919243139728330561569728276933803855241518342339912137460054676141636174734291829003630561015213199063286351929239047108444095364073073354205017351096380078863427593765561500476009614049791098946435388519351819791951114533364156024385453182317740415692244873916135869934405361772189625474024678679377267057230557038740523669723849217785458629917700735367574522700208889046554282054431711040336655048342894469837664319657509720544079207360186709004475203995063837969648377966487862505809447100569714703472763490208759740581128364041177136124191867896483860097371652606776270107639200520223573090487981528977623962531023308476283079336834765916172710350241996791264905874491700898800827683950600574818658864471493426004120461371524059783666098944744094746210617851737666825939502624014935272670232567546933419274410087751991899561406812501339696123539468006093862546428077005680840077234165899655883589462578931391277426623243427781016495088460913905838684132748770802811186046246693783934211884808837414636537648496104214295480008921047775365353742050596694016345381543797294637651183169730039546272877315162147198179665200917913610905979584826721227618823896152320173506937979078218760017574847439040199816193291771515028923021069802884938275010967739673032945642156463833421782354000312199186715901780901548941795718248964194854174048050855976915217994095890641354874160329917271535676703275572446488452824708272949362908417153589096729413934323288557630778772064583769045951921866702273380766605507077141161709992349084199360347951263449498835966519057096224879772091120900350360878460963034651595542271314326229086123490990972384197320696810045683902748570185029453372626500843992089669236956109476271725042467947071044947596617957171659216660049691077892459039466186161532176470828163660115831860966810123994118922498770917024294952171562917725493660787720294401499748506975154232502226598923958610538927963779487224170350480781291564432755825428998958760197495538414447923751377150318427316494999569907557247353051700408848851214478321849129751314388600387211440884616158080982865157434323242687473664829234962194819220216234959587335887359841442363371315299542408490496921068894507050376267344857963814594265737296036846940666795940906390990041422785084459927135430603503443386477360013552958455355772688430141229918234466654703497855670869107176133844371612594512383404320691025101535943883625056605439914780659553735658468845289812903224165483392157245989210511165404576180468542062672384630005263610482482346066725226762506169719798067616644224207705253965083537299129917259766606211000265738838086483182548587035654064911998532731037360930845267385393249544865996898318554181066815445985152663782127802427776537276192841656827946829197623335328434769377052377766055325867966912716877957378154554586033988242191136681785086133825869907387824795254783877506379863781286737080502272889281164318613028049073509294913762144644481245321110138555989956300683410776744829932207839649450062149726675113861587381027080205675545186278325739877826563923263827789428741639063290761097205063364508648709771164423317587635701653036946942797452998802315917741970580985574321304018485943299207834334119981142538076269626911826094674126816346462114755234693242792507327252242661055202353649874341067269310637849573850454900364811175677138461484126511156321290629460538542226881073229559516922381620305108370014688781943527365555569434784691872891078720996682943548533464517325507263915414577139789737179533337103871346244184169017216080153923843536962070713733701682779359154565450856991255518034015664659917971977601837510177044731861993052349556059617804785500344602223311794378628773562701914117063786434867637454265429942286801784818603400901295930357733553392621570488247151199479155182663792806236361354521440121972906766278750660231917750524270776476026062423057405567280313681288648457344670688484689935659419342684572033337056011189220043653029021504433019396852466547579040989536821618660697133052092524967163574474286903662978192669714626178994010588937987038537022226006954181535987948998047169307422810818742301613582978969657154802729401936157966720262479476132959361425350288037355591602690824805446992781793770783321429586336536125412129000351255408705038969595041117612926658921940140820302001243988194760572746952553292939287554039976695069542182623497351266941703936683237647275216346648893518033788176762720486795836045275836182642443109887301963023374556848802813189694365143001824878356665675336309560879660401088057605856260898418708646685029244381609494265532062151325748507870948262731274447136213780975865849540364722870462028611817228610440663253449639875624264402435550154607280607727120927216164941350426138796469656326610762877823992326916407037015617264563046987234596295369237638797575538940352363962008467270973196829430400561998680410929418696365090722156722354747432379873338035187113925217877087305329722091521425948474241426298399706355331295469559906738076016244208069390044903461277268881283185115148595830297756445613884081698330082684996186535295084130745041048724474514639339474956974185575749852313243742885561503668941116301069958014183569364926483816681184996489270994873610268614737696802338687862967812687261337590738002326130212394948651023437265900764022746965811579391636436814628655356911757982782813358690430793159445757503772463078644780920701360111650859259292705682818855841808932854152207687731194204733776255583061822716500505132539553834199173828976255970872228439026899452324657066790774369035047294994178635117645802469991894512998778867480773652576557187986267900766523155576396032791403113667719658481425684383561967460276937127679343289548013438968159704288079623554214813167822566366916247909652699645265077611636589085628934894921164087605592856603940749554674575316450442374600357062585008258069729516964673161239788964217839156979455667669322045847891322453141498815578712870876129515233685431345602578485683447521470246141222582594502589331929536919616130151722870505435196153587268255145145392049993254446782309466702443320536370233001116749773631651201818990604435081135261520331477126188554385515515070332395539011548451440319579683675600494683250189803530678346154808997513129440390314758924323032970128907176956006391948577418958290143792409588714771234503455886109636327948913209713919270298980665039809631510121546469123112093809282275507506465138894489706380359990060029857141153820567814182235269283982830804302440782952306372920560274553075747063954273638030410019456166526721387665608559249274353112322169077485202207280149678676053694556566045980164937981478932201939876146877531181120860463172659791611997449872164716588711063809227988826614422654680213283642398107345256306336722864461121644853540035829688304853076665040297536880963875221373778834370601802370870073462620758925994167698938602590297180382946036856953022062896432601823048194374680643748671684373812370080500484576645950473654618866871409711175341850516530389479428801166575193306481185051101442308625873502989780387147019759613158599174689963268474440093498993409590794032837965831996914599495310197403590862421047889115579164214359255966832534733911232132957293484358772799897515688104159271366287040189795155621436382499197750892115426227945246032871878961392594750559489647221493138970600352885584367239926269794139591906868918463056957330444102066120625088932962027579604753950932708325033802326003597490071169089968938803980040499136443485427952063524612888772589322746114877461475906500698083588801141647949122877948911775003916115564582889884287846207862419477734793743509108359348261560547897285465591312612368229179021203249488906577959978999435925338425262176524014536200763449429864143888351328592061783906999996513949495793173160672441738501556527491590418160576614792847482888174683701398008417088886075758624453837513432739530887225474321286135762259773037767368366598378553698211354441413361992382337362854649042815806700751710900528661990832287034444312031637817277932678564328263367823959834055973716108899193958762180745935605601356377620561470795807669303325274807971803888353238952897345011838564439838743546065647994810178555458805072006453532296178057093384967444561224390436785098796791965509272643355492651544138862014207600991755776001531012767182730351571309487443770770120759867246071810493127085092332756622090095896432024641530313954882127971025331618528425106244961557749144742133246772023170877673797066149501790074017061075057471816595061959576615352843029138023042229125533469861178410915855267965825953779339509743199598403945626329724939216212731958605527168169317070416204136883494690527949832776168893853435601579302780270226037847348212147054457227446949507743743642216854752810689814727195479581816438497619966263167062428176368464322925284074608285868107074918870410975489369470447981019324517575304407545392521742215239629679198943772797340171964217810403154930313484948018748849722039670141357738303259014518716376608262482066195801425043538324593883654865488419126238980959318899065925633936625935034419161585255265658328714174092252949473188572495298651207839882205824905184176485198969274083941125811702059699322782561044601167961513597047428400283765747952858902461086165709360657076957962910042441938258222372906187937090747874738676115371085440134354601390323478250903393631758862078189717187878033473121236124764296207162537560614561120498767264898562476007016273766185278766512597338080299657021279962113301972049300763801727555179629772848223509566326205378779334198803857504978384682562325972213469502968877606206333419742952946906136461111586011418327015373971537706893554567586431873566838637194392683075200880302418344660368712649459878093091338096733007260058604825149059449283137277408579448970131622588222303244086801303569927119808909267924833595221814028697480476527655265793949255491165862867494203860569827069641303963199344854381635619664648040710587572252429813929482450472695843527849454429775124479430859688618458134326998160938574355733670029500681058438933733708757401992175439236291196060072261913635418782967462992081003445393861770329503541744127863371854855565414913526414397307955787161644415356047394924634464133860797860235003930997757425801871493243206543509587879178268335093858282970618028979062002603520748376519052629735147032735777902667284512181333193583297683134908627047399597144606550911481742667428294077423756136081464714642156079263526592264555882334471581993310643770074271473087113720264875737961935473778202560089288592944731436030387963943715803683290554678203269077403341375469539552024156366364512091989497467853049383021046859411019357530431714418688106320276009735629928071556072374855895837073366772516333572659996207299778592279794118381785230064949280606340449045254343989115190760577554378892023033807049544397636823831279167307890178872965716305712493590915984646625447087275143499820264765545326833029614588982937006480752731032013505571000461999669397868530769280191974784066606993711640941072781247136052298193312358415800666439239029566969919983199027086931716177855400267307504739548456215710912903354606489742532464561949912043222483972635652624878979996178660148056067904667965991809928502117640848070644234394967021294047518161619851760017221048889576721480048448535335352006199540740597911783847544110645681901706411222786325217503146160096638678298816359782370279794835910897604568981534075510993657199181847329348091564671356962945213685380651597796501940691759117460638741089443356519138782063012327626013949757501712976307170187575427285789460500063670453849146354292942590926351509368609088676685358739956296794084617544970011659509468732953535156695457607256967501623921104011794653061613976437433484386700065876483395806191416110886070797854316766683275805681828192041454637346948188069685307817640149820197456231233596216346982163327725137580299575860230831320396141954400577005137860886751977482826291830396760212120862198740017651575791339255452059427550775793915740823129719297004062524006359020340915421410998921772127797782041698414401033428364327624217300366255582830094963660007163745618592577206633496677589561017553940054592359759932372945921066917142269939804958692282027675458066563647572591985806777479895767087282600555103577503328525858776105513043358487451857411986568393537317949766171720225805575312277708928061418960736704184775672329758492269297465192088008609229577961268026373402212125501175537762134659977849470266540401611760837704196048427331099724059228454326829158538223238203361401843819333624263048923179420501699758774801639809178261294490922891453688474253479034422665621121211589739464634139180108826824397299884887141360000168192417650016099453743742397065053953949369362102352098757295686208722231901193268526135670387100953432895688226073529417381482674951769498683476117586711607266714681534420715215256978929364976483776741368179571367383135987601956264217584074986809529282521248491089180144480880753208114698229447315568764173811378426194465944013406181937844356645255389263360848439912004621824193866962350546455392414109330033077299459614831773167047607759534886217386096635571171858444705316750173307884441475633625217776524449588084554633977267397315545148345437712685986699604706914230659948741903218592434760551113971686562504443849207950393084285857068083166476439354543014830043439732156460624911649029751407507368265545234964734583189894028864651731960942678306389139840744587095706938877265673482991638406808754644288837662730467468081777021608351197168449255332289018234253957067196607285988488956773945646762894995779885943610819408879079459818838059062462565301362188077050332844373519063098959286715531799171921208852563662018355061941113039263563250186007525324576470846411795815862195727033791462859137430681884197517796163330288425473359790908463959256299984290676270677631862817610333573843413276121008918052296622538604182612563206887438375020254627359708112781081091575386955499892404741231056219883239763277336232146980824639834129931268412805855111354399126885256065104378822762545292915707244312610368326620575897280327615399161766841713748921267142013397355811852740092174552760684780373082336352431624159524991121751400493471633197398796748208789633024916719272231648099754902267270773949304809382851558932825567589642883657373927324085230866209600080501538555374613064461882228214892346405728747298608306937058483743973344046175186289841443237331508112132658895623986337489157551712138184028567496893382904047586850394122301755411203737463756475069657324083334528221265763429367501081035623616769067063715278567854869874583697830365361163664837012874793060192597347350161434089966276115099257831738504514302035039106821585990922121568671428940754002046126113928519562445295104925360757740821986440979893278132244375944949067161723504302921039111553726936255509533746221365157356269194143208064426747262731168049817247569794027172455561489782236162972393935539843340480013675998339477854789754080268885201009561090698000663880053764163936171849835609096685418421489099698677728293327587439681358619451692387927369024423714584712751557413556652764752192928662586245212465628077090345136153009221313312325522415507945227210564898641803259556665995594661704053559451739095149057035981891929907831833771741369711402929166377738593485169802880727104357386798799709952073160405852323459101439488705733218113166786575856426436294496439095614641189995249917589208069063579239725274095430996877921971399679037986161477054994855396415784255063334519809180360392741382752279960412632754927893393795032931265555639372493250558381421586303922302764607791069692385958116216246044737264888381170765026268134298481989931747392832825117624937763115182247752808415538348038140732281429230025107937788841768628893461476822632338249055063445593371970290075604832804609402797114890671028306896948641600724927699340564510529069898596815669979817273846141895418809635212781543876956532442431761114951898453274282769020562006302823919746482145590257283914072321375509765134863368682751908189631900582185822682565351363325900615887574359370060148384629868457476660514079874384925873733421058059024415001726691387597571239631527080726615472803158628434282025443508280319406692050912489007895967453169321452030145633291823386703921810962741256779955091101613093975757797465819616845829584977321712773532419307509909616498734978509786125391760730246886398504060995708892467808723603721284727514986556378632798425161211753078777916961280465556077203276895126877847136113456389481094814251398325834697189730183983466511246296950063689479481729166374221430173291667974229218768228048398683886834902017559508448726827130435160928465372016764994782896168041547518107414247218800022777856040404152832800437126525902926151472201581741190977210560559405007611031197957940347452560880636210074159969064611723697632081756339163362208103404405894035044151872483550859639698197119918585762487528099603676142074639122947545028040984301973315050299289918223882444677376419766766783112438287888492817250136879343107527402640175709205666181452738360477240134072579119309883522184988002485258081739612104690266177763849855481315918018781217862534103297425006643306917833181160446212379183793215767934393324424298038748982218376577008446555885611838920976492189711046414692264752381399612834246933624599803096664943512286162536031041486637561725693525405232069398184059149000200527897388428855727011877060476640899743931592511651158422487230981271802473091028899000481269934297364432922266343111308745544736686092492444506071075601679040924063541722049892362924169465419015140058239483287262745572175676512957781163381667199023431991064840321082380199152725883262932836635973350072384477339889325562467724453574081865181709793611915035959474561668822871686541679123615542307786874306582573445480956390832520710438021818788183959836159425314336736808821951745409568423852307852883123461926304843698787870175803751642355691171975099185489051888775688132902517419291341019068888910220169169470521224572349523582377638300414866373151344567365043550666426548917030198091075264343344236342057633062190444204013555763479787468745882391023570002197497367557535760858411921436834274877916754171592651957465281486802564913969943990195285374058908222636680367185948408351185078776029452049730097779706759653975049422107642344214895001252187975307836801949967494395256972607250449255095277307211316517229379515217963414210674754223014087036867548567567466886966771538870343879237343144038401882430198397818123194560102099390298666059242518047852963747908043932599485951238989591649536265753370687075259593016397805776315935211476722403602679659448649354669912498766702158284790603516755877898235396138492116547146670787838616232060954995959417342646647370013495883159142176990101355713946355234411015335385812129098499234451933726171459280545605798442844112321078025861516710791056539160739931730410462548862244894223484634438788831058776316033595970722313458392526113992268390749139158912282513416761084233972685224762868762503076817901162902752423340526903199087523487554483499107885200791296268207046287575656275177676129530706267212724983938223407284950719478270125997117720416022225521921476783794879540517424186673600392060080731318748288629721279949489358636599978338038522216921129689272003205739856865043906495226119492991528405532539121223482787504486913098484883437755569915788076354651641784535055831860031998075230025059735274126332128269920711165859050898898448222464248676381783236663051614236695692064764031792084286155457645917910055354376871629925027866481642501440288054918690821497152636662056097580945946253639438895826651709600824015931868575783339888129360108390384947485075247174532249186626246539128048771548085252220738758891803019379103598069740531945907392292732700231386198183106009146042622374686268693568317751112054200167724986061950588963907779997091899376672484618044958557605820561831779145478233718273570156878263443613078134816710918535329726106866615905612132582795555205396402711946471853660383068853591789616082258380776944119023678281438937498961515731757442522757786345393457908002851184084661418261968733140546688459313720616908948886969908530096381424277566991373896349834456753860744707171617960321242239608451553409884465339516939023666051579803020058195050184403766291198761793442172702950339154841371156989038424015199579842758780490094904900175415486919252099846414652944134014390433021298512531432666953036642309328979260420548749901030927335660980071665123995906077794913683542282649284578299892052299163283206926909957713204101288160102247374708426085022035834548682847790042690074313815403652067783964833349362995938481878886005614315848274504743679471795463302074737352198182729487889491755770883186174139123742512808152628809669828164682585192347844185573702712316411010264067563176299705483554203595964353117046674707586692625180488460559816741218981880253949419316585373715136894366999855482140141104830019792995801969054931536157643145651048669342454445002690425055887674743764002206478108175999454160255315953841167387250386601006777040145007500261746204748209295605725073369905076129641975560582791838077912625346901807520604177216409589332128606889815890206407849927344050048083092238042327448133091086385967287987805032289195174384747404684874987953522117065414249848630297508997742339960047897432756128042964495587277285429810026026381073660008316498901665723196423884075836038187903357196336890007189531664848812893863780884667147033522847802589926980536649480339828373433747973617529256021071716538316045950115978662005183306446062732441406886834452233888931160376842972737784945051759298844040483921834549471166032800774955345252214860712776585669283264925010245474616322495352571268205628972539794515372337014009231389035888672024755739178251657667199437220168214414858616060762285984068114380965209327464759399777406352171988932342247982296539206679620580747102073675470905524622450667514321099572630674865233872296220401352973224763629637682220897247232271799022622590323703253400581146587387838607362026841836125056117984661777089019017459042312261170038310510885825669124536800431056153522535036924562383774593085022464388362935393266324343220729782105000855769100301778833970124100960405275805993448892052326521507725404348791066477945415665939554294524720283774985988076975812283878273919985675487609132495519586564017686615638774232715679321140383079708047347458251054409148405667504253701127394889163786173087633122271712546793305212555061512281702725460622287363367901541577826433667561228381754281906121288851972174977831057192871636676258303417638626182970620592567745615587425719097834186361840045092649812563329278542368512083901111222757696496219783490879418969666391057527443793840623447097981543734543199216321642731038416745255731722043787197888789365205314682015117656888892585561150315871949283395396819567248447586181035593685446044304123415314816455514917066905517702670917131273312447968843607380826827199963077867039839087534342395670217992721248532739970926669612794373743481699177507029890310904604446759741282289203096333477051460782642533772355936028016819420676332006459894085118105694131259115634061271121548964355849917414900082181839893309104871242156587028271805295422404656430890100604100712943476286327505169193583908006851778830431978215684349563342765683987883814615399519281815267969021002064766832391863206073057986182950249789857610047293222849179066420381500051250494590922993295113587838458683087279460998835096430269478972346949710589758355954755693755382167897748389395489075440075000202254492158320946102930371694263600312630239920640179921483904016575598368108613676333860966827479816697838070000910307710863072705713475593903628183976115547580822187194677707596230855721287519257151433021596233203826717698919219588597837948142371522981630192914753265496815805300664243929454020642010130432260496080611261513859935442557060985690512487804592871093994663339801749359863109954771709180839701421453886945514365369400133181421605834635780131507583289800077835657580512747181569284543769084700125690443895457057846228043474085355059324188215827209576863136576522012778098851899047824797066567649131978889321571430578366604200885434192659875309258018798998037268213440554315206148483171876005383902062191361935701726139579436125223829383895190698803393078560030629573154064446727406593321020562857960382310191863583152270468520853130985583397590791916555304800975055188866160359776740766259212026420821489465712924886365524654082238898498425017932276673823520772477361717657023628868360586572522607836918233502936279092776177838055954622914941639494914125614242726969721839663227834947480092069563458194566235208365109885603306779859407303545368764702709812692871422220502307029936558154206738657603143697121438010356912785455062824975381733844121103222997907433318465068175847916796727939315429187835112557240117645363050948561363820367309494395870774054742295521790650980101643167575150641437533426153450501325560549852662228817122246451274398983194042710330980695407819486157569112766512452371433375995677459442133625984514029394663046227479843409242204808714984772665320817529215013651182432070529379835743802762450060321737526265793368544791565802972252212670421107767574192283826438735748662593854332881438802777157341031620762672700118961403367338877668132249778979891401207231583320155264965528559862597966362190598997580554767763080828160420608522494078028343318137823117372663376544507857541169043026273400523196858134690253313563308514339989360175037624127471579252599972496477531007925771582721086963646770388702976275113963826550360048270167168341017675013827346295044620097521325514322141279456419260083441162403434377106947823028637542817023747257598814657242016358777485843809258981058852278004748336289397447029487996664612346925547165001334188855550307988829706342743589694182202953567056210717678249646835803601617467163305474226738377555577132079173695667265950896171006316090471844013769024201688406564080975425241102487256659225874051030787769146767092252967033484544159409380881514188441700251996926503380434466988975393155300059735197386470091833591463029589510583812305753309837284497736866388261139650972701960601101178094207782901027373675826231779146457167951143760957506015156133193875048215910955777048325931739114311013212614331162778480331674542862852402057220590012228921937719434780465369155720057398485571883524687727623478334956240898875670804351747501909336188376347192243046649426514575231947008523453368322810322972459268399155374153962990112291303422980753241089474320795486336597128307322365982699577206673289122251175749331472946672119333539830768546280450205096189556227673946843322721597557690298038287692298562754668283523245393589325999452606842124793886523241223561026594312464745544725738575715520955987590284569656791892770884085993967187910461080160642865851872138658796100592760814617213285528732723365273116551041003038258601193619781630245761571418440208797566547520380736003673511093152487031537806277042858862704154679268026844748525401664669034801519438367496688208228291220224387370079559704407705031793526849037130161187473551505079985836223304792953574389330218012714036148220834958218260681789138432732934690773290738306931094338040482322211053292442222252325552960706572230390055888326189021898513229273501072683824316967021081081004885283270224961630192070424343244413763020553790156540051955346866202068972210038305928701110754797015714513382165141261434948062919577300082854276812073479398271892886193079213152801168177249971469251531156635039296347447703180835318006020803513062322029849086319202667967149395612618682079426786735196953095749066184321732804463371130485669556705878465276472325824700516277501963911445536767092839139878247336892709354466941730857069122594948155541900073037536505594353847341161137834972894160026342409538725956467756254385886777886216567497182795991476540619627065221636006692472316981964680471235241495645090620299334948857043723713775963446288635018980237421976019682518505884005624966451641273366822039971620820035721023636888188989784608316926201606947217916074593688647422577860245108495253128011503273955656274298240597882098897048800858057087522656072159881660452268822815943415965233684423266998395187281681160946860283751419653989820194916989335474074659132885505100646802706703494826450828355607947049990289581499235242101530268443517785808422055581260276336056344098298295181939630475944842156924219697251863337675880387256381539304972846728417283703661764720729293128447809139449293179582295247709375006272819284031665770012163007379027647255488537882582086516927151684583209489039284004475655297309816176347998814065538121698677352102509882829723591363589277038502630136261548213665345686712913621819346239476153256161191795226567131123570561836435791363853529349560958706696165144529879192715363471610380693517423106271582574326670156792308169645433461496396916646200096218414750639895594452763550786544298957952355395850928991570951948392764541057014259603669456610741707696564262194016737607628792571223447810535295833381376497954912505147925903785637462797173447136890191486306160441805119044567130053934555028661922905367461422407628649203844512392372824633497784274280402088274888219483130014680208622136922273280581980427328860845982800966573082241724469492500173648982837218899274727780957006885283352950897679381840923237431020716478719633031348157112281944841895965902163226346060385087432712950917245814222452089054216268580365351391917184547839087636742059994410663324328009951611835799299549486841444740195266791441279937892763068743603274023048668238716281044969797258205364000841760218638891299150848034388882965536775017621571457007028016525270844082253968197635071415737879316412949907372424841892998790734200587329641941331591863684287107240186025332260398634564507605526892528704647432560870979019691056808009897688498550835980581006298758161637138014554333481159986555983450997317017336519970963479643154965418874827114615350106643379280269928129096080553594886256140586968758221126122595394254195092141962424794929553851481548699516323897259594319583352953585784081043828715959838257621944421132657393432096174856134986316240826830463439780510655048116866144991404828043241275020626524957678418840764884182315822727442639575085347879061072091453200761900284484867542918910819896237416416455498448701219354747183423235744834767163695293150044354728228586414111351844319128207949689975395398511151683163645790163648589003904341679950530489046049502636088842454853026578815642033465170412569524041668217422269722745699580970179125895008954847989696188800029472812757972184727855423576634072196661307233404466333810821718639763043156235311664232480100615471355398764559416943376505319785790154358347494036336994631356356283555705697260976552024572997921797669989065440873611597287320895885525299082781130423805120604902642477489212341949402087728868246545156369708973184179733941893739756960466935564225094552520449965192216671722330458160952990722521960390437300842016126827469531736019565983281312953006913194678069726194532225769744530702876413395428888975372472486404374410070353865994491116714650689270332131300699325211454108143360455681837207848866307595036250208366315015853532793234485348837914461942685414264236432977198204159751224692205110335996099580277254291388052136704926366427526794438318934775533958306604425896135180726538204017033191024235050045231531229039483632597923531196820073577905370256836558529245931259214420485157980138571023477821048795398366686356822104123518233250814979903019532572813586117580918759078573809790459028586063263584671094766005627057610658496431365845116634589158702522062937114768165102155884877788772214625766329290743442778433560616483932871567673270969255272798981344101771372167019834645046492545085414039657340704384482734755717932583323976468388797704898995799527254390677511691148800618307548868897374554119291061490683201106176726605198888818999024166992379157117355744097782623753545506730375636803563778636458702233472833733918262091132987363374008653808570203579788173130654420886417696222386761299261159591525264051743250472452690953568774950761936620065189345813590500120002663672162542571178121445252477774319499558225285974928954551552094862843861901390757439427418024204243276176102742343887576265347340470609554011274291561180991519190369707664077523400118951869698514185464845839358979285061704890820470904106782648290425922366342459057505662102771415237147402903335363435983701306759375412503634557621817926770442458486121741995006383950510731387002915388503462723430182479979087879426135639786298221775886647956112841377712828413681330607159571560134589263107425982323438744310249012908826290591603524330079174975037923968189652990423423407182346839466638774194071396637837323797950672326951181986839574180660813796208919656188529199807772378392271090141379660267026161143475891696493325138008939153058056990315826785706543877068827053772225773212167318069958083602212330354332322463723671178987420077311344757019965304785652179696772866270837557017266466496673926258533600000761171941170729823698015925662700162109370926803949151131843030645735738303488907447168198456859625326571232414606070712296165241389558053467060729342663602544390835139377988693815868480752143859601457137518261392229796702250069580075825906283805528399254625285363761496911450490417037109106695900398437905231205918256587415015254463071564818094315762211630273790556434083508058916621978072036580214131807008168872117888218830844688846229914302031994676130501043372663642987938953968175678650341623220114130750662649622573209039105245450478521556799987637081201846106014904959630620139157075971137870930653787862003360024830696130976959421564450140022920582341838278780839272954132456766681389572638794347544845203433393577893854637819506590733384589681050581860471022444582401344746333257047788062486123951958354376485590590658559388863808782118866185481519708218560864561316110911505122874417410849271492589828531800426568960651066328573897210886944472725337575514640686913764422212863634165969401539455181496935698823876286491158688384109231994368929121841175878494454776826333108066505565287178422717225945113415886666373225719716220935355184635242602825517779814467610497275916345245823860288317232430497526157709565920920326432849820509196872656735019814248101031172488792431208985574132702383865843974325278180562212367016994510582876191239875091234829298561708611518130554544458515564903281336813134425536368055107667533970187585968127595959220840995804901164681631104575229432795573952240706919156786241106163887091599073105343399466180395768835442266277392273499618488255271229295510640271414683705448482715703869092309162255459846877595990834615156678515069765838168501479233642801831531270668541330119896886482468564252263505833868347607129927457462265595975107298154058165391779642710938121822855420391506944354213084712945498749552771660130942989469561701099541753927646914675782217059678913356415219532039274075897070900347384632099751676416499137049349281605696502229004801103325927609263947900180121331415504340884915827338260297261713604600049303665548537256315941250544038210576448613028791566879093408151084182691376322818280756424260693014791384390074349548041652804343631470487704149527359221322919228216058591435599665384193207840643886295853077376615743332055368962304215920152133940124596064944647463206076463373561446923891341731509424823948621079215145211537862070900150336090354880086511276386755990616725916624743121531421945540094902500440540836410573536023640886994994252695084887443459463603626321862775111143508575960637795503945458114437069674919475974848346076664334867625062449676119923916869623966833116355211071122202604550541444976706321370939847128753118362885059190323378315922791050332536206143255590644959120255800118463631690146090891303787025029993557426936491072670738729101916215177342985891774523003532191191860764861954979576961901167458639396955389826311869351356105370384438822073491720058650131233197728469865436090879897848486060796855275794918601116612774580745190208708529060471238051704438338601939737702716946449550217349557023491677958771430274318132150085472004640647584454548618966859966643249532475179093563469171171833659956307868875708141782238298995112824209543104070701787394348368270250293744276939289237963959062722016898502504619747439881137724630092181516879297671528357356092079960810843938851303616130632952556094016114248355718609700051652254716315165045432624208057340821892290277771093923522577045501874328674459339394769330049351585976107277259134677400285655499989711711569609040440150314879764648197361350722633624577857158988271341276936849266386629852240304525290617591506640991575799734351034677013907564353845074226331144039096065551575416304053908918636234321130846136929241916059692677811048094156148214408099835167938387228447976980896929979339237677238665036627277996469931480503858314915403219052263125921187126834086673737609047643321474890505791013270731058347976270484220914717529844514003923882442531820193822598901894900067465858023300685099772768934580386498770467223554871013361766648868475921270519441430692842891709741335038170819981526633304412148851890881274624155882403831090954637856297539791677215476943297016451018607636278706068399389984458138675565098535383239052037074204626771560896646540524009167083780377663503709673043073949859810399530678393149543894278156650516894590787210067967000662313605833591623086852508956887687146197456801969125193393880718237607872137564091131762493699513172124714171713794900297292447385979997250499257871908696468780445416760151763368663051757197859656906817842947730676819620494043748579021535342645272894217230648140716584107962472378416006344644067859420267990822217314647262424481243215870875436025210553814092615911648854877718926634700489935383629048786059502235736621016406686097124280753308842525423913860065531338957271696384583905041191977186580114927360924217108227396194990197177411633234729530059313168037501807869901127587106255925325024369885064249582002291033814000604782303562297924354671718415244241806551432578370862381312438675713974260584532991239171419861726980311855354356583406903269646907610711809208480133942594086110581190102885732563331182335965263529555356765341595491923305479257678629793686865945508457984477050622771753880404083998372453111471005530480725506695832094888328676640587380543197154702641049374680259602284229533041915780937975741369926075596506758027122440742970061837222026082747759210668125613471529187757318571705569233134262502991537873060765771012607565039141483503260531572030838904812493345906534320428914916947265593939821154731146589343326475053238771348821735909543948023741362656839174186527087418439807091056586126712379479706980291669804808419221846961754772385673677004869694595368784926588456094175133448478920001056197310307841816141554707427527189295697480927978906657854751543422759091878010258944936182241164471862877830234411765049488687530995260346589191546861594723813191198980724425896542851272857411484641034612781960924904862128983477204496980498958904570005299716907132121411030488601601001471076688631746481589808634070234490030905432670502625830377802264389094413221265250936479763171789802505962322149941095719258569563209284451666446048309707058476217120141162758932928380706155330897273699392085537885379261763146590607407738117960935909091805274397166850086775708897845304263119616499766444040183778787004362451688052909359346202898698975149132298594129158477110211365023990981968893272359397658895290380593341062911340873661383010173354532977218969307369286187841621815062009806262936463143594234275116152344438578192851083978425646993104878829229497735830145144816100596897872653891605060437778915641331551954062454013408141666894945495380646308451065602196180046786651321487713326445018673821008126270895239577171611572561573220040075639849656984259624502054761357357013441034119250115072466449404953348774301096092087507017632025673666458056504686383563683409551392134385675003225074112101864840182727639037409010935355256889467330048663089810344893316261914106712643487777577263117847932005920879047050111546898449450478298138419990406068230017620901464066024155535704841880994401171399954293428969770164209222285397027749836822637838278735868168301853875141697277987077787920964857582594420613258901156238887023583471961444300817514313528465115336348887975586693101960779157655369453979529498689688942426645086098918506703946089520694126514013072709624661989550735042168088371125797179072630462089977776551027535506196435734123791746590353775226555670968930197632170670960638880470293470388683499470697426359047295504562614407328236139191040702615546060743042777047458393228785079629651895424807414713288747532932557011638958763707303182627690625026083653374905652745369364793468401890062538697607671110702070659420542379564212717982927665124558006458995249130565517883959504782824254874579842796198269082279535902391460629222670966252833716548261532690681737937044758020929310272512007875949827289026037732035509103392950619733914907018366388829894534463822374806012834841732904459734484372106361888358317392575570212224551095850614536010468238369285389344593673013931946814383513398970838749515992020221192216222661171550261214833426899435465288330238453894628537776993799943554716639695103769386909020577174093667299207891252753485051440349782021913270740425925823769426910331147437236615751238265704751931646937290065866301211577242333304080695838120708176144371951229388809563797680285815057764611045867949490026473267864329790926815324062269222226188678226736723781569610412627982808717624276224191186778916108861642338440599015896998222945218726657322070243801745028707859740170065667384933297868820601201302115626429643958060461092535678321424624876091915173201997506344568573007513319205271641948632457323470107300886739527690279575094396965019851700278223179267125790768205546892663257843758454730529039226475870396073365681417635845761503283069038609519727954819359094005385882299741494675814419389615853421213947654924229558290305857492554238178515112875439086573148638593767215580914422909397706029704399132291874011909507033383638656417523182538303424541902247335256777720752188142716345975733428234893507076694943998335206834882083661284452774561785028423015307521625508782877652059052932828920067660788023042347902934469707838829591756318110320432985695796207334632846642755235567967917451830514599992905320064880266110393850815010128880219898207693868081711101340165273775560405924765971726507412921366710577537707669849628200816829325536939590147080529601044825182865726388379903422926776680009970392953273275727298756000967430650791630539469346295014576605638852427092326023287532906545584934403321545939134050687325162242600707924938189104680396310695186753696609002722998767361634828639848173773575390011367843438894320536795410592856310474237514839027285199542854250008369992179469745514751766939567062348476960630861437447105636443655390443102418711684645118155285975195004289374437499014538101410003192844067067885438948016878089981686690835121186514832561935484911348911278652644473645649277339662321218842995175200944839561638685167647465236404540497487844225776765188992392775120302544258845811795253705611448301361501533040261553817896235811819535775872610625860770027968388171151337189051623053233229765606792622040943424970573382634429021954244880119171451168953594545278003692136179081438769911347464998196142717248795027699317739023169759749568227420416420432172753977794056695140390923341167076863493701338905506811895451336673438743276942906434443428996507243485353094029907256516636223145804312132531726282039361599095255980543959531182464002592128520034245729167315610165387261270271424147542809392355299093223772466396338379496897408489810795325899711948542330257034365820067390872750163785732557601488196609934493717801116675883057635810408899754200853901058179986077150425148031552505109775170945108572481397367129638986980160871966246825386396599390101519639798179586288381588483580603290158889639525565526324813258471427220115917283645431147279753443546398944790490723162257834731813034088675530405615105581024114359741913863351502550470521053539345243421244789990136480962396453204849331066904908800164093530531356733516563359089369158819060613745580849780781482146247029141617378660291902408177997299543825893767051491127046088978028296517879947832809299686380571287659261885319681984256421521169647428091981817238306455493257371757190672498348888303689230751636670958509640675342226486229930624226494440673120614186625724655724235623687715512593074443529960599801151809327362409386745458696612731170439641843114898284057502358648606850757567585575684581229259071935160690678365507166260439773008459943637762711583388396797743414257096371791847061846958213891225655758217327965066283048427692112408000581484978470111404399648047559495161982229942089270594087234482036365911967442918225203041098768097894322774016865994392366684044571492326912426855783326512784797138159649996700212897637444007709195837566189776225269978666282687298537262673188358722289287980244622208150976001150136628982336089275935237046520037730969433118510965810608236564296027463606442050282120113631874954391523347183499942150707263861047825116361713290821546045226473922263053490976757929900759741950610775639571429375674658455628141906235897268065719846008783716192474088896488185224375631633215361286731133446227715918723694936322194567341136670184199678733367978955160499118803586286902307510884869130683721229140628018197532194607052389397232053202724188114916761390593078438556350473464839341414553408456823098493509349143090898706795560239904070230712427852389198904548804912006731306312073746597745158311705843485419494021423861150722885612483470747401275714143816194031359634277431167833850082923739653555579060242131406203939289546934493249877419573658418993143547691535668282024436326363950650174746421734478687889986291569238939485524723130212364122537767027946000399482534996486505092909659708560580468316596736037483915638815549645829288243848909526101359448715490964719352410304549278211928765900344849159692778603691825872165082944370882381855143653694083569544926620642284842757657082914044236905547075951879727846369767138244358733816963330421056777199337618252143471019885629200967288621181587095451059212880938371131639379586924698613713238269622350221225376927595562206127906239836632715782736917840478367753005655163920487971948624095187437415205399767511445072728997443321264411595547866002160200500556974062801008073514924914566071975208516766413165365028294989558030892464517592000269546446118981164718194190042260849599986221529342965915070653941692443488234377117539352260537429464660041064506787649399137986005785662215722819134325143690725490724629635587248729693609957818092254808778297433358402790397491017832174360679497505427723120313157354183189783993415627681748099281619003000291387275249601441153545126655546278760635864286132487989257838624503766858015883435985195219771208675125344098092417740224397203268394592116051248581581514371210551711267434777575367814332384317908028604383363134694023961485325307844838641535958488170555906992472950033770158153455605327240602753131746012754163658243905084696493826182177582630669773533864801166935069125912837205113159654807101774316127726936452114611570547007731695200746094977734575323051885016794472467460694066679235472185484516360418976181689243388126389936616577814457849978766853777652013411690499174745723621703638616942249562605042323629342452503985916089650110039563613430302667891521909161888719274287410143210715675407375015424680183765549032830922596696316439913102378112442538137192047599633038425707499045818261508744013544575297738381772023276725844115300874487252808226514214147024752599949350213517022023794085640402783880442327107320651170829540058182351405320551447960927777228416405604799501655055206494633864313033636250773470968623158060475728882120944001949742134049136633135661121645175485263306048015989710246305509378024762670842491568795759512817173665688645438566459204410448373374466428647443102720082324400178736466206932036647130516284380834915241103696549443762549591255578655160078590327585581177233992558346310935557374635930771155022228874491555766625105241471117096745460596178043910127394586701254669668172882059465754892760335060267616661725261652160435881368113230284752135360670897622708386909057545696683226960505203894343776470342405955482714532304671996915421076823377418498903086691702703061578089352323859221530358077515239772502661485880070571659279523242061457997834970409824393034297420766772106213492704945582324638650131159798119411817643238244960850443770697549132047075544511310955438310262831154946452331881988494665221410941537665044985663615197596679909198859637797511326564122410052232296136278948790798316342034119789970502807519764302097011949307373046533642184092986800720519503756003908864529306418648915485281328877428442635661011234708251750940963503651485868777178361178239084216450144625373035439253383056166820213853254104128786841903163257909872472601667897654932793826371033694622030417219407293496654934430750273445707716485427348930398584673115394192348250404923052959758807723248640416695314010859787319613737021708964477273514619397741003614257573283146983902216459970840406445998912987619055459520703498451850172834081408394908508426763284676341989885154631257228208554351756870099506818318753514497891507609602946933532415884989893402559978782115876725576051745620491510144604407016234220308270000482902554694228539300636875775220515566445012838137512352128653591838282884222541643025735739625578251997692111668002400221549834579217485682081265662537506348650527631400838030980863405283135544450158437350433561971020761783443926259088262766117907909584695011522056776861636914050912928782041689787118071318598841970529020558269302206403057850391734588369446134170545720725622036263725279893013266229644639987022148472993660505349724051628675671439205104965592913128094002462183108189631895044359652914434491429528799957997450248479647518331795822036804030304228926458705807176504180368588938100618866402167039531344248929216017611902286690088330526998940032859342428109248017056855089549239174707095410060107191825276737227680473952516462736980443935687572108258602048364669510456715108738215410660535651638886113867056635244261042562366532046743698337294573650410880036526998984548380789131479468741598313101210768181664048501284123085035535130973843440421859714508655778095275267469541184396458853804403702227105185950637632237062685137199475437169162751008206011327588633627394313035746422389111164073986588083133497295413134647150309670227654002895117951834835633858469093305880027115543840719337647939474958778554843247307717582290121139314538330981896764630262771781733340795428700767918020871577004846381486166558373914764659646344099054665460346396020135178898057555657943028779611404075102418770091718426362711428522228465128055758345836130148665496840726114433414343380733787384871463885712868186077602728991656786665731304288323802025043115379682047006081525706494488033978303721659467602139937660791405435674173417344184368536812904541947451895611363990034777349466637099276573075811091349216397853782547738456076422008707351450276193061269932247446640650679949202907775951061935260101476514581658921073664483076485430663841488571784929522445924106270026826315929947284824916054764014221526011945805538701136622106698831451678126598375110681627955938467080194761421982891718976018566436248649726697605322507513777481884709092522418669180645907200883902470157136991997055272703158195595809037494661288405435730308558487058834082304842419586630162778561330330736479118333281956984644366704866436604915958061271604832747911164175706498557887355856141218208435395945449457908280952936666740627806065557663664240009349221848643477570575344533153872244914655808460896596515754447895999303462599824558191593904754680030531194944461548469590827009310501087758729599673658406250136692484008917020936291567649997078653151578220633752981216404264724765698698235393215602382074561672929360231989917070786965624245485125850483194229556713140920467137128278337563943605321356083941944051402381106643199122782350698658107514123096965795566956692156725849110742659545426522520583221205612145614355689928591985409546577242162321959906622557576488312693210233963798005873698542247774476208542170148463076748398770661708640386528391841809536495380331868365827092696256704676897757971864615985060007115241809793725420317972232309064230539188070384329638853817509255331579304964937607048142154325636448701430213643108601105022988025248340662142582974662003203330476151151324601966302625700717137122430758928667445377386183117960292910117365275960332221308567674155730485995515542721109307143527085513516052432260822012520880436584611305134958166139005278264029411903668987364767156551433976667858524925004410345852019009939020270967981692706861984738272709688924425570798295829812571863874282209218134310628722032228060551497266700888900887676587883440603037863678245005824805234308248841149755292345509521595572012525592922674224653002781668452033879780896967044628266886122710241704309517518791414911053418249103747907708863133608966951105545692292309181008458211967225507095074974985198959020096803756231306206762713507347946859639754586974387360969135515379133511348490969634395743527308007912431032805209412929679482471843357828410663533556490782528939574711384254709263523471557903420690981376365041913597802886609739697924167572157207350537784072213489247397329070159967964853032502966596306734512652541143700001956897493702665916545566355151218061132550568198721946811535294944473533220399170641464984434332505833243170516475077556982268752610127868223974602259378657242443548013024452291318849270403031881968366046910292960059660734293772875957846275556298656538158745663951337798621794842417800848324683260912274071753504989749698688317436109882530838741131815598597341732931284819928769280123052349803076571321975453632975758646923667021927537763017662097119072129526864226729339877157811936968982633718088563494806161854373640471844624492979780544061261922135489509044765206551634473752459070943395789216002365323133447312093883242242879594988067813166548569230651864401166016098710469740713389015192192875713966963321657122002820346514531370484576837475503631099109307326710696977014714297017257099798517494456318177190660513384072365808584242779137786651848527666690497644191466208413846722732845466912648857872943729937860752951145161282636293172871889495827120060880854550191543319905693551625166077632401929721873630520924701415414251257781466751365886088210896746929422602519439735916086691797282962171096129750242291297887115500809470848807541017782516830789426914557839244596966641118011234249003962916317360122674836490236081408391477886025227295444743162204943128193583287260838317627072732073200251093256021119093206634687910662722702118644184076963948446786846367244550943500907669201252865730589563832916135575436979567322272526916124259842542447905354505811389209405512229136768890421310472892279506297096313735571393062853614284951106802881244996524056518854245633678067278188725436363074887877304154645365212034823691723846609550097925810200511131909141747024092740985381424387092110139024870504508458589046438459804409082010109107540815441684532554543886251190437934769687899978264472679363849923517799816498582881979294993940682711121904584780746284574089360175825703804705798895475390796017753580715396034200524762145896811019273482660789482933321452088678202494400708149318622862348949982782246426120127000462691705558188441074830931604727552263199816853597437644448293756762596805695726067101997714293216250292465721468241355559842330523316586323957417752926921800407089741196748463836536649951557934801904999376551898780791435075561171410943573631544805376788711139675866404995870752344914810094164976597281709055459789878218167702407170734063341479661342287598605040086613270867409995243887708290938320102393021750109774684969982121054847269401613721882134513336173593305723200973240719848787073150395985078956257099090053188617125790055390531776491377042194445591393313017223922624269768655396012398353718306064594869405584889617497296212911420758143303911873003226877729847355730854324581887464752679691159996371387270969609765106679588995325709390914821671625692088489845077200069449413578125620329996189897174230466914173496306297416401334897550895209417825588395352316368324820211421293436148424318344389738939732977010272127705657988968558523723365871613731388645089304146493973915481802774960014803428156320709194466482716092229400999739895029192486904544753203729033845195119384429819879543888233619929840778691931352756784674645217408334936703943078110188241934492412265910535344086814622119317366344149407380087110688029139737064259596832609468712516105122807776805013705991039727940131637343879246493169562190907185093490988612491108378890460824948239098596489271741934161132573152545883937947963583733550991472597659659189720548713106022921804167096995843942473633179203858429315749863387086292298584324010156926695795384570993630989128077952459909462646002584689186429589312131343448670809552375656676260295897519445020987868727553839911161133197669513550831308181996236022544178478128652837422944859897938459693407017934896139387257286172342323900643716176393922004853888938360120526454563130131946775465276289440305646255242056653442739952196525643814209328832555923760508537133569301523068011959515385758382740229310686125792076057302484163816551057662401160612682948242577477735870575464414975793810568772347393201920617204786939306251993412903338702892139721827103718750009984177323334772457130495046885402573543455923258802881177537213786388102505324773488329675125002414525407359014195747017645822419679869868044447531214775180009709314058703232576101984275911365153580102736585515719565870498104134238900838252648573919043996557665948788555156676136174260373532563306692511599399071288784753063182583840991483943399475508580434015771679830404768381724147902698176275264145159363007238971692552284681773694923915515216342930140196818647464739034288540899847923628453988331545853775803755075700536361940910043935608825792112106093802633943667076228951159072925600034736027237676559520686632079362252237127558810175723999174084785037873280733606361136369468574100101360213570239100062792966625230843496714656884220028668988238442873491019997970745361177373073010523990968833840533393000595019366627303311296529564373356450292641101320796861388816132240709543883660382509342107609062988741094801001742978384530162869331187674526241035648297012959897146154229845271493247582590518991952933757629685099622119460227048053395869662222710915971033715918236393448443350785574486668596296095938790632543521740403673665633925812498933638914857584725812015435022855255112500674451984601446191622469032863760736387369423025417283454458402947589173733966464795958411735353285231587649896321024815688443173666482391402198553404848033104324943112872283736034566985337840694196817286163301472605047064130581104821791798910887512331511572897221209556972953585992017889964174774355313427632004064955332039903858223608487472654167514349543171033466269106200451868449190639605481807102643354903769246872309591781595953853323475976945462918075572303741014916550947665159865807272148862683479356850886662889811446328974679278434862225007854625617727368491547365343481166083352859682947698491627910896979771264438471047426962710023987656387931717734269914970284389793613866397867317627162187839375003866188491241582653153794472596920805379481223094190178467393752744612283625576481795865599732238692343299772299699929012325760787166770453048259173208791067321040205988626850784193539771018538220568203624852935650067513728434839581630229990818706388644352827894750964304822922939398985278500414825620277430339667832603582164198154163229797898597663487255477088496627507380135168422645624524348199733613048834598883758790981001161907161420022823925095863829984058228223737592587755197462934158405905324074958601980816436877530218670454175434053223075355627151743000304298309922891217777740015084102999118611540256844861431218675020029550133153320220824417109641797748014645446404703475875345095231862771567840085457629869617538065261563328154077334485095697929056982397423300056947981117302720085410182952306397723784225720952737292906976708017010602780756240954245723124612573913611844260758287889303214199521891146210293609882006855798283362066342746228064286041139213343018973440041284997721615040889403448515045822711827053588544698868452618486649764477902115974285746058778739837651861196423544787748649222295285471534146406135526716997822493758101074638248098499837474293776018459102009568523679362077219393005086650831222457129228892939642159063963853782201305117895698703467128607002404860070785776671187849279966664919825744837827747453090541928102479373042568015582900029639439255110640618961782424553013013944219305587390362504110519279155604333340695371870087034606380775220119691809058086528512330093164661524672702467264243139392528460823019538590477146708637310162883076078459148328952278686904539494892121136836867845119502111709758883697155474643533483514339462030021321044326382393643831739704390153449169669031964778186235640649022079521594539838602702500776077607924044383248363842436944524920551585316820807442844095698630513724798351616142364885369894494386173737366772260716715653534213886013763870838563862007427894201406287433720933181005336043713684599141980543125585774543604586546814644795315386443407037695934730301171129635700344659236533351423325502929650607375332541616404172924599011269865966210857891991564061829798934588479336772588096195520708506186614950130891298061623376312417408117080066643768106599943374064680305301905412876673410748462261343423722617863566099305933520634328713554310259908310676904952428283526699955844347723894129661850682396630461665236199776491077552636243608632656553722274582554811129338196083499941142476588229520448760679432331625319116374094042741954146056580151157681040815155944324092920521585776699161062778663542582599035561063965740105577685720347402262640468369590656584166918221986132041182205496903058742578719556929317003360763628642105206267374800598617645781501162660352465739881517549364455005987450240087189692545844758169790674148003716843682318679219844008543478082329081822143855695744435253845672728447713541712392699988577052729270495814824177162813748987507868331611853000286023054770774372617662361258404353455350761104776847912253703572195981965480988355391057127425856266929363662751571861709466205375064577370250832219346689992202611993662891301311560183840962791706829170107288464979847303360116153232259732187743734880803729682785322764995011542180082298110351459460435826314120437175903315337452685230560201718392679898827588318737623742933347800582970678806664459306261435789565386974741157600553030295062089811562806707232058832391750659126071676106084506470481300136545224723625628338693662950081832532352912097116861225405295500726568476860735900245986664784562792974412589399050175077007481703329034776699079444482965189423597363933378799187550861457364210164743087867115062429501438875333336899636132631356999887303902802825198960853044381619405148177092617729258376980712159652902151487964643078935551006395942359964339872970410568696377896817908589818863757157327179033923884463429028530335312967185791677052194950487646076774954041770127688516681168367733912672845834317834338448005691955819350148808099446239845360736303929206123863376594149724859302365051872412107907816814551189334365947184804328222462355796739016510201135341464795126269898971567413393558237864164000069191195860263929227037106151415274727876787050185406884454715292944034142388227344645561908078517966456398742257414751548755365727637931695563687002531978375953458689857846372716287473529111049115947384295890572325428104805596539746697849345254496205924739777610187758538645161588893857782034222918765467001714213575420923087449929646645931438434586967542821591965406513537156680113067804019002857006424057428334688741122151403751735495398540599924163775470511025691244984208122742565797757196760403690500516135067935663727922786909412976843732472439400388827257585494771826283130823110923952822693263758302456613473783901487106449934474823483099786810230433423945750079249811386637202148742714467908619627666433664600698489073724694514418000252889066363858810473531060802291416624945482952646382474593121709690565032192049612114286577546305436149414303138122763528604345407201960801497044272318743305706438701371037897939347963773847187733814595945972021058584368988607703281204892280731542181547644888210552060558283438409130200103716364124012158989885112178486506302425741521815922922053112956474887575960529606451624025463608375338374046825788408692428478143625128328385772266833370834027974949759938762924050316034386331571346516790022948761009085626912841703776993963727144340473613820647684563531023863676630406952768559722893418009558739360860785787272991725544592340917278332316186779811099327697356147743504422460357774621748151306322812730956421501000610891398589679802347890116753163868504933284598828783452257566631501027152628930296143100626607431019008126579636885218358360509292418023436704344273857410123961921174491533441457480096969222427059463788327427479747202924561765138445991923424055512625806176132248724017910081676125176130031746885364857804457534969941236813388592246064275788044203303955166418848359333421531623079715681612972340367129229913626279689175286827182892301823199595056786715831691050118655430415293664604889060592358778676629164261418559450923038467954260109624579687283491432838887615185903528054923168906512667056306652134607409806323524077432783176017331663083803526999408684848516452772068237352891435309773841146533063870362990752068498296005651726322743148292513239601566115461965154700907996678588844685375691698759209352611470717083233131905715646266550251427421404726959994239183920523965123343248334678232487942340883267672384346078407699863895827924412846155963082516990641916124939547993133643070729832847659325784186961891136188224560695787938880867376280799521752218254772473972980836588415262094462130935019187334255079527572603855330731475087627168457910392110048520082272666486400457776615653785085645769842761991943102695931578526591320974940324187542484378695665243126600097757766388055285429362651163294193161290403163092981058489219098436522961264290845932208726712314941078996523193033103159182328948945740749004140560123409526999206432691070825377513833149653482938047724133596316076417300542160761579513815920652702347816924066863405111012833513126598813993653289269414198090459183869620720645942982083264455846732536312238639929399744599568607702836038881970548198939479492286823433233203151850341399256542287542630376392617752591811939450811119728367582939184943609179876906355323880001098250265451032867016751070915377137895759424869795233810562581893978008487375081924406529576672832349575277749757763805297832384556702263167191897370744010403930131471682775407731560303522277120289819335573988621286978584201878227462999017723332351480634556957644275176481035528119190672396550927606530093848808573363470586798038111124484210348816635734110605236190483265701122756808059910157985362608112523987712253866113881126865118360186972747295728549977202212954174803047547680108518716810367631417439015307541027031861154621220843342481539105698122001168186789895768169630693652109265286321458935074738890372072134375622992579700502895068006985220552702971583011873723216512783064490098437341589246579344318316904036940510601770677399046394385064172315576141951089916638512368695790339914744155447678404312129080602439643390494415890043400489913128187671222861458135666496964578261615895121096074713843822328265100232951749718299884785216034446227896433934870518395913915694037938798666130209730060962679280026764166502263162134921662423659015240979164731076943292879413267017726929219941156499540001719078988058411792354310425314906234858763624991968463716401782413990389018240012819043828231335887273849286830994416362611954130495141976392040902253133699477462162353174017004571761845257395990354852547791206752548601866356582970548754461675184730797293784619694426220849605976789712140435074662303448391157991294802394387302780187497273834471799857520346158197533265502727415475761228923859411767401864261116116124019699702283902171834221435772903675867614101795744360759387539346226772373059094430881142434168179298710455738699085529673091741900200326038434089473454820986575838105246284917251205950945219167742485790868209849026203701227489687321718132836889048018095604355575565068726561627046438933231235792494078392465388043108134926713206876580784884871786552351898323400909318634459207092634670606747339590968152317217650452021628989176573459202148567758750888632362711434704925504005450498393422830111658251836268422001556240566469311822773150114978679546425473960931393043310064564702635983273031909050810900573392311542294616336555964557671390120276973902632791303010628934632939439681966182668772388406060466359319830442919737463173568778123085239634264571366123038476919378861281582277218220001220028883942132089214831347752134215228663170886770496325844620618571577395276026233732363595338526495430868752808153947775022134786960608878101940964252656607976094650267667284453686883081195349183682034861245574316963519258364695117837830451410382976325801847950707693199474120499633615913430098579058387237374285296636801692259357033538902641820155043074421120121035874868113201794191004818290594194598553668789247786776790024822404402971829306649263538774287800604388336080255917082771392139069666096739072117238617788621736437091761673714645759389059206425196716667092621954368725865574439229942906033447892470659048336113034736139947543001750589379568015541148459724752261248233670627781501083095979193642491340285828593696281725392264344775841233715346604693608955746602281884538225897057539978052639090047395285250636915245185393728266340488389387158678593942643195063549144721007722028350730680057822823326741218527253939890621676877945035331906988567071324982261177198165820463627042837333806210957554749404322255325288828996618304246065574884275870135886632332795719570370199783400741163354973127214212286657695953857300380711594679427091992763440855985229609261866503207882850657816316220561320720006925569174721063112090339497269516978949234864407775085586610887870604458859121810298013483722456578275678721832475139803725995094073002800402172567535457217230858205193116993807849197261733094748981781650726359151030279932096763025487154399057131156136278060979018727831028463950502906426421815640476780823190636955248596534445822460884674353217216191675582299340156413075464173860443101689497580862065650889234369112942135243155513553491600733539578490042958635018506411732780944305480577572666980847720701228438046869501236117138895700928966103190877113560205757192101201684582752508059405490610754793000870899829440209702249291935113443150476859619345473418589373451801560550783204822381852755941638857749743823485387745441407500088134323414378012051449954298870213926828033492552981241518890428890630254891215820952521560109099047759378466790150886769123507047067766680517638281891355248360511734440883069137802108501098121208423232079238431240877026746997917676291377270667834206693408465914244753493979654780016448421335515945681956797137794619407022755715508292007273418301126674471227831725492726216098984058938652261887276304085959682608049123857461264392100267778015628432469611432024366584042132972414092265361161655533412217347436510885506237362225908210922783237388482276722737413327035076275230635833807751829495339495041021676975095877288228508523368845519480988466990170927480164837049801225147281430219662545111834668541946652818051255955095637331940155576580113963743151683974464723670839323629566522669710192210427281853620684807341093840049055526584365658210289188717107239614957151640431991723693065253150643317341165088835356163209870500017475478911215199754483334918021562128579720037724238827825918571852351473664919406405302810919728535772676091142697846556137058469147315807331899243672667373941531759921607328484417125981368582736176306332661080092699734109255417610610144406595332633373186267409554923894106146407196571978146927747544936648080029227456261258517256421670070299148780864841245020326230036726421574984661311949659293582697076658908207697705618246768087176052878349182912398830735623644468952728605573140532985400265074692515188694808237289990164262049222803228467741005652988095405524878597863162877736098439153086232568377811277243352032124600583219538290887703505161709853074339823453885577739893193187536092181046547671353585448390236263367145419030819142347906255466573769209215820396116434870082679905880775606309506414066315559228838756992258727744374132152025481932103599247894277313784990037945411066615913943441004268279867002522262805424111172442364216102744990946374637275197174281587030078104875182615361800310606944802400618266512029319105691135592324336277043674745084499309476672600396316760431026467077321610861661230533535939246090003033074402501203060629379476205322529224020007675770390920278914063567786203710345620558266634197988348449740023378999332123477092029777437852205346920070671648107321689670805742334090189452947837069627566828248820221485890906613390735626814856494381988522351494472597062656431225654693140576588753478305142253231649045636620710696446465700333945407463947275975714203585636809960375411046448394151691278998374012152417875522101624488328605507317117813967402191110196065602576066444781190234129360524283675384693931297385013886136230451637663725465258818743728882608623022508514995805840620290584589513362025690910448076008170471795968987051049377434210809078818453813461858915193649192117001706714991001060936861498104989859372496037313783440397997178061858926230928691295192262036472951490151410233268291731471740139059415318248146637868874764241231684613556076361738005542335589154819835919177232413767404746662461197859037739966114544171315107386416437079630574603715457435241039823741238129115980242604050515664920116710809106922350478305085447013823675377295391110774700616764787871674896077906290491927427225645214725979298408347510855884960733116060350082765718162221780089414269790189891701888769074633897777595060697428305241411032334712700083665621092960586128179157888574185849937315424461659244966050098425867496046319624692269816423929277772672886923254962880949831156176238642174629800767614775301718936745621056916407874747601442739712792754192500376962082225321832386903604435065697759129398036953054103134100463488620116905972723721294835580637449373399073722075080790609523514591169565016117966890701907213531634530285148872485429831110487376839600852694253890056756851783334906531442737601899876038657657016656018423625028130134134858848385287233207104951872892909296039917763047806929753427699277593761216186487469574615204151325862609328547279963786947119331496556515735219837001259169328824945176858779097264413209820656474561051908594611033526139976676880518183709986323813635299938349869699736923271184331073865337922921411857996419709745185241280617056591746663762290450499787464263263449754347974055209030625619105608149640697964301167317988614759788629566039915174460914210273510283713033009849509781069800226190977723101283766510755493634295802781498208622336820217847762992824243236443285151391600899884446671403243720564096800005513330645942094921352948139187961286851132099880455131041043195121196512018180689971623714207094776361786566164888198286211119451399315867476388872954970595660757106529143161456561438922712954046077220768987743571370157264592570964902016297250926172152935148992517142191087887149957143168161418528795369881477494094927560968734580908524953739341419811051558307063674507897909418332150371684800160321421709089223505121436372527540110418126665553294727666982403224547428267204376481462935001561044842885234633156789252260522127441005006560671463421116018249817531763965685538994793936408002200390729999046061219173973417861636020933990412968636227358735940767638317147982555640497769333387834648011379276580104304528140479195256764181479777335030348696195475459103132364031038254415284015947296549904333115980681242841705458224536051801558285930900588346135936254471850418713254897029293823493386115232588811592036230156903687038462909198981227356560479710181392670497430843948727029349153611019769047858714435463528406918651449885341697626321477515413565542833256766134791903319768419197703999639797824687666640092275316244247150350140923555498362165687048951696615535185292040206129732850114467893797921875687746009832672426921325219361703651192335591129390723251734949065507902251143956783897569351132899197129940335027835541363107136729090990808645625486711259551765658343071488019038461222173201467719714132521492421297300957897211808753108998758266910829117776971816990609827358176865545024024621210277580478802353992477537294989979309579303067619821495808252562770561347251363390914576564394575704769122293248882057685363830411060130794032298684893922433842885553540000118415451330475956317509713956453085855001593935353117729953994075840277671102898067450518444692716704867715403832616142578241485216370289531232727695049597433375654171617842850571568060678803459849456101336825807421738705632584494139843792472189739067481066030116147510723065664240935818967967982321653203203777790275805527468794603900259693557475787675950844057234344199339328632466569306656175060506383841757121902541388157119758327850135326996093270934883442735945811061527356187468115459572145871392526878429302637221700249761805239649337501922483873398959029086740976886937475073569596064269903704922483103829449492939342221516374730233550938898892780458850353511421936892757790663993599503039065320735180253245922242572606189756038106070620786749549830742126959141722119775223548910405412349084816774886746629036755669289943393781480492541859454443682097905756837730428099654553036911825488007190642795182421375119126673443808349347029718513683500317471040861619809297667931933945239677492741864753934065352011457003238081481698440799642483540148952794687626560102162571499186639848274501907535207521177413667584751595189643206544928298810815828602111648158728642267958728203371461459158914493604245897298831299225522574162297081446946203928138320757118102081359302890628420885727938236292863908644518333629430138784465271706567798049766776848976518241409464094908073394620124637079528608470421159011085768457266657549806629714940639868260316468451152354411572376765232073469538880487404289227691852209095946650923818716291132271061301707887798783132768477630183018277560808774363346918617440788168076490117786225614994999395584536604835237250626748807539654603710685510903314074164870140648313494530599389770070587252882282582910585682500489808944449434153244055775683401501079781236453460964108955865035829907491433421280036874608321151408862459212035153599038083598415797786684135986305997040050236412406583824657007790996249955784364492644094963696742541832292987810845830776991131878588137898773669938628644724884747002584632498477575236315728243220917339432967220903324219209523882381068481507607849104686552176626643226402995900285243704329330283987996397397961536526062128148852621299591688156007613571777539673305373045818925419157549781633013420463399175629738423861782969551338322532215994389604647666202486675473145506356397306598370719618665152082151665989743347768748720174124440632774427470399126807795856807173857199258203879186961871940443777798135250924330898346860490944941099464960716576735926022592967381505907095308529004064366908404434200962330394401371370723213905843562320333701007704090132441771092149920910610257140771516100824209234756267394728876434819690460869440047878943813914730116745733562991892081748223441312072432130499082833338756203366152658695178041208233847535173262664616912095779030768083679215117841827945437117213394901702746466628800148180967130660604235272444226944303658955324605442429236131485202253367981523122422814732075715345322259377337588361053821919829958435791120691833017445736047885169527354785671758600026887344193721057358086406836623885868139655011663692401852249851748741624364025490031941625604941367485827323984627060283135932087672853800929890996242618769481778582740045823991178709149811852110178456950667908129656320541543676187606942439896363296314430555612909907581844715781372789603661780037604423284376669204891679048246759261370624934040277460670849570058657538112791310028047461617221975045166360851838648477594851388551321588504435408799444863138246659867852341708356458700138759700731720628713974034717717626679388754989192420142258288596432714479658214836419883240911967870138619036060592224390451236339577144474981961644297179278178171450583685982974382448828985124488004498661716911847120301857300051477647307550191692896249719104919396694764338291795812803531308578953696148081889103268907518350480206819410705573929267587249795509389790334824324287016448588161341516657578524896139333837506050396284454073934409477748972376317544466192543664712635481601829854440271054728664935031968620293626028866216210296878566595443092043884109713202872637990390511719202069872990880070097020333462591163599725668542963985107406492072463550609707569104402517707523333670806049302969879970212722140127351691990240561042828929441160321048719317864754541733828322244019798205101107438141139581768089543330085718789755913236740485365532692314225267261554690621420254635461240156762863189780267204895127079492381736971310368003031585783595207100821831229099888191937184301607931759584987047482719616453340138153308652526010866212718462547084810377491065520806982939563588319714393120721831037459711378401971346576534080338878173995340432016128684395413462378907276652314958504794424272024341431130339804119398697656475538640241392790607448906043144418252502870700794479673287543971524259499567934234372307192738427905216277089235290457782570184357086232606156515520409795922774450038650513665802187872792448182584459370836419370511339864191589188463453497152711649769260619641444089170987642756584025969757648197392651691575589287831038043433021507720221441339447366868768719672030945949161106218292712642350770884678973570507246274218791033189185021982746066525382555438244472759245081879635380195358476560572846577717875824530748820187463249403890162792988571792346214671856764210960638330552717859240318282118074152928184121718512492673115902780750838060445009645058079819414707214800257688058841079200465689598434964350748014962648877238542828452639681342212842873907521223204947073052709873372276906832141728636999246290327878859255062867588399651396387825485172303332298845911388266592626030736252290483397938970927396605027101188062582477730044231351872402468527195737767308526353894043762916743923359908639460961434988773941530592096311850857618629759475686701178207256936628163932695483053730979093419035813745533003895202619693510648695845968696291592499235057638114687072272298098901141865406959344367835904137475726519396544834624745365072844276930830566288299829385525927583227389361326173779665557805546600046149877084545833115252589006297453922000791687532025123014003376634151737485637493747008177348355192514225422702317020524270744157871024626913871309766885993818415311540467347067272137469710390228017503970736555160962832645027823610259162809020876363242308841189308805342298364401015501640958974005652515344047252400788508765522807727187035168438451058880223385073042541584685902447418196330369703541071915354950611168821703371921149946348022446436448216415644791035957868917067206900219168159590688856519678070446925370209964292688220600896059045618975768211396641688486625816525973588720686320370049820629438380983899270165685395301280014735483809748862158208191849426240086967866672563846053406529703357194647028476093082687560994495226406410494763578091319148176894684802453561487232753041972567345550336388078393074037531192111447821320835353054970974959992137027342657744571113792306207671095161011827650883033579350747327645115843166540471057766785177550391187710200762214289671091923484568215022994466095604840198119714403428499338882351301434305246829359036619814926022331442969294262393157414573823158453231878737456117910493157319039034197667113358914326693145874549071152335753122723609886036096904874424317543156745561144869202231354137596895962306276730756744936583969091051057030138764164274945122164741922264413063730086576341511889044557964265677500661131049820133822354313350370042890768265526685800658278017674234063188936104829793931755351543403742961272041823676150547063604788187657761650322711124334270696995870935903816623065909105218248940406726045997174596485741567166521939600692591654871938355575936746668804511554391582572185128135188409031673345765209012178218306989799752835233146655558501640957473008219188088725851930615364453047784628759549797832768841450768417021340738387868052625222243343028155226824478463166345610042673969533279582862166013285719960824935092071906645616749452579733770261159346009495653215662344817049641872105059802155187536622458112864767589712823643993982040854056522199728215512269742844425434097477246415016057518369701870207691466320918524708455100335968590763201481609609832184007319787870960051060462632302115213251789494456833270547825795069820743081180004017070404295353390191999508968307042937251222070045994331902050359743643348185468982113786296759803177478266500793217821456272421690595338797380518259768619052644484997418694012700960366019206813722332407795861767360125643465196932573972790498469075172873846314868318937156240652254405740881403090424560924340258354684233706625609039805649749100686330417738214087849403061275703187137444528247896041334340298480410817632879938491115847952409403067136150470140651996292750113347878158175177932326364377318887954936021437958201267145416972869405722631915332063177482499491597622734554476194728042523629361341692153126792426775240774332236773200254538460579965365763950059079619661113081971079084976695135547982324873965523330318914036944394268714479044737608013939326573722056538625637945148956475618488945695177187837916511073046278939635475778544291969142208932418083747703730866635089625816701898010901750192168513400703905942609134068029976424982567979838684005914579247226712602617717447980710104281343291521135927300386211007038182065941187294720496629664304192532697589203771545328998073185843482747340036842370999107003641025847337535319499215976520821263441831028468089200408688531493076003518394152449615887217291322835712812965548269651133460949738088181768920374349802053626146209456526768318520540677994766870539509097929128935530842293609552265847937627001834899630779789393064545494108507678790616700256172010471257992242063445776932844560632971067691435458202180111152136932665194512954628332276850576649033307810428559038922085580773082687883469108046842673299973731686228612020880953685837191456169589599444529415959738975096980531683105929261180417736148616487743701026705791387112858905806749747436067518737467103960137925190120253638826381487317468585730750946389724219343922626681699217931243790276578296376010341133427787613130774175667992398838766953663476197246055255223374951865956058998032781482304840775305939215411161015394757879092190820950697188957586281638975980433692275922364650154611688866814035389719196233108078841309026141281509846876171419330600931754678571341996518894781305812123952994903536594416054503813588459346614666572019277568431258950688828745932956053480387150657386450326053223631841918452178749513749584892701555848092013961529255148374692034882809734986247028202496628825548403941641218516965229505947991243429186570782901314680967531080551796765071464288123116056397768719160130242988922780283548635428085571196007998439785481048221480196485093375621180180295731365949789160816062805248929142419784119718308437263673756539227015270466702917719968145708258113960977405597566372276948035492123941012209889602632830683144460141756559346128360764989802449125606841288075871035378259955026573064022922176730273958022502268036631583364463574660445968425269200864193366046882441503092076691271053028391759041726029003270204161515288821748617514323409584664049009411362306357134270299823250329548146508920149698952491105187231276891120214823180417716621082031024517781490150501416490671577611650221085890844049111909643475700296958397614198017800161212800469101850284015529944027304075876448262831913133975711143926455820239150685688232877962306056310710141875551233248188193035336556729556481321240349750415792613652045697004787782955328890328612907327833213835401447076098183553584375640659479140280461860972872951812470358651384096768388388134243433125083215884528343115006025211166757376408791032405157318301065011651615883666490784489777870063164044978976975207288594297473094770353878437053273132550393460758063094636002318717873120054291955563091851188741962350958782405974225058364657933641489705108162844191332423451104358804379861048690817434856962985930472129099941082369182460571428556664622913085434597243736422764814692415780633251706046073532881072085649364583799965159126172510437875020386749574424567705515018298126646637925695164134313978585953890261659323942066189439258708744434710734902191644536021259575823573152343489692959172786819519971567201424117717255020944091590401577359687681051311439515783583692048214894360300363394306059067664340884835610001637955473194461399017411594835803420068949069929597926319698931318044798434887500367421323019562717725368396320915967265869273165358098431908082861730149651140333303451904191541176623919004283757507784478412409468500363276191441568632458945170414401612351640215547621712616639114122531196309133408885269900695500862035495873313798223264560704320106487588301377377319004417418899802758846720560921210436070751373004406370753219948069564605120036063935280456127406566349183670273717335224555852197146986240669887192555650025884718391398726336554076535375938218021603246811214355877067805864257153675219796130769167872306573593879854335993390041986610974256579347463503993002947389294229878828651991209956850153316429178723160307570707152900345426369343614617418761165475982021527425627179674678416622463019977604087408454657674194035498574549836440950812279739589820952677953865669340586897203046109628703003258346257635727672087217516465570469427514618995723247065495999200820677094533351239181617853475771759803610929775736995172812958756232038705286318981603209287679882438784405316542190854387421147628764885664142988116108936872984700727138263471572809612194661279008141725985886985496981632511258220103681961808130868327239844961042741064730054573249699110074811866469134184404553616572339962540604724517540918347004895036024492981817891031905672800203747459038780599169158840906670289190486310168077446626110998797314602290546132328891668407164669627221122949584546547944968203328743085470183636255825765390437126248486500371817211997102189774609354843718732912131450951130422530627626298029152861379307593655838471039912875233368326009379638005743725505522800735509039685396842677508862169025743516909590908485294515988594994152243682131534472285871141287034628904036503708035764589361278984158892246162003656127249531309925058693987822990283430773528535003332816383883132095641469482986712473168558971018791887855651821367831151997633268055788184026279719880652642441599162675049838721007060523471757712415055974467879261195747984537429778052351393903172019710895158485632975239080231172806639165828423357732462381067223173500386225767849246781991839636392770598273964228637715337027169902859844721520582395806930075011722237016653110747048856603557327867217305584690946791039914260284242991041965992436621786244250589266477028670032202923057537128190799373325915098882522287377071005767439636743045939502590620639686788512596395578082688786825116750993012000222191882701298672930587209967702882749659194306336314847233790663216809699629487259498099646361377566917953278278762137416450336841114749043631831823385094757848509523073149798197802058187640091344948903670487100570449164879266961423520755097402507349581357043953872060868740848591332038495278509418745662274219389689233717908588000315581760299875491224656652920998376675574871599368039673277794466869651479711421598775617503292010954830323078478124188222612705296473931223782796138085192680900119399265658971573810501862695762461696099452647439317920969799462548224696492226560756674831549759273648945262303599794683040408896344045110576236684364430412472360581616028225638254471565024517881836031192292979385183864345448279285085133561585416831755769912700865473611175024477474181331715679620560662562004806971228168724171626725709374497979044771507121315772738117301953409136673027659159544127095442305010670411627546304081443164315622491390263209005492968866337723187727839936274398438066751783609224364121837281147985179001524852905218544562472800455083554158521312052268072259865990344910209335383623388010303974710522740003971393993731833827303789922262872066028376669439782724749103801906550830969738521392137627615606949105444379230972051367691275656818213137002810888783517388511958538612563076069739469737570314152795077090196548273246447265194368685719648094014364705745959669922034022284773654381302532976270959763677504569155960716830029558492445721052956251336843558214287307800829701603751440263390497736684841934270042379383589826612936037168778989966213975973505984972591970587108808202983135268995829888895636581990728960032849978587502504605825165134092320860427705541519775697671490380897693177394845893783173159412968807597831441365565730568380287742087794972663381343061418763042092941495184981219875690527144460285927646158656720561817666384507607991058016199065032514703271717080923132686281178941206306273041360705204899528020526106748312131683782596214075039646558803877808791145541113359255098187834523547023306765287146945720300858420951667088232976018627951455223466733480103422610396166680396930783264738765766223771659072438096283232918850180817678358057804868614891410685479968518688542555817857269221313062875105230136012252287404708693544453159472244108375473039372448213835229955279989599914521946417062195821522087541420065000907811796579675621376536050472518122656410919345931985645607726263145223287848537590203622025719304601067670512530359085217814971754093921257776177337221550065041511255347738975093498021782199163084604245367225546445207065174155032928956865890795392211137853640064124452303976164674073644641106672952060769621266267723499866039303648404563543041015085901385928446314177771274846952874836872764366664342712769507385001422508349776824331722133567465021030975408430953803463739392965010943168878926856432339113571296280169233277342713215003295784470798772581670627399408406215804623419726936951819664947977701836650520189067039145174673898141610034331871695362625568352291834993580969312551043627103942654150941130404166575708451844044942854319163239873737347905422425592341825252332712827381580095359025741737779535668639222911400038319867042533678072396649774916366258494385734701783118253438492980383674426984980066645507997728306643011774491407467410660837749147232401651916340709581363585855036532267158909812033849369069054040753545700078733065517497478823719511383892453055510913300219244909771555047255607967957205375475605057003688037958146687757236155781676876144596654113871516937868227210964625037406881880539307258944091486237183936462189433905788914587666512324430332127081431547997285695872330502226278472097074770899267309348850235424087407308119387256316657157628977133222628971032766186674602791149868279549112392948584722941253739947220502733564156537131458334396211145415862835150498152669269328008330290703948141660718231321330204433360242227894955536190682943318284776155636320245917794072188491536286580481517738696504651261448728748389411056841697401325799509722977500409251991309309623166929573098983973832238034673535377528863492463387212872939387309089411129305596145128076702792208658173914108666640001188302890768765754743673142268464460202360506052689939471558438283917724666858758498442304196567000015134964904462196077135090372128358760990172015256965123623653891968867672894054910727057787866037990224745494706329297576653785102449278606877091282652780331800660279500465861389465804540032276269358763125209287460935317352195748614774928327380067886088804146356724151315215667195850493948138102392149774886985178519158246401986115445831998770624860772725803121773069605499119905358454400937927586944985889863412679205681990373666992308363176414985399334866236552528635160496270952245808794534834069335857717285760487778860686296989663536032327611521418998218478032264214895098341482717100339877066828174810273728134780770663812796406129749005307295595894209612318823262401010812643493318005135956437423459366523886953080842058094812206008905281812639616025236367150130812019340362066210980913921700442438704517451031072661310453163237023870275114502128374032104165077193623783831168657177613707600632650125196111212958337310746580009975099890082795509476078052184737435570800973157292421570228454236294123359377020586805974789890818434645213570384565799099785713982183764850630742071281752182795725897142974142616541400358860985329110347452395709392710329826821672427856808256264038116096033604188493050406858321622276086647592817485170162445851378002718289060100165517173928109756824133439395074169221784399005830881814728877793279938601737063326405533614595698907923808177856202590264354015638221783687457491461070129548201697087131283577376720074401041642827051190414307674523569154503919284738940806677287299782923342726510053993698937966506706318126311921630243833577557618978223822859744408635221103132932149930066502850542269783276718754682415009262819740680121378159027601986469017056202581847123106819870395951508522404593096101310643408106564017944979877770518185425008926060974174359145112956593738020886051766930991403189792361258951347538663515290093344591144032694649800805365668946769732575484238106938689277597755182715255964070810839682097464865508571325029506605384562046510983834746052978652175072599306899591723530192654697689905406975679036496172873175799986012786929777424695418681248056369029762710634979051720729469459461148587852809298559978661815527752433620413463870076129687913428029453594217761449238235346200453647631916090367031265073176203578944514604191179678669368469320855121117680161807211636039908504583801176898816251391499159282693816789195550322673728860117528843421719122587844620828372605171777391808472922179420739309404691113662525646634512266152447042521133452734829994100989510795299428669272604986827397750335531136652559693287181035358490062901828957601215566836507172827694007965394717537516336904070453763159717349503414660846455740971043592010331547845166914849319209815171003780846141353670554173423932587880790601746799733109229657546093984688364494695278717143624578547249646141178062651561709397537716170670578163672075202202566997167127749462902153177850617256644654045654734447904745446461598222055830333243297836551276454534476183001785324271165299368492856404565005348349881605832899217666438118424040757535468638208733607642281382421054585530065774382902749127112432617570063123298776410730139039119263748078112553768073569904795301767473435048077852095678173355300641937122008975672588224379464471913781382991634792914922984538411759192857951322847388223076692207335910860423915111266386080860017166583399090612064096377344024863963839603975080878563487918803558214474439570177100790916751872070436050155891331001329839778257490227661542293180960804375495704725808023716947132964321130137053573757466096011485033130587654101150826602619465322043921875765231823583704515792622024446949337116313546038531824224869105893958036108483857511755396721131999242227516759481937440262301844315941175011471149601118320846813045785307383999442147591466213759621919260905023448924451020101499264989156338341121000611523009973507355174250033436552411149024023130129026681118038854205458487878772905834519579889997832961609662294214864968914530986313548869932451631831727714279231880318378398595803257276856602528961871350270182068975985525760907033046330678457505795846552494036776674261719600174627513976466460145218767446568639151695064521287228973255262908779551413501043277347051032785164242111110912656326665043581354113936368974309037122706651104973913125388314082419950373692551715355177147903712181220513537980274241907639941564636143603001658231967790300423482953735904844637397194187592249956428654394699291745877511146401168964290724531954902229523466713123721990871285950370687472607757744070244177922094129417118379198053107285015128041988099257994217503973624630351465579903577288431705227448884659716524419450063146963783641670923139160594558424662051075307434322688049099171547725478634036070883499056350942671076496919871081564544988638557707958985887948960033227154289074506734444291725007984086304538392672355849826133664832324515371429143018395544491197365121021468842177879315362247416274724040869529977299920388016980350848642833845121166840942163954324865338132756122446108538821877979801860107871523041790462976976231022489764463984006070508421238155776825341183188994038402529278391622043611752167882377947756006542428465109285171618507919864717036337383136097191155092998216491512728384661038960738737593628826838492155772267192697881551642424761224357879143369849428591297928765702677313979561665760730305352456443307456808670613838247787147729453203325784844038653408911689750208251766779465569819747482963836980403770790417126878375193203778961512047546407396153002239390455247955250356153015765627795072414298639080299706542199586838795668087471769446604403757863532937600678971157044408626387029112785695807793684149458043404044686989611911217594830544070543186782553507398218324658044784261102033692769288035273177948758073395972410519041491887169959401928438533903644072038854670981477043731541544795789346803317181547404488227710241451491942667474473204479171226690793726785320464718506480551389524749950847150643896935295931630458283387375167016463126917776848989230655752763430134976875394962873846624203787969484552797524035778885384786044568088145794853345745369386325878342729157057744339191827777746031670574891145602935983770604703555883445683267467696249276748495125728768699669060368026497946130471836614787421556871321183630200081707619250700418902425449795698168098804636297305401195374908278967962478983349279816175621776319707865791788168490412560541365262853271648109002849815996623387355053972278615613938035964405948100749675915581217392192634153887985066544231054055907881001746507726293571178792726372861883763195787311377790824832623965383982361355129536194195540797459000057055306234655226905489676840128158921375258761056983342038859770490081027070613962072338123868150597296079695089486750933780541446532939454605423815995752173977949999300341864794580086492422818601362435527552358984581745213564264303144048829233270891888989881092243137723879200688521218780062644815451801352964857131940563410143672929950102416431926752122693834571023590352019598893821087641566113084275662597013276120222638643687987987645647923396497609226022824695910450839690306166506836683956648779456306923169225153346862947827098257751734280184921095317641403434745366711609715744949722948588322996460069977302400738357795973671873993143362233525653994906566386255063581160957487336942387703350828567416389847008321578350109699349004970851890532584951590684730743346171185300802389987067628388128897914199405066681735196821211331101637566951342041246965376866613156663559300189832019422205487844262336609248476912294364421248796303811247106233644897830361058514462611502846198568122492890318024599733855236346366152998466284907231634339053504853922047670093538556682703430830032354307414429851458834626647570217385448998931795113272279909005488352043729924390565326077656712774444553270382454960237136759326381471725511022927689563323792305214783986585201820464680978850904645867195234773101157032993789824498424207421219547529529490290924192632445903143908676359970062335284733645842692849410754871002637604671701736468305945038273493686335912087177290333931175340062331788504348729827125470608248039979969049690818144880298660874203420443487541815947533111507958673660085649271228617345817582710010875623363856322208926636522173685120411581673504528614544901988015890648769894609485541152614916855196096964112494720785640875060767647249999329600989106192147188173801158818989119708060356066139590145748850441464345820496418685731899547196948976232108075150311177734263702883633593405870747950035139147129434572330999199660294938728522301379716365871562257283065021303568792938585255850108491613258041901034663719264271125414501237369948366851330240489789316133405778583183986107321446184222393266445518485293956366516868582503085471067562306717029115809084062129395082617716208912375394394319936813216711828789448695185770322237035593205834980533236468863370237861260085961101916750744753677691650001049293931521453106077742395173006618665106108328869273372311677643757155983664666482396626084757882650651195205019719393090688446786763014044627330349191675650918605846729174634738722534393541836895873635970607419540494738324646239713365153574471957937641208280679562719066443319414558396475817963791397329555901715841229528877514538320530030696559497778727945970791331760297179390632700117643953629384902650268178762552065979986573052009266211575593642154325943891056468119710848971018039356628411111845109861671244049119110124692163056466001751948880749650238913136271441475607046955959389264407732033243349842406423771030487316172440179180245674939511224010470252228569043890910273502872272019759506899326614789870233469192019481451824125113819513956653361793148842813145631284946950372640809834700617328454610556474939473988620794868452633881924543623899516974937392971630408662719840028921212714804439815866780407850553697811004953376788637087635441990308158993952367460753733610846889290819119995967146657621866156394964304984377375438945689975482912809476236207747603000724747465909283462432425683334268836256496080984732359193067070887616262079227127356877953352086356958690585677646441191927894998514981799726496586916507521211712077671635364860564997407083886337094502734722291125613131077499189871266344294783081118811835344620487394229380270937364193054923901222534120400294205103482002062813332750275976190888474823228918257952589403960247865770859378449513416629661547240270445759822505804974184356504872072821985444252985065394513747738508582668472735214138288559531829508944483425674144174599402215827694222214229094520410791068440059183865068319525806953210068553264254728130008847133397383182392140808773184739401469024917392137466379142051171344689870403795465846828432022799426987087174665356608485317655880941771375628808554733739891302465661221696382261932719200832494022114833291945242610481676165345104489395051243675825465102039844659589063587430307781311138703890308061451133396703968189494817996599485689326373874274492643011333619526601217648097355180132409918172272143587640472325051348085757051194898707616199192588957092958473557756704714781832677292147194795074523288187990009429944512369514457500824810685405271626513342941969294465650144977836207691593350249708319258773615312901204322264183182649223793029251328752026127662842564575995266499823022409796657204919492961269038178247500692231422371979476284070254991690377548283562560608162791656491625044775900136959329825215739096715516127579139821451996336419558647449178409811895172288591315774893318008314540230024071895180127967795930293997341971097917043335068250823809482151707671676709709708946343410049018909302613521870109857020109874753206515569406013954993714320032836944294203822193105949278297729852202985943314362559514902523518965280440790001122668965689633883005086326867595384087987106245910033889257914963884898971044249711159511591387347319821029314427253114926768384418028642501366240082978640336490681399130788160877673719088055253767203762871004983276206067277348159746581489351865705627952195747944528324697503291165215600140273581244243179131353179166326066331853743594956694514747420712605373620942148024321023376910663889785646257568061021895992023783460611271325506015210319947362257333248029763849858811985969869737432448497467525368337557853065825478291067092756321628743990157105594640795318243618806860331702875342455001294001178723358764882824873474559373710619597730343728829760807029976351784147082306135817428287994770305452850981107279184820708483481651510508929402524512158424148378373560082362015634505692941944939869849104897924876528266831493281874113801210703533127836676803560131329044161535455998108564199479594135315010553205777755978549430894588941692340370686370471490077228446301049620510157082124110745152302104372023058495196637250320016690004089326640905400646443136093983315253045096859715987991806198945139947995395745066097945942337951401974867028661488956771042534318404924511088204786771976075046195268798985101139650496337342463001295332473770758677720045916087556662407886274001255411348643143119082618918503404276313099845948418245600386236228964659177475621953088310603202385231558659891922813880386614059751100411396827014397426675437053423483127299012248758292813946631879540614815574136236365106979754599813867164410092701287770751175510386676323747158442138521109574976716301116851140840551753024510597238872758179108656846762555914487041262756398673437192975004077415308974895485503397089352742535064694665301061856488563342731839851538971653974124354322450977261096362425880689683784281387022630927201838069021138485672368200240569746720962181673830504000466017312209279056176003737431951842994180758182072879454889021613573003520123544534010548448199003683767029536335977024607329010224048084650136475158785521193272818808591253384943152575941305334747834075787128820162535129194538171150918884395176385339953432318476082313313955446503952234106734102312029320635957245110503670736745860590093467355516954909958543721388677363373176741534140530281245684316036356524728884285633757615955328617241620361393618136876970462356519168648191924730123218646644169172776890409225089024212404153393953131303963168565919233396015629371782934609201880676916592639798053678423757690960605735586957199934362952269552384082108080695199728990254677989726399890477806770775962693258224149714836373467670534561365301127037056835016553360737470798731858515939523439354732712445440188148743007927838157616097421054472540506651758981116889266884369710875590572443749177735315051543606949142936806686696911171772486352777390593174397141793061279658159796377596309611119860472328052356046765550638129311910856858745242473594111990100997310729520363602578594354076915289557444892156015644982858166102619787558767934089471865101994140445354177253899667852561989014095905676893002288673337550223843509378432800604482095276890458883751945786401590369814804990778390331695644359560820445170541190072460761462340338685267266858139108376562164836909766489411120089773330740259863888085456264965671015002846750356633834796683566196086198432112039123965551596101170055974493677575235440225725285977071322713472981845541250531152355431369908592938677370815573516841393885165448415143080042154258226805029172642966577405902432963648875298792072495494291626376374805858243392718669010338863781945530495193553241961151482339479038141680773323566339248505018956084945857180740313511876665028521365478954393256974199448751470282862593836851303595991175527389489645638268454475414069678380010960779147890267879630105390137450817213021267108991501979836466860876951380713252931116167925880962875748251282605041240795594686857987332821663792624753376869542425531862996512462904398518417221901499530858721112603968968852241904961032168003304524590019055096859857588499785531432051909206619739879295609745361550603804962525430854885982329447902616090397685431375686492323693852880424646868328172731762127373328665689869850876117843570079677537831927217925977695752964092115250539646486252832754618290805476205707234295523681452185531454553763228297539796887124021524214241377293810192093814589837459339416331950895328664203386029199777325745894845992259650618173853979097571183281002988140041930725957974874514067315272963054482270815211463160145668477313257864088215615605054236052928420972415473775000776051571042162215401968706047453585000440950226316573940859575438324817962671670165279184018789128910561230813940164800952454559448051518631844573170929403604604942951791534700147650365316017450707256336253067275553856000027614075233892249864607753400677633481589787050622394018968758752549789321069518575036097536849072715259155634418123715301929846942333484218259722510251698048958053826911000866907181234443452663044749202117486345000178466747178592889540893622943174879637506056171500168197124374567468680700868713488311313014969674694640780923919882980406282373753113653428020960961201233171169319528605012507974284253023802896232858169013427090399921995441124254126302748894364352187247156698773937681565646304580723445969498893294658410429078548746077735596100080327802406634709970779709585642397952566007493149142195572357902157113594233424367882791175281129829130954980195279216222844340180508896529038002237549782500701667241239614945000100228706405227360882345162195465183757183952382009572517869444561994130089000800832206866135376377300236728004900325907159225403825190616373606410365179654590765889222398921173734214340371388430123378977750182455199072837217494932006037992207370452754453247084576795022547520057034523299036914800021743261538404614104768690013020249719245591587725274088371107797107667084529773161874018298432409662243441430872698677072868608757317802275451140648385225834063805138904578757699928077447327385665531707629627464198859729322652563958263517953445668604737240335014162828245895332905278777407238308020903848498426487824938739272335521998296553183794570038660929778330132061191650804642151449009395666805885236773357743621829357973030086988774775597297856387662954789888205014034192905706756398945902965040360319617695821701603574893245014100590275706166485005882133369881468441251613554872943762194084734531709840806480723073775717661755138869974391483780802206159843918393895646684204821969427000873637568664931505913827932420619504795841746101663856259615577921460830086278330586116036243071897023248139890719095196765653543653683047063178101843134645459760039223577463749810167345674860604851015749553998826612552174459315850144362925181162386425815938443097495643076076616524202564089770514958015952710154798342795483540017926691825426784776095206563692365014969212286971781456204342845926081563704742864809683943038316849405224122530483810643791055501546686646973168438371266730827267173811343008249376578536270837915786114475141173279229711730315883600549453145517911519162805043983002972612830015631537145829978185392097842194641321490353955689645610547409267808776463938713724245526292023336195439756587422562844286521682341214720349949124367642930417016772021882183499355349955661752050894554394610855134835232114367274280700608672331661294455090878905731923921662912978208480209200028964520356901204942984431582536126749046276726179381632932474341379348625770214604495497889763620360847607742334859665360246091652796074636094273800908006613544651378989146655448223692810266642296721950319178755781962640631588246572109243393708962902577019958222836624212262335756289111453147256396792800087718852206217934369057777091192496707552868696829249427056978480141419646054444965526120086574045798965958127711749155020293748142970978825300562633261196655012240048320653077308893261527571285235260386168279720581965932940801329829042346474198309803055159865552095631452475972545747118215692291511167586139214081759916474519941791029253911292721310268063447785025665546214195930065333896430922519005172951942858943003089841241190405088909750023773804202381381589806207801065221304942336356037219905005627447713855134734942667658920274921158526874636005483990582174857901976082183315680631772504702484189386758181215509100114012604857972834979513633188953447395087294867288592115321105457275134660212343154927511092822440233246419980146624008572059182182685823127156553162011958301898180558597774694037540782668154388110224791950335952075638614624950207000237206692960769770346341565712682051951960585240279707221812220728359584430042006913372380518479084183191785047869933216915376286285987820655905165609990320616527985426885299155045635985821113040083880562417501597631313562727570676429547887448455557690454740604427317331319400649834931670519751991666985266974569639302210777651659332773894240558298800869324971229278640996470310237975800408301692963858111403113458263194511856203242896798070102718884055928249139834395739815173279598803014102730748448807437866428815077756155544436744364501871616249051379114268758317177502304901040581592185026796886832576737064042346298354011238242300530842285399136520326059573939080165743035101008535872819007488694316815470776347040156205324931798556349765064824712124754651518665345909996279541118228984016314252948447467412140199764788876989472477730074615997172858957894988427062051020454587987300328256846600577596488369865406072483295935384265376957453035376583667972872381728828943157408641434505691927286932382970502685641315591236563857941551598874114491319326108696587498405081053712525604057972859337349839468480024546873166550467564084184387580072569011608293444978886100971331367262592573151900031028781157939465997604360440903615200932034647370919226832937501737765919706973751558017266696716441632434598010335322724581073461947172108749725779796259714492332252995963979461591917021537358602074940692208429224179181781403463326162609119435811782660752133810138501540550540783328955127376486606466964911770911238480261544435003112841309389793970429093743533716526335766693693664362199674773417543028134565088427340959996482966195112867885750963361294083602460489421449370513494706495989717884128408506363906550678871713101050548998403977459994081857235366878246849941709475760341391358775875347023205880485287620061600357489973462199632126696728448999141883505797126201842744168933573699946389999735745376460622432972743306874363478582699307541791482369327567937492633416821077918147523573893095962331276820387570088153855357350300537421628489958030316226028084790693779035429558981813637289995429662148672997787311009686369936419714554363676248001752995605372492405380279414355573408432087102406917613303301570789662122226244228885798588291443581975120977751974620392314442477647656746745394305299990724087083826262634469239863798094082944175023527233149063801139190654408366257596319052859216990839581195666153207458950730218586418498881485348072438061245829279199839316573563875136100211482435862399852025300517602354335536260631681618196397267925735846291635184815773480009148507832499556491050863394895211503421708168106684136860977797426234580059443437584931395640968718434071484731173699554348683446091116052728444229605319761583735196452274664514061763874576290588061754850939109586615719004217361120628592400449951922879231067765881807903136862351909047395105896747037391237444515115031676059329974495188978441197829956073057904963743290470432909886304986738627886801300195925197048401910720379712228128487237739116310666353440520582902251102671322350084749438453398734343788676102190949294368178275710652745208478785813865235233716363069869791744604462089015134997155675747064483902310480028285677141980854063477314897649058171985781767071094277436749798868266144375856601334551130568495549472895627419238725529715511570688490055415606558840013912389254649949074163706889534131930690959236625881136891542357129643764351461208813238889185418893514099102522947359868163529069551772313645836292655388167170439452295731744372477022062445755338265359829842832999049736226977582734725085900883088308081652169252873568433834868715957331207340026348200909317412065464641590967802932331668792415613850752741783296365801033265735396480351325026426340785502139842997417353922494421376061413212373786131214704966214372588030288785506493132529461389226452129388333298651771258696231078963185543653152414944257184019499922876144810801597564359699181020507576549039594029233652819051214956207946442896879584718561260248394898322598285896497124612819584526216106159980564781741942628618101234874488399246836756572903050331323595687768121114365905550262710992691853760886162689627497436876146322581297207163090230395248315749194220763975514392664906447786533453564618951415827192860382147713858342463685116757416822367533472949806594186134028017560255405842473051011590868014682738977400139404916808558756730993067812728569970487006840891986656751133480327396182613379717814348296735626335467589982574671695272967863374324018119452282560087980649293139594488110648317664743865409548812027993820953417986504157047085315371358217744003035247822891910348428917339354026890715998612249580077681753686852253520322853025250464282417704406254111149365659817557922104847435253159389415186587704062763315126817147757400634212945000383588344130642177065719096025299380774137337548532156009764266294568860047797040259928999237984928419435035320563934578425096007943488977565120987514910192554334549002648899302688323122469220842911267535485090077079865576883677185989027472645601241659076632257665605809653794984513939847066487301784540582541353513778893028603977320901643729426023747169379226498237740585151569457975021757547114686981578405080311125208787957156226511632023239013451106650092968900424628889646381780199462327666579800106239019272257591843872032468883418960478231852155390820337259251814666844531492483340827726896040505681145456978242472767003966480707395886252387964728687217911271234592224017735536643470424583785033357123878351722487778972828791493745181200943292890623968988757642863249449984963210824180499067856129830859113927307794479537136797758379597708104153571438564025704482719977701548136599555902519126434370717208357800972389476651632327586768864655010977179645957337112004321083376176560781015371346563949487165051097932683522578431220050117524219543596874430102599942645639634146231760047140452598879869060280521885243143173486318354972951488696956474855267608221729109487493657479429247915844991065684243340759640938791608699672283694355060765269317849491609690717135946626819874193354623647108006932451061917899223038947194971461819753619872787245241056444255593534620817291352787187912163642211656423187238883836662492647617640076858685344513242176125941191215451049760030578596816060155896740098766668180849655531296013246840091291912895950734091107969440487183587087201150839358425320584479325757463845938752737413129443251066142538902528143980955233496630099919326014446294755268970043707428174155368132529884891688259469627659749876392325892106076232842300172217202371001909435484143654351306026661812750982618170012486282141006773508936940238080066537736810881888732352354727393042230826606791413262241239662958266396110940769993143572894511061685323291504241274980105074371954008433204923141135250699400418712432815559874223851774956541637835908646562952988833781613897620950511329477569358429057706897584723560786519670835477572870469560035898534246806061016087193734055650378291679446358219551763564565930002874913083679463039478030019308235816672145211466836129880440054372227383613992593766508818687734606761669370067998890164222648089807874787627658265017451281488102507187699515817299081294160210074525441644970112031279953758059535173725399045006331757666824914546643579771507403917028363270579222753179614858445921198388410461402991648606261828772798428418007274426018001743287962878674682225430562747336063825191615117873230429365441581940628065277830295296827316580426289373105203019499274100968624530299690196884904731068139141091471119542009657153047460839627227579068258437210183216124506771578081316501902021268321690390213506447980921502799387610745075451983406455721823660226273469542247833439071499341032925729624021374528346060279192172311802649078179953065480049668345535952131726069182369351857510516243140424094465658552888270560086685004658228102209485323032633732563604549493300478597131423877069522893471430094419906610906468418548686501468240492848168215878511192380236832806816604549744679457661745915718756193826219491700391928883428291632827498141610970607844902552613654936580846133784122032305950680550151355099466068506867798263824663099020501644952061055545882260211295828773820487697027604581344705138705458921038568057338339859254989514275607024612165187618424059595435831224395265079655024853760983625356407554633192443331693148963111700787842341183793202037019845674536519821257516142109693644774272508692325429352100529493603301304409898610296822103544175068561060925384948198286261487530193615483476718493004961173364984564124948133942606653779280779989412274745299538425661378039409368164223302308281601608823761868723734435799745618111029700180236092110343199867465171937291196851358713862893744246773193710655801910852987422803854795898426109302017644333009458387503218797554527100982864862748078376296835437058805373687094257691071955364135348774586770183387469656505728184631913919853268485992813970192615924929387063101687708400301091013717850627916979247740468403502097056448735808053101065740773072848868006446126386382908468399063004675562652876178511204468024471171644456630693112012530450026399909362907047887027599809116824069851165306357372232160763436542341016169625049968753789455454720034522987699645827514618174044165249298848373323503355642088073642900309839390602437265537461858617340103985131297965517566769033410550548808479198154459688627453011868478177682200239191609856641360101945205508402379394586271893885100125481524939241603729199148776719379667194337655803569209963987775094952810816173017700713269706440592589332944035899419405816206080655505629923411529424803906983067149217594051555262431150418313189014683411006823695923341964909272816135724412037843446036924090862643352076705541747516173152147202402030538682060537209599891983532553199708808775005374739552406801408668063580832169498354513473411194318225903178656887983055430886844147923655607434036278092837329900972190581919420190462610998681155005161916630340271807285360384010114428661696618141930143749624449022100383173616173446256561198968270363971690655317436007459656910170408927561256043210287804869965346565513553263885222121267644217737200681737506979054576848492773492981624856915365093176218090905525391198231419364807352018313131328372342267132001883629915440142150801193253311982713250893156593737144295988894519567529120688305409237915345586034612606684830299467683491305515066585913046416066965845872663798500780279272100702914474725111904637860539160186353128452876679446992259848099933325703211904954027199503830548358306147282479704421284484248721168829835068882889752692606615436345435759248775657151289040767561978478613263663408335877021415849604388374162925830627437909065053923117338259489140068115909351495602523869591549550323970531121673797251300000382362090621244569864739407373513668855976618567441674567761823423794980730380400797909073917329246613435716264352963238264986608427776986682890267200062804847133166188967874319433816479518520459424708918952001485450826206708247269845630134992628517431512084271999991318633503341069468307633369110491155129238485941722717099461327304228503837980315277368663230011455672992511791354030772996781306118907576937208633238085183731274058992748671136092527248096347473112540183084316249857306200294395407800921175037703959309885742736856208009472748559832405875221695793690392110896314780339206424663164015754102313238869088562920984526222113472517313183724666302547740365770484706969090672536970869056790661100483008297268428869858158240806523553004764707934262330919147057620745814502099330929665917006290021567573856688363811603489871518722478808119177497329390609511014368439534571023251407724705940142105608949319640799723478943900175045944468496963423512366870531530417850104113758171458835792767661117546499089493556548020985600825207490728948120039313298229842745355194277406120561115996029386068893929516936085060820214346099669175036408843103853448393016881009534034368172245332435871206277427354463169094492029042833088196011704846773791985535907635125799051964266924251881413491738070180305934835465279140507604427974461208891969315745705508898215875718076956082987734356013005024348003032363772824788849314380009350138564480500990860195174856114781019172613304138196493854128830117920180975140434761497110692851918377354266881433207715010302093190189033962536502723927714889503247755456024566025757559629568661409445975258890372069582897076799615058270927790550802849627993210770364492780076653166112449602934059034790397564834934502895877448450250069856829279658942238892727060330676234278868908886663917573594887630260962073448518784323233921672674740886992844406856682258876296874971342462782847517845205222882112499855164754522219297626400881331930832255720803758007119409165440367623027958244706429820547376975641019111007732792976622962543480689063285397990830663986256163800418456356991133591915957023851140168517732871364563577233174530256002456007937094017430107528039019127849089928087547032298077553617540706754736710659137412752910343261548291296822558713356904091802520932860384621533663888795326078918591709243380780168959005524772645197585636570248916209338140522985740747995131261332433622222575710557950624445236191292054412695465220485209294775842858045572416359361351156496309986255271617993899868911629974004491962834574840075079039256909506338878910998988618527370471600609252386296747904545313023249263982864262644831469043669239069680316024788534306502312238733810296267487319942186374242520543744487692289413653190424792408096793664577546905829011036603751085451404540901957207906475270767186892828177019564687607778419355010472781817116604370317521729406895242257697463712611353935249091061265968590205381943577210647429327819569097995833591253382768531523507011529570746633186247203198528015489189414402094571713020878191586587535336428495800516738078169081499926332249294558038186316368256268623959381566218658882950146047341931819908023653166719481829796844079830569516553379240604647918713953252279988853331550084011791267509429245764238086560693145883506705786450719877206008591788832839607341188581559025793922235387266464385584796386903722889400798704772002234736661437300830559336375016771975212477456543212096603561454438344717078679972393313165518723282918531835779814550123634203336589864118634224651616242291664884533976710723640408126130761795424913997392203419761964006118999241255577485863276997005144097914354025787016002397188743731273152451155560104403924839021553204661619336464876871938286499139909983597071745148093779708316142758104357645579704024095434567041498825523442296874827365986883406090619246654906642286911597467469275919835025686292666713340453641290483814098982846073421111371193742747770444015290013334814821278242547364205796095146080146032427101606289100048670131976949632865118360891663964524273943412385597591417351530405976876672383743295373241506376596327748951105590085345262188607658292460160704021325386547013655475341589630486523458292074307248808943019097326929808826287237850897056922580411161993279108563492678927159081749461530866325709625190466768854947612905279486273964654083411246500192508497002599386153181093507805135614078781828383967971473192721604554186398556191360028159256215576429093157258583333790865162978409115244415135142406226263818177924017915073035917831737650188417833284621219231260940595306352315775418070698638198928372231928828774582095485905564209300664472406127365881046376540687527540314637090360733606849526685753558308002469201983822660343001536208845721342822371480104118761046910441717309113872223503120515400684348739488221458048038860096229896624506632215083149491197243044536981273852903573205762233315307358214821772252185308166346742291974396005876632062727494101579071774657993830485111534594601147973021498021837190068738354280616439499317478818987718695314707212741485662476801903703972650018318837996199942566712666810449860855637279716175712007603804317765937911725504373504709935085297870254074997887461200462862980111885499361663008207864747272047873601433992782817574949449426169785233385740612367220061166017033389333201230626305474917887605924688119513161232379373251581271363433054660832840335223056543089604006894102833221337443066697831118215311435748475624014150705992303511073566259407224857438340500673803368859645786500416564025766705716516484810212746328339467472238327057890344357843708218551468526428945597675745015291896521596920192113063453646321434176944155973226396016495082063844044332232223779362242970276793251685419549290698154474378275974364563324989093529622560663711135511644982685879517813470667751691130225479365816474009619910556855542791856817988598187698013297745299863118500777641479450124793456697195557507300453657035931541297536001375009851822483009276690268464536989662776151797998116937440673546497147491493911571706108773212247481001581536277896228553870799696351010424017016079118908156822152357577828934027706345191140287455808606296643753514603024324060682639634052877386044377355590761996077937309656090907809171016809678786362326582778309032267779228904040186444121637504114411680368270072042053488300054105575092319643766276531623270548967967160623544039771782085946416802259967187968712548145936395490180776303224703958852764567947602256478558252153595441360625332530593516835827246168707487802687616266995981278054677783386384398694649776794332588165729165303931721902986076090714481566514934934894371044841901581779418514176437446654605747339571517950130065559407012008678711193885140460542716329910794010629514090826076601160921603937911410083121245364761985523088282586136966826391748325422895107069900839798873312362895708756535612825596551247385699579100847322936769277718392466104040241196897217854867690241639880301064597246839913032127166621312570969761303317133128735196654426087272398739839351933977779848552965098702173399737481099732165433660104934203516429287273207432327225244170325595091242244751971144252686417319079988051591631314662371991562063171055722799742719689959247599118069019948405098300917274285488658133464208753932120210987596974940824415724379464553258826004861225053245745847816437385769335449387318133582252106039077825229280057665884979601325733749602452160331664697222135876971602619138311145335109660159829181272010806746487376466840045587931291936749688531229027818566418785026410309913195415025570105753363669445439809787944312121757571786322021491589278960233869550730654595649443183334051458386944356421548207689863512357201187167848114229002897928393368619717397889966603552987493310325485333688609814781719008626520674001280358828431144624237938800898282531868021128025713185145342947502753895431406597367259784260513381566486217531000937874393810549816359200982863881174223356482373156327400598898229486913072733143704882764994858092430812946353078109823760594080725773223650785999175983459017578527602298071444843913241233591108649693602351604317369506185509835348392079930977685669172942441604234394630115252220213092354694041987827455599839526561325968929494998058179803368954892362115426201071532565736319176376001606724542376061219448921232021842858370199998958275255241753119075828167730004369632296803890481658834825951191239618542357611137915792460209309099895360070381413682301983725560964867028984645825763097950303631592185889626466903964254896817491586692478878464754034012000914299855219885485875100182094548814752877541327564309324917787016971347556529438567269288035356547367672897347017282984894793964501453271838739007900371322618556523149605396741543045494202802142560985669251162055948700939322025314601647682928617305867759657955902927766006364105535341059853410699446475457803227871988842837460462195968641176854225943826737087361011466924027724868949520780462473928256737897964703913886725446929287423839093309396852259725631662771571885305743583451827429571240221387001087114253051172814869175030534072206709828261111630783953455773711832489853325150724119706948555584879071105785486303610246266469976469277319688774199120263572087453641661763827333142902580237306914372680698306774961993410021576192708228102277866972956424399084377696326086430976624495956250356844476023343062934992081191613506921922254240308468473546777239305956054822205344450295081007017199061093068981863383859295658146984527594204322510375602053729158634546071767321606236411898857661261342999046394023256568516287128499191374672234172320074461158101609814092349815755402309099728469297065843456860325258422934683541177973857288690849935738178010396232893992388154213625191657072491324485379981420960646617810493325909658629148047754062605012629439527946507124704150311096784849660543420821052361581296352603063889857182818240389718682256612130153906729456498834730246575131518183387047930739533365698644625486120418141571167574012273293466735345800757258008654740496588965034404761471090934729692446867674711649371108915485772798320957486822537530420302053936489217758757010307034660631526988006654445276361284864084668111386984693830118646341856264264351907778342510122299074573470815106621173589870081833258521340147733100166532816778380404525261153723599721781722277524043338638225494256007040654469491489098033111994736649458253114655055991381981054848389982131667324505579335945640299974103522860773179864587058754170777288575374827791993851822202743648476074077893202889286335562251117469561892268059507809776402069521176122426163284055046527699630946679149360390207763696064830597793770712033209987766390693582697434656338159526606169362149232401259570801755779232249906403715090887104238368539292128538561165211664278247096294387363937727842991637008802023199571648154482546126637632594394798970504059583600357699543333735618821384054419143751350327033208166805073112279482788359243781475482488700309506225331100893496624518137602033915318918437020545286069820396814792711699188690543929907854594304959368273613732411341518039127163914587201171004800721511939101029315225423425085330842871636354225292581342832633937832313090142382804013801796016389157895637011248211388590145563508991205534912457495559207021968098267664813324426856171692775427952297345433227029765204577788214863066398976623555072214118730603947329797715295184486245582939254262781399948141524695429814280007731957087403427708366089618786991279201066145222850595919163389469781461250102070200708429241134954353069623517307229840016064079544704641757052549102324838459841919893431451561180072150837030825215562979654620207525921478337321997980037690297720931231092884300791961780976209495840866472330540586990953565536924183307398304033983742135315290440834718465967752308513432204023802853849938426733533713055591838380915515284528140845085166609001864916222700043465465469908709701719018213252238771822195788546374860849525886957254709116132824243802330496124335579994027546251318929956416085881994806181673831370236516040724333942640321121267547017953730930764843907716351340932116343243448979683467395706569268241921756241707124199293246724689456738766754701420793465801291447383994539188048445357205406486432049078402498532296646399288574691119940476464615961197327670226339396783382377473236111975970522241838347297267318810419487898686226456084626438416200057259874834755726213668851313194815182310982248140913246710411062987012208632917345006973091769313922256025055246585347346837251952905346531441602508380649994856710834473137112458927596015532016302171943693757875800654840837549873630240395168182534980569752619955674060999022919344178642062706363242104242013512540145655384580434632469996686521209838158936117639490720662603533819511528914889798201372080547543170574005672240482492338326129212778594165027886311342646201037598688608287075851578990082352737100348022459109996407193923847638407689613711862770215936180308185148073521998193639889017937826403513666631541561568634284972960618408414983068652664540428808796568199608913989188599729637093080071257694417403053631121937600156592236196430574692764795095560364602450449620556589815026478793651005913641001540637816196442230798041772089049231747557731342362395461949235223783370758055112816595591923002314493805030535622149716347346591856493083899728624805095652157836313013309425528112496995081838360525690185434028474124681642923470616534443301873035037196956104407257310149935944044311705205321169891314870104638171843719106219202421091353499114430202828383444772232222097309409981331887747665713625601905086451975334950112449210533307865641711560503921037253698524978938916265160989576238088191476253073979668069881757161103977057838204064845081145562675566407489633577764845336852093627078499495870002990628832984305926435112973445209646704822126134364492342642405386309551606471315531866910203847499403120442612383489504031952713329636731209745927561510482870703339234418454007620784559823435207584316148453834075373295200724509948184280068152020373669379925461303288275304979671922796479476718495735957131490135124861824328842915354506440420995205742601224373012005377007686537921365492805368977394615582088624842464620254880393919977903995839943027432801527336334558761833470679967924037773802287021797556474393040293702099605775133008010676038381504815696739065723924746785568946062721607114264534517370015754002770290593441738611005363765529668229271898290137342313278315941213527268824498408478557969120159832126544932437354834190587233455783080731434210753295316349785422004264885226108402121253106749380885820903677004251274675937323918411391897993280283648883333846415775684818360967702886102818008429815839953271017037944161300309013725303750518175378440012055191113376898187067608457670346612177920619520153893200328465428002280376155867998578932054319695272667154582726678263543947140280374545753436029456941481814410776020453706355180194052275031493145793494949419224166849410015260635787448090684686026415003388028546447470094086695506643662054659571725077115717204977611096078178652833485160876282909246449983635254869060198117881114297331303165866477718397153811078228948501896481446657686264377270317425861252363232542266120708575721513537230044940750013921918841332951405631518583946742243219191564264435491644724133550845573068255793821997365082408599595899884700147511323883944543625890109708190249318286291912875945219630708510789656985115756043599468860211032898564941149182570783272063155145484694805776847265609321009580543219402927755550219677238591788445907864061495890185260537862908398494648236802172951585796869728293522997841042074811598381271936765374713735015983980478083654491424911136325313666241894652702346834124399738637379732510344103491733992209451158186462497880186317429782131841827641206808666546103102357358524969515117821891222000353736940258236912675942178226669232901238958227573632768883843093329174811714796434000821171621048621755393941523536434824780203243927347157348378767757378454018967122116689413637031770303588046189739640632758624250467972333592366882995217129137503357359457585113579918136783677972444144625951226606975695243361747496672587190112743868327651812316356551208987833332866912076714397292102168107040655795358398631729111764549758772139149033457967832444411942419401518012663828562722027813436003768971347970012494034028100791588502798964814209968121926696681675293556683198653205312305032711476009605029083302362986141037605494994230444508066422885296239044902090336004063134021287123991494125938850060728269283716438445430478987735277051722473098885121772051505745303796263039279904402201801141500904496650486491820738000812166437415781875241959986909001747506759110967368890303808945855607038228865947478825515631261752640664031082098230762172607357154138949224195819056798834695495914064097694820475690652004620794676905092752886585374953533350342008790568171519857823074667660849360769003893208342759460002128893282721711832166351059026050148298783321895863199025910844208276088290467533108500551186639288149113415045168164803975405184069760665767541286634327365323224069154700463026590102767955784903022632788073316192637364295170703971924110284802700064691599559332515109397123799242597861940296438798924793271350185023951336732279280297860153787432453905291532148373276165731834169148772267057905176182639531882067051379720910567845115191793845796232030562472850764768458980908510196280014043568821327643580394946953434753771691620454779919517271614708006797192424660551468185250650316715084998087057571407089574821394243037939677546760483802124825736517507642803745586628433508905975098238512924892428035260309036272411033003071091673706586600645653967735997288497535033669974709179901688794615351658853095725869957140799354834669958806262074723333245449390940930983934270005791770708139203851396291045195280032359277514937941174042219591627486597339252645914964275049998841782393105956009047469578847875494920968460566736792835790647154597412772232332581897667864100972522484914027899351263511174005599154277329818346862245478775559291618761626039642138252782310457033716372687779314804735295898749008236962467313696708215078614624891497867228286028012908062887231223121025100342165361162668085376115765472491504937387972517838156853586676104458847219299120582796618992205402385538028407363149561997153059732020930256810293505740264270121212392446574045142334628717620577545201682446456538646947060787624241034763486210524155041144181680088714173669621124529032830916096062322658119710301567472691262773337162989942204820177056793203221385597122453286782703565134148950156980311468141069250433144877113356685734935509918395038075640630815631006451286454056782453469147824107362649013920632239896594809412577567813443507312343149962133726809251246639626121598731549737589557697366362836447830659918042809299746894181874509436207518499909713328941677869871529912973081910661793011407446319278955454727115928926740440820305207416773012366048582415889160225824775221042650953029235033108435668083358535409970715199037150880661703369639490109507142006907270038060430644198231419922664159080159675025328097394156289603661238659413755620597848613413402031934583474892149985390612481407530630593598231774473863498306294307613488761797702045296816341904946236648826046911811107238107610963455964140175236104784466998342526893364051177414514012796226661457596261274368864214537472827669823525869015327373408971984151762531255290444761987030840222565230875986738746157323911417493683117082145912478191692295313491094460794954519775370378471832301390826520511036893548917540213358165874229360982216352123538883309787742535675877760153302306236674282873559417328945199070307921690926708582762968643059662462840297153820607250174495441175370515451733400565200777412003861997337289824486173257312085490166419969757071108748634622858649682623177847980498805829644773632022706250001832049504403167725918800880453753247176330117865599910307149856606073908594704185123569179039097151063205101153924647667355192514195165039386857872618674321594298852915544160196554161185246081202397571910557373218222610768560593690088269491026289855342839978530540251760782642843532451521369933396642516534199690571928148125520186737901132242677999339530745351388039792358005132769312982086091250618983303621639941605100171475227141791689586459399776512074909796693918301191119211409772206811374032542689516447614155085195238323220588091977325601321486985005372577720089702526251495002048366260327485403906021357157686044353360277664300005208304857029785954372871861312935644925862373234535956174241416770236929420122261726708055690839176916195660026200270709606102818120539698142261489459601608301726533565581247365634679887613106810387194095928712934299742617399576057289475097400322658670339474953150320931771299912867135942972104838722357247364830451383939150330383893045037163435294661543993071179052135284159327793843569273218789153833959655936722686009680105037036086624382358546726966251719920977378505692860207352710048510859185677885464398161697239089876310580757137014035995400434501858706800779192124901486123713462752894094399998764454227279217917985884239645675091366026569084286172888744038962979695875244017237289721823633388753995242036288105599873102663924451635643368741286067479313086505975722946891946183879984672083089723766244268116578289741083509781194487223206859509391987674429720223127508482515623991742644102024338369501843040114935266800430095948992636273529802631222788340066167464676107840543086638035336267526456403733524011289522378094314982251633964757367347703251165861798123493492571046272043164187808587134067730026390738940032867366178505699251122844281392354122453466462132902461758794592450809363113686111081230718336903796714490292859899287108431032438902777842313552411503378347221199615894145046602275709849047961875358882767898739461825398688744196065345272448872533510521930672335302933963634792778307691778735734281663682281942945807117043995723539286186044558384599251908038451554840951059137131044367770249759648738961177031304193515257784051704824225457712882650507306099505602887580304988085888459963732000521059143617879412881664877655164522543587936804662559121544821508052029993115248127026862741027295790804698988981833963390906156227995807901727411573127121216169060692109877192386265294887455753760488105712929501060953669358788612846313506073638944813294812087020434892541545904352697950196780769183666359532508929713229845005369301078259800845395861780158069431944693822377751403621132017425918087867410692758840086565590493886846686631588716765768195736799507496862750506831059161408408078279039748588293370085863232770012082937529200848965918885088759987981313875832670087403959213273443545845523763361403075744479061619490662444828449810676153057254674767081309540209776439826009880662679158173090971531168316082617577943531936808139144940766900619566224625220328527037812631879078472127438817529848899739180221870008593724657418477615020535323177375285381714110569957728140321453190450539034261437629213905194161229453550107784288241441610752823777596116976557220874035126812393549079253865845120160275925746901016286521325944716330233746019120869320411056375108980401121846807643808391768040945392983645137936790171305545694379385941572145419851104275690172518925639207089463951050577239836718480314121613705288069715364231540895609531077710490330063095560826017524837727196314347636252866942130846588690268663572654302342841720821913922994901111710750161196528168217871550739594811819250743027974086114985007533164895394291273309089782112393990127764380376064285405008015458362610466070567055541257908999880528586626819085247853163859589814643744038634966007993606638529047298600969206170147205166742629511143081724289905185986290260422316192046299683616660668864747786104340402234325999481337481244323205881130645008850838894421538085462145627646280216113112862479715111930971192893625889550455652658251746809424975008914804367643715014030983316282602794278662700003431241109491744284075185798523186117604032096156147698531211826858188745905208556767666834730951820328884838620709977302442116112238608709566126820905456244147658472557857556832607811300937783632119202458881063984391708087202915998645914061632381490180662507788497590655013769297811319394979183632068705835538090333700768905493008973101010046186310106289419530560571124785411069996864598047569280704846847276002142002890910828419175384348702462697199411788451684329731227821780375839848018170289890206212106417880922530031300040539010422384703898073866965565346854170611873471483937742718525319374770154492199283711717868534884460210083619016382482075520410733043817032094568739207417661489604005004471292245098233468300500461944559730717713989071665411175683600029206426409784168625242499644614284874288177067327659470781666490287160083380900695108874488351292540385226335698700847032966570217394824734843166529680554503132841839200196588948985118240381600681377610803880215150867263881354466612682044580543082077775493367362682246225673550372302168906262655845966476891691298475657825499642360726070824544349354047512432787824691134162012387179489979271687526116633299076281589279677739773904073112516364299276245941042948501950415967604354324875454668591301227479885026270940948106945886458414475537967454297212170169389386609492432176212838331959268308441101978296408810572303539370628224181713712192247769359156352039490317260066340594197213685624974169461505638397974209958492870884607072101219925344894234786619622458747037476451192032129549241659392756948278911560977798731823476544302113008195281993645897888893377002200991575212792287614779471694930566047934308674832583442998059876814620474884957538358895634799672873700781127006276488057790348692225505256248643360724736639963459557349363990345447382975900955012316747073692049664919416180175101691674990849800161897782198362590566276598646731829130028743606436152364418653352522481895711241500621297980406265437927112520173566974251024011858140723837914798389644447533465850594542737775911719772945194714360433107068904552176884583933252915869575481245569480213966064892271708936340394795200282608338713036611908423605586859500340933900960739906638161973644914627324918146018166359611450763009622817717979457502134843201050057907714501821317850026049109254368097433725729389227370327395031253068317144153006432867046065770947383101936078888997400684468053008026734725825114247240292841775246474590664160842494945483957708161809199847913189885960270222318303344523786841242287282832402086589025149899813512827882334298741083429159965922066662584312569697926927531448364637233652372148359328817235309811756836637255717135594451518639917950059693590987909066796910347619087937711632847268452217857314329993779912540255916453832889108817095722511576928385009819630242959589485244199334440085298212019056597380900718442300666255587974639784714176578319915252539431955582496320765948661728859759235843166003668379383193272437417009610137887301073335985629278970722185181624241257229017581664879899378714835766706499628591624138570176226077746289782074742105352882416385087118336360406860405309838947622375261148885379651189011497334224253976823749003812769760851568985989502707325471931719305070571572317606197933020402530469464177166270332396081997857508560653863628981777067232409948436295942437640603546263709263632286071758792262168606105756566725108449085449335805911021871293852712000801215087575263117551386770328760526501201705705493107528334754522260491815209515302220956611706831244004383000964172550313742560205381538457503300058610982022547343947703145166233851294141326954976078413091261437678655031228889991000583620158832135532991940538275748312745348160610880510948330130229885839927324895736841415542737531229504845486540614763880931457956178200265353736267630237661900816728116681946232270067552876660845508543956944125454986551089096094178391929325790432411676758491188693681451846801587319661048019912660090874051478242992371001088199942547085322659879221054851220828410096256631486327092869468893144091366374789927189564918610757355912383065952863156601439832803908463648490819528504265627353750270308616756965687598976698514994244572440112563404844502392966916837649885615169142370985050069722377329488983158943447501814657306473517355883679363721246804778516437534478435335512550124770305142199064385136979766423565128544440246125449106727744967331260264006870115574660129722790568697105125236334446567549034704447620423395387479276122235723475924091183901170540329584865203518709649110331962547899325727856440584736629437861363478678211970699188365370329011549989264413102241492414304021921137159460542991803950143799589745923454900354335658145918759520213514892762431061860935085842268059770504359593595275885651487149895592619903983395859872811197907953706990535336128183089867810451084486382990582361726035783487539231423700060260755753207524990669730743885863458227423882444318447282679295855951538865870258582507797629313043114769179872881804803780751741520499665167371012828038653413200047827336529705264192175137900461796947536452657011239088254029778374823438636409184179110634514530245273578824997910857239462604218556468349352170642467970609707330421949030600986810034837255526347226869664404748483713944650246197780813006045506388733938481396416705850914403095983763587069339391899556781445666791687007774318464503458444583815496479472721481514296280517006234734982145366216870608038091505697727798175443536010024912549269549612492937121122057142155923415029465782670577046935049092485999472720299858783325759835873651741775756795882888664373800169777968896825465018971240294530297788136447815854829458587493391975744042834413365892184767998744320231954115916778942134443097019401649647637892321638074663753496110530263741345078973698065944826749252429426689159229731758673565783182296912420010317927682087911625394327077877903573449362448940494801430193921409484096019148479011425566902849194979866593068430157066780349437661394638025682500610473620064752471326473111870253973947054536233946556669532449836283479676710742248716703020582979659696596839984355497306475287154224563242427628429240403862835666174156260217448594598058527009903950988678824183087672397150926627666774851157231537134095277130056783112341397239286897086383846273394523266540173619953183267002699452691392122631239896595049788217174445272465160050368196454851133318476375480409952265044705947223403094049746900054556526851791086432943927715774984095187966411330263683699063345747331939103284232651166658147953659476215093984327472484341840635963155217576790782789219735495963780386387621384629839789287461330438127045980741746257456692781921843647263242837651892116146275681545468053166466359920424987202840003919721889679594462859417313403100802267249271687010235655681904018807798095818386705870897027326627307904041351743253100893151148384122631934938557920404612987704923734465448456812253070003199283331695119848592641323104023042618521593085546597067178578881175270192181507246168353605896059916594013850038785766819137228539702207353143583479226143341644227789498054300565983053302947819663628650957259428892527275916565429530755727448587572342659672230786401735691680382168983180935026408344621112533037541591196195348324165564643804897476496238551439305392752889617890080132143410061106252523101948269678793817221734109073496034680713523154933310060440537454631439664913993432620023604614445370804313951796947485846174949472069731681195432688792832115987498940939267396959864754313270553005513500751726475043827824113787748373973449624983839553848836870300111174290057713544232908593459422205434976947469648516346066294464162476140260634805324691644751540077681269127868979291981410144548328060783717734558935838634445125984565150105503724101500880241399739867904539567825121462249706109765493326293497055531922910832056911642622283637292818317836684081311903469839879013561389163045280205778007246750213088547205890042843541181083061790095767117910391551345289216729786686454910992757172204995050296950562756352972242032693962491834832225263911355194085228989469101794185218271135967783598044690207164975177518456631215456452502998541200002610442853787630415058665963955244124368170025098456354692322435660806420270561848347399355557862018583237403428637533890564826492617102664208217122854455500868730825146821458521655018057491947177663496127484932113528909295504549625657233845197417633920496250173386914051730030489839905693892871469013613276987977173135655792273315798560097395460113159514964210437739204476496217433050685030208421429158895487297977657525747260932179407821972853496472469710400322695382012451576095149665290339405581865420112325130477942236643672941842863930330509226640444557186325417075012579279097533192030999285452422159641549736556321582760693542314900032792567845143798799641742265146505322037692392470215992350542452485157634590903561218187218637642107473579167488628414127849540725635794698929991073994359195334594717919098938043776952304280861550920740282862787162738338213936010644251341135506315841293363159107487126025048118897738570151128680745217342507628800782452421096264495746138615228667155448271622800586252492172621326194574529187447399237339896714836172082104623985180644387393777881226546151951897338436126654628426153165277744731802029107405358457472210363291419122233517017399738661104018818950714171721320942743573577666130238109789459711871704910744788433911287248158028028291254399329572091419777360457724870730418576485530961899176636559193995034295112951249315535204188024683175617112753843896793076276706400781625879873702664253042035318097326297928130565719078740281332893132141649992453139776124671818860612912534630746058750034428826607779162359338040742420440773980588189917761956985513898854878195312641968914414689178364249778977832879609543501775230432793328047494873019963691930364404518283912759123079023774729195184071810888266944203115152625059398673477543361484798105449907197382500636942804846721442112817267068544862309252726974395059031524113840506650570941701401195845050662846711802745392769968636810237973413124750819927629688710738030157534999083695611038543109194154802596451117670386606324189256764785320270202586517121001048233862733222483585504051577511709508015919115595728281361081139692426176672494354083422652967464561106505254818610047712110798556399037427772271829990350395058460032318648398912949286108285625139888320803601623080263827186886809951762944719705191958696000354259335469452757533219611578160053710241594418360463628130011920860565765779544954464175806243162688920016780343001497722531841746363056327270234830131232619943600179351766895908662443371796939156853599123773221825536646500888098470261238859228915762483954790450049105423963200865049017290813357628376314288580005500310862763573011220567284011499275536516162572766937614107209307938511332266872759625191511063539063023253486711050972640647301698509645056091497707733296104385664045987370762554229506100596495308260617472745065373269127809968244613374245310554840506882988381064136147060575474292584921014999342409246573067798992810636187070791462414301603794131806392673502213412421971947911767697663523261561824563049781873216123368285949934943075277753771569115183911074500798869991584052236339746858478388645079078746358350103644233048451684757090875115321380699157450136686051123005161863100355825708341976807017289745451903304357024725465481174398995587710572969464334750565069787357282736957077703881689025857027073214680096432162637184881172101044615491463736912731464509444761359800155750686746241561521512908006427879321929308775794881493906051562528305101854896605096045428377516225940485503469742061295434591959838883706799200354914825396862223067812644913867327941691823185161829491352096081377739597124939539176124866114119555070739616053869999438899359856455377282106448223794940563428217513639288082172900155680172933717623820820533089210106951683460033328564818181239732871827480870968823123525297746181635563986951750562185579046041135446179015966788441767569057201012451275934934709088068238968448244831120666880731311546747670521739205447003459874708909919479529627290398385950827431861111050924564528012207534062882630245453613709364292267354375390767358428534492393658558275094690157774053814715849552770396588075312770417902050963974340420523047007172525553645638788558132190268327484903642445000241480891865245939721335099064358883985000997927058378089217287207945049343860875468850247734665887510030675003536214614392536033487054370181289159488453216968665198345313711379130871907170560406278538558643107090084324245784599365456467169803716669491224254899790870371771081588067470528054489720109279694937475303185832446682836741247049299864542730344896371939423020296208417371500101572300788774335536822809432027460339054964637987296501892975373842162224776144844908615696062264076011123140012017416766310825055685813494689996304296115827048950891099733721053174014969279496708455433377562525137111538362250605490296081695670627743841177250458940717928733811566347047273648617277504404521132488004790123798068090276731576039524387017592310515815696670660268290023091315251713678224966794767016913940525698067594855306524843116351489695187611902078504670976495624624858139587433001945395930519637645288362232321159019050564799640499274203184410209843651786459264933778661207930250528805286650595335167541944383925281518033895215708620960264908184910196481175400694591277451578916929478495320925705338672376683558598417308316380978724496009348096195628564640992071762326857232824900413346153928480628723800095846845294644447444498676712708103778614875136484474224555006765516851925473159578203202421595693882452820663635796029729203109426545945956619827138112991784897835037022682566478522721413704164027425212137900826470395414025129599859583706356342907340870356930987945904904466642348011715265746269623772733583142962885859618832815947258106009891392528192452522610402593405761765328586171341707907334683748322507047742142224631809067243334406545199752398962476040198404946182360488360990696844193181629871731614208614430283629578669989692476062759622244102592909597786037397457955242639379335714747920884331261621382073075121732974719686007252764413065152065270563685444983760842253366405552902856545943291870416027910273707194207233847040597019941432165403407162846601830488084838143050525669978303075547352669265064291779363846433993297098802841448418861009348032956963416081384741285220003807074018789852587354450310073328137535143389762335364015676946987596101268596887209293978429453048362224322361296022527873160594258414629225685124172563124647501783030499240068754451882939452613917307743255362039236264202052332021266528252683383377739936091225906476959991849495714415107090313679538002231973203987052361657871227871590040548080644905299682641814861354228252699696500365372651842373137717985792922654547257527796521771132800182155886946932741526149320909732799103508237800812237422497837110719058918319043412638826088299562256778643732885349688243565000938893504843509282329460151954629455459250017395994782905515500666773884151760866811588545274912760048649518154995813614888380261672232449629645111045671800573312023532024255939684594233240447058505402604213217404738318527754736754480415917660724343137727684237293776583733257507019965259175349574326999734982380487995516273529664269103536880435610428243074130767341475703604583578512470032450580042789003171084564581875389560862908987284168304618647418674564411080206048893073286608735941628352585350070733863420785290274159826850461124141229203284870007849044464274506728798995404595403174938096990548593877716086281779255909237929122483905438076921028986272290734875994347971039605907930346821765349915868944701989918255558300009866196839171109425029571888588071135008596199554247735952832746330101280804726458260238406300087454870810093473703342344742853673721555607832930701581276467342164101567758491275979337680260285036691414382684212194769521555654396974770223437165815816065738638570240576451657533770872614235353605911844296803006895211308661631583024887349635238038893378253070096087291591136806643572570924001623856190788672988333304079261884679056730713247404973635083512019740391587589217671608059784438575605809450046710334536866629760062260225132023826097320152452695840034115132959246717803292030893541817428504876582057437649016268179879766931128572667077280527718389760727855644900770936799434281924658903085838608673046741408774974352505409328022071653895758559241067987711767908057964368736698971162038008617058654867382753333374801297369495724918296787954558352332332239466030238205677587683672584726705448812972060067805804886607747112506680915229134463643276477129702578227517070117534944815963891287491454776387672336088504576939046737355593601972414371938877127392535157849763531847005529982616254864527793260225028828266729813334442881834795996849607640245169927307270362176671964958397017618652448026848115536514520193848307350478127078674442741684917789757865681650429112939486418003348151536744578093846877602964539650059359104497826306153392568647911948923137763429265360716696733022748391660254580967251081045400851820138553084673161799409298860219445354381451209945819191360513117815073077332859943901471613032167772869873713555894107847883962669284901517244220560985754168777613567857293742348205361649752060910751319880124825991844018831058002141785718218327577731075116605496823076070766806554872937019773886147397680396292931486664514194884991859106918662099061810677880886725966377188027205230256483867271621219029398908635980751185541767672256145758041691840899060800572838042572308784067106749406631261448328479641934487705895346581332400728322759537641841329265532468643902433596426145467707224660877620493391429797887895128911261191988806775393351909838135936356259995857062677907660098261480364541817432311465331032816822974561417505983475573848488197077838890382706388345641063165770082864969919436346889888777471454001864608662111937881391713266620023169977514946165900531284176068134243957503589608572518527002563857238393771241210499888377784483429733736513621382339479552036754028630468665363819323044013147579067593782338231352127783980965119720324803800736109123373180096161360958411198281023892069908345136881990896600206945377844656157980907515077641231488012008019391692518591964263692886387991560502943643294169357795342887521295309721643296095888473097596246512875589684859123441841601011974570509282696984235609334093262025345094429905225250625539151419001095806793673103852498793449369504338462505233235759757516255339542012011643500953107641012291988815054695060369345511694449782313839583131555553806214275634192236839575895498340986262935805888870242397099801040548935969278075156257564514233674419510997914770866566356024754980367058586175644813443887900621101617006658802221007035056066915413333179909843991043891122924908858477334247178210436534427877221559967886473287727359811768756027994222350959053542922079008482211048275248633545152511515509015385566504944192299634021558035996243633773095755049110060249429970732099279176721495816581587019319605148163024928208063236475070063432416868597438470721877424250287767252587985276454026164757743391162104200589801069523272357553609985758660943417741021916085527351501815161173735254201319463858572988486725820151014999624717248059467676113612996763781472088233998470223133063574724606472272707492418414802928104269777432994324905066005334444122169546668199879441283104888884212115512083365459661100041139720589889293622338142545432349898083537611922190057205050044378864953183246826642611490516580521222721449301958576015565359442679323782929432907549858498928159930736594505610881331568576676997276852170147802503694724039477152307439930232743220907406819040393052085720389367780180264894413495408679660486374106490928202113351693673449372049738714243467412445344391893671810477053386790435501421601788668869111777359615613897136289528583686845428402970805085021345331497394005449695297456218468783773337717467392428948463336395599459903339409363495585565972600137211123926374134747389580839152765799907277180250328815456435574610974680485800286845030628633264929730387699963000297698336361587223462597171749183120777564980517012132242295238301986996052136447107448693432898770449521371681669790962870750249105533351012538446927567471796555058953655051974213203994500402165825782916567324723488264312359250060713522097310472958828918493623622469552638700298644366453507812390593931256064631528136745713103352309030028890332460822400685736277979248971860897629961298999956907925048502451371574320308607788400523705074396598259538280135794174531418207551456332701936275949562422669927928678880510749571960843189819170053715138795872066615034495365353607714145913140825914029084457750119362715062919977561253042647226957706715451524389609906886389021457002276184917290336097726583638205680227061114621908717591225310532498807478713264871868301599704096866775567864903424639183418855259437985596782194819270964129482096683775463780187525979379406455658830555444409545290807648646806988602640795980576549547108096160796462275451802332770358789583330708669588153106618686020494407127970432503537525430226724243422923273677703165094402310298321636529256696852341856336348001949934303655567418242876156745986378379665868176123443374486920245895354035291639375524387151222172395204121244998494342153839903285387923031067323450016602565283194840810485296982004679425840870833632681404670426539463444911064521684909320332891939008374998564001790100660320006089556732703266560469464279996991932490665901187239728494964305072474076630167039414547334289622235225046433968652851400002724453673215238175081566839781596648484728866233068306445464717347411581560151632089132316085735877530438648830362360816246146313222596770784891123704327488664116172824560010112467133996973469173048547132946521595649081075668789473593906153477668188718014389964899593828557004491983761690433979681670390837594268468519991336251021792882511549310427646277789506776020805723585104317875216323165528938244754460702078654875987475018237475910436095747194336511787035813821499271254781614445687098972932910522913572050218575164692139258329058275611015172401433464415115444795151154637669711565557524315037264107896535475943300499628848464008298445737709679807295497395752342370777398173182639257748247384770743207591646626476362215351547977577556284113975317855452698038900793759302725839636619386164433806780160253279811434355813598657173012811555026953839277718710771608080133383390386399561253690204081253898884614912005381827374249089298762521905868565539931676640302070725553950996711876414821808391675722285010370186358524361346724616953176949881647718626711710674069009667100455599686565878441976415234655635628363234940742266235300950864174617317172379116411440937693925648401249763360747043725542470066116729127162521145265088414677511443313650901040641500026424750893953448332949301120248969715716750243113183215684278131005514782135275350707652317630849361575349373416887689799776414093247584881724971135796093996089245906146763665466000930109958188308093882374025655897061378082977968198183860316070666622605176260111185254624222947502983026501991699725334450216327673140088572530540629836418641563363624959976352772545602963755952694823009272008744612014938740092560906982636453174741099267138252277111106589632550336109563114955160445528220782281095332816043618870793696714513473535935974107098290175828738726414995041064358909238525742183140864848747887940115399258668150966117063214337202469152312513960733616737535220376928544326426183916989972366907801181110722039394504714778533681200143161194400073493493712654242951938587395840341638140295621824713865694490905633860810653147972266100441943061948210618043018009635199160052722763961447380130344289271394707992868747504921095232771974499282921001272026323823233151516359745816490126133098013997597012913548292848934989779060556980227849826177847565161049565114354453189604898612684666692106209368065880853268506362044110983223197398541201566135971637103161395223920453954500532863027129296942316159337125388609340262171535474037946230329812582813314932766458210747690522370509498396119953507644532527279627896412239854582194131902719565939194157437200469936629741169479099619994713391002494789845592340291363734570847047222019913140975362268718467425887921413244479524304954778553177949622123698128958196400396950987837029003946184756242216120338881715192315559916994897539978901787050630851976188383529751182579803737616228337774900114698179249933469392403664382999783281639942861049990390117808614482338812761964352525085222753307790902513207177869437351353537436283152753695564229643425636041484653970301792878655128103642346324597931609937023242138844660709445235915443524405371842223572290334380615320117234735986940540211365525832690378943099456515520784896281879805276035589275254476461991920346041898117060597362717479102577413899092406316503147350826596706798733442279851035388862029019555674174708085252522108701712011604066692010656542336754213446222701771569621249734224488623815468978065380898176264230209711603415167731849101715369842028570483147765679287886048398978568498906906723393267289970973012867804229021027244414551518493330838205401403736559173664194234556032653065967056286258981864534960189369769788345499767730167976594155149582966432355396817488632199035759121695767416935946424893981872700221019181970633254909448370927959825283901254271162064023766214324822351188258964935883691721864910048250634998316957568723542697278569849915665260323364949991860145964429035004492287006911176182612937621839754668194682695033309820066225634393856878312734185873148171774149024640711850941522586139544906862212974399870303911971144847188579514316374178896364651433340868262184352460441278221127875099455668416964051148025193193570299899217222468721946388106900730052032380294932759690460173519521119851493886953842756399155944867984464986290111718742219324593415191550115774769519783580921042049894329705409527678366650653375833246426446565653514258029374298381079360925614556610472194041910146110245668025560164906055186772879238897004170724586802025322668516447848947175099773207654499405925106523635611673486624261243074930194180579089900860539960182848193572311434634960346715807699304064694117424814869469316902923300396691067739274786976488398015247618932606991254710739776709493814088635110555477202287147172585924485306748181893705069978991210486059526575393988237029832323819217468473956488468400153408775436573021521645844656829559971786578349562234572009477710359414387758900232190522144274968326434322438775354907556345133137860764056428415006836144090791387416301525826422307734458058862917541074445985244112334868184988732660957157140335959524330562327079326186393193450122113442859789430011069846100258484987390821368868474224210867601820212218410915273400847308257058780107424258971048981121046136897998602690342426277766564009305980323869914733949056277302036223456088499213627005946239707266645364585697000691621297888707513729424160765046140643455364488692099486882958898711267598795200661238105096243136924443039081912970254821434229473841372496484152993515598899091866384895962115137303030200743899256251006546545867475740111479744234651328612393677486209581982997502455286521211749587452506654565920645645172346122206845018256166201997071460420949524127564000095754515910014870114749910716010503167285071685943130983755278226390674960161022209380841992144138502095725365818969675472495478390043813094350166169917870872885227048079185396800597205327207138985283746616624421517278127795824038226144072316324872250020971112516177146786119835201482381451722737035613985318009516781840069126152925937897265717246639717619595333196952551049730492790130842262833064757513727781047184552908989529349110178196979101207222446049729943037183783355836362661757766284396236888330442557288253430347579562462318757000030859299996575610490524066324228959157230261810825254465031616166653251657121882006663519953527624875470810337779267264359558467453519306288992839715626919761818881301423593993745271698357348310066482970304465817851745321473877123703385164228560868414107720549197328413776328262363392385689242693271198836981359572853637283357083913309979038436610303924820074090612854853203238963689075382628128476271852698982690166067234474347627389803271366273430447767783249705335025171204733965964678428216123014304353317327227596017357204615743634513018939348922417364570858971546552230318371232987120189329665370506603757265204909635804866937057882482024762526414429417843005699240619659864208601253585459127372951571464388868839871696635814352480101521202586350979124139007481236905134244829939567199173975708508333414211643268104839927442314298230910033166188540030257761939001936162744628183616512892728381256084850814328682265584838837931294784800238603462461906888551134998565044488190542800863317070297818189803455709928544999221902110935397475177046894185334296642703486680120739126936828741547694604370448382089193543402469344865734218979675484090239464096878580383021063729021659919838623788762238946402016254311470009785947962493725263120746948948925791237827290955581123485916534135926755633533348073240423929296224801172157290780957795577678445066595395532661014348739994041202768664037180091781680801057687942783873249320080091825475760398606626445757647750600187964476307273570276053423145841206535486360018727160860535413346925054242746483167215350358022027083896667974506623575896623119476039341461088606095070725387953705318496530555900577980532177846128457474284681816850589875306614495784071636058749695623930488059881500167976309825268949218163877884112043694266868386321951032010733407960151070797425060824745971419176917007001355885005091499487166800441780977496239878766860195905758413606972171419580068562188960089268451741536702758925543469485023227249755718661388839496906087963207682353211636374912524554340570659385068500623099789319671103604935461761751774871302932410054277433132085713404064860338017177864246539010150665809453069280336261157159515281895998238752458734400970277915030857529086711658209242838463352655460183220460395447015255524047799772316634779762594491825661974463980286231974904982084424506899957663769106029832683296090260559456431578049033650936096945577836732197428884511287211923363885569195722629281084387422494674920242578606304746113474205825987001884337151306146487612926828640634963444138707873027646802669704924384589510494539943417296511600348397923055521661585526206890976714854063935415256846748010385789149924403240787484337687096729370361883922518200148621110598520897499104467055662879745702192800042129797785624547621910352915582357087932991401383869050955243936115111288463606266683143377454435319540548392343104952459059592545115277311776259358458395600609679287926777493617852495305320979745022781035944206553838786810948511067935965728645538841123190385225785848099430407336052198523143067736077115686275084766578496654104885437581953562811248669323591998141321741224076238740091949279015076272069905692284500760744518226420650681147717839120684764611747798276384675073838234326197382749157244901390673248613925457924272878532635550556724968923524432056824880139601398341121573099458851005896195578435595391268963909439815352599178026320146425162664806417146004463169860927757645320047410896063947086115650248552244289375181803406270628633186448701458511901109747320512140699245622591794393768167795318630204575237782332743018667274675401098034753746148187661061315729483179249173699537163328404288802961276035206174393964391651226533459793478971415098665234993263026418988965672598226103961224266791673585148528736047960886206818976799593422774150637677039784000985499409023571624964543720666044123598120036809284630313313035499903898332990899670889066824050958929564404377003788861863157803555753787589630299953232466212698983882250844900792156513426864943591455912061909046008035444938380885805249057657529365894208898575028366153580462415896839298794550169071398901714791301418721801681826899827946221785009204952257407430127349628071492920377960740116356794753797498797990554054006468300018632624504004400405802909426934464948291424935753811342685672877485140125346733859134386040272646777883565404961134893823831806738484671959228149846082871822107793634390350822336345562619949949362571464319009146193814114838788186656836926245922000239457260055056659606981133031939948150163549402251598039413449566945481378685894625566246823296594628218282748272231698131876737946256268752819134655745090697319055552667107812721129106600302501348819457522069733941382960255508235400037975968084242536614331333551820931518387758685336946637003874253230045798275571948029525262148569855372774495200867665667058995630086277059264550808805790171486012288668756755241887694737677299724551715166891238011178945598487732587107426090705447614061514488953881277915371618051498750301706764612687010143065229914324944499142137525075881464420015133673026974822892589759317413858472442422927651696594670465152128331214043699156639198437629013418708344864743779188538671136150637631609260584130797428029175720918821369232335353581329731916879034647114861067036050882907862186656207490716595992740954952684630831361090395056262916378042931805153508960100671407528413159344173430760421381158639217637212298106081780978677859250326674758049350599564771448032599937468492394916785671009476269690558528296707190597365958541974878175909564386167459763847538796286519251520960033490524966480124696568588551221117516184622877162599585918971546633111583713150111486243750576370013040846839340692537894362179777340433186237789585244818643579914877803468688609107617701956671729832501249141480644009520591087546037529325784871349848681133398221284985214159501847724505059358041955284202851460990944013886005189474034622735695216999372464388931757235165981328050663278535955464778461712477373039340547746299199901883482044348536664559841507040068809220817524714281870080277204646906026621699140063543153807987715923484494439285202076585588498973508320691876902480134431778906772741345554091982275734316947865452668943689059086253775939968212901654790826055245898018059956918989576162067811439322776299182450561982860044254526384423154713431641757713759432915138473466703202760186276753303790343893768894372453502637571011731043058946257145382409963756157321585593072933121605396221425120235445680635582010074886270146801069115088047014226124529587177181604352949303400475376919469244299290087014295406575495517712240073223576720510708884524521562723858417679844181336980123115652449562892908014136602498225565649845584936008909972633455915832868253510577473145772635898701073324472615598149997042964217856551203840443043387076217051876385885921783506123424166721388512427025972388142378878836927431940496260827518190063712842165083618086946308398388801572180337035996086115590085888489070827115365841502431319187357574505238100184295620400693253114668795730052891236171547059529958840520347541106684642867278254753636057646362875016101269753747967593668824467977246398982022913301759473024319265625722534002564432645387538030947484402400682169591940847357813383383313232613118367510641052702631375340369516034206157304487121572527935245954248014957641384633874820191642446529605330766804664989858390784544883428726590470666950876150421185157343026612329258084740900384986083358455575315929323046968260064392347135607341636111229418472959255735170810453654004467425279339674327577792994205461944636890010351821840793436855106425623368780913566199967525848915644263270001201801966038295163674492758086386522875267724847828895406995310425520366009275654985507628808879816680367477365042494032407980999317690879183932389060286341666357986879741694538312995365211141451380460861949934167149279599230901376176003295324587589091773939313228937473056879485061071474441754507899202331739193407040324298364780003607832746379780851047027033059450023315499886447764984123395038017181846380052846680736241300938303828989820919475782666322877033415990461250671417246687557155250383249990631639206473047314702146619313088764444291575716974374949140350576482527245973690659295590635690051757675422889487800540861921800830059609153535382503209415969498247111705724554744899377301123218320564199977632400045602469156201101270282718170115624768438087364458231000506571428801818067964163589621006378998702311206141220401054952019344443185777100344706493408287267794031399533630045076044248941189598965510017976161191205670346768514060166713773385009469289754876564213856077149082525423613917611016017884155450187110826358493652278289353069234744204957552982817510087843010792471849582289259238978304910884314728334223277691320134617763580087403958063960399498220460251949008676655705104507067650081218221363981465642593790255843240161113099718729622429398832846959915561558657519488925073822468380777999550299167131123662700401358502830443068722444593898069326006375401647559015287222756892219637764229089240207250100288214112637746239128085695662532297796373673526928215900323498290421274710789950668679918914201161125231256824008937831121442195796552256552798146322396113693979778840297696632431436364307872429198318313311284156075776519821991867986611612846038907443874199269061354871828857246811090470652704356387752397887208183537755313643760210243004485783586758646601735012594352725258658439565411295441896865811013354395527531794405674705190532304674053362058348622451562695388053671228474943464989524858675806457769062804783881496594387651794046306694831652549440697353965253143305470407845746607961171233242653064270123731160361895486744621255659533322952688745135023330492645434457601982625751336403337790611682900502873556968674970377331593057806995357007035495405389744359961468562415992459450278306168467480678114838947442381448716019199393015499715006351494269578154243142106931167259641635272952007860151628793856582563148000963884227671657577719955052104789563145691717838030061416835210079623506058106428795092170959263897154328184130459219237767895846989413293045388890060543119480624509196283436126248525035719539655218200496273077852962214267060842394460357556362826227316209301158814484688701619728290524117129056816839949110616798454333744933718989917616685952593315862476765951178144521561913974115890487858986075437629078223232379441875399144998298218163673015792386270818120277552953721653795371292718447459216576060470231937676895746740337296524199881356952078585886065630619096186171257759094015234657504098991416681824384007649656276969062685927600735359299672466049995900834169403761064829460039639853016131556764579616921029883710716307806417957491391304005693624856039704412464527877202614447846356026054137215435373721081360792517929763320009683246383653211393222201573601182564411073999370731198081241438779625138400736039066315169236904441383180701351543755616096525390295166362494581346467545442487762056856925557018898065420406645925611883593831841488664213625257624137929230881744726160146991498394096764504325372738103985467251344286363601099705025345598034655471082394673237469874832835387562997130256928272807133589685490123413118876426340742335201068535523152262518441053698479060903599051922081626853973953692208317093570939611074469171234627352467670422346116657932178586519814336774435269521143815829970555854206531574518815239088739965963039320131515482392738508873071437335336216737146367921238674856185371640285350668834034996824051190502387762849634100799871254389748699204561754483550766432933585706875074556620681822304964936733552913323592025159635297453433678066488697652636793817768247313725827603313716916449938086921194611686102272105635229831178918168558537732986444463795749297358929274688054136594780831878561882003656858902178605368212103447258686707155256021986732488339842756737456402644120644272070991389453881853591130893018426996727677368050677298391609152643990831579740373706453883234373103872075974123980370172530810699218466981971366778139172047248761545021222234863838203035847309979923480540147227830269331437255442856272937116761389246048896129974584089245358053690872474061222785095677095730336501581117911822417405338105858090323433349483369871181945250351616414573253541062646117406613132459902427856089302253754573721717149217389574405198498606784183213838489371452777987987258119872101362168482617169280680210107040038663999712246748410665909050685016886031538672576979958489365010236375259786536582429644125786220894509744065570767516192015519669400800717148991658950932201511233503628097824085662193372107132653730439135087216618860969847682504344444089849125889132277219548727263780319068656719402677158987057765854847277797245402481142401650532520434262067110300356539297081894563139378194828963296695244529930116874992647374171664238823181632438242194691203431128177344658484941110575446781510007690053431695744337428167434023738905831860432415667057632437057032237798443985716916236782214375865551390445878821358854382349011029557151619133744790838281778564520990183988789777593078850931175832087691926868699315985688777136332653173736321510599220039080066897440692196404964896090092431473552314228322488362893333732630967896260460433654557927601232915427927101020898379625528615314791485774064170529189265969655729038450086468975837220739133176801132407168759578870254569613580930403789630993520609932390676047342112057503340798442495546493464101158447085249817117052660751054936588581223362902448670339039631373632697187682384162864187617647120493942711851522404829151076005847320830939034876405171470918489612394685604676540309488674845977449765144148526228383207278942216181037510028925161729681669782056495721380152425131835240149098681160755638350752110997775191071947944452672819407962547682420524546659228491500905433851203265054806842356704294354127911982520325463343671575404914899586232267346586465716747955623880413107023169604414358792859582940151691719311274536421143198882787085570354142089597315369055845918480846641386244035707584037152668381404593388014041447768619971070721859252679282442362695950130062145329091235199721101464127297763726966557815749105580830426084296390670788235174773953555500063467884894849869411397531770331788431073785100047869964220508160393927873390634312369911737152220860643913406447410784137983474539054083679226755309769712041133115972344391323842319064049522377313863066178917088942002794269220330274029892190127448161019698980345613259866475219555857103834241208598593445163173094082648350198004736941447944228068299047491524295758484814615304685069377081066442154595930377985129880974998867871667239813819746952287173292664617986021714086383636234618117074592341353475764988860054153466697585054365661118210892250283628664771483992387206993516036307659263300480014102998577961164981434335280685412929929308651187579051381712305729292576371287012250689855985194730147850395016677755051752176294516898057782920308459435773850468972017417795157388384151109323319794995450131132421850111413440318277509613702220906193975114390730252290027938086776924502057733067295942665024357118834433747669015771847995762351618471056955015190909482234850869802658575204840761701076600260570824789216627882637869728936285044320835028042571864914472506251895399835362419324872359410017963100711734341656041793761643572441900439648663875531119491917218629975095071592465086317108934567321156082848090647232552947060010701891432995395888733535826346381942563067502986058101908604188829517307749187330402957625605486812772697603855338989529484728774063402491135042924927299515170219079470091956836580079914626691003624717579828944821618694585555824314118840738034267235035672096788248037287335039938406449040632715628197255507060073817294839578750988467145718893280865479277193769971223383370372124423347357286009713678100322175552530435512192687516793777150165680365882658440007377418236046311640747918051549271917867933470489765042025479223565869569507895093630882600708461581748286745042704090267165689597544316614605574288420422157868772892366805796966205642597898635195738786123692264808312231282282411616298921817738229309375576766859699717427675080153317169476822690428786941875231654477550581431958407538938493272808820767617050781102647034629033761726113536222617329046122681848336942320671236273610327520971293149659219588849083025014425144532737601385074339274395305469712205891814223408759021977118484390421675349976573451630507542733895667046066125559359820375166722116180587517896218748692974134880241255930140010848780816584124531853056204197832067524202561551451813124908720602965060468736295331057727923721365570696099117904193938544231074980089186905988562301144038671120508411421359058211565293281386476813388435076406513113311822828762838884271314452876929083155035421012471474793925586335225416124516905724682646727283835288959993302708252970963841666483869216934566423981655107915579087708076588669998979648282966120776410164172693887346946636235627251863190550581041203870750362665021920667230671863949522852934114520311028618058642889769775803884935215671953128876414028922493460411677833736962784024401084069264421629768626209634153894456623415984669360578525139937771187927115781307051236650684212559620293298717199272279917091961046317011333644785441539957399392270009509288716464348763067151545063819101319814959126549905631004865368885745576579137907325362146473621964534815375014823740033779263014670866437169723411129161249935851128336161997764577892915709631600386532561281121700962677392815566569455546360585978060186577492595823892056274522408978365037736293058044695836512591151140305166769435604507259804176262932277596519212744890778274405168192156269199063158631681879549823868847576209070448982772943977381810749457854075662117569502004885990393662652053177326099779615703714531365187632840475662119257647284925351860207666520907125774087518766535751219510650748506652944749527259457867608869650706720998563105183682760868174248819712391064923108038176102415953296825895403096457458757187615105298582641314179180251634361228618966647260669489718506910324910888700929370938358115161404259823243566453429229846294173222725549534521116280826043312301906464881363417222039408088261071924312202338727325835545553253652660461306182631193574452609175149195889925120607236661941463609459232983146675777513968724599140623656249951766257606045663065133499978132140533711275501954575840326242437766364269362871988292379072351061249100102442502138918936243484701634928152827406913458671832883087857175090281650049384759373473541726628682748861096624063562619786005952636234563236630846090236255118399247808350595401437914610662344512102384371489846863004333368062283542288682346755701920775508001343654276741526986307837123358089192032845681264241432710072083016483142492873529074904741468783073490279540373443934342043344479088942385969074793068956609496799693255416875781041431668024621031635968352426135378157602480749055075815385436178443010647610327602083081254006634466057181668527279376725091349263474328577294050255683106249630421554787615405256051307355211053382576363705474645143353889543212081177377240449424120634569648746418677041024982402913034631304188644830443297920893841209933421829043989868645936653301349336718427499522127092962554818767453722748263330690444528838002506403621007170692361800123289027026874686032864309227515142874257890440295221610218596773860156475637558386937370121294775355120211959715176575153063355188248200229819682445924691563381682963658893921400781193046147506034516360680641043188673280761612393467125514612556486435697422133622450039835710182193121500029998317423641350817220836812004232757525598074143493115623554953123553192776743522716282494580648168829761383665159155441935251783099284963121950582741785930863009839424072836000750262724712060307204212006309798404953258742477726358441143155226765101902029201744604518792995852393907096471072502750909710687394642437575348550114432721427665674959087118023736407692655300844905429812262223872414732422892737276411990243619159423595132935636009721229713333648858833072529600981277602182466375676666613265373712101080677717168289884138385954940830364071991642777747431808656248866291597077417569427156076291409821662941244740977555182725550569909965460046535462886803549387834371532145049277192301150962603540573243763922943564414654453447678286491585431595386595857173569117257223938371820923875678057636259689987167723762387029596915209908506738962403210934022818263087475906214970157550214938698134135182109355907081556893210946325250860272207472151451258268488585456294501088237721582839297807057405531356932757887801226670877049125100099123579768492206268929336590797453716340448642640694038818790588339935138243935595505118536775152277610488702816783357777714673727751336387236952543731483979717378506607687469540910635649006855749889474488304550920660583749290243197210332880568055113174678954118497994325243300569216827209660871728762047550619839591173396303099806756623066517436394763759919582012921569111538807442417367325546760468112635229534610341402352667451722194169689458790654815360113059187644235073159363018986890558717429081633843146717566530129460109090565883140640419588074750485310467158720374170082142734327408266816888147344603607719833295673102235862431026056255248662540127809419959731604671283717897854779243994804147222530598503491096757278070112023328484085815311478924086557868044166663218173877791210232732721648207432005884427365034892069343599857401566090212769157094023535829530294399262677039609643739000779753550993811262232696857657385343884654702111870492153565734597192960228964503407371947781813374498550556616874832986350817006785554779503494932692834273859666888452604062416423533249711573689556021596306155029059648471332456604294005812727457240197234977916974388757236216206253638069518999116402717845196342954069566104023996584727586748472118742137050637386959839097738457958695663624068816625448491361291001109198513422337485331769317874078570127445527541434886200729717845138146263974656179948505910909889626813263169530049825081343861037450156574497222204786764786239309070462842767880014490236429412680458230760447370176981148948057635644530325482924493838485766353384287713004292341846832412239975895258112478932458756077650176302026362530911478518590985764867525241167809044836170072834715489784223060646602301368007055098191049581154766015362937001375238159853914606114973396846453107284079668388879927611106701555830134840513213950425340257712248636463519089097988736806632443558040736184704702306822130184985177761576505933452169554876304004630732281795558389062345236345748841731982403973981437273772379916310251086761931591514988065510259864334511670016205936255897601336327295369879594534747991682193448139758495022948742064801243112626760211929529580539173600130904123377511297435495471252132949929505998601389660406700328224111427492334068080044699455649340329873364695757370576640086710156517411738979715315681602557342017198698138820256518673072106272446885089085533796506955341186609592024871395210763174645693277624994902676143672425863470980395050628301918293241495609707115602411808901731885866071149974627797630145583308212014811621280885441952202524474828393417940656430648917188827012066861437875587942132310240500485023288113423936640450327364529597739838300334560798532477371337107865218366307395751529155633699684143766908256405681717146087587124478023845100063422106455298612413644715095018977806599855239885283120905231400389091304690335776806399041665888418912679504453075852547336469421969211321892051982496993012480699013708038067465726930507490510665098409359721996344061551807382262356762948015960027511855428100366892365343167510022050865001876269544634297179703001673534701562200654968875418505599361978325475091953228273752227723452443426724307391541914737818494383872101349276796054031613546876100958947095697424034244814856740682408552231524365393062344142846363442481052994822965288530786236071231643681134933393231846159495473852243882552052058073408392348224991937117123327254692091974664665861755920347381127350772469086965742304785707470374653391079400023024183212987439758822397077651561061243780585479047910974083774934204708275965865219002840293930927524773199207964041722746375944141372219365947858095717572902315291972975520142833626838963076371656854336525347811319299134272171811825915120520859593508277678617298908433793731784384797423114039588783577861789823186533242611541762394338537562651254484122460204869436262582794752192116475115392070767617019381929062992525707873433333658240690757932182071520474626053934399543688268933220661671935267797523466276294523361015076983727959027392043044726260606583891692966924495713703019368501086081375972062483380582582817464724908439811244032770498076614664495354714198769894537030412271535854425153156094215278349870522668258183473993849487403295544334021041149999938894962500459966132658858206196927838312819883343218048668088967988301249884713419849207780287784973604579481431772076126695135921846698357223363447463218095785410235880840856598314947639982336266800488357006592764869547014001101103917384720298854694449668344392951332166062064604655235028621516282074212786390053610652177514834400261229614441738872297965681317391689330629913177900379229936265747832888007761103731117177471402429295760238722165841802941235049815953085146060480960068841744562478665659718880824272027452358127265680070628360893019883737281609946187149477647275526059789580447334585468876793493785710693264951915851417743062584122343140242107466634898819105675972066229794591979814987096791174024944139377934041718603639943980416493542187786385155711593239148596243666629500123019804326686262288427327162173294915894211952347636727755552031339461084282741199954188269641584136518773236372535008564401010970919683046232942735638809661468003593983444036933485537913576488331473876072936389529306983245615409856383345647037501017704954707871325936014028037641308311236128322813342568717772501391866247156806874240011823013637279506103079138199281490507103930740348880882794647892485477909345917828097289637285048098913933867202462900652015719100482258987851897419962573342515713994091290906539692377164434790170568943827034540462968299310896051221825048938064982960576543626387539082823375135168066785933190294992363354236662881061221927092768892467491057818538281695127746609814982197176970029582959050681294445991967814357196603995123783965243323829580950203329801432028073277484646150232383635600478556775440426757332245824916387969593804290844366419985035458593621045403923446324933000696744668036543497978806511107402961750185413883197075355471992374987909740654911142748677709098357446125112178403947342108127767100159141266875133095348097092261002810687556772036757511498583348638571180559561399004979978457571315758036159816746240175045602984682182823191413651823991764233317733935281510906610269725205063411793284822448867501843558582250760004598220093942744532732261478035081502217147368306485474842554876691429614159125616657039229239365254468886307334477830950919599439708733519214668070510903900388357988052261519945144826235015463297710284819801117874174700709666434235726999528381463400767756028977041176918501182559797995804043505432858895323543963317542281523069739469208091367311773764188114315883102700142008121701243051929374832558510484228417077907888688423080981799523021536595529756253578993708996139014950020979678876971529923693792715280706410433178148729109094405391429916724430562452356603886939333493349474737931018876573884554957769668821746636211636259562048244206532197527375020778225684304603707296100681255445272184459284304503867580344721702432033731050881684787311717898923628130188442284062583307130186621205222273462970719072918402098966229705528506695708937706175941366365512009419061688929335683701096772163722141190778935745789389136630768514767983642670467508089993068580366206534295726749351873727440524956616232925137258170133817673197586287787212117012210943083976736912497378763740377472939260944327628993783695580562076115021145287206305041519178733636292721384468430041768804429167721491359810026031260165177423594712592312790859780314877998756217831072868369520187096611969723741682198231526532746612306343170476376940242858554906806586380769523312620237911341495256362289542156351147332907180992164725442936047213634241713877115456010789010922512100397556157255546874001304904444649963562017392996643191665200626052594325652013727236313777561450751139421404305184056403162655958724034080402393863900745398703100521709156443730246598032212431177455099053910973548893567178305043443393471176596951731932786109598729148304860905900491904732662602132569777058283336549500239211223560958814459040603516208276743410761685980025930837205284196910659754935197902629224884120634002419150979084949223922845650166618785526458146074072954438712265622367799095898364212840160016504713604123767319828027783209701340360764453669248498072681370767801670468091000058154887163665097222636354236588759562430293874208421360254191823938209767309174497106773370513600243014459207813276773602549064874558557399153472192947268292257338392546016792193392647841073477192033198242804015648626660635032484112166944721076924175195917735666849328803159757786320817800620781601348856315270504799024349703948849490188848734948312149041177860473069014494655798677956160597026008077879696679866815981997297863324053153008242625225195686867685284306093660196518223844279803207206464721834491614612700320492562908287156674980741595938558106158814626427784469342471683588391198029542131319300406194608084450941667488984221847556122455211504015389089503042995736964226743567460229945766209261908309612616895415337818640591156388355972717401993646703505120833316956414638398955845466144951061837148389191907345587636984016627405291779299812801464701446313632909597196270499234720152061206046678282370231643632423768944531912490493021637149516267014580607805000839714922334121027595858543711484370429661802493850878144841777690529337048644564857487517089305924460022403836397038258476105341558742865738910968718541373557535086781524346304316260500418925120199430797600014995165686738265425456214651739250956169700769706923002890544952882198364824207029085473293752331751999008795038652532044660528717172663335251471493555042200170634687779479587697228437352474390431508268677053452235809380320188752778156437494310330638345867285077409285427965181336382279923844524310946224995118551313940109007654115405482094527508234543413830962898189574436226696305118459791077737517823410442917360467893116722967504956317255053417584065366780882084568925886886955814439542916155014914553807188093224679624407875033292808466702386004349096118792686159046002237421254190691540960395273861563111102529079523014520734305427867456502878779655734625005002293723147692229401406661575489473423389911698062242895374340065905173553689823683927155517061745349653799295512057938206465513631436782226628897167641284342503363000525260358137603472852111925121061047328782887078339412472167916614433767007967373215782371384444375544585602721218394771528640364727936108905980832736155389885640310370336859665875891955907404748048036240800761962164189116889033166842350639289456357602287020014086546745926607885011784022060805165728308934186593914000469877900405807711295322493832448529057967634469706368572666865101430168531362261429908441334942268275795220241929581931037038497090537802862544970110827641016216465741322018265132933863329965384345120356067212728540921472921590385636262652359264761238789900634839426066619332115198698946654783607891581136545745301685775718693472997911221035928279986426706057963068592548848945177939196085760068125981916278701143700956214321897574848133721498791542791628858836806143114048812361451285221484349812892086456355304332953874914098336692642931736551293839940969647119807670416487217141777346374923836530081523884516320643602474904716445712858442028862097115566463122305208022604519703317689395118436676150397420075413547568590481757971792394971212757934493397273525198120410750705845422798924601425333338718912640721007104546831570534912833797518326043050794714965582342809784107148672572545884048560399508169606990205480297962161120080495769881582246791142710513836757210186696023820712955102784647746903238796674184045601004019659009525111840730841293685909690808886457090208655901702148994464931281461783182639990189195917417943002786314019564210852879540074649805877254988718650093967748022964661127554405040167209334819867695419262622165304038840793421193305580356405428069569604734396330386967364646631533607832831231375428846305575394258760731349800607863008245284326174775460578388551555212639963620071397063897423018986056682843567993906107925660953511235966297390748461505291065100932245346011493346353784849612698081076863502869783526575097321664385704540116940152331122865572450433150387902915411687803092639621596264995831401553965819758513454242890339187643303366540163203062854650091160875330409247523441223616875898455201861812793227283584239084541082564568928505040662616946628824070810812319860234557646604226508167801765254012618097150245472651578190702443028069679092190781281056999067018142886819047877719584828503392676574485273190211515196217835466572668232610982743120447335733507065949046079114216694002356955704432375689518453630896753542144452712508947753506410308220699941179369741351204512682372140850517893902638339963814870745780634752361546402700171622595334303295199379742521580890486246138985467107687144264209485653811523126940806706617258169294276394447290308847602168423289594001461616807012867331571068137105676182251269083728874817711900659506289739872524298798817720803157995701958293405847794622348627265014910879750325677572215073040004376982497673631135575532280082338801743652756610380594271089762514681642090176732217136329197235910350419495102434342240934271366964528010747420495305495567768329477426553605536587352106021016120551528301827651314673775578679780802073890488397910862144198892554459605369088298111979715278102834701921123859055124674798404916364016720663636472986705993227008093116935818257222882829555076747411155605387228767134642298415725333423025086849702759995421836680457993004071763787539270797335550623000483943573715404562572088626723861530883021414306459619473140303933226296339094520087570981802124202285001228877091390085642598936005538583627489761796416412864421421957045177479765848219949996412259710407800420778853931431299334171493520627317372481494580981996484715470210812287514117250580757040957749046414463509191867522557867283534702123716669139122041362048011671868345395500420231163828366169949176509265214235357320204982240240380615254540390621284598636035978446011903385452585205856815732342875922382567761325797234239244048779802112778974621656450834784202202954311905358115178764686858188433707785373425306054448435751194107409881104647360461423935313476533620614663758950086492033003949607768776082078617417193436317417940453274868413187090092159385331587209454854474841088149703638816436044202558490836438350973560351496470764013183553736005618485618935066945202128681050487511360677539489397139121763415289230379193299338710091880531084696470982775085514701366308840194208348603070836980460644340504997662187083602752220716898850438811962918114044400474152716655907106085330621887531019268982591947766258650269868914328257707148614446750263608657888230880198562190420726961185885982163802949112375998839069345167281828084678318582236178319489897283445423857646899988249508270253993804821741571755895126004328802511257001478676868226308128664137511080286647582285264667806942982904297816348384077048450255072640316813355804216893260353665260863656922137084787723294687846675397996389735372375199892685620746059568293198316079990154459580065369052009707650391995784097599996280598846837155766972438281366145162676523702472516586830400928327212551025233995104353877153625217588157229809760878096191468061998415084256955819736218912570208131831302770289117809922901028076359454523810039709541457263165091197863591835934135698617158676634086986024414808336567744843931545930746264403416402723104169777289144664690011487430991934562562805484394599320524367339949145313942730587286136697804019867510508860760363318523930991282488014451395874874210613682974553923047349716877837846420202315316161985244520616321502785509166888175983425628758942289476588940549955700527128358931000268639649197601095147604710513643158750546684756640309092821142376815030925369583842986753482156330046321917195680814030192779967213217486364121679241161481432621336594274403283951157642884048787634566631860637720009069361046867201178278997788129394016890342292421906378737250700760622872461264382668244101534396974985378997151001513733562711121273446203172348193257600250592310918193833849509057595453104973801723941824892929840861010183919420655554431070829114089495925141728356789029918845608941462758135773642191057743494320224270725913894642986025707473610528998775883054084059519561664167005856304870368000084298403986305479438875730207529865784052230474909007549748474615738016614240390543998380408352414345736769434926515894510670302349410659830274225537368634489816691760887269191366413389124832856981569795954438938703872178675409342588567648273759086503011535492700472207056327976155365883954733264781372383909590708555513554777960734442916820547570028839448919849716563888430125124094759016473758175807492979267052548762143682171203218862408046399020437881844917921773134811503501145255829695190439405408252393296492177607543355152257967367686309257331309745483415741207707405503126436674122989997248227541174986872105698546919233245415154180702243223320892259767428927627049993410090659317206362683712989328205097110295597674115990626519973596113712130764526323366768363926354831344248571802440557337409188149609859666322676904135705214070358316507879658076225143454517350298713078889160712852956295619404389520168821335255765410049262145656090298181121809739233883962267513749291110580866211828992510104350703842127354023252013987290835532806744794180092897852295576055587026737841725811331345523639712152546022571633772297194382030096581721348229216704865366365042827078945121281020254356191400334557882492931519566450222985834805970496853487105833536685015563936388821166901826982672752452220149394008475305417247645122001149184052696220907537811086730058029394031969016599052080452160227896185790502710916380794076841462338837901518957292810963540861686187881389864149800206901817069736686723641687462094862677823975694410278656752786238358350492464182591692919568788688377260930502756635585034936757349668322526087053964888352271309385143525638248583242762582339093032263794735506863387327671345326623315898167824847674538917478323525137102436243222989395424204550126075038366796220241477347229777370182275541252115078617115061783298712772745595130637054483892764615079295320618560432250071976652700973460487381587914909834742809969751167245779902726235534160844367797658116560399969813160982951670551963888641526570868496901313875855570172278965765622302657403183142396244905543924979486761218303786757181893631274380276020376998440148657463458863823169700918285397075853407097419697369810479383367073796476161414336427894027721562159452306685855446250266950098865417511268437997917233052013803650498927624448567082298542158077999632016948849301521653236349603872772411538649651366705585127776279489681201584748963189802336526280949791823107989540759719907624368435608948984245267883335311264205206297541610263912547149759103997472981189660381081134097943671723040408719436306893971710974024951430196571340963526774568919859330915523476806298600127854641695981293817646896371318111744452067242184778304045401865795100107292339922480453370865952590021382586977210187585111053693034852052425984890308234337003312996197900882512114135384277171529330758092621079767203901566647465029641820120264792771863803355695065791869103497562929796524148940451450126222323186311200921285750522111989636735281512244269657658554614376017862436791338783737322467935623405610401604345106104522433448989447444778218381318752934153545535264748031821341586817972297251866755834168553412878098224962381201636195063477928315641540381548349361619934666518088424937550920198295931618366277538877065732696035231683561852018277158805273216118805964177792185281015085399879711845521440878616720429594904905563827535523347428670905642828879233073269594272466278658567043621476289201741658682740286791414694037313070816394349703264441715795334231652436876115593941782590832668798288991336636556132043165022558039339954378753547428781755616753008721190736657027961794035912475681077581827340358232096300166259596201803046189780765796543573418973768017183454706249952542681304902528347596252727007935627447500809690318971911998823137991476436928463993084978795601113601675186079328704002398706348385307517857735364322611986160654264074840595423977487728212722235742026450334673451503601988603935197449815435965627964159070723199059819888967682804421276063198329639927151466787709069486857853963176719985271534299604174031041681196635630352010118976282985445732024454384135421122450526160838923309652725674083939574022250681333458686749861762070147422739520119068985235052525126211788634409272868479477908252749082139884977578549944088331384701558949050886397173634903862345962828512774316139248265230189933152628575872994857075011703689803235648973126652653472056358353119210231608503760191148453552190813243077432050885369066026075815821563346747996943844323282666322702166777312147272299830378517840785874482874622982093334045451374557857513782922806924843395373221653636676930637894839797420537640705615739232500880485783060959063774282589416458494720874283368900386204615339979706431794914022962150239168780688492379029688028005851813650028678340516555027489565979113860554733702359906088441491459724590586335701351051861099449888739023659553222848404713988844001338761883503016897789406014266468242280702253817666808481250678789102925669016702985525908715351364248566443840638462535474686117510771051804611736110128387229107447779316518423612483808886681252783428967751090326829925659611298781729099369800449840672549103839667151409122071216936497739021523939791374106569983269342983167988359022498715086218892732031721301820084975507805627599377812890979651754141624045450574368198404689083221723423732378506445447103892401034772019962735020522719288885885102961294884269704505918511808315740032336207811293692909952941492019131562358877287187429947468911457104827744420551576497493865173732122041159197273969324323018679374035457137297052548550770395167138786375230430481487433488955660742527383736232332227555490441926769049426243680771624480982919952265046820083806949513094770075492353202985385854638224754798492146108246376896353633040547373040111086008632537350554684195583753358239137589268582060370166449205055426971602944298072142308426601659612237041573740278259860550363263830629956868004257539076552377091792631115984938582095968948696731790080554212759878208266720265605701506366471644951573769884698822395747498543844809864307976204447510093753174296654385289038192913211878569767492996845009010277670029957100961459764122865336222995714256413898048873354643762716458019513655051051996204553215984216606684837864532513272238242953481395277015605210406789147448516033989543322711549738622136742469504382316584119527449940010426880353000304984910430678213983028331272499304932260372223863147945265024797138062971446688868473660108819411174909642601305428031095306310610266610976712601025353179228588037539240837659430959677247190669292733273232513413666228257654351950087752595818962943703585335566282046874392987883639350158094575890849773461983022680468149605473878933071909006088315576723281745138987493645121970997212576861896566718605279911475236208312029502345364773775076525959632138500066732255025482758700799617218730747491278268923747660754784667545819213363455047897253490145240084910139861266910836812337375928276372606297520283905249755429637569355262451650421243568138163547029938270591834649017260449207006376760914342418293352092212917298891272240126929095636224889303478705217433384458670357549552267250851672913525805228672420568063936295054897596889357530220835583575216820577039631355860589831379542773451753981224328556931787591779269243086430722925034924046599947171761281359340541519968023083541361152873359381254630308379152764949176802674593885223601512905303157974959077134291358865915253272928972213463687387939953556979279553796599251112002342575945629358240917554522208565471964014957712576686313738329464261023432696614510671513559333457609980514380227882344824064561586667738521705487783747584396159005452213630042365750432928956160012009017112137970138744231384353023208658789821462462392770088694822079931889596114108625413098613465251018118471223425058169184680205442248237616826722190343271255387730651065336707799198777425049162908519912999721298048545787220925384736941123506350408602948055991992221682989138350458499095230243967226332127541333344288555024099023223610723982184845333008803999543416912264764060687791107868237916972586753081313818851171173553769847206378181496115923633841158787898168965277090705724473682740929492614200970721909603820936176107246470414426639845040865895000886417265598699914752510047204509046195610057717133024027788252014293287813225090620132375870440327363296821711745250506733940804500593678156499629387372467780589005328637112701840199468104415359695553817220351912190693567947567516906006725186862302034221315687832122394441479679945930805340126603950551131079686342663425093429439700884750062808814795136385089619906875579466813661931413534183048036007755951308798287293823223882087020315217115771050805083519208926755207814090194955609547707786921355071528140818938746842509526534219899269778256887702449745555516992397986693488778587078431793752414867351312827404964865852412513009412443163419944523185281918504459655817246708992667529244341027561707372970229028969482930638036120235195238681634006377507457317753449981015160379683146111618488458263063481853453102869153611192715954336078488641653648042058474615830087154309492535695073784423812472188596620331696576939152794161560026682609281737263489007738603554131646928533043632608029049621529689436231892270067198245541736284941637898723532995459026188722787931968774998854160672905783569840446491412513635174518278949204192928481363482674556860244227863067434568151595112026111356263512482817422966937035506929773669830885566139222339621682599895092029528791110448446947074150913252582588523145537486865882807309636927601854694153612408511650100669365184766582052425808602513000108670121383954995707925741200926196238120657564197546143608661500335172392106211415185152396420935209517639023185203295532423785198014620844748203612166833460611143669070150371900161151033753264146007076696670793156813295869907565284746833615162836338472833198677893374293368953743478195883017108202287136729622590961848141735850363259652804880579388916853654640318481041686932489639081118041074852368624597477792730734171486869854281984413442830588704189923783705363549182388133800744875237579150821690294399897805530863196112666364405857033271430541791804017258563710141065139559656466971227877411171748733659411672127954015514832944634949915496791309235536158082633437809514854759754198307445098003571435789652226523956131456711749009863019673036687613507264067823620630301002552545022431832783831891057251979067758164475072840071416900208306771885721994556147165397037206826381122305776243198716300705979180015782935925079008177343282289495879459781587657977555766142746570716559769329791260174974594859658846843179823420369496761010764671548399822508929458212996349474508434627345074589263500223250659665459060465759199129855534189998068714666722216735635325954677479856431702836605638072980856251176507282069372322768848526387156815988593348760781944683660293718221453692759902251928143556492152367453886964290015792898181365232384714474970902841881648108565604353788646000506909968301300796841796299609249215353377522278884654349862295740877563105418121425709297820891995486009653084049119537012901373725549067447721646695796881193303385719758223679442086100769031338634362599505805694862762312012500895304588439321551211267563987547695701296479741390354967469666999525002121511866747351518757512434199976798440478691239766486960709529905142063393446652692302354273594163793253914703682535927883002439819367112503871984021914065619832363533066336435437720077425664518034076116424143253115490705996858457824188058469955593834205649023355142375553994848322055252642886229612413333490455308712595609169467261175709228542136989866084844705022323230408896042793650494660071275699445755255599730110474159967794259826212112417551791095461126539828665846196644106843485977051842088709511566722226868606241837474931403523257972783000662738427985674480729363697090496598376645095871145635831565111692947250401802641898138171580498636370715805645747959785358423252823446735733305657025384631590553899648768836463101431413658282622523653498345743527007526368262902481140973269285200499975017498370520025796489114165269066864663040783262391874373138842092768292390375079889233055527968141133318566113536107017978519170756345455805029316520092492907753796810677201834799994355362678830296771510709535002750161915570187661428307117173809442000062348868503809952539555604195709520402358104716548094778821802707916733334310351690384646004133991794963476578671838060821782464493755523394703838949566815684668327237102071571020768579178390008692156884314625694830205145168387212812691039579236081229076626588630758759510704598409747757122701787626602485460911860194877245934681887807168624014670949263031432580373977421626965522575900815286088671583135228329631794545829404920422094535804275303426115181883359715249234029759122579911894969795748956197497709555064538925334503626143940143443126523838567441926147579417020381503596068318830845964098756294277786193488353467823681917171199390040420822869406220493885969020321655660124623354456554177933749151660861582816105464913862878993855037420237630617324750891619012621912004217015121648305233839848621855508374347189803910691001021231360796774380575563805851708966703199191106400269074688864598228127079820114109827166671314591004679543097361854695027443521450071052025438043425044018413961013890596872821640795155251644970505066990437013760393991862794380060393265128135928165998921377823307777628427254518882246546591459201702836606807385815441674748897449217776581231718872490497432199980782317077751837028583478665509042229789725570238347406385143201635222466877134286139986376639310272163000242455864347960692509092095077294416145660950448078742887595926705360298934269264317504966537034609244634391742500129835481235843102736072838333460354090373109075027192725466176284957235455686747625250500727481469121210189938252915293253477533025857175141707040961488332300151844786746551011707480770989844378459598109556397494301811929784188752122639789709231513771877610462633122063001586572866313714703365581787286549421837117925379901357834201512468946496867663645360876014127979310480707833016268739455155649171363110344449551086786284680252231163320546227148041024967295496857718981821521280151601885656134465139586488727708024208558436915331200018862525049772682016437719719126256717193965821424159612234939437728470665178674612186163240922435195404631543661987985501168301798550475190449044728587275606658358137456640899921407469624862627256509826027699490588444163470543740579262196572243621475766873226524193489475923317794124772397983588852822170731509232358925523094452600996410031355339349541440755212761047492808895121492449420897427216746040123951548716868109227950219329007887181713538807549104634967405071062771682997318595492906074318953983946338802605128198399554060746583548724426879270583412598783460341403199100273746818107506206859543799353625374580692824005752212767474991191269497964852876803164729854773675940874158155799813387230619582669546956765472370000172196226510083470797331345656833929049342874845180611963285881362892481119627084142981825907553434560814874181424609962153580958812171747130952247225964164054477955865061823936907316370751657207915023867793193101972788391325761684471251596419168190607506424926752254632188129215513765751688486969418210997113111722661808061080119769005264444829015123232442596179526828230338843034580377301275519547050914125124644329413244788346295014001721547390807696162422555771456059638268153496185397301991850407284344358417560609348083886154099267717024427508783666114351938422630945972957477664035027871813188271636280610221447251512584488357758083909603464172668525464858399187767283305508475627379583280227833746690808163887504589783142294046664180362796872900725232721677143806860104152687742270848502327896131483980344849511872696658628255177623857671023198975197882744497117048467263944491362415544164056894684615990250072119474759408461129235961876335921424259119595210544239143846063584775266811284339178875031865719446847935715207831055991271678950241927211755445140784709585180863401574801892533948544582658101429121620045483699896045437974625711494892838474587722360512833331718743947316238890424595790529824762108362193460007659486924945620166213883392562919773425532188343424712617026957094261010692185858830210197510326009374956354413849347741859782108768239651791515392435645183172509190349187157740409337428856808642264993893145283171556364524137312991326604816828092123163964434461912857141138959864630418566990097414083501947336517559601739443760670168553887570046781346788400908722353594127321077275955852605418833433150373109771273262988553658464540069239098717931564530380991272956338006166706167511873893092551751035421749927975976686451410593715392373146377586556677409179539364042910606747758736368785827334245865059719111265973915627024038185983189135099188579185932683868956581613815050274239777609147677667559716773320727336185057852189994638889169639186775419661028416477230792339412359129236405217984945267843639632268051998949876947263107319357095544772539834930014037100188528314880359493180256494178830996221621439644223263921708631439786858477878824210168433902110033219925360318021900338205073915226796086867470969192022014353773471464297945364069702824165177387771844766575972520504670074486171668686170027342375921270253995334710271260979887424765215838339389457171187812304145211163391967042226222578893643622608020699536930543799878559067180250986675958381463178234341239356763689136532067766139553712922959429201881143273657506772514105183435698054279085470231794066243554035007269740534880195199315275235653601526352890276423366004874273414276541851335116376352085566432101019038744290078470857973685782549450918394889886024731125584876603280128194938660525028614261891652028232039216840437535209957943199565399675797750486621239499904523891468401230136056034415243925874176299594374969903433151168079541263887808658390600271722765781166807867323562258347586683493692444957186825779428338643705095908666724527093916222456943718604330491073991401823677999326994885848004921926495991297867521710482253087383994600193191503404193172155006462981887851074827788105418961783072470967604954376504985493894553599628196667819905880609127185657372237188746552154189156859128603672816108062629533045388703585951461424216580657849910680780930857709137543060051657248045938286707882675454250265880245761233047016598649619272823929904774065316460741854370146701610794116261209814357897542170351693446844457559138001385951134307495522207145577657009282394675499242152046679089869784905879977546980276529636394341542571657426939680463199842319113537298361842844031437865251580711453047044701199028316848505792425908904053908280691861501992333260620496927478010606700856213768454739627142988709633583220339554019760886448004929552931920331644797804943213794794826707309842256567199144559420390603235430834305799940594502807397370930822602809263464347101645666124729843229260903097472305021323866446330102220173299004838971109493746537809880867193778562762927385008661889008619426236770566054022106413203574886010999083272298303679567002563732482242898700157444866044619275215709107384603816636803164957514254450318012875724958591623899822160260593756654887844809645673929516311756282476587097602692850944194605107185991605401222613051682658709052541282623441718303780460082000059213784660447405841511659278037956056885337127587784065016408264471763524092452968149504161546836238830301602668562925219682146812349632545887010000948868642466504053466094067258255649234187133437012112517487814254803098491177336655691922155591766064409847451948844526702930242887444854817361364896410597067520046852884191292345078137341316279013073378634453152634837722506173175300641011283275398210609334610254877673317184702981151483001400987662409171191176809570395785851494868671462925747006265950463613394879109383247468689904595302750583908639137007912233443199614357168617284153165663618351713998359731361331675079687701948295223546130311915338760400075732230354348974678586994355469738475965262570803335746461316033327427416649199574319645568234840360006202608205011896424638400372227499035366609131859305056141164251764492435105013121422339098150553526866377392549785806613665501946884575202261288797476731762071423324298238878302633941613911430943014766188933728767266397609441698850467891218530909778795923485925584067175826926259808608190015224887112043663775840287780814186226481496267755692275510460737916314019703662811992377635016968031115242308006843746555027859754450330687980683505654590777653129634942186042594698138056202661409802557995616335468359809070164454373881541926247423946177110801335370265452831250652184863659043804029333773452111547776548607070179569644532025623914006803377020062280619950848317652692968157489949391751475702127022323330735638030047703873642906316740219320866766846142678971423866203404685565920831133510640126304328851413686039448178788649471449420925248282089469830492260793713303448405733792362926541079263247020111734652096515887800120498360540245012876045057339968937813259955737366116588588713285898027426154898007516342131141250489319377601476223401271729279810012448020072044664911718984800999553702022500455716173425144422397518399071230869922740246589548958549187271480591484214511763631602968282590184005891029960737690681269874373049749706340477889392666969756763282536868123278126073512839599277824820445641896085370028193237499650190150640040882217404644035858599451935857111183033903588964216375851484627955521021034897105098884112548292789962270603982267349248066857171653355558399978777354822949306619791625408044536524572505794883340544040335705517516277738574089519734480278449889921585923545559749439384799155978983446711439346789785832445599922658500293314904038177414889384350618308078548603466125747050235529280795038776316947316394347461314034094715857271549731286356786672762398911694364965738719318680487892893719373433985111763284696720781901483743805934997818310804725482675879210077113463649737660424892585068933994918001820300832845162889420675544963659974057407898054887087589107218248904076423923742484564202825986638809642685122997518289677618320459490252162219961391914405084603819923966959983707834478648982558099425181674383221511917286583951945840949320058385613073261950704742332202862323646218851481924593975216428071395273396373505888010109408950131926417300603608112237994831788887384380152167585272937062950678422283395231718080275643189965964745459127351825452075218481544260036414912073958139321140861752038447172751716860536159959920988738689602068241922332576157667412428258691849685780294107544076772372226684277252771791812968454351102853597075896737471275545075934241307807601466992947768230589898329981891554986209855957106505795000975625370816945933073055567225359731062874976441603872055061695332528645290808658006047731400923946068945622843129284421529174534363444291227979285218772789075205833647387602200607566518206444843926720725225582416478618908056827119258064635449898731234778497579505563495872822032335823282988848148982137382613456530624489879046752797349067295950468637899697563979480646908878930666573784926273339263515125682374561097831301067107637641575330249974608040074804043375922927172011553521604415516556844209200828523362932497921248760568934502205490398397131157220104000462050922070329105229875659769559649825474276368427123533856913327829447757014518052895528010166884193122834680474889589705128599493994546636549131043599347933454950600413520042993221071518244651042304994349567302656783410632430388540118831390858561640758530071775672177972986207284083341845052236101800508648432714582754213744458547344454590641511360382594175124165676169256298491302591962475921309669470100195456598288783312414886422290298235071540638643165870678312914623649106309749904689349718202856733641024792508062421105999609945697103438599738154889209119190206698543112622497094286658181055099798868513344062662636152765390103090674674015342818934610976409941316329502547557889343427619266722939711995313239831962381339487256260847685870394938988762576496869253983083899453425470198468604679027199574278972960072980662755041351870284668162422084420352481390838281960130004632765908701251725417049536373387200762274535530357003047459788780999812835923652695019726872632003458969054609269919544106805430183328690714190192027335092487477622245717629302934735071289534017877696161014766655933737131836683935416283347924783876237639844063296034657273892212782744558854572509522277553298722309176171870924878889242806472539894421644528016253320532740151606784375612093439176275966803539838832272893165337155892309241580176151773970975959438032716281247249710504289922588513863068919459750456993134664339560213747861905665058824416023729927320726903609290240226902726184955298659991181896127640195937042135413009291948967334709295215953250248596122121718649358950218251179978519339725253505687383172764610268929857059402484210031262623913586377532325118090612437060728381897832547898556673290416342548982388307470862577100637649117931621608031406352831325391877449529487902868622835219089726522535877084156340373506115144289984733351326681129647204178092078358421778403316956252749633711548164576683299978927061115380573863482502156346297177382839300276184978672101347370903660724300055627183373879643034830856182069613552562279159449789481916702792647600784236818270366286131552432719505541840530449776823602174846622479341947662089647047261859452710818658346900376103217845528144532862133791730732360964188868120368445184702186629386785753739017682684838452374375129181945577203071050022029422126532819512449727439960322613656847622206699470146166226841041788408893587241337047897725293446070224997370074044956312641526484964198739639087515781136155583651798383961226754069563402787046800711811293230699444477578170744122091861515226995893798426734956676484428585209192682798709015796041717322881866475679593088352799876323704282689556606602136773747015300607927682421722226388637456302505562100918036036363006849810702585065469909705739456111194956166207584690077149433412246766064009874825276512303263739887437058082610284907823188947963317356753295874516979628431690490315749016842583238369427433743248826657467457531151048518079307185078967010365217829868254668321024770018627688944983374594017210005791534214009677666267621216117844072272542783278668154820160294646898760243922364644864544643303860118156980573695467899334704467729337057860501922818233823648520086894329169607946225266219181591691453895550051772845363537530711561413109191899333624729131743250401914557231294676569725650047242451590469982898121322041061489164692469275126563280211308495976579837661945578118611644650832575409570642494108853877599613079866948264389575741758286158330743227480444269701802175843434443094302779191232527916491628075930697532530450728473530260945943337750562959942768595907236288154149397284822334758497206569144705845176973005761304489239935016404806098554910429367661172206972940844836694210275943088810523913279347439319001516167939252508141780795815832865005115138156276748840075400147680366567662351544309212880099202094486516478173437033836486727706882699795511040245857775456743692702665489450332955335788983358592438548881287467548290053042582335255863557255562003937463146385902284532837566578379788339489493780793545280271249954482195626868277992319226414575387231336118842448787769210288222964816919924121733993397001134901841196154838714372240031357066251525025396106453901518318022602112850819716523941632353997617912503537272718134791874693435365798311844838189780059789304627199598152802008216356951317902448024961037251518573836961664712857867516491463458191364143326647660846189071794491460210322090265224775175831989509764669500329004374130072158828263912042317248587970858426379031860135444432544145679455401625166260632334779837644293245318304370883707608259601420739211033133331668580917993701319140173471898841363107346028160686416599978252855778583631330413549450447192234051462603027178347437542038560054516619509084099472726386424423584691782945296441224842893447815665290961173052103665559512384944220158859885522035976038426378781614667223658130605582910794700509627237587979366923986934252739958164895221552698772431850945918149897392292134119679164066492917890256174931860121804584676751094130295434035579090581849985563353997030293624890788480624827546097809544482789149324947150353951520343937586160889178100581296324795884061472272076052842737818250542709397631351161642274668815236235019381749364444291529239295979532765233068927865773306417426055924032094424003463951227732419375909613981518175237062143882090412138280316047145157777586984357105919476825872159633787881379551592188801789051256744979060220170383997286046357316121036773320753839595601857330090482499487720636974174009204870267863968767602724177708336858703581740750839274561144710935549662654288873711122668008869181896885925965150885320885189282523308837869936583320561400131423971220668161785626908921035087551265416679943807180162115578033360607416303601007906651852789359103541233413236443845576643316639042002957579251187873022428747332853895111402273608003670692266959639660854821737446809601982210142006020882136413909842863754345405391481180137873540930176591449662375503943098360132798334604169434556650700962517220981166331081687412085452016952768385037814956748738698124734950131709932627763330509173371734648171231055412551374469006850384929170631592952732990628731768166453443401100099967942729482331595778228257666737269199849340989727486052117163029458803855494782512705634916432264543736367510532105623164141350804308461570971870875782290992592395556090751237145662497714575765029444532634893461274429160901483745813698338543323290580932767521433851310271952298925377057018696971573044767993313925406322554045424508530918240364137847747508802432557482134454572387577673908619325734568168903129290564934107796679127779565527455487653837121373652620130247366060548630199746943766091374802272565123213062699283488256820617141118524773320879101592318426025825227948109418667234721500052083230041546823084049789667935798641279690607193323931185289407229062489565572689171585852419915120537059253654656137056751282047308598069748082192781960291429267340292428982491233386803464756559744416247709830602897331036942486930098503608781263404347391218700613336390937184195865388731437889121203167790729648838788214994668526020798206295921541474948227280178719709840839326440256416131002162729234842777827251677496009464861654084290378552674915939873286074005001862068976186040970498817759468698606728934944677571583116468073039316006608915010023963908990131170483179407610421530031715940906679772377269929312767592122577663797915215000042818153872809179220462541879987593433091830562994978584200569379227626556237949082661336281815989395410349569215074185725706232568077985802737137856220840528807312719164521568132943421856471142011173575391068318447526743850798925733489404251755803604882184397535474793393028359050258380274207845707789918681876143919818749318368529545404996724454522176056425763797958253112765690676387239905049093994094168114156214442748588976651585512952821928438932139663154126138769099911336101621095145510952385833592488276214130702204331443986408734813412307088508478266008120102408581029242218469728066246164778570417680362786184825270369614555289640245389431242083682797621746499040835302415430769078470472795327878116326749927240538042073116227516883877423831162120954184306914615520188662023954750549483477659948508493217347150018319939821702187469866686705226110702685450654719791905747523504571279485131471975077379818264520356235568760109254806761674801031010471606527012376582515845662165109237568774248712771647501317242981412032085698880498418799048432510645583278748212904597472277081351309868846004103626397696470169214614440143771468928523558427180745896532488551054159086929141421135115546163558441932664906010860205781107952791177293490046722545575617650547083806009177614484117231300774821660584844506085319044768512569890374584925684563453461926827364485842071491786877559055637761721095067869807200939044000294670839476484371331546728862357288492775912408165548329323513950869327050433035938971463432514026852711092425988180793968151965818840856897736623065066172870890884031007388412898141553097268777332782017636050756070342722276011933723821586114791892095057210885482850416771013067460671013385194196122506875983268678801341786483220231496963016859591377976538308760506657339325431407743565564206252905443466099523186871216726915454431582089519929328250514514471977528494337368393011417507203180397745769154897814128277543551595193299153742325298617570697207537545132749314077890171012935839739664088699230559664609831252309080626609975841770613205969075046423656362250831652847475454513791670185100299794346306646547278954571758687589229528045002226636142262813078034331806686840200187706701078597677333732921225894047301380294311001345946252506464571001468209737473552518244722909079819590357582661874318893830039818462922915804617344112388819130912072642820048088787947357736086094188287065871377909759704928397891755163729348462823139294824403589478067533725861630090336054433725060578095061053041916204099062128140515040604081233058978000900037807721489087910296999057638799844995987830206986340943192836702227678888985810662402288338739566085350376546039303016285922055057309631508405032965683714566941619157441259540824665530275573218363404221594350690724336022004634402337619897797111276793813536077825389979778705092547453094768626720543190135951036741627896004401467005293181014492352066451137919565831368113243918119508515114032889873092757912900750923560557955440901422197143948778458005157562925294913184663323902872720790936789660080094337991612163742701600115964565358965289327341006460125515259276492035683056699423434529850363857770657633820436414260666224589902610165908893829452698112993312369669546913258670429773530225217170129614416357356523626364664184312225754013362428157408403348512077865350625377345425161870753571981492275937236058930639848641550696495622661079441787199039516762335256539633485291411883475983170516419657773180357871604631981141803660118052028679950564982139814861125474750784970951313200539459399193121311719739050974323543415970270872299748040842314193250068308189886692133953129345881940654921051660334153936342442669036056496926497030715708831891839944138838651353110081086888825544810473485038690313038445861103614430362729576030828750078016087864029629002873753646424264931489123903987498745096623746186023980393168934525793290132663200193768001999065475587597998349641508754935670705760221573527874416491469500216709485501756267969254190989665318926693418708859074703722994394115733344354294191312872470749978566299938776112550747757249546776691764465974319860914816000716468856263761364275613074200266145584003324768884676290442097779755096675934033912189399801176586332806113738798335480036809173397667894825833262665161042625022256022234302504476706610452701556134301097677427424851824514798745399986365188524896480003960663888408442344335081025682900987376010266987801152256580555775110942126362038095961933367936758718671344330582917132972100531426346246303229590869329770863122509268814592003319389560606360359157876338919703033001286687869517379765512008425890553663908567222900105723448862055136097897982360043087957429920059187349239210308691815325421994787482797161509274554526640928980565988089787748631720043021945075503228415569414985042169972832219569290570969922903947762286171090977194420613866076890486750796560374350672344856166769267105554244142059401902919393246751274974358706785385939192912981713868822088935745943060094623800746896645023240758266373538956879255820579858115247192001919797543220673576705984029363307988970886269786073965548497094495175917900330702100664632227091305683402850618561396540420393831730176798272503512197042668679178458451396921551406432769860095498302805607338411740017334015679935184607361861783034681909113063202845640002015640319017822988466765517784755571371345592169792159289089691870860738164738016947696980473272944913366784245767033600015894452439697972487060033903224793774260586992499095366918952007718720714531918581254457246335996883457765346684723422129999275250818555258859553819018760706735893127328186374722383116236972711487052817834793686726746855932986502903679477827330074509300582927385873859912805587543971735652370419762138324565788852568561512955165861119961461477437872178770343571152698790926482457988514719866571233407801835818542773095614418636409278069865565756843145872233921919672095094168468847652312012586647242850575355999091085233494782648349980169989132011636188541980682903364468956849553056466664787994910034894786542763999762851373334779111804496612846056210838349546117248900681358568795385621605828694929968309412316757636479358361131722543441826224208521121816977220498124913580886159071196970542288009354402348354391578071101795851901621371310997090054318498567821694102410020214284507771959284688829427026364780589594617521136649362271130744956962945183774655926316600049811169377552663037554740899029274681448958235188805488723460125521452877185063399139680637644248498607054093108390860901958183586544185465083320313003248956363993219427774122261872417575314677172063403209424600113400365173206416186962965984016134725819935310921546051430022479663587052607519933371460038571687563615244504136205283712210040328705772874408131886252693430986847021629389110645428051907209915256592312998098625343940746239495934808939278992204812727079472076701059100218111912150051581456189389951961623102172659597177074054453439993838234377020060684004969376332762260443285115056888562737622128194966231141563510884197825707621800532524010521163136476220340104463591514323234043696235326392240445864001492036809402306954649062027676210004794527816796908614788367418474583150948142511647930696360251612654784203407423226123980161867788192651221315074473406651586975283519770594269561317761719173570920388918727342850763997773673209590061637255479348349912565755495945419451559604439682993957553884879514607211709039868133528134747396519692657709895676220868744407090897049903913732479246977217401811177460367815277170495312447588226224276688777154378457738157599762550571344133900004238448535746292601521124807802446320544829422756383752542038765165524494258896360470751055526866871021271747031453459983425512761006060739096041832577224776054154337002476237246771306586424739047338877238639321549004260349317206585196121358332732234343999206081188212915819956834887301108922140870460207997455195737171949402718284072548748529470933694905207403598787751344948999272939375780631322746885531254824014594771229020254330910657626775106835353767369772409963427872577824236907860460210033786678482168258894730647574904342332697066449938394841666613581309480538074909529864910107093034871493788141796636636402004023426774475397939989415944613244129471073824847371837702215005690287536878785005394183315867157160202514384361208715795767534121141259938195250141499779735397085385982750036765991455178739936560798059361343089980002982358400951713381776561472535368910604737010602813213682637526118847472548213089264466454611593988888065608537967416398702040122893522933658124123370140144861520656798287895399500046608777811217732823029591359106531395321708724640968113589536622598181963224162242240368702572314303872397193363751546994508173221060376040910799282334293195402901991733730591054246759808928095413583797772386953208881515284904613544891424189570478627692519280357068704008929135528503852186446175083347811383765516633183019243120170085529198586835781926101423307671211171077239073207947957057912317368452409631473215414466210033956373718260031404821973994513951709248472712684271019164732056837006982621057233763428245365368682377024367656384692051757241233879544840211209913987479473939276784464638698048121188315683374309776169591869847741445122838573384765275899048597260978807817578297817852388739631775058177791894537490065897961238387924378908210934818170405644893587502954979816032321194468147187727019658791132373712493921226229404057854870319687012013866744839513650619157965400918018284622620803296885401216418229324281832677600410597208332185318964403815680041805972761648774740858812451034377723500553151074970779813880848798819498969830679385793370498689107807175379089266332539604614057067689955778492922125588143614932811951675674464619489369599273599013990523831419049546613180730393545512964954068603901091913557561189579996304358910808418595957151289896672452852747835655972190638676586430030525271887693438095152932024760758259210079305009383688000418424774433946153731592079997884242099209639608687446855119702595682985111062590593355283903342803837773055825830232674181385953358971475019296360489876385825378071382658510283705242734034552144511223691218800614680721797817192753331241693203991529744803846357848575948372979567616654370107890702733034635940632792160211078737573325353515616648671016460294635445505282079455858131635015479965082637924171331947274684389412528220921477680092784948862872408625416247013433240408162293049779854915927076991997729425955634500990814789344431885022310487141875602046401793450638378778489569929942003118929311881895057873534104971729237647648057492481078497166717997610755669284347198655903629736150155477991102309009897367159446985517753409256486434245467460165332555763206783967183955943041886210380901228431133658293927097715066156649638553922989451669666920949337920859859649670959210341641303284606265887887474365170926353863545868407065905056362621121889035016092006329324789192249812031903475984645898692374179375443203986515609888634923524401436633460511258247465632492574534682134973684003639251427021402918683598334431533167712520503494058618192270111656651132356222166825351912020471400754599430998424050360844118914827305212742300941217461597057009447421716634050055611426898032039441225412036789336363931895380925168508451896922637237914147924380357070982273411464431419386938902275023072748615078655396640730753180270827216915761615149992860542148785706335107126805777343352360450155756194135769691622509996858004691896357666286882960144826908078139352426494391540532142739962288801475613643106104176622740546404046922414432592463881751247675433103897046279814386358795147315530146981388481736578712152959229945149245468767969887307691248001051068196057675197058094585889416998882390899457754842932595825879099617732719445172964614362803905480813431128854699859138470126638073221835692003409552717490563980413421045752234261928422052065029183969512585269373476231203122946800292000238100995973594080671408428345902951671975073472510850522059810709495480727720075329862253630784725846700928304164159277340769336016512657863878877295977295180985299971298809319063914996175160485077680894333664887241612093261327137867452318126242055997133386363482623582520832261800596811620413553108996236247487264065557351295854848174435612798379583018567863095129591542607095155114998980885089716987825284620986292417248339083548268314369151089289748990764235220481994589527526422785829790319987391294443582052136736701515255337232020474229685205804172127380655831666978556619365765833905395564454920943512110993596823159594386663341974794734678706635075287550930418066966339377269704324216557959410444378805963874061428730244351832257986581979223129655182548479463866771482533131474930699249884330824288660019626700678791333663457755560477634642151674127455042696223610120564367470385385705569510963675941686738005430926349524687967224904430003392137711804542109159635610800597634957387271922877872976890478107173473000496301135850042910777404008791595347757730156892962473999897163020965713356283407309989010212355929117248929597766748649106665978176226197817416033753795756156187288672304908595735318539350191324365675178276012163440575547950904698587267850643891722460125293359643059279232922328147721777381404629748006161604804733203996226044534451642940371303333391162046160763982082405779274360249660762556223024759938642094596282153335287329204654968165247090826436510056972060209943192794502151266486562003164169263367219641207708744415699604579107148564739083499288567061016784307518229378971007696165753661971722993328262602998094368451755183499131438370889412971097495653504243461986100846444954796074097127430948667031867796129720518134470289915376729291313285695810546137141083155240811522395398981419689251044694341147930479765396880312348825935627025429087131223448336913346891701413362002784230459969097619131859905232850233079150619166116780005116959578680726424457000915300737167896749318926005956392139099845308190257737363110647938573607856136468395028300861798017063929324853215265603514531519428995579831504893577876200109292759710712507216363110074229183743457819670179347566345161276395054742539238843050821811194005139719841985234177327435411562469118735342996832597042507253136862122137560629593870139570372507414073917403623206418868980635249471460786985626867008460027033532361814542501327156460459374829402675753869753422619369648849188068381805515006777828762053946480481269380340383685655515286855734647151020375894296892918430235519565148772186160227437917690911411073740303587270449504292184958525933372455498446048402989257678194871410984619987009036196425291131179517253425196488110468661070297682093359403243165702711893620648454652770504973829716947009507550086864055498424541888277500078019584503092417096398755516024480239930265737598520681341082442236357898053938679147818644803952599452797473878571588567274253901815833609407421520019571459664831824551500092235329233449201318198003932469306620675448802166367521930988641166856472110920954267842974452617379396184145882697742726309827502377776029184425048191440010956526709089873039689380912560468787591433154124165420805531463380957513723888801626788048215559752766998695805369422465972653856407584702898950339630028958785453623249681521266321264502994131772599231096390089625572096250707214678727583692749182731923458243003107286511287160521290058144336165357147167923459937161907280830260053951107182954457050069811381524183027246688364094463699318192779505880581202889829855962027531163304724626570243514627671171362887076349596975977475350871937150616696103406958098240353464284124854307298778765168292482639282230413239629434806308021581587103780845668540347095496619422782390818986903826193842110568956216253623403971032595350071526913105773599823467767767653979362380880844170482596218229383896750967147586924447144033050289696679539597958560505147765584668406240395562959968245334922665004105298465506341550164840762910028162450813428013828051311627346808028059923539638648074602844636489340821906123387099125045068498324847802357213231157798185313218351350147566961819081746536329552697266428742655782675543647691448107398293248393787641180951247326543007880269530822073810395348281245766106383074520001790385139618905734699786798933829407326152359655781618528734346896014257915629389527902905813855420765318368863792629708037839595545328723778972071015941496080679947139277560303554339156719673344550325759345145486186210486677029066097054312722543517216869364777095399287873214924607908653244553773224942082422363157263775204125242650510120851626553407172672807286637029684206193177824703766216451960294198671151439439515204591128120770178499410631094946358231848584151356568957564481053067935728454677438428718504776194952023393376477458181756561621670378516102740312184834406853928835763491812973169234229673759516543114786862811335139673893828690409603172825499058325613183411779463174747919539413707366134269968426173607819654053106620027333825673403676846065734103137318825733024846204874162237603834311897241661541407093978210983192091279845438029035054188911945185249667379836293473364271503218196401564339035029204212328956915130987964906472218561356626809359256541901412477317514378431609079297929122741547286682124393195014481687991137419823154511543172849665330819799143823088632670992693527655588483692643717868510222334938568748264408646630793050103997509440604072940726001810166289299878040384002968787825738165998511923046028061633432458358407474305439875979788650648498463990769835396018598372336194196010955911373024869549183433124296638411777540281567742303346035700094566991682224609953848035606395403134136988661054988386377058277341768947941477921158780788965729402147233858610800753407057925522870752865033697258527995525057619251713639001074335284433722386179028798549349273558068266494917207559364193473717721263136306132927635802344905726438063968180324248160849977535320604371469015826853477917367734617959368995332012015426509774278407795358934770585840052876107355019553046530037291279482814201452698531123890988769100350690354489057490623179963400119095195223088659267910017733964412470686596957081573799399633165332034383916885013179362318101416108768017199127338056489769001654046786753240035045258435858831607069248700419985538482562438082921722815592028879154289745853219496589535335594167027273797642621527659748518631193617425296079268546821179313092492275570401434644296689547450021709770744481675767996392918864317902755182781748672288526222788622479180957283191763717059951601643583409842468853281053333367948253913091453267857785971299614104233376768136614861775983003067944240262635157707626096656558653048127654809103906835692283375942518363348927984525961714521705863913090575533822663654306245561684000049408780080346592825474045901324395447960196447253918595640990458144579864141263665641754142565120120640435623557691356778348392198707541829052195417531147183940418031036091462849711295661946754659400139809275543199419222673814901227415842267414724338279972542332088414034743327847708329877847545016584415907108480486788586446051442869551177253071709137135878223151127062869255508807199832671608144988167256942319148595214105669784112302068858967816363331054946782815968068983478660259170407703540337929156221857719421418107852192022338840197695600846699937470716492187776287842904185635784014143537681569045407571581779373325132825113540686280689424116855502839239849889241202020599538990890570954052562227290600828473090078538202445230639908292760405294637325364327042528799624493355758047551341860506130234103528450139240194853661273996964999196797111350477813029739092464199700723162651383784131493635806961836034847726962635746431575374913970497513606906521783987663448774002817897577299918137284824889213693784770139205836168170391562343866364523439606563601412886469605846170575265380692660249170321835441829007536163504051621742204135804323179307619947057472795512760998654341423031664219502597122238484648621365780957370849887227696956018264316340540844474553962155975365613371960207214607589104197623584964747612401896694957818913045884968146621521095563363098967196610738249884722635249715236312546059831900265452429763212001379067749790295628902089394453813422938724793112184768115114430422373801973410543385013122024650138876046493134607815219407786491817786393808749569121932339432238938245222516363487855615727550303213299537409437644753979706286461177675222958073388591051097144871578893842858448501151504601970464111074921779166722391223142792999010109254350954954724376591034240989114569784081547587170719891636682665096261831273419662683060650836784071369337860305311676518276847078893421432955398139935512547021639112670739342187285380613501907744895466710806533793185964527842580009264705053663069126234005587962977885391374515070122182028132130495541179994700500776824801765349444985700875895448283728191148289372013991388823288499895186221708500824456214534976558601552497010260400607296085800301835710728155466780675510412721561537390898789248331672833793161612596849965834953152931226454935500056279870586667169153181404501051828016080917691039942863199165219333913464160271449598575213070778650701750501531865839398537245371209514789200999266940888919738930059460489034958849732809355597312243332592757252301618248233523336793983753149681412579203007223907139250692286564159409953700346096103743838040837566633130016415247520800703684705485191911331143263216311055814167445451934935593049444218147357033493136840097614682396836845712000775792701607646797028538972357659341189475184543621737235182405489077700646149685514562952581038750078204611995307517066939425823294240463773308690371203617612758080202352300864091550707490319358338260881969929787131997113633155950519697360925082061868629572409261396507604457538429301962395193458322065851322942755716116104216506046305466518201931077743389837596878500802331626415706225740323874369670299229119073449466039076982427110512395636770162650254940312502704818190102187025884160626296489927913686473236104990537064801351132557966119318075195032230033477310011268376190019441021934661675478898490274009245646255622645416998876674259136270248415762701051205385174834728590508738262299774818587447331460961407548796230066183031276512725951127920549083452459749915132187935041432930398721271097761680675207118340122026283674214103752246315939991004878023266252010142235651939227868162902049600635127832652572619759888714789179896171823316455409214388063517532689643629929035102542540490756101059407014732286083872647200075947874917039434002560276353690629220464967732414520030019161654384536892165310000550392364882942703301628126121526993209822897972712526828740361259061988483517466279019448463249632510198876865400576015767230982947975091907598452448441155571320042977627854147622659079400255797703539118490598491987103263969047522910622381534333310389639092156645986529448173771538184224463209028522388372716266655078665843861184940175206925201531245894444690722186083308570684780644087092990189361319090199131862250890130501186408241541257823220923222662740840740638379528295025970228327394967050263302376892150634227579722019633942502104056666344602026892971443497611060283974821916694853170772022290714794852270189532652448489375382374403269390039607380926882976509375372896059829559098630276147303396326183295023795886531707975051338994335444218571484781013539288105158542363939445314887136527243818705961622311090603953558981902821159166044579377248146457707354215251233639182792758744155678180552832095794981150335749488511472324385195266379047833010935965419160924645475568456617030237666015745194038114867112406478543420979286718363314386095520901561954288039594180993397266007000591500260868857468376290260658602544910622119071017367736137951312019755423475658954953834378105027417544419587488844513719541330625601305894185140090377832335167087227696303168022915498225124010652023279633760768626836890132947223509977811554359761158851766942813511776518437653832779337050437356731573683786625840679793601154644799653598019566935733526715761699130893215091621995670669207416935481463802320640768828879806165394770217011892359190237651688881572718249922500619190611791357810697366345196433564862444168467861152455421235795288361494840488144170204049026998104610247825313471959571467302877831314164565540252403100109434013146799586167366835124163138796798504568903379184006993876595129982579812161620949072520221928563787755347057465333148663456129838447908240503110958345182959395344396360020962630153838546383351553621920663330887329073667000713002607384821530965259243916795412048264528878082027002572551257087354727379318226752695072636023585838736405228738429928024030206387052635740019182304129005763191556947445852352306153635957292045110554689144703928143818312539118889949036711350008429460305589197952804575617152718524988448162158836718732293864153383730209655718141060365407786742687667342169143803137714084515259562384928108404602554377663846591798965068917863588688500113305764967310016969832391510511237932425734014808157226789023780774005265701823068204690780356483902772149504656605984515122852173581480158986802383579372272947056567850673171619148875254800947193502972677058264891503950186042223881563549130476322439254384822581080494768835016792994362646833860779849938926480624862522323521770219684683266305011004825610805931302936227499329532255646104189015483918723045920641934324066476952370149759696672857246441852363959715974960453715441628885330429872227369232616948172992284468609886829479357099576431333794193438930934765903094452098809925349213907204905353127274723049131047859953463530396131072211220597810369832990174504964302613281129576194378497375719101444887872938324029296273733948410877375445953182753337926654546045324538989584302111005351740121375188736383226272564272272223473064797104386468783719687926497325442645070392519343820102703917732313887895269787446934668696967484539201625643408291456877213983463432841259592697803473337816581307026765633030443228711823587133850906402315948145894962317575954670081538319950496102417610048864932866237119283214342528837587157839167465062794680449467915785331241389114474821719536134351338322921924022823779231435752818910629515939958120239929040841123057567405738370462643527042378379610823899637336459162603838731484556617567152152309326815539159696835942040726065073531675377610459089584481210952808429727230843770955337723806571008842047374859816170741259022624816062153345697270441896632291294609873324132934708935381478410148961692445999450036019190382790382446923180873302809514265549300289699707956706102249458927713806312023269002466626619917652919946133497477855701790249834940163196013379916092667504482047634868569165152687521524024040496091296429000653817421638342198035825676025881477903272406109755780642119739279808808475068374653111878905949698568383399860435837763647933135307322626336868723870336845312667485761590327381783186957099773816817397070025365762464227383709912135739983934152171900042263226787709372009190722940490229867098656589436816709790893089949452792392940118368489459371217999045956831356489076913020337741399417980471675118383121040422925090363817228615438000392008460901169325608027556140076562235355002344684317626544252547452257143865024068927633963404066980883136710859436573220996930143323272801330436145121914226003578258021287076708999733896206600717396539342251238270274980660312642350196675823284687854245095783528596846998853929360378590942541939983724565074815020927950133128917781165937517958951032774427553394785999396995654726676011840431987957089643513617960588785084832679810221391314460421835683484952118942809342353315018026377624974853376304709193698691247344209934369468067181830157707629215549112164604138014524149922572425348069369642145209485751484757624256704592686249394873805565665902628106317722493388072950666156370887171684937472196946306585427323543795256036191452860435287717356870454891009424655483841559355936762082602021039222491559309103070563588104740104857711265028356324127030211216969984662163171885223933957966107481096980602167316120907846300251029472171429106162989506437664317574924831207850160127604605670680290571501466832397938803398570147416488532288639754348727433273808698901652917721326622387766914385383824637172215551027229874039822358886404629875030780630768370039010171637804469251977777325088913768473097238835561057841630286506280368843380568320855802478515503496882177223240082408337826419206216052242746342565402259661606222699350863025436712572763456110440040951436991725161919257364387469157257617028509020602742089455372362181194233876152497138268112153906352157203242776618374515703737843177245802483476520952441646943241097918747014586120820279027619596587084988751318159659604764463844058965606296586440684269466247128385746244767150308461547504715428888202012540545038212580458483427552842371717121148626934892005443491167018977513198943065986507809876866711025676547434248543955876323853735445386067331503659332115581427548531861895334883445741458024514460227699214799920874467845237955637948093101113992458761097511016554665746507179505903013854715229677164664884257587346093093716467703973481090127838959093553954338810593030619808364388282128111072086623482273641873898471512649063481351867933778338747652596114217944462415230556737777375999624602295347713595402046243906674983843467118894163660549801271553818035501623912518749359379242565848249235587130724346632545379009698570415380178628278428656625400153172659324881377756447277474606458191805578984897201398753532781987107546545394893218256270855485012939172841602324516246619159252163900133585952240580790972150262211326343631070368105362904708415530611534184357428436253602861160214161592511459513060398968377212969617331921491993161280824566646986024960613887039445977523531656559680648141348362885912892835700670275978234793234381511968583647107055459203848680092705181269792462144937534148371790168835106647904287395401258365916537993920266345153860176928390768117232585322621191235046894307947047172440892611451842383399884951267187799868225164554832833354871080770776923461721711651042856100763663194264538158310595847774718726650315398976968716975696169492455624947475078522923374276899482720227219891285640720899059924493536227418583048718224012585781286761847334227528972284950037246235934626502405945902970596723930390098389955431025152590051667048083229206633397388925199234392119893270540823563061294936160767899378688508348530975733031435697323979365557953583112511433642224438049619651119679814826449913177272219620485653145884671855681373022905312068617837029865543654535684816411440701631796355579809703131463217783365818760174303523217255748011069200233518835648083664264728773066562005058410560538010852232109979270176342099423842542945041431066736359257119202405503873680255244772404713398632430231125546745573066843113252518910450478295503298224611329870772456368073696181586580632456936996507595450954280324576849613024577921070594624354283635032407865715269477410192429508934149493062123296082552785182706938144242689940331062947925532454259206603100834019186458517144780674256078036193750584856721802573292880455718194380160820346091481198127548582273170258431217285931212364765985918826907706303818276636784256666067233765455423760820380491248733858211636283430344167993136299045722969606276713283060504284600066525519087566526167755820516463669264241141251971218584045210415009118165844705286105151585909840566224827425662650133174578958409918866499075127091682543649316265747501587067617371445975212103372940349531411521903977824684379334829796347436295130280479659389967444989295271632112467288758638207146167468889985280192280074414924037662922947309470519765549523241245203947142039119737308543579016864084050344048476935295128347753238961373735556274079654706431572581863084036756131463777127091638932707417457945303518990824182771696563444154409307174674715316613114822013149666466327520366885787540404143208308397690272197827297324301443864168780719343751536223915250033440615308614498636961050052106437885903318046165095286231394397755252187404265733250578325488957077124827523871945192448654089551837565088013727205444972359912139980194840412816166700037699348457252909943304529450790530665418759292082853175593019004850441286054744028435632054997005839423474115330319911442999849472338066435081425594926967776946710034163037004529132382570062866085151324874324033304097224111502941189429583454437815630984606244680417795509446718715739305976587846098805924712373430830649296659798251633761044769519801800242757838896223277374809987268944463550133189074881001990964769789694064131189790421472713317451861332990746302805884176555020308155148286882831678684254717136088557636776022544037455282347124430405854320509232648718476730938100447193330121104586907727828963494151215158558426590101023442134414895006495221455240403990194624397336175396944706304686808379077197405724103894478861235653637093087493859770348378432943173033965885371242380477272466043446418633090730774740401345444742314542682068219119119281699437445616226654691118984503720782503590902355329309543129092564952202596283183381147898167379482767604888234450561068922412032918119061281236953446714255808238506145700436675557876057218495000057878228414832380158170879001373368669675771803833753710927020640519458060541634410690223625321517821475762961461337239492228542496717430881006854172698640214568651111642663675126269206077944253330610906705837022965909075071692019867844731151699051615585765619672436862399558031364865101454049660145847618860298391416105642576823290011089392789957756885905705202544622208396166123941487902364804925705884117409127191173579201202563068538258631042293395214058042275914281926295071409290039911398826017005235935560356565380883325815689236891603509559866304414660549358698628336419150797195059471901995732667458432771532787022813880077099855388979590413883754251491176856186900334160333351034501758509951133804636306001238677075945526812787306262388375362066487067352156108508486714030237874295317094808939290403234494117694838538678283018061951565635675487461623596943785000432190360844709000175129916950150771138108788838778733719133501821031703330498547068533639804913691840199726684561139666534791283269118206999903277789655969999634680928538867309499796147879760231771212824041078137923438572780653468190826768542293611043456739424942130155404193493844243956194946882266544402248777430328990880139893599229890135953866318289163736095237640058271597861709998028309113635437043874244365631756835048143158117948573392356619489576431749229081251316395815343069251362457695248505378830219215790300786469385788094550532508737496101294611145686200669153881436236041340798529080578641513802098345141299640708355219732357452648248283544427702979722134879351213325800052084024852545469937556321270349336747981766627059794528885385944668987717172642559553444069833046869624901915662226810207670297485555676926660420115079548540933438579091540739717995423126393224640902972978571966570870162278019655117695103871601645357832407629038760598019527648730065638812117258489425940944699995550696578562231367367289471143573337172655304224617313101494945787705663533400346475697774256476560486329970361147555641292618856376780030937219855650904789500522900301279340218802677693949169070482075522500662202317487527797225796118604162659486141487201188924819465847281313593797928676604329379566620970437334648624667390717894221783729834353723116913627245708221967650924466052094658917240530856850142771566815226807038060764546903994701601696268767450830733927300678489794289120221038559162086253389890655960370769475801264850117765829355486304068522252716529960559630457698529284160369845094956430965411470921548226225433307670913258534637076139850358551192295459552126763900061903132751449697824670682778694572521062688352569370305690565855335247594999561784051234871261370428686449207769333094765661920587300303008835373123156451346128456778160845591958620156356892781708888451561788973741400418414079362708933204621465017132362125192270440070033118550360383263620263476081531417095178493102586281878103515722940281354512245237378209939940139453817954690804488749601845830095991553924749662433029943401416382770654100123079590028729874573419495381565781784701969502187192128954884967656784072921824473952694311459177615036957631273597389296708372298918045888079588039638580460396705411792257409588319918193525688294328481856200106495818975817014471661175732251095682405340785849302939628671979163182453418123011085224437566896403211409713930222869684078802001046003655658942825982132662192830795169044726982911970754067378310052184288850417501478649207142715419362504351185790854324688162074165308203923514209912497803764294669281334275211799658697257489440727291831310054980203457465290815210645580465266748367973097706770783872525658106960741820978664070298788830094407812108131759277076377435380266006827750361242184788056817406597846587297419922782633197731247872411915801084769857617733111807598929563894884260317178573775616922816294981372675285825616550850436321356346613400116970286323994174459272166714552796140842610593312867742974095524188683441727959254570546099021009130973564577301419944349001800286018815737321703976278696303521586663492276538275893036661752636787978422271278197727401349477636990692054990952312241132159306756827936679864885466272050585497272570810580783041550719639020825650041767839094078482837924044363196359797145801086836639658850730682157021100021288260926496046345601385800903799306227639228912347321250285324860613199720881860516598977190249213365732843051273023432165574697107906678395823549203761439971420010735890775969986747864600395867708823531682402308611095973361912971847317149147587109538824450247433402661499606808463414548192674007748138395490861388383987059330392044595049179431829774783409125424491278187244973239424707914870054203579842822242298511628379331609305958969200514322715477292048636528505995320461195019822344052774255651781914271424349421345148156107548679732189659847121808481619896308184916001593312449364524376392195635435745944158421723996128703232902795110976459039998791276051742059712179246987865890344396225975493040907735922039473100795360846115735720396630732287016774645760705269814366378735521912467753954614054517270544150428541745271285362055546718506279165464866607432641163555863238951172307187947856970539298428900488728993712048780700846134223046291257800926513356582037695968636330206812003331118519585209466743788268181200588561997119952873580055649054512700932743670472489200702370145372132979678575761786844282892256408493293338419322952602091242410804734365240279829430242807809865102669780754985365761891767972647375246539984514916018846397995945173164269288867152371381733690126264363164997642839066657931923955022679809790387591720333632873060003871390119840797940191555756569410437208191267450748745714229985904273776846683011773373904251433479776180871538571344771447666610408233813657936821882731672626471485683790549466208227591687631446928019961798308581309538570095780660672871873894562685761522747463977396679294156900300099170737129630571208615734040403548533369553094627436700889121557529041258674399436836440437323646994519091325170950268942774476692294369060554350620368176694208631756978952602552465109780612378061200973109817036998617821963628262346781675745901644274253507795200439847956106419461444248385682923182783028823611363663818630901936848675442944268659798005438801029730813667033717151576997734942733451857409777845464762318068355922860464683980437767493764193230188503245989095717537596812900397524437212377048646597852191432527326291676467877096266649838060968372361850753511090686264230729401829001546945150003987389585423631601351696580661653900403210068102147004952871179675628652180282534793206382378176149557323446531242206353655030981171052020268169790861874243609780055597745196289822136904976062612116417421020127193735088995866930563671023549419445243322152220098406362530443022678146777028307787952442066714907977697062341601473846736499564954966466546239238569179152490287465478872243579046906666754991635713948639192836706703298570312544311993239210778451016715321363221474884487974530165240710831450220748641818523547033418769093274497547368119354134524627211592552261772850979711960413657764538296880358541293327365903043125952162138900990594436792704110435382191411470806236880436873275728494395226168590456071883610653416719983964647864319198822665715829648545504118083526678338704251302072015331260728134707725676921238415830293379280017253256013001482213465018441993600275953051424499033308161471578425499734383013978400308014847252713689156835265834263617820323957316977582627446552824890593528865967247624070543443850329708071488526159921712961212952399717776258734184669344012518775833722918564978839173357619301080942980084754480203356897369698276050052589356474472921411740146610750744747374306420808937631950137554197550721717499476822233245652425998511502510352756608600357437650329178244770165026636986612137724930703511338671286906750740265586731241350661885112991094866096910846314185960943232180670868161396035263351675409540575234602374967624481960782228407076125366274799770644059650849183452215116934199117356291694625316386653785416226327637789912432266877238771521708575453975903445593404565609870644441308345914000279412812067974834316479394167751982215822862371906489908846491023365465816751403484497874135705088849667972595505618107630300382929736222805246597365820309088378244991022541955440328939034724050896547892725577585903288579348567454784882431474721252298558695614334907360239405866278136963567914572521468156797837600905025662948370127698169859744405185279816293536398919173927567168184869248544272699617778752608505341685353340940136742549580877001628475313146153446677510425934756794949938871634537173116735056059660628723274629643022204935897429103274609033977269654025073803874026273644790084809354494822252388143486034528132485971479326893095102808089407997451007158558106147091437292293353851205281217290696260055529189802161664014731909443309012565826032891601645544183730150258172796080630586116082203219822674318497297503886656910164361933696701504516753572346064542793123739844715377758819154110257511568410601483588278444622855389379752662489145970485179110510645977124881672219816326985926908746972781274625000228673771876992070271959827144134068764545158550690196194802526202239250738780361267960365903606100207588112462167920231503806919218412871922698765556185209020472910809878999059832298060684356980393461379065390106487762645522327001667982248202448775287264164084050582552081801316096279887228249361091304079624444425112378933607189893210837276285939215787278329769050021194839952004014682936261198276630356398169051239348688967848276188698096906212451762029101734174045133639500248856161444267681731637197816402854007513324783546802827644708950400408506250231908712078314676474945750922216524928776962210674569058128074890053345461197021686252584483633890527224257089407429249085007078475550469961942613611367291296589530010361634668786702358122117017321689381553305189101191476238389505630789172297304999956686582880392589886994938547705562051433808623100580366425852640515573456223647023269417019650044965761225729656565823002788633732672233338874486473862307791224274776316477445809348993318216142839346270666416127762490713725172219241471719905648900736040292751002403595519598894922177252303731680201024412246852691579640669822703093281908017487867732164978369400226726040691451843473211925526536089951003897703830344764652613506881379417425927982397789037905473544089395337206751922927783308081612477669961265415350442899164598087759360798175887158842451973006183063818073859396844447015552282508221602512661371907623006629066369960898939256644122414469041068874537246572248483758672553569682003245482763043478353507987936587459449873910657646500521813896870161561717427470414476275322093785977890750362861723847339163373678993825415172639920123631614024157981647552401208219488924605767368665252924816491426791366866237086166653490496337409555185288692987164551858508991827806334947907765724992229461471149595975962667405227153224904956139816859177874308268176681689748302008410625994247937222138293973390799442314407570556799387453442688649296244386455006872427830467313137693350902887380717413149500994830010673178236056995778938981977298451156588956216734395693897645007827940839818975140179714533818413493769840213332786920499695281258677393165117402595906562060337228748727667817702524027315577843964809036011662465516783327978994677339113171728606458374049618173192638469151677920398684211406913197711328813705763581945732691549306134912143957980027948140201970177729196995631971423000280727637147590260398096692272946215716970785979946370065937528473198627159551148144933824839014453279757326572832318237199748419832677578200673341720086713957611953515990913281955100698734601636178039150434161826821208781911062676327956681349330459777865578492655355716133025851792613841986243318387798527334571488362397929173693940556015517576667062085399041490557416182786641914608536371643995299158391289869093134152273016244983204721468785957295887186315407309171312941205703074459506111564702455003137674419569276456321548363977478360731880089307358369158840751010034298081395478027343374121796139189037931441835805390581666342607345358377235957885222814835184019016439240867273133640431719553577300192641008267211794618276519482838732496688739512824682020348976444840994889855700771965737345744057001689251067839777253898530960491165544683318214640541111269043199802503919617287235481994753871411690800209567429265342630181820874433706213584221515286720991153456736190653012451311337547055632796606416970950986654958599802166403072944848950668592756810069943955596630324741419663440245031035671653937442629598315113767514858039374459525410836474159699740745137129456093814562573470685234233179800180641689948695338710857757362422247312233291556857092569896400415620129521151433237744221384619013584327798007883981331457821936900246948306515109231146761768611022898537415065103822886841700779988545035031139648726086378762604276340103104054307135340293890259214443543677302849406636849808927644122142797848302822351067719057297003905669792635717491561641648799480171044149128550413781058152899871273453148536578453882800769145159449994033795092273164555116557428362964426950113097187560031904330894620118321634297178261949571751669667945403239177993829220887158643256044319471907994960918553537004006924465536796032680798554248074415698816833821170952688110847253523854702923184075524084520035308354691052442055823901336168819555997871017594594025423385845702634461040798650166056758339656723161385943980879139307643114262076449260923718669207083519379287490890130454394291525339350237395369368133957970710671412045172569573311507526144557875195030522758797404427979602707235670115854590782188725101420591160136755814865255300035676736690881890627303458114837440732224236441456152852440966754398225430437478576988447806610662644109896231012677199421133572220023449655041317770507669296424578786599700384583951653277035086453110834448358201110053703064158275774107107895263659694960585638087626635296010984475478156332871003478477528893284575398735109717507121925856563391066913470081032071521065937877117793338304478438273989978136189332817194004957006174840699178626382926193940140411145859551279065874886096594437322848188574670554061602358023524583189970594933328179049566596995795731836148536355633505857567242957358778761894427775762150227914888325977580360879814657477374670797394358250367477552792131805487114329975153454059061703957907331715164725824614539049666267911748590019058317441294977488972566074004943569940641971614442986940184040436736184432592425856444444176517003812952138247614012044976716050607546265353618775304511412998853719758900285476823436246872000082882220791332977022529741643061091773289295827767000859298398210625806107162487842933910232637362404814977732102757779907531664872294599745211242833995969783145186268593708461026979259565934682271690404759517405783535820087054129646437177161031296493862935756130312727065288572496795173615947273018804957856304169781201008782504950353380576595827061450263821064619542568175511655963057667797532605274305194924639054991560439969642753206258543211246994077742960178450560816296673691049534865048402950654967830242904343595347117574567093667215130981491007922066118373019729041357409218567103937048403708491943252338087647221485045495223172628959184908693151349754876706867748262561414355081073687831283821026843829666746934365794532746671635345282938266868890104074987106450491989644765951472255959099831357000304774608750988591359193534123465593872164623774223306842586953676000114737129924850756193699725922346872137831677133623633878075565207673110839012197723658862249869322096531940402808499733626784955568365472626495149817837061170291974470509624192275740377555044594698249827744621110893879420976777480388391409643545909449348290043952793138786829552579348478375402209102205058297133938930277010591339889817771311226138270102829648020918648351928853223281617374313345094243921439552210414991326288708059481950156653811374909912801715000562027768663375806785296572649512714560669471038616710944578858952797531883639117313518086335976684569337957308764912002352085731384509446568436563191314059573346268760850907311327457140526545601723010264449399200438931934125163106841458780846267203714616645157060656565656513402024661422852018802491141230599297506707574927800371401076180957405064702100725004733750802522300509368907949547695608266138808811409845116598110373674466300517486737760006777440667549948556513519502183491003150357778537398431443318323906204880648461448708575665073334048481382369894892554317933151581388685230697581462484428193168396765442577830311703131879811565142584309573138648800397010669392255138281472622847766130992655902641925336342485746985581589747043616008927602800763710453497627549974638602579091407899885559668032077799296793871388029341571200238157702203166357786846263360712617549125789250015203088046343966626400578915231284620524244422870506125766004856052917515599486671995597449020491476869361442363281339504098165162896508844002178848269261353014396694682119869668149154396261804879357791022477873432670847536765701642780992201468123625276192504383107817211188432457770607851921521242782783267518839248157651717181680416327591812653512987905350303456049042726159919837118202478466128746003086516601354056170107427334583133182362913225239006122907659369888232770504960879157557150107195071446141413455888516197434591547977378502660105036839069232582893367546163357681720211802516977351558358014304254922435286973746284621442862910377289780869459219034565595984284262646422910746871794714788845039270925072936989889165109509371085875450113724796349034172090905704877615998462682205590687900220356014462416074018131943569502148418411543009284533048717739030139507261546583003232492376596217196911814781916595709146953559248191408007559709981488657338382584861141221680489311038574313220185173630489013190314936537473878706019707987874032686219967351147900251608053469248140900504531172272610259594442075590502718570933300048874740697324638676639777865223277831887480646661522919765741716679806420556920588874519164976329789152118019496467011731528436636071015039555508212818171838057411156224643299191751379587312088587664259331078845924955392888812725281090949806777147815432735810375347042313138887773917477227353359471462399833668616584670457364194611058187642510517321843258880390084304324933710527425226972236295118296054044608247538270696924868650728561575581045868593578634538118950906976386818036146585387232898127182351572665606234688822826593763970091066347673902370922773325105332328808706979956165091500042751199212701948879651446659909571196523364296307164188923672232751862744707273453402021968469056648067616701228579968664165263197330314765870576168857995112328652306579398111106577762126544599484425970290266279246913070986579853954099919768402695750095375885147737203735671690795886428918576432307051077703092138638418701904096264325842175010571144164091035964590533426216533657266035059085479266299530588647406921371914317658450742708468991943039208942493216064739544511438502952086093004120476185628699873168642922957169566823936941477540342976041153173647801804367269949417909018240101057727850752429054446250167752409203959362126245520268548468529783939628402828785431462954555252399983039872481983463504938953002443626951681092779725962082673488302856953652163905662351026763410253973052808796370926283112923840895628325029436727207580000193468389465085419497902671440721939334917654426051660082028452782157175721439575904411997637136475318614231567308372391474225967051423103225063202930758548249514134435318708916817456389559574822163219100075888002756924887847647408100881587809553341341195052866047973153377494862350320699005748964315812591437033229295497684005501637678870621158280342056524361756168898123982267624525560508650111791110363847622343872581031318494639812421088673159249274878099104552950844866526660375107479162425264246015705333368294373347481500035263704432318955476229614022679796344539538349410882671379479517619987227738246141453238597866084730065031718608734967287631701129086028472349067590471163064268161115490434255124839619538563979249506868995412272525257609926142071037234735765154981842676656252841080644004780832286868090902357406777834873806588849896081270322846149343535948616958446465616258622929482506344240395686684782809806597773463923109796111213829877605453729811749091601240031356138386124809289994724663478426850994482179296689901671715727147137418820524966056811886460777753607183215172310975885292934316902204628958166613252722444059303071814999980066207161427969096696060043673695561841324909066992551222406340300791296244107387090536647245138313619700780125552372364870063477981280025779938497059044946962000241590796888626226726778243532184044023262029075129101437137560339981480783491336255329890900288955222754075611780820889630878138155686474537634308251986926081006751529487670173438726454625599397415896955506295282780574489407117872216164697715444637386844257941294726778886086424192664075764770002868797120152416179796129810697326984306483289942028147065645679587934745085106658595558200969734516783132734398471582399783154786443152171120042974760434190109684808879313137900847928908373816380389157237021896290253274578846041039211691553874635465901310882332107679864792285676525642128199162532516353046419490749196304346025258643085209580539181856627141518238167139574340984954924390616595286701037579365875488623557429656471322614135342880191109527766995415913995886915328040882450856483543497565791059562031993759596746601244362453689834805880536925408434841324786780704772608472940727324750304399214107248329871804307850863375005578329045420169592315895322417860460890513505115438601345410028087373516949294479668424412243362647159903335197911369498390958754980855120202106590656619329167944937150136695093290904438591577810892547835722669388331687946871316594116250367136291742609637225110024564044379805418896229613147458216986163340259145047160547600911070297189099031206643289201165856199623819328832775575893740663305382274335306116066927294756483453907549945290931074243630933106498613382925408468729658626645291171623596120763721738912570728012127279010264117359874674206775289108880896558697355647614721609786101728056529765865704718540620861114933244453884980663921712182866349070013698302479432039190819789867014926425223395630518278158462650371010718433852960462192156402041584611085634567703052753514819279542974560568564328415872939312344722603591162118231143076066523500705709848057659666820738283954035770198587638237902756512562842433880904444618645831830428590309954082106722579268088838226521993585520087695836639579647097968047877370300125677383681823615969702557221967038174636796072164064228808571670063204470469648793179191164197293193916262796368757719379032020992501739079072913805757790417850986740926195407557335439296044675803841311401472648666560550129522485870251490330515197391375048131390634339193309411613316031989955763661420679146430123728625664521517278538902278446954762873139649918677229949486537891463661196914469868615534099062719579607990364566060280207729132954888430579180772358317326166485956300525112426667770208786287694389567411734038265882575905686755502012286380481572867950035972452300932764065857301501782420548596763309057705078093074971457670044547866661758326487656376163262233396191843206909728568293327400183588170536583211783637552003144363880390001149277348546011401106120641271683604627261147649657578437521549640867785302760066164343077839212570269775906034522731109593739370050007168377968926780173026489431937355738260952183274705718942854182041770871495989212368256240147163375303058860939691326085831024184704731065497644263658284074235338528513762019708300679765013078807736741959408154608213456491438729616848077039437782415122412839536119729541381710211238581505285497892552781518772442551406731105467968799974314324219367042813490427322066695525440420570038793465658307388703205545448593993480114671618186866278308047764454338242909920135513651280462238310674315657935592216612692401225634388671025057235106342167685116082282871456191494228028649512833283149868428178529536775327037486605416774896755725055304681103051022100150187522408424095513591910767637918739483163995125225700343706166912014128171412149370907429159748428156060038660097673377473458962629125680426188860156520153204620434384582281132536376204215025902279529034584225317077815214297341478061071250655241692431918867736357631934590253145767228505845676784707663462951750953029541000070619162829894145640034865413458041662308273907712426366748234813366121152822292451439496864259317907604511538995458226212516263288970896682518659350191692059479561413818166075621001479400060575672598682283264646505008710058580921941438464275510546645250420967130410802418073495301660239497373053873366044665177844119725461010582481825651816973658962006545669719087124204107421132351184856784854678885266654215226137565348907731445171375304729554445542541950517823564200333896705169770335693963906361789792578676496833170778633814577956105213402283631786598774793573436881311843683396776119372298329241306283942634629596639742713103993580379347763389742758313331100661743175807074112530672285221471915269744290640001144798625559700682594415656365455341269994469526208273886877193059521764067081094100859363152480470969661381039328330770184460390142452067377428734273656348482891671064986334498071323961821633238191147054687246578323744484937889476675432844127783645650458497886581758275171951350298492722963140028650392912242543341235528203297620891950152145178237390838875669027020434119738643588401157177101716788554503425288580549054633863901555550040565100491608505490640881917947676514861334207012140361971404893578057384212204674209470178984645990583005823096767977739464035838126755418605049655871385521105797189407463790044073023406974203841424319282874478173860592052849002868234536298255798252453558165684410076907617289259494671908751743367493254329219883183555531447758557665351681385397887681431437949069224958854096312258441985570149849656032440456167342446834969441939736326557544501387057142218962590553486431046973073550438250946019358649111372699900058201997162142738838962080134968360655182360709048480970688188000188456384000658476995934194662811561182195370211770492831462624168175058854194463374216055970627013261070352489609729191665969377267507555539856827828738048425750054493155613471441817095279580133116799270902150562017192307622161087424703109399489503646745103072135476125400395188407149287872715213911679795791411158173944787439210795054283375195978275429724954947952195199459834319864018730212460403725726405427104821753013684151439728516712922908862033098869855795555866486200289655292492745861373007792700166794577941057858011504400788716702821760819650568010627025416982160875867450852050447759883144557701752230753588144435095728623122909555008421289126711486963516030948188993272965998576231414521582972511814117502833890535942379602634527201839144561450585413208584944188763468628397973152211049591300643988054208104446448113522969667287688794133700910183570319968175748586176200783679866854751498331548546279527915447526261187751092016842996150564266496338174950070426031362115177283361421829310191803279541232013679843209953579989194246202296828784098604518615577486125817816468164759953836531220566277040006806492449904912276441059132507964646002096195707772910602889553406513964570154173982141928883444654923864945439935396881799606297735918952834092737049163857431111631022484148002840960836401623949610997804975754773738144649402705212262758646470371607867168143039552047448601565957916467369097754617981937483179816694289737370966583615635453389344791320494731086744550752519799660016967469407441472661347143048745181693347444599795007846545128438225005461398407879847332122213661194388886531778232751045514617423570156272759167418812116435969639778861425671506175121451318074763176437471242136008644241823850158564335352080237231682068280048382324669401633861626201676821403495496163331146771804653561075017008890117542303943622013316429390544286681103095214688837702101676202254523809666765371703343681050399043054543621580878746244286218705738773878013717183219119749172170795513373435461480054464749998396310141727993508898978884907618590336077854738091410045876872950762007373088012028384142892313778756838778161928023240414806168650945178990845699845101734715393642542193458110027731493455739369261322153003256151063521593656459762527678543890517515472385469363830831194111480480813001357488127320709871651630065815421944130461073791013652155107835061408246364074926371195370632939021751237139802139772095290575707044100279721322995372933545351216484665150790646307889259198678022692227141790617167457092639398382927626771760725446745418422574908469358473791732845751009345450006383194347453999524357138693702902241967948839881081645814051963315304659127812101366702439208887881901950666406857248149996278455363569268604165705258361665888218283607474132011537172944885250271521409128263851865805262342210139887901934410061193917874116307011313181140319780183113131319456502413921796247789919747325542821301572434613232629708954722479414695184518058149288593790025959896262629990964636955508335534923429628945028519738420729749932917952766304355061032469103917805174558190017474375505203387471208043377495597612931305758012115763653747150327138162584061832323902793229230346094994463402574582820019904301875248502088659084311881327060345408283575820425081242242683867353477104290371934949406442651686322755963096888623467714510523775779716444283157643794050114500833378613031624174741777408762922309390761774291418161697723034152633383383487669270000779157859307393489170578039987758677345430671668512330798275874569773721290649633425542240374987516228659157978424876330690517882826642532013490062655191911423252219952710669968114095043759105294883189175922290508525255154804893494952340193818495109789992555015781525482948450460903307759152930407860279361577181712568649717997340346293272967518515500780836754438489584418369360007717761453717871234012687144965582282724018252221436801390132716720768752828428812163524463002123522055675088068870012562362315574320590186878394932844230984147317970129386242334657221164993014988347055313469901937973417007005558180242850909408066617533476842282953885465162171052859441917414517931569971839873560013583147025747266758737904276281872005322838634061736034034553112367959645447384492444500848327163117007228169571396229982285871805679263225632267895146578394174922992479454298879957406634241074662988396444767674666409284025969989203620771089309749565151274429730566764757755698392533374560119168472943082654948955796265028077149840590024186511687408980204378687532584667074922629820281814779520614645787774486143255552075587366187096736073928772861385437007722580055604449098521248681407321082132201012754212552364648470367640153006794841230132899020972847375804253561037258489360065431511791460590410733036201111077565723209081820975966284457852429862446531458244264231501066980433897274579554180156827595338989054402239023572428376195029200239892762545331107963195674223542753237916426124861479565646652013134365765474233880140789091443804857250039028686559478728277124204896426994135087015205837976524722875590920130386786515096231077111035602894360495235664691417928837403566716229430671899139441745769557283385994014347908099628967632652903855734596857427332924686283763259121931906269791837878779236811834190233432996567070979593166860897395047437218284308775206606970127626892148121887554651456912614112134401818358796920111314685264709623345832674202937419309717783872877384154939184073205903076263671647775340643552328260112659150626394124745653638538194725486980129840894387982824842059182028750051988901376031122915789517307789460369427658731680786247426507533320476246935085993443600477004118519708317275640773232145939396496750083831635081042789808665837964804661951082325889814217434795615184638613102455988563001707678760184549801864836690092992054071049962678278315416046339858163834089361531546019947707353697036909002161639046297906179450054742466369456635114431893514966838027204368400077078028901108009403431099372885615900011884652121464117475510670306429171879334682722236403306473321828916119352555672759828922513465151051447817339773239395872390341274116210312062638404840558610475321401757100219972090244341836354531676038584454951057902240199837890304591061000981271513209621881375472673926587621985044403330140329354385190094220618490758420390228253531489008666297880205644308639059098468068823258287392865432769219122803445761206112678163083393346801677015691720479207898725030586324766759805612688262560449780826340339879346635280884323963737184591159210141452273229364839264024892508689523301689863214106005478244493732019734041544948497110035654346204304733443017881932784456505981390408822204686121955510304346715563045165742191011743643054874666607431338102030620237749387296182553173667160984209129568442925363885543195700520811533508654271459521327149173586263839498858875052078653317728990685933412616018734167740046800307943749078473162586784389753039420714256524181800295718022359553839594051964648587153292015271001116442575430417714405883839523272037103149989463341279188459689927787556931399833435107881865319050919737323899791377064452483261150533691153797189370157790190257241614299193262599116794597208905738827381655845014161765174290350338156755999114678899273025693558529578314080129192605656816874706641671505563957056331904580240708884259334066510099317605521859373387266674450415376515104043529452913682702681205857934995515685321446243525216470014764268981547335173971595847554446980539110778982761134628899031187173339853963942479514953824653802239795143837605711721569028237451560959959795292856712740992598914174014123484646455826883720870023871611124467684330219428752179296013269678668456537316732445339697615404671916458915863672176464086476090029032126538389756032387188150326472839804584662836064630562721527965902399720976631062863128674981191151018240474549325144654859209326479660089223318030449442049155970776872593796999763226671128309095779658580856791299163706194417623282593309957633260279956775791332900922957242328457611259332826492387772255733921425487332845854849570105286620292642107214622630070624653559337719021029986101779590825805760549861014600587000811438742886856220281490267160235052436597246787903168714167289658118429599066358518067704496002674967035663228755159373127474786487456680308653256846537773381209302442730407288307246103476594044302054657300586068088848691488751900309328529135172221368004006892089507219789815224417420682597315150558232922596132038961321355551744568306602640664657076676991652650751482869936898589656665756942472206517808661179743890091328115915763816013244172501420950968098145489276799731138167631465424268198732980268248011569128955403755595088235627982432610727910977524448466481231119333015924401275273268326299708091972304826511906013706782351573438901459656434561535170148418304039783430151388432754051315282178726927576296195639644480085210777905315796836279996030216742396605865113603026759885719805146195600237128731526999252230640307982587538553743204523617788685909385194647494786392522489821620255458507210334251957582760200177046146835458830820412405660464409328703201947692217095487732745372706544804490311423857717127416255346185337840963235892329187892016671065552033796264767251420317677785607902184957764337588775276088938630790765218395694147851518416259863391312306162913862856190449041346049383273732147614524849203787731393975230906408445427733125720144077427343351907224277956695331396905588071076901340602871139821097415281961435515656675736686066121720354955440517186088391849764482040288563462259145771094052386086806996389083784969847509339221309630134696184209370406158908195853889235642535065292670429574262649348344281035841371940138094139801269320193156596656721954181610588638627601932067582902783487825924101243215174708941627207156338068693277561282978391314738563983775155725550432073030967919862589272206186169997358088797789621331598094053570552876149605703615468494472433724961349665734908879111301907785375789252378727209476712987950422084345877002890313148145816591624876579476891053075308572236073671071818331233905019751607002778675474694807386996679643045238769760455061468165444390419424663762124291099443075785391330011752214482088485639025596236542608346183354337937971893679580766587089126303152606258662815361067522580226422072447989454367977511529566641826518945230809005738923481896898755329214066075912784057505280540038725937362857597757640012558542605336665048935214746992179472039484705821065820640309169831968603856195515603643861296137362779625079957146963031164368842519771801258051716369034745197390084640671739229795363039075295245240760652357030809484549353935039273145831017679340579352318680727589641079105849541941050774251096013940623574744247649965037184933572567418420271628917355578242713664851875392073642506747379785328150399016681038828407237983293990129527062577419608024858335276515820214992450567245089770196429422090578695739219840051533875327629216817931032031003643321385235603782628861219609911095472404735414935245641249550994913300469267979528420004711153025820882002511572631119218391053756922312253810005466320308579044080553211420349908410127161315126879504864323670315714056202606119775865810537993175487995123902971154823732343920826438789883148067965824678490696892025696618727189744115243771252273154874695946772995043248259848752685545472408833638605955749081529007696063250407735095315780242923938708691883648610569844239656515156772546331516033684699261167058755498925348968452634484357300570540442644917943722306714538444625477164634685955036835243348337346502503913870035927136608668475565032935750266498952241976228943779253846391438154192732499613684256202307648605907046901135994488640696630902052258491021243984677342411282224133604729263136692360724827288369365041110878445700014405043292026876882683816106033220345581761023101901198683797313535748491565541369170982447855465325135596740960469606516353969539354493395527780155986592450977597110874039736302445827998327431736264666443198514711176792883739180601141295022913649409016749238388596725139266455163310068209631639343722960298681588907366844235669013554146915600311882498843433628297309439825824603118132888043528135429753953950127115372058115321425611144701599503372420917688888493166622010217699570398165112410013038341315553344532950605764778552701894739471397868342734916089058797156499201982034796476639063742448816642699714744202156920919528753817724169821805993378239662292853557960921586512747092720708144456195825141605945530227372685295999164247968138704800824304243611194934507700229657911852067848402781408413052715373690709110653577536291543504735471914166576880001478175766916993165188058524520893719583932182887969432835966649423294744665354533236955364149657932323299237402511058541952866015348868175431762751920242856095055747945587408284397124579405173947620590609550308477309959836346698802129330150753763461476458349104858612937980598151908424332905461861082379750433012635924368598120859044212926670388368591259048127473417863778122407883212414126915895273287762368268355483461514786307731580011945122369833448740289516609632858678565907240693457809352179439908944704078597457990375487751197571925846061342246524682657313146856817552330032081359811432694316767239820851699653737489779858070923578909292924198493078072121211625230081920513555671512591638860697349143652708981998880149952108125763883697017782268877033389213877156991500774837470722790569134922468977313039379512466815414516745431098476582801046664868069725964866774687021249427825173989356510320137448474547445214627882717024596886721245573060945976697122557751208137533788907825174498322579559318803451166862749636859591648616355777082555179240255620642715950663091773170425955622543894370862703751089994588260427198209761676485199947243064587069429949053550223182946216383996379044823394158430482809330356110893308551487197491308799896967214806383671232879283849538754644538013851474384303273681475692569284880466417773294773576826096508092916582604374044619173982050480438482879440259208508543878263317888978777037636901926911374732060637584217420808768633659984469737949768344724124810021657454815269200646263757795755422704876642723974513407221538819130775001517087264668257291575789535005522333413788310213459691106650468914127055791753069539945527048347718100593342245581056103331136358747204971216210870155345177165839093324554768369259130644457679049427329100446623441303013693318572167356748856968262567990352028423377008877709834479318473193484490575934588178847736400568250774713807534370394783730375069540006988405020706537341758447123610658633379080679469779643104756398309883850188380288333323356771370802964210988334377976050524661212311148042381157811659679288544832959736068820646903748770186555393689700567986435377497195865750776182054239835959627777211157053252826822590576900932824058993868760933711923581362849821405824285482754197125167903209726056777006611748029594897357112394441088491327375914836284678721256673350944699555695036763184874475115157647708208573996150774989640215713302037182397446551678743151236711205388815548606608771769783193399022552182581095690239090193853615838853073443369999672383915204136914277913546113901636831035595722900988510351381175285456067494279503854559712342591800458569249470161891896342484637127892869106404084797979731983336347266342485729985962436736648883530633271215026592569926163367981952189854688109545154902059350260043999473164181538686871962116118676033278179215156594572697985594858746364692741217199606065134127551760647546942749615311034393744867470392082782444151758183715045715577655654329640077852647943129297519600812779574320121698069031463526714620532594208849770675902898585428247567122132090384653892075317716686828564317240801515549805508339908670126360856931951236192417783957934909895692144127349023044431952005177722480320734787380354390065085735371419343770846505712902387011046702491266292122693241537853401591491338105382637264031712378412876339577395093146160558718437678219612837203189148167444377198559581960448265507369445994508436892545360629111305101249732747081227389369050204641748977659655641087538970730945147290911291871015966144219130268980158085518512223831447326961301894450812002128142479086075374991929326328039265177120870756580950557176520461826551451388576178182380581958687365784370155663832045165646522710281040894152380451592490575820039850474291307065666369063770181347023148836565323204624143656074117572868486682559554224017779281989558777157430455287783285539410915310003524106660396998321219499799930034794052710482783975402605928915761189902832493216569946302860303380568807060835445960288760164298538911291327443151040427548773840337198673965873552329739240345222238972608055809073897373109230059227969829876488196663019275598148260853975948877463013496280188642354868970754408248942608441108007838903637912989641703568268962087336730714570026001092795820702647101674586242660588389191787036406598534082803256344449150994174532122128754512143724648620548906976097899246248695251488350489664561375164400602485175669841741483956259761406058828219412558018933041118776453936715354446866510434011974316211165202529671865781813418210553615039475221621872505324656274453966780708002038644244729575294748757533149648243079486015194464896980395372413114736710944073775468621548930346459987348592621830205580640131547306772923907072847484183506107599287605148104267060277136531812050496941283424144717487439978830183476965637708423115493964102386727192603651343567582156084627263009436957272346079915308321247922853190232683374087352225591477750962273976223779146808483818628947326638300647183428755164779312493988753267980576138100528179112216325693644862015990958408055032350195573690823029194922364879870627892240451744308603061535994622556733553002540797891955014261971253952162302873678863268450159168960660948877941994894950907461095974394096238002654660336825100353314369587709668410177482700963553695341082329236784087014697847803440486945551485735702234583508418074376775630387626899826508219099228346280163089841144874029693914971269443379890290826173258166719093939244040503058681594704732928109959425789550008626040051943036237027516669505665876319781088909769546231882118452434397887971047233418307121326211437095108404009808956220564755383553935999392248803494993170585946146895195801474260995409372370455342807408105734626996939335607693589988618362071720595157840415499902059116386112317416480110067554362814103016830704779911101175990072382528941351225235280261320985607926735040774829679032783613873728054524963869895596551826782213763282147964796211786739764574229829204809636519174888788140799075730038734224515414807159025628854527148311496255230508878889679318694251840044724125657093907911023634413598309506175398501581151709560540591804813663285947321011359946304634113259932528444575699536649949747903768788830518979583655972150862592875884493847310406717887710972088229269761473577176405940301995474564225370005335198762901045287639643525507597897549927175190684516681392570386757210955994444783751358223820295226197752243810617032478876145539547569329120175345407419320893249734714223667539280860711555039709160228224527579490763842230867569024647072963363618304197196267501642090450070495280144090927391019098727044992457816848968217952937450942354052030670656222789470491858564296307577552476225740964702083364489891403501681216545824403705779687664228156699568764057559832447601996397695558603804840008324519552883979460543035355492709926640015521169572588110632953621624862276449995862359189308720400619126154255086871333542497829916546746618435283473089506335553517768374306349808332565284502930646120242451823692469899035844927667448822051378728387748853602930627633011506770539429009859223166175069018580100294336797750108382424252400257575020963310486558915803902930023010365495676982901741422049098539872971192505558839024171796909620091514135908678814112333417990248421932944804312195236815433685245579163518655664695880282407179161545147813360064174461572021660871989565940725719390038638978541240475749068895103196692176920650829385311045531066070280063892740539097891029130831163256084594580478379676735319029316486272361784977516458630339146202657493508717363461025559201855886484172240291225915643042594873477849571816030587544260159813111098779355224333815542346036669796244729644381483680782545778183835424382202894992115234046719371008859152300412567218420983423400669880436468650998610157473294776330172344277248321674969532103212163411553792943640223419804960821678118638409410040589681539146664351422225678698320308672896989180795556795548186923236890665141321796784845138451468415617822035355338895554416543559322189586413043228051277158653390083767395430915367865706149508784506799955429889046467905828114046015889580856573109021062908166491975130689549414135915345459939454211058101546039314232067226252855182206318698177016838905056352539490779742067150241807461999267347454127792266142107124606133450061919662818226520214475119077427063164915704383288335784619013707824111958900793719599902265952693018497613296039678721020276007992919188597094008054753772639396711958785621230190331178416771182052090228223607031263063124296985686080661893490391477168493368571064730615522971878205852129051106609301070411613453463835791930085393430813571474958749888620248831242737566278491652164700824157995548955738668326276575956162791041584702778687561676617638499258974614184716751243785558232408481506855990522626025630650721192730996597631497990047979841574730762832490838050712317102850913343133422041068842306628260988839029427450162927967354017049611234556071981614042467649931839030168196219982636903646328595023454467233420031824459390563321504458006590617676408572171575174426193855051433299457748075814255702138014814633992072969533109066236007812577759357372599471435144289659668367485097458203757742794245664022865875618992978469659317237593823428694352471102932588542021195884887237131783820384426704030161036863462254503288255436638353984566487878083696225613837971750868870084317123948054368066787137708870305551714996838377941789764477051090835669150628471903680281192252230083031623454821619266280991637016093861383770119828368889809427041574109291673700784791996067259424427734236033552299965304946433457227717245025874755583505784864733793068698437173890121489470862219784422499195689381452107971924473770450368319346449153281011291967721581679954155316016299225716794351966049883236440512821875112143089555283016203242160655084549398327396356904538784529589294451181865221749722893973943033296422838554150291214949126590272818612474206390487290774390281412618383417581143228568447603137039761888833789447568370319698815776151542330988565390213683030699288642184023036517365981084737604751061122336904367766712185660089718758332127183839848869818646749170084175703497986504984497246271874820488036005615995293190775242820153890108573484264918464283249336919834369652438152235375370949089234783202163619894842285307800411670766319073979773241743051578569572980312000606970743841297441463002565816528335808843927249167713397728475469344558361637028808221639372843802190438257917169150001490368073231576018191826936109707983634113837047533587550328088379332369491528377364226136519336251287946710463490742861208678692409872310306916874005861857547074633917984481948300575162940467549800725781994471379162190126127820740551444145170949976389396089123928411779007153932662633983883450310592141278550141486193744641994831012175724919700768575739143634932355745249411575216024303904839734035698637040040139589605121907669089036477239905292081090937890921646873829892063438573797187000741892674634604072432715047076767371706036565744932243377697076108604789218623079462735288089307435264115740320025512945145409108982886672669531856031400965586009236106010565182089797209092189756048365835411027548565852969617478465634928656790276493691222507735527127640439362545130327537484630223632049217244569628382703870564167180943025762563363643769497096592669155494465395676573376888919620827856450387456174411239548099783783076009541556731245252343501587281106318954767815360261237920885623775954743148634318280150252641141315206830128105681639356558615537080823736175290104022671322451591031772656689268547205516688590025037036234718426518844501398951372744927829963246179287212069851099465287706930219742197293881482590218677407965956256858837970172981759188264445030833587439596012768143564255625597292829318812499327514856485396417035304834777344018967342321146720511055872718688200556739380844359991946812857459795658246690762444884719679945528221661759023555803994627313510843718741875030161730886847064254307797572320442106880522211050339707468553907144400657216711414871920659305244792115362099376612815960717684407459155997922586623819649257811629274029038411679449339374498070150785629012429563970646669835203449939973507864097553659651537325813945097938899897585092673032206115426765510563682283285165969469521023310341799445742227245053547921576312565864796930870064668707005183487255685313943215353940710369656560660080473513573079065603893590734750146444068553203325355994976033323266163302067366794585676866392963204875219150935715446758970590237091632076846338379544330291664019468274044054476314430039056194618609055527312468640946425702701051281151333860401090065377262754525632876686965676684585107998679541272252403080151204860145664792225522574832845642878299482661972485907510623357757621476261027906189240895728157088836178829499279282626848088917637453746027107935926245671772208383758535183718745528647108303915711177285395745587914148960280194015876008975721836262149784644069085802870058186393995631098058639284295697835628580235500889950810591290279287903526074550371032532069318154111479264841333072606750891631125646328086302673307962734195481358981353181335527116114318412871699467356796770838432541925024833665874725762003959503872612437984789139961801957581870278678233787547849324966245084078698543892274100517539783421026820798994393053539975423008961326583360953548300056765357381745449602303117024695593567904737367936075401937198788864123556907231950518721588029554517408459375288652288403321992675329256639935659917485572324167706608521830770799097459223909045442624375724849559009395943872433082112465110532018632803164781460789400359703386871832050504736469331966797363782945750191763307270733521935204794336809162912988259070184041999268677938565202422344441460762451255375646497068404375627804905799695014170397410090142622739814697943861804821320143260751714817984754727102245629877878656876713464260209431724057292362265010523173230775521432809238628850407991726936926173998018508475104444112945051359013081964948440672799032609016845180084213220037622749410677300679869872233691911795250903610404944234044120721345696943698371643898209399565126360748013945332143892548298216073178909820276363380676472545335842119763117077477825721921261376626054576860736745992593743239081633989603784605753989124023490015525446319645809177816976585449221430846299509433129878672048706263694830468221432682268767977394310647844615814428449332130351048326721394576674266003022839072795381581014796525419571091089529345719511371672563704750091304778959629304255436244260015756707216109345443334631431872347397157241084734931607111298478421250318322886818385992755312110846126964182156424901132243631544735278609870266144665681146059550710832777299327125176662236693358047067679144279528113791534422729832020113610401935057081830360537650023979575235127555930126659499322297941618622597812204919451243306872259110112030021378307665395872050657749279297147595557214748959139378530226791147562920246844481094097349578725285877449935515110152525770234897696106099741564440274696295220653643904531152675087621919197201221674797546881473600701409830461778948142204766044689656168612593445291413852892213984942721799100994202515262292546308361624012974221534708118722257108595006237354628571488127710194221723351418805826593572785487718067452805732583885933861492936980063789383695720208418878848589369720455050439142224533628095185943402351829936313709885079123058712707647000155144493152213533661752845462225241949605186057179643945870595090835013210122453799691212143345502928553691717985955013915713483696504675057665815617230561459848710277548007144164479956339961177246909116969712979594538374355386626115815418997275099857472409243794135794734152113125489669433195182169960849888500516175114782905990717442067234040701017480277490121533514751816043671688695103288536425357639689596623499209468366680891572339460226234439959073762239806895207059494799457334480271632619336411273854351514344273958376766434391747039008832372150311062028451883239855172734113205628333211762282714979928508138177312243329264826459949566454451227638786259348751278007757525021323675062118680281508241131741454647084236463393362341622005422683583028350862316148863004513324164869545132315495670202936791312630717518107455873877631783395570989410128028946042232609545262653467999655351083389305098960990791110312601348543987401661975694345355824538911081177904921372916237104063793094704771403331772752446815164066430962529433880434376141338772357988107169275980495176731072582447602182582584106751974984660411787766858890029676950714456438703063455656529632722377422587098550394458317523138423493272124901338422912698637921151976419314801747148992917852196130367423856670422223483167565023299911021207291669854611239146697348519912232612362016932641440479128077547897387739786637770015177950071848633020376444408157411979129581077165186594422063412363951456210881004403322513578896817064214592842225817101090474218960341944427593134281350172400223930039758485291874321405119342721909737936885098955927769397845129676254038301507462860664105016161786085171526912281165643320159189296974573276915896746386260960474070513392654819400129593621806500924388961582945853314990945531117268200452483008176114649905921915239520185358344697423881371756281428057657563763969426342170291774033516958213540124886321582939006722571349759372219768971399464920428021833737266552291673799872217346620309805634869853630418492525400679839479165114730870315591162612507403298691277952513212683846628936380420354072561634127053552314577603799079538026213273659191362652553662852001690647205118421996431107525252255770314189495404107129181698854071288511955273775891585324322576120859192272906069853658666582099392224214737020290266405848693669633780623964798404179348015865366749189086673831306664307853170400736586392108282960000587377581272022870834569095393872867176405732084714743958846575803852644146596683670173924585470583711696149913808292336960064869391140098704772872264890271265121467058672124133389757128156812376123460990831367717450081249373749191172396937227365947025594459206869573163385959037322494817502990048793596039590883067976795755512896883774405002187569723269235790630955226524538112687723194048817578248642571545732661211145223576700447263456481929136961328904692649353668358037402586296534162949610399750707192395425046637578145895567740166116425853018571145297614317058672975986945887068058729895868024499391044191706402716253878197681185112949185650469272304599230051481423407570208713991640422346034576597587329743563534658757481547623583721386750340914407383528492317779585953759577935804906456659193207011211275158989711626278403628508675941753816695878143866872681294680150718943078891834435373137678143730659988541801330584328933945711667347721717056975368110928027478097769113108851122288394239470630423460244019672897690113064776736841080492020747181473400428395629508781309263018232261408541387895496492791122085211888471805754982365562432372286985408161096343408704096237602544767835970009484580324060890996678098757724009384140127320016988310317233910782807380963969518770536362963963035840520562830065791390384623601660973705051872122804743762953810833444787617557178364990906537298242381076625244592159312179671385623224897764151177539832666213172112243697413310316245585039350789837786043294559995623558470202070391890025566099670768493567611704110355855762066491754128750662798317187817283573809661092425566142309109768869742015260808177174873282171953814330333910839935102100376322729093461729292905094604509542648899063302791692191468765411826968973911256494417727181396556198673408536546689255406538820632409982646081659138273784544801584746836309925330873044129350620289585259305592554378712227738084936155127938565508269450888093765604750675911104155949672815373628617883330444770112938898837497318186174745757226337203272996206894512914837751931326402712717109894282917218976301000638237098143823742013289301594481169581287413234613236550661575951197419523111383854866353623357982363661998875895392564536449033827584737527469561732736990988865284162871276994845560918393971078848921510941846742759406891620755067055996998582590775349832498268637008141460678527865330819046462757981877658316718133965816039630276773926384191478929803615312715477110498064948488472469130746247806276055850517601601452217455266984209990949176298237791584253045935519953484142193460477704301028686285890280602115212011652754516722470177697198984258199818686077060217016539380045833079166456572477038402286697053202050405488349716571677662680132611810549666195014902000677487311478332606964758286291125443032329839091664700333356539817025602343665795702846875232210515089220608016956178801498090904979100778811409907518517880516588446156513855798529653608993198259384270816675377830838101832180148216815044246104237327153801425443219528484103919699330831707996695155832146443595275156826802308545758557831247398412180572345132369750576987278381556203953329652197658938717270581438553407851909876607682927248819944338460295369295104446916838851496209122383375466618030080448725448418883168702178625542859978396630573629889333264175707151002688862324673028621449199129492133636365411420672219608686718792266944815997222885065879585870443443884492614271503258001924733818444357838704867345278122897669183533570664499201803515712809618996657253616398353433457577155226675213015496629687540247966835938257609954488379743947943626249780753871603479785290552376939369542700428668681479703129331709437050354488502676635615547251285367250074581653299254526403062638191722666231517859613697288254857368729817633759523381930825253620320670297462563056795110968329274424946720270855007601819641402441202541498177790226353972408887720177350603354402264794136214169327835533729235989812977312803588238470091281446245276778935187661926732051676295951946158756224191983879207680411916283124069242018506150888586307256469355432672311053810650420746444705194534252370306898944510572706274661627732559789483812088997081301007939190478912897539353248748913419257778542897467698631532116292489312098483698731846942327261433496373857849425356942797779817757269677039609872508149453747017111372404307477759782910508551954455941091454769371067354412722271328765012076860174956790832542455955205722136032172192779056104789990869671839283821436985926772693862871489637986395630502534756985701603665571964957672476304420611981942518020512642022889681824692333925472037153608761774077106834497446613721370807485023597530163178234709196394509068461104144529482008811467048076279008590306405373415831283208840735344688339319749904531243021321618898608666345624330404267814227850062978998229840576243731043173197484789489276428613225795020450408387038618369530354940144245959349757196667367074386495651359794849877458872485508026847202732723362951295707517399149492770755633124159641939200265617305084310034814746306012254065099239945065997900869339942050887433657630883212636309169696194518610006644380323087036819259519102314977119160589738245391029708856479196060005785839015802069359956597435595494534582605354397628522897296502467131464174916204222776963038869143052953303061475605374079615950967200596634518200600183183817744253841151424414159181526703361424279115996955141936743070968460285277305982498685958613227794769157410319155211441852957794660010460164047206220092846791034389360875398157225290277924737264726855328757779915720629842238799333382766070318421300033222427563304182299002648141072496028455676255655044915207954676186081483733696716794055692145520210161733551508425578140332604287367181513376913473429965879175004978319659558435371019151839338609738384053431520354093559381261446539039051548672215050454406874655721270305137015610697575417446823127054247759611437524726099079827527831698630236467644715258318130064099383656953752291452917757372472415539923508910571124156309572638570680210031357598499884990461827729748666265404891740883473348808027399212895786773569091790073152882969570209385464311512146101539380278268523123433028129342583363942721491140288425799536087762996544479552643678054597794162221438873214429807476393944385072470225826926567675120208452736005937753346517408440283415975543761878600535773932831935973503912522953480771545321481136319489405417348198494509824917243198809108898169720858977378392936437485264981755312181900847598042789347389459596382612092314504343086755392723268923480335683032354572060651292085352251949433745105178025000232861990329725127329481634072393517367002282295752641585089496189276368820052588091207063251313771489856408810061215323609126691396226201698015880696468642152261412983565910070258452017649336369131711059554543323829940517621871978601627740432853153377519780880544305706203341661564070658868262564041392048322187069185662483210041855963773973726500994911331058864495059913838954620104577211881960652493489619490402119205886800692191590147349287750583190223482683462077113780001443088672041207161796582297759242380500097481969112949827352553503547558347185917334541000045979031614101714471350815601472081780416423653575978179114451596784570627499144608556359089792965880335647355636377327692252916748787793053757436818969988935764690886834272630275200548157035330011608167101133551623382597617603863863602476824452209858749980103423941850869545409300375403104178708739246129867934313669959991090859826610608554397508605525681404265736740079216441144475228822050054262477269617170782537467810915397551261893417342279933731936330738895663024828121151724498132457274925855461660770009173495095683983908553792132864897847091324021328909493936421570015036513930493157969280854795779261526053568870352473134020357422799813067573102057891811825854159558371537643798230305334465368577649095553774008440161983134728561524198535167977955585252294627575715531369629507878802170249662228219072496756615425833747724924712650163031076028755173270347098649299253436414377376987713908203109512540157260482428790123934099895424648260609428539201672325931644591401988896241987920325507398555060639057330514637329250428696977206830615997793357979936605429304572047833790833498850883830281404256481290015499517955001441550303245152521725606423958441793444004496313408415768939041306770066758214606651535064146591053860304059138341913398144527233749207452467023448409091577568304443436464728346894665562041552562224572261217072245909437973022316503323211692598127341564358624763476915040095098493858858138716908388961904657525435559826099350764676704512720197701845659191661555181569723673323450204554794660951443969814700380609114441903660917262088483178019060991967741128621909556679401864461095747473365840154269714246154597077691716069846017943749582807571882901671781191417745325282370530716906950368715396799506819339836185679707556756519027752452487791755768645973702248095119730421279915583349774184657422759192392841273921447058988570831585111559015569134465964593086763335779310521833891471338351532492832840133057188206002972889257540510369583609742083028916802278965517976381803934366347714580674724219564536345356970466029611217385998837145125261593108580621839501607101460708883940352460762409768683693684380801291450802660903159381915241952310570756391736457009975366877007610101076284902104324291126501698615284686163980741429598746692723465300573565597722408461152036947454007132667118551954244529642391189296750874729624080635950394087824200625531767557894307676197763922154544466579300720596140390178086571996533779183489331746342702514890155001908032069809390791400406174452382672801970663360907902229531584262328365674970072689481161231708623671123420266052234715732444781175777891188534101458734538841527590635764861502421990413350897227137211955526428501827641352574281946489028786858655159963311886871769625793110934787846690622768420405226479969490596848196010387155317688653787631483798903091445114173534418737888665926152028396993071341192299255831039805446124045403606322580010068707703386417340165419256139553049611233937017270664297989826817609590670935400474558403452293116660361057050907022501341029446075256481724658951461148364101031588371319556368950446560352169636885601562552918775909715952026535678093946774296800335081741264391427729133281285173630084459254165789987825636096921296386360438090292542962247091366522566918709896597711338103622905283117499731054966960287990404877658670652176113140491908033826268401374488772857538420413293957952864734755129238886753820048714913580535121469587050819698432218229973235834567396173871104509895458769806185044597972217062331155146872126057928698037440942927958040505148094578604252936202288608570518289744087902118233714952163909311334661046115105798652958211663099547027897677672220431925737807327622041396514507492939825830988846027847502778736223676085614954546080910184111646247946062437084565348055499817066723837896476707430256987270310472659765534046770534468101437051483665319359936113431239273728061215392555366821022784550596438709829179489209146736000847847612110571681744047610516065194702551731495009145669309144286447485905312828004684582935658749508690727113788666760373268851186403360692029574249579776212049979932047235810049650740496571950031050034369639045329049797918929222687482758235705413660566265899900617053028632177143936173528548369684536236536348788585219267779157171900910209439913526281548544491142738065811263603086210295292537877211134179971059705011814363584987546037994464570917798876889365936056567797978263048459261419255510905913923452415290137743973501151356263245068056203307298697315239663626443925491169526600635427070645197391438361392815760627305497921273975796738242457723422069776474645669542364551340137749941371597858206190777002612195005963433411172300557383596709160474760634478693524622443233784570833796866651434019310569443597823396611687761004673211483664115648949901014213360207487817599387893439254731202433048627915208080197458714293451098014452949343761493784933019173172108563789916561398727519794970818452556146245526571468328998233822706289944700763547303939509408872151997220123888312424984088123787735040180746308607998947807987726201254851098004632443024587324748893237781297712107790132871564171344627474584709437044850343068161966994053498295648894609478851439726459775688876626829666891241137567522338525232488159727652494934169372408204850988219552292542421504598883966120528572959263550397141102679226455087614456516901766225347458540852758754942107774050644852589142301935612119569609291988943079336032117407796386149541334708519618132241138102243618766369648952478323837254202708166166371748950194816435309832784777734104076346087258544770199332449690988700831044723861996541763150364196860342846157820334560923733580502627006184394491753284082941109833710454261300068081105304058618166762527168276490782846033910175957089421658339746247696526186946582096281617071400156037540945480163692831776776139603880693992574266615536296892952441522440040419620506316365713068782383903585042787983190866334932737611622167893073859728268004027650705589413085973235944633210401227393303986057594470215622334713481795548492443624062277964147473433024564147237438979479591254398839888198753035335459758314528993900660837018538500600596845236242357265009894867385664887245715173788244064856073667880926230119876362854655999303576460474853773180516673534114398303630977582078044271980649072167921080199618842098979518634107077713427922582729186376437776882658265947444064527106629224892437345136265307795626794477315387220656157170635242959359862641034415708663992715189647527776255610895401430544107416473831979364593161409503666184336568646720162640352137535311773276613733270360802629754149161860369817654820168762479157434909279967225779860381064138630978383263434432961466682113093582097902665286121749641748678326853171444825675907940337110003655191314032764888482795457286600408100129507561703311387846626647535039111076047675866992879356296391484860012010419192646812586940732968309383537600586230327832461942554486195686613182031304235080557957249701566015515178120767014796885668896534490958436065602680285220957959758011765204748378793759715613157263324517539930047557514294180014763757956115101486152972617014765192429707246020009124083529933513458695501725090233792855959858505301289443832271012728475420498542623782497965734434525726370369107455422349418040014646323440443526690790753994019300818677377503789387150518038990149769415772701369115238243530663036588206720440008944671140308807840832075428564954256040028016975197339805917201697434975425568294628110742905982572856842631780277244620590852986928009130951397166884036825834940978738961790943640048749702705894328083188901400329475712265237870211846693480277209338833798776783910421375939762116340157603367953831369407720061558563682952048377246601786596237800458213445567423296070291055606081445187323836993581942640268053950700454105373462746357935598505843055776165810321181242481751848556447691296716249805700587984184710589270509891979188690421096684234539310968127873778256474694282038307991652296747339364895978679257007999375472210810599276952965576148844939821706741590716144993839458388464470796756203277081382150867185452171174688950476160395165889213613858780877843867710988195285880340720027863387255595965922004791128677717991691700172953661586786366542702374709181044443670465065498315663642927683491890265875127900845503393021493848735032368077561278230096976760010751588973809378139632194843157008666848128889681519724455774658168096775083215323474646108110338035710751910986408948524025498189064019636877511095449265165088210392559397121430734139948569032008267345686617666313470352086820318085599179947781625456690576715161662328230374916664688469716402422775936138861516042377694696623940752304825306475640628952934106566461634803249589861044430718021557089776936583744559815443411391127222814248596190354065045133167675111821174536855768820550579102869594520003342145636507208693978480432843661651029749449111927291171174843391628505229841446700187990093737720250869922253122004326512735145305263351221144584567611523326536167162836756021487343681944524969600187543545241872060157437693051158739884771379178616002308246006955522678352032911442400065711435081922201782837296412587313088932588887666390380267038059536693087951095956483146214161383722970990248893085469404030770831097102926657011668359127269368365513743441193888669706222097964644289631563278478170075889094827862390220194090800452375826836073109149507333960556951927294031184825903605985089979600397618789041662901008507908676371484807247050637101693986427565187032693074500771275981715113170306592483787580760601025790262466227093912775535991511775897644714157855087961245185303236614718902546620654235813701186404730120468747314297130875685574628494196272197399410442231056684973946853506347411972656583078434638724126667272123482855865566420089178771620994165971281809908810887662829235122674580733550516066243152028158834092644702800597990344877758737304033585884238580547095065820636948872848342015006837661504697845789181608557483051348533871721594058413291615492143009247083897371800068661708755998980346676974283043423647258838977004860120259431920580240728213132183572402079649976414726573283754172217488416387079607457823664705042137565032043259630631783785221151425201566724103510146200915301305401773368711649429767364084016226155197530084192498488028608597818281644175412380498063478767208520301084423674080161614534724478339744953595055840695561353816907874401612944936062168791895125313860475621624501063795328024075795263587520787351549413369285831942564246193529652604657104574865998907236853109898335553801324471773105723669476351475524949607307237158081337609366120812916703442418923259779502219140207265157333504845782279797804195866078712723304770424308258796707829542033824505966978641085258360003067847700037927553520242593456505429340924170072738934968987373827619543524046780614148916240996232259052117411513839133014323477365972259583178177427428053829196551416515565860210374240324176149729135368287117044380612659789607987834448571571716697310968865083042852238100245768947099898236842541667375818087783388073481198778067352251701163466873935404192786427364294015772025613588014777131783964873915870596997593389748274897835210206109573109150412955033624624888836750527204382989168507117588335628480050379157764287596768089842005855801816535428774834753053496336962785206267983360733263035519475979073048425641702657373546998679415889089351491577250398435948604361140691428916494055419428105783378508616423314361119708094058335509856201337673666482924775304614129401876229821248486202190316549397216315272085435127220543858632649127586818838376074327567165471821875953064249292557891304297042367152405392573214562629579153701904340069237131027729534834483262025123628155107928370662755637980496598974253037195246307003265799562620881016115492984084263372020935013256817808739262858486094857902640689286600881121975234606710773228118866449030934418762362294128986831726356940013893597176127899728355615998726292554879514040559574014457351474088054365066526255011409151416367824062561761694622197540846181972190916103889492123639968616904241734723766877997302867677079720421308563216712494176868753370557234396716853451941909838913426580769848880149267718966609016153010236682458950997785546024275097141344811137722997989003406877970470079551835052747755555588251932327762524823809903739097388486517889234261074404575748767993595562587397329484029057752833006772360954114339674017443150500790610526403193882764656316984268995516355430826941782738095626521393618863171139250560785890933461166967534906791711226501094060667220902834842446315494970506405411528624065861126076125830875526057587377993045130931544539665185282748850698097741889000877018865130395738893706585725841349301663041756800507754676532308446656845907642497750095825223980728079032059012562259335795700513732491840463298509444380771741283365677828257110888581166959955804186263921161193507019003945977983427588303681889602749452857044139903268167111473063191960910745978000892215831590754765937606804086982142228687845291658289858170255435428338970178710707326122623229897267831027701287750999827727738691733791688756675257703466053947004974146922286411551581437859804838376902926390162380182277402738726033292631109184745221747330306040345145663338420940189835874222631294544006641087011171349864418358137702961582136551796352139650694446775405180618182925410346322554412356364578934198581856117914468449036595540850143511208071391816507631547797677904822777060689512859898510369380103423108043444422179330600079026626724705787446325124828549251933200055272949421608419898797751959640045735618121750243653162180339992667127898061235285831904942670888969931136408179265096348614561869799432044037326044665677745931652181550153723247937347277521969003813886575637990952950321452307530519166009368613189520172047934199367871367694724576558228298308208325231920774293866569604185469858740983342532080276011859890435231338485123866808124245306756308826223397109380162428712871656578479355141078654689893567746085832473418581984145592230853720866928216117348488627540586861340962919890806437597810992884925536475834242095008782434265607527968831266384452917757431340796610289329065524708936069695996030266490879103645040292191338208225611177816757569421704894064005595568664913742824997056092709703209698266183341423449633426006117535586071022970873333668399046687867748298510536437058774419900300772335673811075360818891932223803295089152717723018694402642538934709165382120774390806300437829883845483562867229615049899790018958595911186624206129330286710152590431751088061946436945198141861953847340774175537641934082900528906946534930669406059359704848877910935500696191351152258114232311020000267738260076150184473969027430417471311138286196417559634498990371500164137669511893229967256188173600344258788447741941756403726722274705993417435957577863624705370291152572031352214718621247103391909194834455015170672404361079212776216546061722114987302533212130942568480695907927484103380799575458103134537250662919952752226944988731870528066829941536734348848301220305460361588396077860025828082401246028441862585219220620505238526639129223751263070324868647818472926248670025067046271361614025931789852329971686549849442320326630589796650195206470030582368175791571286992174357574618211388123980764791864957498140029725770126515314118521750421425426832270783990281351611964106128633827917399949254079645623936462089401614209676621392893001641326064549254525086617033055806542532889446643551972570919663240111095974748188876695373339084656782883057686720838968237362600974759941964145248752564911192577689143418497970751290642311403909687088818105255976593210592731247606435230011691237516581248644505573639887414414030281894388939466809601513684098397976459011784682210562417234330357386045403700531960806841588210384373138167511718005341876415321569064201624542500101917625348134555173971170525153448336569576139442708769923551855942938787358797330896730302522404019302184208653944912390146658225794122472834763286636894105328316894479395507629775657637437821045945797983095175880094946676712909859055166218326960735576267068794955251608081704455515932348954521150238401668453280993744020518209655038476578867807007699995169357900841178027204275436665664616728989201811837812095150561921330828175238176573083405907518804889628947967829276163000631274126015259392097268399612273824851669088373538248457553931770809609811400604704970621187318719315426678167558765382982813246070768213614088841665909180049033783624679270786232595013229846866863770327994390195028437996752439818948605577955841047450170640134908647117910019625319669835867490366902805762767588648837124509195536440732320199959193690361906369297640676024521097863759490730178309954335402802546380938279318551594969655744100305272585422644634082042885738940514437589274221837516659368426844002194981772235237452908199185703340851447709595549079410947265993145210848137756747283344866422245930921671621065113043085952425801438406393557858382180112510191113617904262910960415318267282822859172439061635581514867599021638802159683563118870942944513715055774830492996000732029279558638098436303735348181066361381306199307438722275962469820885985575773833618113159223596296025932838376666714432534975427928395913254523640289747026523966335854847180566849060947865721199052039114546537033375533813576946368906461878724607086784028944133622892791380565520781666335132521256630456810958597033711562731934469602688492210785980177015878334034399195264638598390812054603800388704741493189448582762080456102287392402147508180579210349333461231256919420081120842338000021156476479821468824904340747004102042894693797157874589508228598308027326956938725157798063606177633374815116684091398978591495391529825104820249184335739717167813201735009694364016353508531848079810125345196806532335974900216870127746053714200405096189517709214482147468522379980458810962188653252032316011757019806096941221795242913482605202086084577635914843296898231535267374388315532968527836394649488905261229168585600105788834636811185988466157172255217783259755048301218924459961067442975855137477102430995361032311206653974205629142793530277453409864147409811587644071565035971645700534934366432037058600115635725054924799740423498308090424337374211755966512556612803671125848366876356665229299719029736806934787686748738800701440626004081049037925662722051708238855663477425654519668819711156077749665521082301848065249768832651046806330280785796192823473957130641457404106288649738993823002974858368635684675598456584848290953245501335499202439525582255557401592036476301622489013293929167917604239654856266127523652507600949782692464104873660036793473384757063498819180621185791246423076784225576194223542425963886405087522853040233568075267154451358794817269616085218370914780651794501599434781294995658919249021343838117922487989256133455277200687390215867575054069756050589453603222650181890042068264892924719236045318993892383990399220228244040849637637144458674088071056083657207960014350530204569253876052438948195175442557075594992053602852117347134327451457711435675112965086408965360990176195887866423479529856156001034005798672049209547173386922188254404577914277068742559228969030313472831098779439697740276264918701038866279922415995283640741141160871058027635284117411557818736813335969558237942935440805494007561619621215831142189648795256734455721733311900719098743240812724735012384317784287572654369819461265591401151062267023436182464331977518488417196073891329178473830152933641359925069001202950142618526731163306186094862233077704342205871542919341033012683385533882360650067790720170467694185959371222651958103536505101580962613172508072901862493220581297548107460272778102168942542096014679100777557838858294670924727220537201223966177111642667065840737462285255352182050926039082978625174187328454292141224215447714256730376888097752027168219787966453270223403060657416947854061198724613092126511677493915728753664945042066356173429019440084355749771918705623138223156796621739587151752364223510073651608630936096377198028005068300924739204598686664306971568696168448655080129820958316240231730316797872674242264355776031492020967717329809230943110592143139505246764252631389888289104142251277797744719574955820910000179672243610138475917906894571297167093317969092524813436288896465371514330703255975783636991454597310307191503018010619087588367808844722110022473220232502808287502583432891691173281748046505684706388341976218881561006086223800228626639025070082545957270927650166440773004477711050367619428566272622793211048247219514664997313716592659824529756222021692240232006208448594385367695755331698919819327035005552828618920803856420624979439052011807238751942080715300175837290083109036245951436778590747369195574537371682156938278263739532070739652024816496417176659719157148166649400965745085919176418694555677275827802246275659014644052545680283538402306714830705771894465849671394833738324298336579176953787258599407253344241978444287423559357031067031579772122704469556822674759507066093521986662089082801724794285869958304494321098593002397731382352314456416175050432769248506524117080668318549969260489468399910408987672739731808860734652258817329362341374395399743809578644535199534838587623791295271589963215240834859225953615065239663505940651152105663277348343970450549406112474212285831462015387767948800363003845924504001510491316126861886164091640892616326273452306412788286174358504696488294277904807291735274659470318926182023748094827485314246418661293193120654277566674199222386476237881122494075970028189874570233744688752275844587460649909878272692319868100199853938058340010676429558037804826025335350337203472391120012704760037182944119601631931195385367256513401974373101255581591921633859829981666836749289004711962912491663306086840788487569214353808035304813361560573257170470587821001373006950027287490143472857212072715078261325229606179512019063108486460168901209046305981054327885032125042563871625121576466739604476524190800199964069286316424681820419848161730392446351378470051795470327990151599844355653447361360149160457009321848214422197310540873208823766160685229499437494329792597306227556921308397679607459970640320696121793744981751330300351167134523602979349574066069701483598404344424844116453045672423455441397001732543661334505170726940330512937652676627258348959989311879105810560124456144925563943738151108545695279629699144290105416264167925577520419576320224726284085652455459575976615980992528004607388375952850845343421701818916452371800847656894226323523906849687636415402157632224320153967116145410800245018890727510558737706503109971963849519487251777123678767234781815910433215878334887542498050284169168412218255625817823776317342332549764962646847264313807977870027914385385488988309301236381801877697448391158369168430008372957538505241187791063902131724387940412776526019329903638063069915006397338942308572949867991809314644703073457320771992158686395841227651332511425332135465448559223939474718291520213489131714937155627071420123292245136289257819829518135588094494329378863955419325776568294342372334321709444951578110546145158819337412464323375846302999132249118622589721182258894194575292067602472528803382603927589132928917049160992365555729788963332184690910166308432803093334820680905109165090770329244138881763634026203542370767440571473877747954935500289260056795101828120099162208759914777722079226117745455700704028481760447123180699822031527739897257135993626984362176577345332553003249114089655655385276014108760344948710310710981167289103003024928127020592675336171895257027630439006053671901320896234963830061369301536728031501702859336704610614558744020531599164775708698587555416708346071987039408943044567846373018780462449701776874234829926294322810101165077231966117191056205259718344740398041782175325909733909903945877025386459189029147035543767860408503769882154174796453643742069799937690126538191338223648930206736093634978615363413493189862035075978513628241111584226750004019747699865155012249194526699416023619595264034812303699844935375125847097859219590519753090438796734257539235646867223512343936265837094912120976658154323095555943565751290667728788687529617569468942934823379883007466284300818431807349184587479986644507688514263545527761363475132451506717398915406158649689307119116761916618911711906376121599506917492339871051353496678714118639083395654036537652083883946041096436206368451056023332352890799361479317726683029643426397119384914153648504530693834050215451936346746573958155010423694750254208169754650341821480195188658521086205563674976962075011308801029529416313713571772453405958219721382509924394537521902483710789126491945386580424959362400493399936441160328975194209708197137818015153005408964400648879080120220395944700200760994660311571034914072022271653497094995611173062621164466184120190909618984210642706891844206276215549022048593760350804969212301893682564230782231847825795449082430193174517740839964902231813199244737632163130623096129870464429944630445256607353327136327064301834639168762856277200279888766198722484302336706583819510160050173487804609818075843162881536299067372970379104342124702244856878354347043502355287994581290662681124085593946331600932375682313273702742004200960762141735555512733786592551660559113586971452170608470776766741967128350079524305854946181055437859639109432749101993361446598698641199397143361933552532135331998202389932782302005205681519975838053788688222195162319924036612127632094394811888639814977901005967384347061835584138019510031814935017103035409142542816346951696628258867266337828941215317531421004733673841190515413034049565214727833881316583994938067015495942246583311987763459952264071681719700012307662342828089349394946585630294812782135944079068933950143055298918080420498021352048389356053046856716788663891693784951190410515041924180153493693583517749471853598267910046457691621656761867206904916293105434696810894785198770951609133352792775824816460783540380255952707221028733189103770734832357894939480871395009362677663490261173601707368501643744231611418520777193510116137273834318618376032927369373702473924310126697862781336939230943353516144957263064063509899932907215529658971181415694233290710361135301368868805503470197627281273619622472016730132573857403428713213775755222464759202179959809655383454415109140167383050058981261668422451792021630351107563490221078797506402960087156287496385085612140492597847160113288013098189801843100053840020267166286344651625935753394763695435820278441468015845092656674518833860524623481634430309655505297312127925778661657344941243136486017234435458061644821641425255241044413470718688475853646759248592377755623049342196833875881390249362913706526172294873449457710278017540027386539344090454118602908289409841682433798785828408801902938149107924591716711884879234461570669542566618454857349881234736837553487119197003940208530354961220509168280047772675921840974171307647595366843464741278725482014345354898015497398783167353863973824056374959555229120569632189055916598840438935869013277318737748238251674702181922615096000578138232021311500281835179714568412398149436598979160669682805437158462496035133478994830207516320872474344007335675572709498637356753726287907187102770530658842219464053224276863791455853858264583325374132413238258783175140079037504223021534771306079624668092443181593525484385846495274863836732247236908468305096454364736242162885373277246912483337184256094066643120332666186476812576527653189145955013162353356500191958830660158170148086579369138695447121604650286726444020346724751044086137383815516483788461840938065023702621552481119960497407209050212056798266241889369960865350562171288712589636064354194750660204484097159037144868871079693631073714884520999556880860053306265400753499494831360767393861118157924885175127572162207386896369565017810297853807902501105664451968657935254233454896737442348709998555595601007349787611227249720945566490687239498952698975218922828930357020124284823020870532144027643671744234797118589215502808342837018565214080806187732573558836163641055556191997755580418678775660882730448405437250859926189221977369653070435040494336739863462655571938007076016490889146410981565091026696537918480735545910101029302998519712716921740175565426060275939733111596132570285656099908308200274286880533661298431507283234292032114001179466511472726513767597741313444128688345942962269353683654317468952395212872594923627925824376947163571326984207600686874391723431730786698188455346032742025773602101968248512283335909182577471019050043274155362403804791834194656712332943858055480768891867093828541590580760331321202383143593949535603645216942523184727483021781763118389209744067801740924262712440090745619946898474306392644528458720932979404336019291148379473526965755344694558133914727544721561640498441472742483257791183434390557230448701018162932028102012515512524439795914307889584735332842822714216179320566859529908874597611028481310203919289645932359601445640029159432630706153565173239234686463349367911435399568696448125674699167039961831284550823086876455613905814929970791698390903079455594574876160069798069321841943292400740120111298311817069617079776305740428844418397823858820888574572033194476526472787402745361052396203517837014754143620853145954633122403659002006180093831146475758427901558058183641069071982403168838643818025622861509136231441033244775903113569712882359878286928179714610035235771377091890610170445186769535504687123363446584015871306027085454241512996730573375877910056072358635130557640004364891169026496423085864709876125508713798602064295544854559298807347015558751236778486910450926905796010168566538918503426055328809370152213051996032120289990473749110919102099151204493530896384936731174437595421075595481253588033608004993367845948955801958945612291679578267922955087213047682810872434588440592004044785346475953926509780491839069166408475963375558510492087117469365709802911953564075396120514645659241718067689590123101128973775084519434556056183947043060226966455974718314498578098213357771333348805189411076355747611328689626132555557737881939777271563446117321556693644277650590505377314518170259187671764292250107072159318114300207836329962502778289870322746272022660850860418325687750827867405740820514739190167976803981159647339286504002206757287651065658298703968703515732722815408433467985961480348667613949931003180334705161945160748336719160246281647873929219410978895001572026108262291499472939614929914441759365855716193165762322095272947669072804692245814878424549488228570781222192136217037515059681337076651035971066075724757163925636499929062741483032856428870120562516683238801583434475190123853820436602518716118353051660300359472205533265902126838559736680679380213899388559875677283859041571301055302977944080170421555931307268336128053685005303637665136512830764923168332807230520806979844972446257150751417639237766517037071786221067113088796721293376895777970133797520386591975181084753087295139338765460493425248424952600008816400021426938143095896055084224786797811983913223899472669470986381864278526237019412386888952131100963379815990360895418956784499337983848157037242000096492493405591887996278277599148713837531235695494840657458246604020266057387006673970050575256170353838603090974196629684857290131286954080488704237481791345953158039562357413766689125107890596011946234279368941956939033859031442642701260143948503821384110735273250901980147291792156194373565546432160456035328888963454211966070467025460074622572045123248654692108147709546883633146522856666955964296578889069585325825264471214799897232704843635207871356299905086881014567568730616733073121189683374704655060560388591328172408306815038137235965537017636166539232456640073308778733758915635849191403162356366643110344538943159177519634693893996524085473382816500559196877765655487194858318496906015701734333242227400249719141437969358300873519632322785498668232786692846103561752349053779311802245031414278321271167148904698303310482940162831126778382729483367446825075465304662028465401946509591964153305360092516417389789142033775706937201407076803635732141210870148534293351981724059061677326290843273698804373092301644448653030357768977904995527165922762319480990421074421826556958055909666826350307019922525703123457459911915559739357518057944476823649521137594289443090979378164891389154632161715412996186990298096630987425429460575020203438093025679496676473008692030171881995482781573274830721177354463197520159071602663638236708243984199398465277419832202558470729963088574716963302868811542764413141432057309044864337520833867549628957049707690607871671811195295023300462337346833782298824128490747010547352269878297853196797784914975380648176945648851667503527954063614798470912920596279266022578340478136750237022316697593364679728757831268096292439726575441548497190165257318843732086796767404364690612043355432715745246768317159028391635516790166834492141118745651152243283745091491331181983168636493489927102761307632722400194657656360603641897272187958382678065945513982229781100303123659016697393535493567162425553748211820484274398435795566476470926033691489580970267124852233477089545253105663111069500254735096060202421720486050142937161401659035598400682809261531895699098722593498202465131821998293348420752237293799476705337282599614338621462363328072748761063818627927209312037838760500165853646588168599422470927300973338950524770847859529499603290623185731386773002048937573972096102730082734744588549639381665541910222060732494462351622054802851531889477786407955602659808320030332873732714967449077730909985231131832701677571634999097716606493557045415908488973619779700651706018444639287002591840732124747023443098421907808600840388441346963443033022611178838757616274639708722962160121568347557209336519704151385580878264698073268317680851458863419066256436780737588018750627742229249597542220917845727336040423292727706664010954917234091369630072048092149346004690746297899756172589961925016832485177826502239872862448604401493322671399413386164010605930660942996722421956564350655040669862548286244938442106413465440018437019469372960783136427111027470592872616360326338336828990176172533522181535653328636518745243438728132357620021249038685286563021876329561132095726931097962755622349725271875478620016948698743398988902535783069313617671765496503916120096878352511041619879037178710219020831496875697550203889368833297250664850891787403999442760156151556800310393764623000669571720918530248257937847701228974669430641280809057766858727168235374783326695027553414436758496802951971141293277181470497890339419502274219618810863749579212318388227180922912107073515966604935402248605795567942399012867238771403312037233470591098059578899413197606247737063241390583385630111270055164937627845411711217152200803772354388092433474846441780529388664599293364338605565223885044472904869626848578831796641603405126134832946177840939106011580410803912717218170540722575605970967848807039120399159379859903171079081173402651694415047337949795612176232432253597741837101599073013868762813444938167885672469452396740374648049050762839854138510492779851573883667672257389566989762791113950452749410861519902900484760094599724007026279794220533583305237882942698673317509419193838668268878597328017919911498205297579166262310036144379894080090260396283236607370768028427776170654698433093920201248447007946177153409372753281382616573981205904501851198540915210219863590100909080140619366566750639098598290769211913527349109240053908989186105627764562973220473477885512401613556720543425360388961877168860365789326385639588376190100798188779765669857633284687244585389201567680113123451201820938866347141130175166715177393358985070628060118420737782724776062319286215339152889061494253175178790576091005485783735187167206879556126240206115708451150053914784216863521560217813793944997860069667402861018967518483666743410744866778645180754576859786864531118075518115578848600584304018741468223993280228863102579128984263845250417460587047483788178085911148160918433625336888336947554453203090699383488882855346097740330412991245935399915107524052659971333437508707051183706620779022360192567111978863285716550468049454222958903361779990883609378781806999201740473726637413743858639060173822535393948534107883520500738971907523569822763923931627884535663338815417150773995435727782040928210183026834192632898235256977686769254847042435662583779719922286738205606678178000020633108331947907518884807964774082720735226489107167462136434240583256337033039918121026738409899159341481469131852320289844093487158810331914542535743058447606522412735016304055456251679207888893608692206321440714132593865721334243018049827953257736625206407517877985535505676786256219265512179843155617829739513284311645232318069118984356529222284822103612546322945429525210455544613380236888967349824375945959356186758028729767868900524886094512022806731769075235400572649344308200670091762512781497768198316615106247209748853663644512215527125922919163021157565921627229407129140749609842633642262946755055476521710460305160413541974628340546323721300759764900807125475671883609980886241420983705451763251480735522999933865768643035296614441972041251398771332611849111046263327287954252355036827470075938491753365001158978262817966454918081698995846684001116408626424758569949939658033797873470801918352848495711412292672596622561381995234125611600608896929635267446667646739461406066809378668028907585401769015174384515740363649291969813192623811245279858393744118237899588111691668697442483191471222826450052830193697396281952002136713022960309260413892945240518616818809446004509835561931275799524442316679473120502797260761927559949673577325355782682650130443413239907627904607000084379876158467735139843931955911801802850450902847544174548416139154868662483272217557202574636912421612194017717160672610884787721503543148215918072771080228136297676964751500053588834345211788683638126127760316602749621781734927191367261330625241714763713493173826082585203101198766598282880165564477822760093055126227968605941435896358129746679203168904627173645568190570345890054843161729134089065791120941609303684815858405134059475617748065266536669570443413668707859682829347941914444185694600708762146030488116421806764887483147171663378679766174926587712602571697524071479357459482861030946517891309982617018850579749305943223105742985121121073697706300990383453102253627679557700420680191760916953463367841672618029026910733398459080501200462791633578021620968540284755283466127532118182134697801637100159979497919445727572329475141054431092072302710434031782004735514377435577764664544130899919042181610742851209124271602082221416345454672426350055524684104320930803067792649851596672423367204284621393179674830624330367533148184950067258327222377716474585942453191812314069166270226813806628341028451286506694285814180763848401952802317535428824140504677956414289940214458806849114841888385635647644419922543512323029133264646269063502476308213094821648886354603166908142076283509410209649119800899555328647986201643412949305809801893464977197179657191631942127539916038525039056016498895285152661543410378741841007802459367926031300784506599241653584090256611340437800725617002946634597810407225500251953800942325831256021865795706050999231285374410789523487770083434444068719614807972732839697508662087376775816725352343036080227436130446909727077072594140474141869928200617898126190389693265528560440916408407705755504702727344466071274770827181488687129595747787934136107978314441334936182161167903441601639100558096791918136759237912742530493364596321689948779391780801718350567789457744908222596029755439943658473214268068651018703335623797903838758979595897443811907433115897175528860075037394565199736821437130060792837265679608823165130322104534414019023468423262852950873802620048932564221329594892997074479552082104443749679461891897226159759148046626889303288068642666172878061583183272760696193566693567813988679237992019498430576352994307174174246440524029759585768691013369089199376355113817946485728266776377018992374132671147711499826985440869709599733352968470710490549660733250208679282204072818095661257587805347367391739901185344486420395261614075036924783573195208718390238818644046427432840680343983959683639406887778940051424362281400851368662550422136370921885088131555607894191094548021563943497676306043982018323451952924889527886792401549555172547569907163985777780450273283924378951161867294519072028116434327567655206583733395633407531396782301096671205448280898492235301451720418478126254395578329824467712859710876037397739859802245905485544575176458262740191184582345045805417901357508420803614338174853537629410463116116464330200645991735853288257319802477795105873982704735268283923662848706176554168062395656609352437750090199309238412559059379340389449346619361090792024744820426447897004652651400298046897084842989549304944611427879120166485940887181593241567048484305739804993166502241985799992918242525683879709383761894788341467260857709541169084680587047780414463653207725726509788726559835493939537024835916953082470065243782605099992842597072492476990712532011814035677564178894016692686132271378585461982310936683138070236140124276050411257345047725481884067328468167630119759825584054271718243967295270544114523947405600961570721506079970934087814331766060826695468836571599005985652429595052189204492777996029022482163098628992435677667613912871901971714409476262438850580092763094365854650365967324876943614758664076902170340746953183041649094231890302084385762949081826333951463924854969241681162830637184749260394510296916130489577996187431755008148238816520585556999269225250410445597634186726719129836533696821996788321505432777436435558643324726770860007320286708181495393096830028160086036537046119852878701754434485861264937345818075082304629372473078701988145229859765022820570595434461184687937426472353168672027508793889982581935649224040037846663138123779431681632101190634704030179504334060368046329125769699784268708906961394668270514022829196802453851949948006805872322361679045510948592581806936832882543314206430608946548161799798678842607686383651807951852651277627877302639007480323636625668244402480496323903774098686803791612427666303835921334410863168936062181998439076289218629099107801667089762208360786525641789611344319262963019355835836736056076415943567434416929755280197365018093534547427242773898801840596176153997843775781234191105284087336162886916438819831479323899928877486301334069107132827497488701759091009226479759052172195002945450875476129983702025266681109219795766321999236835476639669901180008698480622893982705888168082765517335811352036526550890432868389776446495658742087671239128498933428478184501434637371053854844752307224356780956940440746671441416782912470299619647697047169893158827626039228386267649848863118395919669156274769467881247856391269893199610060990833562624192228786147401780209138617323251262502178401262768676039855177596329331938026286568782169777316578175885341721040047722772121792233811991143938602001015979712468459443542204321348401340707046393961359947320979438229888356467507842935299685693241299425540101522317425847830017572624753835372137518928285734516415141067856015894892343435284806123281832320351414836410359612989052278068457812034641289558218215309165274963877967169378683668373020299676696835761888457493132430200907445658210433022628589431904902795664054171311989920574829548592862481873821548864714109915209558688274071263918998358011602953168474025522768920276136893784467965449834004995426551526399420016502337054724121693608875911944091757453423116270222092163065887495488238132829059778055745234687977144123839674221994136851918053529136890751572481037902870278243407465133969144175055338136776321202105435380653075893017204217903418193615749353361520017596514238286055770786596645141326165761716967252525619520490210123927581595791072362493059568887479828727114407944325073327616854219282739984341211828280173703095134826556202022559868488837950954420329883095236586538563333444285471064377238740046128230119615290052324580363389615360605860218410313520749632570064153173994606109683087415929697844806163781071708559820925785558716317686256289784493819742493193064352168078607641989892514338959553372877524612549925995947944559245316528998284217004170145956255320132779629548054586611237071906286061445569871453196733269645436151899651862009127930629939604696173280166309998603817867806961847910103224894105604430760203986601807261067646872243799467649664720968068991661050643055764934163053770641034566327491461430698954850369905834406550003897384422879947039264733753075500165501937168280614411513810875069163544482430740871056320788492209287683339309600003058225626815203729620659762861765546943770050325565324277599468607881598930015859055039390632655052251746255218768317164890150320900766643789540219216663081422098104761775272073144915490610606654238596452909532680471837602309773506573882890691803248371897079177176602610840431069554177167486639530603458524448131449399735321092902541855915725137170935381530836135049651055098545226996859706363186951344548666501454223882122614608894540756983048729192063099348422442965017687077833896483550273727147655796894459493509500540602483601062398530917089093241537108691518919405532919824513677753044218609946861004714509671228538197094771189109802682180469796052622654046035484810211548745879864244267175839639142087333079316552363664901410061266011432939480918007635000392770588285553041476542926332942882788855236702374899337631146855093015231804003361662714602645002044133406557849282296040895259590965441833928522021130489438541941663890301482774075242915230565222065590019906716054839176836238785161317360920741963092337293291978021082464770149838577105648446384470533549993775219207728390412513671588310756338135017947998413367811288470220986827462597635199855640751486052234820676653516501556917000001174473172769225993025328899299605968070747884480570068678631208071643182529113608534801627207016053893129107231422167633194507082850497701555236624256679743933181429168326488357472940681439551581211454204772314193769208839386241660400638686488842510617047886185174666987815911036528700016255317408348497712721613678381177483475102669758922988036236030810934072321710915770437390660290091487845020677352096891525942538593962434079878549428523922359265600311235338272176714640521074679734246272089167996318204619867905474433377617526390199951553216845313890557286571142315917045482492939286060036160440609813767988124981526221397791061582557554555589972815461129167146441417397027478442880094466684483875315890538931418500773828236779571043895697260505058025248161590085234944535682479402938709330686868603610607758752399919590171351124354918857948351358711460753940075743272074229510582132021144643840405699958662367816043799559035649117056083358352248479416282584039985263608938309865902948927655284854414331441720597161041054314198260179330136209269727552530849326929061325862411445809963983783370803610677404995249736277218063941155372363493053987527313465669590657646774411817753723443450407331930982744426002426989802830229169916404964953239470557612280825785883086555836288637234511882854426801965421771429773395118537822399844389304308248832359592951790624402278873593542855071302271322018194214886617588518817520558172888753269525940126900206432530421600831073694158079215162215234086796934939522582429706700989065824637440754824517811165513857170641984278893078579971392491417354419492089322961847500545766101877227865737473599234552164940022402749705415710964803249277404849364259600922639053890924290018499474626140189336487514645197786097712751140541084572975469892270373131920251708899370751966381072089390329324192431384584051654426871064365251622783614792285132745898613061215969938140664013747634038964322963759986581801127736422902259773199323821959387788895395966903230220214209339357509822163963066908288385025172894048701594965285679250175354994085719381953691504817245217815232391845323686020200032599612899368003404867869416259184699443730676230961891624772452737633635024520470275295088271540152331097727669206331516374701513386831582902355692638518000566011337414568969363968767744355335239043734502967899865546798797530028525054966027076745939743733962362071346777398533121784696474731242339963085039146564565057029783222128117743197487655557009001808178904836530221247734309060857263142664897749010383605472641666842396223008488377693230153563634509367355786939422863154878030881763589723042974567092906273487089806545475848269432446306041636307852401935289398475713703418771502824831573185005314269922721522037716251124090343373224649972885842288541311117501419249111308547091480780662424797888840127296582253847934273759226081214796673841058312299494357012222259648854184128406454287337012188711440787803802178163863766176871768799994119060705605745531167824001885232555395829207224712874822532494167312028092361530609613735145349424094801694163626185457317194524314271932897634985965852483116636701651419268331703278974895090385689662277654521463203996091716954879998778092385300245673355659049201852972687141239319777384913808334939489113620186729384856533338243633402041148220245823298346348730450520635442465737484211341047900966507834794071607785604742100642252929704996280831260777646045962306326875604533733557349468953728971187862812401328173308245055293221797589060743000542573737594205166182867167541679458193689284984206294337257798891454647428645969577600973586399755779584818246458321952057346422783265017450004846201645947217849950443579130186342751672168544228843266828117830626407724689889102837970500573085582406870278316602383417323188523386420568851122473638322212708781228017155848976069911601539598395019461039138753115635256943920417313055034641458133461256646696747161377802757746523392996634094827679236749013392367971198664735953375446147139459610743713976489486124406052965435162155675321361234952941419920785237244497489637882229369468259788544331276007134326443023183083780523382060177487271131746328615974768221282244303693373771855747575281729167581343467752161495767150102290496911567782109380416116754971573053936465215116225481791901068788121914016752991092895744550798684296161382329090932159216908703463735499608671901814632097845296447171520645407637128445109501862322003101491059384263237073605340005826843021141365202698839543839796022682633630639643922230317473348409482567351481295952787007811404087026730848880141394565516671628710633816931003909259299254740883650376522141558913096025587181051668001472598323042627784817863216942410394196293109156877814496524543462047820280029705875198030117795484332891942664739029555458534555958645181631455878711222771812595583054109275316390428264387271110279050917740372904171892273823790510406422505503059385160509027165190421196057850895494404758043093410838561659859362094223269589897289991290558911110331995709287231684879257508487323298412282018534926558228042839811499174321368187025389532987294113383800154163765392297078137367801907140321089990855533371022248257442393390162735408772711521757436493895252129683035816017971547868677071009175415708469945840755963113459596295785256549089770671521094044298325896124812160387967071405318950161229329520252546330499384294195656930390643732562773238752477759159376952822898542062096624283696703608853913738346872707989966333068899789728973034099548205850167477121231098168872512983759019757437753012913627677370902990128828941819753758839656632881043108933428697487294219711055694472093868321683104479274995467449893383837033389485115488331332633063860905845531421756726948315652328761596249209526986827574494143823772365557306768503951735794409656304728027169670516326478804971413472471471919503069282767469659103579670935816759391910725915709886753283666635840224443826911756519174486048081577481412632237936577804659558015904337267489904003149221072352915673931340200465307726923772486293975268483460347137347517743751362113130087242668015905920852206249130559500080833681886604884188341920770019267017819540726850161403317025678658030370450213752811806681325600570589390452679587699386540156662750028371798676166260249347358432452702489476972683043038704463175370068705565871477368022215661079832717355392584376577964097322420130157384844294947946748122385144042191009224181618951454831721819319739435139540181869564202282252506426775084780876633149711710796256449702389177957049450172022607777213306295478461531229779598732622450135840458138812391811427995424968993330858791708726334644058332425447397388359766337255867868298430209452635779082660121708883763440651849713574029566889466715629281265102058366005266373072587390640201881969198698904642828373327544847536044358673418939033419555427011388361823064806967900135812902517914210804015405456809394775922279949729380954122228873576917366407839068660233892134730647001069014796489704324471594579274624934577091118696477210245313540121485442132238081595882652342484590458655595896617837577104162759288124446549789991397378381993618108086155232068425642062907284713139616799041366973645152034122824104812358953050966366022379944134061806735550877625733456511230582295869839730114579286812793055864543955961226041448053485964718270087692536105512129380715558695936785543060713317350205519302601086125429961751062990911932019737713642033416257426885301695021814379681795459030874873883289059031456897646109922851035546652124050615045680310694568648441874951814956107464858345028658210405606150717192483475804668296428143904476418103952761034421130279822746379628850464923881390474086381359602258264457773579636347959485251809112921517151080900811989084317763908650769124144408199293500670965689264449608444948394576144202079136961943794443037347414381893432683011684847671408502056119834102716245134327798283332603004558120443743955890484793815910608678100353118681189960302644396836233831895414143530476448071340131089042965480526784883957992858425756133862591100893460207980957136712392039161531096976488259812695232750185957916258292632571625886524117926283873220824231433700768970853133520802507935761192147269333180207189369485636840802352160263011119095292843479754007892031520372357445137510824974406403812516432341445403347087880848254160594628696496775647360576553740278428572464908415678957694216219050439226102921331520983566952970110864858380276382439169607508609533881675660156475841346972012963195238049571695578281630565751523265775252584920976775720003979695160843959029193665283368044144451420120651222823297446716779606972789363501122160628188496505339869034082772914520729045075492262680287589110695897971250672925089830208504041262256393076187936452923232212745705497333739147972015131644793004235864248701459583666413385820797975561746625686358395333886514517670795472046971858045785249336163441225905254024084655693356982795687326802266079757450061565872403589698758949144851998110452297697020658195305588700571622859288389220884171455247229376980092485553737370256035782059982293486501211458252588443727153611945848985877223475054956585850798735950867201040419968579190802338983010140134711140476087902576139480855289875766930056210485463437433322605945982688107605920524269751810557819371518973346637363791911834023093958000370876661194299495539219743302771446384235116701637677671488039238394806736018705487213777683186150805576893027983814641286928629166292727927656634240676971534943625022204899972673460246686704349777230490259974888944753584820847315239536442496516116715095619622129793035903765563662700334448030820435096290169521443306269476351183567618526714788400374222033751729352402932243472490014539178409777819077842439532916048754546069019395966764040489332817359234005246489042951685429176199726211864047501668348084577917802740559835154053584218964122108872871844284423904957365980905696234262500172909052429642847339169641570424466302445775151267083570096192745301362026329815814954154427312107122628450374136989306262770612142054591966922532387940924185832918602788567980121546572276878196978365104299816190591893487411291253430374585237166719473856154576106048367264685559217666497559119541886637962086331180064979866379158070264812719757848861991360299702493239289681349437366335565083113417445390946037793976852533886831325014366809428079097706461377505713082774108303231854241441140765336920127385317553580250990055264258686652000698245871450570743916197600219001821406211833384719026021832612658892955888754246033841081682343300732933735652606486814425609281050075190433709918554369321607398533805816160883666282653581888293151890156201170914423564160995886675578590638314233711987954238438661121114010240795291356075420608512257796920233988780397715195586023283773464900086221257863466025264576289812984716246110728613447500088199553440799277768059597349887688069588037115993468911531561247259749072248368102948045401570445728751363722627491567696949653019297000146402029119678218441958060619006196102768772628698306644727432395686000919665181213573542256383773762305944321565947026568167296602017902631599726949999144132527996032806825370776416065972453184348616239376359874048525721006326227502126533481242047103326108535234937516441663792326188537973103700036372390905570531642897546874497289801871605538667585433924256993369776204962581348638642713271638131634973043962319530138252713254540678842167486115599594551284177983976819890280191332635908310383172486483874511189209404955362263603534856608093493004892544626118247448247714693903222724586615095949682236877141601930940180584961793397910039943352435767902992297592985296964546531243546882286466590401037639452382000793821934998783551262989309879346748786845507075637063024013182403951452418751355102850551509624288198665359297664251087843279580933088688616412181085230906094355670952666890915496522321294425806455108071923510743524549056327204940118796308421910136037704399369557324725724213581376420928826355932529477993094169904000009212275821810372945986884898245191687389679019892662757706616887544242708676684306163156635636601038611110958747219506482237822579287516901263945601566789908759655136253601417877744211937262063111608676006964067514378996399752532198862954407206363872690773296785999184647725264654999174380609992429595246733024569455115403798362623304934693318402469769335200137944461323102006834670487357931934447681538483530170074158837933118598534196144700749069294778229500498056994076844677300958792362080176676995622737180967593114942540605405472037656983112666788965358882170547196717879054322120525182965270538647236756554834837126857869732584139138992584906606313103374688233728548854518519574247699847014609951212822028481190030560424697564966509136523418678961386852292444787585283930878534091029485772634810117795293063579116462023468721423524841829140663661074550288948141152587588239397432722777338231479319324327204673209803492828148385988216279722137158969714392147470954928112467787787188531083343764209126036111656024505497150709836501905362942165894055193570761002770543351195558045108724110145252744090915028865633179855619695340622132032978701589638335991049976806097415764928508642824971878397497979756735035780876706994128802770133354361033354504363883624290010963777161511770544118729768859082179950845375008055123684371983170311449065526541478508174121215721594838856704793358593655970949865095509775323381171605407068540760465339369755425664917000766201209224420655656961260080730933354243581123056963162934808786055880919030585220734875637518295674483775349066285617384786692736722772978667860076333740870276480916036515240133923982130536280098372060588699658384273011918537958668575366758982840570644838084935983036463729313463175562915793524883924330238614685539968913924228326493931992992653781326820197493875534443487677931875123382765808620751775673640477244822021269410154605843231826403475107202253929349363505734504188115382450116674804317038014211684620073391111546178161922060301976015760560686123146567653530153204918912021843717284233812415321344582022553273109730893764226926053431632025852922494604639916695724606760690122627499498775713329975687395499843788507842939618367668545818351431639736444483949539515530398454294108529968584255134666956549808494460753421854936489063408722756316264021335598042335691281848180204071947086404445877598361290829365894344066263171991865670835934700056227837735581723520714482241134015999331558796942834419030220653146704662453219917664850751688241376483560037700363051642251454033843011185940902490686691420773278297617872665419018810579772731907989943762736594260110127904293931403844255644371524480540121967839962152235713419583733861833593190297917152163887978117046035999607149253138531600788419960592885208975343014871188826245122685979972907075221868475253341198039194073500267620966061857364093898059637081149221868929963763723010982882745598064014572989256247898609176879630044083104314145772626059073465209542263307979678642104838854186080905006216965444552623100384827750992569102790208449201234426246866189317395795647431264623229136045215256989013181647891382272783719155173258083383986189106355849480223962443580740297599688186820391334882188628939352556010638214964649022014298234168891627460249793408111708336052043097436611571944134663532714134675196364657940728456170448878943217996725420703437042647230996408624085173658549563313278311186224662412699257768869530579250519108228527304812340925578785210731519237742821824715224614067211177645787430215072702871802726106804190427676254601916776590416656538790888195290037819207924295528787023036372925980828048457403951568020011919542516505704193181371486352003938974818273205986085506240774374049586763005082853494214685960208432156650942954433023547788010724065739469073448447617539833133790060682123482201670968077580112195496208910834763749278176575009349768804941427853519493541482767633534137949847034888660680671705165107529770281489554488099756682799266067530261946361385906518338031709059214400056056158866129343116084930083844955941159094601010128162785963050109133900389654228199898220129099130097839658472922036964970372522325110535093716232312406061951953752623038094904205882455008995115607383620130612055144931758904030942422724310865231050322309381492056379329996885064700884226305518026237092289734214875582373752363566368225344445471605948752200746408979567790886783028728617983476980294209927599654458078014997410889198798933459149177305746103008538757120959188508831549548827047572189137026049461026327161234166258613440534768104544170032680243391162277329199412742567930927852648499119280033156729309700731394436454780074528159609158403088292842590009084080875658987450210068546973864612337132276722220079350726315676898696365282106683127360127435789804599223646817313942208989110712755246633415712156233479273998597381020309033582558647633166457744177868024139068951707082371366458043655667294718709012569674325324864522208197773661793934387546280908189599467859184631504520372861909885010661181982784994960952337711069916660666533482534545674892235723240773312525843835199948317404165760197460438401799293330212696166935140366416727824836342845275561197621296959704740724041572045550270174863367172727163678603192889875683608450297581000901635473615664074258461831328730798669528697411464207051678528862824511252936807487280088083255705262549401405120601947272354784705977971941973830358847838768631205951450471862343595714072944559691666206880990069867242765793640114677742092739089428700220922956567922294777547514124637389489636819433419570255076227410504483504724742028551255211379851774685117532472415597005765605562113843830454934416440959767664275439764071919057499415297642149946154681160079030543238441759386096612137341689564821918572538957792043815731300734017091311759514283654309653763012941893416641164143112073829549631442368420123639293297994164061431151238058593082336821653699157526878116221788429777598324183299990455460597441059953535783440125323869414929806158244149775370184135775541398229511611593806262077838861250935884474689332078709807419051446542032070963117534880595499174513009722911896094870885165590009462725226753359898168137633404357654560388137476363670701859507281612495757772799565463897568858995368557784272216061912956420476887469162215591049565236968454450129714418558627402693602168937507885675551707613811329195906537856922090444729361948214740721299455173539002403097965985059621516768679304793367130251883287653581686482917113088331146202866122435670120004617322699070875043020378044435501504037721238063244288527988047919686464842722000524401156676478237673171967385860716958819351964316735694434382704611620642731148500214323338683519926288884174754822773398269946043647682324918651724362881569609591972749779064821618230216486740049611728023006219896640853997954026961330498393350967193069848439600780236940714426283942989327915365921433325577835699123401879387938020853341293759990292533077378068392234928040436514650597183410542362160140906647145994396712610164778051177202646464844612691044692266000174272645859016883075126209379766472947971357187000339101886831298499257148340711393829319404173771617733463078446016543457522498484490319661384901276849466349674251541216046401653728909579990848181346780565841522341143778342946646738427952797419667807865959257161528060391547574420156530760883523045658953293045356133082028679286904348652130738489303583359665299118540382501621367471779876314622004161257168947138667143845932546025028989747479226235443678021889510756387279677835577651056862220043507775875824500337192590463914382690626529934935121228320758987054823371010972771757028050267160399013380063917837493697397267682730777219828200683193728910104946038124325248023022999456442749290149322949799294681382006796749525798603482858674775631243430577352297609293178362348700601696516053758756802429794837170918553910157118822693507990767616137843917463680710611504374036083846798772049395533391347907755220075836006893472775597416885005670771713266361757333211958328497467150384461235220972746832656246500037175924867525791604682287446167065531882794638002576898338178838880241763326871221337666424492311059454125303828381558934269041811945826878469011778507396126625524922347146452119006848877115766654476241639021045810422755994662776265601945366243133895065891686522543397270848562646231814259548343826254242910665103936819345253226225908056036849776740095055583674876135940114264758296315758130123597429694992798933613646487517971367907121088574090060505383168360996757930443328899715670857514249046737592920366294307672030934039627048711239391796633575530600190161088107097049856551231591619046257265319746394319665599198073277979634714421527734966113671670619812107742431356413757959628653556279528018648283373211270713834540876191983024579060613408989464206699402597931497645398172879724662583727210011763655245827975073413866921295960559087985392670699064327675739194831794031467415430178233762196917500294404193675470644853856257930886910449887376599551392418252332612069117203081680429003647484402530738964644111633899595847272641488890413788910218675980143727542381824572126471346586511120839174944531642744894589538194066841397060486356853817739332193367009939027222119084170468805524215196674484233727079299893972012537983831060846884604572808477465380500457347945841304238657082419479498940462417907159904529287231447489198648997379628218634300040196192998438666979395217296824992312494898727056154760389842145078555577510481047778763329222130178069775399518640702313940413549536489788400270136876464766575549596272139311419029302772613758918005410117566320594202744193006293767974577117398133836172020659039368499898133711228383021338240175276607263616683085318931525862664635208233485505417665011654268288073469198231250946883211841870147590948960494963769752007716461024023494179773459081579056325586538997004521821678508314082212551124089191846388541013062291353434757451768460488749019950883230149744649109517722677983836470607580370680466993637176622410748559317736864920577161082537588638243601539408631639576225840371273034376794030346890896743099027412417082935192105081361025750705811695004309297448632211513286540343721033139437236637902589256227042455594501152946267510753404374334236839208775460619113806712751958255890991983539196123710586003790701102075423199623014577686461505834684594643022094611663112320838505918124475686724574824047831762326070613573669096691933827731851504185931612739012060082203364208758789414861289340172466787905793877070288924301600301996251253866520187060423263580257509979904191364914427292003300235925300391474273873516637165795528786649789441733537568827763116322130327414616600356608180292813252375359615049731913566560632294307575914897196799942301684817906510832757069243467193889307434280684372789249950975831887827288936670860372700311203349223307958285868317416547523528780868795171268696944365025951730937768762353152814992439005636959309852459917546967680767705203882971141788630814482158139263290899735765920339874017487853294224097162891487094687350517577315570980648501473092657585463760701977231189558705601703507258430478177994546766224398871978818379671685944399221623940301840050491528482396245313604643559536474802977167002389310970997979099005489136537500646424301568054860103401829788254586543031043263869006707968458735081964301426423676923019507069809233757831331228613921710270220816730209725724108662942133784749153089350956767855239402702768253513405999265511735970622180665058217886966950995027193985055691048711320062118028581358357030344022414558406050838977477633063985402786536812540426856910957674650273413803353502282107502706566781839853455621983493464408729633676032463649864364451462222540306715811814660078329562562206802327022126912023018871858391284300181160779738553647845730470904873817084948938423213470745674523388842853178670490213278059450623339008721355072015670854873925116080339704465293213474682421737351182946251263875181597378257508762364781426916872174142725848729833655882423058572827724728097829582769202855339896295211410748825101980181578427774945797266056356717934872299658549420855941691083543893152325145731754031919069522482376809892886002272232309085351539920215787411771823484732915386986410865792032203319425117215704005085554577438521570788951124095845463258306648269729349567437728630098790344541831324982620243556526635192140249799971158151660238248586184029409246152303098907652619894410863743058486150982415992234990730624588348044589815007924797200174643502383156282321783909034024056749480196872714692338146636667696949342778709420548635207948453277730346669395032973907606628219872372131123994082380661676469287965814189400245701568485090724378796760142973368744016418939837886269635429475877280919952320985887518805580142032319091567381393831688532883242626455682797206612603331428583090180518713969703666837155537820607924773913432625207261806294064180272853043092815896085994064787163171886800132542193841579218576586077998618426322101716472007440545467989380585710931141830944972685383012064099321905202700548659588469865242265086469370329746106944289013477734710280389327978988835997978063171112710127693738958727414377906028992796073149734260784173962609890805678980712045565880081946984623163383755597356010493095705526588799429033563063325493502963046564383990872266940194079221314740614656161187650628137078182067541170282993952020017507429143918128068303849424369817061857517275908259472391113598141233115144789557252485744393036260211276141994997590098942820571130153149899915112095639797339240521267674902584796045996927160884164763012523956188898105202276719623113959254815813834815323411439609027244498204019056738619577574002677106426919201033005089382319945997432100315671401432344553244731539661632960781721513174423090479821104434587310772220061822860790944141464002819829106183118340543876216789350488215954538910419123437259384079490428961209355291554881786516571803251131879989777365766756406937140500622154474751033061080856219903549515736797609560806714487572613925739078892216527964611573426034663574515063859719410629206858540252548936886274897897009476446889857461960555613854934606229568171362630349040024529583237894206462254814599497231734017643956270404633638390052666544027361184736855838990266868315146256090798012961392554826102010603736149213943648794238882787692206614350103606964248345779429404928693943653142834699283435837635852565175123216374825947815313265826337700857276289549514918569141375690824613207575896186390624864916196619836345353808359806048974656452408811253750673911245922543055029347499559165431526299978217087646212476847941466687147629395346180516808673136018666855444140616531217623326610184812133375213841371320589828200068115297022615655565009260363304660807983748619185602762017208921297840689389686254865043450860962211021392082517565495731126063018895420071170139823843781974318649221882777583511885340758342826470579683299556024441288022939526733189284301553137923666943080690260297822738341843796751268281287503753131683061224197105756756560949667043645256177318003490005358743432592173672451219373466810801515016648378028776417760233396851609902764247069524056347137504477039595008276467957320208771417559656830571572474824727898280959234630025054149404282754202050879166549596153436816277767714495114744488220259772143820780215620288400294770708597489253359463754799254782802484710244889259801785899380439344084924288996323102232480016619792983892496673028456853517173318092183408732779324565498635223763526948146857427383726852763365681946018834359434723935298379797844962447847367809378793303624435693229165865906566120275092965654957075189061293543906908776860672691616438670731907311243350370395117592721061469630867872230901309084006407925778698002897554585607491047763773416280917726697758115133973734212765267865263197582192395984568103699079533078328753388130550598377332020490174417505870944301565014191197661241214801850502110309230827760472379465906046754976761091219379409802558558003049496864693135381402369153153352845215163795388965919851401065345710271240467791874963892056670967285823052062992947536418073901486119694984997714158869149509871550204933575286207091189129594962157156493428785240086050700344761879624249854019554871682243646473465393310342202852454212614578895037297803796665297075868368229849897095158199807021574167518153060595045668238062799217792438668853513417370439435623986465189373765299460473756195152878901554312247465196416732414912101836001021461327853288112532458977818754937742073522759125496745717821363235033058797388444172783211734342715721833282292501800472189966158364109201648169853414552226473218885789624970349272621726410072675023719491617494539204470057030725953553521621401062464548468534227816309957284524052088627390046532962146243773120426159593570753765755450244531295966305102573918303399926331983757462758466941975782340924396436107768301226739029209885622213599823133148180135627187809156398560065796934433084261620901189508030385778386254573083192986771947478475641619997777364981146918772326509133319611869693623692283391879450035041225788040144124167821292193933172090607056571971180686804512879777560613567163325578097612082125919616764162288110667332572990854108833963361809845537884151017522274563765285649521079623886718048572045686474294605814818134503564032209342458939113716426628993126485660278357071204724356138025556078929843276708821263465086539134903182543932848662823691181248239293269538400315183076348821565275078112334335791140243507207438459941145273251088182290293091271843633521553666077310085732322585914192517832674877091551271419856266656776021060120160552461225987622676238614070905750778378047733698963559694656971090681154084184671603427189647811185362404755917328098980977808298294634436087762029389161672155822530096965338848015157074189095705759498338524461844975052602093988271920399905857411570412123398836062659891971054317300203339151228199686994819462992625260610071844659047269744830560512777145366168612367416408599119426049603476300737632439337424859263990556716310661681862784611650254623174358822752845182350515718001408019276413750689198606954680349421214346570361960924470746436356669108648688244123073930295599020099634044258247624498649334725226003407004648354261026246578797059732594195195527155061836465955023418680525622289022625941459775976109492326426086158363273137289578749101012400112877112035667109384760617027286755251843900838532715841089396007734822949136958519523984114497887728027968836579837161891472449193445216798653422367998748333000564073726235881576968447267771776068225565747545475473944163028658734151057085521103048323186675085645573333709617172814534790809579528295947735401696824152649346358956808291189452926607317006723129789440883687111726685558771415492616703531384916520120095908062892449661809815158448517840903253481250291422582779679683452862754204193017133971090782358963953301098870926443024538047245172069968817080061430693206744591757056774917143733390452544953667571568289529374347505937058046307920935063493418978033794365566106136215401224392466517087799545577386173708286844646641755586406623859568492136686033307010065769292065100477419257173957426797969816825923745304245551149824322397835784304757232807759618481073572584801013588541816200405964393824000148341820331290084006390752406971933011887866280241070777485095199033551190010203026193667405130007499735784982455525873079681893311697914104378896124808948503738542479299911755401646705758893344811144217458333583605214857656114693410121697664191002196235504897328382499807582307317282008281793473876012446316497957599159688969179664936904325808549091112495554608564288813495224366863413424399111614591342116208784442125845754911950890203864828522997603503826716194847155912394639736560794231279390889525088435694249004717667037248434959775501748219780627650709146927505052876342611614700000777788564624422677163839658044314325380849341233246844307242120657578511589239184591373591499150179246087939236135013897605994320874538972868442160071937321662071371123615683340930762738346239710982529313903499994611361380996213389296136292262644099739489032035153325040940411333921464387021104353491474639155080966469343587927266341462411125609741011911154108377106774003607543340190264082005531417687351270729627204175148420664640618245045709562785754173090594411853710011194886093533195139432635738957766895243477617074238374197573577493906824051402315207904468519357426867453755112645339673200975004807911575451647269861650658935589369174279873961647988381489893385517975468861758382424559741621957294136004480660618137346655408267360042572058010625762944991787037028142297315450902345406915427236162656376073627155750117712086530465600910809464570133714634381314237477253685148137669091857118566907716361588213156539192505732331449809057471685159528808882145801246999246568950025312142538801854396409446344298699601669153669504518911662313771551718811528231804725243414037772768929393662550918685377945678129350683201128500677198972628029067449398513668311455889234523742809071257753077170664505440643079980299871057714815561486341290696170031464214768328243865620818236533490340747758792417203689555752107754710378701818308978871444315238514641205942645316002349371966198002215519749931906307386951817031165224078483266057333071373915163924905310445725246564529258933584745897769516143516630582296697036024792994467715756292110424985758012635380618812720650730073351350090634133095740094346457819684741994846995404236806885488400591130553079498514381424968925689478079150055262324822923403369720219081257622057828053244517253288665450346451931905897404264492866759034114695125536139329143389890925124381194806738774939558827934724930269940281622871837582300728774628510076762367696063139166731643168024492886573280117510031328065478318089057005808277106502497304396367699494373125866705925597063792840899462447121170913248723032051163249485052797234943407288888956384406466011017633714269430111010766043704353434224571816498272258039211240010583577109325935788885582784952411681779882121620097290876565654621764903533334397977474813152774281423216014970791106798088826793630867388836132144293655063783872146347923751807617495748311196910661787143112631124950179486128951089126335128953080929761485272436419505158547762315564788266052396470427000853348762611119568175143609908655329233097249723573156075617576196672159107755135125921517203354223863245528600432031653244355639132221834214316004231599511301123605498513370252147916462159686177017590329588094222420580861411778137042891917763337104623265618658891067638639627205281845334088976615543087294611009012439873718695788225392742802505718016216340658548971257582755438647049513698076719596778663571846753343139086945075805590119380060111615900820915117104717619512151337074615781310634681183338125039776303717073192347034470969238809810072542193238351631050921985622011856336821486178060416607461725612113230610435437565514169667245802874976297943830470255828542246901043548841004358108361959809812584312388105691526146997647255107090590388960543998789091936353124229881562791045384280815025295646026531032097903458931940760284916456456432639456023726735064028733894115973092593083811862165705413277456623888216993900241102677304236022209827900109468525546417042261082882378432641817029690258638017916062374076670110151766543530103013042580128758964436527184107035243145282765556904411883924336075322672889192511827940829050678512514131776358535030511954538178710116890004708357961469848394766492526402845417022534257751246755965217465430823929794595441999660637186051606637413429718418575249980849784745035155202643544651078433383951588930017875756415691824435163562046315936463666875732316017304322771750237478478308527899920436295729907377308441617647597064447332800974498944521201996623293953304714669393577634045698796292869119429399899082020958491402054830918512452082738616321747105346586040780181412615206618302282952497188346853879484350624303683745763965561888682481138231783371884372869466049823944715750937762409582602957711582149375716067160489202394515197609959000102880326283779750148130935568508017232938472452329466377635904876893309545567698265375085805211600927518710630629997812746439541112774755480153904036553368011599212313713025384102493147698104754983674261611041316986297855680932473800860940882772567090851615888156836824962969747932862484081395840164758497254778448372611921612735223267446770824793847565910296995676144433985705983886161261174952264681457162920181740575818096909727683270433484375648987532449717637241510415372720802616750320868638274312500318471144603316877301656316940848609471740527338508810233559289456037039581866056954661213907472619985919327489857212893827801947393135945170944436075975323090402491918125981757803683088771628933343292634280962485387683919254621780578721716011351851370385583175992346934159045902286404844823940305613167745175013085884704645019510305077748415468931767020106766918087399226914366614380818520746393910017980156973307124604129662704537935726309254537773956853681598434389910322389737394899220667887109721692921856499722105857924871062368723257751629641665224720692238701811692169271966496968741696948701542519915376227253876138590509029173494518623292980508265974013132813650290106374969068951953637766154760432324614424125817958968063413029244835880734738409970310699583260212786237089704518688019061840117081894283171354594173878620539942860223420008999625216523888936701182045355760838508765954758401640672224229872893151558052786597446061784663254060779742861685092406917702032247627576407355296545317043047081541351806094660247512145054224656418068555398242508146421746939992936934036709574417650690746585748334434752684608579987014663591571916637401011223402536172418308637145192008475176612339706964880111687600518275696242220573845039338934202569960801472193375557187824303868295262222238390904043121461471881844259585001496323352474897598588216608676219026334597725675926124461197154009949948399900116510230288577735977702324778140990182362186442592545039343049209718462514014684119879260191866792577144840607037175834184607839369236565103948757739753400913874091371801092605049600360062861055387849883445526629702955938257798464541290942636848506342555471667742112315675509821038031310327576343524250410117840693908208179332460529965652701741205791676171710728390216929685694090316755257668871843068793007265350820403392134581257640450863957753506188190750353742880498850862102892737881627908999520954901494268967799416866763938023637547085042114370068722712521366209381174624042447087884766064394616954425838001710503488441348987523451178184926981324128799777961747041107339357079458786924678768168629530047924014446710615801139175664412816934593313907196065948343996691620962033586423730478408020720016486378564463012084134794928093082449238478450398502352701195285287165733544670631767023149775250998131134491492101721159248880635992941763458942100848453514635545727706906869337133601836641941131622468490209590524403427282833972098060537730811570747065779144084536107858756651055015032651436219500925506216190000910577085665460795267538078208553912255088557605191279484043784198859668876651811186360176613126583334405042625354183428160496994201625178368631069185174858242539163059670036704898414036710222411970248901828593096721445388598856835023399275819432276459790669747436868625261606396527596328468012908261651703476144741993509273693660823834473706572423574921950121463768151815943485683367946991969649951218482606447291335043122636338017002263343152220728382916794564217864551466379971383527283592833414147924832480272568514867277117028497247146790727273452415328963636633929428634760295726911091483010982293923206352622169988633448738155527598153570642499485766311514387642994810088524740835301910951275950648890944730419224465474987129065939538046464588715547047337564556261482916746833905961810654623681844303077350535867531006473983628556693240784676021692455420969776983279298642248655407762254542847891669753386363316263850659590039923202653083230385604604523444256985958566772208913869884605225689867248414471404305506135633198871469959307306632196975982269934172845736392294524038558602213411321073552388954385089470167306906807889513656790540543941408495793965008376161784431903284427768179118563543643207308997041127102568922184428837803009391646958779069208654060872550496375829463732026242842110246339701417119069473345096879189868359134687035855746757124000708517010168260451092970554010405566196039432346730267845420526020746388128722823614386307427564327434131864996747568670650089030028253971618561232342394031479464283778986950196259962400963941186574062319880035979790577184259526634346465828368638639400307721259445114245493323891280154337097238795112677164120212602182049675057054799552785759185072409211097043748312368691821041450435116885330913335409859191260684127550922003789206835623992567545720179360990594929863110876091116635023090691418170226357014459324963923167757955954687264586664224942741402396799406315502472578214915461388076107377157292501972566597701469023500071634477669939839397839163573445411043550955659659809817257673153656383775749228336005087739648328615653363301413617484015529631826699265676061374911519610840799654839564580698693025473959946692048489010426366766257895273310128321396654310007895875481784636506886033378264232059347916606461013634787082633039453162466873132923040083224786621178123616087381474734664741822973693804934530160757945363411067407607887776853983872445417648846998742728860742884503343751325319817210478683406408232200107597110628693176162829415444691399403214127643335481954514142405599700249718685953181855763516572004619180978831658984952048242725931340304291579213165101581434108492404030507729479656913963938823158863900456027866185126894003970042485188727566123058436391978507987322296216014867690073673087327045477442338048662914107459448942242754170187543685956800386708448155702013284103902820568232312648668230826527429747161821585995616135827341198646761839805860378979339144459524578265467275381292167891293886211734621171520666630503604803822652721696705676461664938019126789575964867788064877880705201007009080093049034835609311643720548639388521806860018493893637669925173741091912540174529662683527851591147253769478723518350950055305146211884768927035927683603856840024120516850908605046472429340135773960171989143160799846557768127585319771572391043457656456642067459782344657313410382607688641396037230463034799120871114160884542920652558812602087089535995232368104782456038058460206552948552511437058399939134059426612140938678909611927375459860963443627899777374277219536170248719573239571173130679783182505090749039676991810682918996050552387748038769930880904846800539101989431993415635901256537321154600300393199763363498777257789676824631324880002578064346007803397432023027173226195417717132530493200704222845671122383141744202728667238486514281358127296940589254671849638750519710303550484122439018265185417920318931873076720354216863720365787649949784586510035984991422809831549818341658395741998194789773647440275845618321075329237028824432877461404391610867314798099221828059403249294941892882850223197393926211118642781875824274063657653470335226607626240444202743876787263628848601621113152528729179795216794106926911638877953364621548845601277519164134570512398319018272038460625232546230920556335589388555096250996892263822383653287947888136596360649898342865912199316064936266349648507161625108902373010116432613742937377729672195786805471478670570934770431766006366521596028683825097472931422410447026210174756564222484810942344256672747652102840514936675480407136339436489271096955774472389352627174220126103566265659889334026936745985837369790697729556551891649451074111659682691144796136991571786761026570224879627217409790754943726987604646230638562841726028399473525788215540507795034627815325198352594012510024801580079297930050444012337097809649546855800020875884228850586604242243178709744372527870723033530211557075024665209641860991776334113646858656274626862394773404562774331424965865875172921230093686246995116195052107016792128313975780990707869347607147757052817933155520349851502140814214383655166253097618662334472327672404585734993508990271933431119880547263600562309518560772188116119152086255412524879841951651489056301756111059107567855391784488589406864012097458073978707426218084361365081345657267429943246384235284746686170162042455758168460377963477755935260143545851520894263634567490578034690440317526550274490564996705360560942923039193641340321864064708804224986422028717682166222665086714305784714508252889011743107539159401977310919460954858336908404803645968878825755383267403051206882776675836909344044352462344870153807177780387835371664957686148487826275456489431721932622542386868631260110671458588572574260332341931482687288595607832513516405628103582635080426060119767211967326388898720040777298187456109248496822356157322509126864649474431700064126071663637779478574103134726204163168316435057684248415657401311986024408206708653439597857374697048265660663225818577613887411981281959741378330583178282096685029116532938076533388688027803234807191407457881349657210804074462879383147105643365223287585417582889905581936683311939811133036060016900657199292861169107479815878156076249839047187069391205525916261523578755740736393581063478529882456735835259170563054934084087011936387695711930331820732230301772114182806755024274956283741438673334650522368862566294496496668576497925903728983148066102325517883621603089578330531702887605915387281288042357479285120236291066012864765968579282523417237879774990462441569442986346182166035998465065227117170345712618790626966130865552345331251859131712440495693319016153995995765969238655835508357227735083204405730192201293848583673949429244670237538872895485021759708890358666835785865061871490151148847544227516246213903567644964871162464905083506160811542040163320862495130039703209445818280899217793980738321902291359712203712063092421700803740094286499425148418792994680907057451618574534702235096692144366357605857215621298201771312681555637728700982483702687897861366047339093829349804201955086919220567196772113483135777023666245961259087138628589070441734097491175035214608381495822333286414256186339822380989796059173376249448720936028793834147141883834432436049223432855924582914395332553040568882519250223713126715148992638686165756029646478019517543838733447400919139378238077183029713316283247682615147198454729589577144873061711706037213391220452308456774846499840978812684564412095924923459874759570276217806880921884788237025398466831342284462554673341945209237786271258016896737858003290689179317020827409340219111100805130499136196440562769874728297952134030984198781195904213850254984717572109392921600005108705151101784551043846479086908356363988453543912266925201436337442403925660061972654029905933357137735972811817979106621443748983433580821340521348596992119759353708246911032449626343737713194993858899885177904449749348292464815969535573939142437308043580012548624123730034664108913446711653956853288220948440521405206799630605159245197218324223819154610336281748734527389195631309443974575646703923793622189401031434473067527316261363199230574959585824506716437250053736275623966631734626233748054297308187178583843986836015009428701862987793106688873734814247219831615965940211267879358196756098457062697907394233339800280696412536621296818037352494880909397509875239935268561031524882059881144633951190387352735520676125856999163893509977912361730060949955909430179532077288998430078114530992490457972594063469300627891607929499959046596778423042735323483346308198253636552947005301137291225623581884498659738961989650401288774300918349953523059506900629995853045093234352002242956354355698887969859896132490547433035574031980289332002100799389633000089490066286635763525539983927349358737517994453363223030996697662936663077306990278342500457210342164058067214816960947298763111849601494836598371791269414299161123720847159247748717417824809213372112053698162526110005387374745210175509281877056574977123615209258164179790246280858226290883344205262392918420663597343199571815565860070873965604493473512842617401668537703745668132419775947851675248652599828310867970771884068420283551090946543927419633469185019461314436421131939219760320432603954479744272623731462951098278620098849574274939462015813423348514047581054604437621273517602884093715978140560499803904380344513616653678504846343926030101197672042122571923694086690539494659928561749378527305333054167225373130545620132229626243052962245626503670277328203926154789174553506795420745291050474804701635558413567724484778134861124622426992661732107245382004354363445281641281155650429012808724506993457672678109333905612826309502874342625197125654838089737990094638402068268593555765516364535196267466231114700686929911689785680661266135692096669430166821014472861689477911990545993524891847732902934739570712097024978609196657668724060833343674631006844910445739358582907443130186962895827817283308697280232225897179977580101614229181123711845794441628921419217159982026998331164420872758181931065309463091329757927129778377022805379791768019067309444721515956955743395309563202025884503553084614950972471604094843618821571848158605247369940898994458130874862360615670200571871928527542201098393793066482207895586029853878053037540984965853908538682084625179110269253591301288290657447797820300206406240248229179696464832542582549859258031503042087957180742709409256828243964724486900658273784066592165598357613398075736284050896351623217765313126861445358084497369095283311670666314319778654524515010341991084153365181133629072520116459842756401765415410872991862464200834021953625705979436883738020569378477525826426380752625447607076217305604712702115912536676310419413872201155247813443146398827543637185401167630095810418588295451825135754841729903555724647295022394771560311082017990975913396449155151935716353423378707505824430119184201398347878740485193287528000471808350747177215439684874002038642687489897734581931144634424760993706602424526655810511673371683262616432566856849679628647072455720969003601852594778968768709920650413703915671568320471126200412157864949565437285030770005371020843928076249904857331083082605507831424113951470690090873796379773926715633175716286002491288279227909803634935511733667749087078588824056073555054580257963826194357786944190881929446570035380733996829105732852281630747626007935059992172219830687790779487263893399120894390830587653502404927732156999399379112069221961040480333581619380992057925100904186746365171139697761551472572744293085219977195597894435795698508973008293238077188711662558929542505580627694618625008022757300541261610871166568067786318834293882022469989624715420823060398085264237557356438959773302785739427121145061280410760901742708612332963643709149154648591544141644171922627368748284070002243969158935995615498595246865393691414962070148621778573506092937971614159148823325643997623088203020745252383727029728175760090158214002758539761915356822165712029155236715089565108136225198760246592703415140514337335673238920752364848028398951110187262190849756229707532207121574684969429433168219801140456174826007853217599805307495468726802057542518798699850035723710398117064224807667302529237230011628001512051302906944461368437938645324353654546090135818864768601281868438689571049958459312744280713049288037338544701947842878584704775094774818801713601209606251542218907203117316624108234728136207821854920457978933271783585314895099204107104704082922688706101913396533406084435719359350665552308879129518876264776604896870950161056328497880992390767885155574312130706764843549504235090606543712490850714077066032160075218760287814145597073727272851180819366106569761598938411391853969727016142158180858035722899117874929459485358894217785043111454156627947761663466759025972361646530422780940225990696457995952617805363370534027791850038597227518950880014521067435516890778161854721806661298313742663650348735640103347094667196006537675739650661566817455842405516687455234535850209177581389894025717176366638295743476755331994141406960719114738614472668342893099010524799432175355664771976510329692248252644593386766064809790619107574557519620126616827237301814576896262722170884220265998848314653996013244637610216607053023522019901554608438382730903817265292290431666380866578385535801711733655752328888298564727645162574121740121397551736203781625272123675294592239219467271957064708746337193345434350376446633419850155027219788172968545185205757134148099457068591193851815910700628285157991688846753387153468481821384278747318663660053398039903526997729251123952980598773421080990869610867927003536535212753565167202514793619871569789071395320913549632253164262656822835279148846486100374211065018189828636884158818604981324148181307952118438349484930865215271938401093525269629635903684345814689606424566988266546357364903367978218849017701969265211508556104266075477798382287442408093559648866340105708940973279815207494163492219997122587851124877981118811959341497558982621805513660395725079951882117826859115540843593499279983835161922968539573203428551161797333694019975961564604278606330991482829810956601229174598487237272023027926453182585932527894019957978374663359800955166522555458154456906267535836273526017623984555263039873312985393238991111577122306706492151479676945806671531019693275071152827983816603998779833641898673047225204828669882517155263792901813153615530588433204421133193042286272235120507179954179855451183868424757534287558668947746927144877062993111472330899994233134671701436711327634623952452450047426502037751455473933694697216460737267022362797938797216378865822827244397665670024335642231151584598614520449305535296189056010988085083660601168532989384152622532670093689852869225444818177068579143894604960744860168590907093028342264183305490817490215802259119494984065888108085112981432073700048818412801656355079187339995255921840414923370469027812216433473524148555554335241078277729228992254553716354826925394419374877096279379202078383266263824643528829261685163460409024701985686338994339897199044077084919487606980493356157064192650551085166702710894376162640696909929029876572747301824892205500400641978775247511837389796054192970194351561312155322460653987578567665341851835909430021621277565529004913136401102380409782851934657848569962212964388695654992174475687185808468332727103069069144049635996566781523729943018351647091310526311564748082335699705444511160888902933337705613331808881056038217085060287087292537943302209525723343145449297554297835799058239649231025283965150522717619201901177530881170905614285816766709497526403044274719969324890525234813657336386999763323233629350746537596752176228212331326840103677554130466113340349145878206658169122468223405694107855734298090670490166746620267840900722154833485402533801529267298533766101207034512737276102176583878506463010227089751806252273834571851439077473106299823312064372790615810297352325367463452500846967712777755660018235606392971427583446121223044349785118742564587055083890814383858038099574073626759674232985278575551208019073241350696498653160146709682151116087306684985644951189102962266958311710597213843569874092500422892111744838952866056985835458615049866035228689824814172034438101622015822408141399898233196943530577518968253391250876700065666479142411199262907348784112184232665324894835577625837008727252408109285313481229390295988026843238207247637045455866326103465304233283487907232286322009363645576282897156640364746641166138364503083207356338786877480895583837754064008336067645632933739906850816814059036743802345273339727283750079655656830596688903875856452470651329253423705178038619043830291678214832425214547542675570009283454280921650695698766383742009906426109168084819085160555170640584006866452748478369831147191033538078942014749248861085199407236147577785571170752344816354730971259970564578288183816690156666041203799994127429515363191667567885425037049522050098578284293734050664301540023434071398189993471791407034538401896492220329502422841807647154296979755642852096393610063789023848165968281640078604992229519593602112443237725788906783563058212766163474578919798551732698944619410999059487656910190355120831537762560644222642762132337296732034325629394886018030564640602310097062765417753050981277762490605077556607276653000014390584493244467824691514204985952321665053397284226130042675388350923836012058324814407403700997533066159275967946404901072115205512110373125675813113722867174954983293237131149963084466224883375708649659248556326120561000544582203241865255936820744304711801709303132381600811455895321178500437281804209938126972513361199628543204115463952001044947359122299258823636429385840049963767108074742015998957693117690470490316866811345087978655110563467462153535181651842564174603694069783957961734573661569220165646947817605262390953025730982475579926241781602340239918163090560620813291001213536551640375681457825952762572465913116096839714615527840950159930673817977713915513708832380097472323570484009514064963691384745262267647188474999440840821212106369799964855478386673178091299528940796899421579170820278294958272210396301231829641320074219337653851562829246487277649214404158160769316260636519599815661893489728529035822491675085672038932133072167128829867629520964552033633012302868570541647532722964138727119257083818403187578615870906341177197348949034774463630501768900113521221407105671507915860704615438069994194753895234227347236036802403092598381973169609369422620173087076450373594222764205471719980062152684158286397316792240645545797067768791130144237508602300439507063753144883243531117092194750108314421486919854346468415035394030148094751915334117801728534060988025864888262036048549030198821553098906876383617018234369119564373792924624127333848113829233968665591907511203920960999909773929363154372304703788555224899338244538384444070646908684047530050682573171606914245496964405806661030423669292785695129940581667996037302408555019681329065195203034999269008999586792497156881113577039281682413016417064377889386494511558716458241508590566659004101831374215883016009233898077476193062475866838841631353536901810333250354636623562915458073877790654576660083484773973252072256045041275472867839844371070683077428512767263352487262180523578693577187922310026327672484931498487865257847093532900491338301090539785865003249855585112517136840266655804222587400840763111125958970206989164865255086946216424136179692110759960212457897011000234295319421238246505541072910250153714786141084829685248453438173932590766029192683736717880879895686836484448771147061351427721157120699723285054803961811991100162137147797647315262310398453237606192770383443983167496483140648845114397665955329932902967647914880344124081394719574881872617235693179494163754555613738470552804637995627558230489951614187510156830549188895432245443941312974975226495133594209763435230052527956023337260405285308800233648346373798047794441504038022296181888584835663290345136638156904055975160174302323567599079945186231359547721533966463563915106001914803014264117589893366492032005364781633852777791473242953887526560196856888868832309822469728791307583627624929398992991151159497334409011599765021593583785826065713849446360220434883636386399335090342655273652400430778643824034722997704414464011865810705055400206069713115314226527851416513822408513412230264602831839917592470007723543157683015695837358408821458489909537865476159219431846622067304312009119397479320633380865712364457885917330396474357876132521487088138015958286311338815172310697882633596381561264068400207727901972803614756802851256130843467731299933917506904515297855565382985928884472022074904681149690540836269213793268530667277540790064000572293515112165256203013802705816942088563375475493776521837720821061034785403297178345793979276140492227075441726040170123495326257900531888394287887340006315349232427592588021571535751101283619931640644142933182257007236813973633880757440347166779315548966441012585792177900495654112446609761494992408596800532348736574816976760523383802051187937372630611590039276290982020827570104202156477148382652355874915232079974920955443939904207969073816408755901515835107672979866940332842121353177052556740896716315662444193988185181997675643194300732958859247796799166240571384342899485301429249013837637403570863502447094584376413848376614820973595265567113493538369026004083298361348596837165012176606399982845313557070477435361510110318579779503764987490006496657886768822189270916841256185337158277798186807446618238374609863586893983481655551500662114734876734483779374966523663092167452452330534172628857276310985820203381979514304361043665313384222563771595254385910954682035564292791424972350500037725995372978775989852949642101173017344317133610406427395687633033472095594355106884643844990512446928352801781179136912163818802324757603487033228999703527918033801710557226215957513009826558098643193900495423354521077546692124673115335744762737309840901152624018064127713755496267247868367043030038351547257981054730743362540768238720578696357983871031518869498796304957098148459937890182623535367030459940133067650273313450324054590273669754976376090231465517110538323642939031589453731489882610421608533492635954978414811705470944584929257746289163524338960841922154150460141296750807705522495119911061271650630237989258129120017601341721828759631893482750988378637399110310049174574738803015835788251729838805031090754951456696171464489472639898556421824912310037435496046164310241430910176493312053808456761322562209986486236982219552073218805046915449381324193717252534332485011863028826378421241300248755636589315353463693491432631085580470117206471485106514534197170928187511477153703733477470497525628726761285151143027033336648992164426481929692226243014281203945675658244107717706414763345661185050091645190514598973616463759499451774914737259724840305942693510147827242368179308146986256570299593263282116117493514100848208849049736444713446577772695520514468599145581885907102328441241509649162587449195077201980211880488197466532638942037717672931115053868740082144438467443647909962847321470873170618190443686520320372577845207057521604728423583136659558979970093521753331557583441056228831563041185134666997808096048185821073281950402557829805188738131569172823554175915651848356885564736993552314723485097562917466096726867734266662385887123142437115948729106988849225380009461798661696533072989392039267709918808354174553770126131866586007434265106990305797081344948634618072792528513908139227113775920693534610956570401421435186089423513323989892387233284896802235379405067706729080055966079761668530410479371862142861231076588267669011331946071173585874613492450391021041996637280726976832255193538730258413018918532812421359620429435454736685592249191374058800065246825688477077559680498302816753568160018659945884792907691188766933293711678550058238935523477695373622738475774221411061832711262548117727136623890851698570906469281901019156364545093985757912647468452199818466465804725293290919102289992825430827199536474550601038199742866065465283767523260514610743242271111148074351767774311814503817753377009285353527563979307471186168346605837940826687280750025610080157097463295250905705240649119399660469245946920590496169759954242751827293915342273154063335751916862923110517328759739339098879563134600777521369452923558180457812813638165946644629852289411256802143417537704856784164621989969420404522200466334034015893493221199903808097980726053630971077821081619922260187546108224576455859372697689907398121407083096946655436428387155762378137044736705225972833046514178417664196650512287521242867484037799234483673710975034841638941470668934393670139133194212757967078582517323452941240032121142147446407171401062829602692385660133744513991980861873339927197305294440724974979352403407507261832841091205336386019413725325982482740214509186075531194707744495024582718593556189130877154856579313977694249012625991429119374311060301895571100855777729356373617900949441763030575519965269121901128923650888994136932139757224195171105941184552310930385917799599954927479722358195098841252012914016162337374541261004819611983433560507474900495607508062741877791640235494022935337288779652269612031856546302006503244918363629305370029997584666273412782123582900910760186069508833254660834610466320878855147489513291264798645214202905753816308054767384813568859828676039545220521469308690668790823080859792380904924989579751587687358998745849442271993909458917088679229752516537197037359462314777217626293215150064664633009398321512998900607847198472175135236425151769988292975537472933508200171379091330496341102192255246539157607948479259931386662869364374737088514641147832654660354295201571734440592510667072331962720962969146317686930372199321820712935188418975576211881074695308516430199055128095569501449810678771533387789296863854589024827090729084942880752298117192519066285311921119438920486584239264974315282150334567502962431332826911751072374049136661068142840129095543194558628394989742111213766427674942682094966949772209199254301745010093564863159218322562435349728268649053518969624656205724274794073658388002019540610587437153091421412807656098417477229116442899589979586178005819904552896315513429345382099639579486259512934968030681836728706635560796270565544780495913001292616933310980388276247110267034082277493322675995661501717727084825393069270361552107155076126060511782508283990312271094212694550124915867083606077044591292403509464625325317105713464537542764377820241422894821562675542413404479722247324555277230133435000992090911630586478996082144915706616489912321969981939785145334203974124144752026051959013674683340095535650052973742768159181057130222102963705278202808107620671471067708623193650880007321028283908234594101153130747136167278869406531840200418909398998908120318729869174577284149509317587722761094821891582969268753276552402860730013912820305766400036325971463262859341094258448709010322688594053444411356488525785120700544624732154497030651217825461630934589254415937774777955245450255499386083657863378941037306221704097601624372354892093660282142175404122516453313536267267104401666392424299049697456433979270509059980785228388957673752943687767266054670257718190605484377235898316678584595923250127985388826785107323504749544678521654474660667357674347456148419690382374999945163473233698466829333844386020546678881867979132467368129358338399738123328550316203471091474819069439482594631806980233174535574441221695798899155378270958306729181837508615226796009830021852091216821261411551155696342006072513330721257165595612800410738389123415091640374537745098690820548851531441866315736562853602187554895404947882079476828157888330223766273902305547884162339536509954164706795560485655233026587602978792242125820950779134054129865126792335394630567409109757039244839996582784655260201854405081518692229677481890405372627684739031604194495818038311245721272621742472045590242012899331464898597219350542713886343569118797280488368245575537273691674776758893505437896256679026471526020452690689580232541450820954552730560300903443682084601173248335121853519939745419759956418710588752219990714858184627937651667569733511922729269989068723851928774543114422456685903930395399251615367361362876549537094272364738402119171525865629804361062338494787497938126613924103098945672437088192128114125374324148355175007689351801983216536082597511416389932872998417166785148952796503774669100817954943843175375893951664933736979910806717797998661294473804780959842729930461227476845428560189501303631553125863872015094971101900986709178971938685685750066858646378307062578220972569552169891254250875226102422954732787387156603591471338173015707896596935475697239864218197660880919039617299718945679142905621392783418907150077779337129613254306755203848808774906869631474274928020249794709146481481998564378468450221156129996716530011995858018890940752802262463790095480674974812286573170028388375055187381831396336710956899746643485868148699896673002727616133941008887488513194459876902428794119666424762961196213626504307412213488742012062701067510735625189357995315944147477287445126206141497779063384978907668538299717644261746150000154647046922495180255953134917436850652268054627468988353679323936177362369248313949721403033385547641624813334947984227439892941371977568600444179571152739613783184142054669361567124748733600688079563445875663421193917476525283144093259772062116965206462933171938445705028681077903016705184101448854205960857122276412154410277446523384932149733101014635382547952291628701845365787938184912796356312704707786123053177629189693243105728598646001052337290440991447873577669408701211798897965894799231531276100546606837516694906392429470705873850215180494708149281306760768009381902510083951305974521924686639057807932307611090429861632003734202576991682225687641030934566573888554265979841239055862696051678415381694350269139992846122548205313347501880118484183893769944387256284480174404439778574560169139274751041929740067723770442914056993216391743618229771812069059606646309646479355135930616354989269678290297790240707556582367358180244790715275674323351272212476877941880525011670363320003101542256240838715443273154643113905166840707225724446264170090472515868806876158223555749079039471053165691480794698088706747133414111487726787037078896821360103180645084586795641449762523218450515509275042384889086355284582702237467444269211083731528022811672458863502019275989180281888509322494448733393437458889772404211459308948724865734573093727675432851452722499835014130081398537776413443261275545171555743098944421123672682754503246925664386155416058076695362016025557658815163780252194799538331332840645329976522735947626760270653305581152174387834781173488613287432984301899732182079333823669105860576744899270384012346738723811014820397096428762028045323914112505058517213216986607215019644857962148037426475661832102629368024146624647642060381311774517690286874913562596229550484931022997498711052526463017102956570685205321141617713085620148261633889654997123923997004098803943952315180819677084217479724730305978183627734711616315281155009287877591059620566025795092512796191538977923636371716610394603092673686857825747407465990531632888541936407887540638740320310683186963840651660256696660513051106090158575616304647926129250566763431784564524715111940487303649154923576064815975236777866082674245500512954983941146838396521386606168983534486139130660193275724611792597825409264005523011840162225309904098946749170483490302882719169676081033585231551885790750368939179618949839853399255272960046741061790769017329902310680029699945114772080492731274808428084129558743346768470177280771810530239591691979632240530537747227193819070913354386457683355123732407306252715859954155944451286156535646832715777702663251879251047127474138886752241808970570303037486496135706850940159202731114689370955726790644318980150105648116483673711057405779079162205472374862218107984274437586052434337903998829945387364534174684472562077551919609145063456593868388129189448289198977474612066317824487609463515096217441831225423509223473841876174591913531904803281933212617505208630800407022874126967503562436030243688927335952315840794633367240434922412186293582764336406985153382036002877295693275105515754064317091800288197821881405632468233799481376844960087674793239537655328401986384300691501629337179344015834951251142660839848162081021799014080382048184368258876532225437988613709232869494518003261525162350552549863051086120441458817498019174655137812824017542956309974430372998878038971072394074141528976292489165827723641956035774806841866838364084696133499787540784241187459155728470355437088111822510193347524870312324281537274808271878375490239199149515086729137033545986024563177971312030083893798817073603732206325989112096141074585535690360152749908648244757455259161255319397188951738639641129071158878572416410171817558613994063664629467483096245323364248795137223586553225461791897425511560550507180831695895703473492444646176656208265337264698103412433510096557910829853050323499538152947145571030936535601338330410606690055027768493981204183456567412852379576108401092817679924417185074986521140818773919192540752696128556154902300979562933578141305941737916869833410438790911184382660874300540075103496248195904944361802906512827858173473505321341594133723798684228810196834013732846841234138016384067210508898046337153695297855248035545608675631244225663432627704257970434267585297843491912499121993906911167113322390206778428507451286764145853175027959031164521630048544899888205191783735996656472107434801586353879196295514509999181933692602954536795418916038376714078880006402275614301849623448120496696300090607435197182598951769756367897533261446010288506147323881731917670108932694154582423999074255681444383942652111447756823523072298777662749833223406188941156570504254314819966487364321961225690131086676490853219894482919484417216144845958376546204157895702032776603729833053588004225319617044252526442212033839645918407811826415407593456025266142755509663250480293686433071541169223661195498649728114605112528696506452960505107348136824350268448143894944741838200813711804050006517539146138634035918966573659263631788833972128536553116783415713240730969808702446237149777682867476164732198718756428907538241426092396678908676410327965908578557542984912516416586853488891998326349360871300507659450728189699620395698314450086518621546503102972043827592519413920622081770435585227523193327620568548057127353369615846396540593397816078562540208795869767495046757491998938119513850412835990414039922691563179186093947993216203279268122748816582908434260442819781560653057070206447973513680829151778831223231328097885940582288958946300205901031506166229576717062711587834630222203865992965095498386689405997026668849842219127560144284281810190190928007832317350415875412955668743819304637512415441439814437301284805574774746080876733194653456321604995265665990091509190758443700904352882011884253110092416591008144161784852135365784273409453008981050829638765894771335814524659693356914365752618256846368802096937175002762503183079714019577775352985203744566000091632455394680984942410745753713884771971077073896526113559579145517637215382885989946999491750876616596482520151400804947174395011592876549207438027758008441763600903777292678830391582333570158913313386986244241423058529750021521675876807953890778878437046113546149505434549952884088637975188049677477046755672774342121791072625791942317531796369803996953144872835557986910921239324057922338835919322968768974691894816512200787958235759750564105796135893572312635080426895254320725957358351653401683888888432610159166171320947201583229994684690466697822970358208642216210276516498626747896806798637824976486749760253381388412501438856069485730949003530875010755536645880510573210701553814240305680654627138884355753719287230124012135668470360140958217876012153639770146856179444215591432156842084614545305585752774011740289370636763979853570102603063056054993065309231686200352657703193697365567557677382677808761649867626957470699567246470608322594168067573705141883895272860732810984194053463350975808687263008063823929287475849240823032510257878073686431254723161178901599190307101561695838452074254132350873464363405891746460692662645357631158963080207162087734170547972188889976118625647308087649777936730850783333994878067418941045462673314402720358239274402813018082603629525189171662690097606971360083656548938974274065424907826411400981642844261974144663762089373821788368299469002091516530738100128631580463541886568548959765434035786494576034427555738792563474468254206144407749709696371284370570181226389822549838110296749687265269938593357560772411412626964768633691598959721967098359021155050794231558361945083923321246730698279555273520587308004556858697004219594796700810471765432058251851518909323444983359510852710802605301979930608524544356329442073644492551446501679973426210523382946750104733090558551390553702795345455938534700941262295107221498943758622847590884655527862049455030684300947129844190467453742781951635662018425205096761587928924117587852223546949180170031881011139881639297255653735790189015391793670397781464238911225948046896697714939420493260096015300190706947353719086440049251171035005981447307944358727060436026694527298291858124544571512428857470543891750752892096388653501363186097053536825515832634696424878805535816811248850488446440294409169944570772844502243845139339481183126063166238319484188933709928072373480061227930520232979729203494968494664426103645100174795914705271297074039446798614749091237769438153725077700960529988268410073105819802784576361799591253072618216726873454117423896033423095206323682198116739350976499288859499271443609812973903685506629887231444160456152529035049095941531926676344641506065181530265328339257254926010522942875375535169771974344947783786777951630855626363619943885289952438753715231463925774413783497194080936281212513474054526170310967238671064296882624037435412492378919821137271849140087162321836662535884518825119185589436835267933939204659681007007313959625787797455460697019393267160936697847112891305006968229716508789859170513546467708931262420528806599316246105571092758548738078986389214092298594814958580369744008921229547831405844618446959563994411109046587995138077700154724330389802141274358938509906777325886895348802729724890570344961301227602257825197782465898058414974066099351567617271118106842711925398002700818539993523502092444865656177310545560366680649779544387159798746476195742592704019452436274401917271270817772091970472261062676621126491380484083984201377753127270325355360671637704480096670247975645732605486238721214796698621405986270435895952880639054859177311192584497889661961040629103654554250568728389672633703195883359235233694547441318155670755337240414744360530474505348591564898997602050717534485376684577969685829219595242461340088589667575164606622102232997420335628740305822238913282429492179624416325999756652131189755601976370415461903854368359089419701421344701408985584644565479898279819792493781496121707302991670554387973114826243182313883513443680292132161174259465434564349060749697853873320681432964663223858913073824277461848002133830424919801813362505764944366338329639848471441682681489811432073129372838499860372345209515914077308430464910936900796890951566007841922642669765550005963217726423960533742690207077278719292291625149023226049358553833271791009089443252721042744703706779245362090828906569357395113119980971924206552596047157106194592580678594348658370358959883195791690826172218255411311666066397431160857764794719456495208685435430468630767371592129933705282018459002409549372747139784463426895925699864519283820865677165009125490164728525477774145159399136829488804318366347402863253850496111553386135555785007049553719390786063761897842382219064776275467593731173850177012638738044831186961775474417513424174839530440537998036494600165786221381969907967602651630362756282761682989518462483188651724054437727182139973866256571429019753598555724601894346519900088450271485701485817547812600165437642504353111458173527723237136086382499569170088532893097606454599793875619563716697671055524813507030622668400204132427245047794147012740506389997634229111987440830161895283888312945376101518776003380388898967707471131665836339687515963479328459643135494056216845106137298409684942761071855604322848489162623778185426188100571879189864041058453174414988759806263430372295264621277592765708024884824197286391496760421091829968030787555668755602057423064387810374569505905089734615591870237964090657405837186524159588636478666467224991958400186169223645785492803754161439630812984293030272915722192282591943449527063556375619420854688498988374282500623061624918212319963818888284788102520789563049752900689432006746307908374529393130826290983201895552805356870593091895654551685351743931731607299184923645399003833677250567343234697874245932813533079463158986532266547826629241352361313978077504987527398597848948009321910432657030933844479523789980895159605951407219189444678883473687543074737497135036344276009714220494908964083301095078199768031530310219188359021188098580364007881603026959658337781893076283861888348687737754791606427812422040723185789047987599349003339573691840002716445550115599429823719335385165435251504018240073228572671131007276574366090566899661420211940871723455172255524942487487002897884703967267657251547159115849117424571319262540482468501893937589191014020856353722204983158964444870118945104890857901429170027625993075686650080916391965256384383864916113938531623638000479677561168638533077343689407444539501347680722794422305581983680245498599047253218635899270801627496873389787207071486747271267063737358357437891578565441563808055965531859272810646340896399061037484840625140930192074074162388112802044027017126746020785434710466755215090942555224080838131305206199327688531335872817366029462526972309691055342533681621028137912460163543503858442735632955557399766142960483220396172802943159026571863667421035339696569615672609066604907447126534756404163903787845296779690719854312590796194115939785698384209330925326880003525451920821761156126143992642405449403233338442521157386162763881432112264851343787614562969853061889177543799661185634674034015376774176631659760542214968969560618857726103143758113685413123997313368996588598500474957083992785071644449713994088328839072274891874124913324387601075775014569410014833851155442219876202181617490221757761434363787729392224045405797145714543177590172747734149369108770332530377647502860225622286802781391625666419258702255390219635113394859718277778050686146998371038043419733224355974598306363378482490199896336154348440674680129208750853330064880846113168974176380030227097070168987993905958626367108862471239277971509063376521500036287870811248332344444423990271425564704394597011637120492229161704379555482848637726877002826519470176289917565672688769719450184092147740089177860613809674002834719783277830609710323101935334516570313388135663804093557388545237682016880223630158893100006445131980754093145117104232859068017769291672584203090326242082112222206638933528632799613332720365686147758727036391496536179031414096077345504081963918075017475894708718447205056947114736946653011103725593756127238160226361731269488893850317281192279545795596779240570298758496633574075052413077461844508393472779418066523377769644304537240528597240616629967921453802872460212286843458475290017577185969939775166402888158055923166814980088843534035262183682472727861388932458476543914207809488470891507141403446829497559504236679629856986537182977103613009732089342756677933217239829821054388818021636070720924926517286108886037098947500023088519819086431401894919828948667667060321109094638737699219266631915226019654971401037811890748047866648836633702999355686883558388388893480550446659546681789948143380725394315229765765721944092657273852630306733234486724415752792623088131120257999534259748552567720675203810487681847130694947269425367567754317767381861729968454335763959270382312136081373788385410677864406637762484203947798231271438855873619055352390665514984655682246354863882973327367211148051734816484441004943654226109656588376390739113629377800707675109327947079649050684652512757944927446739291608178341385423570149035644243853330078502945802394556954678190615214365007613461454210621771716793892935286188504356425931429231704051588457835698230521067774603716879133202881119060207482554713658952137199776296767559549470642574339817252155229344584749751865649617067491006205583287074149507438112584934915060377172561923329650610069105028488748006537133446624906106104543957672360586766696503785872522665118010246933866404657432607693597068482072483902894648946313308409169108463198922261539730761665009132539235263808783682760393438319250966909532966984387588079606209284829321486501124990968088621619520920719090768759983460581057475832084845468086216761070081604984471771290862472355328824071120676552791761088870273665282249397461323503268744462480605913764119450500954887072091453170941964967060437396646142791997604045860363935493741471666887645704746795852912649625064034886163363487574522110189716805972086595932492687256608362023124543986154852882128684697704510439900018546597203375260909098793285408985162645264500603011404411120883010402632484838016865021921888271984037600192248465342034381201221701179401566756566273808702987185404080665061012091306576840250775318767745198133764702410385756799768547016921285000009982016465848440794577658313372456483433031552214986829979622519488921536953301558824514425833736834222567835292919825114218614265663240844968796419940569381204877294019626623686963959019883946238585307758870493326266996554605341194305592512942776851945528478494199373286656797290310564531971102959436100193604585542901394279106064406774692327067208507731612838065374605475670658125112394869184440224018459646692054427825298730895803776965645835722591272718470683404735853877868186835371572346375253497990316000915627711553643372506956268380505638623827848390689653820827360883636756080228208001649014048028948439343693595663413303357805429785994629191738836152484156558356464684390693519353233326322883049793468622569423103781704233414800914177349319008848239643438503157760657935934291953605474484424380963156036131755706409778911387168031612050256445299176333541791335477272114660815077836934767762555738072884035023825198975883205473441525312392829383762521487233416703898241178591817567565886979339490517950941760780754636584403063315950325474653530046545309691840864536464011243971985479769592866145589140857911130354595715930614962625988427542817981379860584168132124575950086093418389677036813344148109789178492483609637411943003480967855986821586771448710100267398870401373128434056485890304280003082013766073801618422809678683626969524013811944498098153432460564861048611851708248423650211546803486233687677077772939877484445204614127632858175140927416424518604577545502785297214756166945767977424436245084357406817904344831865500164222424475441941471859272256278599041299173072742397491159235641492195587337969832176284875981218162433397624856294532742602531533293573135031374001946250542161885100916731588018000028744681700733763872498436743041093881307116859224359857628004435795697828644361456826474985279809579092759108675724223403693709033161954900861970056183409546576654082751867327165038660162004579612427709430815415692704415834096748341137854183331418671320907434173410948477259775381093057241951446894895086124706114027069817694217690953468675394950041068095777236586632237963465152922306089939859272468589434539950883919352037979554041711187503746604190260719680545202628944402994980108628394354800812260167215737193264941881692884196710188525838102959086750056758419980612194792778089545688874587984084748508501661751581727464448831969823873709856013031225965244506255685786854708016276986001594986767061788163939155644786770013076263522807236499937133902576331162844379504137442987804458445329283866925639964296215356650903712811665068353325530372925222658875191667152005541622390483806091103753771406485404438667653375413087020710024576961372573118683295257329640579209838380852262624164236049988767842972500575210822387873369709869518960442699007029563930878055341656138352399409767271904885898997755917022848587065247432215237776418317889630051126884380424073666132977608292538668269907955070612434067886451605587692432061839417284794631641759684900304078499474095823402181022984610834019077378853753878317851264206570104899388267323901778361325614400901821097088200730913395854051909301297986224103219264837265813001480932139229796430455631882189275580444908587321226212988440881473096550483765787753552792127747811855151237453406953229363809884029396966786115209179227727143408500594487863887645028389602810788255578249203456508067853818699344142448755305706209618637330391437810632504194193563189924625287843744747715082336070548318582899134984228874220729367763654420479624274951361863543844268101839790563776454086507678480128485755111506559512800442581263117831196588625720860873691405419654236855918744802708093106390587137933032506338178531727998403759830792411359240930439289254855854129395944894810379125013610142590873721991788791181040191586316630649234393934595551145881406092170173660555692107042432033763951049711500827906570991389670749001107304286070711907660177578090597000395875695695457409212075244037195435278562950662999868283070785812592282821837671661164052122906416425807670073774521685005396404924491716209442651790980044618322131317091849378358013796839316008310211990775513537962630177042752675187846879194121555874212246029139596446357317222659602845676604071076197946183633222986257809496532529695457041145544164348395384331324611828945529374808176436685879636249018266753393053559309174449570124564009990455661487620378155842171811517336533360771485012712852840834837223232806169429116945894638574332416254202635428192571874314914180340950135798127048645982787803875740460611174854455302367326341396247850783925729656487370267116749506974846318035123129510243970746153361868834898136024791635091193425258456944323076488695808871528435635082223864837685562055886392012132330223990226245480006900338933378219156771077474799344998033637574247469118307422660833012980462438056135819175828470881728440502147076485351573863455662345586513500441037527966673541693628147292817827635020657679026005159622602823885400457424622599338331175475442296278125304851314600764976013565337051999682937372748136256244893044135028388952155498671361355141929534251219896897943067848377108607761120247093323495452104257229991019039375126753174653729540913575678616148725186611150428161692884783560607049904710901629678183501170882849132173413937410252202612121848918348464697049774849219596508502205119370581490649224698304115563790547986749802018211540540443030306115554517058505518378998215406373295866124709853091666041420813187077218001928158324561844899762296823406150914769489451714544695060538212767099411404254323153228782495749425026883976921189057677405783972669861298000499806179596346983902230640551899844728664074180634161049357170627513432072172553074937845379433348920012594435976641849040309338132649649750337626601111169756222282497649552217231694191421145108260599373537580368682722625627706729496449422596452483984092858749871720362890672688901923749366396507368786383951134930015942138187098528751988852473314910666649952484604571773789368514197749086863789321353254065339078271668606262352460536807455906351975328194850876610590147320052500197435245609863458195251060474416231975234705459024611545784009808826716678129431707741955471106265612186919004118956640057375175438417193301805063996875904121371123323929129799301713274488331494145939910470813660469637729772115429600363069940354878118733965785072233111540718640441491677864315372577205104376079910605417731082560254339387927155970854619283652584455138733386338041314534948091069484406381588659732564422728320967654421223080273344529484953259974150914661597135770641905640374240387365167635269531265341136166150331954681112096888399455212857429161804526369923577239919267602054628846454188854324852954689839026135049799397621410313779999531632068490738948224650890935856189481393701582653095591526276710646583512723758148524161437998271486699971888474868023830215161387434738518621664980263541274958516902344893423105876488229899028114326985670913679032109774910124478338119769974490984065912215986150532404522320321240978793135444566887950982714650762924654497807705675948511350803836375107710567335902111694305845175443899912855530761498900610159810570752824616154197682331189953780829007331736449192317625483740109754136160517624528210447916291580466234041369477065086553064749229435543064839973610485937859694909239386362121984597389353421329748752547804300425699637977622839787373832890582480086468172010801304141354434203025846601207828234346043844277921095464728308806170605907866732766689676629367829834892516378492007324794993210380582236197082200518170369193943157042373068232476389806566025801585301378065601895379018801014438946918709462845404052828360403548470778718409977120357096980390936925255469553901461516637894730918874847178101670924310474199681166725044509825237447665267624415319565653380682330501072071713866372221427218878401615313940448445878802620108471047516313446070799535792241174714410467282915528614867022585198767490809548680107371081917707654841508720447620437271837065070182592856291733133981708945866334638688599863766138930328858662312855700598031913749641383891853693179106265647395888684370025937868230377533019806201311151782144486116392556103569965105568596538334810300826878639637310069185001982764552337389474682609884578067410894167493918622913626307150545044744976755385365576201147108710215050957542527300775488116180984581324812792399018107401156596541218007873113212156951683706586491143182200416617019196693223364091534871263870197819680940166596115994263994987372990577184225018313665338201386554278014302256590250428598399569652797516571017030052835271022662727781353637543300228738256617767549155756415330521721335184991334775623130041106687832154084597711269050220104382105489171226485954691165650896441892044349060205283089088548929328855128049515342237384892905904135599459038530774016668779495532802383906325862769964596108509602883098749451603758685937410651299370970973994813324823243086461224550384105973998771851781947144566648770812738481826732738100837570516633273910158016509523461177953802354220575804376307816127086788019412312130759519082544620026345760879061154051920284385487930340286696643026704458468816698997043899097204332518987951955412615569923628305004892959390077838760260424554685600923310752396907498096878036369941155980107726779416941985667798839801006195444847271684800593789971821980373910461185285081070019039574647221358155675654663596986841303384067705493510001602237525012462211022774521539844576005406617086717199858900096724801003034594563159796350993566349898605043511750682100573898009556250037806462416007382955901669955818379648769324688810875041457663653340170758965604168884010995584298833846377578473398996310288804779213992272333867132227431668679667496711661831638538673604163327744777131378466216362085702800300092090308214226752324933331065326449124331539632474912124470187812082756914797284672123591785763655938921255842592407728814911182517047140883324225616105455596752124672230622854838835032675226131047689815480741810871737392434262177966370851432326530826595946051289854076113363490077448755566121006730946758869424980962840637753322215321543462452618448436288057617132641021157594459066451648866012277288881408593379796116965123667447497000754513051967603638259753835699717252351626870111490229834745132190304369378113640163394207409929956858110841632190415559638052526393956535421745673283950346093575845524357069021135127682614184556104666059052255887533134798101447187296017989344697689558084811698290731561849471368039301540898539988593964334305400710410729064395490425128256267266647555186881604752452355666871337843937298255867791355986393912940690799239325627936339116315119829645714513244899189509056051878446251088293243923392545486725939623458648156861696041836927982869664966691129762288461835778750286781810443801546335454744312898242551904645734114468727357814752735099673593796471978593509666250902656776559105086614206761553396520525896125085928988003038204222263315950078393699778171693797659085226482644511302552189179739284174979031264197183038308625649883213048652335208269981536536440647807415682774608580880927182070220190013308166570426600955585119409226294134630869061082595653838800283539034166030920623315619458984531215962553813010330638599058356920624773704662604328856862532408261608545923888532144550826715745206437442541116872332978838966536815190951132196200868407007325343700047685867282394664559834854282152896711642418773464517330766377693791046801932988349749318297446982277161374845153182946110525135345648685971279457352294994288921513458201470247063616482533765799714510795797500607475250197905681970235173693484047862055784991124239468503921455466222949547944795842643433952512475811104685395027078952441654833038962156553172484418434111917948165565945623741309499783966990433812126158430114812413307618745601012151359648060424549196722731125184769000662759582793168558045946149327006917385880862797021015263266756540360011198725433729972944516697195734470437732273304515014543198254446563683737766498418732882383325775232719287799876110164740657280489879082595321047471593554910792409814362518255426126282563783263645553244215627744758169990399245915197958554815948081673996879737192153477809407567985191289284057632000448660627586670265084590444516100367466786184397244710691983115676424802350004198788258917328800225488660124041152551578702720531648433769248045752777108623505132111306998796405739728271533400290139828554844657829186976917407633268481040562437193031570609253017796904740024528126223564133938682650707640037414509192597465951167150528255340948988167932303152036394368798030036960236037729820048785234764617987244148241175382246755803659172902215257337963424208847409051733865215115579395292853762437681166006784044408334103020375507144283801220461068153782439755880068510541076163754244630333587506862552452742537588529323197817272126652432504576071661325860809423564364906728289649874082381102759959089494327792410320356716213911489502354008809930545441377147220789183754580885231830981420465375435243105348187110663308941828480005570404605247618349382750887654446660116814180411857697204505045475738556857348868881584682231555781115296940403087463877704801852121059059623296268547010934319196984042599853648242459406613345960952915185190582748283564369356059236441826217893547921067962522340614410425815606234189553612869730557577150236597360469889771479329459883992083167691077700877454898308891048636235298890625557240839583378447814431587884738652094893240051550239922583216176825757311378641925232296164150711509617226537652169254926668901062178261515582146494203940631650608608996856259124597354590247835562612801739691119333203174659591994309277772705030387444702514575441019423730754400503711062030029892479573603169603312346084408417425635720407906265340491159671951255152740511151684020218389510838477705685898819777695775707697469635621018101572042380662510763050213870023791047094039127270575714386730115110476709484720031286751426781761690181147802887511432961575873186539045612915778265676188800462179424234496697384050507121488365655814486275546077551267757693360486406737413983531065851557475573847544518653566886317025839541634847742726889741367425779931350247688167489531863067213860464027934978174052927103694329242714292403802555856692949973989324375919272358303568527798926281726105564692993972069991482237636526971254998157031347987904330860317758888126624646609879277630397280788054806199844421953571269409319023879097925247768006667572083316164262603486595255103370367556997566597408068314164154274842622507764093762359190505942079770890101073593185002868384090440896862683025035696706477286408158898952082503671499340278797522870817917119323799079668359540142633341864022761932533970592698528792720388007216780533181936088287800789235754381436725954345402510695279503833243552200041515956339059987346697357173741557545447835214306266855033811995932096209774267218008200526655411251563439612091722975063224581224976206825414765292896021067839115123652654962549642496493350150906571959797334352813815534312049297487261744368637987581699852605417930716545309989341906324904052553763492672309371393435736915252773112899050917623231595952194767792845280661837299241301372577789373707006740154333894251371542878505719573279538157168532511910908442679167222269467900068193337424378178473350760018815658420288439934735206063456262693725560611093523271193278348793530198796627931452171402723773216552171317493824238892167730995356776478224214311758921570316754160841981241457411719162696950205783052753510504590048039554375816800758784311190730847002255025729795326686392358414391345081261683745205085897633696098296823616856088403680027905669642544685067437082344497944758228936883496902460817454102726106140229198986605660928722483330327224478390625702931881893627158385631434072601914254414508747599187409793654247319343810687900992298040926344567708419488358086621743560328138143487623098115559716093556250727919846644732242744308540030084527505954240213423555478552396261822380619924881449769300837391780570270602154133688392071670834700199605563150052042415877647784284927781558520309876132712859763159318684928135582241529808656052254056950412097626887951804493250756794503065216684879773979591097425550608476931672237110633951394184120786817447228999840363758910048788689894052567533123454577871379731547381155894482559149839260344203067302399500895543742161290377920452282708769828292587753598336797960911522105677354886773931179415739764555809954019415771823096483815527596706350250058839011235271039064754953591035022694716939731421690932119171358392923025333676679777726994754523586283027031499527504365160618920872581589074411250701413799163798055859487977529897904841993334481318160245082827250977846372422439091110692515159224922991431493277153515229173368779516769365950493927243958832955795777955433230027510000339408819830011833925077886534531407680799342764951783544350368099266246174615989101345202856625061873152483166119419080408889648573077457566300772833227285748831352610464789079373322389962719199169786121139680242796899414786813364285810633335080477927848128246158399398727994682439482446898218780159695750156326012025854304020867697674761604465807109041394014763010778221960210784633332147444332644925260645003611539313618096499319009921348166512495862524800529965440819268089153143034943854451481356852877787121920654561157764311281288201889313037190313854779802330663125824474269511019372239645791619439429899601589987139428967008074301286465367155161681898900914833710827217359049976197465082995045831578942195787104799691153476949136173268530579989449032121645585617753446174359527599337196704810757921122834884275212679562988018743966451086182153432807592676792356269872627785916264423138983783076056026354898549544405886587242201650706810127863110436770269155360022606837572945723365233166792425246132171024276841621166297531897277860171224139520512152161225834399894896660971301625364040844498022433295978108185149199568560314129244361313667988885423937393956917340826525294962893666045402928491962895526272810226831390976160909981838742909838366095142411229239079493067565490488217714701983148475224826019738081580210152910790634959127449222906076808068634494449289416750345699000592017245781516618867645404443709244272145715920303070496769335657500702628199180187538068997322405979850860012436707108275981050952225903476041842090736306045790679555036158364640348152535994517003080751143325482371329922294505411754256284401271650892890335732656651219259929762079871777634678364553916079911039634966708407429179839552966928650633794657756121557559535618459118880367401564461026712010771432812502129567628488708150488961126394235139526723657235867383070498073558818399439478751661914979130323719556645096501208022608825775083679595998388889442323943433553524707127406056412904550954712924177451415036047912299983378058185828796560151145982028231445613826955571386538887993161508754532667113245754843123692652848669389615410045494938185359526802767660374002489496012805227221579470819297434185811079374880945381926720634626049599926753799443583306505131322961844029280447988428258549054730310805612499911803565440028121608475533140583094645916525322348109163431282874779703700154814192896714010389521176860441036118757773811241241926343322953049589459477380743239416658110714769604248965258431451171464957020644495582832150416415037295856984384457588239001069408910059230198297900599201057708448517687310058330072102734688783795925094524333743228838506963274741541172009738249110807278447569261351966738467198362468522014266194755123032765164704396268773918499737978400312649117789890139363223012456853371405267183098927174120091397904868136205031892727606756587269311235889118076732310249325448899686346994154152166676979647269206303102304378679569115139146429533547385044268214397904566520153304313263885016132905535555537570760786348103901247531719056687457371296800217419479658846707184858588670017620679948517580596428584976309248201113528899211739454119536860396327339425364827850233864934395657507804764665654990789598840288792928142191314691758148734851717880934903439986689311620027231569870423605103367405030508558171467084780897068270631292303091328575558091149379918375935901006403686887064830551830344527265187853602283813533590490581895539298843593490070804272500069478575619131386253155851711275401470090066810957891492407596437002584563230774824995832030390701142766858773862187305541785938013503678847367748700200563787828970390559929769209232754962645697970799799093976017721556223267215148268801000138175304953344159276851569493422171460903489429132410747588584668174381899739980487020118383580163021120285487622502378736827803583279400393691752474270326283202495281356256669012168239678436895932800771452767975279678984013824806426361991358132892879488988675874059821744685002589012953126141160116774925402087443975872884058484707762935880223082650490390103824626121574234113014477009705458882440217051712529988249657749757624562503614294799632450554612754013474176823379505790964356139785195211625429217786003023085663790550641191390047644142203706823153069509014325140305026195725532595429965934640366562979462816505239833381166579533656838565858771793204614176185075040144701112235282274602594804861076754646469681375000309950378587577838937424310468097700135500231104735461204792475298141762926378834111874254859961952602215098740223069536543415090394737755013994411223489803863723953781408992786100555417678695066056046149252258129125525821333977550756576231742120507328257994816718370046398246486116837919112803675195424516564224844253134029971629288459171274858275574913747663267613903385946332732408002920726770248835410763576537045287879253530771388931154843605307529772696930634337713723856739040387821154201656569909994782988170679668830920867097680536506075745749954621051179171819774610024315799629514088260967299146178834097118869896212911229341797911848741329422368705982630264827997003981922445950349971124611460712177121531505546840937897216396104158804915574586673032046519770635823576019390581987198325384595895431942337746429125246480296468687046227298169090570720509674231001458571909858520728386872491586769494930747202458613097224146295035891483024680848830328161372572045139292235079990403391369220619824777389288340152028204003288354945497293435010727079645841630056429384486176110006553232941397966249488395230019125954160798962303839525565898689626478625489977770233387347920755477435784095682821318928562275190890953661602615706902736906940332313371689706254116282417550969329493514893301924559213542240670215752595710976609122585181315247426413103974283057221449543325950432035865204708233206026134257328006608933864493455511127192012396914383317340245655189269275553236582646771797427278918469858287197397570131626254898756364208267249541544506320183269151118265967092896944238605227523343101659740609166047695107908120008054629114999840655807876698755683923581286172367159397221430774728125755706276206648978636944576654366547605690869404804876720678928234081714613537945233746056099423143238067457859177298385032532592549861784547004415474532298331157511709971797962535137899333657561473760161459689263816570142393972486409736483616158579462207060425398310593692096118006570472242343502625928440448655817679893435684439612198487711499574360745638236913912854068808508827793940125897825932699638588559313310434880565606220346515246037197500552310621274034534072340917855594573060547443654389405550496400381066769800673241239954299664776355512537567424783799957338807988805176445740165236583000103824723491036159746170020416957046373845621115014465256439199287103491333265249974542067265237764549256254814644885281971217425661501050064602351396038029943344878548572798351310975233863836372777045373571216640219842057429138287725146513019919914100999485176161714879569734689097202459551592516872400363274036865733563305004755763298579614128192439224458571139147796379144483040533959748592245830956451425265806319090822474769502082513056650006871852111020702339053827287619546537790496371974239003378501943143969487947918584558484837187367666387314514395612742860907858298775353751383155044343868814733142659810818767786831253934561014796747420268573073676949467787069989028074797032219565356381515511709164205173206579439071060976378941507870669543695845557631254049691448055715429117881140926924005998341348394359055963249239631811848941929238384079685893834401522126593807459988943790390706065522097827788580078234355592521094008057031574381685569315298600161626601255361995542857574875277448878146197011940194321515284942584472311370339204112592069519987122337919079163067942828943392554185709850353041921756787493647435910171159904999858528442811922465514677799854865300357356020405016308181461199087033331136815486131778800620707346659689841571568015500846479783652807861525459926460226587998398406091023958781992823348390381933119924696938235254060591596064369536168298512712068437813245144817761522910444227951065877407451046160120734071054119876393753553952650723849790647316622040233075461479827458451398444684955701098906394474978636101765286401466433945679000955064433682172592985901537348735620667692700048357380072720324070872035885486086868023709238496602767988911701042610215612479632119839738699475508809863885845677519782774124036955542867007876746124531854281467313121160569559183340251370700651805805424784355255255534778504155684739160134801909547194451347874323080710723144738022083600731456991317942745552058271260858777017645380577638519255253274287679336410357870446843525059541854562205642350171742658574590380473930277544901604726149710041996164345761803726178053487077869292498814572410142193255833607271206085169615594765812921188025003172251029201092915458407512973222620630347671846548591624880663850099585871980116609496956770641984078929111423651195792794463629546988871532288457865743870305685263606509261698759757548335668854364577549558118389117839651439848455357219167798723160067844063294532525258768475113477888130011790661392818177018947815146351562692771238467844500380945256517699717754939088481414689474380465667265707091146605701177033675809170493794031801496325839480150141993797605241845561879681130403179774491937409542636290767169878677911381719931285573882173590507520193035011095393313439353143875998890853062420860055891186115523805003879689640100555715963184503628567046788214085924972200057822163801817935322742274039405000946366005831472499606235588640587842964923359699405518510882595461146747896080687626456264390796514765453375714378798090414598018068813303598958406518405867950147527638843425261359618922840106659689610592110096722075123852585617223577978171481991665214645745086409873082364819079513035275387564089356826472252485712742467627392974360102026718983752213717801394218401751756196808766391821567860386397260601019877567732714475756371134948572791286158029385696408869593380401734329753312472028520957542457363630539178464492096898579798894074605245600310042938957997323324316044387202013719595641943814204935036514357455495105159174018970887429684336168401925654731876645619104755102766575011460869390055130951196585121050872774594685288811689025750823138811438894096905852207992055311472068276508452714500338714473360152820754943537707057125745029734987826081065979906385888291892233667117619689515651335079422757684344363641615575651225678628135335120341887633163394005664427989234674562525141232619583563101195024340992099814406302194887332362159751468537164777315654590122553485142698065325118175161593994731088743304670623032731215440189352915348797251911638180686737998070298148150925303835265419631368893929818251747719883409663873105955893577470614713782375226292837377487374676506069085038108944442772759422998376391430929198589184985273950512020494769994339403595737152738692999951262006467160496173721237487432706575626402615138991387357607102131361075651707716511241398249776935254809369504921535689798543004396401297860350165767577646917591231517003909089845354117526890303203993710475004444237727438456821453485135620559400991001780538326548523508418230557138431994495418835393753323541363132636705812662191078287947574968935558201649804280445638507153376253945123723886723473622785555248573685088638224062259184146609182272354695797101584009232186058315683065436786942291472003379384555732793768412467044605330686808353394914559254604955769929335590968480364806228626306408961620935141871774996765486949392548335746376512265402102410031856225168621702240333248888003500294561779781496516917461179815309740423245269626400832185185407899304695716936917954074504046018824981817907399037122215040057347211813786092832425022481488328485829437101865228868131151847791885372786956716061040751456417183402610678392115220189190170871390100941782430040243489009656936295315344834774506352011605475790986251404504889161628834070352561840879446850253209738270522167175213651436299094041845448452873363131041094244362731469928182293993664167658619068167157683388136603980050751732720451508357477287765516810382885662448890608614069736768244920579529174458526437783378291465333600613162779905077825577560913215089010966447898920669036843173588290029407032047046404687594452615550275526800326024020904262380946872800888501598161278145751627164394547869747269297484082081533120441540984855445616115835795730282372895051356819521723988250184628196027822590778392537845673818744018049449213192441275550396951738382941520855387800497062649004378580239518829468240812054466544882629601170135517081817175355569646700618777862457735588738931517910825460090892547410708638003716006043871968518615044195487670451877198003412087921593911270952235754146986870179312877336037366840625510722901415561366436332067402960352507911720967453338177378739582755700958375881494560440529132862349506485825957666491931567199377713495046993016961083091945415130050632212855169773571519557472440871654538744691859796753018986024314327846267525929011138014151466678516766239678506852634700117191539741329835928101275051463895551286246159878186303903039482077541255643251085112468956112665358879101300587856925220384567341119675969329789010526416552086516028568452897720450335782550347478184848959316808013287375110901947038198846799245605926220817836501027301259963280968264535621135520534409113220649457849913449038984119864450324071816415120745220540548813199758631246272571249631748795811698499981372271267855673666497531795518537754520499355623277189395690912117211723013781989765085831329338244554188081601814553669976467925904970322678065530867661380144193376351531207646534103768411706834688851994593129537185646282133465041769983401303630177363173786599043223234982397519875976388623653064186355468741135681638504989886296648647705603212813480285934863360150772984285703048135385282457249089828116268146820229607298931314279676927351727894531943848222774081219533634867277795279252800050797155390250922198088732729948715216372697706326935888458917055832120291938741394570712561344865875841291438050738320468483943616290118325852683731052352603931411366660430305432306421097012463589459840775659256462122754095153142722772026075937210579057218227615001706332330440932378416295135397775921672958120123720907394676573930875581007499804944754047049266815231754151699394792715130555242825400020484936656892984107954112422213640181662696150223346886001294575168237439054239510820803476466952501331795559623016474434637807128122477351365662916303149346385253662610972999378092325961356775139883272959044665302747012055205214308073656301269377209980523451766969810938767261607194307343752644997382205788126929253801221251584418398917229531810946846239975072043674733354691455113331459524939034218614631435878845448558662510783510232048057544621439712950617001018739995706800887333752372117626151762482291425420877710774467460556006661851301064643897949087641333286772887440841959764372584126814130697666149044838506767467826887068473899778655702305679558902500332140269448785908762782559867699048050798772541040564752980342809493537911966569656566441402109877539905632362995333778675969886472429423403442841920300955423142813741701751542596152263598087887158617671674698286835473435984287619396056223732764031139598981173539853368602467384288534147424137725792938339447610288143478348119342764662101074591852845261222199479040940319455032030199488012722413015359987866338089837118718275591503250851368457806386392066330158581084804163701482854470877681590544799175626205341752798847301174944641213224263552531031998374707385863725537236648216088666678959679261936655802052442378183377197251937526423244319773969738335379584515067606058164335269379512216862410755332500632142034980297082680021130225090632975481711958017935902783215952353338378597621585332715988773191138540679249957255348902988182433665377676369517287708725245985693068314530393161237083526602138570642764876892000716142795313195714786838906608897061471294978423885717422523392554390812633914126871175980258019936905636032868857392353507057587948868414177100544474050063213713451356863443557365947861492270632541018725579396356984396875533078363502393297831887900439750247243908537966990654338088650976661702858777523728749161928173740198068161553594071825110707092402646463252234358032790811509307530599175241347023755203552017532669807441849558785151917670429672230494442543962289000752039189132378640125551974243933899495899204493295970881326556174433499606279931894801411495205483425405068291698142164624286070943716116062532642148004259708863667460776964780926104898845569828017795711288335040986179873063910832783989209069896340980873178551969781507033885977324205446027022873664688425321224693936605214382015132449086967702944467960545430562200377219649111272685826237645737573859301431349159114270864383101401513639894142232432712740884362205978453937327762624610912072496962510550581979080858617649871935865717034399661570575939438918605460850844669863183475419619535227852534904476120983041880710829000682518827467998603415798318185169513519625947720948762985894636779026335384971870976240648052898183518200009659043273117300325176907076218289442663243222916855356153193538278545441625090960614682281578777424276243567308541572813735153522180819452345671636122498632017364580503668970115793249628425113245060198718043743486224096031678683815266525967312711873988220151663875544168478044226256172199661133088050324111204020051130488016292128098403950164499000417084792624609662391209358783656330304688720080593116882943578456886740217853938659575949807815874498060113313346985925676284195078513440036294604636194426764448922095301783054286318367087148426335505724963971695748694595842340336304400206784466749527583916164548966567585334856044997527920195881321288455638764990303048311403668776512772899059764626624314657090116796742032031556806602725627910455183765574162665850458105475882073166715847308678036246903302208473027842564963758168154590593737229244388127255819888544049373739924779663452874502388532749943921657624988904535329380140299311177181842683336836579040392852217562673899088705525882345325547705855028639049447194780443418693909561956534101010552017896421800395914671230654335438391574324751626133743296917763105433328559408594875412865237974213122269737196170697519501809482766698844151628117628667324981149302727359077965443562270160751828488466145246225662352941959346825705950076328168814125566233946187811255829046699596579078888825398357202279849474623487030704250702306860046786629462623415850442702795854512682387037101583809045745414337980198933949160694450113843382256431455379785185951242713007158214553782947945336520241561150182843489901160396475722554505364331849443185455519001901750417996108005507273643417826204346481862572921903357566129990660731735944909256694947608225717224990595886148225059147748972754775879849561362260942752619677696033720008357905463802380265823008457068414132702344220206942948157818228666212721369748807631558127661933037906827300547541044889523714081979808268244941786664727550860799951712840232699292392502207696034380015068808840535633169526872326420652315591504334572013233093202989514116113801937739942982818533551935537775967842595050710643127944858530204780153103181693506529528496607698280338164142462903085626915854592627341245948911940396149922683266621248516104554848046081830080138503483660330744613595535759533407296502404507062317803439585918613913069837365998817752799467813564090301610354512065823581537027641090240313688295809944093500548406886349236739897993532984093280610713824562451570798415289935351690949695848390761272584383535244956105156552896987388929621362322372741768040194838923364426705887429967873177763862669574002294866534967035995480440166455820373843448441318880562788119389664144417660696796021453861716360493920842971820307184696367342280321840314728479925404113082073205847419623629571997031186409703516242749439837543965406607665471700321149407268249732709554133059368696228440876079767948978413362955897407146718146131972988605594697081651485636470727617634319025546731533831270505587429901624576899186712155049716132782051149912530488482336243944668917653802622677122901351159833902308183449549112794746007851839951191293610450627469217541449931237927281734315364014867001612442266167887111822996351321160239079592933518686436896769581933094127415886775642064861604170551817318107260068930232311883403643121683783189104197289051415264092116599642221439615257345288893527823758419360645942744064829325626115575488249139555997930161236732445110915929537869881056847993371247750070607745918123898815417211061507028401946694589765113236158786366977531056946972539420261722586385502589785783604317921398990209887827571705508289965279361950577017413879062903628648074179415720091658095145642816506415466032236604499656014936660801543693931941397294850717254126878200383458765556770227563978085308853245263039492559756416569797439054763447526759781286560879229128925899010893097684352433729969827101909281316218860926834725397055254173841208727716342527258647045499727471205556513938419445314927374455629434746791196660148508767152329100939452488262030968994179121711672913183031744980089129993836448352282222817135137626609709900986250892048156499103124356218853639864652717939132631622306018910629098796488390669695202567410506870491803792312984075193316181742588757974122676852800345512645927538253879424290465014045756832212926374090034122268737309475601308296221754403972536875200327825334531372164715461839585917356099734749641711609936320302884359808459504826302144771165223108671024157853002304126423077805927146682454008448656984876006743723475836884109364433464932471784618103617582970142220841341797485589154939605311697418745945424041444219904734448663553141354090092628140761456707311602175276792169289033359006068193962379492274121856389151607134625083042657023931345453647514324981936579960246312212403670313027259264717649016603847376816428974541778689473650293216558708981572797801240376557160855453545339215220570157459619030364348073877790263317767459978056164477757179016182241328528942170413763414260282269535323681224186588901825643078165273252656641178755939201683533527097188791466416308740917355923347104320451006683842739896625418319537418725102613628366816515211103993646170102058389634741241433939411825071067640173551099093648330396004249007579796301147737161187574679306191422149768338343468614645514683221322393978396751225330051056984604723383453717416445055439474950705944365044439312524050638425382814319886176405009835313532637786693196434920758611345992038402525521751336300181257136721745802565093840790290799532078306361835886006680014916113039603121578163676219685426199648300354078140901643800429776399196425267219979230692918897034315395559148000261038747530137394004839205923658167296102932311876789772163008961789765478377098663046171977267679743121442522036456854561820252124483204762676508451087773464171047213144414083812167167251113481767256483069084087292358153947575624700565428481844075259861537309247328098724878380558023437120930764101780754060169001465253224423115694888889614565313424553354604825302970395198566094985935120438485527473031473787588834498599174936114623362330695217776078579410422610776063264890933094840043688384180384619534118688734794904077036593841072357946183472258006165810356314610665140948044730297920695822224469856575558892717237689086169021717907860005054867070498274597542876788398666880533766980924973338555755396206822505548301046829861362670632232861292474983405592722339847813741882140771086100403130240338104828096433013142617566650336291631378741407312020949548049548566598144274992496566675036833897471748907800244150296156011264051325547044327212253614755091622028789806808333368017104380322299769441119486070591458326031887097381739076735925055223772885483420710264426811108835944998917861844150795961777448775706683154825974031145593780518504758507126540787529933457440929645772439530374222593400514432532788361809348766485322162066250955062223903300386469383927232967335620304251829231658515343972034617136062137261823546862734074419242402438542275079614892093329370632618080656033154668860289348784158923756633721829130067719830407165408335448240707768707289683599387280668079337781271223562301114949602842031208294922413793234687873134599756099558991942629923304627601996472692312392900950391036037907172364679959858579651739942801190307611357768070335591933818576308908752575431195808110913092380177695824898047990667870097044239528429913472105489946502718297954671555824508631591439572727591843403561998287882759326828196494112775267304673188650915671568526544986099196237363986305039876027951393628127322321066971173091604551631614331999625720965386364659541902039429030772928422310454141189846875374061571857290724839108324867197870917980686713194334312256735902722244572279979664110511323098533732172858492615579530197482809778448181495120406747882302480334387017041145123305299520910073271087262564421845466968897625174354639850517693687892160686742486436185607105454023677358591372046152844172853583337341784851385244287606691871082151770193974343693285320313047985269854034227247397395629633718318812912373538868006862216936867440299598763834322586338549708861158395105955803191652920854322109728266266052209719373162287366748730921251418925112028485952619977931029924642748403032735084136347430695421309257934402528310491381139883050149477483216793633888737648140287837078655635102076816110668194078780088876664504420070958255124595683879016222309398477354506359304674254699966202415090441002921604403641441182277709986162942700454866731676097982641828847905143879998502936377399951198799604323451610960499018338687864997871537634160654730752860720130002281303623308501276761886803495556083250533439451304658229435978704925832013523591346631447722018385789972306933620989117377018787987546802570557934527671625407405827395682388305170578487991731923500149901205739515218698472758194580818350982924511176014212789564125122532977262888677183217169292940880400720605018887524553358693381288767451890138621790524915562068479816544551720801751840103587793458847065067426916091607601212704660748618639693316116170644231894601273264067806808403153762359111977485019388597615450637656081192269098388742127369225946587134484598411482262044247768136933304008236862212178073308852299027595770780558606004529614675679633797771817259007900295166108859295345824944690164904345923834011129050191996667321873285169366476421338924171771564692268523987085589899149354948422900668762469204078300548835025990023090126150940974296027079310984243045709231343219805884286628741281011977613890089418492184207127941547740016389146594596700436972852554298842498300152383707061731103036051584708698487408739095061701715506441684102499568997903063201172457313677986438820273313335257806005428556083623883733078015679300138904435422788437176290034064522791888905805754238715461546148998635261164992051291359965544431745831917813601052627321826417103784302422028454793929859762343966153243827968439561710105406823815957794663896453038354149047635149709134717794071839480290154907070133443897295659833802921933608455553262777391064633021662996299720821123640376387554541598642332166349308741980620636064216649749781174830867146145687861747980933068342611235293492673297252217527139734093050194561007663797111357785116520777375203142323382234149942194121873145262259814345420880124482213958733014137751103573525392967305919700063148535950762016889166154126237261324015283404810231491174319286801606391501149989434030271041000157151029277148888329800442367537125424934977400834676397778659273597451210155189288303910241680272467507182039941562492068431769646527758278492096202216393629791456003516477765574531893369022303889118177862312859566808276361966779872321854873698537910735473450514511877402502961883305662188847947771043033601728128208314099119865658619197198857682192933583750422127212336398968826958372814164726402600127809041620379490688725134498032343544490538434209184462379927041821159053001794424470176820066196415661011596148850559273594040319300024174971888329041929382490770800733705334658155895169618007005100729041504932941854599845348754959844108970806833539734379436444522390411983430484786125490738124464582981431969325777479575202795708824668543994661689551726385255804013988451643696162700193260863146307409191656661025077883640272126705774970642754830929014793380978189997969848649440516073814831492008598824021366996634442409774579211021187138923488604080876290778264551640082865822720529436651150376310089485164334097910578253754488912456074230031611743284921939868154894390071100325020627920607804011643805769104191501713055798050249272516186798370546213415785619678389550715226443078176067404947303151917813527161678162816009196025920697780073699727435224198827777189083660771108014188505035311944034083363568115814771050098729611859393520251157298012394964509703500040423785516155301753833772280724971414855797968707566126078732368415073708581695015234916399674731535687324613098398618898397525732749046387550451424459609131508297993585080292023530620102149294880560415859531905600941716788244680378203749224823951243722619980432528817856859297995416527392060020646865586828624930341044928078560467598052993189542445118966389051922102129429123669707301752117061929789711328907862891121673460451428974824158158432153544963249112358660118677651755181754879665341493840982616507628237005559988597004451263674733788415029443727934768736174347690277085788094002107135997521204322427505797196168070147287948148004229142552325821433583423312872482006364539307258679999839312709707658965302898431934067377100856730994168908218667591550825966293245318123198647134135594151029078785969899622222316792782592808068643343293306063437072425112088471312608931866687260787950769762536921068698569151822850540444138502926239379151538161483134960852533159069312180008273754304625778608857214508058693581177239523402371858789505130292628699761258035920870976131174131462000629768466190651291669905827746778830776897131416858834689658688527130664806862619377270343704478002008301120511319400200580079601624259485720923702971979781427123889112478151413529904847320807512205307862384297367701642373496919162803836527449700148958528710990113722938937593414342490160173510065808108401244337284439442802964036086955674106905730161048500824727768506335651610187511320229422622985490545085225912948549084622515049533564643022539559109813915961387497611441008962760394041651736357817340825122368839595651917227944826529696271173446793090322816373037667381659655836319183399286798602861102132714827395543283136447371187307277212818677858832077848973279875506970742747463432127797776031431678340747602624938913890512051672342786538733025079294438501315585205297306983706169322050118323687812062217675454556798451879297898723034592571609450362843841326482970777816622715165307348508336409477330871084712415587714747375310503135214820227572546977071735432754179372314304984089329296098633001224260608813462139365170433207977390162010673726541865131947365308243666885077449712642883658780987009138430828815666390138622091298274036223634984091186020976225589974114847761911542566765505949293750703159004359073274620511307337476836987308588360506544302190615371988050403332182591486705448627725737985479374544633224996225758690669397785033640466040201097073198994624869877922628575126181709794807106074838891015494149089694437208307317573832506080781080549798178626847097984930404303304239861014292097369508700049906683360789174380785434615793574844027415562423252904941553473280078532742433575164033262843302750128134734507039111081774611914399028901429061574400345422761196493714234284077110685451081624693269099751208436739357792915407097746712308177666988019646947013889281721192136589581044610744885149061186359519374024072808084915056919421632946519196152033625653510324734258831323089896320501490693596878069275003993005024844512331629574828384727827609300082028220250852647450973146090793916727776212065634466119266866597337601442220197583645768648620409405164775257414387509051378757752208548362641259921731705316223445148186473154401780393638379501318635537102824875232185325710658844628083469502710775259142220178665122051674943178002741668203657371758652431703990984199528363568612761625656902936464794354253910983647211790267111827950213161898508874394222298613832373242315527791971872668606196551239536766774406409643098935581677426711880990907985219737045707740838622918430402057552043076642141367594444919499204388843806767860499631129585857656840954821531113197383477359337910899642737499292046900365736210084100136228853067947899823900876212846926642461154927757638985379852348459280338710345212423057310675467881470223533223347636054396272490756681659839523158629048194355065144019832687322790032387017237819811252668379394846452496166953004913641321820855514953971291474234582376219913878183183119549624721306918986746631019858875581073492648630411717217778460853350410658027093045724159809513853098053756165892316164534450953860657807319558917784844562828327812506987455038732748330200447201887998367151956504947953659704933959410904191089915703095411927793131960514441837748592713415637281093262461293285803266427158412126437032889678178229270030710462592016064788555323748939305501631511477330257793155661651449332322864668002806674284477648113053961359154073903771017756898018968492452326514141211016982628074648934390715673778232182578582249678018386234530360884632824111993523775846907639304207299615472269067396828957082754896293491769149505848938186136651585785950967120944497295854733062554397141886562293567843527405309170397998541327603053567002847497245135354626857672873224031394390714263868532312536147954168434881954998406180824799128348775809457392704684278090221631472112834534139801225671670103966472405541104988542561396271090820717830322331810169716095413651974029211838867847136948492688359075133240204355507746601146303741436502316538385443814324902197482098542550906396184456889711863442978257419991451562822226652867412229143850189428217463041527717998443644938934717210600269634803693687982104812732576656913310203042210773156335226138627804294888868951009375715413738293188275424539579149711168420023813612650433525043586776761404730738990922095048986318699831296245816363820753901222674962701619461425310254140874365278747002801545618257614436172822210395229184009321127087015524543631349432540240681039688496832772998849371848585423750486363642732225715925360429519543459362234892225301699788062431528076245331725865681845574836598388860382835321251661127451842834492387522544504810646177545965035782772643412305657494703266793097205001919791271418298821883505577290130713654999112901643053992990801363307354754518036521513825074954773083564787327436525835499641531727779806697554486055137632905909694539934669505839310454435857509466379547928555103261033224585866963501818416628093951070693199454840141824212281081993622944222198571967460319809361522563956654562659956772758991327464949847845292752125070796078342397963818844133378988931169213780085712323495971117267848854586506939410643577275321815406111292160341338430188617554128634717283091784736457180278647234364210856511497167556152916245669034521540137025119853755206080916598238818383021982898492933070809187967969815439351837816532026922529236865702632777339469064376550056254409162767214006290994002506786969680248431442583076737642421939164078510062953849220874085900356135208563433318662124272446268087517654102572042525540928047382964168233318304612074773446723958584998272858076091035359276588586177032884418832452938253220231105335984376440134426158612338417668889055220578610646948511618317181865737536348249798178641854627996975479811340900274352054056472503192482606807814174091627793295981732978856365648720117635312512346861338524406337945708303518858442956699817276873015447518862878067362136781597754678067415994646520855656469044645354525105320385842294312117129366910786235034966253360690556096141812820383395239948141529740403390675584879266967471253516400471907073295930076687444543579677505534435956058263514413062583822851674228915868536261097387061356266728107771614804432968209841245075722335635957492759114585498591277747097212906300144019499428919886448324238485154241884931502512637536083635137506099249602092659347400582228527514235015179837107931909963417303555179965485699186000957472689872304671772299740720464653716992379597631297632499698044393056801104794443290637796561277351488078203930850360549709373554298554113406907461434155804182812539803432297071883475885275336154808018678117889053787478753742866750148817912779166827431795124560835301951138693713114519766440158250753418905101673147258722835293580496337940291545666496321152484610496592169206349883661982881257911950856626047393615747530229631027279227117570160790691540744286410185604834332322102015228124705637769123585491656626784904511135515978791054303531230882233360574557946533041485720965579217358301576422510596222000152551588922462970628456889146806683992781445772460025173189474285957422504128813638533299360225975285416125606864781574652736674443436005440046380486892360559943831044594981411754470785075306939683371499981935396376547392897503264133190286794230607116873709837180800443480208037978558793483952822779236014884110868488131272780413741317811579128568748803863392494058906852664194073258290985959543966888551641950483902736263288884624088789096938893507038895386148620460169054382054028845009167693281409689086252160224352725554333289428100776023179359550357791586131221394461299168406402511659359511224948857336255782739135324617187822017781395561381523097115441544773024826268043043203923208255916558717142240471010329890229883309793758998105001353080442501274095343295157196384473681428590980058814706070770647446999995014027235754094529311716471927811032121495512395974709215021726584725757280533260380070543782341945215311579052028929335714910212727608836927086994738018132809256706668332791787081184604859184018066151398753610977002724398414855456916205347094121660993609946957366171887286244371292371679757229493415478666410204070490052824026981464637465791862628058956403759563272286422718134422186741209347705019858531062708223759111078860937604599832589983643720887801904831925346376570578501856685386235194893343413240809532789521867039444085057529242992889511429235799091036173548608498844480286499296420471269250294254864388356194386786938439158039434509730391010860857456599559311157598838424928786394726024765224926318546882283678883333648996569760634257453557272267266638794343033130875541545703433659982161386753282904525348001493137661466081485532856333112719591651369425264511252922292980336806117623327724948593780320962640536189479710382246123505671635597008816592189430361153140863932878345701621452464637648711662739944951995758375071227192631719696103009395624622677155817593609871398250847575428059505884571401035653113647729092977068898134894230701284181648227856717628116457255868937102645306785223179711208635545115797518459821303010874662350303028227832832154561289519238127433360705035493510655987543809909965605947482795520788639828785120847092786657162978865817500471676897301589771518084045481913769699898591690620084917999074055929868717982724405328088721465461781596358883488009912776851472731141987130995415062296840261255359948999555441028832759651327338509836687046834395763960095717669187643721749747778794694627138204312622459901375307340966784342548583498789924367376147958631409343284163276843262427530070041974912793852785681263161259407200796271369492526847791184878483608325313969062211815797914704703748816334653077665526049143997172185176261966698922880332507211420461271382379852833490766310910918355076852390121937984747743803952554136596110542940264818974126261178280140373361381824200945844144643477192749311713805144480787850145131062918021912851689475939939729268284199880555973727631397654561279696318053532330051373354375422322736372198614452266981158493352985158652100921280054533423483484968851461134539698162847480225209290732147462771698970709896379883404061482815324603966835928038335307734071811009978388808997830428645640339291658538303348146952194809287152507033039931792347487249865212266511251294672661478168568235741231635089991400239712182027325606520949132080821236087496501094009233828631525324095726788247755465640403509007668358570344406491919410007514543210022440042049083821575363094083658839843110588909950212820368440957310319931800724551913744915739501816216534426211325424724204007192552867796542933033074648154207282570110560194809582819562540528287401885616224030220467674089237031377412933904622710625923858362909666750309563558536900660391795015126872713014921803386442559792762149800332476659181349325919506673947372655070088537287516794703250181768622402436714061540943201676189647825212414575046277333983927718087723883977755678574428971534316338988433713957797890581180928115226591712905558875244560720256958858564167544637504146473150457854538917201926570649821155284144675009740363403194708512709408136475361558715594862574898450995831521571988379998544315021497042468136277341041917680283548225929319538843259498301178150690338760096360725858227243425138628140620802744066802533083037693491398966336919708844174913299481456639771654140329692329103620360318901477980061519129878622647572513440647745037552317944547925307654626746686674321280271511071397015999151208801886149590192541710004917819526443209885305528740666622044366024665203224460227384395045575152996190174911162278747914326660766553856480260058146935018313239783912600114076203752196184939172867445334947447810711706476921126318180500826187014627716028274456022735307229665814243567498584816312427258635456861019066920839053279083216550723491579537865305158084147729127064834174601633313576806306973647092880473795091093034527644806753641410543778025891513462047338222187677444702289715030045577795667298815772207602680045029581243099718083409715381513202439094024817868408982521561393543954864350236576765053426216007051411742720487182242239403657621653995784827696802741308325431735764696481418782133707953512058084290484840325680920811753925899345916856832121342685386718730639424198093284105250507327421182236723091500675317008071066581703760190785229117050276343733467099552480257658810779504382195552726544273186200837260360641220045362358700879169212879201023499345823838951550397224881345475601533474910521855689492924439171947638989332203275478632067594827567310389829183841699920696231325550305470169549427672589560443323754855234297790213736167081389905593491303829994356001713325678400128136260040923941611900084559903640418563818911853921489041314032877395849915131854886223727288845393506229612539418205467319411116890953430738051200673629476099229564813344854034965653521085142643404434659087711354276675964203671431019091379014932716983156410080155465504100340021990559890498756081295395525808466308514003862954120076042444773270603566004711505612972574611182379799525327107695168551097714291640893546066923324543479110398887810514387853466869409221952981802000146587855507804569496451671442682781136705393978902829501929144150556219860767905634957351722214899510820635277670581791470192700530829436300078915340949731279212024754079367031566147607904784451305617251890894100487302561213386033644888541776163746886075248820042160544143251920792523282069522891183591842259794128778490416674401167038953559383775829963513626619257341635091810073975334532951535698293484994078802387702804090558967952917231839075601000801255245722120261985758961730626295729653532729160495598687469934861729556277509333003925534343402016365405603854629646926691857200270803170976102904980074379816077652479093551406413889353585077546262892387171163454105710530822779258018536448961501023743973986140157918594172160635824891136911605864947537962611182138614613853270274844302166663596030074157023374096488768694777608333489086942817506405786623059913772763421379887305122043818791786706375319509537410855941528438817396687261015055198713887986613271449097460663945699815920942143669145689942182570755662423231641875685053148503316793250902360181337800573256023719283445149544053421140534255824795563784287458932156256062300749477023919331174770309003440141005666865189380714947343712842729424178013754756819560823350138877535956860957724763538669395246564325939344075479463714814327666791679728674218467983917771646045273137553332139596861362847883046119302221128687460507654733874270050752939390991660961806729597135641483992236838765303111905720237754601411187587669035288477259538174569683042639594367324897106464586993408495942350540636567802674320735718944671075534073412488011769933051029786400499059226310076844517277255522296672910568369406367758132571674474094071866612612941837395307928574950521665105402407824043759579960180258049677074010510570140067217323790173387754965993376321436987455753437488509313596863715001833711084827549712330113297883579094927836923273218990395298599605242755150143432644153261740209533645161986655891994728728888903108126218686791981498637024165531277158753340069508085153680372217380217796257121202438300661762731831172720078069056883379724091297204230863655349389607320171115161919296288467130078540126963090391651609436116115564214973177834100801089572427115416811519393182107194542781864747092988200878401986312219427753833060015572138696926804002903689428680661276614788674423474621957161479773588166053807011051851837975740563531977958319805987632528818901799670888321122027296935393955441538543135889672063034667897344590025920198528835761901485986201595835606653049054786442631964131534239152838411067257703710701713399659323930948278827834287661576998345217181002911887732040049788426737767259474408775526490034730051028939742856875421468021816729196690381659224862933153672200225523014665537953413992978144962080039551695285298854841127783272228524497047635860805547615800752340228068338689155236838934621343243736247091004901742552775701151640148804901030976723892213714928537861634689409801481495823554547528932786000229984041457719874501134789778552237309269665095789861955024552426287843435054634602723458741143025369363594827230039269690027483552406985144847780798729546775790664768266272241898575555634817483459646762994168106670130535369254198255228551530858115659847243172393278787649778838128422336156351418934023851518251527268930335611670935388390373830462922343094005178711592887829884392497711650717199712245573631805746058174993817038495794369784611891055753196108509121180050313597430203298752216766264246460586182459441991719499665925391658405343947783495701986846827173235844536827431151905170283551539758862483800760106114485518011825118007021199702433016206397912601139130648149678623481378157761159911885352179169781528962158911202550323240106881197186935666860574305977017805582490600265427104622479818193869072444197200440791160389431004512035155767929829258759717955073281949979567701293727949341476234020580970423122432870579358754070446667732350665297291598354812710248804013501919568295612138442281570493409301138242813776539916790548607199482465076593312145335178267361073815023085780175264940297867730902550951546388261617781438087024445549243042139769513937534517802212925945355490834649823689949878679944111121861936975943349736375593268760151948154270469405362895427203578525160596612935418001424664150056235019849664685339243389907135047997102229845095255495409918060375993488373563151447053315380992430605830250996050289122333523475251510378224005879903667308395735891107697947803809789981172648164012137543771466087848853569610497027930205621687131444146683791668263279931097715347152360138322632796809621602829039251220407127786708735727876307159046307079928020134565680831131774083693500571837856587595262178945324480015066690202362663365237189775408560282310328833140268703382110366593713212964535756985836750353831452043875638650160787115161401132491737416247566827576971847717481405535276075687385118677828516187000947325078361109264426521223304743487602099681854459912443940988750210279205190799678454844847035923303992223119062698109480900782774691178504901826181946998144800685698390383367848987131044697295562898511698775956616870465551130437127598032461273604968717339877332591212954374209159052406376439850230276584172154919988788165338355708768088947518805178075581873233336258968521587256511894747821571254444290230495739815632182061734554496979333465575854774836891046731255412710294514025441635281210035183519177679675482413110305834956442766524109952135212201756325223810046534811934160512309632891357527232275998975725671628175799878514247918321552099107304083494455672886982952717700329950339136801315273647000205412212685886457517343486153267829491899136676952095603973643950620315323597623386763628859553780691614754487306804499108877948122295143859543971594856512149235302183129257668947306193863413809982068999553108662796009082131764042733508193850704167350936282409250872009804907398543365582794026575788511432871734731862708001545010089544845128674781049467209637782711363853918554254569924263816652637583112076143613492567016980275852316339713058544223903971769363118333160553058014084367900658116855486955376340702656761821121467270158177127282608596809039291591720664441129134929790573646872820746172086286589660643993625824636876569099517225830663690166989678690179589997956347041124514420312536386777713962817492298371035227646033328641593642671303438501595774490663460183802239680310408243373593460435136887356151162342608446762840724058643330844726858154140580740087110210399864205811862817094652576749659397406320765981306750114320706645410169277750734771706557013521398585546333339782911218151268645593077867987619747954071227464411145172334253902678084879783649496088053053405270626620709705232406975769794457622404656505547102082314912407382180317634447902498514828791687957810862648355811020156027815485568575688247565947736971970643613435323428365633663838047211778860142590881975089619789678831819970254799919633619199295521945201286320009017694121525114174729516437556792005766048126207601225168138518633188360855503502118435343396474236240208845028673703718637060869596937503148040002289330849187803224019815599202412592469793960302429691393604548291145818206387227519783779153707431163988872564467641050103791033035497709625457292954157142936343257786345431446966196753571451055087155736260581305734476942284026499654712870450246905222216183845341284163678929418694492232694607381889172109779846918399306011301271241266711204975158478227455133147222502688597047276627713934484971551385723681668517197922280794716415231377864361963617005218624962749832532848693195496765544798476477354731913629915725667527984534810310738867449317999761142015264602359759543071141421763156963153363462224525711574457961709416920858187979694405310249709218620221701493150370755981638959947528993774979075762844635869405902339834237797376832970587432285468564700578692259694527272603056691138414057798024673906823217574195660493286687109018845953848986847580710991068835541205250475959833276096142194815671108288062953256625202933466319275565719373809090066953721320280948382765296138153670390127203499102669100451601398153748612227357124213337804038908308343734819946059152393853324614115929913691769092492539636017725720081516025056014626506605829552447011102839673717319798924725101853235230332098531463484789220732642319241311904086425517443790144613037138090609101462924192330186132757995317771647815075149754601881606646998086040804068068710127438231308604885280647501885248021817887640423716730982825802962760705677656748699268956521039410020460615766138418505406497979741408724246054923645237396094217689516801856571771649965751077274956871309607579094551544292110855194501021864085789093152381661315114250923106909273083115103096090717855929366197269265688145349081628819689337836202999705049583728566213586155221773714428436864628127286529053245901176348598399321234711656119791620008129228992622379490829711440201663346279697904331551060320244114599623475098384413204800898125428154493662635982753320769473577753990183902203561623363423800018993015561063857926949599302068595937346421607407252522521355071845254394774693002239391162834427156296930471197345815327024705811493233197153493434432625469229126867424727948312104505494914281149378628948904908886677514010202374879614095224176530864832417034051126054864707117734700008701697747915522509341829198053946156641168821760785588255477968203905205193082765716401609039045324530406983743790340926708119473962268288523755048437015692747037386629801419532494301081648346430387672193610000394899821544195640002614415287000716345706159185829327554101749966267813098150560055213671016174423689371146560709073536015291062693866397195320381143617607895122495696825763443663612817813938532458711756277124498565169371131029099934217775820085845391056752343325018851913362398598910650664445380110049394282078941685874923832851608607593314559257217041380249827813870669923950255725571657248947443612788768472079070789945154550270933155807895448637274770675554399729291142612193725366929059045626656813199524282815533045262186193691079419275535818820895034191908881758877698282797197554714897372697245351798229123663412740633224276353506981618286092380830040017784108866831411502573082441330958475007352067136067754355818995426311527123536799462057052011301353854651394840017248102912664265629978260301429134560479895387737904984609149570014921345390914532988509800989076993287509643278442564386429782025188887052310858256374877993898369938583327516248183495804247452726563698988918471665612793985739055952442519881012822899497149695990693708104627632481493809312609497158531574202688062340640449301919036860855826806108902983661331854522231889445952544865194614791550103160315659049309006233685711665838344982244139015586383075779305502442873020754239436364871174468134999167042063110123896426132822355561368565602022814713290595999518350837183871453468804118562195969830952104419973600777128462885391129628126155430316091104419341871006823531864095306778527720260528516739459232941722793402781600228951177305856338449986998041098297972410802739437883923219945717083096575176182234063129760167516489649225073910116096556399518953643664383478572949271107898875907453271602427257381980525953921530111031615214724755721758454330505332648969720242423879655059981352582308155528681158259864974636020024831700134666437946850659274456757148169234377671790433191497020470070745529880289877460094345709801984331680880335507538588095464502347423690010864744743818905541647363693249070059725330647090925419608230479048587294307605067290169206703641013337977446465708727853256657044100576913244360988283978578933636224809934334361614976837057918925557316740408780835962328346060429596335938259483544542206194516246646941640422081260117479189692513085522757591811279471716099964231187758359173390913233967038711012738078896031481438248345855148896268766569540119523082056912460904090573885287331275898006328121192186868224920030193729957507007963995282300096633940319267383769725934030812656835555662640368893441674583802012065505600193118921051417442675451692194634352556575929689255951320745691833923053897193269799935356955154680013530578169374159995501901383381472822457905591860001259095650509429793028278495761653180545365485515864678176374036830173882080445364065253683247462201258192665382513888156372928759709955227956921476757782609378967313653201936301765888578638236806947043515211299974061134031471007678805221767727970363069290337189821058292316525768985509305684449028673040757622281800108092249608420801929233940835306261830850983199399664379027505198202638811330257345975203288525945426860002484084424577089298760904121824899585292279695747555771767199040428080448394809528398509921540284505980571301379076585095031241324523304250693279147419432079875290369752213670369777538610548962881679753258637970063155735426773297925684144193104992493897658899722825894584955350617341888009399038168494044091292506745367051195032405774185158151545373388361706860354921592743213152206277720529964274941581564480061621097671241977797178907364712037296979148986630787094772777283986838432647242883564994997825243374112386158062110941117403815979446704437551912930588041382307711575306507064692134854277966395182674078004805661701227560369560373692829508310239436691008737301911764773220649922832148178322083082008868993382490095570398130859399499494308380250943965068368961916375541666882682643349514888397950330528886890819032556257733942178040265582849399464376796123461807886487408415764833966151630484522201153228832331141417773867355590034040768976825738885141766888803808375126239014452412389100731576051665357366845918609395984428762540338874254873869834910312929699099509027270925960685796823987387842665702451453464472387343139569930417630018905532199427475436935798266523970447808676557544996557726454900152377231466285249775436057064885884607842143165496991593537931983039810439535872647724003112032918130697564106424669308367325630804868998452351932907767379356617636382231370751656999373002607109491649459174567006480801312464653404270825232481014361426538763743345001047539938406795855236239662886020352918391289659845562267638824329354993733366260480765718312959744444215904064266882038788333424310131742012705637734029313645944333225140340783995715441184163760194328410532371532786433325187834952288736005394748749687192861743433584723302976681007613554971734945125531911917558292067985806181306011947718878556463406074771514784946711341833793254262947790260701120690294647684113002676073862990675073109007917869461669108086454702541189938224170081680242660942774078790563716324462152234415071518546266495594251953936345273676829098938706818068384175757385418215126749190542952763237350923504664899091405452125453900387708122802495073722376675559677327957810847531115127754985674229628829040797493702155952617298779544873335365343853647268492259688511537647232461156257011854384380867058919912845731717576749658659099441567446362509597087632017301307760236525663948414103983936292184071360454454053814395538926386334223974849071881476211291159789465148658713802610307637512929798899436841955622163000751469367343216538118518627619758249804177884881281744876962421180729069355616723004786919605820759106343383005249411573780102706817363472515910103987865310356934461661666857437767358544795354846538208438423724509361199338312941067300444227112645400417051349724631308060776143358939582459505299512174405758111104244748086101470439281052227636491572671572829922930852476787329013894598131630931309553921262071734057543375648808563955129064067867868472312805003010111586240027484020454425813022962727131605856554343862167261595373115549428131321703928029600947971633772773489544967237250272431420328932075703224071278435533365436411108133563695038174062592189431701906116537638308759687996627780743064246864691623622426066200007486373523471294659064487361335016045029978133135249761235685625593807425636169005851030997595515627799734667429934259894794366834419898166980195807155502862847866404479584189408588921260912197973287429483216791552039564141904617951073279804958309919212485952074128851771018229504828870576945394153497377005499750773355096392940414151329506013362262051772188375822662245528709689197091178756123047302912124268567253149831875375771363577155769554965837445609498258770287876331945467662281580340118027020045786627759975062601264629757870419358047353751187509094263820707501522405708526008574923145010301751482230413228671789038027512500591680745229355683670681053912672473207568947630950147921719952314312525974115890139709626571331490436278419303949280405636008205801864540405489288886338140289624707264110124956672209825780642244300331325855629666305073580186497356578283194635538947033628475005547027323482246776870841924249557370735193110519936574556037518797616398873133121341660727084841638297817685047148189760909538705265043465681411682078032055660813217996547267585887905763451080583364296523754210858671972853745397378573500077938106554924580284077577199490733115110451960493919966262250841744420389981078302317183838165506350790009485550431144817611732287432837456411779655981233946646232839573543803273516365150888562323127110355358066261655947725964875565021416631679444795445076865847857842943621662595444896544679946712989594239561519988686458699973116804060630872169885839003757990518093469953067735356476333406873407526291227764709808265730267678395845547214802097862236339918344024283968829667376443545967791249466803258040582752422950362083167083114880086566262333824511782893835627926692742660132994445215431159782307896900194986857341152630084670692097185440962644849920770790556835104633855719162936343467117906432523489773848192717047487281408306171181084372460437308097941919498555106481294199595165822226533077097630663140735205058672948835320689613285384682973191633876200237792294684672787365520600359241222712766410084624571433246981840967783775745566367675863700651454860043801736424765274399565656036905036397613539957611182629587578019498959304706559681280895075665892718407063598361203487190611555502158299259976851988761789273432968162799339413439993895024972716835506634948836028129265451689898540824478262999954240994005723743123096027693278894069708689056930169926662666456624255563099591485077964212662302201873699788591506400798588763765780478041009837586314517027027559851770772562794857054292615573230776157984068945177150662271907801696490246661811882484603349001029577644074103727985326938011736573851623094096932270480192949121812278797703255591362479393507447599307879296488448135653298819359447744887239845455913013851634791747779548187582783047506310514188951872800639581978733907431101324931403238597887840829439444003350022708984494676028930635017960022618885839523916703545784019599391967117207133407972601809625234122598511821953367566220866001925278238139717437228016344884341727511989452971198746354930095841497543846116553827341053880250660156123529691774297168736689468576631420073501912839905458311534714188546097318174991505500869954064235032475161204382211284605873862578547537267985017067364567150212863493312606280048853911866115707605113152098841055630676095471738552342721113253648800913313739147267728149855431793124879516592267352941896682766092624637391342348874647597538184294965480894260830904744225921288770383070077455076809011274156919028656883399398729181732165190103659690065011818603640256721346527853756765137170629426116985875518391149307369995971886601128126195558829812392366376933797963076370693387686383039781046351149584232887827459318904303755290841419569825000895628752939027831742394517137985942572018868538628886611568074939774864405298929640336559335229146431887080297240861399043482858068093272683715259590766987655288207576557089097660997232322810665514765127653486751941707000434303732053996509704369476076464775801015129700025286360940358043039073251628345563794845287249836333987365722897248128126330439588142387143198145820623303061456497659027988054425871184736537017671842759709977529852052284509244596566724544902627889135375044904784666856071288986803590784546863194788444750621116382345822832648764936957847782531623699155437043419713919284621148322648803138756108858223558516418267277497379635385053101340182287076081101066983355422092833722361345526678815714193430691196165724556134203105280559603048483797210543795704348484765822293393970750288119311716207864707351529658261190118418191736345373956349304727559503051008315207021694537864552312063151209730972958547656830947010513253501398978525102210690067049175155821326746056993261555000276839811998699407100784998985565204036388973598451741554049276503825089319278432541061160677574423695139164006262523150898785981579303770431921023106075842997043354384946381344357676127229141530653413763670374190875156458599296500692123049338400027546906247774482780196735361947600288062721898043098567018810409521310165661075863260922480066984361731191252475600553360989842845092369608210005329634936677125153844480576985077331129011937668780644524576981628225001858578525500038494077484041495100933668544197082465107090317606931310005703201835604273451765962651506919792696496903061428383106594306106665510408145022733617379541764937484269105136248875200798930633991068976651416616462293624172546270191853838430668146081978572579137430314679940017811643956010984460742826697064820944422935217031374461494697825284042118241096424111246522467930569946858789838806839369741606291639672894928162616718902505927155626533755432942156394196137158528405737112507912033701228489273432441826311223660059089044635745881867443327942875655005466205853570523933196743675544052289111316045608844612333901339031092891326425130259031113742762239571420861503499267652616336020670126257102300840925183407996276802074493965809371395998674094121996551060737335669574728657947729129928524029984230203341438697832389966321597048981514332514942274869375915121610905937517956323408250842038139914354801341003575296313436501147479120112024167072059777416297604373069080416070761626233290754244040357618587056779487478621980402209396710863772185963164852024263949987950602219758612094887015727093626036962056358071640584087241868842047808321077747648278187919695100513926144437269869127473496169245003967336881797500764217607647232163853221765555724474999949769854504666527740525662622122597627753293731682677793805566564167978193103349051897230899053673626194654994954204873268122285250631099374480424473581759631869829977851477274840630307426340242841617897500323075129922912043277254632480626099607532508493782706030596647556856668431517886319301495565625821402928909349355719370539443426744528307707986958184057548182479046253332315742682238349783149238378400483765241137720971819167282502033897249565091676120331900874170571363520552021688737882628631415385709012448799345916121497423995277490715077917497591848226595714035036617965284801587375698938908774798347911736330566476577944875985329904638999446812407513494616368187398708966467033103076518097566351491034524946981410171552731151770193117361310966419068494460020621037817484099593096220747346498213920395256387820295536842790239729358164357140880705730583278953528826799562643339531168184116100246909218991705725673973673589859983752070561666652347101784403469982178940473989384166553858165525573027247859377827226969755988873108739478639196205766075010249262863569463710713486953312207938255782826137329652676106131220206120677825722713702158803312975716432371272130180936777623634584879956515451660055112119061299523891996083437918205116674866883029196680927714759229805066842954782890947542394433425120782901776392341175722042662667274549381940264917554055339232553769309188090360548336656038681981693103986274121871295702135106034554620754158068749213290465827990865638462939993055788782717438056755004359836192154688292443588039314587976430448145309963460893654070430144286982067817815333193692620632493179401769019534957727459682675889875978795015521338519505887983103603735623234409001924664589472934071918208901559829386888771647878222394014536609820769004450366934396336356893397499221549372808704289529304815783252308217365151459217246645609695354256983461739707506628656410087924722402618116686635774829403250746662247593758230810197514027053694501669100956463531149265162774644239117762894629947410967096141463116940628949822467111751171167593095676035750853618959868741025613035485051460657033614798933397885296423920393625646602846956577372170021996937736512713774082081550849407743057164454781112102852215605610952136887367055503279086601987385389366317587878164926484360261299345048916091499481425054620594626463528209845364935330884065652588922143159745659094427582396351795108794644223447883580926608739713769667773706671221304956529746131199874138730687166742757507777048216302811608802613761064003560158101640977827430450572916156520373034810882204993496979194137098369705297638928887890848041926465199578570180354645932121209854994386673509551122473294283531680148428804367471078138919218607602420690180366374348419454630578230065442016153838826468511278691446937829616475306554004913255060331166055876779878651416343617488584904284517192562043441135788304675032690060569605218904632792464014760764855134015103826268359617390971522078337136484187611360828023137722489666671797079847110720707602329013931170583344318291649162255551385074764278740345136546481734783691394763423559143138021113538965603066054607481722858190431375981978096848323280327722777794318646156332859368441790785731954819400745099662731505631724131347664665269495753004246946029712007656849065095269823652802220228954758540365802613074568886577879884802855043860694081831920478976467850005459147506875876265784492053685840929545500560888513667818146971355784201951395235434633267192091074368940747725261971168509706282630007858360237655898223982445252607797896535825957497848668650814888312786759312525428362327132332483333087033922068977072035955120835854776102611160832206040748742991415406733140773604214614949568489432098761635567699367482765938226844888810202418031520829884760424876465085566505110221427372936858314471810546887010887011509712775691041367336100941407437024151843362528731750973195248641687601572185110240886927782806505342014376812658264649925539607228399076983072289398264924699495886971892003708667269980196689141523500161622440986284936745209950710171904497615305553176994175582314438866078140857442728781558006194252193855198553763001181149132259888788396833496723424204752725235997076766551724787441224359137731196414717382405288098585380395798978835828017506859307936052303851325705990458772392890560034729820602985711144274984677690490509046123564991137828067445354464598280825435644838751246412122765438682576206918075637602856530645268196251199782105672470411741803731529274199132778978321080709615753590046880729539661108037137030023503120374448147769725223968181024984140066311714463105558686078445954238737415956668807961066218729065612964770061709362689058245724334504785425326151384644684093112696505770179757064093413919083063329134253437360764557442365334478354380434018129660192888568354275751563649444285059927498901029986252680616759103650617590598309606318924766931139208561767089559285786745037375410689727441453578597296586153486497789874062736887553560130491915800233177963911579482625904816601621914580702155241259371575206920510486193364122035909545246508561012369102449348226262033322761654474626875040983618253925277404344179643121191442685166313359784499980388241756154246524759562864536763251263877221918251643971040669497653925077965665719404358171243260836029343253051517920712683237046720287178115557258968514511677742222375568216028876742146080466395876754559517947866008491055394334902688821822000010313921992935988807260896039563090478883206756159461911812776428854334032411818277752815601667888075272723400972228880021676360015949711875872563067605574641368040864939124138715081021064461445088226583801273965883310900104143529406450429548483622405801915050883112453999640513412645595336679503980880067244876627764795525715125307117139457232162927314387467106975886446175585496131147211842140606803062861523114065502696756891635747418338786961916065202118140523002119569540046495851875285214886750876717391129305269524727858402204985501822046410586538590316831219000511849972152597653328658167469464498891387057817870313564154754384186019693626267835079446599827322288899509528266566053384271488855568495786759461818076876872022763289446629606712951810994426301612609627748796612648601736510232543594709694849980379075035377061317922308725885066227630622189425608414198648756478573687155896235698032126901917996663877561517715167847148968725562654740609616653884851540025104270328684083297606749000453363232503941041208937523600509131238169884308209706336312046895071365570909619716372205837648579981929804456157215392725913684972424582452905057070646848780482244584272867616371821964430930709255862996304318853646062649467838629622672402150298526715710451990361783302220706091480523437724327497942595356408134729549845516926789226098691515814102182389329371646616338899516596115939897468471030410561909780434677407313745680287711751814676740885397856575922824286355618198217539857856162204816266905800744722450879640836209983726700159590526461751933957244547533066044041782055900916070325354726909828919974662974120667830982398863919835605931507376345068999583997824923714995807303960899636939926868895912548719930405961246590472399422653043905564244839598062793059241061779598305404032963141253303813421313407383707515117212594692322048405625273979157527308073458181912729076418897788484754888171894069688603601593602362740092606626968635423159349890941461476114000371755330357346854398537027568501791315651336139488660547530011271582519917721636923529126195224928324792977758007872732641623694147060386444836067243925584177156990464673973459093246368794051127078884224515840192269934609733303095650662303346849245577081425024545031256323712563280503504025133075895987391098640308542104731063201439591382805848869310449193139951166572808346304633689317674536982748245427248600929305500560995456385707336611981870334754342736069084887762971110430961322299146120463304801765201586584651993469701478435805823902216512412853167121822170772685303849771114529623032677384193168551041002920787239087514513862727237101682190325803952617290678452192660877117621233907503152851260236016258044343286057047069842118507072809789032251551729960848733529998662874672748022776488452048180969109830786524763615100783492861611983532745093682771307201897563009227988856301999576400851183435110331862858316893854424884648359982984149521468183231594340274762324093027491782459253357445664505399359228598284308515297979164767584538781512542963389658956668598472224307701874640681978319018071833249287026438355845994294039769978745416722124300956605266958705495957204227914709944751617900783469943205770964989023675274252276202924189011816358644142660468434474833023796232734126155608252131870283807232444921725553093270946575540675071852040198283911898077840330400236574915170045377310412846013548708794459629422830237202532732185618035516598330411908432727805193764924802745789307032125679871167571544932293039886028995681551002489789950908764930414907985599514663006158065686651154640380829594561901504768385789238732922986644980056104881082718482206067577672269902108866769746165280476134001047612705654451914691319181712697202653264559503660250618503014888680956480620649086925372330584519456656165480134263794032857572247317228607900972547912790722129614382440901112295454769969141478606309925539543200988081008537191462310400844747380477209217197145408207757780425026670981161980468110131954682756587428827170611299900318899515576717242115390528014852016446477548769904264035082311196925232018192458036093083606327304170230979599640786026471632224138578073545886689534362408884915890209591632146098623826143003329542730787727193442090464084467621703478264264184168126657400768310705079784997481615060234272093660061266525360558073412609557327160995276560397961303721081715733953680559924684079687476840200048936928781221321198802995096989063050294934948688702618912624168822161229445602384466624447667604088424428133725279859439311500141404915511532965502221000830846679804613676127101132939945790703596610412044059606372275441211301493521262314625103054047371152151205155164037448376572325166300316389145330314726452800316973860513307481028560554185384542885877396524238436558626231814699404048998956221098696162497883666202216135889065601485519299373522061915714324056399363800938895106547255363784728176255179790144499350877945131143350803608317339262921988831721341522188459842032561026531646734318942207157901516223268178990721254807219108110642087971109720977633418099555965984882216680121936109284006937572017104383395089591214421000044665344565912058264647772866204872403372735962350989070164813277071174587447784432679903600402820975536724818381603502049583518800569449260808048801940436437931872018418311475151609697102954631587012989567031466496945530616759747485395239236140747989145620347269911693921392138535090887366504461258265128145778051780092153899320679341397518946550079072466995073853398009376126164975180476970608672157179379456267867466355071084705197620810409633899683343484411805184613921547118576640515740989960913156224540991880175806576360259643683216294392892523779498818899636759818869016506862503743682563347225657851435432242088738169153045962585193186904353599438485389640350080626411343524616756502561780068385902008702903974007634736885490787813015065771944393707773081761882811055171886335591819484932100146642114972167014848905666559921645972508205033204197977712233220420489872931627733692979462289813547167568403864210646526624292575601375002058745908495842807347954981376631464209912722669342729706201249056654888855971781141446446190572038295682491723246886868722698638005948270063776917310832479713990928071864800008773248071375918562746947823844311624305452232832196274216801635286357445383300590333834144077213681402647126932431916921166979834053242054049252683621806605871954041770806698085464661133777200399978419655358524108002066706532251239852000568561803632097817778155809822462230043164796814218347488729402128875105546564896782628352004420306117215879026218808987092256805260166726157207371047557026260558675741264634837214234076552354849038126131921693887655377997447529714776123775091853204364822435094532151749127644355162198540052169565744426631575820616623179180702725253641366450792028089063417039971640828111785384246468219185057322606431223250080196751344487413315989576422797179730479396204803319705025823972691396234200209938129851099970478684212970372496767889419295552026353546840263342016570961219488289078545789577579691548252223869412376128693991273878649422392784492955194783194066085943621788434851087912633925177853931586630258128465071898277497077022850321074984638771550603361096330119785322762724608961094749470163320608782278362124497765365290326385836266085772161261484795244688518722994084384855416796350493898169783851560781377988286910840244661951122461362823801334613036614993306781130942711361870443040961997984742629778673768128586706529679616722972186404357355698214415805006420844882666027803261407813448552169095644482713575282377805509333702660728535966452498189720375092750008786633975231156038546977573509372467332959313202758552562414410841676869683367550631175115283739341940208684840021832199141303501069884864263881302275760185549872347980385276143269314085006164343552144955004851714885603973863679902452996372786655143740918572187119612096853238243106894934546434676958780555805100877529628933539119640124463657753799681461115722851160343056713679029968021110981245688588252244344604782207082412353833290776327318475662370723938426353796398648471978523481320915356619114121389288167105957437650329683666890883101905671251160485795052203481559874148366280883100519434215657272398175909060561234956750381487246879353887159670303069333698305266626523597341674484534820441234016835038589086414665194969141275167541136294327195728549466478466413472231446548806647652486999275976537513709472557828774795843840124918164530321270196364742680904662597353272062176087165137460397454582488842221515312589294185469114694619899753116239424707872859121520850399863776577192427021639326140116012372977992150163288550697518732867845636534321777314415275022274255120704958003122167156088875264417035632256716841267422026933324232169593303932333164176807709552236051902440334985132951846167107319851092162323708751390877985456786445195704180357224112907252178049389069742813247847491523035643121617372205618813906269028487087018499281952142425918362062011080510372306009581838770276113156844810760989164612952650165915740440699981853482945602744689951872956717984613433394184431798880817746136659784883421171948457599327233358466586619030321276697144658460547207103888285191378768994716761497424555710279701282854639276123197585878239659845358866457582706490479265252211828689297364441476407085073401602183211190864424055941182500902571573059955915106244511331868394403054655934469419460535876225244445050890238468716220198208759755698346151562723201040966727125575800607668057460095157836402593708455017585148029716933141581738847660347569288742393429214941561116418982961760313087353948230663649848027298612851580547492615189049415798737728176014050288461307827284128968317301452828111076599422444187380270273328957491722639735095781291096407547158312819505836902211939109682009173418628416354234993848467605435786647098313266304663141056226019038669012407866569429904484662448122354181971849102960877928438851226465833614476926317354475901411261814326486209204904325839444618023595544906072452235535490616333858872049617209918720574473954176559764155847388930031599248971833841750334889398639826659766369816866874906761631782840435966357670799506113655710676879885983356705167999562356273203014100998489182975556817023095632628262474123480756152999773792155443987831829232654018460185938430030500591774963963357930266328534530215292287233785402806201896152941906072621067712688290380333796555879910140704544746908691347044039564207690366028457374188280320631807812659235896390702565499218997814400561956679244982263081482784141369220245314950812564706090080476311424951268699282232053103768564739796273287377564235707941018017277101034054151228886555313351566906258034842809607337735078116290454644996113055196151356584509967079620318606685767942883213511082002107028333484910313358995640064146018764259807058805422981273622595834112573041984430349181833039147814655425200252616014763580070269886855134364913063556520125832760071299292877412990821958827446305630553643239340530850790299142186655451892185167562559671250863849747448756526803827638920774339520499819572632930401927852927483149086169441187543741632464275748365777798660950919304393429573744431390109768660437529847905640537872225444929784823971931602794056109514451515596635508216820155008446330625150702796782595605825733658703726377563574493430416645686073680933525897218687967791221146200545618003424743655341491352335890683212252038360694527866742290590283292595093048789644471701222375678041059247162458834616836391444302719835907671170019455335286171319290640559298253156572981512714233137060875382298336025004060862394687949425050124030198859206084825452619193563233319157253183578306174257083346396431548642685433918213727456032120541289739760602684901267816097105951985312622824713553730524992257057773941071600237207588769567742171954944702855339019158907693300533609151569016670422217020062019107002401449148430785928085304658226576505110246447044138899841118487739813062360814585632532044761484866967869170755217343425883354350299997887096836559311449710575126881727665701535709946318673850226278016845414162735957204663754955078999310474992289835446262242686825356252703754154420101900448092696695368232658084535154438272866883704869501200069597450888804700878567658030209321820147649132491317462674813348121789239278097456500356536221624739320747484822635121322209001130246652312249218271910471491372840743527211523753372811877476794900639858102317216669638091006687374051425562444792408395016965825166651422607679268809784023737287061435560178574928729569927301604710639038990092917568691943125853987139216444768195481201563090162873078147767087150167453073010159109212437514302510248658369983021259435805039394460906118718562070482962664328294556717437189608717737502811327256206778466455878014363327753742798429785337299370738213729791127709542708455036549016288744380607458197307157287681188330221941290813248267481654983231808554803963659937798841511237188588994933177557883287972436994638419456923962683929402984694056090762198206165940790467366629711305920152196050882294017991386149004045219204418529697827190329799610840135581662192208760569432919596694053977089734304435467100526941711498671240476128188948645365746991691552320427432669461840291733554533833372229896861518532984612016067234191314704846040181331317930640724709991090172790321053348023140186877539962953936716098728247071420722519294333713386575445394893836071557443739008241722770026854037325026253729518290710514238835758315311194928390396481510681978168915102101913594719208532936000400537518604122503209661452730082372526789093780602590277506014875274801065100514123240233361824295243639350750360868145057569264059856992733824741025963883475173261080120272088439032817665201000292335231635095463005584024138882289965213923065811387596208922362315699402575023502512520680941117410345658394070913960232738557566230065037819678824249868159396882634748037530900193638215323909257574593526477888112047570858618935034431474353857784768651324889184247285603196764814095938335474746666201626658965662578667879274796818694838382170975530690760489914592787734082446819283192230398270423313274089465287474778190535167490465248249893549693273129497327341917412199545108529433166317372892417582548726731163950301004919520242206632047429582353408049720991186784131124010357090013106550918300725020905041855265155258037144570205015462605596830859621609172219129295390393260436897826505698497780895411731602792556997460659425314986786204825042040544933309887271909896346570290079787646901782310593709904306541365518646514575369474795754205864932670053383757784852902232246910429169189040203642843765362042233194225156426872688450811206776751770061112615829708725631590968484065793509926060180969760308579610039012893884247546815007532184331926076574193076257354872742522512201228527721830224634937893186333012227477587058135550419977485473422992347595411493983246932929494964805669381525266829445579509436350375063725235916559415259556369027965719085545403125938432463142960016010198658844755077065713983252707442742814791602391757936669748008907609128230696139766525447775429856507877315113422467832066828110557574991192636853769671266430608405325068299776054937424449259197001137202261186922990247857454701015135439574187616410084184219752970884601415185894378348403860996365061110769758801180619977466335007842207023283825144940409650337209103074950746100091497353200951675725797647651165471968047673749180655741232671093486738580958994247871678220674553614075776870390858316795712755232702954561469462041358884507536741093193745254759121446970616628939753361529706798450983696654066564904894442393807593374712816071348528154341856696520179918675821398238444387309317380340700592827242223100875805386923181033438835962204525377986040785746744302490885018651683280071096358029738172574154240333304302430833406426236427414895593513129203567285617597608891991546568736242942959323448309876135115375328567313500080769377107202165767437050649141227935628817960742407052992099466637665732550400301488671666371373481178624388302165881278296291656594065457033360927214101077288669837634963745410169967452263531993011036923420602297136183453806484337642444162936353351060910398426484825900673497372383415569276734654533105421883414637136810240043723476367803625811071201076951809262952903440525906813067355662315728377019692944793788151326162691700846172076170639933708458631367264501040739468816371146106763481461256703826667341900557796790823444097424291384850668797292089270887461962225543050162967294072913183726733587419902962134390395446063448229461943933233062563845136797142003021260120173313836617511778517296542621837709588395470963177580815369183098407555908620630934113159406268625752995142073814281719748767392725751688520224620212697436024585652827639793090016943963388367942340290489465894508185908727569122657291335758978429249680907806993807966880050800905031779146903404783712581581482617449154379998698210092669319108089043367000941597436412758340908687261873299755990209951979782437416161373933750188456990908724714377303234015851411320276617330543650279272885973327612624035824202169262282326900137238015247141416043391580533815114454032398870791970235269941447486943227422462197222348919097136748835031752558855267357495359033473098066738534301720238260409855667177929383425339832397364942816674244821278105291968355836480453693179843077137404680567427732353909886783314517622292586792586341936704878119482652301544302272895379657289508372070418584091014126026676366934494944681933656590884934944708245124423253436977645155068597650516989900962833895427527325696945542188662559591152700489782160522260532677980467864485673065096554601816167007988746541463132046738643696510398700329316011577169704867732126201509645885104722249601536495582898459746201050850552487164146117020432134994809636531074090642888521827829360274696393290525737173893335440473392813978806320491314765004102772029870039319748471051471214920441124574113596850770398871492893459131181571219228158006312558590039175174940465856335242511292398427532484538554839776538396314854557519673064041316548592471846374347282780210127345496435708465091380461201131928595115934627102016474161163067835546048097560841391231514891295933266476591982986475541779171193123306587524374595000705337183806343738586999956628254462787489116599513627624874073017005457273323871575823983364197845593936277359595315619188839869101860957743728306391623087857619194727533705052006870633219809908647683101081254707131651695544218850461430326795634431158387543847248915431781376068756810967800144447094821629063214486578333774976727839081505653928890352437756778489924986990860254313636481303604886652232255143799051389505370170717486621538833170869965175058348534681576432236110110487595296375005139984990571712997380772239503017732718905218695471176908996159987210959958654072515723362749271747641075725143515927411600486659822917942073369662509699206414599785357170782979752084387855262053209835632019742885403984493236497534556259831665972169338741259926959419645824869228075020509781130366251189798579743854338722882167762492318773055073610495394166061155618567357753969930533657041673807131547423608461745581095676851506680047947063343123580478653093521893773021890919301374265203018641570238320965896987690021302577930520081285570492220856668585536961141199228379089428537851838779147167224813463950962762365616588853203548992563675056315174076411372885897789102360321895222658041811874119314209216427937566642788029592329217955618539080745618506760367682255881410262923362779703089256250675778483339731549971915450221244968484338225570777350373517624358766478378736628821548573564316014908436250176233979283150315918343719457510755738363478031942754339342318370554124461330780920538834055793380475978781732673002892146839610349666866583666771458591158008903492032074719778068537520404272762186503810650837146936709462590850936463788999877480540750060088732082235520594527102540730368253348528012856982260231932004902245007668871584355453786936890957931654425072680888902973070454276114672109721477457332731332899017933024405764854798805933980178113292314343330745187726620786590108302322780634571319158647762441786773394153262831619502841309302892354426573367886549310464538369577660536099014967093595823043536714581765933503025398013993671259879071974731656896559842073924110209091704632017823724532890546442527177086934465297434239184276775454595799691921888150500007176652984156362922698870316438116584726263681749940445481556891824005534929669448272595226119303783569084236935408449750636119832077805554241850892043839792016975946549848237631953110357011150987454960887139512560469511677767154079888344103156775062881412200628525931280180740777095412239526078308402891473889685397172264520618342183883102362677452116797096169052967395620481424755853901941874720083597964245064441894072326180741695440807342322540491718884984303071554794872525282159996796003872509472402832545302848992706682949893965893538664767739074125917918296872623823060538760235481188617579893583004678870164336621006004361223002105766032133434452750633754634303436399066579093086357181283510402889896035492858549147607722044789232741322994669420108181378164927111168078580751053655498201538384912543600680333031474455186692573003939341322855750397015208479610959199870643726233686076645470217985297687110480915654795776159740723840247984792598720527412462074451322617601246594694058073598978802360751677340699099490468825069841311665565933045927328827641748048641878647235961598755481376778477199983008977915538442899050755467891051140875942561567484883005333798636373626801880705153624271756914242287056007417325842730749930086130418146757519660560609268403595419379402893601447039253108174359042796764074901000359104995244011880467138470066530642430660519219928943468140954673327643971925569989252239813879659421223621317074339069872008530469686638486338530538648286786768158093389319111652598227019955357793957673275628178888649150596322208462800005515512437822109979493997818729179159212438708047700728750997932972407967638914155689302644005342663746551399297864129872769103677363395052396408415323133109819383348830570874179263826542387621879650875338253346997411788652041198657137082037712862679761232879621944568408107358572496083327265057360588058349499368896100015731494725168685989316637688853383961983381923327477933376374565160077991319873416567524971137531938321375604528693247500020185070436629702480352677316281517012973877658064273033866650339090578576121519644449372652522173126021858801368615046519200142565532519027757641470025940496279682209671729037349719349315009525088873098558418782915961701372607470401926457250539636429283140917518690015611647945986566376499243130435323658919232856808473590110443651075224593215980133319647334423365585637899813867018658706593064044374749870795180108317624589447894292506133130269621164418316400992300433857128779207917721872469979447681033570698120757086179544866258132236652805032323912275192497346995065322117049250630493593939297978801783322097135586557474838781056800062948110682714355171312426023829494088304153116626708788853788626731749733909185699832890903876282331843108667620284959548815668620310414472345491767440658510527617184218170790499510141113266293808614672994059477878176086060672147230421340442269123095633001628602265118491803352545159602420227662203186991918939766282373491059670586922291022503944619709618294280572642176774452884919870710479458296433178330879871223899745493061684923491825151501704683942563037413652895628652024976421904796040204139648580060188639083730304058444959897414412121434277746529123098438341681625964923243673085578240101431935540877916489556671016798353307711087071523862113368382912154954802313528147436649396701746920143635202155479394497964345826045939777806354686344001445500245434809942952609593370316173895701861524306027286998090989937021380350766403350459478441045094353450889299980525328827708649212781684908270923587910981470915004278217013407886278955525980132472686376995613133104827255402198260008583974842531555615583857425572576410384794383064199428047271909139393529647711746297678209641085685706963080936704211057426624589612452362324355473466721613713667813449930564664331554941332039911761058776840327019236127724008314690123946543994097887095258799250055304071029962314264699390465064871268184961377784296522816596785781835321412646123708819992599235171284803191986796451958538663668931678925271054355824138329988520663156462898456013507463059630228181391863219614367429529060064067820998278041426918629662203076820657468121354852457909058850059483802650843796943075762169710343928583698137942931553903189596569723773402737284796841797592006574974928309900238491660386509564877675056553697632541155661228844703128232362600824920186317703820988877136831169400616464171345432375589004999690796875466241629966415590102028355855260088868819854707315880782897303024952626748793613292801245639151482651058896173684929059718241666674480250497174853855555837150225223394348691077124565845232225104921849459890711057288054903967119759563792416010639421298794570152036767212794987094908292796531100428090991760428954421966838240625278683950519928240413226837074385485662544561068952692361696175162896257023921311865035225458253818405788458908168128132194848449655697842120955313570306362710345389352343408654897208537992554450055701228837638285938234401079803355502996491537864969897662768024792386882098856988637780910029924497687844085298781348718748572040307687396308749033604370268956216888707650221796439221856008252361062504113469616087938781622294594329895265367150788808717687845177796717211755034890407258209422065050143417295598993361879862280390682317369216544784870924524767744402479525263071554533865941905598474814653493996201978148378592540905595581948236253051134172465839546894587872586673229927856151929332384258058024610370175446443976808657188589540281251277945592698125031892438381236490316378780426811216532921454647436950785963018614164344985041955057550511039086522321793733981340764097176479196654367466120369073211738061937206683115131572456435049401693357900243938250614598783767165877205285287100106758536870939434755469608092954961932570098791308620130765703530923240551895782627672346823484100516453170795831817322883310026684219440728555619401298805577809202419463474296878426234958328663174286963450172326017630685020755249702479791507415811028133373709575154327510502856104411252102088348268160834939655638936096120843385614241840049529696494811175849887743493466641904866800725535564554546462239805946634848867255682367842156433462654156216693831672309663519144789159376276446487353575405010219236215538030902195080567352603729189071325528816593401675373115309357813104371287090840811383427826443931932669458474369536867742491369612586638982651428735098872154962925252194721360955385249818052331301793241169860746794559328574796459213650010536883302023418430365380094133720810665140714018406642568109784190549172458401874207828384086112668062149438866317733047571962521429317098643694008198717456791412297987510698439564321651377782016906360749372883091412972022611361175962039190840065285248348854538858979821896538660010878459716263506795788873379018823937936869788112402762542590299278567966896992908526822548409876116045470062388943972222815491496452022139653281059136436546507490520206914377025242005314608669920058561664271192756696328652480772737098601855959856033702831011645834269677874032954266313190724535435569785635539205127971272591746427693554546441412621594242595162590600744237550371312149674266375558701396274371713711273358947799258681092644247027549232190493583826591911568006318755420816164390660292534308497917921768256046936041686250651480551112392980814380351412486744885095404294531017060916811903300203943418235700589334214229199958117114883431837694602933294700803542731922713057345084770863892002888868674244443458990809529155634092791556144608955333987376406547360036702728464528196319876291902454902251419766405787165072777944099505928787005009190080765237824303213168368001031797828608908288259657190093647318454215614592134868828916060318655995204202570008452219232424262212718048958527365736930377089820163788385995881347502041721416621671655426016579097453783710662963772888556297755059636950393835243931861651107233936299800367276563116879862438448248140953506987434601905606956866919993839807304640897773669732308752821569386725366089074237716443068751269556477675616068218052262235382288157310211942719325682158707800974165918680874555736378109774554890090819620513028068201544003720704937072420899569450308758426283722129511892657582377016999202436543361769852540558487366137686919630318629231550072450771629137203176661108908655031089902324453923168644898062474269799180001042316903422301511924535267173440596736818337850698181956997931592332428885406091502431235892484674626416258007673508278315461434897748374456499400354576497327007294834286117305831050867357862752111242191563650443496297414708773883287216141749112384338330884545334502230576436976204333780508878367793529101847158281706837492114558433313396504906640295177159188544797372369723196917786225472029113079928429045408926964213069438138581221915301236456126365689518580028698949376862449249018315346494525427738730536634479460963342719557769503835780793530690561790609375613030234432168601081200268564872208528456635298207115543354419562739170119744241157322980116205984161196148862006841343001840630799047154286192740071910928089749674627562755932149242470710491724052028597841199160140931976016275921395771567309048198469761994606113131663762021909323044721396083173099876789750049693172102082321746936415035945794132882452633001725184591586876469006270842192368029050071846201918476246162540272584293597063992302309564941868785851022120607034701169434327878946197371342965302388127188493496976893148200648181828706843794790537805012180912536100981444414431668055300173459613972520726435308154437088803613017613997322437529974433251476335444717488496272450184382442092932886364882593785344401411515924966157438145643830769577595620650322270038974671894886280163324460473890073961997554643290445027634614561516703589875634533739163645605203928417071338695995017690317170173453734521319240858687235355975890945211405700066157290461772252503233461912761062188611628464421260697458952297644281029932544338634014884745639780806443864363042403024184073183259170997275504309740292841384302035403316254778309272190272872884490904447304670921997049575704897844116676847246801066676785396551614574824839974228939613298407292853487084697095072493916902487321568935977729603822185153967741070298364005010266056055496693235654157238228779476771542364415197306640923762737642462356105935290697862826615682845530145954561125575908526504777387800991648728904474460868891958575058557145474173640717861523428664550480719913368506846975941458082526129405147323280199159337799744638720831559522117493469448061156388879968658446750743282548598472897229570721641324469155152204697893905290630036967416263711481493496063154015787635967760936511189784938602763406338149853462581422703007484533176314188700052161827481843413144039758841987635363711584773117357125070172276370581611425704787981440679120575819613873649889181711034114833038685129266303159247603043491315153171077215028575581702754467774422402806493245413843649186997913012497911875005317323828640161063510000566614495946206644726386038711677537471025970802605284998310138245944996694554903389770216322141130534059531888301204917980235632880522091029028450214436990277464577609444967695688307912748273404450280191062406231067177200754403396783523643513302564536540341089075170746949342829055745975842107115286271074506074269988310881901001144613268400290119105311048637978560383835837837038066180599392536209627848092834680248629886764908805535198050837676823428956122581937390561658234900723913395363615012032811798642161145146037504869850328606508334473954042234452606297649714475675698628546177897249872596566656922534807303321769818525615804354053884338822127542043332556314580440900333970520912125241814489987059425972982579565021143805669771057661082372039513432654567572672791282416099076122495302459484560943870493124328598226548678143169714786280691053777855063472115854321567363497679679372311830085010912153517766656158038447774916375736065324159843270117300488771018021096878583416357495244453496984634585427824221592674476345231220907388767621836091990147623981437085733011096001505910071945188376767854086881936648505483792571117645756863551481050341741878042792992626624611298376958209137294304257271611543020360828101246639107801652145346568511535358323998554571955723129207548270157495119060011609452450430027824120413098799444657709917945425116885873378973374266772965672077319818293497868518984859379035633534407089463691266685254421779554864324261337220488407890157583334490289782452260683574312466762663562440617952249101888692481035407352821782295499527940518177733171956117576059860243441070255131718469970118099695428167850609851807938609614157722894259774140826516453788736405989894936287280436065155337771549742137750442788762041983692766068563525137934922614535386907721263822970920082505548184280893985936719804215829562477112904305581300448901150905283619366048571067037218353329963690508990567323549480471367787893817148804874774810966828910096391232570372853155378268967808853973475454311489090936335449675987787571383147303175087537906384356696589596812220032091800246266397786452676189497510064741211652661859675378979335924225567323643890017346990290186013895777945480825594633682086618877432190903390365639009564572179179348891987894592304826716378805607181379106250393005491259519157412583747818665236865854112362883554699256536681310828050835755821998127350658016702586557861200682931152014499788476035356266762710682614249763084255748271925802063512948554349536949496494093934006548012759675715082059600571012435949620272985406666701302100328806123817623530015085993257053224617068711868580090530588407507189456463392302802562362813959190332473999301925077033239789664219758818139407905993577941738958926056402320985488667636362407158340982749062753066922483006266778443153654041159232121948837343613963152034116479567164097801552563200494710786009495054335641732848239709211265992987696399894144498191027381722203548493545082468791732577956806275796020854762723521987862188100799882871993645928115388764632218594923669864529354515844884541571402719117578503684686270821340458263855629205008752479000370544172809745362460285493488763036096253280738654912918619444742098333967789771274441773933830535716573140057651096122831207134275235011944656058107618372885198591975189649846984461718415221889528577417192155128500331399845539948824210419475105063503269154925279335699303900848981571624344864540051319753928188421641796959715692052145934712748433710790480652026367184889901975352255812637928015103826000663381961374812833179310084479541879497775839663080000687717732933943660163835879172434426292478258758061213469122981343535857705943776956906303314584499683820614691361270813162643223049490781570714005943710026906399858678464150228886726749230349458375819479041419493369353971336027832201907382651703680040896224877546617560118224129280124786868084926344582610315827566912680173420258863637963951484919698265405553370572866186794789790821525123286073224888327069278375512405311090326525159359687014825815327069023687954683330651670075950074239497840396449476890302350665039653410961081065866845681818180034227472417158396958732698345571231383531515048653662210077781601582147288436771154070934291281748171491148363445930347039958445795263065757638705003288244104281561704699532776860977196152364018025436673242318800199170181687296186069415224319174382499680281490477780390133548399882992283430181676688530074507169794818370709251666927515265035462363180885723941667612407576455511336424332479023130762689863091905226034781315732293095663202236196303789041924012848283444838293877753765845414715206111615339050015136277532962459310826706027219757435880456129621092015144731424955785437902353243538866491771417472966786482500654137941437404808713037181411112892583639566851629141726775440883421850162032079966935068876697842339763527550733647158634518925181291097349764731149115881378922088259580162678738293601553540010879769604672046388826205216228170717214543932302824416210369735896464764621277500513523109051908643931703574913751299781215347590955013055773259631251689864377852054335466915201489513395155046639308355029320341145271211463588684753040436946325738357064308629784392766297219112744521833681036881979368405695343584958866840922209038858363603721150526564188551765819637452977461889135979546599550861468782184241389127019224605054285708926930090451329702674197360956523494093140770456760968397437500910164842063855577628333869244346318001895046981551820782750754002932989945091234056466619233821972016049760044079780875323616558179952166239709521879997873293169709408571138292562514103618064102462114616446417823210092822972035794313869719810695092564006627518698533945456678085709172374377387609273288350468084737882485823948647217501210101246966141269611724678920643012578794202497538350818243527783206752287590239494307779470132898615212877925750171767385041534086771153072049046120877469826174274576669396535728072047816891147617345499947828124023124727370449037185125841970761544702629689136219570578571573346538547248306574286868362351137235217133552865208201213078665093523747564314880258788103439249451607873379331736434281423651093202074624487031266597758814493000972980332682447263468834313740338689167010344137717643167310616996713615614402771516194192501246929094093729536573008780448436990124306052430851774649577786185419769110164162514680954339968859022347678424940303070164194945512430326899191407354093580557267707880889712203947386060100809960028391967980608135133544360081648575193062149222779001645770895455865156083861095695564215312877749498778959426396973843803925926596815249896348632201384571103742958413040493310028635163335499149326838727787622786310479500459300510820149683267631616427947277247161340088429776319783484589248970433137459334177599945921263157892397568423658863191227122244250240032196803704328587242205358720811966030461981172371508340589004144078961525748735664271773881595942463584336541422788137309476713953252997835866944363890515526883849467348254720524834309453417932028020930683110387465744552304933312872345985162871208551477840079049403683854344590848577812308219498288161048853418653169829045427641379404730820678758398006599877657669729508966354832961096470704943315130343970114928951975778884704587256846497921382399686704266271652187858371766178846830230112461691508342913019347140316442090025337215065789538297663464745251112737561282574474876445351435841023429296229249827214426600123051040487023835791026293770529444693668501705234867030741318793885992065008909834039046443466828650456377204345282211590201013395976778605210798401423633761490018369630405523508442734349112329673615495183209934041534118179532972073789728868988964127977480823670352123465728803837056164988347879687665582750543967587072033713693673385658103871909987704882150926871187182166957798044601425297883546411105670663160313171430478493775773778895561164966908704944870626919652839979643455667072912959582985440743611170021602538403852470415722795555959667694430291024167635669967996764860310535968372294400724926336634775330004060194001376630863235800196505045677516869635272277698768313078290247761540562529826479989744546236529438187783342030322655121500995475837985614187717516190097012801430624762635347743510060341718389629417004530695101247465939798531380628627632878544186663132339527693028757581164130181355264351046961454239742236996847514192326936894600641805993031355783029889603383637519758879034333932157496919217738827311003822164156046304335398972951945892602576248795957334301298312832496935579297854479524458237143586659371519574568541985634001157137317279856694081068720816931435487724724907245809169663326184563972031738465778214153054675520458662358171075672174745455186257375062329116295031635203443025731723947162376124849492009837349087462783869238706544997907006939951601463745511236283620450901585842264099759208010248329460591040418978876584566369248773669058302116365554766855130590518507117417171091935250563727186584169869270731119529015452731182125476861109952121642512951139139447992230599728460039988009384888482819218437266226407616669990555044608316928425793432761272965548949127536470195455320200011713752930677473159712076560858269243888626363196275902767186372012357875325463353847211882855844914280874388076225453504440564720646640400301029631346192112620354924826495479796076954048827102937424502031547389218743832954184684408754086719604291955660369986705948019802201451148769662897624705483864310331563278073823622197770045689260263943579765949622181582890641053102676057988511397627395722803412959436113217065287612710007485213909075916810785620247365967771314464272778643177544847318730743458563512605034368430613187905709358025292077239743351085213360446980710259040149446999440426618541338905826068858260873145944458046704132489474846306260153024410393586502634714537324177255431811119317845221098771819602891077284534516427588919342157617947934159769161090994611262230881877013126003625815911054587386170394440493419745540507126656024902070547156412926589885838590130483877159271860584910806211583954412258193434861878829634599524188258215360689060119830549725292261160285817340318195242534310709494805520522182392105889348798395890480278701427164619603312129395325839672281720042758536203080933065054638527249130747780529124382289009553903816346099617393791679136923445300693307269443236592067815202653460326966817219207507414631851788531303290529256847261273394453866680107789498017456190672307872640465689750337448583195049557269386158001666670414913225147891877696278976884994903006063842545289674652231110992800325388054289941731231433413670084924172755786252755413884448760330352658014323930539216991463997031841502270549527226698715890690244008836467603410906991238300864912708949047347056999022608170167042474746987775338790643849330465114813182559396950573911314829649568695512949915699327275487257875286980682418337583295763905575005657380484833131927496353430967445135921012682381427648805719340723931457937903351536582517846438317923365655471388810429817143727828127081179391509821735405773987409400029389561606050541627574728994931979037389514188345423956856190376594217049039613473219061403354638653761758189153778677230931978184379045843592180026169951314234092755918762305117384226695926765265589146044531088925312505416324464975867878198061361645257771254619150998865751059272681440532313262702315975125733033387981149709160818110862266809217032485856915530923125707578075588044275055868940629355003529176383866141351259412102512159442246951374300180056117122908817753087751229442723026709718257049659691438274232611881481697884606285459019851830102424050260463258051541309639347510564922794526549703940617293918669012267143084614589090509496504294921519106063233987269799910309659534313242155049467010442905930398721500349393059054082746679081556929028505986453350174144428389998407572313865036614809335211204395585234857220475354985607639128581190966901981178869980616893833670012292146400872256129676604393747505338802557524548199996430372359204347679042445877116588490205030546336989493698941684284699401499965991676876342804065768592005577327586550599169695621178611291418318165729923980343866454323783605418260039451365276459629796724572050753829682779559299705875689820970870844793035416485459123198990343965857007813377449768415564447857995490703900276168206792814511308463902751927902594084142640940355994042456666682566563672979322332113351594351929544431046760006396132515190440317753044065815226220891316978802547179443897212085292792829541786821979956975179456218246678760725629865608494078025725751266916719285697395131458975379599487491958256506320501560608391664344286548274435637639824776408418082829332970193579812806446680151758964577283425562034717237324674804074020668061338351158116184303379163456432046850764994447359683474584485235448925599122017435615526855285155826001079776155494720746902509927104655987505473907184951448760588774843441498532007985044378712125777394250632692870205081801827942162025954881733966900281213503820556443892369278616784751380020843394473159131562331465820970336526737736089516970811595282092843114023364790108917762757952519624859098673991727033549018429859501055133410617666020374851613245457177874841090442103826365930571688060907050186939314856591327817388539594770880224687950282115123943822940667905179886961834740999662268415850354218683055557422641208425714338405429725013520577526896488081626977002246338545298971994002590203913899716069430957579932776806111832933582004110092107087220909284411255301986330324501710392830769407718583253831608291197477058427425076677915045719143319471243472499686705621822810943401643163995087050223968643131373203199601369084885025441547896921582838221968595479750746329734748153921829017842066498405820434787780126233527416474969971682339605774848744408209253087057631834048586663118424340695397253917098616862843746709431068032924715450888879872324305090278482356983911253306545408159933756752530361016694576900935746216832911901036082164823869367948002072601419173653850288862400567589185246238379207192854511952087970610408274620117272465055646286576467690367124208294653935494419211705473125034446868697597851310203721786989127965652886876911901863951553040278468811647648868442097422753322677195410820111341503172532268948406047233531348344593437387884560861885196830676519353576086143684612926377211877408529119967132848039870796236553468882694989622617052783955727800812559987820773249784074284604572431217948681292621438239308245121516669395421079030304438028459542000644232576931122405983164084956456945967852792052864708819138135599827709147992321782694297075725348504897751921159699223309847356246617046875201976008188392223682309558919974926809723691374158057565711801061301535393857033114825198361717734916721177051590013338433139347835579992747003936166532728659232531813129361374970913783724415707197504413011824501545854945903244433422556267939751317646499527956617260889425541085174082796074463881112350834405313172036544030871899923225233018814394495376341836119796659111956205245509597610413395070452204973328388062895259392563968030323235100660382084552424581765687430051445268474503140268928640687281206550010595265192556556344775314693323966556167912080364972110130918837736555940173860901387664145633392852028838113474608112278126982293364625488805543992468983343476021030622446911927278823096537654206824179694622765935279763105248684479819274494946738188795717613166066622935619470124234631563175674451181834097217724632925909041655122257699750812404424420811440063744839651824088821127293843493756121483378911175381706098528913932063981739872399449158034192468798461527795709929302358158297030770592917589606381621321387250127873419171361295881454826388548184760014795478329230455645915071223440269170157817760918430505468933613796397198907389043401833989397155267209447730447998188674469005076894291229390177662346005412300879896701805188965594105038813476552855444083644460129575911370663123363353823810035950830908745224530252220071566196218730507871017821250991312131089662432116074354361345078407298708887946631177282833523039958280425750503678659305568459340745012261345864301806927606620236913684564801405142472351694939008034051369227397414494801731284074395794561710600956999395808162804028528589636505689733863252415080817983143144206451623508144781822553807306808552138149832251663467066259914415395477303099386705877950083622675652444012277385140143535124451409408072955684756926835836938818464561980339875272961142580243479245702634077294851617158959130633208589739776086292643277806801559510459577912301526664854786550658538789318814331217310427472389114500706340218114041020477082806050908079372139993228722772425837858345264970294765517822692739612564668983074273071161313042404809615970018116433547292258185901170752717897170714194142847116476153394253282605877831188295841215106278338233044961902507544725291728730180116213684796252658742522285831382304031069011492388187370006775359949566853545513728930256446366726632229340361386066034997725324465893039598153144905058711525461461745193602853212757580621768616473251728390906284111576211837842214143591409321172255980867055325979313636803292229611761280849615559444143454967695199324620186777338634604754134471653536897197953970329094413001272374957749068419928538701292131169374441092675239925689109755772079195229593174899669159754008233321054826682852741932649389621558565509424859526690520268485320017460904786406345481152550242951257128077535808271573612000615229053991363612250375448195890424437072640575010690103054898009502602397066592325484816677598673811188505975460196617688239931289488536124346432810964901924347593830302669121914033829334730178599941920550799531723652695261608011889373507813399833657663148220573267656370723466165072097022158235408485396605273747652878617505991361541473935333499724952882425251763317941372225433441176058557574907481968751897826022109737384671907813756886130081496861708305763525397533948885587554354469100779935719347881749448819023026113751923569943132213338847487030831859232012942250808670715230545182079019794593409230096970798633266536579545340177949932417303816772432328238277701904921272621311096987484214883666714030610010418007383697170653235411705464326906887700565904998304978500180198717355860509320311635017315172743914566429819525540136032173394307982067472866771020816647261337159483341442372290636452443676637909573592677221262300863475404045913394158069182723630219264982422329796413423179929033627841990212749224114474388150181664200999568047516013939570720496106248916159586861462939725920287479355774580011943641788381246327722054506314664770298476453167116459001974431344896305416014839032130325817522774755602612400505889173684102155685021843137589509747811002265028036863476634376810368077349155588682949778482389142484307576634988873265329121022649588339559187430403266179246875460974110578062173766059751187551764112312271858381484960024050591136654535000525286025911967685854774075362790938948734517733187684799839763662635440194775446648929641254567656164613464626396418228426222029880374202327278515616146190915051281055280372130960075243573729490116615525421363823559062435216665098535825677153200562346491482933365041462086320368796865335944178550247822638928120706953024064723761358251834853188646471222480197924902569026376253955531170982813679148703188227079031069270688659762378774327957331989933297746302058050685997007591648969207395037443237654792547292940007819232064258756287191152247525678605092715082564447567838297909025226002602847654296822216851948212830705895305881869188443720365990914413136059550718225593649614605795359654664402624930871229074333599851513825850033209755240245073213676349561136508626728471983070871925447286595225654381111808534423834730675251517010475026770413328962654754561730031652950471754647899040962866831649465065227375527135441242389548598858030340781152340761187056605368813504420970380661126734848909624569529985029997258670617062182764164126459014041676504106035476665202854529604176711530991048143868356012184527840564552602851640801847508597546545608125464423371938147264553419757633322752207875388008440936045770883368420253291317976540305453648185277200145429970055389519422680269183012825399946341700940398112630985558084601127790493427795661915696423756990290806454139760829870739615214024437792658637832024072893530995520373231441910826488026175888246586626414182285639437086185070333244335092482015751608782575216171433134623762566412448836493048634314751681541700389393121841375214211082616213725018897196647008440256875636018059688788416960997039917908937924876428052914302292890969774723486849690302283873634163108469088662603367151972401076386230004707646780004193082898666716710232720462524115918488107398377681347851302845019678822445745287841204735828331439055579765483337568701407123558227538262975937654013428293189678056647643024000935142425705484389269099008978404764983255971199223173898851802449200245148043117403746174254955723438670367535942604596373673608479251581061728367705907717391691983788100788001846287023599457691467574865235292176012395155148176508481151619661655988798254581379015053915665609249704815887878095311393337811579407146111744219635110281534858705310828661445688990710722807044406519377026180673847714290165672577276532596562916378927847843843573048155704232426898253475722271511030398632578530584522694058744642426620761259116025805315574906550418948631570086930788607690838117851231153886908515462338049528476744566858765617862513159395689178245845292085530179419971281592404374018246126311402752613063083310315673012167932620752365502659026416094361189950435012747716962924563168525358893497242541275125454932096607303545237157432281284465476261201095713131109472645288947330426224951836989830201649711971363551468291157784000509144885974037525513041391399733594745440798914694913585110731251606187165654713096352824216189447203575810367815707104064997303747571883493233249461597780733964607614686392686822182680776270472137943007034811024291897873194892219285859091765515485073775296165885393138337734474954766857757325792666176309310719378273430574538666063427865869121315779741202807882234433675201421583904888741654803664278044568505365759284014604017788037938398366174067257598469423786370158462958046715205076080874621570989075124141341605762157047922205664912316759203011875462060774273306416953469397328871426227139193787384744981885632171560600543709532242882230752867604353387420684193616819762596488088479417796439645670254183145884385818480519141413580800458766338191861832016762394903785860368651385535867232627233319778464415806876064259413707041175366089419823648522490444052357106050324228460569427069694751946890183615910980768381976935558124861624638833564189915802649312197833242928831454364726135073838546053080580795916600274305986042320707767637131761983780675822694971695279408577577000153947192506705826357129902871033009810322864403766017498381155723833950931125003336232689529284323909526314618894121947105649168254933979337790482983685198804278499218378068910144007045380015827648120834066188962020130670331239296963092962136246429701910080330753382965592145912516775024445254118339099333657321949877140011169926112290671518091080896301390053612138422139386451736379168155244574889542848974068572699392438474293703841994913220266189867267440571786700514747668640048796175419960495085891896294280577567272259029065321098180561793502796964742113128402683141020314495590187894239009933105422090980940741286904783451251062287266424397882046571041899496362079585965628294592286679291073509136917253518791892411033161392600311995093304095214386534643556832224839527444116647151504403982379426533981291679328205727325381424047271380116436847048553177529533786880114938787188822970921163360279442233449365725903349285977555543652748098448523170149037261828783898061124080417165268121280103615638126637650992533998838180567480275548421359185448316738669489786563670073829106168081805652822676203153136436664064583004669197625901726547381774743129970308497423839174860491178390474178641758761014849809532065259177502126571248127818856797314126067261403372909234968601674114656383717339125820683324835897708230636981102092645519353014188742247275781418153862320501365132819943800912663205448284561812609978089165721215750326630332804171280191954070653153227760053993724393004046222161044863657609641697842148684066231218213819909234420538922836544668175355620080951076455712520833109347469471189644106711839484628232783223055497416221099448925236100920343546034916234241050109664397318817892156155289275757291060257902728874044888985947486886967328263089700689224282797938269482813639790199942073576585398660132315375677150174017694457073533597851473495181490643117770715985290551174251478531270464984238462748598031090712325111046748916057426008830322412322705586499709512626848223841635857832115672150381122507822486710239902394843687565463173461410936790901030133041102031146738524677907496930353429464643621659729338347064942344638882802960631282680749277719947786667961467509599685147392544361974655792456965945062481331314966802627878783833699150241526135235866865320922650364293199711139794341023921762914440791367695058869004977389772795194560353476689626330068320561841719702094425494918691119961431161979661973448687595008378759144484289146977733621849996343521586514561205954295202887485106152976811002037502548088540441809606566005944394514694355744070685030953906550520726484582936946799147500845601041146407386802895904588978686253182489802539118245483911887226561311648090827714256561889078904296345409637130650622008383680508102146042131837802651001264129826780363814159264113740264930421683671386973627699574229334902220506089129986346125488155904355481986706363309440296227415054747184047875785735146617573170736963524526560974629035657845392772742156252379380598416136131291636956651184056440981432077612231309487927796504195251494610685072681795050802617788316803276318075070510473729022144241984298787544858748547810081691968336465657445894983097652514423240122220510421069399330148545768207667213933177677233370735621448913987718008677629950950205668976782165495261248039752664146730928741826613052752810215423723975405807162245947296720832839291077575006766577928230016628382430926962522472605902404051186171683049633192087555637417002331146105530637203692753084267289200321575137573418638736707143067712712823718497375122599186593895219551196168896930000236698954833592483118883567261807635879979243374310273349987952942670805927941551811769439748587931295274591744101329033044904244545994769680373353353672423118894426172139060688631727115080868731369091633276663485247762284644002117772785092847101741050397137416942214128739550096286107701085978378648033980511291582120501600572558199176108468737285102095926365620560959132916310271529736400300204959110634695670713770388863576220455595738450129647106947538517627108890626122025360427079380064888689694373040631354337739768140932957059837929813698090906055204384859850250887421606874076509798074209454163133734562691479052429085279437656916801412483254985807209385928969605060526641823764769771643288405120204926649225427613639405088467853510996597609736639864075580080268516056980443658651567957954493946076339732663795265919193723353784049657284564319630838355694832554568013896513787135753268628661078056022008786452005467895296804193180179704130236246809517109076289597812502188465779055473422882831247036717259510786613816367387052279056262471128349457147145627164901497951041990768513461278557428163551837468965901922200327009655518686214726876663611068009757267800683777416014995323946293771519931690810476375386787019097005904641255513998011414905560720601164470770453811550165071259069807658196056286012763712758464644107249941395542118821624649382765216976047190545585406212446147056802083046385752856964796794036666553084274967205365344067837744976876231311733609747571955195422161387714991943130882531095845351047296861118500176286001714355947899347388923985823086346078420809980886831599544056249313309441472184829975781014504204820113965582188973346284825550138644356153148412711028389802115245646675486201360244230989178052791680149165775443560597325580215733440238389773392186356019049025910347062298457810225232653325795978341604459919954215781772566442629199396776143926537932190539008790502440709190535549120866078900088671169316123027444495581170673806544248854035741925679705515392023846185646491493573121656159949609257251968335093637604160492712911765927638122376885185740817407756299423965101129560133396078615372110973980751029515723598938435519286158815705233042281386834934162510085014378473783535953549645133806474043377040212641372541891832826213214417901962442037140380034552487766437421575398837632398655498934135788663843791696954584013592540684555372806800200776234071651930042639359729914323072575373157854547776416881920396572006523124215399697537699257684555613565050022144600270887261070324536909899345013850166992186758212031010818994662801966499482788794599375460614493892982360823564818536980360826660339506368238476298420155056252110058408361553534475178555331766390096991461623030246390033659165603104070131536413280716663059886613198456697287302835881960112521914326450766543052274105658240664561412925023511038460050591094834645338235500415296376393476929010873073451150603758128814213053823630953678231230951877474793666525175900380987265016370400515638699342782460753463750744782409912121935344130587862022248373762575120694023394270362852078072572589089107700239263498144356099007545501319166557974719341506431193169493811131422677975691394965228298023954885019123506041460473124860000069455395331326732523155908570218860601663715801181036060170033925099333377506549579377231742225012746089353733480228088249781114656741191745184978707100791042178695936575088329714672450759183753887969029032187763797345055750864466262273618835173636120044171165271515141332981472135109959360841368291185643492893038962419118310626999768964626274369125920093746021089412791276168502121428567127992192460000852642164244668072733294516808185114348924274410581550214555733277740380619961149004110237522736656232673202790064834756931009563175657628355042457285005358558173933199610909529551176880390355253878881370374917974553711747397952157390521466642555221147500331826060618401835079004281154137518374528985349440177451551658011454072165144541219440642606968451969212707686549775009618957540572366024955085584178148434651046625996880732885578593462638998620665340896937060014439891122388552693210289627111330473352708056209598968032635423831966221119016397169562023986469388253026707382585716459998861934920312160266319330184739505233031074714139378001409655064103203719280523765297735221635426501703459624884635202085135977382080816653189009205080262674431315028540727730422211213356105729376767521832852161105135558315226573092693966460898149344548909253353352350984754989084453919722508324382904469380158570971297019763124791270463855754789153492756245289749532951225120733924832529160042384981329079573253025488934573643704007273447874086033110943262167984796526370199745404631703737028797454163973009613890990398761649087430769260763546117164035834883601806827902259488234835268887744266704534469089093888333257573840139698959184653748915370261176081886175586600260504646475360519894934533259071191299606039964818184742000511747502191873008929645661957113731616824161217255729938444063965914149297553354997171531315023312000314066032280187591922135736852433565030405222271153145835232980933134817915881877314070099724307653227405355611353075775831711297102611781914269814760309700343428229922256589946784243426083743242412099342139564479857271442812007194877558743353182236700348617641740239591962219147998756241721928167845224587896670634674302404121753611107304061755702294733829812684684544978255378714905078621076067145614632271150957601939286040766244236223065407340837137295790094509434143777932428014623931549222503111716250457995946061780227972301406588329356561797617083862479167560440735352737615149488889794794411783037301390873774322912040292554539588910711840692373088255224965405763066169346160670207969712310282496275970160381259167447324893174485328513096535147479000593395066918030764009290311725079077582125198751882064143078127616109771898829546856219560945951210922702952282919075447309053804832813181779600619798827579825283784241257004967859603064309639829197639991564926348348524374735867241509570493411255844092687870122021012067831850795723893108909940956258310066754593616307424865808740918465919938346290905612655330426935152346249006859347388523250262922839955510433497700448735585335205691874783679945993260179539315062175006219975787347419928580925529110779976466612246993323120261608111589523420180574007102011716849623769958494213734315386297724505542395900845123884340822311036970648165419608700751067788890419615916343332410913096753385666780762025017937701545279899691689587424197240863986969936710154760174024883170622718686806939493277783272560695868670273237224389313731147832723036690537822822062455702943189818634674468471959549579512554204683305214942408575050695064470595804428328388253505749241591333915568374387239331528223438446004409330468597647246051392200004907201892244567790022382901919614761605686149468305450666410726330809434251167033721745566366709253357422691831582309847375186774582874801982664325329117669926037641374548248808722602885022346083950439109811356579802736013240624707275389108115605955661755781789366757709171913439581409946064902024959672039376099483339594354597878729770379352539088491618264570862909199182481061531682701633472057141429046152870532762047401095182670550097326650425847765276318465924998857750184609794306311996965986653082648039800710449679944447644137099167586431674973271312237829493909091404877702765180830030205623476322427323849854613198254204176380575506801659396398430463053012028478832216744437970234736518650142473853906595919382241648158917884744383871182215557635569856951357531000502604259791417918384944274894750277224124882457294479270378814209160365784796624435137795173120987381009595728270803647001722752869504820153484737027331204481943917385662705845242920411254379586956955478445943459705696466453582952041278500790828516022388082651113467229682412633147071975814517034022775075590635701539970617633863622531228293945160420580829306641281274350001566491265852456849234223256130419159761450449455638324087968142410011015396849374684588414720728617094424924258226450696118530525646688431470834828457268670942751570371895702663992889743629426776266904377603824647093223799414761246848061084606334977269260893634743748118101501221477662369871938706553170675099505794370593005484453325602130384059858155785687615905304460125286510878093823030332500261578144055533961292116240614441222329742319970392527026230456036425028346849826087604462312150540579935731382876987308199952148063841857352769255247677950589464863259146918033967823806539278492197206026229145680023721947887496543100719091101191372907224004989069570695928612724344508729572991203065868068634629595191941807440166029273987646536360471427343968004215275958229488377857977733243098905776711009545193298002050255555795872022760768310440498260954025037094569944615416566292777032085398708534923679497438812969991440833992705306463321852328224112703156298342589923151746489632620393600740419738642674910042054864771112839508533697661077448929607419601525533141276087590568494134722140901998353567133298697773123336197913638378010701216382365634862988166208453797424848336050036554796161796657818182517348330497452023075344808600116748026851672464293469621515829322737596302414358447326115935539388604880507872438582169896782389297396294337631816457858073930999417174999956342572550394536530422427075257409342318393925969995584760125842804427758686078550526987400309235782196476965833989628153275628039089793071604775044802110846276498806988028698856024944903478632705719113795250150129069336008049436675024758954935878578436428888440556439153886032509670430353325112591054003051631168601023355954102473059566158073955478824694848806640975833572181154471086854836583994198739627492417598864652608885907216006221905156639625402678297164995564304951179286447158870942096759188849813777364165429739827497948871173623333251886286132361090371124058583463248758636605499811322510898513564167402114179941204854812237062219277204975952946154926486806570174774422880752910668233041173322510257062266687468911434572609885301847248181650730747709304727116844561087265555159773143468874122132914464676268926045110806643264733387238123919170579035564049567565118462951795695345750432498877302073002955385483105736990952710580601526694992533334479532920856673793217099478750572860898118866450072523659193429024868246672481952830609544561552227768205077709487935478425124564162258006177665526727977818614201418207683444329640851493211119290588441797862053968367094320732969441656963565421375011931749396968934276046252938166098065018238691744652299890217730833742464373134049323278857407468637979117508136878669576737225332354389531075834424227067670270572462395055445490041368806443592412128204416285010998722246235788778501609905547266934737047127170180091697182549392517757103995142072332270351228931556156685030059879245200459370785584205551473594180039987137929569879714970095418178098764937388217004452100529760067972131407384212318558158624254753664107060817899163255050322597523005197679380884574710271411211723041327546624754102842558654122465336643586053335845206605239976095305063408010999842910860762838814543369878924029122027687162488315879121925713500317778502026415734415526781758262903829750010493726314659618778052688245036263004663841816997140085059110957729185881745950375510481430110826196429805764769366496994033623316340237494519239871645534463937317516829395693989458249149270926797983525656519167775252560801152708134328647538675986989505013169197671310156811116549769068252623322332106658119936793122830165777246887522480980318069496096854347864225518794618104973086020519137974313933842101290271002133139854961951266928605063799475863820344041225698403595271599537683431148123206837971329511654952555642589062289855203913539420580194212335663024202867668541100881690649012057069803096583933214045853730353358265246539054749246519320566136713497381818092937379940008494098586462654757286144183095614641742090131320436944462772928466346578504703760029717120798548438077164462631718446217487679434232627171260712784579264037500535061951387684051308251567049463332043510467102619118134517622490091687655270973415987870024605138481741103874442038908090672385510261054653992900571228718620940324284694381207603405103801705654072801473760532095381898102738242674490341443597796708196396405912230025891634108696830986683924447261998004458435036053248814833024634280425448838273039753408765290548492161801127784146410818029987951158092396380649847275632309858453018678132578085113366557847287921810790717012072685880285987864481327154642311142458658223339484285350864891422357384751179497698623801552510676996143652111811968844432221422460226449603791559026126472423935139521071404432671842402905365891871451217739549185839027394726981061001949558992059704252697294676124170365546780683356973344943496748051508629901738655872777215416470690242561916297600398315498083398076573285443223381093499654919118195240003523706380676006504528285246801130962266564131581318376204152766482245513467970555825430900577818927948715941437430840168986791013667658152247493142608117016515729901983588271371480967424455192546105169658853336132566626382885970843684514221247056400878552745455279504483927787039948646348996358961330262795224183967635560760000563172404296844222394975117544629067813204438587777227544601719411995108940997634334585615094695014794447750347655888881124075747689529274797316904476938178900703672260230104642696063773137402490222561946462387997021430145249641702964641853759609220294331733239902909362867329117928967778132644384640485868971222337168918000215642384303725210756853270299420190299902158746460697940483908218398074922266376120079353885531823444031143428870606840170435306027414538801248417064689746292832511876578048501661933955295380355110338480701700257472557854250624918609467874210532904242649220717202833872118484108417375691616420086336567605540753918652477432724776976445066231040386489304128751522650203540686298106962204143214651521564717454165399818641325095111925265489777333782015322733359495624987176272467187920189203811647862095507724447385047427035562753451925353741751289597772709711370922057412406121625937584928236494804398984450555620914290035076588908296838813842194784531346599539642152084595982346274899529213645041214773614978408018177304000242476655724036758344968530095603344276976544210671790760244927872749672995743252954318633913041906131769409405146775634998569927561945337177704180106306706437638404867790597720206625055309360389620447333536863176683738766720664039738188202099790451605356474696120312734886506970581137549696398555571684787725842937417692912534200046260648737347150719103306684334868713647640039293259798074951040838696427241280627833854144586453979886569510378197993432451393992253997763544069568942752274425961786027401499611630434552441430370871475784549693927342031241017522313034887176393181002209380086974955588332834469216263524780752205764785716608616522206338186880763181579459052591368683350305314270802431165118275320101171263169251116888904357691221775405823650180777238811350529865717768032291134801807049795813518461027135734505754197793961748940437358870699886757267705099176191665589367319096675696663096579648052364743519411098249910252736287400485673092632777691227770862097597010375570606762240350114195772040862884077044710243510942295538188725382814644901244202106249940889893897768145632669533390454684847851836979445761919412078932521480577143423772386977888585530158526540820834734235854773139103624198343505007730982022006658876569029315161710772250939670653133348089434965602958449520455741124754251704537057097335968779910547976214897877110957452766308645935042141428002436640619097610777353749462977162203326510297023882743311030483192646179643582431958735656202783785088267989300022061675623916620804971328352587810338055540734910748543234195365731603984674627118848157955677401953427842338968845836797464051503521416640445282621888409144617112162316026130493677786583135974018604054845000832831859810351629883768966680034474684784549841195378964401597611663317498023749598227850789483349608034050980481831841239973038186800309605922337496372724726893883623046001237252857979168592169622923802893439859441610393083646169612051329101071800736517623142482231071407783650844396163174217786353633274874732766332430377311596134515867047113862945639715790779718464594033547199809726312697750412535206452931320813507220142986504500064737260028582351082770069072601142477994959055800896330657018197298697707628172435689959983171702561876913889140402455149157307120674036746098186871414282322226386969118558905095363885118525369066438038464751795374221149262164472257490894978957554521671314567697975497900595190042785222464321845788809207881337868815939881193134259416516821046331576034172486739618365180287496352665385495873347836911039864025121549998736660321354289335540509392685060015092455456654630163569304487261166920618582836164392855744738263039166439098538566507436125080724036971909769020082212262418590647933518502647082624599139397358637085725443223258389667432357558540118811692682107652444753000287481983499712841783989118319267292517332684548642875553038796057325631225082217659479982044337869141515044824865688460216969363374823432810040719296014214332255217615434589343199491714351431685170025521426526397477987554441250414516839927758528718232384884039411966933881479280598908531804915467811849118283895936690188614065934344328583837788650881096681657666153541414322746802446076859428303218464894531876229149146080968401156421455855853024671968153702115334054463107559554537432060678983215055383472401623846968334149138570585765893688166309301703944494796266540468425503730514776584883394304681479321486870725393725625909932911812250233555598482456024661984312788784159402627698646850080811509238654684144460094894380580034662282893367622711729926276272966369831791822592615705027754400030434447526623102364938687435275635195085863742248349211833646844064551271745712417355461228836848471030509132301313021331569058149778419925163538355948441367436808814507628681368707617781710638499085413905093662933209701413014240730789682221844028634717742763301915329476894334155575971052884718082558483114451512294055860725715550981379378321524341416589493026051644149825626830378334593230465818373548186662392148815605941609134997037250972275110688553999102909140943717798727859353244152165969240525284552094443175873713077996780696929781486046205556325611800419967863995903150097426397274078092431454392110642464024574603144866797982814585097866428389911601819367797181767487498760148324716080639711603100358615036730922178322697312177829826493647025252814648269832080670161972626929684690569969035358025285038226667544078978557620355072602843948279409221209027997066903878256201579767188079885016235961334505246693659839007487705919126478356961565426965227700112601434774019525104445423271095075856781121240840093701739570956054948102048883813350212192470501114234428426676525009746919106221241645917941370774777265636714466575964462321032831675145365021735113117257073507810945499965319977870651225006668697138213030785121328782544651423232961329534025817950069330377880019458356450109266114618049348447908521512008871116879297523261726787250825016059577496106815839394300680075055788295701442154185999773802495162660504925538764761473604983663065058011709801150324734721821624571001777669067261182435864777796188657154971630421760133554440472742794409299261590105673494135082353984874282744116386050838270646147280490238384686857662977362780203549118135875870657065641297623053503962562398824940889180371975260883384246282154681862683325598456265455018804105469773173632828938971452084291829457329245710027076620464365967589212966208456189844759793928797455152831337913656585013154816146929388460440802814993865860627789807178983502151878150012123071278813443357724160850949554924131538616150812453608028845671974889936632498721133191366392043455646174637320389245793268161938504343954398897856378472242649520056540335496789194634369346811467189278372127083823749760644183345255994265864375705702623132955673155196510710766060883955692856130407958395924114973866508606931704562218563729568181119510612565067387981973558138981932681699203301172779623215986120868996502542912828380198489581175174256241883021556650580347273191938179843669643765079755917198599228323000325691719714369694255145984696752584880435454447167106703488206320920986990869679794291966410444299284479133238250361327306434147857133219228596752286779084236697492539117782551373138466575896103597120113447230621034539737685035333872352703501619188345311635761427231331302384082095206346942648276647475420119870174924407971859993240869521420339896377528384354818824448392631355658724069021648003042466037340995849295554516996902361205804939849341827092669809277717070817299609261777607165560453003984606321636227505017065998889987858114316123827455261791122495779485460565241740042775603333082118964605214945777439166528098996934375397315368915835411145164140057231990412466163529525230513062347742547474755670347298816529824990550558720259461666111606538023173876331025785731005181866384001299914866349849887478358105317232068968601395747450632432684636937716082759590001942146596019262137705555694211818535178151018861474362212030280603641875813395458748491245982091168805819715529868174893479729016785393959831343194004352133812028562790103616417865249674951975799746447345034573684396861557845381868036437339252809180633089196169230123081835189497639589304260909042800348079855147808783652637046347774548113358297998463769304957477798919662003871298628566202689497718278313990117611140926165126165628252577154525599220399639139514717134966649116532463626398147919539802006721585920887951617448572525237946876159711902542981315691316629270023369851949270858489784546249737925487924810654930610753665972886015267907703311764243500915259204641098420933556336308596557593866956860707487023771741544099506364930638294766581893372902722696303199281707219277744964893094079907889954002146185193578724363736188948885776507963053065544398210128062892705665173352412100620787085524196818381275737311326707373001007935196949691250533723621301404998297987198899570798162416042312333404808806929175283511801443105834852358483914888909441956571651631475552517152199332755092176323166761995965030716881586694172873233299921946070601204677034927129669457596753369597746929382842687453694371556509833398858452192785651175841706472038207049635457146175819376164495937951073214529468722501628839764669617604064848817281831141466975779827738787270188447741315642385044475260464877449367332692678470744694458421004244892470761901768849156127422540385256358921821841663318759823721377800520154280913438191791750272018500406258376856748522844171806249332308210511375943431694686246445451006952240796445231817291627966842371884229795721446615223396348165068465437916055393015649677221827201074866827652154863480815970347178561334486206181937906810368745949217522235551488912955857473708350530955528243158989111654222838444373747967815626988241866531086037485328065019797546602950923304995775990602749897852425219866348843170959807632026700091654508820851365933398215799977781078792582461137283086672071420158491207673201347834342973639701139393842688659825507425166292864795376649106896876914530966530629082090830907367797830685250104063050405737469478632793459660386645239242111823006808050479302445322621753212284593754432569336204415791873076070700225591675758778477858218223293049434475455668432936231836769551266514689206411888640650354586418171441759882002732485874019108290967765012181378915838771773756702956873791301169105408457520448272913456517844053014142737133674790182130771397901465962711902653552279392724950554537552004954722670327406719741625699830935033597894040099756991832450515325910169521047266456804022134556247456025520132887819773320433902642313500198465087008374904255095895778187696035755040120659282566680017248304995350229925424938839363542491368026909917988514595631870212876859131443993499078992457269242796777052158736707862660718828042370332179936985879254497196109186394260195004626485869252729769712289647634443883861623850330905420395579853671025954994306777782203627935148007575173831697507299870830644570536758223995248595551157200118231167080639736544258193784276963868790367265876587085926204234533981990826609342008634563252199739233918436373181948542974913624558573166729659326288437377996670843020446481848069642937571411753785015132265998803253159292168840897832383161483979249702939995248036086781282837382573226510184982198191499322072130243107065829095842586005196555939265489493356168209208841143947161752000931872469718467990557173680562457911960613567584614200360122746518890809021046684291326647726694497175582079015281271171597827439091155367874819021174941498053303449027647466772706868629595967052528470933384853852535750367296621472457369437999836778396986484499355931891308208626965816752141894030416578841412991454332963254719251921578860030070953475353493527074766537324307175179137311010439085401805309955462597611647617878485333339007581902935126478606800420201926862691037511942019956805097655163065765445192276436107059747722668568655088910562823144458749774068947137712677514811267392411998056486335085188433000405053497572960290861883650156704424395448715708021653679996776495631541077389008283583120783674303838817542847385952873334470639407318689782870078023704703033962073876274887263488699793811476845894527003343402354160023586652926622352305183682154604402663105619274442310755946983049529487740625176422576463505584388284381671083814871094311819536100666923955969427897479500237827792078762926056026369656024883561027381064307735570752609124595743069590778567012032829985256991366237858111464805232185298704091486663116871681616498665534543704217682991672197293749762375959550737630794787505627040454153198906434941411010515810900286104677121518307805282708008687092254469964649873178309413995147966425078871986620691241396082939708328694249603669355816334750862599644896037919705609782893788472839059275439965709163562172377949645961835104166913146750500994185493352025406396642345778389339369452342984595722099186420441907631142008396156383975077658210023503973016148152411135978260557941546347098873592243531102426489277068632657381963160005357823497073993945431381755625783330506411398358125651106544262194318319724402796908806031731986314931551230415470493104428173644751333746934043137281564995960233303491694550435217885203246457946243365360615521193727686341812616682692451037003788712149200077517804365473213807702941099205485526315502451185875453787158457940689744729825291676097513851786989350875068064451697609451018431746121460099183218040963204729494319921658953074361178621147180718590277210981855253051341665791333769376023370314514194055322339304658516487815046594502319643991101003936891824081308495654259454632552195234566674777558059537461438420739138817941581510515053419361213202964248873176202038082312744597366643915716848117871012404055345306099528260602883001976553210452782296584895962484588084941714440354026818971113792249368574817667772629691202152270396234846133876267616099233267524875363480208810677321007670550539989841272275244944483107934369643170209396766270740910218040832280024839002789647816624957072713047109494756362660760401581157571609675541651690409273246160008463464637201862888383814547068662655610656512824763500030025372085481824187400642155392373984869171754372192257850424897053317606722965942856605478856264965836248980316900901239847691288049982663191653436374000914358567998101141147992508200463721914816297548279879022528432660638780860423496671428836723817730769600309948204839847159103480029363075604023804632374320721671755279839912627758916227696841507133240943465279747748628231300711230625126280581213092199723391716754413351302703963273442597843853060857142970411175344871979316420220775553566547738283350038904856944292807474411452172995144932213026059629570641541241346696349215039386930495961112089184277950184712057881288331193678383352141797288135839198490286164018377404059462789437858198010904373560432236686205847897686088946917383571609393870015166748742334737817298335011115871939579812552676259104370028170521122781294043618205702049091040036085628031671675589529623094541756426546734026354797059617666149486537892885144505985926362763655890699599980699552190664351715201331355213072845111220738750350952630299202971749762970307477828685727671877346944168436555976539109565935969647706580442130877351928946007307786509990589936516153174387085646132422943139902391444703214092436480692344525128944802441731694266662807837135915581572313393249034451142608637573631117233774664626763913483328069938480600879605265095520186252334627980152244704548526559001779893377143686819232663857441095744575288392303960012844429093924405416246103073855884032688329377370156811347614664138861134994939636978903140067698348160100092616050245277754376311838210153418801497087860976324755216675452536230787363476194476315983623494160110270811926173054880837749125973348978627334044352075205109127107680872764338350024087694840453513253308285394117438439611173016372847197894340549360182414259425111759107498253047821481238398073494069617951548418481161288547195795756400598145922266427959613921834025793046479692347674740382648087256743798918480439517790870324991469226927743256566637228702145468049023224042453512999173991591565093294771698846139359118766945710088143374709238084089250465871450526240770506169587771963485874950725903785416887236104704839038152031610783402638203264734918693702125868372494096062731099469542080458751468196943274151248761003654007906461412651683728043151902184278508000565572307408329714407939809472680535980349619882193848889713155166970361729892273494648493149388078861112062115681796349352872630737323755066793330156646495482542213099466483037854965293768094382993222147504474858446528058126515426871686263722395564149923543852442872504409110099998582918465991864843435050064602491818029952334143596978064374479307868989922747622899085988795558367043540595054359098333023538210365133497599082754993568120170120213369994556050635061922388816550030640801196602278813149744576293930281369278441061342096982008698167765389825120392780829773234298567402274876977632425797694337861745594165936566479123237386415968935473625967881651329941413363195133170637051634607172107059288025537493448063948023194780292981787533444465976011286487369314062126609794554230302975053861700414068873537900161017771275375711946497390233369009100249613071726962974116975419666182400665942787160963049676141753075601185505108367035652193089832384382536060057399285561602459960432260714928311910103294779462401270637176473327190131119163996093635536497050971322344917387597685380359540151726378397021578244472631589465371900467622633339418188818861401693071198170621644500821337393582740893031988916026542987013288377471965598976028428849759855313250676842985817917764178237286458394134438638544187579180402467956394914491423801730120806830693859706050684948197932717701748257467987850567896897132482523303387679366762104892185190175670200888061663695495367152648992168716851960036966843478044519762207139850868432947432835537766083168744643873350245034591558618413430830222245857306343109883284802889101537170786584876166440637158141353241604860734344001488510485064417493642879119098169719144541702461558930256425083103494257354963761575028345690733232395069682282950705875110681459325910346164808548136566177681073881934649867761717543055447138732237400910527755475620897374818460068250472800955031208723785765921355665400179181169005906248994791192758813013908768011350312629024659460441130409743904243659717931255943359428047072450953609287364182110711390646561265173514338407824251984043682706761447420796198288421054321870304620053350482873438980780453459969168082705182303922584010893520503332268989702653561291868278964271177564591389109927682889424345283659971360358243105320844242788834150370919621399865172530080965704281583085903282972098230884359981848284535844208381142859013960053993867983241608473543944362232181980717510007136181730674068614734986026940495223248591273290913363387848452412400693165027066927449851254810058807635876263683326460036415629764725441395910227880564698669713258791973877472707099843257416928481312739284540253705335319928056996600673458862745473680636836771665052103502934858147143924389855131241642584108726965139422715704692023914887331188642925146184391749590959983243622852449057745766290553690423280486326012284058774482535327430180459333566546887564326740337720068718059896889156488082211973683958462270642088558638808958727622775512213414210074893210764453999049290752454604015126223519239257800300924753793287567178079813734896468992099488819226639918189118197142788261623974868250431099027744856695026472861840594281830931868321296716157451653922072175858353398921456334903410032633242112263759367262218038861193522737774318208369160690263774334108336342377634463961522218502154900592585991331277140172408522540349347216824359342601841169868698765293603933551485969768998606903444213587002030569576407751723360894996167608649535402477807802204086826746288496374376973012803830171947719449472536457847503843312446264276868734544808559344279874465107836699356494176601319049656053147570540136148540156050136735864197003467785040617107888126375776268784594599594023208945386613246783750840942931379788214559274513642330895158293573371973167803001770421720109066261211850096608844775156636925565764152493731931182499229288069161384568425369895267758419002466402268565270931992392051793537279675655681140453945978822630315180247329911705658972038080631337523408399521344944494291759480012119483694250846798350152514994337180692613584223025043047768522890538967420007203308248364101816693138143928820626628773480289117052535906071345978693357158459589438668203305347246274791566061491498619574204946176358026048339412961523249890937847942720131620817902006862382952387269322979925082108855431523710857446971737996031862476006424425253056690058778359538296642161031606259683850638019580273230074372931015919362248780129898492359480513394005035430186900845787169284375322383026994261022136479588256074053165256772478945912156116096143688693424407978272255716830575607767683600422979742722778725523238463159910300758524752979675278839982059645621945487516180536736459617307991998260308416321218081005211371327313620833931332379227364947925561579578075462982240677982387082583981178399055165393186020235965343379022817752501972698348612600882256502054657898716477178894525421647231892391027730634002881003463768278771280070323184560743040331025922975640702284470269178584362998641883918782005816298263947492696875719528065703424484589016132669755623915418434213084440225322819126990042986710381937214082602510866976267606952783957222774915662091071421969448002682734777715329836697842546336839800077979421364419695022165644062257125460420767889345101456600499856922251646399025708393412287902747193133907818149529969146804607669199926152375886690713577084351492979924214603621967957614979618561318148763635583695243730502564178633291572802347847026693678268853564497876244386539794665026603511333105392432767738870538616749862579603395922736148003141049362144956697962198685969826866661264308472001526048248965696599868548709413959096416248746193298324920710410315714428791660711132630877655457595809274609727708596073839688211128017660410689328172950742791697700720226097935339110574405145265467260392341518302154668712427527662730663312126466804817243326182051697225166415886020132555847700239470908832901708019641588574506602276130784163808101595490878138842166625900885906639363994791188276059593012708069610041350552537623669806808153050315014165134932647959061169890025500537373736915992324377476791060897376191330855361084286170429207990544716489626833640361257409973026156911646815221517605356583335554199497828800824524096439062604220311455164466273255656684558037489792546327370564530914105243568296782322488246313972626508621478642612766567398112385307936315615868182696870404463838854922422857430031074369701934331692778036239061345094312088476736557677875734186443113854763499628684713193560751544052469571787370579556444172419190436067749060129183822803150485302021814712680992114218641389566676455721404648289023582939540029373571395702641989545630850331655135290595219433356888318582697354746443027879885375889735753600764425041576873262713067284318699053173054138784949771342843670888626321797569942212475172655452208826993470794119431178065887324357205152591075517048212757131903835587986583427619198095821088936184207098796521625299307894601851599761114724172331334319423117167312416420122008873240847541298370559757500744138474071558053445939008142628666842042697621215725560128078060772927354543714900958174480609055753500851844307116509492384100565132627435559775872714743708958056675356003918172264569123516608668053044603873753055220728361757475768112370698464420455650264789845458989436917366287990419442924958285403615614268736296035012231887098926841826713830921280405052138690300094576799630522848651322096792050945028599896175848491016841188940198563136774058633721671681064723461060608968274666945274587513449449909941260538597849420970561472739074910187515477540461288733909949954696979175752314238110905470040996038117410659802021825963572282886456489421228215915944551769514993704409283351420059657050949780300032709425933236328927421976592220066104781392087556415871892588177881102229795685355107062028972399128810209968067805691597896531453290239130989156673401707848045192272807076783019967826434326006769098505997465619118077017902826134144294713257112170940534970556870409849969033157293076622359758871141700831582510531833221178212535758676945674983283280623612474555108988266124631214936970381988325248657070003996459869934745785747670224364700446457620107310860189431823381856902290280463835967628966871424534900975352773261484530584165900764117366210605300555812333834080215185713051259249673177687829862370720295013100643009918268624644403549011538740931203700807713082609536675855958000460962827823631016549897098104606396095147603518234728907580292845916387529888593961231413569388410627983634652071702545259346739401212131177968572153490288370454584644459973292671405264251172413738897211020486852439364360287956210680396941638049503878303458211432262314368703575991627352552135621053835733242246690902087018034881411741376368271187324364938002057145533817488922942600550546330578244211894932088022244063702169960083381867136433165926006392081222384320225707587338434606186001516046931179086388880735900587106926294981632521790919413153471977232142978153904392716119466898628935773427418485845458253102652377304257468646863060981697066352678187466189935584587014478996876775056442251715988090647629599913442055182869631113440714627063229357004459982245867011920208400838469562320170749374352610149598045814823419540232459350592032270391558947656915491502052693892161712401259664384925955349010821992828706019697644530362246522170407543463206419591242050043878685668340364005104535286744308828150019782086092516152475598204124488045821372193204397607857245298855628207497964312062440355763465124624405411442613923246944743659998458363440611829686052897499608185556289448590255316995036277236533535248595279389841671084117427247749641434141462791336729568154093470460055016664757134810691650630553002864515237615400973489462108263819173624186745608973012816064927013789652429726776098969847354766933700782602911467133528558948480969989263149195643717311701327449968348573972147942857887592119638486764901346304932396048515466943364961467342478416287987043499353399503263918300004534331619352471942334130018990378647197308843177692892851323386533363738774911217469334853615546969353066616711814278734426769486415810397208522861916631669565236805992445590939198302318279715793867797889514095927518876221955989313547966411443062934465546916999798023607902820338973400737895411872748616351817079498641268597383236032425857180102062782259602363062005776913261535182546846583341939244790328284773487880458646842550851008111139844224684728733016530403958422202071094332756227577848339542158152184395786009357708007565159127177951350527144678987129436254354513073195554998060576483828901827860778281721371584767312324201890770990187735163026596750692077487147887259493022593008501456094693459057051407856615650615461438247038364268149734711037494536953090220859371814957303226263453941281041712625131561178560874994677086813162195015758728327081200008104046401352819381478915054412369421341376688039901171674695772052169887424044821650621444153036931891247917121443298336754356059355558776112828534528912779392163807560559658393673713937272526641774726496037086719109607904335688292047434550501404716903112772467123710292536347984436417075263746773338374414631947220458328341640174863773465710897233771487361445576883446744236252360064021058516010946532667802986843783403572728832503668184939995399514929667080711293331950226617094295660395051436948587174140212847283853808884729212780956930762582888767622499529577019093728013371785859582712145204206936744609012987498720606535561141985865989459782212148546771718886891170636009133886376275019457645950212141982910764524935805756088330177468452803602675261427116088350407056281108147670588701493955573747503196638245607174074738635502774452469837886858316834497627918060494749325219349834858576558871777389071025375458188639467471940534951634024079308296547503514767834472619413724394141864867881184381360881807112478181125089713156801986411178781661160866198276210629948336647369873981494056935507401128933568194389664496516554570658490686911643243564613108773378489729100263534133583896209072032607402250031182234585249933767470276967318638048428146153627548346225229344907928692393596838141471985944938452508192797394193474164971821184728290352208180343953161748787011368580907697933298698796634670465829761312827773707803360671536899765951794898617446586828431931844746864549598438220133565437345440909610394721232817115802272817133622065077193509351673639949042896461068166320033378164407247505124010183770984489071076837357266486010421542762369442906334912291499166520609895162597275015533135260299098878375608182306426144361516672764707830509735433528173419082423776637914340058251464558318788711718500956706344886366987877114803137166429366537339977053730020598728360558564893698923706395727246228492505791754125006147585033442151848622367978067690213666420237607160985572171306747260999529159820824171956840590349702199690889159045512148003339588364203868513579263799383093627725439155059203053733872819318888006904869053622438788739856624657365223257243123176080526599691026092790850504576196267522561203276715022704820470554667114890172302842639752471284905751314772340972818274522410030745641954310945791801852298904177873319963351956096427167652960254009687783812736436117998954513982441326419866086777474011445300181181439820716166621626867433414254434151704216256429068847265491183405859273592442415873415912306958237834022002173517486875042859919529194519604834792227779359080681649872466645920367000600539581323012822865509491021907784077427034944527346829350336262356432965041925469997850123512250770017257522968837097605014339982812548828956341157572065675107270942635536299707832940505469795364562308799990923689741595074371922616627541756966503625801431000495750898432577011753117008627324161701658543114430658468499261039952599036991426850327399721585716205638114485858726286866194433926547548253202287620806419037549049507877589515848701798097674980127249147884521280757459705196179708643126126498908543523582748861953558897659101977075523336132928919913556341272814883999416041264169340944162851130587654229948577598135120993796126518619286198473408108526181095520283199608042841331030506229165213090744078018228444148193953009560026334716164379144360182690117950075428287657711975893761851237001340046978393351483829604360326192335456454804536060208897298210987582782311703070459908476267346252251214359512902967955805908441832621324065820247369574576813384089911851524737240220756557354720876106936135895749876036815131093098033508912366188931864847974386484427795719107487562260231158398280347713470793585648360246797151883058705582631270131173619845033214104923323691078845988916131554909881635720449685479992405694518782884687462483549374325413076590831357656879527395176402026096562140988386343551467486131706868501778114388783450753797110689545531470446432646305991952014825358284929386024893931892237973369182276320575108742788052958943273319739794198795300480296878439011080040302609384655041064625717052030034331898288607087652574481131982137056297187189580689145759315114504036981580092881589620553765936658177911404020575385020742556813116973850635525551482265996937320552285336260107104893467743592295744405452771760617152433530946317370002305274451890928426103332874310743965741480172038088571319159735332092513315997327685332604159794846227818594353805653159909516492042666691388828578167756114576309035509784488057535587734603586279261832198509029287229008077549352455820906421900536978803819178419864656966781143233063415485297688540377129938916428665315054900433687160293563714037477921062266047788937230317265817306039031103145619748567576372495863648486330741985837181239059444439484850236131305840532556414954623322291798053331581612620710740853672893766554775644734972076595090101700960417414695015847130950898818587085252096230268401492689669613655163377165680353066067562718263923806913094942785739303072655612216422658832250980928053500378806845210015944158645736918137902773011309844213615220544159797072243432324319586120442675818429742330285856792255625253786332098826175711637124347909194684881764491261850581835257339530693872548009548781741039981137668962583423088540926620506071711576865839125391905525435156834242027832855290617343691846072680991977720781148279427011036399343489505402964264597984313981123153754918494751294741076613628842027314010301727824177446044466182859461275922381455752979239541323716263565075990473607809386903644919822800318298182377851444539891416914165695100691762682189360507983695999554712659228110211277020474718796848843323874911974983699523547436287225718716264698857470223097530582047259567816695398700609426404404497406889535093427045232015474539794436378161988283303655430333696855241647573584710504582320838700700935264638851238045525031895902405921255698355468041469430193656771848325522387563155127563574514207160342104961883120404298331841678762594799173315094446668725465774802305706837281132092652054159691208321840078607397005360921777655803145169520009849154897620536888398808237387208820642340380421887256913818890979970349697132642328135792521371550709239933754343041068310773086566322739942908333828567868697472666059156424995863548509409550472711949343350842473033027222116304919557414972668214812847103299400972522414695307248466660486394485365506891276083526168011914179955606873441383522463717895232367126079082415270833174737867663276954737632052669468098024900002921851451085142148927923252038930280565538551000800853890168237623126874833733629053368077453156350296508033495444048710887290920289656260859324572726475797423404300027080362968683460780342953309151267196639939915479729835947490793757205570722317308631525642360375607300668218010046068250178803563498106809578369983795409084109648578053046875619998034673879463889921372741489462992657828494838377682044170342761376304537758880646687957276814602387480325215966383324587863846526159999969698448633023363399904335923928368842579206535981546688438264416020267854832008718491146593884062731342851963637449501583064119769294772184099018083871380544789378390624315654810508907184415259209863092790763297345955782646840504297394382502878873924017856835687353952279172164529168253221170675119797547622220769991371158418880023586382719520932274631877519433199411590533004537746087305568243551349262209152122109151773178013257842986411102797476216958862887164575824909094036865784773997827305648612067061746168276963470817901831853187970887768933995810178326149923768826212324344331863893007641237368351353962680590992254154951116897724317960965112196765506467284212271289625962268870617567477785098272037483495243795816791517503469428752593713107817561963502590386641086747769716429117261892903221559482115154464430166785820159617985068873392821729956299745527617607105362256605744467007105894580522425556219260922853704678029693314833951428239816163768285319948862555139515746955230695628257260655506146155466385258914028187861229844907967614835025581549595667741023366223897390950190618438828362633673860062443306258969228267633608090777338345299076171652586014260244322548057501959964037000768376437068171039816732025319995422747854796961402784104977788680143599438908935888428895895945883331667336324515216116141895727918486661361432779728542927468145613475557465809339624461202079553257827164731253775381078576672600675231029788657150151702682553151046186743678428294905593441987989369580330368344412213498326933158822182367093051463860979962738754892129271049288694724359594990068930124312258568038359230461657031611433855045875023380807624631586015121157415775725446676840785288930354070787019364277680892720022951133731734873815367034500117862181573746140192589375345216544219149984475228925490625130987215549527622329352761141590623343177531617881486940870787539297019619621589915411466656992211799220153476918905497504254586393089017323257799405450468596999672266408086875611441481226197627598907227509759789496479174486580003319985917365807985501130714209249509559145426544974998074298686439295071036825783221332903422651893107003234285623402250913130316753722446494338658858492476284426708552971963186868833542382215535061173743469884660116625235331632253245887282829710420660540500641753651748781382837339484642990211635967821176473214521140910459530707742049951856113689894024129636082294005654705876398470514008282062403168699552342881071648472914553598181233320742997892902296609669851483743501214548854032437601679589011876035413946046267685116888483943134178444550725591325249999470501107119440301454837873069182402318728478987591696999208909093142707991231179692083245184891067704184153742312149632480548663519873202786994232210778528495052884582480810886987851276466104946861481491182601886350996750617715170972815084629948793830909437376838071672847321933215888715572051987216816673402800174257941836816792080937088465635981794781776844265190979335282749865649931068375465610889112610005053540246388731974306852097861020614239104714858868157755254256621235095378753139024924463884872514107455544151834764387380557611437053649049305482477158195081321800050729457286113476640757524650588676989306805661893939352015731340651686211574093104391726796137424589497878323272912072272966227536258070637382229302671868403330745644703006143968204959139023740805124677848802119247870600392996906737914641682083449481640144093431198338663409083775508472390359375645871133673110978820111409416584517454168048387706194718953859665451781552871568402727506833289984173408264787063338458926618707572715088423527421516320898217011907252275890846640366924398326808172930879239559884714711155959685045583297302527788283599630380392075558647419296751672082782402233102427616340197360405533763799123312924847070827201866286302592043352143398189644906101574452626905261507419557156540168430172237686083486609069111732126865041842581152570009293747576669312859857966676115071906639008593364923338120567078492187752008865825549498564109553860724494271258136049622713212508054835124575757637477985516376759307826478306511678011241458857546845990018375344101055309983552210297165533183654318585687673499432267960532804675083061974703900521096394776298188180065458417246792570657297875135958386312543561313903667201543876179752805225377223661048372402436755183266683958253439916874097233585375874363464893871000385629597561937044971487437974638035767950060593705893229869840360879179533221749691586523549469629015827629772189598299724285462213766638311731164596448536292246685821904671788605192651193064488428491287755687899678243664771222325854443684770137450823962054416057721672473011994317919646103056827081259518047891533658508486880126011858264532747575027938595809446816814064309404507403396946674731152290507219881586218425524796932056967953798158044820620939697936452691036103291729667933524028177833832121947023913355346400642340196567509538480670895523827882796335860354928204895679899771829272737052567138917154333643058942096367920353390289461116987769256584878385170494133330193952755958524207199833705115331343392921836223985711161218962962781377115272857495807047235522680973150921218634845538784429020471393988939977408993954809742004855214337233013102457845979002553938361100505900890204288982272398622387148534612352299047280985560766192256212598337517514366132132043432256456913945379763725960787408381038362118637132957970410672815495058282490486584894526556492678719354433834779259015465675689986918923169732712116756230142294221805720878088382548914137052849443366424411406286626453017565945066220917483381032422039879846246750700831481145909943023963253412770022120565805906931760219148819483100973105256339982904581009642852825981668643155338600075124374618892716444504310529421841991864610258083845957635679141978054693194591390025530386198940205144000127430021081463537158456009622215721610713800869963803601078797019434097109624531235433176087660502576954238308340123078577640896029339874545848142991662802567832201899471507434833131500590400783117528171255182305458596494029163495020705159579660970235462045426913467422676560944764994912909107614938123320137398700741597200789308338975729898449654520994386090057600669297015161449070105339292499581926411134804497459059196910192872822801312441193836796489869543068565403678745761559425372281953008716132396564668618323025212710361414139533203251352021541457214039025590655613055848477708368794622764787013189056908140848536022563191157078069631607005204232454754951561107122075370330716900072173718492596963194556139086466264493142357541875673095163029189009400666972869922006010594604047448229778289425262147195269982946386162841390776685846294504307498640074587584037438540916225469255834910372375974808248581635431681791532087104581424630723425634398267738309583366084042756394970770697428888038229965306253092970481334145572658485677251517220550699367949695095500828798875083610319732984401462068335759638847954956374812599172369284357914026270184317564998593241178618821468666967301589861113970198070480545185303916650525190432422384699947923051987128334224339588123812767005494546584469714775893544509570921677989595877215748333805517336666220071999597895328128309826924928333796338011416356324237949825685390061283223936642158904358358579886111543560455368612070684274232039830090625247990472467959985181336451461941202282999931542592399695865822999000758608990312724081929361556854740646971268564471115603455941276796738071383221595315862191084264423663122329759276013604850216626212413546166572543234056814079308352682649567341273596852877848392240135685229479370208780719068888829864917147753792805234225456246903256741274517611699504428725349617796553694248161783626396370285990674801327428359660739256617105330598011562582079720108159294819185166437798924523158101835100624859750562421587392091149299537332655032243598905489658789177935729177510377543357092000366045899310378112316494012016531402862563395977586006395903451538404085831597140626495305391231583594314871850126460946616864286813896232728645164320184495197032395784157094811471923566392446383731222789391664261365378356234604102495101007444282166877014560627382129815281030032335983792485888339024733880718138468932404314299493294606873201462319762853879552122780468379846112677601034679881416665214283734045940413207635529280492867737311002073938453857546493266671765239217529561301069754651114337161601837062065466987506404576311348900823680546462198119061593276416080440395620212816434972831678986794193584292478597122555137246242011355648703552229673438283847646903462898485464002489451799061176990694509084271272415256356613660198534670744211956266774841785615014246533115381688977338652740872954942681288941082820684130401999517246308892017213039756308352386753706890716777388117636306320729140838670436546443475153712321009218358955212268508469725107655779371530458031815900117353280031877305325764482441307895754608197533656545501942457424703531876134207400614312199327492055061207277069102427130929408662163507522958078297123741746545837274269545133495307698442636801334859725408078062236904460342806021523595651452857572741301916150594761671012485074894789270754139950097298074473066014896357890979350756172449999402776321465988327739221262904140928445294226359313892319604269301389591162590025791496433301179030277331575682271395604814952871215243579873023310922232822861562118130222600978615851626085349306047586760378250468063817426670659568666870136965825513732328979171749018963368942600179953263666496517756705848418408021237347180542302752623145072710986404786103299157167467549304068540613253814974341425058176863365069746964300397069201199459204201135113631366865640508338755276859138561645286183052379205319714174820615699480688737217005430730015377654193910522665269805707439584295836041882145934903197089869410377621832283134689637937147636903343788400580864480608699164336213570094177999605438635638101733008737710130875131128310675219938111681314862344669322505254437412896923837148468187371905691003629819328136316363421734423017772471062581273286546953847553507257477219089434095830993689255376578005517668283701097675448085396049342579821338783548098108935422863972426376546768015561255193071842783121891823715726305460672678911287629649433226821284945609722047607063276014945320200350306968176897455609146056278699876603641970520961658825644659990464188265981200066483047448438081831137299601472402282895637042745202122296184354966711231373939370274490875999627875565241776431200358914680442771619038536755779577423959720014385916375232583099650372904871302544910927133794657663382897483358919238309776666307779289579580444806045010424031502075725775595139389709363396653453231808370168813268448172958078498497406100221061087620455951798806653134089374854327007470529750118137487486261364808945077853348843293741728790635389785848503794251923996212752849224944113679142741143585723866708450179086836928214617998297830153735030203502120153110704283835184493440644881644380539788317973490126411079254367036742904431533886548355989024275409544249381329225148709785177093010166603453290431889944563476733034396774832952628105776683250129392058297336313295274574748825946256973561724733661117196346515121220514649350029393939200096032090267366437571442848911153496641616104394443949118536569168420289089651906913542092348215910991406747878116123539314347507864457965854140654895635504133183859921783112549789068061998783177523142687382393847942517029345906618894041848353874535313696196470272380235604213267820013631607101740060918923970754575302557283729073131812227044128043498220643129144225136675551267481263816953255785500057608883875256596242740117129290293163963431477854981903113431349434979947849872406851953752572757877134454671147500088372081770116346226386432939038957806194175772621184196701457044947275458939933903748591866176270263077112949289229310288760037219599667607118126987514515829585278612648396459078786193368827790256239993204576081566198349744103378819504164115752082689843448886744013046921221332452069310282299252051564614109345518154275078008274143126461209586333854942949180508295556528471665697683009671573690699378406054835436820533847593787488699425470801762218635477792737827873030563625545464798313951423855254956017270520588664992323676830882550867724389723344889616417206465984500628421211620340281049789694541037256829301218541364769991283333524492303938444177255982413308931065449631710471464980405659778901226304862913743075752050135598090460014853811427650591104825193469525980561389923556576959416137370312890035711847997110021388999630524449109466974487693911965032893959046277610255811358820471681997011467206969129058897555153290183411972923750089919396072521697604160388597134995373405484940193923630096162350836751417489268283154973760920656445658964522880723843709852587191181858125079609061381449137935081259227863224519517365507415410578854971235519863541418630542581823113722242584073224001943081433032842846080985682487701661815647999639999546333020322919341478831720856283612237513238772692549988620128605141649253565284660097434526989688867682676903395282058337624345844575078536706261765864106227007359689344668997090368780950091496593546729379777413206071438865128043013812479955936530828098418942977431888451059097465967679476304625731230703891620826050810290578488785108248559552498103819036897169341473915460475417306753472541934308083499501026679678181608712922859801281123311232036425418577937392426575364314615994825134602576435059591219605414477569556263602543356680543177022018356637750267601839480299632115259426005773017432655492074268733066404102426139193477850527995505519555600646115178858032339561593255412702957083039108315813089163242429618688327042439286791163233178590921543937141016223420073983741142258886427930047939827454566170925949456084733262721290744573436409707036418916894381163427903252149446426556572083517581964635513294184840144982659888522187772071169318750305674523844385809254463065534739977978519708545545464899133262301577838215742471877218090448913421615816086402851207874851841448924844516883138459609055420969515431595110760887440861000354357325747415805605284638346342202955681846482941410435890661934032868718273526093218407599213528155208429191938861718266651641835077639559533262807501652980286031236521139764529699580952569854959714921905653633876112333682229749830951668246592999641047216350237571731134557093141024742586957037196349862006681949919285046736117555727533228511363752911432428347188256802043200102912927633984600678399213731305788706597312915900443724142437128185244356562646448579264072832502976491774907387741277159650876903416361554864009717414742963976581084040841171511569941550217824429103227294066275011376361066334106290959642476440853602922578188605753691228703730237532736885123090452539453342353000719984397010171462739103271763331844783190041544754279538865220960378841876174354766277985211615736655858624406342683561478325756612274664312628367909126279932342067242276792495580829251510223080313906703106213717452282457874702723710079169681673657563125685215273174670826488424040764892361015243966808134375791478122727537856886418379229038611444739524426326024865961868317602580281446364615781989178990917539901454305959032998265851108585701318155952261231725726753935421209868681276656648937435627889355495824543809560577325344494543798455414298128221181179189620390608085597620267019967028140531038202350654765152672191232029580880044091099194923629236885444161992417500895012452573533213978477091631138333790129981830841590396667626708991196214923351124804029783609265406403457654362186250360220360901273774808105884613749370336570348454820909337157101128821684382793214305153608312336695962078244843453459297684147813063494764162358927495927455738808938252090162215735888337253095719840250894595163890966670107721153233009206977488333131438236323247386368652585364832736699403522442493367357635408351919172392071391332632488278776519383829125457486683717533332677346736949604481296340423024450824410028621808802096467072584174009715857537839152862093107903871707697032914727540774545270985924566217921685555558259688930471592494811434081068247111525408439240534023475954824424892618808520337507682886572345865084089772280755239993988808727223641910401829467827582509211711466760960955311453049508528113203429070694900649105220220383419009284352014083400893044809968337023698819241013851388928665354104241635188845961192676145166393192774461771549842297386553582996025809990821640422126974371178634634993579913690130195276132203874222286593815226175282825904689403539337213742685682214151920395250962302594855066148843520858605247081621700180040160802141720326530587697424246669361590747262422243454389523241425854080726309165960147657413142473234833099726458572272206774167068350320738906774029897199466564554277600949425472139665258464772589769054668094738132170692702823909944253964255236238160597888543333892112381470284592305882055153951029223436200255566465589699300054180230676377440479046963174187998149683444184499583532257202566168898284854654561039340853020687142585757790051664822949068570150141411372105107452568747827456058302105136351316270857150854488516691599512641935607815482550962192285761426203921005194635742327593058339468851160852866485571831601438143658835251419590340247470189059009552425274012775825005990852743451327758997765051774521080449204431724159690832113778519767951393611953234672002774970672438363650351928931308967073874197778779618493971342750049536827631569721838069262156673845230871671601940125034739354128434819953098581519650260776600317076680665066170189367070227920845390442439537350369266678317619976124557180534659256043442129434812743560544689486253532220390919736573404055713428455541010390771332906452442559381460290022623095384915358298592767880878329490183766417386453932675764757170625492180136069546618491371729476120984684825692917759255537351524289969148933940548385819020047537417036460925597159622156521935721340746311324501739195277632403655688900995870434736461741264961074305800902243764416667969366406812426221987306587277044872798927256309424772828801611035134670803663612815118710715639570629489289060010761610607918680101333725844967918094221311561587408922176638977227803194042926830898640046665382356957441934268140389435516102232983849493234868767893467258074703108732340363382019822041546995701978052960040739012725312056977250500967871671549536511449919200622275911574860232341438015296886046177504864318540675223972875921639873685583133682118005702346467324290979528134467124659656022644028685285190447283247252633014299555130438113679298111508373664038305066655840971192683039687947897717564917409054365806919673491730754525362793554551284302713355741185943077549124114256410036658129587692228024748857198462709374734939621735968975273531769646355711723731208584625244205683739766287922173465415111510708101757782810170104644177412061528695988225126576834350053049493427717510915801592112554145703161082568389743605002535050094923068069117466506544637592822874301309698361049379325635924971406334151650100398910907623335872815200384507403540957534049492484608931791742120110342164888257404279755682215212891829817171911531586107446260765887749268496538703087002646669022995236287738118498100353173971128520292160896271432332431164346748512199867116203588895125255867614776147881568762114815583689181446561866516058951000632584278016493452328262033604038721336025037317568099240410972335959645390600675179109651357323503556598049649378470559314457462383183281716823091425074576833125353720872464520596320486563402240307966328295973477229186571840175584552209077058374218233710703111611852458931828149613806129324993167662956032786538256369830772046323259950401459255384435019857891731418193859332231778154771530878376602757062696799043807306628107783911430892585400926091046123325501259466344964299267596171816685969112386787731903651648986506247519702661899658399908910947172648903156147446931500782711497286250253240417252025588609308020360521493797894174097352780648539418104634221163642449716678728571524289767007178719332684232797246796040905511108067747691209862006437058262888132071791590730464300139695381456013671411613044938691830090550224072924358730538401430600445843442296596108181471617435165762934585593153935594497199394795957819517345497768336317816901418315080542325390368516514053146506822990055686494108588311565659728009306924986397786923665858225327015499328156081672024474763578547595921828286739195938812168308002389054202066888370904518836227462598374796158867332356146956257461837408201667550724700388599626236840200956541364689831993284811156364992660864590829272618734705946379850364253089505823863411246621839530735694701508386337844537523276728812270318824333049795524084605221865993281525596699664599931015694657379008226407227365766701455713709505066439689833436519891075891022709130174693304512602586869245490377430770195378330282171871700339625771551428598379042538134491686833741863664887428051218842250823561556958392891320661881798405300148311607283581059923852444844144035912834337077191784100115581416895003786832772695259256871597552011156212937025071709834657256182549899047701110278162566921083111441497613855078107578098094396811838562384601217750361258359769246323935527474850089091917326591932868331280149086837346475211455014921665050522417538045858326947889849154185079874840691918855788571262310049370285348437889236462968485328928979272089492380055508387424448796953174990018960097863153990181220509356298336678890650495760605125584067802318928514224152298721156086424006466177691569193009789459979969840050435032406038587864072270659012352160931596948820574118063430021239638817403320736264526197349222420543429405950887251279911857551509614252651124254734807023681669434056627932487562903562222264591408176550822545610649962507660294175765134977587927846249443628971805838334286025723652705043080708131205613108519798262845114075900239133103420964904211162984144761905594567274184517525942617639606996749612358793649168867893960604970874990898014042256286980748684911829075769642636918446041661886007216298966241051402934853397737460170682555256471359054877064146731283458741774796822370057218188839914634867910557177486269262157651025396292835776044447774276672120217735081927621449679635564009316839520761008536687235095230325035910301130476721635575912222165949192208744097947030919235873312010892791976467937675232014127479209200058347694548453493588899539774357363186937818273251165410597315126743409940706901729230843194359290696802112139684596364369854072720751372932415615211201428245442254226893317943086507527808457957376935192155926982015199329827945779221214042812662797632787812003485930101988586351669979156178387531903445316225288460573934696957621135485402336331699005876335619458701811727215659676559076952829939010272173388946529375736003341823967769584142548136405227404956540071104384095938444294443655506515090907446700364892205414415261427709777769691779429936320924370067710879762807327267405082494487240880073741744483471019989320229925805913112108999121393790599389974004496721384373841689677839914196636584310505738725815612421955691729289362046541154142096572529623879206819723741376324734962571718206469419160444729780944170078385490697388237702359525301520997864381115232204048027630598250666924458206174709551383580769608490476509319061682537132659550805714335091249143973859212846234347602899529417918834150207810299287451245334100866795303850369130110638808867116457146797269494025048554079145051317178829000071187844741585966391731395413646471740336735235079295381688654332197246975441786683347839009798075459990681348410052809023541330192152326137789871069438941485530445415315555556007455246048909257024706215192281188707101640992248250854656896075683466399788981817399297299643039395144139600081310302897551524803753918163537623303021197477330093709084503212971944212387879072423814891743391823026846547871979636053277596826455805531617224153147520779565899915700609817261345418909211610027707869900832826642062659088093658113083147202416559094264360515750084075711471023184398457097377194110318683591800938798939697334388721440081834097113084617001822986765290369556086875482891286451601247429084143281737084234449644081522563472332317183712178113551853212694402596995205271281382848730326453401583669792687178582109893884527350854101546372274743239495853233635858993962726617026227092907258321198033780237585671334926293906524250661458020065934973224908322225378619400290075743068921129831531884938245117694037035847521682241991722746335393029245721593214991279863451065369944464333492133857710101522244475624780564781587101292059852793637514004589989998203306439843220683628246078688862964598906618197985577601693507216427813944400031627502748365108008382081192156613032636742735155036520651370944535312582117864410171390899736208916553498266769527738556794274840930411909067838479242841581696878568820500395262435923960245229247932778918304312936672527311617112407900630676176312401641539700686148080047206545625415391770990086411377063054277856054348690800222628839941744660172610353387423372467742947394733432056639547134246578302073103679270583401304709821309335965600652410416294250194154090286424696954247442038482789808166346733185470767126979188188464284522203721080344870906263973082678071747629860928703553564921871926045090852442863047286087789823984382520571047650774615418947730002720630963474729915795973018867141470897079690099638175540627573092193910253825727442884534114941090888315061511007829409828356992511318521803373865889029706712711779033610436010782524685405519844186671256572216280576898565939008835541124837278406084839414240584276359036866484111190309728673427571673258606486195877465113137816170081413305743988865590954685342058443652164042050267424472783671107670894641816766314796304220898277748025276491273852267133080335508117682176693785094572836424682536671522196846175044467856736365306862940235889746506150673024360897005770619079954692901545279611426174648618108761533998758845569158803661910524069951484516673989990380767330223619684991969611798558552952993176373166927114364986079500009989306767911187563445349858316675988448921272061413688152397347815448837239349001090652724470140088654479512708956161436664024110575070786364835004953754446479485396175901577056744230216495664308023536956344173954349846129637381498320382055347797702150200628677997718159364578080878540324408974482265626671582063739661377447758610578173719595685354960427533191498197478729141719375639317089904388993328519616406819407132759257830905255214414775319645658938391156647278181270743069041773111403354891100190395077213670215514906359716279220727973338196625772819127733463594180406913308994253123072394255894418104718977291340990611844233808600616372544921326195566103017406886311625797421464684614792140115595871336169256800871987410723327585426872743797000089694233029624429827384986999780560220706686416113240950621554783875644391346528076735997253907378392624732371102311727742744414466773851931907075972330244528625297680823631911329303797262814523362892902902824281531075175424276315059673509001873551831006551269596145816267767376360427949940454486935293200058568000411181706534176197511123262996959897641656263916329093406911078668441108142655432844122797193022111668076679654540241637668342394846596415275639242262491995826486761104358364478418758645201315173549964963712883557743440774249598860199963828323089890382524614766421330576904209700594675829378727065210379812947603420648214285051962926246485322647054861247622307528772494927355866529553050400850842122961068844861553998362712032151190919869745515434692840025493433957632770644913170114962468702396245030192801020684030007046013246534803559764020905878205289820048955566297411786764738554177098529879054723446061826875214040647727450847617916942700275034832953800735046965406656354419130132399368950425119441610992159372398654354310918404988032700528291162722058310469912604183468965356684094004908336565539291656223962131587829682864157939507738112790377310563039945205768242323352952116922031669020272295671005520272175921606924022126578257175885161476465658481451501932220411176009516656267373786603178900524604454497386797876775166701359827936536679167276692330435738718257368038567979887319198533504061949075855541896543928562085317077463179987315308223623956560333043570753463790642511259765955606908952935903080198096424795314958510510863094386486507950549999746600599967544499239402780535431151945571966573579603586947719112001700333721466300441440715442713644046341784527634726582031348342252279206493535531552836745668069590167614492183921033458338756259734871158664164566444664691197885185903217108840809248683799927219058522905563947570004450755925732988153003124235439598267442296228938574076734685292160004112281363479819614993307950421161133252928821894091633654923865592977457645954237704410802231170788128237919350860474020072465255977937152465828553586512086732247057585721327987626408917986231086815963677478463423679313440823584458669877282362163652337740456133042658826323331479812485765923248663605870589250768596615107043585390772692617408996361610216558035695083456888991960014180493916333792340317539582672193491456531701510363264230167804425137961668244000796385862947984195297342514977879071093643502142841219445403316641772577298378625417331714088310068490321752445020746312664555960809525944079970512122308456167456623952519769137057934174026794774360786916740962859955042733536358148223570474496971112566275827577159410756542976176696845130771949352613709889122176626238837950546193574373698143397889598945372385378054135553056923868776100610551245160491580653844274813477093735227611162906595708752166351373958947018155592981762507177482492177872998393841305814842411446668794612691669270131408553454045285978985617190594516619534374063008378366045652791744977408164043199162664391324510430978699411731610299483480049074314985695352830323159002954352951337795468215774524075065762747897951355361756856182247597650833537597558747480144535283200440772154718721989762017272772814008204645594130389500002105629795056090595413768829779623843488073592129648361354203962431412617585442968930528903612265112865818305148168755143592739090003894500682450301982371699279939084232641163476482437921724613627991895120981849904698994733126378352587131448389844479379099232839230243475196030139785504296239695976254370767230805412736680806053950096691904508413864520224480296658444256660370117293428242574856919092390756714422105699506851426319998290833303692182397451740443004760221986165252048764115056320334208860141289116299225422124872699223098140501971089713540451642484225721395159734630902449964581462514008856063699256841209495120344661031062146118061560250301876442999658661814054366219582552103247175811825406441745591342539968747747279019101905015663021183840083365059090510428821707717361469837351305039311775626102082551916577935037550908212627884014175150829708506403774052878697037643739535749977373183808042842835931699433619432238328720095911080040311673753301645789102864703003758617943149720887852507721741961962770977497348766910649135373619225735451657149569571098976365759028853404869755456713504859557794167696679963149309613766964925714729079388667981371721809191564480921739554853947849083585852435340425703009020132949570237399123804066227019040719873846139931940089978675828158958980359782997906182147480044987342315843406181281653485271096833940909684470326373693583306686196523520888588450538298412526086820389260765482998358704843523615899905689244721180140895015676259707626328835887289040968635662991343719020388533676937674808754499703855002465331643832549709540139563545491503450595368768815974801515990858087735360336571797722531104053951210969393976945595728015022863884009209042811551410045577188274409313044244676084924011846400054797374644310086403774352650014878314996869735174754594703307717982857436645140912016519337722681667554296763561991719366068811384339381770768922951686750251693945631695754383564823793747467913264190478947857008180519178088997024863934252617212116364224991374364795153574278056175339326496605315934155587710700161157609649998529026827613251143047418232233680235746926543352097050851780116088671286720844103771762810956255442978355599985205196213704474549422257208122601439595228556380163233697057259717925531993250958655845326639739938209843314240616947448505376345415510737742207402271198103108036334983100500841134270828708927457311116478254884042615877467170658036804765471093117605227586345464749485823250433510146868281101010523905463857371143869145937724761130159793481895663465000084429111765540725739226246230772670898849064015698248629485229535575969112490010134729344720576429437824584665976177444776101598932860105473985180123307950897028662317468332882457024059631788335562982331942081123160733300389871800255203114974710030533257562774864138141471153897808123696657450141189088723428125834244266626969925256416719487172021177425089675750069995426657890719610975866400698325634681001420486281201651059743257202602799352512512615437272543721115718315341932284559129320491578656630464469315233920901294513675120334258975824279173903461149465882662068078152307280480199877957338162360642690319841165789667434198886938194444808204919451627486947944690687691649092363083945523028259901166255541713240660537860633153186848525186257175275194650777932816072752387656712855462263363343763083537800248531875496132120498208236513328397827119869620802545534647624597519676119893160857081432868178238122902789720983965501138034211097750371603940191159103309087286945175463994852881421500635106531839583236317931695475463438752016337043489822609670372132182680067649890969486098761427125837829895559160665218941146485368007132100678958210183171931762205652666873481281801378817924488272787949154835022167682249197055511263084498700247223076626081120866698266272523360738917658281087478433867917844685905087418985864845282888206769007080051662865166112386433872831669937674740128239272686843902274158175959322899607617797214104365341899718522466485414199398383920734426175881976997504174193199517348788981647678469514256658926251651850165536887504927883268835480384268040495006390979443454495231505200668173591959921919594783473222905836914558830600714432370992745162715228139547428790688226824477219602104709296020977136768077941138771473118283283457411969245297598789915051540980023166044601763303493638644235317734240448946298815707513683386923428974977505478869010861573975750356865095944180792102498759818011821657346830124177423862834201514377197962601268436713375510710307578679194957550060458322460706940077735679230689214154536174181759267744755583223659236645982125278406370007609990223481965438867954348531639374922119463087447609957869306356166799576005075330012146413819055986765514879554584644822829106981656628048946560910496177096381459485992907797989955849650230538435502805402739391391831616739433734317769976720521515161100470572909121896885886095756048530743286687641828564436196642570994083093646989620120015726679906732752610351326938364774474194461272084133321995806982045611406940128509037164651593299254772993940341860873478762117052669079635584305281290299420699915277061934849761349237122700505386085482716965804950884659663969838584951939580949806252227167123869367156765331025917507452888259611680907204744314971002968638521436056693887817966879955746278723820236288147294471439983609633072619922099488983018745143767197200446580664706136024597200986949451473078998268000779781888736669508640593831426146870943754058448762835441648440154211612772815533431810946806919583033264486356030709873615147435709093720864462070792385165600001111592678472971118424466689640271147959002229687810694692317020235877893899957227269020868465761211380055218686268777870143206863776971956105346219042687157382362736451599496617558768560561404547661734922513012351152954990723020432275556243073219572353793755656506143536927649249556647497722276645929174970208759523529345657523709885397432743697985920630122323614034528887264459635005150124931435622730204442634226312606911079761808615405009912805997158096818722327820105860325311724903278900274846420410605867756405214147651242262060877158169880177811963608860980167740489869647798054264539537635309263500231235103309958643648322760841794665111244077077518581109345995256615520707744057823284751542090076799626921014295800265076779993713303493838009740834616090508643549361883504773383223266737318824808782045152420383936690325176846314160160768572324184606372691034091891008359327808599161283232272180077220917800927215110815724145154753753042576731538137902184248255283400547957143518647804967664836558444811368073099843191445585802860572540433567774550342118939452752168876766298705974780253978962835992098665304370790355958976477665261219009261310344970262419085119786289520881648879992431991447492110842224683866261665705353648162201846503810019814730633848986438965801871066801475799570841288708416845309591480085213186540300229127677311312768452710444548400522182725349103559042301797627425119963566802946893586489462326695096396343571402224880554473835125757145970103836179817518486862003396627064087806284287236564843162258210827676461746106556950507843995357977972548362944344227383796682183350997468678778311709588536851825688499885548737235432110648705549209366858651094249273159122058644356246286075898148973135779302888127276620147403957142523565370283001708259827708065632247000538653364799899063329285396282477524667549912190858857797447500881405841007425906055807376091466535447166829025673228769091364577704164299298522200235368692750380781297448380268878948926305146007578032569043107784995426568925206774500552902700198907924696249926971544722243024221539832344662350091914511388895514803007649637027122061750862566540265426375146853113227841452010821294264640400013560680629939254477911535961156470682207070569867676014861292389584047362249987648084115670220812777702857514753497365825966603768703099410136671166735617660016026909984954760152208168690589114083685882316630798678760542776167924721070653920356199600867536460197606882962924521969165275432020616081824925108811020174372108825137130146819738252055486396616385120687260211059250257108463040941759183862906080927224651591231974013839054790968537230890163455103648402850564709186926135124816891656247890331096831812775750558992625408430751662126417324163694194299128333051660319796881776867987253045608290401414788093314449949651277641625804149643605157515357750947578349972705283795517672075216991375556622069907344863808607694504100455145728814915751378347276822315203614916347430141590454515600897756440909467370604057990316480037309969690275505162263506883797240772363077697392306977526276918547921854538974104540791434452904428671395535129853140332860952522533117395204565831750495869493048985620962666264710627727327993191838295785030699192447979037221336555500714121648603926958923310879694648129758663667526325792934230612452330808853127616931718555818112479618759360687026924244190961815941799293049331965174288308834490412566001955636595119091300861459045654105032360919137972503197969193305411734739888285391888027424394467889189041874837935628819210946523542576709911772278495943217768390080350159901891037281577219322904513809065430293683387625783015832558629712217666428491532180522477696382391533296894182241947013475468477053604339137112184934119646114143044568759452447823780764781191592960381049022798497116082534145574090070797924766735168604737626237183969195937836651377417555939406230331474937629084319625519745925845732505912285479929651408071575075149373935510128035925392303471882979731485993433904890984950530632626875175559505661173615718441304126230688672706869508204654463503038225620266167493390365674922501662037788165718599773148562691664577728982202650161978750046843482803761414780422204893915836013365249471769561752818264649490556474077088649132581003135484230749773633723554829239524141879365482242023541895431916836879618016727897601663501451910146120143301017222443365213533409574509928559652265744553650235194847467835697786406188755305616352391113253971428140731857222481102968996081216972003106667869263469367907515010857830466837248980173022879078503750813924401410045310660973163033561661821911172122907205550153184741189940789460763739819460195686050331488602501089563333439746703120823829633524058495975307419546584749060076443552329216995086644598980246696513578915448132608078635623989101064597182080464462976740741579050051477638924171046950254845493827770656237489444791088124814459604509331041468007171349446648936883124353656829606618427077782333538258302033317123579828920398534640806241260917857275454110111665050619506919924206963274548896240702068698464791354644584091460194609029740469155900728327616987822473970844736822311322175157425470663282356818112971727741163266721719707033728332323351607425904205819803554384343628220017088552478008998393113732005546208509232691434604185453555844256371815824910614361058837589857500711200896902255747135186375824727529926016181269230951387176063870064927383740905085200723943969958732605989423123315039847060404800101328967112409504710136308718516431794125310914364550940197051888049396054222058840135131138482757865049785549192350599272779970838628140440695994048143368324879409416138567549069011490767129613110276955990652827708691886908074916510694235592113003364598766178273859517651122763795183566650842895011275008652431720448317567959871044102280853731920224855673442058272690950326457421590465821721164394123863538325556439666827165408793663598840001099865353559264986114577487529654382060241998692763703056724340919213528716293921841393206275673477920000562217765749639408917585911174270411042560501333273483515468293652532030570586298006852873166125118211687090214391682345444698861183380008322913946263201922272179908685745731177404590846084515745301799464420966682406798957680753195971894748956318775480665657323574352924065466613882601646935577817701046422775197242256134281213018161794229865440236626289033661129630532346505203303510354762859877314447058299821813484129737901812726490050994787799077391495694150382761498912314496808570929150072383978066021337075074372126367818391771308772454826043643549318007696753898040788702236443390684428866803813619121718378697338793552161859437931314518220687566910457699268517009216842455743590020265104693727235139155617087831708106933609883103782699796499053472860006439767586973056514098649724997973513718256608602051370025114120092617942572524108136062965155009507674624940748766074344984026266670850190575925791802093386144046980145019413026780079495561231163808334055936290811647310722471522856301188909821593755579916996581880799841367901177367359197069579622011927448670899084873877005565340702414532316660567024429775561321125286096873162522251535022773874482785280445236890948930386865061227482490474093268921505161538913434119920544071026927421215051596109457631815528488210985193267356495270717032982796304314491995606658017885425087264439913495440317391989810054846873155097451175127864498393481490241327396952993854306449407465535211424364475452665466770726736853987423314383466738674262221829069687908056224728221551586730080180361349530461957992917409521014686257325535116062852841663119441893260178931151443041930988219014427944386548994849144944331530466104148328634693825234063576641253321152600092622814146380018084551993019236559032828062435227810157124644906998127250775040051625523778025167396786840055836926550718540116050341961534903170565865580340442913579584360843651401158873897482975113219726953480309163750675513269865978900238205855395965294235104059451537334307184519436369931392626606603745380758158126470632821072827834616693945423115633488492752202657702796567875808013876973763160373983219120005147625245716631162580448025435851379293791705847371791106039084299006650482965298254829263212747730998743261533557421102325342336583402354279934499870897359917034132116827223880785532665400702318372933998396866974385431085959343272653782912876276962107813162808180315131622040806479987871188485172699813261264097434973819310250339274833826147142093476772531429124255979160266047249762626873770092482679129456238928737177271380940956103429759743655055580942562077109580710060901443464621485977225665186289373140837539325364165855794338651550436151267578779311121266024300124631449236090253560850424294431915477936675215420225025767545594767679435249154310079120914054645462167253402045194708934192615021980047643646408279936731228838716586586186454309169254645430209418092072606959314011382787467193615393965018525431876065936655679925409408242260622544379915649833802929686226808173489803586898010365236764128807968359390326994713196213301698622375480053142616015849825414025236573615521058955809751778097930700123060933881424991828630537679936711257632012556067184884562731761877889043943626513133423694746466256949095691071589251747926305429319475812352809592194616438280517496497093428999259443973920547148609321279694940372977186395174489806583181900320441115190730900600230648476206808808512297302074552924942610064828937061671962160611320028737968458030700595454773829977102079858182784889842797837873078984702780318757731507680471339056987550855491873738269934090847030955938468667039636109398268658054763310910150796978533843932615293818549267029075674319788629679742199819958106606598341762663344320894969298521923163731046573745132242039178775493013438357963650316096437450933135484335904616579039799290105098016728958424173317865702217641848261544385237689571351870611363021321894715202668928515656127613937235803218883794963374433849531288673405682965092795589975165530070998107170504312213677930123104628161012331308893795176351968230552525380248889291679665213196306748455051134594150827266276922943164098224132974648511240599359575795809277816334729904851183638958709230955868992032801687361065201311256760663953777550424072527971738001770776084144573753872319541881223068421352636115696324276403593733883631375321046510266719985370739582160535751494188534420901273451262643059791273311544592711325254571569171933511511274940231315910815385512580129929975802246723332770989681555998612384146895022104976960351308691204337477855877869901962840591643345882406021069384294788520779597051298892250768929728469205440804060778883937742390245791657795235781144126657367780266099196328236050088927417097811730847306254905211435022805969822364286440528303697134605638491226223034789103603037015811962495685678148248336951212808321549176451061779681250961355602883690992051451471473847223988555053215345662848254879816784244265876456372869291195782473686741591447935612882144696647763858617828878502166278347894841768650833773001676326000474126302267361116876030730701475355473970360474190859583047786231826993926065377754407185379840392461977591709122085280157760442751467025854182471906073510299017007290569025935100053099182343054007214010191561114587531254770848730531749948167442667981195911912490726598571643045333683581214615238081261447206926902685430797712637508266216461575984349173727247332330717760703271612098700113083076949564684051881966968963562978644413087025459704273738967684813656427928745987383292645509935818537726151838951871403793007244904399221781516646918228911379805204278344496620205724553308863465158660026833611375388602172192514982398827436158216384077550645651964637450064987747710270844905833166053809246055179195816701947862653865048903032374565316065119714541137559923085554443163125028153974475306574525579216835539348737825719736304987711836746881282889889466515430098172041331638965019085430017682310774881320042455857426844859357219968733623070441526307308146641542115245546751080682769414628825910665502689371821465968535295792264771485216558375856392122379517103562197481605677340674052961100786902969819314277986126427154854937426889559764310479369897186251049744054057221376634149020724560668312065013380319149176412800060067720631908426700689584793968110899670049300249570943600526348262208477471852016393277908361876451477003580572318614776392342398689756728863969243257686246263774411797675935717163745877269310464931600738894322843391024137582803689509723003211679041465147819521362240631877518845253311267363504662622332126605054690700255633000056562093459706446706900905176593883548555714302596698601110092738358454007960105893697069996580392084181249062904757566319547618592177323020194593377172911582214860989209478483928941012290810164118605469701694294839728526791895504122400506728880517100314708407298851471200498061348934943142268313796177624714123998460973832808784620494376605596751364653649459340792943473393877823420521442102373450664384586815010939468960647694621647538865017707112259912451847039733522771902177429256503955189762544008822125082613963467217390039497607854852010796053072550232929713008668250155046632826311087865451371004245462685969378107454391608019487186808798873988194327893876209649144195269752185897116528270759395116243731691360956129449177913063306868160291750693735114157653996213948976320078428444257625088754246747621867544650614111960175360483822158031836494576278208481506267759162348240981019169107092466284937383100362320442401260349830733896296687252227692412631434526728751654645234223787235083930698756417826726852214869130381425381090974548045146128925781685533965835460252955512746063186352639811511587092352398612545175766916227420945398400445380353665726949530873723977996263182175141593884142125069511416432970907314963009243491793717811512322105706584388419810693296421911285673330728761596504653595072811158888113393994450900812188421434606376218982288354640357360011790317563793416912013937474285433280769845630070336697356103767572362624099222444613184911303264471861173012322251145181151073960479630761688376856311442888798321011981191393699312374754048372053170530939575756372525739008400161148246827139135791487428888051448306724632759958240921579177819472805914895037826130661694474135833529716975106454148771971079571930279862224265766514891931302771211956910309688015252292275088806843763455756671730633816141030398966795136625524426892065280983279514650238822839454819516330561864938632054030461174624387688913277181366362372563618270422863615554391072299911668791216231530821787218634971006144084448380075416736231185132690696060099176450501432026494398764297817758369442550387807267410554883632833442836838166251754410873305524438673473638477969651845575464689055394059012672796083989392422962540622540829791796134756391309586715285465649524236195426454297177661222334318929348623958626581618343090868022328778348536496135155999617581873034055112899499844551144159794402719477090807817870515047418959144024154327567005846429059962868058576643651629272454019240986930980430574927922145640300033118718620677758125211621099323878700716040097272146580798164904205457339253472790872709219248525561838317823047334545411720977802270936764516389755565447893967976277585183525472114335062315525190041718615250966904835134875699474228888245203804588277360529970462997316087638928625960049292738895849905890665227339937982614235894544512458793321255835567638774515662403424252207065396968206658571028310090435623431620009502777479101595613228449191845534808549476248027955012899972399274443589786371911750346529307924409211929794347614751086226651343966431970196658368779405173425828381153758831018752780392607195325920819094783146247576219212282588077715918517243853470487521479937573635820070440730928749327319005457356328223440339210519984379846574819998320287998605455842286663032878733932046290097435283058629339152235277985103846275544956320599291072945749601260218355584242839057598781917325388816092029554680562306912135037784701000241897405141259917574881377733425220676441830710482500471243773485841775886721511385478094559993787592573547334139792664794547950391079859434306793439684885786368663723375787808241867066796711920433904384569546850814450666370550550211528960382551915840314164951382907097609118129178103319272978873692260904110032019091599441298035312482568488591071470138640860055314461151921938938093778506608385087030633437961577476171829782646436340959258784868526010347135913419186308808249687204234904676973855499559042998027825937529405426272997930588068338326788020822038313643371233907703364130735966769146799151753031209541635827759449786574936151632699958886098819286187245159916650646930057511889487037320853324235663432621855250417848564594481569508844691415401959105160887463580863064518592428241224140368822288886500189713332519347566055978745614937801262701295104047147600933437343930359648095316164305111083048580703600369631739263727133382096708025601370664123788968108075541798943303848688267579939087835192061764315732180722596449183925258523357140836520462032526057947481402734789603005542459362027242290449446897146027572177950007662598548326027105592598881108549908596469465417842063527554361306713360268897511298201793358427077674581401707708013788019258727916248638074469037270537985364484335647275489253404537798994514914660171265427807350656473558858314889955484736413039361396942341804295578617929957712587835557001916391487710942521355539405211591273003061544826514810153627534128947229451472878386100028828216792282061114428672585618180765659955380970936221842324220022615115084688928023596243345573305212848879968159059398265616619075544550368411215314887979746801569521842937194676451225760360981915461158489863855958505749824387912050504991993200324079447234236424675086719677923043769518839564281140017717278632657528385534988662050149835135704820471135188654279878893103872219003252870993959638250081321608624849087021724048701778091843365550345272785201802674795542538521175093008114624134308160388013185449391075536871501916245510561598644442953567759310233820809578865490549879961947119826460099621170068240748768045125536548936553813031446064229557612077832694909558840960125446455649309918842942789902152549678216198143511220147047347230290487936539892561694726800707581931301326508648246983701826314680327373926682482505423497520130683369763649980693413892062860489124492845992925288611331444158372420007190345519393018985227676544522719607968606917010693628621034761969248402824883375146427179985565504874906153258784102673282413003705830982747765628826762408711459348850548248481835728065031351231900365321817967445713353698524132792421018302755854038077200379587779830056374523966169372849558914139855364295601250427919886977888290093487161368935811847340765428896283447484632851989693890376641527694272140441605808199025696282427948024368627606768048899724682701567212454269402919518762455808265941077322755012589264477627087711496303499749585511972780369101278066779501618009394470096169866979800049786555736897500360512080851182501351174929185844333070879303797557189355851927692787891589163484241070787860375062928554978573473875891791472671290925737967773922386169486413190324277855199656517643072572863711700364438972292777003270420494399602805655669850290045694332166597857189096694646107956937365025432392439328320398481774739247316981119059017737383329970371619131478715167305629332860005520994528097021910953181684709943875593191579334266568357269811627537929756910818069974904506128837917966808538813841443498100170147683698785000930275692591126662827467023856556007764817355694840917722521033548019741870425585301293755424075393142533826463165359880790762554562788430301692088259227375179809850715394605249677825226064818661963648214578163488649498035003681550939690088441914124315290774082373109684037097798264380732579468262527732720517131829608771273976041398071012787038581444127176508214577183457584949655991979212290840624435436777970155993951630994843790995874146321792127037536805837193890836534874198196842050002947176735126007036299266287405440231406679909073707361630100116970586016821966245425435836605716352906545133972287771462035393496788602324837448012553339283329052165955430196714602552226127996701156261390570058916052542330018497859686382907008914563504008160898522488620994766351010660122672324391573180269256978324507791766214076466727160692765156062881323270300720090716843570760914576425172626378257568184044212460341375463806348398738132446249427738173102697535192738249943765829419626680156618039585265668074545394621577765321987223413662367294049747987614186083836859595356676465725565021097787374371330935574526069877609632189276379986156971282553012108988016291960976076239711246872802923602628811635339265187647000403575841303784230708654442744125467748388264072306460161910734994685215658098000256495670954443163553811541111578127060638089162660043173882272310889057761275163763806451660351874854556553485668132345363166464824388150834118716809156836914487293898122444031362493865785784183518222760183321416971197113398210882236275962306172233873686364699720037009741414467162229592135227297514855388441018333102091066161463574976442384357732225430076467326444423997064623651214549429204397677677707045600494061051527546409531675773907116116488375381826814367455322098419451570145974238470899724722399336734264970490990533889681974828296034571468081085885633631957889224473073439896814169292637479874488509613615747362304497183774043085734556408167095970367807968223852919536119387425084104619000921667120962333806398123262183192045248953047629065498731469214587284915738653180573227370885631211882695202169395540287098643494944936323187396794769449822003651749062770752380946775275288979397657308769745553908752738810808503801365946426547843669600460911281118639523855178652723398910764022978520059559562098673545670050322308873272042539002566785654517997068788122124664126979099497715962727384519671879034024749205124749722850756306342630655748880889002459981156275141066834843970052944759399647454249979464215619236701345093744948432400457188094521375484482698864277304019091576626770444584542513759766470081869776180060093422708177223079016779758789167222656310928022465959989853196832791976984866313162092377534794365795001631546725486319914896394901208325166581146925127261500927653910723479535235397663828882922904388497128736786647270104592150831340253500094576335000641872502427007333909043112703732750510962944436211854417916879800382584931525532294055551876689494706399118914944991244228634309010327992366153667758453771505319981729580076980874614503882359312236852613459449740282126894106212555588826141904370002494584824223173388570601753186771248722602779182789259319281612918064164239234415362001522749841738638074708721747018158529603100806022084316915145804690359832986051172014660658127105126698062905790348815353522315504763628365293665912439531227660941060595780943504765936480699483946241888468500709149698579661409692182542030249483131465195897848504678629975484912360762610691598385554265313840908571935741007029711029813516145240515934056965545245846406672676554606261494676902578283661996854875619645520752036367690318980820810330718008873485406408849535467707663525084464026129310200551282272807141838539742338343302199767055510240018244386300815555692769969173332640078350577091366798856149861959582269030310901273876367991853796116928052882617917456835116009863352135504799321845446234294236821754703348863807499355904699320089120619563142268953523310597783242138922444209376473656453999071079087623522360325026996797812932329385565189751774138710602793077988405103885898278644825614545325286357422013528899314996992499670977014373741653356935916301248043876448942235456231784936343161980858744480713927777488171234476178161958080230293164997741803154416716550557443296132323877530374331859713855773711068293841490427231728143694516765623620043986150985489225172799862639898884817520400470044877633126081867549766546795777739494523069805558104842846715466226710551163137268571904844345874481435863623473381050632788139327342602587007942245688469270348362792317306832848383193427298805962754663867633983480207634657046695071933284487008427829535900506376840922879229982199046813641214981041598359676856279403491195323002182412309851232410510965808366659163692593892672185668827195594686772524218815556363008229231572031871339099657059063397475688045537315088057262424858366373699827382412955396161028789880596907443820344133801312261705151356272916994977441688674858660655337230516399334015203351817828080994192374901763150331524625236136258959667989615001597417396690181929759669567251365425255397270719001492028439553597980903955727693794913831932102862033220739788368702935683835594985235723451850718445515018375268480170168627410738540699757945913522151201245406535817044313774575818482053001355444334047467796967202739164504034680176789605071856817321213463892695543817705182923065433446078867099685764577802377895991835311098872710931559264750541912221258356785799064523113834025845446914401609769794566913751591403578020231791058000535044299453630914410144003046051115595775658391266552321074728872251621811876774298307538190652224163927214663456593228399611999931543559202195387150980337467498773938197741444696869776707827597260979641150940615447015074734739516459363543512617965016079592802248702071968115187676094199018290615370064982564365799004776754325599786848020438862912519515248009533185457888184746618266540181093507925904587899938823238131375941606541725104662979228045776938416457186520575988069232750339763067440552574538979697218421426167131287774409764494692235220584881810100016805092931302722266632177349876338781607391918028582437678647568893864920616162380988478479623198819937021620583356232978616039308401840942173111741329219035584234786784651244506179979428629037152099302849050041868253349760338354487178616148486192408702514759452817899447770228696485590635852639668174022867503180293733053985054914081568068669704251295025509937066345112061387513933229154581240329577528027047434387556195939869961136006458726199248033121705824999787696205019387356646527574991355304660397718298685228496515177318473247461376827754754296784813103127085950053730682809745536758304081825892029413967512588017753391463602399213166121971054562474296568387105606569730987219293368105244008636756653543037580071573546605721541289114971544560584087957646869995862092975285926584968716452108442180236681992113217340241579977461728493650398815412921605894149836840956941193418676568699741396215435511559735037232188558984488819107535897099292365261227059507820934065014928564880458839832182063113267127079009873530684961268407197683462797540547135334242181010908868050117808019910405730276769885108100366085035704648079366477350537471136257731572823356939096865567419573319694083719682011158462041808196948287017090705293665525362599112730999839535652075715418407217095772619994210162119313782154873670395511242921497545877896490628343498288014416215008571539501593768833626467374277634183087153557565296099311560401890864643840080336555639600904348953191063997567434800117591293499943359508709904454898622876673232353472008268995974468602987377258526207201248777411183674231100514212484627957105135650729874641465514667699577655128486479257297050783160659227261919812413694011023590648997541118306927620633839183868776673116107624378025755795231496177392589526457364345799489477599904678741590897310971264742088850784341262033905142168523335801596787456385352956242615450666366938097215502723009747414390986346555030467982578485715711506387741881628436688481301623706232856618094306899835754429125858741204415716142734351040404299808306376137496592838235021491965383498909545403549293062527566620412856414500591437592650028242493947287374672421892306426176854478046574012448895689631551489098993275919877704029349225824751556988004025963320693837334320230139117382906308890719772089178414335463941951022658053153466196486882922308533747190492036400783558616812181489410569776111218417174433822265272892034423794301787029668496829440610056158109428620512636947318549111135902735848475406279181180207612516879601210488215452304342449245608967884017110697770503904833876381951017691710622729832326618970619583180526941196981337256196236848910188985337269623671517777782897185601169169428402173609132300876931635334039768131060745318803698687147327921092190917017654060271991541604792031232376942741400316844933599843745978360942315176124682244741522371460797362790237182016199869898764269047027781291788422985891276350038280277099386196401973350362713816831917092568160892897684166734187343071183805152390256029126273371351664586805528656916701030372137728626195184577525078820752042856552987796211674967682066565333897101620964419628437639938985391919934048019312796753282068017158725910849650006216159384241870214214470684574060529010641026437786853033888021026657850020486267349160122142538816209725889632921989027294618870743174448009448231865280324935116133675766898544235148334322032295821044085813360488161393267732253586225194222744962401914883211565769420445223511180484637146644453028141497148060210871609740696346321773292034044888877010918541217792768365728732935205915282755116539642934304673039495331744667387607363717389825417876042363579998873591645810281136812104778596795200151623795039477511842500450282821606711338888115200632180008594847654278424478639648909618479164813571595314169541032999907954012178212157217729686050960713945013784874820053946341186596937731545888903257845092468878517231251584749645099675856342786969656868292953250036634867773519483418299764013191333282785310178932649203173140895368106560544492050033590763924350704651791235698486661066474086464395833891228516007673968449834914643828407841495297368396663286479255805117493751891076849621958966636807426885907885955944155051931793844214664425938558138180662206580257934781403756701902484317203364519861967193738170441878514433530253437511416778286110128671628614772092311355456242986798451845197855990050737294194602211612456008700460504911069016827558765693348667623713802605450841366510832075887314172603761399211505517667809988140247542736310560451537050054589977669770205667712523758834962374843081299799754357203552343883344179712672093093453410992076805862176630765620135685389210895319239882652752141138082624503840659312807737195581433418671518172774532619249202856837344851932114340089451464615728002718993752719615492307707178969964556761145141655060734902868749886843337260918090596748263918265195811071889852494103665817153115790455468679082420577707594306976375802482125048815006321678480192834227691888759132542233583989666772404509795484070169402856352463532300340465163221676267077262223537344935799228613566848579362118634110004785840289398981173572880128009533840551994017607734186195832809160634335964523302400873502959838220022287320877226870987123850950081957318224897894178103851111868001262448534898282631268360581084334610465792067358711962479957633886365751190280833204346676844355549394965436036959418339139350149547599117608101049313104402124388431215009658092282145752729335398369080257616370640089986810293225790625195628274950797546612880148527260397497731630023963544768494503256247369621760652561019302547576598706460013853679926032188137239799158553322138645051281736727370679784461578152509592780923400727725197392774578956381041130700857865479718539128114899882920698246043207745084948928394023532455676488084830427780996388726082458026790595675417114897067028416792047637861252706804117936075840671149164772622920637006132609845577116823603623524149529444524635725882953170096187441169583529179971747921370176760496446132745955328323403871111146576225066747209670027369466064581295501253728511092203356344752264888512676403790295230325801024882319329645932609212207143007671329925132076969957799486279699944135134355868242200565567776614805722123501661830052952174953940320182224277374005489040230175539037310915260931805103105255162531623499107180879609170955404287433004933564419994027865091188112926912691140280632077284447888753825371673790163507993855272136774542014543253792129459476029769412722947729924245030944931322241475201762733067841660778407738761849678439724912062308634162202644739440894877668631645741923638331795970704626527257976281048703442669063667584910662474400184570989836081164497447889284157754586856601347843331400764156968561685777825710283226534043517146957582502196551326635715434704791088031907045278075119510434047786586305942038503565302791086890040725731237497693961992596272108240754486255042827293033627622424656546303039573004752636089123235700440068684569588373382365384894779530785911138160422121253136855705581821282342139884682544350675858002144378426867263972817238044166559860836551140755791031018525171569589243335928500778138242277676766386739885283888137920408101020496455118066293803436152947719368798618384881285415783688906894089374835007413265600939203537975031661835596429661594287549126690947099611478225856616613707661248285463124538366693794664273325026352369855793290147601696587377406763589479203803122945175091636061229531445194849251545817459991545044671201446302066145437712873199832781483933933968996964172781228600351442667781739326697748561035398939561725437202159265802104085160884057699035119789124663792024716646929415162723229197950095417718175855175181179122829412446304962345294050517225222744292333981217575518981267832276146446557150438004929575770119899979183946679965055300002077808330068020582291515927965853710925572859876220529584783693951793015912707354780332171192792509457116509483313376396021240697105952790791667602970601615792493400397524160039146589299286769001588552456631605591786383356260403855244232391398991924168154378125068590417414906373390711635892112515211278886105570793172342883900649997963163131567231304053209477561918641303738154739834087888818458562034578457339342718044908702421455607203620277612540772250730063842576377329696676558603321114039764436171816942066938032262084037244217731795236207461432907370237647937510556844235428170318995930128385126332117176358785651828272771273389738201650438526859392103827318858399082798488965421040365359596061395917099447530257668108962503589265164712165727377677211794257729456072918222081565809346311152158315241574309631880244956443413370680622641748322687333226089035454789208030504379215379470182460363645000427814143458002406875999668903519171920839208493891137509140435667402019993108733907442068083905316457186689877995343766145326432486078159486143110396704349516841919469230735939430152310357484520241264909572875460182312610726063282161111671972627532377321762433287273282158402555002949596254855394693717504757419016456781338178282854883160756967846739003936179541258398485758325786584438283433793818310858551471288613549370713238548444224748315120482583121734142658614001364216190213530516705878462967425559672758652728407693546126137422370187340111310024589361931441392582586509740743947094078133697010043488283590991160063005326561650448402855600331822536894852232017117575994108812288830124635056621729371888810547731112551927361122515628694474395819105571875705312565805945998984020707119729529718369082531989362813993844268116737398092686812110250726175674307301637168254051803074619764763124071965014840013854793783269188917877368294479926625084697917494674307853801880360439659358287959071311960299785275681015329094145392966705879761138426917528648974429618212278905058385465233138038943559110096957150624510405542102469165164768043567315887584579171156447400079387275079889788411499225689962432407588459301182758662825995183986610090505302386606477352193367389492525528236943516055846207770697812619916565247975842577209378301066055751568570433675369505935208256869685725807833353113048159651920304430512815067547363777681733670398483613009061110218559704762227948234012543164117385678263642126023026036440981687547456384871024679409986494874570505642668284303622794916878422095989222346705220015844574350555031292241041550670728464721833823572405138336643040938956259339766892735191129826780991447763928604659386980028726176676070059869182808054785076684182092676281485969377343764960693695851753139481356205791792671771718024118558541581320199083589179487786998173519697059701241867874729065429655760578411877112767670839455679680163132736959366435061486969623146477943649156804903816749761404612177685843601987861342148007574833279872114232598516944233353328754819359074062109511494454130903959947222070281429761845174992179641839868360037101381519185318726003047115830094883951616848237114817017237961561916100389485587671767939272261315252344173220367821665399668858035710954126572735557639328812341125814346953248518217790196901342275983236734736055574110156577824140493176581769396041062098255887384244555815039295207272663565417064588964802609784100139834142744829206284206683538566702475343273829638274728624751304302214896410072863566921395156031664593907973683839639258187327347720743643794279089224677097602750436982904081174404636926027091723715005785969430188462182363337441856499226334055331857249819913810293393984458842753098550744296903255011714624272810761193603935102427200179542880189565702219282408286723497263919088981625509914853770053145537337357157040633442746035306895690670034313822393464723582771704540388874735808792494560733240000429072616699683145785262770211706772200298590059005700621819339130110736139740888521039646337426527077034352686717283069530879420662924356664990419081251191833826827117781723989350444371626996407596643206541003007938903825006562556524772331459604414183406746587424833286602393045286055287458902555203805054588993401626413720966275890144609302597556074235985813127963731120007160726217894245577280941531458081247318454781419487252156215026748459965399770221372689329205551504190960471508859198706628089771998402067158912745678564180865186796419745740420505057065098975668401812340427302728491344987804361741443335963197820770692232149083290008497038982284401823983935757808266808110741381957355805017865616798264708166639204907846223761515507177789896644848356446208613144404473611038349080111433912317140350700816434157861711723866759243141083441624637866172661310646612043396168677650865089114104312698241573584812131150047138263325212691857603974360237987190074905379162070359809127983943561997624781361036633058403391098993831468500878768867247302515466250370839966691243744647139768863809539144761368569731786287527864519935127014245110415443807613874197588165630813383674852591299142040923585628324595222100967666745183417771597871076809687165736554116128120108195417400062868855294037285756198021388913614347324084699296985476445098337877287059600992089199650273508529819132037213440429050227839766471675645448240224259575737958026329328745844775924681672809827884740859835431969411386382955659064731481027341174756923813713967172026705570224793248422108081465134532323301109496027528263411191665809606295585402142319615774797573996697972143637095239622309692141701085685194089904267209160141066328379234547031764443772606128593952023049777605549783430327365879357454957688007414176960632278956195289950570964459592623467336669639667593733168587409870299061597917232655193058650528073060979704919631537727172176215746891526423894086251424184936678209599226639621458948853864524026979948333522079668775952313784960541558628971167174549349812374363518230896790885047907605034174090728974003760889606753992656858678866962728060356053159134273335696507851041939871869305815313152075353978127653452120913432585364436126423242265460893247606000845849027200667418687398362893587969150229911742211286092431051650948030550604650814927998888363105725798115545122578663255186804677632590063261527467574436460682959403934697072177805246084910176132151532620766000974455230674002988938556017583387968663518365236127069769860618681649963953751620467905107948326149589775399768071553190518760840640803287534790584883179251542347355074543489758865661920273145268616079081108285277851342047059817624389869668825481705394292429382629779202815445788690403691709327646020185309382138398547060488774265826262703387505852343357331606068651796740224584421005493159890328017219074465489971611771681489887561111047939045950708399831037787696516917305596997593340115683546558043511352614088895410205070517737068260844055280396111455106558601392972971641151654502783161483934941577193106859347414585849455484773998046837463834555272277815181073424264237597990363028525481182272953521353456104225319864586686783820026707166609897933813965835697418877783506538178843956500143437444912696050735829949471772166268562521890049521116930616396523197822902870644568948610456263045821081656063263601145948230670872914860735719734712237749090899933024592271562524845968090986588083986931137114596627091910573907027772434146507491053359640309512294816040385415786117881922976745126831993608105661400279970653212293533451809203914663739171495571355461246531302875221629913734308157798385779318118836025230033438525348414944154379664571396419972389277623090263473072575958616885452996392504900498731127818188933938911540744281374435106712441554463154722998185483948115672154465280448175183327538593700949270955952370712261928350243164608151796915243242819718202042143185201668567832821277761938848202322676020502133821249248488010331017486857850405262545543150889475996342790942118600803131716203025704244681410959760757736782183731005607807952617983586645827738947858800339286394946267454720553191550608619476460299332034888991273551197391750234775125219777320204265643790249469442312643145523075313321338920281975806269787490350132586116077211595100535501120047394455950977513888828761090343605342581309759112987356297563391984640752954648148516383640332355359536276875844286338950541418906636895240557535129579375804828995563504224980775191190066693602918471035405172075284811976852223104288894267758523823864207747557803965655444054875678165039597338514920175892939069042771993658854832520171424378575703525576641310566205144408643380892198841554121035193025595091455285972300772897352779923420671254991791363865229300338674776392887920165198148563721465547696476677537711512654350686626501496730935442402819264634990192275148939431052963425493959303820541326800613256182688199124969080382133517822543325931506221183035110119699022471324322807968164914045735054720540816746192891668186578193829304132680908092357530771807763371089420241830689892996425685206348295443052113965013570077518329470331128677778133426719048710587294320063870479916682749909435901512309641392143472268175171828431816798460720700982973207243622514050787575643023070537951915943409098645380554571606882245707714697720523431680234913041215179980872459867152421798880900027877657285020645263163775535941138475972217966354944171415726249964058091082498788530065496354753821269199295444029520855989609212796558349247060635792978504305767704220730824041519982789544434758053280302656527358628763432567677585913023028946086299962679428045307876323679595710102867748550530019339316955172892409190262317195273440696542910998161168003261121860443516641015243122797301782365127243777751901254675071780688724324086253045378667389097985535498598090806871714221578374730508588862701941252032510664792060336715413910991117179712239850510002302564573511266549720158090603448357898099814490432675620067477699032185460890518050001993738161019151251858779094765874510308059490316701211955681458881945687368749409659542507896472493723535606455347710497443293048925522315097915473198960180840243103481645647942380748888736733002435404798999818226100596997261195822782128815884540878028371322899625425173913374079500635385313493243316533532224144109873279280035981894211358142006320512187179438680396321892524916536891127013839331547199495029099083450662626251294773368096763610418511466638968092190281423323190125489919107864469828732987093387013358259857504209267464432032236192356219762352635337369311915201274810069321651988726898280207575408348144894451952762267233640963786348933127211343145563530650937902638001061398134685019878713407025407385777672568707824861413655528581173841080804865786077411376068038026470346685631379936148677042198614125755811007047798455401964620527926389161895697902181181207608374418900052979232568978676274268834967394770597943978620249895552256943978787500925865505133348359696714761281114537016559572576956403832989258513556952479883151345829773148397689896005761321545340157965556022885148747991131653088878447043237455134827389652458051918593077523135213222662788872506681112687945974582016553791104504375852948170870301250310108258638746503596951178772395359004692140594620045866946860889615987193030270421352767160457436666036119115342676802831866606372036024312166665432094999684533948015456186289903783169050912069329856520068519528838034468887424716607462127191976163943491719534963884153532747581405828638791297807192707243352176516653387732529827824729666832153644059285348266730251565070771754844997700033843163129800512459077353713205166681871250135705023992980510023202567487001766853880271548206199091122235013002283532595241457505520040629256419858711961535180215557819860230159914336631732386592950672324109098932169017301699076969508285796433041712277515253700656604430601803588077775050395371421260646214703732436575804799086276637384144740861097922305878152221274608911908646851790018860905360381246929021479173386214026099283037069044358976971611125005206003239906463638423254606923327293372858956684776655212800548017970420470196109790540810782753028483879452944912491953973294758417732985494091648759744391517345045450093930242324063125765884311487509849252625971043819306304029611019349040444688257617748075753532831503225706539283452169475566977012623324283593595832883828772838267504375869367002437737908102232782186209210263831069159450271591377759025216411662730172533017753293979980397386606969537102219081616918377781942130495712150835692600672829493782960882866839255611740755804866801690491460171378421425092836642924770612012445602618238074544934393426078952566077487947101402824199190492058311115825030240199879361473936110084092095397814692876848818639776090842318942121114199877031084700710083977909189767270389125108353402011294345166327165767949620480335366995016851049359154479915417667167715738116461589032604884361096878837233018963591500346407364426492546529686180518093090645149220893894304940383393139043058494016648395737510326505210568469431649310629619936860643136711914882881192927662837478342375588686252794952375888415924021941004019145867481097874811224594928351501907579528549052953548394538519847280274546229468879877000011003981517920257678580938500627652850098002546648245219412680190100021082375867040174122889955878344742360179793483392965885220554971632846853802055785164076380613371193195977475968545786480375836745543883228521357286086788248504378607180763903006254279320986442438797082326467404107293127014101990109664509430889593771966696834744097347654115392065448854863328940026693175836561091201973449365261028872988564173943882422359118182561025457525207462241857172298170896127010806488751720171355117630016781380205766313635638678499163433916163307422744167484592083949794885370578868074949048134610998284672428001967179569497449093834277097830412799521070872763934331821159117483067235018757149525395446093606562871688678386092247425384205640077760284358111081013488747895393833710777837701369790414050315376170250516592171086100753159814284365202192125840446970128546780670131524675710639096319374531896082516150220967834026226697166737413843240651140763930503102534737008600429873708935472466716094511540161646844106220579976281511603072537485706694599273028099625729453539956416592337408076627724800369036203846333214874341131941436880045584079831661103808073995266568338692865928935056358106375901791550290391387440333447320099989423708771318647277524259278624913977747414432685400788494862834617018411676359995123453584578201752741439990563612901887224174358714154926619341002200233654015079776474387929880459227664026277142135418253764017346619257853527798255462938296073737617552209752117539693419868648178909483698736331078324504269351748704990186999680961435887760627896035086590713566501755395276315403107270301442018481556958002222325295214034008175560557822912084965554425484615297148361654853196546255462083914729906828843091186849944588309286405295225933986632860237580266982555159109396991924232090119595281515523600141931120819401994361649562334689185659411739128096236868239887317859345946514168094240164783947603566269898042227259901457136703502822444140916325311738130818837661971194682243184132793750101630484435658677715188584447696463019601420883400642072887747628493645265767623810274700036912004657780784441890205046720196798123478568427182192255870884208490554139285938345477013150429222714491216601376337829713395856067466598385679337574805989250751234918786949341478199930067546243324574173678393559421958672162163190927808248084686887248851064685262702331017259196011327945241737101859527362646201762852724254447523410204847260639548063024095592796308715511481598645836130958665466641587472323906699858184773319166468252959332377416769326672514991790317462752224573307031280064297970217318520745465650547629058249340782578391375432141425887422754498508109731409946345054575867289963148906613159811645572201474782850874527453817772426163111119482022516552200687844063131805029136992424531102341717238697182616052640021557879157982838159978766651250508360312894744664990737426315786285278989899214606481598741670399828332872587807893459434246119783676656571244095799992999184737640909749063280805870638165411286541601738433795327134605318113527686870256863439055155036299108564713483686994042393689127192667680391047806052048185642834421899750502452647394550175914309589374459014195683171370365184801851446563720879953892302107088816371978394388775966300549523197190001812430561736470398568163741712219629009660173844214952211791370625188108837059900725626151827852104294570840006386262975921682565143188652299357977158849392652872407553150467935509851170212382885909252184229164601893818096155059413082511128437715375933433395943367849632992781982033572121674538307071340165334285659300718982948489410716554653724880942392935820225847103492820302288873130154978164458371229733640920170999996462199207771492282345612828493501031943649251394773938459421830228540332638063485813563211692641208782033713627422055208370965388793669845946402210478879380881966190107213004324038681393830705382903422343337171429736486060541643792868120476874653712074973519157698230854589686974790837670075465790127900675045001559417160815352791008143678127349864984552474016720360615372845711081722178817515798253147209017404868443548022929859063435187586115556717680777549933166199119117078553098742216674258902454400463639124812061045328764870344271518263897357016000440247671937177324808660663887188623538604747066037175213414039316897906335422329767060688570447207336708814130217354742410719166801970645957683440480412605135048095502863966239042814568659147149185243986051688207322176156631171263737269384702415000796990078839666888809048549158511119706917387079899942159063440240026538774238880897896220884860655827303318096295278283085958750130778696533443968417356984392767051538995243281888607607970303370921705925814252666264070533976234983730827098553679338348147988372458125033648060559206543599818063290305591526958602770314246501589213269502746804699415035411037285781259899582740177023836805753102639061318200013634240150001041102436441295142544981695560293894721172843628855914780502413329981746894329157273975752470061712681473854506188069889721659600316512811350914641788194895334218592920170040203187533048020760355855076940525034620879072271594587577160736908226675163588479281631272036661917030133855398955735347004491605076656675398375474631271467850095689295488873985455087243074083435386146995179993410012822924067156041159053836206988609426890132869859949788176911942170451339927865052577343857765853278919443257493311977662345798503841005101999142378630709503410270652360902189908270461735589339646526663666717978564144449933285744229164274552202932044300102264162438197533465075705017835845396400981333421492932302343923355798042400523945367223143703879031915893277358723257553310113245158819543749149582036797224211330501553661972486511086809336028037863711938945442121799987896190185646737842231463345579010942956233029489169671584353444493937782319930027009144719139158014626139721297659877651143668065842948662351860671976217529958486736034711714513974110235566193250073391760519474706339370054093073892524563215262672809059653493965437424640258917174107663870000061704812416725483482633328386329651594261081220884397281518631356702349160561621786382940137016320400247153341726082254595748694352519600715340341390284466267821534474678407111772375203533000028699311361381013019365286247302664480121490694873533041267134331684563238844745403623419777834091883014872824540468562280274846437595473375570378446158928211473988127255166492389736200522820682829157337617905771053487731802063046177101992749767267922140409837840308989425400960347782174127457748324258461878400971848952813685193957728505416010246116368550547751702045175007221947551541775387458403831642026195844176523823045855096982132550945462628138851410436207429648615725151879755783442877639729481482137855413453478012185617503672777033067847936068923540672939485988739360059440931201508314082727932551864823033249722736235021675497940864498687985365435180989918285736795147314031419728295315137234048849726817360078051209482967718255824836714707548472279978239087222669195132665933265424625608825490926106242539065033306979456699899561159763875751023822390436559213237210675288959464967268645974991030255047875932923015626098900346561927215536261198494735163463502493474263541131449521954163575069468456962533179909730651101646662421324320465254701399409898214926071146725910664924411899163697129184722766831482347692560563806440914068366227898491856626582099122640257544438611762038318499179020228213263538726761372782373575240859590153766617988432930965800768184985215293702155492544006330858759069917934535427596797167913059028683483827641961010955644249323307411715754934548833195114207803676946969024043858412505999133554460497267136529537802814146137037845393675671930364442613913898633026424778392050552001962062561494362263118729572617128376540381244364595609667811592098419679125993644680344052404500503184893821318494793849485966620582595310113430413886654460211696629875246723566301450266105608544621391291247865749200401545798894879665883053507224274321111738850459709898618884431421627354784292285092328468924115351197969539354303015332779013162521219258307976650381708333420798647514395637176826520649785830127739674452626565421610523267395336375754389051261505815575281422239473498973563002690886462152895141505760334364251845187223646093801062311931613310032159643100356750271260302364935155124503161930515641213066506505112563955214432877659246852575323326481029678748893635922911345060377963487698201922553998205040150908435854375574988421197997730953811522923705412202332896341792264573379542667876562911784538133052201347008105810035576118220432319322724401304524729437667519502413291972084477966076214638519707884216219367002805230834794143667483143516569004829549674720804358471383983874943290537809811732539907289213634114768917379549272029110696347786970812493785833473127143465018730707294163380777723604448041155413626977008070398695378215337976510316927467500193437384259959287498817108374158884473588047655836644886984635972440176425434791889012771153034518013781243791651534892834973551385270280547727130024970962689736692642653038019784954896945230004932637502741396144398764515090962150056365803470919045051322408530147606098860837530563029113832315663724835217702424009625578655091831386489463304532892916325943981525668071826002949015481866503312651583771701987873538722811821118021976523536191292445724405015020952999791663552304700611846750417096499321022356838315271946526094575427226131518114263822391739465170331162745889500168370685556456653537239749360055171536102993606328854657246936742529808986660246421709503169726264325636147012558946638825580318495718154434543920458335506489559120856735258329930341918459828979949129932765529604038444963280861128472262358744522636013467390304795595905270855833783717436135353919622525639616961663351779646089680646286770805479200734304888645992919271519952841498692068615219961780469423408545535907406439022257137771859971668968596977031245787230169146962081371082177331188610294872753463070194026284721394511312493650846108170114240850512334104692133743618200546717609495696430291207125884131512452459432763464917473391343332794565814084982569887662706829070542851234466326339167296632567374725483528619302578601123205131095243096998452764770223804546985954992846244922464777785912067429798741440036471778985017083606348516720031963782822405110920636954347900112032847825582699456016085891829550467410928057212099713057911361269779647669340529291506617155223157572860350432971438552658784248354038334383365893653395179281236231209978206528770127949089035755807078430291495464483394893048096704652439701775493240104201131777519653233254780394062347888328248907885508399003382805320669590727576705690567314002758092594875957548030497450712574595958667433228803679564112333365306385297705957344511047286968173377465751225642990052286636100406603714707466785981214091793336235566940498300163834651063486770666757454385475168777811671125066484832965969084199326225890626901690705862857226421256431034933755047158469294667492117320851332103398263485045844030178744981936153226078834484628855651409966587935157907661079994443327392407082043345468475266986947673550182916222630603121465168633026793779849669876694695751731038889381880897666257427010584117736042154573273293727436026375002855600500569243114963851031528772162391358723192296522052119072073133590008095346190995405281325829767624531841579056633821401128043738442377606240045948054893514011456886924111536546657477931163494652394443760849005229977937876667797867041673924303574154498990814906891994604104758029087805463540349940112439461339438003080990085457610121510680761815192923247818260213483628689072046248931247706758378562092132235939999358592380552491566313170794101920809001584388583738884179128164443486963740040203070333659859054209274939792268180515089897058722336257301264820986817326837934504660607470407686037691670562446210793349193079412830143892091468243260387558712601225542981844518155814102140129188841754249261537339890769870550447521359587258008796454548179529360932645538842019118092874051448193576551466289118722052269032946131859308432671091104641657639576984518831526618942088132528162547289470377866143582936904321118511855698238120681666395990161060470865934672056743662185197845661943364756627459806824595743457742119062098215351187422826232128052723571673688635115052557291957438267042903600965706146181120975215852047828696069456663700425627347341582720638893441836730159923144102699831509667040781320286330662484162745675990485594987484874553217357287776600542424537038744444004560845962535161786338232120229162143219420154688959757881953278569964276511134828748203813560144462150251930564237196626553291005257187481171603765598210365144845160604910260686853646765225076690330772978838708843332857708304068040525162632673915760507876660662737051032886754920365609932401231422340768189538046014916679496938660851514624186178249981301559054115259067040793519078092646382940009867785002288556088454156048928068420054124715241788419505720395744900085977080122180974775364082962170653051030044509854662121777979897576847493079254391046194579073712484527241489589928667977053933663838220291201330399266106736162421134749338110233358005174601293555032796584513580450652816497658707668098527532121416918019665364837392642866331193029738692081901800933434883304181698546117786256199757146647782267213400656764613567832130387535030408635737500247448504820937842191006895843639969052671590548848142881642138831324223733467425039204243000278077717604404484579821841450003606573714451573162775215789070754374021562434570667990053539314772905899457671378845746739342337957106908296186890240689770882055680582993439299308999778959013042097380533603576810695846314656325351262591989790029553495867990235099176528749733658734672620570509898545697084189521196800782421073088062286323663945835913293905801566036929251543001727650988047146667011309014324458427413483430360686448766665992170702830385637932285890127111475485573424938517965132350690246234799102356163886301841254327259740661877361995165675038340290642081428121511246805835355666978785764249077580431643555807509208342472775252283617455099034681935336278136315349189214237419141493898963100370864695684029420778711375452138696362182203885721968105683323510640014990016414378926608096190402850305494145258938558751263041553360175554342490297836652771523163084831335762258845383189052592812478456999105123851146080349862365046033390771331211747254412753480865710786993094341113997944188675330319561914563700380728043174093293739581602434169345910507860179838551090129809741673125590316612754185036940729931137460602706536459431901008984739058640132327917729352845718174180127235266819638291389501559789169868668298236023682989175680743063829075321274729090839041479099352330188849548983477388504739561821886029149221774279525870301944486883054935093424250624223072887872431526038629220206767733758193197883376895990772056788648123181697942536034965537927299648300349321867959764537764360283190685064935751298171275049917493696599918010243004581784442663870359511584961980320415446278968042563219928862190758620233786572209132684460541916993643129232297020275148838944624505232743524659397236603977033580026120543264727404067927740264158524051670149277047348805758405781603572767456186763283062377246765050916667543708856672436576881894157136308876098557292843611846842678594639071563176030934293320380715624014545250356517045076882450956905580136685178870651291423964890468442287105830310650361253707126377890355767176185240793345876190192212576068254379596354091641958716753680866607511590413825606754002860875340488699499616601625767083849065595576550353012054112873059286524418467682105724522385063453340215339270977220645309333394755042545743673740792732213877573646954069520786748967104160047201717130375241320115393771301672311093332594846587192349621922828061208881879068109530541932308633864069329416835399803794312436793872468320454976832997435333342869831187085228441224513167617688894463255391202052058620232257186173709168322642224172616048943375987725944304489649897413152671076378497426587542511768545334367789099435506607688418018563122198016444479667622363199649101737607661252583165904065464557857507397665075078654447412273132063975528784182292829740773630693404372317958184676647578128377651988714538529768085597275154304447860771679151263420936328558688082940839400093979483798854929668694527656403798957425931891571497911690938563328474023371052603099188877182291343866990622806966851408955336697321414848682715595265094631052876839757944501103516129252503452368352372113386845816438420345216850622058677937641472621344970767929080606348682307173339004588890441219954940548008010710014536901513839133938645123886702142631745882283879503674860952618001247496148331508851770040200007039006642796120930593578529267539418991859946431398561274653323142414920802095011108966028343242537535483950536885690723642728045787200923597964249413929421814716363873293635527603995701646112139853925102575790611596407701223926459524945530838309226545114117339205005598484753674406507854355613097284480024152832738514183865680789873077634645911908685760660197259709711425447400982062611620062124780136753360001455376414366754517809219950130903748384421996452705335031393652844107157448716902790231687748891912837313894075757362791493434926518391821389389979672772194477315840771386673127757663768512720267516628134302762398130950695601433400746199253526622253923528087849568959461268338035029427984284970225127844527073343982937319319481708310108772239453116161842415968894202933730364737825959625705441569646520699692428854460876159027236339339411169740421023237070911667213572020640829478500939508364144636956176465090875815419069409591629345287969042814587635822945828109799342827822151913541246187887719166253160480554425268553074177452284692054848557532497264614393141152737737772488346770913293135672689735249673261352214827898007571864949194415540820845317780594100206139070233957613360157365563602908649553651282504002049843919098429482584023703060125587486524585329580588013197128957903514533980612571228781020396017614301497074330552042464327751052048720414108252770428433052564185454270088994260581288797700002788778222108301439994263837528198977070963341441488963202407148771973664358991696584604537705783219344081544378976466757817025751586121919856345545362630038716331423190583017166683045194499141496431410376148429502325172029668027237188101768568400322615021989132799514583295920948014313298193463884969303718542415509838666887037719529569965461963635749000665821821439381087352429102900461251998639595395167951652892021515047476733675959809775663652737886359747478806842280155163007253228885797743686338368217829574451251809060303441491440953646866654462361292567555820602302363153190519161238933085341509526154426119002116076282718242398632455935607047847749555133888474706103808401280546869499251297150059311466412329664929085758867071229116575885740888147826640909880457742462141484335683003381497971314383961788155384855810329340802150418428800728120986873435289941669708541713849961685329783621495535475411873147766741935293468764577872229625426244451036875170697164445064894380322605869599270091712912166023092768673856770885014500896932899665593901757302472753800973848855209692583629787902813370098921451399142268684909767706372658627257348903981692594760596822151386892318836003659887476702956099500173770619242633540430272522657650769980770742234617949429801703923483112288365564621056670206160474785676157071084176454947118549223039143708096153007072078177794877525763704916746712091284112101597465773537840375193850406961305093297658214356148137877867880840974982545314739383531968444512791770360030991004985669378158151926118885489039359418751473645772877138117554098494369934432861496153796882963221521780986971057910694432426137906359796514686982335846377325808576552617500007380587038286829387401080285697134040842601455172451927821985481015764165061062893746625386279574635317695698286209593674333590173412308768342113286922961295055557052594843525850598437366271821385406409401890495609133958789286878291402879918963815116821742169970310128856539361172182439632752718411665339262361775295381644466233753276272611991398863652258557313636261995361787347075881381145308008917672829490368746011734985192360742436523449956854826382062153829082469790345542817936987878457421852609493769556404033831303031016641418504705573089126043093252117975801843168315817837107184446042173957969069672353044990592594445290072204981005457622614909117825664024938504974205143075881353698773807258242098985486157402041135143233787934786758854753157648573814482457158472549286461554815829934942488249268625319867590449527939982927902532124730957885962202380124573758076833781853618581696079840163349891700621928725247334013605717701572680759008195709161428476174783102669792172608130512005612671041526335869494613530070086830906063712616822030592584661924983306871221530584517865660291485599661279665263608503981113996691570333905832517223722761405589668017844668402578905644729039356993034758797867504580432018369259138114025673320316673495295922449662858567092266945968884383999410251099092561944917668078887557664127782749907389552658958502584472114042661792626385001137447525602742310313171951149175684376312066168237742670537686843463430984357236023854307057922605962239803380224732409648048176197242148034927305062633596685337124751384394427390502321030625272238551088860761172502244066566374736520501789688126341438462445026663103396524943844150677494918189360233900299805860949048176694855629130819026342990906127423925384210634986191602134572229247032747704300933620281612468788338205450593187404040699169621723305893257686421783648643318581968187575122274637657266947584946867972224795920882615787447730618445573098721439539678630885101709983784980308456071458285961063401855602630557461156997676659632158150339843968555252015087024000588930346619774201432152409370429837991630371646901138180153015189405228994227813046554852053415901059491156259680332379312753497065835215602274337718085943270028183832735035239692387394820330887344179306915170737516774760970266924832282479572026435854651510016130965840991259875242098129420471186409689898395412882928705237202322588740465422654597479624852430076326875837476935002907961809093073508115060400983568957647206789234351134495648594047919530980432077665467538147405251360483616463708562716667425186406618572931070300272760838214664590437881942189338430260493309215149045895995466943831049848115853722962321401173223880941758407850501413413389577432929520787299479919382374531715341941666518910548001050178871912689315624741229633127643720277911144698454894879477469215053136928927298954582852123030521148548341642884112886361493763626274713662531969682611867709596600377833332448382206254955583640163215393289896266805469849337914901234070998592016309432578446006175199517199379008076206039194295296383862815974576029563831866605270881858666063112585018013441214842250110884479424628803054567962263326038205221207643964612934271591280155312038857795490743459768330007143048433865398209674932233931992270347203615742997124337087558782553636051300409733871270247270909780547031256745068670408416183273400732364154275950868665283389694830031561366814530004920936428508114188560718218518383427373285017453684138732095134192662305420363692021895186545019954616804136532847873753756563566359249811633968538200086672060151083475389757253521691563032514047745888974227916681539704305319466609438439907224420554527566091569928518575446478190734998907842431304457940003324115541433048603106463187411434421152354270423150289591033055124005819054100354553044497439681710002107633522781706090829210066092686608937100585750242569561021631377706613350490094400948624992557152400547358424961657079138813972530266315936559417181236645196826407062211466379658344341633345451160731137910485250244567740051969166960822856090828609851085649901228907036472328120927755005009487807091358250775630978886620632634812694699175570598314322423529543687087655176550248578484681058160877873783519530303338838937557689285615744853069274702399680363195376363184471170166868728736618993434456197616384723680292082868888204370423252012546969465087420636151309837676218855968427895954346204916247336399002551798805404368735695563190369084380377756406910872675160587580792793799463816382699601076564158793448972086548120042225890118425930997191262145483453355341663965472033030228570273843525937583384300251195441735403205308376754562338426996625939084846022306846134135993649432062483297183594131907563920310177614685710913364090446126853687602542588797606618775440771310508481672631924047532728087217074858249954245618560867223379174699819873259128767946706300375346361013839312852925301250831199776070721162734235149266135167021293971794354188354353181153355079623811743987277376502643809623375292635731660459294627248806668623155633134035835577590838756811918107663722178006628678760430095678730309767700768809063608190927902989570175006859261903369853233360412158011252879710984602310932011562504314570502968930018846780319915467837726235153192723250214280213848968118972460375019608430641921660667739314588692936906839769624924499356053158113418180304479224125753921592060529004906955712653028453959363864503496473613720595671981904489194640849932355003777474352849498593162946489566493495835038047423629518186665403173484654910817730297820982121203971228543224254821675962732602866622495691234188969619096796479340929789636040132449218840537122029455468878860944798486050760146880998031613599363620469631934665141993956957306516953868233688125774527806051391638852416266873747605575815455610155370917322100857480952247746175804733095805421045976882571987470441038710591473880562283676175618299678896980421388170091363112740631098409136962430665038763417938495144604376065762309086514401421845561388133221102924623590862430802887450175935526342437759975842018282265723540121173167022496952955175097093914818297099551572504794514054410917845994271555889055278472681529383834140794592831685316388657222353048694248107673059007683964136452126213658138185340752930029148108596383687520184639088754411745513196876162115928166987807285205380252206626517010138186598263696344601011025044086629036861078333885365645316315791607345139696577359299387717219062138753741052239322795324829884391606845343504836386841538338374599270731372772968084409668894654641881975946266289736330032161381646100840570302150891395994715050561803145557197400194464459145807330000814179323257391812175312222209967743487328736315310571559986430620373485313877479455670330658880253739752799343483663267023432660246399476210653279618787650543274537766032432816505265874943778784718225092306092031331960100350449904780368277070815711674256563722670540811360807312591590838721576973241566993911158018755495992146656211163755387507219364785166470372210164121865445652480676590255677576347447545754592556963536980484790093219820855428997016826005743388668189962507979714464212389206996486727086006638963076287330511058563584124296992822340454605686158321369365157199361607348455696479091021800437811000895947102182562874884483154123052561952984281997936635504921098744145898610709789116478800578205632725344344144804976083480612106449085042930528458308966302574626792710025782826799358736319822866782526346518755242956506291645327706656282662068766283220380932023373832111537753229245988070941138267975884681911263138179527491229150499519209753078128830063675005753940278749713593011654463568053382467542609163878184789778550510556599951683043998094448867656666041091410835152393848965348246340752444633163963462977544715017900524141006861481086768770131108493013761095181217194177175305784532699932635975199183880140486331562059591931281339778835695822407908244480120375435721264478695246387280780922499704824275692024838689659346959901032341979006742283575381174301762506302630025304501740871830207694729385583888770836786927264088224560676634360902745439304575197566693399448349056203296060743803639847053791937842293535784226410303431637544740395627957530286684853999624295395891270893356191789430023409497952677613300684674873832443152336103020428656142397388917506031665796488758255897441428167752614855560339790994583468382456334856195366166907701095220142783191791327556543692808044212341250652412009547853273337406544817769498040730271256591414387009169088167261559621715377521193322564731907359802117909187776640683638750216126392219199078238991310041370488365955839384052723122523658876574556505592025995390708582914643384014025354535119795916830144724409753589020821853210813873401710795070171866983276195561681981467476717170001984141583623820083671617922384435032128359538892018765871953642016310290247600089573655682221084898328912489161433217811025161759402802269201818130411643802213943526773427750235791482966255436859470509512546882072605923385558036973100056746505687353988278050750773488824843857245425052203759475262912106381640672066323564228935961907944385246869986378398535764351724217978077546514272045604036741217779839634138385132836375681150826337534830031198246734155306486376248695609914554118926578287312306969550668327902589876801350967798941229403300102562432449199563863868183256968653527451005261370589473491826589209767505904841907609818540465086110075637392427583289201053297252024483661125139071874879281523706684058962964100303119341455201403463523753385563974851137179560855848196429027749979156604259658887402986871599911226932918470273121209823626899106321259665106444004228649924034626063187915905515215005203427350682621258283002880609235605273324420022731933688343868891677540287158676528991203939419047616563980705545091495233975872180644436680502122056368576808301230153437072220137961824438670056502728973190862161411493180727287175573129287991387771909206725160916252532846769346773997266278566216976727683126479378409171849039183220371782703545466838429343179495329516338304259193863151630438219775304109254081992323866178546961274964488509740852834207946897400803809310242095376465201015845380327182023322517172245213614029256287778575259550377140165523259762493400971127781591618365958241125524563325614988144828784252023245559705259937214604992249529105997534327769821472106484985976355395077812622612863826100231681476725652815033094791988630186563830274883793928731691917716055630937592327270414636438391154704757575750915651324826843854003319407195097843438796617976998661190058285391140136368398916897153266828672789060660247714195034276185344864174129301245594415229826353758909957062666716247543041617527771042376092296762129742684083329977705720349303500386022198103475918701209627942817536229531417439062600981533890196439851584189638272243756604588146775971604069172837275528252283983092845702993385740799051959708736031353180687396222234056216941655037175177204893734520903539014696742402787453786075241267433026795818757126135660043702877357996940997881971003640849409081317116328755971036343352746388795719341844283960878907680331183023913444269418958292705178546592717495144930360548106991313290785222455266101816214284467312809485459184014449676255752075225664054592386470040836459868792143373843776408183007110665981750589683029492430006328030450921059599096839217689856205165651470000466227302941707163676487913985954609823952422808287424140961903414993252436661676115976832985988620896206141518829997937289099124514652140195235994338951350560599786834666621773214050560177685426893879272258913511486819076613425554368425121788751926725784294887831386856607943709298979345857751275709788634420914629055362888639232375271750760599476367591090956443757056721463837627409846698579631988819292649506728481063314008158964068945872579291800977643404362132147026370810704939357812077143392189065621921683246413712675621119927183488044614664964943151766557089293146886636843685095690475978524289950140260799162972931177628026489244625061068732498028348976851839682250952775657857566801751445909965322855671626437070561487855385278580604336263432217547705488477312104878252783354469724207066871908150472597391269608675633877896862001179742411272207009949289886643515712810442770392135139504461144543576689774477734012047049015306243508685076196842882697824539885559720854321202797593397266242756931034683854461003761377754539236251720221926759288440743501215201383681786619602159232676109784733347177349111241043107918904984523318499723863735892515649497192542633626832153476144142387210390699201178569458806336261091488262368240720934353040129928088822252985924953789266017649127908396096166378662967961713149677913508265602673445247751547637590199971699802100356607371324025152256852161872493400763308107817434152785676294277412486482252860355081647810996616314919869374253795140943741109956841381936882559417880319260001123244639731927091008626361514034922934641449666635827372930090038367139977971934598453077907531420525760109801250626692679139100629370553424481694507139138157958154700384355844775401155078925939886407805357092733231499425110195788744517452759911462307258532823999898548772546594975549334590225223089658103149914174962744189727751626215704634534231010714472863197227769579472613793691916550965921057315747484482799900686945860046796667331448707557386936994632504098088753396834818440715084719246931405938822538235107560836039714757759110904390478458006582711164858662648814700889519346632610050059756944545507731295056874918139681928679882691472233574652447957278532546053343061560845419718864590142800227534578164820618549850687431007651679771580040567778733988384082609294202618333392734451414609319335729718950589684997968429284022882737478134887760474166984008829725047844587045806640872973644469960469120147618837981417260865504253068253439986389501495422421138718460945068137002208442498886797902684129720102667978693060613560121837593701552412094706933520131835979746716920939218761841655078544011502070623524535653908445498528681691066879901148231294478115748300558602542983848378911092247590594477264345984829887845820344109540097053009929288827039752279938621175976412856993650508088376235636613772689459250143346941932444314814990284974724172958752473457716183349756964145474354763465583325518162249089114462204751982549581222542380423979711544244906829598608816869931978598354757381356355211791244136988715026249863598066430331137750494626889487277546926264884081245050422269117022420335436027617776698673147186952423023875708608523730736333454783156641585981119917910468989010191320345332238865685587250706231627474067465768321179138749396882425674796216726701473794388262966308919302740595172099505811007865366155466032778122799314194027686237595049254725194461598890789625705037494124072453821041705787017199490119040232167320959816022573735373583671101505314792816254626494811493568459650663417286729807335410166882438245706927836057620533914166437658578903557638495587504974150330411718293851864480986614924697700425052918443049679524772967540479453593939125197281966338427270813951716067683386774556022082111610594099126625556032047036247902155937992945826659172275010676457728594667870471443181044633885973791648130166282839359915426467247490816145269460519791393542981065935007508037251480164102609401732703431992204565177198238227387586582966481377904320796695772748217199078014508050629528356065807759997318875109149542495233399493507885279559579359758449292917436983611504356652816160026400623603356196799892235127601863666025209541540900658511710245798976414476921156185902330463937479031135144115939245073020542945357649858814220056376034353749510496327238553635958866026358047432440082176587788114225394099765518976708645118699202387701286873557882296295464639868196761749997519281383233842137150067180216318792681545134583161010755124482893437873644990649432615296996090586676113100632965470582788172359391176471388463351987423713728574099242923340934461486969073831674766687815182339581086004828087935552665546125935976097800662852713972210812936041249170715832853928425344683134076507657358929372795746413159154936990159069298135861472353483162339059897951527185278627198641495259484356671870649500560947822235798991819991479503013109338847056795935885556778460353771207848924863640201082249225579417000259299650473662732489902180236648019881820511383288767888901407150599722982004943956633100659692068554822426521615184682673078541273246158277398680323788493858167515256667673610656628474041916167364367120750906417248793644616515384026207102807875354943296018793778628456700006031954634976998009617691175533669464247435298552246797070891525264479174233822896633413974148857302139055340954555771567116167678823435936131102568795440476963547552010588525282232674511448363332111303020016271542308554956703114561079825197737615288144133431635003136965288557095018923738154679436668951508468463690281034333435349032273834593734706842374239206144747523561999559133445864670386529981370086095248949029255758067571529038820064368206275280840492760491272591694502661680940472948661828527240249715288285803773291447345088789028027398340168235973473873205336825639920081997542311085455769742909878033947870119966452088167826497412394330366921303061586401871719766557338296927269990115783561181139499690354897416483724929278812148332902464629007234277437791998613062329921492059804738279008961142303252740490791365244348985298185821498062529749506606173899722678028791689412685498108599185046063512880758527804160207588202833344128122330747408253587752002745846458534355879516581962053362738723816251226945425643235840554980781560955353578166698066141138807793817300373083942852128193405175411238753442178265193999966081899643565357248480579624465012203138239430177605280227638393768133429071559476318707193696990740937321419243368138323204219356154863531066142844791348004025704460042896162151987578398821512651352648781447097206193769996494194952975433836758061972453626727136202138905742064507427635417557350541690379840150446257335140476092035506810431428243411233638657866754418590267052034724506136385143581093587004542171927490253456977143337652773709038059550469912040595954394187265475532310855419708668484996114539207099120274389747412505226549999667576203449777902479443001625177060092748800350624947441649283324050329670065148807914630659461304452685567873035897019612478778771040685347522849187355894249306405805691925781750688066711464410447437244650612383002006560118840870047030639730852790177854205599671585102222816014839813931584245894441928887034255854856624911090558741375079566668124026918527039713106463190974582195097958014655776820327243974793120982499925977922344032097664692577618634482724641365621965662830603427758288087293618620837106280439937446271367253335621542562047676534129601723252109149298253723654839429035304502842603328693835249634670892535259487840392528128102014213441566064431122282053140070160958864923275822412410889785956570755283482250849444798686948017078206577865149369387836398458176073960798204156318237655391699060932191526102208209217864138238784937276822218959162540554528262583562016006364296275342217809625229975523898117787842748933588516551977064901415578746467071813236280438779593488994029990386607143562582465621872809549921629727342185295035937418518800716267329687837179951576076647564443617652045269771055108947500660933583861300558344713684938208856888573757230335025083005963420370756011920066050383351978686665951936188353100135148022702303352600572414088254185034901076370323101539177908348098719257521874031483666178164609744001406263970594574512897953419057530861998140586727563914744736959738957861582259920057810421011244204001996272239160274281258757962254356202660707270162406651424794798270991607352608565494091038194152150182647570649090733042841343316457605954750926607190330559742492542682456429051261518574453609274121790924683147316355763369511877084927547919283790553146660854854477896016362114499410347635988385873075148702772867278051034582252822211981596147341021586332309359815987036047942954355421387407538616953047852808402133692933362174152303930733147145138086750159156863374313898627615032163905900945791519812091299745509558111847359144001809254803940622730197967297863976511856371638203490319035520796650805158288800485893736075022018005627812808179851795259844613693448097316480393899323575611687228710594528172257380654122054094970610866507972722964492473052021681925995523429746674083488667109193988146390009898955711719995978203736421704555090229864506243099587371406205795492352250267657987919763057435886410933797554344567105566537957315650582384001476212334550172029107152434664491391059291131447585427312448978060061086429232383966231998384409320557510430507556068601294866279982397388153419084226455472115448173355899548358996381381182558338347433204506181790505086207243660644598753116972646635544741239255471248905890331687705264605842816648484404597901331595374022065096933703899687775879304587797504963690300083844126882730908936565943489505405196178793876108627632426690903904727713853172144420690126686117747404612510525651419251049369555305759222248390447576537783245530809183314860736772074086869301858990290002033787167661370296426166013934539752503656266503152931606828346414358200469685241396294669371601253609598089598432923428129369567599472739353552957048548641894606658289564640401829464517721507384787447351166802603235002317749178036808041540431973602947210449374017436136904668600044780352325147780661790652750501142158722421517998431281848793165762443778806568900971384865505518342056839143059213537475208232510045235719749999359014042435483904361390058270047967488695450098374534096782755316328414249077641542244080633483749446886251942102570282161272974592815206097126134921641247638661268251819220903124091889681150125373200526605646505489968935467795522717299938052424429279221955429156703003629489948342037970070478685268869281573209502968049027460063676769195266942917000183114684591219458418926144927153842879336964852927639701199373228361034474693506887118023660847307708053160857508279142971618280182908553137356668330103346169817704245825917626550093116399912416416016274889033462146409131641958511503728127272178740023253706708278123652260367033055098866769447291541682833770478542237425135157846115910734842362510127632467877878627476705743139652624646364176651623468009050818385514814644484757214459191389814959029522340166830530323772614783410944985472922537400794009003225952596497611639592174737560294695140895711383232253192922030805319797119471680153674757472052232093644953839048340437472491752397701972037307428452146341858522848167052908383651422265877722349193859415862932056414781447951145870201747909880238270926873368456233325641045419866500073257058914164135486764684343025685676003212725638315334080721408373526221043179170411893572498759221794940565027462195366356128540978151100642694717207942472435579693341867322758985297784135145058411879265502061323699243246089668605600490801389245798004529423136103026534257324219305510199580826025791329423405961335894668681989944737437109671186850731838300740463778544448856286009189835174197245871432339369131829427375643096292837030720949190823850378747003948481941879562479370941494260429712734242812047126366571164084929969909713455452901504633705146461312349987947086001856784014069843608386447736320274786383582411632388236161557575522273109039849083476262719215569914768395037660067738932350272365799951256918571107363651625039985555131689853834761467430893553508253420990925925277360124789349071439149087981314217946526479932893771978882794046989616525991074940136005478690736231679730049867280660489283527370101306620114658661761461140189261272620425475200922198310749233771080049656499433066699307494898936704080647407371752707494577084943099967547143877932951846506055874677888922614772409259386006941772457449341091870405506888283793810079985220353626018356417624343043475709560333463685343005680300725649158014387997846872325111174365944309486101054016282505555695341038540761689886656979873097730395993715934925293473909025153042183920944812692457478928932543562448666884591441424175684555987529220412697972920705461191260156760747046182778804986097701416658327581717589315003738586578668935511734018969863141429979268573749282260591921711613640002761770297114058054833002610172755866545224621922393030457918904003337159854359639480677198120782527018125028772520851117828268276889505345279848110797615035147771148301169490190129846089574362341561524706980940148182033659331141655860630895118695139398604928715775954324057349514822319455882658414639295538344161176686609108877266534775336106559690625278925547935288369075484144057708106685936096736134186902534099482471816104032394386093518697462565836268890278083745079952661283022343641135638942830874566960312062346434443533921025335955811583342729925364189116789373754002473312977245730599427295030093924928652798012120811130053009391365746451826844615964534242523043194331946817932173783837371568094703043447151851588696057267115164132772364724072364413075081072361269105677834417435051117968742941220857210662956888541356758826558786956878894053012091697938869544420539843055327735352972788226844137002955059480815791719566281245446443943730554096848606906185894073244858242495863126174400724852423622881035916632605583539099780219951428976337356630310677057647759689561560548439354318270179927810786272158055043098673417433269663044504580509245952101873011315002966241494693347080291206742119556545455924740547885312961340068929255315351425198473493331800606125325337364243700645491517827201930802468951910266912127667438053816629447011441673938835975847082373855604285400646104427133632072853515309907900225469425612409306355657154225227539449055965897316855539574839581408218970211646850834224236811131873234091959451440508884450967657200502390513621385469165291832718128444939688594346908743186378716206011008171384011746933230697830257058795488686848553270598139780620652992200661699324593364983418462238905493654408520186948260185761363309226634720458120302964758485055283153010838859470205575771637770419612744546765925237588464339554072054803188124083761279166161980652268301621022785536552519284505767969671641462779190390607180673011985140710247289282236311377197300380930751220985357997752763889024291720046992195640917922897733602023196044155703263902890672318685770219343913139997346974408242201586844173666761712571956094255817876916338234189480256256721568785191170369847996892979656732273348522594703376892557402177266463815211194958415667034589017616852049009930725485867361323245254372169333952712247777925554919279178728026742024889781208022057911187493074853611989116245142610169720835088057677212888870259138650676579201618074859359908175704800347443740365536295630504103559688293102224645559917531322873872354165025734534390191392092739938998836095326928504001995590490160345895017532228894021715913272483530610674663031675798112179987146146336379691761393542345900010185366658709448076128860851548960881991055297409833617913464611125231505181643556273271476144721810284697379998438114440162134407565209333203266582732476297393051834688574989519894858441467844986673408141830999178629633161880587558727108958651369332380542860818576476232570374636811100006773546207466388474972211354669534201002371406260083566424113410685738071612471722304739158235773770762836029236999015414205450679092814363223125625174499033971250267121909513315732096124523606768150059322790740410134833104230534833922036155106228616229347943077394209176928216773166231858120685509411566441908676125174207697788234635493131275218000262058988349689556816173810247468944696804887614478394378612621350482986311004520446927073212180023527474875948640144637621720211333387874730102955632550169437632133002583498594124862083227846067787908324165466489380108684344160419810769723067508380713337655178913295677925235707617182998642898692827096351558810447359772999215356165506884753795560330286277355241347141736864915099095105799744076158414952548051422665661842872092494867085613029633270714564455466548506396816143670702784239879445392323510377695098271356536249271591294978783731234215472143007426055356957357901162041640810338516032477434557557173645903070238641791088211649798077715083676956153199178061182483702685066849491869037141791229214551747345130677432738082478837293163733119292842961778518049353356005764333763633941700368797064379847514480638754072939865197438078658314569766744247080865270049388419402901900099579680612060586585632913516809531673902848248185590134010241642619615082713945336644886569618541653301330572990049101278980337793106221473777272760544409308462404343888688384106434598007240040378104718935058638203188994335372049603463515379407170106302182416564655392115117766055214579279820782974100276571785468948113516889186559676433354098420868584238650762126161200582130747072155921679668096146920059776552746523336823149784042205609353250012361721987909586908112498136353471197986885607980381757237488849174878725869232557861084594381793950307440277194326250766147210180061331554256271135468797092107220354974646844290955947343676959086281502540507411672871822896438473563495408321410975291426429873476932176808490608440886230027812736299137225080571693351885312212093401978451951178414181216667853431883324621469087303235514296656872386119382888119288896490376664362197577317563424828558849822865219870836654398748534019378625873391327163078354238396845326429673956051538483869596679121538195114821344115971461838788540181341546455091073439912156282125681576998752873417097295288824194176378314707152900009106751715157217687950073209341835308778828269909699937748475997383949947731500856298182506627962954930934192605778424050612139095498709464673086558418845408154150809386328487095695180725719468340509970850550877246243931303439199265813868709157255069015868748775837652844980244213435787341166781839806081022563949250567436359334318782364467632776078302277903767469740549298874114778156103876073774720155975706295133853514168519879683977724536247781313434778474478520310214009427187299416234492409185803086008842214881790084638465147847451592744761051653759929555934675053934905469950181269126483948039028437893118845109093005274021358378906378619330733060947108935715883140325425198703775389652923492106627978175479721007131914384951498115060465273158426548280652562893652669648919694610629319889217777280490763446136500711841793986672460698412914012870731102726363479457872712564465233036647537751562604940167750440235832490639010343961108588340822370535374015660277753397330673342155814557998128987490094812999110036337791927608051474643409774084556204963217198346062063219001040065117045084078436803284970010923971450868345135928992480660027014140416483911376149518397022834769372503105563775617662728814513828695184307949669995373698441357189001001722199546415844967350348387065589206367101562042640270033251338273710215671504579882635947521939228072694037699147773001809794618642585919661244951313432152093499678176888660700910118302857213363146438689326932730985716794601175117027113123090252843575868077765845102421414400810008877877360672443214063155988455576328513450871632388187334458425850443711994065807976701649299927417571709864351538205498789737127156899149635952351366348259404771667563350726020358980828115392220048058340209340542131635288145766569229479886452868773205425862773439499020313143537365581530976317395741733805410021369242012957286013629168768948183925439389375075179418531191071508199907511200152670498669428776297670291846039844079127219903450254478934436371545572106718159617793636511733025831743599024493174057575628251233419754964653184765916351415481174714847060658169172531106802821521718582643022977317232157620065608494115761844195607903181855699497455526667182467072855379385335657442912150486876181135632050185899084461586885061909259715461618474902312565244048831014315488242982245500539199710466454824553158189866072388925916653146612023487034328274536395507314678096299789998880459296636405039812051433899888484470811134534768958411012678281747916453923813486122880477030306895688010305650125322714918007873299901814453246020285904188689997949232358857017778292804418839429442091890352901609654175524740053202122269120975161558852859524145214103946766050291836912880897102535622312073655779290446664828900141491832614981539928378536154123056302101728865011577850327185977961416442200572339614850300242862413749675325606945060185803560004895958653409701491919869358951736155895503703726140688462500820586784959630240813101632044070579156896594796931705023328660890280260155654029538678431946838224349549151894747935140202121194968034674338822736606409766499390211709889856920968979797220321302509822835919750995231862112736599599662511135710400289268648391012690305872597313469318898491920572297039029507751878214226174022830557353542996823404259545708004693345691985092088789787830286204988969546329706997715125433093967279282890871571305018943122283243516263824482468661338295204711016570593941994816604626107083809201932736134408122209894745769858116149767311600700926550625417595666724046074854039297516006041683926176760891316047963031195489962493733112387991960033219757730499843708053152133197828090406238322174138458798239621186832630323289558276501139080247842643401468771700110927426334402532308802111448476748266227569008293687561228473492487493108204247783256500301596332016588283163078366824630118725360332171105862018356343010468064157956044159119857462373408218352688931633783909386400593526651087333239461809080294669376222796814767543967829431292608490183647800768859985603813826849144415090520152362530839626083017863200730939752898437830082424778897494896229139217488006373527758137958833751553458854042870095517045315145360218336492091193191006378023956209243141614562430682746917381584465515914834650094121862558281755733239151353297399371049055275558394029135830099778703778965428025839596652233325581169273941224746931725702371306834489510730049883907290227397423068756124572870972689633540417133308538918428307093172134937319122327947224216007783832508313104022465566691918227950494149537196906238462173075136779374860500377985839708523369109601162918015046598844878133596919722607120027422634373686122574707934171087722666038115578056188965681418907828183110225166641897049446405683769504581123960693103907643060402092544930649712030312121064030917636090265552961288872912715906851359920265210118854429434313502657934412301397724170086422708053975131548765565467524505829998427756936184985984751518375771542404948340674477457199765499332922094085244902755215675085904261330718203093257417773961977966117892496958567300072727199036091438267009097235047666376694924218383655774338456263574878187580254737433518172205716683270904236053973810889394319972238239851239192257732719604341856216874182904879349172149904646093080045663895084093159676395459955560961196877430145310660861526526433957859552706144598069226325722253780845617453325146840034313335630436569988658187796952106667661053882318422430369243845345990743510515287618449216955553884484851663888706179837527348234749965838968134571287331103018310508118238348239012644240407666599525470789874270425153958061033492375405870544572290712794192293165793952960138613400645692286951085221326504781836121792785215022528084067819829388828585880512833328739048345986299716216455581137846448294517474127924161101795181459807129301494158073359405076807793607312262165226789099239911914955753159817815610253052965720030572905059884301307111995291523606689026450017116762840098993671239493103220809557030192196526616088200698790555030129110261704145767023391736893531514465696041140733185821299042598597875182440578201790693072084627077942796180589034544297505360540783201098423703993927156561225392749691079208622059117399013793067310182242000568910372396509756236151523596883272801337261489569803993574865942103438834550144001948769752136351192744386720827428624587476173524299237872491473479397018115769035298339592051016338884980782776177618450965159823621430295604362558087438075230952427000957676640569292667142072262893395633758537491790938466471920824155896340846424139664455091239433040393847259538498311183444280787590953143815216320432866087584787392680646247398850302609362189791918108007889675444165980942667539499155417400596135532253839562925076795779948106612445353011412548957737845951550606407519135617033252904447096234160513299680764015505603018217491383137980381745612583604397981287380258602306981350186179241917435557786587352333654165695990937196103372479317316601598496393498366448622410356476194787832858888642160498076887895383379176193414328120474080698050597162954421508227217091401470015083679535341783107082065228051726188293227634498073109282502248060843839229686316291611922847905397129358882843845817699397394332482780645552903357951074849863176966812844182536267632155149219926412393661285188770644684670163810384777716736630211983610795727413120908841891085424193415414406692690972555508580131639669197625262784099095167745431857644567947028867802730387897762481978931320332932837586715636410266963914134797444851659399888697482461572291217164629914052698005480610534649206246520598056532513346927961988443198587181041157452733071052048549262680613742453530548561052159136074223348419805858827500200572675595965348315145815934182488277495856571378570955046431743352508785969644367352642901277721102836117869688783317449920261826535046719513856064825443572533946743857845525719602363626348842852718954132120419378322083609751570739594843973997472690681494764502566269664798604907447464505536723717345974266957699355584986557723350470997157790111318376637311857493324812723710731049837175281499058149912567009184079773947894258244529012152544552243905784020928831727414302992580621558216001362029150629716907919968410156570082892881152442207349636656832024026077512954863289796298287718655642183004307743061749294162544784520401685170025024183938764029222383354213776380007714699420880603545778742595326015851224237654044620292025623857247858077139376678332366711726182797211777027379564086567007383311723629827660905631338126250981531116742217505817052322739068975989355728750019266766300867909875042771766077589999639617587915390476306418140991621168011605702735725415664408258605816311528595770314955081147577525007237094174687480358968180307032705959530207791577724913904342619279529933862232729469917527947859449411040987154204631287138761060301169881196161282051298520208059375397294326417475664059012406183433227131668579662216682652529777043357845366786788630335099822479358833254812590694601626503161464227151671119875704216486762664980267934326332508501197172749303766397990266330935706358817923058722097668397946287720180164777861429242589310997844258815580644860126757870211123067752745682354646042754658322995164117584325417577115647913462862520244932040393698066409382121740513299353142910101962376120344949160650958056641543039560940900522743447352377412999503327644676844220989918556041692331533940621981337165625388669284379865444928450542334894226165490921258734915072889232525096741072988331128732283157021715827989188054274385448384912783144018060051647299787883356073438437252983252448089200814752356398804798365513324291998088165162141520876127118375873213304397358964629012969984167771353718748929646437916953518717317456707894429280985132857225835390349846096509514539989428084801795952491681164123070625585772770079259057403952046604036967160588260303540731878058167651638337843677109679714547380685238726642417492948550016234745874668748811586746058447709763709093671594068497064040056250221550052236999166344170375964413789685698501929639841052250747552326253562557376838354935246532412710282889809236911893265417368036300081089578709027806803982088498921605881217995149256409539955106339103039837896981034581712693629195170456157276925232682470938979578486206376773299007710786121895241785971331327601758073783413799205064428409528948100174570959836529726117834989070405330775347510774650956875430428719610588044972342091441024881598195401674760887921065657598285744963602595650989580543047919160150334381217907266167623461729848490880322947320798410817918628741617435873623612713156511000780554035521303314026060837680782525411283334852292215108661177514064245013182468321467677939743010013540366421835561361618437392899110226733755809031295329019850703501069667224073152157553494401044702737738362578944315480903931918884176378174046564094564965394659668969758810321838787116764619565664043481037583474748889617976611094464943659601804979263384365391515554229904225875649104403339838303899398597740065794994143870725697476010132427115490731230858649469675223954950096392990626389864389439831882082582149267449238882063751007055904390359482149245129463932590848295717582132946372633494838105296974372591169213390716727243395229741054962836558768495383801966301779811126729986571493480231757947147234396651984811104105705057598647507226341806154877863788875043616986608617610743204604546469248138147565661930938408788189597515666464651625713217651443331212502492240487025544587540185534666521780313679317860824443656297719840925081783448213667702600115144157946199795875494809679196290096996164612441995286670681380727936009427421742316490961452531868685087647061278100183720100561681093105839948298604850444937980080334975883556535579930691619519267569615144544560314462625448878879708950119368932635137097101460869799212108218764370342876211947470399270574409179017534347162052472781379879634205332952900470714613043986869524495959409139038358160011864299938974800516558553816024065443007277493218892683235304323419918006889585882324835444308379404122630105413272388006059630311894219045027752117063332401415313036102314526717242513269542012999179374509890125499776048192091560150132849155591949925911554024679837163333989064749879716487772619581177488321001188134607141856558586237426310482938567767098431930257713997187828843613147453571186731530319651026943642533117945575627530495027230560721291865328069913782783514589506990799050748791146972141140028829183165383530824653829981710880169082502809614921448743564022194433796534267381276624394634461894156511542269093400459298481194036664616095184260585056803890978081596853418843179494474690310783961773490115992522216372276093118266476311139154230240859700610471406467097334767187141591275506501924664958899343900157375415586358128017868015537574723572418989138033571117968225403572973808093710084858460918175982713828351429820736167131942940436142853048211662948786116178744966918970093000303791193758632840206238011647559687571827591645055790446656947691319367377418897001605006026841502346952713411314872406625395517075129035181106360670224285642532539016323116967257272634320211420264437966044148170932606467869095490965150201601525222566845711276815205332744924305993740059379819368934151486792713708995300109967033482376427126224500299596401411679329347073465112226592772367414582460102205100720963715618448482309776369212136715091637647255377536096493581729973368328549457915181529197359953581789477689835706195403071499848230428634008908304250444887219395552057519689401326423903505830958258769893854145223854508073308818499739324761074876998676393898374747078250631580230779077604183065186618331134735201009077603784020947420092374486810313963905405236383248924164118385249309577618528322692087783586867894100235362449277421562057386863535736669929934631808800986944557050460008362555140279339886006789461677669955965193420177294650594550172028665065639126255741012933344558289417014529617327916991904076914914520965259502402419870377948999290006593207668454945121759909730476691041352027176585860625442636172651106525510909385896668741026975315990267122102531845036400909009084218777184461223557197769122462203490827072555956725057967059743146937724425326591282212105607576426756303996145879954504222405003388561916353608768817434657717175942837411110912707403082912084907287137087642154533435936667837618026877813121783826132515264370984264023818753591191624844049082419881826877969497000909919369721410413805131015702821864714690034200181206047855782366500634397292301198812680947569159541457228863792701958638618329546007582306476623635064983074951629557942400830382778370236557750319341512687775688479545298090768891663088906989434411636914192746422403739474422373579485762036708248925326366205492393277514966967811738659096473417116182633258386110428258784815071521417796323576459765292053349122686712133129201458370613668310044243401422657503171480467114043993039560841690191919823714871525294064476868512570997030502237783735347854264006485181298645271742617567611416482694748853759081217255249303059369094904672206951933911435316901797865319911636666882863039245178668589809481219513353486454485663659980180650142309392348991583975708364895042453459114603141253779677890360535080825407008129260589552767768578126984939467137003414265172994233187711547312632720250262041897125098703105825806054928969283215742391148522696022124969978242998224208044079265108408747796763868742692880940451102314571761181057534963526622014322274871067767330224350925169454363384236935536165735294412331982766986482643194790265128814173257460062189780872587901966727448306249883095530258010626088959163794964235857063594340910346597017531473118470126600555148214455854040060496923362263778733636805702323474092915417631536614385195963857496864249824354922419771616296927792091511929398636190510031638342615197662882539796578790388656319802879399491277757054628696342169587640612817562671683421879132186245095059284737585732294988666346314689386783897136713373211111203363569652247838500139016047912697763250716539795764643719901191976920153298435628068187968693479385306369314312964544860442621852780593916968964215243271446310913434572195807997209190613525102194926470899086735573446445699742884705737522113172266718046459037770967363557204598563468191807189742319310650071090362429887007038025026908959339939165489648149011654474649317746748813463588549530903228074004580085639752747411452754979546783772841060488595438210663391261964625201895306726023302287180021883873644490575817379972106706692690331117646571339181345011408242380395956828187301970848067259227844762472301508667541862758670497333708069505527060110602329389731196053802144909723950449453902303287911488541065011952071456163708082785623782343730930749598227985697675177821867312810726809460138318737283683563863867782145962958517549147403605682117959065499831552960211487241867901848634801589416820948974215576551879997936248363287744578301561555374914638187959344486734654607396939453406806150504669001108872065776525735346304618368411737988582503169302993841539536254641983681729147857551312540284791682055948522860511729728916027576617114778590731476099893811382130600914139656500304564747609357155631996651077808792570855009876065983346064360314824745225070107554282890494397800530310135835533521740552547441386107336411312075468916832183930613242304579208230160422878812078691992034090634408622359405806128595825644034029517713245841297760591132099611883050148693495936460369447148416775992257706631227893620448070785275394943640600856046974199029552838535150032153023282045839013697595826664279579101391375655088074302815360939395212099205216397383081307173237084577663929574339148787246329953101024866684299113688515751194731056875464768682064009992997177843846340870585674939882745135682259922534368748117735461092579913825348755210954221949011566349544543546395937050466488121446914202883063743180707288142756432606114140423536370033048879045546887828734211546057744742509886229382286487476737848461653626039660982045656091528077396511305404732846969224009393776039014772494818011716840258286866317119321842715766461856439156294995549223044384408772269086945699427402362481025644068265144718883120028382802875325447385483983788060452750026871731630490889236767699950500429295939945114162376343036585439999780391728981884108931311534311890541614953904100810355404090465436114155902377772356837388612812561251382665429728420272608050347753790534130772129212395618328237024181849266310532115898965214812888873713562316823720034010030762478363199889970761558375669347320733589884492777306335031294548503543343409670205769286585467731422239691787542858234327422027788052569510164978288500570669521353457542097546569095519023032450041281658919976478046609090925555689218093564962248637408058935560239748179634582200541067285315401813828608062884413214775733783487338051491243545920086773005818241207912121142204114770028361211760548210022841838940593391395402857480788756543152810972934489681425355113817827601095194422288281025692488569652713894647842430085429363567003707892031636590358881491344675638804863956998289147089929704547493349570344075682588844383293335117296048526669554661529629056559929273000739341366495786270266280818430757514100092222431703360235950458179437080789727264986867186928341344316567727376278393211192210571388033036478271093438820280705058882261796806817382390483409655852862119957919722994151825446030177753297767148907626745408730410269002587097063194598805724977018284685315332913433664958962044405400132254812649821399265169244885630907120347037093342480151731808131295485555029970109286903387013477098116194558319849255568213407716599111162333383237722318076947644021612961578626676778762337567292113327570471145905864582586324591083823732758761639956785506423926745427222593349238284366608262817339860971249525145337180805342328890552000904793235447797900499546166527996432389836088394795529573380095863442182091985738239577971047752179521802058874617433728804848488567781202339845493665056467424621800124973458147665663505191885305657264794558190278177041303191191967944639916194214085150160553305726622687190990378856406958236854982384447901097359958240056850874841328750654673198292798445423772168049576771313371707509270532584137594576558881312068516704666625339026377190310123096691229498754599292539522176881005928822351403137349123213096100199984303664032016484738965460767242292926308952269617665343170557129935053179003598052320854131081364261393830435141831840617323596906316173388147880331619254926430845628444950905875914753224846043853937183323258769265386946015243870330547058405984272386927874442660521765333938057105655762770916474153545605674737909451213054600369758937271740384886672272028506967166156024520473987811184579730548162793417965857061022389954436032632897869650280677217862531164149421583260795630486813757129830189508668514777452122030889085343933992757604658863369803503348183034840185915239051942200419953889180341896382849745352236168584835302896366340716670687354649735250190739501521304857211043555023465535918158461238175867719790272585831181888155229406837564788619368163605122061366205315699341456536194749397985167671780371598567693985607976213010797018642403433021191746922339337814886867810054227775073941791889609736464253497840528051244192666617091919617684944608812013143964090642076300754651097958723144895480014205787145521769629727455175243638480406599218596898370268526522916930884355584925942219311478885109228084394618591407534235495438060317846064487261139485318602263151400623014418680811375152415331611948498345108477244994097824921265090606190320203747579674713224778759251326312900310060733133766406595671936529686357348012879962593943597859871521764833262035684825387474708401532599191527585416574043879192162088873131355598595531671525914792727321214246814279322240941709634787977284958578647336925927263481869808001951262571396559123136445174467206577254729331085098736301504663217424889768519302588338196691081895286837176180954336261532868424049198113527682547951239212013740882624859673066694104863577033983197195144803634224423861112936827876870585214297128118971688579637685500731633720682961389570156183006537067534317909523086914520322361461904473690056482808499523312155881488296336342314416297196456681095728925585536957830604211342859550414043518202065427992641305289382057754500373773444086339723771830317354724195779939931808501076084203031173948325664291601606106066864433837186642295660739880523368361004105064904296603492090997059972412680021594715502337082619078027557589392257807740729666205819853132393449887110560337025826204630466003249692403197979126164431671242197905333346380497766538146812488407380716577930250450513987095018118401276715379967168138121513557347286411907677701076671892042748656042914562992952736806678639354494059121242035223604023755708000344453060000413297453236247736462870655794312238222060036216598274264048468229233024481398871155254397706464245932915534138878330331069308165125952140771620826902080731881698836194098041335007670560217896971490664908764300550523240821667688534935646398041439120423180292816038781878628248293875953045054624100982517260820647042439612159238515387718994095144667851498516793302418433222820589703948751683189273467158996989835465519718754492297764995338543529201157402246157423746017605977198783389511764381080312529800403455535454884406792363326149375316717561463219023780814297302724017725467701796676262583922955378494590117730722609053397488719525586865498533004160601469094135931265295658848836889130508333610228247409117284908133554119865690879866853939426607959405515034637032108441242269641921517446360078386160270518030414545638985628501107806907758299724052772653328720421926399065869828697826675828770017475241496999293887258098453715854271549263530363896241107852320269971990557010232057704968958742383332598583871329972422355120470516624815012842920670229756031029620868766726536720983973574331309952428243971836375589438614179917425648246513940642430814032264744021043199478960688908383454701646142776241757059466590266330892002844498055093620092927698954020717841319962654330918500258717613856670806950247476121208508260945407892655337174368912907592923903812824744692459048572648691272295648289308966679402980186207515670584406538678301607046379372254366040037656772981379183673881711134404956054502800624389358356818653596969297993802484835208555299968549049609699098573592461113482439289037201565278611088782179310388347920948768140938827206775086987961145001764625159845672746028694276581568361649304446905512318776050083370291797069311097389781230245317881602786359879925557870830169125865475020261230085999248985265174676596348574383029269163205356840730779534621071199932322148457001293108923614342308792472608348732183013061358497312604142551885643319661334349380308231806591669663412341761694896308107435006895779801415101546396461198499383310129290277522250363589157576847787059891451853136125415125770502298869801493518674678104284533337341421853270294010236817166640766137426401896045042581528214147919158938869422893508765847052108872137631455081539842278791645763452067846641038696585576743093161768607705136928324687434826520687202177830750884311388404379365991624955039713890273472020733760274716008519384580803851305346103145968264343906086390045772851818426959604430558000788252778630532226017287757918568157505401330472552155543957761941830213362581728059375973252323363110180927351642739204387266160782716624012723222188498111699201205051310412440310653401088320657087462918010594366637827723039117503877439610861474591660758169272830672148582466751328012813378422340342862495848657653634255664816941598173515172154242986298253447142787612498406913462122076362862280876594422302190383310163635688834248983736668939877841718291322123358962421977650599951814906062087571572331739506211915867123790132462228793535698923228765846923884966573205129851973258160761704924414629155022097752961802537110310595688701161993988196186239506784395513699889011435552482775364582771710858221750795440341995310505772181429375384105842679049833735331585764497728943778522519920092828910964395609690099653279693583323279667410079097979126877356942760606558175720583273358718344393425589187010908145992260380992503058093113230282690268080835089126770962880613375146080512227871679149218774064593267940610519864063264602374143556098560307650323181053161244743456670374929420700861542969363345803434585705672650112841780835301311263126658169836978708402402048108631991459021938581829926315169945077252719950835703567087930246449247246599968222091224128841056800306282075704401242447778559760141715744726548295100478260976373287780589352464409988641860041972023398740611125920717559853729119366325947478959136092631264369300160449300761601057315919039138223970166056700157765139986655204172789096886062031858353429582605453533940560032094781157761917677735245030013295518777590740238414263269066671750306569124589337380580473119723323059886001992280565509903732361786271718621646304948341645619206223036041668891883466522344144928177227580258610027109693076515664328875551235422336710098883828935354791028405575806037867831344542832226115803889869537798758135629791234532009843573274572544833812298255695364551794552135388554253264440923390795189310364012398975668533288352199105241017621602811075535241750946820510758808939693326373354672255294171218798256306183138712455242709331065847029514797619986705911841530509680151471480200486246710756656476442837273642291028332088443853732901521292338055344531636537586147127360982952700534368469429433354230808257246521639822996497603539564041601033660118512030153162534740674510357161194797262811417303724298070853383441516287733570131610053739613465565960635268493184364087942324185406785374714207698097597276700036570385190169156048243000353931309691649093170211918171157422943124500143605712608136396374698474085889031792019978739549537462056324002823586279850611381333816239630013153425566344069943384597751007353804605830160312653066496085989804880138519545313678270024382336611770965195438265590331435289810043226683538593689487507569319511810358677091365355194744762619635950053901930054361578034968866198983523646175985331450453481781670209906568334062585680891163025819218330586957072532916820936386052229675283353518360400811118096407668944305499465582191596573825017885854457052262567633255365076428283646585941693594899677361556313586702964129031140113659010608093452587581944711189367601926629466042518700261414699324277972986065268962084375308664179713322172356150826102138932276105036628132974362842012360578402118845322309546801498579976487253208447967833656481627205774066892967886883021272199751896504138548720115662865460245600685265183667659292718063903102895324350978333537189525106582133857177780109572018774832461421956854899500808193573705111394043478667936032993387928370670771987665700122613279759798864178839243241755938019116431014017971344937388427012083296832280994120544580397922880319079150774622982367679642360116150637367136826107088558852690769635801162710175843604395033188407587661924724366827597161800801768297997844279497406281039717048577568740668183273033787873981092872899378611202183237032289213039141537569514461680813608299591795154050442957126801835287680495728782490218460726775227189049469231868788188862404566087882666528588596060361665701610644079425678906401822266645838112422807108786002602037026760560667652753273660932563607391739074677674438098474301786635203771433392452922541547950545801726284269323630444628799807984434340293134651252394391243387343234143999297680650612352680645335497630963391740951630702941494879871157584247437958365857368084817591093232840584403429059524490315380187809612261395751692863875367937378600712861569461175072146234088757580485021189459440410329575094358370325640710383881742595866733647717777555723079762522246865886729649181382271073827580885757144088598627498345749066492657705722490471339306677086234112466974226850571379789812659247420641969640900697974425692426150595023446339082075425030237010593795853922573868159586445294206877001444092284546079411409091849163116417771371492472614230710105637824594881055321820599870962425190131541430700724036928608952301845239820510652460907261901345025542769217193143290653635285939198028292234317147396583774261334603649650981500423640498018839878328101317275582428593606521032953804988342474713448405901143630241092384318314189465598986982853203370576043394697396264562002404656839310409930791637507380538011032624869528639038726374368438167695732243657614190064320920761388866381050048457746522385449631432689722831580687888867499141356175774440892102401021480152386498137421176339708747717034445548095517971104121411088201176193010107648817766852660391996111850337802806958367527023886657887336065685236422725831655355636337054904672536439621792815537648256919617072212172215255248323389696053531680862111877782620245254894275434162301304964015432295082618562116446726477452097785980383660786943052514623116435793183682302106896302290196246189223068297829362570270545821138864270670049329288181132437802666065633570100592209965464997505343262778295362737941430496407877448105955722772295373998479089745877006246343188683823295428225543998579643741871622937028047320378004694651696711143193766490037201666098434933461475817124988013514722506129868776760424959891668077304305551247364391723871472590610703812249111152848165673658938630989202524399906179787151671218221226534067287203496733039500657573267695473329881053422190878379688026407819389088002024510311426934312262798294028585176932907154791926541634784519233006121075252234063581972545335934906823787797994138194253093161130815912729611543750394402723278766586463540466955746327682944787565466980397125488173413532175164895992175301946528946246835761939989833412442648654692363178647725177699751702418001599045364048686311418891353034153339596391369922073388207508981396952302511596292671261633187458701064061861878413941284301890632103583018981616476148195266582447418942361465062029435496207285412847917179791150483038654363762979012236518383312234029404738568586480042183505781783990305426913345322444533291480326572739781684389620680931452374449972662272819197295427587392479736187285260208547737600107756424316692578545233309607820321536381216353810269251644341498194253643609925599070440115684648403335497318592340643204522943318477426701993525539776242118815844902835195112260106548917634677367088607474818857512904182139946214146213224436616114378747237216211271310285470083358974083305831272790317823047471563973820443662732205289663394929779707551036577081211354864582502759852552046850794393022981765606527331814159162800153937174200828737603295904454956754417015625900286990121834051771493273236707983113978311811561913746013859197947250497645207226884588416117284056765173426671215731843983708878338013678579237534711166027200300402671818376285120062523856345807075509694367793959918492878168373794314689809813204859699389876136288464851523946927620061061787160636148308751810396456333966982116865430431613643231832404058515837292539560285136131863364227773861717076293269402481470901848066102147209218495823228128494433993005611254863092430913389958302935383544641779320257902177218415801747850461205860446750321649074688319985514977623774249129370587154045106138173087951621934339626700142276433090084370938807634482514554336212297025286499834487716929020980929695049658683254772121628211343584811290713051333748729217035123973150707720419548814676503700058196984070134460089908308754984686202177027363948048213390345578392880826649019520852747953982767209569084735313389100791292894035779215557538211038394275749199337077336804603317509260680738587113118589454915987621308530286376658936179793730761820402473892433371842410986794227065169507355911046900676169208221458740464581884543977137505746630902770976346567013607357269490525288536006212509572551218785231076091293632226028263270927375073595755265836214362510277433864429331904017045822120313297276381780160428136721939988868355482776231039696511956228844277193155813752029722846823659357329733045625912358129873078073215584374762086439852274166649481870842539162003307445716948001612504420685931824116955298391939190571659139036237303858525329400400554278838108895823208255460524282627106819891979813853137096864570663264157699431948817330360386535994283842782496427945564438437635185266164345591203385780168446767966644925512549616313493116104173577161279861784353647440847742506862852395671838102943339450197919546703422644719063923468534009957247845040212128420675833529233969715948869501746609681653560844791730168521461890446451890603730347791667869554701219560612668951447205744443465846883813121927659473219291564867155578413253287555629475095077158740868082908714569765422521815088982792379773911889494966448643352075729614540654359266150613225950144833771826509021099148383100110173923054456609507238996268983286084818400829167135405977718544470606825577408481735315131463988474265786055654541106391499579210914836087479788350178106691816677713117340140281751415490142341421112022426454458866642218478338820651759174089568410746182649773729026976336039098356489482476981233483671946792903168425615126538903437444821570272148105376721793819627936874970683132246408073513866213207275985337131316237906817259926488267806259383110510229351868983303337766110651142516367310774016624013078059091890796659093087410147237568949042158271749757995206446107718467139194235903868833613853221800718979738279959624980375822847704649978388871882727450315528504798477193569423782830999637984973094473304707717520296535023020408204128428561289597959137485513209051329119298571381417850676722093376747124715301335819658045463670753634636489621905825025036130880577638675005680497485121660875464970120466473312348602906990989059534977106010374512279232804472495874346118529229972616324064802842122560997164646578939770849222732838668453025316668912937765177959763593067197358678562093496098864040534216874029357157126042621488557055052766533630306546724775240582657111518514397864096822678100071881349675629428053120642374101084972838464751927786215951277076017777973638414876155947770164638559530711117711038743572180794450814796617494351671732599740505373254325226088313781598518247482508268715422605061577931841509952558183782233661511815603542768963163675198783187260906610220588979086934224638203239284153338914188490419858364416765307646586388934467033077014458617687351725088043156512393551182759338047240472742237938966102771477814928727057471741783162715555678251556612933457012081600339398718947122788902565996679819059044471853962020971664589884350690449266185659963718982188249060053139580285379897635519805299002217199466828117777242649768662113670287973240004275895340839256237414284664234057329816694247480672540444943767219262007665325506546629816498915751663435896822279200069874877884348798281727194014436142300394729630402171645489742950399163678334370941412798829982653472321378231847386220400017088039789828448455448834700947847010035661744283233776269759499494852188090958416692820139341772339089949056589097552839212603888033569662176218186973097181193663898361224678173452269709412514929178410877158780719188145492734332292175596218270056282717421773610903047981904067967115717083802729807247583183204318413703370438753274651237816170003919866994646898984649474073754498664014610516336019108744080119053886878336574914002601695798731451624369541649474966169480957314907756481858515338076057376170843772213565151022642512095334056874712765152310889703379629798210166760446870059592246477351680965781031907070585987996877374420714755769731003482538852528236679169289327180150312014156457450476978878747185770899650003924974783816150876416908131816820861327042021926595863439449060785966195216643281805268656470026084622234995317988518606778023792549320306934708939226643784136744406602863678452577776345866299649972532738084191952290470320482826091837260358125526609154984021234286414402888339026449384821397197146679496917455847417306380030627526077792293913295209577860914551142692471935302631369860291505456488990657562429110166369454663929994848462349758338359012148341496938657457062919698921326964279661146002704720974605755499083849112504513075653458252522113252160186293549279695311105384263649326569567117941505204900944207081444777444329569950377257948551252082452143384317516837462444709617192516195752302709124111981328174332126157616624485474138680268622802898523460174799439362028118978349249373961775168603397831998908515359374960761158969602269072155626026420934301978522687458568657972765389781966447367703092783369967579022859648794685743683795665390532002169837222319775601156829721873534023164185508175451781469441765977495414381736218900826257434204254681913182568119831183399876212085124442224519833393606007498944384070806029331295099941576804676797291660145057128698197554913753100141327395270848602830553814446857482226837345533867501678184305412891581089345804530526959151398968570590586211043724492036506516250345922655245169512205682506578885867974283490885996026574183721589806249492977327361712397713972752771094248340539485356126739643840195819075406333377886289315524791865075614027456733858145424461982183464912639288700607868982481158574556615299009330724749448191799400861404022035305963378288986994935723715331647712854230602711168594923410634175337514753182971230859997928156120139299506694387623862279361585764329265997900705390592559079833138438195528707235749516234469947319170828124890134307559445621116177171672264447777200373330706616034046225432836259854316037790253276934719588834230582808394863791300485332880510131760995764415468386836616396269146144222833846945604070768838891985760222322587845127837178717292670057497697666250807556608416936189776713849844250330095413869263603949573553523958446794163284656433385002670890034836587465441947228902053762368530407985048407673104999728850858176811590189614273270017267550244318778258559949913951569918510292005668378933194454358031773331070851099335034350636073935888414009345982615325694479149833452497374633727035655121587433765447562996942168417136094301475413806729515524119604043499644850111770547667276033293993422260751567540082277153975277449781686829847635430872875469272693678659340455336307452223566489980214472182843396370689604564911225781203987106041628907011052552748892003011479007057900998455357210424937154380577267151437097500030999062124750124393671956114477264967296654320311000102364033688543778532382046630990869557138162914664395532910769060141520642973212072703337420015817258897781200673301104999692379405969944250550234955219347108026765831827774253249684289314311685497119005552528678030680100164692490084349394834286952288860796731114513211338635636227801369066927607522995884832385165062784506764353406938448482540297682600869324486223760176966734681848682007347987257932031141726968632061224506798577389484542142354301977144022786469700851977238201375605634243967527276684274880606977303689322403087854678051611911919421420975329328299751061311978345932582725939894749290032567964824438498240355213667085543954948713918618884835447602899565832218545896949756074317064902891676826174982966662158274903188767796945517082955310008695578851570119253359324810057220026004610119423246061357991404549412672682692133184772928628620454535118539024043117673688947357257403417428418642249758388084404375906417704679502592826090506951308188212104306795541664969752024426213913482579211560310179478744176584131277566489443171373912622327210034313659264176411378248387039810662626791541465939859055415322248623749420044257278635879045333301070545476040234451631838982399048705165516048060732340113725201244967946746182681872562678836446197286311713002948727749610666521085153408699962784621059332595837023074887984400583375238515999754255531945174532021388268878786619191196898269736204794376584216829773654568509997117447033786549505890417428695710688502528981623632054746644190887282756802425002164148771496756687069992688258401890126503934533556973111748031310260774190566942975189467566526197699659060243448818274274412874979469942165133085059840692405444971146192027448990578314484230234194175603736126546109969799759476798396726497303004396875252965961557451885713088700617370091330328846018777683191779849213561952757337315254026374170662708411576252543338383823841780505980958430173929035640771683753378792430175692177157827917975651706142563295382795946691964649096700708613787553399111383383429869155934685075195066108425761099044211118504162083977846661097659776206920222329841944520557674463916257889663150657078675680484766825168324448508118318272446158522407068624999864645818782256249587630248270378563321356669758252006006219957806927357404357741886995530673562275156338545077348220232000909987818063345162603732055455165860804162858675193991999240081621253657531396954294950088127347760308616054107442534987571564013851481606225792542798682344162790719278945235957615563717675509199342427450957760189445163175940050620657652540568499762713310997789100918883206049767009305118998496824834810890307426892305928361614359229110630882707625819559761285836346749113992400804452030344869015294321472048124864880450713423482016548573319785096554376492457716073661064520552846496952541907499333604149317546266297796231331877429599902723219160147714749049478397050101338860797426402580766950882772167635153746686777551214643331402021777830289988875297378621992868560710670147411740867339731260940199001938713287591158071718628944048214487822606779786936041475645874413132002922503006917095237045736100973452540762365370645902280325116000480210642521168132225034991019252910482540146913712278296703370100167539498757012986698678131931084726311765373751858248496059272493940776520572798017480875973836285570276720544070655577714256858749124040295982678819622304466915514986461983028608101071861809036728215299711222239086212921476367382074514606450668033586888581978806329704809076530692508921014573437654492378253864760295834154613495169889850476824016339688994305789651450851464082099475759358848421420555492527355883362049878954970311172396567323295371080537812786467482088778913457562520774766883810736290789746197924790415336956641012430181391651351975841628719151674884337987812615326032176430870916831379965909764930969097399717150104328372785552974602929884755307940498666678255071653002732676822556863890734651741483084192420704352178321885346727687560152823171206175187131632388517540015943873049717836377460962611996451206734342028065884371854697839304309389379797052119322247828689057423235617916874653487829678905179327383356067244409623486484416852670032502276590660694870862758874397773800199057517775483601566677846433226915232580324322720457623551130032934492851300685891632245861871064202008922066659178744746487135188403355570242412766790046678092070658635362618378230072077152728576943010334845117048848058750025394718421951970857859828164960124776409478469231194172350972960139725056015743867030249275803709270717285943774279933054068037376663665443175804109856173306227320194614248524863973013778415501731555316624286037169154890629547379736713637005951618210871618661158932456805169895524631341143989420697926608192073429328437583236028725383438678635947823415404484856670350749248431389513177545321649721746855045883566501240056110545654209636088878668071527531492569410197865400847819946051864725157563774889046619304955913495395726886684797176753468964087893678493241049214285562931486760122559855614870714945675529676845179870752848192119879422633895674013801697316743917024941432140403827147549037415003640922285313196080497293252845160479173040498394303539349740104204496690688923885786954283199888562072808983106593268401795432861648085001064511795563354046089708719512516055159917950999416955828702527013007759114422590850605228379274100579526596686853877434039227154660019059575704239558396673881519846807948917494902803941550713532846388586503520523216549931425076033011248429388914682686667028557777822224272231181033927870483842246945544893764942611296087024739016379541688107841170641842172996402476445863331619342247880197333716682266300206171513566400702924241714196461307781255083000416467954711814277899242351947686860871339703730759242022998921314888270188687362460527024924061057092733404026943886803026435905162222633234277006534327451575695462821328523217231694028172788170600707639852538889122412268005239811222739486665848621358887875592872876084059928006476678625484279033901822418821681273790136961199064013537738543636248075399644836563714190402483050695668413177618371479919593161137356429252505770880325473573435779216881616574583649979593517504992328363885133096740157232001686280582051205311678987120819031682597295700235923722975213010659391579149138108004939857135807490233508829040667633682906745515309544132636372093923112789868006794435290698152085187885765653102803470726528407526313547253788551539445587234469362888152766845205636062842175546211659962810550462773111497269797291417394579230144850149334185055422161966167551061241896236690170854751119535495759744995990328277359333968060061526955273606256018281308565935107462070840312426434433327762656707528710622861159358249302624639502510795633111019274702356413021480365810081132967772449876824908490885877480520577266152319075419571078684936669577826641172558568453615668519409737182625991892140978023583420094618806328724454706769679530298579603363964896366139473997725941189743881334848933874227037865644045672957262863449735717504631538294467513159193002934209730733475393230601415166822466630022936546100080175622021667436073362435715538452528083606231506067357124617846094330241002703759159500518128371978261196475769278760902350731555750759046637324603292215308555880914818500405266168351307897245812983486873732838776366273507826090024993357789839498541668220911359942086585364294470252922714360200037914188605443994236898593561703773044989575386138412096690049917357705568272858712537095678915690373403623360138069188608335777282880237120301503286281581481766400877348271199484824556297585947819310692132293902148037655467239672700945938992170707387715375355545203636662248042471287336277585903390569292118725506112094358609927348831582772324071987802260902175750805724246119818927099393115134986899261162037450590630880033357950226518099731570057277204150699527632611239666895291410114306316735262071802570939964465839300378899850668044553156775162384823081566141156269258787052301796225030895369709442613619608381709926841604475941923033363168382003000595686731237852977806555071859032463166948785682183257296891500081143351119439051664881434991062122458850041975623596508862825673111338549615525319543132323188275990905437599741212987604212659818670238051418613989917945464855449465291530890691743265192648823731885957250420557255978359072241515159079295413694370419174896941328495824543080262139090353251207972246420123535184015439513579109372248748949067503280962316453523888671759586123389798015519269991956781885369297825430501042886048212803745687549350245429252289217840980303971674674813424303934494769966261001955344956896970187737836519229041606678753763476323900291760465148797286494862066583742424870328931666644710100349897272455093681772073515499573220652682075222009091652984732831157971584169709596228962245741877892325985327209963057497494350763264411699197188290699954168062638196146052172713968774145408605985519607602270610429082750807864486126372670087494857068985328088381550272428242997330214834457379908127224839335537164471082614845397996632562161445687351349236236621075271399679696261543852951089995397121085973119870795282971179449130203849944535609651061333004602606937564017906242772375586348710701875302849132788111055408536379037426197724397680859396582981956530783488905277633109940048207224436746804601156613535091387759284091759601184775862789044487775540371772440307053954199865516033584330180410739854835883145657461723594406901972318104645868150274940769115816117522239705882067142115690794918681600437386410722620102450454485766281825083501619424790619891358633579440577257772870521537465230827149779594523646133442637904963140810914515326665317257996745311745817684371440272210667783587310813576928910652092892785538680397780532549504589976493124821991924744207191109878438814448968038694473554763464709371126144421402452900423453401569960013754663683742088775622376673906496613337474946244718005882153276410283575791569089135886056352484527241336274828292297481971745993906621457712054659948357413788126269799997879041416276972341704665182527253716817605050480151511992290805513162984370657355366258954095328330172703903759925099054985526025240584033872357834143902135937249077208799407083476389409731820624190106164828472206214970728379152417097065781183774994454765928755198960509919319968290420397487141768844964679684447705679427716694905340277563674314126149257109589300082690360991507964832506083472270362539367711800170886783521827626652374735113964872059416904980066867704796121086939709810949865262804742614102265840541961737819870075614916663865218384372632949120697449962862882470951923199860024881280718696791582448821468332978690312981768131289399428041399843173009658884486254128688700763774901415984111508401539666184682084131522488227690795288176318241532186068148206770510928094119138836120697364659783514389659222493000212839911670680251897371742169327676963905476268698133499050015684965128002578508507926457662699600971072257842508618957306082943384786446392326596581612042186885622593485036496085585846882678938611723591494813382978106677844919059839828231219919140837862952352836792299946771103746769813745363534562311481699014486297973144457293902112816565189673535199349076545945371322953562680120631165454917576960770921258922145255787762779575248642413719633643359446545039575906101645523480785499074630918871679078051655624291422339467076265165274940167851863805500417446878401487375811251119358363089839722409087243577432025251921202143692117692739349213591228478945032403840381374432324311446226451793658183124819720525600208446653717436380768576841860715447619859713552762409277027767096570437444193834449191765724858243497252018561031477240326642166402228968783209935029218440743396845064855024669662478977091651993810007331576348320136450272929457269495878774402345819166902664428882091967104033998264239277638420429776832595967573371556620766937423959089113232884833582742259633526750174598343629989057666092993605036436961131562958331099128106000495605898286631136052473675262330438510363812908815855802564582906453777023167201772214056246149183951913881513773105645248008268153565736979055691051744474332555688537657875645533375576935654901296729140269253423109061781180070237380408538806372837503626928405670602846475507285612268264126530212951468486895258447992178089086199015168263676027398374811511176349814782184155425993619112385386770755268826995193323239815218691520603625911930118335673819659352867867244744978320168647498949453255148076643529058725951338752904254425828119073952368197002622748346761916113964684199928867403524479970107169150983166235419510079330821110236598223446475165695427762192690602396777260851817018819972793988241481441259988996428038454586507780452329123395757292168923877058348992922305804863089614954238484969266604470355400504733850662546818392244001521901051463052273079997410776409963880471694817407121402696115411389391208049560759097883623609216406235536752554721819834680816426372768879962530026959488253521273958395408110921479989031617452986826965380215689331023773439199883985803199818889563937315409272785169602104598498915171939879413143813919949662815160522158549773311525674691560976923534232725977859833950049377662371725104029105547324330554836050427667557341300855151276485656110916887687069355985871849407485480504278449214291601868228634271613670323127891865967765386006340710077975261212027054663663574207289043485282457305582842030370798481504578166229719662351703778473886576200863574828754049238489504705925676887789422639573394914174636823548069876646786942432520942425411757851316828440300578801619103622405022179628993131799114687764168105196054630572397166185017647251999243363758023792769916810788065545149638767004343039533671351491655291086987496111410069212503187755978299857885595429725682183103046829929155125911447678710526506005493457685814852681090382625649948036447374764350651559519556697326945785969005878476768610633703706934513489805397379585153328568816737444478499309757622423902564235857999280590003001106777646782264548475112112024955934252674823907907023483663508775149163802362663046048363832459472661251741891990257500880434911716084251320295949009789535569781150931334937969663574433478311059031606885677963300702703471080935143441112150031169503985060697578196067509585874915511849538989410069720017431779689918375596724927653709306182721527926883081076136393923907667787018776603565383435209705426376492946702348584812081737607784558266672189795507973722404986076160796549976104999926832519266899175185090581291003075280170395222835747979466905052675194177572288503084315545031761137473203181684103284282575118483274689179360704913337770309714119976432107530253883567800490114890331229204961000994005291143262794904715548046447133814817202164053503450388699450711020223895519746693428524684426727926282459710702322425716856335777800248510886473097594059952754813463376458914074449145548466551636585780783951765411103082668206000608594636408486851986268143676861536380194594850136625898869630230199858234793279980305790818051463957592197949652092448196809618410581001786117223615375162531800872726726996223752435699124764273296082994883562264888894327144323633902687633658562114704622333550992474893692586028215755386404729042709135032745039899079349936558328462749834948750370198108436650019106820099099746312534213023766661473312927155022955642011199956148132456154989400460607915863993111776621748699558774786915717877364829402992634211346794675030616164566378815386756745515407838907144493747919163727168913390674069546490996625837727817770814473519595404857716621583154371364119208864572066072166272182136645437613784533501163669909650696507179003805209485954386631923209215700622166629695887093155119916439648418821339353961711956907069532999870899859638103669633452131615439517242848221203440401103743821210513183680933509378997085747966302190332713947354018475910159968752318793944832274134896759907052970637041205977661812983691322611135197531723250124672609282371700306323553506657299930918624255821376309280917228103023433150359276975030541903623432313133163793513796975354927496917261640200725397378030764650290480521859713303235840438042096956764082316199019378537288102177366718832520962019485056901956264050435653799949685243336703564963547449511837613266847478828743677111978768982395389412950915613272600177342241637873890226018347375910806240253740462522373292755533100449713349277996840558760775734302909846924745760996542674380567304455192254709382042256063226593546236181093765944198319374739752656760196562997056248916554041494856672329341898340000101889723560673940403755996749055646228209075474532603523195183945219753641898530109334540512882727078523819349418945525833354635707859541252287628703405344467974353521423048988961003911641208749414131612773045582929988095063060753016455954435253487927568289288052749461856944483619013844941846117744168634871465651608365724377468013201402342162538388698268296209309771835838733945982244366593551772951950895550980396177114534106471705264841526047412738396348961914061550209592383589374622212423477688666314639729009752830170804340017843385017485113092124147272015840070210164098266523870364014550871000523820138291831611706264528094101422282117729477826216592541563990184100378907794120136497113662310506795749634104092783664116132339515436074534142469327708823083392329111827853991968384205587542244646635033079889773538143321294088906492115582171583090654691116246608747717402787106583305030714996510387753551679610874768877874227767944345067440724106421210261205774736630162421866258216239783760125028047538205156813247906476679297983293646549617289770825193710202875854192382405300473851462260414378989603668401282114128963741646869407011894778931463668325480938941530912566716031118845463260343497113363774778471693743857221768626406941235002240204954704320844318924443041346644876755395471820569844080106629429208112709178883648321283657531615331296511439689317502305959108448239444412478986934169084294584460161521596217305970830533670457918608767363130284553207315641023525364547644860044345516153505715715852244319675583732875387189996393159220969547396824109084865377735458597412580300695085914765804987315289296518448713438255488105436024094903509319503194701648830162760308507421610418809998051582466496972320818000728452656994305464276482721584956956600203463226085440378811386302645859135651886796383809185598260799161044988877607306476735357680487581489591347791094513581475366459261201901418524195113865222009379372435817542424664181652256304148990358117651267272326303836596227613469601805350242501669021991816493713618340870124291124672634762377215344797497463700332487084881377371774213728676670092875595238310741507409985777649368459794125604075813028194411650719134290688000901412531945867816429693530921123686067032052238350234556209128034972883947983325177194665368083564095988084531692040703462182744386890553857398188107342057197371294321673340264339143702659922227915398051328823817550020929654305454428270985940221782661114072416631995134905548481783696241714631126165941693291357684560659174847291324650809994057804075440210229460218790026535268635727703722407444662618983205976488448852553378119534012984000739476196733403085527442357720456857927773015284539524623285084055297141819217080997739274705771511739021966966639654690834598281911664378837242517023247436510322307607394427931420415928889076749535131485603763693817825649768713779326610267200632137103071658564354684621167292095347390935008000289281963146905519451858249853899500140137422209898999369303076310957622949264708320003261101022661726600137495227849501746281931773470077069832939167351949178370376408732508917216276428946181624730628677859807229904996287660542258144094320308684624869220705037778655219409156869431158850212798818554160649987590952506411918525152321518549019049338952968802196778935591969897089564953402507832027061595701600712220569508632360094033017327179893903063383802556317259453130357072712924621269521104672561804035097152928465110353176768121297689094877992149676065180395913990934133485369135481271855511444722284593483763907968254675661533183945728673886738605228110630625584610938640293898777692609756807091715729580570690117840069793511300959421097402504540380869110320455459158091299167657103999753190786186807836484327798768897895789972416579756570485346107250924911976243318336345946611952452252639667675779856296809528866307592195737047946772990301975221195908305131281784530530689359936663879153285603646999812678533353834656822473194946083942652362232717131712647118961953178011833109018784700304121007530110269348697471185703648958625104002785003195015936321521473369920775092831809064289408790773115670157749037589274252018794829802303605905219249664641803190796100292179140208662906055826128919707140030019578078559776479295777771076968671512487479133600400319498088193835288806951380486558683251138051410845142593323887692981076574429401605003405617761890996675606331555430363124247602894189872157499983274387824578990645313119084846382162848466164596303824541723665264297043197329649658832445035161622008302628270012580780270758490878866609835742105950705609639209235330595943209203868107371653719702101922322570558844561871289291988014751486407690523087961505879178022917118825666660022738507179178046677408271502064099170207779878569079210000870418447111498033158193760349382733451200371621601926550195149918926509993691025398956974779881010871713708578851701983732610513986649788351005352259872686086954002132832893456900101734128463624735292612630248072779693324166236948774748577050558735993573588754784865933893306900530709689211097390107515255217751539304829554283304161855927936697754601263069683821317242117931402515659767848920992264324814628374665520677509027224868699501676093305265354346678195119866610383039417580281921834220154141835483733272495582883163456387981294322256840489002206231384903562033396025490237675480064339340720540613195688060582677029821191687498070500485951358523792443191662715639334684733412523098586037327671663642564744663325388108829245760080672566752518605521433185899715810553506814800173053362904901362164914808051900913681189108496148970562397422943164110836278909123760418355180311743274851473319595911873640610811339236517434116676014936271554339823088256039364427453899489745447838648555647172287380612914407008047904041564198331796098819599241182525388911549688095934360580370418733826486587774724776095941086601979526687865177188116603785131002075222912915628070612409430637609592587158184891622812269471729320153550803756612636632025663183802663801461403002568014475997054575254130494796645437258993174122002144643836275202889587377823129202096622788351614907418408898243500145855256136371979563069919414558925169526405651118813481337021780590256109299193191666217976141311131529394486592743647134579936682315758237943818371831633473567717309230436669597244469281734156422833569490545520753252882271226557431090072952022219107035254128398628569836082368161339291935593913416118341057234531732104159223656430368270777122496184835523750470449632291354061236997244152294416745626281231645393230057975447893367853300422633118785544784420958703291215265619348315959660930828202060451334685452391221088264347748499172151231869232598903861012850338864184748237832005244236739293203555331822713068709700613187331889389724823350174674315255132729579924844682608364932700850760662707219541562425850453395449682096587122395897174303874712451564315330487332305221742476541535696435172410903390616996267574061917096713571005643026284986833485153411816024139786495420196946215687512800375696677573683480085574952053712568483931961143815339255328140651232060339582919543041341178973067769360719988146568176716522682584949646245756638851695235481988571880246381693276554170208253952469415539043441824006911698038887346455846953628009962529242384460176477763694065626981326076036176557788114322811030906175013307126015399700057495199866697881116860636362048270056652832955874510930863479248150140409654065895743069413158554225455028903678860498813203097874049310783553013651466535298897351229536366194108147991660904487288879170625679851241780664204062162676483318056899302575843052104832157168461350128956905756378692842547331596641494241367481446300282541182528421233658057321517198310898220460899144002464702309858367467437949114346560173993979614144205682474354439515138343568550605487866460968934629808202295863450050917268942238304353607923031644239167113310838168727796306504330151992643343366835887891984267050922858857225275879504028661952559082433927916555771482100774572929375256259229648865499536723183049018352175903587913386675185197538351913910108151829084101370851647002793028502353479472270782009662302537679306947650235741656746874673848333698357376551520547864600895400383044207588773361613360057333937092686598197783635811995367093166429145938006001128033139183681122477815412785551728728300300455898298145804038645678019196326394760948686665422003273261473499147793745731155415749409179736075787209579170071176676651098777660137304184194567186214242055701839604970817561091043274421791525820719572773108673049670298727141038369097369157913846468238083447831401585161582066186262532621824044390352094562189755160989526045738305615629200121711689517191047970346174552413317890700696362180393584916593240262296197833219786330713310976900731560137926549643548601894805009828616038762272868326209662724367457053091746323329326256009481821065554591141082089430142897722668882198771916801653434322033374130392334676690808248042296834258247995940871843025125379411805178496702250526107605285305173309785103672222618871255119238103124152145981337232118339837340319326736117803611935424889867379797458008598738678192399861136392125141376510721922562497664359221247038369651026143883048551406100087764437926056047341269353243988280057536293853794040192389291627706565009197028938453214591076914274591987370749727637999123934667594247020192769103923209832645595197214311606007994130002894446829979048965010704807335642835587389441219583378952565597570407464874695431282293896824910950362890985544811922247358194559580922715289732498789545588833839317479870517743963785654229955996994090792700489856039662628896323003363724254698452904625665770732611010466368037955162949579963866602782721482191984485532794588787036248218636792742177444025198590002587294976743364989788614573025485735845762191593163190115144895419914423912978318621640243774261932081981707887045516781563117485921119701042429306031792340415129391072097070489719668883597512652552049974925067557723989061220724120403563028021138038230775138181264697226595503380993663704093827935682736257311239355900651140586149955627162138118005430486372704550775560090931998994550517179210639707310905884651312230436018422766182964938113502616834229324685763957299682478169208067514852395102864140560172201087418478904531043130878670344100728849517198672919208379256067440030967512875997389922497663654350556148189788621984852594746061074216492779469991037150764319105969945646408292072994766633135290711536746230221633693896746753992197289731969669273908843457266118246036943916769596761264361947020974689822576361417773313226538617581306633836926012426576201560118866197295932125927367124504846440286258257022455481500466501986415247593977903547418362078067124518199024991020788733705894865289959444335441439782809109096412252534375310652740018320932689880234829480080320621126268692105028526039431437854816609236827025305698367789179953935840347567911686078110867960165045954998338599334933533323917450114722059818297419294846462972040270513036068056750040594565830269535774222041536286552460580421877827949322415747656736079803537570502884663012371156246154806398181980364664931001605672926313345044028223202381221220644711645067482027942160060365260465752211539464319273932569086665332961209294909795033312836357641067356834610604168623184350979739233966381929241303500233986761603799003165996369816690541669883724045537214568554871445639359567279845247958393118991304545217377223486198809746899130017830962990172444739193924811910156228245856867902557809669768770159778067331799622482895963978740481382618095591191287670913571176533946717502820765911622001626881000757340612286693483511887885366822930797603486298754509170063673941682551772137196079319226157143656192138646065913528519421490273977567214442355451585650111668251638650675439128236663815644509183753847256508564363962364988501668754193717599571958769472225503814161293584439512299295720847469479738970555575498772837830578074371202670947403948765679551164449303688532345421320617530810890999410774565057395309308066261126355425053356745191155166134677906993694509947110149337276446487979284352993471641861279333345509476259186601930325338462818865464125743032971542149660036561181685404756328073684296939368284926439098263358966608467988434436161918421202013126540899752063248321923366474731669664487315631710832783910457727433344539257341192901663375174316157432295735007119869757011917901387444118997253395595075316146068252891872530180979836036072094169881859427649314437009437081055765058063351098395569037232599182015743772590660114070858354410269839204229452706093888419441613577097332901586733330215705459614841432224487403562256304731648465632220679671913717383467589129732786857618770934838536364673727012136457249866695424719740821986005132302466625098399572323617760746346124905775441406922771930038505438581736318176397378585985631296306199068553826550848223089179225596173194496315433068655864689027109589546452728996901607414912598031042285771188850748880721225371453029661553918570685293853486876958242914575115935216773512431736114276356456690812900895650489884064690981981056635789124024475050188274310594255539095535578658291414831007425767730547990315760575511272473635177006899129888866169259332782764590619733523082634786169387022756149628996380355374115977158441501488202568011331351633089871210986379702325452241866529215035373499967805657199373969505624199655569112632484661016834202162439250276568727118866263421823983392083038039446079319546272294812984740062017546892052398654036364272657475140229622407682776611416226434196150168314791768936163657772860926640308052976027252783373644161618761500423808047713339334794984172813376413721146699162760411294520271356137497470718329367862511524209077168993863935791082677215422414435055639053483227332682842210283574945016167244495699625149570294583420072890495198488410851184365981118929328233375569907610251445235075685542157003191534428838537393297082585692756716574712149742037526584818105651111942095384500554271312076283689142939421851611058267140662427996692737080597032940604639751521367388361511615781146008388063842712263829147468967091323976674091636541450074353072795894798476547702302802564010457635227754356527512636089235342480981765758118274540546572964299562483666230508037111783215323095615259980674721609098005641835920737366826793651252046996761332130903525317734914384679806646466299931897037620282211855649359763069907556155243919562299984898704053441079745553189155826212991928832789246138491914205722876751063358285564971304224398769410724102273790680223331457631008907529319371837991619350353869867744738124452980193484929639960222410822402401273745190092268863756705349176928805407012778681490404502732027159178838364731876321735910124690653914113403371009458727154870400708790446889514407019738592968443193406323156373746555104484031435344576044827183235900803896402777490876744299407997823842768539046206721848811227980969164730448201361682589546971644938000460593391268802069272873456206825150953745774073138106184513535293413168576236874768594228974872970640297293135495677473103965775449638170359736847637226510843746518502661753675300256364313581152673777377943875516078410045578718638964160822413821025739453905467880079749453884457367821003500034276689888341370551921088941938048423414576254735800248136645884780142959576116647542392374602705204325112302899159084119730708011815536346958780042490108891966081095422160116151994022706381142723018997159507209632849911358336095433090024123394687165156055781045353158876582081515379849203052555644436923212865607625039316974526764568361570075825904074791379857330746000019840503525482683286706292468940143056145234875921811824078948494669295561047775173099972248617267897422304119662926111634959458198223079399685459789356312922259532746981312014860767427054466872688123283168471535066847299123660165766274150593331198208026893217383686756407859773805505357610731721875394302965615791311887209310579098920234875593321974210966509072661711807229528144659306906890075715903211948007071100288561709516173477879899532277191529263615939620785948646631293695147440292455405868061913846420756742887796418985840977427597999946441201024269096567026668561447608213358617971766658428310755312309896726558408128549033014296391540292674946171542797898316267931746848898640926678306195496750560212516961665287896778348084719415402674894734814699181777776060604260618663639331266503551634694318587821313096730677128438628060650415958488763347719543744458223085757149429319239049262798863686410047741978652932116709664884651885683148946552939363478157720315301421769709727389443681976138836806854943611703407969084250837686697438298563804080449202331871860031743684195037359858830335810942266954826139028319244443579157460549570031318004489603835739412839824936043897234686011740058526668691843979536459770697627835717412048699444790145090899857540398074814631044100680220936161933739992000546476699791302934807785989524628549632948959701083055179120527299596498758836105076698348307749827378060989140501458240388347901275809951226674959255924573226549245498461681344289882212707574302110610687751183386226328929824347379043504844903599487415446529274292965672173396608241421260632040320320938689767618344159948428597810595034898663351877156302767009668943131069927992726141880675102295320219413041599381117662962396025494294484173226851149569014585276459723473892512372579905682078732525985396669731253074645662537531158009148449566762607868609506654242206776651243450637957867542655163115966082212456662470378938763263727745343450427016038377677425794013702233390670482915942048457784990734242766506361952463859964347182729491034056248324656094430422463140652283944585762388687708302543087616181050136909764378014229893293677943237617443301555506599471499609111886812239957893507318914157186312485549721428065286931358921716271561577925490007825140240313563407692878360861336060656090228269869426931716801437486439826184956069724322109449587978824373061363719026638022030266119594771175587617709897281423991243925148711925308967551652380239303577154322392469388639346396627059360265050144912353685438243993389714255254569119173222479321832373395124466124196561415242775313044150978012659953328926595973879488493140033471721501426572953088013718301675681633614312631637176207939962647702964190763189758250246830379983529267431192867584566046110096667134841919316760550994380448152492573733684853165551185692147304401492662010085852260438566145411117759936829376840801021651818226695666510096410249018745492313755035239579955406430821030300971713309537332730048675769273705404731860744888153305903639885687918129956720780428872962743467525078356329097884196832555749501422347150232996281122534793314028451297582525852367430828762521377920044466231856056103186515930375422790554353783098357997074817319767836406669943132600978904918399180345090468583024237840975668083336663611678651581709344521408785677350043887126562409174714366919626719443042204409413589926269958262709825270142665782302532019523861575261281777273578874892793823337143540317235368473991366594199798786861275642999522925577835082239238303546088681768440738639935902003184321828322171582758390685027562418139019530473544328687710101188472282560329811637621641663045149391311653900129091059899015118209056708924376338746372496905316954014180615645155546859565717492614583672177900309558252655517454426626425273148772069818889117104366519910184847965465363071299733809149348677718428062592883016778573763365946104913476345485125918712761929581446983753452118308189821797922683939564635751152624379248230713560434016000960486553223738939230702875317146203305770278147825351259475999270745409179957688593396054828628260319924154936835628336829840277490040711150283716766038020055582729653694040136192052559187510175042492256530975477108622732875388660342160509677167388125477298973416535456353835123222293377462013508977939924999128775540144467188729678312600373723972528469969338337537363519383583975155227936077325180413457323388502332972597622300314500077812047852483745342340978108176181291344921855723290649633690111904242507656023022254764386393152811815290974029023262307860159784184537109281725496598250323577684048323720967837981138521949622690121085543679303426321711389239892988724264122964236815938642904739025435773925478817273175166978199418458369118708724544526706946396055109312805668511754212497726743436729280308169769922893766168746808733292361487990618093193642955652350381384175818972332663536097299095088852832281134663812036649606857566103612780516070766398537564315021799853174226766075064358924804519763668023719474806490124828428438360485097105477339275314090280757670709930037526461863541648367893162820473663134875939436702337064666957185283411216531141900708751204873682483619141401565098187520093473455021638274020666916207968565342744793513140227951925863728856924973044859344104673310643899427329149037165905559566469776357279281717980588382883437624383692798575418715964849146011673953745699606174671980457853211348647735613237906907228455210895775870666237196254292852538503960965293988066920359268587012794041609398355587345277845695107130863618895989643454061635382378572416827295525961208286758743445512524278155648833871528912225379521971057717786287827113182261238569985514594665485425509468718280305780451625015984716262177923443485030789055824990073303587001643950130232177690547326972989217043804987923303099345087070248414301991031253866378573457757447023606307424500273297033244955013023751920529776867169713574004700710910304058055081974201272420145547778814784045687902951485888945710645787815657145018091163648134094085294371943020451111792717755343867996812238356403253995749270599998952860782265416093340024108807117528403322827426531938343768785072683812013581573621843747727024606293740016541307854293691510225484785727208877392711677844530414334887475693538462566010937290278264078858250849553317536468197068510118093129678437953595466766079878313590169064502145485348085467371984969747276885746358184535339608918317960012990318218260893751410545285640691645974469184426362286076401075222885236312246283580397492290105624959084878192990757086096002604044866865540451190689730306941015694671918503337929675195640641240947892602784777063574210003866439675746311709173943018913789514273142066629694377470161494591668890242927874035630723561841038761608826770100002669885907808386077614329340850181111297733599405325881163995374071860526488763797330789114040219645581168580853362314327568909778193045411880147863067981104355600854641778275692071957724876836277605567274106185109158146794448495057708262229765749016332702264988973026765978985118053901153758992173522596252885167715231562289587702542443032898692234694016641547462742007041060668594404774482005163205949436390743630200058590852032830075698131555644758129801849843109310575870487603021621563927415971725898699555402546462890666600091166258894684193266350198037558859292603560112765179304090951188982749251375834507610504789954563999477363261904450188022455927829017320726113366764863680287913909138411578228715681452168927713307432655422269558240767571553550832774849637187765521492821072041014446400124484635296179041704024395450013423531610786855163895750217155585778288528685941914977104146488319514883459999343475511352005407998446924537622304605868243053490869026236007166438151241075065042395665825473675092161738405013768611602273203568547529047421322254196099078188641082015931145859641226085221376942122532324593958663197022784770861538174836533105706045902398416650590316785506216418782954268339781290288815914753734465627853180488069658232196511228924130796495890423437661365554733598438315816085233237627317277230499891471851880667523776315598957324759540712152820666743452003839294553044719243030967864989413038695395650032234914357536149820655521383530833994033893261860622348667657620556916343353973617893048424081175935313371029893033999381520706233565486515121881335181245607301542424594646494406610200288877674252337599446006057000734934297849168652290899884926732897977479208153228634036036919020588485371790460400495543039870821452952676803525055265031973602006651396143834715918875791170956454837769660595877765745693679090712727507167811529593397459101648263575841055774442316154027754207761864738638634001368420385578537498644724453762863792849171775356787863488405657759381990431466768353235481823819079051261430266152396170943023174022237167918508045456168051365593365432882456334251231760978942409835597432492035259197677972133019373353383621017251738428535985712913107051291252770924883095688549997651082424651489468358518972482426662595705512788019088440027911806131488248255196909536284206141504186404857114828276476662008940810892428905360468006337046914648033915097929331529950119813287896472219343665409325599352729301110444693897552625674982650789683120206527068256137446101086148222204778230355007791064657728219511661018013570810924227613546628004903462002839269962498235211295097020102815936918817837066573582586065541704289543150160238563573723786003789424662018641991758516110053310479506547127185538757372759147590407232663209750891138698412274367003187203758332897259221931182260544637834588012471122335070232276830686916130768046407738144849395100986397158261473342133085153679727457547334037681727356398580762205994580394172497577655091951659330304606703394888724998853480430636152054885120723244815129664218029543146865747293591329749676155536977014878683136194267981033314889092212733030650341570628903485004756059266917882685460218226370164509121665090357280012861571836384350764846104004721648855143573926536458745872153294549804615214451978797248600765085614664200151632500064802508838048061489847362471438335880016543463333008930794031025487720998425214423810797130447047039593186715429584721285616942943544306377067471825777393945259075738023952701732848017825507776440625597820188457918526908279127592768226245604865589107918627270016330021937685099322802170230869712232572501765540063979521501798058113156228651319048169655860120742819136760324185525937778986625438326221937041241905306101886018452749756725565364487988252582580548333056333185527030316457932922194944072535952277573979825504073252185287843944690198564972324078300532877546509630297614692599954392988743073704387132690777568815603252920602267183547900536948748858581050647657889467553380401685109537953762460988067411164789192453187818726306803706836170437297534378588120909884269592199983279501261132657205921160349850935478801705059936147590769540744718781844034384131529246677557339300325117647688242382879961691312875616309941473031832922497224482347246613136440699342947142376011176682215336763923347655332209048895855958484985712265243064191431724566694931414715552041548973496113959428323018638354312142153465243098341895653025233623115350111536058094415447594722307039798165634772066452165101985218208689413596732693686301908110892192727537866541184998108850076112201228511228513249180320859604794873839836144035111414387000278221383347933145586691651755842424833448434074726508975741433750260501388612524843565782676867935273515939904312645478407624800097790330016555562284452820641704657285291766636511639391363221660650170849909858600448687159516679952215923969451706726764740281787221503068345220095046445677075135758606909262988319539031422968314401278312710473015660953720013498988338761480994740688193078182570812868903693908371449082738404188555020301894718704032393999745495104737159162676315198509268540654780471187581347998021272866266203119901740664818460336694106330963497329166060409414586793905981495099453250830052030849170284108799509219249328267452285640117696474306085587758850311855227492358371842804579489941515204899952087193858489352159631665365477504109504458042656385634784501924550379576644419854220070557776143553120484013686105942958899705168701030325203858184249870953687940083769840461916193419328616688739730677171093750458408252684673959086941007906690130565370009694461192633247066360227503557825644615816802250721176107422294303364653764345964722059464312660530178928134232974298575737495530431222028135999978958599820387539500095609156957188732429880431096116195746734553279772936169436021918806373637592148873057243468104781082501614359058256659725897690962512102654294694716884246112965590645998747598375898620599754788595877824102749785848594677243884819384271392855922617605237407897483908448610325992600215881148949937242057558659112861967653629592021281711524184771750528493399655506987271889513384699776671420081032863201018729788128124364232226085208686625033245124610790057797535662786063941705605941023933679406334811134571501815026499014112377632273570950179899677376542944726346465863498390288301260611630894900214469635586822771664209029340143268484240734583228257606090778728381049189108393009281496621512516452715812423344850894721555876363150245111193665697026195894883242229008205085198797619100769179823692974665306655908351599356888636986838812730131156660396101982769139924189122778812778630751965329223485184298040858173229639872700736599389466895081201972404037244270501064298521538604294881343814467622748607050584905493972565886192285485207275702356199744187306373947721493967483530598534735239801199872807551324347449489580725032747695436303490919814045730701597645620346569922237039876523544997146819751655357657074002434743332813142927990637148061480164956594598650542108059534640937569348041397715530278858243375338313765464031146543433819410980492863042375834172683673338579291100239678106077327824253945874276351969769284808144382187392644864606094665903722757941611126185246658107989033358350852768483141845082840993250282229383945965368108400047838389117721899141082331547719423695976710427075520440627363851554065432026269361879424667978034375900618815661850930456207377626630022163080731854569062334361613182132305351718813395359936824451992278000725450173033425670881558741823326251699433203563063423716383582988025896025155428030850286668718700735053969667054045033965380851367211389556422394292939184161852133148308917178710519547598574220796105973178811918506349955266078811207427037294355875089366659838289603070405874632559678534053442559669404712794721906146725172556167666911995686814865010123751639111193535061674304593261629849242518694883711469523882292474979417502024108734856118411111284640113695905281900820423779750349413829451225244064601972000776971664694232300283495209638788321268122271931323087527259912265028456996771040179517207504771969064347253201860716993093377280676742622589565353507769219940375667838790161863743374725306339414134521468130549518342710026225622552279899705872170483077631776335195890457759751675421394214257533397281260263548576041750614553577639339364549205304471485615423260883118903194512688610265757522129794046304791009011722578376099940877808679065462374530888590397533205919051396836474927615742011395707842448090435532886687418998165083448681214226788509437902515877148103807357337638479621581885141831200258401657189206469455005791724938268797876259912929299369589609822919011736113477371138290422770872042578383605659517247066023860979668835537914957863538150697348092917244051333053284621654804186978959720653906491761328516651933761155562703303069731771449276064801317315709893316306446182098577054087118770232457638934539565113771064504127081286022810545386053946515197137825085643656780528534595636474397492623486414857680394552403619635499588422369409715858104515364153836158916840357265561498249899630195800289286968708805357131011578247862267528967970857778722812543558474790411174231778789945836981632366360034054378307623633566553065807714160512655742094708697544455774630621676673796684427456223918164413933011848475900030460555029403323475188617639966824204566358617721030788773056462139972947974258764156889019565972549211880576578818975998611575173422724698560165549802708983524887449041640373278674048778982864189548817202540004182333346712633776104579135619636840845242463016624698867058523197247908363557782696641244682703700930460152049269670510550149198346024593885174536464036287050269866567696065484749752839806064657935750252748568130037490744190247727099727228036624197469988673391504454828256396310640206176242515927909252958828261832653053146706317842277486350576347771439301771755941343071168398662521562872472806935768549185750460156051611210348206323832651186581705364092579195676352529437357159345466504563269009773489134313769950170080680461099473073038670917835220045100091135281325633540060930812956832082931849130849431741195158327547713574702421349284000845849661753234780287736360588261199277194264094131615371956651867056451037071840668672855901297415224622305086166739023026117219390956415336297441872450020431664797755918039471763598121680321325572429816661709473833324798922273838037527100098119980094547735490824701758914751470151839588879832199367918420099565499836712260221824305788332974244088345558016265430799037587747037037942478617651010043942790223613451365980874967754755446620132762233266275109790826806542431765721486807690957655442258415673974798448733611918198207359755757767867932633737206413635698513975380377604316536244043714411095375211863478090363146150254027220797635793155661552900168575944819436957992960919747142384955448269168271175127926641929687671484630711138645853366330484464547655977871859572607146281654467802388922133957477211061072744872054328075724646055491077901391276525305895549540539076694394057889144337659454467159933196555680290965208366271676553622641843895122026299375507562639100057519076684060468948444394497550274366936690999899484491046351305876819188380592440786971051506028373547919580009020610299745037723069990261749152113233618108938042897174896051734853575155368085633357158472492316176137426479951047021321673752808584456486875548469960642442432340312093756939904672772180991014525056891769020125644108993288172290138542456936382470520553031967984349075779227997378813210842837486609172601657743360179624103379756036728147376250429998139339897131172382933657677278062912455954250532775123125521152051100701495602320880833881258392731669333568927198277135458714890550400046182523129702972313894502614145348683282113089971604143310437914804207788054766224391752377303541608903983922114036308428909248404689254165826727470637162624472353229308213088408598884534479222670045795802712510168400726848789735210671683855222520877049084427598753376856969730655381376031201298783891231045816113378017124385201627543918814150585837816629262975707206612309318593609222186345860015726226221096440619264280329832778717061250684828221910321250474686721540356569889324595084850998004262150612302874206724219038357138045656441820648015917881906965516700966340899412098421223790022527928831063571723342614695969972330505352549729482336856065279703940203205180189890532475260122894162009734983392761392073238872238222752948907293184019394498433725288515456370834094463524611189399375196500573163697305267943191515175277129365076501991651759956084946691228469140366930449369292272891261068836596648260560445969401526751146704465893585170116565904575321180051332917194802707975374920597818230841185929886742153717514099777170946597929678825254093431215069108528036774146384549430732180719760893862555010834744044075551040569683069205420750146798945182817976076119875941624751340606636381283217173097161641047195294260991610678794770825228173053476094454921606276117807803800954896830967334007234233778039475807404992667249317395344086503662111660299987683032314564213629227055194281155950892921926393030013062058685110387449473355485252648621115334351156446071927306301207178239287217253716420718441638795310773153306945557342483057170850231333927798560120157332586827788777800291922090525785172469691961850140867712845684212106234724166815310517145682614508969722833486447836311131121401044300052055578050863108710590312773408149213265751878360065683893248994476893395591241865358455972114803369519169368818056270886366762024585897645203229330900754522219841120107453211850990962799054326206811400630030811411737969889472428356802447863953796433411473827546762262375836992402033673689841914994183456823581197120056425028977578645250407880682446875717566997667702001967440395054087116408654012416827725190622855144321039544029608799324482769484104046102435858315592345818375119335833185624746017576389440730920445155049698714856126533409271113323936198458517665173317023519197888130035102182712963957789286185046471867918023523768073815302270368919757190697505160675893635568386183689254666341416039475916880265859844255019002050035981589213914769314825282460381081641525141580837902437787474693170682804597699508325495623072331451933193274902319404578808393015563050401091345492377847028730481917075941137132100136418794506015722369942349570321825388958999771247082792178764968251187973005288280057324198719142901037693563521994257733979057686499260596627661373426775529263850466305018135809476112879617077955283420533900975268396901173543669765075234779528643854797341783651143364020156677521087008782261151659784934677564854245268919424245316617434674715664597345845212136365236526385547172686585262903935436908423358652548122294413303314704680709404646119298646798504573106763856365904718587305746158413108834210911943023657706140617361115705998791929174918681648190295106628654446283324726620536656210413105152776120610202411606852892674360477180046119694781589362734337600607265510545422199841729745004868204134409248767385604596318556328917762457543607633757877872881832783244281222431401197150637360897589302012219397894122277440278966948390388709563403432061243375040268455592767657629764680762125788583728170176707467559106762126985815524794823970074427583944737809822525890646901659411447553674060613691598684760120230652002630233797346649085197991540426573900920884273197743395686229186569772190620351247457466311470789785058720865375422682137913951299253645837446812902693865827713678939965021408948228056706726899714096950456013287860753551786630524799808122297670522416057694850545228004501926131157406046843146958020709665371805074082476862462209419785574319017001384572361406752683933382491239285599547816610962995958739495043221058697258505501984774023234923837444723997957413026859420991976236161567006107281328238948419489237901142733639912894537442174333649626016636699186899662020875608978991945599345214621754496827668525105314376190677666782193519373864772620248630503646417345368718532004722242060799354767288429566332459959428566235173535068820670187159756720128867416815457781795634566336024537168317845077917907092261591955387481403456505622746007342705201530085108937797535248227886142933578797283638844684252218310487525466611477603557442508405177821309348542721375856658776806337841478476669098298149108649984265256697135512524909876356722913216857019291934093712292496855908551185600791182175605374400306596153341480379685394304497619437972343346337336976060147541550094840739502919245363592826760297045187280340437100013303061493356361394416555588016814814165615263736502833826873157861050409419988373516752666123635148580724307395803372196565151653339385382045913567215416355882161994849680488795557241184374433726471723752837421666501502534090585310024171045945116322320048806245026822123544272910229733393054564760163733740526801605506452013295535883686790265111662996231490337494967918709549778111549503112879672625539690264609649841727065920157809327656668133169596920035047736962271581186273147161937718942275962158617226848542721634801553093236642231712341348602185666607129057295289397142133515879163521661449537972500587395072016412629797224390308809324262628624733942818301932226040982116011390910409874917074373826526221144897702634361611681157877606489494614408145895355816251003845294542495194912405467789704584441301783334467408398315874268095545856357924319593817863597362588863342885124696630784636498432612179608192156236935144802558467820965976791402455961764862070019027403505842407846927649336245542093055412725917718966254380463544775253288292854230586582167213322002920995770220502930933368834006929839893072748347613481794947799844784674438482285858664677747651894783889240531408980160129887597370185707889964255630643841172335818281789912569326451803551240978313026494496665822140715163895395729951548844652834972594164536123366912308158819555777047797323273903902176604843966852504776227016540553784571073567795562525426740776893352575637726039109772075455991525841748867596083948372731859785469585987616131230826579055124207144302445280214801569839504109735392586975860697175568341401762097581618858718097590391360848477495672181994539351582685799448407482586513031597456682050524777329611395625567294657211254696428147058549125469789401684555444528534000746552227224887789532889377509096437666669528246906706927997902572589921254663537803277262731040265945796111770715279462252377433750444978102239722527569974488919575910942522797579439219331780001866203081104728217322454083319611290707782029059248111260207004699387277520768864477418635180458360846771256871380993796001322858703982048875868061485777469948044138262538813268433534461614082662839662994112971522186726950101562985344987079128850368262192522972050765537148540986111538783225391378418672669652155822633662173102102705060878012508620373747863767253890103469579919068049402708186430112810903779196400438096432776870014079826399699006057383738702991868107687856971987261195167489462778531317245946039511226641113001169081549491204703830040402806825556649422977027239461425052319468604315239656706875690465444332624808689149794414116046223038752776807379415764621107140174594222212064533636728149772178690599625900651317826308547763370785348812898839921839519425484272123618608144289931213230214360978669669716688041972233101962696873968285976791619223242655163811407316494870937017167611678843658793565577197316783638626990878711335268512150351991756486683966515994654240034871138388081761214457543926818957421477750420536416942337959500187917014171669774398447150217783790667762099198832572490951024493196684848282952290176751204793018100782596616286915683803742024714268312324359770486653292864418610308495270365689972605254734745716112744390834739690605774150100060424721186749302261957189632000814259398061040011442725034973102640257545398046139061220845451009971964594202856099817569392941293986551878646590161656536348149477147474155063779222008192478217838701353945099091468513453061960060733463786304472878928430520803963306449290983783018746435372899972000422994219440594776023230280639008143358885583057098152353929874949090603765354705784284848742877090481798113404055078471915675936203529540341148024880537925813991446101544617919691579637304027941071915700176242516096197907107106133546781558693403865541042366621723643403307103542271461060019480304126224159651326008360646421234096628748260710662879337965093831370825000956555510721505185107534320499546945116848776004836646090775800281439934129993281025710286758087163543953913558037595365493516763796908806082187104882565978657659008671826840068305748124121553324673599184339100959659802639099257301932801440340468619363040380489455633019202201896381476928283952762555808146100066654033034479804630121873400263106571653117333883509113428980244086751396729507946066076906053011787007457155408684509992793421031635781008190534214477285938233775895952086849016023299317410353806608692605766526191192509240962512670183114210320698054897381375139616067651198004290871960076750047776816543019669146565900083176564423943373227266165325849696829266143999216011616299422741947553587452386897475169889804766911581142476780111784709273327834429848946620298889115507338861472342873424558530812588438102872755142734279120271793684429041671764314404216800900139008463246201852220695575750496041510612832464204705710687795828359441989988243927450357493455031827931939045758814281017284614551936983413680078418165295559646573416111445828432729148600317995295785662808396692686670555664371065830476952402490122520426583515825057626864332618133816560499814413112297683561228495923365398384514649125299141661736146553928397231557196433588191163142749749814943568922056429704627669903847633740796512922180416185785593861381711785138577870389725253015156693319414720570950393495455134032991074101346911333288541495467708805082064652521333651691897521549564755468578357534892972862981749174546069056883470260383469703563292516954117844370065255965947351119378066479400097833491168772219950798747329338973439304275454605175140553795040426987518957350961916922377379496334169024431940536180016589357213564956142594678674398507330334888026142018731754088457493726618532081854881984538893764635084843261909360915068002094000776746659072432992037367040979990780721931637027187882934753966294972381266419263505749571658517565825299244294855895575254616938854278917509087881122716525432569174556220225905653903595551332242564583246935366236557030334797545246633350563897609486272356519174710050053076077214150906646908186595288332557420036473781632612646550968321301934727057613911177243532511135331073273243644470577060235017484249872172868768164411923740790763550227719126937482581738180712490789934629174255909886208030043118869377339210763871937215225538583097520810617712482812149026904613514293560895216174723213854631121275665365130754005930911520384863497109026763553350840419631864063109533711634015916538993630664446174824795345534458748683055561524677529713887436742370172685201295538516454816223791791056345582534061905356343295926516138124843941328883745549440702769097234928776037842513507926289508384323629553117949758482785958596747404965199627239537009698237728226890676713163313182535216288428865194606903884547798615215134009918722075373140722354260285820808421485822787684284445791306585001832519698277353746111208095584309811912784498331557444878855525907315386553775759794360253637726161954927917891606897978834974810980911941443465061902605368870930789534741543280697099390745896825151526821780169200197875327398623716815009564285022514874609487359655095984414781350011071136962392698334828978619229820289788444149370941886654584793206126640705382077170526736656298319270686527826481771768922622246974255338721872684835976180701320273570058468870475564941528066973474519487658017737738902057872172527670925985662045195094058941137859396498797897950335132589557098803346624658172866912730084201458295204606340613802358398735282556603317123001211269751945296384044999103510883307563506420326179426486624010082227954185041795792306556952432499929578712762146391869089285252907137596532065467175762987327343785493561362869179854214608295759435320649097370064291687157158478131275538896846718483359397187025670907060646959828381986883980211947860152575984518103919046365409257376439702380039311707058866186240053664915619336146667096429255677408603192321812473007277034091916351871914419807281338419725368844617147618268004879016935339270113407430999748124296139463407786525779093688413328896614960946947790564207846972992702395822827509232425608361371651567762606140941397071305235707309108360216657828629405756034438564798552801880566873969689165563265802455604839719711454372556236938423925841541519228979670838058895520044024632609696454767783738154018906168432095363080688032598707829456899357596957840530617568874559865551078389120265787043255199032019903484227517384846459278558793615583320871458165071962123996480600293265095293334603417264975211723250263837564664216910113239223708869164654753488909119673109646534134030640883846596657676572618674033550953998261889316325093528683254578383947825258127113505351590138277860270218697093841193256453523259804145740809387987410929643620557410986460048641693380862947492816468859038754948121463562878981309295816733656355423017202433537119215731606357314977564871657504174209330198302070846532807522169517872538560546870797693572181737053484967106898876502182676132449806033140067028799496984109095805998598573399444247434635479369982004821535764659271215541818817691593721049509014861770778098159152142961672204398567390897446829413374898340233332332180102801078116359995574943247746581589670725142711382765604629447389152088848838543594950068611176750739018520329534634198026317309639656010482396657527087557717189784282432204681300278503659726521007480706310867669823486986740728100174754383556354940278515991992356224051098280798978605436756729557467554484230020361457003644727399940389852214843943517302864557555125092304419891471433681732040214958306362631913190261418728746299564971991776810171477567635052949684310354822202061338998516177699505456968833583381425844295750816581986677546310004011494835915552897835370223778409944925605900422050212120391030602073372913519837572597265148991896850052282765372134195012182431536559128254706248604027776427822687146717858097647274096156066373588528858889506812974671569368258716251942538623954423132326998539692298421710860962649697775615179724558879482971933249149545622515066682557361387079888361618090805730173398193289771910976129712473239507567395297237115286562928913701261005213090821428137428837449302782270039811322866134360833888095741196541139521986219777514107626164198168649759350366655725382475812374243434382617637699661724749167401751077972427051351280179951247922648496880520656547781786423496700823047644403870932894437344128846819061547487322677450885398552733802576799438374942121365161539771698087556320602690536745323664204717348525468636027055218395564999076888990079243417685519159156059389073730143064993250051998321477150697604260459141302404423629233994369526012983051105892004456704550650735872323414972492251454449400500441820139096761859600736168319752472955033249826369943386749037289693359894290221418736978386599261251272092483666524875229773399557524301896843446568767542520598873764061087570951456753273503369397156715081907606858479829409563314304920642588032078283604752927656158313018157285565086056723843339514558351623063960994087020401698815872055197191893891104152085782652223257713781014327163349342071518319929072799030328691277934922896598038463646544911536810006711788581120391114889612244590977470950818602865510958984830222653571030547998001512664847924265824481745976746164147183361524575241139493138711921236677401963302998735820920989951698998743246318268601500805348134562085705669924303626094592571180851278941477558096027565129391462793337997920122079026263455813118247514767826344565117400270562476250061275832830579431221046107314276378339224040366374383657580824324968844862875589258940827727630438083833508477688172522891236910724098254620141156471007915938093367454220848307983879083942692764340520473380398227899072495327881877594499378690209789172790505472018687149286816640169603326175398839567810426538306001379691496557697161031621308811047792977717777497066321490767384938734767359864218331972566143113518138187159212060925380694095809507127053265383275344448475653655870690770510539643085535943198115996431640612622617733924590214776291164780744007095443631754529778919588643019865738909293416939850176437105398408510740749222519683462541752291707126717136561195006892386507755495257789805289342797565944229520022760551264775642411495129172438103454984041882084575277860269986781754022270776146332263447793555750705671922783958500449217284474904751948403170503797454601698389498389258959603442380789971300311964231627286954733611450066990420135277479360922927263132639641448841046434109151666588959868001936008036892358467966599018866931677783883483168332272080015126836780529490364140049630765302330608284251837967820222757668023671789722866248587950909070611873801745111277160233613308645874598464285460401049770736918038936896239233227612144951791342249440470773364238653909991158427043657298395639666101508343442333374190318407042222027643000433787268975710520115712902678218663732853762807084350589886228809779709186872256695551561580133394723296494174720477996232749962773319605179177763016985196787076996444207824766325382629692932916573174211028478609912218747949831105095599588883490458204963559926311321364936906449703016580557303490017779682650234883469556980797156535479518355412623682129332518462110709361108755909982340672654521845366443149963879956629903911080940069776682626432699350841354678214440568707486798184229460135829262784093006424932027945510783247857021875829641029179651532359884015803040282653353785774538400679812544606263552944273066528987071073873446240032654377413004678294658236000615014068863522303409369111823582784617830917879743028009933722430055549137037383541374464584046405919774351521582662375482436658373713070481785485170489002460963475581914275855609928617972518818279891262124491391558924239080064820580953753516240805143579984504122610080150782011716752317146571545679035265665601549451994569776987305025327384480420451821728886729792642666229743016327046733375229113459534640290051033918160850123652464246245468851039542256417530555560728559884740644960916148723147210335024726833842594406532135706504091933691691807518114265294457448445863498407646900257875984974932230380392827483724982686576464720348276141322558495882451563573199830979081897712371663988055974116491893044952536728023843022292589056780934041412185836325379351737309406623194030093621909305396953075307223880609765825144582056571903823797351260012431595683688385597664554992149621930324330831163830259038364059360566308740305586199877327042110346359289724896992083825338504344541364679623730213208774059983633240037348288946356770213155014968760120307781707419339094749770945316307726769046835924449050181467487129873560344442503293395861710917787751611826084189016871932410746092329477474767926527188367962430371514681909570212160457232180704125739730732485365977155050186824791498472823755665405169449024416726915122482839110506334704975616062071312810618795825903500414015434251708652015999294844264899503021025503680705739894120462261947690217181189548679095529387184859428841360287513265066019572603816673604191030474680552375499902041669750565694862992838189338636152471473335356353705597913807398916508195947896588495878285109539827809036672479729133464991720228923377071216559771410367668895194834431481067185162142845329756048783018770550514240200719353331605144198606511502405076309992484403827047232397013199689619859233780030253848930603461619152133288527890753582125765348100826739409351827099866556192139759062314480188865216635517663455141299016814339722695343795542432027550152633065225899668972012490803871627408882450742852008904531370887581935668200570538801330876829200426555645989919767264777234629900549344669701896360171246000031394187465335426647066659128288589698259067348325525281970601309517061129242423195513360921783082111780745323819203671884195817849604630460902113970879584688146342862110798177764313583219600932771868499226933741260167766493563391877630716152931724216136907679643258822618425108980493054233200218712343084913070855256154498451375040441790601411954488312858128832797114998245801607926282541414368425667329567131289978960643153868791466188496876922039256828907868405620560589150338470658197428058487103056711145487548088108900970607761260026638303365962676604783637120618253056960993909095777231475406873820381126771562065241294629482119552021280483976907990360658216463233937650158745785045080766051991600255874897189055342682843442008046875420841713179129178088826690165743486261312468503296230964393432213159450333499439654116315965455337872142305187764318128505938260659817566894044429087514081618327044112155457585296690368250003842057897916731640466216725375229394987946439239486638089301246210966872539905782097164879172730169262075885488410252708640203874557177733979215312611691512186921660147781819351778025503706072785745263969701817025581816506016392254134616800002060830217945375739469211344875099878034442868928729684354456575923938489265896874061692037081195529414429648735510903909093899371810179485933732806517938078763019720629082323370926665896776589153558290858188836574734517379864852741205077691485890422257767197751986348627964463031303041487256613153322033860433528076051878679173126854499068261443473614926965663716670436202485784426043649937474344875162143427627402126701425365299885492237731377948571749993080774779346091025612779016530548659714741411998264314429769292004345346728376896438828234217006525718936149437659599601907937078973594914569758849253597592631732980624260224487310023140488943775817976014555615142427248981974304046948023268898831689880833325824082442723675135864720635828392262063989065893749218254732823515255623609321059172247550588538974558608128452467368285738675495265124095610998925051847774118550612445986510846091193533762838034689772222565709323231717665567287746381150107037580464240702291698286163250784947326313269111640210626865318052065086223766434339291409917545105591671843380057952042966368688540493863659142620657315827995678089316994350501772327584587478694402755647840563086417328388815124572568432985298871155961069017354006049641734118382568489763356487829566907995828254744629531212350952664977135428406389355365518540817476482855527441871111218624924639784208262193893794093485611204538681586409098494532861594665290209605997020834040520866237143896117327391410680293263261361227009543717389361522081556393295778491144079648625181751611680463146556047713482425965090126437162441889674527773670186164806984019030804382256021882646329675167641310966259018196706222662851696691018988262080012711098269051688020506748449927643251842347527405544127573272933079233093273648068375511319674937800889711432695175667592491079798177189905599211497217360229869300730906063889352470574257999480793563801607278255150340771271586525060936814493300044478665930786934125411099711555420713402129528353613022855090749005285281766185826859761812945300017402550391664225162724192894682551150432480131678281767463932928017582078031091168597250539354615129495152275930248624932964726861325310881648913141187283588677849807610112869036663322989119932653805365162039623657830903620270151067553669119613329123707521766472028757625355501967198988397118132617956925860306616852219902084967117566050075232005037648786787331399370288574123870921426711249563307841351493029951797986060904165421479806577695289153149016709162601212085491730799231132036642788528043249040656761407648946617493566706915239993695648061803192568941097410725932182459948719471599187281810822838343126292417014880969685784280973101957110977192285223898896993763171864195842307725385253464040849511429731206968505456633351401671718295062647601526773965877082072176671553884617419283003213049487538950490113860546546238078496754510379514917187335094753509790858856181002236220981841169915621699780913464147402773362647068778086171298427575619620762257690895647872384726024849094554114663253298981278893235431387372349263085452859875709541894830738609926639302525802032024087382143062252015701902301841305835168301451279297194215012719072289641778023069196432306948064845116232511891694232800475432436325327793247746307971248804539404182585085512632524673465744287292912304639416988497580311980668523744516095064178817252724029981106224149986027088633859426082522522446933187231496100499161741361359462384612800305254757637069614602006521803497912364082414800855267187846899722916996247115616785875423306656612420156050218616641037149296077840978615329847912738020137733428686022228907747256229885013771772820917394415424728883991138795263747517775022129299680820058851809775019535089494461564411304483658517209262623657104832899072300565148661237023815914111211532121546208300305117922678929694601620861013381728336583708900805315042761146012545239984181764498985229716123785948775290925804333392500240201963428479897067580140292509017491028076005982135990919741629960450178177212055361437992056041852975359254300533524769097367406456008076851854587642380625764057942893102668693561216071432409104112090162938382932367755586290968459089020770988498122209682882522491191639678548624707032842506938899186303573005288036705799113072934915852473663311717939597412522664187241784985139800381839001828879678180762284357142144173387299597333184965427649750571571886419943416890874533451104556810238208831833631045983827537593995201670626624468090967772841350461347538695446261839715011359758231380269476378502280743920379615486872709569182818778236818481728725516349111453505533361801985801768665034469819641539464049295952777607999831094323957147809396271227165467783676335056311950308149446400316470741936710483021474376516807323105210491339764941045304779876547644097490634736577615546934828808614481403366252208582966203487973078826013288205886665500192486504823051568821548188649863417659747096928931380833994129595024367554847468805776347723635380354095692723367300544283195280223443663640625419604341475474395605920177531515906028801802727427285674626065254061579969583949623893095834407900098140071572420016718324256042348085429523914467017749373534591069331952347847635495477987549670754201788964929475992267314650163387034284132487737420854151516206125163240945949455745542538829089391620538536802286284628061168586730303640311253990426455039645059249416942476090345464789575982454771693613132351570836349172496809302532043764744826003274532115103681315566749763288296704823646892403220460887998038783018027938007847550504737823497985746136185044578415710690737553668820330896716742959560521609972240307843048519338053835416837262391458530369581447815589594637956036582005441567393149231979520132718878546815004948375588538914562933536451451298927839547246246341036890820095812106409107112996394148425173093476004900868409578261521895028485677118817468468741645215685507113944720714539059910572460887949403934925053529375889073725124280547323104048224121578758288573554792421126449650476688595319265727663061612854166726755051456519298185980580893618547160522554161650187912633560200696999313339508923078960647886968621116042093724732970796481687407449618553709390128061440145673632223647919748610689049905129281381747347448396629474904525979908362189887206242603614175562809568347471070207466527461535211106306880337670022815924286437733849756414631085621012533959693144484591896514952683956228277594713241172922188163634444576415975842630466069929372168490869905041916584721255222217473345320677651249116107510788750553409092877696903996656381265361472367801561947924287240453770571306813458378511187010622596529599873655092659901119958016425130034124186683803485744554822358107801940935056124700086307822464375229966065178811914384176386953412661324256094629767796407126646767303387697453295162960727063740562947499460281082795206910980700438940144428865330682155575477596400007985746312464253868607120424081370042007653766446218208492420204283874177935773084095922324575174733005301916666220439203164216002508444638206330232751995623580178438056528975045928727700352017164820802446713124399907803976856636033568784452232357092787329544163372231801276068717407337086166680706670969957846474791901661792491345426937755775037380492256694964326945879297503496530764729888177580844735848971324761247124720563813198962959645023370819673392094297033936096492034015378202633610497583054280826930866817858810632899346629488601669699359034351590258590669948476460330201482356965146901890122077588151740437195443094689420732700809967195238463083551079913951148779862158891687497213435996873455182050173280888347604762140564179906709057141137380851959660827943304770701980708820198627280341862173645654729375788104361178678732476956787751669530556244871020948556239849277302737354866970040359165410916245135313867357478993503589389047028666499651558369969686639981265118926067108928579452903134339046333045462209231280059401660288273573341640047192150885794682277875652398317169411441798731208484272143100603741305636950970618866656986995075126962632331540264715407219448661653158220709442217284654973605146055315118275284683720724042835709387945125393310897667821625306705262485377809600520348436549579573364068809930253366700573811307916554372603924940148326457672509643206641665041845373557690544080244940150997123492061900063554088166680946462831134512665920519113734891691149687122334601484482287511907268734348892674564736488185086710792847298132396063147776106867158642902136502314902133774052600790000437910350890188648139022831321810986424852780238230487151125659254522494155512142701441201115568701124822028641226758658415720607616304136959473945516755869752924968849807927209120655600203367557888833595483412844869948455977700776276285158356032943755855988205229601045030413673989390092364203621669264314748114782832898225569133435906121132126507344434180106251556485967234092393161709726079273049742148756705366075846232346617764084208627344461831454630547612725912321763768341171438993224889173915325639749437036322145654113092759284372748598985463166554521445788326655324951592123343305302777100687317352147468021729959822902780190943875814463562146870422474724303714004976020959738265770525019700117780337797553248243283373985030846108021627545526452860069210816612965280377505082217283654311858470103357080427636681870430057847098587368669529725773582749518626385995191857644967068305088937889388931559129250883497213373224662319537795195115589255799997260181697053916390100755451736448609825857361492336992138193945767613272504661179837340139473160988176656785325750515440258832383809858328075121545784401714446424760260709904553088915979480124398685596309403244799120079181983024978618462734832438643150789341523673472720306659638722356635283483667575234861103760035107980697538992862437601229569454578142360085253131942287006908734205394141928870168457470159542829419024028977470180779291565928147159428313441039223600983935991289395843468998001389301567776910045442104346085326581865904108562202723768355499436011225734459017054567728039173647123559439246588442785506227438364084335324130015724659826164974183590107235138987495312134635892875158816634186221840094078693859912428329092617970552743914860867214262255944362139452585895317277297026933144745877871521366870868803186461021906210926694866308271738352384605751003046125330140484564438737574672608956725688182667576224964708864284379012057404837523989325281781884510809688924349056386671526815571390608331189708975748266045898625678470819383176741098403707580161969774755604860418289842161099167989802980785619928356275880447311613369791454643016459283111992322086827083949693309974792745882641405892068389272668853057507712635199321114522963522261308232272480196695190334842275555664593793868229920311596175057433805917091480632332786650795001691074317175419060054460892265299687629036308568824276064468612382376905932388822354486826350250198950782888437207318549625542783691522628101340500105308926829029620795882769488360410769112892794118682640269074831812534471720743264706635675890957905085637812215359502857294650820950336210469750025736733979316976255709456206704959113579985770226785995125419629573861985785216108226344982629376749854394111589387013714594965916141066431876732360911085599121828024985689963174351560439424420732377064230409144837059419504139581013634430282884156355173186446201871368718119242469347687520759821286331713568646936388186773856323999920643426903205811613239257436401484856113698862504398705659816019087951290148150791551762055592939487616699905775708544973619760556273861355500024023569485570590198769587258655050461259857692878014091976025380111437254869004129546922308153824543351261009023989218083093909395610622084340641212270702556689216155998322885669815201409796239094199185031144822328274855248122489009151854015269138671205948442212075634689579181988720954666562455284732702503774135688075188574943103751404995939462871778424395161673668255918088545203505525209672800565578045415330691865240006449161238728042512320482884884294909503077329155798400816554971590517202255847510886802809627540620858336243024925744879129474214753569099772846384911025274931194886459709899957796502108213995433431186421707262583043323486998247622699657763701181912509730250482570501195855362924585066851244808943719295767476566869608023600348531335919947881744194049655938703782060972356913209874938310678646492670146101768534037271154273296203724839868585783583029344958699916922231868461225586521505443833121445543560667329562203380718243134334676397178246489880357289148319738846595371076324764569967375601472669225910251103020040411543929658141695887649522900791946432798877718125319678814658029905058996615846564535859019693474300280232706393767726635474558132856243504703505054222845415306495472969988937247912965979163614457406969482599375268343666091873339615076314571387465536788757654795958891264835057489565967643172468689271430696787987098079686943258991454767768476317448456528266831479110793828066423858853011240649006623321524402621835344110424463795918898245933824469032376922014868758485641162227950314804494645477965055754233331268339739875753379564139681180732850637201634469824853485541812349143191859190249049943920191224035746526347468051796120633784004192304634089909646238920046636829742251863325491442305653927535247529264986596950114057665385362165491159734477138562524016837957162689100871319036651399362588464687118358633830941000252118310150609465936765843888231638486743650718223645887585646366802030410592001312224193781885628550073953980939558240062185569095301396855219655703696103862222694056064496803472756487940689829757034785071473305640359915687561154786236140704822689093494342055672188459266746402219162833496104336192604366494669069504000136530054510835983789135160154324939722734814916154095461528441161408620432251587551477248105566244248820468734778964683142295548792410587187008298817745080812504671350875187364423064529735302197528575021202752756404270667201532869104611013670641762193386295977896040573255961758632877425300312862656120838273879647675732990944404470448402319753174278340977826551593987316813383535684559789668098773555995817920228928791688935455761311259111864770272086699224946021450343458635569081397648132669510378309140221681759160084844996473983964843616719434620586708333166076399961289551835619838342684399161331603365972595183256713764211728494626188105161551996818912529683545671966634581838418423931175184524680389566350456819461361656000773417000346384994837538880264517370970185672899605909301105763077174289541645814954763014235967962606139562428138192387749586942600435022653670063322144674088011250754612159091022077234780310286273311090700204251491913860006064901881773068671671539880537327565740663755648156882838277770026005151923561320034243489126767026306759954363098974843633491522992631008812214415098021280068600630713817218032882650091882805262600129507344023252688547038808476750608693137598742909883710555817599546119909940693141183278561824655636085621474488948306628637593746014343745351924578969790165051243752761176034251927713908834923399756027830972965732149739381680514573843648884587293355885742121728730554706644623856746134842862926013506745393159145601265956585918000928101000334331473424464556859782803089630057928519677080646151293066184545850035864706890201312676674309414287128569761114323500549186405856498956610082748427265844282430471391216932842470500508885372371299257975217143830193082895115706385615736691441278373325360867495320666099763877650351073788755704448605487414878427205811125475178028735053357419773064066695840765159330558780808601123061755459283162388590657324858117723627195215978224623868956081856357887022614161207503686479197161306024833052660165637745127543185550395157186925069388336257987897851310281310824399161049382988685012329409972626460781333417112056770735497620040047432237106710319043760698632477510321540507622801847441223801294397955498395995367782922351622332883805699747044205126419160147484286741100461686969213403698192003294819065251921318064370033843874228295797182709715440737232982246760108312315073321342871838648881426716249798146969493519236681861228283337291467817546603248580286321298459332061477878331657920559871568408082557605137925542383925935084400620217345288127151469575444412796628054825794333822367272379090640187654637524875265207785552003550098216206802310482919491737532234536580881767525189531421674207307477532121057132858926765361407250789369381137858790218271372385159736326471529329075115171552968053074464522402705101145031353134811148355660012246949313592808456609176378731032335340558171342751175002719402041451591061160192410821962272480868099654952425096726711892130283827953657955502246987629246812036255134375966030820319222838708793362869621703240803379089721704059586380666964383853540490273843894993344482380044901510121316551383315023519090744714260987994669519361837672362032405983027450000496103800253343763808590652407419372250448197443686794821244628612683519029598740312376816639257457105398585613429865994421660004420160733350910713866529406853864263454642107836757935005758328203408733607718241045425004931830892763966940039968343906105921079734524604908317793621438796968807806653006661784127524001936431416988918354047208932320487279182411840355286281773666626283410970639784030150516868565313046657956205044385982023783269086340327010338537651622197002383950089572176106086613437702726459295554603994893036473155595659872435851903633600999011413770932536505501149912338782866548235686329392756192681037561420421148285004889123273462287214615234483668789099415975487128516958423223506537477235929440983570837053036159528345882746811399720952614386071021330315357548507300983425322126354252682747945005128195262479291512606325678665114936542092924110269119363680119071972892168418330419284902103544490303724974038518795696193633820379055103598508023019466151897000555775294715019719062593163927063700399089821053362022626286320314128788972218994790494229583242357145351489630054204777044384459408987478926660890551400121934119847875578991693284305574686328357933056993257488894937264537072393452662973172758604272509606679987018544477619096165697953301100231331186032758814444446301850196374041914528630718961325698528595151573132112092996491721670916063423465538721508564357509801314002738443798979153427028554032082065690276165319961299403818391586015878834673972478478834688200734545086479754976123826347936756723574876154506107468298316683710994534289649476704079593871008209001518080094511877962730981280774828024753251383732728132047562848748898497963195173028796949783131770323342225713398402810087023797442363238127445328384725293234906343254691957090422688386167412424489788382923737568498918494194203599539813221760670245067086290117434517708223131140933099879042829717444123334277780282049035011680702428619544904868715189475867618430720723984003996188993648555575162702319141254405478901360753223894723748630841256301051667419092220471311642213811684549708314052305399915196359797743375095899484493412596026553993174907915926858109278693442878042568812999154975578904391747310992978220802277168636780293240720858649109961669576653865444235607090649762304268466329232272650577963437210687658490952487919187528210427667882423346248642209437687878873146165594974148074630291692830051305619598506208140840979841843759259620572649298252524759884361057146248651943393629088241266893384108943365191961152764708441109547736883357861881974127559385635835322480791182448553580361385031358810975444902257900892947599629324445996471546097530231010826780298540882229713251060598122209564958735646617888522985814736499733320644046878135564345976750003243465404467657958288602342291129301272442080338816517752792030904985981518152084188879977929370520754429385611018419812237471291978904751435344720043940849993361268999415113737487777072822842468501169878395376491489580016056171015448732576265790997806588003345588068214389737577519299455604683112091359596545954440604233161900294542476596937176698563003075965624450884357088093778733964582058756795087940369299554072526825819489015534659409269077016863022981143675337272404580592834052836198974406388755295152898637105193256140531213981829094819877752952663141921386566349418016950222243145163112205378225520632398341562428079591481741021582543146405436371636583191575441856415532433053225893168008081847855525487969791781705200117599816953228729673674068573524901230570047010996375916430322958560358691365956268357847954281662676318485199177887650523925399818293878731244017279546789539888789912102397910170800915710323845864529318049105353329268661819975260574855231756361080222570736824561309898476381919057673860280497733622256382642083506593076084261197303867952354553513406667889800119495227814475815690833286737509687692468193290643176836834714888991607714731849535684466876667515383074627424861389728034965186060437004133341455985038886038691876639953805020191965128151070528884774901317205603760463190608809787926048852568104947796340317562548828392359566883020010148374200487266940711953587270692385319222087358136045293320921120954659675585290383487381173628790206441131349803407720037807032354449126333588687052744824991207207154572602070022390077461484083730899278344819818477903359869292866690096422022674538548006329837568392360906427025212104728764988782086991888046960738587738470374386016051094822075323740507140896265337126448147518329558783724768866611875651605369294669271530089993391056831461174598064252783511505453793481644199215212020648445834633299998534203290802515390432608578565747939978820033906021563699608361264187194215513840847114098611142274412683255083576117784540939308504694111597369613867453290112857686954809588675257209108127075319767794093971109472420689139664948745597882904712621358432823357795370022379696410155162712085555261959739733115164509156384784732654112533121030939778401905086548087184422563754530914389787656586702154978464569667940818537842913503556952727356598438208204619921877865814858144677031204313570274816924329477226685738377085910391492219926224577328350707888567640393252289763140720356785503748503039330230166873545360139969497985631373662278563150164084982342962607543431986301623501553666751421481092277509861266825232255119568388487606982427176772415195532827792805624601045173559963817054801322965634240504144492509407697455120206521213267771107994763667342698170677461987667228795613950847863086207700923025221679332541780891162885344597169173333130002829542215221684776808074410010473480046463060912734614752672208534239160131587436383513397689089406811552291504907007304382881245045199582312553058204684087927641293850041236893216976602663391802756737911846864050897936203869286708384426859581237815847744822918109947830062182335048724981717010628053640280918747379554483054060028574069327211247379543549675644720867107346510390391858284079083182200641153650364108591046633394942875696832083608818034105396298080158902393414479779013159130003003986999554728650120706352177999747861301483620286980410938615800969886195290720558385991478347055457331655877252730793979194503411683817868379211616599741713657489081038782241161043960284824360040302022992316973926076923997654265819253865305944799944585576892261550630960249862892195028312798160304229597663742215707509831209850853778435267621923406865420439775051710482533694919101021248692409288820620257152594184211574358399970681354097712513582967660483052298468243632028556672231474086877777939630571691608998009739486376528764610263694351206451762553988404713614879083737098813397686518037440885633934486855181514293734669922672453447311118283380765795279611814173186060903152755592259001869384881352051823852706285836875174131252143435622606970043003048033251899458983436988788832986444890918378520041547362354036660909190732318209063339366958685427272612287035036076905630895547592821836791097701043509616876849054174456291397831969874299502467986541523272943338829250443044777570071121830577068900421700003673266796524364876078173665545466500321884113460991185611958151129310266089697021276010503261082850951557074545319292857746347001083336328508411526225113615019256150916391260513003212645811721052237836239343913046798953888799014777427395898212671533427770365585039195374607102656082059566193174085350900756457361305321534859048413739062039357963725352579140162344137335410689357804878886531240441982963967320876738904207311561921575804170513267076445887562133127088432747462621545479180407679611586861189266040316900461946857735929642080000162251998711040575862008230780741797273800191350850146202583777208853339245253416000608230514332782010079493728517785502220352307658581192760305050591312370257709452608218155221462885531844643216347688908833447450200543817731907041485492326345049451175763995026122980092905764488808164313379912814617597659074231417969491944680662133538235466984260192148381805288830471040640462153706335106504597528906643361765322595033019003007396948266681052347482552897820687729234211926897898671061368746589656980297536669016296650940721954630492468477305439784808422882415251151750559890859613934670794393876242136433028790166693288384264702197497726785924612993769175448766130766173276770504772419806636839149426578799922242062484021966592132883912936275703457477392901101714362325028076205637235911398644024430474694334089912042299277710933335998262796733060161770104287621818947498466139818527672658175102075280780910043830366130790970771783690856606478632083957823045260241085824383132960947799439982100469487828743632931342095664221805353883116265750604924709524095649298777045209770420071641104454918248521197790657652889585939490695838355580531351746331150390945054874894815264295632161786864038149732090472592308557374363274646464560242891253183545342219083327198318146362846119163342285890189264566941259384955351534115185267927187114687779751340517226310364425726054541105562907621413477874920924377411459518049593071912310190949373009579882684577129789116342143631174292382191654124380299713908873075789038677070965086070045336936494699997712202683124943410138507301305865380527275935723113727285762557133119523570878197728504155665782552444192583949671418885445848638728507226009250757255007953918449786026942375803138755435429167215461904805099620622633527740267618892491222364395770781437849082163676230188277701711475180076234381263048648909031299315618535253569559009666597949040167709664705820326154804763004222150951485776817542078274449423145750150862456894097320998043902288785422889327532573883256554370357589190779927827751485616705640740454985400851099199200765943132886210332944991759415681218211497298448074005857586288162021123959285230756710433054058026284915916771230782732686172951794343891167506546366680928379935441032601208995235130261683513924881569147076833887090547383774729321447577651886573632203565381839803024690751402537088108510098203811605864124779225807363694794263677160013055814931407981115475169096102064687794673152951207335545505835446222879241402363575816778311524001049672007957119336022666454007892423759199467183914832924904608449479686157667954933166509944022318654510744466732609265202020660235545769970075677531260632967370048065646457294896212722006458876958275934301891005867621629782363106647359620457695538459656994777322391241683517548534397632362966049897500838767161934747111060724202485983989544112468939760170443210035445920513691571990768579107796058306198316063872279083281566346789093318720744199866710686631520049868303272861722526274148639922288099165980285485055434001089374376570565290524913223538043196263743096285132680279385303382886296539478075662441224507754871644946913462387295706713760297503609375420385058148733936554396683899223630514507718992549501551857433821222781510124557778061808818565410218924280855643838864886179205583675183080286154396406780961359376058800337704118771022769691064850472691566770041908970572584511330921249164690207002861095455278119746728819089024647552859657375101639559697680054943292524331926735135785717839698989903728425001465779643705524128320454376550593431197768260479431946601498319405643934609538722633477671630950150232118026681590055609867249078491225789705401577221621651161061781389342952063264663429123294898188209643642261902198858366625401230873390072445947121274641298809178414897872312426684281850538696527587311380446301781294645813207588438441994624928539967974824803516387221450712685742850830863109500670585317904113756203651304304831549672208011620818644157572863708448024259029600385541057270254640411672198335759815424026762684584924308374411617934977609866398434862653270675654308198701049986634754917598736842544943229429720723749523285182960918744593327345344301990863367514643034852827742297023648400515261188203036873196975358097315963096863868599689929464920829148032607241825366594452273561771902773167087745968738355949136003680194639881704954574729191482819962156618266405546474024595806006391375237095389434338033167622074758471393005328704942848049011657896430331515115056483022638884332560306031560944178781323544931749747088732103032177981788640068713986480276836680971412415303706072926267875679159617989383026404401355883469590912966363572836050755934285432552355983639953411756627315943512662403079186924336388680597062149421710762896512463896345077554405397462216916603387271272418629855164799592795963512669819162333427103464964266507814761084938431058146596882604367685158549180568745586732458740566948905467218266734268082114843981675067668640624981226086277186231781215440940378339788379832788747003711047789999030254071846430483589533742179012295306420259299334528568960591839240384079128801328438536302718650734158348715362845173330159464232154017448748069903397601956584147913004723428988749641827794030872231014049621095807670942195107099019240206022966638545083306754105638932552840668933273586295288580104699905038541945394084054874439202478989946144944153363406457544702685614229053220977090465279426029448353616724709487630153790811969722328165978126727061454888557859712439981391227501207663428319291421648944828395377124629080505635286921411196276496966157077461554714379669587537616213714377279976320579743942421250648334828941265415315135303116842242766831432195732853730446139021923645661365909444666489400124825256411405205968209145542314768634841139285802641471498513848961459042016515988651331577057391941698246528691068766601200756970343856067008281722828389396327577410572904542878595150399295102674209103313633666141475130853763029684789839615632235255526819737459628562052683484476734695382168194466757429499344171935000882960711118650413556825541426123411357662815778022456663152360682147549105706673013631613907082911238425318677722152936046101509337065909472460571443753127265887062684489397398208645180610694566776124517850897532637537934886543386795382870657386343549722673486616045237000173372923921734751431414148310890213694095475483456397997273498772410850113453673954994355505179840756431043703337811406174319023058307063737304761006608212751740008732313199689495627895277648514183584930120605632790852152153748082770378432781629982400423810779696013440890268531874251842337236713299196488927594773529814351027436887519643280963131225885167484927636101009566953020951599272598315448200658148508977091675725563571215952000581488350660727553874251871881145129908727237961235674728718905536428945031907631104304411797892985415683316202732376029758753381583509751079556203948710447167613961809985072988691007927186368769362600799210966033287642842641976788147808603087720183187878204603045739426530631414781541037764787044610314255235621085447056054649478616376352809797339825443352368298104042484087017590199368067257035902992319861666719341818370078843977187809521861057746914233590025456921994188269538654459969516294819390021620385853278350731222763358411820190472267921996417178146069840166924720181377897575511919846005608444130102223477650959685024178264423629253052963283222916697156772470181978923578662080928726313878064645708908392290516708839899616447141568318930787484994374850236913258221551558649630508402902725378966789096925427332734791468668102515002578250288796246030133084294329898416036464916070770342923373616310524653734426389045690181813272201866986920355889373539718727576511667672410465456171164637482299860070897299521044335818655634622936251136731964310851439445200882806113070923413638814159330186117618800697593557160663222302692803096142573750470535098844195908921964597075551901542002620822471113196232637342194041005992928777560192994196065899406553652803597658152409899165600770886161703007900379765823709335942825454952302252137642026647345301994807159200972744713238904446611520626541523593013398115829802481857259621216132750254272553690112650344295095449314142184180789008499413598017874786574737192595960548862712558513654517687993257274308544790301667133133072538004279618708925584648605425464087638647949202943463212109840122989033530153066317812512421877864038744221127207018197882376401877535162988966430452002209966644389666789980554846245805589091614003905796249998281688286925124257532905405520521537706454885717375356006495947213746740107963753038035346633779244071492243518008701221807938583007237791898672358466737103003292619316772760898845663765574599591351421125799635194335431445739209453097163234802994194624196547476535442121186669787877431839671276131599124387345080669517758796827145595526477147777554122356695027086181577829105792056754919951574123947234189124540142875131281511851719025340033742384937220159554911769304625002197555162049484185197497485585255268179925844426788497888015442597432103821064855664246551914622814171915247971878654377137787020553525206912282788184850111875795872684556297571729957775819280673423231342459349547501532927978454633674527802392653793542194419899904453888756973837322493649325409342374757195852684826505208945115133490663140892980042279701956775755453934939271970197412053974097224741189933729774809579948875156220252034179545537486419586469667633750390781303648061825468246234899501653964928336525047308399800520062697856335510256443437538832417715474037285940999779381847066887238499234209744209927351422907839133576099605852734482013685243238804386242962463386298390191393804488258598330795730606844246418189874956036865214239322183728910132269851193749378996872736746792945309682594382008859843167283292184271374015376233574597111292328350001653833436110355485647074969677771560380851809668522128200775589685467103238117377756961947370672086894784207133875953368462612426743590391208662239481379840023676183963162701458889766100029189385782922587977949257383799005323139214524107693903940870124533481173215220984801901785265665941027619737541149179085656267321162703483832205044303833255368664573893939453680771298850471181881624663839471124502251927885376804529730224486321974738450413336341363348847243028483917685740652382946876245248701403087458333429509328106010998742018798968898848969905892457414116556368007714476308003947473451991461690240036036932076415053982027305770713663804264945678846530622809885790081127064937791734148792511092224824058494484034282795715148835870521178546637309111247879220772239062620712500864161621222001134481713161398140757872092464928478705384153317478056050687107679131681768541749234211504810511836312826485590801000838372382767985046448431890197458333055560858908977718102108847062042728181429079596606849925093739394629447535846340812816692524566409721361942850050077124138502810263267143620521980512140782331820155140298117464395930499223324280032423667864905881632868814713518936814936921776838121475742279042304971934837800038015270243836622911100032706049150177329306274303457874533925353642586640293296955919715539400079171102279835823098048675680865836680866561838951816712627566810379188655658010082317823813744422888727992058381271958668072262723485934368404345210897393336354010061339246061257708801691840535528559913759478214252115975391495066904816651060305531356337200296141554225648429696549718318174301763339194585711928698289091703936848096889739450281296454362314948479342655308185555040893361752463609592928207520202022451112850273129554495925946298724283418376142720587059931626852822013725558455725928356568084812581300268458771889497863397120709148089000472791670620057896444458529471784415913871887877890478448218023785587123537417802943074718926106534332207512452541599306484519772025472649952594731509316044356838392112136303512295941187205858236037670764338010469617843484201655065999344066656194537484599599225380141437890743977692840451339604812979143572938164052900591172972002158491792533925859171021240404268610006390763144490314766726898777490542555633003775052559914769520767883247037293674864766716112981752280258112983485267321466275244094117923494540423916626620055448000240058209160708030907749909398203703759985947235045458201738749189173202606101278822337312442492063421709043944249389548672897036291551772893536436382782949464247059995180476607818073405563028265951463933398664595103086252527186399056289216206605613523049147521494801096347237785952010364632673887888293723463842241502847710391085691212982691396143971987767481149584516084381562094710618801522106063594986574314548818729715143680368625941189859287398936932744246608579794448382014089187395823211520246313389995215940909017510383983370614547542430673922894825300871252871837578169430033433172868356143681310549125448605986675337645987376665982283739114395158339141973432723013234520527671099228290168502014947054858757046193224862270184404586113250733841095873590584816903207938986632606362808236983981857103814864634040442746098853244076561854531178277291356168738985867282474610597268650708073400402292151024797453409320238600877839830857865829172440464744175389486461212160005791039933504768297663678487622162191124310597101088912676349304421671043420534167781891624586154220125465498203257547019955360859811460899207048884647015264219028184900462095809769491269491635171765444587215630328617546551736166043499705844068643648739691243910828224822757956451057040938092201658635741973443138694259467136749298495788675309664487785338894448721398086770241615323954599844185146932100207912979360900905158716455227920868998579977589885318806711277079007858128883817546484584279953455234076126834698617479892792418377866948100688621628129046990273356377206048803254815273418348195730782840667650533842255369256434203881263839719620450538581027457912917904714619466654459474238029505255304640513926890872062193794526745319403089717758706080612278865460940028258601883486461135234757626570219496939740056351893191827115396563580232694612761310677923136077086832366797244642220368167133349264267667983180250435769217577910946315168177999144026355513040495461112702675426438742963642810096234040342972870287378295188379665853950173532239841201197330378981919567254983504803108783645003584930916454180704012443456736749088056752655274796090478281621684544293384626859326573645296135998080472923681403378650737312971572530615204960332471306054913807401362125150252669490570043887190023007125696016504052205026314400374735565708593672573243547537478067718136980144885794701094497887878938882124605931798105648557857352140556828208093304614155976257080379052514005736032489900033752129632728746287916400829348333955199766876425794403317035995944250030496193740681830183802313136383010715481515347823092727725420325794345769873507839073588552347132055266171405217689683305876928028344313244619700199487835391858545864576300851227965818602121564858020811287988798248716046153888654611782779948504069667454639134433672680363458956519321637506903178511645898868037954076309502374581417905715539144847403809929842562564147963427580474951167275584276539048178666492741087611047964287468416823766133193608764261332040667823614700952503750269921967399710043326192505536922238305340441426483979399373528230271994519683274692818514616183440699563658491215702264962814256145515744000234417241127830719575251572734854763950617822777199571343906016628427495804342519647009218318577028569203409981655886355282715847161221004001973823329947725574152865547123975379991218409444675619432928356756636183906382847124791757209579359177280375177965111540163195331332155597650969705612768675562649245322882172786081183050795137626356706551568115346360297088773603824251953590966648471974140557991977148023289286929637817855777203032625786990893852087373141908563555544931770245838831834782566371859852580887675958578197380536311366058081028541353281578147936094436511969255063341201602541542410077796964849462607608769241008904349159458208221889591635020707466502459332235083269870646448076852473505217725333846708185775009575496717808583786653771279463009605965091602912100091321470478309270577912758730495504796008434618628072810695433389374769457051183508251249243075523939732096434693480236764769551930042809247601662452067238153082589011484248806415446243929523258979472019657839489619221569487428231220864707777955834553484106195681815974729983885140045207130300573340657277995665297979431485117412061280729094839807672439790447779325360614229601857654927512081997001013480303585777745006145358256752940468380047541269934048542314631292778173310436368283556829301916392950994102982184527886574030049820086110869375847674445966567959806855406638448416549429131064018139300970995087677897875130812159717532265919202899957153465002652368746567639083841271774765694637781524202797550747362515608070838688245895358781490525126527045089100502522092428964858897717553132075877519103660153200417722997311913011976668901337770604102919851846142013499472831797201655333059036207091672604581323242392426331224234805335817626332167771766004936649652544452904497292800076620444021549850774948659179297279188641126341899099314978651726640475284209346366474761202122838235350221268098990592358596943473840091477907359376557553242872336057059310928537485777981750311215480961070073433893313378188659146057251620740119549822883775300288259270292323839863847139678625894369658575508248334118723965377271670595840091134737331971322210015466144556306716044463605358597428537913457521904680796859940909624773979335862943628595300243841135384833618167749576963872855543939421338598336174282012705722131450931401283881061037899568926565648440131178293655195455430177759656926713851545872057064446554952151547026117395583766694218933341686380411698881795135974641761409964457609857670729518824195115226337838264700656403658505828960428314752978643539146977937617626362994734001342997202140617274713966651199413951013907287164802412268952224727405221853742461566232713952105951791500614148240544632549909632210775507013871544422436538019787759857875523576315460210750826434274430093626778012880965274246570328702090849027808634700324277002854414994275565390501304808861177030772856671095104988216119076269848367518173100532967805459777013052009495126768206637462152441384669085376845713372976151779442914896155048008268758200909511855202557449027667862631960048679656339818215277562678279876691818925592659900714898296010587669514684930698838371417990988292901003333490689577125225054242416133993359824481529234396647860235715018182035379008373715925695981798922900763977338852418600353492554444146254612029598837198167943430356841212291406313200654142547928083833826858845892380738368682198424475146114003289604734034631478135046806171322154009878778485444579802565960696919325345057281292659810347212821821423657389270781635740553383349663742892988864463575588527940954814205027144173135432788498321262250148392661566696686822246567715879319879891481726787212747478524495705159112337909110510554188335784621563750433841525389016714320340565168117477001367103940460258951981799621374064916029663246451033978210363993512262766749733842869239165116316790053287556075396456562116714120162753254455539751089875626725856069016527622854088507125352092955942251493593203147849748062714139346539577357851196353032864545355524967250001442093022101141353901840663764167807766087562398754250410227425893785278622471390395499250998185653849506453285572812614972988090122137790363384487017011560612750856991498183979447166399425877198822164759300535899536703437737397768951176761927348823672703190410757350821168710082771836972763826300270352526584568040878118370758483970917311074827737373188004187143722479764521023557870312400071593895468041286073855756112704736247510312349832172176644623231213803858685846565845303520960314829985239880920529547656374291180777922158990008649757541727135858918827168832226107025929160454834353748127222126028744591641857894268478000757569607243471877369199661435888419005844400064625891401929298654816418656429048020564918870043778278640208809783866271374849945831604002556229570783439974470194333944402888873508231105042974596445191773244568968811965663842676222624940439133001928012630572835851596506964393965794912954566438861986681330087204345309736153829100052153408627510835802529248370606144461144210842709966204082563970909739654671696079749103875503494951808460881765757457659777105053702335282965040494214400485115398924605367104237093746720503950049911612962137030311308690786357828681261738160558008954840985731152366704878197034860668848322137453189125357487403484436126121669037515869129834580785012787916159184475902144560522026627823060473069930944819678251051505910216026596344025012667158482394651702466663966814642563463614918420008515535003962684936022988352117972228738084357168325863620859095984643906922067287981957554732539400399285274186308699540881483854881132684802727805102785045170436610239999262950731535909051875937426247945478365598310262457454578920964257991764432072241250096180307560481557551616829558598952276876130877357509958285788689613081325325913839829005172964789360147220088502790848497821640781731510329018852967899427368207387360856298276689570996282103397511969439784649531928700057125698637419638901717934152022373974490542752000896570171372126343806628215873533892625797106700886387522588035734134989158127884317884869877894484241377439307121501657922381881873641741435923089421969976845729234433790679639695645988902377551002923560976091645779700138861481928149626204316563799653658480152336738850768683184462647425185445072705661271093210936008311265296215393741705317817097818489795857816583768036300853496451163654261951628534102666327922626988951525279649554583198997619713961034134819358740019954660904817603949904816736004645613554208027601792689676103700448015694209820625630569530439921603933585736038132954549532860511507552770957378162947625037365722241413943338649222306992360357886451822882209511066039160856686456448610569632412007777238660061278062764305611561749056491234132842177407435150311706793412680924709554068974524764032398570734907306422122025087312597720807408277960155937599504664353547271023149805138174508368043923856851743371004742027495607720775872498936232208902135286824727623466144271897946057730712195931784346951423952679174786941698177214786393408021595562471464785964652867368647857062594798761014875188429479073782623868066542043886843233269140411089319582461251751635370058203598634734959909132719068156344318674942839388944608411604782798199788167867154741627072389922738578296419631166075309082940917953513264953665983361224829044547275685662325367832839191318111338147511323297904054266098993790985406574663677977094353472870714110189004594859399184362467269875687146745220452192458030146995965886063639661929261405215125712594682982867422616223146389953352699926985088705915453912963177265997063812502081826532127535986470687106584124892112943845292968126670471046631164081814632374484873980454150568670160995950747016256759963020112443861990949915461304532512907021733434540533321373695058472101641254743877671472397979468164375559685508444197040103585849444606576420298403462308326603121734098764340964842933973210744026861698364252781496495887179366983189618360083144018066738529723179721278252148567940255475517441397495122323468147876695000781536390220825628800977836932775127858114940706237839868311003715430755082270232636796910933242146419370477188646159608586741194191317523742399530722437383867730257119796812372725237357228787225923464469104350693274307297293916168063049952401918208031070943847089703043337526214667777070259230059553255795307772565687596770298843005266852173507886469309511186572819861110754997657351196240871114127805801504506200957199642812406284884356026220130014520841991574259812054303281639330034955074971060178357035672142873614619360956246495872156597623132718612180930769692830909003397393256489529669688566632349842889291859615912459788431310251668653646646101035708503202701898087239873694107318482778808006417778593396488315680412351457670644376477669514003581352296455196186043011610575143907630013610642783771806803648774051005951006065961024320411976228854813362907641784509666209988400735596964990783112470106561645481314071769930851238171062733321275369647259387856119255051276486764793062644291872596515933348346806144838467269340992127848378676234588034207196703506223347724365944020352744393220346693600530316699730519700484859323446035395008533198924198955556188833708806009085221370436645913831269847865090340206683501702717406482792520392255130278185840874169895567543491086595401056598297976418322117317054841823020703822625567301163067218135118986357384735248060844831728007790335428706679854467945899495919326022356511742982153980301483814748013444176811915905106940496695910253235548093816189815118880021612124336138433325120654760921626526790235645588919213794977749097999575232228928513682349141151450333600375722880906007685469016358759086898038803680035222906399845555606516122368833540465865181943476440664180887374566123133814847142534856937549908902460265815079015432152707624501280889520846778770366430841015468472115938174096438595735756897204442532302451886418459132491608528746636582972010738509412959672175480672288890992846390319472673703668059278277651432034396878503401789438919383536207864099440581113111200246092160086806294688964771548877067885290046903526336444997055952081990565176934368761919280501719499553221806263986705917191867739214826129681779141030707756947254572592897987384000820581398750995164507336194393439416952174885454754518629462894462298092443589749561348355782932029104626931925573298584576819229009006753207490436365045675549324069001400766251832228463839766781039805380799922090586432250647141290351689537891104231101955522649566289514136349098100007242500337254409826224707582423741657151842534792788321305453124326277150307732037001687692272252053567260107016630449303196900360444626330599835927603780804838296601445608119589610357051114666334604445264707085635584605871114960052837898457691055349636111666707618934733049505964814799600149202463880957211852375359676324636099119512973257828519313559827468964698103578022462019758195229263939413717313567121190420332728503113050829641547595355586737302044332193964842064810336907366986558983332473830729554377063214819676198632816574017627266661805536549553656004119201900799794358225922732263823619279815579983744238335134569343932879652594223006895760529933281863159090163035065325724409759511933753638231343232557625423374263011412304027756689167978761126545998469990599378350112235357405189603668003077416798708625341981365522166409198397856841186302685783936857567326922036231715700596931746755554288308370276944031204346768587859673930477120799289021676164087009491233903966942983986545137643109184178934455113939235501752577318018749164182147874322268388229359779709688765901777278568436471976905157018552242061633400689333213912331799948904709612562855490161196197470545674928007678248231892317919472287313317938168371882938022530361340336836450360546289138679460044131722720197017803252508539667664048872099314218486869521463738055462673051770495739161634375645067862414793111632802199585592977136115319219916329935854082803426936559386735653665046177543435948974344813698999012728086900430382464004152463945235403649880643919684234783127321318366637377523717980087048608170236903173385760528138051506565077986173813597782800664147554743642869180465504182356735376782103471185660716627161614630437842074617698563488215227757901458874032340761664417006914175933668986647307276380752885662464422641082025189022567269331621092730068762105825256553640942877634854252467836893819998506749101885288086804755771239611127670255454271227960519171193569396584424662970832619270443704836739699536718034075014086973883256435533632131274230006331096182022735501751375388641171083772806386146611277484670645483993471202264626872537610472109661013841390605661790383179754527019872051962273241199619182261439212430114996727706154339922146768329967390475306851935804689725931159356347365476118975200863336695387801103376804789371952832465971335245070277091064270427948665429258908325138097178688970405438064266911801935318379290750368447146116946285925403818883971871941063073415651967126498674066761749705370834686083560901766416727120614956994384133291589055113612804205391932351895243510369274720647155501824997428978165214815591077575963657770288177369941902806973223654268853092848743230197931934556668796811198659616783738705677994610238898182960163345991767550029777445362354563265944549143977824867619435939828392893873385817454210748433601094883734575916580361274252876897773770290896633081240433796213782781015771241806598398279213546513408230716516596565527751739330750211937557164245902146851051354567814659928298695613423989272476419630364109148242717713622066958185137521708892580184322389755659837262260982317975483172527834609299416837820198466754200458120580184281096534513840039536738617826397060854997403274719939210684848156251605029976211074845306359225558760478397338004967597886686673956755060842973085375709703855129747594710148293863262370679376394628384141299813949459286903435121751097732706783623453242600721613656252568843547529892725309179409944860384968678957827664939759777477118449451211692840049577506603762396479909060330456759282092352336831949953139710151916769395882060104551732807985882955393619421807994639605950372832162983812172942961214989522259856352849020486229079116424172446014943604931019130590039881580248944278094174162890385434720462437935751874776933141667064090866644773740335611572176983786402196693620821861124876013257357417078222872133628568106952415437621964960488352306254259371552703374069720435699351228193294867266313646256608637933184185090603562778218408269124397619414179448614217849812696793778117876079677417308179863691990795413674666052952895019488636054588293550154102282284018207789471872050014428162404196968509210819152766189847409605505370968216778581504473730278417176811272785211005771375892170203128136216610664748334297961332542122360053438675681983195406579135848275068670855068945339339221654595626735489083158065878157538672687626345570632376201825470080651023889014648171959569071664154530599395524690324804073086104248186296429682532707151965553790108667218090596742294014740574676475246075652851128114613243819854141392209929171744014298596581291427298055180163004755812641254624294248875978577150459103710313410868253632284759809388468363834429195916331283527208813426859730889168807920620385760875946479442078626416609032704520793235291819274039975408252386221103490746658105405928767613929724857679461512040541261031052008390936722815760601508108115733056223083399210746640783194180870355529936622159572085651414127912439396055198289911826154934320749649443963256260913883123773226269013046057248751732307140554832339575474290057118809447279274663090275677431726318467700918347049972206875414282837507199460733174372565636229993948287352262689942017996015526599274410638154483385810477270661066785164634556503808315569261549253251893144888117082377199426978679490438399424998125684221702287899350078683113540030980120492625989361735021298811373942548169311101249033169218153839475249980717079403339363686869088005160457548543858076614106155989118473099846681915183545030434063216383877877652513971587867507272646761722318832734914042471024924933321748522938422232541824408793046189731556102737808694224889406802609421050683075975703096776734124327863659297076700813675657858778117123845220886542575067603563354685515218129427483314107809931201647578814226352912307559287970170344702748930384316422381070461324862099802974562460528149522866949153247517900422680060238169537389578513144689612690433189744655883055506085279160166442895522344402518941213123548450432205103799733675676952796954708583553762388034516836884025647263728359510213996803084548395941912992924595840164029650358835703113612134546856958931114205015606825505975363974647886688116434315839866994369182373129952621201915216016589367042142436268984375369765148406448786879428609372359518072197716144425408724591295752469356341106492466274215074332370397028319486020810711577305914101768110422184863621339333800787142174750012975975955112669033571393778592301765782784348265084660985323332069203004869105668978218209664904153341228176794915125337435899424571858000968938401107113252004544580824266833638484788881055995484035839478218298848108095927562360306046618878678733656444970949243964739701115971197603099036832644461083561359505699458616945309785355426368075372131552646042742885307856072527509278066755124328923200196987773945260404527464960884695160436952922673252171897142006249652185734322369266517192557135537402787389588771212700967548124078843582888408050954171912450531373833162069921823707384723492091446417541072324428289955513676387535576374423962683765990407095467864160742934441826516921184259356247113964020491380609460579033152132195054497380638077707248881987011300517201732209548751971767358484629722700373180621151471183349432306746891149738650892130191355377310407228789199658351635025759111676102106136893414095406636710599836480181438593225223840296285221860359432729823600621352629858503823887962949315213915870964910259345783834217168214579554890467606727624563781113090509828634997533114771423933536979675225484737823460427203270859157592072068918612476234559174907125853294624956623491727363788945851621694619697836883799122508043397603287268615474685552997750973695229825935763589560480206730126663134774409512410443402953276172593349404935910846445767115794286768645333031403543719941806753790632287183948111169771166071342269129072233576001352171776827618379108076510863942044720826270323951208185804883863659858745165556617700204035864833563400498759782314504070396487604846697408022426806689181733862663785240120397943495184612979564171347086990086693383897373496142855139873608260809695822367228506086298544695800370966107200475178194533646483352282262707836638041759429303842103402806008823242565900880140204110720567401034950050533962584002663564460581680853209958405762675232250117195921152546459042942968663872319092954944265011388163018065815511189257472273948171169350029030620372775350126503979239927967816406106702309250921388184211715580140266946142730629281278783583757034791447490023152465511242607553634920055381905633796546429660984399701505239099249062505239818975026514743381543124659742790243195389184150532964253550064768628857984091359160067879539797411204119237014777294172724402127242902208931311552206778208446297474023091183368226655423910545974070659042844271465011611777586115498621155768141231580619514945349487364485018494074308519714675845645760951476571322205698370822077147220575369740387840959698969962628979528439666265821906785714820709237597685230301610018704517542431476269352062694570148232132642669111505056599162859113570548167714520393599130362681630207881828279157817343627551753719597611693633368776831491962312278767558625985144121857951056002972278555332511780391177229129750563625550755917096444857944665398090165913901358296544141549563636309697104897740547827405102984760209919118177069665380278112736765960727807788514593134459458084281717085136546635277636001572616394598008455926487511632878473387896417962798626862075402288645868472773293887475768270263462853776944449718212383549528062208391157071312096739071403077662137585886150939706483052659811477375858343707299045258915256774127624022191380733136717770582478097514182607290122709274968910871683647904925936442599498455810575958283398750313353969781337326981857556651869974372593915906499437225737500289878584468874262472287747323758368764674791703323155995867646740067932389293024311685414992893303287845207425431800750482785278259347780427013176088138818286126429968034198102850556873123249346992748579790765860902804487455740826724901324727990424835123263688871347267689972013547160533216460973886456626357602333289595305688148617907649892515225968634387912550892744099799831371427964724358665529621831188092125426295501471842836872547701630413684475407837648060420610566568745568405293150483940532465783354031554504107774797767999803756796896125284554999001593082891843759348092563939228357515441509129049499380106635128006927714632943603502306538971359015029887075026001609045192964869234676655572658101078693819729505836432193725827823026994649086272901672791386879344158168496469907861434063999917163101543175228101774551728721930926726666017949719725247285366718968584405295270053962245832886706026291541635484800195558023202763578476499835704807475344038949282101329388272189962909316912002611702866677345932932759167560433396757930809304579536587652301705358911895371441901629618859924050730502059257426303915030272174329886885436677015709627007944095952350073876593927027555271111388813568242866407351505165024469837946771480356620263199668408285382008636133054985387021091283834304688447475524961028304105022358048232362164614098159406837738202134548608500022373204856999009787376205293689557452972481865078719223479035740466345118439309322818956514332097698953393958039969320318018988578002075034937149786730315789069263048285731855962774435302363838404885091275975247573826127796987094413008977990643303387610836993825835613479286105076396422831685963804049782588411379071052982123305305446943928169724610567890590525234582384219743398155347569737630584225825873691774713638446949543785348467066699189206854747403215577384054983383608149066985555606797784771894121158470322464808321073973856916656377386820047961901038641746371766345992998732916954715190707060640246399314767423207802964996333300493079261528194850998607521197438262754696008553865156364698034740021901577011107864165887697212162885097238925796458107498423354900542501811390096574019810834313085494859305339581782501194309376581390834086183763127490459644145858767152645034663910544133677883709948791291194544993010707895966265886451745506888411961221835580941089119857417991712833811333428478827712146908336307943316413118944397376198848406095196903437110075423434952997141848047538940025016791861513881504995986662647050964822655076939224745560647451879634382322334475460123846990067030638115789379620846772305619273775109671334348178719330518607574811037251064573981637550416758181475426530934924642005254473104480621268398542197129723308756562001719197513471409342258603064653963745684842293241862354472677195854235609514555238623576864289960206524329059518919749756951890458479599578009057248739159009413452284547965309779100862758366513602804696692559880412452080396216010592686457641908260644308891289276755504009812981753594321429072676932912483716123184188448635003635493059203094848753949445495567201656881446039414906627208717656150503704110221088125224847372714582013164374063035170352312117873354097059029323056063348607364127352411079662338615957596097467349071762367311925709891323002243797816985798363526554778893934576270813494395912384504612220640385653793909672392947635705903532889545509699494142419947485326891340113873526857266679088311509282986383615164767470438082933517281045362805049845861292419170900116825802219207447515318058019333824743178849849719797868719565478959261017272963284952790724940142979631644799433568526801002219580225614265133352418792195837569999287162096823980557116857705051747180785207716413255333645166947149374135448777659230061183297782924952222216643743813505880338561098502573098440837421558601082097164213829510802263727994425221132569015082539549814054811178322230501977182891042679577207717967766017127228230635566810383392213020331275152054013688076230118285589161853666333292856902891273687964558419551508640038228972502639443468494579060819500942228303118716342918610899876170551838634848108556316029458895511254953188212940228125877605514258268810166283150279190270480092988422075283814505046058495503094289226512514739194323798097672761251581202102152920937594335955742975585097522271339717861959655791658423838234108568888100298354310722886910027423315004522156954396568273817084696226951741635855434287108070816095678641782189280570322370678500995271626710346680058586081164602349246845472071806830505583320054219921034974357752351156031695042317996592018027385424696634827904058537087086537470188978952323731965507518330833410730896374453914890957348378736202419051639630231886141576050699906860900430695944800385330166376419564302643489779455998522043151784387837183184104044402827130241340553737280750247808648190790834300145924729848905182349289210375159061846401219755961313367561115703571592595317010780420068707446942472282122316192534222288564382681580510100255181213700788673637541541382406873637200575752765145201246106345750406860699758653610461834818851164633077836390547733842165492573342945437243826875146102349013701466767308144946010351048875764516928408180352096907725667217753687892914080296593635315943724879405992774436881643290636169745189492121021706556948782286802231995296512067491911448924321456302245176123972186084259384712232385007362086071386765898899267509217097703457706446520215942452003250125353214227214041677969560862006778213362619061283498430500644590410117735794286568330956846426112389504973764181131911627901776261087726086256876599569960241742370863656181562260937651920956743434115262667118769683326560909412699584141435968029230150353692345473297697743020032925717235589109477115028246385450602141354023777038432052857268547478937179986607197263342539980434221616087668559065001949123740607461746778471395886230254876134754463379544287422767302130665760168652420737797450222906605499014095788689447785396378780501373521571587831787579591710120732259407645266892502736573130001435316038280650899132852705841596013104321061291322246697901094479254695951621092802927358521668455574400781383721342321810738326412906241147650539475827173480020134939022628905267398079885170819342300740001173097443048780688800270742178091615881355441678484835716206657284007542414866458915681229963592737658793951226203462812332692110411309717638628817887944765335941908769852266118455520882990058930614546181798349869253653672881028766210774474783406583129438694963570459587794053169436798766686468960937373716401499724865833063462531569302597470252285061304353143480081045606443692584140283587094258196009357006297823456354665249951554745504701987881358524698912356032687324024570497410394134982261077098358290677366864070919546173260085066460111295489777398648120780269001580600576372004797622170269742502446491436837456483058726554005089927358426758609606762944165451120496846193586067953527651739868034362619584028743697324020619374433738009560455383729190510424690571637418491453089445599590670073859832864921973934753978384869537500725545060651681628998321219631779616944803939299617255334941949419538676782128690381442499066224944403910951661947170984942967009868708900935860694690269093175629844430475391324475748744082949314482749166053072468349583783731846209990568858775981558600846977695054018467677103194364780223809424773806634183020242119536942409480944018827235978002987340508152636993666797594039767276978286134598275064360994420825201071166302954518471840174597636189602557384176238851166561003389941733355491416836193019952953829467997901229287308291862437035043805521242792221758048238405316307263018051852699730082486314161997578140656976670544988580583268044007806837564996613426246064362361164238891836846057980176215261201183525696938973879586389290059294453963734088949294605678042963712703950257508463570817562307795797608493614251634309481204806371386619373130459484658190962891416157743250003578188797624333003225368494981205091605357375859616536028334765473591665258057316607280817629322527014251509735857302348331045818640276430632180706387300091827874163567387176336365316415166074385273600491997734304882738563423975403664310703940853366120181950665118606892840115674169552648879454125930454361887639470912314504870968332798308650534510835985531730628849227248214642205860266753320572325662954292252662671487832527771168106543195562774570199326785413947403052959383361218064675355866766195203359737681665381368722153654569487529244848795286306173129192414749647003140628931481783579131885308753843274728536251968741380177641650791758503444316895988610735487418645640914282598376065422507303436631438012705963034914999474386716158327190910873219569996911804866479432503892511027420438832878759041611687380997713442783348482536692349358826865474808845482335303910521815551353160382435502194825531194658718317094197871443496201568375229554538465908332940679891120262809287688219036893691012747829301383727074047683446785837714997564491096553644401012017785538809734209704715234099763429481761997209024153316898039869473685746835630410811707395204441047759431895493127214045712398343277235683199728444717513149529770558808695109559294367620178112292054430886219095004152042959938671637391948239674891672890929544753404212866493082220948444162936221621595608250157331159482822519829624369617135451231805795002036679982149534811336396609188586372578074547855910671238728589682950737940751074243252632678389093301758345389623121806045563001011326667977639919690796497300107297567912951437214116107645515682785222133722510773472505558747233672909946308890054920299369431796990833183902137105569781516023563653343969529947738008111769746793286076859295007672882507468673964631617133483195506106537042365821532327299352572409317582596170197031240428390019671149085802979991566127617737817822555929521701050749353470363929996932545063459500983723026919108059866504222449564942460309406181815734799676024893041565870260421508683625420105366156926151741806564732141103694767203073949333275690772550632090267468775559209563742979823610846837242600675451883631888355330096380146339919665057041660407564391994448593636413135908439323434918699322086644016640022906061666835344153182330003085850108738729108237720720867315986691445869014860813550307876166149460667888667374088445552266491247241754540659916385050243532577184914002209247508754806112925718120146816279155290836443119602144621033882431991913815494458170934856004976807762867582841890932266347753455590418630676597937540702890664181032467771813747385011579118449334085568756968533611473971553796073345066856309597799633308887972664725857672798897983459147452981540824099196391082981573644450273466292204289397423202908934536258541603760366519560547664927343886974027215641608050890932442924051137218766079047045722448088247307396615415285887366924294664305795119006161261808169081907107864195348680479456515991633125190493728414405758015142702397271432701497612680800074647307872409328129886656767228071753737249493401295343320389890945913276138826499097289897207221415657309457317169685934833895733857907624407723500404832679916597090064779358140026916814723381142157021122783352947461907116679073589715147627679374010678639663054372250662440108721697324699179782228063468459122229776880033694695617225010093198040039823582542023165300458270113875215073577199440600083549866060849645045446650073189833799175950172513006032006160151885159051112034774446782823994301908833858848543572961382830951579578875954835755139636933635086292429852091051989506205598459102117385831498617766646012551879730328388924532342437035732225537488065018599456164686045445390980441380387100124082597601573942897991040670539507635374508798675485259598614482638885143132611547173553248601235216483693080924861643238269640628966672220489630344099458975230839613333908012645520549301339329922190709652976573479310508682085909981763077781368678318709582207186669851529648460285808653693144073968693057435374176413823760384984433691152897542889629580946285718964897446437871478486513356158990197254575567977017756310255301308391675019382217226263335089213958993319998903619848868911362085026645976910748121613739658654615054714414718495348314883735509414823657932520977399660777601531361557405372217011904663440629375114993179243653797866794108529531730287174958249848243574390244535739732717002896547979115032921258473153197457174846010916770205736527554737590259340229135086030204037398915120162477498786387926646592790972675685710254226434088643098483407944503287982104716826231576862146082416837455764172405423664964669538433572712500829523287513469921857001940689931237277110932143748432290637727854365105378600618002734336209384671930677333000832640231045617619273651501998991782038032010597533081890817894449901239428804299767550525930588342865493828026449494922496315805634550907819946999762074724431113089130545547998602834339105059819949419139189214693998357604936645211699406038828729142357161336694129264662820147797561322031221162260478560111411844283849871083016490600794503513121401816551917309564090675618656826248584980753966068441777426582586003629688456979255218121371607660765173591550033042798324039102875401663335930679019982190818655861702692287342176473862692272579511162123788850354036682898053654449188730354291820747649402603447150553756583843596025312582579138348331322214275514838301865055363452785683449295922169364728937360496296177285962080712561868434934314684712679278029614475125174106558734441425066273299243054700536455423559900093504554248814089630355823930959266990296890665782756258132038769997829388358370210973842161026034484559196838066803564962824128447772235266949002532175957932733618442055607571753660380541420693627022286362868492769061919711433499183982925731646630477950124472154940714250889108061129489235967080255447004594224940056350887580681673733349798692423170743119065929846532673569196750685710400290791055818471376656457709165874028763661524760942097523312560412967154608303866920237361124126222575677893554095061249214460044206644900081886013964063694202609937313966367989673044977567332863855724032710082151285456980165273053780221678895246870025133877300357985830378087003830405088032465920017876810085318156656661866623277531655506858630969809061656803929968731193002811859511217818175258580852139699704836318976265334367710153957776905595973001463494048992701583452895397713806677093689902088626506709368473212028585383617880976257923495114032038874865058698323747099685561368398114510470465715502930980946590512163666997869399702711542412675389901903217642318105172888662914565343725357543640617307590609587046224227708276131867781491906838207268319991417260880548322728167581958377867222266160246781187066328896420418166733561158627414658115326724814315325545883409319561319364457376954913634881836914899286565742551834548877777441661590884617562283562370337705911094538066647097879434405477174796313703036057234346305756384815583922941047671559695907176605510296469453422930001454421299936906922014071635197423574745512292735218840918712530884695625583321138740333055566098922799572446762836263961199254776997979234545607287066136057071051317270350300430352486595965329750974367385666022170980494709616334936984247938998568271665285800852994208395554574824559369097009375587901470645194631933734694849669032545292922159356869027480607965441485440647913019200894284130141147855313364585546709466045936932839307831310301903699363039133025882519311376783629655232691863571018273089744436842539632864228924797376022801719097412727206493885198652505881177365644262238516556100207864402503311527497826193631374912642052454318246908899887647125889503553864990481327934825857697610561423929933279732393829506037307717822162265897120756765907461166573395546819649402608916402762107874204724069586444589707710631606650892279878132057007357559257631007629805574443672925135967864277981355207706262317911404123362931420791263786343211359122664225926512865056978518365880377336085608116657617129451846621161129488137941122678006986527994120852649274773856483344403349460515406238337812274123817170529093529496202895625561830910671488500294075534806433193338379680438009980055036282734874122290932066226379735457123062327779768883911554223460809738259274987482886032472265455184846947476140278634010920941294930666600582502374376491757993682177176511650943942283833319104973822190322989263505218687785723992596329953611594268611105555891786261778135235240464644972963054589993823269192825228765853392638982446107026160317587692762218756658949415310707366527521498089624865770461918518223982589796929991167280294185849446662843887877886833436444446574920240858716849868538688253863139484750688171132269884116781567168129412934209038927621971188085617796220678751364203216521873567353184703011055594864432971424033707452251063961910318138596941523509420209425676099660443662554353777100660804637415769023917322495943123040395578221449211949194203157388666005485180107115655748813962457642761088071655870451191972956184452692931401650350443867541642450033081865307141725635249765351000791207005867153292936299813357745137041488623204720529247937008646398098994343757098296842889860310842886643957756381230061643047372142736853474831958771621665418255910121107933909085790355936203567018995745968897565365972900413607559312534254675453778574691250059620822399415284940480344946159882917584681274962692195374187317037199004019486176587671622270301860904374871619069060008559205391847890549984459032259756125130838650453812665826693791784993922592193955305932946326548848550538961946917741053318281834763604348602831242589098568000402357137234283613058742266225371699094406393025203064056795690313230336064179578236648972746344345376029553466495480622590028473904583248257093690168046603360340801329004707592366462982770083937717067318872885597486396075826536870619670359255393016340948310098792442308992907222516287921512383470120854952273298799594772832069816537672586264984399368750371114461487375004315437317593951218706643869079395281639954788067323445572436155545676161472598254720033823010571458956412217292063956532230398381061104726251956737021600421950981051293546550377618505613676587832420452819932215957998126285503371771972531677541349015304450410361373206656979865639190177606325045479783077460301315682602988563066109719923857325361752628495972197918749162644307220027445141835361268229076050895574700130939939010275023742167030589720954049815542253233958499501607721458044798743961017099530762741914444109554533966867561788849744335324513285411996644866281815348575383402199557869686154190295135801257034103018948379123460559044408083087095463102652886429115725424646759827005536212127009565356545407001950667715128346806026024522931870666567705885330367345355929643273117126718663296845111512043234121536670776503418437298877449673433902714362839124823258774702916169836956413573544634326042089798405570285714822453989635713286854014392972727270787418027679524686651224861152935296344192638931953484349717081066936085014630440928743449793532462399201303579452456679607206455438114564864635367371685777048838897801643194265127166861391764091985543612658697166010634137720963416953322233821971275976850613257428079546034923480089781703916900528432740950984477423552386011993713113527616996347575915046415495641049948836308098835018479166049997551760399453741755120249735252403534169816325318102809041258630695874437239176071931156488415546705660535485860624563192493777917450151504744829207842653394518905920454130164956751771078471145851891426879407923239662455082465033036794560028199135648770276261076888706210825619807122503047552696619957404486935113221167417739822240367089433999343829329820949940541289082656524631247018426979876144972922534125340702377593623247076909111159681692727599440561886109682922283297487062983971615922797376086742913031867621684501879315988396569913934700325917582197731839941535702221630959766770591780788116048733669561276742844337271746517573342240754373827119757500224473784905316708240558981135187481064270465474269838078327381605044708565517192805931293151592996026028304498724527336005233468857638316704896759720236573488975481188253084355362775984648316815878463912467735063068131897058587257223693808604222722365143131889691183023081869208999108458257153244219362286116235196407581842715160408652589275582589960437131154517588535572273078579129366132085766607019668373323465987027082035816070765808334178976493005384029960993887045860432909144846969686381649821687724700989757697240289637011815897560332810416238296238303616743261227290986528763048662100097342872236962374061139687124666756787584814558291657291736337831534290590649608130068532250349294684856038783869342119124243444809372235416707982288733053279946978230536353926318944609375444757320482301393163512899964398477015139574098536690198730076261286231546267884430511932047764641820173724767652880391488924492480639062366165416093133450553442508991367474270607414859343688333652437536821154827997418879870733701871819179861286339959552712028970734781276114932406409865339142336322306061232123317572775490280232495276636464417323188305952746566182709046516481768998470602060234353281449639336600451133187758127779281925283982221551805445750398278542573138146789451535214224459620616520967021157244208008572596546418791220068062959578519299594726219816566155810265776340543950677361382367432064572949255743709036553872783703331711075999079137232490389000661797617532288929446585581714051763967159060649806358557290458055204949162999380355535829687997233539926511780015502839065855221052001096697305637784750150685513319974273356299624754595477217908606128714405416362156874346324090230975870274637615838386403587865142265873723587168627794937906664813986835978355549790465275996519461947696166590582846574786365623902416882084270492885513936298275997579138899561589413700547631096739356775367808745081501009797037709705250871417654050070868749900439340903776354333113278577322236676416808103643798755280936441520794399712847060539706168551709956223698006371023506324686918816553562053259054823401543018372947368683365961649826725205961089469242520007737888642695200307991682422885694187073246313187809472492867094426286988006214370956993907450261899007278228625386299671073674602305855622373806312666887987617247167281850208307076313100783609722123076783830588861088235363303726092093864996660733811730948866404994780881185350464303005046130660721456645271569440528161682862289890522450653403527342411959248447650935823977840367089099731558109446273278416961117583106247297034043432874835078560290292196637062683211697399573475052448378931500818307736555155460020916723647379081557073291896351415451310846174529717457761405176136253501440228240089470994541210583574425822928823304452389622425352213136810263878599022277251193709531459849727610965603913979065467256072487063027354134331747331198743672945197338191828704014853228558649126313148471770968166930501934278560785470123755699450605728385189065504713927447502425841792145863897969929719825432223275782955171652464647170176052196653361067339783367021119415359640905518600207131661537839206364811500390568313629746121439716278163227595532022818150115439993930111210849191062356838291523071816541404246964517088277656899752583632729534322021239505421181154584703311599357399756155029091524874700086695580282012688229635699031820017854316517508826275429829284861076405700383616322242123455408795118604663996816431498887973213535427643471288048173020117379889920616634798594122193387766666393381659375332025210893562302887677806470738921496265980811814424772300010528146423380217936539652762468880409470396689136442641221649409724891770403011672352281879158032558600041261434545418039219653693741024132992374952786604438275425473901969045074388288487716648439949739337918019801080020852951485910791471057234584379685824573080863145637876830117092601757951558888113207140670809517444844795575219491259371099886366141189813884518877571367425907945993294929099032423945506091598504716455240225133596682448599998252954380214437656111681711908511214532918741364147081697743803686353989514653982573659332855631944786009607295648669085780589658052081308956720903307844133590737204282276899595262809234927381686883771624527584453347873688566010958774163551635565462655183724321198125209707026670182182094214902606019903608293571194561112215883760043909209992057906382016611965402854028287820184186879482459141218243905680565348477157864794203348127638270800756050346477079560575651982577641880330049682722273916464891283583855527001683561010774253046009905417071507565984214149347132767528996139079190934058345528853526629754349807693306488922055028153301826128688937911600527406564874084346367165042791143998579553676864945199123367769839719490848124302546545280731895132352601095875721795876184229576929977941304519726534070471012751752540388180032674446635275688774180800579036623705824716300332582107234248822213957134910568598581471335055880425161297587301312361689529849457587600120021150693869701779079436415351243446261643408327224488801787777109814521347550525021437943554823969799062021598898396504652333259455144301880924978385056059263006110325052921252286478346884898458682811122902580062993196776554027537820172384138918925980777989085960988279461341154380724241764034844829018108851492557695622987515702495721715727284886810376533132798076245026097684743063899597221435849048551535495815502044041452543820022484993121905251098179047090875470494252516535521546335664415222650988071856047179913959115649779328119840691498997681818596123649084676554222097470588913048542990132141787991227312547826047541498983125040023449161924848690745843809429455510494797174147982615961747742432444193641295090212292371075684320783682551052178126564571928039979550708418628485505418197916990183816381819789554368311147066246817767992527016671016460982568962357191617469437330310680058638408850585442800734647623994970061262214207964706435491754558961158753458729544093115074448311096934518605008549091753877459380673269774148235801451959382045487116083534880080688491126354641152962473333657382971090429946733522321745004081321121479078541903477945979348305369899083989805697524439824879005710659657344537007165395985366628639288507795180591969622015771653760189674070588259251446829105178018020035831721902983384880521199411621254112379909624443285390626183735816121647660856418684813272117602707218692549438131585250530603654813639853872828921258417347298894198268154818189281357929449748037567165288059649910744567675755782857249986806836909034490823314099932282526372645779462227076804528654421676878509634118486078917706756353737995559279951609355322542455641566504104004476987861716588800725622695767921307538254733763058304416427322224262724762288347349343485484644234227917069076123530898592628396429638901657329548916033273159365352490287431815118226694638087521916357930369441955436091377013892381514528917569863084984713947796742059667865625201819009265880438797901513580763967819907743986118049962949872051330356741758096828916649123419377961354610285928006116991875275741068416941618109917637786895992138774883127641137633934662366263113998544383681728634200000334992160590283526117209461596515265885542575372829986757041966000793958443295476410052124226054972850725844026759336680906929896473061025903286679736962695408072382516552851004866997116322526132221181735866193348744170154381541315766230882945483579789800957173733329840946812395324187834427625551004405589167655355539079940339821137409154231844772178495198960297146907533983983162861731326032424643836173567589294398516889672218571493612127507050624398088171154122258880676913624360314932198623094872069601083215693570332543150952710545874800203012395974047193251034863280337619357868376793970881253377015935946289219087976900371348360100154234639806211228820087195193993967938300926748679117083541083963815356517238983084221966687664424999804244466197440424837725233196126383516541806992659363511231011053156408702048271906139106345409420976070819309047181562172728706779886251682294893875594306612344152887073975958562215346405405850975489466446354673021470775891839956432944665986052843010502926861862197741896133876009332027358324610262865123079280254225669228318125239797007493289698989546379838692571892290328293193564688344549083011211300965852533697794812092816014132019714647488032829867793681443614467119236903341103494641817588690417200395655319653922927264737714501043598956875431732116241760035149979436325635644242548818474575238421265103812410801259800753981051292116463407359946936372328500801407470388716129854694820563429940728645094093855650853208782801854835782309557813803004358891002163759320112556053358320696193239731701483894017723860297294429461848862608380390568322992419294512259817058399039322761533776689568359102652278026773988618146681407768366551385474023747812259575465853106250791973974592605791485602491587674408858365939788042066993742470561795731272060919622262104045277950098286677413546657063726416635743184809036516301473133818445887466510088754426901495039358046590279824451014865002442459342845047542848536645748629281474594385385754793397081449275454910734328648957713500281629638060913019699301422746801065738310691199704493595447581833420394174101759476913618739271936457137264472590106472518705028892239737630140142854568301065544826452265674097853648840069415029177152076377208291317600286379279660656366380349497771884531933341473053855287618090170858672874452488665049906840477219273041507188433745001789258909979944484779764413032531101194845462232368941532888647697238181620101478291643620337543404650939092806978450118869582691752324594362078553520472961635781161851448262366235985477566003298704689347103432716900869498368932637637738827790625442022612573522462808294692005350920861311750549991294710308309236136125332214213799807235841429044671586769722176936245974269683720331144418951647302352158867262793596292207189013904443346362143121650506029887245822707707682089897665537051434310135704234631786301150738723937501027858539121935550333746031976292763216392756852485116038887425489418166465689460071518730523245098615174978697299931089914818253441124672787360823875672287501360281894590741533599216814089182436111476334952340216379728099072267356944129737921135514434085402092204475560158733192169926623226972346109509293237648646178965928623910746684743360074057179287763460511572149873066443959602575140933904553572634808620800095656964427345777773326545824502788381592722177527401108342467969332230098905762551550139187670071058219279823581643032755814804129154455898726170522106140163041733707865312094781985164892592130207382465251233937742862920440244396429024603333426215917164396987543877806029531270839574449176762641892280643264871745422621410911593988809207401715119862939506471396351419654872068608005349053767913670087292042189664110284216781925876052904795017865650266423964056865226932654268456405110524210618878832078111212577871246606396018517393998728250519547444282376865016692251972010505055234072525075454747733375338291832977913062343323838417373904013061041716209679815453916860757267941710796552615927460908277540161131072389100497829583478380857688316277924241275201409570742936139903765305835306547153700967248050497804327539382181264350675199992149884292237330935140740558628888197988926273122788649765054265759316447218738805165820456978488221217220427410897369108276178217553256751558082329447542569196716554163511450730307873491067499670604702679456815065265159568683115860236175082379612749905277006652861655471016671178826907018966266097850856464750782239987205784220168321541772983327542453423234887856666573612089360283402586224916112556116241278406646330833370488870991549813067656102064712855936801900895323636275846198111216194569490713234838648316728102440466525901292046378182857112437619471389673023900446040176303648758843717637099976842023664880718494769165911848099866263057012257991939018745253228306232366917967079397272805656356289977385768019468138179008503175500834761678411299937825219259840782868653371798409886460112858111436251717324011845605738089422564847193345842908550880916618804398723880506018871335688512760332109123696202317195309909436536527459708401361362214904076369322766839318332418718811437965483177505901648782278707184968981261324388705023074115519178218710363328971996434056986695715693368994103726172579921594077792682687740623111263493423453081788581130904940527344339349815348014111460970636633213404982864858126688173033114350928912282828350560250915875360049221558357358535391164562146692613166758370728258716183561542327239007970701249966921473042564459410866360583427730243982699871743879778389725816758550721340080589124057840127374847647834556440548066484001627220920789283742010329127058404024557968380103626655259858927471165068728117420045152352325837449868689851244800768616965676157095842492531743561262770273759483287263648258475860490312135146253027547115543386523647655746146906426515143495161485240683716342116374240492798386080794891164120493225592393499513459109155479279495695612359136871192774127196531160631868376278654491723297039768508906064559020198338171731065002740578723903260689452613172574530658393278690077453653227072180042403333933274837137825043477050914882014802177567320120142676332715841028807422133061502053460779111263905865360993614317028260578574699511147091582545158431379747971707759743695974657690407905214090317410874113626781204126441648316388212552369314436284545965823073667008991763983679606409491991945222690045001571194536070739811626889397889521887050619022695667283731796968347183982593140566712091077896475230461621585043666368303757984271266453419176442380494681714741272145470599506285439757484648251277359337750435611442413868617651013414558854824241094432912792526303451474334275548082912784265827514128194527528046783326952341126282442607746887177989376182393637359352674175998141965905372734637386844730246856884665529197614154646400576930324064598405595918244479717653310674504072503664674921736497861374725714800119238129393026862526996356125201011497607468606206078625331299264355457569507201997432939319832563897163193192612987926013201546398012707982323545133732163163430897080497160042024122098831927669562732005625797467795885791627031841601803397209010636359396947834393331098075112433838404476590105745932159537465977640143949199924996247445523441405820687489709340565516154236314160288448899823306069804450437195268010402140397084187315126806995076376429943166282165732363802839258045461863620600591066028851241764250026290240681618046450774612484081490084831719963633728086279121238797383776159383051257842967465641050121308222092501262412160877637851137454411697599101624322000533288404798461498709259678624278805896965295619106848775517198903869296526994244110896680936801541093174818521802956314691689567264635734465401398681443963660869368417667440502058727483965678291562363089766232643231755346192831328328650744976248979063909441959845550585626648470194078293461564727787982331689066206132147211563312727187631836589886889667108967971497613744286044605105049481986704771401295076028757110780009984206005711354087250405484251702950521513098846094533299568213241247325845302368383259095160343169024064334531493144410288485478162811890168354658342401033604976829337101247639742896708272008891721066054129256522027212773960909285064721326469983422264797453067531164365395019877782984882223331515454697085625402507044409024331316168106734859226046027099362121669375490531242306581334821379797532682575883287413396712257909270963376564477305733619054485516585602696771454340053300581036237604363348603728916474127750274288749360601138041691529525679730784579709541976699483345283553636017440973448840874782178807540737826288620431051568285069910879933095377579802378558061956460733286498423684786830433512431649740252507967884693573593101137598245473991016845870892585534132328947241165738769786289043663698669764987918715444853644781821743337092946363073252776541815135887961587932418117625435060236059124562324196813618257625366532882759480102922736538314203182383844086159018676428584998694182165637102616067404186359409083085731877221769377003925871828798636858146430261269306008396410670299168651839786962339396523827383235208128512897023240243964847539964165796756629932400119570804320549078561728961685263288655764521374041034077242084184527141293384151440886342507743784786674113008207419485256222614343195025891512548805176819824354225399488374636044844732730726059523462187889144700888074950181111159275598773889555161120367462994834266466783911871331895529490268433347576563008907427585915867987233842058868248085766361903463279065910752689134483028129292986963223322935253764094308867994295672239933245735037039376273134018552388466331514723372395095092437647272402040629188253260942921592764314684749779390889460742254634963595934746128444135308496065422413616301441474614075729868733628416364827160500828679307896971836160684309649218313502356284191305885271095446885050299509840489615127236322937776223767226323984232069039179241212790496026583208574593584754545945610895602712915706048170071752140356446593045385148151573280442611596569092945775654725539836811442156089997020972145429537876849424836814323581010465334815704670575136132546420795590220794418953179632538242822237701315465132153272470718335118961282361316477291777765083913057689402437803656399215988034295495084446597153475500583628025393590706300323695075639303810090748310795995632508710091057551437918825414936917517032519220056179875293565267954378783618685876614478761992451472278113713620748537862971947195157439716890668040464282436977637729233783718179637077600289492684769980988084933991230598116204928087552955190182422450971001531992613238854874055837046722394595577351072955817140561786161579121960019927202418478949809301894355095316676823802037107797578580045648210018465307422777807535695263104482486084229294986274621847230954676566792865610615497441942533855513938814592714377492776112709933782052243908121995930001303559004308137560797408495862682750727465903317420945965858064959169090193796913884996254687498552831462686519894340333741296417792506807749780369702661582595085339533248949187466098039489243341129165516781435166341218831161693804718790023483460197306475964091829378949104083841153387007069863330381421339600190068444531107945404517363119327374595702666713509729613110203714221493296254444407553158339629128878992809827766038456628835557851396278231189225076814624887329740847552395380998450029984054782281377320782452331043937077195280203234994713643284850269123924808571128128748943017214461922959645084332967646367486511901774319429121100038378154399085528605901066981613579292104751892776732634199939711350532518656382823102666381959730458509316919355458487763380241421540234961012097353101158215387365797701843031275265067145727582983802401449170939904630314556946764183970797577798492534637080040185932377500266736341180997012822253940604432257703246412432529856780416044184385003864165486484512135768968853079187192659521847093766106006183943224319684364276643704576794651127726790542343367928489338195790048910574379703928670769278738019942829736417596292105814737775861683060162633383210884326286363075588038461764492201510959036651934132698148261685394485107865387027697149346506955689635127770614083584820984993484829034815790980133048378796072614115464858266089001590981980752528305888018524572771077176207255864343329707489123994273462161740601527900046573229988781973486992416261357850938540511857762520375189377589140150018343101538327663328934941412625146720109319130979626787613461997293830484836431706189194709797592615678216558916098027967768760641845134903318682882969946356120594396010264653076986012396906892778891239443003952680596723366611490645318220595363837360933019198594323729590794185928416013975496995903830040444724544498042088039537259358901938826298184249928465035423747117980802201662774995795689786033687987997781732089651207143264026557990673073057509568024591629582077462434229668451947736807414219766027732477302477436443962684864283101065713067357573355439641231576354935975769203799827247767449802624929957721359555334271334958879473146526059987034901429166257142936885981301768288739380792056049373141296032590930540655016029381487402076478907005951549214701325188449471460563468105847505694183414980743040067721086350421135577121358668047156648288179076128565493941559295408622524931814219643714706542900452044485443018459014550862809094994865242544396084607575432957046150629717623280265989680333128473653702751364971176461604407658401831545188447002997717725846242466120532316393221206253987983872721021025512185619588225387405596383175062917846697231483413535721275480743106692450379006805441610031128141997980996693794331844987011547568515179615953999617862874186617373914992197279298037425244320584061610670950670222739209044338642013416601618772608804198477512188884366890938298758205488722044039445715469493531735349110711148103228549802691999163009622429078843175173176402890653379810333799938389597993053452492599887629034503228049562205676877459169995377565340064727374905003430237914661263334975517999830564978776450341938548313589116649394098735872574371379565478936720984508103001375450700598900726783462198333492265011428200903380457650316606787162799029488665058275764595189928382175303013452603923520973980274442252062133010227996081061464775423328381592956850971278566707677797863917823889416129329377368522369939521865338587485806358101067427399219779502397793099423099724853862666286300845182362738477684836522165459121158284027146291240753396407811254860261387977778897356798543037998242438359570391861081437212472749112653804635149667940228833432063735885270741651446330543087638690467055752827433630826317717105883846414534647645655253142941186313899061968519692794693279404322493212167106557000742824253581153995881166848600817111794793922903361927279954539791121125424718063641089709874701372940949610705426175877237290343165393048856938084226338960527425727065404045439621972212303888422872720565631884767226781029403083609791842665273351774620350806826595734310635386594522196090225519646199234068003415035779333822084738688007941277385972579072184916142015142154511143074881446617091428692950639306056407360190199327382179592101828785705422220403044563592595317564087674031126373051097951338687742599556904576728803948412228474664625380004922142571950638459511113856119737187934260566198499214681910336630455549534534511032104401765512552260038610747072281241224940180671597363285430919509692397738927314650250349328880096910757018440703921100780519112123317411934453481257388009798547711419897117952039167708600866312727407173993319522263475930544561750959114563210278386677417462324890565846413242879038266126496431435214467042539820803105515758488264243910404973069823327216570562108130746257551533282251059196750374205884435194564477953689251220822050223683359470043145441164477411532696174593779661176429222663204005455246155387010715204055912952754513869773848550092737719972622667638630932377718502961057698139285434379222705829481368887496070093526409400648257849718740435027218992423385005624477136276837987830115757188765033774659836863035212001997363294891696863386113851398033071826252629358016945173725635604833669471407061807754294937889235438886847921490854541840301854560930748896045419368414175415107536303027484311960594676033679613840749492394464680670887861775493530968786463005165487519900962769244692208976483892443620864849340180134273296720719385160725129850670313160029851893212959504496617031245202239193067790016426426181859100836061386336456228756205834045259178479246801866692752433560201866697317666520149137836067818810673558764539924128399784570413036418470340768220395231953537867588640000290177178802736657258952399968619314111950085806565552695489630460810605517667702971995636770800157409496505609012944227125946589613761408598579269998491763799823326346632416142658932730299911875248742034438192778670506364923455775720390127938771360539804076966326551399432336013432774218553539349757404397960833033308657388310198071864494103903568429231606938255218058932019364805737911613061228494123776777331400828409195435693204007686586124462835344548927272474068599443659165429469825289898818134300153615081437467486817478844176069193544289709087135030289576836881129653376799812501117158177143523389540188243985805302126630476774155638621844509293781300691385572281811199250646762773823697380387637747400808413073535550851236555111487934702799678884874894559787347959938454851688555557546353656433629311234682422809245362537887451681691369931230424033743052956179719857194670480414021259787478702605731910814679132496744672753359020102289329840761866187031982056910351675803392440673057711829857367901594572244829763276859756995602912515201724519836730082292676149962725141811366792821472111567566321219498248257194784755583179094009423135425891569872924915873258520508843553023220128116318518084620474684889184457050329000196623471828479217522994606782257187227517303682207521861342870942898207773355268107080155906299178939238383434510301150089974953606008181552555426122328097281230420862579621494929663443884342066224963362123930121780071512351485982642977021387290901249759096573998427979503038699262946957266044187157819998440924326578022697090495780565469970103796824825616565724695506096955583663905453226413578662239591196157757730017568937199318394283316566469924212315530703109808317527011191770552221081143184888561449030469617027923492786493798968032556010404661818710323769304306849030827091519384021754695146571431848873957689101433879332976182078688107690884604449202167798114687980080140078171066759516658523415265874588802491607384456580939614926009825047147274516563810473355684459845449503046386015406384858732244630392690993049895161550752954725763468924850879068618065801022101042048266690645670992494273948141502253480497903434886808602181070753082256761194729612515347518253331080666955288716397877915418053027552719647257309115910377757038043823851802805249638048087479967307592894668476060621500922557237434485370296177433933526093604549078254358424290989878985220329868295006103203010133530129925992578391016191597035801010147382131924863556058818471892566976912932732546964044048840629366315935418550155170580504558354949436350112355281766402559559736776969509830550001253346348362266057457209739198966676155308035736653789890008024141069545525131943152145869005577104355740766173325599679398431340126239178652453918885910952281659190790893383405536807382358472737002160572315793181278733583025650065028310283556031451398206760260527857330452678674827706982217388654430247165499287382002219859149624385916192303944767537461809002740320914512816023503032509221450986785003525342609225623004859971082084840204447201101019633598275205684900795431150681822821385007539821071637612058404538246633563577898470960621166523915398514896452956136689552459784907820562464582959671979987408024263503043831331390744250267607324985762448423696221741549505329813006401944531710735646653178309129859282342970396738996767510596080735950425746006770892067368853101054326247308842840796630534772624987279275403743923830830556496892308789666188850163266613469675117759046602674953897921629025171384347815631620267349552328040377411342320340603096218281399873522369999349285963653606566575386766742182315564912526023914125885511475245463951148974070820875636950180580022641989411177430380148193212776664271902043639691273148814727047094925044058882527079859346458406200351785426556166317024298917264215267302295305441673987271647215597640306867726241760546986227254496131377013653260724709039404581087090927832878435644160815719451556326398813328529768802391703875843753848969739269644991824374898580239818416037010755149388796905953499914194346507712428761055713377028302386287004565770697332117613217909491467668203415927178465664956763964768969832604920375035080658579257066318275218288508152404065121669506692113961821958365825987954430822903714925552925712240483622240411717028211199914975267233167146972218737957902773260758780860144549566780964263039977817308110237045843971904511746763500501421707904891124397655726107951260955397648683173744343535949139561818274985752601886622302878814551510117374781982253235183532143028916304803208827716729979335076919347721803799063637968878906462308660928270148153060275479300571893255989378901699541895527211437914875751839701339528400946943840168035046587375743133256047428846740743898509350631309089257704625901115287402327089151119349253528094744799317096266140045941580938733469566537378025853341122967022807961994612739660642284093886016304903424703466832151178667428748902784182771478956697460827280854747314388729971042365087907496685041966575999654134611440274136272149106292341414014871123477931317722125624472962703882849379162083696403182834374682168973582810142687767728612139499390182191975130958951286559648882754638024833184913580165733344932692948712948890127980042365056970178085110429973821505882352879522441020951302315650884148123015602410480657921932245440270221900293162654718539448560170306183223186799256422591811054098574202048687075583983173140278987859038946364916847402464406894638850476421091718444404500924586863182732394311026706957589989290544905180339556719737061977631300712871565309717688598893391449291017594760427663118258822217021488687226996543762771868855406523305574952996550960001310923220450736275412108780086409296068457204911778926669659651195401732975691161777280126888390334126015520541785123164350492796584587817855098962009297073883665125631931620384494591079572822123436137663986399560739929338106483679254710198143941643296988403096996984628542532438846068485514215138295182269987210561412649997663620814784314531785907733372629701622330378053502793645518794765160078684082690171081160079222932487463685798840039903527454527449362214976235898740350124187002512098004220367618057772359542299999943775156149151917299808128445616595912736946329486582075945852305859456579311906364243222926647461166455842761799052185416595231593853711159068455018170584178639729934499261766432335532075364359083845991021704093302058656428742339590748660469142298324154166772481171223003240226834102081905392233776839797840228511076779127744203039529196439567949285654227654887942868484664689722077550142527405296345900614805362447240003158245053026247063179287742293607393220142852599245452875781794117550604078869483491452867341013323213167046882821235594591491310128763750724665046092776857047433272573778960145786513287950480307270310071267636565214757268758760678228841663582510059957880929008053266032109171028402917731253910306518247271721959953310345528737235675251023773076040493904774828885243750510025832287343954747335588951851488190891234250261879730945604456615996272301455534875936553372489080458469528702039808505216462428947100346443206083126908306413367407866134830171140647468757302922512087921205808155193460150189301165716699750248183335582356129327978316932529474969353023082213584430430779019731432214095783610963377493450015054776852189704026422237377734816201356658821746658706194497824457710875793184442846339896939236611811595835349841864579580583840039626796874272916378994756889670108906111652752051612780630083819393706684095065321715097180172033974113800687629664459468859787147478069965090874148027103809932451331655760059607972947158414749684471146977763524915724427196409520094181007918685727654277634758196374874879763155895227678818592409130604768440019287656445679782755383293083537070745501597362348848139719422456804373520827934824736467426559938018164424734674801154736448984634956599765848714258505226614959943487352462340824180897794212529310838781958760991368807057925045971781469682236345283355751867241599721975379441854584899980208832681501591147505854432918573007518239060761245074241655130675015398870481454356865557995097550866021716600135300220515099133591428555244662177477063590866364253139248543872591706922946012964387998739225088709181756577609873747493374987153188397096131875735739893819277233906057038686697717306400688051830279809288165031276873122808159233932187902482881149955894160539419932988770294493341689236366086653975975339609578164253760162010039168898690751484588147267691893117996445964548993029347173724019533896095398095465242120807807586179490496291335174112247724906478110031509094074401561319114824390013475108704351588250839706582385711206345884481123347506308506895967132222247165621710300001622583939073853860530163769395187053455390608621054561457648592838863514189035003051622400381977114917295434725726038578339518845710379894335365864781912838300962036043246846876904077448658400693748082610345625055983395328781044865864088595364274188539324261505921732665201923122887560362756018911861771485657510516713692836049489872643521061294761222255797790298779003539722728746304947698044665080158018086871694398891435138350135551463665346180461366761789515241270497668408432575523630207797902252289598378290645423766603585471452159064424707911135395972293693670495853085007423184577517702311093168746197149988403252032935583620195048766493614586804256342276713322008194538206616932688652856695261831301771207091273527730079309035727911179554128030205557454170141480050995761741817332736550373833404103995212217167736207956240442654066421171584348793412549132845951202004371942749419714287496176978707472752023994775210153229504573988498871753830306303466493904153780059866710992332325662067045184469796536681808087537287241499684043656823999491650015612470703570633799251790187542639204696157336519712676780300045231950219511040199046698012209477801308967809682357513846182983880485706576132664608088037398768000645929122458701655039036224205682802838607874593489928650025951384664979286555572560961933390297007545959197427847390691237628739041464194102630051518253797798768065849872384647572260235962795730364776306906730960961143970305502604258186778807190571839032627363769816094573704565468109856801262009111042586590919440419804895465810331922039800458563360615613938210376982593699782214725762947934204018850044337523530402810453763996020469200538569947734511916627120972366114888677273110370507030342873216840033564748092887290224623664869516194321066186939217426518341575355675402805032873432241497225858395076522457411065208449900558802754520613059265167470018553290970821714214902242980139658754470707315128953384110896455734361009395549593707286771662986951332355283928042108588649202350042909933350455574972140128607170102341827743972507255024425846700626856730730969489780975172725162541481885157181181504792804595759938232170604923943544749493194946241960049483997295185948436961640901504006031244206629241662087349901283581797249917329435911837294427343411047531090988837096925932938774169500187704279481573722491395200543720139554863194059138401988370064971120203361495638339676039835949463710976256534603435204791336929629690317486396475552790021577580871142589338242091854447602109413945773106559303623401386965869511707959697058343589211294965949945380842304341882823656369037293989296805837632266486789028353626376758471262956255001026374856439317998535961035464627257099332668325153648861377713448378613792616277132980651253095157422212882058762925566824791362573004706169184547904712741410326788593062667816449132260748822222294980254791929619872834916028238582042555004803663539411277545036925332160298372981006054759783043642282296287708148545166319203179096041082717263729678123823476923302598832094040247551399209697007577464428085519166236217313967104302073486026973652082731194005197499427339448577345788031631486720739092264213800572452819615209612889399254250500841880812113418547680330624276623030395732915732479655385013078884842377186574877745184702770124268175119150997547273005412149031467834422763602219067503017329627783607924726730619322264099178719036656008891500112846701525815154469039823250051848816235778794967473176916525219302872545835314533066397757915179118869013144611411327905767332245912571902138148551373076598283703182360080166258963132514087251800503371573267880191972781893863422036609215975812370290136342902954138163282924738193598079443453679497615591202836602582387617766543792539519138420837902107308943510640013096034337739258405784171282201309451090470053315358475890323533767397933373067369334287065288244759509135943298333462562563897380629186428795127065258072823228423339769581205705996997754942933845779909585730979963625956792619441992020602653243200910560565291386148813366474460543746145903978041052655133007177880346692674150528944464752848582138297832118229549572472774496926470395984737019598709944851804269003171103826494651340091471976184331218262329590401920458222709835261209983214333415149845000913127196501772621442534654018515183920075569075686022994308775178263175370381885134428899236694876961336727822698139817632184476946013497536298144315156382651200136738599161350465659543164077116362533743224904533426478210271180914815600099115382306127019993375106082815947485985825293145368823710965704360180385846236773600892614082527588677352483974931236008596335021283928911766693255820607829462096666598713212919959596095406440462444944273810597120170472810400208215626809576833821229372752508711477132495362410767079386484022930806283556667982050609341111617825723705868631579395239709881601837543854489108950831716617165147245216918424886771837613493591354272298200400817377565792158166590841337505221551671217897259041572795304384915894064380064853157360238631497900789029399910919779375246559108583509031797630162116499414268650215996418576639236237349961073216621572254000880201536500494934609121456632629151734042379563145732492858204843606280781140370709949571373464732476794780017688172797575682991695094374002931571122701606340433972149522773344007405455354264776603213067016590382067124279539523671018770187763451247593648214283473354098306158641851123787036630183151558150827327305670863940542939154555684784854181092887829927405172916677959592541287309438498353022236623055823949627240363269809166682156406828513140451426274271384218754115336782395192762993433046681389964761872075636263601970097952027123336888427130162765520883805815902770765487997235083030656352688286250427816706802898428332390679126673035953493171949282370485960464633606604093324208643042768161490134476543386060920474184424266547635445635691180487834596270115415522888640286747268624669311868779877548644207813210581425396999067025458017787697668902041090577371342512975645915826433235623019659692388700648904447124696455999327370970846670811705820623290089576597377859670459435779606930676032056446086221438626848809649118794698861460447635375664570006030394379790856087469310682954691303281556275323104804824273529076081328352543605323694870337348436334906719338790303358146320854286727994434766527662435859979779005983220049397293362619517772803765442513206298199576598055720668081735729678015235529518917284868639953269220882913509749091569060990068735099012217208251340933446939121400537652181028498974819110534575677297535149097532088329299970841147395635694251320526420355286837729420348758140380860700151284694179382023161941523333707621381965571640572370388088051836130213987664948533621890432097305609661592684103948879745918326033522506821637954264613927868212011420550330170954884579575128306299525944691493955111512953757431441246480122560472378621852810654643735081510271651826212299277485323516651913058484968464347711105136641757303108190525063659089075706918755629245534833124810600666288921533938676395034091538017792310284487939792383782983542952766126426683362936756787767587724051663500432503489359741255207675733027065678492664043860185355079069964910645088676857590049259125847501719088792285044030315962431029352744329759054504938195809640254661042612034651865427320244608070512753865944115243129748195494526077801333911089599486191914585857195912999069398616920779925988025924688875691756445293241286050710356008185270776872958179516304862192377292676650884950135014529996953772026047591544795598864331294751190902908302544027282519752916453330334850265098450451881851465159120126744874674886563704270619775088439395410484856444165189980060528142346534240198579286347453074405021849058573292177219831451678684192342708050697194579712736824594060838384895128918652119777772176951120383496792813602380827180505458724430031175183035197859680531670769534548332380828390189760709889195081679293980985449138329823241787559240814206045845783189656245996533890748518137478664516370401295356275204166627012235387105333533480532484106481105824793386709999901296857375621790347100857632806594981907947505839142800777525991045810921480485653451035437397233052018832695983874042525998566502992817505372059716547396109224635880103393885126851085455855031799121651419115250507502265939946180331183610361441990768181502310684279470743188875448371009356888114907650414627295131833382367437037132376211986045092175452903075710461018072842960961339856730463201506104516445271332539678868407491401683721799384551850852662896225173633043314303246611142155155957380196058509030734076668673520420499619394176874399382819167739258004025714577293587534006455059059901200605070224730521288757179353448174891326111874057631787920031472837168868769233368340232157489548512999811432807038767170982337130798088791883802794042375210852573382363853095684404244402748814774794707783075037002420510386738270834100601130460961020159719000318596753331669488715964042869907102807099789084795224871111921875103141556564032314943676424750826815336306744890572716990927549309629078024492516039114004789861543451126880435068463204010486684522873424482540722217608255882838536892117786292634480609626277059187711967800729409057185858616323208482157382124472224124448258915758482077655146790058896368360912824884378484769089430346886888611876117703037585058035457238803029901771121646755464892175483641199389298132251418579386451052157488032029140468406290671933094589351072361236124968888512278510536627034735008772682945124733745640122872369483110534595694548383235151690906271442003513774771160795636796223962071569995584557253135591564169905112503027783005270106133637170031735472310797568033061130448270894895129250315038500388135048246236557173475093735086463996825365667274886976755501836402257154361535211375500034550164450281008630827410285050310897901760130024799323623548942898763809351731454952371918146981147701677421811776732921984135648186311852193175449815379904202726998103599414166813659564705656641678909471476765752741089646192661318636242504575811888313110713016108948876681486990773924347978284459208222230214247528139692657748468417673483565613857462510170148402507102354722846270413617471959044757279372555514177298633220621747517061176594687963693394922371515217471896988771245267156255433301531076482212040365069494610259046374949069789257429801468971576208076250765058250788092678536457783644426679466957790765045883311377287078393547391113514610354613248157514277365924629803730332741171899831072695585552417585362376995294612540020348243290942172299574857869636842382467332970640710493346427507912654604438775780490522013649134240042590464977160137427241363573945382642182845930339508569440532292576080280677372782922930944052491857549678344920752650316636105081646083352062065628920080570838393615594999599295230459330168648799348054514342171474310382476676334846937163308910540251962312993347349789443224847369602557204400331142679662258168023820757947429062384758832277217410787057076195785122907287188687621484367230192099019532436791636305892832243644476104604683287034282853472313813003519688167730350588560928953892284008034872651399746343056297675296181152718755049681173355716237441087754778723153203143152936668044435846421172374687759425776140372444433972752257647064729018491530418401479593408203120952141127662041332086467485008070679820105113063573627722787831081938821113301937456712735232991148672755697782079657001211340981271213017596275478683307140267177186316103036046999145147204809173744051356784894830375555469197652575908833099905375735172498859411254904431168102393856639151990272999978479080248611638146403422865920159983048408794057209355488386737757410713238374273547317494602986031923947642117400418216242436859186118248554068877187566405034059961274133349145492647400779281977161901767007685034775952227641875689949252439994733396465378953258120702748353669414980306728390624534680211762728703437366549237897906234216542473592710356293402484855450783758803790356323112345306096957692084485889356879090254626891965023053445245139581370358834755814949963078339835045549405538247554104830234655746580955637711280949312131241021537582802792947427058178182677930580721917329878350549875911593057190170909448733020515988468058510364919805271770996950720292733100965566006788721728023543223959178272124092817026301016442568405877091979537085313229673148584255501366968871785524905103380866102125862268002520102650637373430469313808307984731999418110101875916153939317903156079571044027018918080022438249005437593225463832126428725221415421789984297832754552522184148583450930920541172631242708840094053186954226904051599411117515249667270522535349810255375825081972993137939259111592912439981426381770894436457585928002008625540710805494536607030706026888379189806290866825514216670614897255424640158301875789879602172998543898013811962093155699595417044594636746132762862937311820792279623883548675806326031763142453948487655012754945491812269446574173635555357383060793189219418522276967330474021809456612656415348114543561020449906181598546084868560110230824525885790819511018567459460839986463323841811635347038058688720439684303069013976502749491304517592111273220815949967411356366436302038375631102916088149306525295961308804337050396492316038111795582435354994702376367456771765430145613511456627333717513965907442175881925491942284726950881884875224097028661686653694732534645074081716603370459728840908860594296824771095621730897827174323759553035714675148874191652397336405886699373102706894375551694906181561533682083532782351035776642903917605854127510772432308674861562849418220323980452565627147579279051371572569013857818485380713339675730383150514195801442207588088448539353328156750211642525742400533891347947918651000474631316978149723030310557329728195677747638604809976512968586582664223309222894561706268862489317878582538926200551071040524479909322942576077556641340175721053699820712268354954522981906299479226921156787052792707751873193084021488125299894500944131582107498042292122616273802832642607114393591233454751310981054959371889092460383444949418882263525479693698692066749540853319413309006539695712787785046633382528212954282578873995926893690018067151565148190964441417802812554971354689345464790155684595699925666899363605453909147312437225518707440225411798009998231145014094194103577362943036334387224260379360852584078736040964879586727170049710278851264211702778677546800216273055494734015509718067230348421426786927916239535720603293420579963072511539865716886783510030821020910384478974143483379319753410510995339213009625127152339319250728948076939085224790630022258867286289625312756631656182853655962269781059804209332814724479886026531215170343703589618900681283623736396276683685805825024229693710982166273121887881465666047682273879659347519294470313741066155840251056328885036900924790963031703334129123707694139496696113118162303746130333242485246575699488351544907159429697735253563344238205423559207751526535833680268186623294947990325872338375084580526193445056806786591496745410178305167792901640701034894283251830750254944265428651254934681207965954689256896605979697312513549979421003557918768549916297222175851481156124584533478405119010081824622808839045498024206404646855465669482383778790003534545121814370675614842302053526704064494478622501462653689384948732215274545897137729298280043895175671946152769415147780389906710429290111217323987743912023016738420672661668368165673847153899125839739521366819074061736379731927665604534719254233282514639338899013230057637724969342544224639970231260719942160444484614329716759196523150814460931677360548632002488799225127523843360418350907298981169239852974874946262320599266630238763724736001556868671816969101094904810584614039871948095059222874235731478413522903417843944948367853216709354874052067979689686595302693674318500107246084330164051487425045990841162176240133608859782033245448371438327242007549284685673005500999206762598403642169408911811622744520076212552652849439100950111065158160964856424525679375258816354235797987605131348325454115415009859011987663252024873608578428169372765640363544281627520118784571257488468214889866801981477978967503891507768443484622551415517164051617037977295353221362795100722867760155638118332066005614109989043739841029456090776325907956127358141845649366607546270850151026471834780609457599718968926715059659266231533910122135832041850006209322739360950609501147007227916189728231882302812789664675404292850025158596736349939476827185479498630878857441855985651364843281065290865589144331714054118805000633779356833432750191627118861727197463554408695631566383283445358562691527765545917354949133815194071365918531906231967624112921837911678225019839185024927139079702288364377131008288775726712409706381908780098372410809550862408135772708021205561580001151881744401318020288881607268964064004748056718385283955029417318698703976738143395259213737148391974030037676504247101893601011497848045495528009669554826247404266861774196283362565477279759394687477133531882117832260780371664498814168781506891221092360481429985208167500995277431906022555645599673606255231661146499918341957448791780927453556310156713249584424262222207846074068005396337800380812625552065519055242505345135598907104935720244368441028781375942041883971894308593829141821592585469280064158552707269756470122875213613545527273249103764837659845879037533351036835265923227438445436889110148991112647219484367160651139438057164836691053175322514771395136158133902614085710471380359074306152473472112740216972482486446588001546600845848473771102460563363406925810462580346055497845319405021442366005475035294323597425097549584991623449117155138726144824776909803050877630245426165162887544831348849865952116180904060743548530414349911823267280734433939071434930354057354067171562824944862475278265526136896439945312505056379681731048327751573008833113037655192615638463045354694022177539269778288700443350962137909168306119900710631211394558619210052053122800411918546057828827661511721660255762197734993403196907718644442794129820957511663690187793278622513692224751230073735844566214220207863481410911392022923365665026433859724753256958529368223144919103181262637469946872858203229697119791173038563330293992132745395825695913229867036535813685734445604529552085945967830905237605060780807795138546711280639969488822915316228694091388667982194331919839132842171106239003610271057029475802851563809541498149160660988730921526059179038384911313214360173375267726433506734423480921678688118188857268678516269384356373735401071780416136843949420605597060571032335620138140530190366546568208229475127254081483920002495792044150666750748598772505141586078559812165968018293054755000216037667255381554682263619943485063789478566426827145178428604933844606452149137511558425902122562089044045695404677707481499241341077863945905964464390228195068842292214240685535762290700319454048508161234123683371692955840272641098591541102790761173145534732796541107000743088261542771926715002519772676012558659295138205913021070482663346038686847490656612569436156604953663683672567207664994935691092168426845162018046159938172493359933540877272868331711851494072724974072595508779926720046666276107062118325217910719736890516151360709474756847906475011787318319490411645569888089856453271539333499148725711055433016890282887391858335581243183739213499438497657035047228297824243558685971230439858373399704594927925969221827847998349810777200907048115146600162196988804681824454109382422695920923038984276110957764109500691753239340287266121008516619554909549147026794469053689690237285466282876503893123001788896325035827540653313674321567970959254733233229764798868039696591003795909325134572244724045245676990446755791185605431960506201155877012772442240622560883576388253600010807953646648891169523373762173229539290122020230813241568580719698019117820880021901071456618101643890389916121067395013655590800891074762878336684325172448773876635808895529800912428585011511006897576471912621563192962522666616674430555870919399908736580593906331236246864562222286174578231342016197532659480524651233606588931018179644355167717019450687368291957152071457934699567013201329362689002628435571648650846775699054432002057709165990622308316132267870182840181972471175209079623158281139121004772578862668607346094558658709144007652698582854611707261426317263886950300834111853570267361821841981813456028289087225580324582779308740692721819159910661899433563254707963401068074908698380036944261626334900786062709691913435815649955599707294976786121694678746972868245376825946275559710398142808188735676583143247606095501885581039400844299613819866990141718065085706385502205261910932557779577543502168490033263018433621232725555381555549864701794807121096059832457086332599224314900640637177373703258904502423992078248893195153432543239331522122591410748100524318741620773083438038421320427180332933563436870053753962605377476208605437329586358945437490529078039626452327404878066161789940234687415020035326425733358860772701781985881890891458022993115679749410132794873523071024959244601009732460109939871767995386947805550636090404678568013707388655464493164716331137492046269932849125035693055429848158544612784043129924218305639165671086401564027075813850402765957734831310351036383479706214064526854428526264611388210543988151317361622754324288324970396334257475842627141550971337017530636218537506574716062686036501705426022933647402626488340581397017884771374147080139611062833230330062180508260960359291738217862363606561316321839571557619398621630833816289803356706529851589146587103782134837952156808809388640871617584984313442921037640373455508511276066971832740287001875636358369228600501117545174294861947345867944677576493204543541942932686522940103052817563509136038632639470926341474247212399327430894727366178615407281478559995848638180699871960676448559002451190825804480677976264988670381484360816310839581212984597583324222040711548941415769358525951670507066136120821477835508748926865928622043274713835236338272494527275015516764718244988582697579478547949119453372706494742695016863841642475468008237958806919957531456500770127810814601428563609038603935707496723008586677295083561165001448438521409925485378056471488669198089498520199267201891374542812043593641866677542590060939587451582633959144430207297101422756427416135580669151196227356846977756345199704726872791382945941233960006072926866509539701446402851402945887538327097088866895330848558515043890523028758860049017467775061503646268940144834263423800080255050942754664818509053057804964673397946310541577092003978381513406065382372381545404549886137515494806990619758835136061505039270249537085935048407811250420454355151311923073405128761180915796998767249752361172446305630655763528755552545254691791226035996617218134955167808670294632519547730663904071182718713596308180462054743021492413383654948486182879387613794125829645318223487278036449334863027485416792323655749368705927608554998102763803737380025804466611090229138200733730886787836633910036107570000772435313397228893563623799928730191686061340494838288241295825088655909067786347805700016247498699193517553580202701557477266318075473869375211175477543083805924533449031591042868285166901630059414816705780123437308981511966845546034756282003216221839083680117788174285769896835437394699544870462652226019000955978326530450842029568767928919762762405198100442263956114992751710226667031203862370712913566048600848064032100860660341244014290789391093342141375375359299062943306606654655919827060231736414033303199383400546258022040631098832866562483642716423539239094766089029919235002471468792908987308723085306381810550380633482302616587287205746909572683832450966322630866763410359748600508149998133513923190043093436639350904450933493855453239285423922315800802250373949421772658182507639339165292459425294149499697788173982789213796084116637875783686313487616271167725481866940481380420493960935755708216322068322249904441570872716497091355668474173335024932215698358996876462836201904819434256344884897891355440667859118969498739511675902473641193798011965222206650609739431448160647642921097437583945636182387204847213557621324302711207815660100885864092159092067883730928067061051492038867971932161676423299472828470135740618132182921078287347269708391516344311396499976318861696592469439339841541979069506867094475325427025878151019488392650900454015627072264766932330174067039133382131251904043912653241001042161877998153138367136434399439129652812797446695534727144785049281917145765055104505971005338391365006362139973488261115256660108470522642794699315014322084035793041812066217485659427347203083447123876856795107768702732574691330148074327374185850074522464479368453962393876291333917541749141470443641022281059400879434866253104671907911829253512255986157904374286834489729710447276240462049980103153206530234291190325703295062611544228307354599374694198518184583066518157713425393267167644641256190306087952233673790680462363682338260206646493627479425299154825337058312949326647950336722424352607753000113515949967340703943099723261867773520030606853428087184419191888956110811879141991001080461515124336418855411515190316641460776050605001866608295895484840102028919011447841802083173296083119787498756561992367295321815150182202661559783555582609825650920149226617430514404328341852407833661763120180833610326639423096720407727928743679112116337592212632583351827426201524348963406608840657355554404799801868147998493202247201629884039946169181425327557711844369818627060255552087953600525177247966017520469958929206770289657026934321768058458775901313140475710900982006212873376685739267307612636104447583380894306808271616367711755086472281706382699432817483952393554401983920214862892313947387138600502804859875499820849970275489115853376621542659822245737267590158044697022318182005694378962443957210913788740333058527762921206483002069136674040960085868889582558866475815670910296353624231969886900342687891891127449220825727728270785363741889952248115346116425261729283240526887556924229857222884937246102521487836927296844665785307720537862906356396948061966525531330705439160750839358750194055323668812495097134429236260122643781387049851658292849114896844231510312866180538112677268592389216023759959180080916424814443928307100829373374343980936265646161296852809657943464605129433061125756773428689781254057840008581412246429803005217354530651174451246858873831865530710948178808287109771174160782956515385796681699053575588524088790797632658389772506811114597567648420895594731382401942725955886518563757343735322348662035186056194853074006594902826353779530591876900082114082353045878252109597776702067995598627653636704548848051037819652322606903244710632392253112649737436085909392069779283613066290906746219771284221901268399474563615198754294052097487595909136404016523035905336033236151865591233793635574240846090989178767671677084798843433977333909128597189236323839896834360180831274290906197508371410809379060947824267725259304018736570987590493486994746176618453633904518609590669008972668152460001823832530272905612512522351188142201222670443311374802924793382111758168697027809583658010816266433993732572641595780211133174241074393555845941434632833544983301785993648914028766518577045220358787813070495753123841936717161767555585763667809840861243652529009546892737747974282295956541426755833873386754987001208478733870514129034794461473812153998465746388886373492084851874287617773951091683550336050673726010863350908474127614271719803365094170369079267037857873827904967255404354136043361282803158036555103307176566812113894206329078954666073576924125564816286142132501686889172938300537801371345539832599013370332169928575109300425965121607171268975098037648245936711787360366689495945065580762037453910309724355838936931594672624844743214348020412728977115483739460506223203869125080126934719223113936470958244865283460128087012369160475199203777558307538035555118337921483632156965464236224352308690250460691316057009681438654036504463359384204735417145892538248016694531672361600161152266188170717319856338184586223320664460239862240687086400729360996118348223096038493434000591019098815320561920265031957430588349621548457891372358827546770552848061953189211495517110869661380830926006589248169335314896045488453835085357956847174780087517241356406305935885605868861418598990074085694977639241347447119753868567625530910783099434293976039115451914152507881892023489145009664355754994851588388857114149812098590013523223279129023504703695117518146572184568999633825511531904808646481449406698991074580655876096319078882219619977331184339278797673708728225698442076120715860217730252985923299236506242153835484946839840682305556647931447137319070738690341015404287726131055718735032266604319827858597414749878026130582620777214034430245764745276438795167652313579281282458495163759494743453823898566459549915649738878619869963242492238476888574082913992411975520736623720102793755403829377439334439051928798535236235036728428477860040474016175003449647672019898923980299970292881082564152230079235968000432218258854374819378530015727185848475704460583122374835870637911184644703372871847792196933985916758215759191093057246702255823504901526304187391464206688729615120212652195583774659431827373411801614853718885321691939923176071811612879582399924890711342466092500830411875036934014916968715816616313199376373175451771875140715807071800411892413127052952410648208575779304835729985567521214291446768283757967329433722759899226105566250787945784988744247158884265267481482949009481243219487218799979644535215990336922243604894791448095216242659520941345056831210561509837516443967164828987758879035307720156393948879376842434797989167401880181208543717514127667193477998975464613342846301100454435035602480270849200888556526225013246128891648306842007919927343282328034203469960294294252048645543970923101709537833939069118365861262020020740002290951722772465417928863428972293887603296117034225990166234414032193278861145950349066826234544085352275887710597572978090396874302809802790788315190601841249620160584439429782132108882528402595889834276893193645258503216958769783611700450206361424423695932048557905577195429648229353508449240952107173587274673696747911400019985696840001996063325081787589277707609628724763830643082222385359557788551908223005275858699824318962951895134362014817352195651785719600290267705495007460302337099854311200509515553971415646510675142612316983720615571218751381189536881513151531455507013365103018230430440469821934776505042325664417097265818041917558414811094858140131954941199798577980989546291064498425286804279608395896865531916190522859559262029736954914113148388718175698820032580825227231644886935487351723538101314348644489254982039408451264042874483501387556444805284709315497726592561087734336429276335801290520265723466429295046399921557034674718537794282215949877864209428519149619050998802660048129683141721090269534256321472389130108913892802198019681615403918706335892431005606964710759194564390448978875176327718943482581350879025143865638163629392054312764195541220180618138612397213819426934514547606639746256126024733853975663975902749973612947316523739214594051308947145032491043716861205303496182501410180356156344620670868738933892424454531300461969859377330425850811873044950038818886047169275348911833323583201556902805674243833371641225719576423279963625306699721703841035394052651430442720970237246971340252929798739571969934172526227262896809810139304825585868965163012009675816251569415069371962924041424439663581629104800763512146383064494982961949272563766711797670895029894711945985115970366464428657799376196928359782860540003999322422214677916251628860407039211675110056196953063313646405924170839572642022662149663590405559557085995807290448716741872895864444183231973167970739108272316637437159621915255493983496561334730971946202858641363948538235976541285581724710762516479958856660295581456388566019526989425796755490856449318929914283555389219160665421386908505886907128194864177844164871789580534061387267955560555023336921219144409197238886568980019842334595181592175484535579383702884121480661415507754840711700417432465400520538864302646230069017571685423943115942030579726186844380610282238721500468458213319860752086503469146235514745356757566696600204813125508291541297861687813210249284211396223152717272650530899397980839839744590413313305258363873893899380982786099077499780221345767467650275238549409059811817130013197795904269041378477079206417470114900331187268238193364868660409295672978369051500244540049046224070440750596171253249432240949279642621566257202767274885503942267518115082720847111597666018460276514489261167485084461067981298776745343211043243165512340910265260826098594375253205259735432070629389926552945131609826264522128796806836419948923212807503500428921985195123233745861888989530496015454323053690130588587311100522757201291852824218201752782645392899520913638285743956871981430067839896784001051687938412727313886854578006883814210073046176079056529343513560844429889829051377495689584487082792700821711928609112006706331455137401812439914885071623787701299004576154796195438961146127982788189527797049705717676647712867511250756162759256113412304680433590695715728679685717754486832736507830253239038605678569636129789804743186717146043552524352894308986036696424672465945182197211487995458401546336089285789347093442510077326916997295988040895659697479383870543096401965624750257999046044321501006910374432508302871863908296600516820235602256709609344130683907591475048748668693270713110133157214261993446269464064075690842125823763071399869014445988081447358944557908546748911002931894961535516991134907515143615033440722176649670994614392054577537704368062028021681023617387805897391087493546731234821756283722503426745227272853106357333993135238175855379388986911918142888915534140071754640592047255257524244702257797515649497605210914618242208441661781023724070544091557242268421771180979103194288859667460798104235902953172760073828019319568709272054434056806267060657969707126910830309235027920432030130910917090966905336149506784602313817369948870025490554058287771815582716251488958333097210376624558379741610769861787018569178807351764258477884284051458420831384224027891762019198018761503428799410690726939467348240393469174777454879619654799129048276143964894141643197155020629580692589311903219184113549583738123050128307047062675847195274787103158882474033097943983259652872912344699198097754204948783732101495156967213056561224495798831299021366058504748565721714680382356232112247511887329802949503103216626074634216970625139099596953664417714796839308978037022885258756889315444032917611982490563353883425192875112469268148539186636178651139158801450136558989069898556278098712656279894368025189942764464503799124557622127128818524253872200405528901757478786588996680093401452257752650547358530826118993492521839333510844935171755333065717059832013079972750467342613299322181006085723385321934253895296394972756147115038271228980063880888627155729516189798797488361303966277530515858652876722758539711854414541143170152952406930756854725382602847071490193226312469649657461815760316584535199564551631506921625785696116982595296379608191137740271670716677934090992430506979518872408555573830563346295003871643665551258736280339156264701605321529006605963624353529638517750267086406671525714488390961238320980198670375438611387974242483223385312472454692368748726740939927322649731111917989775173677198087170869065146219504059030664935066608439258486432446808583084857368413291884677106381411134981365251240868125758378149796846193455313254887203837704888697667914370261749015704080175787252162668349938248262468628909470043030175563107013847014926181718819403157034987580623902260474450780556372378916747703569339007947576587717425752446306764188447580333164355256523071446525390855203388584947975839544610189649350620991952533856244050406014549287988386625292289914888418367666924229217692591909197615030840022446765371091362668856422843682079356831114681823902891837696386623868354235282765800716249022082630394911729127315676252243374572251000246362579228083071322501172934799780216399567443296388396310764469578578788971725411870182780643873854891635046543309124819167700173192795663137231162062249075871885172489845696064472660740331407125025371239516722923087122214845513244096811091048113594889784118385028873984885110556151967791970954387857705075798202862443228628172095234571028221493216988642554062079983434165246929893574310538378805489545938922465967737969124389349032725382975938328157078910287870962018648195096517868734138218569972667303651363860471351221253649093829815406200095629153082091493210106498561330979804103755360189905652597858651525463480587834201936437626286191014107043332022557001960358721805589980474121157001319280110712457723062820769959021587525995341933666232671894067140583627313933619726542773943413138812663275184591505155841550800439008936848099310713071160670077561440835864486400950694286013228407252077962832371463030864208893062590277221008413447749505999693190817071264203991419409093408159475744804141935462337967043953893262172585360289526717437918409222862472411960770401866643674638511436105359964363811282188733173321821711091879228714527833911406867615372305273612200575556912850666504693535996643918491985763668860601081454360219622757325070969832378589385003443931134541775976494561704367260147345519441322286068922842148633043007052774069790493565892163349203420934865498022121272588302205027859492537134522079133660594639562140610231593846771643040801323891038222401999198777125617986523898860722027766777409670146242199224534896391402655931038910151979183938145309931611562215413048445059912448319143986974718192608984413241354800320071048340118867133900725842504628079687851280221106482981173538774638971788290163365049876071247149734373172869647091919557935921483432773954353989271973485682751935398368631393854254555977265909041697918540283763749847676852557335619606498169529415823435324718027555468813992845157089235061317401412221675763507850668273571849218040772841525377336369080600041009008541729567517765197589824427277347204255156550929920338194901013868166998102379140574205623099272615017141552597421232710678213117989411969657468221915819008604521520805293034391541008786019309120327528724623090110454342898188073727354363373994507942239387548212129520447179344157379998983957337796926710174556924896511215185819245210598203125060803476200392013727140798203618120140855854673811950110356569895386476351264625781901359772384729640030197024527668839126046728371231416017774416987923949220351576125227770313233317612379076785036040955510809912358490656648652270389915660426811783870047721102739667100501988433527949479533925151942052018480984036328548299569008660211584675547796544669282521181375824398045595570478521054640298672096941401750593879354453457161389894735216790294088647755680874446328238705945817443261015373705475277618164856049157550472516581272674045453060659618543166247834328492638009406555952555968451248194533581453403455476960048820716216229481516644857843153953617764542001260349579135534689302684262643293587006130447794601481136087356192217852631727088112237190317680890574956862392108868419056285386402166685325743281282793755404335602955067664544060667094250903033441397113125119610599411567576626808747284631865646537306547893592224262878663469095736988063932791881053317036315136221349245926516869971431433404518477730245346204688149756639451533189021359485114482493954888997714591479617293528011498312414102022974425098690028545099737669752229792264158589373820839017573296398353635405300225330747900922881967405037056003813711653924661698846309807975098603913363028105811969559362420402873914433771720822615157988764504357188338959306585623131036604234349029800324888473028167796492971468355947757832071328943560715419315065680114420357633180012115499069687625953903027395643126230590529703044862456423720827853438281545549296924328445212182935456956317745945575639777981168517092941975079617500544418914743698724634760286477195126866031937307166338508843789558928966751490992933591493097345663426972044586284239975044275787204118459955643924768669504834321678176957450391465523603377784417367214147411410822899468109034809463290817780538577986796462032621500905375535787354578775008712092296891053598579661902464128542063141306746555167501392762283857156850618055112544123150987890857862088019656227745263851161326904980330023922192137228197813349852464747102194989809035687249925919352409463876676370210718078643938288231747761751442282684242669819808164586683452480894720657916527094891565238681672954834513675224456668060088357978417991041232516214858635811020933854898509403383760175575224682609504112936750391147773673117166362516286273643998681922900593768421561857298363111207063366177183144536729595701978478270977004986800892205551098349642293005786020915158590618637921441158255325309135777886812378740635629987322961957992046127371169120863871550153408534104775282590321844011371404595121359955826322598846060447287354724542347041315199257904767640657785271990792217403167588278105416007283561265268920544216154312232566184457457789310326877915039598184030829911140889854416827536649993861178648286175820306515628960976048097935507258207118431540590771894007207090378934425860924228819958556884283427631742010798749868035809229049124475721636182611069156158729539021716976885702309641627792631076598256351943784586139215436446462393009216403958336371396683865495178768590053229369072655138897090113326043323778278418636402431117340763598835687272525048979056352702313730895484376412842280535272058069802269407674014550676655146239586114051416257659730305370156310724837166449927403832746098939013888510359602646369618031784760941456819762324133187727936551820701459677536364785712283462679942684666862666888045150207963144509405229135119411547230788294697440187509019599076444265506736269999698863969755421371730176241978298445313074386125398571300075992799800209386491489897217120072070514573930802201389009342263302938196645016235055459120495379465292824137943906445898836001939578027797002498669547677677800334792571367393153355460343138976479470825763753524370941778061753392185008498375615802725379453100137115052757589477833920935130181335776425255524946470267386489931070706969558680179537516318547929256214994195413742803003957078709548958176909345961641860116061924805185256337345072709145834553278447133948603296524468953833824348894094816587261149929229267325041107964865554264767842186288644750145875535884818643737310856157851862871827958257399294199593792258485985585286073523675810822621211126428418989150052413160224223032176966046640439375787874610835309128837435368876895596218813249190182922819889222302805310366336442638403521829631101523147327518773228096476282613332671611343913961331115462088795634151219341146071244284762572012678801290865492225350888157940090554800413773598815989806393273356953974135089351711253647206716452761688854385852591097018915911749443803183100766416270613119098493353962014584097347708090389990671909838100611137197102261466988009540813317552396524884252011541266089394634940228675992139946048240319994586834588686355492365711702058845498104482745858291690666368958250593054096954978809206183550976361777396948168174640187042753385043449550697120923149526218496069927591396019579116913967547443500230351643554332107104275675536783938026363387246435471367739742168161545814879585344585893214331459916512282802677083232296753583827324953656713330386457308325808192520957701817570489912243754809470772766112892428016841221671560763951450533334553510506999150144630246025686199539948989171861737361161127305714098602046988391446488395144974329710834139929200476650525848716042002515494595553687186581347121833631603188885819835298083125583612951411466822236881669772686027051872375571547375522331147492995633151620107064972390717255455772536074894367466088720458502632943705676717629038988221357184325142766168720679553406462566561526264410772304532657670251311012902878859170874888270863719407647833854580852885392549762335563075919661339780116514899444132155079570068580162283257890823129216615133474520119778144840481961650654264524470551194426735986177615835451495814171725591827124036953399050419553830184011677738252792322433657095243360256494650854455739957936601488335813960248454884006114531373973870336254057974917408822785183523273914570019819352382168133154197614772642195826580918262659216905038295301213615460582292724007654888662474581949003972171397300552631375957516739672493827801456936345169983061007227549955326318322101730554080861524874844755975938083821429965537827699913905994442463519020951153870989361848878047251201436652218954269430549278061946352183068949447870969245153554478846495694508685765535054985847306342839397842288004360025580629698468721807078270424333499581079428458269520855703566580142706472289241009493614143669976110281390243009836139666064560826225000806892697064711760254915776015055167422993684079154709007944074241878977520815889248419996398421594001446310407180156775576536840737407785339042310622475951601785032570029584819830066637022683483995850830362484280167464215980446362746917602586546532976524015286544630237017623558893464920263544649853842145931163879497655092735018462539563491269006840751225630258409882337098551801275725146918546261010000055980367733530790602292196672270875133079786812660669531229166937392744488862916357266637268160135160973193237256869960720159923817333219194723902822612011686615766959451207498884747455746013441479207322380371758262703377386202314300594043337762415393509599820142076646372345185831426812885788079934091110226618296957954657007587268015964178824762497191587564636573233074516088118273779552830410557182633639805118104281255893095561997268743224561796446714846588194404615953884959128132217335172086381603834721838583516646829491949175523671219488896396346413260071872059683145715486720698884906486417404754144402064194285358372126611923521921654377893131504129288761740302826970590082006360014276913020887010009380703134221237608706460570799012809745306983468569868826631303846742273502273175078269177066068056964407998822259861687145649742946872450653388035899726675456304984916324589111236920918374020723533762503653688368507423994641847860313522082933065697990844322652651150125031100427504763052719339382747933121851778040311200602636728806490166811162633257198913183484974279759480474367285053684471518921899281706365916702273681842442436013115765473582862117721390224311315717694796943221568425147246114360195620020194942421462646800769011260147289805047409039907549571133087862624105562216833904987099784381419141093636178335030927993353698715812356837137666467094644817748340398680425110487010017086417471412454983419701143118806565143721830782065330140977985765714936770770366203278101464557077976929317305204480824919077065808158849730028585443006855945623587904841251977255808476784210596283306976530874184746865533858306555731171493811257868257387730786124137003514455151577236596198245633202265678245526476746483083260337011605383454601364050020637471297130440562891663176461315056112875612289446309685771197947320448908545305998839218657380619185935523217282002929916835907132395532051993560387422181491977396835686867408196730288046445565768575046193164972477288192570224792572657225758328172909858236071574376457371969588962217013586072377275032460089560837908799108443482951835348780983867654460382410518587287118489629611645430499327113024397941240528688802465293077423458341973424098477265846900045235492789218398741864724713249107312470950054365243821468993230116520280364222055039673971872165795924688222221430238747266466272848891398758483969987349282700411430332230088664927567562214675707627142636967790180449344031683907910063361213904282638205769063391066144180493465173399085708188851759419289600234727267201022288667648125685829326126553545404679271026982530498710253399273473715733537967167892629351900693824750848201774162371300738666031170944281170075118650813280114607876265128730094479250882113432164357233616284156905055045858911182020089323259800292326016564536152922795485882765945407052485442326076803830869040819293694797064850077211728044801470179655078583442109515126947995154697040524455025913188014205940848286115597780181643457925301107555074698068700001760766148747308889192249074730893407260073204522370754765922150999959598048576469847423103107411599612065179940501442239720054079227831265056116657149286720136959487982531365375821370343489436862754839561044965827335058610868055250366884503298891812899671242140632649751834124385838189896408323201978002420020255582401053516043000876465682237611685165522957233318349625303024832497637145591199168715588249084331977013580582908214633347670184156563919292725710683521895650062859989919476867690114511530440521807855501497249587373218562833926742510544720087599414364527087527364811531291736928467706436510492345457874526675046892995090853773024379034754872562166369254677843570633539127082309597051851377875890335403300262668990789163574801890376903333376831764883378958914977323238860605729624133422792886778134215456447962780449497941238197091334866965596732694130784116948524332817816550743862772714269234089724993113095271833447420260832267084639481600879416108751644911816584810065149518323863851049929953009501739884249656899726180725636182214908162402833631844191763483261228627359507280192035744637492366549775091195905750631711957676357798320608120290575296139591172549135165478660966391062929004360721136298439641559747500570512033357453430442067536839374194772010774341257946371809430366590655520878694635354467867503410103992291569257602972507058414178035727724341668140140903195656162373905921633910483154158586288616316411874287639946696338753503593111516393749735892277511657340148569255237271431596200343980621990649247137996131119786738625688892822226766351724592530549822990791037501200862880573072687439697038748452634515280202654994497233139583209885926430317339525183553907763961656623319792564004939709450554893801848890002835646351341379971371388688134515534580570331300674042884269963452825172767695432316966490563750984776064335649818395785731818376776766279400084808342418034725795962708020939943534782457424974187439864835282596210821547433494125886184736100464235846890632876430113071843180470169432950899956122822708664056992075744668847584000306044286419006401096514705482217458745599062139653997177266714455332892502066369997540733846804448018557577621919426038393622985193835690002562791479528212354045407225255465885010466066990901827066792791970074723732638653951754989457829035915548079383292389526134737188025486320896611343848496906935038721268265826818017257293977547780742056197539199835212526299280279182874687649386404417008628731390239896454025013649459806544470762283253071154650128293593353938284141815260512581396962650768786231034673004122981240186552988856174934513446613095252596323896729954315726259772055829571997803225573739171143788715344814301347941029001374844282017028383220497745720389856056183778883721454323015755807954187305092154038629080079070610080697811168506386935931781129238831165825374445183472287328660341257660710589776740709846236531071441584983111584995282279479092839692515152853721228220764628293437461135044191048803364359832772307809402106931104210070172129096726042256208148965926179445439075263666826281523057899884242523717548941628208378959649391870797877531253438636476461826951106525203248782420298249111074366107506627295143977387809483692775170369358875912283846689932660705076710355132584212428955430200477187849299897283785433525571922309222508232944932990754395912802491512497084976796598971235725345980468331178731135755152874667129068965042844361479328787558370527087938680523257565695778520471927646599108387474197291577089215662473658707712480957040493755227312435965249950057055208768849090521751330430115930299984937873964804986276005610720416566486789267427783491068437302511533721440908342359179971396055740346692828304064455625597325202993386028997542822021831652601873855154860574882922814019625608746337657090535043800807835837408319603738676932734219337797138455821158479721656906280336175385255676343435019090672463625562788172190520363765030773750723806779285770165920631860328074738826325558511205642510005301360708341192477770454533009189083419428216724546334602203918546312167976153158045600746854942618846999593387171318284642185700217743317230516965912156836324840875532521987650912029978434590331554191263747453230935998812774646760893669726282824314622976367941435616408800812370061178466331759350875468946527702012215247229975558421645182914902946905643840526857279683363243706534370788531761899142618427211520218577470941994290398140589237588623584118910238668865135210648718499335005985459795945667554918100195224875653761128784029771064135237110722764533345660022152270261712145445059076993604652599232579842599353506064871043098376115975576138696530882608883021842731319059324942554223630738027344415293085804682437516043051637888732784672627772877184867063641092000644264030309565684849703931246022993188776901620001990652813584813190520478396409917618441547961269840241778384786667478822136731302770581075658592539034330991427768950923739567007742022363442735058916969586776888550309290178792227321300495264614778280926191245249940900756448166896678393803432199781480799550495463703148752616138932197382729260248393659216149252918287327920166467561122971183958927608609578174159536593893773315165509750623544828246951805918498331887874683701914747894779678731500262424295380515700391001676761561868351248354990724642704340912923415591559110089261908166524412292186976449012351614262244839814253501577403327065676658624856124830659325039026003635432390912101223026890038715372102046311916587627716667320145674384360194120437121313512300764248019607759659392347862583646616076682856040689831628729759947950524155883058610640087643851658168586338951262342451290057374829186272426484725616633120125545120071082035639208176690575694455161008795091769370995104990700194573264425473721461549665264503445704321433512674855426690100249023887470445448491398326586767977042499055282395504857044573114528104770828044744507205624728463801127447371021076719388073905621191478845038540378662821441858194363022758829308626819848585500574801470585160928913615306089122218214583630955526239492473328246385214582984951403139160397771863751956649878433228355206069955707273776183601112851582805932156506549333247677307719796020225576669298829513082910467341188708926167169418713000189701027140303560511317156139701824612267606724355077841614679021308112776474558234472401777758516222863801813778207665263070238665038066084998649571096477171472097544886366033870927480294908501521008345628119536244561700950263174303582346364797595561802192079628115426099172083588843138736260334619041626278731972973098044737449083621459810260494034727498221484132106364233985295211474450124574452871381465549557316311675110574305044463725958662896296744935256258915045158411597487827907485823368433453691981244494494846858694729214640041825102109101091499147430327051676866661310270857355709438742934839692391190545620944051565016248537361345105002542055833923975371673440743401138586354714009105431625937375190552417719403474796853673712673468321688596072351901653605986301299285561831556709013180191550604773176042194989558359585755590449883723588319687547783894909320244549914957518538974348958568309300593096453347632674211088244280184456536299032119749816169058352375379042452359087520016719733944086214272808194075321467278235740724689609325277010221967860944189912268271784500500636159590282063943967088864531925113134997443165391177859679086522605398450624791524945980792432233176104947118057495966243151923890320400174272744489971768629034543389721703480687937499157853215459338288986962158247264292417847323693732463188206838744026672235374313773477157299215324807914899611429957557958210089993953526075324219688742390110038329500051085826499922905114950637875271688156828391155077497457108495504192138682549216666297662277977008630928865648164947326027959027773228399148688608544655208369013545678137878958408697272890119157910414705265358816789136537316196562965725466037099380994243408758544129275147377858812433489610153540282450909816654171094625920906529560122194251432456212486788494345919931963055311608018344109719464689541314694230592413875788117536904170295344362258392481082048625902106019791279077403348781215775634873179035708518366465110193268915673658501266352488927169241116866583303598531081012861593541608319016551641554014724355068334160836214089689406339957139823236700781887907000543802690150626821100363986219261124291458873175056283492442387875326461137916333598536705613657786081586978735666337309510468565466735460073091047704842006561763186426386466374054238866003699329095926944532177240252040572891461399664909914680145640998878676538202564233031592104060535849385865145657032142263027706354095185257352299653897430502805483161578842560627270675793316528272443165323753488423354795589307940090437351749665953667954390382734245876881228656837622830021687320755382237453059166530216690259259954342635861804404936517408372183239168035315090212040335922617425497121493965671663484589685056291063068654595113907663303157288401778788141037135714866485277988644353874692404059005849954668242316762850553531619844448147877148399130913403898933052138910827870732520525581394862752147101332708705669977510115096291765484404954767321651087474816646078247017414006985714471440793519651125040007507779454706787762673015008892923262482922169531908579194877040363028199712232670328206387142142569077866761257715508618099090595676907117926166995439777613665879048342094858359769351538527397023468455890217658459995766950722687519481187000602883754984967062949864677191569056861948031196078009951772358699382125622019941325268006208907393044938165375735539789190409280949268398262176945380055893731973242098069995030486162185928128223863277435145394812066289645023384726743319372072781816184160168525514325567447780300636791299369956386159039333227198401970178373322151656856709789939242127652893161466864400227544023769776841751958258741763476949528500348803422672880740790487184596232647970272602462359608952384541704192032593007226751702816033251988485080397438860168270995375784585435320379836371786318688452710286035168272554366316903572692165733205305722357305600413358781266104864920393430207208926093133481156368122382147643673909038860203471350092872229608810718078637296209156975008056347569162153412146205235383515072462993409173903022080586161374046309711469670274378830226238567455569140937482874918484503011739165537943611286990267228077394648956294238814124717012071145598223657852468664957140127627014660285974718967100653965433164661358505248511916521850792381354534899956102799277069886694231218959329471718332833087986070542556085894887274793620390403785122257394443994434674586583033304244685145354003741362266442422907196358687601587716541144278220077600055512022667340705522586154830492529051112217950565885237794288900375180222153053388522725164363362387573766397585911205953878844444330118054534836501304697568944766355016965415129930151221215005082307229441602573077112182597755184643469913708307782810100474451582738704606398430462508689998457645160330418491569487271100018529122081241318498812185759977999000943823673656694828837271626702015069362567262478351331641659486664734172321607223615918847337344512465097595350276974262921024840020198806158401691278153465497788618839171515632475276667891707804034319826435301850283185770070243854824813232277610424209935688790267778774394005410841877729293939725591772990994704650715461247119700162162612281516854902289835566313001154525034096506405390241998464452087092480090032091884246921186650946593972429751770996610645253585885678342003877197257728178918676604894350768568456847893499241966820599206457632188877034047630997652086258039636565351300645391424486730991299042959128162036707594661718365760775894088322915079218394967775068954910280073043712209417892870209243795200143498309636244397172003006012020912836942952216499876519659572869294544558243481827157754371047120907931829066944127905188996286150287460662466095856045587132774480066579332489120050541304397777350217736925112139336266888488061344870976943090095592795747506871978021305563832695867361631548535176405230423917140011307251644006170746715143112960656316559358392522892291352121425863869191504081944491726923831956211928503221925900869863543490268253875822501534164299060284399818201131591591727443420721091250056145339659277921972538226568017500244467673527822366427528471483855302801690578776503010430277347467609610083220668251352437233088452800468723651996771043645113882212863043861478420535245560233821140290323116570640389121935121662292598644762763800052373240402487743584953982896656870485333266681814207107704908840254634718507562037882170679551153255107900739370045566914965736057007606463886905830115035886470342395878674163087780430488204708155662023146843075919665964482285286369020979157770930968147963657443252818314049593953379919170321492541442066324319655747086284079657614883606045350874739660178148513327593414828354505512867196917771190739557737855377037409380006130862896650850447202729929430649542944443025271007018141676315219279503065588958031488965600348512355753573772637841931116479982056575903240655773261819645524228291780043800725027513160096327282231460757432311698228196218436549524641677289028979606428767348454749058297969439587085773985401696481710256448474102149661932466524874463572394851079170701040471102439881353704785436533060536059649082865314370998961468784910963318997689274455078371704742877373846639420219311555689305525257179162599609465430356219656934277881507924616701790621002665825760164599727539628042746211211035807703254887586637362256463476473119541715818893916789522307914662759096759750952490465941269667403817619736094884406527911576927419460013833585733055466842287540329107110415038205993610973783350970648656661925663435400809226697097842878232562225640586389028528445923921703460339436410748238834479542856332624220274504282072109650278645101247238908499985136181316361703466534267266108827224780503747227543381859045380433704041481774712972453765991266050515537828304389824717953628171670421342555686972201012863007347037203498007244790618893362838433906712194883953001338435564102940342073063845432829925887454429174306728050742689562858915153659195453822567635513938508372114433962004315984998859467275750551605241353406027818972196166295405926822478768561934791521246177558503074245537159586370916463211808359551041640139214845390383330211103521957113846314994468880710594517389030221848265731802806179432512446764687762639738949130394769304176097782626696012045359720632939540865917040531264699006102645962381670952381148016110445375420172000188808207372271681775003674354178396390484594383107442617675884707291882680013969831373755867571628812417773708751090366305847137760326435892878102666932616155169758918087798688777824518013054122764074412255731248771018676148067918985219109119859666542174830705144882470823395389782960382042558695112058163250205074459905852568486077178605716977955318354601608419694212848902291796919235443620322269666471475273768780438980425550636164134970565194464544448341782839955792993086779530677075918555019931351736930333256689570718298816309841317132245453111589458131428534071312777182564493764995013964298994477712367819883461681209577255401698362104239685241121487723191166874685868089228136986343978105858459469473747213712661808667715564620855939200165667587400572190618520805768408419717895265440770697317844768280978773720396139933147306006652411116420604824625013194686205231634380923401221240032627445700629457150470140991947979116624604860909679953235219632834341070516932376670596263115226159349603979327150530043572899660385576964987294348309341073660346881712434605243227011600254141499210070412026447374989022422261069752750701308435154937922039647888321556545455460223294768226489008575662935463069647699915970621732347331305706810023683087053288626768636299456660229484382681053546277540817727622460878846163958228570415622139060593267963774288272489677516384958296628638161360452832696993203069900703517807933042225658712400980109610492351015330754921360377554535680764984819081671681656260450145466098105440955189582445651219838167429694491659846404031901324116165154983330961352197795883373030011406243653843655132938185090320227486211402305716717672295758275150969289323575715580231646904043703906779371673110288431238351999745325964049012901937653406425598776326825086034966047082343026471863280709354124247506203429304275270422564670899780601065241855016564271324693644996657923503966338088432895247155605459248868344007826119695444851763726540060149656529407844729880468708879081387141063788899558886144775239356520955964546535805536417246804292052090531667763384888774703257148368025438074034550853362247860713844679979563766826528057226540005432195431160071474722506258947395468021070231344385354922702624829146314861775835120923019983328879707453721115716451173717164999326643918855768784557489354262434488606032490195083600494051944627205796507151215945622482670205819348621521841560930385780569399064288973655723170933300551438141189947735526057865466305601603662154204338158841490604687392777033561286056069235204312131496414503373141255925365866751166727308988363735968763952456321294923635677793130012135529652973656456114005151392902074750452082974795487387511372289517563368625084147934188087128267739442967276394938796732931747585076641977454538340001040961905131039422383835699259504699580408315646410550820217009915360985598385861086398407922815142840389420193910379686388379672478314165873749431556193342918848491270817519851301988104961147121381404610494616862425130399420232444609118866601035276100450945288636776796479740966092244135846706460914167495384786584964377123569984280464958359179459577543552102364072925779069359309575516953418416480975245370056047427428667304496891629326691473505781612585906080782168677174591878626513119163528933490742869478941995362621103991515255769499389211505174904225804043529883799305730060787086387359774364797231087533565697953149712837206823311604922753935870850375612204099324961490526311436488064024018082482872781277842590462162462864735318984370724197901510810656230181102306005602222320638599326637959572509680788884527061223141100601158707106533887107567058070044600101518024238314556158328835876264225502540643323914346233574800609755543710868722021930786020391872600712267522475752744959259302191010268219637878179186552261104602869240292031061170817861927289001648538215725118254193845978659223660989578592207547836729109606451155286908084644489314719069008274009732542857834062213857341452145013294182486495452702364933717832759497106274010006533522950872738590347030730090245309207248988906587732423950436500727680457630633482338705463460255889415116933437143699611666460867297229466944158113853371327653841150465621039752030396717402495984604100634726926668632013324815782779002896511247476220556636680875961173176351454310551092946812994318897943388859799774550081322440325440745849831985185659285781268063166656265078254936143644604503326628722567203809236170507736864333090410828556437016997795671811878219918497092047954635137863697004781274282941100553945063925942368313661916853348476960953727694033007465641406535610077251391281131026109613171346620997687014699686882514252843219123477614516808365256864696274327357982158515620028343363782276721469826470705061373472722528671966872545128598164786814407805948863764166733581596538895120409610778348202305855070390901361476024595624454989245175202025745120204100108134971030038205433565308559379454580982674676506035280874726578744544160998571257713057243754147834889869766358161937013660871819107758366901923605990571073760618160569647790980210979205604069501648998656393458472108868205047631097183702388518420876697625813721199216485366368206328280882324677256834907063119790737994340854008692946417880274707687326924726920025617521292401501782759476586306304114519974681810272170805085542351963581579431427631892253376004500504921465020416091146291453854028536952874714906961480675473717781998670497439982489377487043236723143085094286463612998475812636165216831032419114506338006664953540889328996528885333595930719074900610083888958583036519916552114976061271610269994153113122761138669679920486787384557319631138909430431892388843359006307866412820210203771943008309758326407342710315416793273762723145405691041770784112093530868314579422202667607155691276423688447223307176036128703607767580146220699757604146952122359724259902454815018696444847021415931760594554690094477731599935940659771181586420935875718557792877357075124043516511945470268436111350075839623628420019987203023480811063973289920461352631641751029015474485862772961271666258430648123155449891517986234752190836859746615316046120812534648638115460284755301942883705715111615682764269022896376406293405803841131769858182200262326477214633178164965613740980695032774473547266538125746828466619675213870996062647065688700805541223096093702188501615156809486039022432831742753138315442207290231947977456778538498630496168189822054804536850059891292929292229726426145700793328554801430734212990730345223115184238505807662593055260981560887393153685417931516371983521631936136197634041693193991065774212279269126219014084162276075439434391149424986185805597368720164300240217726553513387918685794444868863550969200929043245449029859571240689337623728140625321662063036429300363628238567935686004539143701344217236571944801622012015655381611825118789207688103446893503014183844881712923943411446074690566955008660739477924850512792494171026099824930345088994309952372679667756242911994591108774183312227703920569103945373543525726351337467737537382434603942310425288782802180672388484023111246003781682375719618967005353950479639655809973365342854752604661412792486873256321238939075175819116116759573035413881848679340412295937023309805740105990824386835723680130566005500071125143989762081770962792409185200933250857434465181180348476322894226621339092906133685233160137105213887487883801554568773281398078134025367520385906033993498312948637855045389910038800450369589375592459598696755509613794367709576571630388434881554329745504391347268670008663479503518697322591450948457985796398374995091841797082650226957454029028676753724727673895223718444214611293178570338528779178844930892480865020915824176585851567762192532587373890331045248920322249436892339296096857051211017292109843505991887942683268230057610901496336589224249763891929083514886841504701825079180461417639229934849699756793484179722635065028118251812371793615641896910009523846168101830965817846310197149218617299002225862390257866027430915725549719523639311808638141380293167088974521938156341191568256741136768025282310783787364429045231010020763692957537467057013685060545652355036036890614797614698341866464662627268814759453818870678994527911373811574266201431964693665483721605373983264501376030399301296046552282380019281536294497213896391142378429681086491297665379618870956383936001096485084838115486803091883567727008875044532588277842215938715339816366555433212633931568897689962522548740136792014629904309642456839472372956580780801320541890833233836003478151796994459790900236111465410759388203619880653951513415568731974860287846397710386525439125470847677346246870012487079540876514973748534347407342678120803334197692394305837405934088602497805034736243235622758847467578643598973996960384666608650191854181723136153450008252529469292574550861533720597822997873452149894748816755382511378174972797453829629621133006774542916155634234927817730595334823714707105558598120801139686833083580715674126220832180985184319656601003889034268699145008472575027196107159326358434628179731861571550160889527760676643751021726023193213726391001969258454012320920503702844620518186177266462099521328400457280726505727662169614558808560268021347196524906318050787307848504601537782661112753909393283959939577005996518900862755316823048121646625368962143867338289558606669780045488805780100109092682989890464657399278324088961768957881498082792666822981772555150373965332945297290776842574877626149492275212739176165355224132968774817721850433738569640098057664943498737439122094818704177374886204716230670726913068496688584949876123717037456561494734612382205307237198259495756692028034188854267923408930239318295106334115798424286048213338512805829291488477214049439868097231481492151226687754132725785248811286020697955192091817802641136025514873355410461011444711745801804294412872456515866789735686537190604507129813555233806211135995201886325353772519364921498426705847972721603326285044032721340887840833638920483185016801495073784858335591944565822840413519024872044202589770431366292243223437597550620878146480639286852096169347253296804634046194998712080473196138054446060329945660737279407466039377854401104205189588294033745535921134610859409038461523238498138941666267521488993198093681242575945277628138774651988539377911561455052756023536016392928368492074025043177937598550831615471050470613997389164089334808908635984688915450382881814871154209200221857805403069282678028564961162375995259414256483378188355709868301212388875918838513817696165241173570780792645184322693817237086846457780652920600493365238577656290388983449711388979142567642312959489855419623580380404807176084045273637063816791339270861691140506298863547694232473480956017912492939903673964240984264056791174133654945195221140984975823922796071667986634238046764059708679425043354223997040636302668333874079133215690124364734284854181315910292979032451741979104212310779309593796501574041030602670417975193250950432546527195884309794388289458141680918388771879549681088247140904885699829295382433422826386257845568735246948209629569596946941216165054465156687908829874237987590064726739404801500950078210746740732299514523004837524901017412030754013085006600507077757431620724367005838348232472462536761106154474361709807972768013358254571171920025414604383916924119272565291577053209187837150683762975066631250019733616445747863438255176373274432300290399979379353913775825961656290956390885750421878825655917143207119905362699377338614561638174446846966063214006566176341661754783907634968069022591630170238468589906644661202591554663503841722032481901855714985223698531094686730182858298008883336793364967752107159408202080852706765283797805619684369784348347161273644364634470214566056192046888121992817959412128309329579388349731929453129332964733428012067630509047383630485885614366525884930168242184618687303478419762702839851563078486609914273178072044043073160557076685780701611034557572918326526465690737036172432644313984224534374983934273920175839221741355981906414122655812478859068953889118582168691258422199577931333306313455418775640787227364233119668183037246049599287673196580100747150449688487589384345445575938470907695105508516904298981742205642424811705793038577359241850749312446890402559718149639695971561727426182475427412976626129999054431133291295163933980379350210780441257887896954455174056733364131203456306888447835864572075811289725043671965865872864616839022214061907424624028947564160485190461292687195216533403349480049775605988809806811015181857169130752077352785802163002408749971047410558032281949934351242850754907225588280196060771992782050118414850224961875417267910152319404971617087723015464710385572145653491194810256613591897870435495464969386909934415053299131703437217720793066621142757091996005599192179984723625227323546827587502032949077967748849088906809891525659224606602613925155225966732139054525194071872722396440648472893532178845457520186529384733253060291781172738486698654701234057046738991271928955221953552764523715740640115209039614969915426904929305095536238793493455709613508808432088717333745071880067805137313111633105854820827668924097194196616485828366427747206165872316191280138669235946662359484320298839848470952868574210710640337491876246165861481840460171033894760390955416668107499353176292138825696919897536518001711905766204097961964518365577080298903371167773950899574366618693168222279572528267169575300485215100874968980707048000978134913645086730156417960765315920174527200139658825036465827250630008296142892984279751277344453072638962066381290679512602018392368704180379024853703362487371360772112070249718603122518447033654308674847725668787342086417489495291138089586251484603388181709796352151181695370777625200117352161657576357956063465571995550215547340484804297026401335191066579938991218116813586841647467453331897905247273715876469389327863913778150369701202804099486308761586904925523060205630559713217604197615632881189821380548179730834051870225734717256175529533641092769371518003893751115699320389280012074020411184517407539466801184322964481701158930775919324351588412525066230386832414575101123373544582090332964951512627108102983967631008090043571536600253830490580861019012214314638405680849349550942360948279505531292848023161839591041444529491424326235119671177495646651261507988696824031947836767365193038689558473734601522368639758804229178019311172487182182536703596287286680330814513338718737290347522235739634396651252148917256511181647028230724083484827742562400890526985618978711255917126736169847969993377598847176455235304702726487862176840192957715990832157542344319475322363117134017496848296593921042881542863855249623522854091542027756755113979387062951384980782070379621303475724623434592572697247576103448466709363861892145306097377428109447993944602572935804867079297336810853273758808387560112958371376908198869916261534097378896755898824181451887511551736873267610412204380713140584187514965087762355670850882614407415812606632852368187408024679249434990835433989694827025316551248038285752206699286991435154916044131088328723803643869105070670627627360448593718588407980095710938085090508345043625704681457662073831585604433079563917963050838212496976492132933620409312810319546565410232491040655223705580508218352836306059623571699914156810788504101067661962617064800392734938770257732349257921187982084017421546450694453195220746289389135364162712608371490408493541661856684210825280094516637803492176004736399108681545271345783385543201319156664889844029228689418297306362251925958757102396402261782743163315798209510620482552065882971285769609282808989527634322017798197069373277318275047995017391680982792225158593922044610022421588985152077393006754545227369343224722703674805524859659310487149352389025024775404098325199824151143992115275301142023388730886437088112714103455037669901686471022902648871385993843448703603177680933829310814763880118271088743911918416154141648509960400960788480374729524092032860815679663344083283472547807500616884773913090825407534333866022650615510703421793600626915726806169031994804649344071694450388105818257344542427564123146986770411074726681901515528935779290097278374108920002478416017030380704763873915186890548510020117212724898749048900663668515589801970705752622473191846025722326960561608701179765186989164409656794125315928301650136065411702040003775001138186251483095086226521969182988498870535724397567791872243799546763657185195529640425210003995423848535795200488474068504844861787752080833598553525109648610158456439359363889947369688679126591836023305012453738148196811201604602440001197994313304955995666151872614886042165631084283397524811885598482274342639522572282076144840621868394869793027286185514999181880609261028480242336016357697328889583246274809757035181092917612197948618841513572423792945169535678464856104548271110277587322094116433202093374368091020558595502679000371209946662932419094600885254490875382661391734768381350305726795180048455149921011820718451347061214979185361584095502848275196418937599083964475098796586654214910541459213965968671312203477099324955768257598576147381143506300677883360071739961457796706369304837168853799386785440618785139966511982685502498742838403290733902786859650564815619277439141516447285959536726236587225855765698391229659417545782012665817556695686404478132469688378860162181650052897427273864118271702090323353847951249022506324117012794512618647496897797839205765955056826937858332045403412595904520634780120950782717812366240548178768025606008783002110469296851914158183842650230060544427924921727440393512462637312359064419297187617341624707981460330095995252716734194360797719324983973823072530437477442294591970664957714245518633083422784223310547679597035194371204615601837218482335829633193257644664595951579523960542085731863470414937048583540315171886473905400048167731146161439666825196014838313180589476025254160560724496450593762553768691218059477110962127730399042356088864460156587529064415742376845781553546793179428896412220757540428484556329306408930956297198012047094937375088813862324883776346851403653855506091669026456044602905377253520857671973442244651163060595703204943708369941682934431726090869658673743781224173554987500636136975146275758182109253067331496396121199221498834419088957354940840059865982367791211205353204598157607549417147311864685828662292110144110847594307830171702843497185493611010239502052130847639468260286952416194497002170136396609125377774095490882224174324708513418935571893996662583290030084839365855765685464053214764712787185670274271724975476095344373956347493253735910365962495650591114595692787197079388237896399729779738971221552638436401463520104370040842180240446275111422034622308599536151117024565658067758443194413713580186262869993938016326265861491857305240087095245057237350778135477381878922854258825260830922524768274138565169147461503610324450230070946415077451143580848732290574649074527774212590565670731337590031562917837577587502122635672693895676212393870947828740329296738245279609149164684623098707513535252149874446564076570267856526616907857973554226104822483604990986839370124415688805383397586101078602810429969420740435245644120245303099711742736689754197716558429743346122005598029629057857197020631070889116288365869727783993485583609728656574194524880395889171187238068237120461733166912513883845804176209534699380516547893391669613802983320296814606471280154612501410371983747223423702113687810628090438101913844308489880002385246888865721211050105606432650410456287875669356521786894378687076824251396168758129951040684874722961681317734225771509784471909122282658545696596303105883748611331750931471024893999449762320242797279351282351504385530764216341895235890281392955561927447717785177465645477070017709780075516606050285016377169492042727126344928397323926120137156026511873010700351037863556637764584789411228694606716922271221876307171719451864154358541188029219555042502357645011642790360111386507304018010771827440513492058024993263785474545089658823915041589565668997204764367535711788284030159539285596150927338425941922849741250859500929634215418327895311987964146710583610667797415363224999950840245918669303878356562924793815482205899205479965377469022619643234039377277216773277565706187579560750221024862493603860502443921857447425038840730312088204758067254867059114225117272033431021162652683285172576105625841533206989783688178759629965094465196233120502109149031848544719261646955359825170956910172936011844037582368829002208130443915813230900934192253259434640581224462019776898550814662933324540087421348813808284086998926019419342002370310970648748317697351369425555324531782921072474322554430197199279530557256129747626464279880567702175149850947920419842703618335567973051522594639268714552938574479756655019453726038715501270329274045721376627854451986578845153948083977788289529097594022311833128602134778203144103404099893357651261068311457786090930677910834254358322437965901072478712062877082870777276547192995008042088857088486477892390442466670904427400534433294112216830802915347089677137721577886031892947696513590792341896842809064858659666497453518052664166719101851912662553787717333300898094445645631150915310514503376607891740726494312719467689562048041800413032942680509849031729690611411582342644523176076850035708222081828787653228372387514428457163711079719338505207473983961625041514543345842074892569980685158625914248973013448999836693522198172759269014192488064457019504362594853301540297377641560155742043446465321300316187902110684246385542344346612255328906112060518503650926755512586694628750018877486046923447797858336135799375400807874550821804711715800157503736156085388392296531764410201736455233666889750376822382573252681412462259139370256866536906607108898783326308275167811343024923225816080013882436736435170862383328959826827100132253886693610261203362450108900012520817068920147049765098871176833417707724886420957873437068181451614755614780418445722868238762371216172917464249376480845403574901750790690381298889442332140055779210966234625792405193817479310033626027380219174773207726610648411613875643644849019076454809188784627820245129659213131081992336940879112011329713615821583185704826761991279030309800093989404619213068396015993592347909770678463899908974724123077645292141124534399399734302657201400292486284580631325266693625876975075547105445599735473665753290935293310418272749120953265586010818529060350878849749444127226514391474330384658228580210607699741766662922539359238255689614755536039326509717392220544560315036553265601900133698902202315404486537535423063074347462122076481773086145273543783078347404753780789217580775993623826286862948644938543745548125843277732585806690460714546771312792342449818222298102228180726827078674531923685141731061591840187474769294034276872387104965780453928859141626681592619403593431622023726761909550604610942721066152233604561444419492758560156825964221430133229920710276856614634020445678521515274103385828036977610686943190115601726401516450257856327762936038316377004320267290764477084709978032304519996442919573373561411845156768943908007629881965594467488994409292771631791673232818546585934083035008534043541844302104643452720488011530614848916384190213015179744655897933899421155880394299578851031083169574248993363885352552337662506952561942708025732641869433164677310364060502828854456112623113083485100381500520301374387281724330596014679165132368320414684111059636683959994929829761362462950334992596643411146546224931943124349182732748426453638226364550988755242949255032014617019167872467578690729354125824023119087355045667190135812992592662194228747632958573320911216035727681155800985145232629420884501328242990063050338480286273207911626835928362154610409166980635757570950825101482076852568946810878232775862914814371736520453111959043176728250946086786761946466472847359768514669425686544111685794994252911898097081220395939262126145420782147477723622348813437067559286949736326468975054121372309783408367641869643076824136182528464094695450740440865926842670167485280005995789887674885509578704994266178358353889765067019482758261430667408662357002368864078801910844802994379478674317793086823964872088373466113854838846230470586442212615702221706897147705231342958382993966009757698848253495084767664769240733657530167323293260589359209095074735961862662648939844764030009746187255685420964576491193970497929844965139371280796489874930570961202620073159333206967916900449032477795345899153884383452214163475927229628245079742127770544644671578784447528274048310658624980313334642193110445491165593304226182924164695041916760845034346429879305303955122115104364078515328973006934332819333330356055482875037116857535042642800553919444751965108484401372698614205132777065156680742542908154083857099675767551426174207743381855778869855494156210336436771377950473688798543149368737041601834600482853837174041419159174145585099706432176520513619969265387719939982424036020418475287971129535553881326172878446681002988155957155109204774867431706466625395475107100617755295553791137772712954263708850308444599468781035239565649235226701547205146167692636729802870371714071627727186568135691798150559397759229195164917658094034216798413938856398811454234072762262277993227428416564866647343975697497443956842321637756871619639107894236070601983741841995301372119593972092583695362891021731295626284348098307171059471243557211309195162321567865538467030087164057551752002161249415681358382418811009130153148993224681438318727355130315786969591678971888898445489160813870512406243143389403894547646535731459432584436488198215219147073245931772054811935194808840374586294228119604101718278424081704746534857740014196479610915566203202919910182662073631399780933005315824018829171440401692376289979842399725853983802224699372504422834964603316837027287565329121901910278334633250120304763003990831274115184243673584524703467068907320833108455282166990522823368869819070173139126357676522967749216927766126463959660932640810889787609708956388097933059301463315707003247439697664456499683410660540309141486594419671848888862229775772521646305539624450688973151137801581548531737454286867092054274144346490962975641925023194099334542212825617949907875947024449840845594423391786532647754288656288303021680994413435818612261065749640664268934557249859311924032492923759342700153608991383618075879468140728972007245524963248648122424890356918124125131211549390122458305831791058523611101638883937957992814111101922824900087520192321184375634613759964924758601230191609277571249182402109851828754145535981910869435532782983189105116114206843450850049424001910571831891273454769074125759752408531336352319239305504120392358185534042325978523901942994138646117322637651390820318290060699299414456240895569258020245635547909444148373061031897031309551661898576794695505917724347812353955821706751635797231431427113923931358376226668997515114070045755683259458704119546589349624471434456936054492695924244004460723306086654857793130677614734865910799923584874375536096782728784248698245936388298918049912348152781575069032635269916964322150181007391141676573564171063162719462754040855676764307881493338509526877145332155669938340395069815472066708409290014399867812989488724362108340956699730439759494126209341036173635020764098843643533866740058767252192482083413699432368771100365843099092373153967475209125382384034938937113578501440327805842260799646089839659458709674077970004205234810654313835770250489650502215853111739402461713213886794627882593319009662016257091461469521938447166406018975975245670118739477917483582472761941803665596274464218834651446268831178515911035142364692648629214912513248624548404321181312159314389873530335072138005341959345208737192692546574259169390476791353639335534842859540970254912627487439331935829078094346194311509973319122564042970865578603989108978095422865736913640226371346216753336223329522674121390852784317243285912672523577804635108118285726374459519197001995475049089079679632351375429981475701796461933381907287650087366889595233967757463283515868648103221721209771488441693986031790434089498365184609236101860290673159447855696629258517823672881047221541839409527999776154368164196575339975301109295174410623503118719912367883826168734232568088318255317125969618735475863610244633604359533572225568330855801452871884923418032528281502164928207709855838352009144458175387758453219051321464488390321610523252550090821303642191966109341355257217136535284775087194482989202553975108842096461940304211590767880927046821398251457620246957765399650944741363627293549847199743010606915671668981043753334193261906823411061573101752795343467774698013425218427770491658755717917012727013247129049408760027770459927715453870507066761588867888018317318752090940454005054229339730596526938630073717403246859562676502267760548211265671030553083664072235481617933389543681802171103154986086407988730450299609147759571138042221580646188358471300749021393572898989990208664386854884558972927463036925413339081113724379442670784840685766449626411271316714039583752811047153226946356852766529016001584492541860414707341457299390889536004692645878158477443959103120624699148527176660044357297229941880519806781263573608540525674290991502682941728065742988027484651707108071869184322727108172966046856202943829424836308670519112066325743560139278272272334345509589814329289645115556822389176746695203442773132184545865738931117214445707901664127697801750022206761024231756373168056833176254899753475883312196784792701277520495244584137399250422073505992589014329474994755993775977215795217506260090459823439902442298332200990360009132347882753695599535880995208644606792333568730679573345783198113643673336130768809315988894565494257651257347850275775221601525703335756552186175887654374337889971261026771396453775643292211256648808255806000788989384827278435361111271819944032876599603053605750018939327557845076338433372134530994858155132730104218345681944108240240776562060640837750351783136359054831849304727133539993185076878004692141918999593404110448909154492107145797768829042823542658968388803388750768848951612999272411429479141332720711271518498652678256637657319034358198552120199199826558145289206407549892677067433512046750001926840338151032188504084405174521361762691530927517866685834959441372577117862351071657253755580669743989692844992327341745172025706119377597266157581569720375862142559383076864655682989205087907946752238768935642832539185429995890357839964534813030436781292919671206560885931519454927110588846320117554075918669446557802467937344194381171167563400069509294528402826100106917305966761326189378303470706975395498128659392356887726045466402937549968494456023037387429868424649382640240001424216212216505887197783095092021198795879498373510066041768861924415392691752042940556099298843016986999098166803932921984925667544901138915184599079116370538459801898330441184051672688864227582874747709663284448767452141502761043268578894131173366595327728866824164381027971510795417773433582027515910541732011495346327331806411294841090292550023192551135368162436743632799451955465250531215200403154163684474394190610833532009541249122626373151916696841621330929814722684392313505347998767625225476065839228958735229623115861726938374353548483882499242907084417175814073233191739813746958705321646544425152911613516745420934683513536464002473191013723042424397322223660217939472949197305220386694150224509106896912714543182820538311282004401314874744871373205337221280737306248408539442216581523312402442362311105482471434647464357845410767657157575377983112069510038373930842550045595623908889623387359519307104106407204941108590648295774859940829416871919956212084150107465651471319537437209124207349196069854087853258559617359745411284357228322670672546311209274088965802770143962477480879046629710206478960235163634082748827297632361912056291837655616938524509682975102604655514839084420130896737562438490836695440269612765966535986650091613981210232455485465245812739681010743677763029661439964744425096962095488559278420493642105247892897404356943453917791870063296494955584829455526724252629247938359778891300305840574980312529434269571418999850832469559834885896244234050164594352828096700978416688371304206733118055679107085762321473880700663155976031204289361855048876978860248871099686245770491284659858189439796608091816585787706120246015986332163455373503283543496642728339338478135029539790599438764253196622143431192691379727203147102617705654557748657196790960281419045922597451879266618708079951351067967283506340912068484194832709481133510701576575293796490836704793914631692765429593311228648177526316745299665676023389373708366542429229960325469016130234733896431994997649249444946046050226428791760072718919243221315417699693473792200652247284202121035992654372573419527736789848781490244206490660588353082409301809339238541266081160457374557484335603604026470337396650387875480495092065403519881235560392509276592829910690775630635711419757121606471570345513179485076203887891479875422498815531596088565804815855875056160992126237583152873820280759009732276936845736074261553433783969628498887752739601281989102855610631712907042857539306981080503639938577796659178568856913119949574135096205350979422305392309356697403326381451021270355865076725903518373437830232369338046011879049388733014666856842381114528275562482040438833145223635738161946570900705603550151208656451894105208913676073071956020523189962664980011914983144861584243628785905565500057086610146137457131383120663537281786863285550080712052875442773952534388873464740006885164689855306887998878506860995649276669346865887846928837033366719816446918784381003851150647300964994346310591748712676150644879329246713696552855652804281459884804630998582647465854312756162372507805375122177244641960161124697659516373519073988442681572474618764553066235296164838322472953461005495715768087455641716262822442627081322332085214284202914011814171906736380897128270120292143283595908913667488971049826446489128105729913384325166932232014871571209172251960470665704714534876130771708775635961755193567525559464921537593908556087998000165699586059714709790315481665271822580467990443742065066231257513376517766574934671444513637126160811997432846597275393495461828293156471890672737872885429050497070088648151121413929976204132049285862471096771184653351204181739606443707652404392754270055914860777701146978610636739121469029262395633832013856168131343263645122205925328274446668104960863165634011984236427919542547015286686457761954717203709576400284581704199149225798420142819622655498416877008681368801613933778208336682505651928453364977879437592968118893405660909635006372010464859212807364380709708441895589494599975567781313807912097082350557170974531564939864525165202772252450711158019423376483555406673798009623267582052526688762008172118376383675181062298883847383765575665456670833422615445463090859643251350319949559485385436251033669004963903482581315588233794309507977887275762072520957205073278321955306272600694035720190879176643897448882202738521279290547225856042776997490852694593224893382479334929819451357833153355582089575452857615742208713985718925803867128089961416140829476555747363988977193421383840946767278020305978977846368599063610901839015152042372881426860343487774255582091172338293924223976068143116871243824941470919403664566508752478517054488430172246159007227566445166039822506981144966016457171617203807487897261959817384314418475781424740102535916838558321584272329530622019278336713375617439145901932627600946448106472939986902742070713329335646172600491841393029787754786760009763347468848173516105900192738331440542492994466878228567910310419064151236119858599908224906991735656618687709701019200026340054856349972337506043480997728761290471202636293760033396723047069821886246308869738043007930056561229937746231083981988988189570669008500365621336358629012878781426098533393002269529707076523854274478597498735819139665839726002630880399502824787791993932669628715738759007054196287268386365449210146539800866967723983355497559889734550102565186811385538603471643244020661953962279031560797313805105981880017043909092170194337524011552180595274025292537720107632547550667119436493322372870670541708259545617284928724564251555099567035631680313262693675626817293078470914050244465998124840233909324692322994589755747265646037157831684205606303879163575642493266365111677044663610942041911094298865340862565980382295308580036471172668691157748072749382352107901638233595212567652422812501484913560990472262160188412703481379559739752036978243038260422469400968479543741536889817547385918987937137695321351473635289092705645645682845901213268435756200148992788721109745222498372372329665738606661933885103990957015384288392580183022691236309765222138877740666401026649151829651703403226604174717621935970807809805962127017552148720383752571755177817459826954558982945830266799741068292922299608378733916633825270261718163023380311205653316124211750890808742525606242031578303382037961193717132842897116681986992393833597838857648747370070577486264419099427134740910760898226015949518032646533563343901555461933189126993109117606767330251377050934737214438525849144344003140231487624614646954971445171602615598926103684333675624534995062515649978762530779636538656725665052800189882009046124600099451503363548222143355165596547448293908005761775934258228762167828806562340437364639690163820797943340588914077315745813591347695524404975860843955320312777348418185948831964948999649332209314476655635722007930553210527769244445818007309860130242743366225792345307247443997813857794626943275254312376107764210430273018583769566052746142563326878058767079252191604145991359400867216151880137078252845418023842556245742689892384840460480990817491372742826683199669557301101738233395732379158038638223425195239157541967665019117563033353278017124529127703906370842150092121044484240630745442499130051707367509643773838471458742020637043833416160618649025818666457737887406003343428237551768785449112982151996383509311042726117909635331006918012589653071089363115221049680903061096262899475258355775892436516991120100131226005274092627480781181761364000466505365187567229349253608176175171035783018868641450486895861033529593700884584654163800768250503406186817207282708487630576701290999920216551292371280757807283859062897965702344575881765621589065781600959821083545377616686723182394339191508244559808622874913743281480252581838956174864025380033104878964268083867070993494826123137753984367418238439646757292925146195143549398572127186700998961302549896639077593680660628725135862174477134233740633598766164800385018295022953388720322770459385365179268070513774522334488538664475782269839296207902011727248700571486942225038769399111559847318506136999718294839747279235152050899986829362354445498350638253498573882675106065897366166465036019103367253701090620291206895459836367681153289222337253870963043278126750093087073741201837925447854686723884040009184835305195469028409383516919960859952982878483519634662002453777304915561953517683187820808892442428878929110283302731524639994720933363734884776547487504941032968457935701781024157425650861620830683843092455434713016830059905430628958538266678063504148240333088936571072835560252279827594659300760992065950803789163283031851313409643710472737884564496350963274058091411767179450560801995964082139125482487397084205438901110448112336684495682272199670031325275155031810625539540139225659263763212481164876674107689134233691980745532385082857149629046715426634557989132900394363914467679438300284252200333325889920618719405245276785244208599991837876853032873972860071720525599908542209393598980754212643911727234157548987525974819574816424302081710337091536913216908598060222556208248926923148168895077984600436272630338618691896108452676041169033129817362078885841982213302039108344292592519656846545976251209865687426928068550079949862662755928450969194544771437624899029913626853330200000916578247437057984382615368669056694915697764953073181362207659108570148256402817386568279042665366099739099855278421712303538503687344455999981846555138587597450604448906769120286161035617603153287990325334533182811714275307841724570321899896287638850473966216907384434881401518504379573828990851167646543180343916082268424743972630484764597168271936977568228726493557407082439907270300244102494882542390949218702000272282482943528076297412238498995377642420667308969642058320726261532404815092475503920159881297622928347476939117920932062991876180273502714711279969055955674521553090787726513299650824680241487125446928285765666267087612577489437963138207069585369974002619834492773664084701970241286435985298187049819646928283910737073882357301082178110660150371429762800795167372253024492723982527976729453681512668750078158323514521330909912406587768094094371461244303202175527759398543767052829092624095233480670629215303603042708336195474284454498534155005214398447412153951027151725152707990505078518624845594559584822513837097093148651297658780245372600565935292607458783346702080654931270076926821354631893936919491954988006438209561112320917742526393610708630548747920620281421796973838361519212462033684073758386689468989578962837290884399941179209427811034108120815532608694125730256751505487609448578428212520370921745832747541585396893893354430833986716736578537187209920455636581629267778145687676122246844659313795592093704652681165062038151860189590771372612786673938788728540194178621204074345834783431190028086074951749113334646846034754305043793772635605387501193974079075711881021110377378863961377625935973270028344732159942297482061202793542381862148291758327822103870609927321597957924724570891796156407947441743367416787649069751755866602571899971973431152608704466085488610360867329413619272023875757396061514055203564786011647683688716973684247626477046681010459276768342032400531492449612145010109087390036714534347506416902101706406744953275071876934389083747129168652860272906398475316997461765932993115377397793933932992266287832501382949179495474308908854231554406765628959496203603531870961345987933344073141861764693720479160204187567547134868523201115603495265032179922693151605251213133781675602086749704138325303083879717820841631413224521666994644722415596880155140616543705322090143819023669393121812350935028838037224858490487202767955491153703618448257524930589907726492412546459867865255526971628796649533776657790197152926253728336249439467883207712983605707308045518591196487234294265305852331653495108037107928879645412135050737702611452402037622968317617854907865485762169022775394556986879735826533911616818707068181964520124655743173935554747489420979102723291979224445122063257719959649520238739267148388614789220285155945097206280624464449111264107853902281571803983406717622600294513243967192911991324569450374051513171851616525740607084018400222972575928633313214714907652120414960044860771713440298073523104234759064761076512418929688581442606441464304746740586074060105332953514079258006432173678682613618859432453884898102907198700300350623537980857243193080053034508351122652880124144655704483299013472820488086515337636481197606536255645306365701509709394737950636346704442765744204649626147654095990926579005497786187919348691944683727213325733596856651059512201344848212725322933346316759318104272303618477113747665433100850312549060283590643738996128393673777677113474088855368114745893638108187153693304977975911144557628225818184931833586412065298907712449150043441037744355630910886235282690569667339364429375869802138260195236115783839279373153703199879453812114783092087009502737065941302439510958246725043260754129257381276477524080601637754277377522680764617148889081765064488012428881760412103151636423516805516172750366895295633791514442777868520108556032641801749385592185509986547923828021073581678066441340968615053213451062394882404935168588105259670396840872706614984518039905854244121061730030501926097993189825717519160836370030933207125012056822976117392926453130108439570005568105525874232654421407735900120385032923749244947527711541101547923799324824451768587537952501209087374799953714227270331727437780851316221466432817960787338010531621019624131694033758432496187796826644736782211918227584262117976179719355150367406973198374073811988897041682246276887559606142735224743040956760331829292858990888517744371986594567731972264803729170073071650986644380075622777216510710055932112193457052661459939481322718798375168911511649535327395801907217411070627395673087103766128215553401318696181088180526231985974862337586462952849282141835742480669111337591551899236063439772971740795737166471355055976026648097713737268639477316174100718054399399782411647743886712364247804391986839722945305482743284664881296033006662494016087244666816677250510430543963964046333139797109596214027449267015183362197347432708246051525153605931363693232008809036030889556772179898944448993920014709341122611995698464475433585154725930949775638930531240461079483446371599667459600294311869417762690672077062728618496231584186553243958810795056773311732913602013425366179589202419825341673453594296410792505850959491260052282643648452886847961227145082751303925012463617987860095037619151176699098221152915048998010972454673210805276170840808365551885761286086704393724738724347740965287100119952999559907681886659291121244632291926886422782330380359588073242390935781838169854887282385636735095478134287900861102808601211664217359306610254719902358157764545536785454803315179617302322678839177036221144707740999477706872228776767212825886269606804515703951904212551966608794458639312539811989514125685198052370806608396268278102969730801383171010442667007805824790242643521868865767972044424500985413393974756782931347496247696760163675650758130011808753789366289868049239972860421161170769504573224361281063018957036091105520740041840840844971788093441648602721306046882693349418662614977774728173974978132993943746382310457771567465920217252175018618762398001494869350330355848858935982068290131454531233377055741063085593164533454939003320336008571513041411872685540679159735754206377457259094034425685950216874774470149898814804538328662720679432416331732445279103113173477526728115271014843840756724076293439971843958765849540342632729835483363487961543350902716794071951813481658981497693097840144707297442816654909328741448049781492797348177062942589229537753278053639787977337704146881408903225462806508282538660258680202090259352036537757198674796401400304760624340567960800653891132847663723539781564019970252442260402745645920049982631438914476038847117396292184445147897430902904607218163707818324637285369021430371932000561249060953113834841846400552696300217935918534698121536088977324167715464543188130777619152202899044722307051969678785961545265063076078004241183869324535761686060152751589229778529427103017153524460705400534557931928794585632006531857871721834469626916752492070201454578881431723424906018695872923273412183444135994839839679890116906370375744428846859394559937295447494541737895739512282272722399792386020883478945960408975452133787407629724323579335703619719178900965287092062401794118943821238749811531431084882059230840233825207321756355412676520653630622879636142732751802080721510378185126623742214624215950256887625777315776291221118833941229365514764324603940295161400262363658767191857903760374670041434956810862268283271780941475930722898448259560651062727375319307411957129184444709622720579619054236101442786095644044538775304817068141178464177025430153008109921742690302895801062621912624895838669950797576472664196507523518917587872590901050732746922980398755851934142905370611554343779165667803014575330879155396056166550615817615789397895927738438552082828931907858805367899235629293789958017458303004505832082666580734417908119845365777731523889400474913717519183802808467598667201153402919935245835963466619477784538025858114832717137577023261544807691897276733413023602114500195486887900261807658278261549309677267419760154524928904966130339924390292811942928772627925673837033730333084915152030654582742742807966151139969025992468452482958983666556000711437607078626721721819292776323791743201088841347950016887737017870552371367542425310466061612547488953747904583053703837562889500436521850218983671182527935167568836111732159411642644100801066598482448290080893708844756235982134225003564366066172089891346508531175294245854408630728607559593088867024231301837063358289460406487666349166836997233789437781514059412461863506913597489963648033935350445938527725331834946534620296710700563991213521304895194970930535832093475275282364130207430060483264050211915514009452390711831104133304682860360440504929596433136232674030988499575459364984270893183442677659758704805062023624424939863167553593382983607250173451489416158392522083382995001753807390551101066158654991853186270354291370112931811447893806948970522403022321727716280862931966162449072990771300302475350080113001326667592261855160246892528035085826580197120265368213379458673506018386863649071072441041669645465328078374406137158757543737622166822590427624951347511930684032768622705109198729498453386187512449051448829231565629865296841317722995803712792315282372568900791660719510794931849766317304224658195541028557520229033100253966178180692656540846522110703026235216502498899402554015595036181364959925343590778167930203403736166687421707451528390546849420783154928121075240164028675759282894572441395465534311119179934009680384620020927115374802409440645731579025002031653823402656709922972674285590951309635934798227833732752819526512195225183592780890202374899799667609567681009828644299781940587930322154929177812149787057477934973405986819919600451155741122689382843056576547371484192936920407324235443408297120843619227708212631095129522120922236144063985238715100102632992760033859449126703403446506359563408624913076000304750199116820725392167682928637826340736270199699782706989298057701649929409611022482346966835242423664248611151880505581194949685922741397919484745278159548822836953421634535966183086842495139683694967935149255259068867627379036800992188165007622538819871290252897993910781912343433839357974222126672667922887594956069938256832252940244570502343462778445048650473349755644008416588421172661809494818955632968227258657784062297150828165489619754721571491799830586350677342980465420672883065199979499088963914130637488062042868525513983945062810185761513165574352472229887702559425112689389395071408721049521258785850509595356156382665038173896657373916216126839887509256789044741212842106381509856363457229237991342746938724883244645834892297049747254906340178856156982304873940843655958990026751712128120902593625796607614407607334215225989377188162945677391377949580324783895900407964160759857305602339978850726257364647014264672191373127851074026570785657342494656102658841298451366008760953336506620138169571743936378367187314038485517798592345071430055988975125034727985314124763662493573258023652724268372504025785728328033188548448401728415383850554511162164628782850176198391245191804529015359522295678061532143358754893876284098303904078165553863746262671482992809202110052466765965277653009678291967471055985013207386453040329819353772533572944023582690597305555320536887693096682985027612937662239984771503590053607716130130558517657528194413575380922066849829761184353414614937971694196654910166945313124019341364263148066287504463140541394541820265139050768456547582149023078600907479049578830259697461287882659731975835898681335313387694540620220561756762570937953475047333327605488166428604685903053493069063416283216685005113416724189067727632177366632761995549956032550255792770959438348742096179356636052869537117648630352164443598599926010733709648805063409895241142763872889560093984224458253395696472562264598695561574829485224626971520374585074402301043804010379072280377228433931719396053015906413265416916544722998377968567986118560928080302035182321916062799350106816398379558890901438773620183018067011545159076047867150993173717489255167056072541805125745003110704947719956089951784953735167037974694178083265118822892727020460242823913333300787774954281008101290726304500114786573088388240038517546783033945697858581276276813700116344452733090004395039540839744605040138460136300112727419071584132628835916964698893215674586501412003680892012074446152511001262779061463812815667265231337534881346831867361943314839044710294249273087777128358976856047462372506989830593834617473502929142468830904454263142705135355676422445190350204819073296293776581102307317180486291373121717283639985761740413746994416172936084857496828570649826565863326148307630567012851092226741253570288214120264023760719169556751643711398838847370748694268015799971104397061570277700360535572712008400874572416973621001101720193703573523932753356744148252648437214665194705520775318916629813934043647075062075739706138396449441482758718348068274503297575942470036563595248153702674155770618020357473332853221282036861423466608180136986979868492645816518359446484727642453599413477036124986667778802730521355659150825030582980372826190779248375010384592769031825115134896977734320257311170783358221271946481898260816806392823766603307719493640925167408734126230890623645287733505796226879043427697906416217644712945003519222572895664860865499619852032215352126030041954836193756820538590740227038449033167266883871724224011038396346811372750804821685211836114442520957783767522390834407939873542666671012259737796533917337277091031289893317467081223598437604338125698236265242549622070872956886532759450556582595001518100654950482293362607808534960173491152119430487175712280605969444516697172589490102571360076860858975808643662613995872805881405857409699274189644094644229560258530350671345586221495467228824704345692867605852415902974056823695871317838241016581567222878102985882922739777467324605635302946438318116952717290577233598914869734201842956378594033556913522223043004876630608813629766305005339789157559927824552776021791465578644819160068683499684381383020200256003096800304992119991942244735401283949534126607602254315002676291150627344891520988028749420350712367920352615250014461476136821466709284823667366377582301903991287532028789919722219998004420195106132466228974194909144415037815351317336592222631405294715740804145258721174761384752120247232514594864666183251596319450634452309407452853654538030986920800943529152229128698997073154235311486025419386913733639816662655382367320467856179428984444727130855463971144803499508696389969118316808223376700758765056838611396878938990204272821343880785736564814720481469427401428474508716907798340808959800883426758133790759609397510785744054407881563899297660672287100651602120898892783789126090330812376047670838664593584261701795249125250776960285888330571574811402297114326205790230928342857648621025280342069794498509797078664973935648416594373580965627281454172680796731360212568346233942372675626014948185740749624398615492689616326334725526658927304686851184198907880865783111284522814557033493554117002834861318843888173949859853728609047981116807799681383695742509007686573531052856318617099001416749060466007506440833202975409986471551490658422733558487309181987273934556116324456039899814875492887973484799103765791001554050406116545376041500848979513982760512267330404021140591209016798993147850660684044830775916072630133229991926990450075295935113468230099616896048817692557202687013222686689363644524370965763881890982921297882328325569771752850512714959398607019727579597909510342604976750438532052146033080760756790342013930043377195537083817695184537640324812278508164694481832176955464223226982041966212671017059054353127609559957776148002722564459421689388712088531150184624952443609798138298562397497892659793845935370862158025122690966472066416320962248650976270150707788116239660515322991566023577435428702169210565570906586001313191682111087258453960241933524781627652112064732236266518157685522667620129579800471069833252631891274075783506502663407155468795560385171578917560424839309883474031106079704926028840107932696945955820369942837794916732188860859599057238280713805531149122918967109520569920835632867808283611754986054649899972411438182845194607341847074231603874079806807469797188220491912351589757475884877246807756786741793490392124600207276318682415773116331225170753130205797992123111371362029404661095647679774819471488320040556957506915268142866573725981938484522050934645559974829684233734839864389712423506016412261713152815590677328740714459713670136303551248141861218122551966403379350659043650811265554854606473691316280888141029739458414916224089409454893751070304364389808501344678248234017801239078320755974004144928350217256004538240896964764182736045302027222097454033511323719359936543313164554339633233820104927847031307293122853034196227383076818380303983532459293968749791843991915392547381611202330599549783896130379137723867639439637967301772460776396296649555193818385976492928738722792408891028024490293080793924619055154730026091222942949732883500186832099357242072225244869113972926285801166223052847895919864241030530759854152830363852399133761672073419904433722563373281946864883188875591923728953203848690764154803354355796104481364643205989376399593707971299713882522366920391210899795469514694071916399087533868515673406834511158722746283487923944957283763946178056364144873907027369424426939711426071015714491748538633262167056553860100319962962851587522310141804654822746922693230442719369276176395470789698153869185138184212156182543708113949350822067733110966007683877116315975556503261008557407699387220411814311134307484030732875779177228844984910695042726107480298916335445136987482901548139633602430391669933975710308562865623934460088878509150568421473468134254122486203853015014152347369005485986531946739149755693823264886780389330382606717315795407955643569933384449549027240792199240995034477192199294253107294319499715810647056081922238146870800263697514589496368771404185158575104146053653688647296444469437305373097226663521470772014871698002849826541546970185750131669752102962439394954582540226944232461164496439237775984405082238211668889416793385773739367964130167739275260057203312626777326713826046803844934161485949280552238413315666636126702649303653598041089465201574609951859341450944134882049636085803922008508777603603180570463618887503320702685123684057302717560256823717613832950597063736615582269948574610086105953013665252969061487896711888134699884660208886651856918782373642051471756863106449602715858851169940979325199774118449067657903320317529761226225223131728884442396862263465736117787768422069298143429220097012081704234322001757950884631254032833883801501269249442526364661923392892677727330811747828215612555077328681683822971634831651177744663256393962171848657173197961614305330408585934995646303022627361392874938461319694206339365546872275857665431451412004082255338518720027846210103438775978471337524123043754237874315605708759786171391422562427513662350412477362933590851534284151431006733665244873676681092497581626753655500348527091588493255109982240376460413553447063572085719770746404736784883575174073293137835994638847826736911154023491498321891120821681625425611154147749827031546603539107715566935115731343356842330036412214861314200744487006504784267503984084773231478277155344821506503243273461146502439140644267695958754038670845984463228395733923668962468972898077132035415644473599673875341115860118818504758475292640345189283293662436135162483447132505108545589143945842632173852259020683816347315896035121371833150804556535617957275682896455108839990850478580752001957647125282338293040336331254052809388368482901173883360573755753660613210907809322620468941941911446236286693015664983927449675491259101809805265330427949227675665692440376915033779967231044372441451446620707406475706067078544102918400769108562830868278741670928743412196151403440987633804629518626873497925880565298221134472168154871493448193798952303466551377046412548951339655224196226314637588347838626672080366569688507415953452708091413283695504560068383767887755512542188930562859342949031341603997178302134467864906497619485130609130999749193524087166120016563023750565939343097491640149978082359816484783115639925443398864499873758383718625688132001490938095189791738788993223825845552228337965967653081289053945454375027220066416817242399105227401273255315634959777067658237244928415193343306793794904884641992375819250222995339549646761670429559198746252019465279426256444738782133353872922011421083007406133868910532625666378343562679114761677372845018646259020496732218673887759877240269042091611755027719977145159380898049862231274661374688731407956369470075846956679360248020944962585586538958107276103619078985573129969149143829815013046221970172351250146415731039376158554120819453411852281061050845648392049060508670137975670936499643834088819257425051986004422691132361183059234627182153425723297387409573228166323222625843245790334247379177136782700907241300234024029513101397685193109590734980325511620404650484173436670000118376415079894221297433772264417704966568984586913887251333562133375652237054952474790319604938141280171064564480316322405439938817092764851387077116116388205668196766599982783271197996697311246339524365509095719123034570542763885403571104307730852236914850202495828060999424628270827083111866930808683708110556707436830706513350510567414695255571522433519526201120822745410656609609721585111149224248742542811241870038305553031657588251133953507849379276310920541442542561739103832409316731845198896253184012235725192712273394695251459709808848801274368539946709079647076642580148515346460996663299270932426230905308361445963993384041889779225524769431618010507823024291860123001009304536337359696886670604567749024985678881356331499554123127621719056786944837872462808620154459312642859324511842063787022185774089880605708676155989348886660684774750646508716971180189900995403132571779471115217601343367051216000711675492190444365886870580996500247396312950363523103420660119466687887188760601061236548512994270203578497705318928900999049303094899541575371885589965158590116415212893753762738159121191859676060999372657523374823036257805658069422280789980631752146737207052292548144666761059923699442770401188347388886550827666739756138880896086712068000631273206190585281522143159864126993218786555198037566294053222498703779971154982491212046995113256382337170532322611750419016063032372039545897584712656645873197053475127278331291292590595999076936312012433312617648262731568415865499205325086482451707585281836664811710190225824413741388107316725326121223082989650294827106032054506180872462636987600395388416852588587402790474276484886399278679942627598576634569354101521249002390585503109322401433650615547175808915797888473035654737083583479873885674983649767066399846975882351070281412198275111551224911636945041512984128939736363397799317152894105081675847481025880828457829320559922144931569726416682105544267867523931578777668159475140820877355310371183766463668520089346979941139856574880346753451224682463168868099515460388755031568027274913589826744371931295872535571002828692013961550995634128066162883440082090791058111010704787420558211048787056728017530370182889923124647115088840514834478258000533389050370133550917042134310059605304049151580547620845941997832031778722622645220481815005897249783591571965971982990259083610676863716028096696058510485770321764785123188819786909335712089281923899386885071539253943390268552834347393796847818127413523903144506610006224904610601278803744141068199791509367494430166334478653208679108648783412427806761134850326643632143508322714838137051408402514653573420235466234664812448226071850862748640335513507361116097172773441664449579916798523505260425433207352900886944117293921474473916598459520819817139781368481399036770891417981437077138024177288814142146317284365560706007321262070085585761106704255058180175325318663293692433695761079506486057852234587806259617581045111074643215866053310685518525097237591046037514926461517946636649549654373555065752934920223088937265572474594122890592517151960192435862063519538978471443483662652330390756660943130849947756358460097045587376328098634215045288367011115045710292182606311659241247194104309654934597027967484042600866551337229022596603295782213291944596054345518882790205327257434051381599612139150143564085231741628782417100628668128801848250352968766552563783780921165733833058174521204790326116494627935196097150881201978899741633315640285915917961932493225681020483300219716190215687420368792416597536286689125012555622403296553436490307170041120853079653151035500582723653171122810699587562829922737270289014713397347202031228457583959994620571154358746544651332768039649021438852716138176665019955147981477427673955271165779979806305472392701043594084541538320640979103514917845996399882833127483220119340435294196383212851213739409349509343610054788859409531909968108714653977141693699425626136809386255761397704746508415138701755992719472483919203326535084805177127352487449469309263518814181177100807020997785102132166863201588078490441681375510432212462856038508431665024005715517185108343310599854184293444031337221121259280443350315263157046042247421420291747487790329882250826906999272989106800549571912450801285786855111422550924843519800177910633831854160282767260865251446139309907854533430106584848094861710018861319990985598278987023949575718693850953123979497873464990347869785080295200163996540992558699249571205853475629655001490872844913255745513575843956818677756537664029223738710630041028251857280204281734389144574228434849753646493906628320538198488889241880352057350632507020415934762932931025076883151538802072761270391410284172163345408305996598487214663834110538473789519817806163782545499828462942183019627772079634647886299218632910770820304118580763376083987452195082381243563791091078709289093040083485301068362628643712947737718493724681308500914565315816557503023631122367592085483323095693865731547741298736714175969643316535252960524318864800740080546487906366593182232066510083075902711574812497519917751959474740519085824977624464193777442648604744978448698352650247550408322023591154710864625235962162974140548279580120942735234846920548998502137427342093174720464916171843312100511615945606606781277018939932837907590589981575547789431199140671000802694343313948646254821897176998554943667859148673314760945421452943284773432391497470088071249549731767078131860631107204775263240599948345206500785193262252229358554626521637497703334407558918767567595545464607850259823752942848232696188839625218886848848736630853078801736656157052651070784163347866732784867794138985670711740992136431470298798148133142066990782163356049500502453540612734145670665414873486533505969293008600217138008507175859574509077258713411214724476747375485355494131950694795573905528435202579846251711395394166046657907478097218273606693356059141933837217962161461291291148108774679985336089569791082031512737555979852481024404234490020206306084380619372920089181599358756002491199006071402636668852183810035920012883100718185194842073179281786926334802665943932031176741903439700658094922419884388953795357757783708738351081115171308356608651848585331760072057760278451400811711495476831657366144788200950130056952685372921430998593004595955584002859290067508930859032967043348793307938175397892361785731149966283842897218846397859525657396584650118925216863496146381094057278627350116705535878160726984930633422047406594162063141024231868272383729929481723935759899244547992848400964496502871830430529501506012336909454324198370549214474121215622233161056001789971760767890361910378664799411273059010933194742491780212872138298661390494068740523325879760371571424804603351533861541107145046674974752139385495576047530111862160124293124392836746187161751372304877210341765672781758395217472244437608668420743032178359577892319669953087450992112384906837215261973659372044798786209440267449459357477803422956836594573440787302843845707578871394222223113665338398597909315675883554972360481935858682746313597693813518172841775994917507596454666005829418375990842319894799202819602075063798254498913341399660323711084428375080265723188256757269120451120701494913506059330239160337194121370920909204499510746033044262634972579757518079859466455094891428487071496278528811913938878855012677960541185104233117315902716508842553260245639803423230272200577067218909420314252022199795833703768455999414265493310030797074684959379318870155172663720038764795644641675312789845433075099073110547105226648754019335374931816877425528543084995526493111809984230105604149496741675095033451249241139091836299258475473587523005884141848305466267958621235312588172035311855667215505166288671513243155756195087206901528733372298432346137123836835642508575229403113461547264003702690173207523082190129963526203195131808310829610487758001421166897170118665291284742876398701513577032779243292691570210846896596045832178814123537665966497358527862686086678409441149369962430230339158044882174812015928533503967160150071360164492486402624964961517431807997019761236058033102436053608150778221565755848889908611170953996586834589455590980774704600755289564991993686236585959317782721127788993901863891018019708185040116490035392595701235106884469000013789761481354967694903663318678247789585621624091525824328298194086029956202342304992101044796875521431587211767842341375433044971614702495717927938928755022084902111894724167104180486518277479921887457592528564502047308489456761073326609825856530978183338464263490641651407449028848529273413152072933544506786612440669434802411636174352887629334740290684422085295283553894711781584673488161032808668607992233639141866231443049643496750382151059061182720086965079675190789613346195372339982907159503510033457804357000782766970968004577103560395477502869077447588012822707913038475644912000088957458633944204188862179025641411019672712941785717857317464132376817284701014470386297239796687642176970555445145405683724613345052139454046801614788963403463569917810496981290339928630755011820761906126754086300729314334655269538778317862428146033269954946548907065237969692383807267390195849664773647366842528126384496810975996580517994459823291207972074051249625326963951649388673778268456528997334532897752521374440666255671720038681644345839661372493703185176752229915406936231178517913750072025621483212254717935273181768324703228878616689068299967900863665266601440243738788294467601113677238319973244226737750050399022640515994061444465387979410038143762540601402997516368600648163156723481583744911127525964013002411913829638306863998007451496489437607222739407813419013182781828205701322342990273723134849676362939205725741755927816773926217807044661105406282453222225616219588406450474671604412410482936196035743364842604820612204940771659986719353034520269989968995577969698731074727737781971044935315001900201816590354376127553638409512556134595628989736308640748529986117766261076327957650451064552002859801364512561129210744065408624262659215414457705451697296190289116080016348350067159603030909572049492768500882278296852050277452727660654832998401518790364865845773026410520087793899251701487589935912748257503193055039302792978755571877362530800153298875003349298761592368309659039570009320132368208801843856346300925340304506159265772226002443260876989050416074377243600303294051459999908684979721149187905596084880804826521268975593969251291271766976596779164065408578781491610947873930900549007626492819129027566308010817251933471202469242515371162001726114088201906737150175828920110700524664127440851978069103785845453571400605229299089765627485849812591007681316016442340921073084805149856751343453976844757658538355115908139250783397742860642885575474206262305552148720089333399240181730330358389285652775928886689197722177540649064458043104243422103789327679024237665261810415872044835163421353270506582278539125125811977649838130272710022085343404123873940609957347356356721704365692425097664368397682972972448976777861806264845231473119710156547292529531397078360959850331677645519541473285105656516118065031947042507816178301909800338302284097622455562100495841876553855271853078608736708755585700573456886274974862155049505645341429383530246931842442328449859180862403387395689163618361809489467697035863334247071554342451145178268777081784422987941636060946309045322163885496492623665614502181474813923177213068942796486014488502383707249939437640598727394551844373057471648544407612982394767873985699990387876522474867482453695583750627808757448029278332428135241742016297737581853526747682340355991751478106418407101980015224053502038160160644359454931319016771758660150109478568490334849096508984799277779513501350225424388154583062706348913268848871081138904891731000196908217132406478054776504911488575623420384422734098344969501049997026811990647415983859486543452337483002325733833799031964850446851033300583593564655063930499434121448078986996344297001942296568810439676513458942193062351280575521058737712463373649172061157304226387344165826753548582528632906590961375121003745717823396763806444334760549427493389709514851120896085990633055440194037554060145158460228832509746394661340259193408763043682839151413812836706224474745948995431177735062297609888305453576411933098292841532428274529738648823030593821672363423322388758564619025216174316307124715480910597694961002642720728397906118229867747001359842399262060470648097762757105609089883666107055345423530987822184892999944573435695597985607747861286981693706387935113784935652050371824778464332244542492447620966846618246039435018701659603902845322395537217656174873522633789446711442081917557688979979986627964032816372109438022447672670693618040562516467574416638128670153206660210525150734736770108477133138052818472345725691426456287012994690912611652560720529409956689066592717709351234614235184921683035911805542356410748385170217482626068571870917916602672102357291180375280576659990386077147880522350930276839103098047418606997421512930740487309394313974580198271399312646613416107685342580109054962232214291406566081088397387329262042453109471325793216939909260500983669627706471910991009597826703627398419517585325150511838660365065094508342668142398382248926717012703349004252751936724899197536304425789555429119809309261182434820360895209732904828704749060060541823736979362095436983215526281801212986409640692092328889098354726047184412614120000015849498420267722314842893942166731576926374303002887745907799167524356438244930283257466884245087055058112963314543884678560142146844387698576215907071749628986023876229188541077754865674080272011818467059543113274657055941829906374640645447993855116044240270879393812800830204332380523059004332353358745717738639954001646387076783592743003273072021690845733845677204213936504578103866709632907562976949513717556848039483286880730745559135484891077731609925576091869428272943726328390278688831960163182873056971291674589070735751801308689491755071226500617493486826156878246120998787733314107606222251083049162832161732322997644124481443219973886138802438371164234959227153731723736088519170851427691539062047836709444307945198716822032577123208832997724550051822627741028806106490080214087598270933037510888987234997572287421854777508997615094855626575970424323437087921451141711375424682108412672641980081294204843024942232645509249778413449197004681536065529514784449998426729195495188032209920780701394637687412570102636876748705305912555646348428699076229214170717952477424958719371518068769298268300607613736153948079978091768840927577823429894819784388224036516570225955895733805969341226254100190419985671860293076252616977652955196774007837487927456873350186767349226681490941519142022936615793055421728686498809827316609106951436014794415271892691662124457388799149853451619359706052327899594113648613353934737664445451103539951592261268140635804363637563896837811510881494018070846141823134785744601703016883734609931916701353660660537705821295193301527662787771043985251630363661595003049540379229002550222401648475880562021510826202293890109760242789749456932225234312494401605085529113960758935348763212638295202888382756297846909111317463880401382604282247720292392922840128339233383102291955663615148065171101031615313825551269314857685006518900752028232165200725620747352085439789441661058628029307898508206354698247214550227923743042131748870556803741494618518132797863214712420587327246723747325083618980246386145241918380773806884559268290411196814989677237025545471910771082660511644576146791058554619611237348638980079583350570529198100402603107702614794262894627635808644085809622894659135712129484036018653307656207604916231087049637541293797388634608296555645946743047848593797067567381991234267813435194191868693327268749601951293611463999178963799216365592836143769028976448257743874552848267320252463152276777818310625725499669321670820993752599447470586583696866269564676393675295689542705416889326343964295552557766063877904677621714583209225294255383190303571794317536404731533828373140493496565924020075585532668171302014999342210888641502430455234961033370162045340672605588280662123508945720476614621003527276396282334202858855004516864716191038296164054920049813477822358201917466975585840339816079205002440658614365249006959683535604169750655293371060372361558687283818958259909750596802179388228868049448418076956541432160857548855420782341686703099580626817763740809451315047351454234962469923486872414933298489239296727458520407092269569798629042035151064856830691687955852506656357559371759962990050994749504210164990658717808446779637318010650602608387115965774449970621338149666050808991953747345000338651466229600319303074266776199677304248421826925991509497375958277356467389310951808505346150743631233677290829628805401770398547910809407012135437936419522640881880781646725009734549543802235637497395437965619254593710076924056242323490286818335768383454860411797178930947109459123596749768662466678419459957586130111466654498287104237583215690719517641877232289566542285851281296163195390192318077228901848338272153042150928476987405970022408023983772286423782575622558864263569983359379641274450987822002684363708660620371950446312800025040274909891547693747721566072004337082389629503673438374068842016910010322414333466875542515591598015552894343359581968697993800585763868600069413607051934995789513306146297007153305199473763643945811695198759709827005724249397460236778264933669968224429527313895375009262883121271422121896010715715959770594171829678209609067326390772344511865500639265229931035517371394672746617699010678643527730359005038827818452172906176230668136805945727726724223200945419149140253874803179921976769073903474901569595332611987027812559298934720263576474041896231656746329224268591702379003261917881465418046146776922693004027775388130566882072834475090084974201312626809175896127149583859069188569966903062439276885713429137749895597905972672087239709001371136350372279423483930344052562616260027511541342547346589428402389119976461729509823531514316081711315302296836765810142356237504661220273990208567592110865199998783637316618971317847415080681053078052235411512085709394009553242176707814006827944885150257770667552939784802533044832050575660741755192369569028177029001528344581087501742062658716635990538509157746041475330983747449466429487384398595303998656054399745153514075299060011805748976345170446534573913504526110485174439744311744014445245606227442728931445446989753004660296408251958745741644964294560131098585172762227256157931711087428672005397565342309095000753955143457066076437055625752385784374758490785158123390892798699402157687347772036853195156675367071997990650927258702343556630880910164678162764911228742553743964117776154656840200525595522098439005752977311202215390607783225746583395530929921206173719335004493217067607320957230055321533505456594396999562382994539682623135991299256403519462609855289384408369879019436450920437720515081096343195762348337619118630260694066083756954505416732856976271118730300920938301507862124195045120558815182368995537928249166795731627355207715454539443448043814820798112987665468175373192786687026161348946224629728983239318006794957885478079249386246651228790594284727268095011405314084351465008463768750480870498073106911076053270723519143693349272954207674564536433929353821095560013848398722291951686379282217644723326933647339719987768674688365001337687475856210652396371192978215475269510851506618110177403826290349087540406765100202857302593342411538890142990287912504849687164810299616607795283158998480521699118316724913057960921108262806089946366212854993341856561199781503468951820765529374598024608987951508271430454199813815521897238285831563680470544766779540717587658902213614180776825133088246673541768121832299081712573155793193583694479252783128699946697917420006883510980266246447011314782703878094685070918211648658928268256326000303070912406260310316014011042250086041551723665371896931328545511682983656226368254249479044965179088556895686563954149060503222743965614223686712268531464507388947911306701000550559224491368823327545288767779612422930542942024316373042801278015475011038147632048926911079864662436118841506202275066227296455470299133099622965523919883903502789914538624039172216156574516569481076416835448302828485751798987026567056218879337291526202047392922503937429464645463688895235663636221773405436522967969079758359752015637037791366254174729352922952869459197978622868722420362437797625101346393695650418381404630443516816574573806267193167477631579396973931269889082653508240380570196281085357558936630604218700964993440430849942798621355173496110385725563379135329829660333044329189566590457259558287426713204055210908981254301340796702549130119846353513796071718468895474828815305523686621255081184230897283512866305823519533307929286076550259492080666040441211326729780972721494493207243398293767366168882910425995165840676259389261398107269874762431929093450843065142786648711168026277784667670435825964476377819018648238806339171375239850780497806815106946076247691221195538021327319324002954341209581210007142748940294385346281577676269797374140692847968555844204177199416178236039277330990289821772044008583378480462052766885752090303422110795026632870249331128949565329091444045789602901340579065420719461387276175978350210266623553129855924599342750195804165167477425062800439272688385411455116751678632030201809132928156607819805572894724452904603228881417408897393309776825200627968597234670533731929829906626473040289382928654259092869206994492152521518219603765221052386247533790702784258728100185049107418291953338176367231495649324312533874591831425318495377182994689742985176635247061434074621797801309492970944190718160677502806098705523048521344721893228718689514516666834428112527625662167917362062423932671753493125981486935721700680000533056044194793548796955275369735128408647335310165289748034296192700541222728702116121459436543232823171740578895278186140078873281136335708010304470094569493204717104980187250211583450380020532807472271138501632830102743365772860728142424595943761930043937166079064074756004511156797369311277571312341389310295530309590631312600147978159299877201469927417935562161457632435483783093670739889052858056571931445974566785254040896990563717154616814149181971774272048640386531611098274718243888799635208314558556937172660289380194124987875420221955142223247829647586045653904617395471598648067068732607453037217534170789287490797119765384432128173872933123635481425561663745831916555854799326690112439463353791790396710565376429704756310614541728418134966061759922712154932883733721589268122647817784080092417217538865783522235171090171879485361129034435049370572136217580883613222932404750844984027386059053310622639109034383178028627190785004789181520345820260143506189379324139370885716267300548025569672774045120236059252862190510538897861437579890013734384054013449157829661674097424461488672680963462143522203406269398899056930704798746748571460459430223113035380034483814491015595298743297762529881913890350221976025933056932308477583398604525386926023792828846878375489397835985509826180747714426175077265442615987661991095589922002658766804238222455031375832607054369804790901022756887369145858326747553393508627939905902718843244704804044066692551400229626444515022700284688960107779234895016329023485779868273947716449640529646964202846925958286048397937476326522226611937974425979576365678627596491825929642207001092464897911926821161346442843042628848217924010777081129720343809240116250012386387894088436937281896879641773859380468041103788649643937777498475435567827776110516536166873590984184895883323859683026461022659215437699241349585939861431262933126508229662243943878911621604757718053930442637878948155774409994031920564218692704932263001105931096671613154686676223027477364622740768468839935533660176669925253425388871854289957803817769164602015675900954341198425632882068324318263608124154965958544018873627982885056768477834762356556786944468831709790090381416769393411752836954295351117115731621833726516892486984327601438165982637967594992074315057232196837714739008408840386442693229565441911724066038910049705506037729967485720870024473600446502171761007556476359410280193131977021540484591865870477357145355702004285423059677028326085683864626991872887692577086378091880363531379330690349593133990134691627140149083358076552197488787332009324317673227957762561173761391863763129623492615124929273411367248926422749204844126945790114840207948639182448385730210203172773794619052510090199409757399981063306493966719942312828308864753799972779017812928051171908178136440635504761597104157989469600799435312968300684178937430151199259779133551244211379415081583309230202835053159308586238122923281586117251529612185460890921550967688668165973331924751506551475792632742582342564976364506345177678008520390632971234946400729778991461658895890317910085300627284438533135862765430258944852559138028641452666397660145468467470176583633337677599159206889783143005868710382280695391158501982396541452368059862124261861171668937808428325767915716146025007126958480859341295233597852860941108591032081646730230507446786430163880525717243567470216301547257574496757302311442689843916472013970374239105745983778064717856491549267289832300781017063464642766182345031570057645809131007101640147226614517738973205577681958344672016139265791345196619586958603757333837157467328054851043524265031504239318101461603189224770159681818690773974103000027417260280635128680971130012861351141515706817932485061714104831632903892697467574067523429141517986403643931206650367485182051946434735076667208566741088807603361823859968703981213974112624623987767257544033493569705374851832030615809746301963027573908044871195706636261623173739209418779318946647905375699522185691809366355877412856300516258653685042092525269283742391473387076248521749597821627758904371275982268300655393078998200610224543389132850427738895298156353540442685745509831983376313424296964036558116819205817694555989667850245704813010232633525025810097576972086285618246305849892608873395167675399534527198787612190546179775897590337988735485841482647967428964345655790124090513973892199045875143488500747895320978904558042601228311002714626906335976421305384645452882807493852705132049329495276786674564058990687341467933975168642151664091740178949812576873811816728125103792530396467786770054325728592469636951510020693148287469334322193672015341403888263213587034914302151313965435388518601537393176040934321904933260103353171768941075804847087387126909458459117088689933763478401069019101633149258739969328840956043308768505437495519964926491378424561296864499862699011998580832860918249029138214808055332739501896994076457610009589871616006192324580334178585206929041712243983303835501043028960822113898940851882505672532622461176524684054058784045384307507391478154141109363928368847264603642999763617737563816183631214161373665178531539153378873813249063862124645154727513724133650745487058323968540986455314436817526873936841527266895785109296227775947808725626221609341131997246196681010727009638962815673503484264430168290396139661066412945943318470760062725430503222063566065613316752017752843093854775107795322540495804127871531120336342477089859809859322099714678624426226814835458072108696575021533308351757535024613485793102258326386189584839050830869422417430587514020612129373395995417663335747167361074881241472664454606323819516571845973983876463922449475546400588329675601299141466215605727573477489374832089625333895162045686624301727448204025278503702392820160878773290668181642165087562622948789244784682609134635814440215242375778903705180799784610404658158291794392987394024978503272011213438146007110555381901900780992850484649970827966620371561543618402536426039283004641271291358776976605450831679232954704835532896448667912733595869849553896897112904891456170758826918289215613772361074624605872180367710393377351128619411349668963540391693383208955305853539143235232604619682029142916520809815936014176300283889821479879453456330681085720163041952457470922085981108921607557305392811122349572127172763111778124668571808338878778185410154633768973255379059594990071912272618374566155091731005745241438541112742983843802211730371938219495702648572346915039495186489548012172031418583173605668091020169996130739207832761601572016654284701042668962113106375784843678084613002274648374578985282980048528712897640437344664655287520888334377220716200801956169021623006152467405073776952972656033717532632340609252751205630501988322841452299097657984596396301568648904989147672425533504288917882454553330670354359658178795256258306408841330853293984890177902418995310893755089263314909732381459832286507880463347890994110525209979701042352543767420081691251657992395129092031684861516895820097405891865181805095156343780370559635430113143806233126949986753524495180958431363199229589311282717944124655179375042303821956095501279577185468406763568247854836664338256633618750997120951131343706518519065098177682150623910852835031014160484007601303160272673379788144186897075190949408681381967626375740806886089338765595069555130222817067422285328040107868588570145703793582667830207992217596665262032567960988672368705047641039837452712740258759608213930033716683763155038551599040586529139888303476041484284961401919822505252133158795608425822987614267483434513274581664741334358381795177302671671101504216592108645687409270387723761202631754162431657990545526623862654799832646627030213360942272719064884247192254231141703074493815958073016221107953541946040229521333259413792554597166748530257843902681238433984672260595449069796297346332465540460855229317651484547681126082259800355786273077645703996271402688457716626630992187981013190177775435630866987634626155087478590415018556373917786758316959698972278450253663606694203375449360666636702203718764672146264477178656095820235669578400870293377868913136575489514389357833941556700918719318626795189459533422431929596203904141124973736284728277587932549109936632888521241065262199831548042339268798061597011333865589907940380535536263579141200034829232921275301948368767972405282333045624480822362884676081364452906889420694697535948765007670029340108954100148832385954880875048313586547156742166597197468588587345193499271406268357055890882030537187110428365354746864340500324606346290665414781191502139777189164884762759467907490411233609509893636697229959776145795811811467168942753482488990234172490355505645887885402727565365339273910201226886668372930746947721031776376607722471696653119213729804137958299355063767421694537037929445237576710108102757476309457313031763372025065621110262417123758046183212150330496512018906902381601100219023450480986839212523809045725952077496127516089774724913356221995969254687807117509706115368337671524965438504360553308976667784042031377008173817210940160314920390560806443281289822239658357819163540124688796203187592907634331936996194964047322112070043411206322797819385727613301551560419486675702998293805981952583384334183746816528958728183254615825341015864558915247303262648436377122237143878782703775206556233481235058952478522635183393852255611721887103109914721848996295603367811700193630000111469458195444267646524270170304697343604116989335607575790684433481469461700777827792032793971925177229737258465546162337605413871740616204174062397533088477953749767805942707943788906789061782507018611586089103639874748376845089725638453795859412572784425658211762639644887776633996380630021692492221441612965460381664021702740574605483239508764305104963741532361305592962054757102055796446495130427070477795480398548911108219650766440893642480720748688732548598887125279081161369403500177174555420625165570491085929495751307120461538528475751162946861540281349013718812520991155308110180134127570551293434314035889195102876603363921524163003534259451315693128584083877572880532615582415580403277408527806539554673311308985320468116506468964574112139546828133511071459955069112136180995064457130748776385577206055432009991161343493554788169362596124635427651556262275372932482743925116374465675114762110701006320408422720194637752982163797950900588562693478162860175691967474111407029369113137818778801053702647815571222891684038385076024216629282389292946597729416033151584997990799531683314465230706029753481899382060921074402239274282533649991191717922748738175931483514290746089125389708029296778046164425789937924021084810190341556004415545981873759106430546340136069919944030714994269710901877294729383623512460997529191006610646316127666051207359633153927062509490557267005866540618999811787466275370143582387939389614139649836756897994826541954706285679018595158364304077412641793203969084781841785511637339146302361896615964950450274025753711502439813673404790815014439520090921432190182396206172126450392661591171080099869121739832445655019219740458565747847101680644447162669671342765394176843905783688830012292606884885983248848665893373616432278725461140279354438543275346404007638125068717885997958494797826624156270702624327289182389822564261600560637355829277917085683262486275253591311813108614093831275387011858156069570437185941396280734618210692367223371570375627408470868049590239929756628889484825170962161334232350301016983503645521922870395028555009064025769352799137899157216872393954507108700385901881714212703759946408447527899469640138267306651674791008636300898103150840828116795369541922010938267680189381442511214656404683347612400811973409796629264858880080666261168283009093598060599215723248321857193682543753829063538968745601128926788691728392753619380044187996048055791295267244140436730776054114447220869185072943213289850494279934377868203977333318296724341354824872505752041120008992312206316150576611192801723035801402915243320944330668844220435409372589181626192785252291021074962635430261909965238777985444651125848045206042528241372481611916222615905119179798128765697902754171787597112754637637121282069585498258451606946615563788573166788899044173169543983304501151598976331250331123606952521891629169933467355535894073322395863239407197426692894337997464547176745732596864911391849134020198388503908707601310287771377304724078232693042673421062188799795781734671285924423035589886011177290443198215924259665798485801582965735933358901835063638825327492443426409046377438462959434533415516117156933975952180869183532056039196166531235166830999304940888413258186942869869514623854110581252735150902816280704328937805258386872497634951438469909752498001683472694724562812427721174361607250335457284394578507376293184268180532469156027134585445792522780380957748783623428846668609435020534792193212329085867401061730510860149449566253760406743032734212836725815309647084586507656578316047018964369198544881199762379397199380963544125485010486431700862719489355601301033827654742214261473659285708704983645164420042084237865947050518860183246495888936259891607959732749063677202232983357723115562921049411028164679400658656351282102479869947003919523615944998075692835993584604235170577418887038350735697343482040841978737298086777093699560390334668295147779166645896037869716955719893597757181357553026214971448419832320743924262362802233113394227538357119027618692579438355616773431884945168259942450978586567871122139819750273402087319959977028094403450227478216691537158072178972846241899218844273542764487985410200004845277992514706058256528324063916847380286798424060710722649585669259265215695849553023850579830149471474609470664948640353007674633889763386417646541369533654464768202832023448889898220681102143519583624083387690183258974593271345579592245289667825393062778852205194947143086791690616942467943439131573621236531627038542843729812372192996598206765997751643439428929444085914445753802988444156466984776760565738623046639583642351268166438939333764068587129684871125232539091916246262654859524191859716524445905126293159469680505537847742704254517581749267416986133289532117121261014097815545234484364996819798385084021134282263552979052282908689816902719075800681462557301148695306592150906203786472976998567021535771203201976055077495218234959982432872386752281695388106573278244204881084443477744906720926911679931190321632701845886775779200014604741678287528955988401636174341596063641565171777936967554664202311914606675660480954953942441065999365298089986598149460119226254198721325899100238418490506244413639005371601077399466923422167712607861533268907162744400329154731456811619063406804013108734721448796107904032304169759928294749753290665924973651935331059872540804441296660479344955172895978271340747590479898335385158149696671077528566757060513292142324195800314400002727201824669069016488055752201462394402264341298156512689076022888024405476808684394639524186851161421838199318702771991661738751136908040523755689094320010763703585988465704769594692803399510687382565672938654414374610170696774608342637635189091303737675128491142998249944272734186059035932750271943393812212691027720006498107152527788601894510222589091049177519928005613997482536569041470093561488195176029256629330731444648801530280084801076415983484230895043020809795875872937436991526586372452673183057609874460041426011106604983127425134009309415654297484264623655719953229435620618790299803430465296391952965175235504279190782177500786134665626209502401403737229059635055925199744310565680869091758420440334582432877366177073199672545427467839472175982638586117572781787600123639241943878026801313930765217868975748873072084973648237498686739757564370694369807413672793377860146455241445247345259474320397730921348908042454124783644157477536853023987832255898503485687210719994371502044139185759281612907355725404569543387979484304162182428589131242001618820088288237391125558598582056684823551146386061844865559681983348174053151904551000452820531352405392672211891727017626066974563572540047882015956919666088655493140589608586912367215155119591027336520293444798090210891991371303837510951879621622771208710098253877212745419017170497567461609566771179189703802775694265241265839619910652783117677295995947867852325563241826776443872331097946588745318148608264837997243587626247170012427050150378725973936053734175426010275072845572603217318860530675620450671705318818177520505226834111978553425876484509489459462428411235792685250053273659801251550077407254018060615568845165699430187409173787844602896785669280855353118660723620059398740405524909439952460711634425664120367700155003150650009280647725601405483384298975763844326684313948727381360801572799810725499597613937417888777261936228256175985925116083530078553427764986033979571433493961785691450065551866980651413748847424952065868574056866165648376930565552882840621625651148043129544600118596971155184130756397649299199020990531416384060171014812620239788775374950209400680043826586121618369078886338391085212958987157521810052694222816352269434302755647741886340264115889435356274284843369546633887544075986450987165322869783786589910371643945525523247756506042707832098722803564270620850234960005043034835268760855834590710196567988628796097910327596091109993355232269586358920270596394983682630640870784830091738621456669567525068347864262017888980440285506885054150090292847500848044787466198531329348983522363153345689021950003087954938211648183306241351287001345440656894469753732055950344095049202545570769000565898250167149921171083854018565454105649741059878722867462068084101319919768279266760032727987000767208956055585392045174739245742579160302467248015175194694828032632600949132561087345949681441503316691337491362281263072450714255347335489734690449705353012987283473148012177827248697730019978500221131618497402112740886535462124153184295077961746636615877347311889606441734373964359828709836463115578778295045102641404475853557914989727445182631178370810303612820042426827333992591493205209809593001963491984529344186897857706326147114836614452309765763706496571507927443936955844847947741289011837556958207536958648918114472891884957608764275169162532162994802879023782977513166856834576744426564452583186551872318130762342756268161092239345474037080001080333215033233205195497649063117718834236418856185652407993251747263054802319950648878367310225472516405206619098091122328966142132819754703298504787318678382116845147049707457651584739665882664838606775353713665799692696974258206357716339109806198877703722500588346492124585501352500113142709969333155193248584506201393071220416971613506900496977481563472017608211664575791271565997846827237197426629954732405249352435456789095106335562302073224433037275240967927081804139725866364334877940837280142320198383679806691381913049115455458021195133831685307561134875181897176512637865121753171070552791599476392179039220305267835654007312821153937528402067654729758368658060227939531540680135031632246259810941541241225122803802328207792078914578984345595021629112493251840306169493204375722248194890433366494717090542102095585375469211404215667918649471509009775204783612590458558749681019282482438666790685162978728027044383983440477795605162008450137147203207965156284887769540272341110204172975003742826583446087282096027132334502612787911905841027402817445165163134237441533557851179884476052994368738620593937955997792319998192149434311779613811051001549267196253987662954136245961482641129118255937487643012022752396410662223758086699925588355301425306540743891581718759335069006542709723582384963041476186027962498102644633907496235630005175470849276126813776281053042448886215556146564975414774384891996951039115563410228433612690947467132004416986863423954898972643934421638138790798324646898192569752769292329774949166079660545871379084275282151809158668696695246814716815346940980652987658204204701167311007088437289068533946274533842933617874546796511810811694377746742286315157317207511029897953407920777733598109696450802802039065649824487804238285967231498819309930552081254143881169804016854596052450081867165442820971609724274681735166038562154503741868280155398009795282206378702139999711751769714800966046222985998978479419498360163723668867289195959192195790378694562047587498537132211175808095632350678357624799189053678285728131432111518185467822916335916792483576233835074615456007965666165851068103373619272541793717769937908504208452651863222333603675773124872749948850782910676856127663313888704055204730169111634678556404009686322014473086006421087609683440651338033838836281638819630319113003718514127272153438215982711802178993843576567669808740251701746526439014971463894963425324969341130574199060659473418222367964948650441819106149522448526176734771879516611965463985835341301802567959959922098452368995256819036767659284447624135737254055474307097117165631367740274900447409531391822410359903291331327813270758913874250781819935817251195459406683543026370448059317633820333074427777134958703155145534854616967974402847095841620691462190978860233728000970597495001385300100179589596413661064542315667526376298175881826219212736808840964898320334299958387135919191293817564408268706638731713474419941197758803145685401059266177158636881554299049810084187902577464077635621639727593988073851280845156125533454101316206425834173675343423328324267908462156478141122565882232664507052468866937253260014157220973455474826113094904470767959764214277053692644412974748701278094851866588891126814814004274340126959539135271304836922494480963406226896033192137262426460360397039858895674523960311101686386072932387956096383210900675150466037559642575133989833365410256021433683378167078322033185255294414635882256436285852818319763545195170053334580377784606308522934347331045825264334989826807808142744141171660660989369363997968527116277942045491596617659358378224760301192606660305140802576745110905737056359150860303704044858404762629241388615066448463062278418659868458934670373574721535848154488241114696776074778377840906575242598157763128435377873072529003418551472245679148872977847277109002810410010806364687140563372897429383279477535479602962926386516943691217030180787409166953970398890939843121206837992241970565184179786481363937969052589355196025392055758129591495174125275655094193525219219258716510434227633094989566969779076816916092576855911570363138171069457851828113124877482998329494743998500623885461132272613409995208041971532220424436860752282900633867020456433011745193819320761314069896293289071654757293625600756096463974537135026807358347700829397078301506126631894689043318468654370396839953946071732684632919838795100652231613108291482277933219377029722706454040040262821533521604435774693068293549091213843047051341252739309251664688255591550071353999737570904485673474483522121640107732099359965059250667961413215368705145152897167263553768930170262528235808071900578486295128420187710174034965048048210804103268527923951454693137399299482497206179149585967535562681938608325049816271151027038119826778142817536039685837959122111173315156236900191541916720330919041583348394121286979761896412265832081319753086148795018705047685027129436325305010333017186961621072921704205905281583724837480018592164689440646293413443860900361666388837718674656568610792218783398466898017755747654252463853049390149384329930096492373646871421255919088528774973501656190485091852582900581780310377709303248696746269748626490697345877980362672274800563364954127829016064333594764131772120846376585858680453864748231499396779062976584536165486732487637626929084499449022711604702378738540985107944062830105738847478290915178023462462063357096344844109643039330625762682771969316499139691134401340750146350381621452485681298052384132493057784354238022840869357929337630741127079391503024887462361825140244095758903863556990308417252541335336124134672026352008202617453325959947939866045881082280977695955952217599319722269903342859270288234812823467096646755832711857986781172698334493354042185256607519375959785229678590823193857337807574219549008181872817271520283428844236077918336764907871251145994071073717142445544215859688575221226436761374495790031295662645969603438325168081736810114723011702700740569476195061968758637773600465171738027149026649695567122537163792501555886304256775381746100765306854903321423992660576138588825500101551306990420816792863623089386400647951644911022277279852320470975081989559920113101506846188933718561612974067471335552535592535933044251931898302679198602520726343131260793892887709939483808004639251973251637724225745964980157586955221948782043408316842831548423002823701232844279235959986806668134327681739296801291255752265824786931660000883043432628070426255515167705034297025356098212980161565419469622922600021721408237272412473940339174424952836281543574002773583062741050493466014415199216281769866030098814046802610113303902241534527744309739840536988399320897460778520873092097948348257122017443532790684705121757404979512418057864652169742748130330043477139616205634440115405778884508911127830733215810412655721185789221463229879717753538252459325217340885363174222390495294703746992611525803737408054939422295098939399677111930224881067841809919642507748720321021777570428224764140292801086979848018751387456083008990115315624935600956218812175924977639863931103168886789427963082738297727280422674408915220810216576408954522124410289268793993225849666139347497211884366868980705487816113372936926257567452867293457708539263862461101464223059650148548711953877331958899050242553460303088032204704761051005324198851236925235780911717262377530050296109460229935128659689658087771387335051784592961869224464523839502619715278297211011545698775326656663632506083883663837661969680515833177674270290417378060139164250552112420229942753043813970315227490167165751527260419357562835147192887842725829425869568896427391966183455560914623805128478235384469668381686770502474426681166315391098305556620671516339786070714629611559655406560870151873320270562472348731933909886625743635057863006255751475648201751605046605639472522871491594833557628314784283112260180734056229942928698266426819059151250804533447660331155069108662255673853866128447271372410239271938065522826839299175056621155464127827876915520856071358978108155985902406625116503863043962276357461704079468328109561644638382664797166546054120048176883055508671084141901522982184481304438874174662153228653721195503107733115640680955719655338357615856142004739777772211677753129467082264470692476667164373140563405150038574451070206087378965671354884815682504129942404942890478353304242383022811436964754143309163125093900909203195612654742719071370831048882132604114816067781539905919322045979593355216748829222187035740664129888802989261449871111131887141692386506640297781536090929083093608515955762845227825471264771231004233799111345657745545124463570194635862613063023928260929487861183235506587550350085369805932164250775139570031214775438102945163425216833751241341689231237882922909858462537198629223972890909035088438318887729326709313151336558844592393029808090139081267738754746318925124164605445629228470257550956532214960923610334172305726894036549830486541296575234713695798942107511849192747298779075652301409770745466035953979727124711310956049621620984746917749430457852683750555779699538390670153447627098737777510450633527220356941840383629358103843665389149743911801253480194976596447791021227153397472143278089527430289211479599460386447597021830723232866362156991636733560731177873907950937565315899292896982760138369070373086220888431240665376110007953536572951213740368519068992675634029585250486399179216067774821862420733778261935738557693724789318467304570492035747772272143013308804740093739632559364729839323459343885616975526762388737838981057740794048466519816719310335577608202607687599802480206426097921263928553971320633866501316480154344460708831237866655288408675944607917843805659627236798014981241348262797679240448472936409509836304480856698471673371724448449909877880630683998785765252176987244734375803603251817774178172349460431228145618325328756328158048022851816551607571544463998431394135727699319044932839437814902366158918926585237551066778549369984537804595618589767068670995183914352910028169326830327632305732631543240738914720627419531795494890516833450801288241005159591338515125719761061947859303398911470765383146795521083315421767832337402635098308560550935709117908442267607692956871663424208243167574177663440753270898093814953477587909426862536120944476168339191878832341286499481173695009597553703374577041908579330058461360135164602363971626722832811979177201099950176780769609588033484863576295434530748697387030722839605159592593406951725802751504783165835384698007244627665507151579504331035107049093799139871380819069562877135163226390345820757885744687208787980218411108156047412919266463115961758829193453385526403765028083955558254170769854683116178068401433247357678235111928888438759281269362790324355249307966217146457638240455922652435053724454762745003221912142224295263102943506575411413939218802601927697340438592383526050771005772336003047212399450758352883340369843279765256622155298055197813781916737227633312625664243190178340905009774246724652559431926317570780947439763529141145482316792055074071043184734895501228475201368385614743101728521393891878131107473435979150038618844387651731371967169174710373112766310375180377862594291288685242958174982601376424323366406463518676548915414102947829709851003242079852153467681737934848449693958429131923438932926673752755561089520660367292693461012100709141854238478160039569210975673526127524843633738581241362650428052299753745358202402736090502813845119556460807562428461410546224459480704276541524547819018712444807634954319269892149290317186944490187507163968710370503471680404797479063579298368859075630775330719970262633286580262654564434662900941587133568136506099673530129999467521193115499871672991941707476214225882899786082193650244924140388177955195424600086307365197442304671353660518004251037049830144448748459860613162793147847248577338108591344059673558013778633024457938262017510613598251707094147697824051283901465516244818559598105399498929281731315816581260387026379227541270445911774437132560381646304257734223910462958104314911533383403671729772796416225401612099241549481361222970128629311891412497762386117618488771987005672841753427552263271564126414325894172345252329556846798180957647373512076490319464352931434543053811440331469694331644000853000290385177032742331950210092503166240878371179435723591116296959306426551019302752815450980514500533179350858878076527932768600469901932376718897307757047503134272798540009651573791719715505790985454873270192602915405222023422323124732665317043086655242767358879805862645609001155657523567544259411429583583673049989942893432809942481363382541232494493867501624652337264566434241437912621808473608544362990876274765993825845372561614680202292932604794013163770231736013794077421034285817119900736873905100289164013165174597178307339506125707268176874487637434598235862536447494893380750672202398044321631657331011043698559214624390788614050329356566037271991538812176685564197113729136682680865561385953019897080440805468861084860640852937424186798239581259129252403204041554862034036974683747218647855138152694106366651264481056618069084070067513652730523790819774083842671435174832819021785235336058533254209609475855446164020369910883749055976728081764792176539408569474534170731268898648471295274352482841711599845532372123409654359885757175380170014413804667879516284040982050038354638369400607683648159149688089828641942615445424691254082423934660485320322615300234194262124025678747885507428978222376638517816538613861876048306131836847450004117334026558965732546895618799937193587944536384031809394472897993843834381828913861520326607302916057922092406064891049272236328631814833376628787378422957930932733203887088462522306503857839659858755604473363142505554714256953010889355045631067460577413508785267353979990218314895506620847589204475819088074091924611350152109178742201248854930594045614623221105198067934546044379740257818404756421557235159036514998714722102683982845136205837757830923038721806236962254057729020141018319857352149832792030055607555187006883856242167763788139301943889369313743862446909135786167038641252442229224150711913913376159799735329308989035743121126333198488871084971557419012061263704757308206383634726392611656899635528997350431863295457011033550763205605596249119556513103344737175117592972533389122529399100876637767225960546100284646915580915931690358680432427227791224163984649518397446344591606743003885352229943179183594035375080501259964174014322263622812281301995531272576839759730556368094669686792907162315526914634062119979215231851031299587406431341275532251916023345829086313724013998616029792570368845307376633193412996671227635289689891032446350927328555493670941005515088697709409606075031866216585159782969377582085740030994041221408553682185724316674691396218063854680226577985245761678536766359549545613803256765473345763825970958920684369330597401791368504523558186561394486534790428310565752891879216526344296843855615576866578233644365817192070991098237232226838358159878998872105742435520910101035361474873243732206165412119872996661257327523824733397114615239324129850128318816706706290652378603770839864070938366323220728166072097991140588323102304437681418938350743105692173557258091344132580077899519078301753069050410603500742195555060228229132251863249180366661857332289485077851911621346453272839310603602694442845304494417019614620951988870264906647590510780872510100118784288819512131370247406506152553909253362229900529790187804904261331536744695713479198384076885760137812527922644909261174542145176751266099195940574609429588623082316190578150822759254742212042730222620744008682312459375712986624612274949517342566652170055133276405333095943704163240497784552984253240948188649428490706691671938190707976176396311636683856840805528824224057523127849190153145927046738896029828387324881870615111822580400506203509406710809751066770210711263737491214280756864701980828271487383606053394212832549870297921090011981558714247153596220654171995014100592730373792023863375126832964944606132874125611846931668904527075231609447313953812251932033269494145455821194253602733216094721335215049081272578632770735122988408872208464366886022510758912226659890165722874859583055144080016504408326562299445851962437333332467580899583458704513021165904250295730282256219112919205661805436185920928619446939706875307729488019768640171738588722720119732105707275725098703665831829414648190690838072560134894909761974102165964072017255516952527294506987216421966545954291720617181431200020621761969584216380389916926074751038293452398436131747581025150431120838247945448534224882695515841629387357460810682599325212133082172174897566463946675291002823416370196841507890669639163530802292412629086222675924037190121422488670845438050571995621017563838354459894675262281915918425219169905960018189605396351875450411996586171806642610210666297575331595473371313438901355025134082276002068318119791353994556691594719775535406184859359786078015787080961319423615869687873063771941515274216401721190361794569602902572944971292505773295793387230240595159442515215947358106744331669433964084495321498956738111166784830144379706940168761351479195966793669351809920871020057276514822666877287662410014434037086623014071505889320194220629501952893863941701322086691915341298508173627926584133284592049732109839442015129038974042915481645024441795649910677777719708574562826192805904143053944722553265476216813070243505565953841203595221538189703098179320668638263163602323269901961892564799615376044028418790404598482449632732543929306770173157139843534676031051013631688744359965037744849546618358373989472764098954071493971310504065872710821137215751657715657108426821262629840658266959748045171183262333337340928211404642473675784803125658682536650751608382647790010841775393590033062387156474400164454042558023966548413353855135552888432986136965362555784539479989105918026045031165030913701587612810748307860770705699932126625752893010982793632914330942099481307186528437567470975513419055748390519999530052515363812075373488138299833911163290628408966078516157986288496513365972066558999373959177758329719181565682100949384669189305025603308628170827105894042446759139465365380872708909395831432257900431741018558662120468105165313364092008386354617091673502343798363378401656291025712252758398640674141419058585137357089863277189913115178264955485972057640912720693407306376441395971756115046513925143786427425628645403560472498869708886032409558673470720743678682449658121531863332243850958302617736404076049644145195792861998729374823909944253300452995031628425245439595599005718492624476567791045699142042739669307287765526731742860387950816131242951518977317214365210250752212516382757058378670672675590373118159208792762138861151460006680148247272283903240354305038237828382373471147386984148868854833409050531459895196125718587641357432048887791119765455898964723447283230518924699809700623954408809577951821921022693072638610569445644966210518270767483423554876387714229867511387782691921258858509724444781536560172165773218770324044266136102436772123843372321928147167081178070228210967461176885317714782809124605610600109934635691087767461827948388202528473813064495951803176399600337104772853674079410103828881357242838234058375930211622979904781545398892331154476580407638379834715865955488752818051335016318968862988294650919626027945458968308140850281928747742990478717169404097572810532767255957168758233641846594841244586600449799273000312317881541342529359698545172401964958143391303404565379351641056108348379723273205750677153444595378634651184889688815378406154782513637835444459024108141088219861869700984789101354371056349534927861887043042763365070471764816303267263214431601916795460180274733946922480325848852520624275103330188204621948321469704964265025523511616300016093813801712582384326840117159061961014939691570672841342491268025633046831331775910741780157612811509347551333013811297126435466022726445181059827940184728115255504911306511654679643766484120801668616659193804635148902645459182178723224913062846572205636232320101718856677495515462556547573054665622550061192030362741626652589420599986032434726581066323250747429187092840344248863685065927604741829281700119111145222629581013360866249710631356027982819848700970588770773155077778981764298196341314575328518360929148491463465135488541152805330079707696360575334028687835198521538160814871939476205731913176249381828829848038227258312337424956564211300956409422010848247218145846119859659672656766748598539367303551796407133226319417309675418030261383443688005152794963428046823829279381723422738214169810164403803817581230921291065059704153243283152570454638085119622523095136279737423230826940894228932294110722890375520021161639478708720620002593339372580761739640013557334823630359293416447838182740499954602017191321589085086723824839451787138931359180848150892350436937183569527098796220794328241788058110336539648630515325298170725916432212070621199610868786533477238883377598039896325199699219323489863935618641990572325971827115485339619898828997771946032565539358304031374224723564266023220465767266006764763391945120987907476085206349554038781744916850243277537258773503990320077215365349942127790593037217364448796095066387406918063774823270418795613265591895498948519033167874612809461195713492586427532762809590887956590816512854906533083331348666005433573167781678210930592170820832874773083844435136676943719341039474565726951773285932601814689620360164640116452566558982714417640973968577344179063083023496454122667933937203559582808837936453509502240085805589099145107284867629287805450885482574965279011024946314442456293455402050791274704878149233125741263821383787427450087838528968606465186083745005445854684383230930454352504884719631123750420531540007054387746629233855323658026954538002530607676408188430971103084054365980227714789334589857880143208437580424637153547694492446236809154786838929173109969945571004717430523099821105769118145105203773055073653243392268301899263857030087614570686166619473029207084369862595487431770917519629880136770645564045163377190078967298144482546123109321307690162807856032003160816758845123558912931633198157498428072108023964462014877157207654991392438526417766467644247715611838815486612525465673098210257928137164280348647213752385000110725564790598610041978505448386158775624413399474389710683711323076554149755411882874665204151447731719121276525463846336304265898762171620233355323256591347603175454685768155896487434279060506906763688071457822955322284079088857021532619084392387095452687145323674577017429011364284334402632017721810119902927497870464229602583964952979514601171429826693598219104035943840882169071451972831565590965607349280085884284605045348475112550177780767133466791915211339445873121141930017830954820429235796875713481050501485158438024601781685233281916638719800340743949589392521021089358788020350008615389910317694810562239641686236832438633300669578936367575552080013335914067904828220166769284311401655954292128307699233145520717558200348847482006541268145413991935694237888363768470794083908390729424507734211907112914699720781445251976215004817469543731761085831075147524780817090342660196413333850011936186290783765205104791450811143100791683563275618648664558064170339025086588168768994502356189050886486456623742865508915778760282837758750186187442144577846304612639685808504779921582664986525723861601614359587302056520875214214757089605587274791651190683390320385779438993507974997132545686156951586449295369520654369329692936562683593311476493732242120208920513851601417141143601052457674329071346185281022470144155853914676141679918673172792088781792751790620868349740951464373489700492485807502953407288181912856596955246402718414120835755866315386762639386761769703775217086203888712060260364603529838381920869320727517372786748344250846813823112979571277714555241019792633945315652812951331591253859765896301302239837709875564948506122240549717060469253706242913789274796313316770833124127510022898902340593796512230964711863311969752543518881385044543051133708698467215731430562406909461843152832897535221092896791330256374471453843258582920021520847866692278346940113204835746715799226301894620571901929537347493990370520961287437616506567111568494347185800609840087191631300283251783115822937773367377852863562866558623641977155145792205793208514271085027328743170915856393871946942604125101884429459823094301933796262522459103389725590379613043448255083909484269984048137726597393054504327283220719844025076635553290790640802336470073281797932698083818592190829991875969999301277143905825452571126113638922801626026036902552614091530236522710548331089865496391119817925875531937640919137884912783939863300306855588124162953506938066098171341356166057898073950030246582966041732368285635755567992508044821574308540209178966029151978279824574621791101488370122800871549487354751962253401800848775553863576400596760964965603647469204355013458832457177681092933722837607707355550225171700892133860120740681485394756480312631755805056833917999083746562972045147862032438950545899245779794911982680142157974705399971335578817227286234449122549815614308353519066521451273336428673680540990108051376581403666462408869488722598539637372040989347418188978541518727698928109901499577080005323544486829180156552731942512348678058148878054715996593932187364228027583918284100927303432816808224784268251929788402837898967498252595174445492919436857341140944322348589971693290678681930807174190845473215331608122241229009158099170079406620085157604429681420063390919184271841667200126456565962091870736139844880544487970651455021040688274573423518131187478509682452096412282725003922350691754297523709038787114829269011049690604399925294396103337542693641386541087894049860972992376102560486744843495406004767907143347898406739456484946079877352768352225637306580217739181255448249715254507159456525049180654890056082513365795468431507662632683516895189784478114043590230789333586306025532944920953374337811947806173010878463310448248745065496156520565831880107338328879762231437214627587348754542495219769066669879688844293551634176423706217190845606473020347749924912270171081016930886207385943060211302766975946865963911263801915327644800637312095924353326902350565360876126398681853256519570860145074126173454160585645846304424312372212218618868026422543014954478674201905824746266179826406917824688754153436970976095440070820102281385557882492126959987520642296953777788921077358288549418285720242485581838051657022493684387216242095520283074930669142208067916200947986424882237763129094846836803060597801359686333425440001991804981666199603893442916145094605519632488566356329552058176446574947732124111510270849933119535018040369299571710478065216397704443393612203242255954074293040026932501237869118777447574591348391094079112846009161592830383706701066230901158059668432934399319378832641381626774307686133494151463894774228108617948066548093799511646386292685818131770096682986467074072816100237971985834210345646744603581085736391190328423312007764717124428787043611073243725679822617869354496068433598065174249118442511346467347628955159103200563362758705079666504325097314334169852725652164500509415238089460451967224380465207888107402776636482133831824682628283338899373205704843147662114672878359911426997641740970894586554580489780417792239251783559328855154951507189132733869595057437007547339207882335473080674027357479980256940376819498549956803383743138879127002232122959026245301280013971142722865462098536593616183942051453094996018848434625007581916135022167674193379873357475487095067006982423822587193408599232682218116485588348299910931070799037286643798714730745194275996270864268792168525217165588533622123622433493029334417340424107715199636737586538730966433104016317384432979985591048651148890416824872507008136664496107275977295923121461261329575933764345439740008523399638134130400020289925030943413779818467011567764693919675303297680850316973423600576115639599924451219208272952876170255969451784291449650377944385327099372965083781576921531804266839003916881792930596111783431995189548626575910763819450940749760847807623216107015471681988854273340712573997707628120595706968112865281300812288024705629403694572026201846710249156853359616930893286596895460254831016688096643669332876066612468680907312687487599991587932534021348602348840805149474074028721838030074188277332914815772145677836313665602551148724617492307133062158576982183950447725305357782171198601671391022838016696383989013796014699975481840179041806509393773176606222241798660440378499407728120647316850504067025884899744280866734215925324710701150220143119104631953139706301419186658949897254820092696407214984747351190101284232065746346799940491099440669664420550436802101722544220654026391717537319528908886632585981398710698746862115847302801365112332962722600861580783947964104697373612136731241979210016185178967012508876956781979167845562627723298537694515117720752425498260844646082520653780469747804563580995606850321709832294585967567745657842139997708336989879524741566632325562993789247351038000352530939900142194357859995353321004652982119926459616190220649516752318309613165711726950653124817341773927113921930673705710659798341899465405479272426154902471357782551868332016845397602122900114165261414722378327484637400550550669131091619864563901842023785412899480798193496331941214440084797211716307171839975390840550538973092905605824271931095974642196108085566145115863339310390772802693496471777442929853245867696659661999330631131391723470529408625113061058701443938983744801047977886716304140472749886061565173484128781527411973054959867804567294844369845777810525007368292115577536072664177454321105339508038324648523290594967571792524184049709987486541700572069739239282304195789316522355321599351048545955849440021778354668088009969797235324861633208921784609377031626645675026575528102335654351170660271197838115056506736185627567333334135621269890624720770313628228999846738088504593865451980423378606441601357793987719566178368751986409615554623400379320505368981159183216556265291560684341151090884172195464463152783983692625142414012821223476421880469498773635084813106609112139978225972834517747776390117697416859378218568798099909088864462025851926322540730777540524215622251928566797484527820642940301944042570042044605909408084081655236195588178782052137845117456433016403100227742363527479200558563539977277861232708827580001535073024255269097454399880394687398966288208882290442038819219056900640791028941400564589766736786266711355216784576437817979987398137932752871639689756454962337004289276485538133889368287934791620031539861519806698638432852751083983313876040446716911792227488735446244079019387363980312399216396083288512749059477278514595579220616832171884190681319389570995003942030918250868539089344759056962668526944133533545269709784993351916659352680358149584591404536594594421466892239248373809172697718085999663773150571326251215340758912169947143270023719976664560063847089378014527136397120560429677999994858345571069451161557713182551991345701412274337838688706616751796098928366632863626830920251724674928463229718688665943993244945320671633048013335546065457631088909380673278229177174086107420217738323507820498145502139329569823141926634224900415956144643807840447247561958897004826882550704711206797193651634632768107556493304917465836591389713369206581372613277576098233478378495718388397988739155731810646274847465438975607761479087574656004724631618075070279934747373874862775576794586182701921803375520535860038020664971683731875430707947010056087177403717098573625144680698019747788355168455726070390611129548095022680268848650021473621434568658459027829237784722054614807532008628914878886663643157160390124772600305280379708904747149835988528004146861555198564132294831465343160201364794268745349985095638112599298580256862521912923995892963386994914563254806402304454930020997127831712363347903653685813115918273961088628425735096371556894148542702735558556355270113574307576787005147606606340634925022926756042227761660114729835371645441433590325392290630577970194194143988751584883182845930016888616257399373407443836016795739591714592287427147857902360251374058656752893682776186011462840977922131090647675926461797906722664681409527924522965908723966798963190278829956668974837210001173785035187756914087516896960343123390124881505294466969186550596921446897004711699394643103249052712979460433034723095778210823994645704555985034771243364376606706289647731797163967764455741856217443183029658902935738188502472733374658339421856874659033798145785976583096519558346391587561348841106046967884954050030842911729394501708221208770367844611606617283821666478267995203650799573180151577581560512617928430908552327384108865992704446177765692703797728401473791187399349056263143029324241739201234876311559061338808713284453101381465627594787895298167348012229338915413894763846032844701275501749198545433174017686078101832912119687510860232028726310730193975979084413341483993770934244585078287624982604265581420844179041708577529693320198094996403324256505536036533046137454388688128159381598330932741143397014802090086175604169333200444328554281952526742450201989783868693736564959155623853021049214143545830988984789683871215137433838227625436051571384914981680504022440445838055547571281705142127573025284339141999500249117376109182209809491018492134792586589668122549502484143135359560965969629678590284067393722687982150775589936109538752551702535920708114143353735167165997214967500507926029235904998666560238037514186021094265118633500295780628872895531654978555652778004839103224774571229065877853466220381876400625853300868466115310207110611608609267358069763143788701218800215123989591933930934024891884655705034908739092787088808238422820089560588368115356159832236175690100664348845676031605175189964801492695887140333383756873233661706900838949751144599519613524539017158625662238894030923537442691758914065544710960006254244750170376819932919231231971456940906207545565904037559994094723597831708325239387694582907273532388682269193101597867465581836978028971493029218976650036429389463473575501325748389802976133018709618378372661191411505120880539197508974288615590042094814834493925920593058490867277468277606454600590296567633494847951223857033774765004111514296838336574812053598031285772856513063643311038619350009352936683501804047037358385291568735395848964069410971505556023475716733039427102264202360065127137968194428676789791842408413507455847778156508895268853131238170482436404216703838409026241218335005456933696280104606956360633143267064083890408547273097179837322654740688119960148552951819009524835167044836266671884186256148834500519806234507268869066054949396567726932156495624486167889103998147108628542338425681160310087674958417193378838216587769887776658587137330432364983450347634912462960029461532864889460792229721384052510584108423089315183352562099110326801708781878164180781477501066918492910972488050137686934246837828537945661349471769890733186269199305996515225350803345442184831802954871849873671581076553148834240356758644207407939158727600770737930831191703063361839286032863296806999346329951365211928334108847944799292013660070468006653766998001972000952982338287767400143504657995341338032195008432050065660159717106028694264096989395341449383641668310571865863953096821698682263347133763239682104943585668894031378186411226065297245214702008269574346068545297911481757488146240617887098066302257655360194324155097849726563048240384516156058560463622410924605402119652238389718361683782669318613922708724812090841009985804501808575081186037067326309213051907675915953591672985303239408155570717156990024131667665733557411184473585294012829932507622225706104685557529456142657461398460070241551020337437555637574370978835474563650628699341909037382285298750989728812859769562916870435829488143491399231114101828050826554393747912656372800405150485597068398161651871176262663389161171057908007643951832205144068595406977684716838946472391488515913037842569684408161091768220029599957788523723486478058481059697265062831259055388383515974514127082297291939126434248055041058810209301217708116971270966910912606720810595074248632845203855382508119828872992515336096521508030536142991466576008497311425274845401044024092921927980655700500168094630379721081609635378155419518650528480094024939132680527513615871926950433227303756466404331103002845884998053619181561020989827890014014682632921127643350554231396834545020674049261126114311186499346599565087973228714521380206650048967932857813396675954539425432676392425867317156214669440197951440227481111241552681986775443023220092642919656558752726033236501000199704297436968618639816613921161212385759656063174436046801576815095171875389560431001707756064360175563286757422485794416998473769249888895123893812441662550124382253323659872940064858281785862411954704600443534944427816703526205592174269802940816473666055334715051497401086896882137974985118916199220249285333102558209372071585639504011333874311710643755326133903424433532999501762893336098836964297326354462962121821281144085279562931102560037898501350456597135655205918161587861505244335309551495365583729173226257273498315287109683881962101197365534539331491729215942876627423898964872944957906137295589449352090446646891805657420822729095710419183554323366665512871599644437577076298897293766144644957981756857770628539024130583515389340330363394790506552731657241114937485111349593375613024597784090265981162681634412320522655069976783969024648257919608903772264029350793082197569236408679074891361938941317958991043545213323528187325599572846907348740625091263945312817315763879216089759688242474205887199043122251425402571264021328639518639631238632767523897521827990289271895966325218856502462631363882234483863887754517628396525563852077665420254073971654681652344855292887888176969420099160583438643776849499727686048747187178852647236270700780434630992186708194610351935487569041178714878505839893241065451094808301633588800246615643767646114119848706291317938663289735067529261551085569666281806020784081903070034913851852319064816537938600978110799332352526491655163956583542909020069742455766027073182298019735361240969792782480697748501498604847387817289291772854407483544566843943719369218851078210731945845536830845447461029345040462456145970672804012827897267482369675352005996269557268392499310496084874562268743673546383998450346788601762580278141098997868460094226059967792641942734595147009026664733163110994409478250061166297189020184521941299527858830810991033621743725676796957134411853448812996075127123582662232092100443497613810040656322262911438650679353165731545646035790172527977574273677493394512745343886557239938293796421876161314194965077313754906958403582820763582240642939096337600909487078395938351239140725313615723901769194540105812568517778699792982643239856505461678722320955197519888711927708919520348474312254088704546911189770006177694685650383910677693147124449534992094416833228740168324620466561685602332897736364848967116370891219196071147800758237522836434805534293155996518277560680217076835189374334419740483847878278115190289214562898690559263561673730081148879223924080952348666832393844796715518681530206874487137553979714202815800934078247611534835003139370231134589481092178713520486246041994821210999117830352730928243354132103467802847007696779498127540294692094007676314342504315820542504267783312578114140456927397011042528813614095385757909127875894585310916593005133249451123795979243235319563431784156531409682889134600918129107883885107452819377956756389692373960722641858063716614026721265947411449360348370261163850245088876429595301727106631901811720335104674883920321524335518976679468509060953830599085818628404491516001761322985230022758221362154976730930830802892070533484261725098586864967092787432099406376847239993183778317662315083577888722961925823466465548558657012736889440989880053317800255067673487178990910761843942909455315522308741452724087510755038503293174644633486119561611213651911497351482708431849954460054186192675007766625430041518711980483963390103938436834182340740599381208262255552725264845092719468962723835112609052488569071623808991052060597594772098648655250174588793452348709764241652567094286411583891761265657780571933641216188897568458751454300331414712502559988252042014299929178653877083779581552361750756187691054537143317034137410969743270442620414516524339175236872441142949431330724854490182213096071358734567836485334876543588041202674042341551891718628443936509641641292675401001158003154384952170439270869070291550778428044291967355912412304229227074609254473332786329020543016947744821423092745805739890299078903586067546975079235941949397212935501047039582638805616239337328118726638268392132077343210953632476230673335844344104515738787024525192224914796519663521216268516636234969726989168219114600594116815545108094702058958510653715492782671679061228960650057230404526059828767698039678567082099886527118686590097250095076872514607602287979974501932729857607036042162560232626588711376192253682677137314355701183875914290450328607025371455820896663239319636222735872821616286410386255464238403725792186273102868059550953230753873757692256338808062057121883647807225346986033517056263343403196794959930130009631943289944039509998610194411676145512940059579457073428987518957038769687512323687966865493736261809315229671089699225788326065353504310290926820903198771214669277597961965193641699406039535568324554240437482707895429541637590207949939792122578113947518315987927665392860615898338353737278665992423269233452135118025713984706023520509693821418850162994907919693601640136847346473846757897233984514903688017844026228301639775441809431562327045558351376503825443244476944407734485964180123352596372513007947042898919451147442683350572780041934277464036767139709154371013095384436572590868463051463105565743466346223315575592043571106397364527319770098824830512265900520142436248684679504807492331283911149676766430803696394864324082048213453982703270004889617736480701812300418993190448299854379265739190764747130415109152685467486283077572345584296489525036439968447946298998927169657479893490844785374322732059304648861787886110162905215307475313754103025231605498355667961093849818690444234988138207349225639366609069249655818863454283440142679344840412860856555731960489223969001119549022305610275992756679454290052503355431237265693226714475847989092559756653818414776988131599638851588778503781273862594357187305870619623880810845174885582665889346184278574964016037695088200992265612038629125987782740503063882281515670576841250256063089248068900848489086084565911066033788727292885712774752214209688821142335682097969560779924863602576666260702449863974262196834023836562193612837148212235569032360500115416431467887262236377939574162230592989940128178081021068994533727325631933510738307919796630897050860604443991648448090572561948779361755159536830154684578386324403657348932572301207788092868729890844755135868701655837011720198628956567094416020686847334970855879826008687142067446569648512090317968313937853911009878054909120703350435817895912323466211838903787533433014884049209876204314508377542787755786353109423552307757125936844107321462024274324575042121523784530674816869870035149929998954492717516770806338334581499935038147495134044192490179118658624347303164256261649502454546757135968462801453905958918083029424445752036375085207308134889647750433424513575854957700766952389299970638180544127411782594465733382513245876650616412358145543239751828463579778834041002669848178403002476030299406279265166940945123476016991942581420433420655263850036021062089246307219506677258154041858371758697141384654716037341673515940065152295030370014319830756844033426291502215622045395337542340364756171834457210075506394745341577563449166290535726700195878507820576153079455363541126723081978224281079877496722489542529699021691369428344681764058109270805821639403405088778538606656907926515619263899009654845038684128905629079543645883222054253567486337784671898896021711833955686002545041319220956364560389461404987486213466944984101037415386139845684979110737666708136372963355169337798736210809577798845284233709991960814681918997522080907560202265222197666618680752700896186735702998493198799011679067959472648674848233427429242882068300378627976783945617436814549463071024879547496336061339639321629013106961242080119620892522760703869815960274323009506394289924040987197312569844379579486352906234055610465628007050951752057101333020850541052394145354834165924878286107439535667669234058625896337055494678796558648461574338064305553637288701220641817790269915516489234189824611755811642062783002835339342519044192187289822089996802306057794367169653884394354101154281806112825251853635353497243861271437524675819860357455400375636975484189932987724543011403930275965349681896318441840747952099971502067713012137393284455023507733391938878494452803251281650768903087313278168618336740540612468227959144900035981486940006787496059349768581255465660584843745427563744806616776603759524238910904404723698206440950018112934246869865093230267517130339428859754230612698585348564010803984417204651977369776443511359531154419516688925527699643184346606778528061280430311327454181109082835459604850619882530669766906094363870593482397376371724990674193350058412087440405959448211096154201109100286792230287814280144341620604744280119266927978284152087979526205060839011537379761079420706466884844985150164856271324182859805712748110468238532419128460334741259079362547929879569375072116510361300069863137185672991129041662342859990534448467822610793777801565686017918229868269903683240971076843827013079502223447342194883615417965239458199137858138822739417744663457304985869462587441809235886445585902548730972262582982071840287637863719999508768295854815596517907987351515396608324789071909183470808075712808221002507450163758448069928891721993480967993823963672112988900957690169190298554449646745392763972703482196976870027270819120517326239117376644143313588331468389825778904296611880326685978227632136361426936206007653604843833563212306111235113650296662658286785936618992372166025801131895771942760488801184961489134331780395346159440000111416868782493545975341961001697651200002421538829052445146182066504369847797373100832602389585665176000620519315601207837952559211992113929707279378385457880386803684254289749847191795914992370254883843816385691181102090845968224223577310948455401326463347688380698419476089977299176973184627589748266989852827407952445813360070131307785308345005386746789077055373865356707629866032369766427483556038794923460095577001168702809696456324559408072240537646859780064644127852825675676477918934283164192900309185535289478837517108000388042058576903068659618835403972949048560609580269715355127545152921210688444875760454853347005243430127966025018254355749763057593564825939456288097578741160045385553786375593560906703933568759218778289121385575612388734264234040957113966484324810561598985513747499569358688918788543102930595374039963785553414138089860049469912370455492212137606750818178722266362903279258916443048826035723503514352289184054839049905835257426899621323055495199242850813486846621342448394284349614567459558661025722061917153210825248984918218812657734322761792440856210619078399613186856840568343371105339583988037311707515983445211543567561092570147163682162666162428746583992299429794815986068662695400733211188269181407231067811350599310063639709741703434716220233188340560319330381237117583825331647215828968856505507122813026858784953121191244157328978719975965171800098286712934505441291452245869876457930436717486097641486178726606611553766308603314476126705478462974656663879860534336865549290495080504080126130588747907218355044245676618148762327046650990142342064868271674821996453078848707710629750929407307401912208099915940877441196319091796931164371650925826540931214327164326756090267382544634238490021740374554199082178965830937515694551092154805700629889779270697576734093948588540591138664507368190387015962013982278305461006654407648415788194603254181225937037841561972796053132538672565661693483961068891822584106829490398251479812152719060175893240086770852601566340718181211970021786430785717592061347044252899237983380391615112789036833000694378020496339136290611625288724563746275792172683093539312748427427361717830533108403692848653060084885831394484020644538828411344142943987897826972333989516954041618274621814837530412354115477050881749304569577771999181770534210111173499249310906975447626684204634882916895414898819679244074885061420771527066625694762680359471275731448961072365197610220584283022363059654989065960776511490384605962571777605798436570505697294763372900223298229010270875444137480536795516187431061611934867278773556093220448174566840332231971855696021145191310018399833034469660688766241960779280105944109236482982354563798939551061545892395430040000786944195728981678554486165364251655624635479904023517299990957658597134215301359071591154842616670823075454592876200468423567342433869277057652073867071173985522088707408030215599729947949410660807328049965036053388219123047784968284619721085739487284465376221781826402121536577641055854248050300667239826498839055902421598955561113893013061984087326397469042460458511676216814666259089780884815529535624218845392422884080930609836455105736317470189515488037197057985419031789302877394475677102372144358355186515966214741321496111496274559608585495166907849894346932015390574335246303496881952163537899607383332415702151951448934123895014057768225436702266954807658355742611812033599760058045393049095058029224274958513422726644047521093956099679663703473645235897141046794042961635853018248764314704714501133061845794285871727738294188348011430302652604223385929505225676523349157548353807830851733286318015539079433044358989147891055172735183434095961084322753663217967234086538397503015330353219331495820216431818029052470501285471647902956450150271561485367304768895435181802473275233931628098060314417245386837603140069242440489084800746660024332446094988647183481066752250978617388052641754386007497693152575286810867976069770797227111947057243207462264421223208761198880866838271589201203538659039952103468619714920675761282458021858551480342931283107028004714885796221964160693545528494822442240462874853048982582636509403128523166889712551772714971716861138383526215876225541387668501071245173723520513824233616621037922805915583980889465878184888243413084463260653903432730512649610839164399956344329518169403259481550042018237518321279738022043726889108534221032859983672439561045202272881245843602603583133977461833653314821180344003767430248070914823077459793769345420895854516536726643773901750434848138402181112333545383181201555331305992509544359865716772456115058789571693675642606241275312343463944087925223094292507171001499198987624278060631680876402001321138216428710035806330929934502065855105887457463323907481753715014296786109216939743384492912565892071159655073476248446606599595296855890953342326566763035920324673648362824493883021096403138799268684761625972996954862741045934813220073399382692538571846640531360299632273889422778347486029857127886896395574149097460377743643011550010304271646583513170819723362815051742333299709552439488532538210457480141898285610394218492462452051740347638616307329071594946262102113653698027286978530395104218733920483110763519135855137861485955390589533826939792400996845393379002851450981113418641511244384635434229145468435137723438831799139165781739878213068232080985258577278780138193226652013760042944811327063240585343890284821569675442059761431984336832647442544254409437047630799622353202405629622307886997873929503897197861897503797833631488224613819079342731914496115611429851403052325340074865476242031805148992422383494615947314145660870169058303802647637656717944243253359942802480976896820094599863355391202284410686291180114610904524964022846532738855208785606189316445246176097676128865938551067858696328851325489337865793734940188027105946292737088691301653361106397447552378391917216092098203345662598674730293724130282472733270463247790857596731116556921958939813943556359088779102368771165054152552805423714347237102185219920977977935492938514818997876137500781986563648530016487082682403274582003385520646086725059087690286938171874907570992927146843193138262389881352370718614654671372895707338971023890631441257184969766454251103681142178118779344266838225254991282869795654303983840080617763599800654620284958131855643087239165594397151189137114255179355980725033722180836198371444432574291581725406623750563369704041452527560879415735416224126781160615620785898812142620008202694075978665211294395835549055111552913932443460123738867924918688105874476840264296294950868352058043236256028042919693589819805112244962587545174435677099004553508447505114864482469888013648461624439825791812800440070991755328817003741870590223315102352333114074283878622100347175106415463147767690322011627885781530315759921731883930794809255465900889804833302955822951897288747176362767255704279154963912329976600919790251805856992037620681842165823684961394079572037597277458516721449676012310460784656941402153330394005908800109684942407685476634710741662458035240597915552384584372130098186909844001597009183751230344946791241558051144602236332924256807500413956866774876471746434390675772258638495611723654417805476223266690823655945878153679453637729041380785901469424791362609011578040717751958373953941172240819835429622131608873161639370879346617977379307031431905560868273255936434361478265543782950325947780712836517672220227021351796027613661817170995390013207462746628975856307360540666567247214329255049634663950062240775302440609874964123592819776422383067779088449715777310742200486614079772973111972122270280141472165295129754294050569552655425192178273643715894311021906223806478040503845065690384820328381737374942848111690571618628771783222948823537984494383648907702334203698421907364455677193879601561808846227048806977553054516363284213698827898803644199624242849378956125677835114428583535477309024450134812714390913487381273434625376882092266794577731430235405797666294817462118756777842268871725567062272706200363188688912933878602838396642828076732383398294860389659189376554393251521430773765057280342637189615927113649181943751104463499641206130194553651237514191702984600049186197072839809880820956078381307639337751861402943496424373465927455940993185156011347665313042929779753295222092540953829314285142345956316118713127534916928600865718712713952592317085805887856887854718596337373804568929389533160529439537744371601357617728163768464405037530972019173700016199746704102033313238494826570419364079212823196102562076232221386807723839731164036186309785013168327476428019209240403094556474618739848316628790877287728222799019310869944811661458646345676959993989555009137440320599164379115587799675794244773845884843302236922694435669437763849909679192305725243965704926453578389238474065426702901918585709463612942468842230221518482185975015712174481964661263763430518347077635275057862033761789365576402892015900937714270598131387796712478025077314193175342683157126198757888748769557991904500383749486259767236789087193862584072064013919109777220464843332254792580068214975021761009527409534149271104515799674284102625803308379042262735758063232445377458361097412242358520334183918147944021791543460773847508520817875117691454485808046096702725537632393381212625765788105419610283029732652063492348969153064839789370005146296526042915274371361012651427191572724332701325523828157277849391288008458992859736484871896751857163691013590552765755846945104503896764407969508445943777182907642114606878862229472597798167174154786225486694097142324528930423000628038080782222013411740846220449434256071387488784267778958220106496296741806060498892875891065597679939829305650404815501266371234089656669211955616870430817931977768972901219634645373018416010741569081475510508387969442832887417761708341075886663432569907139286686263574391591884025102653090703883266380035405490651234631624643992085007581359962314933172970880781352742418253339537315571486209352761567501045275505208221283293165749407251186595964787081021151971344804721011495207712466975193340680221611535952801714956259475231482013792332083861207558158574216503147887633991254316586556741594143400486418632009964241435165579392447479918975970021461924495550765273514051614929571833116588112451129351863600997789001699996594681335611650714047557661371192927958103051093067357508261997876801373611729199117170902550760235436252517514231057515049553528862402024768013603849743830955800137150291144797390184493925882605147630845950543303851368099927273310693590649366321057047099786545570597672588271442378539857798235047085800155845655956199567025394352389553312899656172726214777159769621744660084533664425282622782358651133345275218380223162200860089510265566940593349379643171116642539769603202556925641597499331748096318698774734676183028420999489000841548115073884276407242757794065074978303267510748641152957387982444543359326567735392694862269845792419969880930961199628854526217239844918372899531528157878562588696381495530911562065449316360225988675081318364825160341442700525642616116673213006185286805784536578283197950807522835141552892893091137198403568129599862435470892167431221746210184885653600759640977764719291944912478665132369033199587561073529936157557144514219853548476717313292065771581178865992434504507568494107890671460453471846469747683523507664189916621805474911227850788882420962123409669574332904163386414411875462031627823913800050988627459516834708747003393653154441816250887943942521758812396515666763656003250339582334442698519894087078812007545574781570663193761410349921226986579318052165031191974581578968527524289786282840722658149756564022275887951477303961606083046446969763330697001162947226430047872887445338717307817331100208659746195459945295358129468752948229300172801079739555114146841317247592665236403979227801596727180955441651609690738297194053943359441376429978342178733591819334329642889243231697655270381787102021302265615916827228665735389891102530770756127904702869448521446458261858365298508503471388550226228842175954002464740149074870684551245235723211341744164314132758121263202128455130780177804801547328920897944794054716674705233349644899001470728935911068502710672623778289284186928721282427374945221395981365999929397882092217612910745998134735892824960140650936027536991731768275828223384753074179552563133184020666564567791289445906810128279629044523205571472789539529406389959506990563634028544764337332576483532474424957342323569014492581248007795024647309583779542837526161585207680347039814022675322394542121356535970237275719410365523691204766577861326344439793163068584760982503319548898577856128884970049925560397298589086447901895939270283334150577957507614952560183799215664346237085682184609706740616215940951943049569611976511969225754264533835253072617919847796932048934906405859080418581418329999773784849158396703646730285359218877482308020266121000116603678723557922631353493517702537353640209963006827791594700334977183130441618618420309873828432197699589018986148615994068799966926393763452864379656273251881661407040584237508374908076296580208138844926794602165377255641492570632667288731484877078865091065298428169482076204094322364640116200733212883436536400536559193667991208110069687023692823317753259987435513937063772938326105986026819554356546431184398636953215053646025811958526307838033332608018591184777223723303582834623037355404000458714864456547292584585071905738838968422177299773033604766732997504291175852262278769865675269097536558681667867288330676828656507277815994764883354322519523662034365542229180076388505508410103447248932438348192386962347967499416555404271498357594211897080808686431268487350492248759471240910839485146026348869541958009093352893744980417321472970416191874805101299494207896615443645757808745044736602686949426598037392022271900482480591240300174744433405179788902286892136243129647690115734101117913066050913863972842777896996188626299978069262812213114300981869513399283328364506619970841600144163670968895898691462178024900056336725973970033214967605578738239669841088711329406082693491567699061671148832326570857063703354660893930449944897740927104017946238445262965261038341221120558712446662975216250379968041640498916495380410503145204371477366302932456473329097024048870649751879702692488148454334460848043034630122554371412407602799778733385459991609429436493741392775748095437473742097906787381574140518236742292412067908150664223155086889203542776326880661438754588451583851648646008231453558857043938736777719614454292516643869455884214479832229912211843921828488289575372498149166403045754502431302648086166444237410045761925060752816490884015479841850957289106832670799472615811474110370760041128939401802397858735954868552812784482344958910071444323348332549799941593234014479865492607422135168406895756831805641905278820788449441593731675297074461565848933545398401937064793758725949534866099586134187477002917055236702596305304149697866609311809137501608688785310935014579771077445594225273944937928822671098686297624321367798483027054668764061002876216706007389247305256229446368619518233041494217211454591761559549490605924377076467445875070170463932542752194107718280053671275967982386649909582482345335258318402870475547778927660826593059312073414410621997069654573596419772899518569743229618504953826544849383361552268215652190022781613591278432595262932938192928000638424062187742136025683247092771092125697444354331469334010574104056089279785111510770372997200413586819410796707246009807402980434641179365550108784255254152122499528215019503717891132280076628422432961685837476440453774337045384357702708011202002384496867991886120861939589210690723044018281896568256916080201843824498001676798953507067319862963975778196980857208714556629449691848240110349312634291972162660371198472632434721119478800758927024928136219926532653927904788102791319590314187042136112908316756420258455905792661472324975449613310945917988900783982751885779805316332352663814919122450039464458020058717809872697886879688610933272870046429334966417920999561849350152995037650209212821233725624055370073129618618396147327722698936128059841594517455236865743696025552943368225754344384561976022366890767469751148104694773013061587412758710232074308145094828258883368571593834042654444271846186790634180701929372538093523571811813505006859603534107375599856750587898305326670039139890303664082616996842746968762159730504493393775583490290458866346203770354883374890461715093187910735151451998242354376352761104284641050711881947010124654962957884910317673088667985971173484433338188806527595790532710518223983230064335098990299065900136923440173175038947832532369285638746696575807167087043313815269297724027391075085583290313281288530059036519155158523519260444270906961771208198808515481209926546963337899313005674094236921002194418626402924590527954377098905362483146528592373225952689526580716544206047490544725977764138203384556255477153806175146043951047442090685846966355572337875735408746324112934768069999915814998596375134547505096138681757997873068672757929782556319865234688319407816183584672927960791400691318551755320374308265120202635024251106688192747950649818947162149774971685884275720529261610932034995087030016274038850758011396785013123170490464885795470891901059647245462143519724823066315353865102340582782136716375003348121180291744818005514183612050422821542704940216596097461978813624709120688824851829194686366493646528986534122165662637056021914499853747778932389058782831673347375232054328245727452511671188987466139777393418323832196819935747892397779462204725916020509813275675229736416269185219705157228230214629435701181478140462693711957630329911054810316939480176863384394220150299995482498293608227957875240235845588137033148184843719018833551261132048041841823925427668371156792571599435661804200479938396192095938234932283989608194987264379405721297496486798343669039124817195666777424152134035249712562103009992941252665623534810692289203095980238797509744972394594469388557379335342755318999905356458612982282588835312154317449835948775405545073910413556118163507972995519707516789470837954754927914080967785949777362555797354503714283483629910871699329287866486272977752815361146170001513046126418883349280226255147429631843506225406932862188586074086315890269498291923438629991423516527235594090867950665710996866358626347369594498825960862142127670265144535668947465406292173835121095951861421212833675140251832264815313044195837641102759937829989286243045934608143419658213323845038384977255177178225880057821115388281999419771580718037524847919043021120802308763805772758354001029843958433302201965235926284651770097576526307862236385673706342173565052171601594224756755221306138371203103014519903751823895102943348606498229659968361325827170264810118753533569897744533328458138735627760253575066863000212768009260173186283753180185796592230886284120830111463674248216498247154412724021976886740602264129546220495260514958352351908850242184647600923186504672999720239384059068893276118202999991024635373294637288328440074068284632914279348287092515029287037880852044185411343902614063798495841587350040343097398203026360225665328986206414798287634155867431769893061913160099122536987763333375107510383436696628165083004537558385560894912705696233414653911895144936921461926024493759618989102335506794514575205883895376520954845925893543055036004247006572308846390922949851175000641016990418144584525739013948192814350039341847426242562119521552810581453540665511426284608071499677049198483876391682534496986880391954070819154185232528960940684815580005184997940073593523322235749317921369864646557018252118712041642645067442701712625105248873115267723597562373161626119747160705767291940330541680464963635049699156594314595434752749425842272564155522809684538643483752933239876875528205175862077312382099219011961997273257345368543692704292923332248781103558444314392295342771099816155431797770863384102314803675663696565854756128687896119887332446305734278434309091877324444923945015360891672059640464122359590587673547746676741148129489721311426141404458583269943405757657676838111805674434261826636840526584522332714581469644358711768834437388549959637024242743987115887217378108313318448636360356948067895370979849449225032054493222763478532963477820982303606685061858039994901221180909297715742010717971921030347323832621093740002462067638958216014371248227591447306404117191968571076891489547775293761338058874449297382716631852679847840703512661681465611697669350695993985818269847152319239133416477944398161748681101440399869677244105272250261426607383982659432904955477039115615189878238813674853464328659260974034371069108943750158576853988056664264612789096524073700764730458396422358301603874646574712246155161910331699666547255388536558517804028960069304439984552960572984646639319772926997889804767314812543703861972203760844901575369762866587643404745719997323476807505301678471423527712520344103890199289019882400575506035281944885832847937510781342512553994724084470197759723873201559151770985201651914821411029200108600889172948938249900933124319967486511280463692203928736691398345867896316827005743639050292749320655429738167842414091181321171596852990507245195566841986568929751858282203086577653837749556987346191598672201348806854462282216603733498709738155637780058857999288339464948505622012558525970371548109184076216291892111147860219908873867059070599257719352039589022988936281037711994600757381416721413599076764142481184452338053780608459730214779237151098252301646032694335726824646308968266527987723503274460644253327655609558184851578483408372673142422531943290543940137521584670799793742139057154959930121511210923362166559199033595122821742357392646085438561039993157624098215794447386460628819874651335142608550946386054914388001903314038635585691446705140387425484853891362254035194843785766192026498769186881167181706551556637523390514575136558263458716589747168236538951949579970609952785757753228814379794338853624436981942076220166361303678903941677230355355329077144236893125800559374942584756264801927572925657934768049850448666761570966710207473954854282618387412667390749034852229583461696754544727894241588707233276478476784878020161254201251733832314622454377916081160348621166444091903991920070990315975700095168673612939698338046252264872185366171908516365255665612110169834773131511086536498739988556790907249623230764534734283684489170500755597791722609779900484856570986795644130839187779191014987828302670713589243504739930392914358632907193124083740733546067912448171090791026429129794945712912825663717395299199040821946956860375815705110348723652062930450811513381561059432997922111813646458000174722832806109453995660029069334872489855864461598415282949089791289632528703206621248405667770567380697875041161572116688471434652706239904113531233400332482330941315837978543462565476556336993837607341072435789750170032349293384274649025165047715061912974778151798974780717206412443557250717129976592909680943282195920711562185624693934818983434625908026680886174073931725039387362727670479300255217414668653513817820780129791366070529280695617000453237220716062519380709386555451447850713548940042643255373689444068444278392520967522614570198100914777450150270209759003767460821154109254958737385664742672738219581054957821902500866118293460644164276999394562131902829837782588442746756457674456076355687876311127939747876052144224923154723345022837609392608249035115779382474822585571133910432654304211195415067163825346151905267654128529127939650994721430750871014342344507540019893077749629840973022091881337892672233657362188601260271179622514954459707983466627597991940437159151747917879141534396741314044784764890122947204183163054666289723956213401472890857052546858627352631959647929732126626780982298032016713487244778633144201853249693929774472437294678406980742971932007132711257275462427070723328951063166874152482239653619509430695273690276029120758217444936133311905615885455297994818876081899315962833803361456357933415991891129382882726818915143498638752768894095406062930197562103499954443125710867501269627425914375061937169893478221429307391373508001528488113111582562894755304138367015075836012302353689484014369419258267639528174773448778912507449791592843655304774026926938298473645241599854363851521117828107216710720928074585339756362021536922571187802567227341320220761615411782109785649436935753510269535027383326389918238085429944095488325660531578523439825615383890180426322862275497245320953877214445644666275316668328761857348090058498519641813591383426832002080169590248334990000702277646766872295284806970491872311236351232488610619706877599705075054616530837384811091582015053731382074316491148284594653203121881837806923088649465383846939818966738378299934529550778646869591490123226050230020243174919439782845585181493717455769717471625328368411315231475129026917122056021993821616707174937407176199973985952916242596318443489985341926474208097003239446034918526935414762592540982635560242639462539680794206276781666408471113027115489323241475313659918003691518920433554238801862387457211655674597966788137908688959118565214990029787430725909314354008482143022453246264657473235260135210479355110042190121167476006517282325379610713525615367513336952910036759347406718977346733808339913866781387246761009910547464224818766646485528831813750671144488555740464553743446289454447841739449933942570510402509341444645432185420074562430508284829527120129044752002234722586256508124852665861386007162667526218033642844065406371451910164102446010403884862482958830811855639939670394832606607917909103166632447987831705828003404959648717628730143612657677470220953308263344486140253214891402715705867797918457590374370184747749894208538117638040390876488209069756594146285100001749452789840881817913845553508002731368087964113989220101714394736682174677452569862199557472084411842602472521156862433272320036073173671310709147395688116542206958273390257950036338630636461631326049533979116693370242556164934502350136657354848476991505902842496363125958029091597360237286937884580152776507977910629180805854835590577641109619378919014051509616532065257604914812677974481396154676156305495956480490893983560814350314543097211818671127644093050059597860063920933329351902483046038896209956375105819487735503263733281100573933646817402657303682854755197593742981167179984715910900289398408946772568954043322507932435341006711206637171091481574913342776156139071214344163952645319226593192005112346955999692634844550241579228409976957875833465486723257951007338487813353594159573588433995989561942530682264991741733530707997715796678867197570808357126277399803579611827252653675050383313718247098959924600627026210829315993315647598075089348749271916529044771341476359694031877325940806109513982262314566619858831790355119722472875638871175228050011524972458464142824089738396698854000290132868634142679839424398589436102471506509946116878394766641896241308443873566975646864695792348825438386332784586543714176220679061433110298900235637858236953077307544000588627900501150828308733650959982390607921518401953237060656563596190617690697892808502893330566705029159379564806155469927225641479833247785199571171072758659259620169139604139146570770433558664105099927743694170740428635511986812048287579244678658527041304172959841848927450687061051430663912469744434586367719219693072684616087103414841333539247563400909453540521855715282496399374257071359791100789101940043361813030797307923913039330400279925866513189153461819572853245423597406185881440879685362548740921858728216039820260559061899845269469937059749909105070329369042609124184314073442469406948827352120727950403366027715253550750089289844601744309886201659118400745086443156160630254720764463604560692847721219353602385408526791878658290187531295747215506987213307140410921540629023458955862929916682795527789884054681988036277138685564497970791077571446681420524706114528710309890713539069819743893783829444470000473362023247790201183904070806264761268581386328791814240385705497209818701761072761133194467220165783094285210844564876012568125895053720596400022445779122199451430372912004830102743320966135455085018740010915420568176071592153784738034036335515722340637914801849853697919365108349611168456760883508145200872088248496253278210533360271438495192524255297557778790203024488947165111767448378112604246827476624878393032489198500330904687986053063316999964162161209007389069317147695377961252237884859285527630739048708891753782307683405219355958350689926548480575022288062451674289631765500818006560018784423624932735952376367738392398310319420358271635511082644976007856749666109694144624853589006824440719486406870668238416736298501549545680400094192405333492849607925179216439659986896978434931811265374865222426869807956417215683677740293688912887385805982137919756488831418000722170112170667254068953557132414563967813498193234805697888983005300513687224137613812317188372481707381679537140931146474926589058228643224288362643925914438023692607263705536618741539313880707473768745682287348092466860949069956000964651290651147918510410067345192415329018781740813702016122623884775061540875398866370346659749033030808641233679901771439181583742467763806892135069348383444157486285805645704858779267884572590222356784833674515449545540980976106473186605779935686882718064583335287723028215044651617213025257256173287716394009114537062562048167316696403780023587037201303960771696101017129938797913426982492057653463452975959793854215313573244006394704732939945075651678434563843120163255364534824438609720313783249427983209657310940823842950326084140630487046444018301541307728670142046694769332997261391348857449381382267694658257911325577492285140901831331041826609568598329778457286146701733698509242745999879158319178155027452580842070208231626443666667085548601020119249972354234815882363799841123525441912466932335747230386105641150471437095383684049923568687078887624003849878318658070168904874151354580735948089152485420945419817683911143353334627941835497377992283171603635784203115112064672683026290439432377692132237812795233819409478518647722915942502022130857488068187446493126667932398296073662001279106365849619951308649281639748850813810958588495148016914306549877526563839301008538484374902876510185302485062672164709094353624639825965457834413987228055679075019922213394648586342460608473601527588462485942318576100944089006405287614775994993291790619650585988207196947963528013415023290828267278047099706216977294135447498698365037142648021083047668914736938507450012630898519982672648739579363968159389556711530006520098528191519152560584090645961879335628955269041092454372577846391660521116839236747697942567442034785364573056736217196660033021892964493681497779449512365510558693626666688163979541684654416364831526229719523716097318262234691376787252179227472823065615460563983937336278623879229995559924617461389318794559846079900495463639560577492064498809615784897978437617492712222388262632344884082053274633750117525941610298800146804763309308397110477043325434942570261929573267108570498019590742615707665331910695525587963947743615687523638301341667375011808102378593957157493140103813247993944380038329144283736701781293898908718556310655567300164457366804573718079140099741987462887132219069085287747119908281549891079895766473485692307934137308195927692418384554007645003897185951865516465579904008693585556089329911361329595784567624056816005484347156294920868062549352767697817197159724602043541521152688871731018324940511773648111479539187986256240376244237861645112781095263928776289068303347767206431154242060308423230580065151989528648972324814680656792372412039540270029959523810152617880393138088430173430018730650111953278175189698943442993941838629553832153522737149531682565262948991860523524521087061275649200026020174348728310925153455790383520655653895914314137232052186042205942963514180092059191306687508343157332531333961511081937681743915964859556053355797006043599495483608531407109651904420620857399509885314898868979786664110848259841901066116726333641404314011102203268255694197375645156909642293124927713767151397226359196955330110005419883580042606052131037713022271376790194278757163989480241081224871487965056277567782040692378392613537454695000242994862762469497686404476569809431154091410230478730933280233848343300859452844468122556434640954640906957422258885289542248653996014336189768354982697518387478110432282625998886898095032692671815448014431495419842073718048743893563976669265202631374400435312294120598436633273502204634073033744804561155308800387064292593466440232076890830611753372727796820385619474282320521214818972405305579717999094593511335832126874630667798709058848965844346674180592089292741190082635058570148007514622057718849141777245962736317292343381893572605633469199157156797783222561514520143184600040710499706359014524231939256382623530286791134249406930735370054126795715316639002321012069976145040609306505926762328276641047616981682747502125349093485975983900098319144588295067103601210411994501137830977251040426085344360816682928495508389628393764466790101124417430769719767530236523402693675910740216258926700957353351799470143673141772957928799806675362607971982079784127414489616040318903585929931353182964972868032765170518750816690435778936320838980319863893233113853420800104239738140916848576513517587695842767025194790294592367957868798082104489611782661852408978717580372149364442992007460875007898012075629548306922046636458338835281551424029447522329106000035524934095895809289834601414876121061353855756315660143802383172151295017515152422185057395779941736918602006719260106514900617427737217398514353644680492825413547767250479830404929496450116753688297180368104213052735495540456350753852764838341273471141155825885195117676748213573258099231379229181645230183314053590213925425252094265502528842633423314020343103575676188911367037470205451581841718065480811726271637488255520880853477209416108037907965302581884250830713725770439757584078120110667303357163475271748477407382732369454006424549889107657807993271860251647862336642220041338837369304419029821895886525450503204194033802941373472654888666931576824256532730103846876187004542299360910053745514866004177852080310350095189156200177240498444079830002067488648256988631173529414145644249005778031378457003334927185548352897742460750010210489284087852307877814712245339144662533032095614106296984784744429656051319112678481711390772738786521277647400931074538216941509788236982034730511953233905417861625851912321097899628893055472517979211871645049193953588652329646602352984005331607172346697082601719998874881952438025598201088490243584390516442977849331203036885161172931407233230552861499019182151041707313918441933658102018185444321685233662935755909112078108828377058235593771543413385240290416193550348493696577722394888521626556759392821391774524738053402429396841172443207157491745243760369348587063079691978309696538459579241930842923398979475028810886420127917553019619850968726390796571225105214264737673191022675123391113671662559246570014201986347629371235123167003711169413605352332499642595411957749078145051320874262846950526189432539430303811009131791217441999480259343119549667269090760472141870495353651180716269968331664889030716091570501643746497469140674710583287937586664402958634598104772138789638365611636694340366335817908158024559615192243135301280307337108665236829465695347760299711668840844472710660013997587237814360525984926444787398842828761228192077303156565841302458229892413442363730231303868273455407320371156471421919800299257167109707536163007289672166143605782918594692536475583387721974386834295271824754808108793488765376534174431678918417535472704098026582557892736552161130103599017031167890338535965731158494321329418985465998308511824201097572312420428901357963629692020631352125446588726615295229232251209149921784734622946021027024851225809131522366672296456665762355235864699818906706160806486285356245704258794365177582832226618141891828975458386760309288333786766623714201263884957543953212224986162304185810359143115359616365134203886291955462704774400265697589038846743472485376333779197938353202585783309692051966149865346703100556558135521282207118566680293136876823668502706433699407639411827442594620950816261930418432768337611868555071601392477679937280999378943572399825751466025155485919091535110809496641063887501337924110959756153581592249092661641856736230594968497091327627589961786611565549796295156342739722034914010063538508094432687507893317348021317544011645004811327211507543818595756331632293533614708453021494466943989339228926700899010074323855923673530430077188763700306360155649339901101663994770154422606334939087122550871686164568191358232868807475203169470675916100026290580640389191507708984727287783093056663696948339495089445432175698654500331770665965729164806864531458868848552142138767573204991860350624178011578640638963199780803126852312573382519095473422493466622920043016327701943557589682754545478951615852206198169218537267434538287193983589528760118642790432142142065275904276273148322701809564952968555109856076822017620336204045054750414099456252445197487210816964735761731058515494304880002508702207862922066206929184763379511114746373502182536912373246676551341765388578210261013626828632500504445433944426869723568042662595612927375320549455943043020552189490190966262880927617906535628511460911386153504141357014313178319583737923458432210886604475825317787040861052266924789595688420125215440006201706149634472166289276763899482947327958154271551767132786522501032190888404157963725857598213184206846671123406219738049002221461956270868639367559470198200196408197623818350052597944025456544305770433800160591642687576630303441015657714916580953048409655039343456476537427339885022954687334935702851342226734963018138952124207995757487775782911529285357806473395175176202511470312655710254099090749378646344184718836077622055720353891066512405513850501078605350258414422064144222067330406707379837476647913768213789933838094372382976964852968941845733141829772924528907364425146190710918150477690859304849874424831147789543515866335426380747175020773017745442669974828320631039650649123048673148997570308246355485284970159658584819030222486484239563051363471752543772086860399850357489078175847118781353097269463047526522074428127201505212236133426718484536655398589346959720754082725224195995373682671892644616840413043364612984626400762188793290216897327154760820408394571768056273376917465955636476584012020370442001097466271243791239374150279858933583893139961299387209501020378485889078512449174062722004164177034984540102694677453476140178079574998022190184093660598511446134549098579166982879272337380104535985451228720306206151089224846263765643255221982961037481788238714796875753579051154920288593692886753840975061437896679096248727112243320683199916178522558782038664119244694446802266319980117022508092247592383011331367001132070200931545900101757053822466959827872906536892416400348796630906131654862980317358196577400554555666052724132316290101686802969636201618347734593482405677544806620346191022954135530546369250489675469337577585472973974017083433998609002521365753304312074915022789221758780905647203574652025248392686879605396139812890640548054348118967532666898083350976708289127584395014056129271489566882933672202395790452895240614758782774144450724092809835224884852539172773026980390585573401145400090534218695054760718854888024107869390024695453050288930272834064260240205725395326422447916091395990535956480355272056146197078719610288044119506082127935452591374773533260381984740373059883521032593053501970045106087669810019327058493427296308597423376827889579923587355081901876655165497870999596956658955573219720013104349419138672671468467399660074986564719928095474717803036741964689778486648011980658106205125779313019282606086014880580587047980593440223030227927652444766381246891847089334574524119653642769719643847899522061762603184417277700534487588806297024413200090816201314073389339242597463658130547816403333636597219678526768748517041463410615924814559730128283121628124726469220634495251999996403645454529891833849608357490672985956288911655680884683895243442285588721837650003368409798184360537228468732945210965019058151825932341892721551921170596289608617066751846619867136729310397700209434363490239836403084074839217309975999220176503941299421494452243561883348403677327847498246510342489640658894122501815190553239998705324659223213029440557369387480346185423749852314006529428172895145594205365486046655517650797375416032821301709253863287649868121677286923152740200344174421603724725342550646772373824034220303082227308688508975334380993044497114520075360859780356407917544628287802960532684030003764984600084716829070943268590554585256428163657180704048796034462361172702695695496936207541222715153880862666621510527670218941692497836366110273363628863528424092945070169985613542770770901568874850365699846036447240064770379103383778368619951810668072822337998390208483142421223753632439222127540419841237867812244077472749693184899138990117498051377974711857301075462748938433566119322958132810015431084668471388030088987891788157823093570502537061336359438742791886583640222936079625629931552578461143006491602898650769040411960149090660277213672787577481399537086383863872309284436125979902832382561459807883760587399558734896012764102725081691719748505535335136496526706983911041610321230301863184855504779807983636578659575490373710590103532313412702918841609528725677158712473153426017140359796303072375708525217316010397692083934041017942515098760278126647659084442210599374690900993660691381183222022651165349214113690680719725911200364069371684386393328799385205708939529191151630148449291967706378307793742275032028823957948065036850900062170308470977604541738669947312422746223355518517747001808668381968350308362776206620191305981662749819867345278596010325333746699305745396109876200043102772462849363394127349543392743378927493649817015982230068206814087505893481217392869153626946400357854136415198720457668295389374820566556454582839902724569106475484669024500616350797006483721670544728066934581394113838914670984097056945457032397912763093782313262576352611367755724629867629269546172056820661141367136411387351121273756030623470189648838227795627858462863001961136815047974006248389836231864622636011653180301666757137284353242140722482590027280713408998973724643064029318816387770849457433903035272169376217286689703315489183217397188980624146220795164378673899424312449942776550291982497180723975744691248262409714370565032500819167496716899460322755727598947158554527811908283126496860280517162015647261455970275212275569268563037326405454363430998375758552775836204371007676425592053983124492737931119106573268399161473223181842962778326808064492411430261484951872169915494215722107913829422244493845479552036530331712510738080347229300905221180772613829367403124017584549968508874308725075158267783714959923726921160773018777563669689996164557667535295199110230329057411179185201596090995784906259968195892689117490600121328586419192866313696617074035733833040022567904950006630640708618520203665505001543042625319382650085042186946456297556407979538951800559743828433424789733317208328020228371032819622038706717199850239732289050718857404841487459524620448571280554610242822688954630344670403808641136738546986325987551984949365917512770721047465937838278956180943091422258589732617063147731802800600616936694941151172470668910555980538740671188532700609702925551390030315080978290459784899423401387671286830853116462481585631086349589025849777284523534379587341558950972681385309207300077737658936784778462954859144759205036444107027203077920462861666688770912297232373911882352384995104980627050104875257131000369813506610671753238402790528872285211454723565061096281322338593821247644111116409189314343688743601969294143226412513802678530044188383568099897070045054725780169828562222120600779048992988500848492236507263283428868597509655753436992816850514292394017147315808147681080052407668738251367365830952872250996629968200990565849436025064202005105953701380883162760609284749352346943210943774411030418018223890336025333077079858246206937528455448377454520361107744941248552263963642497298817153764768096305959620423287983162681249589531578668813419232209019267201783327589572951481987812225494655787795051015664004513134718605968845412125457779465472789666739834303028051655876739710922748108173093971071135849965942374571857444433879140922345438612841108453202673106789594108791775145332765565291783174689262466667529546926716965675924828731396315487747396206622970844274057804311740259008510143752079509359276241605781298983107025602887145079649826854485615363653271153580523188500170204241116748432190488226399103213022003304309266792677311037619628180557809989138219522670670375888488773834685386189628807703101579115923919272999034329822814687864341755958786492245727258584408353847965629109611242477071613798969429434552629484278045614899713262484861691395212396104472841164126055965648431680978505614448838150059000615732202023800724357861385194945117438542286531543291104797560780235732724259194745271304168153165082269199087585075757352138033738922185549431004815965363536181356266464216668019477940872307702796435925058565827556284322897369057411901828141288976549660661301798782230323810525335636788707476542665612969164232697943944887093767298059544583341162234038322208698961327457039538161281214424089277812609923103630022056927854230284008186576155690496772062520025252308549946172292296996494001938815125472893413452186321650435036000873820239699873996038125197797235264369756996889729308370001159765975248449175556886613288918823693271148325698795221205827345314435477840444588005829448329388719167181131990604001539286555423705374172944738591447299016356272010932422571037291875587481168845810600558644284983363271418485992067317038217224609489204913588805523180811537282060658365895575194238049901092309451742673194748899823630166794539145530534747730808991248156176588457394141834852968306704363431270436041631848029614917361296713572602267265546892821254949585319316114455498041094686295150184395868095778326955993054860640817393687857069461202721670752950508721440033671770836832092561650194359966304028266870326437586857989136223290695139891324041318005486931889222401069090197128167460390928883209235377268175950467078597002393929186744530065054071856901674716803238206859528378719995311609386470646094349694350664450866087768508267481591444797045529092228721891454892257792726056158442403677773030803186264655302297551463725178934555588381618882582555492060326470701709228541406571644878022997413479407028157101803721414901200060617255603504875290490394702430124368507961651121919202193772386631352972112009189031073466050067313357688324353803801953012268159587733793004549705202610190478622980668431772102201648148227078400264599527978044644501863520354022952193212372810204807032607604767031244932650357465633682035278079291600296458830821484084777636674862748895052250672954965087230225004863105345880222322001328481026495452738451256873705948111420569369544728727624528492818982988633020207233442663492895924755501135033539901213603607743116779015012151332443125232249930850108360672474153982221399254509662727564117420153372712330501938192960373365827841422212434008715857722065586148970589222145282456589822812479209904550311477748620939877779058792009708822103631467002551386747336513207039269409694116718115406686937379264860067197333432673191389973747998979511956063661124689723307678849602981967509955618300134038730765102053034564558227186743960502776143723646791735488368173414310837136479093145671251780596098442325924300121285505220074795799897606159769304533215643824513909834109403533506920028156707275981488652960748963624219117911028244463412622274866627918372757292192977443716615805484450631316485306053467041617454774092337598636210401889290773908449715900054755085810354810968400256108291474177704142623088557929169412697515588558594019338296280410381431530854914573631127138517674922112521896355999005072365330056337755794197679703858090357287301041513879461939052401684532690502360525579824080211201083633647378069239003320369891307026195361126955009324794193468781940150451536600146736928538306189786811619992523343429498803243280716874952669614167145041140376862010902549480734853661730453881002742940343762071778189456012554255168868988399294767372402937524857113533989326752904873920275122606454151284641114145746075938154353934293515196337645259378106687265578235405305018054810398045966348411277733384912203028133608675289126320354211519269389133473558586082625302706726569024238622252209208039919479851117281594051652066655204597032534710365406595765993706820471799195700097095820914090118314157260707462482274953879342136379630808224814850140657774629433293154338642303810873253162755465858553934788556852254571189922482531522915651036807424337552367907917665359221759204356633694577845282881781528026768613723355088661268743781397713516037292083661128070241047549615439347567898314988578354278966738540033290544138849981144935055284976334113996138228704756485870528540195156612448281734202442545050110665236051809434016975854581039075614684877508841313761778953985123937435769338567093528040694429877543415911068461460923841411584958660972075764972169186088447666563721115444129472097495746767852841378103312126699118128816968035899259903367594890118470841382590809630027581274121614132315763983815364823407402692104765611211148026848968352208106983495627200111141834580682682913770978370343475517560293397866298684236072480259715221380623858998295094996543901234549997290206076592451416491751684222221137982847343659867955725739183179070279203534556215488142248623959696062335227525814322584322920233222265475681343448192916893183414815788941684445209599398504683843546944742724138015098286924075716143006906832216192433560168724509970629947555453327861028167021029080619936916678579967561889597225258263262789998241760575756226565551094146853749454575267956392324731629215398238508397122232514154621215119424693788103364421482381714172636750332357159735309219911320577613084992151908414662552966451400191482912471029322107435355359826894058799729751069909633104988755522563593411304663654536222562099057625031965078324265495657579392151551981568972646361966086597360059275732311952373790033029787345138929825002814193412348694040103209458875111996997418082016020232678530561077768076835386198696649325431463671831334168519317153481843881357398988145033175856058656848464186625604568578253642803544083463367842809527104063583316237443984653347854132541600299004872913972065578948093514841633410367281205811269233216741021819340586367045430906119836118248183807789910440240675311158401975481971999158695719195796054725014358769755650158679827976579952034279751567059935793194216909328960990574652005206705335365864939194566117215459485906934509832065556617271918641262754218559677510319000725872484443305390386168101336788210305443875939953908022786314985464329316200028704029606561430243251920337315701202382185247213426814291356981100848964087122970758304972368678813794577897362253939174036382969628660654766883308680459443906616387133047194536015820543940531559955583268753787654787075628652125015838986861320645457030583601438306787804767782683889105633647146197649410589664042249973645541383259638265103226130730047061261769223414288869374039165521555354377898821099069940397868880155124453551179170543557154622686124862907045402327216614792475907356229998710581713567331682818801782221626443900234929825639816902467718720525494915065326643182058545179976906650408512506236940263852563223920623557795345616367621789625268982183755668865179288621281679905341525554984147083791743108458159145694332109618951489129600634639784906424947305317639154774643325404171248224260088578883331745615825194300741392661253233034872708947878741182845636013632663802781318583331073108752844229030212677147755370250287775084696406640967034192242597595258168798442990154903882857980578584854173380811362489345869255227967339611217122378628357851709581069191621602635958971137479267967960854501277099407176584462605452573189839751794506789496070413826939733508427700994161721201504020092976395273933683694843745136158196108768828816518118476377602045212682417935689147768277151856035309771785149699429628708233848001717757457143788838122757213722697115661293523912016046506361275902639452605247628911047365697781860340148706618120826989106434122466458479426880901413506451723668840114902012068015331832718631203368625106798466458577299154540128501110602012619540610597816546012511758052690150071738164993511421712289343593513522295772445004434232454199020258808741718310273703296536977732444287457949841654582847976197625098747768130799577591886982914854126228283329411976309187326545266656980781222988867262142771689229179161818594045541898326533576633496452702375206095864440731276832371209154217368376652767565356735232495311615911572925557283419872523196755847588011003916148698478627575244349349903059354578048835341212068944845108072888032754690813875483701934768346014352647764715953466137923222116920181398735685745816213768403431219052870883376133179302088651391636883400133733403815887273019201142638087915061798999985744766739022020476382829384733400480957383910077398626984747905212752462948977527715295631386450875846957469064852971249199094597260856353061287774241375803032547722374008585920457955711459460582897158429475252832457026916425620858009049013169640993490730722495929147634876381399918379732487348303850803535772460033890217201827365615195452474601099717920895963072909420137323482128437003503388115595156731495886180360902697479909573367524441182163188638926553975887986488162827235866039927294803749728017622186812892988349766769893367503096704653879053945197948418811233204038246604289129319516029738199556808602476328092348962770558804590754983913216662109529736758184191075225376974969425206649374849984619172971353517737791286858686269758947173733402969169818490594498913424066351670458454231730733409660588045384191627147473027425341098138709619672569519836030985202147692070942383434783546913647337825395628463953206234631674499889205075319647408926238391372856682410893555104054502803336486413895206040230254152432645370460593908410717569885133648632812790187954041011203473348197529392212223701742107501247486824095469403057917446214537870025463626440916066503019327926184088049504368460913262585085965203670753457939797010840151998043113666040429267902860999787211169234567870137369982072731136578700898314818406109654189305085517495779626081565794923142420069764138730029292909899793147721175927224683334016084815801659286124014720643238069975608695538248635972494090299248197021875043928899731863609510052780027056269369425951475105988860896174562780075280158674053081315516773014987298883199028645539004003209399595548821938170396267558501171227507848772447335980563228044550550503826035994338224005003309321024598745859472629277128839955653877145083051341033953593800232618477363092910720054370075945850979910509570593618493174309617637416064513392982016860082905389574433274685056543127944636461914599607755117486468907515729757969866943951909885369169327063779339668852424470387563827152497617251837464656405277631671316586103251271577948202761406963421926301827423210733265854103481467573568983240340939505577657209126409099473731763143120067902296954224670776477414956487560789288196719757386083021768248705384859079217571474282142073946160310540169480556934708930283963375713629365657694000515911527048667997835923775831796652130774290453241410865153421157675977048817871398281171675210511336523899717761913855954069544191485389122756920900908820750886055274009676951759171632890743411816724125963456619371412684260978088131354590792254228722062056545379744646604437527618304561754940161920876108943628729028488993522791378428875533917227359912235919886828894356972325993161764947966930821991367169932628138821981818805117682486755341861786983221726510335503936126505582304521521611236654401920780163930592461085218301198452356091301263357761557511296144142715650352502094107231399251934370133056990826374474310839741475250897839676464247415034848006221908249005485476014843189417190215523154098305945156757866975263930017931352565346004428873951568768517578702246262254516397317497502149381211727117640632846107813265924080266740850039265786984376960461275607436379015344500282571852202943791903545784775647259818248731642512057305721192781731932233256270536731022358419941275533741638563032980993274244746546319367233100123951888027040068331989019540589519781922950940817636301408108656405198551867395802225176329545077853387007193112711853419662303967137054671768683674706132986138179383547926689456216695542572256927334067608802744087109982199814046464637919336368751718443222186102883941899737735685848934772343245490426465687698558477932208221300848148628003540676634632005178406635004775007499333192089781990074969092129822680528471760269704506316424211046612048231006316491873123747468543928490309582021660608983627371911538135307793118548420312193705649332583322094625951203413320951615930083611752053623663717749046292970973100819394915802728654960411735566413377421814278695802826085022933516361284040851572244664870405143922963786200560845924448591580504587927627186918864441307033390771619777590114877729547427501910924486400516483956093224872674560007246245811521442260620887944921968221576045995305880598900362738755792057075234206169348288427146285588680931772017768273646102874103911091777609820452317549088751675692500549511837584024139454795602545320084088044429608541268170083160087360681996050104448673573219023572110633381179176985422618360453219649193239390252509703590432419459058074103071122818736010443368728441728482885270230911180770299494686550265650598914388589714026600726935503821426975300508371551748199838240125926064366529990026574516267586863371749126067520164661521726216938366210297648936219983700992519475739091686365380001047013971534369400613710542836882435950783612679972742511522485782291071152062111738321866512985008387229123263738783222401354812735434254453189069173088082971971936743064369652272629036843387305484609394619763035171323570582093352275567091942349684055486552236425036034547804815471869277344459501805225050835775100363487081060925635294373370627830880317133620252776205904206816363223921204275760723649113671627628824089628215361288490656109094339207060709186536901670959974087659876905010305201884234355803833306271109397486582293078074493411295984841410258162781877714323234328959183738102263836719091152515506718102659224866208740476792926553770293143617191508122929028841588720970427868743945154917209264583232136974966488258779981085517277464800083354873937765103879600543004503577450593640387968285326661236511058998846343996872306387778100214579921655374189049683740158154347853608671283183876093719523562784222314035493060896856742341391445426819864006595877761103238885104243742304860069260157958893762833976785156888314025019695892738260672403421755511120133692629274367782167001768612389667987336152430864831067257239282556148676790106832478978323907601614289861195633004324342619499939119095680663488151508367576421086140940406311846073622009508937382048358352236808466903941040776900083666582097168956655022674302627389768289759967527293064063973797353659262167286167377603503233512804457535700732141757612297223455868146670532628731612326239438028645506153009224800270155061451072803525145891568134347041441594253840800988345883571652533032694187288300754244530765344331972386162271361286725001117299889420236158006777369563825634204604650430353948541136326709235990911255057384667835903206778301001860605787245652351840077695760483592630888462859498618761610861247150785481131490698173643068146823458194599749610431879307804076642328596725525737637787868005106006763806234899859549102663206226498149492400331059255596347030045246010177536816936280349283107493514821127609470509908894078540578369467288188194963320639244023553548375176832373283544569690168465723014511902849323082169255387261219880281689269875400034983360605127066660184190961829745504039485247424023811621901047016340315002331113323492237710090298235426458249446172307694628107483659575945707567549063508807376370337393361899154982370415939314232108954361323004848780221977127909299131808039115962556423583630562037458349229773657315071800858515818690289422908639665033296381157617800666372228462649683746159836276477554141932993429925128783950812735877629844351024885431485221309237586576221405724463509467459873032336690233500755148406656791990049816625690527080590399918732246562341254688292910107403252846448053755611149099226784176390907335789159600095724749955153565651105506350657877209076163589218212094944224904643290291018987101678730850007622797962753235891775804832623932323110490645616930247091373712266943205951043120378324128807283393137096213703504849489938274082197065825441562626913446806309083949107915744912207929103479882232075106761049972880228080338951634956649499048096394663011274140027002793126846978999316465502831658112451722791075821622748181249054992452011376564372158746522837164360715377426429307276636673877597044304250107183517340920204717154931185495323806072854223334160027144625982349981832629857020797681630731452202902856200887961570035083442989040370525107367844299543966636444316880130290698362045652262742351448555120474861960885962621512651722278432663240261070051539349647860250513727164522400478874181169716383648915752015421351090982073374200022194583247724856883648542984121438160683465147639184418884539764396511594554784949183305315755174402411995951631953414909224940941590411286067056601171826653979676455193794394429764318532795657475918318260739187760601761507136448048289560441830847260626272708011008993502668933863705128097307503885698101222760291955480896053275598110317496629628372041698031612494820462909081923048938721329767809566269422495662705390148097149578385872177227061780793440582606783502010199285851422013970187525301413028349237440812924076889301691980431616621962956725013169462636348131948719680856017968820229869481933670393989794765436018845150573016662518458384303023524473956980387396846770602735297645315144024480914791499078679518958215190406435912971331205045504553134800638592003788713692612074839109448908129687211347443375048595322684364691121739754233669130273246078481512427901888223058260372591694201002796066995549307081126014751640828827587951699201984246806042385869036904154902590443056320951475686795787105669243349246513578617221055964067052230637179025663584854676651466731946809007891971503117731183862359354182167378420629718048867998256546806826896739367991453949230371584552227131391315725303390761267796440192306972312814569685531353340539154325329879311319216210734856458445705416179961058800417080398781315068287317577484223187333937070398370222067781650119322878409422008285316784911947744820702185922238428858486095673024562763231905910196661456480981077916814731165268061295307316586054494121028143023418407909933201796817236580189111266111416964178746296410990417259842531696835709843690617824989121553758134334395878377054516362842182609349541547314728323002144175547633603448355116905339629336549997954069188873934761832517164838631343005061417689288398546770906054565675121852229820880598818928868626755573875918128388918616496397246722646783487140789324294737183009158406583898282705578920749955051398250129771279939665519481869996477150413812041242842872878204648149134727072794437391464077862405266958155061617996382649497203284863849033821748338777896777105738958188498411362811021438474212444609037060321362887699357859308637197591152941966011663439279960826647058970531846952531459577396558968543091324103615647894468764820993812742367842624206211609682694221752394892262228344568661257181586335496261891310447783657185698340187480955732722063029916237667593243182570893103238506361158217636601344053778467827438123738412375539767328372137301924115366532838748634493834127696068847852280184745156981138432408854843402938820774156162384864682615951043529103299383866200892487864990634066999546903445691963997104189003777062915226387604542574674777888962827150033981088101560583475638927970297307187261474013541112467681667171465657717850243795436896931394165644358209785000383388646945464429776188733868403033380565990991695608428943837323979079552416330251175228505432780852715699452359074450756022853285891836076056828602811898476387866702624349302554430673198342222526080068424835968322152938444491019379559007856451528410613558171552520094682254365409863032454014879728101809128850020879329877055440746207791837393176432836221388356228926726857288697843391418061551112541280215471142381359026193632252899288748079492229585079975006789808696497042622479260791237565624949761997555099624128440349671020838866668718633237799859034509659949172584320431564299852482177789510959449972139771497306316969920515902824803606508951365309179139272133126890372080916584996341763482273467859055572905972519493677379144114340255298653680164092915514702207969305247604393321856018827847044906073680060916540307144482710876810206705566927204362206883026843355552679361053461385811418795215355356585260225911443306994629991404492620179808628876623029281434477635339989919696283634187888422715836703910874897459516738993665665608614209324194900035224440607842553889356564919381187041172075551501992771371201588104271336986316686741048786643255233962227049011068711013859290045606053918542042631476400208136075520984837111236727671057835427586525559842587658501192637485471430003178725143559857281040509729997019994227586688593544332999878863799120218793747307530912390981513704259592629855434879564876964263218303127907103574482449877811000059940518543919889923226725595674475429238291459131234017485524902339787724103118548177815319584008684740713853125851284408697363348755216063565169646650917387719754449905003298476019015188739942229625040578691152955527000537212436161268868422861499094279846579288027128586503297130988650675301001529190530931851869826130649958469738072573777648460336137334790547840306232317813601030054665023750877375726732972183539758730791271460178226794862146604726734544032478523598273123291311479151966037896402592480961031901823395780984072341287654308674003287084590691999193446743731207358426125929549751408570537897138124981868619193578736736869401598771490246118418241593172388389595980207151223908009341458186580915071353168253757590147494428019789318624226492764321162848722158979892616382400991527969801367783527844201159792967318091756763081528728395185212875383399868926043650519021408853363204789546773539048486886609740680020204810582529467971647572884534010980229623734196678813811529408696428083665172759468715281122693114980618390294895078222514053449528697886075731083782107311492173569256259209987585551585242073082968841097725906759377971469541665423587224217775530883609455335527515951890026874580251337211727965445843106736973942990756644673823067236403534878822599462848119105104755319669755123248613000374681864540416595822384549481476046680765793116476168262142863479842050703645738569214048495166411328783952145223671199306527742350553777942683593394614266637918570246138621352174280133637610419585056129146620716072386068754103724786484086871461493605537347723911909276501716359431139229743385699270275450039626988961492446146719689432205321942705981243511610901543126663204780450944634890700071506642932157854163558590194833738289915492602901056299886643336578205067765375016493928847071983076127722121563758441013746895025177686360665257479965606893523105257459002266264214433348950479419970387198021172844658695224459035252337797177542165115271598928845327065237587131397428417193607343956242007670854256665345374905913069882115931108848599888380263241734674704660081106953165270628542020893719335931738802505026374995234913674115539746888408295773019782061626132035766527559942179230676715638109512016587612834520904888084037437119559055584233159699395910797172962742885150322553583507674429242111459091168340430130316218613073060830304617983663569695204515636675922741120019010509699303257668396235250155829111646008221063431699363504527211693020472257982812900890870852845949427286410963522523645053364140725292624201227777757551734110408097792763483899355751906155950938186712667493326941572783519893071733606979274335887209406753854929137211190511522387151901822679856466755771672889852732221554595968560055674749016761833389925687202823819355043658552869983519942095236977571061104882385663915369494558138058332403985772053834678347169226678574769159677066730787963997513570578718820278033064241849006370043695686683786112992347532120078292579714103200683840825085098181827499505888372336943001702783923811262207593865742199214265390279183180603867662163118563794543149540001560783182222911854018131809714553913362015991835032570357195012530477900509017438621040477006167862046019171756556758112197531816621439652942825604810131239366822295253335156414864982654330858075164660457732539140493999028690481553586346568528646382984131259928862109996417443928552455550024324501582831143603635914724499824334255899024675961591183741880834173068770843580485658693177365511525402847485453537287500801227345770011980128281801829546459853588947553625885073395339648259435385115291940130023731376048824377259050352565812481200983756622924204280491312309016784561225873486873108282770005918101611398540480948700259632855719268330770523789663904711164356734601229218760835727060578741310523051000397333560790975285517046751749504046157343769165469136720213908711762546553739563445850688338880656243041470826908289020875179310721498630214261099187832434490699430252549501023667007594073022474664071260288466746514531676834057548415907356117475223050662242772447149058154888578331383087396830526625604932863873616121396976568047051477641310665734103296028618514216728450510471401811668895282861682609872530795620951915919263498008807167596338055941314820141259718799954373503459502949990318623749311243033319331395220767098175759342680272923066831839127527983883616157858243975108834244665761022308126060947770479535652864404341012515680927553784911117503593847020747886458395284858845853660561502202174220658306687763334107949893772289725674095224574221325757961305049878093135251216596367125081849470226845417943703025377522591544691389423292600584837931232338490708388003675665327625849327730376164984807715220519540018128555955245541778480654983787978569707594964190144207437973847623986544313000822203438942541253325657508667994735890769220116866916808013857109695126280986508769410636199439233468123188558780975365902011644170870611152421358539388018787753253701404121118600678421118473794977144960265784950114962103313618733141062442709054661734679626932842063490891816739064780877887066250358399543832630863730459492027242826673303253314954945967206383951591101365516857323572427134855444808263292459647082046010102898539814854374932096889125489614357614154537017555506716842304053882339449036706194143601923202318898553252286717418388392112912200845535164233911896087081091552948459383036702209886628532722416650854435805640151554001673696808364127350621134547083340777156935937809284089363500240151371342529415328191907648523158878491809970352185819516409111727680089435387724012765741272634331846776061973612035805568745404814716645910179455999721825171911545179562426298665146103518160679640136374097324368672793381730087975698194281369011278474480163004448640656615020514384075148200624144300999411936748029951044730796777030437775276465891435148514612963520675578597423998497659565472970134472788169866235683021948840985110839082675094492873605261027053673832921061458593543028456078607151005728653846327828404265875088355674160600585672300011705264799888658746182650971242641091980275486267462336780491259181765758887846303293583861120543027072904064952336398177341647578657330624818494582380747973181249668970577564579673617581800823747395608900076121298154386255196903990523132164364359582924090982699588129411668646593972183761119974711128708578510242147143882341691210858650785230706166371452578997532132796012820175892384469782481760884070594608013076215054827991313277715331883491683137197564305043488442490689187843453987227642286172521750116567184046758737935087517163355771296237169493295111525618147220055423711497094392185383345035280560854973802940076844619747590765490561652732264711562519757373544232429363573305974595651541656942505321010581018015147479870696387355527715451896979646307720126211440338165311517274026348201416439192026149655741112812436368573043370583212999287075177399988345793673608322297913156344205610491335226626248164519066881484536845293106528695631103898133698087350822504770200771330112309028994578766140938275781353683653087842153271085219192956796797495855046257104113538145604498071457126093455966314503981113566229175701631419155597178782296684785474247181672100490083374078167562410068015450146210098086509258878204173003859862065749768372597845441899354490031595210015230941097250870727359728886901396050374557060183414260912164735405858554641476757904687052421124927991706035740578929114199592369352047113405675324980940621030201894700800079474139850891187993076615859262369313586460755990412999855362117507973879959609903630284219605223372245354187243961514662446376734385231618407338087265172893751084917005988963973269451906613815256388485080616178682591470000229128130852234169092209519424064533942255064403200548359606095869903102217050704629290877427688208128649059196324385074596400663655404752099561978419327715617833097979491813725349378532471820712121431386001781042728113378325188864279546801152779768112712858403617080349963889903845952911693472475875446452735971179636913426264234568977973214232530897807005417263470320317471040295012156017802598734715192456766475972745853760705653702252605877596600479159882662937076059390691301015984601445858535452771871584891016661414652394944048317476732154234407022742354657414640815746559336302333814103558673949136083732626314745845113486770563242977382447263608640444961129512794790149153807583548156824976030967815069262303308086629915737491070143806136156055354708265333428131790927663464372485885099963338426362787712024035013504513055399926827610055262974730840198928641876451949706601744895654507294704341414556222158061545962469295398289381611254231623306134306240704954895650631799406581350785329705513113708521565141073491944134190924703470442890068246724112048475809305558493120851200653424573166757189321663693948415062626348315689184585126785945517012037041447095615816965651029464001917949480184283957313563368608339092936759629533442532130519793675253302294202746009301371304004741438506668786935233685157594948963910467394759685468198816856960252177157770423087771433554988375387754598443710436917725557816482750492750244129554591659443415591526800754031681742958038851732831579234044287827743970468967395673278800921428700303840148106201801349721429622022086406031771743608247443483989171441348779578469028049963030853881016619876680783817326513769751758846969289977240299266635213213492960263984156957801401741875101785647699357189272473362529724512186055832332781782688896327160447116791128096520840659509170183266518344031074863406170414843941356652257735761482213363404939671945034508955506932738144446150067531791761484950881348190745058273182380177650296592307297640377568228893189985193266313919104540308524659283889895310007077241625369668821261368481699545588092079623457406786390027482238720506911192685159530869513585860736689628697825035494588067766532253146847285221436673288794709819442230442886782076212174186060338344291196575080310784926837374391599165321487887452109550326940721276416304822907905588828632620827634821413340927103822254172684801161457256094572743244150269156625128480071324262849786587355205807232363922917606514606867096096885507017014960506634628784826097680500224903641224619997091295292065918883746143510488532126584558730979035203480303106864634189247833946142473036095077538675796333051906778252528047083672183083348703930035346457836788067947139863039974743832547651568284067776657498815813380891254662666175227845628976637035422066579822162260040660804414505290016237316044937673417013501298172001045163129751618995992881615490748923486246336633817729974356654541652786647151984987269989860622199721501577251892377870470121116843930500989008426155542664036833857582547542297483010520448803577156101745273872404968560010650189649204766388807632604814271177166012482743284684163684409607053345714627415916803504678077717285907256963926158573874235419678418774608392927773951499837897875353066711258381731414573977833663649883160354474257762990518118569350743011570155764693040475567655915027948537349563710782251963586920436243340086789871805415611934561188179039146126190425330133158637431733495966801791241958003394661039391201946094381310299711531433693580776942056011619081095815877704352404999546991132577161343395863134454457028243179539134860811358180308837014278238868586289565036730002838549948748943294160642753391588810314009799821999562340480925184359565775583552527966080790297234466334926717281518792674936146702673073376307382583858582344007248350920649896798253374793239269268126327326433597674959576705115659197354037526381043412265346048171469976064995930524122590146098504142843660404436739474716504798301690985373468951809324048152371211814480017946663962729008652417480033371537041824173822326317748598909221429490814266674359355910559253255312337713657132514073574307141266192307573856254813113109532916947264408198632784040599136677729643105856432756178712316276533894783624692205850054003150454553542733785439707708626446222228550893270828493554691535766007789771628477833331853167628598553078386492631280513280648745451526054152292737822586494192061883945221690315091800092863186926186206262080503217659524148705254647552351519403357976613145856394278439307368453510746608378586391282349878989191789756870784544610306176350796917791253049534594897702460126779061376616974312535120638537433714536819349665857441084946938949155760506539690093316531138115947572135522249259668576667934353397265094105041029251545285735337519344269076295829580817556296489670464279712991385578983044938354059664468943476268707759893579450948475646728531186192302545375250805938061875905002595342518330464431266376705611657931087305333928530928506766281701866879813230344120785297038965011805473407791611005435351385599430310499373515838640176529622196511870152951773197868979966585817597738460451409820030610633362185094062908326696960484809987969969344924924838372797999884377072199039867780393119165908106181462410734958769091246529897297602394397959311001112148528273445001204375192144481758897539909697544606382602129128288115589060755824887024327082152320345649935280426836544541769440404370534421134178552663207714501143757101763571233827306252753932740936408213228030493730411839141447896227837540258683233021751176235621451448111275664565772850800745836620430842633017390118245117164619444753264399232865067170755604875620111282782828537717927208694783555563155249134502776907798809147862514947704349651567068510391048531559109772478808784784735438910621304788853634281280247935983051423289214102305169552157795445375150974268742499862923089122003992509510067814178115639885373645284545525699515845902562223819595216887186370902970435506843471779349684463046281596983563721652779355037593055402777915663196392938506419364229610020939090797147063948997363241336104929602225165798125921061135773880075484793961648169803381695107853882134420234760214035691769250478093434900504896993363755502937202102281130797213554915494218485041070103996353965256786838169616248970189628225236976584752305659201314815767720588596250367533656205788083665580329019049785515603343552963317099391458543079139756537524698674938879688061951089326354072481279416652108920169945522514821386995400556106252907192352340550049644259760850010209946639115000512814627956081593837872835668292972532816302721381739239667732376450328821819770587797113798042391897402762018791219338238277234147633261959753790400322253520790570709449333454675259587520583861839690565785665451200417931567836244114321311382590110008820511127493476020646431462472329182510866290296670805727025406719255832312638280616670757912878234633120630210892857672071532094076992984029468045530211894646902172310768022649060472674961885779903909096075975974195662383423747065755542648138539756104928263510250157337641419571493424156664046267434827745880102754135393371590438763747768806848570947365996697429225206179171744305861177462120841554806691262017113078669344600825155703815962635690167281988228987924600306445569328521764264717741327747263422139086131318268147596597532972698164873553760283106182478307750245745994758062494962377393603468351964487548201462596148086256759681326051575829288713247091954768153820078535516898191798583696697654736832776146065525977900939306173095239231799093261168234689627076751467520326344834046221736343402164570842050521277659947215945158654878987491995764818821471545481120175304270133072875778847791776053273480578302661274540569393958519300573685774789151140909206485416708705115469986149916312371213437427578835688390736235963911429289976488744351790939233651443260126860827425971886811228641103945637116024076073407885670707279833258267895732329641777109859854305368573815281764543229627453825835722618246749221370858881072545763102010145217532689578771501244682227225821937546882732780313597562395933714373056087830547579584567742546423398924410571096237654269680368831003462976129342605254884922051240799955468438556118227999522139814864846914065868969350697653233364440451853591533544091527055894232518937397416886331717019681654026136822475839177912670076653673899421594013066569925734171604806730081097336551095669877151954415343383637167387618979221953816964262270490706296298287370702873895214097300352863928852149846168595980278776221650154381733715768391107449658241805109777804000664176709799439599140845942245008800525204012559850360529718266807259348495424809051643177670046393068976821564076623464892395425198732146730899262810261570224794572961486930707072462894471587975055434065544548603765092833779656549272045154854699798730561130305161532251506061261276589465573920417953250345233472013557115473963935078707994919005703956378564085105004202008064585967255312417782020938324931234861619447980635101348661814702661964528865248582835865178316360653836951770915118186003768398029342897398380060047274813413889362992422320747262037210409327175293195764990420137513222794130144518116148381470791294486129237678566376174020297809788699681840156699992070795406069906790121786654151360486300706160294879232405737698618813495096237924447061114739739267867179129248586201589226673904397142414016094402744066280167301898047520343592080276438791214607336780051900278538879990445424937429823997887445790832856547404523409379997191737887207445337873727785057544819430057602978635772894060530527254328538099812286445745074182814228536117265789630464928250052858003320676906832222464118896171817407080567879013132157881019952332056980126194597305494729719586224155673767190830677670061461349879432968668921481922127747106557095391384779351430238290143638981053638682841960919547760105566521869841871231747905455954724821142001365511334443930844417418962752821765707155643341999628449802571347501823966656656684184682947657948985261455317495321119635759338144689931904549961951013116547462099799017123436361362147144167787293692968320954415193094199369010119811114751128036385396574602086585865677150632873734862566852075832935746158677119459590512007037483569829166242385557942021594504651032266289765718624400265438510832496886098425694673296397376976653891986761473015633453905049210738862076401485940415076183392746049050190566867658928282069827122493787390374125340495009560966786020197809131484392020895162965487192288776887195917462791268902241927612063610177056292123871871488222093735854229020673361092377895814475590193440158921431008253843238069098244857457389348004640137078242330941432239146250222707929676611615009629223410529804075695965098820173723891352854926116120478301895276255405150284008171403273939397029268849754970820810712950547272631357228176586599799958548844175049150654792790922316007080811079672954828410210041640304573096174304779884748464369822946733503401779590413397485549996125723139606777923467045430362299887697645987846028465013000625479551522269753289750976351607032443907817212530886457081166595338113051696488317325406115823506194110843249069936465713547630403905429570484966480406693703233233929119359404151602928247977082225694127707468377216033492184995506226255819148836861454348825431623144412616049067771549949968004674443877163852579575915387848431354339008628247874384804938584891569603831881786588595054652680875210581771049434583563734952407564213827488305484517130766396733862432692537548073911661600155326667686494439319460587897444268815958535003224926637722483743849119386353961425916094870443147262844790553485929150281319629760105021763759702909320496922967036282884994413512376125685219655239310632301163445547491137400887560797087802281794221115553626730204203032430795699748415585360337223670038065075392586204288889025306210498918857671822902531294404486585234638233257468915168461922037254279807873014066078102010371160259540722130858313862055694951465517951842249392947077353809420477222826504711416520078801361542370623745467015377901912327054412279071993689520933253971305028152760965913627230070676147373057027276237553321750910000751396855987845991693418186543841221158477142543899556520662967524389587937588818013649107756024519145189767008087747633177954704807390235354300034752823146654705380485645700394678276192759536702676699376906385084720995085717005901351108921178570005670006426422173425610342346101201984817655148986999015318441536073556793592718955474001253621793075559771414123658668355462977819519488128812054595656472574462794313279307457693978551704051049484219816827945601914717327000111308502321128884233626727973489746592182083031437366556799618365272364502548906517186767452573393654832090291973790354180154260729624170204366503197402558478687176545352508662867079739393271283508415357333664604921408888302347817986744030747132617689944229528184866811474566390420056857100268720202087148000272189736346931570006746141530387819073258399709194396294279649838837844430039243838904001495617327712518122993176939010322014260737745156912316219408177401462684912626051156932042205820716424313019528114415283971808694605782447805086818856674028840818966238720413757031254566750401381731928419902193699666795672261258331140563721865402653376150488098805393121328018255144652388563861223742827753562011065623859335419518494870927445392418841887654396107400662115367147717956940292000304620930326557018625573318821623780953610994633946259037428695778601348298854008974050099328654746624112023439291619709169683807989017122029380106345253451723987843004266862469170985868852559614067060290309343919695036512048056031395826444623012047165740355246628206702035970919999098035128520494991595101860089122980448651459491888422392329722097851749750284133458912737037364169157534918391929636337767221074063400398114373263086413792367081491764653947315339566272210877526155741482153724723145423074296072213064763695381639425460301738660337279523503367393098867348098914054605573218762314004333200848092382067010718942776312178066134287331030043603603665659745372429645252618142330763623991854629513351215112144621784793273307504418690280894051141390503653080450829067016513960642317300439955282742485793331444293096506217622020915852690814440835115714087178706744314695216036088741470847753870511913138528610794357855138008439672851387702743046348959729441991575681444015167533680706783912816209851806118490717921666594678024034982591885800835060279992431889108146672357911808436085642177638050893845876589909625683361301509860717209886013715417770916839152772904106973837330703280135226965144996703909446827664622162994832013712985524975440538626112785632346604405114970017107472327723995407366826451397121295475245261884454711094047668639967838082121235674846829389048469141861635566381873873630172886073524199454307728168877442630499826271404119259715524904934951535450490484286288803559028021625358498478999588603519111268638665115715290903360138646497814178859322738772599865972583648354066718736618273063456350220145784747845964292594350517320754188639315300500189339019701613347839898282468658462440026011826208113590288769813736513439993682860180900407198860851973324019035789748254415868793379184860907173863464761883279282103854210336799198823066273911357102165664684146742855322542006519885509027151247860122167329108058508225437199738444459229713290445144605468483752944873582312110606218696643170580742789402742172259989011929957631517689785130418448917962992624620757926283146255759467508289696652870146329005071821123675491906676185616460705648286012250431705183064079138685352960787858386181215332074793449126508555211931431257336387867231625746692058048251093819772178378019301373240329086327933697334199278776554552890670309645344850865054247144323949002723457574074032976843674089281005137064532729393820198630643435646636153635593893659267503498468529188196342997749914944140823980057163899912222366054197334845638066153679527567273179392651751844243235078063002621105659272863309568175668850060983651224276003564955408692013922358094767910943225552963048313114551800566035482846352644735110121848716939675920865293231522903355420187237892312470539457894739069280205386650979778013028746863935712437680203595956328602752552972423598270069925742338714315125422042800636004818899918272318459777752884007332355846211561022267841604319481846262379502893823630241899968074959559695035546621085580082520102463738861925770092527648608534884924581039242919555336817873217208666091189422631770957682792234071293797139415630824089559037217352974521096092914400626882887998371783449523131557648864241667632439919585400462214420029412952431712879898419031983614108644763341038317599154966012833872629633399394596755371795615177661831596530787820418352649895294631620552696349356973523827572532701480051240265059981518362859221642402145668299889392106335691273858321010670321268418956492535737120641005512900553789135466984562066494519167297337897240993697112593435594481147129098981738967390254151650827844828018126115276919685118803926643828693471036284483000964314449368309153141147314047293067557224898154550355277500416711211854866768284549265826216843092488278170316473596573117835144978685659996475476952758008745916332970189948780687723722371674446985945725738686648345057900552602241785076448731903254659743780714002340334840088974475970077584059453083567656156803525353010361680747438827060652752054196210480197534407629259485690383352210380120464910071752389180305382565101502186106868918032977382854174904633195575787179783341897229793287533374504514991103330095686173132888023207260674131791674485335903603411687905135715285755464133512795011548167223544740275052993548710165613067606321893268322428839382857878740228149283819250572154340681660238429003460456984420479896468009604988055463002890853457580765815940360396235551621677271466735668597027285929620733998329490167195789318883418070455414529882770061157551257843718983352010911008576443576075523463008592720061301474170965645766646750869839256580511345646757039310568127360320391328341029669105563867323424245648012079750263878083202798610722152300044896421349567260512537967647022516851320635653885555504077111050154709974492333304892928803915461216490883817683320957794401920400894931510634182373122291176385320238331825684626763052508999486025312984582004597712605227212283254912635888631548110151072735038036939548198416694082956875193252703333596142617516059208609103079276371158365514320789402804869805407523836182894538722674920390914320297297065276799103068776266685191588505855011044129452879344267850294182863642362549713784542914522668240050655828392145607939528679890061242716043354734349247668320132391375664781723541286873466718109425602832413890715200151076507950051843945282299494635281030350885416056260625238632952363542859235065800806175802960275590705604246347658448831701972963856846027674752658889862311536430730643757834383792917938173983274108119608472001246552610562162596425307669757594681100558656589124578504735187497460188303155361693062426739238042862821031645964052184792428118337559684055290512144594689799552369996255172349808447343351138837568531756595043199707929192168485909187270017121022275574064754709641201575000901646160160339268185202659911336215663623415725207087859655362007530638022306023599719972630984810592435478922919743901009647247173421048624822394805330183982334860548805174131498299455358545904938274029763537103414958462977428136319726744778633772702365004317817348743542902524190759441787383261011924921664151792653901513206175055486105532972547056782820356828606226142002467261778124230929983356625847565023561207309141775148507260467927097971369657372183219048247680194206721162656061028565056104971389631995071084302538532596749316964400805188144720698850627027279223185529799621793595902278614419185082292738603050928246038177103337017053014385311112535142906132635150534873487321577955767937571602496996627262336078075487162341324981369488559422679813035702827465972285998430715470296392804111425394875978469560349325644607800891875906896439557777860303366093877971195297832047090150426266362132413325380655208357111440510955908492191954162197814245151719582979525524933329927262647448750724910033145667872746142225228373730856828130613987185010746850407178087940547467397461223153706099970171349076526860845581229242822077610842279457743529850215896854501390163143620638618387309167069033248861151587001542894775677068444065508145454602058667114688355157739005845556681877445166111360248877850278383243453456623545544048669952647900600880508723490427969867109051748682922296497802010643963144052641908945501019847285176022132194253681186127371689622472854784796340566044678634390247050471198587445251721558332144814231749933660321230732135408812342829732675525937167108645669515102629681029926631764204085871587197956575224566293420857964366391793109065429713713913205715329783537194264092642235461539282781051648799173788291392118583715913229599374059092055437929437112807765117836494101905852299981448685765016314407007104117896156353163592069222325760643665895819925955903490533983868620663603959775236251753160311996336338206111418288866541591050614924846621520706939566822111224465080911988879369014463306384975312056549958358351235423004119659588911226110882566500914056101572131277204897602127158480942484685663589888501601077277226010641752900165259663989209670551675967740812863395976686098501765127260128407250798217981558924044166049425823304233545898896909844936842591524760208914742905992808326478465587913389484046832346618820899763782532181771862038159810131363592402755495861840414055883868979399172926784632923735826435300475718028394171908652428734780964149498757037678031110103892238323282230998945548709703962007151722500497446623945365603421991212392952566842349026800122543024198283603733106574128942621521190332372922430355786778076485747787185281757173350205001978082078664370987695838300148297320345440698349753985611558408175867832448117277218081903131516815198456135054550308852481228191100340990747218306081588845861349593187398362597053810642768611483374575110099543028295587713932159129862091687127519238023955658840986977088246775391915438079524424362638420541438821282104029489729304430520956476526749326396379718690632360974906873726834118448146642297868682821927141601761416035048362000103242686511006445439460163826293751656341099918111552833146499094727408960432773318504629688251739857586550158699780704459594190089362958439933331252570877363915742625425524424341074182238781931706735814164419716616527745534501409486896997369060055599746480449967842174872350617608013909188335668900613393694415654492358223740664677224300189189194254196680292151188088588033603186729485410475572934586570344087637373917116414286430776014897548028575443999682579663415777944630149736725724148181406203386602409801748928929606732249208410582705356850205091221501050527735978945087979532848826235812844836038191077909753688841942800948316822711940353266141973607896540142384813093375301754638172101391120434068431523657054369437837753030407228396436508752818280663944719510589804592174503363373430960153059348830363786365388871400430834002931454309440227913923108048128554331191768027959093507306758328221624470404657694635654171042353775399614404015855840212727737676986308414072987363526950752365957038911541438866454934377029212120536142169234544923321842365276459139230040821320208735973595483523704186729907381464737296816317449227845426555804639167025954502088004065400829704373682413324389654977564071197855867815863936652798801262696809132855688347394884444607230659124802650821584071449593041057488317921753475996305341990160588539589875900313775542473073754765454233431000416193414322086036304703389727414463767813790591878098657049198154457232640059017099465899569730962749025035582929724729107388101445921986326637270282502789547425517941744352841109852240465090597311473674225907932425242012552605184479078192615527589128531212522402305140562795387015820746032241242520344641483425473054544325963433617942109527392318538720210283332007526549714808396824116320352090130150387155658856182315394869211467574755038625623379733981647669319266491381029391846463282529571501911621040304808406509117995866884132127341684215152366443015452005097935920774941262025751283600290201941068284189932701507711330131123759084286321873144706685942888408503270155248718836245530481121937584849225473235872502027559666773284781069234346333439412807900884450518694116329475169789853916644173930304307513966232471110395281881094934727267966462660662904203757514731343131885730579414747685341260322874755748703714902699053479845789174769009599744652922961854468116385231077219077071554131256744340178088110499729472879757386693574462841809209899691823647725909765998563718708772417105454905668291935844561675871539064638639072504829938261322457384888024242240341323224559467358584101279961479859899491914957598982086737501944315839910801765089025754853778899942956575703318935512261429812959123243611128221470006737446645805232618703453959096267791195050897219509860697097524536166776386228318277952330969273612066372247763086580851362045877449867422496725430069309897355456139417715774552309143350003749098383516924198265119216901507887982202115183361359637895976931712397915673157896702102357138604595472289598144456845450560922965717638473854853578760282116199400155970229888171346346676152733918430125594756433273267480294044916342656594964236927384527968215681235629330954983240871033159740279992627467860488684948923939832052070938381927209624523693184703342941342532793303987975035300631498851060856670931185772886929635184302531391482908911515844450964986009652326789616887076021281890979624499646084746256771345484454710598001998211691177248282482520488747786937486897617066456208746864777328706489541698309865434615099208717450935979779189199885522279794965100000469357014974169654208094695327806401827756964428183653273391465830541662304723959222233616638734903613840471933618470160647971155950402907037663392666420859167115326584400948667909405653099939536123371817085870920054200960842748615327039208613238718717669762780416712130077245078592809546888473989952082904696909939246512845438797849698323546614669810986184827296875585118397377110531623963629457338808291928166026037932135450614138632952555399941024326391202087269125375669019101838005318422264669336579423601098141966985140307377423129057938256621072424227034948981152531849407179891144953397233537785890868697989630102986635460324429972627915994627984867023460006872590048468580365213567391877538542626720535360210693411262695377262630870876435633253649881883606786198203892506616546450701707587046811273015378754879026332946209556201764666442388479582566881374055300952710549586894594965567443246785519201091739498229973709781247831711162322189841239004930117598476835665811635738917861652273052917014704411675224064785601087367579135602951399744493738565292854269311280785417966266328663952695371867955395787862590232217091625933617009972720143815197009734154268559327722353649471573338541359944286357267935374889198336694976250177849337900477789184787982628482243373790426229315967052931752190813345458393797048706090523660980888900725654358353123798620663559172041850274683988131431019519607287999347452644137813915423001271124803882687022173221129736503625317615371764340852957151018542766533091356831038242898108793852478002499309876871326635378049881983328472495695316100025014649320031774365609748632800358616570061427113492138466743794102282573276836443642749515620836373369507221078893254246259864880913180034666140675933773982820538198113163400297847953313213363280235756519683677438851673195264228547075272592240486688109185565103594118087787388721333031077526640012670351004341353580652160061557911226960422622219374572433529562930784175439966589605457468480648412166882540489788763310824757207375945774439785720535081650843058998667621379332379726970429568982505019561973565092844749300516542233760855723818715586947111251639020120323363510346156730590429356696540010266109961737248866045628292143635026439564441702615532828789472044624421735244899099777980574944062812975094173752606285424997530313969157725729109495007691198412468392208650771337951336872292356091209282694410662548828102747963748465879270983951882072454185444509711220449642363859679307455939591496868815141655451800290889933434868229325948922870035926936989485412038621194535324781691443356418326372723412834697562736837166386149087340660202411463031866621335681668603942919033889659899413627600877952252583507143248326513993409496766288354949570800578137461533128094166530012162919141750478001148594194235020335533578053734484045379016511539042337766135005417069414473385589049441332426070670053087382339460146751283564752925469682976287554712716122905600552286680511847270495911657255624254848456769805992473510271639680023913217712231211431675859744962888650810862476718679624098859080343089553605871086947356477689366208641821431167534964016959885912268155464537004805492412010726780100825728603044459248064697144570136949696580127629837400150229894479038904702800109347026695029315442483965378096732549113709919274549004147895551803541485229717988711881905897159476584603462661845963778476156326537979818834625220742714957066437338020535727566882944414210025239594092314782371449039655185776961121942093847472990269966735039875055031913471573564743867313977031331949434866516966719711487309644885957470123537729713454670961612478727721199499780232744057009803968328631885547923015739617643948561460485800689865361408172534645640056863646358624498144763383752228216016638477194353375840389286703567382091245849359289216572044260618619035037446475571523435175866376720131279759993809986921128072682735208444151490237899567887195993434853378656738541348760794616271716484029458051313649234224286109643427630067713654119690634923216775703909107326711812165829720141020867969375868852010478103127845954759823256766656556454930507433798092132566563021398708219179679298497355731567530868815513218523842226641015559615139798035127944344560631823177859262621955264011458469479025354543059914719668964672637380519600925128051760761413780720159980016159917564461149482497400928735486093203021093287504095155257327234154765651811052994252321503891363655429698340629391809388807108289963018859020985525230782940760377603340584904942386980615397485606217032999353756105560919741910117941389534036581429488879197708815473886067637817914149125167799712659622528037718632016070629635695188881031531697443683116619180143210333383824719889638452913816405362243388017891689320863091003495992776454508700789177420826661694720739693662909120853019958476938377289878656386418636701483711574654553492865872517526853449708873338574234892383324030474032778241156825522045832265178134623478046298611948550717045653866966011273966050993430162631752707197875400538070636361101147699819420742721006657600258834503520991860701716344071313276184323195730308919013175781410003686658612225316408638120290072417286273606129246305899010486796409291692138771803088524567160669142826081890320997542972110945322786188250058150487983686998616660518386010926470185896545688355208458527919806232483691946620933635609526214307550125484053110301940676085293354428070158051208154195460025709586308922965336903912809323466612120897847071679016085872272470623603122091914658747765511772825250238390556541179780159662157269953095096431114794936445230927484216223581045616379893838452239176994949984250302975275659977074867850301942713045915278498079494681627964174466781167144703750907898410339468288175546281159354639201545068926535103801596589693222417038913561614027341149888035161596034054013520569106061884145805312030935042310398675643092320065012002505290877770981241451946695959499322506634588435439782329831440157716281741696973889036446434521256795491526414875512830283050812718908038296944143429530105714825346592869531104609513296679522878524306909097212522131265757120064790265460555476773802876208985560852547440343155263515430629927917990143056572238675054608613245999435418854484324323020712027740869939108006630463503092718931824140550866590283566885458788480063172551869480499613723786307467173343095424480605708596457461559259105514880370531399738077647344585005625023667244089962114559455378342963534816720956233290454012448469042369198232674661360057901635815490644156461989076106873471839861337832706691453225634774094113693390122321638312773400393190954521544095742651891764765403342091254970172767524751000233416403667190705560455689741830878354025902197087427444721014606429751473075875255040901002334537355406663562081170850289753436362460934537568766278617733626349024641999975684823226702617943529561455655323192879947336920158847184045643148894589824334291144837558269745295264842923693651946671075199194092015701191737044308935421766091581377055260839563671620084823106735215233333625898326057557285526257218671650717339627325371902104015603069500284790239802300634347508113488826484440843081701161928192053527397530174075616104852970215488297420742312757596520549722549815290440401945542293274526058203982349321004338369258170521856946706182929762057514144613405847055700246594711599829082435485202888596351998849807661836967868151368731170466819338730180363531325111813760059165428798336503917600101381787361141229081889567036457442490405549723562876268323896425508745871693944672197739637159099049264184004481744253778556098214767167881422658978950464930460191896541593931827756585181774575472518232979500027920967821101651551051085011306144147237798692751575304569203607665608029249261779989268438718563320670466777977416206226744366822619837684113544814762007587293964538493564802675078483511977529608326295457147407518101206271526278162582426608548799821825487298140787403260344601637119467302587443271714841330613064222439355150363502651084323538575224514546603011716860707511925732517561522362735233008256859445070827386616615945971899878596453177972237315807448576289670982713977284128375470668626828887667317769419310251252347362283917736400495341992174616134537307140308134887282107912831509470874077395827793626332617834201711599660016983582069477326800397635357459514419306235590333723370296160917325324807060900049256021735980465694903088048680740889225685108561249458503299471755622169979161588461625392359615092060345439783764096589759140382997587165474789685426712187122243132908858794152979212169758236487657496513667322321922092549080939988320970557173028515467003033421493839686289972952292892168950106410875145474948307522207499969275815510321805658442239414944078774092749711846782094889106952603571761344945994950615632084206280941215131290260045360087028625529032293202840215549660156553434977323610974163971851195021036490390192575753911575343334989995373110693036208291944469069850409965718396601631851577784614468116141102092549183997619716533611266040693911564148775098622255322615051087438770765770074532005827636768184162949643187654235451811488294010484304843014701062658479392608961965439705229466182632324309343786173860814433499532379028811786542304452115681306106350247394953820299596885521824400571989352749813110322872406637871690263290208245245959664090528042611612244514880032717303677010740084133272397984367291913513419010182822869003604562951462485878185738934875894532665251721372660300598167586183362582081299446266178757755181460438888596817223412890975537121590302601124393724519427646098478100330564383036093547760653016107886028232610103081144049378165607018938252866065328511171007111978023048605670248726601344698130669901144595347417820039870746278890043612785647673956675990624240648919128272255129332034255919602242814206638928366479717803545516856958463190211249026212998028420140520435437308273994056954629373867567890517409394727242224256005444636025290192005178237482667209352241740872094691308940994393097478219868638098686349002728723563270847754059259316628753913708951544594532966561068286292262699125448982363021156996201208268348495324542453115401055038303183510664701137423650967551874168955502062289527786855563838167494620635515640694824896063977497417750640655896918545242074314990327345241942796846297637086940189675936798388157872759162103223194012506578511172689791592271642832949993145979953037981375825801401843171307569289083670006217406488058887086626606080421985709166744166603968720008265133229813945406120419496836554918744411246879121885353747922933294656585770362510027985525468644576318748701465626566149966877074646295178661467534504500630233932612519765583293548059118994267119129403324060977821582921434792036802966983939647692268841592169713625826413249687170087608490973423997780184198165910964952848136204761618867422942628368473963080837824472951362147518515596290510315909818321390019007157490955044415897554918680936194575752340016354341530237093152075265317836666724460106780548803210841068953466775372231274507976512316859792047059678679088016036548553946762730338503249892783211961070641503780060133573957546238481935925898049443092958514575159698749448043990150919981773027601276232449466792531350719529851579150235294626024521645657461595889368978899454845150301743253741278786098744698122111800760359405569299364143071503794162718961257624918661476334405582229058704013000829455561324855268297547469647240772853298535409211555246876948578355990743491080007743641966767810819311611361422553046391801428844759859958922666772666967296891094756814404804581443159689576430128447954963418326488924835196854486615461196023717557399151162213866485628562315308439689666999003301489994831522172802108564328375822905998286573732011480053989859873121922633038297661036744607994258803200968936642398776048109427185433859008419617135122971821857134290152090024486286936461020717297495761192275000822459734479395457555495550665483984201601398136937459743482090296515274908699013343037365169468610512266269975020876150550114414590493798544400504913939934206371594547666427713210612298539305426309007475057398500204652442729919962901417232682503728743480783049634831506725698169871211691990588480299182012702828531491681709512656996281945091169466905469748389632802446415727538633309128845360715198815045873541422743157770302037912003425567096751238792248890508990629881894142819652886342726897095798421489399584807101857952655730533512205457046107066833161024072703178587527557531121306148653729718178694777343707731104952161500462925109329744877751703081299561094246227356341372810724675074598404683803531273017233873473862189052492457637887588799076938830612855822669421386177709518889160255073714793972767042017172652787250262149305545475354607556567472600168716502862388729035782096208078375657623673257864407016600230322766290572496280955041159343287591161767722252985339048832138556796904508752394461853549341171585653192816283649674531041578817393827344244158516216186555432904944805165504292546383603190995978452015058654392123780092763555388901186091682939538681042957784330035846753325059237184470608925308275566264940163074469667867556049297988983448081975249372865309043727969717725942147443652597800114235215111714278426909482497898385831777695160743478978978379366434957986749236269002901237946440946384584619064884160141535045812513635565496183599290242727872181107838519388091121155829036477485198987141800886292794031201648941879833319481347563085076745672818506295509011463273950271916826190254378587111942969030682978668200197945350551951103896625779111873404062151678489641720924066664434592436166922610053940519031793762046372792470284778720089166285377730369730428489647143165801263216901076168535263851332365298678113250074412872303346252558373403674085452643891930636194098029394875805877745581759170728773862568040156021810467712763886960563235609460794535244698277298775729617458799508242283986461041945446707370241161274199437825897153105734547877331278946451778628573966795827824021129988986125938303641710042566027732721881947893868406066611514719722402451587936096764552474134531749476389240653135840733884665703316312391882616168611173906064241477629955885318160627739519812998191733276366920930188723832970810020945292472163604348947646024236583930085015975797899493912894791259506035052483852732280424306023320917804745378972573493642434757575609776448782340263946539914637684161033367140482770937419364146438774495204672446012007590300036855988495012662245409521890168094814006288984005593489346985686374925373172301332237542533094864225210699445153695342052552022274309807408562792169764099710062557537207440571689525551529576793853298500670035033966867653165575246504100736013264822082492978384262553399806930845393402461609242688203804964687402652920429005244779923826084027940819125182422032607693972697816566382933584772541375372925650519959434822369025796109859067896249860459129316554643322892163160364572780771844700793894482901018815477494648347283290788847402655758001290607336466161221670851118036687252046975150428499497992784311869036996746808894262771119218352456804160111070215954634263165145383316936841451368799985277300244380148759944185011784714831904723880733803080331492139669807963300551958171098374114724259519427692098924658950073241248849058819036022049244586953675313731228408535327338468431652681309849910340381237974906946883755584964441034509429900759680640546069120541950844312822195414324025669699897806103377901298580866804237698989410805574343373592221606809135693327948582366840241784722404556403438990434087713099569401792958572735295395291361909731307951277247415627110006336587055470716695489913490530343909202219243206091924530889244011839680031706928879516203249589883258271173634113608123145560233487837912008394113065336084667355939843815078446868858090727733366795647677098888672256023669677506714708215773513258925535599158990752545243828504347155869498053015490493966279792430584645144969139928858952184546424366467151160613132171077955033555844769457166864676770468896041526799500920720436867369649697568388323910813401356053265853170815553186375107424097268076669907444958775619629204570438663687806723952726592648450590165644793216228641376722122694817831451770539705063968441430966130079046924361734625910919634075479612444064338298479524816701542022822181755846213406451252297200268857110348806470087297447005010972840096134135662300134341864157724779919830083092051905200713308194590576600800104453707742928526587711333149119549194812334459419247232527180881046699350297271219003552740599478787895525937371781837022762428921981037303555243490506602775838717608087578165951780235456809074956597343121333690823233422126121570258493643839411082116964610661001388583628688889368133691589071049518924627485695565477777449969065526213636375344620350936807888482431777899393180683639984620403838490184722634320202274321288635886025682068746006949648703089309808881043095643064519420889712736378331566222383875713082860206542421201622270404574772501826925859518519421970004162906576043977267773964413820371616190780406825146882250110075589055225492029966372132206755470535060034285784502154025405217321767309255274452264962173838798818848894354636855053668510382866605406922710924380985096780368619717050371830434311527304020353886640558853805264092669379326640347312947556686811929233738082034766060407315229623279023872542122310035153725048026710512696639485507773896220234019888947084197114615252698147926997204367788619454219803339973296754560484284292692352816021800517409044864276759163374016386621834325270955030507881107720481791706149805508476117494574144656812076315465018422763532296361680995630282799765065618125985791168443124463402459588980957986225804860342200097953810633192304402885522058761703328773588076544254019742674067904558155751737830269608183634023199724916174802688565883481791010025529381381827511692428291247995764470741063308434985964794337115179945193830235725908828138738509008540859656850153107900029208206933532599575587473074009174150034592996093031937399154553571458052160812995932732402812648724108481039293320797736627337040179344040461550356938373893429272152040623784396398951985655638047612242702859538361819327942499584656151689376670463437802545290366995604364945309259431710118461745208803045243134602197703902752072669991579062418393836748672970832821113870375757296500960249300906549848494011949240420861477698033194365201100503590826081320278980979502761356186768456431458481544029089615557984932259851063371693354947247054963091543751975501232214136337418961890361240511341561092791051991133225048238324390031520799150132531983856099092603970870711733624968594606203901624922731582569535767196986802349956767645908132022213595485505542234633595254679643257474688505790485390393121864271284569010896118550425760477064004717714340577757543966243350692167319096748213581635239442496116575112627883428981324225523989058173785893548937756599951744939955781167029657387205046968349530634071075783423311281545087242864606793679415960190101651131667585324831869059090642914818003163974752767153363969609733461219916247665912400462855287801335928382492388432449716685580262751574354900369070927249148903579004072747521793352103789344750865416301668201430617497617986850768655763352381681959286356453214754717452985217566905000220196426478451870259372935101549624556887024808795069639060837770277729395262924236164199554062979287313478197483848327938732046023947028330775664920352175913397571054030385885220616961976702624097822126007069057346445057497111935482148589532448531088361792638698945697008733765979382276106013615846247363802728637816711975366584512610523916504139846070627705580610078813930281287826383523860685515625861502893520224947980991821007023586030657208573182795727148663252695112012938822598166390234300350259917909851367023964518602376043650934754768528062986630894614659065612274103962955760148397381141378122143541256941564000670759775432059596158211974844696621145288177597939780785896054821655277306218917911286174039687409156453869375467117998106274819441090968819396821524131255660078148870146955180217430021328679627291867880342254392539820282876243064307947454083637751827217883546986856828304431881419091505845010744355130210436348024548552523533528389411458561434130557084718016253123878738135508955764002831835614537673504223462112698378425089061805472041187305381984831003045411683378119188333789521187200963065937283745223518024990993713039907992231192557883937606730803201568286218312709721844968197403989635698334931306875251733757426493710860643153440221687056876881394798923110667080531047853668025578474454549973463042170221833661133914884797015018675486575522438622117079418163177278992030010208955811480305443044383555512570010990209667701306368938678732669020618050404638979188944554597324964179473064609768542120605391994298945483713478649988375941540100878769884299887349107661486335392744464009182152640451520863064776833503027060832341946005404640392247505279986362382601709248542077756453218634568747516555793493398222756687520558740704260768255285064165421749872409680444993163429759064675865977202959777441408956284327883230289562305814277693573603219694790055124476278039716190275154627661238696928062088833744013931814126132398978907196215815011444141291567578462162235732139509280081616184933526999613164155771631888167849226729843777833646912075225959342119523311585087209849329654764299768437185689008496362542579730148308831300434616663343885589439303521113291196475907324860195936485008056546367989933237947433632951188658943023316506332432926535436103726250641756805840590236448334481384972407198600077909785867189229708131377583854792110544965745369268082527007746428766430640633233117641691020013923079109608097736386062170255484535635350089385118864383648083213325665775028278787416348701917911670158334567031187538441766975572547791233933284165750339789612844721842435498141971421512405574035498007919668242680097004654751511760130258239635929367490145292679738192447070913133278593231096678627857164839049438052037792774345412520014231721235989598169505001131474266931519017486247231077468018864229892546738106864832012692754117456761033075047705621738421650775394518718742189083623087164366095752286447508241415342101939581562502319741711505899961535858653443787523386051097230633478006782537270414559804470876113116545259988675895833618184831622515958747824658456008524888392320997439323869077131263749278654074612098500722026154591007775615953256837275731650305285764408825130054454195872214056749028596955467101124356399699056387641843670226893177140385439853027520717127336024192035993904317432065882518222634130928382643117485244977236327174970141309385386169701139040954298411048708776969230816725466233278077465358255120273370390815163687163031853038196486875341106263266657464587530601367462214961290601953974682090450227203972755463226957439217204182922886956588772486351729115636785629781350168698565326304671663292754358695594006581377997868260977793751198564417543652805457521599118105664191046839234099044831744793910505929872610417980476462504387334630550959017291815149603281717836173992077805756941347077050023100051110007839812109360782095975916817227351862683741614915606091148883440787868306218958590325128954995229172965102762874801981024287671822722535277287063814403687670067934302361178322759724951220141826836874383220612154940270144865607591619522128818189008835317372789053171920967403947455720428054467688710659754154964731402623549221827234635240088864840778537464791458601782551676456010453130992336413156945248703866415710034031631775449642376557999224059932416960716200744687286531137778751493240438340352493270260719203260361310482308849872986234322244888595829618509620908417491576504536056947439504363362611778233071960017834046271405468194075202029822691056052982746733777804942495500544562312580043586753964140157234691597080198279925105601390601815346163270225540698313694276722115193992251211771457535640381648798296793301319236505258936625816662936055369944721392087340547623199306034192798866915354204599954465681448591501618183817306343555055760346217672963263739436263766650877845951158073718261931978050511825406201265315952509026386609318752539470450203753999518970130780317001754431854622668480594937335364049785851703110268857322832070221055927721730190645090529106127557613751072301303754357493961379684433116689909463647920760537960087479621658077894109071132007647827525964847141688231439077943721995951758965098391159896884037328491335026606346227374662693542155779794606598478156760893887898600452381609407186127546883701363285232068794339591635645874660525830544494617117439520949367480052040951478015061131022317073272375090613844122779037355025370553045883387030530446588542053446800285605406492740905267093137556990025441203632711218741570520406754121869534284869776979151606913681034964868132590469335193439516126194551372263719200182561479302052161984649655959565963743304189377914879885889916403873032282613564687381325461001834127708295343148098438543169976350195359140794411007670960055545636975434864654695751783681471386040573689592788867413808160937271264948274228391481667677652387755170651301866400523402039776262899483698876346197256577607858908209680400718382613541698380988983453995017094263435230649120426764896965139966900104868183689626250396233970902225392867693746572132541042694934942612972285311576687175430554087557483867772565275521027175782673463920908848281459535017922293766237365847478260411341254628755971986622123954453113816551044838565032476896939127241588154122629561626758132749422064996302231540523986683236794953375544709140253993428627607632091480299408176684518628292792440143598796663007023579147690958100307566218406803320519506246861227711644641229346648067041399429697181222677997569969310723070500336333429197480439223906559118064890292409512264249114436394749884251655885054534769968970124455607426975583784187276314632648569518770187115306886064614258479253106545102061304132204800793148378765416279834974940687005678156082438566222779571927040764279356357426630462220693577881661614978910460987348525742529991562546130937206015166844668953731169716315581770499321164583516670168127842820688642540069519667529610830827799790509902666481578108266263294709298593780878003722016175280790353199907131163427059011510973158069343785211475958601346268624849868602052727296006997259122229063058440293425788591194000682001780615486762220447936877322831721272890460494611847591267333312008032578050364419545825525017225601758063020837246459179266790525593117594556439127487991368154194998015212581637199251952543849335698147288695638675891388945650817532814881233796454657399368090051059398030330740201582789707203624541644233976911032504866182626377557708971581446232576755652724397490259718877567495317426631074279492282429937486743079314933504169303397213361875540465022784339688140743328986184027171014430183262399106809934353540975525477302899750900357996470193103206357076127884046578314525064700890717544074723772352175146561700009497780802014758351936123813363846838718213004675125075262810155786942128191888895436718542182412338179693512652070990980923567674177578300624206231102313366067229707374212019266056019166517589206561994369663701258445383777257207121805922843791954139708086793390840972990229522369020551058799812431307157236220186571075961616961104270145477993590155823805147282599723557238932281929746237559479880023100856014236033826919422404370337835238454273012957374997896898156679107484112424669868124484719970803263953811485791739304149773954999030499909900849300859885709491536840597231424614881943028436359459713645760945959993547725268941441727573334584967729327275577126239480598200686288063471875311709204117978342374341770937037452859799336599452385189498958491700240701779793527292388107831536572588207089912334278309228692288185466640406653136907585346873728228409582244885044275584829722751668022626318073345324759287687139956779470750676546885221825838150038698439175381770880966930623769443799112126710161392385617255934000220351332692999877405897347945005446126583603118510580468398538199774329938714815771877355687687900054361032962267409989499156335216993723096011197616344659323254522067650782145717907393909825237864308547541203175369229586362953486202121756098077527044466530990715125723891295418615771741731406953816782936209523828664420701897808451112998531411161391237597156608341335687855460226235788903996392014583208295211821674420109375483675283714410067946737734932885216848311664982477919897092259755731448195753503065309523449726305951166821960146003718550316370994003993062072616742279549807172730013117427844518438794284610515593819142759043185462820949437552484712467664782800838421336626265455643592298779917983605518420541364178062091412142926771936263703894183503815164523374993095732688809953367626251220828597201815761634953454783855173721700480222287949441277630369337136486342458092972405311908235737952187936339420726740200413336414259277492469484421621059550783092111804258175159541387845902086982064328133819581890599637065570101293156697552681603522993919224956262417549051854307300554518960204658077308178059761649417738594018374208925580642032696549292894672859598100423937306169883339016863823235756934340609948894709327683708642960825610551658229944105830491983364764674131127401374583589109152680947350365831010351468072661209437979682410147044186455385750036676047653221749227973982997001243569889376308539841424009875845406372195732647086812099670798214642375097841258757851397134129295215146829272815319193230956662888201934019134593599344037074962990146756332761495987876373873935105297414755436369439105500050988873750034757897053615514774412599899968577504682878702301900730490889705450861198975156084045299717696139507147625821349190290049820094238088558926990029446544218647899422251932151892540323967939884580581908473468678441720224710764773529726937011935890055844284757421609967342268854230728967443541661988017249911812351472912101663655164451626050032205068958122422463024267556714948017404781397438565511904796053709674841697215990198477522636612311638266319189578686260167672710453356605366661314399600135532252051545976649712211833937456088315748464893007821403404801582331644759872034964741043690571865996478018725865184773608180613457828970514368944381574999800550029512734645944769708023576205198206625319583014498099059862145106381506241902581533369762647222679278390032212205430424390583711465158114152010219204902615351923492932785310447661758504332246592268711447534681810014880322792264809004049821926085184490744645796536807110846893768287337867003647243770112483377091245513568420357615952012982814059469380649215351306518299221672610434335295405953141122340052661505433987025260761503622257961232970985442989529026780512743347907081494802811836512527531510826548679800845741799881679668486095220346614038436145744679330822846377584876204933978799426476763365885650303248391151446881466690267883392547958768506759614763382683158234974156215966039311101173959470995337797344431133866609746271680367351767876050963648629256724994103400309302575155040633810957613100276935783005420237975931676467534760156816714101555086538659127328076632430885208774697212503975485195978686452885402313668768242796586481955431954932640550147302483400617552796225137899225209584684072479746646972859045731801733989920185399247392119557600734094535652518245273570789780447401581699325904858252358768439728214056493647600983672583585861133815712999458867532126503203627600416109780960072804625144331238408709070701619560396075226603783323433939554720625171598585374907348626228488759266556580886879677096924057742826010912445155458380574911057185818941914181992636813865017544318832483892548242708630239606233050763434711458292971872546052723702692832174551412971715829602009487180086628355365664136811316311112435027065183175213364385195109229146383700559467793106145173440516457793330396406608780960518084185816806527102796842620171920296325860916962443617618270378035235737827380572782994664354010311715853835831575910432952972796210951232688368601633114957966441855218894242734941663622230020114985268480343892792743352859567800043856332794176579380135901598435125274470199939972398836966732719835338797490576990042865806590863302005894355838808391371236866635761160482043867440270459145947568479888702756863461592845283871442361528879530060292173660526506211118204441099964328889757933648514550441696151445005955852343391996932176029831358704937961354784829537249076708743109205350879169970629963008490999810796398182035767762853093097750845023267481189819164610167178546879845069163079489713686115075959796095700838815881618548234420560868469184020980072826334466455148710616079052318401314617329503833737311049390042173030321020389907377384951939730824854944505071185026338343226657802383262928300050523715260359120503005274430968654187430484164060444145438374052915952470078754734884385556280464958124446557411861134448127794874513699138394106515395508759211196525185628910684828483951181232570130565434612463086086167881885858815771785356082687153285400371510025182812481736173698068368270234758116856683280565515850690022263670308488666739280038163254388498467581109010894203088486595391192204314267055000337300180417626185992731613283458535192126128749280472955311028363955838131363330693251800344454354842478706202677764932673666112199742397392591108410121343231868559084219769873074275352853453823907923750725577247507389051380907150006344064820639320367265953164829228169198284331787437124524666873839008385398006933036137493792436074372716052447539489700483160139285934390640681045664953756453141358945711964951658015998285494984538378394145293743459720463149467445246442858320459424973325443422446027816157248081329689145668977747907582502268078623436585477225180331376942289230529639677750240901744551304490385821640108372435871846126113713111505573681574619045924786761692351304316419337584770568764773811498270243338569371535856975164056026972859921688554611013556692941430084393710163938518991310935615293666838861490747692348049180533977499116780942775618732435436620905955347267038666214225576360078055468452959941397353268855792655033492037809653385031146806694414369089067891680054891615114196639135042089238232941514913352510498850625549814189897489914277570275897507458367847982588192753986557199902590943694247691181606794464509766540863300149847496808179054075016523904139006956055082792875916085830981456360967252510180800167461403713607762619465617943009921693513531590938939588825980476826622823128587495488190955381575584446313981251081047902088466069995432403660468231187681954579313877159030508412164685920196001715237269945089629312441704602844852420751060853598265472186977343957970361309043943338001350120991693918838275756057650814866418273515773096617190821645686491513886403275836103042807262006092125100840199421089379752593645612563295091344778081408617929633971174510727038642522545939724558012546852792049366413310507819353464637176103583893627250659249410018239224083326022058369334536411334163953221212707108744254526348037765065062256589469379960503391505776250816031156486994575812264742885528657103631672190892954932264917278958828113039654420878181063385912622388911277115764765133070867829959828696561644666261008121199074885823879544911990516452286874858962937639623354113306477957375583276391091829967689815863892549790778597539673498076625617823608988976078374431080778316051212085081777962914864296154382511582956203489207636793838136269178634135345307254262295190084158738619007210932535732644558558289218260305699163314872687049499785339385062127586902008396234006324102753059369896288718657859800956218103121325796836589801706837232677815244429321725831259834928925433922619114433281882851034172370141474909386103290892756388361185126472985496864295355700901664506252189819294422782203960626967061622207820709726344877968165895467927122015449508198863123997657427435667389985383790412361653850606619702894484355079158887013708668118521023194164693460100887191332407343005617008495436320150094794600004646009138292415079924587743807378898371480342112382488776529296534145163676108622054452388470216354166020040134401281962807817353256372973512249027457679960582574506061164144835317723094967663244945123241176639261665701189930649340444142350680659774654875547236297793380529471456746960398858173343673165250265191229030318906000235720707960166954483806227001926819120829728409044720053188620548893073997601629433341058763624804706607208448578701771512635634141828467760013990731218517019548903737415166180331503621428962813749905392188062221699539604130773333562144576973818248523169705773362225929531873478378215163180338786602112193441876168468268492369640445572422736427787093078926068820621141364792218724893338298183550613576428181972434805620428347382535793910590542156962203809921250919261255049030627989959941830258479521526434962719033031945023197966263359041037917943893880432212692218009994079501842237582105710272380747017625601875954456970249490187860601600621642513752659308751671327049654088101071457230677006204382473368873873784402946934376707702546932917113651049082742482597257437482158147824241002146781028586779908622304604107972527006578164160495052181303970539662508128764129898326796401758012243856842443415399190269390900609961566876490158586534393255874304903283754771920103571020471672184310485297534457642671760341057370605293348256051336087208613643971828301374488937257031780057822311308388251273383109597913045997527174152005438706046176898965109518143262470397015581588268324992291155405803802910892817718939695790960201174242172671456894541936712141138813390736924878480080818285468163000038676106712147242725883525227601806506179523430969063697292940277107359488026899471178855747070620652274419491901298250260035906076399182171471182029266093795019752213039139619783546263004582700870310380634273434732299783501813831835776636091722544769497073676122126956456042523104339323256784136229948014329198419221612287487430232855082624774295288489667276761548576787102184116603690524358165141155672687970303949892281725050844957996807848107437212887578844165767932290335896607526680922797417915259111353045155662275500182762937262712029739723576491434180313365477989202564242660366122742591301116150933544945732322341955410081276088225422247686255649626886346931619003523190225003060575112655434212445717863457482490168872254692126035737071786956437615576432631418109712242270830626099023590112059257570162006183873086645949282104715905108907936445201710484539006578129338240522147293557492660675691641546628413952002311353257960930562400658267018451504511876894726196925889162180004112125289118076935334609656883807029796960102638362009679762083083127079442519493432253186078746319648613248004574132353055339809194743307737074202531539729606864016813721585647356229183043682007753215885413952492144130697373824591097377798040726428720186446577788645923056311215655840362914721383630716914181221220891331857419563280578076772264412909698182505249224290206088314611525212999410870475531169094912431574794646562090445581943504823177658259628088616537098491701576013444212583929931686393885031984043133657589527185410745729937479539241707682770829432787182601661830984135920369473687511105552411360841954656422889241894425349395403435006301048404773264410516163769584204163110046300514363679158791255643286316666067444972273759096403249310145489687001116568126706552830352509432874100869642829166256720346030610185564772580994885410882797371409667996165032946378743634484903447266379250303790781178020640496691843610133970652597833088303519868986155083297644563019733608302248981575757843016054820477752769996496620202872319741015450479748775538073768860936382070884786107217469878186410757361260249780536716069869949558514791632129687343283890580592127045886934516961041776172603715752632496401036573502295219036803388734920408622360589031498315695224972686694526555639403670238269735049142753808944096881309430265540311890022924782133016678517831272679191518147078125650089859518966666121434143080983377058750256536316545811725009522508261644827223707125754918236894980703835277467814832502672516427393667231481901861664027777796335408511394762901147135630374734938804205904074384305389568255924800493285273622125035845401534349058032183174807119082408908186888573884557997599744005775254601188160695947596910173570775427878602311792355049846353824745780556540152532623593682791982064782016415409082464424300127844772763404876520388855552569913876558486856176015517730386503527387143188778185142654561368682114790904256395392106771474812840071101691743239728122675553223094489139363572644111180401576595364844610633915879142087777542470131186854890213367019272806254125295177061200126993969501695351410494239888270940070845809765026492258493524715652928577488521984932133637364468760767227581823228473052121985468492033021729426083306427846674252330701908411781925452519708461624583015231074489663487351591365980610284779143953843854139937772124083602756544420586752991172717775192541860419903428845333231383922752322905721305631075002167201149895261174040874626548650218324288358963251335505605438808650841496748183448319774704263966862817663221910065808324285833152792659681364034191169008461847322738682705654134456492689910300964471763231618515525513403624114128982729877942896332838180370805874660935265404912750125214190944310358570326593129120875479806314215516693137903719235363807430759008123934568255389800524446316829002689213260653894651958381063176859979392565199569770245907582490743754450884883836952267033908454685012538512164158502948412432796367116132977532766743247053478389669437075731636351397508361943052239650657893483869660724056733966873281017626188254128772715024030054429395861077687460752840718077791588398376132879680612075187243810962703786846870453487138912279301228601532457992299426277374232407832581431070848822428764283273180626024385310030586260596641948882521045734771096393746998193971285206881934386673540192560877580417372875149658867569505657248402201659916306237460778319202214089468647780914613187743226997776564699339646301484461141926019147883694032699017477738403001728341091355601917312464464208875917759443956830069579810014575172370503374903644793210412994333692225415307508697329650033565976369282595461538772381125936568860297557701057690420948475021942209910755346567491948899273305501328042674517962666552437293868755329138317000449709565356633197700725049276780579547669200795587488321872844733863798213775220164737098774090552362838085555250603402080221561860146555771945806525096926273948477182430314615064101842634757209274436231476615390524409453759966491908649497678048439524305365545246020771818540316210616797451552287585501911061194587064203922179924702187332935889304498959764898199860911504684272523813418823476636111867024400261194145432627911043140351300387664006786667612712985020939259973280340577758954373012742074526555914963236591550357777352625694984617877154875834391195189360922966592083803370778711321064836556086984502952522587895346026781372162809227751889013128498157251808901062142034316606142892328968585818343766848925993167371013509355652594928711322939610329087221803528673012636752212040239565779035936353432363791104581946107620014832677622310853206609606226362466985977899006163971302966635372079482765709832731651591871383360951630824780388389819352426763860612718121377189205491475886324028576694240018644635659325993500236325655319810068269443681751288194783450919481280369683048175824664955721557209091365201733713822988813534987243363313658456507796793673980813149307823486271271761273829857979537584115209178500051873397573788246643463682040068896720569257571030824011526967551433103650999783646844508729905579596509111275346274133441143163359645554056225201397997900421736218366253632990319942001582488142587096811409695229266914898721349236835176147865770520212895440518880599876551179089668687099036702622877134055288458870256554305045497797401573025961618621537441295086249786124049145033883708107580251241731878274530530278523546674909177173584890441434023695881433380769069487461077479229599713080588832579760449719159866556519024536335797040270805112960545821357687892697047028291813660556627533351687907051990369132007881383732381282778580881716779873513444874786987380397999771499039903725047661909512047300176901937914299512738274719014397376446594475588107738730914666769635401506410748789889105158285797530331127401558440467236935375287562472392321510215463404471540134472801750223064493295252357337246150320355293234904413382552590363374773907438576072948305699331171636186740476789353677243602948867702656338290244299144695368517298796728655213916212369985852064551466776795922600729701244435929547764287767285586212125297623631165972816365147658346053354477021674113877108468856477263082894531621209042564053191391106508914298042969385370564575076225133914032118170092718036905176205375448125628214250468943093797261375815093692269129979446076125183748051181175540456764588500987338833713994096752070501346840708898656505697314034650152521488626784374492110490995575764329890435159682077630159587689159084865857085020377385895760455781279688527597521696741551608999595799961219616160807143865420673875824442732513756306996850624697453483659907996362742827077128678388811651018564045145298300007358412220264619248900544273489595426179876662413537802711745304326542372789937681962313565895039564284748923569643298157009619956188514795981175654837253535815675536698590527393487813515829545465204428694887120400056016735849745867530035286135988473180482210279848118578075251072927354944375436415484007283084042713796914513321197545089415506568190467639073293957041638729607631472206009347580158952551221559259178458783705375683421675346891942600729890822068359066619207126809218525461044301014883554657151228747190518661227939174050011620177940892721472137387195169720601829227273633011779975799905900454664393651599425789637766721337446950814540389425780399373561893808513880667766008089429476256365544823088285442249017548888769254615222967704975558949527415106106710956003344064494118316012196346428016795141666682316069698059490539990363252111786916904203115412721893932073567199752232895588546907563910309562295512190415312703622358117366423240450629911451011806882774299018503895531923315787372932773536259707810610454478941153813588579777609843019039452213284184844437084327179669526882165193786383695168075256613197305547520632814377076779558353387975795401443054304732652070951202390483326669366319273558383124348781412709199447902957728533386429329512374923110999572466134201120370565822417755659452261901368474496525349799935865449656622261709273361955708198167407900204279417625698027742759601379884499156514142094501719256263127148315705556874096264880468881739884459566846670945081231187342243275856857289405728121670925668659071654850259773112857072955433140855109976185140898554557233960773318666003420224759208166224795653966119574426471515391226459862944290721978662901221549460019783787995575669690081643082231367141127840546058840430180813714550102890456154463299440968934640014725371381847455356844205445544382876369615899011807585563316591212456682933269064357751218747872630900114085787744426288327523622633451591447591990371386333043451219907348836266400000397745493999967624444869882554760903387672996383809452436759066104701675329595662778963063607944789921242264796585368199661772024798428677490642527922869421562060650710414714888802901676572610167970305819206979741283568703235842417580758610959174932782755902481128026049472750121398640156293493489063389228269647472651621136513339767085020029270791810201773998099923381943783124182897053809255825337172774402559908186522052592213694612625538079728872517104876774626113020171740666090706333276574286389567947042667970329578184159225714027977966463981792423381400901297677338261846378762730453382922759225950438174724546179371315015530669764344530813687568733573194013068943400033363127156036072195127178454017680915018494448342246016915109725423272928321179971932212581204187050767592848583954706415186727141685380511796150699461312182229361100488717534432730878105361733832864261361039792008720872392606257286259224174978287264452600962474395981584186462123746351493890047607027157877711217558414360062756057326835699523609016255607167836029306704952693155800764995093810643250973809634556839926641261270523017102075243801169270393027759203856966358099680282702006693114569608710922882643529392671751527508296153147023212298806494691938757123676165493645705253200527810768208442349237424371936596185202831703835107386892642813347740090645535292854820774389178132014553507042674620902327607591128875645944180988327569985563317068912119610422942338528327323671263383690753299361287259885598366431194862122829091055281232827446560992287837597943946313410063237434077060689583244832024945011504733200666048638834613480871365733461027398440457057758233039148751643059348781251055541151935218909912312583777645396960519408642049124362072762310510328720031723785539721591109528037870330249044398214780054637190804687835592415825447415266262116901047831354650339330618487672805061762106805832840408699846024105080037662811304296732320699800614257953336473638301563209012447475865665236007757280494904365255430278717223143127246551976010079946078769472959272094402179070615957798911778714837305373755773974897082569420198435985470834410510767435180248769699694158783033796526302214413945481128599262291648806939529495176533660227439788035050602934057259762875587186577350612740246375513372360858709839353436559798855263248710219120240429127939202943676705161678597584290633602265267604805929723241769175728527113145485154184632290957438480522261520500381567264769878934038900390747965172053792802838611762135566178613113454400139613347615441658388674804062781575490969081396999831346975448791751789249851184548884030186874289296772263383156235245138231288352738866972800451935151732965361108902704940865076035053086826935085426500783577313930609276579172236213360250753349529412835605795889366044701206594688378663620613699466298752684514824968760011274982589153004204598681009029121066634917162001072465322516022570354578697496002825484871502096108070081402450207370967343792696092601487498245673258657902094363996178229842173430711665184004036361578710055745606192245529744748629392120839244924490887863287781578455097968505778580228938772791681926191435020527450326430765362915940836874971260321903316225326369950266841335585087278561370969172461391637593231687160240384495649548238542786747982370234797123243349980836890650839087819219192519143239952452318133417608308247647180172193581826484322656036005283116777099751396887234239350380121766827742111760040235208150550977329822561637228852749770243201942619435597964839600054052427341040859247513083247379320157421269867919780745493985047895963322771075512636350752825477411571447499075831475429483655998739408812588459557611453435242861926725288465310080749286103447645977086580865290750074714586611035256019191258343784242222422527237001576892242399808521355220560893536645995475189796427894934931396447074285395341413774234265641516631620725917666683402329571284197447229246507685660945640345566982131445269041293349444191922856465811892248821236086475859396400206655680909237949507596435900035080470023788473324014636161889958305227164695586492417673589474130999923294758001035573096370313350695638686714684198908841699288663432058093303718655733223794392847587510219723821566643488676283747080206532828298773253593325346503995538122046072322477982746144474023807936884929953135420326260185124861833944723154575685371524266777444683198300278893177230432006146459320341675364011800961534377226122640818341268544891183892649917680131777627740524183849129124081044787929793265284625941179195985581653216460539465646721764876018039163763722967282328889123849195728960034766308317322016679299968198863459921766568456060055170661274362077623758417775410951540022429096717249640839756118086506570452922946263682153107787919828861991213733496279829607591060880125637766548641346172527659974943191961721200006012115491130971155353176653423161886844354294588336364557185758194114475062520974364180695977449150977501421259515042946490119182137120652922473843693674705482134479070590613190147999746525835487463100881073836315743975415642471246305720554464463940755401156904637153753978614926776029762524093227255517822493427709119793748017789658274791632624957975700462017871606630609119784652906555133023736190299801740476116354422635448459402648886411235607917917189111467839361894953707426969112071457538937665522101064712428499015157104019676559054379994316850042410081552935050564816107189956288697309066426492809662129118906288539256208737169343177603281837919519483929040448186813777123995915939238686004646081263080716731061952756882211827240718856174015809359607061611106870040750966417230257481767526039315174113682925889894007404094890056056708198790219764382525852916111759670303600792365314351943792548968125303185124488409029461739781576843817125486799039036493148963976231422821927021123860922488212696234452628868155112782819195234550507016132026168299451948199013913395600486090669420711836751157892197430130782339944829849896133800088755405758405660064309056641534298661944679553382977291860315107356700085246443908536360701802022948229134548303353342441172210792829600138104381486106520910558284823952261609045978754566216438600767024523206537612150096548273208244344257399164492508278706934767515862821222706448272447599241945853898335879268722698264813058635383707375956607458461592134748798277122885243753174901356074058736683153071951958613145714744965895968444122852272591923425894041449903151821585202438456940689060106911785879038520262292417451181818668304846376678213555408852394482381102817279669730060347169142870714480712636567171047718069209176194608586123833247637405600126427010556727331036692261854528798280966854030616670156397340752586262371500035853932300391711718174833924325862594373804512576368240229375654597711171440888461667298615021545416368954539940965902709162041125881433197114642390782782461303912267680701027382214283068089218467091156387613395866370829020722498250566795261260067763297110201780701144709384478624223802264692269063978180273545503965413127055509739224754066418173660047452142048104643218167560269581944691601509855471171674618843425794727671025055875745162167969443534230589345282238302359218957433434543861391188363510875395868999767832056323685457184638408086464319813373074860056124811422017597447162298517026528315945056719939777502801807163409159220384523757019485143363636956976484464580618774024880438760559395495968501741691046970062882934225257026403396191952974718906065926259297678560435775230422475618608724104339496341406476188245084292622340121817283631908873378182291149609560024141984797666366254864640747502731377466252911604551594257062307064621536695306631572475149649296776189046710987575327317945363921297295533213686656749835255395281978831968277362037685924672069740535985263445132164882557140399518301789391851752707476787438932890607225557827947913500923638482278949274761930171670473633384788257092312787310187688114178550668513572778394981111627951186783705327667605805425564176772172303376641337081639620060201374087304130102337589038866296524604235206962864631808706041082366700949446925888099704915522365489641542636349828551913489795544384816997263850088327884315464781308053306474951987896812927534904917271230480247081202391386867456447722850708629308596301752933061845325978879297556455257507872528359782892606540073196453877862718066527453533611088855562925482206487613641695946880058555714851973678314143625962863903961848054243643197673763230443463424759798262415195982756889680082963846568708476057327095378989318699273985219579687970495932960424551236549687897302764572741844315684906477698273517442582680328142919898262525650915884831001445767426842891862050897775012376426801198631798424438225770340258860715850257988141342720541331022355462206280597655038534755291150086372743402944666872315194887429807219621778949686727384233440838130430427126462759547718337677490987343460195088949103894509252456203617099231320922074987801557600097136267085186832491147417842630012147574099815572599282914419088927090575571102540532396071315728563968317379485549267168195738863290627916165300342829260208005644119526898503006079605493768311022695612197052736604106486475423945127012932808530662915458727014082818583491514945280549089273596473633941397671793125582943232349283250709723101411924686556368231523092942196166578884685033144828076901786979558945091681889920560164110244336491705842527083411211638637886852497345851040847102726522978211597232299076052624145599470107222709914466264640099791366008583265660568134602008240138361495841347502140050519030925534365301933468640359867294936206914034535024586610561892014076788761947877217438595624468410323554189447140338583405362071844835529776360365993980806913111426433299872971242967901994688145179485253023613977095858754411494545845719895711329106252258543643476736755993722152096634779728841794538692078305353498943384976406030856568972931000159797763346444473302565331319929052006554268604786114461908661699691392931972611225359939277410568252914409792354393646177452617153360591469593953558941850622426110136449023492994241165283964017808679175258139030854180697800692533137138948611202255900670704435602546645407099788615376366773757737507450175209699781222739844985272125211504581539603825367522290911935183780690244302996445249783985218261905923359836455532474664147236514855478410551986791380953457406154095787773363632830981837495165998354295064401258963285783928850719714098765004996694556339385970396953504392337377339869882656084310545907126631687829064544738405312879049742898106754642765012790022092181997918324607811264246376366256281771931070364045700036967076671760508952412494618873237218957891563719642655029474727969382853952523919939851865668975676930949161194957485099363101591122511253018209644028844037778273660275481456641526650109951041840396114539119088924817722471243916331732245683627116538482954200390362552499959514823822322830304873856042617267910716952553627650939194363324101931347256147805994149030207977074713481277827391944439937579307724021223095320533386039121614784007848053464484043341371305053812315577405574944784255784966749667378421676278914862627541979082423919394946704660881442745840912456134498687525749079807896934486308804769042345916867883134238949414763171460153728343672681708953672958614574107522248160360752231914844593501625793379445980742780180378944235351326880609690363822196998926729299199045400588910467035350232776208062666642858693406134868224797052224186271146357792383340090548106812208952598850227329754791709544026207527234330074090758619639924844469775417909393094294868439955957664654759521940819278088771863828329220077830444460086805261429472746354579014997058879954835844396848088584226353975845643725775191496046862538313331760066536286731132337729686182138585553850052433968489781712636547557293002929348987014843065214988922249055161231215897726976141773636058721967717191499198213051092006547370831415699861167684145301322819163844269652777557189167601709402094041947968619989312259086125975661377072858167006057690758357644108419906231334067324218758160934151715313994944828731305441939121294529256526863917907828319174204984497861034463027961711584033055941943140070484901555942887003858197190755095433116946943036829995775899684478407864562414164712884303779398733821096263210011102183260558193749667887215526655975805996043126804416605430318123726074701523064818693327149404831546091375045400447295450347605625922219247547964261451962009440886647798271788348058669535585939005450148323818705746747094349533493523226866752360476505291276981888052598851010978152951874529118423575569867507951942426590787207760045956572259161931686481554512403848513065898518950107068107475997166374246172714830093893251207179613655108250464619803260217918751893169089865864874906172660873557133622521472533259909578903494220815397926120644690240458390443830214763983761875736783657184686199944911862400464597639318057604885913601007594257779707718481941939127622492141808961559072744948432329421952304471755030102735541098151185568585886439151855625910093405565312055838043223457057478383426537673790465617986566463092475304444011497632032290863066883752740231930925392840738255788917614486850452526626233222753083492834294019150957180579829425873567256312924783735231817708315389003156944754284449502047710192775155199620831693077134400045731903774798621919733551174351814805986419975900514145975006744691057809358955252849874864689248470256978805352359219370112495219156947980975796777869167074251531119494306315348882499101317794623286798514021534987006721336803520228663845598161360430865344597499598647133477956983207010146897842680814748656709539161381736468230874190796011728266710723791026899489639888420646482203463924926978077334334604017476481410673813276778365021482428852002386183013324590559537160687834772571859179420162518304370359175371748921411449995797462335472387974310907368150377118311016064051320438137591013493474752213791328017932120886784603518908252968744026590419065862220321629985382610555396280178445173060001957931973547307015477733449832922072437518426627206714463793709086258303752976210868027386981659039345631337816426632830573834524454116278867418519601344268310231063857034469158392788793460817732449946943050027826324813902072475757253700004934006935629092247516103394577067524547450876598427664894279625723032465244649608029122213392918044188030877416454768723893467234465235687150522849468986568779613017770409967527820668761501789013779938885735555447832963680433669416337190864405711098569687468969592799461879449851002901593317999902749794728960406705751084756103555975471701362555321773487168669894987694457130107439202718104562607226698344634584677751134289356806636577205064023817495935688628272412852401183968617832756164359395088717119077559487106798159254304411730026372959069330168771270030016689450803020356442156650170709583125725386860255801316595694270803687762835460937320139162203929152529593195721480170754483814921930860939874390376159348763466738941880164319779587996842585805866082427408510740655594528339013295440618168936635529782715530063477832638240000337999039468523761758276961505467128304682564060045901508467743289835800034358825478229079852311236933845288856756916037479314316914084253272623654617375296150843064157661341837218878999754232232003486510805119543821028546957977990324067952424818089791544052836778170781265721291676871585907177214401633486376021361793757283441003722052069785197826888926094806433031060418241797449170043834430859275434149088883813102785060991811575430594618307675703861323313821921284948634359242659074957475027369351884297592079206835806956060671499926121895029607302470989534138837993812744867661645530388081775510968680525181112980422821608213328093111192282351938875141377536110046420852554283890005591723468997353537485572310207963117531412393669705302484365868718817242437653875336331150161894373311497575903130718725648782307477843514867264929652433478709857250318571862113924642201741056989528443525297395346828958521795485336538640574031805497576291779095253878095352602801350993449739198274774878312254668487488040700778784346242318580739045476268876253880334072526397273942317993335476897990028477447558605771102778306179145863011541875463876610823457291971401124709884292347731371073972822167420708839165826958144979232122766517725498112892993132241214531269255853028328935034359989225638195193628296111704756379357663023196161488815647944949615466481387419428922869481711848025633569351176076744189930761636594100157681428641800028785789018177811923550598910807955429027775851722324671455560106608466014171568044951488462198251598218905705821239373183550613754567446634131396145064744808658332256269869654304393713414961673245439925988804197716324047011684412709356829700197476344737208984852773604153784535586887272833675610430605855904837036694331773452434724334688005643531967590686144324961668056451912232545290926202194228945662031276788911360950041122551622102445261121400546436178175877656825195178397831076748862033826970154477410485419135335590619059940217059708570418613974373692189241224081335912446518310852721921237445492717632109438582510056572402085347043748557597600692934759253909706588424032014253424650002330211518448584347262723624391875759920617206137772951368062031128945013293911058517944768543990757223954534096113816536522146255958375909439553564331879578062967838634727608044728144859925379360164530516460892353771979320549974744961322240894970243444962030442377172832736527554981437493732652557128390019497326952477741935400807004548064470895043674589886496934908602861273741945865863772807387001112709788371267484559009700960176144046473806235377934604336082854370018465289338266374373702564206168121120971320993132485090326399999247987241208111437382226693621880543910409820719448394431221358707292773544979238534296112256022233754998368553191126687704527457063246828416352606045298573107184174427428075324507126941111928476059005782093723156353764816064195011461414625478353856820939141069100431186557610481787394252623338616613936224008142199781251262601130338330764642483442437088967388506529761848349056658002505824053944099883777093510154465016987628303799639497412282101698455736722109217652097183617731331534255093299392091597169055895870118186635984908048347805445384068233376577406725804393764316351000910069176420762089527290182541869326313145311750480926465861692302523120212237299949779406918320853767240737683232221657353176114920349197267815977569903061316421640486231505281980961754178020332490596011375631568018332093577487130793556961082362962643279278901633607593401304358638941640716552452095954300795836141577718952908220009758895264332142770246463381622071608142214873015901612621286819466633838180371039479495329907693676513234094012279349218532028316625524172855909011139690308410845587659401969214207481134722371978478893061160644914577886655117096616568069541738285295248650228689440171953530162184751472137322337178698232581663388995729092127252916981869994651831972529157740753821752851756448340204641920029425756399102937961185732308067375612312974359716656588169624435264324222779625519125288230634463916817523808288284711577774594585194926764166289006177178566790864484031546560758791589376620338240892555541852483884920315547166495325120889365902296009040501833346894725815917577747588965768652927736794168584162765990074626661566618416063470620584405169481818325586621612679907533588376257670773024488621468179975417300040869359333487068027031483433198130760614661040199025751953003585154146289585380244013535631583845252507044161237570524145516926679044247623434758601901930423916238287169401838487772137539041896669484616845703151341336655183230505153225980292231799174862029108845608836072034318243209221160731122636865974163332816890664609191100853717910561272303693525068540340156625668077515223371426415417549729928859069866458910918658891011717489997234550334983998998996858322668982936579647068480531362752164049492309981887942610354633602040998655342469607007111377540453044129047536140914239684471191710411543580676332517476283780571029376080312919308151041853873471920020004640982735592290871520009051194448711163166061161987062831979008989137108300862038423247475489955502371509659111327760458920741147027810414112943432499667284177503547454463728370284401129744849298391458534231440465528803042357158529681776008741664115675611090762470183242147053216454275345923419497986708634541051913881040549246525329507177933260678779757513769322986313291535933786833642465449007455007918706821847853632451194719129783712707109013472921688751043995690858634230449734909452215822434783533970130460088191122003770165063730774190568607476014385533591305891118271034337550052173561499603416348206900120499436528594339002884786056031964177070617790495265599756916158323783257081195101066305990614669648693480211583504895806450932502409304286113762605869692677902480045681092212610550663052479108186272687957479748964782745373233994206961834248652181009145294848526438596540322389852616426799033049107666884266654712861189764019522862849349854314277594393250792631937889930516774234321810001825603580992175145967587202548233076323870717049404794541867833841772525105658587606438182381862384228669769150288083145141295034860688817403565165572946454659454132260533549694648980163067444009110894172471228258905718311400848359038076265503069518158219026983107124026904375236623384421906552486536265738166850578029048554484701238999875193851346993120509928192673889182310077241306535293265769097684475513454656791287673598675454986042675630934692048582489479711169645154218161699211246936871295821099539606658549599899352465935878182992663576014455333177706685018333536867525950922945864655068295868195207619140486985206087305953208762140761067660560539731196195695945197101225558338530745112782553878368965081839142306504662531272111049946384247193009629820032202353153204909804217754058781255110546018086228812810737209172224028997348674383174534106588195178884744439504136126094518916503551326287785133353165693855467056805341040282209144389260048326524702225749793911072533273233242963604055708480249754590696790334217094303444903299596537981996730541906602579584224893724542372505617593883489916374630181573170583087294974946755498544733987171838687577661440728958607326177600007705471214139295583934007735390459629215189700339619983552120557369106464270573947094274673672432941445110815132645246440458049272960173963540294706904141306197647057936723327790672580891663399563064667812138930401017431497098929368382211764588604432915688138308621610541958986837916408814377514051394705144349070969115920587886572584637412659175204938335704376339165745696542799278463549228129909356556841593052132804586002619046507905896877338888835407207007957450667221009256402172058442295873403189483488881273259183761163187641206787071030853678889319329066832512026694311748754712814466489850014190422358231050263755933578180050311737077637546852709048375709103106778344556944347212116923779057156868870503512546603206034771361497016447002257612475050560748622154306316188222373629466537139011079285449309789008865985832815239146521828496568185534051402243621003175266806672342176481095313167076579687392006746954485540451713738434012550495371315040061572381016349673234330091068180167514796701398926969619046586079622972285381241930725166034380143789725235063279489040970431360604262092176723063511871864125290465832617598858600025475736962148800521453404942383816428166645506800951006340341113242966585712339423384766518042803861078015290403390541821402094683285204190520229116006986568899301707679540702446675389293117488101790017467849261047525881739778359133795344855552853303289411010241737544186950805553890601308302119310564573259816620903108831043521031509519854769950699983880859980106628665410685407037277316699275303444521800377212887010134278042134984043834142324758484356359978805420916984582566336495136571144026701071832447341781362866176909139687213753708910810205159733718224028867348567682061266997918169142429349988361715858812527963833283066412553920388780124295550086206707758743680095645282183355247848828362339651736264445236251744457574335900623621185723957114278783608459393428629507471679652076786598053000882897778837441536109735129620551939607943814371678563581059651468691361022902217877466674123387157519867350159334332040956505417921671963965529764004215132480886381901433470871283186988195507611891359905093459197173547913486281793827873476078905838827082631286228666468721597990456562930883057222264291563098646131727673004150040056780115707806380588218306456156807200015621800131757568961043802167339772663826237940464100602240069304387942892368801777933475060435481354852182883623352549565000377978822263704892089599360989381315589698409868321938190834608931597110658549733617261920102078105920762315565524682075592507972840591058798236022801240038485988393821560232774034845754883544251173306182724482685204062001725696006873351394158287397815166848954159735474833058432153133307686723434782234642970562101344605655640468376695385634226398767147594812895418492513750470970754427951320735587273182577744086624597104607739621942414456201940596531026800696439151125451912755245064955763444412918410672546503654136557726468102591625077148240809191390002382690327910650812833955036162978170701190272929901381060386428269794887681525166158785813073060631467965939016837008805216805078204811144225168505490332741820826219542028999253675970344254121064484012355641775429022686049556736346059666200195238455667093915766125977718244564881864195411685217664457593917838885427737227723537858601169093892919556463420552074083101630788274247147447129211131557539797550816348298042940494738569981836209571465152209428436848162238736587362731633845703362677316863056542503160000717243914340518059239208061569687646185793015482729953939822204219284157973060880917487329186383841073257838217581294225930710218258085183917712796553548977461356477821114897160688733531199141843819281482946008968082518234323597014303181150796646851641811042208078367621230334444634275432623165513338042247998859244925803166398067681873806819215607748325112915252626572919738918644700967903903986728212031921095435447069951718457190420717095307484454056874893002554066207133062070577892352578202898273217960980724011956596226660448302591966222426828358458769964014940434850415141001632494358261813239930145305838582740042443190633928531236695687672268883434931643872958713398985053115284034756911649717564286556672859456497949889936561701499796883411407293597145916820774840021483520100872360697929769891935683805831828586100747041126822479457451860059009248674406394836366052181376394732081370321663002496393935502989069115303708806240067517609676292325432296674093303683779800463009928639768875122486718158916711888061795531199636006879293914029361259404320931776013476138735112005294023103160785289692704991133368810792574513058673773088545111970125471353245098109084935682815580270049192453606916842882588181192367921247147289302233182933050000638029885097245897702802284851424215441293351509767696551691696640887177647993803887283029916374322091995070111089808684387312442671609086638838310967420005593296834654384687682092049000814682417608989362464206523862890533587992164085346392813145772841015462694676173164639600483426504282004415709618197627601091770459142349450506027430865008917727444809605623661641845265024400603528279045542816399277011629493461346667204272746041608135584126598489103869459613353342317825367427223905008876658155667456714820285924983946845182478339379126758087927265430248684853471032970475462636512269597284452782121691179731528263275954924104794887583875682894871165172141978234041961569364624567514123650571023524446662174630295652689947512597710014662996921231873216270046528106579742316761680534231694365749013846869751071775285602152888513418346934341987999804158830919767853515408334333089090186309166758722693069735371790535856564263916131538705116431776708860430868429776134042711761026797605119369726316380066960211478944370080965161432409276394518028545579440890786704237386089667123049891078056121840838223210649929730725428357088898333360939084099593657129825935749374430851239964384695003804298015081225088486563607351216619509093844466633868759125738036437478206823385633709975669828547570557747345657557111964188403954975200385166845514546643996923437938245109741252687392674221948793249329651244497630411907816120980615372968710926816361178419009131335152760728814385095801737516467642241156272906127022208920070236023245914376564186186321068651919619306936881117125002871162221792039114700692234698294118300360366659695785448518508261892250141049237502004534730560169939218839963476184862835643226793701640507139131014710567382012906639798432668554582537981053259933625208920913456039043074643013168378272394370240118270930793672218603568128736248617425613218573485659818042208194668492225368490944416351435025416885299698776214108243031201275692429411450283199913975062965998252728851596118104979970600205722916849376610453470136216901157907832777165859314341415609262951699201922216082646637989997945714143224000817464043550695029005106105609852237506227499514182775910559973156577910409342744091329899968265442288524162117160422118993710798959715264664729222135075143264337829927486264777959237819043092888922614737859836208245318619182794997570892548305556608859826883993667260017030201769216226392794100100503669668921218505452428555605541842754636920239231411266674802628463839728798444172399644433571005709157159934836723966092063696552189446542064194047424823285785687637040680753273249720668074729773722934875001124923335962317117312375285541799165529499815924642051642097165404862662594951967752523971944385035168962866126332299708770723713112091006689609067589637845689258437561748506730507420050526047129507393985332225701891306953176155589948157649459906944207747298377986087160311120571565396225759157838348459360126840719063611282784495050811107435284860884139080592296714579596540082106630266301816588215995668178823980751133456917367282754590323653510077811373733635493485717398694532321804284484068903612295815111769879533004600143965210964704154835450217504807521773272819942175003926956247871924331130364278684191231273355805357040270041976588971204960171945454326008180965406345290091046234065626410373392312989783531057824373489992739166917182383745110362959355481942855133535963955459114990083103187559205214893711883804358867504090242985571881951366198399800794706807557656823802506901084220444182812908343568005085440312940912927046785633158578989437533676343302922191694340660999276725460828581644969157252620478490695607611503149338051010412970858406761815148217989059180945070378143326283411949228667049341402535297992586769611221618790627211749281910033470227326608891009115779058661755023724128766437142966447913010271248859854245548536310162479978653908793575353464118937430541962061664991742966339286564043275333480004932580078517533449244698856181447390899929866153091117777286000714582072834835349754452039070695505051041978236267384495397266380468859357564335817495177175357630053308406258065879728362796976989015797142827277950062660033146437664904093172505856232100147301095445231543324492204345181118908791714988787388665865090785739338313313132811682259433526759111689440059803993165178641937012679215281218194314537805842642353923724211800902368674736930119830661835811490282890880818836054278002964110955054748548719044358974510510455412657851504103386350140894840180063632146040932205963899300981652961796088607171339225106543253386574460177538494495272716204758010469909254873671971137426322010362583796153546078218160915134178859781247846391767060907777885053715488474415855412171800955051522158693493177331055542367471689815131770708524355626761245102331856114156269930657357255519816799886349166523673943326319910641237126041348687151807990971763788449014241040511678114013547600006722447091729159720481366307236274880282644085596452092649662287871909015454983235614558316212072515963322201939102239590884095078142799831693357448718862711891251155538975186038946945821762652343356638920674428849282986063347250924521928468143821622221500138436690894668538343571369177550314115391004736966360096461393204741840701657023532508855587796677630879378410925096183718184241873691972013709917840630245628241919721146781034154711688053768217732943228965410242591997264019381242415801322597384025416699870292938471582067573106390161833351277843773136710878095865189748087857781734397237548626014631831440823560073498822539315121393072436873954910865737835155079526668873198608902133949735033541558154315426559636598198650134598138772548446321806654418028152077598661554493540168905121136289505987532321758826276727806635699967135891951177201712208713485340639570699219701674273857141092497227299550666773976424979237414028395516069814917979670504237431016876758724890763130186008064746616597586489787780505837567955778169287548920478676511058026822126415159852687312782318338025969191966155098157971942811997587074699129897058156865251305528372664291342753052577163277419936618873744988489532490144192408601153412497099450319558345973154759328888783175794790230596270861932163233581619462022498925820652650408482570892801731349665599471925354325390134336795285429425244203716841710530249670932163197998255873855965791131195836254665493415529342251620492028754392885601954560062382814555665357223152748825578252067467022584596535276756605993288308912312350527224502558200183851657741041430979647107078538587988229815392685499230603326282089022050519800337684437051391213067703628185517306926936315368222583971015096316141219847848927536930551449240024852216400901562339307407324808172600095497173942138282998177674928246801188557404367264983744070745650716171125152595417145217947439506803735867356626214756986077092532770745911502931763626023566769700900880905482136930851904189158353127698901787138379936741341343529981104057619807243409076937485592828027616955264490432569187467016151203191958915959716083702230119315615151254131228561889397239233472993792806635436447282888791034472776391271336222951678968744923167972681193644666890819039715434057218943926546981413904259004987871353461512862136647752173344830769889913951797771632235410872621702437832955001818092911888658913560030777580865493982834013886038164093168394265626447605092712293270069326609126786514688162580866473629863375910818729023903446705507478167926153438930049844722001811687316986050587679422999356603916961770457859603637916973782163569901925095590515721746097486396204232848799513838577419124339139401910858077860448393583922567693415059134606290238053275882425969186626988830854374488062975675911255259296411345284027370602886735080820112691437212165827839037764783067116180023784793484364215908370637651692668560717463159387031297627951223813208707178433571928266183708314303093725129934777043064598562416727032551696208598338639454410429206140288431150582068333208039349078568793993438697024269672488797728828348293044301818828225929797734726950762340097989466639581222368649788833554677069019917450359835005659350486381888603214203383051736540337894917910162499967917802247384718528749592300420142818084741967897301383766999754335768233528112265843417662929902676832868486185270393077916295684040593837374430350351040834143155808094709337230598060452248497547998536024614754770800002849394869803953568508842683314532209431953970322545257101672804677367290907186890577200886371544953873224658966932710622886765753590642837708185889417390660491569560197784278993928515535215451246753855836665642373059847693059874573592303573941571941651160454476838760670791548944843274878546062238461606558070227867813971288180927836117571207489989042267328667114215080650141222311738194251215662695053757185536871027285439508280421698649974649643879584285784917331439701546295647822640319901748299328632453666647875382581468037460647058245672891415619378810716535005343508260907378071531387896575958526638881092922968545755242607675663863587908695239896412421016181044651534469588271181353255059543184230743182877176116369238276130111765363511994953021012464020610544281669496176180444290973017922100317609751614294317363326378031017949929416057101676670349077343786312371091552998745485930866786333544081417771538286356542486458605851987182936103336942969920712706486532769211218387259426531954755826210604952946277054814118577617775300006629652633555949815629671604225422565565660409000128751286920828421676599754640873295272499929934558764671188511946278821569598465922770427020153318581805336997112884063778981579870687475640565972174348950179221853143450552228588441091754444357636630049513810192817952972587394927586097953058130582133162877790994634185698023230028749180334478625699116006174027186923832668018813279184291079494187022617113253740170778592417189410055411163712813158390161080557618079670255606833043734573765605251275339190712912657606254646140326728621860809240938892387142730250188354701901768908424336640204471268702476869678544683310671308835590484649671485006181077908828949576461891446300575204783367101367224625448562536749629261521821315065108666548358749597162563560013290976087506842802634250713108095688870102968078604548222129502367725870683476350151642251478191041290366471148146589776149846401033104818849484318134275746500910694689115212260535865890016594830545033893688461023465526925092217677213466278246604980652232571800005312369256396083807403620880369863277767258308634485424510710154245690828148080891376881761496145171438062531951805030467707469623884856895976900025224028192598368457298456544040508282833894246684951723336269138269830271215655811016696203654709330276188166932595315287378231243310197953770908568046921023869550759333378377041528664196324814628162453818948577323820056470223878527730088096880275444410172134929194873766185374801274935382053796358833758934185788064154551035960861974414517710800121680037908220845380589997934232398729811393669912425491508416827360200881537332429302433985874377357828169892674588148304077477927917250557254444494087943166876936419115712791177712256302743729522570262775717636931088250586982153004221559210865412264422372734597260784115504473948210191969546526760001655759226361330563106315897232291812228175121568291778221832513743770567505850307066992621093906080900314314454242170234529782415225007984969615223852272393031370237969271657652341551091783289813903305719454474697563307739030904003140169408925465443868435870077566831829190179453598478391182300104178342507018507852674104568557841322261813662975540031275864031426227783505537998289263365598878775581680473073861552021665336753496274024664202866672945523376362453494898781915768655065607618576055771135089588405887215094679674036704218552078392978928631289047935249413739291635354396111208351123803200752596656282730940098871485952696277514662240456891209413367176895353973524916160319401740287789102356131581020780683068116251915972959678122795079306988181192927018834796387580066387018501808336143642141552692122148384972054835752152725316590796679558099795569895124175693103852863859662815019571775476318429651946798835710221593110226932291066335371391405088688189494724937725660937513333793950491108966473771286917690666801552942118366424124893621501989641815110757951390137904938850725463818961430299006259952203376336888424721487108241068466408411163284401984157199036541006646261415065160305748755504698665479873401607409649700736000132962074606951040120766371121357398483075797374314342276961586238662473179334160665063122299687281200955116377177990403168088122662481229188970737390021061101883613790771653389704202611125611291205042199544190691793528852951528770502224389986731414129117591444252883647396926083452816098663485983295863817572777385195329212587592573562423344389220579555598299243136159498758633458408610091587778576601754180458450453602889793397954805474766273610889727610314647662089496187141715896893615202110773821485363818763673891704583921678099697586811636208788647468154005960948551655382168778122264226515672582019619381855914211074997245777773802604827394781143752511209272271235885050614048524757441429435448107235127774057712135448534743382993149336852931940945354869453390611441273923061690231342280055480114978456879550886473182640804209864343137380084399393693196269654980497502082794198753254852189286966665778081911688180299498164007119191633986822434411018914810301440075057552294599858452572083409908862060314361823551095478870467553921205506602876855378494323614603003724585748392573217030043225499319665644606882646324634057269019852755253526220323619694391567255945195270562318955345650469002640698807173430923598328554268799723284624513189982658067256662878144964204043216430613821324738520834156166016443510679884509947862959205231660053348347986208815802079597576512573595729582239498055532708982614620025600391090124175074301214096066013794720460539159732432292617007556610641812106963217713485063111667344223775512218131292530456753327682436146038434712101757606827661799408020567064166804239377392589375372185732928015115076097187346829083892745008188450027115363095038905202271022547697632440679449675371813546536507850377623736417881229878345160336559550581617782027924496505949011681321684506578493307767481794058195596756849998034371113337215430234364038271580906715228316535634326576906948683323306174175691342412420785731017260931568614264864345192441584545448148562148522977255600767793439792639196875480665917981116336242420890755882910378591617226383527745433125794297689905504233743750418682094237619180705560966463777536096134955841086264276671940580080380486200351868708117158732790993227944154947284437140010681452658431007070777530915086087242480831234834383853688914945142197531546724014201128926372454924991849251433036438129006354342641509536475365550351959529500490593876393454226537411057012612741277103857409683976771008988348067720437688384604023279728739881815031394511703033830418551487592826774611283309410134785257773670876666625193792526773166943898217822944864303642473047715838207333899562994674157960585686735069492801912467890559154835237137213913906016049590183611984257679679143365606769653735614913005156231778723987451470555531079382345936567979511232184205803872189780564449699465957617627925913880835085709748681808401926105170157080410047499559012089124108087944353061833094290087512875953951421235584011824367025322405580397129760615327465519137316265169405451700290774453313493648810925065661009294596290893421622849496102836202002286312540801225853558924114383929579617089864529697865335730381186110729842320602915329093477537203023947098462397537346226496044469301611438995902824116928865408871273672308223518177241008472129251325339919656888899099641189671463812828350520113448962407641963931639734947779673246493386568507272769578497559995892137035443651442299991810696669525247529748105708789139846402659040953487896460766125998847104709805945568140834088206436409050912587078251346913688293598994459679449471172058153598584598200870370521941978213563276867054444098924420191615801531522791619745110028866273355747193278104971967909798013460256770885387358973110604131205342283069725117829910095801578223982111280172663617388973763231255719947849415609323848836221097820472010003594750780774608672899092016930586540524849439278712756200417931026367190271614531505141366319310167198838428395058682854000927276360229028244639024580956135055605896762038364355909536996371740497467251153393273345181567090842165962631711649087197165716579539366422148565598462688934657653399060450133497369617581760033475691201394088505781768075391133491053850774725262109609711956344677350152507907188727223905660047952861331552802852076758938119470177970755762589181600562212671394543762701750292909561771732019450972989455232739867119158111502424782773160432877932722596538924823274090402319664244227298446113851828740307467820292466789730462719057497461787597721266952466441527272910506677514614175941967455066514260972824370081199232858524881313629424075607865363818698399117723163336235514761914798391698842157468886992192526723041918747609717902500160306486487716484432112352066312587709754363647166487055244060800123347965535745538622389192122636198342454767503899870988956318872125215902291950040683776176456125286632010327255937513256442364108002595049023971966513016171115849028203521610958087717505317343885283076681322845107748816124637474586078213835398422053455108836261880495268808929565267929036178600869231163254229408633658930974661752734530922356845527362738241469993924206040185045075578513693936040533980950323831187094784507880357010097497977854654420539929152978859064954732200149429424246204117281629151499242443414396721925311383830203543785017590428893058684316197212681342065016361492285961971808635283234930287275964215347731113093340009600329924215812990613703091877174154023355947830400530060138599950324589485990713977594322807904413121801756554708148676641357080814753009932089431802702499024519396561160471624962614661384316561092543013353495147520768031270890081006576686673597837174382255926769085671728894190073270455752335647986241084189093982211435199167073492998403997620944047572917865092138566674430949964589550459248008728121378925726939438230277454882204936261453720898499182009840060984989854980954321024465650559966821706684298047597569788767311680433709491113775837866085566901422712954710641600618567569235976628832706525187776088949987994939645241547097891591692363305157617782012377807013080187472418882444763478161930478957665309127374348332672839728007451228427381395572848737807022947812008952795687469703045690699196846869557008304955748721029649980419234346509323916850845417518048943328125266406400053868327435457478437752094329790076453584758258495132357005328461223800902314407803096813298795124097475988784151838333101324827216053744951275605293179962539068871561567441360237464229439186778879764800025378982833500389841734582890543211198603672255088334628215712976352996981776328534243634843054269782505895654351387117336643927755390525390961176930692995533117733688783968866600941195078610373931984885640037809827064107753566246274055060759759541904088097370946726364452318766028128562906214641409683713119858202761284375150514678357612538241260650543027974167434911628648386932767090192361865548667762898031617599167309276352757644130654710990585552533953398875593873369757949497873878585643069425653653188391129427226455692251848191581090356859968105547962756550760404742107439701199720918460698804073723468688663824152593956933590612414723548390949509225053220724679840191248856264427129171952172138028686189232874738182826325076326714033507532414888199837420879329933709491469522297299408705605906303206117075011088581238078956267913800337259531576668151202516421256365945219361733918342980376154383719150750263743196323675534724995023531138397999854383027160419594873523034690183705748006284015242469702327411233475205529957420189593642694235994534456055786042583325130020707713176213606297509558566276624690267846938491335169706031743080035513602750048378559917008143494665800812431702798782468237013247147256257373758593421221196995271947664420362248786248430647753672152228036248591555219779078867959368455462393164962919839862142700967418260926402898627983255710370973732218040787766360107623446373390738850988856258608831590605994856639709362761159370534058614337957178900038387631491497820704475799192904329918138474120031019465574125047321015794129896783360793156197014110547055890993260954628769562980424946361287679250848828295725329169833328922398643035486352921172472521010756195701299098652262167983500886154479073391719517668899747262459710337213369106364679692830201064833647939091839459304697983253689024985370944126596203023803570987829101444277720455568290358880429616784918090643032935695109128612603465256767606187018541710645201465346142006146742685925759051620652505727865356611055051435246950243168070512716494281354853726448527203459713520257680502426857458344648721675823087865902068187993279269104816404584147974744151761031607110487753058556427499730039614155368181197677959561586307939913517269499718473797461332194440285499455556383134504841282686806126357801888702632908630140757285326552690371542182594436355423692676849313176940645725584520164065838907407242624058144545324396866689581123167504639313320573661358066718286413166321237320942860651908808258979087265828276589578095636117757972012661407510857394364958106506063703403166569984126286699901865458606003214855075232661456012247356428900212058982082842360614051210403791219434046735023932506052298923203124828953129816844628404682574118442506823099102432810455403829790903354054520158498731756652694442426236463328833252325568516565543865828806984858155970190583244069772535083705438930989340594484276023740737998807593999611791514074878417691167590617769194607965278853079837508813845378232298477024860939751145138757223983442425467210997852362132666574701952345767571390615101356537885458975414496417071152867402880511625088686844147198053584840344797945929589666494785061418558491313465132752231796805829627625124445678354589812749061626809687164455395145378491535231028528572607041176052328338288047661863279613430623707175428512999596537986079691697781138997352392136227721650446040755016660822631616867517252947542728116826090540805256203457538836674303704864829704832050886803704528962323510382177427959395977859694303164377203909246688282427885058618608722806316955035227132463455165585320461936608599355299880088706073513542054284192068643766075246731335350320490321577633821422288168790762159778681967745579263141500852665730099211584601270891760277939875345268636779054768378555602065755266071125346073883634595995482320438375946794562694559178380228178736689551061398438776902398631979286793210495205559609650626222516478025686657568688840947054149585815907845042790376418144243880169463866329004412781996190406304206246903383366319072777220281191138403431458447861611990345398712285451435812824667176658566417993713142129335595016987103379881761853655346347526551692088123582386614809753272073995488511941567569988278003949129407019926605240435156573440303318059949617488705959023770692854620275159827963037366104349368001063842650088410590026753282532768303459323178269552739275571755828644446470361265567126380630665062428438062256439503797291142014096894635159450021218777651416837234105551922194146266047111797561642873266431962736510181964925636159129408257044413098481434362718594954660436436054643653653645340454448627151899378971208161639970666148711358873344667967233484955993883494209736116975073538605200702073460213610012426644874634282816465248289721209413202402761082896244224311776142016902938274757664954122497231129874188172157464429012483405644229782917838749057779824498638138407615202069619614713577435677181234187907603470069223474420504004875368449153412405685152014506721500040393038954387774715661588858507997107593010766258292040215919701423662943723425982786821664613240316337194788512181979515783108841988234553200192862563129891612191105605511250027572627336263853958479468787782003533838469834343733149671556055848075404742395167850447090319416631574284990150822969193845142619585033724909727980452009668753217139408239597348209428091953981735226434430639085962254299170985366026332070069801699491721348821153796109817991742970004039384958375895504181593337405081264019160852814234209262232238360963175678782733818131606304734576843173501497469472470080312545107982994444952794229084084361789854592101793712598179059661431144693593597079704453368595721607429690159361777099312584420824631589712022559094685642754528868643272065036948567599076701994030457936537410735088010794663044947601960149986083896275158979803215233750254367177094156625363865581858462750419231634747851168294902156842663144628857482556251190265276472295618105221178039568840062076100785637205751189588935998101288900928250582755856463851751419762065854811374367622435170540396475686325387886215580070794722903660375223965637582899901642453218238524952598981360452054080218350608410736859472542155310214635007342627727062344712396740314105639271482232785092441701960907937082307127876369911536367099693287001046225867986013461687682432483577520937675892494910885539430654427991806227197854512399055936972563892459348759844764078079319821648768104861779017066572392448679897064151776730274961258103292513370882799008836324289581063398016164861633757618505775634206486690294344456676618748593522553542945599952631087194069048348452959570333499924324931457486584401350681548318800128950485191310437692183273184917895646845181008393407238193184895895332044243280048049968110469903646829868358440723968344425481201284615415659126300646049622183061684557252410284147671994165086058934416310845731857387056635808031704584115815027612840705809172223610822288552303250603453353358078806383361696859122646781849592309402065222536397846005136637307251684743690897991304907161254258758976185426343207764988055465679500285669872279100729671466981625504023571069747079730307179869735014449983066789073668244091551740809957519765235526446128365901802979461572562017270338287038064568969260789065842147588181222340216057369659092575640040733992243383618410103851992705425891807972024207713644445932367578949769711629421564237796462949796684677673995120865158999258980223110763318536169716532738075132028123374553391045959571539867457149698643376213871746281908369228542155643308572234714320826767628309258260029691566370106497212546512572169942271547480600708839862245181083871799971158990658424885455007972577249273064234186674236306557725817566549408582191907542491112314184065006553191463773957247323693097856370701997749136022341216596974377880198929261773314480686674191169639825420462612850029255187371132903404331100915523358551616594884109971014225185445611202050970103022595952224701854776628676201945934044837799501856299350081829099091410025841722584732663041344444969585952212953462705013426442127107588498008692614696130685167300708241570733353158454397683153189291432565555968671909585405704655684472487737721326125626568888001497743212953672216262858313275341587271698739635657031776574482021467722153547236893102603847563933653765583846872639854322811912284995428788354574158761981715998302605017773577952738894505145866828332687707528714447029948646979666016252608604476010270755408118345921145275558266450170089376574359174695738787044458267951319333889394036735650677741599848183289278301405124353929791032520349922619978259208361229809528777320919733366091339615795069929832992188569560333423009784693615420842876410693699617765467781410389743196193451550481509496834418757100386243863121658545525639883471381689079007059003745874965896843049208363081178086962772587085048471720308128838654456127563642701328123507601317808129361903629860854286093221727652610724372484247727754538728751744112959896915060966854595272422532168007238121981747761634704645584385801609482797280283899392859911375115642104874341480806808892414191594635945569417351522314929212266704447041048881552480202987818368929387775258698838517526995521705614522283701127429037824281672403776981977310984255642325688893333619794658890159079128073842592115164678444348385325506705131928824897935005614359249614227690950487065374862754960675310147999603609071329751004843379874786704103091609475375430536345836057874302761313828938276211925437013306017538619881261287627032079033835625854786794652874651613463586145548784158975900596428707723037029150554108730836442598333917553451812689518888339951057317484035600353269752671968307717854983708872448839694237151123458240089110846620091491268137349395645192872641247360574591310549324133295121588832843120111416845825849552100612251449674688885168254954236145072756167157482810961237699867252587786497101531484816585214788556817602482650627882202416344382694669768671213392686155480038795468748779369343912746405191402400513387196044697778771344043257962402548570258022710782166014884298110555652770532989422006751344104643005578494176839503084139066837133062105499099750429364430103120751692390923163973207023012543204004704841712445239360407945140005668506448476214948096826447799169963450845687206062833686473152010489713926637333910693684863449063849931453391098240052061228057247181877458916452252584089217178225856610877544706992920564651832518906630735397015328829843793449237082711230197633858862756305096727955616773989657354454965990117994275099502401362174399777229999390569680420486036565184044667104596151075500531162423435903209251262731005787509913380435729644653772040794507723922469052185897522685811880100237176515894486766586685454492219398960107440987031834802227457331215499832213143928360724843559779734708797880503385662413913375243030208070187099828877453796620744612383637629460387964478794516915898691849190797966129948781335050697181568318722445058222399302250367650204948192177641121000105400595312729396329269560299723603454994774819551082611179284330971150021154617959020580533420060046015547721852746451944863534084686298260048785190398468456578348092120263846325198412426886296028615824526249602417171860697597573278951608157861270863717592338412499172403091917231322229475129941639744953659545122221118828455281169913604343842121299107166987468136843412808697379404561825965575390794963486907522381637781851868753735830253181634383180756114039852776384344229767570967854936918143642760024230701948450987373134192715669519966798936446767489913566360696409053726813035047650033626885723829916953798205128032015852957944434128628930880454786902066351616141160459339068330524304349842973682512188598341412570817613403573131380437585308110950607849267041935849066059107101483933882661476931730150598144405456203784838283193740722169208762286269430518640971044582216034820316828658794248827126475659109385186773887520424746131642254360145717966096681261671607201714656752346429943198684553157264885960670366867949491970057576642822543107122628954506564775877480237317409429325664822262139698646846874624173878595440717135635896644806913904729143445857923610360816085812915440725077984073072867220165437728958757441610055198873496484123252254962095805204572885434091362404977756685231098253330641976281166638317408616426381386644179367516551428513767015423047783989719525624696382545677634245840638874786718532859205873193710201400077090117546617717409391186653240037672429486093040996253244288539797989691467175933721943086607255264289471970982121776868543955081304626502275974517154931894749530431110895355969825072854070780910529626551482726559915812058465159687010038809002416740125975738060775706223005507804802763455102712652610367826722755679804756564311583514822256618451568690246564190424425700265750728191562981700478950375377441810822944777040701689632094899214347833758119441467919998925787547672433253095759101247869404172258678161686241273701133315745734770193847651584514439316924459421835648378657762727613373449436823497182985630008275992231132725884084408771226734718675550173834789506907443422543646899389420145957871028013426970549716484520680546190885042892408225735584786320597575936521627660821354591009280686023757853474894962953891666751806524674620243020085810191447569626163625743000411795992614917050882525327894133835220903817207449545396823604540269619932831692826166680578628100970747092852300996259523006420000466322483868473120850206062166145730605088705651619350214903799166902334883696450889742492061316344098379533977733804823674046658604506426778072240816947282720381824947182774932690404795403970329378309657574470302170087869952496143804076558617547890981776856148738540489979784314884814563411057023965165246238065746522378286726544690092260394859103011520091241527584580637763679820095875062643437585013544241218389812236305428543774215249010928874634107262700684995728705921818442448077691625847631917727434853630860058053511436007791864179128212430970625671946357648313355681935896477467162187499171785685123648998318304829501095262498960139307037432600388756706654417040746978601466681175869274305942064742729176294340182301094188233023984986739867138620544435362656658069346850083782287988531988772545072127412602430076698686856156016570584254692547646749804597828387237957806151992339498150851233885963779044784985857974467570325833815735646725841208500281145182238305835295056616665295297196155690620357895198727259357851426530253266792762379904065450343946616804978606536614370653091166492954411617906985991604920856709288816818430263229782792434377628163725227379411223064788430936253279115423940816613977813074829523030989210732467924053639006088757025537598534403651560191561162029985625551899869957357607845217229873232569957800644547684805540344997730038429363949174817555137662008829616372128788057570410040468858078809569755263861678555104085669036138306322921927334271455413748210218373435427238609865049315978827978899495919700001600334310977179622347589292469779877910765548329600749247642204045297454108683860852437128180415379503149767990477432764852300056353650612958132937125196476182265540597923763987609406170582234823456558528469525185523568666016104732088241592251967717166024183957312554412348015020765674491646517413540486263424749221959845292339014948773101803294951709676616636689034803524510278777252364000219391582893838299417714169163171575733251478991479156429648647908504673489006209253954081450923837009094258676628372084642392811404803215350797642206039474413476667241248142571301586197908039257859136494177312285275499479585396726256800959027031298453136997589042752003606875852285058732576677246558692098581511398874470415085656857102994900497048946051244793045541779885448121286066350311178524906690207190975982722144829250099788122441832851466401900147740589136287673988628364144675262558857045531261677949540606057736784934379382071864157722515772596704577632072132539449211149294611379066696843443337027208486492214314313463737633373910029321976688999587433312062960313921463133572567656212756607793487650624519999709787287299444888338158183817436316049548215030889108193871824996996034123525767524468364096571412564410439332908940605977308341029473834464358131618813404833255720587632239408911652131181671774863567731447484544331043714020005826213100558539296818490525644832754783908572188851077065555892647169226075619523194691089120070978040293536025476369494132050441059344356795834768384481547878499094613757879937044852115638288253205179972075336595526758209935621025642386881763553172244147891875320995566116434439169329595727991201788391904619976230346885899022579047279427455861471116261473017658824854553532735118778207947322267970712941863396535181310413592951079434406036328574986362518382709401894140836016197083656446842490284944189559126269411404817474077199068066088261759145638131431573650742847997337815109917749289181497356733325993403303646136780082364739152521715401056705480741657894182071616064475184749791301690339695430688888689036490378141519554902050165177529110497936201270271027950941325942602571248147567102259939699977198406881979654545666209884099444248470478379794086071350938144668930431611128754741377127296966851239944695421956365439496403036462891745434989451866274598494647231707641820664251377123310131754108440635702238097261721400011778567514575842930947694562249800670530938783173651561604857091109932533546346666822700750190565849083462148883740065883261102159747068824246239888920264427899548039255489139137853271044641078324419615651785144975204583644889188143409958735754490634131787387936757363077939999098572720248674625650827460784590360017412065591503794973157254769483168129287553749506402035940930125439392662504399501317132481080181568062914010064467039002897330362989085046055300142118600412309178132557974067561015884311413609913302768666091562313645270376564909175425936303418001490953294089248792038918909182697098056478975950432027175051127544177153450861020266291685541040497139560824879823478312913058802826299727948605149473983785677997372564547480247061717548716120396716003006757989191863315094521465026300342102560305453917795835052022431211910276285581992370204216855615898170339649293764970773817004424956436856193860369544046194969282802379358321551413183653737820994032876477816820793884024430338286794830609211496531242630699913270242170322297112719196181370271333239416721684679318588237765239490943362816388617276625058914872441068065279490799636577809705314672190074782179637212959584779545994685164668020694181731407960692818927120870027705531470113305343794553341284417093982024096023896795004463045490342087832864498552668351268232815431092097473741794686714539964194545936749591868474120984334655465411260487686403719248759794610921599349561569874475847030516293936995145231030496407529758067686849512747823604224319265644075332715446677898770011614348525273198810998278261558738240070447666111682146070500489388849603778878487134527327774499826572393209730790515051252235666692982779475386245050560379335104628186473644005173488834043716602462856212345573388937013714135428790532143157558654370651822208283832358022708946321959799796431283269147059057044885330700013417807211437526612618267972173540804190256348636101578910697508176480132247608610813689249696593362606811825863921187817537722215185216565581809487251846907415928992675347727593106207967479390584041365041847411195540490921944097137465785310586700216116161759585260770038164584501086994695736374732367811380248244001719846782938212195452086850167704235403843240036573230556283218970749631350453931494020806968494912873899345130438578653056322927727932343491653595588598806363388553348283592989610420099879768389800315960237096767547783370516175022697170931847227383747417623236223986170753949296146177633003338644950101955030509761641146422551611531542920525381276487272108017756760471106744849121522371867057284923615524098157312132956522478897546882308700755072494029155381727965907352029679610285049288182313594320903195208043971709713877089135034381518472590046764654489781930856614977751902119998837306504521281304319155442173221954843572521741861937618775887415281144302490133986118270987991817925208767367628762793291110072375168485710430564031665231169633463953413485498875782070751868867706724470866901428683397894428493888179659255049762095409028171371538087374742515850749787709232346436293508906510783798887057583605806888563773387332937347163700283455055561744124056794864095172732423702886548002491689435832367013901738462632865109662544028751836593858769939645440806648078314434852412924969409982078135086241978943345636139504688126510073341620457047181028187332676651625345084983850806470377241055805600859038613979656742038020313005778214337025781182858487917870194856858365738386865938932181141288489073863284771873843897088468683623500813650432204008367530717771442677180210876502176827848892312615333583058728502230769299036303814417341132234587543449688168798295275340513485567239903534886300003478877354610586704983304294715142871435675630028163812879767616667535590101774442485781220921001167709541354782694823658195292116374894071958676091716536170112909701610037299916962354978703258764308630079891815778637412792867239442825081932065531076617013617225463178386144278611313772869528253212646400899966882636411468277481831227189355693264059896334557208173341041168421910315427939182084761551840735200987524252956371669099166636059829050653518685080204030917892891143473862230622080135774289001571869235104185406592669725764309417273162937752419225049074363437362020825047903453480905408354483078428076367744419256181931929857387078363649391434635794021835775815774065067517943462896576858463598751683833582727217164904231982183022778767602475424207724272759764779248454742085437605194522824706853518168086635605566229626719279900800905406405875845844391203377470694167388684653448374596646239425010838937665634805327991540768316265542307497452976177092891916279627588529131909282836334235209243617995524613243388628713361687460426846255480080519646890077257051262684135601055375611319766004597408298954271125993711270173072669386294244597630565017182538504075260998822964941980226653523228327090501097183633064124521289246035203269237936818875913850631047159583734974896544310113404482118844812217802335272329246512248448395655235091493896695339705986788933877027709573034143486492385339352420961584314127753426289282415536028038677463223132840770316395737303688621734785300778294732699592918216840669177183287940931871683499766024811047769481748626221243710759551566260951459434603718411758317723090734113680557539918527770481959636686940985141905918403576536126467545890950759321085177194126804158585509626194400086328817100174708476946596110309153374150135421323703524058929404416863829377386264057824819993295038392612414652618285575574212358203299492983783350129795838740322522738230698372419556903935972318981541575750108640502105240593206356363938083134053288269714780724222215199628684515417663857352435666066823238525247838934772489217425913576969283479067316806844621812686993775099735880226841773286978885163562425748024891808083116961240201806409541254022201076496210355136831821770159877073567966887251208878166782959712020197056789039008171883823730248976297106783644871426003362120502663710489698948304881449300246139760201446313646221496674530397981395335152867076681563980419101067047757077712636640269355600599059908817094239771607288159214624947500149012348716351922885150308996555721758242982368692188622562046623970866676140050294275595176058444269900147420919940812610871257694715185874009614118403259763403018645751626551130601730671550735782577975199338072404969246202611622758106789985832579540067373285993244148552441786857631615748574461041686054563374912840192344938242334012697381544105895059254299711264484064071979051863491373122810605026784404398353593048772265399316855626382658546878081507012116669564297263649495617303578177362175396482187881984354851174510841397274231336609256459536309720719299514901984563175915210626322290558459158287382458507076370277975687852391240970334912945648373398270458054744129782260046082043554227705214275972772186049285161550176083979988777002749274149931834794357756678300110971496702162855907471585760439555526353971133830801133186398526242942042228512047768622050320601559437309858830522678642751784384342074665737316007926962541097667877556745850355671887029523857205170719402094723357022588661970401277987943728110596324530816422882338273059406802427299253937957161159647029903258398898539489272176215947626810502744786700784575584421171442413485140338211619796486109408169492324765111267736142812077071043349686379519182691015246379644436372663989489661325031951506266876934675786141944044633847023452905357612945143201397301284698432160530004768659640185691421459379083456692164572756854670579539168235193728158755734174818844000270705456561390216993338233703629159186659526579881865462017958861046849552127065648667322359524329789524212311430685119441821136247434941839851301627116692581566502184480419604174639875535793745565231967753941337350686011105407925976786337342225873650776953095562330989005089765401973617323402554082515915488022602889897515238375951754638013827423058300561548872326752022014734607799996185435684633424863168690191527335044964324183468631404984760598420850139321405609131029844689324938128466511563009197929944128167642336191923641113341016042211361285447259063527746793616307776146710286243468975370345715306601915932807155031281228463818995844301069093392926724232246965339362807709975456573555905703472555066677970819508876296603694282230918089986599950095983241580271700512605092289062390417774342912018970216250682217542267302201980651667372953118817788057920823353148584110779858585853217435149854741012638173229195814755097461005151581239389942446507157482842261521829533512916508949406398308692547479841494988834367244419810430517406346773764359226739100491663495984097022997950900969053416532319498241218201914897369090284787634248215391136452614505626356342225865069604524706858999864315970690981738874337358019793481208288034069782432522029744760381213591464674643568126681437315713614403984191555179079413908962792704815257302488036520326601426193439321291002140961131023615451841819554910737759724999426871157071100588811324550963779899271702486147965737909720827302913758727326138199741071248303429463213453922428987151142136381162863004643600722220976832519454203715380478861136851872488405395162319695344107192913308679762380316035229699264529582051617917071903842685494619409471641427865265465505721032082455781424881004401834156077025290070585872036574219567483519414177009849642028949481458072977723077911653053256493554963443375793248004085573092525648653072390656238638685523080682085359172177854430410956839155827205876112419882729261231482625369665557661454487778715352999800017877702482361110859956980178402078026981202470810611984060472307313389919904798182501653542664744407105730780837774322993763030924373362739176798685169850840799358568396360375668876736255671621953641437949249343572838963235508579605761378462004079019383026354086128387970546018441715383566033889647328717732382905642068238506630802976204918545814324536755151728440717851306303247399654375818533840458089541319599806955382909871364371740148663379872595294436445482506914889665991012712279382395569648402704061699848807242862770408337616821701248136080004030235191883543821021577400046900527369512675784112816244371070861888233328022119802205763286513774937100223210696602476514123140939008432748666499689019610208784059744016032296039825066038015355591931469233600245810296174531926328392441019501068611306668413040263904841531283373811182892688426704172421190434250248219739347346314877219508507927680035107384861153329093360130502631442161929490061579706399417710810655158102186980412960093028952274912093352374776779995659139704787711437695072148008319350020495041453908951896641024440843058268689134905807980188641608531706870304283292594434737883345395054880431055474324033001538282637742650886223419761383790920086947554857715172600703217247823107724260879181394332689392842078852721117341500232846937701352575552933585320159144559073134602638789524035822107868400106549378411639764780496701193312347219489033785759291614196831083651193547352076023046666078164523357798292504255224070622195868083154622559549683108831926709964141584159678860584504173602916610731451153837183514096951989073957875433319604721621763626390772888617166256874980947220761841431491817804389023224891325112500538494548713962940778587959345950786632404884294281852887954339008298279776116494983957775314738352203465346065251485702132017879664974497348048583517610854480453905854575077455710331158771380765088019814549639288825241802755098657388360151069580532335286889867240160768927171804881405339354433544982027839599081809347140182873065558250093046861936020609297676143007960369977075209732759298382790129700547538943031517931826599257044714995705918186871674108710434495872951657007306885128654255816067018932919363143931335384847974041693010698602978501896539876159061037899419713161327830403649356215954145565919694709327496792437294388464774979594109088210470753689525754136372249446928159246471157698275545746226215838004817424426027234818318493123176050482991455663525568522092981897716968167642646681207748165111229477938271629208998343817799164812807768720157313342245519099980765715397343843960401498614692223086719341802990266645326200355017590296988097190712846238158018386453829661195905524011543702670066762162492554045190485162340689284284337365961313130389833965449797464856080238741419015215992039981978394476200049851900247158541431957270803831754087064668805016933703607913205249699913742367469856283172869473918776668190534312768744160379382131257437320332819723424721788123429315708112980696210652385971497194602209418064321590002855215437520426942845415139075399543826639742770456769542268232474340911482988261722469647673861214878788512322835675492674533364582132670237913591916966498719109965421986735098238804895336674182351578165609972866777328648108735656579056578131008733757274279996014122821151762364230356865176361486684202000150709357676877541936608325511310774130756284530806486300566461117507433033986359442489851258350097098581721820519607021431064055931259106009755049376006883534420799698383816814693372210638181954850144576501726626524948404632844169161510558543152414521412078653025803742034874081901638264980613591593168059100852074481235333561982900024586415846761535146037679826513497681621434320071674064424920999530874292036797637345971876407067035513991545274512410369011462157947895576063475758408324923283615360048657999575478730356268748832733347053600166482151843974645195397804082620053862789366389278879563588069751182609719271647964637181401713857954435718440528353976427483533174551140869263147001832543329049448170450940363837101188742504408355699416230789025056948315098555535763673732476049435436906272216928104698788627569715672074415629518408490889312685075107149096098936974688593471403353334990709144123061442728594481719723462457166720998559885751317000342046156710328640429258109157397108087148731497083897902151512537181150340012955803554256319581056623270377976532706505539577104308911517063165011724075925210145655452890416588063545608996686125343441681991276225908560104913104892423660427793168107723099462886847822082153245698311664451918688879966594378686317979164743328649820710781297409750097055073791066030123025359645347599803552480908003873009344035615524055443415801485895431092461123934975927242425521945748181721872007865718470430219230109761870992826853022178346416473645579343302137968540064303047303951306297620172009373414654552816050546006929556500229992725902951318866688151804502134126307831978419138153027499325301117611635688713581927217593357460702430175829418133711411583897202604933319260816159719672134406843690496998169133127963914520647112536630908251434821747343055344553942414971936100909341281602274451227731458454010622078827092115589224915510606179251348744513342496452382448113027436463618228646602579466203338547403951697503812913617806015111532824438401060362090418024051506030625490574725963411457724969257725961130563763397497778968305670718370935547633848319546407167218362485449890686339510071658448660123901589222218920644857099658430224447387512537034436859510178928352084008737495376712886675665588110785705572584944151763056665958252203777174362176571561482977214232227911621167645450265674541673713541397622320052772446517879571739193809840213803130868903289366161091355790185700128779425410029575492726919371798015365280935231724440589838872501488055964428070196375155971004873667479021116256416181623954466616892560634305356866123605771467501236173974978060271722723401371334200003457516162994091238793697016855741346800935169707876203502237814333401083840767552840028196943616399770766266528505512070711607020977361335650042624564928190695957921849231913571371775902103783162158358443050695748505867382886270826549692894650196965629514542327338085987549035852473361407368405660285941039541244048007755939592672936103195424884348778278681438959991337193436328394780385964592156191055663930306841329339728646939201531207599914650494801852593908303390417014796589433865671043949984011220170562555529674987332842986452897201050042241054425888675157372800371886122039833375124643617385588986929416360956131167805312307905040534598784208593855511703517995103556433748509471761153372326867346509021645907064417741169917858997782457246328560921900602427674527229293614484689463010027773416862148110974299272176757155110680802620783251211036150756063958544087637496974100459739484236807361720053306061035044422525462534471190019630309938437149210059545415091749658295277662253865113164959049384872184305849114485371878070981484686014141420754270041866548957680665414574142722385457977325132347511031963526652030201072312849896578148541852260656511591959406504124887475127299699043475645195859861045921241948139456662087308295111702472852434024760067252447881070066316597542395640677497513469933842587891963994059510774217382145346441800275396976403224401871368900139729854821692819126481021407690122787450321463363001865456232243383743853791600946576113499853046772930148521137223251641413856277478079233963044207613147946359159052246066936620340477889224709275624353255226417856096776883961285405004593816630362149051287352573241083900800449018774276398603970303046742304046675244330927534577101584890543485849046113710261995207193098200212396291213109400758302705260497965723340512399597773598804256278964057489073466199969354871258575563269213349289932038618163738259665471944975273468738992777444220748872149300684018984229403584438878147909152480148396831485366423268663641090317300807413270239394590842106575181839434131988159902915447209257201559258315854574474504570868058184796261932498372551965752061908270655471783703527081301894218646401367771965579522104371415045882143557142495598001823123665447129131445486048791414338720563887667573899187819386827192544605162967200174252637206068026479772822522439300678831202224556313943886154008635447040974721199530892761530884681834387057465207937392703885283726454472698328536464001718315401363334360097215878858748968742447901140063955921742066721848843839883453370801662757676853166382729550290721451457923277256037424881451883950369386962440094511158096365733072094709548211842751074840170611643729778913733187390808081650328513665546256741666904030700379167160638941764886515957186695975485506014222972886666456556178860270559432941328743461265047037430764246994854672032769471068727619236753965838994767174938600133825584566752856138499303121273976807766536223943191806219310396023530518895161943966375845604244690025804529375192435117115188188426829819710815732618003954309402992586172928698112597255310920481995015219556694344060413462593099549670688561217968693348971516075112052527775641671256653763258157254492964769886171176930357864731725802782917923397678239907675562894258520834068220101439709494416230273086433030640159071431687154921448930799715988288903538671020257853005148247139399039010249691167613355103658020943369590688324751292339908664267967444242183230759005287816630021942559744792700018818477013547259539646732308545653177647849912236201769421126877584632467809040494214612927459044233642233260345866424537833859035266641054268759113219763401345581024506344005321471953774815402242357849131680325794597047767144798461416981371901389742098752562050713419227996464533034854562483185364310034464426081580165501957460022973759140780382258106378253595931001654507995864777687090220730465036802382744321394640721288169728570185661392530102372242216579422194557091028911285805245572399226399112643766089544805822848316563887655250639943046029242406602423344631565554614428404771713837052419805100723927690690188520540095623000431740588975774591153575850827667794143430760005325708385848100139753183985971458440212608320702851051421484043572893620253818238675131497309759534768547375815968270683722571506480596028130800631760409157234168164998517113662266753547858601831771632702499670787634615760307406654990946962655765138208156624087586161384027765603188739238553571539978175688398801045652453214278617521311711037016654688719228543347893191177342933501749640894025873400463510476152805988712472822641318299411209235317299699905762781084386581056225781998875093999502548261771609992560399724942837960304501811101310917981714418576577454606261451157071102762326431928691241937041624351400438528799620967339734224498257992361816795584072474228328451842827968088402219697451960024116933306489321835848450133632085188668796551865707039192625786023517823026314526223453088485029014698564914022116062183474880112847587749948958437468637496033559077779896678770506011869526237573142362980673746042801327551127550094103244217606604368371239401159513765577295953913057501168741613143048821700674458876776686097204506187751957599025589641793282054783811725422289231840049894342159090247573743530097226312615615996181063817405901090638003421674134523887274793965659718601318030272712256328376903077472922527770056841756743077556505251430509649607040168975113380409446861542932412968430713234534243105904837747455672434768668938941047530803559118819951418339789524606667937307521641890417533308995971592031311026945587777015862281125661734080185547459828001061992297900722544930825482122638739932078073023453341343224443512384677702680284011837573385806004890973740132744846910883980222079795887983130356075442104366041574103831065299052216143996946743037085951297149101439709138748793574409218499273448247019709962876134228604976097625639936989383182404002612662739616894389617707557984501748809963789580715253818848229918376150799650734174271532134060382257934046750896067781583508949667388172770950172783495425964784962419020425375554310439049989218580526558082993896223546593996557571307082214878770776137908459283415794655491604133022392598422947384439167605490002906717932143133255741895815237061342803889692676967215362690801294353703936648870169466422571134749614303973166109131134342275830893476276903968110333902585676349425644639341134089809138590084611176395406910955251058556975819152664082096005304817459514602412011840271825939096504382314115051902051195047165782243880264258127920621132094402480978901746365926395961938774979448915424577081074912078362300546241146357813817667957642329734222685362352496892552560107358456727020320690519175367397118486500464504063258230844365123175714199195827830988331929493691125545596559152093746954530708794556163028765561715473335516057094778332639975067029298687173438045921747674776010361264668150039277469353574969696209526602570934669851551842070496107356528138933427764435361477745848566390429181380996516037661358901668684788516757510472547885227934137408206947179842992314155835210539304607730713904931083686832296522635011555035856482998842870903594541162517758465553226591947238990511439356073895396960175596222665617152840630353857683469822445664365502971703440077559932271394284860075433218541307205179547356701405823869982696435515305984234513740720437287623185589932126998204701110921136335785916807974503430965438981073652859478272977158538796968434149238273090453640172481853556360947384613348533855186669720597029288886443380844695242101037709941420265567311973288130473444018904476658720236133067383496230567537733561925742435986114023684148636024365488316682269514231136140566634474634588389367373599355721461177982056652259249937444558131935689766371249121410599005723877255527043013737498720451295932075778081415260473145540244426384276552563822640432544896224751981195369499153807904046071005420998866578479555070044919001769901266301310423378079738258727097059712081942899197539877444398658343097231637614702259117327007720598275775189254672354135111794091580943001247615024548755854482970125506263132868658679922747172442766790323070917269043299941642282618942447848021280781621291502850841124702813576708343125511787750428654364875234077041481680429257602801186648693086471569254257631831694961270665216954563941244838593702955665377237636228368684399350905014789050583508477221398578902801770178543921535848908307412691437644006929027161716437767928182655025716868697562530724825512442462793930307762593062003483955300134507000976266931927360167947564388617355201814497346440090122052857074440784091963773551180677877726537683939875883082868967215652164948758065216335087107119890972432437379799901827313201013802731998199534188412009481339351793152906282550265451195232618044868333773516578860665561369223368529327018593309814555068794932134313448228636818713512380885734472861993033491623404775150800269409563616801548812881497135433964363758187159993535988386135325094276115679564323398960269928469370618949653839687976508652105840717115595558193482345869843445336509633621269403113917845424434879901333174991239767115211918953104722680311867947686243888356520915853925405452582809601225046588471414463162730892601079569749894788383568751614778558838617036235420867085107150612055881268550571547418311723440725200936077959684427137846195608805665860562631824140237880085073115857538529627861203405584712342522513450380322770943788405881716882498189811899845328817188532161875106170550568269265846824712324638026326286367937394423047473787798721852279119943965591402465002843553727724344260889708223344916403411565407806833466164152417653150780384482469015283784453324724617202544533003548428023485182930121292903707972985164600930139502799915329181814274449399422324509503150583519702235204697011363151363353176079927131136030784362504856485398933809499166764288289729960830614459055097799623502069748790585633640609229316318965006339508596439136210176405112071839778146190495965378959037562312183217183177117853305054489283704559275736782063081490486472607764295988830085109660944457072505421126092921447178269846716486245571984284270234786532277786853570717482948861920670919913056507132388985511622001500575187420616259970871858184881765681813239102481618105725107603513193595609554565085055086516999844959415173638320860871140817500614037903638721854241072382575791522415309617077381763167333068342105909014261597731108134252884671778962085093427671273599570863053602252048800820059996471988295769984363335158243412112665508379007326916634500798700395548638797266111283060273704455320915158226538112263518369178366038489030043990849799720974599471712296858030078938974192772682829780054940641910373598233094729677148430546900465502974080367516144949468247036698238872012525565747341035665675746202069934402239320006842458059640634783144372045834856799647320591370739499952810223829537043463363848797531578303302579379209406546277239717315587365690426820426978421287757833024975994062196003741997825294918204760845132717946617417276861794618291651234094502356581429517171899916635580781077700410287201673958021778539445581397450277338411291605577706461975024329766065103706349983791722444338247810393862195939649978790500034219948730908390156108577377728141929084079671763521564822096551292710029296893207679428464582000479345559739973737906399826612955427551527148315234527091085638764077042014539366367513104237909174734474665651533720305454929952642006921456251942030611508843479349291673152008262638070164074393197184539541947524032727725923477357679399868043080499696199383887588400722477847672710278302834387267409056971647117816968456070142265240486854925031097589572640096503654714402447983299165865515410142571720720957875742366758458732645249455736803879398719988421539545072270095254931197023275063948760226237774727998246803662113069804527067256188990720526396713676333718179112252960550180732088057558010598270734916974614336555682540783502264919955215004477602233465680545955496003782600298528793064390788525103324455792297711996696792557404337858199520006757930681397798317875683037694513054382399826222963256028483817187618176632771330215101877324092662000056981264989014693378756455316308461512868090897574353924297947161522918073508702464415252273094304348612231934965364247839351163061505430337939564813747883871133842001945391474596134577021166982215645983343040798940174681367783118230297272500854363690815042582324160587757151277518051603983287409230094482042711450122884081762789567566800388782395748135521710031568493040165559452532226945318214080846481587354115279573297089449963026793477244710325806141755385891660014902720680862103299654681557275145533798756326872701243932089887515431142348809044068457716077908210971384318634299044292104313954359399207372155089893925277801428296997029306101562594821199328286739584135970097671670512072407009552117805233962233384345549472209805593328430232892836658027416813867687662827264882213299443755269641370958469970570196850773190609801897729250277819163625675317454663657906856860454819519353428616634784639136930047217450739230456747153999469807319203712453878749535284286571112561214427958036571202282892828576743151038427123123351845731255922077169503891079568089108941855509414879767377623954914639189678908323651581810845108405686849899791249276392648746418347954138976120814874685262233275626279429646602403786150919080099266062380415463976159299757745846784111146509596792218889064136561500778100130928001749187348041850849253256280956195396880141877230108274660830360096527979161789374050403074134005856502469259915468130161889810336344551720193873607996216928981717507477796594852749505285592137075240978842193936255291637577929174523484387739138711242343388108136795773186714421027807322627269012957367113286853485572059556070498116742228906344430856686521256465567503107951391802124311770246117372074669165990536931876109890184607984533695231804850119339769579827453529180140834687152621234111329376129002638508291832325890334361176682423763234568890594755617644551674920296699002660424908424040782385520975404642736787070068214547887176508848631876798376947943495286266213439168079366212206116650582855567978698313950816126463300097488434023430871721777802300163755063736822094753075156602954757985190661317614963165963475046368169054004885194939241628974539420158179518959902977385015540747245278433011564904413098669104872683662616015912094491864891443780162812973638789547112210271528570636057084034683723247333268955135142592726769798829929826537753029397400927151318813855744556449496337268353529576006420560439508764060621830960509411524021874641199571563727539619204048099365801693394525993522074981346382736053467169444380291963916078348823237727138040201837415507737552382922773297066477196808001782567421343245492366440667943364125998673586628921784368591205652594492830964810774943087308569048411647145920636109226429088712563935891707773518010371721370897759286371886802088020579540324549161764555037782304791245721210591916550846108817327206720115847127020421566810751458168447344924704076231165263097987357530630872296881706765740262113381269760453116369609589911804419345048940304943854744890396366461337105788288633236021537378271130353841167097225694506279665974651446693614941914836469750271254599263663662233984376459005245851212312839089158233283964423102466165031871220220535058953095196168878010880895986529600875580795446830971602819276898594059290857233867707658164368981682705913672666833351457647905948585241281141595015945567996853165497321673644237976073861255391043865098478636186199595803402442242286242831110932073491838120010269627106850463233136993562219470048231171427541713512229953483145049638172321273128011576599818325046089127003245924804707081700380328560395516237794947463920371281567174505358755693868071536448954950865826284278420514267373562603142204518024150095550946637431732079694657172856596632287053267336366097969557327943746721608400032079033632437226244471132723090411291297488086641504284593436752296399025582727548118801785664140695592692778963603428694168804202186478337731597173210538058034345487627720224495157036462152462846705245815733284048232165874724957677778079884396829731594279358753098543077244947288379305205001284139850352739723286819194594887041378806134846754049529588703154237711553406960017664270424708636281860895721007730617226566648488920503036230414773801747542322377759806735677306271918421303434475050496043499081904241635893306492808549331289278418404250323516027748981860535930589255589790749602358157939637322894642630722578236895789198137940131027208075713872557396807920122607086301399795230963368048791026308345122328084360663385293503469732829765812145845684011899296613763072799533462252277768224294519758046096098960153019331717939165184615730768300480010828525885860076287694254793749659231828466555502315004167071420635648324953067483804175567523203957708149904997476156944876275254275976566555136859621137605461005064898774936294344356900051507917021699311592063630396927076481061512724898511036829364774985291486565065157482148030567374498505470934078371961318364241633806288896561360328295303251468333740781353358835146886562137202896216279793662110201842702763907377827025334814644482612404860812437047418925979087253752145059464171996000051108232681527739790220414479936199487645424836752149157560972896452413162039532004154130752563953123761931398566762008702125875264938782684848442800788798812314032421156797104824574458115232212642760660876585333719406962022482446869971241663825975518531530634766821629791569130574566397359905006972091841402818334413305999472299258848612248424026523875166103109419884196594661034531752671786266306000144107328608039887353737531552476295847962823479904093760059623523317570662520158702901258662649762731227918132511295760465939756531848139382440751485940073700880143228526333162306369011482431027004572402776728413389746263142203165356254487981801545428457178409911344047984521603394058363243670401282429364764927411844423704262866977870154799593396062336502550710418776757123932330950402574926338560319466648611450340770530170089520574512279549776868665544525171702216283240726178824998198185000461449377701413043834060334657558696476855223694348254310228923671401820327770454071243522770492683262189757773887786921988108514065378243762758112653118532489207228593653821703912358288004720960829524986906078101954116448603287270014118979220576313719861063430566259261392701650308687552512412867286488036986971265931921278479925594368889197975745383125111007333487515578628420867340812559745522976887339694865265805962684792783754748847725703757817622060524122650312853700882078696866454172524212415101134012574469443674041258429526788215550639190750961068475689367728954237151252633406247871529163057907804721463470297532363920411409781499336497353282595092801759500181643472953785476083355263498652655606522317405388700582656390874867552856010563182256626453894388683810657477764289204360303067857574395082097231547847096670999505695977758805885745466269066388711165639972388935643118104851968537776755504159518723299103000795907707558889198216136026450907699685794317666129560579142310123919868974664809618982735506356019831669550538222147153144001101976645087891110302437894962634324644556766301562384838158739958509760136284029881532863746423068416076815523738698813769401353098442601141860234210575552755626677721063784063534299325740925538860273397152492175740068387763060607672631836887034118382043135581172405296054714987579890235177815383097275781615263846234376216691557262690477959604637787779213382316032431384792102230766086646414223731838543157518843098402898354401880489121737923750718636577319928003175233821141289578037812392965818701475643454285553856167426884908535624648919415414595937721543267144994569732612832348864029237520176020249866095533946026889727202781549551200928913913968642227539159447190528819579994153652451041002035506128235116050017553593799032886916191151110012113220808387090743696461376856776074642183227671215104026300535215178332952952559061376830675121305848505249938316733814106873322692220924630233485800231260268556900438832101152521777481554010935252098673231791941337952758479007697008799913114629778154918931539775237243501845293882361029210753672998310236716757084618428765964852899386170632662640462813593592660273629125679692039844446395587159486381363704492171901817934160389857108596623685242328375290476912466819523311578099603305785152084669347413996363027502672349729742201712141274008902155321865166494649857615390752808741159596334307266193951435019025205765428700138062501259489336602128262122261056330592491189626062736440584325541964532520730784451074862298851389344255928828774278184877908160267873892344526380456056241438102161391936231421507999727686622626451003226565601376795593148079922260076345472500733652035415508821914632491628485108806649836155039979185292098992470748404689385159599596024345528726281889377920935088381188539265271803133240989882880652353356691756144882257374718834872054581194993582012786018725234466157378959720977196835990708269711703540786134724881208663115851428700709868568877980007496540917537051035691928448696021708589057199555751928377831664730005409139161812847052229533976810455023665897031051597519734915290171065598732110784247991199092472580433120600669142972233367356964000477745002133945054848125877331359789276718201615699208355975249283005975798867315980903625633956397168279934373144765127102850553065526669080545560681520231044040388001885318516070136433726136037237769041142296785090850448222821262528290251698993000151264579202814909296639124670562515081247404247949858944550172602515022024050263767574237710855203781089368580122641513126102196989696518748284296815439554737991126282908365527330428649142438334040602302906226500718160702089722924217258143590944096402249817217045808964365066144375775916589272461591500948392902673838183644633889709867087408207456916502093076817227105639525442930238118862787412723704637376938089460919940261683608826295954410719886701328773815420803174155237224002249409513990049281769354379997702495244005392332521723656761406670607544028503656200470529773575155818574304381576017060753149228028147802048659865102666048790812502828273640618778779510576784633226216800222998099126768045100994929297268785649144792607266793266261079617544931239951416482797083747844961208224213587799149216962700142336775557752458649290373636837767667083346673506443328263772149159509009706756623530955711947402909357773656617726593833080590525218352703978357729742987628923351116651468236899249054597380452266673919015527320631480018951600863232051355850493247132847208501523093779250109632572008508365200085589692186851649833806116363646993474698807218885547983320328500785225005252401212636285597224698474712029923313642680167535224135482974539299710373251445133525907550174823329220335745856661487241115658067044788750408616888955928120339796786540049222913570083212297670969512159594925022807379523735759546324342410428219851775353505436205432502618797617343471789668030322617197533115115901151390326907955654605554973357664872824537539744580218647188540013527624772569154695463694543548621580174347017288525943512757384995799450063664592788047818232262689225388583253896137297122830557738165873943957201486769844941916110795386961871079498910377711852501308343991836982959879707651328378760387752922048198078553800994772710640663692252020490519102116066388237853466252747260930105860482484875266643912738555595861480363500050213957831869191085614040961945817747417267323638374920438906332531641124791966804918090912073142136866785711376648389897849038920904217133149721131408427097794546655138568976853649184805830332536183600449788038237272281408923749414553632270707800072616991117391185847773660501620012358713439972526861696300756183650127626089559079833238455074604080114650018801394149485130774114110957180934124899561010648098529052465425273765382956436348586363744267049233573550140307258732470178773747347717712335533509620250140615208611781308416508339304440781418646720917746426787680158644050698423670639796774722113116979793698869510813594963260228573184992182442142547539200729871391825300776616478222814371230974715287829786842960443577966384859723957073753474390006105158959255249664698727958445379961964716504070504500867589505771119417057734704546322343882830510121153323865125392320581129535766502791795241113770667881169549932132698212805048589508032894708356511958929137447206148593689206134596347264301478637798864751393783033533505876583182250997301615352765748587878606253290531017202649440020214593255422076833551183753944342543546441995356916078147894809111636064664443789117820529786499891009087863976579040284310189087275649108974514424487137780590528128733103461157366927214309499925028824351787256258025380678654349002571461152597428613590744296110816824379790721873726709587846567739638154829263894305199712025751105492373132558273060066060530657431374047406932222911977182600243252086190092810271326791475109785053981785473071208410280396977879198952071040342455068531931151055661570122378874580274717316327061903526891329838445195715609526127670351457174259357472152563838455570714273354125780990982703186190082560693480196145313809471625591448225330417368839894093820288256405842268855281097639693093657274667926088882547498993389853015173646245662618628752399829236890667210167045898752176981423489709540507015693927122728224960893970832624211954198183642691003758862752951482707533334100447451892863094695033163455383306185659582924445546335871141272339489199322043927187142344908072486336837007368654044676628937105917937785995281737461407384865616488496171857038788338010363531322823820333547548231792000300494246039127768463515377459198454131272207982290284149002725772043125409747015096749006427599860977986365846394911372635159794673595362447915331187758549296750901784678400096552888170254852469389617751800541986561189183957561819070860291080771155610222259868885778546051164356909719636698847167547795810004992533737529216196054968864157789243638978830374296791330449903458645768716370224528313364780922170271652811939175533398115837518797149051376917295594108249683034251145860897236033805131874039660742880116327411937821982060415285122095801211245206076984722765171856205076251131835909953830121556282265815813125270589803601817943337879518627460700316328352562595660714460760755856643226532657198423618285641719348050549074192049806075825181136158820594800801087568512086070737428892018498211559680991158094729757957403933811922455878845985161698971215041618634451298426981708650814839579159205526633258791139597923452283515635092506225257878454416597539170382893972464172231600746039800200335045277295736673234525807844764486622157709428446226594742553844761013527074446425321978691376248251384970298709098960930533607534219149908259329805957268848070353678445870805624843451702855408740402914232586958102175285458227334433433200361806557534547076514312635938518139348372893491450137668185805250515842742087650115577220444269842189451522392168438125981327195638061790806592552684416945459173805910707006449230408939158230612906297367781516852785921778324226243080221752118758730328349568432433702094297984121993743755301235312491839310302521876555017268704645271354009939482904548286725911674509344513061053968281263394025845467027361383079083260531406536520961620688576065206404542554757480445530577206476001882285130960685906047258096925066163593962726860567782690658466864120732941975494592365406276078989313773999640136204269493918113670962726320766687088732905598870469228913638331838595667924714124208266935166404849493613577973490990013276480369765145442328781631299706707467800145181582802107158000839442996931368123178982543976771762368536933585258709623133668492737179778053744499091339774468792984746447154092618044282524757693325505801033884054544681893428817730546671099326734340402446247108989019916302460064112533923326294641312833136330547085585446098134818744672913012924938463693423418417075721925164429206533958791307435518533980816429589037095379832776426388042559405587164438745627742420109001556840125967750919258659330898872166040123690733392123490835137257845348422752163769761164182263510981665225065540575288221849684916721992985564857000231722057622310828555369875346134921854966296036999811133860729066610346676332746319051623106048508791766647900987017725414848814852387511837009746665775995201569945191543831426920532911447911517829379684088909256785286275689551392954242643270967427008606553071738456280868824135244831906337140229193553615233949195055750167644745013105831092623843454606964049869531462434712641401394496433672554179476833059080487615492805196484422310808449362368493741281687058047112977641234799862392900514015297527985217170388191100735626519085158540046241802199793301951721272331371083418636733051756018742942843560196914762875924336988786189246985046345010401503980568107029828434818292966121855552351016177831686022388591543815208035201773660579656758679229219261392334396056308712806409456195456848188017423054688574286085468234864454874711306995289671649168487989308552072202400742147766820882407211779736278871767023529591329715125955913400961597523876971322977771060935340919147083844439181120158361967078511920256845525758265397262173382447591106997679931740399357774028538177130052416811582933964229200114715791501814767694423795987937787787254882486180923885772512795068933108066895134609451527322092786606673817407790647547591891385711683423859082383171714021337060797917386848170652937333958594217791319184015408252169892990308409275516076161000966917729393271011695375463768720944792320201171844540306015517576385084927358261019373518128582654811482614987388573081963174923250635616419698317720554119844949548322647510926919680593946654385496045376517560531725272774555469875290959486576719025852093197229808201257343338528295119804450584634966030565067704655421176067533779126007021040965526185066708870511324803204463419266155680877160093518051860187298688475037900551566308979739203732198887318812830790440355214473743543583162752140689578976940325701230027146342730574327791201365398550114218321158171581807368556590640694523273183602078838302516573158502607821886121857464897702594334994681472248692426428020263047353270131853335629664451180318772333167030209650894816227399014664133375741336226864911548211589718840494939193639281789282487542408681430127038667967588755157576384003527383153451845537019263159269994367170379765243923384933567627496086528206737705012489208905462918877016272559968311037565584062794563144869564550027892455961050134505694214338331866905647973063552588221657065536834457544438424717038189387762105351347199737532201453586665035018769767681367005278796766170783750956541019660709741448218715847825923856915337177414681761701356848335289595774386153394168333274578329830655173952714956225385652077729634740317462132832037891074693115776847016125979955513958491537518166324187423312801917076270412355658595489410021606122845786882982065576358491080500258876009667505220777016062777784886717515457312106068304322808019010678885949492798309477249942390268016311249445943282860284701195942094251902549540047969749327213197119288499921336916431054370181967724203604918743437419967663076774744974047684452315056537885929714391033817607023425969100694628875766166983395985937230413334603968036095084837215014037584845665099606467011483403290136353291198261363065592111042221681791638057541641046310133755386514129478118755329880210990327806295501975155577271381168135267011679684500889048707713256468922481312022725573568096754475699157489312338201069998288060509787238143098805215080077299381864151689116550147228948614777749797043442956850422999373882834475973057343318230460207089568977992025118309461627169776939232310321711999729430123143801099891488060840117675065262856826380908505223737758969250043774126581014842679331536306289837294197114004825416985435568677430115884956335948239178735654490900814817739990932807786544945824556680553821979184431301263613736106974941585207922897361588990622268471053906693668063732605198958903277291265248382549221905693529071008150163488208569066706072071938087431403722459342967971305013059404483325586001717736563828236873879445943776887858076955755829032511322850660523395430790232017039390816876905500948483949233419218112282173732235962421208013139409593429615314249323212433263797196682987817592495962519415865871151499950590144419640147392324449489525950054234279625785505624689781215451333734915559174555249182345215313756411143626404234305595610281738506621461906325804881660292298128787201479933526720576285836775913564276820603604047976685582155903615091278833382545584385349579771874591561703795099774205031264691877106297166181365793752198907845970696041193096359457646550035373221177985470086578659718894415502393678382405221527338763814957297218087272395469796152653755006510570447551750639998811276680740354465712217248828178065137832249223500615180807007548452706619048258503457652330411111714656140172777822512634381301441897840844426497275055715614525240674395249936821641531611709781630581354050551842932898403460419602667916278384134737134320286387173353415008878058284446867079692829629024569268595814742975826851965580355159578615002559231335756111525781021964783075342413146789381269946320503147411571283569962516685268786067199439482546155106150520252413964913312631211579321211112223518447889445174357188058504540847218875160438217512014839531494198615273303738533172760666470627854666170606549186379824320436953068321110021792144310670364084530026801426420611022310543923392407247043605618608727188723287459617197741278528936049419739721131823239148129267107967100025992982685400128080291791305186071644189782925572070852237049443825073343062934685983750904423707417259717757689277128811297044629175150054959552490548271844048109071610261823717713186303970722713873898446263709371191039401394849729812604085748620168031652038033595388665314960895042880145459696472499171932048220679092125754470044275854487311084864478676795464818920334447406172528963966390178930035043763099617715825600116637614752681101544947116794324341958073805960401802623656267617760390797288258363281581548238194309222468166042403603393151259658856778806088349998248830562103784825032871577767166693925919242539667574508052735581949073171269232168298676361407599871570395406270503675606688200137527231156124554744796702436512350995432687454322257018900009916938785678021191492309912353270298379788237465435046858360870861262546348868248753570832606403827013662128848476790500523661676657364946948409002037718291014570468369480209147643744749491037303645999562775858212374153730836873572611015703154226038383822475359545638274441609494752572556906168856725766746561432524414155946718780353842408472132500892126743537834175869243318947645429202495478194019915932888368897473514321231527309488794478501709485101328226776144885499530046179771676625479189249818124822424483732324234171999373764952401421937081611409092730183379805816348748658729571799809357066126926261428158645312574088149734074106405719867832697693175597025399861731796761844707100540137405652951038576567944090352393376950085523085137703449053459420963204564138805252278184171594856423423418850088422721867215877638847831763607313102859971823840716710755286520892984381781051292490296862257215515515185593189349431164391897598303672450805113337575054485673764258824562141377987465567815424123565598750151455088806145851540107996943074230596779320749128236649159933766645665193413124990266594545087519350789381739203737420499678297901426605899113339977514421201999647081602424993199970342736202000197668929985371563151104184714543200866315787365069692460207345917762217570223704035130786056199408754985848504283571783091087511728209658400960515521052409122429250111960985653979155873945829279154206620805958962557422913236994171093305356479303484011788627092293817676363512839227559874792572255067647790786005834835881887691040125849236847933392881131233171177322137754097339864964367010164126852615186030787814442736601204609621864951787779173083367080210408929595984244760305218548895090460677404846261721910346921015454191095079847528173617832515227936703939783445716357647741147349287817278913232996458814712433603166913891641496170601486375430749261003765055279091960156642734266863021023152397346222394313166366044801145770900404486449165959519487313673537229773204498136671082123244993393906087983417394279806187819169202009219582974555519711993020083541987906695683603615554846214954804132851006408611839655381451795618348811368970161740394900447396100585474957517326905174334485260659115420869036919479210828123793364681606497649628756389506773274440109107912340968225779195543590163824607297627680081471366880102690863847030244150139734377687467692149715690373144662880328166322242767812527113637856428098906699607926620837029100889926526091702615027242663269371194104715439911255995673498967715557912578203138357085864324186729384027549533234942695713848414487154455416955375958054251309352245280312601437022132218575180491243122181669997725206874798839059984803685457165010817391219072132532826386456836934913791548940677381509600300623539328028424813334184353026804721187584108694416322601105646690442621245849665057890781230219767330364714930693395424533504803189859342794118015742258221906831777880976313702983759011048681095989536609583809458815319381865181182991443048560539055644929424228406999109899888268777299053279759501200732966949807729201263130077986195863033822553094180944785200579933156255235913209473357463438474491705508946425051297346636593363905797934865799483600195954893630972102657554979297772598259247735216092423383103987485047055215419520541405530448570661684681655453810640678694101941618076054364408910363535071433628700901788024909443959480431379740514814596649632426343958786100846798061677349436778863498351527803005813619614378134246400505118159683027275539851359439967820346849143059595394542705927387797474758685056078023992711584910266999345479986554525985726502829403631070127625229799680957653303851594925739791020830759681324339296007050164177772884303807383390097724666681032254560716472643347494546182146518800303038663358846605406575931935899559402036999135253749445431185381888435223365832575407448811035401346889586192929036674038732544830629813192561619553780721589868687220100175422254477665571995775402332891152924757674685292711739492110333974296001186846365613323074958056706667227370497727438022674373579965959399360819880265315878982753198213016964413761057571712795537312340650790931452851383053811094211238058698687332274899414527243790601903538062767077923103505334218361395967384182042629893213494199384185115967058258351050251456198975777079845080572823293295280264613343399652309258046300506884670038011106209556098346458114738065125968999649357953014443020361964667009863594938129845889587325421775975990505086810695965399901484770299892629946792348474843343177540040511792265790687227003640398933020292994016884465033172260825144631214300157029621480809082742475573705931478553834934587694734100941144133637934177357364063298493636503336659592528494991472079012317088471303175828732740071406756731915837355889172255224497430599739446070125352418014581037623777046617857878585712226457643923701682171242340804980090603066327795481423899891819629393376275520328720093439493662962943487273065512970472210010132153662574201706405723772258727973505469913741748764985032511589688736397049948497629417299446772230271391394558951548364761451001631652347210085624282500160561443763368422959902730522652714900886602061517060375302119501236936536890898923854102672476455301450748401874466538507579954255293951077472918228999989860342888179931759619425100457081879139497630957454873253690667488575624039122251901239555530283920328826692808848588517639536061433176286527663864298837985445556670417029980028101368845508259712034524649765169214432679727666113829374509177802297597098540440935662791543377252224181301596730312817477189460760884285327869229493059924455119574659778495154372164015554507673439953048602050540612372241639716419032931801397932918107851907452454948253637793690434762088636173036333470096682467679277782368790596285621308483984447174581903144409141410148855047647214266228983427501925841188329408990072935182397087273369050569032084246327485472138126311046540918245567912359378272051430800244422199972254484286389996261904223195819760383570444318650884128671135783003206195970097503334350024221461646805772725200788755519860267311618322586861814707963147439723340137104380184571864069917582899162400082969900872094157923215077986260435440167419145628697713423439055134847354925907010317201262157156477206501757525553413910204535223533833779939117099228535599300870924583071375886157948723339570081116721641335545943741193892386518723779229109136953474766969417067462514464772223774320560407960083058090203708261055653779459104077234129559962283835234599419697531221615815424754265205468398228579393856326354453623567030080505651670253635062556481221135762054852271850799374439006945042884060649003344052857828513210181937516108482381203450922091365514307633446039238116172289637173923840657016273758777718315100195511581253300563648456782828659700122310256283783753591372098414709373560565654967368319846565972025276965878765856869145598076348766732393226171447962098815393391054924955641639339217914443008506949449561649536151675784280866501717339829746016014386685003057673772760192112569610514366708203501866792652309687856038352449143840449936494125758340739763777377772132974934103347955303732915404980508564315679293624423948997849086228030816807678697674918117610871711184718426361333103865733537930052587793521936099125124715836888315428925002101832477654158466464298792333228671717512740123236130199625527042521486297639568709587519260352250139914207991103462295369834253443337460939435030265965610580026906802455500507813130056830132064525202775195034344577635182104862809645183944806237168013245561649500937305691200772476051364612533654732972460001808378649852815591538162293662314847079911499795498829099269035679619731698061992287000308090991835043130807083170929881896741645508865009529828209686378351860217757682335781662294152567961850314625024614315559294104259486123629099856840721629909063607639440480925276106299377161409409113388182519816149140635326007942410482311330518085510915937915680335451586874383308943901132152212947310722380764278699743547439039940168142466060127940709961988169311133324434542242762131600396499658108826194555275489219785810422888307838013977878422899103681040035424589325996243190794762701242021479271122961174489370524458632383167235331909394553820705490998667582997550087506016560111050744693735241675452153720965835453689460223158186685996261030255947521688303015560212564352887873562123141394803798629799112559650492381754464963929075990407039232334442779052083536612130347593409213883361945289869594565928719690691184303363496397742007854346434845607129866788981060323849004650058519533551326872666173768766059344119981397220562012047653115702004499477065004038763371666750704788145668356855686420775080149453463276716765695485223341018997937626553855794410943604436318037726883303412458897179606459727128295955577777171988247763060714327937020729775452463549527087772050714556182243757791881960116098531750077528922246235278824104524201024735290847776858475263720350104228668652406032891272293162417033601428394305598704207218787561318653133022600618454913118047264972237503987232830416284019650885852737781320620091120523217654300765899137715226258874850140121977885681227677219014192162036382454778293167431466881122509935379820246367535292736939208724093598152746309193520373597222274684357146460815359101201308967018030051376375951603451239181835547361827225297694141232667121785123070933200004288878278036080009210249232288310586365071422570377673378532450669438799917343246731778434169711136881493697655660024993654973507517647749281739405786853591168769065353363039417910861714861750184460454385178810930026613289262593305450060270920036764723757546806398976935201701491253890281463024184787485902856680508916758953216329200836485563494978547494541866692521977892398776136641098451487232215368024904383837005816990718684598753699575620767457925596650471961567892982284505886772682754578568754246870642519568669989925070852965267813706130689393429836814206600183733571562213004758016889200520710030160911825705054314115500806153307245125862402706144680266624134050863071499073213373195753133126348476109667631160676770081143520248898576183178004692809571830518346878968107087974828473795801334460387863583299115637646064715042554263149831299087836767167709065606995590807561225823004234551096915212215151599661291184516851520306372903570209950060250626304490347161690579571680912832703065046965937596805994425546097379550952980853064899074979551207613756116553293261387793716242508077528968312666991375977104546404560137738488543075797681521310883474859799826355779791902273221214554976822205112721221478608545999650167578502223021562851481371125034770950305580746577291356902120844955594827250847467996036487369786379752987921438253920358127877016116159736022076292895304607701919682533716833793513554457231063985358367988660179490195017057494971448062796279475686872865042775892665168225922298241309174411640228351254404041465330679606950092519329661949067626612895132315919838788058394352082678750277164013389853050096800162346411111454305854323177497487838311664377297662959338806354630287070803128761186795301037279084024818739566130836956887977480161739178775411534526725369104999677841748899713791283386428974998873164647486733741918749627581129077405042332614581465781745363323772041173653504492102110642398814343581475604480286327282090905716716127922106371748034381311023768217611756081780772670085228843894200857727453852817951516739206546957388753400130182586044899621681804158878696340851406444614978718579691898201296456307271272705672473427433186964472026198051290953013606300556521961383832733230356818504542559017163510088524868041156911211284728029531459688134417754308783921857930922595823653982953327073382497736992432922072564638380862932179887546742372590367078127712065942296285101786041367784989393839515315154952723029611880948009509010712004500652900354116894903424783365600132398790355832184473924887438627616650632592939888592419575822769545525162342255342626734861637313397219675093107623284972981634276675413464413827163866468570626943818592666318325750891744548096377574328665394687879877411764092044753746266509696002125209793461877077248948302758030008853447470247003989568943043190969417975990824448004875822544426314201514175365302226038446801697945015644929340352301979694146637750613166751748007148936631007746565536069139512389792212823130501489460258208811223304716160796247527007325622618800182631929316070385432777675503413403091564258323925179664602244587665027558992337083988016592814716957635928543365497743105622256336308965966148005595976672669942699246990520317292933989734634647015569962305314347465265367873727196082448926005405132991389732204558644075989121750954049632712099601984932511166890711158247794666079267619798666807113244542934779254867603896757809828515306281373373978606382898524940216069311617419146538855171660700212473287028913542875872502849348906975301190335499115882410766301394836424648979212693374437685619765975127467504281286475767301597341736663226411488227252033726702656056081322681831567926236268566604099884642486093110394045426952005869339381349493135642152942901449864118585541219755311547211400065670680700480425055915931566614059492692321384478232609247292932113347390995656956893978626043070045367304043922998947768454567689346733389174432855272807346059987340655994426461195843778117813373338713816025504728791504328977660664499775401832881203418227527974523674134498693123449904574130533613370476223465665966194532794424322140751546685857417264396148303804154724501380963679804324871084250673336493627352686996646286296835749220035472574571133917509642087079815407319812794080924578843370589394258030862589705879196740218961550804227766115426142534162387879811834719804891127655535224442116083350401493736383312859531159194722252076347513094929731723574532677729398207827676026478028524781629345336786060076993664862888837087017700910019895259998617404523761763439394318542878830823938991358666296439524120944015953218274463178894500945060537911135611352546020949798861768963722201096936781607568644951190137336928743098248734459419388285185800752212672475024727814976670905163951628058009921311176978176523651351695441121100095426756517765857300012742109921932106759282437021990204644697973818617386614402342383628950749677854999595391092870318686934185926061241362388620282904036206509799846885724935756625419088540990860714396499225572438368926535608294952878109808215247643181019387002314419606677523927576752359010157140634014573418423024129781114991708898250958352999722602980706895477237625476131208531117531588717335515939119838383291535036165471977454671563260663273782735252047883204788513524935564729341272111562906433718110045818433618732741562132503120164687745520499465665934885353362637205414864113717913183407559293973420715670848438014043680814917398508281880856074402306619181722801425009034460296479470142507879276687812833490297736047878060545215769715352181011978040031428291863774973260499466560530911751516439273721138770790300495870504424771413606266078778159243951217102406057035728246433568375456765202829039382908086160084624077284958374469593143373086360510137930696088232179168675315348869850719072749939457622086109292047193891324235549890563116914222242590631113469557905026425934000032827801124120213590756210857205287124711602579455613792494819485287352829223754528468151569005740762631318322384871621882380476495934564276305865824529675913428311536287877145083341103632217771739222504595997182145518433801828949687900539645093621163360664762701029574106192013277636724258589606830703344179714026431411954790993359373654180354543206752655574002127731064693205550827278915148907822919377534196067197092203174166661762176249923811741703615512985275885852555853227287759447202494264851051626742236865154951464998065851146429528424843189207342169871557782525402336006517930863138701521982728855904880510976278883679495122064787774567101578980843887463774859400368632122927100950744300370542879679647027632994321656847007924935198308207927437228263533417114396166628606477535213888046601074424859512836995302931361437156278431634794592591462062820021814235609763318447880820849916541663807695954419302747026001943683098641363263601430786250281198705474127438800343159781486200089973661065495200542503447716617028464133101541298324461413302884955167935309083175455967210974521546149609762396504224283802779407297999194377449203701259900340164846456081715814815590373729838372997500714933631386581581349554514916341292027843399383335149844916876669062171324404697866490194125686205775599576949158437594230698107455463034260244260583913998300660519650534702081521280488247147149288083223087617543319450175935819919052408742579972009384279129078234209770718967352902467311433414157954762724340250982770331880255946799813051959325393866598858773419451209140996941342226272627841869183136592550815177807993773393354149971206949034824554254023947410414005989432497048808203713677972703533032297762092670189082614775681611578663117926950618512621211062073568083841019808222818214584654744320216487870839375581903501179308719269494469222082518912097886240623133215871253784564716120672401899297032421239241452031154239009025695587956287789668478033856306524177529413639587157568044351482160127799749830408914125583310132377925676465927789623651757391238477130665049722779455342149176757650508185507162338938930573483303183697316818404532415944941314813209149005945246297287346387409918604892967458979718252941895664686898100414276391490019069240617022356352070137260683709359289604249518114949807264514641679648620932242705027952327478152890696516075048225088606869623251468513105471902922387952709445609706714894858186290286785388404259079757790444309435281108283786404077081602620361346389933701890450338307976546218352367753568519913638613760740634016675752582139743812888693704911114737422447264842587574920987455453236928233343874483299072654418721968701815085247537953537442727258846306037654646160750998548738513843386719723504302509074315852458902990070673220566858963529912751971321431585960753323880923449159623888187192328519775495365212873745952911947861433653672041410325018919740212611382038335545399342997584935325881378343538465826822126846775593869141550333864964279351176785537786699561972634801957462235579274427621606260017440791212117275039856739075887587231414845149562587418567410276818916359361227174342362279648425476733136302713199684325690535252001134713151411073326690079368354537375948040521578130645491357791327669830729015276317456676629133847680874222758052351975803184215897511918498762117435548153940704892387370803442109373262726521839315213589118985898002456375324447671080932439307158656661200910270896274004878621160427965610587382310078749835270664945408157978118916929699843963103379352934263748902710000812452487793863632104599912258688757839191965276524393004601630951456612833537792693551785383743717344156332177407094012812739443223593193289012572568295409146316168451349785275296488181603267286989036393366496254358861050256076366047046492321774975207150101979777520894145918962012621158956761545616650343188609883480987704590270368741078978731683420415868175902031998080905001571124546080930735589666617041398435082332419732281668405474972115935850270398289793688737372797138770213507646380297917032579570139441205365444057307581992316485193660583178273661806482907109329993295490148252068715512271700933336811626996158141349367021811044545644165052727292320681436433254867729866374684057822556826622507138411592233585943466025513312356981057568633338195940725059294384537808563845094588494299018483139187055354658391952006350934016682190991132662134706917114775924278769359666908034923079306313610897950904184212902970407155657947858276854374684327469429008196761488277896458097747071434725640010648607546003979663771101750130836073179275056349874490645062735083687204773351994304784324113851770352701165866950730403882937320093499632018587665903167227701487787233029951689222440559854011175015319998793812299158598276223289490043498158225567742864974620652024831628380795703139293707142874938386271946138457038080012877594985445873709935845796691737085072704210434226799473036672022533354673679305184558696793293288367550147466687982165243249227891768470848065181968554862853464252804827899182672667992379540484657299798144770904790106108820122382636032346825203484007522317802137520742889912780310266037681602989583027726839835861230478527990802688097434891763494077100022399135076075386904801724418725875555120973445305113168955654258948229791599956001272843676946853756969675473373873542596623694617294817247957758898075309460409186177181801342259547687988719445010832034841289724538960721952892841317003729089169572771983234527942964444907151813146220717705993906196951899623637345090413365720302107705104263345190838943703042791756008657840514337036005130135275413010275865363402226043805942595484023448457698394344655360008137155712237835820242133314314719446489969447282507994479608827494876245131650136686663791043627461342025072043718655102021987007641816272899530587296729538425812974926981211264936094969520933572499036291785260907077772011296098375878494737071614834224008059301644031122020944350933443167739339330804817219769315426448641193124891640851676776023789516054951216292305959869406208539810259711732593713303548866902889301278161995700512298504856498617499424318664892089203160006648089897763204333226228571172645079569098446800817696070010710068797500394434038290588566413049714842712960555632568435994182729661609655630598437127687429005189400081460379195900749071289856146979377377195541530472035943995974926028951004884728093600951990387459281814035626641977798679496985747801317508302850716461950279737543964344234928384999599555265480802897779930732736274340683181113977240018201305118880969114912785955306774735587075576187603033604658001193590956025636319497947596212632197422867415582682787138559667435031079881256924793125679499242125701703317812796200994986480433626169485206807159504948967041349373697014403635243207440717440346528511024072520885691941995686634448052809142569218223749326887191149503667789813542310843478497067906339180284740245839698853845492601678011484353767984464368763115884600096980419395416444170543821404769988352346703021726323940739381132021621460595844402633299976578227204236664833402578024584510827066217347021785147607548981861043096856666813544097281819832955421625236672393657593841961554158879687809147836294113208106641105203556280680251850504522724131294866863800894873670107201240762019843626359011300695886899546063509128983107143096552549156292594436849711357658349098265298383989808797559471609430088929028624189464225537129627527868945070035200694439508758574740293463610631168095583862724927540279446374113917890756728704997239021097169910101814519425888947346337720205109712210194808315193152582876716742076799939077243665873141157916536483459009491393860435093013692703849859166545818974895165789320361276189833117047938249693129647523920696897407482341379762529105693885104789596820451173100081026171705226132092999617821482223931090576260555025072607794212920470342641312186377739808428594688405583489356232059846915520817335030563146259461453480784511095071594644964445703721060020778559641333736669729975716532335213107943696034386416377504502354577050783064729112812310527320456443732772202892092090551243225289982765418559100838465985647212450044908086171147770202219486110422177491334157631608120273072320137073936932375364979221005161192865234084611091253107052476428119545062684085415402393585393576759951705694243300892365526126309742366405793397711393878793647771684466970194366057277723142255637306599324309191016315244388471109121889926678849208063295708295802712806859808250679761682152387346626632249111340825176607399730915465558165460606528026329661149368934984199327386984464257646767341822004339815134540653256743398251278291572187661736370605598490355185052092015005007089121229869809879277641519563383150707525813088075443351435942277293229157786641583741154892102654573569633637646202082917362508785469905396537450141590023136236945700093093694543624048771116056898700049704335921840762884744773456349904891751982753256620235539256571268192478371490013488030933344010033455828964724506479516965589425864372470157407445779044769842458723079897974763808897052337390060259791215663878780423268998926670649303694980637657870460641144027701031400603941633589464181387644373590891378645669216261961083063904335553688737261672813949027171111894964026605901574930178630884569853555708265148516656001016935868430062930852932085628547470726742234923748855331368545226561504855797477350263103070813503142070057147229529559184235364860614046222159980399488911538191533781722433755197456734657292935391946552121406852381712051798000448808886970693279769052477385818990651433745685838767349440756828973025274585380269144402982522531331275217955351967968248519848511299044648278224622439289351482182392669460624449335491318007377633969678513111200882765227775681518948157880787094012431538244018928765978479760896479649334289964318394586207268068240633479815150311299859126515111784782711779101926218042005677737521527943844997995191762590958035221974335869997924973006529427270102477474624510375402041953640267172899626846560780225037629366200359316727021410433983388937811795588252789726987266505474611455865927672082074124723735729000125642831713541523089637387864633474089675093826213460970387212496354952592015034095287279803839996046119788875964427804299031735830277255499192363709229014513237441613701133997220399176163886083650550699078132645237289924896338840591376611964506558073564950516430406578497460904447018915552546087488537255342357224600092975279760647887764229943211927106980891944121954403403784186590856045021845210002944538945207005650117279422275591679783426116648981002193068752932134185288196482084995164851560220924463528469425049850855813617210499417207093155162264103298150655240119969609035745268838319339700162713515468764240406924147591452814383433313188280399360582136928250625308878343761858413498341057491885691295648200412596751142856299527417262325841186794858916631445386076106269147119427281144437052572485763069726317734236661727648787446204192056587115964653913790181725131603611393691348568278614937662617463373745716636835721804995062930493054267970617778317140678990940904531021717114285154934931834512908804844906221510077538928662329871029393933328295704683814078603103190936953026798020864484473006446737273110127640310638501454090285763215476290899567584779659860140223617282974934215072137358064263098569453326944602078535214860555225306933148743076123916865002890245808672810329894208897652825403205547783428246561232581045349487478894836306887135886167653087147977255623930237257140543494714027559633902864426602595896357449029174753560013508065784853478807497621644428689514795283558885291570442236415776673827143452801695869190145542353175904598795580335980854608349510033755434575927192928815211347991787409454513436643280950135416584320327983184241739686193756998801342127841899535729027465324617191877018729553269723290506739659202966095138073428568856162985767763754934644038186889533200487505361141018085841664047207162524769203831880358265235264539901819452245269946873045205221320659300111244389499055742894978066986045315311211932846652194267144472992184786100660913936479520237804652705840331136030674100678617573660957745557814297187881186548908383691523687257800796759065708380822785358552822455365567793093516655219224582914876405696477014626926459444031622065421671201238931424719319465787161624474056663872063992364036200194784479744085114890451571474843090499567945524998505827974323904654599530028746683912539869532380452399024836855695374027566074458888291039167917313198887175360678805779017769697563079227559222420658403689713998602213506966651309454092837804352433102705837468583985907840795786286451016130789457809863264018860075615296155964948384703486378720408327564363526415976290785262945112787540889997305210288923595777189752808452735046293134423180174969602071427063054179299998445339189166143972725244905643361531647068739615720708427736113438877848147545166127705741911358456323610012329054236698654697335142046298974864868543389849575878088133010439427675351545473769326016225242312193864322539280521336078114943417761726906281041286952438810425810585088668810823284544469621589563927048484078519105885453041146726970308957513225597549261656788043874166427475432547004578755920865521038833466398550890065291843359692784956148882519720049626950925097821360320141968547555327739810794085959907634997399887253410346342619951560149828221886306673207609061785374428952049010800157306868438775663071537901860256925667306204960447057950892401660944757735869154710903313260861858874935435465642212148043504892916312407691539386589026796911468574049639517946686703331428294015738208227421779225645131984254599362107240672524626605222697093253843780413759183790733789340546398120500046638190626949809424013568399965797506301336900773050755034286012255963432092835243881711512287259705671516065242125576007975558334700446988081439734727395306661664668490178447003138224529636709672595213303842789115427850616303500250762482380847691297679275048414119767701173407376438283880882580452557709849290061692684584493859951343278676493953742334853788670519289039703251017627577217537654478498870073649242810201004885072971415660968778596565695686306115257528450761786288516907958822989302746646772346159764634254863246937836336406370657102451156347079226261649934306524882014632289628390002169841119158154620816754780325613396947146983727347363058857247502657775751416856821852376834709219305708619264706622256233715982004745518222352462454556158318431442816189829904522989017926261827879831166464943616140202859247613969679084326457097979142486466911136125971644016339110500939186327972433806144621706510060982549388156785922275049268962062961695690471638893681598709895822583178128583291119826092375416662609032554106057897005825134819905581307171913436078440451682704640900347835331557157486952451061904099566941787064218405014078621221942965841905207504693453925230286751651409452131107330701998040564478154681064948557489461581265373846469840089272724243002751178985031836299965565019670940059047721903892718454599978347003145550281041075938380266813411218710512688071361668425020485482542628601085503904439669800505045577252137837551330922082337973799758913862101646515711733461031342656798585843497427491370676547981772336976788434855515770233574866130190459804617652879648848587160466424631318180753200135445668192716219275688684102861838668249623695087640999047006389104242892252810759684400742969820134414451088988774831050875657625291862963259381256606644108593158642967572576330505841149904737201242105254930029920424976683166641384600979436212656629761241529226412252500639828294436745645277382729077078360269826608268761118254882071390729771810119224887470330056662616929727372547743811597748937746369870436971720533742949095353264006579043836153551439483325319245260885043432844897397417276962266380290644870484426930049125804692062349761822679305698307629798027355161973750922027616106364233161027354890099468247921278021254257241396995654847907488255906726949186946931634302375681675825352008702389843457999952435467623444052685787208483785449300520634197915693284552304760552718430409892547824361035116807482826789653247693753613802302770577866040428255019831341702008606078245120093028315573264093682598635604991450003913521507541526009918867353727395625749966643483983603619044915479633464505657520519364008545032292412892636885521383705865902287981343167150415571438844015322234116276621011210423186568641736216530552100666138218516191232284162352737685681638029034775103961917064685842891491119430262331175453169415303378720751635770573870587374958677365016203715513609667619243607022126627030456273481737083027710080895615322127514066802814213149206198498906869486458647148385949919758908317835518586255405423383094759621508850216307010842829257268030530737343707177439214802086886978379256711453550583553856875836172873904082898539742520943502807899847488529202538179597691629562666801125780049854121813659192814622445930035424281510915106133860528035098494282866605720397781489383879982249690813250428216404548632608753860519639337506518390788280307681957991533909023949313283567592628148659765445416869543748183746862459880121362477902113421569258188143479144531496713427757578896597637352645877719281208658205916197303859993393545245966333377812015596587479281367741034580871313005123689083950324218119258297992365956501554399982150199407546975213165203198961426301556997974451711980713675534991083574469359715291522802523814966048952411208398851508856466214908580681732370283867066619013300057458763114065280170088712223911043029837570944256615671001698766467909937196738579813021595132019024414605074656813383949306325392439227443129019149028818773892155589349792374339734257797030414804467024310579467561501566491852058399838420508309017248070497856491862728126898851002267604448615659140177807736777810509625152217761090127330628296190321683197970785020986224410452439497965240174111466349974232651274776547152410311698547202708945683054652906573588013349453597177531643090510393751183611465323180394548551425681661730158280920921342704493537596094743625827855539527155659203215089106008787321381595248730685465984811505139465167474246971791212258763430102387840547618126188138774727309035344716766489940162980596403964536903674676939552095799866408676627258160614624319802606596114048849760757286082158335365776190077935563164139147457438392742366289222938236766945148320378363192127888456711352679090391923625532334057020022960702376234189225706246174838399385265155990227819769511856141416593313782572261805562386886693871033252016950053509702915246287980202863709038712076683394767767809810688354058362639430881738208293077344267534999121055046752695827407041197921942598682410429896830567992285466601472995840747809280419524416248786654706310645609036347292742093130293484172701118381348283398914128631215034645086086446239080063865245934487846739218127291109183053517191616579150157953452397688592192064887326133012866973717309060070129390895288817912488405888614128266455052344289708297649071130227582950216909305995326466455138132238441128659080077844196291852471887683454332144935590001211371588941960846752745224742841137612361194977220908989093217947268637757418973997182262543579794761959087047903369314038205653721113922684679105549942381870383323420695301837506710480748722366233128116130652539892628091081235366428579176440550264689137155344501053847776197309379370140233588406501002503077833992312695395098279201021943123455458047117151715347546107469456974701816408248868205667658979706875157149406755237120962589809765667494578552548412235984227401337553192082703898505439845799511455592032232110324294958407888405433883108938265327693077760969841118267055478973857630297486753083469136328475663107644365609765217962017177421855244314693204420807921439263830957169515442910981088337490472674812185637800675912335805906699609827599077570057042931342069934526349217072135409627857430810522801761392652181463263162966722668912899567840892238464027695141565140626745018255450629596536167853373885204003219739737137436107155771024472141869744765157270989615860110110899222150082786499551146336045985374068006744409102119909045746681017873578124011625686967277173588981864863382676352872755375552946313794911095778325886348857263320423746025455474732943038734904417354833401662113773113487637133829522548231317461853177966265084284812480531335040651511134718138153939495901658143357377306163330903552667916922873933039759829788243525164092481465943402389844545064501967588610703227658334752772398731357072724995864176637280757955802747320373353306425461754103534345043477252251457784389173236207351803602231725668414723728906405787745174315475243078975559611602869332594302569723885286760154482042907030291343230771088242951073021014606320524790445879424398768413911657306340621737966662449886114194618212195322827569035047092094962817450183093357041572325018432041524349997402495785495170608633045527823648728082870629688707818651930539685102851696585922953176840589222524257304106875073595662805692867151367487460338811417960423737895520967240151497688254978492160028058281573019339532687343759789325236299665880695972863691582214759468100152802191971136992152741609161093618543370391596897093560998386812658782807880463777562570036734464490266660785647141571724592996766135349807155147931618733118128136743013165479068427968704574387185708911891967054048737429564259630949992394535806107037805852687671863601537391876560729918399941455128661833441103725088950962104802068568613780119912433350392329847926417577763957409649001065093659744156432906411164878814135294841240313739937378738134928740981296272685336470224917112183543187590136447822382822227119462657177077690151514211649402031070859279402084576144880618592295060420885640518338530783081112400997087514253803862141731904288098274134941175856988890217417351472712166928389111847114765660122575305183523658197811333455343212995020203591202348514797259758166221795805029527094575123200450839258176236228509073155089790231728653085003837277342701430036822506868346196246958953640333842414281305420652758890779191892258152141397741223832175192467753081884088611900455048475232336897655728744817287270513926141893887364720007906082252806916402261959716707848098983082516609378097833081664638062343262507127408895675388367038420459784641126221806179324093225882499311418036588041358506326209015772538708898502104226351352715495469078222619569474831715518663076015260731812855536491252355891984557692653227379361087546166843398047005558369464273717898502065385402613045712981690753756759867550561013950323114540908041424307811365701526035664212332243476241312401046810051485928173196378963216581996667669354507728841369909336058099617653071980988465245623424219024381324583143188313170396368597846990458242259052120318293243764045487759550820362134320355804767821829725786110474947277746164830788804732270015222681153839831082713664837128574689372005605010711780582204356280251039237610965661451982313499764385594863036175663956780817112664065230818751795697311647235234074138543316421864699326976230071789497054150736563431454935615087298040476546557079938881679550496023662240240800282707282564473337643123089447900202529714638269184832612079487314202356402769188054835825482398603510191332936667077154809125219701319833272356734215666528242765155545568074339078228372864719737048066249546080874020095103624612158749836246273528679859092717808299839583990286226371348085030137013212535711210258339147186950499707600874517667590426547131649933183215905830796998182271019885077116561299702453177344631500116607847926652321675361252006027889678143288656737951697819139995527498841607470684016769728386161780295907278267473251698419818369244969688588053010193516899622706519224598929384919380611768206880300628055702443839894863751654303663193323190393443095488855093152222011012598915208639619037448542932644047156369422071033789997924603656157575023509460046462309188133912042545876835625890756743841923420991418253065505257825536692013942815277630873713537036621087427870590712688156645282940943863912438057788305437732347303093620022421051731908867936567736611219323586176215033555502114220760086784605335621175348581033322321992275045075167739170007112473605602284427195535066090984407238413824457998623716978759415144841914057518321849289247415084822375908097257371586230425543501723705358536940928038183288228842265640372094016642993649244717701697331232438176877940504585779605506663477896036750694008877027497739228440229444455464272718990664481553364048824463174853378026923137579628356179535102433793146690031124217584369259448059471802643683532552400524332572302378775669947626366461670866695793217832973891952569232887403489229824572842542363220671427052503974135568174751295554119595734315496297345942318791486339051912444688036444401287620399088175213034903110981518579431402695329747927839001470443756751934021916428711193886421951354066353750574979939824546753051796447164007843731166718230638637924731107271295611043418926851205928395740891143785666884237270297477647073545653218611162176143972329472239630660493088766356734132831588855177500790956153867049451693340095522265626048093806272412714117403685366830147684269960717348288177919820091465499783836153814801766359114624819975715383867334712834656329108808501874331770652883261315197126094962644397276186766631122836137193122026492120343475569889780379741826957038809645291979318625405813534542232519388392653571532883789590833591117808884271354786112801834258495932051963796088677403681846425287125249378868926649519192793092044225330009356741043008700549949114583057597506139595936522177146635430255457384719286778056655116418284250460907622514305228533482337269205659963453285385663673307853957307333421928447383699248044568769102679271726761503009339868259012502900754532771645180715229388445235613362912990075390522521415691981686273238828682875374875329244533178676310907448078533737000274387603197015795204331321758329443428471154768299723032446611509815565456689746259922296304865465011621531161873522582060273585571745227550018305601946418181479152808369046860380121747635190084903532652100265754095898910244574108746258239414708282019014785649820602335605861141234618688788704674799721614165671421820394962320314915554829171952931202322063520466023525544166847134757642842952642966835277620967815084937942727419209833973927875046935210686206615124858155192597363874866910571049260086676682862093228728591299481921176864321555467413325289878285496648234827605824305072315183437777711155405509353328669049484471776648861935302986896447618542519604925686073702612014824588876153821047005080547014984136359978945514513459472010087212342393453338795807841524882504284942780807666803585204636179169776097008778461687813637093537210598674071865182520323709510863590298088168074548229105368057014228457291725368104587274302725512484383667790038162541735868478444631950218461244588639313045526856162310798660196951837814239950973482588642410036444278304696214049827503085055123306942121679365356089702747513194225536531001791673724297208438909365609177717950490598242919451140562546960250334559819721742654238847324926886975869922642076209852057257066700535727240245549637469541058945672873974195537609194443881526506566712268925103046167587172933794968550541765071654500520413697330497780773844077309776197698544312520429316939933115184801264843331996973651714282917346960270754355982770222922296379163005736570213637076806087775710270802979393089909644700472648736926318897059992229165039972690011820466989580584108574836515272015460804919151432045235214491768812858948869755915905427488940667023039322652244256989166810512710389389906876763731491152709831945543524431258691740971486029238437362655068462918750290115156896331893723725200890078422611205982254300411891612587472498897287710402268146919083972363162875981936011007266154619286601009144926032643130647541297740194977428910611320615032592799602562943633207913366630386571766645113913568354390560824234719772834519716499794058091504287563988846165389372227923692319181670979970604114480276654021545851957328075320793156672495747578037727962963747701678030303203994384064656767496770025312527658391263376175782983172819154469458195111213490570196954853632426825758379523250492357669813715838791142196238255035114259940415045161466073640819307427141476552405007994015217550603727778029791378641072534587809456182705125056220484218352522394330388353175631887830499817342441363908508449357401980077136374011834129126862649626246395975767252938093451620605799705034509501472879312455246965285962266579322892643047322836618599000831085758948146288721520305311556289111950080834450268414413737069463027307831005705739480690715094008998595744085970011117215549016398136314383645525888492427334266145656648944108661583395562982689569518305618620597253312831628024650790882248515639285989290549083946799659241328683253389033790605792096770760650757897124933785156087577847104696519952358399471979403347580299109727429551397560472692749411486443623878099288085516102218966379402513121542957287699840020612441270038411513532450274278329411319597872862097072780771006129445770183420987933332353839716824584091307259759658789418234577849715083266100390196798327678404532600270673927949959640822227995075398474916795079056795072817237431301665150219195295283628883922836320615938835529525208352683522167902778913062059799105432224341875081675820359001303853459380598811798090596177543769324447913414289898729334515386178805664875253801932895631674888094746853189331118931463033245990963540606419766678051426276462332199122873312090400540333370517178949687737871136649361938772483839972443770109009800642663335765701562270923212784847332084470227989591205459365913240817605694745751079211044073412459645610412458312994723618849309797157164666289296874640487915811730784497447267121352186852550639526652178022586676986821352130798032896577929822072634027352875960636984186199314376779511634804977142872299172681137841453075630966025268963456293885693547166267725800388847375648279766709970040745612255662620941811974097612746874165765589784066431985500921656604606380072269776437235863439797774648902683546205642973127747577742357300279105028962834748073343152165813370981926395620289930330901394651846366282869976819984362129008184864509309207977833613249938227047594544194575368268875319034532522768461490512722243059018517454810770375011596139119559730568047653754182270943697523952112197679059351221997178338026568486974020450824031723901477502858921525066957136388025504244516345628498198037359645398427171991746739659796016495140802639208758430584261308811733644966016988061902511078585887901041270728245921687219944407999964484316885372614294405737217125974180256680915859721413293531150238078681205945084878966387460599761293142242554606515657016496600210624808506757881945707023668486111899029597127689291000857912368228950525133706769083774230596010676934325973444867874107550483391178740126311437189982289677853745988325729375178852018843992682064408831066754029598248249436306383202337715530967575139001274639326393997646339161648336176592080172294927408158201320249118237372919223160073335974079976550938793235776503569397936446233446016182688427885023930046981625276370837156853771394238139463040167099040645722321784880882413896215012654822468564952121114392710201394568886015131106534729453350896057490986625352349421746615483686706400059781442479330731538882254434010591667944695430662640606634451281441047493569026452422603178319133390105488074576235168100194047078093917154965722318203613049369688904079382081480141431858121227916213886163473248930440666370407732182886900455320861921054752824669692431275673358631019816790694642039593808533965038792473768818862466673433828794049099788599513051130345181072637082906398868782698725892383292291673215477824442177996404634278854588000736692156888008014498778572285552937770792528736254371261354631484363407032396374327226326865266758767636289674366587187112538266428382503986049167957533767944693965238245960402918704946353550896031401188961694392516967458595957650561551689971813649823944516207207508741938795442753464853901055273132063016491463383569237909123009827871045436068774238445744922235876253314049253687735450147148243719060490850656280450329004161720871675981141073860877471369901517218685720526956993727725706732076897712281935425095960156714555644891233932742750943444717145707768575873304809217644698143069206966716437024707518795743815797470755824916716208833343242206410964063630633240384518180759687310755268552944873965233522930439527440208623362620851010471018549471072361005099272082694648362245218579303842035244419632967748398697141678595338270438804147746058005856773808317766757943696871117755511171767660070222746571733874352368381386178491065009647666303608255857555114295585529481460844848291063959383467153898216305927033140867729000054151960239491915625828785743504688905902466328570766296860386902447416025712412236735980477696126113622019655872829827976607914180270224777351148535381296067717895055663060969931873574416275227613305970430929674246647285151757224873392222934624510639661314841740144662237450451994424892966253952306163375409091727762534362298341083868936075595640691724893170932188042673048579293993288130775455274562389774942382945110028257378081384263688751840710594579667274191059947536407704420936298897617505884708451368111252510001500213250183919861107790609438058572627106107243377168637141442431319122220692468160338533475849942232218665670093972676297173101727571696280818995920259442454725966240344449905088454804338404799241798820321961925572307658264023206339761968723272494131368379283358851450913465739360551401316186948442244450607847139075884521132367128293819775804771288110638351685274987312136814756796657290448339257941963222944514904551849218152585631550382945399926166019446929758785089417457506268843758373450045113366103844873766197381668522363908144074297232879431759739492123142285212236101869781358576915675784079206771345316785077983774779491926118525423143841570080757064619617170371295388099043940751660514679315724983417072171847930207253617464174443646634248862766312383850543032926441635415360068588353630115023576601060653022913114448750209198210058119895842242978950201810056050958982737289785991176739645503621669910851519079695830747879511931349418707855342178449670765288501641457921897061428110103220591991360117913923768408838264440322004230798680319174853379172872879851088747526309013725676753263726351573969961222415073843845282368627213900777452126968956961788454618669799992236614080649674495302388128576708448142578872984246367533829112551259583881401462749284327062526020940516138684359111490649372961387449076553796555919996574599471126584790118556001038944251360813314239447691176672937528666309303650504790380895860881882520578143180881290614849825281890120420792511721595197803985007410778329096341905227751206074305592024386348008385674583216587653585935549004161844501330396205969145086534932471552825673470972803391799145198465457327426578823313140420087384883341995772453192884894284674139636016212879204069448084455950159096518200840731553136604731290146771821831527211853456472311710992472155271207969760131999769967347690813084581074480621120877257563895921834751808050540882923919405577981829919810695794173626926715616995090239505278120567857853006895476972266573246116414098447722599733739704375800307973398083194969930228395963102442313009555126777040722773362506803048675468094944858067698213971073085170192688666792297721869519568443282657425767937683207786037042933854433197126589356372443688059836156073641463096849411644980281839695950657280683833190352919286230091332634324478340227365604050586883621085242653198523537772205646057582560045124548608571857677803099453864068190773936146522862538963753346553388319541541189716364281136605974001901136482793597097454461621296161583454944354635855003795925511133407426352120917113908155760025967659234651648656043630282839302512693997763981546868235221619889981795488402323356904602127905126919875896287082909764517291295398837637782390557491447603983454415155419025311523744989282273051984777382669045741111972698071486889949677163636438753063509391781960960324562873518342115842412849309480370657816976715186744268926693909702479106736825442291890811912235715740626690996265425727294263087775672968910524229568602365586688265284920220448999763358192696851642360321723180390561439497562206599331945651177628165407057696683925514636071291035882490115635027959230209863169539922499202452413733940376147678928898723970833411594202559719150121745322179513702095281157765895215603230802219629241331634862608894622124401502420385619525080172198130077639844205259835771851394781992162911343921861004748400421210832470389529384487219041053172383143058076740865988097672232358558333889610215136691073866948897413717150447578574117923554625570906949072050730424001091580497682118373941998115752402618762299681360013030261332227086903540706048270654279873381826648799913523208369865697277556932622669889809024904170183883357860905891321898145576683891426154759144825061310977689957607302179381983575355473706758728275671682602836016981089389684760406623897680264676325842558835092942578919561993411897808323266894615837421533542414591746276767322116950253406132148812218753628616115737051258521317281358108873770814140967251179577338962748807915048345638802588503736335324725969846030999425295505048542777856582968686195148260118916039764687318630955091077555542959271919427252558128267057036688065357147263659967432169719683217128812400715195244035595349473111791885467853998738244390714258081505914762194703047672878997739919926933959483592372538223126692873750023154020932307786567010718825813397310402476114579469798447249542125822018598604875522474414055345431019859258555608160005978860715883465705422451445419774997161841458509282178049379263710239654470620852248428367973936254482049348522875076428800013709742643992142643273416853543670174939243630723695128460262021528420204406828773899575376319279030198648706517472855163583104627013569535410289962053113927301270918732147132142120362804488067562634257881819320263840642063775292783978369652115840173150469761557460219995137275156951207744703746422814758541283871674407706518336331008159295742861155751076432485669281112812502225533606613719332816557747725558466574036992734316584839816464488005635669413300686561693103597164285182973582449912886280068441311647869071407141203799277155000161897712092135657030298860321798131299623239731906232576532745206739800256142467927455042101082210423023627073380235473320724308909375849622764797646523112784532281069097445893328568386626926465740611669220379419492794818597263856473797396176703119618736177755834229604736701922668074639799671101990471165096471274818897953135686531548315007409923742707018904510538346609731087608735131436810377156326847537671794850474810154867819948909309575825304248240226005924303686067634339085582941957929416518034867495918098952304837384039443552863866292781227765527371750340435362718231138713642777254850663689370765071748010023878685517652863455749938899279487073664625647440450925574888599905377064399457888815101535207420399113644811710632617746835598751491108927433319777089028148597649960824730652690464955896478168752716901672913256557719879228080641203154150713728079092335494440633240906422793181391581614549436450253947285731791869346751780035419097899820190116229598093093904275463876825138528713476524957906019881566959454483338143706034667904319775628770418614643260703750961931312106408746868625596209789385496945324316412687931691319797395466497624936582281175971491840886424827398604380094823144858391568577941572938440073517312855239112028073137975346834225264444563358920716758974675941454591467520166215313565684508833394832682128086489762017909721881234543444259230008897562545541057589281281845132487995189723765114840390492762157137667098762656038604178535537290585164932871890784219995392688776775777272780123954919570936690490325452922865694541219500628122068404320372676778406839082703369468806946508827569598323079461588073513792068545684661329795069884402748126628746789327367169904063241173716907392602129885326489649046889897833988483536201602888789391392083218787137867396190020234471331515633177055418323201450628904123222249544462512906318422550024314432885929099674103946490962365400412645356032026453554256856591962653084076860011951334154965424808164103747177672588254469014836111447701417236692906029367844885327465902139138945355320527424650082324510898036177400488025243531494684680520672032955042649123050403884583564227293736330425718064076973116755470279123352640029645598190771178458803401395166879182152468026723053372034834965511234055846555284430063255052056450870653591720450667143324981420081706848156602218357714828060358572786996376661572512560620210178450632996120743028077879123962254432507678192023831860135972336837394605477161935919488501346380134657056643947412509867252817792585777385896653969609961047561156976460593793265127885376874285173445861925229971654573039110627889826467703152641297834631802354866528543373978133553867015098115497387214421704707668185898630556936990615580632629520775648303506824237716647358573438600405333195296560546666798646508399073460971464662466458954201204578218476175832908272934235175114603395873318087551055166992301947656292655974119006963025279800032796280749764076104508743031657526392471477954648615492399128878245069331699258351928183854555069331645484039349827751897187288851230961652041199027615169565058665252150774228503474608506180619863160427770976607017308551845288775327712741590334869009590648973025401146547580815162247910014562430453776061430721176804305572426035964212082345688906118549414781146941784486550510053087869063411164272217743140774230326263415320500160323927802806975859525100354804606688595665333653552607867435511992269283525939911056850632888178921179039183116033468439789892668514407058765697099225959211776616807680815508207103693221965196168986005008697637275870662240564279575632774395102420312297998791305689425243056608261393780663401161493221186112321958054505842541085246174430147912804712838143518663663071279157868232032709005369459700645155623797292555374005874874042548789591789477295334583968179272750058977706210306898690937580436138423784962577410190330942266770077256477598038345025624100723980657695745506895251138607840026818800533692422048268098877511404116272025611595019131995833888042280645017849924406440368845823038278310762235836443979668971670482810587167451106342051322563946024094277948632274226570847825682689728828687415842113308849936096106284839526411943062997118213365886664570749038617881103398874024831444752969837709782497327111907993815217737061897121035145331838685753390278115455836959330444791179885881346661179840737679529749568236209927274447774966243492870890329210404416319783568231729218973549404204477845519367615827832972686474747433433690515646679853110495613040570200968545426645021973869980175277369215514434273420198084526869731398108106936549417953989214383081070718780648061992250885537459274897765645382924793751498654647895817493547565583432714130511791026527806908420490914202252625384968323755179797190329034930706616643047113075238280627749222654826944282632357013469664171132029609758349674966192948308818991613945282115213827523701024884552851240109227403569145002191100805732637107890691685447532605164194191414861732883297714178215304513728815142503186497417400148564858139194368304589326498675199489250176705301147618176580455504179998436426272240687909352286431376066177011174384417247348530741152941315814941466135480555698877735499771828068339436510171185555722842723415183669405223547351125604850278324224863700972177883871097543195463508338785619548244052725657568967001429772589349333895159997805991832626990494496666951839414891787167928469796354240099175906705679027275462454945972022188711404242137988344689308906570181934116513297598438636909199270558996641619718810798801299653789140109997384526685156832596028643692968897950390970964388390739280185765676262122724166010101697544300390723003375808707539128996164135542495160326059250635092430752769981752506906402207929100800963689016350617764338306941418337172557420484541392851913293195963401495634589499858217481068529705861339750950606177373909316947684089217218744271259613599298661205643589782888225760955192226886931548789476226494513934175631263052868135936760409919354184654382352624818591791100944592216954615661604547848355845175621375941530113704854742350083068881559060596931119442249808878493674088254626904076698267985977725588286968161726941349779509067524266079763852238280480578500790675393970622714053902647187797955235199112378310720950114320467957717676697490613566507347255124983228549334082769999822348363117698963688815570540577583271607400370143614947379948210579528621260286610960587151621664951329011388859039721038798338309523037628617591212048964332201225884638445597911961421931165031601071585464361338172527200027844998339504609273048572575691797976992142723221909532741253936921426691928149124740972966575078492977728091193563053868021991970450220704310734284840595119538388655055757532774801730059795210672459183617055066609243047960058476405285454876301945140462031108878600628687605356201154242404124125880786528722159928014129090497750495039129494567747598066114815814834426580908867949168423789041579114477948806108034379447938766994919687635597147285609555377063676473776438161407312493681166928877347624901077114210729371069028189409206136871748913468385249854709920235089031428360003516277766828546966527358538557470069547504429765779857656635247532732177926286301979155361461091865352840853379237765055568552774428902386329174620573113904562054358784913719628358993929220609279078822610856743990258044067589293704219795471992188976685138061083925437843586993763847837202168478322873250949487119078211801332550710089013978609739204725540812388345830619529881500777755014113586023120766394347883829606126946354042516104393235046774920136431266025326946878309894979482263459754212938147830184487575715960481474640619449195650786398392581988640197271260647513216022377840486160465114977352923072503411382793661420513677208852632209047295798331698789190217288101931790845963946558055728988192484357592942038874451955142778313213682401428981694872685531861259623703231282056386210091821959418949503364777896606693372944131848751460705351977048637868446249026748990360331749292840189455296083825041139759262148823732875774171158912338752464756647255871340898583355021697752422326003467237534869072837630113359498284329001554466551351247167293887856283828172185713370589884584227472974708566221515376489949197514149440967328814148049266306978673269637140182862591136735100167657386053136230480805931646483894619390729873145884108471385153002400758414156455393611502082235164453793456931508506102884385319276648563460694605776347581179541606902106454204705006925387775241815356699621557371845862437100472703190649323719825821780373107295830533231709656418968150321765117277228870871082533728417858186108972948541209983657078978679287227980452204576129236397592664731556665232025480363459328917286128856189105757344483976005392402107866189302096323507881308947393537876813591885022123350720555678977968742371167938120080873282983365416187250555750230659652805020516052380052900717533159602400972501157591180538645109162702457504471569708209852067856690329633598312955877351631570051803273005785608985904290755720875179723450951587157113496466767822703289208582186343249938730460491714682925028047302384468280269770760935622708168008095916448032677425443226172495702205413137984971341651507292029395165033298389806062703683052274698036476171749527828811726491656016825113545462252008408779317259622539989511020021490471403910866887024814629681583562080371683980059489822719179484720490700819033533128440345667780284955028015896495135436864148643067310186727500949197179502524693529532947866813128082787481430268637287400789199417713584265428503876029886610352038773959166458869529377376637889710036552327448093311074443369228393856248931893856868765556490393591519944830945470595489643738148344592928239809605727156934916160313653125084683746129130267837453599515846961254066278643216831075931769583490926757538692699670539431049385357145048006837771028777554073343475920515332411423620127535828319359037992983757309337659503023486990725102730453651630198745314743440254773101864015258183550493505163888669482719441231286342665063531794747857327336429866046572870105266298366285051784618592224525161887145250186523512889047194109969332513696349357634235203444504110773003943071966707522785224713164494594118402440140041920970024537285956674933512853520032023230772610745612937695166927377468590639544257428245594534331918634889911674769965696375851411674561149819574108347584931169707421908010241086762467247763754007289919082408380737975361678286730275887113570013062285430587311471327496388621069587165060222900686083813755424028152918876209284327508847394048985566471627645307470663272748385955758071887480759047884268217906469915500593991865079597210973533766221852742012732240578069923757492315792082594969246178880389458854356085238432063762335291386035285157773903956899522810187434400860826655731826150616896345967760809028831137285087582117559158318567239461897658742552682774547900378502916472100842335671847693300188412538285203204324460571908190169208670151545633410044599613396829071818027726761936168481618675664476180794946192627030460465754657685433368214348433536617196691967418232741467542182301314820473886855254415847509570182275060058323729756392139518052804481564705779641689833469311583759603264847192949950334619993026163452765614803416323575504489060071183740628478149488313083097100303496764702962070737176147983282057220336283488458566133981932958589474913325555506706509037498565937352643138794885440556252058477068863669860595384735357440050503353490995066590934736866648718275104704078083960508132185754701677708627769372082212456808484759394213092420397434878401094615625907229955645191615802479600228975130519162618711923044824095552752260093702864616582920591614258296535828992989036431180845113856540698142511848266452428040824157721068885237217857512082936020148770499357848194636575180624799493997288877356734679217704505591550237128908189798093245789926755234153443025153816969992319525550374298244896750433969737709429290169934931062800639363101315142700944468592694591932360007529670072206094141443858668699886116229062981632381276586394692279039407186142397835396849964036326697171797707509171794318712072150619604555139416610218352227601333205038740486501946725404142807063730677251561182439385660737794069937472228327239068189515346560403445868817596475031608024439077994344560096486180491328706901197346082792786865304450438801045367856973211352380040675746571224703568378104552120720732265726341895539527573982610070046419545696664111545580687880477479489286125792591473553238707183498201260038598018677045714939051652130507815943761846100420758585976250573824796823627307417267294320649523633427637240056326824096562632458604292749880591273541821085839974790946769454953298940409277697819114883592563548996144156688355554131364703485798064734715103642084875900505696249911756894399615250452128721166366502880624365814091031969151429501940005114111614367445600047076453092791354267138132576699428916610802817948718588792566869796954452705574683748792380316137558983726081852784479407065328918325635412843336651918906844479481961295443909039868675303580867901230186160248517384302816201296843873776953864972470076279732132295748589788671658828916142646289309385753851246689774376688271620180576121715653388475352893717500863730604824931907439022761029309638847892111662441255648138859247990264770260499225955095746333316020823854935195394655632148984861431070716400082011978569553072709566891346449977113307446751307799665437307113424919353295590734276118857890772996854883914007000332405709186206175245424075725119947592545111367458332469801434735949216301192016214224472095947328067675016607926226383684079909703060992676500484653806450148268698146926928645876469238286391181700111751641061376057822084290927193303895266169450466590910162553433495409900200407969914073106827618453096333302332890311302229726033847256350661916706083576837408128139138544572854398878623265690874112108220655031027114475114968096604428805942185668876780635587834946815956582744058810376397616112316125747301224097358991758299302307789006696800921401304594196940007013475700441632284621956204241325434965191410916093077335136597826624395519012848304153563615764030255191324677384884230658814450012036713376404455935127172920285293057532329076946874668829707908692707057838979368892953686486367301852150765652145152820241431919864332372425686696657215248400844484366462762164022648165588155940991331771011300932146872871730017678609409862589856228746799367567760744632744013893167757567973588068211441085487132415594998994077091913858424951429530115624341559023003268004736069396827114193895827426980860732729447854048303285699103388131571929300333083368472679428363503691327436909788494438542909543264197548354812378770080417890806372212831100831498905217979024668825695346254234917782035109171886222748364614818166011969163957367309681454474167705855448956752129436219723081856843587981900327051651884904815196768084578725603374719185492305737855205730894755489786361481320122151506712126929413467598976064068212355660710720424228605736707091131110232771802828046766684740416992799906970043978860293316333323773453509077569791033804935926770718453286178507813114586607873533313767708334588569140410766775233647641127529607365887831985086733552402521857133742166607263690686260413514080375608254339372876640496983938263195454436472655155827943231326932092233804683406821820596705741432932023169495562174038385451677853765306071376794804331957437230332278932478589282490511587529753513244279805690481579467696050562524866836534718539034330687506005927731622331355606683271896120732268721034061422867135271252814230917223198273453847620919553572655170294664190056288885907331627129652111795794713938049381645231853286524576806794261201092136517641742647526306635362667891410831298171070793521969658263347328151050050008203490754934303453239366436679429075958143020507140797496183549265269305505241688403808659688125945748771480738823430085882485101027883477332325914118664292330560856895920566882095042611052638387503204820405254231107354731633876612467222837487207520269259141066110615318360224487814380405691873368926293519456191843312879930437225064813619740079668761964737762512280252740235531182878544427447651706801673991404405553315247325863906240965779316484548915824936059862277155425352564957872614473368503063021066654576782282114800308438157287374880697002327867467613787673277115048980380993820018884634865849692098105008863358471905376656308203972901074888045675175181613915633332588681339111732639666067587614237699909822331854624463328067513794490268002993562191610075118875961344373557809086860871936344050800939366127487347277236371752732502107928394641152027448197608065183135677376038128739087834909205513529717411866170457301180465071375580734898342253015781232617371754634480082316876840015658258036700840661178650423319255635221674437326613757262270173354907449751782020822544566300921142241387401812396135246936242756678462757276878054573658412493672746306738967902089323063474753325294688492473161667786989838433399682566623043307654694866659685675053770087880913127556750128151036859940908246682468191499981142393400380383216029279955713570792720273744727300193069829414984373656855397744715886303309641460608505067637681311626180839445267752584788321685390580304417492240007313659265413015874702966696405546781543360285618039275686336565596073031646596068901000474108799902341278647980296233314882862580332810779152660777437214463968041404239449539827840629169869910269105182490800800323428652823776516284979098490343608958866864051738749002465026903286127059109742125154086888914010714846418762732627924909178146627536048239878233503800205279516236781242922637420093041768357746182888037253067217266984730546771768235145056489388432425537955932553241057730994688117700116107224188000654402679280029555836842973904165628614099108635700409355575205522360507599589601173274684542695647704511918569780670061192985945907375206621133112875328330631094925960200253493208999018774217473889576902788017417172451661516508856080690987121323130631751023815641283147442183982979391901515770160609256450868960852580816103740448703828269743652128510338804380370780668698489189736866581198173907666671413293434618696942204209824216421215436827519635011149060993732441177368174703196264529698543368774109221579284499152552261000632563127263345557389662707130669405750220817752407493887496040943578388771157451283033363844665481817336261081051655151938786685436004683463407326090852898971301088388393373789606750763640009097523533275630773964168491985956137249321732278047845661721809609089985940592299133050483607116947761173624324175751767328418760100542405177607751695568039472988358546431876789031320956028625697954901391649139193187485122690622056839822733627995893727499005579246778368801390338528395479403442847930640029427814580908201316507411818828519471952645267292720697361125286960752215600413289374598971992282960251380830219063715882177313970009006971975802818476036816192009227637557653503324163551943438959415294457220460631900652942411614505122868665750791386199148494421715831293917290358713016527899511103097633689540801810051055996624154347063595310078600459392567205099657309831147202708639409093923378967363844633992207098004066988594952652969394025864375042284943203178841082958174729173012311302279267535800203294221038506445645856951623560638636952736284453091006720310436898204871497528669019316604538551361500552499279298523691592938891587030944181028503319702342649350412147000442226912824168551774400854627755456609959154697619159618022524501086374836910320352776935899342241316187961625618997850529568753067273309295300926314075706135829896489925901317985142195525846255876453298124543319627891311139363298245930809253268428662429397448536511735147563117696990080246857749151247651643859351038931650006626119774905545005084398377768624038388008071967204866340401048720819655641602932383608936754180769633414320977888630020204050436680015267634586116371474744647046668675748247173877859087510512296742084007606461229938243979861052432338159379217174256514379305515304678613426197950729252165521117724117874001608784940619220601846207042962937914020233503102843841727112334875438531028542957814444402988818953333397470116522325671264823460889868592978113544853422706156447661243894642720107790848479643750503479997798923817401703220803445521642110283464740496662186803069075848061389664729867002808220614247349712298967876294750835320112280979758361079659488981606124772421055622404008691459101740692804883206624315784587104681729405564635807744077842350223999671902532032566897877575850077013322422879913432210418397543036312175445949544132733287823955452639359362871786566125739874023741837602099872934396987238743268304836890658004184807254108945268842990207433649477389825239427120584425518170802208765878375428393769327732346467568298024975938325239335510245975223228941798372913214398539543338463730164608061527053332918929601777381949409125527477585698646269301231809589475287222541529059562355494412130700113993464479521303589033834809880647791352607762830596349105206133777801488001240132763635496932340777455429286062958800327884353881539781823865223037095535984846817806223597752881451724799872231685193495838957270553273645281700482825533429293074057794509747055430696002913008186364898661300058988175261667863893450118338049429717963912557639220544127753250469247999506677946573763444213681713175113691017037858811376511532454452225382351680713524146374081115876651085436823998843861360084236390462835399668886575553357324921805982973863072696503747848178136629315392328236130214565645136849506040180934687157107104809898245066288275696868404650036113706893049204357394528712091853489375966057506002649532877352046274089942757821522844572000631759486357634656988052830565209370137592696598602713401618937586270858431380603151433749915080890372332605279146832094041253120814209251133749828875993711088086995870757598942268924757873140490314223631715317560831891868125156290331643340252913083206698914656333662638406126022941571681116496372118310489305002923264513914448824582281937884926206459967494557961279011064298345637209268759367397287575905014201147422159498927002801129235863306215270229748092049730961605504290213523908158953262304307260174269364741416534204001539487473946038280615704287864666330622313584376487386888062929956475648745072462507078731231425931693806468737193629246043604602706543309220134613748815114489661839378230041225938046046612444247350701194027479229259397060683388239429557696787680247402325052271756932433620478264931581541394737343718364513037436726094320322926406616098303403794835363186172635643410936695038756265828748342215828203452942004563564251557405687551035505501867277561619779335948368304008122264192666235876094828776325840505291060905961454078229166132645583679916820173997493607295422223706829706525495321269535352278339465891300248492426135221891506502962730871581789408880915834447005765154046691743016316132693994929336706696863261618820008703178452836693905913213375765156697104020289495325061335174076673073031557665457647594431948262444051343108601078233864546339460478611051867035980864581565263759760162812255327363201814455043276335044121890001016497120802324051150869972772499454420518445727023736132911963481512377232429435137750534345226456326950212875603680945354867715098125163472500829434103229404418726787771190216875061420652525826909375429190265817004175497629797809564335413040397336874116520712313275700003891270745309065178455459673939727241800075896562621422650882808329486974631185798074259612425701944310365581973650835390587999946697033740446167172147906110002696049906577890633454997075661118712490194202052366721923233563938372121835690554013310120861423113580111791082898179887681090473897654563911394570127763844972470697577447719600465979817041372799936522661828485569489764319235490373897615922838976435237424240744680086085167329557583238780082148281625849937000808247478777791718616815275268037970193340099040917932141565760915004892380211272634703595695567686611571913546939777568778136553502479374237691216267777616265230162449321879701513425315520831272559694175961411355534258646692643440436788557204360678057246871790814196254359022564296695814602445341347670288681393169946911801948289714629801574473176728759356375075079573527448640338704819209690602132150696602096938631984803309777407670737761834156248995804232243579334410739648495581336737797147948782646367712903517807239175961543905597653072784556924026055104323605983070404228920713318772320165715336656021153941561096619548894878217513146918075949161228796932842974811269660521266614766455641466742269334370145971270994987077357604867467689667241570351429269172517423506061628921915009762829041334598635036526691589861384807386392368243430414667544376595355170279509641697342156158497009778143767596997363698561602381978070552782484409043659569289823192370705257865690965119732554105055283018792443419127110548175098759267958821337249984066948252167857505866994049938044451287429377653400250229920764312741871823267627051296277166616233519591308815129283332180683640851454425281962373061693150743530778064038304195860751905222509582099196982824937410762462434410828479218808060846452391099040684279038370749186238801502320930029593801417768704103773097118016822601177698541582181383572020247346322479491549083435675426957314516472513985198075137928804028618509551151434600485691773766758991485663286299969924324237422197450067635738009184248334656833722245284341092474883661561269047127471647510053693437285017060418611899185200648019380242744344759099177405331336544920822898841324685701282546727842206305168973265187645660643363709241283301023797870667040167462192701873550110762035836039946836904413487181876730810224552445809490165312802606113965245522153001394544003617154791865675425782676160341381459034009941617257035009466219827173562244715594843454589182910331182213702971198126747227766701309260876194182121042947321060754023429835508766850129126353871817144159960393687278406354578449061330382716545455955552945816701052140974854871129726489705610665493692221784448705384213158661798009574949909538419616718200971126693259528361572443433945617983761333659276713349166307143815796748624340819335889757843179438258670527635679813005558111152373310037660950177138636096411331893052175816105590856617309134852911066333410108848250577930205596536885486452491445346027647931047325118177674862392088059066424586687799618537932926758168536903297478015181517354780202990233531872607717206952395142029412912653728771154865117697659808826100448898669801948117747874342495454326761848736944017590586423691267378913206042080389990408260672706567301254969829200786360857365316389644279866489636450524446799648134237174523843184302841295875742980675639752451253278673451989875332736379255023305666898287308336215554272065375679283444294269481674535513825142674861962419430124534330939105271444606415514755852027323237700453352916799849252479715308165924469670530143356166159884701245659288101635545682898465798967729848212838464386417745981408498400045984898942128137381274765847745826676260267277006046743697989362932047930795051440606299333751965186620937288153179979158966937723886502979690270316628422489782449428277048851291849060480273450754180099268313056591732086072562647584533132447176422374921487149681594084688245233060799915411098829647770887291313202300026077107418929812919223372935600395425465263797403733174868000266800255273268798823453874514265616744605267441670862935274987888310560841990641656806218084136541732270392063382557354360691772408386635765952449100746105126044777433963807756783998753804016452391951922941979431682009563931837466779342544956677795615816407076548562160888818522685286210162518253122570491840564883482966172974011113529830816631301384330712379112996122840891574602752343582501481995079604249838675793762023993960045340393362261110407409957840466809780488643747713943007064725816943652470982546236332040376651326932027460330998714773065564310279040765654511156723764616522084427413077440211993677045833801379731981031028166957541543810876409399690087746972687652899863055792819640328106472008378608466713836551726672618027278669015016289721203477228470527838892113027184292812483469799370570564696320537125582089894005620615067320812061186962849983582177926247567932844540427711063006771695855401109233755802344467087406826815321605072261050609596152309034397038212050048321362137738749637688731236197788491130903810756387209442989439536296038629280471163936364520366614068524959804013968294280679230247623276338138709600782634481421346596699861401450639022020798828519032591723383620914808973194344286647941582901867896788655154473588359268431035869899454826325789379172033337733963268339160226009545237803811505765924793853637563774112236880085393587564709102934304418183246917216418545884457709423296853929678631073330233114421536038341498732214981420891690314631539646801021818744618086217681982795862012433171970017654842551826144951756003625350512928781285308145471596438493073185308645956326673646448502532628676492487662866881110563055357147560977154812871935444210998871025669823007978517989104349417264132828078484754206143305366864998074576419262021235675244476126679174410946145211306015698359391939197481615133038096492108262598801528199492115321236647878588026512815019091203270014633280052834830012193875860703507627210103204037868702403360620418553746239090180109947007292148673172129970681112258485127886467605153056964296035206666310380528224086943137915816079323891722467968658573457809574687896618782305142986120905723731380270526841840750713219272959212307404604827568081528256236420470221134189186128175408881737314456011296618816319098174119473924484832140297575271945890634525269525981561739582333349783523629388493275994360228691743994314775940442025719848335960984800937703029390258696786135122133621062451598174372127387882342140987074147223792043907226894836036480304409795641809333487876402769050877348438759635285381531242504396201539737821674628535293396196713700908827931873523316775024715545000803741443738798622374843342278633617853735030270205245595125748038286356255473334758493998799090818747902790192584359063707916955901509867698793118549333090322720583157179395500342209976280121086972752833438455493738344296272555931802440792541667064908499847985852037425358640929822774397122625923115253769826110146425287108242638381137289808302473599149273485467254812022377295514174278871586921144454367562305827040887657607390860598257838124925726118614894382880508636317423510293812855180349134160106975065040678271910054238359945292687115048338516515183989340309671848079545881576726659361431403235367164210769020688697526599451288221097950336942356063649214734009430178026142702922128997067784608351368193471514004008599287997099235042072275347882577117552320407784594771576194797579093344981148672189968873773726331650914673832744652611118798657204487432213268912075871228900418660456578156850036982812416957832283249860463242510690382344685739230526782056867816879968599768001296079047169442544756168611306790340251787201615787878835217239876584088223132911423785843988130706920098877280627314524368897832728129950595833905049888362373504564097492045476422592930421047156576342967920182199094516517793472463594745928643847825267137262079933959720854321572676740934149571573130076189826092067770253585040434500298651094944521892483335621831712033768456218477015641572724181349190828906837333154965222877726730814025976544461300484174900422919500313367060242643202978451497721956071007899135276259576230031282517365561538666411404437386769067639953234635480861931096041761531667961076510999729332380490198927007545581803367600127182063080614697991253806946048593172950932397308616546309336551272335917083142317441945691601405569347046787305605717997191715635967776739024644308900453999736244152972237023177670442921069925137095226423404923051932516909230965794757774196966521093820506748070201667937077353402715846666731994904439541712271705158208327680947104018254815607011912446394515916786848866643098804266048217414848566051701711795574754988076737792627258537165786658120145699085223303214639126291348599532523333137807673071305913560056232299352165363847120104742599983237467816695572903405197634103046425523258741308975351167527766430026256242501284287166463083602869305074816875186710316485430908169930399468682872362827189756129836045898208122865755694380187688427078459133501908798025641896842989691842347119388647659760155174679298588348251313965414506467701076195786018019895916813493998743361937312030807360673271178585713248154349909656610879483884320419293108436432390158753327433844494479118362448710882560929160764737524666148528306510034233716208209331204873124191567117323987257231571655857062563720527599659673788726125106822325783221642100626690308697019535860430511713429333382252469612226855001464960869391222586704244323637870214943719399538395789284534009406644954135470749352417690754623442899575977998773171949535207861348199010974908371776153270248843841130342677799798824952968504638265279210645415572375147324342611811824672664856658262329979564316570862296424052988873568734886201895288760825229416306256904851543673543338956490565098860375158544904905824353768912690626917122539085682479296992546920513077995159238418522380712743935679322138383494531364149326082448188369231426400461822319477118843670715683507994448904395871616245329103780695681782603692928107082877807497391777775735650002133705574131366269655583551236669969146797116648196986955219281118848626978251349364446032557602847630191793520310565928142784800353245397845075356233931944651218289350021903831802523708864336953053650529464668974318942550622995168808556094486878823497567635409401791449705954932506961992449400484735207287120474709189687845836362357348914000578989446412359758480500895754050598676516687710800418168983259518259958513762801687777322150195626150485699992555044452861012104243170354184547385171204314772356835653235572340423559307217944678991274172681327295237091536961397616035221863631024240696824937893807722639313510395671237079326683810725130741766870660294802337275839002002626918647227823605777707980354513627310588148359341633083691108532983692472799150673184514755173695299106734692346320161423982035711777926502844134411686160879348071913608903908149583622671920407850135038449523153840560605200365471794944682026049465974357311910712716179858478929808823171779305707026693690383607426527536384696168176232769428870560902682991701168731168073906139993176273465492648870951825242148266897296388557315445392743074019736300489403465461663692229506689038656977589452534966351973353677084095943670303926644625041158580818990662137823160320319258431724430686520702878845229293408971601812786452090775712782855106128408627809393558865317778811852358995336787920367692968285646687153017675580840920549915630901826113245596246769798444291521880796179883782087139905758366932409274924127366770336757472857955940592926887722440620813096910432000865682080907581459100906837451491433445365116927491619468124474941264421992921964533152651838477465327603363727370163329938481639620283860330796781336855928377365961792154821214393638290486154193073324545053083995310212865480101471554485212877363427757223449793314136446882610659426475340700714396170099042698080931239202981538157460714821248344956194231061247996472304977245297903958990723139968574625100313966541567237208084861315664011916842224917190968214222122965084317505224052911033110948721252635051677356797814109871377189218471898478269375831298476671939025473012831489361109930740533578771257395939234650150934962956655946024493335463560670654190181588127332860885690432758072596329490858474695266180480835455188185642439872748205951603432080678403487701845052995989117390555998542599504364108049729582173365650854362783143602298810946254681673625286189510129049408606403692488915585500626118312705868237057386602767689417233782989504610555458457573009679413707734755043373116394735252860252903669155217010468978757887395132710719172336954721857793995938665474397420560386079781829455650574228574722352369860419342135037809977736559645965925491059912327305355740142058584436175176856339940539254637174482724424410165844761956894738139724111599619897222539525996347000696005718267785863606153687201831254579528264212216469501489422716583214815376110854178369601636652743179273390834576206763855078175994878846872528361091221134459551144437834859268730231556756591550885007780593202923174251565243493633264065893086141368076043343130137708104166061239785095618708906180571391855874318849044800398220044694119937915394330378555215809624562383081122805060285490230268995335897047075016885646979287903193999231355390849552242673816698461232070822259752883820350956617540827691821085579907039550594595663938906166145666979638466744032586137687789009040912931752175180133217019823564212807487963066406479350341838216763594171004354649424744246480432009558601954285684875005517339867219965711043909751645900399402054857632929165459915044782546513496032500598397359293329538363525049135993793031865842642515593141209914275078441724910522904645171394368488700124640353901313325200431980762866367517504170743386715750644598892743670457185250681860819137238836943088369037363773874814338061973342750929851495635212658083127976408418272900676029210537698551469458448351516935829761742567356769115132367280008665623631853825868694483248345355650230278850118283568770167088622178891442172929577783212374616408475514311065012569536859780508224597431726411003599674695320474823569144233705722335667203354560748908454519641295286303564468170218726310353926617223339560089691030497003281723061253725023374698606737691529253450912316240013497808937775207022321718516539761862205195639429040205451986374917574858757827338090369101847040661944563611984039332596659497621909460988195650701615767123157325226733519651882413702890708953534013565804672497070222439600656636972084071685779409088389916779106503396494862473691215925722845283803150916322228372040013830881544269761945032068010723144850974290342285806853019947424623826804576987168745394876579578274292242242150123950824614869995180081391081113481513163392157428159284112224152109890249566925315794160175135331666482948646968308521354489394738181055174926978578132892132059246881139941817361376336640221468369838803328470990521119868670438981192777426068582977641480492392452415885266275016370747440744308615819050040060310884906183001695469431233350043227428754454601037227372027806215367534487323697777918352157241997389995397518897771846613626224560716438188599651960036084536870884051832190822652094132067982063438083879130110391306273426132133310515659702638180671541372359911831993257998899627625850604587425217184818642804711975273699015209906207063198891189160156829451588915525886376832815730287448051045472013660889423284242360295811403680248809637230105650093437955076769445811425266821675581037901162224511166737393228600440690832687458714103448695936906455155183149464790463601273122356864149320837845777072065901832770140881415795233124210916757653260852666957128271543088917775234157975632008050839297357250281636489792417971989004851883316178822254865811955903225308993989202843698895229235812717586277290932482257546992903394896808392869885538320529677046348763195884633442260449771399628464963215765649126143512104675050878521628211270481294213816400375964054615731495324644165921867678877596354271712659443637482200539742556888426048166127216611764302737475278767170029075587374242523151715719418574708878407921951584118377556389194431802058999767854817653033527359479637935357980795812960411110710857932645715539718101361601930257945287856021085738279056941867010451462420264535327641877529461097295536552252210890304843892485457530485915906326325195041293076966643670780435465673223568465769595559935125692231421080383271281597269545851945579121929999722858923041439037660203587462941108579321030062917114790769848513949840181275787129433809939287226538782938904780234055010670809272336203280271354449471875346611015828676572366598113476979628392229284493743452489129597544546210805009470719789017348421919541130737210774860681648974127793826568157749335145129899343817452677121929976577890755698648731282724493673302227985521806017392835639204986604403043275937732265761007774345813295950354553168031664452338062813834420034804354340180511465363124830124948920677397572834481222029088837878667347407657591656066451045866108538182488433404688954076764622468677786606172623600236154702262617125095706090571279611833328145766198119518648614569566122724829999257968023935402629059055789338531451665239519673653174183518686675082733956875220388365878335838477178999809917684177368843547472107216166129368422818481950380495187388049657635706814297565774770931018316098312357273678309334300885551391437576655865122009900594730002960883320105701900393835095505026631270594921454191809607213768966398458623093984322001615486132527602862154391228874551891068459893271788548706532972258141133884154262096103958854057684018371070976630867476218059396680750257784431461966557666593340589522931354576945353457701190171522822337140438613119899277850988599456150110771239958718392076561729270152041325682359225819486212661935789274218156978647181981649471459269070565906300518464036745730319085259257955826147172546245483921191743218784250786921194475752469723629883010396316770400327511863557198582987842042186074510121565418356758944220305588563716016533566885762425588468078907660240021701266287605105822681097963997321898934438268149070689574957315667427779924585301567468639555850218925619204168289800677084043362537501241518371347592451698348528837146956150716156740257770332200611544712476500464298514205930623730122191414847498966119387602323948712652641700968163342239775069150227894677156545853561391991710633146897803262809274595369889652577945963667774349163736743286162223969430380617568600417259105625500021475839505570754833349914550460141847418533239063916492806120052604224234964430421908100090019355707167769249283875640829936358831348507888849670656822742968508330374544137762828356211092994160946550083159505947888879121071172922613982885127010306563311128357545054466509901218199253581824777934251452356973434832150783584956140186002757333498221609357961720997953615442633673041272251381402934182620715399869866440363582725712666242070571423680634601012883190687399346923787548421049607929679437022128665070681673542418030087132892504505368099152996814587831985336588692957494697986909631322373581106746112715960919317136041142168910187624061609904095430069152165370382712855368069784931501272590410399610664928582067826228346113584629745545442465581585335171099637133789854981665432710063333106291700255379959561197617029408824618232049914387002349395988848129567738567399286725055077164654259451138924859957272023453136478928640923929488929013298972692593442388548918996015889496650813170234872578325118497455636928741108522336300170181955584969790950010731900701643343427308325722912542206443965444163565015691544679697466956232314531224546589209782260455124827650231985870153690889727300549403934465607672293991861580550026156092677867041609319544775774276992803213367579611232946918630016046090011310156470484482346279474597779139613138689224972525936585480807750900275682602121561378268216730418015611442808426408316837692432484345213248021755234140190405944620222272036749917238217740142252902733356278189250571317256073761752538469253674709920534448031811938627469179066396156333707351455214529889977304704055566979849041256048621928072834762831711053168268672445694029333275438152675046603468106908299007121880603590563442486300701598632332159831067204036914411608668865536551731785692113548917101353801204075735053206544854249594517964527511040271904163176387710704034887418147413146331055382784439830241934958791202784686120928910396872954995368592495946058802790746260524905621901585404215393893280359869452020814733989931688983000353466402588221327507792606732654884135654221722744842642361441457788528106481584651796522007682710688988959423729812113486800112791379790915355718553892608482887675423566515637892236057345196651037277472983352874676662565031795982614230184936885417002594281414857497510009196225480169034941062229903731435940682618027790381851589195175798269370293640626326107514812867480338585790469227316330503131937321966061241458516523016211656044861784018130935233618879330702903148821325794354596246559840450661921876948198936296991460266997723818951222697503997736407255954007837502318087286094492061346570193287599729679997731114923994624582853987690891449593645034425687929603394833829830581517212365981028953785532545357260939182662571168074154252482680339652722179190629930944927144540584794439067321403327210038714125968473783148781924311411783758287144149552277231499804741322940928911712703402749814376770052994886237033685488448930232681400781886195480256823691581428113040733498224945887198266197178815561354514245688136935687813883148235584063739104401518406905747291592699686656682334282092648156377107109181556531420204409769828125135926648289557717496248221758774294511716521988622798097714134554854135540655948715843851689668547639123235431321253778605532610443321981932417062646272109143574628298666317609107523385391503314014621714656423964119279150346917167138241914968747938875030749469960242549308087656205892359313920692118325615402770593701416566981153750597419399509751303963220247612360554736995912951675100169859377782713093921875992815834216286457483347751287111065587530449732959708169443117478303452720832796929653925911466588149050736362515069367599772991974106650901575642777572573816497991090115915389539655580707519404217416880894986254064885671242739865141280791087447412153595368480923717368007459776101231987812798943712415635463109702314351140656248968470520824293296145031623854179078483203619189315733320649283584713302598947669043852999882586684348585046438772533359224426417083283316081889957565072095454999091508640009415009532116126108703938758147327023433477143466524639917682648811714539075449257315016485250151940137206170921773765510543864749577603316042395312019132144147656946227583433598623928175823628514998526769283200845443207180362288510711411499120524154574246159318917925384963531424133482958414882121060928840097313225175189241646422763751381425756679083306498734070118011234328043066143889725859464479636202362717417253711379530687310237863694499656260503124746299105024351725915669682741832501832547880521558140805900674009575416308537960757809545517940757878546462568295777206638853123792953610121847303491036880760564330084736987059293648130196819325865781367486728862285969321094185133405409987548947185774432243615234468494781344198769454334954284308187444412294015674291545354734432931605388603097865419439969926254556785401846825787230130949034261356744160093488477004474957063312596615088891301655895442306193999636398150713509004565541644421850813973843710484877622586391498092506170563039392032578342656185228535722281775144084772385998491782398382938601810157220214575591930177288592562229337584984241706160120178017331226886128011490838684471460804891876338515485714743097088041161409096411002041307829278865991410062861191835797756843454771873076672888692803647950801449336332200259785937023985472428635756988196611352281114147035632812390977167951975055121867977607975034022825528672550092388430326838133312553061628259239806720428456250779881668702454814033027247649027094268299382861734215574104996347546811776054796285328463644891072869852167177159137592623590544146876275028170094038986149942479760095475083677169009841508037495224746758231805046846724588755868086750887901735253196418931094170435687754734082165474413524212984809390757484036572860467898794759432767006188718869030001939853199552891748386455656799308309378219402224104269425978106026955887824003603063468821490239326712919693586890723482344386891361642861959859189160014522077533993361163464326457582631559607311928609837001749649684744487072106466476706384671792697763179225399189631247292442035286597400663659020251261657366004817727550972048484885835656984958057072075307731878379575272533635818708414806888582421324974493963865841215545847061584708549377024968901304903612629875400439788341351263756452014919205602683831055795046336251509953147662682904422159064053419523084274729689441184058163636323613425912422145402321910144687172927345013863808637418500729700978727315304598738373014835134874210177024447619053695508670102363464695586341320703928004923257168565901423779134713852236387227621848232855628076992712794885616691191706078685073929601447251122288988047732371743009041426455121015213639871677479840937083351723148367314257835155246200236629282578234312228722090111926247859747045253106008969469508191376543984623699056164359229885057220115002310168532110299993338377886902389487162954871255637442978909543886788289750339727296808332104587566076390288239546162682718206948338930598479012938859598396733710098106930266123194337485276461884500681618175865670758515199265422471043271729606834470195674849989229598315593668169456194206294252866386709187032261894955868670127605305228074481723565169711852986474625438536303858766286863856224842205729295933369957774586007452568596252840013178248149443517227797853618459719473284808394673153086767890308946814288944536048525309805242808553918780617930641791743211515848091463609882342109228938117060746771993551436506771873255252287062392575220630970604330381140644711414106687147756017002567598942799431065964963630006900966582482462630903885137319808874152354915870677880815157126774362056854088227744364224800464515022125211359361108954692738089499386081282386391515912144208417055570954188488858425557719033296582028607318869560642239235259255513788872787581332394430787368801716440788644782950002510227235152653287830176079225037275441454231809788256229263677859823985597009086948626649247372976559399343781991043681635709269121252544134223007788127196990997010641493221794243003339535806095729756240785285445134072932348952661377060969804405013584442957528364334627562242176017794526214594073705033241068282386416948819100185995514976377300100091061814226604533830429738188427603804358505181719447596772251348261937065696934626955374972275681822088076093627367334093595351900196222308317758747848252238616321116653975363806732184192364524851740209348297539662625223802063093179448723838645812910080012771351661091825221053429091355085479303457082822902593295079352098393780632643835561575757987802930850134560125170603222573619882857816709067945412362726543577659575935791144361468599495302359347575340977273617182995286442899593079927049696403191472416402430539027355033255034517852279935436236601444032507782727542285083233845476504991654292373361998057744510388219119507056681921427627378053904475893044112875051085176870990311476263139890049900982541809607875670334719685515156064442945618955901116083588276301827666139604859646454814926708879065813480343365431495214181548735594336547961138491587141271235085517891682149894419851034372890924954070796699979237814236698230459609870422477089870923420198682499096092332898754065894706046934816796945796525515233033260065655408926472106291754571860731796998201414971904816495904988222265280874117446382273611146925193495838109209890612623081018333001374423649356428516869107614324425160531870966417607244672644052293277429469212790675019953224266384124348134226570402642401331662236287016978312804308422278597228118238783419776602252306502256696060898447761987755998579980947882366476578004326882910843953002635068278351936185312118538055138866532432984539049424858258112540196952484974357387483194402159540785167126681654643180892636074921889397807585893571279064481524677139136558242656382594615708650017508834738265308360843053698178907673890665991835496079782305113275085551697981055282716884767882728475136998855542513788494918576722727467510151884637632409144434113386812867879839577244375815874847740783835847520268732992532711122075463050704086773005026078154655520871748058803341270145597142948764620950399153856485846470610552716499409582967541175736711083921601837374458026201626706315912232712018552185453659460592115083745970767998920007490464786954731203852618760371059885042260599816365153993618754840146705050242198171774041903304328625389049127696208984950032331186373173761844019335249445284471628397148324146099098134759857543662360169911848246521670094050115653456999659253850763761395171636511828955353042816107211302459282056599070079536463917695548791601150458570405156972630817818046550198673327423549957615640986424531510719001555303351371355726382627817115577805489635291240943287434950931331478425790444875320663434366612076208274814306899416496531343382109698610946593114965745317143432316415601067244077872095328635992248384875585172264633280641093360574949618956345539048445558253506690559677159839427321556927439636044043147861534405116391203608820464796794121332166344224865917975476709441695592069454145808172311600012608234854826304886848827628534929306947177309792736554494018004690687528731695722267027943499297272073658447092121482392994274429881493107582076765322122258786684140020195874030205846121738804385660310854115419728809165271718920187513299597783054753716901273064653402904511570560048202239535014952916182373658603230270864694723196340704270552107464589019546983960790183535912993039895856814717230672327209735532591557711448733557723545423023259748547958938656876435161769212615247672878818857334257985034044031909738109786661685460962688334509575456765749427834309725791332103712339764472121134008324789131325590330561519889246981462434775665936837078386618703480865329308854419859466432188881575879260350365573281372735144331520784744036298417213604873048638724439289798333712721889328952746100024413818751899315432445544819541396052811580330135954214663152601922132709401054676885441636139394014194054025185901022932963450275705587496932113539549229829960806842976703094331781744541978266372518003065306458121654981701739069783764692107491011175155350835480600586937350616992822506795703049508140410471605249035527860524118630697808821707377118686192996850735806101076068208511973401375014262503100977972305880062582463155777228637442814719128620554500251161800423749100152046981000733594308715091195181585617169717447469402686178165294626422862190614416332794541675662291350181296388567492954886815599086191108619183367033745105202590761601727636000606861599217930036811486207672856791075399354725029647421481698328940451250522011177544248362290488641985552939557312122173620560544623309003668788878868903650003937776142898843380438126495752136868692988375896837896060925994124132520133077948339607337453364624663757050075271895129054920680803005974857256436803605354255134510260163962127982049707312195106776735083514037095022990771248628770622612646018480632501748458443063689429810964521962289151689120883044502796516358897617310023983861389603764656926227714106572358549987742469319189289691998016224344181970726492346246260655733920671359736818640143625480346365114486185632669338303025689464497937059624902284356691139790624691242851630909811371875586098400925943667061680696515714115492894378191967613506137477388646222351996959873458228506391561430847025480505949429982119466763853529317359515042826793071370092181579836066260761044075322197148938401381664663450084243532499128859596708959495459666720011373922663032455770316120131085710133990998949784203700463634220772940393049069290363273657412642922599181470760983454078572089398329607693736496662810599181694027248157249716951960386891663302649171909313880675529594208023775444024078797220255922522881058753234934896305461434032888633785813786759197240119731292338702830457999482801241659442893935364254739933390230202372285252732165505052327122916331010641568329076271957728857179699255364497422558559666052423278375581813866330647451733530272104061489410530482515485270862324070241424594478360349991960562371774288528534499242298491470244708473231772596636600658992148590510449637988069966409478007827710646272814160487426253402390964747411086103823615179236078362913337824599932152756746937454132213495782627655465231568466230012831518779542041461634479147071916332264639996622695180183959239849596969834278475851501851849996869887267487281046762900497267150108201089340774721330223086998001912904458893464412734118372137991714153759454079364630268451699144786250177833437398744795795185850046208549956171892259122235255717271059932673075467395622903643332194971835389579308184810926180472166385216794679986834870286905806326879121629433946657662677584079988193319091101277195344348160230810262487532749013877488038446340755075012032542071154934519088003116220042038607044874762239720616026622893052284314397481238590266115342420514996572603898954029302287567801958845242804901053979849765864830809694926462963875081026335779383170373217726447078055595773400292822817034316607670497002812030432573513812588354869014188643622165824980784843445848349834105069346765414025292900430351635965648913757107446589826809523847217314983910774655917462515065717809877746120495118169512883643274875524535067033512946713059673139226705038148776270567220526436932844161054675367890095771155096079151727695637645836467966260474617534757530697497659503409349856241889513242444966401941796400000005944587463825225164119810074479729123352399678784936719533367679349386515373559973379118588817319849156632219910949575225505785915570849224575100137697982404264311532716588476281377317457343813240979449383991595464565030016015352623159694624244676632243373411231737066587887475792484256509939756390893194062128015104314404607539415253548593108126267464319680406547596819195600367014985463758693920126660282248996332610977726702559898307512278881177885394357383870967139031718910258177495640597075968933856281857562183085260760297482643028045158191032359780859656909007810529578069207899082941250132180856283062272395568017576234450029169058773873464353132479291540256993339698383358793167126062206910464074231771766898886180829252557574396329074266815617005868782491197201154409494261107074511134344084517720901960193042987231038890637777732658619660575616728378809553808260320429645669126925170610493416101835244188512268073716166453343679581713384505486125063129899806878100792367728897504463338358486966631024090336195418853686963026710345108541716766440149436054413140369448235704907463878640210254230635594690602054702571950117407344895032637343975670233855885626719133352745551462302758403212231522053683480552140951945754970525184447489079778737818383966444940624073387394049191538962186090214556928371928697486564907613081159038545497636311674466185244149581460831282524469788931444610181658013418465372182216286819680245323530987566159322645509476031054300957122367711294547894612785573637339311949542282076534028163666766101476293283134167914608886213283842690993096574799345435600890584252144709129073178764346489195621339616085829212212617564987233992651938769006275004057898898699085694285315028992328232717450816057769830263827752750374311212824176760965348188331902345943153709416123997416963065478055300091646918367667081985286028828208598153752806571579756808832925668562964581030763999553082831164322541999811279371740634885901293508636601303800254118648423144059840028580782489165316591973604802085930542086110917750535533988680354664683724734963597847978799378523871751348298050206967031649735158578647375296774726250549332833521779702163934248023974750441799991650013319808127968198672915784045938067411713509792460886416433668462681022730608208674648259630052267758920714319287450395116505117333894962486157866537164180485265257286541881860155524154567746790063086237181265232006601657910710917626578620568855449489959831061630517635652817659074203643041613245009769416690884291481388969854339989503849581439300864953800851643171670809041760620412757289403464890203302811872509373556540359603720834423367634747806515226023014883691321033854982080610097428634646991343816156430903632196573240211922104737393261427020151079624596120296671507507468425916883652717074554484960905157369096156183934246634939556198467020956452669630541793767305713203495604454665799787447250463758521993970543712989895829980806742142792574098077881504401932376737329713801949940444421556019071496494866709449833313832846131353910492701975433325474001654889878375183450919590820862906663128393935638795431099834686890065742382549878675353870515666395097486158881902164106301487931736129119915540097275105322534806219092473752346451490334644514773139072948553749388638533003885344285628543788091627561256019535149743818462551377727526897824480701317311996068784555558636021704429300036009713990379157311247634499878071242657346461654189920965244587934476079676249629670982274809689586393984419001553067474566834130311032726400349363030390014015401326865970993415926514515042682720410403415783273106013084066706433185923860996241924745867321248709716100338301630069968434658891233816357425395960626079597022140316734602205314924592421434865953165374106641522444099281351819528194687545139168945120284772499957386957340487085367598141582622020049865626859715954189790633300654159101889473193608336206744689170461127413753558094545502528889799024674260090592494921000527758722933501926961967724553713016292683007278152370053192601922991925408945578517026992247695713397640737577501598915060908101427972293850230622627691210107401702501834300735419004154217803801969788967109396263188097923372576416942346747645222166658979321955266221564695079648487210698222308162154686406598880526321751029238633335813676735427444254757952159055658141021723759276516041780494119585871223129899090875049066109099806512019616362556009146287702180430659329023042814676384980455757690143934582662682313116540306900458428288283581048911355267298071589676076367726310034947929934419359983656579364278822121666677637887913675368528128536489710172737786761797970150346967843149270096101423857598223295108685719903308698508721897462892215277354207261915016539018419029292702422720351194953947614928376910941956107965911623285267129551304290186812247304355671781524811496042816846344895326184806040387101477756143472776679304162428982490745014766704269691171589385745069909272553390406401238468062438845443066398590691531572994401776236557199072302879347244452651862901433868551003008925997493416095799343302063851717647164961426040649484580304998806097500978856910200234504692662450780274098615032426408799474131912184816515046900980093886013780402103308979511657620127480631015149405142302986573049318285225092266902966213403652303544276177192777170819340106916431793397463703812376565826277140642568746262037332956411381010211982136201093657440379284983002745066286242752963697364225191241912885165071455049107634658805145902247927737655109937254222867238618706633222818527588595014384532002613064904458611959663533642280334509392859456592803334966691048591698292423827409480340695143922722846583416108940610452773708054785841401563981477753053069001713058460153486565185856908303728763965255988692257757508486257189371020462391719534879749885329180275259385984447187210105598631476529252845070107025799944594452715845534849720766046923747977239340533249115169550732082279046360241423220289548192627408167853753170795285167698017714663348227027236416629649135600594123481763679951972028974040487076345811741733166266740751396211589268107150948183432395869132900896070538995518849662317098002380966528765620705371050091854966809570757596736994372811888917428864031314110144757544206707530293621293150595842257759912178923590418933762209596842356937824493946261824404583578741268674585823927555160336404689388624628098196168639439315152192017977269132058922367761445462468348608421832457703996867677794289368044710792637828507259416555085517178803060868069425608610864209981164039443704054990551586332433637987035577951740522779339563027097360497839375888225482395382061939794558793681317231692914273656539462296579765393587393847982511375342451381665317656929106686520097053684254479997238085690932514136771936699383600643348889862148661429051266389637389012744197919111169642655154163593484086733707449427617839306090750537439825252398359379259083923555176125515603810039206213494897697253395364364908840650842888092330359927358999329501737940369653620853113279670390277099691044276659119312584204632591818879972699014526261334339072140196531539539152446231806585245950992771916576327899292259669948018978435234250975726496721500228542642296409790261521424542839413556365270373821506573832005015793232753640621396941484264489009453471029759470673404123715092657574997578253408830644729758614724357905130382298424954196167609823967173789557826677561652222133920229298778450465171965198975573373806822024536748236572281602205087907209898203611115610712612565139977438212203908859974122810553077265280256587576226118917378757115746886075194877147426805301480956070687372883119654531520239361597107878436015222675953109299176859728833242729054773748933220224183985366591036202927236337685466343115066310970920981860524833243765294815859471572188384762327952937391963554991347567627028402101860012388749929283197948315718332253521172506847343645522955254982121264076030922101636944061952759300881335757696283831018855473106981967617757611777907642598888629194706594183921191772681188840547722704941850398695133626782474156792980365229210039602403265118101069925895126051413031272056989727594036592359968645977486482332555704756857306472230410845173671576176923892141122050766524100461230232347103059105313588273188619960134334752730741347114528139728893388678653643422596077005634206263350319768178238490533142785445954247814669102901810935652011863172548885315257543372263113645908871507542863259401179473175167354889459137367890501600791123594547524969287256168317922308639109797576039304958504309806567456223369163722550617793224385512025498172732712467898882485479555710773900079242115915862096612083011530920223582670880661147042381284227485770512174217640993554011269623913443366176210753682896189711797125342952700586514949304892824679142788628835354597834887219715675456941099458281669816515266150901284736065355516695177913417978046629760470927794521566019679470529276820905061845018704021709549566288573541082010607904969995728504395782622240086678367175621678245473913709151769421536285423242733739528544735155570750879389828891242264460350432991325796316116741074419498011784268462514593108428114817907128821714484514114322113604954143490743887911504273745213896600236538097581227312032955027657838119636743067201183799723937283301868631551297043911616768498828626462166310270326309657459204951971246158741255063481373117888390803921120707229655249403828482902341715483084177994642084216351578629274396925079041808687618689000409495800810619446914176444550380388249823515899030950231480968947052357374193327256714315684237696011734769442340185100827336866633960716207809193353686663406628080117047292686513250629256211535215765955556711026782688286765345927162705086055261751008479883358029625941136292698245669746746510760580755688298028663541914612953554804485028505470374157448208609344187031284152177593016191349049644238849822648690504666091004604119177496287111169545303089264953429872172437295704451594232959763574611084404312562512266085249694247874407210845930306284327035830107254316053640013504534124815611820826556922794288067785029499082600336631964431988217221838377141315949884316865094838095186723357138833571955190368815761464063456783563699857475929568204266094710639945127917668380740483866435981198910426423530335860103546490999934123011291780867984260801005085104808304131904417740968429553034220206583546576900073830774080473201082685282560871471366480164259038349003437542680295682819995748241994239710519476617780014244013822291372136666943174824807621778009704972266035026402969968121839814804673278155378811936888703585600432096424559922333473988872459472923997488130343812950635550825584974582607147218897681110044641868696230348351059495310666813754142084866475471519884139032091696616091537062419507058254232689197086871447577813834187501694338411599910828723138393719224539565247698682003056401605875448826780910142380613414624390272477118409803297399051343667729361028016581805858227496421439092359911915925735853383668391131280874921776055692432146695417088488553628318707307446008532673777008416518906221046913686580600185268229752330943495862613579130450617377556935955698272817672104522263626579847751801908422099117282159888919234503362152231100155761368877948383235555414210076085255896377614722195714061792384915501874546626086697342074165465718275191097298828294503316920285009772488702188191016372531733856651507954356358792774122711308395715707004890909781115251960750846210834537369404772489517480180385422606226401529023967364710851098970282355844209538747204722288411189693850142390682458086300923749715974249690517421998503377653049713536229674779748925674763131762535410384148778929373631594702196064769619694351273905123309889169877848744112891412349075931633584455943851081079710736856713700335660465221958792067940289148730412823174081810558357254071153729717287096092722415905369114706442126169089816486262812765192716888179490797615955120131731853518265617731239184164641527347001723459605266280910884118681594515868428756916972361414288728732610203542951275742857270714216774094958507736677446070179092998275900860136899370007356122706992847952869298630083143553805596036302309424948824666125657467736152980479790988962529349231928988475185550874328114958592427057586903758296742350579611982859053945482496978817366197078563582251533837869440361124271603453995586434702817607197545091037083318315655441012694606122105649773476689660711174207828951926895416132301308992664793523710231845066133726709457614245216333245853253051208164812185349702752870907885123960932556721964316817620095642710941394006232658061746808170547438987069137861634040826759299022730060266193673468781918695239302380290987773235537228357088874712036420643875772670757010816859863950794990193961970877425562920035742777558665329629270942040102407799412805914586267864207293359919172264409152429621449486515996954665126889409861399594352095598615130973591429419035622947857390894420165009474970717223054094379249550339877349509973232853958099532807351529603876250073014537866593239644390001472890637921643673456211479157673299057064736687326919193538095722751244378213164277649676884772506867663002317556024793426890485269722105688313722737981921549201141838251482865047415763177400019474259293225940340276940493660941296367314660297638950924603280827626597670601796451718992722250640068534479751901890503546857031473022256035283270632521534232777858670026024545782741561451111748672313644860238602637192570401670619587227818385640731739824837483212934697620754512910308685147083612203601773847682525526224067169139236944886611714686548853282643892690080995995242125037096208613612662281609645767257165309291180848929435795682951528126609732760842483583420781535605652794089328447502373807319695639283357245236470591965101470205554718010918641404458003083767060280146008750325452012736437169793072538282212092399158407290622470363522580273572742190140561034798662150654234049640576836757358263036885672169681393501944590322071701055688216477368610007924592118109709122477226390293808188959487261038990057168519676211860043738780497145159214997282326329624811094788257672135631866430703974129468129232061440465840291962584670739074690207586790076274488953355377335955395393635674766596694604804171812866968615943297161929320433629658338613262236935757301050739620666177276532305846782775576215333968658178476552328192649223943125517678772150700060878215258045719955815231825052415413550146766983360856410169442969181164758678521591077218684541792879453151826137038944166819871585395328097795372701214344402913835933371113667670619767154638013109830845648847992103287034530496686225078527638889652107703985235010611675028433553801372030023638343604283832694443193760589059785502962471031449187291328006295061172011609498717040471129802448759548220387546462696501518764950468927553338900249247698773877312683049463727361283049678601183945553322542580966138771625009764660201781037014387183605284952233221516632912716542440914907327682458416221473435399411936006084791919414596949948447984056789731125179905857224422930322496126181609648016335038112369658320918242960235843984379262693878552606313035494992305864550847209258908878814186093234348618630264913756037058257191130067405528714787919067582075212302108523869876249539159961462656359111201928241521956720182024293332664365566481428380049390704707154596405892712161462593456998272595014888917347706492417126379221364335310250836700405172204701873211450704880107162920455560544255340913535688121270456390465276745961379048076349432281498512061235634090473945126359503410087702103455838073971664378435604239236866035810518347147767898932591468811608621190078848248151293799838088021537941432682241316552695863569484742781371327225694303053152838494302491297073852268715560567013596711540009392494663248116624316821707549552224134612676047413620965495866614165990118965981752421607575298844754556810217896893060920764287458549873068522614349912141622290576378123848315821334763764671541918310942175077758950838915928556622914779354667377698767673989544625680839798691289045150389497853184288931817772503615632131726706107491665904706392471455174303756683645226626857941357126656831004360655027489241199575782518777221428730916004329774608148067236383969464359974550146294609700655689673384797382695071345102543905299372916866340281342780471435586637068955179561132481475025257342789269290818737930901017222282460541356210561567914665590966320684021804228602469579916283397938748489597006932198112053175414642728169163677211923891913787042588612835484437936841564104905453758704646643122832122207283420544350260642679031707707822708997521527935665712920454545402566289345910945142446675802534339383732830758479292935743885817281126325407162985906685203920854788034554350983814441886695094841228672665739585703022623990082371278717340695140453745885706447732349692237800806257837638376682181573359851838658204516094251424138271519337300970076196665731155992803818475813649514172878985306046331333986207941354019442752224657425820540401939223032852619454694556237627633278563714626829672427920851956174655049634766795215752035711106757423518748037076825562306678752979613055036976011932085732896404509792928268209000649221319143490195305794381991229775759168506040147661807550445670976056816687751872168511865362691876822208900642355045942014561783171950172903510119760356794113879352009493617617486273822896955399596162397653692593256040151637879273186739157019608404704653131373267269050537841967989445806643567388572312080395983638371553256257886439350678983197707167465418376241260898617514643706778292873618388561224134409347465181617522331719603353015367978544074913151690447416043245359892623123193926904882353612618518221485022328554603702396418282160772231364204402043377925209278776190771205434694743145005489520465016636374821177137729673131097746369213213874300565841120183083291635855291507733362642461811060213723846190588812638335042083249634725366668556459504622258697224829714986722023590189143181281642830042450071867709346725271634850823776175546670776146845956198975051548257937130083436977583171543674893577023401574703814644473209710227771643199259271543514240669709272150181767755746758576660289641263627558434397367475010694879608374494005228692918783173609645597844843350229709919174420509621799745932968943150996781968682292809932087019795275243120434383822135883926330135529973495655669735058980783164322452218624632683149063484887466065870155615542447451432528811796757334501163255623795885882331214331124733627523197823096991094534366049667740024842270880730815130596105134000937568857894484544583648249209256587837019421609571445188664295051986009904901314180526545143389346715801191035167077929602965821361167750623898353629782274149034232260520183987502104404763136996956736259856964865916803754823682603155831093321929844029046493040709078855131858910993807454527033548576987921731242490962753924361759013198711331625497061470428766706789435324570152500893020447353337582321520984617214858895921194006875583648288393414496667039042365924878993067077552409521049405397968087110617692110606611088461185413921626076703138528872649415625292861461814471542805721652229787000470052135113692898324281392524299662584655374572805406900111868587056712889944274713020873746983784410222605602219338518517222258947760841180441235074272605143386027074438033588696756377853905556247669131499649790342002751125862784242954218472444253391283541062375497515856851081498291403553432368305162129171601897773009935617474957975702976963814384248911015508048604829421579381638678796192257202184353492652614021811961299043719059431992294215473531663520658195487142266844227401500210450070862486368926265092440124017402577669226743575404598162912315413511685909504960736487017454446199306740348970416263201787117566523568346004059457980060555733581535081594164015453498043337145921322423217784365430579389285167448420476532879809023389647354263817734309619325660988187522099335927992477385681036466390748097032772054222051460053973123233706183877611874876592743924626213079136857664424412220244253130026632655217975541099979669248472050135360751571503901422822947632797261670834526638287200999064228640545421415738634289198316310592681152184902539969209934645614135192037812455181843210506735319866466805284722611163343440327037481030080250205059992971036948273465764263872302086314977080434258756531587417566682290553233604168096938139853741336913802616910914183474116640085220116861726641135709691803886799113569809401550691291218625585096960019080238714682300817534185368571143685836190513686961897025042680061056617357117773790662014033655518308545794317865893054774963740142472765426083957477806322827976635047608536827160988608830331810311099052286262876857199642874852862063473533866270272334820080626417743091688092542736443237409580293072283404794564856034207054980222282757778917396070456816571291634160458390320049555066303943496417118358402003903336729086008807875299919044556297686096738571939313720872406715398660346221537940641253214944566889275698721326856237449585435070930244201526360092560126555134111049446954307522655940371997242916167608760900907190472784201124075655148467416763490979381692565442436638884929115995907196653974594331959864518075230781697667925167268419825603231645109391116280107914604940165355651247843236560956104165971128080805711325557465621716651375272282749342633899182327093604025177368332114149330112215639483591393086161066844991133674516591750326582584222231473180087050413914232827644488885317350391771413260653981254913535427919337697287949498819265911428140615592587999635931480095285563565594788036778244515128388760036806833704703945568635446405198171314027209909251935460803080962806239072589941193674818493897052975141924476904315143829242296361510233460692515875059353343548701658576935218653601377220003405271834185150793752568083299460539985015833872269018684680278789558178649692837732238914878524968723835054722627418144432215289945168976526685975297278136023454092307414107372339095306570669914711726726625202750818171883210282997115565377408413821006144362855879741599315139537441064908332029975148451200353899955658012355099061698605851930651583244765457988054037319017335048461245533880595905619062284456246436371507369995557526891772109971885294144164029689601727937944798827653312433474019850695194669001186699169059966340976113070142372868625164950337777754544993727422659230941807844124896261901308676491899616761417053351352950879817572503617277916667351236052080872577268659509496079352632000406220019850677546037705040072793488893128551514336006089602765873545644194260029752257416995959343524211967527585206329176407561731030390677284329486190254391890984767149833798598500336180437989216023688347717355014099095304049390939204090550567389523908642591020985936729538483359155633057140304435893995340737240692454822072756500882687250831904397236214651798034951590036523364907109533010918244683810227269981191445023857928124388656040939163774828547188002940710882700247909817329680712148001111783971447806456361478614784535419411668317526884259059546175805692163136317902282773110170785974640539430875737611014720944999787123509346485081176533833305179712559039722961949752862462723232113830963922043109646358028029210066137796149473563305873209665612422350353242330485169206929921371887889367637897440470606701240486482272655132708236241412050818262586759784818679194701664316147665410540710993002215991520619586339238136336566964505069101315653611707596620809019179651146617049078510283694930704837847095428527788650621611212677614536824803227230742505503715815104673613503831560430349231026137293580906307913028172341002250251238061696863616756199139884323004638741848402310458987984105932006887045043961332329855729519455123743019710221143142262570061973403370770498487032808313576765918279125552113079414570751547374980299963239070468206945373288359349596716855571309256465745638096759047080211721308118122163082158186379900971851699420602186576163544344050452587406443320086936798157998058947439555319848395921457155075991013298551301387742652327012279108072479954072811155399935206198124417454019950993086330067941625783348208853778548565717522072432511631403866317180186258511964111025825856732570743230842487542150646387481078369241994788680241063330094687994798760727560418975745710410884309006405012149199787041599199112978128332824138426018947052217288421366584215147581436361624670961714189367261312109138894744330348561062092100070737873761336359676212563293036222101121708493997584176342147914970875985074768006373353520599978744317827484665340515415676615571980933153017375180126759314072864202003696167719063594831335520366545921131599088892167098649744704040225188437604519092483881016115443573396814541614084744085090908695972576224073009086817380617324744686307349701556905831480082703402474607995018035441171540879443680235018889281466768266119384042098717763360982201835832391819144575167439491569048635531828913800596392569126628638139668253552821201204056026513220970462019415900257982926785599135982377915947063671586875133944924425280688666697858055845721127381115704426720950636187622405056336144327968110793017288100988970139579301723728164957405104484707685856630723025969021439840788332766254039662337690606797379884837911848046691805871826889314016030317768302340971130448338445333829193632803433011497068230986515522843685878890024274650927709669152724755399992196496456796922645594755984022383460495448133106919051442781219876152878959646021597922543472259694745865131909171248590822858377581921993271019143584905793808217203967480550039455403289914709059824011573106735736190156668614328727643377780395846462080128676381826636583925366694892524290273631199839979073331125195869257220232678644385847312965287554971540926447160950996481229271047083562729142327781266384485988643948034342762945437434807002508715066364075403668890432759937743187503003708936131654642506129558844500457475017494750446498039582961577977648586221077862829246975464705559133671531161236983973115345185078936081964926773276489779860110329479707359494739806962835512430036835307718769316636206567893999990035642524596857812366417404528914126559106826648969859464331524727697104039224619850683905138214624218504814034687415387754484910220360680665909121675210231898514059384909598362631981213570394805500698381897710682579744325829403989584682444181856843404796695361819502983127524192057868743788046721021845902636015172610534697410923743303455778017534133708739326753928664786941956472937248457586141690383324923007827848241071820817063380081602170217216179237825008166024131046528581876375038752093069557050804889334919825770985371156140355577945996822549407424256548560383767302175479515052990750013178487490571665606067749397814514037000468315294512872102539131788773312476320327808392730445359803802540794307689125635342924820259528312875971964705360135737177205188487337820491024197794880249217839047390040700400308279186393787235751197319793806444127856083550371407380475972318981659871565455284693442063902153025165339127895932461313716321246084581996413898962477719421748974796346469422225350029679205859928440141885769997344905956813510193941840718995238296657264790479853596292270740626367065106810537009665717368802306202420286475521451558819608710337333440925308579720393967493838538943114812461482353225363656107539239086604089669020491044930760972676016453317143373690283507435105854325194980890972067976868013288171702687248799219522589470837483949172941740613693519991585656319843329610940993221188225737063630867755802900900379543089868709948816607138836143855733241680396876553534000118327183172010050502312378787538314528425029517959394494612718923978483361636209484667829730178021702240114907989825118199822188643100981836707958010695475903092526179841377484894881696982209625804232808937532437701949409183345817642674163318002638403342037916100093463347696041216113993484517300892542854494880516397917171342075784999701324640824898596699906649228163014459953785099545264310826629907034323444570580557929636544538503484629716302289029157746289466659258087265009538303210661938264041513310199358922776958066721482423916522423893598970318934082855915501557530230329558606574910160304242293280375305090141231626160811066246430976924196876537251012369098699331026746726595321277299126910434415725152399944966432749102949516284504656942567547324910882056217980646339466238828673928002512977068448678043088965351629825131795781215536961171898792599034354953589867176896189683527148057719294567595116348108355291813522815604898636844409858883755816885452722195635016623563024430785455634890279061086375341926078582471659262013115987366766968362153252244012653812307824188251406878070587634387395208607420141464572845984305527948766767328282711360684597443602057048254918054340276652277378220773272559575045769378711885742198208052791936962638806685744068204083660791857786127361872651467822358740276490219603478680820451629418682024088278954029573991452531679766310648890280799550465511953565101277295695277720489807318796693444456012530444640305907439379006794966409298790477762312332241054701495873957781902314881905020518319944787970562815597752448272651375880247629110720116814336720947161149876770653592161321258349446975044719655215859487826912838827300858855930045335272172804796298433255557921372548738812010919807031740898993275632554797178065925868042882266370722759749314354282873660534117227197739876071673122749332511634757976163915304521538320957203043017449022561830541149958217466776072785797682806583890809823611417593548027515191365669115268835998041758278958945839581091639224573468976518144599286180584200877968355209913120502792918148772389376816576554271675189467027039747203414898701138720980300167810064877746955709742919610379407116924141704685587595229571624977301094024478236637330483916580407397450005959019861193996535359078956815581130963535469840247662026024833139794262340496778765438222652385812097419350465243906753618684309554665835068397935009917259100971332170658562873608457192696767439902650425662870106379395973946579098677264434417056272014385258526884513279492752938068733278488585308588166764690591853739649871212040144095353779356402307188520668868896696919053999827214105567102623844947593362311453133199699889744432769142980241709478326008773584250955548272202546949232017576803715963890652912429704339320016279749959851978886138987127380641879320880270916419496130705859532373401522741225374266242866930485780784894747238756578326485357435587514789444578414609250112548849692700880603563962390285966994428011384357913448858394377067267781568524384053911999869931942013750011625893676201056860731891896857123127779946698492169671483506937385282882275977848885816587674238703808462905591431801683477632459091108550293164590857327791957253176062214600680468304196799480028215961249566621851040769832667531658336178023621897181337278111919215441743708125449940872150114485870717485556433503109080027789108682932964269404928686107403062263180489297258973852373744333958304047679339329723797924402661112430735862163698275794818766567981378853363624792650689399947071215138537444311395345116728164004772765879608557301755174808397490756729715403412963810610543580784806764619355292440724927406743563767564668077158940416055434874109443277017930946076568858161897438663871577461033692019098010295027922106951145333480382181671047902976585612579798732856178418707191047101423275361471072651353131105940532624428505211888406957961765294319889578056574940551192265005318046972778867601632375006370502406923053206892464868007236111479708371098614421613207214495866337004901728475208145590510542594651969301489745135306920970272691487725372318766567276810921864075596853143206436473968069888519977715676007471840113667161828846261313960873876591711105631277935188081614657881382072147857792352403467898260427730087477976979855199957415792935155336855193063942372811789993629496634601780853641146551804623190784081932071492241473519262952082465156789439677530051807752280338767288155051674816073811164515564771451803401187516254267992921851759837458523789872505962233266874766799472039970172878660605289184399703363833937411407949341177850474399238760698346620742989368858717441797044232251500785722090786798876513683105212129411793614839719569914614813523900741251420324542852723560991801588352841160075994805316663106914422605203747682501876429582890373741595409109228105983990496370787253882376126392387397876070126345413288644234504006664047194129291462202816843881424957625114501677196845045927504678797451629092864515259542094785100846131216965497573336016517128416801009425629011385573743681581897521703000168196254590244385204357013879035191719728022648198767340851433143632718930665976894308324384917607121802682671115707993153046200477640779921224065718374044204819243622862396348683208204067241453264151196132778635021181322590235125246232106599020013423425534277830112035983770897155975832911469532526503591290269276936664339245978865418421001107546734424284567255754428347748088368422211064105678670564691226007594834238190299833456091484230505223984201886599819656508905375773184417848595463460846612154102036890786724538319342483275549961676874220388028705596854566361727804968930195113060871240276956692396994997864048158078337580267803642703143181581680476370430459858352459826440818024767324172789747103842544474702277947652173536722837107071174844717862976976130868691987806596895923149336493897608015719273431952574514330373539135933704382029225422899148895514453294901791547220181311058701750276646270615204147621095465075992410591718917791825939661408835577169377779504032988931444222784797839862090751701381082282419055497854006006075917035015724461781984214656450429465241366559666164330900090069151705685134269154900611487209917537328350092678559186374764930730444394750471411594385173666319237917351039151209548189077583912382729018854077029623566672345151417114725670459483186270447479526474336926952803034564858658414777271788343710978076859630581504112008447538863179231181991362532380108560940670510533427249952949864968730754568321830257286369756805328555016620099994451928212147270718477740174096208084705699993107842494591203406296847658161832149607286530362469944934190663117549678109023758498098607017694912134651683201332405735542998988919942672921183748554745335369949006059576479890815906205559927172409748860213374591720938864192003985884196152785093562172599566282976320071176677415159413027963635927917092641899208641012017763035237117432939704324181155170442791135888964149510523835230054408531684898237404199935596102548394559129732352167910783181439182862079514479809979321805797837882826594911178070591584375494657890371767937215026765202894003154795270842596220279006944431821420608607540978475173255355592832836957370967902637903920955089144609437497864852424566103000991035901383017394349360200207868878566930616888794048811227951380210439592040693477180553812274939882833601036701802885381244762027356529800726965439516752679249973730960692413736844238097603181034529699089642600475078397943708669071481181083229657692280010838538411478844858047535492845781196499424844601372593746967213657081325579364560201082248262620098262625397314483718510045078463255962663368641538682610238999515503599554267579319226392127444675949315469718879218033349098910022565556953363296610541076149346828892057236295530603117806072120367448135264884602523664881159885332131665540358143968054218292074573714068290770183091491945251193120120037659865524117219951400082424020140503709692088993546310365466635478987721146727435945565279395762592423843132994785020588833918245028205326504586555171974259449371369335432630222855776080130486218045642042009112316093431401489595027869120046257426050438540587995097766032351617363899436229833311265497630050102969011199659684858005827250110771140673282864922831311324283463865704031645730718214851871655004184603719532257991800964661194352507323574662365871493068693404839731747595148690457321784314386382551760482990416691986074370532936004346109547017271374567754877821598476791394655875526737557098615046940166045884200398549775738168437366997250641681185747257501859185434537770878914771428296681339202358543370831394615040698373233621606836048533545135093029291956879515434427064576513154530217124239866774066075890320168143392748518352782866541050446658861580130690706077598633636601985012279477518036509850026893326771142513241478155218621772524635092396357470488632784802168427680365817334232376311215411339568023360708324067743681948726028291994864535806835589339953790827187111540034143038164824616876161429389748621486029887679471983945918217106062890347076291457549438395034364344797343123572543551895017403465585502277297975680512569910948100057997814873774424003640982772294406002328981916688725333094549275310907817696860984134276045352438490942156556886713654035238022405103207893134137668123593756106778463986517678027392287545671903692198008620223380580096447681847977760408258617660765182388601887862219579450588696079111534819152960781115711838633461252897124736890815296251102092584711546214841731469128922980582161647579229035751166887179083460739075877675899434353850396758494001506458087785362124897156682328892860851036210531726192602489199664863262671846711653613104341252681299613463040461535058333952561192787763611347112554121641289230887499433090348649229044178972166990093086369412226604829308029505780073419036018299636885074416487021704801869895824368370140749222392506833989860165979467895821612419035103232216485312998432100829505008990252750877573580857662745148482091593963666947208806626218734408508841619968077907527614124523985005020090923510150364190685635688856044647835910563254714183768791746054964601835242811560717465480308034340346624896898125564059963075876675587073074155953517397075064360351921482851896457191513941317187866911210003270609035670706962421501773709429008494254242568416487233872447342401764401674659544078059064571543242834893699199459524534008414629963999162517609790325638956053281052763045096747225844361629425217777630615700936320251470412320484490768458460025805244094422333666349395269009933317736778176136393027742987909676609360525332601424522998142472034657592219187233811737165744831846312232572120999419501151660525561786348371093160307749526296793006605926966254739298233186771096979524722791813984519092620541421976764048102629154787110694739466833336576983549821731696625216976163145810857552188059983620393625714656828706398559917959535833296246872848092524068656954228453987147389121713188251112052860009673840896195669559462483066094082440175104251454710016310534142306047455502187986182383182262197747317837941524519247170273664113175216717064963059835855148700915066106252127449468460868479065854671496349120530836760738889422323809280986397190946889581415674559733063098537180486551549797451820589861890790012301012227696075395604764943001652606815656864496209190093992005311236427584922123562136914555210257655064368765717107841156926084060471287961135176637436552116142174894981990000836545740174849744116655488693354884971643180066703138783229948911358085601967106266435534588361863087068825406860963227258926535438364615495021887040344437483248777499504925053414014071642092686198761973206846348572188515519727247285620308695786838340876505217293018573620069380129160771209949290546718979399757816002419519823986102756283962455111708178341166973493813779269846921782190012698888722475178479979215675178445965664570529088297546536603818426349193057110316589276164750843000165426903619221294790243924241394692563982620402694639102088693573503935414264732832345583817605233127099014219442971691556348419931645512889837289006756348460469564858168996796905677922049555241696559220858443681546789147562312162204388897537446925492429247142143583362624981958094489166897623224128655982021115262583374241804947505220596608097417896513565362410607552352684208859197831333011579379296565124712549538827630123987636445143502482796667048468088708819607021245345367427252168385529242276285130513601267077412246948862687719060310313790948481596996637845641977697348642022985260089284026952513420814123831107171834284953812451586342852173844116688041290203486943722192828398874958815408777095686663563473988198488432041172199372210370194332132327961697695624143930770319396682215820497505197067425189288372517830573953873082279910038027641415701568715710026750584445639029365977225487043451301919876235895715413151897363452892297478762793418834886079776206774166454043403320670610078663292739965409396996209163092304149608053833594422921914143166851373953040504482363853238248621028898014971980940522144467594010493032099231613962981185364594541894044026334357191289911061667645542034175620008729330735598494292239154490203915582093440471383115943537073472595285264253120298349544947434677980453162099376432383558000556606639861188140323270829934153700411034878375603802942425225893336165624824921603222909829815341966516024540536307839292718445064499976993542392094584646461761451422614788912803909977648706718086207066121809344775405259227715332897180353260767782047348894066309428943790370642438710816214968959802261823413023627327371734808835853064619091068007147637001214877806777482816535878879904335562653709140071566553102682129118640082076172792070175762676551888996681926387191060100533442609505470393606630641911111395971155883780091742158577682599275065805099283953993474785153860794960077726428348028344172024643265385412560773746009202818212054388447777717986334912640842234752940061723504575402484051017061529318122488816850681707178051684407160223405515743050460630406931575439288606262996906119114358839044400390874094500516874153218997202401449166229742502164492183598867459927472932690831569373963406699535564104845247016892105835867652766100614904131130684752055337269316447697954400165392205723969297875326643569426298630881845788801035921126712080018205782774424611352227315413977835643276739075225611904991355613887095491356204462995610985043492530414873592269180708332265078250307803058419396788216448601921441530767405457522069495747399478118805544816307632683549662426771996108184606872491000197682638382273272786707160332858664181846670172752806203998830036575844592133944713925588160799288766658747841308396622796910650413027354643564970266546225725714793390932914111583412748385573983020096410985771717637543676992001397518512655387383978584029465980601276173301153661769250107275091295317083237365412335249360770243187110538394372881682097119327327548098353639704820538658257176203676671839959267636113416703386502345980523560150441500957427469461708737233559517357863721718042168285053920763804315782776173255313837902393341906852998077042248045774133670673567292853407170252379681768382215137218879282049059667614006217554466785468588706857806357968350973994310528205616087680309782629259837632980753659491529832918644090259298407926436119011551287865228265539682695387686592279368604015507430406772295460280622043097680749805311373472785785805171231772515486834739313248307994972794504887619214361522618815234298498103230858506827088204988414895147773600614930988772525681861124694503501633037301716344199086108621284525095364046777800253000001081515397199634565129996815815612031968359157587970919724907327790700515468116434445765808268419345320682010501435656444708374413236288782101544266655265414890204967838126723241822981758733427022510959827625200716353568650590463469020739131408379118715451236276126780481158157905590536601887705874354466892195574405610263417877530644125762106855033889559450708173066376121471925095498934963240255433053137439111820024819321601575064723894211014236620348700348854293625254726353510659756745322310680219295996255035976237248052560623529285515290128161648840467088179191082116424020531825552561254302318300704197621626491629087517469475066357204777271203826744160095564831409633336410402252392228719489678791708984437892574723646492431753953198014777591934558175714788996117587605805362492831417707227397268552115705603839235484280432353021463574942599725080109758315540505236321476788265849207281583835011952378879681576454481637575714936008972089815132523540846628643395712314403912087470104289295729412545990196455482583647006824630069462845294366428535291617244149388219387546459352231396787067889325005716155248319553900872838190404361094333306346072140265130486205336282112090945811064006854560986042316601728531976767704088568084472818297755073816836051556404339886672027900155145907266115721215386431510406412732769712346317066628262264712768198170961268428328071154850714173290790410382483489637353348544432118526764801457411944635388306703383634934549561668483688930413051813272031783487585387098186026429825536778362161709574661256239498103506475435723094844676411782255947996958769307538887587072847213582609627000009987632820655433191605169838992038721746910395687744341292080150732582577017141185935819618624257645030930702360681408476890856159590671380196241383779795091510561670841690467327092033476476692707966516608732013888017427177571238194350419519699007053891135772978357691287837395113728087689566692750571946471617805070683845671466705808996199201199782622506046236401378231368661336779555961777430567541736015426458275602888525883823522732165737103044111420834191349274258748013048687566241427983484236242404975902068551705965470906955582791142920224662873810101110104766943926983009036625805016714624606304854378726449230828633653429927605982108155533656819436651196108616690494908166339300854877602093576183455570724067899477914230774427171706415710372615416349412675518042089565219285990349750169561670964405403482984842320296313213308057903935180567890565616549770846858327741213459661167033942231793840045440451437287933907787840726140012293390175055749095436286029328860430445207595815030758467897420043624804067736045326932074282177599132240714119306284565477091377821043170338004734944336620932716310888968997929439562503123003979216799600148019228587918791894076591980701149914077674780768697007540066214094511543051004916356206812916513384423578401232839448762719024584561187349682696567860904330890217958866123401457800243335482495273877442588145528077150953155096744031564291878687157239890061882388941164081100347009505897532673476282824288162612615713876295299206221667784063668414775286509729710235807555955907376657372896931484165733821148994319507554897461213065433244956546061384624699457529689022175000385825747799886783070900200986151861913811799384430855839212744433129902929641110540073829709287774318559977719087869677811172273933037122462810423497402953772019538766573304042566632792831101004269790629240012420072802521137664583977996255578441767362387706001193460190423519220336698279444966471622970487050202138799733342587757208713492132859283847393649399784455988911400172521955207731566594169160467922656401295620240040606621507354313476676024355087696527254348631540817974979177924635173722731779708910237777030844967935366319015135454247553313678747082235922857772989671538891432341165684042036671747019817137429743065672699312001848502312986084422048354763442675773931867764249498291400089370347440934439153712163763151951752239997059639021671814330115511962770588788520362629540495482504998567309712689825155786434037682782558431230510553267569145261648380098369129661358502388830720241294584833334121443138840919062893002115475539476666797695362567720225128657599514022958578815350126192893751820263307248859944892276048313602636028796417179254412446806982925534028303217587269644894374900487873344721681039726731035374784092871662475173351551438504035309290460461852777408915864003578202124706458216632943342037486016034210887086912749401751365909150452612375167204016073948319356785299486162641072591583569471381494895990951259860811700133345459041794022063610948970231136195141425371562445200493041771233990746994218543240407674734528959284564893119910413205741697738479383539584694193987128571444181960486973818588747887790169723731385716162063768868432596015697392310264237281529374786366906852403199824948831609162940373197424628186676324992418752409497213829808117085332904881320973503246985661146773008194081405498237294103386291085827607322232291938931288122340673208271920774191554504540238293585055884078469670830880547874758622987706564411797326920590767713982668557623132367351325895055901905848043437044086866875601927444135490058700720649787068685626118299204865087459232414181344072337464221326094161050294769820961574423017849409456058038756374551945911609423698965936936332396223014292501196109945279085092405825134102613989064070315650554283931310871910701824432113940725383002411138691164412867859669338007824303437439634506273268288689149114574420831879285482570767659944447957109899431864060436385240070999044028122019161500344286065704811862552501844803700843831119266505211672182649843687155268375442535572127849827213860840126980221312330042817004645141391830575913973868734985583239815284561511952342571726296147761476390837509864202243342207579197975915093647769416868033164376505977517498614216893866691907543016247294770724497655018354672981713471447910474059208944372370067490716857195493534860788807951349124976584089597839980767250844341922982941042805915340654398680074531825248767122140163328862607003410718343349500283253551832138958182861108526525578476558913722004958446101648359126461589788119684473706512723477592937712075237587403508283995210788589424306909293025825762109708280071195388050731008388601046046951037614743915323560000017177231067069862985266091632357575436615034108401011300040438111628025688205195240679751362816272112950797658077286611043884780138812538559071112924630796518069178629755369518238298413580482378768787111399286680373278536335481276690966444299527947096288020903864562541764493544964171827963450559297993477138153148711935566766658958713132003662289304268313954319305249827758410172797273739181964262504203457676893788056164917123912315051414429112866510746717555705194142481522387365310122052530222858184061551699872256016277433264317216942166166492337773573356496386669543615594964124567959421860609713159516447478112521596889040529192610638915856255618643243972773410338985812585642366390535799837520007078112962279280500259715524120266413227143672809684522482338141095069335053835622829703199690857385697834995604399212668159923754888469093513915973429786846642274968011233405322861003477334651239313799056584204184536589217042594969073702292233920673652279297471977828000741151004095430977868216843968872940993894078136551643560271123551033069558272170337637114528625682215539427296389379681832661891639704077497539417372332532452729571617937529303176234125176429352948601502278159375602230667491913969725502334733481504658693583609563564854990763776377191475171837292060035416158090567092464644075049251542260438032438026460735353085549480153577643788370894679070725372780820066653910761654809129045527967278052361444336120990639870912059452887811284090395580506624394603808804579554399534887699756356656464354627560576512926884185013614100081376983605432401097443011253961932787172506802028443691448189005156284991426416338722151489184361146646955459649716594221059041331646528633465776609769597562352143881061269361478916016330979228562586941596387924969371084910204533538528026966754399822704992177315747084084246972073305677009193139504813039917105491356497651289940156759314341328888489480479616008686377380853695001236962988377750146445827434188186955383281611696261617768034789464813174476916064865892072606477206691717352293568170844861903537010945904775170580242549213170411073635486099291198313751927561495554235591060264315549814944080345730754465814321940349413849381030605676760667694199728988113485129377250299003364468960966798429816783178029191303781384693685126068784826473432298357137699381348107914972792286211474968217716578951491882001219409555303494586782348146301801672281660203078388701182007437197489200509563969026420708508673343429754654097722584494543277170571531358160981900817572310294099319516436145615481576405320376191902360405354454477353183886238835768646418444679485985354353968767484845862450617921325772333131809250756489610042991239708030777743357252455139357813272063999039581998400229106984688165080522256234022279361631591906899633490654313217362928127951510033216908898241549247848896091216522187172263993005914161925366044228318487661034551129911253669456886755758375012050781201886046136126279573679435099613236470389520870893641801302092108363337802459397324634346323407747853148826159391911556684730953532079514609083242578640002946848206172922696010290933933147544491301094541733648548069938835099015400170473655814382084054386357648654588806332734110866519767371035809401436260208413984705960755725002226584470058916753504076840008567227743469360654575605998899454429344797477246653734944843646317202329520900358641086393650194415858466933343128213517183194151459251729273142271410614703351595042082187869124190492398243296955642527239746996601662795443541381050523536550139559133444869766571825446949393427058670012613184085020890739925443274692728973604442323978584821331894341074775103666577701514606772494347957895172837892039619632839558575629076949336537805222361867919954207564151726975176489127489418855032186548965762194615720974502268614791857050493079461775116515664383387007584670132865421845632334138338282469195091800715602195025010194975750947523550707035628893925036918024901979932870125331686476974347301129198309058533223600591491837192144097493403331378077301694799709396791947302271347656352220996523769723692438624297314337670492542557562895761976099244760257217781283063256645327301802797237357321271546118241569126803147686490173898370184129363094475044084408931546138110923526853517166916779351744527104302595631873478005579446289902843119458112742064366839884441002667826548482313833406972467852583914316630595724890773933451938488807887300840379516343590836522257881132216835034516819727123710862290378521590609783843227591277968825272639921618063161818957510426253726921036047826678727195725034464518753286420566404567187263224044425433602312207510005302969403087594101288510474819111282470173526897457664215095133133790014123157914968446285451437183878838813700321713982074353102121079504238509236368627113104060537514831900896747775735901964867795790969366625998368269473219427332439644357931583794577372632824050028750047519899413326854463142193067751163672310363275997969936306050802939092328983281340597130178402545563388793121054488520265687743936099051895334568819560624176455420683428443780297431273698317997409187018164732543170737850322677955731960339959529257116803427607723008997041790018180003160390413574157121052499620518898106316808908463488915159562823491850510659245735303522264214398238283128404746744528103951708933790506985971422112992847954260735803222901774641868202931559498507912153896531544560565338339873693679212321099277052984608029630936150704008838683965864827026652534465718230093758950339437422239335910359769656926742712583868495152084866979771517052591228467906827012000651897268512675042345699781397818719787192700168498442409454323608555493714150590988981699783741828621338932369120653422077459339954988947372497497501132475040067512184291696596552310972829254186695503689650723665200111960636978729143751993596300591873185996088739206553330846267377801774302370949038996480007550640487199970542556577818126149158665801302144314342148337464602488249031443949791521086660545475212774943283792058219568749140331683975704582770813291798257406293523469260933382363555386546097370774001673939133557856348658601591757415297458964466722281101910489862660867192988271132874533632571506354938395611881454540690804959862163441544751756753099753590206206479310359103320370282892956467625536734854642873522929491415316574465421531298248867129100097251120062880696692229544179657949326708918218209046360150184909834190970326110578684164609558415186807397345297086685193476819099730234095436480353936384472638387693494403520846771527972946920626249762841213232558657477712138154836896429897814578808896042660727339801137370280651583929871715858641796874515682209646581349117721015379407521619612090814219949679003698790663910337952203388276997946939960430152989291962508827318081463705516837709743481853681371777106770065734758909661442466901188290515779107558920932608138679084062933329413762326169052501928360793978657375208719285305050247891849054679798761652750779140995888067073168338036391035349672407948612623791690881365562597213168758157964248005044347124710885993751123255094421610420209530278596799683565439814507498687612361803002726784874236267093912214247842525451603616751134830049091590547511774758433970031689608106457576724356753878002257074571118048020894557757068149556060373738801318431431296200533855654246473399759020037084475994595334914100459076562679603515014125034005469148699859048202265090163301400965726167309856370506498892640338017274164049733106807960540918282538255919828766150029712063410826434715951456337787743550458358612326647008914660234090811979618712028026365054470406917691253938064478741639980812800826446279654118002848568542240796409356758128412134192310745685654730718141976187715002878775632501492614221326609637150273952660003169697403938865917900880844375648320337765744843066833042089169664181404734972147264475313629686381727420789145134085453236798052973611011736447432335079007197801236422712909963717691966974928841929526644322440731851564756247167678639721857973564868913279091188810529216508390357061524746418671179973968102147234752817184929576364939601325456485079011728388563803024292760543677129586677828264548068816184001233542541856187258682159426559449741331301354044046356557485359666316742285855495692164672815319217937859095789428363122956742033218617240325805533340331690096804084830334270940166539073772400996609822576803681523809890202431971948609575824323772886550254653721709026936482493747673933703858970336767690111593134721305744021062724447001789301314788802945282068918713199908382619026583647350504021156776141216986599811903364867774030351854917295338459519653500671422078137828360307031303012648304207766724612579608909497367700213066813489686680271081947471200388649086976233014558419670359985357349130225396001001106121418139979564660272102167567806622758229712493775746578812264773806935854995186673952909544999588051544331807595317925533791477130269428349092887247136381244064747882132273614287696158999547312264566908621407816043985045103256300525704390839719718187319431847657899223790710136926202486390828698077953827971797620030529625814827118400334846854233201380764261490617392074061964650470162815598122653324877555953554307074059965578610443428776002267280221191713664292818204908538659882689107323786911260655186233879275470242291562978772384137876104179652376088632958001537953199527396248879383136479176400455222885434312114477347732434841978605923278718650310912441925987713460540305997730004573886803091134763392921320681857885972516312549610128214538320399568838411860822519182515940132523615716450941852333056237270198093531192255584825994477451980675477085984088139182569755689446758175594140272027071897253678153412145164421740700280241916782034656835532723881820716673283137929714458776398346483249016636825994130543834617726420975889688411944501987369390766189439510483955245520009863646474090294497413067469906723622667851146211893438125777406390209090771979139606576806717368060617375737181342891186476037723248325717905416072169375808726942715683812686566431622604330839935474480862591223738643845192985975617929232234486748507585129243689501404997314260503076086021181691445436759747997823313169424002779491187835508707487703660198843794521822475625437871020652742545550174062692689835545787260021387409363319870356654072174924615932352474334040492281255984269446767655163206524966867884310295836731664897152101590770767330794214289236062873055449215508720544101443798696679173518544013621950982855246010889258869693104331731972146002870290237405296742943579302563926052564567873691316660287553048710839133493229676350013286089384187893687119285680970979924030789821217660100298608759750053210142498351447994271675802888241831410844188011598128244415862535866445857380381279027248445152573972321023023931070639990279036901477049493867263221621778093056072728575338287284517735804118429112245838408704114582911527342363700322642380281900592554585791140537015931991671780216015899326420711562928720001749336651238194946767516545771077941611186408833131630700039392176994233904450850418072500100262750729000839237497994290692068985670117780074859442354640119071671737753068515329957934083647560395837267869603604955560426117209182588310619821551267405333264781625597277207314462910955795145727253407870521943013848094302164422058818503577180908409602316721736223825793729766204451357782282331197989633114405428138767613007707797269862310458313323442301301784726591795680679892456947489078589261685877610944696584059920834773164569938077912288722936035552712519566778572852236429920961406177932365905209033303872381894825360724771055989222558777274112334852659497523655891871915074395774844088920208515384661898659692438908979027723971361715079527883523438380823021964679177184663736317283940404366112269818985112173534132432118222673560388557816688313541977782759975856626740159371753330613518349875918728169340597827960371659311384935198680901220603694403416017596713331103558315809966612704394242381648505026325055935397664082973107175529086532306228896676119629386675362544733736329521255831524027831058802511588056823462602710450214721754306052138182682116224156732694127227099907044405230827443860116704174243685139643187890791216022613304016587460887105671275805394079706084316240384734689021558338521376385251862458691561813920263490467392131603038223627534011020489851154714357674329139774049104150378892558854997709945315113434161865357065839617541621966243631670071908691904979215079656744182759560930095596437341019568025397071169929003586193852414916537189223540221452253449787861214187422778829627308026086031794038760183634520730573925427777768510648578280383729999830053094205536700322900308929184530867621222141227046440221971756711166186307047743991958500620171492791340857335894901197636932639519210300212005992808351833845972362749348324246958029458571072191195165305435842433599279171076981192697485839275988774909206852801436975684957273876523837382960377391563622173851032683011976188630150770432301923301138802256279561911978423297857185198178601230449910340849393942898917112238003177900949247312434361255730005416184636793667265803067279327853823178353196611516940997685161522580064528509430272983483486829538932920866027099195845983099277212721559312191468775555345983203258950639576849853845357530374144964614705256896678415608242640066602711499052243014930263366454724999879090368016008454362557904329811927553907490774055589514163052470973544771650883489186984405701369809034478331952159929490563752709157488927012641760714201308137780483843273364648182387492412814658379160506659452988847304661675087375339207922923244417466132917439920324427654989429984441401718724493949721212055683692666409791771748141381645546938222299145279028644727959510965594999726391997241573067549973691325473259489919078495653554138609506263746266827651662175658051426278735342402355457690081586850129051032567702369150715330947987557380950071186998034208296357462268122419906103029494472497475718615362771393114040222130579368834674730299619023214440401813423996710177531307736074430633646380581770605701316485831726069502672285099606867461131125438405767647274586949927925558483425010982946168028575354542043206287207547529525405162421354288383877413945052854896201913993413475546072834749383785437179995729795431797840046394523920872744539851822381071301780980207448366877880244021109272312862105697774111247660878956238569481514848024408811119254299639187790871494724339561348553311685043246267002079013815101058362069567172774273741998054182017683877648362718105558173244872925230647835158969650628578728727778408502020968045288881239794369289230846052370457209215892345326155576611481535804478955262931946371423367643101592313106035353143805830567487977756155269545036449287963719884970195927337826239976509961760803738870049806103718771453425358494083339991558266537282990120248585536060518379098989641338817381538602051189634293434695396298346710495362008995826160572932307021402626206328070892254136493303622982234794791102445980702682353917994150855232772999712765124288670526868391182596798602249152580588991026112791055882893858247121183455998860758808306007479860975325349819739820798873730988642520296678269829519941482038598264078703556615922823740254211796860797731096662104376721759517224498837047560834611830795025753534908730639957423592619214645559322061753909731561717341351785939981264700683647308276116235886241003980147758149473417497382504209091674163950630793723230750762321722151585978134195036155755838676165706072203323782192727906547400594908178845875103596573552295438732774303342909619511999901788377623586311765544788240028512774651832339013776587284034985382034468050899132426502700632338450342125688693768330827353241447900890400656774721446392455587479797100743022220550305038251591193912540810823340400868365118696589312275526126370844946355171119408496277698730230791896229749779420328673458720946006058172065394789487224299319332168293832204662328168421615498301914209010659966783522453390626470241146367138705664812543218286437253427226422001317111844412851151915369287296895401599410617087739142418507809951433009108569791965905798865118664608440159871633965071888031840054978975789915603280086179126563440120759555134680752707844514410253745765657277409168370167518284468548052009608518226094477935543966073919511814220830089299098591094103005758511903690838705647276610119602612064414939258593267244003832692706284897621125082201153770241047069234562350002966585238711313251233349977858516251407960635704614989172086522621770278130132859739445787254788699926172074859130903848435410944737061878481721429466287780552550017153505891941157870175160224792356390693173347775808077427261520178455675217064709272940716483768090687740892230276468565578601825999877923544189537670789509889069596526788508512708073424440554909924621414950681621167536927151407635354112407310911167133100670570163075767907347546948888400199223982653362927052454748109253773745515189076917117816780592597462808443997640914072195030496484884542755544031862366618487238379317564432183825147117699892689765217489962710759239382384986393803369765080857914732411566903135307969787887729448904154769126432585989703502987308222874102340418646275942094077815838594596882011387091494712154843674843173705444629763415716801147814049568374684429583251458743063588239758845442621832204871655114738026423202154849619574703467957438498473792570443877378029808859604656860797103949144795306434517692017030568114878849300990745221626890539977079101729200434968296385566516834162071352952081590031658705732762716748511273072953648525020197703397193420005845533920880393904445706943863568247744490013570949970422309187502601656927901542296043629343410748648279656883025904198975267944407093860308327658475934144772425020269834028026417799787450117174894939549554399146703089384464741441347321138254159603220273718268824838777581487574352935000213438355337927367880805670763211060455084661118582678715775128109412331315407359510023113062473268132947714014244104256403461619335269906251997696347913825563117111973468080600467301618676841474967552301664125910828077916445719632166935151584816764620829351758865790638650965137409723857514372348187442492035078908778785649632023275673716489437106013081117265813371095140496423162696622557201778707698435335496822852329208445930793280055334775795573307511217066062933859797664526266048440905162487686993185050755016730400738570062111083753780450231886141815933154308366138186976527926735359913339447916839571450118976133405922217561816202226271683232576704699626695445696957105017109675611244240422337972877829377907607900318104430100337878511219159527879401531161436627378541848065349467999451473696004056960696976203424514285577657125070743786639669922961251988123293144657062468296603731867538142538576438103205067731255591339787167170605202239445258289731248550962607180448789600729469295322659023194105871383624438090069817930714024311472130463258074520565650943644564124800136255299003286147396771555592957147069306515254736183127047365897525544559004389484047812936986024993538259468977355545485591032087885237778757253631841840759966076967145499392174454250614774780903605168210628632611807462440214427119222095684159616119631244323637217137304071067905427890886325954632897554542468985654568144125738033414841802540801016414422088036755315559156607543602583351126216190503502841479094956696370396083373002876750358828734171757444085830968847255473327019247872544792785764623241632941584389503847571164648614792929391278650614097303439238779868953545602037806643488064945350060982159759569604344377597774203205538149209006226049835018544946716399453676424632962862347183841822533344731165175308161509507236783169189888834059566185113493562419100024718442796324029349391302984519725969916417634136309045488191284520832609423080739718101281540994642638776968205741545027357769308768051392149167428100809504866421047689858212857552588892538809856322865854318314921317069071444582002450920222805667119677267860151352328850230747461898204505708376309686033782829130836481646515782768049336481206568899908733471323342478174655248842423680035418750322305298382976215922529126859706336450517605124126947941084415480139047462158164825723109589975651075485415566354243729331708974229392362341931339613640272386884557432418444932305361649634451151035333460065000513939828821019026304565112402741702436328532543817782050873235952869489627471327090646875772316892992570927753087972221852874653986870921781410978455544034829331513743994049237882081835498865794097751196468921740499357195613019028251909820344157931388616743009174760920841373712560011394395545236450737113149999230253033488337963393037718128545127052923200732899928052888343610532000005777012319704781697358503537162834400546067481990935167597874483720400183272739157054301790249532353510341480131852306563461631557723004000139704683883677579932723657940484975802391626428952523398287061179201230780825862454212288994854671517617121877545664667843945374624256930716416400017849613357119866539500981399400066954709205353084672457998035691688617062123475459196665411335734006085054682307802898482393590692695755822797642985580176198055294838812635909358118167250653185634682220706750348756089285267954307121760239392096607759792158435115056922489048170346984520353757298994392872878278216760044268041002670945242390881085346023855836066099922552588018993325588468917622591503936251051638358916566104716910403296302161879993784471137975125878007434000899668221177321979479333509710602296071323051453024758794048027263736374433654431729796700522055741711062453435128082620142164291963156944723323728944158384131910629948527259410863916244887325731196457912550058696496856171698785583632892572272606060353461617975787785486460784143748604680857861865969483781286261436589682935383995282482257561524914240647207323746032385730893311979533523372563817603214072084915158930966223039195171648854993186924820777901408878535990679264938821549621831740623359265439223974454856707310157755265709479112062301247386165918363721057098670652168403753092243140557395836219051095468105699811079333611046141460420516567053996335668126907917507045161471002836390600342768266243932866105396644297489911505770390304298396846786417307873443061993012294646081103111449861801693784567035191850048012622772295408687679107709224979780386637319486742769312400429637790563750817394820289104543355969838663250577800105628747281788503395857638750529988508923916920380175557908808316825149334102750879490942172333195995917767279191295536674404383617056742927482065395273318241018896608987646449682258644009282493843920982329226956218058794440990778870504229010605888548715235186933519964140709593120818164730874574299131540348859298297710497658793189201073523483539123257217763766693871913318232693839058322698955481948816796294140789281567210005135158392380918210691719519906115781813980796557614241232442714290951869611979013879463890755035414857250035824573670401438626884039182276379432070609800965533880108416606634548411035684846331572745327073884954008927447774090147599936239378599177643560545725272723754187969950622929868509377833636156277395450139162190561053820523831871618121156417940104089002542560082382050617831244870803876849144380155615480783360315529830223972900767729763772300383546207843018415016441187423111359048223263391679906569582359861083762203242709312998858072706174069485246552082202657782618971384013916051852289616614824944007783927487963222143767052583183104473922711426262980011563831035609936474000737959444660787506245699882530070328565729445156696406977832349934761030155593284007643343728812709116067472895632051030162108145214810198928499114999408906031827364054943227926814014320486140387510968097156141327170826936398164208780505641034866923117733671707583036511244742181157865730112409363098771508405153231134372625456650859490075765149013432091079605439193016470442093983203774478490242876431470798069463462758712846776623162339825715412931762739790406464756359043539675556037230050251879107238773186608999476803697439779413851108183442931766870963834642183827592913634495834105727812447223900185837044655157052230269370703338373213759055953479135067388322068711167238980765761981461690613830537465286627929626675316398660443283216748855632761384451808433690470146629763201116639164803144447339012610476674594078514769435667437989795601563050281392059391515382972756151203731668315345558070304219420257446092945757513769684407426611834697614852311565157937317911685338816207496146715025676645255920584494944524002207644000170603645460997954444858898863536131936373453279168677062137072229514174440138720837746127457640751947656943165719808978572381040813641570287168194770052410589617154022971028134508705394118231863630433177284441446728296056357546267994963444325428564453734470668439441109361728783198874481310974429668211524243790355301965203505233889971414652474218993984204242255312265579914981531707979550431543723251229046877631898375560324958428079474607790971282756804174419471412718327399953023812013873121560052598211361685567201643908942891167058114781045791020068081974728076747629070436411787480308876047289168292800273351711294997889689386434554105330949210711995044686449288767928667247928574714648001456115516882297546952586920910786865001850662781503448606463778789934241342862680346137211443639289582136904173238980363963859159172201808055770282258184448665897344783605838312412053084750723288531340200786694448334527597641108129823331843689819938217052826639920272802239232455090543326259297891408611680818658615281674416746139428936380378546209318018422074060271207356717495000162160022196627563592384094683502476593055874034509831359338118310116433261000014238535397852666576819283413925414006842259640348131129471782369630122475049102925842095373891587122198335098182480707562658342218380399805800218866953738051460787774296417748532821442623160257277925510225660540105567543305149823700544507627211896142017155659045258701233801409139212983319243243659427919552610099157536761704555831256230151397244434656869084267023991622084541436808285720282502248009213560347866022392301749213548776710392898004345362993709823464742524976270600413375495984688570718505131377728557381530700495417551003784904141080825057646771891627791046723941104580044507714441573111652384440949796955300313601364898085991824906827933442255458431570048791149881805173776728588884697420780863242869353706928830120509910393076551654334454060791644242475818433709973461814718123205334626164422380032122468846160991889150608194909089005629576799743953727201086731618346582365955029487165570907104933212232070022558240223832451508612435905479462654967049463082436547811020933657087509352291989205457826445456623009683329181425385458069290815452288724116486116426449873038399865600832796231890873829038474597130191750928227010619261872188283800347784793183848487513712622411148758150374351161829025688286594064547489968829337502214976960975939353588869498252653639821706319148143926613264880224231287892164035149931985057685812455953530640028884607673419533387453173086384884555785157378451919282974907324451903207015281381381852607450746207145648195174734746731715012909017134679275632581842924959319902126763844969110658645853323094393811035019271317884920307447519828539989135417481560547165050302208575663768645252892294224068336787936862104688371191146466320194302164654571321442387428912849726310276181897223465008154803743902548648014930705883968286278604209805086790311148423871240537866646028146362046818838193312723283707154572830521871011423906640937541985704398633516549090638313626897992149242308067220123009882030819268475534207675659678941390178002891896851742349456259224757049172448002324242575900777627906696094744585403897224936453268245703539488168844042985970066916619006397008990992146920533985624442958371478373754585568441356319792857263774938201114604065901484448904549371260179639211252676860447139647373490626906900468559989420402130893405103532757072070977184964738130707114169088651601587964310555413069035142782896496221926962963826400591454327370252863659148490179033168517874876919514976024551651469398471526669513829697437663417286915542517541622958529880505645736406999882939535761933983967971004340483288787041028039677830152419170414910457039430735091993682654472734506230093447775451162712275564861034869205826729044182346358422920298354431307054119969652131117947870639600121457072495685235480016563583053323929502726507530710927381408750880279142309153289986721999709109524933511636055114560510967351836416762099043202859447702758992894527641098670797896628772436457032410519961200893598200904594361085023506004924451449373203262553961316448928716112278251550324615431876433412214632466504521420908098264277034559244768693496699864762104588298988304430717884012764423947842337347085892855564508148709699066871311737924619690785795939513859166801075871704795078525584180093355673538185648626344955262084051258540830539070042486095466980034758581316694283505544335899618849919296937361683774694461915782550689728657981449956580673640856259002931426866437393146341854539420514544425266844582229943487902322956039057275326791865888603723739065268351178316117194378422769974910664846895182207241273582855009164558308481288120166428237544316315204327393620010985945332246739452471623350138892063647577973252363852452615203009806680376448112916970005628796298322173231190967374970214216519280851192141399832919642852806446172701706379460886772944886567067545775759408203445363858880509912696997585561223611567001537599082431613473369369290358791791529161650716939046219681227981268674916782465578785842200616501261555307722380872330120490754455082403787452241032678893584623927872615060263504645723047409214938771653516461361488291985300075077522189685593151305407391634446452868750085175216961836773900071786415541990765872752190780975507661186094064441410092852553662927074176317468717506917712006143918927186966876287156426286415663011560341564364830292131873397816330747700940103999723115976095440935663971752758163107598049106388642561516373781054928702443786901629859172912662900108990156540769476651674782451078034755803308838658370387992866022842201673218579025558374308056577979082454968252507774789126840740588510223376020990237334317473472941192982322835128021872886389517546288592814188154152522182182062127424987453307874980768780680923617275989359335744260521968276081114342867956196131490922434045657824261287737387441456723008933915965354496902147648900898100074427333951830857813355949131272054882465878235274081592826691688148434726515514133714931154175938408722317427471606002437305139646004862864206592159343717808294976665811740820532675793801475420044090674047607980779718505326215987410487064894675990812554122218341583278086903377597763247216688820109049862221883784523759658556319357734552479712977872509363904507526755036826316251373536763832360235511421869678855918654468109138009805805746614462566705750076344806442328713791141909131560040671666774051299742431535390363375941657031115009486827195776728224848439474628108742551179824608839854405517960600747315597745475906227000956399154969103425172376971723475464971834108910203743939737134257253535601485512500109187420187946085603762822426367598527819442261247161245178829072466865879772605199600712288863338310354250282416760674097160998129043852392907766669440999352908296829982537517199618350904249457055157895106353391796096258915203119661251995573327982384828560997625055372846989442389789037919703399956812428099986686732839149340757192345876217831195437936073372985854248896375933543450573059694236444181010182094822364117508813204113470427427597447421332907886911558483885327956785834153358050341392407669198693048115728437532155470098067569592999353689533687746809217597865590168337371356377255334852110654994116350824115989584503862577504929613689126482128069585446740223994065376105655629735179863792496573727058179092709939787031677653069880507592651611799716655781101440360584865776916023569731522637876657817609237638164132161749442009862255773143552379317985181623863654370732009998384958901601498736904920385619641395806194639319358104302132899910731356994996055849276847102840345775733599523795453548976283561606503859497220509049848726961357614612348740817776195372880597684736305733084452294444451794134347771632961316051083751735332685199771655689793143956681488166823951366203475456581008191699544577006013212502647900357684183434709574848157430290143723876444417338951139187919240887873288614652706066877916762992747995194291624243322296160805149186986668262973309326468393152535171749128477127349927033917397071985982932776464635171291183119626723907490618814344892036003750082458898089005090305910706185551464113117091843339129132192850417279358704444930669908835837771790958155785286662285023216654687999635660328842168643547110547883115062381826002459242679310871910383064255816187193584026843630994131723859507040913866062882077491808037229357112303688627689471938722927414706127119443850524821485751091194522804035248066144021083208721661800806206329269235693048685125527319421688871728149257949097904570119015766543948055501216135374204421118138415169961830689685130043834387862021332326088617973044902583428421182283232945895338232896815755775897593438019316374271212801759506100966656782088091316261784195726626173728133684666098163140811467497474431794029249518613558357151180540065843741268516556907165067943753112505015878502798769597434585687865558189551242035805205571103173880591145063356770466460344974362255615171361022963944972383995962848966037446148627725094673642802194426854178466106984909736445843213042795804904254834387102700609087463272707002228413737651810568734363929990661372667543069603592346834601230028756733952191574934158085636910489941179521533764454431618266998934726203165201991342053629561213431960356301304142449728301154288383012936672818414438781697900183670634241876561002864731043613764783122086105623047843186346296271006369484223488546155111895705001803975170213079381175108737521622917139609352524510639582249760377755219686500821744803917922390748526053195192637448585192821316182150911419416744436562844675969993995521258545643889652926755021392783575285601280264233068207462794853169879366082580206551326293893966745998610452545176879153819481219668685837786805534342393957240811019512010596665840289482399065267445398925495318660756591642607355254789335725328813859451226582625716145652447860362348129047253609519353860954504862186524702811551243152799268741732384037196675964332433597702050985850927274193176759837763116821722358395757506125825537259813031780068519546841287744039276079966979730166861361763676655913114406657959130975889087561444772186221963569723655077789994649404054477464443069946244234278154574414505139344375386768010932422666437920300031874657501569445516717117244041348725909556076524826115475245372551310661370949599762224356958887524822400324873203124742646616813753250300166785199025184537289373584990227731921576047656517907836455813671081382161774261324524003776264773310551985467904228620639447194598874381007155124333829007411545799174087819307566036614005889450721129265852318233219135109707031160389596047876519852109509128124758498030718826111078532219617738715769499378398914902900149196313988125927855528019585834825215543873454204957984573885297944383425063463815826531920966849053244225434038479825544316564780854063557953230787853099229645093482415952045252764719071595128076858425434211550259505110778237423508843339352649392708466399876132205504737778256717546223061521970563646768648414953987729432091047515505026404313274569664719702000415171608529378399037662102867877886606831348675710727214169728521112798742816351060497625869928432883323091957561391843133674177008375744943123907701834034271520749527217895291857536258035072809428945502272870339967404135032821893764751616319303464217408890701746568751150069277938871989425934256392315766650903107209564102201590821521541110109508058469876478741282044533692409259466883233107304296387980054245075304049677550921087950707105633254301663727822802276267058958703864220355180975421357464461561310081554889420222094351444023780376129175042777019974221691458873148662519801427681349886230300824346145243263524036393099828981252495600739296143127919914581984758590825946292075542949012157649684202597850584132285107512100149422147054482571503876302237184278699344181769212213160776892829829384314510859857463317019532860092092530220901032805032396238047111910529201522387306729909628327321539247238768918709436932862945788210104180198375123206791799180140868583089616550360521461157237646696676445487223204700482004518443917232047838434642017765891711521961464686221495799648103940516416366678096616392328284397703399694832413322028534686805265974571612768445702429605224265042397967378421576710327388473078894378470759338745964068489519313178958388321255216557824465093171848999396326348047156640488816679830008577466750361734896859142386727320477728707754849939487253517246326377105731061716063435627577308548165781533233862870664111648861606570768300219518586568392436737208074177516381989783473475993079197759868843164696906401244902779491723834966923504841256844293955864734092922571847134936445837728179815774297634945529135675843213414408676203059965024206204531934357617401525746992080428756503884368924336653251088927617555185336528640857973173233670894315129902617411748996706056917990470332226132283400503305848809109449597446024408330766269822942813545449291530435018222607411239031341236679328812644493664499407933669839330880414515985031702006579459363479897396252391302805299162964243018057947149683144698921982198955860087871862007450880002240376578030142085589551342322206104585721585410819684956653235357440823774232552049745152189930150588295060231007621155279563051899399244312758609108394011029299775642969005274321328900017675693669218006322629814832570725140177155529713003490798840373220878858058384523582547078025231557340581175065437662060541635317107825280023050261332174704667736892467064471051532567381881632992063461396906107657117082338112218800222746237384914090829823445031780507467934913448895009402893962083710791824008873543763703606989392594641046354302075105457055322403286654111332973718322066576677944747903184010722327348804632925447954125838458933911760405215263774139681999218433609307959784361164386159207774762024533572216471194275469415834695110936849094626227091538559900904395618414531013905302082864764028807256151640000391100733788717135402967686103393898170083342155906983428914343491023710045470379936999195986882612838625467315293674884714386224194219753241433510034426023869472384670091969759981088671730293896535888875105252274509392002867594908847113027362049071904215093396790197497689378723952202484706324941269482060852165365676739162718009639639692556479204333365817749552735441807404383625451327643663584880166164093803507893091107091583227225462381550066495848382667465412396814666758879425171430575964608642920053004083077671203390132701708347538498636157872297862805192592016866118333740055432506849008763542450252645278447966554094721044842342085908613476561731183202836566427770217219243051786178577297112239794001487444436884957219157662328874322533751789022310722880447251849280180232491753610785117076386640518086856247420471502318584478614877772316270763018123527740599458223530946239879626436688772159651919558581478389032807556224675266909292054670447846207830136491598872283596263301195139859575991386195490146076158459631218203561223823206951443165824023513818297927539032259830745286086561781886215900237553445605394952914433902818157307652238384196709411842334463470032656833091485493520003755906578277778253256843856153232292924951220408437505090354307976843536541491874683177261042375071950287423657894270622766396973407876917823356539174326036842466930909741100885740610635151096279643116596175245544703931162701317173574995721785181686479978202901485086603729864600808128340605024517977301417007879257014562733704583801549547824618739996106966720048039869151746965422660572409326286066264389147581080846566918258571754975387259868960719023948087610863164685273874876702363674454380746260488729471581250325826753352280521973344752802545715759155923174381410725119594047717658579995767575426028746648652823101830498342467743682885947035677689053681006573586580348030186940712431190443760805007386076920365485935557996551688804894154503335475479637889240944485986942462427086332973830616377100997234671664461649273183438908996980730618426993214017749068319627242180412986839076825158313531847290733385546264496417759170935713820865840484060174461583517443805514087354999082845354524448506552904229610876157816455786970655137148769319862903807430686270938108356307275855274452568471859141751760684582782648695771455116925355735903421332184206717747997958771131709010770680894766102389955665548472869973437872580179208175499700785318871423456348610003859878135034556301800799828963072557735614023217126341416825389591833675811704400669903983053569125821351335509094198994906225712053404162415434338650917342719433378856930435202158245211198667815561219096073621949138906343548237118376442952298242896536396716262276472207405258914816004929287563181372948273519083420616076548533143981005905996078787223782760837089751551568482167658396886025112781739390702214483892075757854899046274972433632845796467811059982717291488967519829845430920624796185098579402987786671691187713252471737583931236540425867344719776619397622337411144476933358774896668718814938157538962999411739697644879176249539464573377318938472080673241276679864708353724718535478570897291649918606779220727199695941013823376417782442128055812984223058331657766008906895523212183619998488273051087316562698501506164700390381281333005003252775462143952820463054849640847264018642266729497476857445265185183065122994822972013595844180540555968171077022413937612079089610203053678696057307527401938899745995610896254737974447844281694664466681665349840159852755572509107622806919272372525909183243180225113507306796498110129518586297055624754012489471508168953508561724256161777026877891903018081884620147232933196154011539701804592448642152480981347808071757483611427817239529568680076104494674055817868049942616870885522765145580996115095243421099070768923663056081080372022985815442502794543889877767200954907690642273279088507906337650031546500339061749264447634730311384533370739556808888224393193542348826979299130274595938960950588812412040198627776264792805173165573298880519868807343765996666236281124807571505002632268950084774162239103232461506804268780700953729858452423905642371699358621507631084567496188532543456847522474461407727343764482863313016839457900196142829725037480847390098092950323009745841221433473270949964391504322632449526953573826967645235658985309650910669945996313974329453971340014453350227063860584409121542930419886200891539305247811503237301812641928212224525904234842210604234657354569159017025504930183190987504661303906673281402147061774706790849140714464373998284044093706153490752776027529625390660704608238761341982945840343229281120123841610912410470100355798261987030270739197684874907569759752653700007815280336693343177856109788141183188790370230868459929715006802242212278576672272790829908909490833313422183384123943043043668281883531211357585812633798856706060787535867685269838973047207418415807692293179360254492805299666516564627548024340358264541557438333500931363790665405850038304198344150318887154392151374480963653976851299176828060042944055299807486609261701810181158290436931980891620549586917099451907167508053810989045958285081494946813318748917805486946394348334708564042727859006927317026158895888259374370224500155728799781848801003218859706311085424980591354665336276088997809235004108844354211822219766961135090654927388733845125234057515365070731364905285270892544298026748243614674416544765175554662241934100991809823191635524140672603740884843896436781069746682204091012717525902233326236550216219867300446260484875869901694126507528564173834981403204596651179648186931844610509427233454838142000383559754392693904823500009147264448706345664229216007680909860016608232449219856900701468956823019537928610380271762760087915400883372401001333052428050498278399263668219194479114193283902121836360136313468423006884667919909078519443514016016689381059570559665126027876682077430013869406395188135798968483177411859099643287751761726391816786363816737385431493337174144528250712811385532692654516953398697193491734087676401886965672843965622023405115778785629341173238195932557154983414467175694993080056070533178411718016313208754372994101166053529807322126550056437856152180586049851200424928828809355407621932197511765650459718931109682762672594374473910716499999114339658937211350148929291887398223181972040140257444820256288401628525711813488509217811105069076166072365106595024686458649578105499069161394614732935155950513760387942463589167622460577498268246941844914917169947614830826723000350712940965023080708749686160123302014573717893658647653664083231996798221884962355311274796874385598278767665506742304533413365226474286869768141147528233087840955651708808156016996175204595958279448171071013345404861112169424539622991094260768281512996679428572013797177399024002004680168760718708631104702993262266675268686192045871276494050982549211970958629043089561830613790184959854913713298507281961653047070592882943689821368501164902927726535808086595282622558400405012044915581568301123895063545127160000382620150750440934015074035502196797849559298746586945496243052469469081145625140345850712139032929583550532295921081645242844840097576859482178700353576051531565882016238006088245369016799086520684211154973288452439394145632928809106416668429916577440079527592337245367118991301548076187879716138362794451774506927266292763439440910926135002073748197183377268547470397487687292232583594879752042495561758778194695392462489090681970511300211482164855214937048039060740669584709775573719016722735533434630751971956386405748922679269081729184037541257964402425581317688820374657164444385001373597716924258534471989873993403073049376913353642507760361960360096888595957092484674898677527095880402384734009552222938833740716135681102861545621392557565160887269941892802014184753980331320913064303503383348596660939105840096108223533483502550790589548986291113283787454519706462786895483473337051645394593888338132822516250909220881381949168677821697774314694188463671035429688120191259557782983314184427815280873845819934165493396280439944457323500801156817049858748237659861130792748470367673318236061697501426839974467837274497626447068418349234686240019007971866697336686171123891753226952199839210002439034970777249037750545869158306681062677910980545335580426495344017045923923876036556820815103906762900845237338282763118469240930513788548950207501801320722595918681285926898151466553403811676354816305366522313774543967101177900353075307255234589571455353615499214023120034394805684374386638211031904427964179503964498132034740738903717838695083045289598958772501518328983263143538124610544168543395119542742868477740516612719657633374661298366734318795110967025967066760388222885034059949440066963671331106107725088586679983889333183027522128051863321671706018276741693139028013108544708044143994122394047181916747788341511666624730009263110813307378231594189724300779976171341211325333418381545316094995159043928353939535355481046910382269394770273814855834946120241312529861584524267218472414755002437520025465497930723178144954249257644656965373746788413372310153564684442485476611130969187858895066860544518930904954862496327019497281732519174736113869771976858477154816454664205600902860986982860467074703850811545361585843635138466532194396928568757617186820925172981975230734526815228744065719362877600660827498212702395311484926915787124535807292384856605324857904678506715678058771579880715473006874987567858204192866284804346845694780261251624033291576838004525144527031334507955613971605850405436676114984916857885558158948460558142133520095748075772845402770282531458460599818473715327931432960204838559058044957424967572035116929817740410946776793821260221036639962021464701501439773375976213750082320510086763150885950133942999954482915072506792843214170681155939007036235617081750798969508498587055264249235675412230833606167755150849017890844542572105256627293684922998621014599203156287240192421470199190360043658107200132111152112680300827765980708995661255979327698995291684512947063008072531323140000038060874456056942298439020446318975489708296004805850459626994272231903580646337703683281111025240418456702300907916150377795126561682763927031312554524601717055996167657424954306580740724893365348385240470738655477748016259798609305729907253169678969397952747551668563299702988973558988083549606604030447092965097899525272823857858930223640642020064678699132024300535070861696315563520930666813026905298876416340069334146613790888113710124693004032375124091427891315800769936734686704490361089474177928931452110641270538994587678592098453116353575086915649238098642445811557964305465753093112604692391211195001384411677249065285768868288697379846391644523595958600829049834905428563195308371387670197758407300435952552323666300866730230659058429413461109344848888170165098571815630119531434530443371796516590372971358062215878982713844756107201871300479852627934423891339501187523429575018737061010885521329857988779021567656562230802224357389406838251688210747117440137425086365261066274706516058432817820851869590310320032376228878187990982596154002624848091298285102820536701926147323341400154855310426219895048548244373480924255988516656625055927318232849036270142582322637037524699101132531194129722199761252620845455078912394182372216298514797900757513381741282699434205514259397826513715925189945118519489460348688234354955416061756448577889013194791759211603424222362047815023796497187535966673272928027896107052915680692931982767578529383343487115034203073059557958571633518045380832855454520131532245095927366043502270748844892337212331700924780721980573633426478465275685737436480026611273356819122978777426919558388351752955086534658494307274177236541945545607875183255007905701004110293161989685050246564049476901631344071739762745245803980724635112060885439709518772943160747606350739829664874478446833125489318927475986178921774145097239776936471048199186625369061957438909501349722745092881341818503428022442277459931913996294250356486316575052012635248651176350329738804661948956516171598514517744816478464176643073872528446896793549225308550586979404618197536064220248854019335106914046188789179462699585612863760725618513006819307295854480046956379707835795449692758599685305252755817750670767776384200944174435824271484934413920701849949776689477118776219719603110642061651590902740163756856486121284789878994234516202481479155337554822885960798320015316823653925525791278157624675924489921734055313312588830673608926220006425749842632874642330077304337863332137963349895194495726475745721415839249679706278174058760887338996612350102621091480394983188311612988682874991744523255765293754541563063224215750908143806168083085136689287287074089450540688870992356175990417325932084840370990694861884165861314220514436324723884088612995504807565947932803614658403599627627868355691531820607033630368177027064673605885515657227278465031360418432975121615198839008989677910636276051918640830360810353325016700513618922911277989943554499260528280252404919336322113402462484805520779235104396040704358250288581184735332528275041794291116788973276796623481733489531040014431626638702070629995244483313086554237614831050506934842417778188089767129960061775104973470878602727434804399210758532111039343766747081234924099361439451252488731836089591644609625501346973975160214290167122021176271796627740107386069089854134013512746326251983224417340267889375587499585563064510716325675472419434290371464777090552744212808847735044484016721143568371434173017415456384137721703334885862751718864575124923832019437371176295515893774476412694759756955229771306754258320594783891768577709440228953948032099761096808068139662146619845791902294193987579202122251183251072499485205143799260699868323245921799827167963145536342791433904980319596122585422145275497613805791450002740737657862688851325734492896811579006919032620146644541152301491111810563678660246825571152293807721082513135186610626681675905799159298887393973909287777094772020339703819727916056693215600171417484287370825551883340685895410110995505282760659535187187327769082643151433158125234182554457969245308971051468204984413530304177966339476338405640634685190272143757905813744721808070425828822819035829054782614087602582043036340490984800757287395229887880126441622348726008613628496928709208172878032153330263278207007544103818584875626861051660623344422467335731723332244936782776022575827666722329913955503848103015936766514750733063825485982976459198461941660502709018708112516504059100168735342719676679835663410124532699661471101299724708719933091368680145822974593140301060874538425932185246242405410243190073799326184465703169739665888661203499128330098524058766010283756439483708050336335068580080176039306777423726554172199515011099866231174705118426584878127937905532703172545369740821542483464751922298881640677172260622606370776854114208920906025479408220351408302278524425730082459066440254126027303802480606411082709140256583656813198461167496972511805490282586259524261486856447099788389304972765569034178962972236033970230790015631840960984106043071543146366464045424299083175772151545739631597996925320748101559378575397400232026043035730688001597335976260399030820000220820103942492513195996193303036703057337268625772770970359125603430520190793748404519611222963550701172429632287679874660747996599066216460572560571894904145735402707888762868124654698931690730385134720024695113274949754142341168910327247089514882974056349861735737671038280978931987839710920798801034754211776926328477436538869559139859015642195736935210651859026068204468699230116394660034708116643917868928746723489769248967104343572359954042182731621268772706124190727591791976803042232455191245462104175954163196223611222015796185284914087973783420955273468397087537052954847603519831072294667603529247071957748746940418415489914763378751188768407522417383524415386939972187823564771768040307761109434517045504972893083515184382160550630053439920784681512046834910335856186850761959834721173223187183887159729715340238765256073504233277596771590165671732823968172113624263538878611334457028398296154676573262660099018754249368551623013889958917900509542384784615328363030242212984479922380688398505756880866641514054314317024435836651203041000633171326889185882909691031967299246951614158874189557959571596194398896921103460821790196864717262806061889487133751548365117350894304675868079103647481366361520348942211838156868492833789563642605965554480199148318259464787706167818067336637216729390875071960332664552524047628181269349964259666751797261177769717185474671055525990038534514541065250196938932631558644304659105847400404543744313873701171625145117221376479128410175119906846556108673392476003493620658515420725926672105600817388087236435026799828359477560869115252539457462885923113094419874626037651656875329883549323488012340849570451154329435113148834773417495691390004909594274699437700639166928326167019786909988596567092471342356495929159592180925509936645538099393326821754590200699811761541155139315974241813275867318689041432227923322262834664893825064177730037270486000075095351468433149199297191520345440871165158527235016952482931142255440350551951819130788013405694646416835541742461230857508828071757229446319940049769853292790047317382794690323976209491122159966403377667937944534753219132286598401846085051166778667719765002822226539505844184218782972069924745478960174221840227280583336524177300367654507176255804458482116255263825877969441102086045617425437553249185805984281408664039287897272659634163281715181056855690797931085634615679330391587697036673764823662428961268108320020297522990619082051631124581215061424413658148428183700947290689962234897502010511807562789775565726146771768405875476436837081103868944964476541692032343473469066321701734051728705816685505845599983926810853668750911515303513080101559244739329583213530947620507702768696390462068731012019990335312417360555689524468169461975841813696381119038486655678135041955755117577769793534739564544821039615561664506740200372828887479766806883531633529593870123423916515281972862270433175506002800445247601318461815507895992367823231398406917988294253047629704548448056563369895325275057566900905432998163097850330759456134156159272920885293829715494797093903136288311392174022799650721593856352413097326431155938106750674637163942691531079566377076318920787992120993668324234934898755091074840103754071990292654071476137140688681362810936369798569460994602492181858336414316689186270190902604705679330097758044024704068682446238140035055103219973639531464348919505244745340622996567355509380186269376385499721120222118838995346488019185947146063803318720398114347465047728167519220713752874065782295681164732994984061324080124271597702899608531299529326631234489297007892994942915461878934940970082576834531140328646602424180443789115281642678395733955121335345440670984682629940837566439881003739862804091561717039444879141749421491859536962663197229018341303042979849909539404928839561033454352268845732257373995898362117577419035271136391021567303399278673137308343591890619746018236446309246659005998365584260176141235529914377287223982654063995103763484652498724001525290495769100252466851050739948340940372804856763529140634960689064883666920540719219159545855740231531089173957700849400383894628086350880927452860153161516943581295773434364195156377815907596818052159360886937716435465896842351351496447057452321350464116131078681317750787580699339322320606950029813829947648218493493698921447929755518893310488492902256201446795904311170853167877556497124097660307578036859119075417210505761775685711353671502507594433031752862608256884804119259775207212058463385860969231501185430459588591019934993422754363251205498347172376753877257040183040777769768440590878613680897340895377007980255261213718950574824746452910411459168040115469973406503367845812156167232071728610490731933251174212295708163106801591561881650869656821938745070248360979733212286568953750370972058626221108132501765010434352458841928408593825743627801672091759947084132039741253802423789837067008715493243563828360490831620931132711291091435095381210344958410814027177232776088200890657351355293289705754131978743540711073883262634577969893694300778330451002045657574662077108886300124659775778875903727404801644749839583984399916209795248906500757228697244620115052386367442808796685682236942128704307512089219268554290032212172403826777451327908554140184133809678745501373634986276558601476110933556340046817583279916959318808753354140889560270400704668597103236119160598426680703332467466179918617006512833257477153228815726878730392872986664913231159380693055797266531172892242662514559816886754190900019490396414537776478082224263205159929680466716439897284785954229085981358224429660271550294032062887407492693745338122118501552031267460744460929196099143073917271104547429696079097399277487687017245422857459906240958917545159293569229978995401845911723691048740334800888202025237056973943241853797974234626617388864760638074204922019945668810910756915540325716695093956773059051193437054969403675757616052478926421121631526332277266947453825723954937710522090100508656755776530764836306300655819149105143529838703064457198496663323606619543628074608109391430497037674921405417940684673937664757851870627526084940343668555847139412135407527689633376240149455159273721309384459768892970623114008483708421138235623005594302154709601186596463625613996509201349340423746181500887271543613978417994595578970203389988775379595867957629807945154607149784470390994904046378324409709800948020143958569324619236589096532109901046337583933408855817368612164254117685538737634938126361025993333588501175866354836194080872227963242419720919464401664511167165963827596496143132798397552692950973929322099420589027687810512352939565615977142506470455160286753041745548902517843661571902383177380241353117329015866976900432400024800485829494478818987417762619385468415746165555596132011978411480748772339367014603630936019081581931056088813542290416180038389088075855174775026512262091615641642618052281577508511474450541273856462507900881885376931183508571712684832246173088733763151427933198292336929525218912323551193621107945945198462270420113910350146204093873658894034454995342201054400294363143923644156195350509582152039557486602429909809427580539457717722420455206849583232801882222232371319944993644157111305463499322616538541106385595088163795117636726783844754425083766403309317554984884565157794651318433629216112023374791602030272601642393141209443927774925290156665329657363543995439196701664791535925446063253857111334394200170428499420549907172568368301211479606727542998100961941861763227440581947380667125549287611642359748767834537919209220549942504798467429292857637066725916081496614922884938978974508234408605319226945132123315859298038185513181525408781757297352902621490695795051030043875081465320647261809168691091993623886575456368310968681902144570766881984091686448983246476808945645616780854404640384306227095296453103367771566778652286378056547032154549113073644357179817283937245327622741225508388346751340131718061494204767611029572046768917427040286787311829459118761244555756387875669737776437111896750355360138785248279760494838266786375467773084636055919555926003992942712859843705461329615224696083463632352574205026995739527092002662672953308147805320138156954639490387054542797681989048931872552171669898156487453472139163855792543340770709968299854412163840098768566414322033681479173120394360626075958997365473268872752775274781626049293109118680044458014525956311271573812572572175331706475085269620406902040040355958452887468273294106035815606255985204380798333895355919958916212941291118356647496844068898058186114403236049634969584634678050549137674857972294284061813340128247309308188729660128940126634687364650081085369953940363658443533947177473530388345604618605220352697370980002651869597492218643255512883065210562510153364455125580443602757187276165937407911363828440241549783999507387525030126833076292643023793505602707128211395329602040969942574963706793443076694059480315327319313618653468610368744552041296499199190627523215659495315525263458923891489119325509380761627123215665331445471842274817958738973053928968248373231322379759721336536736833131033133739795724196018487893147283882527845121709178619075785173820129525857678156776550184179719690918281918609796732824859994106456911919500611271371526299458120857622148966821207758718481076778091355085751732768120856324132460388263453560037858021381079792131883918528698986819051924625194758301233513723237285823102291562530097070319289527704509793267500724984168755092510543756064738280803658458291019402235003516558294219180215121097929143579755714777356840828894353229978160650117929377183618522959337859641038617657208535316487973742621898530742959896756575147697296091182502968900497015115980254204797679636021787090689262265299480893362989827800593256434315263156385099852477791776064753469291384199855436423816422606445899260688575996725518306797174965239754593421330714959875911480956015343466287642666693052387906507088828505514148299251709417795395168155594554434415421871811693428899312556099734381944347493578892891571879848509868286355763547601883393173707364970389098941693202225743252746522278680167786209417758119847432894741117968811994293126087563516206248677187153710285564451779001212756682825714379645571194658502896408783513172535104561181580240251705022216319135840069425464412543126198360803582934818988570952209680397779013670633881320786484987970608112487639688454694478640639405877145650262952344729085762119061614863762281207707463197473423366393392150963055231277346187342821233350881296016485171992018556072001268613902854322153076949578613337837350207603022686392558981171439435884978559409401859003594051999046930244981660447294921935724793275323363962835176151605269834135496212706363721512437997954931620180349102760330098143216012847930148131123523031253100317810386030604912704243549471198334456514510584785269678900120816835048012707361319551239677571076117073530112485454251865566488642059029579649724788821643418108494393781776191378632176248472577309909435795139780734713897244468765843236692032390596606030622870398936718467058251465994724055104491197415547504822178323490721678449029535687940908655568169042064004131098563140371157163677398576504231244020265122371000219097909947602889485356308887410971842911972564754728917926191777137535509236612229110103716403157517570384936693963169359843161682055154221768373081538792353354509924223767126440301727100590712174327202767746729011467883044030421718114321493478322541214322543846966791036859151623799226835464840439814486705626980848758521226457161123819514976510199858263451550669096364151932399924287645162084090167185268173015111965347363790164375145847721301657067734092547902367699748302616409802912147006346217216961738424050671247182749672529218755373461913207674238087210426939829589831264206588475835634764724591566872785936532701159044966348638412454011729259816414443650784500532901390173488754835023283285178541144355378974490463135442580593134998173584211219907403920340476915555587161906085948794530097193957171317696472847453774224271580428324478228322469161017485864513436767045345392011846730487982757777262772335530083188623764711468040460875835430424772895831937909416655421044869615476847322706409155443334200066141214687905439184842734603091950159108681610319046794448292874760060454367706742129395802342011446792907000625700252898613420360909711599104992914602515179738423120194520779755802719770189312633898736954066282394298967157728146336464544817608839742114409797639784839796247345473097705192039318629172860440737400023145034210722530365791897768854403656276918982362511180455836778461456957145237632676935296157005786915262903742329030073870429837737477943357239057230488948902115724820763818044781409787395526056692134547546461061467069426266318304833761818734849954747714376306852950720670333537782227429216504186171594895028729710228786708580934668982606407526154275580595816638991170156099659163003639637277496834747986934143078318730339919619656134964068346782451393334312079002196563564948285770567455300077611622245501011668021072416778636850129962377045306412618975530702678006541843482247390713683224109354460687038307132424817260574541080064736282227838219619179484710569090308699816957304968424679041918863176583161131785108719141912983555416757533071378000421732915393467469921476929032074520903229124065080966886261757375190943692544686860844934057376133794697273529449452124678252804435567587431487118317152152786707955911508908968778532297088350284958907317428563412902629730291066257421669645071713254829373823874642640962554690246229381693947791023561734681515130727283876543015668091639398129886945745179777031268278890856036753045899706114536531286458109244369039149286860108793445657233222884437018391161381189445245853481344417666444049985963981754436658817192712822891813480272147845441211249574254946253774713131759982419717372088543303166939533531802111865089523638629050093548940695194539973587138249787890660546858148842603581139601522250793802738754945660323417872494964179979949240260499372631928450180171399903390111681729071965584145373694252127770933159869305318402926743051265248497553581146537388277576183931036981888314398227201524850999681096046483865119076419051210608983972121961679080982620948010350182680210859314178574661235716809189722187390957606822275461739977090215134501481960981579536157950834655050585868770661463169734906948040080796377471880928111112432151315527143882770653926266141843355864996824983074880700437556170718518693866531553690483875021309496142823321610248505366494725178919260998069388522038506547061533455247482382296564001031826722928611082647148820260038781681374897520891102370813168775458642528491782439645826647744998687415866153741884184810728779573325833997847058833815276183915801529253091983685134769171637559374803027867699179208741016160973490317682864372948434451756096195694655041898791674882882241211199961710865455213457987787371303672829506174621927497857602864600362541568698898732055904460308090692602350523238784410621545570853218724776656158586709094046528285017865269741092914385892815220487972016525717822870361577097459503255561330492653845410521789217697653836706608088107710495595918681555657426050734017421482844030238428022174171839729769154384510212846629057727430699583619650817280693620293706511536189445637663782126237034860027206531622484991114847838418696021040038129770100756255966213444091112712284845126770614453318974162333559026082388691760969994059918389058542492514341011866856191306403821309823216092506234651437764772740060851706570523237846728940086645029782036889632392825749608667170674860949402794474297280962063988544659779196866032396344554242637890368455889255764456423172335210705235895241367702313662412642576877347896094435073167547812489853979834416907443120668890255826719362330896534648488370355602756246481518813173530762571783579329029766719488338045482717320764943354404014410417649135265087805048248829041735876929260230743312576768004706437395593071265988986765943254093516408295566399295154565510826807523161060805994991348905048329890741279616348695072094819869047525629594829601148532973894747534056861229492884651505325809360638691095030794933583116615607055384621433835312570028924717713437067958302515021533545578041479092552215686938104121748829724707863429345913916917260483387797684515191049989236110567399818948012865301064728400031809622951489893739707229234251957922528473892815723854316443358082266605502489417904224144786421934809931483000608171848471506874773224961935489629285314166462328547883189759581806546424079806788526469940632684855702068788037165526228760864871848817902320135853353123902000291083572452405241800300352118998085553733402679569953846185634252978333090967323802907716554671662047182678086082630167524583938070803873153750061894526244720928435476463657504919515116215161587665022894281186611851305554792086361989235039611332975778096423024875044797517467337271686757385416796179422489087606660761749905303265370923554324203122591000494045469294713466670746317121737615662908268700780237137757812246359333972823598546782908779753747536992032476648487476993954540649855996280643534893523132406145614785294678595751003060179596582812921474463448203607222148575645932462026185655973286621760531109116397585036122082234752738759580301635647906703084911743227196738015913179105086208302164127285323678313322092792420115857956154399839420829169407490374115803903817064844794592210242658182067279008751348016994114816314949811862793682789611271419178064066090176247248466591411650305553813406043430798898918558181248433576894802865888007988614293658754242479886921725463558528851853528369971966983307049036844278283867603476960838335711763735659638644954558755255381599958434777426112829658880976753015809999181145787284907281107228479983773331087266843114474929264083125328621739825441174904698137322245920018893015156820676098847628242953880429498551713288551435523918134001440494069194238094334127101985581351283528669446244128398962537088987109762236256173312322990590158694055134353685891652286368898825792091362871071905583498587259122778388158066612610741340389060872409514695482659186289660830146003465114662607317198140057195108800997190212740227334764783762337625773837053334265231298083388852363103008933339412721033132179237442328920090695373128393501205159684668905235453657646539427040558819516357198215136630567533835114374703354566009449320662064532518883567179945128803448657335086378418687612964038480874243231576039189889949140562365631585774247553279341868455039723481613762332505252295459549307022023151732347021421021463105661130201746846249698722331952323355317712644443846318469802146922631911675233189767009472975379610072580932866283443928607289681838696105010378197841942076886334905037876672765215484088114497597284432043356795129176367724124444045700316266333952007417078512984919047617114139442415797189024853841291729710616771330578615919917296926224927450782128604706652872981558515263598562269370390959658038030663206586162442546691900906285557477827825311956862217529458082664328414208278143548654485088437840890359360156453622030698667514255895022226775092294156217334229233981756282536071599024002594053534345176728348743736973310139569576339753741030327312678241320940630364247490658027915647024234408721358026072795839569983080805436441418831759936498707098811812914691089797020277493561568777520752040625805410558159974454541246186177534351136555617550481841687425511479492904302320402384505725724563882194953232335466134236301361099581245121778694050406026676493365048367307543198748852646172636109443494149567097820186203174795381348806065020782582095987170188554599857139234620353926946770560839974472006051216845270907099653140673839243954727222669540535360898392987265680435635688005372684971015286008355561418498782458020954211870764426770099706012959659849645358050799292952230794066754060169738853753733868009241028107697949603606647567340105855826827162594991964908811314857302355162101307787518487994259816673310547717682201025198327293007857548087887580045957929378888726419751073650402151738959055323888053684356669462774073964759386644708828095564156394845032171903199165384769156158561871506559189337691265449491931199076957454821367864968868013153144202137726693761806538589297935743443565198398094762750690490687456830983764891598892474564682553151402028092601957815543250610045383798437159028940865661455804998113253484521567786692722082502592647794928959781176224640467009874772901322891383172219591935105989459027608871150474994841663245531488431572463862705253513065826427771254810344350202030068969895076895404851692703626143835282840781552850277761914677254720368009784226350132486672759884685713494802604130734282426876527894597171813571246515918711598185810669827061807334885981088922827081079354127831560187545945529234248779102652365524855868119753815221308169577175952666567085351468523106810513965815060520230548749690236950027892418048231253837729874668458517087304243506673334657516962935315829448707377228912054029665704463057740248079858957817495500254563142940902192766662318617856042370543654980193424477761278017345183867884830495006014884454049373289503911789990557253590259253085165333899005228787015039173943208383323359240885067449855373963121818413145233572245156325066404652229956120371284140690493740379962697598908313194159177557561896864615819437614226942055116526628469023090345702490394737380247017676024983125013176051776439330118204731745625090255558511500544678408464523372951021746504939387701990139246931833789974920234272459617241863954926862711287215028362274993510065391197196567867274571544075232927379419344727761643086508554733390580017296138226423358339250893510622578622600851860050247359934728800155559552948461781714936756270533659905434050657851681782499462723876768899316494586547877844380411197645409945471057354468997955322557711259868371723378811804431432617087438240683808564427253719384130659485146182009888367416308166327833386806153973653545689348719127606716342901965405036673849699880505813220022170337573096901032966230474930708349391865027784435146785591448314044277252855692504326837528941175286855725021104715692864602420455454170173785172519906200119743026023456622139879429769649797121483559475495350073099713411755819272357870088159732838571768692482610495173493463054870035514676733130134301454940249387021369296316136713194052482803185663058102600354011076030796475452601040370728264025834816032039231673909747609352746417837701606218274617852178514642500749525890493954258876253464685922741593036882874436900638242596097803626857552671761294114725591481313739139248918160263927629123489891523703999960159541668668732170107822406310453841881684822788053122529394255035731003173146349785661968791632126022032132180761953207296572848963529335468532633889715715029360167417709645273497209529611059684767418795865854694319767584395282751214702870348235462787312264784548754495048134682897214994316691284556634596614813990260420225498567431286342478006308110970149224217868794320672699397654010862354505012784065347571207395955791012880992137193641208709932832772914856551160009077763299865413648808287635297081286120262725277116506142119087253610109589275209813695238854070440839207607281361371381926057897093813884043773098201295010181374867006116190934521669798146264724545633935287841338527143452407100783931199356141290291912798959770132114478321178075576485214013508365133878595268700493282241483220673610640471588792380401580382767662976478180837166886988327734563211143818537400637297906562746026950274516646302569978628698224966202303619287660355420180846728513876729549052671771837632101279069381870174020650671926744906115843718214288415922925901070292445540690627106448337419607769168044967043334913404393897524467738528814402342629904519646595653205795616370660421282431390880391681619487745238322943692104006119925772079540014278384537035826575451387105666407553489843175988529997078264524836424233281821920407971895359775056125959095396384483373344133127119596094942829741330037485906096031763601570306330938410538204590465920361379661618860852138476600432065775301809732129053750894300815869577172084119774423642772889176195891354078122913378983498509146861347202534353195911338388554190511627037850222727176714592020435453095326479147798408368885824570387716708328354890659546542638843925498089031686286997291420543163535722669768362690689163584567137445470347367512238014200102349598043034235215015706470198782176259898014295318407482492689846508754797331134277298168843544412149789154680936102771003073007799898523013050866516516985251283431866295688729729205884946424044955330995260444042670271753949477500725064788744226653639736153553850507308751643303473137988332917611985156163797308220670888814547105483758391293550998481167312033212628841033215305622048092100867715489325386156355925290206192964428634541441928741955174059995163013443404752974220032769832498751065898950038534366052720093941763129902654134735778609003301734006581313764494354254814349886724116643457912313295662074073111803794019302513976183351842168208220034355201229468596573743604412438119744442943640926559876715007212692026506327102644139649581137251039894402712124493163329654012849194565546964053416523059391584133797056267304490451108663490357232641977324194994377293388116550319202637357528376261555059138105879432175398858883810317260543532334392308116509866890172600231341829290162615487722173065317810044375619090627150297251126814257333727894806071145521806436360950130981564887915868267103158974405042390320459942498359473775441800211511282313514172690691096707219293839833142129817727185918153506553379305849917077628820370875562590941143700095395646463759649321375027494581634819277408838658853224733014201729222490367916468351021454910670395107644608745956702339696889076619201006058870126942683287251550509232934464944759062737776727790936935950919252708677372506572985795566548660477309966519253192379500844666753583025528227161996213689104014652989413083963784470091954526859279892186247787800402273754697464420020312304647158134071346835821752920953570734803132376232457724228229401382330157204394826427930884317687640812831165713303214981759322299712161467707246900959599015674833507060909713440369191234155981031922883494897400405593837424278375680635268316227707738363844563965716442240246618061931330528055881985805101181762510131781335620025976302077385927359995341607095317803284244854964619812593996554218026379351475488535023837407653249690224982070438000714392805052026487519190507195365802659014359627468965468227705777401011510886988811396547651427888134805548126230184879457695544802205474060904820409969682861050160244913625150607249297287280576757466382744408215305882420943035404491373575615846243490091418025461015323985449165846317160095451094597405797338637052287786030045073147529121655126458047668453718364947101599427336645089000518703107389315654213546118062506235656641550266074620243665691659841990540074231493686647637251071385100662343863546282483737513329977804766555743930372272029789870247010933558627145453950874226474929416980879729448868070311740444185629402748166303221612214696762760468792343489880575746695863461333234302699789878866132162175515631857050705906422883798165437064130945581110257824610413929765937387014194022097916436864291949711737070242578531632983330718142853831964776097200948387289480288323329829388322029649241472638111160092575121637676130758372516867764111585977038565438001721883071348806695431442259539417181731609591450921112027239575925093945586296978902471823293563200735602545719117297221228151962839247749412538954542114761700570895430142796606912035384469510526684132480596208894650708431825857820148209215267300978515672939583557824705814666148311068036245962832307214839610136605138913174633188836683235591675624444352085039112200808999218793911755010005429401708803427049233449287994340950225257402958196075318732244389012968989836281993693838595622008647874660318033140621593436815945649364137933412079573489198738145648448143487164286072382122648304308985982251353486188719294541892827624351276789995775004531102332710454977291103616723408327873269909742030573504044186726591262104453447085502868750867197805672887666390687288067875515992479449747332309955413692383232694820631603008722240047852715914519732742186398068461004890673271199819234732936038013888154441291769314828264367385495816745940763203185993334552201435580921294358614448318026952278896814577028474701032591675565590091855549170942013030638025551732446051814847559887832057266053789752358725618642369028542159115880932929754181450537236619604445934659104228013737835615169538133734287814761160048465651507148288504836389352434624114219803748325079529313799016051229486878994174293966693153160106331190774911188490029194817092538954878449300652424200269497802533841926067691945332271805693275325028497084248834050331306310810089936229220402278542411141290543585519585254015692295180245661559666939571216018808772623648238566014444558172934508228301216379319316335068560332750948399336933644648475373159435002977802290238170500649179661070092421197428980572291375895886502547177172411093177123538977675401820134284355725237344634197904688224586299483869045927787527677104841906685550075312312781273197543715805447969534281751431622152633052158925467158493483404135206499476258585258534150966842426855429377339160170808233892830495802895576032824957459564685061335795576194190208345452280087820062384159173450191132842119533702108811004465181527237415918323469116032784836698943949562579943971534312135604847350606177196369343396642227504169776706564361136556189569564806551786322209342589713138349058534644371213702946064704449528675144110298105943851154923092480944141139141108045496406424961918626511677117548701084338932737008683668931100124945647810440782319646543408445450712406743948039194063184950614224959331826598929393819125615276760148993023420339659282710770043559470827023756323172983306283675960424097532237374243076251303371903905880256556026274437273468769522980310620382203157119110317839946701398491296551407187918447979487310432612486427656230201850731540536434709873299257481099179155249655395602843575368839026333994031344062231551356445800289062883774668666097405372744843408237042634682073831661398578073819616928165496260392017829556621209408274609212318672724743985144919119253108390253357548485856194136903032595700491589387411335644746391472082682687592792133305650916245424067649957776565586482293006768707883355399991341011966242876588217823252310109689565654620227588325247151959111483648314986129293831615114646186544905532575407913233808973796737695360574496275821472731879322246387091046965830897218841906597390258933179183411560997516360855712555530462055218071799525896997487851812539810836245656030486794567142224802893859290457615530993632074048187799038544306177739848866452057353803325751540130378428646067320754156597114152549950616441755276349425911750604381065753983483408881288347242587165520003010933176926608955539072791959092680563193441245185283772066516501234897188961154798210639941641698500836359391217101761022062571003883190702000477865460145895737638637674962224830805243873737376766749483412652223833844763079359579232321054978615772401423990838233432155312299657136226532517898273740545977599799763715583351207786608423498779602624326057034969887680461887305047514370181402800281594017187363096869404244735326769977892133954813342881366484254043658411648404293881325251443759290064767452562088356585710498440719841199897064993543656240588802258648993474650541798602151923717811459778418834337592097299514662768927030424735979017029844025858091959087818947011790125515299250977972179152010191076377614218128164949279715577261013442258442923029882979310569443903887472553791968570473954333088792315920737345314761568938811166089621958619285634395215378964833670214623147554543394253631704455649978629718014454181243521609770069566039104950635022929140019969327922846805390528470911536814429978696703874790345047528272392520947316656967270304899942138180268638697404010955769933198112800636892501924777988671735537773546954024056983526284233553789427887456400118428800208161904010014430533280529483429756744992336352051211257747939048281402134093750456310735986358976143396851897518449620922459332400644623282836985312365255096375457683371039444315978832596304756530393784290686460942235481146393856899606194209843620513364656368542293880965158561153364363631484750216395552852726111372004936604172991625038686126127112557946440351819458812405490678933878600282638820060105439925886396940263879342483602035021060672928583987618003566512684554975039164121206615082186527080562752041488116602958004144885011091577372587152345703740408828019712890135174732962925793235976705861240945818722466750313746736987522615276222311398385917004369400514908605479756696692837706094497811590648819933353765160342945971332272604724428432041640875514587986852708285277132875636340619672845310588733843527732193406169248886545947095385413970255616977598826577532008418532082785137167446674978444880971208186428428130301848941601859278405903566563057512725158010741224089195545096006611816538203936065269533298885242134910888938969733627439224871041051223088010826521005481816107977508356391869024262109068155569348975212830784899485977917336630216609529962993209804615947542488463125367604323879736183336442861130787601446585315951618302708039531616990538708486183015122426438446574079574561069262775275459384771682327178954937749357115612206332052847104214479997030114729151246449408561110305907021609982246112763694295061027025388439022487170076836729610268605703883020103983695828632739299982952182306607320038419616284864838343936499683002146590877540445320287670021344832916019682086971629285238049511014639413592088240202234112883591529305332663761109278452293614818985532165482450675019797541073316432008023527789352502211668126123360168640845628063562009834401195803850464615979570988782439988057758637664075452558810999295544302475271931551404726025089490302563330906541261904097428210404862243659685950125588044972508589555613465983011644263605939439597719364626135695449840887480965668881351350966159420275899395424325681267501379643045679187248098796488016736001560868302921397496064956865166325640782070744264194046529802508567447360912330828654844299808433945769292527346902251361793808658775509758822000576794116636253595411639559372249709892969129275683607929253432968037924558124979631800744886325682457932596172280372055585099261793868649923275691698089887206802976213623141154064000528204037203150506867166404178716993586427657028061434752228225625453522880589316807477702049293158195468690312463979784807515455647608315488126656816729898870529776900914136260742043120912709948266545262096640233690930006898636156612126322885089157198481037976324516530110095625048489593466427465760921866193156701650101215643793409629307359707843015916755771059805707078418966715813750267606756899108052164241538997870987942565025702608305415943685609541940174286498812040251828461630689850859067269985386287930785806279645972441870660925173602615897040857993996877890591687200021050969336229786338663353399833585643217121458493609249325526306445069143815972035536537035498048395244014015532383374618754344273402917055388903989985350117416074359662463885430047446744859308814482435553946501833637024670862787217366780482536038830959792047356141501179005268248240094573390696272890604198069534958107666973173232187569371269964146163803267227189189166145247476071288486638826421864414340103855399505517700301749864642767773082279141266601737441508922490463454957189974586902645584982309188005254861368477540139027295402407612472660412285580116132126612547712268624733560433552694621705730235000522351624941733716635100930093533760873175983160332307451670255985128791233591263853598831500680213429020803607178509088838230202956128985320595803248993984750905207517297881882547235936200761520203059512772534226691776884715349060271019413253080185056257033767954833210752170745984473784327377072415670908895564430601459755393575376371467549948882171141006419138811847717589462361733218186627179966231266181653623175553225701863787992657505909242888424846204068895523977276936178911520005988701315907482101097511241507549626206440607116573355613321802577627467465446613275778822771827058953775568389689765103423455370992700624728827374466487771874804044849310866679911928177919818770022053219337006485663608684655594366798413439774576897730302533603906678802253707139537042717525647107412640511701430037419609871771921357294709811051914187676996706903054395744598272952617354925468532860016066789353779671028418529358971758134516787234919469850009764466994780125847420483181771502444891661185888068335755199980359324326962133486402513767489566846155585237249813669026283327258209335320414113628455678907336668546098298118679192258893092187547987711017888132913734516694777042698633497241927798662200388329186966399509253468470226301943738743582713712277395931689037825439016756030061030482083379008307249622104851508662833551242356174193322393963886120577703163406195199267154337659922570797123086873629916930390832207987013391182186914430002045306550802395090301134173982778489147151014522547770580487643273110666454168784314799900482293796162842419492624614559840228871057331833582654869875187154243799263844428288045501527622949845133751754976762569612000448929772468650775785135785714025621867798122712064625773694212321657935808893447817064598320302100275178492426715462866238221198282865635613442439719169330258639634364974981040399767642040137917954382073567327415521147370245422114934803399458430617860277447712328374925344930184329755397364873411192328931100079480656447890793596973899236145703061381294270823124267579248485063500092401547434051283559347907049251413947234694988494377844918568827460005141218701369017335650076260951859178283651413995333584670357506449264883026886034082984250634717439858322352293006632822586165350375088124792263533670544958987471707428600063619905198353024269409194348637677780671550211003212700594457907269767665311568791110006398496340855217085832871116852192599340465105648973309392385416654983042151651289785446477279032546879418169208145535118950777680594101489223751050029503519580431886467572677151961507338601580125405700598944061212078040594109391986085764979738516222736055933625628516507040298070726374826233241972431433874946512737451457516562422638509472493930428039875168822100234935782509866229361920571917154996553854629973885704304146114090595308258747220515577924315538974679527226067859689198944222383316575256118171875973392353476345747661828406829479254692214851787311019049275410715481803191719052803835520908924589873435207586592737547974757626188936482862869160940052067860811301709165051810740747048361325274159204285784728800536643666055731540091291616634799483539894659057181807618479843741642291597335054834000754097177031551463266097857509484976642338827124744595097038165480513886410255965903800529024416530115245973983679576964044146799614995492915441540758156452138173585340538882339293204146392752998470552087052628660572071713794596446423356161447721823033697816240961558537737428365112503649597481205314916179955581281279236520447886249125321428591620245461767617765110139880345376945110580886937081096145637366558202690152232087875638005696965498608333860076410707088947282060601419322358432740916242456265438990079545918257543128238719929798005742393970429935824738049621190236358676001947373442572406206728678660169147823520804153814525974544654489175555091683855187051651587056055475006906422795105749791299776948527082237472813842718705278889255920028595850046277672907178627669611778082752850526217576919002786858213556616990331790820166650797564546952294410731742101159699431115506952765626752057368608989573727944809047967934117518294161442746816299218142790078512503598440483319281684221127219844820932164155039984202056425885783584652996770968085054515188622358687171235715995608945287182205796054178474733656138141434957898277708076197522574084824372084293574333384160473869917631699459700768340344591859345446325104184158629215767245861444201145129713011780627672491046395786420865098503797242730617736529410864626009228951215381182589684641385147305699828590022853717185308941284636606829019977541907393990901479552528517047290053260652466396171606736037954857011119851189008948063575375558246674704342040572270985612465251681921831675206073880817017792551504058015040613363445320437853209432513660443819235906156880700080867648752409705259655083754811706514495682715548311833368396134667535397934839995830373572655097747140145132178154936196353007878918579719151174185536740725986122842666956895464491361723941583129970724650417648507666545278988213004890515393646930729039721525384169037396376618003765134637636997539565248730822886333027375129605745574430541923475600364369414925623871776086616842173310243373984499681493265111772240335343691710622208757521474361764339708331692002441289732352132092249922134565602813345574299193404666597336100415965882916759316375307037984681112768550841526734714355687655770921138813572880046643159387500288996830610885334964876064886968924014064869533559867964454712068215343473335838819319071084286629822372407968027039756363413310598199529976015509106324989704841520558775220459602435565820914591987792912807928259570625786703506972733106717599377288138612053514401619993534924715527492279750504258614471090907422923649302315620775092148085537604902435248685195397209445304880311085253037042797194166161860816766918648756606801511157079691937785136456618172820868496966806893003173788026609493723686476037416781026708060747525247358707838533337064858491638637250423825323255393902196008723963015460066727542176968665384945937362265992338804624144225490282423190213055177389291260994021117275188943772444872455818166857107542795614821748513911527871351642881605508400185811916437059091668341120703703476123757132330571348859072984700336285770852127984832028152793308856282224957363019257359357056770986558065024998293331835406734174470805597809229231033304152361038659049909914865384516011488542656834540026888133811662517500020671587913125313568857958381381645847824929529069446435682911702238021736180790579388358924726268160662929145401670963112581801256577963257020648658804403096855371263629275261114371987183510256082939033656964836531203370866121240259706613577118672856167717437986277090717321325141428352120080397463868150528675327411100183591728121113795695650732417186903929881079640851626149780607032792420692829107139549110757916338392820046866821445960568141789397261834267706177976215150301138472127714332315113408331335538809635451881558809437484669961325542541995599587368539779325788079588738792558168205113487670727265265936526862736664885300331865963798395490197844193367191138035218680591521165423942340050622283085788689065213026948498332330043857300514394608711494478395992344798606099328233706309249223572885101699353036780043875443512420102803914482132110020068061595775172747768626705714885379962950951416934325480426623998335865173396179461778834798767234783139424865671713623515545964963694943867170940110042027171298380799770198761884095260602520250921876044734954271930587738942010146187900922294438343573812620197166897378956342565697276494349934848671594438649765962252942222328256787566084068090454283477818447154954855696880264029549817176405551210153608151313892525762683023876925161447680109070407587345761051028149481210307346512108695490342181935573391065260817336797089811955419665040683462835895308481961239243400741324364472732023389577790381234272313122342061057868735072587952695866750396169038190282640048006225692806634011032813867164523055862723487620966361274431424997058212948421576598898629754367753552985478773015026779008249851376351634362296037612269489627266374593425551444000100937870325593572862635482235275610965581738943205767126662438405485960835803375891772854408667816503266243489349162658812835468724560816801996407560346368676936763275785992353910221733428660994672137191546582562374072427597094441646598332469677007333750524608719570652368405215591805976295612910082105834916919100134864313798644151763122914502440324282592642934010231322457027837602692889198883524709199469886216584818891415869994378468050155908032285285042385165038847636834641774413959116062180855539962107584109393619134138488829856002354492610260575013788677428576315419299328172594116340568887656370352497202391685986032637169269243735562459863292078383903580486402882201798514905887155155484176772479522245752415547784018281090721467968263927909339367414372388655732325032184126773165264569065706082597537239249715364169895623931384398813441665052450730942191658271715031972628439195480560325819195038118077697805889366272756377851561352835347426333654216851529787513327678262809260472939880211898475894415361717881179603594194587125447183784568981146816619748325960633409098666698142307542604619909409563981838622603462577484184143136246385204634950639878142272875759430752144748691450626772466317923542355726434659956222314345313136483289590184825084514868152548902970128965320405639729282793145133445798530195894711661828146650795170610633766943645836387818924176490528733758167290869771059747770321752239820296971304908057878030689630036958102647935276492848275008039635717615284866013711844423424589352420334840320359599228356003132708584896719695813591681004260627879220663787082594656827259596988975876200080266288391579895706242877704257260923827360728106769471023467521974037444443533481464253804247218583040752241130919555139068084775476952566240158842096904242074594444039569789234689442514122034410472225797084596273476588145961015926977454047092637932593845443649790473938829093057068609708338407461579073510539972588410507965425201212384550301990543922878502318434862068751894991055173692015481065626333393349497033128116474242120713808607215246221198999374327267243351236099914303520228421268046801000565993371473105522608642302001726786001871707784525684522309724882331779908593712613613808847087571571280845021593333124110354356032636790028213266163490479496514443572439153467258891777660812967479458257870714342731461940515417841099477175774388297195749808571866224555426928282232397130682743735773518971935813173485581617822229443773271253538963862738261761872984428208934606798366130944321074934204220249040549635166964715099588150161990334550577449913596956780077868947335236846452189294282635053699582068634613508020980704184057238202393632552634255263253279868071469794909018220352100626445685065975153228833264887878579102078868568832836166160737240950321167518562459016877698856619268281589814167557464899331910621430200552638836946246171928300263701202026015560584277066770365726590317475499293156789073796477271735123298995925727983462581251780319511902324777184353531913678546109020945199666757862448305629063405138318525636516297273385649297478496431912607515009186853563822424629876562227298555421721991934356964204127445224732342041297670032612589354199537223764848910684605619240505453340983102739289022244682511405179132366931322251663407064450798072079583734394212142056546085960118506005205437217248539604255172558322416950221624908786814520880259487211017402514921222443789807597944526105293763321775813107281788543784725955528748819189185515000687242121524727958169921950559975354426563129193931003344795830374133341649462568255838086328949768147875203491161170658976264155516445572767121670279397797263388590255072668670206408929767691018504995540309372254645640653255635963012819816274510005648866513900156145823051526882699499807900577880336005996952906701017980513028115964403379972913845539962319124680261689460778428241474113090528052479013456520146229523958403780825190120886464943793841778356953834296235014406518171671920365936881939719461800318787246318384080896660659077865293509929521952371580382795631213237531064227727333836597608962027923139456009316726598221780541479766604614611749100801574723847891583738166233624681701483748057679025951364904428498549919574489986470576843842505594277769443104358714350688547699945778661538087647591423366648001275144527479005752575035664627787878439520980799763753888849980927396144657937458817518222126926959443893704195331371830310882223056172089032922931005996026169846396511421983633187202600388935082456185725410850215327958938856837503027142442721581454871587557441231934040604170487323826750184903079991290619421773613488364991607714192689857769787041941495806466070563460061798196142016300939702795949739022252163584449184126080862637426751931065983797341654982148264858595139713571376184985070897269542096685385770570425455971447509824930862574454309836784466706027675716055158999527715539226157268508054596888393466213135063588754387383353232429774728680332673070500100614180652530941814725691516882537133987731266813479229024491768801477317492472628781374716081882133215077471881934150447825130274489740529510112078831052093676892228262143139298059820220850461472719236460632437696125977698370465125614216089343612609942794908492250678882908501431945517758673385345752304267491875607098897083751648149801411563897503054338757730787450048037679219076260758995626666233864044308955066915451631231568936787197715319647422487281175549407652506113183300928548148012652360551344314774802833283353135766450031335004652523984162047036380865383970571525330330790853535690306630868957383587937026755482754832799111771659573653681505704123577325302625143971700341561057457037804038645694624720708994785396613114409108791183542497808476348903557566962212168900435470802153615229015948096805481393552539633102396110258166885849788154417177871049205140803929471147560577355310113150399341038366942797211829572712785769355544431959118516108487530887614353172913425069893733376464197410348252830260051667331209700446412242672541613791326839729198487117351219277675477948956701034497598558096100360399510445485359934076102844491668484651454644797741473051177480383132163071418356041917617329390082669079692984204997102905593632422621368082987181987384107445679245467855856655225269829416502233923491138134424932974984916758554581274300979522799470563837526812157275446975403976717895870208332613526616011189729705668545929909112752732757537717587489376118635264307829632062421452962376359293332902513894489009373930657711891574834340531793205249492755585277677519847075470875809650459232981640286655059243321970116574775708924339754609700935450976074487569057823742853418721285891288206788217571262843092701280861950795729497705229256975602137956101197556406152859689488509145962361211726838106663953283529783665053883155615971718683510366853251085848634153734547721372970928830629924411776698036927718719452417692485460892781975617288367865754595713783693879050140006243497412217929206322318348547770731729768234623359223374358475366711602860023680905468669631784782160637150225615799200253230152277726739127988443985043256332817798365782037018419558371557072741061189242749064102046209911550409146366612184955294051308876884419880647171137280219083819784234184324071347613252942360167828925765604770767514213778466098601263151328951506426357955454956069299434594863323642652400271057523982763478314987123848303047566270215950663390715356344412908888686133360450226455957909342562953547326043103945007634197994304645426547803778411135308799193010262718411608945641690574049683949990335268839417753295836936538919668674682225689334514952858189709748499551772363492949718048058256509306824083950966900958934969305058261352159282985453699569936901187553444350986501011730418535784146498951143223096978338159412108500767345334711240449607745256325489630724411333134305688481411681289961316858523099158444096664735901576911908028331328978316749391958707366797765474767965729337301465384249166317739167187848705109302040775883186665790234350670299035203990947050525399445235171103374347951528176428144230051043661833796387101731149800133769408856607938112290903190978432165456596591886468311726623034055958561688280616831468748759224296230295020922615055344027458604331130323058392517875307238324536476431570472201484252583817709229131456370139731487819089961329536731717320872218399978863079927610361595117812059117933560641747547690523576515265903271580927760102346261444501511500619747849143445634751735279876312199995412429419318726265386395855483195802015986012921662336780335863493668126549140150141354764066071092850480849798677826474454990018494896515801948853245580843980150980547445269413605586419393212886831537056444151999242631295280451232180032791961897174403851653901210933556280897856601678173114465406703591324200521991693813543239984766323526777316224907732142713180442175214101985412255312538174161134212445684783272816620845849369936361969630901300898806080399727042951895587032550666522963414353602418024185184320608823547438923738138553693670932598310627330557363959931729522764388558269631982383785957980571648797826756172665112395751632989120371465811139511379849416610304914708063212290778063314294757374605240018040099462181407430651776663939735010207482671277122729992439548168193816170626701368085956343956843973270897768487108319747402529456934855622095282618574818722372137276701329014481261574338772489242831106544389857062490771925574071509088890852344386078163081116246112472450876341006869525570577869762908531915027913535537697795225892380004910395577669288911067821148004097725694464835623757499169349275843116785378350019859833395038237842118104124933864014349957783820836317157258187931806145980655861032257241605677978729040218156132819932183538557933806774864733691845812070022351215723599944291290133503738617256418418354924198027535181822856357242424371827492241574171026263553553575594183412689901424697963754250179578913485208113436314196742379541096995750092372567436758832419001395069286373322075388817065974760695770483069861564728962825186913770964422993535835359275170890141467161648431324198892490264036213578122938139722341176926820899909791362385369777987062792383572298170901273346332975658138618087429172420100080967788436617135389957883959529673784300178148245929672493552101378016334307470329436604794875297051291412699804161329519224000701814147081911266397265795289195769623594268286832883096301643159551869431605052064570517249688227129628488396325798599624459939883390912848533330875671259577845025264846939357891562400248727438775261703608649589637716744298130669415034126988474549466526921712739391985814415907320545642981098343354031352385290141268482581636118879248251276059595840578323609503870017009807521972297655419328896879308033720342431434346994395234503314333537876342870398433778548301035787418449217891350082914758921319178795909446842252902977699883601615586637678940796359586832520504894923757329410860944696545763288549410080172441467246684756640024535217653709903085551706729490844653530476014568574101044956569484374787094744933468888964519175008053401320763415277328531601550398771099572747234057747403064404516019610183036117867138868100598127342602959299021250591066100816464131073759431096788036579713069001503685857708074265248758763906127455966885028896619303929997464892450611331090274575098109942013799959550521513738084546806489944877969491347522698595652920290596635540952297896493701526676291662364624124895531399844318892414801256788138705805657656931482838546190512613920874435928271642673298937809480867661457648604106747644814472444297800796321016978639097087902816441940597692362266126127018300502592814661022182333033753513040899174660194273108043592774202642322826830439873258840418096549173224450662827953523892564990128638923337799189636386655603707139260894194154404784291901937532244852533221631028723527601596543747398292000907351097276683868862676482897161670673160236910100788536139270727641627717466867947044108178333055235763291749626994864542100857160365641029356745731308898684557356573545420885356185496415200395874402023741615883394575842121791569196253070110899299241501939762180889115415130212276713666978224630685265034562844713188750063949061236165012684620565278436691138775092399564457727328148680963401410309666711557763770819881830484986111910740196173289822706822713642040867797470481120639684384605203604453480935666340996116594572189509299577543690269973639864568244062890741396276374548318200387742278479071798078232729401532849111666463462881469805630495157875072842680903265390836425724615788722452450405065094416200748080904009717863382708989790927321557589121573117167017949205755975996167462133039411080019536714968548346764848231075077967126155640693903937757025008358423562083647755406239821670605348353204481872046403549220846644177004041896214665605225074164298050632060809463640080134365577680094707617447692567713551881298987538177621755738343349974011183482990120090185017206314917219623252015417207287015303488880542001334683894712857195563148040553198178142892850110888636538088956251369764706826130437550560825416158467362855935665635525220345609096779662983611155753951003550095356951400426159973117381254761522376862248502698796204122825444695101871979627734750998258750623337318235124616350433660908155064786046157244313644670202504384055959574623729777556514799400069351507949364784913378276446744668323983960753718828179971548487069940577512044499382323365492137182313037100804889842629734633785577132760847823464064054425212000641867291787780049178627445502126046841767456853762344180370715359118093057117650619880669861803651949593672681645357187766892368797958814682420719057758075959966692915264086634746648400905843863299465043324150928138775194508894338655832564066718111919372589668762642753694481707417902057241963157041919764797058161340864485443967769046594734847580769160693180025060251792395575346441290959694754172959600143772979310474140546806374195392512823197389620998535971700942076129200231977927024205738576562357266100928212916981951595716089414847629788978338793412258938660737559183648118428021625688149281517951356767349680419608155480559935420435163400000898190134079229792057969141038287406911324798292264313951068911347365651188291436299289175208425657686584280022319430673002886668086366382733127333989503196328321484671847093091380872723921684507517832947787629891635376756613330404307396395893534771058406975466624961808979896027166644283393064441758206208781894162454027264288656495523543074537058712556842259714006723637244037333436474498238673169561669752392626533675645687261081152723585602732036139608338639756014586901684275213026056412340606085619800919326462922402689033599721145913104313879396289475619799361301489601216077689366911888774700915139137107060975220867674341298456669352097357475253608043777962577287676015073609298033730593494169570631679316689369142633284315882279652797579921603235475123374393415563903179605700122107161391629259660545937981428189541565198289251069017518280906872184512506218507874810898453638277295865166688454876591562706212764885641321211489813471145468566335593829150083166941025008367314487300218783434561154617783812243092949259119590733797921318891758353329884902204734363215751993986539315505815341172282557991481445740335879378528236352197079007938501098203486499377929559012911312130948165406962565958139411086092168429203270325294068848377547924241852788417414777212646517852860132910268877583056089502410193642253495207948400546773494798009666452581744815633401509742909348226232562740710139415929201409654990618468693407967693967576476934331328931821303566669813038807435950151598315982254053785931615834458169554194760943402487092676416541443134292948859327608963094964793692570662368767653928844427318897073883494982706120670548801161739089676645931250919411224786154225292644067757674586781737982689648728829629574245360559636833993044211414293486175043519843214292607622059632489163973079228728048177620375250100788473634583094199896578625466529868489701706331364507786901913823364283907942307001342367524446926693179142552941204671202210297566869742100609175861129933067370664596127846136669919252994731305339257096065507753077247168074453871219655761287816035252498732706652705499464889015348140393821194075583319952911474251850546292636755124629470124952992565509630048939772257536225201220894317546319837218497933049726107364070163481250850329019133887848015298720498390995453922616539827517058360435546017525172231647236171848029259819589958649649320334973582828577467006445119347419908815743342156891981865992133225350826391989088117448737067827093879960268549058850782419750818290717033528227672636423003792441105619793467873302627886390993361154239668924661405118076851803094478820392530695517880945060484484850437635964228493616005371878292785262489410277083935352647077260302131385175731199851992780035340999588659003521707521663333672643405696384598297819174236664982492787695948455524441674077895367783853259493013451934503160577643489973403199332213493966627633391391780451981247809743074965726944869634141037403340806487220670147955172102323707250869415208262201113049053098155040793059375907142714521128790507864773147318104106149765757269985835905694281748878689974147342104442928980437420614779301917911860909185739107846425509812637628321419845163012022804518963028545024519345376135710012446320644309306124877691464439163190875555607077013342928157402000105260579980295385913653831927690143322963944027776756244787554553297255590430167248903491777932489370572093142048885375993339386452886147614538279148844443183891313515669004777382079435886166921290755251436635327313412128489646008847249216371865706580688433983467068825645511809753734014001391128243830902478911820090233791347044453835740966861598462007745694030318552366894803019940208794270806290634701954322222439264082718718702368869957332967278112916007818512510731383712590789553420920996522733577662095796146929896378348723240875479547579330754233908328973351912936664335242747874186481037401539701016501967034022652598762978801027126004465521012085782096802808132302631084757683147962995134982864616217456230159358050104135198868491647641617501564545632296103328299950816862660712243263455634441299748942602339473541491017624610772431331894875571720625049426783484742745430054055674795801316919747812840400357723814175335234454903839864933170870637721586929998758812545866939574971926116464188835538818104462089410330725218215563760457279648735088412000885026498659686801377248513613135616729553190135426928344476643633651523335555138094673233592455252356402124504614344637704106575195114064626810829873878825718365116316903963398656729078755719791942731998407466732568218953661009634510069060744003737510411934837754089202816752985643327719453563455189319581394340286270692145927066162100800180836505158367130913236106915679677082865433633900547217886679895701114515433436120220122978617134529515572422157371241884493429915932084697202331002436142368399615856905136213976448932551431765581304257600693381761626555849940497711169003499401275404593542216775379022875245923343296349183646685908052948824834315484178957017341800484449827056108917938527700301796281815101724141072705739239777896535905442814230810272991133860010954116227210287221569228530742075118483360436707958034882531184862378592968292312345755395512993645722887083204272554654790839564184238904935113246819187568400840937910069019736140276628666677683796158150330589976063049639720113153715478511735285658840124845855117656594089795274140261096220611092957971254375817547494447139107258074753199249369831392745941739692725743624801404578972959214539394435172564060083839442404819452151708047591419535746638627826101907579928775125126102210906799220445465659443762347279697600846626448200796245468406170574516210805634511553762833015240997462383281868565188510515823976548823700754706616837550408840088302593128602104980325954816324280957040640507977227101545307872588141495571757289734717694491858441615523173108075467631152401380295677839999648623394408994260986750695078089966787327165000464372566058121059693033765977852746296544122086193856275336891283685076519039566568318569272849176462333578844344121655963353585661085620311217302343254571248889959798923288680228632680296236508217543028761636875104866390204146125920235445182237498273200089148844479404960594563120036274589054979156072188454538184149003158851739513813692212417424138817513544923454418323804232886856250708813936848173420308567168482707898484735339173262114013851883474689440909085572558984984164148894431815894503460739780564863365119896055401834747652092531609059426630382283182344344287759449424013298039943883178734447666910180884145126523430407419645671606170439691900663983348462668563758317512451288640329215458552585986549701693714252997908046363669443406666702907842875270791464220527731269514154568410513131374810482834075666201614047216412723015830373328410371147064743248220390307449468876954839772166441717788257201047873127526703627289763215066427833062867157797343856542574668660107888806165410826727246553797531859239776504469255175625882223016721674941941852645849091309151502069560197998049835281237944327581858820916973862355547086006093444642002973039529167270853237481415153361202440349436992003834373751467856458892207776196078319915152835692467706846166705890682064270529334334091849856079907999754573555620796833537432011863704944647559558795867520546235370719929323208808282233073659716234778789863516353737659773280969310117125906032852144424858340788517486055881312476140940938670912666840909730747995268569388689057284640670071268843342262695391776376617103291206146045287643122016027564000174987716075818105884308817695159089001083899231702716055191833230296967175818285388880179451181604274333520704664255358422143636841896469505582890859309097893262437675076970565272508869171235868757560788980273669552503746349440085294833614264497306002329888983242933180870914465544474786047779248819391949001785481407447744070184822121932458995503889980786107196792875461429405771113766020488489103648534029423515927559278571828911603552572310915814559452437104519791031967639587280618407309663641162644356029918880265253091923890399797567236582498231483235490373969894300965161605684326327514578890578524749212757227253849135813768241130409273254823512358871669768030166233915455017269421047926571745016841819448380797838584260184839415932563708069641678397643616852165956083915677082969262411639815069582528435330143530710929566421309491818562925237934851741911628619298334761926911753744501342558749365508547144840702854914563492590170629066481250908609314436902701531327773105960221344089234738389117516853326252806110583489732705715922933645540592955650273555816426480598284680113169292505192311135898642493042244862987660387688489440612984602471634386887385093033137275767463781006761895622289833237138700305565617252249594377659590373994206556808235163892114586165103710044309407407071664192587366630742602772281232129224592480021915448735897359846888403579499635325126304271420769310549189430211708723742912672902661243335786577715194336065216875955251487044386087884217669113203605680826854388635930461853106623192579147395571450569990075294702374834246168750434046399614977757886748240232105208226523025676699973995577166419673850727547270702486975097414724247662938726102964040242632363375185121813347714549551885277472983910225880226511581044815194240829308959435831559998807450239300188736758234223395822652428760723267636416650706293117695721601893101238946788797189561486118640884514082074907684229594993635888686712907039940801690205630394242022350279833844678225327030097747998509307539819417146089054948349456132979837562612487871098083721011020933873803117857479500981564987515418764865180789780131620079433424989226425968595007098552276295420175257964238006029578017359533691115872020474455167581805002956079068952503312222694004997013315832771980776641352775940888093112126476270556544078778614107741294422842577177149122559098672160241570246409523770004871461242827333616481985966546524469035785667393292478701740216889805019831621465406608313166534007003240766263646029911543293000897465557160327485040347025741803530880811093987263790942993412647517563139855073750296530729176643993950660582046785838035900754705646432787021791569317661870161585481804121323971303197447281405898838044594975765333568460714577858904027959673624324696615733950377438280607510565710882909262705456063403251043449643410321970926256188256099363458786525299644208023545283090765502559000603965779016674246082208364473631705828559761452108500291137304156035435984628348853703238873752586793551693868638363698056364264433422575847758330784455909816177145551071542363762068714422732358056820462931688082162700896988681329639743137868374389135636257668609315930647690014116810684846315333543063260142101122397223346613821776768901671756074908775391212603429292526578404147380631545924192975308744779193526442776038994507128696801486549558288392865184936829565623799192244324896947768791850850490170848732871496065313227626003277059037956508132710717457118033438854769560232207561045786280597821358585704484398485089977097390765994221595713641675218638051562539503058254481168916351455876493569634880688201388406194703553101809827803814853703235387790940581125178085906875692326729834659996302824471452329182085419164093394637286138820352239979218660614165005814530923556501062348365864874325815930995348607245682556742171968223467098865482485462793907729558151485483564317563299064717975814846100803859078677203304458767815894995977561806556738069481285971311802705046215128093854370711678313693023893744399314623205493518747295750957034997126493670419046482552194256979888969256776945346294651303264622071494945289291763582247150869318332350944742893610974591109678421553522301875059880019305659698395786991532824250793068776713371755738130808359221800063608665978559188437882587100891845293997148369750141458903968125301653956071438517792240117537887279023933214868273611050530172421314594531186193860990921197846788993164431821043595380917831222484762013776013817569776794091206219622367853832257441844362957740709963737592014595872947409242135305746676041948628051960488782775137878342548177009859938811955336778156130015491440558077968151765873969595956800343553437573293597100391805946010178062634989003547530311984459113750758228448012615452661559711507737680929911418902550291804272107780955157746156590496246683524847038441365838762973820899971254449155368186148659673844733313272635734521445188500544492346227079167574384171241717671936058269222200008533982035144224762704890018371908127915627397884209375829606140459323733719116861907414941582644270274804035969036014623855479456231459615389277929306873409452907202671766502592704489612964383204275960665183054570934396030773036998860460544070204964083283304265285643189758578018391794706328684299737263151832241823289510988686649238211370357825377743115292440973429725476048989099163708855776141616915722903502861567708760721636066084462438618200042536961352105663735111997892276435465949747793213096068964713283275742928332564743324572616901547359330773189718775477164693250517105537102317777883233026261191948205356337854864424164350439085537890768102656682842184437081373467087075293968033688619723400428061110416557607020206441763738093098196308127525654077681473140839217810206230175157468257007520800674989009736644831679554473234986775649009435041285248727563497101016517604305411845208753923211814197002308463343161407095507122825303396232375162490524609656029740199104401051277234613517516824915038173206184633203016078501675592880860929350266983784041166763190947392021112644867417974522735979615495338158601395575371674475394193337428527781707286710476906322611769785205951927669829432396303829063958754866892581165765623591056532354557982666873581602749046927485847757782230479608918334877778384045618933372564609845572456992924575289469872469948289495497294453992052081003211164255265983544900245554429686998856510674788649505550542107897986390353852744756568497604367102369327653003870976499925846866522763791703661853693494807138243963484815264809508144260280053005956679622769463429983969180598831182407546551224824353397536504716652855862837468074348998388083384490365091097040400084551918165372778671581642752384780455929129488880327835781223208105035414712501646191928183055031052424705391604171362629208517757855372845484059171729730365748243524338623424448957734496355694135755803887521550489039770808658259320460859128703124239308839447005509230985382475967280724342690252613443142472214013456774513864511640996177873596808904058500277263854620548775933533490728339898962825255838633735954517944420454664552984039746694319862732990876223860936853617617643270498940157939873947617216273703416866927514036275243691564107486407635975255763486305460957069750399970785018770615630808308266464857675617241524210488295588138120841765863110235497283196346946153282984415871779121704471800834205683477494825411441736671153987676901616889243925234399045843163770954149994882222873223481084347316292735798752697629718334966853895843877751843480700570215567718039817915281429451353629001931435257853024328711799457056296116510623731666369167848633343546943455215850581093559626659715842039107026738063297310660113568188464858593056313305635084037251009405860366649232508253081788787764616083970818461128566455193959134871292153728078136429418217114242536714119426253176987318308916441113074430071231724068441644070750210818642885096046116098277651474905697053570587037763966738771583353534090333358169789747297886699005889910939037140452798128903110470745710954120460064087974024545763345580820670512761789906326142888175469309846874874767243288706859527028400265353270835618506500941802924902041723094436713947022007514403355705604514174092656965282237886890981373454996631564159269557536980403752578880500801808185327640159848719511919092073987805059487598557832186225269576002578691804529767467990791841369152684626720182753292359957569124033590045757268975351437651560731784410351274031705657674554108216344703026640697782519023944841173515466477122133991092786600910997540030877109603382598908277670143775724999923455385236767687501009527794074355421839951152159080519772932576287094153161438038969666365810393742436197392659171833379478145980595343629915435452412360642052825023305687153002828978812400053625179196228025251282801527487609015826558611699642044352933966821102319993869021478189507529701995390201677018326998199800120821929825578630505063918061435883082941329988658947193246149053439003634768818867007539658891299989950021407841383045168481419838317962421849283876127841533400454947123222509781821341071154745764897491457549495134387870130748770698374746484113291626698524209113629082454767739845103228446287854508748558812407110925214874428443565966710048593943282624526367439902461575250437467415981044172203377905969430127547572453042838255532192964286694845902773684763585356859280814405454487646751860634670086387950655167370189140618635454901596863848603293776602441777429627443302615343741473336446253553367058750433674371989334009213515507472121471017178513196308577688682645129463273168935563371342993536037241175852386227184793135364748101391614819545900048995348641070248019380577172703991665907318972630304634428855827106999078482972037527516820067590772226027207164179145784564407145998118207478980024575118449633568753337476684808967735272443725317883291966604790790204748423221461398911589214653763142317779002051371798445661472593621067239289719761603760905493563783072567610866493140210118924516772379020336872225252451058243549663861704415061172398429163533920317264811231457392489217444811578047091665014917275720550675416506653269257449082331909336461847561944470942477417279326665426619975529345438033037460443044521448719763721650486353971769875438495715032345469805448664754637733043418819335873594248907407911027201312726339104185844758942994126030400608240600818681623501115449908898416065845147261199809175648625704101919509034204409706750550655099373418424154694951485612966657612330476967952150594770074594812288253300729731418093072120963621019968892464708893095554908755122851531757052803529731412456734738168177034273484828012401568127148237066760667985932400127745463328413886705987225965925248232985637222539975274003091120287178122480438728492182098737085112168544561656326270897645265504298619072934471735273708940911973982902144790013427780937683954283047504694231437914782132827795686243238993479481083598314770355783808798040966796251944955715894034986161213348740771121570575745569611060007145305399739035521905300765595536251051666182498367751435320903706371239327419954374092959380208728930160408102054177290692459154699820669632321896717876579713910245092722866880541828079477683408008793380704649611652110801778118867184372140802410873253863570941098073164602196759896101747818464493750738488749779243594846535606414380564134336880170739550869821317334795685246625555266390134399260681405512964897207525916497795095082017046067043716755587569787526880573669783882836304312571372819117138471466494301339280963034209356736699502601476435591048434275643396683293235258072073388430965188457468190632976531173722137907256629915603936343771770106344053177984635880651826989615853142727724880043532677436937983231207569410173171009147317532773634853453830194588360680452430568264761790748393076936913578203568728278561055404992748943232317014772115182556510722247153557615996610180123081413409724552958120411149744637999372770072082327261476547888576752843679254103303210731559918601497079257742585470138124122363065752251454712039634618977252967551354469699232153096710007623893208576819885391091661977877481013445826269948692673356017476138682076684286916675191596917974674682417715155126810009460951961095596975767265253246572752248609609648718330407919920663465423937995814315716605092406571665097686679885928924688578936005189524036026670600514321893278017713502526995910980268872069488172584417352787878933986037396051984540487221759938172911343378625450624552524212226595166034517785027256049616813337141124286237923111791932189198089896689774224694032527204900086770227381822316520663986555449590119373765458250618989262025542162158407065112005696531253983322127601891228055385614315250748481209579440404276293716985529381775783839681348335577262818248177660967710682729593396037792885721943008718446929228892089841101721166083445976919402321197732856428898267596098754854641363543607131318007178907334170830627745849031470348501881233407103019029909016265757161736864141758322763668771581297644484305965408833507700348361169385217701898534608739582440437633117556681112222840019334364099997565712752087974180657969854296040807142928126766867475752859197231143660417365801049046361291702950524708912967641319119765529078183720816043064326412122050632498960046458562106694595747205538623359213365563178755373891584726427338016683333847083799782052975364560673132767166483788991353600898789761010003603262421546000930153314064697909258611679356743268928450321898589678320867897093660834571713682091266154574221152606993455653514046908190133253425643100288366236520821565057435979685254380939208365381482047698201431565428483925455451331614684225008785622583522440683691531628261448878107551979357564759090610781685667564693007234538158981996900165014371487959541567412024505054521789808994719817381165200310539085270493678983359953240479432800766704441658187586038980063546056491547923459267114616535277775358303033568086134307952464711972683096062214219717975371628819190609327648442864301490964663294835163728908462241846393126805955665269138143156640713754670152024964982689234917045925398344481468544114116511915212627918954456202019026686105398808839609912558733404093662806647776036552747864240563679967970771193701169766937636229117491009396338249826730135609564338298200987239824314941255184661887101588946613731147835022940581176810173872851035241120327654265302211388397249640314763801856106586683702495936141842357094096534416215184007254666505612558013472276554772505265837267577160698134069949659038346054817670792675999954675756173411745674526812287511421647923379528312864576120470577867145961771463480052615109927766342276209325218828020125833409565155141922266767555686003484875021740162785985236474321692160966485442217726250753969218294553175721274239197145109638900946019072708055320998484659815133834726915872769146062549580008279514833165950844525440109781248160048108188577176960138919640174231514205697468275053950517353876580768593997603424042215675377397474774155571792093980356934879802427194638658550358276883650577888136619314801980514189984275206512796090466488426115543744467350425222154445034865426245976205325971716742152581054373516549492439299536772309636764864644929895270573341126318668544686016522126928786003250464025763546396804550377824415855443584136033255762108796737637739428497057585980678481096525581268813077359131443776294303972838612871972506012527630490387870423758021933422291795113866905541411326373794597229018023314458556047186935897397222169715066517674611459465948593111322708142722363071314001297776186251712726440157358611220511493992633914311463091867228761131168429255841102354489728031151608805856016185141080680852913515340854390789696120444129592001270949716621701748671114686594576522671367294758489524323178498920898603731680509495790980615332927901538843136129031698721080190682770684521200746240603333255204556619938922006013401957341010016303081962875678014394831884092235363710521228775517931410639700548115682522321643271022031529923072796843392952757286397339993567103218117046038261688547988880280243554824090211416764881682345500796455125675413739430555237654776447231373721552014599825799961257859099630438615966770339599503503983593304730381387613285426444664983717923547720230086917794239505008622515242405200831917424080870412678985218259917263457628013228046352527499849914045964721576518998436019903343673344143466821390815646073539712213155310521460119419322785012218600847866359552714057929427542466439145128626693461520137432489703629326504321905132206772742541878963184330180401377514350994217038472878681569235698613611273697597489332090324812842487049634878605384549433251022924709567948196965089068537337095263918429508243426295412251183597031405743957804993921505209035825495498628228534311554066957386359152424771741532242760943508466540400328635137987644461003954969207844561149759512275698627503802491507453364012169440866901982572265062554657470460419688307852208827873013031775617694202142098070764429052890627152675844291605419596302714655871029514337508282383297520762845980980759344446582455518012002197209695240461510607474157583809975194041471851340457063391165031716790550925409435093060731282601039061815245419236874732932099990193210006367493151765748066203675066955267530375741074802114671866845361157934235739183484140394276178342183870102719700637188753957322331745267352394599195023095239036189396970119112229487970265425808908433478697782832368392160105576430231516340904014607238639618355890427952953846971965141008629055741666466376007872855023684708948982869656684506771989885031724136355363651861055654159326438658490043446778255897766907076153698027010956710630113229691504944993363041630228649194656032274092289896383460836820312168157758447092105667308031696515309688537841783214272426054346654759688747861127449926285380931279791251118413927890339171310093974888880445728207790282552872799125142996313165742286847305918421381289513796592104096943321144183497627684468192465354525246979408006755663080178312024237680243358789493777971809021999731565038470318530994081597297186336787479929402188242374645057509842049189023488979378531563015109883070878822829938865639758870600280889846026301499864695342545910742675398623729317141572325039497023220234630882772314508628862691720400139422814467893688678941206945777931046882737487453145382622200732540166031853292177647034238619412858775475931462165932303550800521184816949985298673962536050187622491502118476455451940662023143672883075357787957522811271792509569948893205924126000443973975963755907320066801889839923941097017025972465234657888571501404111615811045986001750629949958389122893023063839380550008140624527476825365381496280596697920598963014640109870457633782604185034152496193789121709368153545999935306169429112820686049087246932564163313936224418440276613322077301631571218676894988877892151884309585879491903237331139782980113098232670731278945426214809098520193641147654706690052474265789357212493854377748111333182541422605241312278558146152039267448875993647726538026903556917055239814178171027858518052458795364058252083261867843896964780725092414809933181451167941273529791909599392215820391646207714958599523462013463249506892301709688370836540088467339901344782119927356602820566904507557044772915700642016995497576424520387363857328119389792572258854945698083681711751105195117581662474854784062793868385032452199583757700841081950783130037599914793142969392988590593192646961055638214743326050934650925908797571910716887214243716308723782156302344397128885084121850354075779343351320293922766203992588234702862792265778718023983878591220969369690232824721643447576157876887441317677821433492954060080972317714536877990407915160810958999938089351589894644110755017422516282108258632149843629391104273166734688199306371590245034857678377426809117215446909422052558404354320482918980941475154607340451151420498647031636826801983307169904608234413792374880039374192848327345578984942031050252028940142545539108866296648390084455631678475144566318765911328629768158344453830176382003709197365075759535515419558077091149549649815842438255635563917658093564785139117686367882998406219722111884490927577580881397615209256862275874143491507071558021944909183636312055721379770999193090940200492229531255500457168332106497115474936891410808152903569056199870852728262051134320412806137467255252263657618217438235163945889874658930192633069321185734824307591294154065436529551087844745519868444149626860567820749742011134056078721009532878832052237204334254240647165133312193431405707703911662169305196071984529623149823055856067024967364745933123359364035319999294436942538312022789652293705680088963543740596736112925167752881472521076359976482623435462312638943668970545484728170428372494516313649290404133875021089601610392574965202067819891862728044136345522024427940631150462393505993771722586893059674575656105099778315089276996780755074057293420117852467116109329653751972945617848507503269494390664009388510528302823090699438759506963963534877868789756503560908187621609005103241297492507025184900061966422212158578733811485214254144943298938287031672696272559813261513073135019226107841462519178665778917506386442561950759694378790444193666792250489339770209181345296358437416633409554009147741116091041655786613656890061678819272684428185423127661467778629743704970991575926325841025273820303592132751698088675584783229852880697896201895814345211831111069787183032062682475216917866177582446435092072245510154452220221698680237924651567798536674569694398029062310893723461605926473069471970009960214261074295922185786414684284099240783674401681404641813501175033086134312117450021857351515899200157570721475238557337623327579062583726866660460004893594363113797201324844335053047934843826023840321089031761475462513910489408077197141259541708778835458137728776222382940183859914224432878805336078170596357257339119753314390813663097152017605694757736244141776507367580457277757812400041079678279802975733598619412791683882594979691789520508199968633760326380544652238213860286366388254503490556581432602639587645973354069796788544147716610875411626306621371175779310609852447861601459858579433252684989471134051870270704173777211438384198202003754492139394761501533550941920247202081944549813517890289591555294469297064153322772944677847188136048254264046751470516314409781707190652900815116727723455886768687932517725354080612564166790285688852164600148310966652632190903610706165266363388910917660895348271319239476057129394561026084037144152466213353198391465675526038690614596855136339987706886031824142580569099066816734638879941399657869218408216392650723691062162172155520366737675578095202153209046090710766499228783881083078757378315306892350531207180260230007452527671632326405983454326156505340763529131239165473000567753311869567575591333358883511864759864748160017339932361785011729433650091491135659255983846844017019362406210575418011195089584790130509938782201277284392535987984561595112635109993561301747283886517541882725081382582583785415118599636122050620278731685374391502218492887769759832267200808917991801359424548725947679021944547633120453413398136729963720750206770698042011781384463594292453046674781663747435146906039696118631114285387499463864058485371923333432301004148473680723662921653863928964658943287485140438970123799447812980650076980423988803361209809860780415121355497676190000845344811093424091725377228123201984772479142834391077670898021504967549990158592583654011043466055818457974562303513141445592500289990152573603916979129637928706107709507841128373587238530105200972943163590209465183192763260664917372325315559449361112657572934012412710174572553677872602021692547822465104443035080821223865393418739588165005101614318406612047389018107659595407011234755994358776972733650208416078322806382903567619921170712437997175075728692412565825159458335502965549915241383991197265877628204912031050186193541510013944776832696936531598894259446233640895066090415189060798040270431236126403032614780944547781642300593792265856088781825481191982227969366889253413223743839504094389720648457332468299047522159418623254307383731783776902700104704612597756901085974631062727297526458745927638990924034745603567446844821434041064506759865705269854680633293368543378509463240313762556049795053628553668292588963459528248874172972989268727008740526886383975693766230209110537519459471695888347355221327432526465955215501965312464671031852450580459411492344267116285357192855134489868537861040928029959994542133370575539517274169878110910902460640381944077656850799214328034331785614282994502438562535683991264743612173766150983418296176887636685098600045460284232443821346324242143749708570866119741144758878471237108652760341407106161912496649661674751799028488204082697119750637017458289713416764390938742851865206418862527539845937456856785376859439512405352854714628626519534027106105632916957566583541880741233309315171136228206271524739681049174655068166443548319451684529395611775993599578158790446923333036038876605012947801906313688614908371511510697514541529910434392196518601921233504948721712622594255249977169977089604763364704697649899415458329822433601534898808093893850263392365648684349567337680371566597603819527499400863525145869875130388181890237988774710448299039297861312553486511362068915478788108622460145275810604913586802628393924392386698582952289745921247319028874070863159244024219956941417850863123366663486176855313351086528558025727973901485772928790868973112732632598808331115031104656791207650408280101728313224313372488509289000042900041362461719992291858764167322260201670581675421451004209007175431662883950858749435744098951411251929125634435486334565793256982413422888451274749906004107698465626945555410155999098390799765161433594835104103564160963571978878148757862062447953921466482705765742019751846168535655983677781499506722939554086244165749186484008161453945954066559544408098069225737211787713127342186109205979550218724266177279033765372697412433025401150473124057684647362458627626008207061233851379482585166740093065502519161313144751841419266438060881921131893319449657239702422251398576086116242650241316932889130784569899856154883066494197667342283648752535630863515921771479572628926951151111512074656134672265301153849491139693944420884089489214211445831793910614750290357111852529847138713093474311554474840828059381671044938170873981899181987448159233013300393481718036188203174713922474299320024238740940699288249387508600734569519188147081899632896095513801761032982369338140993658936372557121612204571016553187218101808318570099456057131521433693475960777053925455098221134177102346484285055632275837938965267999622004085873276510905612612207298217789033864339438464302864814399016205427650619801820175017468325375655560256610475273465792397944939069469541832168307801584568330665313366586743685469893996812145847713778230769794373509347310024809115540874605346456465376889932438727032030463281259281193763702115881546103358368618047799867331243086667280748872916785267372308659767784499590656693095761610032309839918629698016228220335207340322743486618210340417018358854672874621293030281948792286343681004868230159360808557774939124291730130506834541053889405885613188932700171000736234621151210305939650912135961096899977928907870141296914924421021272144378343214300580923148483161279812112173024652350896305656425211440418029255785977323126745432857247554320627069374304257213519789368723542996775911241002109870836909510983735840374901185795916126980751770247820908529412804613565845831387015571008931636780469320287520321521785823833550204106160178300787060414351628258729908447400521239127213615443829208365064197548879400572033662479683265614557500941643638477138347052193299205980106076344013797548874021825935643431037652368859307737404661528604081352552260734035878875656757918114784531902312039313640876153357734093775621855540326372258714251244688794161089009272884275490171446951929177470020319427286764765318696174284522105298444603974938418554377876047351508929629115997021975397251291122702063529420214697753645770679161792210385035937304381803059486594570479718317590894884356142385015026449842967640440813120924553903521599099678426222490066130705761662553129084442287965943594864471959151252792562212459497127644510751397935827882861787822659399413646207243409444446150915396782974369426057921005595570443652816883548413833982969171504678284792365232014041271723758589557624867996935765877890215328649566529854738027163983978556055125336266201216493707940053258582433792171301002331750260863623044160378478160537803010392307946066872955626732934749685049813251195673401249621925102872513891490318623785680640974418861295800380125824381356004851176914780269734968653593089742561366653085739188397046860743632586266592032341532987626567216883429234469271608416562302045021661745920228319587142649439734464917453307648989289474900491614049814389018030472014144750589934628539112626846692506593642067148279431858107678978749923197324841366294313806592722073297791633843012546673506933256330705949962067612041634492852667933262516498533945999120091709984177319790347231187868187386219123252355288674016176319043640709516116509765145248403000691345468862171597136894558588019869657954930019935630256497871699185183486739745329553850073645278360891032032889322676095680742978916988844485425354432286579509098103757847826362729181279809732713504657726278742769483254198025060615819475708378906246743222191553257148121727061698282249957192857575276970016449538902738436628201679778513032859685083767200352724667773866878467651807666648187737432540475874326569714516080083461364916816241765747175250245025401271381655564514740117514895111736847568788373596179016149464483304988387002172626473331544299994775770474758628852365193624898381157035132132217292203373505489886255517028117830932475378283142401728908615998155773192405092098737100818199379457959558019356575657335600039048931247528463671092533444715841762119394203245552769262672833831189118996635792802785665737489388368088438828742128856014459003446289357582963267397603520236657325809731834236395528527928640403292974041051779588593074386331975640878497142005119667280395524350213856597063231778164970409255862491190630148187697028417574085462957011879060892948279258578416514771924960810777486436746557562468098759535145214697797307718716551418475361175594624985730501638043392260302472032308286819310359078751319228207405247056948725812257395210341706220640983360179991876552388757881196318022454867030711729974059819436510961682396697462721280097621936244583456270403551548029572473796364079825863382807338348804679729977585321383034883767266240877960439354776217047460955832186333384726202447180848430748138656496661099949844413762526210042718618080123354691666143227367245109658407445424644217792251938718958493071266709842272449693132612892132829586637519677822618298163377125099017019657191333214719139027501532866865948711573156386788065297788269490819548612599041138521927701339557842103201907533247655705896524509543715903989307003642656534241710121468662018154491763512206795394904763034320853622724423707953349696721658529441491036170011199285175716801160816705503864907027459191491677147603191293088363348309042135304985207799887404311907570543532443570153017673597739144337322848101723991429013793910803279626736521649734650146463307914510132419890093951484078517396753141623817614094902474498559488656661568102755612506364149227831713029146159484470868589221477999248035861598680861884140019941375437743653212836222660275903081699894305857427094344160759090871259070246514201684610243185877969366578921504853434001422928975890296147195797516154021809077599639796321888472729214945650653737080509101318065988058170841128005828089578702064775342189003209844499101658657501933049144493733879631049665591857949966695168815127727465181741560032860570952423847624519930648044199338606630615668518866208518066806995043461554838738900151178955567747340485499706667558572254043833984103248779573703250671409395570543032153268424813991963016339871907516357084776075891461896972542721489136408323554969696753401870767504255669623647276518660092949369766265393367396259415351532737538497652367635738252356572847870431979885685803742577005043221561926843340260189711831992280513586440237221551240406248402303572554136628250408996869908907600850033076146319686901866943887957402582466175624946201835647603534408214820946778896542632070319884427304045446801803838894445467274518292130015098585388566413356453641474866747156976700217095933087447720698622354510302649498318192665263389545885174012094713741173557305662305835871592528060462707910958518135799251018498594440246791580423927209226919404782643190227558278508909922396823392000863369771598345591788952681419655014890880409242870728007478696131005539550252856589688429893999560736065963752949714585984144223175834589554444104182362464000436187892669861221327295447901861132808074085554363680252572032418598169561559009565474927612018815565525996294598068983174118520754948053886847534975513920421555939041941500983701474242296916422396283002947445951858159866822786538153500477203226746497705981111749633941693355716456087255909524097074237506557162296317660353997793613400714808670422561235417303930352927077664256942295476327006199574975899878586223172132257431557403046438096760208368036262013378223919631919946886400031524035698969028594025718897562541024697373944837390825399393321784221713685815986642309718084532798814283770647013800586417699335135139674268914138910057763019147243484543898620852048502022748804850230108424584783846660851046003766495821721099050219280793642642156563936849644826967549693269550037765107810671969128143854802360797565082707133341878886059310010695326670742631835822568323335118075505272536121284908702506686538998413055321330774441255643553294562979068835783931704492490730134655943088268555782008233327988193577754792950598275453060879056376989597317211775194351242943410493734252933887928104647373472249811778643162679289660551054351174337501137695425471201188850138090909927421197117102370303234787415510861209761624324345982200366689386654432320007906999886536594813621866426681773727414796467002902083183938928450465096806675136457162002227709369164193900394275296673167990974184838088124170655727326255249250135035784664136812131795633632669104753038201833730169958233123319795807419288363885514788111455370849591998968089107786864286702368663341225734342791822008806823761728115212247455794843533314444798910950086815825695016508538425772868745465781329720342886214226443077261058952046671909569792618368591938025773502379751143308827661808769807484684936083159910917342895490132294451660536304910914924737135463389309924477328840768659087163440616360361105690972202235781230869444685323604413091973576831805598105459575580995558240039327962101849458026381985568447151179745553555458335943019160126885949600230067900460577665362100219108376501710909572698511173475438592325897311633113658794741002944294977016948175471667471421073596469701672753491609703244622436974022596310666545675355517943687530943867342173898737981046250599476636270698595829272752738878626794281457248995415799066697499558812389880391380960680204670852203589132959002390301070224428647008190525599935353710942490579525686450357181550413440936930988341671479429498916476221786980528570783883524413221146418924830335391411227883509729815521113398455266474256100787626398498987045028766296936960199781055302512086077419956491652583998636804624402548052562042038756533654904754121062099796407360686114917596979113582167093661327540156348413006730568013635298349575842516139390793341797714959706743199015108649658371754146995544284271548370184893406712750024440565019333836104817746108361251643460700052120819707960963400469022279985031533677908839617169777744450345472582140409685861525615720309133753293828045726541247950008266364857206482851171775553863650980794251879917991384711824693445853455366804509200682120221658852232851666449205990364164169405753796678849695746877003422405369647270482474802480204562737005834650699973785290528447263787440089524144620324879233642753630262270775565213667532189457927102705568083419576515352134317047413424592970377064331356090917884875459479414793513385525305260151655617430657037494617493759852999128733888520486765200498010266478845880420629950639045838475960863567384335648200589611166945103303134930900593253223341134013356266948829517183208848455103317922929059327695829060500767115696033559902282051426394720137331684075051348847589228034755310738236758526881992272365078935595821538070034817287719591018606455131677260338848448811718245184124228879621968205969003201989025444825136952967740230606695778956753839745491948548618324708479222320072992999418637939300154487477145676254882815710612714017931702881718801344955641446220092327927150321404495064247314448999288549594100109976838177041620678994684124103080926582782274495022899257137452125766650323114750682727546463848408128463561425964086541071446072831132165838243255724618313507157348854699630931045120143157063686715944642743823901986360234114359882539438279974921992574673654168407864573784185984908599482306254564538778593903247944147310498043775017976858608839767693272404138719164997362207824623934094226346638313569222134049405388744937194631757288782659084952360258145402213762453608922428816982557648291286649865504896847917096058302877799231958179230705137155282379317375435873788080886899616407901102348348193744052398873434168801144497539084003203447943251385445577750014595769176821368896466752493596862759395642701845243471269155176717177428807108149585091408719397159321859554154787869606796537557017398829783047519039592710063665889377325140658243099254072849042377010802557940144119500700471127145223215642064876017790751764341786097774427464283847160855135700885952995275484153878696025047083519688566882706839111370995973849004676005157512238583731853348536692087834399936810595553244017892242148697134292469774783933978504879692202643266133738441942211259570668677428627310149092041007637241583244570580948015016065247468759060951357668195951813264503342123390942301032842868552584636344206225452527547070024449664078739278526064253045308298569535995061325044553224165907069736613670120499705467813879105284930289098041793300471932450145129352149596883272530526629488543154084703329066382468718826924834877480170203475683352232642700160270698694993188335467083275321775854991728231820356003017052554183527586592085313413533280181453260619748324977590473067465391619545182942087677410894250663239617476837796335827892731572589241055068517518905340052596390239595278057038989562109693232930400780205873612180260368235260386890209691936867645289282517750849956647247491479830912510329489698388827909476687919149736404302164303785901334356333137149123364617269746293163287332253119948210421403311575112977890111635306891638628885006436868731171001687122041476606065749856688511894737125574760682835765128286274011116980944329271666633447027328825240745618364845895545392006851609152883300615428798410971243680146720623982655985878121401435559632967208820532495283117813321814117820688158418664861798802464107992825705184698299861518805499488650415871704347784029652304725338802567920025693620725107099626928375200443663816480655058015394194455236020153060709676543611165599272972842790034830026269306344763785912339112483813711614854229930916058636851355490231156251328913443283190441024864197225865725872183993814033097041919126871424009162701864260278651588626339607324300020224574622629119728035197632625901755212783587109692413884338778280959115752488477864259078318340692071792414109868462859628166251716714696625110244348374269256472750128378888370026457020487224700783939673042565133105747467032181298707667142205530097816057497892062514146791148192190312704070729773584228622711289924921398394071192806222743711458408392646533114062398942363286654220442303180519194549158523910863123130665745714259475606004322310668269216541459180565040722979597223909736022770483485029748804814240702602859045752145095235085341969130288290805664226438687027541981367191036494311527751420200049923739842143034493146867951261936392851890724945986689600643949944622920120464553045607664148837990682379026727369554397787723319977209998995543577929394671719520675196230872631987118872698764245278397581886260525587596157807398564711169783252942040635917642459133667069909257194406027898318191062900018170222783330745339452576470238052388956625464795649579851718197480980759333231656243410935257095302257648752928396974569495858353615392093183647664286624145432230514073904386047093531091933413784770958253756883319707326600322640195252964578600805426495729860352722310003369936576608993237181320798419100838542416018396416639134834348618641893873886915777331071098198885252126300847615173591367678295308577432080580377568705282511112144700779411786439280218062006582229768609511852151250878687824122432644149928505369238090140884424595736549831200593083525239994997792512439206427152627363000194161246322799846723503879708676383758671397809442163104192532154622181768226581114817975825168872425110964528079207455805369089425095533426217790196198568862314341312222874584526510015540298486260854830987310856497364332624529517409272729140201312434389386771079226135407918274862468710995643406630927935142093885639643958867727242767854361109335027767943212292432480240773502803036757673207479088870443971582580525557992687892212970922627541896572349391337996173118024541699506323589045429519085565894440491942683761640998976721316355178844712029933830905277558214054910225931875479002955714553299982690038742579773106517588906545298998098914819762356150753643433861748001813330037230667966576975280547749242631688985292066875836372160990550160138687656505503193315534630447583147208544680535370878125907773904389326607593686494023554029184404474389827264216620478506874184194668177663861099062196284545975038111906372492468228777301388600654407081751953053535149658159831198698211570505357210509487200614334177593883939185034543154861362979421026229687483856152440959464960285278225156758397346340209996637079680386817637143451094888574485867270397946314149809176629087076447436690010512932866339177332485663914568356569849652519418711280675986315545762150523660898900935712123974968867670179540789362851613960271984297960639925127719541791974856013112154131136327582508290815239857785219451318034261174294352750686319624070586768176149586337968202000648197790510732802106615255769871571201691736491738930978593373572501184158290356463914710879542863520659214093798827519263215671321065971860712029959626243166673463606526884742463436337456495730901241634815924819693485048767229453676599604351448447601965560966956587888141349424025564680827693635755741404994948064079092343420603335619117157773893424497245562133646787350100836523265535083322981831100243577804366651785109271633256141430549560935779912504558664048912895759058770379115367802506559283717414548577870657710838861793318366317649984025530238707860971251860142151236230093374596732374552544470632567057241132139459599652592534659752116718525196666010787744929534479374064464518992009906063864250360289415352006785687784047893308849298615876705273048489499567692011960200872609949118612572945790551720313668973108154487076778932610807415652423988508749076138985196731057545489515543172678345189099669420254658016042395572686919843087199442694469995101897574439441497519583389901544129058982395958571957906902596779531823813185197791126545159066359110719053703730043967890286100003230915517510774299047076442163149976642444540020823609805742241943231764024859889909744167870964783971692788895772851241883348131565579677764593971103491518140005260086323092347336057326071369621039895689089870548410823396314649113013258301666586398131300110071664403950152524680425995771678110579490129270636634977800611780760118635624994611002891377973153726392092936233725530064831135087794781902857755383479579490363214056748722882869393178699255827567223426781355057252031337620846622479516648812163847793691277883173421853785917881566046970806118406094608302025483398388061969107129244502395391297571705132521546694080635729849010275898668625443843602827006171801945906738246527405597982854757773504769540939194755468671959714552556814422783615387570457901411303638644939837481038189988085139827634121693914365960034984271729075654992659330220329973754327788919212339110680318335055927432472671828824093631162788238924600154777993995551306200871290985509828001397781808973852953845255064742841853589486729806824819367512744597427266253624483151499667426905999335046464845976479288623381215219050991001830855204294649860387512003448777623092387906339246794325895531721440690272581612481247988472115980435092229508009143852043727808750773295205868622815568639098808931367477723659953919020388634643107467324602258350964878188857499215955265696632891404079178503946183273523640945595138824497648993578897468772905010422321372873633150240928242776461518000310360475732575506023124246160189598886206818680062367465036193647497215924527764657524527276220324024548893179651659276505167358917374221688605702229015577057965019428726268002512111805285508757320212426125596577861225756837222697965692672900607243162189596054431476732282872490944261024889335396550222479785137311600038198537807639332175211313713680185200704699107499899700129219034490312586536661650612408749215570491642137914937989321570892612863496647242637607594014183616316870869147950524813523770236538497899610174019402067222844073313766916814745379606984411389905052316039403835784077350605282779048896381365732359770887354930908753231625973847295676145623150346183705145923033879782505388163773665865786788592411352909572389343310233926354765654882696425145182597531370461673512235594383939843378973406780792235289756582212789115843538268523197652113402997295474541085819789479113081622341077077281725025411542039404489805803704216949505026629429317127896034779690601049870852838426353828674487185386706432410180369903431409973971811263488200937207836960893159184642694918474688568468224225732161841429743116036058339558274103538455905421445475073399430298622822651792102395845360321777943154432481636619027857221563677158420381473653752153153700455408728621274921657226673536705616037911470441797041011220569501342288757805802415724704413111110778610441120035981713118431701898126318109046730345021552052202881036026127251427874122958851341217640980507702156912319955323292571646564141930966175753533475826247891793350710963503862703916909826003432371048434684400337041427744545435521084972712057864468555913160399500245021729192752562347902565692008228210687594621664699053902263899974238633134313125297248159835400707276544839126562172896254268248187231042569691808227107004542190079984418081229393466438267767577964251485168575769091092427500713316445445918219357919356240324630210225081790219113906466624206875626194924013353534151538291933702752553478071941977705704009869466902349457899856219192879519163310798817946601493689739549191922842280864145650537728164711230487490790351279759235367947759540005748723934621737639727646893827779837182480530194886760005981844362035334845594432423054263289517088799783128485392588886031803383518570750115554827793623864259733413230992289362844815229511119050865731327530883722964098923740953523995079737724586520418339906526884597542598850745867257802636437621068081126849429665199272819878040216470918724126374433074292170332422699811451799765963044011211529261799554158981225680655850518528613614936736279676002684869334763381386419758191153095553355421298850379728047293922469521761765009380686227787548368489269435461954403689982981656135984209567548789157796345959386062196915653930441156301283095415591015165434143848734677413062404139293802845689309822663844750764560294775451992310339636114191779224406235965320393769716668875424549605850754068408148876728576923305653352417525084163504950876229648894088968928988153131952134949441497601669484597689139064522060775078290705970196679091928302910966840332995880159313393058256213087486661933355756015737179522287211031806503635532019564798480017238739577352643220612146137313408909812122648319310330617434070537080846774973319216375467020970543214227160124679373234513602261697468333346100838077552689367615738410812710412164808753169251636519642044913548975249966009712893405434157870097922078572235431161902270670229115085975493070239443873141002168246584918946156763542565952384480758226868067551279599352885305059209758377317216964399743621824733096053838883692954562507398191687354879263568328830956709939918415977059887047911193144932659562323003927633283928152873166255562753586097286404140779328041279881199348119785714941999421028323302789603687646039162381027598823573645213689893604941490314055705549368868162181295150275601249635385628653070476526247362849364285479994663798617384584559493716255604194185584259589035954343189132944320050435502605220261758408323822935710471593137951879975282777428114517520992291091128051116451021749273884769717896706549631008880248745869621864446558835194960593147695269117261829477719004049077208696826644296333403406646783808470628643831314703331480537246906605814168510522151945452265018007633200463464752316750059995154536611760727499690275595318810503750140741880026398980386905047629734988264301288242770398215653138360097188617851351516557634887369548225392227398014333943990623902078542839281662023120529775687211441690476222593006922264514986394460892738522575816336491621401677220619238945180524202916178348931591567494202902528521249199926357005361656470441549590351138552650510009577849674318957357400366795642093812222850973956255310353009165695223429859378659940204456743253172103327403913568657377620681091319532470414577691194305018664461869216648283986079703548903075517354287418596956819856058799524028216005379433195621355778066563036560238734340742648047138147762630740819678562779557796383502544885509079296781760122977414510402076419644054825353143127233307637337715057289130064150598268800330052926977130743301714115478772794127081242802523842147219474297104290769616738865952551660731142898975901405606288023124938009619647769664462682365654408885849381535948294110531863638259758664629140419543153598551044150911306002286962313051762792101708065847089126725688197527275400289150360363944785564859982919429909231212382149510528555990762805216972007666792065871866051752087610883367951932614660041670317081060166932416467666321702570694148604449338485634837254269865320113999650123342053743771743186099940647043056409045299018026882250272422067435817741423305484908721010850448098653514995350505291916569013577328977930998069100228756018712076674569441874610239836393468576818202276131174690521461333825537722221247730745131725606561655091665058305661143417871465338656512078606949186172640508006674304211300973642222610384198938050350436885177558381416266480838122971239720931243809323614615861251002570023373038691540506525303721488629495755716267737896929660091052002026831377227284728579859026752633689849216892559823205958373027071622199210243443169605435703709065546461103910229505212010930978524308664852487454723340859585414882946484666364877327502555087373430427197155024186904043661805691234069459524343204069730232632651034578338855581635502057913466921314068136342254653195236771773088928124589085316522027577704806670227448277892006728528228679964225255817930563282433329281414792387555172445678778253679226874365896053926655647992289749323831875539025853947355020161889744915228251540917383544116735638167669106016015522911468731810104626764150009952751928168719720060171353486321233204168338573678080986855603432685419771488876079960595113583698888909866617798170009687681392680296018975761979188174051950516240508967641629991907553147666389231760002790861306430479210573514623729872194326529422120771174730123580271505266039318260864049628262762262325353591007873783151011515637271764704154724072669340217503477895023210424044751217724131305801628102863009237518826441434355564428483509561032683955532802202956546444830295371943463273187056848500344400781303215331172925481171048092494364266653450452833881106528156039353484845107540166859180617203227630736008734231847126418067753697170695138146393680896259005041219642198132929743995956035592377334231250715327163603094202890046162194492772747776892942856304311989570426758893652308031131850820602869758164060214737642535082874553272627466395713454723481055611711612932847764340062251638926360388970960695591030858375598208580560569763562463999056964300649298395685057877080341067421322913788221600325746234302236428976371155594277930276982546267071444451783539092745356012484254283077643578850508270455118149445180272796168190565083303124971450151365516026884552955943471964289179259403612566599810409797147114625042078345975028523832930827724905595792564378216472012735824073557677515884655516652368034741135211592944482122439043120768340918796861667178347720699210957308476094231931817468099020294071989668389936228511364553177048750480495427256339263247080389526775406689721116907396890308801347778341988035686465387163336818921215287109583490319716413531127536276860360413613090396484798866521170097863674588437256775637491799640051325543107891670690211552633839408355577478011513335394434421849676333564584392498849999160288711408179929586903895257598130074055433554710600720210290188097681876775000261818161303094862069731421008546103916873397555969496972707566722126288416590533875933432477051135924571504154445383484386873756979375033618771148331207230220698720332128981692640238036820257165028880874582813183237557495474189931793901645898047090586904966147603618958290231279961168932676389853388378455352769792060646648203233831337500092961841871431845992676705018423512327918056800991479819463198452815736372060192659362746091199792827655406542144362440244067238228473757828665066751689390324206857874151750813913499109646454435944490072740953033097858167155565774154953099256441689642723279473952506554245552026649150866862700459401002045424842907519081786249799414310456987664104558948838035391771175729080614923244668684377068432582439912854085402107877913334328549009266049584638670704404173554516169660593697115202921026499139273237493278855995859475217780885073877608544998741982918320049981452887554538046479482658719177020450809052633360940719491763674333335682651825768307847152487161620708932003878146990833894880982227892897505527930934696715075035384477068681545559869800414921313668692194654379261879499383847012579462938591188989362729396435997748778274845308754016829645659688628832414164999716346764640903324603741460704723673523974398026996314222700295846434108194831808353209533817104174527395723328035288279269622387181495844715158060362098788837942361709603556014237838721476240232352713033596422162042884214394364113923180038344913635064294661685272222714946401780320158446586275333795913184277812907165532918601920249598826855358802905162593802836577787752824453843628178240366016472425901648192181510969061240190091033057650634556378403814027925646886310727672401263441917724255701761178543329919328597088160083958297327072499091788661602478642956041387619220210634390867768570079984354462204436770767261284318634671838412979951732690172093730329564053636870156605953859274125050103101565394322445825570162051521994163407731514507747836683889111532043710061715552460230250181750201965026565972669419176014005493105107315158514893323653851024588682364547192436021008566174396660254519331813888805663553784989821693809373354507640246598044553291574586067460146181262286884735480340056074692935243416432692055061329516750403119567468658713806323031098160394167392014030484423375608237961636699130804522653565195156981767723009733919339140244200966604320046337308062593771687758503565031969918332331697207902180561976221092503882790987004702481353526376256485565861509409173291836478629114398110625023997602379063198754732960167929880097540220120628089709933272917688863493048464128390066385673999278947138269123625766447878334615773906336908638060753927054999280743255914440565111803006578445369192324575471416530841192137414592672204715814128093148900142857600851457681171712353779695025126301363956539603269815379611332734626192733978167203685282866640787806482665063933848336997157368628439574692812943709503609900169384151312711123266201042333916264578963917961657978786090257137075779436526436534142099278640016347391494752400757829954966005703419656147814872642115781094563356272684375726260604374497555868764673474417851593042843149180583684751163364969813493098002096770202282906701311899717863897462317395783868988174355797478094085718403992172078225280246572839925167691564488611701011885728451623489382310482807286925184654641139824956126379824382908592176313573300088649376242718181189115676110660477550069886881106853270517611406225330219417999998367028986331962589182122470480766584273853695325703600855820635094389860339751254703403977503411706451238423945550399112370411141773298126981566976432269526313078921108824495252008389743662100905928548842106286501376012070996327560142143618070207170498869959671163948870994118797586067628222129494055557144402037362713975320162583692220049694004705449562490600902193884535224866661029255688041484132259059128676730660573817449720764999396145420847642360954548436976291351998417762413122163696575778174262508180277048595166007952838531867749253175380043434565309375642254331401749041844954411214821976599065358254540415587152192410580842738365945705153515980638032209096500518106421401931433758043100892830010363913654428080984299333178730855565193975922197562994812253194083972938733495332447860495376605507754185689515808814946171145905333889320139049833746260769059354487222984442942593557251218630338209765042444136270884393273160746268927744926986933787737575752382252091359457700937200409265161623370324689817514133139786138076998572996951584484784607183370797394862877288443053649148527576255715865678869596556224763661051888613174389585449525327126049417502624285556523264919665815322433990297665061990511301384585054585497143030365422698103750604559531195819792108198427738290307355064708434275934934368350284485727238342713619466999487149435895751435460032445031003259733515109686467921025189377582385262237551441850732291984162382695807481128182870035014921474688085203749265159817406157936594315011431325635048719725704411209425431243886132238884098127500582446818419566288340566157790377053298155263079249947256308709632341916249918071143048179157557283604724889046651567872256224543869111296579860706824431083622970157061647771021736015127235388613830541053991033765840610405159235167160547643080623997865271857401325390056951932528506207755812225122350819380528939156058862065618059070963637746022115080089114405400178953505433565006007456530927082517323695418797338411917620989921785702115038272646287803136428999038252614791625384952202925296647207854970243152374846821545027227960181950557724386483420360818258098057957205497454990643503256534714055656970871035731548267085912042111431895523564426285073985008872531150278911996301299465134972815791417598731296459690835602029537999052107410738546298426000820367874557752736531343635990922352582827772180608277329040852941653223313668652157002434391187001752621576538781321471128908990350963346402521865816969211230962404388368724676617218787333502817986827634209922224371414679411673749030014796469698761937587204843732688120660056553740618122611659254313845763927290756198424789832381388418964853093142374545003446100347158555585970869981869531601764200965316320384437039137876038251444392722576601215153859161216689611991981141847613306749031569360271691454994703628561355644448040053322819388707095376444357568098862317307248928466809951881613505053912800629993632265250458983296393437985453060969611456147384876849466284763812655774615430695508389947372886602356390783829706552848764344032077927117253261316779167049586962643365592959596327526222569390491424886418939772996399607885405547358467449842150585671132914285772726057832849003951711715848884386044375165840528958432910922926283236744174159666913231673599306030839281151457055580143584361587485042327670990988418685470480636285824980985696484592996251144563799388210140546292529803609395097644593299532362559157908046479642333788071473369152670903813891801383378842502828994220415274003919945070644224158886115391432224984575077961090120249682350561877823896734354081554400289126190780812845896671690996102074280593184564707472603036783627131339108732761558849350588330313547278546747521549141253325966343687889009305059741819742698115707518609704467427508121658578176989092369312525932339974673962660078353709037931248785843781769479443043249774579627375654941974664553946960977299628305407984690534306646165503437427461153943118126182406966273763880071991402810982110870237845023967263689737331684187644977294934296887565782571905113920312795353657412493111754929200709957039799026495172842234055813812495648866848652969386367708620594920418581208172418307178116653855230688175192636575964967192109271926134595060698845428600528335470229318282162040537934855843332577753795533880215443067132058823144856825436971451812154443925065333712975179365828764275715801809517390288203232289562550031870074311943213369554100484177803330056503628024557010689052552948489461866663410448967740977809747857841796290204727395926831509517110376051972974287985535683909569683074807479063307895760535494246694855165715309531983882231840415463442000187267428936369780928975012988289978361092949645676383292273071592003500851121507960441140854085583028425647732096551587827560788194827507656110749774286145061740728736526089109065557213103385334810245539584842354561612718320951872164446332226149272503406070175356873658008326780810127321791129801286814548897107420387902778702257137092807196858527443525337902996427446903335681354924122890925909938533213938436113024613519773446282150430007310892327683243920707383251530227469776279814648717979261160066906438338862904147128541441750978387481896227110486795104293641778486646797475536893472799291564141061839075650999706111600239429326519106559790970351236115178235647615549621170901345639892744247614103710371093660943740660882476032991445602937518322917295604027941548443830600710923436301784139128265157275538054496562810252217073505257823094656188966921160305495952124748629315013456134854827506791627822381325273491099738329093457737095772374688214574802532400852110208807150261580436364855045530388495267673554934806340276840135352086786105272831889307959245839427680081492379114149507106940776892023968073518009583827598330538026960058761993046344512365241563909124021020172738515347964715765028422820749175454715252811088761346408491353237345952822354895886614435745716972151480195721889470001202386878505978603156109314795693345110061793777579790104289827449887620230206244060596810321291501535924650114481708795370370272824264959050142614021864409791526523149228121425038671396630419480675031829464981594500422175265410109508636862080100871216236431283781379153220648764954739769830578623853998125651457192273803146634761159321827651134692202418631707708339285293685639031836294923987892392536046172411143515334719138861705985863230985822823290961045744659772877196491174239470510596742127958692120767454832812043273230724377058176546456067692511043774827581748446783209985007354378103956879914783209420711755203799379960421467297940827118892266613748493281076459241477645215244640601840489216054012215993084238223820126720778644894783440329048913470082066057707875098223875416372464105355255931345855013664790551990971825745733413914229946950234221673472386163183484981138647910374764021784449436134260860476731330807708884486080556002562481878212082776984541754597574001634776672719239707542650428504577403714448803097627923103928984808414876559763614387912180560281078824119316599631744661014579339191112259863167914178991836609511926014206190754252724173890228865716185413981723935206718890679884858150646178818722041155144387069441047838925356782891459815113772578388999031067271450197651662817079646773653267763525748564825964555701189981651695337813538594658989024394445435899581883543832415569312743049742911194632856106234295431075202037802134530090588366329249242153161989178247289358098330342245793272640244533178767738974711966327451721104281626847071023853627148496109685315861190674529502446119768928264872795986106408916946576868696909482848243282463782380755895829171607284988496693310095725224851018138563905603933552433270415902126927841438853848045317237348100582370119679822202464067241678476231462117216631569137870731806359824470048557323934911473328868323283622151607580104424903716673894485211594015284843096765406857213881171612126583756832639117790796825473075763922210370841389528637783858838362632872190124504387509527973074572411124645609374734096414992585360360771205751960453881816562568649682040515855538252777881212692581135590610660412693405142189439128649759964629682456396934829568858337218799823271822811428373892588309561006189003824030645868337956297055831919873220699395695184475129249633528276047089751615481973129050772183252303305040603745966041568369309011293849535580126886687519094919651417639317426020488580777839173367550354534545501453912108735723360299257921745063016188981625237054860536120931758812414697742026667383697937335014587369147123137708453811901644129635108228362845646708287932443269628224503170117249115673190081786667320013216864987093388125726476198316463045419466541056560422818872901514114728108180897640913896978993021977022586100975094146189197655239643356253778102479996432752036710179745519097935606409244132114141076185276601190014936708443813523743665127734962997251788245710930107182274965271560717751193786945272020661468455587794997429499695630362955924566902213730864447364154539398285376511177042505093223743187243390328609836500901916578137006290266846627543307248886260317246989054551103937108900131546967521190455451547203401268854205054369738958483811850395266434204583181379265799676382514947164385488830317052926871936238372075387071752553831432544330783432282267988059933017513589464391587027421253135576951993028554099808116303981929890711937695376544636085895637114833491515064352780708887264626252273126804462147930840044658315615720841943635946317098169952450534835520739377120531824294692792417289786965502025475086620745887793912743708761340491039380794428700271429842315239202158073873594433583411677361036512830049037417461166113958919273175696533647653214775464807400862315275663326451307348714140440034749394341475411260008837373242990646556944130657362724147673437712122090651538858067111788386644181257567907295745717163483934913711115301777011915577265118390626089348886368778586653214580096864342061544486314195241844074210158928909793570155800472144851040297519212045450235095342600635244443528401121088106184896919433692244256368302601837974278609911822613947279966708481816394832471322996227451661704623487846977221644666129038725780863623037472916602092744610002088646445982482085756891954663267596605930841631775951447627983620649941900344889011495535499561013113105049635120014163441954829768498868133293206743217441464488188193962278817459221291232028861351793853478384939618569417413687754703700088994151916716105151713519487556364427043268542688595515963798823998915358691131387366541468525033947281396791289176052114728862445733314586696970887116781902715989143664773680022521725440218253805475154310015336747976970906027005802008613848798415742686791457965015958358756059687147844991876245324960412155133920367627246069332659492465118563675802401694004676383856391113686185864739809747085793842902911704257630503815903430185181640078877573052208643953463597064601292431817697469359554351917824605725724340501479020035046227984226672765547183256096646274690158054936073486431283037101886375474735701906940423935893524713258986105016461180467205083113977170727967162476159418945699522761936377932172630691656345611093172631805031065078259710207756560666218017330317929506299958553710192220754162035311358640839290175562544744644960015724972081938982380266012636446177782595563370954511145005176163818982055300420082497353702974276450449941020727980813405960241653719414376638623127485635889395430482473094920161873715547250301478290489411196629001904997183349938105642526135396331025129555858794396784766290641097657363124737657087542407059954038885537812224151609376696778806590711880030980397836691034723093434946085400874135588007674130307705597974580626094547618926153957788976681139565234446738959426681061260193738919870730684723770139830203768229297048847196259170324682104335522084859231884601648218437148349611131552404437411505901767397118229870125012820301403693795933145805158549552629805008819290860342936632710898467565277029971492604396683455740914194185588209586885081630132509433548507138037844603134444829343781741754657380389423698516870263465071805552526876041223979179524237789570109912453700015178045606979419869222215740118428398204479707266548130749641399718972184337354500793144472333119597314995503684266320691891378813253950850102823670063784913268386282253881835263502546465205275911414996746927075593820637018263133635779791354132428317966761747549824337940424099060257238202097078971805047968963043824000155119569450912749299607571272454975374172415406735512747217533314514237004895819123018954504554009626617098826935167489045282082535410437592064509806147562813744766078745706023941924513003092011911791634087606907505271776998098302202745472708882598294985970615017079002907189407534088757984664266727786999255763056585556797563444427745997701435255516022699348401793114701653228576401044368952946952255932751663388105925467517007008160057657605177723839138089376126397178447734407854255548760526834324248285062306946726890125831957266641981908994043365867913271272607879910039233925681613875225893409530863530040201904015307024708290743715829786214847878873731637668498613584072479560106423969602279554597636648410899658647853927777635790325969571267270488951604061446080011825556881696549919431360076181311653277512731157602710416396066226755803986687030392189570113943669380365104143799404375623665750506063522201412668314324693881567178604718473778701880916139660456722462008522877458188279186010210974316552093155715846892163770201366719664681367743244532994280733050931664120450094443910411817699537869127863500584068892028946808264331350183203464568265862347416297235508959509365595728316941705540115215912165703236120739655962699010996127580753425181366651191481511373766586516545563596317658111310670476460277721773111622450455577544705015133964934962674277822395787827129135073879126609624954124488129344371728336592424663604998051362663232365044938917248642248815322505078808136601060227531519353262653340261030345637571875216437478125568169191944059768476209363032255502848917767511239065024318168889117998796650702277538270961747468800386954656532325376712253803806359299936745641071516358524234161728001931220779091677689904974853858527879282519332279054499831751833749557016934025660860040224862060274558441564634960092520746409080992699099315580497503212050883138971723044530007752433117570955909996353799925223850181958857871365589189721235711950682618457099935855072269196435684703804586583792932290442714802756987077723244420767929000785948750400486382794530789077831114578258183186969262712722996487025071395918596961265425208165855067625873414658442682992531901675992690127493484811773900446025934784887122675402701445546382101308321167834208457280230965630193260501384402724414734622748998030579099556954636163713697951243804088113033782690773652193260756372678081569606319950846797856168488478795843449523736336495686466372414179552961793360129869782966170510284619922381206464714876991044227676807646763218138437969747003505603099043565841959596764556933390784031418017795675518854435149653565389451212548806109044144525951707005727639697983105599968352495143061307035563602870063683750087385518517855612608605732466280503968624369144264875126023937123063247278752463531571716870512832597274405976118085585142474593121553525168173066752211980193363456638670415876730976513108682218664782834110525667957621656537412326789476144744114163120256221255976351116700184713559791455759724311060409567426983951989786868509045231161140074066651445362259466279072445180497312294607880049743802552979360250828344434463711419385028806831189320564972482321658416732245088110077784939468898703941881596674051440933495038494295593351931188662449193900319617301367732727757542198898444986909856919634634345478369742975776865973829323219402843080483324867325619940463854876679595200407155982108888746843427941147047258548570191997984100115955604764590806400795063246215339646383524339131303448448002794764603186836569685950266399155428442429544293382122553836850189985460447139078757409391996081727061910356114343896479384569730334221868112100753366270567602471288144790836722096406578426512025192252894265901482672427387497336409113698345293065750574380489514412467358323803017664237231386201813291379495589209528774611702609740341052515320548698412937584746902583060404656824537598574965706179866129304149796715754086858085633881035428034861959698522176054466505720763448657543098825324713294744439295525048534642104136766896443881403240515240143503364954223424776291867194596021399771549967497108618708712163283032343170317696506841040501802967273713731930738663125097370021193891280054873493020892235286581911869370193440461546758956827720013742627623326444134374095688626178396729110028841905544566664958051502067779928756647786560569524095070259981123488950148279439013340107522171901036509479831030731436733500250638287063169101447340321059430150212841289626209440435328899380068848636696045999692574112247414010264086223082495129346663533073384771322478177585490554763616339356080709603733790372851281191990613955440307105426382601363426615869339742870367367371945151066869909732448393472039617713999067215600695424927597169173882127683612480188036677215117518364430841384266372794523552814666618241354609032276292484218157846775483652646918465415081887409544572277989567526036533139737642976526931817765425286777387884361832438652249973891631897670940763125238609473876569873883025178478858114323906299115251872109965827161362448589006252897588776554382059302533698439676382892074078642175401820570806048799169258485256312017548491870340531996913467836697566588268956735551929451816104803168388468018323555110530205449292685212908580444656014224966352092867789939769965963104297921944314488680727378528448927892904265713536599223438768588249862016199069345434570075654086603892586646480433306820083627682266963239475595333651234381209730534976315685524416567240969101918437415571645727983871951118741778879712414893091825868588253228416553759809436487918452694933889398289749133253979917590595510237416951350526767972384526627519475510116748013808469703393689424700064904784503903877014327862271971177935912222060416719601465590514769928102299054779721673407838482909975837414907050837202059966325379270318639969716419154131685165793245967939271256730781166561714001290850256435640753522353959288747340350523835407357809678122921380907466753912965659483729902033982633871438431793606802340588191332540734892059601658627175980277919421710275557869508706325900647791730910055862952104435856981287960980643902539720649833213841077069902996165480456237531261227680300572019674414021010093258573688728030555236422383349157263740400675423104414175173944228897617592758721188767866744777004986263343084528023480885944485918437747444832161925515230286112710868202268567562180944353231395299412329235608123358687910633893950662667722420368711499739345954128216003230342028116351064570428546689616278886804019406080431592028433549506125445955706945402014774005718905221056287692869822575006779718239046519665425129913609255747002269290753754988431019759653972244302530212577085409295330146382354140796307814601404741607201476227315898465078442666884167269217386032014889546393247350696707881484568228595421423620013074140958812048203225844360123141353563653895430853364293486845178547651956114860655610780625815954448126483509318025673296891501887986613457437446779280689038182670062667549028547042481838046381078032772950081861015017529848694294275183868126837004133814747269654333539526802072910398469651161937291304581225074265142943405409266439705958328483192597765770713978427433318501086388157857729612000145033312515916823426629373831946795855774936740314899899491446777114636134961544466784549888769961553394394429507057219776248654167537921753180020928289161135757421408871176130777435955974141445464026304476666212021067639603867080512229228663526709792362573225706505516832827544813921628874570064401969406323949386417358091840964164082405393997844372375739455493080241496334377017330886783744600483861883545312300405129038693230195031644436528216854418315338543868798522435725894496490229567018087075528664305430945640027164186182942316353777036421365274491252242161619517254967856503718722799355429331951327934439071591835083044304188363758134694366491478981160565677959558008499126951337622449990961201965477660120710947814481755870913651602077447180337378518397115133197227223275584085891780472147327420913780936802378903439140084425140351669015079704394359910997498157898018438231515216763804470073037110750372542469749364102729568447279893169826195567798416714098863836864382579369721138729934064023855357653956902246628683887840246594708437398025452062524385402015814624789844844715418818440546471348135361457418093829061420529707020741274509308013872823654906271688790914127821542574739262324593642730697377301133464787937196585847163193447552719577935494387876184877821566143970288957224427198082097677958778033286140609759079599200110036775315435869598593235377331947716047402139495800240534344408143712432020301089248717899015311544263655712875394796466077217909165105723530498050900238797271389976677147519743999557689677464612883738047125961074901704387380068227867784856459224901327659278519581875617837629553385001039559295429955628048799891619224188825765878980823186826562752332696306184636810785656481570325333483623806886706274433145897891710187340135110255311331842611753445082314710860109895206264780150753538995587504595894255178147381546758219876566660497893349987810867331291049829093095660805335474147674120190657348741106583482988383508434395178956628553725616130745651077228006613912813385799193026595261994669464870081235947009218222256951582320242620717527886142596723459071174420001066618824726569085832205387899035990097173509626713660962215430397763757774312382218029376251426933819835938608321031789500238255875528110023554656594464981297295139502216304390080194632249353166244212964126007968544610195122418343289191525972511254853722765302842355875904645423586441671296871545012435562693881874290311529823292808756001166307559377676526481350587510426143173387163692298546953586301907095075485139101108341234527610071551419806377643549641678263037613738897852314507825244664672740322824356042037472773426550317897104569992429272073653313821075230634038342682881851027491556109272328564269717085655803311285128050948377441854376386484663185897808224158072352605135441785558400986428145861576161569381474859750545722123717445453393792137550171486542540118754738695476070319161555895616967002130365837132426572962820695928523158630407852003957234648045251982829591594500506280355621629015375907363324028990381757120871668552733574104049447896057705259702194761894415641630900998046218755784811680277697456611121005016231366399243441625582194305483368857199800788495170738642702963215174856926058810781861930021810610212112181513553341410846850347041790535467198304202220437306876850641130283473409629912627648666287412918681083909545634304632248767083847024353083531972614372772550339004181308663163247054428650459191166887773898383843665911557602813661897184309720002129706109336845443258326593436526093700680881254184078625625740834879799998808304025693019767095025434059479298203623827168803702925423151967946306835679146087757017340543162742912386453872867364773095027946837867100822063683351756074172740787736589388807180359203906964850860832155393109324689126345134155464973030977017307531481171369446578781443202494588292381345353386435977468632797117314430020088724022998373137543856880099325369128197577764060562454008807817407552851631214309324414429299710297669153092564610260412903259174200855162689289260091039079835003344274406570979863530964975920144406123848222441409579034065110680301865630619263508309488302552392562699080393398723375695608699780861131193449063383007702672173945407244281762470032415671278120505744125274880785964725115452879883189243446869489862306449079467137371223807028788667580772186596589608277508590329006559030050965859198256536351057867902511049040836399460389117056005159662335315739486175778968248025873381188023910033874437234762800930449079421972929669459536391391548051114315922184078833250371651754863115755127979772993776635305056962875026802617339893474390005269698435285547511392166208689717445295626586129794393448299871287347047310680309682659380592801179890596073634778337308280419726855377247309243270189255560371290552132189034140421320650588513681687506993590941722856061771841517657585010684174278927061327475747199047777669735186509855388468790362317838475227190235418740033666173382280089107730769038163149816657461353692287263862841125676874192601529411786312393311832222563875397148686430438515326893278339153714901472851328317407378764715082770627274464194115046780382536710828034400659467831378987468393146518248824965530392165281264739336425243605416522452561755547753114144328583413387302122943243056294228081598378456886557133831919680268150705702696121659607316551476260832139967461946020374134653042190046600186386891003758285440896527583208814546840235871739982344213949203240694250806459748077904167733349006320249680273174402841503604147135173473856618305241476698940055134256177456966918025628606291410770176406952264469791211848678292847916658509246958500970233059847597959495741468488161246463009708538938825062358183836893549036020125217705106065817156604439647987692774615705632302045078285492083238547093952837629085490734755967239070650465022420271150150627088757616198125216718181561002102198129785713639547418409895368929462872991199682344043918527649748168445025204921866492702476848515929474545674089920791366055401771386818537934019215875279539402147633457836266475089238129729718420543377316030041042500319514257718003292316998414315366825743202968476396911065960563129712048612433653753887006080957112981297284235605690750517542706458316248421694036032224832342716599061055575975766259657066586899730904634591825867526036704046075101374449387779115315448255483390374273958495699345692443943815737276904282000170389116732857337875912887083005213650286562456878413247180675950703569104540079502589770085020481127639875304396907905221099288135454436378172032400591407443793998780013970277108390094261796517539648484957264542951198265393329788205115085680292169792033498017612835275511976747187833119297161533621275705484988230196106258268288743953017639327091852611760902605387518698966232626897096651439721413227480782272470193215279540378892859330393822588708938742503934576515871476683520709646647209664283987373533125024018904218164380896502777251574030348972215548228056234627285508985173405942357260290754885189840417322264131469249884792383433077774679648384699575144879751530621889531147847802369450961896887100799732845547855397423823757555901559750224902126687426703362765416485856388869402750231097327738986991562577479044576224860464385924006235756848747013689681872322441058265586394793292581423826052497191650173096701654948972034368565337641388150870019803662846656961018753389322965212584739183385081768401545668423939515907495163800298241260597250560630910323773478414119561746327739623981356844439638335843016182394105525539335013277904703893737814631413315891017590380559962101789108130674653400174169050842528488090630460262572866511529417257783410196503582897803620513978310188236655936845757931094165396437006336401429471017381072605234337082162692884630887854962549284414184753064683612121791218086306544370261781127347211602245200762139604057731568494738359573831574815369318920454405549259902320504533236698693433928884525539272069829911018229596477938565357485690579954230667166813807359733916886184485347522105856803245658865460169464114575366972224239976736372177232831323551838275481509086192817033457121331440978279270902579558668430693316658108465397351896406483914950046749660933670866984905861710313541898911372001187682522241691832409637549619207678497844637484415922828387820294239255357571376052961442699776803566968881606965234589118825060913155345591064758975598460818668462083567040647330291969517642388254623342349441479599546091454799414564943642179016673286828883392675097316827423315041433154955484752252557115912746169121935712135375998623820195755928555673884823752700173441116820232441685490128143780700174099371464874309049337346151427916815047316822677097512034727711048732412348845134388042342028274335440298336140346484501522825832986149987957009371999032584748845995763599646074650528959386126699565739120742642578684027589276665834505007658826630853430803544761615894585223621121083326866810877709470088666728801165664081713657565989807105160850691109394633269444526586793454302759781439477066547330391559163903202449011088240682909192048428005581749306195685467433265351677593857268350808379803953988388534337911068905705060577881571002751557339925058707110429699490318009585718108595957257342036848100293374180009446130580161856245820837823989145899815027846296279694508946871670704429943742733135190157024924576178658116137524889095411978282778567052289842940056032409100264040582503942305442412173420495938629947144601526263804096790822393166425704172271071842105252054671213573088799211989639428995044989735393028572192868837893982353962857569239239944200022817468276144195094575727886410535651442984314457485209298437038761876955487220310362824138970888722504123460286383496860289055034304086274471610875364386504644891908763100262546377753485009162840266301097707460389462117748096322329675668179716861926117907579736686350867564776007534973901756669210477553929839521674811329350458481944029624964233987915024377811696808035583605518709513024469091878718225533083118432724630502566545779525699280282542136235937656293722463133951627184456487257950187824752231702279405760486535887422823030460543650634766062807113281585750320171330406336626677523755340660501918722584953033571866594250112457962355521121227373929798965628349138980588845428555058590960879190696180738590034982315374973976041466620497290441709747114063776139821579296687431005588822333758335652732989261788319877014515812924633287926144425943343880705174716679262889649706602228742685895501247914509527650106244815923399179692659724335219471741610265155619714222343297075169379116549743819561555841374603680418473560694241206349354069075166277961381725532765620561784557248787824423098295519006729404345562752186609823822663280228942429516031556245854141535978448180143918217204503210686228149449277851289423130674015596771643092169605873417809205687423757820625419544301626423416347513376921881948247877879052026432199577442784285314007026578428056037807969635261553883536586707699535105583235345272406820673759422572479621934826497643791306005980539926776339003219310563212749894409503938505289566269762140748636116595702134145836876318176194402054976017674593411062819879797095430574213860974529940120651858807207850446209139660845095483931982644017765753344628843458766948459826076903310418625059774623386383400432168314827699361742904698588804985716215904926790725827728176648632277112132647790074827072080865741336152001899334706886445376231063443052955688740408058675513736260827351585490817884366130157323855131273828954242903296710035320001473505042540888816226176285885462073289636747910530891932477004583760227360407769801481157035257564418309422449134269299606030428927114097587079625454528310368606117155480984208354035001540975405701430117984075460132790093673716946156814091392342988639934668627170025329129153291259472067238479062685450450663358878415709590996647570883752887629998407073778175884051191229021584131104573933576171211036487431844810545755132456083786613529401035580750605269550733074407464174541929882276765326483748596730319144094686208853330974727876316738558744993340898069931541010798626393831165947933764051322355106200838473845494586941506009185308273314339217522997875753589711713388145930444662295601875336035705516063532938186497819696472653494384237035560315363015518692185076970261150786626482458167551373258745329294921179363295431582015857375250838022571264972366531382226344283147839611813378215099461711602821704965958028585891516517908670233768567835093487498870119470615243925651329790157721971373656822895754180355380409641818354036483276316911246155173668464754540823552452718555118135576120293713016036312745250067997502742238030210495157058231695782339215131274329295434648223661954799301740849089125502481163354837890814625521086998641780058253191454501069458251671711488886724387299900103616669427979578211505790154243314537545163075304616102398206212268375871754250197432487602668985656008124174044406673588061177028709712581159747741405475476995776488124328087369490362104841733630825416558624892693428378889484471717062596777314966582046274660194610560300250001125002166834599184329003181579940353068139508133242021294231286174054679117529517795077074182001170328918875210852298361698692058966793635335589488891550627484882063279558658501936519078093959620354744037480228676735185783736589439810100518055816072427075099733543479756714447761569687184929647938025605091813089843217841073275783630064949606579501196918412324602817581955242205290370717299412731499211282884215164037909330789208679437036956382043460875069402576936439275726608880566092293542238778309352577698893483727984937242750613664480504346345534915821831737816002938507779562326200543143877746388852599616102026487716861787818198279880593429280108334590543578005019684767571058274099421569488661092740724006650022222620436446003924641248422705422366081581687340355389715797223507339115463137671560317943340107694588678732590501205862836400119548264337706523260021430382398599108118638906980346029880857933527070418322679163321611486100155331230927385898819370535100859915889562352164441178207445562376989241008279018401264717347518607444647382128703363705318660383005566966825531899882500879541078689761100935737572204176700681165396927076569934847381269250184298428002439507577228817466022222916060626497758011649153997715373728099400421431782198280349718558642728131349644202363613318153623109154905135066398933781744855398806342174999274312915966501137077635283608420807785772254593944181281859696943501173546114603454301765271152822664101800628044678632323649155002980499685656160512717260044539326853255593072799852878925093341190518928968962268655753642032999672885408525228992181520056361019406132184931458451639057154984482414287059764724597964469520008732332786988737320911597960809153508600603153881430620151307979457141022104485851556505778019006606654919053836558829299359106863373818800175854683162546685967197258740384817826899162076035910600257849689843977208818907722071095308178423361307216199862382751559868945975116781474966548548774709521579746761218813566476938767981331539482655304760221959034129135734124917145762012733423861546408377123748971930622203208385464509414344486849558459556689714534535446527813099937305433417743140496286353171894710202906242261692265824998136128612797482085297143224093606545648197671387075846151229553240323648484055654128339302315176613968066425437992652298815864666894852476440479949756136579215621593811803184538511382604513167946832308313207305556536027823634366661761315230851655765847809582959418477318446891624757676014469057346059255172789571896481662126697975237842029354593300780445059827204996408555120913559891615536043207970302739251243532046586555316489818573415605164803957263497196883553946130062777289485502104733867604782094152898573438924499670540970966783006359897648078485714320365815109489495697650584479568863497966908564017147931721758562521997650928058058646529688464283993409465001844767472921645632928584943437334006350063567847109598387701496727181365043913513226974518908597481797770876365192506967141022068998905836090806374072568905182737747852232788397113120726319133153587257975301471247998158218194219098846264955887529394202989151174429623285416311211680036459686363683630953209414673422442112400888650669721301435270491595883156218238276686792555882240106546249200984631068213976565167504234504752737311491484758878840573357879435520580077843729581172127153367074004188609099911796680532356015974730131993863120694020281145632557156718576572976394559762140419122804064630782888611138980035585817621712125250256199036232350446453482498190340606169726896179422486110955371452865892831850617392600569132156708359153434665464852732568149278726269738827178898129745267903108102841738379355924357756773328744572478867347579287748282883309988524454783277155593325687860530099310009837496305922715976841750228296565217201439181586433709934303209548873731810551093459035741369445201797190753390132170616973021443920427919966843577355844207414612217727947697641134017404250779154892886804353116899505538221197528018863149551163983277424244576882544503201062274749302908628087140965806890861627130550738352720836919586548910790132459474893752717044845257786721425925181639124849197940720454159532688654771190724384618419639124959705416631979717697582454243189941121368010689452744036914492710002223344347723958575876196967708936902318112125229433993836273208250044901410726110248498884935335878648680609780518463010044371083970092849572459486570705232712811276096736528934935284828357926747048898056757373250960509716828152525100554187487092585893002099651317098426736756795792338952327727275098955256239403351591525346234116566746042385086305216831712268711611347284885675798215507295444684452455977766228076364881100403521390591164590166779682448400573272712222823321878353332660760226292303264586343701074336960764643032370877221721454750734521009123755059549825365490390251194342177466007455639829781366878939715867742601042715335216627013860414359779252100712331167196842015514986415319286823170501406403514908593235888195512044745413806797655060165206686316269520222018489981838775985437455753944398348217097407300159296454438242663681253971346612070529746511623515592908875168713028587245286235146708596837646690129530330112286749712432105026259638546295744745538625374829500807816138179084384311097434227107093293435399321344561486783083187053131823611740235561012793096563968346272947163766515080947237994078665785218158238263184114198853832738653102813173846786862947274323011831227248816463222989851024616844221145233354606240179801075861518754909271538202160133473499279643896430122891816923602515653198014414727589148108258567229311097180177421043532725272550307560520941802337965905925117949498040655535833642780460664457422618230431815372701694197223355762218644041628277111786433583353666696340527882301406380772761470872248386743430573293990126422488758565261747090040106318525401954685328927642482118276003789875390348192129600369429838066555829072340477195689140709065554299465033407391619820195705836312089833695151921977448567376198167080598913832859734630636890171764050443066949633547733587746778338161091063500372877776790803026535570730211309703712177274600525646015456508658488749712941693599523048524528573759938951956729936998839036672205348531456509692395610328861214680893383405555388374701290433961201219391893883417504575208843366097968750238830363576987551051978484173541626011841522392784828687423288187412829752925241584571778026102910028596334087747474727163724109637402688723681996640898749093131645026517917762912287363225110552674126822943595060542858047423697111232779748590737378659824397043803724196396437025742452460141425588318884177911766617817013690121391052300044804024116046442896045174459371853245805729476256125249662939335524646407186481276414227729534228923413026627320756918207218040836706519470130419248384289020500881369153180099554186349408556946557713323106497025632742027059194931785800651694665537548050022339964320176789001904010774644695600426700271680515221908781604444713980033409242305047105292320321533844263703544487580221467283031225214343713199828497571622251576652117741916983209573480076465646004904023851218365951497212501166746946489440889131505718401796607300917594988249760500912802790132712368144960110463310130946431400910628208290469311043148258621844976147457111605231782137567164833897468665079209276314515034327430727775360926752136182805212504061621758511627544582358771219935066044050108345642065996448454961613462253731352220439675438032070963090986948799721188533144845816911032004597296711219060821299147256115044973774538884189839776540669130552151663392523872258801439567217098049086509317896751539960755953908082997848362250084710444784399061046753277297905063504210372880420369897408110720434390419426111581447895810619742009490556054997691768492644224701692153396977169122298279611989910788841224184300329442997426368270833580204610605403086518428973452604262064073262000445620859715493513605935814635886064030879640040381526710263357506167169684363576511990628870930261158621119098490678617380564425372566228793519362453744035068827956066501260270858800343869516435398200332011982404481270284421325450815482708967722871498530073613625192742969048670583060285599188626840528615624877713325579706473134100470695351400924746304077896403185546924437298635546060856031092020678442125843842494251114438503667603105033378861949112515566739760254486203588851653140321416807262594074950409916140604592860255553495778181010474588952298712191595856251007344765402657069254990144905659434031910046863320173448732213273588756217728293403198415153536584913018965125166774885909574965962848106434161570250358577284081609270502680838410019859891403633236637432053642987241255109980315607877111176445234437337283777784887710621949982911110957579329822973635997714400503915836712923768664294827525887070100595049321223406174097261169058421903468812896680021271226161753245058360157570377577983033019104581026119792844229730213897955305927288789392339794193447842948710610973519165027457461743527525895963965140876409603156018267821740970694681259851166931281847597865333992481737588297842602156756901916905102514194399119405418933362801427816267684092647409707284793131183372790306071797970770315550604800342078797106821639476372553178692471560084123440660406152257038406173177217903984430359863936864290841301067342266074077279208036222317843571304793891217840409649364739565847593650361472603866499761009951024737762698530814234933818460590141492328448101776862037557217504526969748021318263337042637405891660967440504971349416724734880613729973377252017655426599962916810387299946792652890437505311652446415815248770592602975892663992603933161357528077684568151020430707184714430855025940838497049104586378467922420676481525665560156413496878744977680784110835159540313947380510282669124635665649667153327234861221196194378482504136934824211828923043630547007193477682102138565319841877913978912242837258075656132288395789524812970603546478192857607181420875740616858311959059153931301146076743687914689598825938086885468771985207473541819230236257575216823757807342683168381968881012488181566601812647997641247505499833625053163672546056650634673026663344349262580645052536162327357924575417448432547914871710281466336929470045924399037574374140079415442573277886073231869382126639857862041215765173601361118563494360677209071312901589857845280643307638947969785631705409731116875563846412150880295759729107227584873306948995937732600066490072745308793061453679365814862385092940752938078527489944832525404225985112830215700373550527830489148311283099026911018241989386112779167645805217639103794972834255923849181487934538611560587529671672385615286284739228839141578509669826223165282038977494112985374175861734541415975150252338265243616899773644323624590259827780413469464881166330735235515107130030018555162270620835987329589977700301269539770370652463447194371660938933984760469158396207972668523617370436938405550965629458405609415976419300365375427477146556658455716860791209368791451861463732304185651625888577694127425709284225502322479675005023720873595679968465628977127293666117505030077104621396723516573077522724462653433603410629542746016060493946439557838381054724688455202882888220461053925105924136164153636049414718350477124709342843278313384382128653544436492486435222456859027597246409011814641141973859130673332851694046950097856972245046377686912065750378184102964581863584076636913900384189451014287733358116688150426212705831918706941939548645803013356773943098956700469803496651718706210300695204329049488190945282601132235360950453505089619375942878120873461363208107814185298823387408969910850802324859269497110300281623114905907274839050445307348138664312473032906006134089129333233425244582663438583894341770588458447978227990734747090395500226294653488268438736466121500058279346527723630974479991039186444346033063165458468961562852678308197985310831731269612941467595110353841655398168595463505900665878903623856057195744813482502618956920164953406149183702634054507584910454640651710083563212351396690265519923476874231782583401627840682037082122022584832736565816618346174562742567572603958524145690993920053327755551837460701227557330171321670891932868721754797318420741693569527464486290606447838397519815100043884711386757576781617492624543122794353967269959291093838246140562991590621182543604275350439344821944420711740926777799753314715279164864469429058306375698857751783672929572339527334239849682288461441631019720761267863291671964133649960004697827964395384717168573750643658156323907272446032961257514189532802366417899496155189991860613001819079933190712096030722506340264977079328171085251428672019012723929070479986318873009796782420185979770733130668072460182831042740662153051472684484666576173282976806164067688094680193350023805335747896844106349126338703609178477873684111447067927905794507118167111206557794226228638879891347383550754302462150350926590047947986727903101557254592510772782194102473578389355487682405297075979178232210182990410174051368892859198140108128317442739912094965995494139982678726265912935914956696857786994576174032620293527872073539873764721612355189007880228588191946415132511366796291836863961820317973766948644128678796002731395850395719106682830071543060801666180619255348605658519960533594767062980912989801626320621811564991965138569556389823034181635708957931274671114492863682272491993700038405049380686234145031094058347113304772461143679139641701168114030700118781754897854709975865032365756537884813759274281616153461612355304844110151187818474955400472657108176329851510055447347049565936634345402136554536143855319707063303320387716963973065892876775689230127445667860473887490335332207304911037054784485573637374518517942179785385707961493392233164387131900046865846344329886262325675163669308404879325003047973565332239670299711299767229925806181323612813768937698573675362594302258192172221472053033663696563937505567340887165280899267375628163373110327796251853636738236689724583706067441003290169739650541936726520154921907600742191585795838262961311111996243569157721931217187750441749311017979202889236690667036408753066791446948262893415956626130646280319739803416285715806162864757688958423117891104534492348096985632704004069755197507481830543970611306396591946276364097384049418590329852172082657591264447372788741156860940915334593466064082009695954011378888258215004304104503294134221826943736773554299888098213762666823449927014493272102279642722387986693496301901430220598294969034697550032110955308207735736173659889899639014683501845041450145674123412323024416805820893161372380201624513978956714099559593493619207232971668653017362470676745973150181677155581320373936048098903637311552062234596007720793569129043039099203131919288206165198981619664605145842405181440029154973619538309637961935557396686379326536794178166388953884892731538179967094594990942044013993935541635332569415401143698597621030715433206902737064786191617112183655784946511168087668081118349696062358304135249127375151364732974877558784814604320070651284691247354602150739340511995035138003012959193794914290239615682963838863345577178455261816431203408315237698438659560380470092981324997944355443726255177372494247772365904234647921502173454516786638496871970256684129248971565782489959724829669642796144404791571607802467059767820518493530396586441715239271916128727179709695311450182394281450093293167194558904725862627230940575570425453604115969246781448774510043177310226374373500588919236515768330493648555438346001818037590133461468046994677500112231992226018182970554342618199085552959885002847324292281399151249286860974127639586813472198124213357221022455467438643097206858662922291183619146222784578178546785438552579976600620476679005371885414907347048102915667515328407721659085674814691074301217834860489128530864026617656650562649289050334153531126541376568778828248408666375878774143792035710982573163097660043834023004792096660464074192509735159094223089084822233964090040245731929002034414866423814322776227047541575273332876027356490604393752041470133316361815768295166916450821698113030244369126742194127017704490113079450409092380394694654656304291462213397897664485342303600220973120482354296827064649256386701750185834982334535889096334378859391483647408269486862327878521527853834749946094242278557714577506202721600087389646183492391920616550095741246086900895517748773293087261917228435605505083648497979671914970578799429670905948477970515539069596608394337008494577432280464670873690113316121290575198325687379386522986451352793481930787324037966013226880163620412608672999138572758468631218781936014166230980632971141555117841990305865989218407090164635916264538704433800143921749301966617002883306711612098949674652827449057327127455373279614451216969661019327143288893661162472896355905402211571445037386773077137657809451155968634278904146742529924250108281986684418678864685519051010765517083566946806585055586015941624090688164659019099790430224575413553370992850898716453141657063317839473745259409424415528057672304797427913579747094809531097230139800357471079437037477087403756626953356536049546725173736386671298698248656924028040800908181920283735464857333941408162163624908862201675172037470831017512839890556687295479562270730995065213190127213373215136797453402005111364642959899564957061997090118064061737380336059090694679063820205012209768262018095285710310065212683631954940643850422129226209272509256945891747019455709539712044902117033731631584450602918086236914553507259075360181035163153837312889703049499923069965273002679717479062510307128032397938988760497754462560861968138231212966480338760670903020105567077237728146509837280827691278728020344881812370015784862968717814483004246664322920703971135184858832076625821713419952899979477079461905637040289285864462989469591601822876942384138796642709777924609654277530414805166520791591358996384548469772258957672824414270182157931770345511712017924296710406289692816675915193815026750426532711180669410979034599555192346471711536718811623226048489677610166286303024792527049852241794137789315390951957627370126002911062941312561907897919405828129724817111520541387401341360238300427132286392707778993184019059342605791680478687534059960924801819153924220074483383670716563928173365136088960160417798655565821477288635418164116576885686456505875161521782158827155603923788867184506250960462011715191237929319099184538263163333897361775943013183378712101904457893956715636205509068677214586375022120380093755683217498724370416526218197747605956574454143665432351939680144362951025507556144088720393031507225500850587888151500690688662704782488543582276202825680507944650228362263789499527350934592474020949520910775429617353202181941397473764740436272887456001756372351852451320871820173972415846597906835352777309275357859053022309683276446399156733591130993451766772740419725337233553156227127120947316145867604904042645377417173867602181467330554988444628663277542665433557187237136365602432556911468947834017457946927768106304896209124522577448692156196609799664208687094469829097120231278142026023098693835108933513061544667778512492638849104846300934335823843118718798929921885212254793995677839476218165872278251643074835599875060971158912160972282302979014240507126160048697383012623637983850430936392519716823364519540572365375932683679752026422576385296553530759681650354794300321981420833488220873943673851742611669112207812931309074108403957279146209541554084956725715804010675827760842927577820292991241015270874776591608715777748471573459948319284527734442371802807595923359161865085005494597221690342589134762889162304954057147223370370194628862361788630666965458709675546823344120275225696734708835526611409979210725129678006018018159331207505463808658353716999246102508593632173570144641108947889438635308307722891297950355958520430878516906001164718447443403427588008690909235913843328686391601072240526071722664242433678979804603095970653667925014320584004470625629970690732549611879976360820389004686791183275969926951955371436968421871828901621104128729616090724775435036881884331246089385354239079756969727265032239465971279965746665490638719416903433049123484689386845102921071710224787302662163143863466106207302216448626018630930440679656280746063273415570625219991619368580764360334250401335164693997032630227754011176737088439073717240359976787846396102667982341999428533483689186497992837523665427101962928471063518633034657409313229458747947415452473800547490213225866325912385813277095762280479157328580722186681377763508658654965108392434041026652826182153597350547180961161681224468840641043944392250498612208031134816460971197423725325655442794505137754621485761544270459219293133956780467886200849838428246405647421669848607378074575871025767541788717355923752582562816006484698087740018617347878891387948604954298368876784082198306190034761995814634837966594455623563974253879826101767520733721494895207323089847376115713727600941459855199999598444379838728982336828151589956095660466109822597038734937535280658378805551696152317615143469776055340983681071027473644013592276068495951115893907438852682441981936067099131245315166414379796394573596967069517354284076949116790971262323286616552837564097805542563576347496175415301314261034447300346487870927954906858033689030475492680513182198817821892047233768590698972688230430565332898258011140173970254773240100909452536875940584526824059043991164521388829258284564415972618240961431367666807971175414300582351712051551913590971418103520599396443941885362244231115057441446753796775263338088690152379007668179582191366017967556980653331435139044176012010109785556912888216045323695926055738406386089899375993106556583785835854750326566144356194031433473263279532067044656203620527156207226736747980901704216934823995105963020386229715209545146360336135245156121719255677271563485114198840570514875578419384376356037952971639807563447031752363832155603540888599769311202052117750530958088937228866138912131522497093289014693089740161513106217922899354287836974722659754523487821246482169493072131865643700032981490300477453625269507408660785111130783623872356775712002793120657759974623523710106335438006138816702930863409142935886481635372343846145311933285925420480746448960338819698904482068089035947987817034520200479753752717586465377726497995660133458946601709628134564481685204161742657881024743328394907634496013954085812536161890331602029098519015336565990415260566843832773694632137781870496741510781380019770019513287120133191244710322073420020381343449564790938801279528336060078111489029387417128766020810682441738723018974949764417458204823154517263808265049016649104464220961026760286051421220971584083604111528337391568291693410551906336149724814392639073952094140619055909179797573629858828236787034263226735262653664932429284768959801743929863857965820250570807767086858374299896028242776112216221095573699020921030541232568417507549953192973704487569568861584770923906912440045049296826963037667661260578950882844696792673925851261465133236144002398137893101730921260134399430246800346823496005158306629766933387803483045616867108380088849510689520118122087211485068442907233207616500568270647059823849108195108282896458097899421057316636975487940470459796594036985683977441534419084866229841515894801485316074646861073410589049303051981782195166964368793704831193487083072787211174728072750910256851956001701188511529449837954607397369757416721354805136432917807219034306406307615091383182084525935453333013925670443675735012432989404364284036730536470180644425903403914463306706285655643191747230024224164403760342092674449160585378172720358667685356864812285712861800338020859642135917672751377231337768996817468045837635247187853647499906327943567154818021335277498973091787655432053218188192857514616748347751379860778829913412962095468256849167695948835014926715606116288657281201507314624760132627483659702969570219174144963957909397703460468820008629033845025257422093082634406763057173832906476059788564349855559177855741406068587209756000397280049212512242218828915610734848466170335369155927744781169345498357803574329300265377186817484186915502562347508253473659314768824350195444582976953262958696670960615369692493973488850691693190208556502586004122607166358371346551604721960743401516084871622000550218658255469735468274970744995313930570153200281712515475802577340362795032413911867100102567348128960039708254658607402825335961878459524805648759153821130185062048809975776950791516868056043163066088700124997131254868600471335765784796669292371304529846054487256646206454414045933421257379116941510154029875343208401581763583425080452625422615619338723465805365487227392196627504706909747941981937177510313991096257168793144905136665050441763774170403178068097556136304911285294298337099826787398554797055322280044981104719969801187156748914396661703201203176348798772697039362919762856463922304443352336554852635624468707825783707478256845300165151317906715512661378140056819100130533379080225401387958343208029169118297932498823475853556843424961739967483851214505046656123387168232383477345771212483218529833937753461803127399242908871298805338604460175107485514780848958067060818526716348963238172234843231816138373031255552260553368134663409828324444322464849563891775030535567946472418041386330481815173555813368474723776889785854937067403458074934471261871029438504367369013305288065523954630332998750521122802060656217291529482087133516248974059087759161878053511628102458034897413183057630464210549008173966325127436171902584616512724697683309176164021379844984319329951311614917567883635157426512932359891876005848553264674852203666482477726235345321053279042839959377398869467529317732796946980835887450262142471673724142928407079424326855744882838184847342289370122395946061928939256682322120556667872608677405622783994615109722449287897011182799212622438201417461035359794776583645666338612376906235006184790636818453860093453091554891457132179453401090638318761837323881429518085848788966388776793383709339292128492812878246093696040156423197456040194360062206201503243014469519490762727051051207256163376830511355046070501134966343100195359822427752824284655010461652168065384646009141472887937886864746017236176038203926301175148526646021580056847991733618892251972482813198906287866649692942698101863075290893960901257559335038351294475005129575037272074234946693218455110476049754335561285126450845229241648499285603208029970114335556500160593226905306612103200974993624425558909629700482958703200821617813509920764954722879495253628835746083819827060978876711466339018914459124182872982541669528809746590733638929351491311280012693760858487106748031108913894782277001318166459382938502787242085193959700337471217791686122084117817148346785474380387763655582173751252224594987564674869943575682024460265347022110030533901844429859927706306538095644110716338863542941551713389401870471588061578975406417046128099018044070616278802581298412245189465872679005202820568677883767410952167888329015879565593514640749430320989364486939211180514965312418384895781735041353366907773424811242578246856625768146899312158315482738990291045352589364040212943887003111874740356937133622949263388635965248673416445958166872404736153401869224359727448781598276959949601300287165999577400736254798925477312558476523354424532406371814500720716097669549518256734750794729775926732760263780600668066838491834638130219407948667575729439256141063960843371230318931835761210654113601999811617256557126719471801323551901399126411645991515403426066764394926228851269771238381116937274712965208087303766261762903759743775840953463790982286161865858509626271719530337420456329587860182289689234116275406130034901267368112514111839217592884257184383413462223118186622394744514334182271901754818946609742006159321062300333720111121085684906115440396867470742603924853881771579542360131294454863018185238602695010459797874407925164564266065646318335203521903562589780586850442450939074474812825426273644933112009909499354865147289712191556878237849521552041968362988334625680576826961547864676683200629456102179628223366120600584645907245405975325023706427099722275078259413933199685102199368778916465290905437389068205475282085339903970402645802817594348246538776760453807153263563928294481682064110215143344804406295360109476044128494654961397228466341396306607277451048957328586611601121191759337005997298871578713924460937368595083110896275515588870574563105944853407625450693633974088406858875296291389192411800994421349356010945584177556269359881218882300585959691655734798963618295941039416459165751546583643709238883554409901473959935908397618204494725272472985067018645460925673364749580790287331062329488926983296999402343206443374138733880916658194577190658879260405888330775179567248404315659129825862300087337866445057666331188008774435416024980760690702788945451825115804281681703904961810920435904918490652404332865062066209566361087860779625354566474596125964107191391952499350678393017639564656901633213747681375136645888382371520926134950250367678268028714482160596606147967924357604647221022056652833879655999281014933822735670066518606079177984705812178519873876677640852666007934620850769824050248594531296657670904563843174809260935129503584996836528179580169744851411808584890071800439723026378228823708823145283368074712066053501265762026143933201474592978366512164217559030247354586644341491573518943742743340197586970964300630184126655483592744555622660647057845049382941178179885253550651310812824956508317308205083892830257991984236977406361493773001747189286609336375275018306095499818714496722735410808799313882485654754552321705628302888496783313950273108913879349904979927852986446598171750924279988953087875462056225892959023680962993730129306914584887851749302616649104645671351463060644541753506993602271543849615413216427434121218329237553608368659629326242539994689659690663460060294880656385330252352294973751269413265799923309860596932781147800718294919865347142207932706112269490748578316413407847136812487101885227595066621801625708427728024265676899359909699114272402556225838754752075394053638910588053672223358514054485549195893977300871737318449478142002575563303850065935715975796075385970579129019963203901352381893671000215208484713537092424664127730688699705109074224663534575906758337883265503711724034190810652427462872429491652917551032364382766846561362972471592252942877044374143635082605140159628770618390202058124810772384145015020771511664203357281087014498547348622793021662640375157118656515457183687524817705600170143593443843754064641950377087346605859478257214841313055883467315511113391724137549523851169349922936104930065290127073042854399371312163559309088476614792258487800306743206467418804425463376855150996643804243019955539248073391526959726224842900182378921371179780529351314777443824266888799574860614594681810347279328591393899268089390780825925438826711109788020179770993914999234790738361707658984730509477502260878124112839306186332011402777330583464693713960824182894781722121063787548143568566370196281367681400659084858881370050642578889881398190725589639491513198251741447381630176837625724652122062025078530568612565061195862856360758438380001417207753806367781271986133083531452483704892488097554140836184069531787513902181581714415503981526223451496748994006624568312720449327324239178710049321595596017762744349121618116591705534986043843575804634659131287753168225582491033175887024164876607960109985957025396466742139509398497786480946884660578330801463932260584544048293186074051265546610488418478105808465792453839958693260674589240538815709482983449398458965100265532411664452985881834309842643446380506541089472071329856488872601839325557948301197061644351728492264037451112274974374623501214865568658362611462876492682569416613309627847256893598308811491510734075873756263489985922853899259656861832108909479381269274672338351636874604195711706680037188004008439479081938950684482525983409471904328821427474221964163394814171238364386243640634617684620182693496401352168330979430399085000950095732643093046718031947690137113706012751259603536535001809611828915841523973962917803086264026775564453293287821602013872658533106592239479549234314603630539901066117765404721732446395383045813162516749961451663598423772782955529570216812585291432393845580073379736460501429878335231761432957486471208786617081472011683210107674379435150256574726813904384922935448506982637009506962133822972302361687772762678963788816600302308532365231142043208064341565191560158484260053882314811592087029095998267896392113114719221160246371248255154595588426806321350861950986314404790893787787231246361573624812061551853037659936600446632358636767625651003393778822213867118608310773414399607690645001275572990752740335685480256313138927819113692251025780088600720964664179770269690403153722447978192184755382916585478497849255925238737617156996408256967338714915455791238410706228759552601440703027600200558548160261581712778934736835273131288805071470480253644140159247062538212440172083639325896542574751567460002550715913438140895838610784282749018892798323889479866278281694551612004952521981968082300463969967725182360093046411702305835040553887897740014412916949251020063576212571649749205892452233141377672095988550438466711811818737969030915248874830155683533501332847125841507795413422068891680821766167293796600764964992576139788540533811649890704439219649024663693262042123067560656811835964636017473605676734207838712417389139301307681290661561266709136590215548354996089888629888133003152564383435928605588940561940887823769253770324286691856544720251266628765624663223204100208344160928501982337855868134176682055497672908835612078066486027962108683997400821741429722274491067539165537135994339151678333227873264701603696281064819486751246043056972570762556722454643752911599948454119339900253920733056298253212656052820548411342647018747031068005078448504627704515979187437681693879100972146873202671189213477700047103746640367713134305645545655424242507145998240039604407937424892882753296092367968235672764858632807831274741402582755553156287927564108329790972503515861019499098732013344589390344390784002438307156519185255598218619148685986229425704861302052705545821841981878821206114892572736778566612777512863828882750075965722324503130893670674056709798774437536406641118038437772317435915014908700530618954269068223460931894963771342610675851979528824066463993527921219008077824594731765136713577003743489709301856331091874148825139552093969957448269312869200686752899950298634799515052876467294597592530512188200248728999340139468386052992618822910385903120549943012106768704741645230741652121245437554597472454158397742263678707864420086910426138823428437781658177639258623869894467135660245013241827771960753307719708994100354087844959837254030889099809755322492448538363295045795993437060672922604710155461428759030764683479374164844073293582996698453985821617235607645443582233201817366936632207236087921431626787094032133386197650649996664497427577904475374664796761489481255700059636511008684664113022684909942599776824270692439774817041661854027074936363578572274070795036597624685616338269940575938647237196434649096827072246274681203114483626586763483399725492435836916856304087869496183227526557420625621355457810194229540860271499755210360027114714859614091526844478920289111468747164502218445189789079571001488529693288392703004418384217169036083636845472736327526050436089965506983110098494267231386279059890723712632936193696240323172450667490987811502543688943317544359964577949517340375639749139222828714522214241252139770022132764317885743846844335567329250300048302719677887668627966103103419824149006011557889863453793017799555636599769535766331895108156546079765604953989778955907483341553134984162420108065143693142315217531129509642122811602358136847706685605355345771210762348796874384952990628551434261215949417128052551050848930006774969469872754538150508645937760709537128159058685069404615814863908159836103852453700194358215903618658194409261026227455028252947922221199555038129104951685422532081006832778732444676941340228108471610204852435013309099371427614011071426421856812902125384896948437686014119176939267734493857981716146596898206435883493063616983407641424739508902186657701697541280138315040454637973234938626489645217541178762400334144419229550706878846497849532916615436142377275833369845603995339120668529444534689594846154927195147936163382646096267566426384891610128049027838961742584870037640615873586815840139303610679051483799225764934458059026237819068577381481831016530860603269475380760616910535692993493968713439702424296348547118879032703456187847857038469385954062503864358344849462328825062311793938336083483022205617322915384178060887749204483745653799421372640707394650549579534108707661047090677976033507292259531281681345886499738077366270423363919789765314656908773280504215065877437924315961469199664081319820720680264179990986162445230346395067082845847039649984281171723646945230081685356622641678699552056220700090694250999960822055376755876174220066951293207945238050402348521913363240467830969366975363685434891591869226142046644923433395322407720400828425879427652798437156719800110435149255556176065044811592327702554722920189727999690715157621012418407697734159798752716854901632352089292178660849297368941252321548272809653834059057009819159906091780433925959744927704944477947344447327496159102768526881444191161895123956655258112598133655625099657918054274545023916258336520443118648337263861911541090396733155283070932106098046164262813054442978556986171758377559844835181742589777371872289892595773706297212506542216923245411029885093105757503291439413154597113159081535414230797622906778628000121128460795791673100355177368864538756350670603222751456662423538207983200127416782777014025302963349081901707632775579531742802593277327060332732056738426177570527808376935097052383650694956562584234464467046225958634180933685603025569668754092619789643712480188123376567857227943061325366245741027785017479447681194317753005125076396004628273435874839549551873226272073401674297565221143838145498279617885940419544843855030149698416016692674470883567499417946456412556067914922620609340482575075066322700160885531430635001318578901453459209754780486059119623790757337239642340897214917727541702067234310734762418229046194610330477453770864462314122776191562473130648464759802176051991320592908472007408971390816895144009927959433112758141655685313480138454586663449872245155314083800477548093675400518022152810101551316925914630111230216897515624589043493198133259918490707177576568778780671471919505019515919825666474261213134645706083182968186129579863691712106315737209165587635519415650327603020285029933308974402170358847785192387851592531259037425810222278239836507255975440327991363007835777035703503722891680395688186674605058805384230955435843560171830215255957936950717560092234266591239601992771280542141366554079784457391433621374428847126069642873084750174243749812010382135149315835876116807700378463878932135604163950237925778184876138149707009026651152854385962444755103180999500154254066847405173723183258322809102438419181791693743981617040505814957593044667093727527263533096549174759128064203405783891863367538877547867074103713707666259199485033563227897116124759181033198254795159249799612393089268300950646146861187611492464569827347946406638593948275343722986832458606685935713244061874681209918053516900284235413330647836510142474213962970745629553002668602266432977458578144949435727337625942951717856579246521635853219164718198317730925636592504881015964681921706280515300847569830890811853135079539040308715415546422260579625616575621126706802362148989943609141092336972825202410113482642998576291857869628841313731055408029180378357744616591253881141292707613952080763723666297260227950315943072287252213132089904850425535691623982276991361264055013881748199351464284400410701225743217494834067035735479191433506255639885060296120211010421086027855529622993136190317851054059251701110932114999042779454588618520656446097021056574841431678759407475133464284129614371450937095548628428835282894366330610513427869583375873836814030754039913276008223612113122397277490225499858689828123804897552281517846846698901015386578246641992023525891643495069213075538944157277661056233146641789055280708340947534846105447224611821529374474739333212847925054213249320380858194026575652213405903108931589317599896455374978949896330395322184203134681121517743800689556701189337934967885067878012782299219675805398511893385909220756762547559341494698885891589119643070263315463179048218285495065390322188205120539038850005053648298706420057014386520565340980577832410480950266307117727524952065827887504474554725825572879495214288500823673208555451305841774124967679440413273992206773779569204018715958588028405478258245976222912165065032582631170582081106454202455141269231559888431800048401401568680261038753894178927139398333772789980972723342829945367609717051357143331355009663465388812023297617490567464424006390552696706612952938451689871837943628399928606041710491394690904666881378854103358322636677924460698560257746602259452106589338631647509316758196286491064362232289256635157200080978639677768418784142795566584720692480648808593698523895625741366367679265302657052263702534692554233474144757308951557931159128207175502367289492885790909418422052782923101697512413315169118567157605831409731395409435221060753163205002161417697587567007576099341690859287013738616160057198882376610609685549483230621851483561407557107730872859346087225774041611986646963073662588529054420361552298127021816930503307446871131140823461550026744121012647839434575510992268292532284993746115526364983932698481149856834171578417593973853926871192258587401738513955351584063152303485282078999488183611817787993445749914548990141112272701367198306050102225712935587604829970101920204287420133841569347404989905066799979613876620955071777625230981856744517391754215085873285763992947423418930339973826591610361871511802357771103023839560246850738986131642523697592573003298703141916842189854465567237253950675098933680546891654715741424388153414075363936871319191912180883982607495871599590255888552221245114799353938261290319437643361045767361868942991487168051994312872924943302634055373071070947977936384931191796132119879296100606315838621408142949278570058697693959300727899940915118810161677116759109465118193176818007651254556998134619873332632966055404651926418770312799772862566226224875962963848156217494764803129505367926088710208644384764821682110889002074509518807796477570644549438843256842294458000115818088598851371473024181548206425589000552181637713199800475418595036314968146013259611952701624222837564105806523319019696987748595734303933969012491893649927317232824368769567497475053164742626437629789341671774958624048286103771816445918387917427490098290731820038409011278706362655169487844624417986660933461188410849211937300951922638203298442354041787371619539358098161378798424963901795629024986574444375159590809798726359594855347421617038896016833813320447604596590768572143576294408720944853584584638468138053438164778442337223896764156651472620031035012863344972038470268009932144964701929593834380038396413602639899342825597078449334102932514924826109528051814984497836457162085498671258588445449648485438616801542552350047996836350867768093823869393826295842947482333970656218255067270393269098401379705049971831108166869556705255208750194461629946189927345992851153968543811237719976149492503093569831183559696183559961319868428431298145006491350507763900955008714192456031110510037664291673111739211724371358739035977656361490193879364708361136066090590639657405405635979718416156447678561895241780348563690583399907940171445049765370318403374054406427433182259973261034184689410401408834836719633161608513631860046215406219035067905456361065892266264811399441093708070547096000790490420787337892230731149322867911110056947584760069174663573515362518672311457177012352651131125107451142932252007521547818330603454920367938879132671672113368515879396481455489540516258272901035931525696881498346031985828558868044971954129168898599787506045063453304430373698147867533233707404388387162305280534772616341519885601514535263644489693549092997660752991657992661325687948519674485700069926612226171950797914111747607004948624815065644349045259865837388934015688543926307393619783678345251022483617479148212057836494715899797819934373850355393501872146123661388133029106824178065352876793733737998654143150619044520107655906048087099130002781939799519077140809595423079153397107530385628156489286881878283120928141406959104922032160547984404029080710452503384389823004164599531751279749636063374812317151311680501543675135299003322694217118514727178209518161125302424933305515331660466736234035598015648193599332498883020729715487591198223457781852261975159731615032374241100816608716053006189464348177149911669014645094619891771822394630349796317113450859036792873054582040660728955325859526072960034485996477742469641116540844956939377913775466831646492737400229628669478986816712984289182635752867316456207970069826932872638879259509691108050354866371265081882348877916784241823614032393132264427337872216189437378191725911410756506566402690075672746762633944955603923774616846277816400385822646607951073325301361983599106528788358930326221974144016906615462571880078776674937712339991828393395890077718890687392184243901204720017118463580280347487022459203164697123447845237482491942901098102171322917417175661234556032636679772765480036863041243621101303431490528176991118306739897693918508650169482285361361867336747392461974357229611410279906106427270163727008188247309250082100874639789506577267430154267309007810359145489443283175871005686734565908634049750666782299802792146640383140319257598927644191075136011405188029374201629181390460065807300238140689635426163039698264282573829568051826467611017358758975642306511556469367403454171107450648762792088778749882904184314216292982397249339770077769239009583639037047475990004642813040984947251772389122774339358077352695516606240850975171827617748344802955194872827865765801344280323405315516875431000723935435024021213747991404204197152073171109160928896489918989052386448828896127861530059187150905184838553750206441582682707127733482703301153993832795619497987437419213546430890631062990722423401990995333537883704113409046588040003216535952581207358632690855529638392801666883679142178867487034869425067766873874166215205026230140872163402538469582280014510323413337582556672681356431376046421809542212910645513272416894993555727208824189383190734826656058819886993315627391672875877092218255314822228888555281896931896057280573021308941720236016426357030013724894837665697277811813133825739601552908959443089476440110000276558405577752655572976156038975893207417501236996025759443648606983497805878405679251431798254786469271922500274579899267134016313721003642523657356592907142827489997527377241145329061770374315498720757780765996783054989175737857742731164576891899391500555063196752090884312800824764138722507569045271876440108416406388465264874755731967253333080727238718249805013289846919751745784156333487600644497910129310449677744697355888724497710433138208312059991004437469131500487481250880566685775937682548971657417125476779164340083995124621369188624911740612628141254252750610885538041669911250558375816752333108290553738462559280525192321795697558254929836970440322813664163195997066564890407079157634762727847736875070653278660501574868795302326885122988938974383472162501392015396635887331984883040870952942397972415840414757097707453939098661958297916906388830264840659747841600228241788548809757342866384451455504492122773664328679346849134746362068738267990949960507752713048098936498736393337281154332440288436672841138461701622247696400466454124328677637405590791466994586093390077019757303933662818060151844690315273768994334387895246203515545535612125416771326112325280490880984271164667523580235715739597409385885109329352456880445487669962692870510674071093138007585964605349018058026024425438080547830342991827159221554999279879395101298120941424946144961814825068110760841617483771698801092857363589767902803445762132940013756240831064392449351735950721072932956093800516272304883249178520381021863668343268380223223293690553669107533105948102283073336152155945614086477905161859371000961663401498767405735540166053828445373242775560572509837535557638015546290160682591772632880649092116332310488373897555308984999350713527150978523795463614609233581267565955149822450434930149973386356017097108211938900426913686210077663199958251187589633599710703275813500087086131948060972059057166770194150517460992038723166492165080063479880588867730100944558709020814751147617164929372916512049287482480992487438344856808137711109867878369039862037918274856350329438976947998297507036905006284678716121418830104483617021238683297825703145090958595254876018108613051926306273040464744565762435599995324562366620821154976578221456993160162921407239382713332607129166739314359809295983571065545101720967246479483814419034387049959893682691689320920875382170169235204340250327416717377217643541018935437553691981562987030772408740414209895762144376151574340471449366359234870912586380162428023893105681174049987230962918243011271144515098552984264970453225892214742457753430545362886730728323610604632583666446117713695968430372136516072436031386455299102209382152672511631008401830342601628413479486157313273557906189266939991134972829122723589400517034478274356568739551271372395624257654209130821061050552752861508517988733607284339102543665087604454913134146602574673100668591812084103742382424792025583362922470907438426661254120462955071015136895926299804188808351141505241140577340759520621337804630267421922824346841225936872286104979893464031130836972075276269075907482627538736740678883989125560100059469798904709248966657874962039550689890551623646046954702421849697017828878874501394932865737135047122401459999890894155788362438903134649153367618027537922132426369350662469369487916087691678044825937834309416331607440468724994526423469304753443606382034880045319176881436512077476764212924500070888974080005549765916482786584081843754966423007248899271512285715620780135686673756006754763511232562029291771234167871973882400788998258820603071068180010544332318861036187629570082687957965143045161755419245411476153442270020355385602240678099866851938780505379954213943185120701350294842608979009874003669742441750195244042897728931814136823079501312332047229971637665436943985134271210199591381143824683559462062469952099640770040749216805060930956631899424431985609686748549474780685980663236380318192529974292651668719591709401953467884508524165400223843844747389777448179300862878114990193416384079823702431138394519382868040496995390653473723795567082469296080499251645803511029769006268319049613594530606168225687149049266204415536002591814829208283786015514821334729652991387434644123304595575450539561856326329659683109816250612298078199165845084901413794718788998625206892545981346659121959293139472733635513902702122722810602519750129084617517371948195034124952858259565175192403405642919844581334414880636537603191276584497403945777320610328691460683114846550055541537985686079590379832396318210329210759920985889115792986520541377607663526104510229656805121937300942289613611830017476525666254625763342463117808385789388006536249306372843089724025415872464524391147504249836330986650992072055646645582261355599297839618440652476449804168316952293423039638873516550370997295599503277963201564686120963804217898401985914331400907174307022394378119446001886330350160641219855430032768229531241525209941886106131783238739686809896898059339020503071352783587736000092231754415516729166403185265063039204580135089280642625243224421181190365073259447697534502902573013227064252871171458260900158406895242796201044816041253147981908291268628118936580177377130961693101039555674556793107263418669067180577699493099770699604454044091913469142203640608874170891594661418128492463684252305527199784367138740010801106193176310323088949916061250050574989438124914833585471195929634753864177767512438891002836238114091315259211965052541403397448497213736782237698370384957039100603771136469443668574441629971641130730151907357089701462260873458856421652256401232104907308968868190630538580869481031006641458754263402108512208164541078340104708709664536953785264904112548958650575582531430170975908876083227503121148639839098503145531585012851682614125141929933532482349715156226888266710219106741428782982754279246456468146288757087811818975046840710403421319211573093679496328100278723541265738355953266019781557815280266364364891710050030420212315307113588226707082842304759309228125761922402657754245749611181482046950792091883012471248899426246963294957798759783412935790789723686845864955129233509864148542203675789477799590738298367714771149425838874655990860035764333707003902310064561416420040829391393990614796721664467265515697109633776454845083525151087262273891618513367219479622599036432014575428406689092172054326781653074672388184228834138552544712285139999010700401291573213929053347092474475914621046716527206017205216201961862034366359756612235893968753810919369594951592524431068795708127282818066584485097730429016795727689569676930466453969533138909777244743652677471709224498182943666655559391415535916719477130791980768806985707233244744172126507249232724609229818691007273766027661290457488849200864287166146741020685427421726021649279569755982654630057900696654498917717847045395205981492280555816411243934576319696053305881248569573859760860807339927779549324466777118197891799492758460131441618645309891288497555790683205311932855457061424048206149703800645829859531878282925690607036458264121863730047638728114558003375166034704266524491291938831855961332287641537105858942172071274813621190828090491541303547457326326459548705490643401535658543666652967392879010015631307377612175116648093239593616029396727456169525884101646921012991828553424369736450756950490322844917665583725860335304288047879826022363749742625394969007204366849504796062007752911486693888378941794277948858929288821397487543001078993385418322486416729266611894232850802007707175487252269128233824222612864363794623161912137049206097204495983200356304481858714869358795374928882140735929111241286605471911141695872027886222003648800999022676389592472133818288977182992727945083296546484935847157987174460234008742823180926340428553628708433269274293614007161581855997499287256200539160946051360758638672143987614812094174313631247946449036364200105030535620410641637898168455782246356592240581255512164309289227117946162703096986806181189399395761096527811681393884263538770938371793487270880994784153825781785667581606825787203673834329719965584768480883295019972656494088531445408783378282908903300702126542566260379958598064906126593720574275038556203858195453867093658492346586893938607729647516008572339745252954070405582021638128893038257386474077005295643566002720951760747911192458808740197161605163421227184785708884097288129835431047361491855281350840968308505001273536469461692135573182651217148160839063241281614505363285578458549879032274709725344408708405509482069878391085901034778826249490592768095272839699165437632713640448620256580994226493932444709241823429983191736304989209356311422669833437685305009859258427661808074706283452611367739206455477527034570487372596255362672365661566705641054738461416423028044029735945918120153561809615271269023008388334354407512027182413756569026964506349472822849910903584491515607771684583655894872240388192542915644681837593599000445487517518900092557049988866223559034052206451215713558011693716831487926392953029504116688489724329154667453472524243559913602596271944893940922535143719218577228789860279629825311631812566836340798583402399186938316630677830928831493147270713187967157052808182930665446738855161616198115108105498655950316784479722368749938757413573442568559535761448846990439324184314670019374066724881745397471672194344854774715056368407637709419747225476466288112284247006289790543352060867606941502304626004652765173068311185950897532041216174827288357606636587451072920758876817841567479317893609063821436150560917700081435220368397840184077657061795324682786474035339393508333180170449658635444557972482176930547420145546473057119374808981886347789925220704946879622275358977139488700777392936142699789897185326131191903322184973750564878472415952572762360661874721880309216697916615070126554642964895705653858224771606841890469728363049974711726068566967384237404381414523946143904241671863223919878493586661634822183437117727088119943374900182474164700485145250957503296542442947168873276684530382933404206670820604813142010775974396385799781479811138159067616997588945049636965234296989334507051171378366447044303386874665682849182926032384857768969835069777311318771731873937665630086745075576155582807270147002388649009788201831137140576844652533241388128961042772179972859666507583372494363811497736188973783692312736093631243636760723865939845453900886850419850501944099158020188167422247562394174412177226601008572235410722954816155314425636325000597167006712166049819581836034920312881867739050985144354000190919928004196444873762122545711322175804266442790544014140820669210693396722116909703596743651175469257250024878837413891202245687484495268840194923781285249082972941935392161205380877915004830628224035541353846448197203269099548882927138891472757110629750264864413089652814393716743967794389658318483153393964198695405097832574055594118104568729415685562178269140729440442487520910320520593841737305113358133915063399145420403223219612737944065155082860668485961707777031969407092380655635777752648968450557508555680077603374348243345779211090178442450029249248595835792453327174613399385065714386413827197812448988439867555153929285394224915298557347969149922882808357175719636584767292503653484138680392317418601982628415440717392112943932628474647050734006760517135725904544246841922372771544492628047652672176448928234258948056194557459545210052649859152842814338849931186813801898417576153771976563840762231765162468174672078500136445091156190430914942100979999796507510023740514488436440209804032216322679402247369975656182474793877351269830649141536938979110276448928911518242546609530819346364848378001129973244116379978922021347815462279292603228549597769810497716591531889080972640023701713858106892287658095603105620632482679837489797916896169320513171385033115883900821162033870040282815858834861909761033621112261877955318091237526675187333218081871912489639545055150658461256014716369670023527648255215089927703269467526883351502769577602162801769835850252024364891693406039618758064880677664427024024005098497029187985572733148968116393543366897437639096828476347823415844522514895957083747426121699156810105401884150332377040555035047872553219125259432842273437109896566114854340042513258627770452871647524808065099004878912976817423364043542079548276221103248653515150259711768966883175793943490981089427576177617900420202819463138160758996138473748060374762126510533372101655527149139104632328841105391628814384206956231318986829703052075388405816503877402039126358874193691364651569924184071406030349390277333242784049949152724497926342624377654577723729960862362992200624381265298240925615460838703112710139610105294090110549945789783347379459519029289406391858237237955658641239544809313063528327164777222628679427098840268224562024563893024311728525641238090367936815149810617631305381580254055748592743817884234225958502409515996320027745298010463988478746241792637740434885313234044649616908136576740629153461576129124792442683858671803716378877781773633875524644830780809945872973523866647992373411081061528779959858427784182041519687925451051315359307925354674544988989175820104123840334698620044695577588858807613007597877047510901332976104012625341098523397777114583989017537320955911584993859863502969896340791221917991903795732776540261554643132772562317467773208288124819116802904975046074112299057798087575722003280978964913047943654661860815403054470097448130549602619548580959586159625970458654354807869305114329255506704618224104933935850929276454852162259757289774982176530539263826786026299447512357720863850802171810832604850021111251938435076019960610624750261367014792162292080565809999465941232981003740699167879962000156236580408810790830006248350752848976323901996251608097242166910660246339505178685213252675410842923403671907090210267956551814544812326501776757732787803383974924347815108206494758910258585216183932947743572675030690110286850270864846601672718731146165605805961106605678432891297169749519711537556818224056429091705533012275449047541858471437736956905212024283838086494654766125029747169891478626301056384846633160836193369748656750458466106311557887794731001724691934671629468558193780569489857142545608899458609799866605666170717448050119024301979652238657437222640727639006422993471014056827632643686669789523709315374779205895177587805116042899071892653032068739388663986602003867946172424274888451499427969829628553970005495789661891573750309827223874154638773343211559519421144477492757272412242311948120504819144473410680284177881856016462183939804023030600974692963721633257569196577367887896231608751401118165717354212267219076017743028016105088191513402072035959629127699215293516032177414105069350424314761242114543585430774944271417765651999186549099473934782627124915609283719019610215468511874368463937113649799857482109259984213402293754344220214421388285926468519276053745463990265902842341093916286013574925040929801132855478851635264679382515596511287626656204643390653547223275072165708505816037903104019656123882009042910789082874577313204305538760620869187694341686258665502610860709536154057797838870135879940249603650174864182021463956523920950971354261658358480887581516983261215606624245996301018884224947408160797056536646639328852794921108208011252005554522734735299676933424111121067487249174464626423081938308739428281149184067170509873322025196120406992276220392042151893541412842284580246520272004091074128260668552221262734377592102936312875872975904129945182770990863265362526678406746293137593105336875304799329555518622876741516079328989119629982582138296704410720960564273105755057628108629576837534362444408309481525497965562593271759790791631409840065802631402577067794178502692680391378502971850188703728741983782072120660454862349193472495657806949323751078668344954754780399949163405221012328618859353940986235826631798697530986277740595835745598939338290124611233401952297425064231264859727115982298745007278420808087993130375542312089824605565753390390090082702997657887674134234759547430851118259403892398678210912345013637761076706804935968669937771832565656458850552173938431474413889738765170459652876512020472880143539081735296672763773851401953079681456497360092024064814399588166636971145456701713746194004868717282425736051063599764122171834195869268417190258069361969858644502719979482140871311852027421182292035079771744372504561229196586154230523109217624199758733103695874687413221776134534516413093641244871243002484188342521975446254751065834205483006358814095443434859427108367944168157209298041031972460821303768117799033714657633789960859675517075730583025813093140121259996031947547080787354269343084162996943945215562031191628840226910134403138883532904043506665206866019104145677817219311675045564743718433706218227373432240889040150420327833313670779730224597418013539822900229066983533051997072170444273727652053543278384338559204228984813906969949283674693541880261476069970692425317967854691162597645461618993077986044218047720519619985344738431372267219475454248978741560644534161791271509663766558011701769011026972811958285472529600966176375485077492136228040446251720353529537891491067254272091868369576619143610718307695137386274489721597117419637446032029664058186824748751593060545566151161906196172843110758792379452731290564288490755263652439141923154066450279998041534411338346851638989206818502774347989914076256137512093907104179626834869391361023780552081110405213522662905832984895939035212807680436887532244069912438542015614279778310485388414005084501203607832997525328277761139140270975523482736676664509757689915759738651893976833399735376414838383991092748019039327379371176721282175710244529364708769085081247624875386652462571120697364749110671658367647573159173423278903962753901059089870549068926878750655179412662280581201793224887963767327159407245121203124270888820152246760724193299848396096805003035341374583484224607788266557818636720112028352746205901069467190394672377590080885848027240754710309707393292395708377809940386391246631278944484537786391597249079033622213267088008738670797233961251279791121806594774634413435268776239248630736899997137531348996513685581151461652524349188194974385288843823034618899219477696833276491590594093342269119513027472242622065781314213026731671384220694965792157003113860848586735744152595967266038221616814830343720985613214962970880132933977929040285777760466635275336716468197066266909572160265949287795294774108492885262053390830240250435995805264431569845215039861486482624135107064120751349250403693508700137685090914886825578478327599289253091376318699697799243687640281959449471018767445216856613725307182523501435708092253737314047335211389657405418123227114645628424403971745529943693513193943088384695169516906769393306918703928829691693073874150764602476220225309259536376749833244647986391416032904542211442981249516392037704699930231265264742742362491118220322824587271312299221496419098146649524405121747653575428601101031676002839235767932486738991153681436746628101431219744453806964620791338830212125960255980889733657920230718455467260305327030007751575382450469322230555057412500188162681166929217770701279471068158377822517311718363905503968865018428116165013886965842512602947862895062179631630713511364759435940580068746339161231037120230829621564016202581324568228162082596667122793319754850719436749344811517634908897804147331179146534373580048101261807804741216283971729493375832632738338856873531306168780845737600461237356231706187378691600236870088648330656787361082086756129643297731431046590044423101926997692840211005492005005081670296698114249660762761955741169707515005821921575432304057034810450921650823296347663043528090448313795675907622578487427280106330234059344007940394224383653094092343169421245240378259192532388185585534031694910525040938749896589346770412616277484363928372730796905675638781349745890165845679373623449001534210942729174216613596190330291921434350027946164721943941618616522586061134402596715621370187057855748335661931752941650704006496094466235594513016885192694677027661444502400387415692872231240518051762078282585780562917119921300458872889061510896798945485941734905622716954285856944857561790242582862566410916514750795565475478971757690390375243373487934772835639027574560732418336340623916041572057919398899742748603100831369179826159580438907863327939968151072193255842689622301360228183355672989208555587063509070804294438747281390155858380912076065716095333342918560395247707872870903296222892185345144496907593334883220634280293217033175720078206805333282581124904945868924311563931943638234027702518796291835717355024193646840220353832046047702460057066537905494816487228049616785056409445152570525547647912445193857366273070421541347851420625095295307693551269535457116511285022775269102865908360375535737235653734935445713393412843948894860431124450053172043529457640365317796873182912124097909622069188746480425063824229505364909026915426237950226645537138977061260502473382892703234475254680495663111809827473630929981671086975268394698002187447222262391884883457435459955869812933249061322278031447956192907491569886451888383843378688405997812838226599731088228161874595778740895441915565548317336460648961807097228190439211313341880270630071244356967669295106185058450493244224256749330378803086007352238633617272568322189724480246942203264122330823563027166836218559968648338666016259040195786694847000803043249685688894766382273905581281523126353961321150142579327007907292312006274831553433704318296864557847473188366460956951083454192902021564308009311166338602629987270786209527500377726870404992012196820996668301349726262907880121382566493176965412884074555468745934877911511311432579703883420209052836450474536930328367815367413040454863438897629582293851186186960703912620386446958840623899863645135651167837709158045030799684193653551535632064161005043188011582070466166548698958986735152665390541677430753315200121962588679221330164398051837676564763577436985594160438073113356365589616375519421748188175178371824986739253114416966060907854564080353673343100017509698926607005496936002226133246707575619083678472958961956699549126187197679476993230487161345929343031176830626907133913104312564798768605794390698056726236011928870998106620454378086813470746042518320927121516348076385579480576508874830891738050708086364457549800388531533801976412797159571339459963277758878596377564070806480660983135473037442294529237937099143569022125446245249406922160534344735931563244962354268768946005251578093510435237106606322447039913506526022130536419106670360962554721292604517573162003895573894282044952474107590402118792010957683692137646308165666665677872357104976161099136866224374418931895265292336015934388863027093373475761951257200262933438706000246460266834909954959519727662508270589703403535144194018888008176244018205261717429589370068104232566821163825078306263510149139216374639306898628575816034449018232779588617619574213508282859073252104015855625506483851156667550600217566329053932079553967896478016319338409159554215238505539833029392335420947736570724867049195317866652670582822117513984684814220952117447191935769518236403842993949216238735238906615146430360474871874324381628757202945546025054142087088271597329464652358263739138220476907354724103222437581976406429011787296863626429641727391925702431657306064589876673919160982773286374271823065976949601706038496781669642183019097424375699461514896354833216282877391624481674860951869161209571341305860317955719342000071086587820369674645224154599804478624529498870620558624084896818127714455941535235319624070789290483885200551888415845788786880307426062180414458177152156259435769846980661520718583814192579499224969221909339152114814161853782346576027028810645401728802738127135973301664428381926101461025557614534554198627193071787456751924895678206839994311317376659030491650434604836893931120863675008669749265421268494469670093263603633691548397859406340011875934402198500630575033086317524523671662137496062527398174323965756224948354516579452985113073135740516563811143828064442955669728755053363801728383628539029484952012424358472914301941762914355328141816407404057652698958309406528280885639148487494610856787201762230722294660366388380791310479152178455794264966312611383856376261522406878825251759082062771275716981648473225612227697754225497554580537983992232144733058639338144236495015801983402795983915707564643197314527387597999280559160309667428550190981302982322202213425973601714399705690609025263250942867267859008111101953430003292490329187315164799323899919324792607282684284719506074148690837239686235937215671653929404010675890421205146289175114889679971015085834822069774006824965806758066062338602902251028074112327839174101903278664061488914485370707915992758747986828735465384956076646722927778954783978068305730950854220960475556383429524546891789550842373960349448478811231734714694062095459166107891533808139259562426859772517271376926579212256025291135607929735553651918652313352518699445216107535871041678295577150074203315441709195439807462641808894072302522502458441425485708064198116034087169137806462957890606336973033225628197975790183777303877319209761442042432545715883062469698490201750856630256026416990440172138983601505443271397326047480149416289098947394147488978075610596263317395878299009659994818988325217699119288265270916008953505068664237462789837875127267028141768695896235838742089488212941888047973711554650872491914836873767636089128620012598221532525656103769952738062758227734764649296066548996327858131255366165701762312085133479374419331568771188340524240594339181986290103295156705401858451155501506385649080177626801258834548410810180534490146395238730999898238746442781631042763849489492935600748210352147341554944446542080266529681742212770243695154058522900082460572014114238186192000132964203023146377017738308741771849328790397798785028646170274950006113992731168590920322171079360195722468359497273728961235056860364428765934294700854687701627797385232681795967108829192835590581569189997525636943071812437125116899915024725732899352219414978486093563064736664641902325296685258405618098827643056082641913349654265969559417714988472590107986565428676192424539519637243974939677032646892745912720972435386292655433121856055529261356935462157084191193860215773269464838926241690809796460940002050999715386078449796954838370586042705757945116753354359864996770878899298079794582317835002450585009948562353073223380241398597157627687526100583862822559103181346033229973321623791050273686970511547295427822772924407930822583124346578586654413918379876028550060459004952078288520675011421024881986456151062051984339122912549824072026534038759641135178840308436891665685067371696298258682506672076643309292039416344274546918420357721598448660454035532454403694336062881043689760699838536940642227493951765178481214917334165142782444775974780909406411969192996648504383334697337572186022367942815580365399021759777516457348217231593527708142115161182293081156821711270283136158775228386401555268586440701041981020377753520799948714942771236907874245256924494384537734630372069445893778519894544294744703609097960138177616699145320997153554174238905798406347182558573543705755894415243903068648888096261043571227877758401439638676391450987867577657458114728476070976831203587923953182969122900527346991389461938093359923675719392967509287893644564876507186356839425390818522241882734790086925100412262904759325485587309834760727474296684057203181400652110465258372097804315639262158738393584663583267600927207579922720231851422488604265114923857004638616257167461064890588436573574412354782020162161748816766278393911014158893902016743633328215374539526025601611296494763152461150790626292718117582065104778064511703013876560739543931917225982507896717086971417960767360722940968912093779215253889947748056448463421651711294488465659131820865099149860442760773364501003376899750067664135701386045257095423838459856761762516049340200833400687249636772767565878737049775337467914239188999505592252485527428883541334814383755653616605156089704533715116932910763133305509955099560812554856284229193775338681055852905107052212656819621029232464288788750629688771231042794823921092692611893223968963586848586062785897863716418174323838624463268414422955388916126014726559286277510065199590000148589794416434937872558864314095169376037916039387726377080610816162720380436367303026429128566207669916675978618609213492202527601710707256885657475431148466329932564840301147990460731050209657557007084007219312291245703437319156762972855575874148714195808895675036296872525861981787877820424353428993881224265675714630348415156899916004760502959161618888545785435195138005925164974202875633194384675750691005890309906270746828782574418284999304367977347108789366008471676552199711084880977373808250182139263328993672515568583041186632175277230549860876651394224049043143104069213239793919577383662465586474670638092569991203622072664378087554866318276821614909586114676002151641777613355599842780968703227985441338317708556196837043676115946132140574450957068103860718495992763504270645982643138382261675828548561739056242904570071289975141573686697682384622571778720349070521952345001667589064302533419771651501543628043424675067357865361898169282357172863521634470669664355527579845435007889892066783221643022792227179572750184465687657892053704782984909929350086103244305479399998825705216238150037329810722486055042543731951453426496705610735885413349210952322012396182058711679152595390283717467693106757513518670831384707206540508375922900004530414410618508758474353821320010481683010620103765862060897191192518689250861288808741454327638358029627813756893638636784076312897585191867932439706615718845530359359017400158398133509215422109751479498044090554287124445387700121588180650050268860477953385641177677677693034847774857636066866894187352021223832653555753391092631917756220130217618083450443308176016230362638920968002641916776904666433449229312241582807616819320776298848133305227468621750799200107256449242796341974823475869735565612226276282731304897133438623068570642207049363543229770430212175421327898313810985960519410437646431004616463961586167067943014614069506543771241269607266641951475066643492149976022571065893297641104704392533283278239978507184698671414535269759162387097145594872996063265125090862527638920375732139884350169092661233937662948975384129986693744195601995460511178606064404128388279982632803914449542928871097111985120061290400297734257825382909521542918849075805086026124966674527696366070111040731114200547821817221018956454875761269479754579770472487972114635032070253026184236703891847892011895894047844314216409031003062048490100075845424507163285661842280499273543186986492844318660266071608513374459553742003389131160339992044829940623701951039040716344073577210752629821307177786903567176247078011068007139645653635461757273672221794954210428132674426604770030348923900822814333653467202559406962561236037724533614450798708906945298611216393197807024256432155615956729280406746923107596852088087112370957823043135539803515249061958531792436548713058007771743516626625108645483177830110440692512261239420767226020234809360516224512524024013715223504989541568226060535740743679035066954577378649281319881130084597412573048549153103856602244145791000866407088226452022277657361317353247413415486143675729057104071461412240368738253929065894447879327188317325006417059404168137793979708545987647849667354805090390737352202318542046372032553460522149124090905612545084860323989195816665327664070976369260352703219307383115446060529819245946731372368174354819083666426668608278330252096654250344838055830827404357587802319624283152880363107362598697020638725003779171132736680249231778392332066229229237245610138988699075913902734962158190167545606000889233037495342476921475092999877758929899617600816806294365245374698073086778418698226830185214568663249027103793032787796975239669788165468885369667575443981040564188003294239883851880181816135512694383155297383709382560063793150185663591634583280010431172228797029263794591854964349501566462618939246870180366662659936881041788950474824492523667611751219647601112531193133279194724047236919256452975459350067221485536516821333934890736567241121809305108719453867336902220971605642498169965963167110449163973765750064895343215379577789582561345567352852520062305760624320633489387394171894910602181263670201942395453403945562817171959273657496710798422938143613711169046950621447240057161895143721566014586236032357415885870112927295825066471892033899204928931151666788945270489445889635948509900177654331000616998199586963864502210743657557687456389022515191465951860855308808452635069803511533926783368680087222134533464777940096940715622284552356821132474491477375900954032364268329981819161894474590020447701317242481835167253910251716274607113546698083902286270677135448562239144258933291272884736175001339756277514194414600508650708125410329410428371054422392317490805330924168275277070426710788789048905531762314820227793583389060660181892175466223432137434724717412978700729982731839122538370789597196032890356992249918221720490403017599352195006690819213275210702470747341429163707917366911012685339005071320803062450081423204296482834457675815320305851412340913238065967000342870428114004018393016482901959789647105512902514093199714816461797179649807594543455694679286179045147382067423897538997432829860392667161767884511456973040840505546949891441920494933367807362271196289815467790427426664027902463743240836677320464230789074783185597863054167861927726590389894340036865593369318000991304633016915189707304884888156670359372976277397672463470997940517008708540726516885532147933886189324018335101581657964804287459713192862122417082947172001447461427893832787113304001049063078760757910415284015458640213372745525227526844945386890226242914344917625942261388941855587409030749849109840585852290691934909190912252344497794929881957387965953703408340017997843535174053192442034885171498881365998808521685534898478528463862336360069446719054298621486719911431892473969150280676174926737312274597719598218684615673395311848972544626230549382490131392066119976293236064973455222012527443411247037146764041358236363012650250954205444212145132202590426595761485531742997390432184901650114794102167270579991661238981354469942106923651376411714372109623847708151988540206377292208839400128517475988178582855630407531125478977989515854032256233288818298178225148920801967982892476515187169002945464449840813448344093223211235316189935496793765888207752929953959490240775483337266835477834300494111523755510187846249510894615271517320913761128913569289162646251842218394795999471241424243893983418880490428765232429857961400852439458788055316218037972844483765341033024404870841034393860568432105862099910638089599553294536971123465383367801294796969949245108437050879317372012704163712256914540072357078201496705580711564187504977352785429691389698265044165809590733716515883327298685785761768608360305828287071030705428122825253442800367382177011344909047804412923555939449432454769197031023647574938019831645256819640992023038169238219978489719636830155822383590107584287209616013153267917043398550535767838689728622962637147713733765831469637450397231051236459349363935867034534060575307997525164146389441396378921863748465745674493518621326059938472896544526459205709911681569437360908083401760570905137431442191502401767235469278650394482749143671692999788312278899372709755736547191025352567365569810326430792990651479572252429246381460288658883933496944408520828777572920157676936168523472010487619644084020833302987031433017627131594943567953932970634590045896724480050983187744919760806975226246071312629279597339269274636619577850764099890770784159077463516730607708014882431839746058845430487749878201535304528118236508292228560333099651830261678315148510154631741225401810519095175451841564963655149830556411991274489377835963404696219850467071081162806706176919050749341389407673223721804092241914846514819141419628882397088329186244975519651514172447176848144660467461077992239597257569062861123929491689766771976719398248241140221724518115315819857160129871166692828560249758242752006761054886619756338738719612683099119803642198916648652743227401772707506472859793525990179305434488804635354289898061935497834989569062307820580009459292389558097001488067795811727763811205862538280432522492091225025844003551346992337168111915420283229202874724216966918825189541780595903459705935045562829117715207298065986159191692196968277881831926195329755966030478392852072444667978314797911463310387762430462018745426777876844907449566668687160450876330231110733937461539813020606216484662222701504266630313856349325593803918545448131743103745465296719222356653232791442255594622450852339633206117334829566959504969099900719285819213614191545593665337753094662705588097859270321244291365846497849186961475132323904826322104170132296182490531276202906764670180081172450925522293770828958865613631309444925778272339367743121124968283215898937557583661378800773461083229248097268613941295430667147758776956860972240557706954942850146100389412921356700385581554113531179819032635735410150360423906433511293444063825262134328043303141086147814797095924241243617873618460874179942163506436171434344926427279645785537447784293391996615756154286340786736095666153883184273157421825049793641141434096027146543392790076195820225946046673880109145740398517200313376401390120082352288774919402553605028484165670382254310090444816108827274852020092027071959740111119678540078323135599154983323292401369738794899214056653129389138382951196866254193232405207521666945014584867304530200231511695113850147188070361695130143133270652725373400704978909835638420343642367436207402765861330844380581733305293981636243357807620032399372066426730749818185407026162346959800607693513580909990130846189948135749830464118069938150963647857335563663274074844116087146395565768376922290750637254607804579102310610454216778601868591149555797218145196949170068921158805813381386058553203756453040190846782211731119987878392858888277576451773069767519486427995746342154006312018252947281426705237516604310056354980170888795212914341577967204835947778798815388684194314608154146332406718045297963549750891388978690931953696268007416226554369241374225895409785436279844281677582500111493168094577962873134153835831206706280411291270325375367043145669382444990823744582058744076726575841562491245671767245468023721175627083412672175665912392368503548137805116734758946753671292890612742212867374702958738376680443422788982851540955357127734293325049119488656171240038322635010898747838130744648414232131053247556576797437577403610096304648555710260548109476738636274895121918965855983278819959317568138540681295092457707606944592246671334761620729107713369829874129455257006455633306321044062692453947305473589139560839803137444105260846791095333442149040617611491291037997215203780841524893253812120284826412998297484346825052450823350439632134536797786872480521442059005785605808008072237316236374892496110236801409176076884442495829089217699595475807831586889476999733422682933838807380129193079443472344945038965157356270550441011988818009879621874843458273754435087131230324030063610080401476068916844937313993268560670263082732652119107612157464881524427717259852532893938301770976960808313046212524893532942018659289952920578568921277112806195497149105599907890217235212182801974072315907819983318223825270849244279074647857148786598713672176959539545198486435849469359206012605954480382627305463942846584981058604102876305201473638367088977559406643513063040403734513838587707466818944034412044081904127637711826060510701735644467607021407115739865369738543364925779817749691591777784496969009427267154469954065379655834480772034606616709112148250885403495324688803516443032200508975664820548694717927365630667998678447556013722970991022762740564444912978894226755601044299727184886975865513892439379406224908501962929812978225006349173813425891101784560937594112505560770299878970167447519745100977840221374812000005565627434676251250133976804943404092718584657275625172044273201482259927117402235761894178417924751627637131164384802059821798555273251434998322956996395729195520053436527231102713660138985028815416543868921031435633265387697728091444380346459138091840184028310304591577139128811213015095457805551698154058508009566492649749988521967563502834092474182643288260793105554634949251157375889401985474648475551106739163717738663716683595994419460862166852697464325798632667472163972025967115683612595718006814040399991604730495948345201225819378908477856003687386549068136730944080209584610631581311819569978208507960455162245133750461249319534312707787404411963391594881631430223745382350415423162265150531209860062646802443457968572943638995837132425437020151067961992343130555286299191216125927883616703334033080291043580104895827382543599779679957871725082144229408930479679978976685061561467137090418141646015576297403884631554951881094703416523832663511651434240402067927689474448072835162003055269947250547833025387252838804101171232492448605120471957214995949214528265863518786240201459804098769641463342844219151028697802065849036607949184434667533211811239502637899266933730758836336281323803752603754015768905864774988148872524611191510334559106373187788310567254456637227155645021858836490891922661910262952517115481763173399603405215989894035623235822327310047973895756887284686983884032522907983739652863364987977119191421029694926341728757793832121730745994658001161879699881900012213993968340678657640555586506302262429612339857344074738180542382571672561409325705415374014637843223260634823315288743461000969116480373818120185935119665051799396890904820474357212515579272643456292299170972624644019820848928075662893058713028453006114206615424833258155696236098010515626078042590998225528186877453679870655256582436482151106007495022189448870353020626416774686105454219428314959604312631286260764518751947937470468563099883002990095623112918632105877680441776581109247110111438324150408948310814869622237654193469575015234148332764515222126585532106598153018163152388976796287451372264546696132179622365446349660874682730151308568447498607237147182825799889736164112435992436689521623480890384932378016662484087508342882425733691700708625514497591014674605830465884541542566709331577673132251858563765907780045663384953524010193570632920331510411315508965357385971890795326426158245957194859452595551013243260465491673330668857460897181923105067241305525223510796024807541946318100486477222816716260863312792382590471350419357545807851480901022248106138965614734717393921348827517376124665597758723298563487150628526906270214627842762834795062497840904238090139073882126610971336900987078619894181826485592027365018398942288768332701304870488794664330541538983565684191913402958194853420808513282315336864558734863762841596368676623957707409129123613616408312383189836193472198445557223271057400761697645753519560337210157757719701813893561430894734811917743765476260192978913199944154926561719909684909899033322403180388258326552571699678189218120146822657511436679910451393740415850317494066139859910971981413834307287342904380412367447101558748539487963621877227592309631108346924256468323150221535551973973091966378042595160487421163185997560747507867487170882879788187728270645474110686638446948352071963509298985266522630437086007702110150648851639673694542133429221254691332270927914613465766284169609393612584618879936928017781735772995651882855334133744394642279132798764473365066568102001672216270151458865256204309634530501077487190171364057488901554826795214157235390424279599890218113024167959485478807942546430826162141334335565505374393348814332701793589873680270754462671744090994831593077908178698489356921336651396099709566491989434688429254989009569313903954358096415911350613766083067542010734853665313698940282040325303986175347569211541625261119655614069398517453857070483200793890191044997217617346284247479675950778972968711966676966189691690980336833114076342113710016765857919899244525944140326536179217070614022831209531983120517903403741478639874196970076429460439174312912355149178697345238554709515815959172617793669124833798581667670248052160944682009978285100161808519576008565442199202949745661287175700659915114907473771015211400630941994814110835375477114564258461371625414466484667838707283728486459116180227887662541095706465234982157929942557226019858490720395848344425954644698392832120713212639620235491803250566166446291930292983080701573174689510940400437167392107413304884235340443641121040052286986449867833103852092227762409406639548334696410510731625732605812921389639898896397756054840104128706505605977403035574607290336170110681724749002220063156352454682915025324724970571658903703835791916014864800037542844420152872658898168830758314487102650138988989084507352896217134648145142971527911928628295179977292845128979432243186398044380268341720401716424100162449372135796743189931063104400559229068225947892014746703947063476358560634231305005299794730970923362705061438314858491550600594713691322342400338593245951987677432288296516613295458273108904689847581481154800680121364969340430901226803610396702437837685240364400918897810828912390708049469392316179152599685984115715527803408509197292398537153291666348375628607884981481249641830077225178965497085843463072041623850154476774526648662332069284135748088077521751610113865745761645857027603210266976140727294406727847111227385349335187398811014346372004176256459094084277729798490748913460316956087454168324719269508717204575954854978717082073459985085067626644898418492201951423490247538303666884597187482654329268537976233332000939892004305936562193273334798615286695897943304410702235505819163380688953912988718403581490499713370648560941028844897973473330099549043069938916069073295778974956646853179318632037688551032309013929939891777358337240639365106438324444076963976222509303832001433835241807428617796072945000274427433356981100786085012004452551456140995816150969177970842241218626773746098006314228029403586406039181761671592408619383966904145481063891511676716039586494668535774314865252439349059226919187808177787914275018868873510113484496654012287113971826878469389935678763818382319981401012152690000781950587318334547011668900597340996497381197304486871333278880579477985523028237401842154491857897407372983834347368456526167994122376009818624670823590650405016028560587412512009461017022226805001613690485579251640932697628538054478193939155733732579331216784123252092503191954511987215877273729211381187764698453429852143645245734479599844210593532612952657894616593183202893263898417167457075269946787415096588209554636285292739808529594881254716311927645139420073759537070018837392792329627535481592010950482274117268305703625299910369140511314876270518493567916174914330070968574413126857812550502377548497632441732286366625239016839290029065086526392443980440470562350294341794302984208719929894759914766232344399019370277188633395384670164499584396645352586769801679843721231856328093437525710604270297317137399884999682997920994782426618165899217515149797279187739687473499161916584436107098211140384300053619697505240328674572409975788442245774638150197229290851162877379220617890723007066571549875303965898885930124973408186917206896340303942506566946364039023902907596161554622449627413735232358772148256272060684951002773231658415233935482696813293249395879965978144565449390268140350565466790410962191306215316016501109057164245669478559594029683104853375823800536264966222564555720166629921939155200098227861955397964548943418633599195190238625027369804012386608157862373661969051977371905983679924647727814110680675753497979090257574109121853704290078504514585129895056753410843931455242141106517771587693110247217626720209465805471349071422504715479309264564024639179926355718059837758992707787533747395504070659053319536939577064478052499040702119304626568989279091292154912662013267404634849010015934375033905093260930287572185171500799744350312460803626339492155914026673742633088453807780496583914149893883696337465818949921590693036068262601149313426185848818194391193962892419420899726265967432394208930606281855315410660400202713577241651801428816313617909427237486315707343983267450870431501367198986926515215248051794235226678050144708078726867321534003846198992823952148169803592775500813424302185452334909541675133034497285025966333282745974046445328976113386967939652617735509276298637816845800297058802733944442147507419939560327136543536728990818310001675275647975505223061654588619969761905002324818775132941725051745363014469874781031442624255703604707664975456786732806639443718314738809934530054045406575463316527882730608575775196341645935653479269961116251794683476447716669520818245794705286542405285744368639377752728878384449847125593337341415301038040699941651182160314981376804777590765866620471520270944522497662499290371196991209688876476018444457314312834821023644334083781241386868790811179037219395700534889241414373652163468531915592747012626854779873952798859652816195367579545414402847861755602142776485369084011017859040003722649623325717227611681292691313274054137873635027519572051049317335542642689583900510671279993533912590932718511770135038442023860626740551898365598434476954601840278317193509547596613410696326078826187886416737220517342758089089207909353920639435329921703880942122236510861937287101682843448479035980192956947199737913312300938335096596154897820351995745410941501244463631720642170057469396763742233806296956973363137607340498533106997877436477772295758927341949872663005297432252276538325696771711289726954464652358167158449406128294292780626479283359563692586705857179107435822030926178827528861469082281245857526261774561558377406460115946611016639687730068040078811610824469588357844068853109332332892061006033120380676914950000718283020515307072960047286220037798482929718508259058319092750280285273263294911083068556937104083733816350085452046198094405095570952373819068800994297363979621007964854697261547392582377587610020009541948812628292168492842336460864543790176681094844023538823190490144737959588617143894400670005215648418028265654957711948539573749106485903519856995515077195260364495299917935374208936704474607881651966412224741651105003879880323132270343902116842174174465098733239551438146559713063511634062572151439495118442945112002437893108235765092251051560934040521510834397103721943620006790738498406620179241092426093222204043325496021901368709722262420931697338785567433157793720325792806454320933777201937799192863770132860902684291361319052422077384197305306850138253299458930607205115631375775755322217968959318298780905940899090311589002700802764044914077226392282759020724308081270442419334360202907484215578709192995687923252734203109551995489317150603225381060804638034115333203063245015189439198300122362113595159645550877139263251799787371944108097753052149441273388746751799909666674274366676026210480243810186785346598633375436383129795755187961833343712238505934050013564721113884764019310753915435748890210122563556509526814749530691329619729942913565312967627443394664512437497709171993689322857627378271792549894532746759966121803841905543142320757495815472984608190652923502109182317439399378307619709274105985901171956439265944880972059963528644287540521792719613430307232963638130909164024633394360153166294970007021388178124826072429780475731590012354358618100947700443663688614919450733630090031631385653311431648386402364585855872069121764664587381107579182074977004567801524832991340397316770589792708061229986008190344713729287106946970928412298378100781371568894046119829509459154972714384625699731361180716155871726313857486295955230518680595302292852862552721579094141680344173262153843111155417422937997193031295903444445168613878059312926762996245990869930893117580796145293033165703341482727236494310756977505624179852644964276595400079308983863066547249163540164617653063322559757082318607127071104965311423767199881589235498723656565716902277635857063044622284400751553796673910426019380692317713952510360458810388176898063795839913036490735588010627095736403991465265503530136227479901596279053332309037540222571490635480935175077700398505209841926584862400297702895288074875921347989776336207313817367444357743206751957715547799209712110998421697974387888441694100431382188169585066973446435174254617680534370337877359880630503241017379935007932411583537069439176555493626273335330158524410640110238373480411886613934033940788734167842943695507824160266355974550416013285019415681275298260208653855280157184737251144432064724504799440374059731940730389831709300529515814844973876183652549797088832299019014304801026791638479722218364983937642817377693660679036755187641041588911375303314089135415311778576466590665119340097820210366650093130230762159343752520006891421703602490760873585544802284089280128834941038320624524617437093460520601679492547601940103141151773135512357375662939378310449984314802787086007979729627317385370934372738059113759914550576410444281932185557118919778923626568504539832787962202671945059556478095622962700335863082193681161717248632467742944614620252312010215627831792323639080597558008905244488193470530517802848377306995841003412398248559860522826781580634642227350389745689885387775718854900697172740229744807656392639213945492087202029403774612310827006630756335133491906520725297066034964327079427429845772272284696855101758077565930522528716037743013783643085171113339584248028907736354488521268880530874302736658379547922112647402387479319383223781560370679195223929362137297502712915232979777314045781888684631265514899175637106948545846042118678338965705056503942959883755899364820406100112213622145618071710553532650153001936293507043220878822300148902974174991991848188828577423227385147421715387667448583045991810263120991507833589165667318479595859397599233641747180674264706246111803303871548900065242876221533435604485987173906236066642298678960902548709066389640469150153024136478471910230318292503563301454838327329628335876655033295980598652040047674257385553611944985652696187829289107200473332158723401776952983566480607865092878437817665824192919087614666198694157300512837119925815955167289054809598036402470430520289069116635587483732157197864275024583867353591921064871147512127716549299189416717055594175047803097202200275034613327867708332276425893453210122499351650408806490282595249900892692017192200616018498575765879051491628781451984854686297748079646817829313194731330216252550429751107484643806905481424405502162265261924448673351734681900552036010942387814132104482018486435064367396269807527169199596342827319891886926510857217527633379279716532918175235208305460941104062910799047521973836430148524398115167143342803904459382802643552340862461473014977963810125077080656696415263127996220177166829809542772137945102123797904082426878685030652615497729802237009321149125477525293371736924646512879794737028465083970448816923763718195202391006800685753642971631256400092340136427924989760058165387353937485677309998588397215121561362402177553220336560083315474927374056276503101046471190026593663430134369846349591581104218124240552312652080471583011659526066395682705018257898915306806852229018324416766083933883878663412678561551131570563479260321828529008793740356487936744526470683715514980156893506673494176381418517539930023905202748796847963175978768141659441963715447789396452397003054339091300577064611206386646876838668958971731432374364651721373607124917023581740214625624777416692634912215815356392949131209954772158919289449122030053777492969615388021098188209405559924735502067056209714788972512050842521068410696499026108458514151654784224496637919312604069494445831478818088948720590047794137030638527653849314337452238948796447342245575521339117117540489776777571260892259540356795842238409508643949855729605637695869973552138271389932181595327094855268341725565849768244495746483058103788834177986284524283945719523375553161536943008783488124678215257741118664358608942630066574986241333952087924624601016781537663013753979368342221113043493589199051206673608955004122498781345359406597120543643480736455060629588506739784526213189013446048150422785084479903215692632031568521704608855042300244327357210221510170124719564521919264823952965443232659542044007559711119640541859279401395799675415495299589376929707808648023366145041879890476216129896284474050833560126184188992547510014042578633958406787069206862092893600597044637058348089314829493907487302078160128708405384159860481953694901290103547928185746831639612716853003950017271618493917374392628121996960779299306494806356658819831119599567884456743984341559668827028902650592982804227093278855649965002300266644825393895945267357566484739379167876211892809499561235579842290907442073619185965169548433476224214173437571890858778349728338894175675329414496650064776141127479459692744481931968898117594258445705112631406194851698739045414296294861741385219959650164234997371637514452168343224085955705911191745885877281063018336831603100476328921776127943805102224797989665381710476652923787150611032455488724108909547385922740696124130531609641642491278585084226851389449019666029246623043063024856480406146521258641622869522197410136743069783520172631388749576628916001261082568423870110126861760343649910136296233844827766612511983833291231763497532261668109050175962884283873057762120577075206954635449855219047975091030203581830737736687471913409542710570543484817830229603961579578294861025139245821498229283974926130626002950539510872124664686458946482774252633450382411521158994522202284186427996290572351585641494158474288179148600139964831654323171489030191364775252357049131423875014401426995827368584423823549014288932595701689938815121857901378761240792653060551786829994002289933196130786289970590634061765122855464114136650013089858771028250439139567896122999528283697362578650194106595965267180460298024564757342135594586934519371924300320824815649925524796279094403693804023447910932392092350069845018687404173874641025656710815857623537592783629429797232701791527433707510000367606475746518746964087859495907181594113154640885789875834213359011905849895382691094325507964683275686375392891405944844111043355000269816049012048541114279207033042658477047261327368039335072678374296830634852577034422480027526100534407690732451171293721185788271907746234781316932900830467257058214488737242663270343318249108275712492507811514109243789979210284614340920858728832321701772810328121748808727139351129518028075190052467142355030308614010713436174407628759186717602290817358792684608962382373197217865012751288792564250953897029173130022312459351804986817364929086919206287383449553816749914773671322204766364378637923809574008629703365563104039790602662760700993014126806483691964914202351374487758719107517552911757842342746154423849904840830849861777803421439434244253473457744132627739782037091022672218628438840873112388410603235780288629727465811136533498996072729403612147637269813865002730857770282700769472039249915289741220852525192463952197220527487688763857229603638083922433301958339046229147117425092187224676948742757565407900670872597781925849243540080408899481070074233137806827511816434273285066631096749288755581584624348766996505015594067325440500874139863548827858625244980628167066695092061304802860334962221359360522260281040748306355538921897923795299372135888815865832926321134259094466732975790182676355704564365491188085633801434956088436807875791635581714503287456401093860518730407010851507564861813574488940436091341515115905578860098369030268832719589423135908396064543460955127418505711127722765857839870640783422461482684576428166452226171527962370555421633440312611964351217863885552920788836199230104331587362815885585380569166267992603197020907915670415888195581241043515786831572431758959047736962522822236819326591714190143125294705831529799732512064293331281566824431301338610295789173082152320453079621341435113509673062170324158721848472389806082046835157014897457284032020525834630292100754330003228993595899885032626600650000400733429227897067389257710572424425408376826285565225745512493012007492712812169870652301684201483825897717662451657347438616618961245866868307126965009037134504000982194592073689950178830605912591192116312425451273237368120798328077004958196964738563257200383410188465244831198866483113721761537002408338111060730693665676818307685929665254267712000240447291532508311415041290692948604875690812569763071771305956890093299781929070558996404996102806663542395441209400207449640118771648120429903089072775545737518689188837797373097624922310236024095113899808237655225691040739591185718198916440182673133244793056222783602199602946795860305572491687732861248203306125102633015932508010937910466144707873832480458315760792673476474961731476890305001815572468371605211745146122405792082782059246558551501298446454308649434868623218283164990644310906776716639569438839504064799401041467111430111274690774272328638604557346694446111428639573504509316646982930946266209006785853309643864077157028962898879372697521849746537589730267136853984525390752660182699901108376282966314224764568018878341409674571259782191821210724319046077971714533030148645760947783461959562691281980407360292609207149153243548170956363599760746337508040520932713564249548784901678277671520068981004925654360456166607025804157902898429471011287767689919166489646360453652457564029573154564936106165789951894460557286146086677810853387237283828886453193082909356127384035212869718415098497891616122645258073923927878819070598833255229542433251896696316039774932506067906533498271836053971652807746405542098416433222924804791358508112492969590837925101696802403012972411424960418136396833500191543650042756212283070666225543279745539179011521136467887665788037452982430991582056739379474026435273627149927775670828992193362118676229102097577310646287743849973521494664996620445490531253485152365812300708219608639724366968475982133805518268553465146821118008241459948226040827527038127192554818651181713365726279260013090535814823335039519030020958621507637437871545482468282357937424602584042537269671417574422701884138336033815057713340423624274368467723833198702507166995175152793035339603369493969439173475159923969321811307157972531562669611268551982642039001802975503753938468914772030405841779410416031831397697172522114993979797799517365017990529200052713836484698954495300239892526101731842487959441943210239661624069318687206417276546336891299827005861773384964533091980393156025872007212992853302002529330037826723195817289614841143355731353510020988178383870685821099851085455759947453709391203969443695812365593682087406601124649197459312815616680273108891099751556475757813272569107576565742167909956746940537998921059744027095893407026250222067745148765850904792090864187830392886818277891715486740081338568142606559427258927216961103943243343935109916798626035274403247331378118564275298171332399553255530320887371443058127565205752534790952507952223678715655365228504815994596916601239369532625783295916352257827934218789570898660817044371151719969257981338558503053146551998648496885545227105930747432938995678845137240821736720951137556932052143643303223005653734804484131268080172201672134950723657643569764735143515380832066178287534338691771253620766171544123753753495662967038205988835516330372246124380864930844883026502452574220345922267638460784264917884726076281752558118360470592988016353680118587245376978807640151390223810853670269328941486007858428080379925343530375200124663485437416383009704850684156370727695958384631659934116782288599074135030722260813087684522261278900449476931411314138565103936787403359974787266803598802541937617452694673017212990758636815636324555838513412487661289625596027764486479764905500946334734148682551658142999723641187713672170116369356553218067030900778080944206605439522490684438434382868832485785171021446897154661530605932504604461099070657117335050835832461511209284253241513769285222340693991240173588931320319473572306762358868672130422268740790443487719531257289074460756614503025900750509470392194255983344308957744485949372737347577982724868833876357327301679683820401980482678657697786517477198725102182860702529711934855864550878821526061302902966186224465590572956503933621317414778533491979235814357662628589526407336827049587714629719118460434987649597355944854820896225206347935612113137295369928983893199350233400444177120228526669371147155253883480523832182805611086323828067372615401036821306552200792960127060435759195099636478383953845529620183338730159560601408686446712488655344999910311813695869865880638005071958197489603907087012224312311851959879154656211580635366053850768398469038834478652738861166170111895638586969534865494502863999698269677715982161590020165177408815412182605631847877917818647784541491828151277418489148600862574042608522491798051370734156867347483602447637108285329914087174993858480856226186212260294860023122177468094619126378950261564393930751811792825850700289092947168394997794743785209446866692366600143654305881929239969782337510448459783841176598563109537542795152243497729497803841422433370015375986113929084822741459675105940588309334152438367770315624607380455418051020535991517387289460531543063514015363678219583842085368392949842724892793469471886944622563624275596639157440124450485523282536965818347539876942948179821022204437866831698551491425328910494454214006497858314565854545742009956024668366449008761532179853018521341498381483559994005069236160588594482216055185768270101250063274077104153993268033311881843328682079462377523499336862753059642207435659131154698469592106868572478586916255967876240271743181833268733530345224474679310383927662543224643404452685049309095245064979172627063696338822376978757228044113637222476147897916420380934224695817333228211087005280307554366479286039570321473414137920083530824273613311921330038303846091466791733970817100219900062243205741056494477438383533282384847708703093573049528508727069038963973016277220924310572696018331496209746806573005197785944379370038363074480811817020399796858808338173924164462757837744211798074066554316003917343986147518309548561155945794970766935403827066547999583785852870697975403846233342066429902783780034129338562493016384234646048204836346889139293797441344589044703407395923307574102654373864981533493390911066970137511918591797688541916541273895653602370008517517137624536229671737783770932080267911790609648577287612270804092376852434294453049126658145477733129376406796200953512733881160430084763154585409625486054474041733224511503263704918361073772553145754957129647273636384592961514277188308336737918976166097680962233868323971582255807900537574821095989406892923885025824488516233418719800442209833634769242075188290742285528652375914291911339808307421271906424407285900026214683245158921429774508467835325076076891486180147333636648023866301789912282280839928387027768077232547567353688773235335976293787104771183152434645726267404629606648685761792280145508648898724326746526853209189038620554706089983467916227933918142417836595141113880167244274036737857734316872669499098839902089338907899162402487053227853275772542035109771357489097501757974156606210228429389931079997677634012318867286167792418294297884440475332808091462255361837088485227358892831863301078679508707462439395121660207572006470635189390496524972987781464602171228761351486830901363071433323690631091386245499201978547344300846425766342136329176415970268307638023405384701166913702328420708765536011673425912304705971047835461134445052012000451454813159913014650822903461179973181258206610600756240331858742551592223010593296329089931370308826326497487797862326252504286204048035342720034683160997821983768835207810448284110737143548632894481377634793047574554680914225913897860895225425043034717688431717854135939363759766594160655085341823614402764675116937092107165196399469141113487679451216422611397135812662426040863317972570039600165444323545330633923873699423117628968196798785072410133246325895572883344897483933283871672946407211761520194846497100413685160320096149733886765465324369279328589096487459296270544531628289462746663743064100896905541124065759267025956563152884936499251869554010073525888623299290960010642927749450605858718642087111230240877460592172795345746947526419742952862393708222267858880299883886492926554642366293861320639938244823182523233964950201386655488856178767070877039968291144006566670649741437103579214331658121387485919734142605685414883878641678902149117254819709614112714167798822335602576656598300202646647567761214928634224320217864824948726972684424622320644252184033076037324442511545452667578415839084871731969300772376634912870665615689822447104287433110711969499466601031691269874523549270829340884249690127890027530485854476491274597104942459532331832593826897420529363329903195099473124161549986904999696803756552157830915321433259471227371340909529792430626229198031440892314897617920991269222903732923567971744316730759469732799808092823624166748171910163838911088181023590556884379643950904584851173056986732623717582131350522138606883424652869071074068648794832286866797567679791618552866835104813076819956967675778699828131663695325767076202663937816171885332507470593197836310775730075235620319425905327688730550819231531649811569010373898361478657726610651027361896191701115405990185034046409379358755567160148579938723119592690283040775558368690200565596022658459420550154539428592318979141976711891647972029401600997066284209524819872338597747671341724080630658945247125256984434728501976903419238687666422465570817168547651511527123062870879056600482546209905415628253406046544838588972957864774028778720503688090507760365142822143025188292099935392773946075763571724670581761010690224293492028454813945227863352760421970613869282963239295180421361687615100990586964902015762809096122065943412154393985951614200342257379141335930846362094116893592174807386039999077244764540782781559717431058884720138917338206068620163243578892065575290470163696177962562568477822694418250416513829435466798879322092470960682184801754679639748123577253611412425268567887639718188557062635544691143515746779450634752216235237543453705704261169778365291274415402696153377779033487496933652313401582445897864931511838933280327516693104558652408789342692763053726422116092815083367257121720051262523717727961182259242136805751664273847228248579555218422491563765608162192935807301135407704233500299982863579432114093710930709142614025356729637723576954711537073197258593651325166902332359412128883286206478636870338487389318245938870380492155728517245194279608197320502563148377061691763825501379839825515051134518562629698971803303452048094042676841947934945011455217159604868834053448874691595790795055762475845658402667704262128718166946576704125079676570659153018963673216344885971188700209704480825682199147712708792934632801681692574851624684622434377436263512426646904428121343240700172339058551368600060142672502993380867760294101211072474196608231292294691063088390449793267436958668126679663594326561109374082211540909479763988956798105004638056474526747560343390864636252226357174517543347111954376650384137151937829512863220912365296143377334676198327915076509139196933785965293932936522341241000930576723820246829710757867998049401657586876002749173905856646482878318033347644589205541938578806696691472308982124530239828126083413256986491833686463717864250980209341599625298773204456236517739370827992592322131080065503716136156300296578399347180726606871784087633184379790092481567492019507900810241618598012693977616158979193191450903579474261788719414860421904702465641047857027272270604080191700663294909200344682663533570315647746420892081315264948024486668081096824370933642867027645331010542942949928020446953246984285940196755808283457139435032237902288514580516269477563213591618747886397345368943643638846308271315909644135616548656731018362795593983866871929480348756870957832174434946287141980675781717754487206341268372619152294864574292253309529689472445019460353889004669317943530229992472515179373442516502551811022856010436311619599261228674210222343365640781886900364585159876597979811311960197154306102455194867641133743374633137889094335299130977537158909888709881581063105721566530791731307127864875353132424557502305168744432483146217587693054113993545276130611374473868184383168141974654071718329723723869943973993614016058292811420197578055958818267489083249428568603076074108774701114020285608683886183987054514610251557893765377853220534869619075319071527515970374884137780322835430416933874072038536132977046311539004899295793182349236099099740764117894146670943683402976880685245782148237739299633260156021715699245440039318903736172138327790743218575268056307650485057002766401539224722024424464255776055673514992155789691652247306351195719942071175985191826804743846254827659544235753024769915342079382430670157419033056731987156119738611558836383463668962982040907582050424683666543429471012149576209798894870752926654915357641534255211673830012732620396207547322273055440007006649264782529554008467184248212556740794566290380779845553570043772968880155100566891070311699514251453380224326884966721176825828001158025787708427756224256318255401491487711093373427684070959442477076058342705959072294985512666346774437430514517834274007603234066621334462878790659946695511278826454024657267767982470148837083429470091592424219490308316940203829474815388662750791764290895346053163943506866745136788597762882979680240732244397608733115449561986545349330892469425966922305405191304176840808464584672143588805333751828985346084591479052423424611639156235319871146911500375137823599899823926963779794729031114084199971570484152244403788269681151752713114668098632626649568835449940423693645360935268101313846427054269321138651061803218156109615781544754710912048893282231146476765404618903061373224574387149780180316216559273534905077539951185924930902270159893162822120420280000245898977631969590130657760844538299984028883676391554278264235531928767333367329025580201354237178755209157298055593656340891934470359644371328938488271491390521783721492929139844390738481475051380514484678117714491471112531128854866081773056533684183268303632569154022180062321327392357269735587192756744184615630013354402195533529390744884694559783412303586884766834847663086930639951152028719457514951503905387951959557541791466033952687798471004411861341303715392089221900392855250660429023084465254291575492409429595910198753705899725299834759484582405614776909096174712518116011593969932501942827138968723645805229845879714395367071432741726285361821885250004122695751509968767485613235193388609753910536043109821816790827611154781104453781697790831096944979108925533139130492839462279863893500583258856449921307385635448474333559513463382593154023052745539202944148947422685237795721240267123536050607526539322183731518213727260504703645326978244336800494103002640640637711486390116071914555173880976653336621215047777659739193644010389670365301611405566682421706676468484132641847865098659124852397319670205376150292526438165202211054278421251010635020885364285240208455753722407368871605495980225869258411682345226555613918488892264699783927624883567070747917073616317956101318353261031252474420639819271210382880623065431900475567490347769888984100196477747997885822138657561110263053090038803027796693629897549477082189157265223982256673311703316931452439891947586625322199319686516113298065275425523432870644350886440801699692034711763588597621851450197296243431842774201296858351088320989086215926180842399953985705505443860690900756920349668855055784542815870783774163713412295243386732008223610434600276303429900390825249342461778642470258886009563643779339100299296553088811709381424273309975214572780189093760633607469052865824912866548063320935911820663588998246263758925513223843843227883318297633108371650570706552884869103896632713349949757247331818111692190161312242501031128573149304419112639907934569527987373358349458844359338373999328048133822316702282432377969485715689211505684565424840524363706306580851752824097152614650398737199472909310375529928025568786662552669688500628714752261957524127283231690076150983453887141839872310497983082881655923300645529122650622264533982036370110755232479526027600313616595942620050381302119525031950562757956419987875235190771009121220637564496083081571226157830321871163066110490482017066908546824014750094348515916781839400656639687589498365460737238651218273029715826551897795162874895711048030054016784762900014390050948654709347938528873656959889170452909665100723629693797259345385757944535573349075025254543595158455891108970028643335636047275439161997551174561927062741902806649674851453510391425574941557673474950930966552921209752536716025032462645006290020957897295917124902485015489014536792265410347047915095814913732025203466833278682889002191716643570102296026744175653169860498828567548008364500893387975151214808189040592568245283409475413842593173186129252439850283558186622062718267541745660154892067301277173388153896426522372909442858103143984596778410985925491152122659796118688717080075616286634446132231794981701699050419319538005399711560500756869146518575383546915962389523455559581721971177566702652885691979023269035306083815541320216190905121318067798890721467846042867720880971387132606208705938435193335412315877945739640745819471834731582183141581316486263928390642055137114846965673466210437929831652995857099216583344718636285402431322379254683550424098935340886526317359570119943688961554327596149550149281599639005943657562587402113224073699637720333731631486656713408376543746870525717781130269518766416043512211965450851482013197034760470632257872429515918958407433932881039493286270158390699882213813968666027148253254404665760577449635196591432704026875837892649628526013593665347257906254800227658142733840287046380902183713609198366713879017596977713934633959687747791144427275163944696030153326679185398062805571507330260663903144540498878337966688381132539435730685283137328878329852926249437776935526475658490116901591377533472975615554330700115693815023105861177966502359919572883523151458946151714857275843585347208441928517463587419322179945440152387553433413861119739434434346278607689063219101164474430781702467803108653659396140234762794757871700865383503993038529888922056300523428359730342659249799310050769971948526113718386821694222840084614358208275131707618150582128985675825979450790742870832062558402977457867345797835460662936226541716848457853126549431416125747203246730779750165831709845465598603954503408853980680479983908175246831186697681026654159463338917169646382458903294415273853386860044809046129387868057732283669624864550010477683520999842215455583345428575658037434923086794294409234249377776229102833739492229027559065447928164006110454202695201821429032032971944746165906128810008462313686999955313987880600190532182652899598848344770768548695533586822496868713367929691673322675642913095183269741396192591275255441254494622736547960608494031616983355235596614772931935211995586166019819140114677796522600086191038605639149920342233720824755671612037628116577714010535102583929108485848156947549185723440565264313981548281181945493588506888672324637557416191470537174716265951448966667441578788478466718603126176499778051973866179179414633634220181145871163145095984762722843204084077658772341764327584473153399916351267263134548207221600876149707947563173799860040773368006387651095518170943212236938998706281364160339373545561998091445665223226370344616991888735986623563262685462628848932710407012604153044237792155170641096666712214511394724067299028337345405199899874844142441551350226269663170020987955190686613004990963785938455447479956178807897818997200693344160847727952516785259741216983665484687269255453468799473246687061281481773181393653295382610087959323572960810488726405949902636761875616256941631850460907987766657507344495267599831043051384884626609780716663067135633815156406013493884376016950575420622373966145545791391544504269610924285859404255557457281085106273844416386063158403421120484078947026337046543014125046205701736407442756741466835188478179489767974859810231236245699282134482167290017225043312938127569971158331457111883987030907995170562096472076593169287154927880567769928945150789322125495463624835469636877249914506773982996551038512250004783887783412773506663574029428843441993824446170329589686781267314212904876520521868636618893529627475359569656738079774433643405255416963256797781897808872782655369820203856019447950955498023159984225361325639925081082560980156867043840631679219938282157214292424197544384161268024241901456494187148303427090349979433678068274160339356374294801102701046025997540531336738601450060280857770086414601726644456319265903369838922190231731046785769023146649707852567503170150935423189584270971452259111923027347589863811018564911223965291471811520679674693774643858760299580440608995656558857317926620989414906247196929769465161667733436313266540856412267691661325630981903323340877349515636711792174899664464289302144160099774881344159626271125544123246588763269155584757902472721788215846898830299387261109231595592040363231769608325948303908665424680626347576177182159858241554941143335375268854228083005148021083396839702897634881673077917920716811146247423197374824722523957469777043509897475149163940248605298771591118233909610605864817729580295981518291590862127114824761349148818718521378415784441295340269018912005723610005528085045270977046150935971095665591744078403311074309618701656170225364207479154900478912436133004044662256953697779699800160021021417072311853929995617807227386570489255481983976252636236054582417894681383469998644840008942019918176140400579340845222868086301644140562191615809780800947353582478068157839369543443115940493325543004678597413444356549345012112918232243316247500067480336634514186032642249207564252291122027533646587122582313109496997632854331917457828096106926348862424960494727443900052838759965577316453303478573449065634404376695084566291515610786892401887656492847690002502798986295612552322730392719688786676215685089322394158533303454672848137752228383785278000458180268443313420866385994068455117903975478126521186409125304788042592276471276340142400324529819267238107111713270041325613724114838265294459897215679815043035497646402178552500901133076757541414937290557224638584119753726088039447628981138763355017507406141654199274047147927973304330454517967470078165838987461608297879408637839165256348033328598491589772702567575966297209039962289341522643332504419046571120644001572382003561905560193714280712851768662602751826811572213872076915208171085579479442481388199351681058144618551741002211987278042492408967776342239720646204080977290161129204782479947003437691856272592488832395140982204144049144248342232229087635106106335844275289524167017595023462433886374443793546965987596289847323064049080667923881092562599257998738985498564915964226049363185901474373979188543206940381733759847287162926942121203914297873601405144891053723316533544109626998682917356840970497873606133885724303943512701294027201539872042576044682602875667671197726558743246666420459632462961331144541365219388877374772548679706867046021688935014496671664085046885093653475846009217966177902617708279032404140658353478467184603902255688351210344200885235606095193274668783549502036636778014647608557215686803651942673743649439249600562951345369510413293630564996090382429697500574399503045682281330257692747820074873675885128734519389317891198621955605413019214278135227673836157051428559884471886194026577046253915228012664673662760939902132384497599152779362845920142383372267560773962883765413803035166543378513400005125389878422030003989477006216312345656392742459663072652913511644200874174301882193219087328456788170445457484251067908604128669723454922610188425972720547741908807309651544017704350898974863254186275115059136699760093509603704777192710233181903865793487009155429223588924194243128432470441322577157087919367490322217090842281358286962904246889819733567052231212578882846259448774051918005881205602995009581051244030624286314157636229767094615033128532191190604773080422964685214732042506115486388191245793809010177578302978619196480092820411689788218517308293913334580205105899864762589442607622420117977129279958147084536438761457887617038553890158002309799380163748691064051922782406493269629744957622405243045887214964994369259778937296414170991098342800359183734417311187909549917579181334645368788770900304996790950970880101679072063690302522935006941881755802757295070749581348796777931226763722335159596750168313127636601055867193965272003663757885996947372610340139684083824018298285918443318874116386447653898625150834580614551621900583635768349301629430822528386367671858031655783067107654610259641510637868378447362928756074936809264340187702919466474393864774891547269909941942417654509964022492926499059946946267291374520077080094290896870049221941589601482518913618091105347143854151005270649002440770280670026482713905437570333534552208384147036323717011859722458027747796811056498969818566558458665776163038698791699405666287848805137390649707968001252971686205677254217308147994322582845845309180880919045526673331609319601186384663958518836281343042557401770699869421491322421233430858106548135694972129734148198656057156957281874478936192859444271560273322621411833341815555067494393619540753440729454176474767424038495495144033421273275948577737470720577874662141955903610336630032172891596247347265221726560354726165211725018156271029156132585544144693824287792392237259452482565911442646933849259754641243927596279217170197482018993424772231853956496221613270798162763447143849673678353027530871084941208101802006676515278193448208201400735514118693494945535623235259069132070094122303833155183936527994985231195812578420913898933871083880854764636668787094868473808541454827385740115771836183668620269797768675614026965956137666402620545967229439354601202135418621931826310752061798252335165336272257000193095373800566931377728412543754150729959033551335584122422624089851792069128847810711946977993022266513178399287905681032994779968960024877653368384371668284256921525522823323249286767906011349870066700137820581941326178655827517331629287762870205302060940842407422170335104159285582004517783439804029519161152942684138061275757777725412740946231942870916021829893801721593639448741648486663840277182636567437766179954976101637298077406184332332497173158205328159768865911908046840380226539834749499840658003057683183565024119229690405146714776350683154037120610308977205566808626634813742611574819345595806650015613125915457623248296001125478582801331485349061450912411950920378683020089946500263351388244078382657908917420198378583688199830275322507754657668521287335278563186962262908705160775158402232290427830886579048938334529900713297340736041425336839391298761696183586167708659798229084226031267373607185289157256553324968984040873140979303801281286412096844714958612830246017890078348801980649538701492102452728126463665333135770321527768920491837734108668357468349306141668110602676902985770018492178864293718865165372746072360769442142040275221168101603560369296909653338593616381845376027832129647825108795389732794431487356822336736970832329559239357558986872963018398048103999892460214660729354194766124290190149130873809178196743454157950851527645299050705475083323439633741996997530060515593611674748818480134139289796665632140621665294597892146979365431529964138390807881004637840157827165616122411146654549331604343278458434007838522667510473790356359946419357922061479593457594772511100072130928757003913365545719456463775812382562345428542606908145971548522045725957992338939044310220401751213233779426352714584155353094040224761308671688653264616992690160855324609863418529856205208904630898435664997227991713296294287731861785241680111236419494198339028929469046269906257113024994296174740786327042820570487965947045959825935788001363899943553548000927190266627840029441283133720643082937844691736960560309856609470558999153658069378684022912777066639989512368240381405911211635589261524381438618796021294993962147191426703835466174186266320249606676880993795121693747009827924333548451177269152565787280423808372494897524289664922533384834751915268646689647466051274803950234394604739812841930916820116121970175227278085768263589810492864130033537444250534366347052537708923295399327827315657024980925900526151432351619984861464417319237606682394122135697211297907840967356632632140302257921102049501610729186448136926110277068486682582397895566175697968799748080933796147724617454931131287421696018923282032075557323634121277290526861623495720346394620055034290935091000558713623530782080862467827203093929294871430589152847914344405812683714302584867928405406239517425187977388903686039656523929203242819716517450982387166433730909010544258175470765421732535658437928591023108309525113284283829427987228536718864305391274665983644441621606648589048594057667941444511406293047540620937405000510999839997213354641868917294626250620167949567839807132381886750982880547590507475164892599596314049587104770138453647754815014577800483023599540878826357380718825093242288964657693934868489789770447883231221164899757871862227669578801404669905309306379980132581019117577638118446206603604921121047433175885600217859618214437602315078648297713556117562178354824550234199495985709483641632368181243482632722991095260291653856059752092626505028197421953372716086647379743416431565961103608769785115112209738538583696363637476991896044968247198172411043819004880422606321354249007633704964106531855454092389083270865304601284563578066207393423623867815280771109937898208452631510885435495471825799368866714338187871959040091645161461745731226111422330938426130027575164180962195516815452454864924077385775403443166406102615928947493276526371897797158401308884432096487560903387712934944614535853394725023724392168174399275490150869069296963666619238495117228220570798619590500249564377015170666920162536837337286691053524527687547919040992838766684937194323696154130318620968121942216279394980457300596178599168338437665260938439444863445360749268451843064834583363663601580115605449202682909269856824663367452039587027863587730816127842571674531028515246732503081505844144150822987939093922979074791573843908590584941914250299835099700453521105019352651528038001107442926227914994718545075271965519309782036918209905657150733228482630404912539543856629109111003659831307973476253361945739942531209675199975351105572606366190004486786857440841708781154289228993961091449238568881120984022692087610059024424905779481813884458880942473955660016799920832815529998702671156417293757482464032667350556875714442317312862214242517547074851712816909150612216890528243750754737598894110698206653628137508573062060270127905248859283510401525335227000781636969521628761272179462927299095729534203084837315046977835679054455545025174604230072514713106216831807021352831172548487023926884256460705500653187696305933704656183825970164055806362136796608935414476884841988053784876205266157451418745081925711166523295559643174979392342598629706953974612946776882926736827770116383404464871204431378339578695932822611445670289045116401280762291662952528521679669647728293577743949371188281895777858357430592556625925255665562106710222227174984617614822624086283523829702051083555207784658013151677383274326912309166877209847394816364808901436329407262102516874715998689401285561347632244015818864976386312958941680117007645743882831816958463555341727297615240208067050808777128224404485839378964545764040642839416648461648785080792852243008183475245092029457149269505762349381555769380242439378553318153530721238554537624095665836979641910504051272495224690643977934134179773126411207626178412239981514263597059700973149243390985193817474617181295141278033868320052314289162947739284533694098312345893466597645775114471151612554240061951289407275939307970716686665065658592318914029688156702348909326804058178110564807342233337415360365461544732854185229325632050925027981781699288844310922190927234097926812742253502632165642933157226320476512489727691388373661471410177360575811627512431750727803034707560852107535839385925045892669759830968379150058589403396562394515030135473969011170464364885274012326726560493537195468401555583743310648917699708232590730089326568201305834816782366552816514224780853152409115111669815708167928640993547051526638812607097053809811387553559129059761334487238195276345320477180614353578514086896270040272723936524581615962928247707859480374238943104296071358569832045028691309966944437350626058550390400575791352171980571020079326980199800237573571498295914049192873997786313474765963796680598928796652879743400752260683922518223769461516706033239204438109265871327434585355425095978686845880478780248967332440820406026782718056479953891011093034503106267890861191463361508388415400961218546397016734051264687263161869935137322995990301781424545974121697215489450281851589167151439571335167204837562652201219355044620976850905586362070851261817247891599622336983247240861769361018583197683029824156900346853904809581962987488240890914282472381908124908994459190445110347071535552042613708262283121110187281566499634433301262964761672217620894126949744045428681617084367059686390542720949051268163077792448402605110596961512111474574499320758483468283272563345873666321907199000854225785379154479226746053020000659903019498207535677754306900027476608823471804157014495419050005672268729965576673507645912737155219435312359481381984164555466393096691167010793143192827051115620401604614078830459920985921641015386794898014255708734980270309930589823434832704885415509541512857173789818876030604072804189007829027268554073718380500044099228852190472256397919969577990371755452045189067080893964199342796941665356227207383682043800770993980487181543228750463196278399892669333352566948845147923128570495756606052240449841360899927715389546056667280012868636499593934263155671136682408406748766390345031572088365847746379763222222261623701493148294618094087347248380705277158595607343566741918038828353115651612061343705836482101279448344693231830996647049162835790371560668876295608032988815018131768215907310801349417633726206212821474709731924078761762916617880979437250043213927973818447564452514199025325071842702923298846842483824331486013961184652857049209863409903876779048328988621798214920300354997631510066439257235833745971190245014749195169598242026427406846846578190087052121936915398145979759250289129682384015862059303693355638873654114420061947271938015640906416571614244884937397673487048742702718835901281526783075688099657567270523859617479394511870553286898417543313335906974518486119720725451048236829920946551426957655732314258233442763176596257336532463128461591502335166430519536908259542817794797409085770150632019606787897473495757698359636757758369125860683595598121211717383410308461827354824873930229080846114187077931010216501050916276369392595293073153689089449344952277756570681171792963650741281923179494343626180338530038699204734170131967435723159148750083835415683900720340285360493170554556966064094154448063463179507742875080751749702074008017310262921473090344756234436187725889220561512342660576850779863703382634180499987655736035137186549961323564479585186716871626936849035830938609517414692873597254545166865452490671297094353268785925194747958093209413441838775301718278098574819574713228179435015598814037943735397804387217599240738557544346392746075414614144745666858489137337953871313901067210743118435476944151588166117443643578564386093442435298238429749699735515520239861819283714481799623632375501721860199929084989632053582247227162910214205516262811194633823457547791819235904333229505492065758084641373184746691819092987528728461356899425430638944796729151528391351843406257482234823814666503650566951399131260560538532707436388995594749480334498904293790413214406595146618877501635861455310167137684264619216674502263686924280215786536260335305375672252138282888316490515423130274598616343559479511683736873418367541437559997359658008514344521342461735384895091428652602730598499027035806548029777764258402632075027639353291720629480034566022299827781853152887645264320488042142410860271193123652051812310072834379496018054631507760906558910911215554490185644542742525629669860120051728726292494600528219645323531247844236664394968996841932814304331150505120175905367317047927405451957768756353168337016578340312596274189504207256681144810399101724855092810423533884860275211676951758004104360696035537332247755492996309546528040389276858726781182464835866705767538306379945979478533405528587129492365904659487421393449541966938869298305906244024701665953531621362306411374066106834766957394416766584329203522299417049294771845636276113578984993066876511877941506764896634663679115537699969067326084897765037894392897952442903846573756824195727123545818759061517959319886153374529651747095128285791960639715190360464183735770347559657678353850010432881788746182404345158474387604070207839996941500248609089113606617433963813461290284474720092541084408930606688937109938098948427587493058132223642906801378099590050675637009269664377717636178745170288525723044342770429595925031449448211692457948995653625865286993948284320453760306274253834685330829338904522906002565169601467321827689377345645822673514000429464735192722032911104284650381691105825791107089292505781063804408230151361953015512652898160171822020929570326823294668439188537202577648407039693441768990157289766014814046761225538170574240245685147638829648398730209991041020403341172672849682479238362959066446082899246961147980803665330896647248858815687147898130336139283992387977121999124368866331303866535235940290426244298822285456194231628633236915411585780703808228421346487963747188233191557583199524041220164322498530322307341955982056716745159469652678575324297188968772924574152162084112158826797694286835004973216827224920087064566318214588985207242258398473942147457413255686319814062096569289975192956224329921819662458605805470965051947304981642280855152468766446803043824031060790896913334693428855369452102543899457557343643555288210499918963553602337239897960091376219218951009859595369224485494742849896986914362633667679259378589925749020500171219958307179370577480305899577492766960019003018541017472641610133192289589024206782711265104933720195018563963907922480334611985775112491090513913703278204579529323650384620213514195509964664431303100084489290481339109787349842779239477297347578764039768023726435860990988913094496101275980768892983220412485231569680193309421324850929049349279035201540012515278619251162666444233884736218184443690596003626973143527943008133094264584961001262469569661676308761781188335220926574634421821595770553453317399297932465799858055382583319196410362416279528873681685900814651587372400927590171152784196973364315685758830037747163901590816467869185867964596313686611131719876687490203138767443112316143994443143969384498214198630058496819838459249052759081368411918717483997548815015592710266375476848774460533476250701820795746180211940978644876611853584333567983736333580896787643434076524715712770888762195000385891680573360858164106677885421885383232539368202629803322669268754270524210537892266883282368414009041796639718774427482953126946021770395406423039165336247167086417281950304437561195580191465168944606145135152557881886402923674193212865792381742504350244821163845463936170727016985032737417502462067483108512291747738537247586605096400005301892161757874031292311392164143906955099569739203401837981797199574575383229262647421436222995732344581572059521214673411759815673199039433277066326512918336457386000947722226055767118937449010499381254662363136820192901103231229642736020309072638084067645014802447425705173980183778959404361035462557358687264751867001522924846403946476505715357791411523033131858059334534151674193457419930900828119968681997750327091478052327892920520992267329625538396935056469787346981523108080244524455202803065858781701113539468866134003093475791867243588149409208470305109357673206943757832813142104277945619741059222042991974149055494975742739081864490629161251617161822138534548144927621273819537484488302772362697741323925826075516490752589858293349551639260934851567434165976845640193512622600383314699586422179141030680935395597892593245735153004991276402000043049676047918097410297497967409971287565328103545144492678532902720887579873186452399507220613323559924539968795631152879732621811202891858422937291679361792510393877309350848990531588863545864911693058430489654588604790908772801417324210907771642127485540761286450429800079904960343882352388759089604030773071086289971755427687515077886420327137284952958625581269404193166903660393460805665123095058007464264522090232288752104305222706718116449843415149778373391305100532717249580527085959873181022401157442959299665678356475407731109220970868214976606749170290928379429588862448315509818391261694009307905925434219042953762010279479952764634873405813163288857973867012314458701143070209363069922940218403570524562717695606658923118290329891140993374860228638500916276575845776177778390111070800058142311049401361995547396070943329419599014177410075693160166733575431125542245350827783742819997085015698460478257597612690106392333811310805885457037921020862104252572783413010790902876441057367022387038291851218428990675211367860468836594394745282176935539152917677798241990541029365514203350020553234796645824433054002162911559944972404245746603529897276775633756247134734395963702400287435142014400636724230788668731043068681779111618194675281649602890504744691839424822958672140338394176816056136606632091274223395626867736320539651483864762663166878979404495022340765055625258372047573987687840587186946208229355009318892089025977274651044611857461150945493898850855424615897414671152149067441930808274083380549978765166653192320428972215460046413537027813189086485760521804017064877752270649920572753769338624261143218318926459234244686165186636997667456188988821288238945045067314138293856902576249855856597448731408830469493969190836712717741335497229708936678201853339747351974289957446291357831382777598585236699665076439190853637193089315081188085583774888862197017273529101171338338386174467382065412083178782858611123560624950496462613307694315366454247014367530794222635749170207695671918626021553855175182226949613280433884648486611309142850967626548609195315181321966053770078443282126785478844400377992420241806029349442584069438909381811925998090987437421250192460147759748886080918247497283597741447824670053393618278119128768168939007065126050086394663484328035749461560055769423429088611104360420296433983337642506765632003238997063420509554625729872056351970123950007684895574396322163662207539735963949015251971415022641894002699005253868066816422259896359675569871849035317872299015680178913999544517379880309932123940547229724495869905129692974883896625602928463065726762034047081493519670878124220278022807222800254494890734838995884819904482064556446293466590361116998962776115752375492874429884569190666246715209846680219991529015598110649176937515106559566185261259303644317651095380408715026173976334889522487965778183774273918668430166038720306958450995145296893136235943562682376226149331446528651587258031171909507974593949779555469612443038508708886800519651818310699848480841166624228245590063586044001220792806974205042967595309842732718017434021820693084088361843437742158765717762875711744327249015328851724848333662683871110943938245789745373191538355878143793956698754194531189112442513100814774306983873032374499231120043464147710455846143353131962495830929454700683508978522708792149974814320839899699728440567708724844029913909203285641935806287750544582871287976190924637233468868135669003364678869893691868947606539034946894834115894880877457430109666579936194995267509274191085539525241810243085258212120792379068011974420750870970978921827179963557006584488739327621443098209480238921423664627831987474865442167232449311140616660168508173589600968957872439961518736993197020263430126047248824311809706725818092476632450898917826842548651301393668824179869539209165288890314500368520128424639627352465944808320739620378166456495500792258178340834693376923533086472799223041835277758260481491047945174910022370640633919638728291572329720555560588035170320631944803152927708270668510578903350901009753123526647048741463280628342326966592275874756245965693143955874404186080317966815898191259749817082010457308206958523451796473810217998237563155798725451279758712224829699036001292398531648119006685812593425568505707278861114677745146679825567291180853174791372462713671397860092534530150693714436493659133522016206161117591810447312737039955585357066274253777157057413762689057143070165510806173137432908763925614678178757676446438939649657955907183319934974753822889957678504333633356088524017360443529889641761565908240633543248451772428365299411940329257971037892255356189949547027506060733001575959853060772314602636945257681729969375223288698444939515687127482774924776254865881048716975599529876364510752373532779589907451736117495140728510392758374130031812502080906192115474959010349171032897919708584755144743884522401865895215715677842345014843070752605589834131404573734876094569420499215035031588161335864433838312310305746613135167663479877740351074911603450717682503878371724476116708401248180328047924888794871650218934984532591568586198928481975412878996631673499346707657276675506944530335100627067308164323794754854556804481035914386784740693708101983167158906400346889436881134453258329087767328615924948691816706938666712733578514724128663280409064891253960590789743635581769156294312452095621465745246270618210220257631760167285966381991467071192461711415498878775459577384638604535215671714366592747620699593410671233763116713911293438929708149550577394404631801484810920393882294570564206096110408873557544483579597062928101529632046339462272524255260944781695871414242908852911294500164088289538819492973220784138611732328076493201503467454780006807575391673510332735475371627710023180103384081776188846133554747709405255188904513361114594431763986994741551752272323310263709310819689462298507453218884617650776199003128046232193766919280859664152903604399291341057891453689362764659029614377914909557008946711423695589636519323503650769877241646382764495099718724779904708902659167261292044146287658296861590243062543451305449378346306719710967112294358423756278304540781009293892115081005478034199739911077035157124722166245775970288741087189898490746947186175286381196375002532438628768932287295246548289078282511816590516760133084918355866913310434222105118092815549520407378119175441513329630680187871996137015142539983963721763833334115298494420975132455150016450980735985685555811631332558036187924792839459154407651459797870079044169436911866439798952226937315823490897307198066910495341180155949451922334650901563383075163155976094140871163093535930938106312993251420559439606020909001425167444741444025699472362846795966905596261939698233430639118383947375557490094690273572720071858801507071684792837198974639563579499693104617042171150550583721028002956554237506661928306344607316967236078662755485332012058681596340804530000592578434863669727938593634711995645509778648263893771259511318197488518000403450906723937329370572072676978369851715034747400360792431610744994339154279807479745806804152993551199558839399700831852224973466108302491137097267039553390644588433150567497926494450922255488433434765944033058269802190295602923387066683877088312672971008381680845457311259163754420997247142783219467902331061593523389111470988575419606511697592266646975467479474626544918975655030442604340874866010773757748334592703682252202740698836358118312914696843533140634373875164370218052261322410633323840696691880337717386167354587262268482929868009735685411391090380173497779374933905243221974629584139650799990305908457955876374667168045115449423029158868760547583148478182540603024443641165458604253108635882528429321951589947359571549680630297953593883015402347638555310250658979636695161723145522586598364523437117984732859872572540663171030641534124163949433458732499769119611758470292734087011435829337013230792034007805901385770333714982423056726882251857048375920305002633418900387553937876142444724973882055253369142873860242480661470649863169407855776295561466009039252042137416107678565146433070145021114754530885809108927873341612763437464067239430292293528598489597026065232478368909377476028653897782118845971359898579747797501807905391915349949795426242509773928877706018568994329264213892804480105538438425790634064567583009881750881580263368466742266901858754934512176521379039472727585607790196211161474802977836379748632771904334112036838411404188115722735715431294014207962652428655370133975749926104723976859148243603499797551615071578356631500184716022174173317871735573147241833427701927404800779335121857954541425584073871587143911102702074690725075114782914282190717379191226697486931854756023700873119622849033378326793596076124141594782775967723528586151959231865292793862442390807844050107634121325100773528320539387389336207113834443629961384798609349234835473451710968470496162010253112209661177731658595995091529898536470007554645322399947260239016248927693100403240353201693587751276982260777642302178601249652883606032543053387815348664762869563991243825696655911016899370730356736338261262831599230051323271072721789097952405684213722358239949748381625135557738824380645489803898338079619666011403348014272326964070889302833522393874638421271317940334053196804223498025966552639058710410336763848036835794991186242493889137601455346069169481205665567316704688160231402345556002144924597637747864694191331076779201669582756390057501050014720205957038608675726354135704382123705919514450131004942530269815631579963493114649990276569628105664915097532078201493746851497153500924908736594263568771394113816490943928380224326066445016253663175898342596232103326437777522634495495662137341318886787467819033616099908080341954962364213218431089970087289684004851690545890508054796616104894436865848699498131172800813785793875250840939239041973225899449612679342800945366717699732238016468347341244798699187336378081857329620038661621776869814704364264819731899659069101566492897244729472913105591165119429944179844149142556758166707103368741050300618294677316825872108878035637861302691272809104446417818709292610552789573702266333838060036808145743449926266648428458724482508701986556253533064692396311073161096088586151568706681460926090190291467245795107381851957117630314337185043899045574979808094077233934678456233876358307498034193851748512824425499615769131111982107024010575134883353145410447417538232053968475814438793891484463036919791343946499085041505485947454781522386267574573728142699748617958784645918168868365092895362592824116303416054546999171738175251664885990811535557489328270450286154627722743851109357625468522958517710370389448468670695748226329780231869042325403144200513283008744643597813908120337050738843225426158350832426836529026008215622708236095342545400754486346504369730145091717824391551064010001431405207304757303593579566157204100425790229307379397639553200140501938491224938234471717209846207147336749103269767660299601271816992304477952847878522471177825470044736625259227897095347031590657245828115653195135341427582228936945760979362721081771320044772098913857411411474012628492404522525717340914339057437267578065038243405583107735973455074419185751606965514926311030993740368202017666487699249080691066184317405013359339688462374933909565177664341520328851217731337824293905727478082023499298207154248951931188559004210994965905239324701787757617663338290519200237284991871067617975333169199342870951643010056410289540698207996409371107232547518461121060761663644540939996208013857964692049577286953131098957200561846321856104082644190839292876652076698737672682302871224981681169550379945123452167857256760038721883600208731704698487510403570512088074706979745709001105427860731410981695216964444145299714999848093394767958213741990246834267906815426612761798803598090188190184640902079421819868194188962600314938977200024680767666898761454779384149518660200841987654277535628992542626710958348466584874006264496205216535262518205811878917649382982903647290709070863880230062444928978141916372998387903295916302692258129566891427471962596738931772662144459822362344066786696161895967114725038829830068710976991523662311275922386516118096125714186540075423111851785144533491111956327682485792031492887520731041369504730378241143898998452131557148793026972026420185577324071903336712752689127289776502535682476686709396081558295773917271035162759652594590184883789140669875325779578200572626102701501967247857103267955883080975733389189338165452486106119818900520228363448182436927324419307994560338899398210583035768796496876641093759304292733718277814801752687597386560473493554233787942399440121840341131314621185251085243389314826122494985764339644141208209909205625816186344902454415330264118616812324508083885878610007685884369763779598311771780141560568323166340982947892179398370161002101364298869417580062039058883608202879284856920201367208176708016514719530864617865653363095757919976040808592792067563817197942241386265648005133467391155766764096649809657761847416195458797723731223524125089427759754086571998220096529755125806681637620144497318320530242969815648989412173802122704875437488064072831074718924740722240191608374133633069029515930915203296672501434575496508374155533390447567665967643975219326757351905392599504021304781158622535786366229969570790941707187939252513396116216315708059655212089608564406560667494285291158964298433955304870228083574205685402860669139407627528512533866356677098782062991117579210442646587250557919119258641420499256466566532371466954790110048373901617813912214624091859902617536587509246760093324555940218068768691267878804835483350268775776525109591646801967638000131327244441191836717712089688534334757439956550036345589554247259587210810811503871958338301411057773752074147841905787456176973908278553132987722295757418184996036644702230717642837842345360593954923574367097355379030478456596626852377205087579141120392216693426632538724256837219059259777812084429748056182108154942095455075726354099054124321571316614404320778841073866874103023170086609280669446830368987726136575744087958791037864035422269318146564891116158361848642396998768337713809358235601076074515848981250198787946352390932063929620032926872703956291764269965183367662958830633909466784138315982715780375240261839952933020262854562115061127054301882876123097808362734013985839048129372358113033303117075449569833794461020943765788421648697628510908563120797991421907109775617423267650583562508685351085544197277011135512913011579333848333905182549577311322297129173520102581824976291267713447585052298273164622653770624708594915403248497315455466990069547275723869596448167266956322077229905990691478503603625676576471977160763522223692612140875880313682150022067972922956506203821165897287715188908963976372447978026121267183085457889888646371684627814669964062847609399836842207664616755722566845531399901852245942062999146884802608422464261240038312232841020017615068292866793567406141380351098941201554347572403183712523250378871202607172895156609174521552447065053545144538676087838639157358669144023590359603990918247285665478704255566387410678013677353159566663071538355716637533366336354395754684133113353267697945630247706468717243057496591393637771134168511864119259731652703335747630615721683358745480843136880596094271766239018882229324707894448721617461092161395696513649717410931310289117362642796453380432237930352815589310610453404503711852498447868153332006099780867914282864646598418484196409447185237231119467487277862524282630159025248068203428114550941133193070027180676349880291099385194754238863392104325918817004986335108428899149138963308129808247355249233923562613268401775057347970062560829905213156786644379327276814537736186832938971466224854846518581270223467052065218772731990592177610606921532119075259944888957717523961947590022941983516961009194751105075570322837813823442877784963129487624916849260299630237797704874878643065157581319679020295913234395210860430032436052545253783701698736662179917315041913992167204558142848576054486877283841191643636621954431857669037020878454226485324150984537485424081773683865097571249100914908831574406748349314061750701853582862546613527100679234816637091244806572317185380735024799523121229512538702345502597095262947373334114189113635092775536015819479181924104008113209344056216818950935211588028263579958613064983773825741261830269303291616397457127757820253686884554176142622878781117412555890736303425184854419495303246347343201695012934281541563087191176298836983072702775483913822221141114447354619730275851564884458934633805550511847010651774047330911337143217863099774991177654565376725105149489584882909597156958477541927735842801332647792520414378409102633452241167517018479368193159285539440698693705987905083378272788219014515550863761025983235729568617804712267212690384458523548207562815519475497163315851231439128444969392891440304345896631404393811307895826848999727596488326184033537750209042428174906015397300065311966609489059923871550951377400454334159334370635045227190122024384513844400044859342156678912444610564905097990064583448803384417676880481715334138227957611701145611769906010540223020849465962536096015476900053453199417457475225440651004021119390446652719080001885248194875311976244069129083209040473788766724901901485676468364107811783320755682472446011690957305927687330586278634147590769177546166340096579116113321950070813641016833502779052095538008979938846173928501885999298173180368304268562553902614544853639083665888359484609964943392848004640500112314074757577765682429531184332076658928892453017779188289012002475150805722204548111115427118720802173995768446820968746921625345112076600375865420832743685549407446208996407702153074535939128740701692163726133489099334502128131701289364549467905757012055775871939747615603144411699884819115091105081988081540682325099200739770427087587308050400626408060068752248277812322406862248372711104496533691681275385035996947902025039024845625222013149272844186645750205410549985940364146671863985528818564451664357620745122738475670875249763430060120144556612059360330557410063378141049260429044371467472829849282099729019178041226683072156556139041095674607846952682746019054855025362972563670397483641710764830162824672127666301063473220338086019076656712466601329190578315357325659900889078875290465951720218484161366662545784186387049087885154567288753910898682215066722490971286230553083752051756750697697396906500385520572349624141316223601348378859579927104194818708743735259850964586139380653478870791820656533721275089632207283038210783436930315735953679757721354051374210965965196538517001873541819139233266329083785990932034772153404546597495329134588734530995243718668333668994003116106255160403576135260360634895885619161531443782139079966525689469966730713793839056552803934660003617303227007747984857727276582112468245897639079085966779345164697190101450637544236352154827913342012138140232841362418693872870171481108149229284493960486467415101670330143341534613494435046133373034695988651735969586744807861520936114378982462963006764166701269196832749862422014553303265830852552713159766672228743198163295848010575907479629167113359154315086668653528887569874113157022685544099439069507704254217705252258150495804304639786902422189868311305167133588969910935470764849384460500623468270434953439416940662442443459765149954467934595804200784141179812085614325218189033873999720297847281842965044384094710704769791611561092107309818567611925841762151803946193244481896294793078831616491671495944389738602101089460600225122090544491728710282214984740962962670475083077676652255634814593765055770185119530451235486728880425180019420123129985259641269166286490640123861579513229342019526452797654660274501040481497224934451016594743064742670167043574192412381803211006333769863753072754429740831019650701866307963442837242530485930364147799103456612138509879685309995383614759695980684058858053634993345166289295408716314493976954742427260277689152344668164850118192603958813212218043534939964167694979400656206434550653212476398685422780455133985231077326205407209877743668151283574701941031410452613329647920905693257651198975925265630301236773204308599497913303377499118611046276007344828925487962231942330949896163480916167062476795180129283105796585676968840860318718204731279612656611250843678127932844770870904943625096015907992934493966534875215181705343844771006742630605837588975741287532757553633132332340444988667969683402275876725853608153928894708210740088556785606791249884421509755564103117270008891636095636901862076311724912048329460283822274461983472560681736359784602043612217338333790143546863679100029598362110069072741459185630967089640472263991757514353376391464146857080782395470586869909996091462114728916284942685224552822717212206381017271761577907248607698778070794042087144437260526139578998432579379499477158590551634407834061579773535447368740795326941956884447206582098057817836159019155390101496426807765371768416187872299835669842491410779796932081451850360490635451737030533853749279462852609745009182848780696748958711959921717124114504791769159172042392030314131832085351427428702289911495076100891490178005275567100200934257131594497635305044321931283851169055598630099806388304605811119206656486011069747317296572939440690471290403976567510931801376315833836996787585527396180946183499504475246873891891885816694291492417959809630628178409362794068016228131126223744202630382281404597839219356413416283275762352922430829565560623577848105631329600032444785822792940643745926474821609966694080852273099660067936831517694758244915567071328151012278865043797161137343806541071301192234267131971492522871976577084958806239957172113811579976967633710975452311297311637436478864270392526152981906699704955137714807303340949435327615953543263021387127712790755353598017815264786882047678408976870258046804414790439400537373137486994422139323929684614111834338257440233972148568403740191213669693884434223434314251131185922722453069462173221565748535713905185207194440958622742069099115813743900010196210326078595754253285686411437532067360079877236014947095559625791112801513410822978059179258878326548144760440975049245581342728874930079764898608675902309753019993810684137401729882568948969962762576595560578534632876202773224289510277216165428790535678553181917795312508304511561133981799514706213425025119534166305623196668488329364123636200101498558230954000343511041824548170258427391518436940175906450662048747614338044963885758383961342925984617546465454760159393917604825147991866754657603453066481222545123969688998486106895496403873790145143658375951749730848136549941934390545685193132635424056112894025230647245972441769809552252717545419448649664196989465912202887636257251260575606862909526648417906439226049181526957869002433322552896571521921261039640257431617714871789236547914402204139011796366142788486737892046270367587723649202543311377129786329977449833844889623837155973812141693981351138980733841518584976869199986155985066680426791271201700768074706980705593989809388262954229085326538487765571987705792397792164898377603040574030926117265961084588385747866055635464011687260201997635612815319743477444403667547924956477463618255838050025774765533187290047595418840597077151745298619105725748434150708209903253359870562966520440950984949576695331684085034979574085956110025696108769376868400602300506580652389225459502972849889297894956594567057869116486768508391383242802121783833400170387197667289086149611013883466304619785829165308663166700246156460193558838206745145109425082152404109734693295070402056470249106469941631380230094273157313504949167866822915857072365998829006999486944661661079103673459630320652829920391858565773883365137742461166119928973043065776726801130362395402817119254372753117796294363458356428665337155184933984941092542470650071565028601754012593337115484941347142742675886518659146540633109569632132416145936434356973902400905083459716620451404930088273815538784674159250178725842428825869474934617610680411955322082352307511104658790105740834740217590637380707517184429759884949661522886652031682240219674562643215798685541260325564831198568972120178377407974641015599414429438996161412689124539857071068629779349882833844036814110360065303678782132233176647521244215860855214991453099813083976127343494758531883688944720078975364733555317394466553999372303365490304269736496227095541463701907587161372449279260623698389992786611121289944216231832955815975952583314651773366946546669565487029000232488053888413649964794993281149107758538600242774163106472236865789743382767593585045831577840541106261985551378053305167684514977030051867176076453514926767528482122357911145803774408472870810364088537692012267238216633869139099844710946873365143053552579889264636249781058584401342858287035135336804260965291114292645440960494736477809010383845863835508947104285476230928952125365861583751896340438367816166596990259377626094962435029820995190127541486234941950252087760825052156635007140717847398133771959430055502951895149089458644740360439370951745902861901333312179620707863641557781442019489715241114190414091366881476800450738075059781520426563044547363351947638082770657172341580844719645009268234917121855738129656337571450680493676763985992678255597592053223122491370505676767277082321520764151416522792721231166621345680643267909412386797835983704980684998494662186070361001777442168448118218103654883015639442230541387565316851657697942850613606421617452806456099418215398965616458608736411432842638816419402429734202654145088878185769680601671441909966983127230158850284985271736590951408235888601698915306757726189818103525896786081195568689118100133453693272875321209550668820255279502968264343161241291624463726627076098932177158501933394861839698801304473044655323119097307628812118929456228716428706552140350648035153388184402364545084872248043215289638520996156600917364219960813829707858804812710563747838991814078265631058446250103578809034446487817682734305122243080807531482247810541074891137799570281945614356625208366044888971642594426544757012170845340783128333958731902077450852279792097497142520062112633205541882704834385088119464054635156376003316585542318976939069791963340437067524007610129541456196964091126844455985946384669926324111393398361105024406569271366256226366005991949657275969589394041231397690192211238498618663150770440141808753432354416237347645362553484383139704735912117138594528256540137347266655878978745480782772993480763601106825746002252352813765519715151920287230092508797823088266787303638052684116707102189809819097261759386581721296637028397301878283125746579038046719748847617294374904967915147676106929353202415523479201954439522864209898396411583743875185575277124330258871225689162839908079445845469112610178999709520669331443327970777123134410626432537532911692979957709943587141160887044555669318037644725401183251172611924041161260225134699496251311415195040144672207847927285848522623955087135052652457667531013548660288234679750864712954926765330703195477037841905279797177531344784921783175151869133149640878226064291237067728180639170130129274892338921907478619520846529810465397654609615356599195012876880085836119525150596818003983430679504983395235873867604407565718643085657690493746943050858223554472107523865997822073943682109289319496112513890662825034272131779995420330413679608955424879437233052358236606172295073770244138049621050059633034161691754866481264077264536755049399850409692921086604683841299177096833334906137064547199026449884751774182029673840563637895093078174738767053538860533435001482941750657212122202731414946973817982085144971056487357329560359067857928094472665061693932787077358002160809323805025901084579857026482368697947205050869991503763132170202621985373248395001645913257708246105156234845268302835831733287947375736754698624725078764908464203152791293122736858574857968986187647637987245536114463803978733975082669975338364761132561560723237846992169452185994452629884116127933267991161580582529099983325523625548306025913431682850929405610916294556279316820773729668683890785009274369187700709421364055577030459931341320939430652824836763405000390839836781386961355726318239519753541115678779781736687507013849439970770959575153945142876318890401209947280298179726472520719006824573919754744218245235914366263955518859043408822827528632493276728966201652126999540373104711051109582906711409295317554131648213008210492654976651009825198664696931250447547171021113458681572464453634552740540071726451533417927427406590771758987233002397919627634533146144351659461618305199366778195306382709876980957911748790404880195370790582497246541642417342563867837303543667003403998199207762451679969657742069781424249461042500823811245962204124205812502285693145068304560100624727667960256510828078090261675285691261097661510292490715478798865029469243476241587947311631430992828501525185925034095154087378964191307610419625029861253710543895947334211468130384014814735304864368252429623139701294244391964520538036553929154340876174816237982755336289426057954912898167628918841540313259165676937612147272640456305525691918794474749799540610305789501630201932070431408835555678987526848365678507393973408445812417525851929125497092394786267776262598581503763532047143178237321901740358497226632030227559487124215126356920693539684712212920056724495699139161880655239966038460881793316661776655606233154607970997093368927630657917402946529792229267390967675434119335309676826280187837856519393509455578229834044056569184532339344671031830612327199556672916002023727069126021665293942997511228035783442631587938274691525184740507111116548889974598466216991351802875085836234341570439227386627918300597526924854546287748930258045314227237496945160237561605925975239391601181808440376283250052259987685438758415007405202036723834469100947543983338487518162609762277218255100510336955935960205060432701498473424021288009397746516096393116145755383730766361522210622024523917188667228524890140310919024685287408137321545228326472168496279704939224167419623401022871661281278724206705253846208063488987346122560104302538360870616527913816322562301597639444586334047560796698150669935331721803557918909199122365499836259224695630993478080350693272314057713340642440861120292266598804943259815776827602371426811759052197289461015202407801889936328742851102286865751719902007949299128712730817438007948531892209476629788606814263489071487506459218189737225633498317658658504077758905962636778932341994275583732035645282698495585761827822758890893477447509664006241176794275440829940367403573241419940548706933743715791590617194942000838157714605235452903845404615666111212807270508384683822855658887125998586576893935488136223645276548553558656878493363844149962531727977794851131067654574857160159991184084342844055034335763679571831167466512495775902017443889987456529006531875333290913828238054661963560166026159022283878472442105347610184795428239093760505303307076636335844898358370140009590495521268211356146949854320110810018095473116404676433433409358064650700601144750417851012409612552713358535977395490296018240920955378213090726428869176148952059630596439899249894991296485658922360221081991166753326761151476524718683904922312596180470642251961336324985322445134868068779669628844471863252407718727684929845421617012807283505063151125199592470549189811554482942862993433663871323059183456801708751045241456494425690568151546596640181088682378540642109826595447606553622151092016094171021899830155124659228838151840791834620422295742951564353581888702823620943483768620565843165627756495261514262462059397287469313665827053865390782101317523110784100837691946602125831134399498828998928802322740121767814712268498079796579144233231635263116896992606527896669861000072693167904304772194758823014718342711229618379521764624159661934143623076487360184110807725974952632324619944904176978564776945665317972333465646893044480006334616748257946340037751903155787510740614809171331588790222218632499503948032641364924772689692852820708455320552712479774575100346343944841883013774871436963901131216321298968153375893015916029018864770515405919069556620046304232569495787915213729296970475360820240043619218867523191316162892908379826638731124288717611634668203876183229616790206680305186226800384809852930685134257048310204517900215520941979370345435892098928310871701062854634383093656982963855839251932510408417200284425637234149139843732757990272686834069267572160015293593086359315716369587107252487996876031800468899702467858069750011215424564136627184934277488595273348027488056524617437723086134592594077465221915494270467281633424145628155804992572295663157464523922257794968926800818954845678536994539489916896254609643192931022642487744395304139218120821546437105743114920781630733878350517888757073779210717826837664774241869028033140626660165185130148682694777129444896970977768104256298535798011188901491059699499655531318728356338797353910077083471118532789107621521883441384446530099988369521957566612154777068655447111542512922951175113394682629221396025447897765844737084388595810090096158527281587035809851865718076438400044403628120467232594515145798487242574973895049203624303678743113689885601555053788129675093877489042998690871860855370167448150928102938675018017243762596573157486558173804156195513331568508901920443049323451353565567976512134092437821401241032188762056062678572405427447837427907118717031587335080057228517438308046957083685203981920473157929751005137139752075344505873388291026788957070810779078979997519489118255427675218536169641762748998746929360476304112099885862047037331320809266587310052633795980658291661765653829278802202953514336772592521098092779230699516298751483133777550477478034531419734852865890555838982250286449099668585200143171969458887580503271893150710182611616027466501914300308455591935456553935952745454834405055879065715628892262060264183952942704264869263478195532725316489133259974867541755626965001608613003229623354966958376917372643369806949534649219958692039737622734555940444923645378311964163947457444392043658316728349855110320562641339129982903735130746994523580744061296139830723669561898291189684531093709642694840825170494606800443594084362401749439063347663487934049253658852511590073767580779095825033228157085794831061985965286557543323102676998330514974021293071321968602956006179258726533405658902465649222115095804863580200028947219598111791403669328793580401331079835329236174165904473212210136164408381282024445807407226930622654241057212995446081548418128529208852740815859700812138367886285566767571281744904815542619440224456443976328450452982557531880445647056490330835087854083857942535014892660393650163293133442855087659319045427321902605184927333415682230294331224214432636734287619765277808966520406582880003141142309869613175377299424217500048331499127480210505022825411773849303807426908004516260708768995220997359787651451429886816857485251398265777467545782181578591032199445716248041043718650065244660307377518781342916965717138438236678502099870706543667628758675949931372909974044049944722065365589201662376576945620058096463959802882359657443604196621731942929003428722484759865414611060271438222415042995155785323480401314914750230252885108780888603866206566043274765750192108674618842185982706499664354186426522492948940483094125430120978690939727262919291059195686106022154769463371714672181373274926753501594451867868793759664528955809069874925869292679722341479052718649247244811632163922947601649372612273191342852364567866282243679894311379915122371301592186039285887491907741242751682386326255830946190875842815727871498275559215277961032467194810574305453916459331772965070865238880132934147647250419435024279325906902778018575457773468431624287382843332055021758325425732849378024013558463204655360055228330107452802416839459607736636666894433138615332826881515930664179544746709575148348555702892000997909968373482699172153634606706128410659148677241868388607316726541184690592300596057176969577207370498848688230629606462256028520514792462961537359279853564866404964867605275305903665612343269165404656807173162060664218363101045504609850673997258215334256757094298991579519220631402757803287092189166689817141887815825649091273530758129934776072033474928404828862851831513958522364325428373627191696794509914233215401422998035857875116718036280911023044121175804249726123179648006695351587523444187696003366252150180572677686356905533928140105402405409928520499455096718263252994623902021329432827904815101931916431026604655984924216293297205067596684428660489818460618988335729199169494564389497925672022628967440044387922595220654895457033338293234884172119812301100578423797306888685091019868151155093215059065710697011154966948170934614701586792259553611927638084420103534105025299230013620112441954352594251445732917552489935042038772139625950244968464231494324503758046139978315041608162439854704622947287542423648273870872814821374084088044827948708390687242987790140174840515901992283927296000125302844351650438452280565950893022561381001045088546774386893659657651893332085376641555940412474242560862259197355410885535155729836072541497102988100124517076433800511237801705803246719166104728735831026829906575723538532755645743674818179409089918940131252042444308119964875404985813009558907669271042656085777025520762282028318495372770136779028305442238078553202932373904039802897424590709471491188690399673898917141169475939075715891092740108478732649600639301658980270816997680061680896622094092267445305385920173320957213812484043669553682136687102308967090468900632564977854532478597706717267205791670833631183979448665304314447784510352819399419055280778490144085925698567806977135037871354181903001329669520910453201432547942114236412367939111385089437417120184531924464420753013272183930599446000236863740053470045870782559983941075530050224706053013172587116935642208056818978373017551496691243682845662794599204039162018472235682364574619253473774872255742168946907806094342375980881965239499349128740737560505327492474411864082866149987290874149337581595487705395609711490475415099392092548571129806072556193013037133086257983921092499050230837851893515072786766549189228325706827475969206277791177189275674038264675110888965047090392463800397915441967470969414973519311131641033069372356993211409129557788211744951014981349232478904354967914867915983050338150785913137606536333870502693401944588209418528335570824101517380110783842888308317696015851957153625136480551331278155678540842771984650477391668167503966217196100169077743888924123698526745780465782581032219891029315359236927329734819575338756305457630577046237215386259486550019610945599619984909557706759409240210156206608681556610329463670903180895820220729449261209002663781158845976784269338343888824900704744054472017730797569020124653537772667105297723634671966262278820475195751762494595229376507040972843299730252727185364545985708757944211384978227247703763691451193961394827567473429331156156525433585935488551515204123874101971978535438385982782559974374855796059867991498709723174276651147111867346440893247780988644950847080957260467887723683365686371045986880508039279962169128644532565283766039922273975860126615862186597632855128719246577047319590712257079973915712545174270005315441899981543893626380144193926861577784718768807435375044606430465370512363973746251005739658999211672551158283212513536159780026822823650646031022855970217458206264176699288663887096783202043919539378581553242743714609763861073743013268152638323806001968640923236001321240208279877384863848798721536894931014420727006455603528527606749285459564286703834295628808635668433085191518267042415789980759262808253041704410497404919897950017307122592997518397824849827039340383852099370682557114662660833691969539568366424924656389314432746351132400854027074558655790634626016087372581454263952348052119960282217858943372437339590930118169654001767600750139846765897704540356279831134112151790830782990071655968288416801213989207175377635791871221108559450951915153316283181496692232690985290747385668161386296796285184125575301699131318189130889963224240988860099399049880246428760634165966661393081593357175248015446873576280953744094936914453546746514523144599571801453877522950664653979534781742740861222544368466183605058256527621953475200212902094659168888219619470801094823608671869635478566374555873728655517014892650409173560971447974081016747705179820495834808599610806808171475492337651923886893215164731902912358841872485392956572876638886872588128434442496621366541050088517578100385378143195884103381896664609919242474035266195606360666258673085253771083598812047892666302135947449904149490667560270054342380298787724507939230641874736893922767782659523321829332439221753320327296376666140947154806560248348266890499118647258626877457943907150499795536789630530429513393202476209071468570273764859355541398783627200512429221657260515502098366285609213830943227802936798451208656732034300319296124608030589018158530300983167643948301654778791438176698792276190191066220164823669486136069706775406218636989433649045648788876940308714287704678906074794190098482904747620174909309813483024390685876854810786248163883668392264714511500769851111937979527580554183286268065738412182798237899123942260789654276617292547072156254105883681804429115029600520171563312052270887126599547973121112141709717209224995202766323486635882340618614742066040793584874565248250010518745463185983226285957988164075628932805189385473169327507165398049080926115908435750451015391428763203462868310461433794834345944126996282147879825839309346900477940045402296066021967109902968803742981676467174561711105798513957003915745974782343380260895557054364674149971558493882344514583676138891759979349060249553307109480671610439363502586404298592985899130890001818876001444149526606914520812057163774752898165689592060463736129468015681251746550776775038688740876620446916533690474120413281424105166241241542572962612139158801684435758075601373935338045694425259834126623606833905516773137900362330854489599096951447965522785948287356609821110738886862221152463939566272880116811635024937384703155479849835200748685447783918265916894205869777010485765748573121974798385753435657993541377322280775680395131356970053173163116078963288514766227657540643750397778778197329161141306386015093863815578046238931971951671414998166413107991971544726996329344694868158152132121701613344064856529200391467488326575802391737524896483902082032563773089755468125201047481434384342884635018001885257805286467722978429582719350270733431289155112636238023573019734851577046651564061772785145023357765436940130374231809477957409535689196074174613304108735133646469941424135038794241524184501895295463882438085037169544272695990711611912381229590367721641586548820191012790166086052392707448942681124783817537724315255405336933836029239294918784753360416750243903783483056952201517751120452422508665392594520733481469368929266219563934972314519023431865254276024760863416447045351798989645017561975933211517373712702507404635103596666971117490581609011612717986872614246355305659088444900898302911743975403877062840798885544556086265152358613385988642992479914659538503264159276148100037399932729573258571617240700783469034488414340786122062773851066270467033346077531515610800499361993343689557667116088797399782561730462613953448907807234983297050565589098404042339636084314482657213170882040799010585334103359239545618634927498209838435096129893881563353116776995336124433735192211278998392735684840603838337725766985768356724029458254931499889797633629735858169380565696270062461049789365599156514706515855843991307134464151852545548944682566459609630992411457698531674235904098726882753624259387889485404204485923068184924042797754687234829733995051426164559633858146824854371232068003675957603730116379656014636439650919778769332369910705642775380376838078360632354816965631117009162958741028501683204400136911231510390270538507665695072546445781481018005243992295425789662481957792395007594582897363280898053040109014259712514074814231111570915907395831643772870626638519828249804012504102616488132737509134750845381696863338064398781078247087146694070622054180616297133170387995396744557680281150572317823012923460891675656958884161881250883589402510708520555086954755535376640038902089666290630254767690209216138444757084176150421855399873862823255354225564940451153290709409216630950956093279882257134800702638328433093067851281419112350798108036487425977921928024370178145526740688497912025032293438915485130283434460621984668024078885921850822155390204955054583510528085334949271778843020261060212403994160270612740251500485573889827672248734529557114687656056410882385584954914482733262930082280272464733934825679917236103515205862330748768587975391996441695656042508936044538532607710051856572818305698153157271684907377275176433194984707637952572458328323717752782959831666964896739779091418041943309188643799283744648126029008766869479040359423492873967907725984453389354959713233615524684597391188843947578030979287615692703314935428681152888151016701961620281620645935735351651709179111152684960495668035342520868586143827831983640371519914835117686434323171637478654983307636525683182135348016281913207411569531738696342922223420626073931270353606097887197523058961912047651748244545524396635727793171733910749488507901966767042335157365965147457829305764384712652969191888217747270402801557459272195333493182538467925000338737571300769994364622352039838476237470744508020308282648477039087936450029099929185302780978061801069474409740436410482531834496778311262012613128640870999618727999085418642036341858288255816312860862226346546296357869802659065815775350071500274960361199640951274032033307422393028599833662270412919278532982964101365196213900085453714028243600724835179489531028878860189100124996478561026408871907046688327542031841459774531585421673198517241478777071565854236982400149462191168367264184906339376638058406673325767385835697385879624003412679036269385570317017663807545231819909099826476031013275743982024691723540617468240451543516304316408791990521500228938203203502271661488583373503596780419234362787092163610462731644035567177645524736741287921230972213273618830776203344950086279125746049127426837344833782265738648287893631879863938727223505030963154252009298237445431636154281129202014424360239060091151657268854752851805547229675483767810909529597571655555426663658138335180486500044430700071988699649119589710350051559433425588852727910354644743103325684216570291875466944385522983438664729135801495874003964133989999853730865306743290237518320170503513933267694101108785395529706498348627903017591801488225876125607250751717068621012150280341603823562985251080698203397831002350173439452467569058557804866317211317850534527934054516681507989463790681177083363601201308777605780815785731305427901910472444899569316410850189462583778864760270761097870944984642573184099641115024700966551327626679949882192983798901263589429430081967146129916654398040447639609081809733590246993796867848056827252885293556810736695044350507749649564051480465382505645833964096909350922546948418787106535037682330321844462728461619919752871847701034932396866208633179746957867585081411595559017772456685818639139792858259569064328081020256852548131986887112847086089215405282646946975852834483179799702852298270960210745726061770736818883064474409091514173402267283360148265500526502291672665684898971907864507836185632521264353744041009837228060120250933613092583014469211362082098298565084734700945513720934497851009297777125800036903822568011529264951568325948988728568319227478453447691025335978833249756111306340057539568579742449330766322075012213484669361497885611885668721947376058806329639013476774329941505387517574975089387807792130081739158196175251800232405419845494926399501085184562731839433128231153405268634565992644758763040231199654698916550392931962620669552092194613668567644942230645791692908856644549002934371583624501284842801729221972324207352344803830172878432852824131955884296871884371514163725988151789525963905253409980850721353609250879816703135998126871999462447441612857107751462754735526995106439904230656393321210467929708588846052710861265137755322992202633496208517735738761062637679555007382502227655564729025206150428446792159703896039716159790077956635916771862646367012594168086855985240771309910138621459149420067493819502665152261833926219139168875618770044930644057906118947313296865072756341146645152544852533880597508543894123700594809136211953767126211875199250379882786449947447186685768282126840767113239151137488914562286067989848946088457435592630758627544714979224758342125645791274495801123472364974414718222473448810622139658599623965364861925389238382014258509922743732879888982973890704688965950310293076608269510842110851941762918214464244356098562389857828464739175706297895342934095362502653270182043448217463202226088140383829628280542504965230474121317019186299016990718226136838274483506567091402314807693019720234606224080600872686328375887040228081981712654993479102318255978352202773324407778585746636670708792341507066512224388389147824323222542719615962928443288801996157445409459503715152210722788909742301420790582558188096436860450571082848463338877212829320966615533238688781345126647204684891242055120842129666180430223857826336811716721940621064956403048946109438650352378964716109521405102695816444100507645279953912902362655416845227937849108616129143218612044752834773406814438309672543812413441283056947982353251249385805524489058988895151555773526197924815448982695567061946441489680148583807822838188697377820657277530456291024024018583999450315977421062609562922143386449756355214982126908878935796023393591316758889795903707132967947778510253813955658771214517041841116313545615939878953351701618089390262065531166884290949098705815967489293715184853386019105883981988907337839534271302713686092104026970630396874178922127108643056339480585779714161980979713337290472480804063116963693915065680172180678581558650055631014800587668872606327189350383849696466563159508444060593255497236548160772255956574954734754550773239491216662623976018558306932226334499278573930915164682792168385799105824998157034835492831690845610541567247520925951193639131037086287617239653909847496778688292064526743823752667018023732723405040331379960980013033798767765134090101376125733186962981786370582454184586749716065899010216813284532331122641132720976254017864827742469432664647613569113041799181650153850891257206394778838940582079279336197278194065863965354859776992385550594330475265121995055743498295032038128824693846052601584285385331926082113928377379823955142525680069251520432708936208391123295467727975504720603469530915746852591133730635258945944672037189719821029924570900901711868348335997966808462359612290335251517799212887879428321661989989990112735077005072987701444832070181303540919930090169085719542185458909127257239527092679781184767327409470452030824679269087802032130180731722999833954294687773884133321266051206858369142825346683118059897225545991904256837820825966671857819690391327475846915871075033130336293663697178994126383792109850171324573817166706474006063698210597601391650132873917473172574715234737531087630756793915167991507561233147727410294224308158547267876754432842293850500815060001135327584167126258399171139850650942567455194178631489672335313517244375612167449356827895934405509797199898885485309095964253150206565865189756167937572848070725239465475042680615573021855466778011839998820570740803965124033050182576338325243171966994870370840995694992407482488851301825539284625053017542802234293785148276374303489413819337905172755468122875503420297850684969762723556197697610378374670160923964221156040182676343683242892881394922990587085804157500611016845289257836156802621255570633295313199120930694419812596943975215427282106711320789466700764291066545013849580316348431158179054769364461046566365623771984784852619141515466213197010118823982442080348025454314516791057757731861697547370859864601911109408382558400496008907742513112649439348618323543866632505100553397195822131505499802507599979198143586292024163664788187717557569435460888802004434488406547530526419833198305622799806840836571593134371748177502435078084730676555894555144549049748616613147665028788843314725539169553177864399945758452646834127894651152306411679266341451459228586147940712635628967756897575187327354503893916698696162987876327726072332228674269653843994381819276582591815628332353831841449903013085921844292816048199539343838813058510916052558377858561671544476939242953017172209916879360191929912357214755545404804717985401461875370927641719317142133103897106704605768173246696306340776173901127178437091304914869650447179235263582082902131782733236207711877274099853629487655284115204552069963288708449407571575862593489880629904169515179105296647661115364580666771208797718727470495912716206824928402470784444189065595524929114782883233404723414181969643295079415108359001396384096869059448921038358321171276488874710993611305316059433295059702259777003658262277596483926283658958815073778697332725238874044240125039124644623273662179597675181089468680311862730290802091500416332535056209335257217758178639881332758252717055437461361426580462812488658760238643025864921031811158259139049536281325724371721081201412413691959122325726348735505844564414632489907058613801706818240512744064473925992106526706724771225640412001341301033267985963457182021921092644405749227096786095420861961119904925077155297641686200601532701736330720813214143538569748999297115805507345053800456168767448176613099522717208117435279288973089073351147459223072667151113502130167323558831202151948681180407111021082479937880104588872536766826322424112715254841844363487424253793063368798757264422119885981346880603189755122241649633147607234226254196322115764623087262077586136090825562638141585969274546876866506204941362019577014330640382112527391839638738330500745208964934810044846831072329403910575005383722883600145686113614742801304967076358788609467041593379358238494831742414704281018704140271779179990311076287265753956496573250976812733400950059701769057447077674676056691877465405299108864416000059481686899772003550423296671963949851043301895215850974904614695746282577105738723680807328726840673655808886653179568699870922102389360718278298018099361211802794841349083901333098044820536863365763801112635142556204520964850684823054208982997217139244533685298970035103578531833753859787855790533262195823290405935056566068253208550196487020055043599753695320824386782665859282324848240818262780892973507320672711570093524870891582746729232813477060444070626512404096241442575289855216659820600007868966298318178985399856158586452429354622562404412628019595367493350913763249962216159288926713937975258102853319433726390990795269220403561414771901319925729342310989189548953500456987442044027628372002689613822840162682916097383415597244184666996629827441871782625873817236656077216664146565790389228467269443757716086592806524394172170502977369947444034387403305240511431168567707633594765274882432061423700148294127398088895735181854786113064420743291052660009676326264933777338295506381265959758462312765645999081936131135398686041051921274376659796510990393123651426155282173020831462780972065723972015005131454148035029865614154554291848209495412404064778675022810983270362712130746807105427725730327234586474015055445692852413385010908797239452770848992590677520443750230192102549721557987639901778978798324784639333284050272441390947614529526680309618788356084700832735876897300758745700873211469633362108155834935753233972976108362516527502175464830090049595157882879954716170975065257728344439502377777856033169693482888776005444069240338780194098611115461540455214293825740609121762577489385972145847642319643344906707306500993862465133211994734857000657917178662635148232804470207996658938054817690359295336611427132505187620522324654440698760100369262040547584113483165760102492148440999961989563946195689238838875702356440011165192086756709087165410721814805714312394308873567421005254535664955574977942945362054753694758464195692431358539972497372283082437337402981721550246622251158086996009156517184464978682852505204748248786036911855655133828974042492512305138288151257308571718602773974188851771078638424302259072128299605182144136093488616472749435238875181422294940408184340454965979582671795124313660978344227682909019405952612098202181524687394069114636230491803119681675311480922231757216145718695773708381965215662647624046539124815736128195534079113713796179674530006465969241996344684732628450493315210802588299716174522305277432315477440090524080117936985380757350462076022643825532982447458133045437576079622236955534538795978779855521719959707924789492187141395662550944985694382408613210976722402066497330934726417323599541946153865629517471156171840241960345719857986916335011615899408213084392824856453952081948911714488937810118106132931480936062981449241627167106566585957428609844566725792438665125875692642235302176518542858428174251409206251979289362222346596177993531367149594469424666763039422171011436893629470597909455228581842501874115374319572074876119098145869937143346292478991416038931387449712535207575231931338452257938476554659743243778752408012731010485804468202195073443673113146107500514043983969346833889825971122589840864705633952799262952935366380045978761196866903772569642024478053561529107587772071760410380221442129724516831180084365100498913898644868005283705317722897192453520139481162574863948534300150356983629173665890571881129787307746691774733235072579776107399674455672732234734253444048965865614964327887121843815095059299883706593122984479545927062625414066172948602581711312909522263333785285967083637079863274568432394096558157359136428377576867987829248555663021094283556431212198233198021167845599780333522737577639915158662009643725982455320939932334243894026049073424883543107770829948314753378791807067804781326938152823564710352747545716618245512049405054890575367985073863990539084204696434146972736741943670726786241243181817957428270413798641459283430907117303471290221696053048347135036255514316014033263679211126842400872852328642485825459174734903227862751553773160091708677938163335217212845831160734179457222174555495624047141048652661898449455966564872404479204185846895950020858027884035458058974425363128695214489370631412926615563536467435261863697126679980673252410529742350347372220626368910011209460792435859362836079835408979066609818174859397165733951122436992760762527756755580569468201096745364970417460986643926260801245844003617704126492419370254109999029425079897649393757408912698767916133070643647662337671431826277287794018947458729670037279379215697531624087649641674585797766955048181118139071483154416638270112170880032918610039552376492229256114512187003678404030627879502746067081150176929678001486146343841877176933748306912992891702601639952379787748005444352935083511416484695931806700595859620698484139051473615891145210376184306299959988402326979136913018065923395906133656618367062051051726997513245813871386452666104515751908466975173453009560509051189565186994361966933843399609970893549540677161749136121777708986690131920189982348492461231948736103065120982767555443678728358629041686700662095486508230526049510833321994170143838866381319844046181383198769254325889875987154049933054551416746295685616092311706568480839272465718263626180942671648291359419409997839590010258597535416304881000021414515181280633981509631196407430224225084775284437807146908417617765981990155688280485334387941673933141025260752863601601637819589299561676645666413350410062634864495671624735110721584716234881864426174453946295020073787213263402003143323677156730504418868050727290750742844419746706379476868362140275370699644421632196963006501780980284047555435028700285902441600312295157918447153891010844558198658646087596552823584118449120982146904008916443374175643826120992479999011345367828397551133231212275566160109323954463985910918608695723639840494984067179613604032626711201914885805674396599179045697180298679194458376264078721906766386221396589238829264836290092549094940613435166195644925144200448176932896311977311533518526799640037076837761023227582866181265757359807821718799552283496914005021049531421899019138161963091590475623363625450298930794441153272098302456430855873704887838560987447540566471281951689028864987988541077129433250501721007172433591555604359514207298560062165726075493654133610438518808422947754197696429823595914647828177789735808354151417542416547870000601559759477949147749422416669383125674532457091837691569452049271137319375966252975471978086007395997645618274461051464123977829868246763306690499684944247253983078810323955045658400055756657394210053619933774086380177969180635047472556895529884453716488183311871678047881109545807826804256827988951687464637336614049666520939948498810711015926143364878543952242950517136944692664602277922935850878736195840662652654786410064419007139780652148867256952168620104806456703158173659238931707188563933369089958283198339625712116499146863557802597947886608477639627656443299607054285330070820647407334025444278636704823648768168671567125922279178147816277176395501355851452778471516162098372916459483987692130233971643212174017004682794765063056023109431457569490015319097344028183562311558097480633566929163283142825892674375258487254208345666437038206623484718923578777465384298605090002380512937014206592006932629049285913346848130681714725364122928065766353662005333544183909712486607686930003422610759890097154549284300775880225862726624141603196967567237711960679763480901094147716809822803625995103487987008645232582155153202631911886516680464372215965857041309940667415455133611681292589328439021559922507673559135517836625439406630042243186607230353588877403281929636979061381410688482084780190904530010764332050795632272897017529449813913207401565670862098839267109188042043945140538902494393001874257510695085079853122801679627485696769779468694853909088368590437527279754399047287429601705932146007741778108095540904108268669326976099248192540329926800585902159940099683630247662998217514234021349138711872732418252285638792316308983223944868988903374685345038454298285890513552222587087619791945853573320001926992427497324205573461722666468452179085252668630117746545095504523718839824183077503999593966217822008633680648352729253138157239515799377366095200980516069908664097611529185882971110836652781826225371553888371670893967836538241463599552592065201941103500960254159659422891943126208720849530767915004025238508522338988497123082116436654316872267690134347109211034201613061788709200252420588608445639886219965300083646043807774472200054055197441844503754770002208757877021798016778802139045013432629279596884367532095900735763512865850299605195357153830072852936992292151823710750581350732230987543999154203292491683983412628310327009942821747249187122868170305772190314914728317041067933158692117861057471680562091974255530755867144651806716295388221559457058965921567044063434868612405104180551562899419300274868821951064241387362865710366320095598684521395300455663422917240981924591426097393808691455058264213753856193115635086146012661972031872747299559726960148829168172386604245161996708170844305256628269661104599866782850194616964691782095955292877020170295354067359637474655237995340697700158578877141822401907868730612759118848204349735331309769103870108869000083964343238842666603777312472090595059277931063165576867833667997772494776241134695613694107382992061177421776106948917550879165150066052960582633421272429437608842287091089019628444112323508384981045316688670071991562816156569580259734565039365065644517178166981364663965985383045355245819852873700180381576501595738187086445034396933380699437406762656420161747775305738212444494180697952045195486787224071087021460183927910348961765094684717326388823892826933034519543969292253436609262070744530593951565539177950630851938533594471260601501479837234822181207686272966838398721989542351241542255589859533795007491051252821307258870890578377629956767281997413598855601779594042062146340260994859046342099688026899733045347755259166244503702482963687152990161703388119412861641073473027788213003160186142078105399022521393424644846770763072202596963597633724274428534449476360758003197525287990108934037213648199271061374607356500463078654890448837269954011758191137918947600251899398713584244145066328781289627470068784178158716186418281533356826379873782746248495751428804211091436360959595568666233109295851622115199580008484166536640795583430944657670222263606487826117430268793994309466806871096591305812800695994799475486341227643657834246079353186527007198527736182689316596339672677337436413314567653960161464895278666665394450012010633714719621287145609802839236999915927334929832965958707393922628129529589772703744291189758440746003306308727565493760091480898901695329193744383327566190431541912991652590771476129924957019990386609239971951524858053394006778718236526447298000386865374702672116965135845350526862490708588470445648213438751992809995438383428839731917504589622087935234014473154037619374353543979883367543276262251327650443393736244337767708268115181365141262450832006894162052685210907583924521699013159974169234378052208779697738064376089713792770271798665659269068815167816007151524627215790295419206664518405008600959820815626312628982080517312877964003082547172910947825131329313989228166838548189429904784141560692268705402262553008230087953172868310871245491214919538400847148391842670072817538930450451895776699547440594584859889501611167618971864950988412300013724357480727527824774072873171022517181142655340640138793887856045793058580797052788768970937799784299406272989311219851895279786486575708456518054326099628044118596881364406945193785545272382442404239159900320220025449624506412831198755216467861052526658466532298205941410577516686754427282459676914159551381151876777077133848496577704914972857975440852465668170406047429487250093853999898808300888903767777219791338706461684475864542160335262619316182838177721746114143707688144429217773779453344164550441341196796014489665923268631431620375722597649099734311558935621873508068835540058974104249005022772639730797789330103529188424443897567540397461880994584184675277424375301744436864316731373877909241713359343290127781762824912559556894391476266334987692176214524122007350451187951314251250725291469764074412197686079137427561999963858051941414753101090447658761549726094221412602716730929614270433798001965312523940584269464942833465285818900749690880396901154356485860338593050245943079468564403103697463051176849018723261166201186392304003557060452199777508282991319998779438799356129353155509566179603880756584772197508813445627404539643943227532665351727761387855502935250851800866140564208635403848252957102491433658988337571446210779915527116284784385666420855824541388063448140254087946733122806860120519242218642431229934220720326693989788939869110859199375192589095620596811338152251377076683762599510139806287663398259015317033502743162144686143083257105621524116247841891690284147808826314544677963705657153609113228656808300709925009263832661610637805536712750915432533808719227883781852700896961984678650636031461685321536139988617891979301850437026283420138987423143859776541262287345794984534303947283819325503975388870992149101789625292483264978226953484332687682640366589654409541912251209161354226238169994251894495771736262364528568174532892929155246439810731481845888211469687042514237531215523918167354947040466864419884321397352554300574315165804377063582622616211503370237000820908764539519416215833899073252182895591668182972493210282284825568955951122462700840815764060172707762980039783979204436044171114291845813744959040641020458130658950320846239804592558490959534966264286245384414711512356520585684518892981602917215628635152059898884289695313204154557573789614423837471141949735104959266767369532618913583879673936821966374383605588458794293828760269767238772845073878758968476513468921317870755003080026443919678249276078019277553348118959955794888781093711342922236800300348165716581314986928546434118925452543337501644411685503468983608330723177599270209471144247201782572446749706795147031956313535323005765784099127750012308076305876033914493910729532088233816952787287149225107830353837942674322693170332951894709855834272503420216760376432129893530170129270968166682473005016295097886599789247588273107313625289828115872817146933231524681630054617002501484210369812717989571533981774369871227557590307553598947969004012329061355533604181332786676095063740509522831493339987269607789909999212528526185209055223858671966866151117166161002730988279352121746883869419255005420507153252848074310063607167614037221236562878504059173935388971877919512869010793823701724757049232940690113916651307534207285489371744382069198930816114221096655344347619735158214344771949640445041597435700970648482819617207696112101273111737582568811781787232341928611936337289227723995784239608617594499814850725334911116269805090825915531239040645065927162555329043030472217231033578467875350618856336139742755226254500524773517241543904107851927426440947066553650151788802097893618453608327878550820718670698627776155500830562241501325826932696823960489088700129411405474320951212469512166267650969497513516655050471983092358027736499625707357349437185608689135657651781940431512410932536222356738807224306573986963802252619804242656913274690560221001018119601046817292243855461703880697515948936036242447014341729942215168063497335127591175422232744014159261012576187280542501584344080671045342827731407229456087726657988306732445964420946719144872231037930391185374092707892783783374258277094863327186242364260359769115995193676437548888186525874994886848491802833004667784871191100177014693440282619425056524830482237310487335374772660243079613218944449549743511662298077733249462487169186799199735278200427364433304501241328959418852643550046402684890733577091777730531379488116720985610723269854335926037901087058500231302796700322002021962070994572148481796218100739884250323380027447410824226163459133699501553095637313742925477773482555647827032264746949937868276297484869500866387090923333098144833250648188585947908372714361658019713833659045591447012736637824810365178201184384361097375873407422276981152865810803069254855773596142290369863472375975970231787536440922146534691664223505102974993405770543213465755502098197528706257439870252268492416096730496457479059901541937872051200626766419000458677111126401715450705549465643992308522949143508666496678349859584365560217676369995539026577819892737950905688931675217433128851212070835774560364337263413102354248376890014295152918549599727226996771507304397090049675151052002656051034814773705614318032203182866953655620223562479638597649807906148351853964186246341832597666783298600452638456188608987527734225933560212779622287348680924509651658739595098575115664559023516593048581541797528012174459066694315615458984207834940359590803838363155602358964241763566307552169517952275126411505089326746174443631638009978233799810622992326041503570701014148846757517818839671646419005489594483665501647856284913913376668956144309999223798842274277376990536955839139286253236344410280756595052877553533548023345952034213658527266989900401471104774194808139182747821214601808787528414641475755460961804724967474604068917208025879582640339293036705491832483508722045373120180925824873043529361507955556155064849676818646753944156833441328515125754528537282714264161486804289869865616401318814741292457377811612931377775358827082743474157212777362367571843168898423807616849959456938540745766253232683070759912627945865536202252007617237079477734094817579152898377633994054679534682399871718244724504289893451085954298468618609366074591584051209199571730000244548455409008994489924642599211131593108365745744965259059052870039392168739975549224882034287186826792900916429972969469109829422623801503368835327451122324189389730685952152463655242022420101606353136712171914216133653443950102253793305140742505623731140697056076637851429568761357263108148905084523296263319416176972113984325312569304214830618446795998951877176535855348647075976463699117048616949157487793403923801083677823450001730480099107610497909801448871217817716941999420548421306157747386637708971833766900769511001705116983257401583653930919538607969202416301169729203597681052275786065749808879249227281619919821773506538159246248822232865272753114444769160777989006291660090773616624541769648891320662637277934839525980874181293935472885560217200665737951372773910300132854439601803416955294791061413702321994508877950165007674524877475872246984196012320336888453469884966971526137615770535025350103110198337090466771855253502331298164534370671104840170556711847449861768096646449172491972112081608280444370478789855719017899699330641827429167545245070683404602169498104665150946827483655895945119704286146484253981772220883784335702204861769027145625778992548769634852850189604814877343598368544466226923771630033750908832509198831457817679042479120368310149552346428328287390872612056393169628761141280916065465006074970945510443755668088460215270140618024877360133686056301423926875517446593748970924002639378776537637078482912670864343420701647084770969672808895395256216099095121011656192057389887179409759523307653652399235018966788665277238744917586433107203448713738518677684377380182484771807949490919234955487926471728246776928585399320991426246342747069450677866960881065959839929344076038846073449911553554092304303040933212087076962081914187986572139654664081276402413613645573315876924934453515746080661770360581696486307386859769417957459542702807651511089711494035960757169270432683649583313222732237567577689904928975579987127543487961357691662557771920572757715852772922286330199246529239422967406938421663490441591508874308469149474994323801136434961901865995882986090148611336403523664330740200782698581675380945484983524388600655811560578425840729284643266288131489430563536639264129499344664192177230467003090143972779091530117664037178474465082646667678578365266076957925023986496996842829323247262106046982145689850806235869212696763797727632631966923298264963369818221783955052206187488093667960911592006588654197430490420281854793470811138582690298679748136491147602114687494502293378105989749895329365578237989532156710306076211560964038317446897186565567359082324027540931035552179428056112126522510293501456833614619812176642372712937767962941042364705977392008519482836422606426852075684402661697119506689572983509430748193864023222585718235377467051484745175103287113395470203265542305031918926731037223905830679839026321462185534216256203389950196647956058242431586936005884021743530700939968322682077616182901256471237614612385471413212884326902719765384750446645060933231371392122644193762280400037667232548285548642839507240483430713409593172641645506693181765734909441365171419304533701529199131106765422820015963590462802926137540947149970695201804453396346115517954635888791459464259737871020430620158165855682021190631489798126339215019967244504648093219901415818906827773142138681419803969067223401966050647474048899213052727760644185656062897524570928791761947709633219399634792660801062123517259047012822557336728617430539434194539170627644104771469479674209518602486560033958228972109030779067071734192755158944840348275205496779572557943663697328981870430347642674976065161523829401160598120639012664283657697923293582076387508492987043377645429412879448888855396216706521370616684433798678514335038083198944228973706639631305751915352260747165838976230492400542374128565491756629610442644324295591765851674064555142419747948295907108437566188811759556714121438633053095204389189502673033906538344581859226352769355044234740542422677980423154553871890534819336225139222746015145599597424761939555736613847841652084502399650887285768783592805793804048687678925410824799866070112919116875406518226150134570989501687304013186571095918953568933274228586991270103410834761781587305425611807430153219657460110421665025085160396466888055514170054193312308223511921922569292809282900003325920538848238159043743408138510413997987507753630989357951199253401747546497638162831760001752398188918290299700957542779324261441646340304125351709560398942382571597828278394769932169155850500280171144218063627995803549526690352650705984197664797644595213085656105275837991563004051864944919674957783841775256099233833243070162926516568367719839048529047760445194743177278505074505167523882853825824140380796521979994015030651222213309741721323806242581722878760120182185047476939329951949317480099502802992452680101657203984492480711449789377701240351179480285576856372646503698210604474737462952596668315635684734609478195117279087085164382024472840603580533960688981225204656453257896501523747709799058946871644647232940150231240206076851436478767351008301515815579406118771616843221625625744000887514487631850653460878608462788778846375527568755892892554577279121550727168243016745117206647962965199913065094852547713341032745889458780840245348338712274034435974468240934049775635387245741967752985749365294248700628389558864376291159737697955659950417952506153070012405055388016940280147733820084030928950923992452184579307914141808126033975938560600624923422155124820753899993437326155073124124806237086465280944989882372425255979042918146817553672766662876763983065099777029846582824079432027652483072964302388048032132423141901756001380537033624208758167435146898213555800823473910916829445965036733836309194215296853354010652543534791658871127882822111610785226844762730369491926142454448779043209299268353891584581327154224757927907531625908973198070478927261448186131301259137804488311156677523795840632914581626972983004099703364517251663878456052074562209104930886587505544938036953955040613780436105132761317462666743307558116816844442161250417118938969276217603627381126087956468404990815294508605631132000202547639523309585378292786827884277249196176853671511089457142173577511974445877943529742212801832968332687903738966840788910331686083393761353238939946086267528619093703710928490347891377032697648634296850382493192014729020765630526325283833418128858119674645738415887686503069385726449862772334766827075992578572958179654244952828191778600210690405701788010859061046436908992949458400139183853925541375334948847656220356619624797661682402982048924488534246531484115655773629978473384947248336741868203227718282245958795120777690614869647354220715087280357465835258044655719535779531611929396324179808080365290876221806965090195217194781404662310477843851409017973287050865525182502926723343326158971049274555074727422394038111697484933385582837362393967933099797494196442490019798130621816685167565215275549092391655735697690956869285742301585546890101177760076058311028173388988548055099510299894308361518529687858764888809423151313564046691969449099742043844000845912538483213131062953067572969973628990952463129704655758228076522880783246837801821665457395548119319799887134953781704728998528908992625661222226637400320420360087452516763288689705401897988839100579281686636219872298118318604786211659712669241455193418585759450458081824154787749346418065801759573546918818246752051392264762860238286380108120522431697345082815167434679666517616260383932278387024124053820704460598818370174949117335546698866471597054245743716154284785113320244017901831729231730659360721515072185486791736462518558485963490093639309949115418739177425107805837141451345113560157822146375037897789535702841589617911338766522007259819793447856251382035654480068709678149700542446858073699821249332439945283750397957189097003989910069163366772957436913768003521033098336829129963252339475648651748107910261887984007950703991865548573926674979379722745197536095922469290684764604760010549933108552735111084857623843189892402139071830844413725669167200069237988796937214338726435844449514026253520589971131537258604249350835342540740066422450712113013706049276219871566653639862079723235631643849956060486552217874379758552455295334757532149874361905825381834788733149142047798609700770682625289000057604867018672620071316855039007011823746063999103916170196650711777165014588495706570411955310919681377955286967533007630346236460791567310998705272890356817212157273024007347177379136522155699260171979891658140211578016086785495003989020310139266538336519596842851177957339908055526134856550971038163500310693243424583466428006799089001233788108670975597381713353213265435575485171463861414202262269643190698873368117401345828778735706095126396615074789778316430201538706283873968306731466694455305806941912077434680299002783893406304855878385211140555891110267544107180956593056803325197778541948960010224874096888153602932428556697433324928303594492365014245039110385510462945352140244855607462640162864670401074910158589860059677640748503654253329938745295513668239796310854398971288792876578010969735414048103715679472609229334938420137559304403146288578506045937704173067650023616233034833663303819648273472850674300451680062674846723069285241202503955760665487195225652902000695633195234102840906303196695401549185981466125170955109299094888805238411593827687735290840550205479361857747945977484530939177911706203888620067426468645856933862465070518281185946767228169238036457462766751286609880974998551832802180615058314467005470959622063824406711009416662077148299732770629632054394197543858709832518438274167776167393781727316131586152474358538254856611269887723698614164855078174800954594788589332518443210568426101046295000168353743660733784717120615881725655921061586353204306865291767768708657145411771430429900855460652053131585571442501367197097482769793291296919450850591005140976641979222885895594022075083368769568973422712621243984061041382633025414617944996636032885398743287955581035576962293422440049252942239482908478964666351075266619467060490439806216164784414456793702104361827759356709539763663982688173931501934819456730196781804556046556668145694982310016835484975359033226455789542522841817719985203207984155397370397725467283042861109398998520702495785959196199356884037493774812329641720949759615185125949728740804156175022728653451457008738108646722375777931447731105945135125433401901292590110919425829222251370013396969885450613833582949424368104356606993463639111344872390220098116612694943052889331914797940240195812196170121445781138277672394121714013470528080496066530873623477270726994538407892179846390374901795651471757908518007586360520651085030972910090381210075548984323773219424592224363572638823634950184708833795818998506561170342567116845757028565619671220924667313809633595119455086409038968768218420706494923409961150133026896834647296273973846160214403482550982299198670976122508753737611684747107769521610030248670913228557053163414099435495127440918219186534223628075445472905525255788032807620230160453027925766596856050645937553329117274759155858652160373347887911325303788199046769556987232766374796435676604040143417603383879651471977164967221547970941575634074559841931448133058991788481361599129031695116636187165243067148110960863238877264816563187891350367269451235275779799274618288917501554811979440878336331570965983085344600666337265106849671949601544613099175263306565789263320433625629043997460367653165809727217845603480283884783114424812396307377330421748080049801392311976334343884974485273918790349328583466298896860808389322198268245047725972006518714998786744932002321868332884873373658878178807042804452124801820478150714311637032113218855742633831962711206206892722444311222606736687293006078094459247534160817299824354700555248106461559032257942565821881431695486872993434519078893203394275262649321991931895257260045084448591543862331384274981330298972347040958418525945280138722153313847077090858318951552568212563686059383455873996588304646517466859152599268267589217711754442432847855226766519213161621095555923906515002864450358384749014161009791268452955822472417439648061227251015293779717438606465279325653729857280322548199626537882697960139061921983474197801097098936696365832061994946429755659890349960253336734369393147341018553310244350242002745475024380510232652366179575931163916155473837251057002205615539917450262567929331329486773760840192807106862676797025780128488593756312003950326104344232359880191331054631133202243573948643784270491781358591093633235349932253914764230152986101301383313645141147873909931353640779913944501752460869787574773677203529977636900344194191553490642863051426297524421152029000839494453158957348361010452032715504437159261515075013600696198018504194438256437720624846271847085905161750257633699805396754778540008762588967389049793974036730048273944701927506696147030776348833729847984681176680400444803250280749296735791350704968861411742999985842455837539118931144355467404594094690346797904719032118593374700443648428982285445453658565426601189276679431259207813384746677553736742673124350273765923262223738457324409178764352298222455932954841995435868442739639987587736147122430769566092366254690341214839347440387545132014084913431606663215050745535828530880007850404165893497694608017396630765685936279640487259259727745431261847956382728955559966787228271941471980786097285222270539930614612021336313281674294369151746065113481800322399147940656480088075421071824887636773500717548566570379765041725249615557693691774303101465101832832679439148829124933956055175093185502261916239290324259158644037031746840533200506104539186199723465114846845512914267529344670481451729310564106388689936054896746393984437973287251515097073353946343015261297054232189346751999643216334867860740055880070220125385906512397859807724315763817553910760232543659043376191528879294565812908098727937715132461613221808348567653248922503578914884648985116675641589901925265628882423997728533456869800913519969143144913018106700994834628396177417640167281296209372288948773537186568019362670200441431747309837041673151805665936118097228982674086782624072647421952165202669093488842095125678035886441664763624790405538900089063943572729814163713544911172240863351015748243902947896022266823660530187258701162977825731589166674239456238379944333450870504424254682920088772616936886511512957023411818490385632656153172435119272463507949552779960340359038883044478749548101446890926284012226425667472796215575805946365852023729386430634171983605842686598296187686278342041666757424109520100342303787747683336849134159030677630527420418658095328575729160919238130723664257812310255961030452408973731306331948163015579631084186982707160523247595307239594469184536551888375914107088881506097415739639875222330690058862381334558361770516529999749019750428831062325190869267611911452510252066206458678312769469625931327034405804393446430745376331255257381914592930953743836373921364414237590550210835594863401037898148320847401685837451225745264390237397530481544638531162563037646467755474605644757321775473062136628687470187901802298442191831352859842059464457496536091798570897086650148941511173088107698232119389978940787361074137235431288421678961357130548330066537900009653963812998298702284625418609075745630854008367688153751060345470290278990362524282907985200514875889718455140173754654111887645063468217973024882050486893932035291355693176978796439589850763938024075074741615975682403739817227579874152398671307439910603867904698450386577718665404077826618802164663024339324192903405668971792831998388947561259082541057242308463780317987578725041262191487987798272370463351156650081324947426616741072023120964437360529295954321710895647902877125408385565661995613551952816327256079005883019080798317686745560472026070539094432358678144982610515167738500415215533923578449716839728585366788420183396094189147529178471734421578790000508446865541549327402342225361742640053773633824281698281642601877943969360312245347669524467000491698894854186769787753811237030979086107843883410683843906173740359110821530013213728304050648948716562250773833485694127558193965667668315323370901031893877018520136896673784501091840341392864357620636189636651430351188084147744165914102549789829101091522856842314061728504985091835644323816395902239643423230234338459569863518192170458927268455523122760038512748884974461511117860460742291557265875708424197523105953112882406590884318969152221500299701989194979840777589647723868679146258127167294648837534363440916835121866006274885029760867381760917404558800115710615839418699188583406239727454248600171867767161364328760869995653754833134395560486724867067212959916144506835507778412832661706301290459673135346211590975141245318763310296794825063195792069963139422001552908250880465583508409728956858246714404329343739394622421105102219448387520252175742169157604654871061540268066552472754130181622784300274949928467100210872843265343310123463123772216140805854899602995635723083696088394912860716584734381788371948093316292425124645842559987495721603417427453464812944676469803371635567656906582465962834668181513403594507726386081522457387832654680826858712296427159505499182287818816755242824080721939285620136434338939610250882279535352046522003138625692070913946979891625278918977848278868027066403485286038399753964721620975728098874569480848986902270770952611883895917758489896116250568672577529947763059382836059049901147266979689925943418222733402976526453780488550584991006076657472232184740085756028955206620744004278840750042389364540289840696679833821430610640537233213499265047687426052079551031350313915226011428791800435518592439124240402716497187113348746378586211033594997373788015058801920565489764793309589440920586087870228321690072187334175731160891358480910524260201766330196497526028084474596928679787284337590155906075415430505889627535275603982564008820728326243061595825283955155009428318663029714162215809129160857082994592133279597644570180190457191474267451044894080073041027057642283984706497324033147500507056012038314951824221746620738237847226552638052645821329273002920648527018081493155705077065791930518927554361659047596381663849992627859422725184310863437345689091960192496874867433909422362898952738278943580560557566133354026742675615405144367406175881536059710586192899916018227424652630421891866197968611097973166824607830733329364142053712235096160474604661010243116362292218275119447739485311756577855655653668348968281492427818325444834411460224119595736515106466862318835095423705870184233671128383869672304473610807233320074692231189061970328956547187524055882421186711796420552436505586915516250591951892475399736435452930835063968687540678345199139255431863879273939451949758127629775271963581175668553090730442885547560687298632603346363947495558123453570948400936378779767806125083570390792455039662175320532732799748034023029336000185561928876303806902891528351527448027054167928411737918933117198668030906267846909830964546335915102377477838699154414767600179842357757523014792296755699069626193517844558854235748457338819698802301068405326441926358640987920277735320205356367869540235255564282423225629335094044015357494390080251390190800761812289672287746542740368467346208182674608443630804836542925526853582312636698929641552802291361382057503681122631541367668030294482688583366079309766240145178923526020908513221632454280570312644522813420760334670603906444268195580791535013164114824864518941023911060352727093277979184491389838425742003194961412455109926136042160335657066599555018350365803914665904184300517128707398574137903566942936194433906016925956123132139052182673771066442359293748637225180898640411377901997057211057535872092366795203857652257686333108352442333592101590297460326941854179117150902933921165516827818231938321075832294545319677002569139955072343630660875985270816183955675873363898330636407647483577409289813814797882653454282835291842804052355117933821029865821502519815651140857063252094259388880832838570470771149847513710526421861919189857421674338943068384106297229225914734001357123108754219975069415262531843122605593222299104752989119094859095338890419751505109426239801257865958983568789161126650138188432415603154264159929366774821220296876594246549453398264614905694700089347388457713460689773359813145469689632042916056316157614527496857921316836857734878298947421789013443538120190485981564854554094454316022450538789951496391987573250851940676681964087372319783954482981988965333541567905383885412584110179922086080901003783125149982246201278861463270873490175793810356651062120715828676940215488781485883641445086710799788326455232744132669372655038934298630192820427157281716075948878471972607353370543589861813025728371387153259650265579604808202318985683081854732124852496839780115190506073290302228900835288810945654916160057823825799709188081933144158202438067990021454355362219816567249872254591891114249050410138826915784991650442663216291233414588448615806973767719463953321664572189178915777000636355740408908702580719292895138757050765352109146430917984546405106284110689707050249658487501506689888211168069030606904738166953461984890615976752238403554605168911070812574066548068071215987537596756603977590482269433554881737783057751361189770943129159704542870544374910707825969576751853160722560880328910541659704945630090541929566860931040928299848977202404940652708076172159926863855858985218316798877432377822231346307111765870927941364158446032006792858575615259751174004531069194818602975097778403697817702683615301522725961754449504362890981242426898363770384804644820661126799741341579013673784732857011174113111164709132908077833424475724876725291500215763687691151490290666306101208333528904466480356212300572421991973433959457600642159969163816058236721831625627314732005185993738352012148051429806143169119795735671865122644586697937149111491235412322393073226315537428215888578545670627665726835661266684418204469261461989581926498348023243067598400710873807397675313415253640829130923600909878299136341563388992118924984829961765308348300307963741617148240813289649892192803486408924905951441870421803857670584051367079030375062159027574597097023025340503041653833290008174520677362042877224350376942001984842220360645661364440915407560851159652246572966068394927910550389499834992887798417696036074075420594037344605368294365036518935686465517881865524131485827111678360176283883369333124921034249033478899968067449473705548073522685108578238306064186463121776324354675072103724675743324794140164771286058182840524931167381527845907099321433842580884169896658742689882528167797249437735000394637791339234479108524404452520652655456432668836531900859258995560960217271956840521101686204026273785453683494051518267562506689286315418053756677025912669636696751312957200262704352371448804633441454146446135487125657955440480856886123546744295114488618735618794202657252707582738132492080545422448023939854856787249166783947772728603604832300002075802163024011588388388783351176757189332782410941163439958884842669369416836372059655080688912656313751413265219320692624404156189777910083527319717300003673752148061210441184224924859556912847839380398296725148001446381069377192249984697038293986557575729025013535978563611521208483175557435277661422828553350111682917349357396710036890867110312370997950328928788305499233533005139076741896544590306561105032158719863801123709162810661098941698738925987360016643682557427759634932904682615514908591801922957481869630657059311280858835662970552964626420651842810875380498696774024561157326112759404828949240327985152978653913594874759211860423737720565132403950848977552316787450153603321678951013163095221108313395857327962623852735591333477545868272823919320361387271202836815371567585610044843024895939672908348047375793422370083173184726284638675876740565344121165638433835684154060309045039388881756910094974604497415557437984992627216766986137629333344962206582512210294210507218645681409624953779190385324548104834404706203781015265718424242852285665554262048659045842374558023137538230501330250913646072957567808282617423676756139956270915819409803378866851768166027682202577645484119520298476743849223688221785717822649390565344944862787426678478348106636433076095832440063296732885841020287385930062960759417753133016142007857326850343259121494483050645615053941200271171816478334674166133808520511223430678241496128934483656309366746021043544816747057903136377664842205694619175237110066496986740329952248767934373130946198443400723167250066856192222886060076188352417265810029009355813860330514687392130443702805980109705935458746157872508080742907959125556491126384812222504710409190616574656032690769990424832898337434987043661170068167014655435521904531989899819943299323822509744701694360771133423612651840581257765794162593137060986000203801778923639140477725120121844433323804243171041917045648898989507814759151424394410475611225727150705510319450954678529809983325732830245039903103111123170245358747238598393884618133684801288269032786620431678056504892485593040978001048656722133009140986648406602954803089181279372475773206118251374753322525626833339154885874287737196110980525334857494232782441050198490702952021798056110272374885451373849014488157344106785098815587202102562942646056380142903250326952355027171168752610505439002324082884592890787088779389864188665031584268760350549995047400923366419539018466163909997726569450468781434383309763472059800803828038515299460641953627739759740889224527224500222707106118528505985870909940252777159871526148622503167908270930191282931502218438189924595684900656898515383917540286693355053014467507193942283814501391466240406628220586846662837641829469955601966741475718084122521128683005913421689498147407984407672568497655351645894640472018216904310102470849533237115123800112504660002668465744508715740660627015003257190763829166234010333135042151968522696981639706254576973704398277508701091591771899200310788330571370147342007527819122296444767837361365026119012102454574811800959032114619148089814167389775422286268599507939389980197114137487016310913862358150981877823789125034470978856189494742588452067242187076313349470458817009943739541662543343326220570620719233380179312629954363097326655218059869788610211123581430089158303090340888862634417931039301822868226907880925220152616546454987968104088963644389830238967829127378241626694502446416865687868262982076398915503447619216801603232483340668766345494708682514614615100375217522847395031638938964812526834499990080905467669991427811450421571363887297445379514799454221635755532545671762147134671827597995727675880849654173945595411853883420186158520278207368509707541754881096054107623202901229745297655694186609678755035147908060538254785014298747395607500151593997444502545958310757026380211717830585338516202683962790899949223075128549123446650495310627620205665396898936041343225473888894036704472604590061547820309303835153091194074732156219685255264015803783844764175395931436105460293928003402484130781123727985902314980310104011838753799358195059094413842389095939160194821698515356787832229345913148830536110882652128650412588123108032352546980274321149064977276422123617529285155117809324555258742293112074675187219644997962587153992663437661248551082797679637958231175516500468179352193323063282056964029547240128557531165938845440452316176960805651381009514346553690207057851836849324803951232554642231502416019133284056130599590322916804114401673304537147790652398429882278409103673283159042726752924231007573265437509392857584291326772759367510317344058018349293720698756426638777981550999499246972648624403182468965788143592371880137353306992433275710452030915491763612116430827114783579283758665814243069587465856966144599554452710646133956774363098862150769021306069278608682966544034391620118411982374311803610473207800736211219856228217308393576034695209046810281269999248546136094353498386806434001777864027869117406703049665435314584297013194629090578014974502484691604480013995496871994712958846410535636753470522864835104761787128680995046350499316074404787403796257487352348347387510997190418890019044148772272283377080307230372884047966624626429867910678101987085729172530045995978874316814094694745391747655466546399296585651640179517926730477457067066316707182477441297231680061595586487691329079177276879423869679667419790924408623594305774271957478512193162343043546684684052805594433290289492195653140001048093228406244718503547945745761471033556472511230816811184006266426691667739634407154098765395106732179622212086948517621008233853087219820416736124922777695795986838618886512896045222066531921231993554687854439609195551153553159311432209318761968250125358352756171488725468076607913726608584429738900469819455432082323781920733429572665798838924687525838019366313634666203820355993603799501365169101619237121406272448925428232455417428806235953809709895220059678107593818736569880756149592910031800646826020505453555630345370155855548643017915510761722751416578818407075014947359142396104024765895879363910936872609019650401022508677941243627430814706924219688099081884916107830110650333180192797524913059354389615550790746998661790595948122269389393706724118380839698841865220783225115487297341654292334925215318665613663779766644337519486693234647050005968120681615067819425982655050807118107053330647088577359382160789812778997053349089520419440360181454368664527702263688390512874962214390317662726938757515721016143703745541719660337539147490709777230085892799653003747384743230787987341566584111193163917382175145974294698632623290315650676263632511342873877317058127012412793053729074683306221579439576219005151712383871890546877762755979487698544034432213338774465458732867049786752790223945444045095897629366562790239278411254868751191048800556219424198310480914393084466506355571756379204686098840694615748667043028842151505005344853090309358175878094439712237585070791302005177678284991738171954855260228493735667502064835761842407660864182355650079552920874470096616302603620659001577537754787914702139233537445289246354115084034680508378970169538360549142917097076045780889828731857556243818878382998361742635691601584867735802999527053534124393381586579766773720461099478631059798937522469519380130900326509273117696181524094506255318037120929942786214312482788809771748551571150640153342425964286764167104530314498059865764974984953322950402721503225740426732989705514090384952049968475053504661779468832141918094491131094725646945868418973418671307824170352586418531687274694433958182111464613800377723820416918420785660507158360903272573448626625675141753340272366238069109445408143285772320843190706345486988375219249313829548036797182742871701587261059089828308626340139335281643961453306691817132697731155109598283370214300545627622127495290573630514241443953553898509938162233615796678714308459318089999265084091990601729080797913999165916539103399620259486444759031608432391578637012665961717838831660331300694604613043694911313347955061346956394593629883714718685439659006133721370411551231755933663801424122923511251032535038889422585213177243810935342252406326079080911792792560175938770071664951189207282809348216190151952240507612881815012957531520349365810028950396862962546741809719775654983917629898845793865329195315105414366505774096502120938960139931389921055360249295257723149044014743133210242563206433783138370717514263184932726612701956218972506998867927495972056620943321371337531325859521585677277679380277641767791695719014143157525128738616380782668720366891609353608590362119670391102641493423741388701815870832189472905257884128790283341519441792873584930873805114289897118059326750550628267355502519850687406136467906147165712957045796367441434531293137481654090576071727786808820716603152485587662429316392871714805471199310027349656609168107954269235947525107455068673262838711343238887395584942294939998811247467831158764502446127424098205545625174618897757789827699618156558206974363078117140180461295679637480768117259477619773094879314649662851662338988768942859287676550598503251871361174303101383268820816209060910985554145804869674976925612215639505466449356766842251305617292321805050912191048576621362104049264914099492215450568884663254020555783229585962242137513545406766653820929339463513792454834922117651204731570908737268923782690732112107440560109635979643716169517952484332630594867512757757955301692310014673107932324446682224881411139167754637017480567967591272960937937881129027572391101710755174621188500774107410705127915117878494725336032875013427705319209632928530818686534305746090824845926698184238557206537686749982469526766784913994722409435062073147393000770361892737685013027311808293054240363581330744145212796364012001801197395856010508067056627682044789265544224993816820366719780625151597253794095380074693512939513170197029395395350180964753772247505955992686260813763948697772347606301360185487850812972583821522668871757444806378390868921977584849727494671437942767349062772261359450643862672153543383465160743713540628939874909788135951142200019478104627446161897046678914465030429281166226175723604111772121626556517784721050305681348789963025401387032517669314922885317079201743885804407520962371771654506341407872030434634040124937999080905645613706103410854663223232789341389863944904384246992725041009993109645795644889846765766288891465245683728315995956592239926826398246306624687962022398226884789620593900362802192495495461760278156272485013309656330491403643492439208581237436735177338962807380183852828745135641721063502143441113730515105677394469155888856719062807182387551132267278294504989437911881045374256226903363031232133122073346405847361434943818058822386608218008839822604473327637545257124349448298310158719911746941643768625514490090479417583500744508334466886705039132343338853562673343226325327338262772351387510447916933526291323314987418976553158275592108581872931835537217435286466604890750620357424631866469456496930091731729033740787196808702731321902850431478788706583298375981563118544026017875396881172086340235890306846467029393987153617861869837088104442433920995437633585949974104416101612534117281774647589715086825892994249537109545022654146316903384688554083963275165720004256108074790756820170074878904605522695154100621311217384529562917868765624832636549696014097713562973615554911737496525601252907777971239857694435934225188145273249536086810608564585152945391620407627112182285160627640882918408160301621246314807044594669606330804853735541702588753424533069237012816496692255508329904100778147756354759050367667194170514757135222659588936774730231167417763984471892110925912638915625900708752658992740928385631965700403554693541346488134325713881438174784490867467100829877754440033850524874185232145830860497547220860676905934389456559299374414853904960754979120191969920156666022152225730883134340457033740166352695338586603289319016087497979464439197543429776310530470717067787585579373335461199029979055648289476115265315406389232050923150564952629176620022414508712229339162973737069792532117001359573307905892846643715194123256445635976341945172515711989072737209120858088541611110332295236159016973339636916518008556480351466116092077004971303842647796642647066225188190528512198106758529235140607533957279154869121048484487487612411821285088436674723331508745026658490393245904870274052537013945681516055453785478029772039249111901346072414197376582802636914750657467761006541062662043125133444942981588483064710164613249889815785866858502967233798861378709489288959637784189023009827652163635314995218360812292408023731392786905341459601477668821598039097816734764178698177812943163575744090932302754031220998518043650014101284696742189210386664008989365455377964092618065495385399306891247299528589225567843834077184222439724950486294554329075516082755132101945255517787632602899982390172965115432403149561720706870741941289791161552303480366734977069290972982125071927371670914001480635223504616046446695656511648316173612024170780444959588226382002108645689258975214934293498631139898154299932730749390297249480682121666630426572262409246151624724741145099249579175735300859961970763538031415572293469029257752297504475251369896580147361498749399565433565513005541329084989508166244771385947122873337361323858770345805784720384939906160522884217886638290339324694670886122063722507712308519138594130970798404391384294825480346787096988109207423407765942394318691493205797523491468717759326490435742730397215711223906251237009403263502114674480674056456319428554362339700105455995250786441239695503138462559999842401614322754443853207237561356235075002778698084886945168946271089603009495870762686775799228224650172414811734388427682901694028909185719668675958663202292009923009574160307144986337516752010221079761759399501590089491354330212176430377131550781520429301422559620264847221576887493464435276476847661986731086716095985846240745798555135098502114591616143012795498805705817352413505060729736083580635404042973700634499238802607508820747111955067090024254305265011922753038982946856565808235036487012521928173684556477757819793326363698946905432958632606978991331646775837877539197106011045359655848252793143336567899236700502332231968081892272864856506407480577194091546902800636753245977548674507142618811801488833144462684729159448291692311643721671427060442147084199058423135721208353053247097269415651682455979425775760443315201225961606385912320814916074883392563532959528976127127489236557982670066240408059574894859442098621146866004624385388314390359175111396382923116558117598729911128814943021819745809088696615249387573173297220743910740596977617507515337848985001868417967936928430108895334610209162389884660554334073252612591092458127571852245926517904527271578715275421224678524034270605898545596346147742973699490793336309055118575002933140899049481228485065507966077074578073748859696023286780942780169436465144256920657041712596445875277852268173105282731464360389443618626511621722266914689243511224780859655208852232632194944892235262778342188244103061217823731819519266044936675457083105965275625761466296121348608284420805783477641097539255124241681516000472336141893700949722625743546643689567247552066696596806486407001173035915362683029906968250744255974937890191466641941573832332412341604516018951668601155187441393841637584894194358093675819334165558896415969518942433692601563366411152921189415599005759333482510526062181228302958724524490784235684336607595320515462953724554897358325176336924860454195151494309109504463550025041476310500811861574103233543047551376030759596066374920053353009369945895112411399973500806818370809942152453921084714586346844735680090425740859868648131006958923532651178506663177198529198492205929231018100099873324029581929943221972038030114385745277959866665562509163843443136825144282087217051037005851541933183617546850370473523767404385794110632986011721397224874956278532462234634029045015379096186287531450401333189395245479506556574576356699455560402017803350432680652709397019108551757063602981303336245598755861605967363526854619337643628595411220706847621749493954369187639643364845143567741744950846630751737160246016780900007162154339628828046795537780808748201271012240214453971515429541794533329121706755995617853174248663195946100480297095378655325425260341501044660444942440359357057005819492395098724864790590312822127095369770968337912568923056841598270180276232640227741153892818649563157999273801019049990214057674949747784724635448113931548632444290683625647702355713459818049389926796615020007086904257494495302409284237092076991942621888076224390200578701553921303787662584799129811161859770789219181175329193568518002882472112332818249238515420054034789227831008432200022091803884631998268123722634715788397260806745833681200025878016068181984175024501757014525388487967234236498269408209272565439765949914608075435182906187461728758335524456483686145620545387575893257032067040399344588745960671146367046311853677163964575912610487556441659300704126950356769237657634865330336742736911545800786186732894839785891308788259157203601298073771800610492621334174733850769719543267212342029954666059870605756917925910232269269699416030745812646889792628103103222808417916998970108091205351873356804243213173283897357447430529442937560751141262084968032171047753655120190089855991448437664213791048752783296030428234342013950860537881682137563265010267621710148029382720831221536380080031786794709168656822060822238248423100431812483289719265817874552609464805340549527812594102396220511854242675736805560491481237576067659621306095142467462096479407774350083091435442918444255271460434042196144017920126399479271645811675487356681066007916739136843712460535160166021511428530073161708563303073807981740618735717225218241943494140399159065222946675066091922218745690840876165023446767677569090181745694364287200135164623646533393066038409909680904654021070986850674795457513379539663326536071562894142627771439511409724894517600452903339958879227455850463966537306381591560321071045118575180681478876979124118952361262013667390490135069429196686393002819965761692877383836189591997476071788756167804029527709024621760289600156091200559367443221513886922721858226124469543550026469171492309985770298708662852051463228683433537186618801355354948395039298334335678299624143875002577929206630138597002415335600948313203474782197370362618230613325451155731194796772146039678355543546443807872589246154153743889716672701608930880193938177995469861925298416924735039552799580211205653332935613371952765977677840069185344290183011728869023005091434253736433624233096331481665105779623399591498807379055322826764610040867105271059481302301691077881534766130404407116636221731928668797439704365560323264190324091545675103024572202623823504999282989244057796610273738426562033676814905087548438672964888617580418349914175819313619221963110202535030058785103602709114069200320032673920653613058665842830954654061153135177546117046440522657083507835134051064182595787786144793045990552580136935054072802207875844655098835561148406013118269194336400092290990463043479976184154980654534498063234566071406781300307225050443174636919568423482949536178710490993186148788164618508166092291389094608905084844162043331565543974852062062256932759451853200206320263887138673910065541839960861317951388187400334256068816610262055750621254441973242029126326625325639059673750929935149798579546544213865904579984246089267515430392652279665865819869965923925958719928638339694502320336282224193174479252205466315107539864247574132473536474639725302828671113693830107747398551171258965687440147740078718600255980485792019943328978042631948914665932881552022390590007579306787059625413287825600515485231099505854703753057010143417634306326467405245308541119465069469557709467397305594071774953135520724048004255100635353200675759700668994066592090854574675485120382782949268264212794735960849421898694488315159528330159780892839447981089581439020910558393244152828802680585857512278126292785604742288979357343574377971011290803637122194304598675352639097546579501819815916465999866666892503658162834334040812112949933723706521948026970953566016127042844741681758966368693923264791689182443870739759089678243153042414116671765795033919657942761065530850485920840327790930902641591654222602659458086920270438469226175625119192426799504275122066428538146923453648920057364874578062429417139229573473151001638288833045918576655439665021248536318044636787004507225779731906619224837834377448540458601889975846960373342130541431209412233250733873569391057875386237838424992392386188832450601686196015495287922738928860991938956691685811852095426284324883801746384096856281374950475629570040873889995859925863529129390168994151943381359501747265483412372859263977296467487476472613943895874712904064737123257065559122451439335262852728123283988220354172205489190144065804647114668195200102784489757166506957030805054251487328166128342595601831329898167543062355487479661347845978845286515545791812478862919353023741298144709674188305951901085764257126939832075563243924100734207351944318260173984439964728429046759280231865189367093731063935702961906723058435336425720330933099961917814828621550236260588660769288395057860965701024296458373450009713780924467706828321727943117125424038637208389868253897363627544596940825933468813137504940784604898601863388459742222588763562645291736355243954463193563341315874250680255299831718318338815117508635670670477494461227032156703054755771731655925831110219784285640937342861771076955786615106402199194479373899663038314184776739810366469536721350340922628847491477724263720544093756841332901562153708622282205472660924016861249467936384142138813178316794341424515966019842256387483665306204273430044220733288122943972222440058596966539973902704268304226591987036137084310119663409970860156940047174032084890832023299152187502816999767236375949978065488328696054884802507601974523382854131505996788445926087191355335082971588848909432688250689530978358312602670485461891059287870788724667869263988048454962514103947212460591980645192564138206179800110068860841971083308567185047304618694618222735260312722925145817238672378857693486427404323512982450112245038406212942320207202092228052650355645968935378059956058117381075935682487930543326538995410280010851203839925837427714902934938325443694922850599828336370787538208229531506419061087259900734692384289471977694101655961245747661093572907090145529133800300695053631289260010204132079447613788752859309888149593138676672665097359920651575892911944419101429067816946939581230982397051032755496253012662039526523900586315627783363649062877624405017966502467794004777606735097217406702467231908400693074531248800618897356452952947610685000910130857986455734727809533973630802277277810079697578634530319367066625964652460256514469496224273621792895977219094668443280740564352938202190759692451448130400137134517157676340430058237412757257339381430872935246017991745990022109344156958496965287089140740353026795479272224205259195962759991489029750230975152797099095015057675118053544461628846079958818206393680334095211097623301508456899126340355451024781324729065573485043155434587154892278152815421095376019241911722950965378439237176862100844292563108815418305163384954836323404462403077610900510242846315195441093721194790376990816507572205351821220559388364504124593083657860447646472208505027737488170430611723621836696507157465928787046959487351112419810359565652769098742264340363636008624990838334954178941315283093253407363592597166032300217730806244029869903892953871205738476849259060746454274963856180921611755742962804414455361965559905769275243988129685142838885641694443117174382827232256722448814894027278285149642521959191151810548648655207459273591541750759236557830165603345590745792318562303057006719958559778377896157693850803469767110673429875349807745760609121666875782956473284221973154936846999091298477275512296760642683052383199718196022900712753708607092778605770442321076011680296452932579799386260628257469387154166820616393395433815852160323217487626725606015312550506416088574348798401130758624138373786214624700480746784462612116943893921570631950796252208483179474782914603754594656987683165991382973125385396118057803393722161013211811497873247067766153322846750779842132315052522918087180619982366469331236920817073405858628625860063257944696203056720965454936093112144757891847287273703802659641749051487690493930951179945838811411376852161557031882947868667155612545628502309849851125953896985241888443777674354372451100040788619229082446380500887874133006065345917413448698326937129119225350763946414275103819500597753558315017004970346849338886231733315238295735099670477663946446661513883736043163442057632308391861218420555035259109463303479088472732142544000425248945494122515718622818877038133308658753618580113488983265310146344299874562116639352720656738215998790599229180881202873147835098299175258466584500472442792112741255943242167513547027833373761451187083594082934723107657165489408973849180296604742342000295465672973860068057175740116156578987644368135691148784733198399834511942282952998444505620397357345638617383335495653765332876240144178273135893720105023616384690307686755710528830203297226519922284365383915026502159906768419117156678936237640150651085228726795453129218610561731514912909229389754210149508248451983640890465505762447949391594871168993145328826741700420530823459540510528015553452701691674900361541680094462503990091323240985490622727160075731448028783443083638850228750294408975010238331853173635835676774276751510013843879592889090883163874479593828559378588100246535457414273250168055281299847199250131288013288481697478716567006485523868803254073818655184351865728446398745051336067333173545275221787145677548855255808002124225597748139296722764387718748258928582518198842195238868217042380767189184221663279530635448919680700274722097559215167439675331406789259378696340656804723907248869139327615455573608547498579603591739228606782777900455392956787172191221464302720474693002734598465634264184411170213694703163929875579785287907124307816985470301642124199240765786938603058695201280402652478726892372521260369540717365088148580245113410692235398589122224822764658481503453514086872054036384776298600637705685728842117522915214742249047386466837952042849544105693317595634569056880664196707172516872375834699984696054738306501959810703566343553327607538183719809060321699488975654305549806437273475651362941535184975357151492190930381497496991016010308130006783326509746183592955987240324172948534924324738073538211871161966542618611916302871791887561146678191403124802477056536528426979176096807378642155726247273241230047800386278183646597142143527136975553086162162753406817442024596534920775678592457430433454338948129998399209014479335349510371723340643134225345691855961037520731145910700009804906032552937456238642641138348396167108005364189814258015533699059927271305989818885354749653879153941191987100658428315178313669285691985495057572655241889381209766632464004582765856104707840997325106839534591085959025806810127400267575513473214608098541984364790207995412602297905160905147354098554581040457275603515977806417062949759137568363865682920408970787918764778183142394486914955800831825245175341720527246937591624689961343429975508691760307875354092067446627108193889731351509513768550031225688802364689808450966296970259442314084781615885567096691636739310891578166411319745156871118744486661855389240224058185026355331835316345386651807511273032294348964590874731267467864079535460894392199792551659673569583691251665602613929802163644750487318577162026865679802418729088200016228070147642541634157813139780241075311476527677446930625593148879321189793565810746573780754183198752237670067526132736952023309337553230902580992034731690901727340255677320470762645579094527555838671155213720383950948043654153668652794267843035731004224037378821632493220988708076891072857988403484703926816656274223196158780350377642630579745166892953818568278335229766588205941001120506443109038369206848565377526696652610645821787606712494638952034402997128633753253128548124239107009899976204252644472267842512392539846565920989023511226583084422484855399813541193774713894326027241379713367559452885847797221431274246971037050662604699830426792159294725323576027259600006371002286828519298131615064372278245435734817700109091434705113064760689940527445648003360911985240013035424635706394100304053951747521083504310088284501187660420709271312859247695300394662049849131755970215959609414272837624652137050732572409064733677517208643413824607556562308174951369275101145909438408107278234429417360650678261408755849351247413059775061324914151679187855204820617585559117629636146719928420828153870242359702238688134083955461962360091788718940675989392146780780591221961738567333688791552289362246481492606018470779369136175756801277613847783430680886074152958947635703529194087477059036323641658080822797271170568575830358614053069647899885465049660475476389047435117929577629811440313076935731211479026458077371614028288616484508365541055800093466713044101446206630322771909489906999159766303577575177324540184450052432009004328529496438228295208897916747534045492350614140262730088953486150346669068908507909639232693184997905980898760612165406374097836188533245255576601549371533834617509522887956144488082334987180118283734497135492006304621651707610104373340383740540002700871099266445740694201751688427239955696387483684181898057525399933571863433930022800635326746329919623419010920947938789091547603006100608612342947967596920929304920684911772104946857816073413318184039841942676824851615966176110667420293533147480463519734759345559940082815049171704286833923899517752327544496313279350238677058241008850789859743746340923810755891236221416487280516219861723729839122305232779964439362415814723892616554104316934395511080784144428819591411845152942250280514241572571855382483913824139687301431531913993242068461438920191785648293468024679014389709321550386767025058883185505085098118519309853432385103771901820013246729304510852737882130519477855628855888854648046890882915946127037989628696946319212299768883558123081718869573169185440931370705371347915050172356151556344357791270469685701746845717383025565605082169654318273027484442561998024674298330386890640303885053694289074434139848369473488566922305914651192647551936798726304612090148972834214122138886053754373217097277464983026693970933279693216509208315359657599945192172368670442896135688977461736943307252541829166939622166319466725395796688203457468259534915749242090918117564102999753496564969333550424553260247562025098671944236647069450506107923256640677031931979530484421227308468112316834118294779618027374368172167215124733350422178032070206625468323449962402306604782148984559661237104345668104921304337650020688644467627773686396392492853042713315319845959913271314592017730246951089007553598322421015026979129950188718551470500553234465681131867016283681223520739280338944807835259774831439367908822506330049195774287194503820286590563635254915510377582407728856977673915461986536708145174447813255813383926940430934241963283439742191224857299544859708843828270036105179981202029800942764609723490662111412349100656872393547836069516100700268492072079476482018965778582940017243161226236361412427764100333441708369205153392089997135086286163635472927037077520251361569877450919046885624862595430304352945652219461542362005957843081647976953533772336931277878597433980388444425228477850471884381971501956302230607059536987238370478829470784608379963698554079920415382205366388887494601457782471955699110780070996391636851816809438356498019564955330152628866275635099797753080226455148311933693097406003085506693660738543130244042879270851624938378333456082250501477991245581064100567343231789889653131226089556584257012766852665669515137051548846092944023926171333722332803381236116676273426316950489189790880624255165585469787041196469950829741495130008777249950164064404019297505152743813715058325038569432079215508274509464986097765001035982374278719495996278381607088087293731161881656850348908711581083465255774720878030829351763214145283827786081467451170672616456898447594222633628412620066217684422511205047113140277427351229324427163939683595160783294098392405339865222238220752763629169800967897429508210042628689800527153033675820678343699654299480098925199797686863193098475005793975063795536918110093413425888496329955671088768488813460603692311561095053879784724830047096100406635121976784983174498163160641904280824287644559664023371039197815881111023012099168867858732229052340480916209453459634594109237865940282518949167202769044642669995038726553883946677768790903365444909980963671646256461377276372637165093231480556991617836831885241518302890203474212526749510940508385503624701984032614877157865440790639911235132163363176120043704092627523789256871629464152076563377788858807749559190149713148818992654296567127001595614359694705096861469001450517623373128654928020827219707041739461562838540186560764818306287638456539206340899927695191796257134393672611484738139327356358649770909002798540449916874060867623831867691486641466744777154300742427929932074158096618176040397935272780381005557560201617619691624857602252240999615815514959934118552973280424734457955828815119274971375095083113603858585941222576200617350121436540290996633152413382248481668778001450553024768977612095436196526579779154193456942800216663127724503459442526997764649111563293238780924115913238539225538749818541332979332850718167714144391629135763150339049116575124259348803749351305800757620071400780774574047401541896705498965258827640759845180167790987400642804601588388248557042387649886175354504182762842518221378709345787218402235993743211621473089314945377434062255965718019384147256796584348529336198342413672479940361968603855985215674817218938694403104910122557745039733198180999306852736002425767641280031392806096928254056426968264913953564656490249198519222579069349013581740730925210499427611683110891219458953489488968860448856204303608119170175376067767152814239686725605555661828028506695006614765966978059487866261640713472026237947761465111474349144658410894937281204621940895298388090014227433053614251475549090206832777378623078617369636980889044010350504282990110610443655866229818664063247953138933128659951625910123813522882829754568992428372866127009652390135777023366591298460512894884347957731508018570310756488889216647121543069064108437454067586070752323985760876274689438714673587770258223363596391588836893928702521574110818952464361618313640430781870309729245545867209556560375884245990916011643780498972770021341381036702219265541147237821927976908213514500308708860715755295204582987973625013963393327686517907918404874472891147093442751743514052653136335655549237436532424580221991765185259848457375532049232307013614377891008788545471690625479546190652440493641828699440950898410102703195311699273116658892281835099638910431433076640881946448963281129041194766057557929016348612114386505283590154402886021809277306661283820117891276908661783313049509897460197138029513805751582460424879315329844896403939458705996687850154578186999722682476186204800591481760402137421911820190108232811069013004815429223131390836342893423201053088792520437104286323101018176953413903317015108169841006673406746968307522126510272951221458223989114064970900466719590018784859178653011358722335585162457173853477867981732521762432812757502251565222311108615367613633066201689755464301865535699164228965846726662764895485740966738445435882784296481513157231556102053264716850989469623926924109081707060758774248404526929253304833588863989356491723747998819390959559375215268752457047205872358227439205495264682924387451943557893130212166470510253543081947736965214417847964830639280372847437955010210334013035056356930621384838663401300492755387667023159520302350319512555985249479850166874975997158651485474285101819892081846456574972945628920140253154486316677143688233245734099169866949213855907354248620680118759019546567035621182197686183766962907046426875896135780425568165866082500686595924221749324771709747377125841713429449657297234169956644335086988205283825713885205029252165876010647301295068046987174442911470235399765957607215957789465060451175756968756031881326904215262600578997559594921006034954589873292870924940087792858364257294868592754479010542051558260540915022298488769413545437563791209639031002332693538848435095478717881567927899378953666232843451717293953688138502966960067478402517456352304527120748754707949228542919636135289769884468366202009965826813009384021817066449684045971758455585184145927505727832405795008251944545987619318122284720954620931426871567896686180300696121695064378044973464613280655234625229142471697947107752621089426264235613635953218163317364936867287856091300163388822766940246159717172888419994816734336244944344791215778446747840891379082210319414080279186294000720730569469324013307646959426317276918023974388180068286487462104349720587230399644154895236274680336596511609502423037215146723223238013186602012094031540351759031510795906934174084567434177271363961634796592555678476456085249795161010187509902015392531663768098175232889698898877619640326339519178980602004767126949664366973246424730633806784087738105606528846421643334261160991525878609284271069981648391465385378615627977050950771093964228248832109248466187577234979952445041366812965296280444871939615036186046813936463968097105776963536840306546229658553714130251998446938995518113299295013109089841942895046682647268642500038012510223811135053587816254487273960576049007682140546017812132945847075414683394923419899819074182022457702836883209387022809095978081305201294391310956242933501706058692797768650233010443329183195758448088184214578367033334398617230433717207750004681044333298562464823753105916052921129648140837890520724718705363326220860873299268009624150253826209529178423422876165751250316985311456147115693870181942438058242362482615516254222358870606572369099386280221567393733945863580416710847533618647851161897611560571423460440575218717478697342325544267200831330409340914516133273288371068516644048186740737423952848678406390301861128237009051745028673192279800203392941614885335742031452137055243196483947081173914842143583227812556816712237684372287790085586830339831244989377092343014166297095745383508074945527686392708898702020394980429945165675483220044484019143450831290479381411791777686750971148966158901886303757909754768310094654348794245286396003190886778309815508287923178642228484938308724606118995599320601309363458552902561875055604713418542232535689697295941806927157562853249744371301081622510703053690257766717994613949867276755414714516923145291074157396040996512032446403009236002771604805946481178587636223490861242070843710530128561174286356288557222026007409873064046433306402850498126147991681293620380736261163123417111856455053088382838122077486244536898730965742064408610105530618335193576822917861278757350592761252482588256595520807635572194473901199686113815530087218097264899728331915815223490768115667917765205418525807097252205717307443479335585487936480754791049179852371317248315573870464237084079025503761129104649111898696651724277040342065698461686236237013483359112546898508473128378574257552156479611126368310019997366215822729256650557884190628408752965221681836462237096873362868495659992064052790090200676037007065945841495618408444306076280048054794494825437126420306158906804090218242177854002463865123005987563684118014882900771946976731475010074126387534278216002079273361161412688318711539227757751354273366549390180409346968887536533570013023217697431810321893641042902387248881154635878396002898598632807274795375994239174804587871036748698667547963857047480813238070736096794194278843930240329363588785090135290175939890424997871357755729676867083105014503921005766176608290089985937273602831883259808485516448891114591671388440344774225065613961926189165723370856816698286917960124309579201118377484875789334077458006319747928326571475961777951708200275672107652429735840491958980610913617260170456581846888854137452823106364098958498482872023338513097422297100797299949296444476308494018284316621406016424388552613801513813357169752881408585880406759969968550727543733098144869869844165619018413983219385235281630718856287480340475928893381942117810854630146783802143563875254786808849840057390578372898551847868776272710556180400680431359496908266675363991301868569458047250800348434008060480642252588185624447618993848708774094969406401639854807759553396212728363573255838869943064256654113876166613946278167734241910238536412314590680782355243417055465805938004772739342075379534654016773414972016972941939350953846851440856262265336946258274599214902049290583543849817129641853401455917555682763220966716162270938924538204377952620081695704855932070569251399787301556061759537792530966414398826430528834560435989922323122641998513735858450147484883446808181081478693977864871004880153401960402506513716446165218573434489322788912874359787630496183773378340107462222911384942303616625511556563890200745854287977961376858315786351848392471242010119680260683975780436989131093334009191864664686584190595463927971436674909493586199751092438176957187363439552590569909682715067502365593791110989139826416556574735624683278269574803206880475130138065489304836602861593811137048155985374435675041705146047488339291882513353742910711556186003007179876048691049432799713167795993837539448066631115624408171789379874334126561962587363457489483714830106910388434554879152287447011523730477192113759283142515743838360916602462227327381022848000094300072893496008543487743851497954343722298676682944857569297810799851533535475705042081145550325132522440312861728160212007936210288285120380949398909870864091166710827029733126090703679576939164752562154368773643972671891137914898412896230218885237182683740035626821415225882115633569186406304366689083801739159429691868090530775908024556928494391714039002946345685318505727011107594239474008812035031676889751099734841953552374717758607721170636310849667963318960919490408904988883731953075302142349186118329106257503601427444704770666912192416149460373558318233397032740060778160672210794877382622620620115535313592117845282323815233545797375677173821897664171029217719492200269113743351181700758536068167144876224198312571371955762020576196644513353372281531004075231977462739157794318149872309480122701763742883785555750814635843133604288611295380372028997821728423669503210284954039290875360090133702575736848954557278625723172433505597128833785370986647036962719451424542152980211197773914056580769645166851908796314313088910447568213984159246329564963945245697979431253535186067288916843254397056138896337176287779708821152030498278114690486955685336993950756476481617984610105482157984740680756934452480637869145348135082999840931400138358278086295926125039265599865557573945458640428987892040167784907769502059000016346473093188574831201310213553498942176309796547021732499329702353385323297963270066565899424627526370656375302000495299569847646654245818521627034319194992490682555375738475328376149185576212383803981444388850092118327620248547580175148319315456102126572402943693623785548658946799753869900576117399876267369595149595418075133209277438715024029294454364475865150207207787861534052951768149386203767200773680512966680748852425007423304618268707077059818049207730978019461674242356485294422141362817400162795899863957122073550506874496229968120406606292387444616060191585788226679134686118863836590023115779955352683556669118906595744532555691077059417647212630860186417883584940618650525593332358582756926000478509629884375544619821671690927510552835178552920296610533708378360650348870551423531573854550497217504219432350055568456056979529347157730673563396463157925376050252624707478395783492364530818744412242103171939919861392453182952668007159914886859016251632726816915310780061509004036367156863674209452106466097459595836529491239841889713927100175524477464666688757745996454495281500017319532183103593751204584944021121376556901458020911800482172913088853936843401765498881859506305923866333855595252241245470766083247346987566777893038983112143646881590123598020544743901352884724621600078485612389299582652680966865633010512008863869194182998359226258897408843353459330481137119522218974255683750472229238297407536935372980097699310251036660092322198199165794906838708691903438782265787142866855659522274687680340506836911771885897755738847323740327231742373750286196142874170079175245619237879234036031506335325216712420772688166490659615502902882069674208225658385604624444118959200404307304108668019147933152923527619450025948830311429848640132442086659215090112742697306354595264529158308040557620128222507349793942423380615573716495229696244523628633606711828058832102368943312972655541940317545355384186816173217174935530066465590739768693715159037643053947304160771324542566863184305660485273041274238430425647028185569664522644463490434904335473474790324387404152586957356456076678831174464356180987318102210195308478032543226299400268453339541958388149385438478046744374521887790323558260123459032323097296746934146003276676536104291200647216155882125151499621785097986680753979350699220388969549340382257097349340631520788539792436768543769740818627853653866836024077548252897965422439133389256608011726951478237170924898929860761426512300122518748245739384113686438853240995117258657440363431762504710863390597021863010981763245647027617627327566988544558184820194323866354887668104537512627883402082762553862958372669611678190665785998563934568494010658791161970949355226722279132823110272154920967759194347030216038873027135985233968007149810769464263940781310999844701684128637761320860738742242503879022456406318737689597070934299147548403795633717044118995234377944277798977776886174047478933938092270620389745669522842480757910297088115340039459801783863966297587910109947533658050694603235920446454114399237017972801350985162357012816439776585377040956842847510203602965291687172347754656134660183233554188461582543165916897217597537771342725937816853763392689624269288077967216022130982211527892651114310898967447507529426206093813374918160747286834211973376967256702514187475537022931289568590661510810566532116761648586596165576978932830491868393117415063474319990551721035578130120150026829236359562697501286441425924003128793320806404667500391565290296317924683842909011264150373392112741199333659741672771315898393640425374327764595395531961410098845399194357774910657001387572167071567462037465612904201078808668593835751056971916729945711113991852309905813838517516131271328087381596135871433584272563891297439415911483383520628670654016714448565972529947260442026411399521412057911165622026018258299647003028206014592745417678899858078016912260308493415003955889496773360484193377445080594620816379671557168508092432060520086780206300790316116465284862144664300053061986833708348002125685715721293075708271565327129682978277521508690790349067738596234110181895183396105840276160720145539265078695562374641177119036413836838562038075947973766271562889331880782675885982640987479379859806412089767324479765438400408220653664365617010300391047566670715154542459457085662614541428765960279386910085857293091656952810476029220795021061938614024798451779029773734208686863834113887960581314153498216170120760560986559932764798756330146098160110332621647533079538640339093538182076853779823930612796498148115870235223992891212880075983601999633543174006822510253258025661666882175946566871181126223282268971025369699586920837856354186045222335201874011716102741409020029735312191106901884175073337743603313061950426128233726012618507569156246620983164381068222279402927995893465536469004692030639331361408640068732386728740050881000663196799257653536871616849787454587675572675268319684468034031815221790885950841195935328332629191848708706354722845467613134034568590890209511078338076052828244941310400605449538695968857611318612096963184171320214638212403965653414158089055004164369129536212606958567543507662656433417885082239816085767400968375573727899267439761782086818469292665790025925987519974666988702487709921664304997047909961473508676621555903574072242907138153024118314113921187331601861984005994934746784427874023418992252407912841046200941723841432035900986783412590532123297467026237886572057453437105544230181206997489752602894300456477427884601711274781792095605402214677644338279401184212869546362260139541434665939160427513160674797574093399762736768944884801304155029280918807135181992123350710210937080855605197343863975284329156135482297009537853458172487077558636742896843654881350327431130618612955933509675710701394684013814210821725790621052637595163446871808983782259788821334156840708771108039395488691632796576516434329477285114604279732587374017363176174342710507287011407401427083149623960881037682819359916463183526078206158115498281278388044972722623430034351604647820620043417543498895376164226811032734367854120470983169941547071706303893711188410527739120854745076691756985539887434406259077062412411458784927668133143792237870659903750179469030497444244798038667719706039370662592799013119542032721828842404670632392313850695325997600522387958897319562957034690561824581083204992707477816150788961961276679279760864477981716586107193925140842327839963858966723340921236016050956257963120469063767514510083106200079392343744138983477539513883477390565354911446536537524333577672907288289185869294043664682584349596693199876347150443198828791787662799311597757786733774880660970965865608048978836048041571116900915382091015326035056290101081020014108586364744453900607736329082363076995533230000449604154785956640144123632797154701541378835980772334061461688198146418790508617143329561132651824043304284174267697610265484610409948817687141303167180195404732138840159908191846330830425566412430854019142855407747129357837476429333176416130950878572860807637172934799962661031657596052154094489794358385564764232472872760793459479966292628792021125753280149574463837700718410714518947350376450665780116843056151560369899511651320610961252077479360996999646069701014695986875667114798369076324958075920789539077923417499967609580560312825859375950506643542244102548951087051108485689550362613646364176601702572038709680725706790247793405141335953147395337380070273964158832504596372481062452515231912030830254149097109651010268888222271207736577523693708818146538066147922097789893117963873576847379258402993076428016182398831967673050758054257831703183609980782797797854949671291433663119778698376561420117382571501102620055004971798676989707889543091312713077020541749386054305448515753530221299591229169024513956631518062267273486081017257337796747344750462575409192733571015987464958953927160187148267329169353901278690287180117410100864845579336043554256852223950624016109455532602551046114515178992991997209659748619009590071797631109359508040782169659001225599595408939819799657494598167496481560744531962116279364117269283144563351133102426413374401176264428025705545913989214735938986796033082467819586299518736131094041577823423835594631057927758099112170225642763003888723231588761048568313426137280443239624406762871961558644760083875772013946783745393472101379465723292884547081287564283757373318844784790352735192046061202820602611656442387750904837270104947233041277135365491425926325831127999041742535084937902360214064408639608358171495031545536244815583037912028664105869576649095197065792207509468701473160585859935309563572450522605855096718080619546359835868115389022536538905964719434732404608693500578329461349264318001847335862925411127266568912607988098727273003818370794587166748992672360766934939295277345004114790158181105749145631519039590574556379506736576580910479234022818211039337996741042528780629999141299837122956748747766118699132301891583983053118965697064128094403221306546403904970818495257024787342509509639698744864271666712840223701654082666908909317951747026636925225927611824967732727717400825770750912283273606958390139357584395654686858830656974423581084125530197142469933745107426202710695112506623456749234785927296510886433379869272404618848015894572647841046212032480451667406124672772764328535784076883157365098182673426662351673263093999144970386800756074857381045664773576653895444682570186813351986927491133136423636683343556724144703071556882195436594595028482192526359171992655566948481781290147966570306045618529468353389229275771600962372247883585786672833303271948392544240985168078838917557079556849484300818274135413587347491363337324193429240243706764422169330976888608225429075257327170276451862595413482640829483927147183253353251840287892046868483949315032414391105887690516315881482757206055832347564238995940529262778428996776543079151577983510737994126102432893534253183510807849965240935757778815888585354571899548081397841375777275634514089745762198260562019747423824768154050963931492048850849177192141347876555975332874116995262912041248479774978544921866790379227275433205581242385423571038899454125734917743161020373548770994469463137726872156211250478757112627297027527426094455407611026201457650156298778905354918071085818632474614019120120834639582701374197551604075880703727688287732616453256349642020306475489759089443625653683821401748308113469576182614974845522605013467329803622261484621047342331325887973659153412026271088515357678582003231607579412668015646860468025606763713057149775479600901551421188935117517744740793354911863719930251408016326593884289528556011064967808793945213800373135808921737394836470687769151761757291344700293888134612517772132679855368097318829986138542253398402834458359222708820371639931250497572506686344868345054900316424988686011215002980088989686342090709918809368683585223357624883332547287293018657080542553631739748903988303282675255475041285698246150786737372041613219133750797883812200627578673420990097905395981428088808444306353199333892040941529914336406320298534404255040335140207127578999225706443243312742404660803231422256198173983160078232072891892412882219755851213954446588630681398441690004469572029464676513723582548093073018713781957944853419570947064687736887570685966113711170376816092666777914024707606284299002091330593068725893612061818811398368037147781761888432387152705639438899821619185363512737745144454671357060563288179061466420240878246525662954506353504124761086304582110256686684377858080205128597586357027735529484762628760153627169135500920647103839371608672175502149754228978541686846441211618611280469630629847846134955373290688091511092558906409474093879927508412905862610486213280207852983885689152487643994749440538319590792977034896473418716916703112384045264218000591938008892946710708973357154820009952844655308763669923918779193365118299095043474015499782321190670008122310859588681859676219734794182088306941188682878490122329499818422282019968347140033380843003662995662634577499528955734823926035509100077964504801500093100251637616677078899457526552444267865783437948224669653780489733505493096795502502926081076307322086006910134776125461907095825021387161254244826507887328124476698404662727868400738735978357241858869636943418637604534442237019463877999585966186726182833224511315130489687384339683060164606470562626050994283867169615383352530065459108079406640470645420550955936003423041418314851949846033399848149385701517704185429009105653525751615106598781726023449611915426792500606897885871149115920908777240979533156269998165421376310250190388066764597869891465200174111123323687345854417338921467554028045589800815106712793854332837967520659950090828300056918701349525778124414595833844020699851775042614737118952044333972650256821150523762749099912242768954807534889415893182808712014723148688783919044778593119287814988761359222903855525918976182476748781237377415012581209716254982873551264062325144830403940628059417369481436535183934890455987523356555396721659488689450498955629851483911962735164785516864890799438155014467915286495029864487648023112154756534730282949482940784458263041006850879617571972630721486043819998913208744262356615467596213988887541968150678928285709171008785159877878950039174684649881200374305289534299909132343251109694741956289275516445346255280433739701095863288105461556719752422994265171715701358181324049055648447207855724368104655808132005581586339595913285801726183889587040007365605143300178017838158358777419856705389083581305892584840513647666274380789787439088315156487824834503162969598347365080639877329560646789680232462894231336532017951654875410464295904227142014700265525234001120089629680282538568394432484281947002305739622402654424157717274481899553742140366301525752404788389399525542226814266169462906564466311421632220240509605723680341601962898089566584911523509899287607212650228410305052096187751577238673798970525600667528169847791217093548429156289794548938642951454545298523126334515077094032476636129479233191419907719059919864020291678181309362053883707087852983226189986733179281739416925231143036345885123078627029531085043677376972999204737870608905545542804638339865903218626710041340410765467655039049760783702988176848233602687178811515092772446240956375791974948516579510225392313847081719619047837849162612342406868080985829939113600547261167694045151304492806479749478137860584783693918072447730317342884371853951273979313013896394942978910955107168159959587938590714102764468648223474468516879268444922285645343127986542850258473639573420513941364994320418502154516308190859578629518759349625239086974612445173905641451367165595684825053700447308872134516387426236487877784987273100653906514512410929018666107792670594176380558243098611861882083938514644601948528627935136623078526769553138825101364488891620506698849385657379754941614403574254679104850213913636792936132312788072370581830189788143942626915418542173588458730058416035247706149661048857859728436359679293636845807025542664809600089347953845287681115890909017268621400522171293645837363022230347800389683500958196251619441115239491880876247803075535366292641414073101267239077849968886155893369972798145803391492493432038753145651381286201873682724402391927476858236877526484808473107356846436638213223422172244010635423513133167142820924489648198162106025872228621335471998664165176175820940903227138288351121862347808851425207676606818061042799611235836668029823076587306073047380494670377354833306904959792942288262458071160204311681460755307463240542249995196060343159289035402041341755340516960443604896582261754781051647463485719441230859820438946604200937983361520447485364963693231206450825838016261186497343008573240958253273484485738229289124262387930880002832440887851168830836935446918434379453056018239889621492240411933679094436126634156238992011298755035381730748941359547489642456142466286038034702403329557680628592545820646479687434847460438528517857440281412485126049256427622438057093335067698235555781154775272970950764323234944955860677040492180416995035994365184959962299145268684291529355505479721465159999372031110421550153905513276760941965855963339584493104072477038479126432448202178217993393897534817277536478336787637858277476024962401247267506004391735946441800784374562131440684186913732031544937156317821472577063962266958043819679938136582754026402327428848032360835730851837675756735324971446183581085769370764938861067625704086891528123260931066739501954590854039893706288445923448701182812352603979516163949349992119404793879926482319296280847234183653546722078499624804967766870875618804838102721185767622851875605042564057283837485568196765848314221838725749014864957590829226542468435673023610902211286337584937026052039853252997701915363786940537366624864959999322306776530318126875074019876197841645795237561890233123372656727952286624787280413330169036277791190577831923109390993041084438865424776773983701573772855927458351247726144326175451667863214914085299610774721055093071406681349732145246195305616819522846312968756487544149079134875484242669139213298041291367641133483080543773836935199280282118484836744274323326591289098119183346530990586192532110092895085911925037880461965723104845599722004450802279222063484504465107663739359556135872032843886314171854737959323970850950559019603128153190767145150260753971509475328891479560071253158731505286972691492762550635403440811405726324673419461562292353972307061764396818280231409118392803268815390577525441108437784161210055906518241737504642502862301853918863752377393989154221762389501259282295825901427550383876851397761043428179159070933112107304323272528647827359442603932953944317673306497916628456418005743617768413743785384520118802270949764595229133142198748875682341590629100793685322378248491786331002624471501843810188685585889062539759846588917599930781550486988835142393903197808521776008899637342271398696763965690721626975871174923465969127578983678414990114323577845295204506080271232042283825383794812833604157958668530631228260461745812956461349928134643928475430152259945849506972296644869753257346971235409823434264481004340927419985567661900892568744049120473999322260690273945254167531844849046533750257829865121468940746323208162063230920274107780379583342142119989058505978028066974710672973613763443144180094987447213143522894618337118626287819449832020785593696961404745253822613175850288390312484447025645019455265376051869806428994394097242562187554430739940289743809220812919657638105722960232177670432527024492745709118900537803480393671751664915797502967214110318848449812595907527526606471993204928265410724446726546983387997155323284196916519766772362539225768103862622346324786170128699060513225349822098205322422402749107201959172765147667857533701896585439442862010873496277613932170668025249813500568952540008629041685436263529842578984016422622538122961469675364559222673810146075059550976783802174223558123137775760268719779749284834979263907099121044544825118021156207128670681737049895792161482219114474518834677585936250943123102361213347230057114205828532001475979351494393087939318894268867154759686474692167523390749405066560290588307849181262049508010174468793523743948112182161539647158835223246797151177831580832627284630809487364165360112219182667900890363891287176101530191357363527883465022771812496039872328410504445397650044001549848087357802217529006843921545618346662743066772889623168327901001891524127877616807204921827658306187679122195114727623887882348152534356022321548845864365117179845555342869938245430313994573945472635877981265120673688456860064327612416587203565029474307814319438441764550618786727006047024830035188138143545219673984873929063941228607291189145306918577117808102471302433343810079566546276303242191395758457952768690401793974885145973519249002712579031828661905742608111121811241757155944303745683985690781784004331052275767601640399962468231608429270890593002775851841485728240538381146684514251380775862868625333543005047054190347238859728505784352289086048351788279688617615621152019138032149404788816023337570298549031750538788128207189906371745992051323714819873932774403012436471259827087118182707122046842575509913841990958421462882678999063404751244360124210127649802610271297339143202857761184773980430244069880668904908566309261801813859802808936104289312855807958380892110705184813628453336507929070475989441884035107969409645230971537352802309191926021297312533092863303937210961834973030436556266854388316106590452292710243721433711410835191374783360228779000777343033806749572500248523249122946623357544633567186990753244170896969000669616237992764163010634468180080242309896972815165047367471783569611660210772812648103634212718548676634466334206870742865245498548601918262671497860207671319055593977934897642306441204591423312259008941927549866668043817595782766053375302562076395553468843596045888882402282837467736570926841460574291248947066929878900299205933726065717739185443090417846443142806993605413640497586637449809563310546903940491404726770146212434874064939342723525238580658182706382316380069391849021248017703535924165015993134043395651171994730573247548436763703107365285946640522166678421080073131441307481921530082048390717754241876625153324906911829624246792317457988932621172359861375358448997082474023170454963730620873644222509345062573802157730942689892340242494389628628239660066496000152104379985117617800458436268300273553642140619505569347407767612416289240265882173510240121467140653455373541470680817279263108255409202151083263321870967756235513358437954047738474056069044138572698072390767462359167205054959499561414598205077822891500925296308883924942234627724728305692330104219864597540580547272288841462108426057754620644676575792896534603807391502550864701396954482362566009823032065064304245502560972641814833579013464689212712618022070944997295906363995775712543244278823874275890017568233491526186725764237277885373778027679709926829423065870845039312923109808986254756734961343182234451157996432961711467623648745889265759479781501941099527765430810188529919931323476659019027936747311413570132315330046315099927806741832655453533107152630922657045692874279684496553349326777963445520417882652680185108547521266883674363059219966618107983099411362650637441472183443538500574222458602520960150229318950294035129903271395901128844847898245564035546239003463650346954449124378133620903513912225407605567060426773812245006541527459001952772046320333287599110489465457399025709396776057774026674054028516467073577259872901453325049576083451986943356136115520020886443292652624930027767605464622014730457531310155202610080541599956347333431286302625696692849594338998156447013006878976440892473877994422748825937724805288475802892109807153227218884526451186573093504467536402507089642453707003163271938507623223052853529825938452346126815152618121718078847705450318382737159733199747770848399134608171571714002617642990790252942085030119659151882568715627640663829499835425962382465221688112091830220459850003639030796178908759030860226045234132240179960158547545423959215992876483750487642052967867258638344753815792371334545273569729495995206499199480025430994453457280301961911380123202326053468005714083015826167086091721523914927632909239076672980897361697861279795521250368502723511467002218970184206879232723785699462764857466743279246469198251581679006127751850992335311702445139783003317459606272090464276414701777910766248057218784355615669774075804204843229523473956252575072926248363788377941324757763076881587176697104128416595407694591950771642159204139073344383302867694223944392897709318757200892993480889448183138143518188968951683863853409389856048718826786936864473725854414964102279192516529112203997659079576676336873591290039518962774011354398969783449149340520325457197623850598970916410048591499506081614495625341083702522199188897433174441260234929920304253322116134480870924359839666277975144820798858943329991408845225756997860887978921507422491511390133250172964688988678269177987230566263998262863998207348738822298704950547306634264517772923789965047172085532189926451872246240008061689379915734265246929676852519837977642998329229305093837004107741972301305401446486451489579041052809798332714548602678126446543308346758788877891241628552707897028254108472749133489905987049099784471116707405222146864918202682750330893085685301383840945641987371117200167866563747060546269329526326171300138508557374234864660970778443756166231086793034604750152039107841982375715288525845703524684497195286407376164354642559401544850309529447744703755635597726599119821448159776243736958778295486615928911967917174877579898645291614487698107517329978929561683748425764506054063492517650954060102357225652252208768984802965460137554163798323127846470984127695868672523243505260114705469955676820098882492622815921281134027680080020052159567098997384166998673867657043792985083481659938052606479111152766610430953777973862563932857296897222968478883623565007528543580597956913006668534469257820800928802799523189427711814999006097005593382349286539166090374262142231741597463236614507763609304627144226500948536388280473519876467996029594368379255238869425609952344751238169617240649956433084095567055102978379377509407898680510401486579769012498518677237977536766792690276336863675713334542097632125822983074508186125891886317252307462330594318313679531084427766749656008574230593021563392146964930169237270074982554430140850872675964501475545789087637991941387827426059323092525055736651107571751902659829825273747247474939526010366840683800043482892224242953357098848427735663506234218665533247105824685035704919843936195335360040597153551324490444716080619014544413136545401464050377505476724946553617790149682378259551952534345133636855282724531397066486076470498855833333017383365062896688463938946369259686344372290872400350783673355030216252412752102492740737784643074075776403560914491033006929145117338455845991597169987204749806670870070543036200137473862201029975428076904635000460296237084830875323764838251435100095015016434234804558555273748013222623343518355392711078858772148381306935152019681672411638051266268678062263414329847200631409266955250369703311086435737059392911879451965523558885359073049342141468254144828908711224151159241754883332645825628455000092456748044371150455765290309801204580628249379104007492209144290562381767135309053975318369304270180029258404886339278775109945854996199936344320669352373649623040676957867423401897885925343383807891120332884172149231147066158001912765057778732888591374886870151052840307451428544405038865747900106389437886980403693317353920589751795314144159198528232008511414405572010740306288171872120603699989138928698885657477339891694779397580148529573278263094919248554581407132289984148899121633237078039553409235579676967778407802571787156328435278941743572517341183845382953900432166536064544296766133869659450196752090566491494039597705743473053593641515275594726463904356061086038120345207600116585307498312892539566270034369275650176566368654115233820615701473101315759936597537998200453545895333280937588071782388364761922384552755346162926887633647589325544205858260474076292229130386818671076272656381296816978399587027505117483256968334326558711391949705344625147237660047936833635731871327239875392041807303920714404522323960288112827617734427182293250260053584635062874374941182751376198092322730363064914133569120874022147342419377412964245768339624027819657806139183033254391088671223419801818592608689835034049534407968171189853675278209495094998696433506822213742944078333452927856046114924548730314322672403560382772593489822679715296354579823314840079343201977423641551662894968579062438865476236525605816141938002795416656231220691784630269361914058441135004031012803347754250460293382127111651624582204085090137048833579862802632173222730760503753726946525337373467957101994528343097601736124510365888640091945095696535478482498288079516743618696833044024897177264769780293630437566152475332754533989381136963782433489901681923856964313346410741619478693890553683309899439830070087661031565881901353366379660114353247818345037265463907376152035932294282440914918673523857560638498273261448904814858546015376030873907512065287101681103174173172472588642688341137452722289939691661812367924261187211216905221984202122969055202310267145884483662751457865529166294847013060795538078436931540147557610293653951905596425603652473225040538134525540974908520241516308351973433212154818002292970091678899813292602414365566261327261250480970293119753770776036189563440291443091701646210213063544534835650838226736596896941346393295225152801153502070755252061393247182908642849835744951693498443873498347079908810481186353925816811376298140316762525112871024943373828672127625149559435101063705881655305609193954320066334286347567241775670883316524261579193002702379783980668228918883309169570552437580678761696734495779720657499134501925899733000358081419016509164574798886363680816890295877319853535623554217261147264821724829016032560543056247612208419401030592605888248774745995605614308300788749214453824203714062186733200812358760319335204893278110376851764906656136510351725391085872582397654692213483005027095814273950976156420107668273645126218076558359213771559601177966341616534482651651835541933788922533583997955534163355465507896483672551768323938561158682892289719861984067743545061781383527079859923853114024533842108917577722785658101043320205400801326996892659312593710700899144067670170171818403845158654692699480969846829076760201562113564836559634377220612883953303213112779623513250815230405327810970691555094668302449038527274745779344549093819873328158143116523549448914188745138376204552725188865223273988100886128754881409500428682100990249088926528328082024970953563089043060623272144455449506687020605638798848457203204874935591599671319668383451183697024476507552862847854200477541966300000352381228900482688421295592564149272114195004631348509201137564109886477258614433989734418335303563360647121105651387620744398477032689834882612833406097589907468086785040708848012902185413645572785013200473010266404339760123784638377879645476897953814836885511025822482122512241104193902583687232456063288350287218553477445027780994376681031723979548125498878750227346424988300022405765891886137189237243415562953868688081838735620898383356472461735643232993119507514710297239991119299462650126133642873786189702872455851695993048464141388772007601734556926149620477787591393556152128077321815599851737709806490316849947560749159577180455061338640071543608061224076958038114827095857024060549919521250362697550647892963989472872562506260775825520754681834764002977905430612017633341477658382241862283520306711166504044587450402698236984077230989922860279460030581782433354381276348431081090062357211965969544345124841243622357147900815891460778318890204730958287655725733819286404910833644161330104618737419747636235875284635109352503384712199547716371447885278773758314148864642437232553968678068394886732520868386570327365117679438490580234522853152473790182823459677389475991159840932631061292878364778504805995275814419573405610285230107980065807483063290209729827198453913557020573965793502672186092695537208574904897118167750369074103732004348617667897492875649221235229582387141158224701578418096769274137248981911478883691445844624091450628021099050828374578806114797181749121406612484931140983319652579069621169902649079543455832825804499141071807456350245707023352942957662829917149233437369610580263014490353892566416647996940639888130243613722864728912230629035084830225830548907809146294827307051426917637917760133561373150841866951806021945580566827084935454923773349137129310426397830521737381723023299411532555317660455916439465350245619845003609837265712556605210683628942844692171793744017836646248234028431007475320641237275440913775928864569261099300091510272456517734188431462847151987189647800510537193420168578221092501231305055175452136150693003845758282489188948776350945548151352368639794796028831725273078148173123435112290143723863904547881450534890622875872357517046102547408957001145576856391397239690698174572925900651587103229565719579643092573610555845849893406954360212812326441946918274930559634046693495221586480383047936451678438395572757544575104466684561523027326718825676344810088462441965884220637161299598879069854963183278894564003558979684275929736280808357591827093737762971622257541179387342207726499757075191916724022663238452350983927637977915148394433449053845750940239102538311747054877457234131238735156699647718624142238652432303582885185313185627470268016295559455443871890803131501038976152027418847850575191052719602755468747340113279914437211514594585328516282174466987188647991321805974066994406421705522487843569996714991150648619777811551385544256658955935723762327198026332077962014822713694400837196720003260528706246857081294100409609847264242519581603311798308313232971648687180856353936004492710539805646863048334241447386381230463724961750346375513252309849121955095283369166878179379913109290064305044952291633587906745935350646145285195256459748571020389142140044339987397375459019627624149887956865820474985799528412044920278370364558464162448033589467698118151652238596552101625302843363846547291786673543708651526566202741790441970358563269867147343430677798255583072168388671017649351931776251255273442287209618672859385578648900089632604936527668328892376152625543411076233822013059665297301274577693711217254364659098526681741988967346758018196441984712882539186058190704566060492522867351861956950791567038949316581575047200918292092159764629799686583093452181764149692211430352034351221647885922394682661489096775066948123882855849984110971333466784198402696390625728787786721389477848686464500014800661677844865306265493887367765001061523767969550184611056409438364800703055539496643145687941425998246268553429443397444103461518896335200761922197393677787345479126888168811877169796552354909222868157161090248409605494009871189068924999275429573942671802043935848674075111203781227849488923961075068489016532607448804297438487070320502799155645754132636211512081441640810403847486043185666491809583728126806704300156585554658460299134725023536673864560987277110223416536441108258866493775800903721399237728360074267859177393870712201941172119636069724088778972975352754933915510880560891314275217826298577544558089532179638762373250667893040897140757101542934619047312185493917356717745825940425693901260048601826541107121843969144770205467564449180828357426388628840270283823688384241508696424841174039338865129885528829003412609354281946628828820472357519171776150350249888086204145890124280787655955883854921918202478727464756723332236281835477553768995403644376727145255190992255764485561054904446228935204499850951768440303162234662008704068675524821836812167967629079171103425692806545196588851983259022356821220840687757933727396329598233748238647343249002659174835005373747131977651659347702348328081214969391679302492937369290589837257919483983747861589884999893425523901195152791916883501683643302291248261175410623198023274888454627329230548836442158166034302556331806841654527865642401638870632254136800804052980640704170468414185943900357406798910964689598837962438093634343970146053130117170775406055051965504100696695801650982537332426560807993064683841657675271367208917395372172732487566307506386309314229779496887127912598293487140436711587872117475246828663221380533270688315769059887328328764918582220524632533314397100821994692808017519979803635880488062025420351131686923465745470486560779663031417473119902449324494026988126250529727371630451799016157791977775445315841081165892322596825235522882838176967692172237625382552202057500860018769698128065232530944501954124658218319066088245513169522764032805440900296390422537502233421319966231597709333977905551954080678551861266220643621828389059165127171185823725542870713877499942974224972827483160316524421361178874543769347971508729079771597498301079576927256453985614247650043585435278771473799579984666719203792565074848804930042814610891326685724061702645343780017340408707671954432293312801983881313191477498137340351584296202493350566032131652483458094790184302813566546478920169225672653370167522457055510000239455510886277206937111222816240605057149807392069315500696589049921244719820080117186997163660178873684146215262603893473091390255522651897133472549403699073383909040207985056500363072476630508042516494512958930859270648424313301496085780022735943616286102154255157795193620129907436959829360642453627755039992204473361504232322706153293810249935977288802369276054248372005022638655688857155495771018300991678508245244084091675802345606542338795296507480322635902224060386867043758215972950040267318289399111305723161773112013441519879085327464395029711531410988345015935067928530452943275825755714894409821483207187745470971835567359255719727690419267653796036417489847331126004387594897978210525256396961562710940882811407979212891971056305180747456829541619694656290213455423479947129973944578444897420131315115450047073007039375433391038060960449646989208748217926349211733735933273059652821930941161265746559404417950633047694559020740630763883040541151056014546549736432495461217214927685971048109963527921494467042071249758260245370423643417115438782444549438426267109472269620759849499417192014034250941530739847023488047040533470583208661589395778921339225645481314424233376512911629914961398708625328368558079127954812424520180648098459069596791677763084819932466464442196815780392908035556991847155543029640448373864888163444318327067859591532350818584922589951558495226202119494448070032476025713061866782150904534866473976110977093829727211681468402496846239745573551241460362056073454903280785618698601120831869070029146479784410686525827035562918498547561476524300237498729702802997581839985418800012496874936746287295791085063826877032261725662406771343279782846291726872104054334392310739316308307534151391735327129374768267194926198110211895638525617557079895404591200482483380705766216831715016765289154384430446378309291751074793964095575617856325622921323682375881667901573064966993054105276946117594667150484955063828423107425723618652633667973082426505847937960055428477477535462965329483212514206768242631478432367737514891217006783277025770461897993460990322188477127157723084770729886622370236126307774794930315386147077974586491609387552913581945734205357871017440634846484500290603605800752266445899761627591249972845084108172138857077029961112694398900728974318929586663868046762225860590190534319413103599542861267757932354982706406544278613883289837357387041841941519007231382275910742531877915032146466305662727191966518968083082829723539763864875865153871662717608927521348156553498417598369920808510590074206530643525986924973463299025310056889686059969118561783973253833208117243289623087870105555841796956167863317447522596899380004131017922691059190707730526676816304950598541879990597266473583197198606424528139862250338554356001216054984993357302833258545312882864251293050990965540780993529758333257760439439224877731723294065110436966680449948960350253448399782335715842007077768640832913706569603290318686140440812854849002505535979449531527248656535588712382983202957876386879888611894901196482414088485154395803226362293910912029547965467638887605822199124769784119636729461249903547261406267884514610218747042313996357446264944415534731025186744814425656351888936516267165437469903806308758603722247704714528631119135822655565853071051687583617046873444140879964312841002478302102470169692208991449478741284840079377405429545007400643877298939404014257203392882137451769649679032948595002934620119704058533383974547563222732993019934033669744416984412273055449090785322493061461321700529349857118375034264392267090673390329022756439928869862977135150237094051151760412466410160427064550388543550377299148756671865339014091419511554121097525882656206032085968251923575367128988374764709625227166151571636425112793427159529544722386653736057865553552925932383103505479663885960187437430120899324326327364058027957216393211897628339809978538474290945368423690580881110143936860550793979440869008464912576081217026695737218312266516007612125764380212891069322922707807225515584600884449894987013243014901014740394938808359674893254250071717269812236060980958952581260195800501862904728962390521371647196450439420058137792393620460812750328707137752678819508159549148325561060650607331164477931855996307302469222911320257958958015056692895172234650961716502470887440543813410765658420041545984626915419539142787305583159113770442064520891760953983773429039746754558799882839980543446646336193718126389641465082253481037467611374370000603132247947849196159294953442123393109562815189919216682619679294188187056118183619209435756463607017851682033500066680657764216678656246286558318027375722677259681313102769315468366945895473469164675121783800445221408969435984499709063041945073168769323276720265535572921164544950730391695424886877900913293917751635636750129848313721786943741283698120139206592517061303485853978946768749756612765951614274002502397116933566445554726499683591058342171610353795951321903365228136685016769984618274261664756083393843767835876016080257662581833058906107172752939968602559343567022935902284565960282948583528555157385002454170756895595382434859562092503632075278968872116926038447143144194188454958288136106915903755373411260878024698154864391784735178171597060158464631456843226497102257755786800364003172963038393342141306406238104630492231792203217914275511260366378933758047304555930322509961212693934414208143156997110131867994030423863821869455101782460873421695724873328322914146137107431825950519598199502565282815044862197811454256661110659440923717821428726330925632586480435789203844169317034030853130236217234379593345874765230851689995208229507187130423913262400834186112914238184189716852117183712537053218377817994852811115153894583278426196767627919259976686237219427522707150866955259186969909954609750989607316935582930390656304175586851736800969515667453174018237888655549411061557254668587257635163335779503513456432349487344871304581122283568572810210431358870103844513995495476026616800549356926142776915283987842991754360546119979729570861062014061882270418256494426245635430744561679681080763377506240600819012079192094630497076869274992630002387701921003507980009267453037188547151585411761204785499200094023515929126474172187808926441523976485281415608411790884350804489257526792599414399438795614350581201802559717313478605866681501556895192335021456009594243331267803140798797437009868421325569826342931398025291025650709288350667293498952550987626087693985180381063985616304986344913584384993787780339532285992614452047579438267680774206191645660430436554284127156793573248053013947670865119053662646530184886174101563783440612466546991809867213843885028470852812516949756771778426890399262605766243533442125940734316396112473102063758232784054645514785269605242173226472685971606077327876293946029378192470013984399726968717097754982122317178890903964417269154405292008201417780374404459551601006456615628748324101421585875411666203256239797642988814373451087487335613758296685625097383522844453350018532265674679571344554158594344937709470896280651620929839536566763317867514116892534529551806649346750290937245844120030703112313219366490603426393963205584060610561114773574179050366188986163862170106417237847655468867047773685767897430968323419771581188689414806036386898529778256283620976234100474792281059036992121699826804925613375283725074102641337880994794220946322700177250022193056273981510495103455135985785382826208251901566485739075159266081529542443578114762515208748815254131370443800395298903502393164963836140341690992177619166069259064822192955981603149523845920543923696771000117699564598400039386896319101204553953368544520761964359535212836033804833256669962003242627975350480204279655444110682897289205659383107566427717411379680290958470623264327677085315431977226960083259154933502628814633367566601429961620772907190022586018661791008514975114888823975294800116599880596989773644662804943918556157003141078032124268650162130599108241087511629411629194112533584031376844660388724308051478840584609379988056836891283687447675274594300042901320267875125877913063221570277565523099247848573320034576805796738957280722402832202882925926413530407856534900745622097117157152748144195447137145867478569664611189885319465454890426512053749993322713628120345841508788470851759902645400698242658748946417610147269205398163701204354045926658151168001292937472536585637975292233601096251183494166193070443885692676577164100862490737362180245803475648378906269118857826121016145493457854963434034002671225449490726647514737160417266751617493490624453664196018996916513507754316240594342211604727240108442026804503776196540958008395812456159220571426790011454862514182017359723373098057058391285357295059230222459658091851548724353449448858648512560422240797958897193349064872894567903763003438542422547065060096225863475247680747792649769399771946165894369037231286655275809828709233598800766363171648084670885686280981281528751041658900039402241435089697112321535313643422608523063416395830540769161898705372534783463022312547569939591007846233879762770309066565603826561317780213819319707922692148230862664387296571088034851915787429971817257197005396774692794765463516629148556964509236376370381834735122947955724682453116884749891394340269898993293386523448506096953929961580679566102537261523930398107719848193353377787829009457408907590275500005054065574660373390005015097907177931715568136993873179796592737112081271638885189726056398509019013734037151000243749587384035829611953969508987143038231100523038257844537508889236017291123200872528596232028486113944382457181459868144312852901357673367621844583957750308151249328230863632577089337015402661787843111438533451575771189239935925586452142943911659284706123564953996157721065533490720178827920989493946903582842365595991757528056530002871123958801609821461602759145440799306504870840932624299339598608198803343322130148178921367718191680790161110559051432551793605134209850339534755944529858173454922809418256692938336335388686280184370122328702326226141445880867363735555364361107971709609788232252176164721767376751342414408353861835758178407270344090494402239901026464501772610480023518351464486720346084393835231357803868600782993534541962051616870939679989254296833523966226798366312203062675337485246455170560816977609988870599469623892058052482191915482538047653926830511646295088324383770917047813678885616483911472386625008430564709810839620550679278348451329494881929203705726609694121672671072309433993936134929876576134268209964284192779958012225743954497306710204503404872266410081941613147508628048637290988475085993720853884546848938497375191761702252113036815018420181692885038771426037453983555992065723663690015279100442990203224828380624326560232010755985827775518060237139702483431308321941883358378754548079735746067172962222737345455866670276474514529572696583660890935041246549472217280038294061074550212601213061872395977238877994229952700461935782777676718537463227957359496278437898104171242991411301585448573387510699332922976433483789101724569667707280979600181826862241933502373536820085259173115984902099049807921631505155711081960608609875897770674319443819042879072552902041526018633916924179734215535060536476791777708751478969408668745749053209580577476382779042327858309919459852357514793296805296780285678951198969233403304337784338591323035772586211492899891141247948138140900109317177155297865583140073089010655575289099791351876503828653232970728976951070255054643400176832661935160696576458259288991000065586112746955991234659211603599145265656999654263810611732916121761658411394809459192123469410921287485179070706241310816070680847022338780911627531622201506269104672176998587854764523745243183067611945166929046949352914603364382513954786446804445093534538039894065815927035713475843778439628388523524636183394115099473057018740955628619603229679880323027853143642881349919289964820926899492180118378850816486915258082759260380253518932765972791496309429912584035357632901479551000719033944340316014745683210990633412385524366011011300686543906235634792147209093290369336725341120599763164291856344965657780629734980889443524416748212480679665411782216175639199812112536198071502496827427056970412214779989233612956080154801175124028118331943908209564779441975669757038534177126598569529168216280865612442275159034070227540301520347709296985705422007658877194272572075744876968034119927916575784968632320507106427404501364301387929130905530553924032342992769168503337497312685815245091121091434957696632350695870383586001420937225810483508243617839005087889691267904465414232934529235605843486211256207834372095765053462025080775389195186486486667839358725130009361959698967756448448925854180493625614173060864637523889381569910273252208864635091292262911331102557610655771514435483990460017823415855344872177669854428370914174807821266818777503781432698267167574541290328761049251943851332167994934052554952466974327088776628733565165311042004786920412462355304797773980274873971962906127978507693070501406088035524398126808538525494703147509355006767159382527241625365952031767458126847030242630899896840225197420879945632779555555726384602725514801588122018059747243746706113241471217583259813077306685848444463828602819819208805821777626178187470342535126309560368549025289358197764168485484314188910390742720246756986408227980277833044021126178206547602564395085308704792347204841708950347059300250194193323910414340440355792447935294597357999144158950956425638684930295009540020376914377432298559012914219876654178646418462336725531038197115051588464654632591904775311661664715013383396423487734054192806325515930851463112095997604761096050592881527443730857396585619403496009378303783089761209383403604530393236221349940742658699133193345065409775879463987599324344231246030390934313299893633248717088314729376750210219813631589436208765049534786481522923711057888242806917824420112485826218926316231022322848000717897574312123042396242372029326381282618084593365626733550619189133437632949260229949829416173903559757230455493981042813342895806293938191797357930957946538780559519787181942147630406725712625681452332616824142322816352710992167409419536044735195071513827689295612356777966903296603359045348618621290554127694261260728770322574847117064034156597603781239390456275486506199931308927506061562822492017947382746911863328754494899454169115120253825843522269450176927608115983414454746679979372784475128619626928579366517041601544072553169726164636089699832660346523011915800728172300081319024169102536941178021030617985095625816177493997116101714898569944233719932553170403086611693041697912830190041411217524470077781589807105712402050726323905035511915886079698742900254346995881049436482324665092917158891524412871989951321067242705663596589910556202657060052819706262646413555361712131001944458206870072714830889537808203828813278661123058434934999296760593224630986339652940918965486964205395406183515589872346546429122210271152319418904080132280300953988719338394920559424454126171833442990931012355709200770595890531979677516005805455958631816756713032628326935535197658142841195527421113890433565151148354153894545239879730089695861978745769503438866946494081717913183269526775720096983704394710957280637065391923687225731311566136408542169003685512475339020262953134449100764569931975313629853243017101383767852077055811511181315552047862336026285143397210821627995420821452545331311620719360381442093849867559867300605241219867727990118520151349251000912420092920321894706113421358875943242087585663161962330511576706616162199265370150051573154688986332882459785895921802278754796436185557564752113670202864198070350183183792082758801013100774795054387935048542257449316511875606277876308470631431170437741398718414522103488704877625338736029802161235293757349994295439105584115303811442553323613293126883125925651547407952978175417958498795679932622829034943720026524239404419199626003732189276363355480214058374358612444558917745000691020325699334708513467035973514336144846679753318660273887649406241476395348440903253566013479281905613950371420010578741442346422740775192093208568143922738651881245617490489465882445904241385296112544391447625626579393622765397034639738824337461333575403738268853324861486400559895992794312880668388794272298400985698804641228845769041667632190976185424347854595286502434447430578146906721729925991187323480717359373343323218702906572122024573009015738891293957734886125068732791537841778341717788500066502954669211544598538830045524089589069254587931303347522918909665854828127657407405552636378373299468251597929754342522158422793412581663004395951010789795455112145170399904780176229558433540234953126624794043607094451756487309142233709901847996316772768662940093578955701237332729459170574994729723903969606720870186385656586461307426125033091566387380197553806270615851296339235187978913167351171113600298540199983935925010128146398443232750097626379195838201798985798286614049611172561322215537517174693042990567538204865981752034131818874190230541837320261115516597338413994721986773350327676756918960913181125277018463841632535623451015927296447200335968618367598849185918523072550332267200370629593989858768390780218430789607049219899142766743351201635328084704198588783008323352890535940954850802399419417381114055435539584005653042881372007931075803818236429543602035175069943903543754344117022962186225413532418719877899160952214748372477221964808727896114617147364796266764020836591646161256502233037957890034240874745971545641241035303042613355771824561383036697973464520886425985166532834860863604414672300595110269188177801477665117225689648631878222644076359523971749983012249502565739118347734293656738868164755910103830589858244223711183292721818132242954778712180157187657513206275346676079027766686758104503229991231347461288347513617670280756212340986661291637842999740728350218824500102787451379899419353876053070628092696687476305100430715367286184082497615706360635687252900308235063138613329173457968726657568210238812907391131831449523838244930662387152390378975004431603432573956039638308377562431051304875417589746449424572848895510179132176929754810245189894421582965662182893036357587704824734270314208499590078808060264367912589062546588046193536893907056269121556749379343522806088260279756718024025836050481503213060755024063423284700301822261345519376096017415191649450529191929925447549201936332897978117074535527923259742855336910126384963096985829538621670369566286669112481633762706220149262232009576549801312428474645655527582606347002425858955168377954895911764824385415130056880742325705726415409434925155163043125504143572391824347460752761940054657056279691091834013728511736538403588684677731208076864014321247687238867761547511987234487640903617102479073333647734184581852983033069428273291430584450480955139250195655286596268385018957605921810950808649050085673210708038624413719263374188173261867957698278397105729689394237018710508276209934899261544178108055504363336986443258495153532090109015628431004930107984411854042431787367945702581680318576238617128376221146634145174865801069068316734624930034823835559684972540870970507022798498068701705243882346872789673924533667463177469891786480655468884143048772409072961641022029779779366678233273417064323620040196161461805721741993924812009159857144774776883410156570919959478388858335836273925243704569005529044038191011124258021639317802390334172883608365689703193040823511400003863681054698480670149529404037551940648782139847135018601992114331265016997033634182070634645542147687102565332287959781754234060437084656068506788507922096206642021273675871276904103663174586979510131218985302059704552982916765896650927777202783610253574314955387695334191163165025816400257415484449739940562685854087759512529154710529274623353824172136741404678740731756265464396093335170166783675423963800991068000113048742084472736964440057648206668195786728262515940230119039677723378403542715864105434229787532931834801353800828129185093122978123870114605639785181271477629411917990350431483531582806757428415657751850154201138576689276417935775425207459013231638690638469156123478358874879414397451320218861339735838578361279764351340818320212557607871498157734595813243671356612111553457223580114304616708350907839079271083245168644441622650611501741778635070836669851985207725953130277145454925413966371394978770934915435738607239770343265243778586390656422007778734085976403264793267628634269335639406497177978419358826778615801664446871578709727216154239933192079710760063895629106364327789849090677417908635432167817428451253583723940142422127942255168807492829153933508689230291726254989903712573508154120791676556023993525777567744813056436725708557249094988805272191246221177511881873040481053676211642899858104095478627406390735129131486313943414616605820888939008147194003587528296763535044552603000770788998325333118142802296909549311837096397217204820882190655867657613266310219301806430220943671533236777667518726028544392393976395792876600179009164706024021045270865460670653987441573752309300818861755308072038357940258424873323993826999860184084980050937621991286847392836873201447276839745456748080854652838623510335979181955377656527900275637366383458044822195036424174051957706622019625535861384223542686076508578373133441865056624903115567233604330335367698707469312266844585299424099668746987946572868825343661682605184951654934243618726834111430287494517532262356526097304610049262988156523935092703827767433721560237149292635094528573612551318809074200400395599024137448950773783576579054691613407667267848064686507042855915081659947092011735069348719032232877328277847321653593194524479218528424805427342441317272729566023546801776965671227839749259960045891921417577853021594546910191781735671425609636205720446060961446212270959531700952225549583239262855452239222674860023647409420166563601036145643030325359287674406201084156261753258006172558150965682753651345438931202203496708764041435515600098244161403492208170418952915853508538305296026318531326162138990604741378844551543238200512552580599541421916618737084500219735258519387379897645188191707264669573866638514371684691466643310050851771552331873334468261944833313152785882026518107672584604239881435763971609609964431632643783462960685895256110797270153129187838003443548069697689852674247178817875376552306163597485982405717700416335003086709200068939130703113505524016573061193296862106659295652665280207211682118012070146630557270536744461459608809150240327415107606249333244512377570685368796142500709028707709011429977844297423712724826572663303982095724038847366502926467632968248760114239558742586395386122847590586447365797142328135247970459598074916160568603556845126324973115698061402066799290017594483794461287621410550569311692479697757758062592817298764505122953169669180096981308911497761572982956648735043638156411086760087425977503068486047375178412382097139196397775283235139868373958203677690230322545317355401570904176500186421043164463913632653881222461704085969575882022933029185139504553086505752909230747556132032316322919780997387440546143652665586878265909708129297514112686138718483580233487976689157639716572277043620907973080057212034623255884188901488858687121204729001737949321863717554589588779554862470619056150988992666092279773946037246661328774783969501242267581265028533987900137251817746760203227328284856769289241740884548861991976011248438736624656180267758252976093934922716556710157913698168291172472182988981547048010175295619605599479240388267643859311878002785554568284823774355992774503326635849252809715316613354896476041543082654878215090785514915740204906014295947365120037757238745440154022609342162555116805456900450579135019337304812712466640813144224778955262062322738232116152966192713956387919414443442541103639978449807108169909208524134484444762485920527585584873410692785293067097478398701370769864902020911759151795535442571119765493473216812715661705222275158794460211099323223601799855293214758932126869307256356349561440323195612444109067158866915392688448877970831819356980021044507589564177953077855991887920488905270377927685692639228358588885295279425577263423404118862056885803376891432892342614603834621461123818708553764095039664637048773620202477402113359589839030797956703753188097264089002777152522742819150420979812917995154905780379576387136127501517814201696439729959564175260963388852917729242673521557735428495947884880918607386283037133641986334010157522011406333536174364175161690983526360952434500753918577637411872594689206634887764487084316367488357098809169885859910282504854403727419490858971900553739996315201362727075602267990343951129729704056851872983628692012635321610017456701423590630547544753150255097553639376896487640762949296008983216486400635623667827550347221395253018333970724960801603050420332477129903789650028877853032052095325656366618102708093907945594342460802294774902010214951774092511293800397875587999857219913731780914604425486889433769703883204210205221690839947833084884053057201766366839962091627072797283008287815121083817230141459763778150007453039859143024100369799296306204586734336733684811310459109398577604049390956109669377475410549556286704832696478651114277137128725285921632525898223148722307774043981572972906953974784417488529572913115310059803059705729682251063204490747389097759364060625963110182132358967107360987614120629716431113577429432799732902253536693334343157066165121631834093207387015007524786726203598006158485132171479948236113525428675598936263890322461465568418033451104610776617686313865268172621864095900319403510069806345257605922539819729496591888162897112383179680903766877600166520421539565926557689105944411624021422564730656843585307546361819323849822906128319695897842930197267682571115400959299623625961335254511051438092302532083530407884096044058604039603038779874870728896396231027730192751394832048423122530559239009118265024981843689830136589908342647566916921361683376568561001676724466678742799333888826851404953679246861700405298429923156124262425136640300740227913981847349611790442586654966103099791741058533047327487768525044155890894552687425958586243125751844498962598864302699984869852008078501589184946766462379063684159644761408792479324186838034940672068802408112702875237217142233099979561752576269331045839151656735396060338988679700206056016977731425507485105173634978358087984825065581590336911813892083777346819746476923814623392033096724016945999890766426389772435066639162765775978907553186332413179354129341064008616606432163774137480471069937229005415441027600929263951268132121903268394380806726038630532862330969125442860926847990430583877193612240804534342430106798964996766393919515328040206881750621419267680165197154564938090867377149014292888225063034737533351399469298475535401424430677065125765569920680007231199606155401166006618552501983846977982732808939137515480109765742753056117270907909358184605848506518387856218824484424903093494613361313222512270283810629023231579627134513502730208648085702941455519441891147815301549626747391945304175480211492938418884017635293075715061658381324891462884183202622163781304749881670352178303708450599164218920508735054495892857345257824184998528789223156479479326745781453744018287861408839676084261245355536488090572559111669600947016307189292685671962800981077798037798233632962949847321517846025571553295169621726443861795081186552559505504258461938972912363535233228401203660248037384271083469201450730357786749840787202252622695125594864634239029143866146580226184543109586017291866729659310439075481481647469715510083116883082715790459156643379107791096439730301938375464955689908553113644056284070125121440241533676335989321804526257709246390596177039583560800995042141783389402658199294103003327118524792771319835428311449625689304907635875278469694667347743873161367940281317903913802987684115138981305049688487544199384702170016082671672702120318184426643590412598611034511999148858383495705280616630013624569239839327443136420674845332020807308159873613690548918329240382597035018344122071118333913993238328574739401886747270552817925054619796085070679758435968731835053872343798942401451252522195540812191788718018643365376833160709243308986141337230171776088788527107579113664361316409642005569204471599997622391649318083054074223653946095881792815632508370147598738384427941737018488005622939436760182529284153211128941550022335317155328699920800712514907521245518515249504462616227151497627299536594112312649962864626743766706030367596600759960155865738388248405820224670507213486224643387377018292764315986381954058587384487533319297093199195908944054630521471604299871658685809134546353818959695001106744977153747756620314708742009158308379786310144593723431472742462335425670810489960930578574576313794867460699142740519933597848171559675174509919052275087899521940390179032818711451685046652976549000637078953784090832455279542513093368722460762010063719982819749698033857389645730881016717896147627366383841851081747003244803215618205697394654981654852220461562527395952120949899798337570113224298700205161868785715708685926591820088017003558846158319537286626160175007046932883758413693798954716385109177362346998788843673356026860444501905993422302119770500914249040886605808094171148728878063320747630180275778184557051437181030472898354307164025238273516654760517614346221266222110708300127590346510927683021739268469299441880464906801241429713904833377249173402247362319802927833290654317519990130699868940263513407222933757552255308595625395853013870672889375272226392498723903167723207563650292601875451168158935734065453393910277803429906449043806592610484063894994132173582979424254832468317110227916660774495868076486012228083292978822650210481182685910262243276167881826950731185895401130168056641595885933407515308204652790602363314701188749459480493976756277316466663591232475007531932365128627970996630009992910891640664703108747998536227280200539342428830261602477017641990160679938245575105019772527009214525426563246904391312176836300576854712687591057112323472936703443461592234907906154276909403685320081591246137657381874508943694418390616988712324549867997727599768040191658240439517184763459705759771999576110542902526421477257882054834074637950450094256022220791540290606081582164488457709156049151328630240863332463437679544619520772894244559300811045861809294104162892171379751416956877424910403437453640843904866182975536277442045529398012812198873877361118179806462905558964791973930200371121463282719329045454849350879814897323453402597040822685086370694604201186467324109042427727129750971108971453757246701996597803283308807488646358841669921243368399382872406585940831450068493093654826002878192608146635445749543875840070270090954713026758709692913072259287662112766668881768337722339062988850272942857310736379183532620854514490356459114583136396044704307247425073078293258108940885192368874046561449331757921455675115251272475042755744488178582865959643271503025663122254861159390971839041252436234089555998703408549528990521514660860134372486333239448943425685305574338886566983676694270629932428914274172777931851876210627708121571170964962307210307218957892290382968218812124897457918801559150882811359854318641508669919359209507677405575589442118985811286981740798095616071254590969385051213700927854232848613784588355364671171340659523426415917070569051985654073908551567521672747199548808477503630964034287903155339911848288580596691861669017936585030578338061885407018335467070000770960438494805846344144968959938588122618364842520415591952988586495765054084100581290221992432786325622461960146592046460318631245409115147204315862013202479193044929739009449416514936930950986808402650606641344392534716717247851843065678241758932395775762453194784191523702114865518720177516983758770923962703113838553122882512243168617513987889909476858067217651955212221352038397486837604105164332219955247501342238848239234913462903274219850115419529522676466352243888030504272974411447023513225034924213597758421373241981968650854812706371171800539176083000789186699990689503252419799225977533074940495268906326262341514171047686268360481413090728357549483634904524183692715644632973394389456277398645256466571233939639156247875804712478148554582196465083549629844484958875739223908099518741701806575646136494508924477885979129246072450116604373205421211407118354303860014346148054226722412916256206887226789990989521372518403693090255043597963308134105413353393500751413369648282024333631891375223186106462905173754368174139237007210648686851668099723090842631929336948282297956459513805883308680955754559804182278265848556153539005838480371778030204779048860613202868753403356664864513614016360295593697909958396448682880375586146356090749455725791484393194365642746326763543779419984786224409856908529788391912118433510741215078065261205629477114671405524413154342867815929489120903112425625167914882080335462925873859447291383765232396985994070952693418479109747316200014517742733573748625082320952646405666737333167622944112723673204882023909066526698907110040462324953513648373795819810500531531938078436430796751545487735219519235320326057604809236351758783511389068595735746388220384523388460873736558982292987480571348002473582202068724231467468837060816224692057911674170175649180843081545251962001748274542434691477190031566963225887522411764543566162793425808642067382304557941501098044492009401835970196570415260703423550456907142906942577704814269132362502189425329634658390105719959589969837923624573596978104308406955592707473783514287488565372243586048713499101254121357524628619042847332045286268117071289572275825837785387529530226234468063569745602696595177563209551274467803201775924336239800438994158584391404453777554721404428685141734177015961338390654873884758149105580406239005665833021461602857956261842089212371885952794335411417588928181632420596410025451425874261290297789540550960642588875717819605829873892829172631850598417430256006784548855657209631486205905658231457370857218912318843066790884222821115063570711074276297833212261476816092954995296425325861216264315121752156551359626985929889069663054862071254418963408703216707140953994642007523492861395241972551795045417734182081089689676244612108113489412499556283349789709559737565001875247104167549852317233113669174943554411575606400148253035894696435577110518320939071885449007798956596170465298555983940956641661989866853704241416237287831698788278995252397852053120769667541335620359239525290370094253601953035443531689136694321332691707249137332696143187572748363156332347656922980985836754224202035340507954493190806049607708264954276461592464816065387765878760393351023391591297247291378571953285011765429417867642500612432754138061778751771212677495536456038674212403590371396162818648897869687957327095083984032148904121898176570190036368107397815596340124186023436940452065679283194564403855078746824028971172431765844311971555491259219272665601125150863659913951935795194677749476042832210304916822729195205730430219075155115128184327804679057240202043713201432374011211654427503865174450686106601631057578280968367441176566831096572197251625453022959717339423950275452618633491059821015099259831789383137239153756466347311817373961426603806733122194830994681786668246289045185136053480124842814807378866675924622433588550376281068085702768070554277527269868095620860890694618860806521164393847768459194478598681223213233252253898622239380375808096890562340982444841626931144014203038053123515138221014677249892986649400663482203736485913770737985072242496269364911096410156377475105355121937752936521473270311733583450960601309779956584088254482637166770009588653561186573655900130256638406917461732633098988003685204888327646499661449423300182060671652453918936403574621655529556182679282214146590419028426655998198513987801319233106215703218439453722819991435266425776551164135858866407546799270068409896306944393728779960717747403906574506660962686503704912111668770347757843411360639274390307885797148736581546943099154020068292525111871246060212604200671787605728919207302330994025964139652236204645969161633995556514646105340985047697099273818240722235598272894863106073521348573992995175048287502177975975839502354872449959759388440548406250679611695221545441262628786361659805057541825414821117214710445530964282739286737482079649810316201840523749776935007728621514524012818756678136427479548096815448729806434690373615139385911316917268559685454258679185116015875171807052026508822513522228517731221092311944541570938258840029801555598178381922874642408708682862570980464055016630352766720779156593545617330834913051057523034205548284742663715344731263214311366316850785912248124062740746569217322156724729065393142085056253235841132940051270271548905554778634130375417484967204306443913412344017214236756278252582238868226298449230679764095486923381139085284081839321934860319516025603105589206993031834786033169372250706343959513210269830238004454468789161691091940478963624327780290282972633460876780856333430974886791109908457167060531213691978216644180556507212414195397822654389357003063930307335718142724930745107674199553196227956360100902146009740837127527567917458458277081358908287019986538037124722263877380044928691681902130141799782054405627469861208761985581276490626724758786897956822673719203006497205823878095337408944881390655768096380860945757385386236120165433534077353118331164039297623968173005368064186840447278257316340706766827115347270737061917876575307004087586438082790809996743864827176446507006405625548184393110711701625114721124842853493370245137288065871332708929240475883718855612142157345570552247928218843853387089823693082848600194094951314152469247010408658868708453674764686001554670402992038983645896285365056430846881407334510178938315434213633777097286854269907639508264875980899821404751336234540837786392348041947095288453302072909514391644440924414662215982311941051198214526061071980569646800402328877893437342610462791244585750579342415684852479324202819754292558762152642869170905180472749116492382129451090743720904210644239528311689000857461286599521273099999916536892507170367191621614615356823188864128610723094300972238348250151476066095019777124153772395725525601265183785401705737505872041284878067367461905269493945536587968008077817672149127563087705476323028318130952496582552805624997069634820412721300759773774663555523618139669516673924803475847921224911843738742057098345779914020336991300817673309866024562204873632229188203877636028382600205470139957109712441629272881265149705245621429343221100660232823796709767939956579643844446267760466891620568102949340919478183618210752299103682187722986178946486634061140191944263454380329437519598050429004096235007951715147348749137075022731330858504863489010966677820670636033603675644605154524216730784001084746571510967548537626111011083222452686134348405352376286883959046928969176103837255527506327544908573140855461222117182960523644965926393215916700981257783992194312433705915323364162569194054596859801383190232957940732788800708230568630451691033001450245668220439873810736749332857904044111927233428207514608949842520683096513002632979369453095101717696237344072076312199308435823886849956404674556178148531036539097140268063855560850730423867822070459793276014633387354483318174992797934772619340581430876199988850028125638729355485347727596370118608245638906592073174859095257053667315825596389649426506874042316639296913005388538830761488578979881734578124878842308669046318721543149713701179505385934103065637884427363781550972354091735845838210727927338672855245886955055650252993557144468875059008677792402923788806635426062601865252894172594154967087006338267092249630674524820030776174779205384093395074769019404181093343582506376221005621306974196493581754393614632821363989680907775980657220483714581793054138595846430676310951040377852806441374225072935314741186969561825140366032299950424660795874319908198926186047184162663363573017912865252737610838233578073957425916873451701335413072434186422159952057707917598873972608563695629243812651188766114755468183964665976179904044823584359897030452262245210447192661261078849494096822869170135607200681044707653476272746059154508854300557579028946171819952029765717840623253271236315734371352184629606246272176846671834177344597994021428424113971244108145773074753643434873584016200255839339281897127581867001605399175965174115093406424240742808351958941542689686700720005731508709467989639047022330272699609518873734287878279921625716130491530979029433850413609091636161334085792553272208937786235939388276751136315555716251644785734418271097483379904251496294518932907842599049660068694187781338190250743118783254362185565795593849094351934349267623569317024391152038936672676104040010366535092242946538907461664840395948793941524366826534950927648720062831469100411205830560638267796834100956429673737556249543878687430481129127858732727168126987785004210659606225467592597387640800848800902553026629066152536965206838547724860005497215936106696668062689448198648693743848718503493349660864480511857215834490645932708518871738826772786965085225625957875549840792683336558893390224281259943918680217514891266469062237550790708336518073563191186330572003414419216869004894349345386997940165641931177050922629721173438077724292816989603503585048380181187160555714499937586410823819870363308110212190279752046778789175184594501340702600872477520768123908764433721366207981111504993111033965109355687567549065139676101213531855488304950531803560848080702209339096723798928858850904568988191080212306715846080507264728571900250290636462874380115186177904463641418518985717747414067914493475537098888716430761403435790678736458154906633588865059216766965855636266303714281495961513391387455344630514546254928731934090789501914742891768238194430781081767180909446781604295804862722691414824579010935092239817302793719404121516045799922594168098888328861927393702821219210085828362404354623471262046336331462281790206194185187004008926964660122033088396271468035843558985851849617177727113781228518521540426415149395442229459806315192113162726243419240233794269265471906854001361896744642785064075568466967939864936774231533153087030860011900458593316694527387543335838441014266733053705814808670455394183315974576289280162717454028692322263521274673039477462562934471691274331841758083148039015831324201153908436381951490780156109054559522388592428734954479922560177461865891027411491192045018721531842890590230293856123581448878773143996913791243842098998080116033788201652893455373363635330208530163405658629575187459273520751158351575723234932826598726581496894184756690172802194971478989954428539795157042893907522270606783162387614184728155936760552966024798344915771602842124377848458550060913222837079224189101698564308258888016007142778663380597575138052122193094923203792088869721931574236851816013874507914422985407186487419628682512288902962372869579362337020197286293175896310392182551182970815950671851391886132202069269673156256446929550862861106483273687151209716981978114433905333052786432789191551556038030490868148886914424796025576013723708313988914324149253969074171840650796457450194724666871462071728578116407702918819724926248069934079242080250675868246482215286234651996339447282661813049163139677217976016547012983264203067088983301312403986257878826089859589465998416545017148518905008190726204765317536875831940682122098961762383692922301738853316627989709028054826144446697819377591212984140643636139688106918431338979049548379424782460445212525115209882776381692405228498963329478131043064595467044156046869351427261862144003860964606020543531352423654988897609430559303683894540223366203090759173708948705758875919323197799677562702231951763743292776761702470258441815365661856987930321215166006531126576698997393032480821678518825788556223317269766627136160508656502410826359375500037584483312240693769851385157259808899326030201391151242730314687232206313931344869185176791310638856597916513408616394808946321094607127777911128364942824296876563781919710997251792369921015689604810978173047669858373055278533687717326436154882613401074329357744100938163756289340812613709367127495002851519113647636219222439095166652574649895277921089511755991191878348487616823471842631181061985286567934590361889280331013522141607159206494929931322536042065386091976106901646151494837590621483060164794506421985283190716984763797705831896819320474230453153016129893097963949145398570892742251834621261362683537662922121232363561662869574936349953349461294047104703864463029155734693226102780437114189364023772034498704698949137508710351365654542108050067065997844939952963734653267890144844204540111334453673760186724094642623363950120149285905002999534211620141622615260791486331813531131071023497924492942482264378514458114100596178194468426514501142654008068297008853606139517248071404656965537496466859781484095322420390633977258421779929403166270034954331898467053881297346785086302072862682927686413394089660587599833713074198722361784869560806203859553575148463846908655223324171930039278379312215442752169479907838290492205241163327891720120774922969579599881239866944364777190465879868242500147042469661393928577489490019420642204842120370991584892858164013913619689889651386680012246611071370336028976145533095066849344202856183560107634928309789635798495105304656464760566449300108827947273322980647822461988207333447447557517947885316703338626697243852018386639334815331336799020163872838915087290942990926922027673449940350814558535431364223805503731267022631140620290014784888243379503590346991841929342995421335934764068049419488835070333028495523873204889315463935316344311574161731785998417920293127580140551711106904340935316721274719435172091487831432183788922269252541775922428974638022252609516360854528091471068945737279374456714746757298883149716396625608103107382818863216334910011508746546923913306738227594389131636453706260458249372353827931722899105028160316965698901806896800749561891456017990847973232525952921993377423413573445766558583142570060425351100844082732486251279900591096119174619137202409796842274388354559256139317805173707359455997093617118967751291187842590353139767114058199672814385299462697909983369033715503397953485099464247212305439869430786906345796614275397622016064988616161422941701366838749205950144730803534366968564662406426682086276313533130089638221796537048683149549136590765521827772435506389940549295784501788049915347993953475201295582201873483260874421156526766887422976863806453587946177317796816059653131752698878193767403692774835093145308148889204709377371997372390346915505898800869952061649446618465225640958573228473377656575706907029669330947470369723119555461487591419268813078333001027338402864777030439570156860857205230356524909676203931037918626260748310179906159590080996171163980088882345661547197596622751157530083427284171137822255961949430261807943032808808128920136136870644990948838348095180006376755602325125342403356803766748904790325892806252165626487103950665083925572001021620195264421051844467574839287605187808103886474983125918423639734762930226149222894796461716775684409660578524709143092047578339898153503130750550869296554134210485994201908228500208624800946454097292482935294551651786187642993848170192123666236520518438041269031332951746394331303751741387140572510052799744929470763406592889318853593951906692703882877586296453645823333617089239362372859507324514410890282290333803410246053412188613988585536594300095760623459865578233721134104168026963715317575474240460610362939773266772296531471556403903980121344663100781955159015247647468325379143802054928263792537201446958397068134127498569988353020614218366817223429910358794950653138714554954011737223809451605947148636834000501639586977470841210414076821300612676890322432234673851764949345198940212337122432864106518723894923245549514574907935667085759879836133946940690912287387415685246413769545974657619515886528415561851234863857877975438297714966570549661917640297764920761289958751949516230690619492580130963937365242217309762686681985716386968530928082819890032175622393055363005490694180448526275097584724899127479919473677111723177293285821755540647141085457804969127855782535460610041030724521617653682243719883626990966649510566108159494416113746648574925071435717282352618564510662727108827612688559527758307681505119184550930224961112278306847957220866735148496912279751157948033771789770072399991290794471241703004710067455717649966924013767515340676783593487072008403617254331734846630955877719549563881307239365263541759604763155731042296528198721271033258401593363327143298731597444173203781169534741902897464967962424758869839154103477163544638829510640365002699403732087955005208225449639549842278461378975253179387952094639014517455595893826298581918645177656193341161606100737047087381983856993278794452913936549391149467032194383955824409535558017109671205062767051712464417355125188141441012330382979897850619286035331868005939677679105107190918956284296565629317382451666359854745363488709350693600625686233906539517845415626223330473367997206188684843168245549561713801750278905592799619190801752140389088254622034983131217703604589164950369327759331079711670873000832242538364220277474608612288728945010038637260547852622070532963613794512001778590828744417269421734422694481249696215297967354804436847379509054171290488635035171336527061106784011921135946763979090350611105479948141699343429943949824350824965142467124848381304540089134944249316630186388130990172015359903776530800474731544349795146393204853237282841469103309062980198366012180993065859116294374041240494531748340527993016649427958426958566575263567286427187068829711354623642204656403101290091083820597850643863870742069033945410745969330027147862178467617535933865715841910299681597072116758242669355464971296553127603556712956551188162538699641841949018083985494532476150142411410291260264422902235993227929331680754919657774838674513166495112211682729317168588567747031003169486685512274530022008617775262924638917261523223459121180442770720504765750565083108232085150077928854680316095147132954275027107356568126403318317182986001344420290525300231364453062025975806446627587878432675315799137672765612815628463206114863694006833927889635600917294366919709740128755913521786799089873298029888512929030078749958209491266145357166014047552282780309597026124388925176618617324844811475346788060257458003243478685913838237171861653554073331085384134764473229116945893997770080984796387848517236069121726824625264393269666712537534623576702668321259989243630236851833005150391576059293150430742194081106906606346017009218905859297553708385344419303590296463355223636442488642559452538860899669985140345221328061593642481602923797318927924670944987047716571560048171625629300489989828521673087377519118122290572776758315754320503444530109758589243221809877688981905396750236657604444010855863290895422523898117062913576552591323743950480643223279560752960672203762038611121941042161353665184219379148756358452311146016390419256958338957497863241166856426501604720925093713102864468564771324336254021719023774646492844309568778393105998651633982787265120898199789235544013040759790894016926318375752352027770152243200711777988080976724527873751603132534012765719843570012660169725231904151098156584898828850185168438501472859200580472892695365220315645671120854463422434177279936448819346799733426956527952491079100935350236956605281370834901476060487745975303650105853638858299471377896550935886947016660506377568392450550497910360278545533258178626606179605043474058548398930316305261087037970952069512101033173176847746631888372932021329547708103065798518033086181375647831449375101135266533919311460036061554774919556341004898388083379409866729006762756783412255405101930656371174017815829378599815635166776655308615981029818626207653333746745049202216109368050379716905057050809530833629855202629382734834444024533699667936807678112099429293410909035388171060676827525840680913633115846034398237506420998424462760777360609479013972534152331669964140822089044696659706140233589282402091407559201942953407163556122352876134552262651664957189512798227936737166513734005384033598880214997639424882729362005845972971231743308096428548985802366792893610632625055501977952913710462022622095011531033235848108901443011246803407113373767003800938235253159385955662156759143402489882921328875885928609750287388223808414172952193156268897878315070798448452489623568067762598240415989708534273026191663980789844122229104198313557804637035781920236851416298690373253301488716576017780882638861620217399807033639367187082195338819793008398761720230663621291389057144590866563725138482689428702079079359853152704237491587346015723032303611471183959516569576301282636441940358029229456852373295221262317505921194238120328047662144877443504996452501213957505784362317295928063227111607186086640527745986402879037335869791714128516953608975531462400258342437577679594089052294284544776314117839846316701314822193385065096522130655072615362782974240788438715953554233280245451754119694554939951745338332236672730291704601032433986463948806822717770880054274185364701855607362675808381982432169763924671045113448693839135772114350538795408946437004891603551511346618915424420449385968778511011238900760990047393948126442864926570949257051540517095172877559000083867202796950743530601288772064802141823124270357235778637119987070776249760808427617039007089319674808985459279543842208282404575546189417353584336870796187485395032920421938076130014870533670363652026465715166199855099835346924184380625073973635533160289460619866513442332173297298786690241345602782663682249648352087405579595917065469022989418218441747894901761294508604609871581509136423926831217461317079331798367083325149222751797636681567064027442799401115861268117979548315264277653154958492493440107764435801347600830840376584561016558429092668735624434653229777922854384118482214514108061764477341689610101379101473119386431630623340161494568275509408000946370557386447568728336198897958121896030868121001873874620081014765159020830935926394603482813266275963627968683441751256504565704353618052856485974960536391681928429419152752135455278533242011747162166755969500791274251475922196691411716900672154967176855572706611819307687530363434127220456161330675940720733280122037036719182305422687234005975881256978011520632709773850405782366075817023130925040415795398460254125686765947140756693746182469641263802954638981664690662342118218208556034519536928385173529466748699357894290111698444307913937034557279706311049465626524122871381123465312895185114902048844867940747659196394890765762677696059003116103257843783118960587932249805354362751617439068594194110620098612514583902464372833285591137301700282682797525674177898741153922578916476256229557700614331398256946675973672495800259488833539593360531602312039488738415212122759002941633852088628864909255915308793826319434446794973973936496574717610724995196198722953067374179276375081183649857049013736144379596521002292922502961367472774125404920383834839420958167868353523961360877966177891273766191982780174233543307729295665304583321584555696985874865396313510792898035880615473106559513050344629132279891472762367500631764190654960649568171864869606246837355537133108610205240517635599671737450041182650278629881781888142516492638089300653232757752535751294846238562620314307605257484159280342215856563132755468676107707546105109767472620159232027905144302110121183450861821004826963975222409241584585038589066119753824982074628334743163067676617047633836892575610451835230527187203349968716440174824668947537449445270122063220944630081946762430895935049213109651046314873597057679634918791273151551889522726573255769367866966424817472292531468208620849127122658697678763083064358486988351774544243163699813778334387995311992858777160447447095886109577090332510801823898323595050085126658440699982308872465977696372659415716143414026402422332759845404107961168592987500953077563265205577580356843034383048337524416867534443651813329975455129376588890743713805346478264446162569116104655345552861708518155774987764233388737922629856687818880906208703031530237045571754520040249010312567385562073293949924463179789154049690756298301231098747009431114710936860584878710886971354699282421109041161694179309053146538002693107283692576629713376349889569844500572937004829968605427392426029039669076683399988665147644498647958071421908590393765513768439537006872149280482581999747905949193183853961799656944008534513205400611246720587429206346046449543614152999063231383957702893761896078626556647511320795044623610112653737612894375198411745329349064927693150755985624885263962146744878505835381816637208196350978331481852974600477499071243059788746660683381389906646844239682372196158048013919559331039774657658192382544991423331828445824035530634979620231586336790561890734564480533060600841820840820934594257201668809348853838540924829930909496989660485563607347585912046837994484569599095214540510965843567007666499178804723537873507928875534967980710805425020796804353454864760746973835345873626966300547796031006170289214808034273295789757896028436887850350902023174196300329732716898665859221896574905581859182988837964185548578558325917436290641152974514420264634446394074195591433039818139256435594252326230308753383158356689196835964108042633930316020210117347532185768854025621821383322589373363631218498943570250817423638658163089947099801327717882943663184830362007327969509990933648033835214815874742346181715032924137479145548839918611530440022224219424007046963182785622491978368690425174168602429786855735306022247442161634554775564833887330513605337491311305522201484469076402937785778948168161784417375721134635120283373652089035300874445888407132322271515891646850146884132258981515852275975429055013734044109952398497273237993260673015947404340166810924174142563943465779975071849984394546554846606969929732667895920869724537822811742618916982234642492806079408315355409073558559434525743039724371219296927371691036787261323953685696884184017054291271608982161249948648259268368200641313409407900890101573580734136243317246103212910287988357997656978828417019913374075059668408807612597078521174212693990312793655832557511732221681968748093084542280426822358207221294781385390309068886058973283542015990396419898316663246255598853342789194018849221375557143802395933241478121845255211422512846270503124232293798868927438725343513555732994151781590124162399615997944130209032495360383690063431106504717007979779817128186911183567788061670535932142337702810210009314482677915317619910679949207720082302617910964374692415211144751050700288591504449994476864578532119555291488445189058170943763374205756637323602349209669340296370030784658808845419333131169029570436800583565629868459322619049001236211979297589570180169173218623760913532232276629219775059717440248207256600269540629702110387181174222797582781202773623116729825744621999031086926181331745317071954770519832750283792666702367404956175859525237885738220839415815493400220540741012146713860101831070858961784930081659404322082548574355327504407213218731598066528758307620228590366933369758069824765185510139281990635706147392132222201967946072463542578242576637368047298510745241951645571507118299710686325986678575984988588278258440280795568519866180081597783017322788857895254088035452413675086880410602070371514995125044146671669958240584469055728614399874465049712160046277169175038738267261475829308941128942768483587272157803639051942724613877966357696501615208680479770277288523486915189645337965220803539415784947219997497918165419787034627189260940862434623096874608932739002059467861818702920839147385255788167535268917889356366184188568806521313289558675099964443168278543242000039920545860704802236140950258014046689934081879590811324283699286425340052446323596842948105745685450582753327566428467944619401638437304014124934622420048527322839803161543351764560565604274957959435227498839074723691274731100798001415532665481178574254231608595992484189246289200157248278966513250832389741990702108630268910730359391326275449060909326710009775506920136254926822765421760564908124883525035228503079209807970358560799186148430643881801976890443636004695278312979548004533547445819639743701759009473781039926017793391339895299901022780920015937699640491408884398164647988516328014031717000362157699978884126415294171943049127707631903656159954750294121598304918783237000583505896813666812502492613195246134758575042661570754344652580487642706298322515806768321206134165070622958022324338436197658574951605364054417546472821006815730880669498890986674841217395923773638020782962491679892934243418301904770797439869457169842464004076477575760418420202550033343745591956816242057699082345413850297431353549608097269072367058471523010281042080111167172771149948370365489671482697451115246902336446038847351259410463445146411150630032671537026544320078529736634538915959540401946072822713045245634831703433352567442730719293474950666777564481325969573263401720902884669278207143075342129280423957168853330009511065679818194897654645587441999938819487287209352705031159018097168644824369560146974265325529529206578493807812375252739134998440354503690328306719837028819554167710837627557566412965106984813704875640301195203917057519010531293607580944600446092603565915703752441976774322241296213802596434829029951604242289428537751970176727169254898399469149856556822382521437132442998810435746599460656034927930436433678142081223251603961973389197092747234907864552811325273405578350258984048758687608967572026392638375931070524151097677402592056894477784213256667394244821541990649100371055324175412852194448293206618802719060670319597207718918447505823869660951974330945747630809132049136361991168724815314120122149591163881706771677406319562349870753015261156612236735292179076972938342819856723594450810298102506158400029211857117895077421136729597856420307230852085851486836940359352666872342744718498017623539681775996505803914693850277030543937875037297692787148632262209418252515136140539052654899634424126275000570615402044356683104750858216538992700985241362256326479581980293826786570135980330278558828331391297172297343362318653450953483878821979088434888656497935182049055543515586656990029488101558312304974224858188633011743960984889375854451666699782047717226780312780433727969292371920155181093938359184371483138405280235388231368905135039079306041650283201566658975194292880287927858122583755458721500126324816337874271205844905108884027279199333639686625998928953925135657132421991948466700754629321272767797785781373996022263692699527800972884089619717898859425950185636847555577404374343964523208340479037622850732478560133500611617350465875047405080724988007990795588306621216695365283198183888375741906306798723250214110501836249017228479376307983441726026389873714982509799234707758822432142892983733457072635398768133701191998762763618291653172882025840531986560874693495353989643439578950796590570636791864595766324985391551843479067614157861576948035445931993773758874246380396973789683981691997492323120647906410621060683971286370281093111908039752214901507141535689841678928847233427598407494020032382170164414565521810436594636670746932159225120439929051001147010384856702760659797171445629308139925094158359658538857372369326869001820489701260202396033801689321563756612791959417481019012251873438946801919532561054454554178170906595364079484868172199515931032721426332222331486627568316458035680446622554469254996533344723696590066600315069510029363924088744989082626357366960204026115478579065979591350599421867577099713437009360908119746527017034736455040225846413737233498017743982063734271695574546738598280424850187087494482454315227448526236156779736208509156809827936358661185558453589320280457483808593135169954753706284238978799588586120419132532962816436956957429384885919671675533828659615041390808116423110501808946653571651121285110461322174782220679124474308135109190297550730137209173263080106836515130063423262006995312854357868096027560262053558261926250031246038149602088058677770851045757745040709541264047173070009034528456502286291140283024471687370511467090130873804111206616275595953359981150433516482169409103064559801122477420314462778433476330637591603563097299704693514601834069825754363714231197186880363992481125444327408684560670302499514462863090720367009999137127394689292862107659954045530779085620304565471726696879489837334146594103573764329401628729698374429812825530007006721806961311903553053895415576104192416146868650883886173313783422062983335858879972890563973045521426154225634356962156080356938583826661262035556364203802833793683697669011660652090716539534434101105212246436772586407210088941187789069398543118262045682571718087322092090282220282237869213406775535131306251156704161317159979386814787705842055982725801388763692066109865817761719519461515088265932565260256630345471261114065203650451747598144134819475675365568333638180593916918628882569009094025179030501016904410425466498375730320583290708381617242737147931374012836524648043242006906639482511945076057458368337776380007755752310993008648338250166981686348514706995831273389398931180675694064495104009395400647471374652873811308167656080480448513901399654473557998115339503744252473212145851997506751027317888784089544337966782847010736519618055242756161745898635999143064750751627763492822754788096065598577872809891061123825674399332602694360193825013231813139004326814955612965294057079202603255542352767250226553129505836928942675761563051841324173480285309907401496806680595649308069002925079242071894981325376696557380162006580191621812624830978410834739621277648563382301695321555830548450856156294471519198859224729098539042161462682965609113274398692621488138190212720870632253792800490682713735656942353848014376756298633530610096713288172152538647684825947681021968770483961481324748810493858055539785254123495915806794075905899173431647824257802947206557141614790795155530841339256191631461712085476613797043913289009482161160680032958760898731875576765881222558394714113839153017301499153070878092948424701584415191196396163197903210518526093776176812586967985092210038367231480916685597957232347645695006494740056663529768566091832760723669193484404999422042886879368777421326369166055760432910753170698049488308120251827589511473642590880628903783219294022425382914045891064605983108458623530446235931194157110329360325104818668309000937853929591751484086863762867519721948491587714060243134955276967453056854003879189227510068945815979695970210182648276182334599439669985820221071801726016659900134681670687630203642049199195933529774425559599865398654628122813719523944329305790553274941165216424862678732871943070483410390489068982055712993561763400108068388693340217488858678456827776113906608074605107488579117660586651323419077718500860635494397456884326475783667387161350639202433693846615361105824221580605537830069117600633648726351798520023025638986464808486015731384251822956082772042041450648177722360421622638911841450383287670752882158011101884354135420532694241089622654131884298264399817147619675326980481702720510222507781082319061449209442014734830438717209769797746276678909744852602127347279915920912400204795397391913104943619972686426018638401831897472932186366114287492964709324522110644691058325204757357706719540582734603235463827174840978976473052916642417161696867953974420782814300078435519247389640839740052690944067387103177250522636788678619026450101339683073576861840739544948643735540080922694092356710451853603142470919833661226809870467556534964959798614988943966996996681232760186451177620131935771679033280880072870531556333076497386478999350485810662430310630153265133558668027321792330836067637646552482728499387361099582582050848010292447671967094721143775549200196052145708270016888648296725790221829957024504949521617853276017338402686450292117089691199948059739931141362396469094136196517633410818377475963828609953625940543783856446622181268333100779508611983191568699276527825355984859730433138130944530708356527976584416667507983717096194037775465747240880520743208694806813978804044680561110792843045085045487332351108924626715715150471586029127929225088954168853237491277330615985014157012797285125858512431994643065902204269947450737546723035788676812910295585261240216607785785269902118345752006819544441399518622694658575835536096146239307499306601682914605858879307650110552180257022151446482767020838756890343721942007347262301782441581718022295856851092964041781220458979225254868812244412915026853346139686524981671899449429540465399011508901972012888971625847312158421625527237881796447149292088384834773560163516817966276849382424132955303298990493970924086917146267276415232936392443230488121127366910060000473577760191852870720132224562498328251604377727942875855525742400128812086019414828518927791381459364427409203664544747610799321190762085963633742853083213613134782208706602125239308514346297958201574025951192449102904160570853786156239505467492201832107227055318521525959691107971760777981745923871133746575190062122014600054436873054655775603382567765276622760300050756314110361365176204415978987207728155709351773166214127451185482645028192105408881023960902377249476431273111722188728247550412311345559331895623992009285287504739955699855122883538898706323192343869876354144149992524643037029855061154354691567377238319388498877567172175940149162147713662939394113989870711672390323290897020185271865117066892626134043520752779094176038335212688336890741796827498529001803941025129669596646108838534702700078981668105408079086187721858482907843920364368972176221545651647970477116842434342317862314717147699349983458843789835684213417217294278746944999832997964963547467170638522837353865040973686164064269168226329654189134023161004293235968944131192274572454307086921548898596079318545036978031255262234792557761783251918696956535342629790257108500680289480030907349460498096632987135917979662385328041851897523836663401970341642661058963121522548102842454795760999203190339716834999250640621926912177896373054234183323244131993633754889709355585864420259628665140346200854800749795674771651626671056025462525548567469463655022165789687124913368801406068075893640426551976866769244036781736930336420716115349935739005262622314863709894984302477641135563553738905576461791203413707783604031358684828586629646285180680306982080009066541711502988382211729681858577734901933856329498815181869594127420072854989907721489584198638721792724500251231025087222380058296614071011445132894794947909206878606673646735567779580186339972920186547067932858269977379331015433329197227335730847325014656040109918307669105956328385626100843973812062150602897233609833092906157818665290118665857691617524946934413304713178918602603779408306228411145523481884556474011705830461414638214705150714848265669363781534749311883766014121714544765646990681796289011610902607837553642785153398909911614751370119661605784559627648820754402181972144459361482678288472264137368144173627858957619747342096833389357495632595608360200680181509417224099789723253899868301945881720600698968317520043000522016464909004839761375075203572839297930032588425942722331318361088754695841991238095947706526787735897082728496934943550596247017209152546592600889305869213483584861388094635406507064916562567618106209147887117411157778989128763090910398951613189617049839876831860435979766000207253047841278685636168287630614452443843010438240408681811684367808623210053962737158237542385210821325304460830558030644928711109733596931454211533685570160180674005944202917330847994614510740259034582556817136123141437314008119047123256214421178895504857850080473040680848752764196706103095196752599443656522259078144170933576926945153669013547454187234033763312886175783717369293248106777552091244446762502830765048079435733425349174243556283278566677748916330943620674475581129714736319793273077893109590191253434520080658194198528651224009394341916808649065311310553725382529398791613397044511354009429478345352554137248607251706652889412866972371298351824716750657489885036253034570775166757281726880680068941307658651485807432138564661850119749811448565243586326442314371218709343143231730236134008473054264127323109840494005039368215753742930611890944332153612241719337557065080036449633300186970657961708398649459802854798685418143098183616900425830750669427547867319425872978240766657062562813693671008010787825503934092993606100698474016569659681870297047642561769603037418953750701268185901474527498521612764787920436187814449100232742905428804958936109328468149206523019038070797893609823012830365636270130023974254670353546820691821877844394385940764720041064985389565653785764158171827819635164295836399080565011063245745240676939378727621278837656653382006154817812362960531108396901052810753756929299177829205464197764389525341487538464067881850052225038574634245599745027798914389909799495003943578332336588774571717082123925895189254346640543138519334587012272146772771416488149299018504040122541487276225043281787784977184976397289013654206150545092676534250913361082666124123053138783283230519292699543269384385150731983601922508487056069039604698175857571634106750429455300803361426359373388360296308865083644004423866085838120354037928586674651702098589546694883725445251427015689250973391075728629083015809258388049050230797949078980769763290213297983415401503605479592752162155556855758003180661185815192954011995310961768110679192025632761763510101729156792327255325829064056530191792142434704835238984511940896986255176840532760777764037528206595628278216707587049153318496365020424152949816036673834520568616044844453989721432403249678169455395706804076543793771321883949198102242560384619008149316567663663874650073024127488800697937107466479266482431803126498587292654737710092784413683402592932971220097073633215050849918579514751717606430900862536175404114724860164602327727485553225521343627831784486991810835885615935367900675419705857272504459275727301863083639923240768598250745551899614387413992654676896593316329220193289204474384657274543151654232608018230745096106620949814629082865744608144961633063193993275816454792417098017147705574267437938387323201724277787123733535908569881330140526125405219707366069510445206181238765248893681347977819010846116382485164622331224627302145361893753563524859879405479339081052201912460731049876474017250953427140009416188889927694640583780355087363555404550648277942246239220449389276970531077437060015787394716368478510471009065992166078121818345915198956664833219645688236015803976483192642541613844996221016554561801553764170512601153066357872373762877761975307931966705113991815339511491031110616904359311551607799933136576738566229287554093250280529039927855680698425505127470151381244265556365360949087240036461155735339675268076127061933613504631420606406149048088589414222656260133743869346158646576915205606556869464894459862847153651430027027222570757715227725573501028962752314027236362787305385052295203763768976030071194784017469311112406026536718035284348071335042868884123116055341199827113910494115126776671887140317894970035944964940053836170321852023814585487786360046433323571757278748902376225968780042451309889392045194390909080164964941199910664803946211777641864005571523713226520412566256336845976651120806355545130592399253435602362404409285333425972649287091947623575776284082622400458050714043660017611962337625227243207026900278901503398878255188594752205954327706374228211956305862853242254020225677745671509771535226352791349165903972126035466721918360318354766539116519037637860970107062118648254828228766462985908918156466895713469521533781802891328202422572158578031273529481896610343595960990861785697169324369550741447961913016751446704331512898037205624526022569087651099242923391913203333320142652413385129568463302523418942639540015517800849357472857034453542890661718608533633760120210108428569366400878416689710209560637196231785908506927615497612708093888706979495635993688946528757411931002537153061341004348374988200289096238674236868873467624409410321205944091522696804509294508357878760865065220098328880693255775879803170552326388059967851273150638788593647555459410070825007275720348450852251907468339215951099238400824845320006743629556725443354536027887172954476335054441949534480304875826960261334038680513260803768047010539335993535254922345119054047454544534814866202202402114972973633115022191300571821811309660482193954762010058615574637553810677108998379570209029130319994711622359225595220259603625226000418032008980470034442094015349817973420803678702953990810826247424860113598604355722767978698200558038625236611453045954265916391004428261989417755058483505626875806898829706706545275502364889478272872249393579997607714623154803259779150877678115537968128490180304068444260079680183787923664961311912750083193556193565872807339325043387298535023763314520357506220985696577113455678491981198634104565176269933997636675844500488866577005985742371956683905596544068254244768114852608280065830955859605891864634902209893615765227024569975687234270393080117744675661385295350824869811523516512435086844830707642873090759122156120210619043887155534229324145668790168906524474090501016342526017273237351075111497820162561469745423961619999584036747474766964740596059032712818720466197138684696558589034259713421058043728752837632265115310871692019651771217890725936977195699038217136134118659500574939643653603091382890842615742118666850593281283278400211841273666239494110942974913474588064533501186342348751885782013678426528440835514771700631771350488142152247193467194819639338678255029048608299765797076572367229986431522453431308436476674102280812697071223936963244683058530417990436129928072053923215802714037200005548388350916157300592746735568480370516326518612188489891452669552498771970070147646739394081239778245833740096105001007851909370100673847951318823029623631961483523219960766420178292139387359768657574170043141243735670632455964634605796403147453271834525518505471220649685602920675087374764563133030759859645477177217151704728590778974707007865418661521536733960332653450254015553607253961652521505194538499927252755105940562025640799701692910506934956677001053324106129993714426881874684590393017177810233084223573150040306482632423165796687247084815767445134748964578087150268850992061985595577419686252276023495993080062789549944024856378312721814067166688325384533515299686675213016080018677527384558714299306793258118383579838605112223214472491319743786725569314926924499443042734343640402684111708495867744147707774647201762277364882652750258495365951477906707791353503400516447279375772011267265093946572220975782084647846040386944324661449724998518231185817103243125513603102361933335097202267012303009844569491941290884080450511531431247299890033186253481600219703732142443472370551844261865640056699249811798650905874311268446717419130818953909318071738806279874124981857346357005729619209324690757623871369176020558975919271389168897976091354132424437483012624871332291904175265131140063385019845615877847597427851175736430774772688542578586703102989844068670364886569382561524106368653984226591692891677393130654537132149201560983752848916148996814945823890923348104766349362996337296869733524922542929210286902001127991382511688447962339672725012543785845440477973260727366537309598634018205152295791743703163712074511002479852230745142703573385206025748834760008651321742791452481758808755064297780711578956404079680017475476617711241447048231890153593025980977035433126503305435889881107657977809379759526466362947540849971103855797396490222456444292403148171405672436608509421369916608344182033984247446544370639923831692186375137892194651984870002910534011897143461672639885178945689731628128558458389390219206416394772214672461541924710489594175594586806213806100835076199234142483773503682508743768013857722229306832886773318357665171375766423690186642344714117352127906739403455821860397869935631414276639833378969985199095471055488881545342736777515784660847934794797180522350770167619789662907152683928243847956097368170919960359381164331234601584340821168126052843305351712248537082766072613127409612546838912644266154263203463146148703161529641679956108689147867635803298481711235806189325202178322630976163553830042422810746344021829909582882064988474930550693404513578029668030706554951963775277267618548888319811708416363047296187794754131364482189536450070363498675696453899518649509853805050425967178860853363957302895357340620510286713587693996494937689138195052014857164370211706440275843933791335320707626464286361707439208963672411397193475002004908896777129689942070197092352326645289647444262167776043612653701544414111494087555725712545994749321561257790650941444242734556364037034352230886596368581790002080083359647285856263840682266966514030971183756556954914878577235369671262568128921883021071374508874829232338328317692994641893716808605212015536543995800985565483987495077317151955896862448072190178200177591917141855664655636802358092729110340598087419389633470093300167469185268045983747223012318857355407119830804151001143249508934438856136041770221472946423573026501849873868218298062777800321824503373420418006966915632052354002167974640561412872855187209838828143182249655754529523381252739704469886927412446895965375645202520319133846351628232090796592982120914591575727812172052623583476206397660648095935653641803769159065309304463634120758021562142260836938006497632695553550264982032160688907599396054757315179828331275941076687435349187114078209081593353623168046333190940519176243069901911295418146288153473485816189103136022560411564259628167542519819812649349936851054595643511027636391673758603444198600132977117262265790563113813733758866487534843533465401881894513014410446503829214804511485826260738346763184189640979949399591594717637726991038850684634509772029785676632565102591111497051680417517679064114004141241792310917858884098483469547377043331795899875413872053629020174753443060119498348153250224980519442551823532809386005507045609407989377523453889327246312335025296740539168387251038969460864797287635909548581703913919801660851419380905606629720484483893367354980619158242094334214201336215424777507165387717806327137584623635584574765086170535544051233517360559863558851766304141135108891419847670459182205619016971301693345646790372277053195178819088463399461661632406434306884033120472944257707899328154284651775511698810361015059009405389722301094147293400712556397086439156028022274034780288057151135052107356760921435386610771456319073049222185966327673298791208829811933890477202548019224169698932701005132349232348087970966915876663362569071175392484530055648440380885813556587556858366610080991927796259304712275992600322257512385737996824831075333819220982106234638753219427271675355786830970509005103063127413622321066934680129364356934369142680160208793585116418222698505492500318792847282176522459295172868495173654809779311365341859740953815611994959174936777690360366161542614666000593966489731430283318999204248578863655836038340618406807190886253565783423320201521783511121682879808902258625018433664429254518427981056032851764289199876029545758045632637581333212913087077381688485817837933570894331135661104081387036752155884525220524200469444461892681656406690646942836697740295084651516708526179287695253378117206099466483056409515951943439070595035567050604113152976896108544422413972524147715023523637666672203060387360734750979220466194984215125796883367581391387212251070801502575776098452321846177919592016875491071526883977263210511942528471729052760733557999547262141640949277565757705154530121125614213569939206824563362444751647326515446286165398296366325806473942246248442115656124033767278364564915385554888966943163102479931170151077077063543186832023448926850312229176375026537501422919121709495833211954410768973826255015843230296604851153713483025343495150631367204031893241459904173226612920793826836606012762134428874008087736505374365213256340854733723536575548176138094262801019699689505794627396819525819854169080425084011742331011987586098551251048054967541649479693359185335610617792998766388067506500473429422454762858777766249460697924758833691845562211893870026778509240969994858088694787168535854676869310478094236460059885248663260825976396747484600552152105204899072070896118192463732493392735582591384083053333079107548698512595395114065945564548890152443325008145061755986356565220354307913424308693651996330777127985615756605465864264119143869106292954011683815517600792730744793013279750804226662469680464197065582755109141145049956029238239265186046673696753500908078409286804513009561270524543435715634006628526898267762104871450399251552341777050551864289588959115008968947132035501413564392216776268198252774626831256313240282706001360830915192621580226293099764090936777603950852483394651331768301651561511319600778586594181940912211545455002101479423954297501165394794806363118607376989520765848070401957697365001966002039276743191230935783760755108727186305813731618323513510388110343863777556253164587746965231688751159328987897316983436863561625504264678905338191046418422029347707913853353126043741894918699044441599572497731255947223600771094783192664126846373896125086630121239380746246906344473834827350023109435456824591683795275841740057099473546682518622606872253804304456137551141830756680743975667051793470960455906476697567994263690478665944090914519167880474958176862132179800976969129045617527215102456546527408077367072430954852755823637751277293449778762148052743746599941109350118921554690403056664704584695059446447773477498068650142454026337626970911716782695875642417872515154573369062753993113923614902928944723479283472301597671586473958258750049989162712484548892232549185447889608419288473286424371116343129444801199195503256789699991535560409368597356786645155892790926269139274020926895241959422951414284199914005518870522956297970818828092280950479112925246463332380599050010686795033769633680317277486227136270883738448128147858115993013081626249909955350910269941953588602345430971510548966797804308147480739065251333329494569544592757540196319273257131839915502355199929202909151738576820660281891516624451603118735235835967315006845032488918954137679967139886794508711761488731764544631143770617555191177408049693732386323463262780018970427568151246805196523960768864171842715808623662212952168173038414507067169969069362108780719117224101388136116926518895593246428409469565535312455633195699150952901750734329499613037027642807655283489162165292299255897333038763709220847543434293584806928039591211818475607588983925485024412187788079662303830801706513089568438568510179701284994970692108787788203223383685983715057175959278365464554913990186315073315680628155892695557620968664647570173011715908054765582083918131510921587209927608208966716939623074532275271989425573660789302423173264267133354940943860299551720061928338347156744958210537104108022149006769726915141634328629597171632708691885035253551364230188020613708193673546890416848833463908623142822653339112498997055510625445327931375602882616500345549613525942076282065342620800940589168156065434333745639586330587319363581000917958979410062961434128278996620969626961756637996468593369916308438120471026302622602144032249202876878329385561433026298466790945057661453994245132331941850123645613697760087978196079329482306549063212237436372650050774411221270020660094276431229110707275595167152124286689282126377296413220484829546115250330309923496046196544087071914965013249601395408228368371393450070356187166816377334879887986579408254372677181681350853827275595078061017361529283507966747894725417348196329958321868424757022596739704132316307033668531289148151465625430528472117393545052024179831488668002518195497763893656439430930025002787940798319571229471590266738635400345749495747801974984867841202806998413244081157188118370479154653500605962343992413389676060790167067215835436850386534089511283186518079220354522403298887412669189141870559723687316609153711129155719175652568222609059688464842144354652725447305319429206641963352373741786479282719073802804944084141708706617848731821536157060590570676645503849811432241600897514493237620060301614199626161206541453373356851643382614055648450669916192440047708740184376163256127537805834428265740535954222321131340718399795074450765090929445562960568460934233674112674346578154061932729450687131697883064959309182803281225132003395484886995111175519666823734607995583982523309062660099758944521812710143814524267207571981984673633985916899213126420169166409356652401430622465029541022826914168705050453125402911292676898584869374889401188816193578824540187485533892310325232902338805386644608727454076154745297811585773705457238609754752921228929316665520464711128276292395123646335868914286936127858183120353686643892796545322381421068637968960095112647767247740807806866329178051126742097500851282001229913273437050130861417375148590585776079712834580878574941311290084781916998009316039302741980199003345582374816005850536664356741173946482471867425261378280553270280564075329144391845957764755183838620462534264844034516505553898131328851607827955791636021625092988389183479803269238249205868402544481998102954365885502977458401641046181914280450206006199726993096429969517869562570099698590378645657712582055048180856711511403785444546671676944217449150449277162803601431399054408098887339348961657455312091093643799126873092096708684365656804340268515645637082455791264221662188495812120182225286345491402778351499967612720049077850602133079344067755081078487937119303663644786827008193007579544320853862492620646150108302854043305710110044779276723019026259671418738233577287879991464030387037413724960911251043871125253914884624917545551012242428988738913772571375571695772586294221386164098297400668361910113172194411926159845426403147829523583517999115432868589277461090595710772906390135758701395066193647653531051840318354338769509885015424812571654058194310259429236796773389213942417647245827990630517030636666706868774097951378808048912363368319353971868523917558079685806799835014245233342345528247111190420085310938143894911789488146284152241037311029431087455592345757686487727668802537075440390762565787980651974578088395515551070222194987248016767422251332464092378419141385057928111524718617760137542132689793866156501477730598040897253665008438605609843377043748492301858741205404920738133178566515232944154539299975544739218801194788391303735137498680362935601635919129153382528440408120637058528705264438659226150028948194125852632109773161750807403054255090382333170385617529903569428472987562490877661510071111773820071662587214298286067637888112359903869144765344541663383707679235452129618680521935599128373318554930965938707879972336540250206693746339146253875431896625877060923715744649932198917446196903480425653335102538818270355992249767988528499339458085419717875154109354750492586499023079537976411754860899790223504263624040091239759573709252518654693546054563348534027237176217678893358539395437327656517994035872058994949421597466209822304934158021375567397713519806853324936428498041535493898477260276395550430212510221907961185740941953185412204930465600113882107661656608068187696738295664892881945661845306989137957867458058244516737894680286950464350877427274292310172004282167758166648513811642473563666675710215797027975970057939147784519977996973876275822240919438795375078825764917922802459484827956756457772786189002579824330616801136695249843013478403808008850529845649721350459420732403821906987444766122647815248713458484670894790697284044253241171718842194032605729237340088017707143794779079348324023397157697183514686521615380247784432267197472354055458665536465251115590018477603554949803477692392878105069680414284817411008234968453226671153279113585678052240036567278188375877544768040178283906016947993563790656574291495524582552779883953214490833171340583367647250013850815213666313669656902619748192431335116905910232209083409364159770996641945385650891232611502304398944455006311176410839491656643626587104351342968830893155763594762829988129520790035397348185210503043136841050901932474076260076609612907019688757647151695331824385298649166092995334642011516351451774749011711286948810227083620512208032395675531159182776125212403635778682829076854690381802736816920910283962899616996641646667417977821479791770403713446201560495122339208125515145407220835085717090289377249168848981326262934839515158809260522108372686160735635303232558634397255926067746100720579683265178296242512340258808448140508876346889189584555023780652719527069709996631405002077401590270322692149682795634388259666030314384357543202115196166700069607753378168296054445477953339168937385498793738269923066668665767767411092662405214738585472153298600662834933621118001734499559973659430212463411806269172248155089397139545137171094867568132530173921050259151454410793929256861318490397847951476246343971644535767926876625849864076044429535515970771787529866061249493240017835566094409892724395482527991061538305307247441327707264809634062911070910264833171275698140361506378850117566930866258174988375718019253795294408654145511431431957677121250886477958564158706981987870140808538167163136002671786497872344052975885581202196788300471822933273693732358329146565896266983649899942119884720363672885976649894276083039706342256001045743872880013895908720091362024448699877291378051717908092988723994913645367531778093026920387638514491678200652603684043872066415640318615404771364655538378882071143243665728062098775901172559458394886919471402015111091077005657483420905208487642426243069251872259411585781795123983541537193277364709792312338434406066302149175558741251117407783898496765010387235187986742354137787971018295260434114968294909975087194076025573894216949339366853877135463294969331818106933516019621121043826876569771463879598674790525438904032918568308505889942728453441089762837259411961235768983364171216881911082475701463182258724042761150026223290698158927481957251388028948716079181269793685840096529182716110871629126060521474962993417324887346178191809648321669341213178966632194044868529688710806450586169580588562146550662169241209221807026358140970329913491232630559854021026693965319307142332336995852948008583628019026801078554621495679273106399306416994842549193601000685703287167991841888541522728778227237155668671310527122361028626945679038603080558891351240309873144755574618367482045240049787940849999885828962332910275071982376316637799333933492621336426641557871919003287640934669234136026136067356543589020928686158521153772116057810276477599756998451949991846923828871934954601157990497982393508891586109667249564788758220119877385514065442373797283461570058145946339474171344827317180510297893700769632181135997826966815614366900288612074464071010967811411877583349378257598904519975540467471380715361841873033906210386484189576455958530056814065700164208717021104157326947335937632364448320298299321545420921075022481549395497439273859959289438356496159206610312872611264393181463783560222688999092624316249096131976708621242669248429764150674800000310192994939456602050121292966201039837211731512755478798675848129579766036448731520520199853898263818221450308288231476313359900562888080144011635824603179038983295151355052362452240168944119577526252957763469411970438316044239374157423836217000258316782798244983418061588606007844101597758704240914065869728514196096797948678073403642877695706276411520748843749431111628548084342062110862786226328765208213904338977041839870257770289358972912406730876204619426957737999941722245573814073678182312434516028668812077550656363632987848904142914861123396734806614696886135231806648222293808282927548008132254331876954723345143000936901614990768581018825743612096075754192751210035830949749669420912745458595776492531340138238037890988331634873260224729963527195619455280461070567340589226267596462727525552711942381494419683244269122746468151816961654569065424431131357089471381584798479176900148250452539266192401300915422807427724889595164286922682051827694412714509246541463477764709340092417895999883989207118607487049073784195822312831920759096881472229772232076061776585087362310853856198510924148846927555989854061311323168433191392749482974203317769116793842541246158222478902774659783832547052293220227466213186634991898441635306539790096036934375820788708172162858098153548602624526310803948025399448138565078945638102067217991156992955555217662489986706802871283035253549858454236270635300891364628297258512417009875998134720517544831851836003657554041060856004397633457542767409308407556898981798150499909262497444783465060432968011683011508509500967888734876429403410538392657829185807348119758939219763457676483217287071619956663628369504293211881024816544600972999590737740400526198981570299375102431649643257979758740072067647490507002271879443209854862797053384563679850509306847736770053716892221135335289109456434387782375655252542368411110780984785553588519541343770643850805145819831773437697192691746238030750471817891265642911547956829404248579597489550222257972903961912765502465660517488778297470404972799772054516398829812198500341986588819922633556728649146272019835167116704945241138483999428026445259201177682300654006398691019189113025605674786402780145173732329668569734986495963117475091892907290979501121413993016085306156037826000318587730999817484212084283419935126028483764661415073597186791073384135746634939855129114192628203741694500532879848672723277745011196896772323912986257866388126233717242432640337661951943699069498837075924908368702426664102768433317196700032786171026267444960062734214019930418714660040939102520474857478173284393385947939151306763565915094024905156859599661576319065488132041143628554773408784075841615503424858692473057662258815941834376944794350669540012011605924848518656298516566367676879019626954426962382678110654110404642920412076904345130453910577763927202094551502219617651115710467951593220004080406642914686433266963220555322834720642765536962607634470324745050594533179359746263435577335674235350029611688390091076095373273573258387173078872259416393766978593907002289435243717062403741516977846083919338687027781668643488830035563510019667722830790482560110065971730236082723997501110020758843842279248712131204666958383354241605287776648929377924150735556355734670755930959687324277330257688331464640526127200025529193064288600765479781224827929846128638309992627255955745080036438750729267028471504452190126139700031854992674081687954728326630369813679400299559044123991836052828593837908336707630147241704693207830860018581913010125782813362437803934753396067411421709353387379539042654968439400911979676068257740721459241808788583686352863065137718565737049358583439455786306748299194680591888466936473896186718883094811279708031699744622479890256924683527623636911740437543556347969319551953636511474958663697044681702181322786161207082479174057535013432586536931033281834308997927597998188652850883534542549852546211974505228869721275598364640442252294966992520586875637009685764610550583201101210211291266686349815326973774044749696211548842482942002851399738061729247131431465205255961963620104972125351342019997040048473225391480285237312679338965405925692190580675275870055381750940918384921728828133348462305455828835306288786975075962241627268708019875666873032919072218322921593741226420371186270665570599138582117369181968588422324107415977842277103518599880979923346884765674467331727867084454643621073050497612181441007830141001563940072598483096976350858328248369602034674486295038223060385187076262595842940886220718043212247997452438773801993464664955077382101631203298133191510837239754052909805379564616795454010741414507471957139778477952256579689915976368740992076316776117795191166684234797082990783689625718318371769087507161827929695616059309502105715008285865808603009726566232359830410905193525928219967019262384974862037717741415879498685470592980629519195561068311474835699666395241883512725453587540652131561626513738055176459681749983556221370409195836109620658243292437417248711248760072102284236062328290746342927243812204967572443039946556650598478679827520503369445650346770458115751456829747554575264041298958713269439404905144445990855473396636880602232046071874009196149785621892534070713520393412794114590128494136643734977492269762464654429174797476053158214197841895015295876456215549463263168607295929961534415882175951333834460260844929931791142285540099826568298812045165970422846315562727545831241486753877936305474625304419568072114509082661626833009145186073752174749952274168491243492186597024474279015328665408799922823690609063880997783912618182149527904624589746599555960479697137901468332807476974711390426384884868787108722477353279768665909002105252654412419798484643689984134009364942815712676254061024630424199957663139135896770616872000595576194744585076048489401303166303901607746158962988421947653890753213093778720709462374979321840621069574498939068478044755218635913305382915775461289241988484938590108599159229707909673581312143981512344355293335186840037292850682411768295326530124864489118790632725169764340832678183097393321744464997471122342088089720180041173501434485013623903515836787479427827026514284766249769358300060271436498180797554653126635022309716834942059630311060075999774743505782801412224992262420175209228232718800267443680390878611275547681611390848412089940521977941669024419357646901693746944531720469708141108588109234647589605577154232482897080871647207214204833727739816395722623408274015549262550494249674133692850895077300389480075832703246285614870005375777816579964343667414477298859086955713060653139574002363873862805901637201349286850075312708269917350670585425695862133572818923564622790394213623587981499062904686000273420375344159803229038512821723339980460614504680251709065892506006567365883949043414787938917032425036334533095751258995559296518912977043785147535806553635957396368701054838832795304972360882944702556339960937480619369740374434754799671479779102983469246952774707265274661866670137440812399109320553416514146048230340469684034587358681213688866918715284292595683397223460266154198027123942469926874742665165707201044345405824893084650476880790205710045895778206529818057781999806425792796225673465933212317757019712104614677116214761251840188946094757518065264865777192317459752027844891089712744997060416766995740367461965742080186265419059545056612837213915743333925541834865823728893896889992162482549165598641868508878031435455802445562707019818982653244496853996537126971386116260121283836519957374237474005819492128559630014859277007147424370757298242676466550729544559750501433892792076952206746246576217990963929423058272662734854478561360834135177752764381890661181453506135518830579903863256044089628095852000550646490717789893219412850928252772341705757547802668213883713817377177600077671571889541810436642676261459103563535426938397942616743394843104868603726394800548653162599092835566073354091584142440527321481384493587182128131109746003988919144197477759909336828042455990699079811932628364729552644990076126305264857843316324347927598483891483665846795305372488324321446147183070902170116186613044974757841427944523113100636075360969414229931207838153797973546986192666900749043236664545275803845207645532325244112569883804663967890555568689462974036917530169080288458322489479863563436011506067094224595414609920999069282699418855189865723567024995865180113303365771572040529929971331338809414614188984322592639661901574317043023914645414743989149816232897668147277266893803403970666278501376675583506597715814620910230617355552534051698801786429896407511940938385780289279837500093217161906616546124720858368615145434534549633842784931769681580113838647997378207945326683309347373787625328359226090942222727116786892731672879262388238244884423246190090145969667022497852544606818114010889338261521132127995854338817137143814561321008494942462259037156210457991096237597019306695150985588767975156080750994772689301880785636691538190960760958695394320344034163010692987584026113503979614507485432545220266447168447437273745410066119630916296615510687344720107210640082597068686339975390034654561916972058483070331476988727811674721213695248336025356221649305505314425815742518890854895631857593125889404737753043683040751476730410771643541958607350198421357882972525765741460389096044694138145703092848777215698180057653019483913826260248861890712337101936583363002271328663330718796406541785816272577236261651059145253514593891598620137600105359218179869570262081000617592632100241785581465583685908308081301688806944783141190964018665963957598840786071624497008758543458081589871434401117714805138661299482867172181218152827336311809212718653748547224580323177648882288134839440357024230089951712180477546313470223664895000308810501832604017833035123980986572614265483296306093771610169369421583750942785333976793361245567565577599608539230812093829064411465822412470625133324052150735741096447153086913250250411101169459206827825564359378558597023960215736587974499090336593625357741835948365350420997060893749232887944095697779357785072072428189054716008725000327950060121555847046229347343424079567151979559596413100409076454494981968811019859878778532113187138035493705534289429609544157801401910570920179994019315451852504542588832280854992346650082056392224588614414530385743859134903306318492276350910472740051590967629530178478858467794731498938523291562800055805330321137537930523698423484187050078434264975756772018055981479015344733148427607819351387310208220372218601312411334411310208483564866093245572385779368304988534609947901621359087326240227411682905403547774792913636115338965366837473561402000879360303379101332353825099449810377049946672597599103792002983287221354521180292436731074222721899173115078256085876943852753639855265978632072099942532395318052632775597321919234756940695767182018275860333355938969853698644314243876057121302599015137030493064336157279865698326515238230688854843590106070131386703307760372733809557641443476116081845840155066632471328935510893026757058897022796681262045413666946523564434055397962461154996747149207295024137303985035219903646166947094330636495160459005771118078043784899208623722496528272689755179002375798534072249545282334246851677993236724588981346695521076924677450163508695250466386057329262328816210958068077851804254392435116822616058763794772344044877624013660100159103641296778418845095726618110713952725782735783373939468889187983960944970396344052014519341496956555242720425266388729099417494975244798054368907675153239747180773519635393110304075816363328881524782836613146016026872754108616424604464133723722539554629535159646222464499988218863377108325057253758664737725364822422296939383398641536461021325499399778795995984531310563935124731891568650865022408875532440973240614980580989161583949243762676397416975162108264249961452221206041307178232206070615787363124786373079464110543531001612248352946448069463649116064784254367080192769451365260849851503667454447510007928505763922269936914471990122575920643366665046716354308375300294639615945383528334433815245911777082517845594031754473801423468555159006104869139049946886052674726797165490179024144463361876120210059196458937586563545633855728080090955065937206688367347958863240091652448628771969181841233194516622040620741143736302832735715876939734837815958163747997919803307319608521210661859308743261817739063422559357031651702435922715109638773121534182968670243109074991860449654211574333560084463870252556339769701474857629672028876375613365303794337966967786353729513246572932167392773639038423252271698831761398445736362273829231624792862631661607938315801508690414078464589799122289416596587901952104902612007958214244956952899919476136206316069127302517905832041316777257503084493506470552634968708914447982784343337989925895106104360501074967076684198572168416204582126097927820196050898086252989740197642383328733050679524485263245698535689144628766491445611724476930218222943438850587912559761707769448682697905849686854883411408987542985725199553669923414566155924344857119553014865991130432451243642428935858117116271067478954541413817223320367665710874633435366159111656984721012809325388625372223072638173928666158594754843653756854008197019083138517097893801538373382017313922374600559998280078623481267170626958277106486797109607240174888079989136493339491175157791366437560279834766391183391360452009351680653380650581375185172251760041850238436112557719162662154970850876113131199918548201879880287270897487106875657365393777746025530355565100419789678663927474500985016660339145001719889392511376306668827677379144486437495087550016610750446291949971734394346278688373562952735144384766640634041289001915061904218089626683492550295225217102172089322054743560792859553340343589959405851865951163339137524880395305549658699485078265475499506750228748647000556845560671588047373079630283944306164535338652318151725774056719547726621531562573655062858120047513551872564406897558890326474866923540702758369492473800950066996378240201385696625838621186640618754514896327500965836895822073155600708534344853187403992419702517802923012888581429904049114108546251205150767226697369941046959270787394414949470181783799507569317289958467461557003446170014149687667544015389221539470668209095665777783951300058492630487100837578682821317748226350733818065561795318690584938969044461170073040594448867224589236407582806417028832568387950023352558475488653617648397116872690392277563184818265719365078539749693064886605377807049401173040047636133405692486426249463740170693118177418592986788203576592889640443007145570690592883067192148372349943883902116926770349698409737227243385186761946186900975833200667305246135352452053983688103739193942211519459892097986717771618349935711328659944103233045741816232953951852330206739868163715110814763886320108592862805248117784279304027406605854170254380207663255869266380534504079901475062800881370971068285307984768534416494778031101798402467019100245772714617975043188105660130405872179793844672447552618766203706168008718126545838472476536870997598404739024321745762040941177933947321624977751160804962505385605834497760886427643347727608543380295297253644292763046916817800196862244547557197138268221134237118972246430423632900041114778589004209027933691731035260572700702918609837660142628864279237322586022439312671622262774168874252850938728436415578867122369735271091436081825771559062111685893482824197572444631739251505545969357979377825418798372789426836244609907913057506578144625655166399081793237159350636618666887410197782633612494728074428700725814288508245781236086603190758676193031843991170511161580027654990113364925185662222635776313713881281447845409092852388434652124644744510577960432181440143975513485861440482891107648370160581238330028087757715752946985242170864416224872439188690576900920537827132680443090168774635079564417742702172379100440298678947372951420014753475045009918626124439509425752907342926050554781277140221566880400812636954185238096678384318994635474785144198785741220877069399759950615675185248310499827052276643442010594135420795550528633176024745757943177527752827209866507913537495852842478260375701502579864218747683209790785776538607007333004021834890258339109813521632391612374909506092680862642589758983372340009787147096235075285790244446059191335589722598229051992992678245096470480640645996648154346727092307311528123556863901862903413993115229451459555723928287653125920958284019573394500941978018810318519445977816877442477949223139987355455764543619950602314611949029049625317676112567084485258307178697551538609729663717445779466297319349313407028581658003123081928469295695110243498535842421571197418079966039893790127239551215900898700369238337932989424771697665496089095688363538189350608152337377051132986039425618796515493936054941753229929071559928713665119688030782484934816179573722715047212055333683440740359228169272059956643170357779789513955622465334873796681568340201568668047827668962607209316928839022080580654687252570405147585782952978814036283446522014457545824138386105322613096277449285285504640456327680436032009365219836048107659852735210922869370354380933416032256204976969775351641085140353608923107592172414397547879523434967645314269106633837731152578257970152137917404254147212950271568639227200740176328204410438685387509157748998572832516169614233155897291445627487299910146944913534418439532667364415851187403650619477912890170619556720198063145966213130997718157196983739944609752414271320803281031958117826348492770358506168248742806955290891799702459966254201089027854473321900703927372622398826752008804879521471839803902397245297278324158534574744294158842783677597633519665609745685748535386853366217228600249332708593997071356898871674167134427670375118645953300683069236070611145525426892123203034688119047654579754006941024465465071701043791025890194298511025385767349077250213765341581938426365563373446893769293297089698095559886754170389827633545747768680803172875662853927213965581238266643666006755484862501397834502330261045112845655820851950168476831703592088248072578776832160159597729047567459212809168140561646650512225962284084401549552187038727235495651201150238246645268042474668222205362916819221749486720504278077446388109905283650860933197016590218478227677034384825055594666084205800430308216156752442564583677783958017478000112021723963427973069547156543016445000845562908763562500189351630461428805228325137256213344907121893353962879453007456446528036092931739783729059450821651196225554671245950344553339363279998000393658964048354524818806607154448451575714946939226104138637144946087418189417424903604156860043798515176016593467907203965498984729243881551600042052240528208663892165649157815407973207118133636328381844610971763789269203396378845336867802633357340217398095855407373766397003946608531921647094290292270432805556456176349869887592010655581572068390258730970522316683988778335701313330640215900678760111308963503949662700427583034397715083646568652077051201189314739243429660049975079237056080708048343150060036151707991693109507834732692874022201806087572771231563893435264162870616968356295745684692168666069096965241639124715795384242372467043329638138133075302988295730411875777662467676411487111778251871066502258534006905277486936046046709475069066951117859898804210603904275713004613503493904074828891816348765306436100024515285970841508217674397573645123410035252508067790101245371461769596533557606381130544204544860772590668720510804059885890849771938920083139198792169479874663998004956939394294754926117904665181716613766872476379154989421081043549330962430166634142090874942850905021422847254928055439535447507561930384203891930678557057933668485189051799343589886939868717824494603963992140994468036511654364973280699780017696811792484509644296280414494696796823998276158703001505620418239793345505951775195469697228326448061506780532972500234015478966919778047878565728648408341958187545058569648598907867773815534243296544146487449690641853379470179651663892536842340196404643590176588278577276070277756778375446915545278815724367494696967230576711637695213319391136346300976754661474905144776173928025012457582966684876553224507708512805406667671944136941169163353255937832857395771763968486032523515586892136021275022174106636839396443000813170044050798844149530735929229237215068677225367396057692814135689189692997324821403097610092898505145435677944936071534795892151240045649569274815602890968132488303670148791949084433960822162231672802540795173201371796057647860949417503352022714870873765635761299259669021174041578310987723595249576100021438525769601382237643674883719307973309526960843741047743285300304015085507925954353229478267014107631268551259219675322404642517946991664140616332228555084855392762170236067411522061723567008628890430338566726922209412886186305654521726390168398606828745052870660594678718724803439072510388367400718272858848138443225504514319074494966590062993441776954757046714434649338585427220475402734791995807864990128024159955821599417827798492369969068155039877798575366177893505518142274727308052835866274379283738229149334859544717887089664126129529014128466283943162403817373707977467468068078466072332960603419168588115880546591637962945110361300645414108233840286223861648000898781035581094274766698748120516149731050167787963753356580922826544736524721138192749977510918651230829691150738687685180682178790787345281204805109803716008865945249674887560223356584506014645134486915650396937297953209852991782552145147477787538948180429378538535685570527215393824126381085705678575332326301249018189316215293104014967807083432280661399550935446783702619572641832479552152193589323608192433995124652661904143305594349236537566452445219798218529531710622072928411233266707615132425150068480382974343885745026550184308354572671272121395747469053601421808251824913531795470168402558673672418692072384654872546360256707179362304380366899299260037244721354214164942033079399510015725438534367208607617207548302157475544559203630995364350019980893811216001846519579746062334963494339987539654996304077001143453304396421718260738232412510332553299840013724396509056463865582460196428065720864357917910265410805544700728593283531805266317089761748889790348769397853687308799768917074944909052182088561733359818681673326678014661879833108781501522643016315821559227579172153290307858235130143723740474888671494573060618319936986097483657027617881693899887281434049502499124862116415967202460660081962863797384784951098865865104271108147367981967717995769903482256994508900431927981199559085344919114445083949711958440499065634334504860889340937401199046583898001537063788372114568807756072474875859413364465536304087642813523758362432884257395597226257559219535136461022839768931744939160624671764355553901812977897004657728939772464510082083710460722780643775313743650990289783851186056063331085115553622987069700397526789483261445909303436775341578556040774791145124063336022846686184516371142070670465523922716273861743913140044492386757598889686014238086428105304412427274139345275811512219378954620718287773001727340173000618312702778035407644967501045756070202090721935889858157366840998479076016882970540145605105151922024469187836017475261289436945017173525415823115082839052901014802040838622495477975019792064864141184856113904466895558878807223293764238495497733813831497297751177985242360398237425526534752056695104536716767421803493601144111583021123892560874341372180760752093472360771028469124327868672243790038510400955180786968407451437876724731675926294226751850027001776237662573544643705896808259017706823716472692662897544445618035475904265146511714278278285856026885918814598338458646635424536888822797260212747940590426710478809741739681619833370642401182999573796076512155138524788561737357516296573228250117205397854797830630479369006565828236264026085821194885196892681693618775847961132720150152511134923262605993118932950958451469270776418573131571446793973468585410667392125088274290981999460366318443688374031524133598509958992569291630935075254672414256444558917609647012775572212886794641830680393762906664842368400592010342333157565086364420270518045281745361860855924470849905642956187610403886249048353578811489863068138432713088862424919814159427151255662370269456282741566689888179660007717086362409986488507706068562185584260378096628274388576117384271333221293475265237466687270712554687576340371188098972286314423192043060351133982391646044730167804550391952994606435997158632798074933325375710954432310442361869557686230068383926658633383800214505337959347109819063165831424619342111074494073449266414787247158431046255374926452985540101981075484874929224961019286454605183263391792122884485113522745519411453968506529855596563675471480143339734458023082864612233489521939481209939003342383658310763796474665279183405479368405771410518129090320951256950476254670412589765046018935746794232895239619110053512560101740489504076043914889699245185436388289212302935084615910215274916268760272910054394945861791872325192577667966239408319293523287018134909338994821216280803408030204538230148354790833642973060895011392526569567610291747425676198770555916664575567533491939382501165680617887398097053311698304889510050095491280220679306504397651712343781933531093726147805652584729722794135468337306473476734835870738409892020545484851912029148780543133247711380070138320852749972657094499614580667381231211850945509907308329779618459377508869501213777744661115824754277349173269220770560761227961083138826958288084350562878351724697441702526631524019208037712198851598082477664032112197584845447788086262201159173696908207275631890124040857097924302100632195507070796318097347806010388208853684190906738956574659422253370460173489568095562885745267761259881650453105970834644832220139017531516797033403550571124941874145911228358237251979933287022873461272601126011575490268864861215496883272005759876278655246961054811117887867326026665403126687344603299565556910504674151877095282870823711699175170816812681608081380020511386832514317444790133783398884545818194960232737227066624710905612384815088503061022241353428635409277247027368564985209071229213257994192554753579837683695976233119679220417663517689258347610058750138734695622742071382360692196826919698117352961250970901118262771832073563481116464915918685292301559439553844097266761853323149318858966926349124529092059515518231945931682581882670691281503552670129617284455133237557606055141673676534845555316487981128141792577340208560458881198675707519867803279158147272674860759592554199666695462985591217665421414248176347792310242261051168940832252788482962872576961013773470964330745783662046131464728235236649030803631251016236418507424378994069227870736890304517316924571744236139474077746141531672919462774771429805543085596067259041214410312954931581996440994757037036473704371967410640049695864435572439909908238349541138210134437739201417204871046129791042255480790382620268220537534037720872498138341383994657457780326229254665468594656460515050310165256999267038008043917434091465950534005536232853679568594196676551309741327651194355216270118738843974993296152315936083844945707196952084375628074139263968018775508858208779413303912511527522514372532042909230520878098598362549436717732740999056700427999382931998026518962200526414487576925169060232334912029397975359150353162745478994718212827802295400035238782073827758559930372514741770054297919005452231441273613014646099154776601041305043528301104056145505732678013144414251714986944473555489838803236701618069603400431526862878763529956423444948839006893512491782070650776587700102203987241503266481413317503599598380633206988994379579333645421983823006419155278849344861063052586187717103615353352014206632218722394761767791281601715793154272739365356896581942235617046635919024725561263214850988404491260695247097775136227298385729636493833474806634133290537324498853633747494036834575791274814553518434901435778881611899143665240593287801753574085115953562042980316571893878208900464193719643084962034726362164646307231534435192538812349214788684051773990597457444052757418234467548638526543743744031001609807357802193774281372752454428081974903568935309754240613914356582749035191157276153928010877240881436055391180828402455543546962968964251712476780119789421645998799216001571280052911022969260413263287772820874456827197405381170271262851448592374909744128788060615902618995802868557393636489203375929352900764332225473330262314447879895858427151036615109563464770844929686813683737049084145019360753586725530021547698214250554607942475343571118808277208225467494000190388818222284869183553146605040201750558876360418431546147988217968603544545641750933747998378201831197679607904046861714144536473547543138378766190994724715877966380226382086396823861253026249287509009552448740347786514425321671049080214199818348012316560028703144657284541224152005717117974307045116116670330696895349599161407327124411617604894614952093855093467492019608520439513204453107266666016983977663413679962158825716573075830958774013278695333407383995775188030219910630883505600398147016208615093009509511264546479533676868051139992186847683849246807819490845510246970164109976487386919894374635818358259222286605408461420629250462124624991256694563836915968913044951576934251555883041109352056837335300835474693090330077236401961149412864219635748739132018267791355840581402052954571609808702113117899151239128114607541282393988029222312080591132054969728011318659183791280878723912020357627815922602505875242521914750241790799432442279905104695217558554137366045997037013806917561842564826094308176758715631308163623200533144038522505096582247118860410203795965662734960926603073545666807516901313362199390879121008392113388196464688853127211815362171883746296803160319553108871246639587808149528442160501691109769819556366580799015078295293918589768569630383637649042821865122620688531498938401902450349656226359083921681681947173713586029593449044450654914353037978755576550359697479176981667549000033495907554978995548971801481885094111867839550337219559009263888999903406684068197514032187703108467482102411857827965252993460269785072531167147337988923709001429047884098214076959397034941254387500468223539381578629044908293350461646770123467027360169438970100749308682140585877611240121106499097157632474015248699886204720847540130737638231252348012054166739113615821128611073758466616570880577907927703613965496570445971216551810743504868612824606496290122939445979550939508823849991864266019962878642960664420813703029157717936428556535789932626278123312008662034652547014819006847986216708864375993298742277841905157516719098388777779083962674533675161355630969000659397868691779657250188019317508088343190258632643637299687060432572414933050529525691424192108255808247331292919882101053168662509069140918225322488605292420275363202101940536768609837715558604507815875397055932724712601892118257371730655558269499515545789870272549892265910055657882284122611708930190440477852627379641524757774889629022728423390948589372751138419441317634279281709933041170418403974080937705141684721445516755413518182240226294261294488169645655866726237700894263932545388868545738482924909800205779147871193927246845098603937607397767934806677752319608863495037730661897919983345853997793705974554357226802262985680705096277701011076842690918949384832091909838749909793333519762711195452644801904366550057427229952995673490370321799864395797086891042795146693781342014145817606357078036963090573579879470567205168218674454518486427671833815829194924855409363747626679021731294941373045884544857046193942136796136829450960870876553263670786363808670190714201516528160670095483932232734181901857698175256541498259464572017282232522217365939304263793221437400685938956959403487608663362852835025643648452871674674609793855189088342340005718430092898215772379201399558413691563173050582692651799931424736641262584223636167522056964705927683508364055889131013163477434623163398550728106791446505190638671145059795490507304469574116088363891683789243182024865367926521563694114369742009039470426990305922903110830596977726361851964335452087827073276797265601810942233040965703871513559657340381561526025651029812468072711758172927082809341715882671316768575730716390726665483586495232784814447792913326849745379785523512893747941487277861512177058799577492800575848589565234493153177650588662929726203618404852829471214089193727215666781731859915660232003902976095966118256177452902620321109615416399576040563193219426351026706729541575367673978382177420985751984273265401813625102158480194879655748414770857066008601891205675168658293245867636341683208738844914177298316040754027872227917903242785476999073401652460250947529693396687118769548106609427541853161495012435031165208356333178894120499267520581487768908292272549088389148263536271597119289269054420444565099525105466438927688214706390466898080708675845448418409751307753657716645350796586424395686126289871712786000555981762160226180884663729666883389644275643616357441765131461374562036342898761282418448870020782316213434413752330788807186028165953471674223748052181033275731676998544768629775451440384313225920397322505041370077275633288817304574705368036607185218200695168277615358323512757424457509931455996613597320042700520762007414462951831397762777380176202090480155429037468586024399060619452704056447756961805939839755196877074348920089249680038914607884587309686145580574694951666622542801399995193236134979413836914187460644593616014494719416906596518476244712466128382993011250305173437347654003965180868636320612699484682014311832004005007702315320978014010079259973128348526043966993071408332890651037756516680913011581486806376419984350361391229266551476132745936651509249170731850585683345754855594715477326109190973815635808484676674123790263266980632297701516816099993717078013615083378489788132499285834854427092941302664070147632664496067348354465449344322671825122625177564408836466355906810227990532538129725810371668055363826020170250460237818799264216889683778570485954042779287383361112665817650911526523900374640174701779025147471271260838646664603013104563042522966583242345107258418614083215920150043607480005319995068032658618832724804566078643146242894558829244931511301950924305041772188108801772628239988457190366952106940808538017556485585599063724461259169436475231034551444776295467912871510253510568213249985629838303840333403881876064858349644071265775358831788380887433585835498440456789216013687866109797093460265958299244454545617830186913900427868271731422298806675168841105471607195163299119781644931696970666692128631760928482512863140385588340189519490236027748640775249269319933955170788751294263596986531957457645730831530000902520859148206088098341629896959181302112813372037045036424438030673994894250618513795028668503648590193823207638777853557234949375999080668092093837837369059857762185262825077732857551854611847072981259412716059303072829673419141693117007908118337883136826949193907152077255152043540499682202937415502594453577573964835881413846870614209918293456753235734931828853374090988865009439980079360424619812597549189827732065358461869139026509168981897989774694845131682257564344082442111210854435346213640180760123072667734692632496410955098177668011170999596676091669850356170019577934035556215228736049919872829595631015063241251703336802287866185175005018214860916689506121098623041439474891121778686544583090884321991651882048043099427690681729026628985697555022671826582441697864118906825431808595083095626409063517561815936794645228198422682380226878086675087996923769193975024150159592373318320608660182556984167426954081065393883376053698120536642245345633442133896646792648332549197177423906040438214595735152037537836670418559968829135945876590466800362111451646713749919638960255612931046075276478062954655936569171408714701515778812320835215512313500445506217331937551373416338412724204639785651821145903080262131197889434691080915267511602490110702410440180648295358255784200858516178302236932219617183834631850680699082071333541480799269581803558694324251190675393188571376926319075466180755212444700999520472052013604252982304508288528554275138120679916141165443130016885300714346236182593872333790255581157812079960514919653132263841160371175070646222971271280446248439707934751993757584471416470609222734012562470326545903111096626061202328377695524291325769261087331465684438230874148779540381280606932555582303592294017999061134815930215378034578598337273644855153670920941516127265406504111025699568750263026257492750687679213419446128753787284131071947669014081033432355958732982140440439211477862880003961833704941271941112705612247880201386106976603043014008871242674022244599346276751067239494412713135907143740800209009971342301431470496354778188291761638028710225856379407927044593349890095307222660454341815222587197839073612333850549102459727128614514160007863134702915476672390642465711123872354350404221681404390776796849508397244927477416252916727518254871234126064761564214117949242929634324846324889716139454180294062216744718357176650380609471276362607247803194018510496250754954837371455377132073129861500670809010923480771779368962595985306701534185775295456339463780972189031850218266947323368935881386275675661054986520129420093538750131117895795633938904385562903585949775286890506349955157159562809467388521665014207708361060207239557890448405321875809609024700940674925673409905244387571102054931429971579539716008985765461968952343234031054884958564379363060303303894563175876676423573067629871781889721009649446852883091370978202256567871611794550806589476907453127827891962697300774565930691070855307938598999134578745177990376279742339767377905036914984066400779300762188405215605455593085533445324580210262280889068906099752434870185244369919096140933838506603914051806679991388690476746682247939351409896862495965574501240933094866440837208335564080630997644047767441617747833293240187004510062658518031878811143454999156694591930871907230278606476044814804427576027540392094749541682094980484786979153492031153308551641958632392970864302269979751055725212436133651204353573097514851165946866420488672109970497010566518451674219140651057561853301537561492067778139626874016353290821705607231837125715151408911536990350860274815017825666223792492393215604804231030577217016480362367966264247228578454513495650650975050060042289505318267960707939377219120321470017548505372778988395806317249993080934141666887588618129803527544362875005474360356597032536117884318001520981168048951685130481968389546185259174106800565310590671097360681686768292854653061642996169115108451653957722074919595549052443025858934558427767332509337881036536436564128246205201066245403913045066627649083191005499483055937874023344650718770977583216877174125027147604018333382333809225987130682402562680714146536470304553075186421800619769068947489031935971655034805732680097367014717461296036869493182659871304009399612377304280896292792507095400644310386506782172831792402650941545623594934590551310284503030775571785505993962469925005421028490040019865091051496558459569010480219137308622133462074537337890998323490816043129227892534783015137611975006551331234599000770334547865505061646331950329826336103017561491506778029035768861645903455408329865104682891885676916341931344619694753481465134153640227193823950744244387303112453911620132635528165481101970739233727117265329621004922550989120849480273744424506952448457868588624285556310364688754316935587082195647727957819177363839323585782927914531847152080381697047148109293139294428689114926552992350083126891956320130058765877276912305704278346159395603037862192462602993115869152572033916046840654739518659149903082451422152789666018968465829787894639402113250126787538713001865016178805836392102044220399097913487116186708738943564107161256900947460266520730529490815044004066638913581453834689816479927343985034020626677124349649668735162352786494042978215686524632539501276062822842577004203881575650775370978001730762186712673287349566274910890042931460530035474111622060541146204233288379564172034888217386552850727047042704881857735096516490247365224925021026959318658053465330223840852756832756614723196329858478827906062974719320389515189916789320595059237899530622907299202578639759947417210233233780821351440652517781456449958475822013811503000218713813039025745125895127464090492847779284183493489192174538830699581499310434479217430646958781258768988834434681091673099760137317774449127830717100347670376647436526555685768545370934561461492005853909080054935137085065840454463122725664963961727121324425697697954999596629264016733727742414993577229783509859636693306278498457044277415058510256354062920222234668547075087457854404857612508474139898645616934985058547905604404961868215324296646367774638528707923776963208493187077232579992734623696975524532042583521742461111045830602520560594606839223212806702808755215372770465091161528521467479668367520714650864109548004800226619074534337131979310440585439230318920255646639206518390666230813808010074280021736619048308205686840968141123081790274703290027560477361695463138052263248389294490681464660844208198751004645965390010410051915703828933861335342388609030961054410358777887184474223300473289513415643565086769684947236387494693532605793725802319498239777126895578617111078359407438101832194083678463750221556972167769546591521117679473266087472410310948626765305452497513888722272505586416563823409990916583121784252595438105490449100340930355169870710411804943810832569357521505712660456400246245383349743889813508113397237297578233910176616828156410431859871504384345681102063751241161436438982920180567740919918795948327299418343574020015649317533934209845900832220340926376007593523932077952829915093165950804926999637222446495992554379456967043939267204819346465677947004309217042113153515481148470790855172512189607746260032573938562596315096515992839413619779965794229036409646083206292842243222858617571796129360142955517222009325606125756470214007847277330991850703110708669606970291484535775972228312935864627188979471304874984204239041498474892268119529487582407220236024626334285387791970886970834200767166377416444633287379003248902016263532755534412347402963371028831415806124578479039159550328502304708108381409919209878069531661997657062524097759943081185963153427306821067121913087206279323452556859753026052235392129613851385341640519317262686357332151366421998446560937446141107188054992868249416384706908035323081439903415649163691417941662109262750885216024666970757586157534806002867250983591314988774053791004232435037463207170374270149233596255209090592458167361620779004662524647467740123298410444157937712941916124190428142973364270071768254082773854148943988230697165654801328398684052911363601208234717386365251312977267111227305580971451442903261953890265996003217275525354357076937148389139716404373540134395123280517566509945991444882689409660622455985698375328474751268806892326845299360063825668037703794988122784191836861131889342042462377462614500035116279758843037206250349950627126373418279066132451049680777607812917202812819253870913991969960894712931967578288164980993892185760673939814376947643789447930553745275424896168693594640813765781876945320658679693945075739292573078906440148036246391205009025273247033022261238604280435502233455563783635943664439415627920207559435528019912362731647646925752142584217130996218587709409562971061047781135836226676167749365001994837736322775132239119694064579773537965997771885972242312186113308474187712027381450034149383944670174025597756896764679948256637478134391202767952237288177173207734302717226928140919777646473234669409422542974641656558145001446842932809786311836664040235209908615400475531765241140009014000705184552430727698032760973081166602806810577202586985509872769784375319184999911633607944745262140196220263297297404950595999121474923763821777043672246397506497552769835254525848648947341907913786380953330186146346192259556160036960330128405885553138775508210218821383053664484687128970684633222985876132214155505359327409056807903046901771438284771415970055145897390435111246145434938943136829028282681719507651042204518485589205929918312369007833569259260886938052963442186325824927963304864102505449614002314137280775347525328248728676825543112790314693852708434514372410519330545825616255714202238939808880562484770494260830163540764914886258984787061922489045764333484296376310175173232968305830977041897027732182006445059068585491791795858128009682554801494870747667724859025521184575878897328934778194458414970246588379184802108046173622223435598757098961466967643198360727405109868542019804465686808778473452760390883966332878382840860701364324106550544911118503721268902846498500479239219978734619662968311091381395661948177809557479961921353276211464734556216286465216529426637952423945795218637551610672416182212923583347359153479096896955282187259519746899158214914585906513121135451494964310668981460104624726217904889552569601727620321288631981817628776113900136005716542060287403438472815485756122116165060921152077456098977097136975288453829126521859549034562903760527429414942792171042744846003016065937194380462617022701818548893536398266865138250215512378223189560939130627534549601562451552360403523354447631009596603084033781546636461509489599603341613693105332824087509982573692213274881747209354649386951292991358989899891336833884468904723109151697009528293714089169748692571772424581429635361058410839867191692193438953533832969134884716303247322779768311688817591652623852831078553360422126959926412174726358281513758532364847392845090242433137027720682948595359473150590154812761299105841624813499656650743496735216398554623730926974413267725027376240767000386244868662103596707819974824009743512507022361253545600538406309684453869025478437740840639676115025009304808119626323345042388112900953378166803258261674745608458302617186251567983794989739699719245086994225318643874761796628655086841039617893739660982930646183128135806666056120121770343282305115684008685241028286673124186479550120503079454460920200535493184016646836180821691488806455709422911809840456826423775118857069998514568784077939897547294232343032832553962110419434362682640393194355119037170711060279365315925319135026168319420636706283720403505969871552767376429535879079297798474081516778373297336969736459095744735274752408771352452131779376345780255317957860209717356424810880107139785388529043540930078816200378257939502530974344012952797110887647983554409134540955040394208282370946457281205915767055431050440106987117820388300942443209283969785206613755918281870529561363309828663375951269169465281019843227908877679346482757884159546349917292933153456517545008144434840769344490988400205675837085822538687933215982436586034594569561835460164563215590200836997347135282919707329335856749482535604572586983143796352802366358236584010186384612526935574440934171962838631756108096635706057514883973628063679008339564003146792308528999373859659904248013199545071675224838279217560145052806644839730696009000466556539496526775289406697878983993645574883560647400019731819997683896411961942535322646328924701058069774577126386822782254219675745902566766366946556163318680797896058885412584211741703395949561848339182290224752566989174515576941430483684797946745916248372339478747064402634278810628662008951030587575356191673017546385967745759412710267775563365430671156542007505244081046434569458883154272572394836364137972515634331360278577757389039757662131635524256044083980617184143910808724604960841185481591861626309894355318104086388985580220792325285718994548244907287097813891896653168450211598617387183145807303193673306201912083021146510048929387335590814998577610258834175822793294243046044634666969691204327087152803511466439276533837427793257450234859832791346810467673557211790263431767664021904189140704291015755983322300581527634010142381161525571916925807649365171193967551130999035343618998470205155598388675987108420356429832757216915047720678516948464598976234703266191601696804389253822285259389114094442010170966000090366219658036339399862280347963193076390908741896889597425384546718270860982863160239912529368966956111133506179851696390584780437526401518727905439910529349244084478120519257265310984248124335935919794080952551411837898464726109335866852696776206071674253628201952109798509284743919372144559983483980800133360572461758237504166897390875709432068637189587999363700818771980317279076665720422898669669878222855204406701875827787972447241379406577080886800638337395606020553313252913264318463795410286365677147870450846630815998887804265330549151827671568025491554578545810890001531383644583066667285991776510389867122366965578467081682067608660231691610891533077434316956083008707910697910791525751159479321946052102232134712845233331342550630962269823128641413440321629465112211517706231793926636018926968512012558732009177908238086344036121536363143075494704020856921642441268174832711088953474293396687802408429780597751864902286608871590266635667912676573411486391476930751631161098021204723302263440101504450025147962722009329105269950790559429558310559964045897373542037683280460524330470898082825181688006134737536199697152440041400497328844077420364184716369129014289635655322198449373774736852746190437535721632448256622645680855716394475957309138851643651690256259254701040771931970445126754701548774368133136679031422491117896261557694037999605240745637223893436895048558520023367246980924254598980652313329315318012873580550870995713491903857023733267137354791187189377754829894927135809289132029404877343157718232692386241449185291358112225114927039009562297980153592763400593034145848757347740276364302271281519831386079067394032241125215060125743135519035054042699430890821158450263544480733199943893773384161874732976899698642716142232718130478712085119394800764306702701900106945049138694278202826245187928301409637080905052412549022192971930563276459330203678592915669077080370829576784067441149326050491176139452039205078123913391943896506724777257971840465573781572489521632617789571748147200639947437768407263926486718618250062776396804323485080727981748946376621431415788789467561156045963646398240626978732230171222158477023654299376954881977744697620231472041850401478158974345298131064847855096643530587101180145634954026970836356418242376188615373678024849298544986447079033577216296515618266991521504777701194652826755628811185365009379787100667002778366423017604496781966355793786320255622420687839604481402270673888579745403095885638131732132182698254580831761322604774986115816617123098615577563165106149012243964574681280511976483257795572726797206309003569479235426932938110857994749800053839489738278848776908599128842727423488962666457829225925790752531227624134975027019542285821696609581984098387954086843930844832308856867951315503641153163480528034200124678802933452347255460145842677565141094919886785303092448600090714964325282715415726907153781351142861767367378205058647799624911250205783892023179866512377034800956954804515887225095548815348658831372124545152519027181431925210641045308178720095682527819193403279407159618677333668010888499497131039030466872794160024826082845822767594948030995702714185783617656756748525753603559544230544840585352341797960114241230856127389042535599733767708269778530647501735640053484616623101402102108973458630610026484616028424992783148726567335781610758593575523882646151710053594114363338762593004303258468920458517558185961244386138869599907761169565896007936028579617470660192506881531347839455391729462720478255680104835267132654336319603301519990438411311972517132316143644427640597778020321306162825107664726354434871436923592234503140166878669563483816308188617360843087870224027514372355753854645461542072030947027018939523783750288857107669725770214934043862597559021864461332954520254843716795551003904326198725290326772007797920793609384913939973752564052579048496152302164332015531970790237938262449588356151009921155939232361068209863583051423160550009531304351147322683696621879154777676304395962114973019480396310040935654408717853630982050869831272608915387940825651310601624669430461634518163597694698596403652776565255752394966470418992604916200674571504627613712285026467724977628674995554147005309808014883476955496310070403393323469548508229701193962414916126781011389562252341622078649755851925529063241140758947053344811943794003616734032653069257202663132057089481484331142840972999226169572444126581156845900078354960383682277401148507913846899934880043590144487768981938848443708687600145178561732480195985993494538266206746166658533274287368299955826796202568215979535375041282066809454353974236255443514247729880820423114751371908419255358958945818077191342940051577718265368293380030510172216045484066624970786816756527984141596698159330699368912903736592271763775719516600910920334385216985050595557197229100578279624133553522365760934852542430054732433334405775884770814660145202456546505498852261619865028613059216411299293344361781763257002770034059611621612235683250871606688863037207266447658864853385264034235781224165376863082467941733759294604341952940002774029114755224098704823219922762619905393836626062019191572913801629395817344800677804219833665950111422784049641166740292323975300079071154779048263360551864755450549616855649196766881526755547577764776626663834417433366031186900280886284547566473442731292133290276524054269007977658471420038270900764598727120359392849566058189618558443855252735945623999417466763169450281288516479996655118876526606676877218121598869912222454888591098692642106353792671740609590617763897064638705603518772866105998069657645492663753286662801012103308111995942920542890268965877067860696117167086136615033944961910018200199938434374647827379810654899596957463353903361338419856860506149105977485280664689519671287792882590916193833282999350569826689755015313467788653609243543752637848834250984855877662497227956954926990031517234111930580299980093853154682857959115968169851719652200284772861479089706255859535073941797246641915233852985718663386298823212824234980635849181477241810887489763521390832753839390538212701289969240670871191564715546303414697662509128511000563591563970561853443359321843481398201212274356243570137930507260241028049921490591983961991755463486627688553710710258155767780580885465700053151871875629834610136936425084364023694968501225106804016616107699581417830016534565843584746006777349675311940812173956402238908472839311760726068245519924663089735706900367597074850190133242718949894019403388139652108409684943722400099833311143384728884056216548153725460602404936344700379084122114657212373449182602677095657161189225673654505922328329914362993248792128642508626457868963784495805207853602542341962822677661869960466707302014275482653670837217664553136747626028554641944791272775204405901047645715816722177422615241331366595237099866698828132717620924938602735442311298692601260045385121210482217385430998355244201185440382873086389030009672505146608097509395368725450983790327429775249650942656799093726241182154214600167649231651021284607736293276301922107673766753754719638890457733710877811243697127309942949536457596629964721470100683175083868245239327909451283421111790850499990770152566094163586446517028345950167595723005774936843075661178449147422706903658463599021880608389444595384364753764339330886709274870462947155415368549536659151307867737496168694502800981270476635916447817739166897714052592137643538358337350813351367642146195216134307188983228062761910149657461610890231948973817053172262831197745725797750159714965126218232220650111686105456302994474116366700641482626642901165912362077019434086998373288331784671567567008962545972675327172045237347880143934491590313519195607662558376846219119448174686779515399682151782221367404442014010332757748727133201862278009191525109217737376549403398532600573369500268743619868498493994618770291181792256639357986388276589839465933939953525426469061565548349572191133827812723781293403033877421462624369058515408384132631451399289209954658951210701475617651894018581112694608126607221155405349012300435756392317022613851285473309848258333608782457102931477156018237462382706218319601969233835187387124589260950065513225796700670485075644675669483327179045840494372725883674182013994178389315176011433813726528053645309168671001712768573123167871348123850916235331944014597384850116915313998210237436590485640706540086940741123123836259234789793120919940091203594712977189926763002527109053381121924218753867022846311895148020486980359909735447848368789610042640454444644559390889764121978479868106245213780348951591365746935659085126053419291802713271782935967555353398875682306812719421242709287160581237800336290465002166006906847746217294288144304651137318636833619431663798478170878648547969949668289166140286172035707214912467729102951772388134089486729535830482787598054936307206294906629422210367215182387303853943153290668041598762028645467234176193589035053639598952880044689513315540189436389907496762394596434260261646328538271759625459770212631601683727328979584019699828221607320454326018020192644045180289506537332069397948985295599532289018454179957487509088640530369652679494324387590059806230453959431288324449214419161552624731826313052527429490000318520776629526429741315761291890286160385895548603615174919802960750325198787578979847834093605838936355860257476048633173305839552139697593059969845134869320003343892747225506187532089882931909201887475749733063240448782288463414202497883228826338431806699089124617283894162469467574068894707695303718644035211094040815590134336052869440146388352917813041091000057082076434211054565557858678906242898570061242462650221298446288192539257396383341543673417103515161677118770632000776838350876080858633061577809854326491451496875596128084976724794067512587749757906468793316437740262468989887578482608543013327979735406293985257821374036489200793064833952696669373099660216539178761157093010911734148523150497580746051474175768951791627794330419511092151989089765104823461648304400664687579706568332232236738351736628722228879712454782084941533657491596372929018077904736741082666406274896469719677207361943308388581280388611936673786696644669917693348871581428324199479009165307785293692872201348044412244897696268696058973136637706724212608920984744348212347338479698581018877571281533828279731207824161506998836683742384087538828485868203842284990440149119504448849002800893662829274883648407505213938487478182823180428765975331640162669290449323303680381045723510989498198708345326811856848011792367244088013718335013485195635450050790295268848771805725056822139830761561200444488907499582076596131529785035259150615145606266376185939994069407754710125598179971352831185773596637274822925373372413379789998437365442018293841490507153810561775206925515203643808145389745730961023270882925425738427318344050301442994086128952177524142512852001810118187631418718645980520004114843648402467739850736587623575511652897788236498522522819552738757400679862189822324539724195421010686587475585790482092771002341420440892941636044922235258101608539840587415196247455762422483863102182449310521084755511421019085767528758027897700542919667870454102495012022216111236612221317660301669581940246664550872256657369831148410692485133633851487175480169339088697992278308493251987822423510264299628281537734688921945087970043121658170611983483288876138864586441516827913562854284825367409930367636060379597402082647346474583610002252798641112401918125975704469857472134891573493199550748128124487545091516602282419636832408586013795663937724982072357461010558106504224071995196820529524964173498919962549392011356896993617447624835622499697815787265038660105084533454719521654410447498014953960070835230138991835516537478473159513591094697995218411123110726863341998125283039031693609567622394703404237390207333323907113437951291641943349044613747365312743005436953148766519271746071983438595076591325763701544792448745435172102537346366706064875990538085699992290811272197080428257683488684314581248914817388698223811872035331250392235329079016032961926224734338767385936554459840211920834155643447638170111089957837515514097777197590788842462432765639334890288755281548043643691430680037609343254801419038158490667650107898683366761582535637904757543107263442482679518664113972451556653020003998017885562109703756593290537048430922186545234899175552823675192433727162997321676165930482769165717564819313683469581951193195017867387502803937468038610180531431709004094150602158316140554366586201259551271528256007047461222882670591364777699031875687666357734781454740126493630395211417978760166021653378569919398839206891454525421010142052242424673466003226037181895294824315419510383026569990935389479486870279385997127355292062847972154209576063333620758067821529542942561599886519941673399220849172365346112725371953520922568812517525649400553029876108791178604834355801019777215737695426402929130053892045077060779930364141784663403237905896167126565031358443855390637361539610109989319543162552980688454300363138892562904659685669482430962244287935317930316637814080406637778732166273016908804303279523404979730875401205360627411355524710475221900378922803704430775475000198015475044922389363676501745662210082000316500847598349248585308610418269375604479383148127062977380138698210448059201460202458378422683106072381109489544236714493385301226145692454810928866067046459532029358876401396944750603140957625269191084576799044622440383113815394409008274443468561636815729086277630299084676492526132919529204875008687532560421625210438556774931900330223113721344982997503394412384370362628615551889456488119838741989417167268344762362933670789576491544708038838828067456447980035803181477425967118005168749894945909931054745636711804272309049785583560646435985782370896610900147156517496718351805620957740215009979438720577149713743379116562219652549415035211403926800503676638310982135531700560136102623853775922228707573495523045632694763144451295768204418382955719647843363108775614069929697964672719880888328583329425581802187751521854249700121493919331986927469612002426892208713587156521730383240033716562466929611535441755534066819201287932860791505480872726204745416296129424471802344573052483542066769538499497776020097300748413958107061901881142198988126178304465109362280912361915027281005841781482742058060770365416926745359954897839538134773664109917015151720072786640759913326626216056196060043213110106018346666488066797822946809305552350040663268979378264792161985088015747063396041514835039234159859387462996821126590029224423644601705002543042713196968143090698976901565342369133309659303076418441443370113249971341848624793117009836999283808985507967964679434384125578561688005718759847660236001663471419383263827022927572117363659231949326111135957261156191297782046108059903078813707533083238240646713105339844683323893526452713310779333627467527853337706193994373661318925932243146250431891711164093437540344907363639465142554889536442173329213343469453608957879223994505369565481599616139883661509161421019981424147433349725524265033405990868527374182177700331526111945525888272426858924633643531618335854220288467797590527421142812411511682000839935015531802842568593604040829222550300290034929264176020988474737948482712332793931304280275454131794091990373585872017930198232353742664646666493019712924768215603610700866657534816249168675809271738066951176543992608231598795670881123851635832116639541333466452879773095095012793520609484637023373564433031869049734464085017525839942986018193078051713690476904960300619600350180186850841931199396977369267158389978298854214244478280011245262660065497339616695031197300247653168265575923212978119666611672321720390671615363408017705411586760492031608880068829005809388263755363768624327768806548544362278015944526495729810270348109427585025776593426516706000277180542547567502537725540784550277532899630006852322305505894947327517651845840610611505775602964121768756362453624947939142281808507416830308130023901237623114510695730823412966722977596650135370187953043543384840732365188406337256319295988724517663001018944019458011102734241960646195911197975522157673685519079902302002541111723681093703820058189774401416482325963449755965307716629217343087226440888402267668378397144176784419615944985889765645394203289342281763793914208620189396444274156178437874291418216755513456341823133134759809672188046590539602879970599771155588009182820723626624869047004422697986421032528533556525308726168345723090706821879450542409958380375959428744495518270184378586242629695977345392329707134277627968575826986702927032473642576324747566804922044338327121410533916596808103137268154994352365170663825355976623175986479045979010867787546501747537125795647899266964470390204526414047583374833899086966772977195164605065597713051223656209435568346308168733191505824406592675756592399581019093787103053675825575596681717755623589644501418417649111384524555276729424818551285090227847750864289295134601535819141727980205722485074422335817798480882843956819798802578275661708611216325192383277641782909394215647021608318741042481436565874348080683592266096688437403061275287844543043305508992436791473430950960391218486794573875093842498171462233357395093798950876415994592209540919949968555671046682396080393128237588032013411944982892547995204005096435266125752286216832170509351145016778758430207494091911343007213197369787877038814783481381370564898445225862076219710830496471298086685406216459140929462515921030191067358269089371696583627905312139945240391247787166024075172034366161001560754481030575452287396816803995933495679598391617165325338316780030700420569158187825692895379027545502062279351989453670191094297184887911866291517407857147693273796180860794632422072739832808647872980843477143060714925574278546442433617230658310991636099836077324230640314540996158329698360543139297548763729274426302138879430431930342140096432932521512464807364525787694596902233827691659784776418378308509522879030123802637303285616486713614476720053638695015063108607396724199697454845856600446812987431480569039975377468133197475158442292566001262327385804640169641114017034473880902434404120278980043768683424613409296629404386365217594904469424266945087690429061156559099974456722360773466143346025291275183869695115009549747122273587736006165869783151496392982697151727249941620021389500440796868590732281764906675394346746380325211045196975883231591249988940213845528588406707721445685938582672104994994827892609241761989848668327411686366760046734538697141216218825371664785669176849193458245429344815758837481153877712606746606927763754058657646696711467822055413387074648160641113560545105000668413385520945069126570142350099092452119820146228193629847194862536674004492970943597480467694351255318257783137749815992305482761732895625007553500345282283486101911330299075238484674085266450832880621156317520443565635617331475692965553780619204953480846915108710482415017185366783653356360905555530449788073154393022432495466815126304636619946620264841167816980035810734758646256936202418313762974101775363346348682290860634732440585331111222622766270952812594130725956942305766921902131506896216098113123452720909462139971665536795361266838422940133512843195402704099849138023582956051931516452757810433918068071174108687890415304040018856976827639410744735807683410441300967790260175050928401501742023851444697411589532496103590600852223458434742682328688095337039338110314719498030674605383466581359707626610856849707409465319906554586700338234950021991897998065307167370513711493267956764420914551127546786228712361320027954598392381181581755436731367169637554836487719651100144212873851096322733410262196205625155104035643052373915057819612381234179756503660217001419670595681641726479620921403610917894498055911278311234910361272084067950472613523708957691612154257790320044854864212839397773083845648799935171348363700035112939457556813366131571155513629232677006116418864404169938667686846047367806508507244396093491306731812877606549151688447288259958278618263582898702794063825803995937144147782866253555735583317058256785531749064006325839241385805893432189753127461455637225863044628900371145859324390579459217769946891673700620883508426126424442532994204546612161709933045168771514860879885007347438069962079908411086360799985447742937867478086892274139629293574375449090454591914225856539646400791919827422905020657558036439547892487068692870270044875161894274577140471929741041414806511289174981433191205169742814860154997869703414101335239477399822697304109765773964133503617359458639839841287773923775196557785918210944635629732868681238614023462082523227812513559070515672829386182054146583375256321631203124464938406036254038591284950277133955932958235892282090468622649577608859708450479526090126912150754487695834192947251894624341705307330381336923482365923660037489683098132803063615061264553762083228117555762906110635188760581024651875201809295905014885919071089636416981506312591407056147087172350164235319871560699737587136222554737457744534435897176008995531297708030272854427631789266543472152666659926455074627966737915462993691898169799100951282652153197554843861407773458852555357356672203011918314309518659393343709582754610219786046453860932498905324358674960408024650698502862203668645046802859314133204756750494872410706417963851080146337696988848974078262543389032416689056280969566431442635398654878748004309427048478480615032701467159294666301621764009024490478550036885440011914952512938273495837268328090091540285288565595437534787750790870920798287773869916434301582311389119276931192618128710650311476422139312843135982725239127129099305658258482498858696507001920687240628207084193415398830491806018000787960251182698367574156374921741329163260493846661898484414095769782186853300148776127823636299655599429932782299793046304726202071718438787216262350911121495919913048691406932938534244146774934116845360523684258692491502102685380591904371165913218397159130805854514951085489768697782298001842069214799500135142839990920986041369258576307434678607917404957499972984699765660857866959966316843080503241885292603590773407212040723383401644727056921340918776788736304635249230790731977612335834391054569466680444613501287114344876823781283892923821370940697712435011706379817121631399775022791953077011269588986883359741014842170826761406659824813198168485086336876048240652219641293546506807328781887145705820699758471728630057293735884129526718718813773376490679276314587646855101917250882399549987611519085830612701275947883909127350186600478861768680189405414773747653442396925019506232742652162189201602091564181307129180170864861898752124685652632789777123659081067274954658441624319164472077697274195712463182613479276756811761496580331511679359446008963700755376301066271436668002246375469102468599619689437886073289712687849566260395138334883655605164204953821194210165746399354018277008842869029487297200385311686302491780907662965391263831578450178355649372821437365131886029956857252583580506669555814420057972240842218593447935495040530145960298494593380796540111547608684517225939892783474419182715008774642092017889356697959089208223801584491899977406133667946831801797483111836257654773196566024445169451364461806386175502367265400878239515025087604530750340471859294374576191181652350022050548949855868243974118070694322155180503213231898632921912326291991939805760416559159352924896049336373410809844671478671458844999503003741361073127785849187437197963758587866985908999435150129519788637980610202318647436628463483088052074862273528696424733292375238157281852867885763710374854723821505308468923477790517251529073469177763647333251138637021259176041970372101472723232165537260118000521432333855562243773311004426735787917021547975431489018828500685350442206199402747127321894459361258564093750678492218929859873435978361115823804507822297691421842574148386132240621720749154592547934928814615705945809644193962694549237729038390761475402857815146833952541965763882865013634086693317840052178072581266446006390221166351299883013598512250952509260616602471184582487881761191795743791081002091709027390451952456212400918721847854833441343419779962088721383481243737234098778472785127557754626012506464768384295759102550263094929851297506351659118690305878011455020146037422882422158334207793018367925835717262734659102759468182404421120505679340061357206917378168216374543126817253166822254079041685368973182499366808974431538046771944685604402691754902854334815214551833082026185629622508992652938607088909115080639519444282229562005020363884110439744362728184358886573692156115059672994968067123559009007303467306474901107335803940024087150509647635606843372325566107186255219284552584954618023976334594763059414199263967574884543069562168848113599992057760045281185060193475195393669418487230156194584764348756778562405717817644826110831224295724603618488717953669675150569732152383001263625116446488057672015799714087928511086308054767847630217670237343473003280945019262576535128267061930818228623880522294896145540261369824336007529389910321056414966273451085725191559928510377694765379021757478256666643850549205234931943341807198596436802499188742620761986401383305358136575003486701842529853528522186815850082379763411736557897340641014014232183337955667799137782045442865393508767353107855843949257613872218476651570035778789082637181819067840702949530963058510245278489164807906963484098314438682515793192756673782335402531933617346974824719523120623089185647473799011908346294942393245362091683797153300774461832052188764987387558062031611413949592003562733932531594956108214043343110137279078018793296907231492384977030573664728938812171113930167931048835891634653940933756229613197215569875718236232372647306596530312895468919501201792792116176544810492235523540712710865608063696287763918728457341742607652279714331952653462434329447656185781790989970385099762192445928632827210462598584445056358878652658370105188614081239215026759471351452375712566004900654646623039620045380982859619850244111345214395785931866875525847916974624451200651170480994307394029715262295870391317089061118767514481694101353142893725761451484415526579210926975074365887132789916508755356691941983215689637564506249304444588734955698654622846472247889392049148511800743287147277256201397415688465778044459859106264926355769076075011154684342180154909833408785833031850565760251546637914216647814470797309669226779641101567221855438910950211644163832126242746571436492685609647650397113463043730542856032217529932625923958895965094832781023727570309273123782440116637817368925974312074623141228163240267550357792116133323427954363530742834777861492996620938066204834879068189906335751975121470259542871613000595487790495719429945037829953677924923874000574330377057853970934207709461257990877852960404798415578237143495514356254429760525030516556420381253729515147752233000350273151830583684638616014755301452499716497500851250497197717195596640006246269220592339713211471289936050257148390384176246197688207177844077490299168404787331895266174260049527856223253555737163913938524763129592340948916106804841760024921072316839388963028576907694726568298823359806693130845386573792774881285463241596560834875014477184547273858423546473986872914684099963555779928581669496526339613171907125248739209654439644473154293429412638779935620578575973178463200332104041793881046041778839740268157983828785192559438752700707456315160213250674336352495605587016350030228784771883664056589538871913211520994279829897636657828500076808918540679775716405084553775803584617991971719819483040635127456861273102932481491567583511122816686836419142253752910868604548479847849662320510122698285721564874028487124747873714077662794237584367507854598779292719908579457195889436041292670894757947260111195053172608111538429044439399333037566699346906520255691997577509377016220074776200274594253033599989366272720945495468917279207259964702407814327383771194671182238719964235840122243958866156034363910532550663379632995880623357022887841984119921810193885642360798016660225903633141951530501482595142419286813193732262841385178768308348082659114897211827004932494480926236779596879907305276360234454620751759561728920656538245284004095487331513652062047215223443295311731358395588871644733465590137332399956382916702829955083277733221868104683008866059725660596613732341090568761768671429700552949985739431213252532277977115159468364622442686857269187845314767456467197330526507106080213789421458595200367801196242284595516692280739936184760892475210402005420295967897693030103042185470911401691229255782393957241088310005015939701379542196714862994461135176577461305650856260535890175321841696103055412085038245906788647857303339496641564150702131937403619416365510093955454244530953957873487042504983249094899068218751452682081668401282115493053339934551351126683989375998562402135171982573060897336134703351900654362750023647944028684426450849002700673777335455339766377046458304754059150511274201394714932341696761004380929166967954635260110916529896697147004450000824064577547936898741565261328030154761981267980126077935724352211618669382494265312442280401434856646215948981197202297662312931576581197515566215007992521709823779033711101330313699376423052723058359471409597112154236774273359551053081490145076186679445187708658865796936456057288326948510503143286097473851109039027280691435032373461844405337151514741086558306310294611285531988525968629233790546233162073149586430780159922316551105251370593685723478763753541188354439632900726088692461322938431753857466874411104602874396285871864727639821374526514205623581583579169902121774280374355968806381250619670086700028834287902608417701538484298960868329289356849875685579844856988510079796836699821052662349387640729294010563150555026704755190302688950534351913026448852743330377141154115684628610697021129195683730308046103578589082290889629889301383094778002571369733627575348763223153130294188308280896235789309348812697373661541645531270132226601187363367448944553960101468040191660040098196433379259253080100283935603270870601996843861320890490558382370537595653341763271991614606118931885108396994686510791541417481343142648646869164830727159039730238780531216767625861652480813989146317893561478344505718214601461279369732793803792161381360127981133909204870911421228766054943602813968149106493502613105457563936526248115087280315732551010564383648270241482627539721936704256004256856903281199594893404845571070198339352342363177859094867843683896755549216575603424026583962364910342216937564454405351776744440240439478434353758518015206236318174479459162692557070999984678668126694909007128792272537341552345727829604169220174112844444787499435089890707765805476009825743328925106716238605376044897800647043632534984822055080800804934639018725802588412638669451974846334238710187342206339510509135297228157307198957247262526120148919871486762138674306503697706690237328667634949914544476037142901464914735428270452477876335779901187616899963779883618792446168611360111712873488329821286346880543869644739205944907833520596136080496996870395233153991038398598804615406506104237756802566910218260245883722428453308298544974819529092790927655883769682999373147322284530636023271630796185062876379972568189744353447858392482941933750572193335628036282969996127485578028797644099681913414640719373482975370555361279517198427390125528482814133369076704761163373600822168459944824276937697361272698158371540835523233875141661652155787183524144275279335240585006243677437348325965174267633053919774900576838437318206936977393448006970476354696207156983257052168572679941424959789438269582178113808330263907214305238038874299632232264566244489029329803583856745233765144146798001590777144426101065205471510216912167236343665069293379946297156464041206561986968909752402107927419326188904729774466930475875797756820455874323154223822261628625462039954281393430573773926479662502052224811562812815058959758390726317446619305176013955403217464240121952815233356210786254999943025099754786580365858396548028510563367531520580880514714715500589004673483079299854353402967133438536237172745909404943773819329655286513217005754510682707272419430259109091526362631778287408200906637740672240666163655196143409639852412943271636677717381219636573847467217646745784943731940661834771863764305981942681362023652425374367116595945997181242057472145743452390815189979544729597597736615422144874687053853330946785323793746763166245227848107634342892337365478334523321790769572567036968996334315637356126398277894652812850791051125844286992087749451577671301899900325890298061604638848995107424591517186372596088004956831215472787110217352299691436660847187631048957813396774640501028906131459714896765020092659899489166779561031170794452240634732526088163628612744903309367207219688599511358422874727912514272820029803003290299886440703309329114148957768479069010203612627854112954014608553567096685705985029119473743070994760697581968787869642110396323435490699314595847345928462668173718808770981234655764748356638939169790399771638361888817183604987561583461444641896374839419466626561579167976450729538426788723414955412997626562701226684065631258336044893910520904190817611149130811503503127438583935438714998280415525179224096733236254002895460717678356750096261263652500476230287442917352252430226895156837794398018050820839857193119771119752613523950352212097901041791183410972868903568108285626403551513299451637568816317041676263122279310764676213369378553795220610502866379965287463114341522813493104929920431278189003812567283358421812928748919744027055056128187932485156979037150792209484018260815341385877885173027259348392307521443642863499625896562568272752991487151699340301727036471527191406356331919613243668936138758132325147986013859870564143115613708804253465861707945533210266179863293587191674694649656908300168752277601296442918087913205582803613966061956480288520654397499495807433966268467557632535124870902468890695831866223805514304303164234385805594741011955780997683818321679995424793409030131588358741360117945776808190345226018722707919263077925066796567021315650833368880011183516576069233861161172333227603118532771668370191064434639569836086807081186727471131503496056926042799620399985848717612654617554353280555612857786118930714916319206220351968022619087351015850139564875880930340645952719126523971503052110971677983827392299106728919779656801138112060270071130984690269022108631521479630639700456797516791366188853382523599040360901130679031508106547342677434447331271424964648079590834948831210482049326097094423841825633880879236276165930121749960848833106556418036489406239572718896159826617351373901542679287407296635572990570631919577797968728110397692149750138398594279396898635335527354481989549895036189667816515761261427853569661417868021396076700409380627462766285850714736093113600424267301089507538220641894630001405412485192450888090519189244672499544059535674379219375619381812772900591641823286431198691375777805141451658230073795771317933515899101614317428049445070659636483659283161386845239023149309161074069198579324449252009032320689187703962491097999479668637810332527607223149704755904059517866533189408183559264446510643519994290478843318150824236064916703568566618142257861231642089794959282359019595961868603135009076776688217679718062775804504381152171613250335544952476715459639538930816560833370704076105491882267655366146754145719730927872920204279608307373782642383297571711499177414593578384053840218491668579163964131327571761544057637617116836096935675685998425404461452677170844727304716256102351688871834339928993780590469783133822027724257950128423933208234037104076902793588691783251611657641486091726721594619583301696619931902463364912024477782465353719003299391397747158227109568548157573412433183816507655037438185792042343325733454944942465388235461000060664502753024393273673240437474739086484161491506199570266754356488696551344863426435705400132711690450656588913986716677357329024220095737918245561701022858778884161784850561490934322239471619576204502848924221861796208430026090749096500810784821671991234621444414121414298912697593210457109633230689189691455444806931652590033574505083423357988699026474532710149540424081171705481459228959242789161828120042048957834257210530003241529658307769007841811974618895935518088822609440591989408133407287579376211828010777857610810262973172817919255487700626092778948268912801944783583263727944734300416734241910526982829071997298752971676628613163661625338312067203991920765382798845681569965573198737035782535401355906667199313265010761260542429552941813626689063180936186473223173029384021888046448039517503550149953966580832049965174665524080817594655437406361473152587195140501226325540421230776311564714987063748525962670230805224948324429630261136224833077556873793799360495073097085591061950313556397546536472082259570736496875879273819831422000096299040229475792190139350871233264130757908175745627600780545691909643717379467482452554791572933782634518741237572339897718656672675885477999482289826877383099678863900241723293995898751948621514811373386596296887150924002115790616949689770091489139526608024981918616351403461565418683388421175621038026285232952107693803872866188016186991185931444251674420796393044365244858195879001860429607525723910348740231098219569998881401975797178888254209238478241881662439041202311552966746275165602249930118567706111998236348770050784663443225561731244695167567893387540029120676345235733323679531221254859249091207387265819559596992562384510354806164098923994608217933985738940396725137469754556716278089063603311662581505306392195257713415474598563628301036916412615637708764210435664834900674216209090169349823039074789687262072800462295421983230433426191520614602846017585154757108998365613043291288417691820246299832499582639693493711395331706211271185426309179924395866399915009287386098581030092981091889574873138780202697828779021717285575931800364832663576496087610379773493824195497247052282753042409656274692987353454804817022742157512613120177767438128423216875994499340690445971000866266671111010941026012812032353292595600663042755909330359189536597202267323924293085816441535946208622284034557688075324560509681934319878601731073590251532127422275217243037835934547440572542906693816121052912207404189294780347614052312122099797363705256756668039125389168186230939302055516582295950478002123583622809855251333488950585982244132700868978350169464968282067590278365168150703173313211467749613370212539252152395709612702924427103450953629061663272278174718738079180969405020868916973828191485267774479358109442636785091288115442601501049627930353923041765020570276490348675401590130028149236681355768609390484148883211895057767625603219219312282723649672375206877986400272862257917253265989946052115532593178799174620404339135438168420130691915383857064735257701826285076605271867333710052529341190305588984621409935149852700143945142997236271885264082579182069256041104883541053160082672234024814180165288669273288597895204808555578657252229039983098004370504523674131638462632355230246341727763228653510722172010989378661381749785391607469110158609852539542145343417615182234780835977081050972999238914218286344209582909807324259240645316809132336958448793830824967994071326242423925414993532301007519930212354248365271155966673833974114767392512568843177362158826499327828604078186818534853763586523687948934407099741762515123272479736984268569687972397296953857511323087904550282105669552474827920737307014073830681334486997287938392127687677157898130854298606484087774571259555363944539948287895618190955569158050921343217497736709541506606025369312902350440030054465996787036076023692703090000202873187104811129266408962038335147096014266530615158589886445797819143099249039369863823565364448634480868752997207019700631312509897169982989579346757321940676788674593438523268106253370243293436724246923111003095736272698201175525349742048224289172864538928570165201360565858485831857881956363980728838219163704271338576573884787579265108668494306247338445898102997764915490735006461427442972823710667516769950557140735168606850488559103478671965571578112384925604403681121606211529347163338566252727206658182226764936736750320182839100975984966584515090292359828527442840422845847913780884545049598620891549940901866315295189702916032909265395211188443915660788587033290281659758078586809567563153668896889681740686282274183069750137012656742489619347630495340360839813102494844810466918317252463054398060541587159127163369717402897525230368016341346193070431639351911444373911402281032020825708156321414051550721473912332881461528527071259701704972553493938206239172861729598528803066047590057865577262970778063677555007941841521882587937431698171175749830764988159701785238591887988894682315635476432171064090393782554396307068441276744237448149111429545140339222426472257743416422200039847681912183359831335813209728643144195715620380279512961162903988082044060481294658957042347258886424038654894595747859771173234731073671866296000528740125558064656517645727760643867351227780245642430952288311339297851107744446734482773038670271367590732686718553333686783006031506640642702828754863796656253789414156607987363279074233177542883678414722178959911954309689453661816567729786772130827736147948238769937659173166033853163988928971197888109057499081047646116637579812397870570230459055949708493297692062565290635176293739659458733335494506615864391508585535250570523554706510908265924505194023873764690105579758175498904947230998229539864024239451711804737295067229407641371717640529998972226068636290222287270574287076484052766381178819012389008966076697503540352565308429905168348465795175147826802816169036825239279753712411996470620490817631793896451028462722531165492243121915144435083838451603107682689801577676316596973284665295897091083416317338449300196088194675498875593124888377850112387987496797821503993050496756989004839652039859486358293785614522144406014518542513041373800721922351817940932292066782000787525093266501371836965841521314682730724044042493047275119878845696776068823983034367896917927045388336553079037809213141359867482394687054665299244196591576218821208619637360421969966858511374383347706897836124202498096247140213671433520800549835836127540424105251961055923201757748872408821055386419671894180447175137814701818843658090910563609955866041644832096776526864340209973796813051008453110443776567307181142274114212510078060366049513175248530498523456917178522555129919591790670867675150488152203705710918897972136037377202556547729770137705525029738681304923302559814072459277313149432401297399084166151558492327566794545327825820966489082774299373444750689662582326760082653558654382554027985445842259052637955845884581346253065878953017404980206346598284496418226649597849793791695261540880139016854503919743670932037742272131252743780678819207791666718033115253720033361559082636984278149642862898656744845243088382252528727994900240763533437304367544054333037201881505892647981429869755777334387473411231472599329681869309905703079086636566710631691201690192849554409824567582244565461172564214322894066988386296650552609921289276000818418176486737675985528202456221163331448788633204862900205843426725844886835526167475651446262007013766608766183483702358764242650658701428369367876864513539924486660260181876988637625573466646680815127241777972406070163604702859271681363715364285339101900788261831842538100705836473744229033726977616367863216340062238851839285940062055009188439872392745776919969123443969987365919300115817931258073886918578559203257846150907813960245530060682256179104389117307403266129236155063180053384099034738714394846633412093930508747747418781729190830933674870850993686549622891319988519626888657912971064597852874217840667002888326558163126212372062321016300760772996964771584380884036137257417398982868386490140520136350776560056812497718373852659964636321695852352201538780697675403861166099216687469678712009217327276282353795196816836308354217220077727965314135780268040465050009335661188964050501277540386728045733511394841841694016624427537402659451901181099609293936133393264610406999385107499415115913356520121232076745768560697077756721840144365613137858393811438852823883704303722396537347656455873913697339850881995818431569352219360084058268327997620088023784504140503537300239959472700778233552312762395692078840168565486771022017973951392260386263171208267665605105051844796155168649846910922432522968820332837817144822867736761897680678760687884592584617253619101474905249916148741172816419923952138319386371637923757133582294651746471686317731531397551769873057214449643098797605433774749542589884833695952382969051819161363257612952233133196961359511217504829656063592049755201866832776413099885440585202767385904242582591815610343459908132563200229470626787840746289490334220790916773188492022920818037497276704050827388240857774012627074590365511423877818697671298350309231675193761671973961947018666933086552771883547987265621461194083472827860989293248624749808919475471647774761767280274225392480678381555031732765792366529529825496298488991239550079723407403003446645151059545429968922496259023202152176302495036112315741305598045975297442019112855716711976652062848365955005246192789989624578715098179164218745446070376402077649464821128578963660178578879862748455719969852300764059253980779929604074594075126797667663437147766140500117734031491462147518357857589689370192801147890675981109013638072074468290855049472567839844371086449374199203268376667682176685793872645706534857921115035748451255027865326547323652540506224333331491724414486333428322361289194976469397673949426856538840273513141739308912448995479553913370736029297867003837860016288881298402220295370285623790134117860791956479090661088111360432851039829092419918226591475733915024710379871716809156329496486112673431886913365067780087912212972184218634952507937647404513163894364546636138543690372897265416839661955459303536430882085851986224363778988773635823927305970473543137740942942030075894560513571034074388379737815558313289943199595892596643941121996947300668652235422578769913050543683583413385018367619192808815939410406682313546445523043322245597495998670621410986108535043567702968684352177177898659701351098205644623829838780722944902531924571635402093505725059105969387394731719514444149576678277007472241499641308324598251639338049968873194466181018472174696307872347007218809230531181899195081625224862886181355573401113054231959657329385691645960654693248131696344722382771095631400839257759238004745294644882393951956859364910921777046333194122557052589859693626405293791245925390255519222316040224453947940714835846950761639743340745890185179725641432598854643225489461803829022270295223514072154077550625768977391789933360224349509229367399291320466236769660147485220564945698195156851852708089218971495868329091407824566580104731307862564756719216693316948600404662735797536582661509189855588240894705122923696760518345841224506898471301152981067120667668940122330861504071980139237364726058890638474262946845129455544896779641030533692798139278496354712447222901215388647270933296957898988865242951488306936118086064434734110539409048384334122656915409979478599900124449935356702171006823546599721789200629808193862996914698310844667097269743493953675412749863606651728899349164766987871228123061425493459898247466409856861668047806276403008258207551411209757730033440985744208344891067135873023431347926756643838203148374307541749959867619281038687488736540468692216336264713594855866231012731387034639820916687091379057677226279876875449426541160573262073088402882393261443646114415479193391393524530261171319851188343696834364673615371730382235978694548291347723442423649428412667659771134558166197056001311995834581339755225441120224070110969907705180403652102473189243806832749455389849061815987357476492754016819409354423786739513950707774014582471480714405290958137196138450453651398696233467515277890963810713563909682519709292789579011885374499176341315905489344919103411760818537970429849401413658735666858116430893011629885345649238922413480940402266661622792890489332489057094908626249701491419208899110637635172857472002734924845009317435782810636064436793252615716827774338566860938200346021941985761103901608434858683675906450664534541343761735456414048771874851523748282020020934626189697776995760160724570434500916915064406923388607273791379716863117775259556566618284342644734809351345945600066296708094604091958320927808229340194973865531450254975144624671169689418629041997314158170088437126396618522502618766126262345370593315853610917272226850670919965530885374961716828730840814899347127151766585461679823125387409320606552533099615779446118292807886053687417036280918031976646805809219025596005070022439391843971474843927290695839874822112265884025933798082709567022613079025270515976364481051594320267714783899620865903830967873829763938753517730001591420296354308778632598930280578717111764073299924766337993256844102830371126105468269850436519989801258999171635741432341574813848292761745977481971371243192195312810276269672787899644304780824716010013189350401177725061437350907536314227466891662757175127349666699059187570610246060373908134047587135880204211557486719489809066825459216087491148603635330357688616822876782864889862100736503984040284132341259504166702973350830614327275297105909214033658058686592569099985374478834551819018494002256889122553465408443710967236330932038947173404984234548754092023358988406149181983578241146794744860000945658796591607267088312273018087826876040777636099628164051232009651045416007070219219022400402392012818150476342077472528240774394800197668630483568036566486938019895874176488327626763235822309210748829074666097570300333663507348567317823387497380322759568524012924789877994267152159043604424887338601862916671628981031976053891696590345197938065332313894921913244203336279523684213146626303148294061344340367602062975177837990260387652961007009202930274049737251197261960952573789030224667189993682220844015307118651748932555267852710358771131711415800533602138885691573216963358305614459906581830400021302057807497471999873560545191240398736310667797597314935868060276015283647013139949219302342812962156504388004039935895157596843334853857139880383476955166816682016197093933745750929334385048756712270420233197244147527288793926635408396232615115258011235426639020521225606637045312343688435252652354699600981285146807987753327861722291513497704156297977050001389340773261963698093951346340853817721582675143833317278158220433872074534649689082941266340846310885955201850627315625062397912572504505798019676205605550041440564008645786320193189669390096023777775718170622825123225876674362840471994908261267768968830314154142213818814393570253514491093989537320979421357706159855891166298426333380334671240610346810293313374330787216898266393376718090470505651266901123684330140453017461344619278770070792973094686665507923775659308072508079954358577910619670684219517819790770030688002507453415624303782847662985161932264633377181210889565302610468437978670122662869060606847605405081743953949238781155732790317226695874492894799523456698479987373476489268449265951115837943708930529430972164572386051362501704032159515752169451347012260596004348399349194484483411713072305403288376184619106247250754399152145232747229071005934860415470324774742153204460571413215448182210915048557258595465547542053366315733890826426451527206119506950183666710482940167182457799234413060493981687019265223700147751846888527497380642176792273714477941053007669411665794863399957170894039664510980145451757383412402539554683255771832508574129824915251350190523122285391456211401820506195711016524928103872591496630437389808293535010281752419019883835021617287420790153801571638658097400022979140174354744707616119651642165317204336564688643586337331509412557044487089267282323492451652289275809788320147962720655283062838876431395209992382528172083786660403268018960349697806300926296295315667644328588471549515093418851663327556755097366134555821795680158662990750194207140554600199223074804181319132813078404503631477650820490048242602670490390646443001192408860710950090067541502353970045890425363747810966409662604555089267613616580747106042813272309388154254459824629302233775451160901036186139659003365041950972842227373089382611521868031891921909450610605300402470574675546004461538346474073364227667976497507363959996077568055345715316910266433872384959784334759585541593011617714339527322310062864097527641727437801347816483016810354489503836417813395067464141696472102478770503239628109139718088617437850605577725500927925260516884386109800435656427276941087792264301172557392895151403342945823961697864910715718118652095077128731770136060979816672566621028005403240209242205966858540658094315107410595864166772495445492941917055587499924094816873585199670553999016152467772852297689484283404455857335109959178902493194718060043978987910439458402086823014182626746852307736668801484165492001053688404148617631167275892886748583323325390682592859802893120904652661160072386616420853416705562460048131722941987002867321112957400426187816407782391527466995989685954608738512768209676639606773705401529685680550819723487052672301311010614201090845193995121125862651537788988257555028402183901970333723705103306752754533375857311336489905648958057427111191367286791486857590176148827309744379125684719124481526669067429454429528083392885831113466164956100869970615189336769138934715761920539885047796709863746666331032146085639835390710397227491316342494598108966547738369254975810202348208898040826021225573548890414690632058809223051107686507028435676401858938705656621988755223711399299356045423154530785686433766532711661782234525680820231841076646324821152581675488993747776180019785956737817709694502711189640106659575062150897358106353259408593696950002500111132948357048199320846474183566365510670847439966507263842052671805960127881004000451957414022613285440449868684546118541550646698169680613212908219602063424324665940700189558172894447196329520772260910574303465027151740976124491813291637427060326840599605832468258045216077091657903354464861594903443648381422956359239362110080650310419380235500669897648182976642550852561471951697541974782946687014416776811320852891000575586363943570057032564778190961141652760080974953264891530472455163374072670647586384261693740961796810098901458992969630453516585953865528715946073400595229808094992412305494568575135742713935345324236897384239547450022711517152978423008989114070583112655401195031754001153634127098534178654180128626265646413102358415601089280589325113682212659962291879169375388175539049158817511215528281931574467191549806617244444478756973895255187653610489172776252339433806569292402875491272839769123941548458697705499858722636303925981116128649687992002410638691502109372090515360186669132503057030051895872336364255559496705955575680832727699011478745500408990732422916829922069757405680873585924516590756534663789457204124472496061363322686327728438521948674021312374135017120165335986605703271678439906747359284339460135763602315698967378762588526503481086236305893545958009122639081958591078945322073717767247337059163577930628233524342953931207468914315656218403771244291954901990134799140042598236640264658233580872065163284459247958137944622422442060775205368717646714837456170864006264346749337998510554657148133759459225162290758279164996320344969354905707398029189323690577142929298773398253149620249690204691805495756634170156036657139784950285529348776689329246129516728833254340817005044655297389825606210867930501065697288433741849171898466042319676127275101305850599171642458051472448353744850992718980380307096876623134935131346393199477477781994707898041929988011372922087796437568044506469218707311592553798219970990806003419106205339996761796462911176535493889424986987840782033055566876656675010330659526545788103061058386986247315151926769427305434086736788753741917274780696871120786676866490694780457113292045620365201969516578203279187044948685811424982223412583382240916517003121901690254922807298939305036558965351401456357869004995993977433623868799834017240406794139035337023947292964962287317686270197058060271557498329278635373434885065431768606619928587583332450025381593666444311527491542507703185898173962976259052660346469491203119622466745097339183551507776111032358369522358188186883415173761297605731023887526728789121455937954297703648356007412409180014568312464387115351450728087180935974483872439263580003629063070348469469276451583170658397497975335876098435645803194916985408447279216099766059806833442606468642489984937554299424510482460483074201866385503302399945884232905218082300538066023395568503563016039265385819725982515321985699592937753883889038165074313056064027766682313510049955735065487525215256286738657700984900397869342760071700721780435495436939244521271153668786224325084516469049672246271825578650293485653574936496648206206787132058625975032858048321475844840739687859781270100437312440240626556817038999972002224473439548384192037176068147653053118729217388723590428283887355133092964122263298420992382087699900931109099334426279411320652465025760704339704960846109826141906640875733658486721581060770247436079842352645889884729640193606698257894415093400469070229275428836562010505296953284794979117663577037606658641086575467206408782959553251943065035646435165751434700934328648861068310610358101369192498649640794383295024563989614519320743711839319912244147686845832666967258804156502779452535929159596648743639150088352303846233900802806452517308958716244562845898333072461113086890527902558578506695505881252512163253426778891055574259757936226240549042791386488451831161005846251263943862313142968066695679689161026193487837906313223691607719486961758743784689771602574653439348924486612808658638711940216464348467095814958280755492293246409145347184064484644608142931185865184640194209703648261843128289097441368266476679424892300009758787838249786084321979815989848503223870786100783101647774739477796705995199301453799497100097099460336838798107748924803046545824025746216888718063073600078382118937117726851408714857690810726878140344208671440601685200502928206495866664834834163539021799016570496718076959654283915066301538828705465366898013975240992480336176535209711403169248279533305914518315948905401646506989658554068224198306852516777730303398631597398297875277862349079907084651931674095281810407183867770912857845032601622659809067717161349307324706193671221690987727948308473510312181864155705322841189201338604352323384967298533517639438602844031967470423273397736369092188777517258544764337236145035916889585575711941158255288542505025752991964071295022577154305217465980590765054357262368571294609478747296988352324805632871456817591701605186805851349194344792867130225137425969679988454720816340327905992424826292239345751663308775282523904377757442909519846123367330559735976255115160108970150273875759660718052387090036226435172536351510702841106044574159948693371669693274544952702578527719945808048995595028956129957768462669364778696721224394691064903618024987830533564741295790076241143691268916508725076148958663438008970892258505749357444634127797950535114762961576096057262168555328655099778793136785188233900266678614656492709420119123472661287413569342379338681662149648562826654075504894437207811549339960434807106887424124482448018881490020638107484966370618086863623182071783293532483425362509458998575285922730571138315562075850138828203859968709720450393998343553699077592828223859551874988128037928939238521521885420721993702290299719540953158877859931640716719397415408717819277222939113215516236019271785391252572054163683125279467580406122602120585847675421930356917466334928255061645026250484456224377513342063103714265396389458011392202960963049192756083539432603506191348528746224834299118899743859381308705966829338672214872261323681943700574195301750152961582561934713624347741957090702813291845113825440982343817265934615298399154784380608583772694220996996288641595379922130616525660997912854135627391622364889109223768428732194229209328608604646266600553232549433050924128522555394725097002673128293820242079498046189160277988060402777824566030740291526379953888782782007304835470198004574940150097636172959276372963336588197273596715827344579959271272243453033684983328788826052950224305025835737655042273196274373472407388548920689312172970897383799643820872358351010298397609496161827715486006984071100510145954921914851390619039061114490975507245645467817707422248724711114254804030254883191666967466272382375184258312055479517109034532853154767701886800533240619559652879267296394959084106825737829331923044824492239499798546878716166002391801479454220439499599546336513654734439992800410825730906425525371777293218537404276618300343624785202543088856000384432338166409535066791418243234190127294862075063208266856120814472929879828642781168896105476810339120604752589212710740756045800278631389437032470396970646795755235397532902717342331834693107676669105830173613228929347144688267276757551913512121992347952274450574245172178705332089551843043912707807378709643143805371030931421991901080543018911082185319827871074411563518324885582902829227048509605465120899523359166640419953770140332966338251948108145042952151663353030359087896709671748337654566044351772884044097702594510755642667099214746452022228107293864771563827448837522663458445087639659909817474775404702554639912005934946292077648609222920894311970921844874530034237063172721492165048553195935041841934776257778891350019697715253544958923806373682380091744845209979862982087057639179254131910834823010333145058092724578801942151662479763320933341268303886306582467338402458704699733223482034135641463314327384652373869991503066533104199142334249554760911938650281479303430270171538409311721613632427437844840141266439074981734227841213110291294106285619594869987663217524925697050836055811062642117471751926823644920915788080918914081367288824167743680007598200199539404688065031330796425959370042402262882858041791249631191083919793026541670123685703140479025344736762770451677119308422031055626030897999077873272667038961204289561924171160952285956050417148168440552642499429279200992366974121069250740822035136257314712214955826098192084384659398350779764325647617775038436871378687823177728729060933439729439233271197278564638074215048657364517404461212021822776743615722111054579320478414890272800937199277704644394962157026216090257507165915862826052716690869574632356249075818221116492180231603718825246206208081881135406871766149780012425123810519641505996776252735066464143653911188971373332838800931721782824641455386520226145071942698456225577973132438353048006574004956054346924805255278226156566034393993022222818704543610790304064885214324832335871948092871095585175189645512299758933173226264667593884138804169857846714981433147875070162978378463941719529719811799321453108223470528959322489746369452630521060970122298693274537280832298909185836718649006889383494802325650195153221332784650389695738593144584610004545355002151620807065326772603772500266684189539029095302888984273592875916519858759642188462347536740890370574196209183443900740078002270563474779738418309313122038673257950975013869094795242980605265376147680491822701108986008479429005596438185080110568511556057087829363248434259625124623210345318587300983703271751322547023490075277915998349118687446098165606487467725409126996834008079604447810005230902940271532363222223590983348938334293415805161121077939534879788734362658031334765093115628836969621480406924577237866208846269118837533525915120114268613633140481751990286484376045938983178239905449284339379705291522111108303259911116801175525723467185500419810630079318262296913569923187276168473949798124188647375919744733748658000526674453713241610353886450978313087713964526107427239004953224217332772401820196578820690536819267593508003937213949831519160113971945890405683823881860580192569126846515819682854569261422183484601377743849979655329579491430281810108436446604918393618814827723457979961349565828858372809964408996986805763934968623597884355811143515422181050109614532009871206566922915274004579295461184903049849655513126708194438476580892160629255784032975018247558277395504585128395560562295854267782537165204875557993172110866147152854883992491250386113764303288373346091920632655322824977479402755595248523639688410537000387429003125563619147673210210114262205678874881392807066244942600389277508834259879248460475889890530235966440464438137520769090647205487455877824209279085058829368876206706188723718502494639156838462775473891035932548049156023910686774056010707136166508425126332981721673552194238084849901121828121378606098808940681381526423564467014554295394039108013843686391274086617971704848088581641452278928481207407256158983562800976929093657796451462573718748496792485931493443094994249545430618680414620716973224851046019380385419223318909149212672481445766234535943506028869325457582407864682454690412244143840147161531950426077123621946146813062219158267589408651579828127023476747866229336030907128019958688515231109101715243242132370305703107301079329563533352019020961946855513031493557253104047459506766523883645875356302665881843748417416605893518273519722468868191661697838102829965450436086150687975167566600481103732999673222795330965157016168493503976525454691758231621405545005696159230518887866934485583531409997887561516122034900883084582948253730798215274788878369846793665032041754565711630265381029051609580250494397401291242580283161914779227666256185828666413236761082564623701784989481335121388938169702049523744794579206567043533587404192797816223218243355798961432420151824288150907956752315924759819199674093463254353082861353561479418745452770129719029316819288019108321201342213527065128700555356779104809400299747227950613738672533054959345744391986893321028241745407615854812904638245082459893289575698793115677251494120521281983790514299286090665215567651254403640596436959562551748090507332495913002403370696787916702295138068680431088360113674817574124595054264102841346756583151955000924363494187257653972075925230755086110644640125606895378108126935817839594505904378407221868165357293897055405022054598496146512773498546327837990117775415864001691171907589623123778840580668940539728013273200224198471272774436942128663034704271306764664126975950009376285964110414780716147862226640394222001928914833100476975864456263992215576997137317185205698582447157383415317992896185662669306517693278402450538504858730703526434063944513222312427903627995459493779374828136996534840627013091758555489299127346079341837798112735123109133402665079322185379877903294036743804597843734843757986920637749792857777535179821733151467901662511997801607698251402485669534025185603620068816617292008049471901615048586786213612805856510919669211753057346521943381225079390802307105788957435083105803275110204773961673078081570943129146878220879535791430613104599358244839896853705422736073014323396180963394410357928288751735065349953119554858190574330426313252261071190910734228188510584651462341298899424917005068064278572932919647018326096455535672271958686379022897347334444671179072639173668871419252150521304331937562201882746624179811303329628438091522455213589884861438403872297561234032133439684608267620461973020847883915062244529960827931696197662633182917662568653996937279398417652189700346416739490715382282882579369860186785760527900993588957021969727902868487634463657587565191726424807030885065980977913393351301976812025297158607031953030398115482278762669256643761007685565716997730532858095488691675289583519956027365464380363085023874296859402561729244198344816608130379813554221505428537871370402852947847633780260406431050073710629893399129497406344883609764004798008912633366960972357305510121132489443196573885001361435752371805850154052149130890955383507900751195608080079643447718973129612261963096397940708269602576768194879647905993532402283989745019883972010181663180380885292565535858646996639897330576453845733460633847081944635222764597726518563071351798083353178954491568112732116776737184728829773489822178836996878751610345940599888428900437757189069840718017891052682906311762036727119791669424238782718203823622037802253170690319465881061459134536266516757681648973902901127483861887998054596988665578725569946784338717448174261053800568382049282043632670040113062161972781507797200816791898045033115507048250027189274203812700328404459089056287284280410211809830858883991442890190481574522308740190593969422856095055327246785745426756394242470785899072100215722415859420733824745348806000508976308929564055115026270891883484678646135758293035688458438642688697000342643742970040969741289688618036730874602874197731352859783064315190801052333938913200764177803705079320349046567455971180186251635565529059995932503492124391620364919299889031959727268092947722732909480587410037106217968229252713608333433238291739751302533829522514856362988334810038054772870529396857365063618827500992779232326908213094321229937103464310438601594441716366110928535679905402272447186395073394302542371491625049651607696632660074487464427759982531364711336636816424009894818658007074816002484166113907024488395381748311893768661111982817323761084927121530537840753847398976932013134221909263307272285588113445020032558774813856810034516310394345702497055073576595409153021844998344944317136239654455797732001243281338966976347609161447605841979026595129632753367726608476340549748576724921653517839282062085438938851191270712479700943845606660592079262270603994447535441396173057443457766136682099118645769399251756603260220981070197955023950402254294097301760315976534525952998629773612313685453624034299246513466020314766870300383807184594819349606583527526549939752607126830920841468468981637374807705525049207739525118078726528933423933961397533189653886012853434072565221288398372243857254873570947843469437331202950799979483476640777940725521564982111670872352741281458828003849318590504621948758292071517620344564272303626462420306561017010732870767838827113836917688695639878984865422030163477318355397302211558027508739411438040894842590061895771203134648358168668905290450880700386487795038699817301850968649994986288078228543221614581162148376391212020223921078471121774254181580535502661219662010946809803988826293416197998227014984628687566562131974102880991172280605962562425614120448721247560410256736215530534372055220179550227187534017180388982174566029836761037578360210702234839310649728010557684855992392817238444117476667191082042944386305179583104177327635491157733171160157393794043825365776453188689598727060551604797572334081090137378703304380214492377363430594905410172929039544134091217842823850992720109051558920769225441494110770333104666610683073080344066286286846745187950540488121501618031403910181306033783199645096525248340453282294294489653458329609070777851672996055655611378704558691327025893035634206286278489573789981955577357740404681789376609779420511223688041948396526726043986259411892348657587951910088839818668633077486732701850468410231311657471486571494467456087990380452437892276854355668251534508567436876901788015204649288438659020182180580909145120700541407541128550004135045187431474884778719838650201859660766611919157824997315448430708929641509937472669451921031316349563959849640262365385327919476577514955032389473791461016955963305402309954384876947635807785628252536710009174517786780783189410182979874411993793484445002097781176338253532040105815637523564884715404442755372004403631331929677173547567295794036365253456757965846312022357150931068856440924627857138744859973271362434165139063479821029178868101087320062792091459363512283919276065707025901689465371808294641611264130956159077843638859922632226824714466778150632726527328380753209618479072400297947864494325470813797712599367897902558816441308959569244781898378984235118556791486196747327323312504301805888480444225055653403322007763751648344191447342924967261763229099358914695522383429881619257700916384548156900168982265581352311206735310751375600156429687743301275383114199512645015410623518004926544271664720862111231055897086452495800244745149546344744556507601900431574441768571744036655732947974316299749882845028323796392261136808885869690256426192156469629164232620227552249379362442302636073728445716366449181327830430396939563081113483238315882886523981416716779281911047956458220275496133762354574341464190886563609184178182144136746897974890672382249441732962274052395202948042171710083771529125355117764835235890882151513116318316058840975510920863657560378169416588476494908544795627761061425545283388069040649679586562105963421684391864491870397820198610090411103673515850213840900764494332034747323043583358847221256297446467163759868421223227569443205095924756359549225838275264282650548297774081787679744942207272667558963065985677010162400840303828807266852493090141014026564829796378675704403548083044289519907558604701306179919580764744483086267959275244237638779998261512431276202102266695235215016365351106821502675500713312486015504685683027514504859893267369924911588553095159376054329684893790779586092192029441872506704156875737838434411529932508417627497957964238172367760208397652993286487801389715563804451725020561689365555424780790645729696708898303633736974183403143339599519935017118233510990059873455867844142755028459432439669133293134313044926032545020223186005719663181217452196663928096642753051622897289044283731061496010585764257333002914291560104070007261215223496407860220067451497993778766847529349424357306748424511659434671003529131432368374440958158119846948694577631652530417884541831149738715438891822738062096416489120515915499420337316931666767153328898135416705116942140454868332826550329096347761881608548765880062949102601732328248342048422022526001637507213003328113665736586219904053406107921029333429739914541326026511451782128366299025423708727245860510518963064843889769874768104482614203308204929078168507049336120387052727901776260522803238750886825445998945263593501463649880055408276719903525833209934613300465775850780650780003951705672133263221295099852238528826689642372923723887563309021513317110754071353801462809561713259398468302747021728724814347755693608590573995511719860061220340282677879448706587356765221207607223577449058913631988816018667465225555116656037857970505640477317677568480780991437841487754614047435083107901999165766566750404038378730641829732815505052415619693963480191869375888297776262034542583041513614009253315711470030030168389929075347069078304329057250559765029611937222309571953532328061113488902572972147700142818009341345855246777449674654038789053880302587788377303208613197304989431603814064109893492017258530871397239274172383457220110334895783533089458860331185258472416421389334381345611384974319776621937371079889202061277451874488689179046782051069037127576280206342153797287710536047434869464766212072158792403266117331653901790085666560015439776900659611525548851537371954785865872636195604979690963235767266102754786708944494426172264841567809541469960744957443727780071687200836669480367983818474376567931176138181453899273097771223079278216287285736162616872029672156570327424880119226366788678329452212137261336683993304766412123426101818571313654278558968188129325175582880748229870910520996056263293448405645445192960765820572242044752717171578690863102236177523017972181445496119067155994230152995686238549771345139839347670875152536004629670814022603871405311715665060823283613519456506862959686548435675484695121961422841428004780133372389769936503801252578312729495993301484284831556649091018970763982642651798020848798099886720831218870332915187172342857636893827169040087481763590345201380471706998661894079198350102044664905186094347047391297644396683619707391929886511815029885633243642236560475177244365331062321893926564238055129342474931617975717559486818106304822583079225233133339226775478952312562835980791052631121440019038421078441646802234872748185308260450008632098153022270101657225494682268631940773587638867325781876282507536335056288141081750630009255406873852243276641070527030911091983068535627999795510972217135125514334192147622697259872923156750761423864521280511000147449595108814356916283650467996358107390310902967134224270964807818335880586035351201048881423901262501677159483123261120386791481606469810007013883101186850320382952519218107205323510538721808495806571478070211015916422820205267707101574600107730358655310010558215527340491713705146971752630260708185080073613149848372977457644417644373614347582901354962409075355642757246099637335438723874798629100145377559817232659106005371094581755462774499394692666254034375977303315998246104649891698208937721860168497621925383191394448668909094160009106632331662782369920953111354569748826404686426156854518263379662897805148050911688415707651186999908370774398160700894563122333944782149298979040546133775670965847206701353639821757600491859391282061785271751333920438224040022497738218389598218798306400865808287403613626306245979100404988894939116619373659875485505819742770743536786401949114586323740350715512631323756802114763687614848127363162059942977008495465172381622851505961860943063434603241882593322448501822851805666162451731066857788417219233542881341293689572992893728306902817966420499551982324864448187207862546106453265753438176050421225828447882687981787296996277396877261820729981068399847296205964000811823968663884351507433234102977919943365909466499137268363594918909188857019394950652648797032749610632057095648412113381970500128179056528871850790877658191373771597903722876843113550283275897052316269572690583945390816825560344388455706336546071021483987912316277703779865393122186485299695728665023843172010674010064593300090161622691165455327816738473139516654634990084452408997631678445195730376630857475600737371652598180859268859615688211018798024285897245670879354877582589761388347758655502849751795765769963898222011697958479762634037931155401503914872967464606729193416421256427029423850926059836228601381141797650120813869891563383365848696935415196894378653354817899838607330098042998196970888030395836983879872445710530567102345156602768538187535619281486959624312304234488866078893999129527780257141587278104751099938069179832612749988732535443125283871667399421546824481338672140603186961364269966363360502320751632595403218518182260919615928575841699680593125638035480756648958167536208872274302413495354312267887861752913045783021700684740356536293993423035023840554952412423055834987559695749462890072663309600378264586130211429173429958044628373600316728866723461090457795862217093099799811420829725814718105582723562377280335870731377899151497187625293167362069770450245634455188531657230928899883466154989971512782261873493485968462618093810121146655168768835291104956535104726617474558809615874702195674542503899088666203823755589411787673981251722925731004011130032152455643223568652537945309246642760383638990425438509523053123009073998637549155962206356195495756803522638339547403253527214829621927051762508112612109349519932238719272142685863855162183329021279702383773515053250761642358811076530262121952298217587870270077422753251680586937351685816940986546851539841567284477147397522269959670772801604745643131832721014698584183295539636642233317805663479723669188068260932008585390618800356155089471073462491491298734090239662974237834184838578143503372532212238275311363704503417844822618795020676970783585935169434977455253288887032612464497680372531420486294912352254093619932027655555711346745096689702766353484435927120161318973560616659996923256247802960856802303553113780938487947666193130948303788458065118213866443095393975084954058666314167478875386256428612311585399619709958332350296968718526371790360283423655955515926799045114376662340003195292319502637072514063408742245535721913850475490649934499206908298277340268528871121286449097758993878809340784147831209290592374721026998314099283067973958644460582139769500258535280139159140264225821807322189543217547716206263996624279169343386851795870892116120368488528231148422020126846153447528763855476810083111047480583923453796121291721246848990809524457621301626846582229259713232207829600886791070928372862440309460429221812013118576654863447374835695440318574705943002288739904030375932856349915252326397366585667882348893862442850883692891678584543218282788935454649515306710044594911879520604607944858513957355126727946842356009491652768978500127630335676445276909151236328587858205616634981593121142117717880133459759819795850205970320319749643616452857437744016683686006936756771928344242144918414816387327769246702057182900261329749400623593425348069660687121864275920364609196341143213992521009199137945298760881423246023674367620277210998798174640282566449667147310473175903408428136183727293557677483638530672614157014945731156621089972154899051980249446255689658076208226572659415457905809436414716575635451545795075298453954948955070558574028807594884300325688269692233045367233242086612913310748402911745949203733858077425438314785600232919798140246602100833436267275703800584414859071000129478014453743906539568747749745178719330192445144513708923633276208470990803136583214657093860167355055356285394826842236222629741531028050720058816488650550507583856394759316102067908457468857874171369451731358893162975486090744212305245908364852588707117704724136717328418465464572011047333520868390280238795127870431201850341765088247694802829091706620563902100081171543166135641537796643147265125369321497478566802424857024778014729235561499322374960098675442223993923736688611882673510902205732110872908783918357707989811197768216857143588211811898179629336792958787346258420090776790890863545724530529637188824908785066837983043758320779830815024025783496155319760727024260382034870133169335468150956040525407078769684537039325361754162980672824636183370895014305284177313751510964841595292250122379441941809502833883121669580015992827932941753392284166588237910913603494278151531148329160894750100764304127241082310859237446406743517678136223816256207661593039179990895227193007427165878182833021757618408882518422104589183300293711253743829293968361199971551876253687222219918194047562670255628801659233295897025312815745579557001757301027271433810645921753998099035367000590825833318272410078876956310897510066073132255685660163184613726070862865319355653314169521984230304684085100720321629386349314256665249483619378973270097834926979802015791870047619997740061473832792638120771587969824977339483732099148083720527435721649250216327927580149118653968375196181824361109966131791436015080416534297333745060721031010773427747231889233770332587686058900834319112955857484703310792275229690990475398008361665006581303978286304757540307745783340533118742165886961520838240967141931503738529841084736404368455372698193187235898305148891170808728747435541530857248447515451842050783451223977483260872433567048415972301910657733122688005786922449314938126360861667560515173066184056383821601381409567609079722281377372585665088094939366590579526636427705794673889739802417891295786297431785211562949736803787519486536410099125287321768855346378604319266519265066964822255289102248970714429618676482275815282153341413964746248072822265027733618297361170310801073085414112067564882644711815700105163917489103440224778319435126609130184145331807658236006687921454788380568320024796513704665913017892904164773714043869151966031488566476472388495711487276492352986399415443406648460076952304217836230719709249950724159697627426360949978646353102584030890320631858839090969273602042066808497859934954308773588680378816926097313642040204365196553832180220368565764351532868739411581204502351172540019580481660893241035954380495688475351070638129485662663370959256540470425719400494359168283553895355935872951555295406013917993853370128127996583789412948980076040964956706355159046300772065689734590268518616968590418366849393566539213484652072001514602875622074009277824881614440939314484288910117235210745950086734885328882185117831838269105926050450094375715066855959761673454095249217628840511959265075580070679998910223504287941601333855727407959541155772011568448436643547297326511717291659598660594330429810133068501567158907385375355458316972402389875577022388392581199857219443309851234799138399944695540871838854662098861449803717247795370397600355038027293387385495275599235590734877534956699341684681934069034647362561693643763872575573255734055656058410438841679161791083237186966239151148380546044676924222701549620439597202861724481555114234913093492060928579302084859103125721353683551193616518813459034648732950541953437823818791648840560428491859958235673758216940831982019075125864078408866839724545448004426303771709920037243314252225281831277676704612405512745901064750333025337299933718136440100324845816566886112876111853792561285367573025615642871229911601978188998802951664314919748401716632622600775115257699949303266146674301753154677931038687008346908643192601114843547146567208607556914028380537867036078861547184874197717471275494237385233494107089105626238844973056263007121726062787132826538877416584362663978747321149359407253346043049347094240115186127531517998383017998011568597889966823754563979433830546385713228921040014412912208621829594088708317472776457468661497127874673461014112187794059179110376538653085427986792825082643561079726369258137907718675570742715760444440369161906510456138008128516439355307234197777183864465634049182171245844645072810932061727631953283635453536566644709430045548751580487036794082550193327736070379048313513199106859095107703447205166816953310463859784330386761889815848755941702618209832192688494717104741515726562871128654046013250319684507358884067665281922876468297763834612163110159400984740393643041664968525321987562329641334750242787411921785098455816007918900462275178335183702689377365694228176877505607283792687945164202028718727060511704630627195426560945113548155739156244090137823031108101395042486749455984483147931269932618302469993307514548740098784735474841391932184205550805472626471139427674719558008328032244873086056181417478220527365524820812099596604175699072470576573929185090011651871673101605831701258724044487327554151003484811727888791897308322983051000854096885358806533471972598899511999697624997094243201176199934149628348234656877417290638905649290015711097705902836827756768698874793972855115209206826364905885518821406748339558227121683225041621797327520579003284173558718083618498721741485689079460175742431645659517914788065987235834649101322224980815095064476949586705383645419649061511265560368907613310838743676230744019866044153307885423342719388826225250801141151180404905095894403158330214475675616224070450242479492054931646014993788366479064845945671400429952489481291491685281810187583911401847210075747746278901637666201432776029579587041778500937668363003206549127217212231837808927431014157439116511753862158061498532642030608607071492253411771556156182406174147190027279362848647273943889497402128614437013913466618394001669676562536403256159277195299028138185081441631152068495238350956309045444388108433752972134210688667668841307133733412161275575179494196942107376382839934916595479363815942437561669857584102844159325639329121310588345495878268787142953528841695162232360462018781091144463519211778615623244498653335934057662964432213810577503889935546301664283940597601876952882005565371229754744953461524728427417332404473977752075620005244326438884238566690927622381353377432211460476046114035172718711934329290658287082995065563625020117390395254835471083572889466972553389746430626197916696331250332145378917975403888486459304825027689416566875366622558112418015465638193220045559942373643252696983476582406514152571854292979813448217434025092223072958415246574804138049522807445324804822007194292584019154311909637455513984465212939879613246520771444368127727793382369213760699312598421064577111064595122414213928674274256071403562028573101618622917071877217134613254686737565407692929296215729698239924602036388352034670041817673046395057207225163579375328845738906820949478828263519484742536594467912157438652608123672345571354346181658825870544323285402151104073688100077860999473456437091226106182843995147863309922790997569814448547950464095185962207975699385281864045012719625425514107175168109228650359299400248688419782275772674692418204927576734005192428002382560645391285801187200755537004941037400430102593625799163471061843418761362733150461170349606180593468981835209805168280854953336187708375054883555543648678030092314556551484923022957469114857266043108081223145843985084171913267150415966510041404667090794004174548558214220930799274830345215474243143032870011694173365394820972287063289690823497579036107997404315282860282356760155250904659818200008681286824619800363725723356289433705496003555246714953662770297086311242501557131013075003967157881635772541445145343916121262824227012179141653478679977901237053650024815793410962000943737042873680915470707251348271166425230211839925064647376495905445368843869112144567375851991361720044825708480662589685241286978400944851551384361593996542298896074017283602903446232872996288575628849755316233914970039805736651190105388464248048646533297648941212512967522624228127532125639036189260024144007635985483219393634591931661012094627425760551706638971916899708841386454006421476264326160768641206591178084196166001813758683470577801478651242428101801393474070532064347851873554591317138033489197576781868121951553765949484769039431830849817012209998449145299653326542604158359783545068225873066875423431767280081411666535650521877081840086679531605887492909907319560704850593470194492332210844169707465110957957912670436765017327757017139940447510849040820003681487182655265375594975491749009918340983645720732990603332374163676267224682207885925840897398559424025882241624675751900279636391164610518549569731376154648721469639705029140390308376812457842321721840397060142381658415397080390786069837641922625156851174112969618516599647951930214866117050933771576659560898700436107722275207441361560361071644791040917157662255787020864203602755343866259652340931053590876020587691201503541271499796674168242728855424227220156173228938716417051807548410335346696066738026433600014096293435402805677661183176972058731428337159915665332725689894764950268550008311002169366154938404192556923424816757602797246832079781072769554381035597168531480189555881532368188201587869999118969889996792674117305895857495676968934176189423995395340127397667422482601107898582653593459539307258659807893726788563335469626134250261453880114067894553413402960643910411335083799266275158173901373557620097209645000736782450529174949796663035896680402129750215516999887170055007349492451847964139834225473715851312750931468369386041867005246260380957195344978245878651464567056327317637839453888154600178430074707432934406703794786810144060594931031705542816375838429131771293967999185634452423993161109513954632043766969142323694834770033963744183198102279507895500633382338162257254693613983615915427599003552619192830805564983422182324150625471389288204668031261662910996708887421623365304471138120492122129339599859851514056278391039888077747552056797566803307148157643668105677989987043730263762254055630095120641755892155181921230667651436857197773232751898255774092448199292309585996581214595806226106797154452276348071373536747624319495875707869344615858958905528282932960313244704365947599165353429745990213507814862823108145421950840506440454303374526200315949063891879910721239970589868267382087450776140948390983245255797773458080494150909756063698567547772991588368501312723081251148392741999133791777043166054886847101582961741574523338150518308411876810668512801161345828381866723496656381902031050684540276112568029513399838295485384388756827687019312014727298208414059628626810336674716718803941517328413658679731198524309586962726705727301408629023441258707182229909993865020463971466261615406162936091088898487070392849663508054114008749017493398112444504727445113438916069858716809872779254879059255629481969332349460178735507856744975944760143174855147434746520322261605714170706998670228742308534095652088281882096749726889001826944966909783076165413535137162751986870612361474493899612301610398855655231455577147374745201799205950239483244759697479115331983332491454561241170039014024252322340502321988146632255519151734532886612960832975978898339935234638755525229457401111142045625489832133953210137429656512095311738221540255732552678136824235563175559008911063213477046804926581605020454046532519831241350937909572987877211393472922058064579062663393437395770514981032229088777292216153401221316829760529377735757880918339461853843370454338655172793762584414675113401986354591885691131262006977229730201966080451994342742309806547394820372256580839918383710540642553381320353577869365395202577289932063911515004184014121117254548472980670346551991737453788435611952481658321112636772132611043493634708882685309197917289326080396209577769040214491435001659286156793408132788551271421904746763818998445592240647512191338861381559260184253157207117206339762398284858009133743623106523338348641539286408841910678840021941684464438785954616360264426843615568802977079240026110421041725648947659240921915376525412458209648750368448843361907806246395920895342842693257524532681988040112153218750622343227936070756749154502635452283063440013321915620107079579535814015961884143844746255938105423254458850944940545562693552004942135183297893341658612132140897746539875797713974988975719147437301612424060229078808812583950599874638328697513523862140163427362785366332313061059350076427597308660395988973794879417609706051217083308248327499845643954478038889474617661375145965633976296370261893661114483096087765943392944543249463823272382968048601013023839971398349010866786085398803422700090535567054760896761091904396675906668928986884769483186775570639459977069705622625339453047208108825181678176673930967733255256500816330670589118330543998713285995454913364923959559839619223133908600430321803874006718553285613636045291532835877334925592124007968162557327887224954787352629919957463667520726458136052502377961723884619600091804644852551667150689939519959301431490944457691384714838739808355669389255811555433225681280420169140234549410333722253402910981835601030831060535819786949642067697656282419406235568773812035133538121871629072230444401438691448225887743123093056060477225775280123185054550349815441705070924708545314894478041362906497196203464060640938944030903082917264964424278735337187377224483508544505264715170514789539618113199748085779819721808184987371919046359138325521268884855606281893691865370480422234588456064651410037697600710199308788402156091638760685100907534271600054096413557835600040205890078874665014449051930052397847430007960636451996684575930811799052477697213201857846654990087068787839943315353576536216492497226659484659936633690407884631696371095980783933788638880204828050909241354792903155845911611664474270551787043661204316676903954356777335308690916862840047451109795669147418507420857640556037452493938811071814599663726606108178402947681620286265454083081468046808620934667548650771221191533414986130130314213429995694013190182151781441329258635561128442732973927035656661927693726116701232080001157930067306033316476858979765068654100453535549135610156353367902322419319379761478612955341478986720628725864177339505326178049599628022128572989075919948312960176562607617520555614952843319428974641449271925792951433561747318301846788767531558087307756543660512508555199465260570346640371118164928569792584774065685664680778651025644831061573672824967355280521214429263844101786738947918686908881577985337183021361389415357529163261291148185956029286630612407479313175030963380814038765328439723928290813217718089618226155303900469238581028798591286288402197152774392531986585232871539189949133579765584813488733102263106076643513734599740299043752131147626421959286622676632554413510304009119722174552983307543884364548519346751251695257802138740624653746398505555576711417439950750096781459135051914804827361700997794997249219381375724593032548415403554922120272896922749530442740887115316529778413625282394565713831080699544983064829362969541758301738897319780068271459572365917976208758929448170474996545004367726133973807182670800378672552217956667165523992602195554425161258741667168652282099409109935427119860364925444475420319699897982521491376503729896043114216426367495327594608500597081102309339088331411248678368237699381267152337836254761891349101275551507742670265206640094047035318738072002370098701280076231336393397119443615333606889951409237395708531588567466113325162572072952447432950163411251325737060375347825847082022023155667112809961014537261383209067371057913648767164153058739248907844253363791764412005772771511532465181219538795585356541781498692848782274106904769577848860065537194091250143810636011815917004775649826547360454694215463205455721108600745543049162556542869203170293369301585928443644577327487142500972058240139763529918990015616377348796421504638013184389901670272263263151536596075975361177060049921894426852996327181014504246240333958448006648283041703359660663409447180836565250355640172163552589550494686998503733541386671045255483979254433888751994163372932412993796485294045234062488621842135882187464003632061631402144126314243819790186329102757954324480371516491180905222292825985692467937282879465491331121427481961833663129260185680845776978150699446619790354053031557036109489742612754133883636730529567131229588495540040290145258281716016176663267384311433272751853322512801210831137572744767207101365548813812281347089324764729995205626032508972959576233624520852616266340484310233068921747776509806135692645046651267605817436568113666902454671755233260777373206152450246371223497664429572000338543842578541641424774887622246331566607574975480200380278734800233976013828500173126834472806563253145724231794534333138160628940272256873832130045465208455710810326683289865126199815814358959720970263911731934465569007892199972588151683096658198960622113203040413113346078567663557336553895740031481567668454190119471375299241935066763850029332688118397170510953930634074865744728792249411642693828962981678541654782439505384104116878589241067114608876292486561942576076463320208712673091261494295218784321544428527094330464956802080210196264308632098145955578881448387264492798191364135381294353990696431112087762189416758764497119834222030099797561741913584765450109986519851732471044888285677894686424737101672701051368500346346839427072128594212338822015087845934798301218728710882993135007265445818310962489498702316550954365824924088508131827692435776523880166133063771659386305576336072282873287090313826674318164470219273881702134299633241236376652374069937230054654835266736141881501618096720353995625372118810561250787406921969149712158223767681814951005279410530106442166847157117597450173232682171780386937038614858021741923883287008722265052267733564753228429161057727141467884417287874295320749199933078066104735458144167464272437375449939247134604696668162023236570898367022342977893510219953883096865098638404032332052973518466575526033693249619538839629149715752187051495906001574404682448885096207862862078332114786162477839827212024633081095678819566451372398359594362555942729428712370320610605157870897023422799988477791187956578258534686027526534522906806657944093244121059924291673806653190663846311855649910648595456405906459591872860518790076030219324077538629336176917430276052492994051915113771574250659746986339346447992883903393142950623154282960914019045563406748732475672179922451607604177913169058782329656224123250713892913950691512632097641908094126116257236204610538412080185016040714561809426204197576440868114794840401362179945947357366737785694921652127090552559190294894997889480533044245546265144312617004839994250227418879149689786625967954029709388794819920141644694321635516563696686816102795403756327315812740304221572552991643503121412242242664462627489712162951124950289115230019416203142633938466378992214746978821610244159728260587835172202114405525564314768408474384593933404871333188005748639198036789455809231723097553557215841946167033994908414997414371036035844639626762067533846670688769924098848387827639092710260863522349154882398817565676686168633150092012088850854601265676104938455805306549627228367909666570484275373872359991187535878315606573381110425634912375151446193220094808081458705957826294350821663623976098866076503695219371392629506920705853105079652839495813636376803301257168778796269419307490002707354552296970961977061071153694673233577979227360669058326132519675975696631961690079862449185376168962263130605244903581758576859549385803246315704744002629399729618253324750350846557478028387649887341061842244834334486607490799052456263887900580453138326496178819147069806876224827782463983530288294629376031126865553283798777484258313048348011116005566888265914138505882964880221320372486003570479198961373568247159531661208664858495998743639550030022152376322681727638994708186077352223320989481515021267839458028250947004557926260668244258583909119616444571880810298593502954681879473149363681211253403053797267996531897834547170830816787568320156965797671778749369327132086356471825265376308977668717288372029928962123413834393590439016751137500202476827140580044379011505200649821712716266505828366095129496176851404458724579113838861102586934862371424656128469557897379158198589123787761728373934177748486629058349268533042157072029826347168065959675173072271719659126990562562410616934236637004373667984736711816982039259960811768570775551115321212806927045829187867979120415650970453045896267367778787843974619362672956928936452676000013575397746089987730640651329467067898869199193132793229332480444617623284129391115804696291975848733898916821456851760215805857414886450536836329737429652866918314167629255487114832909853772844819803124128724630454368027445549781159613986370317021504920405319454648648366469920893115348382888561769976962045881360258061320395034988313531983655041157021451907654835575517489490986238808889797273641449869824173538655970095954820430308821709429756371406766254250904102901376048450885777251380172264773305972434056716392492679505085317827925238461626946244867389586400641896581773267385023534839507292905713126722332278231529691460611748477666538319072896451964722810508699916008838704642254366978896701039976074076946487459415039478058135641093998618158995927661792053295214565969609862536976869167728215351973005497843387478421668966089157083619093713105885875439888831680522034778789498204629150370174847480306548044603242622136791511225427927976329896397239010750726034434213862486791685729589498218188069569575841685493012459191649772805239875854187956121120325840389722527695447880263373222586320228912261337731810513849406059502479452557083891288503067551722568017786378850307725471867370776875566746272878971499134058040884040519424442941521442238092503010290586363387254245924846489825195786128857401691066297852747705299153304603741275514479239407930163639940815707653490853399989620586818711555293117273831415866144276629836145841647391774218980904160394955675358793701979580911698873852292431234645945467834360357301343878602158587530395635197568260665109802642840777498643380022123043982711198066692598084497150621116062751688910333615789159095648316254870221757058292770246951669297037454400127677710589220471397266289501559957980272476661645896498972944687297181263848067436325146524487975460884535284795389775882572527636718897158810549182904184965728911234866488791749551508532503255098615093812259690164455801138044482596761102140138455993306642418476051679013267781584520794075923024739248146097944279622624834194506905486795801310355716315148213785103901893300930572420109510194124521789563171431392102782725669028010179293234313512086329932409728272627245985018107693661555111039975065424785157112039972943806074505285030399691232551760201080333153373871427497199661022899897369776898337452446614024919133935647031210792706478178200273770982855035749522840381760483888449428052689223604908172383708042661851787823081258043693862927374761682374720907400869939005110617704112216705288009600736504309134291019729346489082052181337247916240668584773843561270766416272652295435060633920075926516071603335556834715538211048337133725282841610072977697604909273429764092728850939298334128914611130398888369067121265024028682016697609773169018373037731347015008377104402029788041927824917914379905395987831964473214587412961732006726205068376386865711908481124318698648230565135245210793349982292074619456556203607735884129270895083352528195888767623196165806313309842075159907412750802193459128903103960990552775233804665165723821089902703589516208134029096928881769364165283473958103568065519284506764164683481487330111226769825654664340046764778695320334250316554985564236183318610397644423889678080602539444413903862428909761735483589073904548546623315373101037732248008259782766905505179866629545072116518107108679296590258417708015813902088453802996661459824831198920402883741078880672434862610321354127609282368273204070814177892989809269514148773043335230210427082408002316660413465383862244775394406154495761391919379072359313160559693430256050829745664465629225934649149474915499163317701033871843428019029741852073813924794100588043125627115553670613023597077230909523801036728831656314809904355792402509537082700667596155677713399308958888080340650398434961088216789027156662875046326387511547367641292539990674955078797814609531101993293607188104067419859177637817032822365471736904117283339133279085057917815008814852678897446370949265093175210135084327047964027334021372599337936346855371692678625134661817587767130653532498579625130318980462729601578949739834614496945901050529672850045897563057665642157569377067399079812726769788235219813830191052075328850338850521887396522877935742326273092445368189813076147048583802251919265881390652094436701239320053430433308752732884798065429850302643271996739458364999515350928621907585166116648794976547123171559816578935840471806082773647661289556516339133529230209457070660360579094513136598633995498463306578258895746477811548424710260902369439336311930538612935359944681802274711764455412916997005431526216760117316333130896602129382113014983960206807400043590129363357652117555542115494047429340878776925110450320784063304468103195460349239978642656399309651375306997978006043718761272326840815937463722699149063324755736792076491071517123250256358246518078709982994612077958754919369665732012479012954499259328801796524560849362140621045475147832999061173772198042439201968057543507887076541127197475249836865464061608569214447071079320750615691531043495289929601700494834149485175272777902634122260880926795318095092207802653802422341483161169136479201702903599769233445088491561242632637662174711250712270211442388672238099777730826074734149948291773759111904912316753212730193971504706404681802894829268753397804451522185998142076743383998613175001567880931423341556191671917173056869147071832922760380346811962829888975924398746256968998242864508778476106502782579560496411829862837860861145005970323072970247982320749625028776468652517521839556642468439078744035177064789963418307754802201617649941415026738776393180176702374576952514158429427310765057308585389306085788919393245177835075070848099958686188963202095641508294442745759763912784045336875028783416891945784714456213998479704194289468815474306843473780229807674549522850985219842210634528514629340241503150039762869882411260893474329018029514097794287991215435554822894498805751614853149511589926828551141476765045540521441525278525746296599916702207580992658241869821689523984156958586341259846074827463825914877916103213288480563219509253124368958018896086251408779146997304479585205384091243673351666292114705130669311944570028918023453131907763484276592652862154502677983262576105651330531150543521468347187900242143696591001578643386377007040041600712099565623383109296673934935696478108118252367890102137924449582715705307367265841591262859431230079865378215851007413999434347328601370634959989419585982293545687920275279071435353833285870790915544589795090034979101233350895475673926364952559023445147605539258904731288226301954014992199943823021101709833233284040424643243898891533409650742471890374886264127760616631627087930526581802020095051967929604344194906119627593904034475982388837189522519408847543892997300541273360115807928927942039426427339004177942567583846193942809372073193577349168853095443340376529011826072437110815526457435143703425906170377173330332911941991333451187849631428967396316221211402309920173333918341740418301948176944250130526398917813482277846121071730235979988348024138350881733948988457908444477962248959230323848646830613949129328193337491362335624957299699334734434305506231577205318974086307119380525526652111228775774412243280620918772132875439852505065772616345120613944352960865353895357239466953110497378220379499896641681086750597810839326832957699629958333856147302395871256747847332147548872925268118650253832035445559524970341033051508957950956903578483247230391181136219799542345577991906913559154214630386731649323957691713001917050894444013867177951704106767906122012053067605009290386288361838190494240755732006760066206186547345851901658667904002642978408675036277747476674108169586509583483371491664312234372344660473041150078545768782837498946085966372670038819665361397036004938182773880961811646992240282474522067819901706964261015359643912966565357449996001224911719405107723082432394957331759458023809204235801115495988751035264632177156924031147228205171763169258996223751955245449036628470788577192344721666701979324477458529826733310059768269112916915799165217040514052312917852872485067285582217812106221256072319957782883803182697416036704815070225917218091526466666737283096513214199798151601673148468539654031071813911081980029259126654830186438592147364106166468281668618661481059320859927278180510545045913362550536452707005725663553849026596261402476851747569376329512339533782201565537988357272691163163203963227690667655816115401636671030594961905687025987791679032529996454739995933224552695026429820643264272478081341198001442449900600269965983193886962971833088301762637650854399519527158861227906797168405322898758568172611205152091914429460275380236491562154533417456514240426047886511513377955130357318796301350453862175336880070135557756675873266795879642933304836426646952237192145162797585579902110056874215892770207135168210402565964997440908957638454543999516401080543079132749546280490745436703824421289256139778481273431622584175290727589171841897071429629353434039026926331346099915095052888315725971911751981920129426874919522321484618937643150734009392095579934358062352491537696402148029810985095395868482302629091556872773877564655223203119132345067391880278399081754234635086980207314136103762502836577748736930224840520075085117595008693756439927565452412035295872265917129680449618706127049182358218134104958610908959677987326631726342925859223697060218790908695231649711224826404453046042645739458296938552304020144614411727127329809478890240379080029431679855165307887248383653682387262822259944503207454961759729580432063368657472437544213813773696064379635533471764889803574608826724538519703430633590308510284122356871028158952899172551641283281864454835862749193140673473868319746815774284853926321438218324283044374353761284855741430197459267530521865825052283556717073495407793010042717067570813441316968512898258980227910356682076548202653477383619652954113875598852384451334597906837380020587736337550650261590857845804370459151222507200806764989031433163845063155684447150044998474894049643098126791692795678458671177376550428029095678558309742359229870871744540638024723638015728698185419630212008192118636202920229707485738851482033186452000234370603174258592510068231149100279936507538048143202636276727394381413392020062979424101159561837716619391700255301074882349830391975952442384045835927011914126525333768899409586888795869384824759798271461300135210791394103469751786313764927616053812626088334981464989445094589588312326504388300151496530424025872189906354093178325926512360808261548114805568723393175967919289867064587725007420680189778728264995190812919817276415006310581920966105528592031242506991886294062897145073649645404445836289853224576810682841025870008516449556064290179267502489109873812274334607451314596457077938214900374659501455059247305124637050993859741158394725398499535654954786168919926823560578682461741021992998370747954045137149258871957753678186307829972880196012949609918722038228857675299953923001157467316673910396800294926350724820892428406570346025993588738391090763999737073962267174442189505723869085520794831155540330280694361403651451000554584579372471415655692229354361550564624462120093645495925171324994457415312100139101016059893242793906032481542082542709086612394713204796230401656552049884439908914593429706430331743629729188135901059528645154612936689557713276513918310367926865602779560584602013563895209580083165920595682355652077559608309886056158504430680652004844624786729742975247389018273963652757216648904767887396555754861255101293806188074213970928615283276339482687094333023180751528030897213349704203153733977112405600439431974064287477356658380451079737483124758865177775845122869232588922131474643710471560732588480933077770187884720477011927866939671860227814024715208901944899771898631929087365829694419591406159956478165037762526127755998756313987291298550573051058972292803864277551142723696773841278970867069778822760163277237869047492195148305996941395969402345228680696518632939616686928723222035000874797725638920465459791287421092560985904633649952648780468165878398291489891589431577988752212653031942334971494762382363263850280692886971894068246643629940691174137424140732159077715204650340529195041636654186029350433379302188598022838845909122579091425623136681443537397137963816163208194253830482528515739085969598040301257078048065835440984340790432411301434014767776135536459481417937473908378649391604018045208645295281565182590842798483391589336793266949548154687338921648915788301946100877910112366976351755198733746504310725379501272002533122770724965902199747299813243315837726789628181514706752543927020792666094332073233114510941822357933836092765872334517100071871850283794668223357410372766642891732814147533709264067875856514191592812598000664111159739905861352378667620936465628853137963035887036049929711978254552923585185038507154507142488130212952050713343527988563701189012849045961671773337075736842149340699270563339252033260854935894382896037162206458091600930154675678902671194589097737482123297468071824774805783385069119525560224562658995261298262773476585835033313337169811562029873671189183925655261664374107943834701731961812369646866043038543361651963942777837752729241511384508003628136520275848077772030901819729251249401524726439653142687449312747799673726693812053927994101858771391497228706850163434285334219459451276789457660458362501342188342150609811573769272683192033572227174484049918109842351627270426177724155678167762467061167682687513404029156447132013612628753834297072843051327695537349644018266137351244695784552885929448551979390134436610616660575301285312175377184489376892338260781349511836670472076278726731812602711792567619139884676935442326592412854666794048598083349923240533203228958578000096101510671250360741597957747175740184046174399307584236384544696738140118629481964078061434918422051647194420934081848654262464302517413132392901330104017128980970999235842742453505854294898302607080814379695504166365240402013022204906600381680773911916784316336133878655876567320263424622210504609135740161971784963444163411988381370395443356150942543468845140677443942817832816790293644915593017442106478272819037472884123103889047124034801427554645973148118417585347502681253315711793973769271200342976641262011612405367047706782523442936430666768650264193881610504916330545280723155847377178116266364697771642485325666559542341672488503337035019254803870984460765835882311163808765770857372978561014156897664624215708084156113333204602653732944110846586670591823665926519004206411705168844023287450904091598750404815808644330622801600021199750296397191017003335337609770069641617050486500943338497512900608103371944489115238546338583488974292626139196368292627389159001777356095813074711107177487705246887248297142689541840222465089866369653209021560005642671436176033907628024669995962080024243871013145722403944838574985619464855969518753949933827590957343033163835317082693118380852331289130998018220810980991062040156919294148625066169970670208389865289405988309829300572071950575715791767047111700609705200011013536306435024939941049030581789649710426351853639038887598943323128603099776191660555179681778001416336805242213964666247754364954678032951114143183871629404796887754092331583469807704028592116545475082688004358939665280960193242809254101739630344276857440782820585945571659448803714998112715012374715162995990216543023562040554030896965447479133748172409511625393991256764825795220616721007230886790980993342043618367175805875581858645469684891338455964305408034291438188415893943943946905919643581789014208016593091205887931843942562854109427290935605336425479190693282483913270965956585501971578094549857200118216397924548789098581084835083529191580419059428800951087139606777964891761333627577030951661407451021161117414348762507485798180903003082607289174004066511347335461502298000462621837956707026769110088701146725327663295606396478097043731153499212910814423614370305093621489540603035057077648316142572912117385943085193507192579241525242618179375102296459169491617494727523837205698748171670923872917891333186172217822076791635048482074432531055101564018230030567284123928745661162049748010392990151840551569416604756388789997178671585332580164981799665915368579563291357186203549261038586297374279357458752172718188097883436061499611774277642174013571040873634179861779858115446213321856843837399292217733398195865214928459676477794163175273573708196549474489136837565510083621184234882167208695269451723735752869644369643109081262589703385863821250527656724494962402781329280890328526950421623798747942747326341971804143138100779534275535755403817948578719027215799257789309012400594215969823642763654596385741786444482380349763920494600502787891680960743462938817857325247012809420982497187868765374102519459611733438847758407948818393541842596243198359495759223928752926297129740461396675800291495938073133558344777628101393413167431247883615271343892929343661773120338773326776497237870560034281217042968768650226198838931343830891870698272236386477664788369565797392251363083293995388810388225260859802449221395884883492910051702697129477281015890913968578303399585329265169777979286893533563454692296332101285340338268995637384091995134294663454516869634372116081939599135804888733712494976774884279624399440503694368429083153150719247150565425921327115546869602112828754217198527314723620270147780171049442298559181185171163410250118270617699077737713536238051676093951581866827686254661641797034152643577837517841951385702695757861736579749523199946777361434252143545720402525350705949750136641223274205575891554530614202958471002874804651679502661865644409793081807329225746382609260145021800079145678891082233210987277649475794327713058858105614514262690503050175809241417573284501051949520906161296442855521226327712105186470437049844443490841697890321991177162257401156881456240823435389248111974427875609275517188304449788855797231504235596989748425974361082806720456741609394949891301652178011229641469748579940043718449582402645099184503325157254185472671528838911249741200927490890874427119082661686451414944141691270484010546419728504083402439725311088718818947532754734794125120210112904478512122184432110283235660151933502696481967775985113829424335677229354205057880130994037094920559061137885487422816934762578609832311457294530206177388519780175627654869842039933837503149816409385105799362895769886214257116928580886923053738978267519086805424186104832821268289651043954238562755815688625979239982753555937198999192173960073073944778590029232772644245847195469625691231093189084871599284721107786242025958857942032038708845165445163114427791305864876083921650967252184322710925114787431223257166485864352698321832410149032159920307680468121096722188081020169519905203109253166733553935082942091479931721768533451070754948752421511489818384578684416762227227256896159404912723530822370463126962409224321289388792727496476787694479496782272171936636096426294861931715625375299720059549994937542503572521869948756461950033797105927928896352304274530342809054682158835283779589136034419982092379612632445052661191091209602246038155716379433196810384577889713746932929694092315343573495053198320069829323396713574665361200288085907505327085575878092746317786941675567713017722348101955307489017306363358558921541023198013882146264064873155264223416153786243853261625415260224712033361644492861918957113762564188274193040548595347786802719102557448851951016688103879575493358880530645095797066519709980398299365795050621153916689080497138187309600794505633838171727235377823631515443933314093444464735913100137371302744923807275708086269628342578075908269494610621137458160726399856006723346021148025705614551666475473056020364176601032124806202364283051924555691762231676322095950701176271992547229028713923379887396022508915163956312877345266531622723399639635697933742899304066371425842351077985533282897829530696558296412546502627616973156066274949789141626653941456928807459481463936937448367449259794377268951880849927970473308720695884700959179540355251269142230945603712243354635077359971148780984361341387657270132252428608779543725152709234364215874967018563125665193836320528691839249436658489346460749408387280793641052638352910447514771300649287939292789034617072496200615567469574770664349373030404712189907084014101819545058328652343790853468580906538686466059641301364921472320047939223206203302135596972250064473200143950320212894587907367036190836042284987502023786197716989118105529147497373207611227753322685803920235002880188611641887389988961105862820052900826488526092013689064970584556003928255214221451207734323507894563724217467703377790410343119253569376798616422442575189245750195172867124044011166512204648418073229537254437136262749515899124595090195452987517151356557053828297436436154828679081770172831649388026162342701365124107145555848577861661088699956282836948396833399744929070533365982498029388852049709371514527279553232447194589736057091255509295542051704351134139577284306689687677325054244774516187507362454752203921719496790075016053992046688513469699074032151336541082650498452765353892247598683346761009160034806404436922203333862760321792622959420299819465202380812877633371511829895883781775340250379800083961245805715281683284959658809144338800303615658246445646704174675552956523340588930914891354229763047768468376162156937754373653996759890304491044425092511551743051062800596739173729215081244567558141956671244340383903135194972045490750632341275019697486231005960554680482906540259964548761499300640430361024943920553652866005589511553627950401675291465195110574831051407324734298208855697003179365305337144265432926858957585277372134011192240732879386148232311186415984452407851674440870797575225253368929799778631493292068873227627384760698644802092097273630171632639387453531242716757862319675736357220567197535469648886156168019985667458882963458178532625106451938233874618643703540883362210666838825837770565718717667651097466904232674916694177267960275261895425044104346204282597977534340725865254907961590603975778954867538011520781006928055318853843390660882513237721250707137338764015447390573239643618074830039829219336739668930004435689775892445643990094824688461876723100999735948471265350790831538879981051339680092669149306618292315399419533444342405913389928630864111284558076937228804271532702257860707025616735951575623777316707017381771690187676104429332986926842751251422800688563620536871172689952529111102182043240130860722703532018501028201759239490501758548173172820680816663943865287083963020329949679919099243196731083524154186832886694382124627639334663808348997914943788094931307714838648632207736162129899733918472997519694349423366889890470234748216168293677215769152512056313000523913712480239336330700788997517776010842012890108990292701692603936319993057891183210443881743530376035027268189585165386013590145404880834431656328249282773791513329812502060751100711208518530026226228122327532486546108529959197186743491659325848653506914308105948258371122314467771933007850964418226578917069280295585541962161695630690955288272460967118267476407227580563112161725379631622425730251595968203030105504048732051314827580616890620690962294895417517784842887753273139757789601125736371314724010785054021511484252185008060549306600897798185015636634227859954652335373283959268633715349456090510709264964057734693374208618514381944713985885852240838219977801510614136443876910898019764799432985381909587507812915455785625868967882122786290633616543601441744335990489906978950454717462107107827509770716025220552955732997909995824459482874839155053020500794896302926585716849383121241881054059360171589017278492579501149659197306588327133334455314244357179129240284573368340050210754517889007326528896668849072739368153366757635850608327677920860150411004244033960897228225629849232736423586618039968682224553624358565505252246364433046266490753711759530759780166589603486684974660487542430483616822316410757983619263550071941756631101213319646938610732299554894160391138495043523466757707153637740189822401757255341851111684957667626603999392065203039589925830304583805231814061456058065049441656048216686538587514750149293170922598466367712258470711563736639242288711719201735608556498855231968841401422229883589500434300764882982687201156137582726509936636093931746350350433654570120732372440240943140161139826435336124438113047735508073145499090180296273906988730854853953680741219285069478527308278736542204687734347605401982501320615135822125616591355399762546346541463660594633501938060093179143715864542868181903319008251667565366040395580469255171479588632132665643213757146776695043031800788787403742559713174193081936750728830523569332919413618108393810182642187280567577019593448117475183338611664535603169509444839389734407282309719686875383048314898240442994567345833329319884583379535650218503896933064158366671789136402931702526236996089086533768465842814383553918168755142173192426083746322484383082367596783304682476955310302428711221826536950710143537860217531534574780413285428728037498932660108153679130126631853469754061370649824459649891195983357570530602052101728887974697781700494573350455847105592553701514308324409393036481893430460905877569195719270729285723645811316061836886360610482404983417699696130758052534814164382571552669271896444090246416542719465622049419298384229613649314917116531743059105496905708848088810163969788629796688572944062018669752944538961963619964923127204914816541513857702472856525782767801011806949449829017307490562518667086354040445995605629339505475490958198204774606089894002593477246553920741232623926451307729590380350884923134246047510530865383907010936466837378863360787129091540211454397336532168284486113268952215062189545969874199760766104861679911723216174919957096770476551736228215537827409910291222155336830436477750832211764585917088963573373333510134499424185744014807110729068894045668225934141695904206309412500275971853779099471625150326966594386255576528621447322889674543816870438890860133038763159469627206208861742328717924005229576499620658517887823308661422756328515021022355519900998200343218072450861742398397498836631180531779091545804224636769776117977519452583603280259687737382549241056940253832399033301709538279510192147419266509878617790578046875594962106083618523138548254028368063950552653027980547308587644537793335962523020358986050723755145024216744108146302712968314504410890349666845541799919595832897244427544180567566608814365152664780030099747902306127860166268994722594083197209187016482216572027337950971271873621690091221710494682733627275631085135400936369753016514810009141650111087824404345911991067032086567914306743782068841357704522474284335624489340856913690460183404231448122097711210855705347860074263543923467159628551220570211249792738345338217693522563722828086918004857359973470081466739558469410346972469482877529155169199857163962903270484938036080471203654134637825260829643585753859717397151898217069165778409675919586188314661754463455305145397572352645001534284103529322493265506427553759367627505602524369102950381324266715227086068786149308769443508025987209933960729768495716833541113468958859725571174614698903624367287315190524181320095310325710859579422491140136471212109571654576512322715896970480652525988612336668851508124928750889080939396668892816353408986168875502176795559197744275529495042138984956556500963234653521076990201908161711194412319905260334853282943678386519083688926153731142199226465762979378443160068706296522846065238689315162108277829913070999670812562335959404434456955282177407589497799368374530321977916423491018845976045457834942583388070815910460759912000823792594324018714027272445035814389998133845880216703985102256246240162388139674503235885487167183249163645559738292265310081402902887603880291951837640260120618197274437812875005212722484141078505496447586565759972572284648701155470544107236073528661747221074504938879922552418119047724338230947752025819389786347682022626202445126633650420998827549140102170046433473895728191089862441301319210719021787653274821779290267294295511108669609326434223894200478821333497784850060584660027301222428038236721987195413486517377812378760992839067076821470785360503583152507285357547800553360627660363862205530631566388689812748795643427654178924163707134582824067635414716506721710206501901426642176780565632994004301061918919920675908679537567042179503842856840094616807278118888325333373052427953527157199992146062542064431165905704486349737984648857841167960739796763698548108102837801170309709501162099185945244793240699917649952507678618461409156760034636059374307958665315949670860961890447274602307748371931452930050783710963941411205958307966792578691476085162454292525587039270075667174276666420624187920621777805415241024279385498207782943997667934123656158422305047145829636419968027861220569444790644089289637755153195361761942373244105025290393004143976930914832235544969848982413802717706124082233021359505867316417716787313623046226966772538757093307490446705119281995310979108951187760553419577402840827895478427247107048029961665893734197154657474736698068473279645470538016643611371065954856736644439740389948143986646353025916027285212604970253073056523508430721081108314183253610811874797391603613420365653533850707689193499366685559386703324242001781566059255052395901426455026180863802059873037350139605133807180686765043970194177976980814116837110610065928648709203617276802538862761788158379623772796834462859339889952687958844529373815837860262143053932361809670622745100266653031334668978883571398489501700406121509675659502018633021285573471465046061938917491580065735551490490372569106671686847487135158115537598897779945095771816594141254173440540583944496342181992611014626126657945932785931017937304777413000700418240452308383311671030046785327551090184928731795478550525739727303184143286574298581041385415932901133226746441823511341782689206925486748236855984391456914429166172259531185790904886631062781487018210648197124018620401786631531391634711317009470683333840928619108697091643953440611585074454495301161682963809937814202265593291190980096615514439917744783659499986541474970574218260567834746447175289561702577119836909171541398831471892976721391331187545162400624593143974381818613336364926404448049906428097778877697933049646588833483832791835407358362020431361807141368709333289993663817337551499603491144655800230494811436005273643067281376151351526765325062607532529586965029504610940850768570089414093318296588012438402269542047435892739153186281232160487953181759446494156483826546250319971437319153948931917672254423858571559744620850463105605050204319216884079697640125833750295755012328682036745458641712313108549476370325867877279629995006346055950664278975333122126929117995973629593905479747271843922271018869213203711965702599865033370960716737171070702515840063067307995124625361610016434698338318072478621191049603965334630594814274118862977450895721991581103632884957172527921452215027081039728917052645250990766849803134178798723031065787409035182199429799896002499537098344018748168834761111269160306316223626457480608050146249993650511868900934615766434295324334841362906478948996348103345481969050571234937083524406812949196526425865107545434636073825325582406172847088321749392051478514848933489585529959954858566191414858583925700621722918432455936487425068205994799397561287693660872769145779020048544302468591064060015488936659783062006188519448942211726277432715006824718290747374749477870446652640912391000828052911789821275637039869361406771918623036021562773832906169772962984202364576196809805140778704411997340608719637574019662856783003233651929051769445538984002959525788663767025098486343491722810870978312726963086042692397555857926066705930113784696956048362289785719121998598048624427866854180238778672606676488894755938541844203030776255428870884072858776634447144981363550879852396819426963481320681997012874662775464683742011687441783584595595079715659800915984850986854236996534240620197055820394234761786042022914124803398315614563996850678909234452239464718420660236811845178398663275093646109460549391850087340969558220125066624637112837304634907193093041278769319603135661693726610194922503495239213854858498842907921022247979216422410387988543770854061777460601928609821570492997222499380998631513284586059840903635590807194013567385639668970132398080632525323345339829556983206590219045282973628607748094426887874627203619933044142028550211974610770251083048125885960320836473218513183126372682203677427474389355808346313665987894251186766634363957287312708676413096090048424977042829558419376942852527376813866107308364875216135714307736136387926322611964973455371215390574782258477749000023827630239863419663408608969911595621262472475730268275921718191605066456242596924536304304098185445727133268113026347207208750238803390194085480620708077505575143109624401872168669571803841027766182271160601345513402328631187337500570561067767823776163962609394059441027129102737762664277129379792450096319703086969718240969514602926182040687039386139205024657088787133333239561955915048774438483468080311637923847088323842419406921501220042507375365226958333548184712414975979360863560813400715545945437990696557055788262916629070506874935307948097698296948492339914120327428872421821319437673721969605777265331745556177980643799576436339253244392950874341668261880972244953551676057199222651046986951593446280017614083604956357355570876207417791348784630111488133359678892283545692681087936802080929217556434792461258516304610072404350638456205607808134035842139037862023064015969907186054176207888764884194688857876695814402512784450365415292385865720432665931842667497628028879119780083409643405989153518103235343772388585317634303844902760044436351477657382264779317485924148521934246533122683739614637535859304235407570799949773787058151458942612554486952511834535760977692324338870011429994309030494025020316703331624137526932439455903915186008236967027118787415374764420994508352376091482936789445672762210509096289952091110305232710039831649748604031027541018731193296842794999757703257459366238553174430762298107486700000682200565873642930304144325606803816515096715856667237843586518877153389910690410510335205466777752934031546456094537977963125056866250768670958173714739094631103057000500574274269826261674923701866629115897251378917907584708978828958202113361200724226281099025004175116642566043781078022902980930906302297317471559984581711572075278613730175432237450476060131085434788451520135904746576861449850063468580175524103762801970964167939531540930092968442464234322133305795025556435506325632823068530695582862175134321502827056677749662776868090378764302807129078074877363660683459281802451960047245099324363759793237380638404107976834888332352931253564196597079724750648735383589855631270214233357613749666581656873442476091992797824252388909376302310266396438937755501004694848588832071227471324242764847568929083820396986034085054518559809560438426145188956462354064046323979657845451793774522256206379444967420537082100842962724418077311925965382424665079460828584590165498687095009882905312054812292129147493166242029677423328719158679008891024005651032040209475565144332112550624593924653378943647238084244084083815826590733613469636584299964646304776287743479732330940207353563114397503956092038110933268500133030628726438952817081278297175394532229494607888355534899561076982811346619906767744728098331526102833281306780541257749543991208358283583732350788575232465607304467106464384168677225526245086761620224461730891962684508243848941657835705222370090867645883874303131787271754875065680522212639585987894094178853134337000382856323785930361484353579919340270806514445657913781992400092140927766137159418296206920231157531762508581097124388761344004905456063983206189234027275425924202440511986875650136475439656569568701781420203970444699985176331284775762811967516750848317843248233528730472919924838734279674715627548670076374501040187585741912535335727848238560207009609776646462065135973517787819168285371677483995453743415958003486509807637456619830475507961165152379753213401755311052138444377269123316859915615424074079667881856071608995842550409554686782931540185163812731223558709381101598728749572666659260089617482823657965618076910583641413508423698871066022024783143608141174223846293819836522552174053921722412239055089514390172957062800452361324236819565707933748511830673156866477232412388240876755443352521087562015812334671836621969269945805414107066726400768440798125046196047465257766189290942075091319356876438844451285903275918094309480073377507168663603839430401590348937988803569674648386868016094227580261511452659401636432606024458205260335925306128856474579254066239505614751887164308056890492675574819835976658938726482255256019973757802557684469310886116890817899503376524569917365586849916822975041671692575943901803387030223962893604404733407298147475038134445916034956453052598236595874096035601934877070097721578998954176550312055761560865802338096823985278974233146461690778118129135103426522553981359973335907309577701092543504885858749812836680871723460745129848351715572786234993182324457949346237617989440510177601860311725585794881191913551237139001247119086987326999686791239087788005900205672444942718402434044154561877327153897029271420553980717413055214167764382805443513389244240541493564282756894271401947063824060746270568318431566433242501543724351560366187749946101852662851296609308551790423093368707740114327405731308553415136713451915558630036840161085050609314079816475476705831679489783918863943293985390044852115991907938517080816086446865384792365791141010981180319678227961161367427781292280146605272234040306395119844903849587926962204655941613589603647761277507721581652567880092767953545205601800761735840674996478527297376961568430247965026569158313350950288201377844765380646916410514444098858300932215659468123568428009858350689660365353205388653969568935351906361946410750701120515047723250558451421850083964517005592371164444213012449217017635032137414546555492611772197640066510656627629807432161785693781207963469580528414530848194279887213784153706244451374605877324648554892169918693083714260243313973708627531891567627214397173928411419324247971365700031858360643773987589664730630277019451188561812370711398060488214688667829979948123192375557415265416347548679584204743542944700287700357901473962457448902870622295410381973379295483889586841918412866616074768205717615557867417771664494833705439313665900551798592821272365006297445151160234571355707340770907676095387158753514129813351816310100266933003186158672958421053612804806255491451591625720595577977918535852636233570613357767951453068537772981948402452427881620179511673489406714595522140028740862382188542603730652575264712865494920424609406345426629174496506886337333958979610443620910991180305936198354980439269628379371006789850766984774807445838539113543461738222517877173731129028412272527497673164441669596275805892506630745767418840077798175735725333179047617456127573402021058144073339150634515709095640502322875035796404459779567368418398855334786403701793255907966536020334926203546348664607083080027010071436432124105255919689268562725190933185457458680450228934580361419715558426202782405450347117923186320436411008465655549377049780292896814040694907219620144813742303855754514949062723753412725288489819273129841795978723868646242366502654138688752919208019074621451415633001871488205816824868935583194635467301114267170434099316304444357866779895525943149847707385501541661972116916464583184817726517972544734090788659679404120528028036424857015164369273525643993982846227856056122958732115432428295647579265326964711790693621667802794432162872329626771177302502973317894687013627949550428202221168941060573598155053680558579235836014850249621243186497190173834557087616378581904415656878451693718517130262817111495035192923980521707909624695216389246025745574454054577370509129469894561581826094263845031387310061951032470341586989957824868525732045991392905202932275525956251663075123589410446891094412009211784311206990801312342916397441862210177219223690935144018088601573313882116669355995264092532616760461386091305232800420522097822717722484879503224794873310989705579612209489832010629632870390780585871023251880076234318356006130998508945913155914222475390413730427719490032734266243040092503832545591111534909625578544236531732184993770732229993977796681873653067209157412947496751500366306203823066758757802686414444232859252687773805669550403971267305019131914010322720639299583169814010485864729462401898536384694613244997190576359931058995032946652600419195871309232624288477084487755099695880806716977125934277415910206325890312459792112092555938103261028947740954286564164849307460646014685377290028941679363390347158860288621331364212138222332473008505036162860746808122755555962791310401266513109937182479003589718931729594193613458734162433457691409194986246186614657422283663149465122169431962422944646261112887009822398089078986431174602686045447418255586557712217335361688165733518489608414093806695465213818970501699527835635018857676345227994136629165355281591347027176602833714035198982055933071922545953100024929043253627783750613673491383556946895338243884234899612183247346107264945276566479843624585642699253675796128485886116327487463321759494752050110668811803584619926215719513725781465441467261092974648898000259584371586901538712431463496724034134614584621373902182395331747929906262272054108757986418141015472835311294376100208205793227044856889458995312597703722360933916918323377012747788238666412711133914867619376593115438945659572647114974435283032403532148891488210186506213031158221356154377480881940518785053410758054400218449399630279326246415969633255859711407543389251708655691070288751091225893424908879209011248987202716236169041326528093592101915810649238790638141397439914772105305394826879797392896853687869864269157831637507332191915008317244053009479296910105449400246270256818122595598948653678284489975116825982396987069696662503630275917201317546734635171321345837387161251964538321592384059947801430603633055322980436057051718223043029848223843041444886699219398707784505173512433304352361022268217621103365744635736833776009812623902544563263546380291918028993596192863388471499275643612143341391119359798861451014371426577388372563550566268171446557951058783877509349955349969156602726033051848783273218737236908725941922771006392737204246298110328233932918374441533608451510794141705018965005718155860468112377069606820887971582396220330499410311506190745699768762815198398319799031188618102497282873282778423723196005946576250247524722836653310775538110706701505280224302243141375802665456262618627735736842304411294912770460238241787081842174067861620593145291214818898996148948128643309969975202897184347176428818514373226870824783157665538334817184363404089748666613682984770935989439215615254685523666821810843588868341921962461303018059385367061737303886079404613687946005450469546839108769103800570683123893674782049186081836588851730751347500001338481288022205789450510409523897070625304083800281105500376184176700835518985061505412486059624247803036926290770569823347139879225404159758097939299362344875640051483341654928174940635708777846575130260066639335933983463441477055042527666405193564364347545002201927083958699373972128038335906018813695892083303349734978335658518285007103666721554611782715823613470714620578701796736281756324950455426686994016157857997579064633090789841988560897416083176933814047562498519203840847452719224979862637692986268853948443504195811030468842500975552298839663009846438172613061257488149286131890873781135459452170721997318993456640599359601871173273658563882386326448307127470543014000087426155414528873028630552280863635427638236550868360172745230814748024362661165625366591630372693011915556449364658666843238736105879628094480017157691302021941499383412043130941743488752442504631445911589113455022465182618388820212124135833327705509359404414595841621712523522331077604053664996806157585604814969904450927369516109523010617198990252979574526946389912714105979034716279953571890828885647966137119914017581121325809333524882395544797791971163369503209646443265121662626423748132520879031335709356799768771265563670092394836434496713238311956206317369032888682440382540634258426546591543102777721059883726891657859405031046217058353268081804391509065161175388303044337526802967400719054989857679401681528168526127510782540597345518155736539483638855748153550265517094431143751554855679876268275388278122208929068323682949575689153441720909075289792157679165752217699117057314799662491386367327860536264901329457322066949837841528257708229233885324965993304199612380918229940328726201388594307937485343583214184127364500625007993131046893029890321444489086780414312967116770202239053935376226768015391894859088512377061831858881509715071002940255251084372016715470483247588375080940517608169015542753011821810880250299580077508608706971458558521583668062577692298977888598663979330660266564277735268566046437935086301171603900603005344576330211946820575751052260594161905510921491633381258747571827646733854211708900753994707500747923462003390256489857243828134659973723183173075472221338587677876231011156914982005162570133690050213822134176492669521807407340902938281410002440399569030700959275293947790705902888531868528972508938397166185423414448789206287374501671165813315767922022099227869838491261400660602672114618648266211654931077960791471138678321524355267629744980478048876588217488089081351106879212863872793428508106305416525511087299042336007676987963227840311124619685999989856897588288195496049171732877557462004728487243793034842942820965679277803881419659672645430299542334034675452301739117525570332306456074947709638460765250196983155638022767962236073782972167449858429477498196691179526648706592360861992429449487253028752375766605297137606673255824228804565847357856483963482937309210922448589393747759448692517391524565986609409970574713193514725951256501036892389114766649766949804236458099224839647761288993778272456404779226751566072691294406967809848456705647594188316768498822266544218880847065190666487933648565968527750721322947555157116542340082550904146047255001414663183485073362012751445903520844382794760433615959884129441872188673272650182337269126399568502844118589226205048068724605044449586520423451364770124243021968881837506351199990920368208683447734075455830280614585330397612958032451707100830818993809081762573195302512403947821249433930543638076637658366965348430164382187638287580821128040711886096478939977242932593859642429328503108616456523950037617930682950985130707547389278058640957604594773922471690482086039859517148728042004889330421215192469882408983314880660418146599992664954879695584370885143218115126502300234005785708806270577826060654847905782175246039069948982401620572720114985080409817487846259087283324804437535206018550182546802043685728836310509795365762640640637496715631554879446210174713023572431043524149049540854579362544518475477758815185694486342145020743633725535396128536784122195795287828452158720894870735681147146241592018284212357038799456196357408729583781032219541570949368047743208779492595729252617304540723110479640722593436407966951164548070684153960488215173387630915150607006759175051314095632408000298830950683664398640258130151353215741028113863629016949738540018175991078160887103599259295038572068509296329572289614401798996332232366480737783463884549802266840595042400562411051252443378133204998150512839246300888511528473766931248568858533857302120152335859989731226953635416562090382714284840385495342581468092191684133709165326674420070317023273038301421365750962659303062337476177805618361594300386929469837484090609199052523002093555460745729688413887135105148535661767187279959612117761210929297456293838697062936092958570670834932460897245071696429496628793221319451367615805667398886212370999302850066786813592959936759014997232985201306099815437489454541200976592457147897622497465862667614993112322321571122855427158931360193785917113309549706284749071569035872908535146204359354795855246462753904279621049965011332403651165874315625802607820546906914286000442482083122314067261717990935660642701184172402423691506172625183998346298185170858086711562360497891392261707726199366191770671417393092800823204649088315477601836331031918008863839888027705175445010749083682991379508000080843519888768079611324262417906436692271458843147296639404431323660409575301814996863960596246806376196139493884265361393903979592324485372595559354434730936846246442497290467494774097080589385419446463381573219103280257182277146540657819500137938446724035789250401291081369643600690228098238074613431910085596653810546220768928180649818557297243448324114447972738118505976580574646080855226378196882022905504147398952871660515284165015700960579932044433940966187840174021391766885327552014840779739772146460602409996048086530201507899602868649309822017965453164584580199075256179007478375998092507262678707374607096244708897726996594974160334776710347288626437938987277128411925722761148340897108152744609347998494390477990198357532895222408890682750284227680609758457591522872134337428356739128407247930770760201920204292620666828051494816975911226490105683958659371020195528579873928461956935970708104394499484609123319272171125049967592334226568202110191208710867472202728387141999324136931672108306189156108862596822877444623599689333386259039737877190889057976783457600546309973032944691573106464310424677847096545931944710299715683737009933212714469164204923798383442289708885204441650151246320359472358342619587520032801572186546737366543211049181628123791577512367241135469325912119482351468461107890161448151222429019680921234292627569204517400099944703236292895596400483820923259820368808632794247124017442539832713368432584819273299881767138572404494234831924904463466347333134823353797393034110446015509717890019376960371672515646664508865400579653952686266357719436299630748056580016703959236254063419949542628415112480098990606223632744417661915765175551950401720701739410630388815412354049068089416041082130850299954032245104244665912686007186929105386646647344224194919979289639457712831063817177707731152756513216946965608366868016671116105870958900207492657969949782820402643900525580860251823256714924426361786466858115364879467974596993732316459285548847269520269802597349908894344735715981074393274264912784363309162745509610650672624380883157999135120170092501952230218499766866118139282836936488867387832126344552260011471062748254699529511075980317178446523802327627768728748816571572309478518789887264866098255074600737029163623838536196541496529866008936251248028956114032028910426906444001936197781726466655732248096760216972793044440223409177738316893364646450993222101478936722493724776795432826264018220843115155763078291862987619124499867944014300325934096022106046572456242570611574291464450224930009825266506217706231288814212621829948051957760212882033457436747554273641163873102869989270728917616784601893615637878347938058175057247184935474237826756823061942946112365884258851798405470134197724145813122730633646731670571424610521610278815463835188742606683426941208699163293169986692838436572737048881779463029370874007803113794111260221890329857409920805840673084170164169911125082573440658999598835007440852836198587763186820237167378994339926051328351338104633517639941494009931263476189097451895979865396529411378501712904171354328269066681927185454830223218297463229734800647802558420025776838759485216770236451829862684710110695474757170652234254375283316530593212944352652168808073259684873914678692654543940222177202761267222609128327837559833670344302964991919832123852512035425380069794432850115843220498013647153319550817366807794517460566213099681938922807026684228915376563549201718018816551874620462344200826599092755368555160763660604151312512261210093784135957100859038214165745425127704150991317229477991469625551740641963042256326378726014869938073673992285608282178726702208418290778801600615532978885413316577067781507907502543374552987131351052528587467179711795758893445488838095995090813672591337139909691053710418784003652749449193257487615335951314484027532532287732395101859346037401551385328013094704369319047908480964886844656507736137141691060374068221051280583598701567771709612775852931589817137989252892336801339880782491009322916616215187724353458186313014191607205196472082819487121875470646025089485985389748875603840785684232007260923015644257898566137513728995191541757475463830088859424111403978505660620470566141796828737730268675443625575980823649521773146102987113844332941247406714549108676676594409738147919228025855815351265011901606070263467028375914149565766579931960910255794210550758089670073630217551945340701034456246519092754470460923115262759503189992576862781180980895740860906734405211721071660175075521247539984037659398036998286469704842586225620816075092274850487483122483867462695794521906927501124493762371684432833425396780475964172894110064997073770131605296416662400699654152921085390345641064547940537631254128573383394768927615049666796602657633267485961659318822921625926254103252642999788358193045038250048967530317009002252483033479770165511071053267210285853576521937795474355009468165803070285309839801152272272251329299253260519191224187185979543523078865998722995569770845366305311490191209966204014765024482435523749657239692697576437811311525813223225496126021497359432319095708790686367497737174477832516453179419582793566535920003132746679730111976573126193412420487517206218291920619622203919268564105131036769623986051187759031990968572234380575361180806136625522454841381765026957458157013170742576855677832976519358261454767871751888390946945861155418462943174858985072508672594201187915857676921101802186545569089754609101442947398000150792700019937496584704556218541372846210382179634583989685609829353636441828177835542608726256627686511883710449851814793619593831048987314137021524648786206329739341478145863324505587883409638627260478997886912253339659895962426452936019930886015498905510065176874312385349584397669129698724639850572020136576197097166877969683576753843261595410068744033797463558982442445826198854473434270928133088321110990044220108504495384673556458629179986155325437749109017801467227520045520201569261976383254578592547230995203608216103159452575726022255337676508561755823153340356607128980770754609343479014202178279297417000068222478802260823360834091166310259509273616544401801208598761185013906268916657381116380444526149804114814465467424642119759443547030084493690974922212635369125568117804851703895835076408409371425305533199424194618957678159980489820450562438665648539560544118177180213170460181534897593093056791509731690501713504674626208621062722023473451503355588378984924487153592407245223545728439355339678323188986792219357287853708576995644218264050233858367702879277415202141652834259181633306485947761366436746143842871720487401867323954882994119440249155076751410821459570960000793833989606962127051946723121320005001143697408487013758453658452029569024218376313274996203255136394788763682850911493964445566619002468349642704390894133026538401045048155303534549938791813616214640088637952683470147681446526375172965751641474724704513834990491877223691991780610681231789935835301006998496814696325727199176284241646185588398304215420957644927068009519201490943999681282033058267417223984983113596047550983011443701533778313150545372834597424399008400299946614107262707031032719184793514276044761269916906673018855587745897110967717002186410058144582319189043941998318504455444943585182900653318743654377626959795468684312548280268250718642936276751767451005818406091389710324000650312804773918810507587483718324721979808750759170835162063291257160298829616728637876931412088602184679028321812084359917126399000180179828079596420537057233960010719403843414091732154234580094301664672003289175195382144971026169927598613225689061279931838324644082747293979223924428185762353844682192117378782089961137777248098455170713868953639645627324486199937231936706274831941699597339134571715433171987454477123922124853646544999979514751448698178128506828578303921878676114434265354295960496224817124055292058118685810078311427999527992069392407551466081910799822288910235978786371428816511994587028467358358575583027996865754944305927381740245778051581406357608076338623820165242886291012420205992308767052354566097644510000586095891682593632125266080363481417923874518968408237628310833510981164360085286597051564807183841050142885941582079412132728248514597185321189388081123179765035671111161178427426614467470922365850873452378557438170587972177728503540862483426990379032140233950229620158283244411424123352271181693648685405294240830275302008894197636715607834710767996901791367347590616491431056620758144165794574626363297496477155360812874058644486592903929301070344778869555855550031239748298483987031012623552785270097890772324341164287519677186762423351323442484036701685992952874400429444743378516594317442076468104536267814791744398369399894215696262392704912710956246507009953024029995770021766566243959448945901717265966176963454020038675041139528413402534155993811880073998063123271426779254584449434610453766912977669757482417145672527279463006094718887306857859576430773381282656974117285305406755629047576859597811911602975284704529445553735701461828155915201925326458335507358487028706481475727164952787726488411246624175382177547343835933928220111464846004965471330354611543574820248642544802353085226351673855004866080236344419469229776878831267800086090529234388193618217276225063527038383106495827882695417992378318934477496218770099563515651288542215148458052674838033284484326004190413800881223434295595692247314250654478123058623773977915639670819475891289649874155266395256384806104512497679736879338477957608621243728381007549233849030848198959880285968154367057864033457141358313665032429399567744753949706403598295479024055383798891394181066185671470098740577571847397191390848987224171666589208601219171970849059354068971070186448470389109124617544069717952224010473176178990297656955675916732045710153016177084485051429342672189919879183520719541276448098865637604946203616987478481919978855452306977264545775306489513117874527794855928032170613363370498203147087343964448489197112539502107719575503339849698897234641577669399233079338922818380325935804066828205859220131750000593064400662198248846901458115270242907992086452661606718855233758433131378755209899184788823047016799439366951016453788769862412097112895087855150286588349556816949176592649778629428421819334691642518523613052982361348736809782388223415005823909497398354527154227974710742186098705452354148167132227775058013781105851617472908638299480663449254869633764472457747419860385961938135237559323981084659671359142068503721006044441036954043805207801110545246758491826931066429090066041528172397145270994717230855146861740211539312593499964651278383344164898058745340014116829246954923757880393150206930754888281164775513424595031780882412710660936929594208313188859156555117544556118226158804667271734562397629340841141163239662024338732503208486685981853524840732910059365821565186734085451569147755260960771038950709978060333774851590071107336679955786027318895263202103122613996843462526620324625181039009561025306750815262230883114153390018333075046064878253460441504856636326241573716816318653230194874705063604793863621970872989028117118339235837330630239442314543563265081312556253382489713671260436465566036647278769293237806943930094265579962601625673356329166117203151102785813599411805590644561712665300444848031925585324113256298568244901172813256328483963587709983832480746937075145638546670656750084618652644996133474128499501683381716978562941550774516388812024382826996582813205900948717082354938015999720801570744427043989030456480091812155253617369304696790895788691747784492865940590611970614589724311852992920028803390596767726108437564648999471081405636161741443166640656492931777824356796258195024996504334335470500895315019233322817439152843069642025109807665650275288029496612565520988921045165716779796177225662578796611550041849143249850816976768960732198858454205815174868743075536005526289633530156931881070676454139408773664691877395313889893582943313143607630784398339504374560280429300575331458979404223142668923593648039367704441540539270330998565065634711263060694262955129926010234919525559312117406892474758360062305522968656281597670538076926684662780907380639632752070103016202125074170540842100924699650482793120351578082012650487762232116098180473766222812525158201604433641427653217280714963528238835902935688103721516934560478864036154972740303937476031478521976323155037687820453062015862834754078565094742792958060483717468492270920098014876460441204752021630756400416335618437525750862260030271169637120090444684141119628414900111247910447715637521346707753859612999405932239550408809875497015094000304995570695679364621451559383159672034325302403962827265593200019457570527293002358011816929666575334943412444619911847176484310150697028379461588470395646276501109929377813466980166531983098555205515900468042959131944711504859776212489736259469685812671477107471610893159994272352664997114108370567696006928497538705160730720622125859232023099915283904368120668429566482356630258906486157947463863428767828742337561477869656720251045186016388172678844851682152753162180919716951977207524037145230310902231907973879300851614102006843548917892075077887459474977327073868996300049565847999799920242088170730410259229368113380038252726490021448348281804568096112454468561766643154272009130396997069080937437724446058665130542756875589077923804555290940418918456313936821343621794795280070820433244587559207753964758984321904104230382070178994251107818960192484969559378655229217515478185893973991443490465494486429134318117574505073922678963991579115732984523274961389643393084205231822768109588308322505312293023358028556703306579850356355721999246301235516618118387954826400113849658873334455432369651702586823813283954315311593610049021492887180289866606384849048487873008362817310151703687717986218255854820038006909469178461786111872664697809246856001790925647974107162684608769817835582510606628046861180801203953625717620251235033200589978153512589735010520802527140985245091182330920084450858416798488240818760048367037945727681218866293074083493285849948083966005797277958065197806967067072079434818845048693836676378086812832474435843758123455322939260799442583616084293064730308891793443135867179997418226009716995009761730804422565152776081619096620765589913477341732190859753057388933643867518651678784780665526992940826036916856391493058166139908504821024185978569540323778559787958542632339918125903101819455810507536885979962126241687291831854137790473294860738900391101695778465472135061568717082048773481412626810823442593679526604412126037589257447461310214816544406392598141744492990582496160277642020796767862866631952781246421615185495114369153812299474912338725502067627726159490834737342470151159403163236962626059259647367418718918768516207809470496233089046828180479224390058627763406007351158150296505593689919034841258187728736101106571377329445756507965726755395018212093928606308258112520759921792655566689424589789420040123106377567706499130710415644508239674212499837836200094654860299188212211039696100238251680676511017221463308436123361070834256705842301902424915895166601780688143248108314952916117919004501164896204325226748309322612206050207015037902456150581723155862075836779155774170131181938539853853518128271746457495663752139468901001797537641060476932964319742437594698469724312200815165739032302294943693454803442490725862839326356160150822027210973389430369868824141624410323399250932094498211074337608307233621950434266343536025202508389282334607300924201431370985888016979213870929517997102915625810596648805012151249178977331490606475659111090275428442683247669942906323313252545053386416861843963648486627772599991940805558054343770363340751269041935458308369423484021390363593264516114912015748235020981582667397790296934226566317033767876023685473114358981115461589855044933287655525687496455612931166637381109898010116670054409334475930272797525928797973702937597799805184770482643628699690717487068873686671175299826459971514252808336881591944278743014016161123347218212181350561096617549993357813781894814071163528796434496395322576670505381732274795975851129652109194371946020097260455134204168799875606236686282200514368579224887338653010556713832986070416889688664790205180870487313195077508033784213578309229332183084984071509432181177855246244357812579783101535200994615219651820004452363658184163042421265759728997135392457125233850767079966094587959530565040035882434352844940599292788020424176741621459574365892790398847420532358176974081654995863162242101078470094019742360035001809642280299455119254597608937599355529943127065876505158410455244553536579576818074762456428914501012252528956913553285403752102289576491681199850326308322486213255836723699332905927248582062825303437714692577355149696718817894080748710539033434019316547451136255241489361892278100168592018048657150863669590755896131845089368987049609716304872894944220169855038257887340500960294280740426269214525409595121849847685848639785212445982109738897667209446683871750614118981778148679225493539396860986747851707816781590271434626841734815034390993718855502953506080994038227589756330354524935337264443423531938201821125309002909473063259196781593514008371090697786737934841782157817096478273456055478673535672304976560037491234485308708416629196453824127264900232202270007101168941498419040979625171711880605863093526029066739766838854032695144927141869572404774278114977329979077458891516162502065873874189875027813205350984717694184736074795430756350399448535169026224302730187539270132136006182660616206608487554159901877457266136163158452180069059711732074434614879970591575815008065119560881160876578373425620037841966683797921564184201917725637923219956226861015612182522757681258148466572842333899837444162683760766531889262047593420521345812896253857312595377949682732190634613908109435016494106438708250710358717078496224897246216528137841986595950553531366882274478748324280030654441901455162538518870672698824700237832158121311832721317160615392712053018774111291797485753441441451673486708791318140045378888924011820815672805963045618942204430876727091821971092051117248225334099496139343600378978041912240713754783347188356888770249984633978274426658414590878698263704463799118275116472312396636625603391718175522939484753058530331680212812773917999730351414565248050607844464730857196089537459880092694721602231960928086124978460994704666161686600860558917279430947563132876161847306863105969497470084009831443646948944698780496704796616489875133474257646684891916058046997849066964466226011742138954787761222566444045747031288822500883249588769489023632088727606515408793009804047960523811737877736465309972468586175380294804325183739936118207652670006854661039302839650114906466544031415124810290450086124434190928069862840332628131822947952445042769905281146027910338951255739438273726951420551995396034076929758455154144050842066601252878919117240789350575679894827011099797208950823037244258689559294460571310185373533823810203420495697859862949357051160946557057862281930837725449481746575723127478408545156850561130665101907445323983717464091404974531361735767181851229264126548848178020626566069270332088648425700863885222726070278392504592587355882934418818562384024574251128549683776586999091102261206654721552670994963141862017332058468438388504513951858433408936822087577746116370961464219538311947253688230033043595975943062574605143581643919434640752178862155571439609018971427687650163939316649275409894050365648263849085216135417898472783322085546310445993694792890205791109250064842936102268412083796028643546876807233566684083635447800031959905159294407029122325956330918938536559530758668337819917863997633041617071549322481980329160247557420469566467311014294022487146548888288259602334417541308764561158739195895828316527063964690486054004433542540706911875322169648985718627211567566559081194216389285187807182477885734839171001059246753168027903983389261919203630577095674615796534477431319431928776729349350559181776182850064048916508231163556386843198857953240064523827769002289648130502262277399220038829120374763741457442003334967725895640436281179278122112250418738745066563013949385511784796413803455035323907809715641652652996721307090298553369296146156250332153758251544473210912314979294399596551136772470251011845998006686938031603713681481028756137856723529581635205147752489044607385470861848946909322016886082023643289796733850238155760699230383703551558263006091048340485728289246875649873142749267816657455563584879030110546190393110746442192351595743551766728316958042622998839301105116423291741605973222121186049023069614015081215737999120067367343626909615710453087659099490997369437580534798254140163033313356012574568915518211000703947392727542680434168835918767662177696480190453551456917348769892943080162602451110786703330820700515088594452937826023571017746786066107200389657382874048133040112551272478915810188712753963005495177568326012933689941910827544684089423630606030722687883373788722673771733899393426616959623994020020950784324879848688379901527619724808275072132075738032177720760368181211471569294136967174998279846189613267516142141988886773930503711261120287199212600347518233457195397960084206202222311184595795785270406049091584184006760705864072830059646807707670799649909067171645718725231114077228252704346490811637778697658689624849543160452869586212871551551880079128197287989967243082925466647116237615067908691159604041597457704342743850591084398371031873146144714799737859514017854803457261676378968602553092749092773068868545031906932164199633644640617758473762288511583960172564589325824736679977892756582041436427275373733362641810731108653076051523597903761340690349492133544512129970026382964119721480989466839731055701346226521695907271469776556168826499855257684498866009453718676335891425786756702139097050523752622090456961984651431012788057876193443175719638904712195235911944515082532826151899017128037220588489606504843987355874471201771208855120103109531607951347499863942754637683797623653486710375014478552262650666414435055452075219539514965734110461205980905359723067991953556922086385566746426816332058151751165006396260081841091630592362759539482396639253113484889438976258544664136319031853136603870534487167893202908866680196441651726129787433219974463596369321690267689390517858660486752554214863628301597762520113579170912552684385986260558098171513456615290243825683346161041532882482871598261146737751988301225975824573113413891562900197451501811646630209301353031023570429114002597057104595066614987273801766032059666334128034312043831949872655222908276538622870374822176867723263663442536680867392996305259223745347812784179871709721477868402057709601729462959621328813107131639163271819848843048886449799558073013667574432487963231511909207246289382754530479766589097987810703404011029265484295618945706284378227652941263817477138910023210236101150204752979205453219564730885070287901313416034552184399497945353613691052055157231071289700173822319949192605876221736066891247221914249104345830164401614254959608637339295065465027926029490783312438310334590689123022127560649374476733533148454838916424344139551582919219067967846032156697400260557682724890838290919350310035999517865044044371051958218546699246643868745211921975048455290987383085272055596437703838252582182246883570084318496022287246307008861646661110934494594643237270648959063743819885666509652596085885120358673351352506669325491572600644205670234405147180374768456498390827807338211820993516471543978656344166216280048309997412657339973620242505809945808246599308129748894232951707607995738412273465449270365175688459819909991703708487141699694259917723262127048192549180820570080297967258952629128584545922891020963714593401600651000159909193650892476503290418959889680665003685242409682432143388863718697057378739281682934772244293698450469241200432993758275289889780455464047267807644675669008251213761508763431353820591129640072750434112590137061802907110341099981077877657479536906001071853787612016221573575207026679241309988072710266098162987996270266295681152047525977605211635116979957894542971645274051628474416628368159413101505227012380046894118664042021320493429882268556119651154804768383722214487827853396302686251439066128715891567721896768614773393959856870723669228557827323532405165147499604554914685065438495052100030812876958427040728522160504470891701529383609909371239486886450623058832254061264585752584429482483476280047037967083932179922132091618266161209060272877009785076543972192704443014418511580213150030591553272891688317775161809205533339473942981561037122355640372387584269246219953922719951958267047369595082697434651097678700275793962162259080394354435407793397294555546547549094416387768216658300399886703910202628351679516791415373123828835647247342764528063153739768359288948880736172315073103216590343920461186975674376342066945823347612668069264254459732215840456582954307235958489909652074835553862175513691349139106681960779610090794036054894337957947845450155853695793258250585454502360106229524420762371210783080134246911319383080829291931395289307525271405821478026592077129079904856814457584503968367710656730780867358200485456815299264769684938133216178539818234852771462296358189403421837471942734614736437256631689516747592974308621250818243331636006307083724575365966923171171911686447520148622336349748422158483404448209546411643712806932055408543959102873542196693978871140049058300762827823489516226667367977349557705450328582144001628854254761703396746017295848202277375049056938203718448503670411754816347220146907540789318315959759827934623627848737794270720383335905321777771550525352872701434129346604792924195201141836447648286760190768243578887307843794887782442057654899696086960379063351490356710960614430456176745591854596388289765265084030454128470169698780919564822987276873030495165699949800668280656984401593355357919043251455123210689196019752715531079376393677595523609639156078588475385747138198678417411337874398171877172873244517912781317516969487638222790465412555457451353401232034580341659927095511240108068330338540695885116379554471351753169942745589609010910368011817138485492100269298294142296386161648128549452718580138249501477407617579283995356561882773342471470019485926371329680661325249279935926563293484190874387997554512586656782479541385895291721798429822246506059243672187881689467623419229996890359380508851729645894460059596294486569968310184374815133516270376903029892761164332913135447301610339139278939740546572958897677929016514691391697040672310096663179487510863711819468214912999032500256022515001467143109665213302404993576637691745010059293996236178393926155084716819863633596223715833851953279879308835367258221626666636040737698203611526161031139443634539246708772109803952085706148828870458223237777982631676295238678223912241021889889754046143139069753530654752882792096527779344340355779623729794624890227590631220873241005407245505246786688518587032713836753374847568131414782568751969868313928159913951911453046915531671240099220284632476046289918033065511308946893100663701488344720727313437859977964218698491092059047621857244402337361190103571515329697456216258769095894001324160800598010690195109771182083711202540169819228353101932874582978968694487454256424668395031473433595161544086789111541653289533138421315898857228517788125657312869168402835254189842689948915909112247509900624732646200422928370465899511802337288742594804669236572073436892387446084109526021752927837751077888300696208972155758217378086371164847636622224970380336100846190453451558386189986993285477687946267935011288814093147226320720542018660391524415157861460233794587071312099399261795377134500675209381863492072433324937648101239228293461849439887674591217122461819882605999741881381806345210816768394370592882628803479307799031053638833153247936677804494190508322788380635184861027511864075945527546622267074798652298420986579696932561328185929455334976577137148174780386839349826773616031939656387324265462399722594190402179257851957193013416497191439315774114598852286496733990483322416973175074688055378821107113893694405622826347584069861959338591105551902323114090623727275808820128044123046678695139638510155053826579948706234405587560285398146832243057169764530916002976581797741137083069861251980781854506855279916620763609662509469230797789184226596310446453403450649259705461735970534189124440726830965357515843306637659527661617822178474222614412509068234567070574504193049604738905483921295849204345295297625277833540537473808339165887860188469468386347666840087669295117300925122751302547290561186130613280034007693710232260576704367523803922681865935410133652481417415228719603437610160836136991577366373915274673054871827426179994236797808898722953643915544775763686476675131608267709510178134074737317058936390347629467560581264323243508965988614683323125388056907478509121242904356584613675456301675307646606285029159436185188448537963626374172206112462675630346735810410529014219978065183088940576105148033772950170439641876807087575822412306769404782378011986484799617165205329002619217508953861427192233715797689592800814555173561487288116181129031293424819604254432660059840693923093241793223193820430051872580753899441307921553964604385728705644692013976782936963309252160127504619123320131494503361331568999272651520601270396743101715932946467607063885436406864464079499500726017081838736847413738661679364732227027308345731522805479504687810720861898624472083793515324736420558338440519668086658059657061911612196323220332056389755557483317033359100830055569025573094665382100172367444112178145896053221863160350878710960229924133263022858723946972714679394009162135691748553686267502545220263657799324635200029993140490596435891093418213268711239152289041431084939227330059238159314287840355361946546306110430650233838116573348981912146094332366864980552040528219107066547843344413927612352165952260180097651450945727888542320029350362546616213263884801144370440084807281057131949241186209144571949170553283701255389426638221951131943784349609483684380825313020853672966391520982936361611154871345880705620994090765385387193357151586656886694228927962439815532361887984129314530785358822922488088600493451099585868745853657754756451392884552725120261901362757968924917581378034477850685900314535330394742832069463408020941105098873833870027178735105139210514477896464667830215953258516878690795186160445154811566649875885300633935757717305621927895131820644820130960803632164715268476589947783513563244579939008080369128833325128104972278179439194417375528260783426931276026523525070600849692818802557187251652653767764688845341505166662678411915530526794944921613549440092430744724647297207081031330791602823214045027878851042697884806362078420561726165992773974793627655210604471278802401286241546356561423354866517938775978834703285531502243243543397194954520126950334747896320733057745059982699990243147012240646604719329503720201010482400588691065327807442701417606452066413144003906019894139720088559684101092375421173420110691086040610026441553055666698319858518618110603884865620875157669253061666863140529872829536984715464761952428799706829506706749935625079323015748294685057667116109864123021586575798937960900011206809543935253694208447305397497967725335405433363789376690255126269244389672004205949883851270178688479627706975016311079046791801767199418149298716772311103620978029943949710930445742798817381785106577272913717726383730639073147152754531074524409544808926509662158297203817575752035677816701842699056503480710679616703156254424084134417868420042021021376696402166378314237281759777479479761684736007296117778463486967199244841652174105116789870308372860698502073842754880193037778949733898595548979522620394180382988579349017098759787906299660518579581038892223195796217395677097893092874362912950953836755247758391720354176668706574155556754266746514008429021827321602590308889553651953536317575781601265927182451444248777839186458119849019073831910453871406373864310735585077641871611162613226064919719105231662702995730625434777243846146118214973394424612621439695670141542816606408184868893147511891519709545843420374763353800836893100267309396537086178319435652322067485377675346117255410272624346821507755307034345192864765833651643385430144947712139213255101991383756976305885706614163517981367641895973553055997150356362602450867939688073503017780563331251210800349742952804062705680287775882293126284491067708019804869257563041156052790961239954971986058741741612362895200208283384549782820124630538986049162308203233623848899730423374618580930092657170735167490747223721492241588151369475222848837684251510186147459438819757707963762868118411179492225281818940592728536012404850370757452571353604093665946496898363778535480984480983538225924974010599270610665014959739021824714486306309079338094263401053539761138858621081094000511635479533224683708033760567961623888643800507849463420552042024725290104234743255738616122172576487498206926321245709302131878181973064665283352423722785926714546075824467203699514569529661461927788393898798931540702456582631451444778155314822572607308884946395621288203308438670546796516479952069427966242357896338933430527593854471606531603937226490124621858161137223662091639952751753925557428635124182799668624312389507019471280456837997652516503236937223393857306366474667892587173236589721754773632246980571183096220916431357047648296268626130503437511140773132984464316606317662915301347742829725638779233941755036199821476068780447412989722543928510283942210888688706509766640110621167983856035270838227456689355388984902099552356495638431624202549116528516252141159499241694576798251466481399987836747590510018034595705928574047476650778003583107981904158261764784771514176415252931323812671899034350624141269476433917359715236702617045381213674151503579341837530624580847462145448227804365646519849084947506908809251782856232317201654088260501617483085075099417415074747148276379177726488978524004315206489652145812358644547797516395908665846048312526090493272102987752976750252749873857952295500431672480305604331465171375124651586475973519652648436200970048986858261052823307841352211743710364087094850188634524224933084404146833824076063717358683794376870712044897167678869472708952632355256050333554238335657285414785583396272975541386113109750229922499834747771109086050147279703675660881285585864848173547923401905850892017222346141539670052933422987992592298374260762668491596835791582148678706198665732262312663348440398162598706623576564034859647261902530663750928335082333558250235810264653314763785667613719656779824969484045752967151286180401612436308527624151021552891727372083152773171500805150566577000489366682149933556935194831866202529422064530234723755604742779293163435558964161698679042000083186033564686826696485077183851275508647881303478678248684390172002054948950727184363833925597130956747060587651398065378536038736223236044005370888404385361649037819195987300261593293657500428258989901801974745575082020438471386977785904333172071969592084514305393987531793258650896929947868144620242738029897586285073287413989055129067286646528678320916813230493952313316016208859572916765141373059505434481085576744098942786883608526759432423416798940396191380715468237150678305035138465008243191008398868860012363586484804926327563383131364211415629929202397725483942686079808989810935452944678887066736850525710195914585559829437055367248991694560065766875205292215623644252472172276264655550975355616159400065440331678719175025848999350182351521966334448747198446630209958969006178150149510016377929406735112483182473840601858248246673697204902295983478910486245032361765188078177395019045662601758312329474773324084169620906109042906753910150397725856707201872685619086803212433340276383903625398803645883609838667560155420108032523571228467466450365055629381529923477761769804498627713118065385054240376812282556718972475622487623475257419770331567106438763879589888323486634136624481691867604043764880166457464136051334903679865388805473913329528670402300267240716466605957169703340623254877184648998545704137179555633143958781822757719803874179036107226770501996765349986173141883807422695802874222214042302364712423409595969150508805755236195763052267266790648981357518022890591173283561147911760756109265117543865110240905462708692631342796009053099466763291585772840338039956753142653205227505038739166039564129216951583039713157310043093762320760686835793560721699742051704825834534878765648111068566300202928411721290939380767047162844068277753567812808086718485324976477348641852157869302536300319407825070028710380875187799630862667931232792609714137059673102139627422270176002997200909941663946990803780801144472919716252557373112925901429988652592909879778274864013971522447783781887936419810647727901207712797123109707193091921319469144143832388940990224257730904688307328784373183144784647846946366637557497712619549640935807715885760014596845489025453143085830502974978560107958553256576373828699779156136076984088186979417931337506742990258304997556268765549676689749244858741456270286392486452147888043438089770797406750761365081292595410678886709088805942083914050867744055563654296559939576014809139654960824823884253548577288781298793867871114117155179381967554543907720017452265091591636186782435181076922593036755508927071975970287142912791544848161669170609639338033635049927972306895832627795206753329860706829070198149322368499801506870490297586091979394580530863984002773235706152507685874653641014180898400778549282040251262330988046927052832127885249540903430207617846280968813214911037656535573209522970732459101154751825539771702028918372388222771810338926113805391806221967062590195479993080861411216054495732789763187209438571192955112794905301853232684535034470975263282947957125852773467181737987191442964522418317324491017721661546962183371283055881643797663461179693898719420123553064470859488600282318608970649771933392888666195021097917136783725606940079393230871678218328435500805525781776535762238460533649151352922673182596598747815466718928718918995449620767331172982720030894031252575062843154705321434617673281384221625928866099072781338159899970887515477979670810178413601821735621059606683400528199245232151039946427643719505067309695952380547187712275741224368175803501029879251830478619171265786910237978582316758437735590293942305378621682772267798598238931628163848366690914564367183641395128616019294371172522889783185765862837418397644798625831684717199922691467216413712192193537726724103087679422085578474291564132755104497692461545112221432181097620541644557771778658348189259784801439283822806020201733388531017351712312203317365704780519683338298802342119575905259296767436215063845419779520269574947123128066355906971285610956569628477003740956491453685940569318338677117700165042463757190692790725520287521692727631721378708976799441011988995810721623853367035547130703259485414141307474239957816335608104481971152543662962397535282142485205593133813853429001267596846778577055550588501246286854203113983340809665011338419702095287749944431122190290077940647531264039728225923836706503642713883032443296577030926814744749343632709335542691382595343996100776001267254337823448430426079321732279888737667126297806836444426106922516047992746719927554148591042385326001960713269719350504330179160748302513269772748545024852193342295845807158824142247135542436644439718685215474015093230961128255470791519000336763753377960994369975218944088741445287620935231608894214480983672847370584703686686401937016964866581326517051643201432171364555865768211236088448814183871573685065032656727105516976745840758354070538252815134337192382091735962568589294136803917087163057426878638866465632367346711272107092597543161898121257133064309191456470536730520638060246574344043183153601617303837332256623925580115585042470954016967978098022157106875804902800101589480020427330935900520707969715440051919097784754878047847556931355904637163540347728890708120448228171153264236701307359230978109254934085234167455355610640169459484245399686000713153736912754609450570990348207874799671350131056254971494448351914735048367862539316821351524174128277788403411745948729030152325852790078095016833400795966357154922053178745495315889667788380121424429031172553595408383466610428133601774260616581696407889992414000986136002482572398173059271705160722543519057629543597560874425852492927076507112341101458169146987405323751855854956486541365697249681006123930021699905734628916706772181898061183874558816766063820754032488708744851643072923496218432132706747051466664426431008393657954128934452271021920700099788687604409058563528159110643242015156305017003693882999619762814735459465038904134533227555393008105203427938922548524500208354134602327143436267836259433607246323088737667009793880597855214401072566334171675586063971672715993122849355189702125725316417161364028833291505060816310042631123464076794991333360253034400855709041178540563508829741960507274822041897029645864376487519939200200284553773416712413476096514165747520865231223489078005216768918681702811935419227345283977641793343719725965880280170691768732081109656326098765222053940342905653971483745925336016290639904934187004579736260986943766566140889888677953388464424049093140526304883064647386259023662325028657317977629376949066325213917212482669635478209855633690277338152434603884294499391298641149463734416507569396387263889402807198060805875289508856864467111919735852189652596107833887577511633311874279515546821398098035472318268507741354144238899201344458136243476894007808883371211008615011996176013429368597589574715502601900908528628436868492292933247222049304731063642427906701172418551476319743150567801171265926268130113923801356026259276090048956661691925515451834260395838316286929890731626982117680879652569256606227248136204322963713883159014147443632622775205150905120147360500747024942823566142239927531896342887787158578503514620155807311233078784096707769228054206110112227096506798289644493176293933572276185766800002241824296988532826725290996885554110057764934404477315967723549771896688207321682832380915085872234594704232680093772069924339113640221932079977322461840196724576280646325404493781147511270908435532255414372482163280302781753483370982118006015021942962253635683498696312134885888406311533608252788980450768403600296559235360120198836631420857324403380889680463072579441736800929153848341406260689439707101548924138987272814484034689832293314382787548481232262313131360190984350478789330390581875125853751824934675271407040134001190024806352901885835782885116111339815428995270311676069733281416074712461945864678051777610371567395751233213638326883356092019264397244881663270807645837239125997674832197690710186644208005069654518233510225983563636984224867548102609532421525354381802224120189722778570070938755231624215698785872932161231805549207832496676308640626338612747021384850155714767549023584487289990071430824396581877082993448150043182747642321791719591719620375196516236488168970553689573450676714173994160838704378281802806548907217204805376990475504762752370929036974109968047994988330418822499973693703279971167556941542339241350848565914243903485309095915443378085420506187009709505778309735277543819948822641376174788088018298069204599654860002647996150416617612076207848688004964065668682943654902531552826474624094191714754482586240278608238173622009190378351215245789031363097535148618063900998814241204841217969923750965625991821486717479671144009468958093532071425483007233109982590370336701242372686211733808999415763180546603012984949135324176234380792435266254594017143616819948912506979186690806973252729628796099222854234700444800811091123829026774025453635576082825280704246270382495901518520689405859038881132209226568430374891179271436934998296174498967952065171574781937693869317043426007994914449410106618758050175597790324729654872919918321703743516088999618704372148490927235836224210832870393943891158962790545410958760814947934772131171106943214615197352649744074363850996361896778564959312984643415984854925434082987645674406983951998613647879439055487822625633928088676828310929970668363606817901152474927110859201912411772855447690430460249229103650720874779231840480359032168941527057541859542262116187350993734035078824744579750268252048088364317852524914779566949694415571144509225912680983230037324052711133406620863954389732011303902319779323591353268836707536101089097019129107108042313504384635601945285613330439643392226425554676203084812174349189956917371395324228849197262137237729999927781849081712770175827374588573945763125031911932759221415582535858036763968421216852030407652429056398660277377945669152273837760591290778711710901256962812552072307218022737277773181110542259070385205384809248314376614705330095463777102960357156550322417610107143616489121734402460878836355601055134190551559338357311713807596609129056294677382601401387741582358008114066544595800286107783651346549365750936390258816685617307192382946905176886462946871523800962147448814575510769314842778553192940973767275872972653439989318635408381351179759093013331941344690217496027879690317604495005619195531486092823191282581073909488021402716582397749192483231343014296933329841647169910553848688195658914282114028603079953649475556036626822085712152744350135869071247167133192913930419530546492263433487608804411112222443852571717894503125263295585106111877244841747748882927114698304059153778343726467689945104147595717902326047881910567735319329129309671941255181618864538317016243240693211343644660923880299108483446566860770564510058347560188480722782539901572948218725138034928839323015569903631410321808597275427507175725620369318657109230551647434014162911739433788962269561026412252633274195763490902207544808750822438575307373419217548631647806715674409762148849146656815709243811474872098735216195661195594436774001136858037451713465545131683457092898579143678879642971858507458384241961610363632369871961673836897203364687698351481626918856143576399961683670038346002233394894947099043665418135423888970212071983599961192179025480190678722269951563153804454681218154951276337783521522213997936011526879404737430481765225422485461093050020872898359575436391734819791492502976498318605121925380403692173087461028008560557049147265795798806257226441880212110005454923744306446241316425735042620172041169242754549883790645572080514169542341708934861534136471938938517881127896769647693647760888969804361487661641387020160260939630704206382637123639777219371463073870196600522669574345031729524071859945069071497070444549498504095355369665323426258034034895433932286793262777181120261396088903610103035374656938526902884104218225377349192734372963867001542205494277831309814825676959022433050625755215807101882896191106454618441762585334784946379755672480128562604921373097899513007085900644022554567724942205898759748318827447354546499874666551877659461967548526924644072870096259637074324080608839263304802364368320629755911579759346763603568859312698815340234386121280043081494364455392885495248108830347350706159286596471564400764704618086449282502831030911704571836679512914553401427344132363078518067879387817872779006028308645212606974464247874843191787392705797201142282275892117037182135739017481957054428534893899351579895713394751173388722582686905849403414381112675432272293189618717061805725783450457512599400991920086667408165622628758009950566532743763504126065075115777728129456358096924441688707423363937173678057148013205698664221430197319735989561083787789957050261956358099489213019111071647669610507164658773175798678658276336569411620558876151831720013309525112400613124178058928827827882768641628925891224603595682774246550762197973711711171884443867216214627567815445944421451354712711890589693978835969547724544424671001796691812411557692139081244552305815416039972861290606121473909444445092068753130776631629256301558577910810589499811792419518725099141718017125982285562897246797763047951328591354677689229733089909891818407216198869892351402718003618711827065816104140661642312615733352602766822909365073423242253082896128474074878472278796726178662488212410616398283280272938857192363062415276119182390393985669207194433385053347357194093666476159577982107204947713019226170340855413586156367302102045314228565092382405381570289075672136302477912636837984389017417009059763509350290917029526334196121323104660729276410365462755922528876700725197798743601539929228587451019386570654438731845800638771372609390901395234328033250575443146693385147162905069767097374386060058021895662229533522777511959706966532580402590803608561417860898275096360408536317916557782376141270409640548393577738077676985898922482736451713340999478071103168274441558481278312789277872194560587557887215298996589371858200580829789140565690094459936523873082381947946202862676575997965545651127072731424265234615361756635190889163239244655566775618377112857117269319283890262434920309593010154431809852741709788211845976584589492444449525299154300908226185948244652195591008961454129769667161509022762619129009178536441354134198552166796325720707306181062732236454198029837321481083671803299974453621142339479840041931340943505015024509439115968314093147430541305233577270167861230639831192356405940713933069935899616527625193647581560400230588867802809744867514092575028488343001803692467827662846657377246567255421849282119692935206454624800992200312376105392051525707305027214468617515405258163170551231856159523962404156236408956184831832496032833948594935432670429859848885939744250562829131958156585199889194823799052566826541506994121856206191102611284556915400551741449628918473736371306812251196568917057847941216798069127150177136357851588996389837793424316279889212780186976710478190969951894888930296439187275215376858721463711688923303986019841756728052557083153648113327345831902069233375793429699711645964371873686897128557495184379040264748520041515914970321657173965610604624254214433081789609108964437824899354901391471280882020520936269861851664074354882258935097093000968924455678334190819495399749602535457967221640025785572350993265661660045077607639805452264498173273933072258919245293316915016625124182021103739670805751250239697434809369245211114358437669212897967196307618682198040552261028790811480393434019309978618699992426795900971983687011941620260402418976647728275636710882047113579154895715085413264598038568936782436576265486369427436832401483571476591492663617779250259769746926515406821358966744209102204083752544334589963867906051864949638766291246448852421387530189956798030437539241849378383444487897397340036974054592278929748261457991357298271009991803729007863259201228532702905182231699888746851477204809940561628702866504694388406000559052171048621305423254859917036188456236843031248326529920022084618348876622135791251947772917843756110408939692632078501262288309601795948846199793557484594997700765934799852120182638880516436091761940178112451866922183182330114898177410473398075114201287605399321750583205430180666617563214095795002355090883949492738909102422714457850975022340491545445237960836207147115896998474154203424994654724444018075180866681900760804525047312316066625338090255918251095723638004351710000746805598696786968090817423769889102789891369439709891315772520451566382334083153096116107757230542569193248115779280997400044845678112984099601514739934240018184102983233557960325550168398757961240770856466208305579818667735312351337715774773279779014360759295277706440565444493406238571587419366993943974111664583268946060579364522184803039979694646747216507633802006678005641451417455974819477393197990688587618962548714503930381466375619772827250816209441665715974518900981232360091229071808554859343557065522200213443721791563108304487416965503543323498398568677174600612076095110483943277235692033657356966795811736283421599583901408390509641969298496696025016274201785152953240927441145059560319664935591666790878882963681736448212963279975630273397660858509756016425017420444594867726544564766624930583140972756260098636128790112441563692772659923397434058125586611489561118620432292671200844630320874338758182119794005563633080947541842385098164703063801933578851663149416240901280976931926439532482281961152296400029641627514518354993609896418726079343386046928286238319246823622035980502269913400567233879894147329160245794571690718761168754456901278862017614510541266256885150378620543652692447982443590764962998169576547219300821062812709297527139217012180877113844942904458356989348539247898613481809535859622645551638457746880938406546490904083072754302929491718680669180929972666671945811933627240215594716217381760828819150601380608733672089966961669492599776947992616969946879672213839916806588176232901698557810652504826605642114598671657217419672922831133709408061492399106717529954904774548625515169789324097311213704060788298316046352918251000018194688741508149282035730280753139834973050235622851513781238976019107075077468347946200762719003354464464356302060127277174682543463135418252527729924330706070335608842507169171614890014632167314874448342776095496397967995755076346503869599806453627745369512492514265302788360567134055770300623215548624762307132869444862777984224574180185717412751945637281847075862982070164415112474996814120543994456802314939748179279045093104148368891939690032366614151645315962719711605494849121199927705710812478914723885904015165820546554518170760492671942298950953006577044721857474369520118354249774716392020723884428730660476894440697208236561686358779697074689155710462122752400787530418206402296109088824642731139254762653418293334858228473026756370291096961831899169479194438015513935290849006097381897778489090551952678749040438981268890884800147698072032614552040205513641349248660871413241081499401012225712214536239230041341858317210896552032175817662662751055217964226804740687908215596324892972377170860829861217264417758969924668026895702659899706602060098719955195006272251923066153731073417571555728803629705799610932095393690085725718803515995904272681073797026628368113902929851467265557333726755982293900725756725553183209818739700366244808536175439785698382114403161928033421268370182285680550378493429942758928095281284304556074716583716104910717299883215898655220218693772247985803291495080303825707334227525425826983633243736293686249331361969696473061728968095660715937852353389428975173755447391297831366220453286333706771222544671336783700099416139364233878788601505588956957889876560029819931072588507167689127815254513280827603685776107859330108008700550996440687107791574452953232697005324898211656184692313641521642904006241214431629262384110887381654845543119370587877914236219315373619930072950254182073087051969027916273695235570333463112522381495028709806787910766387325781192602555665529690242352675323558239108083591880854606388106491298225072482672671108582600853275093959455060915308006709173290612846124661554266806234932485878270128474264074200899045691566575977088661468084714728753937291226434161609830744732815613961787072380291449196237952775338991601224943211242317798709851129330373153321181934252045659726973750632733804692127675125927459314456060642627339598696021792608775456977123683632748386257756150659476964719207385215866753298990850785700223840632067675794057868108622226089612572426143557365952856474713565574998103199854993771702888988327559695836639854911223877111055448244492041878759843388101476429100463981001299978718429479347602629835358630087987314274096356113927845816319272618182528565448949821710495524429682082269888756077205831533963573585824127791331249809191057215143136975346676274983544121595499455008350956501353171876638083722974085155289229669458907495608972216936822200929447280437267009226639531513011486147458439770152721296278063211398076833152439078119706198307424910448551523356772537115426020373471179967373102202304663649282933563242929891027991466738891144655722521524590280609730304325961140013071186254094332916535288071099549076889360391564223125687077519339189555879769111577538144771814393694562277294255984464438531280514576902424520142805547083829685077465890105203799890898246975571421967728726478257665618761528999875352140301549805438749871291365797644105089143157256040819037707773847550567045334971741029897856709597519652543256823925391111925361535931477248562740472206423880016689304432516419100912105532341865016990294116452158415608779404865644469035114394313833901223455019039849171967983551887403981893500030089608532088036976444814158644981289964626336671478130576246379179196426314008583868152718732161331147950797724741667504785161843880216358532101824830577598393225897485681082269638690207852636010511621552425587407062313203621351012714792230183920006471136301335571200817839177521985837514692105472264697488145906807218562695036661294122139223082587241918047392065098657379728779175193016535139575735548506752278824072929682640796123123611309839372213689480338948132917341800098152620763413228644087446040231555078323169737004466738690440025610894683953852769286515264972321473771596630995419956625420419171280560450284843811574024385620602821027208108425578850840325462036998116831137071595605976379085095691956391304918800429395416086604331714900434869434364576506341123218117392784524232149122678801770820091067900926827631049229208824662735155599230595748201484266544412747197873347419655517261785087749623203552053089386347574022887742210385060307969136736730638063198298197907127186837816613291757996161090465948503353368054547123710043817563582618337632876286498821724425032094627379263968043771729287331949764902921651986313636310857866560536755376062110620491812092913618684509758395993548912524203576439714996443566894596211952728043202297389806849902849407484206958157119907048486479053015618643188094883577142386687263861047944641478641054590773019281536557970737253801954131116382179509044161065924712200441931353288433129647975140709413038594372004227127276848174368985352332423034128862571739274904565446838118189702297407198106943738829839242222867236743381047381157542636961388274657768843910814723216808217993671014044018781707031600388874389409683379478179166208987063988582439998424262589668212220178048047214896551070828890086528670492697189872080833977520785407258634251518188717716110623820108108357810171420722349420658242152918557530420834022622832172166331648661139776059894483888763726139170267860965138050221870488386886163599088712643535964949550868152251298646885410592192884292372275249951741014969359537929546760167838916068163373747345727789599881726485826409027547273506131441417838852720155947216423183766461088597000459559767143164057424108212642312694116662062203770829978487725042572696713648122015021723973218948877526484655601566057194320709536956061748994437708884245463962403040191205056897745340765956553437118199581236245126541480160194312957606359580501143568812254620054911414329904230254171018410285105120732749372902294042655392735697222291241774670911425789411078708448782455415601967350065003862369350640034356193057999626178663594404238869376076971209808897749397421121338690433502759088402130656767227666309501879306176945323168186476263327511717866175274751949325288662528999088767868336815831310703362733854266388854821648597390593467565112724301257608109736033024303358210645677273206757694678662453664803798233800177179235325593591672282507285780866875932493206728892507899005636556521522791024876452452632755448807473256512488280194077769069694595153142884904802113629454012190362502853311814478754171844626396800195165950180443882330982314052160863716507269869062603382560869944202671978887665248317342020715361619691719732387379018269264759991743780010520498335135453291990852317812909689130033501232789770266639503784024388380792991835443320325177646691514700865295470804298304677822943232502599379355948467018449638823160494131076926169965832860923892431045912406309496381827583583391282663504503894783006417924321275514479715215305938635492499280021779317175934746655640018863178276294880660673815247913185358193206189057480468983765503607392976908408992624527259677349040598967083027191459905429631107868975895328343716397933884067124922326627263761366212306961793506346853499411055428557895013689897406158638970442001515510883057871170927376371475938513843018746059173003307274713394188476169666466135835948569070935374128149281494817985048426983408395835659913356860187909080054907678910565705024653540888701016481492693037511840321960358104408741396846172481663419833060387903568633540565071442952567794889841571257067708617413245758586451932613742060088239286999637456307351362197433339175329931960635328729220290649028043328977105450273025701059158357231316579828498067559387242977040342599648382621452153095852619628701794737328930701193789680666372788756286455679836180191024084575469405416405519532541707147911262983602925918638748025929789953383726420821757639417551319953379884734630531828821786354164217042185316544274964882748339135940665339177050273546364300416015591354406825531016082244086408929816406201131250212839147490427424422795187189702360632954245571814825100630246031865406292681883767028779954953432475446595630843346657460257953257364351718595147384102913110197125888725032163449509110500551136535761751680602929897923447242571902565920918762420183224830591032035551338246373503628889550855161423660944194775214802618743770541291285699368826193398803164141961149481170969478891589709377234475705249391642728415913673278902973049801173738817122881147283882574261212279625080007032730962990655830292488348159664656732350102253718231095354171031537182459852179788724364493350448796823008499384139260654421523944903031128494346979932728459996811484006043416476891032277415988949546753477748336956025412525737865728023463895221767022372758317714217603177203283340401450483732935092063917160565645063305348973800204146863772313727792332423243792406730486508068794407324335910751778741005286572226535686301692314834404705734140293271159328827962005708936281065123500866683999900510597558467227251501422128744669243611687304807737798747511512001787905760009845413107808550331018066480148714692866748554726421026645397847691484447832280363706503517872065055887671649102083490209694755702002386101181342777784881130276720528962756921840601004489943024783219474689734185923876057145288732035963909152701646546970610358910409497406198275228299761154296994890045557590647008093940335160076058338480042555765023096082644259240181614577094473396246491740038919800061138897641245317567810029841210501648754154299505764460816525239353371970433580457543016059613984992126323217591454524185998208080081627294770486256669370728522013251268854248776337598157554761579292133665801471419797989640075149475618512197453730448934001100805972733648977196430716285699792828575612946617647090350269621654454006145788288396375429943502950337863830215305971715534035560677863407996312367314778918923853578579458317278664742505610765769974776956861972755832512346982919996592278644171629598958462196824046289632856352573291374085170877964132014612206660577047894757776558482788381545388295144936166820757808584662414182834499147823968564103867615392002587030482899990988556226391370403745693517577129304868707838359109479794792385774844361188452478033649701552374447487686702820958454802119639933871860908335853398666887958015661458693686549386716039471191909814779027549252873979483998902676866327444636188835469706892125317424479872119677268761232570266674467695324523932465516323597128830755745099690328864759468746289563987620051296455778765158746979641625647124692502453350469875011327815718268915381158311927990731812615662458428058280404456348731559712296159362165022051315674879775350800254976981253519752795015117397784640105207207956353574537446807777080332582426382807529770224343761223971457438049336265354721782830143281771387047976062696103802339292410530803118106960320562638486258950808176516492606477686004306925750842632395263007332359566046714414753897050380367460024155082573890489498296903568669802801558101714670123952194091738432507006165900987112150678875717613201274360186396158148606937339180468353202276848616379256753597127538342744190077252641382991198272880809405060363332393109835969870530411102852727703422447116470480482739660057902109228456188911481937486466454600149178458645694531116275847860841850670255669485513563037601263387945947865669402298183606277439823983482578467768109123204605871217481247572228724250997365496628666115380482568948580718248605438689408059390526612387431501798188522708752977529254753442405141358364436883381397512811792949370292127123742135158579840543235979118600039081231056095368481897001621538547521202729871112948071455995173189742117568865014643894362029006810698160567133796103864988557737186999037220896834168877905074201550061511164125963315006001452427479801173841937970657881245479039216454330654546417382157976202492417729917416480860580277866066980764205242168848948653883424412340465728931625465351172674081545027930199538520320184540334250219066954847016560094633157351878111196849664540025222224697925370067649885698006284420608314200393615453205034124163630066020598122757782815988309760770482639181154735913329755690790830341609023702979953617611562112023447692208622006907070866553669618512338789944108720575535289603732466244683986593698670393242013284230416945914103681734891945986682789158017391123345558145851912927618294276465689634504501493816379139788896996540157606085091789021269691168260274374374715003801459312740595450782927963300432458897350590117048792356862312106929256708905200873947554893086258815439997604458611819909654068770355766393867906307273745197197736505213061363834038818840081805833142350146706177319192601340525110679613327512891353205879213866420893424202658181015351142051614158188369523704130083748499746547515644644990441176745057237357783075788692252617468828491694288088396162939856581309547994268033577258244691159961130149533274114179019505828467247721697428435487528665851499217767809958396512396223973737148913845767318722955720363666603816287355847817863300697039969770232666963636334875602225448996698901699777450082377513866515017962762840072011948932817617704833580173700443499382320327128442977889913448809833580278422037580703786109985228174009869367113647691810192856196667710866284757187725698528376262501795134359783328583592090991293399416734912919057991470228243908736158227463568732483618855933888967782465599430187764655933930388596018714517364547848544282348485157740481142358929003692141886014986393546986098324379382893924323446156766452790148265090089752996186840829094820346216564580423393344691448862863219123809299290732558759378328378142006716869587345747077672901367449714840829555022808088702738080809334274304657495542353635007296028569239007478001397596921543603255209679777213338303324489173122720300370981883454265096160078100144503661459056342335987023549828792749377335440736855026664916499735825218257660162095287047513020582003517392530069364299529814722342024577669790027635474974922351661992599682335511304370457542880187581754878936692579273385563634716335859985929472078248620461678719524434888939143314579413421187633438467188825251103825284786125714682940343247104272084867666184144258537632253349096759330112486364264977783835287564411254703993702222489668454207687533000866118731725961484106139841557276366214944336497850753989783788412800690799372832157254895648272934729146711058368168887869755864081045801639054644172746528245912828406912114208778533810029686386509573557867892704365312741643356438735336824648349866979267740753924926039673695633476176869172997750986950822401299079555191259808977073593336035693159363284288979125903192113326845655759422041531105426826482297576089927163602718021214391179932476089656290309628958526381441267342518247276442405741694201659244928205999518611968881732832540853895944631727695390631132586613162701501542933694821582160093981332519137067237408281448881419437706621898847799621657775916129650271558279449882614201537666220588036219196323839110161011264534943842741336485944225620836380851509635989823153136118741772307535115310215217007676449022700805179962140456618931820065685943613945691905365777303590314517712710116091053417921011543750759815055211017167346388997140743178296233942105724073904332114856971423883918127478768108061531829324506256303390260408083870872080503165643211315548447836023332849391007268870852858949114866598196230682739071690560861435889030440127024939053370940769310920802432934512144081067724959773947616908936781690367409189286021047698658167978727745138960287874841067097766266970210328771896660751324415604206862708295987807136792171264098430402036522440902639739581352791339140417890619728291604300564404717100924088307306408163438473865299614729684849769887617299416511819981633327750515845058155877501710232481187696421988573422917653577472541597416019671107762217964645831882210395693528713702144781392599003106001738976771945363120375275691880590392452275511229590935327639318349518503028652057229346069297827606618244934108136070365403255490530374215337896523339946442646527137496036735537912352758523584809756964708979596121317849654079716429195895203460349352549955339969850673017741616636961681546666367425286936996383629450503328986982606283918733893174800632170441233872052695759865699941949749067185589895340674092601715589002716988683265442078033597524362639606569495080613680055263039792366734466907764269061557354264186915790326716185585596796461064546061601594612330500915898714542436744952174527756242858493933785475548601962990083356829814550829527612800102413448036357492080836119514451031697010848851647985061231008702094412501730038730090334030241947179361989946960449827850815389666525982243460341209132780965865367875451794786484998040448626236632590718129226434310815653875999034692165530464835483039960473456029322362139333668263398527049009963009098621115441553294036511836268140571554322822877607635354197878919089506381761730066114679468084502090963400048987300087538786907398772258644674444200147193295312623755589823905923621298439462731168127334077319344222198314958400164449922964610684107464625475585993529325202692215552263539883081254877339665924908451296161287497480045394601222087869191506260502487737186157198914264635743253156118412279191613574844151371957818660473020070601644361626505420951042569644928438380403495393543375685868302781717825325344413169484095840222278392115671468720662172481897468549935323091897249102472693546204943664775592048457384910890153488202237805540586563056224085965292566741815285270077801889590293285147599961781635750328963158040316693343652919522588464957837280499917405938893360677912557874488774377245886902612800965741396793909639171569931536395897559409340227937703554856623070881162823417922631785292052393029278520952604765751164168674328276018538789127724747931094988551839488653393256819019332457639438497582255575132905032099569445067597968857420971323695366366467092529991819127580844531289032045187027886519161715215348027307638308505549149520263523627293346923119839333093829214344022717734237251135916133891164019163637313432358404950081405812874701404990566314560805238637807544106923914775733001286132916109050079335741455208351144775993096963399544361722227881204713546461872041950973054084278458907052701275628871611954648619448206556685087648743387497256760372827436757859015013695616324821238471978010117156183793880911452924793930924715869012241094301222530832812445924290443279351345601889499146645770063785755973622861893358465416608615388674264074087190490030602894604678405621933412761807019782041329241910375251340698662702004519636090016690813700845323552582411311026426658557598199776302549759966080475527928297060228986069623129910114231635573744719433319439917515005903860476193733057382715626608326906145448086339548036387961714756971909131794382052657347589065028460096313463768902198863364715373297549461687708599859742157065595157175769284001623988139010504484350066477511518636247088095199131160405742544356961649110763032433151242330249771229317896860055081718182644921046983801693385861155056327422427600794446705353736423488410867600130357181672133682055100985272841916761847574783723050620967542646445168268176250814977304380180817968642300287705397415850044432249988127326391073473166096761875992808318327911235765134541909944260501265795668897003238926725027672903980320518263477453237864887823596946735839164156260738225999108041573409552573883535709335966650948065333218978269423257928086083394887793474968484636571241575421618324701733386006513485778817720065356485125017142368433367043243757751748907669187426024309295910856137132921468313351694537244123116237149739491136781349349898652389338638301864455157237951425342617733327790151776136300321653955639933058251638013283421782044265823682764523436099255254892656813234101076436746921548828186573728257591321438913157260588247769736055746780507029797682974839964890627705321823175939060809876449611440515808430822236462964942579451253356112056243901447817970223396730975151218141298558427731379088418573235192709800565141673564166562156165853848035065664469635943887960067197714597949529275906838049766536066146546358439245485936732729671423020798644302503293441635014997108807252507947686863298736213952297767364821531319692690905988313270964131204126620260437435720839327067029777693010078930698097527356779753698598048729120900991164003921077681376495998534315004058317203454818704975524375204294360458863522285823567762311844204061596633565288314290172427601623382362284886021984346616875702462027602006824744695402411540609486315693944559792202242488554198688558074574613500763010108256961641612248344446738409311120972245944074046719876462029538505058091678273906771113416284313087515839024553176283554658478728850362187147241932327915219473424165467785211798696904019508342399098331951266444630957792316081265255505825094782357794151654795628818545505059867990575909890636938109530246803550578051321998509175927291841265257895363018750016060205375990380383181223923951465705602771050991773911780398679794948787149605247695753894616636989865388016184312338129581065249848918091288715446725236593304852150596359511270956937139463913918880666726214833769744692402712890674971859814349421158139509325642378055986713842428278258856134424700591069436558780411598983113383282678128675127674278295581785422965607210594354475700448438009930049777573208373963289617632434081018789969509979079415637356753657506078224223596348595592816239342839788225085918067857596816074473709568706297273117482335056772878948808016705023339792417728872808476819332509825332722216185332303111671924212828247622605351970257971564286856588679721555019974808441358659884156313292566524710094630667139557494094368530425541816287669683726105760563769221384178965248546721251593051205788997899975458000054855277364071422179824030880123549693079957850060225742784245679411806847854032196518683241073004579129642997666641057529393642821159230842246864607493394370418309324061574405858121671518361063959767320567996829907563634026412287944246366647997539592608356765668050312489959327923670266169905237539066035222785846327397579297761803189592227172952530982309594781341204176600255971263425194589119573074866595402399791750069371090121922154865606103350665298394678994827127586477722856472006155623731013788564862616700913897861095550139027291635924084755843686184530798649853974369662988917746881122852266222682598827417232622477304301127456527195542503870317282086112540277528536304605721802433556847084377658467248240295178710181623119187772872967680926221981196833231617112472797527531051339229327434688762438993719032998076309842157206326368074890497461528847445849013959731928501172252764641004947704233654065903832463321659568427574019544747672499156643717777281709212951214027576078046236824269587741345619607901538868306025221944870324648007589888165967585594244125299985820179852729927107998185704895340866295122210484674021776908523867406065881316326249075987865163206425356343378730234744302062239205328688536543859387851044155604934789242196761550576750986413036890988969933775448571038430969344133059807054138347568633563261843854310021232771945871717268400002736765833798931189860005971804734333287864377626449648343260047443890681706353853431248179126742098906247193073253492771498902069990673593284168598539224956040342339763444897701306710270924118180633626689890527235002500234437401559195569834976885881954912133983067326422957105038036871951038103275445157581656934958133046102217474170491963222912533440834956508336512890352386947023446518037427807496213243605838584109330929830734744316222338638644706898498435518628254674362652876757301655536388194531025389227982310292051105032226254996147471459338751976377072038532761893390854802427770145246409704412920598423089146727935407297598555659832753986922085932366554662591557089143760037201104382813897865576675424555432687431081363731473885051900034695259589482394288250143561376477765767847410435939485584595986433037100683992258135183215068708491521813933447486644042081241842258256995686785194203760643643749142792352944858758288588077897509933933634394766604964293384963479339107440332808725849080315603979263482907450718639271335425043336231378940239487525731990311220936202979868376003748415261317747332608060048535445317093279308564730827403736900821394525751797111098911741167603598698421475188755640204351236859230465409499752977601395500991136978372003388386663977228765426929721260886558389906811620541275142999232890335806048764572041919464144262054427791811809890818722608934800283170070292074029618662486027664487835533879607721680380404272371324087087032688564418450219553254893389575399278530518949512235341590897541453364691389077924390723198791539720707036633483838208052427303715240069552426400183339227034078166181678763709658781694218494358939416226916134456287610980206111296234853448239329976221519302286209576676349884271867435916038601056477266813925488701532392928955749342823015128838794318004131015303977857743751892870320534036767015178553980784380803217010221946139025611552442752688343997022056357706436858248294748472365721138837557762000481432610119656208727065293947384728804446658348337424894347469752329000600525593203453045918337454818649654224906757642001495984837656416484968065835934505498089722045104782208463198480711037306483845503306150429972832476296732149759873987617312568401514410349394412503822414848551157042420376399736931665486425187921958162005598263466905109531849924126426291064351194996923906065877424392142899548803714770672356943798380296938127127312779632711376552096398067761856155447638627930794522507902607155464136982227472488958504672930826669202309018433547990179003482063626397765114333631613161764369146337642809590778651125289790482966740132434708366873934309790506872731836819770163398508023597335539501721114687671375397274645448744095219060297587857960183002119090271691734148298136735564541313249008700238418835145337074907624433843838495055458121824160659413525609809910689362278006469512693211727014203899367807218015309116794334541251902340049673268188618772430018895760401208449754103133171044716433154345177879612914521635827319510611993136109698751434908706578500103956953593104458938325195019591927549314997819043318500534906819929339173042608502307166069120939817309418106170975837273795377923349718378373365471432017730658549080150264677508486335997336956857473125141611645855664109203601815963640027661621045084453951634986876131240069711980711853228433545042834179993266898921282599199623382253060662085527072297892768278269067239364443037182275075662315808660816163433095639345838897521580096148855381799111709262797802477433552505274932903151417792269199988042445482093144357324074385663957487039807151050460969653655573157074646274592533932839788130773372833147239449807712863012581280569437892784730263921460946479196969922123437838720765643340616884719276314073541329918927959948584298037160875796713360476503009932957453110515648624737289754543374079233697012444122270534548172303495840814483244948064404864498948653975837944249690554614325281478570229432143986496264391080508452750725386981273481094075743797783932509732054435372715013572461591799681595411755266360394741006301122343343369032249559624117683972725762335433407962618712274726397859588392086732219708296758203698025720785196768265519140937895431948947381315191924879080411154122623454024008777640218788023614112095695115650782558571023652627135382664488185987393550297013603622668363993965925726758113033099580833354668889787817469035298001585429052291312675870420477204091089999514898324128175541075826171730897768039998628675361485717160758445339714560144190954109938844923196158526379058021306577185268022125572834175300395452008301492414750738681013743989732686305716335579900117578450973362123954576243821161531428163771847979973376941798827797938552774025402268016847377832108177505993641748576449999141383378832036354944029916482598078143996370089600331184399977607847871502643658315806159817287806148678569753849431491894427309254555830562232004501115973365102868172260750519487847914832486527394827639594411234736517292945713454898078101557463744488971621438275545453959828747239263017254997114104330074784630252156909065802443549870053612954023324241730427370536110698413096589395646897176238619602885227158093102244881944628397172065973693666839827736867679583905365522976411202290904020558906328670988758609594484114780288922497846548397192832545694726760339972881480302001919887230879243255574432232244134296933754377091059389515713972185166631390812346889261889970823417783686689719009221038011174730277508808241115919939889745244308337346397495261938274688171315803679714259742922982329878349726184687905730979705464100286082130396145035430627057681300757328198404981718112066454424837549363910019840046657234481991800139200198375214186427034623660488497459189717008632682771276946730284253516638175979137948550675791484503984609169525088387202921056037096162384604393957604589000898921363564472397186282801124332987073188890723016271252550161563832117455044805946457916581753443363024391548052423213158714711646262928999081997942393177131103545075924254711397539275462068515072521537024870201652371823962726431903163892082693353810745955476195572483251270582336587422614831075093274869993713839765894658932820133360087652121709055045926493445293470178822782576488128956309832017726095400193302811804149779596645098621123748846034251956268268034222042029814303440865998850087025701050498738207244618096189760065646414527055545329357428598512093130439651512883522797653233511030911984411714094333704322150552037122491216820255979771591516539978408596256410498400275859090212852669729915059382973681177659503649987187503512719861346959031847053556744338683931888003607056713124070484363526670359144814800382349943209752144968566090324176454441777565300083337757023252741769075867070214392983963986124919210969664135167364690695937515865333631844873760974101227601625355127618239959388550458136427153385809934483970312584790438940858121820651128563749450618466063849508200977872588631203158106662498887427202726087077916633510399851195291233322756775665069750642274473670120308709188098413369561416448003774259511940612328633343527146128760086686391586048160148238301715801419696858249524261832247383409695990871526480068754645439997654716857298309676341626095987267994375254106025300063517693386474279724676343396555945021748210015672157856345027975673727123530741932518024192767565630479214079328959205667571302415807655538032028851926656959601097440609450673371546225126810938909356004802141729535511276610832247786647664328661782034311142463410454682318485598756598951677789372055670125003407131714599627229549468769165202901108006040558354009125892050291341759239108800699988847750511872117005164642214480212052597039765497578716687136002712875230601590045689129408847921503150821703016424055423230603294508030541786689218937563200179764470452965485207789328082038746671264226081115074296351139149778888137066626349541621386506444772199476630242353862050547107197889984550301185327903492222523741306813913749325857019169344302046899542088817452423136658404246497037515039928859298147060367466541504442724894526589798284287646430446157680039298019506898553552240385204080685561808155063990821848229517493958695902845775660636589369719233501539292327316988195460499653314949958643427462277109344291193149030946860837314076274116435316783917808025366362459779397004242084851462012614811313250962570221867833221185421917858983725648594839410484810220993649027161794883444148846949574502123047260263244764887797494864830560458280492231640026232113997959333204398869062964115935080961551503769340496583895472440169408312480691800472592966961819658467704780942269520397647068465072023077504380184652441192427856960630341565881754259234310098741154181469603461150699199002300087558910806668598683084402926823435641663041415288829161303247665028704976139311861645163621929092799236734887409807340905766390827014294401731557364456773136433169133261109332600529988802265916474746648069547578916609414690971024032961508735422154779901026378684377452479289301507068002064649754620261786501668433271366630794575682407170483068497857241509762925037216410061949668654987878592875626939900894848415022393407396096903474255826224868825104286850910001030506164733530906630367627776628490801925442071542580314673972733647778504772376606725118981538709155133424707624225534799362207715738257554145967712193199600835072168615093492827747870984254313604918544422273516842982410583731836901065619164425341317828622467516363577099773640342724672930377549294870059335318595919271363389848200165729169099446001238288356623592280650451970602062683848268577971210496739139442346533309453383079870097697171577034153159944125010280278219519662687707255463646681594351003848253637538323743509060049253987062739777572640768788478413236621379178425109685907706617719027498124824017248254631263907966313125032752958144321640559379277931739720098535070119040634535492999476106561381207384181981999829007345319130055774987048104426840981398782162692099599222277162309019777722299039448445835229429897560616534115277760446021522425248434028657531580410459373494355931649380770429004826709371971715799748245389311326907755936236387538642240104161830777678259806695073958768876854820053439881759243796017828698875555444036350006665320264020426358919522148142588008689043278739118535206520478508129316118350089089042360598500949707543768844716965306004166721589308388508510571496320203547277189321105601994900900640912198729459002680866872948189018454042141324103414528575353137244299343634554720477673563550771454841082065358665522606667251969170514108655392003675598042329175099646700096948415237902266608021810919242862689282962845421071129715272000824378946230004456273177193323558170107171597168983779364482793676031970957690100903816919870070593632729960258880000821059342938787908466798321733184970158028156632594678174665455515805064411879190200157536253256293417817806887466162865947484301119828279400855173784936042391755627491619651302677608665202551637528286058535311592073315129634632906180548255801210505237787741982594951446590128573998153910257242832429251908187556981084450030746267325139573569941714185114300743607326341266281387656470365255665548725237757798026048882761150589924244542696079011915276061488369381956298731535066280504996316874512581211271740091632027937328577495080208761394579363204211770986368373138927801906477581857624149841264037425175781678130664678628875342213843278852169635059788882083587783603767542962142058615369466307727466498722555519273390931143966995870951296021822775756875466752504263553933443351989475686086979459698401848934781583510260300975934212372538351124303481652720476410820188901703867785111734334825155709098100133261568891150846870789190285723335180316806442614882139907876768509514837136718155347525112882693596313907440735795957687285894225238547914130751721426457470345715325848607593226652222725879811084603545949366876399848958077901910966244030234918438851087399917775016598153508246858484011768280037580830164609311135243604943574385296450360734079656904007306087630258174647060923224565361331720819066855470227007538313307473608808889016559185872617019068799366621502122160912228833539435295394141854578546979322053941290249004655461871119934489371664123317836075175921821289032238530551537363373151869915356106944704287551050684123269683828471607031812952020555794774425981939827463535653967426555256501698917347689314979442841846287253702771447002854292114260419800813649781912204386520730335779339328522132098829881246540197609385535732454565544882065109828869837706323730896549736688172829658802139621218755979919262228007658235026520267317756444413759192216569506694892613637291019734005588284304403420136137619604925184069426885531188556790328995492406638142727148066774134721523488842532686287895956142916060860804343262306195035224305686396032118915846363198302546225300386899440694913086007799870850125966421366796100043880941790070532624945781249076089812383539590478301819329290450636479244668978057256227902519061564582645787968982662762421652557852699838115585781923268854479951711459918015364775409193994958970323938413160886324300533651003495157277926470504632040220523507029925182304935462265300456712261432704050931826041562995404128612581864647182661432661388820752245242127484911415798369846298122445735500731967115167961615754708929115851899201371954246202005620500437279260868825600638796927699109560387393107143396041611157558163766190579713164328512220493218332851894629853718812461664956619542204623016317522254679990405237414436048839165896725659619711484657497821644951785172032634547900916679734133507219653496668135409600577712013302252571095396138864089004228744271777561621433857930564352005432782041799227392837033431915176991819571967943909687397793200170129435137816325227476597094075488538367723102828355003078056002076873281919156046481792376443655766486515621809979541599215239587448373369987247313849571675345332964328669941297803657457610488923094359290264144455356301380122445708377515819527734066374897528910833393614763770132599180923101945598686385103480502225579750237191651016246619971043269865676106023582115038711120169716431961723055581344156261880679190961661764721971480702604562405280132786741997042082422321847031286649697302192568080118909900042363550931192299898984663058584708073585621947071091394849306165017953991447800995152191586831523867896234832372692797750223682138864227258690501354469951764982056228492582976668675225186304113805257982531087373318873344315321942311859726071754369373495921128663614153927793563962795785039398616095108531195639992449056322545237759654369522167866090819866905074551269573392978879662814796180178732630796517671256143099605191309871643181513577822612395066028370143202801866386237251759750324045028948388117417530941665416936263253116193932113006875867452341203339652443305502686620852849680833322835298471320347664998477379801499411651159096682226463503789876788724114285483188218721161004229196626488548433613189903682824239262992284111178588111434416234552618101816366754800962656175018131927361882783260985109601277805308760081816121835009872974845170415723617070813693285588388857068522895294256683668455651661614499638849762433332119302672550769990055756987436777161654832557528277775245220150813869283665836445535788716626366811727988552837560423261483465044211777486927847359652253213334523162773184584100699880880066179924041049531706566184482964613473052794116528238403084467353791778943493645058201087040924180591240113607142859072805349505452970117190496929442921530143490410365681911084206968921062897936409248790785952339996678428730777628361646321527114966650567580744872300795801430462866772206321907338181911848451652508304453013382632638206793696442480515004338440759124573493908619767272448774032170084926610596701279420496156414933766439090535986463614048622028249729688179976132556437604906871008040415147609384485920040895209381940514149420894014863477513483684583937203685268900999259221006457115198442589813124400881829142752682259979659398885752494326339128038768167633615966911779981708331771559696359781309044676917998124236478188116611275146321211770906678397048642459028638839162024856922152785920358395943724898959770763507330556979785920751835932261413379398028328224015130219240302454243369593866023329164167325760873912615684193880225433403162624416166034422318136617581375560835816702337225158347914517268827924737457861790120442622568150737181035526988707357708552918982278094269907793337179539857805713611848289227223513545190504818916535345937315130598040808875422128857426775917646531880952881409854370534786104785340529198832557101137259174781964449769213298945143966580749538261157909533875208477006116395813770406919041242842981751500314297344265827865376468315366678709712139842599586789612521467138371302518764227708373785146170260456748813648353651237808036530830720681532059665715270470643602120064501233085616727465257701682136403368115845874167541704995012239946109756113754873563803308712467024123116245442200882164414173991303121664691179487639035438495929290422040094927410233485272222345286201226814200613478213128317597782816478631466905199062769721882895320870750772394887436661657943977299400206570616335039229222313748632248822859528697658498212147949813696192327242088579274152508341725862085081724752302975282854854356685095850534501116406700650340556812939660267928272249894930790158713130432729402671416459540941282418414098900217013446207747748784718743770483593195955905955949169155627090367190812487214041404688384121102296635295732901831333126925792609227170636390728869238614195644880533912791059047089761524138319352397073418441317991469230036358595199863960303595933054935702935883462737985845750496703656599239207426606496725587996704871038599412051101914796788554282791388235303572156398101017908693500133213086716127052444608218662229929784172669913636544046218939647157488143767599059765431605673635839203240362225876688085619267459785200265230557379320468359934564674431013531434224066021454933248917178745912607305962515287060172875380629046295084400747549537663350248749333044090100559951461947074600639947267485276499186773673993849538095951714604360260379508776183467672910318714782625669066076401436450427570267640026530302488595130652819859838686642094355236151601882936130555894328340553897113213550034204718157371880222510236213752679192730879511920235795435092104490040377168532485447336910839362000106091950024091262902402763412106383981105403847828282475866645738718477211607553422074777424471623023261427755944413158072002504234350482054572589312576067714076524752499997804442045037706914751674188180634837603034618272581187506177845501991412636394950499541002699312596518375290689854782751822504098830366358160238069161538106596716272915006927162886787277037187621382357897443074546734577667348853389770872046799211854183118023607875113269555580922856159401992664754370361406179585623140029970742643511586872941862381403319814394146246207004118219158096440820832270277535255471567555245745421237914471870928463317712086686097586653939963389392334722186944923037368838349927896128598326703662936875770928317802894033318113024202552579665340064180994355903558488572527701594677347025077336614626257585622644548279794540410963891630870992784646885352410172377122606193114402846723731334790221705655625167307015352768661005062216930682979968351523640662153516467998057222884763624893544269129199104029463573240920617057328682844867319635110645765074593478827542717371650259966019675372005076954412949948527369199705079038646758492697622688191025119698743399602030619661839744491420480877684939889276915065011694397494511575159681324691016167344713716909064990389313750426368803401608528233096920732000897677329557731104842700015320751142311433237320235614825215790591517983528992540161134441963821365739736667392729024438892989787370396103307254423544228085159107561488943999485284681928053484692370177343160731653604747006496274746269703274088585781389242625481138526648340088121237062277530885036132815716686373424159854587737886806943422648855636481205059031574452728289519439651433961190447685246794110681274264492511720171921617770304502860617056067102424176106528487488909008345900526400023054514167705592801629402164060855930227955006913522616351208632893399214751004961933828663607977083791391758485806261033318666725819546233823343372199484557415885828462572836909081386668521851111088432643494193192893521151031481280073075392770715404733120834389830354635623883346088036931816849445528379600161895886434354633089580526141733618455155265118444014652672747698117961078534480618934495697501284015300154251050826014091529175433124660428286396583268451662737234022767903644265517176726916120479208529443892134130701516150881687453069946649006569392435626141535602419192547825130700343091285435688377593879487958124531960017486043324536391022343750087658531965128288736451218903603238271279939153037245157751711824413874105562683544563757944514907495533494190621437908414628958480513680013810881699693461414727633737863073221971459245121395713767491243273729427358424752820363862683377095079224041976227015606662508887525257074365729143599478040626005206852007533585018992342803674688814370407646640299824806264152437195531697965418502151440590945913415007948373289072654126358303653465724730235218135155250041358385404106144664757810276619404068632823260042007715814603538475205739469522847121009349641683847541365627775642790788440198571298875884130777866351496188390727100557372039177876972813459286051138800952328933759036446871737861378609660006703658701735239878905615338053183325142983790610137425731131302373404295868942137696744279880954170570019538580257187414026250164195259035787503418424408154935524818175501445005134400485787994216380873333613539705347872010429914724210965659504091258372603555238046240181296672398470625175081288001719093489437040653200916358610960903739966347896919261650571795672203221399921750297840713668646165154533940625173648166017394728320609031139726808700676929632904891917950278564600333486124125981180620748963630332982690162655600284387551836832328471939530187158029256668983551042195594700947759449219920979166214189368591449475322973161399599868893183465292596174064880375469066107034320568170154394956762498155843149621393285604779076925547339874912438396958472047639132882287504000339566943251857247747052437206232670469155931002890393260722162331206887813008732040375894699550574205959584211369573997185524398969179982459106529483291730893742223576001454908650990684360607481532128909993968175439191356947844716990834768433755828846919411853576617037190898392613018443201294180556910985463584185875346456605156801205408881445494516177123493890584392616996743718323041394423704280636971901756103254766427786977749865716175272364433691814783197710651008486388309146876671000128857340461288072379755985249301239636261964262116402739204744696060054273695306740375774230628682566260700192387243802896255206899689713938232743560594633606799092463574378301111426777951239257620123777657709267379507473218580338728220196188442246342224274917955113782211463449021249804069101566273359230309132441021186764113677236991905167603062824288695733226456904831156923327838185986902443578968714285891099035569471122963372802281429999689807840703013075647754776118959376822250492787894122257841955679641208055257555032129728465087274112844088811623908762499443717410689494434187570543401458992022499203680678815996781425350073787350788409187167801197862876289745258647675322794998787680271304145508334681168939889542841367514602567973544045979244852004600963403853852855856519419827129596120474129189568561821845668908223570348684323091266127300972313147154027786199899922284673859160184889076961520485639731666345359691804971203541640834661351010035516634811800865703833266856258178800151419701591352033521667105871156159127967057935431402584865433154456706014132213131206986776467910376191615592105347563671784877201471089826571608603072128468338751728496962735539459051123423413289470387203367491457184259550640788269302792533633540276787744580740784003941562806439639714131948915847113904579283711682381375000665435720263194681263016356188728479208983406137461990640491887657498182611226205953822894471341278897219417762512812962091764893898960860757991176194003675197091292918394899362314541913329675835586910926037002890437439455167588251515425157363238595258086296498582316240054705792997122751585918204218392273482052367647422936449128612299594119113111736666860986977246700168206844966386147723092646952865399173659558575535910370810943094496131791734171040356247087887926342665058378625346603685382757990060377512891886170249937761750373240114039199246539005084146782479273602233891718283861707054453603972112412416569766158603969182693434779178205736964546295275821572078398652109809867106937836848082162194939806675568453197344475888812700566181304245771565027102817355426543344886307343855564726927264167955009181537536021694117748069921909371763975078776898750679591245401785716581971891095242510912522651429647389726738490483146373119815700317846420455283345299630572788834038198913440234229136831495276706621563961130296558818324863722149595683615329063557961574119220252332177315622690713677315366572534286001192657334512666944337475896393900656360648742976653733283302893435702425712783091411315249112787177182245526521196414105645112773325747463920273249177574168191700782282992185171542719554706005286721799019050056723350683904289229642270622875298280228821627851120561515389202359181794073031842793430636592732487054296387931159320834266865080700918991785329685414127469319656839536833811658909269028173118301112687993235689917724354853499613520860826601477324191712872311694845879599985111461223708300676805913831762550146205893715242383808954340154314125010740507482568605089004398230465115586167683986120533046546549352214375112983762784141623606464359905214634895362489545505665245186429035088383293637485707310898920560235317303032950359595926103107918713002843357122908351415353138209900893353090273951693479302727832072207347557822638065748403747781942797808609967349453630838627660554952274675255770774425706420553795281660726922965976898494832945289419675967526402682215116014822080168906237782723794439444732189162235576121977858134389924050853575050250425365156573073545268242643247538858957195850861581893595668832577001405939731412235785571522457719927622432639651015496030636783962216260479438999818726378885467689823987108871598174607775868519824795936632008242529714003554098826714842679705758800593414447083030102370152304475995492678110697244930527108874724182292584146268176847571651479565661375933863918472524029429137664095604332592347147118304336023440090241729857344473149354142855215630535501758839969925080179097497702630857986890387912095946704371145518248059256442590401231843291154417245074108438213721491543859075555811509154347091442342268364367366831493677687863220843004213425833037776999596703112544527789515891776448293311850592258556191490789133680658847388136406796610083092629814706936070069819649256820919773049778901015275200606366433946940256608975668907898605055229963664640026927795226075725669276861891144760042792086716652652386450790154438691304376203436092759572336421534535850820780880504675696218957002705472146960251391780912239075021522472256365692638897444068994369074422786004066640626953461675837650649436306683030618932014982606260010255849383966707968712648423458697191818000731556480650575892233153902352108558284127723395533736425784320913708835212229621125885688820861907192755101545878183077776381626336080108535401352645921110632569923406115755083313287892952635641411676766996284598857232977636699337389702039596742534154532982695397264161398151900646421467719798708815456528702041935594595941116818449559388974038076046286515783027237956280430381708509711051338940347372425093238749668293186186486371557948063526488690441945167360140481546274327933528387139521098409928798304313764028414610009187804563726412170318497339743130029274528066872190239612503890542812425225748715687617591600540871921574689701346600742642960654867526355212433416610585760001104174881091214075162899697113324260071577632856456436676534425177651762927861997146385418698685217937572115571146445309386610949885735846418613358392706136100427693503332296389110048027925796192419967057580422788529013570690704479470423385914785502771452413260642173400210064460378894394688324760057310353082648930816885087182545060979588252671758380018289463495869107182930437701308288086680029780623626545794024591297659082420771219904342211981443064255102764417559897094617558244580764892478605692685808860232163167668069507298776680719389567524294498693015842943953417997832870415004946387295251902348861129145746964995593179879422776168571885294640101506146553610760852640187583241149433708499298957560691153928132201363742058395344471573439138358366420011402130370417031528957275519077624690257208965830413114886624753963593424237083058263298240381106462458008625946317854478658604705334459741490027715074041859757768898802252409097132307807994464706874886711235879698944277126284058351963455824577001691124079212223826929166525459013909341740424229846520256081779134379418950040869717233276417842302024930936733689236787110275139396143563142676567190264547647001224413279613969954271249617193030819982411455478767822501933333107985977933138703610090089095982822988032458551209856057625400830792024553739029047419262295212041347323417802579541777636397973761892557968115361474466575939208802046317613127499078712554965952457372193512937239806234697760783770550575433037746724457434033272857706603643628963916031665609590760321486437866286886240033564912992361084207045508541827643923227162091459904378716813187228586406722701438170267149772909312216855068237433570300253282404111106434037955434270654437329460990495321535319949000092696564675890320382355582705164513255349268498395825648144203078869883973330753146796432629181506229480107584637744670020870841900892621967903557553641801013316973019234912738813572939900621555116618818985405726401334751195833662053481387321186526585028048903326740155764871850018249412282477601697864479892672255209431809891986157136673468162799577058713081621249413047170957092161208467492264618638698341818483200429223317375985426683256115293960012944848139869150979035299500630881085473068134772257750338689267423282852540066376518848871137415230415422534867449610039383160054254292174334085814819630517640886546117820355241186732813249250663666038041188835113736365767927613848861575066896452000596454768339637840492410312205056160257005768879982827180722104979831030280764287904363047406112697292783747639732540692622207142372042015555808705584936163654419133816514625438336141193347036857309465162201650392901396110758125897930858158400807981473483931654397541133770086928471712524323792460379688218658753982369604419593432403124094656707427932425724832654030150946746433536793152344389315226015241593589543399540102795748264868803494634846747220718373054165770965239359252831647716244527886831879159035800514889357751648735784402966037639886696000549854293654018878220149213561563148343401306999440437353292079770197112993845125079413062019789941771976877564372448772264806697143818527460384257927743972621407556364904164442333204800041789272505395627685602448798224017207831970894968136353371572653436067247624171643894781166275968489910534051119693735475507466597314855051384031334937865339153246152844330675608672402931654436090597075814453330941088868680071899867831982599490743866522160234611790345202485990134614450775821610560888155135729345755301533334031006217493705871445965540297670135987266166580264862849738737545800963393057211723680679183994070803676458153555288070905568821438924948426799747116679057974580150012358972634497561108959640070175249695732025197895774330445713476815295598835497399478416893891562960000163983583999999532691686712397810642082513166886388900015224533359231254686531894507469940934277276027556247784571591684742573824026761674598618890331833062111250885641897653503237273052193292635460174334952762402887188057637286894184477080730350521620395093009645832644232902573562736970865311981549104357525303656365026551092570621817618241477606661428449028482556614127036969880780698443492767285877448532001666939971254695883790254289791363322388488933749187434402951948879268442970527089730805654000609456357296821981911355081974630253195770049923899925429900981331909706096645398678689567977313315789327273202075772160815945948633487514214770488518405344680921487095694572932212056919713614049525466878435645691901315143140933002633039265245222985246470731918499588739673485242919599156975920410786741502438899008197993323585457918381371010958111653421067805803076793112500616929685597398896137207563748655334812756833160415179424461983810536132377997946178787554435156000415513982726102036487480679563361750131473330560063333902602629221912386220321693004325253210946955517228939143739021052149758800231447012677612746581486319636857698523100356199331378713287866508652069904988510198866790658285070686103616344691522491887995226311127385761657417076165920234813686965352410986367157897866194992617125768593784133706606047708419047096118271814622682288283168326967133902098350207938543486996790197657621416302513802926371218751915141779954536708881933728619589616890731301782026383086771146280031322628453362903473054470279625755359001347545512899056298517779234978465715314801258588895874613485693102813379908725437069805964345764697613773427480853596825430284579046762329553626910651365253989822077182892904701040365789400426520235210784041573110917963396128658409242444961237247860153407530220143006119655761328047173355765564986967875862596809046610221537202909660703241011345145723213948001829026269998183107552745515779301604035465439576698779542558109262608076308262167329885429163593529739556983582185069143152380569818850652655758706986905492785503357416376578900097782966231969703327815177132606272365086713639241715281235278923180565345790629336162862971970868845323355654749005705601185299240834563959329903937572621889844961580766893633461361630410627310477299677565592542144936954803619420277101473522730428509135024869855842687139913792417816631380557698040339306469400055640184727922057708771202168254370420605867671935700490937593830520135770275673787470891418259433623665611105899123057921527655600621361839197481934925527646404207763076408740227719859293945301888236844859097480978818100227539895934157722117961594783979241279926620671277065855329343060645890641309399489956437930288614196199269659302220181282691198347134408276477237211119024219897231521418182948749105102692545676783135263948290173262131299745841307969784869677936357153578444890096650372717860065448697866688627913264603879967285873818951827353259794606874088536805526831156654586379184973958413728677614548621680993199844853731482447753821912759440443770602300439343250201669365354686441685698163369860393141795462574539430478377789017848054261298480656016828333893294610994311496856514648791322827052734732207279236336100961024953780909352273321939827074266073302814193780935549449454881068505275467338537824747412576906447454324804778237442971802494344254127900801066414022547639640587635296869887798616295032762353109153015196808768703851546100948486106403809058963647716754757238144300336368605070064241165562936666911078877537781474349485342736232915160295811830425137867731251633159709558405628566247035561510680989623275850420679407852848196264261066928269398890466269789250135024700075375628337541696869976746120898749637051134164263452551752681507547799690640647740786924250556589806695707109220988097509259774294595656011964691248223764929999744367456819747144309449473249915939700501637589571664484413565443019212600422824120210980537487828076950024487573123585316883439742109182166115198305937188439716524022576548689234163535559968288633090929308849321009290727362998874567079795057360655105702169767419784042332822623107254930658036755589181959098128504940583605126637485029990035407645582950219775183511445458528015259152622643487570002158832557284631079106345057394697616958498513251240200847405392593822849791091380341427271503534735685406568826484978481759384838229002984220067314660781209597858987996604203026695882705299738726917840361496704368653742587964291265656713379315869995178449314944146559955752065987909506241805276464603241754594281962466959904576846511731915237017989009141003894552629795737176082918180921321842835832710740363910841971376215664184678427430039545517593116363280516415977069128222118735952073878811841810681331404166375073792677694662455872552675979908951424259185113021378193773434857714700107846651693728530226604807283481637898828850781688239203177683464833738187875852426485420403438375107214286186067299418446087617607397050291733936209399076085189871791413140701563611732017748529967550970542096460774589973900382032806942041327980855005228068023455563635027052961339422814720669745329644585745955931389126722321027763929830391465109869820434569281513315903402264410458958053836853443829581070541806667110116258446525479446472885152830760196714228395205020981999160863392432969896081595789906388485693056260900331163988159096226108100000001917656281798009641472742953757068140932676645003001716291241331990873909516718689273357654769536228925612344405620154525350674623696555822251020890085679653785104920839618735559461391941945079053316664614559128286342058823092835650024758996432186542637966410043134759203551883143856452329937692849538808354804760195262611812267333796714177082858636057074923784827054752954103509993679476003749695362536798109009064352325313474442077170140265614737493729482816688398955294100577031623633504499131590525891345452686285735035593720608957217941097796809318611869626398122415181234368470191103738822499913871184233715924753183879145503616791048969855886440221740943629172817578384506110391223989236725912351967474273101838755846953721954477213546000968683405270414370430129823933604838468236338576800022489525264761455780534862077409070728865052901511609828544886846740489604117315319913036716253112881401739340551897070472696801528390446571287099425583958552951194964925268179197970541085343151613370745577841314063451740958278083811955816360338631939627601672209416050983592853604816405229165021425775166766027405360007401403411410768231371658326145245457727594173747641951185646008558376884286813956595575610727426203867751066324487123876460822097615088412850314051741440305483902003543639180585615217611899849890737688842049985625681079862306972211303859729042130143078405050326381619530469705639813992529739050890302907313188559249226937488627686722690219336901037978188131532339665033942193826356153265201223660212541407144285488633610009811675347506853593294559146262615759035139936591891267562623298806383430966597986759900171141839089316259564182905125236748398674605109430854316718125495601641565329566532725304569979954544748304398659607882186750819826873291264079899439961293257131059040220574121720847926740111787876135132119120520241952050830334927810964802104068688522021918692087786274495268620513843857334566893197094757811177891766523009608506244880547594910500017565455313990176468183013551935094919902230119034525299069926780777544250320432793826766297154016670479775293356394450984860662659497626602135390286188286184987024721730788952042452226024002048030005562603690974841723887280460660883742138346677511410391976211465615162464410638105726783105128272413662192640916018009719762996473622113060590248252273515312250437292727329030723729111647228893684240317295949534669870942621361297897143594182915002406122914229239157673578247977575135457501101567326086567475062399899929580947478592363580341416185892477254837848431700506845338681250362358334491308924910394004670939876751034828220985315948107190198922491439556553319360740181654373181992334934951779883414205952868096927936983880410601563181289704807178773846077520317253149693414505930918783185251034211795736532099230115065082888098971061663300201369122738921908554193521165125614998479415802305816822036270247969563315893143976485133981847173624695578245603796672952505391907177791733304261131580172668419964004628369886265028662864406252785927913371977955795184590801904477935457069115141932912245263499093017642425251460497750612603487870570784838659880356910338338309718901245400782721990616119897294997426722434066213377477768777136175787593967363592042941162054733150990688061765073019234985778961616972869376864908376575754168582200478918343592570833815777118116214109812174940594836548018329834938560171896939402401105364880437864408102333903751560344553416092058590715885268825728765762990540643141638860578175824379151426929198202928508616165814102496882630466716206070893757238651838358327711473217473306730984988934474519340769881675079551364990085205969345762068839598122622380036470260843635656420332486709675108572992773167814685516281637240297724618704801039951431530375235525944007784770429798628639106983348197574332835414267922701689949010649527585276263287527208924430791686022090691667876923750194006212517067498498308413380258367198290194315647176721923704530041253388048016525111346625935933577687055438456426595101948193707557361815071509208556024883817507256760695635695371408524429641407759128743638723750656766921377805653563796907534813462855817636416638843514904837402501832607512494491242245838890774338090881810294093430652053875534500837942139633716343811267167116454853549921554562269474159589505628796430242567364302839073218404774638528770481104765468389711447910792157872440334197046078265218098499041320133498526172259403876268153419193601544028173120253032534493143839900219829809266889833461199651025879923462861393050235530711580521050438789478273508693467361994199690791471391084880340765124764194953084533756340738732174109879335369617353826199472592012400179712850502036862013112231623403010317547747204410320541750734345300002285851911818371015664639010484986172975919745750590274322006754956113951397703626098297136935083671014057762398136065965145432953616189624283743466303027955393596675467146406546059430034949960961479358261262374878548791231008356160387952113909591024933726359700192128240447101336514117645887349417824360467876024352533826447672806254066622232809817795215578924154042065072434180130283428019774061248073206835504786523587290357241779649645529492480580751949403796070888111138067259090546151760233492114073904168021198548173385386669248370785092440902142027856765647486029763074965923750046837866939707330998755704194290208381065677559181686740740387296151516292638822043173465755882820480886664619367730975883317634311108399373244898081224396346931337784685379433994550261873622669716099293112580846372524649896448373449337789798739128452734356166212185268289294700421585016816400009209688418059050961145736836945710598283913812876011008484973597098822049777226401927726246301060400386804390123032649159748300479789149760083211780203638244881708080861166988275073850701600741427813720932185461670936404197022271231656655656469272406369987416816123343208432844378659068398060223835131187040680095426895059854798139670238193089287739074712933996117246316301227511976574409280677294448720932471327556915903446866443676405207299394091652819207364309944492703863218969794093277577199252459092371429039315781263952341360179820574356312844017977500814376783664817230171717776468635818231360582270744996494277216119650619470482486226697527053899952327294366748076366146466117307551099517439392973810241418425225043992241412687079539137362966420629840293887694359217132302449226058693916315979085341346370796743004625995398108661352025351404710187751575942139346017754428491845164824712556689309819234775166263677788127355596596467284351110755266324338315419909098677930962189886534206148367376396321270017068753660390651638096877295691714557999193754720597169445036109993806348396465238457846191183923202896405074685456718863155173898331793458311413960211953969611835213900738410285001590597472974266660224530435024126600101440148945442746691965738091352394276586162034738237620706552214188280296445977166118582116916212178752820278303267212498814134823519983420220995583498921101403430271086955187337038159481404034238977523220910855232670944180597455733710613069213086298862524724963884650480162233703186508591909611195247537509399064727484521497796248024763467311629139309105267658913063560938559888842744331222860847798606737702576692726064557491543402379190650860623997343807311957240297435405588201045615077597344948111974716356853679195763373738484994480772642850510658249355853454319220675001680135811922042443749478797905205125550633343597087864727994386822934855858901695411737653080308290126155028757013219392509450840388081033572571084713919266425577439214851053090873889358147645453052789403724522558513557041432245053114544960619060703705243882347864403906377905347003814661770073488358767719837753339405512833546745114961258888585866266225689379494123055862714252835057944939914828037510092122691470948453287438847670709683158914840039527402370281705306148166456782389357512911552022559687674464278559890607427859435097131514135432261420419011953249570497182608272680915400146057984188017029354197421297018792573720848599814738983621156639276930452979473135975045520942367879190452779731081311801732640294489402994573532616308208122112580619367199821635536869851392409537550493752668516621104662288166550677548114040113758880406781980926625234723583417045405246086890992653137227377301360600705438895200280665444273411767496611163498968325326743624698120381048554201421265341056174446601079506270992955250251719071857049892183774985452399952942671439399068582642656264199799741578533687272145632095383643397285799843569150266381407515344914702664844283976264432533990361258859943433717543728334656876151436072302693204478633488783813001092253241098370489134519064192491661308094301876030157029769795789670336344571719980073323129268928187862407748761802126619785565451201897650999207209060497034219929813998025369552880443067535863306682702958098313186552205178328604058684531315045944242091320620863884226024388885014219090201699350109831244453734568736330214267997579874988241961639556391093447836773381960710332846084007886420274679068707727055812446269852213562123220592385861710131724126734916574413573877408345657380400519112386670922296334417785131689469298235944112233753746033364545538864665348868918346735046034364794505091829460355293185625621151235516013904920143069540896053239121449940273962925407899527022937898714332967256943161798861229752902855975102925661290404421394686677194382710363742558206173382031997752849701703104546427068227532763939213483552873613599876622770891634513085303028160798034324730047758002782370713902801908121837357987673947939928724971350739215360828420189449585776586842606461143757600274246266866054177260060686288863656254764119470759901836674934855548029304991472362640383878163772858641580710242231487428956629068025243727293723126412386416210356167564896211412258233018920990947705538200629154090404990834390973860931963781446147545187797215366550167196945342332761802009244596223734210849282045976625634997978172685044766308806021205051474593802643866395077380489207620145848465000079253702847037869548405846996288139314972986957731774354982259766354104844696582906735372554079099588103929862366011200305628316938406895186401330020232443459247445540332290012718357786801244101802055549187967856183132277645744248529681887976519291882990639926179863469988161145144791769114804370645721514005254339794028953765699172287823402260743507051251557817564557965869158056310605009390415662366540378530859405653485920084317395841519629951661127097794643239212750858719590890926923042441161191127120526226313711451467020872915397709364633414200144309302732535353690927287882506398791484413068123698767552389400210250020764416150518030091566355652780463554606941490524832082785477294255290461786401805612799778694371995974904012686090482879324571752688562860672085130360766179353810287391135049279293469082700514811424373693890471106526572739955048647607440925414609877170886358671528636683724304001945698275670365550724516553144588159955625250409378561893032547805909118295270632737769252407236000929069034913103509429235924790052529000816682173284444644846647328729574368379878294439090043247347692847269582196637148605209981669834434149929908209817015331361764473519120289997651565940626714851487724878653604568497009696496631335529341707140577418407546936995352213256264294584420266673918035915787038224748774674738974488140437817242369701799717238529918285912851787245068133403645855159528690717045632912929392014635793103132077471553680826795717302355847899770657289068944554368277901543576255102395326526011362525469310627436567894983589524563318676466026974362332992335053327446632856530335666230819690421465717617827399481819576470151745809425605952706579544265362390219761354995872460733097907756807941326661577586410077324965495836499934197829100852936026402567626921423256313709020037074832378126798770889362624845500398966066178613651322838304106187716304372651424332209483417482540167406054845663944037592991803171036092564437107410583884825492364937533742908257170910518781379891044337410505871959581164605230847524931069029020840530025960673270816216179122485629737533869268832197029913634672659921235830408547404895321849389798036446547373837657371773719448489785069157938053032945491105797228688384286945272179420833286028370390692893841811502544184260277897298009111010383600770242816470375645065138628232396923954468341102115114310219255525972924165983082563721458815564953116548770600542763259195779382240808341033948848788229783592821260298135077524764895304727070129800094395665754439682912903205827608608702696017371385519450599576812486421200562873564950433782640207630578845123785631990799186116007206270186267551204669617275237692997246043074339283357679021562195068763285759633783409431247923941887527291690541477375661138642620062188931799616450056267106110402611694406834120819891370652464000360182707063007161431566700536146972999825667794694822991319457872961106840564556491560328019382361229216795842440784904155792723384384382453558686198821261599998944351326173038351160436802152880960192129151321779116166797892773570105256351570223033024320554991245508999853041732509398685553946839354608212639985500791650032661976054323805812635413239953469647022596454809820942707304821206237140768663346705385347451916623664738952795346234915798267318512229361694678174314861306004501353795596422179149045849260357215325926633884951430060674582361609376161855853287661519054977153097497100250164166280174610255697460573864077619279354282608856466575784782390354386115672343123755382119231279380280472552569815062644047300924232430845661744989218405600878485761260523757579932785160753322498585697511223463616917258051340710402265535411763510730602361677479737284573222969543112582751461543673454523515723153628595435542086946960018328626295806931629570562067607300701913345935429674868637779481891697867215953096258113250881889607179461077314031858861846947530807256529295940435641393997936967284768581617953418072139910524346048304262702796023323528484633103614420735600024523774480018901687557903204061605506913943678429479189760797896575351177617126920670141713780040517945568885114565791788280735844446527529769523593660497017368412796846728174107476977355958032696917725579818882623447853761429992277409445777008771259813670691763903229852644207914166906834543837845911643016099083393756003148046461715507774551923822032486356952392636521728740684301772352357423515548831931079652705085192728899651316467790980527981067329295158535666367091006751043313208501994877356904012431620720441965550747582203824970388790565016996809044040917784537635070221910877847070437733102404587964132735661229892962039433108224508263990884776442377913055883437893834730081956669768561076485497723605316275375052259864787379372357505581758211617414520987618685488297516627214329201817170050783462980769921373459477536784867610012891184911306336007162124056303383828458976745986327702460280648773104923761904130130717353642740108811356257023934330495654734706068103850577001420799620937841118434509036322028217062710320522629422320922546790639810202979216353505079206698222363514634174059013266009224981562132880206631299497133347592566855263967797442683359627788910905202246934750051109491771268332068997077534705774172431369655727774452189531776459389000330639865912824435145183980685221126243539547248394651423371347063240154043001646228328590959670460818035360309933428767354029743856974495583747193379067934149340440218039712091080202388595874005738127671141736839225898666258129791828024807581141674348793032202586100688559311810293836680457019850393889317354623863495404988191460465419646570292676120050722484269392133438527060106256826672672187046512733578713878819773374826952898448322781466679367072696546996360697595362567233379834352544189312048799610184207463974991072585321247233790963523019764512724716299082524870417329951576378142800605426650411809725262967338076770716151517831401264464521759772277177305018232169875302859353428574889368306842209493588498692245853796843102189262389129684566257693510540540361376045121716153508397966786559151611766515351981416703466793221060906207006764700534800502726665182421664640008519101849991476831048462858701304463867700214315583618192589417401143299953742441169658962518387020476348822190619391228240703072618314854601526458809417988394927080350132637565553037979358838607472167860311654920557529426144529873877801270582372523081078976106138056300783427734723864688372482939008276314313147445532247177060088277926958238585217451660263698487029875360296751466220077957691505574739125622065613143016535773148481078101922290386982268974255888267704890755444797939202880068403699507445460344207782885072131010968086610541134169544344903851197680563102842926605309356650582033430516915434045193605706226040213217417234600468964327083097308320649787307283636886044039418225612083743768741929046455482525962843208689337426030751313216630043017986735803088786202677634860337914014678953516874022208358152499427325585149047277676353335918725418647567609451484161902618237532570500382308430038870288061586898715352913637955863260657562755700266000038646986713106297137704507090935815755511652323149336765489476750833168459001709468993992206258285034380874629881252757762833827935127482975387505773831651585498488212472790031270399072117279082441026716277373195551498130834188579538701644944303797916719173976212082582274164934826780380844526907396594545311744433195269406023429526787659095302593953395962784458682624306336202459400700414144775303759384594598307290455914295026078401803941782341668108733820629251438471122421063447036800374087275418008908840893255228529407264269879731997186811832403892759358167917107917417578510761341837943084029697302170183390511763814323397342495605815178494551671817261941900420438554258359469731248426718591290072889797796214127846954158647971518009516240935520871591561234854869461283560785928602138490734855653230323466839161132241502495119412828030105511737681909787714348884288317546517397010501050861545117942367139042452441716270340794782065121665498272483439352105348384269589988588687950827832287083817347240481757726144969296618607136450300517004016844802577211354833660048828711674646094382994149770885026090284075772027649321044636943928291430703261369907993589754842195947293453291063874155060626341336156895061045479935216719145460421312045616246098722604583492149266053004083267009468685537141797607474574939275064021233279523639366100317383569107248850404545244144131925610918573415387057170263176566525686362226289927865480095806120527524349293898828596878690886017669051767958542417837586106730737784159919670193845109115170724974346744689322731003584007095261564156765481075763603120889630048540104960894229952150148745198711795744361651668860231020669504629655447976007313473244987046071109999429018972415794935304977779430999986719173799439677798659919808177591004564926029258012162209666646028055156115033663742882525595557537894689377721576720647457964613689334813494609192287938634064167370182483114477483471931035923833417294530357201369393821800018932783829349763227708192164107816860203672141407152482020679222708128816889833007426902620318986423505355608594203019763796804036864174335615515720845357135296639126509262956189307644603006157418214280741345356377293688832662200211002494412961551896853743166793276666950243757136708118972167103712098350241959921679193705646188459661019036623309506258546969934583464342025579317580705756869711937491059248151148982392772356150702931766435971144564044740728525802570462998790044067520900713389397555791628415061702510324327180191836135224543758011577744237932310922466088165422514798265951151366651033704654923624187508289143228318110648419705809855572859404219225619132833151801069628352684651907793698188487795207503984885745723548235814037289434418632418942963483959263700323613100823722314609200665206610940873481440641361245026474611741278826550151246986586808902642635008670983460781118603734804796633831882583034984302223297275918844886311329929242551125381410442123379253237438308858722013626971166535206010202846463201383769685094153068542601332931086063098676057128632621398466060435737607020764036480308686905596565835357488294017525437911456683908627204639232345564298392549087449327864502246138327600905525529891965706802858981768621633330245622508454040959479053570301238405084213390700948291236078824338057981962341140604206376169410857040531398115305269848529721886536308935113375454296667272308815723992019701629795946047788674698115247112916213475156661517835225222085790428838065231584033114118461230839536876602873407770612696816239072633608490801478700090771031989288625097029874042551593935159260529966359563341635855123441514689207754909636375739262644569865015220147012272523203110550170279377630663377841044846164431166972090714344678957062892209928795944921312211799376426379928260589276848171234178253119986501985450003872806785580548183558382104882544388545959346444327973185306892771556043778211649706039103004952112743480805551810433352350089282353762769669528246703926684949873519557292983581393200383488856156923225678299255822945938200532219940186391061278991873248926567141658813808355301618928287200463750862034514142060801871049957442526444172824402352139815436068776703299589909269047141218187887048438240288639127678950859172133418636458751541070242109552325310700356233804480432559205655275573752521598242009028186442325482029607529606290244718694091827975424414776187911095358704344386669342372906235896032565282757209634876692099535207045536403780425686250586383485816313743814825795682041294549893065772591849222590047100836371649624164472257076142378874141841033572745585379487350142077372705988133476815267657550546211421421194529493606854704198413644935447746649454172576234082644583811128565551140923900382310880381693845830205063952023485509713347124167353559687627223969201913370306306800049667604210524312769787062563200176799003229741177128573268345293043122931390088416129313362942282286733581374214736652641915533698271163532623174356434710823376051935450478994511964549620824171087098737366214158558145874594397511397310710841542947299345963474729947586422690318879209800505276764978950205052492845098518233582399097162454415887823913048123271878686919223182922409915572848573559080887982907731701002347352044616761833546507594410791940495828374609043542058037464419609908344077983781187025520439524095870937424571296340936394819896342217067905071547131640456490876670004068031391741595186026380954003290347051124055600054549756659796845101342124428418149471551609463086360078891031740541133179361569488394409466687010712355131915810097330427826369062851339611545765485898439416010261973241221513309497058071246708636706524701515765201275064533914824713618086330155183156195748709276654772628300596753664375289161775976046123652165230783290045405040286135666156536385588696175613705326165664756982887167323253884246045799161396984304179788839411577828765314970631958080237574222037958320808446570760056144569687999605611329500861987295134477191961403098176649392034710934738018725873211526033758118175206937256590432820595938569472812515971640699694408593901535635696469370511135024827583128931805503756206972521113305243436738584921331145984733301292742011090513921541524878212344103728780416853994583572841706718661785591143550242958246063875637952344395046338683154976285980349039751145471220305208705547996194258635997779519728361289491386174953854635319681372000413555742315534181821723972957333228852433234700257083494229176329861484098239365151039989475035554595028597853698915954930865871564961653624025966191867757992073503029367922557212908240563756560663592500811144360287971312988815527850606306455651763983964727848753995394526003159058433900464300401829658702509927452200979150426729287189823644083092755954754528170465030578328313794166601519183692438090280115925710600806488525629919314835204891405067457588326539200971165212843415826795104128168774860501741134634441065225593291062822809516488845639729033688149086668436304255409579728716760765944372276339393655665512600519819079009486460946281014878243991116885954961463793174562526200164809699556415719455335333244784668082990374951178785130025242162492662059805951259365486848500201441469360206525542654407594667793401105021698855684656906542637143319690879843203883379690394573309731438363849222620679460217133735035861941545664467338796496112589987853690024154207735454435987304622092403260885124577675761956801657303742098658643151923022438455619704576446508660596542215402495599497858759212367565993375130318409878862354753274657193879727451560206453679959591481717849626580915346238161657772788438429968605371198155152437577034528731366973705177511468514919480780852777249714233137945922516265177288101096383101205031313202086568288100662621522391085279315669131476832175149223965043621300520894247734649149626845473045464961569591115948203342649333875824110099734988161658244750725849449868400945873944145766818952850091505119547377851652429860405561594617252572939467745250540401023538932882404040745802222710387342674449929010806811858994219030389694019293517628136307081215901314050650924177033020048985956940292849317801042732159978888970057172409199802394349688854434805712189218382016328382988729805375005978440771013079841477659140054162183321234703655351032270788669021351925515847937533780542378233961727893896595962417231429311479234327293283947871448807545702384472024065917421314987302894600729593428899509154796512612106656851868069221254362609806373877977493790453964141966821667924517520473171944195680207538314926953663421886824570560839338694644456349787022075720459228324421523523182117704281530796250178641111435219147257824933066363693995867214814331776992838820653439527947836918692072481207760532217750067859468140135179629637521546339645577153570436357690016731079889837039680031483624583696572673411829794491513883996093146544357314403770152706382648966655033005653144928973248749136708728756864433186487830543443586889108325044950249244884919583221388749350460937103564729856845345460889737042373380144112126555089232310601097660517049125622878085789797867989668873003412465565701629893552790124423593761445965606922574578903075510569775806741963511442918580264113691246085884585892165201007578100104108901955586529496335241855163522076004015507899747380851207560579126090821311479676827331023572203386013705041185126263451063672765752538945024992677434884589337053226245425257941792660486284604638299843342804998217525394915754542801967894335455018022825922015747042685541594084821224567624458106413725001800860814643376581709687290775586970121330715748925350398697461056056253461768921721396019576866536447436677562489962638873746620609034707947162008342599012252899071708350665715795588470664104626911405383247547551175554693945280102240389238277837008507254577882405205729439770133928880806741032024106877800927879419503307366471356212250561715542717064203284272916086022245816881199137213462343541503405901846053317251476922615747083678292998461439442854955164014453172248359077861469088521211331542578330526575862857618226484208202099310240882471216521352521048491504181155275938624677385608381824744103996760906702514522684297151461235257873009519387474059858821910337675159217270990382554628539556977703305578051533151101390502734940531823243779111362592644153848542380826712647740370150464026170199053516303759067537512549633180258372184072584157794997820002719617924559973298757489039008981664076578521495863271284750483678300438848675847717770221998664213872226001663847760094095792457247463233776096546545029706217880741090502485792122405426699853011344599452220764570686705198830384294676037179455837158157659431816675341911101549502337389705007375463350797411159062115212994174535556727739834246966800272778305953303340933545209315210177291283833321288548809871303296129917274008541174922076922978644045449349644105720170691746290198640169146329861597695242630769246500710225090638526110696054413758451548475809515707286183705462480276185483334339900787461400552608066255427203500631069092481843157526133863432366022682635305900331367155563354205597521118072253371662376627612245067756480551324763225131104073752200257732530278286515745944807080466484904305140320569660808627462360717894135062011282477149883206228471305565318956116530843025162523889449529016623683441784982992576610276770274431782082271907453008407549972178458117851020608828960405849956106551506576346181215859141171929261264199093887646013968918491764159633750827179719105956780646655838281880680768805892331539948497524556429746625718365528618388638644820535662454361703768967238685825151960666439184036920348616962434291984558411769530376377411032030240948374477749961326779259704556986407201824638027625843356146853643444587101709285717139248442951953848914592697306977164051553493792728822775013546108571015709480815900346512701660989369404497700956055639157599635313654947678973871726663697904499446564848303395470060146432508074985828463833113208270499688177134383015302894045105580341885479557728352169307388089894878996487381178189378005476345286940109931425823108854693028280047040677443174677565145513733834526194334171856479529869474083193185073378469756449738728522746505062420467054479361236616871145583079519210196158010376071546794838567405875047775923755633395201620733675956282360440197132677963462286209846855027570538774816906865207206604170908699160885084440690842320005054813511215356874235023591854566286578875066597150198771880446107076884885614225864938577143741785141347565580680686176583530978498299545033184604760755451600076612997824789688069308975134266812210826898746931699525981381385708119300022502674801407190975579845227307449851748371073450309402880640822770838516806153286824441183016467597555462673718384424083310349197528781505960005109770265950157235549789826742804857388322523633551954186632073719063848588080385525645364688175301930408264440419372861126319365068924974276333772652141745464877633140506478536048055350173486947105162380212303377227894207783310780497359872351251492494391970115455303063487972192638488592516615025458869842620305718231655782156407535666775878137833477622877659394763982879452089170388932996789572523277322320764656485029893433657159361974942809888334610995981161078997161254098432947303175989254009701621916391439081092166072791886075782691368221304903970917872361045807311787933074413701798872851882064693893446957622804508571737322422010742091765325427416780255533996829980802285443913708032823171081009386463446352373103101118185862145627291351716490249572401712573345270181957040391811484367292564048898223710822034917750178564865684924089028346080074917992384131102212353853424539946858728742430739434876194273464643320714451309439781629061678271102894806024558357293946611036842386132153070460886610898114468622234597341322826639632720574141932302850186436701307264127440156650303675796459548622163031437950206724375428914765729245122786217816505328235614095841472014153556020770357214491581103735624296869448281968826518118822130936912762287753652136415708338835450515388741777558415675079985694917585782559119309182186147431237109454286503801227374282201432417195700411519268277366529037711601061348607401504351572299813928721867698709682458580968281581636100102980727928105758163744106153654394376952524934032082938172414492168964241975469719391948758091436145085209249004230810561868021080294951841497930611211079076022032237976636275430486422503068243003599347694790239737469301709556898751911191261349358855599089954539927059617712486683348957589532895024750433089148976278928918253446366681106269833491253208516625814182660538837310424067245814719926052451984160424522685577536394370871006021757885541419251335252954191647433458421219128632682287928288637683267036124839102930389795056726911045725924988416626140438969162202896135057622165987216094319380193507214371001988416296726283429488579181123610007711741285566489975214680066520913677408904525564553376228798627951190185809138183503176413948684737702145411012031612485282735392045320450087193587238702699178191469305853103451114743678774910887178827839310071135663821340164072104176166281433521023840753052821056673575324194398657144387125169672467299458169870027801868072998743772978498105722098812626174247724418154667624967709346941117617626559170730073010772664949846740415491903127869473508484190219752429030775813087295012778148453381746617359766268946800605000650720316990365611849679068232538971890835148314035921717994790206082734196948531616623767759160786670999168914548561876283614519488428649290473220160441578140361157401648951649331685104302258819567155479353815046159825837722453277639052466261009194733278067114658799029949665165465871349253308642021257344058607084965189391578246575006274932182304678982867976923615308928822511481609258366589738219218654562939714387975059841203707693244456036732411215955020630444476356116700151519223805939156698165586669262123016477967553521628356023300383072979493377652877704599773350150119748732159865526769328852607514095559003872245708894869480797904144967279130335625941410076412583364171548550637587980778352093056112292626033705055569844970807383130481382677106688507335106784789841381349269990859933382511670611286647154663436058630248828706008725628893625337762598010403764609993691794137690205675416425318884416052365611032333682568233578126368756402202311809445152515125456106576164796692794164659680793041478828204084745211072034626268882512621784058444329737992885601611081377949931080437962276070088949694927076668456139416339612226163212014375902265689610260690847974995854128891454725343527546116156887256420593949441229364746053026348508164069788402111095935243724795510525143409937735528535902100268806272099795267558586974169831969172449291171140169076528002505277616304159567974967529423770828950413244109725826093045144003403493056792881135972009686714499734522135470032311828351531938709591575647241485908738662396003834318383388836168514911271198697520551312168365095376922540028696249968959041543870990696114704484612725299220638899987280411659796168476182416039892250984968035956971030191415265854179664002432149059820150204426652642389632522869955080447535861512267374964594203362244560417327527485744376657952745060822499295862142642076853796055752743668766856641847254375730680451158992013412812147462396610587274367740433781287225296460734342406198161289999149836965041698441365982030669786583891406300113078598529435990584711516649048729086644352043303341745564087362302336736498224405216460946298712355635776622595210003464484998995044376384173268447782647639987552374977975280037371489907991747081983813375002109814808845790211005736758449117957255347027351290724111158956933507189961597108023535601041653913112017595137149637918025987294021054651458472361688340253658167166567523962375743279353695447170690875232957574348556576779250771117314060298012416233661535983089107035004365090306120058385317827566370587418723500413814012750305535960363040637288766946273234245402103000687477341009890696134451307321986784587841093044381630848656969030612894693862306217950855686820297680321018559486423795786892827498510138285744487321116502562508136193433833851411793628319982360383984814457937870057037830040448672772207518675899687478651905284846701908161936279827109048428597857593998922139209294769635715196448401999174768515325671490760131692423690750904011396149454113320081459483476202007803028166192197472577828133065571080244987301382235767191603254094191922765574946652035104313396286175004410353247832625139271051785763518613714464437325402041608324991970592811894410501201594146113890288929681021006988916710142967887731607767823162574441484287774103991362723699717627502272550357647951483291451213995221027219672649047479707760547103810131748097090489034635741616320378355225521851897693672549034914600774505003100851244096516867186222905903216803915931092863032260921406027568000707172365336034196862534304131211983238572101566203192224516039241528706891536226947038795396749934243371071818239584869824058669220255300247170917170131236091000780173822254694610753164027435752257447053599177842799691912543584240946669826874574394085873790651083867520887776516104702206759895552018880970518214590424632934749674416776143081270849091939307992726507170036240861850620016349242259065615645499136697093177735018244584324760954503275299021439700037728069695595694740168952121787012809574192457363105168815198942661516189773366141619756404213820416407936099951767460079019374977600591838248920639578746909937158147287436326192650687255764003710863065160673736899936913963936136655325131543067099328108614008079842526061367157827496684310096803177150363118294132853137469144440294575612741105122286702346334021101002203662110094182610774837094258114057418504325693999991132523304192194661739148831617447878715231315481826213855706614854875778592700070181654292684904341199863220811785784312441422245223568563188487832256068665215806101184890244022382286433558137874623538452249917941279626009890359265446113682299924276710033120860824300167960731034117573893026469207134004854303180216832395070109567656919045821604304856541453305588439825599907800088121721687899584302383208432241503520549098328043902083677478976814897513645333201892685884244044586763308126250716470597214361821599552072650356662072703521291304208459562016730343919235374856098877563890718369060665242413642079930425501692696731788973640146181087176724087753937338199797279939695389132439564854631655646276476801984515589857380733954911583280847185903761646269893349941816945436016511079568070317226999731569322372299437255726229142832920759904047971609634405974234984333098922305363929828351296725256082438009481645778191805053177973376043826479151052179067804040562782716418048193626762643207194240014237904096915433230217009603691620871669765288673090138082974595190421579223239094783568383725506479953075419189818294206453920467725902002179386967026090299548580027992124060693941172888699356009900965849240821527973730597422060283615258991108180683002677244508906239547534616493174513100258864440903231706672824493138322342044880489913255492696269722321272970102420067798405539728841294187909469623680959245853741158940417240446187630184495312720181459099413930540268990375382383645009400589958812345584457120213888084796914855151020269750892948224431444790931323076855623254839079463682188453534252706639108884978979357468913655270987856085568697065267408698625312110686241746469729323340283386096937953896116055653458438106333573938562080774127089996654662570210084315766527876848468446468317671065928404004373067775115101279541943261476847690444599850927618770952760703553088987249719105370922990758983108178189688563198785616457628236084294167868063201052952689471450113384776450508953109836233974560182058529413147694173201931760092697734245580274102051122486439014628707824204311502942892564184781778493253118134661374669625668686612351375610578043118504854824793842271319351962308415345153687441521225502048301862706634818779673440848704434515816381352909253733880003972973125795997934729966499876083576603772470425655369605511947504035001759929670934883596743924535740304466617987820404339782209642091691685399871686158360671987176754399743428764210113311744346846989006034985483200863772373865575791703249476253312276072885169352497892753518515413995176580531800191994632634475580118724850820706951146361616202339899576305202559155044986848640462764543188130716696368782257581493468648929456668897414390481044731673397122196706950107029159403784507288998174037271367556222139123530134740159893302876922697397123002745195147598360163236627099414048066347551881842498122882574790281485321311995104721501191810936709341511055302364898830744528617332328086473538374676443882912439950332467095512666274786742973027733776931690744625051544974268935711663880072988732685805067678347249910360129563359019308062360721941672402430481580124189073360554378033184530938725833887072276752010543089450188938096287051792518692691917244264545780006108079492473703681257033690286494409908911648883424989237115170799476480356359094288960933075581722804126686018092183872104303793061443119254657883788544184609186700629262932056601520671169649711623592777261862845378741725909366698424874282872729832752001325386183166671094442135757801969888063704143267903948077609222735792531837239469361774603219591048020417947681309846231552454581915543320572452941144984386045920040592527287733359541520160981330518487780186006081328089975012109381001158268642261476116235694558188332277380662647307492756362364094521023412436634302899048548445366428525293865599567025148563461582453766315900149279679628435666062337318643986200344180730220688850150747223978596344246113559235588370084108507081402355468369867414484540455363360359198692214637273499941133781361842614884156810092565349530213555193199962600819201316453944222694707978705504993683375629710377260935870306559148104168957320077416582410216434355037425628137931652848754371285912181730634088840709535748972166893061511153034892212861582526292242512174955683946752792742598904180908208930300647401829860605381627880127152240877180247014235334390732067137428946546605675242551895721375318399907786042783012118885668452844863934156803078378312950879297745405654159442253215590644858863499620637303477854632777883535791712060453347051328858948288497027992425856171024908981811378037937516872164676189423565477087050662530288098005691207749107495714183208462155312198306164294326998351789966455357790515755761419407719287591525580813414130067399223602599709619130773707149293060776634635232200294285657062709292752694684037391797383318628516805604628717129094591623103371475337009282439068329808759083117536278930677646274627963427363350547717625719859328979242819926817362740447352932430831402922605802812913691717180115910167479646375509213012811934749605547493276615669801402333655173143081563543785492504010825495976474205177881167391480528106504289984287494308820376009279528199552740435371720534130366929904508002683473603347967067417551063179448399273811185753844820297640565346185866378067865994925322234856889015481594484329607550710209525150785239476773663550300454210217039745540453726587838222192610317798111066951080361516637672373611654172388813460044939654144306125082077273810360171085243908778455307729473906149239433264061652688749090803892797798547121064599104582461338554299522018448484449070875434573162335862241584550386892027420770363020173419623676598384855193461690359122262141928948493779466360046785452237759334111811986633734377186604492811376699214756105342906914438266148827860751523295418772727357549388064175433324164684671653785260495990261088914819022678324785174505507863289968451956522513984254545348170508872217103167045083065234382199970721522075398962581376445281660173412965057390595250086853549054889365031341792808968622224208854301692014244311523667015299083085609484007545279111463178610805435272261477869640213063785161873406054472223060142607872784185713199868562632785971224279921943603821480247572187912523964017766615459926655306781757999426845002427678417584370967580343282750982821565394865536153633237182034434408526166416613752627171529517196816738196049161472297257440770043773220836777816202497934463191260966898110910366020465840384130025624154875368333549765355146618791540442219824418804404439741362531941957062423125518413361991406462166259925594214947000035255813806262168520542466154169878731289653766823804233910433738887280211357414035905510230568447125842847906891989194919070555069323898557595742810443302094112790265498303368527816479830562981083793457869637911350888450830658491234655787034473080948275910233467366738945210344742674450222318837408785851794481947475110944350570202235884844621833358402671478374772143076808244710602338859587540695291013725337073977534314395250776705330322948379321203899045034719636128083608996326623497115255260690702560141383188710321300210263506905831482729756110345673308973995363921041900960669421696884973293672773639764785910763585461688609078034368276813376287237461704598980484945508974774311497302538065300078077187007938794862653311764497056531501401988390233917328984281658915189207794333009849127077777393193595322595306719508546061133878222865406260656052679505865045886844208038440980837451612270466558737020267815233586949982093785201592505168123056716589695933434655497317909919254949252923862888477035251704979130667372094393230212952731057697043460389256377834928950540937230804768264501576438172088806147388238978589832750809706052123817760449888234988774196601451164572828534297353438966030281483945263201826394136106312138897332836482762919954849342398953004975683501928378973556383515732295320632901168811664297598470809281646500289895288296578538674653205256694697421658590495201725105647900811320783197288942176492496744667532588484260110216284714125784005009391408486221621453047248616003815697528924173586129147374172295016180582009320514096428980275341612053177039611286085103644538603354196227177658673993848519656697366829944582640773660383969438710456327059214566935412741500580070825770575805637164244934079504086032126956855527373119571394671222155806619111047217748277800290582089890309622224647698707395938211302346562964848881166593568067555351165928510631392631811271413134686349228373983749905758770536051680565627742058168196061383996431206992163187570943789496147602033485432702781584892872716723791539874462518643929586889920865436100151769817733162618727401722805743772602512788189520526591059465514129339294116496639524178289676724206274207854151203556588277569214623249352950818628086416782340092979880560861493474528996357881855399826413216976157174003868687987840889907617092506163260885395247506704616220226310389376868116455572803516846373106925259059989209528663690806526858467584598544366166008388679680979894215701350446499586872533511617602192524266651548855942439067266090037622510652984776817809415518954789018747919682014615576339861900277223329797959627521225641166173672043496133247854338673487052262749140958151343248081545044778135934451130227510920992854796059225769068263695476303868158652102565309987561402417384591640879166561195193516219686475859509367777219745963949120168413345245243043459657160753159342753442846058054200839352178644082234750087627141354927116897573931925959718995140091465792127133182072593784839542006856257454891887476447700823087852261922497508109034275779179628583383793837002119268869988713624900591691808589366005934543570003883969628741201114473913091806266660708469234438724179726916893207982970700806534815436142340442110816160092297763299026761765220923466677764889728259057335842431363699027489510237462544263420613418234154065460934847019976334367443202077253949790888501997706953548653258716871027016817577090047635913659285504196559685716818050744489187517645740610296767095368853503664996595068775490074526534877170739907529751388822296976697954361332633625734693148356457187543835825680764014116560898131131434514896341417931531348157602725015455285601190622147699036302745228281582386491684985319148403091119681943184496202578787634624098142942412778558415444964792048712140896313301918199184565736694937621792454264951591884643426829057035120817142669294497700359518698107212267006242370630093091228772304920558121506912171711190555584791004191564859406081210790468740137616013391786314647203846679883858000119639374067560362745153235808132943789634322162609710843233333859942389577877087888447112196823652282495778369050662244720914987921291801808542969157825906716408547410146810908688377705857454045620186334977900769591382743698199821017509913088212664058286450732447989701380908362186209509866698078254375308856166996481941479618636526641856247571453277656288753971724769924272072347167273347789380920680323000289823102744793755460300218022909813809950282696045904184556817344372651643557120661590302767109960630036449288671538970173301487765274079418675684324228588811884260899876748115702917285574343914503220813015679545969571166266381584274242547509624948143163146500501493735521495889609728557831737326953049205088156703172132331667154185039403661719499458256587725977575078578697854957302208863072077424456993091992473418396106529509492946228375995436090419331390553646802601986209581904585005257066525331420178149220111137916472980196275516637841472080309863504479244994506773554441230263771260800641001288942337908834226449804126158502022802828407676576921170840707821781246100806943897250078473600096229414303646560907970520005125383976662020998699258216199012699942577473544084605197296744054823933685540672281025316123187406831232098675833228516233245622586062912545729965109307222377262033260094757819881999924190433274501645085055869237498451090882674960459683239825214843794368731122229179266230928595513768582025014397661929905785070989892609385537579013979117465678802747142601761103489557151968469283989020104680168851666268504705276168680422794074484258626572377631746790236009064639967167206552641762264141984089529840497936639133714670584910674155674572577723758623856890017379753781910218464854784526955316495583801481302540621837462233790933834707649178982262742372787166988528651075741166234110893802855595604796070846889411863430406820890004693783602309754939749440081969296779485612737704139705303220670665560435865295909966859724396537317041234864291524530643551023071579364217357467853970375076409509809412799962949927832227179953071873088180287980415286464344144438368741899408222891993724704638612493327746634259136636450462282708953556115743146240184391974474020810211935169844291571883127994793378120493830284852768572460479094635058905942003848541611163794737623490273627242991594159455568861675296782129585664646229815010839098856371014504720169319724851124154369576684722754443158710161214421430237613855035494065975384717183261445670940601362816023136901866737633047645223894225651936669988633442441066336698383545769681706563744520522067870917714805976412630506832945743140378944168423367895835326701012945982644382357871649747505216633290227550087649266283926532698110509514067754240436709927296834909556580648969937187028874407410945957130246572641688465928457707076975858528534005539021982049156065745568812722178918158717218763646562680168534907437838278573360097309720271396572028470061751086752160798808497639788217940009348838298467632416350178225357272521368388116745996288195309572973110497777268676259876756714740816911900736204615522023729415100977376401920390401013309170262993372010531550265803310967073478929242564120459125502228610586535032463704090009059409118248039802529474834497743388746108217371791972248111806256059191106090904427128431817737493408567457434165626344881662150242648416755050687597419408127409772530342109218013302769233951106103494084346893359734543321392987411816572842723881645954739216835037703952016456180080494920457672729458791337053106322053345073345784280984327257651982195204691971929014373603868488359122639914638899824793679573167181898583645001823849014136989557316387706087169342394014434123499424369627271736451668564099123356369826721672112950836678263796803097784730327455199839188064833542720339420483386202787275385513316466750459487560531166067489183268624757110851665665353348027187280353594010740424327093768955134958478372553854109100851071235841054735564432345984374851986876685925379763353734596822767479462011015547741253492758004478373088290808068609495232743113218029164428256635414340989069712796998925269842850039266653749878094756216522873371532090883989199305855819514817541184481630511228898753850917054320214905384157464433491022353251382909336831770403499679231799432973749886789571100313235985839860644688741528538592690376599480528146755013258637088896038068104618306494792900754334354045908198044060022519545949158868760345749636167490801137659741519832793216569713834345136787989219096622653334373938031019957363602096139126386049999902617374546712543903932697181924886260710316047828158399791011111559055681830758132146027450788387780571323482392142539587426221841516024142275122476733630019880900979033170230094775826121060488405843657055204470783227707397069331135831025477382574415245688890509836160834827195571945276586336355936347180482260635905741868283983337094632873672553099319201474900001497936962030717950554281699120019682544142219720928261814185803497247264258747895458472347953986177152123146466109785956374291969150085026332694826639955645277588125605189803517224411052811619853795481361222769162311162185505985540460624312254714863880085204195565746578701259792457511581828793228408960674051221136798799915379859322310468495074049570124718816688197741260566078752041563557844986147558409343816140854231215490797238188748376319134998692365244411981444818511580595281575931260901242199182477891617167511172772093226081628908880685939742765400314180955617582036282721225548773229014621589233246683919906106040974847371732843302365876808870167847457609685964634993715471874057694146043904739596972789565269753691724780491190216545011543607342147194807282649387271173572910924656842151297184310656590193840299058851710217042974481029352740423982849124543355625419325286606523711944349667086162486123600313600523154269067189486773104890729087909930553085721531841339173671794002725011927643725314140227577314586686288711108313224566648346926387602267040497824980885463372444874245401393999537490660143180658197052782338760375203388398285456890867692753533480179103455569625142218881825257917924096344625411432030559234597030450507328800633169278734984465262438207546294015809737493490174354920079075040773718585463627047695351283179715255442451143143316309963320106093605870027088781952094587339153155656590909596161985012295415611906159913515067790696941313938879721767874820331308095505181807616494122247548579073140460164250106403010681363137209994981587223400875170100155945805643112600589402729101976790618278186277006407915436962549862182758454450694164405800527864171719029537866655826639128661365287393009465596137911351430680301581969526623816455414552527860760453547264428577164379155311880729540534326831496222119467894816908264777990927653266637945756922114829782813552213481574318586175622066482705653308067940519800436696757883403216954316315530403882851148663003685660594888403588593002742417634216393692663434312193084425537335386741984399846561976151255820067089221601141064460494544951952873040511601784441878286104955384488376225829196913588857671466468202554604856564038374204906941640496433076969958379635813899106488893497290792375590121986522108352497970207701230052008430888003747703228135173061544057746748339688779011006501930308713062049876450966807853745208034027606739887677848132089977789879795724196650965534176653403282352085730097901720084592083106353221803419338080470007334760967568051371239226042070612748729039115366690819989235746368699616813241451401643884628491843721111396054604510548209732183211627871062331894526040575548769886253532922257915613171965254288931293597066232641024266724994855403865663125119882707041485469351719078799625640023443611193498266961339132641879791500632653346174018516995458018526649427082120189839388707987603874093589946373393627507874617046201426211065840376624979803629291611924041324862525989201734827045970670949018204439954062671350703656639530183818594622557653614361212326758309443865339282674362380682334616888740328226184162772667721843255139058110190429946405245301286901812071550878761009895721968779807960390925447023837600324865387410112711285943649396443466582720136474283366725431730266313702358239897252166146379117109130816189953827706023546947603230557766368996726787643446301071963240103886625152485599163598618770134811756182581497930783496827631390431481638873436329309784472695861892699838628033427108565805796329129392454315530793622081194928998166435977023227361524924133193232962991662037861200087858397296843174144662147588116141316913008180026957711694008712065691104836804856813727320982623944414124498441728183794121811798806340167592716953060863358756974961264463355683122593686628872341180871002259816485134186885325118289004185813007006076031948107965013059049314053968075838687475566949163096546748312405324097721689159455323593927535108080148109439899942912116707917651508439020619150550714980972081175101360270909427696397635984823299454873646493628250985807737805811412501806933629916845529952692451392154860676881132049108049243515102528899671311660214156815206172688613555089063554946630080782425183972746347560363013642010615057467591481718712880503295510673872556607690021327479067806663919337798503054161555661147903357593576620885654246611037339833521777589234814258069895731211928601407200471865323622236450111953730317710118163314985088805494586595108551661375787979669886738884869807096733459350950734854328346320865689578952669550048934208598487790036239139082604794130991551209688640456895997121181892780126446180733227797410884819830047697232737833050133235879571751264594481557950020184815695909996204558237859579205588152624005991341933244565887090432754711862256651862554570624875649588275354121577678866026044420334369601147043524166019734568751473497933243512025372661007020794017164068967338903919691990954361518577373283476579068324293111400634841063485357190338932869821841600985918986068407546816352803895280479084682825084268672874536189381153542949132840290378734402859789241868133192499949237764972740383974972626012967013589549075392560787292929534899745045247698403055275664288216038040300867316347262508441337674455005349689075719589180997761057350995473216270176257421017051388274905567846581799845899697860383079354523207278223178595183756481066831375901847548442649566716329145910271651533194142992923242016141660389781924859581831740995698065580779620118399754500774328323050405588095000154243331988896612727230214839988604250879051716088816330114526921274064510000128273444227624651696602011289010288872364337986079614251898285417672550109467013879210570409064094033213362205392889368723733229769642660083078789193620964461131385947060447638317366120467090423657221348078733786211291298254740645578934135667052506078791030879599247169036499448358837109523129482506252779607919122991808755364964283488187864853089578464009156731660320769048433890143365642078879144833742210750227553862961051665919203702942346254630725348642131750659039250989544525096524307161798980535658702989904273888707872126676349872227585302123146214904918295951155124238101051121012052890758301353142741567320205468535192128861046207431673408920975583267550412233216731912378555563604538303960997275014477100981175185388002712888239164283183842100872805117866670366032057243379968649972780011146726222176334273133473670437073383603627084656232947595076698943572074284978012336375009228357284642031899912647941393167940965399083566281510962355309632805604857967887244652908932343394733802449134258549304770981481473338928231727287918511267703916762102289045776737233657618165961927244399621928859847381776150612214629140640709113061243279890658918727729979518453892309591392582931881926327887826157651521667208393428229715230341057064812689798379842035345362971293086255720878877536928173696635996719588996548553799794945748830220575824907684419710614598875984906136687837008360383528639271385023613233257922152782576207963486822508472293917024664244860536929909728474885876662010743082054841226641322317487973590655403040220662137912461196342708760143764089211161596129301439013978594258295104579377578167993214502879303191215707289032332311400374713624160772401351190851474774640169592294584002843614674589629617023921311809071297633567955869160826170189025506653141018358336458644141232884712541549240693080328865739535999028166438964067727110971970053128489390616222571415574026586922348019620427708546722655175537760882225391009234926513404359648735169794371418406409153781695908719440413542678758146796064510411755818026656773857370890576105801513237511722080620397856191823160397718704819813900126990303622957654464136571406296010705999020366501599750124901391871861657720541038659802987004688610933715648119251432808707558637219604457557287141809040107916646772298862567826286801662131945251069312073426478451359246726798135104425909179729619859849180730661418757555104469588252144474823422042301670389589554522708201248668627721240870044633423420940646703313376310694151222165972093213574512318592476889417355256669647116237922485306759938696617490862706452600803310131503168924929518877936575785076880254354693305523741210494407119721704896060161263992163695126002918673735591425169956457916889923229084995448107184171534026891746726337669703411113344440045674488590470511962478321087877531794905496027908530647737945090824427503335158443996586322820940720302916880470585382850338295340940837018350490178847734621555120766261466655297359269050832572615700133035001873498531876787724702386484026111261735727676170222138369897358626726658296339817468294779352067585751130813533535962632456713544579078710909451561230999932960039354345046089429769259690852623628040590838616719280333874358052243809852680002956116708862139282185074561066908718485892006687873210285602626844697567154608549974480100640852365568765859362680906735104781688573861737493949574723567276992190198093522081896454045880207714526765766291705349593442553014950606920624600481022651785094550084462648944565366802823192378932040126421353516885100922754865378426246840780145966955271359076414610465370843709821722841742695979390032431492169416237846153325404412448651643461728366877483938969020459573272420702791032743264980288707788402480482426647754168138483034295702769693214087364634548458368708614197779032475969514134669023621191120898591199375944003590142698588428100547808878073313412639669566037932208041998707069513742565871919486286086069408471136252703251069300229140255394044803312384491320072789209588414412903209261238733523345506087328260640864554640915795619406314626489296513046488020391570861064264001493348365376478809702252961243668513990501312159113843574701726538104127958551755236444658948731110466701627438207031667979432775413101219847235624372008706049748780574832180760331676291265816883062844845681172946276568707626723434833368898518874190938885128272258035781659187892177726204016671861935759628123267885146553780641760982589572270260904260047851727552348299587931618084004883755588736434074483332349614978415304553161672513871852092721630255019765088537762176957939901419012027068714671946931112902483165321475575136778855030622063739464045203966438827002121087855022319286318315467289726548572244660524514730281738347254770527433755060408223207317996448462884120130842497777921766571124690022703261714026022289376006544896932260206216213477518950754850568491358790187022879783695987611873114502363205262229618192092483401887299069707112431438613998965328076664027070108280619515808937710163765027658612487041285096151072488200218229973481409291203936264857567730844570101963272655795890760114632251085994621865227537694959837429797932274184199111721627632910544147528893554505577379070583165575334735439605375575485176284408216571178958059436958669075727989007020286830013128644665880683214993366727317124247209040636062550063653355878014804502545430053972657736474018328718523688235543502405580503515903660285599579684035366841481820728440152575612941646455487268461595110577163178385845847158663649207669880767713781627122031423687811511730340193700324540479374870341722596275751893517675181883733999908987117166484751962506904506359976656930650821570418498622182732899261581313899622268143060498858536619287822405555266591167270656004752636593428489718318142190106829672026845881317566220611566602353479954336807738133471711760444991824952464411109577645101345341128282797317078348166795104929155099996439779523661719620541561375634596553159557860151186401179476703093988422622584063175052267694132029826344448703345651877662413594624698559019253790969656849943769844642710813339768571853111063003858239913606236610490413577446505352119357317492910957424489997028400236164042862743743238274197497234018427097726042529082704448669131604666143748305854433602874718186837079622288928688909488350073420755691609832510923447619256885220987383716175252531847626792926903938498410352580352409202630916152015473792369385504591252300092760319752166787705010648876942040786011498866967170092353371073928128807931525516269529933801934916077340201916167822570808187221441201342960295443764398700535044619751670322311483494375690066239835398664244119868301603283592075215458797024959241149967982349111625347534708483723508676750733112271004506051507590498900435868264152088316256192252734277204580686677898123096797142968036647238290030706377917215529533988766090328217249406352137390238953085139056485119701872841917323310030026421754395833553547800202823406485638462644330233213426439441512480832146978204072773147262472575795858118820989913748593974460451222386808162760656126883445144289663077723077548853415917913765469021328184044548092996705685813398578008622333874527198199608159830086903699125305974020486766552995773791920832747144032951522851635056381719329496333162599876962562324924022611490020715475909786300138027594909903007654227274180637908848039002874433574578730105936956527411971623266321543143908363808455708128830671087400510098097170298706365944422688052620178560082373888218220529972429317341334463328107484305272274180232833525758060103577248170592555276853664432732988744318363563782397056435049894152309271167731760363654857084427395032201496477893285273414893880422946994399423322137340137304732213484158453201644164739531142677313874479967235948715002471887867172255180685719914718128750108368535685009849943036204878905750992739253224057329071343350227685457490465812269964340753614257785638295359425701157928273115516138939443369003972378892162601988802924362395285342159684563211260654605437226653619237003936785266379521651287131053175760172401136241692359730456168562950148418449322510797304868566732209243614823724820804837003733012479571695047372162077891916050629602280027564495541097495593154512438919865724929245361852573607146630003405889951573073986170404256292786480601178037712532230224612879147461832433619238924548714818247480155211457629206537947085055313407884657782192626546365498153247792127583450342851605938541909941954326226242981336587088494048272793978119978828136705831277348918791363552258319316822151054453723787486178993650407031510251811832794470536413898635939635192507833991070772055889841751464116749739589163827066350423369136916379841613827175352464966285561266954298593777986284199403742874396128534746496901046938133488447748720922261074452123947920077491331114019836910894164355127617082194095978752432337041224439783985228060585915160561781163197797419879945273632243905443004413950617440119197807677366457158736313967856326495538531679763872545582429670188132749077137888004390230698973247652891689594998565871974055577914890550479682636970040756466438045132596320320096398095046294062947292498637643435830055760746080629747590893510179508914525192360631260265591102300502912510307853233763755623410917133922783063155052564901226895558373589274337239886510326910376418106160155033554796716406104301296542686722743675751247777951466447784328390877646446137666598140947062998067923284493952823650620649481787616448858349705038058600463993579785841014720800266991534088638793160476528785664065406873837773129050879142367038611166097886681115121112545190916026289435911460911779367235145546827129329082128072283822823004293262152237997539061174314098640676291495329833722418075867344679298770330537717893952658335360418614310570675056737767636231045364819391778352003291890848281384563577539066726349876736472041092003567369374108185898607470557476595002735920313330545480768185755435545817615273898107715752892972545414905049840987347771770120982247856484638604951160221174677394117855572288407212791761479478465148838075661259572731780192442099464308767503462555565943434567923738519163765678872985684970710448957748192351539815386860764644094391542606275635539327256873134609586926807618440773431593574578637329312703717902261533539414575680893873727622553666873935665872076706036821434511832170067730723220075187173843803613543956031838360072535730504680506583286660825047797474259107199090934883327068315020396353050363592500731354556267170535208765685858711453746649724240903191508968986075879684492871675313953457615840549629324802751636062686695645696439032986004344698804624171618951177328609245757228776262961769451253806396979805496903890084946719050127864245930015286321228723281671174726602200604891057278071617071882161426702764227258634668859904389317665135174442588952589266101737099027961028558404676876147351214193166891213727003583483161262705847014305806923463003378669661773114542918179062038651041136299472305370008491606716901901938793511065560489560926852499213748130499201893489142555941200693175598865439210893674811726345675792558420815248531562046609698503409246509521451495290313138342932100708071218655421482382179997499763320034747321563389405076732392774891352600089321751085272693921133682251958785720288772245563098936346010595152817016641567451827072717296064931487612747378354242921470618419632262490828921769542898396812184375322279841898063213756767410820871528802739217836302158516658884860503401530604771722423055816920371582520900888268638347686912671038121393405970905943355570783307947671059670308751732042605515497890300374180984038798693412016489916728168665173336212013880234051857168055041867622056211311887372194385214793697083217360187465268855194556105659188574037373478053648357977580697590421283915329150451327968076345234216541989651142753668316251878041828364919673661917191211792053471246565905891814178598998589348980872984473145471889936493339769495433766015818881458035245696888207291459144683084515780941062645243261106299046761715865428423829643087094408428752234446403710159614433407509689981462398997555402019985275156050981173368244733963294606306924257544705889496354666185580996706609136114634241488874530046401030881566574334159168506646967572683874339356509899568493853960293200849921721514171334831768441568355863839851491927903281965516969656192588346947600576828681401196938613191138347512651808341242495813897737661590747242531697996033808459826055483722342259468834273220444165978431934233041212007862404748009197869971784412864054965114916631949322093197031821272357753281543542621592511445277869053333985407365510102576086513461429395811966124800492350272847957144031256197591901615825048226894434937394008746042347602878026013342785679073209437204456624321686386370469070011346775690530717409624807840442668809461445876154851861990347212091932612570680003927153958989240105629061940518314028206479954117317921282970707637006246630247218119868507449891534453132713821024473365405914308494890308142144713221987689351836882926898712545048237134677133732697743549928167101651310388332316645318371063085162762749488162640755839358393102620991110052322861818062316122795046000204736333224358707518486620195966634772199044616471952288490953017874305144207683166729623420272426070166728501189098327845804176970855176099538835313098197465887436140513925333363144325555397035722748762050226762947253522241654501323909006953873980318110905056343242563040417881861671012759536945694117863450267001788570328686803871961215492525588942514967090792034777828032758567207732344991979258192035797328635245938336702311688382849464467828124805339396678714254502641065247079338624774177256836000996824536042971283529556514458387910264963153989735708381013091202534744220736703262825654960201293021426016073946790387453563886370107894306582819045212844645699729191904177889207514226066310224148347593549937763771264788182474576764083210730859337341124520039235492901186947575409483170799899930130203861459578247077789549777317454343059335697414123005369459617259623984666964828216509669355305068278271740119490049473479501767210550157282487096609034862619473824344707431039139018511980792327115032932173725308815076898419951731756166015477290678552781204436727536928862533674318341620457564072498058836208249120316228972316479964424097679694965018831078819619474941613710011235971666856876557599906776136774301060813063051736789039539816312466303849134833725057277084163516476805968040571444066681878126357673313902092196076431113505463641563343601635698688257170975667902830487459530777955431101432286569898861239620303169471907744110166867212069092152333292710067017625190314729771107935561625317916926153711141083882697324454872349375919438752154803043840125594512092100553148966575999589257173469170867448868638388163285239084770542995210978957523957119047415700664445722628089389161321006953285133438132388985378061064785844486721150718319035888434638129452182484985935637920150817664575489819721791722666626500077994785508556558455581397357975095235197846861858606876319936965441679513869889608408448805402627688265019707973140213086690690274791512939097569260897928505270100287274547559563653677761439300894277179362022893276296219196986010972129044201792842600495736411498645332619187660345397526836857527333703766849601257650175709690800266130134929810504485709127627732500361397068040642439249732393967844000135593359637348630950577469854705795842294104839215393394014201493856802275241827256518529932660582993555270762430537828967254388475830696135961485819505415438804476827887914146338812888963995374168939655306079786262196848158730752955078189049786760840859056199951142044636558306432564848934206273975391497139531757502396332570342603231350621053789776035834760380877539741478590666413724302244655959499435028357095963493332325285937258960029613972392009911252597866438160906991410734316415979416706502547063115769511568089018925262537613655626020983511800896620844784045495293559564028513993929402567976136896500354698628107449906601452755567595298174646154006541591854140317634593855467729135947361812607318484582026545046917955044406036601772884282222551089813880084800253448830647814795329113955800828975652744307676155903924343072441592569303150088668073887558868484617052147862992541454621958349032183249063615847838336822099786072057195792510645079879605960008755537605622692560268713356317051550376214017974529447114609830347369805877050281752102488175122723756306005353539114648893960069672076504340899766832108203316814872217004648234819492135907994696379156344574459033721677789868794910266000206643920020284687516748212126645482029563026127620110016305423769600724723828169163640806183685395183413647465134428472541789590958492113676019574129943732144434136823494020986404741656748830606499852319590116605481868459284849728758413509913526240142888295669373093323241450809221204686846895970994895543736851657021336630816185320669965064541964983417286038572639022328546139075195630135336705328597809501741901076049995489784849427694152807899983785880904843178336580577976314170690769158233856473785435549357853649779546400799652928488403319839667185923786606121260695351815806486096797028752026349244828292513977797811289374284526981326243715906901499565789633000698995722052958989470409442233526024241972290124247042595824447599942329719580576642730825884700397394327934718654322761856128209491390688965586777014719251474143914977533925756384724564058499413806833370732061001441578903948993734871252813170452917934640080361761271953510190870632544256047098816323675430710904034954552728958784187667336294150119103106981937923712838079691993881190380621524462929695777943751543879689448721368080135007247776062966609943313140683677203222277278841507117750155092498574819314376072921714090484216503593782795365180461793754579458907245210601171250984182674788864446288629570486757721745471350788309553625934276986107807195581214427798608662687003503541699130453857758020380328541589422278925588471005980433879265993545075056319282532921482076628970064393994998100522729606377479747320763495195883851801175795147097554352846021972498427128861670469775382978174063727485629275003846047432791830041082094718989827487524492974722398177650815278291303291930321795553569458145217601643988719996413646164349259943203217885108772995947340569186987969637561349787521305727791657463487368099260456347412370178129128353440498425740416978837218343474195187133508414425206014113484657047881880074332482170127621204208380293486714626698094703711853772250871536580096403458545137648580408566339517116526328575849946790030976126580529768122665500524609377869086076593577847020630074898726167508616790327064470446418238317803682695608751018817327676083571885397647641255104555558515932234717966831925802352289263663948278676600084217700995157702382542819496943738362903165515890757044679572119459703077033248424143878030785670650659211547632918932734890471199357537992331328120188093041897826171153459551362648344592272279040079898295726020224267103390893216627416971243440553712932320261662847201302642303300060612335795864624708272253243579471757706709394392527132817513766406481740011490959842537243963191602776210513468129834787858675268068344339267204027617224346435957849487424332308888114869922231517285501480309252656956129620191800659623550156908211171256808359284667772410148711091303787959222833848170479234637583336036420334503884686656782566162869448588882814018508909105114121857555756007399119248990954992446111578559977801774524555505942928613056370488849134673389169054150936480577071289795383874838818406525136719536149752205682121389803769858667332488586945083971575258675792522677903709797989896443520320098963646635656095706391061124769923719587087988869854179666499091765598955785965031069485432054788328504176003981449249831257197147038064738948355316061631000950135001427277404656744911341224028225685911949589218234658601092478799425693686695089721783632688826614729224459336121581021654023463360065659948485524594065829542220081026424278579277749116478776358700835751409242090189321141849636759009387600738579513673929745711325861002386622456268573040580592272946627146245690200631617340840189147729188855662206457989128490945079909914637501312450147478072653420889213087084250559812698583490129934296688458830881404809886351104090887178229421703141356634393397762873566019604387843798492092516228056818802806580440881473987299291894292182057900739352704790487178334958281869272762769384895515117376474305424978507722476986496774187033859488868766852762165402941769656478680447600332461865746784987002630676063700330988738748559150899577905422304086062542754789413761858751395180628185297963485971294303504484849887417403814866869001304177865263236978423266407730011031584551795325431856892276797118136794751951880986728185490372717225714712505707401779004918394799078927860069636344933899224863917379161264063795575907199748447401744808658975799631226112646057180448348492321406874607592566336622377266651896322191987510900369200849256358700911759167139534292948806849114789494190589362826194433293943272401497686219718229805181326024757820983570362644571366786648710065066239259919193683230684059176504681996076521689684867227097424471409740712370205712684746339180183477478312080964738893713977074812099475967646352097944461825773217579414401800729615492699983081114448091793768086265893182485921416562607450688778409665038920316446785576484479283778785952830987570208861573002903176038271858276410884532260894476365497716888471391776762808889378192151450519127580875603800373249518724026900358106183998383941623605669530325214540023174584523230172136120342857786826087991910011483741930980994335839520961738787219418091406264498124088176138482849363518978955294798405112305408536785984738647277472080579548832944034396407327137312462533925179679942080497340639368303965104842409393825784251544155523355404787491769068267558888607890025631676099022107536511166491627919452914032553358916373853385633195251680092952962065012275905853060935897168908443983642210536836831821556099132970677746913841745841801054599673504060082830737187068750185555594047429739872280097954839948877733100588915617970076139246676562556416991783257234051738371634822346087066712879772464370757468644309530774479568863309718395678529378718616300274107563182848532939123251170064646612444999182279232044783372782232644621110921777001333105082374252766758102191883780572811653763264556057570299706832349759729651695879350254096759310393807582616897103929369331729602483153240370752764022946749334913451096769999104357772116681355865412819236962739411276486650962847009080812957151306372233930135448154330277154408573012792707949758023620977039740912522171761964697598763596334413032362092587937452426590579748882715686640111474728928321331399510247673657996272851009041356149397514773843666957309482434707978273572374123278113901162614302880502667028133913091342793097215971820206213174898509368565145139229855762169401458432030326623271461498797618125595527670498238025916594258507378597829622748037756637972288525506677267212395984827256592854814415660508483948789656125174378504675503017874309239094691216547507394012386465231827759839491672608609815925040135980486910160992577911766776517085018014236967937841701837399776490516645509502642669057629089259517172049709341289780343729093809976620596684866309429064215916326854222149141972355182993146268810664539353658480434107692864562368514286489651523885507517762176775956608019556218011953760742133105444078668659924126753152074957572743764762019171432252800345327583583135567842270866451640386065829170558578284675265022338255008012779707970344444637831349256793215857602580369420896023926007502541599947689448058835461745992964583338136510526958584752376967054419764094297269564541750303571081927772814881386977131001968235311285032273477384165741254179495555151520690574250277100128523955470140596029160728629537705874618227121050123681602174185802657696674635237657824916592451249206827422813198921808793971127695231128391378401583671008261802299932423075003362179761154190526700782622106757034051669112349338956532760783927891743339863805066553053497767812770086712798528243330558471864965535817989866126156043668588562336393051705555348010465045363155744193459553237642734902103947485660740579534277302617419688547515433749659862921811586560954728195525260192777262614855277068744438934621622594418509738321780891778835474305322537527676947767609697666985822102992465361232010304663035802357271783136936163017190053982758426512832569050719131917162336956318661609106036161997244588967728580339573980811376046617137712465032857343064290558003281114167553491673099528319742348920828245402873668724546996966154746259663961237741582581110886106732988774354900859722766672697370692853765274890569343163082483286369891384748365675556357796173216805898022198599093722191672714841928800860935473195433513640077655833198976533076010481838087577803806464972730554283872133067344544635414244352506283458069228680609486520853212525318861560323412254909724962153095536787297765451030080973601871331706932631524959793682806743122335101182553890105603957958512047606464820904169423216723718914851164783714365044286260380041705363617431567951052507439267708780833626770244460149996104038143124959068174174280046712325984913145110914766567938825340457643450456793690178761047252342647462447505762624576289785280185382553040003942297356076228205254155462771145199505699694616092421909867293321152216451148425672605915207850753118945742623008692338202637506061155804461572105170445424363785714719924456406007294310890690024953556706064473495513429205530771465415094975066865878492143569449208363198209735358173701716476079808649947119643721786415439666362444818244906018804810677077676625709398445538658845058600724922944564028450641139230306476317533904318692772997953532865730584778915313174943514229202089309921960538842532286557919327118581470177789406108792415654207204834021442543689755356943490047158545692274892733976033196285510283926907651248084665360576069286516058826686510988039623142475285356165850039865251129067431442176022459381538337335744194972745470671302677845689323467057204936967829427922218096917615729365355122083953377162473975270825968961529690980691919204246438980976797869421252724308586239956174788587988894951780830376847198093344272740236445308705979283049014967426265147519092499147773725256173134067472949641554617878191595197558762400865126971206424430208472536864165355597593272997223290513773123151618761592058485834799805271473370660674565871949794399567320238047520546425924957634810204508944848865284145332577338622393862954393446173282168314223674702167691379585801736034509316492567091670468328360118403777491667811134504874197925167525778459517781296183229568336212656304457296514024583272718263819893403572988603267872092222041897758524533502262363553309369183924084930491498478973543400080138443019774598245336034287548259681423817557458768480714981105837552591255925669636509101962040290162799954162408080101990560079612011346633380939983559761021235284992295339477093836933358471369748384039287801271211818079989933596070167298416909119854505196136063735906896461048734876900749203856448755784202863164697288534158445947804684065526893392310084485416332431431363743949254523679638866933371271254997153551065719527204249173673900441375801907509589241868098972164868321444787675136029017194291924857907597307839278693381776748149034089369571821479249595609044653913664003312666372471425420757544364350462363540018937769874959264845227685135619378201581312771883489051465999509997577635615762124314591777358619459812436312792007867028567434163675302683859772770561515875149329865918643952392051267349692837131930273661916246320614851706706079906981841752494842373244537125927732283853139341837687511645298550179920628132047509903587717329541025530004902086678617651867310090265763290986411012763173479698722613735128196109421217215716836760313676998220024063509052938706481894335492703664473094048993979437168559300411387487540674790606984873338891758438402828398546358641594264941923533970469919297906381215743917629328551813145366689954131036374421202147108927716928680496264059722077864590298682847840020537276612746885314133576195576873762075155665740312426583905961520566809793719522886890953804670335700113660643237670873925005792259377736204405149812296639995039681765602003780045036118502572764581443751005809856270273564681931098155120900523122599253113651652216885339847823039890049761282394949468756652956197184941552407106370906900467219205610556686071819686581866881986905204919039492807056321092811897130562067626034278315664492508476500123110792743167030515802609080577957836468245882961392261749677252958965021481809427230748418437257266566965218906773003722444568773431591867744224605311846178676596185775398710461464075916249679195764978615195763835406382300673809896613776737030490685533722879226885599105893056630732461801928091824422456815940841037819511719226882639832346534467780546696410229677868228305543997282706270140864171003945519258660751248892539386256452682051137537570039316422776456218885280721004152621470685190825258496433110772244623602033089783463497224292790042373417542467648562108302589186040280630106358485689852583335865276326009766358813302242636808116392312117735692888405591647744191965847007092822296875797434752777647031226350683949461820311966373884492847980224124630051059009541867353165479571168021543562045053928312733540702252195939727320443769514961058626224168349767113445764023088428293400673361628355911489148723726758294871813382633062627769282215496380894765528866209560110378475573276896439413857981060297665475191610689973331033087603450135716140728933449772280203311883491093190515646223140452274559636498557963097645699817902289452477146574572747232107219430586453653608048506040384067072882665766732571668725732275897217415573833468333893006808439956194009135850821270906762324289005466835113491125925871715187646613249020233034613065310617956998197094421430925954867230790492530227539740786820596535233888631744604130580516042305486705306301266193077387701551225854991000751069408679556227360201355273544655825307655765119290609080019397730886263001893268272663493020132188864298649967365845104179068733086775359054071603654812529983080054449068044688942296163929441063197976234558222359073860956784385538071693101442723250384603473271581859003193761856060696823458784800582453561408139530356364122324233124477067791694179712812899902545029531431828824770377345752641149451472282809421352572493786946549077369703419150604209006838235506046570125900938278215347426221791399155650950655147400335047427187546130116605520467797572747423303669405829456464110461143429034317741687386125646736462708078174186377158571374047310331864352956100045637618100721497896681636409743585417835464611740317563409571170538044297335156120404139249086156401717696999819560926878962339263286916015915697718751660497326824990059972281858059862582439480126749494773325391548916074333615693753770650214919343412956080467273733911287620525586650831635637623939710063503323338887832930192569663778344496437135841263540864245733138987221416703360263588139196983019396570049464822267201661547741948723645984552969187648162070620958775171848134132875956265257418949042118255667839661391452606773702428347153253154698647689061163628164777343911177607453962565956908030423944757621890173601918259430630001644471927938434456997811943853727329259090190734120028635925201393565972975286891158726514596572461715585311429994972095938049450512023487728999127753590441793233157995104278696712866378951252297286987599352044655068333716755110525503889110954026199176302470498186225164259239281993791046191185264485160116600942551906272019229868540640672689130618212134489668819341009604355502781790096083332608348126373318305274685885001315551873811037383892902893789357617734027902210791273611687815437641118675522199333247615135395307855597343828574984281846713163011734738652352078710224362417748065114980559322889359773983571167918260537207523404087874802829351979258835084191492522815535873745207500897009338640770994471995652070332447940263546178094189672247269580248689237518372351026823102201461543086797800786430551758196820119160121823121388137248893699201354405634336377933630317174916849861954184824071166506909697623293920286447492398685771849150605658602659911246391794868097694210419472016199693755470871137207728440161099337931284373508238272944023329715541620053497588312013773041773449233756008809345753675058868068555603058676203969230953312585922729890839715372490661717349761282755320473934735729712257049526917861054364948840676915498874526908082471814833607511252792109648139456377351424484308366695001751071880837567166525020304951370617936181877050339853764297999738794870909770453827959304671912880413484174723811133834175505920508305744544591265641641479348370034436707554607140517783855160667793044111472314339383502816129969241534930097943993097451768642292951238182053271591934583196439348172416766156048979806317870921607397373835052612765897343406663504796378621697921276916323934527313172355960820717021946581288721156777483425574369135528912409044566199677950561992897244443003517155090766506577193921582668825105048437016636938906541457074690584067650434502126071087514822601923170286804089211373164949603172172186706790827963474479888883339400132559142015818253242023057179387170471543798157214003222973013053070919434787663928864207733233200135214123226811822547698862163822975994606685784348298947223349112400818844162012272463630046424748293284594420978317273200133897717244945911928021309120010554541292761156051707757800272424130005849821022489415160958925304207157711962585775159306436237663623391117460019013081409914594406721425224074843926505786757236722861559254846854941071831503523349066876133149179063680644798028215557310001641691060881725042382777043293373672053170332242455795411889574243055027322244110225753318996640859991100196669393410356123248411968343765407960332866851719967702231330527947793393433911401333299528838670710927410170594983567116086002217087603830479352629813119220421060593580942756623612552263292722059654658027714879582403094599412265762576792024719214843689303812548724345577604043399224471513310396189635113016096614933948731964088527723220153167939863973202718187616061718859615492532379096723652311738921532994243019523642169736540935890272553219802698664744624201733290400478068149058890004603279946322380395008528234627527989363032450960270247610194889040187595054337599981881022927125415404347050660926210662791511721083245523825464005229328374223344052256351701987172971899573694171039503234564804091640801038315446954922229582446264122464509985783413596462608427716355729992711121900398430176631526997368479140565458636961375183690531337006029260077068912310991135485791793074064705272078460982679928971136819072531871446238253519503511503238749864471677566761191625732233506053660100283420534620095032498130596035238564703718573819310904103010879391470173678737628561343152693764384079935653989749535232549801701040432761634396176031924400919141947907545939214377231139829500860645718560956554398722567065575713269118823099224214421146024828492934212428803738370396965004748826042743784172661710561760914892912423963536660083192382022603263420546583050538441699590853861782833695219696322827517237541520222132080503592977407785728820928438713052600882776151046888587908208151294107802408415451997230895424386655945863648191902416802977586177613938834403109857445281987491524541555495988127569822817681634836294738376899328870988334244368022083957470289795371657574088514358233478630780971088124694861744254209896339705834357024710793129941815731859272898738010757185122215819222212789549015514984218917076194350661952532786913369986712317875957910281910982040370492507067510337645084523800213467498197634264555907470684078132019358210184291181752252992084458019205033317710372916769827864668919608078184063138798634425550470095210464278261745326362205001576228554067358559848783413920040068415931077232394609852085955269281023689772934679539926879193875901860665257501227382776977209339827626571469070218772860949247334352929725158408459922970124801959652988032710562692795868382369580360361721954118228426537944598576860507391753439818454766089100707882084818941027788771944919228448167147398577288571217962511333359148066364527353146265185487359804899765464447815164466921379968142621114226371859413287786146333897630805715636538302072914829536360611163526549599368037793759876238023036372073559167878659758905635865745714757539560943621623453342368068952025077634507605365810796730650373273564139230086706829247999570123957881506532095904439021310035280305578567009745698828578088908554426526501412639688015534146805340847570573423582255637524809718048008105860272259230304955741743588782546989534205020453065931165341121476487350019107649726388246740078430446114911042926054686672035047740716361129042606619147022260464060687130101757523132927046870457561759124967725330512672578350995797591260639074963783227764960898953887110148944755242092366890903310590871143608731150461162146703460082854434212737023589048808094435957259397016731804872935142973820045022754626317389527413691133558261568335902058859419570818246619882242243938481454424925967021676007457757899344967633788786053976791921247881056769805181992648931176415944849334944185331083172606371016422395580608725232484625306390569303156472980329218439344717665870022244374841093620596456396408003997274078184492260591297248623385919541925635297078939067661249134192551675121991277279294933962526285761146482930732859250113892216472028636269872924596712977808735771747238622352351438148582001302463850713180487820800412346715745937238819696671321360326708623712162609958683237175496395895307323377515556861211259223571178561187231914827437593465313404466887729973510632830278397557378618038495367682270677115440171496257613957858495517824193903557912176627553278085650612854189260129733608666869557875884258161502655697652339029299921074885703488385454037984378556908048034918561457290475897356705949467339092594368707886660739362932273612470645094964688149753386856166800779159455326353362959956594393909156576059955354418534463654277015459603248347346246487416184229615852987001489492063883974705750842985480284184864079822118484918590440790496898338013401434555186981808546547444922381314893177313712861643512807545833905108656084048175988772551225679448578222382288961371761059627210463919577590973637265153639130945333589865818868391785045392651709850281117558386391349633855496350947161868354005342775568177850534360758715412251411271705600180636324486865500572721460986873085451751103502337620340641789446869874396185470672999397022646880157435271129157982544756594537664450086924942098038378777732652194213658664483899146897323145878772893840632185899739088256364253758199656597290582561287872073362354748215713614124888289119208453551627758104516552700541422341890043929565567977614530180318131443629624989903548382373728718981218228384642048199178441281387530907811144282441213351679447354654376723740940117202133702324816138735696199902471039477325620531489329453286764965223792641248476423850496482340171090863757519082676676583923566558984310269844910336182103426720326334196021173811652261051234121154479958767907694553704289579826360463481382050426866591991619497534163713764210877471577012441495035259104196798098912949165377152062892622892576032668892142703687551054246836599049944447968118689668220672060016843277772489377964657537003395448974602745532692183042799576431849975039504777640018817686109708512598091267062853995043621183475765007851013985858611710170461557611169954553020398446156234521492840313476085249845045046859760673106265922365327518786132032918397979681796773101349518204087430417871927427324336834081675486421622635259154020321666510111138472668494873604310112283148785530959269703463453024534140610245495566622024650880899840249288413702089423865416434343930591575771740227214137590351710412964360785786522494486956885848967097009881256941544377948367948275808591117743839263375051111167880865094364423912301250427778847887070142021945690918968980426322429314771324528327037381975726731246175966920519738927968867566645742993800860532459956682881367279211614626362199759932162614381371034309765083476630924573948614850391979659968331631278864158481401570643323161312455068231249445282721194907367897302725441242792668876317915067695281802494369392571163012913416979971325764801131559533884215818380247248074444131206430968971004336875025814848235150642228328485795403243806331934617757926995521357733323897375903864244480877812745189882135412144772711657639594422318123974646173802888939435968124306482849079497284055841882998549464676084546431430689850482200835982763711381361721121458082838526971554973865262813550587157506214045841508639607543558930756489129026419302039434114177951340564791596748041840492665646964728811540467668840510790326240301822221670363624791600846945692834578181911956684603455974049532881346643925794589091604613232665753700718506624691985820003534960833545205035937924343804088132997517419010933446901329841772901464118420622511755739890318443824608104305896509466548600753504354415279896257510448507716983788170546855644399027824950593839500919942891471632623406084991998117101109591633026606714850896128756497239461628745312674637231579863381761784445352173942021393106829082071134028048172775068810815235283892584275365958113423579691168856026952997593601373115723937395007026373816210352809751188567923099124891879955511050352399255648191447918293770705885464265210187448961739682674354500974560221547385147471131217984987548780665295713105060388288379941294272278623329465263117254590882101981824173189880924128360431542027148911993261234179762354093903144133530342859683163051895206705324952813975511474107848655717970257332830729722986162495167729870545719781474455105218265674718271459656759446524684380368127139357454521740058268032191274028951525236186282144622195310010556438533014462257156120441226023936478264405359351710995387830017287094298838711024226257877775422778931926079540941950822923280306095810921158845376894355582588738897292767192349878690601660991066497256966873593082328351778205645313133677447749995867901731085230653315141709219268386755496097481321369651273985345765476759717101943872184535531702687192827781678751255405532679712500616837111031106297110209663795934829684689579205431823742957268753949528906895047979213623751535594320528678613737402093320419169742939486549698231120454978662903520807254137174305934133090916242964517264316005037816873051385982755532864753396686223059452397369299047738695377325822935688878681330611369753414675101383394791497975721595539220726901265003485466327523877261467974316722097361147438157988937024238333166745611090928640997901373030098198701183242095385725466686082886823343064877505566813854997524620685158672553312729548192015444087340389689462137328160616707084458881867037719219890046775560838403986446036338921582094514619763100009449605981346783383821091391483257409663419296896789599118443801359596755104308696847490407027086252638453088266142038249826075242113812623913578211682134565801340381531968451721553396083011179900763381157416674245624130623530495843917065101482233444352944748384069809866945895104216548886935696688303243760716636090897234325014400900504249838083620485449496037095269274221717167000860294660308134870730906882702813513642765762838148121311402566304373780991383266607472683469615961567767119908087570161606530479556750979091681059283736014666379075053301633182833818199538718666867483793194321135106634193886916093935795722233225297946658179201954537231277421159498180311039641256365979120084890868762684633784896863800859403333131312515514352914447151007303765997920080024490796374390510360483670504271004191912972941213527418261067377167291906681862678922197612262979134769961629996059671288292938965986448964912843184442411244144227665937015490963675280434976762160514813668649495659181754187503126922667327470490021931665605641882482802191828444795312210272065773900897167003550227636377665090641944348506191700256678396078175151742445549948230961826928693155111964385282527399989641163033539690102978857021642539326582321086921280550788008553058216827356856910176022986312411709459588347671314736928235130575980991969861924147575145474474322276176663563187606968663536084111774287146739975143044178783889245692306698047304357540475219347391849052582284980523405193442751246739257459742499772332204023689949965404076049548345264549605898283893602461994515213750502319027968256455398268996115503724567444775199164388655946809161428418980070610343813666267087243455939366016096013451931812094693372847053710079427877498936120897702222876359578783677932137604666775062085376666792559424414204266007252230866932107726518875224030315173561672940890830529494722282833058820536211471701745242660566639709425525160663135606717509690138946012852908475147086180264506720700278579103277386460860335114045591281576638148966383881924895718789382264775079482490083068397503042099766248577475296369729767112646093521901638015540217024986201814970739008396295915638047776077913976930540881812585141833511426576977246691661265424187161029711732895928324209266439416903889816948748140094032816064349909356963415857143880905105499488574296079024209387051958328739086809786071394071587881279926451287061062750270434064616737488767435866866149120285324476564590084052862994433102772269329092628975813745339033273613392496946694562251160205548999460194897079888709640682830110445127093771032555029683043614102619592563224598391102683835230479356470665482417880085701911341936096318334545063934203731423765843239691585164425890872635165932010039527979447122235730853247542489566750382885563647567113893053034689915400518465690591841570710236970587033890781335738726030613798791310404079221166089752691715057211994686492130091587066892127069201628293321721043400074784451681142721259838333602281405768068125953593508250419658423454974134902147379549866476470311938493482275290126099021859823477582816840267549091010424998360189673369457043791088811682435461491397778568521525772206012756519444734078819474830650567584856339629821596195889624679441494712370918680649563225483472849425872844128931925974680949852605391690918221421319131767756438499667584533110250050096559861501438527401169512068413946974359858097065354904094022482628855562964313740054089464880837621204074318043484249144701147081213825902757070998600645787813341965168695940026741541650929387241678054855567493635159155832850715631739182641798318754658672926527965863036396720996052015286531273870994029002900707401837798398783282619786536029078202394981581888648061305767232630785452784490626461637532506305151013453926867033729190821881909273025889460597645832319979136088292759001784946440681357218861439322192251303397020878164201323995563749809249305778463176268467312708454976337015289677508369899966016018282151159212535079880297724852533035105330132618986496726718574263215500268853495333768435519020021953269590133113174381524990975469145340793453620536488245031219881267602118053452972031822055437410427993710686732781860974429576411174297999813497014905312128112127052127458236832438869100200264839771513663759601647342256904518049726684100263421751239038305054046454562736919781249762493825343314782230385808678432739023855283713938978818903597845471355154874478391568002084790666827752534237491435785963702732533923709942981023928957719447263196562144581287489569098566791011266558908859535857688489826025232053381943017750612479369644146857303624415877098096254130746152812875198871667863338071650722003603107640803340570741394943952725539267576714320262312981919133249955316667929488192370933596054560193296261179352607288646116474557319940372300289960673380249950343032682083690232006435841143455386883175916805198215784067482353787104681715553778332348081888969384950010875509173922726831273548459687186815431580534097161066965004567996473158231956358882562455454820868721978856595210532610297988707439180998014229123437308566958451498912395167725916644066429116675555483645269695748979272440122129613176819181614356941961357004906633396799329574796266409370895274444124500314095041986458924760597301355590744109599224206742719734611424810835725822245733251732924278452967248370381443900507313896229226037393080616913241370309262045612715009702163290352806614918391025758542445831982503444082809154444311943269215307640717348673627074899977609861893584878330318091572515061460652320373585911123295408490287535876147672175628548774563955978474829250217664324130204018869182924392927700826129433763963286778599426379881534172267848496215123611019746568356711738594505229721605996494485764036975120115834194377078469636879528246971331605914227030322508863844467762067727733821707436407280088712458577989154851596768100075588351585212599305214525741599973336521760688802297719602140569087762730281287171168547803149182753351575096120465671308384209471414034409127308228755889772329394012639515973229893580823524696777351581438654792194102907267940796074069125951223906471818069223558650644004402942410256708669297542160548521087229774888554730310943958822550172112591355724344985228970638692143363823109109216779252887963405300499465231709947077182938917434261428617449999076823348241235584866847310482022475308239902313535550574807514195656215588835523444504799541184533731984789394849380528242562437638850261459588106600814473312829943275517792600468896082500584794807798110510736533136451007687240870950973002884932975542590078900904896931815796634168683873454723586663436518480859438471977776630255084012085226923902588482871014772636961336919977989264282080230803312529344732866585801769599082071512681913138375619203560328193368118485544104579137661529102303263986804876754793346054095275948893876246190973475417620129099550189386816997617160152845103618981242330847016706525742281662719523065135369914760727843992314811707475501518104923570918378489965878905896829058916478353866885485279180612856646184277842025814223177214736098916537265789766930949747265372184246199532804463728775835844268686249889833444417087473843930360198438969929079784982466158889811437109050521957383451480154627577642557382487389997171492232040463480126873369401281794313300893878268026200274215489524053298386872090147064849498207803635650890695261834208825714917192496654010992686634331775704288926155367769709402797364608572573592045878939642791941934242185714099671941953672767750097906226609501909580013036958586163911232632500370627298053980549213793774749398319919070365706987204145327999646437199954696224623385467623359422284680235716218131360862646558940920674897181411818042959911682927701086807988490416989289713246040231105490511538556976017222606671545394017547632356211946896869006594514226270571137475931166273241876580518729558696095402801058511865214800100160122695564025393162130506036503553450916192312826417802648486778171245041251971249773972212479731320111319610530468000236870103010780724218713903205848846284323673436713386825373160018701890818092055343209221102832023866753472247259539116423900872825232814011698462092397055171432405488056734948669918880649260519373185690679726107294879185262041241697466096283692433754183857088477388235686119202839568798249729121648872007095372197393041372985213199296595203540996026357150267486599770870095344047834677497767911577723763379048715736763798991543349682817728473725191696073619413160971003383173599032875791886672002111664711504772096471880559025076060832288112170943382333821628802113414441769534426614616320609318411232007725325364284472041609328602721049557232889820764077875896835525423831120209345609647383134249980600594795920388745541079733921224322664107392179719088457300917332046932490387166426435669009739592835175694466104806239141395333227135693948160730144918735340228117974218759335735073808243673456561624236594725972638939551034483583211641534972067271665497797181432921377148915505619846270896712514095909026277768341342957816777603456539401115178289472504618548736148503879085552815189279068006934086100447460096765425315100590645214748027732874341346721801212309408238274090153994861793447104750612786116308463247776347149414764376556045585631871573121112121847108629525966511792236075580876183974324952181120969327554408677018015227875962753004736975485596717574869964844127650380720728320738812985014993867228865115760513045613878497516374860309598532819420205280932351212317932447313260708609115913949373804824708550850922284878293092814946376446130791202437630042297456130148026909705590115772425204216798464909006847385683381251991305728912382027183234134856519993300218299936015882694678391770003138182800761976603247466427401410339259928331852229937934719797312471525835230030488555285937670126776672656775431422236859718981305722517048083221887275584898695040950851640708552165874053422687275275579499192601421664910219235947406675502483037591400103568910230827084090813297941817464425019503673185581347965844183399543360877620780527383720316851488980486334828442934751981005170935772380171699501585692060837011496088328129634735825747772382097628717187910102386278848843793319494339325352483609500090097329940446571087930010756830897091165099597932436615543429026059165807449926126035117060427514224115380616490586068197502285168010123529935456383648417982460119655239503042790673564508064204090418069480212677121833919745082704012330532271678414884566015059174209711454159552553293193000089775834203696672932397674935414831497285496465266326487879122959224767141442246325724986361400441994020909825764510109463218053525060141327204401778703926772972334692891657476442929863526051954949440674213091704534884657882424277185179326817638342490588375364301944082267283389422048834395958536506653993863534250571291642828596691476545991580772678764900572088232843487829337610504562441536484340641714932446662094854108316385536518156774681175437822775298530375970781303669234417228037921590722310448317171948118832398888275747888523923475819154124788785449284252771157587160948257402752988004762580555383225715700510175116686445718024350478305085289291448003400153211974104705522405601238272845475792639005352346414826754179269541235482596456675618341734728400459060530015565101582909824955425352384165201025156082847772392404246227796332981201551738119004466594142300966514581153568445602922545708251908297686802132365436002047195156499396600993041461285237094160068739508346470531711578567450078111043407307289623785678032819860789496414290323676054279265007082518188298586211444256578224479349504459633244362885892401309742480314839965443707663421976506495878530383152814783031098249013282667176239856257124391452125008318423525077578099215850118219117936633101097714937214689634973359999048134271129962476795490326878714797891776181530746205170804137664478743284292728037566341470792761151783392779121786197166498703918799807029012055972961881887003729351100861825291746830224058898563442910540476392109731309608523776598029205756164126264734810795969204683437438505658669279720518158370243850414402447145972942065822831450380359172530036116235393608564520206589570039964984978652830027242079371834092647430008160911861957839588583522535840469613787856082712103420678123620133400459231511725829986498903271485861016477979660320060479912878978466915927014608130741655278546733846074674442449297205581376562878446819811456786342802329462325602832917752107373630864784193752527364427399462103063329889595220785545931142841583551999580976361610518093483135820975538013909106806671313849176532167343334566876203184262940184479113060686990801989966775439634220516297313231287819143691761352138575820415073944484118646431705292588582047676727760853268905774807298571649822322040811389075830325111731775939217836103801723803917524007290090819532216644589077405070157825146660457588647066246376951070814982148599168310941618442125422629532194378660116938768997418294314096391566632184967779175887447228202080655219181539173435248997488342922934828174329785265402980146488163808647358787366738789869217432680912239099150039391342748369529147042552202588549236316772918364655990079791193402296010678697733572721952925168652320589909072521984029020104187224706001527729814542819183529316422244564486737080526236332455804905537163496268587872393118447092445005489458089800985241782853492782864762631219020126482613964648063403611275054278734123967910421189049906092233282297670396654714816920919118077721257987929157442025726780185846016993152789698302858665083674556599548137689533822403329397082529784919365151363981495137911120140140684674494276451788767474619410563024335484832748980532816586250944510178684652721799152011984964533394845240397167541497083174697006448982446979742038369189196076899111909766405851180422364032943072433044310437070253856811433686072127472712789705095910610326575927045442458997858660418626147511755288050414586475207222865167791969311385608470193408209519279779700071636958610813136863327552233278621807329942412846697413745171356325937005512169932124430880497937069686723109468617634370658528704545010571812547929184375627571887615350519270550128198158014098769825331799597806510903749366510010468899064015226258585774477039212190746188980303867209456680034173405869402361252641466819126451630138733138922217643389734825392646600930984944546176459586638212041301580243751069211577293575409596502959999156997685364489898554636277179575067589170844220755006952199427049260061981602916907595824202508659739763997907528220681300201916987108337146864914707729012725873794884213876744441568411076336723800492564976622933724576334652487893089165804303794537356473699783286480716037698142384227077590417596933324922521984848599617185309083628107725459134422593674386274999617107471788392219754573155640666649306807310287407006122961935932460819218109597302950382445270567286892234472033194625460451753584238741250889630299846975005339718218556077577057395030177197787227959485086359376319411154529006217506267071233750401196691867558142391776809430608437780649314596594882256544039754363592521832223765978059248377387641343814570798580505606154006295132306246355550658314682133489034608621363189841585168381414151404055497497974681516740828289311029725406164914024080090319000261598324634309017794330291336997774988863811598842008575179269254790947638371043226244106807962496789757205881022069316258278982895247103950790618341161227479031644169959860100413290331900557000427384329304584201502993420709930616279194334898747500876525469080465079215287964250386187824099020262588918889626499286983228465489284648083293975249194223989515875306059050104150580226259302516643528105804430655743597445975236158761937377538083864132352696451743477274371152405772600248692033224867619692444176237830243385886165884907472774526913649728888740764464100798425076661414550961380068795114939846927684054663004282753918779151700990219696352438316778817671225628077190548419158150305379630961969602817688572683901557895570802483252493240978570328868243996051739097020845496774113851928245534910454899558447861108400692873101143199686944704982728420237861770780055482524407275448149246502535802278099337317325796302114950844323560335560553887213830240490483346106004918938781048069451325240933100561432310116555100345352552824216952599106017372597296396868429437730088927732045653756505578871357663134788030772801640556310281142104421493747360235652283806619256541622174635510620670798560607804283516144154516499665814950407773251995063685547620868387649778245547512851792378604325749940340876222389269308621907199339268553497619403906898360080957482866083338895215912790531254593450797172193502076651316610532686571617285611253647652645715706081531986971663365689172934752161906004462866856420513895647545998063477008019474753704622640122130346886658808626387550298747400092210675579515799436535003968036152984743939241078643815159030330990849614501378562528814963051461763853856670544777394981999251107865216962447605059595948409380500011751817306010359434507689518416068523292861673259609592985629937721248647679307835579660154062962238344940550868900918004872355517054724206558815537969278244650705221252677361186647488866096189578037864081520191297263335925898210246359578114129278468466667529515756967808758388851114262004186960980520077130397243158778362477331725193028222376187047425944856304390225726565663900733096965811058337632638402151442970394734889068030903149184519471372019964865902517955510942001878093310913060818252048045655462223563500018628563321438044080118323898025828684234538461546448445361516579701443051119904481853297299424458230219224844105636353398572400081004042013249431951966045015482004902091330905835910421092190488107967478036463653525542709653240394079744798087861353932328404737062417296750563210885824500183159746416934419275953029459602768654588836755221566924242439488763133140972193021642698302327633366549241123936900505886116952287583779472795818206527139927389429356060652941864467953432545431627725630801664547881777963863661378201222511200900644851594899516944617879377305839429265373194528600471563022896026651200984329389145754679417804329528073794904805469699443932637848366653663515087317057824406450522290097125840720546011642219733010571366813878817088820963032227666623999607661288632285506607740032742572465395833767359643862906967500022382246803395246651007445006264495815983335475824475031334708532241457873434424602982255924191252265520246734003756548631733477741745568797310074788789742466691438703218410912016623430016807055243819887103168242437607738503583986480503882546525320210282573384791472641585769835615126092683212108998978943568824727012067308959203042505444963302259933318422377336542952984010668553810942874142422531776840832167685965600463704102053758537985410711717492399606302265882547975978138069987635616128411428598083572744181614493682446527047876171403020511027208952041232781739390006937829610587137523303317288765380494311747733132114292734732162037438228747910048631512078112768015578773816720421798487284325712004656660895971936418138494767062127055623912952742954232115043238576727263452176736491905057216070340999576765888320167243758209790466862531732380486661577612613215560663336158320013003458573592106115269419744828540955599838611236927490984278912222947709550895182506169783650923334498262269745635568528366723266478712949594556788168791186152758955987765718284454538766414660310512594466716027697223116414431314753416792221077027232141799016271639521429211554294551755125989473733457053565196665793349242173423755811982447706380453543880001852820262873751908112139386591653546703150498330898327183506878854298947478404441355917631719086587304042954069515535381749203080431666425251721836328654121960192191000297372005862915529811589841429721420951204578508564136032848221239556824098867613032842041171821954158619853711479794896290849506337969142375798987752811405623568398409948786570384841480895227353830216289535772606289164084968293239764608713506592050246173347798654356140028158283606042121330887380804799045545488568383330166896940158637075061538821549269020356684560351377802757627671093814140894527634195857040763590891316434502902931585805188988366999103731121095143618548633910752658750817011745604733617474112230386653116551490387526644620604339286019042994814816435512321490300401444860601063991243130241830551345498856482451152873934503427727977242060259033634151611100573131391868769129640527647873149855282793727845746207728456619035895226856019159852092754021106634215288280430007429095428368178889739007928106566812221537685172544323741494521293146851861008522621451965824748715323114089738883337773326629851766228961033627567560414026763513144715774959434509032891718376360582440050525489571751243885101215635135328103160450075591645609935013122407034752500736941187974304811465166528053446934917915599657468820980093582530564091459908271041145502877197206126743664493792727652583750282621282350237183925024868552612967027622230658651392897937279936947552484657504488480348823163059811462474962343454136330174582911675411518886716923647827224832701669322269120096279835350065287715957174741278724352473890287815935654690153382742789173006479495794404115570626185288328009153251543661393552095861265185640757789612490104805526893012586560925403329562877183073026938598062989546193577591106489234892580957555507791321675714969742192991353795953239454986152459555663158138702122927785635997014595250672771868060458339792445500015520764507005630158354683848297705313701074330394011963480183969997076777324405370309798327652727297172379158220148398279490893236883685213899667089140707754886474658480972304294687234963940316546550869779488479194050352432437946325219406791175821720152986108600861817558230358987742755080102391744234198922148542373915084976324084514751869839672048128122030742578431684386678665923552827529222285487344255947066859825800528090406939535815971048890318979812178168123070404285711088475683156101164432826882263948726203686202271776436101062069985965919079386002138154484017581301204802543197024142991545589270448488807721409286535879734081855748802537788774547547799912808533026327850504386050104390544002934546436331555288436336207864180811892964494575532224695900496388726326444099682568808080961048520722209270748319840233962496851412189717502897043751091164854320192001923313297738945510926817141117600203233199094854582590425930350334416097155580506425538185119707234597681183946347213775498053535685006365754275008403688892918251243262547060684324497770980696772810918891229245352804708294809363826075464140360507187734408807494589843770581413965317802056034312723008838303852134285152458990989072831888548431518461233811399431387755238686267671687473894348112933950915509355737878420048831702316419845885499321559741332640542283946699109889709362219899561729906068742543227312395157219125668846979649351471984854458767819189700431770754128386507652324695626666329781860195287960514240727663326281405889685330730048133027113129583045139271634627687601116820932361354597318351279400046698614603685034662906078852163019212813673111087615328462288283906587021024705666531934654374323804523096881713034221909611561520570838831189297800369408521461448826711903786324363825653497480207831295001998700184864659694737586348018918651127278994661451593117701041270130651293435828110618481719916002896350337720221782014075291171870376101915038510484975105829591046147511885933032284799183346183187160369958011368980597968945248450204808091714865641212588514383280633987572414942839016256275525007165644850485754353159827522285648704845857060863703211251621393079429460430607452166614473708742890368733421788402059194688605205938823527462044994181711674772190558685918448692255448541744827477592207125325448471236146376202250279562285595045553081181190876032801181484329723026530381944018981338536896840001769707184075758530244946017632362520386488126668745062874772395892857329567382928035829246901817606635759727219486251156023279061642417459739614240505190436975188683925596444645108919950647276580132530476697346008923422243701549742517405535040812714416966728725602626069104997630851734845357928992399994746314012563479663906464154984337996993932737321937409411285025472740189277807537935531485450508581213021547258790695617411109966290244542642604548484250577234357421986984554406042783973621439589627274668714209561191405805619151124015589604739005999083916890259358751248827410563113046556884128885283619041322548772870725057742772648598499615217223103593762213586811996945623280073043912051188080632092405296342966346218350935651293652615681332523026582572005742481567422461912577647077193123038538400652878458455073987290508881514528572481626761382013720374147706641458932809733719101148158785061464285725886454301341850971241821647699619486044559365020411401215896394349670604768620538688663850557034388656957738429171033248296574314153900745304255070001515695242247550657713043031949736122966566627066415950493524018365138478226218713675362496008400614466577735585181931530792047268373599951603904809914316489559805602123032203618185937738455476291953286052875625697481889777314918333378671659400180928955195491508297835743706428198653347134992295313836400538980119020148610286386698971763248782779954856001336189604457506254517011932137362991789580021801673382652761065586739924897016117032938221244967574644123997805044139910514356089235777935144474043824575565045248356220260305467094690140879647917541123455483241850975518785906804627574086862033121083429951467859454620215056854538298989111223991317217977239783384046789192490373637397785559782789601675786723940461269469614328876444979736720190301777073994144841517713629220326482675661287297122480499111905220702524983534314052525207425945559139885750420376198856586556597198873840782326674713628341825220732600349307824507263565528223518057904601855951200616542293703047709240274413520108695330526291152220148003308441466621516836461347820295973333487962746356666155318878870047866008477295057653123763780483722798852085438415356457125526907980317688654896624936674466589135268631232997350353370102855642705184994479816961007740527698432493294557494898228469788033276665898956865755213750000604992768277955035060475638603214346661564451588180652636313987074207158756840520307243311653398294379703388706149561673380504878130765882834013842056610714153648709868966364838935267804356458405413698521055589454310577243835327132613874486913415886948708295908189557949440851942490560873047702922928487219141282491154287658479843177429842101458540155276614238635660751051074729378431765480680822302440674748157272123956940704447850379270811038061888368876947108635875947210170049651449138807138967358026306656618236093962228747782127877497092847104907478730140262272101915106436605678171877700466892969432861447780066392357913008392860586923977148865468490935961793336457597436361248195890523300418805565932649477541988966751192381924005146263556952780569352433761718255899259904513099787618246882639630975980578438326608779520822561982909807654421139967929830151709892921993805128238354048657704681271906209047122579674630890847038285692527425278778769202230901689403604736628615224135093832905576549665914175077870578403052890438878644388100316296932954950653237446823837628219551900069195331720898732998511300218761754740286600506016153327777869095618472452688524122979270842114928832462394282460792957283960176758074236465798847068354807431208681273979515532109456550109712629067921817318307650324046460896613365202179684108279660876173578189336137891790234935404951881139022706852650621185934757800945462394458184233859698874699007180673759293615155947599372369758301488239681006087275695538535781954028495430317484325725488328862017605151007159593223810199776906284809346081093761118041468529008527306940513720693052585121519526936359704912899503510065574545297846980240040710902384320902189911807485573632505639923074519951039892008736893733106945574545126774087366206334407334706393319398469576574418203213957146113069245567650954226047202553538993665516605402516945994804923123010445278254049000387751911317381982272473035103619210503179161018303441747015063478537806638673862368469179618190188540505459736002643959222745017144443094066451221654154418640331987968086639337028297244315280092630877879666405666614484872225111942538551560340131718321322834426145309986290476604796086726409225190870841269032194322869458428856420702750664215558435398124307011746453873539714625926136099470026617896058172444324291140979693443752926303404808024187289446771628326422884034422609797601278297324174700474598260519688250090786346312931031418928057398877971532021222336827795609375324138871714145241250191065840867739089706884993037752423388424907749533955528618931290152005769671671059580826132298588047255801396889952479649979943914252616592381333478795070874755832000260597763830111602148849355547953649519526820533164219044603633865679771079339989851588467722029477439527286554905125547731809832341255926344414067029291532438534252234236487812917635319801591618118074532531652066493025044937880342815477526586535449369690153937157466054872727854446376430330445495942850827580330742074958003501627682152873175506596400205575146511430556255847625446571432709356426178587298845172236688596078797741618509343337727006944996476769552151486464096824864628563077547245016979090789363856804935314240409064703870319398714495061974329747013348425798240322894384556633359155908482421577272715126442861033655675771021697030469819111984075710875360451567679557436380946809882066616598588908778513740081481370316683001103983384130007004781825737934414640490114839428134532660356215897262239248529692134091336688376103095703984676549318833538087010912882151971225631560867666631873114624972051786603890165720385949179409271924727756156324523621980716708907762998113533628297364588993735344782718558014001005421441769893474767140169303108393208514654352995180622879564010981730377026939806984515557217434568347147797083206141733928353880461483356405377721030734305025032309270303370649055936587742156776953717489116220552317686253554893144326061694773731773321737600331350749113918114499255616220660221983431550779649539248753988344663112923463156167285812557934305172483143665153770465444370866851515587817923454599298514330301730669415348785098133584942849726110906061469957594351503991860653333878345409712652753039790794396511401594546485407411260247396572032948667591323365838652244198095308100225596362799351297858731224294184919431920154355246549824716990159701839548966823007696512151189966242538083145977487834623363038058295774107383258962849271155889483453420642542546522201132758218481531811233774076243015490467625170295205302688790997996676468250714578506384345468920242950982789317517237052331484064927870091622341438301175553093299455971588569613596830151806849854178702743452936369572723591840985577665327758813632712621286027284825593546287687328931430783708787629151254299285227126495397629766546404871465617519074592280842143507958320390994311827619412358738411239577245564625528759349294124502477842002169620949793226065575519040666358920071170106334252674854078491718376840866816460202978778034822317497888215556555999972978861320193277603123498257343782847679701260803706063740323991462443063831785379249253486504189400070186973166589556318817292898220519411216436918547541210850543906355783620734007711374282623600106535663769234794645581306796866438412895267365620600166392961749982547080506563936481002879390966365518338281856261161163824419157843781093863579180218943268370342901051947243790742109478002592153752154518198741185205130744036448283715744322934233340173212174046915441056423514801794729385247108044012678648015963096110822261710528051998421115949300931770086410026503512634023607318292213253128138160837810793976832418619276721007090217880472036796658996464406397692394611543243720990438966114058530929855460978061843136022534087445018803809698116054020112695268129121668825486594665278911990812228531797474097238197680916363527278585422765776854943450422058985290714314433161851682563026338594545835940255448045782403127498090589291751928952532655616595253870323918425817042358392339280138826388477929983566355064338756899656398715940223882229311690313662046536965548382398823269283952003899776976694709459779835131608122882644409013764144699062589176364306514099630483295497851358397820632406628097589130552042792073035841536921494047829238026583088506962339626725743888329707578392317471157744118279225070787057289446840956441558240572640591368183865543773118179772205340167887011144064789126437155032589352474465582207337428770537590887418272754196038349500509695125285192152425977837786630774414883012612361720945027738009044840785443654787405688981067336255304037611141755179263065761432020341299115610173833132010320782086282979648512146557681352575800401519146786262364735209853622244352271747731275317931117854661477765911445387701811232634403479101307240033923692501974009806865711403057153164324338193979923651783535507852399729904149538738854077499347095547418868042151191961514604996264955620448045765376201785850163626276170791256183626871396376406624532347604375423987006970087770929245225797367496833162791317631814800834687821853787866665666356991580171662278357836192735028546983262455894097793387949676030461996262566046508999748233318659986342118903188367821901014425187535979659477063029450230618383791877092745719909412772995756317174674328777813587440988755556788266061944665746660818167101233065469154913086407163726775354031788607894423067288011468599536948074096677840480720667585762521553502972526110000771557964020084569628687422581532706813666275387532192906046894459769342647753624379239319581434213643083485773725342097748127825227463523408016655052868838033972294201389583730910754423705185660624048882882842847690811257200634184968865928371273766099639634611967016426827559396247298860046180307811437822232024634636493041975757086567493503196858264840469607766969048613711542324762153384295245784979303384253088891561133611845197492727207226262070403082525024345816791142219737425091278263453679398697503111072147785259391062546460435233336132940136428335034005918247542563416219528230097846514553684399199286992221729566669448990478246814948876940668293107556350606730250192921392877866809133986407513151828142075241021266686215052918732766938190776755959620686716263079955726420688348820500793175758911754012662170147581409233402481769820951651947670275149058570256643781285696295779319019728582771528647108484196273322297127766963190721059270812201212787374707944473040429091356877626540036761584312748211499889480929322663355242577157252576446516467914172000355201126614378487770611072414638323351455862416989073334197903551242610425302923476317261684169220167641540536839493075288933111677937741366104246724975800718890863221945788341881682469543842772233642800582043879518310110068240668975020504641159733916411868666357262288980929203540900049652250873125539459127191744883163234327206561171688320382425792710990216978307283547677389507175037258782017820629456809207663048377511467142344313542889931362689896015747751747822443040573322021215832550436931904860279729765973593252473672625418700860546925724183940695207161470162805640149508774601686001599832587006793968746948141260731097852446038301061139867764267686737957530992143809722504545120533094639933089642218007542577220693890519315184833136203490350971541679462308586800092169005626987054538769707119794547222193722258041771565805927374519640337097208972700594191034021619212756682651779914676347080865471090007748260150496503595185260251438741653145625591290390776164502798412025249021591798812157788179700646615129001891837038905285124764318086322603352416171751830844200476494398625863810844526750339975862599016798955572073902120745753957743383475443242066464240157634523563378317723427990153714747124064377413689383676453517933258382404265026812808823375688145228287492641411090139800715768766381759613354031554038359220228593959762678210974375168921951283925009428394102413870383558944912627570247874289805145691188705532950824185272545968474983278241917126640477617304448209643973637558144962594406011581544927878753412970299130032985627607518878089060882590474027821095518621971126734533453621238183236747300787962471629683087979072960616687089373912346500817318765255900412355923280956285936378630318693168473731671274289810832156471357034636067251963890310080861968508471010149727461750567672395500328539105861298758931784690151807859017955167673838280125953008601254357252805644606192821173262912107568870078453583681043584584745593577778572261529057706650404535826447067851822181043354689464072440212023970144564722293283260164466983705499851880947590519832391067256363767911424537181485820259601989442179581824902251482431050507923464999062924116168058220448377205904636406996794306491479210817243155844179947224185243891537553887542310219002794845811190777609874265636814252625699148510389881474809798426932790996023554284418405924375685448451541619506451917383922287270072322059088169011513110368675211273076682396006843270796869975712816524553312400340604683155942508825618878135738089618560781513997121595355266779609091181889230274851720236205598663170665847278236234677915180378862387963123626815151912484820729071068103243876787724810024332849710611131342256756607532735406007263424619711983909245572657662443006047046401395881610367880748121957289135131697595050831043348656488500678813296299545120170067110857454036918965270594061079387068036517518234843689901086386133988069230731916498397151396650125973241757138436278983526868702441575668124682448279544566304133071604867977962391863404437619037342911767561731640111217965578008545203609927056530884857041916980336161871698786549156450156341215368163735733425322911019657086093696733131544295959303657861051566296229923955467241088276944878221529869571036570826476835055401777443030857090373593457125434146577796031609476450541941412109934172255317277002667866982745309369684527572083615014373951758787043674680516535605412082438320862744040895829413688670370347696269735257530509383128161599336785875488705138533420658091812267997865753742174858864021397905167320869383317936415745923417193372224950133477379757124241993880760508522046170228864828916664548400203490211235729032474704101417135279551113839901391897296112406406323764034626835250377309830102327653105933174581072442348668161974054493957896981180291044370174109464857228744700395119265466375240373321834243909197671052908742092137504867627580304730351288516450228120102405913089760901680372647849016520902913079839708753097069999155037203400977110520057780781950254392777745633677373002298812144699303052007520775995085184550484690068523247240005392449320429821255108406831062283356240788705798421823140222346837903557174693196795401776473682348949898911238554275968324877142918610608768371451666769031737089487124721486772271138614997525854892709356777587473565104562374526118245024398780281606079338134455536724002626842015925835697281992184117650029240014207834022403714283198689286661075110727935163863219698268452964736054789932841956624498619733504832073687749494011524004851969754602390120686690085716608896763409849873103570415819246272278176122446286013067196022157362579871471125348714293596428794924647993001139600134479633235586694057384382309553747304991496777754177662487447500126739556316632943269905358762333455375867336656433903551692247872545806354495808732798175543320547561886254607975473936506622453865520441591828291423236751396885337540724008215418024735530033734251911867446026184644283265542313691051878672054862262340596671559679933957465219199656899623701315132351651776772429347257211434124119029031277662209047418955504687888853892855812737626768647451096694218220876243535710344982827648216053355822991078260656644220951084409217262497741047695230353425419731011494286053378774120898686038575692233061037399569659908681034504152885637025431057199060098464725663270093516685485271544272693617233119515084521631370597274605897952278381268860228168866001931210634493244256248581964783070859591431922369348198384934939257130381898557607265907803764010786129575363665839587487928453868294583578223469243798232557124670260758266373568826681769682317523330451601951421553425237072864278753415310922766028460735041867053450454424284549694040473850975812126658572805694030853578385534558353748516949939908398579459111693111482918302870379894219293221958368953915672360156322703757505546871136994890521507189520652695815263535818101311284167263401587457811978425669959522447082438836229688706884938053540372060869228642720211102037320240863635494453930058568706421550318628744721663963352802422612798886166447643656136753835509177210806492706293764842507288177941418776194811304764612571892284747893324510386814911442309743852441076078438564989308718156041336276011933312461672438100177760693644296639998925398161788101698781372765363701706712218050343586716405876996301631858167202629372117275361990177621631780668751083660326921311508439174608681447381182123057859732257324514624389132086643844182923607295896317936145305443801223070080226419030551370495759359415694454612446663747062020371655048566111253539119615188085714901460530017525742675086226124967769128423720548057222804165321445519451088679914085416301042782103579652476805698772957761652696739935685625900389842478709905031053137892349657611190616096242898002824516319336919629550736246692079776970767202769021741002645790812355096164051593734187821089099009951697221467797667785589669395501521342060677112794354639981140678556455111801492776915102467651590452560212069250757753851666323018364175048899801517671964823808066232698472094970970496059826492917233826547313881373726439210675864866521187436659489799814651153866676853422596869825092907048400016979352101868606132750856068506398429721235367316260792715927005898053930589026137782287052175182325662647557804216926400275414836794358942944016277046082885053627454755526211384921219822152792788266274797099846753335624773100676029588443549204932645467623174638132109973807203698527063617783503616977589532933993249415155492382219856837657614488116697350768063889156804108958980897343449884336019907629982873776497997271511199285030417710614820334792548856160625774378740103440210007288537893873516126302387360807518306742854158946273497957319762590618276388081112239639442773510816480553474647708749435432103306763588335893238734375529068340407413649307358295319019035139567331291237560932386601547819030087229118796788357141235140663547798876402607210666467387258481269557872663904760594751234407182714263997238659866428586074858764422702512122199574338002958627442958703432399878847274044397861990262013592262569740086968760910403090392840246703179413451226054303253444152134823080140279279744316476706965155947294409331228011353957106913305635750533330618959189628068440861399195999568184857735168406647475804560332726288195561854130490304198297008401111119411544768448614061369767229236281778392728024785025184570353671453248224935124934055083709785709708132879852550428882857448039129537422656620714976011004932649152605618994236115695231153601828744496302860665876475656549500411096267410378912696230414901955523961167870128804101143588763657176374372259226833768198637650048760943700756394492921357668922073531249759827055464753751991825989613383098992455767691128682258533767817946011337639075098140969667638334925017928140977238958998094627361802558461669380030657788056019506214158704260695392109328160630130811300323339886369884561751778346068366347276195585789672625429987603442508148722046612973912205029862629651450689418690242995280829845302689414995703080302199027180166992422063519636681894521925083964180465904221231613856806219843983445793938634241361930000861413979816050154955354284772046396233318033172098648314178191914715906900363422517606686870445256391818273991586061916452045474855971353031227131893948084936916403057015120412496727839777638995159851897964471096041209981277933298112673693271060054856863820489769085378921138831669843866865339196515711695666255292762074000180348466018345485155649517781881552747177331044184415107707423695370947113490870805312821006403597665562593369977897171639601532083866477304630575771767494728295148266326681418322014061147056776784918810814408305093300207023476238652898919590673075884920131130240460781325736379328071032839295947430509635686713407870051035562002691813759352902181351329465776140805001534854313459649332334325639203656951979639358697520301996668365695851975996276135881801542136132525177750781241464410839498778143661474721054316660336066133643412546392320118443187955803786560416965399357101406630550552262597748565087636814939130822742908756975351491184692721624395349094939224148886723374551297594734504354295035684303774859656282046345833038892918937585160124290227492189874712412107121830748985171400673295430595854559790136079339834545905552946894229539516614632947049978802491699626606285573115250129310168899669812972207762658294096669059678694369364319027938084342331542088152957182682435823772504113443322959794830397713083336268337786356097780087027392113306754880997482317289314207890428552119107959405715183702088237779024550327306606554909149951095298103780989697523193276699792090188529055428871766691491243203146954656909125749318479874505881505959797281182944987024725448519049928648145782122927764849758317918394673163858565456651163919324883502058177854078511032944596216194600293792858652268485413772702131576779957459178577899141228788166148010921823954341811410228684399888348130020839487654777173016701454803278215213476398884856135190652069357255726411449015759595694686381304546706574000606256356359914618215567443936044227555348975900818059315935105904669229400712347370806539250730519726625266705088147772031389120243382784055102324595679263880573564895948389230970917218247599584014266857285217211394609550175250553216288712244073636464773003649760709757529439489935054557263551503677491335171081286826450965937624984580439302135445484652429823925250009370022695745865493865102471639145843822405885228129397993161247613449118153933823132910019325798749053611445063963013951711715566877309246678770327804338648642936505983569779077212070789947630835332589691799184289257709611417077830919893799663577969541314005121686303903429682597509716382779896727289877690149308433830613647110543234696116115979680199946524762623799132718246538760598578284609028742764416239024299910952095058137441715684030456749210638096392235074920023444764133923492455925614070825285565095088444634703116754156013414090342721597187579406886923060298412300501101337555624558218075551565421344051361479553412236305067874288462120448989537295877708037431629906234644795752891380922454776962095699837041747265806572540717639413138903626346828507815770292251661427872559312176399472532795133752092332076872722459445415960150435935435053669596353581043408572388003839123224391770105706714972079543871695703353400865868767129460793444578949064300876654280545592017308679195874624115980433279845009436492176305094768217335508718004684026917184531758057666903666846238059035805298840409035278413228143996655118451186747118662794428585016131367401236467104690028562927399146722678226416751672811748169275201346958037606141046434528327706741152338552966944358719173604813140845678071160872506951282441163596589376217405574310535757632335014450033912459952977637906091214975869844865970499182070334195067056803296865367712292669151743651998379220186630053255485451337274838306180341333003249386269487203450686771746801573281603869395303954703564307249536901750872436748711713136752763904375268192844439632338498226578006998125349936436398783033132363105206867447165916861491645027097807584615942987449481782106441689295433884574519597855312485373942842642391688712782495808086500423744195759640314879509091070682756524167125247725119152061849282569573785977436883235544661915250881640976919309589584575656590674413560531828184069599461107805593986000429453091113982558360001012370823793740634335156885425249758166452603162745391463963979526369041819397232079869168088265735915297788319532243124181526538051585384334472537914610916619815884993821554803483310057865643113972405285838921754929659449373906513933284907102085796064902385084401010967646999294051244287141979895954352890345303384312671489373119569425193036036665278238867797062610759209964060880598156126532134461199936507888171724141377639903291903498313237378680475034234415800846300600976708922838249970703645118624624095746301192130724663423276920337205349201490092679255135087946508937304455820873220350040389853975361698789485501914464315544484153993156193485644488740062066472830647967003683787372350545693243740053235023687807671796521546349874335916847024874417349807989946535262897659622562478402276486970360929412324970498867427622674901637821674991688163538103785291958754883044305332934191048245396675371793208018397318170764506223402015197109837758244396257156012534612651705195997371514416747742489958109628838699847455625050013739370135465859078399804804470216016108429285423826470833129561809250564833902697534976366776548129750582463978096458453790834465553183340624985463032459798456819708370123137265110141624960476764572136390208589957519471174888834185864575032239162964809524949429361492279542496463493638716598689411196300105195339886107287117555611271422815911595429030027759357409739366148078258394212162179028818307604660050897851915920517841785965073928883026876567909877912782329847004625489977460242837201936572831459732285518145013276547571664293989565266141901267599917654805159744002736897912975150940003646415554996928655146938611852338700881989852945478279926738749973341734270135705023720173273271185916197736141328426500351676188185281015308501463769457769177601369126057421079590917109236047824858092339379536987279169223254011152395789342936376223257256552755602661291334454274591036068687381709452337278587602925206254902552574659945271502370637149777432033243237953390719970585406138854881303058667127819322086658977346913291623355500429042433348627196289510050754418301722445546304823247247368212940586767386962944448147830865410694537676438610370504000404973369386527738491581097795207803572513619495850753871605110773555969874604285945669855781726002314649638217522231005915377328440361902640134980422297369518722709665150649535198771338902809252624790922099112068754868476709031664702082771055863320942083315889039295915015848366490633400072874785997845762938946360852152213404198601157049731916416758973682898758277148050409184068475513840752217091979934750925269726414278184271957790399304958783805080207009889111826903213389570873027914328187733595592557371110398065362587094194866277152273035412327342599227328051424912950912655947870130354863293201661189711084655117884078943315807767931052084899300696136301400460026858688432392363774289147362063960362700063781118931739519409615512718129347855235865675336775430554553030515907477382048837518888171819013854275741764925055863068462784197052645217679888489416152397743175735067886832416669371233319473539380881997890170954093411503472352027398255903245562438582515589442083969779097524916417971662122179493502682056228622274349178715572421239482410419147371675408865051430841233782104021020416527638403511010093815479249698910133670451523761616068154543518393241461172984948262177158326714477658358360049352846894540572399675385367889183598923150751462679410367692983343988715699374570915075985274491150181294529499116354704459070250264691320225228414039379109062431128593013451101866634089290588692413888954055805454012756842524162927557409662399503115993695232304249030202819234713998369907430704720663886534196513706674738144886695796757812727271845413772172043307649086220928851485482133131300751876018396542392089940156942596189762892758701569871991515412212468748840206056405062046185343497638802500784900529047586354027673744825018805332261177083191275122746815426281063114935457507660600580339431243593054389278055819263453520151919080722268535814305514244538847673768451589378739253698968688718917573336483139205526080190308405356391788152226036847864933670733132250894014224266455154140156022451755281308951279077796681399310371820151231746271783990859072519962420399049950835825967293145884824792429490578624666255418138751669066136990912783751494731391098809023683126891982627849793896956802070636521355165620413848708381126646268757557133427508603120973089446910891634663105525017403898043855699926619093424338473663074489560116005457659369365413057806450940983427171224261868770294543701575087723789932368276159190150864028921739720199334123631595952610850664247298981717016695590095377917677052322938896837264826492708967373595440082307241768002311245375471987303177259762692190025635673746072014199327171193508545107408142600532470206592158898346075849322558090252016232434906553159576726369383014122914281129945890132342922437778505153334260642936498917984363111293863543627204964654687428252996710233611809055668541308888661731339154922878658234115932906169197695595474458857611134727202703156127165203105831755889740904480603343938780193692112875373083503656094550088917197625184136272856029749586662232440398677629132939596934575571445066698236759305232654193561805577546706154631390227165116283766188413447079453836191813300474961713132618857370016176937579023969932759950760667165998626857478284595004598275636569305391613710158525201007382898215974024362027832790152941955181470541375289096472957246259301665145028635903299596868221974827408141898878534602110480045850537136317091769375733311794923695562546260931299485881187375198910050302214182475601163349620637148045696550867436468509509480991409811658048787639185750030962209390766765282022578498264241056690759459429362619433103533656729756419801775648449366300260841083184610987732665527692976868878206191206684765144017100698133289349060531988798339350956386173394402866001369607663927074461315700040452993472360365120867972444071790197930498987409197845512619035074584455868532602367085748231127209911967840684854438492843009339317351016601678236483116198668983071275822974483755316136184836236870394077339805175940435559952357430675712934576075522270382051600107595341799675227374420315994762519489301367702183144155843261977037379559048365262390244305290359850784386654158722639641860643986258368346716751510193955847954768004938930432656842550737918943606528877622760579873175849095421592182712026985810791988856907792048573973336334837275691826780653112840547139199984885707802102718203484964030819618957237836211258998005622048256800508169193962374073717977007467736601822077760673023551587563725847426103049616093074291433525760679308115936363042182535010391730883827231184944031217212099643686576906846475427768679412838128615229689026964638290056649277086599387989117633977003233451669706883772350369482138375057320080337737919147047890148687913160798569690392034663676421129271994000978664478362156607438723942719418086403802395841226091465766829209010675015803824152152752934822624713474967336148384715564047024581471725483232657869323525802709062884655163029284935785874394855120700531430858321316957760007828702951678054285834545033198244115719398115242629971008690649008192947068022680118469532152975650323081728679262819819346502035318052646044232372068871043879781888623351865017013974011017197808577645997578396173414088603848862001210676216509926481445325933476187683025501462376961838575624733059497541584752039557133874701050436418766217507230388629335081920005421972380446348699330910987711405837404744537861012685675588221136012452569625210045538331100219831829363746714938285742414196580903836845780915845473004313698629685756903351128181016672706760253802144148914408779051140166687728151105633041643224481587729817427403963334753960489166461065956176639505993019650764777618141152641447554101675151598542340966949947933898554656244444126909388334992606866761963619935661213301102579913774531398910945649696409905769460188257847026351230863762028816134678680291021411283145059900984726745650183193564606289603231494206197423991802369551087566185747179243572127581869999716328263320236287161783043845403283835503073788825455790237315011135556799558786973063053697737475972878205491622436941769068155763814428351912151532205156765652933470466511509214447080591629192941978140593744837028011241073477807297186378786326633561245022620307795992120741494470212695862637268174456516400146838385136104677021123072663237098022700499444988415436367997807049274275570333840990400500620493692117451957487023101611280384450975354641174797953435864970373793860969968725399728974960868928656423844948654434121367425228043927877811696127930394241149076069332934688781293479578187012059682850490657698810427514066176281368263538256059140442766243460143824658678615240582784449290571914083805594057263275325207262527831350424804120195087844340027622267240836555057356247680446931509838459082430284611995651965579457028131226521205293371273936348587520475677185709343988681541506953793517927093098409867448898685394293065326665236343450079093769925385006613359127168001685811225489338750152981976037521608296253634835165651514771458173053132511416526877024766211212989773775572197525560338205231624630957163414068592928994055554033421146624292432127199659725737824085306656239107291921014595614603118127788312242229993492947523561818693555545057409556388535007415710323079944537004932164565118474895752535279346702581395459714947117364053749012852090884197310585590506940723394607836147724711869898619552766333306974526701546597784716515677727200248361566854483490597401581090770053190176656091411508045787954447552694998827652807758792703851784854013662244557312630390811744019437708361262629901275796312550901451542981879507924070843385611521318158868113584278177342905437998160999470472534157166083761633718583247990980571087973436728977253672001519159393076645496353650808407052597987884641621413924518121753168401959117784971709022582365858280228886104092102117149255044494534673801046358848901424682800056890883180786749799660057883409362648970477765827779899008522837012536153396566282531583799698705320425174275050923255707791107318340944711128845297454154160425711438548914481063689175050381738239214156750879346935993004476378897576258813274650864791280265636231438571469318830803453723673817111364057070768733905666716843300669758118309508605385912211661584465656610279106990242788885463128933808113855464336466547964945806752988283404473517750051351356709585155098984522313662943986469222924190722788816428885438060933363943534533640420050639847310165749563055126411114490051886009086771419781692410107619920340218443305524161187306616648835244947516405604229716169141356309977881031582824198298477630387128328789613325850880776563510967158402687455699078515474649857168565839127200443565120032075621060517295109830684617431196570139986463909552884560427276201520968062975410098382801846383340261018814526306394200378868365981054663660220579847458145232980846402110849220461186981800504729088435695621853169695842574974077358967419411337558635388103639890549286986220492242907179741354877407426871440688227423450452683880524488797430745305645607569608986500346087179967471028571407534206468720579279080405332715434774358368739827597638481141414311626447439687121965599534362783004274289462254422774892762323362001271481444070323639699624421463922776610241381144778510096339777260744186267954089322171353548342042864487207025179229709416127341417456909220347082156463712072433208168549394339831703847182917980106704292907137665644337974024950159340810066167505597430524616333185331485004106479529615258741936139220448999597346158827777614905548609668635548621279888728535811658716645863463367762614611810881162827836872206521659156318166168487151920810476231541529983107737947108557753979777957685742071864408917256584545702148268781563618215552907640170165064304842279821576659659793596542792888384526541159159813130110915411399978675520902005739326626756787104925323984422650178005861028894025726584418425028442965091072549023178847175929900615693364549602227750418362276115067573440397921782335597102523616311223897512647050596582585203129986733127884059910464022224760267637578118793060786542285153428676539510510433379867743503656391005352066472996774420051345012084657991021671578975230529381108633895619863647366809122496979649698901822874829518517700624513873804606412252153669173278830431270709447115281713397298722256815315018983083031593328352266607096521890608204188435206979015498332084558122836066058153137893285125959615419024324698141040303596482190529516205920040517277193472050182418591796855421210437087300991441487488173261639601887112085160345302981520955123413650921024001239715046611946103395051533868458009765963431218995728153348808016599895034803790570235347592632836681694005200535871897725961791829687462596026419337779604853762224607496950729333139056784175046716645809720397330347412520493021819789427124053616647243135144161536299167239273910414269843754291332538945601519457327505304258020751852600300310509028994826390112417259885120548207436845559984370258392914388292630294878236734834476174161684961592373325023373107304684621207874973946837553224154697924635411674048053130376529592394647861171719178064814064049229235561314358004819493980321159645750478765522674408588306917988230537350362391869552465655456199203144932624795414798120336809611503207543884042936752555559510091036159898118151187562816545146911362261314081431698653039703745102364342847530353250588693516426509319081786834232303200157282727420344730179713505823078631884721314059776549446523283757312718305033449298163205570101417696202869477902659475545948971455199045327663837075498685118888839451393013443300386186145518389515871953405781748109331379546293631651407410789762810138341514197052374326649896143076469981015283220030595006390222064632886056491612370442105717852517121785743814473676874671904145308040674529468608555082230312151831000484802792000094202579515092327441233083489669120089360979693516439612919508224311810290847281703855659693909862356054317535911776237410793847589350295199800477889716919603416791610104024176992333175953243939949259099000880822997079586009941026203588301523253913078024442807985141303501279891624753898542226920456275290649146417491566442548339222088588187131865778587689956258056774076874722221860702399975939349212046287329837442330471660114138865129156596322191264096798799267374553262191758959859686112277940142311764505128392554450334730005422537552283296696793713874842427337128306846769039707385671411190432133789710665604744800253155504167263814877068711035671995687923346838259365614627166972049092357856576602587595473493418023865418807639020110730877662767051812528761347228576394905057259175060508428278846443143232241289528834605608839370242631460570996709743614164170305916318516319610407226232436181986239651279133002313520640332346276629194698949831652079774731056225499401010130508537833245046160707240976081665830486362895394137711377010666653934103658755929727858874261664899361003799173065203089566884559441793610101817713863680893809211167048533956995336051911056444112663963729130248524550954767619389422244230760372017475851300958866865797347406303764767519047828524144406239043146182780951447036944457424785802298048605133781006241724704897402828219895751160728796785250514015797122498751104396268057794521053394586683417924748605993175794618541044473990859217385032349938042107413384504963897016166947935508910593478318392955015923984221499941806455528114776612458739827223764442734563586194346469782715054794196328174835329257442250105777749598082320642243981170568382006656817156141402996614677455609336944075043696377590400092410258805227955334655463805267614682260240486322467483746173529884973822772098375445371320095735220911952732371643490648253363901441760955568192151234464735802388438358876990673947261950782441102935019732071842580036680800501762775536128986800088614180163335484596727856032506045620052719923085520809325267586548227560713713441965931354987829838758475422383697720050428118201589007360601347180218722993492297077961484929170386420377577657414956789780483137697435654455171395139846162142570009512019337894690590213302650372920723100200768339092292762380938105808011367506589011962229574456130842769071495517977535692493283618702591600092663527167157906628397466274522639780291610321254354378739944900649216688563846567406169413627794221293592651216427019949825757495748089927594940772716282773472776581049268301770781254338656310792579811364241902914183156088673356669174085496685305704631447843257527022872188260302343079231285868658371003022310376943303878868566244891291886450267508814828028962421810766142997712481509658019058468087160330774421623961047550244502254624384765651010492902417965302083498724424002977111577240047129200929039765914314179770204642657833598524024767111967058529495001564113666935179611374328845984789924986069398242455941997078242930093794741666885303031412668187568090502199580046271912207268712884081018494970129470449864705735934577925694725593924294518816978457344062050261447228428553912260422439596042569946731008678970065156368402746708858001880388823934849589287880689971007054967236258361749403283779879652856551810852504522416398626614086635549851667672017310598303197309315157026926390196691681654355734062532153450059764889926347993034737411304605420810602120780155563207106048480218321571302186742168889204890843038315269098743738892840795573165991286038740498167260167918251501651740599741683869537376373079354731700245310823284591445508787642972801630636942247742520673772317512721735331941478327106550243869552367227893171403468672306387032093461525351537398857639671972273385474626181852233636882480478762837613503021534496420855517717252718234480200428305812407211438371607765401458004416431386191292761675715441448431239006942813267628197905746371598387497669910759259890419282942954171331565150149836354743238761841164302453176981751264912300688987490555224474731895746081571501078916030268161794245057143692603392378501883549273993932718267997944606968677906414216359397046436393988051720102471367598891610652290094259151294381158187631869685134073939995046482291336575919455297109066764028621439896475464150474832390499284742976293796176900408253325738487656524765401876647753179868805633908766614646103958511555799334851944781688335441624696020652988245147723127441083277446627776019548911922011375232103402674086741747512171204556263598358933239085915216219225039743119994831271742614442957780955986699003997306097402486304788447119359416338523506521348638301500073033043650846816403112227735056503464921455972063550902188012523278275902869794911137355425145536239647362407080590081653355910339448415867050866773770888198418536466619500958801704047476062591007758995567905818703126450278250663918195928825571718756060588231684781950416023606764682937437276073192878242520897893681113574931070144163874620678227001451389336780961115415202616016397621622300820167061467376181282418986051413391168888340163784186167419622140656224681578998171892111261472370661727998969485225924430308033122629285058081260331239031010149017463038678713873965867149369369017784545494395814670722571987857132680993349191664330708904683296866096942934412312232162974513092908480004910678440348158284025731971645270415207929732053765699054478251997111879604728533316135651831084670231569017338384996405330640119526927811917696994746067181205278806560946159294088297168255710810267473220803304192876839756259050154048235504825446522992796540402922797888820504960659824958078393889621409960479146397169352993645917344674009173784039657989653573018913447242719073841693403051753103972028988381405000021871620639808720585250932612084836575350270640479622269991213819942861866497837640541853089913993460606357045875241105166942240724566510995482134708281662001868589887620147005586316690801674295619827238706332978543860257033702797051845566108377913502897459207046129651519960879028330879133324844155440072739086299091775508265972146794779514210930733895622227578324447402108093487936146550770296066281501193561125468607534251382399877879392535235473907031898810252506237004783852138474566307744501517611573645079761274500370761518593059270184484455316593951372607774718054008621968082074094677287069896548678409747438529536050565910463816282846046362731071888548890112013718481176396000269092809863282037673258177313079775954188405005587989188693713256624380941847313334719467044805822451787590259033183052463082510198878370578066760537654177085841291439778019694695551203795735139946227107351829175980408601960636385007602553655268931155036697438253430992990890015999437679314512309103835963836986081457404362837970109678472599315495962246618093013882794399919193409016551541757756496648987000268938053168269986067640670762224997997900492549617088815509086706471089426959125177234773773746065007507401633414650813612674213174596628004502945862550876749093653307932454001155174091719087859871160876712828367139408556186597572544812238605337991344330925698650306874763907298998127541419297637411047701303155945819382034019396303425788981488955469157178910190284362252427008075817643297430449464631379271014236726150207343583133973037347392558586634706217263227081835304375267876447616961696560817440597603904325517825186775843236317895709454900767246283917799183726316183133331152293494642409539357204981971189810989432134278068131414092167908750647528943660540478751313913626621027038341720519700414063587873160581525306539920785747194655169106299610578931311452046209906294692802112871845585226701684789031259186730809073121801896199257043818639699067502653180464739581773110082668143937322249700797463470532797468432767171154219872146925579688059778183064484182564092715229984183291523524582346252077275646253302766788851786917509633980145672302323879434314815727732401123668734710286580700395616361627237363251677393633952606368126505495282027359464729477412538663636279710521393647395889050656581867594289615970294290228373561675634765714311596111203039159726293424862099847515058841815079165706327724963794972140596683437110851483041992382345833296947251780009567581358473610910473255557088351903627691846626808614664721683283487129234135785099292646565571137439206677741856806978016891227240548742743080358691713739396553256237086685994233775105788691605446206534321230927775786182028263943055705815949143601556423609763168215405496517126381281555873672818145474096544514461359425876698751945767648929764699922245611622547722205633476559188211731583800894382170137928616492762458762140537415862762356494131163123816245054505205274199327245200491448828080170100530447945222174177058845685412011085359680932261584149714029295709864588643377302554523682525329645766486827315901873086379242602635683199050729551064905403976379086008662883850153485929052235456471782179419426727323870731375773191177815006403340161129529372830095106657989334580447155384554850115436858829457184265550996263795985277341681881862581505424533920236748754589143768666129620502733182941472477824600091628160639321070259931963189147456904534800362453372437147128191324604149541468238425883386527559935521128056496633350390430029690869049623881731480670786381536752182846785494299860080780838042510740025262981276718329375932079426093216484857840098952980020589691022607757583203152171962013065169008281656515762840966834560006670575328613775549713102970779070403772077846216889376616916788260844472306345024120089711971414578678875054060115006875104065500534856910319371887041597538409095646922130106418704799582273286433107175595371782301808725274891706612959261511075107091627475860401217962596549708130632557480760374094914478194909911544856768903150386392688133087353423202162399485434675172076821517422927987170802122430988982814089543471826441003328581457112902077164822268728702435256198718240911428273972084067540485271854112253111997001698987767206056096244871098930468641812409791293988275074455322954477111707150270658568051797721311500298878572351216800073047076508662575971998430502060635510198689368464510437178812328309583018160102032305141826300039043620694156847484222838667769818475923527755676612436637414955859068530799414777419340421006609073769482256416052834379623471682052012474751806375755395277208118015573714285961655323682446306464959283462360424176398722487963316031051686323395064493464355849559415186524470846097329926072466102213475474579414760186685489475017720470546043394570618836480039222097610039251649762639630628105251042435847052757467004626070230777896880542086662604101495916633029568941888197699397048943648960914253814895404857806913835487448312781163995912799041954509964533223005473759795017063919406375937758947424651769765123119296462745477869387800317512307371052013382621240919182678753388678772054504993748136688791257318819722535585672074269467795573445503529904828602378332243664700735268291145179263737251368923441249942885079136674014650702419391920898107851784725537906124993596804230226066287173732414291306640833313244651020282322079198810481227066924306132387167240971543949203904738466339079182683885649800448185591924697024916076626644246697761984971431699976604712075197610958755221769089831639125763615524926065692801392055118344271594893267051318001780108206113881301422754081880236833205726154241741724748683510947282969888956125846538858791118613397291779440737557251987169963446222215011877571419331367789004780908142036512506366084276203482292591250810542943877245395364717313888184009788273763292099079967597322989019462255050914674055613442759265714100774059448386880516894662913261909188080092482738197889346671986301877382016498927932084671983308809127267516199681862047665314447407132860949664098540210080472635563321449416800535456370041970839365033442769674832241799805784805722260728322537495048595528265030694227425113374582906074195596563518378504540845270383509167124629395048395966632618028454406303262159380254890560422832872997515799165960926456624719411063444892581249160915903978471710752100317019220437416561215887292633464642142691416869888384538177008728410220275987998469052881471854433551093743956035798687522672911592063006233935029305820642449726058721891405393811614374191005352779819350886799688821784197580039915645012588694462594045369742479558249710353723885221128397850761406227257447678718719066000523542193310625366315033269892431776355306290363371856986650084223352923303019558167460789757286546303052301631235880278479545978254582184954641977869141679627601470274643164716104169831493089226758020182597412815638393363681535137790957466200687094764970261125705118392413715013274338843102676651710924142889862746442057767716910882113624792931381202697741796159852614584781820437999546013186526665919828343199934612605872495516782713456424065212459706712136369648343691060381829541275569500255815144598295389688573516929194306122220255496558906196040249155108365568116740862436609602524225909092083516186784173642306247547611776359412856950662227268611417418984060580693417265080138989220302111664732570279247452282288469640002668671918742497625989648453309717850477268747120229177053291473935258635343074521905468315574430651679815820041711770182453137949896335485058255037646494193015561863583067630896396087975634720221608085312178279569629133351565700545539392418053201493072765431834962581085810672250477153468547980581973090558661034768526698177120523899156689476295718047503326532869095599833982137062895293943810801307021565685085389810204896889430738108759472428451589710328394817323618852525462067317923686036138514774009260392135843617612875804947326622767932036313901934401683334916248903404126322186652168990053993145766794037497903501628056978665708788368640649073831803395993005263413617498122434860317556019346341899180549231515802975176754808830036159497759444715936045679112476085316766797114072119512898953720058596141794600725856653870083014279385912103422516817119315518317903730860299777631666476845579486401831180110545735804739795271107582540430202648567100267534112282217524689933617749050940249634969564622231140866566437526283547409577238542945458643076322484313728753197375971826671870624257551202541507583171922677626996832214878613387313877344158444299708680590426432958854165220093847317038380807622304536224774976704039678584675284230582722896889983550681917906836347961203834367217465963209709305486329563455740046614580692078652349502661630492244140691187186634357150235232908879403713711973569818747080002247532274303066122662567489858381416487230161353975118862896647302491684507476441000580287247045578586044838008797794328327545253977241883812326992760271475770089106698000016924496877195529781948262810514643858105591370474376507012389685443473919293925660759286343530960461425434012342254538164380818100092012210427631050716327396251170264614737392524070009235124207820103250048502176270242935496160988209536954317488763994503871090974656971207181706679025327334972034714609086334597263524223873041509077912034432575775694510974650164929344734621255433693544469530110741557082874801485303451786450708272280037053095339868259044204328178962186789501575900643477341287890393577863776678118588083257522092351889514553702849946094405933414571618590141296138106113769972647554298697762049903085694192800843503297343211179750393801554894476282279322325580754271140497585290858581936753016033984924276256068508636817241568165430575163782781109469307343841426483237364213269940329943142293747278404744028474800956712786870171892542116929679111265571484112495474657644040480116068181460604355157416136942151581826711526644169146027077948144222391951960635753094367299900584100927310794134594865968002483040505275939995558928067243887989034100524163566280990673184182920340515021356750308551359294593181444335717701785893130914064286964623091461546743693841276220361088911441768548791285883364748426809104929264833855063931990840851044704432031050258698756066494596059601544994188463365785333174436392730464114402976026669516811201150185123619499297333651174557175893366500753409142924019266397070075226974011231400988526216126741445143763478141051412262306158941617618253235466099574709455893233860541843188373772006899110032449778503023879012186083927585722704505823783119495237546338831352250923485780538032048422906432240455434556283782795090375735325487351012260852501807239086410907932113543156524282591868844574501982344216041760294336898682612419220747284507257821756726164119322811933151904358851759199421005210731883635167592646593505199973892943930013220327664760588315646645359918698370000993782177617304865940895475947901018904895686697744129580037567151641849990472783920133543580052304238548307012382703870770439094779591048068538977709452131057542743019295483097388559829515401760426914074209599204440272540072238833515049349036402428804016003622288865213569738512968095661745486337938263244299062865575036842256855850719452997870805237402924904834580024256939206866323118441052828481812790378222124789357814233941074504377307329005856770500331285044630247485659609545988685420958680573818312576702210777647276505229381641625199588168299781302753267279994780315223917329705718252108583758384860619693544387127389260488165922446119345071875516391438080777085758703700036364111393138958497073827262189534893885015867619781027723175315986366653232742301521724779419496643653380027899893702726325741733139869920474971683620879899535204993374046812585235912735456273237544839926636603079491034277282269896453444874641099184692743801873998378887754222399365514951493864459797847168501496080301174926029830487341448008612218225754205404731635696785756716513180952879219431076806139173992525548016074610321971042204142967254414138483570959514677743423667166748851108604187515095328101810122517620343087096389728274456188308507248400609571688506399912873231818965276128324944690658610548149559765620440929811327693024700001187140464938034390452630693092062788717684665020252893027177573444420463757387992044789835702454418300508250948571565961411916006262886924047017496676288754714750662373420043828801553989786624938567198365129964875144449046375798424313058874248525584400041483707305530300896183603718357741548142238418524407852544733080564975822090652536337767815094368337786246966938992372306724575194054543067100862770375860048485219538337071974266968840097588349250300928623003925096961464888099032575684489869414957967265955437536714219631222462570554791488847304519047896966960037493570964828994788931642642075252398011613629891226217086298164151674428675871851063591392114327996828133317659554392802938805761341116363380598347742809384497521093860139969246716785331809412776213231383993966814183982575096418472186069966538722470563194514824040997800223362808379032370234636867012598183990414309822911775256211030213019068115377042684865600132143159314064510566256843883865332639890826448358740143891367333224836836287965817363856875807540846057606840517831279885147561434841731426400581692547121649556912911514693002945593346573972628846350266890656398630400392436345331523756233313426534632877331563881020524072114627714995953197245973476366252809529027433119143391038841858411290312851511762058992791298751812922780463718497421431582727612496798454489355750252467655204937647524946867428955515682694024207850623444674879686230115991678800452460582428737677175167561645899950245383754615035430926832856432664638981012332442921301938348461555638850371779733159699604084334530257315328366505102775704457334283749204379375420131933822626795356989542963576698177131371130101942975590254950001883248983721117363276146061570565027519711736905896327511091534679886854887946890417574441028318622223741219971965966227693069910323343233478535191727176088852238149539557134048974457621517925830336511774295347029391189854176756305417439744068587919013236969361677090737422732595080452585171581781850290613671767208977024347786329112202656430093478175662526493006116164545299629626016187682764015668411858151928178811115121302803836550427680929551474195564955014319358304734353432546833857276034121108250750852931190166232840423514946763676595339637464277581449352061747052299431229589198597996735460823903846940393428089268085912744134261128195442229999072202368135561354742386395632036570538655559478230288601902749377344248407237538049226695269754905424448962769086834356561640125806367296007696027110380052287221441662540569105058377134733434436638269097623281708683087281700015805268709082044858052948214053026497324955794955316377592606294301447306587784181831329961829402142898446468374547048756346990469124472692579645116036669106507725188009074774606220083356102698848033268187846159981891125295547814975654056527814206186818445880941253388844560339629326680087168531524160193941176307662223297902896397355914280722939874587789428097513853643363005643557328977146158365066468632917499628347009413789886198526337311666301714747972932894416509116194068172594858057230765222293880581313258135845046664852104017330808407433159027824770517900195983710991616868949123652543478922500488699159172940040834956852537608898234379655240749552998623168294239705414079220980117554749438392609183262084320953738170289194770969500991688457932203659131638087952331702044165647235499589066957042189556959634407410754991307264766717484759723576348751478001350233047200407449575098757471468492635205398731847654871889450955558251754944294434733840336922465332113961245377128573577716063962661605018015643556508849258040593104527968376339909837548582945797837904537405633400954711314033572866637743862860892518070419861122042077897055361518201740306775606853048127459611239876705989625518293686757741203726046245246566418384837594916661809638403383551482752310397970962452495585296399884617924685379503075432599867324398147580174513782035441939796965105935182167369552839601187352645746502523120452017618792975322901324297120608364958550100102606256020803986904681738347227492692378484413202665814818733608829992073684440366773106901764088406467283684675826607909359306528362221920596083160981330670492720392549115880597392053357682847361281343156034081565156556877244875126628820020044469604466731091006853775071762647227408538695216674365044403436241520077072036114884333216046410372654664960283250937517787828753595106660406435656087318067903326967609532869065126319017067351131403773122693678969979354137960538142679499603553092605337883333060206313804775347287311504639373279081461267365001536063192064703210260834324674718443322550806677957986644022156117884995461934091458218332476266803045112583191021156352541215839252894033630142304893705994360575789704794782593304033965485021539118270188994841872544665219516625222221322768784985391339413131254532446528944577182281461415235470212824481593353901090990874992605769022192552478343338558109235816176808796210398810069883735469579836603126305192287718155038388421164495121264695609663234278030321887134548622202055226979113623904695167790638188432686143196187762789213605642622072821037638794789531240609737746808964855473644669655609927213405452592099075310042866267262353512423439877227537873466779165162989814718813715739203093541934981530069019462635930040240170440118073914816810067949416391141676828224593713180027153511503829192728167422626595698625562293032448320343095484047569853481519554941752129906514161824237130933580484786975911042241257877630024206074544449428329695161764573204466428520981602688135784228055361729658807357371227333464595098059046986403757903380141738313233902418787849707405752056832810113843375764022868021219205197584266750064682644871549476816867339431786259819407803439035695893103142761704919658812857177636271069154979709162350248681006514453329635704411457841107028685108832267731841535864501323962349254213868642298433296688465388825526495779408678765363204636362999036387608079957877767308418025570962785928163480655096545727673052164659285800491674721028444132290806226452532535154254147621007883075448815071140285889720196121408047656144536141299040565759200031086641763954027713918710139098424537919811035183304714999699357766003106809370647920701387703455492664204123832312754565505908835292294326664620461427578344403038740742634613007399715392690770958930068943126292192256001933594359088294976221550217168640060898730252707844362393947701955001376563646722226755613741437097087667247047214735000466166204891813380191543721462354754146877262678543778080560019749609911119852939740109920709153255999596448569975851068757415403350412045717807590351979057062533110810702151273681971804441181058005104774350544012330100922378204001592159247117337942484482225396612423566860389809318257963956360233675460198845346040265856288144147504966565709561906153820222381900882678543441328110740740550765880246210063838365460855949610491799271646238201163061519772518592912118057090778702517686189978948768490277859930029850084645891463736251977052732133218519914875372927866227231949236398001795749166721673634756488668841773571716864384845363568057200482144568895254032299293784186360804445184598216638080078536947491931360379833467311089228758819156252827362592010804397020585789832683465796412651345605510370162509375422586680941908664917684257146679878980069053726670130688235736417662600040462947070919027704920317340363681584343548550907814967270660871883687378301695727789758850862586778589182512345724635445549944166933022619445869237252160384066562151919669269892623930680935216065911276140656391010474493525424668177406062192370939002715572209169186615556876401954843411265815532303897188684710165167931646100419901131195400697570600284430866028343155871499573655326153503402306134461302098031385947608777729280909669935626927673512021653920211140128798168506541280995233563306675231120709997707258756399848130953353380458838033669364402757429221888358212989328564029951666127124399481645329386220889989164988300715004077702935461714945713253600289497689812810125630424268006473883918836476026889136628363551211581657750834464909441171320897435358462670403002309947164684560001336158103744748844577382310981065133204113331614913918292564984839849457904180045740234111105822155954505302618882322305063193644951134739112436668115347898073201456075747326306409783051536659502876620687058444696407605345647122435317056822634632740131659581653679284549162814095702660451211682681144418956060091882991576824194681964996217319212221816926495378676418863531267422353220207189079778519187090635967109052044083111930940777455153444875734352844620369504475530608136684967877209354766635399705121050034394193755737990978695459302354212145469990600667492489466391665507460987450826163894745038382844361157911575517855795264206475391036951340059151608505427297862684646537198298447330985551590511473670134753346359106941016530773982391075822042653291817148318009902472335776726124832311600140642534744434069284080932446229916714822685213522161546800401115129500842323476180226438791588592512209895275245601116891894147367352091783164718975745722929848585804371934843708085399888912723091939586212046545229676200752694032670925352640603494704427757573685461877065469215859122903793974650985310336537397613845913224058669659064175985844005656922502756305330909825943210487030076628580776658174293578194288036789915713902445957318346012588918530692893126237533077675512943242882335117849677105896057125463863993463677034123134706375614113854586823198451374361785676534058819278101287168342409096579219026190360258047461633526561812796300716534682188113147711818769171120497676017941792418097923680382365998833227278737333248647998592182800664379524553680436219737680730849613838539238329683966988204095546356581470694030264920070911215963021393664057155645236116028007885389286827116044610531525877486254820415386344287158053258596704771549053081943347233721295867548572694126449049064521475708325778655390379806620241494034195608062350741919142191444503628707503109693905551729565365950495756671231867852737318727069417495208251358361144170882021666193843251251926643751443505337356495424023614119116370934375430030462680939496209075264281167409545254396774022245020194644864074842795293916983527755273525048526680614565430951828013198152470799099191141411295150528114681025991408816638025627034038369984919013721756327835862560258015934263621423186819315636455135454788266468640070614724527883521511491246963639605144964252247341357535363918694482393197553801529952246073573928163848304960123490029730069995067203258026004909218023958495340108806356425762202311131887841516374072915040519956419025956400371119587543434092870007358575589991830287034906023536551521019488786223712980971707570865822389197456254845910601610812395991232335101143886318568977579283970351348925975369489888330287418452230917573295514236629205800176082070188191818797428746627465311101510901251136967117312286220785432224982584128281386896507637257861151461305892020138780503432382532100316288679201320496802369020549640941560975446720974582447282132682728665748121714010565391513989897012436542607702478178437759145444900601452799419473092533067855387700110372738256942316397037862535808842631740290550628478702318195330481091911898978858706349280286585459855054868710626543017218037629227458512169642921652399248729652903249335206735230576614062739495225462595067755859461771246852655560751330657216476251671470828676470160048778158067618828957609219224748743179129994570510427780809950325577590497565297568298378926116493736031045195549930628081640024891982715349445885890588006399790815526325865018195089822828405387344501201633547262823086279624418709000545459086965146151324686819667579771843741289533586627193604634249613081712448738807307557497279075218637814621737022278740346404475337588145637430413425735523389772165345602083742789830083388695281640078862162110657188253151031367982906886316711748918713105542919024732196163399311473480174974543805201104653992095122443090559309409036372149583337666184193217835355296419251672382658319857187107718103897650923223922759454241212914605526289868188251470010358097215595845371984805262148499796194039425697456492701523551681313540879999754897152415140931111396577597732179759375532371210119526290442199977717403162722727650224418737076974363644213529375384997755243899078773226844794923396377063050567545064358205569151958303525489215679581995087760637997865312988676718404716650163994649098855739671891347202005642406054794758799236957865842459261518393801082886334364690994379402805602671398662064343450857094047068867610620704922282102689353687549104496189963483032343826982927464904790657940395951145218372344092615098466995277331352119572609461802549989880028138024938482021930431509556336751665198496826215977601433351169737143321624678105033835304729171316807036124755953860340316809804885257656860630007241508586600127275626409840165748492922179007344329206922433395530650210866901432772386945904305172591963697452180571233854315745001533762341459928129623555476808654854128950214053346711594609017320287602712674204553376129710953793679900917941034647983662670690677212927047405184792092888548613700643410024579198685010642292349831266101707196878576345036515507244678925587286937840234502311809898994050986104704055873210961674401625197010416393261898932094859750749716378621343897847878251729482021749469527956170103470000567714264228087741971330198072273749139973565221567014512983957417199944284615643408109364311137415451822178381875171554560459629980036985862933307455317814428205812672815898223511495067040229968756115219024967132679749379039918387015504491518037780652703230455124784332278875836878400659248562105092221165462820864573860006496666880329850058373403514821721656780481264080162566379749941496183109363017591839100133047024230297667660816152772247009354389917500642987247153672522681738978795055792809048820747971249000413413778405433038395299881337766692019110374142377874721504021975429968549159899549004246767922208527710230619838171107770053534138485877688718668006610486370433993544314664055571799752247140598263964301090992768717505641807462056728700019055430094810294745627030304893185216118464607378535348786603910497871133318503113078096670598092370646764384232689766932835501285058736425745831360840532564444276299349099384778049212606495005258005284586322515393101618077222838370644719261654252754723121563938443929601835325882739642278323163359519388046989069114059339991245098376098013951687242438397524219004655689937841016604516915797327256261988257803745527735636619887168681931840350190310213579916710376767488925296512128759316469334897099497921611558906902770038799527722138784632511740288531449081013265145055365398647610745876517321516071687586814272260558525938044090327108366321302169661017421452820612894407673101507121625449793042309317132853942828264240736075233626317881813796397853563033661692640920958445795549605657428205026732734519999464042941033765342476746269400410583851644592610983331450520070028633576594411554018152181410429417011426283231736875745273102328275952832921795549089064502395255235825625828349154452767753358582905144225192803751980254140147973838805917693943334793045457598131847390004721327509781080241101737149845668172360665404590618695820071861636051704611665656212364994520816896953912247275401490581505410488356177510422588112125110222491867937027752415685850915754442562247784966311833355423736414639497751765412990093459268197655437601530985166165030450476387020756749187289482010156290791304421851801366354657568959930080226621751111438615535753475706667175646869031369756294175907961976721235878140632211818730660865698435938492720090897376303106133747696676058547299861979875063869193711796648179076472025821997176802530552926778688775517450644212294541195514293129913144588262037679480075860975947736445067462694006962475840270716254402427313670708169637476600258337991658416561927765027226904070453214859622992638246945702625817051539296676336229719524271873047939526158778126380740955437572687839129166577368888724221058905892155876533843367019801149979820876651792209087740312961661156734363919926133288853236699309916742581983400397173390207325867604386564215406495148378373682080471611019101300508052536880232252439511075860713703719602219457540149036057454986232581944208720056440474962590884228034558312774586939440259023636922842131638565663061201349025921590899273972757500419601095530110556232468482192736989837464995051097166645544996684967751593389413457589684826151576585929829372812151423093123512124260199995338144104854673599672481937817603984876981238066618868086545823123547169278436416838954363316105160640256407178557004778338163569772062477302658359000574528264434884169213644245504133194173690288735045984566724954870740400296122518395780333913460255418165711641397491068175882283657120099332937060626944007415335925279970090314374536265812514631840424297776066530753515219458278182859552749709566379580739351231541305297862955657409033445872797681933655785870546649271961726807264740352103019174260367695008678517170291638538493919731191263136650669836670599742088454230614474155071951680115641166859226761760353874076674282698057019305502552433915920951628593188077791771816823897492836537666129407023457929256914686900218197516472879336839482522369051730797873507377948533687485336037807324333342601376010370345994925012835345494018249043713207356547568990289810521807284148338249544145159493161828754988680060877475835674177857348928564647134963145257170490822975330712176668189741309297590325264192221286810506279805713849201801942818570351323357772021660290782851539364475611287347239890871091315817836827834263148347989872318560371996616529290892647601271907973556549965743305289457471706776486928711078799789899616394115584498901131605778834540368358655132738531802413476678362318001498836033013912992509781616504470747663955648480409730049971459070994463663783109349586796939165683453056310585101602496938481644269727032882256183516578712551176757749962119939809916208609819310466034570330939159591548306455161255506584340683537471231297640129210791548116067950152417341062400071837005318902228338257568082250294805493497077051753132194335640289508617774220635419372345268784724375106275717872623556240021345396489321936942093999901023891047496541776821228342821916393925849479653112489595104441895237515408181965742425781491061836385256034881410776471228288898098886687741075398350559561561781123858389198921715666372408436796285033678028064557634452883687485149819132737359914874814465778143264052391327305928709033258116457555755525649973820837831212152451516719943434321657500813629821316087464513778554886173298613128878566051654921661127579541628926547908852594548664372643600947208562871647902582961505642154295398999472890893633479526893947229242344642710998950436389124311282663660551444181594862380970625162191234268088535847659780295203304842854611528415058857100349180479926352925781244593321507937849414169451035314375748316870162316986170441280904432525869100584460929934084741138328827593453746914403764927650676355027421471734036035766897041978560959784766709092114493318132279918585996412605181874961730918672644655548411435736688231983365880743783208717137241145343855740559487751215881610756159145868989187811360017157627720069424933920436579539788537623212638813754952593361774457159258263572213225731329231056329840293200684639449443192440054687555525204182831159808853183147618505246827423770280310975731431299023762094729491619114930912752285412417794179980516669532654878013234445604076105627459746039826719476821160948809483589818760458361892117876443298004611297166887578261647247511811147911688297956002895049151242987361290752149363322571073536661606994127745270397042630844733381596818568315730790536448942948888180683220595419284119249388245620438247278276703878202616532626727345280617096366407915582037721125664900113908304819731044788350698539862189946868170912279067592297294273594470706997808680606705263065021626460232508208689183751334789960837284965294745530232271525005587763515037461661502737966743461268183698225246197039837926274151165823396688086384599331812053310882719496892790833044857147835608259610620883960562130649460128386154668743465644216951624009185980563070748307792470203797473259385578347257231756805811217308302377469310193719369043101286328814396302443767090966576095278314982634523576812577868939583592443904512436618462325241853853925503283833971449591999947586098694989163218553790616588271224489529065374601276156507640739946379420540553854831382622192657679856628671230052670829743485157284848500259605038971835437940303211455696540751130962060132533563501309112374559396150076687510448450943690951721113464415516387660340719378905967172241649056938272263721226194477774146411487678325198323573360106512107956933363281200237655057158453999957816556506425503601185660697423739401928793784333047479765871345433335884805289878297071589025431482488869372352567676991035324471561849361042399844281302461619222047647477329617660525513283782194024801645671004062158610334210384459114131111260131073297095223524310885518957358607436853444345945775524456512453705998470982935204538119971949414629157455257604899803850295051063926881977281350178141914123824521731419585493764991945692698217990718459390760010023305641934098827636956339307421056578607889391603970060854725819854324187240386018563990790283619466484290999186176980004747778709242385409082633441657768073560969417001617765801609011481681472692223095143694537179102347869984507359828546204690192698135923949104217503044558293590274812623673488297193406072825862382230941750062192154334184043008593912228654880612442310508454653033597540849504367486383815728006971294615675704387583369315229261916943071979549932690961157262901116791066904598760259526177049139491880436558118483043907783486061611983353080924675394760645153164568936914848244970883281668992188301906186181967483525026217408603920217314397705059003331164767918272741435755464593912670993449018349651069253067617094889259175936127639989941084642379044532588449929893252362405619356764372085562130303192119467730000051491498849878236131212970392497629777514435187197076559216137763289442288220346681089433429454608079118784622795534363842357717601962711795701445845170639985568174351260882191326417947530726584010580066645903401895080402562888601326874269595107813035859873199204093266081856841879024798218131224370552988423827416289139374743732780807046644354614201968232739165842270641711309712153006512712253150193949738737520455903461487249959787823167146611451854819857301746727950751514125008794282637540882033736309603551851061859865285133081991020794606211194034877310889008362461169630892534993255674902422148254658577541300271234749141064735395813504969053610031507843293829753931171683348984707326220217894098263618393079475172131568710655859141936312921858543638642481624355069340748072490417503988653493341489984525421037948560720428863039380485019085275820544225019038122081072839971995051444787482767644597067635870451605902568007479022411523735556468827164935975797703460977551101287597986097132880261286969908499878313561375166473583382617280549918659358820708545431411951830501018167412636556357530832005493642591318605090098188724877220122844319797068649576301666301508234429208686308868991636528948633719381097832080962438611484431448890645361864232458850190533433727273451360681370421659854601434284236142816702313853402808823753190686611293702095950628086289029796989324224018378180529581404413567896433030341634149521913895880378605974839392027587343014660390971534038053194001498239883854159029139128944985186897875326806669665884779222586260893907248226221693235526054985586927952656560876152880786854014818050099285024826771131364247356809143810355196408148318880039547694293561439007788204402053929525116219499191968263241224405090388448314567293556509143833457076738477180242161036068798046611478241170135265753539823225009494240953738819809293743187997990904976306393850512747550182381522138564990260477864489285204588556158012952498888077947762319592166206611341053559400801111920174783861870209071712974770893201618189262228992513887585119111152785089100252769997324860507839991518293112074101222449732914567676477403112755995619013551855629971324780861378072385196074569638880318958433836591045211747846494642506667831535673756863323767111884772872834144173159058799457828311341666747771857667558649224064551182977079105023451440455832169304284086513982144136347991940809468026323489285052978953424154389413930330404403158837157193105983957645562726904805752989670404557700032868181466334058223316894246160949140612768793658203103297708004367057943428362913927254790416524363932679779858226036670453045982542172584321679684568886367237789688855860788006646294002448964820464172845211854864352636426701044099184408915587760949172364462367520700315751098799192333707036967267397938055182155864479534418959021630302968609099261301998106976291091497351474122496100563770713304827845685314810592724915196610427925637120950855903463255695408738196746908903828959935834999456226336284918857842929929078420873179391658608611042207338135870305720224461242495835980515585983316527882077648542084432875150014900479245385316557153841887234393815382927433793808749794975020169431191822909652940600873699365862882668779248137666052334648039746353613745145596546829368309523884133367546286028172370482253157006833416068072821640594379984899142441179243578038354148053181357233508119282281006967167841450279542689359442640882187951516251991806495930196201998988803822767438281291126444307119281751197968838279663074186441764432783932023903974811201441858070607674773623463053727954161825510357355224963618899022754573529528921855071947349896078327528698464098690642609375639048873014780845099256057229645183556462803824941106146369817404838996749499762710123783065522217004015285143461556562527290800382757785441600545406305294293945763191845829795410091414020218534958079256328561378714794820598816489040885539739616906515195301135698098246984593404693597844483474784917599615101917757504432368425000290177995884791540489394024161632341191534237697933947484869047972476485474787929753538455584927862101883676861577848914129079737896160917290312639108755684554959489262339412092678258239967794359822477944243142869614195231365883429415314823012204828298430712069480387051708286181784036633025875737939391108470026800261916437195416708930930987976961429524897299085309657186700009289667352314807657836164933241564612804991955534590941656850001850955266394504933460317871322104457023051199397663059021403081892411476895691353642195760539793052506472969063460687826476448377673317267851862922432803460306687813925235434057730550322835614993682184871327365177894584154287857113612063714091413187245917125025339310724038724685899403753041497418428112105050541760112777910630082652795832873168456895163486354354754123847190607559361767548990628021273403764867636746623208558216077761141608330687522064784749690493152387806712295856093931062037849901285168330823649916462281974494981836496903087219055149195545647070485797794954845216308886830630451597927124928037621779085578889662075728932496415074968572096571748036357043336748216171613658018977340165762387812721756813463637823416248811750956754077534548134690607823687456966461121591551793436413569934288073884320733757568680882195955978193750137234143766800862405655579597742454573811395903859918284460446709893929787016171145252831220637064280156652755006108331692793586833174523749101730458955635797904976362643598166099530775331215932682053363899538035888926802523169939606391423712470963011652071742693041104132251023114900427120637639140346148946814508774317898422634853697014914580228760466140405129683311670748963794473513953636606160062945224800303892962512786587642706775800208291468866380609800646720537826702606827495869527591935379765878832443754944351383497255557577293019453603855519940595338383095469941245004335309247509327154334954718993724506277699695641764248445628072712755348725691180980205187321215571344870448281345875112928995264510760927282994392148253823062697324754144246588803165449497568924917867146792764294093845098751991340072880073308942297632157613739510971316124691088105693182719697887682376195123572219410877640752125622064654442094516321815994048736370249790773086481337415072407496706923620695293487953717892945019698768916563863864654753764566231117787472400233252665316996662648314068288779569852642966578103637476238109760452914729238564335005700208523696916978609460398977817737358508807507209946232930019796999806607550827468336381534706058794009294971755975816047062551831449782358580853832407884861734847483023948314334238952677579831837129247850380967370006125286342301616437798421268916103997037740907330961412762418069701989298816434369277894005403083634433435281806019536970735824413061294113827051711805232718949082937197523406211998568303674414520490946756138681012758664664121616530500262443226210930374901891158073934561726220654061144900970289833770646755659304710854855295143714756165131363347697087080498130037550095760144496128089005645226770618665689775555951920373599056698494497949610253569314012904937804190871947293114098519999358270612384848956703998438050553814076796898838383846526748019210916947291075651159283817301878143955058835567476913086946942573237288935432108918525475606050759483508333579291786908308114628170066114421759124877201433074086484744042950268570279505207573323849785930906470722975275301482770467239803570597991949551230635433808939923231885793987797116160914400861120585322632902658923698790063518930516247805939681504613138544922860692952843349794622625619020312734640304899547472621315759603401872610608151914755384200941936325509924242560564844503562780828151699905867294413802720182287298714579086655533100873618746410587263252974701970404865220748426531340323732166611099992768832067138557868056581553729759602765251182648376436488887764578994990812708667304852308934492731279122388450051729707977684476317076977755262375536100801423691734356783748298110038178458192910808725260330328809511312217313534019677956070098266856767323019866253890588069331929423813143831737798066627274622972832241724665055827559483529186391058207979526317366827835786717090248660674051959079541557802947214445629624795651465282071779306196201107664899756051228719508887598756842134615255444690403301544180938331029825658122255775255440941370963384219629223626711917943810244503996943327843011551434602065698864991471350913884819558398625798925185092124260289492238452110040199794079141760306964650141567058915734490463991034205080436378119678003230688549631280184065961703898804432038991653441906624006719238112185761551818241352464478151835167157419824407691786323691395969478344443523131435210696444445152138618174121290337507124236642188919495712480768382609229910854587540560234521251489074227583393252610438033507240740593558939638580202662517359709105855387743399182661857626640658820602089522059837123770866922663426326395975617471129913440710473001342798990423532230872541823931375376647171847987860454908394018108470607358841359175278949384487076364174488259935439954571340224036684775845963146325818997178062556083363438961013053716883970049606689695373430944744422180833906626191956084847444745020142020019523646531412602030425449035622112672589717977062027955490707728131299450964241827972038893405934116203109158976155398151980737296421080895132799122390175643589409477067929028897750721889390237249951707596778663231050556732252498678785534412995777883636487906182544570129113665068491698127262863643266409632143859284984520434256750467442383356695802140393916176389314825313597190807228494411160619694063353457247063116891589954045526323507399624065885719222782375256723490663947542512497718348505258183056967858587821621645573777846475676864771658180887945276364027731678313279002858125369939975342874094906046736689929902804192770691451014546866744904243941030839702766717455778240350458284290496944237697695676721441942014936362827266642039061373658954750338026992546135009336830879793968755875467850994065166221870072326386982225869952082886225354267322642851174954814986982317333613177596655168603991168191927217463850615943406670593342108417553432366855508779788934713793397320429466339098875713408614721325253795918505060290196561700316386341158043576030352573740060452692198936311053441832523256088735891820640388518421795083555828917761739873360789788687710359677886736246889229730135047829198194286828554524880721818679313480861063317172959372932404024180218233611687951830912529071916830482665758789212898414464928771777142121132431166683802735690779226970035271536479622354122938335257744549317764246756271694180450910638170228358321965454027630825511976155402659415782500313965190727941851850389164306796407922184840435296444468966149897166876634503688989361013591382629037287047746311418045384003056037724223069310885534961471834267021777182762180075955302084164719840683504556795072681700885175427297481330578350457776474640972222683824920248151432620555822543650655455197596773554166135642398396324494485667321430541507488573509274539106945816932855823763521643577248790000727298859954156079769406874883827312553391392175329748951028705438305480777676508198127802895904470704122775018576932505217313081933336448501677608614851190822324682945855964740726842407587484843202504564599809019959554249970448055415900765747057384563707419809909827654131145681793105854715117815443288811511495917458347231677292195624651648084037968759491949810627387056725873868840424823209607193497368466399744605591660774706145651725911620921387037867461043527922586883303007546701609272827078349483900917969526509552292843346522795664910609886376281564898091289151720718919758517899612476076847535108295284989604390470883412368877137641598994995074528820077641667053294285960487956709447643547397383971579054253317767676838614519005978164736815691556373240801972437878366357943545474627563243372514692766704397798810401627310950536408622890998731131443427490803818145966160188446431122520891919279293425729664648831011287503191302178880892163570647538771057110630595576172397380374685506367969489964802268558957517256318618666716730993805575908154890843357732547148344644163133691488508230304333213428205788675742628678296705499504461777870013983102974991628030713012772673260766837353709916555960163146733948195271936158002108712541152871012810577519693245392536523805048166732184694154015895226837354125638850747378754973152423002252123638206391293774786582965406357651520128105849904096496315888106978815963225518856068762168060871626627602758008208659239746549491238383870379902613926112741634970938746767490895058728547957916089338963083344861096029609373671496748792557435647152541072268097299036704961250814939689274116788480766428734203701021602358036817963500410735416724327533963605902968626806012167747614348913831684760282274182720031498565465188588007423406079264767579200744880032500641192825750495009778793680948918372384051635570701802864182634982373225892652625273618141886158622574264028593245333914027391721598369084951589187526237972705609538181858341977265197514177216175768585767298546179540241415648286707394238730330101412756082792542841198603454947734880289061680662791521570945700456043752872806962937804938163826331511951858344823194746034760749667962850162776496284687606234511076653440683109306895197791335136995878313246271499547818295881423463451471919742865627996878379995463017623354543312192678832286543837358294133498525419200129941278371013010231664985430946089816017540430117876387402346195009752473872605818302471897215302756026098124669133659573261549972612674753056641379259599629785863094892180239943398718206012053312706847242834180663268487823899510194120398786326111327516746057469250627872317415501356820028736705463399611051186487536356498443078520448010382313591972830508493213970618692295541156782403462980623656206313649422338869543577492325928698259563881460487984425011043378553818328857488474334236007886457534149549552154341836376994567493526930032305501445981269592285460093590058948815162035849534616897899570911185068368395879775875715029582823585666293330783898330296502056251418829551535781409851910723132585201524906894316041511424798585108695559294840649591938536844703859879464677793545376833476437061241302298222023098959769659912539374889323366532194623061661312899001353920552586824682203529835714325100309024625727840739369136989898563139847299759416208450067632520481709380950845044113616817218501406252433186589934903665974811694339457980531052742755455436509207910479972943734931262820010805183755137542952751450527589073044790919564434330681180789456354417327002456869212840312665799040245607312635339712338699435563481744341014671562074830747276701640477780844820841265250625552682144011814486076261557030827299312947240252638781634158465505772474975219104902711259929850721256048704411279210971197963599698536684941701798425159478187210639097563347550399524232541369814151888852591402175589614274870367671334580560199732943187157880805347083079075664267865837849360278795812790198738397566421168435741492087800766285695293660375441990648649099500288688382416199301492646557048829688630075675048608438286876546375382475017289172437413759368763663688843447608283748666029931811883281240662482203085102936261363141776973409319027303006357864696749507001960142123900067120508931106100748845379585217387562975216008177359058328799433977252167292920936353641349068026459348709014326252656141270372123711512585423777334302951659791768733018331168782162513652065297689681365688478832096420976864051914874833590859780094715024320223047582828449280665006370862534339847056393311745385192143117179967524363413001692900666000689762267504911434677212881141073109176152373956737321187430356008892132014180869121109365935492625609525479069678891955326234357307959902242310587219309966015812306898844191036698748108380315215275599475233145959553460818903116137256351988698565236060591601862674329334696398586576305631561617509059816274302323073191620360858296047610490901195114059010411564948384416729264435966700812448540801660950903895887827176350525111405767854080646452728090418889376345370791271008271573216519264600237183789189230574883976906808021140299155444486197011272466354326155362303078058139493559496502904899223040404246340201868535063846851535210787215227743609236958704938409020407796486982458253682485474769983138760338979601067130896924604120377466357470928652757958577363146432849389540682103552345438502630710794769128314828831143361219005368562132269460392547937656212079857401872147879078471620115810071280840229736293002874170088643338794902574860605641210099072942787976127163970106205853989214396579995361359301754832306771856078709546244437541651772331744606238126591004745330325848830524533171772409746905506775726457888538213611088270011465309113747256586820634469704104421079877965856254324141775870208446065726901948387153542019148671847448733982261762303205266562050285392434124247772935618257393836326285488985396028219051452549696025584185742904990080553413370018039714532342479537945832975084494533009428524694834528929641673031423415823483003152121613097330831091994160379695252541510989436194097081536055717124676740433061655255491042512562620582817112157242324263729178326204405664160446224941914714572170716736514924810244148008047288987695970477687268366953254796949647988571269579789451739650221879513351760675182489301119597027851201411824843647080142067626796836957330322383007606829940151856948408753394564331791679135120517977417897979070108293662820035476687787189610989249572819141523741008704752634457873304474515259820815717353264032267437727129287076864150237439442300419215429269958476529737563955218501699249466837633528923492749039983329240238908264899775424410993158553196602846684398638862671334681849772109336769059227001858411317812163109495605941713479930688391727009658408691973014163684751463930225326306516735331018613953358976803168214605637368459254218166673708521201228895515656208404301279617412011838182957386781576063219386702889014611414714620327182114682572710244321097150051380448613420436042067149814593316158916618035678747486929024884895532419727225709055024129752626165974754254045699980055019589047636411204796131347869107925543995115831039706590069254883937233628809761438461928075426651927989551681117405887107026723079641892406677296469003647383279500647607662091693617865096029350012604915415120113389939310028887474784521640125078364714577146998254526188415404215710358707192442371465085511545353637174771686987877816248774461491831254804858628706479692624969850469117504640340820338771230413055435150119807562587709559720880914190522629855394065654445314856608963254237293610342745131527267244909903660747227172391867829661424601690393402267249819763015346147952026391363815550209818524634369632718384156972366783987875085399772281791000025517824627394811221310873618176013730612351418660542593250288249975856853852894324447877983796099395968212816515754107332918769674204597026963721053809788318739143830470102082616678638519931501990703207318872561299989796184069056743877504748470252582390264087537823352324436402977126956334023656735091403169619818473312927209237230479952868585039621364497324676245695093387674505287598274774550512636850280822727503921762932337369792773206742535810233334894273581635944084984963427048500608933889916169711770031679953483360214908827800415741293136249889597473229125257648460678111090440746343007406780439762326849731351962979021514065414247531459224344452082571801044649505204725010321989308285504622880587934128912470150307880918780779503996267751699038481038305695749117260717024741675892975254032304213533240597400236135229222353858970069695981960623827303350792825553630193392008428274693035803581549159721725091361163617546891043962758420523208703078870039608072398847631543962483260997647181765742872288249196644234901843094364512370313099018469985545458880522495795636142754245446551757086347333266655895330508997693531280808993376731160975598857615481963163961289977533182587631500546358281825390733479646256337100021950313105370717636103716275082077987848137066968952793941115116253368810661150510657692569653405416339252163783174590855931407969355609552024385846923880240521566264436994316434073026431937082218282495801081657767156335790247133422488047735836978961109302859830030539477274908545667171152241531237929192232591529804248214581464908515053152512933437510135479792601575199305370695749430826358965251050786323784000280857484354470105363806103645507526727886878286578514979048638542916450561798533163099845508658599410912814613177633493675711845932308788584226689781614724381162832232331492767297827173162104794937421468368948777567917019515918995922235881637551977166762622105388604211681659932048061771617174708496772392415099991455084735998254706913153332365029475289365387319542751321334834269782326105580848051317472116173072211763566599846865954661905674905925166370990199442701438410949999493643353866777366698132879605923984431653275835228136220496483046826785146036571762062092235156883189519142094303190814512606146506328478057433419383234434217140992374270172211087464931630469599131378738651473496655005574344416919402837288975581860037006114550543199334360963738674168552682708845032151030470962504616567354689793917873935257772413846444822730958264742134552146290025795566013571529763227256479503509679265588233678828948439616780850333715675101970726811328075407109627757541636625718782603209299868509925679912377906711325978894524099948413279483795256715196159228294431318762860184837578733176783921053770476079174063993969194786248906979501354024764017111025959266907099603145691613699018969516007666490502807026680992380174359756826950552949208691553657199092407174410689356288368443535714458089641180767351717133229773538322145038133089416839766065238138598452726574032242231316329494841108000653829005364329511283907131598747919007008753465715070208154191900948317877985428066455393323546475202688308021354996139184464078130965320568974391737148554366504454611613295363301422449552920659438711978514412511739003361090670901014304413946757041017574018727881311663280044931027372119739548499054776608505075209526433911697080671415447421953251426992242814276643559137776071241835888803161699363823859259528819220644154238649060261237913653434943525228359929600626004405278554387375313593129636582520373250847609417706732893160258199151684967587449018561933139949891278552908432188289248025904723115485516863234070757084233352469697380566060606910380368039918848412819811118531478199882183029111590371954962739052816018349857101052709981362631646483165352636388815575928759003430653427289910280474855670203623348905117338604678267346662701813900817454351131506288166512662357384574580210739948909503175984905739939781520722940457225973244110005168713492532483124064881758498976982089282592326483210054322250567465455569658893652475728923202301767099498729856937362986544157436512424972690960224996871132503866809176562551440365399447104602024976763217007405747678598762190481760309765849954207168549736149874090151541174210270742931273246429034426180019542263422936735537242940665582920871017848437671775668968618728242575302862494130452690761454299753059519861287091921558404270130421896767434102481531762413289316600276068684055059299919142716663627470817111286780820583848118015265938664110953132814147766185491957537193709724831286189239709882748162019035539499873870269083725806574073071979240217579017729677304454884021437604476305877968497733284747631320897745131327900428964466705273412851071204572021894659896177103282480037452351939028064154002100138595929046010920845039776463540511160990103919545513361523673297414533568057987125387527139229613563091983002711375899839029607868064000493960640345544966272956765356560342286122143053036890417988069525049064816051107096205534087624677480769388917171963479654705060116088870285776081171791148599892588773703508124818287113703550677980817973768870473229003563056484915667749608113805051606117844119392715226825911063689766483645325857232067617241330426549070882791349877451797893739100524840980651358582063700644463285815272987844030100734985970444846113520466438574148444384066085924015023263404665341619174346612955904761139332714316118249993051545387781288972526145531423286904833073041159132799066549452103931849255360997530697010548855918534529979505090563955909650160994106989844914152128372105823246320076880386351595381794576270822585848446916501279670833020367248941295226282004847847449312051131407760143485008808834645118386241283591989950279307536066038523934172752871883136656121633197758046882426073661989543361038566883688120176726981443072292129591933151883662105721354942196832414832906506866175549032849596375204330086658293743127714186467516979493759996050230254296155411798336085582118782505265279737654013790978889153811549884750890133893474200384659213193912846421949746891867948876219189592593781574373208442592610960266044682222848306956010674633977806619441153088684726573750274866911673441298787857274337256766331694258146230210771436222519069372273470722332591170391058099983265117968786492824891919624999296167952179946608132565134879227330554411251054641802959346001828233370282996618790220807373099235197378983267453371441898075731828699440893046725143792974537128150050323249405162766482632482795965302523314318726633270289205370625851325079332399878278529196767937543097107072096695058991961286466248459520402759523004633785896532410647129094326134377229348010469158943161257955652190641607193317110834220796051279261098346917251769362044044848920484985017910855260100152727829332948785966976553062926294117137773123148608829184663807491333202129582017472748512842674042330700759061203788921633738901357995099729782759620003464290219295734296612122828433591617620567734183215397269811759396475014845101322870048063841514826144516104986315876329993499174820042154115526285256680331647692573240653923112538801242004890619624455504127269120143369416408387797347039638989339778264505794146440095130093017444106267215086923005278121999038981850057074889375628185860569862766466802085537402513297356441994107290705314964612679189021688029630740420584311764983489920801846180097923971712392717427418541101582216649310244813796244170488548617823315976258030964465719374691912721546521752074208064173848802091945429324194075058098231636676380763037629450534407224691629884499917061490662870850207544883432830224989871185625132537062488500673161090335639075950322816783105658642377840629143518573473517306001513631519517759971017381547847811881202253665469793777965891734747009012993210470099697257230819513144558143526887860796523367380253951724637158913125051446943116038441237783236614640274758812356756107553536359543315115488520495228570693907401960105162835391073333223068504678768822071910552782765676330835922612281485403671045260079127792186184704236048360452602689675820939871253885007553978139873539856482729921820742218004186010025583278124724864561262478534154385802446097434596739969138984005896157997709967349064308413682372786868335418763026882844485125162512218695483875193848141820566693943955139807974535133282799371328400606664169692765763037867971722965684167350142256397900723068639683537993628270313662661734596788911904165739003123951998558491886743174453994512400532507393733437974237126504598011922686661414445862188376119211844537509156776499144664375350981333387247304088987274653672092587018267551695855595800593956003108189268023324694309449104238431224120286894021666371326815273152403634966910313874367125842274267165324858068833081454091571104510927572527765714268935549606587216119171720135240122061030269102275074901342558383665098329684123107779070469872343144901045356329346466405871164539053299461325031276020183762752356497402208128546071089421803499158045406044477448073350866931051011840143113223392671028830521346420739065821897737473352376378582648738075995355754973920270446356960830103843405440231274559931811559710436229626966422333788496675903509464553002778872358129093978755451206368959240356681625391648579898667066534557787507494602246572732140526673280912565716727588608012102429122470513851507878454626719253901286882682576403762219153167107272184511199191356100843347105466768027227466701227067689205579728533244044438844356558867720409752661267186354153313627052683249224387713028242122943727065481122809327507445935853825141568558641306247817247868202078161550437344735344164282382695080540219043417320648232771467661028782815359350525875240379652207161082612528698441431938549115656398112810461065717636790673135293192576560564875655029232297872490755921545344534121973786503988746186738144616534789420514657430371617892254430637751969080521847399774192549811589940983199640357219375982770971314525823294772531935981920653111156660162100668514748489110770207348137163289119801649158910026689523757827494697441673104381854332087100830146604106119981415836440264136287985215738772222680090420490238248530933744699057238763346708487329473188767263923903671083774110977594375850028728747438988766955565952538238617819942306410108586752341227442393233098174706126436476244269300799131884620094555907589250228744208722324590867365956430550058716590631576488849911180346597283282069155704505376473561403152635056439470892569766066373183714723997887255747969866007711225544330148968094370603694202241552921943635840762630858268604793188435057190805171599195432419702994745063983134502642503285646198964441887171979358361669447999621533400006513772197395347156257952578606134832311976865275663378540032140641916643985676611700756122490087555754476777406143966553335907480286188919804572549191091500621134448269130572594765673218361384091164453412589300808709774707358105193167729176814757932645111246945931315236371203854752362375267227847864998037526152615916090262533447026022164087106874397882175103891422945414103299980460796991417430145218396009626579892140368040664698529668374700783084179811525855092746636234910562108751678107377426985423649316716941761594831621289222850458792924232757354462002891377950373290263978465156657564107548790868221073558061485257470886047059440240529660956517729947577055773335272382171836665894916061831029037499644983539455762620516616065852381240401716396144906454054913177950985617637309161763073337275688094738474880956530722455165762978503167243652801133094410122707237667906438189407326017393027502988130586070559202355299085503065439615713782624205073003386954807305882391724234686333096081518935487408414652542596530619983716156737084889122587816456065701958354384350532472136590848200422369876822868768235123866510187586284550302519755838429993970174840948793308109153269342047225409981961596775070972528669622291268333952519104625230143871582807187449332796510598998644135362769379948949015717638259401446121203325455670399663086798224695728170789683065233958831962691788439086692169482218553939886702294827221298857855062766899082728746116629831855094267513125536115971868375663751658614262173617911968100085920207085034953882948842178726362596562070636397924478667428851226580279730159139099970977279620232836606334932628805291112112464064110207785475953276885290672365736164534938702114035428703739539663755781167867409936916566536541910228473598613774583644668113749706182156967865827552083646365497182175270413617015001222296553304667735088563918540045692436041670907934288533950757633280169790880838517290126079421109620864491529830674368456829825913990626038703948583600734803427406170827440595427845275566032125458886475241522429875030013431516015188043098961187463539465143379008278902021170730215365214670691499475473396145475806494764332024859982180415223331334520573338615992325043794291887919391164937894311474910631643656213235613711321544853489222198798649062640237197995070222383696466041944560462822157920641274412260314743783638314462576584831037347682829607931462472499641679655404481982574770470161874528312804289023558411670469828013936618733549473139441443448142027762855785469360948872183211398985009539954566070069094264025057322140310069917613291952902327538982160108058761577840785697090607594304534643769480943998388206097298993762522955966389923185110967030358031067370767255040705836004991377148097445481900677222833156509775300480421827647485584431402429850398958529849470016069918882706123640808440647635045629990863469386784998088486083754718809928809456398095513050469117860645154862068191777765975109070927684602803827603776110807038653233205458526416091787199490229206929732053282065614909868117719926754006335182445257160863469817568833718461856059826169965889487772636471601947107275561145188444041319402850732594099320504167625685560943743029403260287233087791076164294697910295522865960705034153389237867996633610311324060784787429443548939056458517331047459790285008285044319022420985083058772044432369624990541683408771235856084748682745636299739791346790692333068814742831321745516818688581498316805127947608147564909679369046730815228378374432322104676418127484577823766368263151751058315904601540793838374902861794921269251201733404300853694544588356761509740489943048689110244848728523473338877557223621914723943331225160304466515996794513114287377902831089530341653672828512861800515833063826073510971284755005468502663525780420583960718246737793068915945297446341168664552540956254364360121951190949482294945870220166595232910468404521954210915780811922508067656448844200881954058802867393279879233810899463792748841197880130608333063780120656589588906780898357297432528772727609324021592802100366677779190141410166107313034880526562368386211179588161632830082754560881376046443839783848674650826022874695007603693082977394145070181814961020460419449663705287313854454541497013641050040487660781272228610662194161108406172828091769790402377870165607969751557770280650157923904874190044349326473874065596820995189119474970662701007043431568899895101277127291281104498922662508041299515493110390065287064738318416294699434206204245805206086617854229947596472583300483645823311874072467771560408880106955563375973685044522569487462315707966378743686092407444018051603973604667297925748800715465336141410306987716902572791447370382086030662972473866680413755300310724268191833523625036247158141281482328682622426053863428713106064887759431337317487841886757722284298287900943614136190758062056151535349974888084519380681462421654575743497539535558417916623649977736086661733265789997269603314395860449912546463941997727298370068513537330861647920651011070377296870494408820919309907110027353876720948186998841724645975542281757022557305711215940599781921063384909257675132192670541195246585628878455318266092813307181236388095322043197903948690249345572780221000858651018440649548984171280727556905696219959108920730023346924474780684359247968045075434011635612974215684096949037880509390647027552880737478225901176786067536252051766691693557119888175872729546826672231080078940088535147380402420025815473195011940320107158082919586125446630301026704640825801428258504567515857779462716438376065147791647501844980908563758213647079626936180100879106324678099664927582933073086524173048775100078949282382630905807933306175630784128703724374700301506418546583689713502003970404792807839618948941757078001857834564782521143184384647973371071761915969652641991767167239858221257823637596511370697674305966172464268381144766189806932748366986954385981142255109906385960529426597853870273282972823673944557887876493761769545245867032895718742941603761872762615926732159261302059503345981485936420239903699496862289911602211670157320932445549136227779166799461989364931694916070813239947031222415750369446377894743147466378917380888535370909973042736940539563320759371453722681562985589122070575362695502286529936200848081708740029728627869397265208973116455418827915371273093135156858154234449633990136379337659408216495130425011092222636804077703883270927185020252195379409049843963835713638741594836741207725474614546511089211899666789350566562029199083030707716893362420448247170561428438511510242544065501873401408778885470723135059285944403335521889611788717987741601958596297517552338855226664772032504706537266373416471427404730209882249196732481988129810633205301035879993133950261586944860364435791310917183077624850376907018325241354489956834758748471702321318450685830907106886082231005094145678246709848342454757993962774734635885886872926742490911854434659626830803152856903226062382031759287743164463579889348223629923559143020107176715676464259690531108805802445676144117730900588725551439342874527916670728772310863862400841733479150131875297275006389992887542628246066084799828621864076844030606806892321225996554999247666244158111207453091391283967389912565813187466313837686199368017716213722780134124573755278745387068418730084394064811766511415396864596291444895096196635464328842633959383380871100459781855721363556975773688521619894893003403838383340844930789938086099336181049076601566367661622802767414715410642552901826192726567869961959628660322202033768881681404075390568045008817885953363143542414275011605595072138040406655756210239653677967298603400957626678770946604953862933446463848364468129243996230965426203382250552362221421023827185465002848374675604670965537578535203116001615701689308520532731592521345820024711714566947256847382859400158013719717133902900359601677736554927641456972420170344944082508525245285200289541081107043792301502389408539046030723942327732833479653973523010563117048096900060843870289120508069845990660624912067035926113931623220443931955070281496656037578118117773963649283213165771521499398993553922052474633043728992907203569952214608185216549210022778749279670673816699390574050683155568774498330815393746270051576015377645438937766080681079161869912685923285598716226282869281918447067145559968873548443761697738488076657996104697567426912301595262063866401035170700014800918753157503138894260352489480194971654501455571489067122800111230266655887225429715896102599118286353998106961648743339081991457828635662177143048593550192801337645547835789508656525277325933106265685311449492958518230070305099046994685265198258811445242552150093423799252735359803899060637881096735642632786596918390893106577129885744404421392837350816662342618401389235773865451085879523002605724319836231500054497781438330891688592631842612355503025052565299140259904441476198564616367070413089307216858196841114766982576808403430160709030052816655707770081044971512486329860349062505711562487380020763468108251083093767619538996601356378171850906329635636413653737957296532347515186833256578899141089311906101583406801400159275993905365309826915496337183636376418295551205035914182055466076500136926603171296907309122268410145712487781676665878545728082260509337340866316329161001124138341993345177456642949476248798373677312857873635151847266989285580356380299003801645142611517018782663993284580399153709948417501638251308517691726625250925732736376367139512878847202853544321831828296065104158371273327360641437483067308203946809545921717308631611940640371734083532196053374300181602550244694174147173823312297235093275402980172643725609942805548502516801418084308876760346526537018286921442867120219312521564846115806457031362489216360513871008388569913670336672224166635776579662304550266217936550633611813408152184978817216823325003637879911400313314116080196906827965404665132346546414232482690307600167353776334189339505795834679921313186101209408206163024462996157869031152520809932049031501540577271739383936222939380141222963877244793755029264277430761219017776784571357075641892665268144986214889856781807118219917061547016975474700336325568607847177223962188116371382732569842788092332191050224831156743780118119412372675971770110608027970533347629580429687607300068537499704801223878201346651933814782480078312622417633544204405007099462681423362737183066699058532420467250044113716325579663047670211232177960338966881133249799838699361906816451268674330334607010312414803229409627099147488471337428408192029271462332346159361100165961995273191416023603437989231955965729774851159879281256923659135591898429211861940158099823320435690329880207591418372045177356668739623468530267915595190098562689265267302803484871859971273984463523743057315640340487525041733901676046694862833326638767020841059204485424280525117992732274470647062891621641621186656573785401016251687854883295849867639858246009075494262025720932893347999791639741401070271297718437929266128485453628637934089495457876863316778761064961137008951562711478703426677266442862960149265303535258028068503829615427131349080829626652412603295363700033406926825879651121434049945875383598591630879374710543458735874565665188874603219564936649159002075567826226077003596790565636155726768892911286400723414487978182008275770284961690198348861577435979962039141002223040631952064034109852964888209801227108170086573529334829239643173737504494835505999227461419063552969033339004132583514237591237155294340132916147709521879915250498381059586226898144909237416960047844545739855874595903650246984408439379819246330143381859199434055543639152299439736656996893994947870960830232560195358707590014291174699540001222304134478935546131705582384084134780229498538019095102155735220588390324635812764889905408400701264998277029177003512593468650279299367817478982852850046990180500103881147761815772359821824204508972907667989812805808703119880485530574520174516180617670559154246760906235474594572788642965707341500379360815824325716003072259608894367073717887426980369109969224252427339442595634472049328104288839360369852585478701140408820188839356787780388333031800564974407340651537184970709464899680116691667831668074297689437513346962510928509860946863994476821710916538009096171405723183384007224176375793467043174931457481302871934414306567553128266297963127634964290094083488488863023757896911194926194124158640146417804730824919380785273045469675784351071580866054845589873399581889976027006185925802334290046095905904154976488471448055800780925614907712181211396123700688916922691373396598051248190171330169683278525569150666998825577447438512634618867808789375502451166197395516681865776289342359494075766885094247989690045228550569415110401086753281579107604476215485513069348007784766111824788715807858298236095791511702948527424366976300017825562377572265829736466041221170714150819082540843454999210089717212615407604367386171330607891320605908776366678385342064572638362125390803033066910762957751445322231616161247998369955011058714321285325112934391167795059974551054864636335692525936053135878349218068712555661821465680349728939383351088823285015951024913141403261175186760372701038810917637773207106540393321828474113903490736142878362510807767573871789073165452748231998270891748849020255080763539894842617136892460412096052043570821440394186443816363073732472761633305506156073975399257694477822181153739253768373022808287093407877061181553990891492863127060516978367387409476759883788970854390707976443574478735915807753670819670632315833430942033008052676614687639931044892578576113746972802101670795830659709378007463717633964169315731060738665694586696187181887573998503651436028982265323760877478222030912665223310926293941406696435452498471849008473510849767554802296223887550203792469876289184161061921726505160742086783122291497980950200361379213850117678572461020585343531972436152841953396900127854820004899249070666319220138764796277945041685781021525236906720664226131630928160077170001355050183424284803817185525323085175790471495344317644863916984948340757576971217870065790622094815717880163122058985687854374798274875165810899057900135092746003825762659035795403239614936684773422612786499080764745456815286100510613716811384306300691802085586062546993625887391535023588339685692312968115691071224419355664735251150512074303673315624135468379939984282900504467500791628154441067693601399552519589437819509180080741740276884154456468847036768699302094331870426313956415522452269908188872733835047054450994039082106985558976833591433909739415783547397752987324969460211431408900908775043112157650454032331052010891445289776394256826387406986887506738856233479360552984586111584116776139338579592496566515084856142279574456127425040867792909108736991771110088943126204723702354191791243252452002386085719079341689825224298802313832470896727820878363600606490431448448360707566410906925986328012541503251566328893788839818441402617683545178699554281315821217648182236866719039202110915750153625986629951746664236943265867407238123948615758576965058334838128930627200691130043275606791222527689473744282219861420179754212751876096951063426493070924456275851035658414935058315665490730615262043778191947047551047145174999841907085430030569930168126179448586348996374013885733812970310897360840170464599525839501962605102449425853539447523901229550565882859233542246030521063759574673770642922512369359373308583633567815678689864172638073273376198646239562842374288466833287207095262689568778116443675267513395467617931518515852271643258854267146724773501123936954194853470153480522128772066489885033481958051573282802257012435369297287864322717754342784837214594221275213566412706668784582051204108027167641425218163363407563287625346993992972168540432103311449888796555209752230145247661197809832969836582055394565760224462944555728564428947379246572851356302227295577202178472412813657500045787368029701745797758039685196506040803211594774252742171999871454123355670064783270787724712879810018646055136085617225856363173190624747975621106036797265985049563895290660256142411792226313216998827919413299451475691117203737919790066784291946063501930917637779487091620652210393727901805336863060442531175730160823110868398108766165763858951978193816539694251984298487493573968457573527053183980093838302628893798094667505989980019153225517428129830184883225397418529675211474170306866074216995335763462362111266128321153553274410922777197505868538624847703876951560110207646456084452884159270975969985260114788362267971176835686134693321740557279778924263555513038639674839315925313019006357415798143755276855247010312119388354977225300177183075395977599754671190996489856516576558555392927118406965343953567192843892472840706853619667679581988253939844175358559347296502137122027349053947646314967383522437506338064482463675876208759528222102546175533773516376380840491120730198561224368364256610522780341439810275950407616085100447799556264136148568398054898458648052547044572334893971250986941035744102200556763366453772333032617061997903554572918012104453407605619592259915614186105716483205000355447970383800243416281927708690551166211506937579111086753890136273372753035631774289020513957765088310451786256569879692574462519043783886909606212582851682005884692666725623940659637788722570568531133786490859223353081733232631868355148307735635169512583750408625315640806659277440313942931006067681591917973012749845636833013860123516637553239046832136239457848704360516827617859778201908900181708561659067126308168009528003497243914233678167831870076833699973064511620451940470417313037315236597162697306001840721883787352622125140043557108465204507032436855203638281322800893480293382549062913537089711261616912676256219711814772632229137881581046702413857336267860135291491445176588673636647536907432327315594014026207113188392435538322359974995717178644011382701896595917290762624564407365994592683181464549239163385580873113041723773627837255440438273739419769515428869674800256305235393661883369957622197944490772605048308665663936644778407131519702346200785951408404422240357536584485652859029693595476451106168012891855258051696936680550617765323779081331419481159133144567496595103921500885380291011905960434374646348368091384109686136080600748612096537714032299575171797980542283369899538559413334492351692522510005845568173880574844116669906512718857337907574128210435645117717209704192482845328988391392244180282174529746528493959604094096005993745640580783185995940641383044954182191888916552135522153480770763913916564046896713377103489185948856732856850894727313837687113716908309020149805475260282228775061238249289331993107190039286270827640435372668964754980290189040959199091302800480590316974120904000706312080516168629258444636181521809499528204320897804579139256166153789840348962551117802818997698139254476214626151180589900614516129383888334771128785374617324478682268821222243421103736379291790877739132234721545937114159828894876630272386306866120696525228620994088597872340738862367177535327212999975153210780963957687101533702888699699255000430932991166068352612517723494044057333459265856566885223453815965945108202394081546910807592392483557978818946836270545329223516601753058722459399607471004645718754904120008204091036822948582494526852884708992208246419745169105786340516054036110455272016882004224096624084849367912201217699901359726133501125840014980632580967969473701394966328024701485756554515959098734226060846467598000629365168260708143716011238016406548774543157456117567741973515759343414435792811696452130482277865700808919218663482180524731470915926576475200802252408877913015288421970798039352386030147871391300330418149295029374350529040340928029246562761835680376364747388212245489346982040233690502040712741582530181623445283457852878240857722679813872466765905650344825709691335994604823280266625091946730842025814150209841560031734860418646595946482440762649333258855129546017175344010019510797257787788869090146966076724434129985776757303062602341056839587893576226869092216135113715642758814367451822176017781818244656206454035611868117292318106184485424295013484479669329595141881298089255981291414835448329055233850437028277916357208256456244497059888787829153139478415169848718104037594169979666368358372481094647867498374434896363330048152050071835120958495715699855764837214399473576279792488322019172993852146789080400514582399335906059980933319900673343567152674195450123345283414345344860290578737921665822559312627391740513120991096736928617734750435574173785517772987089849113155218319224157028028399664982742681691340062324619242523812777821667002180279647755881718448526061413886316883882777703991828550764351061629841143957032936640183056403782273003048799192372612069045459973148392496536410193070396074871620168996470841975894260113549347141003422933144011823320929830819246695064456695199701213020386363000163844826312546196408696880003318001318632512776179827059392622760937988963592328832217838154126880095466874442175268058667441460139880943518479804792450999868917863064381693806882787137066620490797887134818375928146518594648688506932710806150961491024540006859373057595211350651571542146989388029369424548543341443326194300336846731588990122429801372392808334069283726184724390736027560479960283347325800745674635430068153290917713609510313597250433320216057051467432006003480755346988299692612350041814390603864260625713756921001910286980401370567568725555103436408460876031639267052903679684553499862615224029525479678548605001998835034499617746841563893794234941886552310114448454876535155263198174207334802211910848187857822018330387761875562203599217120296325714023342173212662658351909049622999124607655139487651788207696538260993581479194839752697329585140021209086606681668538773651894561293848073941854672237290174672041438292561254126584976495210691998052548095326053397294113663849919394969890593655358661857139781732070391172724874411381639643712102094368957862568493262952014527789142646074991512555168954221192715891304220396660497322845731305108545615980538144814630882607326311165425827278166984140187614228140629150837767793986554002420752063393872398768863333044905934690817615957811521191432532545538810692973330881900067328022012904731423297972206689838448098195160941780554501817358210716603912121879841645574310712148269389088914858946551024688659044870484786701888928580333738001075293870560898277066738604920405539588475379431253474747390392749481859252144472838205544825438153057738764008476378124464463910643762896729815957968475701941125505888462672604267538183780357523670989826804691767774754432928358806962876799978676392573311012939827941707139641468857970398300001111604573169591399215581406225254230133168652629418172752504717622942588831348369211519262513262976512948188836009622366067813470558968271075995817089658355231138994761734629730538339613468310355331789937320890798628709725475501266365210947151464950021811126921180271207375608928019515462171683027856409548568641579683136353381628899870379790862930392265146409218662437142771002830650331147481116950534587923352380844390144745630390133311319387962566998911607262433166375187688943441824744268287195605978254624235536764834426688184701921785417082606986338187628891665917538495844439332564234061673998929684898740192443111930690400110889198782255011115303257265019986223864731407781515003286238249691880070802230715079090893951474329237808870297949938003605525022411974555043213864704170925783649279143008338365547601797834491394536181487351982988409066208976711163123651158121825354499988871933649861117104453476057240305124416579398573499292755284606786857579672948445906059442628666383902324503684948559089148010831165178455874585810792489080965545556798173748978549259916628169778164880494222880951079752559686314610370568833715393396748415983399246953935911118666266682221186815374229490669071082550635241482110597960656837362027731477425664860670775897087518647655345188726140236605358688990752874297256550289650114862315937685042925862303838416816925502077253247025783284731959480022506988966325456560297828936198870045820129488375930004416181689035136000526809689014472559324013607237262360797583175595738768607677402686197892016394598269812391405945576759071492921553055045093365238296060063890783360889955236410484722250476349662042191793645127641095716014107169132542240772132061243947364483670455247009184562317627932046884470538874497075438148327348241914441416828649128695057473883680545164874550213389023729830782320379340479103027829077720131062247488380744816197544666283082768576670928665013731093222913034931802529851019537057474452298710895115423608881136891049224500998356541803652333291263451548506489279152290972264585423999470694683510008087681837647320447249696914621735001924549759657527904836226954062004677548216196002038904622255484232081331444585237197801757787877986788094735525292332992294068044475483512722579251774923572947070318520598814397065641716446852925776438145166508423085682081932798390188141279473539759912429672592526521529990483482538854357955509630193543103942724186696115718954553861976296594191350746195768610199389218784832903161705241453403732198791496838721817079151402682977904381752440530812055977936593549728127733695991470264461325190832157318053013301454844410725441525625912729687487114102482235432352527387098164333442216208056154118860696768269587552652516087619943319454754640949905244982830197320401762622785852225991112523168878830113919892210097805932433426267842395444116322465258265258561722804855036764698136571252332570554995572889169222409205370177493974550365017052658473582077537502722090982698200231731489196588311772702960269612905705321089988755880777984794025224332503251861376696040469155195925294515636683295599579791408198290997843001736331362488007781908074084415603618616772899111296313988741297338872460402759964806957261239780159223979629383111070344154922326197620517559265657726723799626832238572379296309949896478638255600039048301276032445413541352542716866004609615277011953220833014515203715478254473641031620772243897823751086783275065523061162984320888115092212827323479374157195097448046535864945424362836727250283185874841255106191815462089481134577813701057429528572004462629102061834014596122921784939501456918816671154838008714392324002320898799402262358455023297681009720976003332499773861983205742935362306358280042819461032126102672250806927421650013723699349222905600051409010297573382836708209265016558640744123096554908897517488654339913207403685538771450365162068519960583419096845608696509957971480254037475691809545878746826967881426958155023873053026350456409165817000995355974288714204303924164279001751519138867123317816605121707537162947185054563365179879687356333856957284863754765404412196569841849722722459564411559098214978358121114625339265184747340463424287082375434207229753468844360771331204344527379930350437273443123512413108019953323422413597903602868031751147143050015052457747720503187114376726999175770308679276902367597028205637608124772888446909160114181190115274246785672299437856910288499781811041273261111977583694376256018718353327832825009568693969742032326499353150865557334077477674213305746079534554141948400701964344600018515872697220541939739090497280418346454841055583006101281225162547189364786916196982611270973819668979054379113295518151804760447729019954756184506197417026710554287285630271253977252002347839727847435589776802267063562703771477060399545336238663592415945551581985773934328832708852709445982071162852724923406168846852187476527609847494145149529880248365655549264344073097289870742580460726496571915365118071236729582174114341009520339212610117557513026262560071731451364499772050913779109672857185822858417372767837208704387554483192831117515364796003946650947154053164576109330277382682712858640460584691566445603763274506432322426243788551250034137711625587275766872561880678508595127690421457234775110269328680823972208109796534193810525702328835239486575809320969068806414260272500998532903632731213087917415331416600287001391564072691696813159914470861711300292846726341805760483914722245839811897634915384373707084787844704977515691238022159642574268824209992124923150909930978225255713910739127667699651440570187873057033679821945217236051222726655522835906053402058908908157814830627493328710063368883038748210962751679309428548437344430721864712129219395209258161376311397060244513562934334225636221124006743945941153537787602713111454689671703888805065161241490903349258082239961225932003947436610064422444143875206085748818399596107528601772384442090173020697616245618412260670893002096032728795578614817557228978867124759332795547842272116553588053338057184153303785294836965306215157656517900596596061204675292126421485389683183942903142240769599083453091787762552826431507654203175367293016048808647890045606058886170313369943319493033142045375973719272225658609105816331167513991845376520905737589374600697973223148425086052152127581843646944936206168041376228470582514737038573444719460317590252378835568738703111555979274624627915279379504191110069618203543200490196208081553243189127610902556948870811171909953720695434914863095446192960723612818563887285558553676999391023167421055647269895131973909798991651030573156333756423621918549052243308659432900186756768883559675829611285423206738786159231956869661125064265808763151278076241699006098769833786759092266790401037696290910665858005753511601519174732453810609547183177327799645441307390859123633439026958860940300355390539747700780837744038185632771858956296053066519903495227956497696043448933699030981392203091465635877437332416990929290630980712137701813121112596749980262419606646892152082772302054986594040815377965355047135647257873870992397807864966125860052132233732443661725124314183399653816501286302395456595627460357644691252770303688563480618653649580565469037663372960891652358297224068626380487997044986555384352015227250071194723362752109804270398922206686908407079359644640767008843608872088044873304951950969873601274897533090204247811080389782131943639138953401410648967739546926562870230340186349375959014053135140641411171251318015910779542382189194552303795798944663911419756833938783982224913150939907259582428958677965413433014532010388837864197336773165795306753057852010450075234495280476259871633373825970163286182267433392580767364636923650697861331519734994709083490532750828089499311441930170884283441356331311008455723596283355372019548861988442048989808036486019309702441295443402770053779206216794377526900622256646586633293400981958741020866933655177883605667262551493553270949029012961384363208125199713249074850339883249471643142686124256998533373341126097548314810447326962117684011274778091940343608415738770804255942790525871441863765738119623137479353048124982192807848515195573807076663252997323466667824646831762541130263305957009441691409247629562506149464661759122015570665020637624238234758391914844752337569033505006425741675634755081140556138483100069786419781359094056014630175956177591175856527283383293187049605298329527143327683850719646779887462325001529104412214393296428515907351508016841002623503464158129308772585773306193269227583333577754154993617345303939942121165502199074933446638332470007206848447728000797928370611182605425927658670770054045113598481346085615871959987436750419981846126557351375644818343770069742713649294849671707934512697280016334401774527244357759264907655154587133077898270053001651141570213888350918642226480575993895022028356383066517182194311489173876376800584540673039606747601938193322309479569368522344082223794084683277841507845981221956460458464804484067540473795220495887496352771285208045291761081528242254301573033824345584885491900397116104972775791423827827855053554111586470987438869515546149203637507829820603521099572447763591614743817237169161027835547597344755640690898799904187226905517524378778267000336436397859976573761406143033070548134649973349288865328191361404554913416371817054739876490352602377709180712297452205527820104598521838216406938976163690425894174213610851230821252120606000353725594670087067099786043383998919150872842735632344601288792952745342262029842892854041035348384359044383964581151391774865050864537492552887380841762088253487638652436451386628044034073111241560666573476970181407175616184325453302759855454792833126199844106298090440953324529565473408766966796210149073785295705813250833044586779054597436872733311757735910185208597635003448820586574370549701541655674780884235149124304298252452806314123216449961997815433161061256919079082770442389822108343588355586450508058957470716806443201345496344353521305902582598048083077485720405214071074878473519862846597977053658901313445776737764298472354683651829286494655855893215065771161426483372614962287143457334229371996078483669738058554778430145987905013378707431117893525889069648541574188409842698946847323176262948498383624946060797860001944213150100996629615407850650000222186887855574859427979598776623096301051867155190161317847826830983446526099277334752373163777409613911933633841229231468907402003472720102065527436083544799004909788231729244543920112138847392482599557141979453611813486181228614972194216869894726570233735409926764983952950686947100581608924519186330378586546558804541836309651490272178907592436355428584683784384615225479061137263481330010248696016208700317860207246868169775266443671668103931563948697189312143151131126866477875365509110845359222810879865377127110629750700957667436083007330187762018411333317660326626770249980609371660428364217865160740743547328279896956898555003803884335025656688447558179754985716326166815479843883078864469093540594816085616487384379428281350862804873693051565435766121206015838046281901779869410608290216000669149859299429930478663069629957714661150497364560748102013534069686161767756978779867087687260012620314511149722852311140361054706900130990191232897977279046216169337876133876318474209918699831571455046073026327148852097179057156251761589981990154931065021067474241978899285675180745791425398641606077735718632158774963774965583545756033317227946627981124136973299828584266722857722915151742395837526056702458168987172582871620232649580784358891845079936567606937819021783209256385012234712950858983756113784959321537909706640208127892373047758704481774594778825901951514005983656463111060921153695228699810115289084631787647579205865024609837922194144064049111663539808259134213420535506962270383246838631779485142156807148413283661411144309719728635400532219627877822267158618735474705842183667129383431662977808314930760292408677524944090839785660422964602308536595646259540145752160491134798247663685542368453159838266179389847630367130170345232071107144491307506233637336291397475384890736971374341295433395999883262036088286095635479430788255569416691941768932146292642595362819650361703123921492560206679463838081734124678745455461939747033696370000576036737992584300110147298590230148617029614545694604159507869715478378109878034071163231121066256330399521837885993657719136448962815938063174683470422276498547975926318594721093517486087895527282186994902892320706118708445886740498565377876906019340411364095145891697222154139396108967072161700393890784474837758980829511094158756127109320982526019960686387431626057764208335047174681215148890207427245539572324700655511236194374431171889541250532827850675557796233115807020721397764407659124324653173190242298487423916449807171016446788992700091164260717006785001055320956493392058809508327645185802955570207617848091218906294990358989048028980215085954462422112880325797452201728978410397564126722708225779815631368494935897173044903403600361811249055779349501255090905231815450529616453306417212379826566310323061965433419936124434547896810731755669213629262119511668990629506325301141113925536294129513376403555118240569094978799451365412300898486905273129668236942316903506843899771930462334166480158191022220129712240206293542414394497203631175686577985588244385453872619791404456707645342966231338463365506085631999913098467675913716347594117502394960602967274849584391282397643353159907096699320770265585513820073865463917406784843683516218754725574370684746149493141106826387520187848339776759961948322150088628856010896940030452341308770173089635687881314320846665543427579533430970402505829620102318526694169039502707394367804573540553891088446635947366245860196558171512369123890019484329885105826502427891512638381139244876161855548602402710575441992340401402100165025700810269949506690056024535959392550406372849693991293007200995844945041816787903294155688120994680055711761049925714907805175235549433697473100148298534583065674013431668139544851703062003692184294475191380311536263766775621348940155716642728028838600860674491490696763869315821416543948402750613306589164730545361312532463478499048886840276683383420075281151272903723708279155172702179818871508922387648261214302719943974522958048698455727596821842555266121725496400901180284608120914202704638389569922297794177543798576355843893148562177949725824841455613038633849923061314314620681025999807898157115224286076626050773549970193671677018436139137870493744165634765222013054252045279075754124772199209627077964660610036180557642747936274105386353879808478898335755627181365655214251438937146671554125207657066330674173093981216479769048553520472656741161915955469113310075203882160554435877987919093196942039096999754541717532586821377757310501115269295013013704443758287802258722456497918911136867108644601559217291543855268242036715121357732306322711402127246830813780239427478735237168242300541156663209098514247780427043694476319229894205452513426347932054640192999954061174544826388983353158197372323967635051338235509026222451607720294705985660390817766987083007068493570299482110964791253650068523671235910554002181121080573240363210140049253507554637185830184581237761781432457300058936503555356616405438561660176476561594453909980481222798659311577963480968085212662288870895281418748219652765622702906704688348391658585326368266527721867565850128778533908096950184947108443114924534545904905821715701971197299899167570038562817873767646860032405847234040158702913504150532683855003144552022720277699723680976621700522130356513507927719560741000012478273978083209511744235726713485491796363793026286923870127149376085592424643699908280092538724969580498502057892100020609363665061837105843305671887570080005810956222770006521417508802968669479078353194383727404732556162139343940063873707611577505096487403278886296774483020167516996314501789824449880507399872496855936967589663872919233127673137733488424910263317814994097498391285259126896267448023431191083449783107823362844692289409366856890200995883407481560595372316357983413168446093155460421682461249543067830856229013665023933550287303073319432746415571878429077228646314829889056366194412192404331399837201442821061382647026048034493196725223214648886198392616291677690714469853049279609903675529644853685758692301642105769491760893199391945881548724391310693490184946409112261660002023372116084627416479944095855237723442700278154727856737303221597116257661451396054929086265368994679052698817952173442088288420499205337066443411583830056481527742017787281159204759360524372202442659353045272078309154955892792231506718181994477638970881337726978029277148313045666402818322439599533517118928963143787785785565559435612156837567005483063648095308014835448886954441538911075094917649162404021998092178572362439074257821404086394284937759606492354850377417770565417896563974835734032722931409351224365572830316658370333288928983792810693402030142137573287036291447799331907674369280759970741733233691074532835350064203356511736635325890141129276492223048957162553760519169916986701134955821396088652650179160906416544850406757349113422589006506614219763398255765815499846630656631059650290612101956514555296914197682908868644815568277210610792540415823733937634646678160073194775948692790582677004937799868334040931721015645503323294896354166448181248904468689244757723891964441136940756629257960942875319664322018830607622804272868523534675606868958119678436720604953485642695243094575687643108465198412113682198137552787747430573183122226121400334299742084665842563540409075143872910852954357535455571683115507559878151550979376010966384059861381415935283629334920619084550206651138502274368012941069072628364911335114715717089028505091731286703936804314309097007710587180092706234879862265191576097877079111047897302747393252800996181651341107737773937992784594796656168909985762021110787595565399193621317271924515873193843610058502917360308703833682885331271529873053709278973853454151702742839457930201539787351512229762941026353594691359553161536603967172898153572629031115450232635962300202445572266183804277643678856424316675827339159416415589138443066146603896905641999465150139346564074123051465157169153810419238804647222113449854460256056903859495501122799348661434603131722201953215473799048244138399799504892003592175958560274659548973715564341788326391266526829287437820394806006111525191727051112526051645842947550845120333585922318306962460192284903937598326178235545428547227844003656130260738324345504896570027342869117397771514081820387669461670458309187172591331947374620575523209046430924926439112352690472609840918596145931659417100644173816987364356709703871818902926690745581280672554012059693992015939836035761416901337880326814468051425406899812454531192998345661012095468002003857555358154976326320239695153466136123014765059602202463242022230105230212899017041867457559866733636285899456127158848355660048076432511453152959054370788494365878146634114144218287279270271492662643254597131939549934067840911689239954575580291092928872251959051807360498355345919964089871033085097207402964731298860414024209257230190701338765758991386377935080575569048720304639274027476792510103088601251108701134507839465608382579706337050007525581327020542357902422950107893480709974698389476295990187699854704890155202938259602264354328096093936126864852697390772079208773198098077746671015351755285295031949314691786684840740639374849419424012855065909131881743349428323182521001990771112865928710570324767499137497597138479579445705640340414721238832205261033569272344599236950335762452105851293673566613202944346832759713750938999490337253903812976984374748913422585750685585672321065425567124763310354959691464645303666691968501553189048873630834736136024317607929193276109829008681631479502087375756826786823641780799300886383224488093890435093018763283379534542344716644733296025851681958322599214101888220992907333326122709273519184002335995544108023793491184131276006599576062286747333651528694038583551353064215291857783868933621432692214220704104664769516079240464392554371134579054282016544119233843599854499942027514839442751200120420325767238424670867903759549724345984917155119582644014524692808890946568431234186523272501565903034465456008951576788453850158192062512145551029359067829989689950858421654386486466340909369867985896229604391546560146946057449799066891175085692633364059542622889332811279486784846904003794160213450463168206219779578742710853642249609456937355595090285464810705409598518309755005046599806734459778061797423458667067743816164870338784831322090806258693337704275662190364475416061142954494477542005966534327445619803030301127833033880342621464228274814657474304467601225207470744825027021428777740685506879057060737900698343723297229797701605238367567918728819622713691457341938035140569081462026473398747331940409259469353513807154105896805053719726642740692961251939523015047052760916531045550776376834917544984287772203243731017069429998318341320160360439081827021140024106565456776321620226824014045195270466462414258346603490115366772331516670610879127487966525179459329414044230724592646075125017954387769640081577187258131392023647091173374715642971111995537960006355453800994735502621246928638142633374057758741891138144415544226225842632283874288222679019674582109951393493178561992488371331883640706646472781746927360898522315926566856988436556561969563273387561962013262539735849887258123038094252610386678629483297362770778081225622888423038549145678469368703201706021933305087402061830192309496977398934752266475685260257390359294935392265717302290531414716304164510227371095043663688894556227627945365102686966839226534032952667176684946471446788573502102636161964158517116469558603892932705854172652049279813628368652951955551078960024470155948511577280973233261162682634661303411514911290822787953210191511679751549593355871130386276740657366188551313134744894665960632446150260351770929405536902444245761457297210716843822324141922180418125054647111877217969708517984917854044219711490799548050054449707620251257266122024092287599548944690299352067830920249744493784969874382887589461234349390375878368085346075078652869701480242394693446975569882512990617599449865981918931873435702411965523886673112340296614438565409162242768010272596929536148172755896371084910024595233183555890218879805968781677555129817903191016308314394398826444241884822725639988063538705829708375301059900453121533976635700880347842311609559508345440454222371033962509364402375278031027950447830496559135663887386716498579007031521161002948348431838810134897841593008209818230421104273993354342552143593661364601686642739566378120720561353934557552359091421082234123818493830009142947169585767141937077910665609053962259976732603121907998919695187039833458463456998996962251426481235877608892094803969945381885778970314363415206087963317347589004627868106035835409456669957201269082250338944508027339762923144091177789578012588747743654525780708172800622131512249053273114349481748332140929281250579994759119182530519049745779236716123412043547704428043296017887943597161832169289151689143774767570720680380058559200635404624425475769495298816481637916424950967041826806566167576531681853135803550519529014565697013967608867262709661336970798213964729891674673714553717595360835571771558836746416178517623341377371600497693873762224673276589253168085851469353848737600040481744776219943448002725798875637247030671186464218605033352905454410897160240769166763012855755825067899137376491135620926793575136823533723119195636200321044146869054344883943144803198103592928443547965203222279275664546139737360132211375112939334177586628794347821886243695935547632486390904456588124129108010807621577228909276414474290811986570653205017497304642804925276158861483871979595051480210201207818021957472300969859529304633254470919725097275938514066761569894339554176314558854146986286129688604889642865360049772891022379742626609205770669767119073227518131489351236071547530665095905091575820623641838569106800962924833073599742778421641712823344953051572505088949617436062348538980864850829612891393985116774204685731822315484562416329547713085721856170710909330564543864237461646292169179105597152816134328187018592866100417723903594382418222432809544425208917874189033519861996173227712639411979831455732083888541172452427835480825224460747505385195999761353119830321083436892748277269058345003358657300283507360909451277915655737234407405524436717202692215682050464646142606954105180425318724314338013395625184510580730368511503081238387496346183626827856482286199975208851873230456389856674943656460304074441624424553491590005973836402661744471183029385863166737069775469468744379984504722230319331223890005457724655428448698697414261688023376772361852233739458124180437065514593044184923637655444826290726285000690430700845813760374857079050752630423485520436601780884458726500001147518472376339685033118627691310481478718541541597893805283607429455177097141143844641002394438283440060465953548459274364618584418543876198593840669559453900482018539743880033548861227153532596983290936960696136665662268614168315038787794460055538456642697945456929915664209047305199748360128024872356365352259546574582625767479827236717741657017547119355094443317148401409907960967628657412536837884435257991687094444571602013593039854445505708351707296730115142809182196400595053728669437620092419530311985108258637379007264436746408344011632456408831866152163535304509292589940093970219925341556441512078719028826267074351643614852090320652416185995601220499766039949578736536542396409778194533825762620408072400519187999538855287856695303633542368742671223542964897949028758451119733172640161416911348827302843943612815231290026722109401892384155659803107789025967974268037750602387893906680130257325854538400932007189933387443168834693483891576701660734680394431387674421500387492250099817973004732218265353926499068697447260619347950452455862596371783966878019375341999947240619182504872450994833160994949122969919596296607275075497745696183863482751705813189715252352048987927123916453700455515318296465208329006439524330340455345055162092116816181758389178007578571084595919405934573618430479001690728050620109312154959863706350214407144688119365520166138806273691424457540404106188028844627419390932248211323318476802957552819994578729762318456962981035420572098009425274191515372231293841422281629792086007159862949213348810700188363186441091195854690199111106399869877367920758092385962533830593646741182653779062881481760827148165220654018565022629084792728911545679867550508662538024044383127596139392116602244059621189877060356833829659813463639520801388941868307710293129154303112520630204802964379079761048840260996117332772773316863583260692304026468490179985546053891674328672557162900709095434875710975805974722756817962972353672850733119315558081301884968070163060846712377952415022236479044612902872066816943409740617736654695137641213857701490377981324435123564408272939889913820407339893714564766981293862626739062101660983345124962199549115148427918123699367754569219863432679946262283509666825041638061199362858244497146761157760301290298981435389014128702447008353453554034381483194628426182234662980802935698677669725100122608968589364938817583817213026678966476127937072770062235343198945945476828204134617443207184902200415034582545691473192167417481740549100727983275976993901907224035409538806981083309599255750708805410590783276236391563709492145778909165571409934450128996306169993413052843720040187959292151058549087018584317028278453824452162891582015347282709383889409475898337452751288853839749420836006781019046309384183906220182123570511463596184791841702307893108813446254470462158028626253681822746285914775917671188936507666396184766795674233407963530237354939713180554647699168431589053868909598067321965432759213568137646740674722061336841553318782143570440735731315903034676651930295837941755325567898326769997754076987737103754692099591841918430746817790642381882888021675169179279283083059035365946559052971481153305261888579657109121430284405227617820563808716109182279555909449767147587403939190769003938858648811404699957117251769435888553550209439409755773543062896769103212419216397148728649418617130272177439627144103953718556091129032700000368130517506523181077972483845604593065952819040408942293347134508784290884035139387204082432159820637034938315893501581516519192021414173300048188212073205722331511796508994158892222275342336293513052475573564860518854469921587213860551743587120707367091917320109049812047159286945187145498015419951445777686874843316115996759557819727148269230021171121605384054423690564505421827820040191723957915050443686428502405509411149452716396249870724415967421691078711669593855002711018492063820317949407443858704083055431833898143315231175459776993107247653635197326625745050363636595794450129745282990639769745068441392739289315643046450317754806800570778739720550621467692848276046526323913248787539130459889617504243749345709528427749477399940397384110061405603127051076988974657495388946562133963734317311486352593146098974258696333155096651614512931905532488934492406928184660924271761958442327910079733811575395891860410960377112997972091885566768261623814155819440785545181709773003545690633950530508601421247516917948047608502000350341548941727071714573390904139992117720840304430150954882102779954058083872107124343835505078133947474800368225209334096841637555127905440873449686446098036442970066053320046764744855288194682068473555165022398350952686735615092051431166678805719029707942893632274265552668827148800111465555404618249059384541381333277883606399186673857241833585890868619854629625200350955267673025751568242089315789559859003942183196413082468350092592295329023217306134969379101368821508920207106520632265467842042153997899756930364911185577761202216026861372805754825770495646122308008988265029923329274594696898834119707519483347521551837433325788019480300943545885313027015692545898363305510823249707902183808773171538455823070292633960215275560767042924118470183330888991195371727212401875060808890740127250189006377303519537675224969891469031992151239586181774811969312800049961101691884823403077568295559343575435404262251429793775452786389497562309525674267282918988592767080335777019383202750819363797324092766910379645109458938448738452839002532162591738161034936899685531534610473329143150653489329596265136752219461632739399600229455722797050788799797185790238750112979795585389047526836348457924039747616416325668029886569227421842565619865650194294513569829265742978798219016977251687219610629091429637900025769712414529634570716756750628454396338662901539421714620084615031934989429174961678130205707651878983954453741286421839411252851179076348492869729519490724537376476711300730542177888843898485551074789623066602035714646469328449488381691503592703203506373423534134615920063262818906711503413639926890501863385580980142570444490960401597821277202414024586768447406433315127324663353373236479474293131761643581257162000950115429783950629039080202936048144920216720021998814574035533514931878756015081506386205986126048931005401885774185071528570983516054061939458034227195883001845619159634632027096986820231002127787617018154943974891984911569803559699899150996411702790226030164029704525178630506111834210421696686097721291809361091995062432916291400939050241997048518140842049420703390626259030842352155308078180992249537476617509741407043703272238006394259635804696681343321591115706891828151596653366469134417434004561106223196691208127248204857301735686793654392449746259186467483758415952791628101809393105918560613705902770539608333504983492276085590096588524364811778882027093307365399723710928256066890959659337694838163387742009881560705056023644548914567378404864043396899282702392321224031217470492092965067074103580342600359672109356682341751726644893011017717648337002803976497858455330064765875711702996535396520347244539984450426697000325811738954680328178639522595662969081153589345389186476409279778323443977339403749786657488175420850848815700374134435907132651976893073864092092461477374078793431382558504543352999686030991290336295601301324232113262413250367970559437190373858932800659205299671708407837195976603179032029010902619309976833790093292267673887504859090422828243087103357039907542226802960115278085789233291506101333845987632955537229446211880861555609754116481320121122395656353407188284661995648449410933771268133707952832725440956762833562186396308648681532423814881953967894011498811591159485981665631078935081945975341256486467520893293204369563366989472725361368919156828977707957262300369199953330275877206206780059092375118234793048269535363805959522864522083755726458826595077473851786933395233704115712077899685520776254438651223133923875903204134762902649155050554229738898859867524451412314361099678536902704087013441915634295888044431193307594882082041230317614875203219291034425588797456753408871106612697175272262653256621813425678051341512099628426480379251739209068859433740749235750636528138723610816752195726515229897179136468015578320325354382893545584725035776206022802921419652367013492648829435201867124951883559283734398799169414334298173550598058209293575836953607434198043248918928942319494685993990505085069212613426120741050232153614012933295753973299028148125012110993785659693256219931585501771863862989510528958405168982649728438725465052245568721454418822369258970362318000655165232594888843901376053379596771328574949467081808536425724781272208661207585373807655912948539152244948560752138890787114891799174005878761467898745333694395209647185342596951732984828057096688884134925626283818378531494320555585548845416904782397756169388607035920815267237817584117342064134407713484117474071218527533773234224511172781059977275627258212001034515950700178689855750680507353418644153240942962821511990655243620244924688709378109708236415315707279784017578130683273034122725445005424174215086823688500049742218728508515746375195136099316862178709062128591446549718557123489130902076482774528163218983230566595986038140093593771395472818417590296785252047733222311722082494125137374333247868111917858517226326128571444978431550971849217494320289276702835406798421567676868716138988015497016942392275513230306016120108624378085485949555642093204880917858873009368028506603912967771074679345407984444724483266314016538424649970935467319242510764677614140826579825485010534288027550629667313847646609095604128999864419257806202775590138955983183059968660749299748066885027789267784612251903594618327152716897937420914821842612572964336621838618803334059903142660413819520260104940039032514235726419607232659694625888873000209850451331679195240339334709498473515142652346257689973885221171605366503422208517840127694355446957846208773453747684172243554709142996208189172039185790921180940872160405967982440430868176819467902756572730283620975546434219188435189431294518872662771474431373838383066555555504956427761454658776725484517710284994585700537075102634234605137313351859394367388837065869746660410711335953278165462047687062304973669084984542087281785348734662049645805091336429992878667949219178213693127730775073126253484562088356655976375381410386027055476831726013469860153291278332995121637907990915098267351225772064063116483222916654062556293089395859838041267099482114396824816375714710861638097119469843908386931127926397720434274586919370377333067816968228580207673962965992799571073924078833991711523088055407817508672932989723578394734386482327757920849767845582021769270926361722718885815306835557060895396512705525938530436862034297344691086868549536007997974265030722151908130268325863757833337106397839563321796956717720318513440433803325303987498919923917396278267678923734670772902591461627394123674830969655083051441016622834346324543209903364465074230512317290109083703958363712940968698852489459519324144686848126327875140769923452605426773193715425723425484143696890897752621472476550720141891452981642902111329975292012273079379719071140367358038982490641712250174533581589567618904265410774167258367081393283311785477023684889729237483967971473841268159069931151723753072511797748024080318079624584173587934311091747586513293293980634344963109114588662947022225041413022317138419462772897462149593648887180890683754441508424187219983158279103773149453930709313404786585285919508481010732008126137928476661970757075157328195611842487404494950842842269539422180074501931822502228381043418797659063929120510399281974496092208464454798302048491474285364822915073310639350595239164981081008012524266757766429110775558086943834313658783445530015196173410249398172232583392824929333269328776480050328465675907058098312466182147686939350670215249687540634080426631964913768532711266996069460586941710556608862985660517309807397908287433060488867805641581313622439046264255791143084205619086110521873004378703901582561643390894422704356297785990852410297998907906661998118351188965351045624435277667934890782990214948597044646015561894015060600415358361006391084124418588613981115078827278103817646624773267982600423593663573748276818839083293826985997673961361807127966568214216365637351297898802633289900008319342697241907322421900292460606915728537857537303215233873931059669071102438624623444611934342904349635973684546408252148510259374886324290983375500755289332641994728663770174300878848455578319722917389608583325505820011912862172037696003880940995362375636649907252307818166873387269403489059182886867660422692759320085596105794254136668344646256160127202994939955971334860590197579151043582649605212272318920813497266044476906326614999695181148551392141303505194829372974734291805314215137538083500033403762075355451714981969267711953527743709385055163329400662580675215829477708058029208929880050349265480405702545317979240689095014733713225545383216804407103380099683757148095946218253205076767732837523911342336230368322898092342514692925667820374901773250373028536181516100483134989561863475592415447025825511422074570509557094856141002288194783263892970406893956593611541649061700011233281762241023258677062616742773317186266671329326902425408755011748160788669286114362468949871625777627125554581084644893503423605708554121499205456154048628716715880758536004298550242054038235679849678857433691231648681432764362518794389570699511326398131827416887072511884400128484029418760006741860383523601286870269463738241558574365974421052721853330935292402517512632142219758155244695810159209887118049457457763419073544962079449562535013179253491110008462809732320424027432076919776902982979267828203139471400779973928000031128018449978179281529846378017861707698238696818293828409484480342266573079280243893840613012559494674185186815118976010137829042176080648096211481841845331639025190865258543869623907206496362109384377568944838533779621623131012212321329127266657000163424594893520021571524981110564654785851810241574121906057918312612129163354986366638071293862719975681468813766848488072909821485283554873027390049634175182939512094943363544900784324846246989384620024288747553053647425788903784920209621883868621253948221364652755960949824705782665379345711349967119580636842883263071007109808130106800379549883375786899608460956477616611655574515676525671028670733172749426607880833850191515731819258845982154802909069419909677230608635983172624471315696897356529301309909337055283712252825873116046660224671958943134786691549703612998912855379298496331686070895415972291755596043756812453980105929793373309133825158458129672557679525528882885285661997098105178521381167887508008831228420672058103223883979012685041775436363540887149410252789598634995021627497869730940031619098153231829791821281265451243678732070527426258576375392195528269692688535583033091884383701522857776278314946383196959042725053066677203628245536422732944409653457849278945216655952705405244217916991119365636415424433640892465267370921981495301665450288204005915807605503147431362324662433968228117712359039575832848642162538478356237751701064870701063088602787460497907282607582088755518219243350821828551120039624543527925226785162025806599624975469005801712403807400230869663446915879670865487141023410285413616875018680699346754213212999588366059007045506956881826469540177873379983964556238600510148067601346740583501844276856957450711154763687204851243798959752192104098147778110677778075925714748462383139262420285170707007000089327020212883501712958859727523807132494499926119948377298500503727570695227741823177338108534869724407718362609678085132718067036433039576144703184951573273285600756954267679192207600106451955888751699801225568357891560211006069757172506908931709406184649294327045673892556105107234675000445016772642329263530899034721334738031037981227025791335934260233099665332448813198712131995600393000229367929509547961936274299335915724652878916184968745096079463391789542658942294911233454436579574580538140335070800397923008623301019973468980831145232156596935329370640170188614892523678494117900433038072266971632559987579363508040558408647226171835329119769602858426270142287723394667399867219793451333786444457595731735267243694998363516054387884758577300489983005847517181147138261765791403034331655438695583617735827846883664020992801595856310095602016898210470399005985804042033167523362345218291532069393144287756464598933981098919870476861751545153487755107186006301294406250373554392688495273930752021478365502045039505556726425836016453576878439846633251165214249560625412779590062549126950324155407721781673206454452702045361594256705308524788489040149070683847330229183511627340365039619559834270542632140775361607757583600143249031319107591217551955725421852912882531348720070234736762836169045810608574258692999772357214815960211555528537856972326406064479573859254399500023422024598022073929000631167650880124376052350801150722341917022243962754878119531405833085522430547768847487799094856974305976601767620313323915114164781025007217926452857456950656792728098731713542084416208191155430960369160539442003664017700362676453814541598702898967586307537806849027876563922884960215439523612697661433947577887579281412440202383897456815566893575097451177944729533244394242935171525457205342649881644211572519273275309707174490997193219056960068089966998873381626858815992457875964483821969645605229002574890354216834152295459379387936167249459767265373109615680472402535193849801283426900044146493238649961535451490430798086204830658217187761194092216594155681302468005027700871854574502472574198617048147753884975138668629562777571137796781265585734819186146459933246480691597394239892692923298055345187498462587492352745813035804897367491881834072003903403906244962624752770514732522193098122728866918149459626463328850542794965115851332185550274998820756959243009661318774780719056864493089991103019833772592605884876473149630104758148350850382405692290902192546464666318253756397237224720166244364925195367964724685757221029471071781893193209694157429302906216538794938191934814910441091583613358656271279350478715685917647454541964053481282522354979121895965359366514656614698472359841653981530640389677432172081956395191318382508631100197146249351174180767149318735325319741989012424249212082690167820695150314282818590785775809429582955511575415712656379681776075041635048194402478754289818704613384001207111522442780438443765584203406558903740045070138926459376775868020266978438829506633569417498433863132748477960760717030024721862380946530252105254586462448176738360926733914838493304074501931316525938011396083395828632045915248246886351258777062863988388568758541913668336756889197289478787085637397786792520486942947079743412952785074192473093831954794548667351190397036149633747140193101130552046953797622744060201752668528737237047723048915492464209537182469903917302627483328448794521887213253643067086237552299927490150774408279657530169302579739564095789689197774419681305801242029457189721032888727672358403324215739510344436526495516147715758563491497691244893060780377169328803233344662573543834654574296640666732391224641499493527823662089030590318520362739542679322309252975488198561177770024634843009438579769240491220933867017869677090983439185944847380414746600392434706307550068009212594314712081709780900027804784499539729469272731678336289323647886814082720727335678083112097705074432341332809253653277689655280337776074185501089932551184287009592100151626344112302357889187254005650136714584339974546157679112984904681804098175300149611328090177176385062943745415798000987315687689955391563331021996308348870583684367942564183326452284173662211655182556579586884225810100864172753147426487529343566048322976103549411309580750653343123581613275506959520288847324659249607494465215388434233379181779834744286405485823928620253420122674900191695215315776512604400633483852473795295442297615816297850873534981514163057243151357944773893535313830438073782930100310728941361732683019703451199597872661011382385058638805303416337229456440176480358759235879621519687648374437904962232435421459356141083313887542046385022069103607151670131833605590915072371241086640162530187518521833253609413320415244247745880138684404960315854214664115324866436472906395040677033004625183603998458167482006056455548890419057831795569219834504850176528657173188023894576928136346606018750964963999283235522682941741630568856648784925960608121007895996968742413899657595093002610365397834733093169903658277049216513394283459023846602887134531378415859213416243206225384836469659710143953098728377258217570310977413774448795154377435391700685259016805778243802448168995682831933810858292750496100806687150910107842650767358968223993437535374044186567371777998075927237954117407709388182017968050551380758936444261186533558491869562744238577854024101573762413349677108459379376665663016697418022679119128511363743254255121151915229001478799782011623678029401659411033339344495075047158508966724922442164601678528711829014786082266053398142060423974097957456392647599750828889874367171083917489759750138374159259302413562163946649789802286206010669904930896954308067025353381978313684032955397202211630234716969841117785727914685470242690639321469141666352317369332225893237390547684625483105794824811753696674774378146683371114156486845680848668661219284868536612708572676694413666257894891825152661779853915742579587690555272830583119737374099426783367443240758275378780236499531459659371950321236122597137508094622286453729662046495231464994840294866930273942570263999574720551562699668782424410510864093020003530817429208020333026780490302666977652660261791923477959353408834761972027665644679512250988698449221462882443659623445556643741436540007109892276003120693241071399131502722654242059647309311858279042583076110730268196461001333212242146465226689518264115885129102170780628785921368540842308043131600972106216131104667008684036342826215155955266564915111528920983513595922716544401193665132208820289581105802331198792900027709748990216957608806078059069619695342552027979169620930463085465340194487221239494697278446276504578157987321448138428941187171616870878992822264618050543770895271879912991278279437310348677305187188128873307035957875852885190062695155569514505949187594526204310260540048303739519895143788782852417862270402250970805094617923145922874148223470416557290202619298868115868560937031913633901541495012389791324661773188540181493269903613851266906399566217976476682642472545130154583627805181948998348425741174052535856041645223597967281500430464342393404053448466973052972873062687884558117165658422490677425145506120186504477862588100442856133426017868122991735119851175113437921957017460164507081040989090455557109366970110410302634599932600367149236586469899776881327303269741822686695221876377093318040173786710344005986634881620653299315481991576818649118005760032003460078841289611078405639689345016625708510444439526198494540023846431070577444153832462201384676872150903078712408637990684000245874518174034650048613729172628894147585114785372160974426272854501969374344070567150336894281979526404439037328719669588306983835906985443081843793284120272792679873488549730506574284341755797691640866074370075714288326066141629949560845080593808447761468113686216058814621523760433691977040706978480220830507311711810919154493299941815917393190853213392468700536792079019170587949266244195460566337986721798256538779089542866408746653330179261663295102653211013114922581846925014759748132418728418403408522765743069988568547901059037502673358386333845600416587235076106501237124908487288068436736615841782792558557407564774839792858452846004641274220986003185556487145062964960791834287958378642145744948612581093772665207825788545749616581490337641269255494108896283863432107538285894191541647542638385759590449070136883677374163048616981302617766880028733194423920454536922046713966019732303295113545848449855884864788236811919066762050880017866163772558520460112919292939832891090617545575127315383283663247042661658947085203008376744580935406635429732022700701548997659529478445945793039994889182401371840405901652979166964656830913647150024774182088713988712134351970344408160824640438564435102711512688559505310977849036520301671366096839402358383943801314790061356832907439560985612858854902148617335372133362269203650614201255344963697631432939099012939863070560196378657508352771904980237305282731576686869470652634080077229778140129727408172003464336263084279921910347341474747268194467626663700759412292547013509520791263468026465291690734120329922579239351597728316627897475734012735277619511762673656543906801609023392366892894700786180799190507230846609074891355969597521732530618398225930253951695844445936333104527885755138795052445380246114267989174814914166136953353242942959248777688804826307471013153236810595391696653368406555770132570946382462476425225022167442645229597544295005134553592352269687681559562917238005219308488761168586034382812382569420747809647476433318630873401239492945939950801324790355575899433541464129768293941537411080570679143758863167135603451779598717142223061880660787347166774582928714220075136904620578183376469258542913252082121390183189223563819778311066790779010720485048998323782070367216466985948679619266902806128907555068831723883813368746390016167192443232419239191819932919824016678082251184074219340567400549186500548043829409616109760715482324121394902440801340526695097226616260325234355285479912323547120872492399837139648596751935532215605929426165478534896894718970464767414530316787276919241661511258216298301951751633706387627606125839592822321365460781407510449694964622483478278864054159258392537859147904063959095089201705993466095053185921050323386046725062785932878831072784867574297204784378550988301823124959855287862171677132455316137145836738185759852262795878914243494027218371577467760188713988226157584308225017732689870307570064681441981736722114170632444951545216196885299495017780439354624659425889629893369553062703588940012058109899459765787600550264654212451734432666510130493680784405643047743048983798985904492939369577412169367958136356500758972835063601459343017803409464072192396570853777857269267847067547595551296352562261540035633043260549265417126617103048252200701488600971361184311967901469583398987121101219649647606991360924874884469735185711361131748905328370238782978173522848839832529572217863023824283861449447935423113626868303742139417193577537180303049131561705291031953476094053258765847105017932452098393586126858211577833359652676617093398933945095450057034249534497122451500901022554382265533494718858576474000778726552553523337946346698048219041376857770830548825967418336096174530358126133208395404152762528004953151885961697976557163130783813239856762012246847059100621589900233136899213009428643693604077902104450186172333860081658863128844549547975599050224983341756219110054101101252456768580766732451885146588524759149803706395650409158808209271473437818682823220873559502041524102946502502090344557988045782207412212396941594764494241227107029049080402618383313523820080248214447981643470175083666582066632371303118067020718533575920281109640279731514172547441071075197552616642399285945960636648859455592979640813172937565036901952961788976354653225529334752936651688418834071714480805077013209358786215770088831872259796267530256443866208115847131696961399433265596317926518321084504265999223469038025922074493668103973178070149855049443191335328348420539156913950217456958476327828000983740701769869654740578105878244804434549998117206812843995505568902480557916196933391337608908483406055787782086266061981301739397490856485586127405933654223282549781532060733793980226504550251158583271565331960287163756802250599664730242816771986289289700541518452035532331479935857737576507961560198317762546009206979694029599038267689117246962801487458393897970481436273554165552411276511630060060212238521333729188762058829313866054813065258588747246115489710171949864633364327004959868492588526295933012614922066331842203178783080848398042655475796730168031894548503027066281461151102059978221104988438525640499418731713206371118247364363727676454628371709924606656498092917128023030155477953517674639377600474418572179020686073683753476739831331225850114790825533053554684204507162958247618074140159291303638734446832070980934659559578329501698941427055220290356231133306383918296330792213254022337559787552286043998254227448246332612986406546456724217815478500561215103267624389409608117960066767263042244046068080140096038764348050820986638619659321406920303041732421184127492097015377165512938155009945250922992331457508465917999298624628483238080091902701021350493632917034031879470877949869298091081079745955112940476410110832167129885506563180553106510426338852942023082558637184396914089968575815135016297822460843354154090629260397289453022024536924260866809518862227037770189387468830099040086339143079292176553878524746340985436359755284782079175081567170061638177749230727307931213341476049826160949550152329207327270302534175001419792497170259293954005930326783436940082569525683841352034612943266998718412402117360393970516183579244414598616051079383162974190428108023609496757494769694906874102480104182648066964635825235646214180958786802011230587750840283260577113783498729701711755581246545094313533527988471260081228957030032899823673935595737300710724169900112543531277746961043938437846097100498728997895929500171481673678118447637187479060989410786599625938552788470884550853818485101271618748691653667637413302596513957444575701562711210917835286739673645224987318936461798966157216007715014836874463127951673266606865511003026757175294800504507094315102777619390115501603312856205263226258882881187355915064179040026039816545909214789129251560018644739738543575682524496059771234839736362585391455735510921239705220413873521827968311877413799209492942570083154996525387057469908593830636165254893641346436428998326569535267746338490039492488514973988194242438108964786872587908920293649625455302866201576125600151369280481230387260887924259388038150400478185157269922978845308002167276060712214112135171279111454436976525636578219076604082978093331791972976979104486253742908088421908347890866762503342917173627691711590489991475299112214212971466896320108892439219030879766573854293870637578089924971095216920540209769415713124391471661164922927666558649956552077528938576796969029854779744993164025751501716536951614005762606785686891559359433004984982602157352565900216082976189488275144996656279115142122247278416875129942601026546774698128429211840823589378606144010540075318895014564940932592908618347397471049386925906645799211856375841490152311990801777675588769378910910872984856941327496733383676311057744826843745232507851049729308982758850345259391587139449377959760539009690069638614011771651527495756654526480376795535813844219127641300834641162111896871099004461047358264498541585103030958636480900244415726131937700000340100263525980744774023988086442874884867300422308200971100635551941194163149464456582934330775989822747091780813172068615818742582348812361571508943580500519102977651723445183546598208849188153831968693743059760528078794460340188363109866731505165691047734048389930192247829264715031015628642900007454584907446140418844487859477619631042852049716481038217968057292854617883814336429598068131779257274681454092640348107222914312426228420418574936635596273952026991239345366461864957749479709286472774051950679300139442606334836928059200211596577615102252037912129628202057063846069040347633345262445367224247867312360164668997312466431147224622172426210902248815176345169599437785191897681304095491153827817049817134529731593896151909200718358047990730983689932255459069486229328144357773556040297383010442375106096073325360786618501119266775233018590213463573033988739980300013193307611431937356159414913667007407268407689965843784891350046534918101637340885749641487164471100804683612887763293256875832062872963533400277824406060271797751162339584167735577416941702282417884101152868310056244741927466212414457537507448037239587141423865426742598666338961061522977633703948762716648228704364071244541149154368665346686782000118185880809558375107702649174228645496569669973901120970914010220726030458000360836572161978162744897232618160498453844010535922686141173509977370274505957466565126670671890939888177023472790045487032109374494883336476448852784425150596494333094807128267461263905370935467800072595381783640194386080858225662538815350808990636913406662289947981955147933283213551758200450584356287906929078261579480959870053914994411520728749867842956572372855418750608557031129841944146329348040931562881266582372265663096242591476223365779330225564586522468552735363461438204485629563101573229374437114838723507916793832701118844775953148141425985164568884558796910195984503914673890767892330017628395708099895842286979701785587467229217109087489650272140752202336936207322479333084373613160103886460464821073826681117516451652411831370288910687211878567933497158253507208928710825526150494286155174093396636056560399660752752780068881656306039311844052822688002526613740416944077900375448942377985954078589650889003478052124259266157954811566862900517818218643854693594798183431062654524788424689958870248478884541978235952723117525657384437450984373329364322623103352129857831544684567462855499646895499577092126064953125458889105279228892262354070838456532872032340733526710440635980493345358357090467666232540254470571652413022650252954575750365094845374421017615851075408615383119567543248704658140921962262558257070577766690916719117062490249307146158772299492779442271812540380581276351318937869398830757250587801796932172741687928779386650515517555139402450961693134599477542837437152122918358438949546426763268146874249900993097731042601649249431750021103599987649534058657592926097578950942794380522933576394770871003455996447610105943083234426217832407549788151851923641044057021953204155069914798559870449603056772503953782646476612167422688877500002367662528323938125793109786386582472442639224641949115076374231952262952458754191229705633559652973552499409587255608463489078557173643874695287075527528365915129699095318753803887942522188021667977754587405417200024003036384127579944688548416950396379396799440381952772233164859090259595770072033534326299013731426178243460860909142332931123622896391733100435680411988189596924582585775327551856942376495320827838154513455286011966549815748416957461004468434707860154137778702876903663428088375930284050513698490134984536947144818324411517048453227187676488028800678223605946590898713742723238800721070042506065934973203985442789571272136901910631484812584678963825630133591513706979919833223901276651985728118332938286810374468180269025892755172703793571713480927006206050997526936005688984453990959929693737527397981683796157701778265798985883299202402930857217574290233125273385753005118982271866068393551419854997352107184129540296894367007627780474306403472217424315741770830876315214162803002325726807108874426562023765365523084113944788926327777723876908006547534475370695272381834833089289571610283370772902879599196130744284770039825854860983490884657396863392729484400839366859587898533184624061483704318483007000974868124786259386848117946204625732357585695112009788006022989508072931729880428117229323554700142611504750964255465721088592812366516462257609160401726448551537943418106088386804330549256083041829388230866011612148867384791755275558708039413795491193253354528195093697863716084487533362551204756196994583983566479527326095298447627045878812354492221601816653120771774965075218190185453239093807602938196999380188795353706939518542785243150257844080635028307397382241892482592314700434567968626816144940970858463737891108196426190346020008256092798316576022550678687868849356793374829040271120216216806459506227298573206295202389413204804632976683148725859417613084450314231994869578567942476418631024319184153830996597145169139112936738188384986584456455039288647319457901705077572244108006833823493189132153323975692445050847577401819844847946795712134102216406531535706639036641707520398516785960051243873160510784864761170685129268759610690235304541380808156261801806071012209226248922039842196034558738058599289400693635059611191762495146100779093913111397278666740419443232606754088476981477113178248459035886276105087652124369191396436734987423970703056731132158762439755068260171048497362613906180195181939846723998496544653212304509228598249346763628470633853350400883614723521279404451645970055552241592769277610158495121915453080918953284970931645616852274736154505661895454492446326438882481902130662990914343264180876985594068449703900695330523813520104036037491522011500679140889869784183316425115233048149626934332407631063076371686363778712643620037193361044502585137832493215454161375572059924908085427897635204198463628114726703082088471057108918537469858489558057982053864847319942382981549578851219834586992511161156683096455768036637775711789001831432378737893011936009633446971706274652571314131711965117512197236521438254578661928423953157976682447917774433717199236177281384252421393333869915828794978395088553616046224458559193998260222921906842552612356166704675537769233609445765038931619263868859211177596200223581815392557025280271521436842450153321178216473494370844617294309530845809351586114151238665592759692538630425430718184243192285290183421825170317490921801931951705866557520188264203068958468217345074143281530036537994340279710968844943329862886961633828301517030490401215942529365715992633426570114717682586749075284993426428035447030114543662516223743009545652190410960367570804265121202701118685286102999992557748856940880325801252250590683871021810498879524134767287360993838844064824255616612042141876302562395096824346919415456783908832775092999340225311415441971831406407471647910036800411421774468965082100977502580575211711350109853442947458468227066415967715318190259102555137313071681520731269247718250900494615226605873810345625807069679211223092149585970275159347320769128985481818257711736940748689850165219902732689785635664488591028063225271316058105245664852131479582364392024317420323410617702095584410461452561170823928670872733002773468285958113370880004431225207374658844542845123080339721852163149024065264727228868646788445479417297676295504019450466463694714223555553234731989315633543435991831132351394165800202950049959612570159922813896268658861503164210250360481872474818240200025253992083065660871597237323495553468846994927501480306745214396195433889959953493690175381064607005860440776850856331679603595757277357073715746840280955300647440576820808346688419648346584480262448555016726667545470434859017637483648512515728209722987858728062664805664705109432419318604802371186838205475723565652913284023857202564818429806286721050351728398083329655409097579374347592200059622091423437044269067544211267053952013545745856122867457262115492553142715662637170132678472230179115165037933266693151802188493089851220580472176254452598502440144332314585046192075531550313238285620052221920389350183315181914715317358584094057451180853088611204434859069908904631711728832112680951296694413914611148641346301906949571882206335287740667031134401922745985399916772928832678865819891487976119273975622485190101381453444991488405722759300913082123311418867721803941494558891560037739293837163103425273778579101417111559366365536985551166077793838548939377772560170517861665325842615839046472994481071639269890907121989920873878326683570292625041755425270077472104085562093742593363500693892389286830283066882801512829493752255250279067224143646893992991133229090242577867969008929598481308323093986020528633928100423080504275696649418985083031355488344597956832231567740916696674861338219993397993563090822194522484357827433848645157288886375318695006309803465770129980213517042034956629456975227901952452740735450898992488657772693862859945477810117524367889051381806080196300257900354778061923311485642615016109389385554752530017015351822495616006282853755984833604425329557670851672515672822129043665829302810506653792341143722996507829319828339940905856087451662304820341806778257526033893393236850454387553596380484168199259082400748645121641888601290189782793227178632676197782458080066312952632269038101491797379023728046147537425854890323480576038569219022553994934967439253330600758313999670813928882417990690374944137693992181479221944535510360596522558765488443530672176697356179656949852215015824353647514965492495283425953578978799767340361752309777499978282084836325142990133791387037720281873833132801350509136346213396476675529813836939312766920290552225391687771876606845187289068970059130737219296773351030477132646786119553478789814463548344980878081390917913660418504556615540669647079772514771583767093774319733417796838794703963261259945616022379871153728343065526869206840369366177133922167239405322737882345620960156653259310873583692887089040593011870443874475215980950171332219527648280330768948941142335307958762342542958554149029877018944990190770073172713924592441315578534791174347688587868222282683309981830250143276998164706232257769587665068186854110709273324381003949071006042116197451303385098912743493128951517374915726934813216869393915689405470351318402830343957679730482579025179829956339950335189589926930813620829952220334723708499884199164736861714025402601881979109134254630996978524944372748194820644101834418752759300297605602315110168236047220927909505176138109330414882939839790980539226308789654706696166437512992350910476162596301570245758802298926835339484485291112711608427640592506146130076245134813347055380639163300129958986994623050878578149663764458701948491644223375713700843618775870982070766412932159721088522897510890563836310361549927305387498548835133537896875840135678679182798483557207628857871351675244512880475164975345972716748011568850163488234140133275406962845220395161869260785536890379774992582535439759466353612907731678761807464623084294008925877762856600608864728222513148193217712975314987428968928055790648965199758627393334870312256022422880577234260284258306087749220592003234793861241875457959356788382563175141482671432790019295438161537007471743989979274531398657596085051156525716235970308580075526960498305618344551248068763037206756820519924490485115629363726854494129976583619059924392750642684999033261910856462627613371506407842701807223920169718150659860460074169994283957191561278304177137864183277310394773112542169482172883542711568542816831458606520412279019651469285448843982126721755266048361763762085557346933862176539355209975216065167354667927676634648689612846473483872168487619541496869056240484387945855476749752548757812354396568660644173116832301341718912539782049916994626600609188204153865313660104284861968543215070781506117503405026614584966354133884923604483802161183797441402274222857042864206716757416573232787281932373253745003510427323885375738040275424696750024377697885508964431607092873367135730343755555364625338647497368696669761182828956038992122236560495195204043757800092337936234955058702565949853732940780713695561379043088417885727108329874525529850389447591218364377416242716954971595534327012475394750204674594550413945009488495823202195721241142720633222682024308887268276310196635713626465463087712680524455117010967767174514073137222452409475030873629590092694456621413896023243662362622739002535612674000925009482576801393924440793256760727080919190883638845236960400412364980505582972687518494477864595002247592462758612951673000451214133366895300717060579808787496838152164130365884065633748677355549237833653562564606004681843469434102037141447265141269569728530412729572813624002163956037711736089705753089793150971395827763796871861219249772983212225692302712902860970091252313628621723649372275650133361991197535442324812805774157290659895613900745561767464459187780685650091278665380037222183169076210477726180723092455794507642912560364684295283471003498619281981585729009466992195973154294076319673477263476578664828829147939246160258606539510148593090487421685396511246329337221132709220035068829022835047132311413311332237270297503600236030514940298120754094181375846020459501438002736622814716917657733238762344395745446034968438183899941666729693673974497353358466469582500207396563300896577876194198520698577093668417410958754897380106465289656689903530223877056450316655194507053879455209256806211784940977277176102835447918415493846477266486703062288666548641401700824502263677595119945961849670454918823252886961712612997162219501589580177353981457188318397011860309827746804130154616456240471997070569372616640500206716004040391007014329740671315633851229196943849847763523143071304714076945182291426994082700542850665881013015397110369397862594474587871377249892011926488683965920136349166271790540786963210130086045561098131664536728743916801714611338014023663468180281092816469516310109759729871445536999924282033278902972693160549166192714109756191873977164423784311315536743569209230025289772566795981935381941017749686063483496069908479052728760613845990901104784946586030108641082361863075467376091876168349188908428825124384433601439241877815464892256658112110090041417538837536477800149539119903921385375351864933325294194214648847179839683406526104020256110312729061322111285394234435253725689509072533090539550767924394098854192823022389372289978551070112319043290015827565071157736501308341669115584027033097925164965264198983132054399737156504485174636325290199284163278579392091775177157827958904260846964123551304412495952411772422226202791748267178577907663258405585072027842750454261572350836472829157914057950979722430189670017931720316822006449227574491289367067194740562616069606661662993246251909527924247195470121231694079751557577351075166678831848254639988928132982743164049589325539645390542013075221552612049930576190333598873923624118601965009310203494306103421524910667862810555563544918371306211367674071193463235909813239468422345604659489926849776504995651292443986184532098017638902125043546427103132332234058556236852117760798446288194659199201481557443762177808964528700022467509413693200189136181092929531107520142609347003322023533181941131864737307235378056686620575740994456936665951227287981098684541657336514953518312475127877411096151016074407543642126617317860870908528788486233547288153182840758559262961569692835922206725448997890229495298726691473590188218427797898290583053890564844465193707110313998926676165978882576129038423402590038933947660411689975021149545112310743621547835592871224085755669692965842753708530308763107559338031876016863354824557750029238099170084242847900407710712175755336830945548311507243875004948230372279706027072568250251776388975504357255426502002034817630950068149115317152083926853764097942117121930494277333363123266580365936760840813747688203449370868409599996820127150192519352693821553017451225099396297674681978960362827362389782351216292954444367142091067039537867596393551825331744892966632302518920734405380567976444932947270728542720396354293615644725579328317004620099986417344884173596168232206674923130923336887222886096419949628616705761474605997345116761615088038982013030130140742434358266002680080545766846581245354666225673757588649632776933909013352205784793722568076079489501174056280754030255889917566688552562005559407594197354517206239679624275859235665982608140674826905046688157958061226315017822094760853169549323944829821584327558227400834715761640040677275532267075912632712242963742223533838340802848210818142335815873126011669093686021676638094712789858808127154696185298071718350544480752178239456802725263570746893857309425901903909428562654749982308748692047218306553641183813257951412900299254748623593560834233808002986000287222039641964264457705260863098813377221574924978676527919963964419380761501756866527104220735244241874664078676480654642130056498715201456738595765980490196855921713947842798773542308293969378917161751844173640618155374152239979942681669292119301326130639539695777032170226908098123737026318887977595151327652735320457820066329676408710295565852902985799002414620012806720732190663145327511859054464692163833013146068594083076954132700710569589015266212944375120466605605377050877712831398181278913800667219461904195036808924786355867709749788329654897883713924643291641677986021859519399201630827717889101807490990619111577100393220036407327943053032122454046545245021641123915426114735823673884454755140805098590739938190948615023432653476957922618100281682012922566440362738403752454644098342329191836407866521063463425579224855482763434189208188052598346745481421944246113141453538051228318329627137819773927521695457356218869734371881351763795941665934387308577534656150018507409324412295324828625503473359005221321630710808589553981653756547045108442550524113448928525691927281946473987286924188156148236728469807948268033509710079070555695325809437431392203541552779949541600619942901807514588424613696884840174681719847503236013633851596419689804952277465095548641907679220844835561580593384393226904340981959749744167687165305151410443028791836157558716282832178303637854565306821556178137767177314854342834881601167539150556375370453047752998345098115708093390763040786048530359930049274002429833709362728622112333332014714557145878631713741273837174832514380018597499627976128038326731266001151545204227486783842952432724279106982610985848816885872544104180053746690787575167892943677398286099910745976286694630632036502180709400856860982599328712300933051709423510383664448712939645478809775560354213703849650116033931618832481076884620478309665285061868098144163344176068909742286433199308797579813794199587325714143223386892692777775839546612058421299666041894733465719239534331205769868675250401059105987373996828867234863117550936138358941101567573315825688389648384019893553721065753586893443233459538893614088278273912408250512376530172343507800172678634706004633717236207947453570205883500550466445399004650337028630117505017140110723426374977913618050675292672330947021397737413286498591581752704804104932464296341290301927085357534110009713735671541333834788983592333404757248814151170410093255472714241356353565148455647401200799068325945433672155620899375623069126160974289633810721356095893230671682130639118242020357117001199288910947616169280248222823101993913550595134372891346045313089712634713741650364243036672248697498803599742603084077507071974698641508813951259168946369354921751133397381762450078346227648759249704051272701538868573339602176027274593246249340480828626355697495983394096674303624066486437800010906336412252712798908646174218586991275023512058955171774809135931033385256526046721713981214628101050819967397479691015795454852736310664292411493082238425130829531140474954899956117331001499871776188491194747979652226151937185128524287981670201244720874211615055969357130335776317771966194054806902039043206500811614403713155280723378862420303468079273789806794860459984343443167050534881234925465301911915438337276963506635182957306192064845697403202428467816939911236562791280442470975184372541944147597039119001808572814440028677054457296377850961141350142496491756738321479768959216828202563536052855971754622040767718551996606700308234377072399843868316740038646395705037692350688638340513957329150738084057274971078375412282741289567897132189761068378212254917403942093658468301396187950301868801839100381532606780564797157355963248455471046657956334669041215831037549559724749113442232702427453983384214591022375092205199438707546331841160561472528324259852106856126789263934541133871243162096843641627964359091703288900988797563149018740177086335828605248419917829037309299220741650707910421552395105576249097344763143839022171057842865664374219637323339306906703653835223882749006291614290701389193182479489840939829779395380844557362229564370286632289176252641140402593504907659251136659566564974291411792088038567268157406377169643933924324188093746914088179943025131607229906272200211490293939332788300941334576957291990348074081084560166355575065788140376347817674317826805393226215689541861829074732449762407782394114356186809644090778340892228847252398479512401919090272543149245650896186924807732450607775834827862699427404148767814969470154823870273534351858868137493793184166905760792186700395722502914796013162156743507263567076109927506093569570732501580973486156505726133489719038593299910069966022308784669884339876412025347332879850351079434851859679964080613207461114201166787792775966960617758471815342805347938491360469644095148457614139968093226915884887470762193557234351531990484429617849252264504671171244117871304113331627211599427264869905914790246657631215006700522156504895495393781483815570369743925795277511442087258707717281875042869453281230051770771710068180143055640045775520758022051352095648622202489282897513242039878366214628164540987036936631385965178843786833804256405127017668001237519985019100245536913495432350811930307149899951048662438837460604668210313263544031055264718750328506253278883292866615737048682603749687107715265687522403587024125419273153960393638786894825159330600474195377523721205491457898836681310578097463213705486198207608923970585268381748369007089239001993934301659914437437022238044587100871662123566343483314829291960303924481288972766828682837707838876950088237530826650173312874706463786604583467729300183749834345658010868151417213776514073894527177614474674837632864721730219919016641333716049597169740582423846280882923984760489620577971158091636472352354866668758194781098789951485499910734339757478635599052770651314290644713107206562051401745041204536905140518979688890930482964723372945734414188653005527285508527134454593844660019103008197876971754643545093493939068101109039387464738850565651194429177659040796157746681503340114781003623375075202767149812611343835700400024595483781652656033403138229959876354138450512520685664597364071682844342247597669459680000396149477688060287088264454808802342849393334878140803250907053778615847080882267575014628572856970071407505971542771523037737274113621783177471987668978631023987364932519891610105681554301544673422392447262813688905012758741958859797347879148492209770113260206651183820533791392419644471400978282406567055848210277885308298294874193972955942253683039921757739765154416204345005419151250421680300446592331190812549945705998924228053493342421455263208527053885376571393556764865025375361195025736185675582666194782715719347180441762908611237623236899333887425910783268885950711353232849663417509013290262440455752277169549978321118420868365232911551578945816662739107957362839975986328729654653707033612179414798832187938434193572783928401357078568817870383244306304412553957139326970341701844621358098369109129168995311452450356719502516106691858708087723598646071408544828609975027196768097543090159943801620352656534613445546037969285563332555903657636983555286786812956135343943342949128540823245522537947654880837037426640835246567752825090978959188328003027677360148105093714435411160561125290333945185186278177822380043415322491629140219402309653418615976719055705643559342472706115193434108413658951994380435306742757389974542067065946621443436532628231612102812612982832337101796803787223294022313538157335528398104759450501600371722308676363821748517274151876196261129652560014324830125713378228097027541282679494308928884885258464723182997909304856468938027980265087011172303698448846058052230292225606289693488487828808868075788631927795690980825544455660763797848038857397922553184364542629823287943128956398359713392064397747582789958125183405616988241288826415011088928517592101198236558612425610763273778399842084279005886373190584758178609647650141750977601583429095959884905633951103346811013922635401310406454980355659727579401909489336371712579400451695308212679416801218083828483884468300109734463060739344376320914824722253504088951607932130839431790589631015108757904999334668271488994439188047613052041414142708687998108188677616241649641707604093602968503545504891850225164116682326999883904322486127419071099737692103033033400532575519429704746510006191053678659331664465881861744641944581490270497865451210025362060858338603743362557373424631150550724481024977748974543133026075392346039301173308240186208631436071034300596693714406160010501810310981423711324506337533530037233120144448883854365762655501019733779543665158258180760686414769302277640869011853599530713707483063348533692608886110132837494439532784651921929176141860815354880628380420194891732202293939888735147296524504799004243619966339015017136656061374451082940828496161151684731864769515876622910422536922107249424193165999355668720772871801479932949150008487177303671321512082493498076624554004442859678540469009396559745495523823356082354984312173366365771640730542614956504718165128189104979796493171686750262764121020038623170831576445356306604470602923275134501432072437291507580034727540618974669848138583348485419419618750739396281181064039024176818138515823364543413284190348277015001353070973045257267665120947224437238941996426261323654738357871944994510270171459695849295176186385253581658179754477303084055886475514089139719701995236304641521922063955520147776236086241614201853488602781462856943967735650040263095740820880186330850056367956749797766963919097950634403802214807827946257541478053800819273766018915805540645318552192834089662425830917989672434152455292689223132601207374384330283413034632067177941985304461304201891152501791641914178090287544764969220132397027408615162380915336804978933209901433253355742591916431323965503923777728340996080561060238588442231831811760218352626819699729529300947354553866495194192137413805615571939627121853685927510432738768800908095540582478518518190493993059096232666667010559640644937404350410042462313901811187284183015893954758168224097340134672126716066824224062703965122872416335319571722861723268352055672030206024787582616507631786225573569099739582658995233782850680856343610419343629009300492517839748634302881565783328516071686356413931048097682654910136953069103642013487603121948873387962343573070853771486931590262820844358970073874708540610226870903538199671627142868565206901701846689249257214150618368402949438683085458668558425613281859435377669752803883912110155801206693622215698834902697280487819076236188613427135379165238074320337138215571520702787243305545595823803244820956669729670823327578092452612889007489356242455259628080415215247167343264398551398849289549660792704903071658124288069026496645116113552528247878214309396866672975355085124948291229193412571857591740610629894806780427210212912943944333313763712293693156272966549918762240844224892244051301751600018599306342010213973968259281921076225896272761594001459392739799848205141762782954201505418904823901235513338542118418762511230446865609030870791858350259182116351742541301400670538710440691402743722886824386271401040132078270091903914947830043704434947830902768567447291250162576165660002987042702152982691164965330251850131225814019215853391253434430062651555358070279879081379587085089847588663919073128215620537037863516606488426361079730347939882481071246231621797342441715421806329249762528568702660558128439438576758495901037173799376764787497914544060921154683010590487988635785861300341758169430470035425813076014071723160355905138033295775200108079940268207527977790303139149290545522658679465312033507675257986806568172252321460414595512680372637257903348988590531267738774972575401393222141729320694945748735076228383844436073201079953467251137722135383308446612117625617203095518150934932743946829128170976044427547382926969790584838056706116402298421881468495970517857644755581753899028642449328351792187242861593602759694740467172666474859417985899770477730455378001118308668798658079100339163907436235469031463094450378762073414538806696698156431103839833705228245902000519728866084184167214063209204297935407155230747476493953466991919874486581746226740026070988405261182053684556782045756810241192595627364213555937333075446948245754016844013498037438853278902131574763229247841168343626332453819019900258433819007107016551131376060276400073517592319502514921083731694323791423362580059462725842669994356689811571550897612290045408884834221253595143124666307522540721504115851971780214038822769732960973794856793999932640874322484051790793323992398916704868765081086183689983983070052658797228847826968863938882353053048958527060742551832181447131742358056081685527287071721465375506961737762724995084011089000375395075430841355062571206357882726591899820869464254043341690391644697632639009947739855398712664437372192044315220586180692855459996614194081576766302694137914176109380742146260949564367271739490013798071113873276921706073226557592632982174110259130438306778981933788133489132759201547855901380142929572336996323407318933189096723964369129066073433616727854446248995706554384759130347389526605879414589168864622164342391455247603879628477802668845286958875190667254804724814564720966035323195250568083879013831123615233852286791623751051705157980067004658148204420912788156150032621569359476690331864193815207971188549491637354795015638725073030850374602053689058367179387941156931573637759227029899123195708662866958812084983811106515817818707671171298250449514978930465524379466547065242896742469228757377775546891420817813611236273889128227673630353836293582953346556310025496312916752480214783252948373359595437669934923259157094930805049741742598517074396209065943113312329863004922319984003175723842167279772313329866051352357918895524660321448616611654146121575343518693105264283212608584063344977640888003717219949020606315011107429375231017291050791858453010054559396090560172362224942409783076205070856444084018197342316619343250042132008860393688638609015725673609316601736652523332426221633450552495916208350079528745435169910386760026795867773353826726893207215516066879207547602677839778156524606479959055306279045347484328075514558575808905253044458569822559171815830592386174046586489747062207217856873248393367435874629668484125577257989704973256611035237491142544992251148467603665700444171742865440209438133791781199187179476391469181730064039356699029922135340924611351035903863690194225490390472784710314099776044054077925323012991856139682985611409262724601103377428734181946972818750116228342916385802328819754021751685687071410743671930990777591607390837782526490870304979349080803178064046681910976494706362421799235665094810184108199792647049444028588758913864034191098670740208663492274609412168624470953491368447722610829723411901368466970279324123160402555316390059595861662616063148606398327113303713313881294152575324261687462810630147873939740326579225899283940069246816219730630418827699508114558791984537284640040895681144629370334828168197320671962422967218974841950573623555457056629129182027401818985206228876765525668046033241343515674631507406768739734497010616374340292545631847708903379195461221758728555958806313830148813759134072483008692444775986338657904766865986923206381308902037823504195029986123507902411977336288611758371116329012979037678323264649718831976506598523226194109271648167800446785865312461098996221376554214746313925397654464662276591342386935091208996843848894438842952962629894610318804229246660353115704626156315540759181183766777575350520201263346250295129701859099136994884452220215592872128652669023209651968396687233568470974669541283340309663518629876513435107701099700656354031153777925822967516685742796984414474747856448786762720354306020839757017311715851781336720738378623313903963216786661485642945483106096770753185015293994133424170810130848574049246206913892538504366819316645111118600880898123758793253293723755808331829732342012081991886546318246081036143794446771388931425095850965783673871779234799857173318360791098405874071389667889810408614324338207725876799017610891352329660292376578254722977328215921555606704328460455036069609241534062782441857116965293041761235595044011830239592607753556354209909157497855247035995067534955649226399714585577819429448918985493216748637274431508783162263468089952223061229271820014962333760066463905588870638263380056241177384334213066959445750560566073942875808399974005748408900435620873945260379053727362097305950471056036066477627552296251223118680719885483317645855841206886203023568004399583723273154580882319390284564305273968763455869200362784312929592507803037164050215835196362518825290051251032220982324077519895636495439973925887115281302719113316802038636590479373622251772134402424432837190795752802444354507052499002048239964557682096012240902550376455036942239487329800789921297383462059702805118604992823119449341384635980117510095930474870814457390176350130124037487312974275617343609489394457791752257380880491654971870961875077589017858096763036475766451615349780608896249605263650839243301510201079658628881851044578204719739986181173758652542799097625738692989709172221037583498346095762597777709687804630993585816754368021847165454466053405897294145212159807907591323031284488418986435511889126570607618365984238030370111108863637123532875353903094324471081566788706458010517774173460789701100831010838280573499166631413629247477153736503440239541774031649929016693709423089350827547390320854853067875634401912049100645588802086413532918226200334861326407516794322793809024763985578193450832699164027639597404697608187054917334656764617713694947282934894265331702922929845881306846212639348997896630869886131453423998601460082976961075036399875778622602910188727980262615848501228756628566892927061613814397974047742242082123019207025414528727928632597624585428897300335442399601912986691469806725046916896339882217860452744162431641447189039660008568818995151782685025116507675394020115216811227954399207429350058662543305361906430377568774788029707890589158589450213117424888782586579851537892519399374132652244413688944770540854152333281908420861562225130731948701309272103958191702250612466561733541765097297534297960593924433726082839268533501227778643271238627713615919815825847075618200840539582904476332031930075422953709006543208272965403618214793990914996547149848704364373505914851470540570454390420904997401359198051031845904764760793275807007302316929995569304257304205907022421149065082059095498211093566705734580625749213596268130683268635881771088157579954438001897975383062658419586976504880806246125547930076068416079916703070827310339834871498983478710056674053244403747111789638618529074162451182360027340166909759811262819358614483513229153043753519530835247029651797760643072745787417467513219539208629898105234671926713980235540574783242144305281414815028810327945005958311639666796170292594455210312412277654906261772356167998366374442196656454302649155441710404654115668581331546676182226424217064653205594142017805069597462647290300420111212727015967970554421447537923610594734364660587850262702671649891910175784030192015397451331358623559153071368974857791568079158680294180713137923370160812996905947965033573752187761517892121673395182852625694465224432561388033588835994304207352769205510794935385453026722019416545435870146355616597213682103560522159772333461385541574130591246373435098010310828423343875278477524085624417123774019527246509458225103383808965242773087924299656428638213109740179713579554663017114686374515001250567113118464991722140836139502588655893882262867228345689586714179581805602178279450618018210266334382957825895971601334679076553952317682903872441388956898955088140460485522107226681317735007393588446885088452609213220880962224280896968453428313414794478603697179152604600910669020240848260669798626806488787228073516958333845861558562123459932968462762855412848732674583738928487702328492591583861515604283397412479410833211299261510608456851702206764074524618177623727617878081398058422991059953241579487562749674048660312550142754076304915467304897908860782397448577212681779951045843282841360503767083717656311507232679281763785992099596354099683135219308641408035129952543728686053573179027471383765857720666693656380507098559410253905667010341257426753889152518158984303423701612471145787841559441879527041099167821487025033677727832069227642345617350236470476416859793110534868278951563454660735437033634612059940753007495977945183260197057253802572682599529736515612671103154956570868530966183034794686169189313378768188750255032540483204011208285507960063253791996247861198554562263249731020897117403374917017624181817554036042744857955351542555511080595105011517869982707939342970186424446148149281962673940836225004996876188286745038373651508508310341809705656266846576807384205876452828632794489465384788006751903357654165103091502823788495022734055687486876951756486980998083492366009659192546063993727916502662469643953075568118991522579946878295426223600416633143371810436989333237602968896671737247016750108622770617912928563827502743073824797437752974827545182236344622085202055658828872774285641056755351174821823527393508817667522982393740930163564728763574164614076185164410621011628008854563453615053342164573393750988358367492236981862149490336302970839502560374870540261508847647333253387171914358521336075593324327315729019398950175298444203627667751908609066306198833264227028238116668721849670579330513441119341047926077112946905981942412775257234715651305986152783319506091494127334340724120800211242876433312703581880919922740896188907153838145537913173163917471630719230968861107718646049138684021917062854204662346144047712605243144591641062616732956155320659086751158919980934410044603551852774685647687369258370758463155932311723787446140073159589453818463295244419631962273744098134797440145451119697649169885975437223685622663179804623378717019032435820741714313416120033774717667552629345589517988725008508820006096036850247821945683362717835519553632890207506264312245094126698406697718346879412871250915457116054173852654895776126146887148192390765764956393134219281677339888599140103230387153129962388590079742570117152248886235198080853551216413221043301967566382034079354625494731808431844592832786675610909870872321251088476623387154237305067832089700949197321453416697614310558523102944076305202826909623859493409665249589469075447092731344479464392386336124788903577602158038582979224607152149092132596176661826518774984445161454793200729101873563511690910614088992898183888138642255174145322445050485934296586699013374546055506725483138418991202463276629150602991651720987487610096730103515363255641389891187262836508863804478199292549626670004028008882831665080406087401710486189742479469941640105661116669331064058425236888169579718276543815291801103311742333336935769151091501019730133081159798743257278490638879447536300426561331715464024145292073683041760688789888014444559671870053103838935036673527380339675615633920039392820244283399253418619675063241302538382609895426876100570852824486432153058034313739524872531058734752430223231604222766911607440214889334137656973690271029748477270727927737467868886362316150001811244855158634942905341256831440192407310430041981549414917813684690840223415731488731822107421639414830674439929933442184967532457081048864348484979513062386766237818020842301136185974391900704308851290121512531189034616480736398802325672882612388006946628389424142209562065118154525632576296462116189587937977708336262557721391991412050305739681090328163080045286887068691056367570850738367164076300615030913385213281456620490571135040806652116644208316005760583208046076797339213688960726899938831174775076703452055872709215795940925986931727416155359442650517418869110060256279434498468254727405022314055811612191373724668501400967883739158027746632830438504537578219446654290915064717971854701324683582139686180276795262017793566401150030584069630270962898724845384857381362755253702219219414069750162810086509753559032381073743786138087402942575667168693434718510367670106542201926903910842319592868934936124690079951056858709356198273457946677157323237380743043701139307576080110745843095747183816493357410065918229977281357701920436670488971905269741355225732727717658259880074606171974181984551388474640016926771480409221749683024101416006373754477543378604097842504288482459308512744895579369998471387501248039072076312536745242509244795816269195035488706668568709407606746561073849029540681968318514343257033844072587599542889970316524111507426055930069650522089366478408178493974997204607113274607773939813219782840112647623228376280901163628758718923614564598539957254198554352213876412048962495127351508812462320016687653652041263064859225901009932958765192752570567108383613310718912125813852804091645013133374755065344559428123396144270830272593334793957749010329971500447888446264271829866370843096007223033282037489945949427641980690261473488667436579828592052844299823814968537926799511587990289582641793607274178178186615148250847103177826973740993008665054562327558388021955239687375938620843851571717154728132937610142224357808362166195783662826695568316765340559595158717249156904207225527520666733377945528977942590194857706136554112814795616836251219194872022568322784940880680695429397292063309004802008891373112459222132335171565190554182232735803616738108892229141998963859589946554471889107887875345312947064456635213819833987841958227677655673969006259073935605110719152090020580471222424292228132689725880154024460175836210864994127522677787060710780157564047859466541562362872145456478458687502114511103695823957554263173197164955981279460349116030030584733986005692760776282036432289900245931075347224358210126689124564220288846853190422869919762603720740393161315201407425714463279437202962722803563375827124735921089926026018671047147066257482799032332292894503621984145693173492318692429385660887914326674750346725996942641571950882808929747812804829251135813392670947440929330768096411277614845700024560110415199704167041757129592930021371738409428639325192884274778668899311566008524075352478853349292721794364132092120605818952073433580413717967001170135874470828356815621007155946158029609982810000632684467550326741874127963656137780062396561927932679372798864071195997232240939031124703868316989795674833483848199921453055355198883268867347847745056938795589890885143216011013239361408504344146247814581772651199596192403884320084441040488661959672522657662506508585827743749719726140874627587252010521012702480929267073331319847589718465245390252391495542628792618838592523885131758299574119581683833160255681553798604365047140649749546181909829741821866886382084739944333792213009079669206413160180912939370167309543201093063546456262630134556200791546155189272275270237267048951215587768059589092377194099268901458548706677215370616857119283018253461832774118753021691913464389452276782416927071579800914760564513170427089929365533594580348963409625273221934416944524212380832196466215219395202515297599948633471746641099596155286823047393922219174872307346300380205567419323067339151130132196505623546381041383075224669442829146028791240140699644555450790912383024653065520364402155872261584671394280128276556949030125496181933067374502612098458030187297671477414168477285067234169624601530163209792688768963129583452466266792244204758703913047318352642933005217407321271220365897273739289435687688419761285487886849463848174300860301783537109646601560249230294600366036222516000434428323240616905511111911273578393090292872472646558927508470903918215827574632793412548489798904355230333380117970551006122003149570658068051220256537377839268086916937165827766942800473179306455041741443839654198079533262767201240376803829574572763696417956856234776487854926745569948885309776748834598380872075659003362632559537439835718936964221287966458940225260964792585115118145934793356219977762876977688643477216789034356913367258741021072803499273884536404983605441228894421612679914870692475157348206017084221949012605709942873215458660291749690378801101246117741892456562979000756316779678909381089642402820360646814443787472451242521192270263036810343523663696027114083590734945023539937390441998342784800470221731912072042314557026807734233223199424617608220023060525462564878991175697256588722288805830830180703725533171037023411716720008039401741305090209143035484288289522688940214352528583407149836110873102862849038084058053741616697329608918822471994655681545825274961451988614375909914272194612041218569500171226480121506698261946687485912102711454711797700777639402389541375085062284198225374724671747434531552701070135973876550153400874904598592783544337147637545596150224595489671764877305858274521783693048821782425313458152726569781751970767299875031402499058387229511321244937242560676500017849354054152026861839840642232075064810357496709117934234787144738242780067764473102214349785110873490821691056184583939382908071182978863885856965868692681940789245236061196281207838620259726110365512725776088646006935084268692808264422536984102731650146730006586197973281929230691504423568035791374277835317282816653094068064939048796846444599644297821849615778447319505025941960846889413857525873643171203885856555524587060075842667105240350473693304798739062314115008010536620440910574413221344372036628319562153858202730082793337998400430603101641792401253650242579787080132547771367943415496413136025351986148190961973327858088475033320944522132636359862596402643976957636845641255983705242380035074394429816188516002402066723344573033843289234482039930411053523023572144461814814137177077730623092997182446533973600223761768100323767974036413641992297152037712394329032297930042788240712143265450745406590732254701277497746847319925114934954699545563457569353320224654466782397429769631108564050337279557375630198289034084174035119224104992723413377809631613155653087628528101524869363125571419570715483288886897393803130160294396976499506120201981573933154346187880066608608694017474949922977787251060842531651140809927860891302441982010691912516042262052557588370345420469555836996879816475017957276041270319548145920373311735179551578858872502938137254124336698757889341991532075959274005547984217271042035155274061468251734376626822959402448599454808666179283565755690609729146325561833750417501816660009659500525405334081374563212673467806717245423314947273670410527417146996363887221514485839053147696987483926127546631019540576436029725555775858039515321933964741916689599309708976217213179259812971788846975002595790569045844145532049922447377957622180641546898532023141259225682845461501564414438838932600837565404445977105341211575831844520398782141458244898471662254429775882737715424248406054055445430876970865017496786128618536554562818772110434675977699365646289534676716061704047717729895284609075920859964433715971055423204057269973504825386102445681178615650419520924386261217226639032272798232426466912776006881496883399795467532035292084195667639142918003006575600458651018515036939546626683550515092496486743178729095318979392882407430129005842441744303162234163986854118267258288941584162898723977855352351250771166282407745075594230856522054775633400313687993188135640979105385294519850401182065422809132361324950102552910971347897334946247543247088761815807031388319871663323839630727756430986903098546638847331634001373920953897836139219856775156552658568519524695371072858487873514259458406907522822380735048138403202741835600235609699818470707486254099803299772130014056329481607986388384575500795981342185288992874048801835452834096829292517269883071723013306821704993480421547383378209900191301614556209066903320444794060326786965758888971453810352977641874982641794490871159773809211901702548317698387269325936054695251107555068113439741826216193017016165704853574770690714466526698656647753333359470790054207012121928090070410014023770690872673646924144235378219159380822229868045762555052827191395143220304346762414996993376056620644983626696754542382532482361213096515864254561953434565937285275970171196620347940305902271789173689698821282718356353916149174945802722727731724280515341943793775394784399632756597450474575127882232592792882301013755169836516701487672520566832891761682620633948712174860527555062996684875931602888205580801140068055941540617546315204820714591193391919405449605342516125965582166946875165025890984055141963165601571833970971280345276692198950156716545646873006214054543701324823627326686437393288432673184120994791342602870587889003461409701177258926041305074913765772255711397833017320360404169541732358791698242199230225749120394427527826591383456295862133153502892559845587881228716308239059629322194855977350292070630046525286742141917111837895109602082846434104423949975622127930119120980686987364178197361828248828586964878871938462459015728543143633623171995767500474944369319542560096762610809634818062570245467215363334524893194007531099220309019391604409383340117475603393988801877500139651478559927365760358390786082632705745770363705987730802049119295919416684695321449082281713623480463959450602847868064844517777184833660688393542818467590879247793084147975423356679532867328769082774517618648848712090298531908677568044273762543681049706262317465748318562344377855799641854410916417125833506138131643727152079733104831496425539280564265014269298011887341610342871276718465369277726476448056247606327954510530232517417653843323958368602365639833517037384922281704639137125585812303163883786589606933181412207089493407933746500538991405823985654152257883453383529497542434111810673873298384486950078151068942984102643361377830743068429040773224999098486521647726346120623934198479887025249697537904179397981740892569081991426348087246844267974229001498468901752979839063495112405448169267961359359437976564328147216323620202384347559011931439040078031316380439093335197516201771557843380149497507209369963479254801081742939033129492801336630493171600340375588388764444648990951223536785068377159231577943091546669044959852119699152544795531270581328973063468658998730768038801589416545331749313763000013473503456258562019112958820249835938377213722551962994745550444178912861038230482123939485566825715441403828081797986388013633357515965874106647943098505478066039635134242629574284575197995912960901401595022606703317095459035809788000633289931027010998294639361777901253904248412654954645274597771253416361996465220657582330150856821612243228577115457484769337886660941222240388793313870767722748361209379323651950937218924491322372281006169644785904444798492664962463889091773670078507231026330237323124928943199559490854158094106808416979989404065975002282708557543038741696527641715995113530932685820680634867181837864485061910122449245209744905450854022587313006797603232972411093566418923462552023639763945603566125042133336143481042230872569524859654519180042102139728436995341793484000891567723778547233593989900751676532690666501484567108979355674154893931828592118288252146805852368164399007431888291027980283547232396300498382044531096834751916291952414776784977945496941700634391652360065975282758930112498018025765079053684909281809731775927388565667571164300471276277105559534681286444235283739163428900682209660632106974356655434974026171059165971846543958952724315742350649695937446581180254499680174276362951978374611700244018469496487271800465261058970022440403481218790584883315160255424604950645439407918233596512149857213046821250874611051371036959643834953426701711378599351532994570537254675878528681650222313420511188611146937805227556490443612885071252916369961040975837566561150114252986292423633246813510480811214982454042303775791693272237769771848948602466926811795186561518579671964684028345817429473804085353810879912582507134720816064559657713983353922161967501766707033152891817790135403728620675920105314001705969160635982653840763228583997871694658136868120588339618067642022015732326004272693537671939999250113723064482421525312401111183037811643503283365584295268708922065459216746349995260957325216587467533874591656086754155623915532796316482431690897224907485791012500451105012006902150068728000805463975050247035346335569935076117174635498731108024024614419056723046803338785262771024397014295201691754796536620102327480058323332431828961789591050469221650424826406069886894473197588576155559104040782043534633115176867565787329686573849491012687180549688245581682986795917157439974002413065632780016278469441843391602927623975485569769988770288491102662294420428710159901592220427432773688223864784824808492943930472895125099689132214989037262313132111533128415046152598362817701781698425867967787931456577640063872006304848399907832138742318694884953256505928225541997757526467294242366448547941013247219466809721673513642581777805095678358608855509202704657368826652450866403136911228008617248156119971046181166692082450439816783210058854552181218505745149182509707013115798674771337181790213313442581051818239303365354679065833427213749593392362577784479431902548465499990340771548185208006676307333121854654319439484154688035602648924436638477155164639982857781013481197191560288734751676737742161485678458816505986332312492272187064662478214600896636305553570472221896910038113429272071794386068841926335151395086845051355141508301144271007525644853295637183932275996963274932754607562571878228029716684278149035469646818724768020351390704525180907426313037565942754466914798584696706928476604784669370342447483253707060493132147005290220895137815198748177390512544842746464699209024020389455158287773822399277908585660367380699524197087133655229176194936283714191481290768232086971779380449475736396920496867498991484470959944310937408985467873100989246770819430745376300845518293027163951834584580529158732645152340371734285727190431849814453595090729018295912988715863273292380441036326353855666768301714725174481805805928802959248192916448502548948943726664634670338427369128631944011864017995250593543908640293386298042640524817912988275538145592757794195508084370891888988305963366627202078235161169623553838511924235093138382255640290577173400247325200446149793298967971205701917351186774698211815427207455985325413467146072748739549969811458769027435662828804741678983172779505331008545964828515880715754156789947861745770882331090434536055463221879038579918260136344091431647580080206203364359490871801749368080331072072600720735684833042730000318365081836130081685320083329308808019184449054934229329758552765357710869672976685461485895547858751723691226320875303426641243526034265961952286940887796229926034350415256617883798500423468323975194062667065872849170548481180689200375523885711534673870897091524412069002847849792865495292845963072582166596402422705263678688136331134118527270971658526319931719343624906108727520431226159841911860601345263700400927449330337102024787968809262242905920636865974479612258672264156483104537132463471652103259824970992213016902861086567138088776495259778678024406543544494072936451150875333092418681384106081387546746060093427400588097435513980478886961699661629068231450165407658191630804526391899725891446808992160926424568049424045879012176140961976710909794465170476470645050259023504138328641663538887545584277527932853364750679540737603641058823813864908430851346229348968415533975345901374904630195782963721675310198384066553287042191330021372680256399028932774125014447229872640185763543948928698165363002024789380501181269715165187443487620235032456965953988845714717089873527315166466223633696078300523072607601355743856303192938939712162456565780838545744997219762446196468300436029239841982822719850528255331632816894983478878963951767318596984544214692392473043367871680815320609176680207478849052812924877361370119777822039807471479335849889801736140999101245333401689002441664484621015485464524656609664186028242073524032841794916484386717812181422673721769187486259181217236879020822636193123298460356428147803179006402009767947548698359612168333098935141616298022497724263571758089816923916545390441659105063265795717664830948555815884308920237427381369307589602693335003134415514817067543301570189561344561266626071553060301328144295991665793097093483720325079475102145434909256212779695771116100001908750601898708908484666824346603499612390327449601380037064808599582092384223928520401262581163828769914437250568782984615822694512384347033227228790220299850733990253308660077903549528577207676633358034277483622622861004289173793560080450511462187812954984515768433396198519631795683005090779099575442943126197599399625616702337174077499765211919664971871050607757975833098123683934655113619946460299217489950949163833616934989994961871192341634443135908188861445952926867220404900575795137928241413320219891824366806246521426842113326500409830435066128954162064557115435268671519974768900663017321203478196080296589210706313661162301562417671478034608876337493870694441545167452489654634123115039766378242677764176115938497405566350450536827391750449456123545796757488642290199509237583681365359443356959413008252171153361204681791433113846364396131570063702958828674553395563852954163852630510899679300091085359271519667002432896754293052443267623960608183303355666426879257366696532908575022551766381701352534419578882592532700632725496491136173654596919985126494934680033127375176480200870582226588417535091769083423492434554376076087083977848993344473776025820855806549203824515317830115597239802794133008659791829735395488225650373691973690148541607584245663711140609881161508220569708701552010674052886659645345387975784972984693811924485295120188532872373219397103419669535526773229141360283252928253090469217351147360506873272972900896360733431709990465215201073944129128923730578083519514794025526712748138262528651647495081508493790573120975940214932826696083839766627416235542288846343298416974944639109031508437223077176022253189736632143925149799858181562309130015718855827840654894956382821398500459007006797345303739640421000794428883941679141090513974769157503148456125450244863689899160851165186202781626189964722772320518011707702889465761561532834398372061734395518760073517706767415773405331711151406745062804074877340863878289255608775115482528818946892193785496422539549562275889488704875301319390240718324978407352095022634657048186410748475259795376360659842504096752617611461836983267422233041005604799454228624497735168411237889549984886252017932347265470908542464712898841081980456836803449646741360030766919747298932734405289437895818945232230485679129277226056731543813426274033623611763182052911193798050068555869795011433009140454263872637927036222470189106287224450942902804181074116762179428914117370379524307509343923850291330694445316905404400653146298120764145298010339434289410321213837203548793125210772818521121707267381260926483425438092207838668127901805990383054525711812910519248141446122490115032618346372616083191723925626785857070765822540291435370838950154827767414015599417732898171708238038734368395759052565287094790730762338577045790136759225570347055071079656156509021112810213955052542550356223432496277300356862136119338044803573862868899172676847052029352049001471138175028373330548353926802448704967281096994720527437298687704536587706682982897473150111562429085619136239766112271688747890653231863418871465635943256890020967480269645421903936816456586340567044889069393606575873090636601023703045540950400932046304508828688687943383073324575811868481676280694837793302856831291711973347306416870652762194431059099235993660601910846569889925675142436414636656014795472275936037429290250889312004621018907640161933088120327536400069671795699579454083072550021878090603825323470162241364675407957545740091812570430052816866449794628740638405333745391752998235359207956059297391829338127048660817249950971049469483043010520179205963160264914892732016407434506361426236450444850990422695460885678185819873364545582238753537852353626689422583820747996913727177474371667768432815804070349278945207052362973093728858251255455758925302522828583274418619843265595227214031149323822001028800895159379069183623160492661272700577265476551870998587519356477466302847952037488457437749544551808409884370137958915473495010388180734166089025447344583827237737164391096777484820172791030267009804885593574721043113100524815139249727842411708364596975798128651549773813033008212181329372882186692908420550100946021777048462875849901692036650638267534077444068150319840735471545245593475507188619834781730577908779323970602467412586462009832217849940903505304359731397573656294885939747236695399712719406029899043688408624918616383292976761018406497015190945340822114588034618852242934744242855821157814550442933195083942435061373516662159397669116096848603301989406137972061405579591621755383059656615405176603383889003843229252709009672993541484585078626906680074064892160534696740367578451856670707522785249363419463740188158639887132837974316339933789581410389434148669641924930019593404467317751205182668202623563559673099088831877603811745937982444190996443966409467806223118106234859969286157972001700715423804027688004489750760958262898318173613111572230973391836349710794656595087723934602880817896844721615058176711572181826066013476787111991499576228254542869013867936181625301695946672325324326000889854077536444044345591969991573175936871384324228351283607318773451650803938972815104405428745336641669737616782557672118729112132623428154028898690376791309353338634798351042088686244462420878479659168198720926180664846085335966560969274360122310032590294142487495205657418062427418837103957449556400865970726132304361887642785446001863898605076083751241138838253969035495663606846426528462075283831318838327218216599782613010984342553645161902771265770584241828676852275501775164139348083242003839120369332046802133289209771158510402732341352757022368543021789853272602596077950603471405194404739220766383581730637005446469718979981790254771256832529694176991199308334714623306155604819444814469189309334776003023580302027074813140995898515089695960269672284807495333551024537374793314521956122429653015167543329048942709246599103923404856290907274606690912578351291701128781545010291364030882776143107862437610719092538129303253647183396887110521775602816458052416116328764584762740349821059450920070144780502183919444121079347502020927415173739290398999688837102552962626843154092650060459727774300919991244474548816239841081596908144622516998651314223486233795040502380771998909219207888486977260854218127498897239219418258235192902830924934172187621825033112728434877361784110120176790294139910464210225911274950269348179874205038655836117208928101321148186432196009789456586815451475921967283302953961510679496612516364967637821008380558539769849922835735566991605918611093005773561540392055111894116652390102128265105948462803698080668662749017376987627965300839764893280455249948898668822035511142657633931416028812801198543693828033932478969389561518424060414702661591322324471096669815124268339354021316167941362384452236222980685732689401909282699110251390060615349753915049864160422281225257718525860372024374063696694310141798515730405180326155595520882763499018401293429034572952449660323848108865277383308887529485335154043753799023581282535321924267598347673026314075050077461569128523372764593622730517841551351656632116302718734716612153839201648508816440015832519169585103378250679210511942768006039479842577072307251831837437084121089644707161325060930957433788678641546723105431708466204980619595695059700571703923264888812606446728706322158673629324116732192257609324521462758475065310795778621637840584071044946887963532959503252431695314087508190937508244158959173977102446064141451712262945127879221760305939970224960824652560453741849832951914578032336648538985735737789095928128304816241001529101522283548782588233352139916404684788400007891860541324919752908276264660388487494298502047271531140696527972904755939516913602255352820012138164367798507784812580415796152025267551558375395383825970661551223766428444805925015724632117322704698637483215455123544393590690648177182774080571312877030227361862496991523058969271467536330815938958504514840942093166472806040645570616624559350110548286317767781631043554390564958382961214585628694531451365414444791783289581538488752405108237499041779301973612186692336135878954558024783115387469712167192697877951591264809838508803852592985747226705467207584196554623005058402989534854571301653549890311496481944666666104664600695825421806382302127629811980981200725978545453394523471995591033928949824016738189865823409591469740007922561022696138801123618929743908436735443539451419607042626460850240216218583188759230839755302964708277089655202351109715685200607856567826342356912510741280016135972624305802344959135901995063859566098453399408604142053474056745916272509728740517600989864421162080930429683410260870809266823782607340828892515355164294965662705692428704658433539104127466065675397736372493171903766796175586344359702227547426108071046354484124058799474858410637025740331104429970075028681748406274159471525560277982889148757501923226885799466768559778015196685263844421520314354545598691384869167844402398240056351123932893492337169401489153396867849383283630320042749707865013781333615960825966039755406294022879446575911722824808985160027214094410016094577627158130083707207699821904191398008642353678682996790614057090834465853277603497437817210259534337378850031147836376368899916510428483500418456937203491135691932096540130613683750092660576213043315051077437582447830326981073534107399766295694509967348153483767081232622709099273291613405831507465650657222200885276286015214719334965341643958438990370608052319685256734867228531073903681111175443654837815640230992549488120858069722299321451212255296337018667341276505776116421919719544261830567042156736003713935780936153499500333566388550394628789992266254671045814529378160858048290714363143853214889567862247192430139212822504067480177231746944783425845136034910264333009197804175671081231340751155018058329597400829883018338498939800602552056318884209287623172159612073367451639364927273303987792968870940736816723787112608867888542885650077103527945958259617340112952187466872759165324567207398661090988711006369074202500559735823814927632759366135360027474199426642011815916380239562261562803888468638768755150365458907531834721383022487145834845741855302415056910503021010421328567703005132832127057294645225136965339262326136727484113747759688690265836459571954796721334438727109440945643553019793769953910109422983693638076448757128907157146986338522269845920866983300800863904760167315552961033741342997138754065982329399436643889729217541869160183277213034120946913050818790114362682640882529008438026365119136287411840831288115889129493523630034131219492562757471469240593040146384056393012222686294864600640387151805147644474863798655151523133889289129783060018826846522148189166497189749404529981490580560415836330639660281251387897270095629932599053548756856133549752538970229674922582457292616335292239296845643913598630733966535851421182757782599234788246701639627780771019801262678375919911245097594673591527012250454315523013420331702181316754351627410743757489021699445659338791893153610533792908690094448282246660832137619839031392318033491578746975214336196454891065308147381407181060901566143569067344555505233155151631239046533742482014139835844186250420240515471829071133800084105379126986798126248009607738304810769339369562381742380585652034658814619509688967575355163541477536926789761324410891359923778697994290664728644116030497808403888635224897910064637209819484249128330858670160726873602699943756608938882570568935063540966583946720958610238472012184495796481831580962507093534190475554680168010713365154852539288527084165484242094859340692643162898610422291611197534379149350968379970399851174292910108983205005083166016572217525590924488524148689026665600574551460987671487882466971276363674987924080606582355193413743186746699278838355018929290688526084375294406497095911828977187598276184260915307089166372917582477534534110036956843927204847071548629981539405983153895647129422557806278225276596385716948353689554508687760737891191442256744242102128349443985287404592079484897901780036088592273451347746788252102174181485685429956373447480293503838314614967956205097912403617630161744886634128521902652216412386730838917912541375496373797765924223278875214982708682687026016475771427710209989034322140864827154422678069023533343971259402024546846160582470211369677219811829749581353208076038987088659753219078780772896858515166663511772890563152952788047051676095042492269677597561818884463951562741730473337186433406187523535589377985296064491629182903776424735221536445170053235401877101687547319033658571138966807805317049574807155148565944717646901576668129841369978940496532478323352254369970487399368191958642599125892649824849725347471301691740121927799449297236943660522128505712832101756728115502862928650360733485483757917614413599770007637165612805378684047083175313376323834390947017626007084206267299788522333189475242526873538766659727156100348860866713250899688635586093076801913385380539384074898304261134559794173391781611437030045885414565746176866475936907657962130773459857580123402627092867363985135336289928277577770288627915153740558638153452768874163185398101150049295002317691869915150757982369951833000262599131428663084693871772498324969853285134503290333584834256488430768837989996298759990803179927851355469685886814687211620503586311505597729344817371457162307471006488509293343731109317914702923284406682090553970775756666515630407669252346124583288591294541812444151528182193893284954484728537387207644870626437097242850286194519725802280444140224232766048635435367719436740703574375716907339749803783212774381382574831074486518182360378227591032120614249865286954229898379594822227643903757996946788964633072162819972266585362791170703626097800422852999242448532486595500727438733939093023540439404542839181693554668118902032043106039834281335192152147589387023312949609009427490759489334458071727343994857283652717775434357292450016048869461320119721231633963853696556760154883169302394731362697570676928691417388581662763491546559248458063205165215498263229062700298975726074110879366407726947217455908386199139035964695732036569452636869983202630309533213405152201111386344271856900534426769781866805474832960862072904576705859735629678378660913605910581331934298981971444978141118883560351322282302972715274084953863755453629868069833399366552292384088132097798926565758409951054195675723430526280879702784578844847375498458493282165919318612797605813378636026572188045117777855010445646088449858740153218290285655637522923574213311613442049441361241239572408286927016611196522893004361421003818546322631183240483418505355267235682879159337341011509933147183910885491801688313098492438013138741693336427973179854561661662362937528939352668209692275768142463586843666720641054110457409472702329780449697445865425243084576907044027510457846373401115309377888603680951821423714361976128499614190979068053766003884870112793093939565906917722931857059755888662393731440578975616388263373303269273839688622919187499486103645074894584868123392227707954107049058106886510234322487977542227063126991986077546564385948582094546640533373031267412080497661846902121505590755932605154579908292555400148984317992550758574687481267977305568573888212261158695437730453407732502203886680651476741739316040537095851373023430290098443005619350124153607259562551044845404636113200488369265705843721583507498822761552644796248019967797329968231195996072332919657165540855394149389605805779198946075684437383817479263323355124343325698239445315392411853153169655215887394938650653486856708903786653207369819781122534164106734579474107981458381995013701976048509333162569566958224374457290997572262666425551535452388206662019166929851273863385574485844945915830362873009504984678795706560962272815921765729699596252599866707514555334772637719467433092284675962078842528303400432193233089751524083737201659377607553077304497881363043657786001968371978326191276666752189962881248792292954168745784187649810125762462400535720393835762747537177028401214365483049476740907868483859819522130355387823391158728445312761206803359896092013004303237063436787784358527849667649103259141260225712164136951723160376245794099308533847593842974513213263041385180925865327465140677165590044738993214819551776130302473855755999206116647413492523406657579445850387479236019982015094357281672297069276428684537048769452555913087190053981062152007942499768572324603847425558716750130265943503226802260345961420968155270117409387458444309799694319582946308179897309718456805639337550651107998584878513572024779103616005544989799584077586792057208362625253874803925031974999795140203166111936299677598754025077450504473738764994764361095527863868412947828836170933473857875805293683479976699204809462508347696535212905671352800031731787403501764889689953412597816968518570476187151688102114314542283400109869597580623274439488512720109947953209281939972209121860856751437002407184719369033751617424105932000860711320133158337841905483498760684666416479503378252925800069898589331365506362143577321110146895334813033932221411391877461769952879353825898850594330408016923355352187491545340265549451089744849938173919014249276135054084496011161272422924006161567723527394717482691743118638689748550348719780853907748452684854150996602422817740305635202937207658728284187729426242964092490567271017170895875345244951225971561994526502135414559299450418843841561163253603476829803730929053599521050668132782726792240446400960945710821377917889726819499263999932462856996791268153008306506816399736444665399506574275978771266841109254085597657344272950050034028138158829400864914130822459049029459993499714073530402871104480602724581934539772119490090900221656538336100568710575260804192646713991108432758451249423947128506671586353981572282856524346326718171428858066069939542987319066939851792033497692005780091776416047689067992967722356353927739506961872155752867866667713417287401823268985452652496156899956570962306555169898401544338960977907654764487351713046266671514712352830826428669697836713901649220847077822042439255967819645138824185840728544325473999293921868478271832741280123176413038287623163582317927592696624164485169622036090589561031807591438374140150719387245606619237666253030036466607220003416851022861504803247891019884786502789216091098071846820473723309616193575332145550665960698752968176342549253607799761436756468243152596083749859182798884884865392757113003719544475743930117031766503460160156326842344602271853936609984015429267361891617333349441306026957685094457810256368082732342280615037896527154614915661021870824812742337581847441246473567788281353985714229821903867930171647322094355672797322384181818391896364302726599764449588484421192805010309706263805089035045514969170059323366658299469409122512503461214242245224891509386439151172525313368065357570175396842292039364361669452716860938778723223408495565679251890158126693470372553454056391954579199584843235670810062654349190968764605025631305963693530619548732981801663320592965502469140631129532482912224661978404238833026626741594991157103035087178372146285178827436869203809917606990757648923584377185982901531454066482517380775517152676851445334174588007469477125684674694701047011839414920210535780571799465654062712874953813194576387951189563725320061305230458169827160481104877055785234163078274599170179920288190566842889203749253404422038421966790639347893591514485471547610387625605952472549262216534918841698247639608852756676322395133459520661209196908924704950970009054992168967491689331435146197526847802213795922159314569537679768475726307135857531155322578272741790659161530792248595602386853142342979028335695997795380843380659644762048527921406200621501251326360844224208621417313235442435217481553286970400195050698498440169702904887018797150377725700967836241555046702194668444243742316352638395434993129477064384940441466142844657043896640077622047946211110095302634194968257281230191175458884659207707203263679334879259493768218740739502408696911154261440659743679693742352941686169244132037510975651966001990518612152625071998460190657793262130175867269329581385988476148011249602087985304997444669834148279231462844208590747354322491740427335799514483205872816972878187787469765861607547268476926051293105172599039668490547368672365821698584955319493020520433237175647972686788585281551219061031669425752848363984803848588699356399451811955174949274795282072613656506234363191831918120366384794268451989642924414568232749354784209036335606096071317300599444081563977631135391199250801359630200405250685654162476905084768869504960989119690174451492212239702329989982534748436330422400858445140353269558793603863932484899623564637420009064448875462720707250602524776246653557708920753445295404768715248886962100596178211945557804363797900328312866299356262723755984854438362505928103223498835743375778219866382737162064785197136751229193866516501022669638002362132067439735885779147711138089357646491078682940855879701994094920970216512803003186649787622209442789633686292913922189309170092853759397668884453925472439675161926752426240431954555714953802694964524485329437271833925652981964038059715844679128528685157855450851351607388241982636395352793763748407455400719344844068161295279570257091615979291048632102685122550239835404247453646140433550708123388158038021706601217154048053940857959353711726740765558584337331530311713799008789975069505569679321835594421442962970749984899181426036052234754350014846147981921303079174779011890458350749530488059628161660213067029161797902420025704703937366021936795759992928165849822736719269613791710847662393481099193716304693225480491069657818512183780534317456866273840123720589881415521162997107785090460639336303624254749020785150481768790745520652709063178189994171835731766572830561518484915167885488967805501389846188795573333483287864814580184013079709773597063787143067271861953281234147926328337470692934458545438469866890460108247902069959500292110488276508920753644347777384586024113223872274909023291632080204753387550221029031120683074256840165008379327678137139869677569099342569897681206654956028356158872603476581700859226384697232691843251640693903767803078231078083819957975003597457468001258178030224205140761427023035713981117139293044217413509495621953484270026858829884137131096551392408838782053085006606737219193394601408537623475959361612495094676368480104506155048929994302356419409327322727728131216479391463021488444683046131022973968350774518206074556700405851995749460665627654954087491521848841024160040915975857344553082129126533937125411737123572028784234974036544971498123434599456588167759537081744497138383567522454534054022938624994951851716055241919373768678754631708260862963752097166659221590501558202438495994250991745246594090908853330891724175567323427846820660625137185548847055998176586978005170705424631974474083265368130991282017591798552918177561444138424851175141397935445832344324854802544586538520314708970226891415083417796829750582066883238269827936635889361268800963766770563412815143922171865236998404999560699817290987379084630251094504242563842149708263033693876169316638422878887484235903805580479272426049739507982009204230577545935490600795517775059125886428630443689885884253067821148852576095522027998536171918322204846350917479138995905942961703558649690678531752240029704677143395471360270178907102398024208360378858681064395225430665333701289320934079357218165789326510276163648964186935968032257424490389854576829634351587476525543433611207279573907422506681810738292336131672842657392470082067866179630671472088642400838057321943083488105720692610925133965533723534605421037133107731760250255457168836208150493032983847770529222645042042615897154573765164105437396428361576233330513206533916498136454990998015459116832504856638169641423914957658601823204954033266014924228239230195135756865166523801961837259930521686498568613482348222902857771552757227206333508408060359246808157067986620771979180698547788081194514578252258934498141837638355963619488970133677080481668372839800689593690452094263606673874579894012814724464471588089181693319647787013411045415795080106233719918373387230770039635347287964886472773606323190002327972695087742963288103040920192445383020426253730255068881713656349423337982233898552913892580430794014759929850556111788436167351030230293035932544272755246801484108513328078668815077959121713401683511250570529890063969282356737017353339090189725970130335757730181719196099100089936036037901146630736143635690715671841133856558334256047626992856135086185464551604487484382970608934504805946642257525782964971964441226209545853808221306164116755255997212915708424756881946182946112646155058956778597973596440132923844409927666959298730607921629567668376715441617468610276029777942604444460005285125443046225236159678962966931911199791195700827719182959970007347759754362971698874952516421775787991988772849403619964256177618713908947309478337689081197144398968919891654067660928456523750287269650248082728766155619709305733527920943108350876195951296314564326660062146698508135889998938986113060897926733750214771112643004145428029948763021552705621764624262512848645856172896778162324921932098381251208558812388319526537374898357204809262666140296377475574591069565073403072160546040952279286101182138024865491380247138000696550834869222610963077688089744436716539820669656477630593014984304420269753665737553537749024767682436910194722790782967686696359066432851976653265328364468236012320045553351512132394936655357296532738267492078010146334545802755419487717162955786074313984381075363231065729933924299855775054787971659236300417844315404929376066660965377895183831660659067939224739850035428889610466707170567074295297164617022136897372700755836096210197687315496688833440779473414895744669261843896957442328048441081783835134019104085377885990013302937687124825476153018547324728016299783963542252672599160744555134776880638976143633310970208509988853693356417308089582236326825923629449286585200053325510380829283663401111243283739645316874868774615503609878976524398096554864973041034670415679709120853930316836240326038609964823717949188450373116933184395865928307164857203444731329018482912700991667707473386731492425059231043705566142534640365129848678123077659614960884734313253834130308974401924090011732913461802825064462041889148348766069861258514741635304766555337277407725001673679943718321409419514520583940549231385851119202813731932593460145881631773083536059196569429521813020869032680860002869613922324135089991083522832492154652146792690949112501147864744063953027260904637485532819434763502908935708137889017746345654679605630732896084367080420883423309718451127015144304400171790341744271771142980067388767518479481329384400929083071774131340221040700206460307964153662704881407234407831496544085366162684574053431904005703862608554174738612875737664616718014084118451994922458592901347035754327557984683633326695820118962687552928212883930012827713301637746635952542970076112427652523815664439029526713994669565722783495762460216437573158730791533639804778664348965230332537864733560246201443431161603241058928300732834474104312061969206223906705352400818980747747171542037692909030670182069114824198748907990870211062759257746232483226197271839059963871497732700264985514434630584850433113201450403067654618801120901832777983305446718597446914661121711406058826315210427628942859285930566285072816620086386142695900009314669266993527354684567218245130698836184999023053426887658563902262653537482121901736604200323538432443605738864880487084113006345493394789937438675032666428717382641848542762924497071260558884919663106386626342144206093685779313184111694588098403074939994344222621374715895604776124458947689157232223038872645269169171224883609538369073193543457768843151218823023096834349325639581790345811795454759930687701739113565601437166830098212061362745490085525797082191033317267910294201830377097997477154919531050196995588398157236370035399866174794289596150762740960064261193355954324753989302000408094967986705675174117344363798627802011576789765883248629617416215471813371461685547686702906629390106007747564846387634413057410426156389272329616248697401766663976593502140673787303190333118873347464198679021750383570268233283526475333338312512718702511105940615984432811923200335330619610364569943318006991962863261117660186427441264708910670980954872371126303992404929748396727107562470982647731140048288715143914435168870818778815442542512724270104645838274818829328692542092089865445724514106242676223237322708405208014547000334412749893063183835261350147088561016721203165350589108482204445697122476069316569769687143193955930050351474723042539099215020893548747953468137180800137745966129389852533345264614962989691873533699397512454015684201240139226000893216006527746983338225680466192178432311863096949941544957680719490084014339273413806684540159746870948240609165580737049283772233036554772456177102148875876140439014414653547562635864509248526676516455725125889915915147737012209067336143623820328751226417922547611449648974203682523515623623668650414011526832735209699288916718370266750681275751194633669930221279745256032582012835740547637488812124403600717007549991826433830629538718155334884403912373418111395447796571452572052613444111017013220841210176740187765491800445636561691528641161352989638075948695009680963114850719025628137683866290518836540398111244987189078557960313347991726127035831487035106323725276614197092410214199152102037866778777148430597249013012919358288341183804131724586344338279333750069014775975967144688708130172624455253602514060995310499547653851714877890284442767091816705613074111973546890760659166884082890305962541743415976827529216699000683552767954348455195034294650912638287421357369410781722810927977842220988841041405431561298029785563462387048456934541327260213855656336991633675443396656953609723437409280408723833679166545711206218419957556458663661896847490260031866149175043827712773901371809627204194778900684311494863222005555906789043657080766921043752395520778660848510122713646535543454529548183732354551456331879397991248153560062815378736510447404049437148773759764446071858097522789381559749067035436397639087982241110950107021616421158468991662057149238506815786818328514383997359319710406179548640125728927810719381147743927650219153020319330960336952214931593368718054804442770712507595823683319814568836665057603723504054124619320851176183944885719383119221599377342144881978559842762862901546152192419095008621788204321535591354719016425086120598617159383040217612217312813688954230466306530745505178815745435035125732723405273164969795310340646223297133077284196527621281877542494660871018191816958788675108201555367338566110179179485550844080613008489312143573302506692417702852114705672104119057209431324941672044643551877003603667856746638262120512139724746351798989169138006686423963608723022053365228230430038605413097086681438530648829330883375209920344164050848631485815284219367963427735417743175527620418675597300948325022329254882302180945715701059551289150857906289614523177874911973673407511230978053109566262791415152043278265142158244813162561360125907053311904998343078412677182059660551367542757818184319421341222038242804625661424536687476297823567535609873363208466781019460717569110417056477876554143584628398128268136004141080550068171899211457075873770404446377112499321657136504669660118762078070131135472909645929656641660043395522090654769877884886272477462786129518005912024105205050986326975936204658035128129403510220836677017225454115266911658332316542777496156502300161668759417660935026199814621285775302555772251661920674295556648632550594391250702858367163524257056777330492380846982493494434163452447220098628425322187732779373587080493579877718749071572521622170505093605949953534991230884327942572535125140672005068685344004196050169740481933252654577071488163963634373820967598498252731904999496587296129749241855123354006544466219360843802585504496858359580652306114404691204711854387620295975218886698082689209559713108677974127500185561221396334590160154392550638533971521795177090766424630373249589112527475681521341181505447021366355749455314285727182008460961908189316542576219035691194738845284041439734133011298140542645561412138023140610513531877540549953504887476342971438409807296587623991624526830528516119464475543925671033868925667328747209537828096100961304795449796568987443435269005574842457320927694424025517754695795670985967820818159948614792687447806394765748703875929914690599241841283726165256171115463154502868473107569150020412506000839341967677682951881793383771596895285419706900172515980594925509425645435474473105560654736151010887586651027324815361838907367065080103407573104392649346524580672956233662758422308141856967541483924823980268361953758853695312419977148545412002327560439935414723379755316357691287737825660228163776217361118687911610131794564382222946582959477078522150601254732715237545888710288488313359906954998584707869550932867913151336004517684983803522236095072919884879465486593962051480153513270104488831189196755052831998469461999741106958851360838988697684387383155529559728683524067677209894409220664294690718291148477405722602059720537201517006089850597038390584297299360182715434162934127432695850248465647618150052636807812454172346832240872185785247771162162169058224661473447202168233003485812296556519123410938094090309113342612521652551436061295160066919196660915574259612333100618351566270862772557521099657144789704560189018121974217408437109264666718220161255899572225958764556564416772091724866930495636991906229717121249320974194563602811598201323766404828779735308566238128600041249749665505413910822147926809098755777082735119192618524466645355803602834814687500669896460344476999198799685863008099863187041440859732045981393882573234384873115273906570396773991022993161435187821518950372201739368582192109226589037164191887487427654285429879906549185668140797444015226271897134104779788886013519637558095925486205953619329021471408913744216489515022452027553391056256804575599811158304641861248176786223260216486573836609743802402890437054262666349075312058054197655350959433550372123148294228060420994813413745854836849759575651759920917425712914631859280475659123042940846176016130653394450632840626711204158626962112634750755335807872957835365459046440675511424994662250146459230484028624867398673204833875358863408542861622578022534609797886906742584918101165751916769577278302663419916104270372867503708063542298082069721586104370631546907808208902695596282297807751538973503967063575853090313661509756714363595267866352653335154925964130333925133715694731025207117606768945238321561564159116434748686635202557853468117932220333408574599212007640226813279664245518009623559656534285931706873583674239027947179700250237468217121610928789132247610325344793616606420899260344492070691718307948412112672294084624056957505006454831825761480492866614229839590658855222901848476007789646272468727234998373686443086805193124534681419041628494146349939622309865338833669492084923813668116292519228877192668735272922816608823967440450913608311915388140884926104529061268116999094647452318920690087888565386538200766485788420621609685232865015348970815485483770588058705021846137999589865071299056475311290849384142374820838032007581301211673610604689651055501712981271334910991517142532348227080170560766414092857482619885942342274727870376962467383159000501684722214291872548048701037633868234611824456466155507698367285045408485882359531441183179032552338228653564493121275405951416512815406896785026110499752237796920251752427793462733593564548546529257268104907086168983389456398737486349263366608125007650464020979353248756655612039651310451313731709407653011089178370929311388722079463159368174173075851536534821202984570625367424657124872012038599134418234849447284652685198205177609137962902836319299657545991793635862265627852937382273587313814848653236437774170736676531152414634254293716187952287981924735212240752033336735980482566810766279191872017543583795280129523896447366808914424629307668543197294554797305476869101101316500042651700213802905541170304994715580637656100576192750009484243924963072216250901117327035933256031308953919308670783166342465020632130505204129494213520146786650258094810968873725530192422225016169108916551653681313060900376332522954029483424942068128998921819625017406586173003915171080799547888257915582158731824191786801130032991701448508411413454507525172080181737481141416247819416492670706046261648563055435980488886159214807052922043200094769918712237042395186440314131647956688768902772022848415899769806395056060754016212500314781158125958053406259166355773632526251550615451367924713157141883403665495628426821790958572716225478268341684895144765303988078983627166649606704760948135500769062015496955742575532493279710731927852415618890074823510160461423783238091627878281940353471814104547806602693929938503673500038243691621587008245425387044584731028283191687138542678712297291828833239823598059393253993093210065375451803718950086404597732453243637769026164526051582249116122941263947869972039723761228756957474177183983650291642778151705869780677521328390458738038087883579809038481008466536413889928804839317539439513228801206997784694094129718146641031879321112737229196570492414925768873600221496404986399491769830820558095451259933746244699340985599093747159968030086129027936911371914062761662624504573194046605233474074281367605602386766844597588093159967466442239595543640934297247560641641655638232854218111177188877963822275849530811474424723532843219555196765794971910726729216114562644282514416100077140195747314238221554581750673883547474591972695290117482315364592470741913754884108629028942202821673646077873514946273375349891123471200158693897284712662514983295228209815712224735241605330711952368870583299852884234482278094558661094248738653499336049513342282689576278605885379248653472621897509420902223982308271257570326500526670438539700719302765952672158813862659387595728571302298504686337182994865463694095975977394207414383709615444908708420911614819690849585582900270325935359677316348844890377509837999747416305088915619852976875381167153754248569092774081159215613137251440663360869624329366178507550792153024091075037281263897025909127774572342596665168982442873553363741324652138159484210508483009582113815544146089313280008518697764728507226924248289096690443956407371033472956415353668703020207936720659830504044337754939349049493892893126439512606575470941050053582662214560923409018185534792277291119180715722964412966996682052355937048828317796110029768301702212836775244126292208870317695786803187151153318980395569247883744925385640694017902384573668535633618149365113033232981958567442791063486459914902391781177314650277992962054065007492501432238401886929814147250354573140896762238890284704638158226296151662324648479629698083194144054074183202570794012342207608130486064666348114366943792080536262092514170579585151468986330466556941117776207055071638291709520868865905687077300360429168410091230683757548571801165602344582386858949310532090726501283889585767321342198360382403043771566562734885965109705135641953951284532067499704512569808494568876741848645194560711133318845720305139205730888524424596993104948509478006743798799833472751720774543452575313349814167547136222178873840336339427322940084725974383799352116515664435208185551280157143260651095919574646572765572317189343992298772826385846562601657973900891509443377175463174879623620591464505284742483251300013577803766608723283806785868373674516383769173917669084312241932325926114969934018915868432965365831296636429561901487774905197216355597076063470384218256158982966851135697959456237384255819000333319273111698583559633796600034521910984394822241831963990577171289654766040153157645721098004477301641875352193953237721814213868442321202223714752450444072078753594100210195626163146651765443103350830287993760251422574263940914399613773706910067327759932248042264078151269037012638394570326884852858578120164630168615539640079812387717470846659262261043804189440367983953702113172135583674320687694277770251291565002419762485641807074255836331478303035019782266779044436157035928351460003160675231583910770135003720882590019610939158679186605159236460878997357047411054435669346684990940975133856294298921147807207736143328650996219316271870955986415457603004856231713907620499578807163665436874596985197015652216317407806356490473189056923005181661146581444457581574547458809151555797009579320911911350673308337589060407020012807638554616325294851682218382144770243022693852252528357603339420263847135217265133582107880005682940651093244638721667957662858513206847709110332212102495224825915398594928768669296508654710881242928597650335868355691735781384053919406415416429346320832899743404701172000421173265720613022173857270512754786731276615994872203174422117050173650996710787500788560117272358747410456942546400656378485406705166306500021705648325268759902786557904234157880282175138707664997962921681270066377576589982685781074921404152870040732484778615524519137111092353336559629189910374355820598384728959043582002572085535860743024205674956063540002377757973946846769092214081369237894811752741160691213024851705120336643864119311078328841075850192211778779983468494502362248983061492263557880552400253318513124766344263138070741799683626449351368454339568014943947075717971333277303304829204094092014495413426562083962963033768425993123672588843920073390810807000286559829437140474798206919367100241465902737343054899389910761502293275609318393642127148879602529632709829573007003628937072779613357050568392064677105187121065955388058178469108149871716172247594894025470818977904177257359548204338809835216618423324538270560912315732082199404563655460017100240004228927867554534137620889482797301710657305400752759322018938754313939009919910545120268276907146783347907355703462987895908623221425442792280559857322801411431939244481711848160972654133451898538827984171516984231127569562441835135493752157431923654669289552876134697563280711239280604657759643746163270212581009542523376223149391841890598246579840605668631420606754622356066597322177126810466511330383215807976869118944795731993289093517693450862603745888939394789067556443298835561886099934838309346568975470727309698602409172698739639344689439822837862474261045120704649304863370811217685772879716849607481359170215535427105516033678119308149508244827438072706984797543520624196178408417759968567004435914113952269237173216827101446558007645777245056419825627519062149712443914516228487576003632093535817407213583260639312469085947647795010399329531716661359755725997832480788209775617428044017962842142796004568167100452452686633042418760907151155253237850814145370446029096594232616336375761871544708846948341990615273068637529261239659435375965497387591323543892423545197210540690219581843649519941069549119971217237660925284421898654975457225226168056524740663480189456262031777102890666887690516910066488799170769286497277358745897987091561972178934870211294793322633189106313743172016663709231830409175783897152468651833834220539138559321912671961214009134833614916617471585074719423409537241184451274733053356155912241808882305287427075885477459187863916704534682153722472697150031516650952316591054765302658022676992739150851919416602409732230133246045752379851250833158910137115082590574563486337420358005063990653432730731222300333886003257701638982517284851048886711570632356774789650681233733169834576968251623274211394119033254330051511615556708215480503308705547365456941643108245408469378453606994907395170055281956613433377090379143510688899833409772555109158149592517243874877460161584637996386608535601714373547012430483834076983460040349173826059653620353523182508757237735182708623477099074648142093549465231376906934065026880105551810051054556653079883083113275745725928078374657925465551115760626366637095670956626333427070597087834351903451317895140645248769515515357515573803774098518019505075851706368590320605443955068039345300582813032704169804780617820203412396657048938994130958060665734308953239683138491696788978558375587969140666873984916398675876045539043376044642667848685529566309790440473420335286797434694968150653341795637167148306990015099772258483277951797346482756788057988985340335665436185049346186293986324450598297766248391050424806830141535212825254508592722198009011621480008904132836660278892621897985913321741737242134742385415285384865088079945379418587535970881188462475488240760951197622267098833067746087704393209343300811965988795938761406375954014055453677384275410283286006063205709162388873495830704208387699631242948888188651889600272255036841704054545496371212943451107370724785797360883565678626735784439975768513974959647010056239119392876962526159725500654246328121826910018792013236863349667536941280641481364608644393215984605352856365263316928501526525749745466208428163319223902459572751157603121255000665665969305172751991059253474633032591371194939859502962324973068201319069723472237675486719585186253328691742841427689969933597049834216576845183434311313349248698843805769033243902931116532768039761452656457302523874091013233834786497127299928612129195425211119188979247730858288579164215304678436611896061245072244014492027623048273638796900420150493338526294856000325127109222279999994084537270191876402418888225064730530410429909464920372764069755637223746671398319358810092946686955607213909448734326419434357060054940964821306463962028269491874009509742246378057238726013847638883063887497584176946508076984872328710306370014077625946290376858288365340059074254235269640033465688130575100189379638697352183484577924112398533325838220451463758069851334353604776220175134335569451554416944431702452085374552402710578434649846276243140127025889841621876324592154106794453519381707991100353181999803064553293171086801673256801472857654485980090516935694439788324013292874108926366885736551029683822518919730812614273714188109642021541606974033876890611205904929828955262060451824342959153961709033469408322719361193802486790304127789294859803413206588850717195283866011906732438994940519875175863592611766338320147116682965990917879806197415619450380503418956285007245930170309464165652966252031935737302203484946339426957173706299225089242945660855960728302403564742938941736394572714597600745872774483079782282557600070049151407883287238069174939120880407474881405444217113777148519596748297847380391314233880156487294706150178940071529102121597360053247732935749227790074208322779364923033127906369362439971768552770456622453190791561194834198401739211928822262529561814124426406962018953665914694963040012886365143827047282719006233442518961091592931228277159225788717438102746658321503438626336833510120169234214206554391885999187376917184487612037493048855906691258248552133552227295860016765030033587570596110179118728020033587189973150361820543120011670727621201966339816994870557382290325112161827791936381508945545753148200984699045896799995133025497386635380521573129862388997462748415292039657203870016707890994232381845795666373230236570750207156590236052514580124057655585384439965864863476111909469067309129227499909872805858189942157031679776488569631442573306463458082688834016190309587049025690832135958530958139738316147587795694024272576032401405007786027831245470795203671236518091903311204294757913080124240761339477187284000172560070414839907159052194668870270884052230413012393584778147255161260039557322247276016033554530614523480523630461836619576261996878891134890881765318411973211793966597980729098324126669092648366391101902266392805848229383704049820315672571864068445077947123504624011260747418629128498121498889937775139687449673410664798339460830744650652098102492820655120556373062342212479708562276373517551019553386233392090528925305773684556239265248547926816718950054283100899872434661522910847449528368535575543720105522963632657668208357435795282528997946427353938188895788896031123248611984244337369485434273368450462515967851864109628856685476963727879836160154859520873094803080520669494651637325280251499765795431034862253243712112205094277660061075398160310352480503887134670322619785855178213672573595678260335301505797901128117313902290692279197679822987983875708255148600277148973145153464617629803493005408971168907372428432656839036466356127233422354575566075490807140016641120945347513398732620385371668977415641223320369538529376415475911054232387653326017257446724872246828709142354929757881191286193813612467307896859169982298810493984148408203667620183326806090264347967542885385708677152963084046316109458861676610844552634877876286149557710523972189092156575068242899864294645625067228548617064439452091570400938202056884870985378287783188289914525915259118141465684316522644608233086297975767824960285030782226549689201008760472864586804146659945951494401817353421868093456694377152941765470308680871585259527402014828091569824600855519673347871346534437609410081922858474880788071606460593524303527241135867719267597466556698617472370834004435475647466602758329915610099506457066402046290139377552338549926413862429627423466173036038593838635913432132387007049034067209930823531791314860024210631892915200779999472520642389540132382918156169928752645606715962954369432888222975954298847650943175613607106972188361743897932836424680536146143571033896933174596112251240518445897539226076544005116802684987468819592421791718770321338803365059211493582266461432403599278521421306659561688507251447071252373873536692045044911175659451340517937711298549577254763415296887335230793335932413090802907658350126688533609397898500177633284252876674675366344213854703088103399059231608180510273878093943476762286040037101282437257511250010226510245888707734643765660434002890004153918116217407051427809874293885781605402327917850302426662557114862070532681265365494343930047045672160687505896652911683370529612010827967935501540858802229783156441774713850590060591622342270427185498314041630413338649857349264269755890812031550691239628126716471839053854056283610297572297010040177684521119667689672234864309915241609283848340262919409038204763013463515967476675461903821718932686082805978738964268409167934627685634091327554704567278898937729301242988219395625146144156246581993938021436908599252378734386923031234069280671510581319464781663816123297638153280358778308353318339965271559376506356753167285809119984336789285371026304759371008392231480340451023316130673996253436602891421485822016621576474853219543291575171965137270890373383742919037019046240176753537119046696897625661385680571633448739017199906030077138181618180923229037588760045195108096035648541665179898024755726683510115549331731162745311320080978937401801525138037331995139055450128287906894090990327026802240053183535600954053138647054986562471647715222252905878186039039797069115287558336731500319012835979557397796024516939524654154951728551470746396178815570202122142690958824346419324780405129095344900719090595099232880485767036621493060850125285467695492400158913793911211689259651325574187093055359129873326674832837965021696823567392984201233431921752217207550182014240781395719721858456957962682821000631666730530901172156334531053355264401325294940260573468873711352040255185477147892977255597912613655710276146259715512262615294991847807068988833806383824417545608589127387110992704090539279956583299178865747710686394467312395600108541509919173116126149654934537340344442515710268692373539650521031758120017965616376793665708002120799543207416358210522136167666772039337355047552763931063569548434817817370861862175137874093812114947191652143230828198063321137712576115567406457416569746450176674001716735129702107028373258628837252130245572727717424696187860814564622560904956253648434238256253306444759358775684384532673111262344047945526777100167129084907852270863650060935874831173055731214876901778297476956254473777326809373613919906159226210454162184362162518172539734982570862387481968314336396670036471887498712982509840665919347840814610517197076488013148464631511691603030438621822406759497211372804030435754037936763260101934695582241054854398195130902255638192713292073851929259322222466651054947204458396880639260749159972656303700538351973592130191342316872203443757373014101622564179262129956362772266672948072547046745667566007917206402658826997368798276963869855660859240588465705143394551815550338894946217399441375118086114440518428941644144310619511399106520452973377983326991524120588616896876211201933700888263821007268857572140567265688856188216579424371344251854048142698115588535502564504917542801959435862371342470162005231356370759938831761675994632511065663128901571686531177438782008887939892048357850325101939273543836257678048126478462256805691421784183163773109991692572010624923363939354105097128497116399436990126704707324446651782669913529937561839558451937777211539024479844779283495498875687201161503480142610177322089984888746083307567963277947837833788528905661268956500384460492072944638296089276404900769000821193108604757038561569443185634057880421380402400138873977287369642394891444863621725107382879669173877308206185798242117827881912171314879973991879038492076380076254472193286916917153524143335857747741964808450571305668589231049374195042196063143656204857648614807087944446404879277706245847047636735712785365122771716375720947264892863567914375113723866081885256484217873378732517061554984467013176531940988013811242877839915971999452143211713288858563871669399332703821733512216894226032320859972261350353177061465980000505221281810168344795164804487067679230922201399737629709080135583795099947976009209802773990961142801705554605362128613877716188328401785199694318489712111127940653733453191658324761888298616753802533339102240038324782319414425589939678227806231010529568309992338262506134100912256707499628856597089143147644272637304852746632704754836149631422395775828513989126394840654859796591845223607026168016471195792096021560019336232556543169688398505617837570259190874826850036673977960304506920328452089661503692480936728886937525445646476581581184478342321858590919420845624224445954512266586415018749277203819265374609085515618072371355706261389555314712641477011766806560155174517058566807858442163203102872472554439116531986669074128052803763936837024269492457316833664571492303135164186265854777187915230070001440911733255930341692752019073652631019503596064350829440755150092608524745573692014899364282090142261091563304359852808659582072176997204613202012214925361442261467079898716857775153826348114479543233440560650475148320624604811082871766792732395862207119025890512881393568037760821485960341215384118118631614395597346938592838318082250310562908632779763391437711469591618088066374043443627744723167342286685690280794862975590556117944305200377530027207042084245829795516802980057147462774039436570032687831547246793508337179813105922510434312764040231560787305492484187398814858995631756134421344993967608167602036201255982605831811290418445871156149999344525536064518985428766646942932784365460675652466147719374904237884143330639186099351681530134057563674265815675755436997037977511184751498865449176407600873295454764526641779104416137600058869489547992443424691891163133389785549483301454045284159941221692625508191689521785686788951990434082559683693372529995681882331774344798044422745479618826035141834085241740954739994537194302956466688016562468416857411180313253407881241039869206451928609992876652629596470243023384810321015282797316448497294528372688166799644655369183195353381725224010412557313796287731612057099903080409990363176292701833233153351838298519446166171762958525399402328977974063236126045939156095036309115748624660205578346792326256289477835520462622499471527399132042076146110656118670965517167426927549298349746353987088057542117744926272913808518297917611029735208200561718532777105648261718220532889681805463335388137637619024547396916982685830666907873289127759743651108531494385880203596580364613611232795864359981994855912142096243371827916669894861692672575582965008961030565667077591819535878535709313303103737101967336390617028216968200434506230707156677352941766214663761752675340580181754892687165181783270533560604084929912546216468178789688992466977775436898889378363159830917766299370712826221858552791475130888494151516822201562191346162287265255213835033877272131948194807046701986956347781068688448220381789243833472219538958824449327724974632375368555245720548312945619277350235307612268319127977419241979088664877134392771527401606827909440371260784775573289776563936756241207798491384013063928666569995432365555451637100357224741335563671637422342502015422562379496053270335213045697710887751539580936565498371944731971780081506583081138491998735895313510903698368297227852114876500095810727591709541102583813196659255625700895721619860555513640644808114535911525932567155254824829751250301913221993078282818080587480377601394701368873928578412242259918862559709397510845116139667862542016257304185131061079962639171792371444721956413963938807287482958902270282564265184873603699799359274004383910362816130427738254737558395978478484242164933392888018852732561913126302243183532478080650764049427214351426925269272999505863377979168729738081318088088829788399611811390266049321715934993299660721768100076246584183825379224784775462874673009434382008086030017920612906627299397463456417632306967595015821738945740680914062271228099165387060421907992742504671055710973180508117778023822140894493312614036028152293998505944771713733986608845238715754235885236063404654864055731207409334042043642085551195574048303644039338739991387420833550083528557722609022464136625023570986987419348984459900354614723384815909395276534828712819344273173817097193899665261541582390113491878577045638602326536885617513882733317719223423861407055351729719368058777426510445886114907504810220369963650680193190159660695044787746536948373770802087763231840311873447401210619633838710740840242561669879164557252082189534888741461956825446017399574365506833129509462206088881206774885613199471773734547088689094514753842302755529729121772466227593265598256706676750955191930965339695296130886493031921649497553088576290923380850686499021212703762431073427399381762537084303612815354500413065060449541389458102858092748572505888947203814996930680588651571913136569403471529962412328757119205627441330359061817163527355828164335144915844873373264922117554158197279246666358367230296229725340225108833534293680982614005674017049490076260397869151271908403509752891935886736096449121807875527652721140033911326840252499006441508433413698363695714363274562249448369367026951265061494310823313932696529397638756779970240500876276551320281487278719369387098409687438824392608494964818880069212411066915227493087411444371208750296844712709364176529148311863001382790379223676174668577808420439597147546657359557076336223574109677487476671574967899423151360025758565676523701456571734929037649125404375600719042805300388687212659875919859235760716391686382242823290486040850795082982038413019230687023663627801880795280955939363250826043253186414291158941332863336406076782204218068883061965197412750544330798527240150462431613294322520646182739956914351329603808738940215702829217770880869453476364822303680277362795957328370480379217908596185124005959255656922333548053317660367072602621321690492266774921682594027994115838412432623360769872868247111353757850659712956466388244947144230349292384369300209662063908811663680717186087422514128827796772914776963401373164514279440534251161871109461577339522855744365347895260223703711925706153542697629039319396590748719258560016823751275088570971151119099301924085149393563594290314392657505754314626319273046438937397939772968693899046680616929504460754289346160313460370880578680335209563620013764931990026394055113408879753019673491721606364919150402245697360287568543119589239801124176473196973298824359922076622473935689828932938451091047108025932618471912636250043465469229276170536637239738315199954131653354625841706435207328428712084675453311254912625736230415561894666077268012776164491788303510364490257801169288524434399840736344074621572614873219403023073952542490078645727572935572708647337005080599864201539375229119622769021677026717778334187541969016592460624972869886375487478093346145889107489811026521678216594375065213116767406620602525534432475781358538915860927487928145415426438574671326997169163043368499160569399659083776324839426193378161423461659531307410389117781018931863246535801079085397212846727840163233850430246497330390592966413099860755496446920629942581458688963026082548248925928581378613454479847748735632417787399992064302165221721723155471777422310562700326777649321194015857824719051444477138498972462900794232328258380462765992168279106863907547471638637033243416084661910019845040508470403142261332137867510450904134246994170996082825539835790005691886669496601387603307568580891480081924525877303782542686004005510525532624374208531910907433685758053908683438780186365649278675794272720042904658669022698868515901495217173628676861487007024079633492635536726653284182664552905071185459005751559365808296104239073805012259254058716391454477139610054381935587769277445924036770940358991647098026007804015327250998456954101009862144484197775547383325052529967324542701324332846874535906256876513187131896501452399984821338654486515970240223566228070169884644665762134657262499667398701842924318714048942841690391985773060501448762551610499346800871580999950410353996811467168391277103158995980458537821503914320116652061321199957063144282633036782376210811221547094866055007473053861976198477959645209834805170103168807683227187866590490512159041691691553106323235942665904417613141305908747166631128794139360896386550807303253384496854315550385853952120350118462914669513489577872160356560807152878861347296349671417887749000551174266569648309118511110915581996359785748562810784384666136311419164073104791774397604387482688737469483910823760001039711530984717341286299610161472555968114602861091144183671801979709524003075538380508316703562899287606272087888562529622578132653075789547702053337041212868851804248774416383384123409394025675876493567777112697158297166831793712693122468122474172273725571889719734511141953563299682197685960167658483797120863746275559750391463098004508745767664901320966043352159336700757451428566745281895961483096610475588302520146461205415228956907368755113509977324195955361496660726352351011598017702764400911435524809427107481163503156073189527690665293891135327848033234309289709658525122361530127302462438959485928492549173696729386855455611850294412289326904575166706450088583529523081417947651718032677658705765296203800859654136768170611259370360088127577519164152436314702570388003637537531103677736155024846134552145414904356119308686026192643344554782982320662322406167803715748158725070118604282368656785733070168664106795818326056309488198585589295234488067750221918966535653647074366060220552951574736927417241035331914212289182692531348533604283247895222600786117411273634412381182328706822866114214806586709924658583443485075217521146890132670076074909978020083210702651174503934304008327377955593060872469359206743016241986245698719338487294519340432846935519717480924145134886469646684359392998939226653453122851044269070018555974160716867353148495883362315611439860389082826028408871419734395983805450082507108769616276856320499328392409156942180835393393939188208325497289488562416536520583531316357919406844585441688006213640957448333702948620307502073794850703513118628847532203996253398320349804579000223680192775661266585631931920992727070007890810694579838327210890864114235121326355418220407941032498781544048079156554316995007114553001511953978950255221119845431217157063818878924885071495387396999256185980730971006136119022785181857380277285122376733884536823136245377281661799728411512186531872428157885078675451112948528885657176809089983786837185052154225255737854041277772786630934548910919490816355055623315091730057794654918831402763811820601988820909881252060240870845702812700537456200162810115995551616251553465799781746273505033664426120934283287899955587237644828065058851013323268132137369169914613679361320488261370034371490676866154489498387505815855067634791712718289672393121073480668872327434423747600540673458924400435679933069601915706962926007486440571147266081303251307770542146201177254290092275452267338808668855897908230740986962927770901931132220272964271290720437330814525955770688246456914308497148468685039596673183283083548836325394515941054936623803682332313825657868698428039080658693888073132025640180426653190933720771522908393817515709484229412335202446556357177846023119707016955135652284816559357958533142848794701057276418765106952410048712751674557504228306148352612718640679105582427556370611460160278627905226924900353982224476475334523531881334305438614117753427028307048967616783591338336839370451347404474570761620973023353742441331744572376273702911463035537307165543094952742396382653375740460832189414719390439293030315550943199029176255442187434735077950181417043894130941401623172290532808762422357698671538377330925459665313701865214424862714752626431609649019460709879022667132563873433694739924339340569707222766079357877520244679112304651820342039015561883695691693363913533584381125225020023033378775132301697529238304545963214049547121850749982566494184116695476854272509266328566109360806471478969840109739911513779452643783944692096768173770186436320538538968536251873052292980176592987895692927077274817851465001825805103766987630717225505260073469590052976582523805789064609841880269400364566270764757264790784714413967654736129310507667818942214923293865889971663736176589082151696211341454716083575240270981509122186195875731223188457292027462502969796774821610605227926945064369862501950954902958332338218727631599671544371337738633250565617112687134160759870461857784260362844831764099400466294581326865121268676206126056161016324691738410084710124535993639100708886286400296725293583013078986159766985637227043687308116809206026988431742725282197730864081514320461568704566018578963442840445842104969365541131093765836787052351359039040317024954223912855179680579695681896994704760585191137709616990762325208370256592128724959660118184808028925741543701463308573180108957794176967717208928422491989278027895856220270251726412331774162902070905006727535924930664403597594587667723004552554215447930142513373253645408145308369598242495209370961792412893677074947076494341782191953206253334150765272517004559225520399672840465442049499539130090953376620312032398911821801747618596390660118881813822045029357304886199190381758467816144376414164342170724496548889971148539080093663354244510756739935008896462993578803419782666323412513570864151200846510431241792608377033289897412874492676966572011335045420157722688021710710806724500347447533239948813385038527677555351754767536933501411532255969835871324387012486560572037404855407132630195674049806976758386977494756145631508725658301267234153714208847773117004339008133534884666552658191757046303324194328814988837595887981338022441999479473375375321729938817382240156395551687453809231933651403446657528423113031795427971401574611058243390000899329637930074236627078259955537954466107852167758016343603167200301269442094168536622669526400932095918352825226139378416963293232722904955945487055391737867316818043595186185815562337599936613429544900343425587880907253213906033139110183632780133031422639242397504902021875796247762486532029932095873529695626559193184072340304985812669047792095527142934600414795310005713332523265962385921530121299829203809461195432795946470631363331323533841457460399529949919508060767633008747213478143415036339259639895477865288864102480239088617468332317344811457318692548490442733769128076732181128717682542745535409046126718843153116829944898362551243712627416822907305113957428613598242312323520110750131327791656115922825876037374749089057975981271289752207033086719855747152958722173592091680712834220447276705121603439407386660981495855658387045912048872451087645819155912489979776492920703763374100191196664449111746360925250892079241236024112692514450509163563712654825941073993353867029084271810342001009985097327197397954853217537715591263499884659764141056041520063344668053883804198073754148448205217801452012828403991063467571756428908573344518224425691445498243507016851884686678152208088339671137558232121308064649715592677186172070954229271784024550753302452997151925106357769081865410397312535995764532130765973373436379879625594652367126965931292936110709248032316869936074906400406866259924127902879692756673722390672478973289636921839225430800778400833434394248718639285020673089842199948554216646386435423218840477009763455038737330003827649636128281996070415038819934435967919612967715964119763258473354546680683639852859143163219292744093033125597143270252723657147718659365689750266764695584924776620415228568582911747512803609435899388030691752127499128989696994896037834231312087782143550491669762310463218996394920162250189368405082746655522119945850216434990250426710948940420552737387252060100636692687896850335754297561842400743521647174770736993934584227343100094784098640398004313970504692194815528705334439351750962279276706712337377475345121617712769832004250711818544464800332703719984235811774447342757657049397392791488871119720628782398202862270642531602069586758737459285805773980097411184387015007838420998682886981510759247674380282963549591351131280348992778429913332001932281402082259854138883588890169747135236473661365285688150023803049187414847301357665277072810008635842173421427845833134420509287353336861710350578139488730714054314647278095521938863001883636508922968758647497969965295130292093119066282591652351759841931189582298971269265558529225830088707303674442425773856231035035419721957956641826762851181533323796823532530725059793181789373588469057571130353932000902513563808005869098285032182855884610968893004248157472208793463571709706144259986724446358688132355464573049333030122593525514457923323381059604087805896938583184091257052799764308340944178389013812946339868060314736648955654945019548121486178827151285424065385976721802525013680375134256579542546554243604924413323872327480771773083443760760354232373486433831914182311562365042510234255845734877344272281365546045980196932876397254620563437723181428119717441210161198812693912951801696628887153646696527859163717799464928233111449605158148120243186889704360924184121480763398151851319999784711403227825159587755339031457833590932226626066303921819188794438866515408366577687622890258706626570056528618699187880619609263065676059244441337754664993591516870058022230703753157801229546221258432085060780889653805062861116764426987819187478864602424674969808692754828924692388069960975732725744108714285176873864581317355333733420060089656927232582331418598204022121486885879333534231318777630574788434902436204326710418059577277172604946841693313694807052096616114334194086711207305222682924041628285933421496601995381289489098687079301132603888268815138284732773167546529048906960321961641952277616080700246718301109090500136686292044174834932335666287439106376987481591985025001710953465240692549834320219625316652747220778406285636539347112467060915075136670821595120698934850431171224222332764172045728332832296191431275844579240316912342469615382686687780383691695046810818495161241842961112921931925923679825781487708337394601905415801666381003657034306092782525450308754839690584620619802911998144901272915515006380244856371928884074966391563277926025677172172033548549799623857130075905259415932873691089311081867083840911190468622019455216628806221249722590392050988663670851565270227462475057850835012778488476807551014834003518813763158262334147978403320783401841354440045498299746181948425955540983171203392736005624484914770363451416774218871371666958529429005303631150807940716843658865710298320453047820649781589423211202401445050203536742131466790924629595333218571430711156933530696991238339166341408412878638553984702283488396397632080592489909143357577497923403309919198769115106668888182177728825140317111048671116434395996051524776594838416525739019856543863572320692770386810242197675744488549447989781087365926950263743069933794407049344039347121638255019191773928667008152766042857614184388087751830836416589607121446242184572506048419058282711905106672411740855778073553665387207856451998284136198110598305010116190062282932811995006757761611416173145189866753317763783933150986179278403946638435597760611863611327723622178315546054017248127051851145790006716785740633284999745111872764743893747908456759239172343407898623911252361350250802763401409496866412836010034424162115297624952459881423274946690465939418664213905126527296299263522012979934899102624973127210356072957137995014487870004473202177591173735369110544764443930900106395352054244225142665193339264321772671246269867595972657095533590479888168559234191757036287505934738589642436779931581972326432418042654604299527269356372271753538282506731831965035716503721054530006828147700005237577071967062121016792157042419834275706466650916025631294036810776172828134941982591725947183174927597835748795195202808336557403313143289598821631415823472720798829418625005140871744032598054857331242736091567901508817132854689536259174634676346239541733590366010420125316407459547827766748459743385972032072774081831973397173244235572433869661177904162107470333722119564646290625250212961266100910921086713497607159703286228235322330765098751984530942534055976315877347718347868113532241417723638616986266892022464301012537338059210446719461439326227980090151839831436048473158547158413198256760593691192908825896723552916478372024938726295271644783536778497148012836650918676461742332399212415676235862757985572414526712317104464702636553964040264182337849328078129229422230021680882032115197064099768106321498178865014610477554544636868205941613661843095452743007597420590664468587893845341634429491099187327112387588801429561569520023880914809544470000053998687385574570560775804336086942738578698171402792035506212526740573594996976510421216339167579564192900034423177645009755180389066722419581068082909118678186076835371242243203385177238957392344063870347529637108377025641821323836033631605555237602579927288105565109943419119802451493848340974441194409179177173149029596449298715989653427470127211227764684997055178492756530001771405730896676885562566330910868255672795284375021357978824352050297708484224215955200516272381160482187635775519518844498036372692433723617987751806043398407341265870321645457580334835014529377804241193485692929169642864679023895623503764083714335209194108150378946086496675689475799913425616049021611355242846189705160491084753025760359155594075954602437219328504793332921823779744790175035251742732336482390763658737379773098630954274908791929591817688135698038645679178473567107660928822851644011041837389852303582833719195560401908096313679182593154906818995038917692247830509313062327551094458538312816848591468942072006013046687168735726486396285646291852076392751691617285667459439971081592855270500305359225825539628985991878213976338190500819162718920212194984431845852154132934791432785211653527873069403076811938859938408456869301389075060818409963222753397156782250526843431467362483036515169912568090577287042119277413894801667262328624730884645125547282495056171708955119150890115373567178955589305024087880825274171890545688376503941688601554508116273624534241123990990723274160735747795351983846289221189877015138018150258576012904120518099925777037663150756583499308289039161696654066785106575424766176385946950191918244595510664398529775636942542068702610473177289056396066657986264787573250179277089269150934336000012577602981913116603376604096807445882468921544603787199522778480134934983139604428367281036567901633681857657626377838693633843858223215551361531498781635970129829287790589164517285555293377088900033354510486125665265024786454262400689108554715418011501335583241853390176662297111756794295137354978404166919571290901807448345391822371088576006066569583346565813727332310910948228844414627794669871728106861125191645489697498124179244840290000858915922896138994359309726781663381554145282976473373780379373490848192100685546254617391155673294998997118450457104084794144668392102035606859385115959516617609292139572807852976231178904174343133971743668697871199280236947452079837984792434860748969117782502870659811318855698305769222399030405538061852124475415352981670437633553259980093390906795650706112695564904081583228024718406803679329518017357196613494698995366198833157798989536003966863070739118123272263525921231944829825494947357654592102707296239664192179233838989773794645173661928080851036165838368910456360075827725873799991013410351953971501885495487153625208852065720336452893015229087455046247508434678974093150477387910803307934037455954460635344688035909424640026706772028329778927576197331884349002407023240696118675301509952181689811017867740087286991850106016371474977578315864401084582153182957987905704335770632718922387884037368728501648436685881296539554359404316653368738229832742500268507054869705940553342945000869567878224015283941980451512662823639435628530918734964434476000582822925009053901121311610080547319769889898898715377195223887238168903247189503181058080502789432604948934777936439756964438945812346030075750907703647946770479312676978978241472837620248206302267278801262137997746477414092974858941016538481029166660566285428127829100746196517793915130811545685665314059246915055170754941436215224161125352316408728834912861357110847069823538306103463729693404868410048234413152127685453454060605459145526651302898008666470359837586715787983496927465089209685904758439664140279815551019355385548105090953131162316125207771405531358156714796837204655743986467811347601763155670760514845960288668304045884597509430200818811572586086424123561631098884386187728397925984571762618402497454580779084256078429029008726978663255465245717596437842740944490577589902859691588391216820577003867979030193815760824523243279557748910839498752115798088818114228702217233659547233706013800090824516217397722019256248752779719512082661792006860404347345658511380594982545399516548452478325460320838002477184983740075401421092091372231540028301822513306823220135289895864865624997311532765199610878832288336039539776609938153522695292847798595636296803889125847483062468609064825652697436736376874498697935463304459843752467153073464563759198520170445642813550108795444382536175722718597906322809556427964835799007297769544737432199997772694965175578177235192376973519933126626021039250238499912924254072200453245505520928373267440537862597540081513983028656235200953196751016833397142120017885556698106541111242951110721459498315983177976017003067039279825482505199155858831070179731413031911521629414489706243491150336803247477018628617409054652450939010568258913279072664574762668494337983754633418388464592130090530929254751464918061193998237112521041767724426228174929458744888715874177204904041023924846010670547161554106401967352063045419940367470983268930675256043218433588607041352819053604354466092577548630411465915950526305080816096457761964935279917945692527150322962462513159352529196129411358661371537874641362656975028450451580801099545494119296319474129674487808690496425262270337086600905189652554063947135825001246965346380585765778969947371605856386004857511851528701363201684170871805750844870779405865910544449803620599980653891994711352271770623526154673805168242717596908541635596030670186569222383811660525834614816310176575047233514107530275948535458682663290592106946643481412927624897896941653787274311945553155580624925113530011065049917923216981531089953783556891836273594832610469972341393909011410479309038753013222441574904083275990330931270376252427665723396062974341396730200987208407483086905688554773967030528254438611452933116147401369116136100611280542394568209846092967864357437241658397263583962623929394716189311398022216453720739435405570624202245886063829083989893728101585143294429158167365027296418971714162245950209001224739894727360171568125488070504739600160691702877455348860648800877472453518943699404649790927211520182621700002951933548517621141975035052230028570692112379054550475970967563188161124654331085642184514893978878089230905734741285579360944728073188018049128875849402570499010705256373957069711445405337964544525680471928645629208084433715315184285021432911334930928692802074337552137990025995000919478225209825302423449720739603339337569353892373581608158349537036933436574867849430045969981088385244947167323618744663971568647572218764871023779029364814023109575608933997378969949799416371743538868993701020183032062577217473287531410233646980497153439218605814452372726703616033573983200336125960219529457716737510569212837633264050785424252210242743847343921167479416258322955451916462532067781137995345536256392822453758719142713708964382989892177846379336898027029219416545195901600345968662409963080299274200438772378460418484830854226779642902534794077849942898974079352816077501096131121360937961507073110627590766037587045469910923061860254703418768514232857527233921759805453243872105991451553003717315005802220827921955026928270034329211468034803702179550582534989358178485658565122548156434637900028494001428960249652456959837590318556896132631720811558746936447587379653662793123668971619687757747388657493563509554653640863357723981291239071513129041801279371633366173388443454370707676253225523696546290258584106303424259317131262413467605104942034798010929183717116845185302082922519927238846464748915327214395391003503623878488318465863560684812710806520641184020951282936757337643971526921240285064348479471131146258323964069666765334730512950954443616919787185215978543011315183062484295129451568569818379679494967628850381620099768737090959569337575101396493993836229424400188931495651418985988595681460712582802137586270349887024837358333798156653273756275490851227352897801503007957143900665610003043394316209820026778224656993828533403484385397696460761302626304690406839623716911860146317005402646744368123470262534138443420998367771145247368454100719115038565693659984750844287455256579711852263885794746290081646774511064023965078887760679393093600793070725402852335384742686670445532615883830583776182153989644181854508407598758149432597414585799573389576066853348751254997601867142626090886945385886417999008823099463463559690043627915978937558116184901955097388903418022990093465968857938165605500076168471344144452373260777870350618017506912968038935797566425696773734651155029774878319344760244465156735972242891046586337216424870661476189025191294134807930554147254990047402860171890366410228971124034311575384548580222191987312243993855329194574361214492741503111221419146128329678375648892598854987851527195304856430699029320871282216986006911041919983280579356139448183562994783356737233534657411657280578245802597282334972096019407339127552196743504189124464865710560515700757746794362379204160590481046350236363484423388959435232037449166198427593291047359314835356578155188851431329489091350811022713973337446117430803470487067406412123276822537338624586588895089780348058648703741749652116517172504420776644462353701677773070758686559927000163601292301784849865716745319790645223835755194769034640249985355329523709131779105513300846790451575634856577599045221234302524326550589107833418718456035653079180019127178628669252263377927382234869763364541164052096160321004326859505189625139358093657899227812555036562480191290740115417538446947987480359988771990462863569424065938120117666609499347170210833052936103585273257753918924305050940472325331085664788170090723977100504392188948418281722308644647209307963698378805305574927297164590216732504944663311753613112489647937441025205198868656279235491793506187804416895944111724061645271082103157698133254157827937331101260174812491273666691337227269242235793181630876453486051037707193531776149192170175447055072313257402052937641087758910237253735570430761025045418087517240691131887653778825193264183309352665747655389034259150714626136898467778750043317322849628377651137933749214545268389037806024619882156967295985736792495046528536419425323990676942139245362534795511148331438554125475454150538089497335212760424039322405646745754770429563318781998319151316393276351864395649436712649982925800301122550229276398335111055405800066408114119949352512358061915994051425820188412558800493033162776759156841895562230802344151684433321618703977900464264909451995538978335082495746150940627124098508173999652007386034542774623263798053414910194446540750272954426764347057473288356201045133236154181730292582166925405863961057008026516324466851458551551231101312406296517911824087950795349586024878503199130614081404329618088168596555424111069323235656868351557178437551254549009785434111169894178552517728155296277943791335419815649598117863618851819387212512501250789840372553751880924799171452730211304128045009487962660538660400683622596163286922027530096315771885604351876110769536560315244002499344262031086672091284472256332940742939990367781871521025064675810406747008479049964630675182164461414705253421834743190228334919348689719833869083013231695806715417680296121957428139997109293810649167310193482373325766181903252369786474542642416531958300231163780280169806075221653754905468087573144749488131704410597360742975227831986672132248252616562041158108358088709760436008540358877024189760484351379562434899103734527307880434819678437654774870589430694012841500665045414980294388528240833998910849646460308967102964172192713642880946546093351236156391727271057821274300973131537000057987245343558492170010822429747022047074897923961243505461966395158986363876443002453574915993150967225396932090735462092166466245186004880583525725653739489152872473853288165742575036686379488323874854048886005947904617294519782031501766378571381780953517582900347796062076247229772408194238822185344214654836817678831616539797250991198516670572456041838023838302672869931931086587695181517506599895413686875724060178975403937203565285448025679158774682955741578792237677500245348250284733625137570286387292288512754868985224462598728275652527649454377188845207987142877878671885895242136160709440706004857106820449933578717120284745022292880985381637714677023447313112521092683766516640116015236444116340538999892224002245567149568114366566226726446594526408737220911682283196662977967933213808625043262787042684284801079274432318066764651328981344062908351933416067540267883477131723376533631663091459662189532617022993428213026542719920115957529950072407048075156448306728575753560475840101593446596427523361423753427788109962731107658695245803491328889867979729461982822320526492098606341730749018590809531998226201240450272970245046713929758439493469359148272434522796094059444352756354378620921059641543998822059831189474185059350590073726633845594619390625583300213040231922327786873956874175454756085221383576235210392486449864370613829514731521094134648397508402976701061135541602080693612147451049406646506135464683115840606105464396079395062601484522733069221307769633027077958874226171527686547951339722680179200375664656139389533920430718480887788697587567197020791715342695910598633732088751773252389683978266297750245215663875629539027685733869913896514669495814243800716234436431725497130860092882560789871990556621100406379113053999125882722105034574012285267205245300523526166625597505773048828737930826462703481338476276970604921554542414814586104591647862322078264594538309440097679107187349483289291901013624756489247108179098903302081859216934479589485228437484484998664292253357549255459101977439561540647547885340527729053379206004061927830283224099966738277623885832650631035339066741766660251814883524377132115047233892274498111593416074109882803131765835801719024823810913423913384814292990136527631508681076428393893506905489105735342807718325025999664716849354449041690417190662461367211606666507295335158009563028783443816272261229967458674021553039215304641713540801229887724024512732056020186263677957236311460028183132744861103847649695268448684406852548660591645334172412763937975187407468635038990788608003647015241866168203869969952083231379009726504863119815561633060319823783282842437633012780860071016524713155207038042835645468824401433181919324733302014637511319685468123376762341732438499693010914845390247621099000673587848041366073487675646927147711161207580365235021022577897805858947155705997971170822043735073890278442908095261333323142032908702565803017206739589937902066005649439616102721660725201742148389981178104604280959234206797753603336507429280728401165798236907052647411266081304319592073105220405106708518098139362574771651030481113870409285350013224826246741505654510899611462247414358153269736187596206406678840784687262638280829543799221376058536245643253623201080798798448148254793974974507286167413190209427140427746634693803298293803899873498233946568604088300673229953835246289316460768956906314549345121069789015637646205980561564235953261397896214855386135039057617461959193048757541742447945255040890387165554359026407906777271329099359005631340426753101934817898776445839605161515955835338053215125400833351606912274468393669385616653921642501369775993589256926947464412448638736630044675345936065363639073732569230390002270490782146449866170150189369168722633738288514386358683188463140275604899779475424971624248438037233075873877808448403504956036321265924961321452965869828529284537474607821372082166446395323843732004429430954804080211118561391755211705487321593197439449171273583812215463756113440532383297542351378676351614881586911935704341398623030856047209543183922891409183020241632684681049795495050824800187665781721820251067735767129994348256346770644753227352691775129637144325298704550818945880113688580972450196898410520161121821037294405719678932794968633935807198972824974085788119837425343364852089237070251617230204639042484305853111673782432985366780257340256040735996095992226327393902603485829585513453316965078862987341239087680510675232484612338249435218773063874304906688429021292306933490500316322560992259824808299870342989798124708982504619900074469307363627385107794801952402723368012980449378725075769692546385684822757134730097860244442567506007905673540384893971892573914093930872800554523264892296878496740840771578483857946355845642916032369301491442827729007955408787183012958167607979992294917153598220166958578206820756779680120417869853067759273147517053862221157870516626899249493960270842463913650903873173751230071196871453780509660024742850479364504942505505992388135235257015442880673849904071341669689954749142494522725400771532738567357035892777142481589200676597488000970448867749430764015650179458708249301383560067980163497323148249094982931568653653221894554218565907498167183262760565359779047288124145652746732030040400517888639701167141580766371096292645281012609997888813129964347873673326285702536345849065572270319875988287595240342380784482736616950835854515457720550395434906625564195310264375392207876111500727344107895271376471459161593304192404200832032190814350245861158647031218191756435922955285391829339191755763524493940478224489788371217164345849407463369919166206910018187938255337672643133993425268507216471317698212861370321873968754434130810613704657152288794404562985731884493384513661748023948826673053577381307541672947893296132645023768496310653203495642201669863535910865750126390763835242992941370730425123004148158731278851584371977032009776096114414751916725183107766740208043815951656660649646852892206204472876862374487920418392248874066529133687264299480639330717951977118484465697891495722083081345204359234326033730083732862896709606220891605468497023671805022148109880919379461079569378101321283314416106799745477253163239892430547316900178496422791643783369339082868739102004135845866985612471201741685240694180074472653421908573671984276270603373584089783365955503420594163289222644371143919122388100387952520370870198474308993610478118309377252889455664721942754208872259440361786407614251147199758675985658098308607138539024491528519993964504672162347685259853719783601125879803839598146457658294612361811736149484317550845836730589427285737738723636721630184560482538076723130530589928915998142828398612707037457456525675242207332887005547742492063886134508569988718891479646641066708233738468487264783839107020539894421981036097396767139754117895363120376257270990898597710726219388040401105689018148247752014778583219544284868725153470867893388083491756279603143640446512254212458059405753371876392940086652859111926890068178614491629755767708489228375718791603613671187555903554770579749251658732613612772809218729079880950807806581476918844783499134291513307557192043653603409742792375118544525147764175857639540684521850652923503524201104726719500339989952925990156267683314611505948284875635368051284977091198801617249640648331165211018476921201602476257826030989292250503069821623142852283854033671873267097991286442668722697027759145379093785045132584261509141555545481022898251326490511146726424916731591921820967505747757256390096476596305862890850490335143150835310133450829110818585023098510748557456232696932709274593165959323616109361797586031313332705669271065398544190860232147338661006038970575619471519493293069746679133162434729498297169204757277657441049090982401298876462376115052252693569626648229261666174346345872651183870549532869370696189540426882433966360839563171553590991230789691806590363757861415072009554654716239894192196399434612689878110869910716289293966161301136870767171978175166673031339376684325057230502885234835885652620847056074818237878035889171809654206302942678561612720862243628912612835676683242772630293207856930058696962048625043145574592810259868395374721679636574912764002897163371411474126073702399695355071396396934761468314213393227732643597883497646886665899058850923618683828150675617719440424420994453912166649264616520284765305497205561625517924536567565236267599358770487281190189474102311284598643024790398848142445439534999424801241490749331393592202349938122705359650750979463935738693116463776966057351920705004651632788043149931256103194313005198958417221850510616862506218367961120205363101246607879131983183710182417947465673211972858266149087035277739111200639985650692724719707543145390638099236008032942675978326249775353048320687975956683218009669312519239892395115368627363075344092778222119062207669913420324930010391863599248515864539173590134272640481097505163450441665820662125277975657463940758291852002171966506375426048445696398062494711781353993059438008134437991654180861802301695362919962432288255411085339897656035697052182609198323116410550158423587409088650759000462281815807199748726258014574074383753062639106689326120504672053096836381498015957293385273254384573852906572496032040255597174530669593660116480422871218185320341608568549818148525167989231714573505383602878763257832151233184014388047638766600818673287165306817966428716497962632718107070391227853607232902344424050051887285038512808773780517463217902788905988875255326195561914838385881192672826954194339549286492030785631571914590434639599127577450750225425819641132501459039059455672259289539952849126062736425234940429397577574907492737439544644247923961316544288959965966475605150931235912276427979784346675444827664025645890127251970349645458889837757209523866651222940770918107228620546319439051661511661547365503925889629315686048094801466508454090729147232932058365600960991804498342893389197628065628290067106888428301095965696742222450984973364884425112154673335388253456691162244352197624460848386114453049063823511326022556447271315765433858807289238717412116389157210895123755475375636138140126466760328963820528962147323942126854701317726724552411612201957695636736550511035716005181745789666035290818712478672681430280449849680897345358557331330769565678136462666464169019327540621001004142116464138889274748790270715846513535121495584945516263445538684024784951522375053345276959692756866056472648613069791617815465405316288094873525633519962815763478954236038318507011990857398238304310465999239290574032218224351069323251960179863289966227132868895946453634034603796170343318304401449893072339362311265579359969468599920891085897712476837604879143381599937278107764667532186337108649884336526068270829791097984461593631913969046851299290645285040916622163299235520688701585028462135502707465105724296459034198059947892329797930189588778542923214873936287173121743419384840512802688304013283457004905203568594005763366459074060560353430629945526966887876621747451184759433419157662903400545971622131345350777421228305763119185273178920853420667886748964518628823497717932886021826322203990592178096927853578585883203513828062692871168139813753498490994202813165885510616081863174359876537720420455423484045696323256864460020692913059357499665830651890586697823424745955357222929783159184396202058108285574512913648210448802320653381662650677425058408592249093105365460115692536321193445333960311115618717556214362528137813067949786350113857838236728577838572097384243471846426103818550900957302377562221872703718611878840535932131204680431811752856307607940794839380038700880497435233747014725305075312217414731116276965724643126573557411430465563846283119763157122277273441805310262877186967407250195691118735869967728778023837257146861142912821596242723318054437670890074658293690369546243102496242374534594049171505088552199114022583062714773173454258708940320604466439162478933690011465440665580234906503082270378380627332643522045734481835201179929030532501770408718914601251330260632492511543128117734654193631020914117969754093854571028080679731340554340531265569685671530002414877273848889488517728145278024627842620990806338361426968440266255671158718722640789308080701805767493170653442188312475995570344527194398480349011338594047942497042627086035781449114243764244885754996765393129350935319360951723359296677956579153620545269505986165889624705178589527552935629912908280534604195558908538979315319976668048258428442030607163865677285186860631564410903294034693043326759414846256670442488478668651123493778500484277128640588317203785145238663864213167464161464175793491468736424867575507307573308657048099197533628852182798860341697958916037709691287260943789556700087602322875682593533719802543784058027477769991356207707805290768536944471367119635088527281167639331372040871631416312603226406250480688690665814278142513573136099970071696641489888752637538550242760198008002244309256008020267242802674573609577769267312925159874765175682403893878528531368306464487009984728472748556673265729060238752851470394448776344093292181388199347124997655302370196436204235047905053873803228372197807308178157191556437200990573556812666600126425997293516931172279067021951391534370870784884461455503261450185190645228291825042364028746261406906318662436191931422563225280409237731089544289243325434358878853296726187371963501508789951786306339853752376273212241427283598655696212144187684377829602646490042029161835032963562254349118853909861607037145052705102566022715374785772578794367885858684922685200753275157162161071673850708801879636987971881955360360644303706779488431616816424791757180135845781845384886712091063069515768503808282288670839185143300445564671779731010287979547606035621875835460658737325861967361976615780172930266444207626618738041707023870640123898622409583514964296702768483753064944603203992702456938533850744622287284896256081560725631835528298124098846322638591058583179870839446217491674339229617136298350485463240162749488430088331718800857023213191521018164770494689593940528234433148053434669607549490020527698599010879693937637818645701588028921011977856871732690821384787223932965863467471809813013505098506237053175357145067257596692765052512638020606806559273133054492053431015453790602321659208279392409511579156570636505200211742430809665658268968837389648424786360087616955584787641397387520692940278773454184174563823057243588752683962509133799729851030131418702853654990862736335726559857003480083155888201696186896344763560169529257521054565762616482246044414537433317367263134712141471711370093351888067636318136165229178675930373759691985265708602451565162966214295977737480714613321029428784962335418434116308475408013134835482952485113375289491283149897907717653762670665508848861255040177461658990781103758231746833838143695541693733036937549875249365892595618174548194832407313808482519679804525822987244247718304366725551949325143653766242342092016588433763918687184498286044322434152670910371261521511503484406126964001328798650403334155674367002801648862474993362704172758347011893361196372873908015632179603126146798556742532899976673662748004670554602283745587949604072297949874448841861630386998905498714485035984849435315778530586740870149564696076572331758805855462678813096507538095683218152431390471174706269455674410222622813328636635850222499985215122288321536920060344637970944452093711507487763849940879247169097815098652045902714630296466168908557845506601694528316201845347650701385085674885517426034226956469685428452566718080798547864017541649628245550787020773527113184674347239441944275120702272884162759922975937285484257819035047594798585766055120240205973426002495302275361104844453960854645364180669479608952192646451238478785086564276624873255827317349160984404812555134891962651754807125453151114354110520657865798008750602079426875121946488323339813755182297225777087890657180364091000425356338003688851455941856937142502283865187937904604114115165424234296238909205481575523419047491110022558817555169700325689032835819254954680731869774328348807853657286938174303331002371566839035787434825924645445434586702213982617850422454319806003768817248795089800615069101282023094994708632996713654791527330453042889297478287128242003275899929792881942284022468626418753187060543001275461993021460903446295466931557924920466884740640169326539432447446159945612418661333483122473457983843035272527864238093784760165289933603901410610025881522654069167335300877047965726023987115690257718309971071417465113038767228412597862927282561916384869391787449256107165795357957730372326902790524598814394728382127743502336111829722894754267492340137300537690785325808048140322200777109392231210288150113062920906133215549307095077566348590910435492589150704355029985488117126250374079721206049971859629455834631602355807226448100273001223351588406331212311018395457024010681493235792230848460809407775835146581972233049661980877831127682239891517911043441418481018639526681445833153578230908828047942969933023000872580736650422978811280777369857313272981987063886863625910889580315052170432227885567692240947707487819066621916579441075962575544106384736288807861702304071249494614753374854567458125451229378614831866843581891926474071821152875853556402832556526928893739581721966256524253574657715691658469507081513705868780445360922337710675106330623791324145143302480336871130593137071747838397391747432514190384322998317768599124506430623224858856887994356403592088295490759402025031310327024871281747112739484766973871008487454020243459855461716026275038840782534783179636676268110426212049662588698995931638121246388802313145960103816665657840657800028129395818699283129300929653051572971758229015726112315563788949796586887860291081138047856246365670732523377788648678062121943371286639811782366331354370065661175964746189394241315989443802158531618705543718813903054279683284326451200032277837968677631898595787809423291746770948352560183305032261866607114022445232217253178598763230431029737701365750685920209574835503746261123950070060219780498155955335402109082256055398352780722309438464122208490204426690708666582962065500971692871047032276685827200994210523036952520268769927678663274778376676494381781927683534401488269047366851144668177143278164289370691026195800702830946186115811968236580865792395931155751804376315329813980146784503777671763775854630441379727326136202456756784494571307196033887602558155249122727849336880444953967644191676093406989197368510031842316542803951687006926707228977991692173384959031016152962402541122230042829255603098380003427486349574391204019345440105678299243436789959598446232837011962956195096655558573761636092116866146862493853677628144390394901845270214462321806449795333094040039830207545468033397194680907710195112814487130912589269753571362693697004631810127693551926679669399357843541791652304123313449398720546059111902183867016831036213415410519533909041679760506685787358922934624190976381280696434486964532150912364774279909045462015650337656869700554094699537957541953197190460065154144011187163690766173858294621752628996435779913521048416790490601685481337180106558153603578208674476909069163807650187951690171891120159342397120065466015591542846653820391587852824631301816564661921552860411250364724238834074092420783826822921119572945654155882544602251745270909915445183962107337959814867828365556834437830718912554067844693172814162761678557474888624757911031931868349899908729191474562825171945804202173830101080513460024363767265216671630239197127565026486551152463485197198335145478626096087672713009810194186179224311880379199418473848686241674657850339997490556573445846857730684139102535514328730469734976081655388297785120812956925693974433631191015224894888053088557016007589499486678644201741336067877040012439104899412307130240346020222965148936413905551739500104638055571438564765269031562465651414601938557438094437971558256926537694402508635619375721093851812573125141626977980247223233249276824588875763707326155025510823253596533955910973716006202221356342611815768997640358995857673809964616555667949195828472351931110796863690691515144123375017708663276899957620878475512561575672568598068776180468266144969355713879579389059375253559840799742935095172311084123690897380897171029478909099921386353961777034011762308252337048091461003121948526440862504624897533297689666536817349125514098887534561934242298736546293109058176761984042705536523388095487196925511023963186436265399391172011620983292670000917866875691784931694748319733851514511612158154356751521058393271595184132524751371719778371571584582505756633725698099876546860446482626539894149934320129511643584440885989832132471854677798758524713355033827091009719123721160971526120407240788677720580430289936905514750997307707981670766681205098400740540200284139938159004764658575503005157328664754476875101844338642478274505025541707129858618492394119555762145111906283137524582089727001923904471380770705988914231622016261742316370675167151092244100263615426307706478100905879478696866518096793312907019037467188278964015915286598818848253039414583899423061215731596404158195762589766414725045391612023575154426227311687089813872457693398813321943392185762395642862529076343701421216821610613015652191615608848548580270730488945285099752318414710962080897719381073345287505831233377019430970167204768640428135001655792208004796312636503116544339332071926467624774093371223519848979178315101506959317815103926562092575498806093524325861665811877167615355606637220468540469800857501481486067364645003809878312905627935595304830317805328312386464034269208905480569381695469994177115710710805243678752420947725467267678684402079837124352618138691819852572816726029088234315781732817715521174790214890335940096010223761485468912983145074845576795998126910312937923625161730242026499026755470476986749735001629317531554950313704014757119886905233252344698339172492972826861806011817076509391772229595669248643260525564730482798701656172115241091871759555247354804697010374551461201707037578084095443810838334968102931050546333399220728351351312191061582982895560248230609835336012060973573193957676796580156363221704453921027173589696464981629934615387436438108292976861312941818057703233581020859316425015208952515814193303446170083298664324414267612361690245077511456522929890074277000600696998933959982234032100013869222477789388330128223884597895312102140725348020841711254100759986941871726384069600652977802302191475308215622461169274290802148924996857306991405395684301281122971801020821454275065813001319985364648386023911360378569046285593398604682132690495409592642381854919945652738790287203436270286419967302017791762997711320015476895958143841326580153642464628158188787577199164853654056026057649420429030705213703848396607534537087139297584772237584663154894796839407300789293963725043726977307293344835774175207943962319394262257482054203080678707832943046416707877822465029032767777640892861394827150913000363465848810288254892514582640200554641152441227569333544715783548415135411683591015782399961887304623324405220397433489887763810660470978715974005331662613415613662844191834023657846256403804793590615168316277868437124396796368195699971728538031134783724379293442720043400394685062202386200318454297986014676121871721141027918476025531329051955914358873209825984823909675615075064604840982714999853949292120709558670695565616167673544714025564855349279133975822643714537342381758051334039345717334136056750934395468908253745642432711524282002985680320446836199776605179034277190675243249404424400656191868880465220440729282412260807355095451429910057171850784929924878460925501759802680378815542198444346707945703686186912265859578652649126136330557116570510073096906820650117620660978800787777827155218654090547908430897717438464863409894730448202735039602674447762956820785543877479159280309754553880316563432532005630403020394369057415119875727215040002007391093351088607698172727434883748468720056123237457582289640665945106770997878618571128550933137141400744739262884008233014365469128128377046125252442472392522304178585994797431953479630470067982732369411112308280550687904081567023909725932016528761227586196455094094926396390351080139531122137059749857665237100310723376713920201105085475632281973687932970375985389283806840927724488544976765969904877114761267688393930125506238904265084408025564558193479768875596658386620154415096102949378650356527753778179415007166134229734757331546693756009690205612912599498695111235001282150373126175559519307697680399570296431112226297782202627421094676921347967757056530594998250878364391155285903120379787694189513011415606037035148616415258865546703386328539261194368319864627596307555946326973866615412725624109625204271582996758651682192033591132359100815328755960461946864854437774759522204043524052686365123985999152385133016293878461532090777734968543999597588835574809882173825561271141140714721376813227077138716645859494909159519145153069878324738971936843054909619926327983442362735146011264252426613873736672547852723343877452962099971900244742428335665121396486113882446667742372557095813649233172343824722072448988968102756955199623575495978675583916948350854482453482047452370727954393218607323632566199821196741430214420459996148488586022836454251085511212094966271422628138133855444711851943027418704470545239519129036791700037001243659303719517655389936695366709773906175973522303272793198055089822131980462524982140236099863698159647338335091389526306526945809090509758971638975916540735307624692533515497939778124916041977738913507573561216299245091325146045447151510928639946763885061974579317424480010424175635477719852587596758232366752858810268280003084902086606077926246856427804290820142243588898248344883051412110286256051942638862351271415613839774454497372036295101016409795659996574012243202181751865657544863916443956281122557989466540782333742849714749469066338216759020780544749588271297731276383731959538919652265421418028847259864663865999413231365985661262280799597408847324513487303915606984258361036441040029110978906904081429269747513797953372177312474936763348347882201552463516900407058341871024845035997159724905202507519913704687431461101795896460043145603573211753150745431065656938541848044980526363408448572090705400277533506173261008301433073139385777471593669578204180619919078787517747957204711261927563637997347736001667406786133415745126876234846042050561118314953729310993748916754974827367007740192863930760122510259967069760459062748439500488714121022094523595986988767941594114958489901519118120987924826113316205877218509455065239119228808291153924024395527853972265023966426138338767295407746932028470765041716948711245874385383160708496616698917236228154223000671057458864251288788366690450437670943876268669383377175252139995698457072116470220852020075725112694850698941540357262463198867356322811703705122657527745491035393420589009233612486420162426068790701782518039589984240332845126274989048967982227559284162848782912474667554191127393260782965495195833144783940248190349110391220367231097617156511148751282689493836777395185066099254755280729405206881985555992010540201236259788431020281178013228305113351737900183031723518190323367029227201984402745270565080803250398435469390442737233837716670887330215631069097790353555727809012251144440145280081792297381804047802906050530278107315247372155047776589570021463000655524918680764435193546457384473279587371168812510044223847637419640860663323834866131248884993465091191615552362802036117755444729737653693880138695720516845355322186757184784271571629147465822623627830661136052925234262684119584071237708644075966359488889494773223191891639756930426757676805221301234899878427041858947591567433730908598807027479440499506632354240991594024705916713876914628759823937641858697007401076753358763743932939751206169452594705497016205262876247035942110930150700696997148294926165279346398690730937684711614137458632983561699889048789337289180409242480096359682294298319765257808036184029350751929939005310367784995151475296226448469055492420757154214562151805025542707667325456799038138033011994058257030812719963282217898648022677694289683737324944029726480872165955820226076049728810561678141426434973097132057913337306077326990069345663098158296367036814361106540948087335993210003664962128800533035076833452354574225826273763931710211242503916133717993211300200308469147086208448593632817071163281250388654434246059027366049538632040253860191046856049877111624694370248298367614742628850216576608195807694027168862830987203695778401397056761714960494838722474982614903626184429798940871278251724110859168424351152551709292707462881477868549926176688140785317075337405532861913153358691022486668355682171883720712726759625651182286654709335109186065161843004111071363114549784540088815297822001457497797063826462517464591936489123437576419023035836627441546643079019250017968728341807255716083381692551424330300388874586314241121876421868155902709234575191916168435546273304092435185464002502006926585128468272026588102874156042901460501634947383083655642906836310806348935961869858609046177962876957569763988897962743280866847962162851761019440649136677655133125392739689450835718294398149234732549604797829366053983997635343697069320623455286981897495118404360266094270020985465308730021088679647854194443647156478581641955267021131752946862270240703615495622535354030161566604752901598222078111617992934324157162772776574671409873140499318680724769527290267971193296059570840607368358665373755567690301781748886156922756030452880169088795400905119223658399956755685411692306184495510774513817992040203348846972494270696814826899392610082147290947300202351237472967435029452038066381079832017344799787514498466111118018329786235107150909462289236152516098126971190661178052690004589924369548361403598729241558708055267729714877044097005006125398072151142970023275876675159346676944999252871342296572894013955481109614355615901342179687723683271609264284539995313362661881895212175987498053613565152003852512524682118504549584735184997505603695793063596407496989862033851044117364789050428535766481099514406877521219863345090344495807188474258262853636843089181780815941329059224638861682662284151404525355226352553736201279593182440504112035083649625480480197065314360607549562401689817873196906465847929569345682125393051798183456628426096673455947900902617000626086207487606721070333256763482842071034533394364779840071332880678392316991405613626783395393985723833927643806419046007421536774941641255079128249868351893171177153268957143330627923416016806484948993179256555988044473672198741020458528695674540809292521977380840559370325609781441543478767336224694277046518108371053573069530401028783320082250326587742454006770777540620207858409153717045288466272823301358147602202246694524182739567695183269324864541261589013695378333126361179581464319543965838275830659407249684392133826283777113384228439631646426124890508356703824484106671572859462124666455497969135834612821058421785535494724413560866484864402277109803708533911240389872279536436199158782603787682048388106432068815602590254685470945282825472351980441976307450515512941896097769904544690200095468671009068963062083218803484899706855963344905155071041276349804157995774685838894501594366804963218266088453650500989266519021730982395315836978461840213540060786212900277222216641865594918025466885181420734433968540994450782077639770294581763043484645380967661466359063607632329315993706679210470207722605020798819726986155781948842298210348885099451326487028263854108515176404353742931078505749154880536724276341755420781619396949365957979432329525638692948127991206204597310016997088848315169307753920487976273724667312165009085642678324181166440155399578516126437766707402788015109233857074223143583278243927240197807146218006915392440354131166163309667641917173573707601659331470025066327927929239088003714411253282118018299526540643607219182031548954513840973893601321220745751974055555298321298959318019276902053424217636848546763075651718919684871814997913899132713121779230694445570096731413691594264419159175645632159290936480116666112570832134592744570467439709700915595842596082656103051201331347751934454258582143769680029586456425982585303287546139664068650583659712985597836328092004812315588150002321845634492161102080165845425983089618077864343634980873430227976918191734969073808282140444066502899719067713575523413489167266028428146680869617784915653771030996377220099578794028892267083084216141762616762252091189677019729911028321091218563003896204068549882170838134503510516460844998726610256450390126074327166008828870114004460910684734801089960607691791996140593691221694503809064687860431707170088129490938409615896402552078257959406066513648379444972805256402127981847281887759265835274787138805728358415750326131996526855936085962171830076174916872429721166214172901857084727853185416137463714194123597929096139497433866856857972744896448717324335627431210720108082644547514409992772691678567100197383228373796283173115063710314103092160446863528770199936885614304695131954814773216439272225345135203828630971115141200280152987006938008668345346727751163556079327732754084531861049963247240632855750444420129967368774354502282810677393913151014324548716624130131233074189573924506077035116719283313296759838837917014116420237704823181218602729361342775155112058435292591567644715133029771001673615461762055082056477598158485909016079943739682887698386530125027314595815214172310552887988284674577555225321187742644395475305103171875958738303180467168891802314356835614630521605228761849711563019939371246342799584308805014307313196744801833251866640694107373822256839876483666556214287008310905964932149328886838859066133095012404946979816864452288061456843669714786424264135388087912003108666569523091328133512715605584529771271523257384382200906885930339914332302979844865582697077831348327081297344080717898609275714755362952278063625861375396763458106340959403977208870967843133787123593518355340104846617969652810583300432744727304609904308173832327036481441813788170112506546113814323710359740908982892230838210224389118703855943623232359669908456818710169409675086629663447928516415020535167002822416229376548757231829762386046561650096520737805600850574986670050477548793808562940296584485062519586551918968322905426910368908704261010800342109858725146988950329322605819735540944208260792540635754322718064913371472602831729244707185611718747564812981340001662970008706508329812237498344798577705343042987902786939126195911565685237322387303827300110720913955672253626713824157683645569185304124219169607754819943823895109361824294315327021062679749553908322664691749044754721302475138624897635940329676805722598818436671433307138163927132702586307412831268920369151192859434193792765951711687391586116877560217699150279173419475208857583079833381251813630550455234031696702077044981886689982626694704667582806848957986292437532064534014209282251118817621366372808190170449544725255519773027353787987216155637005204142415501013467280320145547887108732317039302487322001387105758566724553320447684778944362294766657888077387954194482101695355960382026219543170987931815405361547563702787786257835290654887136695718499597182466947122526128452090209968894628033328151470638955888238158586811559886128530157132149555205973953497253844696701164386777081693341029505339027431514924551916193968388326103210582447929140215346114513022285451633211949227116952204596049900999440424837338296729748667871273759458390462377549586161331936765515818688878018075769254400823852986702946536826148258979866940156949090206403338760280023673522381093931231940157717135587251605739420333097447711896624496486040868566742640688878302489840056242132763473654684712568732099445542994222980669504485672228033209611127112844586868900569014618877526673293243423046136325844847960887470270532609747992904701944024618413938268699320848605327745295680106149448478022809207134819388927261089928154182911692108191050538267467017447013595163361733534763233916681243002186940198510777192779356657480042682039698645693848615080502339824538546850858911520081390616761236682586770232998746927896201683765538643271636998737102011433387466203165898411956407700793383648754561449510793158314237161515554908066654101245326792813890834744253468993042428311552178589879239011482224225172384685047901215921258619670698244505622964178092767515408036968327288442725933682233865923638678896791923127531249853836227526478831187587570499588292263153625771361233470360254926770800794152265148186612087164745628685299065611580497759887751243318507965310750422605419019618994754695488642826312704996053643568745521228457810699166660658936922310413150817617355654339158355968154321496845151105097306527600001367294108480216015274667388149592701684619764485569987572542483398213839038645546804123979803622109150070881949885042406255733654311439844674155951052531544568375607334530312037448386193027456994227161290496978370631539096742101786954478513358782190262085872332808422804657364858929420108530900720094426986002856394600959605856621407859821208455559977793319351747053019734350646317558601193948196877411495024736009279032952730775346341327466863838907908188234872944946432766434950977423138199534467424010061888980194828861807871855309595451251158670901577299404962929858477274120126483556789901011404778437847789032641674138478844686808928889143508462709845655313970153178947804220735366321738378268778515788042214997925666451633355579813217437437231528438282549178589164194126741620473863116836533390452583532878436961942947498645497443645885957319736754027079683231474156786406159542393118223619096213204186298944913582699701715626329744943630326927334422165808049682649574342164668366841849843572805611723747114098940919242912339706623562382795790669245328311617096602416154219492424728831869566760071147884730000518278564120988711173340318356274120234080070898140287966557232298131855917980349513674760395802209330178376899469308516044445296344905196736548815377444775174440631819407025649190436900907559354165715192892053940458721304577352110668373237249127284232056737755608402334978693647929033678132206492651768943897402847371493928403434665981387421922700313783840506244892896852591258687377051460948245664574669198241827843533116007284077936222874313061988110701402423494830923675664173595047447706646838108836249024783589278599419734345897205886528789749359942403259595191886095598269221327021723509526784283518507561392483157754045651000636939098047974436936139079476593587262453979704913449523812637652383448152430803704766127380590248948343852650074590772075920459518647387895245143837471314109842304210033215948669420391083838093316286342260387485027807999544223499439686224158224233534832046755349902118966363204968684601041312019278306792371238188270525072142367081955234658522440834886365931095977241749401385272163009944499927129679797984301828437742094488309166745130956601799974022128567268714947435237945610614163673017607370316816175258260252102370500162523371998560845028661061040761579049925993076157395211293207116887968979750803288820518922835358048092461887701812366215304166960663236245912546869759773707762048625803587138178605277107330780302484297047616646948068057737369435753976675848138214339654860146071802631401222082588621390798080636843037713541615596363740938765849054646458752190165974616482998747009048227083741380984338376301808233555890739388999783394468512658409132811479192581142821464141337853179194991567299541170383806714168263099229760374212186808219401909663753410458089703303259369058534795678484088182223934336641899041606774464483647283406152711760588726036360493286490705941776884933025686833678327069195210450275968468150578566485472197872508800391521246567617525958625518052629730286937269366646266106562935135078433254453194719653668499651628897107661501149263979427146068932495790695490548673157153467748771078049802153801445692226278993283809794223358815513315080482947486037484439970191744049208791267944137524249643050206534950612023218279344172365780654930845415974902539853506433220611854587470303211433820532230087046719543599153401230418441397924783990819205644346676320269836895996990100510246193308665541273192503065732688512515038414636488445188633502223831042198716098647380293322343181676148958701035120037843765656759923474910001854448782490828433159434605279143928494972420543847072438346313346128327087236340700280633052909747963994834593786571199185263416358769721552462053284157902735363642279441284144019110080518516854586128558241916423272943388066632820111036650491907177869204079624563656639686161394007334963186326521401242667399392903273294938360968181452353319647429222057685920449617958332838949452965585750235260604567450664081953884242183910581520173353906580492295779944228251561012171125204858605041186858397075917530603081333807018061795846309154525168605237920147938423183784848334698050300098714378818046108985079637571284411584042610713788694685933330208216123340153892805018431366184408505115670820947867969739670912312996034636366955323891424407058236925862369201094594079725793472804565438060360357036728956092099480531278736441221386887855807005650928795272154923125439054098518839988010626272071231780362632743185014441618172659204375412498543933668667050641235550529749884587085559988915789935107170867905378160494066437185485387388711961057503685922992770646597720110528964443941585968674636540397927839781299980973342935893760610219765835867660569123096875548877499084915569432662077456019995251860544047613493060995549242339591329931680141496678603970640645804542232508866341902759406815992293687731538820064261710631762936324281348435847633666137325546774097212038556465785023831243446240118868429426926331476094015994311113624058241468850258214546112901121628165184519491216170886203632876950447174591946213700507276681025740837149906465520978889908215800891076434737161991669469640009322430990099034145770071207128034416918349228374161743779260760636019942113870065786630508125568476224487247329083232735898265071199018289565396796597171737000878052120245696746123834408863180355524147307038641460399625737884532180512148349112012571899851031316468917662789210927288652939610627941604475098165508531893715081034513612410522169217578238997670602015313889221945270830954303492132633995696302252279890284214245900433633300429445488794068057293591673458724773196378316322776645679501072719297527681476634757012232629700084512141753582536145039142374835196824497847321982172044608250856189015882281088950249237643478391252085056499528312600391211821409705250448568394072528783051404689362144648514031659605157417185153960268810509865827539654593888412180791778834841776393795926172467360621108822914884617359666105353376142143781198319746266790209349025548025145718163269581491601469604166451551810917917097635268306227612417049772187463600982745164767044231644893926269539321718908407939433803129232829370653402514283634317693079843850442732854968027148638719597261574508706054076914749051114635088679321934176262521140726391735774683560908249226542299085895926025398570023759714960239221181803016236296398708804302980915759017563509029158612108006992013414258139919458147989012032785922441853235322123909145581659209256677590932544321764670884768014986876979434670701660144466462087402976118604332999088694523762716646286188212598525182334137346962406723684817192230031183999948941008983458255185564311855714054441803872008477617913920340755577154915019342113418838291482000509527825032293173319330226488321366202324487041472189090167851679751878304808990540874013607682792855828408146904852246018602850111852133720662030242449992510849173124459389003056438590691041875713122666441135740444478962336212020282051393276380021940349863826822048328078911353204876637348951074182037943440440175138692888120091915978792892321208079345902075432877670773945684111133325799899659053373318411376828979184849482194032126511410375969807000104436671947472011553875819073040535364465982198029550002488576816233214403332907921130670980496754087134420431617207546139769207185007792920800950870073099103539594892636272883631511236386583599248474812832335343562041414750649106098614904710461421925587421238336651188075650374868087535746184657640652391960887561080277492684306322973194461067585575346003695156501764798141013642250344457640516635285893289558879346473065205139083036689512507982753301130866305268536494984514321048050607910757213474413681750975565970507936797034498887979818846011992015845462361383516078430764361727191011711125374789707708717602442242678414847690772554321888102347100814631679685502892994603573384658120294030502226302942237192437099910972132233888853333199432081479267135117552751658661703007039946503184377607298148233896611731878569952140503913943129048458843508216655434093111394518670847070847045670563288430166913806820356564456568100452120381828253096219895705150387696377252560809700428405315171678756066910405558985060952738163908001162853282363387072036269726181206031841034049206009751667827131826235368500313682177587279900069094997738145581329606807341004895993399392480624262556822145947599666764963876118705061736652682126411953150028166980349143584548680939784031857125216835058377886243002425489148329590687684569541235813295797725705391087544996512025352917857279911249161490649726577140820886083198130228139210619869056664723759687966377903702150626216992107321724027967181915999662011993623523861496871390956105861844785853710719249964097497355272964715808428294990755329678304108340197084922050187767617349628181865969053458192500117504937594972383115765997283897813052961123787391562772593178158074467645331378810032017359483422115171660575849571715835196295827725774138970119493663581557299783735872788145616263812328236632909405281865951793137217769314218524416329908188086202240176192763735327015786041253912787998451717996711365808806171666529238081493465397397887945547098876741806132085899696218115978779363532854596567923946155705039437863733143158456023871850804594601330321360178036336278342943251361735067025311119613601105457042147141966753559939320256092467803523564215420778583504810134924665282154326924900271051554535781299817185110646122973141422487659048006021282805903537857018059860488415223182700037413730058535874155627025851748582819259357152331010036912126478371952939258092445390523440314082724499389434137526129817606971534021420682240093225267949310314360347837248842850867196874275245597744665850684830842797386842612179987360292910564705334346030617285030279859871302327372357258890688527177394826108295845250363525087875621784212891236511689011257906501468368491381016037994892614351912594114397843500344065573483433132773349825960639878099337308612246102633031663352743175342713817272671162425017558502632368452816718717251155391171080492103982925351857453578538461396098191578213521020320119769853673046003649466886071102542300802484872141928407224982647425819984861367019815381941331681968779600280545022491713115023713655870946539467394378049259789884243658684553300555618807782656045646865044641870302754487886700677076071433001159474838625417388210722124470775027174002793809336477141014873169985115032245585711080043653218935377846827847250937707491470448913572250940793201075802892388987145193822043795572896499754675974608451120041548028103931329928249822421953018857807873298196315659850969336263994232585693520270282870086794000072621006555718916256639809273515621640743193552862933439714810730577837968359372765888579888229773801342204787914424638073755964974372115975438464758360024448882780048147382873250643691158483848314142426781157485585413820369706393732369588541177529431981649049719625248331285878437064398160544466246543820113874339143094464826663273657968391885446214864738200446725266816580121917659450707658003690351486908769469885920275513821061744851474081250511920391178013051873722378122369714380414554282872174383586379425874944761410341376313749496690364820438780834521542398900922959001532823133205516302548848846506736444754861548066946857761863977424036039840828569800936478903556610241571440403655546517753034628724554361630801752825424201574627250573070633780480475085079757111402207126856254083835075682201427593743445908650309357516589226269177532788313985949002394920986836912434617459436446052979264445891468503856375622621276514156503150525646917202442084361795231064977774317142757230624581999213455738414331970518694372658941418941883685807620358102755844287279668483498854644808786230902558649229798917289389587356771840225359965177693398300892475128810907950361768063817510340977611413047823359029345949461592292283053225785836606412111530906666441414108995744716728070011516525285447406398290407671895060116754704719321893035164184509887632537835428389048950550642396313287533005913622287714266612094332574642169799032927300636332258885614397177386603329227243948704730355424071914341020325801681370617683408333991392168623315505210141626851783307770033735834607912243403462045111951235931249385683996148631821239331670046333082719742368161678394139211995405039753360002274862501593784289745927864547346602538236245200889839710533860749557078575586778037731595929645027796034033570865174878080438875856652919132900137065818078074070048553846948059089298989769179526364967358123445658436935691566682924684981113817620188495994799832262869313960549167065336151091300367622948234062704443933989000388984096914197554137916592565877443961147909531543349381910791994170527009988660056938160041976344594579188402209656886110220450693890799532776162137720181297879922483247994693238063211696877098830946953435699645068209417284932887169725108548492046062658732521407835178673548146327305168756379381691928177625345157702329954165621690326421615825261532469297421256902587273690325444739534805451568431737332764016866738639430088612803563561477125406488747736686750819889877898638969650826280216356683169969575358913479104738700115726297034691372574002921873503714023669616975971951214877876492457272710603556444055462072383345513019576569944451939872451397865724084052280034284464423588460889702082961001333167948709667730089930519919991933388862535466485438524774411673045937163627704476557110630127600801567446737673454101783168914311436092625061688861388230682364496269009729177183915309387920916335715249908678322270705548352174938588477938512130754201486271852299668515134501665903870760633489044908871534309980628000478462125184231810744769372241114113343609713919313721275202567561293365620044929718815763056004147122383418727084768229421951659747672880929335828021437714201391608671938812601735491022084457702826468504546493364006505516825229594299351445734557729581870283837339190265951860036496593290927162055955139398666325421821073405996028501305253408416442885956676768880055474127745794406375677091207455202276471203764937216394679794564042159791105042474725941232253104641738624491553218518191835927482403916330625231242817239182041146653343996596070071793438672221430054628862989797862707845743205620141766401963061258580504890369995608149891341650832191674620931210119206506442881336784969913136650632519754988937481857604024328828625571226442550605693132519214039140220942546600194580952386237591824158639686964532986736300611113028133148453708056153940341415640431358011317278855480066678680319859586694391721703003110422745883688903172137296395088161436919093137734478779543219911478594379008666827198363163622952101896780467410297688231869258313239231698724487702092501637616824628862848009857360242575098957058224642711792028938659481448987652631568989097989949721434146870361608949920587300163560768509854913600664120122010989005163381885086275678823573706809145597570904393830309980518945911786464648491788893441058292139364750219311315812795287852198033533271355835838891030799581530468510002977161803000259105286421253606215637399038207782594912282902354034563604968593417407789964618372718725829009842417625377348414416566702491945056998183437217748455782739472508772003044578190158519401154666815993555658550655442796341779511954833990128330068396573119027629149725633609452562911150230788872196111152798671517901599198170631009974305818128106535143781139729331570142610798362116073989123718388418917419632709587630122959490382733946406556509742747891725305875668451980341675474544080588546146756259925881236766047215221218635077705525675694194596664236476646080084443555459568447323586214799238403867874952233232507224721128993634424905039488210914093407889028459183762281443675290836714288256487992447232233432232987452124800781612860507919443395021341834353603214818700277120948363782752268729423045907405143803951006961309258209638800261057245604252905170784098953416678341545364113934647944632431275078744503630830534204101995401301981245610414378077403890620669604116731503943145403660746153517742189094441305158778602145794297922261059401455433437853438044645176865765199993756348014542286418457022054991631678687654748076373898496812099857193158801357349696292660332916105082143133785056914628388289030510157612191466431175516411315910048618423471663023487455884936492620580734418540593773744262033923349336238419250269260756932199478519498106499232473621438247917286738167467351714447861868898397386132740385591290368861625086550605546212627629071159850302891496708770658937584112515951107033836715492394058615483513384732809633922397074858575404422048149182908866939794794487855196054526948085400934765412297586160421973485359556141940736037378367277037772664017935414248388727835749623028373738881966016000585500935512775807104853257321439097690210199262610997297649771927483753228973952200506295493529943465129227927576343000182929837334616470597947625958909166701851247708138689525282467760639474437787366655916171457270541701949812351354950615785353778974648764005922860678923196243267686159640744185769092828461952556375527598447820113141373482485133097251551906830526823402824001944146637904213695085919865402992026265556517041070240609604034126457551717646644871088387132174688693500874850908315197387763823593035190296743697505159430871694181891956744397345039926043191452514746105093269292389729118684991521350230779322305529668904316360712221281297839179244845558285038927327700819660843347492778657101637889022295649843315003114238660880204414190292136086882959158741080675241594288545985321739273336647691269235294167892767273234093976567607641828694379037354695787151754634760510759375201605379559246821924041371309809030712788928245965442794443700132538808705338198904201216842165450455373576446880137457697219492683988836806130402483365726381093349620826784918367294564296240419931988766171300222948125868228615761557541283480043836197647690978337211988646022315370069686479660703193719617605273176874712373027662256216153162020365887822622528902876939409021872371841970565270536204132001048901183519831948179812845675330657545001142734381658992496712055146489178951116728883258298376044455942290009186413511736629734844281268707005012825860213220467723978859927373796207059643356068511617448495008691479892837590163285531056325143339424688435812412241452971124105789252431772146926272004402268123327299903155303728118241285798819965670997775172055556126038032691607017197428547841897857523500986382769386264020009983079262634253460680012733572899763278144577660210661559649325465859888584079969665898307269506592784325370338506027297090417111050562684870597539115139348902553685161981484188687320831270548164604099880435415522169966355547236610904773439753913119642454665197161130437101653492629044548019585766859915416558847276168956908732657846783864445658444201563435137131004199709435320295687414575498256031447117002133641353625466345429082288568398913669380747077512491294883456473618165544133622643757062979015479087432331004850721670658593081844969558045239442659255931192641764034330096454622013160000667214194632351753200772159722248488680034296640879823307029397012454748844479315416981308248089463902576635507193335732500680631377850062730107035024239935335565482927448052447057111349806857197668513368374719124381698617009327891208180565078023066442805394534279263382399879397931664222390070452571289744230746601425245636046494348847128123727891294996223346090120781879119242921919562216625574057579869340923065486535635624810622519445196567051424062235503803542231848007245792652409037579987709283159905224275977776188357799268750561423345886759497013403209878980624991275752732572102074910277307349258981251984314366330519642670260459770523301341177515660208565005068633663018067210804481359447298262482415937651991892715618558378269322101098721305304423559915316760485589294615672923901191637897451463456815938226110407887868966722755015427690027603048794362684854998745730225779715590467515942237509492154250349380948750809000396484516848001382096504714411713032628526858079956327629341203132407397276199899808470409898130108716228789963878887233304578192335824474392707188129864422376768062645486622286192321461260923670208896975180601194489181899958145335118962355757160898343010935262264446458780692636774833243180836999964602551218376347492992010726549750045471217390052363031733827597648448534400498601104231975163577884900540921917488050696188571988568834624546353912714203908464653666619614214454587218064510193539175753825297707690140247901327395919177207236721599724716212108026783879782156971456806217575869094743819964024929273422780855988842595512542031543328335142831081044325533579926823288089793063168936514978778255631472597197452879637268053538429641100197604202104137773533552930264106271193787126985168979717902346770142666483119144732137980116085159609262702597858730479931173474007052923253621493247850605113575549563926744652077535940441230161102829919440278371156115750788047809069428766795437315284718231651989688173025692114176873083699921898420553948682845658021595962448595041225205738156511868183091660651088022059797463243908077562161536418159527803721168591626306031363220177143662966812551463113356624349629458203560479494880792161975113628831329658190671871661667762088274511022513193318366352636889643491773349523849125066147210178362817502736415371972005432728043785539608102214178048904342935217650244039130587654643977881433048123744304692241199690090760254733055838439190794714145622172765083086956186791231250206593831913722521458933358430927894238225804895604180798529687522746273510136711962318517952269555103212442577304490834313885125709430701372077029442353569120422083769132550773613179327348094498239578188002370959162885354767602112499781197239649676776253727184996962650923708876008775842838885260667423356606516573224321478218018779888740949680752691219422302885075746312669824128299928661115406849327979918500312600705666080872147932074451153274846563955986109644555003819616077017836039729682499703465742506702970719659454584995407143196931671078019596493782776170976820573318906097851440156489776503991466163898347206694602726094811456386338919295583964094966825107972126602628796035968209044773770000268614750233518540151964972639117312208209655833034388080116753960430961081335681277661084611341161235903567192389741205924084972230110671470056472791222295301996652488800861052901802737290145862638769406600098128208718613794981439630688062115740550565255063899123861443812318808161463483880131970041346311202374153424663734951818846133354294062169410967148541930333406541999934252899191283108504035269049299902586756624918861951492120319027741226954234641599485427828431187919279136395359133675173751089552904400119176723713375039235495933022004796548504087502225364358972746027270071485012885222794521485321350946169075922204245059065558982071949339046867301406412292377153890515585352153576519420005528132576135034959470754337644048482589492197749463003780867828961971488132823142860214284037184694223121864778377009057704981868953432690633868601338879679248572114822487889765727142090558490631605491167933275737876510805707871333244708885552285922215769833475224225530850788693078391169822867529517170916869952470157617927096026679132500505350307010853390843097799762420740188207633348829603527314202289779081001112010496057901826349282431965701255316327904457676362668008625968913671229264058108230775430240981909001963560071210829205287669576177215980288798329902849424913738381400903688434410667826344129392384018354492187401623846943933547722668536343094452590168169072640766535697518684129042636403290732133272568204657528479548372388795370390290318699707947826748490501460614715357156767534684321541294383300904954995972822799608534411120065621606236225703508079863275356226664521721616343643530966659501173475982583891610089891297382427811541019919044810660948256144991782861499081668346918657944351968126346092965166810260147584205900617196513379059357180579226929644978301121868619807329489466523587718340762249574175184538904972068669017016659724235174735670780348785645636573004942846363968986752045418710663550988626833800622683618823662419208858531475944898877591394129342768046252667664591417416359708935476471409022633682091540973579539907801495724950393834748462317121647987487647377437167144583749754607054573340407304441531045948704135062331705921243313914189614211165583356958472065948042888700981917721122290391178167374733835540218537799513611925118627468761111528773541156881261164894797815136680070175766729602878701124241240534276669302956626222588729646670371283010595035201914615836903212415897224031116753483712166175088408067554619223065474024451217598621284694585962394296979174567060100415895266273703439462375821033098966687466044599515810285305165926054040172959122414305364415790565092096989991393977464371756881722907617838254566718762427009253618159453010504285875110460272260607375750917502663932736749550858418804861792436295664910264751339278363590250840287444667810153907302483737432240198478596950527940506306927494514342164903589384964267512106524330597540822579975602940408921289900092587293080893987301819411317802356642035008428140839487448481914937406515073400386023993402237799882747603261552582804850978263789963700449654744953668553828890067781427410563626486933539424708370465991212673423242784227340597822396932945560697786458329845926679311240374464916476152324520894847258359906073641966311869559461723933041952598309832270704641574766473162197396679178791875002389398927788954696351509230115658075955134850431987807621072568750938661387763018741307151059891617629347607258542295728129648797936071979650384357095021759900257418555224765052862929925334785071935231241761007867728028314388434424704034602460923578013298754706535294955176138159718795742538449025787528420752842884872889118259721767182304004297382593317054189246668943170753559312897503415433946440392765698816495813409183209617290381283289982201847730918445558198869655953515917238962764102308516881406920708395757254905179656906951916336179986360500261568530464543600349597226373204620622638452178973668344034802641043522290515938256227684388036036813940404271559272707468817505826388945593088199431586184381515251284024946034618910780174729517072463594028488548742357555542946649908945453124306648266673468144926739815992009036596223310450040763935785234459214054044778575521199949743577048452475432229755220135767955620722847668164450913219735589434298961218865379692985085883004321733686796848187697729600841175995409455737368265420739198051947055473042739865705161360527651965982745351942458786774344033442167917645450654294300368021636478480537586258153229881459929147808974916941010178453087779751127368791429840358968338031423846357266541435627643068333992382691346716716185134366982489333342587814566855883537148895772207946840252772663750347767698939638279736835278147472160502502582432432619179527488096029705201957349148985678795770417834395977232022581286019541735829589210520835671376068708918100335064013978975987996590436666945849272980891849104265415159122064433746549719535487192814957089481249262781261656728700316382798700778791598473735344569483546231681963144311153937421675384991398130183624893139087535420542910379907996511275898130174840079696436372303637524874958575936918149094787802406528775990493085168239825427457557475863332890715304495519487852939664859625797620312401076269749839005929743719475004928527164237528724944640939160495499961055999439798684499370493538784135439951783813352233470190044695608944721985130795616773569400717642588302462879624643498946311598392301110635423856864275244334166842569283551668978079943202458897825465078145854305852759786153611469020188212999482422252780705524299015592471296040737848445775531254395082673267486727759322099162577800869955505083279039464126632184225398140423001419758894261846428334196717729807176639485036005965113135266309777868397176117965588523833800943920991500018721852363340396687044631250702968675425025437279423865577963066324108386959893795699753635672196754159071901595439279443787166957874373783741469911059409081879177315978911465744580427958312567072055071051190374682725574564226274395057410606308337818707554975452682368396169132966880688173463087324343142308010942325538428461367535657896184521061365763879013966288353924217587557006204013780530743011621545152529812966754372398155307573380259045986361082337336497374090630336757561389604425234566737944088943899163242522735861502457355806833573780551085942737244776436380911909504367524149553525693991089281584370438899581777943765142313815719158838659426480214619280419788850406044495961846939873085449414670481739488772045937405999427457153002247931559911667220557903174313320418243391396284634763037628075322082550781473492803605320776912399778573664276774206023835210113823320023241086810328010091299261342941720508372244130506668295189705253188673636149583378882346625912041792272864337820910994348369281788532725297306594890123110091418682631665188086374489828742443950759116126886790178490202245801890401354920849978522898880384240726982014702791255906362911898808245464014943829192971672856389891676622821808663705813143502512326726862448288766332658478038192757376818784938376348949459792698735467982311745530536962849416670960758213868988461772939901709196306200679042919470843023221745246760848920483950309352619634784603125161534682821926117797492205636977814931890033306290903429452839537923501743677715533714705459975713086187109489159440061402872858302702602977694206667184920094371023470906830699376717570866939024798563902782025860736853723079669185699918710903231935436825765482784443412173340215211420298812423215652171926316978124966217110351724134749811904240427663864457741873561669379638626704872199070925417922673948123797776321172655326522666799489913123750758251701673525269597591255824198202203570936060149610673466001443356382008854895243926601661601658207581758135851171162498887923073548970250273275382970634079619368456462871909236398987017352066371391854279159609947605396135240703123952118534064545516214920771626717988190822879707504983201024479093897330305718945497819321119625066872416956690791958867320759526570927990146882138943242182636326422235272937744700908185799266828939565795787424705636505947202197499621170700854381708547467706563933776911292494832441030137544411350208561526929553108274231885370965337268752631618797812467141001177112401989284749839520805643241309715861016912598067511432276495435764335878810853059653162189504739799673094838684667810306634819869946398502858740858757268247211093459803156284722784061534507003465789333709886384267969003403286657173479803959364846145325044904911553445314658720342947185757364377726579988971181671877148861168918963097328852833326194731887648760916654712361591211442530131502806327119536630747739762388242866917855485457491604652505065892632882928287941098870283401658964702992915842524919870552727047885078811836788822729611027154512338713526502096855581094833134009137032761594587673562660342427508429579565743033071088158836802514807062306454387727295678039206723470065816043889296322136693092137741428250617033843774769131105908652497889878705539821199316459759086081723935344990716682663130840196621185678899883589602737105440431843761551934645204109733777676999750418952489540866749604093968299708208306102521991379028572872905690959500350718453636077443567036374251957359395671946962303498937442845975804148582897723859641786969359673764642425303944421646873967950163729835055702644603102346716029729162988871529479281392485221514490555238768359359293648600884025001038615247213482994626101235512204564799090714306582193962004570516319332598646612845967676270515242151148076934851349029378882586245586652675397009298930207774464675290487258614057737662297079158558531235448386201640703823870219587071842576770453642637468918826761748570374331774251994707949881168360625970052007509939083319464447679301877986296653024448183759004684267508511646908910862470203156004608275285540636905129934324818311546808604935143889507284118846440189941045286206849945557945081162441392994710124026156115528502709204407486931873304350563192368205421221264209788946478105221266232204895178614881952617581347632011843314896721526079167867819406017507292432605284542180941081599781191542205442700328854140530455364557828504282792699036711576289068481354858459532511983897530496509158405000402207074022795874787631280944878230368151702038563232961659437831180695712137164457663209182374295430214234327822737697642434679768906318589592316810299669956285128482286938129100374120662138343927406815437860451207574819138838112931894562298458712408664628791863069431166897806535840591226267171581592350551718571472766997280147389024279639880345807210577706771797512703226615508565619919165073915419586613311301205565413055505772354315243770774416316093848218362960277162621659358243098160920354384659569778779284311781383727181148235697460063360468422964008384408857928032854204720376840644733757964401090770633668668966407467744055930608060520557044664206767687361750807694315453392202148359833173347943489400080196199638616395056181506404494081497144020840482837014941219814127951336191859310825310180645979627153435494933791183162647974628267498069816017260170689982603317716165911097645067270933233939761197023434308521582143120514144818277244610842515744430348794878128351054202837985439588972064696766855602439618255918768601363877918274661310462289174864440215306743810210411435350953780054533796660316235676216426336310412278403200162091901283920061717337995599771443606287580916394519684258650974178098316885079476238809333769261140756897580068584926823532925402171445210241024886725454962848551720716007001926341053674301881083480951658581466775055316490594070109663950832944685327796174466039016955348944838467845711054080216662568989535144648892236349336815995889797004940633430227613278515272164993106501445909979932947791447798359430777259317138904707489487354309963969368642002539249753401787002713940822416414575927513744399671250649053057378465392708566899576643058288865888697109088197706309176580313051460849213598197405388797689121773591820446856275611008421514069812066897508747572122312722282330761551392443871347258171154175351249702842679913174768320823782278480171621879662746882395342453670109113195976582954660683727771970503455629597781513077804136790036116112952508039179759436795678708021181915828009931647727557523947207228077636090873286170230887952105760725405003127953697220805433363287468145354103194900766580764357845040717834288671724563236917371958765520498697158540016149068002742431011778981940056510384323044448023419046896286675403252257032856852552131530835372652457905735981600390647307717280211814793716618940005739637112703537133788096509079398934613034317747705263301107998738544449173056700896081854608073274049460828038572789958925456684112350079929669189461230762444709151133184731442677125876086344381764940578470173478232796521195747084690599461698591529096936188438292539438503707706278850997176405224420370365713937821238346381923517446754971874279209114081764398170363194883909294144207005289489724929908160781789277509220637247089872882804993794982814959452870667987404630232868988420823445160434187028915851889070756647919823494095155969038415216313097683176844411608602640533095751411903511084353625509700038715766739730394519461387070939676759030710863589659537192682740979488138064213540528260950087418465088587229021207930919890698936722357685879868695912869659245907182911668535186719510533960417966344707477418042660099504471422590800490301929971204003904249934206471104358037703163398067752627901904476658281395635952326714171220529119475588946911732879024230766442972417441031016280484763215485609791302471488576771050386214606711672000480080984939162842718264875472284717833911230591496267944915093368159714408148357286157931041699890599468157981162136691692017244694126045631683535054794891009982181859951812770622023501864826084443668884327621381562525499339661207935050872269586913579120881685153117008561554317045664870924060148374738312724180674149463627572108468287226778805996161216397284557767350390919492106364126655210710796222941022060247975752733034741525372906217724884049992016915818523787584559310934576907406923953025555184041845691972224249581158517428466077294953429769324025690303494326232249574007896175544287465211065500707463043597946707138997049177516589951961597478561771513944200985035674310050466779790820986138556218602599772637840536880435160957192829832283516220093457945232908392248385816654862436567410562311323396963522868224090436716690011989598826101559421490814798210784268651366028316221371697683416461221040723390344449413346725024501283785730256825331248387397044637369240705502687839494343015464117122726886960858066235931965710933320782477713655320275363947749230902733669879883143650737243022909081788913353744191620006050815301322906456213998853413005754798216062951890177700569362470425827243107051790551489794262015164897919462699446015211192106016864563157407263540432789685272423098280086472590104477657085587016689412327075020111254178310255738791812020779218504156958806769949243629831156511855358883223522980169456295055599464014818375019273457096830031188360404055711620624039784171847890242472345823720711861290607357638954685983306306045486690240236875278900772872361169838288593715650619837904339474790288902863279430724484888118074893124815396558750275430489686788085299879424833657011329212150200573847332202940515141707292877488353716189429197352935585158584877565057437315109735328181280654325643335032173481644409661954196141271725513378149661721803846885593236432919279434882191166334622974222365623930419254719875090828046337905001162113834941417680488265121257567803009126106059805663452573866111775999359366534039886895471900340403263486484338253108292107211887100497592882524333817933239158935958911774089784742908661017064183799957267822585121725578232615648065477469530256414422970598711149042922049834533970400684508488318930357240749814190128561421327865063188502542913638020669460901345320951405873276506607472311157285791828670026304333273813442786571502970813784395045168679399260368065920331529114572369843974995201767686588546387622782363909573602562290729615881799752457717636723353721705925754537184083899591465879657328663025037682173601922512484542253055555999427884350149363659839951823633708849661060119360278142943178934531438438347030961023115037966617640615671780957822738168100177762794436824761332835329034070382595320304506432586129684879835814259357750928129372697764790140160758925621542848537306837136569713223538514193726250382085302511000213352812830910433406795450214866633563595169728409446008987632761030091948458450778543060780329214605281402209744286043362655152583555263954369160198896350044828658609601714986486903867726937471515226284885923168592679748829731765190661910637781474246021133528231917459223036511084021158002205971056002369960169365672768548854781136123390174143356919058573394671620570290926916652975925890793876124951264444626150251006709899244618399394214684627513066142830898721147829927141980397020383933733261524881432326521599874337620412616891006151698269646443581636776973712513126270802764043589144814745795832694363793728243266562041243233262116465396107493395106819860180392189024771708704945662107686742388449275586070447259414876092197283870987203908284145220178910606818236385595527479508917643449601842796590840967849411815466308543204597015207047757750418497352451020273279712064076956140650344033358937624902561757916248166886063238364383528363134274026261536195144435853938973871852660292719425199506222124856675192851641744602999097899530522189179873650029558948392458267488661175174083845069449605071261708147340078520429505647088232634882945750242596497628528177673572992992766466683690842122926159650487389774820867431043173926061792726992953920792095562995763330634618632648502594295628619985383524264407422157224616768525950248306076358729168450078933074525255681915589364418459758437778253796150976772102792514430539348950876145980545543453498445806212324120555054747426007391945937439757295714343697128792379284641417868410049014796584682344421851418360027796106152422372051646886588765531259366781963858485948997722869315884481413643323663566888571244913244199213144842901899675477106979126767459620946059828552852118695633177943746790211063328280465582175479604819771798248802180137529164027227189625157331936270400019424288199733768483440972896155976740461650008529012764524123971824972365507304921913438557869401506560211093018073913878333366788077943189688472911676109694248845309251997652078384875008640951549276082144709483909947811166821053222489905426218013365912280976406870473476589186247685768836520223949712246836783687638365204331126536944063276266475694529828035145081549252965216726095784358451563707452192293660654415570197328222420570296668652080481102646910493594522722962860085699674316331350679859375104224076492898919115277062797798546014716449436382905259232882778034385046695394363368342969844369854967832999211459995081749989488803378280490525568022751781100536977426620687114970644263021418169536179685030215861675555085508611606744154821259797675515456351220779183751506535084299554714076560416444080507642026443684501469242797004667318763953414113354740917017951720069164599057290948481550580099472188558525275209857489876470678105328630817798896089951463072397316011322535043379009609897530541318193501777256381302875518324833256855613625479427362125647336108444100794825351548236841363604004752593985502671907804385200011808491029733098951074045161623951695880407654737068924115302743441378176793133466380576356028034153333788588642455599753352231044975006389987969205827311861804045092685561507625284244110186501618055460515760803055142340066414494262715490367470245904165420428097451166023354074739307685390664054639680209730278424179568805213369881734682762559559864947503391315705839383120340401024305134755201416476094942648414474257611490429707037387178167113210269126528685462739909762662428118531777976057938590456873975378340960179961799203029217915622567395660537864812875978937775390236400054711929226834931191781866243871929109608226962294846577930656800126003586343583848613185481072734461238257584761058403011192060460289522588274188831101681041140815966046120952741174559770488976696988580754953531697729761577979049617767791568771039622235706424029802024665967786549786587749533406385230112696388234396518650398468150212473881004072760817787535813494059967385330676591271597292776702912518489765801651384171676507414779834128176796174368423161661477935357122731240973472698861869915242499039045431834620958776579070257315023034760900208571854156241235434673081607814161345825319405884311857201614241340948813903449751193327165103815631035769273312085391821253327265123324917756186636028548850486046630967321880422302143069920870479260226170286342711554707899604460942222762584781584023408195352684979920621488319588772761567514489533000697389922633465925884008786478072997065147890071496996313310642339232001822707580004651051083095725614460828026719879292048589449186840269253265190811123856488664599941924425321683151635936970101454499136023184197605191202046789554343283062654349078312797739353278084461419406184687036081226358900543742802243330073905970485796843652238296141538833805678568057257688505122771550412852303103243121915467106760667621872479489989596474903299560439646144578152784803875906091836502692194136309977820810582644174487102890664884698190875355932805740299916129825258669918397374563204916913307302166729862198622797987104689119543462695136803213448636336270796677454561395495496135512688127109066725985034845499284483459142894765781523520466743665601571921341571409034964294343296559180240143793365242243782817989508226211510555754925536532189695374852664800828730854878634548541841829242805216283596605006779630474292075008159913257635100613409970072996429625129157974754377881278222484030791163613992137144225756925997739732850446309999008960869638085767829079500014018067905125466361760070089131401528117348768634524695145611293735043621845127244060168779527003279374690689259690593830105823489146286829045840470648234801563099968070033531053746674417788122372937873375886488241895499033449802391212785291346662755841336827147115680800343834372509996854282321898886516000083408122943168486429659408753519879654100494481358144580399680810596477548421915840212416482960333237062516475246788295997558301941899873873323500781110562411213604580686884914431387534320744183610689489541768517900082056165892284422604088978332152681996786295826135538829478442877241823930308837677122597596508003571554291841100654408334582327680075936246911314427707006312297150366330280254524915007873450716129987066822297780485042195968595124127475312932334319790952284934963664604678730923094192389615768720473101913537669023430914126101597176045407666300376136130593621936710030642395331853720101152825035102155560616174364068291208187490633391923901428541904160027042123163088337858535639630968085579150527104760434890737109868752118469416645965885456410262439665455036583528740816422292054276666146554581865682890247335862625983580232503863740506844117652098804399449870584753085340261290422379112045161562167996235415067489966085679883782491634378071492028587810508035663442257036515812279742779220050261787935553240807854693716865250148701377703354909808986543725824363710066029358999474296052048639771863505166126973430833975490129334069478208729084581559232173749022897930304856608918662352633548671062842645457459787802612517283673064688539221263468354517773185485189948624255090286281441421326087277741349776743296363574207207399722239567951275834619050072740991016006093150926153905751543515618292472142180440612219294086865651759021355035973127638417476025128009171428574674119246507287377413484076694338596413117320374894827742550224551338092052984793465343187624274945324232081534431036306465428050484509962973749324956136092321837319077233584101364147336078505606398860094996519946097317666475871812667067189003950805791985688119313150922247270431766427804267310148653633595024202057889147432512946542783811395200980743568700694774628908062338711032581020882261003402088077079877430111706765390313729667294642295716460028840476587185148171576398021835588805140487490617436000923761288253932460848067908607551452550757991936287909956786421215597709163706232287550930375712073002122181607383318510295527946444090940824698151829935122250961411438934396659889531442333884132340609661745926831414532348260189218917194718038123013923594911049705831226583131565314505763267774780396304446070346099593499801420663037209989464348575726478887285633228783452914696711757690812350985666365181401734025847613308214123539994909126594368846721170915966459314256397884707056130305836235052989917441931049721879895353865709430219621523290049611696262499102902116143066482751006002217084918120781807188034781425398576732901949782173210583095060531542297690366845342456613694276582794750848913411476481259631253969456962648239645782775712632710737265958385186772667434618981531857842950666225745294069469181062661487116456281757366378641565940639400164236785029986246476236934034386380071762034059167185930666518543191378651709075439199223510110382900975262109880659916569859640009978647305332279389767531425736993919638188222543006193571840736700918589086860711071587138908011590940871673087208626197537293785385663059734193740842438706618690736723875955533540367899965992547530771230499551657589961132208427741038881186150347264146463910485831795220173776446036357622050996720416867865361863284871221161564120896662171386510613475636227913319414469532809238339818381956638450314775379440046497785056227149402081241809730737441320500225870107808111649851748331669786636780071991833049851728085036307786291840262684234935804848779657294964974212457731947075921989299739682218581554930059433638544145989469771461619838033584595902306437106076946869183464285777500689752702043848278224990565291676529930300722925142088308673123108172257549885958528499633585461840978943547884271192529188280932143340527987143332822360548905735885193249905950708458116845274529043428495143399947228412617779244812132227782704973252740096874399878876179941361984698077140590274498637570084309558643391845674281583457065116304866816860665723066087965432736358846008455676026072192473872085768168903037302246559858226614069857198461377962006193700514662001706358234520059141858826438038743023665831635568459417972664691537016912236185694619168543732014957113103384450314453414687529378910733904277716786637591014019525170322945145187039270705905784333869274724477667433782199862885411561058331085692489955954526680498103405927896464239237009533400718986812953876657899123800539567519323590672621262244203829555120814724566583206784255395990817526758340148571900430910111098576379794123306662871853364936621423834175607445672178922091501251786321173091336340128660645154790191355637969752285873643237800617449974466537371258358614117794238589666174080457768119932062445248760898108226002460503721404091077289466452616903458620944164427541094543878363403728266121237086609285215136879180917528558459634664113370216401198459079071598480872969267852279446166976888182761553670215096048665101036308658681756989563305464472519888223402905111759145820509002954460734613210772117904357177913423443275172432686928668975588122906267923166921347692597486501557774842275734275400883271926177122484457675086642273627384471066764330249758746355806374746630193594539278569518151046794815250721938827707560950112354936310447302611802375326684668432560933035475225416174319574399237622594631258727780220383413591732763836418957866020121853171878220751055204964314957097302747938718389012194363123776288110879810852702535716005544763119959792680039744686219054249042062814481791139161970867725968690601089717153544067532902752768233860994543630367851481691710990406967212949787732306973125583906552109209685921856965200432898596459754030081564928466289746066044712729144697510373772309083950425417472199400528150672574559740595092829273870194247425209941147939563141296534841131672321092327550183696133155297689043740232923022290139288521341402817385981230083276280952053131444849238063491876944506402031887393786432138135298249579496952638078392430812675418199651989210020279754077634585826058919673469777745478951969933994640594226345900588496738713433560285284929437303543887080776264117887303902333178707725560353729558367959703419490247330026754859997139214670074901252714850917680295839030975955679891009399926006575443255883908283966118841463892046138829536677346317868401584947917715734577317978595530488033350355979355346573108314672426441422083478618180330200890948436691822711857449904612794193964882312244821185711209492395992360477277939969413428651834494420415869666188350472236789396452949655397245853369760483456515710253124156834226472081085005158222138452027135084238585476029993579435542156951267201714709980165568474976534556724794690234364694192153960966790519386729664490871749360921252233300921647591616641828626817523459574158028238946637844852471930075096222714442955592916983788094851912018113687129163670171480533541438074649399802883883297225315451045967883130240621532356248585715854486545523392576680152968513050465654911180034702467503236403146553511366776479693374438616486079925583841557927041641152622508423666667561237614273780285516567213853693815311292224090003229739878939076382312210065339013993795795153245928724456438211156463794826389372602444378563441328017757706573946698214711061333472575238913018030517546692467648981244649760776148097996968422990748542980959258877757247644389636441908102877700232526937806281568482483308535526644356559351843702530166804576228310540670332435347843044822496383316506603259523757341907521964574859836383709825952382559283726342495584062603000019336835697194997587378872633087134677465427542178338928379811885366918116075273609735220719005533030678460114496378865228689248041234303357460168738158651370180523304257821981790879799245733900392822354414432384542854138189919639100690819540946772223825133588339250273918694921419603781579596059471518719542876743703070070366120399272395743350313050945777577514572345983724925947709195586559524228391016648221948806000258366569599498799660668182896599081129618687053099542210600517970353312137214984950691473504690816845154363315340780472028570212355221421594283470805518329989059916302079945800309389116591342313517079925834932870375358343829782777126199244902258649191092901365032570296168841443830523395880180730580478029784042195234788631306749417707623806803018737528602848508460006735696062748162241831000613170656387096698173285777833383125991172992817820921132688667748951728228552369209366770077879207986837266136355450286315606789783249411884660822107726157481065980503515286978939232221932459577846838360675441257687816799734951255057982193989634960335678632236420739225960240113573288256251578342416670854050973471661403820585460136757889902844650821451619097321795214582191201267829006285892774118767707919306481491385031508171124387384698380164071955425628650004084269160051360329302398384995512110748881089687918951902901141613571395817778832130710597668138458541836804661368402905792335901915025257990549729175593905055951700831116304687425621691545035215332970576126426819963570595778081430564160174513688816766131553516782469380729152054279562446545838152703087464545200820851025007544878245196371549062664960701879158495068677493221271195306902155400131052200110966087570198539366790701887171743611575876371234949865127225594267518005994294264011055824207806703416331099667265740486518063639788059414561147077129892970952239958698976451192582804055251401009212969623082829358537592607922365533338582905208566666823780848647785577624497800897343716966243684959413937525847991391869488590356523648862507191060615799541367352287092343374244688739446777938068606852039130502896525497375865449482137637509654259417397219082597786248906731408065594303409626594533501046856006372660535696614747890986781932350367521121030012717054377599244462929023857430813130037711786953767970495536896885225168918361379653695891870188374977334834572164618670285632371961570165441936607486070221717096417472042614036679113914454902443161673037824564721597225745042731927493263202114451300440130970765833501679462237892043084039423646382590413186748191355708234445511451203362684650115958830333120637717760606836734043343467722551138388973620789493274012230114711973151356215159683794725467369885054679865371749173591513549883779509424372201740964584863405034119833569279857218264051004116808341385812252771914384165621055071950425421802044303418092305311026608912627324370712414263443507169523878027968441231581396957343500169449628518825650683336085745174949379866238336928585523520394872653540235992950606478079092940641224870082230947594103951473693145586769347748482141419562655284242972714006135182440488360928828286483631010705874267221125100178693080703576355924143409797468989382184320956055408351712351279761787694945153001158937785404004321309122147016376551684392641617972586212448424898451237823389139359709136837991084933811455590325831189149610644976857120832054411358850229061517743576082115264218261294320814703174590644970111416186778534654129035861749047616524626311721086983817566343344693977765419016322984259421115269705658563786889074619778475695481083104847625018971690147374343778756484186551646491632477585471232393883436459656430654357560504444894914690751621391551930553633434178157107683119979363898805184717389794146422525471793111002797170969408231785561920117918719169430676757406934804672713606978783064595642004082676576367694314469128688925887987210719136064956066636831786160349934139783150815422375418706926281076958939376118103061202595604490297549995091411374101129287564276147343063805829511696950931811919968070303740706964740044190338272538221560211204005366502505341285474749858373935810221084936282463527702959158462760922161637628799676403022158922776376120725987213768813417115010272455496292027655224333049744092440870202889716873311893576601762596467457580742915298911963968897761064220340274804103422229767462324454009167390234714623598808654786162534510503337222339069229515445341122824002008165021404588431102540262052010133106028093849014621789506217736153341382072366499588922024095692274735117865754651627347183941836914464206986770228528230290216271700856556867228841611934231925904468963856306960274877618085915723661506028480627727444069050179196908835364247600626799102721699820348979750871315058840796399033666275017506071787562966465958755032333795430775904786422391514876276823108806808058715005428963336356529100393149858821830839476352094880685154150041107444521713743169642587204905854594548777462756851715731745727577229968760744203966969467433132601492215920444721758260199466113259191826647088985617076399614772304461026575093772488434591309307079330566656136394999303773099400168939732437238606514365893613768278069464931019608248103669165885931830392563395478727100810521685558375042760903834357794117481327719413891134625892574714681637499269072929454105392276511465202850527545002164947519411176214510592300875186423406328077633705753506980999485128179850255595029809173819394656813737279150426963528720774918678926466394319867301301976475529747718749383017932206482876074600501043939128128335693412523905112104995685149513657130179197864320767167970571079634199422072294634085935109923561081740355272068803968617254533012393763831393153959583793418333044242841138821818145320138410919508411230917244535265743455256483070443837685909486512064594540618195092804343812217086703258763146183089573929723008274133836323308242766873493367836010632377214759713582876718009519093180210806986444292670590569830654537322030544356983033926445320716354686464796854694415557717845495324218314939833042551527591265970063560048713155166937252765741937917551376189153275038752733186313968782609845095292266765050273817845426718602898415900375114564641112696454865858025812302005488240284396942976065862671768385995965292378172523194561186446268586511794457517179795876419737248493486735004607426965535247729906487592755431625134224060238816408129091784394417910819460415815440892835971006430116319830381891216639684411801275907477871922500969778162100688943330287172163068298352084551367995140693319255236169435559322846071172996360543025431291121865889091582176422625490546043210751860588264773917119923987228142556491008127971297187389987218149810260894132011162642935106262759193331600922527280092766874087074307955102294211025208267186416400147215424852487079737903319063247104147697315080464916562192714379420979091090436765945501706961869340058779524908111926166173232279393087377483017679291035802043132304042838370502013412981300037140933933281784255755917896942203710150539487119134072421589338548643815953668098130113895695749532072763005065092313173546584096226180333656435412803638354999235464504286688528385811006437453244485471382143774839252881287829837009557600119132203916780478053059539382620550949221535677090526789609696118829908138047239186601549822193527097737013453866448333463197351004344901250692818515893980349469063689611239332458104043592099661718497618135417619027565452193254867016332090403215536374115536187831450728437481328250033167128009735496848857281986448295922997939469239113604370683457415125225774833220623857902676411344574299309922016641396847222867510828372999198505406731060154103672538587039792675683339540352260750639642649841847389433712998127653637423396543477825144309966911299449815274869888051138724378603207869117318250931489145721997925806886747943680248400031283993132459298230932153904576716421531213169205412242278237096600991249789894098682922691791361398502066958786060462888405515646166173911805453735334686027674068163374634234778710105417614711526389505635274971607603764864058068728364275507729886404323446941207702233443422225046088824634510284309723546630452398865269067132936340407273862216003564309988766278670747884517145131156265022832462877669514450425903976601350129615226755738838274955811613839883047671622789694910951439438875929839612233050587990666110622325670297256542891822539461710325439768282585480981744085769391975900720443543798339979680524832937362942949467622283734071673219774744787198056858203270517514186830459468436931128696971326316781211107892022780712059840576194144562189622253182183508685142823276990318929560666694990112628741844769055809824571411396739889253446271007039163397829218454424217108137873103756708526520312905271570844978214660189722908930008567824364256602874705228507046958782291569587412869578066493018164266356436497793827892732138272475860000301512942391968470203232172069858417145999422455822865340747707411293664256848291928533892378237841875057643865517459153986762775676947353502651084726283933688234070181929101375366347355595712394288776212273326607814321590382515935926331727998878045981563508632236106258658886624888268909531094970953319099398028823958653774708150565227460569978473391260608060020372840535774430453667039538224721001172080563690161714280876952012859686251316759196968477539168777715664144040424443867683070321877574625263916721967989073531734055862399867922159298528641891195662592429689849253053884202752835779415922043484629495776029762869714439967898135241709457601614657755435444017054729619354270809602263228181444662153667849327648652577838023174221650682178103837655627928486977472022281864223909887480567698302532266476908323847451622281699835339975984683585312482714414089584187791631906000598862017965464587160970564565365720791443589423107680153457607786858302466367169285347341846539090353334554699858411468338116680088759891621941853231050397235080528429911551976443025383086780477822334957912938973637631145549276974981777158271123469164400367061825711708090002090735899477533491900293513540680896237641455061931036246942490930630379322030240927276142905483977251741443275156131887871994480540368648638399675742785432263526405068755988145479081799639537858253830530164724714334569217526461202039576470626713491506002662304138596973007141898946348736069903060594659015089943876124979715616520551704159285576524814006031427719199086645153347905381089969721195130860846031576767223573485996257090979275577962488523543917360800928756055617015330228412220806550916421991675093961323160389431105422394916322653802966772404787142897711607797172560599170471830826439604539607340804613064014806576450322144755013574658128429991980294198081700677523824900042793344504405746081142403009845785275025131970132690846060587054220035825908580021678913026465059490706615643734967715041520306489654955835697774991066559326681319925273719518261621619949053702378199340809620686607543999998975233927112375220432215462273768049876580422162103819717804048314322713671377038020686761372431038931363159895733835642692234224226846627532980895934831121783775773207557176023097475255979908841547283805515261057813778336774878056297896739274064299337302431809956040369082435104063251611350515639798154834097422326209602324433738663387776502550667654820537202548011903580449449424113111768403966044198856355253013948773735013578504961546172874774952846312438562239538988673325256242169581701954655777582004347809481524241073121384599137274351889400977480156787014079128529611334836630565261707166026347375908201531420957979771006583116027885705604726386754928692797168536347229245586023565739632973563438827137797273563048667831266363228500930578256880756684591052074465740149057913224417899144564835611538410996167686479329510100211106325441701139014276153988341189602616142505310182342831906592720254693295410129178440508909704595870402923836196147236734626446690218113035136873211982602607492201089255792109458578053286782785586658164641267922384433422125181236671359811266080827505623288497577181019402638925207126106745921072788405276050501165839734301319866036288538315339666516477276242685134767301514374647440072645937114947010552306388651468953507600409332014276321653825809104581044135400418094462386181136392986281608871686669347872865423176214576856523087370080756759417570809746805920687910177954541986964982436833213096526814152606966150400072246366720237645533324971896028162559488695399736044775851673761364373741109219398402305792514930011622723114717009285123860605657909305613536952456876957316693451576835979295417813140917027071611353974401708650619772290136834460540569611491360821718045530869378790921435389301652011115649744036123286371542357766640923096868558602003022995282778986301948462700072918544773402881855091538699064625050276883437755317619569731307312909450070726586428538971679453398527653979330519791396944434974882493665719253973041074706479890774631667766630814786049420986502224412869617142909323031805275660494600019480406852863359262862745446495098084005345553098861106314675537897698840120989846676436272870135510946645900025380721464808667901449362864931961114051699262877976561110419430031339286530097738957139660986533904791971956765321617372119895566582274160226800382014707639743971564967116755642732475171742172989185886127795479602712835644747195585631913880870614119470675494365418723797462451471480001970645763816327252772410279409554308280694239173321741911513338285781434572448081981936605331852311712372281012541076432536977697786771366008294106369445925696761321193716560636967518619997440581651964757333190608300991444390086248055299018060674430942925576363796863426958641187703212532915584360475806031020260540187122611337813849132184708477682053341331778113131768366043062295568797479122646991644575635047369811419037899750682490503403820278047170390111972455671970000833782865386619343836657214356929852745979830884043755335485934578697797667166862834899036466175614278736687061387814182298514860974896911663853116237931250039656666674226177288460500778561493269347156504383481028678728977345828904400828293815551995701604940863945122435231452715685555255578330933953977693011819833420567445578049322174855167154474445844457485551557149707203681819438377618494227470131189042663818152984815872207905357184854393918446093952756613873577952859833598508762124990850359228940941485822337025026910746941620201818665214555801484850102597401182018567704733452967006958926225411517063641680609936949463356897162304989114022845816846270511610869968172637021171799872828476170388896638534423514917873125172372832791839188118123797201346923145400717604816720914026040396103924226497166920599942975386513917392802146011972413853719379899923852062380038965369082888986241402881629616293799921509218524272401039040624099773389352333340489542599271983625757752783635696080203250897158850822854748805470202135907812166442778735675141244288778823199972192080534374286651959910241736284457052694102185819442583051379518858586085695306543828408734982331735074379011532092003668973296153168165814141944556482895428689538684337306464495130400244187220634032814701980086729303973923932042278536425599077105572076967449068313442634069606912815297651228245924399406776397294232584043846519829835492436432659706730683878020289469036675244334387185383868700923009490970387082794528911424789207645977086984064711366694879946975787467341399982233992173820181871268492080948807834400983074362977028659775911669133476048126959792340231202320952928325289425905662057809870685716150145720401948454436849065049980400497671414205014812792883439173704525878301053688627170112084083418710317040283386383168974186582661574272133650834248063693621571732244380864764129340832568147245692421619390065117184561521565033518898388712636142289584279313982232388544259016842303591299036921203449332627410402097331502441514926573932943721822832751833335481553948025995788951719572743595377358297948661197896763084732343077337543315645976907298866301587512041436936709584206454960538005282315080678575901038970536857878650523764503015712649105735355087503118962499689002148786010321631541070136972247867130227008552976353331796074179043305222319388780860991968189795414151598685633258022837393276384580471724134371063897491354190457947491119392598661167703629134118270947644108021359328274083550573801287131562854161423540544142845740759364030975344412005336150730805265555408520957998572646825639212338267381592388788494990401254851097891424156329793035959376248510188986230385134945088538721748570889311531940926823446767146657408666473418884982366586346317343515077572110691140287213968715519853981817588917527956150992646250880158982438561784642425099671983292105202699629675688703001858314008015335197810462938396963310442343218756642276792064706555440898913513621328963656722869230778493197727250151368645518164799332405448507374020482996865329913956804456566195230740236737316608139138313809784357428039206430323156169099864791097715002702001973360031192733932061608837742766387749467843737177361486645930555307574547482094472424655742327444620833845075750890522434950469721433401235756027312530434047857265634588347064540541024148241917407207979253216587087517470641993932282161098227834863642736700880669844388326972713216719230038642970009005849113587714993738935427641034400251997966279333813182372862764577678487206697172752851318846503662879434665203862573278259133094113283175524298441107001658674622688575581692972370436703760037579049635825602722823213103666319671452354204417406264688158646131180525094897468161554988532730423952783789117818656641450026595901890508283058402367739795398856727490618879183520986228306897232411483935646179207054697214879229155225613622393561191838378390007331753853133732897855500525596023159091752967735677631746764538994673689623427007970993756467469004071777177511165228578977344714271334513392849282412792686981906137369733971273517748180950714010799526081957854310835403014962608218032555790777062433933173942280689127652193530235348165706352148841443369478626525778453905378642582284629917328931331300862978465389711783994030224049192487431475682443438997710308658679412432588734157485075897635296444891397070403495197940928532552188105846260637423535897827216066045331389083745308880241843393908858800034416453501376639944112291106098827218212426057456686452942504354731457377008008144737288228792657064118763483284416614139162779189129889597260913954219467445338306584526203927868725583030893115340577490946328060434391607989585752459921324129225614304254080241078623973873382148708601689914041232609054690950094752266614395346996654614059253527448354305130313500862719955905169815420300811917586616347399125481305444401799847705641666834780156567775737695192531120366378357214889080233947547799510278323737926419543186433701401706963908353753440158651566620022291828216863432685521241272279144875652551157681262201270126958629878676120781584135728280958047750575314812062140373950173816732316070725569996572405636855464814783274149722362306506502496549000639838231118619059230872690446727671019510566051240472100032344332709770754378857961075879235027997680869228677821949217384667777989497674557279556025317848154799708603185911579004498072287200625754912178915849953745135761655909961122404376726513850593938441465941573514062452938625109625760425392100851440282767185603580835316218679834722980189186273708678111349706585215087001430757421410311027533870062433433900159089081595976303452535014031051567463508708816673398885245838460215214155764093334993598819699860929392206816616151161963000083152467687042001173895866356710793039096713982578969591557821287640795092331375788762633104226044017521439885953700413380047940552626626689838463612706909553396587127904090769931002786682980067584199509468762602267796389254856057595025721236483030898852705947727491794959966220381600974405176025378165005797895995153387073074988551700045867616089617188915740017197961995220720517319754493489467322326535131590351647078096354006268780708784942290009285438853671745374578714192656686683714975957645248175268304278955507720609984401521574661231529002470755291785512808163134140696240873486426863408851424817388926835546351051840209861247408801195862758161984075709575544266743050814993707104747003681809241593953446980643372517917170205001655241977716345943858752066834096284271367426423368954444318433763332077892103530456802933618538277394943420539271466934144727896187241994338638782266342481296394345749184838492693306544840221635539570062502646172965532984377764016767793134629774636065010847539715877825451652725398226908794673919153495088250701424309551929415484023668489947134129487270257869240114123028765725192540516450868676187215491056197479955750908872946914127866112054886099124093300810425949710126908361155710707934375229652508888866259907597989185966660254848720525527948691931192359565549245368350010484844852406372836740899051669884103190745590872385553769550134225327824550125817519363734894067705425146877030280030275399046846049271343156475845213896307409252611181772407264714530039975971491093871432621321645570490213195244769595112552093906978918980129209394216553987635896735952708219234729775598553758344958278362591197778512545504076031036470063381891069709574670390899696824488642113566969320505421163050140698473260738943668307091842818733681037481916252941163494076013884533940298132175196429219281910276506224180390892519950698259537934099611166934278079935126277870749250616024131145951265001280326678339005898977892140793901931863320699408346680063355569919894699462296944101198262901188316297337489778085082026815935496864482840719799137707420943474672825797105786857150206211130485623448386644235261983065899829861587255679687997876724257425814339553195130693614039218454768296943295170655047268533598970620683456838128680495748363135794108871775151361705043452787494887048613401593087728203147830318299640330057021489599745621483337312061335046065352847768347156818872500550691282276612706260661948124765454319109767231033999526711355691617742488430666983601876735947010574277852919607722083289153977599654388085084311201368826378608309861591998388020575166017792717144595435064085731706634670046867219484070466829425482370665658469676695482451710175042666381128936209742094315753835393564963799090122351905583445755470031420207144381828860906812964834791178512120431480447632756721325465673606677446714884607312909234613797269455993624316509214778369442103431816941578929832288998214859389198527165830358999204419800802657393689383835232518874990324963813492279085894664014990542871501321724413182698475562403254878964247696254512204999986573355979657237902923588678399758034091978206759080986318511946150002029439082658069517060930927260579079381835939346237867196719106004090982371613136777786461635811085715062129424528456671628234430255098371233918941008809490329514939124661639481577788667459782093542842195977501387689113670288381029385979894154819157355809139414303008221166754128447973787493693198110536466061197181483600899505619968795076822132915471365588667644969851987971123087734804180333274201752025879083635116181636319532616447677430582768917541725296419494542740339696061278812600584763262679260187419268575683853030440483893683140648569341164052425125532503964904703976739391856799975077376002615946286698691509640238705651133384866977106799933813827841256317447187633944901032546355189379340100553275857936761803992965408137796736126026672697977554931669778511990683526261185806089133119952960470577732780297690016061656714247929816664875166675122949716932427615681391117692563925560424647086176164596501381235564209673406633129814312375552675463916397677666581874103562852455462553052835326143240068537418959495341263029199033085017090036891593643154240054970732962831133161900770187566831916000133417640971203742858527060597821735637506160516706248058928028280751507612284033476285950243464740346660546849963616521177588375364992003026768690931950121218155386873851525801343044554660217607194186095310486615467089386358026906963493032520616611448827889086790645791467019956329192122273320670070910733744564114569056308441088619610696503926630246696309447425497382869885519974937543563945236921777691174666129304174387784630248891504448908674276076852175782088196488237431005300854754966166791394150653250880321504739664441786799444843557439644101138512068971748736297510614449458256431905645846687520004609353112350311704696521781133191727364929414071010636588322420422570307356729025907433887855730186008901257183160289132591210622387418261369874971216380163607609184824267162650177808633757119021402106746468384574574024165100274312303225188122182794747818892982542815305751153079554549533404645516294306652602750559502804774692843538867851060457302825701210658332186090572395455053795877408755201990579351344411827684061696353318252571829114097816017402293966780739957381848647603425341600808841095673137067854667674518921673733860370135987793806779670403332134022389015292982525210104720311963020042511342690694872127691083534154212431917226043644584059313654473862722434015057975273765812384067701028835699863307242053606617217231465012266625847731974166416448670845913082447760091522061911282374777481631294332459420502087780399144015801242495294881533308535787038653325904652563291191310271695622946193442806288276445467741262763112553386652196793936017389529401159717575181926930206635692902048902372373969109665900637374366643006418487132038077462623914687068682049360981548644599576751163039295122879904226871433556250466163226894416919467421583602983571645362396590126623201388597674356213036077662472279037974483789920924246815273320823451824402374985400328675052280306588427990975831091962714887486463653569468030404037665761860786165703145350492189415669236683180102215203706761132999447604797183434633560645003913026905903423793922022714107238679648503298221661752924561422198324691312033454477133124549043451579215469847384704447988399150879928285234018269210449258063743909560917333284347095413693391097953378028747099556079277208172787042390135210014399844805639262727648867122926423256949718163961699470782793072020388689059264055678812932036803634652753123712445356568514164924058663211661433938215002370340184476223756933022131498509121788767665731241928033783881363140327844859077471424756064152212131255567670979979359201706271118201498379099296238144297854870845863625871862238130016714463459733839175960269289092259144589640428122697724090160611739150972261565859152198025197300166906133551998314123942703803842337841375202856992700369547897482310125709318637798109150645915086142555620373729789939836348197723104323135147404262214475590670037815319612466872910449502514173565217790336509673354092240501533233383425966494509008840444253500753085800441546306490656609860409555545009219729989056505144878972086753959833371992445390342655269322789113841529666157111496399320081139347796720080723766207077113127997211286865129069846000266199646654789055576536048206114758772403019573150104187001844183488856983176434595550598096965447194319171493330842410383992230940704493745082700427767724095297241528037429834872645896734847078206140250526151175132070121881886793179124718958905161857666963071584082761702262031932541792662613309567059424747787447387227991561526983789280358668866601454963728657618053354371642749864221405656124767066555218263835392150547053268001632901839717784772217964071429267367073882794764036810528971248035540523091134895956287323007085030156186203355786887295493934965710252081167268036811844078622657393364680002795609945403015946317288634394026391600474463236468200005381156226073787726271584287304987065823712798077479147168651789214633200195586702708226012529727517554159642046023026781855431974133216179248558788705092196612403465018491154264334494836609500209836990713537449017977007619482064059131540058680594679279241545126974938070196675056409578679516274457044912666386526782034380332563411856121639269693761592755688494313257355132720002874773769735886948718287203554673012483886253361624648352737151788731984692445376525938022505016105901501907927915908738636916094417730415959045897100055462506660905157006036643896510660874888364605716095713608930540592277311766880755810755881532705452367391255295673992778804356310701740690200128683790309320022205934202774425421226694259835597536751710179896355244354833727567144530022346015318336554990690205304647551669914125686985689940543485993925823132032356196773961629996252441513251853922962444108398816005326744660642492480265519618026331923730288501061218742707760178915785127721893924114317260462402185411831664028801838387826380240583487370885521253744661446598820409569144969885780035988811168774012628065526757406140115148349154935719490876217239280878039678423784819804982078387575998255825624413189767428315029861457875323076213758740547092060261651755404206599247034174464789231990657629893112442513918434037024804804443517998973084328891090728851002619063956837987706374572591013528465789143750314782195709799414520407242075864565463978663895607368355259302526125048157974173920850687421798802442417311093507367958945774057645151744820738197041269711815464045345291298639638233616059116051102478255329748084605011200805830355948027474693129035994228674560647110764255974640168256900053366616437660376724652606746204690010474918114034167944191198400584726607710560289042002101821520484826354418772557825680841556457239389807130156149833974688572158130241831943013161459670292520056649650269342149916040394119432696256103710583015800554568884947033008664494428871089199650141962904525179128888859973915198790295731234843352851254566881185569121698807557248575274637500810291241989399539098154296264296429904800343328109747381458189638265842191011268650552663413026453328925371338351253735124812912122777353958502128746087619859835904693608477997846961220491401758878607919676328746527552127186627111847322877000835427975153032321727856225398683831803824242460796202447326206660363891463561150298726851930220474920570403634894120595549507230960162863152107400292249594245257100020389429568041891400428579040098952207866136937166928237648776903884306786562215033879962575755381931124412216962421019017537778873428075673826554335882316398434525387057702286044571541032855170554581298919133003040595156403966280140000378128438033648330374485186992645192096047600404595007169162112235125631134531456558164721095511268187171330983561232286966797235245976396549049028796496025155528082646084755621126678178745728859689262245494584252582258755772902423202920598752405950431143892920228993640585215917173210899443227704297748995396632975217754588174288459128103987690022424979794147495767127709014165510203227233081020194024745070181985281891941978789692031468977424291806828767463790477738342404184272386624502517741040379042535397356577639338839378865562898489892806288771792640824575804383520382033264333853863936094594957015461462750682388886999447592781850044641366359503721964080357206745774427434422484371813931067920112490441567844191483787933833586370012114880231483058223803394156401505903845706739166018106960844632424104437845786996129957973131380834265139654109002003427941911825071653533858993397888300206940527010459308935782991984267736086547076432422853397705724097468664837846853573459814062143603875974605931334943125131020278499595622243784320653237949402002960686150998454271511964196679772524500186691505920266258212944125972154823260337751909563829148295567814006113767232497964664485257672217740159689563010294377398433620734646899952836429272619680534096984586608495529470662154830994960337419113867548357470564720897271479512694802099283058353385566124084338674006103481907524659738747502599222734318632403898491258539097092974408937574124957114571736781454239880609295261179321529002223114977557782315278874011007957721539209684689495426297923343452220577842056459650562365300731955499974097364303577498461194526223279600660199124219895807708150078129816080786890291319528448196545504943555660852110963262983516836105893778726896051692484041679969719261213881274051322311862244019559669030470209582902033351731201762400249578221818017671890648364385785053495325266986459288292291314376446424212552624196341113887460923962460368127480101049553426040804781895616012278083803189919935033509778197143384279959180519869127024684606372553907632393077643594199744437503818459971003548306945670217291700438542218191135393886463132646196115642961246572920045439468786077241048055666419399737797249655108724689285174543942180551979878155301535372924402061695537594001239957832292537070155777318230918232414344146325711269881448667918654597998909931865325529407620886521249123323838907351818366359378499006091259846884755938341652864459155182104238976428783153471198811402029108088265555861246268251989065460274602857538158596689183341335901630321668980937933871987172047773817274556414791410347072080098710231912085508841599371010890017482934113839885399198056990290160980054266372866735029747048748513998649374944237324118861146220464561732828447014276238461745399745498180968932085189636082509873657461982321227776848604933629377438570615350051855510987668947767975239911186444047826771613135541509362066303081313796663689256502909976291788853724066264846724837275684167313025159985162647692280385062344060814537017360456331327878766354564563869747530149693312466350366973991954906960061762779047151843941521534656251378056544046334582100550721618071988530419422473656836725504295428125854159067997608761522057510426849161858137112129429074309411711183465830632369446905246311154034979605579790597618214431175826220977480137553534291138210604573453417248600384272790069559787452701848930849172404467244266515704370614899363830949872568692794721889944889868222192182559783984922984972900829030017841264984234526983220574279582477997173826339605297295526489560883744539135715685848512672837417581400363333856078092682477198258509006593669939858824722173608556809927177188232810997434603329124085676556968250645927620985705865974684281173854843117247001025812844881198097609541810248397750709275206905547194048745472516073180476879760202738387352571115329933849281282450831997551151989030650591829731794498322869187314019132965806515010637489643286048131238226806545685448039906257411135553424592914956613494339176288865483413406329937080818416967097915688305966604206182223822570882049380782075439015696080268016484990188817696129264100018607693638298976696075792911471825173252838322981238665749741548363320722434704386727816742645931346594794463471383972795397149237544814270268610988760856992301126693636883280046771030197516190817496322576613013732305552856704140614359692348613049243601034978067696606214894319813741151915347286862031268978871776763445719136190878752929782264546295384178511235489364639480645484051489224829392252204254985926218855611715475007817308555240419980841399876167497873918114141622434825267689189371201910382690523416452366014525213661345112126962807089662618763841744349983465786090585704539246580738682971203553166469656899319511657005937074817645337582378708584896286711853420125106096882516674372996660108178842435849190726574938281732058935458409856268339144666406278785082093797921446122589457070599634583874480498452451489125708979675514525703353016625718165931514670519429727588029403452081046553540561057041421771707340156782621182076091107408638915220526921196774885544211004496386426103927965816612485619851318023177599248115802966280165896982987447794622614392664466726516194178416746007174185260883971055375955741760826351493990245778578320446059707724363875961076089344982123697737703431376804406905498099197301988971935451892339906621567032849067814524450009828010341895279241476560189918085895389160269643146257271788989795555196379227330593698518029152790838156917901507111733746309661231296245801782507819606448265286272300317509060934060992252759531336922167725585744227290165761909565608515370503190764024000758949108723873320879647771082806016407180964582929491719044942098371886193575058305063628440735700670878688578122302843694894582205480637339590330342150915661721122825607983401606065263948793652874644810215267715865628834547002760874503956204994312846169766369299224972010533475128878733924952342320780886931773592128805614133629212540383326876447932872321578664757734086191581193309880842239494356924089117221332158583134680866780962732269790751144147418649974545628894555349140159311273104340782789069493828426719989253083003710059844645344866294839582640447722524549719145859750100605897633691613384491458611570610454327113187771325431675869894307233638964482999776299967091496068664392941048085484274804271619625596705031038106318384558827574116266492337018589512127906277479864443817459206644715071591473506600207488502781681460470994020445310310501215740577581537881253479203457746651732404356270540898517021263411966770280127244138164829381943672381128900630892664814481362000006810791581724463703124432996403326905665888731455282481713465111835856226841129180760324326846182724306020075308144929003082139346247497131381780407550653718167869441686029488271547827821175724806177153835540649195653135618750410620082353798202687856450389188451080152852338036001315627727280016545921358444120402782038572799521277445172477063968871510845676506462020019512912943645932010977105032349894031025544949786566639653811094213247196586369824723836603755283452377509253632568285473908858261690472780699990550582460783809663734874357195700246211777057491812822221880716421220439316498592029433866477771144477757867237229742449838333930350446409140885553129564204207582381855669358846918495887107730475435668556723959008729919782117894475189532968779161687340420283512307132460750443319276093484932803997624354713861080644417593139572098318279923491380677929524915101868980191915499613565424510444983643666598653702193661840571441252086103369028224061560815576167397370626589466321150181325362000026636379157680415241885823905132345788260507519909119426200812076689539966529730953611632603511727755188787304462419714459208613988416601100138570277272048004812228274312510893307467147885524059606071773526725497428861187636202212232960318301934580929718549380700983551617150847314340250054421407145234612144582572603972866921486095499042862622981148024452581334728146933270369892957558776801819113676559694746076736629626123605362001189376383552623963859713036301328432861641115583919030331196474662486663846794176393094993260969291318499135817869647239192389723255098232997331418917567428099631067554990290829873485929498884265027891552747241758966292471126766230995838476230472316842598100829327712272944245315812725440384940660453680805668803690251585450966918728618964718591855785817684859269447073702554414108577195886921545472649096828054217882762858184225154042784360609492595078859957128412492526219667435022409343875700992640331345234772510140646658609733280812496494944047185051287531583965874036900193857478041799041484622081906019601021749557762934346063290372838639714349921242694974820822581445743630822116027822324894199742667339366421706769605816425659456914626867016251922513190609055948797282773200411811226960897419926190215918056387242063776157370958891565997635195397454670518878334660700940440971619247506389382241158754894707711344319894836292723728432169338805276199200049112591032998861072917175116883031142848097339901304006093866707086700798124579997512735162886212323614664583049989257798068648626723232095054798508444575652866874273990319408517325593024769961122885310884292820564859138465310242315629483868531235097639351655308142999293760939198559058585422056694846266842949042908510088356432267900741688426603460925671391939626341623420717922977145998498482055453366247758200538668033984848628052762607019684547494752839479860050977877792468805821737130200048336398783308224149253567689388708856182056066937749105077060436133408562833766479415012442380232821640986023525140998861409589836779822182508054426357515672370569669522269952738026082515100529743660936786660651940133610992549877138515296296200222733153555928812742207544693660238056138046848609790675050469965072950065619261803924564748829001235484303065970360937318023101510979325286373676818679062675405279287099466185036764914520988137724779813295822996252345093383248319689602896680724515726252789045242674515742143956543007567977752926532735376893718726727304941178066329959882248839087971919970666820692918949137708138863370451084704491137991737871403699114427439823066569514809162440634721357994688088376696196366613064484951000784832035615423858075085939381283313753234410896841332823900427113430210584654759654789934793989250161997148088734369221262982236992520463868077307797364746483060317778764839472322693862022001026131075832707504384827182846716515287031296974267832105629433171699159183931368944496799100241838978692867959224460608326734937808826035661940033730567634132912865250118304171749973723147759875422308791729774589381975030135641206496694763453126464745969176249003418242810212480121145156065435009417050733059541822651558064723796038206796257599556866625646187243943293415638325180922978682578312473192386946101646770174368210088223682707037271836915601973768128520210278257401199851723199357183400838874122811402048507808934431249630944599021258433877244418214581808592297348077389630203533264446991850819543722864381389935630770958721640340369273241330670509882155728718738004019400948146337314340351793282736569709785427097388167465365295220530723964259665378380747184151875610221159927327157432481064959210753540706662839300947029874246411834591617389839332377718284662992289186594531447532481625344308012697302830608440331297878462257844216032292032111248891730390035025994754172394106149921377074795043244766291546894501422273795366912580433269524822902166084686093039708031600927452689906730163511312373860124522085156046647222262272988649019529909529475514638542588186678438412942611488231186634957187476148725901283685436037681757725939933391209906208006865118850194686531227836960435567257460637336412609919232435835789793213089785861533367279100778291263885164145889259870459441143304501744427115860528361043156858249463621056125480800189011363931308189422024273931870023922946213213568559635531500229071255932090181645365676814330802379700474888463295542306691969730300902872222510601016981247866271509453438594501810120572902515283863295218355192675070520619915613274462007002323303793028648741202983968660207512814927541420734862806566246644538954692953270964305084342632367374324387633554679518436434738629861895788313968794278174393439529724185225596739139968099576816006105880810259809502245102734377606693059199205354178219623433906357526624139004057106042520685055915053693306795076448526751553587044739816084097496386960693590955878513743232497645161741759960776308374727815157724403845583857760872391435388319228527573852305279622045392906988661231694802219232613820384915100648804162708640703515744131429297571645994456030547002704088322237035456330208509289838092149215180538727833407516149101475614304970799940637981314991803937573466027360429200732683578422491756303329761252276371921827051208181781358184268915872912029610322435895041040562863821807438976199165118073924913197885066984007690029226363884712866317839661876203755386273472415898315862722719093308433447409556417250812931735464475234212383247337486236694711635390251714172555832892496480138135169734724323293157597302123965635246801052184918062606546777222823216464614614732585690691885612535659389600664359060832920792125357570332081659880993194042756873495110809395841090468047070463673065367027330061277995101726453431840563135246576514613572905849660616781835098451335707650044605809240719186010153916736873728786463722497753271385233956251192330924380310262290303909413065917037869932467524905862785419720056452112837710142431100521682643778586751033467184514360374246405703396024898415449285430439544634473455518536496552682543993566892084523672439579176270387316867065647053569220850971857934212574207852311854839162623221579189673870111724657954376649644336550303666867662581055293618738934842352953328113392460467402954036972665274511996340140098418599450068456117750806390740917226891474730434320515761686610192305588100550513946466136819121314219034928240250020613724232323507086063631736198443615232554858994077636543999312348632249985924074057752994495016377891756109592281032412154620331518705955215211710526311897597363339780934762841347284881746333344106978163371430673164992869151583166292258882629991618724239848568948624241339120250647381398787378031242863088025079586541026461618406295396391990272633838340328995422858291518960343838879198416583133092557539171626526925915486633461427863066259584215533201479732208711051707814183934183308131169401232487039786744827320395495842563367971378296681425665967634935269448218843061418806067462436957037771630143573624812892806425134958058026400326530001253807730774526423556274732764681160010791737393076159519812296492013440723467363240567584498388694295522156532984989289396329654023702628874304913941939256494485469785499140104518674112426715709687803525205095212454118873060090908229676120735348339628896140007611488611883705987927261776476502932320475121331349375972783392187383149330404737854334627870610819227593465567622692027805999607857294012633017458909056652131252478467039152073579209674164799746987805522648726552705902836299871434265406376291812620203537338313805484613590494511076817553545573334473890351820758101217250525875971102312041037726427601191194530144618061083376114829491805962953604889110237372133397889758647853146774723238609956049337492113865696991017168784724732222159556458476047384023151413118314164263739817841019564240401893603738824842722355170350918292203906561512131108268829373638737900982465362224147150986945322810924433885179632317013550882816723870125270001207621943370659022927129191133499657747525031565399291370643335672677640728562737155386810660359152544824722147490138165972882292320716251391592930077905853956375435774023179776530477874821327948656997523132341277784834818806206160553391352356740010898168522122614031200746936929839739475619927069578816592878956522065663050414048062015745565986270625971782083860249945072827627412155172679181635401578077832180426450238306639417119167487788477902986621749124875863964013125826313826171599853763094818354080866107400553812615399593647530759965807130353190332061729365350975554043132072794038428561926214167730494304173682718715788983303946102270004691588695588382999379592169074071978305570621854218019309148647850860400494451722483991638241764844309461630140394394809932143904760126531796301761262053113027468045558171174256496521554135577565391786046311936109737153946729980609243770768737827142076548704183268036643296337779532572875514722613564710434543475745077653588006048191141094283855507606476419457039775602180115528079191304353967930808641080225162422075051505760434079489843023169293790293485468675342655362559996694158981352306916669265889300295314428511087951353491171351592226966918132176402678998139769644235061302542097235480618307870220001803103795915208905505969040112696446640377002539995435904010052688780732512152921654037010372733866167046284406010564865575189762308234877199393320656109564375914186283900322714727497223772915529523355421575166313969234921086728317218513692279357761154315209134019380547782101190688075841027318199756351686622964130199756686058146411788146481149000558681643279239890171384212743803282506856025078859206413601410677891774500251721829839557020076532808936691372412847738245289795455220874175480603090090451339703721977803870312117936760970182540722279855626547614733113333296731360999288553705119738037856405579398841153640568464313516735820521803441661846034217369422308140956086768891599756046014857792424579238424549947289000732583267692654856725796754072304775453701593932971927726429174525623819743137206906709340111788856716410880260863677726529345526643292049571934016286617058299474922760840367263145025175090850682732597673406278531587725777547389240868825252441464486026552233177093233429046049289181211677127213296362534539645900761256454708634192605798119740355922880649438724354711682048193972765427540297068978982719189893280205937765131663989779913681545905754010908777053988111497700382674154183384080715194350946974988381862634220996925493933904525868790428484999085145242856559032205189468154310184808473301042610618652711271905636767226500708874897095268907485612401429591515333898102358164716449488513805617381696514204587079170856706968326301753588927951181025788146173373898711443361627592652306191107113276330153239603846538980016865254619171788471845525529997323046501707077709201518261543072674267998802882174203310645324703670459190132318899070542419593027760219870122201911459869811082365272234836669876803134767705350171498176330452550410752995415114691830851191339837264168122676872604804337788072658532172113123851530080817674396952769852759063216845217217808286687235744030441961160793211653276197091799596898325000299773199372857098241230384995994499789336194411727571366809877264163542515767846657300968519899756968275018795291646100354007502599962583471290904075614522889406927273039399039554406963855601727501387045854870641076841500447284670772263831407215383054751587478875779319826137390354495512070162541794898563864816408803358100429194722077211115219975195719519579474107798949025245053312598252043994764850237461421552620616759908120825573992204566360852487434433542733857282750160845065439474391560265990634447982262958511662160011241755588337604062376870894990812713931156170218480401504063177587093591204460859390789709541885299486259491262271010084933128459194122073353917849969765821512366324108477471600058757499467343487735200086170984817007077041339818469275530520276927181346694457383698038761699233998002097500549963911041802594062861907809003027379335897497045179337307032340384404542255738194724532011355448695857710667651960795741395347579237440176937472840577055976494661389132512335667209908256388483848024864334171952248543397598798107317417288498366262217490543001995207295158084684439643318272478947424532440977848630774020094239221331411725305863716525247378209068076252851932590768523072449668466121473351004349799758604732108849264402395271198711751357920919094753685101769654352461483710448566325991077582997708897602967715575269568194329860855816984266826314685965953217244468861710668800882698802438837207911660103484628711422263233229166052037363428979432729825634921551425837248935679586433596517365008393019677221760558739354207717719250442006957387359218802634944905280895030190504563126138378769991238892421145634534115715217593443449155336529385321172784816488527971573370977851489471605249581824796149645848119075796851778975414607669002598921907144545633070309197707148083071027831763160952422375572388618119817469960564393759282697901506179629120210567820395278458505682486073904408601725055533719854300981389970718046550773188084285169843890515544644247306060306088762512772644340758079892752633561062768574799974544061687434932676881747002430013480089658970375797577987154497663497757205711561066577185328557934472644352123145423762367112998825245990044027948209640461354696551635129223430543127422636686194732387719595758274673521437209284407917490288498773495375440498924588246824112273281127227757694187326033526460896787098030414031415411394183336026572874195741544119663424418051579972931251802494400250312211719745823548363734015210838593864498986397628231507315496384272327088276638079890715749772899587770238567732944929631613315419261343954556235419738886282542523638294797052135737120523985313940968036147843459746022084341423276122125605928682395823638122021124301057506203247028613039694975146717268192539077283060482561154360042477505637361824217310774712138019693535418395248763967069212105435134847866714895115351735107854817568860796218001975419854001520496757094230470231967083388833304092021810328167373895880098469966939395968898248227627711894815453990076790640373539366405988497281189640469435262233609736538624198206481581241377550908048587946433348132908749327579776794864325682838935527309039496593678938418450961683829747917638054625374093170529936721501560923394350425333972816548315572714311868704746808497934251210603969186383887739625759688602427941634419911327892446588289989950690973159807400741579520946460385476383833574303151694480160249186686029887117846919160371658500330155023306599281748058599446594564310430169100520821741352073178137901053870386972252903942191703015914363087513750195917605067347887020235599994074564643069397721837736755983225736402962202773586837335145255243408578402212196155977616159602742796799757939409245643768310193054817138306111659129303103562879384113943733371537388248117354185166608012125946270430710599336354606419551318417429709106506947410977357263033052116138130564114146376101682078197357753006355900856190152492784199286118488057255420592974140111359620737421366854109413364601869865996124045679045623698889254841262935179374677370266224350312073973108196256914490982991218934691913803255325332966300116096440959101432229835136675645318884579533875397447853535695421322298128837922729803971575719213273464312618469508580626663438156319554212983913681322931261837273392420396930554609659130746463607091578420801420626655436208619777304918804056498688882242174951542787197913287151805306308239727874382139331871144246551934752631446964903416732970895315926618422977240001986858265495297569939612811766431810863576656598582547493198447859874124338187145225508174477345621341245888904132341268848401176650756582852282740844018110494559168487338302292336650251138409748759066916159751403160143630067705464799855560598400531588486170345764582505301102875048098045140155566333875005422255558552737017126536413791267324818528935981846609907756202097358033123390366841095645069733298272251920481756844984685535376192460990503807859868459337290234118765564215534222597693568577396611561955823829537258709727729161485162739294514345923686193417467072267052989884678119266153621295183017337659298620457406991726347545172810969601695167498478211043803797747491568153184980668994675061697310938071299337613416111912640928726121219566325187604916658807371557958440553276880574824612959930062301883193525990573358918914383954172226932328709274994036965941479517733762174061245138508520235266024996686900967170373697982283248810412562458949431746159536133454859315386055111779376706473170542862098392153108011881299661577115664560229898514722101422265464230358161202093393406859707050339284496360644186560363229587675058835134261289522053189833655074742303728170195894797077218147349635603229282189508944099286039953461852918398825390416529061245283268246929124761236741336537648921346537895834723374009073541046012276340953144435996241105999247166035320573973862662506650116182407176816934019305880681173538147471995141901435300354153111851210821907388752941163828960117873720693467924428733661446213531565049308741317421312835138269098453368618822021898788202106113533334750556671832342746221622969205649792549685813662078635070982637508840368886057872263134142787696593497887804901296850792743321296568804956370340595759653600833454614540713270832338062248276856731344801380301363225397234785902810668050438711142565195348226721131743579610741909619389860079234677776373336897215771144022605327149866712778835206914096905449213746589347348471805898896120131298021488489441212131582541212795034254487794497834775152197955853956986263512654122121431041006080251527571042687074100536568022610888196812823737793456010392917190981849809211981506320470065211081787876055570543619613703955328434575141979431717297402046637884211445748435852748528628266321326953365878356679739857125318517005770845345647724050478642631880910266867130154395058018032090459439590356301107061446422296281566129501846745495832890106348833461158419318066303108204582690619995393821210097162485228492006689155865000916204797598837150724489072245213917909038881560675391857372164151929242236345817021854497831888428504058885369661420065987410988413253575252394610455268693752723920832618785080520642565978251944077318378348006568379904523628300225655500047965357207327067634211530674776188323420153370760315065753489376463549636356137724782133107446346535177227167917034595711098362283068733655201645799073021080653802974326105838645762304519218770444228783431822726305633061819931095885804544019420912874480585308892813168957141134545070191224811194591284575347288615747112242197740326140916492013035047426548030019291788077639973996567647617939957492786505671008370836588239148127208887027078523822831996885318000394500564251873597960864113166526990182655412139544274434690981271069980994208024576185563802487290623556808652806485792679230937693707875422480757482817525688943154622732017574128920548286321419138357866460032066667402554969086593176601244018823190280182923284738798447087332093257845044270005569307134312775856554388183246946220172625752168508786433788301541020166733867787552828618363223298116111292391322527776247361181558173969889882444921895021348704086660223205473228732115210727955233253977635436482421343803882136225824244925175845598829683551167454048756469707011957927856379388967770522305749282277499219437101934042904131187361823309843125936997403546773025485586677442094566783159380346197988716229175397680326151365568334050600148849899719016634471389204341938246436630640896480166774549318444259833336835185651221691133939808209362047747369227913195218338090843817092396418054458805353600195081387629911530844869835605652273726714782109194560475311314766722556281481195812589550680189912306650323214347621166956674931902096573523086265569961274379074696568909975970043653662669968949074514908205359187722595282736515391115529544421758784519345861474668525236406037957049931858929867878282223627869353946358763427506256668048237453609239011471545602361436128499907736005247115648988767612645716766506971426349528560158484664103758789825527647114049759583658870428193615408883916435126150678451638867698734136190147204369955231270574137469086692127195361146060340417237701308136064736953129684960528978816141616375964368888379216536280271885217488564653740745272123892376181274736895566764519016475190287255589073186887110061168512352001212295843362396103981472721474702732940017171454494560633776261669733571151628937053051299950050586923839521463825931433977555883620876922386499554133534513556127307151047244133738660710802536578079940528789746542956124011139072756103755389744295902244525340245999174402183033966097442472993695183531372855323931208354628151702711477425239177623766534954035823803664278602998581891121402118920380318684882769457627325523813052336668031209270445472094493777210961242944607931503729364627775915612020620003204265696315505590342860346086540253005311561069990045406706433370992370996818786445317043834304420181478102044879216121043370969788602237113342217822544909741261407073672471142945014295916256583886457833734828027022722864170216160589646900823326859959287285714879888474909965704633561270708451032444041474291186522561329017502567834846242399597906982465116826270489151599694502593330478770837187791189645353577560543157525768016495839200385934876484046227325910451659330212901719358856555230110095910668404493871012395123036090472308122160979106444276034418682969407891093525070345124200218701823233888462253682525664164238581973830381892175922703978167228464676578209585176872437352553587184189865346283144037729225594758968271848854736261385463592977414045149245154520096555120529074575148610556762226155754154628051417458535083225114919448236572921336129544088565088133658613055361242863264868309633679114748395961129005083336357543276696201845123023844399438632814490199055531062627974599903309657771683396882997072769175956519412436342463611192709681652346056284560610497716252541834605347211390254605792530748980818551140948101665227302919133230949382243224022519353253554676004695994800772619062551973148931768995317997961448447831683131930032949483233620183531105725613210227807821615057113552221510951476216257078640109965013685616760297913981544766601674546189766297823104800641510116998751053447822501478803930253470958181658302095964784271725437464009887432230984222354579157674301873714839593460584888339074260529523513104383202402644866817456696212965126275224945859560073586813235067970603922637161080078277500532428301334507549925081295772996955086950354426557909054728337709558967960078218954321570065490157052642688143037757146401806677981492675158634484620003005610421884928840832675088685051482342216180277824311292729908754678595896394124391422365812620958857757589207152587178679809024108191752408066483727194324586513884073199642255439441144509111415890345082948288580502360161917653075306194613298871909187138252135348528266388878653657104583147434402599771092440726807637273664914678462577689623010846188357184222303436885536435395783944847937889585161403261611395692818966203223579030096591910439846226500619184921564841926238857569114845584300983907265419855231400803868684650818088120443483207091740305662076168659375208093698988919528732897494590733807351207838763894767316829959112225112801293684374802249223117401486037197079708621171986906177354816748873228964575971646062992840819203170550897078773224399273350180526718412863665696036492643150553472381257212618122753294719219523667594267212391217337656615836487940991341510899099684466781289572608074312215711147855109643021692845648809370115362667744355937286349432509978658396309767717560258689328378381232098660149587751999182879601420263846797195307377448203933442617898250806231350251488360774178277452463994395132782610661256906467434432650981468266276147913585238456736010246773286704869009069297513102490162906141841627320922208329344918523809301109843024236669908933058839579458338679920196990540577156810198554282320775974345782855025988172934225257973404965089675606809614073855790417808434640730668300935980653927207256494273364117224582276372896811881413610652517811346044351248194683798402407020918719633535646648565846899964144880193351553552716305844415289548674748508947531151143416417893531923277687334911615521472613727387523724148564132906970865422583183088027408712296271810499414368040788752571863514088609577726148743813580807841968419337714521326938136526817370544176555796633316216186443038304238009204913910641413582273901092106086430967429811266878728801789950168330578603759182889493586051262389550747393470902863023557980824796227548088556816636219311280009334236535467365504852271420878460728530600800691434086837847795482394206877757196813522572264065192280006782086042901983718273940628058567229291502261680797679746974977061742498054283022554829040201893793505418528129765445728730296758485899354088800257821082315083336091247391619603520754837901560329300213514716705442214416722920762640027508849836432801578794609048207884535371526996975444277101400641463830514715168110837685626711526268007110335056583719854488920412688682184472857262748760233216434459993417694314833582725621162653430216389093743253433744006153432484200514013527236198368704989964381817380930739324849228133980758868458210816554311612232667180047726385175164713935558896936335823066254498748892733546285704752677805896532836632520299886103708104076015135491702447800242087004579793071089177884366072619203548729762758652437757022688281568135911518591577073397907944549891215369991484577233260485220219012195779724422061673594120029200751530446850443705550444237665095893762767561273647151998671295021709870463212758855137020346513656942978377687606608891286527988367010196783456881629529853181434750574621026313755918604426421172955168523210138341704809571465185323816460967111234159414702224833368473105276487265188518281353378401569889221521219897067672332799445742343662274429685789391337016177183313079897312229098557315200481287841206418463406228499086290847953810679524405502723769706595305405330796021228236152806795626882839685093435430827703710641996554442362473555838735143636213725310549733455781918554463161317846567551836303129994248449003239718909198891827389531770708059232372855029596281212207966582870065008647720711248345461831499865865141420077774473080529879138841187981199171795278947390481832496350534117235907279224188300563416872150705977059471605309967249268629553024697800925555207827373037230368453159881331307313649891872479896755204278725853647736826842266991645630131955990103045787597400800637439360793880422743416581072533903181240669023673324514265050955790552989696448021917245039580045283772079237774160738577090156423217884461179208435857929318563436495691121050372409058801385984834497668467050239877965783663793380428100003854088403690691734369297226820187549442197733931137912193560134312397963777564716603388128062680030477632922866709683847118833407645120695075849242717805273348808755647718877392978593052492974081591845171226749036135946524640528138321553116117858484731261589129937420347409455977514244881027853650994133173065918654590974465957006960316793974532776090421252834595219036854343791046476388084611496295362000879134359987151699468418036720748677992237983274287305443437517441484025138530036302783949200158961927174403372783166373216860384474024319123175823412418233812930621124997061673784851739080129322402160911139318699060489955186449686070957645118816257995585801371092986753855770968751755681056044234565638079556565437704680973295518928701718645379310843512751975359248889785854282948188238697157276640335177072286138372475684715645751061630332525773861111185760480305690908321891083397457011693417619869005009247170236437580714249781702391018099411724077146487982658888268911931193119182401180576212666397907206789868393078258946777112811727074724327796963258484473098104184792805827302390362181965372851142522364932675155199742766486380360683681869706950932573081446444886846537203870986882974393148118699303326121756458244147762434328324049543793102027543490926025909338281090457603517428486576875493108649445392946695254134540050423895161334689978067548791376142382778434958650967081681891917119480759644894059217730680177477931172023869927424290488720918375764783906740762655088106522676320495110664877045816071374961308937312719566363749686503003991427864716050149452194541238428412682396964270703516158830751120531410556489267911315135371853660094098385396452914332268305104429230046588065535390303366990386489590329377764119021055624275983403643190044696466977781985496859257438220339640810450382516711273991166836539499442664124676561248496726771855591973830373826597725868949320470416515547332400427327536763298215371963538198846807078755244438361821539477357100211753743805285725171414377947274193331960530396813023649994905303573719448124569167698245862104142944319290597865151206964691838783150935197657252786078267732553768490296996263579839765587979064166417735116895413007744721003178919437414688092472401626119402477818906003436541299318179350397601074240163717980197803924757632797984984602734086115986052524765929054179315343409686636600712906249886484146007898094349809346045682868771958481500293503301843838267385194194152357389127856964577898084806024660593919916958183114610435386515246664726931685875604048535897232518346571246807979423376744618387116075789828565511735038014357219554010256447269621741497757545124081924115630398358083001691202717956392850736498716274012381535721170334411260691700615052522434535075727992893404836927238464308464248733753254272219518173797526729022116497949435861082590451776576072529873686975638372737338534951195716816493354421109962283323900469148275827048269791447968549216568602898015389495957737780356504194211982516121769312912058708717431910664402777415300929668958232542454785360828645593409158871566096441571803245049534720775545783430949532106195924270446545605513059302677667775738141402378587832384537817066897672845364879247901333797545023192016594912505608237582644508394599313285348294961425388499593018789819586988146471041357052586664229127068009597210005620423715207321922168959262754009064852511503597886793667751375680080067495894379121348383918159842145402099052257325270567454363347825934823584129106424793517576190481212357088743473175750838852257766909705756841461605294292086616672003153499165951000093270917383770225140987100088984528129047580956107512602310470595504538560275285682913297115621590558133154132643844354467025865959394432099314702505126800477968189123256209601539329544921530701230765008703369139594886660337018720656642176178510416403924987537989788736891315367395966865378336796679086084028558303317750355344679679834524089823374365970259476719298230020166339756389680332953126755658072178294658988205498354046096120522136726089665361728532984237920163998869378156209104422913786157211063204607241576900872252423536621409341146641343095285129474629103253314109031435485656956704033082683642627449699401789690654783175050717285664924352311718962101266344390005055408906440117437023638919171278486565990538065034395743477251395791015527005484730157098273333916541179436010294894316327288457657512659210347950728086896592852387879911366885405119640218105071642909548883641384318100831409383020454517449750588151100605032000207207748002360465129708602541422304336355005196989363814065785589324941505096004620470067819036232791927878794113287795729427954492090602858184834465065421701324477777079676064033887094556462929850805061536835475959189437001530786282180594106036489413456277385364061689975255033971584236803609479889210251891842457886384231570865245117713388612504363432040931715180702600409841589988221756494227478839760552996038997395168047165559318375331626659872617657942503625646363688260246959924821871837232752814642985892726945143551619673376427349506169100674236954328243956797573537888858986519631831017014506117841503375044963324815584638804743466622718633027897720654148023162010215738934408472373190698344357089811779120707985950811960914310894157830821265910151254773748570494250509024458470130800926058817754705101852422281310993726760369783430050925163842448616472548286943904049189860030668675643030261471005228096468236569960329329679860561389545854449196098745026143129354762021559401974999358758203124563378840320169442675581329475404527146241607546184004052779065689040598177577216360803469065638764768918786442979718426822849674760215065057036435864941151532315868185284520549229802478487011239499971945866834390371503829141363308148842832685352138422522438930415191389167936515920744912738933008359673316541385664939123444257782754882251618607915423613956564979388589591603699162155479160872048415078708020630502384438291283728526558498793948003364070102590115376968805809882230917845715784648551439959930557293339037526147952397581018273734960144166090939321946600306185657530059598044866012715737412819639041502209510188627762919896455704182779978339517549699459382763748986834686493422588562357357786429520137407819462008310903299062926659880548448977523730067004637830145063249757824683280957382831589607423489174404829124555509222591768199725255214060084677955191502359529012495794992227509998263052796769351348290260381086558498016622482014311568549071013114584213256350154118295686725267229702152472419068152103926578792950624332719728701039826731786205350542166018704980558877319713078587245475014669182166472620373204862103599240646963505715257945286588681088364544129223068989027610922217816808922867353195949340755813273032013544115520526525862044332579130515587972060124343601491135675317534285986067281870371749777379885639256435261481929301593425898685902567752208679530712758548610465188903617986031409063512835608993936757966814274145843262259250416557096217509778249756959225837539589832730646117920593412680230266380841087151342156407670154024039851502611504340017995485916025892623471416687152610096728377356384909656640988822831606547187582137367462176564999992882726709371830414003592669266508727914043128003709906639450409903098593058675831178189165605749455414425933212523514526987963516269990658851774280149592287573094776574669826822070511515072549020865809428747063070826371528123290725388427338610559430068422299591654133061084036781586055452837999257821895944970505573013695913437181365148565983316882402518814168579170347919510040787219352172079989200433925288655364753415429879956798713106753428884727320539396459713853113312649036267819250582590876171857466409594635896057676454290951535333687169042877851653327709160508967004334404280486838078049279362604014013044627461201935341998526484666224570231271645364361085292994141547942434261947597821647905294769574525925748061792518234165745046391441349184385815882320063658627841893256891920924038773593409865795431192519239725912901459643827403009127266452702969697485716717312995769108398289679304898306351532748473440771328126606030495362103637980372666793783667894499232833010627143908562864521013144702751129074834292424615807412654462145397808546093626840181434371591037702776637597426723594577136904482698053456350407159084362844172502368278747577517742168626125468942052004966733065193045805137091411084267599818700974283291857659906522598432818811454022443991682763740165838252666918357700134408496893090092364997277869273074410143414154183873402131681226013822207187117923387648956741302503846121831337111908318809519694773938532529320240526657091343659607692904886431019190771691107668261313205212668699622374063808114112386747961792268148907874181920009185853312168189473856091425977220123318543016963771223640521959513093963615338551250979819183034480715151445213510024713523341838124514003838660571515466165942944293863944843266410341308679174258575147898271644431592165736733671954551007752576733134541648727691970396151961047683564803698433169276571111760066334842210922087141552784487273790230471629480550670613363132843254043205711229333711365755610268281225163305950178931540758516461120580793560397162474642421828681664706828271002077650384240798665434038303812977582774120151254767078401225258134139653925125455573772277736463499262163966885136467968785902591010980778245621773760293113931587679329834719002655319016148946408838851997856254201899794622029848967019527456381961198269198408612786644230587815440185344673970597330277451179603806243300235414767496644375696129484569158206387345727051596198086062308986161557638229167901028814416580970371255833692905733443854739729217287224006980942766104487680595472639170476667830298838808845497884731537185339427580227484290334543749992324740249717782027797265969075626750337447767091843389254293252481598922132209275979536099067666538609264306086804674115382161771960138706958788021631977788942445458879160574266285652119570135512304752512660507385301559060963436379081115495897115083152636034427158436731492596757046371627130814078402909455246000821814639993049152764724012432401890266173546438561024324390549706973051977362369571535258604386776702549362060737024322835077527054880725539950997525598481311130578764931861643201249292602439984376115308461123822049387821033796644258275520235242550943531190427053367365390658795878047213151751705151953165027875404808832283204525970254274033553824250658734523076425065696452101340952822539105750211270677554921710392259783132964216630602658445700387039357589175743750131131455178327600463118912248110507792799196558397546951526892520888916943395354318971004544139232195073795730177473257365238545158035465663538096883961139038573090552867028867635772556620167977097775153967608479290290542755719185922051048736551692352859998823207793922051272464870247167809972917261881551602035436946894218948199040790930377500776578425288781057230604054686183164372167933877970221324497647671715493959636109064571459065840458597044962082780887235655471611886587136430318865609885412625098270684628623146999364117909659866473402390964482759024491093238915334464909292616156881600961778877799178795388147905083752008280938973128888937651779222769345441362618020582693468861575465523599061291630533321558284343150298531505349029746869690250547580494290359099276989443275468453972011820343576983856466969478195378231761737224276974830023301708610160981701897575041301157311881628397174115193554864159987483078689867022702112454210524449740925409505557243149487020042478247434553815477273275876916486611431105148882569331777093481092864644381849915538924850323948591370835823367088000785282185880736874769627538981918833772526418638413290901473713264389314592332387996257452922306111903754451408700095602901156989122108422827154850713936771179199242134378687505069759420236105666100794334185710761086454170059133259128793344046539174036766410548460328167840911469891380772422691766742439121246350234802855558160895253299236167676757272531754068121845646541162959719503577368561832544365341027195862794353129837018833702631692823317413356661175197541916132691300549710280449429385105709103169034076819738762775616851007911553022624410169632481368700782075714721088741204724184539852957202045654208331415692989303586916017243339089097459112688803615313453375128982234058174051820110968484181655549589875269868638973024574275900529965371319979795445389896123407418103185726755456922838104322844777532949233131857009873990254052682120144833873877031624443682519102817681401175677819830740766790897610452964913762905120133599986095321860461401068750312574904927595841222588528628111300732942250651505392277678880721296404426839197504084799160979285180446455364527540952265793620361034152284951085755908735918147496594601941559753802836445787295114393936646498426748495697964446159347371805056325287262094321669351838589409493340938579639066113429554252532256381820168505231894973939852229110049390404706339171612064129760834811697982371392376457851898041394503639662514891332990653741575999695815750210127568197349000311472264487792690779891379509603822460699481914381952851642483002178546066600173713498450306403420559350051732170619367901360653300366555922606042442778743520412023830541474640212907707962996490475059838997704764255717963463814668741330084466970411271569237293717220545705586978658363500871655461668291820432554964672392820509175540774740731270610282260730390022049725378279298004644535041682509561189102317186367458087001633272656910898250806862117804712391485063514560596397298219584926810950795641099167647477410762541797714246951635973196798658122083067294551738433698598047446892832329084933462887036922589788843798314789644461831811772416367576570765260540711727529938345325322042858062664091935268102444978575947039669318414503366440025067015815434000889300602318629921518519668138120173515918447482542225243593686402933390199820974504052076275511781416512962914326806780823044151118074321759843840837226464146953979196071773563584648632738093748895843714977144162515968791303347266669449548531164122880032328978764650936218486427888846345244356286365678099543086992041404865959820039130876531242059348342587661029552763233594086139453349777022935657518893641221486522608349213425005883376461795198917288786033608332818201768317939866406727494221458689800310544913163583593696481445366484995840454234173592962780849867176580512501651496027893206782696048131035623129619791370369798859628066994322148820803323598189315873660792667762372253715281998184421922617690831612996037333528912207584593213071924404165510596063331220158742622805461521297704410077797965757581198691531995848663744293015573092438426368017967069632567536709544073729845693572677299454061185384616148849139453212305603493081960981384202605563565403574644203741415431846453005789355458436117655436229595724524653475918656882292814975852683638017678982760836051433063943081918370432435583384404952934423387116865372812040287184057318821742710546522927468996736407004940166293155607129912005020967987832556562569903173491340249179486391328269990512881159569007690613619921767342889506971873394916908955308506819047675030969550525502940637843765106500452952451406808439146871725983523188071042653703157300531283151825893270067457376536769733601773703592486743619868148775990986469223981531458016731991311343490584111407140058006257025063402555229314006273843565954667867096368632209472559558566527418323331535275213009209193438496744783072627002652292190823596711762507541866063817791433786501801410541477783869232160808290705189714066291667822156315238046754667603904664854740080734522510216855449217265238749552265040315867575952336888258466823577543771868902312457937443581376809380129038882603724009785645724141954957494331945670373396071785532150854580766997513804755661619202053651948721289168125539331363984857384730600166866444204108713380667140456096764844406356613571478023822725642910636044578924081329606434879036488262517665914215380428520980656560084549386865618346931610636240202970253929940562024179633026548178716023791098795408833843795906764995668501492311689785163105153859458857883528575332341029429676767865726394054270040299558903457087052152102301831093144518406578973477925960499332288854518350521943770082623553264252942897927887291179543118893063338940586325469588060040400260633668266398100756588400449133328617545902292122509913005655828067729864647843785455104115584008718126786788423520403202594986471650249638803748846791784061453732965357280953965648906909368502862461432559489615813881567295899193762264273311028002107637531045350959354844207520577140152257996124502424673388281287919889039150269257138871299209613092463127527366038279925073895784696957778839297441004802932318009875192064198183391598262683303983063833022519176931696459624719099179965089510779377518159368111353104366039815800755278190238425344950403871699399775100089752420128981435511917613664306200253245259310372208172297636078836870897239713766241389295540760579949488617266034236209299914775550368894869196706639529200449404732202168449885678726111893044771784979658620089545292785425334899294479907926746442404828319698864293215186718499871449594530223894224473931460121493905774769050678299756157856245354107933065573815313593061051065042926967564483701486292756810160644147344711030851178290052162020742246195632677074505768436948740688897248234907248408289071447353586891461630894667170279158688818891840201282553043622852460265296352042871101211718271715693321017571897435002855583994554915000483803927349515702963625934621586024474842170045478471970019028155771113919469225438208539430720451929313020563635027966352760403395070462124894369893508578801958861348349533504270355247385376203451879149170126218705391454497184719952211674767266470722250769127562223527297910828719658729420627227643480846165801493224298886451595981692827298620604867862500935991881624956263169350869720980374788132220622772898252305870952960563948343012421083638750789981740743199119970934110788535560698683681464936564618448608649052207204159192622955174369216696808739702702239544211071587567727114132422874674004215680453836220265585596978626108946686722844192407757461066077458436306665478838312049065740099810119429900255355370529217860559615104385036498626839975774679045948577560223951103016098162547128737406281276724514421648972511315052567529222803886105570011000361045917552609501068934720936358854179618029017906764511065328738155845873595148898946288353739659923246164347822666210438631556087660050926558913559639646579805156684135845938868352281262856005486103755238517814964912323169694530818683617318641380026036433108484051329724139231936365962124723421604536946699006369345918622487623437898807645549130678929685538853379963141483314421809704201184355925391289386281020964798848096785570542594833201985932575554508096863776576808269957788769919702861230483263316021808424814227475352269800414114663036248974746926200527961935380631827028355456427365289012576705900253219909112797857394214845927415676611825717880091011070396330087132498732952726942808427830696038438203642600434502506726831353147114180327243305818681209190796650736022815507855294607274227187210491659225749921728444149954976352585076190435960595100250687754129486036616222776468571447888276076876108975168109899816627117616077634826298224444412940941776100345091622001817821044660803419496375779075478945714022806229789860838596211329764906995606155148318454615355594620590802673532700600958497945237997878877177855666997995669912613835957511561451340181528901634468038388579177145889656670475446464341603759681920162068751092055006528545770260937442340134781875594469086273857203991661241149667781594875146656799979819531347033388472887471238894382302858750969811510400777401984288281830104769943983715382164562804996645176573432336958357596904096261132613636888798793530600792399705454053504346678474341667688874101101915446010883863247182402687773704425415833291889689564879095897502648698540156489822195652629692681489864104945880161501812150849237654296032076171494408022177969371320382092252787597430364516055789614941405465902011762019781702465748226069256835219048068060818627995832496763083841500640314873976694149190598763840768078563134165522020314145007231835230882750289913798723281363581844528170808643583458141579197565895816698646707164403175477334743764513289979383218564037576176095541061590326304677867192524017883032407393442254779183797881198064366645126785798206597808519343546442389070972320087633301570330510920640812581085383448198767551418063687491210095291733487410792162466966467830344829729600528801898426360991704606188708462497038441744393170045828359451764750020846255331972901735133867200125829135733192206967993036032949684684678350803596479277743377482428740178212823059094911881686635218523840082934103657088553516820011038710362171166936736005301364257305481501443165680973667874402439632099132679022178871312847968745724647188355926804893428777607036829717362940814563958580934359709410037027254987092709770327970516048678803367009138157898652705299520866552809983637823972529826484839239534141632407978259117513013449483810076230108066804955191042632320852816200093613588683922087591771448671792235834159230138898024695582066884076530294585240515682698254063071806825859479304556304372615412224759640543144772658313198386972208856364651495994926872370778797198976175254235394347628915019504249727393303220612987878135086628783419502894679812330911384796359769299883468936368493693923599415136086904306546357234577384353875657798707216946793277553446092336496002999232297595179941717072126005756700454687446301241274381570962822406166728815193688546617980980552896353968656717853971090547301538248773557294950682138476146582409305029428052264446813383372346135434878262325578450721096984693593646214526927873828006125442907424193980057117444842388440271499494705726162806089989325113468887225266671775525847165654907471517898741093027951566877094797057162867938764001144766806028264471485943646087976067475555468205737400086437981333992703462917328834799319852390675209243009400769515191413263498207246362734079826011640833441596405540082989256555477351124020514323658939015346400150205120406667261257601621701076514346083259445942632931175390728156071724326304130081618325424589907015054115260883873722542320248766531286283209601093733352120900381424144544744629411068841841314254789421399013447614528348065677188102381675471734323208281811673246585138626854124964655388691839968496551743462368169469361815007215805737949111160912337363688821537881574317293743984632474414768242851691688303127575626505265945927533800436751915036441756845124052864243384539489012030955524151682040089892588545262523347852600337063491472713622018722730911688103292676978097726407538218724756684286279919473901883030438849160997282959765744882279930365433202196929904003887534713173567383057926748123500020808756805831705728748309377165958414455995893602187922971821146912519404078762171727555459055406586600327746535001873024246719286176790075247159309814860784784247274302175811788704794838614734305382765460148273138769190888110249311997861443380494613201586446004348235655267626789776584806617069606952843356717837183957839330603780493274378782478465810188567504542192678756637555645158621636776337848257896068664470621540984886883547918363316304458034245059237373571002398353730853478691663081046667485278038392184781477219106222771090122627158633573436362134234714958659111769379346226260701026821599310997258820573919815151004855901065042399653534385554520965075326580754107253263747673238224024919520174905807217441681560811836658661947344581338000394476678239078216385591534382495281096280400243148415436765242617639702122719270159326093938178186025375077955102084530930690461116333055050258786107859467416240018407330228877787735042479556146668136804270790065647819526364074796286272097621716798131261721101226444355520724894934431669751978425942559259779639875091496277693725142738457769459834002875332954756390111537026448240368154426318169587958036187595178103593848184444963355728925568123460131640184660465321970070519862743336870412598020219005041901961666721945412295471200348430375964090376078587547766751624977312530545320351124474522321129172035319958388551198300562544234324990068003170453460406377069012848860520565164885701681576532415433452087898491381217670348992126422541844755613790243600052950459504783403634142651479442662479140359200814012686443387097385826390498865189868350868363261003710039351806722581926052694934310851776817646691837649282544158568390056081735334987462660336411168222291117930070147005158524990201165500112486093866704070223539537074641175139101365066856963047114845360755930282920173256043915064227346417745734748361149398360575914908279559400413570833661373329020034687076612322090694272174598314411375379389613726907779544504616402784055375496933166279394775612984021679080389549832722070451854328175957673799790551959286044411398876104160622175161932551753974501370671408261440746371933537181964117250349083145137084492106972322927163378664655918169172529262602716114393339394014907561368790651072850489160604957116124522389214296599795079446186295959495906470714908250171374429319533020611143244317751757635835950525724059283208659129112843591732117836329180960730601574887685934007296405682582373130126317116821536198193407832703493297990948215186163404044039673091703381774494023223523783105582376189314458873255778787103341043083246874050457756962699553300952788726067909489637348218877480295522602955365469036161795407629418397853840899440195664654477834816841842052434313125677229448959718663911468198073156623236872780132934769486468067168324234958091035537181977249710882739714735020031765638981364401307474711470752380425434027646609513210246993519405338080000738581294341682691571944788493588940136283444387363561091553496204409896350535837366927807626424913692465067611219883271342562849724828236107536926923755990251989913226347337080235019127381606279883883375702390317488749291022459821635837906676685403918102139354313140038247659966741192379750703671350353241414853772228612646267213626181610168202946483844425630546582832140803806192736020394273297593742059316522327727947116966493394096957764695718356414711941432645846969933389200154279556710306688961689169794744806117886221212134274135125040612209480909491366467883472176692824509846052579138938896937050706169819632462338266050336939637563598825433923686077967655987375343421373280938614611561958053738040010123709143205742078761653106783433108518864061507648225498157821189219482898389217680168433709042228271001369114490925465568740008089786515556684815866485208614984007186465475712857515094913822722004730344546267737117028772622639807840962087754086390880366630528334458982852100448720798570861796181079276285440621553345432952009584989206425581387586382984973668302750343052221426658046585244272135895226067954425464486439074932593479545410548384936046227839821632132900369324898813488914016771716458713906543871813936969201238937394337237140350012266408166948868159202035026162909649493158920342943973089144123502610630381090959050719561191626951166644991509216570985367595474516982275151923089828189931167658326917216430870502003273987183274281768427291627168177146544439086441724073723672416942750635771747337727426992575058328750456696347924353262719770653710796603540197001251412497018513691631395757609476694893031802066182281873062579842866598907456364004507840903751514189481836906493988110004299588158303475340075352000754148530539742166002334835552825892623205593628033365933630283631062684673755963826795492126297349563497038380896349134997188163873692126576105202629397259091255317777408028150178117569386029565173649119411879937362763086866682600131017941476609391580233199752123445775689268366704246977033552462194389514976158325634453620678717280896023191264392152284015996397011466737493016239580949441550470702983223716563731069594459713582402850297834893355111989935908975838501188355581488000660893365852852077400824180948538429548875239268789626476317841494099028158303602063277338008041724038593149785523775500545206791936643278318256314771111613591396743936390074367903408231584611951360911793853353813308560028909896415212910979582930068801196337651424342185081145176524885803695081977204206499718185188707676780882211926430201334761367128226981721331675692315940045884287728763366768114130843695557380090898500924475232393907259202338859717934405054328177803531701784858889678422510358833261148056448189013055093400666520269441333758721428377279291444153162604867154174552918164971603394850492942619640695583239771932206917905815412170550203490577283179515046192738575701647111007930250605603131473257029194912986292349071340418214844499493575736941609814577990995107087422375900073115555284074959898719280443970230617177154434100847895104195835961744774963810236742815662842074529773289014706461745489843620699807233255731736275814400803456196515587599299755514808069610403906484180973350570334622299576590459581391940299495377887422033884521105129911030475200110841312478805181252709116794916233033826370954331972063336325180513088068613105558395513717306759877039961480874169908700989577831007288666996481537827013287137631458472519303396281994480562255469129211242031710802836740948919197326046193785295299174864713135286074616963254681414807816747526211388534743993507707394150043227650583902120498386699253518403007649867813195209894660068717499816961443168096864408553590301570545687447112594095345501330502156393502025806536197286978659647378657336319819555747207917066999392045854549466212590276114381414568009408778809202194940527593579515377971233106907070295223152238587595914465662469350377090658643095175007685867053878022799158056887365666036421933539105429817762768811062165627621321645433811057596364955318408834655214004831251881708213623412170862837316275364121343582376966389900362827252518563605992918614867311854448382085372844546689006437154823760526681428273818164881202655200411661333937266287665898812777344822334609770191306635265647973501182882056879329912244698790069968135114538065925237147619558170107308846570296223955722796541125576121385746289940910064513322562208024049149692701606093127148897746317108930518202714229153256019768212940148122270139997755026216026158027753594095173936064128139976658886990893448239785542956349449997762824223038283874720960384098935395701843559834073990439911412433371449543359009431365801309964556240743103654117044591874676196242959994381127702540021513294094435392587881226878411898237333199019822220187198370003886945040657823349685373392690972087107063693946791586329089327389940695947776026079622081949858168992417545128057866079816379721099267967384436009594418264824123435574860648483550591934881460557339591297517600424316748500548114583102025546279911841987604733845874291583181138762529674379267224935147796009603437260402933141507326394712944483812734159592197091210491000234619517809904872680095602352713142046893802953315365244835075231378825652103578509790811854650229743909829574043134055229019276177283830129737026302008940876750708331004864251443585669688710484999468648051556340742558307190058856175176325968850069454560492399869040563410131363626872528722083821750465173394673003225012875991657230582731188320476809110185252430781625829705419040648756614854699919791820728120992705774173358838193819033107273312652318567591576849230534274627597270904949912564319932390535554397325840058372116808209339413719525954693816947258830082237607531923016301807581350666074886526121305306407608504761189702349328565247716064471871992617528340001184156384895084841196142242735083269195559466776018632153038467944562917236575680266590604130608090139721112819395555095379742169912793327154396993414069124524055810920454415046621183959284143233173492970174417257824472319523021467663711844250406467528752854752770298222598292864855406898158300254544381671468234795306841707328564511363472685174025362485110962942550435368793603572332122039709443316482564306679817410762581671180578998376391816746679884301547841204970377150570135775125170919455950583829710874763041284451048462189044378437046337789638465629061628569312914085785880166443371797520987229605268599281285284087541071720099677226398042158413073757243688040672386277359960829103979868327046917885878035297678997963517429548264396444957236958910653902333672667932490857289935704335853648519826605073585405537378774016917824124764351138483756691504569756351906224796675754884136651254765144272010720129948345816869156309758449515539960558436093849812040806973955636854971330070824571255847263486356946424139557416648108174340442489540478447011493759486742600274006646000249823690393377802678232980965159134252993219371689085196698920914610885294615609478892663582440628173385851611670396416746459192116359752022238116186442375133015720551422038262834804183093534888365612884400029611056062393131044264619447390633787915952345946369342627287106893308221949854606586045079002932006242205473890986616368903428412870068919405905697169719528620629703875222710413931725583802019488880086213093672598547956404468904256237821205743841888263545701932537527977755076374092588673572467229255569228736083484970069995051023495785231089465675301094047849759626187025781464733565487802800321734946968434060869507728445247579137932220113903220064338099647925709454977557248473471958047383925268602006141480153641697886586120816676921469163951852582414562921141740869388490173255649702780662616016630493912968046016296147800709833661183420122160259579244555017174704139990536681206012058590799350115343816626412832099993187322781360412523979206411138597023508656588665439416278354923671138953003007437510258046127233514804274250468131330712891098709164201445725543378538451659906782218571260293443495056628792449698000865948627382856613770729757562918796277480688681812537899646340675968754467656101074170200103695429179157862988384841818843123235860162834087309935985462078170951533105193351368500667166488004882599589469968910567209465586799022617385882754839093202735335308581721500877063826632282915721151217604006402170865571137180654046795689935054755858344486856971889101551618130530831270539527208787364274194595676047119434776722670638727457911676569162658137144624780458469488104589136725350544885806728001929107262503830764230451256471339736606364098595838784026007749579957667093139798263637094788072118164942684273181148795535825030072626316850419890503302257391141133573161310528318002702233040239952944445684630939239252451049308599518396098494186819509231803306704557792654483430107897388899783758988807234389348478856894423949310076473662548193838497109577487145513321713836152964850246362677303872563074848491182971827829023424783489255889639687193706806745659443910820859172075035697459739585226194833440374502504377345898594173390357034744409707715043754310757657063650759286295848265946543518643853048669694769651756158338669272888742605299064592886744991249622258612737259054625010566049139549457296518283200497342200714824070982930924150827671529051377925972374217820794411772310285876315401482094496355320406634006130431097488745567315806630886246755629800666108362676564720771552323024462966099878735488134145403405993882222984463772366472277373395660673689176290454069681431623260216861153183494012847095949074746512985268815892545984635327004866196187855972856169850894854651668932655773187001875861986830417153666973063432188806625183475804884474616145881470096957126472010316758576985648429546868320747483249146917653787517848021204673663660386484523107571685399031940630699367248643006716856865006578144024950823852887474226159895864400655139055799999080751491235428287748809917749407542888365030930892222461133286922050918143479607741801608311797659584758436379389945786752388924221325282390531171884863474271251045395982416787137787972574460211083830163232353258561274958119507128556564386957347753297865737449897654457510915899454204906298429118600497469500616325003573587811153992356126549621627928494255576146620001736371766059334457384365257392944457519542469583799332487541776335298322662077100168459540096483898392168089369463626206271820764867459311664595878857059295201204827306744821201073096510121511704099355153225999903829310507712910554367508359968282670639077710655313327035043265768836998512901344779329069406613152853481024196062756800795999538171162522487770713015411241963351906408882019937237718423694750360054042234246384612529479387559091670217876003814810314734522819048362555557556635005182856926695422732601912515047660638794503579468773887253997188607977270209148905403673272107519556473319545691796960509955612182365451462713122269806789638635416855619314915226576331209566992722392132939898392600088093323494091784543120772234284215159883377317704188461679094049627972096941977696561223487615078864358706437241262027157656736050033859756759544207802704909622206529628677186803061070347201845331242218428658751223591984333824218875647421556064484094285528504506934697851724160270411538837198242295861682904010805547081318693559941980592845070060529383492865488925987107826012234993407373773350559825395195172158706859657179654190695904429644068444317479424258629281504189197623047483511059297107965574616951507676953916220697132042469270025169801502465216861598669286464852413031890318651281381503310306360947394791900514162826114470782856418588398190843001715118430298479566038077265960730919527512472733750765260984671327933951918797664090676711768131785737100601544875760630258163174455369358392263758128995763872040522835277093257694051920020037796089235932278239180994866381764323262560924846702110803184856715548257372268909350071810975900768335735119944937256747787764496099710831083319614973819236554267384574568687166469582580842258225283356672116123041396597531879776164578698196002512972212336345952022982101597907383145258239197226246382246945694227294652612561172456026447735766225807500817951020788635642808477160295325010526614877072674553115311593665356340651060608852972315983430107479074383682620361433632994961181502232918495550392617419312534588761038620371759652953718421356701890480563806357150510744982744742216983228890272197638101913048138573307152368998188341017446841445779378403438014924685271704381141751188285784509312482507335181469231678921873894010369609353438222866049867325310330886266900906603267956256573274688911644301347951140291798065749618069395477214553727831527342489549397696221295149133150531300950172414545918389222540387482437270725911961422578283140999072809480901779810558153838797504315773705861952675949017340230391039057971128307066480819691470360793759317899524763571534728470081508253083128301719515265788403531104810081586194886589238615199347261892221276192758065053215095966010792257507819370548479340675329458939553006779780966066171677155125523619642195683957882161606835202620514057121845000316862487805524125773119011704461695909372372797566005598131089422332448669097531394958830657691586396963347787472170538564112158306448179065282231983340310173908808294942722096356569790657769207770952092575159516724724593161205505664059745140295662832614209970922555806485383606914524464442311879947940090027109223782966995405153598854592524233387290979798968498734040513117455104322444709551688483894577690431916069120020658830499954216754788607979571151781343574435635055256816135822453895195864883071341442099048861787694328073580381177760271070214301722453167995490888008260118183554137152161297504453508372716658969968508324519722638056889926371976218842648210321383122374265446555319081493916761580611153235437961019076638687939678308649051660071454497729729621600984678614120806717664082810763203481672205301858854516537866420951572450543058249196880565950634568909799444376744079809365575251219254972530698089225471056043507006232970900564101935616474926951067860219424008054498870219245124478390203123901155563860955671956506712660646721445513236192969868761324885216851527987193228808869806960915510330133100190752385219451579514182363522755924860863333668169299666642139593301411144893064547317402496697759247359642585176943769004396535742108912433675953797122785047395365091133714775446411971498871328659612763633615208202642714086465067515354574331104346441984725937449583883338822458533062987673861183199861777693873923051350343430314759216217550191459670705301711779326113764180329104387451413311957913307091390112581482882884800982561118492182611930558462893779349487453935392917275703625313379949122297820110057667650704799056391452607628697112629457483085006674603435203896241168741148477671329787624501812273454308169122164537576130721084690811681367443788055762675242701315974437651060583251293948160729347538679025716352232790480802479934877614314685534811331836400838650711354679957751994723774516923494570084990492881019088764096118220996746398152196122103398185356360846788920002331046606919264240649540462157163895187250042197896340902844482122846230644007338607422870144589164520236797437520722621069175458484914861657543920762896709027045736803584896641342767646294041805142942000758988554752219233170577201161774262681217557084530992953080735936389346767475120093180620676308105885816540822263685024810190149457108543322730100030589830787948696509133940650529818859275241940365120573253587992427584213096219421794862195909036509700551729321858840059838031506130136737732336752506576568435706458811608482545169620181044946549131132462826664962019269020815370472112525704211624479410652467592398238685532535362098314798946596879178266833918404530630928285878442523710184881035959584931285657800742246691133370501428069077469878703209420030839290159265878852076907683947931466781037651982900457105357919631043189573224681663310487172305542562892882928401909048942968756971860218535649013596819102409010732712849948106388586559359941982062597314753423344270565196666248243808672214690396806909539850153799705628101102173153138522793270968808503577605417929436735514770208366017874535886976760062394000825530528763802796226251054820240326155358496127575213367613160482568842774332800304172723393680955545726626556682356866131598280900754503987702522471686271014146481884450514061577219673771066036342154247226553068648784847071899597494723086790086228008367982801427762995485435659198766905554778050635458681720716471671612825899410043177801642816380931895673190663705575533863787925783256691147482838414617882427121012264686461384350927521087225641281478405123244397965378829912150518455641918204670735821503520029081334158605655597287152531299693074956635034376499252383444313801165930548662715915039530677824127184936587690958319426006005003456904552746457385261109198435590501555321356895389587245607478978739563003538476131518582847564542837165251115863417643906945457919293424311037606130957324767748493620998646826682028420321747071665043480742234465825302745138634540136104815941641391628199347873308567822519080231913527263009935169585917275865910984205052899682517559076448926202309635657982141838645341722630312659522160886251101275229717405497091393960242326437099756183066425555791893978354440979854233288066967371718972024435278140904372487861384838877775864773376497474990716442805980019109370771363520392786852947216518188798613773915290748456430387429109834954317179634265007514806061675238125064519464430601335497966430866843147462751904896057937635586790287376992002822978091077269963916061849269158112928759587686389616429645262288212683613766392467320521914858870996841955269067227513797647490804510824760500042407496266617078036138576579319424771656801089773358012505536254357666624564414053942398716355582061568319951041455483187770625032681779541135787857448579565421140967833005137766008479197188947503976620529520145278328200388536133748388184537648720729175366125700605707664696970523823574417878479204941230873901132118216003863292749776335554382526779853994299033989856534055448167309953353275964302265260137063403744706722489796781907346370209965448755608490169370216337143331213173285626016293336286261890895325672710352855157712914731795030922393498154242445756160997249860331968240705182905983637856952968065783427410975784316201319647474576370051935472787329169251295492805002321809939173128415949546221951812024969064276529758798792794912164232282677360214817939339969129894937241879208828543311039371231035910631991591509556888791663593720977118581949848657229498324822059149134561816272210583624117282068045461703306959040638908222084565133940776715398368414206687704896681616857243638849043662005074843540323445100596621020535260475989639379540691314893999746005992426852744946728714242926921538735792833012314063599918028340365955016149573559911890558610386139053947677008913873756356665411208355121467750967354942967188898905906998153597568338169557037406695187844042682686859162924783428060724005378415220617319261385407390533950638125374871397501438713592781915506576285976365887132494350358496363317634283370152901441700683078311840605426151318481863904843457852126614308322187024391931086917381799621593244932197251030702672836779621559505904478029948721830382109733775344893424525284476881039744188994732861894801798434407016834008561026931388745166315393235281223317941999466020109786948184096453994738299596260013691439822608779679684984081228648861114430968012214411233763365162204809802698312462618184648849352218361024768664375910441720593185181820531428355219186387020597508518710496583081314096210349850066414659272163576839117881286649791078081761315290418905026179149100023202013292042647751427906797703654013949103671225431014541005256993203845678187783372711981359016063052619129402361547221399408563932594278265262879009674930635791120307054480593373734032611746153141035696990016935284999119375723123135361389881520779742547538972947221792646163593268083293600152775594396105458589377020051700880336046070401259817178919165876499928928389709631876658473072970119913222742485710934154095588219794937600333153232264200893902144777599421891166555320862896507158425420676386443622809458487301924167370317099322802140685561081184983576232252715795296269044599859153589696384722819835872026066089808864285509139467225215243943371132492039785726773933340436800379133867667838259987551379921891194349880248718164133583153461084868098325007380758187009689797433749986717775707293068802784007839144440349684465040372434729036184965967033563221044715799749440607652628926635594810606869928377029269404628942901971477576831188215775772397146890731291238450883456103205126945181531990612762050690533231436017613163292435930353985836633446148831710570011685464801386734637914104188544753365686958979648791218253605920393764830122272485130075769670636185066410092918631710048269061815679477842511937061339087057828197567320287969578359380383320299376603353639561580596973653771722964234939076870651565442319268024641419564490946953760907849210839590592559473055000237377623031058963754228525738173486707744401336577824602355945434667306843065895968357011488907068128865471742168346799131727017427929807258336165774679276777827068476496741637556673167442666669172615210553846522388972230371560567742530102543684630031616931460569291581481135309748409624350754821690984583845448765286041813834370277344956716843731929327510320003844545326698775056517134142709718629298121419614479730976502184116370521685631379115309317906449303884170284293760904216482277616421888565077823718829097978792318040876853781454168039279656582149143219787009226393400868548260411723427610724686157708712651262606327277069598103808833198987136543261767053574984698717829284983864589766551182748893171546743407673728847768493442136526143514867555922645761388034687056469824485239664482321912688228839050088471186013986690929925105966436339283107700580033857773894536097789388287002688601532353953561107723233409247973792623026982192321208505579635146759859797747190748890701388791462134153487869042254617144025960206247321679045908853571809683120986634843198733565477436253199305581951324097182992826981008430541753016644372415983752546071174963155681781614176075873603857625996989993918071439559133107949231291796220949643521278364113542807961526420691963102606920820866876756138735347951792369429327703222762189552174525019029719089494948789891782050822783708426072457011868226260563042617103964411810500875910227480192814621744633966145008245845641843869681746746953428009215300116100240230834308011522048781410432537266100386464366409332911597179778241499765786947154509878052787069219446485244470239398042759972248282525961749914945918403700798188993977045150366738348833829891034711054163109527461121222233083341201138140348944412356014499855663100686616952111169844852152960911197812876507993294529297932082506339778686409114466275207185570581431774168815735674092522425947201726976146960118710042310005466180307930161364303359109052786262981526700130249028273450106500352523683006917732257275661484074191616053937659562041756874705026703395175525155910527234225021521196528118045973008482886828100953129659966885195296083433454463128320867850128332014240805949292515383586690431067285608518791500901786852049699512528431395007609356033093985308461569893636442359962983870493002017960700611844511145451169320344480796251823679796030996180044156336296639565629354860196000678332764037466911910507158395737699700431030912850257106720693787458908020855746785721237249272808089545163210461672333848805806627511472211085964109443079325210341145669255060061641986524387677604587232281485836661678496564026865868886182672390158471707944520444540441573969484757701160004642358207239092725157629566780966727292182097508296910475593016178554609046732168930374370277982520660596946089172157410923529661498861442605711530427426053309348418222947642896411238726239607510325084971762080078299254074386270882157856215600196747924451149969312407090607738084082676622113806302228763601809006489838317641218136243369802440806342974998830233738764572234582746672799982949571910365850163567878405970595952248506606936037998149095256869229663613684598339606911662709093886322804842927429921055738879618304804970229020238932679313310810111067957806953401144280839765621785244852308357168812336632274804842524840002668783124689712496233913127000549303756416856837297323944414643541081183701897188940539172624129728838908069914813458917180051278867755073521341219811675409023416384026078961309974714215863715731850911263578695239637336506707846538695320706186501968976532584416251165803433121821220350343930750530091909432505183599466734523437778098526670656950816363407395271595842481447518215734136170609550589308949293276641516920455542346130370943689580832332639007882290871058008594131927264160988211923761139337593455088085046780488944826747567317614694820567845400629098129110618575800207440969904162475764569753818913799387573222463868608134486308753421217065120347921132688214266935761689152814329208160207243189175938233386992135870636137399985111798941701311255775339388838421030122274417626255000248303773491521481663085072894687837952177523510771883787180442275075641831960056020411903569105598819590966584954875888328361653375252838929416408769572994314601671742059700886113970303165049665725713792499694186562235740581559951348223119507569346303032787150667992371915154221987242455789393833355026310275240047818768676804765444319169781606836051026769455892094927747881727676311014028510349336902041377240712722835239730493109797921967278135031742832564939698971740336574762302435734963409038073584391609792069636756632908798962200931494174213653050292659941111669791526510758969751590096096643351063232998049364637768095489829064689277106742202799937707474001341007294693307463619771838604791150717552111442272563191452534003225618912730915737441021016615312388428624677875983375877245869564187869240018993663515511284971773911987938592723091278453760084232304173111013634393661506755713350764196968779401113851048349562801781723646233267321504284707442141165762303309050097935320367532099695140512469184361984991978857868100958420404613445907499159574774563415574573330317258600054950396188856535796455005823572767907548053205365105463135799878636618072756304657866302245756560965830707818966728517654317169702337619474233079474635827046011687920464140250162616524329863825057496687339837561979401024479123545951577646408220001007409910019177675901882041828927087755966767619530194712143323235554807784615605694880394962523899819953229963218166097754414508282557796218322576433017880519762379038011404821588903762107274796982724532373948993148643741738636838783564628423646061513248383899146773666917766670745772026658202439053342859113994912704641403658270332362427810493727623641773351118599751367203850527375177132599685432935855083182508140708503185137606550442376602108185333745034890684497033785103136981052646137740179879201755675760579532904914402725697687098173299168361082180254749798967596953287663124107858448834688070887543294870468269064627197893491288507513397026629516745702479665436634419360761806995663780089840394967401372765788601721800899834405238782287508707019269535128524438403407024059093049518844013492554557162917140158828887902545615054039368050942767946068383487206834487184313827214802132519433523109683428904972349381342001994093949467418487409096856273887895513527007997505439550594434296373699119677387976845512138883870068807827802581980677514820978967467705860002373671654060560006973094325381866120293408125210482013783489541837888653820937948593973948880076383433975273299791746757390678533636356859887447288868459483485654078421088931809527200851447269835909768364615842863303896009601953850943498996803487239336831755744571934640253206745692341582756375668118220432129014021878757526131884450025786346536860438121909783880519568400326888982283600737369315500618296821792265518672475961110825161332203818943707904897745871098901292707179838433657291122079249054048645459868243497076436041279625404617581580584588899299728788562628282821784329852360912141098027695015794703773098040762128483167562052160370875404478528593805182001494091922794872901456734009612914528632084596039805794621729106402581164223165816081950310680444703645625282804682973410749927187946511494939743055683636895559141552709623086251246170726850386378013539775948374804514015725397866214778079823782982773375942743437106107402302747748643326123019400468934928483324315968127480238712215383500726652709288032830109208500860296706853664164763819267083794076179092756005119960361484277488885245402910132787692750553104588748386804034933885583109555792264207753116101317273776071637766854559449330271298057225144308125311411702388485918315337992631606579205118929323648300395814976562895817549680680693020435790476471027305690787119670176731093812647625473786105143002787248672795005105982061914426304165238392124088427025461207889447967565304997254647362234063918617219431191287870723850316513260388759109924274302913907215667168890330919009860413725950900492822715055869647012707977944931715222241054372591952357748486452902405369602788793649558320806436014663149810980104987010516620031609543814245365611400339824475080434484166475428418754540075920933699977170199420258546192906302688948087965586769572856249879330181674889999461173307743945328431790743430457878025492840064864954417808969411981536765490496525466836200875586719634225171053138310526097403571866002442610793385158024715801251869762937325680601294012858476466323095301955239478194014583264772568315580382000626653398374626500981506822178247197682271486656907141328376430173765240196193890681195589235484983297433076569629583096224448302796497104202591280733112523245247022639533200911778556915823207740931072350250150290495717359451274726593800458095779803698466153422219000249817938534845102703317937203905224123679134476441001693905457785627782099070112566269181349808286519466914641857094084512840498252560844973291308354143956849119022295253470961423902212358156856850593299107815380463922220926010300350913530411011293856345503686293997035409304271785929960071190320302064358022542896700853219037655740338015625627977235139825045275712381125311282067349197185993634842251872912283009226236246544401978940258710879602429697923916422031384546616510629609945723029668226315492748294872824869196961927398434852038678339842856542170538604855910918985316639557095104462141253810537178517682229556117724923206982676243581830530959385181345467313866044965419444231163903234263596388447549456479496623041073201200847079431009486626865774128157495362007901929352992359269163934309523994273495827006657474937733400898053620879164460294820487961889515912425432942017760560347507842096071730760612984378541822440630926015129997165760872605024095535931591513501575116288439024972065034085767936814291538194175308231132977589667262734387572613695363670020812471472268079820811408914911102442073039014475304638343789288605674321679805927002259516379203429038348226064517800287152718176906881940050224963091344504512690896197715633120424664968079273918197545055940045625287479080362279856846595132646335674892192969762344533456701881357876985774626315614507274955170142808303663835562196863432405547464653154339555255405219732911012886070532854902804874275309005082628068332018746440777548387622926073303741877791349741029640517881455697572185526948925199242597710205684627428933288754975525943400057307101960690337704890804204776863175386096709728056175637545507061339942207519531914257941512978981958853088258122893885007561909944957713932143582124067205111745188004575791467543546150181624991998399308405871143168124682209667196646391017564281237739667932192884020603527521219568355742598762728342610642846003184382631798218746123749255796020881561058795660214183867642620984479575333136369642386547510106268273881180612637433458783468075884946393541056422620786625256880592824954240175309568250213125510886442120633712798487255246394082156729463626114097886263459393974054039122624709002836506357338453099977963662868823066991188786116027280919254807622787875163480658978979748608225856053432066216967346999426621388218114105364217377020686537503230372358439644289210133608339707623340125174762019360830416948067984557513998905881480783248563287899305943374777135726348394215761956008750883927348700341723847812234728880954405070623445851801994803301617005502539782261917350192112295219199257895517077694715693758770844937286968010687689372276579334592602638956039271856351793162555635809882109416307216684609318439382313263832216063281927574748093612219940141756193271239203598292605992225435211025923164678532735860122209769742692142883670910439895606906241543663655528587394647253168203100918129741802877951399109018124358761265679543103335180438112329427569102665229099772647372558810259011839497548440242398713029982381193359811850813535076957286682926406426634419625149978504057490549595735550958797804815414579745332198963671495479486790324075910324975719199728799033822361147583775614600010487133608348780354244600274508823380172717186361044484650313766375801490230740566146063085179222658723769863527011876871296296753912057660722257214049969625037418341652933610205616021465441357853693642528375726851665307634678224193317498724767044910222390434220947766347919463432070107895234788685419576716185441269521388497106793733905067800807026334628357806789096856978663251717836073423776037798277552369022204924973102176187874875157291884306411565740432826696673832801793108838084830341586431905705355670099516684754393392283656065218459256826564108737101985787909727990963623680656476847490716073679439317957784602838227368699722896193423544566512928781248654068752813711758640357002181806728676426769695720792262047380244836268623146928590432510615296206806637130755333206489453412464842684771089413354780933051512930046565347396287792869216944411948922358150824538071532896368142183011736554479105278993013703695206119359407430186866970677373904643092292603498156410362869203396154969840749039773079262937753862332286355352751318262070935899407567065441504155425611121578030814307930798744632425370314099610967847111820187247328166418575997030044871828475352010389011006878691813008898099899653197121887199817569583581875741427970890705883683168114243159005283621342435116782427105358584533282510573295684835042171091659302425076665945968216161606711178953222499521889408412034384943970592543854848998067732575380074583563184051672641750534985868543589411465928850535601650008368048511418388798254302775714379710281880793816576095747506270110206401808423637102052943171273338569926616650056597280286592923016248330345260538945703354023395522281131364852387833515276969518558453988224608061598747290859538021993683037197132605073847060736986149273720884020736642545554269254943730778683742207350100414664145967043580422779017757928450694935661426576007542673371623831866340514615830160424429465003107127726522388624633935603911135344657470949110935110514828631310897541877779417687065227819415308724426935427741583310971317050986524569446021236529558842484393423770444387534247732168754068018851022930671983466067967451170939447596263668266446824979267526252054792707509942902392688531239030211857555580533965573435336673211455863094107761824378925550433926781163530548280341012626054265388080737493359362343579562562144454030021842463607051566791270167025359383230743343875661505227286361599074001365153714556162698517638311003089285673474445632696293048000840343698287196298212680861647556473996168423284076854767641032696855498692007119726295334008867881941844234187353327413381359479072252720461118675332730648204771198072213264108076949880732860753845686125211162525134088938776959251990834306142724768604661734488051176649115853823393407449745624218886685587519908328723744336328147059143579206123230009201450237722206257670575107334960364287305376349540116854987018218987534470662136968591720630780433782145151451894174060819670317925588330928258900953991433536472050205744245495973593502461063928362601333815534089542814047045286900607644257757246766075034690866701087046492818601111129448918347817034270487169221194064880752218356273198109157304513952269580814758103131563748593276542748159778626098784165815420629449071664201407050851879684573003587854805946858242373680281988972515381495420203363276940376785231442629734048286333536244186937298722906527181999592930268186414572741965925746140108725674812272558612963565832473721773315463067293242424928854503114544914592104708207976056112676778295570769786346291004386566757695986643189715520112142716776245206712801985176462436470198644876827359728259894587366960402270193314892176208913831045549146423324099627597508477966885370534840724656727574729395235301434876943760326028118332091978411107934249021791217619862663601102078748384388938049032583712948663253117805433998869296269119924081794784575535865050167060219150905177404947461809529528456304590831173789507523514122105314504303388970334030469608255108459628221870168592921552132851917969988277691813008945551721111039285169659410289777917075861411299418267931632404867574976720226059682471885236832935737590203879299519907945715943201398039359855918444564202064737493007442003331888341497456656337561762381589104363191352907038180174917823973091744044784755917188756486027009795990141385440586235777148953298990898174482521861964130382781622819219604674144433834778297446234529345856951820585718045650394719494465088119933124395066647458609802191779403670692849246431479848626784251732173767557493857869096741664293461871723874075292397347125098201239756517011474438998296364554941657005611615615621961249960056414404939395014878342697320792430943903530412568899064111013120922121548530047612535285777507299162321114257001680708482943817545927769649518763157248860332086383118672157718297950245058134082073057277330508259974637300263093493981254702124481679196710126522733703467555852640212197143054021764702100926757899252507629609651958344810398887923856480511514327001629928363270749415464082744450385882764934385894939098646277368911003083888995278987085608451729467900449074877803434587234530700555793424282996680621052005768755974320711942622662839875597505114549212861667002539770939968885912227926900684421952301212104332052572753418195225610018554311161258683857379807835166873314196287174714432433993543652150235598260580453908454374573689493652714215492644785781105326616524136170675491479589168367357140442242593424579994981171339975396760252377168196913412713642703062810739646532248837441141352194772633997731968069383452535795625509381868664691934340946415270365827890392384658078543974529385133720242065830276753122335433248103608646081863732342030704011190431063416468030792021138597159056941181841981429577161483525341720946582404122062169710864844702849481323663350251001613096944125343978878989417152718544372104075731284391002945132476545679810102223281190736288213864463048343537959094386617217387756044214256931958316538848538618747440211378275868197377536069449948610495866891589989665832529176311579040551657938560118111138177237762975003810810129745994590784579433481117717524467313647712881291451189362482897781664679371395441723423074209038894434309929159592178575525300813882045702167738312039417135039726874187652916361591170127752507072195840288539476569106906883130029633381429977658355756562020784440254790965215944056402229402472903959362266505966333180777104136960190361281766757596304660202175437415675440171117693113686970899374980730828549228503410826625204109957890748054707330028488812797083203507712066379565326208257628344280371795353801773766854663415764971048217757070128634604398536147139687465894597299357453786279337581140273474028623666786794757781219473693497978504294668214108882663540799653813965387514385815167251623720492636551922402513398209567982991452614658740723565344378575224539756310765116010941586891102213330007838039656960581654152263021802118031731944305964591749769606155795877175922122008892223336066794142268843688450317833092536109445236014001832448722554721452590277651543376825755691962558225945230840245397390532848493192490914324894978192308401768791028231829299676684587221349455076608989572064680038447889001501868750707222414282339896493963085721002251183019271026509187110816155030959841892120331962736740641482928545446321449329322653370812510888031272393479645621346979986316198286192181023954424485424150937401013412200236726406076818810596262354949719029453041469664940231252568995930104344753767034043391409453653449751852564823612405870314842955804111781274451957576490249364596664446252628705394997986358208230879494019469727733657492638651748543407684975840190784458386442528254906547382938371332590790457560310425695064752607854244406896707849621422940526524707118919084335229756642320674582902603357235114540054753967662643639806928589771690738273299229432302361070137684157286644182320491507908731725962747392440727853730205931091870659248707767879693007212417040653737382495199022574846147226960310641617444844635714641161701692514086948002821256303897734641949806158045122701319596916437206898157830256151537205629758317271870710387340704736164152414930015015425412136045683796753660659842018394442660495755403871078196046640387555013495789982086129414988330478021117209280276718888031576084576687440830453792902519047158201156088433621279061387560424201356084240923481311693427863363326995326382228759823992000673868206823759298795018708748401646353273119415974579195190440798206317637649149519197821635999464518610279030837884666600211725583233206000606351721827926897901709544530239248388030789274041915607298966905257370557038714060895902083045377863265176959130554865602059790974974576027021933111100737681022025306628324692503883297839042044047631512141569491574308536558182772763297886570994255842308022748186485979095718953378538686259026794572944730495195194406137936661545841135373692759870213989030257174209858994586538598270551624035935449286559565163472192241726730487584784096881431804506930145678341435335904095614885650835281497386088130366231171853368781587887659180927269659386708486723073527591077846757881136434713706586891441702371825829247037454589243672081118617051406884347040916774050284483943431966057128757150572036640563186110433147168462452417550761594501190670035797567531082208087859752325337957664838610828339488023555677153562613139733321247997763684176353888372267034454007322749225647211798897998258387060083070180577194411354307148685162047980356833900177547034153968372519718565996476920837856162124471119724337920649376488338458220078209372662853923741381473081600858212520404720098636108179818953446673666853278450565858012687655383224549564465681135475561587040318683876081940337630851371771669001208792762761359766585788035328804336574172942795549312612939326899134160036044170376941346714787651551360731213235253888334338337148512727442355448445493158533011351065184150336320236280921360846887596025991270887112183349577383537210486635822883252938919849436036690095471103407988238422536934605115657740901917777049035569527688074280790845829356000065180609929970204048846852685609587247271273971371688408838866216278894279178275110485769837502521159393446850219892243179348600635197220143072528059059415461067785213984197218039571562694766202340798135491027760745005836149970298518386769587874547104157757827669209916206156658821552128150207577978796780774008903828720789803325664724537539938656889793203026982788481906435583345743807519362933747737917710480702030263452975751221473709667230577782688682188956142130073596191775846913464811908703683961733015278771803355993267020686090886532708877297669958949454274338466071745547748455822629829303800789445188961860048936298147833003708252419934537877483813078990031012367831137693830603630364575777821737614677596636944846200247517695536917711178620366578842409719155658072226783364108295242825779202543696486426697614092198045583029085520571233803676290328554497735069544996308910840951645402103855146315130533077361706326750534963319669802590420287467677117643744217538047883677253806461053074020353880337749339500031915891706653423389934093497874797500393518543133644171457582882211699948612082415986576930913436456911978920547980494695608341096888894333282685772640250549674421197833030134684339280798888929252894120838120100468367615177864810485030301618202275817110524466981780516294868811954401198703608983451665425080949742466319339291130614400496315274655450050642010119086798478389841884838027038392402728879934703418523138183249976466622653181550404769828884360395080459520438571596076792104493056834197955297125767017644076800508475766394733830914712201307952041887807063211937530705401378629398871866449319778276696005927623906893334262026949087593779034788056552049577215230115605312736028194977579115493342774905112023439195802889651953053236150349924151967027524033106056848945422804994539990848421945206847950668782311914186984166305567253338236804819162287069675913439522514761351737456756367191257402536868319203819953823750163962407883692905070713725574602289702300777209788890612100416447518327085635011922407892575847639176475385312391665924603549085535431767723392871184516077472363680097780141722724143881871240173105694038685486667018907112221063723183644463078652014911378961331040407923154148078662837498949570122200309647428536255899475771040144083970093421086837489978777969345538493283370682984837521032704892716552360568777919106124497280502247843947006287736751896116036647251252516175987970690707352255416958527523363044666933758311777756308929304725515208858293565899510282597018456450012352654720213077627350907198556895493375760316409552952379318075783657899231084333609115765556479037924467644750293137944325232895796100565162118872038575580733127461612627091059330378851915191203436285807944007015940750194338229820471250994305817410974442091086732559974479165029686190513537027609523931734437511268689122516898142813466153248243539816229621016954471939461470865747049428653840246423715913376981431278101157818920620746417772592773128435146468187150106291935255400170102380404331008995158746416389190091264007126346095738088677172175681271469203348562512134089216215743945205327917113381968957540472599924795358678687918065346581939581616375859683877103784824203942627866167790131610719272504264957082862944029427584112241026919985585216137998853746240559139736444582555761278268861612066572998226338345250054084851945490425007165796229438973519807632039811532118388648780615722230878217867527456773696556521066063802367502192677380782272170716828993527824300861524840613470194321455136897663033370861384346235166059718050983027219002715288472943998020866540738806737236822747023544138216824735799648323101185371683313466088258304845098486685166393291174825901771194494826663148760071059888925995057869786941283937515597444880424806576171409211608362790587202074041155266773462036729738072079490744680153946994108561991926498384254355639346609218259756529508428713553308856983270559446237044204258579846789220094671609127752732716457533619947286982979117536138512346456594578375643437284155185090795675395469900481283235392517168525562667184376608411790704046390266396124692362919061565530742509821599477255889568245673409262781637310231402262709781570415349989410864921498843717885660365445335039275972709262623774348845636638277645653906319134399143247039960151797411784010480544508501256901635340058729121391305151351925368669820742048756037082545039974598093306156755056016279479794376888047954693094895249543159265018748173093592105729331614668456823398709694790375451986610666318442343734887577353788085794530943992812619531598119962576940092299020166642173090554515795167885869200599860242302412509808639130002994629141769914235846574574445085375532511962338096347472180794807272104959168078932890682209786718645063788100735429650732931864301911667835096023977172646224256787088613843049082720470227343292323501372414270220551719886123981773649316297798928867183367633222139812262397841348200008253732396988054399355074838120668251615383912886206195344221046212167802766384440506084784495084263147880118591419401293239028242823272801857351893915335692925575058432318965497242624779431652244880346994797866498768801690480130908522258904156906155927989331035631159714615376223953213733055577098314686225350379824985415745924077219347155895771996828018769642194530829614910403384136915119592486798684924228690285476719683410397698765207725501682088173206023625416482723346802418882532669374804047493061803925879293821521004158570533949626138189907011993670886869223187238795367997281213529990635831334989573221738134861787245576496617448189930921914380002838654919649730831289238733925829545656490734735083300714294264526007232047859840570176464327059097343416342208092995413740271748847101603234799149397463763991715101610564207677873529994418549635212783261282017032900848078824714585805878968295391381924350827566043578335597354834499554496721668194482306942916163932346333696076645148832451911253063489292157201833821322909366314029813670299175912219127906797876887385042912594006779123228957112364140917050580119825385758637232809963619864098879491550286210481108618676627980998184043801402738073592233153555695589818610612316635592122588125843128650302580519219670821575020120436092852377486004122168994887149665064812340858879142415191479495043354716271012543357689375530721105563637521394600997003700331644420793943321564998635708407814036600386644924073386624560106341186756003395853983696802828704034586235957287679347998439270829946378383142870943121142411477974725072177465372114108094538828957342171691691558555564672493424910535204748675603260834654630116079985940232955193712160854632966687329494419541543715623534437788005266514676445496396347073320657154747436616106305803958988730456297148127101359569405226770514853640355375819324222023719049453047088184920926994449585934719298460399025375667873057665535623554089009461026949516777899509780647916363697399624051686600107499014566593645044589582444194309027026038665444977224189240162303052736180562082487737288680519496958622925243620002170917591164332828995329382057745964784310923072987598971667044286283779593470438406129112406899954763023556098358118205715712271014825819506447837696427195700659330938510597321194643816896214549634856227158285556953779544365470121257873682789321761094876236358450901020657477953335611274580388225699974863121936094209780373974867555684878487710268948876910547792720420681563086842121940262162962957507771056781924410896512117884596741549047297336907241236988105413910641784555535278731249855255380970095292979858368023039674772650601526726627374366366954041342604152138598993221261435496633483290313607772435488797162918200463397821587208001523519698970619054036567451246980720902323263676071316277142309455760008051311186540101356147918826517034934786221141848118331812799045319882538682613210658954022936684518540028742715627292212199529230316707394485810986548167913109872767608447702086870423080688043414892608422305604104165012678109878832691948812662077424207792274649153166142334505683362811760357529203407960981509374785338048198582753877464621404820239216419027473425890916569659028587030473772491380744173674390223145524889942025574535333485530685594785823952075096416615697003592456826428971981585149848532059435939209731294705800689827855658461093644762589692951057271259311435128635444859528883630471108167041135689107130866421302734261110457665066373734243689257696845355841568906716809467467372022840677171972031484862961773053860175093023318814993590128830546186524830665121703585212918012793077919195157986405638229029191611585507269703570967665704999138253202447469107364297357210631474774779583372053125012762041694103821244295267098657411238703426735769809991340498044650184385386122986715761604457766188454079208990846846970257519777205970134466030593986969615952621437754817771428420169019135207399948529661683692655761120027824858454477608681931926920259539776731209656027246552485399483551524462498785260050659406766565574586715049514713604403639099938969764331112156097944037048345279617504452341328059930452924608102251944420808382393448365247266035176140185935246590396063393914837556935762961377527340741344200599608194677177437163239028967227091566847680711910359689400500836961465699575134752028457873525800708321109553251782075350245500455295959051673401067626649540988194877310721868710074718404501997556158721680178957947822382780934573173474648197853871234513429323308396948449891227729884379960424218119810444170164790744915921045317806957837720563285781763015309385734783229865502667424509417494136932967875053306285114207945684507935787978901418341691730613322927710074452495539650402894380946340849416406873389390875693467291929445056953199152364217036886727840156854559661293381796814605113203714185995150221682486848981216835176183735662522082529045306857502548000570015910347286547004363714693686884185546624961809529494066937762515442421586025428238821661918712857803969346698723562750656744119534235737692403957839716772724825067435185438528433044138262238509406276829684852072407223535557550361969130231334948727669834751774719393245487185212794900780201751349811200898546235448050889096670060000156748359553064102457414462143383210049491879767215770276243230419845704760889839581121727505499697970055307482538099973650474873370551074052335878620317783768623108366106247531105330151232299797497334489521725598152641221354142030664222527100525047283959190156879976519899698421502020660726997867802561570977498025039054359492446082474754049888773103826614490932104911114209006145706886792823278148989690009885256109462213262937397274592960846778013015807526668499356077211547786055027152194550683410694000261476689788325998752617946222070477450057200656236022946919934649071657925622588318990441027520899011275329201306186035998848960370992334412432173797439390727948907348193355968540943791414113846314353689254946630050457239476746251607280477832955487900106890001221199234201232734247334161119192499155654067789624194561506949664959873233573956281615745609898545331547047308370317797743889130817713066199072262525212288111951288666043679097982926311905112024387482006139583868640597971326075351187421518893453990007835547712485333407336355406863103418945124165301279415098059742192830009246509565624885229582298374490250988778987538342745442727005812310634501801642200368755037550145730771068440994407006484991700653248817071047018161600279730149745382306415468664233032460921879588218070188586834240529309569441643040040034748795218210059444547381949941538371529066010621201492395749911151720905240401591797723198081515875082737143601640450021555524189527846335726676226207639335468097911737837108596507568451112537375860512438717026191036099240783069468525923708793865772727727048984621092811680590687852176036293897024108443107198772152907628867661229678283647358935896641928081564288312584357785064524120034000759968234751156961297160527093789386013695224530030238022962363211178513745864620779260936412573003118969757919523273927443072241276563858839296248829082723144038447697807073406816199997212334932741693871911316812508517380147936183738754846488597792130160920521067792638297403882540826768908112944979736894609278701227627942985266666518768026811513177986052866157772791450111793165852980305959150239653268990537217272787030434225330235231913285321790117728893931088078908195854370135460139115169934024250712424188220021652302147594902716629707563947232485789887401988000940254056738393671594377510508693710791479941541169174632319145217019739211966627605510024792817321553357050301045753931104142597871966633494743631131861219647143427546727416349635949170217277131986929583752289676231901599833518558035174162766512122957501999410154426322724229879831291890523542416932032273089536045657494971449421947472460152904574200397974796009649307891732047010806040644033337258826148839559240856586132945310928497200495357988664467870124844645887530986006619965296933508181323799216433980454157436608015709575579103324057911797174733451925181109654393025825573249792977160883503430906801964198847595956261851946685253199695529552603071668140366837897055268880251130231631999462376199927062846952224840606092210404070092919406262224014689295562549274322050508826054187246967906336095174961047767181341527143537136880006997043405574018093143129712885181799489347995437708577709333530243350303781942258270723763987044786083311635532167656029386991199780561549156309881783287320298051701929379388274318882649904233658941528358312199333589067576235037999727983700043901887228731675791203103888809881056547944916192720725227285155395389804226657345407129363650379258100450925970856430199419095524719767764259854731539383655986600103041015514913452228634216343038728177456581639060670380984242339446023508607712762059384202293058594569799231619463309253935399960105993223806098533693358839686124935108557673229420280437524526017122906902488520759095938076975783137993285404941317901498104646509208704841304042746980112379626497225752788008123995162629937423798761476598162058645448108300996841712155465702227612723479902289353043406565390378832915897098247521745314680390706489659839945250272343071203939017923765544156415852250717475638570976819428883945775213221019322093214164625399468550908614777331421578892070747381717596128323311174832342289414807670804874812635186450434201407012435930934234760827046172673350772856816935047527859873253173499177774768979810221793611306803925484847352829773862634044321703475645793844101079752170781423988932448519611527548244299210112277680998832658284297784907990915900892605968178239284666839532786995912444404198208854320055801076586023269653585345298311785539266534383663138803701013740860565324555479125781266970152283473378273843424371678310369269128633372709208204024387801824621860689174203364459685147354006451888372063023313693610489248229996311113461019220530683010683401747225525644606496979258748212003163788473149267642622725377916157765589816197522038575538723089299104886791309605053855602133803943951979225363848007121504237314948126243486718484180478250317669787244799279356299887186637871713146698662282159239989681339219582077916308758109647912703742851597619972821755462590914234311518169414085057545505537788365681856475469014388063259290635274345970022454076257545814240344787251815162469199196642922304006606553550791803950569396291699363741921868460101132748825795645816209805270092437016077410507395549376079942595098405010124508837440802593619773911326989760895131399296178635598064699020435281066098858788598944684046706077593161187565714409776221570056017457138314525252095986101146883911871286506116740735481299042216684613943503761844622179934138502416582973289395577718874285703069919225040895267447819244980390544968075270553576766457787052251442649979444198826847514436364634653698613781110256512035908483685472853878883396625877544526613489211932835985274869908908472539066041096791731786560149938187489793477221798274146367504999394012761021336482089488958709291460460687228677585690319358202752249401919771218133552997951866611185846942142526704265256667600651060902695706599161919913328061613974560524237538760681195455202778243739763400858364065182939011898231570369924101160679688114041566804340234647836162582764062499602537942416671858446360212202254267183363487927253478226365456503803583756325292794841103239311345211483406655298732722990986361726886852111406409734975129384720345733285184130458828469215346025699871417230020361079201628039424010507462879742478176244708188643947308529550250317913154113161922324466223434506417726294971295208774923405739453444670453385749368389486584325893626779274127762491107396063922099852438157620482355327951763949297374523055375849648162473630897864948182814336453877400218139887912855511161413190986417781041383238809881597107086440777895958380727531431936204765674359405061553321094396543809951380140036563370869811247837586082273822916991570658646356291147679921569951406004982819473712426127904930384623848081827881881831409299190184832930212291979291044304955317275978246292154068939455493986423367757262432319344870969032426958976883636881370301768293677500171449513826512705394103715372143277816496352644177408323092835430441307695427846281497757370861963138256994675320351320044342821489907474711585450686549986317839804876912838678148866880313648301826614747150111407527677773835833392824962061810266269980490347058675681332870735610591091554871011342633015387010260504782547285488432303843102123333574821882095369695088057836635371361755110593806762524551546512673366288671334456503106742794015389077005000683559139439767519137873063543273996318169162624426976453427340988530891412671176067095210565678604727450620790003810124757990614947322693491303512193756323228777633840333552188686392861818774612206932052953721353555531613161691390706032656286783706404526284293629021328018891891575029627578669578922322460128988678104967337443096288270317073741313610412785732315421010426197100710823651117017309682332864251775978950366889160545774143417756352909452301723582460186198872161699296221258165577576292525472479786521430792034028076772986989390089448448154780488593143155025755201166794488223965943694257062043938376454357353944250218393400610205259591112181350489552763090420493254423904421991677529263001100162466982315194365427157333942902205290951293445910036364892956706361513147091623799879111348439686864038577804999271871884367028101042884899085288902969946459909074494507559655250652564608089055839472534239686267612217063130061210666306993838780284982992738748067248446346176550474217361388960048607177273557204517744585423379968912457182039168722799560589950957260397311706821550137340040963401676281561105724445082198460701731121919774076798654703956115531053036427997780900200396303386039690357094036728245602667231483481496257324049327542175237336679347536562131361302344327429072683283740424592869495133741148785882840126946328439494956050190923992576419941427718292332057998740986623613928114566386477634639224611689962735495302089146681194186806025429534441781384677325043186279266863134861125736511187152441891716331798082850500446674492135452781446158399647252949312258445422433904202275004135586939040190682145825646005275970741699046748894627096909911582500992100394314562176879822496112575228632497477412257596837795568455305025264317430731944124899227129491686007368717895589549541467041313007675945061949431504991269468176887070062892400544028832072132404474943848517753732015891768911009906424554965781445860359830352259478990700194163481105757702407196623537552948140574205888301831276061975997653841910064199235671364572937775117809798716728386151154477046026866754024723871545899609445793982431702441349824290547763932652424574939981269541417333079444558984004488583806383281300887001008368144475786222928145313917822207945625017224996206796760001229841135236382835909872491784617627768107327814933799164208965679097612035751090387329554034220893613460862060383912387406967426180203917442403160370286414527913488898171939551686325122026305703312349149280032729571317041869409646245348083145401742943439101607734033230938548773255741125868726862303153604267179888914613575558631263514242595228740721046981529748373004256118748002858530962006210032506566082923163146406418563352840078824815988097773519816839762700266016519074851912832819530337245116400910988836376014445957947965828630232965799045258093615198539321777208403882937056047851575862711029345478722617679283718943247850993085361756421774959668639987410087712596317142531350247393278828233173701942845829153323512836206535191909268429833914741005690425767128912231075922554034929058333251258292835967532271040533623065495002528841610812100001937953850942845189151744934884318895141740180845311581921681615252472984982764776104342035770940618297781228227501977768945648706446463684526238886334418884809326968833387997177121500579032079677505309066481346904095051013701342329986123328827813027967284411503903091493705218879340555667160037252848586984028370821998260275792243196684058832665710721505518447863100961109492658864309119212825277915926939322458440110749220704367573641312513089822900229866525858397086839453715618840519895338296440642827876760426909764269185238965540384399809600903348388372260032789633058069540987337688178578011317418969221008087401064409383816708371584146948007039871165281380670845646978415769934129994172328303952615473099365779049332003907703799869759562546312476547107138893271040812424176204331992431775283696670154995651892813502850757692326028572316796107539224626718523018310494338099877011097757213888577117167052253407214434246016371019857670295396585416448899560932011257806226001349243820929792789797212574098867843195203246443555205852190975048050986244071711789090526856563747602381844682555524217769707755388852320110642770985744191668553009872360060416741518863899256233333760923662830425065601570100209356328360453488003941907178609471559016999599166624121419888951597184558619294362478492005298269072521898527089645552829705887036522536068988232903414370165900542871149951034407603248676211069321916993777916589492754589862958820697739516263645494262717022375424125526868356709879444541722021105166065037117649672426219759931210343792700912001627022765942663806939659837465752756038089179494078002892001017664774386246109928265015409491375945888492061283037963312073312645788473579025002894164380869792927078555942539035697871164699742962571670999646906533152484101507086490295217686222721381133045270185895275281223936094409895315498660039127290366703228873387450911922350561310876019713399098797995075308345837448168471968516460306192151332461674213106591935724189084367456675657342757939604899851458196816807712103262306491313643251216193749793599636781959888220050406294520925907936009106172922178779245856706299431269416612629086368815071084251093736956673300184118474022260845695237023846347816669269118147778024358030897135616063732345303963701041494349558945200076991332620358057417710618185376703407414526459079293751475287473153614752652965450613008017146399450185469914372791398543157302118429150326418299767609521357755356481887910472131136546732061680839297584680909139034512711681391357020813737414814305717592485547431459665841397760774310866153539394404191099248732498693624387844330835810446198251163940710206107905749710567805729484712366477772734733070328902498531166152090336659512710218816803698322743855657950447001374398733373768956908576757977404607915255546096997299988226266219311139406488707026700682845190444280242987953928123688809509981226585395543299321722068208018756019932576000797574937955102459345562439505052559988304052117768197531148037585376200237251307510039253166795691819993501164687859180014053721112806770437547332741493872125017060965048212793130689980949331019142454810444375015769275961277419319266309332014994745186253327408221293606047518146388884071601324940429653208955691521902663830606738052285872091985894219487337202347192988489036188123555122783399355837720260809608230659035959473862202064092675723077274560020020986609232962347903529461718365740204793108796295954537319604750698690748415332663638009210724967757439238897823893580182919933898333568141154471807418480060453474313961773576185673260615571606389467973057944322032751409518905853994964703260631104516008859149633477499505917694071050988618865260921923690817757399582950340764089998126378166740599316928949070732672531532036471692422279112158725227649842776431816918551485810325060558316287764803744813897005487280087487149187366591913922950659036835700124310455945375084961968044196897456529235710491946707403694977209948834337618889711926379441624223275661655518966840259796699393028971097121804216447431297617452299075869080754516738646944447525440580380143615061298587278676492724541603368245429921133064834805282630124000098583992781721891762304185458240535560128555694659085828893847720797608648554760456112173118218990183832285457514249893668938832639211413637787198718501567313844612105237783831235418676826620171245324821119064438698072380305218638519870204750712131042305266143391933163074447208135262265308937334799367727748864101878388276411532046581179511162158212750500717284663954941737119016034807048787875036190952986015446786394953781631367224129664117399808473443901536550173877066457682363865723671600848402038184923158363957935116855447539104282999597982443888581780616314602431032307122458815258977788649827547583029455055322007139652181241417340945354918395527055099117681985137999665852280929763152215420427857482171776161232295495095281415953907109382623156300402080428380483321769437423501523454920954274655379921123394853249008856976059815369625970633258835221430705089582718827778465904017502610041723869658736811623260946431846539579116247510404263212661317971105087495904909859485655969746872529550001112408627266790803656573147852980902454706461014362402687496905502784628455184876421704902112646476754806851388175953830194984488268978207793964903689918898418761326979072280552808011976163290621792087996123581081758267445447208909885703178152831714328327477425894315489071083945055393751782642620505114765586143066976620560264405325769963827500486986152007269373409826303988657216729606028850981810570939354257464422207490499706263716404051011528552744362814664180360089921363562810665507712397067462464133261949612066282531511388993943972536561050214684719100576925003558035726228371526812667395663591036478253167713462713102413843810861528595311729110539685168848618456421222993338770303596268031485479651374949562779260093354748245432381787397190593621859080411472513834842322919056736263154351227559778409572230056863146182215725781540080871179788549015216066355183197952957532054607952277873012533963705985569598973104331798199823727589228114404931187914236396662136327072145062060255090608479114347713979478774524622249709374053171168059297397403798754090226408202429472736075769925295212636739276897449835546567893775805825590184397761677307826262859538459689585414548333458673516710726475443636210860208735512593335591090919036748034927323296761737193935154264506816302186056020475879569573324907873016315718828269134939839659846685181122885332880479411489953504181604856813348615042302922026178219339836801504292901347376927126080399202628841884328249763745096593971387689989308722143484648265759213382126696016781324171713931358324861277424962383998996887068276893775767001858809965431009292736538635201095351352109239193962017477339718253830123977309599860776877425919904894646378907903279467685001635125976504065437153854120396295294484921209785650777769610929085758847108229767221886616520206204027593513077564879251784596467308864099014168562782203276463612620475948634494700026314804543985572169932850999137730949301838022071412966162762448527655637643711797520858883552809449174071127238586192029090701572112967891063204551829231623721307752661027939573977334658586204786396006422906535913750567523998949059276969145165592727367699670390011744746689049246614256376818281494556602770089228797358889088044066403667124068091433698118726456829016535242926297087338236961592797168209507060862577631915939789512019734013047693662627123393117194027870689181990266496495292153290103585926415832947655082047572561313024824261023448826190720780013647210674499953000468614938861452939860558983321304370922811127131984186400295245805685246034240875463374656290427746795761466937227345064285283375199666644393916940598497968742540883091534984799736058491111611826732637467002116566450183448663675890198914428712294781139211630554900750124562350145695164732511935936868957533872138317930140644293887196524411698510229632995850261584486252797406486140053686658868114145930868082078694292384308104826582825720149981382659100347361616534199183529194207936454318876182354701169817096056988692413101684692566006521895663417335279597613715790167997179057275932158463726398602016431326597267431982843543419543106160510749855858879177001148779127924695643967041316146625901117730105265687723370688965972277614511790711605221655023005287149586883759840204416301401672530357997833275821563374084720855561504274372247888268049506455155841431247372054600559250519767779920453379183416989695168897997162453290862165622856807538469372272760082037207620800704244892155885345591763319224205115065119042759933632337712368290880068999499837423315543651556031435046392353173661026547994852947861868241601688917258200986163251738337099621069849872395163176693043368262275859794538019745268472581981366166406354479682673279347952039636471338222545671119095872196292496854132282901233195073825236705486312024066276707866724221424316313730128296087245045574906575340761896007691613430766099369273968173950430761903958397950324599377328558767655510457115615639402007257220199031504296612399334472463166089118540573812348394279941289550269711586483330836848021093206933112538734837804745001959451127173204118383827411786982421477345712835340686219662640869441268277658576531743130677853405817340066369602998589118062874041625974054776057348921574065624048126723837739690488823145019629666890050351974740284194442402045139678975035978039896575668526205182572775821884116604028528650821743243527421890492482674951075647221890609173088690770493066775805897078633451217432165127633662135933601847123829726253850967771796195418083579781156328495780149548465672299638410211013507726567680561690121699126925835309870020048779894346682084258437988032516567333058586784987456898240717054884563977744120351664847031176682869772664471064439816199232430638051313977156408142171975168688764759669951196932524837709356625586395149509339918654676590338580509006161333083901113618074070810175481686788098607063122547922185574685180741248341364119018274117837985388498202679886363619108513169669233457337727575299978467047695735016253150464054095589803115639963468474004743212586974896828022602101478741475159493251840898655761131191013376499447922965026907029466048074375237724033094673380689049121654913926257390009718196905788340164267222131699400785873125759645105739338422265213031982470371598547779881391720163876278125589875394085511446472811699806108101614957403882678645791380555196705383352962206485615833517472520148306306111094724482854895177590541601833339964588942856527428371042104330902825729082659035606293459074555792606644100022837490995970192744925051922537602228570976504801089469110416307560941858428633311542046682581152070912932346798697382543967386246977673434493175191781186266065999347343716572608310719702516776943650039746000529597685906137553131910221451540672305240577033661675981967945446856699770048963363640383195327617716152618992100868236714679233950712057402913103265116951978676361311651085316569443401733581575716178088624376742254897336871160430164127796833873216572168639601010704836598983412671175789975760672998200739279652832893145674219508343589191734514381938219625731352561107638170322863586133274045241336895653488175377981181602378584133470890278139969461435443031519099025697672627796558184622651822851832094417576664028927479628976119794843990038527315369831856819551908412055925409894337930685666640265990450800590325715711662310713181774739853124024277370908084023135336242223603158665064836108741702331100884324368127228046514984608119163277452137592075087270025253312679896137442630985387471465238589211655725118285057383860093815596867872821563454544293399876748783063320788796696889251362229722009542262797332831927600947889171646170796262457440502783136298561523137454258080531453036845645780592129354226846121012923364288362279798548366831635989024794123117643420234935504993262525482890064324513109822072741003692900694861484064095244705390496244751052001849888447597085683251900723030354539053462053178734842755958204493628877560652716645398391111237107336873629819614268957768537553237868584255701351022945862948340856265702597186716026437988791531495333667168465320108801133545538865051119251578357210988217872028633340249168129683708646138572307867752085919347524524063582513979909785598247862830468436427814735466425167376475356023996806309514352847238078659099666572589983260239575902429498082372065449712635817623801697770443110613881395678366350175867475412291599176384255912055814631557736503519230523217383347917020939106089626757255338129980303184041032747141205852959236421360455500276656791928602541190652409799425000373462823762082682721875919470422091398339883354144932226264634413840917913242142348677042662414609810774884609643175179236280737254626272774064247976609265130774178854675609673405059596759194654215954278846002894742987475735070027008200921105125561015856931856261472923391965639271614915655646270171155675013465886971657618185268958910140758234597786043693144130547212775912699029835663099548560511599841878990363144482532188770951564052819968701534539322499385962249966033269680627492322264526391292306048389628124109700232945687410371627779146854628956312426266294330409773290381093696630518838285263857386428904735386132484896840946275750473823938618211189659217849578262702582063163893421855249409596174792549506055458002401471138255237028606450143991216112297978884898901801793831029375949959943022649326260374374363888085124515835704110504298263003719332661076126372011906942209889963648613678252454651948420906677802798310268287814238131478223572711359341910440265953179061013250522230367015577658581998168491597536742137963599066815608740135315541906341309003378901305904198674492264314745174980833255183485629450785434898520397908576862290709661166576453717106833120576958904819483368947986448608006619571460643999422024325126822561138535946387902391898156425442479989771200420477289619920736308268790243127560771008224474693750493058359484533045829676610381334431977846486117606780610999008452036127437505402700578898295339230681151027770888078633791530897351205234088590993042310713496122796560137821438284751257252300698944606947014485973188396167230044222285935289479014993205665567159951257024151425964401776577209246256091425606185763282977552668566139086380032608559261888043821816693450820574954457784282827983477105677549078744471146162125339006667133603578339075785208289345103510570898232583808001933008018275314123280078786907894962780076807087302461555645320940337686674624287350290451610575457943906046711560729882992016342966903477741073948375561042766836799344548932722013796240703058491617268332266354369773972556036776306525692434455474780769493129455192271854782433295414565277274293766076366682661503390676888299081380043409223990719003908899875641926566444465583655867356907679297330569214233741408165233670103258382920698362697567751264747259083390690274610891541575550389030186235353970315131504758868084270859920039949284328836861940388005435344343974627023446373412166089204829435829999945593063516230381121635340939946469339559675168462028839565845252986734268736971530278280994582115639343673231865310092183937929224493701080727107075833748226914438274646439906428412495124848316061617410895853009591539996715139013922183285862279110699178714223586853509067643707278320732896738793542169911897581778628795459756603627931657350759265761550915563630893557221658844449084156819015195050534611538200674869801376090650920358918047435550988779110637758858815808187326672838024635831481956764416441890759214162978560543820910904750385565054952880016254553883116051866163853988248513919639661193167497118979197184751401886554289142244004592489010281422339911281645245120366746048222197745952304699902178340504047610140371214426409389965774159620621465018222288867584027487569475116818393433607059390428902165105301633575843643541939224603154728798292617228658428580808511134496050095302501880705924701701333401887277365949778714990696431053695535464577714144992442232913705646563891311042577544667366429198219301943232564143786418848000561369644623931301486710862405975179282331069151264703830018434207489536903409568472865015003544799757163014323666303131400366952995270764444168276968005859163750767625377776406044365582352929612954068705841729029731400719733344146394379695676388303878844853717293393106606743348834085795752969535206761326175369182369198316512166040661760482949169423038644863734897239198665421348127728462911383084909061394863054235470178159443207302088211144400228391715166865003237323851789824649292402853922212006087779569597778370329253068729212773916630733103554005640070253922208132054278893614346620532849499549809561919327614308371341061173195119056013809143792605896953487670048631875736942707820037544860853323724000798082272624232282034146323431523000174603066812017872377988314439506913853761074884872939936081280298382143382651674693856278808403226845346560696228835483443489409406356866231526276915873706906363972807822153929194769801170287997736498707781054572229680306761751312955798331481141562373025579583729235978385784096469660680014133528677540301676399048070122639140724152309605035491194570444078208875758656426329519348442265276488264726961305824251403255498118593849807967402189778948517854517714563379138028283490437729972881397064658929100996672560537336986265190710818725972473395334662029857854621028050915431992175241867979622342063951336723191882021749550925922490662263587284980213834323539893643201204298721662848702067984964039065461591919701938091660018448863412461956078889497497249555374937082878261772760306394657958784203731104462080179814691105680933600477630819151408881235903077798664937847649369335895112920851792944308240175294180993576222889531601253345314660571435683772697600920886445287212548260390349219908197881273822933233468583054487672052160842599608585386228971954951360096591569453096075416835749755982987008504734822762446274508129693550828447667068592654631230517718267383897601879229329946205124012226535092645638036496090943696859858567061290179614569961644122285375198187163583023248832721687755814722765781483654682172543507193770004648054817484451578795023486954992718675356674408621719591167601675708709102540567773112402370176161626103673662296331739274129347674400985696719609689408684038036874042588510170429112716640256085643942763819063589520619228233135388718335446931567336227765719470141726483796115115274385932174046818042098647511408755626476121680299388052298279881659965315764728114881503478738078079368570715975220290299865257365330281613172416979195922491214389693334470617030412996657734809677706633629714318132129936181267228044540721429639543183602806620912909380063308738770342254664746756155970602360071331260710185916954472911660397803556650710671798329422147085643161930027010510870835324229559034249564788968660602137262036121603199995622826155087195088350055347246918203694728653820614110493149105444217905221112798995844608769796792494019003541202029208805605738714819423284793400085857940609543305815103469602713688884516542586259000101876653899209938809800887467750487692307332701779903970622398510131747063509708096398086883640502122606239141762187271125971313669623006580416659619395829966992082200375687842042124790869986711059140016031659708266959734657825440174501429676051132288378719112890673621362197545979338354983471856752218069225312515778841356893479859217848695607908032375481400852837522455390047385600057681478940781975028017778480041941828018643665198528483200134625377527268064440665275143074556375851572123260012243690384325778043859554336216048226957460548411325061304397801831257167906649360295808154403515065392760564304058563994467330445589872962666270002348122256826509280815110497645172141700262613413076002419294529839794996493180114985868932233527121987797657675610409037993978865195453676498421784189945465689634087714875046102775820725939970764280817481940167010912661106016482087673441043270357089501544226480398819186641005259740760301804359485961142204199201019285829119033794330370580401279675054942099434956099972857100076697027771250962791948906504060543464517632605474847252358829045252036102325125406716450179480937407541106493515508070827868409198527223139591651752230899390807142737652128250704129894008329017049628758356405456915227664667645043397108750051578388780725869581065368554161851290702084350854150593856793744866932000640479373481203536640515622048972869154297188800157043868901260155094415201654320805535097828394363962675729872861719768232832373952654019257677632128730281533888377721401657246376270212533903997874598776606734094517432406243864524537665017867516901422612649546812922028636000456450282638186072389841157572060597752680091364120160090795021607145730291451050540060475175983901991699413827074795516518047017276997341602415740745339842925575447795986648445614960465083378881145715547022005739745049270256963266036182183044477073362810097563704415974472703601521351485652136225552786585909605934806623544332910892933411832714575140705200223880105265333677857317750879386608460672331900771184804644083982672731230629292630598496402117985644967835648415800961696821220630147450739383336442953298487958972504187378471918231389031915691436569666994766987358340888959468570552542789896375425118483496002045779813880170802902635149099525314439115043591016187738986472700882650638297799123375161226721307101950587395906908960995522147262787863068988306655515651701511535159113838010686574961729936778692508684634368677537439777436174032057408322530098172853929017761273697576290221592544054670991899789254385598038021665898632090416172270503381745875746326216843517751513690465725305823943285730236129731395534181772201839576552891813604609552219099627778426528646170375825177661228856582117303173962308842848790046874531416025069800834846642649687393081296772204122281712773868210079127638912842362464972495630688131717204690034424768731473540698941923792651301111396498994328115430178098233810755738138550454905797514716817282830888612410070726970874736005144081947545335341801238215075077411790989458048172214706614146080199285406789683093524322806362316822247523285852228872378164702505505026837216688815213376331484197923474166658945254640594244148685349749773950810635530935723505693253132931686974681625709871453171001267664684154910917049214813437719730717356537512246971529706754089687809987782332408623355433318378692161429070769673489542853725719746399977468477260102657655236784564917389544777128438062637584135925901431424305140443686251552964706122243497652563881633640970442580937391363190936875818541580486742206979562278084056308492493852607708106797706006212472103898467347241620653938684583596510773568153804950364928255118781037109611880289770799610682524051404143918401926837795685930576545872497964977906789735439748710507706925510236955929829445142616902932053208945346087631678582231357574995668911743174810588379022369131295515360392706758834144362693680946721779089317097939662141838408420794166990620906120827433105682010916911795529142872242427018991368782505214227935781445722244929898459644928831014661652705628875096253705628279019514883332064926871002044028495101736885216600165089548858112493105391488069212633369668105837155835637252549597645326539547760227984636421378592988492541475962824155495317835744223376002632192010675808620240151628400342986786601878601192487166315256237627348301143792262068375930556513381659833755707102681470688087882427360724085972868844539935870420729931051745464210321024756596561746675290088725257993752257794623281193704167783292648725723364375735734591840701317686510375331525712968280082541648778691535741331895676677492390394936204861433209979234614681933080312168220406522632878319281385525040818851491220967953605424510539262988345625906943486334475549903669311732623858036081967402408125197114798776225276758191312325460071589700684243175077589733151704887596122671478406025170560988400357334309371560212688276092195422089627647112252781899397741500412564428212358490638868737708380533419941170339611323630019692227346961605769097736644525885534441759728770283818472352299356043708730677126092953872251421738321994344232980896190898233462716509346572406894633374902510340503402763362310336253591657192309958223465637581812286526188643729647706858706405389697300536046197400140880831975300913436537384620271981411553789193936607454847983184751633151662558242026806555061444774286594980898454384627232958253653914104956387334567860279349920575599006067189904114570788644666857822149487863492830994891355814109252777525956816897071217534522551076404423050847589544682565327865693420763302824204205445295700167948186860066923894475215403636431002457274761650584992488703942923642924956074286984861401364833549869471782182963824208358701722897838853937817623936545018120812223437940067924570452582747181440956786528923496222401534141495712402757876150259158536632904746032587264784777842861013935343762785100842971088949113286781406154206424802212931974586980411129721161050946145335113104020743557443014300379418688985274766972015969504184604199486706677930098635880463607851113100144431798448779515381396793725154493584160318294637236292015059647033924995140069446445852004874343961226379047284397867138209551633137372302174732933394566005044005748015322293357323184401221361369686015957573205459988014679021735615504397466170272333106020048273190400547794560995819377932047049431536329100152381832412529033390876430551992687400505931576606445698616788579527656547035266552991737601244158183374937187449394954742269148597329671093166560855141124900220279097135000488169904683010466151980209405275032785978815219550974929889513766752101597031716500301142222004376694942020971866906562213028003063690338012137963719413515057478004933580448265330860288639065023926940240349566134972358542218794612052828177719856851123543201801504927364055535362387242329980599874208905319681299035829931493295107287466230597564402982285675040213384013089618347098598019864368978728813780956433502111808206943286652521989081550623125870827163575145370199879985253495813171765847035818488578918459842876495620419998645107516794803739409556579134456837886970557411600135136472728223614231470459689575582325836607070479057986619841028453989447771561428019849703098004826721638181302721787553847547950533084626428969091546324228860572755418851312170653219259590578144872339596616976770792056898723371318107632029339069862079623275626081520189583334458396695386674835342341415301731008380071807564074726736402719506719835877031924060509443631341384163959739866195126348806660804493112907675136710085436115763207343651590551750007930190658802500853285646655333567121635006848899712745901270531194977858216997027308973097268250176794004099474519626935478167365167575368698444636658834495070258081021698108392509540186925943329895347548897456874389306937752977545194924512058680244713842370496629853399454962361957602630133138741965228858717793564464888470165174874730734984663790573754732350938265418944508256202700382124436471903441705717964082280558381239816888657686310098602027529758093303679223405523193263392978435091271099678207398429318925405201255639023950957327158055964440588916470928184620202006473682211355986879103513988252636717437423789319910422878403511874547935238830586546995055671561787552100191150704100600110959495315125350872342316151536681691487079736964797648831099723674339911044321589081585575003397817627124213354204336924604307548627472491578181577275999384355675028665253003866337523730674776382596298609636287990271153920459293513196324908579534200650939617855810534651239361033503813047658469307661842389622110788968108949413431343790794115741268726605614498783989439916675356645063198752928516715881768965384326314495983440861320906906739938819310426835866380865665354508082762622556107806390703418524625577838389568989649784962651548386102559378063601098945743306614829145126541468163271940021012087130838634386101868008921743477315639966856090072756085433512962974346647350657939203113557359200089018669296078026741082071615651679370650611114303573091558448669475993247302737329622646573519896648029602449877129117233175707430551387326634984621702056931099114041597487889452543230441807704754524865416290392408926616550998001420714206847751331212339167347164658603478919675587341016122917116811511848530758511658967997599017898416261495165525576371682726840788341514888466882212807372434917030023535060896548059531674673132887804581962065068556187700440156395245980135376396329281359723554025948821005122763566436698173819426311020100784489578185155595092745133433919900581810606050654665595299449705192410417512396965313585747964136393742970838934635873778777996324676499178615751683230204334906780548939413827597768433790265105895296678042975746669228426908959667467904560881074193972471085514955417995971035951602590344675843095503956901853068979604157822212905133556600346556532729264837936316029278524725411465738339623113736443771581400968288933651647898955853621345391285397383924721211596619559418107583906331379771886971443551692964613005866564060356396558536379375454940524239345921128108479749532280534930673265846133476239055808985979219082244130058463734132632768793273264038123974729258759204313491476554950901220903553759513161623341265243410460163757028324414059841302595776700046426111842597715889744686034341777925071747931908070062606239910317206114699280444844570911144491784307730739761605173302292562214011279461461275747258762105375886800909205984868694291724007520674821421872442219862692751645933946694385267272977142649897297163566474363410768425853161800695156814634208006122986249843851068602742606653560811797320468429689566754919193933666282040734055538088049175742958674885094842751397843359031240888621372787400492744488787325667497765230679727357981341293136860832372049405035749648915394545889851245661420192287310215654033054152277311535327484522179118919685836248315389790436759282724917950749257061955307270615208535827413585498458620249790504693061532447057684171669880665829143190752477222352127160731664193492909036100646192572209066209404197517634958959473826137425361246037678922124024659276462228302081349095886739275041932359214911402931280848121216429682351607003720078285833821050382980086100329975370367992425433291376649081949608551093927217856138460124761678099671027844506199134388333781728245184117043384240074902126411799946337768719819545178725053663597699618554910716581499698292514750014456423579823139483966316497312799800680682865707695410393534950174549340439972730382356530013436971007400762559333673395834256432822914490534392073386401792200073672774168098849151784594212976262560632857198790336968377992352030123045832993167050088391602318593926211144305642139714282111693448268019963435317404156439154290664710081930171551338504395846740672664529723136185433330828152542109252236102740833939383469893655428049659768959216772905942062766070625931772571911093197969259372096790045580001720989387392468426088115654079476146837986493881904816725603077262629890468076413875077188658776093719913377163066807015762931400719956483510472275251847120763539435872450869852349736540679093367261968875806258023872427900590099717064574876675528073778999439400455864135437203307665313685502245838831054418051695609965819066716098265329456859554284246596621351029486939429050774397812772974580616017690743617335781988271748989878850080695117045031284947236817258168116906846696804788171366818118515476612857050070193866604706442460120804309435996619896959424728469263635032606182689873090616279725876676266413704042335346891125760355073368983435297697805791431608035088515146325572884213782673122806219495504252445533451833941496313825103538176065092137206479106947483638714886025443445891347758081740617419763634630016038861404171293515762269633567027206217860296730694033324664778538621879202692915707159645301792346263015821659041714519153544370353927609088214220987560202338008624245199456546231990468423233680605021033462754659170172974049694843542656473932796982264231968773849837675278811942665624712157028485500929568231951689586875211643992668486116100596282160536756151412276583011777010839365632581783654827522765884256673115262621563079017850468398904230644489250436448484079935531066323914718891999711075558166472539795714685179747670626090820474397144083132787024504184840110399166469028726298006943772446355225560780978385321250243911696091287393414784336010974248216147455251899445869874159863947345368228345605527480910457999270945616418988116528091448880140735352218448839230033223396706451558491881942672969173482867020359398018420289074740913027602523251960675712637240715752822789211395324081095258934736841349506099861855918845335161982237173352808394188735032836484641743957286381464571079396521244696711344238129597476621215216265332130473080190714458226179735962400829623692405943599754982790825840739122658383338136535639661895758355846849632618132401028705867664614253773870976701440863705253452145409834677659297398632524354019756190500122172217352302647523978558710380846454448282448965504208834332101081279682674178691327870131225678275023426695867127816770939741873811365365338579506038313699011638789585026294730080701181651881724857083579611939600915818441071432031180076729860507799768164635791547860239065665272432683030711383463799417625079988904221355711121772052004046633451287863740597462327175140654031133739379811919930864195344600181288831129011574404465312076640292719503333915241364496467645326046808081154867205709905053855482937824190013173865801016298266368575580185861430787370176395240751814354299125667556880320350676339560334685785701423588933568703908671826684458327983655099952790653957915634030480375843350478428586731780969868035561928653456201893774170119880446214367647356740109432974191726219447771345830338073609136256834157827667912473131276143513441965900623000330931131976337349123799990500668700313067817585814847868980717895996795885435696515672206560140044639333818063704220683732156522851940301681216114784043663628535515488584955240911741962303014883772155927572993609003568887437205244921502457404763866136367649246472850991762719792065112574448990200880760849995072434883060183074252657830851039524357614561075258957568619810365063936607696829590437099009801182173239757250265559731486312584135144619447682833262933461451893228761812597329251461243749500812517392920839099431265815845417159570875781138388292173272960311652112314567573157533581554609584100930072307762419791762242658064435753750811915318873953084993728207650919987737946433884048985951995793401968039743901365247271749902050702234346255622303426151710017186737665557112973866883791588935563228607383779265963241166530131942040989854246613973429053744387417130642355480278581357185184569278518722233833507378076558645991462733972105304302190373288849582536221133777495855289286710950372945218363842849938296355008201249888674161634378231536641992065985739753077596781829577749317022486819436698879492197309868114495543564639195012688338181620669425035411468528575339924261417401286679360195238273569617540890141313968885434862852893545253755390794422331308209840703609536048884552835701354225815119046958381998890174687229766793733864435866580512299120892236711968557049911001485102423867721281383242316590623744120804584805354296281049700582028676979761299779309165091564540012473626447945979062835613256492813274789912910597565875295996682382799255647858035450886495607805004871828356342743889956224989550729543024592808546586281966883680439850522704523271715479986058878128228376259539635704006925676695205094990416637127610194487476514537437323405838184449753304400770058591018132470210817760056043746270160252377133244075125416916338845625032710739426348459011381699595049081610971278961667303919728593617409101756333892387428460016046934649554752237523399358061301372913980278668638326735667936467077655701919175411005981297488160605818577628764895306417752344716645174492094343093474239649310165222217079528904043570270376987374944631287897594295572512650100539032478438091666451557161234986288503560642523938091953690832512344931015562514167584218308397872039833611088088002200577748211613649900866055938951172348568305955817523932630716416748406540446183765462753087028292565362142108122273760404558632059717652687205524631785876645042123629000162500673088567103719274776720548605722102708037727995747173836042498038479090317170433224537659697108510462762362631851310390559310454160816777543780092088982623286378456481980028841281607042784980303320956345947173964640111416244520869723958902682510863693364200813051601736652876755377765839065008728244558151107300468758141689369208726886193866711106995114147291405772391896846415447113043077750434520303169190642535589620836536501865448617876444842843359829528383144389494059002731607660462735993604477456439698551071879126550587608334970326936020797585767471304746038205049801995263082707693911308096460181257599950226085540677596015287746717812261279890829434529259334126255195277748128642509421037097056002846119843988852927834654513936865857250005567647077744904863903919916399870175097195268864248167817649425938060989192656678064416846139795386111623621202896698939851305796496211505131575891537616276157323408145118948294699246209379831657760563682348265682147252096692211732767220842584772690629597057233741860521823916470191421620401582051390409426307601027311768647336968704103421577601846502236366533379928222024278019381738255348830235103889705011028029551405525230514108005039607871187028719358150281461040353827244603016645665718238505591758398942875141660569857286038284675828781522970017221443266597391776116218267508532908730483474373516857319791694595053019361698595197668437081468148045035542478481025996032050136346195791521245293717717077974060938015291378114044843804939941746491544363803301299878220618548999240429510933456097488323355512581994884785873282102012615321203584882362410310314800929977674860639051662804571826870998567520318816891220554953280659955009200632894301482720850154509403749893073459957639458835555793342416912659983354057355052725931320006757377965865833194224376326259131819810763829014254912381223551132659732016703806885905724490690198433309735754839262811091622193582422703905584887503803971945107163549974350360253319688232839935404349199518160478879450453578068910974463569481892730774537304366701662987074809691435373621218992303030105748497237487891691211905973606986493923530479874962335408176902759399694381292555971800265178902328265092814483903615684427476999617660241297305959132710380290646405363199500249054859608398112314958165860117568954824762972418399721677322305738215877502761928691197498631897314767465615197523557183577927682147088231236796240240003484214946688893904768598548937926801761832745375807475087581322969205543940865596463937163771495586708666099424798157321362594781855011041349796908626043896889191749367205559064169432109668955817662830586711838711331339380613438112173158848919867198229015053875596056926196119699583514436758453652556660179238308133602349687128689698293275517626585535179403450314583275141561436291062610493361715923152636961542493410377504296758185905619207158890820937323044875320285142400991867743705040394263625612668464185443367165794931777073501052562331587905430103137268945617932468864630815901837543821850430954552219419340518550958719305522119404116387266017343177771152655214774704255529413777183398659229600261805032084477608598249062137652607083787266924913706791393813717564122234173088973211045303384444041593112645313133352922287633698860136052062993937762938588900001558056684219226506699473498159419435044779854357239308608617843700266821736144200873933869203647659358941542078455342726021264228299941083693080452788113679157139585847116047143162866425845890506153526654101861042069956579349207214581309536828909416741631607333904367064225653885659294498213279827221126087117478776234514130171445587619429821671731842308773353782974299295774664922089874537783277916663526620761685226488729132511906546359514698640500830729605628590789148662780371326333981755054823043894512030168349473058468679980142117863874151490297491920217521605791038640481697110738619571956597663773404259575318562078383183450556161006299062958244372539395064342243294642814838565118190939943232469291471893483081096745646680018615572872365205655562277031283414139765465173681873327406713022687153183918969760671711827167911098499841564180487742634916782573550735945217222586403068948330231284546834444968273829853376273384089842319942662137550725244550008407749458836918332246667088944286843877270730396682662371105553455456391942198813810166483318300505244555599365473491225712509630621673591725274515379625022630073390053979849681489053637224227161964298951657233134402202730079428477883306222088609678865686397823349620387257475645791136527983930914147584961170685306714960896511873475952635772989824034309482508925619137652212436917055731483955411413798063581065821421551538422429812471255057524630827283912430082554347182136444731288453641620545947357401563561491844898546239001159181575773440798368956416364041527818584918627346722485805485549233419964750193853075594536788488414162588226867389197853678844004367656892461722619432085667968401498414669227195441519060503468770055669252467459188809960531840782533725709026303349553718127979639614028941609033678173552064686683996793785335089458600589642697065763417716738634796312758925271442698271762916334469843329185136645404614924668189353098329852931207329954045781402158659209266527370335796019801379072566626976462062638389679105659525810979920020275320759247762892521918049547031471853787384419602005868035257327721219797464246117263424546596087782359498359691889459810622723664055062396757160650881747616683699800616675937837455534375293091641301885854712719689138413083823302219500479724859528921614317153867254641794949420162563991355495319992559730385990772106297427201998652373211875682160808940994716654840930859871428569543075706950650869572440824569748199522970656942405975572631853649696682377307182057940658682401224281383112959575398891108100073388584239169612416881527451124611617376508162457498830150433535310512733207893391693973326285861763529916030133055230782950102186523094680809825538759251972155538159516374207738602992338266154605341824644034262871298653211937363386166996486054696895583127440259901083596097563065525546494532452987792114559692111418001512214285902744266581006186242599781617406802069767743971020756238842903889901822864814347279392198865128090389042077906887920607158826173333743618454623950589773776869342477704407331774482738936874979504269448017123522699815279770651016683264900584583933259428506935443473127955071800664586837108534195602812113180113510794945053537361512134102512006917955947621251481366944284489745221211371221580266407636753454467676071533320079978640125304351271232191027925225155998517651074371518906063202206275236631803154817962059979983220819370720605099070187744820617387286491035104762343089044710653105343698917799410415679645097447148570056910223604840119063455205522362261298598140384071422239039036731541636114116796956541833144817041208018017766432539672775203830519882213109751968666185423049876090130400360175982286184302957016650607387177535581966134870194994824625097336296814466301295038713012409435084234235208369078252390592173198837948403858642830554826166735290452517605392189688414815657007282572560068778441483412351336220090836943479856973491921371836629907220786506531193327940942306783487320552556024485881789168127221117601719809719783698056572079634093190001646957161040810726742587460072007493438953637137707837741639198474473959376752012692553273088902114275198701502802338438431672160460192524370281799497148411236341713406856208048549650946279593421085979270667268992511529495624795667122782679158508147708084138880861767543442297598291992545730859749363212965582760820790604707992654620453444395429651997449893278286330472446550087241732626668986181327346804461039999775064837951857187066568203402448850466007771987523901490527649009125214195770057997786587259018237113060249483594524514689997552972039341491153220473932844936415186388091071296213420849042594587242253066274778595253336498500432073967451853247318480174644646294062953881576971630256792362515074304553907123119034041917249784896254261792579094880885049070462858733390866851769671371684449212828999721166994812744530954737353761392297727047361197548117758861720793384346772720517778401463946767955787461394717550831181095713928187249506864249220105887449384435878200219974885754420001401893338078786001480978811892924111170709839461168162873088043375368592126662052690803480098527412173624953738272026427878626587375336420197839817127333431960032844849030058503518693528516982890576823657967471847945591775128849318867679525678205457764769542365992594128136267133194924022551556618315593471549031552620746155738903994086309033337779447460502827133407735907965625981611164547937878573104235489352845125639969143326235521967811104977733839761663207576474479152230057428224378235519016521728368187705307330795718746617429168101977718939717565597382304614512508090790530604593279468174024419843732667256844224862042427623633328561460649070763161803238053466120637160233089509863886538297904082681097456781077291334812969830019133411757720983418961262814960645124094508993351502124536227358289731849358676681744309450011962010685287667754485341647351167848495819398158977384308586595947872664860025862702925638405673584415564504327830189453818342777734811504659471233767247568831952027389394141930925282526644907169242933345960836036153400025842444720941616629667519964376865716749244397366666029336671396425791277309562098777467479193388377001659788573756097493638624968293677646250766771166013990585461645931603938521942752112537516440164429228565398141463399001068132447511187804998852974989803472856608296627634872475069677184071101961867817852516132236603499969841245548506786267967908390373907913357875976942871038765632824985513761458604206567097213230988725234695921551629567708029704034903074623637161403174373835329194974492204653859053210525562751338216793376374518359236507794534873577552872033336013876045682348899374558598888631689208210163013500265988832956288047840254010179717777730195998282090177611458216813484215406438053771548440494768158122888718483921043998802661976068623579106048859353046702142219514247374299301641113571467502827586655849261090121983024878608086800693570957033644623431591531114850838344443498061069257927939190882000657916699884972075654311905024553585256092622104283864051278855852228489365956656642295193696035096765373208984461489683895812440134013176219913334549073492524547427292766519618950539707180652678610510908498521949955970331228043898796902451514878914116074780457750993830101565121214335463925647482270893577386042355055160402114133238965471298340757131763905828427501657116068376179195002816620003750923053959684112424339466661543304793320196601468376286483257751108000895862760820486062048941628007037297402042338944700873211634487263757533977258444483677552611425495611255067993908210077750609722814619274707395925003304429359856495552769128177770695766115816072701169639306770884082957356286316863755104226682856478688551437604499186758325682222330824436766046617587222017255916818046597148654309466248490821524489221607255123357621321334095182593489328679480250458092603954733110174072111866323892186805443809533906815556994578187058151661923113454427099533242938589997014504627220492101095145063652641257345934196414561041887645288537325315142345655905459882895338092623440975865337181295641083068705449410538377106206906510376732917627647353735143802625167195470047746714212215924431726768154225823379262390531291818581020388210479648591721910125458705355444459391340953829433903483162233811887601911502093732399748747738764527209967080769201591406932567696729709221235969660819596160578000223560009332598169342550395122810172936606544720278508871993781505166790871127851545365342103910395031775272845202335997340636198029680037305219473241810464600179531279540385261558316593054936209863112491222212894380879179128636411010382305412186972283229307124460935644043791939342835336721936486091446921714270406546549486241416770999731141225759887842908222239722514119734975609376393986306244795318994568295988805888790199211965451573406847724452754687725322543874031568580324682372150895710821812154890753360798362655366778641271783669832682345387670426529273765628586241329191231361884330712421924529262871888329098759158759093449116485155443130665890957299857798666134054609924962773528381327266772278431105316024617102889654717705387142165691266178735495491641080752932030045223714722262599090689720214964350820602242841992224067701528382535337660731244526495064623326854832613662194787284366487690150705164908565607469538507694563949859914269114112693405446172872218427239441596803342670361156452234508892292082173398499340483994076751989369448310309886545565506986835025927382337391230486280180402796571119307866248865890678214332702195207870374217057243350782015090587117952930372309049149354652955819279372361571611879380184895374003324495358148090035692982335503611873841389484389073568675264169462417259259185835425136723959020022794392274715329927817100448217018473479194985258700648715097181043525302396986818597034288757603217081198689789285954880335640107410184053259858140291599517069052354025881608033145491035746564691849600666692091900434592619157465686826138124289765574130204511465939499002352049548995501041280367074878219892172182253713312069185587857425284405840586679470462491375314457496197058254494894567894677148447983033268971730841013524396140383193126425013726710752576985818773473671677181097228809513781095714044941778668780080744803691573997523809825551849059805556429072511341249270151180712431339657549486214365734744906247446934159395698825115506259190329176727230450925215262914156895228856893592729123228447030963138817154413138172182461101329637503703328265562879998217786089384608279767227289944007339273235666652814105022867334844233578056918997054299252783605248037715474263553317948043507364555711226747159238478945470699658391281813409571499913791450315406077953762142284562479525125578425860104836008770609801749639073630270897398025672925101760930754515642678325194796735325203769270734869434182575076664413182587187024742817321939977568851649477976128241608499158735728089252999334109755093474800249388470679308756112460895190522118785313768965939171111319984223390748161970273898105134684802824953226469163831227810820797315975819847138564566241243853012104565233612163811355803072408066271376576555961820814911603746985280286446760495714680962552464867416407956422682289385551863225530358968964163121214857354567862761085592781034582892569666655970942789962703980412115448048221506983375123239103925075569214528145514887984950193824267344976281761842963690874473373442843616876424125668000591945220499972075816840858250852327956683616033551272754372043337039655973988424848805563362180027867880662959966599005083106913539080718420777695826348375898339423390156019634734210560947389621713226185452198219271232700925711819754628806982094716830993666807323596514186926647447960768451907769145229343257463111698579913866549140332961904871977676399607827498999429118853450385452154102119987978615078927275260077194480541491733782300955530632663227668780877728745108292018821312766417601943657079540458640232549975051660479132387532684573961012043700195273596439226979276885428196615863997913755843055809057888838517390825649455230120256813045031422794991791248229037981300123931543290231541743913868939459767105889058732202509485189923764963817843773934354116498103473026472218413208183266305446080783439403342126237917136910105289931665489436217037652667333968132112560354213372890113406283033254873119017372102141368929751666855807570620800525840542058589880728045315764647154034031410834293910212548686165122571731355135929556021558389483241940741372675231001243551622268173395372246778697284004812229791447488214539182944022245865404307561818595910386000220642764422958269427862146348462879571166725588905600515032183724427071728789851679121582201914467913532106283083752271680486224198049634360206210242301899376156206189312538766257659732378718082366830613904526542517160167849722854061375906184404929748713947662955098166188091790090209720687696591783567557308679376054183835275548085797598460045385988860917776057572483376013890331528114399976309890573050750598674020679244432864000267719510430260645325651488129693349653386625529442221631048317772863479315634569916280516272007334254811871957400779767010402413778023285984770482827053415485594355563235070463982337763035593630024582787906241825238205209661235688117106310154247269744159631671355754841874710632179233936567331924156809158029929998617414199656566686889158660155973766722783874641008009936493369270770654438041598079579081741159395816372745084553650828412393687283383308609061619817469658393447410707428668087869311756042167729723120694114394562485100427349963372682338049616349309527975818605647406963696812768486579948696549480801883257053663154384671264079511412129171590676004175603269887732165990307372879858996999090637743274329400867109568530397768418576755979658175559376153387908153558069354275737318043776502606724947979221778736057440862991241933705106795762354656915751592953271312639511124398181143620900612682317802767921436205675407557675077805886940253110970624618984900078396026576486450926286755411184452725643538103899188302859135088965149233839884541871741522309627806605287529765102709977656461124126101672700488772990807833601932965326556802444594803926312552734784562298623970512054059240025731414397261377193207176820016392447842881619621192409929171590619985012475260004051610730515821168573905615730109205693865236957756685762612431122769743775093939926010512486517738765111612052242564506074217962190963189666265427626238705282963092138159417830575803068817493444109799506567182650009756404452727580597524184209935435385125821755608387376542102597605931697329364644003206170848787604166440902973061394852531176484704368096808460513126165817483103885553164715844287315143812573013705580337129867136916494419079244592612269607935890990150214698509497480087802930941594858029253224119367133044903817818872135894790623619687777564390127757283837112972167818626180667012714670454635304104663948414688042772255906750600894423914862559534284773430570574851550635095713152768790192638339105438652717434614122635021721891028523635172892227392388188710051847639827067097997377355597618601149901037768417895158547787935958289548008949633394950091484790353090081677720764939099690062619490722239942170069694512197247725213356828335828562410277645140913135193019579022411097033419362159299664799064639393256727752795345727217628718069624074247171862639955401504913917347736023495908601183123254432931435613759991545019951380271938613264636701846734627937863491229621741414398251857922417265915228887078741756253057147962912038850908580965262154246797826106695082346713096522886790583634034039392962166162141480868644237424862974956542134979328044614900885958977920081568998016800873545520896185476882145332868739931795906634266460944075507425843784485138218997708660509974500374108023976227480221447304866449130906514514412553823415301895258032145530304554518381827123213583127679182981695454635065645351043091021514271411292231114887418772466940684366692817978607043577576305917108455850235976841295184058491833037451754255890353605191297939802561098958670549778482198165780322485600042293138343952366187396989273692164159980081085488942817902264442579868133265926592303706185210439278594823501555026466962223023335599301613695462244401038877375842263359648036082424617441248102226402527445618506682707856308855873092571284503835196818048893074835112427804204520348506760938228925921554732489670384213529755686323774604286634258839963818005738844666893183926326494672223159915138673353166863442098343792826903922374917051319045437346761232176632008601085158142543477459520811366165738581859293158938585750637334332658255521988889385795773916933486735532837034186975467042205944686412541354861052118437140516987065143564594073522081004552587166748698346062631951411072629942694186813061512901842605108386656294230303243696082614078243733133283370924869724032610680618324347983179049687575506965919840786786104497359889076890928562241203966633875766646010537820544677881142452885435629846104534302694222789825148900857756635277371642821399736688910086026034960149726224302401753388977189753074326461316236561913490395998684196218646975349075810137648467920347646817865127986262503477328532277809856608609337019337408796862538600028199125537093084265000607297361175929283174118577649371970142215204887907258995790547774611171577912692910309290807958083221888831335447504962102766105645167114158179021388234325370297439550680484306240139344909988614790397974309800765505276871414551786826674706632233590791791198314594337770283750996126021622628551430808688098129524854963585729122121692902218588367127638581383388262426970983614113659418385494826119189510464660877744088529704692961933678453500416760720488217149357869408094982291768387436667712043952799663775103603222027368850149215632345130112911078673112611534515742951497056577378983728692041609502698631616126435500106767467216423592219914950951936304049009583893733189192644701900456551559920320716767570102707205555867254926874638538963078344534603159547474210740788978446336725134172761274748898236292878372245964207659268234036250585515991546369537421813930926711814485190258507856287350542612836506408560725463253595272433009619025793478430366180988144890506861607562708515745850770306926718562382520208159521562153520610305812174680681851436327178532515140120979718250485441446847818968695579653121991256826753924935185935401411260085710134657467260357131412084312079804453652441498468883860300808901955587403789192776193471230782408206247629982236576808939790253100760391968486371255498881900941706027638292272007872988294325221545172077176368327325923013483956412322861141038357652795950119178040504111973314499872873442117596021508789280440323325772637304750797612025903501933525771509364968181952268201828932988017600385322532540379126555359398918260060593613486675534849155042243559452825051544030944811224593730703037668599384909499739146771972167905104302274871267065480715469448918834839782405431502884203083844312301607019484589566969784573047605428118370196159800799754105042627578402748275730449313704811802710203754646348595780540567596488751219395311526700423789332213295729213543519287026137943569615839093666071105429518872374293373953505114218445470646216545210530186459600518153585861339054192634143523386462216123815014353218785995516751150390053107893298046389038763122360513090985892530407583098752747021468963808092663334228063465156703237872696933973873070192948913409675341338881819867756619544223218031305766777757411005586950254934583455073190431132109130745633461563821980205802491930391415397349830930382705817372711228695109116524759792700505405799401542605663139498684123368213785798664045993507271195908413526958850544810553141348274275408518029620663812309679215065716413755453624738170465697296870308917974449852082692283880648820442884024978785253899721164902749255220158051146438500258709711535790764793739648252330042577989200711160587463798257052961875238414445896200412347994447836314509636542293759049432735415480865241202176653571509635942512314235698330211632511749755199752653056394323957987142764504140775316680200209678739682851212113753227150813093841864055481759612738720110029963038559027806049144164247237323269927156257191725692856357136059970678481743811812627539489030791883004267467229160179516507096785148040372316802005963602808710114962241241303776578556116594858289019958552039986551987161876697383096887844628442354253563552449881100406588314998192596754361776396784131966161045182492591115978135806471923683805087485359731006084675742166181627455671008500162590564601399166923194598239109522155501021395507076296143648343857457661301602171226226331292917343773528809541586129052471488742214156337688409471538748745276731558179311670562701215387902550258849475477226459636635747452847528483457512740656480249248439143519997446399080702532983552542995042464692696043976565738266521250959561628567978745069926129706019782149611689420828131944475989084300000572113172895494838626981771192219476294892486652167742344923203168617536505758404005110138017491799604615982926881483781853716188706445235587584142790337885522128584196440474445395327225178904787875639837834007131757009651991722545041564825112221169804038757308585036646931184974257595178639606986593407170245473252280512534508578538409003740495501098061465361497972218248998617386550581272465478284715287590557542472697043360766315832866299154404765373110989034922861030571726684327351621542460706501775269038320600802504317088430547210586119471838509840461198255016201820374385842587962335641353120586328314027443332248784734390709117414197323342364089115948352614244312031161562449577054257171584483303488288555540642651425761198078096801023114727266426486960668245191570765781270317137455770173073027701088472835565584620994500787277547753453077753765762339435537780669760103916398345924777447338087517707863849899214042845782394824868763468784301353487754377575993073677407955116297477893004055610127649720607988148943354091743354036320827844107248609632286902114905469982994914256701961767188438162321440115404443146361253438097702825532136494436096730930531449811565720660676386480466461116040496982215475805197691786120006589088880194480182578347912646819378597518392645423775633392908686978307691726982766405344800448968301184544737966720937933009616341058039547443662767200843811277205441311439010803305912220743935556051969729006158395668893658321224937172225039046142673635939964726707128871500123852064062638007677001188367281236756083637607722367813018698370194295014465410057824096960785850150662363153998910105639878253853448078081932689167312158765060967440913970074158057675408561256114534367901790818492470033343167168892093170308352929908718088524495378821584351166419562515707606659574169653832968143339411022491705128316683928433021494430799942639622450774450685293507317453901445989054213844303933787639576621689135093953231422605787691079266250552779199869297333711034831925872778787100458563523939256698425704736089855160018159468099279739074729003284346997706516678281669942340781484806614786890791121271363675517444953339827710763025466192085547310969496532482120435491223675232699288299665348475120055433535059545799010429916474467275711521262930218974731098210230103532604555879084236789583509743921332404343267198704151986532242270890372066061149144927934889774932242635871850538144325895172654592352535093884969008436686809840924639264859480460862268205528269374361911373188236511786518217321556717546718622384060775598657885632639734278485661678927802803542468965441422543032071851609383865792500106691676333743165216588023992121740291415051814456158838936938590283894989579761132238464331578036779400933590027341043603463897732339929448106574543684453183591316427618716040316167917335000279827768250835414368585652296079113931828168672418641644154470209699099404363770667656025561122803647155196033086273523515167576682256942972721650942600311165895112715317392183753384906418224256091296894436667903365255596846515417124468799197522154037430023786135084509265186212696478835801888741971857715091573489861107150456235220647920592374001262253505288604127260767311062686154096400772511583021746891188736467663531147422718494472029271304637991005311390322757908755715714385379196760209187354809141563040978411884719965567127887385025321688374931538023249620261140100991487190176394304648509904376807756140133949963741607892832585416113762941342556968724323167565930714029037765595895466165370660958102247997924886779252493861853243792188973862391177462715211239649194835165949968564234444895710273510843514414000437587210543670296861253687730250002275981069666015230257228405077598736203105538087979550192257813832057122422422978315786142640587683892227522469393494060685865408769998344802187364846853071713382237619843197380942015040079099649799557547496436532245883290437268679094499921180007418315432359339268550064980179247847834930256011015948490399699803059309392913050087391855057813169002661621174757843091516261898047978343655797182232658116905603175750663834302500703078896658437671634350021679428595520270063628034419396648744359420121376463347126899512994311704626122660938786848115885307557942865638377608108751170667153601215853319351671833050401373559633009415908650519178791862362099640707437621848518066054837141255367508312185660288412593666320423883978482830795536983113958376649195873850494884008556748300820079369162235672097263174156607786874195575622330235119651406498322870523886617000299640119687522864281194332078600664336658707258524397523141324308331314037533164465045788147504994259125459730643936327331856156701708422883149576573778139896594941555579149984456808738210617528319370380846532532225178559292211520952140264912985181372784420724960753755332640535898056529625315950515845949433865113449593981474170300689126172348076389593447684419699813159213728488407069468624473251477947097049621183135518807331750661776526676393004349736530459380518354449357941196612049848356236334072549480724986485025913984356426199833780452385174168498835844991353790547835350223686466068668862407273053611342964488839752755130961324282913852400084778658626257066336675358273024833818962063662455908568071387936017406887734710642441022168264910969118369444454171818452317295239379953176676009908104741948463541155369155326595580531326669316688268270135091845707477021520978969467302692573234747787525102879440601772616016002406167326971598305766895225647830631367523105567011673388942875674815938858787905203779581609488092406704052507967199083761968827015924876862674461373666712625387385305018033917686223262782819624421730389586414971885677393750722596518618524739980684839687162997984987909318926116600664982093327582448464644486208307094489411062725702260701736803185522315286628304223377964884524752646544921144665663475205581248410959810564859248842046172421706610467758334328674376136570715828363381917679807319208234851455715803032337550444782567439814296961272328098877670095887064380559414277625604297893014849388064349766661571060929127439498887033452187675795884374967706545718720434305390827190414082082603758439209913751003493932328888495471692673518880827460196104789270120547715759577794372480260518314729670116206633391394756908799074935819711825133535000122455394087388769881718905131122277194326555792850475328436370692818591280305735037893999769867186044033664387022956918252942580011685488655264220887612528739587275608246414102595461285097681223292278808746428304288547458801061436379707482805078568939663102815918816056159099059253489531744220144722754693189302726842491564454290561537844711557775850514552717708741277981719425328249851981062076573955078618726161002421671252790779740275765841728735769290046973018689739709376853764174349311096224636704829293171353269597795614277944883677225749897286617355749996252814841411798148133771275276278918717370055575644051196359952979928581393380595314877619672860895374659607557315178915741753339237285201100215700928604709903067788425016672705211432812583067036166770608872457085612136416715493494671985429248287935833828025088100339389224814198945243605494489330727588221167318069038508465309250670722308995379829414286171799390335513894311312764725700087699566494863936358412807260091102284594970639278143664431599100909820200595273129938554143753854938540043358029857541215388519653381781831978718293802863158524086863269917332290564351501010887260578731770292285069035111258946324264265407097531701591051972495775886876140320267994802436034013535442955215472472616228396607540598189556235785654661055784211849435102490912047023016545280379270627394016175555156468467920014301285390981272442616117867517384111588170333466704048886201130355564249572724311717845509519801730605528986443081772443349975606535203623317341980851057291341065293933812562963046227138155540596082752208073838092265328177170327606428704641910831087315791497772604450335948397479947865971649121486014588282369048544421901422648969375010490397449574547852190150937931886394039736303139194507638137323382738389510542031882961124718645003371984992578670589698133471707573890009754288507404913975799778760851923896707109803182065922655857931577496429716839553655776677818107023691434723659726695445532514711056384834413725827431001799540173865697375619495155118834554601447186430615561669960425375060184958678431337415460044197344715808643102286787952255622620815509890408960626958234043019082207405404045981611909907132923374787638084300577607471415716607045146887104501779307970441344640545330946948434971946880140959832960141726695380914780171470964130527032599286802249749698209304010374050610810122375351921012059345501783304144899509467685593635663121544788880323442009040119894581122912771212986442786910613965346441968276588469158909459097029126495480288002389544955724628563854565724698943003674667279742211843343843952473684345041768118230087763744832587429283956850923691501470315642084585542002141668388057944177137972072496542083328772775459818579539217926267329757036740448751022155039714165961708956131852591407819639136713397913620075120751935084509211365987235062098091597130207403800525933619985269950179412282491950506964855267405886011560979102815261014378085107851346778818885483957737570072355161573173460049585828911354032065343504017210680013005080828270378120997988600181157648939264086642064669345791925924377271887308986114028774726197831237193404604880661462991749922501638717030736055039474426658219206712317300914924158317282816978669462495043088206666857848625885816392572044027334906757689017232046667240585263563022936094291210369707369016548995426348101000813292273453776957583842494583997529350183150267347037119352685614309629548444690012635684366226968374580466673174269585108830574830943275318102464807229258553385481128233966637388183734414605225021200827462056734270062342833819181338093140890353583443332292454760091681303492453515025216280225236427892563994767115462849124785416603935302962752494436630371915461783974530700956718298076291352121947531736126064887037207202029506692779697915698742227243340540176717842108416403947952407249186688486549728073227955322447459021154008640084657497063595511833697015429973361351328409218591257182898169610017700080490290699601937989004886847107212810363170158442716788420268652639448606460399992187019739875269086236316277894195663371518426813238706962554067450371713994345237965418069968432844369235693450931088920669785740394099483105905951481263001189523023194697081552088302357138754921373950033090586329219544263114628285343164339336914275592339370298478878212898024504183487931031324716369491850619859962464737549263905069273324359845883841114674185675381431477102769617435689850234720056773164286621310541231510826435618713791540896585946331818323020659624805182441222543127157216813455025843615194105405004287214561557485063035854922798777758971496729719576085391101394610974251752734295442124178195167854475569266373015170425103690045131663011789086632836596206500186851802499664244443142917526470121040143632362491395212113926155304714330664737514065410026129230092993312311020578316772037462481745523556378469495860856013092583447104036898260541732624755927229665194574239373809837000487236089494594806368874857994554659219232730736872316495928340466569465834406088137037019466084584710785762290351966936990823904473182688162394419977268931488377399721975521901922880163551361608384343944108976775130498519760563649868850688161501816431922696962632094633896416873946218619009584461870431926862453901462103734797451708905694789558681280468353764561041156810135706020534333185111990868535798806366690301875890859753730389405892716321216743847443734248217710462484951224528894438143647091900900301938470407734397295256961598020945922729125288611347773031257062244647371085898370601500421356865049792347684394716041061057816139593081859180990552464027415945141938985764556991230237114967775562043905980812448523530291660378236585857611494661972105053848176662205509145728156371342976723401631231324286016032276997305128602790906914101080793389550629827187209971565001085528321127474021663032047832304475887256199326857113730764340588033297331798828472927372810908551041326553670623981472291973475160726919437550258731872627109366218103822557722562721639900296048996423521152897463960968348903829092321421707830863080510114733509174842186118177138431123410970048836139045713593180072701175191155497245945554565015386318523122412275873241471893916993155195056974341545535176822884199316186203250057062646819870171753716045830202281661427627060748881445926137252136607099100592767171782985052369755153066144922638501830475056476935190385080051828680249142727742081873719882402989613222375698113299701053011143706441793649470090726633445366400742623638375530672166841686541747693324149909403340622582556940465794702188288848575350134009138199700713652145091111072292307532691615994112379174746370465702903546069301179926758554082313015006091456955058825436109724563807084829206909878080221503213868115938969657115549746855311775962038930690298211349187596254409798770248602592986366283267235801335494351432478588554644205180636493978860956312945078039992406906568691577351802933306815877098569547027885641552864579415118793765715034413620804447479731624227644948847981151282783972455351860485585093325365110627319565479508563046082303428250880784056715717356591355056800215056464857695446191651804228145830652677962221510940817557874836755453417465867333311211501343235974668987339910863174537819604096935770469012338730429645825129751504087313909691879792123206203482349610273163012978871814882066831903885278920672358191404900941964807602249421441106097207829885930899957491308283514733575802068477157932855732241626662924913566178571819716855352538736934039434919535439223963558367170172782969882050795724569974363455256534786422830716831238077198704590544631442776930869560714982871026418859447678198595448336449335798940767509606672116117726017136499656917647862060776205021880872134181721375882791547515109680221983806245164980047412220103500374977512758671586533454775644634178784291908626964468522948426523220787068957874597091741374123917414798470464625418041446435326684051321532906067366485179554837098949346652623883630311796609895223036857459643475048610582265513397553545238277999992026051890920617372762300239418529372501220270090598320200538141824051890939146343468466860344915890935969624131647653752911061518979976489598226779877196952399065422613918652786045858795679104013960896418090270429309056276709506656626179965352723907846816978456454919553950436408834313187604896252742508356113034231772624499190853604511152846420523123287058612044848286808722176515175720144743971873948797969759221389023572781699174241420363312624948563567217566314089571012967895795562839449503052144298797318612082117097748298830707713736535142754827841282023247196620609010269850252306285886870290882012414553235115557727535221025449265263987196863879795407645434996196287121758076857027033605549110904291978009419353766919020151986781433667415161161859264408451630229529569665407282251923466438944625918637167229379560125213737843565463744374724926996747917918787871191578151172617827145975337370007146019791464489793382519865569924909447794312008255895719284047312223269717771463529042069538538967879774549533682546566724993226315101160905546000377368992963317353810739825292871380471231071012600868027903886794432134280688797570310448067391782090452403440610998622076952667011324048410377940512226893947377094407610610019344802428512430444083567168204786772552235501452126630221593611594266826510402903419307506991171597815153041214509160411335228328260455800861846838074696237572944870212161977306469837012485902925528120480536459286872063114593656393819973431576688421488077958541402126918129414881172795070591036741607663869260835602687130698358262221314778028234453303340383269348338172030986365039861215344141778503808887192143584307668309647506155166720864504541604322631515763799091598230932630393290548052264753787943513105863149978689465189932385995410389330482816968998961416847482311683809335924735077754205612267902152140443433486806663037426862610650171081656057495897637655951355323490199686554830356467731654428470367497135363877068570132339151143179749079385678349276008543858275177050603345505007544201949264040964985000455483446540754053502653794050140677011301579462304494543493730001911612400745972836443996677674688619053264386037796311141317484743380929508327191004757883143666557264545550707384565743868314812149893095123621985178753489693214365175450708176353123654917878057801047383557438767162155341809825594571042981503131196847274531447678019082855347036452483776005530794472000775947805342044225755988246229150378193557603991081590905551727652816347636961812177750664882410568578622015474426033936744995928687684090549496474686001927458132243973197643144973109362341185054743110247127367883250682608912980638114626860335164995029370964762305293991149667665765190040585171456556662411094064495996932297044889110434686862074752287230732435731896780360195063612224043387238560822357232710508933085185880111858109369766049234680554790334366140506600435636650529542182078684618089424579129588708203592896942836419803056180650627577236821927661018215125292949040825137809469162118095241345559088065838107007214249012023469711012743797201475089088540123835508075245854444301448685729791075094067114026458746338687170525350491203819155550965712161082712386879223745804696317708106910562833308269024775924803671393813070103446196518116463194037152537398395539866080100822953550058281872399461699240011037039998602598520440443364313859250775210998348134169068814411972121688325983695968044626228380823503231423659698235996017190163923344538969642361578553517303095631806068097870639621777829409330975364867625528107338721498597683591964659454471967372749941099276117229852819484588348677915171960195937339128064324890885572687905991830713134454183992343236566366238725130876478458005218435937925545520485593094750049676380121949500238725078570742602305576562701354129329867423405592414880337431362822065685791546006314187703190485228685725545164947222449444409620012900019652716072604792335920074469052946643374938621713770659429374886584564020183503568966305963683474972181802931555097727637786124045486858435627732384334439421976082811113068131026497817447045429495309836497541652732190435677582835433373934029755463713204830747083799404235314193072851060486444508535341667203282849746322493545815310307879248178770399226704125277260173310685734004155034998730521311856382475259427925520375970835870949848679964374467297445474254753171217806270978447298405157545900439754900319631262023357814315379319866706547470402587567043958675009911156241297526039715822278848128537599310881786904856388640561795058996112546831104420444761725937992969577007309277640716808030067547270999490279117400263057246185631361012519966965352354946178621732207607918902939549617359267477253735038250073462668441956679241533281126258812074036554469787834238108840723483850602240091271992513583390201566663434582501437637539017592081220733364035715744527536190158698100255024639269920271711395606695353016446991509008256040239311167654085388709449319322761157459556137808261088415896639116934229632406825338404183058179585752454537467515254477277204668611063205533410384195360031541990520978262675178835767826459849834489459204958250791585950068572287245320530024714577294461102368983125226982884104573506867753118777680498038002101056664054949958386171383055889515594630708957749450325784805560786406066841602403392197996403607348976537170081574686328577770044706418583830696169722171609886275428279351954581947700800299609116889844605914277021018307802351786033651340115959454087738056714245879689539315467941128202218166862723569617746784236461439128547500890020371067217349742832305149308248741396249460429546090375548662958013824109793771490418002034913330663145575703494440591670772678278958643588769175158597644058122677467305120705572187695953182552435290409960616244324558264652640962870802902137587243143104778892905991901477689292175978084592280139497602233424968348572332959283804837532857786535762383356726391066870984344055742386081971545774856971441965662294605321128230829714974898077914921575012161947126670584772171912286259745457796907232259978267320668950421442232710876813848032930334413049935924819422813272915810136280836605570953304061538767371338748500594030887091469237642141399041394517035478498536180211397313508232512971439973259731584489220835717516287120932661583190375833830949539134344687346716420423111667506762082485731773073427322601274952381877928242050810914722585099035448300440383753199113777372136144635954462991094784637188507223783155293002184695825596180942661239083090149017488851645346114302433463147532736057130892021117803403397498323925088448111001786034502696768342782215867406619647682840288299533464343625106043840789061218815745807767072766375733114679878255487611265558117955891232254198605238575187319931455808265870640200519471800107124936643002360592733507323408884536784645937863325168371320952242875437802535206377633923137558055109955480930944215871340986208818767254498064018622624921832830876808644755161651537027209914056910634445247599724938850289172329003880311432748082765165538234792748876142323728443552992050415197537616229691318575584391658044972330479032389693037935705694809044442293673410175047406628218495586339046887954682117804232017281267806927114543802284446706546082742078078029862163199610735969730543941973225207732830619418598384855159401043672865517508045988510383374878403598772211125393437432993626014583853725437660294747341691676102096979767177156458321018168822464775655102536528838974021315560058538015439015341901108310595179299314746729888337888971811837633227560602456515665295979190108757946649710051790610713329655039215138906106107754754305424640605671738247447058824573893621419439538546659370247002646133429644674929470991031541902230936301786812410548402634824186749206968492121183260470466885071258352776195390091798474351965442761460554763199096272755891545982934238849080402914781689629084598665792421280669617076018170459942031526803527480816084503841009168468424555649677210181875049837597190510795318114755543992403152460945805238919706249026124282985128369909023706785411495567666363484382762082585078506402772389058621667996638545787207167862876459491725817384565854844873080475354242179812355342866982254725754720890551971180457910965009566390640580213203270547353629055652382463763436648983417761985885122377382555578223765773675434246445208794365044394644619323338528828008316354926279145052784592293089392069409016141803412582924476336157194103606199277463282716516129297246446349933126721428449176025043426778283546103074804601219663561384391023704856247883315886796357849848301705807059146218281109715100215672810423248475176270795966952255803392719987885345890491035935533526155256690896921571194375496831125796284417862397375988490374193375846223119045013230799877691758376155103568653547875689800918857671085186552084843075453530762199341117854676957303396585584815261948266581260008636538457860876233362604889719682804290761199928818158511424698882393379742013609310518068299170856445829313737123691609156435523521482300120475979248721369605695173893818671612793595093881459861044870848849412290373391598861232655788815732116226036247486630151839533613479724563730364981736620298889710461512478849997496767208905777384264708164484028874672729611317405000888576366103044270181310338800502595729914202793222162841729406534386591623271658944126735313914835181156860973048771016294673021183113214810894559149559552200046386784206219702808004276554028223133392202064957197157852812363368090845935893323096952953791012789384150834943964428558375987616299449533058461786942496540378697262779853356430327508997445889657890796412304127657063468021255797137835724515859062563547800317775165478041618805601405839580391268262932945333626705682877825865796350329955008029648006748791781182623249819761074269453048757527732071037125767209496906408699304202202770012298973858818587920301901224340616142921621190545519652289570309011061574145979354160960274782126218099454897379362880381860740370715754974533085349259160615734012120719914619492547419839236093624432760729138722396760317659279889270445451308283204686871652668095262613571001056854430037033168374823993511824657541719915672242878804445041156229200566382864368133153329454691628392060995731158240838043654727664839152325205699257692720745624933424543110115364444890564811049646792842228958469179198179617005868997117098591030466330166137814797576535138336299134667408074970220964884681023145798823116548230600685503937883169778972900998253811607743787952409956064639439061670219029300366989527583244579401753167477121770255019796231317666446943098708753130874207988269953757928775477584003238567489334209490574541182018834673574799228032315329134584741601178511569834933855857480931097019656246185647412872444798169565412469347511413664602045853183147728517671995307643263618441541738937609773458384469129271553758344261610460187123537759607661414507918096866877737492301935009301040324559775615299402544348145035792235426625436184072247449819173144325177362147175522213259934247493901658809821248708225134743212245931525067707703747034144272500612304621093732089089936752835807292861247144572186536023930838902464027087889624087839786569403329973443355485350424374524267311028118673797077094675418137705031172122854280301277996493004218283870103444574879183614329539831210356573052963910893804885592962296786764632135710751877349126773865547552799941854262330552624723592488649818978788783697129177564919997527403502954469028428516357592182161903896031848441002716715452241688741699644120154571893183053901628195586858452820446559463022411536564616018226973510304842512371761066917104365516225966635444483448447384302482043611362492760199106520770450650116068128638131744278987167302521250386422772805859168662514763432563873143061708793285294685374966028638468369472835449762967271511423777301846988968118057144487801146980471578813123249255622934415431062143175581096730459120217294707129245620822489331739567595968704932036451372888141495836182336353634881284281429506695133007350937812028089739035736282023577727482087442461377458949294972254981119770175057593222887682165402712856408701661080656269107334214255074119276374233703349863331642370956991351139198575590761649328608461643749332849981870573305676940064205689364782106342574396679328359415119568790324592844970319613621991707620766572647238656769897207906370113685106293916236344118944475145009971401636482108474690217708765563819841486083482812248472983629506330993830267499149636024687820019073839881133580164842827872975436484027721549710905200562120311231851973969616160948416279418415039291421828565318439436836392917212607326606928353500945855129025159398050851335607684274784393686433092698783392070335910756441070308348641838442008484512497685308283673714114860776998215873423993308597371655586412848212260530115511349655386387300901988694926152407240528663940900310668360331006898753906802570080391869680801849526078628105388937160118309775052078082412610843211736805838197868231287029327953045293778239968950056277129013086290497719928700788176550933164728910202619735322773799663042461265040417451304529482416738712704700806204211788814722552255010710550134463288944038631007391280137155849200231852251198953025690435233921172814971846890921779080958788407767690729069828468422644033259717013406936200767379999024731362103010107597501625882859849414762006664452040412423014348399735900520589589807179705718160100356585781107439930071363684748816576580379127697151634647407130816097274751495882553195039985381943413720908296989191465567959811965894575944727666296294498452931249336035159073382877278177285379966769042966070065689021862429534460212742940817328633909135391747573104190594319622286074928422350199453040344684923308878643638660529076254762153252810715159271813869924658461578297603426073890375081413622200144867563869378203280663538499544225765451724606050848002443293483962224414601309466216627154044124560192792213040669396419153598721685067909085850565629666813368913962623876900008402900289596737762571097269713555844409075304705960486169327022670804735885971233048926589798330333061184944282391081434066164061667384721911078838857812557349828694881135723888753478029302248614368749846859640295087688574898299936007850334273849488941342655220489128162159701857733871235285197773735501788602452377337399560799986454829413871535430643974752218529307698492269705777864403555587730021867185975218057549922294301528507742053467098184389193609825120779801758339142884292196468141182595532934817186263740483091909416272966272334883828037976043160601784524426902272679923193123918821491055817766454445250853662541823466780662167977452103729983678294996124184206182351978109256984625904299759242536266337289298594904579925051170059293076282852008885588962652124959289728127678737496633402556098817394206648831628026548146290736018998155111975342615419417007354691271234776975287408121431096715311865068835554085999981869521287335996456166507411289747852412392035449438412337071502379338299962074726845292595894769908705955312217543527852558206947149138034066488367197600245161035536756251062926003498173419392139917940981136899292750029957682801794972000828719845870698978594945243633452920735791930347718374798920897524938061910266583804328047474865132203313258533831410370176916139982364613208594031568781494873145140337858368383256800306448629939860981627461346183941283104908999291708745785012494861949403914648600967046090274655600506940420791131484465201818672535485622001563829022712242983238471333520566714278416678908174516168478490221983230162659009628617415637158511082856253820880916527427998204812865819801204854699653077150734714589631716999388813166826727165642250854345421308469033150433837727512078702936430346583233798201693373182170262413344970465598225730035924331694902410359914886883263263050304295174941845331693689141543390532330577969069490792006553388749571982097896159914246200456857409686299381508789520736643996269456157100463868689256646794405804608572750363913012522981056098382118833325270411821822959281173933573507943755880673028164395371252303224649641189403690219289439325523253411172092584205449749803685387524286138939060746578301900180556442833561277117653264314675211333117574211758677826855420325182101511009521390801872733496113927806481950885315313012694367317437676304868823799160870789560928926609430378948918082006015168267645839999804604920942391868245994841687975600535308075848604242757996653735645945178291359773735041273376140359810520717959164445323154268553084938512340770860943028963594920906804217514466397834636130525200716020866290740551513877514152329128380852285649107871558569987345973352524386145046744610253039410740598194592088718027265479422099155492795754210540188677819957463272661210605430371956234027477926076214751316402651900470063373539757549562015390085731962299995185095186445358215205841433694223512776131859053248059190195361724018207139625275376883416892291945172323525141408211546174197986912231478485154365849207476951844438458685622139028962521155689775433567342960435280425455066860996636610478250884983135488556593515014614512657105236212924576403784952366712341516707281557384054355501028827220318247067250809178641846715909050374188535724822935313258627531892684215586752383292450850875012122173003603058154108246278506617339466534870370063723848138406816465325684479811435435871370804934932995971588439534674138012877021829180128229795625793214924431611391654150761382596247712096402265505059572442454692082366859695751418126754367680190708405641965265261295429852409925847571673596828811989627517433585737336243300993464130957329747237641227226989997731290084559334328854344411291057279488591881724951921631300829753635707826839035195133701259744041358657926779076212037711960100986676212184643040669297748037107552651755662531291355088534720649897206697257928742710676239359932495566274883558888377020013471555018222837651769090553450627726981090785398863591822459042695357458942452802957425195155889014235877621206340720930747753217410332597791694081104721980295306254622619388393275808486948866194793244533054640223674436873078809498025065754403227509741563234004464428931831555824057944178768787581104614425920136820533408936039201583968579039463899882694761959111662026693256085217112717541539190551185402569368045017388727808541488842859295699275345987034997928701580819578529022767241056433882482589745292781834787795522286313224289573650609362768777627768173265148682589135889562754557093423012824062712043258432999400179315622595623769761274825634020119204609126489219222053189109593393249076768854743454249016525915419980279494973916248119360647423226650767723881665795147403813561967416125099478473040771780242674162369132412802465952708909555200026560795618653171585886897009278282713708100719570688939183319914043318660230461577477239279394308449285592025590892673813544987630209319418932349733366690035075301010700924207585883781229965204435092879672722191335894811239244957760761777044730462664951254048282908275541230882395491775097657232837839503935999204858933871936241067791770796789446056669936339195336131812061914602438803422770402405932618325453812645149069057270560343293665117923075560237706095556421904389511658438157574820385286053019292586695184189324644739609113806750970976008059534534365879229107864539163225582724367352536106142988211731391687835432430932794702357977113924840372466061673810363425416075496192458573207609551007305135754360382919308191008854283382621825246750984186260576433138652244899226942895823543947744835136044228666457576203861161655226470172277041994540567424174615713570127013048545156511984805303557859000644057523661398875417017472867824306859123409448615428542824101166568742482308598703827824421883138557475846755771351380596957776477092664579949926361665750618581963450808458141564859032086847747195709148606784041379413362639390016619095721068095992544707362112651669688231870652118872915412743198174150493331938262850160806659873073745548108170369025640649084849570427836964277428352117141296072441434401249248642033767538640992404585961759855342100954685533397430755841974186917982724059236859784879009756294489004923635413862434337488380515640819504619898715969995118635763349874689549869823687433208276387770400120521103168632203660187300646489890730691573400772408877575152705121232833129850375655874477969112276626559340765048898774669030350480470809125059487203575508044045451241452260001125076401857978533439766944387238810398460602097429270785914151259884389693980184125041990736530916018689349559948654550892354008258712291922437484932597500657354329291979866886108410780105044806215124369904148550548769022141928231345443407080455247745559640481872303197444609719094630138839942234535767336430227806865486542281171117528373086900694297028992006494274284972256206027624737229091898718472830809936070013940829963329921938333799308597746638085725172357916520643375699106701029325398317001086272780029556857465582230615835467694482970678024912275774563727403315509780093898571793709654362243013109298412495413858196980427725112442014023632095781636408076838200247410838294370201290583618715788640416369611616767943950328008613565749265013372044663765775932428443042478868072230919924136072947265250331681232882967874673969980196474034176236948695784851179674449862570798154873360115918447451913963159751547252158459591371161192575154106524579976422739986462584045483175859348225612055651348769809692097656614705313347067933105795582154690453143648193613838900741088648468237616177904982065002653289496067615490090357620381255428368845489693491832494618425117319512164757229917549179641703372041788780182128628503135942911236519961099756422439125916989206890580389523524957401491718919999010700722584271949759794380315586204370490753968669328048358264971038944548958100211860772238507762382118104033991322550547455673453830303226298195755081141386152034217394184311644539796409199406172876932914794413927569408468023083894219693448683223804371471307182920103312488754882997182377606213443514258576417297360236161708329149618483031561936263785633133930546804064412972398790359589004655698652395192828960753126421299827617039967574618298611582661276864508075897939792095183846014666721277020781134309433694633214584921753703003314695323617896232654861088819526215441590861735026813998182230559356906093205276981436285147926711609531932190063780527332510408159487177847334478509455577573856468592983604670726203629375338813941634962337010405114635895185652193223071538787289966647703183738345563476785190070594053104729399753177616735018286614228191818531490484117630612583153359769191610907659652882531217970798487886898688644864607124026519408388980325342860397681338191002761733434714192649002557904685390006076827923255138702251337116944095007808314495375848690148996265625905465322706037048141018509627959019023150668951140042155730519805967266367914326225469667696173895219711331465523318163614657481441801591554516181040802821735443613635430911128256782779240630798272097460241254679705339114110437246467730386027310938457023616721007285690182676032680557581698332967220019701976817075154503185246326276166185151545333697776267091411370755218561620980377651124211972582567049053424624400862483321396001239581828393632325016728695675658692889256452764507380558529663244888053912899471071641590038748911910641648736869845917208028689543985666769695708389430554158340909735346920412653424691217881890930032217736002893496155838985568377548754169164890984757139879411205713137654440500651228530126932616536392041611126938173066618825561360937600434408885744538272685957993927478224430177702227400001060529275858804806446225141460364627107491710684576624036799105502277502901230934872890695413401302102917469599633234245987354307001146877754173315365650324043793008836667409322268166804016920634766517168558131401176600949334395640011860319983704213618815686153772340307208509604735691031322262304432303077923674606099747621818493392748189443380027857276789061737028855938686070436140242596598382877005503831179660907662078968118218140665921450877907069901526579649304971703540785799626463385906392731098281437727640551653567151066145049296788933065994971278614098453332805450814700098754828626652225438481901460502626374205404683624237317739578889848497930459972782853323369177785705834280239232546766144423085423742285015512993559156335181988439853107089794952790380963878026405541127552306392422163814568439136917434681821000678741187997213703528425520455627435571664088287875948257751276402264728915540712419588082970082504024160376744976619408456888972577808007596021719634743577321767241764935628685980145379930313059674037604998574110624563875502698669236963636702501206329619888831234714340595494921692084265457494407352726710305366337136764738553988560027155539023875728043757156765520434507827162890002992970675462636175397902048046042452083526147695755240726584965509660564770694878675806991325085226780843526690102659090622210877438583179091358261572350926251285362154061893106763117861157050306656159108621925801831757639586756618234041207044163821582090224899743871364262186652894140806678350865831986099885826297729018509483486100988252232727883923480735260520574168157919041623897548972823663210827335506957072800635681455853516988334307697020281718896115607695451707228126925698625907135375212742959031892596727722729020810280271547672951768409127474046773540574559463731492839923306928545118304194137443910915068210058619596121890268740974805868202169462061948102996622861881630422814760848914002002193032364921745082343904122043368453696437575780441261880312388021769085321774709465326814971526190660630695502189904011326909254518302551012479114053538828324400759810994134533752506343898692682039599166802132330176486137074381646089146164776421782444481551278903050074494977024180752499186151959608302478699938904691797170332668616901201080427065989442311288617284323648810738115713241572305210537394269241946789585767358223884503355317106534438842783741493265393453057574146201576163661724287648033339999481200791905348649275817523154864150611328208306374568578374706207395186088946766243271715456887644479514023914079088435142049581610547132709728680844068930173068465952754458835420115265844809899165791200544502125621350192793660564220691487262026278652640847619445780269682913137801834992359503915040856027865978125999445864838910655632375677847870989323545597214957879239915057132251383398595899445131611541430619835298115182377566921590061439082230012273102531401937943379622420324170520386463983050583937695365289055895448630536785804165767066584603393830358997849297010891802265028875320964509265433736305952991825657475831337338923514370533732853971902068342082196130886922474897599157359501725766918282538585603775719467552989986618421708841557606708683531359291625198367996429925975985691319418481670269604474214046581308211958231184072990404243396898053865418128905351755491424297134704221367856494169658935640424941372396416571502426508378004100527125485272802410508234253327344914868933811350482969711887928898211729726931319528227664634944141976996353477079210853606782757527528429338506245169285764099597540878781267306052471013381172475052455072911928054528744683607246933988898365211582195600367746014746290984856872944292691115890500407819496646429131055569509566186221918160217455881263089287227553321137480781715388526882411599113835620530413886264995389953594001635815337812018759491573142670959334132161554853840670989042227789229110079397938938616295649246719357060785401052504586570492234802110331935019278451476270037140643948812013933183767671142107023159414611636000833256965789890253339279446923870143442274161386995569985051412100800390336588050965588192624331396605890737705953703483353566171597966602492906457716349705445582080742805736762349008156545738865751067242288527014084182390697688709951443606652009406980115887740967029473315297295950206584069114374195084925280056806495118901653612475591283759275070024804601999178944372416296856473032006033175320170989029103438376778536837061600053685002885732907141276849801391456484897245736488726904318383671382204548284101543775118725187370443097248396616922914521903763342320698863419503423175467055702887154000808196744792576303524647605398746515653302707831801047308363726429278583685935176601818304730899734700880075841215200568010223170160458443311319920413313756273416955021076213331608802895120004916534388215295529936096795215942563815818100261916359557731619308331572367919633180091845417220760206706747609640994358531712728755538103023649186582644902269948330916718265878248365543411020295731660471883730206028524619192416797463679510358011261183889677834879481969571481941518668882582231791767385645299645434908355152878344582953640671347206775353844568548831669123670771864801581087754859198709878371297906634793950312695668019855691173315478239018376145166867369585394713958927487389258643330957119644696045325547236460425556923191142959942067471882041930067324633618785740898193555902244698188340471495922540660212246186295109191355856107699780732951085514824748832198683967073199628482520746505081632472299021937127604202010596340612381326246743197004818318415747197710455763044722300502819981512321484707091490059543086094942187150699027072302405569495538578888686523831431144343528361761833191678417529695678165992572002284535184055432252266276942116180173451401183971524787774937418271224969335432984426220009662116221528809860235230548065934227181451135156231442946439712929843166775587232726685501692972430530769729807730461687500093366921470277136565702441922406885296511282179189057358023254295502886197846466552087698411525497629588744933234058286971916533967346320637144943227561870835377778580876866691222578436049494130163285786767444875734446706780854020413934375124621652298203312915672832251948773226272163436102722331878598346163101307496908450459504039891873856354254092613928712567697744266767801789295322203434819063110107625941358202163038745354168479196926021280703680620977752822659594208510765206138521544873006412603333113527968025177589868868273449788769276513989340396316230267666872843080250741957998155206576609267888299066011710906074391151648833523014227257384156810308215707091451340847709744458139861639262702737616359117066069767624377999297989028333372254586721487626214314471169628064456714825539863742422382617307717314903079315565429026050766512417088078210774129139367030619521875190222747532756001553687349269049185067928702090356870718746644110354947358215931380232771128644251379964289854875203424973241382556338307809208704093032301318539149202283113184212667774483051363249264794881878803375018479142888334345571369901199757469810277084400598227798733623012169645693205818172860194485322785744606208257544705240309394817594920503793304646533034636044943442154367929933091945657660735038267313921552506000049740710187510562768761809091471048647694426804825167371358316297207288357464250412283610516576608082269586702299314900801573201212330064440351956369998393552190143593900560425109132182963890236291687931881424880885261883380338565371498611675232980267498567029341522184011941986615703222293493847236139760297469916247247547682225867101908298115921678298765104646825177731661611157348003910706533888675355216616913464316585927404749610011430991428181030804772010839056126686069842110628628511130429160671508703008255668642191512616258058049615847371658970309450501899824691079167767680565175208173096276302493806172752981024413221149552694399970961683209306248502722251393732636112077295933734690541079380026440234397263256272114730166793203897977586875852815501646792778946879368941548253649558409305238840685469757173345458817767219642423262189741581460114433877061579066492676349807695646809729497487423775607492765741807212620518568628329400894109017758864166076688706095796392590977149409680693037221193042820877389644053065441511763625311850984124006905083113036077512392105162154726139895526935621715501539662956659966645078644398372522242335583986742360813188767240304595303846142399609398935718694088769411632456915649308443416438981092969016201180092076158410935246974507644456057840748386446372190758334041764795225791997298774172418704279510212693725112856032805800109157351507241562998747864886423544899312569572523974144952504341167490082156006914702716644051279992300870394498897855936032092650886053549329846503684295493103741537696569099902714594375847329572545473271389680357239040017519830444570662148563376769999734175333580865056805644039717862408241724809759642720751073287396886267949354636511526225540148202519480321159755933601143611904320618864035153137541789159863061731920371728543929335926749023115368140419420498006619716722660250010645124560732653079342567765449925729743825014579860183577111677132277711382547430556489770300270424179450400004488500050270160879753786081283096957979039022569302098691099796224905548425032406042659261074536181957847883342810308089600656406333096099769637570044929229089249623851205613409086809170834408845044166119739260175215735434221237633235946982793156333247740518202219803885466393729341237542919599724934346670188375876141776316588697911238359403103566583379658294450689766802735565074326950074782165328093895752673299749779394251665759562871499420397553435328080456582151261458785595211078323643549396466160167242993869439246915378525052215526608841109103947423013535051578761167022439627080102254360439799336196908347254650762168301108642247401190044745425806503166979992677853568273293021428497940411584068714707109681441004114262088626066004100858139293309582876809602098144167266344681176867527281889027410024419990108424100461552471199083042306197553292979426671671358352403128215817647566905442242241388524531554032428071706996651376044239147690862863072825098491514110831121747224240821197065726108496010313381028962417118811666083349313606145576610178172717739283500330589136852796586893603787841044552389018862521879771008127560609773600164340674722879122368096502234214493263410916189724722673024448480815949810704232431685881576222760823174766504292296034555051296103373100127771536873064411473614189949423016186678372454771270086133118624892002080051709169763330671506182049661119744993644948159932551763989245404751878668260673939872256576599630345198651831282114934539426889142539348821223299879606846709503681527166814078482361922447437886050772721043093679878136108793194937700589293224069298134160662901853029172541547246639371170332595895143906442978190728861005561970436050282590219543473483405366043446155825142070111469698829459090872018602932080699979805210406454151256416454516487687456324121680266691622719143125449330188462460184962766202138566455790786957801857761354154984766272448049028680501011396093876928347053059102322073024787061857013071499056065644972549662163700382905061362905620613517443315458652980721759592070770416273711609369327963138710226153539094212908007224671362411325337538328799730387659580915930363722094703027854484701687593227940407546743527015675374302750774853744664805014474702420594841151083044459874700264221495745738561350724922269653093021831365390346571688457551456177610098499420323158609459592977405709849893086196555136654954217116422548907006772815881324594246354533856886393973370950451579253276717927712268501592730963594385426107389084168843193553849796109612663888258719402119159970325809876767704393360462941127696780193260472251503187093044898462836485017600578407134909884638536597244577899994113785454173287050196196988728254379543288472381130889316158577582682412647603551004478342719732413239235453743565700453323838507003851880389096324218436121206915481633191945681260019238224661000474179750349668718814190854570326829796248244042489296273350686447907810204102957181047268572589698679814836745074857251858466848562320029469474246410667361359014986157206096060413494320126219132773633135909485932254999458364153927007672383586283680828389245786932169010627998394431577295785276357911633108094091045518039195337000551833378191248866425501981089869752164664847582748323225958428452354900407971707722573819078205904617550406434937936296298078842323524332661524914664198695612350329537845068170444438828218823652947558228048429909269011504197006642631164492391102531564654245365284239844932049001489528984110152056823510367893314089745493948995730348284596128987673811267346809697960157948710270864338936830579797047043733289923974844816619524049658422556910523325726724421299366138537531880429527553812576302340187350704505631061141241378313821356621234481293647910554315405273996596311512702616632903349169878252474792931973820022614009899774453310155881653668664464569646534283150087688358959884670727267255805039056554646990141317669305751190735966066982911078120882986999622085618212564711703645736507046909593776593779495220221169939737689500735165697847410123941415331290086950140819694148842803237677083989948464285522031067767320184478437900577878706453429089176670270341493635444488123873892111096718298203992163772156529634649530798623639520511137153670214951604882194359125810563937528746407288107881170494928407745506235140796465587928263587780540673899145482050547525754363984737817880934259560484311099133445466527596222265150793524077281441944558836591828635467029921789526526138444866387649137466164634210597420480451184103505649785880661442698736504682095386307185325877088305608901671278247136745563291769581935870103037383677500223021068752245897852805407308898528925736670749031830548284578732318344756611137557412571774512580666005808125346737495862706924999358639621930576818176357561473954800465203298107158620928197592043279654991790693222695730454126500653616711746698597268213318484517082532510267408867000163289145605234821359496965703249200277954500738273552362795571819550863392517497183635621252085036603590761383769529129895377916954806174057440805529764445579302859273454509823484839148164245494220729293342606163586496144672755041105234644541890616296548765629271999971453931140151961342005676901582818735214445874329138471692855583228929446003456220804307572698557835248388774178701151231173969518989679590362227909491465857831434825912519304187762374173594627012004773041512148162878692254841365014157556652796361142229117936753813197646033762639100670563731694021991521428585792291556445953696197650412243424910177085709563158967506012485654173889072026230298286554752219298972279125053408385670523054849237705076263904781417785395430545723382013659704265883161285289974278957166029071856355207974145534617728165992612042807521030021786636922456697507100111125622373157353686747746152981078410207682930091906889891879760074401216991418104418482040796953944356660450695614522419194323792264120152434969487337876196623342798697982947286371500650180502659616920262149834466230162228401808807288153167896944796290778423142557110686539610600686660925164941736101656140304482708269614336469909615375113438732206684902679394659440715284684619281539389254136165446137811571565563921271016575370053851163319652757999817271561859256206441628125430710126584265424158396415973725989556097834014416833588883066918308687048868638665453870979649665960479015028956819810064166479858003101777837545512936591846841029083507337002432009183585444194663748148855580924095047713011597516414380135217987729863573777987264616709583194248434182751266286074300744681711524707709833875795923725290104220589233664124064405680239858953963250313717567178620982576352928707170228726473182715782183558204456409150182743403772121221866756815356469870563305771131831500761929024694505836428751416942577103386719919623852523898869036415857566889171209039688362210120539835520804853148922380704869256604946730284109934382875445911431203827577155141157289183472780725954374924529255685473043734855002936511863577119507592117292967989071489057455971266722839772209739659823699486617292709749249989281734482960841234173005259413190245462369090722978584689046342298163027724562337241095996036477922595854619604434082568331467939207161858511411874535533033053346030416280914934774665502300669601293985569415706687442375982466119180306696328153770661192636477235965205502999469956682709147622832221788278989317818420691492756895253737310966817009402725727431735698375140281967109802857180560678956435259778327592721111185794368106228326939645065997727918192487588233392589434089800474082401068206935914625469242672046719380142976160370547227743865260289456536320029207903721749843661126233650753615785325864095404225105162999196111037828942726223291050270594937671881514542988540408361785490690026810711284953969381478637267279340298055420526149435658449346853206546511095608453462685170059077649489257215271100452010369131767556707998235697478170459248733285581448122294286102763693716131099421457424866879107495856417494874878767110284905076089393044135022012709176419009952029892963101337733692111783330120697650706733349196911995003385531019670596521772249271327011348737536044526977461344700731369219972470910380083942647222106932500286868990316114746108008606786496290167682304985531315684080635795729957727081404298297295455853428077838120110270933783254845595244596118232372767577223519435784583943592191280404834103696898507265014931610453228383386424717767034946420576356470056447320344812473828522960567339543020118976406477362738356619197584809690610659459991527791349216236013209068247168947967255501930987812498729124426813334896811660471263067268680258563116894473959154760948739531746121490006999222045019639550112913841371210835386277628338881477499842292703876467030639123221514789605011453455056446293017485989408528091801437739476856180574857625976387595743300227796469142983142615087839719544880651066679376931439686874341310464152153229837751079711594939875397613094764256845398380351133750548577551169593798278757616568537431506005213524819795014034282376446165835676202645467417687930081071218087481213954127276022337065772609387835995382657948439769445467280464899709769795021912452897115444754593991663778542295480040628533927799702158741687591219776511225677365302089086584913003889616150343776923921932492965520558370639747559687235320398877175969023546417169437617143833883525323477802154312720876545547020287536840973235684620303833641556551155174144450365894475256921338648307286370471138385768925581284089332606528797937060437239922974148667486186581961756109569472481302876104499396818520310423417243935307408896214553884926157775930395056118429752334488228389766724977459195512643200315386255379409878112608582591106044500762616960533495997944610413129802347607335863332855966966723442340485158195107685367806818065812926401997600082838592634056978426331797266537966910108065910211534585303654404387625462365674027104382425506071678174720677499898129391907806458457172645003633869702057182777789540026368920767513683446994417520381100135640546959600474047389939885976996054311104881451986961747155724378734742137432268057526709867727616870332828330308087414067461129642372133211886205659407391570569491956648695869273156276904685200084232288521867380026934274502486987323971517269682088037972233174655529423365008466104455097364513326929042085919694425540711308033640230119867680126580319169059742978390062700728175767937913258337787292714995651852019976992328588529458017726945990773009656475643208603475338073597243888990861771108181634017796603851132350729337470974378625451969168244479275192106483866294547121644381729634519427618757445436620443803001931030738892317565708135847053635056866248079949997522297420639143279140061583880233289781692643578993586741140004795884687733045039748211303389400745340537380933602905095560038025396493116518594370938282164983453875224404559858275131957305988876448077437538571890057510163724361976371448839865462597656769796499491817564587891160564669448978861324381552978616093217469815078673142613717328405734582754158092513477413870011774940307691941824315064455682957970000952779508213115864698110258406439564476470516489375771488867838532839941402131917708638552431668027392167293183356810054129191835124361053913824023412980543488456599864901996492791351880562601685712502523370810093129816893584745974918548372249840185394317779362718311488705388465521850345316251281516223757613827149816222359255561327470450304878562614180430447070047681202511300623139528566755616189639689501476913755849324997314256899178244675443428985984140876856233233642930140310166696726012935927939966043291807033536196544915227143590737048251730265042809324906408405064097236837663695256400652505908951169507135644273012455089849305659883125762039722246822172527147331534092768058254362504592861482614527121203880546064368131661877105530151146435855905953772214594029889191359932210633224684729708039512783098408120363499234077069031656493674603626920063371148007095590024662211009714908497021105629235695040445674717185410480587833279481614434883118551294887212765122939596132820348470418645708528002798774501224377860602332600410817563974782562834236345692374372473281897184024671496715178733792646568353556163892927904469985880364135303079113146687400032263650904271789998325020646239612470645935751292171891951530632876650302081562609746351347735685127595216544727884782167628601627333333163151486946882189155352195492904118162213427782217470163374598310726204061641266645499537169233889695767306005798640360525550728714898699026362050281319747778712323054665381521528507454830442587667091790261335862152721670132339231512041304938210281075402624104568433726593524092965401820716679614205200137615332126620271632827094753344634926865956422287892796905167512308786262386877815083060688471697311055623190777896009730248337906940001091990202465990229122549287051302780594284532315386729749282062766012823227566481926263656958116861972399637862508754555794989403660494991426965619814773752537466064381422674518788451549427781490091876889274358396806017759167011449576592894816036933890668546633725387333301501102051253282983931482448731694814171297462437554380489907735002367464728883649458634340321938163892652859309565459761005224145913315822506698044127831522122567896542514302133183880740799709757178225278838873255895447088306797613591664300385175317144941226359803353948464699765595680546142507923174166725567160618960454442871411496275737134860305398709379865454525272070665394975207981361124230553690594619459097519631906424386786275561943039259074365073397256294680239140432157485834868494632167805239335949739651170498002343886328436243762818977529911549374767072856828445069645686703890917473883704208383623468713755290137701887151369759420930939295297620753524005921875411590884167248660221466651211264299248252217986284447184787800073720692281190678420057403875098156313833676639156658383423832455046388546020773936535988902991903697829480171244611329382504165785738707042189462069270953050779911663786364697447616111040112549203704640680925592597421654857366577472048087134138905462487718180271735425908246105612917475058461528404956353950788881900291036183377590079335736823340300075163934096257692647612933942703372316651702532558546671960385811900274048978117054936551865148142570132462646500109533462521784264388557020265221992227391277312869650317098334933229975537495956424577972525675358617721608424147865649626727371310303685536902846039373036926560738768914882226343031196104127067463826879702217054326641157162068658856363718049405334263964190377895012891568691413094280350183648269100483369211706070095385457205178082417974959114223058980555980053016055606576999136569564846944715406529890038158165649791740065009268858659048462362523903810816309378731173608570832471745125795263631193019302166479117580003824191461891633075428377003667955076858618114711631999332619549801880424374285953990003459049646407018403163701431295038567481063768021602219566538110476464485958514993067915693070549473903082434056675936410307868229339511220081113683577695849511964768962809197170807705192596188605663794277169409794613702584571422755722893078001215392950708669922786954122657215616020789086985041935547883747466440401929111216881659310571413046534341369449865172837536481889747702562930354798293031684243174178713448702069318904247438414726172482272358576201373473513033650642663648729211926454685417238331496093362851955789600907244305268336419071531523247120272609971824847944246303653925373679408221294035078597384200643575625952595144343816912924535844973726034141122866807517285498625533431707633603846759583262068669787690771837216633334323957264634452627590493722856584482305114427482226831901528928568770158328466252067872155168145492372481210253158671629932777018120368731228302511266822448899896825062932789438212526299583733202355643712579775798912911115327166218891179691366592791675674674076670337107945184909027123057667150112875410002002562695781409931905547112386503196867045384372911983500638668606737457815030164925967043061426104817459680957924316428942866336206715712654853637826272082205168325350175165683030949299606984718952954620378840222948282291740137066036946838925214441842388137430431074819411899242548714450893420059316505586015282704706995246514887807666551765934440543751768544818125427413735582416429593558856937739350532247733094831023116116304785645686342744047009718062002285988586063561526244053471217207484909314189009355141338811510299750624894522744383429423911416377593099830953668248880169735774603826050001257692105138737024783492785109090016302476715906324948228931958222807631080536269820916018248668348622839755531127610985620656382843891921606495036797037011736393671202655692844999219696737827525831639037086116867089923112913322994580965102419659886580984261119286427281925973086960063818112895374174803094389019704922634734336546269123675966165776719066637308436168882338429177914521783289722909128597929376193167730572574703081389622157980409688817261012720339586906043408518924537509778576756906179005078023585899928430713013854571754324797774765020104183958995138225251710977093484978990750226203453551130458027395425061208756092718353890272319637399146609748582656390328805620634476242966418736408561625572435503060738914891772406420827362644624722059923096550932685183663824863867657195084728984354938128551976336131100914270061501609115835392565439274055980143000047834786025429712035890730824757902686799047761456449780771721810315475418635775375729014842428943804831809454553450611137573804710071701918297938722837365151157060313183151830370740741607874174490905640615687807746051804140653440012459065067365869661627042731896112265446649111269732993258270749808513039857302173876557463825367541263100301420340246024191409256367880101643685134252075203122518953835693974603734901112552498493843395874448602391914879451592458309408519851007701914572084109102038521977265145791605458718611440800108785492733539030909959381017954612477739700074681961661196754465780573840774558219804801753052536328114327367267369164372160025068014884328061926526565352598678892976604215856952339375042634640803294483305397739833459600834096476897845639235540152085837035123124089784756540170321748746994479185405849164158553491263676823448363184500024428592200579678353331112256063816263541993257593954425441487039052157366005661169188494188948666242860026416988446458010901208173442846418720130695246463047806199430781333333264113219193588868145793048246060663250878757152272021117144100819622966013198351981342528851553514560181744744114684777160840306356472900790581512477011173552495260480036208339195944204769658265513560275030100589488791197853110972128825959101448809838717060646226770117993008414146035999409706187239592885353549595129425426692623311114519760029287980880120629185407011208903686859177057286690952249801200247226665489665578702448337097172335345681905306736020418689456308464060503663015731709707302708291687998300861606901199607394301189139043633024077981543597531543264835701988797053797138958465197548740835303574922727960020146289339902021461464600469510034780215501586231609828470844701363443689860659715558943822819486227296681703349188761809176385661828815319684110089109165059267838007806714506600953091063282020860783513286369960471389337597335265306246840003247808496279631185729036036321012595827200751178137385724592015541350398781734577315562861015062849714406037678721651095587301756970217553399995689305895062664730770653671766169853489551689511511841714763081918786636427560561045093073371711028990397387356633250770250533770493040597012338391555928649265958087329028249177000640114949971479697439220578896550219967833861710752733112570012459664259333083856454291257382386115617540764726434911084884392993147729166036206866877065386557920556212974683946260402316515378283215072194431662041227518586476389718771136755065034225415635752259636767321906386626825001811078052071269999796844187463295657315352906383804104671739177519741459538383228946038358928598309518466025970141219885711054542208133220092656294856130396356633119359169247979183660086837022630468849226411721978940130920438567225567993023163891742678507126222506695206507461781842270130124100805688626302863061785061273099514420440324450781625059190918582451503633642790686478171759567072151430000723172454556856967966955135291187859452150227037506053816565318132976440183223583744712729944763295811584853508689810843442675018424511964236326250185874980486297245896333835731016885966969611031971526752041601536501723071013768879344240213032719256627262082912005538724965689291440892786289783720015768360787594760718998860155489737934454865495584838373629385270907845963502083660601585733913682538983780232776683920526366334248656827167805090577257956112539931338666000168114396711011127848099867088354766026595346538755173341384798960461807243665642005363282008073271579822093842672536716817284371334209119100069933201328772514722536422327998450476683827499544637963844732331153959202559123325141710623014077007278009271004725305822732911229951574474898908171206497347273766192918869523852172559752331105325448083192840385196706679080756129161745326348619854949374526139407500247009963497924057111554400251446523572882181064557224359760706337477316877760537301886075445141907780542829252142565920222538005742451590614189692763177866643600514119344278981324267554905606700516942101562959326116810114181678097692691340306356057043917430707690838747183038563141145284721451477376219961217140037039139214391125726233491209321368457220707251080384697776289372837129328459089823497688813520591141940818738014839438753165355325831816758767462506785448117061830808189871465643013860310923112044494848539141191144307663499550659626188898822302084855683941546957499308661376084197194734818102346646784905286366980872893385313809010901552236593665111670449361871493083930505031039464249608684880726514593493025942736767419255040160652789361988905482316155790212605721201544814893333045914581861223043627856202422680961033459487724091564120596324754661506931751559082229230092914004997492894091474278865361565838219900445514584503386001185921555058674471890612281342784887987761742068523231262797401777924122895493818275999571033692166289938200921516749623434765841220232254593328787729210142742744132537375113111435818281011474343990720170100545320300331925689625876423845638251584536332995109300866740964551420378055824073649103437146574375693176906103691678433066891362162241314111416892473140978152090728250124354105794184379644421415821497213323859831745674066786111497044993807198000768936945400635266549913236715531121433979941417594949037245401560319002338003790487683881578796758243502126703809407438332158569168806922978076702483109279179776814043488639768857019298790897492190594163116064902420069086807875126743963289087910784652037947985488997374280570223714895864928396180450556790849788631325267317723320479358614397793654090266356166060153343160114489063254914711787584942762589020415855220151024068526795969667980787126720187192060344713480000663501258021369983012372745846762111443319228691485215177166380422640948878670234248483319632565352093830335728310954172412631523286192376193734217026335878771685112045577970554844641063713189324303932549904951408126499549627697088671097524075767112665286784851930487033348489493884640793361469187350517736128714701472195593964279844247499671220041584779509776068844027417731748600492274474648698006998159613501538293984503422883701404441378722669846476721155231385483690336281849413786141764906525299614555287119165468060369264971900061629892605820764380055273369476905802380753689607818748759379525104175816625583501480344158769913897122006778257082891823463891915499753943958164496864894661924072252980107725539128437019164651324925268498275316671647024438979190083597997163684152005982116402188381441708662834394832384407156161196582253105438326174180470891413657343757436220838618112582272005375592081876269356774323442767350048856653258162678186861705705753291769242091203630988530421665454097393715094306849620614887022498726145123910946579703880572454603696597934305632581654654897931321641767237783146909593963020237558034675230736372114003962864476510047724932137224331834756545026771757056197468327576632296802663795943830868091544572575687853993280235137662175314019503539701317492905057634454840542527915215286139470201498207638414913095863924721005774508023354908751114040907112402857382137157887559247739007740045101485852685986596265922356413393016547747071953018208011419758700997038002240628611242390177482951042375393444229472542131526330227653572547918921311644245853737601455153724078642123219752849975938465241607748081962118691940361579300686445082749405889058713239347590896293888132871270693405052478470651006888128596089777856404219498608681495778778467466379544786391290219103341799171982125082845043471553861107440045649090737847838444325235608526209999017969204042909490232923651408136081921666487909259833582629393058175864061588494102212857345645148210126188883590898690975228051730142824234725541827012977971826896816177197527775859201755631850223955893795096012874668622171112715529247054526670885590861838332799254648007513854659005245050321669527732477430101213684718538857129901142845936684069289814269966233769333349092778972841289706942129189822238999369167873896951033032035117035075821457439938030723677503727366166055621958096348335064577221356065105794696073231246586591350920282979746184326538760920220748887132868850335938888119032811095677457693896232061158987694815194358973538058422196450536198321725405631413112867136307495381953959672657603225655919110550061678211571180349951181087368765794884137503910536114313359219150661615862582386373392147837658964531199912664976841706272091854160954842208391795872737034469521232210608186867814726455148587602030323723235398327714326198853115077067122479124333240508346611226934850379190147685995849859823741128503350925846012898871691436800240340990274183300285285008664994681520874831871812979390996740157197780896009408316705508751876269516181133393192427969796094572614586687767069432623773579885859177402615085736869191813196741936619252148893880144236360964212909547366671998214840137314295544649059672544412511108262674201044433023906818597099661179917483022226693387656929924693056237408174071601819942783026766433444537370030104513921122474097727234601025091600478599571745553537975940411319311893738619084678216053055205395701195496513523575894585934897584082782333650649611903507557406852349409824767062779867463941389176720700564980217614425614686762950490363093640705489833230056024128313751126339814432210023725285850564115445589729306219367337899320360960714360913276013920837903286584236997792806398803630229664581390879947455195415268703788436845576130097556099811160760440067569149724801014860304513392978275081533334595206264421576053811507114581886992105394426494269741462728490901469548541917212491310481547348090664340598274975144168127350146106417098844960722606777939360705398711966662851993981516631116027450616570574834964775582502704362965705118699205841891485065280141667839756098631681797050985931934303310891981138243832277034322437780434918136597279063770400112993098786071122502395433165080257446503413047487484573778550452051481772284105387810980458052741123081677792514855397189642043172680078411394694294613259553960103337711373231847848553246430023716508808959868299120320615684631241520067514081393263867282263807812559136911926060280005608447530423855469726332926822712143707139680956147033381910936990608440474311738384307269996658013068457673560825297189324628041272463429521932904087887355212422997360361988362636482646325330043918349447924406942256501451252803410287228055325615532283882741598824643738109245008466443921500519321822334346175817721756482431896722012935098344237058707121317968843052898435822726490258107893157942726207081762952390225921510893438286878908654685850628619332346458917763743654796865528076431811994429106120765208196268057717310631329209143538328959476056929128872269812716156864909993007246943460115781939368640238340139445197677361136653211417170610980569422531609077954985571957105265499523229295042272418249131762192490458206066531675871611265407750626377438161975991278570489018300012266841582969472274774267690057728682828163614825913151049062356722449267330123908079676490350551437609448829804926046888126480669768852605156162211111247417060054546520662771853696285398461639242334068904244555707791855674442364382372954534031470766763497699188373609348308407192308343449019316136566363189028118464692147301083652194869029229829635482788525234134174977706100624372987695604822219588822485353977053444494629384871696001864475701928579499265017188609719194576525203348547981783368571225300511601718672793229952976090270843898864975367148514886371340537936151167599272509318868700104089604455040579327577631002502885137765086947092622747645394954386801689191140247080030594806223171593456619163303371590274207112568858920000284171271499627809953329732855132845590314197394109848057018139270243354281875499150946577946875472791021538862492971101255160622385873983972877596161827683235940831883171225270889957436097369258431177465214584405227711337035793946248389065301041200075164735622873371095840066828810511629661000531035708287940117361296648411188986092826780409850457890265060980044010777013451545896113323569223177613956770211486632866501264153611392444976720604894495918249025280195335974477967602932795913163523976824061229424819600166141729814969147601027475388664759961133593660088497365516954929902661561888932514305783335517426457180539100009311368187179829330298609013195824499410913937613796551060026977421151454179418855484017019764395543802789005011262188982748319023300640689915836248465247534698179081315329370333680287106307161758236432812404424449293329446186632516311043370910331907936899172712969900548511983555799800053398404357641704300982482121652114474783044055608874151613361362293198259333963793441968925194372423471787819452833765557899293750697769782066580992670313939655806953245003571471088157690785438034580593613029952509734707638688715345178201781082067364912255680489544319251809436692258362414555273532862667445612377468626184959745484964919093079971144025988681430744188206887333216562779931149743522787710960462339558282224955917174677873374749987804511319145057010247641796335376103350543544481723059016247704022465437974182108493759634924023825948537356652493554147019618496533209300476269156879198984612571624434239571303968199135084593575533286702973564449674945233324161475734790835624512941073504766074668194629609064519768413998213371119697196202382739495351004545713663739176017135371587482835308275022005752154549395461600490688119039108406271572932018256427272939005070826998715195337982583261726919405481804811043639010862738125611653951742398575219453326368457697484366373599806859738724803924132754209947454710451796105738920911918092566212145038322646791546744478490005681443396437643048989357446246963793612980418400760633450909823296222261049595104038037465626935535279999672936889170239664941139430177257082167067246499699910773617501234140046578689758092393959659391574756281991557653328070426950502726910063246855321307801540186683471742743398095844881905719768811697434954553701477172650101678808462822242180523809721028143696418080747466246826220562657234267102586293014469226491811972755505699434961485986241961033574758087943969549229947938755743840758238031777699238499401097691206649367442762874982344041224310112893439188929858100686936558016140543879009606865530372676463762369170295756999934190827967430981054235049626033208271978914457099172690877851058367974343357259989549559739582418836685446157740648045149957977177544666554438029726270145764968217160807570716535205934925905291042599194830592701718698153405689241575308826198661436807101133378275001729844703057500133471843104006129964227448538123734621086943123688957633666219203738022318009082498469767948867454783346970524135774698799560958939194092643621936346950838809209579008403753269936704655237534560919867099311100135370766350292179854485552100619771136894710779276802429609357777202395689702372932827462082376917469071264857526362430130836608438930412172778433943286634124605096490063838371180151474539733500973783289974899536843210171085079209523503822967395916720911701707803935265104791176828537521168916925227707191157436011446029715669398747983266970134258684952129113512593955746641171840002988719468433797657067456814194724680439470991497713169753115318474252623808620656347744627819827871881216182365583197169212656554234189827774026700822528586419179335701490588879102038323412831606692053762904981232385876442460129343203506975355934879609844097762783233623684302069876195428734246025954856735599013787793159162532919987982182919826970289466581967780848367854838632446709817083926397180459151435447320256056934891001376555558524135060009420764618683349384847462836088767783122896937675462339901405514170935290096011461970589772208347024260042070506135525486732835995088566154155803646805779545164367083406583946176107958704671648234502861540178854707066498651667391667940554777155618322864782141267292452755173945248054849188444528876726460820727863739636046640322065658379248943495661351832670307682758291514772788961188603176768160805639904429567441022108279036931668775421410209231721422907591307385889992758375899744458470960242422200113515869283753980791244176559175122385436721273466060197648795585844213521007442067870734727987367973736084172103442157930432681484630322968505456985357134993610674283965834198444224387087886049220185981481220138001692131570923245252893840568463338165459320576325400959258889287444672037021310829967586556599527256345522041904063373638050240654308721771622663590078265218918802442817059576315448260869537632885806526847065146782958632912186201882446910973690959314681697591890120272708692586073485856908606162745364673975183318621749308425957565704069430325099028907262095476399383176443605117107456225756018658805593791629473053904409718274243173655344690991605089902737693570430570172059016178595567214404782092827944203731772367456403563095884030388475860713588289594064121797731976057054887732354671057782521541393643887929081041501098238019495071427219011651621964062244737450135862011473634300474892133898086982119077097015965458964421073945379835856475436820608606595372541887928516602150749759516659132318126622300308954607217971666983827434397777027579790366039420391472444795272683662647026348962823005327461059728662206178501491353764130193368950144471755022388628906961065533318415507042567865857220466219884848136040367692752217356078455914637458093271442829429570130018507423031605144965916714556602692739402763014712252492458166314904220541671959738980817224707803985736459881783115228453774565804796254329661146937532188549929214570953223050098445626843160808500479892478039581508229583486430873647759451957423811854054933935246121427087031920241230464711193450927090358442994731802684529427548593368089609417257180278744061350629793816465602180220626379160061432469075525463231954535403562758232956320744392788741966395912091337560611720885649655531285031668316012328963053508972046163633058884636765649342969635470569493115785855917324807829903223530058280767434829027218323530961420497518154389425526984488211998175179753933752892736946339272031327424303453395444070785832171521236774188608515428053449623757264962694159636807908127150450788639232112544136426717959855822839043322502513856818843996603497965040386066427420006700502642522295445102525634252174581190595134111090206957508346939338586602091791511659162011526022381072714057716929004946514396601507909672436089881417885500598455036814757607488152852481949972401290418985289687868847733989643947567060278155636762880653971129811925970414698200904663837864150723309109272342208546135307704455357381573368953971790575958616258456346630139035528337700064863220618859044688647494169462773155114797881506907014939408502142705781956596454542388971594722166435966584461874106016680743800646066150546252761495347116623421982418248756386751460121002678666886304338707533567329294940209278758191983468279359697257288112782417385731750301890871008695818033272334496750667099488159072037668249847509865521126029255069171696355572106573746437204459568744552539595573392927269188176458052528058217557388337428565397244864202088322914984417460382992982432387831082178586971830966502447813280322038302711085952029278571617154137126730478335413819112181880135747212255372354048854696315072409422564763282972383846155481726884572872591933472225894255677218354990039325177165912831982263055942534777485867064923766623206381704640951121127543859022465102205482710506657243501710693271546257512537972730431006564642217194255387786492117520434835188289528750373236197915787114632040460401260529633601035854414187346030917045669119322269484395214544629179348641732825206675459846620449990890655960259584309919880603812502892560673273163279742368769937085944387951431286544903724687805649306660220697769059849346412642625491682303368823229586599855932746189022396649834825575167285862803163495433415283632256104855175419249603947312927802016175132333366133939527250088170437340039022404895165385661560996906328117743940864690040229555896408429911018258388901900186366262704029961819388583615084420150900576108378962785521002693818855343305994344558097222007313133270919826142733972968750751161101411961573065353311656429182904768728996477477754305504225958341027226749095515391225435675112097148989869494181705204960633762721732742642134164902948664148863168532943966921323546967508973150615599085106761741741001995607300142062658151951713227966518073040865567232418342653687376664771560500044772317254285992980066261108788650257802081968685067948430126797391747988680702453163516326103817555971495833821518258244474549280941008373180103051714022101492229634364612627368692768963791572617087707000622454376248137280441473869519513256205760672515863274805145724751784273664575912313810241148863990697219633498557524588003761502194195694366662377828523666603382196569565183058338888743541018003803636031770285096495884405598957414341869904906668529690809681537022488552742746258883080817171098074806877055302013387683134656429175556477288875719680734113177945564697173997190121306042903314318154188915061870023789805064626590622578464889597203389195682400007676766339422341071528579245215539468495164520257144709648726418480891491206691283328405103673396878461797406775941066217372201887477916729068819169078011373501980734303151496476022342828340208830171509175844761286498226603154779062818295383291357485669847078301804872118726723550058291648266537313481075162270928017923997229139263180879045632043097888687420411939757289640174744049291120426930104484105785361159572196443255175633378327338794678473258142708192508480604274700140317818326970177153021333499287172429755290271845504297338300378134529632058920395334086393226583605529768507330101441026883536920305235661541415095791825073692250276131446618553598932762632888869753527087403940519038919430868881957544844638630385949041361709851986822160788264795747407294471706384110416129547341063038091163988633167322866655243064138622911486599785771904520320082879636681690350652945080152790552549974708631216524816643033785739490017442444994882568937701608923112600082845098239777926571584417563547993326486379991487519207987206033456634376091770997011380802482558853611577888368563976961572118780402789047508715365591769507937028797457890102434852453571275200788986692410477357560427339900285147240314451047354560790567268608588132938575403210521654617975488386885376960855659663278804438021907007376284302178165393986717496549090103691501579888470487521884472988099553579706044389607938309542544241366372256560293735768884252759932742078463700852324697707707035268051849124378216207901143676336570888508455967962411514488213937472204135359857237437099214792587390952966337406648341328317190009202424101057838976864803872550776796401868548156540589187493453243087761897628428255681124181472612148789938448130280023528750541506980025364087528316212043251789815852193780112368712729286507547016985341873961221966139086496612481232251313350990861283310222276268727375335731729060314277081810311333138827536339722694044834918883375501880009659003574341027709850623012927729194978330761427862305906209448068820486763303673702608019939061050936638935845482334275480408140454997313766814267751963149775653461079593496480637974414274736036848580762245209352862455051208342084897371291165808642764722235644899941249297904491953943712722727079591675215475990734099197198037509618692844217695583768176499847729954970199997341286171169815012963999824302100735353871685158763358312776433658821303905014960478329642146973448925202410761669872913109879045368107184066683477805052502576018894531209506108476767657767865442027140934831507160421245899181784830489993156269818531905998861992449524621497778528465946581663546455919016714082269183871021560443441726803679581858568706137174935048751028906530933745001846091349878074835989628096506619560350226850954331799398446110075199541370979954165861488637821702989980223891913404938113593696671566058315995397301483795125620090307372024309743648196946070399852301060123575066795287336139592997963256210824159647055587331834949242767521325453185325512974764828029367672263277501405007488627059145351119064209212596899802364031539151155395834987439828735320801575233571057632078204915457557641903870600220297425266920314861723586311084109198764776820021736156329078071126046020727320335247847249347392216475364609201049590028993132499513455673795071442341276030065674992922274155934827707338622198697701153196751783878976802037243439676232629617447877760808722655820279700527830610535333632139446289067489132030875440162493332746633484843524695716769298751547784413717719078486423724578567229847670236189068146083390067053248489269969761997365847655120469293907370399281168118161854620305064787227547132759359433949285053674280662836630474094145233648176538823019556142115506493087846377072493230359765414313782239842376908474968590908108186945528499846582668743349867176437707734855337782278625117499252418995829046179339312844013552959956096668956576081740816754612246742015343190563783208735393066838426579807741007530364342900345682142852248797432729596746527011125075747788380417298674184453277037183662179904695722587024034652437925328807688418532360847493270436853208024683989718763075475449687871987563352960103040919828768939788235516627839352429712544908248148316109543128055623592233490075947264787457995980803918745264808777510167797933707536131876824070159739249167689747717571468039328582572247472865007103451085593804097489355017099455907825154743144919116596431799874865636128786262029412208494595001553468789679427631417672650703735305401267956365948624909806992403002056884416289631960895797449769804635086468742191105615513756041306853512073582573201981249821093569957424468609913136533160731110054756720429186209022647490872570913717726170465968885415204703586700251953869975622114062093573354899218466350199135516578858929339965904339449705729022995072824209856590566072347964581273024175765433184164208304192270523820304957783893974876447552390276722378737437745372275454533718379256560691695903130720506606783314636886164322495111716493512352997551271216927806030807822825342073624570855127425538696076904333349020876153455724000357025774281929736535970505061269177145179826858188716617305105160091585285983303792584220224839913900504308466023528293105899957473705737026964901800315881765495732915891911257403266516557519753547670278783464627957990528128882046061936801723691075775157078922160848505083870946129145636509041862541316358904292120153428378749442142128149477189065501133209145488363218926129114265978160847925442830440570123368913274346312933948691150462071993090356646494433274868777166416966896302725826871698956564647218649247534794988771094330919635706470502528683921021472845128081502034319460411926989908661058904623646900539141081399375491953778931678471760319907043594174350169111462143547976674559798269975243160576830570923964838899341266433476650269109908755628573318992534932419785003226604691948507459450195577556890630369784632644906224060693202493397702403784871536017881980965607917416742032037692428759802355228759074294138125172720784470379023785968474568060199387194619298997743228947050616407154684730697840176224880517564106499553735058257566334778162774158095766616959198160168535892030659388846809456165172670378189885764850129970641072381010909186300502469014362294877660521939199213183729596858543753717262619151024575769071711655177503650399339225459889948640596527652161382502783644007908727442147075524892928555588865304116058581521866845359966801424239279705528797889733872875460032156431580543830629519181192275121098263199814414855117816929443441347744950732607826048472910697360911382317411833392830775570016774728020014993344424025215586213638019986468290219001594352082288204547818058121779320647759306001499358447458731672267798674461895792541507481740612990749031290623856768204486623946829285522684756407840312596236537733872124595312776359732185653148657414820727195998836630933356514851068834043432575857695680262041181992470315346916982994395258518477966307675099596326417927073310559341900626306223644304724411424321247786243002228075565497087900445816957721681309389876139251268962099029367514952426533460944278311732208536672069867264919342781473202609494644978091441237301444270141515130736088491023588656957710814388157366662013632011115053465595226350792479284100837704911232120974424991923000325719141801748169789124214818141374408187505520503704896194544557083305293497690281391899165540152464531923410514265369717189690840349041972139898990250063971209626924840043030926731533955127470447693297500409610740014012931388943273656519201765509262115421959869131858857203658434719802268532968986414589241020945616790828066676010457297411231648602338804260737871139153520809036392123738478527608156953614082215881533121102437818704629212526893451494837767491889354267779488244036240738045811977345079998020014472146061327369247525339287237357588640556598895351421847706835886570924304493464718935944622250581920006088212990789162239146584733504879054688281498571656753713682758704313515796116545639900390618807089734704256537346195914528059111729600392933544204878627547221726604348139981101771034636579893305833259084732014096866493878276910111419135489666434249769320567349494067636693826849796913516499779317287158416032230501427155516945154698274704685326580931876417194949592952209593224047001416888286352252074462793949830895780808880085843304213215854492729490566884716447147099679654887424687352501693717248570750995805235707642976829937581561506928545438922452806733694789579813305958804243138105905166605390834629501713242032539599892026180149546978034490245603352117947833408396573191366436045611618831349683852478546287110514223064493721181230193067088645256779080579464758141419396370888796489874498794196915358280622578407188841655169046924075169395008471487441619457567550559644249664580494473194349183295284405743169702538901817084011983738522459386835630310035961647279767797794381079883892955421743297115177233793857270868781494582665744833339584725826972885513536397090585821010099756988232497607686497322833040711109199257557387338357146454736250903935092284335850025335202973493693153045201719801030349044694182258392721919644419373409240971182867269574735276150922634440920653006836094882983261782711875522301677007294788080026326425407806321966672011428663766803520240699766042819764174254294775758016997211003091765115617194168344316831751712262183451410294718793879211459159879761075994052889615234797473312631584783952224471799887959141440194763706253117659428793550854352902751920402231544735588577587053668758082199384669566473903518071989556205345331060014599203673693222564595720649787453669287208761110686964400905250302583080333688276868980923351452964114408678332340632083716710058659385605219557828445290312324705011536222506822500018131417949870641881358809759073355171573043187206259329262258091776187182830907650534464335910687776762828655048125292097504209947431071088522968356784225758953205293517642479088911421045871680684606620723119278397792441513685004488879115398555523287303306663441622375337296122528083360875691804548089513341924245193094234037962602727141911052384320676678996956881492315578443228481166687107496432829765051022759526063063163191969393160426986294510564189791434006863643122324086951214520712230133092020890352054756813642200422435990959440905816839037615479569631743087639971992479295381529472609527854489394729323321477786612112645838985903828647209824667399417028319199144030644208592218733193403088301765554568300648999788336369724378075920037252202720474432073802339600827005850852816507209099956058750581249645219909635702248075581671925683430717238198340601912906704849027129118598484608501033084986139625963829813646687972154933545586535518933820989464163042284090013284552880048183702593828178005595821450187242413700653874476771263015837227886788517466843278836090706080275704222473748611403397582886431974268827164969320042155279342960801008981084956513915491101469656466502240976964985851283861650663589022015513981987603773570328043186642247267023037002002319983422091070806349869939807273433860333282987633988780720999201182086292496858499931873624867485776582438427355145171085641427890121999717479835090424497519114859629111144615938052817468070953780292646887202752751970778127855341314748205651165940186492000249981574974128317207473274745436429827837979730722839351257208872103018056593326277965416799161656739763012838161063293736571452876168171738964031825074893750995575401760837919008501203728221539658531701886815703407302676950697967551723985321957367470486125939906610748795264902670474110864873664256761901634073506349906343477035345641725338423903766220731446478438646586722811223575490947157481572487160850620879935869543749631584968056694060417142742872205796685681151508749524503427684220110959730730920770881705071993340788621795135138252757384190342029123000666009289041356693707680854292328578455408167237559524029765126137302865679076805535905544861188201798540709703017631078236236853948212234230858175048130601770943561570932050107532227105658222089079540796241387654988339329461345475842738054937503941019127594638408418277844815225225160557677607907130351793887522760265040412686771712933218768552078536372374331710426437622040434443675096550716288738731556844433221756290065440201962345518807082008582836433068505304586798878321513153949239640605887662534534660300253981153405733650112422780021012265717930081968633302246033803014901029488201314586161302310210986730195614893784185433002418962411345069745536726796509826786673939383632921100170206880106265117873697933051212934082427087222522287007456927909061663569984337908999037297321563554880725372522568160442194575248796828399252057685419271937774751194754421235809288463793472247122174343018570203170176639700521323961279724591205429699488943882059876863317757773731588172322218973830246589244965187616415644512198344187377484105963551074562439018275354456469255246159134019690593578765321608305359778966001393440306151504755800306594352484851598063121403421536762196464041912629067095906066080486706181408192427292329160869668828719984156961648011386099192714855799991786585917282435736712403420502932383153480433526329845208431511949128836038883100704564526500547441121440867251170594815608478098208843110235421713268419498630725102881832081035460561643413000971755691999105517561903800847823461792438160614527021760089704383451380007774703635000800081262633734327634466511638776805995098596128599728675292703063820503141514904952189571695726267143046140995249459353333562803381859691520748829893221362811497975687248305809037923568094217988709239900831643967838566038715535489164543128415642352850113317281795846205436436612346324314258477906367185808106093813950911486157017499152465137504420766809905148442899418885130714823452370609696556861391777403755454927071788128371881397404359206612751106333318000837747359464804961116718048873136576267483790571054141485765764822226662286895047749989246803112691548113858507697364969083171798480360982705262170426068460265121089588347120605349592939627727201064654505559855398124492802757721922252488328927608327023914324653145268541959231651412810517097224165750143278410724771871962552505965233458363194228726697866174663817468690953559872139847087583809580069081416482893402231116148917062480923761307661349718578323112233698287486392386225082617161421865791625209900615629020040225545301407154629135016621187632689667961859911587481723620202869073823315345496709659593154894221956669815134853451252837162786684701634404846118816089106383532520308260510589293352702520628474341133632607856428702239883879383964122215379201686467036198114562896376292729668844466301929696317139790434764223949034090484043541150203333973087776358746327722627597049814669343981445012885651255633745304412735460755347931642758990914542914046551656833058219703967700148977089805324514812002752477984258314087343721678670678909352762041652097574103070710421092876121040145197256554310975123692948966020383954004547615874261825954075584147411765811704452998332708409401385515109482243026449760393951759660747557863322358472833727691756963867530523147708625450702682040210765514030977476092216030224321601865868259688266458313042328390172917960775370374864324744795928743673610099625230907770268205228437900718264887830218117869543728824237421043157557878197982285310735090680137711209872871822433932516108603017330397128903468179669440817445493723853614471832711137084783398022421582719139112953187841167634798006426964777893267265797178041656387204560778263550158182035494565308829743717431787348370339148029402248303766009842173789199785108567419609180031463793311112122256198461888285977980526078280323096979971539060160158440762337869228627236749218585012743253591117279845282191164267674045179242159162126809366576891398055292358451355911543554603277872683459474119088590520842015357817282864375658073068189462239202820054913457630701917509992708017707733432407070387789669951540926209287534243217386755129240129639931878685143035861899736806576705385440195082430360939091704626577554825354728584714572618586409516697024540080982368073337018923429377797288240403866366879835814351531465045886648382861223800520551923701980879836127127627231184311362169925930753142970373389057973913522749773975525059653216673350379988996936459742037666022621891716531587484731341835572957133451911932886102703486013183983056582515192359757542343515100025216239619834993719076728677601263528771026524164843545631534028736348269420662014648916298056475448962201926035934240490015156273195456331026117217364982673290187843991517083771923241869806502822697467412166750808999434357630303662563934159546355687067827242687053011352847751926070404158143830156494677428799677928071177792386543717530578635941292288052558286424972997388765018196381331767680296297735986494848627240262548347452751022618325449836102450954736854661645873098226394510596596015515810985077033483572773084630361581938938407137253418799957590303531959522798753958702910806437493572558608903310167911672670321440405948209749389824775030673892219811671945946815740365021396943405322478584533588453684199612134609887813310787494248274537633797848854200361999866432250854377108613259165751743024831397505818211860929367404579705423553836602323510673447870110853782090078723875654185341878700779046014330244684372643590742376001706070884027996289239225475216976412732206404235756356554706690011403004600750463252561549643163787297732489068747380090829498522952434874724753689846118991517371264143357092939996569249051704217678503750510819188706921478572963179240290746352698774205196139032616235196287713015579105847805993252276137967684985681311543775050608330892862381029533953354132226178819842251596385953716437769935869966299239606636864473367177639191481809408077433630883164012498381983133028073947482940276393547714698187938934094783285975740644003378034077205532470682121784414547512298571009570507629824602889768899562345994420955232362170963224968950010522225600314038321927795573750461541203569906196522850252158142827057809616393217172031294062104208794577119033287406357076054495098861731453116218630083723289419672956978923922250707605930765498252284672231776242315493838981301188888814507337677870691869079047721412227503308706833746063073257271984129965424307441627934479899053805444282479495428702717395236981776637843792595071787156039376875193824133694184586330652308776829976034407108747205706237811703758103841505379437100701066485854074299025033155681830701515465728186910555257320296049662310519442690584180843044128899611960370078100966645525879873949412978487626060002512132511859761048519310266094506009374759839953052136965188565262538219072303277771559303047584944930524482804594789995564270204643485750385634470767161429464666069117943948377768330523976565722943849157222323776045307729333299276847272694825620491351564799576157425985141590529145859703411733984500435380880497333292615032589755695942801949669244829704597332289746721855978157334024590876350316771400051947010765304366487574663063845597370389105028044871329264739262926770078166180122663279042205047222120369291766849945882388976040129639815854772714952807635707554186353156067839694199104114631843153819370245714518764861000086150402188602884458823440444851218530010862059589653500353585595173014978680784846479936008801749972613041877414179328680511429878477774099330812204490757868638207039886316438448962900554322553210840508376199782954646595905410349032453700210857061684592858343661612365136469053551079302762675103465287941734880556222363493202881875489781162683451031623643593423900010106658497504195656776413772872173491484017657153759617612353722122883989432720634628099341360992205461834146934598934394639701047331082917469064382295198267094168407245716607438592430531164441040434107144283715695153085244035071757621831510411868098091082283591475705938756604883533882852134774002982420181487892124496130791357735129338629235611479935137936345468480254173010054411189675123609348836935145593971659062961933110677203069055603296109605431339229716952067060712049333787781581372139595064714655397606648845110396329243677320648534071406899271316936526362604109767638961215258005432778227524639849140130544355000215166030745480216920880294524003671810214569001418397491993408924484554963754551270060510616274642919159330437977872480681798861448250783759208152523562768105729247913347912336515399999944415356831356528383323812110455130952099993484432084644937010519227914122373383214228982046932157461839342277019346021924066497625105774940616719559105172729919215191051952256594310299041978451360066232733154400191707639541826685749425087749074622499021707621750405024254144291055537904227320097831388327273968663737091078051352589176018022243163130862662833007142263449021434703638138887980889582066017441740768421514297812499396773480491813358359161257988197209537033944458962043582844998768725539519528730601457536742341754285531553613244878767409767993687978670812701373820243765578081626456534265633107587225001815526822256153779392716822869659057087893129217555405975359421509885151437807473603594095667988381237141185299001063970491832840908516851329307260173278931383983561625891255088198740058501861510685903711474269329889933356397245477425888257888495232424429729706677928934393510878557420562508903927172915707293889377487339588066513135752247908027844685840784321910780482385954300149674400224938241814203741546260324566031868964771845257790351433509508378669827024816275371482589519984863563229079262065424918010736866216484295572663379797847218756882364582232459149616544000779350165956773621575771165449643103842697624017011435916470363420922409892228001939544679807458591626460076837762378262242211518311263450570999365768939087754401437161828489466140071308079763501691433041147452846147210606488053728465815621398373941191499718727098996948469460290792572622953686441322684011441623746382515338882416828587330605569672351908471121488142576520895992233854442240330093152496646559246229181621780800963067165828962578645713987120383224005451848705277861484667871654557788291215886801786470462278792178151152617334742403911717822338912707162257259140030310423044170235473245675924345179460675677729816794133024357306384762487790748813485492882704133137770271085752001555974829109961441741913667278808526751897493063380787196340924919549598055618366526570296505852502568577591921453081101386033189897887785254305501965257961256108875354526435918066056463952752297619835179611979833532619931595076114490717519865123687845765835290979926954270759751417539854509327720971070885188788579284455595004579976029365001011769958148615561640172457705269080687670064900364173829638335034547531212883255102481326636165155957158034062036328800298484932956075285449732389201763465533046949682065910785652649271553850657184643680344822434337099293846572186479453599241112121311951673933486161476534783123476085127396623917477495736537580682126158678691266729913661967827689624526188864755837478306528632647310736805616792373610624813236911269007860138074524554119493859523309183351175868008200554653519282592283471615277468803955731972223058818246239074553764313369555876833844190888226421943235086847739064230208508059060153547229722539818466018523141976591146222856756413813138306300121332597909475076374111850244436413726826235858254267995219380882638684204654896928334874582190005627384902858768076293533447518440932446867664348823024549510043303500868681217246194120833573710805083289698717345720077959323916608969117439712435872080377258794558393836867105659426620955325657892056491173873787839881145046049300863961258015511263835741778662278895081384613743724871491072939322866718026282391889512065072750077410940816230780087861142814289504085091287401423323897341441172107104289896473912585140800003040799866620688968570646733299381033197525597547893252519363908168142783631670549011359721347025411285770150101970577585402078620011155692779203012353479156348793870581739444992070234046986228151636119115508774349823952923814370088265041147421540538211027750082814882574035642536800989380862802377823370256908709130833143667517249272220414741974548185232647365197910193076275433490361639220937693504023133147553100755977464892134568700498547871336297299603830544491937738639818407327466072154314873731467489237078888049687113793899882351173273699142074914386977333775721385935285378572212503371614299158736377604221551144447640923762610462817264151018024034326323853936556037133636984636417561059206969250122030181949742421164103973877636231644024293245388664661048712946763089422293248739781721850052261443374659601936401713691204976010786810487942792409917389030563775801116391631484568791712405536563269881719196581664948987108470654784706974032875868298507511824856237360935242111774408939536892387269214296546929117235499608667195916250516263582023648951967463854449136438714189100372741540874459620852032840626626332562847485064139071936966498120359301712090921532367071251358523765705648423516079311080350201086451266167651889631702512213546635893024105543757282023553871417475230357113903727950417056774140363935084785940836745471028841623061813659434875909175332155291511908678781937636720874205185292086761421668043071078010705868944401127908828350272618670357266524589443775952149853980811338442128307319005105251875660929210080509657117125337012861915701263877633750876264118545877781262139522660418242449376868367584070005515860400167741988743281316250887825741638432237069355011897223039140121649244590238264869668206691639353994689087494665676551714711486712893555794279315139722693360236709514535898688726761150675396158766507017241027203220296428276060554713911484013260515636027869611199260992063578409770401262454920115410770815964721798369436252737537729523035170132171329013885852629915269984708392115331311599478637300750466609034354351769960544676852531180901066246563657790041459750557534229207651262095412579356456883896530726033358711813394770382816233333766095779048349440647283296461559204089680692359088110318585920517369931198987345051420973303230458396435886042654223838382635887329627905041059555948872029556428176684875735365261920490593494688633575923414213695557823762671355071760370454308177343939093919610597077358454239449418822332065571806863927684070117093675383121779144981934638875007911564103716926806877617312211194470105147924598928382873738347800942479828749534537700247180751887391500604627471734157366957296155623593603848766537111201562316706001536324412525288156491198607650700244782438244414465719633487410722093660726046693764076024951265344626980700308572910097447456914607779107740331458539318641434779904369005994587306336036895118857429998445859452467534960464666522995545226661019971705072201291633114688994635440742247529250062508625888213133287820830770433066890557604956247751408959681008644774560164897476344779926956880105757126495727233465635884325538869922887308813147274047149900685010033313929159106286916384050418897653501997351097496029365886197565521062582154200213489669206284412367305256725444486374139437148435700831051033737897167642210638777769952611804195088883760571121447178534154037742076778077946814747208877754938519588688789670937162365968723729214250359588516778278618725058272468154859957762949148757565505676073176298721834099092960952455499299798622588089163272290328065886453609953339024930793657953086257541138253563857583854917893549748023269915719439964350280724687717340372529869300275294578000881351404031459258950724727673886087374862439516441081157943106588730369839549060580007582946176982017510048041641625301696793421584800301414076925403726350865593669824403336162336299606882116292635516996266298874285830414930400577200723016953514338436264991954582702510962059458343429856148394035158707840577296029027828894660693603749213013652413039334818788067151543794773370450022777065782355720073108935201686646125035478678098381807132453938435394667009594724536937592851899785452569068350567131788597622480724152152640029159450287483285390755523301682664919193105065656536816713291529743026070269660653433319639094728616051794151064685734435501670068053969004242321410687118456429584270747018410793290298028311398010991050072507488479036444738961940217346569107769266086648177802527872002869469261665052025622155044730672980524470634588218817851789839459012840347613070329908640700093151380639491738984933557150511087221975634709360977483540116486410925116282240341847174770739253979566954901665342682862749768131512852868698113466129337101413817370187204396421185824843447171006880742286822197232631883720924079173926635011235655042090869698953295094519134840655607659222511902997945269748273799368534981145437838264453356458130369086276302336733478579428594448081471690287644961566311561855209961036265240381272676534118751709612196712063383209808155339613645805162860246255208357908954390430557993446114241706664095765442434044013609116596406361090112461217431276330881650853027658233790871264147790782678665640309366125320398709285275380920098246500495069694572656319327149045222682808404159006789102742074602830558007418560178899158088308045988664445395674276214501542619036483939975787173551315925325910704021665765717009834062141500570666799729272870217420359302524401076573892808733202092247275341868878038738979885666389765658945467803057301831939079526110519535316567330734071109915885634245249299345907757861556884720765123687624465192583848378570206809103771552059248292392951500077690104760736860509525590136007990824258833453909619680206867730556602464323270456071875859954362129795226160597023345322733283331221806848792694931469156840742041282045773550040655855557425505730051138989133298257285975368588554422085746622379903934217843202328566993211411709161394551294811575202434302639062415102363567284124511082550830006827139176764502808645374849516350481975219657771281220457185284414833627709288313211422619696856997839597388985288320041748539202819634838137713768340435588576085585759162440596476808063427387908202420591643290783670782256961271042239231974262415178187001566722950911968289928824560784752442783201966613123326042177414346929421597393042142653958452879551046046539981113897143554386834882707652671187080762455787304850937448450658575224014395149119284760841776773984173312590073077620900674033251381295002216835349619072447614338785915982436921169495031201688007250598811606165516159718132024791582894462729906790154383908783735918064380733361765929709671463226174018814230398723598234890472589339520253606041230016984200676529593857736809204281041924957307311414676222743287319376692648048421437995587065127605686949227084038931482581552502450421227203051330092585418609160571481216023586631673587793074975178347182451555399572034209410481788376880079642066566610093861058299715781390364242236346489072412080648395306135492572086812319855929294071843638842772051238902567777389337808965701647791308491208407904225281982285697474637695572283241396372029788520905267069745700568197551545421789178599134831331506902421499471137095173358902488810058445123450809993988070065947499184479292241658910874142831426505548498563436988644295883591021643577879671746773353772235402594224390372081704846748577748830035681975909630242573121190839801613102746105691354790219468596144127331775822180352979401690081395869372409070414544379717157498846444761292983299671943057165341015004537571835084844055641364357037455293720390331664554494702103416954912229953636263753033247104132255402099290890005704889357558867342114124013046412949526306136645759419543714333748263140796647902311178409655577853989791942618018806918750634260859227421752378658339733677926797780823397352006604281129331397890360095811854362052822862307417750286870429568096242290390057681931704346574206233480046058691201791978168392059362047093738511838248290794332127260421862957215158185063080401625599432683260809619341874517350028497236901852109807950297853992833192659170003331100253675603218848536008326120847789859515916750909985249168283661169652248800660267020754188785452528600404418846631488736476179659465792211857294130854286698624224514242557169109282858865460843526473750489797900964533386947805708485156153428829884607544744848748143031028711436303595490646369742145683394540481397827259869346928902478542632824417690692630125181653518785754311692017540514484617736156462740572178218093155853739301039295682727180697143678774035679667073534098554403342491350944266074302716686454265304532118367821830442546245817582301734185661331893945261492856703445519349678174973940416296947978291073016123513304369604160206342678082312390398427501457822956902897492508386615828954666186022435823072983490785782854452527685898157261821182251391947606187599840647178629928262715594328519563201295432540599158347843979489949962646717911138624308212946535556427430860341902584731287531296964615725284686762853136961928432413848302934036492621232718534906254322728352075354191959689485619213452934556287782559056807570702005324142661629343253947266216390186271687584875709989011876204153204030662981277141855119899284328208198136483481519585067959036557328806061704207803387580607314965967342264241312786938198251201441057274816825207801908918957421671017760584775738002401997958361061607248098251399190335033811317831064067633773050739652324488630430226397840211816832726643739676614781923918647913571495783963300728542904600670172312190317723640265424644493474903223886685427544485286882528521610904961595327714465722389151814757006918382417245541474565925032475094541525837017803546034121406869513347284159888184037488556796576020596056638518467345452906243646224085041059857546438695937234452934227097634143987565644966992297873486755584061856005270031803559682066639913028778601818858138344991481350004710130444008997980051685417402595615856623007503222549047890707868230793070108770390111294375738701045505049162681757888601923074704796825188312183287974139928104315455162893553656139593569263798347437699606293296790544965265391942928658494552502196217429896300878509402337298506481197435326900136771856222375321169442722186644883293864914138816269273656024658064918065999294945719060733126325177143416623668780370839589539960804622173418000871655859568996313567574932990022597852591173863478707937273252215000651786427426580920967494700038937688492546566331225705172438388084080115497358265490728305337979596567116539961985616196951991641690845292548749271082295618183172808523815829274295785395698955677614746617271787864552219817079590761013963775922054988906020160652258983419984299420573099186927282451441205997417448583369373844495590323465305917412105730509292029757182175817422612832401610630093665166612245957832348571898030259605497431769438665564897420671487426744089184493106502736340186158926527845883061679333006039844505906460847873654035700393450514691081706442609686615770974778745128324143727810512869887242839223100588903687266737088263865363293150693072879196577504404145880068607314642993929491283504597911063294541390038095893405022619654719013965226466616343916624416895515672009714213474881137360904057206540657943479272785304996035481007808627059968605132867413164009497822860138585265514858749185290485558723302675877503837977553160180317417567042598043972941742499315816143569064505516144577065890659693593949440813630478309562749258947346785996733000330384023930286318557070339527695884314983679763823746473770486355732424686472900623611354169819766253020930248664478489805768389836884184217892210203052225568483885487165293041174609229581422980521845113310031390890744235231572531776840306975314184622742522709680721316726093872332425510160768169301127144012459826567000727460940742454689988644394864224871188181059923687190023105586350173579588472926237481544446549044193304574490142211515832176089151432569874482157391520660566775929292148982346325647833036658233556689644344225288548686568515474926581468878157131437879162065866878161360558638076965816855525252929917014603647886540716986075327591123554999266414617114234017061195626619531872493082386402295513175641724716928050080363102320362045647434740559764377752004055482891053937095227780021819367783978707439120931281659174062939691021929202679648763876499784746628195461281032284865714172668372135887727406944171646584447138979067157783350112301584081620650298864956103285582852472884003769409337623642950822005464360617156151785400918317126972633831235923674087789062677289185843774129356251788104910706259317146706334824528363551572207731875700653087137635927032682931445758077142528092858340067617120776542770586563411647191135590953269685785583499084091398512272455582810676068307784590051579163407090023070046442194388395535950420971363555153725415514443789279294481811414945011464150946856689042923022211941926929973441899751779187696767863608527626660613512973926088153866410015078077669725164279624594530349502537852978252481985658522537173371467346632191447082965177890336913185510602695403479371527813819267907014855909345617300950297632788304100084315779645763798963810346803354624845370138976318453738566892841434749985756771613538467680777492444323014053077775917456280220764828152110278400535228672514512701275054932012143624853358696989589364934197220489934417740433802755713131972187676927331754058243494316566326840832088377501114232591523839613023201339617490645913455857865688447519836823063047642576221370183341862327481613401088738763632622687328459746154583450605390745638092419313277943414993222027831734541246230429069616474268893536370007739546634954216598864673663576132447029752609891969726627181905141454321218197356959319155441061897239604105291084999370009801941541400302158705942397663950563802138286659306064683972267092334210714751657405846766852209491320103645578453999383243128938202917705467825631839314045554578570469774864288629541352818831398167952208963281793918492924913672619848075310612924597550957173834451773635072377345667908219649519838276931239874465060936556923080620986775538918456237426816652374446111258739301609836842114340134927860319141223941666023069052863490776920910849397351708835599735192135460658558050143842084956124551323442482026575359840921086248014108779901474810150791955907979157448088744740184983011761725222905509513119784530924110865904923852046612101885870600049802011640701598691824508069862308240389870723724262540640654850173517010171780865970524531659212332852898748015144549443704855673352029724394502050330762461769590773776768611648748751553899702420738849756821213146625915741948333858863057615243505464739507036768324548393422904795290346847871488789105771153887894799893856943982715103516229997467426484752053714514932413606228889522595324228501412297446999722536007010277795714013415045882643713778135719157438179134699716061316058781292894984386681798778315778494472455293976162690587519691726741576802976795580945463737351692116449227431976625920317345600599918256136525655982474804000086936709663219064113347412612079421135938075098530319909626673078972763745377436357805479401343197597801622868998880262167290524467329102799585309879842166927700957112940793855270333117864520652850845234162842986314283517986206127040440735781655608509888902232790477297150159461817704942039451923820183175317896340685147726783601070251043328265796206149368788853670365491578897456697765687821644881810170564267874259931713291923608061524377988395237218907040751930515572693959458312229176054932015112158221353828210169668604506305048573883658534262601419031725121465609865953026297643302454447424019069930252905889464972223978224038477082282230588939057628274355742473279284248084760054881944850460196578816167553209092377874171276521163724077159895023963291422309303399020954529243662240662176611363735477322328849645299604781005794467438547886807788869438104263099647345850848786572449256336653110684824539902771431901502208741319449015068161563185727470705007972582864582406189025347217117753404415796769221850562591151400799718826363744085928098522775204441746868854633461336574720406586483456271754251863671224088650089090751380904296427521613201235859864317846448297829604786059424459186462498993095010024069420548387081641205569823770602337726849995940502052541002933581611101969048424464312608526012840245660837262047175775563350018664353629482125147354862918315023967269097365644626432418434121701553684009859141502526847300017243229150936550303532647748447058341079568670406983900289899744511462642805343243453190666851505969946978358759488255079670401368207540979910801314022612366250512461320086614333451903451317915829034604235532376388509069676958879158608137418222936891180488352222627711888246736914937131089954007837477537927181770722758658361406912570152154227145638944403151589705225709276716123139567464769468491297755468479510457519027053865659997433339410397717543984138602070327019696333751585078609503680967015434514368268859384092204757507176755965822884226004585831590506926933766778142447185974065622100700255571633081961224240087424841089008480111241534766945516010029648343035329899142756923055883437711150937481621282116681575677951500536251885138369230642070968919664495298783661496911459486766659238824064943247394473728527345024063875750603146777454674764444514440304379149422427492809272292920097425665681590342530639520863128223516326341642285298325959483432624065376751474821125986170016639101661241119260841651916164118273711073277796461274326475188515212315797191492137080864703706900391125599761406894081450083649151776033090104302206657730271283521616404869906717984351632344735246770215935079896179734583095586423464630463246156474452923180854071795509858103344199165970992228307437968828091385517626779780020015557050911795049176647239198658858463330843134816938804752922996969924003580110967306606595571562763430580522699826240645649773840730771113448351956353784907594317605465714355467765068496435092343205987050349392157644202992246788953023494835795526360041951732248332867315608595817275079052942446258341814759045225778498763658175936095215065772317551061302405144130089922934574119573450817406506394802902054556474250586426609365564788723686803082541601994126953824877594295145392960525071936697099897680986885477047632996823704675632099702798709811804845642478835169103065153713273534148724849894135155613387434000586472706117060211367241421249932803370288632559838437128122592144978469524461472777411041640483594897719663939857392262735526336751941529039136767901138595246291121065427177490482704981711263351700556988812383662105703223581402283428831165105168302910393107264548037081348647672539012868015491369816250958809753056999149484198255492832327133915824721373453077660259637076083816798470538310662377989917797417388459496967015750053250440942055744690614750026562325393977664413503440743285531048068898886387500351002400818084945693811213193505621476323793843657105743574680126498142447894922891053281118351665651353189307929918412788772424190661183455064512436049709415206141085904920794830971650824596537267036146697563238832664899923969390359103206086372139245377610846369206471361890980689483091608920149223973369660234315619431615584165914888436992338990901940974693123288998300547231343019907708090559608796380505012616193998810542411037094517279413056814462659900718533378081632991979618153385441224555322776054430974149406716180717490574762434856824728433767392022311228353846055047973984947110874363638537956615488979911437415072942212099212927382046298369001335974246583451784747957662537116299703740891932631642349740106058223387428370087460478030719510225222883900277463527446233821810101044346952803927310537088692715282425725243797972522668966902341683430390195989601230408502949400218367330218237961084364146884421613535094030968064051405709664992492867295238474148999594702694074665068767283930129158070436092941725018648715149147448180408299944487307623187767098742123417997469220385592689504310276403527310523223707248564966264435543371945877090234154262404617556185120283363555791757809664913763694388029270351775691806078704060419230222619775397045094083399535203141160502659433556005951405481208482228968852970826429997345845453822679860759320675689735752017918654164014104984115542165183611102784968206654752859059723192114737952168180412983834752289496218630191433006675868929319950871589581107881804979011870684373288311711736186418541606378890265356528121731104775757956740191503337465184655766062847819089391276008936768890948120653727906704678373584078960373675272729165586282469041612337314939860613673303783959497506122253084242958962576582052166040055914854901826804458489881852591826030487666578024136456496740589326597799469361725411225527059052551235946307816516715884018630339075598774815441657467890336725409031089665290659266145388034661289959739969648702553505637966194557037609826766433542247376792813066650560386177236499004233029135073917962517362526146226724823703677330356846970802613948238244355336194656623689171936039351546110726206679392679473999389998259925187905894936566681757741529570458845323840135507384005590474432077143026136114074833580820879155285092547409410695855976301158372183700590509102517387626418166320317780436371498060248701079126531689916923179527707416883181316230284667551556873371958636702116769390514362194853229077779573116975415186681410672886481503068295534465117644609989688281427883564232382594192512865109664792594374928564951759650096666978187500211252295190139246652571998162645000853566171461421238923298249872402946316710059350617801313487810999806291674770648802320548068036291787996995645932053817031986985009698894670553307475339014099444863867205080309475279066892569533547198655343194811145558303056200725460348579303236927902367688519517852484130593780515090781354735013283426620940981866641662843194651845349320921199730760264180843004522272595306374737465989559161100119100074065572092592694481004569939552775838977775215420747759697400973075022835982036658118741852095349174560841097058418318583869437792773005398641517226038335976554418025115759656787637107525313686259290449199163436431770330030977158410190594691563252991262679988827186917386985112063111135980752043445745161655942543668792046419175798367567113675631600184097138473474234715573675914460078573551511462755508573633654738817671315651871062480770164997019807908709566805510590194588038959682939797446517688829394010544045849750001446843160225442830714739821373665758092878501486921563417206377101789339290612206941477455602946414605142876640674582042613857977371419917838216200483356247683123096629703821856207503104503481359431508078928062412697198965065588376463059809161245679573279952034202669963988565596092854399643269637035913971489403623563422166751894801030054204285092680615025660009748052597043302406842439637479714063186553783429944838716948630727995486406872967611863910796666429894694602630784638622641628551370850558348556419407420645935952797757618279542271266962291478083112170239970838698805031767212169327336904437329939973075565939880268640420043842641382068454448737276594185572998798233112680654021696865290140274227431469884217406769073914753822195283999107402238928882731042767181210061687300146708904106454281222610404200065586071740344461933207900874949444503529986887376982244529487775981251349309470650548427580728802986634246095967531949092991629265678951374963753761549473395099970293785973727021196053677339483347434469436658016177838392904377057496515145705300428228680813900752368411336408452634841815556802692126656267326705445827691160251683589194588020930825572508730715060221341747388906748976688966704461026260020893667174730880981723151430388589137176360610521516946337426952832006228495575303512359682262446609804661398666884571537971251966944114476387551884269025443878407166407564569895673740872611573097522707232258774302512425446062375523377825563737398492292219176615282684811486400313493917934628529159894806086318003110138901740160186631899174549325316755863714686752838646917014804605148555496546332295559265881412028608868523074633688482991098533608154590590767052222284873740492580848031209414748860700243050744564350604512567729085629713925408676292749865566446486381566495231405453785988522182360150204523336877454004033292883741977418363110164625258373731257258374642850331324377153405828217545801085572421404901684131103945435288787027139473480099757525707079057030577654851610028579734569921994922392643793883051820300799555952893573607788682582522527934550128987025396005950285884902360753419573030091115011657939798897787461111822251569732213146363227206996645214906679299773178278406639776505240187786420037365440298734035565900660358690316483336629158387905762435572588761229937195136733838533090695009341641746842371323157436478611883530216921786321553760923763625425752007632789231544519615385457789800376226882580676358292297676622406368955344282289316106101709635857176268701828754559572566704426723166151076762851254686470198127293082794790735727823402625413632429574556656432210551899060625969882074289533226281577069798451815169150719063111340047442180543084627116852273608871766241954391455037322560496854091591765405632819130098473233156542392518985538294205933485868998672936287340550672497419016770671781055120347327050603050943017127480329641212383907271724325994585322521679283258996264239696215461638701961832175964748528346472253614100350695372016150124892539217992917347961448139523533755270771929724663320856216881830081281529647233568715053744859526346612881390090504304427255088561055695752724983821774985773497320921869873145974680073050276463871056985827159705487167313982296888807221897934739328287588950574575520028763711767580262012244986531634365132694384624521836412950312058216194940063093653109754266159556178797525393336022210116210996646181415317207790229112008486544955179146317831692981360364531434630102256677909254887225975060057676290527268703425925183152039586521170410732607666491315466888518610087799233600230155077788398513368745232091383134993881306587795908037966278225758014042809066587014263756560275280613903295391690436089475535050303898439787265659426524882549421380682623007571344714467275427146606204767866646933910494151733780500878906619074097775784547946607056007758905415851305208777629305454773043481520325805304023087878940029726270521277787551058948948989938578172500047032579059859222360369435142417780031422554577640123976788543480005019856866742998414666086051171768844792921872186241519271598001531144965211771099574914379666614088173482471198188999674599837052043711587182051329307363608329134243273304789132064708024697280752199106151415339067453863903532562850355818617450317716446121345663624094561952127583569814542101281646805545949720476208792412127940834273326738539094885348495928130986473245367415848801819361510500149981857797281549040822345921982810850440230746360350594037516616563269801396963487957423558238170705411707454960985990891182178181781060064747631178628242714957450652107122519563815089148969811401211087079944464377840865300247790495522213517522930056146455329842308298998383915300602982137434996641157907497920012380436597430414692586247565832688806262578818453103753929765184399333974320801045899167219802620493217742128274352306799554588020076540956919311844690410765406278211141883182938967544032564285538958695984398546581337001485423288937412361032105539820676676427767873972947366674035409078330665858274811726386055666696047421774044740628894301915491540078280706809996923472061163706576154255431007180726619096910324665498573435233281864790830124355593967709503706917867973085581210033010788141676653363146528949837238203683364031746736829744356196589395147875220478289127161469140012155960906705102561214852581229264084245872905579623047845129694259118418763299490795812578441611770209195098227352280715326519979478302116752601181364518743753323966127908441050649226970925365666669901548443417458935108387223433818548733161001557551177030341492682054321942360876859218354987671195546851653499926887116870766911029284211959054947262600571473694131872832326130982442135648282313341838844705812509588987101059250789679472541327984724713905798703148354327565822545078387503333181975772982195728637492359642611950033869135194587635126494067432534316755362708851942480750647978822574744618166371498742033314380926572216651826889240561489175046893983585674988935919849301931961458765984927514459443295771751700712960720903022542439674926601035818554653734306738639207295049611416289802688004236175066017966560586671377764140949864101216002352724829375882617753818657875030715375699894551061349451285951350082177777256883835435384639670453448860694208054113399151257826923526976574630690874252290265185812042627357690195838665088874010165011472419802664513364553736474970374473394393936130529671434546669274290360164550728595266822365206564127534335216723611023620772888343657219907676878528477829441446904296006989892656952552643772515827265115735180486251387238694420255374806429181176441005130557204899123739902791146880789561611226218040951984913586097175090039088409830745544753557515878534037650781705555553418258055658502703044410569565646737344977537481149856604503134307733688375018264880401956615394068432914122967162459311583873526362513520895788494212089576184258438759366090340940605084921880325571579575105375279357409230575074949674989489912673639901233851074011017517815278628387188940846948494887098751212135212422852677529156135198050380527377987140777449553619808726829016149103652145078454077527479759402063336254867020616103774190806471118795869922610961439354005469136818145496360813826833432327681075339632481886024259775812087211632597886672370888281508189030998186200679203235444688961699564571436488059280251773980610329608048876814999155452926407157168250223259620979252003051964109376507195811489590643155694292138602322229530686685640934668961204327451427913471422994639267351160855617941916196046830822374203608488321245609420572703712279813035972809550031649605462334158418873157520772138715709480046957648550541290652168966062111768843330647145779849290719422260074632100133044830670806640363814674911200147881941842952222704171063292645139625749153544227304803780042415710968990864090350824211428233068847536804913992791347365868616013902864231995914210833136580704860494624555214874164541394560987313962008786116444217078377674852552112763989114197750195082168632866895454083495916131064030516392082402282783012904626253879749666457856456475433720337804131284588734906891703808278370212815013480561339424658346438673212553209175856666832774061299442439839462232025038712924398160121037315501506239941464453468996182763416291805410192027779036550008270536460961002060171059808276671773170504708508703283784119820279214762434070078827422421420255463898470092103065907623558986376392099935339761355268521929064517496049829585022148084639867217190322657914008891106611617909461275862675917940651537233231441620590732897596935128313084266336035709304033101452800470566137343973348078885496729554295949631923014084679954381359281223203320619898605579512205443045411584532030381937080582993658901698174890256076133635378658606911600645409861011271353524276162111803811841430249962152595041111861319214588872814263599023152625129381113810014535119189372262542707492361644273146526801351782208790047338688487491601897125434537841640447653062907381929622095476090660464966032932027896146942683325894163011872789797979382633467554149312296259418516992391405172028830023301442095649932553035091403066732827634696997261476856355851738658447043271539408516796569353853726161296393199869860347241158098031086151713693770829584287558278750595276291002462890596184897836172322106029411679935348846186383371412948980406958588236700582397002935346181332550758418657623073500692961960847212414672728691333224856131247429928687448943337631392651614095343162002121270855759914453691391937877077826020323883195987441307648416243412311097504532310981295978789313260552063381663605953497881855584408940063228547962410551006494895334599939251817898035596114194302183872159000786429578289269270472868990828864626342034253149972986994348242207931845283761812352511261125563805479750182394996862790269872809068017155957136548760120890123288733883627560785235950273590111000264300490936501767016988366478433202567662691537329242417453859165960928016163632777232354924348340266249147744454826813406850624067169479646371436941392649017017364480526011079942832752642150213858548530006340674360210376170594434750282728894129743211300532636578048595900578075505601332857037840038977766056476304329486152854815593748253088710178675333001298053754147719085980431617757293872966312919156572817584048541768858288263975974776962731721853827779467367885389938697584113896918447743412300136099806368537950087785913481192328269621228928848064550455906025767845758501866270522736513886478122613141040815673984144489037074552181291766082041390295090527689154473821415889164843272696710055527126788828672568022612974351000707995242199422117336700781788548656373488647653655031201449996962135138443118937196287198035256410199647819170533078367119882187278872506793320308541104697469879456404751883877971688883527911847224993238045621525692381604630333773180946294422924393385418117479456307780357077772685858564042616275813004621694377059721250736433691933635499302751987414469654578238961143826352262324461534783274820329693325256433084415775168055059007262952298733177877503527785037030527138172560753584620954657962641555198739187886586826600470973261672981136340356465218485541015197738806383909683297573588293895023768387774338974653133000443401303308809931355099131548439511586187387200955360232232878090706768087640094488728844784466938050005656380835890752565650300639439939048641887933593574229448874951062537468143114950722722049180006654765470507576220151754797739558394273471700769748099569737682902205378088721679467395903103329803245028470355535022610380785273783569558322348988113453099175068782603910122583399738777836618470746923676747626793026945985823014263123671169075783607143220868213444279826918692107305414571487031223111120256904000243848182634778726644407941963108385379257040224739593077482493003562370320499157348411405335337769828619022377355276615243938619968237368899394099717736740141359118095878890941639733875032023397396531248831061224281482510369257962801985684323437208159159420376702058078960205699783759773904826047495496740119446791769306471440365647092523698529284947438022298396383206230639154911441791103324689037514644689841379574064177077164580194001016112742272500774355915954109394307534093015013291533971318003200507976417515126746992755441569473912747064528994805045906784531241368047388696647552690477148628274602730659732158297376782347993169985642448993789787752456783249419799521687519609766053274806679806721465282118533444183462183843401359377650331718053328040537889411014845130634927131320836234721411795436288623786290293552680862310020946515384175281109918534260197360742711310080817327493547967476021178505659435123547112889415326952282667329689265008623131905185834322610752267859632915255889856386141215854304486991603650128185296745562006645073431864586181973930068256531967638687127145411968169553794655592364472532025633872268814731721787146142639507592591815565334988239506714498305778890665563821437943447216961414198135350068497302362004538191273092754984546865731506549258341804323819543433245401708525676960089578970694980461531511496182004064307206304695877578269917215495456448079816469093167824596412186702567811703625386334521065945221587100707594084045824681934147942611190489062317530480621749835876436200398709028915077770082465667145240146311426543147399126564317929823564861318034566633269892475599725237554960978993938248538185708490427678103350138202109412588573941799532367695490197657936651285881207221498063695180063791225812847445997252497643571502968202575126574718153283445630930394849273479690293485322200271790089992382245602786394965887852603734997398082801499788947566019486410188851753821117233319392049406811483629213781297933489718442523949210685153199116461508817524910226531177053377744136244723748337202106432576529545770018552042618415424691154037509463603996838421643147469720502670584992118238465531536136458624093832774042102070505519072077506329759850113232314579749282050854958056375158809278935091563729983692579609632721664064771341074766586288615260385417776644072341426517277462156311497273199711598888335384430054388281540621123081993208054097337598002477289253125379615531726582469380114892443950713219738427754233535729076357033459855634038760235495293920940637648822725366326763439301715998575132409703760407480154389280080187589046656875808241107288942892719111198550830423508489534355801117031975315856429185121124957518914851335901185330353487010405070922101749441904741882765749304629267741885554754206483776985259802699112023488398554471944598455687090027034097358645992795142804649935295053524241895577892142803850317175392949184211317720582878115176378608178704548312013205111873736972737527839515486100874020838539035396088563336148978529924168404708039379764285523711005274011698290357583852871465349701909705518204758944349685428527996133124214443186504586893629004579764744548437341488250600065433538998969129093137644010277212723732023970300450045935191358342991104209636825540919524578388930504183010148797563380062451092005965563343836365009669642992448822933475512125036652432839820980378335357941884806093242530310435569818289934296174672335172263036805811246457497488647258995844236899641717901708398627344052117372532638537792720506148725901794018244509073469356401262245675522791836407593088055589934258395746074777574870587629231333839888666832782837766400073578289370256120271050947824624071170203081511822209771117891005478072541428648363401645541695228645790499603202767852635634536838014110741212174202412169149800726901754774792263261983401322881399296172698237612520879053216465115782586293543457326806948409735514913154928824719790260821136693478965261183038768759877396414285356681718089147879731321897042369858074056763853771456006181652753383715559196431554571521196010632163417985272147668712002407452687965287720089037857343879219751713015825536173957047972301445965005317869302311289712366259801480343517910306285661830575226095360184287993300435755788750130614187034891529184932337810977487398801415620998603731096009117902872710521464228818618012533729819531702877698861299277438916972824646144841479622648539019790109794485705887492705805077163683831938749286328086721630552175322350399916013369381213575425660220138897510689239762684528125214060767995025799208465350940640336759567326965547983959595305011946355395211219649009953809502846620054089549485977993852965301503012281382964988165990254909637558816231872790040089081291194789592568480835090629985809389906817408537930795701031191072923089146272166421604867468136100804161953925463860337063036100464917643299396526427485362197762749351514145357381189551250066659201076869552038860698984196109153877973122759538708983616829294232760865954562359885871222463725853246120267020705958943972954218221304480109991465651780747265247434710708986023608551605896162488701414534258809360481127818897666374046072885172967665157748465787765744561694934106672581008967372535647663116619507559487921335315968970119652684336245330338480439588982175646662280859186854702297851957001359609880748505514224397385376766812582512080790875670664220158669059703527746073845231702398454482014282978690982225256144305588004888258881425407941085436275225202087955800989732221718706776015045517881602011886778416333164916611831396284521901901475205907233285085570730962716765273057216203722884679313590676778976934719355535517190144857621010498457549831545093768504156798625005578187836051944511451355703981910055858326321937263119504155210208812847682446074648842824737476753341008697566950735514055137259308837878022391134013677721457604001132205819097690472904085982556837503554602237428243494211771313518400889899464459672161532939887706450323142441017362113373297203437363682032931442469472923563934791798935447564641712261898545094128502697681203400638031537032902606193777103983614383635854396388890166847738796803077932354833712442482970626949056963788563791702411460943415838538857873964972576601717389299180972966079492837310585450416998369135198899725631368796835556807379679987397163564802272509853018918873521565899801975454821922575334074110094714222686389385840683441910959306360582681117036887707270782317591074335465197006778397038045814686511474954631050383498547625987765548846462359051426380058222406471267928920665871195536002565224950063087863455865657743229275517599998109560762653696149254758055292079924286948316341234865760431032811326524046003359035117331189281053298970181470206170804790849824008370314179635996002447679184647051496784261481733708601214831032922063872905720008950520557420873752136134204659236604816627855566198126244447722790077982470742491253211153741067433919568655167214595262320832012990560791612864459419020138398085351162993004984041020481617143370772148839501003804489983006822386138119234865193367749221000312539866646896282382509206781378260330334792965284784635993275616493699275691538806014506274751641746852941475739330845359741365967715651676662070244966262517634833664411719319177829246351305392134829670760881595446652743408210109917533391465824786344926288185728152087952949156620597743757638104847243622744665972691453364448171042852361520289511623976058479345490164849443301721137681772124733777634544700422063979084922886271653097690192141113418975023419705473532157126245914808580540202406862177536546459078579845461467373460214106201089110152569032469515091463986098442608915297437930265850970654618116492434493533699571953333907674864749530667408154317659699421813319254910030625698029438642815470619904199536793136594357684549811740142845193797844039141077141506874225284926616525506715203709242091227062351458673465909083905642379436280044625340735037445810257511141202918380987326406729697970418083040997215849428736246130336713922128512939290862438944805638441950573707238427970250257528976139115795399133449590624049029421426573244296433571441807497335288315070170802419745903851601718104978204297707829820764737408429366478565784432246718068328281853930091360970914077058652851537933911819785643726251503109205283403905597619311915230454426930177462105880285149308167327641533937715117282137591798138163340023566440880010067776259371385793815693626887783519219791846227013051300912140680259630826393437403933930898007099654528630255229944611775232704659989626796562089095327833523281819979625424016503671925007857137336139382958656783521604808783075193634886376256820297105230672110430913433026169709046320473432251510419211960502805520434594149231938697867366282412938585356083025622594974841072056098603452884445214092740059061964799075357792210554281604015636492837698485983595785531347159749123195705754763247335951189357090714551513405143828014817988658051483698418632155080323085126530436994178141931973089056839968896567216980195725539458090911813192126075992325357125318496472752114225738900331911260253144770935803233144270581079130252554173834141270073313985079220261758281579675714319716685474779130470782760062703459752991455617491844375032360826370383426343430868583417262879906395442084192353008471104418850393145608117387215981858071620855375803408624520415325893037570504843209304272879236429658238154272211907140120199322624486836169819419131660498569868448832244152117448472687840696243362802144723295894366524120912374013906413612313813985097358970673604026013816145120195074662247983974333489038425000942102397580208072306128858198140264114710772645128952489330803563720401489657748084665532382361963866096920438954134285303995954962751420335438521711836579007135675478711479117818654089713709592026465364594005957582762946843014005644618224014020783077121670038211540852189975959734898506992237602729556986951990834319372148249331916657122931928823316958985122281625568034549583047159072354738157666553346589636760036264429251849742775469299256878138689751572426281576862785645195224395642138210445319882829355013155832584752626670989211444209693780994472215413426742938399006869807879744172944525830834004270567337157396909449164625615997067687015530336795607219555205872017663895547345368013147698473096462770922702207725906188407596213581689456115069156035491902398201103985283700625928919492093448438006700542911577228951097136398655216183756113804611305649261834022174383705481887849381177474373183585477097113944779208395230453164010114227561366839024952409066348220958447113737204194139801722670235861112622379817625809005142040423630526403860401829934947298107720580828874298260729166890347713964397298317161668258421323437717095923525960116546526353073421617330184817595390898178411900811784784273685235293679914221495994926227145640997333104178479616525758315685906981012141969454397036915778908399126295042627523387596939776875560104968718558232611460027887815708068140856786816535886093902922280764097323197150716144485126961410812613067162589324552263227827219010178988132078668847412811194926413680004651107796197786357413498124936922007182237907096787066781764212444327668525252584402186516578401585765208968427051939136489136020348595137727772050620353396462565329836700150602194857448989025910316544542822080154026138259259009223642750042263727174245910949564903833462622173406170466931933171601483389497580455436481283872463229311354429072751473170450565475414749809757210937756230705401137546416539518931204393084142207364304039836717713177149299843005331254349487983638276717111753875344044536121358808189065599194470676146691797208929395494495570894694368039807827090151615326790393244934617735221484110861422993648974980616557971616998479811576108071502096005391320432472553625141540088056673606481112518653104659554055713680179471521224057010447205364485757960181285584831897187621194880770673842774929267313072024855553998128754606069561653364799656344031112627597724927669733040115271456932593361800262043122842067950857982337282689203804127254483839536486656066058306781999315233327220836139050928525947650369153722219012188540325974246367652052886287471727562356369074207535171780895206543112507855867885808013933351105146039057545866085308926135147012799078323671503359573515191012880667463511133322668804479189719395061887409299857392302605010003105881186061719883011542734987720566018294821108957259676588612721184360103119040867854245973566612352196151630453469721907868575247052377761525660823234500412206763073463975863322109649506631362198672164675308020773171604702032342671176084663278892887674837052779854389190863162795380733548442354309919310731689928876423299645894687159600954193548814178027243856553396845560611111745675712138301326896137619097758255341099751746984290980611700583535943341663080503878505591290358912513004363158271773654438430376438840432009447916981903780732308947750671190736217960804839291288058873200313098738211258901295629936884384468483132894103452611038725802898361387842792114299806443411417142089666031443504504463712247005204568905339276152783765244114043306786229539491260813381079750540379498909711753616428353477227423368158491996133430364025706457047377542476184500917192033534892065604412832589063476670766798785546504660127548415179116341440990465520352629072798747361139244569663988103280002104268548476254996023917211815196318311729691285774545771307451140573721861935299244939053291820972254573626228585378106280339132712265494707296797801720687902876799003148754471413622959279556277723527191925321149869634486620802050004643839957598904631608502572525901424141029826087369467538027171470985813181763438018334284431817812312598397501767311856008786897074681482887120617195349897556072016480027874913685072665281128514361866613350837946738066352394065650608619628577394575218977733550334591605664359369525731967335278235705231709885007879932404989224960904002172332836143625348098445217442494608530393423096190325385293424573186856213341372840301810444356788631343731750222522462349993334260384202801819367847181016818284043996042409671865565509336827378589663856588098461223212122812184067492240703210252654551272506906947345922384875382643737045365445078009702922498023126368311340747619561390613319896116662314921066575954150350734494223461083009527819462130848750634991780038101796062589950577155709266065106019309875343645816829532091506765103188647840360844910759276458671591503938904712889919399285170621186418698631065085320831532919552112514311496834821566936511752835239320748077123300315126604322118727555957992184704619216811180077800748518489219059423686245537635708798578839130023045681864424048682470259204304025159170645473428114672749544848694566301579666842324600539949915369782672683849603202992510389886180615030810085564718756333520447512278180424363095687964011283287486569385256892580131990154463486309077418738495537283773726125347752200596548947474067009304508907049532457166240150867490763475650312009702788375530446561020218706416520604909969614367886555078527138694346315960501088746662631753634255733482528535680242505548713927753209172331039054158733504259911751144544978839663530537192138914286423547167570477010669099447383437807543708722974912107795180518007508828011836286384185371798541267330095708137954466912616368685004555790252538681230583655443974559819912094542963073484357737095682110012789664840615012972141880095866363286168876782245065977652640891667766806981019687173682760108384712312060200039376137498108609255337855226720225492472525649381100299020974896614888693576298118924477342627410195811704041639755041995694662199729234168419061555767168830574747838328370665302167644664407497795180852887819472412078179118898946745845423387830434629233744681782189893348360890597462621016769852384709806373360257400760233390898847843876245035939830355806461697095504439918187789656533731643329425989287382549393129338833148042982591592596303099269488401959389616995790560496950690780745152314717294887298707858239887389083861603169338477042678466893333135707037963684953536095912848952813968678308065712289400600558973332144781842768248776344761835487229613262629167854924598468688555445977456746326123483645943672155335326454961206332754043690770306013749705108867200555383826434054306797972387484572552670387049412116923076727923363236758941655232259019110297023650320234242332637607243383003333103644769421048632822123776113408648123183473023165258266111340733915880004278831393388124439426119848169672094385897534666715989665002545237738956518957095064870958452226676450539872546301350725284853975929282363601550184164127327049403021902748267674070618971132339617859448125215545575531366580581234958939976496170327142809004804604579521334681603870973951584819484907963076947480295759576201784025513847022486489244629387251164924598539554255320844037091682247406165734623671433081221576814345427841380101934962636990419402449483665955145754598826078863774543152294142665998328143804021563511633394520269776370398250795813915658346814216024669729406507449986312658039930549404083724901779141727349943493588228804133879465206034295201445783493228730439707529147229063484244028358837892812426900622562718317229103014698896039896698593740227697792786245356011754552844199531291634621647378629825399914515565664380888468517898283541799904227680641922175695455806275933426710619201695955809129856036277729455140227292942455829441740411862067602283812134736976383831136659099943939423457305221406909711649432336752590376149795724369676186355666444460255571104632620136376865660038161593856258700618599270512506028849451365354596602947169289386423192012962200142110942922954299490077345017393207593379334856733533665929052888448291374018986582225708344327684593111096359366854132647052741112426683558083433239933533336434258947784978345142433700789297358918319624173479226785336330051209099661475579832362082633262845796362918307948988159642157484625023309606643015483141216154374803849093474449546299602322387132292365004840703622317288262377963532385672886661110082666483875355440397897959190822102150504491497045517112590325449856355848984066365527105594015914475911195023084301260952964408770242246207775252918116920122952220167517396032876480458648081122572065016227992439871468667964851343991206330732039362963949837087982536500551491913503591520256024834873283076682098136666010261633681207766063765619203339827807848012107363433889617575642514938399611880448810319775163679445584676159067908367788662156400481984791740909122041873864326646330760138193257619314491800305870461145647932742163823591227763076979680296473038215509117315771838773676759347776694285855202843195022121642605423910896189137351626828213187580523054377982110606032773888682468948444354523747103793259125279422244174912781612053338913111149063278234755319647278640141686222264617269222830615153358944504851203187050596247579846374958954682717141768535299316705889746828488174448865742929584026693516074288582169080903808310017176260131090780333685470941354942379938843394692364726293194062624099873319820700915399401589267994378367317421104070077340436898830327712499585102987748717148667771434646822143330298285285549632401768687999440618698711964305356083187111571256216132106624500761188787097838959449792554139320567127478126620382053647561704707029743102239203435013341382171828636642841354494316427730214780071447526120312011578738179822999047308630132652859400559880130804293767015471850758674019816352140889586611978311876083824883083053303359599704638314541483342314158310679844317433468414416186520049091368548179119149823813727109589255624047428121740658921224731097725355229196131691400813516908920189334610316956870202934932186722128785981634807763498436511867338238542609468838228307643685083727923570885334551430013189493995206750584658216682339268169481615510426425367847147459178498677789517529809796514894154634498617189654077921836109423890235040935395584751856631429850061515312061989074871926806100854516661218497764987439196695060747127765824958957119151347870340696629143144969454505856909598688651573847848128144632873525981438383610209126655756132343832643187896831188218767157915792904117601943647566100236514903438352197804220321959371386944669108796408198367904465735658734246189513164693041079389305689983081750753704119240395454338745501863893351730405642510929277000452569433122547266262151137915216313035633642553096924077107062977367991818326831224728564951116838608975577302472997791374650606894570519111645880738594713082233740704298262207913888632505049795688459158257213515599034423294550585668724193883261149516496105902127537344928041971904142271349428089154138207394094470066594470415088356496853382227662543377486201652409199196140586989620245044285924415170217012700591810102320957530356025397666254919894318980612367521683908268055952500460332705626531690403235598267423699085004813708869534868264997148243271537654886942697385562048631314111346995185819919891917714876538565112865139367241295569506032631617586987972047752005419602933458559600617484096667592710972078370159614027607863123782958448167324759738119937973022453669926541285998370043931784188032985744769111184620571576330366989055364269246387445303897076651279848075219133434556737972371195744011225460053932716993703052813503679726771264195113451982238418710137484074607672390782680705358015280382822640709165509304298027928416062790026874473340342615066802570994352394390509125890319357990604739813022524944729150220953832188908096222741628920523951221778497574614957241548985949623845406445845512988121892744170631405812201258908752942577558477429066791688505751476845299787132417316672299617299345102706572710503573979086448740145055734522598863263558653518715453335536890298683844878071190223039708047050412894645264221648142558152576399403769019816872808233815063774240957393596552734285776134510599346383550050054190512126344012046733729211555255035615009965508269531867340758349420332633473532157724155629119019869876709142121506277071353642003063036501105868233339806178245688796174186311740783675542027664524235230897845839022674521081590391735097775787980054851174991473289609333577642273413877911773897712953178541306152819795932470765405069429071953883292898223569647297179388368078535553805800126495977825996022817051658946866090391016105697182697744610676212061436875855076953351541962892149975247188513018644987803808220569682329135783290328956742966380453269580734987052781264202980984570992295239021785960700456189379612173055716478266533770705295267039393941821465175817572808813082786635290468407351259252770723636636664502263769725336072595105971669206738644628689630612437926219332299931760770893999859232531003695760336471624035735879877470028355295003580521569666366835134082372340746204396735808219194794334965971778295264141837405865659407252498166433996041320127606659645867228213373774007032860166830475209868486383645902100715603678230604582394365636492114785873085127654674930906484003935690797899765204090915971332322915300396667270984438156363474760849688681521713155882768575737679167668196304956980438333481536060068088999991235544315186122999753715222517571307055511632080626155769691718011905702582984973636905324093863573067378338248423786180950538771548922526183303734137305568065525541458055621426125841901103975210137093938685713454831429607382824026722366993774843688762830852191263390365164602749221370284439017599847207397961030779863519008293731423421145105950826340711228913100146104295634895969608273396369717366695375272110561020621528142979762553765593204562468104263939086916299018168233639385447789094941472513725439277273078710533556506365357364480627520025367608691550581659734012386601234477648894676968076014517173311969433477435460147394721332463052105162587841528451584927819830363787665355362717199691322778273436734184491555606822870785353871402125372889014551668472431823878453760270785583662093437056680123228247772810380911158293337598264179470310123991914538504144653286393196705955646018876708727765178606645102046894252566569124523904664383994499908748613294799758882902227771626800960664065885173830855562970661970451851972993844479345666984678333394287180920952430665057239383081813169648747638908136447845349772878712859514989119051830971884238450205804666094448702294087176711490991313771965015413639028077888214005873263346012390981813260686526494188573231103343789463427787484041557729416815037153619496102106381020432484546874347076644966531984771053637521627599848413998169513974409933964387949433008641041288669998938011961301526444822457950814739226266842321619917724231582220847217682681207848204992269770111100861262624174181905426332474945454002960665279502105086391200682917437461535497531232856809984229870323763541311944975352431386673191040967026168366322741252037488812744768410275782883004206477384692740441392331889657181660165929781501776040707078662884666805039984431135628080601672521780144354868285448221857641072416616941918435231971158509477147418002141042196739099644438525916980997541671733391196794490570974255817599663868859403376884128737640300608187265624862007536070866003259733576830071204694305595055018807004242271880648358406090810315934282173985960795419477574979975182079468873053845361332005493151182078988003793802317724806087265245273217356070420328091910056287053939381589473184274616133245518043019755881841285187788901520618364402796652062240573271118481604950418724924801996382515124579802341678438828800744969304193227456338155305672205985555778685129216318325981824730645182095927477259620343406380551465957114188725217525762281133289642496835648366779355993322373225383359857303538673438258035884238963088948223369152435526507997084097642256788175153797898120522436110981149797741627825053959197798398347801791075478153379797976641266501033451153954691585640232671950823390978037794071743682258778058459221946368047709846361172921864210422240930599604303107069990307460744183588741603730824022073385367628876946442652892588996401004281017813976226154051189633225158811062648565564073716877139110993577736460090972673397213093467839511088957014646954514991129854237162744991766979756917298604185316143587516724846155388649971584727561324816097995695183378368904185449325060288135425352688590573921793011312498828145934546586020612789414878815120787515833302071340534896059780553267480723958972081293914670551621264578946692484427544219652199221149209278970050978717141290972359489500268264697126234065507064150486309556959452216239896800371448446018685480469667404158054054550512558603845832563053952226459611731876649786157015248419204326148256053584393020087173284463389620618051594575700758073256089235235372014649277301091283706080608949429283462469628843464419902016159364558289219028709226589232602493753311109573709078654189603467268352976612975421690519214173376580856395685210120225787225453039697421647823491283756223082090013666846257560383270770227867699421437524810712874024968644948519006662001551652654585330456788075275824556069490683346792226539352430827468127739997997554785803669025449928179116443262293926862401729969644015694512891495516741122452548644656521485983509999480909493955944873982662933860624377166966996659444872610638851575962568588029345268075040040743823811587780649929989250139506941980859700549677847187753279842642672498383979094041209625309647109744438945883215966728380727437683476580687730574991540262359707394648404829256723413408717601918517845983321636071900583261190451014700099961940009869565567888372884104904233135015755499453114052118518480686759021847086912309819187417476289543141701775648934678150032406924736223908267762340833683838536251712498569427004776756309718741253806876012209692465059226947788950283159072167444683184441299893104841152703798467946646820412102443954381127699825087150328915503210506030480207323467724368134158699104381039831402173860878574873536329904399841169726195868258121393694367711191258312303367479743137535789302403396805549198342828233440494942590179126669376701367153596278816514149869050572940368990132950454778405029692079022269401168248793982910460939918455608138982999582665033909087633507250470189899674376657889312446259036595973863815068476469376197476498730353927991470589132318974515771953318303392907024086566585193163334050957841626876992300472340945429843314423247997545860133094470223708698629423876540324016587703348775489870260877587670647787260265064956331906191242177663698753321492141202525338390637773299771376308397185887417175334753400717012338184549823041415207406474818696779748972820050542314970684464967513038989605428913752838972682574445617711736291681005893996499658807639303770466747246588240475450679616084580257619041998902173737323212248655244193212444930848750451374108049092118720726024103855278890407014609967866795805957463054545195496527909755128950509331522656471741232712242948102390291156409726071031661193394200077289909235272644660623160572144871770120075886894315562614920185097005521562983911938609104239218165084851659224098731166447512615491076528662978915162650715044837203363659077476889861570076088423847075447609540201537023270627445255467085531968440376287138400401808292155035775551745999716876725625719880443632092734793647935150063020049859199028287404670391722674229401673714676466806843379801876151983139954267747482079186064481765927407664419733431676978447989413118736463175758581231248762812931169898205244698087533005320174236499451317089955465994957125246937808079579615561627411208311848792194496651302581392191909071813532191461824794576331194936937478333606640913769765286684598055818309397763712824982839557049706733510636873070516618089055638298157556992619621314505845615909774848838044332858285591903796363792544179666929329684770828116516162125225250671931962278446853721808373222388998307646665227987377775713935757689311800025674634833837572359038246674934660403326771098153446243819453329458141407987722300149213414570157280741875549521807403773890289197994268580959935381671815609596693178669574879783467379453842285122054170993805894540529893393309085930682029133562553933883025430021417889528786121488414045864092355793485839487827049057696571942255911518585508043981229806991086429457436325229372589276898554164398104155508414189896126518576473530991648610769128688517167313547379685627188012582924608912867240812010002789570998283113039561737008030878392413402839118165808849983040375278554698460813374326428567337071231985715619179084940323412626578414474815808210114661452242511976217609743558697180110017386701168736995975078009041617497062915314713007369211547901848559784680433723400048108188966480286639308329302156853847889912881075666154991064836536971928364018692852519447376342155744285113126519955622157246861356272652750960782425188279924364338871466524594898167047374519575990112993550691653438741910488313318856146431960608252504304566167821191367535226528089512922108394647148465816480620653245251079496461795359744048817544617882319650382620685225448576920393625132547747970696563622158129068875821921244049545997807304357602469573762591231379389615724285240038140988451599411482991707549910161075534158196933587747284780093065450985926394766003736935974480192111987663928969452277730850378116125180536557136584191929321045682277750791711113751945690313845107995819665382931592821019450730998709309835924896826061376344133569422875770055019741880799436971843071825531296358351607878131002783302113173591151195244000907933238069012857135286469385668949137564719770454998082289245765015956027967285929027412983677521260931295515502889540330308806277196268566838860823078489592384665554092216621592649197882458314880152583490680098167288206029054737532457107495795313431477110611689748894410237443160553854342998307503250284908018686674452999340606264854276619167055488122653113920327548524004572353813117976737067675799476937612478423739585880769302757117471696086391740154441505141637365293964868756271109552421422364429308012332927410757578055932621512405169064684064269528643718271424089313023860187925850670646867070257330327961859410441813416517015174462247156148932651603004982338001739325854923011109949448140194596163079301023059985569191295770439746186788245532284787393674951846027626288761983583247050838908154142474981098892934651067634478999605012745003124964040154224332480987056266250033393715293151547018915885928759746094974537666264160555903188681785444379311023368546174783819499294098195253299885032538876637520437407895263532176184165937302424955077325452602149340549355332328434726329395497524795623221608393261931092676298065268598583421985921441732651229859376308453523345875093517854090815606158522972366231431751532174996704286750904945416904889180262925774416129253641741139394101969039262613090874201472277649923179234825774204369099756042791774697721122502080839294572286318211439940948823101296479983709299582326480578421162299057406488235514568706316340533843081113482699349420178134353537928227582196358728709677961691011123048861916790403144827653723300098300429391581159056909533378190502529968597704614348987748060323782262409598498853902482098260595901699259622912078350288454560291844718058628336038244076683169595108910570759880871384186052048804346578440098215161593418739378988645527907149902780692115651928364078899546843037848989365325825398769044548138633489626123888757949802687943062520070651768765117020691662965399571565630822331485729592068915387533019334922931588873626464426386748250625326287047907517927735277456510158183457652632863560189687726671928260099431270406970073343827884476689975340445393491406008091464420693244011948068820523813651580003148399906486780959959266978355175961402913721221311790320255373888934844979848144537404403887485624989324769058850853815873013606493128731869812818785778623651968792576847464186502148888461129963926182549688778127485104225374705128161935535397852953049381525197826199054173988574443756124801972858930595513615243131680702587788898025533606878702346801261454876992532819172759374280581679874100168559033543059241439881789597555712677826167667915296617382200853240047845630848561700642693965708226100529468251710014965065398958267941628856567554543391989680157392551538493905408455666195173980841984730373440300924716919853908655018580070162180568665310550291811805971280562772566717667330285501832685123165288197327503196780319346338211444939076150958871071807856620976254405349150132387238148853219518470404801156715183450970558149162752193733957859126955744488601831877154903375637096402692340060632225303477357901515619687637982530989945279106394924168240613122936580043274916746499177250792694049459872152802049581337906530837287196324662837731266026824401213854714328172871434734066159871899205088180734361867976124671246674394664276595395844332025288545448511662565772277054918723024223594477436903548264497152053186201018884545408580454854325246638810675434459700701046891113881198183730598174542993162636334236695463609430918523463884655237794193531489375839980411902358905859302628068124567061899735943486967243418797224469369736266776815042060216763308323117676339218446253588846100896931619231512581793568145863225594726449536270884853968650645117057845544105117700063831431671265616446035041594631124803905998029546655456757051521923156890932313034880554515349884650906452170139402265942032323884693118865372785801185192077305647687124649545835645892895450224713959214124303231333991955599034692045384679876773003282682591686793706720237337096101173220841400700277991985386611414889845752014622138281345728370796600785216036008962513619968729039259132714302624026985774772139225473582869921663105736124781125283907279765928245713656975457269719286093367550791232472557721515323235241935219310534166571070794231584231586219409733146834507838292563618439645458906942903050073882994773936711081936205508644758604878458263430656692100916186690729837734066336350914539245854690400403314405033040192682171233205297500918619363778962947453928439480277339011688872357036367908304257098990981077698110824856265607582247497973534861409476777961913201705023958439366372099194642455421646403137372696002113798546178762815160364601140138044250479353383904758760023965623767210190619233746145535488567482101902906161174157867559501495462306436008466264880384877291703217591022758024549247951551818419362021989098674961648334606701324918981034094029002948810407967390671889097603358724455078007088393011994440563023550207514605129624675965442764918875446547966663451212372146730696478057069989539722532291894738044460999269439944819710189570328853494500232369640760114766086247854196625506000483657827684810364105411846135583122480360328943600547456175257368594416824502088241558859489377154286597857149966510819247183543154736742682783082419032912093392942305268001966404465253130146527297193784278775542379949190763447340910544064662821358489420195892384119031086662070427961648913799994643902563744026391139156158014679726489157852975129675379502370123270953164327187667388984464209162206551070190150951261283005268304169918009986656060150602826016391934878408353978168753874302962592938713345407469667367262102456436698681789242916096460999010669380385066918663608032385162996520060718431112270676103989521616996341033494989077437480350907433861337737813805586102174045232837921185814937968137188543027519824504593860410054502682352507875749931354070783995915286655995781213400276801034424892832839729973966190128786507497714085707321206430747139352234697579509399467266497738229044238609086235382377007441488056592450647218253606378363748888693458535933249940556534635613473169501908401089566672303428770617921895348310112896674512586796879632790439916062763504874784423259380970726086442099921041302039390605648315810312485713791399285324405405354156148935065110698844406195310705587259919021495547789191892172574609673459469008209099548277160283651122069267086430986062109707701659422647202356905548984922262930409082713602247606172352221548928427069903024911635590188982380928377451823288872747203448226284328286077453385357636349786687342449474692299634587593536413197780908897232537813335478479610438779747746078282913107993749172594807582867839625873712295781576783559184581328202606371548307549060596228766624444639376684280205909091054032911139698730852327238923238600510726598001939146880355312989494797025039378213810839359971232664160843040031009022324145935511575821004532208650807574762339243047965447868448799864122457189198393312153086437408776019859422870227005700010734648981981300166910977902243334401067730154865315732750466888685880453267294516387204167712345668519018936844636519458259787121246789459565147768114312121288774864594810588991331681773451658841570111025631248563872415466660139166273174656304646618407806805386552155559736770127409337187541626153858419772248849287784414080972056552390066770203190743433937560985720978343611573177812740303942392891067496386237997764305006778947739566277067435597581244762210161666563500204230175881708053918135561744659851876125377885326580332710099044487779653343631975626908127046412138419118814156646916828553096419696117877868979670890381365946634074186475918736764532571931790457154221313512481744611782872888276907423956072622920558978328812164947684749973008063459396072846103798693174632803677139313499706200278219715972728447136102128684901773105944097109861136483560949789720077230220290025662219705905896167052796513750885024841376826259360755263976331157632075391118874942548850108139503806750817507450475123951460638608936201044057552370177838535089350844732908645836334286974936012446301251416258066324723974781779713946497182352770462363969521508748425133523831707733255630976711377060530642696983505947485850383451947702256208931158404368518916757611468951510548294446739198533330272131835988119766097285436895122218538398636519735666471653308283032957600719261892663432166656131518590534297571618673675332093086484927773687896067297765805865814894441552200887469397178695799896504605651887368385707341605662943844122583379124287674206144003927238422604863441835915620675750549053631627767738546619822760445239165620558563709715777993895117850446438535027246958744957442421768886178319488243667484436102057505819734253368082136023069755717976463220428783256633145385171992575066899413352387552273005229455113116466145258922101967021537569666594310573621973972310070732424798579535118266489758584296083956279036147298466876411169841102123005542977907918735844071503259509507971224919854904971846977837096507710708368448660189225794640404850738961438456767607772094645354085382110812748184854436442416224924946572150585900266761237302331571099449176033840320691343527673361866202112939786243482524625357204941403869774707860900374518585552692831194584392222223625375948014517581602670367961630844391372720750782833132709759085860785460265113732289478584528802243457497498334506444237783679476416832739084556784612713522525542841263592897204526222501893820207865864298364723394858632212748009674687865500018991710956964378855042082036555475236436726527265941943711142194894790252982612644763419330444265372308197089007448226607699252541665474995234886226764676214225587860290202204655476622791488524331607311468458773733438545858354220684699181268001386077396409519893269447672878637121260604734696131122023318645641847157747376588889614977596709478006650491815167601840046112822657985549928453117390911910627236832407114255189799459669533804547179353217948530808958165123217032036778205927595740991296921378323312977351902178698494994736188693789515379516429831370293033350828527127195761505186835155090500584810935003091451519071693088574706324169089266232296746763376809539011871661847917775960951591242358006040530985505395947436462634581677652279304241875468151803434882496999042350161637679789844346862193451534637248133994270373734858588154697007434632330076649213683639561473087934887869360994575603640833223332811330646106040862791626529385334459755090141131324208435586880880541630577336285355634151255911706890420861081223429428054821525669453848806930867196039241410820433211974758900203093344327915454278549243390144306789052967301802742808144722466014988060928713694092729812050592601371954919520013485903688470823831590533020528348058280471334952378598415122078915836634771545604363070799478933866254021744345579248646761239562176434933097784173461586325142336842028254659782834573333679329986071637623032616839955287299787286306092022101772691588727846147332943763596952726934260338160844751823467214909560344036572087140993504398701470721485409156711505779558916742481307947914277305251231179729846063131352915151695877002150346147276936130414101126456258890266396222878025784451834310110653878524667252868760997294488521210143395930128416375847267381906226953768712305541305507190439582554227433163827006525003884604207577669384244748437134568197261192134181955616712062574399578205171514666927283374152182778348556354610348952223277127219926045182346600726315613188980067088445762635005102204986261200532511573178293412369989284793122877821457224820450066226256638340170638753314883131585951812214643654563354912005914600879789716356872051918941513968374003514908587709252101344761626747986522517904777172594200498573088974624112388382645687205513436344103212720025916292056784407292789625023539827046669825687341342270671704824496232360884270382676494608798405725607781449993875650642348031108017898008929649420957746861556748749054911822910140625157030481142330671151543809965647104327910689829822033427208822735406294626736665760820902401089759878406133591881740889147554043666303887905492103511987098844232762658591415341413203536564428507435772315433524208384526006977416180954277399598641170730985228116016170488066108183491644973807584323300800812533117476258100758720881161473287089480944471617762686929728063756325208338082190583119574508456252665154988400530299877100071805419199447983082056534440129949835728366286254512910148253536681505026371095762811060161641122060025303937991250355532146395833144091695888651972692069383701582577618394646169190309080124366076388464871294030232118760880408941850137877730436445515432919851771147662305845939988126461695987706172654645846321968901320606921214674544426917378593012533001844708083811499283297125758294983399929154420993912223357781902596713994674619923663487887683717900326270258486379769136010844726755318907379848725845094418474154103935035144263279985015155247607797182780531191097468585475664391507955828705253640222188976809563302412881971023331132169485929220152261862034691019351247236471414075150159930329310788741346478147691391301424301691355077890800803239826447398491999379174880243188486059474713612678775820300001346509567016415208592818301101838881498960877745583934276557220486361394064488556509191855531663353637650315504329712828793500688889080809775564101681918861934045832440551054655425172966464498189302040398378855869142606919696321603281197678191810070389719995000536485800092521744826570348813690255760361774204201019610369939649537782180487781060089886558199019747859407772535664394498710064745003122620198848083586399117167317341443870276385335723089725979738193475655650639189660804628123153533611078953065537027263914763733117222116263335925667344606538641893106562708443705047350861966177107144072696578784873522745308393951734493609713415878934956305028938099476970429522359873240968524496305438075848934321009745947007762683227047377609473612125713974604402354776340382723495276167724357151188081301988902990494557758263735784064492080468198897749126208277684772890426488890351352702044454621298896249424636461601419704124532584684603456636870809469147072180497607835829491287550756809440934564477247842557258998541571908803770175327635232054743955601688303052151567832228951941237224161206412399653340363560286733267575550373217334656856213548738316289454521324443852676139260178500462749601639978881370438127391241252937256991035495421408885988324497799506748158524272843959642913472579210717713398060223729767301794588137493361932352403582823725648920611700249826224665573941919098900075906268796838954713625422533781054717599697439547183718737129783785229555176149999952089694060439861655007618175230541973884250299754258655323503792941089472363320895411819305996328745831267621793896089012182075749807498375228229206234367609375678811834459613226961675460593222834457940732456448637562639862647574600777131139688793194021198659571586459124983119585048568518973163166175007259431329116106565416025421376624156814628216006510485166852797402412300955566681570803217195160620861294736920115050908168597186689212090618329394418261091657616171917091488444835126321243615781538763348296054374981124667598486405039915031815712883227604547896208698309451097047979879197071997627767102842139679107989267035531227656061715186560069698345913043597807427272767746099367040112801220322451897718848896409806064716768482909414534643738090713891984063021772859593825455457145579868605772232522346089742856294950987229570366926225930255531923361125611119850286328931389672810600924464184852869319250653420544119348270031053657744711621997548870824353184757324493315837443176602353527150336227835911429324596548560061452286710980301227277761244002386605153135116631942590362046244478583444497961614424166174430778071689492286969987641340153061126830050527551832232675779062996247049776075820582875337844247011976413772340842876996170898573506447275620889353208471101855367505952883930396748547015954591613025571064935956573770380403381845645406109067434899800222661722016540143208457569604515641029585300000563672585136796622720019858942331582476999273632795940144938903601804730660958952062249924275402989586513170974316522420041468741485457528767515426933385911480346547419952205341026673851177995620358845393814546551120233557822415335720564620968719819272002108136377210695976309961034069593914303002036121078947680646288173032659758104559298087360879166567723548260893858648206233722125030230645934422877392022733932018394581450094686413704923933320408748653674533607461725655085562399515069884510360156675152963960624801868001305270676324670502432031921567766124620188259154343896500609355376857415360203946783789020170452883351145907665103619062889011013355599168666954915903626176703881813701284609952213372633461520773614425346422639237823522508782201771573136396184778650687120156031865825873132811337644052449630150221151676615537868821554199989823263089755809421677182257019457951329536745578367954078634756763786939283102427776397411216120886052045225778570823986297972661993054834703364182902880332287560599745620716116860793138119804212727067419514498615836010095894240122639281942604771133678869056238033389637132130885615972433734473061788102682011390619177663699353389513912915344615824234446917162602797719841345256176943877476495229372672880775953986636136855563758036140866952579045766554427294604537456592758698689760566050406021091542240017038137984049302948819599869603343668425177848826193368275133065037920436834510222053568585969032723296153319753851120676014207181021863524203646651276206833000783698826099747801500273608458377163102282205560756351401812239719285995933680781905935161801386271070304889343385985903193833608765298991223497204007369794265997018845303734808803626098042537632650235051931253945644955958575193653457279083706332225762537885548474192310781661685384141428193408577358717238500924015207652243195904880900108864003745831938477254438321738258990362353338843345922448850152283353815975757519829544346366613504365247655552565470777511880353665112988125035655982229096493215185187548909404447089234007459851295680268759805434487406299756293100618579476903170721420732681234790494478478863244680043777544527959416553631019553695437330801410077515582941865380483549611214217048099419315122827892609136739860923158520297128547606177311061062354784727748988655189396243856852308046331386487666931172627659076172213868907325468265492915232387962904808771519290238179822058867604216454341377184873227622106820081224343163950822150152798866413855971528922792386630428098898527180625145781517117487294884545992443373234951802614881817570385294293640179666619957761558911829355340012311227452999191811381920700518833065576788401351446969689342596487993949558324263270682874516825355886085262084421192630198765288704936335748925931537907656736768694453844648170505819033839940168121427356271421286468118618390663288744021650890167238639160982044609948865776138078103570167281329049900298964450333163395864637819665318870086824566763510054123292531717448270279614409576768309786889171612575531601828274298104315415064572329055901013599734567480295704845178140638364487033023627535465678105476047334363436540607654789734154649986496237312404351888981723602236740352149113677388866914199472846301832818618527938778873220504818477190026610783705778072630382498308447806442819651597193182963407649559750684276972356259748813267442975541107464924530971968965226148370277481227205755104693908289035826741113221960333244583348087880523155536337827834823731794022534759562776576650390863253517768693222039288668350735390374644482397080686319540403956207162707426985204162577391122961109934816706544358696610452568849768533920705481058777663013867962691320938147196690813148707964438600318923933120780072660568620518702800677046801883792004969178114360851232234275384108466485219989655776364271939785432848596908955438220174190838342424919266154236576618719029805237482790949309898160196476350057596486324276657480772896582263872076722094212743624778526717822077917381186289814177631463344290204706658148692990826234069490263679236040422310471141505313423273888874664857331061148737546511664821855886880753151812940178389718819368593417563636956370855125333086320297687759646907307897846520383225741570878228675342424903866510182933898068644253162685895470320050313461642886225168811050184985992719009304981689853708436790084582437967989413242039289411724647737336399006983327874581679047828991094973238297013148364004256040056300926527266535714714045415710017081699256223355026401145750998513865270788207606869869272150887821413490595888106321310677027246768146071084906064118021298485972983900024156099299242629471357112576493885026391065317991583770807986937099681495257950819468375467811752269029175885037603990113205445108993108195979726015952577021207627902551833513969953287136748249693776041394143536399891033921046510117963805562405599360067004679459237815581301927054605522223841897969660342959892527192218671055583760088678602849774650638872126967798722012545835917112584140781913904940213527390651871029814646189085927723999317944676347793533711599819808456747757501916322239357590422353684757836511292950794609073203213186771159019625582565623330114558714138398336430658919152513300448728379212245004085114976744942965723034485160738505658561635360685478899076468207624805388538436937765974371923260394246269550781810119014641467284052891397349521285135495099143409103722125262096809521825283945575388224948207920322094848414304893204977880246385008511544724433767384791759550814481177604265475916284400563587064376789548897504012578051106023572361857563878481901611866154407879257754808723722053183777134906645049151784425549749319432604886741227048493302617931099577702171402341321765473138638817854213554707028591483701608546400322632684009643538917391324135719905798908816301369988947704483418857662099033905466284215402771068523496668505318458167351065581736841915124247067119114923633608080495853126851256642618891947413217266636970097245966741670614754547409250134903206621763206290736478357698273428106301185763588474700883565530468736721580048193569937569574637430574602040229384623987158380621211054738326526345350429619911279741604398379619165626423398120678890639582102335816298314909300081816007604717585501151114258715841841260693785155773678286515388752230043125256428232246136787438548952214154898817863199144869768296363722969884721544309334291391442203122027856441378833262118424457379242528653600302650259238152376914261430394720849427401448202749478759078078793463595133506309851369595585784234061017546180048417111203640468564873969960039428197124746821382570037348478551327121273524048494575407542465196056659110483228827612983556696395976013581236139210759004551754401120349196594921493282175431883226622456787122693306722636376945603672187516571225502689715483497490349544376141592280670257964908682684029148793278533551519540156923304878042811520128416597651507352096687235633248954220102896794638957356117996716058986978413295782727706584442280616845474348669429064799616164532267413991320083028613394513538322011381422689537662581903612451528341963453229378857230298075621646668434661718025464091037169376561606438948124082578734456743358083627350678826086585377071807020147640722670957095167309247882727074623888713981381761618736196948856667435115483905108132771055215302015785436810146063166612981544747002015764792635260710678741028380001403412678423592052588933754990286256069419311786910233458984882364529745344330997675147463424966544115176925493751783547952990621451040139463339033411242365795820989006386745963662036251485480361681195220190470651515642311182852412139114968122125341577139935677617446142157456178002576093649766653131354616954938363884598060631086802634835145912914850268281564970199190731600832331862655853014947538548045796395186729140220300289377644067432842988404449545968122426746884394127631539846692646216869603827992786361292053193110176990672030122459694697526602732288894474137119966221434603272705505262135575964965276985170410816391483135226568362321319183720213633772476141816527981461476400791902081726415957604856637504101449029602473454835304483784250134279870993942749620902445170206178495367070188974974789660352869556886361558257735269972102047443209055582581999467070729337639250440350185207143141767355289454081981054147513824201084784333868230842312774259744695721382231948277861960690100963555759700946711222878542213150754832079831475351995469873482079725647141580120834640133943215910461855090152072745448300568938609004741474225941392479518410725049941784160274337588332457057795032434682188465198167518959276124712843070633503386213490792892963395834809495558338547150451223944529790560545440070811369575445571046161360723091342536679014973167504644842701240120995986650657486575324905707828922245889305650097920806755175732402063015368521504211966943273664878427771410896304270855581583381253037772739360796234886236095521621917111057858106992826315118975849555097236170481805100918234936369648516851263459794339598631829183307877631407894967481731384240398731996595382588401239765486419574542528864211070615741594750151885285724682390822565895049978911080273366478809047419873000590159181979082656228888821597141562387804699265557486020610776171639624224788400633754178338481055772545346806278396124770307314686704659909957458821895707443802375069208115432020982677321755569308224654465720104516257345743869308685740374870759779436145823306617038470999266740714340875545673831501938973117665861055560941759971085231962183127908659441842648151524735147992632090177539450998155941114282030374178607131604089858931133323804871512309058908683030893845861127080439290714530842517297941906137219894566154037577192955598762974744523657241685575692764618356259333498986366149715678949554878095676268485215583517517011500301505358246680374146104839166360963451700617653897511883781916273775996257979322017650125999137334850941635860985445574146005822373930996055640779382708615725046844684281421647607882512769531873210563022661955243754576105029283112673917609996191349076476360273172025170038753998008664246076000265963231748130335239698144869043603630989662547455766781011849790254606140497190341868642703905046984725613324868566487043604418110302476584922062525174045137062225706745661532011834827026829855142147739275801582490331889934999107001590840556415629074961173502883390649865105388504867729125621906902315026608345540141872154604270031399290282776213844937466011222425842002770922136674413553302455112901067269273856171204710686708389320957277328863700016077758817791376235321629497945582322230021409020544075076565470419660024605247085794777865432875619087419753564159123086716711600390049782575676537067028417295817706869422471863948312252597807974005100404515289007127173033407174418283592531163235337660363636339437321084661002751224901368921403129548716424839439978888892542227437539457836144372737680017199603315904036023166642178974375994675505351478793392605271407616624442686633070345667192660466269780104367101211243766038166204456011448020920082832281332467015827999472521318862966118522161687615915619166877626495716639522421125232021174941267083529379896414332078228492613187738611898554663094007082948000596841103744980053816898433303053330121968046626475297789058811337686427426264131016399909399542649941179819008862163576263357903839223084843981063005566120189827258059442009069784712123485837676801948933613765666747131933704283210051290711138920827728327669670014965889334600559625663298577232378823373009141642990794294126721131878867997720375845826344485278757217575174321888415481733441536882468087009668871706061698323345132988666044360322270841991553108279153712042824553252210161472355103334252507878732762416233842930991477554664803579062101386936769795114796769486537232480350935717833488860211920248508768212293867349696259459006554367257583348312576231416848962403359937769436573908179445424312202260658548641781119572632060028353984161129388910666338826944183191034528427406466966276037132965642236428519115832196800247920524613348678998210490359619854153664067134379023657152233098401808870570938103685134210893219423368728561920986387378179872746374958827852130347056927835318475538930673887251207519155697512838808673899415446422942336390675115906060164041561958856188614928373294369368850181361017721850089400284570824560081042241559830567058677273102742623547540164402702061653019641238881850434298833425078688399249516757608258780153635046724927762908003672240925199390460133132207590044116831434157994973486376893727685119282695084504424560496154414913107148208083839700143472222697453821193023876707110126878752597626895304959991188767331828227466596385884817884239916412165089524090308451286641758453736856172701972481767032396718712021384856680222190367570769089223037233946799625616263184129219347350681640413421647882444618933969894602524737854272206536604221194513313657981160137023771199583651914218991887932270379906830651337886574933112238099808798581520282697508916846501061297438427145250777524504484950835202060142136015789744347039065221557370156057168025163010636391785179301614462410662938131109827030680622149524140770310350826857083196867435387002491791838908781763938475178466385566544920238185988519158269406013954761887708069288770358448872114800844275515680446604553959054221891611599109897407207501238929576766238532228172714184531667845366748101615666018910574619287345223675428860023737938153854246926573096260017463071659773835961558625718405130506386498240902764392319156434476827281809787051189802448052796528203969756606923309822730356751806906452349050682445619534633044227283010044368821992438711948900571045972884684591526399389323648192264180377052233789078671719960354126244211972061383446437787277547053822923879718987659821624529402365963883819192299519495991113536528356931058479421987309495692740424012983811053607566882137122759014747682787197172611464025521628546748763332169906602572482423545291298593021990093387099054197550123172522095128390975594211168153671663128026459487552124831514578396116278580206745264928320490973359591881017763415013321433733501133207052278915454066475674507261439906379669778624223623674091023910256248849095719098551905874551043533015099666169593096326357652895070268439478286626615055177649013406953626037447808225372496656525665737819888211682850329751761131810459913853885516497692289988707125945998969964630983347798239513842547424269599363492487042025703584365056248973912365363052119871133474549775991379578517644473854584204037403833523477676236355741010922964295644544392870405007201262309438961709855355272233921969114590462354960493265001477170245971692155382233696709593786728693570102036833333332987630022626415191008954439995769167378509230593767874760953465072853939273732468454976354144688792004215574380158899189646798634910814690264788503730966502650768715715457429429722843480799791807378751187073284295484769873681106503862054360621311044180744907412394105507082001313640416406044121700660422985378101239454521329630022310831532222749964830997807620709099969754625911161981924071553204847385802287350641956674290010615605800415808405663791222063391833305268059018766170261887307407249915470917971304592696298074984406651182033320300871650095882065417126761021106286165335446476039632711455838674046534420140991274933467329252074452104910291238213582042462372201127167610281202396401512829366566808708441688454439079938349065504622148460978536793088105019453906394974361584888794654409173176586682510180860799886591219745243534565140402236350596490179277353483205570432301724070244342600439278766778426636742229289671146576101593345335590830941696192922311533889850501913361703470438009060268037281490211032101568388478353827349391693165806721374027936923595145923746224006132821131174576507760320496894736110794967005291447224946573321110917520794768806505048830687487428790897658191330764442920683802933930104923265761306355412670888202009403454842329057744012725694675853679433234013523480573834152466929247318740465136766962923199517479895196510862549201164690624343941306728576250662494269910691887456174457582391575390569060718641876582808405330722052307289130288363445048061547607166928949816023540372384149616594417872961257387244712004668549560315674500941105450287300044172678517994273395254001258749858195266261470964107878011272935537805270879123151300252023402145852481744282794082051676400796676480373538834451847149954583890618131929132730581905186860206452987727949940819554884600747683707908993913831208827096895809784162558066561079037059015535731867502650530182022020190833954343455578323804679608361540687423970107158756442712782877289831772891046263990189181888715136395323150939409530322660461047604036128410012730645703253243939740730943437084842374230047206986916118413646888169401546244009862999212471327071568444489351454499231330099626250750553008775478084708940608132681874315729669237712768188406540903460926782953346877163396415901979307221494919166552120741851632052183321969196041901229901794220383994814267797958175045120618936768382746402443151081304931807873882768249210665273746018228233626800636598824288852416967501456226449496531726833217387133766460426242604872262877260089132718271041794542569752877171729882956669475084116362232234357428866610153470438570887457279057359063365897013973793454716727137773070810220770626870718463917604554024679611048190834298131676213095664895344913548314487831095276797665233519362900745247656261865042855283348579713565600655270859916830354394979636282660006573097277488291706399805628096680353164329492160016866700096997009106409450578727743030295967099338308207930874827365663838347818140087381356172664060915060595567015076656438719636328722974714816046630115053376026498281721233710080929421062879899617044939044156550223723892233533976666323015467621817444702090032403661751417291976436258939867743582042306451330713751655405749587344673960974518502708020941618843164203242039986398120855168711823898655936525915012846963295514031653970280790011007963014688459391435226579216631191915648866471089080957918957896719192643434027634187295841667492811511177052387201936072556697807903181222091058327696848394539300618934485058101862691540296845559964112407020571142011088895625339690077976253230210961479463312976219293598224232690889482141190507995080380093795091295413689266375619632548689559328553638291184858229536954323757388579300165585240955557981341950437743548073679702465445566463371650862240455700096651913966968953022357175179864976638175675265385529209570912036581359669655606642473419993194309360067450275535050563624054489664313065181949907709808166031313212807627874602540885288516565353715991140488397867781128412007299809912732747775746870788781082693244794438297133295049508708522011474416183868786349082948794159782864881609644594558488297464999131650495088793311063080684391911608730474893829264439712734125818315310173549896271917040982356389791920232819575720658356080820588323262049921573668791756334540043347051399700959670275874081684155623072299419187847781301069826882041827895035138894942914437037372864959110553795921090218367780049700072535857251744257425924945858382743634610529461308141265371928555192417259956658728276946927158060118925815167193558962190132928779450186678233471159486861830131840111245191011144277171808681146778197762576890939384787806363406828369078677722544410280359944987265109195397858447410237782915589479496068003268058490539289664850339999024965581063295071485648017489914048564510893126484880026438434453699565527516758952075820951410625179431737634630658254192250764351435156057590498162359015442060262986314899852547760139801450355473547290495026565067270023260181954602184291449381247370795958908874413185006717682959108806526472086678336417054664594280557361863408204525072721600059407033112894112461835034781188110905646217426993288834419603866393374237385043695212023982816154452114516271994937588654644901211864595992892401364621661138268289731806868293983504509627465150072578578244495145503401759572799916376204440557249480743545249172519905439447598607798042299230054134445196454772587075777482999677184284557270255254664019432516264789945648030065023890416813955218689122002118300038889159626870660930858761504262510358129865489148194524573680621848462367540336372169793539700289536835203482606298056146709184809322968173629182490686574543270910626878402652300989499021345610802278697426634231685056117089806364075724698211431350597531587438440270350529907691730860052040785356100840893704934024514398348205794083326372778423856069362749660920670561822702643979029595658034687306392476110186917259983487152655713820833625307381409078800649537122861608249480477209204938172714124624281332478316234983800924679896574402738663552756958631093141452513344562939924925793506881975847505770790137990015083653149192753394989726612859796127940996441842623523122430336151299764142104045909183883063973910366079300476039322223260127701139338001188814265690373512313095887511673374941963447056198594255477910394215632723661242166208440092107832403004382243638904298379018834792998167079032785096308869361254684955934561808150537530545704347613437028107820109309386696931572415229242473465771776150794451947315888375723082907436643644106938033869534843275164176038903568859415059089484700531860185068537089927319855303795146077985082520567948364445547376357273728441665718628839969735540294808560157096164491969651303279179237135450047605387597073176986822735848594507978287308657306262665118877828090936217163167030405249320108985790010380418120712910584888411627239827592871211801894329201832218582577209829706322449954078984636289597379092848935501592275549435369268404430882653983957097729445265587674353030952082567168155456982959227510694078224471515125785949868439545373683686662488757675400915025488328516344987754273780590974646583153365665351919731269338198862572081995792386283563274118333179938727281442948361342145359904577652789346830738777924134679294095546523866658629460228885045739729319678012957144229784232344780242377330021786183277777735403379349810324123397613362356756097849215677035521459276326332809406241111413886826913751520063354206533522609658413604974023789245054118111653129161380927363675853314078351190526011581573620960389847176574235342657551087880217202683538451800495241822267344355579117591991924049039623444952193121750868862583649937644547020506928019856223424073981614594440255102564789670770043633336251534023810313982107968397977465086468793720517035049794401132364951213438682141954297717752328003949586636838613034401158915389946664169562618904862231716404036601554914923965048626731673502297833738074858553589591922877385132531986258289597256931188085034046084006572893012448901887980121564104350433527349965169140484830517038107547475831870500366679985752195266163058732253934721497233899834306470551459336166291851128469175853856871875513363817500849404187045087403118366708481226649473655911916093701851954820145271941196818635265467730084238415404517691714066562140432730650273391004049841412434785105743934641582286870946865472413333022420159185528973027498514457658538553632661950132578936725168853233491221472174922108923618228303879829315432833099635995485201417194777923535343528644836799579791340406297508380380760782675422618933748529293194953738374212384128116922248568994705915259569954671005564476168248731320368508517054599766038049570935377807850349452065890524274064331593182425351708764411811821612084627657960446649836708179330765247559994523373762949412788197564049692500486953519387897528505227302063232189312972346204313764435391691838670742628063718994522326721129276054109474789091330618010420571412112101014880113518487254184988265988358817155792523819388243219311708275243784176298887111767606410506884493851648066274755423510368349570508125516869508062557358030237869750614580462055276052931358287122060709782039597289058234215834252917524107186872478564950382290003207394271054011597287796154833621978616298514687550182281609002827775860298821274144843446955864178925012871078336457124751884011919158626016001888945040921816989195024049438745377277340749397272692058252644580861257142224150590920836055314792200167859088894624558952393587088343971843550909428043521799881249775266259251502798951891966973911439059658472344446923407100111158818926550375148966826556212748121532940600152757465743386219220362715899325371413106080001307242198283203877724848555584573272197297893058277188037915714057664045013068999890475159844155242081155071728406154748096050028364467723279951396178798724226116522754744950029342044377930473201492965972386688625915317571666294385364956316375887701909931598321441583146732157411591162572854526848117176575084160308116385254135221627534246245335216815027889922564382643779327405593457473069781303276556689683241762231308055566474389536099185121001902389505609274437149599816770013841631507268942765664288212404606745360334096986072037641748734549560267924261910600840350173750173250206252147561980995985613811654676072081051487386059578945461413616753532887066730129655451545205496146675590373344311726753278762136752443084058624522375955822451615978635078671064897389904576043122003104030861665600558189990700877778624643379208001976597454689128119705993536394260051140554499550529029397820960399053965390586213280550183783343618920326585852671047572564137803616775638934023223244184136509126921079056493973572793174636618215448588036223067493991379375720672235984019056777384214166439236842833997338334624924606288787486897974197134507578155753352666205269857021144234406277681563237582596424584999741850624323370840482984973397385869889307307625345748249762940418086931675591291178194008103425983765289980140021010188047452141871770740175193986160580305774461313319169202275227543917331084760298776170964096244054563517659980769188862329026221421482721522419755978263837722305871513461236146566997568006351415962789416630478055218961107788172993157283225227697496569433634858095680570329021106713623684011401655720836074908731121088276866244855558658351486323763766126318466208252504350109399265039640551210778362119636316676986425166450169710829891585489416424922965903880050535977905182324554306959638919685276743007905945645215584165713018016915691402682494110961606764885761623421345990561403051632504138073901568553715181396033224537002565676085277694874415567248791100563447139041082138813527090147197419758321721739287924492066095125591114636858348971207468099402067484262613546003223964673192818199792379092200834532078166881399489243701738405693216851667258775534083606299221304731275524875182211370316872627907594162058972551880135310482537942882168037098753022599254675422094441107370204175975537928474542467797530698528846813202944759512023349421723924435384210879998121958547128312544799788115451373383205883962451574530284269884196948393261274506812281580578623189279697326728093624228791435930783328430801191430299198964522656325301313833526013081657803774195218583121398514121794229611920470615204761307160364839220182254526639501385217799874297919440726747006924432291220300587465244432507210783817197926390901312689942373742792482722002261576465256469800669254870475321984836228139436200942400071073033986316193234268121159196004055261433986534228435990133157449275082361006883783114241894975742797738536480869752570144973640623163630995373900441435716984348682964125047399657059829586345116134846212134885620681371609508037569859492331680225720131912018223249072213634073348966286893921565776900086994599960605303153658952128030707284446529257491997227850448007395925719485785841028841392928913463268254568343271148974232978568216313441793451705376512291254087956799785036940386942168643388829029571558582787767106186900048309538218182604901522407009104139316995780685303988498963874958645414316551165165378074072042898355969500533583524091760956792052436083890597291229007231979274728067019216514228065457428277641597510425218392448013901248285120942458863200992169357994235394726022071297917882507349420367858065620977752092244798427782141089753303991613746431099701466248095071855136013783280827833752255465354449802009393987772969579498400785101257900621104793661711959200015899232273502550262203049666113114558584753529553493587249022699095550435513964861294437808268522486093691241401415521340163151759506228153196553953126940920800498702099614274116807353252653341953866300680759607668722789839936117859828480754373002066531366302051336714088613316807968209220260000897926716739092998020931766667355710057656721792396391745717157300885865523690915281982810507488337423637694014939674150413918729749307879107488039612683716740343352963087853743062366069522251603506594679675046163942752507537872437040340635543182262663852935885214453650851975115287578134221624210731022567298418768534328379623484985525315810147337146551285470937018706909881995028822514406675550761275822845363220435241027376006386893004646255642300476725359366446080261825892270499823430805443318467607245214679157001737433457880966326883553417022009334107346819278222584911986629897131335287559467868376228683711097387608728644272507529102161821226827327288314592158683292955808369027541084597249277747216304035450170797439953408561875030872808354872812570162823971752778452159971699096723199204806323945755338121983117805169263011528803088431235220473549237801973872556213518112421206894111964864382812965591798709742821186753769894024209860813105117191850938212626032328716137523399180503245745469594688971745046707174650592241316802226608414425382815242985260130887768651937946389524307455355050423733666626191100246991734126728397981643235041206586099011608857855142272605480855488667832328962986783233009905663693257073796891035116930386509875878835588175316316251465189109588936734721383208168193717301135644401804003099637733658380359067931785020635760037371024280446305033404809880558666663055594351504451537868918062730251648326389464957456986963084361699093362924340317534724160430919258810028865065427589318557476851563568069827786343266326531811037442818718911853654340535756482426391588285265077874282016832565603577286392092472336715888196167938513427283659543772409509961860749107763087780553232230529982266051452942090140027537749736597785577532043750022133391493101916741435388062331608694010403553115520126065416540032626648852466745662961512103177148384335345035769215504790925198066656972805022491231765081715640263129033448338257322032048859415023672962211628166599965907598915577794851007893109979411080532049522603632813268152135876669439609783318912221894386612105373654114056541210827872851312194377940757960206755838645167122700263831545287998251619484275645097592125896584626668142440607729006345928013247913152439286337286261248090255859137080028228493334707254585723754848390996305288010045517461696910158155372109541417652132648800304385927533420235652158569464315955552565872474310666798884959097356865806245470158130926040870277932746828663267263416377599859026146088936451436573623166293540142362807787230384892007979950239662255368835625771060327718584461760522970478938952934355383634037504772592818324773630321053465738109331469094233357876086347713309824469151210595572627796236286869985844756533745353923217778773314732440834191689778523280780862010329285845095033666412104341753413293831388628538143316827362473346556492706290118410237020525181287280563997002872433094813923737118546069098111045560154608977193999952105457234847791967455313876931995250742028940769460178308278572329459907529998461435432215439961874993304414552152784344953999683476004497831249746291245775499048825190763305527376088385514710946306247028647105861309830280496239339718668106883287352071074334053098718331890430981938672061031603694931682175111718800582363294281571901338990199048778628446624325917987163043361230474690354586399812075431454242758448522644319014511237459347544382415217427532404337263398957011498093392256825873929324695432802870070822541884333926158751646636724005073096812720607263178231298701654073147267462646179647174689120408629948439369676802033178591681222146917709787676504992726905800363621905575741643128910538367393175546339988939001983258991919798245684872942035599779917577139144668225643175967314364327109462627903210460907599161667210984433441641814365931199293947456379072484290529956370471418668362064297783935842011300026297744081572523971708412956937290608012293758525482455918905743033106857643986139191535361319237407448002385153267995175966973322864165821452519521116603661939898984414713078362280443959044720084499625752843129912919209401245764102194673637970517544017952518996410166668145324110121526756110885159045518837879355171698441980588118005716870557057595402198333746242596667470983738120413379539537321892493320321274448947919709702678483360974654233350686627376469738370729916307947647497073262395166751770568358244362815670062685439057160311171885535742924413461535185270947580359038606480759285486679508288396882652810089063500498097271354244424523384337227061653974622722107009356198370023365501425103713933183492419109086594566746510672372154507874596069028098561969072942609203112301584319145548336484253055077963135112082263483716470411211420833076880399608932536021490223081321616655094438291065469773177283405517101207013213621303342440842949083703761387044997123707385637276213705338572738016449835257554391081783945706295854012575039414224505192540912313974621794892260313031834219973451690079625745129215106165791636201361122713678592386101320392804481516455583491795018525647303345504507636925907155207245705424672496564501818717676990593804259485389646736178320556626773059101008494689488821688107008694030227335726816811206218802476740147998312933949595894896540793063852499009602275706379234288825604929609302595450428273013661392173614961738273359421515305479680454107147287882816278834570531152003684709728599270540001161235231804797497725242186231306994049565536839138352114565486337461527971958991516770870116975770900814692100316815192873801519043960702415210458082116761292119875726864222017286401043647184670199783633456193254686333011375694201541329213917447428540219269487436534071554600567758996791815580627330537746710136466024679858024847625369847458946221168555255535107434710668252522608434163769192388520588935804804724081875866089406867872778772378631626044626362994825619299601376619147561021094223273716063579386026603444908202029927660061719060038027830822894126093040900834180261628527500272319435183179062848729058380033125791362592439141272340396569876711618615238151648738202158251293617041202836532958791863713703870089283734858168725583141649151928216833758952103922017509406613213406993724659840235921228913023583305772395542190702564229138895831564969023172126577019701607677664070746817176025400200247128318464689473415013862571540098253991973581625118393254268953895132824116560920230035724409698103716810523233058952317030889332229131039259171194233599208331366332497975387778054700773176863809050736852522698828905397165685780177608307380159214380921378731954359430399944492433824530299197075521456278315457124483771673245375220350005138186653988076544133984107512295642370448150708122195463788335588113405511040621394105375343649172381284190799133741499419357517202347087241342818520659592856085175942908100372004947715696494384565185029979752578353539333209756289006384866305902794056752929381841676538672463821963342303701349952002688094468310932650132311893604668066260790685477686503047175327352771646003889548108578358401798501836801616884376795553206952181082299200836107630007842722086886249724409808009743356790482707217921227619024821686702325605523636760969790706654522823949733579194667600734357701307209272845520276221605220614804523248697014475777191809947876617167443353507353334532766457973275640246650488135991327090395966913135168824314443394710382018235171918317178605283969406812257776191909249140542085767640725252434145301916457671069703257197382445616191341875854315091452458133428995986923748630725908486509969315581334171254709369099391680310033510937938890925558366530031250478265358549497123184626024384451819420158014204909655621519815724785777337745375304372955268961042517422699372741842960952748222903163624036995264673505812833215136308049894667789796321164326357051364890086630109174092755412860200283199239166277963931547309005336091214490454170324823249394848076400841820740241380309584198430724819029322117513392499420984739101049209297921996269028316006630779933541848655123478390562070499268039422285345802776808390123551715346599849673599684791480616508554318945038231645972684148172815890038478621904676268200897188802598004977963395076913258453727719463949881955963090426578788083596114199833024591449006350703858712704948824375481647792494757109369509248836627302443922990859084458547262375386345890402133823128066886642211547420413496936275662886304113523751374767767809092120432371362568269233462443266403041448146648310202371112569244353120959890585287456084523067928134961658764642010796247979979546657024200001141309088846846315230027163537822488396678252753400233005273911857751298859481177422759507209889606491554763566307691932461230705545458106392745646027240983035976183523126398941857495556420814938354355112764736505137301014439629026002830053031547473068931622074535622989776658244282521272787042561570659116947658594889511539200313017222557790184622565278235879687560178137381229811132668262874324216129021923201218543537242934967383210933349414061489042048681648553770803168473254564919213249394459739325626596417446884069437938625810737148195926326316133311294808490430387080037890273518728287673698871664374947774799004321593010972877683111764671319078367908680583734036275129833772055511430626224397236565788454466978968582530862105038187861681335827457215049404483108595726335488882072096459714845254410869451639126998720439084622345833885133570886274318193502884251236919173798196320175885349538576430626154259047073915810318011049322317093026828776117891156093699454165479268477654280353962021720934817492477308687667284269683301756496682840875028860959977306331896692844579837964480787695565632825685473739658712603433887961026646025831153664574965678473123999077728337792067265684542619156871872589752116701526864791869787869719415194081783820174273140592440972064485492060940009341828204348358789224179790038566506642070615491353882204143819793905178568255179243743779654474085016532342195501579115571359309749409826598934566878153240845558776301820046782303784128639567459714546900538690880517340200448772504614478520989595952434483209930224147930522733722600133623931436439643615317015063920834038328090548095909208329388645528559910603309601170735519106749180346329694070495009533888639946158785974484023673459904383380674949053010037743828749575882281000905528246615822744175524089509734189840463450969118586252807923139103117240306167038450552964279703522536682337991800113632916480222255045613797904128881484791066454643457942889284963361020173848056092534228527932266191537596686737836747803893924697284997777589522775845674789189437613338315244954827787919640609047088182001531073886970458135956542371725533250153753283878336712301178329480737770519740995976973168609974098032274000301447332601961267798981418014173563045290400953835559906769166180620812765138338162462569291903801512392739765651186416512995583668169838515439589681616595586347647596674080130668322930442964847304432526053790556424142066256042177246749036253141840644044982938408537694082091292792231925719487131678200424376490415864797540856824338493244040705217143040603459832963847637314402804970588278621350554768442639214225879675269977970710983307325689833483511769492434446549713812228703533926075334004792408617298810569605482501558277664865282405438937587635648602083122209429758780794127509488603907410098555707054975912943928293678206409467814463789140865672200690845101997489541938859363879513560075590865381312777376227582890945626496454080678483148132826706076427688027977496300400106495630829411455113085386935526171388663276772172754961398480543510355478175060292042799674744351652659308300997861338364230120444134107515282088202026636915579721412193761775512866929075101141357613141712117860759849692512602715763560177352369601176443088895962350995358450901827710792848156855089606062811254082297400732282562046180125309082444082851937381230532022931686621807375346616514934503521044355391663357943003192215824783024262149816517889860190844962044102746172020311051016513796535115603928570233618748605189979502556567393497804005786381561961317559248681109668931617419704134471528024061850597396335835396775537121214450215960482781937037997629385509036082947046173824685556181153966669084883698434025387752146314715311146136174353616816437056744660599304872069019152669910350503936025959854720071418383802198854540543733295219719250361377705698021122847554690042177730473867724395737684862938897184288273508055594050705804461550195299230698944452334599289479800868151805396170148230154545518786252174507560830508046643344483120874795057880583467725509827634176141572106684327246712401962922154734956085048539171519400800305780741198215629966030268626115572510538914797472009218442635437757520930405206977374843132233042836845409573982674887425425981670116196751614530393115739901447215452830782423867533214232951093839178907541567770006263333734636079459675424250084485296347007966120631670142531225637441189267134311982153223607819944287563677350654928767094291543812190369046246416686995948842654522895708919812193182221795882883530556632736877911660337550194434649851296259759151115279394048262356274165685561306133758467521224811638285248464951240478711867319199308650483182546940133020106920512529408212236955999565718217697929829077976283149325550733494845363397297877608374348324009962411276986372022151329162415248771884746372955956517728510353464375122022514530968401627492824052052684801309570366062139267122598052232653661320684118972730303911735223957876821879673956119691866178090095847871834225279834201480183588095280875799727456204287195397449479858278074472076917016798285797668311261268137145611567108921155652984966001129624505639260945152205530626981008436015719605161536011992075975362651689771198064448593845747290300255208228587350982576041705791402592343098754023683966062701147655860233918721074472006201659743022931359512723278774956489011437693690895492345871153180580979979743606306257612250140760535651600047962393590303854384331416597836403493440401220620126883908841354805618462109913282814401409852040753054256650827256307058430942352704822584235438477505553473150065999009024371019278055262816649721157385070335821175021187677794399842691367610656346829498217900717326751818270191715149066627740530463499721014903294412923622155400888439724956299336764394472613559803290766678631273326400223894652624404819610634202979391894561084634326504456348247742234537018438594118769158481884743362924467128109198833487841986046155213415827923694719882210787658256839616143610832634659264292378378840560154040203392177003282771886692967486358798885969655962495201530604514122883257589397360214178312689213845368614088802879181648418958972576224302119334158899584629701953136606615939841204994149313028660435581742414256900992484337522145595488310930588379609598150542610725891083107157000983390996070087304879287112922801858609145635216233922132525525615744947038906121942752456553489410605595679985093867115074468123687329041959811195629182081081241903569864242282921709740262598513748397485948047984204053649970337800540530743277137302846226897381625849198463302053384902753396280561451301935508576705105881832448769148282867411994419593827404535687808213774189996870736869883079610440378632828790066026267909456818131267328518539872517082805240213999067904827473170114773257417874989444093498035446650794735086460852662200144156531153591661496919536050402667283691545228608896917655805188488320244721399242757633033920946084010635478912806955537672378200706360081044216792493454287620149121153762004732313466460094430425836038346223081661647653480983212288941517138098501133676661421141139592232939483292950631746121679118484928587137265086541040901451484348907773321132333417895858170623890442884553239624761564494621651102232151226463688007621759098423740714429788041758989062539620637092930520417055925360367878974608318527892914467596881341945055431038294855986731230824950213880076506201011038574057881607701775839581909841662127125098935591213401759796788347329385024403283933905254526170757420607763971450361197780847658377349210404880863694951632071490870496966583927096733295314311321533867274194295778604683781098443727628093515783433981430309695536827365779105137812502717399789293520251852358717888836749436114185735240998658455844067891569495643384551759061304520818299665078717289144479515091818327294704603954705831087523147573213325160920892685754973249392411210133119075136435078792157447727774143881136664187752140389958604073925657644227617668828547668793254862012591722088873293336120314951383403811092644394321773003215116590779412227891978822628000244216045696329442520980923172953176535229385735881439886259489640457502435423611405179999630006502601484250497780805478960733685651551837292732755490557653911543520143456266026527352715711462341480816642976591874760104398482442422679183154102277699540761892379863747273335480806259414445606222320281339846203424728988726122705681385661087406217594914599313361507479709851022499568521361712554046143964201194808001891457688922791169558123305901418282494640866576659848940855597774491605450679601645512919332505530909296590316225619773921043947054639683806089583988539765030139760260956502394103337659803429098241132547269469649229739117454444079057391923254689070362495898254703300946501118903906400572458338261717847055206047259380889208150948700030976820235235811012877225339315995861178741834658692081491119262363012819507276034038466275838866156474364159185931665831757802969371345468196886920817420309983744249354207070934875528917351339882403257023402121075167609669596027177255660919752942326481895838106837044250312997326606795082133008578836333298109637150978747366508237795757734500928609876733016577068196115138936342783335463700837543036814297967270241403955171662396844974211654299105979455701256507608585746112989033137329346524866146239209688265531078861785661850973223283204692724173721322979465160361348092680578129661929405247279502390341033452099933396160993995277315116953884160337865201423009645074247291593390110019866871110021130034650438656325425149575597587615347632573873538572335724202555068527720482460797782923744913628604677414132695752744020042588789730626103953089623298499945732251562092998143688833454961887930672503736013883459090541028518679804728899223438454243946494196211246289116709770473693434214892880492816624028808052550276362061853736462218080269441077638399059452843839474520954939454919355261548583039482712154281244815566416025854300871052235374217067417330491558196021943619767919270673500254397297238818880854790968242280065634047888668757119580683420659173575453923909854755738066438938105769789282761234714558127211530435026611169812643793427965796654405608243667029413009582107207662059037995861981165908360833894255814148203857835166251253697189729408393504214132354869054866191387757677065409218445242668599754294793695628263534793639873357226308663569532391593506012841491879490612523628981629608904107817728544240666712655528068582904195111894795846153960127439422553475147189486718150550472147462026167828607373221886722852836710074224961233542701679002912235906921144122879236002709776963316997388016879811898262160214519100953419026018228517979564193177671695164891776145483988982801540622971782469425810671570245247078903063467748281771560137836493216270379105058274693421836816485908308373831003143251127480407196004604311051665545855924673707205957086934374385077156662633640419797606911267137660082939777918675062148789742004992672412754224380514271724657982366303134445751047326024117876308841867647275312454280766095053310226622354972739852530575045149713521298874488946729962575702711754195484141630846971683122362121693291625534546026537634847816883451641594786671415669994381934287734650378564815074460043052811785030831605583205046119188248783434429964647983776136286605641149972603332327970467566024357375151772968949534061931120621947631070915599071510417691189270729766221672707280558003474256965881628492566800738576617095882699942313605602307501251753458976657524156815755595158202740518814721026158820350836185420208346176533481242833956933170365767299537571671203179857621503928036939151937746633565266087345490607615851789963348222210494290885806580460802286788461533450537756174490722064688552279029949461147253477262813195727099389060076145321145074018997863853538998935192901249970643711211589626209798406182696375914756427534144654634779488985784610688466547276455533007397903631594368228471422135037255821730336469882975724386382820074056189008315446368810954701231963164901634790847265735742914842670377502912774154499773331221771499286206839004923088088862682667333266960760502611036133481414065472746129419907727638477624606886367100327374328824911079818366727685299465261014116024126013319764361243278511870871973461926087793009743159553378424602840380705974644014756614357731994326745465578644505807622031330821702840083772291457659490900124049658702747812360290756123410163644784302499344188755914578709770860638103257843446528648910376848274069263383826931776207548095883189931494530186257277410888570032786576480611128716609257642256863307911055430374214463833270268691167846393487388938694474845203573199013129540295304385178311915931613214486838547521491465180734578521567815520138187988872090089906408233632712010688640193910308235450685324209286543773922403622267733076795751130251162198417055900672766794089124457046049719465203758768864163383426685447922483283254697523329289828334972873106428644582539413062470406692302227575588890678163381105393132656840442752429099221332284467769071745965872967927716703685963427637334807049599026848749861598712565038176511792327492316196468489473999681828416117170093022591209762716222120797759274763058700899328210810293815380761361624312661051551682989257714530929110837330328263499737698746049589277501895133898247097865078807688843745002987006246440460803779615953169020874018142509370888355830888907807002269636721841890994762145398320203134899520759617692027318150351847375606369756462230716151844993213524342592014534252796696870836919198147066752315701484427510026967607283011481753860253990005287371004468824754827249502137675783263243229149519703504014347952406113646946447922031457851308472573805512117174764996103345940968869259270620034539902021496432725353317282260780016978296395633128186300581339861297745355991516621340920712549595326445083790836980560149344981092733129718061365017797817449455909379717015073068384880628506357968345803391452452483702733377634107913573601737817303065496969413541831661139810501417923138907083510341985435727615078284506557697072752065433472298600672714224483419615431718511736396844061523515544354940397666655685976494622897935759204292618988104717683641584205454027467004345721353528954630120296862659992589213257458118105724519165942144816754231576114607815529505863816028701619666732490407670039647355344282255528332882202788217436796876338692033587769625127901298331899336735065285946222340546983137108408836211595151340249007033641233618157469346908991183765054326250533456831024781827969105405847858931908391195622939340264678032079940078343659810409384988556672928357698557356957767610402797471767108459939203935940662463639026431737397810142292224862726900280437858149401596281915488184824830827970019740980561290551655206888515356241990985760644561466174945670679441754095693081083801614184414285929068562531322108268578737476943779925257075030106176371266633437118928082313885806555578651579762054451341204725378279515950912215240836203880991999474969032868792078471424598159848707773189154960643178316621384971320068473288772297128563566330763333428211367703115054599650015872169375708958462331444422853099663330581130712336497012693604951856922533811948473400204380808906321387596679768978463776441706425591241031381570257827798709439785382031512186168814275553692315088732252169999545276032292593561851987218296909340025712572314443754504429427588322920991916865002923699605491664150468952861556885459738093451789776712855366633207482598042054691174010993402925533292040827099948132820145161053254163796923701727220966038937847108775391641595143984813186340138291515962095571536416671527505419912704882212994059578234103481733735053312710119863942183606084097721344607043981990198636155363143976890148274899318607495492948749861343347360523417351730976153370274420858295598619870529942882552655016718127199864178403937983385518094942860089210445353345659066059859337946473809143614549559650466244118172087773822864569365866710024960110288371611690291633284160280998072950217469857280752853059317649515182480980704595785926868900390232668349052451408341150941712750696262155395658106489533954946138044780268132789007689139234134322134046341881516698137800787107001965368776474900568669908624385625419750488361777953733537428487537223860773554195545702410479229917689649314902321106169967800605896969352642643831556930135720605321875722197697759679703529291723195186858798419432393295787256435089407602750272463602872024403569401943632249177392814997607437868541687348114962646504361540916513085102268988730821684459235342041801487356875347006191737262096830129031431841221348528551612940421495980847905877221786213063350839252690988569001844725974101088489458961517882697491517120768118577116336220017452298834491788957002700129698521492530611278509343507470876997453057104930093740261888124064256273183527231046073044116026884912545406896874038620411608969127356870932499070133044588631713674555125108853765028135983862738539058661088327315213037677201546262765586023487617862030476458355516208870831956185403733926566554591577167911170080958570883042931330568299257585170227851111078852445047356137571741834647057623899869980895818434897262973534664329696410242155894862596805309202191596843153910721812184437277236890418356858410062368547081749702813264954465564890036705004258356820029205932647109169620574345645783785701388143840442894414275757687296678564165486083535596015723146318430739607244615473340831670865391194256131872030248904459463642760235530258177772118466436019424748933717619793148463435617816128755841435470652865655873406240426402357828324927457965732195330583933482450653034731487111354769734820344275234048547528794454547244517613395372795041085100256649893998247286506487096187830377791139294202619014706096247444010280854243974115191166048780913708811368552364020200412500765599035818063096422451695572101236146193622319626842473856614114193541261246193535929827782841677794089450611543366475502285045488599845572949100172277330840739899882183176605055619421959632187069161144715306360458328817911131675847248169014479519979371240963114783298508693416927786504608535604054474217617793979693198459631150207665356186657492238063703801227587889338131289233306172023123364315409728760158916108837813371442993875323065660503348038451386402423839479785248081221203206791832766448982234016711063562706883532047893446072126300775774652024923525843221579805944158309072136477499308950736419276347596737050324675993882748244147995485021720763390100939972443214542744345339150391724934014285251737113358305963758855609168985889714112081292433016010150773095793122836796643402463772918237888587458620702340925512463701092241210715524176012770001127530352114372924858560803995630588367462773969180682352627163757685635538988301643763481198389333764478375126673216331059764595494976581548243893407038310144652239746235243400933173465524031980507291686461884375487808675701089037806494928321708613091813584773998150357627104165445602057906397004203104526724378711482557718932340592515009595298837499535732632254430355320351248281555731229269415583406948569934044420892928805893907840117977610755157709505168442308710706064591537937409807282155745660044325762846648819983152003139207982679796177070231818361621494071148887172688805558997548141957155787463170856261715320066826863364473894734709922635509107363728878938186769491267412483967777857351453056064773455100595091614373338062940342223374051722289260312356806240485453515142683466175509620924617844298878658387387561079605441470384029107026416024810320733460108012443303196998780362772229352882230763291887884384080941834285204394404780229938576828142575796534600972612919333345323388431462433217558705405955878481551548803309119755171876383343758650146057750711075873122089849593702233304085983632763787980243520882172370429154667348996062478480938374475035128420164636767889144347638883920970858821227560646950765712543552774990677698151671538436476303235184655063357667786374865233474315307802127936372548884921483411272858348654048281969010332653650966559053074267321368982479651940230690659131583187808738620828668669013491483161385742836428404891026879603735708385168381098979980501359346904117267664732973442456225783082241540142157888032376621768650941773769667227851682865602497510177458134711728608517450633464141588572512488342883376068484168004034813484566389587281819717993537093842037356978672471018398228620306937159094310833094414955534786184884907731034067713499595007043784103674557472780641951816163293049116945771097950880676319960437476171033542304685526206070519681975733678214430093975196594007240183601484477522804982744810754097030217647479218010838174854737246781319176403958780419312533133319422660675391567226901717108683972464565540575541021573324745183394623001625364447878611880544552370660005998376655681662206254964108639560798952669257546359008333468674334544632023149944586384075129132478124267078550914093197353103258414908929392664208415543935403287285758342329421265798729329289009003091797615432361586212762665545540548517674421399749098231831759306810736689283261756027791662610986525067125471367106273498250044013977545767591457695327177228998752582310674673019781877293347392557451535330276704622929857463653120378784354025859103726207596624602912598773880779930933534902875295472874826677362227857317245942962621635286105722120665618718934991773391700374872014672483621921867714980565905994438489655422844278486022714493884297228959056960473382979586091262893147213093399919967164186653054913868712560992825626709919336391142373485009971832640120312109359058599883629606184027539868460315259660460937415703002909713354901826424768212688620848430607781485310906931935846747574428153392253730509535093456373841997061393335109700358347108057900906033371811489285989848827365082490519565909477463016494770837113591601663914344579739859066748603935843612140616562359435913475828890277527240928621697885836286209659063430220962095491572515936320225513024615448090838484170315196560330511878639784444750131731336948883129233293698984613026743693377123454460477697948822819586838666498242124601969503121441704414194511029707382147453817958857565846291858502394090844513668561445317828958436997139991813090147453342953466242590573811752380462839555277593588879184826975971276421477100388820308610137857666416764501502871752771653506296827739826354835005939243481849693542747204021845036538893963138369180168366138726165991665360757422758233486788629192035751670275044499618965831085240400977888294061918619977489368830965747682159787087347905389327641955784248156804966899286361320313575526945612170027002426641801023635186241570989870904502865015249560963759270570723047090442205562405704905170297137733971094984875191207804142566207891336939926473478867478739675717550462145543289976314563502178154410327613768632869879151843168463068499937020147335305065647960752595529100999980103846770757126513633303193983487511517791726501352313550961623877480194072341565824123876990339844335401386521067723716554532516346669647737683107179158106942341320992589489937122290318232276427518822864317184687175962027224302341468103098381281547673447782705732709119027942329643036591691866337107425537373116614598264074404365331425396025648716418437279379744876388229903696158089104522834146291176235445345020381530699208818756698036126201051225002375591419802738005318539723905411750991074207751579471120078433146493150591511343568144697476702711715149796248764069699552519694713774697827952601701736943622686528010023403299385276129358606209855421892560798387695570194042278649385987466794244720833422792745802419014356640164570711372865268397206909961404317093362850894600124456177285077711121119999492570590389116627417715523923194359121911261807598415272297034211863063538460808340768817871341726948144323008575047653884849986648634564253937375423025796927045279104336604311976464755417378309575468111319795523647919900668202898575154595311256892713081562478126245818656265400138290887189580609532437899336334728673257611382675571393840394090330965396518527321314657722888971058172828589317350847868678413044833750624027253379963079339992178545191487824364991855255659034028502432218929645280567909819989424800994279058155139288404930534455457635469719428915747303788700360205837051341061323068875500345170511491712132050362683456351006958785665870230647033671377976371137783285230435290756665989327250585309079315231202220166951076762153784649409252412649120529041679572945802223523845364406864180363233119130301632924663485009698560945048627077363062815931903330646046585847035458269515972354557285093050744122284073172593277659464792653070387910975298814821631826431804321899597173278678362329290123120367646840569704918087315925299938419958838725786561054516280081716993995171965938459203873083047957697462348719470731412683738350302175720310723988584293914750080211504910205568081693512935585746645593067236362113167061640814479064199401900280101919324667252355383689912027026331262421914528887587447688519206295302785184490251730568275434636088998763705814539019521910570819892410743085941907888794886445567978614873414550471560844240632093932427619696487478304746871226247346166390138943923236105532091892460177466729592092503448955366990570022737328929079501078164795092324827360274499245242067479602251191822296017118348229250991320075613541996364184789414583680638101822073968217985841428824528463139839498733340043425842934241791719705277618354661399129835683850105463634397697151790852909355652319569349354239472034624093968622127227933684704473354520795586206006618414569586702970403810071591667178293237482218674910691407635099278036684204768531562754671140888628177673644193614433120418457366188825939371691941137622036470916615065472560722910548000350766882474730801946504403333969256172708818155318875860267753275227537534151405018662202405888059020691702915541901629697184293145251442838366557071088353212002075833282841659463938868066331258936438521683249997661745342934291559645035848409363052626449818422478834066907615284197900335389313193789071845892676352313153103977500029200421791586648260126569968965819951178819229204059305376191395001568068155228804979081292509397871671366736306962616132837525689034222503462401719199498777921073731996205428070847492564929550289232227472703231955483608903148156536449307797065609408603649972674178049320958901734452162263879223446123245908693165080153523599726548973476996951036144444471892647696279890185993504331896301041697409279634591945573939980275989037165949840138814722259465074789045430022586848738784009777061206287620693403445923406937637441549919995123734195420165675570256581984662715017769616685045920918843696406612572902487768659257562178296057173381922097725161669826274065897657799707762113309966452769621240834458393622972363720144847958495464415852909080621119243210159107371715120051738302446255996925204861116183261710705465679538661483771922908188911667734076018074668028578215758970371403331085438179400555669781935094890761563566308816287709850326957733822790892129525761586013456218459013839708593754155032057911254912095069411605322552667847521811137695260481749982497566495958211447713461680377486932696658487587941405707391956397561436619601398153445288632546167747795762998435771388424775885849391095459368721575851283167466194843945833585531192379477289962058544029736409982952884664593411632490406617505858950538959671521679507382605884157632117936195652089366445616495907092438162019807606365498644185966445520248438870538985911065934344091320743638025471921487717278848477445841257089960392754808958449593055216723110814464733420880880106703037709131510926350149673342364244316623279866934186472331284498225282031467610319063912071023369482368651986963842161878981261393353963401529690442303832376721524332162178121433042783189036168031552144442437550386829303987223586428067115613881956195341800825454661841134663258504819035715032986166311285990432183428671408045127615547388268253994708467341524257057714957151272904503603733866939202668236832242399619030632532752146590000402086621825046718469549857133708642531244163697912620059934082132063695963470878611199366551621276307797237314474803203632120152403213475997887666800784170554175146147255827047676813630686117669011252770586136948901749152163057538176698198305555157369541180932481959072591318948399758745876475754297519936453860202415712874361580946773601705020310092397061833278567680857812496297501834878458542486940803646648913086197960730971997129015794015819467115018906717978576640272939053144351103673321927787158546277261412047121441371402812621787250911222971798577332313551544883159107091424173899840712449032580989621167967426445266199779786816423128615751451549590661376057037072294772216819498425248799030484579926993849604197077619528261936899984956887169686681833873321228779591532716635009330225190278660183629091327744910338625914332862558508461569050559756880442289957499190778108565905724386027649418339461749333311748546591158542056615875361729403384215939754236413849445886149508193615101572793785357242021496180261015772005129659293011730821068626455652788742837404634488262960116837643476362154884886691625999083812849147879902299573907327668169288081281146612222396762327656597229570853037879121205352695984220551845163495017025429606272513511691363294133545445455270772972123678616699218356056157823528687534150646501926780254880317127171716172597772850604921150640130226491471387087856268700172079334332260096687616285353435662486144146010843014086548664793933594119957067610346367571833686190996700549727660315875397170881156361488376197966298533665019220811658457420910402919504846491594295010976873596928254303743062120022698105040998253590907233437269824271112320254234447692849551217944887146455847736058185875241296329359731096705307978170213814207141548806779252196919893726224917180801119808232076821360229534382299163355896377553707250258211099326686907712680966350628415312260772757686435038946669263630482354113527155638792891226776355617359379580500979215645194385909120986007525487454098456385175970689221922351296143628714486813319067588390058477373446034557277388749649937669506410067959945238497421946430801609039662590470875337301613368092111091233464953854534245018665635593700098656612943628250251060361316672794731547625785222530645907256043712302232165026562701736194475145614194723205514025354809349258841372282479086088028322804368459149783510427020439396688840553667617377042862768139097410488152875766123764822822332116561677777819969331041619978347069476301068730877588756740597730337872236782612492643728405599539497151389213397076205100944715725764141630384197303591217254397264496983482907174003901971078091974151156867764751629963211637056367664910513434993601550029272203806252012014392901184097135479301453226231971421036707191921698690823660128702626707836602261529789050351120990949877437963053940074983424471818653942874337676636550297152219131399111970581708171117955989740511694096008513916455712048872594666193922083020164359099714140836141234853028784890890105371473713321427981167166187913038214974425396535918307587711561690869650020101935203220074881907204709207505153642361270852153151527465909485615859325390909794056057233680093391159171988963544609296803439787329683740758457705455926095894869034849149848457750173652894495764014339409247560873789466809589338660218307082216615700562688467622629038451482075787314187581947476286548315893103163571718193679534073510409251712633779421352539375905229198570394689065146990822361251594666166175943661211553257420568236375843493762449298675121578039122408579342750680061505400329841223584330635229487896416421857382857713774981536269993218079006600822609740475804479980934894908614214851991765711378930222082040742522896727295540555924744267769443314119572242346013694728501608932424525921925425419506985285035265574865951750820488872418952155076118103026762352950045717896928956201629144793567365246591194385241114167612178728480377544255358963189455906698824567625899669778859915269075782191580103573606242674062583068458386799736835713891850173803438406001918887336798036246701795248611293236342372284938152158530952956178131669089578386720788635997086484249263498006381943007750474471733635129747841019335423784542708677362806509349754404296677573311976417046706981411894728437737217193511200082123740937952783588748223619965264788999554871263034356340040131141407562818577457080180232835950021789973458461305304226625917278460143893296718181643291907889335540254547889820328564507296773794723971565555684557858732478256413314723487064665974775629965726600371171425305719800030052369366737601584566486899718085735818457813085114025877104311699366984155113941735658516869540753759329852449318232079098973137971771678693986671258625074170677442469529910688524849335754590896218874668699054964013341211659797959300228807122310095655513197090485148759287118437793566979965100768100878995077842995724054483176909432688967126376726291711964400505993418242705199262111938980221662188034924181399707982512898420696493850426693894350011958376826249721963818632905316042815396621053405486140380938105195226470290603182685257558263570172098476565038135650136105747885017726082803384523337271698213766813143287556117704172220834296480680907143511902464242142335482507405362628380631807643704290664113861406735483343044809702187673094267201332196860503756411860131516754279676716013882715032283887558112170853716576746813041528022862610993007816947989543666003805571143938336483374235272121366976798897355662661899200593623925652586343734238432119455771912883980200321907193604766279274264990563581940839469154603732810469034114122768373241614511883597845791542226392131308258425980957894313972950678648926251256014378382123135496427564299463198060415636951924566000874120420702157196401928300692497728815775255734158342501080738615271044316276589626911901246015534567192271238100996939429458115400403750797890537842633717027274293905764684776155517925242537862560705644747115603013524879904414610502011483335393423440011253633284102471564775882101081084189141947937856610354717523389611190750709884692449524824291780848190844171714402786363122436912167571181934044875366580173744648675050832332069112281891773818274605649495486044609964803771416511688989655966255483681757595410050105446753845203003693114233736441902868394887289466873024028971042713571306688270474867799572891780921629381609256015038053088946704643033406870293199990312769793996507515331307015649154728890055347028629774255880178526445884573102734393137463995828475152071968873117671051135301295472884911106730816913031429984914145295174799944626668724433964705418170495949669114841290311524737840000662286053836058736320666977184110249950715126794969162613096420764170904151719460981766858160953132511035547974036935099011836335528108379185987790564481152091605507093243138551139180304453428749785359305827450639908992255336905271493360627947085533754058216909682645768637178914139036572439505726284949346088567019271380484380137830551844687008374947393375186358164756659368453715477107703982464352573398580887759661278257904073318112314855134954738444028743896281687097200822800875818374714374882058656362138718821646236843924859559671627706192632653899189196228807882869306283937773892362796069323664451681525233247291706246882600696718444437506640188210640322649548458513006047479580496903040869829099319061755374320173307564311933037863332705650508327144271484009013043067330971041348803400758365871951215992503971615171427023464796088083255322055646213659755837500362629774387591156662597681509661918966581898633920474379328947031821433985357182762268221958871090749520222614423491773787162919081877629357249896363556128690216272078470793481549469017402510973156628637261574508366624401285373976101115934244136773221854945904303371910152752125843379815668841742029334297257112734278172011921666787123600946041273065511974366635325051701873854646810411309456986717554206712898638083093743354899808069679051822537810176280226834772432220268277239559915727311004183700633293838528252431676558280296034394480489609920204383548287564934938482077057533035173782638863666079132851959561013179299152995670655363264062351040726071217306044660354465253628463367738680377200528056839521575436546074666763754979694943773635444956705857914701051755151064860477700980721870881862619550252048838761085022641713576318386252596055413752882764641052144682306913897025896151209484844111311176711529190148922703986540659282941447505364748394177655736554369769759066022036446929840103526781622089962243352849465371844263448324359757964150970776203913172182690088106029368218325842309284584363051486106756070168596117188898731384683640851741998964221389483433944570431382075131920274505750720507544432677883032217654644547996750215004066903838566435826473266963370508178104639016725240547668175448487390567763746376688876103144673806243908265288673445921880638302368127570522476114072504697405501598296751007945603661234711055508678985771431834782590432267299509648047820265143897069677149287886656315425476053291438451528975848443885675904601315701664385459798438475379510612140741897387720021230819209278107761174031060042823911414635554395695957567214914799655492162366833914314052834928251813275186744654444126181575234971846740440873428810239928061384474767125360432569816916733526735565015247511331704961506102666614422201738421855553382908077312637204284247368786162124957643871274505987356333918507029876552593606795049723018927492188514365815377986178697425190779271484204157977134008671768112468145000475373035095546619026278728233153538632080583160497182042646466140525950768617518570598737310765877808454171079534866349511495663275698382963907683510290370050215524846401240791794517776363149838301067557421910109675392553518844680796722531962457470551734770230253357396630076643576471289284922591209270866554662635990214747039252352717825611287068152990908959322053121146942031882749170933323203114804973416963581945525532798032811650227762285718536353722056453812287402066756548234601533148235563120578008388975761570835623577280305470736361262476492659396235576029299152477533930229715457189434788420652617813593735133492123366141665775173620875422807534671051277637893121855772422614111505219286823163503418545059830217558782371495927140425128805926615525483620721909594541920549104210426209905203714828420741553531270634074889541714160799791965969361389969378794361355885429753400726733385153147139329128474540611247723259745391816959994346843597376271892823738429878691926894469689048051056787855935440748624130706433699578514217960810219253232936413052010685573047392454561277774846521047801999198877042731255232208729334054832083914299727492621201211554675582733398167463567648375980304991901312806662379284074707838939938503165912330216704940393953200407948863170481570624726399698872741444597548818198395910557330223333757984388991687547628924079114529842215215186489243095068958197629530782083587552226623459678098760168076929191240671029806682885414132732112661268501705770686023917688792934974552139124143472413430158624801161893374176566414103287377697304378843176532749726590665535859155451611757861344229422058432489046230241202503908574047566184329519926194790479703935879195412277344199894353824417091917441055359640285233896280399063154530198048291980969601759559621892323907296977257068696390041529218588423618752293297723716466296103921465364947967480268300010084823267242579920315971070308066071435911947763748127591708721571311871185898490162369164427216187277852416816544893349190998086444414127409370069236231549354433107314948452602209220413616231103962102328451624668653181893834572136779224781709969325107064822363429824781339954073600015042613341712523634027858717318624375975895892798776762598710057725868536419579703535255349820967146489673290137761883239440732430592301339352752379613129238483823969486560736742628906835247405549462577381751676400183071555989058077133721023576571572916229251324578043552824013706936729732024593428353196335570785927393931725924424138207621905261526065675465118159782665838844442506000214183931359730133969035830281177054564977143488063760374627148217394307137437509917225805379733822695062487278994685527891465859503598656106535434296562955228527462041793408849833057594181825061414187931410453355287431540261005584522693668990145372716188701998036491595529467709713665426122809097172886948430779162224037324541324710947332451204022533261727664623772795074760899715591025753265533716496461961809408204640266596456493609762051216948359371955288219858768410890175129709549562802337614830447407069084447223271328896284722711438569903538081094989080497268157378262654311040366124749141310704272849900059920765259952411681383622441883936999726215819489316820945605375853810540159360344307522699363256369578974339393763717165546440647394255292855639349091918611018281372853870442460990070672950976692656667249604894482953887194267541438898363735986234705122146920178731404951855632272539569094463855956859127417945439258276706384595527150087074807919396604329265241522675889388301734810401064616879088241880432101841317463479458683134986200944133113438106751611336034935860533173490130056601101983140698281431063208298909755197450077409589344988447340997056069856554667047782267921082575011796723788679526098636190679477437211236180657306661508636923698267187362050037718676254176321710163318540322694339280712695740068340452196496677482752943554421561315752127634349988405203074329650667921736310322570886691354527121185424576587450244512902746773672802985017314721706850461513914021217055135282213959178566085504946644392938654116037654823398447419930632893011861848513622820837858173048691004298016368231181574985371536723883661574709248432698659777487877569661164792403052656571369265736604479803492105700173514372307100136758698067889664724181169679760997983899746869461841311579822324433821585739433908576605092819352360848309304181217881257964401329326986019748033534171594551686467276133994133008270201510377219391410695405441146685262334462835999683964368832271915417141380807917851751120705434549691531320155762657514878199576671062823911586461187868203122792556558306474332846965878120083958217820223036775032931158027371511900481074846735130949979845360494852004481587966116586066650863828453213317873651437534911509600337362686614138019576051978410577443111788898776884871548489904620250763445182063457835581199076778024401844966694072268602451279955896976091572301080968141953273619259523383032988436074629203914418412861515481061893330678807489302072245272920106741375595154265964087283149333121753382461391035793708198219581094198602624906592617251435895574304265466318707663668407659787903688892083205228977313012882631407816050079012679017908770867901608435935229110627476687860963646385085923985098701989826177176151645118711297870123272342095912021356006905089587491503865581977624281728498102326099257882558986939131388141593338694147387553838487625874141110977814206298529254607496499395852902037281629606083635371713962047276303407052572768344811244426253648618081973859988970477575011138971412306828226724560247630054701574407660072485388852201048354640353476830077519600100725293731238389802217435444140941867718912352708710507121546638195173744744551393441582176637023856205919829641006891834912915527701677315036961572503450621920450365439672607964868205108895191794428229002866108576075578357835545644020517468028935580281713213802573784316593459789162560709545659620470306614345478033543552569741228151052210034738855197335284542875781040943403531718166564273688695780958613446845236614247342293857056474637141506595897689886505689401096556876876488619779740215085246785781570918501596378533106053886209053018542650354118360036572778379160138679071487289687520424229231549052671244219391552830447836463235882112164055913011025051711575019379007906296443290783205724555626185238709425249531556267729128340515714012534252863267977334202563570503152218730938782393466892460101676534943919320321920049602864803508997077619968778453929256917426429957620640042595854445925372936190161945660605670324172626365763269165824461467441072848880876648775038603567272482299221781327619632086406507690483635313495314841429045911463789366221107208707275588083274814236351906612001757069755741047030109982240068092595723372120424652306188374871134872419694240835776958620834760709261308900416151950739109303160288308279518880901613439653899266566263459608848842884215481769558449060997997527562889649688002219251556338759624205486325053177103175979650607380471447530953701975592179646135335052619381145789218655554281074507410430462782663944034710323019410579696975405181460147599065857058780433172713522675165717174507005013154467043546039710292277816292891732829433789887538122992433523234578279183709705208356168446239028809811277911688679282732927224231789140629129066697045615343101551791364400482384581305280976841417193379997720617862896637062228238298777238230363624207057879266848686827843100667082229688712956090646863604396520402982189452285719759477053272003864400144913954253391347348049008121304063379694551697021654655854571461371397717615002042481116226248705143645188449967559108256332150578190698664429787828847665912097073022524199869139588962388819151970655159789694711983661473443131009871749460888680819624121165973601615087499551386721754028539786276152353626287228393518675627819544501671071825196634121376494451635977892634352895490621266682795510840910513055453774062331961712436025361640282458240410317154730294190854416163301889456963425477340770384206801944077828160391860446568594381275084387218514510960221702271270807152246064874646178721849206001576708401200990850522421574655282422548312448545933612113337587625289159077394631379599361454829598408970980255549811869370211049477161351556719851845923021219379842549750683380435201988840292484704940768167834137298559116663508582812948829491528987490447158956614806787307349849526319687366155724247567221352014628857035521873139531683179423676652992913792818048751448676423543019146561238612018443954573966751795284048498486663851331632985408089018533662628576637756543826460957339529731463467337770402313116640431832032831104902322683842506014256316400837745087209309946251551257880166995353578946353898768447114815810085548894001347208312516448290251964241169832490920797708198645350320074084513185843228112723723153143358849738016811913344295865174868395188283850516936943959271756432952806243187254994729014370373805349382695818654076427573589399285716910692486587070235932986098933130782590676859257045551130449293065633507577120279172192739617245975664577068804901415862100065610527662827989585533843656560609624206822821585469992041026051901201527130169280503577098124372048567789980956305571502288429838120633941417035587368620227418333432927126317185462832741175650895570829801850625265080904481178428952152098484641524042420641728867584249734999154014944452242687171439521357873861521368224719468098402192687512846365339151208664400434059083358437367715423249611522245647231727757676269206420995671086259177596894213661132419533902237598402344835475021551174989194426703641794582075541507892583797633428763536275473766015943135437090353863345088813694648578159763865746913180275170590315164323840896816835651768971653659843579874990630517917616653181792745949969260735833536119523130335517370868533907437230251635500060079128160974658843718775477463081505544526634324546289647002938871984134790168173063570021977793586457867070168238237046514179646976968080508176268566474747304764660591354625860714157070431959180611778301615014936938082514653440510851060372306395400181600361308505221575234657410644225038690491568425831177962917811482891840784256924251100205740106238776062963411776559440637641210128468124685418901874049219319878456568760083271573358700945116936145495593457607106561910012939812460138175832985275766438222997459349669807935291464437824193346941547342161122427745768274085828406382584757377827373435722593024907234391252016822590996092162134936071453678890003500398597326082245616785985591760001421417846142459173292029613757949692031753624191908592037160162623055207834311975663010308645045805333130702013971933688999843704513097150125282771932361300743031259432040667073780514566515946070299018611658431214024820347059172686952929707585652783159756955084123070145407133768279947263707552225469140126315346314320520784431874998361646050910511618973357248733058747787746064250834387448130983543181530945982505104413960515077074319330691637198991073996618519695265898118871326372408745548662941874050890692506727770114526382336278882957816807239074708838077976665330877078405094968373523036238002819610534700848836356319824510632425730695762384245350816144581425474831203976133759857851407096017650191966358123575910144114052643943724397300658559981421216290509058795885356807105304698163810824791587727227351728737099133879780856976164564907278720227177995233350063467356914571139427487553697563124466957284254699891824183127280383124603612458062913130983994380000225790853400303453781929473621050753399848494763463556482235550251523445321190565598824259960261310488906425488016167775430607008120670765877706286165530692304243821985094982173226368753881485984848809850601033727353518977266326202085267039072109076503523764004529797537458000193762604372831056323855593008155145992584354915215075670897029726224964469136612404637708963202109745172930368790824350168148663951622783025755883943820571831252375713829036590831854219729898855442310575423874464768292471852126058791108491051908470249403951502626341544755230421376353377664479059595885533645170897624503073909677032722746801431447272068251622163304862539587073918525116768334511530883018701441636996204732413425821320747927756168269868222016248361080774752551207061343770562847227193229529682354937193469319518536757836990872729734179755755481122136758175825270120649759027921025912945833642067796775257473264526946233962510814398947860727140937468608421685416258484915053482927767060519021785841934433082712181764763946522771107098633338613382189931381595712475146637775794885234120448368990196205661712364074567791683337259105804561169418762586824786040360003321029732657228284046980543800606724399701865268384056981122241750750579646259822680806257970166448541364470637216626193228421530451484530706397609412822102551279714259665644969960261285834877268044457803360387310718932895867717089989529470988342986832723187603316120895662949848671924747912105882491660049849415662784878094266181747001263133231987300874040495191425808871363702803704763357098031760457022207901954507972006399654960707151850991056880190625810287212063302234433455952378978573215955815243438994014203797165242696308126165809711862761029156952587494380534251394130208647141540209202821289151814329328860652628337494924343003498824449924465478229565592082740217680981896223941081115654338723175454972407926527243902143714688383480593626699742690626543877836435017106251241137582154980479914989035420411713372646623835597436996371718170510963485441512451147501457807526367067541728515872510481984157464459682187167625835895987872658118959055280268359361795520676363798261887608141685834218589467357094049341726076845890045060668439917264545449659807158545836413968197022779737139276671366655246615083433884319795182443241744674945392006451024212330542273280918486177712059741457025343732092736504221991604209700059843495288901614359533234944257811527374041537263930443652230823118744638421157489699473368683639807931618146139890817557717905366803021554833200366602426659928357534266666751485391393300035225526397682466538662164047871625728701665680122653394125067852064519949501715342980086105383960291799264919719581901032529786199985641261095515547799723151678690311908771202566928462781750028951075781151263070283473180037560351875349425496702458780700200241160109994964358771837936610591117207141959634088456456385905820117360325097357755643439051749457725925162931230514892306296178540282485835551996055683375545716811422292129584297449317663435871686536319611194836518459468039260169002855240188734077505811910026511757646131642952250422250411568153770146920682092049601016847076148182454423131361393777578827679372785091725177250219813670987473640026044034052568895414586965103572113790542738279804453160407673307285982132088206680609703295467499515311731400442236808634984663440746221240982856016486703069022251852224724751583818839717448989691282318994008385882449823990454389379636441510158167733240298363944623419912755027201544285973134143509272493077492609037893231291232916855576130681466741983286764812009245672271195337687050793563772086443608942614226725062285332421430580810590271344204536205734934212500164226273298273119565230171150041114661849649918513578433748975853995835708724757765243776082916223563758017337447979929655966381913538317424992809376743721780743866827663215770982146403372941650002626543095572672270684258439014534784303853250003260278694211840115644818893281735983270333093582436980528943102116154128311128171698972462465183249001436987300553071603133119397445100040432893680696512104832417504739377871792707269084472597073463784621294536629197276079981179608800646352409896995350720178332835588615442274351694568132938991173262965753860762064449455420285613540022220703556106589415553400183898178191809594450305451490462073463882763277005463300609217385717014305667001931657974360281321546425310147532392811122633350020123764425734785135563871269116855454130272919778456592510580460815476977221396396359321048567838792117240123782011660615637237983843410700457489354773505068985500152092042983110986728428632436613926925038880148515877393356302077570069795950642477138950291138824583283022393629871883868001265649628620210663851425538841307507784071419301761332846409855617599545786598214306695777535871082236680731342190369774606816539653011438045888226739482511501189897156450797965434850505760057964303105624554975614556337846855174585627680586139743902306764407231982694411801525540507061164161942348315827542002951283124348434269511188058732386304957293762052333133811897059698091422060012849903915939307261513129435715423488108039009953024844380609338690950517703627124645137540126801850171451753713064821220879135537672815240303197225436966881332676309172589412634049357013132632990369903342935237323550152662979534559946673969879152941097050829423491058110931019476547050813902524462074129965572039380679486269087657425852553517552567063147799741730162000380276649852792481537627823315842054442882849694173355146542813602187807398088221505128323498944360830241357288964596256830380743957272812551995084690401061641021475976572503483227962690404278424041303748396499886413816316585003574568648469118552572330131428534448318571362237214039552512884334720402085143608239965291631322541628296354445860230607433033186647774403635525758925826477327104927498551185085676174711509550650419574699103621633793045905664552736252596485635366773304649782328376206160051935547106017807224761661375297611328387565054396552067000240812631285143267661791631956945016591903667432566002419752687069096016799368515688634506130130471351477374325104736780824232427325898475515179938742147886282971254357360757924536815378224128983516407528542670185467682677914020328961072516075999990136460214282044507004891168281582840906803062063518594959978063362031357470027745393748301114300261645130290651098730454682002206488867569236345876726412610874488601730876549478635198960989531201325697341708970058404059184067565571958131442838997025105069968476887344277432706079783741887649775720619838349336125830588283491108676659843005537512744643290305832103308235474205919133427859972714618395937738433173288900541307979963293421350291675264495880400706669780539038394255066694833237720213616560954312396632901207236659090219858279810695162509948025716117857385915227112201735283544524331374425917998283381368734806779548652392777244315930683796574817010336633199881726680730924326266742933344880015556937097545805785560504403215339394514331136229512456816073857140039039798783878684347823748059726865823896194202655656164105572123817797320775095765458369074986633475186275370996187643412062056267954215255259947967218731715380684244414033089293354194665652760481365124726703368462343689350809947203831258646747292590196513038957046665476541150349891080564029062728690501530317346270166758267080859705509698216547332588392975855489736303447125109832237448809357887707512198035728401732886267639509163901918256584316246261422215872912724000312055728058937989252273235393190049191875874838165377999146014710922962323912312278056268511629017883405930576597630233342049671716686099475024812735389213757038368092128028763280786586510454986132313256296024332686240154018844506860603862588167739522625890357820429806757010957339526908366451422733484427616246722615532572108419221874721429702211044978244140322712429883350244203171161209544706426891053311136146695376075199596823067773674096505842874465883984698154528134492622730330293482697019856325534135880574065592990011086629615989865155894102652261359860347503238574086079443888515693540043896935809939084999041811324254258835793843823449204879663109843481942297900339231031738509846129434867278200248425520072285367931435194900630007067561890856362728944978888605128885875608164751201347871846995023186626591436280702229379523866247910623321307623589084504941449082917194790210045072499640597508900608444089995689151208683983499167165642994595991646382069756950258676226937667142178745125650999817667756396052289131827298396432638715420294652305673626030294801864357672482804139995760418131113032187323922751334131237957503562332223932782133331464671492373599085310442126032570486239283645439243679928032720688935970690703445332032309296929524786989726819499111163092295094235784604137557310475010815320853788983770682287542934031524511910039522459603519307691556696608575990255578655091014828001890565155961772392352945871815187106265209737304016731764266935855775558008448829628398282693796915094525346711410367448982590133160457250222384050299627656809870839708575293910670488431860271652808466445578760363291893250482075967139729381305104849395419105886850436448628458189697702094099914670254758881520990071487500919485292903627277864682639153334836050924484002249903345010590049705638885513406877961533348878638661288737301133395340596582181802049159725847770503462916124279556738862960246654266712160629199135794153562745078556978053926451150856787263978711170021217268340525833052838111563532191557164446588274597842283232502520322171878828678047279279719383760178105601054738505665892656311025114595838777177379227097528270032127051115038910875234938654146810807125703406610386722286041780287484387204668650220992377462395320997249591111890198693891545554978520205005889673292010685540655655059328883541849941571395983863901612556490039784477345552223428528631746544065800377650871378816860265830915565810861582786006353080045679592042928115662879450366649566367799413329493913643828090115022569842607180720079172049619857100731395627790262894090186627723201815683841753122986647155098333228412379088831036559234174481520020219915439640580358650069969492244638641083409817717039330346500638287842318246652535950346861538397274735682978542622305405486901957792562173987690267774835799078533125234732916152457254876977980401711934915482735147779754778835242515444746212075401463056638220129277083279034037476311224052545530299282231714052812429587971202486765547131494063287667948712987440201093033531592596428074769192342171942129185841200052198398435215234455898537900048803878528943524130485739067434205609366407748259017892667132482675032244839212468179839568142183318574083421562608980125088975069873456203381288741947167411235513828092911120786548987750956371574523701743054750040926205446945948509420441108468841378366618419630116409005407438972332854190964649887019440990911412816385531354931368517485965113222431773068819710004870898485092932109702350121469453619931386185096768058270888948810522093868231056235354099204426481455524399600182974853621700200927386116344759571243766616618274499125084291196171294457726639076449689942523562855583501493204153430285291492031234549630057804465070373794280639520472912187926531228434718707309550788524347666038589612302296853760047563037208919319474491618659339687315999433557228791497213963345090075914988726495764860436381281304992132312106933438516952968010885134654975792140716985142103170227022168523094562948452353679163732550991251614950779936436681478299512141746037665685067623360379204702967287809306910348436485504156954297828331111020121585143211544087488435282854467678236870990122196822248909895254423036632491455085394157554956371642436330669295084351108975682807087069469401849026725676289664242101537586663554402197232797249005898171775975984191807023437807916925062386937925203898773020978785031441054209758752314519464117223740338162777586144177722086084169145631358219714751613876186427987918810073568671132334857218700925991288494922423394197504976794698842400304250850967969589481818184112698356776248697735033479281952831316510740471187983825345455922003161975614546774917006387109738095540836354126233172558845371040931059188813367690389030568216334189021205692812642571567253974555846017046833877648799432530956305902758171902483635855554596104406031216941021921536564767841471443456167481234465083168418333949249068888042825234610752298422403611223994560903994259613015078974704794129549442105461114496484852837323524355467257140894410645616493673966263960477354507203541830656964828245657240567203689301669628341759716430407765867506879397785388970705103550369337356059979636464817756713015990650493482871464657533713229634488474629031440752315371448668844124834001591964071353319638702999051587053752314249315341140651437524266020901502508657808129967787923676282091700986885961914229346015224856918668338851410600899409227814767920186248669163925490516303594436663708265124436700443887568322694048895719206487521639690202718850381384593163113083311527347045909495323470057251591498512177628233481553357435167849607602598988574509112040010094011687624824675520449781914254106493288610753550391748844629506741513998670499471479340411351976608298792246638468700718346120020473069299590766761692297215066851163869314887901182211021354509132234056024033878028328277278150996242212988685507330080041451119323715389122645726235321661386000003374727072363012454484133054032727622029444419522339232738631681290366846412048898015133412926900313697048920596129826025800868567529953712327838504985525107493363223385610084335189309335427166425704152012186558290586677398451143100628715358596803006678233897602651235070213945752328010692123906390680854583816957425444973711767001565377554317500160905966038492006336395645291543575116381380396480873406667415784622231347921886967270168426100076953368808341169418958203467571555523819065722649094755672707881577736557702845561103549462150950145009222300639773213072811775008744265254320300259302541440006926414175586053533881371435965141476289248097821470329956640857501279057851424880896348526769814117254286461937128496718796739870778559660844622608128888053670200206588003922490480378334373147243661848550873082395907862686588783205568415232599850748264944432816057707717880389183828954945833254033619179842064951927817609306418621492103191636632763441618258470490846251504329960493694901612225015031330971579019175066505785258672966945096899915975020646668195054510553071589126886739760665877998344494120385281203528248128687727673432222620865504091350542592907852287396241751361147339865868350916557216514340330183253206786514841784518626621224431059411793298275293965238775631914327088612752420900577992634790773147067411660277799525943531359614364129725654660142576578689951808840070103242240193820451782473166614365839318540645150681553170106385551941408906399874781603410394676884220374805542483585559084388092568103111345600239754345637332108498341284966798901722453800330924488017519520554926203623120561690069007899495562476694910937984683937332468707246069430133696120118361655093749273617941503693211609393709809174390267323882183173447817413975239381347829642295671079575737518234987520838585107697682054664932367613862360986353829725935961186202932446984872626279398741269947994575658802375946007113183490989392962039183095431196757181914837736294430902173939198399965731909900411373824105018076962106689741319261716466181918773264054577577249848127183315956489104580579897578310946214515593916110352200968434154416557047773157783903538579918376415637039147109135338914361607544707259810345371361167235692351454771429458250947390737029792136463206480617468529730089296617497489255724867060065097047281703046066267729162076781860921940539391309650076093738346521855559898631951473704334397344624526231522683200492503392285620039679060925414786563809696552907026796701930028851907059667217044098201578917690028958965582703430945955351949969703010207521915609637845159709998390265961201753559148285180139217454231498635455514444381055190277359398415695824668318915729035605344244734840191804298554857005510178218136742310617776872235362297018768904590522136856237595292532818665215895163713031782065061643726387757124963463630715393546929316048509685763329760547795667606254007458863666048401495336256585293054043445626219452121278518826792716257389009631318654879797100316164370319618374751969286806645084157840541582189035519416218176701970451156400505087063338946872713844888016462864307913760969439252611738842263406592740757776779059797874696431291939024206382959387978755023252539809109191453466121092733395473168576835319430273764252786722324715951122230693214787785828172864095556290114600741349814035851786772650889216651839617549506087785683507938207935861696697845011208935291242502113576779209844088713468022964434725652749641882706973376462487705190566978278941022383124227281984899859113852060077649520633574945176599746756904736114668656124969141492749684352697695804810852922396389982595477507246981983441100155484525062131578814224957489934025855205657031185452243528528552898612808170667169497769581507640313867843226820120488096794866935470893433454954607267313563585407705449266426972484619152477222293971118592962281699720232550514972459420155105702286920471206506793218961788649077234696779495568876831105377497894576154060589060670064510913183329711873976589375063589230480425888144093569643696166609753603464751347693825517993532047992153228849097252784569371023029704434378786750247546735880289506596413013349750003207123668439886415626358631890651457559317136427542141518497217368849015506734846958480009036085408068846328757300198449171435037067958182147730011584003377423820793916658344891315551794520479261287544603036826648993867858071180936208011244953832314551533280250811448249816186116747104350424001650237895218636425150774192857816388718985897149432285541629754935354608697137047512984611162841797606993025829375254716231281512431426009323089785309412037785535226875905521884079498745333002716361120107509455967266892381988579987200916050191788972703274555973098596233718802769677948333324405365774147615374941551422222518884820119609723438104227959562630761901369507823182362644823032264442167591214111830402413585281783658233957176747189344241418675316644060190282664357265104122209393716359466803124536440508180005221502333904446254787521435033318193493400071330146283332691588555076019281516392486038455523031193791867707198754252395266437238000969186190858601536949726693939431639003078110700337738772019674570724702483177635026782847015955638685681418326768476638192336726422978653432495005389105497849260584359563097525767138389445228331344050434059175608644626290996853751605021089541303625493249923891877005376596829010349640530542956483424544523525910364349832880387297947308018107032631341331228371367153463426783256992652590752259250860503291364873672524346916522390434929883877998404270971271148567907210178578089981536270508340451799749705088363346048352142119721304487987265114021038939086546138133872091498659634875906362114162916260435899869265416865368289967765096302086980964647475285873186359056607485797461609690591197857681741499570434340598110206584630171554713206014953562192584079833675618415811886707559981657862604772539209794170756651874659668001316260155136142376459907382581741534166499481404925426131029391853539835161672536085385149660144171340139327686418786746801251671094897361587562646146661960077497320212783794529841676851985454299993190543397270467420936863515048447581806218336037262285856632149537069803251236386669493244396772537195349645364280328631572748913963921335082644565920437990431198610707470465653856769584928170367060189235209071151670674338677815784567549946045145190215420866251001300930664099683396431073947155043476038605986837641132434145682243335872030118275380297970405235590245238177346187667830268418088830332969721936113062948895678101830422388286304159035269107847143721163617054808747761376015102673173027369113162938685078345175030380492801117062533236262644445430994346381593654389594928518823567182514625199550016061747070319602922035316397744747258748714847297525898584544246876499762365149969833467526762625781594111084446214496466217885139121754877181440363142933677057426026667453095226876769328052992057563192618401770410153884903447854474054060245771320353723275002540626542899766604844409365863211871804272964540834256031856454456926060222313508917026782651716316842600181008050534682388213989362625569014013128833734005831068728392393254152705236100649557718057056465464947719447161675679215752067924534829421478100592026533165656525846417091142353926576053538481128226220489978906057542715103125283463880439691500865781838871080807069362371126797470215011984894345870398714942751013672992198668622953853446224982444404587191959380871867428029474540769222804958973157400288068591653260108935275214149199492370021037213346788591006913857365195309697584706662248437858251758776740079843237235407911841763808293003448725111644342008041793628767237218556931528334590207846066600199428060519058275989544585511085168714103804191344685862707018639444187077864202000809364486027219787302318910418793421289283335020584992166239244602748368690017337058867197830936364304556621191212764043607748302839031211699884434130336469804859024775658384874806951380534791788012460406145890358508300502958865847164866182520458190016723028640037899093670267722461405825240600233117108759221239609767511183307429962574306278577964051949699547388117952882925988186419931512844660009005772954338357857562985588551844111049707877175105039374812852105276733473548006379836391803200318747466824197477168929741887869252935767278587664732464640027935987353812073531976554709026180409639523007328735409611872019093164672119257504670637261547791443960677577742977456839908968887792983436315380755442444600497541892348096407033628089112094385864707291043122658796693756856828159335635877287493936270093055207538746384468154433220586089675610769351560332418640506560329384944585674326559612121793887642781372150196649054768067358486382820995787545967474793795532956819863571282969705538427313594781939071139238304335662137466913404949218882567411251077441606979833865073532804133135755964698307535061137645062312939647834367893656467113337164816089293318422590366581321935904037496134715735242349363864250971457897500433941071693716289644986868534182088807765370471424386681104803665749356957067328438065568881898268402124097162467117514179260983953751124419881496900149254204577058552890874682729878709411246607108455538471254033799903634411546702745103104434094111530363999133892291246930642455850372808803416019047837896277086106396315336846816625914022787273798205025845127243240766668265694814647679643489313282995412581288758820430058733776087956090526495362918547132949383294845221363824783660540308475902584235529198543650454744715003900894933652954585232841167361280445168515486750858382573109580569469146358192903773004841548055625337105046123923977862238903785306569398799822091149880034670608718152515801825124346889768151006348978998195120780389852043415279304627632435507543911365217900511367496087040523213360835673827837772399057830976425530025219956414289050473994529112601067325388266298958918065786612719459056741246056437344092347619773852018904608063117971682781540421113025765223241101977161545577852669745548759922546382204861253045355684729662170847286943012392416432891387669265826593453718960476040824936717085399936611319103128843155499476382400846860440084402717094660050618238775568436845374682094933679280596622799671222249322703759651578117459830208447499321889604841065034700430805812542106560392984957030732730045379560542681437424583530547347627732484078034862536848077692698455484934222798442109322906871243603340262533534841298329454432270182121632892075927426487319192477460393366908893588849741486308015114036017127676807679620059480366512085040332010658613124173413258530260743139979254791350453572426799143541479893074259510885825921079841675764285230158503374030381041091985923839595774786409176568024918342440937838087985244704018014439588594706096364931377683219652676522345627826254568554284602228897715105770801451210243414377872776796398449590010794270604821081552899756489001306108051935585279365040361658403535985589194488228680224122288044843005905934341482287109952079010905969402141811856831614813212172999756392439688569182072511214828632579902568015869555962461721027464441199960530054804515163993490430821370580765632584064211944713943065985071081219626449326908052630339840422496825111362110710000904317104942155669004956959041411552261356922893508876741722530328577230671087445866705293345206821756821954872020119315996414307804865151674679147337434067659650780835732229455009376939736306397170153408968549757466082002766264148958510969511202178066764289637753983919503739650858772682363603598596849534415814009501834296268048962073713975089588871725773731508951455403701538560032754217809345351114336720579455650019567128113733855628273846778083225463978777771554955078203711905944915231418912166870742461464160879854544680785578185810010629104543793302570073893692859962677356494799248683601703093773947701902203953694488150889460256520128624582158030872401024771282499063593013209079955663271167859012841506575866059728859789769697380762795703738954910453644010838708696822071587162166698071738981380611941873680372123608998994391800335303189234539071785194666775221763840976364176637993111107965640130683594075857500534104760707404463449976123570235280108937715345316812061910037261608959231600466211491135537960656085267611022334472098172643032179108883719505021570721561842325760422238835356292628671737522762404411201540361216524780516854627512432572630258084667373483634204912203695808771167773389329187950183767036632921994009341430344474894630928165760742212000089748561479460192717591018925339975180821366363978277890073646648052698933941690860787302564844037314758154312031537690351998330959244312271526682269226980980085161578843314833457827020593294041498182103829892687996632357490076910512908664179957824071820347924235071373985996374133326433515189352868096011373484318070699288155213382488547676036713797413196135852744797554569213705273132744871843205115518386022860282445527663579471440299114331117346795944139534801770363096579840327756068888644567830307765458875553111417867607675432419676171980344520220738215745828831940506288663722788643358643721069118693747298811910348191699448566838666178577029149774970258754616667628706601747258151304749582485985259779199582757095118573920952543313753802549638130982069074947036736862164559477221343204824007981200776435659385185263013043216622138514433337590767727893535598989622541919896328742619159435632169897953803533367058825237715549602624288826128031959358107315750536596521562532799521934756466466119920291063227777220084620457508768590743736418086317966144745415038474559529293357909947586540928274652539232524082565965167562577055431970883599791679032941788270671902103670922788779309434332686384915165514216854723078494574583687370184722355413321330075874514959973541112224986562577007225071156829976646993874149586241080487923284386125628466078783064866789723806299598762321669824340312482197211898062385288167102290879789593606641153984672888039238681976992610540282268605756946208216415281705158672463818402076049294941683981868794342627991784756062203697253728577401082365832405524415887267969093844062388229187216101191205043369588805720016076424589272452311876715440469083922571567451463994179486471597600588177789439744712486004064615276673359542181513860229213154759810265966830857198800304673311860420237044124250579977475379468530803832779736822386708453312470707042883087837735516806044569874485062215735443279307279184383129114810530084453515857903720977906060967574879437279167398491291390192175082431536607287700275930691978824728932663981857271596625355886443066908138009711276973082190324490015015340017379041100512099015126046669520679812330338505492771931000907930591703374579346608724484911085303848181843125629088056686944152159186289203440186906742660332312451748661555599527712496128125066315808679931911256571560607718595777347959625360140007632335487351432489885649983235928946918996148824876661845449275673596173956521090441961024822084730447335657803206067926652284561080849729221298004398599688421496145261269711189198304263380687752178228518403065350732340061868768676072757680422294604528983982048961581727830167541105427936266495751752452654144069342940432898659345126502690890006151983861785752993227656989521783568513042246812590765585100960296416335141820703983816056308969726886601719859819538852025163322657308473049286812826448028933271189417057753951168251993838765388242539209509055424424435040016552974246679092606151286198013178939524783056429429675389701764809482068211716420373352038828643393318687018875576604292948995380198817754766569139998822568170665790277751418453354459852834936984343610364020998385373000750214397375312142818022144307269943366466448760719427652446362094451365814236179325359305394531314167468096722482754602865755397780037934855719067696034694712687885606551142458110365977692790992194205278883752573308564372704718350049381270676516933237899383526961615308585497269108164485681162520579175365988231259662894064455864315304227793996879930711878780952465152239547298036928971608514814897646366424665953370885597339905792145499716775777018893016316637371046716973298798022883029558668688409650356472808821172511408229721298841845522070246113707930789077651144964704126390912074542173747086359338331030859318753169603305874240915782982693185431747383807937362947142621513116264804336492692995984474512487922041228284955236942221135603146028550258793948813661729606281328161044002774603277355308627765404228293810509147352146467188874376706506627825396886187726406492993882111919046200405716344756583574178483577940923804994585649235995327679117126576139067854119127305250732812244351430829111091809272400340830753220532406221926333052074466394784929675054850931120555486704127778583529548517188761033934863697236357454075440362716868622110089278710925719545783556267101936145839765682337037641676060349011499944038945380759577261123821701311452335498357338766181829392694932483854502940085157762483347129925433550244247511004054459447718213054849631263266287641731443073045524305784167757259702898796250960808556705546454585923773922735383750492123935736206576863419229761340458843649325594447288932567340415474854761199504420103656571684163521001196368172639158797749093501336248809466253287508188870836341872461338716070289033417932199829916908419868313103304806190409952014148964628613114436810840295298371689375719468482509226091768849032253281209644964367959051828392858048854258338739417680882557704931576862232652519636215582881037689601850048855762042831234941285875221170835105375735740447508276430850657675779510890251712712505175850987638780626456095251921721966382644531350901597115683989747712976056128372444024515027504295475116939976513686419481302536503647963149848860866118147081301569958834285835207933796453961145953674460314319547311372519842931713795322171389508182683943267395418621332496664903471869300629451059912655046652454490434170862069657134743914144462653603413055410362642866915580500174271214129617033972665688487226051519036298163664852581477327437370198903517034677971963644477959317409427532555629825002267618444717731442521454253598042540271120009847591706842607481850584526568945323329454102847435030689181200758921294611520624538636071855245407331090014554057648282516793862449684812493510353594428652968128598732303217630177764229510550132743777398436021970408228670152825368375145345239093699064975544948502037869041583235960974632894390744741113826137028440639685130801340985602829082415961490997782394734233895332074060594836262970038065195642431905845116345998739936659939298192915583905870297429360327158191305267784111171004131600009022293771213629343148390530506712117169715884154230363473519036710721428223081548897481755431220460902752148912481610348221508698080754841650503854402846802723621637332199030848100623908102410816867343603471033636010424983513568826988005973811472624127734480527106234098514936659395435796473160814635378128306262624614156427588826500930587967302390427121992769053134827397003629699804192237609553962193762814918016405721229703982201502543207632362129501754771577467287363792838101207132009531557198268272461446558273662162279761193253204354414233373892800280494584493200215706904963885182016715700036268332522362112482972991212632731291796061658570344106235265879837183534312148673934378056867885150141982394140161352533751527937491355590726868167283449395888813125451686560236739598785759150208791919171698648775308005026802295113907812509485665313885386708466043195882745469318977102773393994574720172588868222200100759325355457600768509673226121186579957192516960395969053769930485436809075956786627405040656897509331367776133010647321703708503496625473853411420177168286962024663189388809934495637671307829937935812080034903096683559677574266510675600385547023167129099198703146918426615109341897310013069128540315566414295642463156094637873245653291016463214480779787710303273166498057329333134429015920195372494264191819498197730505090830158333653683625705199563103260383788856400091703174662367573055802024589844200309552763596544787244145308322446364372149395923712967286480387919440968787876160268821111071058582076044845816036101297285067886154578861298658464695330208449731559526727993135357489814137753450262380088097093434939069845167375456216509993613345846726313670417680483711024486086714099403403912157078400067573628677324862955009529853192640504020889929731534205116914397906343717195057600566906013870430044281075130308538060156763230676230457890133010495212283886516138370190440444914785343481961309551079978708615679111954209803091228326411832458559427325732314602463997100127329341353297883774374633519076018763324073962098357221349133180234944304257315060103746181320394157224719749137869206214764812041666939734123729515647244441394329748419318136226926374139411530379836424748359068854945108522261786027185343999775397768915361883693922863956446937550475761850476399082954501726100669755814250474443794046914941498297128012637443375009408536341464282198189997443056015953280342142375487775856914920936517568604507592202777856284949682053226021209727109513250172251638677709428257948031481227296556363149527052004771585062416698327326469869521907895319929527881322996756685324494753881923020862023230931129902560588917743369246112133443486722819827830774344556867252732793479769517688889005616150243308398916096766524195313038978381711994365817620975038053495830557698641199763758789340666726173656377575085516972299125251982734335093323510175930646481337808506944406166522009200614002659769228708810454301694012434373639128915452900757125394420699410812717697896352790783537883443847723319688831623962888321348505819700935913031470640083049917900897372331221238948931993931937344023119630277689896091708386667419302307955814507337313625683173873019165925325537634810423198336923107045525001106969610282628484307519142184752884016605494509894327070748020663259575137713144271220124964610514597583372219078445271051885337609589278940606210868055216594410204796462180804660728760739850831298061610492335793188647580455284191331124391674737917925583760296309058702312267970665304388826883938278957282770034124318110857477038050796118004053569676304827648186209330115990900004469874511682115886994625916345575043146551962087999885689544480988225623369244370094770184781532924617631760853019523831199994184212533221424921680203376841608864032548621116306581208970811958162962539743500334919422485448584364726149037707052505603537149184419177392589613610402724498012402361369996841369891848702665739681696186829922807378894652472118663732884289705437641557130112714918032856512966346010312069628097669157088963411273181071725972724734994802475744426759472994512768385831032875101746854125591240665896103086076361768457941275131070516644404320654764051969983889332189212796538281009730119216081589811660838326660665277057147720332881933762759666347492806983033515636759153978135217761238327807938247869051435278440102084169635065782772824106455219728589712020623443147966060607353672871649597975717414004566260243471588438096963906361297615748886177826934508232631949493546466600018767129546193734627289717195013326309280274729440803007557470509829360923181542297564540980752656063950691309187468965768327197074954194329027052030112874604676476506790989860550267674009215229538882570927444628913097840468968835280807548471444750249328389324397261245944990751880373280441289276005102083836901236812730190321287619056757727235394629531708400026825293735109933997420442202968663184190870070323151831914964911344734339661931125442069766986009930035925275358135080054264438917366461856885099244622053631539131069683950172727574377175392557929516706993934770622157966300624147668785209443912628270949259724521305227130340192644235574501452133706676176859845107321807032384072995473336712500613075313025008368700490087632624205833127878391381382615055107338332433846745629237773751498988554086323667689612638695306911864923011776141676406255572659453293740171903062863422223567218049251515107865159977048903380452341027593558287247844277266523762910225358735921725892187829623147848008863744896632538535702299753831479444830219845324282739248675844829224428420991723511164616597607354129362498364051879370664049710690839471851998642150698748922085013429910400970100656567929408101554010239681997282157239911504733946001053507365731354344557461487920479830428663886630150130088483840398600685359657374742352787089668795548871959675481026331977438544839979673010686676101634398146012601080284861341671632258442814365691104281772546871089183440493502030587060979269925297476418958488317446932473102047420106954283978065079405381658602770348394455806528705377884632916020955219932435047964859983106380562844335611755709114164835457482358427862920191962199960194994870738011455106516895283408853543587693757187916512234470324298187594809879787248049555094459906226141556388390017021714943824551549583879036295626099426348503256285916305540594943483194744199572657747618214523568984851693985305732285700949467043451643789854479513380498140993166398684818775874617260159521651273705383702327892865594936802590035086850914810045464215151875677488966496146606140878426896526797307448942063083535233603454094899422442137349792552934977312111755417556270485756268977745651506777062896702202760375150651486302774435007392312783979111238248364082447869162167417072114441766482547635748191097126099107137774360308745186512666012903427541765846237299392146495184139926336974357484037060229662007820479495237008912391004797036897980601710332380321446064195498564555336974344925793281250597825344302861894622544584626586428424092655466594154000359963988984159263082406386514513705661021647505472569868053790558060971813421284120217879057443913940833044545747563993117045259184558399844080780465806697220436412663814522010887474554811705477739168485928597305499509509000437045243601915750814089165164796834500027613266673403140586723199479397896944075492384930671153777624496152644385242588806069441854104771204271342261830111523798483648355458925372014077409687759585241606720410070568163291076687196518560540635792599725976992274863633582434336835448982045149831116421833321594775043206443494604296137274165510803900510268727619772888696656286461349740533536517701447281748911821006796593189802221053075205261411872011833560673529610914479887153984927549507289992689956608928170632740859305669925909812946140560974840428233960356757461079647682877702464778055084217685285995800235419741398292657428468612379773402181813866631868653902559985327775390158494602588937735089949095647543218460222926616930436592179893036320352227348487756061305918897139270245555155625515564913433805980298887544695131330846813127596302672560816380037643872884124529648843232773259760782558055835692915501997032241256276311760181473869886462086407263573946215645286991370090234304278718198546852768413327492380979835772189152650571947748071591198090092601973504286520551051141548737547144970267953289841920063685607945940481660771095791980336350430859982647835716731097050128411818550601164405757717366007283551937341094955868570604460061969845385405566619996198304098975748017439717056425292361690816096515885050953093930704337140877438702239788588857474160616778824981331214463872619368088265077492564084080058288786776569343641762244227724910144391000199539815978027156395355807167181207300423673680225584975196878715802562539088332142491854714416908707248811843677403309780009328430356207782029909459427121796986040638977374507480801144338008306216896187647782376874882995126893417364435656738905208107154690968871325591936278662583634343930650681342733796390896413350875375039866754177859763300842980773712987653032519756567024895973978669329656825712026963466758150620441825130485209823168006622283013671718051833284351545542774940734655478590115148388106904132135181277998235886348182795726036532848191203201330610540266773654461654156148832725859424153465674953466822276803931047408962007572291179166369627696201045003207972493487668057683404883855390584598788992063645049894530997231443743480624887331821343899566643594918196998316529541122503722815751881756928062179845988783365416062545899912780898651053352722023317317064843674262723037350658558199655635142901014563945521503851676027780238619684552333920060359092181804211757166784563077315729304351826839464337047108189878334050610574236513901708820575372691144144314146810871817771060043297347802437251847040214884640536001986504987884633352257936121833771912003036467669520625326791107825261007129868463575596759193455591361245648538090255561148811201625919856774511683613528439199129662931417524472759278633652833685658104735629750041428951778862955136648449420079046236065388063430861790514949043938429977613875285380700632921324668918319747687476704716355825124165221242176689467806568708674481659079265292850069714353174699727721723657736763559387929038784680252480553395446715445235278512351127013485367980028259346938582651266802224137555520243790449168922377323649773963984708992862387785124565499446756237967289022528583224342842738311560876306002003629194842401092328088322583243916881551079255321246429123576412976979910908754682244148064094945580836451102772530647616010703144422477948106507372842039276083460111884473880545171160303555904166123182908629977714147983067038363607296698323244622453137529265081611840667529989964672940556825581972201467858569699709124346385283703480096171643669009681222912393774028681296544677520484454838338452656268301605175805702771395630810786455942799472649902183455688793265277582509416770494843388944015699091164985508755446755540851665985611047112939001142320350428935163840392795598696356964414415565380071978938345595909924694562921191248079872440623994825880074910943141044210992257205086959686301508172546299895678308996983440999039901074637810950721033008866623425274050877077769154048500445218290397119535331617557672501619229469085026124986905936644912354194734673562915268220553846227743529575749959172489986438316475882286755225285034163987462692710667479677889274987391568265558112533351007222490939990093268744418211058526308761702379344963651400977205036627632474670848262070277668716146381253586436660504382369426042049400150839329287883904075228349538118369179210903343500136033333771572771696241062121506014813362597985486646915536603519474122751655267622763647071629303481113785718082431551033812432573663597555532460378834997177735552401546022001704818952116829246069059659587201397225437929372228412633283718322088171617998267205255438431940484133785434585070755734569039478703393202637130427141918571464785746778523699049880170502466687059439876696098811831713833054849140604233538527427228101408616379365872928537803057512095229169694629122466738460139591963415065417515906374403839909625997434978779738153204492026426574059044610954896336649287670656027946180216267012359039806146105573961274376284887827356716633798768073440332683677786570977437306686533764874718794342712467565611161297205421851355599711220268878397920668742040137488912737213556890537409261189984091640437173826812331393469542335266023783295752961455792974967857214571676096732747861319514207384085160228997503482571008932620336938907936617711898220005232831305527446255642907610407172006336276299599218524328633675624872498371291012518894444338896780863821813058454482523033841146274606527438258089810953403726370599046389544496494813197689861044570825274621428868848457574975390047462768204229026427740613499496588872844055904150841846083118117078480499749548629803589618982450533719762647644066715605775640027724725885801767243807021952288116111083132713028397025850596213634116511492766110324417357439743829931165525245150463065988433060986115427772405610188904392082466681054653027098120942160393103038011381245219557969048578626339526943615061809580756752252748324893915354692735202948445086150593025884930475683993042748581419230917387347292953595454656069479913841606212436913510810107983037838973825429314084316633413488605997044065042278070733760380354106540771634730887192878512997746188378139849788173387826529541715791810625642745139155830478782253432662601969901512654162279533940602402884775635693593943581894342647937449714768363889681764756365724854113277462311045814774648123850284591795169677265238930567554495045420275030521688087647416434126238050460169617209038985178687830919609205257668569942855993971422942005322099463875963737896089169523681101003232881873463474035042475438767854103788522829312508383724713312669216918140595452032015819370143011562844010359713461683618205629238827646120072426566985804421210877096373431241240740725527371822576565145882267630430052088301508095756493850961081331598021190897969134275077299862064241293273598850851489570153744320673319565637270149814165159946236638143322499883836167377023980409083098613024390058841566716435614695104474132486985364067903135767974424034605146502691721405652397531348838027978181144121344633905664975718881914733520348066348756848851339537718271370779552360275839149580355003026557385211806405816818435597584131181496427628259853857961198751168521302236748061786701826654528481904803462385523607914457287325892208046083126452713961712100319660374403286044733032681269196502257026142968932424564851659411411300680431094487639983905575825406812881300581952452674104144436186602773644608205191644898135491759070761489856992347282605777990405449631407917939504388793053038129644631130483374264853760785212711785009120550755649566865856871149039215605557448009358977424903012628114191460104229198057915583134279199988661221860171306840068586071536612826948324085200587234514091382498315839531251524304962014084695216024771174651380291420532431488942087876443014409019020915432916228155303468338602096461406880768359031516496918049201745956397088513601823090206388276792813078970390746054135894987298410327508830235322327687489315406524189059530007655912302572332254338694392701581588298527231339170129695523042408367232225757374581826291570740674012354318212833947849050866596810856989154810131261811088901668322166484579972559232046514870205308372190754312238426137724510126024228250713103858089728939679207249166545891702815209665172708815017847487722565702001651918392289938547727295449792436334934586975580073689518504471746526458149003583075195800714419033135604000082300707347953889654854521727123990347650682224056449064384251321514847371563676415459584192695692533070082941226633659912623230362149522434057614861570691322237993137726060532594380148641231796927226036044510167595721640331855041869667755385462304055568414431397211475562141967984283645512381389296419697376295381344920240514117165003752071306520471568619749695406996197441486529875670955969109471202453349397844513944275788884831530948307755062250649870923059818147187261485024694585917488535083583962728504582071795957180617966790851765790592304009399376152585191923875438305074413086471815896628927937177205339187931385966471853952320847152836552086454018936876409379298263852119486607443820573350148496110656726797491029809156398818333593380958608516230804307734456456088423606488711390433851664500154484089289981452024025363258617048597009055151885475554470151488828625378364335008880087032692291725030338167707122161038891327844853908778252589118582559205289888447276581263488561804147090482986713339989361237577707219623481898697640247341841310976084289302508200061273562572011681576521816356467889921887781755625840738461417943006484334742317015447110167112275399933363936010152420777545910493944820426467465740114231163498763747776854307001438675448939426767387463183489106961862768516639799112698665300267449949854043458445588117082084427701288224430201109179834831110833379715119029765032375936345811093821662999015945332288290294303062553017739674898376659527906514235476231626507389103574619605724875424324419417323949216287098225563042015059185480454883525898173345012685621150418303437146930799952974038055410703740885504174899643845438157229807413959622435517857375084100994797900462059624629337152954737901501193384666610247029648044903359038787200567332113798746328077395509258536333780394938656234921811314789380624300265455269103940131070591820875739321393635581124224890072103661957759393524604884304127442517949493757143248873733323307381530658638283200614154769097906314996827141666294684931215938498169877167927705969964530684823900961629565636734627434825716387326848158853916734392691110458675959112624582366929711833538397698972333114760163707165985359012582428111595632419084252064843090693688274025487902071895879228722470118373311545802514239684788030613050000292864927720234419800363742381604858738288146652435356490983954459216479977607116458135531753779143356877831336724855500153716967067596028061684030405604762358999603750295918508635430521509479242173860614555439062496026983290433959874294077389043581140912013925453998447406857202052145300300060385703976664304059941557176932783300822772745724163162595250163847324250178709195195017321035788821818972740193635021766432047597292284770829847682704425849151372985927836135516213212043626220354403626916538317781874056112544555338621567857991686055526451537738346326355386235406734275304581339917342431652156740054622866924211244579717714353835356254646620052451711920343498170894125452797928081827601451818568770810630693390014141234527027797440092090018146316960899206779213389397665471218108531439496565710422190146233800123875014867706477923273020866539141516452070089983671336313197070674663164812640692255502977850824793095292685600086137774379512579181132202899544839349559728707360829223739921290883471034792561689292380329228248893323844960425542312261255194769566401184388604498694168959045528046366110791168746881266332918791342547014112814241396133148113784487657882665911120224177562601959779318932552436399977587836323300692437699043487464410030368725759779027723203682049003292880593118300780474995795275947435597313555422397996533099950669206366435462587582445813693427734578945621844189137781088059751733775526074159534301543567486825627620960958944451908599565605983990856591086563625533750554246199192617152237744681794950809623138846751398986180749429271163551718847529075438280117294885851775430951494114002985903420525592134437815343419929993448264212909298642380244518218368175579679284941346208064265193887006755941898363572750854022721995444596586330294546317466925550062514602817687975665567114907819289039384826444406775881904252113491230949700872814346627502863664781617827116050341760382733714126861190568986639168071031025397315929997590425483502821283482612301625045940814935852177712008426715310349934748356599692620851111226628103040775866334689904254514052272693854031388417219137167856262563849149328350459492359311604791365457129743469918415948965980705162046287217671957899922908688396082122863996084705938568843995525537661424029708475499231671973783439695478214220911089789135939502919223591415161494691109659959817646035217447852803063503678221656295457309483569385160274655499916644759350090885155742816612937725512456366330842852073957939885449391016997855159226969751712427369827118878676197272553240375041808399939408189271443277994166967573539389125971008962413642388070919802523393807697156115331918873336354304341425011627256791440231406382454988673003985480925211380343243970166926749033085139287768400767981506311837924887245348623402573372595862229301801767315763521562219354609212084853077357133020745451630302605348977812084841840740454294477591077758165458947882490556281134936930122764936693852064197663520148467992981606496514305517559184522658140789920368022350364879612097734595800464492170104404351493035517289253418394187246799926542069524353919237662337668301303527495086888444708787077303084294426273100899431015602732745166346311009491973286616724949035320087154727051629508845540035638626377101874098780992743627881028537241373307137519511908059414542463497745645422691176205062118579251927258958142631343919991409553269383966466793480062123782904953868967443162538568769963212102558041812370709645781939631370478619492768225821281318079390718708124303290992637434362446531750983421440181036507797308706339688718394524956477061751227548360461089765606704166615085606202270839489097180902758003933254054069152679046154139125435993705412404522561638625780998884888871440724061379402331934238736112337743997222671505434488013530172850712916756176912605904857802661805081643086310911003574863061169137888525235732022086650752847806078638244847822952089165469641156011401286680707873765124091777627212032160152391978933872038433268405233293503228122415881131858048915017053009129854262560099246531324040327062018140404708594984215717037491176264771477705209059135301742952396256939898696278618102955775888768605641612901150934974316504827224308066239455564945075498836384493251128723565063662749289241918893167726235285856806471767126187179598370514544214811776217839915437425823269420136027792369710135933758218442535623611840848437995488307610840217086519358616792042880089470947918475214293052361874571962630474271559731732075963256694936007613539263313973454250205200928988907170101535158877362590031955128987338438781521922962661692908060831857992050833146595524013700062453523493172345043209698387935185307957278109769113535246344281536320053604793765616120265197720508288073367849674244505681160880309866499914423381625356911951112196986359612451118022948220617931364369378529044649010853447793321402127971430762010580914386230126304274066133228946705265533648617556171605435588771292439044432550215399116553046921747024501393006104908332183365182593433618200687412569388875477304279822606964883024519851679240641479048409546663586164397028433337291880575657330302550999492171252216141824928511309545821411931423665650266034414935509621140634775966265318979660835035046844176207930923913413371782848690305362942065051727208011572085772321059258922287321972667465730684375302394423221124546739373925591118657849206923380935993122785095330020228213327408309659424423292127996402502406401623489622132557559050720424801602209655273824302839182481575527048464748156313096349208728827838127867519336029831347399301138111306805957170331867436580847861935790046026063898623418569674276919522190643564830161113961305921651284637459227863444483675612646754156090023217297391478678488453793172514246368068234624666880599789348209996821509818025306131871074482253028349361180055556239936177990975447352527378769926231585104696683245193303012443072095553538939392832506015287983862916983228986053388131779899477388753275344182626819657149477139055797996954961984072392887713746581433341084718539717013147334069794318868439327980805605206915304117605276024399333804852151148026827122593067282180599389667651421474329519092879511381159293839663590282360781213576213249674033260996588621267196865113342552275505875352386627661249080146785415301120427063425165479720289881672460320224552335785869786083809680495256295988762773707810389342418652811355051241412613775157959557203607256163227315368757203861766726076344511748268393439705617531588010911918419943450132618925355749713910664648783322060793314289909270013848669319361199581541584481929742481963205955223548285962944603176778487312064232832590942106728478094899137421398148129535054175141003172152082555213281594207733725845447254029092842086767612231470269315551371139317473213785906371704013445845497978364524684635164242322932900532207570898743081324724737359506180046544599246163041739540893121485400288253855107131912113691760733691629939653606704210577259816342610428955224678385584080438741092487635948825687632438647140738270153007547585640290387293419710210218528067245239890315504753657264911937727135600575235960805813140588326202423129007631753649878928413495604809331342509722710379412273856239289656223390365175526785045221564206255901844141468859937241298924336936376211447250580911874169320345530901149513570509504710857596442270572157756073031049284564559822669988740589708575683635873098603833893980093247895450395183389012030183154003950822339786718004444885100698773999963849060756371281457056727792658288903120045597835588037478718367030441956394582803643540912234383966345161717622096445215761572692429614711428153751460662922586157203918371283435828691874709163570725867627731171487437250908633976698519503512673424406476946474394723506483611765785301333470671341319907689870310721611632880315728967063297848744288859479524061443592602335491199760155919809780239920703081007389987573013761568233357278031647935345355688085251724960188030573853052602751116062177008783988256394131831610278570506184963037741968302896306344420822010475427870361936782889732029438962464451595547539909039653971128226758888410238917727266253821639790801927522319136794610453959027039153630559613448720324756704029779494746516603577003233487011789150665273601089104697465593094559754696821853819570744482958284217252732297249737520571125726019293797364584654114780941415302694358130819444611587914405610907172673221735194618002023959406086146612205210404148574474145775449396836418627461890477856593631262796798863066301976619933357072992961127279831193076364516592624524599681840712197800345508338750412521218732234890108961542253237380404360964217410576184513469959263856152110011769049949337127827756950043102096858302979366204763123666584739387198983862520896406620691173546914515530244742831078029220688778687117691140432051834838755034786863972080813059753337599259771907561401985972852540217654751706764181259651815660903936022465915731201432700643569290795723528780058801166162778499103494446796404948284763507312117030094840631591646527023126079538647638069074563414251644887342598005521223891628937121188409970178152931363813658460894399804464068691682994846366993572924831914893815817564946866211276268494774031061976490086363934330199399113328522078489575149083596290417289703059243161563847368447579680971659442309509516944934805199180414293090685720749114459131707451292514204540576107151944236555689550445596018258197512969511640215672117990702116561349350952205314667629434691124081680512118855329532367461585315237912432182125349967155336561413252607149775734511703302603465622824916239312760868270135974160255357410192051349004425793819141138374309397989728682854015179996651599798151923783152988750080060707305912410814115303439626560921129385432534845162634739053955221901810604136406643958232482589201688167109789531891622565178709808484275175594700273122104169856624319161863912006308450212103888586712386361792897248800766861105697485553041794488746997516059214019398098535705862840520304460068261129120044445304624028356066362061129831832322641970729443704446241439047457452534393034400980177436353202496956687045565227290270411259690404958259414456928454584860427629497967933235921254129150801637673003914044100416599607304018326430998633152757137743267069008499691013491131723336172878618983624990598932931003742511802966353188798378375022007589297766909135808767047240593267392428688728099032254655339777629342837774166357986614877228436622624877714392611078819131340559303028364599599296876244891481907483825690549488577157314522386250718429076118416311052597685846390666385179031269238307863946612261814629544604782617319614401203231894348513112329408294777751692141633587303855814756417320158264712823611157354540116668950884668109504617781569363275032363657324617207069534703457332586090573857324915885584408470789570070634162062550335255801180748067773603228815695340368900151705534384145563376406217142855646679115725052874247918290387044168693063079585030623702251472279782882212847419182758752816944216681950056200740244445288517975624956592586359592805187936830130349016747443922703871686094955645225548812519274320914935715037893521200596864829954045697368967200361214367694495730219521561589006706356444919538770209536537985696171679563610439419858713914214918559503262696768966106761436827835751988560578957040888091709003547029532645880665837663468544354216842981268099894887680793321885038967143296941423369700549367917886961984299580764745143465031713672132162039932710883713841463589032188690876359023124970641672754789579466530140735561188714301599711385285495686344614509321210066456637007123118410666605322867253257755687043466213511557100315614540031360505433331398715626014544564393311820325063780685088081733895986846480415555413226007569760079087812651621172596990872578962365498132638041339872640272050924935540521858531641580281222863175438942987517538399819827771486955188955021765878227576686941026124607108261317493102011055931886753500365305942085232677692457819223506066387818838856854521293205652852751835969636355812998513750722673525986948353837869033035595896906333480706663708718557314396425000378039667566561352425518986898569032979965589035467144943475043483015807750105600063096527071520355862422874186940197973173879927243991263921414597672160447129892823848965614131568398596883427837288215377379350109051985998476762056014970579820811331298670723485250627055516693226978088792145038065460198049136706245317335528906362560170427410071437969188170175508775642493857322035237149110632028666332381525887892953006636556953683794786659099695473830234554241603007249028027768085131049102555468638157512710860958293010048591081325393901560796049927824512280695957891362204240531732386913298878291241642943370026611492264217028576081666379652512202461719569829994011743274240182644763295865482986435354507819420618577142146065133116713666777110390552820342125193500609758998892434653966912312541975563159639078549267159087257583031614524227089751925089333970534134354614151638119309449672986472192766356610285489908859699318486004083777105450912561473796632637879150022540155481695668051076347987426378526933794528227975872506239356347003127644607155922590972543407918387604455254324964100268844758895479353788325940281701969157174446823749330090061306061419940175920552533188058028474475327416677228870964855475914306351347983211130469050379795456072123311888049675464005182237729201842194663066416980347296469109436382261398943959428979252036254703827293797701707936116437285281190396364455825741493550566299001057476093378183214514232258659842854911796258082315137965164447413167955913109886739653757798228128705790875948422656630526993515943084247025865152693946649708967311464566100566769858302024338399302162885729028030329352783866318026395778878637967885691384166453955973761633770076590653016447971491699625318278666146132511533965218125926659544886590859130694951741587259284086994299462729578769243801512602762944511308173124841385561120171314427810129678036694361270483764113210048948103589450044494984658090631153201311111439451048298345870035621416881512651774891091519733303873869377649361608531608585852215526513751262150113603575209643343249593488012828245846747043363748875240845699341033593197500313501048777175319142502703080445980084736998361932392276187986462872803822700934722484019014078322843706564339235757213579009229051464994243432714326678225104199261973583771679020692680796276831930228626089211122368426864110393243376967921334740163234559906449639440652037878500303945400809283364007557046650052431213663114334939350097587533216988459696532630048096745210806516016340808171276417936459916156217965134215741570653015932194693084795319805047851967369140949410135847319058977637446175620607244014396136817317158107679446980394791960761124059788149879736553261800765165966300514415847464973327878849503478191387098204975110365456655946593270083262198411967152134306028283275819843173753170782381688604190048260610845755449881759498480475146753129432708779919813741172929212421219224451771739043803503939030042667821927006396142711158123640173344346784518028436965492627291274257241015701906401490725412706481598278414245304633235131100140338141123093818562469276782207893889824469767301024564390591402113096343589166907990352448073178210939106356110683217291543680406308848171249896147666930734026802945839551604833513919717366023383771386282712376218483810064886027121756728971982355769216401538836355168288098132291392487813807126587918107418091622742814139134191352001596818345859183727832015671342910735366297725973242166119136919774281387933821267910849525781288698035018607716530449637183722949031563335556908068078352028152604263056550989788065259071596866213699912067459782390083529032223747199082905076600647950594640087002074084248897094753699107818093449354540646149505323246361383236746264726685052292634440714042214210795900316527881634756507968012537356313343570439116614606685867349894534984972370472876178771991957983351662377616299353759063837666041371887315298561500168154263928838068573533854225334959144731507367110719255424446085315537617224059380036513232737461454002770396057919387122650849873538377177391159971414644644668559917179312534759515187922233550763320326013421812805435014104518386484383221372577632609320026460382167755567847089475967969262654276462283452836274202870858643553314431137221856725058084649524716324921997685773138147400863860704492368137856967387260682278591753716490943231885039822949222858649842497901444298886076521809974110365235664214544349312069623424421269050408682555864066490989658982605071896378193521962633556512537981607157688112269894239775548274682475062848051045897899094589941998369387994910609391953813718030443684020133909460527221397139668613303185210021399472126539600832105815187259324318750521651788091052355547942999072695673935344954661802216700744907387056760837284204456869369530321606228059321316108097190457978050870369482313943191829347524931819993057900947878537910829716392004633233239409646859515060312561273102523077590757532499115642903939710895601792122867037362336351924575741013162189110617386085803672303412845049388782607721404635399643080897836154847891029717156649775625502607127581487182890395466402102216617863207122387582273982784135830323779045893073091765153423132673826002786668276950476126830919749968321178509260729774307749190641248281363004840381002569087793450149273098459135508879812706679470457803666701478735368206326610683860468026606497229289406789362839748733739182089639952221591256432689946952060721857789473736748649387138600267869236046117923548085246318350204410327657504599147084962276035816893898291137939602773816228236998316139733383137856110606134367669618784274316444872003067214947866215747422056472458766838813879657181018095878278042306188940014301258036831748677091856265050823700858936852330124122554881035916287601884433756022343758561010296959942533817291251095795964829809792882713337391261219355766448705129956775092180251454065912993388070258454317771724582895593505335240728366567142452162115051246918283842507911212565207396825217932969769226477037568636623784274550487841886131370164241784091092131384352191291033247326667443792453359168252565522039657512994295573085526843283205107092764370046366403108058196354565150961179770729385198994365275194589743618499688604437703568845837426638593227337443671279541243790512340737808703859589999301834733344215224344345236489859009074353494186338760310513335640620667989815812948738634358925568847282258234260623682555622374026942220375717207070514705117129567583810176956877351859881652355992578726582291494641309717225358753098914325996985685395139765306562926297740929805909438194945509143744782943087977740213815108974785930838744616574168744998713071845828620181757404488272306034225532284007659047502191952997816109683852643708562056477897004162322875160343138402004221480289483876288009077157313066719095848480296534422086451583268568194579294822511624532125290659473565065857453105387102330132179174896804229525313540933598983033986968049333595308551314526608441874714472574815360023188278035994051690437245457986280682494131196008190861561751755586397656111320884322579722412307228671654565552291258865048762265581155783080333161521951363576705663506603372215859232335510824021412705841806402550925341776677006942480268635145921928174773577867291286653784514674596875227674339072923202976541645859601402363821277843538208055311937025498633597618845064875115436626836391443071369688716704188441026118598022467940491988965537862382074506803024603477692717057657608514735200202137111726156788964128957683367876327105792246967081377819658937648239811538484343963822169792357495766447984535318600273903437914674965527855799273240671043864872453824500116924543662252712457585453014608911902093991255227423789642162582625276568465026700254491399611180115698203644704983687203782021824825881686268376085107934357885300257508625569798231111297441061976667253085990237630446237784141979221319421079724657665995825082540672470548254185170306942644965975572555406157226116790998108877203882626803486862388195994439217284964374688211836436754002850384012604009767618156139384030900024054163458628522265856542654409777560678803662970038377300874633133137840419022076563388825632044687766076924525940681359742038937574315532483316914770711404737362831613620767345539563552848942705429932232523886554934787818942943719724980241345456033875279753725433649428378829306645474042940916592065219155928394281485115933494223920814056042452575195708030445907949071267462983172776285713650415906448111689233146784879811726101038454134701955386370551339902733100404121227803925376965022174971969828052576315159705781253549906365442167542951687572385513524523257234374814054273364085978513848902928179607641584819409491501039178787154478381008748719985096446212638440982463125764452006323469764925068728818609916409822456648182648178546796646942327444716659361986048859934505866976127316020349403356836777624847791874829053809758226775481158601604779608430588193395991642999596521092558465864127666320878091349545185211986781817997735667701832165198876730284367063550156807233911961095724445289503891539910590004521278805836381207830626935548438071393819759979001383021739234849185121433662725134423911029261888458841755252715898458455632041882066730795536592862966282744036574456589739008165271987300272609358052541391081172788661384261540882133685602182196744137891567150763095278516845916095292607940183891072121382102818611694759332128481049038599634683253907439975787380973139548344186448343542839082590290818112669166090760241047035294511082045547665745836963137014797366864692355961356850232123998114014532023664215023350983082502475620444878828576391780162172112396567989775426343306497733001997050920642138254606399772114923551192579576818807178824109180920128671595066801630837618864956281973195741013004657922313446669146672504173990371567932246324435575036520325809410188841644217961582460585794696791319608132718384536669311777769498664989343759295906738047685535418755794447570927081944124242492609289150597806779451922290483408527635797611120957531530213923831290152121427688266584786672844217516898992013750102400726434533991521492873328165686014362678591577826056613015186934817641291539576594042877861375618531631254702618079649972164058492945052311727725125702798340914114106949913381416284600158837776212828555353085693787151976906443898109157534324392245226917497560432397310745402487692248708547771831207008268177921429157185641320031586594566205303446586751977882756303489428008492614395830248915700818004923484681000133321086053747799018026159136241211942572715068140886736465580849781590351092193941914938004951461663565380504349146633667857069917015427093203642663562035106426662383001114221777975203232489577223317717311404258314414461879201855352020614040357466518721855701458725088945245252093719841988190722339998268752464392442285933471989088041937937893801568649534729372539656631538406591282518522679067334820990818447968932404434287718123674903871370576972853779639150741701348013108148818431628142311011139596698205247646530437421048720558989993949761977877706574699045009642255966042959265344216353372170712054076728440320547153424100459959597113518897832132834919497222010891903932365908039819337588147061616602146845152904641940638024268329819873783080208519282149688705775112398473585261005718496825817104917590153449124808934359659579723773706957918249115734115677192719836651204658064904072822138925400033756676424595696321357355321497006367005953991021601225335087082982246838888662224416893761200009193232395198883505819443373715588431383810605752820916210072100068389185490472650725524818474716398105618744706889679887480577220297444643058361090783057909808419900944050599900816828638995783847189974896136751651031304285149985377747267378043653183012803100007262436575872319220423888924283727507198645585077004797720914841420976952648242810811264946347587792546367869556043570863371058781271876414298602193094687452952479639908061891615363244610905233244478602972083246695284871865404243782861279679189698128794648197804477798925317159077737640391672905915275927830687672296731705195182257768061646307306878605221636812147277067798067163881590817177568607394228669487905237345413025109730536262822658648063758922197579582850646691666531288517542097073203164804259410933583296073369608494870485866666476402746334218276995362289212009318264596542131645522539412161961737735187640561658534206124838727247798494579772777759952625508229513921852308981370056234520877828550412216961721065136284846244676190062558260509360223440364343592116751554154151510465157340846837631335969549205683200985984201686750810743572598367483308665365207304031750726422684921077481040468160510871295986699803355930412293778774590204953183257371355805365720491852790762371207657517077578718275943204728759499816872131742532574073856014942491303393570134552742200879873525979872753133580323383454963736736665432954912410596799758577864416421476602650329632662239656561314927607571888527615776029944931858226602161572530652415058754870561815216198823172571892534118383516029640732785767834871326434800963940234511993008218750939020463895082106397625886571319679383787580593791456224678693613995526484040628473283485239128498893556075812025419293438588212255015876409225862636757507053180867554216470676277176001934882460312865264686797839322132651811923461111273169602636705301479151907623293031924577474545519076968229877438700179623053690461300313197553213432053620417402031803300115624274067646974510127415158786951341096987097979902373194325892047157325777588152119917644434089569971577919536465582610415834346732168265206052305596396204500463402202654981583542547274706585231827963914094797586845596952730779574889985138174210108640884002439441248876325393076806920847316583396515442427341968257404943213533534604388161073813157868414851926870853988985809111704131602445530938214498657926059800597071276207143690170874536228120912588019591088891640511599669345960679750536563111648122884570220683898169245689385404121789947076176029636365662730837678759321998660302993877352615601607335703193199480002940499808222292948242625975007005290828127900239952801698543876842509928879853392081319681237310361343328481003258508445065997709856061779343606224869887306539438671031070528448326337401444863772203126683134717638960571298093328639933808031225189581542520280218147432168118546818611177081176267910031444620288952881226442894063022491075035654637301843416449653887302339269425718612581611489929168261927292941793287317830387369007366963623483635022162763329931899938770040079523342389236632354261357135829724575051383954199201440550496686170344033603451260114868582230168857633780612631686888669416206188462373529146521715733821219847284425144960461571394971375097249262795883582363722692417344026479608153571111038564576725770749933713838305397818224559869484978944138765320213780317360973516672734059536987317755788755721151049656409796716727931697023453192739220897950899329781731609867060972527874907314728990632089164057448642493245531200392435661817274336711779849374911037442943400372805273324349387063320475357602461015383998035458830149796028591161510411461901416980040726369403041923702917540785883525523406964728446422343780005696516465316046626420153516766396602601761705158966478107076429732521150126841366819295116477206302027333888389125820630996203650039666043196338920714163604322052775156438934436864674271619953337048777264588934460959239236016671531103511646515141765641980690468737573606118812960895369195795207574982898694476054192368865104665365153678465579672321174191551389222603629704463351202215513633319503928488775190244956065221130697888859185264254636257314469702084113340010888298678318735515734009046732161799813373994349840480708974392189690795466176626136708899607584407301606887638283835252754828987903421333422975544742354288149329324322296030738386196464482753900631439663969153959140810699242041502208790448879157492928048709879750448072743031353757074332504623314587376925641480591603880858210369320769895153079992701524435865739831753474668966231261073739715467900492696874871263649997388024597137326046538531492520853382238842119184578456778412480750438368320147015653978985393758836903015769343622990881655896277212578655407358906603200674332035047846491658425191110829597079956598810180863467103446664645922344699702774955317715368417733287637323978043240297941294600144699980210721196682247535473321998630313120699581216377817241247755261676770163583929568557435571131425949747219588162738679678779322941110311211116176362188378111406846927457136521358731774657597670307194675442087136314100704196182847761145927014598822254248114710552398202003200386220001496862915353405250321227802975819462672987466975706770968313245562077253812418722265294719940128564261422665650280848587041470340949045321341336884986979421023874013768964838416961626987712131719079554430456271683219666334491247034088193860212014811523632515684150303802259400990612015114772222646362624318598681140520014770488229930507669673298348650595355713198125376271798443885228822703139700445747725876401584776514748351261785365753543089743976133866787982472770024221210208948118681309521353905130491363580565883122120865415034729261182820945548239048209359403198657161611217227415437207008206661798609045796681362645499850890421081510912608778864629835185570305272959902142849894979846756406892861851071661333810679324421325037226169674660101959384117946776418370972815132421062100662443001693417557462633854352433791979917971163585177368556232181325442192331707403639480924557377449263042127548041426761815496962039872845642552358960071252584524906063131265051879623152049580471759927254486328172838261935981118552147769798634434764657783334804893394164065112504536689422325137533474184776662104049981972799591066902980472222181059802526238135148168027368308829978956745765400515440397229409502947719919171222657030181691684901519131045208119305762636588245513280145497014917385625490310156050173935818875368472520105565634787215056929205198774095944202143360902560688194496697389398446968019821296986041832824674972323300130543736424840414773014724757552304747284551334832314397062858185549430652873820492681691589020796068735299429079857440740779671405917435200558380551697117583586194738064036953579897730263674581126322319354577341071783998210313654723816493994234976547682664039387987744698306509618416329637449256467170424684876092603836411717492644094282753665619721849758603342752421011158836606428829639919068759481133295096229185614389883012183009863851827139778633434148901013388325658036685222131371839866127256962354130467592772220156144331832384394645543049498799753969060187208815438054810159762870598189703423439898414597325350218120623870698693138880081326140491631675192873144442284500267160227032633889729829687647297000636499052377205305501340893415536352939513594719870317185947484108475377231195071094336160189415080440287222361537641432106549373414650075893964405760431209240978239998395822874316046780875149637125882060189846937832673091852554778926513497967374716478396153682926975602422867773899931171168714361618048425301454740608466045601354106171455010055322701032359595475121068209948531982999605263502096874788044846952982529056317110300044007013010117872635316043985447615320057177308302844372697393986468534834237196805657574109434080044484239479629722820953499109049850700674853187464483685243561870466097177079058771547874365205037033570857760020892185774793941126196312311258523503177886167944345065658683251835760291564799971095761253970095913991556503126330758464902594450319562613540836816105880952389314236075665682077489214147896125226797875330680281124085670666209656981525323326753320357313515809079322598713386334757596903125769686373977025507163777909123054356112214973048846180204880908052716463055874132555099139276310180212210043665748439874272559486023157571526947333395520322698293602035655271004545999978173734170183045238708640585184955720785467240464142015130969694486402857868235541190344522811135720700354321802290723640724772125496074509873110729681227368203174961867946736771658217548938182380441984360907563143241278531544965947216194644715985623330914889798800777788651282864774931121676827738627297376357880442633221547720225189053697307521011528191086361139273770837281147695169000596533039985117409961073399419209766433291661414735371341302983348639859228137557181240615405565525543534382779097590341616281405722265409068832474549487445537772924970176984347252806922468339642405599812268470151199350817020041789971643151171742528025627270012852410412363082577502318849576948002578898969299869231985208647052024486126891863315637920628188068045415866804903241353884632293816347889803420393614258829437338486758523411389635752099765579427458232509032170053051378859964383880874956120092051447723457083643844558580620535066565119397634866164276587658549447568624956315812476485294508766587537127518818556710273591920502283080020496869262943332251847782774824846972526494701368842414281564207389223585005354911059473060322898428350859552546346605661139861994868085800059280709388502813307494670838593963271558211832526257503844627417824721287043989801467746255274716592589526752255203256353560317993672506271107947675986359302970216549511262510858007772211112357145820064722070348080257869324687401966518438104367330455967665654171932231446048626919566632342294185626333689255156502969627368408958519209712188549002903309804961727718307412579478732861468260579171971357318136428527917495257570741239628905954571648828251627249736848992089847723463989882710618905715421494941920806424062997528805238050189506135668487521272447834437116241500514266446715818832469237872596630689871526389377068634100404954728198951492054974304818424949325055148159682411813494632523002368151861255229658721204046668936382224656341998741073491478617832272701707926163687238605157727964412072206760263385408842381915976854481774445115515312236984531927615346288431657720818975571236066772799960764489504678468072126634427845479413450517010810015847272664651697409732682990717048950083232272023291698970488218998995989547953504054885982363997476567073180626754632522614025008690206216068158409857843904246396243849538364794989710862516088466514613876215396828592917081644914294944820050328628388128405544477441183041858482167957405788247027387055948533549529248890849885970030813305733221392595426996058463373832796139620353535819434539949647042217766760415358403851223771293492416468522632642017452418502903748217274319619181472797774129041407302423412756475516686196254961575857001991687717144211121344898152006238009218175905458849671846697939602339743124199844918932975941291326979174474301779308111473930339149932054318697181325941154684765034498531887103563898480082426713838336502436669912006366428305879718183220025693438148239157014085253515474302823001018467156371648951922786850669607150422960145495978557337316214029518208548168064465213592290554769124772198732160170509208331880541599764868906204067483510544006586986057742261256323716003507513382042043200212498728666396573930993211766421660877564716707288130251144266188812006317016805328798989354494560146269779698604146883066658707747063154175850456006425961877607788023823806600336977880762627154553334498393126309363090123833131522167286818514162814140223538914470292667478412514753224331802856165575793271696123091367070263208257433855968292336695986537864160387162835840438546949299858985399843445320296173505472854844987471791563971179111988514352306560059004271034874808588933466539464615598938817971790732445288656664953761797127708926376462805286904812547536500285737854261300935580665721742825204079199698511944810783643080557398568632996282773914944509240937517557645910308046073861385619227498459248804407937599376061008351603648858835365776018617541473553201142275391960952885633459040034515234725721583264097220743481685369219145737154263965575114724349984275415917673630652710183358957298660955329846658869453470545077853757226110376963339813139991611695173496748824252104805621670319802797234940539124089229097587320168253659539045054462402139267301933501491648632593030076691004074950918811067016737892128207911140833544772896238875528534247476412306444485914811666150137402446719170417882534534853519311314270340653436914006818810256822900883519986341149043911977855652416793922017636308708358307705346960893609373821907002240255600910754604128579532916390658479883656257993491566484113033900942611254493134690416778200586445681518869499915149697505039361741959574485118868887157018493083405871708509040715580617470165069348421321820621735150854262294560348830826868069262122134154064859218076704486842162558107739927675779793055892785611671684891124116574439395040871107313584353578610347478627143943903414769074513890308675072584022021275667813899154227847257512695504096194676597084358412163356802623217034596100886305650872324753311234355624939596814937569079022495720787193793148933009752569960171024511307471645504345880789961677644057356739451611279792757488823776136620279949506865645743960452031700743111495138375580592431973912293736169046650945182249682213844130647450688722087653458219830759350714547585807118850148777277772367359382505804688021316298538200042155302963474382295300863917427725028607431480246439289676768811526405124827813803479999085330643526061331811621579023663852551126967708864092578885903543655668369611732889552262336190521127696931951266545529541639213443359683918648379516420094806829459751496943760902052315742276851220510854910691573740219049676038846609698977852262100272659263848460508853636974212574221570504809016879630735881499948105240181444627818808313818608891709293739375604343258518541721527021959683052438584518259140165090094011224765669844514175798553699726710111359818891989665841427036562292596386423224989483251597358530123029471658878229609569900741848616871405668640377268111510214443449225559683396155630244461917923223725907305182682102736896377750169207970674253723220803765984118277710533700473718094065842761429121055603879498698544553852352753793610691394631247041558741109532310581898839656287114134481128332141144412507998500830459580271500410594408476309982003669271346025778224641947980459671618159125554807247146957446348104810818112232701852820735953319989567851734307674772526020823087676302377307241101555420630214751603313628611154784123255614814128060977032441136478321530534894308994428276948050767845260421600533700777821534087471632476614344686961589746052162212185713935578980048867406752514545814277156939906032861857092841809750288786691464509820331289643142295161276503184097566769218057381066159773547026826789721126238753938573544948350157672838584976310994320701203592430327902831575428304374687123777544180091685345618332499952352175165322303476163079887444468666804349657221174201451702169850562877891861525338027074122501112496893991396121554701219070773151850460140692933101720943829267998848945758575535736858324677967141900127310239598214437243964841932720568086779393217368805212357435518655194064259382981347091012708874096773369040361729343661287721374587577494186471814219517585664259446724343222155506553827435494932989874179360824288743156242429105185199789402845311011981676867906396083271786741348209180928145313060136243396702972933091578746518624070013828720960821270228750769863538115817610509910211794455591549274761152498752212741594285769310486520493331116179381247442413640078227554635766567069554356017232151801987072771982112437050662147522791744069208232416040220493616268756549569621223005213120657897739332426092930623232777054603170788976408283869249251591696230827006795102083282647348919956954425103683341173822447287897625386190245546504161003817320596305848931602885207730934350631855138729564278499188000747421817000277387244040173188198504797755742953549922832660797709537854326752018016367169707344965340713784533357538350195554939449822508662717929698915191975229955924460574681535346583022564345899393374916527554292360651441936050552837866123630660071439717254320214735928969466227775002660718035523946724661920082825843657864988240878454277123044667324016486642587577446655628284249849747867741900366907486503166121377501537217981559957102179075933180736499836406733292790266266951443912153960326634735966686163863495019459502122194573125333223887302896994991829938041587717858985301185672718970064133192295029164007175197408493980341927352404727616959485004822553334791561751631153687928095622976274056204357993438739900099453159671333965610598697253980326179638436376590723722955967030121423946108085003623550973522341966872434970865704687644535603311768842105771023212755799482828227294173744992356156712604945970455201398322645348520708640152521037437840888388718364723092715722955986824303704647582160633076395122128362867352753559650086135836959155097969732904667502076586810475909225170124940062990458650764995871751468194731461016190915457691995848011731282244564813803805813295329928240220654212048896156441895765928189374373293568253868162600367168843291750717793284047317251256682218621364204507873642292136240349044971519067863995162785269258791300766730430128449410247240603546393564425417779852171173902011831087217863099233918720169484739011265894979551403708649711730183411743057695945732735995162075308422872833297664377539909904411652626778337369407465926352851628100597834496243176986331089247771583944674543875603099944017467993881982623497731937944002581298987219927767858964772430259818958388711200346401597761930944937047226299272606373117293464230652086997818653517821836438246702471628861687931406370573167464778832206124073871364486493570649822637279240890761436337093748638416533955960629073636323258967924191699578840743128189855646047331042651445499948806148162429289031292644113284325189473714663176261046835522150256157524791348458164426063282131812639025519652336991628405206346555822464581845991178567431632029496301775315586417386151684199571661296470692029248538535855344858331877980726358656888704034883164174322200169916222420778180404285695308920341393939956085859234298145250859409894822367436725803485506887065283574317318320405249997767341896881825390351767687647253794960706660302078871625533609477794461869074316148713474715011617297793589320272535635787695993451248547300704867215243033542288739959074453695949115479814708811852391623819914590992898992603409923761092867768832737758821125719916620292168213112141067868783079918281161288683011938463713440453255002605654381639046522698103403211051719277708800183395994335912808593542087527156437087707754209294991027108556223257516345623484831049155211389586538992261361137757313510687806678742171458968484008674718600347514313038217966576286433187286341919618602242172786464117828083512283023003644007753215846379606879748298519925526123071076353455473215020487918360322681152929971992642391328088212811159910300763484797378766135170392236288033794362399122707097370136356306480166064033411607685074133400519457552932147026631967825817600973883159349046626208662121822126081475792945792612670899555406691613415680597438400381178637232524448725074130343988336620352925163291172185976319974076574235720564363615593289290833729751681387369331309519982547089524426828442545522530382705079916976397132552577596458520043784973904982495599666382945601408953923545675524518190538139996642921847543859584393789809206593314080889986403955598813918127934526752324620956167412640865166671792506007156506210326472370835116341144615692427982570334122190290774532316118691591826578468603002166094803146077247933108672691334803703748644672725474991071284831229691669763354479450045551448859209521471837366136210892741965606428132453078552398239229378213013674168967654801006518481674078302347748580430918184549476757551052620579957857760107551768486266421479127898757288198385289363343898013566330608172138976649448188067096788572795563268613137194705569246317784190119727060594733076955932074868704397524442323767756560564678809525154302515639270606757229650076268922746018874509555869151197840621607250536993790639757980343884407494056732028688673304936917558426610148223556755433866604613873325568706911412423532790126588519161477857110822338192319406136121412434437271829667380475520147305415228439224517522511058296147666690053043841900400737859327705709647619591582152851531797749497045059920185417091109146459863331785851300165288891430810671661095098417779534591054978979336543221812372619233467906112325565457661630918104651009963364665083228793400065986371918301564622400883026964161410140383656677864899929763288898314689869890871710976819884667267543792850185570850336155261498972516803751126444600251286889177926579100959350888145325055176965987399825534165164200295484511046602666162675982066293632806552827915853034754243440417516717554717425103083563692726359630683620717346909482400938758373163909458986628008243964019177099241359152279697380029335882829766502124883176201333596337739312722188717662545962728688503162285675513831472878554667625882249630722283681440745205617670548384320260628326212380565879349206849904793761476713410843099386593010844425278023327062940339254343978738471835391289711633606949800354519056258862743109090797297657222199077577050365634081307090505704136421368255871133925584527946268298465992105113969322458944006636596371940513498752559278764433958130764160202099995647936663006924307781732684798908554197986467439828446673528969534810705332787856031186673237255947285945847301937794239574590265789221715967757306433887851110491419802818303990289330357145698420225270053133035522279016500829777948257215074350962532019414796290248744089845299558037550295170216550382802006996577005327643192614244835776616654128296420170907786939578315637688243096359797290257150319081662115577060657566444012252027406078661598474402561607591998103461484505940044913253369670090481474227948455369050572797949178054796516650879411232072304981645195025394197223563976440632255813067954199953650382674755768149105285307079797430660085629172595080637271120528121523793592367207391538515262115672811411415315250107568565006134378009394710895204586746858171795169583417472888882022054108702590977641406054384773869117210112315223579353511406409337642497838512824332719498003503567303285461837219779652091179001737181619226727328853507882871300856221198622846692896865392217712285725243827658514625627710461823050850910318117833485145505706762986193331966966712432817137592832703781032163988408265782504054882017047786298618580487566381669540340505014070597521579273602517625732268873685983353024802872316716233452821566244527909928922472622491679927564522201852102319257319416661233633229353774433267348087137654992419255050440723613579469110291977759731003827126857209613423430734687208979157115744508589154702416945198009042462829044921466004253222049574165241405041846081238611948583687655675925879298526012461665342591169102179221898176495824855214750692098530477385684793003245312967904500653854432158389220022540766069792299385924799146092525775296417612102023169877299038244443780950286151555037553233630387632715430261137349409090425623757764624627951940707064827526224649479838587295107707010300620010005776056695476880262876500250404566439235941491162624038989911365195557569960019870600892599092787982052976225895098522085232815324726705113884243284103728858275908489314632086020442360307277872512337167696141629703874524988399117529348135782309590895428022320635372863789516157692441614929953923918671303424067036412793906580664939717100198432846917177218483445353314111840154674752603701800603150343622884328141767463343367385991977968090116957303307542132026657325576612127675816986714541505693230065653553753410710878536075085256228630535246687176192515997248601265424731591678972656424688472918398336892387843482769763035301953363509048844166002235929328220463208599402295706986941161455225728268863428915435280858185621981235062682183521012006541986642326781423148088320872687151054572481750564654433281164432573675854371814080117607491197281137860094979625518153842560513828413004375447984915120679014207005315769223260159919938205145399961777367918362705242948985501367048597820916369525641270328273046196004268068711543029790935938079188395362262814987637724495465766959605989505326387287323303216242453370335289437715373566484184388903736456370649442078664838825155543458046710781542402560995530332919018700382664734683929625763272666855741303873049737616353552644490481250290768823075527066552965778123297064039660567740389518857946678226205623457571706283459727059332434824432427274269459658199087696660825441572416418460322717457523631932147935544017687936901913478531736761820182063392829562600882962676648956057102438625017804384297217748740295308567221154345408435759464661625083894837697673546259896857706140240385488776156698786708478055978866945865593122937012320229552041062078788933082224745098272387910202421113275746286767419626233534214157828393849627878716459015039853994383717405792626612037946237392834609662846286525440286050769563684438472216484149562792803134119641799368348707225277406879948963029055305583738872872963057910797676897133670309935154642268796412721619301671931598953874237785972407953641675342767370357750860512493791350227960323137243869620234955487026889459257170200517581079563670252259806101066184066766451543318244001559269255130471448294136301409551025241722701290800607912573164718602602663819591836317028354750683879623752394669707850886495392568810520131119414344786381152149758708832117938163524040544256361647881067316226428697757462385907136051662991116713305263130833393021022934672506657873004412457033983681965041765954125071011286139372926478151053816834521247518923425915692369374314218787386437906664035122861180660335889892120478831777294609234076814537035173761194643253603398346634469590988118787804895745049270032894133067235889166982482133594225289570087686905150846658992705752872023317866624047917654170377552760113928428065798856589356379186758357910838573922551111418997627017385478077630990683254721303309659203592371028106267680540348115892125935016605285080168980930229882699650598366669543290375493877522593499901501870122772769819193959871940353253304784384836075656535649028821794441967761158358166571928919050095816235362870082619198672156598127926514442599936140130678504188333971298677683986920311114100176803079663785022540033108140655289045437674716546604978664886294724178455712467327182063752386640093864642733154418118811495311460937736528361346874472862858142251581589353835312899479799729243030345352805163698956400573870717749159506260634681044922670680256928334649546212475552102833348471753528957813828673799295266374415941088456565975530444364693556576680055049988982838738690229790985090011288971877782886481623501723112465878087404965030632688691869653518152407195346761603006706696055448205176630915482502233042611596058285788584879736545024050960871352590268320224024473285251882460257483190536206780432247207940861494251012761097341985291662412510678497995580816892130224911753151687748111837444798445440397433210990407648757048064160227090707055136710407040028790543745326280965049949720976243070796248715540957094812495123461484576681079274761545322630077039979465907642162992812545912911066239231947129379449996912605467192320363216853745515920678196283945966900655965624676857195430648193469639249059190128217316919663769719442310957021777228565288404818517464792694883569081141078772849113151569711672167324476836556781627513232248653761177868887683227017666648190504330883925817861262701050051057901840748566927733899802710138476408705752834187034739340571274795350083229077694285349160214513573417922990199912060140858117011675258402923552172531718069000077472167681517088269935114710580173654154361020781709949200510157480006308222130030627248710184489854597952048117061861352793572263030126116608301766930470257377602813483512090117562783831515630765978634884753506385878095611151695401305935947407240843024903435769729249939293315931154551605157693721796818623103945263404826044986513223025439458281457637249999033494387368193542541241410437814853426212564337246769916812141662808704786715063968908466344692515014760307232299238189850328436588101527470673500015861934522422767598505278714558610590450164825759018304585668173088472916489660377274454592673509650922057215874115677008312054619042693909958876790447998854266578316029046443756551501924773751598649217288639357834226709413310181052180309549772812452402792373981274991539112727450702846061997891258414703993269628885953220672074255534393342744842923566101376286370055103480971438507518900258434709148451689346930250839710738097124805607674961460201793647948808094934226436186119407502453504397941664505973392235244036095501704097339109890483794481796522286440718215737817945207207636285917110132311444019338701647162352382640146041471088460291878727780705874089555036283835701963614506362479774509668467235192323660430223862536766733655628507183482233280006512599348940751276066642108333906970442649772054462467026943668297341556736560814446468365091225784935447715111065871260664146438017746647136923264219036405598820089641251831617195745053532389984124086754665120717125172913995149976433498365104440591699621045088172569884473673074916057251691753302978584014955273838833480023115038454892435199988315475849798571651334473075424216667925098935560516100847708141734377490335063782022313671459249975237113533802849855254602115034132296296354842330821751740918872382459594347063317160466331548545497140756826340067715999839204561338482066094219556121048046588695852967715299365690683353414526469400736584235776132279795219773995244289312308055989728492940092179942845183485559344101384809963065055293406227902205880953111174314907083602653959274351721575123089337392594106603943519331843791013516883466055393809850277113198789333014743063072336734302012917089413694217747399438861141937720992201139300092666832593198778337651770619049216132116117339912628382438134739546022355255589521483960048353646866974734596593389475098046295729329151495715505083559663513296461704284898051405707522924020130579647207497686994064484125021893321287691768886478367266808916253999622834939577537066367597777524896754021158434723576242819594215118874377519165082146366839846703140349360838394496423562479912591043313696981242961232874154330469808637721433971797890470719978547790013896814613854830121941875410359784635279340707502572077752927080118191199546390419086810735389285224989239082490988715749330477833653526180889697148243047609293978265994467615156352434509559082670415043096321984024547923534746417159816717356915256828836132427263914344630318193345882549999100509307365682261649755999539577202424003135461087028400972253898019255806535651764957112374319143905477007979800628380266651663822002555033095337444873613278457983806144087064140019268084785495727339954187804202884756738694076842418275979469526456446618449451670354064799428419020530231571414776545622226313584148641876121672487787845170531317179964877202994317432412906222461525053663324450356690749548439862805006828668595526719179551959772774148092614284503224626364411913418460105096546909214437225697817974316852326191221900427022184344871511241311142160286993364505996564788714504479560347929435364022192196980912154194199294717965459043037635481216665888859668886007006009658566330103194724907389318734916907529176267556565042553054914007860774815257029956365550577045068910627508659840927265817268250078889124584522537340826469419283259298582240118987470635077258554841896262213580505348096137818791421430008614482280626530954452948020455648955370239492404175474973674948855979390524886355494500683330111036016642012020006978191094537375726845156863504340225157043811801532765099952988535606773796525938711435738376635368483283918395561113468531739189293364164774914298873059433474636918297566323212800805409123503792846657165951291675769747533106513335834123829769373221092024814951069510437301880496827040534903393061208742296714200011972777607431036594007298129834002431027480734220722148562128701106788208558225766090384709124216511466373110716738386613143545858361370144111445681784964361843045801095719604143387277062701214972032179796397582067256491004903499779331084323490677359411226373452728209993711631658926541808009982800149954992662074989937071291762984592465903580312315740511286389943597691079813442639433444823504891059541610892651885750769213819900761934583565889584219473299287487480645790375513380080444783729466757258610086601231685811855286006151721986388018800828556616772702623514742537937073603984526272147701889346262311991389328837016142778258347967824142080850236263825863645928894420125585889986207160479381909687474141518037958068010938653878942905506643357429371625035054018422609731014153476325110622921892394909508378589321866055709748964199422006382888325015058622260429836242431454081851677898444022097104059633029334255452144202336579044754970942033139022870464949404392150743014792239228116305459810041725121414448021866543079756604030481771065906467839090678193533308948904934401414676331446355621859109500671144835725916370335020721473603636725865996047405296303982125484067788815943202228377650043393432912037935793811800229715774266599791650939134766734081247425667172268137064138906854256101224765669573421149905709320761656312046781343715838068779832129306849324114941595837924656307608356824260168356587069406818829867655533066362534110796163261073870924866790382083198258812700145260623836653173735682991873994092140077734932883585116880786108095929496734539421029565123680705551460513747919535347643286510378253531803566450570989037626754151092047326700284070182435091028124768014967385246015653585910877778500966437508054172468314308459264842994343353223497801439570643110017392550692152814222305855019057084518950351121268197271337152050351590454755611134515579465796933924271535257294469862472599781536734301102834376865050818556378806973830644741980766007312414309248023404477650052982303200795445145729304894041164109854485185203634523533078642559904883918876549412010225581120581691933027904584626089454021039865300154724707325885718136631808648365332417960004877598486911341958469393817717475999094756309079986737026162036965133231134724813468987915599691789834875889143404500494819908392718921466587075348116986545664758672106041264239397098924799452335616188353339446066655358308160728914701397379219243929042065750433675189408341554290480845119704432996067228432383562894604593130513181365907882116428225440552767757725614726341896342130965016859944216050719317744135162204623457104923818184743391154213541140514029043915184676966778132119449343199354881704208073193006937116919674610951500638584514393618600294695167131512648697861123528346932121269539034008070554561792256338151640104728670170135163611511110488689528963441450214941100229401391138634142865159399381084725455526902556236625483658623991268775852335751668496404705426179729090204434977237552304386127669018014908359410112287917360150993819896979418602153091978330827396869693917103723328652096409171092319892086190220020632713037065142111973656295968266644241768823369191406408565766209521335513395829578085210311064902082614037789212357252972817483137070094541122052652270205378029924312935457218803076830872720829202975713615678981487169987631817882942544253052347682012757177900932547946278547191358743254286424314849799233726147948554016086085077305641169633811227497064539594497951867837126141037601648271800880812878555523389836143348625958002426207468575692319944942567746458238151047984317173976536876584660360683305329987622583893028802920948392220335818591181014257847273287646710004410238914676181805231103774731500548715118092085623094542116192984542320184096580054290338055325003016111148849785444614336408360346873847952697314291503207905405055071414861955908066607891911226409356041002946535959625856679522408334411412011136386992773764628535979011390201860614009741704660336918757907798423653541230905996926563919680421162671384739807519953905027824398341049800744885994071930500111016296327254325790604582483399966260257739692444057273942072862760674560985615862202732029259623204861033774888551286643049382032230714739774036249364477759408918075159704052928588065308604138075591212371911157195762821003015975327906656952513311058157087874268633788141715198946726670805411184852008836935665117508056762863600139998193208866892615141464550665360402691620599775839396593106569015720254302908649670499318959278805133574636191919433203786549542523221887953243612690337159807897233946521332907904780568018912217810590374503724224552268293997049191634985195918040315819843996035630260171527565584291251438409789394354880100944928459179687883108195610496892693701882639896224616512404670887939045191815954012928083638996862864064247186625213783684744988003008538260631542099710330654533767637468128914891000307207722388208155294187946606002688952822935444382264819486297732067400862413580371385494266678388479772050357713335519264589257702008525188176582365777211379753159775335207073094696503199881218173529149396768702708253769899709967989879893127120452904391764523510755909809118619683565740888968338294727957452265869506259411664008970160075226383835260098119695451028248680017007358881368953130757216806952312797424914446062617076882145300206728491664128150481963821873479985520585278581823513927490392681799909074821168139489544265876420635809216300147764489364051937749130312541306946089543913086195371496575428898156871604726371713617303028621032376943013274418354313537584097058891512802924573867922610766034395541601683007358323679628053311678038902235267830669649714852542529925996202085207869616116105213012836306651277081474504964017322015518140794327084272785039823846946079228231016910409235777904751846797849415078766219954290114321964558388846762309414259251458423918694353393030760596006116516947758913880008074270541499420548092759222850142787109482426350706631087888960069824556544075716835976568614794489875074073577986428293821749969938715063453149616849012998914531621710037961004097788907978222325409982003584393291230909983431778810918223600479894131146336615781279351107042403852628719914008106110139243924428409561853751209443237685332583325335878656609369586931417497674795026883533723715123023046684817679281848588039060670100841735981744760469994790679968396931724584310961798394670012198517653275840266765224176144398701139539102172171861153819223723747224521658882096405352285352051120467746355481162050640424665212271285460501545158020018370774024773592662416856144629624081741180926148548916616924045975286055709665804494849097772885010246599209881716192845534709170892886671200151598533839021829239379876474297056390677989167078277721236699233241838700154406821415846989446788766983574235673059577348999462610050956657710541616552654353025537005890712948686476127884859392723089201939940268339570008632361957999129632526578740066310848990601566488253674869159700229665569310926009254029135656233261262628960530464964334343163351249811016542954268718076411194012288697909528055661320109561588569654244519144222516012910729438327729124500717659414970246153135210251820023682124097496542655670823673386757925563529200211924029179167773349801262879619474597065858700741623495606113441613950792160351561340133582262823966760966525174378339141604614861023758347701772358703504412887141443566098052677526379950007830017205912278260086586426270047842755225756114156986092101662643514736086993026582679521254556886146685181103316594786244038982935994520610465616968507981565144759648161222353000500392325148466945639274993776883081470146457699808667337041823132395006065179584843451413812931595503656610706391298261742328697918891879918340788652764334720456463425757886379844166316272703499971109932208482355001456224308441135675844897058918798272582620895131316343706372387592957885124160634958821560504117429330419873535879816436211234632936076627525353962379169364765405382854375184623401871094157276534927328051010286188326138864082774103428530991406700267066809328548362085073685875282618266345592068221245716098375961658457301913120316585046785315109243663408653240514445469024695669031959500499196493719200891288905028182562427665056000746563821764982837409366649973513292957144617005307521108814751129039304459233602692948378599609552543388459953531161310714337985297012839946955429773696600533283414791409802697700090588800194828750984243812893044419588785480308644690012295515253072168116281468589265860813306781849914442956136741666500381176585418113353521715716338801074821020026389164185873525580447926074761747983974652016542286244732513968851734176854660909995491609632764342985420621602044190148744415145861370491594894201167273017698377261543124911770263048929711913107760193689723277535405672254313840932723095468798467314122568423811964981818502543071896423257383871845448007589086647526451534904868949312511027316227491360678120099136779732350436393764621074576307434875136909645958869108658944284659935424420782076164193669079910213469373787223009028497932959383695517050818557271804003951927974112902084957756588910337392278430229848726403933474497280442494882725487208815810254197029795061207129419769684123938129239391738693009901254090899255301530226830612139626668132779474188913099064450583511964769082363705400991459700770996996608013159430707017400468114658436485433825352039060031176054638779036234389639123343161195789676354301056997148902871509008525049683902377012238745173694086944372203923602349530961044558011268754512103319817265389973878946735406604366422924159327667320419140613858306591309490162043823204450636515428831836790135875133195132490381312865997694650506501781323849947681347499653421860585758828087408857926033831277726107687583939852486605974629402017584663133404605780074552932969022147216753588976401064740778519649576669777506218238548096893930755796963291734621317515301860063940167526205377076639757233925727666084314810442226254382097215489854725700880383881624200878928203474376757413443402515252110828388186854572757174839305337444313214499886332377695035578105293856323170873166076790460419534770955448417396913087791549241658272834554775626321814708507392536066556062041804708666507560999524554898382906717765931131980986536478720677978349010552651366942186320330025982062923469948775949910888330175909459431611800541591990987516286023622241030534260038679766032930270300881672093051267802257308536965161873634181158187301547417215002114537220495764646408876414293863804869042881650377550159628585324351526862902384457807837432175936863968639173516410559183325773584657868594574774615292325186423768439183462529330228261025937500918320131617713516831304705590904130828571714787466345453177890428671375352643309799836996172542921362208783927015229437694527129191193567127624966098324930895815393060282479030215624053062356542945129037965444532550875665824080823616955917207726376170922023617612028127512375298872487109473483306698009124479042609180762912577272404651601650771549192117854028232681458837188352105760453406894315515174608789109108679101265657049999619396954448792761720473233545481878718683948129749023279489485381911035672345751254915185437378792055129483923651191649340488092563554535180464734650464365990049117505498073509769436513209936323470532366787950825103560574543201474268517832632332601509759515537948156821841051980327976043488512908365318928249309338472231126573547209060490537256521669550472722775227990685874756967954963851333373013026128559379022162250651417740334474639951255382893154702697758766925929844755888362786172955411977539977484641973536610490794704117177129769654990627869615909732384830941899131502303582687143047900985700837503718224340947230065949295201342466323228695959576691881188614962023372858186285859323014023931566277608938596485731115236209407541046993303310944345252245913696930795863107236667372350606416659188709129645435271214041910026859592770044957232326991141931896031522760018967938281636226718994430398512681105049515803771047846398882161339279678055168241781438573873523030601573421062854951664881200617531595238496503963540394472663793027490257109369576437745115635880175060176998742332181354010766437487845404444826869037273134247516375545014783507088397248333550666800004225412837095696779432539452247458071127507651961825092350984154873312157216581294450183537595389399683896266040576111459445415238637993415468622352407476314517949411793937848834503928103724780594803659340349515991759804239634173804818343251915092435322173701814887001686179596363310949727583159843821835091886729545843082564239338646900575500970829573217626795738375890043765042759721600643099890245843129609533531187243207913163763981084170592500467025743404568478122037618939481484738792045330471147069673605054817990932191730179769810206121420793264488847941652664406120458760505190160812983443963564748775452163583685445631913038938700840410927798525615203208818864862086654552720278243149055330091088031263654127604463695827207979724464965700481566362095758353822004247107628223311163265269561837811164440407449485733793100981049863917811230675063629280475883510008925108707577758042703773230323313518895093180900124770351498910195108592508633408467019791263561650008964783315519918397674212251466382624939504916022914100273227880044192764853589421820582828216089439480447550006720952566259122834759504622644204585435054133762455336726182209006156191617280614423475085809831169743307395285490736461832894629227353364518594788849598205070509752393054957544692269513726380283771473623271437149304239672455329015263854936456925447283370667525645279018596948687768699090006431763564226628628047419851265242550708187928825218271624351064991422107492637249597223499795629237494805370182077588238912031561897725876812713568901703380595624556123755592156294929368542843740225411530607073220882699936608966125786635636713297152579551533379889376136822382599134900030824910739864231021896182700718337886027680658673105425629315854385983732594179997663427066672032590689914696823464644398794463754873644650318912505369629181094409392398969269592583780868205993003429279577521038309099093153603298578408073480566035371770298389128267294492322025601786551273806301773960510367072526938050188894571901881325419824195237943640219928357516438305462271328074898229415146083332041112077750736405303867744827556296408396600230890320347449401532760357285605538558564073555355107812606920521566345988466077808334398760142594381920692888160694960108778167824950234128891702150164946948601985035183747924939326098327774792413020357978520457044424873824431371177252958035711756419094921668916029460059441918608221904219249518470566315507789655696738697424364880769869956477730135621556820008933810333722588500606934205206269411856900357993681794795585641822818140244240928134716166285551387848241720315622873012125445264461605277588948515571765766261874574404391558448566302431118145115091202300199223883336191806832520661883469604124404531989787776196143064292126515737536905465046738114048575741818677611787983013558669773529323389073206933862904418946497934914086919769213932824569566993272780471516237494256536786974034190984063983552714509436467409356112987711794234212244787100828052444083346706733948805044344283959484724424683264388199212242187777193626197902427515456406454785731857982378672411650051024516482638500648467637102963351378896370169014998308754759407765710569696531733305877657893465172362798223860442771277554743406508762174400609657057441545431464441336258487578884023298202455685286626483587499455066950389195861754613956158644456635645478742177972156779246899381322048221941508099707630202437455370992275153259745555178472821996374525084331477277802955117266155695260031896142026829761977591865077410381977254485435725469956784566130060207492819151696996145194139565155421845960634505764263845674407032033413430718392945245087491837258909889171067881310451565931705023363062319371532374678145803734479404650925167712416651747821308136836250078812468008518708310505979824470620539418592458568785051856106981215938019225593414996407787405389655009793732933113723472471683461360022218854522523758889971584554303740743266982691804859675519641058142127872290294146422893847278549677278252994616039169093799298398874625318612596645726585154280409293957702233784680308666075453157004444441037541923449122452438348011030881138697595764802047629943640250736614842096110532907849480175855043644562041231960539385623472475009934808180314022728687032985691631215536015993281534923809181662846869259058701280982687930909395877483106225878741029345206509075837163087017477314832134446133379695908150079630742772122495625384078866400127420059702316447943506035107694177888236488113298953076539239472854050138483338217753124757531152994629675890232250748587307497165635240141092604408989860064538914808133318650301774815885238471233334839538059730171772556143950212888006168210405571258290081951870291960357457080365608719065705231126374924896182570860486466332136693700934422939525219339045589864914562908091832352412395506404245894641640875924159215756319014357388849917188376327482913260791828847455281862101335432857261861083763446920946006466102373779857580749491539744276959560523593920628163708127500298372579558335464002739778106845407121477877535324306360693688535398704769282495646596124076873783471818383204902325891892926062521917383277370118783393074157949573565097376159710032484698532494332014825799027580577917334920066818855445120974262680463762787773585984598506420566770712640266467039167955576531654558516704333224399054524304773150923188077915905336015015804464559500205985216032637647171040837087494278703327105580757024530417077195937221287704954389586752615496828060766194010072605058999181754327473350175540728429958045044602346891558184596431115908470260276842622695988351444011286717861528904742021361970874267908382321415379222916600338523618379808551955506763073143471446888365433301630054459272464775097348131991213142751622016974359561680632161494954570051529694571233351382816072616809678343653403645038873962784680571353754663779321786709633475485177776317641728872318108510109651902007425646126481169112051307121561858014944102853321048449201973188795910081067849501438767711912593783017479877626797126205322889758525781604761788624879003729177353899621519916938214602089024847423762006841906159113983977790209843907548366768425717455734973250295638935866663934759762064978180337790838914721239187975365867520460802985225007174566480648486701330971024263706675375368900923975889507149993467453793762045015287649883202566506946657729169739261754472900422877590642746558737348204029466414111716034173132668848160147611442281110656135633960517590878054871354504341814579467032913232776304427620114633803121001930320882777855524185541303898745875437066332375348973889605533303761139856461083499470981320064214102520522793007149322187242089963228069525301248328905007370895215429206736230087695324016307347014728185261071358350283557056457500264626955341155476397288602816092442669745371335504346774063208455428329272897501987632472287428061512164438129402183576985318404671721189752834663037738102535501679711333386159528827226882250836780205745064276626214058693538732367344811055807554817105265397674710640209518070861911184310318391355121277692222954479386245430424384209333100661766729893692489456130305785574832776606995786633039216143318516920473503119135978943225863224681936911922684156267201395053552161177344427872989737859203339128182435329563295430395948396261424442839479518359007329658291406054788166989514403663104741296382805054195793712043318283487500233156192894122800596056768608030262977880142367372290985101472002875530030087510536122045666317871196639367083472011565174698590016985343571661769840938779484010955669538558316621099405290030837070885526308920424404189859393240182631283733586056769709744034653876402209671538145529167568050073376688580712443137527676846125659132217986691905167842932236929029587182213613957103680152405846436361128080457429099726674783186565383800538387690846784649500817785144006501238230055547916627005274257694154400157543954129663414600212714678564082886921427054011465143132842548820120814477239836043436337672115878896362052981569359902700969980526933970211812207421310389278390662870334843874931174105015108480871955904487813434047600623845083735524955309213718355546061627162689836633859487215857903749370672680074403412329242204359303761487573057894421178213497404058632852726933823628791217568285150503068662682384646648522178566614527634188687765017170806227166463107693444852512295853318815642643354553165657138420585515489627673021956557543999677232821295510330948829300663586817835786593916915289325013927803827867194258427547997155275930154969529523037854009781541904496690162341814895075388116319229537160915461867486564926776036165279735790178669222299413893518485262925551117249184635439316506852660988271441398156300803975832968299568417199354836485265375332759676771080529460228250144042026740230757148445410304536287085588148378305346382769622447214431483514548821357257830868949796126737491995514484590794119321332165890200636672244215668345021571436154773796866208192763847996664711397911344094581376660801897226051430884326945840306781741776318952866215693634896294443332499865484244435514124858225802149394146810523232371325255764084491533396381603651142564076119688369885081091603116894290908230983094186829272498720469348648684285990072808647415792123487952180304566229056350753937513279532388771380458324793607549521217726972032929626734682589187104159965711912299337943956677924730888270549051615547336144167505011103976497399555812512231124088873443540797227498782453558218632578202802499777479657085953851525656784151280492064825890670378401277110208734049906464539259065185385091030572390272227804405351508376433279741321174210180514476512012668330495226805743725959447141662069163962866159899531374911034545806158082845475280035373488996735502077795001968127631826593877324912594327310909040181614924084120192028605540644545246234938011037346864334186769261791707880460483323261620942634957416303589877921825906812401921559935331614650013722718380479660846070967763602020163914376332781639237908434790480901893204991469563019420707262245516136760086489077368298355235339006407536990764106571059008037457333289059123177349677555398562363659510653092344972630788184100792070918862347116184258744014492056632214484587468260658296470870453993718537429263552942100737242424523125664916996262987628608936865351187876973138321982722010198548779697846567644759928249202352155375644144486398406728373224711463747148491246501514972175736211736525540436155394576488637844783150069712467363776936044329756834847643275343288742860311225872110976736443276712546048085960373870589665216480414656911085099509404388127559732174478427002181181441566763681658581204604355870290652054104255355849466603438077070425060441337445514110399149286521667443247844505033705035142214818905184555647835781788728129276209775159605519829805630842894604892612512029379436531270597073788064261407859970626725822807732369622745585053715228431808012370030702275510782907378849058146829482517808554643235407572747928752373178245072598733133830539934942694947453505889748264889091502390003625145891589858522883379414857511337639535605571826787235871274934865076673381488384553658234301568175149965470340334371338511890159210466954633782277091069593871662308878864446936336929020011467406478789446185162988574782352992397177669123944522129448682233729186460593480774261439546460564432035899665135216333715563588820809392245880272230601344969916751931979119633699230388030660028721965755011723494384754003034046973243795130911353612328813932081820207158129886807904701149757182043927377322719993094506654853900934992222593586416667075208400829605572005928483347025172038252000186752526905416903870481338926303596005584620109915222812860800648906611472192652104031493550478193317007850988851649609159074106401371224397079617800944987926644626307256770073377068239500564842969232256617512575243031624610536619748404856482913122466509479087633401821834158195789527387965895062087597252854191964776407702769682700359012644384264757939461208322089051042907845601147706798041694314991175644843253667229678163261574133383896041620234472253248861860151196403061210658207027672097332921624579398824315899845738348264759223734018568815929323160206717256210763308141727073277653191449806141066100039867123066462354956011771789477220788616281123877999885984522649220530052234674216347295991075183662351459517485549838565769428271981982614762202231150873982374369547798861129256913283160435187094050998675078564484400015411746199168347759862409679905227809661456204550066343817543897611703128252690078917441880208347787261776930094922527042992987438078541588303456222502968807552445407596862498802516327710084273405868892733951671152161453983435394414459406187667360217628124252625302624163281463979576903901313602002996269608262345398673648329861474712417291649812010374409136119082826609867756694281995884492375620665915934788131989321331902460908934703467918034810148989499104598819512376783580757225486832884988802673740953346178050692280583459264118067011060147107989801958671365856298983330941764355030393849101433503305363562711254092529008059365303682053805675090766654713976860770287966063582304483336101883443664974439623731641986942917647621727019962431466969962438192772425247929809892098854689884980469701854655114696777745989072432811452209977295921283125307031744565311169258204798191610037793079635524375432374474343617809835680385390219687169883181876227451243078190440147047251183862727284318923614679036881957640037971604603056776361008251915535215262742991649818150001375690589061274046497346241442713028700711897268109479565574082179831146762658976539136429770640636977895732280056059743375417047532258232630725645191068420733732707702769618072582820407688292928092060981399415850413710407193961389902302304866618685098294343084642187675316437622407135845350502561878624303940646980356079902603876649274236486783479238010668204152406362358253694682445801121676113841782784509151715835665453541597349585219657415728478590259815844830500215689409695127642209030328937719234371182936043251295453867439969998979080491762418364149184550784449777534202403588968459594878895645400063761808792094421975439862966661505213574225195412285451073240037547157468771590301432097608118792947936654350359277932776708236120390913817618346220749602075130268863129023037798169456654985589015375746393596123331886820155201710233198131064943473530180621536869930964243163135130690240349062546993925020502214609711744492249705484281268862645259171733763384013769605178729936030437313382657645025723577457377467798375542759435936931615874249320041716637179492705641420095493014836117842869639681478406657569792157978622858130158412365857409990514327234282232916670663171020804237799402817352279807364948746524503294584873732998423330143714859537247719584626879603940309070023413349498783486372637588735009254243306944362616734786122476999414804556885510157416111879278185809350611442635478750818308964556652563488280005899683531578304500363922752156402077595752655274332397860843492069095322015671495999703860712454285678961542972190177681872612644977394681595427790122249922705556437552043058391504076399419313555261198365129373492096429743239435124299534714017267326796251903832208434150858483615531338566914132045404823333933735191354658290891962400839691416547164278762973592222279237783372646252399425298127088907227564212873971216940893135921752575692648421877316337085508786727166162182638235499244311080826430484709038394717954990682495523649355604469804177782230806103412887154957416735920101936268079309456906746657751545004603936290335675763639782169341320261780623385318001142479637029252741586740015476555973569950463644628579551399455877372628519682477254643558038892405049607353481786799431347536866654939630932732439025471720388626358129910397415276949363846848406742183635245818812368138422401897742873404341905004703097732200804448377051726795187269292131379271888466409550585668009782112057520651375596884355372620535942522054641900002332177865537115175118467507075484865815576088226134885595145579092617529478127280890105944738022918428967291902635025147759756348170550747054978979869270520438548924862406379378502095361124167031406822199622563432095628144825259003312073004794990033283583035278743474895859604656804376897073903049945975114475124671061795371198926280664078790226530987321621512494319427002269817164735458369387554485300033190884671821334603350681003687498613074661449516788383928024529106110271436519365729332275959141044291714191507729648591711977539043536065736659051137904867536297834053359398984713550564102476129720589145338533033092319163596957388389376365902655706930892432716222895647263246399497775852459004856879673493778534465880023949765385593606658361166453509664851508707236898847704651806333718427157926633333038205607467322918375322938126557825981951121348765409478591620641491730002614167454394221714749258917296289079534718371042539181285558777729556545231810317564792504700224258446698686124684520781109376496056861978537482903686003396850219343809018444318085863487701183655435437150189091163894999310755557278711209280131465466844248910528889537838331513470835762852553096988837925283786383488592101461448989158714448852322358020871835326039904666771916625288065850562495531968558133202602481504237100248415421935310686364735179085929006504138021676075213265262624374896310046354059796268941382423923552123967522431863414912927548914300398518607371054323539958066047516742468415710848397598376242749303109544927898973918532339047920118489968317287035107667811722855713935212454575494853186874949630836969650579070305787260699260915819715349350713471933765820989662883565142683426744711219278139917572716289096956529065680139442062364001398775155597147710665745842483259014088511069685821150856025612067582947265847614430874261835778799690529695639186327487549815922116404188628119508926005480725509023814334090213857353071983582546777077402326612801790066236400952252930511659920572455108642893813346010381726952995929911599248517654475433354892284513390145918023646604724368040700842271465864453101528997461180590891505108726866608489723164505993289948303102161845564910062688986481717638024597415656493876075197385011785860847349985545482487604017163354067642538671653489497956841107501955634355310668424680464627758306084627926906127313733991513370728994778146460650062401661425461323115803878622392804352018060252715860143997338643885155725493838424143111006869871018385556835584071152717676773213816903861581877393716281542952529951271985636533710330959502532146595920620995909931427817469982256008420848940234736379933950431413477078716569700833139441053094049670656588440610685452473649980946305634963579519152304463621716622325920307557483258614176954845356568563863672222876242509254185500320309913251371613736366615421664088615631719988349126083529226062407874205852894484488457960464436825643654934567620258002899043055006812718953770331480072608772063299982784346169222177218889933626929359712134483678366426465666717555952917870998382800433542043297017812858466754818049627388470555137808497966492185607508449391217599505804628291667949908731445085573080268743429569256618340134902188339874468641070950839521319394910454023060798988016763139725629529074105825117975152182388529604992627831685103000215782598631626640125706231366556122857726874332083077519564317138871129053580683599154524298573882316560001008508963256961440259890142357730106110751825532799459679119782639078681434581454704617419051655489688184896983897043330683387585520979923615421162740357990675175504815301455214990943762650920823526415069779494341418001282785672904546827920300080533020438230938041102618546469574622000276964021617131053709654288581994299609118283193923288650093400879953994007342462678618991642805205259004270366555112372798596455973257398332256897950227879557129114600829812426503547449845456279229638381345734929383169802627911451738835259199484581090831005636188071540796187237918971762706448923694238451206591781881089633019733197746963683633761544627007008121445447179590666728801397321328124329005310791519124269549917676327234573295384115324112728775183034665110377603955816012273090984864509462802277748316619692765345922083983652105396309851136361779989846487630723455892980521735496333095278989869725469477925792029966599713860942282398069556546996037162317564490296888761623961788699474375401899295655463916031227468985040655350674837001614941492804361651153394089625904667299263907901438556437327291472988599772212765937378534432772706115809828975927856782563598703953188591274818489917326588170125438510338643049345464484223181371343368902161094277840294761570910996655456498049837408548808099941437708700844845801317715569360745665360078554555943600420735681529644622753064894708801298086402710760759123091205817495053656465706002564281218944757740876937108012282176756989015394769794185171574248462945592800610246688400228302352863115091828392755751045718842394397216546913857983329060079067352397235377950031609433699165548639799131108607804538485966777894106638453058114596575992007113412289221981426021385653276221961608747573454242936543518148901030605951317097920175930465427845278568060224692674194420282637783527659326861631643582732386268088009243812086578112953526626349402717659166755495775829162864173735958817096415767598063937437932624928342931258740815934187553659605296002140904159171477357144657328060459873668025967930414149170436533473307573555122735060725934006078518663085463461217570099597784444596601559882542634247413830462203888713315390005972011838779352291025915033864643443560295921783016138368325032998260871556946927397042761861276236116617524189733547388848499564668224141349549175809685167765968023920692995699639865471767610276043078090371291317910470914002470053960009888621372146934212035179755903114484232581829874689189140668809137774785856693711308391621744596903795510788362910196038152145074172803844103667369163307694984284975101505861931408932995510855243348934716137786679120612849853316120361575578004791459319010785511005314394952647360841721960841695374611453536419143137105201096475095476067891558659756333132907650168887896024226579894514890595763350582438540281328276108012363817319763223193852981391828542070928107593603122574762372338329510603763369872315567219944172605920383908266645942677619686248002341873050034184495156344027755153327201680272999864835422172815528053535295105473036338616372412681582110971836287965452106519362807967122685269818679646801160154112697408451417120122219349072424822761056374503774344110135616715945192219559724756280648457574218455631398210881785087534571406800276951000805310042850154085871082342704756234193948998552515977420950750348078636077304934957862719017129561412691986191378104705985733864135684200857545626554129497230638169190947459645587650856817163375839712936940426579868509785277407617757965964460400280430735749319809079379463241647569779043790204125427222332453014234036131037635118514152999937163322042666792808840092019207310854026552538438768811957708221474687849808271950805075336529170552100835558328547537277153720889202806083392759398172708866223962882333955028254224311339876832255011371965254614205595919442225839439024424031444701022434199992051347987044670120087833935836642433667078016833782042748166449196552024783123852017975731954143968868142329004574394946865557063884494661362222557173336028567841208711517087845527970189219814608676263752098428818441758216703015553119204750638851963616719771411611278643335131459028802726647263143754613915945013836352713469982042070763379174923285496478583277569486335652454685966080472909396250879530969586912822187563409974391776927725182269540144883924812864638662229128607867590680480444768752652259546941955788784840474180570384689232128782308893560426009794737514918096895998117691789007568731404718672616308821162726988474113681066589878490209724890624332065567609581415732928789888545024119297981715147943258653869862331708353928253890546097892199904177744632185597741887865902827958375404180267584761626373334701530532600510789135667515090988052584755122091913412646163764291118994773436712901093544287033663050634049455053859942816933304657855536447659491967872198583710843746947211389191464495080295571735972142399237274175030553968435973272784335162232591830109912774994456130873299399602856338660079297906709824592153839888961364984590112321260172847537276795577914057426145197458843762958201732132962777179112493162164220464698263996788077085154600896592848249312876044973613065046534744318696643199522504282133108304134734585543377061764523133259293967072476243657223638615759961251693207456094135047667643934469919821607593832896241665090798758522365127596517543634504336118783791372153232965381343161180733191248089340457104468809073647080539352260290217085696232835942736924372014327570180513180154048864540573753646782967186458465977998515266825446458314468693004668148316455565686215977837367160443423566747924220588489935061564029789165622134840150187316270564744749511363218754953521508024601079946451822459987221022729655182693235389383398579553443505355260481160818585678024305227699585441787402574722211980167098381315000920531736524769528931003026095867219737660718594429945641116647369955317293766661743680773616960592906665391592628770515145113339043510067114501546548237560920570813324527022923065902366417959142946291126187766858061451403727488958207724253260871818271480179674378800658918973672156933642778237773188395382951943268687012831267895047330086313845439869452272172946534239752841106899783537491547954475670740234698813888626681529757154838272604998434895892362493518415861618927722594655698503653751274834620288048802532369455424433937816328901157771187239991748071492574430097990175076543303659152386301173367722359914573302285264335677863517170526821755088589605872166627154977699934138576982117854951259769293411022701866040041298847069585262415504002965745100666055688309850814700293487187564371017623796552833280887154123742902708921018713793326133026138179227905453740093412010496532965264540593357953878244448710812372674432141737038286694568897365788137295456676308489734999569616340918010608316393013370411641844639315673075366167956006060031349922503045648658503959593121210643826002283717114654675248453899203992296872828172956099511758083934002536818765389498797499156122334515779006363082778430600879893287413080533367843405316936537000902334607353420720069861972829961846513277355281661763437865211261701614707569768338449630210448833849470061055608146474107218494648193642867364447748625947265713252772436815627523305523820808979723376335255878807006167029730246197279293657032527262624984600264627092799723556139279218822788624883525263371060872648037039753679933086692756122727522837911859697590749643362096171466323093989419529571915424547588988210429234403073832645091466023753576437893209129317239476242142385055450472276939746177301921288050761831607905921043567884412105353601404442459444018278625421584331532632202506913733982328970318816050819239488129907422218075076199919876392865973407655373344863747677812137106575198899991664986519608684315518156644014429439255086556528553297904494654863741513704617194387797730700999121557505437423333386883095155121757617471361240932683920196298499958702514999313229227029479478425506095235419861614789477658853882502667933340825634228015667796450760877822477641768275929901669779250104645241242362429335806907757670758111703084846594349588413805764103364433410857589908721908096437836543368666773146872760538082194050013152712648784945529363787015721148731397261169697648200994778650230113945099692825552378386250377009395859896092507525015202914980111654416256361632865440543416206537891613216084832211168329911978459803099649251016563819429368453519978516963676638583882772482892556821066815427513651432960159205702990114936823874097643124862922871314408624042066934159613984365674063205275631615136166429184580816866529731215269408695886562150721797188040654903945510467888573167317185631679771472938557590890672002236696473696310834960438080207197368051203803752959563711805688528239960274618914882193451255458624544189837766613069594174625253225680783125265704679708060281375632857041318139064695962151266743901666687686956344575459715113976531334861735819618211693271015675469361673090571730433544606181278587124825979922458697338276603641723368350531848355219293144844673245125714738332446197269950936575631801206074255250952716650706581462974375545534632483685628318521457143831668373769231010439879883908104395701147881813641857959473971485770779402143759688934608211584067874904898774623260962185462369398166459362306806351599758531558429290776534877432207190249771015441119557548388044427808437846797468341098283111669297042192350677772242346358216923814322128141595673868483236052799567704903034445673898277190486254463558653883807753754098464389297029826006685367119524479609463542366075023084569205073108033746513099699463379764466225646763280728835721171958770250247103177516876359958080242657667416742426293062137986526630267253416825133512019048399860905827098473083598482438574286325856775585137754788131196229983129548494597531203124182397198550083650927900467673743170748060913609252474450805540723708219677949708243874352356234234095216145618611497783105327369978093675660185077996560373800373040855036725124541438643570952917699763022436862979873762475048689030919889107728437360859086655755257229328045234244487997108039046911496924264877955834618115526600633349646038857780858404274309024909190188652636894744114277113415334767866596736040463272031143359092907499081077437269188818287760114286985817127982468779183632605116857650006085568581692288774871936208053132612497184692165898431914145396439307182323294775756783137070378740075163050427718659133346362630970478260033331777563390745592609628907514173513711864221505646712164538787291037164519168530956954962232454149882491776630270207003316226327508056872207605316246197405137571052564886857062390735241012227300847518023131108465669527469580139508267319281636944263667480310712532817885922592019053820786139100762815393460498860553899609252567859567401079822925143949834408987926195635708742447321575995843743668347717496879132237691940478875999934807094833103429639591374088678691005313300766424286870725283067233443297000143168374876337337402115347982869488488336545965399877715871789376647411139880689934125780357889893249735186103528205411040273479937195229058029825129477971582879631986296457998839096605222499313984346891916055600260900737284928038294065787302945967565554467737402337614033700067473067523581435550150688304499757191421068067660733673762972072350139029801431807922485485800965903681062590660686845590925902362964095682160716164475555822828164661584137829161857240248471231992509006563337436230619292918760749829634184789606005062320621845411370310071599998355386097496967741630346337567269765078781511677827494833072707339740106577768901190221169850172973032809944800997541265904097752135378664929165871410082442679983572405956833674233976138595600823168029135540338057915243264673038464709616038861445906448942076339819952823415214165222576339461732299932341228042454606671042080149652374257827673474803985537673216855798243682069191194148085285861372276174537905657391251859185931480617195936457913485516388705000430868063916998979362593295845563249465442403894754888025921759812807745706079251273079158873440595534754138802861805231141444522353500947285933355004947235740183772689292459972544463933635865137035149724013306387165951697599834904145699795949075964626036062940169183543712084436587669137552934999271066895520558321982563883401398059763672684597549946866338822492948047645396706667521359692399852995120688133560057902479495811373210955826433769695268095873676193688671932699721101351938261444497666330416716168510812547728732767671419693830083355600343292969195854576630890528812995145250622712786122809094138532497941397055097950857414806944828737203597689284498554383109165203285645330868259964402596977033763333258067142948748058660256407411667233181718146054959396190601865808759510284751434833681427779508449800209317556919787457209130153535422920426675290835724781872226187835606100209472862857114613810083934364536855923751749715962295295053499472632251666264567772708130420260822275206358885428986932966074839418573616063766512713420247237592611283411438538324610265867743684972611668716815075917559718535440883273737725392180490074639869269955379209404771227880580432490084863338166993451675665963706346334766561621940324200264376915129906676186756145653747227255768385761542867148996757100780324568074492224057148707831970717851717120470926439503017532659753840962911619354623605440056119502719238819360608327251858915128355096027572092148586017830634967869781236937334347896114629625253683848323783214887764702977879793292479755732264913316037908565179923932877576018183927919900714126644379017096041499424468154332046860998548892125791459403709860140328794891631087294291266367102282069396703683945158416456006670941811323740413569613102560170071549258424783163284568973602469888811838663170024047014492587840893920834269821363816628935793498004466208302230172355791031035574849421493467964598059452035003733499781510756326222843803714906321229158450579633543850869345119780591013958577546188968563993421784472590142225909791814419180995196733582044488737110316618448354569897424329175826402570012121443762905307588528867334841290709385623639822948890747202520321511249501789362571313055933845309645514226219069800625369747825182387385982744119662916568724548861814493144373191102525286487147142498238416262838737031988169527934592268945083453162616276669538881206810852863462588803547534177007293968045022831023079930732049636083211828386786951872870416762294663270673553199507692816105738966026724830320352727784491301941225459296422772598087297948802586490620819982633505649514445869778294209193175580002282792406084092935355129192618875961746934363357548337751903741664664993355649511115825248162018647525907745177458513048160400610839994997330503574034430663852167358259475166591782151648512174953107461863635480003349231555337234381087536026703721741541672566281029158425025870614576565022362290250334114663425529093086305463284702781328853637718241280241912288163067696010854787405049816785384065356492156019490705754610921602014017651467975433867176771411789402054585275496638167950122592353554951943692374752340836205377896627425783317860870492595841513293185796123724683618321997976867195457282501742394724854278326554730729720306274384748176185095946697434750664858972167764374689741973223656097349020977520186812501859878973210305281181007994188280795436832147015071592324615515051437314915511733153972405347320571974683843012684742826080840995396562399320770564582071990001973695582233430910886490696500965897041207946520319922825407124888024962212639820737468012885535549114940396438659399104631895079735713542366335127244126923431367568472504539866751193502970854697836530152176998103158701387100102325200064285858038972454854864713192121173995038889666422154479620257982706684226063579586411443306771002311069536444268488796339267147009582955086155516442428312258575792703317352006398635719626517835462730625196954112895537148787223778452992476118161697063482014441871467170109991240412769309478141099074735773101631800500670395095496115393962117537317692187637549380814720109757615685862630119936772114119286226637317175718724240278769371552404782768895505575559674960491469919546346286431875382407861094349226408179442891140284878825891603149181959118617471146373621929702856260072523154731445345094748251595618661043483474899113835793426509161463410278454675227363690698695021105458955450008904307443367782396292105779690822064955660612891068273175586841524524843009759258285698839346003856648923668170150049047147469845744512647924199329198891861155979923250666504721755240489948698199393007758418616075014557578303540343982940498035400843212762572474121153027801458978835719501975226796284018832339154393285172089338799849822173469389416814452613038283496343185035326737092716695372338206761166687757599035174691226394996271841690556460366100549139541416542558552098742060730727268007003452153592855191623173479542440483855131943358995239892961807946598799273107585513741754054044300023022312582583499192745297669467831973927509907124083658025171133252596425163084768834401204366750494264033707103449139447830609347523372696840587496729521301020334362052236250906237919171089003463627852040919630121426034415601816905438789219564795718254034310147542847902691433723793457233571469756937707916932019752247861533866502691290409391585447477882503146101956530071534946337685794288113328003730500891202366535350244598954734891244051339899445961814054850083986925677769150859902723052744782955639994524066478297617170631914679447944151528942910886317216450376873229188543047857520230245780408242034510056487785822313123155153340304697819495358551621931615894392243604797471599358933108116356964238642372984409565505495494396559509417929736917781178684233689374806386328611846713981192992109282947022261285502962491886372211400083969793492774031062483990717300550506089049487436371436143511152143291721162800365011229111467652655402550575140605265828367848673751659583082636252561851975792330184870511176767047359792881218022171957519929753903982448953976514726724514924772768152662960788059528442116080823688687786382588617050988828522788602875496984186277223304649175011145927851882417966719975778972360581632711219251823137327107906890995482500628655326158316221747678697468979958733018348178888247898614514608108064869274176426974132785345107620692064204055048590820862258829029209638043722136176109210114830927440797740861707454487117283168426655991161258942871880918123058898697983229744076173627574671456592041822165610356225820056151016353050803691389141304937880573648107012914676369900151832112243803059830335908615713037968385478479948640723257722191171417538769014313146355131431045295214949915210574477670174007062908127887423516989168724498063386257954358019507895976880906188532370134706525869490439180419164972603815017454000205223527228466113559852437288862382445776278962708658402807592036080516314657622117480719960924033114350470713456728019508356639006717899622536782685829347345587998546957364381160837460885700947520517685450348916846435652077505082206143607696329239814944052275469215752980365649122051297261335255486554436306731536827847425091363512724095368344924405282506234457685948258752850879699882326855334619378242025300269918241854370649738587214862071143234740079322372529609072388383732744004825433617530532983319896420555368005017261034920214343903859798262180758874129683922250462712870761080569763200874525371475649456523368594762461033193796193459858309807248255673673045323236066217780013867891279966753967187236316206564115155322854980064992926292391806307044560840825717564888462435610305324364540041284901556653436811338159743799258939505818674110520428989515829541394274414362205046306370466634203044241303288297550235554919433387618203323884080003213085169771771345394115346322083105018356988043931314974052742836701728176719133022762172427227070950613352386274875722654176445564298243182397845241352881824307126130669437856195546497420862957586026570743816360324890069876525175225559635861499703676985492597519774686763338739785907915162115361729206375853658218680712981796496172681337055360786785912591312744296633822651833008692246816210938984538610222956727393286041082199546794966742127495436467681521903715634622890916392153393521070109142440528271125592133063601896514611506626031886767524824697879862690291250096533959440731785666520885716332459970678022583420434326647440022836475327538767058972438072000757389701251543313331235485112932591580186540904933050424046795954213501865558428933049453735823023492792430581002903703387608800497805254820410094192121655807086736480579274677386656884344098530861527082169515616870837108277122204253159887893051876836457254179099004122597038469604098511036579566184926644790498810835280113237533002170905667317837490685059791047972389745616511729915603208669663019764016449664043371045884681368555092934009225676488077151985571885058934414340076849695493152772446695685094694049298595949211912820548072309795689657749124654375643401919028662762351754527114555584589398722842427081506376039999900444898480178026424167164300966172925386229269003710877476121937496405631168241971329468772833616139573270910346708406137117575043791347522952036057596938138373572867027336315014982440670119394208079330226959667418509853567046462364268242824884380966084878704665326787106663487074827765306842440134584022441457298132524413224113521505124975574294177659393721050324379515330928198937780059634568026786833088454691543485155999478972798418374286846252812093550195117291106159327504252952135315732917485291280645180667846214410074050194385269192386013718527694082233277872021565725404488872505795256232499200702043381105802003377464147181752004700259070418724401591103958149052876637100537239879255370230865610933784276529381666361687526391031775209494246835554018195710278058544991407336745944150468496042014826664518468321317796936001023437540764736920247125457375722987414469142280409205505614391792530595577312645032056049529940551419929646828196886139453125555197372797357544432478527025930663517770733129467990152240160873302051228765850433045880363412858395349898667887707929179928704738264916733522377732676352749317345711823016132917249533634429400140653513511641681059366173483412252547881617770209518265176953222836516003218653657986646898761257712989735480607466342349568537105624971673466384230411325343036657603495341019411068886801343961045432299017834875462691670028954224093361829191391737951769899316384071614657583876206789966662246890833478817932439792885309546716836357469965416459515654256370214888126273649043510121696685097621797763800912536136904056728727698980841867445633080686877718636855934325050252752713002922462908421313019939634674658886417783769418339173911860490645113078061869014123184194243340112065082274925529632983631269308069265498707070001945251289065566030829675257021941525017359864807273623497602514868440610663428156541682894407034635195081086919369324268464385949355019089280646899868565241636924499530002301082771238314787472487567985841925489863538042662534760172415563826074012346265748167070370182756009017957991365263562159370250114935017418705869377317013632972998607832929083552154747123709065579668377810827020936521450886908194962172745763526254718021538043137868428393191315943372775094337821883247454667195868336447039038777265909914830040888885454680988237175930167183352024427999732313593326793962313859052112922622615720825534873833481833347000149837026210688011942888546283559503045301512504826941562639996790412700382830282646328339711568482686342501441545146533835868178836046726498029454924061513089105887827673231463852721786858702897850150079552985178674788133199141788852478666014120996904785372483496598106285562845611922969179170570703916826719467208502700107535489469645058865981771264161284020719496093600048540239141300620039605950725660148430037027008899987431713073254765655071934167046531167605467056827072698096114231396018030927691412089577047079301858372108343308359519124674725119547214143035537093971464123589499341034656686329468242956894810264853278673973336654460635841711631503689957660646804445612709416216438275016429164977764902609427575555666224146685638106977837174888793403694246553368151151847944964737783603033604952703823139986049036157987329291996943818387019327600631011479451870774323518941651671483797565777897783398278856390160973430119102888991365300094068289176603325956143680831952806702802960170178754951583587062836227788876490559632592254819930371208814898256426134739449336015675672509651994107582341636812353121010079118324095242125504061143724580010174169014450728430107404508310413382267609708482514648498087561837201649389959650191823832958568307440810782054518490369925242257442642299551775956688648669640224985085274674293409493509396765189346000690573664312504374177101823164320808957905853936572443025812990228060460070742442525411593262811550940743130842832853483082988876312838382395693959787148338090114406443921211376853479737561792289865495920204084349206930498319936181041215047606444398193094340432466969492279361155133962025204855061533504778217898754856226180828013194186724417798735372978451205121058354143348665715470941938353538468854523242649501429238614023733454581338687043386045327740206644935957221021886271631002031769536562576671823424314783814735300478786668063481446258181903381620558235748449707124617620706334596278382835232717185518856855475243306932020056422756004984398467665410741615189548892231984681278375597571688436987058910940794049449549195612079487580932853069712759226731736324748687048322016130821595741396113339588832209044260761081325087237884444544087724253451102074168240846010980001538537617243338530997661439189710421173139998493842311004573503177662302439088230802500520205833518014806699045586685710331486695399214186694117683389345487207724970735208280284127629751679756830995184060502946265149385928032971014918989255463882495656267939413527492875790668960473983187206521951704238840351724598785594208896182206373449819156060442471643546174008719703241413855861763009104195480669741817007837489831136729764627155985097020326800973913261839085741365835908146266725868548385882638453582908048783660823282893154542801009471236292590360624948187686677739462216925137382236292128007906746369020285496766161833333849012901779654123165785269275654696021164883767871145147023647169776064050246603117571764704040540637451537607775224700883211983662855243072799278686606913546167217692286674867778336235132992427119336895300213931361767084109078875012344624256590640176550536993809737023876427022794839132325986889616280667869842061063431785597315371505922897037669499827505188502087117539910616962086710914008039943120176875092595889564321934908819091407132401329971786484751408210633592559019906041969107282248717911326989076597631255410087745319224413365305603951611713432782631939131316959192172673278554882050863914857977348061298890118645021002080199933204379282988498447479632770194274576660904798134648217147798720492198801640017085627067896493139932404157253065369739308090456096050246005474127386669724739342161018020361802882719716570553295875898737039390440435238021967898162319896789299256336069211272923035258948338347864380384223401348803192928287704951438963656206462931911884556751166163662963312950949259148617685432348053567134274355147881269942944798443379934139739594495856883048471753316592926560476900763231170330053685647412061685784758984475869290836750108901539656899171376979220941998601452566478936856024999408808321767136143872642496929581237050458258103030840947646087268161927303939979208637907676831014837134437132042774636901480458790218550773334456716670571124148898899972509223242009581862371875434186885082140261336470210945354380943709316261179045798446042071741115228937969529261711525853841206119058361629953874424531365076923590185872369871809325924642581126743524115642805246182445292409361988190016541025772453908058778448711704861730051670171177782185589385421342895700702720444930101775667683952892418471984275516803598831094235339049175909087694697554758189027723518475549961835921580877729518404814206073054766168174545198802995306667758386599654468951684549985215269249736703141311084803472212115326253705124804231441193243875378495995316946728281561832142374911238655660608061880922218142230608850080057949837755416853280143367695126800650637586750822576592517133822710883417632398843969827885993828007289841532780571787205520573296078532257348418202431769461202353909885738150373322682106311149765447920972066405568836210445141911243023065203871548876665299921512860545170987874617111714424166763523291755827399902422971020061410268895393519640837963289132128651724342602740664899726839727452242306716652165451033947604754058235726816168893797162856331087168474864976624243328010484962954120719394543704757406370586034000987774114692700397764646582879789439371270216724941025063230943597763826129088553293277842887442983695371149822915517662753252768672881958026592408340543268564623633722537740153028965370159831459242024849224654357533996893905181813376879413630449603797846752560699913818261245038839529936872528084012769834216550289856485939816506772930438277796874167045075633069505592440054778319234379501731508340824452749875400237705845009984133941186691922484104614836429247176022562266692931802461718505177978458848385526475694278410037749956803318589977605308490201850731496198377522820151149906435061839064734772045682637715230505741300008500405344147803896147322457310025932151753522535746864324042914467744282257810352436289254021554861301169210899276934505399181855921351296898621251292868047158041736965537108085640378408440110387440592130597591426468113150539458236823505788633537732499160244295810685089360851377578616863354361375863751659367556043646521066404771345792838985308585654917894429162459120803088561695720930174972382232948393207748242459323226359106837123033898864625677942129538182948886131714173616408806289929229240106787266871477967790845033272138833159976196866746915255359192400629224455756362210267870039924565512842734196894023742076140173340693869123089727935139292219122640880537624925061252887680964033672935067617519595825223790343616536660075658371327331402330198516779372222174082903592452353220324834715797147288574060673990128674910623055600461459758304786273665794570401811092183405219496793040536696334346160315870595293620578497977899404643458880416939932687173693028519140411946678951862092818096755011072541381043468933215196463916319400649632431854148654452354661494650389985674767465048520844872084388269881247284607932927654551858922400999437499653622972123211297594303417611273612443852594693241581582298864015881464905817182061373782305925081789305940818429621697310667621046754461939850902288274772623485424716296454916306157077600832158351518283975862885381492330078589564492218089826821560966215514151487047797902839036551203932475906166490587584655132284379352071921022303475546934353941146748423196762470658703038047042347715902201792066944785725706811875172735428027675572369099405115510474450026432128048858546259612035563537251286817941764077507573446446698490572168873510595994043518848697892300207905688256862294991309441144120287230425814883454274749305531911080404314170274334400830969581260235312456786635912949165672489776859930207310798744794665008996552873278399914313243914109549393184482523701234768118924468886201044066465210211761062565064290673741488933176810489956006185086854920240069879450698412615826392657133117708224041994844211674432706271421954620752981009684193890771329992480781616271600213966797262029101288298542874788930732991468585645672188053834442707105320927976381961754276279136866932137040573887392463073638467834185769986475287947038512374000318508374803476019058366658084094487615736978514101968559996452958117333911083878530819327767133184274875387417331608926844478368366307476017843830613662175257458651928929180647495009485541440328554595323717179330951099628743532376442542309756021682881246025452801356191553624773627601394443295851082420444431514542401460219725961164379204029475353464193863955070396697966806238473410904373888127312249704030585828328842717943356217752916778254544278975956436987673931201518461269218175785391848265087161236055011207048478601886910981847477849600449631644805520037180680243743247302996868231110115933180498416752612181387850965652741931466796278168853801460856551391167898713735456875063884329579277018681186575416930249961927016874416053443282797150907980317158388864663905863862364475194139151605514219030275769668359337111850169029030571925742958432477883252005107139402145018355818754513896943880392334995558246032556813969659205710068522357769130287194893172616771551184490280208867274752090185376777735851380573403037896363110640959828077437631030152790971767073036847387806043601567171258441204165415906041752927439459029092757086592232102989168832639495908433332580796932081744668030384441362185806691749770518959617611288658258341588035095832484778475778216128600181438281283054327195948546744872801893874824763919838367062736392650784528864388890013450355866619704635062507878210952797961553575965569466418099863005626225320573775490583124749796795914678968202692351124411648441135553117676694763893692398030981637490973709764876122408830725617118510782063076119179289466077693452108051920859588234701424594710251901721416624539014041830489899831711423321012204967482001597472130271853317989263930808679477181296662271183856633624942710150834558539459230348551195955484463491790530503598669008670728245600998541264072768089320730887765906524629378081314239217437617650768681125240723982000548333157297186277411852597999068174629452105768569626333781519470185279378476316115261731764750602192246306236542242270025862955962152389695188604224596883045304723301227858653383539178939697565202813356461523258641933588681848297448863498433217070253895243645308914189096041892699942105766317934667146760850098386671587788333143344041458646335672184450490820611193808951102910822170341226642279804487677556059872668670359761514666557885360180761257196854113299732824362471797618533696573873045392569227616285440494890054850907161479321598198124239949636570775000478996595985155303409463667464697626565819235252571030275225613309364408857382818255903494322661165736693919248802908055278800963475848758513576172958760831918739830923186291437769831220731609320831690514829732479670060653976168699965671960404173211383735178871144173788902479179234660090979493590221000437722386859802452567127157415524181043756410334014584394518462387877411091546601547910773868169028624575903013900643082511410725877121741732867634803619935215474359833485446337799294911812705935191480736289675025761751515042361166251438954647329752720317875790546673026395699495696497844233103421719226697077713241730400025002522178469168517206076173329749212859675254921613451438716339593286366962144805554942412200058597032107423554473056500955774593664933346743982649023750543058368836328367592303722098503286746970932049300219057900390583696408262671604171110166558164039115651821988216086892989901724260381856134804656379436496666884376625688513409081178451575111500730132945871544422062289419975506894599616809126531284905563220322149610273277497419012693678811717567472674977110704606528902385929203617239649224827208637360624554181105272021182727078094509995992710172595500581487690030718544951920064714247369587487212707658061647138611636370726792340128208770646208718630451955141959713836453212321763354543417977451308165850992253529582571430910816266212821571881344278339130686479797740658366732050247788935521436196381688132733848348675717441073868913858510360242236044209248256966770648328823994663455271598408580317154042781007697428530540327832720362563787186759217411916044425209514472926051626118690204894926586758136050030763865331361818307507849944694350026536859086294522147144657728500153758147549977956896373500591237023391411712811677877010369619547022633171966289447726362540090463561727287953127358549047754793391347713058257998452657328100771705440349948489731227059599488046300238574948032539104038894387513533302953702159596666838019777804288000924513603485198804567115909307091718155624348152112051935521464705991983013941422385445636031068714120751624042466300994784596645728531189891050794018152475823479448587412604787375834016653561342011917361771678452467307960335314330824841066756785389684142694934456625934743924794401474563435346579535254497736519409733386338625770619892847695542182842571884591394922416265114571757575774373814704940169384625887773822511734942843993229907724875752245503024974679775913731897895658781149560330452395377957782790666269067880724017188159499485487558676625649130395668286677163235594612175087993719377232945946741085516262701723685209252993991686475561933623307142817350506947484063329361393867731690947893895384480513580341973041662218811777512477112046952126641431200752547122648032446624416055610099151007922686681880748972340386896430183877272285665298060410571154506396822335281998169777368809940618486976493420580073917429486904809032777829658773561244921063034370871875808340518336855395863379491123367691533346571299085952003605282724605880149790267506149553954295055972169822433449902254285384001710659733144044306200842426164928869445155708599498290110689964745296922632402227237603625941481624330945479808293179079105876498180312464728875423169838723552966809796986593989123054929506958699763607857971171314277982007761271758718161028910962100725075005073026847440536636848821707409765365973353051216858129523826826449545448067511540851473110023117711011739242018894301563109364612011778241116153908539221634565376897394675213063554727666465316123792166785065726427726276502273153276233172460193693310870437401874941391700078758579347222290324483321251537336013614740097635479816632354500018910793459578308836213727993581906661816457260786962665923414268003977992312905095995735939152359393980552481848838225969209823498363345417136204993947216962180388594379182133138332091087084963133104073148225846858662245912559380390597523210792735123083460383348084148554113411491959666275989045306118167648843050775965117229541390840602351832615295849903501579683621265747726532264930715163010861798732543431261213171198131587244675527960410369315118722548615972437540574087699796378399455017601509438451073439936797840084759767051368812811515797782204691403622401682549397406008098410606860431109038473491803914067692313022859605970231735907185900050668440417459175782041722955975176052165231221252337074783410469341800630598315385359350813796209001217988620880756868213907065649120330466682951122636579015493996052046329547376314085770616306684508084312061146293519261029494087580265400861157509734090828807463369935664825463228111353493520655877999833304923186127835485706841732533267987516099097173657033653315554367896022176570329522777986460806220032437264567715186800393018681495330032034219951664700860688140221029764280579754977060470980842571887215113951293114105828499648418227806106593403027096456894680886439014836153445005331295490948757961179160132666357619137974080757584772224872729806750062811821963181819642083384666071108045949652102815222763584604277424933733558228362099212885676138644503211543199898349789101723568833490911718656849784205741503197236765209369572786887556780408169056163934858745340159009280402043501357739213795786315547570498158222784780155657923403340344775104806752631656730677196653727830765067170610670792619457003989929822979299137334038350065902113225619581356094466324460765871153716250380704967615943661577968264932349223338137347903943072943186465612002720353212740140450998834480994176949242788240398793304177948235348512971256016133813941244844026371642308232791320402740446823879981173317535621600230478031916248302164508450622983161367689080005995333173890376108466598373342245738340274436239456538458836488709101996861438721036604047108864247149978525428957183987260493721346986086564055580856956323608140589480723186736719414591902275345111718126057619483787830448693188488148056178785740186304610108312216450845128299210526207662428118343761669278194952612282598755219170910316056638412897558678324454442780426555171385823071341312517631603839297459781783941632913479866520144930237526445511635765369933037857511201576172677406766874175238356845829859256732039753439179497450149537540989473139080115027786007973919380616182264444944892337159288614938213891250550078477989134554567172399833776933836863833294767266528515884685403169917747035169075859844402837920042364263471579442987072778599771565565071333325155500204106872199509481036021241339341991055555480705533549343391911591807446741559334560526567663617057866717858387712288560984979859625176741320910896750248712297396620242838415278056419102524473720974449524687242563806629623586753374726507798179072557480869099621456688143766617846056864704608185378504384288849749568928029656514668033862423556823800628330945185886370355566070384472851729670132911177866616804245374951585985136797963183426803775167431870776065673310301293411621070024288269704004185408398148385568774634365104500589099160515205347202574155875713362492264203552686056898063049245160521998331620983672165733261043146787050253156638432844271738650960044480915787303091601679145364132177155040383405405757139821753835760481092664030296459666030059353424355402869249550328773333700267595739508316925375766697890364876324595130601749980635203191006459074155163567696179544661571082752985741610231561034300139588690512605295973479292797363088686029287832561133167664238054890486858564955571424241082000584871949496546903281098844818734674315205227052290995924961321474768860533292963019217653653236556887728673450369600622710661525584368474144091383489720289929579856762282872114962835977742731973330276990991324298800115783566463600980203544336757820212721306119848207331875444377461987026378772747639018615076337988988163207086038773279461526269167194335702022710135522346184896372915041327664895879620187424432089053675198255682636468903993213614404748210855808518614672976685125035225314020852331622709196707858030887461494511984603027830038838401518392138832906011738642264188800944611620035869535349796040471682884375939246032079674143308770280185797268505269280136188953970733324892658459002229137089405416087387140733494509946025166109340142509342987910177656180907260739324583908997744217293475921016728043106918740010259337535630641605411278232404078038210479332066765805073290849065581802645601891956887660456085504753574137758439078292524004003484499382437924035746083067851528492856518206475190635931120747417097471539584938887946926371735147896340633887417355296843474177256024310887591850089393364538944164063283157507135097278669791741725533273863331829621396413589727823380799909523107253977575594961126059533121573110312787811705432089443532339020636795164597508280640175789287184403394435440105943739421227760461467662310266080538652812998756084459361388157457447746002329373526147806896144072619089001115121750512408625253537772016850131041378479624692624291422027615666891472030284205351905512219025537303765888079692870116337079927536639169244938791753766672963583631883767897161761920321569467743590930418691348243840532699679213690841656976445005542123355866344548497614766097926553115970910027536603336283191596098129576670592568644591687719731307974905009803258265817518519495959732096395785977422928448632867625169181019008567533011447912359886482348110727272190391924026332177208103537740844005548706037967590708738504918247672211296359725763876791706220631419389455737940532294976547072121920835199714537961466925753650839772446695980168851460227866935926136641890805939467101301952053548128392839258189474347081126544504214594191508715915485318527440311987512492972926259213443548785990973736230251986635325749885452088677988204088458439187083995000418987680130036793516344433715439006528724462595038545373693155074444505330313393074204272047077324550837413746818916824582459214280706847129822866405285310594914693521752305550567344981689052165967262750561066943979857395182977096702164018538808716412415194899265316335842523424507787446624909222014637459787329279975413846873385165191011290098743102547633470012521584991248887186459451176131744236506632392311949995817940964542633001621995245709412928047195282953869999064943429481418535513165263492151391385487281202832408853594660942697995695262153720785974160451067377460601414681628901101890744051034847429438540090685704998051527210308208523455880586997016581303838616691627270291683329456206520526829933691512369654887502819110545808056434440767089112549532877126839065796579495466282740084197377894200247899786827348914131546934903290046962704164781715421314856904937576752286358136767549628449881066498803465654618047453572703150650411054407604155915292254486928242131178505592283885208320511077177192119403870364129873265119946515605490812102016661637894155341146739065809752108713145278209675064098961601004433371384013522135736815542453013712277409954582612504233994428508018147535851273770081600943743115578146006599208217629602736595476407761562184718961617848138470374146293275511134065565875622916537033605983968553484938782357246244341771173162042465139837842586990865438942034632507949113150676195806089393357859430721300680177208758455851947084262555185596821442060463101802748758471484948750674293082058979228226145770831811115453217763240292700541955046167169185574960151498054822619864292874885405229673681123819720314477332968469759727309269361237063070865501561407949310164346520431106985960180892777766489087881086560534233780903085345001823299969837768783628620589872257320449085814320388021226664073567926801870590133020158048427649266887565222978069043366082420893178172052767326458669537456392403937115999622844712632309360571548851572221167321984026057181706294985989709797804745517244059286474407427295838858638487418581894819651942814746510217503800377690696092494079635489084035924136238718186210892057785008146322447367323143490871465401876868316522853111228081866525560196674934898710200083034811378227238548674539844806491475682687776051576437438089209935142550700403087215901464444948821760097765741377663839528489589845509676006606742917332300831770282740106525728626124872786910290615109464058602583998791453428918749648864139933467401366473716865250842757417715376910839547726388610519161890833160282262423441039163929685369709136303206327534444446248387590597825476324999311028530792628118276810932274503556087730075762157470933561163427560201065330504853005446695215505098132552089470875448422581580059442225232658925306826221650917386631862852962148215923824363994410523384931857099120119503334172023641327377477782851974855779751947033633694003332099708708989108931664515207451640113558624979668125003428964469819715275318809804140204079457956419071961254982699719075967741069524952312920045698723959460646689778533484689398825530094389289779574143464122947987959417917466314152036854010461156846400409009907812820623874642046123360852287973620722988825277179202764741769916262649905574269122235293899951931032484492543517887344267459046679104235867462454490452767438381760792519749372632899639592029402923341701607400540821571155624565414495688761220822695199433279357716082808658189458170271316477293700947868976860332258314428490336849529801160266507619166444727462823911855245018679989456843401254992852454573469326680712550388754941070880973091377441891445806147636495858106188954713769465469766642577283910726891048440166503678882822136449520079404875852531643141425614704939954570091122147423668616011163212835775677644585127060828259163277936619441067398607579987245920379472741777039960817174347964146243270032358052214486483455094391720454772440946743240888734527750198714133476253988157818800944481905176447309402391286540574637409912235059569821065047656249477020709183516996698003731289722391852068465569639652000311108741325834975384282709013446111321477051729135200044630441426207663321028659392642451222188318964098253120725275250000940424860778937358290977527411576362562952286720621510633082815670170022419964654022584384835009447888014878995144321684480138658442901288981424886142932769624269298629457268233313533070963203664503301357803075826643327363566293533243172615655404846076747186535648522035346753170438373340454808263335462514540373371987551528375800608602409355314463454603512850305382500662682045798964463787122774678804986918069301677696765639723327117357555163887193233086815502567652276977389312548618643902429841126989020401291408244139839182620891795766811429323960755592111162904313135489035512988000470074040090042545254029845619665977240931816076559145500095362450799874967030969679728858950575263833189730285483198335124210504902160614106864696664550958620413080457896549199158598638677050532800909350383662783543792679453942233174221190201456677886572862948263278266806652473641565613204249374822995820753166548787261317528710697998023725995102354594172636341255431644005000992901742575244036473558369441428480279881193142685020723948799637372107803998226227916297657321824955142248602700411382097999320067921882096924372175248526458964277031104120357432412913223520674974306461014695871501474230928071969911258777562063061793678746726936491824274213666631252340346980720106552664882809521429523636701813151589581072452084000946750666234214652260309218081781286095923936989919667388745548123395074151428711714544189862893389600555687850385519088905972976664582163671533939788447420957370455595154196743668601948884133797594085076112298273954153223080649987132137222495093655074097729258193544503745358366858099568084143352234723699012314873644290773176533140320633404649035535431346564281413179385882032209516444165638746859313221645620433524844160941872463366667321047369226514171973821114924746866426601637621231939822363946692122519340354065461789434255756054386323032200453669500466214761339226458613297145702814807935460499630831294409099862558987116111695969875007554072180169772571205349249947352258738890963867780741650445491641735553748096538729752193080030808019542463491121127705093488759987759882385690884663106936819451329457973924942648248632855169770820298356951779358544122807495312238010253036629936868376375795035272467220026406801422129082535852664319935942103124084908540535232047872696664541365705870148978963082631712965186117437792409128678137391739068077521653162475183626938687570254075857875080476339012892236699017227380883487300407311874597282035950151607079617428296157268736529170393205410332949831027314829046306953936590193664509915208027182457133123770879259341521881695072395573639260302862809011688127804232494601663485808581646655176500462483763693561309390041725159896075437607439822106144514345266268906542204775626363826469114198928314732834199967608350674426170094732447641946244735943356873055619368738514496895087160973682030329710153700406381079199387678964835219348812158628913524632496437118013344145638967635576742424914043530372854301950873610637374504114485011943274750929044812045922875132603429318983135009567775733943779595073829191239101503934387967864117165608142519879484188213680438535316520756923676681281150981898879787004299718637591439049278621552579332792854638869663119887253067140447659206359709003265041912978567054883812045096535128221563888971415991074452790024132647808379434536505587907668862833465017917648364489836339648976477241151233001643786403543546228914210876280105975611301915738945375253237653314995589966928643100608101521624458325112043690579974748803847809849736476054274569588992017680710889762026015458066397146929693778721103700354780254624903879222970910062604548828245008959891306991282253672961608136441384235236715539935474130993214843403992373286936582067104724661077333371503349358834237242921200372015463690191404368100238996294863279960360698497282965251599753718047442365200155951174161492027825397413671370470699960439916496581605806696977337348113465584849238077438941813196087756256538636383471117850068951985137167766259309002009339540213803767476951022589703458769868388632185040138862186737904349615306895830848988885551509114762964210458999428451914904726462589625112054547072818542159731447764335053030732748764186024373716663580498050664093726896746069109045130478264130535632128796551590803456549112070822864872790673263428815047763875879189253185075356293156950681537145335283988597720111195242761281337794041881882622635042103567474727462751769847528351184161548509935750675086342944737775183818393105868215055077285750035957840806002692058465496852756552458555073230847369753369470935418197039088490688825572525663458698328638277667960977262505568421335247743282149291872029475555950476502904931623501504305812735735153810987609606188812329970175557469854943557175361564770230164934021673614402073478453437387496647123352981897045362618674567260861463710613321526666317563287786600396483493883327158297923522786770661607016821801496112920981854063881617427379588313841864221942547471907923297515308791165552432371684339941130516979053727461044219096416149928638580503801335716402096336452940654455756102556677831169171281934309141927704697031347236983292111098624027464157958334080913324970166071508108239940597863963876951421918452120641902664859808930593025542672715168377332545864074315289878782627855922519618315079949794008867852867671315047407528148236186329153762811030732591857097597781747730353782271936605420214768188247609306124443862598051219918639616043851140658068305385672565985453743267326088543380515417346058005226839856493503737124695817291638689020192520565367875382369095381132503287743632136610881588620377920535860485411196203715209952619370135200555374084565303155488360823738106014934268885118487652757517083505370735855438688243906994529411199459712264547584722837063579738347490899602368781582144955619947803768654250359187785829427274253352424459203117803834272375372047152705113322210239417533464092654529823754764925068847218917407073058455901197756743552920835100523205169333502373268092563406631268779780607580136550115243594343735695041351062359549382330608409785690926007875237789966155350710871922659323584995157955500862395338113893977068335838668150168246563521565189587878958894192379002268354207530540537529598049816154301819378767650040396179674027917782198534239129203511989178087250698271813843892357149626746894922577424180562501779855273039696071367020968171081002405625154860097726024061557748579185540232288950787083037344685742091521647187065585984320380587782818524308805491575351882383523250731534390807080839246469275789837310335994928370875465641488584493459486510737995371151941197231438912947104433355796436560992849038817624351671282565627218480758624799520480131506183051439487949128346192692116164130618017475902381986450674905462892845435824485014674426582713501241635625594728866246683383162594093081920020304840352774847244107560807251299513885744170791486253019635311291231502636504664640131357061686040597546661481237363982991042879338169789562301478498313506776809588065402861784666451231932714361841221250040678854725405509973102869168928016977224944777297499158234057681011316069246126042757940556612806999890788248895942244201864967077271689057616404179777796044279883629054599654457789449844105753668622193937159921691926205414519146867551642007372765014255123783914595312900309268021270988853621768582296879456708768807269233432934099943069827304863345062052761315881742366420458472544012855964821335787778577066469815653665329351301995126449917885471968930157170359978414093383357598301439061802778491851878087473545684033330073618201185686710936344432027975748026291325063300836003058650543024203341218160578684498825658960757510548399797385690977787914444539346601094490959847393613840930311661647611172860043864770086647374780444424324314000705574396438855403785868258185312092052431622579475346719088988030675103541304918025019127294942178590647869520013175689041542802654197548376846445119904999396950080268100487571914704788791348306677675560750353572629131162992086904258140817407445282117990725570728649882762264014535241991648116205962802126430920515517314343497852853057119291424325539581871564424711602800056298986068467930350929118749454746480882908561556267376954590298546615497921283369667771092096573466715195220353873378116829076078401987824700868566887556872257758066403897775715557687904093324977896429538337406781396191284854071455879114476851378640294016482335899112045017180969651045137318044041768384635133567040036442459349318994319736349617019990049828015084484175596796260895315858606360387667955573734101710480530423263909996985467957795821749490732052694029550622812007036182531327539582953038869018381916592898692384478892649593269066840458091692120090140069031058480498605733824083966933738018223482829753545111540268538983697665986588111587203750611081708584988299931691488634089630339541698226567767045482056084418042369311877526564146370954256983055562112630933017589456333021120503545697891013207857141018190026615067111645789558631208943749776363623503111073645459554766437507074878493607219754122066932217836681597314526393069429330734648834789962678877374955096962424686750843759821105599446863030445721713399544384616416007763116060965672843271797682581225677138359217079010429492188621196194202029406163358352274107712023680662959144202288195732709804702759545589826281832160754945815432051510961772379628014193163279124627234405000107487444888495339368900852160869518098642030309951948855376545558261525600000910574231122667080880279485691139807668143436980191658261446783424675408802135025970531404424611066770113174918851092940003123319517817718932271756952269249779764174558981551505275985136252417486815033862943513281331895302562502979806906717546474380043720162563374384110672281061338039939249093964153290831938524728176367556142514070694236792475837999399867916030160980364851421031181829948672656098400926344212875825419294706165022090774330599824458955743204714971460952652941677190074471865789038426550085914886484516150833089865721200918412483219604228382789981845154906043401718007306566132025669043226085328765961276025010157364644853739430505304072486054981277225144428905187801275875030816733571009023339592597839750846378945145692451472090953817581302829681905037080859059637990286718056945526603354990607550431278589028732898366409502775310938612575454488912581376868838298988379955309613729624659352679397913973499690342845097155502312625272647496611937342818056268280213571220535443427614709665069213209942195653802452556127051076321495491888106786416958619641408799631930100032304402319009716079202828639019389426460893037183808021695996986053607483831530657304599520158243300030223429476747238690915465762671218140558493211491201136446669429789247427215086399104615770451576650425872224245482952056406708323899101926786568620008619879524172630847216613715898461888456520953063687100575573227148298895403721341124544990472467488307766324610463062069844577887992778727864949472924122295514685491939152753710722571420605970957536258096868760134332605514126077593714331293264929686124917759255878752929976302792023578829894056817904487477159915282585183360082605512320698018375301714023277458089337279392629783762820966999088940163804950085218033192032602027064280747609563477888541018942559490411256427235046430103040299151250275075622213677076739100323543669965989742975568532432456295888314599077473315241774936278268836677637837192986582070438680552492321609208934597566565779336612076561796293118112797194056580088341746427217387456919240996308330143257868379247211328842366692107065609567940254175198132705923200727543245430210827670625715866813776500612002310688625878730780453441304569819350344655529889246259733344449797558506125743474800213442768822254426124981942239849438515531923841485687659824022169991652880965225469393362307750932470474528731248695769396193199617900855465722992395575597168949319778654207520415184889150739173343696749138808609162210746560703447677605463832903891608137737979434373108903948001011461503646749845354028086769623551542538142033687423853648733831073266766252707583638193798108738508401873642502009919049575453029098846784865721248705557225564950240580741654370280288053821617923115537845769918069280650210978644738642716869852457350784603099531596893467266778441613640023992280556738339420738431597745079729050464851006101496618090152251922651966831779089846720378646650187467160276736122595320347099387983089109656973855682411941857166549028838203464638178629354158935104787068069154460474165269103216465423138489807617497690551654224312270725906844637121867379629966032549124778235052204026686430320470979140040643362048050087517095922671319730865631184662091354756349065555015663980723681982415652699775939180463024974449888045835148147807135375790370614293690492852449424795658566429854209214752224354605640214585585042399300920489034075476686192511874041199590471109102220914063412935307396819245814685381136253661101976409271028860296587789388251689402874318670964101109294055278543827725437593855012281905666870734051825053415299270028154111188784188130133424025534327098804129579207217400269028551233253535422351483862663488793296888674058169791999738999552101734622057855434705768315503040981656969221545475612527907289620419284923126976075021473142379208525252578544632376255693623756620937249439395138275281864493313642345864677525467699201843563027863997784132927182925513593600417094407205471741183465232460933911786002603015617682196988285175616239905325099935412612559217790660294041349537322454599700202007958126295142622509126141011555986099652592628272454312031080803379610587261609544431546620112305806401645116794561452202127279126015813353439600132645701976833432713599077329745722609770833560179002948925571610034207149734560659907979218900867862576396976020096687209554878201531932146138397247439594367761040891046231075195320537096908668521247610482803203538393369305833598303983502733910801273234015690719298816341140962428828814990132308573325148253534629323046066267367319836873761055220622263442269473570332639785311202681290912427134226018254593029822167830413994761312312622095208491287577910334139586280325915807085861050366505431896020757808384754141630455506492886103969089977952642599626158882887238395461318619929680429051468802752271714627764704772376390783136460585616440669319300725273615592327249908314888635008600013963161578300466720346118836976980745959589549531052453856254898033022778274531611488759543958027615338088735966882120989277600407270868309500119003367340968247901985214495065813723795500174420383682093623817256590153631181236402529039234411521616535518716626448015978134861407295455698893904322674777262267272380208334100435185817141288560730139966398370949047892153778486678889790905604849736538692070757177711010563519071752295804183810482858937626803628181803146338045538906350499082625028646180771599813287285689572469688152719894506136220908516354004201115979557283498568666214195589182977446309711444964223884471330508583402171417218668678324308045025470730873110510715364738597579085725878562729530542334227341410271867085364767524234022818483703850798314422719963359279326708007896521495791238981843297419200917726477060079978094362933974469049563883137446918337663085028715609356958859961822312614490825625967639898548905701422431580248283954713780141236002740573256899780764403195639892085436903913501393457875564997382505013392488084124728574918974539184448382152256549242603828037458278742442615334486158088875083064644570620671522504771258130358137361353748186197026573577834918280396687027798530603635876191373374570572998031217187751071768218413649729622128795248376011510489025093624359581849099394581697677771991577307345029141895702444778101484891058145131179949359299582002005401003674353933586844264438609681701838116900781287393274011452688253399845723922798604312531310072449459191086161821403706698145541296525828654928651180587259856860805150052572058525504131335783499145108003233179935069771450438585536082400657622554416637907269077279223767214273151395201824801614249565768918393849478536121545454981450628766096585833671570957963368968613849057968114053999544495467637020275607235540799987919620575852986118212835959835637619290292853456420149755751806874703836385847627569567660032307929042996977476112739450586665792003239511024635684554937660215763585802069636166655521673787047603021159168577106302750178070259428864849521936744483718180229501750843160617859569745600878483583134168057992544053169010954079087314329065457609610190626292374894801141222911901842962641277086680477444088355013540363548332606582068244381767502399234905269527857065225472065445398176471326871323805060251489490829443836174917987547695866806790750838494696482445512040137567800565677257063340027585934332102668051192006044137342910986576511811406861916524207622547328968801682231113779218957531576939036329094578605743667377488526533888366371854080748983056326399301641717904573878991385082049275983864731693368997935326091670715753240376057450518218434609295966698925075183467535822009220608169978933614686133930170260458232561952403972565486240645634234358463716800757540147831881350008367687359739431292073655079237608089959404683501561602356661868263959649143161571551182624264445031216467448679182284543290243798391123281375212885043645000480346351617439506692714323818769791825294122677809363759473374152251115428336463998079394987864665036766492264066503580917224290053712835962372976008310027581719125959514485842586909296037416840841635238238940438178644010304320863434579035423322827263813636779643569960201927344420048486778574191746981758310084443213101760276515913029618878983394449995004867702128235155045149463625597077767440526732132582098282143460875752486160868501245734584375208014754098678175412801074903337536457037185590397216616237598010582350040025455391900806469147861178594299435460017521628599816943301685372016654311885009347937950879802157751009279505318552386988657741006786335122730558127458117198226719373324334231264479411544531464961597282432617323736776599162776354861494324049554631623707995655976570150858112015902266124062253077081407691738335134445844159647777499286599345085392150092360416951313590186883073013923892598620813475158667315326026136038230365181132027467194435173342743447091492036619349275661524596420810058749806548549001892133240900123924020517617246705967768555501521089831942396931213476311978530351670515619020350618913823894279088736710180292115060406660443921112675849150879251425685727210828529240587246471562634309947668372261644274962875992918581974679192208885811377618649722084840464884610667256153914910603756048663553225168316968374989254824447549459834882696136599270182102466022217760488302555858522038753314753078791702548527716364602970550842676762758878779175153648129667600461168290635545951955500550061323576147503367224721082203385442049040301895080691384835045812686878439617859748046016304346979672692586414746444038560180944910159981391135553008416641873417266957083530919592672760627549809984339542538326641311013207249114938187509119759385118679665085346023076667786907513123410948025207464697988504530872722907799179296831016784761616513664100198142525318133430457912187021936245495308511123940736864217515510862428258870618515983670614281491009068014646822443874687923843306409003329299715478522468600069692431230821885913692016520568614903908101330804762972420904200490548463581641255603638692718021232598162505505037602043986275878170681460708158793793520797457646509979069039340942844023713256365573873270150966402190736979423884652930206525511318050668938212407982870831714376632709756681592915289603245472740829467882249181594667891055009717473411573629347525024307445772068516878777151273013281862159079677130452496406066397475065748404594236309738307070710257510160412538151970976570936989034141727640069586921107463726549721746990141990212787358544970126480120442402096529474917127701090635553595575351030950898261061223004589268645496698278181742600086998733350357451510803440414145878549083630715646726280127325261237412018660814703894285077291845356999981865642322268653830165452513287280706709187230571266349524952898889560725104677188576065862980654959699158200627457022645936404692169139768795654321082863286016858873030314588710049825986347164227287988524583966332288346944468706904147612101913939167156417075857203890649578368689125222257654247224677407704766421712653650975926934209153698573127869594528347380356585084902408751152948678237911992688565079746785452453810964724411161410858882688151421003179763128400953016478006470645607165398864770790427512394611278206580351076372095148321653334397975000811427530755733320622342346260613754948276812549791883407762624091669144838688082383010464178446258714101418594402257097943504167725635582997297385006678530213794713520470560189731144749205700128793086431037533244338406132198859592695928059452230184273488546226705819249847801725601608387638060727090783261595130206368638351920944798118652786125889700738260055512665917065340035538634431294235534994984078411561851590557901387279291132826931588681179500017233267055519899366886809898519787643676183291744648600233170911818908579488339931653748984383049462157551958260113181526859196633597589441320678056558294962171293245240410673314695946687764115990846277197829007646517484702465625434216060462220476369955859969274886107995940801458261840286375826126804271536110068169499125390075712146429114132033241297568630559246149100240316612645262219162511154067551561982005221691619400489958801548595056637886213391475516043662660942312751960751373390440319155720120560684331719274867838521559656169786438720442283766773717634839839164809280284867128674136382916542128055141762023755946523359479813224571157142308306274665811168555720555865361454162620620269091944136618928542891783046489146919038396512164073798928655332436459557975102037284058353217682462300635752929237405809911365877403689562476945674651985122875176027114372618926499349621607974663152750424875118860671933954097850342800916552246512796669284557180983314672782944072784960701835807629699767170092869163426020253533120039361871097860475375135325262080960430704805993823660720761844039066006286970874107675245994727681175509406239965977042820556044759760357463626750571529247914736640645686256840660101410620629402786211459420611420625627285203295984211851415779804531433708725618921006926311943658174303172716036894165494975322379477549854590091668476633729432394911886826703010901647091909091130922799427317005529898701594879539605448085414667638904680596563529378799758675702654822024354611436067861781382519175834367717190354427498057221994816574370565050384349715014885002364787913918078466671612396554523534701655362864331715043899086656968185603814745576083176060452721944782164030844450002245506966127555546044317952682877417741336753925480303264548126445734316130715003031081101765282297025765134279342140447997898288220738806816262387384844595585345368411985715950878671205897783715857918697594893199205501106337691228023143741416200394792631980478725256257610240569684650980439022507364750383708783006634352040700682885414142383885594395474524388013959097638094237506801340502732480650034338273682537314237368922400163407943584805869451058952299742217940405115317090669543853154555992422284379640440079009969110163321982699002722194822417505210261678744887194983833075391760506427381474783145920704398678259479272035360663992042949218703016643419852702942136048152953112586374090446452388570404405597310398606740590606678952287178747711354385787835395156335102593764596087076768759663777380736879354550208335390090434615877677831777056306359415925693965456311048350622793521073351835278765578515596349980293226769138049760150777548179913993279741639433635539583120026677117787411169390782647229666433028186049976316594141871050551645848083679235552897983963089577872809888133152321770733529029584548586435277152037018678890250525080150799060444455260910715899616393600472217889555071702184975798440613840312881451310006823408539053380284299830255281635151625625346184064918983798983837177161770684113296290825610494891806240457869016862067569338860796343760837472615291115089717073092490608731922067842974646070068096004562551646838941760550425230239289964027384616663558413748938518963370553700342501020790146407048089498636590310718101968843826302445469753509980606434247068648576202243104901336246693048825827410237732028552211843803641646756577651473998468467361066709092104855567716749732749714276558008043350090754974326240855612708104156133784716255894973791725292255671876100729326689391401569886406382913381140168607248648216097154752823499221290835257317409426335438170761214494151656670464882219221966702472817293972630856276306720314350793721913707646068702232806164030466316556683142574803399292471081773332224348618225884549128276018054280757891296405378566128560510190924917604730227415117752684229012478012650541905507224244082180561223131650800999681887744428428920458575900511984066561960463412903601743839260520800290717968435926156327032617982528208046755898841551340598730812838540467488451779799021761619409634490664583105682464342643711518307934701292155190425731764171906186508528517380754880519079821996345772899864501482013916228165101796607324768198566955239134995278432492331597485067450792549487255748197201920786205075783287733601707682804869347994955944619135391890807314634726260871535724857907422840232338261605361243969814768016932202010165580867029604305738255155667258165829921643231004457950474130362372886485762822820436563447915923866525905451942647345144367291029848872678521200831177176386471561133608444059900373151706681031728905354460224876357061045320822844904560485061177544911617133697295565996771193412001220561222779569792262404287542800004023773018377578706675046460481139806549795804354351447203874482577601700754640147546926901955545710550422678917277902136896863049048420904894052784043028560423309955370195003088531736892427811209788468405040861674327144478396142223114630521521112114989528378524948521520447343829442719622719928825299339003753287667768168781013241923573031308617058324339081073906257100341685756516404744347927664073611704249590175083256186450009947014799046313899344201387893278085607716305448357591820797805244545275094587289070704212799470654407091764947426862234035021128346070285937720422820132264081303410008037150630483865328632411730243118515106082220199603755008516391736217445534743312551792846624117962849817390703961422609842282662955753251385628373569632381841828483592434930248244579241000386872828176326154752113588038238636745484207101893536962907316270339214145491011522189585937184510825872492207874264947481607694502986148553443904927723955643492738015180819902582921296346581061958343046078057679055127189764099212850456675333978573159076786372269621018159855185019855760912286714296626399370301677901694335450776298595550796830989869494666038689644445269541825714968499728327815612945461689889796637913251181647311189380956024160465370614320978677459484978087584959860038069804087079902803889014490246337621885536631847564567519087546052814501663651526852325280640595673763440511331305796514116226024314208007987550137907182124544989059640851923578140252269001498652163073267460923515680894397567256583600349936336111176315286909712178696543570953586967588254563797924712729521958221241392873174805945321608551285217192267420984052413537440591189088591937993770494220421812974933871357704343919478375474644385771065067886502797329906627714173569099235599552135874769783290517655379501029244411211662534633113645796174983050475904124242632276798953504752256709143460701686582991758605266916910636562970466427374159572737289469851642308239166130759223800577659986648163079383468059732156710092646003103937290949972388499507524067394643682366759800510183636800521613027569690464571367810412525046037898048653108832532676575098954847100758821807715776230846423685620328747149998250296240767659415216022464393171741824517848157579806386885825045937800010683681329935933415409537064761662777785542954317453043893289757127467232750942867033990703008634838113693640268805322679404378011541102023489935923350216383919494231810044868576228316596093077148546957659324161149993965704726767448723514753450811894334900195740082132323773706012835877400311442762300167421425302751300404581080041848813683294418496836018339300711417040952472345729465021329762207416275425633763807046655051959006225326193361510051791475096423090401490801024108301711464091509097007995932288795046189285488433042297368748592267495401366065482639411248432377643287506852779952018771564676956856461904641288794105360700071721334149025210492793253329389427635039119706607627123242657656701928731300815702970271305303276026684876211792968105554745628938457274483844586509208947767867553647129965868903254705323946495352636839533837316647665600588734418108794180591545451868668693170824632123073315472765670093550573675820479074259968296002173766026404670482411895637906509192866864721118136546659714110393228915521072669808920160113178191612590665893602505119568956111859616496812449673831038224415030309122156588064792692797842475276927842668222232132095857046627395543277516488510636425890483453092392816789889966455650870669421066193735081302017306666688210973862714744377970833887380059295833172042800769858365257671958750220927250519975619930592384836156588522324986773271087903163414522664146733107096245259064813733762779618715778621545937147567669298535425837445294530310087553547479297371377041671172663899096398294599472627156831145591060009511270430849539322259174968657652356816831705391839128906219941310348129856717234395578298472062647425659259088608708819516524997207549515727474069289476041140979496025100128767372864625052817276679484150257893937144861315648320187462170580416819453895238761146487060624433734353955729509607531740808714885039571845982275293217412344253701094923076374549197411357405177249837988188115237139261588385636837768616826049578055638704221208051902573758038024915769110566290121724210148309706424289114861469958468685226332357992084254248891049903534319015929327568289458439756079460963856428875368941319571948790302038165116616048707381814476679124074336454844164828923011055729789733432267875088399021725532970252789455921031667570556654727408429132464947386008260783624216068668003525723280423976386991577628307372211813806674137359737660535202714814548204017772598197521270143353537687778751767985061826403219271984301300106035577550884231921085006502497901398639666537773904035913081167197110471123161225211632249755599677682646578087942866918724227145383955616947404503972517770790753850938292892038106371620742946667370800250740379363685461636698487432260380644971314387056654953212842137197263562106521113838250966899468307074463164098268133315241767757311659299588486436383841534030116011691182634349675563762021412810384721029124024093299342428805719795455005774938044637622490891083337554236591335374417652208686354495530064199398332950196209570788268504581950867533604527289129927947639267315418062472961930409545370272725430321154715764415601291417615583094182358537625683951464039727814395620783120695340515339731267772598536283289479367213090754263731004917396535882899056376718233012518470708763520834407863811830853907374364974240228459778630838694652498077047879623649627429524983998442222103630151299272831356533087380434053176813033503962560723177784017221627032417226377468875954647603537329547132698260118717570412664635263133675755936317297807665645847140768984295400868387734004891850199297344120707787687663837645045754850320904205329531550268712755066105787787403949357659196061305080595477990923570935578493113834619155612333677974328725295363830513507129143502951058445645873406756980249604578817511242375483084718758323856286658137389226790005351407798984057142605398785464392875714691890499879288779736060614587512153544317227892045693625820455331800261755575321783974130242380711524272368512168504787162933854095460843331865340538799757229159178059481144489584860864125930278341481294502282073767675217181432729209715939032442750573117132682700267996376474357341035309951429036590420193535530022607832920145629854113312032787566863098103109979001677762826088059555826561848581655017105905636944169306471161877586675022996976458991056450626628423797263280600991009763508166171742687365788960885364258778496734908504223870406372681027421221612505448262742091390424469028539052775291952335200053125711681879340779769411233533697001373806033167157478975026834274115131146132017366318748682721315218380279847753569877609912393439820259119472933468471771060647028121849600216932824829278184660998130390882224455912660795411633866203055328792495919365611549824958377245026543092116463437727464176795979982743996475074693626968444533167722468662293236771108148092945345335793353463282884564383263398418459373764351713319368089471290365565062110619122308070956904899855686377663065421361135940082746864590091669400476400444158262424081263978852274145432149048095994695250516150921545263303515734368181143595911188654587530543222221370591881021485507504387743417679582700422319277546352157020998893263756088110813083086381902461216697577850027733474732461334235278490620829114401071702174207616834146334049861449157150708621173963828299962699435762063112960980702380143889956216087725760769146273776209183383400462642961744222964141185702140867271695109799941847596615372369923861257953190984984729425564928320470778292209944087409169721495620071946334536515364090819234842764877866033620876779106436694035875036715453050942806678259015367254369321737414861735114514591978020037705499368096049721473113886741897442754035219248026422748788576496735596678328302400637496825979565190214982479943286787140436306668103619100417763539641060049145204267535283947708500828437056979488265352770465822610298922481584198296101322300846877435368411306456888420720448253150035766009590204367478294490984373985444737464788815796397098839414599003692038930333846501733161164548377190525917848061371548843748537460744703097331047747660022364812500719724101130648644891534951573237154141968637139863823085529796423862140407084110167106056404242026656577271146828216977928224422277923574889697790349247449534889234116678388614631742023296023823252805891290969604824048190699747885430851778807139175020570083022071014448448909481291806220902762438363180042170258455438529770993156219032578137948131048432047378808104139806828196120409621892540375620100266943894995543229695218881647394605274620089544920682092524508199498576884524117554155177780515804170473776465520354764371185874919076532915820641652340096463274501913483446934561489888911426359094639004215550085580676253556672313879484078211869206522847823452066377526898910203903625592026418132685104282904145049541921269563120858507810734427646069705589712663886390721612671083141149879763316840985895136085784376399287330477257678266858897959360352779924238304513973517180296714963283347696858809617609523842572088418948773727955641989899500811337611980458155190598033074353737533644562120346079824839916881042897892446323892286918365118641526278619003544721869949398808409255507871790858708470311525302698935177798902449947792519331936707327025473024891284637840679610400443920293307960395735691724359529740071312775054003654572315446490086266008182962921718355067764036994235451220953056364059580781251026734093565875383165280371953301904983397415082345545932983606077428019002611768226799916334858131231618847871029085360735785119219612678984687772955069731394971407316879641493664841657186626866935918494031490906216027954712859932872783337578035201274161559236707253102161205926981327615493755128238064133342892196388276678102978798177302221039779332004813658409171026539286520322697963675775576156781251832654097314684358253958094746744349201390056760419864108784815724332891657320465701000318027187780093664734683263668722328331063518166584669534499476582931582643222932071306028650487407622936032739312973388085417649984775464222380297819825671766278060328130249172267987562020362025219882301947047543569927826873250365567283623545508081269720813748931594582033127157633173691613288783155999599866356191873139596018749705456675002799424595963150696384622567758296702954901388639607560891771467317136223258864494693358469357307593901899387343347174947386108670924971161797636175811378630965026234031145340544057508182763439448352924852251703481269931622758654897586647324235298145837279270974384151347896801424875224031836368245344277759339496648250536530020521208182559219925375140773963729007213711679493330424913091509740769799990494952723151091344250638888732491142024245865212326443938872794356898452845317468872287919443415882609448196864618779766936707809669513025684634704634847032853164134921137082932100394350530276384788447884665125800741013387137098724599396682594723419633941620940214021677963088180342676695402993869618280365798886494128304032633904735494144192988531198089011788892610891303087543049341836704568962301123006731901635995632921493369239363155814403198814945984247779028798804682149504946180867650815198562097138847567796827734764941875129342584934098692715210222610593640066440474048366630033274993947697269316007168519073329401837057207397374940212988688573699943072020854429086818476119072942265774162657276344913305183400436508729973870160250946044754151655951293498275149353564936063638380669752605018857180092311311360081378869313724759601727992376329319282924938323303536091959223217723787448528241383049983149441341932067935916739985012958389630823782603792331137205561362322765153425160384556593423853335292746643071415222989861103851635627100595736449764301027112093639801796261107969537455743832590584968756834950942973870887545261183054151917091419855228254740561881780332314162253560985039191394740541487130263576939682926677349901240810157272442929289489212590724547668661057579455722790032767243207015693769226748135881751538239622658833904519846284551197630834739430784845539084207357824436312629657597088991919801592242042292957976663696313227563796258343009407584825157993974460937655321664134768458285201780467980018973256326827400373476945541178456922883403638698714876022607240185302743447286546278011162142179418471695076015285631150899979180067745469018532650686130126919057953723987643293774908340230588382161382307526639713702721895690994679045519171125527355035039287697211716529438001175476466200802481327959653006818577431867334001469278029536765129346787451120478155015947530278173682344287689939876715455249845981589963768877995038085736877414508801801328118811990896560833311802907794133060737501113532521410982216233748923853139486941207486776260199916885076960729999108834574814240305973422481907260814608255276751718915568379839023836420231363273211608835288713583837489492299855108791472921715914278327384521954224003415020045210553141000516682251104397960927833266392179851384677705364021435294271399703409135127999766480335996621302412554881828814721787004666619709876371351583479687886592964759581508872299044069691238879786116232031107615274516858757724152246048639069397350445900969413617421891793452924705147688160965462974247656764199620136032583862549456113137414257502753502038570304034249966740590250720018237544437460276519280289401778775590261683210013559438084634221654071164468336385843676880609562666744327916696011973602319704983247153493023370118519964200315322973454603173847063630337188080848142306019888746713849141269609391997642936348939368182741193831903216392844778271284524777602311257926265780667179993197296920259145355560018359914162675691275801692643939337917438598403598605845628819540348256506212136896184491970922187389708270004782928883016503766557222320168218305112354233081064287030710449949981918067880064076736623476210476569423136002814804383968452958616276014118337281139217305921327495734023551956903842108486419845131893267613075463614086690799334205563029449341596994587537006733155303796686563870000502591845452785233232186406911181068923139122692617022084481813717644288747580511153267130510684768142002249754038744869888792726144113137309052414095732463160447261306163302316447432721768214483116028490418619610629412740436157863612760906278173000840805686621955479469294344384396445114377646372802208037331334750206489735857247051832769678006434108992052052761976145069285467746363553676894960791299342961253088933066282350516963950648378244052936998483071724502883364605634367893718068389926690898667118293158741445516191057350508197984621439497460025886515307616165911553591184816352902440505618319045658637071101889149228032314805766923049121261077807053349099882126925387173259138773695775630052505216648881430684989403683711108117755979879698971508577626670992931633557246214404662626311949369686510472642514174674463434664200466997151923869774785607513455456765846971573219489052811327463967808186326676724517529743490552169479170697198165904684839086232223413076843770356773706658875648306650370479013819689523604092418356987264150362338342805329336677963565653003970249918333847772759918348462241022933029475406975659902973427452092174118162743164017408402783068562709489499931785529680925699227023759938289189424705591114191883094588736653675653102511486017199452364406845473428496825743681962164335919270125154879190589162779486176195051320816450248887455970263832723025600036854468639019238072478093930294515787151964167410554663553508627019347742245517404550041067182673794314220698742800403342673381199951280652922920446802314350201396702418416131420703009805334086991720787936012212002480352664492411866652294683238892389763294257973637442525094650299746871870202167521374936749132832193308868484146960593652840601925519945406474087016153095445634549407461537230008181392601717379013253937954886549528713406915507097354541285261659878535032957705423247436473863208242799495480136133393123869794752448853656237452701180737656190522306705114421584826721375403105798916032361204824513788459592528434451135507478908035640432545996264007628152594038895644379506658375364582011240149513535164151314555688640628129780281808503325544534731853745687343251111332514693962584627719507686836776926911244892175422297263166626113995046760809112702358354377617560226075306873526956391514264884844051584918471910064702583642005386153450044883577553141401825998177237776989176634283673381493409341825342474580938642903772202398925266461249105685020722781448043995339247810509748928540611156345916674421698257737449040626041178230266809372893641511537504469410340264932795626204909438212348459783086140536931509095435917144287479267602447606570788688008794661172327024371362644388623828943573333715972674404251464386795336336427015438361918478039149638886901819902780734442234931329081415860189719554992232875412132625825296128216303124632313597319941790316422833432937053201246470933225461163363832594914577034682349500647764891218991102958486377785502029429780735799572047886214081625058470951457126308969660966733111688688559885896740820832096789530086764190123217813543212201378532778828665455590188045833411392244144436499509224091819584399999579243954852947882958493718494852305133287060730978164653495052934251376187388884335394776182531960862478464437599095149097832926755108112638214653059304434817973224005277349882727636486238296704933148800920525968317824945572689521814526984906020661381570151223858743542679937086949380126560303832855363465290830916536086124413361592147710182121599859325587574809068850561979367652047907394356432612601620492405163930128447889281680681866882866342220353886546629500624531359489479314075247466832825498175734509108014367967474420545854998156581652363143104770484034190498566342683888684210487133172809987525674462427951377909536866071865278172544056907901563086889998137503222263208120421447295241484632687208134656282796039098670336479339016252897516401253414899690222291802016185836918075688841762754695669228742264754184590442030754031779582868141237599810759690661429867210374748841180315144151939650227855164566907501605786018358431432923963914064659477622351003520711526026618101174832655592800005046524539934599875348359956974030708731542396316795941615880116420619270880833778552104778575352998693643719819820598439656492236872712915958364317015493090111776870152111532084044299021761260911686334060645302720622911915811006533471651132594840230231280704049540009769679880276494058305846624086938995625241407383151347707555068795453417333698642347245253590109918993104543785903959993989064489898866931243218329083181764655049488110423197890204903567334788353667986786160587156153307904506122595767973710672940976532955468997916968853995574851753794176770899343504619729698469143732084915969980179859929568504301531324472483622916985732598367764861023247442747448898825904620298520483384546136992952842312482468320368661564085318888609325415852542479546299264477186253344964273213421184808726431454568516513743969474481756097479388644842423460410473838897072464618800539254349775279878123247506581111699785081310665324491895681468604566253454074102371454450341795155530919596591166327308836937130837642039427396553380982886164098967096022517642857791361319808240918321768947723367773841353802651835668073585825770811292733614789451584981057692475001182759017087782533593644695439101121695701772026236653865218459581778513801305231351501028729457554434912940349148183683856819710285047325066539995734517155893751384592388153255581119540421463121184170997221645281338380046469291448312151666077545832456047801931168404130918190942371050315273011493001379348777126371679190713674206430234334754941647702337252876256501962433954492345381967305072812177357037807895677774700726152196535990714556738763879839431485521820370049465730762352819884777576480254864741926784307825077475066768033181028669250406276720261233215446452674345403695225627411733164608792571996783170131595431803189194854951485727998812544750695361512909894044814753772616346416361436751142450051920737224236982773179657052820022532767516164390419495222822544809439259264767605028972817577204423338999639557547660774445454263955107967291763019210431851911514382496651544881630379518316500207447237194059085036807142350026827960925974474248968688689487332079222241321139216885221377208145351205751606685449299316911970235599931992271997508576126268932904447978897799090908145139061926096630281563463026483641848306783076250728592881330036159313077369921383257176727123028460309742251902923384541307080185428418429934714655557120836421950312145822273851691183244855923717202708511506489007534891482224113570056770572937399859767014473802644566647671179481442249392828116674973852656671653800823384905077959568501716932282142003091301109963654437123638174846495500154040367056731883426377122581184266866462304160697494136378412285480844098277480182767513604036750808244787334747142220110681120507160018433199279790194020310304203767267920719853524320253960935719123690031784430131591711664456730271686425229266232614700054367699536569320618558812537485225696905215969753694360976774047135096196459356618894565173838454713476633574257135457103803991830084885659128011883767906974011850210767306980848130423049921173031968083476295370404815170146051518332549370790012645702750738330855021977429645399834878234002364205871005944450903642462703195122001930636780905333964621486138200220779890097125962680436653990206980775997921080480141911465166332665056928533563909185799686395152370297235593369926044998271092616771551169716949649962600949039026663416129496583859469114972366464226465873780885172135065991513990991151480919625444097100324108944275593099458973583543136863394684480631960837474964945640421594998028144747958888281508203066583152662482986139665208939831327929633328947792923223339462857675354968043785518782288267344102408182193204373222715882598627691354004029983320589230347702801923658717553928194967719281371061801433857983484618434860927474975034920859564545171695771101796432197368838301598942305060395848586784824756688776096969027059042802576165623426214339195805631350077586775078481595137965618042304102706459364418912013964586726641903766187277680337229144717436288457287805331256426629538317912923479616734318951688422750034923618737728610595021986842918040343982936332719107032262370246951610932970483367680473631797698294705366869053102566218174619237495113967253993780842971750564810383696899489430501177161058763011106795065792457800661737780036914835625686129800682048088366119192154925754491314385604916148731902763442123084973701463273126190001324582833726554257702185409947073819435489317669266934069979354050982676293316958313062221177362955134574109615915142723703696895956108685224864178768997348775506401902201537123434394378527212149436420529438539707252460566459829882082385079829713575242177968676145219730495889906293605826671645099166689504427521567905732457418874438413624455176252184374545818233321269514060126850554117942774339120521776385260668163876272794833804714545372130308529750619586036736128504361208419256283570102810294109164335482741503477651057413128687078052035819387297350663275548742981904739387400502648548116790176699181110779299605213485192813146395405955161547564965676958222496026970495335841382957657459472767733915279679812935495843251031833340008006231132738412593587806969434952322403426900091407524502563714395570109593791500766221993027546988442040591676712179319035763826758858665990227840062073583072488796701899218833575613142791134907367898950669954652238861953242837261201612234469069897239570767489422355271332815653124907920782422267632083647254351321501870884538184958519145869948784335368459968427131001391383493431192162724310081851665737288826672239560073059817266654637116198427352130076716321894537791008273403350598065072411670210104600996084914689819496780523072161842723263806664292046918024437553425105253933262282136780051624256111349665267464670780097567841492922208452131476644043728675727440152201004362741204701042967841928254134008413908781431453542717249453811521990132750909893384088511450425363253804433894569186296221891318931681290867636935554317526043835289927026392908260500005386640579576711260253776971254079200153434497812529555048206953442791928590269150949877684328255503423242734287071701878367517081698393615735670758361861703182721799793032438801369453307794201454183796318909289949486077219354376907620471992828769840804628828121107917393289961485626440225538738541156511957131203689493594708934104510143922703593870801553587700928025205492140566359872037536906292018579734100042257108936661147907910645977001177510599841332998781138819193398279555677770908094609533772437086117658223197402617294248262714902776542521057425375879694609894042899577395872458206448197560907503449458533486617879415815380658301618751876830836194359396754026679261273076257389356301192366351493425058888476890157580407353067946568399443647571025716323268546424610420349402750375188451117353149834214301871221012738165306351532645497087199588710928402213035121458640800997786889529747687585560624662409673201488181079927437110591723111096096093693830538840357851071189247821978067142963400348059123837684965008280549810545322002460706552382059971473227689711551658134166414979251562877023212865393413654541910574051068248596218383272828782979342004364647710836813577889155457662530305905247025198602340975716833136536808287439752879507067796528410142269660477704751063701923346323996377245616918719065927187975647025403524826197666849131623771284234680252877279690779153140480037458146398799858690378587299107590406293592521612592373253024778087342635140285609892026454170087948961314500289304028357067644591585057804983178314944013190858133289624576303017641609052110971155574961576023938971970583776919965552802896145446763241279558277808437295241422713522481314922452427307380960217846179306537690031917897775231478564925052521896963024511888374561900191713395349336680973948823489644847033707168176151178208268556338416709507397408202342134786822843230775960257044218009984629544448625362742977811118915027135673125125957705060370257752009491524940887012751072298856552152779777798038745436284911505653215353755547492727047358040404892808957133457147744635293036445498973146106775240128143080737007696730243094165558972785764229737716265233251338023177110892902824462535850379791366580452048824449367010791886760042905898635138634854356214188252434547400444881663870621322039721476845245196255460818597861949493400980751327065429716543159245026647331333135379609097742417541151438868672658008026939964248781980185852227702131592416452304093235589762429522643328444493511622570050219924661747562155259516780258672305379200641827953700856188515281219139694629939521922294838647366920975675205738637910693768432173271982359690385338594217841890943414853836709868785790592891205705566692947118025750941541963146415251952607871331547880245843747442945220491549616891726518370216727678848195714542922798867743825959519615613976228418167800500879274825101296887131718472240178450382474663513879090077349203959055884476283243642181096924394663005680804093326744727083839899359702214298233460514836889391199402710215216364721042632205716992524402775505691632693691754121977317534647587792644119447956882776787148034288877693497798534406281656438158577619067819134714646912936797608631491005426450349434819980225280541488287192917899605618629915282943511104148421990812938508566061995722664336262680847470042762401177785466651483963534875315752895305302964424026648971678491474880231867081533106111578092224766318533249945037957212791707929811359270953362086086728285271030718483783769944903309844359397156978907141873278066457571448687991592472093467514090881342516975339033663476552483899546866385565602327111077653795126080019783501543718738239421836070620389743741837231564914914826045313483902061621234007364734894440068604262362595275661428353654058742399884936973569883695517585457245353753389775706611544478845932505777748151956404680417620953948748269642088369294058531301620059477948917301730200396550602012214576578308687776671740479609242484174995221629437495619804770773771241696504837061280879887147574032586843771309465962157411634553039125418381755541581751725340688272934362258529892659719664601439216382778880334013437730814132924456880294601315913231360298297981843368173254817314857587503610860223463822117911936910425154928406867093438919362187493128283514418171921630124356813126462406403958666559987222250765355130243880701447437982544419713551312137476752662332887363811086118257478102206564344181815394231092317661507383463940775547545360795194039623604709340144388589782552948245614551951656808478324029453842614270657414472302951213101896227448432791403964378896346029023947322275726611697658502414993067132639159478782456494544425986149345458619385055603751810855730122887413634324610117573840436999698524624592043511986791750759118958000797759291362717016626322686567347192324302598152535783161718423714093454518822739373300458667828175055263617199257798688390716810048455819139800656410586708519680956184165088571647071874874112295299100616318544685633345529969789871099242144832335073205077313664490098380907944791690700464655091445653853618684143814933855744156644764280130815072586558327842256967106883615777768486563556289939192052125278354358896818396757126807900136436245414501936915680282498555725440301620807035181324773955146438627514776523239802780893227026463958614682615597888545118642732764530489330726077894219038032718757283564814763093188180355530285978313790079360485422086065429608835371269257172057881912389556018474318657810533818726120368115519503270400650913429753598447832617474238273301482324877015991197091415642397308490448756538194941169900181370783886515748481481716907322857288748383064351151057651309376444286548283517537208422935067762213788962695969990298906984516348342562461398957341497247372347965112660793911122288969832785579466952517672267335061366090454460508203042406786768981167765237218969434758143355602154121482370490887788233837957608863480520997464310879586253926806829792878860794485533680420198512124239800435157277225262998730093918696253116553894349835950678531650340789944618169356518653645725502610117281991771860387493531643349718996855748218107498221744457804203715788395736980698461490198645321200984102188986758170817223862488124407464942622752455189560501320714386603289798585657266860617390157240289132686202936440607869655051845889584310883029875835338510472561696100244229517696334817918389998724782451732808586666413391040295289324515017094893724724714470820065534351877479555813557339989595075682893635251372641736088125680553008508741650291230134277375318831439262480768958107837899684019199762670569649413441639935780556758895761853682398616369099817450495216568856357702961903245879127482471875023178040874024555239917584960629721292776349131915269333389099703515822552491281299178129641324888407527453116236161307960553763453301430143093361290861819588222645253693029425527358928111975512736760636820782656971775287087185245331615820724480444799449886517403274794700669224278588371716354906013847830945155442737015787976060467336575072742977548048452922896489717224925274830131186018129129087310078300595923513716758648416952940450437849461155830975189254416236802295564199723389445296686626481211861972736529623346959543570438374902925506150179515955813844248608973891572461356050546562414964049438994410874393874234501745075164450867302673288181251581113072785169207873549210254103464842953964861165962282056109855534433753466143084713166912108092315822511683207280343970751389687859722824784145911549925850881090026864076626396575543336446033491183339788335937000524606818949445849090032871982869765701830190737229035337368555085768545951934483339643409690269515448425887786787900591681870224464533524265067693966036380020890301034855643456169843170213704245357054109307940867321395825212422243939165277235536076757416733011098560344116279964898558718682657048465167151230178308570726601973124922322596087760697568471120781251840492539543432188599305180943924685577992801766920426709191782387842938360431122374435266979756484698339045717381314595947723061443688946092798175360887421780325694811785069119541023172830541519366922704795963658811834732890917169558648806361555075603639018665946716853181029802344848920029603038524534166428738632873145164991319294894927656686932489720777561240682921960465910981341333226070474441653293107058882272802489115599236026192575080108714817784093601688790012112072165453668623722612151223603140196868284276778698795224694749363472144837728334227748631006623375343545940542335278441584299578901585073948198878370241338665384779688475065526952927564150760502620589945400025786389630291071987529575108659673360011895950956781717928951531422736464448352287994748707162362164888437598760200240299463881137124402331660316905533190400009413673916921028303928957580931374905350486725017686317283053714439592988508776429251972202189444958191763680195579246226813262837506874452659372677406563700022725725072500944341139939058190196371768800703394709554138165080233422729758320986000635394435106086171966509193343390884774464076820933121722926765320250690809022585913122613494114464107526756298450145137731580859151061538712626472424367392307739552027950280366618058627582136974419368369894888673115663368356377480960822062234194361550291946274983799642727134477390272847691627938947847828105158691199579870311423102395121378128292028095524809190242555115894208651377077720567792767569876894915474338360633360839720139268204727148911876710118759634143240144774838188116882279037050815092079896217544507474436664652818912990960100796609236888335998399718496310851585468414616561108838906235458449516650134669221042159151633843278492260215771768929731167198715762001037197091676710945068373352291466745149395632901313018136590263008962988000860307794300023765726061297312226510146336046047036995361591873170427517707056411310772943711264811552313714750767635953624488637671669162632071021327460001047318707988830765193553650151301036766559786766558550473927101959011721694969740100586902003541025396657850901978900182475048784079456527144611655485211026880543517911066834609375110150742764725528453088320603313209980698060772789945643521585546786860178393377016704475077636683040106321369402331531021499494437054442215974884601471027084282627556313656490415998356235946538911942400751096509225006127472609892465566269925323026944591126142313613305507732930194318351532615517056270898802260683555298670153953941870273355836080628581722425032077037725282279530436658786992901957763371522245629776871768797403708820188922618086953841160457979080832790076018932786407777529354489620136763340065480740710143924325197164692430286549880670515139855141550930709208679401446172940227983011253167565839254256478044163985804410921154991405764481569910231363329169276692485838816609453656059965809089206736450390438076179118834460583245111642373834155659268541651784947855310034955300581044630809127807790992437369712345296228284998490647887894676322583753487091560171658847239417735498562704546795032293169801188102468828387937936604479128337187711766521129890375354411159246887633438710051152658375398239923250473914253194349366042408413876319198572943192944596480827166136030953014879098100352676263046466494608402641211313720023769796490171475948176878584655831117827321661299907458072632157490545713446014214722582303601990157038983689743612959703672524304711771773858755113043174418719999187433814930015930843808484369325675367289144825174981038042016087560677114432588402799721214994304375284477718341674096164900832887409995145671776892136166777453263118738129166960878961721570201870592907542937716526987255572824468992537179737676101273224167969599071008723809723349913645505834839507408703349261149873254181724734464489995583530491881776088316236579045360638037399165708193763397176465915509255855046938719410862868691036643552592978883258656213758913055839916547230468782408208047977701023141263066192418008969478747875348829143982035233862364749274726933819458812075958280623662291237284950409575549771834461121331782476630107085210204699586052037947175446555312146202328376479690599174815869107150610046229831909765383531677463509924256050206703696657016512816072889410243637311071064191328792789671808057572555066638553665174796043841348777992932290696355034603353063807634923158442051572101511800660608712617036878126192124729472813418083020777579990053394143868814829765925682243613215734317119255029180347801786221401317798490703525344697973654614878185078495294413511652491649133327325753043508420882551672338457598097167964446292145347186618506909318401242784939070103778699138051582185913637616894953301736129414875293479243381497287198699550076308063526384268664114562464059771345287153553701898478618162908198969983444092467064691898772852870165420883092923257112155815499614696636793800265464630699487353735453379769350905956504657288305722820396333272732134469141745265775416247761179701484138408647387717535764069819876621217465659114311978060389849380599796228668150011596077670555030301204128632621451022806660022791537216115397430007983961516683871257295726480570898957391708516380899849920309408640504824033715811442882849023220852524321544721032375786712523551026978965268540032349043919684511330554183671644048303911095906688289390015738392050796488850076873580298673248978416930279546056790931010765081443609427489571863317589054235349726564546458151207271174308890511639368642530049578619309278575635179135583151503257078630839441556016540435898688660641155185811109506574388517033931029100785966705660487004958293901271480471669010874490428546151298305683110024899156135081538883162889701828686186342128239129014693609804686260705896802789880491990253078127753892276567322159120710348777743646174377540365059049472415769013855944633722761262887966970067408717838996855573395961152231732740243646992472729865195023285039276110319269312212143901503442683218368156032920037410047399115916668261113414932148816961167329954541509163746403860332554626471379874976377634426398590014985265537032349427855346934308408606999564181940901952041374718993947641324269212703944938537423739260825406094589238590607847552977782724334615636750685125634382097222405460033070497970182476167908319256094242434086198424601071475840774329102550298003772671356039560544541867569081830042301615457866985758661487898499510918702207964705979306762706059888893412647831660975480451368999949001427813883853871876681104759645605739948329544938193889395857674424769944628873345322693590449294879632651680058345484244235708594557861826544854044009210185128780177628877702027586396280946355870510878866346216262674237772272818051680151825497071340650151260559405633843207814168074696886176766501746369687223111465974070173570918330438822373446007227835370861288995474522838432235404193939068519241621362721949830426616848068662183482814654898368174339011402479886626646249294442748818211358938505587855789639629278426951209232980951714010682298080359275828038609274168512149991123853643080000039573188974192106695224527670211278862040169653742776661886487924486236387386122472725476251061080532436468953570315241686801247212015915928459816747464612655730843099735211904567535662343978651313900474843633912123503988771839949516628361028349734907458221990695105571094095837879428564094962452364119800587707026461495770235076527064718718257095327724817575708757275532310737369153036435785693285558865803779622654033034182696338839287837459134385671851226875454150167524109383340047420209262320337961563894948126593263490648988782683031820355695290687063933236148188937125735434135629622253187463631099593153359877799513940062472146569363843108389475223715945780680422258782746583584950766882046237668393937200135401888234253506311175374757160322363534231002675389870387137699880203836966166766093109114716715832059351617793870238503414479576321378516945502554221749100637931820892401672361560808917163021972796006423512876996678952710956928622188151826689271947500481335418278839428958606109783879473411723169506989686028486044225734571879118124621541860273323969287968237486888430490816748184509346816249120951471814010843720894838566163835071973699127467784689283676915333254432989981470090001209901832024512264698603120992736255928398164870191851893505259213133100848991192247007785549623802160261504125723911213082283465160310563895767178545255601994654851631699920796069306913311554684046088634684628236398129493366837916142805255157525966989660146675112145915308197678308354492791395666014598089223401798484037040300790227485744105121970104992341974604547813956711312557386470635027501795068833960363404136617817475726559359885840638128194723834946213972992496006796689364091398927357407479096084631313986968270432205657356940691431721912639469202107872240539889425027949170651565549943174893487885707660375013718572316173463648070895238957358009308033795422759798721817604589315858017065537297748395400818716601369801677778492805325686337355665226414714114946363327422015120006000665718458255821756401117453568851739756205641266936509645016954853625151682700480316134938358763059145118674208982183103944277325528223668605833976533738792542549976848317557712047245435888921517364151430910993132253285171356961641921245186498865671966484981009764067185749829619492075507687975150883352198424411941756428838295581737135772495598241330224029772149703349069874696237358926489951216229943275594284139788176388801511928916805226399763181406759907811177378938302871461481754305041317782206518879997492609620227022723358810530277984046535818419603833306456060500103737700651818364203089902456978569276515004111381825605332331691367610504694015354677022517459410088885343952383530929609835822078901128518337279987819934613008200054241179947683479350329894261381473419211876067826461760878739736382932365125758800359927653504653722170059395228870789472104718080099061217459582965151543979758506457082664501876352714546464839710467471007640130635290560379806071262438596629172653584860820842875994009616423285086376230559401158826290959636422369580720336926451527202423710659323498443907583107254206038254640450039064147373110044139122533989781730743617529606502620887522034742717589130923780563950191348361070195208376234662338203815701336100969164043548464218913157644948394321449887135892213670957932808623400964330321204795602091954927586670650092914316839294650531527708046659554905473859925106307264974550788822438347477360864513778834978277936377126105642959668652333140083056680842010600440894690368197134993766951444392179295143224557052801897095070138450558672248933496573797164872365937270096180814508211478476318234150779782363392000645466787619695794647751315752238305354085904270337251814125215593162371248411851389166258302335614872757587874632691724205906576382881154226708625437999652081195187830982251809902080414632395681525463733431994267320653758332452847177252753663378028973922204940438600750304639418121954788377605386474832498890636273676657304617927993037052987344862310560946893488591224816875303744209826567640806621108627116857433993361349075439858101757453430889880419038728721224607766727187325582702638577403160740175027784665857726484689187448371239583419625172459244486418744839864040731460955218209830886480252123726890663350056775663120488863792978071397543903664151440442083805101540410673700301198153758496429047562931090314486578601304873874117677419296111155745843992748492162415866453715828529213504457967682895797860875542528373250797803439876914829953450937003066390116599276609415821280705611170924133656686499642576488771571117829772963775667668126788417787098066007740761201430970081722408909065955563845940181604762722400811893758515874574481682026028825039103213483359261026385516838011031976069074493247587683086433207158219435343609394621885327773479894646352230911724631611927263172344276869525741369189974086359451796860427953777512068627747642868383343062729134838360046428044668392756216473117446928297859900216334670313279088986686927805655476615588299133873265118139598929796520014844063915964363928982148309703935390786714981913840935481484347415934377733255139682232725759910987767624589892410364030261705865010686686785178764774821275277885942850625115428536484906102914847444683898643019472866347591292336495988636012138267100737450315159121982657651759740191338093641410707387025207290976020823094128048297902151901572923801128322447627203582934056372209610162197263416131657884881168999662994525166624196851828820746006484893049411146928675234362794439804270100916691944913692582921751445088780775519579745105598477879290325581713855825166040894708697054550305361733200869080426188195787323414881440776487917365436915436001319891891669844206804692000966288300431442968919973170240320146920045856160127211951211350189116469575342431573631619408840827748270573406329286342894151766256908550481170483056715905908982415140271173999659370860367777458819176595007249882291163622981597237363051233533053579241466299432938607415174771890528041021527100655696942744692098977861726460937311883384718559147978873490969032167922124652950276101794474135453162706978631059224024558251000567666732998210394597794285096309055008438136258171166351871418191689000990578730954366585045400500822774375808914131796386196805140971495600246877504860029450895689382325130784677375667895018376801837483556875493675175188741360089572781124840331357221263026522297326302484286019529190454878771206725226544591456717431097791422065124053531832267074001289469931726849457668102731456325242664416283161047522671999626975599445663566543218461773782571996288335847321560644511372601647852563224371631666445321630329454081766237410669195689014210381767196651743454027191590199420478495855895443205057344411927209685517435506514946722467900898759281477340490956143613307719533508823505072117957852457551542116945614038198587182961473196817358000521433306500919741531069501485816302433562154265808337577751594286797896003988906871856028042824571672572167036465866087628112013109415128983482929931163934225584022242033929321181450460569200715806098523594992316219036502916115115650557808959244257312383018459745679081602641062837383673283278256221904872521961801214286436052312966286445836896083878094749661328004854389677095656099872865071529926473905598159607444951258450014750676618031654880013242185870362062673523043629904700730810940149662090401526653208214284064445216272370064450306651875841137915547435481954170108767664455021864506677484042455923394037341207572643353448587376560985419194894190415832497490877648173421020173070881719194624239823253074044521882611334724654208440047575177482159428634831316285641287404772532454437145265574678610763317793630009266188969330859870609910173148669674388823217812828054529035149376265327505741353566151399794418038075887458082118881569770320822148166398998873944867791490885273332344292962775367360339693818367324796813910585219036818319008757040519586756919175673287811718673792765472738444290169911845523504374872007924510583528775748914148371416105974120221945639583163909249689342415978375446831342875501189979581515030894513213322637998492161369238234316173038350769944075518547517449849622887803298826975648208635394750780432261914152347341417041024218876239537343773982893581350616870968841307286405338431157755837800464267332470378553448737094323499788535110705883885112780519452341252360319925349620198621468825256940154676644335881946964773118450922871765270002649043998606937918562202401624462782964547900039508319622850535581903022330893410207185937182665949696070773539436005406750133511196161842678788220401234954149979303969352170703632805673448918260651479070121398448580946260500067471011527711918211419798596006880881744155416510233067242427506668031818447677199364558791941849059475859096867887620342300439693266686995283119039082557818671108742642271598962600660871493709855631956917367803340705779024295790844004087240060066171122102171360714983739676864757449901219837303581467736522183511908283789275196800186346535418196893624853361810061010211502967028644387322141856255931622524228132445211286240253238664463651108549035913203522198900345402193977772535169512328250011840399386492485808649342110256897417531612484153746634829435205370311926283217564233089694055368337771657276613157524642890209885902866696744200066543512717458912154236298344895238987244717691956190218453233983030583277765897632204354804825845602500452530123162491168046393279725398141266989545164518123091762904429685555360477396937141278120250091141990581519859261260101624273988888851729561986260421353875584154080062238727405495066709453502182681228277592624465041193716713986271695142187017031629267647540992438066770825299215474849835690832762580831651485580015725062929753012695646211327637904874541196710576897032024229632863622031537375907427851515099190624324899516773523208918370249386958571634993014784865784910781562774270100436301544649054465959067636040526166977111286875298956493171820754553900702522162723003350465579460826171552189309352988370306701043380582517929216727504104886076554626504816319121420021745021279340859793040339722354499749956634462001222776358267320982875353572367178014263984446508542779832463981623491537270720731606085855892003098137913895119979105843055174124996449919783014465515501429576303711091014874849526728606317040148388974254889083132120551416734065445229673213590998239892962569016342323584943130908667358151808134078091187818923300368144890672474875851506833623150203086496195372797913308874548875955971672727105421778707784992885349189977511855396138416181550577606370237504263494861964201395587252790369882463216428701613695901802606381729545235302263446752452149718805671631317636689323172431557740457614132329199132409297090320561220443737284423867935077730954297914547153878828015672598387475202572352604138464933535147258136317936109902213040523937236979110018933384806870140942796621066823944508904371051594396401477923520039592102802552254969256257986626444978963582419396233332189155149207865733388072111701821491220245886395330486915841964128928679534175059440570580606063080816653172762775523817065755150914217687336840531168439828688597997570588043700448236646271512264708546578060457294833770983997597629647209808740294767272284115071896673819231955752312286431175382925716499225990690792543064083463957802093522824069473700062108425571597009904829854129224767628308722960036616544429311005728454032934784914313848649401207077616401960827806740686691036447634627511759253351857753428205699848337113579488893146830525231285151700615409402684769770840418140542516680601102600232330842480873479728712341795743091347018118858519503978802324163118583447477489434560212067007439276806896526843431502434299677676198045054485294106446410068685559136182773930290665654106192623993661047449129908753001879939866823527100182645981695846095385136056359047977220175553971305861835915791630780533335552896140293176148827130620143884703376691051834759843522499388427581777952935484444931338384019637890642047957114954162890522942839163283781286421044420706612954693512393727453116370819532385884051754431144715059575101450871627975556920242093508441705154106297093257875882519044615335198795100489881342265626944115034724122602021760134236629309769313686864808832376152590709749216751479568600489323456565594293420265120394105178936233771491257283591583422931367206671192402797251406304897024898118660077719818633358087527523571066805739283883166566594118690852598682278089914854708261139344251296547339855696099599180247084899333629444555861866014439703845263195542525524663547679989915401963627323360133218471312391585699500936121980711089049761920492825352506882731395624260211624506263562272768790961187980553598257134560205917687263440411239182357939132551815906207871829865898684038920157770388824979726594360678352975964897911657954140910382144412279126901345509471494789977421857959013350896919782547983360715493693454048909437535846410064295271063812028843756968327650679973232715850404133366528951401319904183404843916870958126110182223988291445349782759932593259236909635630403876606063379544130391915382605012060569966835674813619217578925143906877919514035176522921586720268739332819172010804531781772986625475194999535580326387682227793941002829947513947978182603765260932668674013156982222480906514030359691264323720258652458104133730045933818892465684437810398222916210186972670652310443919627051301533198515174544551900456870913129285210829324890401655426286451905709919172802833157162086550270135015987950568271390500020336025716661074654540291959701565984744263779843650691044233763493632334557956222527284441790988993458419787695325095406994442321627754562124415326506064275342269664150024025455743322618033807403749719534933873889479205624168042699353443828316042831984294286053323775746472261180955030567630462011160973753955072924178137297027926238185737357654209328257122994034787908532301525022951245966733638348835889161795826137344974997072354229886677096869543606134702658880637581339365262058473551973627203121769368910224909579061402888570331695028301497513323812187547513787303339813259730129770427112477772170180167304117300825098305964724077457976587222271561216771451392176407448207805207441178615335520885210412526269399015313312753672771614209380925127011936237706929007611582150000472861474717417342809374876804884106620036263404340909256552046536930814188851634226330155528391767381289638116527457140542578773111554604743491846754107154576850547061508187829419359538140502219602860166833304507754104683995664094259255028036857780464892423279982635224651861608276679572265283144179247584040563538873777680640108943486125683803078286873522413678944678068777872235879244432034142273901549224408147127235603467469256357938084768432300335936679326466366570393272505534592895902296296964471766031487954500517650585019788808957979027132412082290895315567612847393073159152348478454039477607964497983939884846778921353515137781492091424022267913737426205236219355307586992684963639228587014857116544563670467826525894755146008507827970031039675346009782505102537050773609178164668226107433219565858543059522291554854599887179929351998447817145639635057216802102930064707782402971872423072712301542014264857818381722817693702192647555052650401851549520912682588807232746871665780333571040549591216817751503466500345456418144489432604459793809229541322044997962107140304045911800684253025796902358125678320341390719491162988483758611148294775067349370659887778294211107665161340604937359404005062683030329134384969908126507860432869919409045165526126895288835976304125918388120872328070054817463272071119442385281179652434202626497282785795653780066346681357173210954642533108886153873609122924812285403140681019989129745869429946800328336326201958070031237545407171893352787074526203391772988608478563093515243895484104225500084727324292482755628380555217540511836040084138772619234999324548336995000329954786591840188622501311785681568109711596192188175427002562381122504718128418945228952970769081034734790670266834945729928098071880938846338154613513313243229432368679661942173886189448672146789666837163455310887041467356522366881337867749332998152577721135968312916037594674570978777202839677102424478469291485605527518075198854106268960501228367364933431644201544941468934615242625566136970356001376429674780929379477984705643350503775754134057418099172730050365140846826671836778777395931533184816915603519076008966371553102730840842135564689779331434381176257183284133349390797704246596023008374145432921099761896432992326686809693034594724283485996364910584595524099476430684649063131255695023202831545565153049680478723178684905153227938928862231297684183627767094662912407176466005954606457620019861891634250222250153610281682617309880666804175283918236729524589491117920847245567506021790351292438178910375203540929359714325257548281892094273414138666879623573393986748079630405696758382790146041065297405040672884983879679543428875952168445829753906363337997307238463692150969645184248730547386540248976869646608964966562312534457062912760966544650026626375426406665396058760986125580609268995418575519169363611981857331235754773827328101615212485531032576947996511960592634237674339135341936587473661144944077315683012345101172040088843392579403679708407985810227058086910694266441993695749113689199321602137133415093998604430945141755199623541861090660482699558102660371568345743551703914936742402304619225656011713142610702937671171960060438085083065312068244603214862659984667264743447924574964510492922604353048843762212389671604031531740148343936442809914083523784594319463545033523533042762680595115965530585074368577392365602274923757307518352122268669632906074732129061865284870924763008137081636963979574205111322337359442721021476016248872138721327517286186964072744466387817154675703487665614578499378322230683649768664038434771042383461309025647494218652682940196914914812433721314338701848163006447694365592292816917980587871707178953735567033172670799921710392380361486656113900952277894565289039242335277016755652799636157288148614315210379222582646554991627549048870940889668590780422933285573259344392722392118114871379920892652367460687731366621138677840832862515820381248825349116510731277131945658797427646858624560917173985926048523071586889981069382576869652715949864893901150921624230790617495352032177244861807508688506214528023788019572589841178355671915949564317508504757759828476133552687978556785279737785042811895814977807240783456131045077126227900535530370914815739769331866070381088607841201761357267996421751347072672073498162996570718910638513632217193972696197514390316129763197046965990213539418821962814822049314166184135535457258267054730255092629027230575083440156693139721886979054776776646828865014561317929206671260315043282614555955498639191150770186940262684554152926660746106960371278063258259614175705725607585370805305008140972803371957243726984988604651640846077541802962406329313355455194481288792560462888841069859796992606650583805713018775289515606452330932838887885076415387207146815240408869509518652034014998311582587301726934880834708548071613926848279728459673061902907866198341227601303186718300480714451575107783423530749747789195583608406140458314252692803639483418072220416059323832130688870037837950872728449949543204115531373582485329758278691217048004697038118727344637004125947043209040267453854840174107840544442986960469461877138324428169763823535847479437021409892365303739798907549257133545108609049608474175659372077761034411631758703250262407861329269593939041862993781681429396378085332079134794842780054482216717222505096042956421101590820537146438275414159775190330288076328553123490607409528208966273608815749714531204108253287588152279642068821467744272138109735015960476513870480921591986393364389696498701909182161761736667501719753928233041443493293343053378223640820826939537734329947518900760288449811993735926276499350505733509757489148553103250824812715581760851026645526832134030191139586719251508752082059941718264766141952937416801719635708066061558301598872869785235221207544233495357462550617452244279893699399133729259404076782769854101561902987801103008491775271366421638318295853836220521358132593162525782991045722427886648256852333152168342116187936051649237816180557759900028662219330987610878583317367533461353435462519999073723306544579093200912871170595074923155059659168447109919871543039951911084365676876574252766942870618526203698008971493440401632255583116844867446788285497872781410073763135847176325591042354954911511226808666226115773946384821854033372114473398552937205462780022445597186933757041542890783011066312484134566890113433645323060840021599256450049102269184064056791489449424263991319489196383758362908005645641043375795203225004951716038905766803909110193776679403737203194398098410533250960486585970072867255275861772773879871063983067133595442865891239320251374356770305123387446473610973597325118260135574390640483020979183310616235203721212066148439977787433007509593351715784862653246040276421981045859227601902894472891422288432211268124516694489296877310685611839664550042147454022293933292782605716488367498643749081986574277163999312252931467868956662375448152768960734448327783761806025489188519938140429651998895524037642108139783937042447791050836781746241020241523820492735706259172777383598359375832278832589758620915736655902762454350106684474364074199301191667003046273417584645648245200457083084838611792239269025439572272890024608495665118318532675823256149327997330116963446399591226212422169989641683094126096662366478913263239653651191556341722611132569938986896568551281078330343183542568017922258580387999778057835370721931183265259709985787358142576588534491341897219109073815241434235108171470447765104286068643636106279461661604172455553429790558184627574784177453642281600365691267549575033476553895762880772575049669572387632515027729915885814161429343406191796508821047981514562541118596362817784918478795705476881516051514758930747081208870440389926036862220436457042490284735711198458148958566134614389479462790936481087422988169891552539824337927410698226940509940867514127886304783086565847095804008361297026931911878527763460175391989279027613986331989421441688013456500801549164272305924350333189172459012934289762681569430497909451303086037750720389797581712301779165072617347304912691852005991385005255330046687896019378792281987107466092779947599295885013225921635790607659074568814644149016849010984034830038035346604955005920165471526937992165826501624277463315189707979274440646029068151958224265897682393273627703777563511956044641731477793778604467378629704998681300457118182005467232848927885683034160584057115032500778643673607373514415072785125197126244741555320640306699139662784156314007953914455916882397289117499660138261417132101439225978651543384696184835896246925826142823994027998219863846444989074862539991745906387416695405822233458681526406141689693152625561252807065028482755779485026456112005502339811763254330665866053816713729811123471914490452341911551346689130314772136204752591116938635205722327882731009334274018159278553342853480851190812620342044965378960358841806351292326970052002437833559684180438529992049693513657248204594973720838390652529761595319710203385972535148692135836954872651558563024786015277066340332982194531956639096067488462320781618863032164895546044082359965074428851636379774856562238749658564740190984069385997887957731002823931029797352845541897393295395856488139963817404520048376231071405900391643444137988686580839178991833496066170708417416910861981711400460988738366974805601090397930147961673418081337035904554874104168726490513815835826023161828821889988615129370243935680549008508580983885108788851230863416763970545514334358183956611015288568797974851585129143351481410659786883363257572842956631821702693843733500360700926244766044162814480893930243303957350788375966913114842299042264205892246920701843302440701647831027566796153595045479155748616732768608627650139506732095031272158879226902089612763733648492340701549824703621142390810309580245763607295367241467798691885361670176719490465425349386174213811523266579154881578512355123645588090600027793687179757658827706500450579319980766273979509234915605064602801874790679499469397596281218491781807840295540042836684821037381498700128811167757539700933801737430686119518158575104723719668636141778218243105318894336309868249073599308094843986718550063960046713909623524637727637886576347992601603549750625194777042004166863661480656738891926386169297928463763380364902985427504078753776821424603393045832874847815120570416352311368376691565718877791557989519500933311160106167727965461375528358694928371258131210374249537865114230465775464604957513434613215645012846418398783090740127800941703796284821719325524901570407460243241789413107534521323420116335526921862743161436170758865181430119945142445822908429741255127619709725428309533160192850406144451587219662747672237371817359474748516516183784286621267327473118902260420047198879411254673311148539542632723446476901900690352024151750553757759797365551224193848710414960576845000109657762677991645106726552769278210562222841759460108017434626871160389129510593201660117794352477566397067106454950142874511834273908208161607498943047199859876002727073027719041783734139764245460964770378514664756382312322946107819091958870740392267154477960934937325508082748276647389837964404651475776540649916336358453580489815979047660496725079517188297459919507494452913675908363539307809397347216553210647303362950618963062533489529519024004528478043395897116997707193564258327313092406580977855183541410100763159777990793294661475185238211815233314625245786897637576021136062836946392625710046550917667634910288823627593966107080655749521116900486876918975170790992962748863321316790232944625734680700998503675661155340638222500099101249189084693752282656555236803919157299563983696852572398985173540801242709181244513365452971302814841055508552136615111823109698449484324635930469361256057352071638377814549952616372849843560993162032118707343237144503072054671110701654831973370892454328700805564668388518391567826703546789759966914049661889345010873016750264524478355269496631324397242694220294256062745394239366617570818168140792706010048576611645866932682589089743613531602871104493429965057790423561167597947153997911792266673828435447470824783940370224340421730010725195480879532519888776678115533276943325304643051118999185329582651399895599656956968074713123869173913290182447358234796652627503980777785787436577869912084893330614881662136302438781771762844646618790933974943670174303089618009953942645058883100493122955557996129151109683741654293349290469630243226625856180400956270263861816577445556007282197591201120352302703789568350845689299647726912743050522396889976325711212841568141601850327147255508091368278549978727680283890506347818592293348540496821178229264348900548232353159460356804857617148187563037497354634028084250751344646921031046940202679239524515556166972893824705145760959217276709704391747774174640097917744564025228023068240518357499723492562471100296221121155476871887189731926715945438337709585988215991154764862818375627342891372903805572481582532849222033109894380709949420403226814462023831052092702542090503914278294812717267355936710291358128697306435005653661100620571694168184923526849775864083733061436833330092136999363147734137942533966882355852010600104467607920418966943439500838834980722386033125810633463920653376258760138022816457944748041450048111936125542052301895457852654239312369067285431084466974127621335712908698938456268028835498768298367402445963154709934123704012788885682677640870024649949754162536366592819029866441487852937428263480279877375771561775295570340815331908785416275743762250475379764476791747975183228897984914560153214171022017902521248858628044933483853245154547141126603258785170348922693068836114832842389956555976798402693292074650910641593412148378288497013113460600414827925674866456210321160909360438467491054442889727626798954652058121008592995399380262469937417386141815510723532890409241203437754013094203046308206964659900832848850213111964292147203995852584319662832717064558283380862512274384429314087967197669311184272775859740939514600403250153929881067264073770759438882877516019039549326904185084912004929278064726394868556317853648035294138622816957391339138895604562869201216459707631275992338339195581460019478404034546818955956350713837922396287061422615471456885961296419621176365640931474969112417242165513215937107738992666618243369051230235006273611208546335469586206701997041091715253464049652880466281367222333324919621766733758088594423016430769109657342665364851394452763179713071425504440185800466450289332099718441640220434073490181995615431118309289470685728450770072249509688367618684803145535747510631149191074840039673069766519341495182134313921447173828640283192012708690393161646948746919941388300527107393750018227573153378670433863845272203623010770160576300232502798089814569000938235839757524442125667382316128637209219397164851789379442665525783735707815311035562509668734078851665708237369732718381426148596553569413198876310710936017675854111214536543988156689714801936565769283611771133131883315152981165471436527996795128236967148744188297081398290174302037333001275969566185446981892941101879109208350163909488074211317053485339274785934000815181355232257232996099481168364641356483677380618793516965441475145841314545360897107391490507225529293129833698511375898417911354984039502984784427319151942750679694816165038332335313073093048495966811262514784084138352130021286552634298527711832032343501534178576166454388354695908104970266240618330850464112920514289789707670791376070376535225566959428970195378057985759580770116609161761722083133921800307884972808593041270757416464809429218651504258137197990439476725066002128355454692923477822189398811930119465542680497315037843519983757860801630441241720001652926672256904332622076548351065755220900371642419048118814746351898549677805990987350523798234804899799654514700638426140715207035866018687183086280154837206439565687952070501985512735419990910856207651069712666218270053829717846650422189480560271419737019511982300731840073935263699971229731033736917772424061042863254191039824305207526750044248011489482382455793561949965199875660879898934826966104779161557434649960673227557969815659322163115009352524028702974336932240962580995269948929749248255905570172290961450485684200591236666494155341575919920524813693545310752815707794794229555683555691286043500475820590786699342328077773163270355692720648750162884689557615337845838332664519791038793025181164382334778347152885594242014009318579751418744064452394854283800176788561444273223177139143889695818484742318805395765127508353748196188843996841045569632271956256407963994906996768332267557099276721303137698700905621723275181598492538327694335097560111346089312247260856184739263428929764894389813340372067174785827794756731356495299344463700212180313363632060373779596307114312789296757340221178205612821089222982200805625827383217239724513902499108903144789005256275175791170544340529917020381988244368718461151146244205533470438412461599545589193391165127328003825866392074878341109002298316711129484069671399900489478278405047983538067556873160073758725828167119062286534508032482007690246955798229167527180675849854877086861261659120000504144442068889703317876409835695975324510283485693541775671330196652321652973112598421533588453781561463464627852499299484635797380889468251252733561609806199452586396120018530147531600769662398132153627801029320716337787795671554821382523723609656862857319417632818686183106650395262726662026450761979895890639673895618905948565111454286205274604774388787714686600980725143610073863874230200618504598962623871581524834274096319585070126656591595875692508649158876805367164010252902069774869651518649625909466422190763086885210268063943701522435400033344042973464442570465573419522451429558567753397619820756191876634087734353396278450301739732364634144838742120354648959562466041827934886341061825631832796598729532459199114890234393530677439737062335476096161108117935612805562292316783210360742308512313792618819756023580805133889349925766176210228735260131818944368596647850172702340979017383535920240358694359159345770713240757906160986237284731595553058295308596446271003656785150532853395400270743779401825330829755078640677795796636123331723161459229165593835959858545944203360307435083443543801046122168819079470834869071273640419853176529277112062454757017435183246570643298363029566493981085463558966949146172981795584960431360441967818597333456417433369621582506337516088521403797757948743046898743057770761424483478220013389600536105931835483117941304424348916871192605440263436306850473655011568256896835531457392828659015468115946500468395738510787072660544422867545963815882992008296567605809156820044882123235606641677408113325806040558314170121036834890363388091339897299389723341289326023567323932903678921905756594596972374878603543065230867291573257168019719530236159833459969202736166709291769109433278007527687313644025139080646428676390936407454156957266116473442739935095701498560648979072441256361764436388121307023892265577599728095241391174260820904890852953221626757483637318017679022048953101698757528798985680851113370399879095995966413382272182512850532002594695281529039534828657164801773879424197389217879874493480131537824522402467641793984921878393845301510126864550809456272108368472433810416767574794385802663661952419189927165670038957733380102832566527757960728232583726312920854032615505649580320195390787892932366349597845211293909788780807422049132363427911663505598459101340943917397285731674897442723292375673860647367029684136620046339589059053279591780845802689082555324946680818421010688641191004053705014106104535346848479714823473524202784127549219313178436933871106847639290060420737645662285419851891338599097270486772557634439334379852785555402821478120236455161121550886084885547619926126258634417031745199384976337234263769215432226693845304219767714866766674182482479771407191267041658536920231555057764063419835511369477539855003748560628303935168732591460995481124617903879154727573376883267152691931393912248168143760777953894233658928532278547226554941242843107973391354233973166622264835628710815271584647296449093571102487951930352315191549971550043367935268107927151715744035633496370118892824170766245315481347449749337620632736813470451332022569608431368330051463864378906840275266287042144602575841563821863685168316775160579749985918825510145201407736609931125108307076133647641933262705057731339542866831627404185101336196648042496235481789205229232882769379797231544020150274062845015564701068231379038909055130935348230991704375634290201421032058789278541566605912875686770203161377485104497680090671441570839015585498289724264777333211964158526345288013449433135926420299166357070030031939779933673550908476108676228440691611197914100877056961520363092479179640767473577141623540999728445743533523266128001098249202405683180167663030799991356312654761728601023052109451682052364635136623451051984309848272140888169102106269726783029324559193154612736563883889126862052818015627892585954305666838562750910432401018962995656692946224431069025842221095012216558058556175624316266127607962128837197164047588887504000325221289818054914907331250415447019021362090919401302482035944646033297521989091770497298112902616704189584786424351175222134528985233460134445140382066337957882139973561590819129866590743060637280658306984925027736322958468332241132974839710446757304020954993390723296664715106610418390025733507956242571471724604423636712808685445191298555478582821757197569366397161351899174946088062433541028001288822746338337575444621108919025820909541085238190373763711576491768425587437225126891267814245796549915010535545849464767430838063733347253389013778374899950891313561196486977813474409206265340925912715043953185300383320468252084144164587534276156813832681601308409533649846268152854308362217051086436178004321864137329828806561364746621917087718675986412408702640986072756264777218714154646123091523440167461542482320480370973147818721696089230889260104355401153088980024379228800007184184505718610930109383072344369870501505637276268543284145916683573231631360286448552228836730580230497476731572207946123852049636246068654482574371280012185682482650128809901565619617952202498789632066276087436819013451762157648403644221682826633010924447278648875492409376687709445536879008218441563006617246370857082773145199806091540879959030205806227086556622423218324481296872778630227361380039451628454537043452013203046300804275057497391846392287587595914320187179068235517796166826986566058063540114516317278431226895377161557612723915372854594916632741841389092323879850713985367460795858494815283702773562181254086623541285996768169109077019949538779548359942167777825776132971085720245422742921334572446216844558537584965527861128247994934831033192263864114573364914883358716331926436054120177640030590824398455092509477055099677075227843755183235440010330456276267539893650836260284637004739334700958193659070818615325998759225473445110251337555438629684941675337747682861849955548103945296907822328718872574092488162485428099661967074004054809872499309631584285565272760293012224723338538987911665333811515597486597857001002190049556059510789199560207971425961237045591939866948875449440682192742003260582098550414605136079247656843783382522902260448155351068683774858830058283807984953563036763932697713985704184480680326040491356806868911387105587204549083638395123290640751878648603516838781456861699637627099624564641365267339241663808412145342376688210461112481384436729234242802549099976202534806303166299680307636835295575714736987882251328113286220091142606947628957277878745035015687902829112638196766267587336840353923685495638406636052850806663493959930993928633503646890385690306115670962703158063956386074840479691611808243016995300589382186913493573294557186399995553469294144154606053190930661804075219644592211948303137331687958209452129997502772345858407368715051025107001181691729640768459748149716658490856945445890066038906677958635605470962601236909879367093448494441462455396011795839441160748942061663019328431798822606271371261876958192927214305528240749460350361063768289208361952120804449993692414819090260938262045228646851281189350823073550777056484014186028647176044848318508302872718369117939042719193346184194507227991294893127397878228949931285836167744809216936519817381718590718441810785378667003250912863351631375384101341701328533767344665807924640558183753830826935745940524955265849577429062569224249496370787654214915981234166871103522888466722071497993878107909474039348394459881071737151889123596107579985513773562022968797545674406538062811452460668060254660203610239850671362288018153267645026586992477984622021275874858160280142581592272222125993283767918778904264169182846164717617103218069983132429399734470088287679773373129585295297662290578902099274788267019563411309850787555280545870991735555639109534026411567389326848952991992245181776316976720564347720464162543363479827570586144837614488922302391374217413096181431285985089737389622369922552801767109616236230388772502447546646502585014017421430220409092894431489045271718062577523178067784667223768067731557065306331803140352496744723711266439235319656697412718887543104394723014704203282283341052363407878061978527298128752596754515753892640126243989291566751578996163555585464637604160114325804474140993644213216274603386312391035306762499686669352704685509889481046606515328913219341516651131592649059390640261301656385833132261902686090470181940570581593051243984984288406180385953753991552224265914942288016332177655945611702536656616743166997469517029155850478402438496720492576533583294125688312371157520618737388734708319631410827410587886541608087690606335924020251480721257539061161154816333605536563932122330296965000615656104331087452765204485936091253128651978396447215317634527972801509204566720313058005334085240099899261545725814424794171346250325720171265725960312600446062416191474325581939698148280408027917511613144651260974789078348352193348145232264922226636966062271751159886397356405073440755405679513804976921301428701856853336147179688911350847639692775816933886633006562208066627723616989929263425190148566123542823777167002429700516476009166415663822665474026353973128957852216502135501396979866842774138071570515410460248822263606760174890577557718944455157006127558544743477881203249528160340932057156257674255525314996507598821368091542157353136772644632043112240909095615495716603545171164651840398106578611938923972211472462396074402228558661732987685306313070887231876850508708243491615272883896741356231978660409811849721957578799280647210491061058911436000780504864562821911007341799887206109734593080095828540638728479352440312840585362836987521281034289982558526730823577945699311105083856158385277721189901411119479630279592882744675800389132121089622868147350029914539675457892121159285513035518335048340969457124960224440608553898738888450479841775876468654364077793741093330148489414670944066289215802569266092950109291615769136341380652234664400956668613431199978912807692248727833721530929204821813203401200320044255861127935879603697814304460956804567899235030488814468039316253036860459810634631541849560334332326904408970806783126360390777531999913312484304195723737235643795427993259797387334816711027357248047366556023895189872737625746610968819482434865380412324677220015244200926068739927954449902763817386725368998278243037049134263178353720813477039744802506293865550961358722831941584141982211023211013324458812489931072072322507734036039375056556701421417010997993725591018487727264146872615462639406113088118279926291625861962692927267523601442585582804692408050225738904965151931545258331141691406168645279628776232419761946750005749270024595333155768795098089428290364799720853307393572842787002301045019374169726378143169690932660278318660396779523007270756559581954919089151785072006078882821132852826924508381551191759294206224562091652820428936748981803912764644939355157258632701180872875868365988858900952033563208403159642014687777722163945887397344323245159119221381350825169268103522087981870044019337468704056508933744654563523371235650578787484997825484161613988810425169976513864845689821825692644583139351652583194284156738951776961355079992859632421986001675930773019558577077622702423443456520057674134310758974354345539359510125943492723087727663317293305651779065928665186954747403766028009111214029583426279935835949913058993156094326881209662905298824766352041169059862268101191458935054693241321659849956421776563866012322365568407380771861457506805405860909914424198747574874432085885028277522317160243035554132521077147710583478945354855222192941562511252224195702732299052444017090543288965925264461658465636940347106190766825483156666619531051369271014682093069605359778040206491059102763981314494762790975232327697508856257076186500965753754290445871431898829209634407127408012039767969460382325454250340819702505648698699351111097418123959910760740217342662342945921785476621802773943776210633468432323802275672533360745974281204609679523042199613999455254647329602328974581956230466375689537251745090270839478707001958209624513839642151518466169521697135788401707614230519854730123112978184517563357011433933865232881916580584285749127641156855803587752786577084142200675524942597628032514814634892587969632602121456110620975704466362095799309310456558927809845615861124373062346046052595259265738790870072923395219410129252002215852556274055952049306866252246283400602133332865902858148351173975432874493432556123506209350343529053806663037866962317804659336152345581397929522792291685180342133335350503722245441684219839477561528075611284190171313865753209971957904955933724431172985864666637157451951460750736308096307917330121670277236692497787069076908327841770472964707893172754205128547697099077408876453879355270850542454004775837094319509473737705033159173685626893378175892553950522246577718508219664268584274134508328840505859767846458860905744573957098254103435447413302663120312731288337435235955219572698132313633947588002009520744614665526414992922472812237213945617397658320044905494420351088046408470689809677396250566664084733955899657931172354560731905882334909901545672611182644668661271224237406406605982063022046941294910458695876913621210436151862940706080142312506951087219443436909379084500064871494580573195920574349571637554562314256678354920403565784286392793217327427263103830591798644563273683745363402409498662629180717144342579410204008340932503067360691531548160537888604694534614244891182255386873679309790404287145478849395323755151439650104424016229834509477195009731617625979525314994601245304545639489359708890031087485233608639795916595523096540914199954587098706406134196106832317787744814713888918798311631290281157540594900707950727238962612649140279674267093465163868188403922712975752634585603417863028743461879729872878094185802555596963700166039756825816849800404191013654912192910308688258175450396251547457817805674367920099534077490047519308833255193653626053584305074141940328284728963221437497316615287407223860583216626128141657712395749152136534992225020063918166224990578853010729648132020274826360751100955782972659695650062623486378965560322850328916538886085835431337579803367788428991746523397229152550632708856087524673666754471145516644993754603865221573901165959973533965247817563486986700310371123815799676886369195993147617228892922314292162513653595158751357018212014342367795930207042434471494900825259167660621591408185022960431467190445338161199505815047778260275518029996314132158833214886131678610906710061130621230592283667555800045677408542303121965417407113948648855528758079297428919914301202594892938358837905570044788890675468172328134158060687338325401494877152993137759254252455356297659921041781045320294279122621785224840600803113113537317624962980974799621313256030349884202588323350095885508782354948387020166117635310597581881249625153973003785577786939884098357469577852084423880435555757790229911409958301974754277540449521038127542861890198995215534798256243047895228415316106347905283639517213485420699054442233546702451386142134412457929792014230675495359002276286267895487108015609684788801967084496787645521216698178837397920728762657222584718143824768220579357950502493437170637312689678560711971250994356217470477329084798437229120201419930515733616828094518866875132930003344643686158261873182660404090801297206932848631031037227419033578445415785468813396301160458872189209303188139441187107696823204305639751782943782192778884133194844090596627305174422816808205764927979950056873081249032998513528755241838285683864610205571222353883336574175764269979015772957317040459647068805133723760808225182854969075267285349512596751260190500621591923581453216816819501634515779050070704066067668633374371165630457488381151493514846408760480330008535649281718031162239254211665755427019091542759348995601572322959111835427454850889398033331031958163959585022659131455351978400844486306950388642000724278213806999145080268990353276174530509275355902876816693875192980800694492957326591990046569290055273409360268080747896850653929458704060285109459510514698779254743909893820845568817247091901185501552361133828388501606532195247160377076574496168797888619004238369929493756643781124965341193694849295999329333644515266490020692846958548179997512657580404668705761633052617095649926505918592722142956926032717406960247897403551182155220871838366777509461540691611884749969775439100310005886127493095673114142197552155522970230988072652950502753883410964623045789335045038682949707090705762476406585155213469230005722614538587825541264729494537091587479363573367665880587770780827443106898781808222893211466676437812501469529106819497394848807392984142595247317812208869559756959622428178731425567873222760001742516357568470178854871492661390234515933910842501332076501772109501685913246823872631441135169252156419400507513180396513755720090671630144148652846767726687146239496436234366503345611775420216861021827825028787932541330554060993856464021328603009951663764917412976040462258367171699083054227193755681062559535368690464357777375921402445914026202750977718842559958211278895637646710280890301846397215550061284310593162377463028741111373868893546602438070808330644882041150477340724640853783835145468776030105568670951989751812152402707743677032971697012720828651008796906266213660810225936601702194244570068882082922603895055852699319620408416611720262727458891817178644361489446092672192805090573489179410872895905652464874957291718887374505730055912680223067361321600805320041246826714880288655623162305379186705197632847336621914012831769629539410162708755599322060782019780676106385504309017994894415920419516064945848018157558490130631015298542464283029347044076404367537382433034595649164055802115974276807332796628644738539358986346158846571249836367864867813347277133768455925465188393598989608272494537064389639206071371356953642314460279913689926434276341398439390279563481876282242266123524134997925721319125313416704636978456063198881064295806948319494538941629990002054941942963400184888210146898338301824387466985897806895379027421388450133888946296564245443677769309770969072425921890446514623422189696632421717387919512233331777162965791084078892338309997836940648878207495559893759348792701730985857240081169846118116979691045549076153299509499623168515597471363801275067810989324648220550865841793303548158281120538948736499998198963426794881079127140707155971098141363245705238679936186149077234952463839475329062599667838582931263816714819234056072615597839171372666452091146111266977708803553973855409571743204829674156610733775052361630820878703557079548020372955969212511840236600007484515891331429320526099626754360807187943525450932117469069972317397779089459557096652152244035187533748746517172564095284622788029573233344256504256125346507289594875374953903017964183959212172291309528890276100379594266757812278451119480096458030541838832080520175159813609343166342899046020146557159118106651968036350037960433125268356071778123131199345522935866568525305204702470048305335214482704279829373635896115604681596741730959863997915849179803561042451299001078747339770996433324414647311498586058901543051865423981043379804765310714893627915196274163787622399309697365686061801701393588487800748659697159993893645120103963809484849761245256364612763974995184031091058747335705875072828252081118986329804973191108648182161078423930324899726815265590591485542411086824882511347155174388934388929616127096038587658130571446694520139555879070006389433150918231843664059911521781451585560783960120172470370363164892493525122080871935919710541827193640410099973388898761912268991084650716901253518038193843033177880064442890106288466879972227440039547034829784456107342153893752887566458738070358606238656616667558906291768722442275992072099080788709017403655723582448003722235859965840299436221062279366415139590801653147933240938605497159575716783212805882757538000160974026444261415341251272176958999604324144339102964718979991967830736475330670750760453629958720465679725800585061316560625547179055324295348649188396595482154995681859262417701116271741910755903814459518505972189876561028165790593481204483798864883229835623943306827230877154885905056618651680727355097982293554267584502197018917897622734836242308044376444214302796646157054686515164810595532026704297847155409764325893002132350411091129001413647996302174409129377811116547264979084391894628758352503611555158850642482195799555673947170468204345162272528859845277105404327247213038900982394406673631680833098974216166166432310513796015393540774269428991887883086935275792640001299743084950621730422580141744812172218259073943465021348701509065682416832224314662719693777842882076824372995226393822747016309062158824992689740850817993720091468862196725059490675840126036463980504802888942307240178573563400062038678505112789094243838808656496222075230895580632119116828241879600238509904350179832891886254295256105377457344209341137855412412003951312511828705170779034999650646178717333580145559774559828431071014636303994539659394563967425995309527090144716799363859710654045390654896936297796781189840405404102041316436386082957388961612010462730434970006241726018191661605763293653609377125220627924844257074169676789687231149014001625486152058396641703707970952043711716509795235816050083535742800774667797786206498942489281426163765561339528152502838912782318226141141086111507118321300914491620043513020384337244930640948790709466725036990454871695187580124099532743092573933512763030576798026456656772221067887496063046242134480972667599287359189834617587938843985480061914927459090798088627622863714628748276642018052943382478269523721301179200377547365637500204184809142025295035455463699954210530669103248684560782592600632344945394529922889037294765302923139390395191664005407359352201922392969576129404971752971414848622171788490859638083366371041955085996740469885938236015051411315015561765323352410442599951444931931706147063171747361914540399985838421317624024859962175378733267475165719875524114758881033297385088853282189378855700776679004862406904350200596979257473346784576208463270926379927860509738613426012100314908039975305781574296427337192923921277139057901017854778498166038191391039894464443437002384761227741675899526462265214336586533761273369436793494524720218533711503029439430388487405287553880887165365797783086294933639368072839628338539550152623579300859240624898728026047235727333291786340686212965846667944859100351643635159576017943536994212847097477535932195494349509774444895031747770489631626755001749777114366280080738018320418880203699924813212963208983029408923342087902981725387184935781171378183071062999652480227398518671119347299476505753581298613210239599882499538076969752744699414411789081985468588017415293006540880520589261696743612458863698532454680095788763148774480123485579638146555357630174412669178883950978466624704099793466484795455283620321380925965367287757336884731089273673420819689683663639314983365088407706758638903037174398808409333338555746974626503246490409219267376579852685677029930646795960135076666672914590878227776418989621374239897170574476635903221681550483378439943017392167107235296615443557921507649903043382015382251835943122249625664712079905013523329908988320034007015009604882111180785971942122336002021295325358994266640325163520553684667140185913979365509194207421465340850638396262567921867360400142363686430920032588483928861069589335166093142480021046872009816006000951344071212775085597196594772333283766404945478340005896104115352987486263732505550242828007624109205603614925639181187803070558755863073278836560213857790897796764696690288910678958678338373785595522888418492535440390711625693104618294897203009920702385545653556451360827903374977338123129936788032807469594046237015443452182182228639039149925714194719546148322155936314212900365173705146909741806035880256842438110409371858150499700501421069306056883352006190770146006179053607733310470391206588838370428960882768912447766660287893577423041395874128086596776062907310786653393120241517131288344448661551876463209990940717361599522299012256654300560498780686005985816634647905237689357704388858004736061774046728352273488252769975217755918061108890298190461373188921482450590685642168263489066153197077609676479517490930183471832476297843468822181874738335267891770169518045555128004385372132858291418735200564484784262810340305861186445092967467073189901809567897268805459608302606169143863526273429869359579804967222486848638508210255173864846668344700947084601408509843844776083955911795610617420730879106506303309219248482576145407507653159595653972956968431795278798525517758173516281282752201721144908526957332107100298390634396037341501253583807619843534853763694961482468152236965346588140665050177323052626257146231752237005019844802043554316360650661444804015690579861019593993569601337320480282489058251303088074370904565582072336640864343141157933531630814082552051086096529029407852877590106592670382717249528800973370633073968223471054437728238923484278904987143281917906689499878527886778361381028165832358568979957391901808258008523871589929222425274056733606400610606056841454567965019821769040463767121679203834660182268494189089802079738581330901284209455237718907689175452431961252975589291701839831580057905102798578472196649124863252101715889588975507701004598392503766641853808752383523173370649068917295709473269416852034513637547605133810796627227812613189086967478082479230926226241909562095004853957349937632541272647912568180744173474004331095012534033067526308400988762789673219560854737001053575862763383324497316984918040344568794245672562205969425192167238178963790398567572584238006679311041003993327046612440867840296800763794105734947397881023899621939700833759869684060466384188925990712850536691772877446408129461226967836211166941178633128314375958411636448322092661205088526977403511950653873996678285083389701636545845315967048938869728865570028330966154506094553981797786524949629962073119741463831865913212827391177823897382947229741234124033409331914395354925091562844288677144319811263960725153176416148202655221374827667153360645450527596541964236042845703335458474686296819642359134696179605495077475205389127461608315347010133522120549684366710319418318683659138405068097464780266365588921412299789440910178838237450902233358783698159345088897890952130147882078961229046433371358373797018499957364457649469060383622697313803402652261229911086260965545896116874367062623096704194451405014681869501787764418247653327563437898811543114924779518690982971162741702596644502875370677423047708103297779114201658752728498003800431388558213393371533811806895895752462153694085731526358622485861456821691759776465505429146103677964616045783327980537868356105016190278984338471842972085850053624405334063847353206720640207681443679777670268099296326667814982753686107451751514336187245841974627635198650798709507479057600186274998188936787718031291244041646432261679627261139439900922698180723595311927527230915573367397677384064514693618007862284059038485310882560270109012760705358396488807223475834957498681640514836671063809033404615585452170962851048997634890652011186674225745172345964713929369206312124687144335864912347681121772015639021478513391660317720911915101081323311126898588975929863041193258970561277968414795856973396687147764070345411918241429809554303213628378421750635710740412170240351150001882165260364034233086295308599441985938098428632782827119334578454125400997400708687852209206107022133121393060098881573816484654145726655250767163902168740698092194394145614360836488028467679822959697306148950755537753088765511659597675431074364071438208015763938536675149586472304307847504435589677150760011562652048515975111866658927617487158816278523768512198233002624728447853013227922540013281367300108797385610273408403459645833068904602274346357876939284516576705199045761243583357457330420430387162314157167832790681692691719707254945723091907594262472884842615622094832674970143039873963364518176115934333967161179042179419666789474082367234318739597456309356756591989351982571868089093661839513836717977046756231180509731962943757986522316853356985830455526578689206481403890622388414075665089839631998661629021396308950736435982280392212338040498162670268259885704381440249241990688261432736784336326405349130380908391447770380444290976509261546909080560275393890073136581924998935715824038235605020662675780202333218637380384467685694463096974191555249563812952863374314065735841891940701098504345449411155477348471685267335969546082028086386618813030147525762908652334495217652068424087522135182767253372878869471412831393702022824587803020447188300793534288299071015443998574919306356685402434673742548998084978399610317906507086268227960859216483554465815921804080991783020481088307281474432965356640077233794168261907152288779961195223097279052490763956930714543661897594544088266737554288159169198198180585331231954285319564470040207004205138255179306076630731563348780562559430024933434709896952783819265096552165379641428866599844122110694731209530234790501385711331501132805987446465570096121868327102726457571537160005910193283974911045495079304144201491550725015774185369564806419149581985691092723365289914825541527337914861203485224411042749993231572199747362870356219650579590279179681962925840654079683601570194151176477141213175223385774233207311800771389187761170856943496112997499415967113669534908522053331530785549642729064422390097235199059248832873942041296760689077595850865566948608126127027550240966477205550577231005496807241664131667227927565893414350677385716149585780228636042316502284889758510682846853655336065509205057119066946818323499274832517315582258018056612870156484326162253588911034275800166273508102116911677251304934126695685955467388371674232571948050985248033026637940091524705553798644162861853055691607352904536317353059470251312945043634598898440835197535208835871339391448185603132189665412539850332311959942629627392234150117253366993049160774354580339426163668708633411117218736317245328674954889404963975643265069608023580166046206644043389324103049001414442411239190188058815461806365443432088498574558349096893404538859742856063378002451903667124238485250358993234042724795724956452203956359721165247969892369287547313752264475509822325998536842272138504725530195753154818629644184855766574936245628592970748517649992788444708719802019008851523294950163993753045831884738892837232149576820776259600277962414523205604303571190301192945620115161435516170542175408419260211771638270694581090031415358419493608694167786309615025136687678813901399974799866164207457605345777739136904338446310913019782247915721695431398275618963677239786648955919609253677405107581952845548829013514069327706061782029635468087518009062124965561404995618999379044843254770940175215111973242652877457300196858279334823688871627104551781797129691949587049706948425796338424174280500153551520384549671276056562288104012505192715216602532634673001390704426171057939777452085484985402228777995193685600892081019060300581909063081424650523542222595593814296563767776134943159794754880250746065633359114312507867001186100763475776272813463298439114096728021516530964315909207073775850925556319662624769740372917694754424461591746114429301791323484576369099999950982529354665450631064409082319652514465649579237915129552247420563195485441911673250276057867136210655396118103761548571281548593560498979543810383535990317243138972740577566748624782595532307699966983823357524428325791111317561176323473540856231157471712287800223974916212986587688201886604169202292451545675481342200255747666824985604114553840309721637627554655704148602238713253827488147204933564027904078388322317004233570166087500356744163209507626913574782501058946623761878775252617862307798463911954372430428037940866386026499890817693878651052215280797577227037282962942870519541655602138088004401258701443042793604889560882094139346441943352835944731332621630490975535584072729242523607656074804887745431395149194198232358031458220494919529757761688039751178375048772791914167662696826435632148205188118735462011958529289649404091347388172365965167589134339366265190466884999468501321705317128894486012306432755146520804129443532566841030844328587414057577559148036211967069532891870876646606073210216007824108045443977243193474989308139697204209168245435428491100876740467178813413415699504852207179433961927176939542431186488589853938997606653679345839510899122889081887870113545600869058038494339136459416114249173250637696383042007997167413022478705755091781445120687315199562212244107022327238970253320654349887458479379097803560261547048267390997819630468632420390048571787131170667279563376738127537196567132384504842616913395051315755304150614214860765538655862401676747868715205607892493736665516282224786405216884773693407330960924392729083029293733379539731082578540209501184735298467359682803587274252112288536570006713718073375636995655059955889839016485390807271422163506434211699169839967748532061255005184503377563016425481841695091272366422939603834794799424213058293517501007664691407474787357389200012696283425289560032642459839082277015702843917169368624343461304412970472216699316930600867705088431027669669489349087841876076517030782542746703101246992532282032643178913780377795094005322202449078365789252392458447554853785737787779298754727609909104900956688480035402406851483443130105159335231396827019266899894577534183081016299582202992094427798473804822844624888557948559842935035573139220371703942192693226380555506802665731054991060916131403288739094789075133814049669089842801498480543367098421622633234736713257386459692435277170730071262774225327797348663574230074194510397328599252030032661294107196154278931770632895644101390232654915340590917376311654899062123052114346022049188750045335622244063614455319840004584714630328475210266381282845077951596126929401253555243846343134528836558927885993130364110277661500704816465316179047607732500323304198316520581574138140328788365407014031732467801381102699541462750262555179021838929830689949222380205295616275566895621168610485234558182664823694616749953909455921728660627581723903552940826918934301030780145262596285190842289672206253938296332685029985226448317378088295936795056095578741609908460820470649169810898146215121211345425508252668031993050619228032260216839748700400638570883583653652059257686447356768578197301299465793618857824953768800382480142052536857720504553227610411345068814816547193548133510942589788508850547110827777250154200055088750682936677903650859269189444326848597457294752430919725631428756506584375113300293392692126602434083707787395965109188952510477006021684774121597260717356306875346197147481687173406287052847058450043224676431837325616602801006623387355857738398483836861283493611426176613923998110250962085509116988302307635076150260930605981637675871634706225813023822981741907734351871387328700445695787794571594496024254389816133174928247661656375182407639523931574175128627778705446482936137735013222964562418303904092610167441383650459515019974917544271727209746815352325131951695256108506252824518153876434586662131292929008777518792640693076158289279368376513621700426208378752839946455291153108555742159458566341245951758337931611951850060935002960035944055824431233158056400571667396104648732084278065180445158050338651276868030108935696688667324482160796329862507550761295779231675391109932183568768300276268947677272362868606708496559142090344734168472655307354178573548198047959213933121695922750190934488080909724855472833913936065992302425117067540948238783686254144049322065383375939276344067795525834078434801973024236889140359807092509581132410466155508346959133109577475900482743460788333032654970920224826365420255234355300668356965489753856986535468728246081396261172705169258507663149822908147611236409716267594093703528959874169186915673303300723226888721384597563910121825298297091572969563211066277944422884465828143435047137576114177927600355158562473273419321294229111870959791947985817985760778329754509392070130344873112529152310707653167647150831598963589666351815137440658321799606036366576559903048984611842948673029838186755939065124457884120378906331870998055448106758083977619026152334852635760771636680570559950029007260247977200121949778274268484345193575109656425530944527097519321879348076295656725811011696172120804923603263716064862086573949140512094929237869420963084476227677222658228297163855474856117339257621086320303905863982847744878692704103162452193307292155006150861582003215329646374359745185079984723666872175160540041410970001521412363356427541931804370166019446025624999750359545771661541306657250603574456064405365362940657764454691786033128767400654445951763120910878253402042953505419025821871290139701772025235438525166224093675231368543844478913270011084231830022174960401194573174537788986444110452837311673940316595204711733039195329128312774487061253940567056518169445646818412219431043357120118144567126935110438396298378143965223137006901747647696202610891619921057393722047886547733873041470774100695122071508291497010666074982173657497804779968087362196349220026838789922054752288884046853692401216409051331017273078534797624499707339977405916301086298535317574580890567844197822020871495095954930468712015750527507933874163252095354526225528393716437163949202215143099174391253823593337151994861161733610874373696390884093566256309646148885409582881263430277836263324319002381232123591800159657843409013327834187049761845126842739967545363624253194189557561062234368342803083284640101180134249291136639689214668214824248737081681547154113430364063503219199704503322166034736996331350578764493661264580540764577687711309319211447781110173806012499415385516702056034525454066478316335207572964893986608706245982117371113809313215466179851659122433107912006581443630431160315464415966169848122892081310889926565986675790854776007643120520405742812829913320175343578443296377349483640703657259466486585048028958951243904187836673333487142577589814779921362486481577666744195580537235594635421189559754783048823036261119099142467301776625710236729460990322107558690649731126079129761986501764805045626673470036924930579343826992079643804259186108590530473276522159876841012522252560779846522608822744601356572049538865264654948157040051749085470137172016258474039730233064410869599288248517429783823273065052454460821170434183954505623616501763711613182805593562700452361863118645189408836050306304879204245906109250238787195309327102593987221142816402589322002693219226238718201461608581004395372354428001862107999303174620800847300267268106315235506651341453002823844014497750426124992447041003130198244923680803905271170069534459380269218431018644100659043207430746546285708223218283179812025684645950275090149849945872732416218446535629739505395631340220562503514529093702293617349511474334395429185547992353796592037953903243901107860917555931967906516886917568883860395676334548742265845292370246110848807053336410005320572793384545583665670801519727534186707665267614762830034982184471004755242135947843464425365083791495932822754991016762141318425362461140202093337691039429508251875459355369662999227536380769779946178246042015806384453603894302188876025763529174126851842526950465532761273000955776633875173011184416351297648133015582490191267251858566639674570570789644425335572958925058810343195450017697998224742783399908764305333348059587860302402320634715499099564013542564927634774524482788581593541451305399557389481288876466350199190775985861746812636723269577025080675413848870194027790670319674806127703409427536531683075522227380003317960744398735612977485279453905120448753611470388085469798961416500954688656320843265052143665576095019113817685466874114402992002249825864000313196207802016111742532541566330577482638527614225924439536534629007288646518813347566695461456248594404042316278315665196530623253592266700525662625298571084177916644546672092381039109634187990314290250585870768827176715034544332474715967672688905909566843554512526098633324463054282094753847759497691634466526012669741369423979668849280032262452683709733243980986698869565369356643035205964659762839880358291119734301394147041028543370718969980626580186881982093706975388714355383949852688639582723408728921573152942627373469523991634076227465119097360460067429408829371031776468366957597700704740116372796503074981705013458696634742935634823107689207852079009503612313693243830570155987748911681947437696019553075694060660844483865435443955783023151208236268798369570646830781677144733807094125222196781015266613922648429752675006047870550491252124200874046929432298512821146188994383357779060861409683804712119405687714053858088611604186719019659645927202872230668564909074367311346495449489095399227216922953969932645039606977886573743209678695448900618828427277691080160766809592048141990779546971130325867993241786293222323163798297660291065181395110343795789348221786901468839759421719675332466292569667108934559905635885615254650155303741794259914894911606803635518063174453440753043598122859936385697098608240626765668226245950189541510339072883982173260933931785009667159516437152931541203902631651976830352025407870466194253163034229623323552113107587422241330617214365128970027766474455386663021406583010025132400218991923544307497194869544197427509849596525568731817015718701911525450659758925778600256245773918430176541323525402690382794726202070836249429487364978880772749366003297283964437484187171166469277765232685336065461470807959231314914049778436939504479662599974131933428965202315391757792093890252939956307691231786527542350424039936577736856700881150810894826638681131257242812889439655515363017949346591670207170532871392947796913103332415474269249503508476843844582456452355527201418038167114484154441853350231672489796500520121807722000357874745350785328862804967898031608501752468141162642201018832564806308187035403572662905916916712285522391801970383301881917633870754805796323130499149508474516333034531231256558739454010125460704851330982027180855164395043021386712311534423492118237974995584716091821959607408622937061358472501397731834347404499201687487302604220111775453502917020669724120885663444129538139353136709517789485044098720319045346696947935938841136689436915937070118225679265477663115618356149484473058333959738791027908493793552193365928679218324570977245719534320756537021023172062882283642557101654482619182822835952080897635766157974220899681157600371866784056821161063626651780728068582131564100031698728533664134799901316809215646582701845614511817455079388013144434133872031553330452030910465915784585134564464708454817598504260600978119259645148315071790016387071234535057525998372793544307934631857247284228524100433322542554342451201102478801735959287247849665648954270651098767517533936431779346845407711570539927768480166079886417473771331405111401294380563432484181469945608637497311896653381935029614640493348908714276678511998428978378603066957139481303989898262010781149672960064282373029579845734297301258616343987547439596826336213188513133568156884991258984952927086586325397067053161233081522637088926399269211426173109002644678767558806744564297175647969856687959527033972031030902339306946524917533024988104955052740095626583296124460676907119978976307105908340134082532606175144462543704961361951273368870883525498131394262928995974825592517320258583282060950554349105383049209013611829091043540979834847774978294543742568723831476732404336955005129178445126534916791902647648297578195602873179209324300308988985200873237702092349868795052510644861654998077961042171925740419968369331183926412421631699414088309427305707110826611653163815633860238919092016927248676853904145355198527366427683347231664624330747872495753534428608866046432257506342499506147129217100544749743025831691687973458194622955139698173533825927489599299446129744903341397907061867110489090398017818637408683438759914012480746099697321432178206650737401732125737848356782379744794501970378123851954215124508640175018672551848225683982973577576509763690565076404199701741128789053386360931732774813032014215101674948179927559733956385388299892550686258043791387690908517999687015401297490429466009096820822650215199239721489715782152432452977520586745247290967100239281843533441900340157720333894371554528699037218078948408942330821673032223973900326354039301088258501816759520832963557700127250398503181239255024218652599556628706060210040905206927191000803244429453190207390838728328804083488014207952323046705449276336825847004112824440061467972886620040217030351843331728524443425705988290296748964236160049444584853764939993616687610179500523363322235976066788731441811932734605611638188354664274956748369687667903847509885970467962546125662760692301293518493446512631399345408640104904202254344204730658553068207151545349252536406775901121031672593892799022306577055202855997478217737044879014810262192267766403031859930921621514823515039479112372076691447146966526015672863680091954560049136381236868787456379904216029136694330952918871677599665596483517249756994443245285092896534921442538800765819904186417901232490431035613868917956550290377749602307629807573339901327245142535508375889489732002887983134201622507393578974737678449743085170625037740959484402146104725560268840955320487207168221201524879489815238086955243062818559431260693922744366896636666374386224273629421940119088596371342680076326139664243238918800912661217629146711287685479566097301837363325278002248167665628027412431655150361777725760645869449397371734709484469448230403234159597505223191191031780398820086820559680707091518085515914856122069358836652983597364584395722773249520290682925412180949938011361032527286044883685036444851347133971666044043202365903613567268896145583258996120980634008447625728147040837772098790113689585068341523464893778588283081657671418005872549945758533154361640566070351999520702421102635063304988165359020813289384498697927225773788103419854653238585478711564249545096513500471003669524278057360757182297393121433239267840902101805360667355720729090304915548846615686379365321835816122194385404328502926804702824398166236005735918792704294695563505520404577497284838660066303797286752810727712882357210868167060982599325187802331252316499441262903427307338780902644932802378193498232466901197226175419876064051202911487393574730360294197144851742174323537471485526273929233524613327964811300615747624606403754727169672905291854421344523886936211274652511476005193076659614715402874661806253570785644497471032874278227653802889013644996505372762029206432735542813145216136164308179122265136954241868459761772683184461628715487882864636015184761034724550181445850092274163040174690836710375533626542144733709406096143710399700680256735297549526271570535735331037542501491446624195144069022482780299121961436198227953926758233503435757684063675694295420477924231513179665395999287004879040996528199402514328068691850481547018583461609963045343405624009308868866595450274992615751543399329766048524159290171998319006504188042352148101341961126746991450752691986864652966782200737243314164951617752277635986120040501458680134556764526190305788451038857947211073918850689295602981835094619336983777399688321855086419368894279457174217796634792701017030815346903016813757206294829176479910268172960462305632021372041505799281297520623286990944154565349323188554613345177204682705100127052942037124689441298627116776327003094383624070758134408764157918564756190352529089632259470137334722369585718431850562261552062114393543982597148201980714990563846321707700054820546134847682996793886982890790811645135542687034253202385793543633281897593253159047094355928121688396217358468371154604160518878840401466677134451631715772113985694444600639374252942322315785501203198360090017727540715771253415291493229549409889413485595566937141418387541748157777525684291371840228928725555558020063463210137205206371776482006740908318059922857493686478447322576243990192336644340972762327367579784092558242891092521706266523274844393993755615109155881786689097718402462888829771085375524429688396465888692898422384952026422096189172887735019632679380792633553707776871187558191223371594493167700429108617189965631230736590154258500619602420088248194337835252260855274169233305904740035415149367791495015426690734538131045985883823116622448554710956280570921581682271295713268365940514437809551151594809099867002822813266005556120624849952068685800880731404185916158191662962663373351279814364346356785895122037868336766512166281119204604560138449753264735968472613197201286240135379063492152430125390542257529183297760411817590695976257251364647716129735398247948823530248870498170382914764576029477073592799431326256942399385163045815544043929022101331864968722784596227699676767308136054046582855647756705619697934366219395420489768469847117406025092383845002890749745414738948776563477572572670205780837168786274686339418246329602649430947823085885457089725449685949055505485791429820747941562048971578628663066860070657135411539849726739073494543359545783771708578884588586247239236204920367432304957247878493627393710247353758627527589667334990466072935578511738638986148529445409297326393103648231071016686842077157954930580547537460189846394527593553253093396164995019979214401652171195460663807503070759383950525980505637807343554166386872535675653587937577687104636409063480141375699554326447364947915433299007133488766101361478960220952820476946791381598974996594014041875773825461794417639309494698350149924636271417668707908200462334102510404798388944277210263795601754294888139047122561163355108391689434540063153339850867954962454996380460465976099933161836539034464361146557343898753561160878278366266771310876319254652076178437507551476698023788773033298355649760497295702956897271239981728768731118881314894306480438659402802366697415177852108095911184589293504040775442048086460572814012789905421224089769163442307544713667710594448011120270268955942003411031762731878724973238945180103514259184441793163699281699322212481221749395486132761404515028023241903398307892977455612709667566529426345220837897898007155558357161793709911704532469029037746020580482838594673727547091360153285571689217605355988767412424268195191385049837963735308921738170263000645780495863390918288121693221869662313442757689770726046582969410961495268723990768285163657459099672398669485157647754467694772813171311262966027705740047092924031668918449783889629514318100783114724518714280052425660173744861380513705367219307787790837676324912548942432972979393621860602961216442510833348270704921867373433097054106180712800014637418132314047981808258510282560272976010808734878937777827612989604406446191889584340968762012646874879883234825878524290695293690791883833353219875604915272861635637691135370745801264474774357949268328350098212083332518471237936678036275408050507991470406675524652100777403562070142814581724503684429310530501284925764815081276583242506801516100358195101012018255734050171081983156260907390672704807909811795403554340677540603638587737155384836091257636517360229136192671795657365715772336686013223300402844936628611550261794709672338526883273970792725550277590978095365807249910730796916715195544347475267848753751477332988669658915675739263674921995268550723993963218741305371334725458245585159102274438888720088214234283865700119413556615409234821177193302825242721644413000709799545265391580657644966739272206063507117150246735702476595272768382893127132430334288439339160326180864480623590438788011383816606261275236928624466940213116763928199227821807120420707120215905663230291538980403520270734845129139834474993483693022595844411711195304856166802783894456597516054591950709449839497083386476419094090765661085864067703404992228125652464671355735728358119814658814743863818655189484670843259980626660229892151679966532261974637968379107963962713600895773682620141074104508053412542091934534417238361960954672873432982868460299207759727717652561556036832799238184767227223556597155200279486894403067726838930408011779537050567588363769903841157990364552409521467847256050746733796649431533857418335528151149752882088847415432507555964168899126641147928233550578105217191478635160290881117481262114902998077952774634323314765336248914342887906710241723148990876960626053065945395697073995474934612907501767260577714295868956037107707016959395166938044699697921272795759493868810267574171776960398826776641052622451919568219850852654730318023732370559792808085429654853285144498312945981832066541815765694531298266978857289388586012812420597873390408129054263816318308293727024324332514856318053146328645836908509867958004853576988649859017381849631971401025899464594476102389916113884877880650659365918014800955653947429373037138733654949571663743381044978910449703733486534862187260823362963194269275064407566714551354767170907548048399476488233352244465133553382758847630029488609913510507980656125896358518538566705512674545316959380669054690381205238723934098081938947895808414134284403568806227901015450452620304749262866681632774968989132586728127651891462570759207176442916251639728284072835668790964691154549147323096986077999849266103256484132201923645110648720613341438732030659566872633752729416908021034781255935811978138972592679070455356410437987255507276294765542371779763872226020024655557102604150452450894468567991700628752015004119156728825371768640670681537140167499009379430978923231535354705978888806296402377573913623055413875811496912240620042664116186220569203321803831517559444895991907576898582278389741873756498742942211223716034536755573326971929860108038336557032636292396781886799979568242549455214709614900164635609075363367282209297410374191505190295896732553421394709891411329076704766773991696143231351516171258318069923966385336689061292144302271170250843839211404261673391036810547404323982385995576874062839021057948901100816955787191424851338916047870805521338830501926834457358395825493758095147258916142415508719158055298270148786878114782936953497184249358904856508959725615955591299012133695747339707606905293224159080151469303214403877646033157297223029205250858622125274072164797183017872188248263033411492744705524047986575685074592812684521739845000624761553379081632205932747408396478427905877099464552891036561411050308666142995253609950179345504139467579647688836202190773588438854836981863637442761362418745613105245037711321934458561224823556693252428594407568814012513273980133420324425865998799865437201579378487899884792983474780491626114085704620323856346966551251369389136734035074285541392857345280321850234149310077586790489122363904295961887083146068726585502024330069896733864135316403485452583453052764408636715435834174057450165509029194077103482673289022940574340346930746419618425418504583034687729044690603060692966916204539604244061170654133958465930554786561835271154064125829279640214930233597272451347388328264902988096575399776355062881134911463599616263170019443906190989316774659557199336927414187720480264426601249500468606514381902247372219749007830856973365791430617339400110399594141288173339229998587459622298325098266550242424212822044757166677599458632698303609280559433614931663165800672884798861093888257939501762293684791175426673213884669127364934361778144771273155877269469223983064211512300929297402484424037376824082116378281221887086775008647912246038921521881344617645757647573123433827039595054706403749129716358942819207819961915774221332238498140945709587534843613644751544029737581632527622650253144375107416922524839348309007898792063022570690542676348336102161719927811916030873876636932253704926693081969268602428592545523948711484247746244876218806497665721693392570978576243851941371805387312980341148817687174789874124216332796679444835520692401375396671630621694997837689974373364478495286525906202406803508826894043073752841934966350932324978525612672350442270336440249225727011656403923237224748083486647614957324938604657397618483032933693336373557692472476317875074905609502255988446542304038046587715675222165465973045805640888380837284872009332696456200841447862733113460417570196755232546497565027819770822782074170812654879131641299510658350660585782020332922560566065657874760931949501908093499617961951564063407294352409415101459658803165587219266167554630623282392741905813765852070471168248449098040994652415923558398942894573131214488570841141924389537085496226047660200399632978107132584272678010049941947468852252378168160219522683908374487136774450687225642476492843923091993072249040744460040639665658893553621459523985726797350628842624896958956689898932164005297031203895004083246261231859072499320742242611486119351786768614034396659226973561647009485016894980681830458047769887786455755315307427652077326014949806212593173230375598957360258412874048529661057561637053104070901295136506156013284395887307790194295685652166471947845350037618847095026548037027387247024510575898813166285682793983090875709239461898540707825949505768019706852657704957374789667826212856602268871151815680919598551878415188700461279090265771944724020152219182026783292964404048995650123941745150017082821805266452758130980192486812246197929531339738272560196234482997705056004698083382491113679080324906320855923885786915978479504753702038205594907152951880912762444762851822366157538100920853568051363091615759347450747386477190769377236916369515154502196457067220802837190939496458736006664702523821792583686549842001746656369920333833918503929082174536022957744501405568876742585817181271138861285207735356822471898615038687943082465388332922144608187545280116963595710610734737006263748512216876489393565685176985845552158459678987079635145913950275014223668325567713004138631582367010548091181169079672895883404367454604309674161629972459447471325517233464465011806043725712453254388586695095252084266925888113923059631121617115952947214919501131283272919737235837212919535452303199159307744837814425511094539679157023438294060874580346055122324808550291900713169054160060137052290076488956936087551719307990537198501148037174578138274190602631602872667450631820234138476656277348943848293062697624494392433370262025021439454304074377080712864533510570787129952510037430485229746008004391182791669678687923010693872016435100773977814786095684526173947893728366025403944260905837133831290258608175958907851513480403539861758093725469209192655229203171833364469549449901121063801960377495578590435266979954530105521298306020267257859750953180806242876049192830696442939372868368941598564859646690946018418412354745315164079517993268140658919380216525275463083609721340742826157308382242222289567837971167880661030308125829317782956992740046377575839663154843336316355737363472510963414365930590912549373745984085266999695684351280834469050485455119014553436418572093444866249875641875778113575414842944570150976089559705179609173973030421145043077020675440394957072066066075161652206152379211450925856434043739836736591534948384272920286840755534620690740511163094001292231919441721024611354336943249142053834517582729132489914830099025332794034864175563879551332108654490751740437017927230287202744459617247954057253177594625470136713986262355734438972003568406175553540963260522184158701376655073227234678983883336535001059365753897695335089052560329662262318136018500122306591508847741759880050510394706532365137683275839635643347355507802861337092234451299600843778834178911244055743616479506289400626088368984842295029038731676447759144765637648031292744078565685041831057830815816914706240333916534296455470034737642179719638747546811336190173922372823416145750329916403456438206367594117742578421759213683274970483487013218114837640439147223918940463371554740256629363377825090946757888510602799104514197913778450699719481307166003581741924222946952609028731226337998819299931940752388450293538921589030403006939691155932237449759485114521948848034670893020758400160145596755240064325039312779163073930935440977460253471527373980408715429571922833450486007656054895732711792342909463274681438113013759425440237614708301459292546324199544120748234925028791366477428290847453349586610719522840569970574836324107128025480135004143857867676359945445080645491680996253025909344838120558452374480189508412697181089431466257381946885460943151783067055394960637286096254204886611904987491285645858961457828445287552039790148995166496282005240347897615236686344869065680263401253834679389215093521070340493156608210781391058380316229489847746053528161346862697512374319113968620383838802640247335829340074634517711000945292546899230589319720983783738238936244894331123603111990863535892029859630469984907366097937930154800412898161638116446227837904985761424977361656924452903386483824089684454528029968080500869301785370180037709024201671084630308574738186093874078542717269883856412794277245781137661386286010883523357592260977593614670029904098297738321475371765493207218223037313566745448821303751909241933853729371613767705829673363335504311617454193347045042395484009223660607930063217392428906948014106801441842563060265866141178091104770785406672228943555884434333023085596070507923694301474360262305775301848974465704066531439623187487352226878084508465263990028466806761735453169601933828218019554262656388039490054741810810486540140061902611636480774818339880153910405727935283892173343252444064740002454216864719763339833679108396826023606850436412171261527356573299371697518500648655061810077984003110926378307008917101933155725579051623617522983837210196602120562087092764522872990037253844249012444044720383729193085127407357674054283270910488979014041368744242258681062400737274842369330226019602516285181837852641047545806946935830001437396932349968469902936950262492601791739617696160766950889992473862000522673133121257948877431766676660228843488433537144722336297410435959758644176613547841790663621490986014273330015694038943364884127091711927001526459381313055888612515500420257960216926699578931290054528709010125465941557234689099066923035519852302838271741591515007270871592952595720255919914312350236127399741064629675842073652968526288742165240716079983855866083515917515677372120389329351340959850539041445536341759192986437017110980036343269145224066084670356823316210460548746735810620588627984912307131477610896859372616454351065799939009659661532527968803943442675876229361774270506813214300982418475247383468112010110477700478143412592727486888736360395008031967278794099950751050307557759657497646312957218268579785560629994428360948059755505639118747118812310477025841662408822185132684954770476219484500034874340138140690295795163703486177198998930507111403895097195016574368478297380539024985337188564236407872824935680659351295810863054387712033538570630733804994762122989578887924052492025734364539200154552615799192332089092457373504335379602391762849810560262538213828017454063758177599473034799888377955274487504003783121864386210811770646765136057864844185758304797225725457788129951012282629660835862009930224374065404082527637237483757000940240071091878813193816371109611716035730382435091361254914550800702101725583599136653597277050459147374882645689854314276208716872935700871308370891840689890433522836511609470420678850915769490420470830441675945577841512271732864202236935639876819512168267870176824645992440540754174200589652921949135712944292992795954029823943856350187655578576620826697769377623988840918515632668093129309042459937310661634379098060697398364854346530153037338687676320693904196500938773214260295796385410103628476693614545286162120743175071944305092703016069661865596950552963134309824833971627122274621858499723462329314212787119453826632882503542046735388077908548476751484849927382589874208917570653401898446765274290498405837915179873031988612033819873283041292432533924473087105715198338377934141842768195102426039005871474240118037486008120997339305954997911043989280903757944280759625918756668223023090473370669569711702627842751604757034091188589885265881235343623506586088388593238146947114874213527363734119002259488602655802815509733497416310695960176381793981776413249223918365755595300940655546666542195047982832641327483175714310296442541813850690666084195387190149419718161873300560358636972213446399730657332890239619573816274094183715238796956106668653320375715148341283603496828181907073652740596533859984713138413430157950667080044083072740468612379254585352267103061019945060264326884705557590869263809015764932655704321937149321038210088077557731187786061585434348364679699956883328714992294417867421093618501945771395078166468971718882706364131067540933667315523926502149780301246023516240299530108291457781888867743319970309707223745118041295444183438069596557421438833719494095702521614945824696748047621322066207802658177078533626013034327853926289816380723200273470536032743886635840086436526354340703192655645910320049363863832201195588257791873235300951293172442277895214841466487906350165293993333287947206291594036882073736491922823260852643681193926381464450518749189695922103897646467135178029322613077803627682540608069921377006254130002427047116315990746468020064166233518881501708567487638097240555300630686119193138740982388471581376993263659201458340903526235480018767045175595838876677851479591679655975793294337589627103593336210960477777330321935156602166332214099531424121973777754159262786424157083177498073625218699150351526249958247080012596289071482191886095967033133121692178092636743526519607737050130209716702109638553046677079821363370087779725586558119370010069368196603654834133458596790602338738797984089763594418085704610858033071697099878500536294206037942351202453360555904853959451025424314919352474832627989946094249675244038591931312254031072356888972735510651911097328646499750221267628054342957261061501900485492912342746500750404253364008678111203467445237787030231127005600670855974608140310514142755247403021325442799523877049968203220894672603686972483601120017538777375241913779108182858268562031233544272062785296565602712996383132861052761764530810160118314763444157671308707167119604816623190199093798593857693708913075980543066684363069071969062824961293113568425598573711855500226855637799360486646133691127589088054040393645920895349956204290680948953651058843325139083530595275833643363976432106834398118466792357819507239789963286631497238843213948435337583795847123577161896296555571532326664298573200156771750269749946291913948520400168424930628839127483633169112517625130480242674692311213316826791860567986555787544513584813447868954322869702339481447324306502436792428864671632128021513073165631896317007927632930840157340296013174358487286624912874782930290517739753730793611468981337888635983364661732582620018886300753132462207472316822885537150409687816146949231219255283464556020357548261341706694661508557035741388833779468128286962025615882249330803268410906960711715709184856078673765415111248027697544839083263215465181903652169072203412327266413966363483303517850816015282244974113198292128927950590699899185312145089294910481262438888581150812461808660325411305856052627314907598384366031975062827539689583401706906884922514870426394024713594328302163694519058070629275386551235247891012131520943125565866295948138598976067662109428841579173507346755379712035498943858532976133750044065864246344785989980073258923453304408728386819058121318164868231470955181935429145907747602280347047570921134512346425495212452622050645714493034196328429789179066697882031652153434477236279277640630653101502364809569063343761787458200593682568677839950546174748142726370309671840853412940077599541628588923366969577159517223933184811278016977986643209297795069350424728499124477976904510254636014685543379909480281380454393340927445446437678279650092205325692066727852809239621766895444072348815752977567462074955780115129949179996477292408526710785670886355781740832983914052037250726627720786860272941962776664518803984306200571073958304646549361513999613222386022798420023187952420350682246724841454411180840033500980006001269650702354265739398614383415759060687001304307624524773697906416846064477402253772371243224150358180526899322308529435002250420520340593813583410720710447479549286241140404570501040593335165061681133873023640957179229369295599324733821353842800919689977032378578104694475698552083558297887520180683823038342342390409425884520401952569290796993830488766820490328927425425065886827347783464310734031442459296612215874442635946124545548605226854453003585082139556647226816263180684561649733734719594345171662295697542312485657376543105262922133545311085183343273874806890532975147727193115654119387679199726965306134400306778200209330696386927404004133160343289271791200456731975401900835868985699141066574363186777737204172434144453161517503720559806970311932878066264816364734485486158024066911940630251554970862379668016132156189786718126395544495172968209224001630406504529607595216537639343653008370854598441203193924936581810293769241855592863702321758173294465996661330720316629092017834379288486030545312617089835509797442778099180580556222120221213861260572756750572467069528117352788863483856468364265638070799377202702134186684895302188389490361026315010581168488300034150003301542307476086521468270508140257395079230231570343054982574046152335098398684744284103274826200462136937568649761674411327717419403881729694267528342598535505041590511328050647684074716272197642171253557557560449696682752364375639924930469571024079440215072538075886730080766984196734206728459597797565740586005467826033100073321452258862320972798685387312754677946035196158067650879399423291574365043276690478752012585777965978674074689788253280185073075509858757585533462939525594910596163800764464693199663919570879881359345381640838933556627350915356881297956400143208680384222952289114332356672983303200061007966662848261402150812221225185862291895173124710053671916473017273168833412434042541453162474783851841072894251051240249208803058920194743526825947535050718737095601607631948900595349265895154323766655667289962310943196671941308412626809548482061216740095661080361035482432839487031570896375705050869621142965417667138407829175473309109551597021878446791547728173302128204810455349804395195699366015689791827053088113905975265115597252746227055384029689710050600317835401668273688989743181343161890735709279376607533784768470719760496367030845940671362990106740439863747571302620842742521620232679391815152728303788476654529913612270470635617063393713934904000060405936441059997108993574778083943369965340743656531218863272632987527173159713844157995030206925877906769323019774505805517196280730128778092904615956485322648787491002353013991550219241600236275709475370743800768837917303349044059547182612423051399233351489268559476445344551542510653147559168014973215817701763170748869519609864809837914097218834991490456001186895398971736932308846769665042309240016948823821737423113240436087269713532492296940285754695596640290853123006452742998972757497311086998122084179641861211131520991929292164391766290175448165849575452995730964831339393587479158534794423398583366820307980275803420348384128117356010915542553648854365084342557394550796802619104215131958394172068678855346358417957175176153309375511907056706820189819887669942608652791101354559078214297119251087519789940351409016954669200557574164482972109963849202703097720822218750288943045345336628838135656697381666502614188096832601190743738165583933647622450253453534596613494422555734523631893185716800967365828158539724385292784096600202245720610640395250573607991875653980291743467044546119399414083986250922543022606704197301989998287883796893951655942586877762436446099024610447561953637401235110661472425728925091498563505141722576952909067634705375939595732412975841470144089078889385205661714908300931969744147753278657198960817221564551672616979960630860020239194401885743152364224457648768691756942586415064185238734648101108825020929140017424934038704282301149227152434184856589892921470127055262247062850723813964881433026152662543625419783354820225523176587312741399288383790391565935371772198801448929172398704896378228324460792770523861166239682996317810582205380809282511886425520006398484890933979822367152480622724191917442635086668668443194167988377183745686782219647774917897092551629593297757522637009344031549441834407297960344554267528684797369642711091187069797832988283963010414863769055361551923872566191150504407172206669480669251963472359033403505721551580874650746361051318635645508258678669575953586778121814748710649826452522974467417193031852072631257071580024648214022580052335617450992930688860989187579547615331515874022081956375122365474136252738391555897698080267613587552756077188477775700314357179028234711269822876865073252735997770416459178258416762880905108564676508955581053867979757494147708029794935118272832494844248646344330537489947967082297756761133711152530974445611258036671955571679177332859992089164474330329287225469067403971111642536159991391656853604738368149230265408590696314079587759981994501668896939214771272885614347640453487490405159748591971695272785537954519746304829732796074678266545489049290037104292129329844130370912653501661962288461835614233105778028831715135622055550019450414021216236612831083840145457378008335847859501722749887701546927146325986508255721575027554802304645923482963407466473269626158475370144305397673351278478844077160684562088905302034857444969371874552043159899753010388467366648768307735468754747569511898753824394529909681703209049320982485260346384723710559951454987089097809184999083924213811722252608738472423952386825013793244300812299602729066805279618004777375082426330608120691519334621356856616382883124188406809632751016862376948107217833541750795714068855586755033517589844074924859688826383450247661533502198641982115786059064866706931072982979661344658996822632922459990412094731335748885902121586594724219717440778986722747552362993196113575200561452020583268517108804931097807101182269327332935835022183478948414750666603633281190490195331176683412078376853700814179027768959563389022194027186500418487459005222134142523126690226437281133766921241271292353727346061941059321453360648074979407492026299174808411554789508794668180959230680162095741863088797291820491226789844344987400024490802406201076040484666569297386550215971246455190923165399561565456697939100932457836121591202351820637504119441833986208638713739242310297143692728260337670848302497352609473417450699108999149761928929949727994701195247970054138887390752615068868678195289051509882113650421759374324961134862611864734696553465358457298884772191081876718033721612122888842135704573235508971502067303802283023281964472582552791794295898474452246762912863011990630607107359336673722834818043931557946307322787545522491043735301766881568616372031621187395949223442891914179512836024211580157506397250183154991618290674618787016622429215645129329681799899675135757483475720433334456681792357338419781680642062134408197682846125664790818300155214309896840913227294190144917600934734689948255533959697296225141921357477471540790143157269614674100979356244146220580535569351696257293150521779693716410386811730725266019084585840635097803023556163594203474306494927730511319447193969106874681292796926655053095218037798517616334058187246251875532342436420309944638617831068689319499672932165426284070161861310504245687373640999645169928384141581180271429940832353225500889332946902471863166828553828003195960756804953334943375054566679605368699015708464742854313087303321278457676222339888080455251292774269587597947747226829720508300175343819326347699224812773950618019482378183722590772387901031325756086136701488859303564894013854075095397335874813865075759557007107244479555331488497745734724337131106145887158606640099765011628349314929727420783934743772557351921274233126793858066505253988329334758696316617101434696157354897675789191784150907459166243568354829833587185411395503760021625284137640207525814233463327859422287007475303800047804954384365441938056266060725092504597700651067424316594385097959940402744631856649992183119208762506527584870743101922104815501302902750865359623521489078924941407945060623400828824123078512787563793053983346066800559909113935883487447222708717679541527891954771977909885724574957422811363578731951134859665945493300517907418738854414441905335901738281243617504625358353212423635966835350012533174807341836718580770340583812029365813410366526321161098807802815947737041651074856039156644234560722108254643133590219846671332557818209558380163927806926951546867707373302839549927246297144299533675977007629825337541014884445869532012919931625559105625410656863770556737676670316531968792056497817405600833396678983378269493990716177549667037606520605670832251249812187380335044149905878361672674519463898645078296048502271815147908249230713278622325655067806599867550547946373610595684100012520457254937150409165709518167995616738693974787309684592008337830378928900300573071373551064568216311055017849170476040804233899088218334335483544154585620082191285366269888093957884612577782000265350880338051074360037179065516040547099954890231205538685408446976766984684504705323371260891983052455611373930975201901805984020914891223058218195729722199426596273267260338535826089039398789510599350890733124117274453923150742732487222561757785478420452674546102645296951078675687382087346651648402719111965435915306296267253377323919671155773263236591557281297211507928592975319873450640252633500548499335251634672978917529407673369049774444011715317706052695655632009498193464840517049341437516173093794831336353094298948001433935175493438615901066319783365475499502678941091650994525730073820387074776832860051483466495060641203523928002812910603420522372377080286167530403548083883850512655663559453414891336460496881388757253746052035259824800549523253605635099719654686639747801447881143785802085612983581566617278010622724046209504490046602063325890726717104152585607047890043996458680410392099295704900127311834907400807561657374178048818176067917038110017599481099470871087643617778881010731817384153356182222532641735626028235555512699995708983717135766843825886506935870999993707069903434336984962081279716337370346537607950899740335601746757576160243901343846645378113316463022835786652221754097434247190550194921748301460898611346154706493158468026906687252590553167964855007715991528662719170728725079943163276786200461022067237474191886789382878486096092001684914108199050820513983063825009008717896046995721596256943496482787054520634524194408413366037134533651015253425529375287427943694614053541884598862576325447829485120138001409299885236620283950176666816771449869617180602090046097754419137196744984270044372738807266157309665448736987712630850674932284715258248436032476287169960710924011018859308773901899176004834185901623011019696880693836833455415176295514762329293296007207466026820253933325816367096601155713484119111746604615797431657767435598204022608442149874173025084764222415662292030080950160839520162913978286231969273062154206964788113883879837983522800566090976866392677131710373339737097352862369729840766998006491570903153462330882648549163512173955124113193007917423114561951737873567117924498937821710815432911027916641217449082412103350503453652900609899560883336945450786209062202740390803645713023384608520368954500560274411058131822942137049928775495430426622857134252995276259765418860671748927070679689862272279645676523598162925681050055097752124879989287317920885056255745041884478292150394719943926807879973696059969735457729468653300549845795261298241420257415656146370565677202945959540323943027607548342046664528161779576981440290010067276548281848929987445085817953226514039395456800011996404871494674899817257224605038858211469970310006886270030174996951229065513276632306575182775921521160424031786531430711485741969390252526161118214475282654346260642459161229906371220161856316819947507147265153927746416733785502111531397451723180839994957951257814099919078193210573985808772821300924014332470107438810226758268243890793118479060564654114092292267739624616989786333850036664180776173186732280068446320477480200260685817302963440530759671085456731811241748103587807679155967616853952077051424569639296449590816648080752666655986565556890018306113966218601835500483251922388591564409841748925488472913475157037465892356876647868172901491087061902906494454707652577219539865813182895594684079475595254162119733621265867131757300401056172756613599181814442152721103713801002019154181196557579534762203633759733389221807670124252143248138004821814982800847217799923933695528767012416316158104904506602235273875518958144237143324983689695775512879550174493277253021905208292443841996468648057979064148989472062143840994929725630330170237259247204239345760073782711236135535944493386715493827771156406973838131323826849127792330739766583162595327825498696947673635663911117062743914970202250216510811112763724004728627520875576064966454523104777741678104407008371718506040246223735989803306248550040807940795493196173997512397105286312032749197947823149141070331779285324605976385012190628279800900015616178349286044053279910624642678492519713285625926575916735076970065746976011869907140851157523671642493997257237068572385864017660103378927922186262041441546123122909297833375387149460218477863439840723201045139373622184004477242815082260178556339332932598118510388805696907157773137280897151190026322750307781208544948402713919521195387986727545444220431443219190028947682199967417184313203695098116877105122527137709399623678052403616228217785624552842388308998398833115413907651791985223185752812568822090277174190533534173764356971569680764908139488862519161134631700375335106395812519899237396324671518115579980591024500693326153411469702480097632036535298580249941181342044153850366268006092521849051509612980110414401897475951153203265646320335658966392625747059268332978269678585466510214002826734259938801444260648652067585999132972024455959747340220035355103807196468589526332804900958975283421601799577881191463391981165341031417162645436367538650562208743572745255692056320945823822057424761022104658450436144390004384125811279725265284839931244663546732448145077169638426822732812677859085013941925576125068040829819587101637945633244690258521898571363608653552371399454293890079601918748481812449382700494787413200952893621338237149965158081789655115071272963726039683330152631164596062918231392183924143015069239945318204210629857508659680361644484077140667280793941231261452839899451400054114049970495725550718477557068982294922483971428021935088084058789195381505418936204138687359149222933712377478951974638365053941150029499359411819298776681583453560127093925898127464896612214676265480121425610090251158734838359722221087113057408445856931614110176485568430213250930255621290443108402366454153902462068906391978634779075375579364970999691625106988987215114424593863652059352271987380097062849326100509763241357005165473812390001736637960530779441553296772509505156296849108433207496236967206616765934846644367083988498368204579311199879287351378670060485258465980402636104641976686341290923913296185132867482840493298695894663059352737619605354809567746307300933275604685294441144609338906518237563469642283600093724916249890046444337542446847837847756419073276563079283149045022485607068079630166464021600415420921807569532639372212916993535448940511013754067268691784258515086155657947962739597286351616909958437007175474187444488850722666922555952314433009045360159218335222568788032454430850047995254825559416151945959712656796061248797671163312211632615162683881523788384447633716073275493170332174457824070237870378165815676811630506656411693420676844090268001603818967985793165902463309388414380452574001267229641203908956467766746534211736923611089233996377456275849793740259017775603611453771460980825915091350181504387303758002133175838837492511310848846646807494753032074608505708311162060875350255253203553261334105571911317676826683425026733513623280743499525235279484978886361625742385480351478346606007449652169209672214803052838896008503598761420625681529450435528646519235362671498571603835534729288093088124921531708838159324699690525766132916970902032167753110812642629260678380245094850834027904916249658243256312909061040915105096443871031952645611455009346913608015897243198014555097526451483961721243011550283961548173583865654670179775075797011345586829412609561240837905244379801150984960528297593774733144374525653038455490667641371813253022591539047094472984222880360679703108172956165992832559698185948793875079924388992516159350287622023675990436880511871282402648619546968836834258556819002133475081833623987586744072758136299275032318343873649819671382093125344836807884029276537303376820063302306121457808149553860167078354698120906834745898865408077795054966322386867734353117318634161971872749001511747562829381073182335877944027108185816566950529035964956855606314512388162547149389857114274630914903855500098028534811841858457309598513412631531341119487940974843651243576880138014019470435962341115266811495578995080247306508375420761405350257904056043868582005506533033026789748789585553634535706233743238608053769169534003514352588516581908390806593455556008936050766236292525347758324154830049144299243021036781867030501409442556611204804706097565546041089195849787141442574811030307384907799801893465964262434479727054306941384058606284317205667330872960256697160603635006197196548992781054641173009180442379249931954142331085176964126516865704319106323244214836265643042144814242591759591307229965893764287985425589765286166257539707304700102947932568069792305358420488000174422311516855752049582478314377638284681528733143878488337687275658568221891057754455856963905815293604536035399848723916991932939899431825175065565720967801113804434032849758066660216597931678068983632978449443514876585956569166312008932768664565505143393121818511498528784351147414050793463460612534618704506805072006140833347285044533740112559485653758618593540153410965364237598965083620733706027471576715597646995350283601229533922756863330638874560989437288116517419028591032905475658117384080486436704836986816552854075100732329811873137801952800322326803414072994975210827391148710935097660035105377435015614262385038050285413497427079652842592045347979405642040464549265550438078871486246699490201099130306896186043183828163076690311743740313672987069039014696555556308466935132529164762412480957520349520395052340793518645252538672411809032126863786474064321593649976058201546381444198477625408035311039206960968202503755763687300886971210486843432544624068906044374268646726774011451813818028125341809669673441824926209877627662412497902907173194030799028486575043056899302297710216959622877284903955102651855973229798475194941023499383303320707089653235198688800681143197290985375655117656042942357460808191072921079781333780341719235984569384066498279301131376795683081935048392427235357781301791076812248854010511812482736245545524800555514491996371348251953986622212546749024061756760251888599590970542822854955407495139724501057497035898444622094798222651002596863180227029898488855156812849911081578091754941444627282275208713664083669989976655596716164403013956815202234223390387389031446693738934502120597308542973137861770518018554553091311732188846136975370902190344680255935291598984942340823272268023206947439234738639422268823846190960493878194288195878974376535663360922237452524364245433013342265196968602860159327140579850063109318094312790361748934243734507040161327080931543411626798158735077725292479863026030082771006352591016311295386428441483258210888157378746820072053121341464706782395844267130637887460357888177052530064331245072199585401221344365745912149160075024194825623334714185174035079418400556741804369886182265344217836691545201574685969187485184244752337876150022557742655447226324434286587853610541961204905719832716826044910945899273952656780656423522177799791974134182822876158216986559190428345814933557386648172977711620881918351305702320335388630078159142617801402539539664715346206249427287042046210747249872177301172005597013875296798821929814821948941331781033135739257526615252383679333566199319345311805565047760442489452456310453572407339368381273373615888770131430122646249135015167334403003273684818574615920402436655410198169875497057445872996284605872119643693760259354392478624406406296398947630848429302736446614404878372268681640173898513631937263201750680449944104346412151939524126578560848091362497926445182700886497289734505405370932298213535832854930355834265845832601230628460938055291186415935237150747233854159788978644336992313268412347578642611490296128860256135452079859737807728994238119884484950421983256335923355066399818073490830138463831144476681672191887106371685329228753841885491034754190463994629428706167701670469220025188250978133777234836490765197577909644053229026986513690372418866019890872227418169793132869553714636608292488548621837675015600753541795181281242180263216457960395398855376689945610108812623914778533758202382947880879550685988740337465176886254854371489532230150850753940988514759878256848871978975154470744080980343192576729654848830843001169283281539328611597785065765100535871828249670920463760651981468426937425894376150927896222691345626070596393111602816944502934392544257931569894401571529213131591610445179193034231959020769309654890297589606157496942309111060689794292568416115841332941966330792292669560664033899222786080842049976180897054769239533463242057572320433274830876976104465302580615450638110586306359131474112330434934247665440084691077488585815209217742092187262161280571694173769447251106298438211118382042048862652367536835730020611026497327221581885803533394509236231153872176471560758670026745459366160922951517981002411349736628206595011632950006778804284691578077549331728323522073111990121937947836131649898249278184880376169257154848039060216529442408752241715051012934039676476392851941365231872269220249390996227487797673379461174921582339288506703215629713036149218670404633299903521773033759708228347484816648769564646544998227110948589106297545695322589982139991481490710832893582867362841175834176018995293464367478503997606858914679158126170767430001086930627035541486789978699015847964380134937616988578038087989345810200067451915864469653424592957342782732428638298387141573671096326769674636496207861591960146756507902329815273491137178265286214265140775422898245435602586029064769974103188724007640333187167923221998123100549593681511868588082187694736834920271845757483346533168350491015307195860527057371550312200932157821304730661036011303790433363380298199592416478857035478160203574084649964788943318715196141924911551265521460649799972414942606737615609138226357610296128098570657866774608616899374736366786977692327394873483496065704750210051411861544054399903720994829184371526113591565841856221055494536748035999766560385416010081188470053815912614283184713531290962861841046071103967293102691990540002095772986123371508924116887226847862214528136816859619220628830447425999073436627040714539863082143142153502669101572029799619983484918115810868997166511442544080607257897033586961954545739436764410509730844801212232692273493038813826842227557628204577672676674369480613573634303433552631006863765431634464985660977829804094746465694138350582285014045364828844542763769478286359574372104946252878457812548218806310196720005434908252742602693381542403396572177099244479709398860643985535012863615993140415673600101907387637136414512714286014031590343865947341936104369401615791127747681548779967501008675996716905734754941369684950007264017190614431590572151656887133839776379848720600640363740370130488618121008839724022048719051904207168713061796733588991455360663139375912174741694513505477255212272006491439910221519890893362396482626850813957312927965671700850850317393953205251514274195751295993447840699316076522536344937931106287456208198363619377490934882676312665504406904048441588889111507573037118741468252007947098179702005314937324088218407394300715267673743555656259195513804553171401714254360920606883263781353272930004087214752058848863413332725987363335480231629626267812818907032903946395827242573953097812052502389350659488188692678001070246572287847996196721099072897096608887070570658889167946630849539442324322829970675001708945851637940897686270619597550164195935092643071091484528360915984302978247994412981128689282726873953497421832730932074428283193095824462271804536600833775426020940174480178802483337123127771757935266410939301810179808650334997442125847086369428008661787460889131751489993523354526593318628324709565055715493770480796936809316939543840952259098423798499280967800852031864222563392147626921919418008921854243102678245751153617043425543574099085581495904720600688894749830752111377620217185104982285939156278146802423027229159875464116264019502618669474401148080602374935126528028856777954629433011798380168597615673846871496930572552318079128082482416970268120569967093509527161820361837734630250880278353321963803250283555317917183603879204279891511962455424497420610435447511949689539613581915890792160970808452997946154660745210846791732861324004381460622558456388718839285583369396760479215978352531576720402185691858682510766609674907141832051564447981204363534792205698127641391423119549901550106165768318529832991513094112909962195728087201465963597210406894663477813886152735828415335667359730646207490955918962915071351582083069875206572127875811119176180765206633836419371427519271454169565402555762641991389809589203974654650938272709002209503003165834093082638870256125762428667920845819393777091755242151748633136873635355209721594316924946933842381541999431065483553539654710265900303475403053568139805178596464569221298398830336176795710446907313145390747769750213983097072632360819515634521211832193021771034850166304936842631026745118530731756138513491900862841704538965880978920969865727485255800455431302158476914551041576489244144839184133377227270297538109569463037680142076777589093562506047765967233793096134811029552360569853961242873118132321267122832197346781874718989303524453744819553774550296765295017958513237962255637575250627147894938098873289400664127671504013646750056091127427650118656693155981144390086143282806989494766394305802971394413186676638952469060185661624779451046622531478032513964780066628972276056472545535152440768570007763562119546588225325032039632725967423585514676781257338347278685281447334581413425696805548448803248787686601548461857444526064808224411006935095018813926522161821922093884670549985463431666350267186483437583746078480705736672658232961595263671255597773202512646511198324833147511937996839573145746086106236966801474545048750213581154945510006368460265859572775033689956540881385994953222591778669127202611599053599592784730500834853696345991918585220316663791036368581244002108395086253133143039661301168841484491412299129899931117891785071376953020268619722226454661067889355530721552816393683837387237105351166865234699811528581915722069046532904074995491250427858666389262248375969985004881224766154832738410070808541517902981275823841156766823688758271149825789260055301804664995481666823462600389264385605039117562325897440214597055743396306867364897373106982134861235873964307104568328662853424835557827413324602219307250904318648599897154738320558562457287368953835359233907593563226226200302659528411792355316803885597521440373536555230378546904426903655793236899206802939045780255919379554785779379450607266665710090229450486094977476019249225314636456422960455095227903244589215705638303942419265142566522751801538192485831523320067523391748738937881504080340373573932108788163627579177799009424476882211165461548546654672181672924104305166035779324766098888453941236960215180499147804814255272137723012322349167847170544745694728483067861594057522762904110783986278632497993886494828813816796376565683642826379247202329048812210115803586857402629684577505051976464854692654820783841071838385638799092404268430234393320015589434192375519267360427060526662031396766182126785739083937781474849225032601002562308536055073423856734237929508618460963264145835403582184301104420817059385914940746672630880585773451487240907519562587276801211354193079817059299821313884965548062835116653985461656795683733522138484594392472336601558073736204363582194067125821754119016203781718652745082151664278058584000085424971149646755054711280006769668394924610834290203572284602174423921878088931432535084508799498137917209100807823761921276218564139265518388570964500170009343905511425447139592029669985152201951060075362437050807388884624465113643948281142987259644992463304118236569517679399308194100552579741759859584451464819825908615301447794293899749398703049082384801481924452850285593255310538703529447734079924604406977184788621744720448424829777668690595062354680743636861603767865946946100498137392353204239265427471498461693417913322439643467962538796447853775520982484230134069777737731652197625656455732794545071954208581817344574120794452330524852975925741275524818862587396832178536789640199648690595331739064870051788343832158529745264809093005375450706380118378653177315989893793586335078612910270402065460590997782272839106293329782808947852352102850526935656301334505748725942038392418972006274926988270419637397780800741992600702045902701538758697274838427554101398955155178022094996345256770017442430030901352414791043536625826687931247938438527929735099119223885692925931134752413277817510036506873445426389052369687625204552055992653841915436134774775705998963780392401608587695650471753988304272577078176388725496910369707172807481426276818495101867252852011742677699731312391724776151053884312097615000636800847001647753041164465964873375595659947362669770794494568958938713072094432733679970436086460830948443702055880980204785452396147435176336388247128415045830623699995703105734072692180670478042591137171882685940027454538185481393045861569782284193653597542008739676088802126128384035729919060601504196786405787988656105454125827600883826552940229476480637569243306188289471940383694699739311013393912276333632856704155141486737235940559629648099871285948015810662644490359555650597500126786587007532994333615874533109375512517378519928036882559111209655533845356895367064915432697292999200032823151318871490098065326694705888007121251410666508370314032513044101191065920426549536293486654193497723585066729031636183387553921018626075543802360034360086081364456949709371410154029759170586925983857214461371293543478637357075840646130068071544000436751720845810569973886663078657733777463063379446227360090760220161671464933287918328946894050822243269260639408664714859117170666566076603275165797618623596937052114651512433893955569973166356135731106174615174819047381292950029545240092413935086623538190232003807675410663938077015970143027145456289353573871487316856026635810582813593476236731071041819458171675210863485771924989556947752859463298229485761078180630252646678669115008281735314439956305857674979035511624393670357278301782890307654837774553432071890712723795730121497754681738597885010070701927278012603515129417478831156466038266293606745491900133223326862867669662843389429516480565874586438624737390797935689497432040675810917409852704460871239584119817146691264599192061008806299232314057878978677905658302409520510651721152784769366421623255889323438390784935749756818594555158241541134108731230707658425540239137177248406496763389357047880371780026060215658075154371729535009532208195256810118162389314670240323620005846158641742804255462321922119179206733315045018524465576597791197948905784642878918457377583337944048665443170409579921539179023250160102756368954431647315495575193500708404312075731200601656086308366797597737004240336220555199020637654046737336118140959281232489043551537330806231112933371263386037501844451003124861700625959920786144256727967481470315940705052318651175406656617337704868730040300260937105539570460427281335770025118081244322707809448865679417790074187318589126699596924626630094130233230345785054467885444188196111027458431728876564513427155088423275152241970384098952866044654836489348025645259496165200551837316427851871559406448258246837569197115207912578766441783296727515252299954280437247287547240556435923274297581554476950905646910662654165862735337396397484898855666240579901468877560277738337965597012724831726795961031987180891389135591790280719579566555533464961064165046980550292526868887376850340608014011514532715667627296228716898943908185856724937167679428535441309802606520197838170874126006671775224745834295223371457490660393400392122929976102325334436419946241652733409241686858258670934372787027826090436394714130593522931859851594003342357019714470040212207867167967861191447712190569662740568540643765746896688936810586324351450715132577365943356192331405460393665890200361918128909936072018237888088053574530472626862217236651360038461915255662093669582559543158064067405917901621225995357104157068330615825480735381034721665451622688875858344714682693250094460135963636058529380178681521252732762447799832955455334811163134673950532287806817242583481113834711269094056428046030253605530266924700502239218164622740855772207859360036904948187621476562613689264694419731946026662692247073378044045024350582846131299837497731593167802683682693648135259755497317511875572570597230573565310658497979222820733024539575307588098853963695121757893254697064932510575928536228958556189575023630175479153272518913559302060341993142174002788288203287471117109404707976659097699232613301641455707330271257483215681479795140396930660879241007629507939707333129445194090215535613635152716821635000093139743177653914043793403492553530923679700851219961838775628456164817684568254568472581170674981075207880435837273443802016615195809718898909814670356411134586746331295268435150922435929214422893273716570068326492793323174855386626465064170708053231463244266304314742145995057791154171002031164410988921273686948791461518712318435391983315003619340757784310165723104050469705791139894087155591835939173507288253441297541359196735792175054655899020735192848410209960857779128728613468765349218357555387632674922105824875933255537572350843584928975513754587547976543271914934602321844256876214168450515503125721077795851210173398336311978999205528175586062560515614478764830757130614764440116939231311656989725106466570812123751204594830116533792945771113198442103117312690503127538225031706396220986930516910165156196377957682738880504950664153862644028239558585173310106818109900472307542758767995515967592795855935376889545525005944318877864991428953462685210969058462608526566747362702662433113529161169322322258332747276298133614773332961025290125817352299447910112612910267049402904139598762064734162771122810057407865524307409034749601129491852999190477993615882716295575644353102235426202844525810532613518196761675229267018677046337199488094135294597737252079653838937323373390486014841628590802745660918663267284537948218183247156473305110646885807598050551337472282260151046198860308994634280604616840203922337314349628715586243269481173889749604583836565971771667967729309156146761232545770655645726156796192865481159674620226360078204564450707869789012375596546515310550350220741797027734203682072347133509422417592468873309741714393294132209470735983358229199459099160383023224194420923109968258050739082354422049186378823272615341440868944619208632424179520646396273224197262421432844452722271167536177816832110693685606446154643501411948206358546624089404946890967874112993268020000473872198257329127273249183202917474985261665616439761750829811351457166232926346303371631297465263755213274263789778910191733918586126759172694314462388770137208284187044644259195623420528646212053306266957131151536454862353625200339416094453076804309838109987587207133561151385082076006600443110648754017131118464091651708235936135701552469374886654160499372582860462565827855159899335318728723822379219569286616835577695817382530550174377326447921863212414928738614499871024453232660601888566772385388365433879473096243059086578167107821524833181384957999364503891633462206039555559427889813555748747036015265871736144463409924597966455779121283789580387707273672379701252099746039504523897170267002846247000658238727660446199257991538317457161638688607847814920823143394992284696969210768418290488196537101651211186123669613918985182292387040729392078764188305277541517544309299941715687541078565330889812292536356173413631056772126574022955750054160152095951576325167326086614207215093454388011777914606271562459968849871447771847380348777518218382751207172474636308648392696444829744040687202780836102356447818968710717196277074533935677786384652098881537179498303258419678488486945306061547073945876699301916944810578576149042290730299064661487075207167261470422227841251895236228621247665623213754002600823634247323886633351515438059262777623396543516639251053734319216176344405227195143301152482771492007029703408053772297094594511456153411863395830165672156684018200634821740720756356106185818143092816946427562986623135897160694415499299195647845538622534788452159771737548979310157286224526179498459931030105148272887401698531975674529773515172967590672417545331366072299715686189374121324695801570246908638706018729054037746195541375438088717405581138079587805789307770337953063130195115598954915328102986252312478908004102245491590450099030053853801393848649678722965637723275496702992521212276511612326674363467449722874462282089040697508518259680311257446185318270247630856744081431144552123242115962509356592616971096030723153248822905030689800993598981545815852054041487181052563677160492626376707031385559622268983436796256225406141658625333868487176359345083088044284428543335835161908125057604002974941409463025541767272485590075175111409469544619628033279096152983253714663730441860006461508799618741129893817634770136501713820590376492068577595271521336867139012162027277492516192946586571094145040336896283163430659801126387761320806351100174715768506786390010269183162822222490835456203343809202996244270864466575999695151493992327781671827921632584313125260437443815998172444060936546043179596610998263318630235132639796743600993550306759432836236093636777893239149373162794954519408972949225302209971400442724128608730311708828700299512961537860852933595278708916508407470387552869374370170499568823722003838347582404258328021305407781278015707801029197157301960509260224824708061407218514459949595839936683402987733498745211295426663487817996667044477943775420791161134381749639022355945532578450902255911733049482310790210238515881178804409629209338363557053280909303403575301045363013020830414896759527900742936625877853737545558949134392888642893418503401094393697975167067782095315498792033851455268677443372978206569716980674766310623766154832003237456976392604570458663672932922086972256163825456099160838803822732301025112783410905762299257619145584811601776270251506174934725186959584165447322689692207063100616101277046134456011226652959630715692351561802445249712405302443001891077119448680531076764780722843359388866669255118221493874603958795843004549042510637120867465094271481848626214876878048337757179848922695803632988293396549591150240703652781854079545273660606723411504931623022943954785550685782606229806864577489182999938678770850831955440227907611936686491695520645699530481005735017372077206122071245332378120100110831524786105008709820903683629476501925556695264660542175328240231096658800855476966409583721386363172397888023022309117659365321497960040779895655832086034790208547919999443606461628073110075035979812506877062582447105907195324885640487137718085554093823214788791452390761176692289988604148387304529334637860417189805703180773604892605924977259033539505863517321474762227731694395769992514899520168167551806805740767041027489298461069186171459846768789211203331236598548570995974696856502524725677676756109609135972561332242465442872609101917197700753633738948705425263835756892404792986568849690853270055806329168819334620966456233083531642045816289675600607140811209079093230070845672093886879428877510020303889828444356761929483751870847396694967947409589007019398697998924948777747401773099764739383083618050168425894927198925092797668553674050218241280864644016984983664460335311766943037130355676163312002021954045072555660585672208348725200005471638659858769202652456991846840953471119483937719072046806610653229389010038044864079979546121075880927405589709800312110137686622084633833405507899658864149088679920294858289587923423511121280192970076035401659967296459709122470885809533350014259297576942371046587953758377849156882514109869714297295413859015246157989265998847867704775342723121090940792896900338078851870074742780033606428379473284224029727535200590873569498437458897428806814252070057178038388364161273813741853315885920195818118826515889035604477987146849362029088061086201034098972861652755963661716780910920175090811638125277322854143225832743492726137530729779137619111251155000593797605196082277729125209030819316339971567609538820565579352006429231779386120516152641449854661907720100261676932470147919899609353900706658463924764069556422372639245767059915330998934826167850204264607973817146117787971817994061731150019707286420124218287115272651251141812579920894633813807466526112340757336293203930648077619694991772654810168122104003237758275817020153285735299682774693826519780864548032089415436322217111157861636776830391352736714772622598502112313705239216666260226986330547297997724960093789662807620695601788995798909151770558175759421625489014780581746012465256732936599607020771652149767899361776123952758669991438528808781098276584954388143664661691089756093772016265244034933022669112136332143649453492277788513290994044558696605966375328213146124798989212019184758234637749914676208049216505920358041350435258057291934898070797371199332196018357164671780031779888171753056618173035029564569614280014809474361882743171653014807407253141534046966087902352704390607815956621772795026042314373188618689003807234391745760010186024553221177750174407216238835431107187960031079708988864568266706984050439775903852960421632563966353721826395161986900531260416492917051891404586318774964594780495510211939186959211496080992049100702838369423342750914899578370305413205417275059774097282060475972640656585433028958855955197979160189828664034320755306624248062121467899405330253170913400578552668355965648469175280044114307502190253443673636464035220398248582315920583771321665888247035344922571828775017824880171297363067034056565784960972473465709064224883537549175276587907929899678565806044488309000723761095980429037050368564626239099981880607427531874862317591335970796869007321153696062094066121895862005566587279356873203633450153550978895772651104476752850567328470686193338155323468142861643643221638419515764154908808863564351124323263513140106336302843129912867605703672679215708158550394597820239722527401333848498974897349164613051980471746983890036767228265639260931153149148655405143180849568241357157110008244670983904276409125688841425406692024456583546212081949857342954291025746779256553262117207650682831963904523767918444723521129258987559872017310962894748797248840277580408008109978321218718057534829051920392215427615182997236084017427792014491241556491330029714081161702458405655596770379586516020794402301170198669144791895651892910067853725305301180463313129250213920004777276720703047393567358741934833113281405714200877297248033511558053240958468090814643748389443620517769280657947616747454422222024887473144256176525898963064969307037233142439509876062251881106938911652258064066821257243275145808600082092524841595478973858315399349314551347329736157929691683739589246205777862517445025253554049361286746010689381306642655737225755861299842157080653841684016330902159690056559988454803392784408751507850825486651182963176054844435067375846315402056041619974344666845263239011604936212704569890680372144014440779029933113477356324147462734630630537547185603211941383958342240762985626644078499002115710915311044509235061232520763851816567960985102375486413120758961885791095260418045646529045021751320862172952068803471944549468965349812266894221524285281618593392254127435363958695160852946742495175442016579357878193407841147106005029461879313715419336080013846133324586693404899186092914694598254532194596460234538934770466888607600411495129728750073707696392762626778611991054405688915280182841328417641397930765923017067403802163336690714687407067297217989850103049687770386852442247699967253568997500627361916330391513236784704889676562930971222907532301317875445453901738802388266134665630959260411081696550675646849256204300043901513608561175326642388066882367303411726226832930238248846882417409348497313569814634848448363393409993417849151805774930996953484127472991332281568365434591699389951705520390988979959494530732507496715486494271586732590896617400250884161625987314661132079324503061062172107815077963356871871418705336567023418924915763790843748506008596100179165408592317677426067469055804109921228719331409222429957564164975761969076650857319784841466319780066873228085394718241171319030908664264291890018090718399113596424867986485607569746166960642866635932466141984242424116623124315161648469156901556504564667980009699176084009438005247936151529232613472394697800375406955885233242965957894954816260681174824015605875941179698121004560559047351301126611876106271777738092329033872553058084853789771619748672578679033927633915353697452988539102716948164264070437159752973131342743141742733198824952222037866743503756504208566208877939427465415420803822734794554277201784762564682755902720711929752571878955840374116981841799318388905918691776184703244468735340540619705999494678370702309891835749242898988500700862365441816671452489869784234800135034252600545422953432083400474019813545274373232323491608956403665741212895018544140691591750364817514950794055606055441157202641345565463720212560920459704746712511011866427007384046545876156492397108559556450715214377757690900347033883077550250928103927883314900113398228511276599805604638394299367606096807242990017784683970891898148285563127291264805549011930216409882059809648547351046379621165137184739666011960141503663653652723869682860385048979177712552071043038302745405574684190077458678739052598977956748749881988105443128678206606529762794607995647240657545236537450624955364813184556492407967233946193394167150187250565266548217245529538167145965928555953224783499849532827830753068086413246250723477363751200015085947259477014851261746564265328671480129466784133505297700958870851921115149854645214368977228415452965592563618988856652576439213120004802248042409906755696791564431862361814329866720398386329640035482037755908906389867752482393747527216987575201050375606624887767249881147622898549272152408076418424635502120440009343609430040235440590692433712018428152826665779579689336488118787819919135362923652428717984443627066368111377646523319860498791732490797415149741770844532874775591255934669488694910615764173917629911267805782586193326327993926253449630273050749836442228420260036077921347765214559067450793836488633814001118740804727482192083273930447458599407724052423912929785106378922011005713710339404884699197930691819844483794067845810239961598085449156435747188136854827294311731545506120762893671464116950462647925646547901710497858597536000699207085418866501406620575543768399682944817408107833312707590790118931656684224570507347272313387293161464311848355727491301207177302208098517362415483852196842987090352452874411576741966671592991666386841848301369173511384741474538960431776823905511322360086585974332988703789657352720418700414999003954490195587539768702081374921937973464664784100806881425395808782695384341965947912459419594965352983116038324674747665497132039943643133952097626442605547961625057672699607802153507465831880287729642827645179154477189246228920629074325179864118123391034394196319521517914882120522409131653995742177278533435261753612272027696983370353609535599807362830684598273706763819244138361252559883709294591811494778890674382547905739949545590392278883536247929080777835097752005460672538836878540977547030022215140853883824159581628171046289584600002060980540910120338529486916467520627873687836427091072044465726069894257177442868611444382397011583834088332929175230348329664392176427574755770059644054054667898737685710439791616932246215034155556978865143048996082413342465730181756065387113707587338861973339756532111532548760371438902697173859320937919691274920318100895856343699434709660175445471483472888245633007579173047254615475400905672547507787548110045894355903521233587081290371716896483820764829273702409224170699598049112274911890780802931256185874216123343672323089803410215009360263608038349134398238349222988792765381846505075833154454987813570530644590567056437223802433298068459830548730433119082818395588488773041348006110143470060454125662802092363350771380754982959661740902566742254579552334523663580973175299259270884789202053703273093824311736092360424570363128467033361327872046735822157637298730388504439020645443253445956685131121818529295344214748447254724273908559231506403061459299660746246834999462645670342343315275969657803116938743451385546741719138055917673348000872794714620376065084446587120733368252639550793659389152206084094226674630977598454756874717396558634069806106210141684779514363090433386526585462748067470295147795037819924508623586226788953236737924166364349055569619594525918085651077060734517721419362389644388347373130566922433007875151949167409227987596133538271687627016321444886617002122933155116165716468368000354907175985392002898004677512056558083215417111191836519593489233678761398544755455328280251394266557218541335947725855445325222194710119423895791208890673814860604866539936358583903501233845129824697558697461738137405302834232019902547868253402564978209790067390086187696095990755825481846275402784247703353333853381577967483956640130183037143246944385409182487751716513454293249755672498734953122729702526040822581442571610373186960555968332931363708849790496381799276521604067211473084320837431526983327825210050754677128448741377750662287999149160990487639158892633432619782930522807502770212108476560498410257136204694378976601830576001526399190253490564643962188739955087458070706899064847230838403294488149008384980840521480567173087739797321351749994755957109184398544430025690186817926807001969860240708658512289791041599880414283582666992989991446952229016845719687279182675509896758903846040119651238540379782106847034641203252092859472288278659715072982261572832324472671682676678975354295442308538376866992604782383981630386487648173294272190256914109687927500630315743685600939270666319363025130069873624295743812410235668245153045882067272822417921000441194092429773832438941792633631699107408192962930945417155340642344419219125244408829763787033499317967327507113620911331780263060362753047312846372453376892080121993563328743282288026526929276951802032419826615561165956275521472772727755233686193849066477429871336816684141114974214987069427604692570486437414656788662015282013757389270985112644445805472663214018529164987281840977239081457809282955959629932851684183648517897955183302679963878028161843922793539351562874860405945175546475242220302755437080156905513786891134689347277306678412204838936847239825537038851048820668655525869633509970127866146059377595895558579345101516152166601687795050085739102136332275056987964460587289504917360813980825848134883338537681012748605626670049544615613041809744666654453563884682329488263882618045928254562587729777713214371152297651491310200572774231137074776928838855347805658249780878314279657124847928445649252504624917170279174161714778128930503029059432522978761217521609646883106151103549803993808388576129618519920416589481531509938127844388858563150522633649287239339595982843642625563618567430128775901606221472914067586405374182960902947344999496190224438870769127224095247099156739676467346495369275189116806692497140992698091521700534560577739899402178642128290937806483452031539314456063516680663043651450691393170301216530368946990068755166569355765436097742883466873175057085751808705921063846536408324717030756683260498739634387155259630330786656368420991478211853731454587593760221787497915088403312535928418720145355693629017476221138447620329391460361662508088798366222842808882712152637671255469606348822582337440726412519556188463913855226584266230815006467015208086408332896168570880918154210872728385697507691521284087248821989933735666483881745592398305362577449600829528329513200409875415840781139621478067756419598101570539916462095611275999562856349989601334177825404800415089528750428668340547095618542639158682472988142622321723454318881572655905366171527843936193247904656250228191818454365645869636172700032394972759662109672161570879517773503339457204907967374142415636740207281005648235278116813075310083220815545882741975207548292752511440239042208636993552312396802126440828035624443742984650480069173491262640633649808181883680287205450570574111496439349115379382434839114696813853101613843358900635133319889305919527195974376058578463050385533323940118659971444917370841154320041252503725196126361646302983077298568527460922027282930689912548833664494921533549422958867103245385504516562493594655257630123884985274113608494246062778602294332941757170352359850640944235887912782093780688841740573388450991089503898372270430834387073723320198874381863658121729585160910991158209411010611606735064099177346960157517469476588428364331935070483767910241627217057498141067381554695438732541373571598765281673588459527514810611555615490115258419934152714976211199772685341335779269168927551725373312434916162968771691300904711097233305452397387829320259968260173557133081810877631433733911602452434802700237289254879041062165118092469739854936238109376700072270031034912074764331068743915341094840298440488717601709464767891009654850066396990460827566924741776686653730961021651059585996606650316948698254970853647241623519538686732837517963724838806380777015984597083485194921660854803625940303196289069406730946717296543083556457894134965481078950511620869876765018828468602955579520915722051692437996444056125601749800989893663208218120993858414017518561641138803687165792332686258251074525570647850780528408029501294264437027752057706087729488907008240896750948392063960414603636500473382130422117496928413042518037521678803965245959036244103862975988319128133030489390661711997340616529451757360576836735587816287450022672990595265945799231671972278619065624300514012050231913496411499672580292902054218257582656142546686289350978715560450063796549719762887561419773519085208911302924432023600245036030146959689577928150503132643528631588580091017383014598444808620291132685114887892538246925076455133330033390808805388471463135075039259756085192526009565703651234339127222464589237247464751446431616878365242261407549836138353980396001186326865899541187310209086544473614620256982908159940555151054082806985294143822183067915223440376833381644204578419855109335346104381567344505688489824876861371354298051512759150457158365878541471258056779942735483980398422197854509996639248718062745632576410702130778228389898941654726377800442472070897885729528114010087473292832938241423353942864573743325524257405532638715985998700119198831131703576462058119216777547779976932783881492711582288601871396335456731769334378630412359928260975082026072652025118572618643006079206109265976878459822415153027018597263595127967684510714744457978182682232841427102819093902977928282891881313353858699101385568468698221777845508792865307082238305877738938546936405642658633633336849441681360580088775399439835020116541536860476666003035459366690588030848022823267180217967081732037070970653615632279505299404358183119799733133725329987358710558952214558519085072383118842808137770427009576618645711445268866355667649135578028329147313906214200654559222893189804631657498601200906189950557872134533387726124026371785921183873216953870217615113723319036388375815111742619835429942127654415895682302674928876310831084424290510922435457752075691169689468977528366234892529740230116176646347732201707060402578765596092211778031949574375799192588834777815405053915262044331640792934551256863273597976476618488163947622349283131624120626071353103374049389975263014072260325908310041582020494377848051596631777365021139247846089600629450518940692608113389751039289042726843745175175844721145894368138007771590518121918411096129909057489502940771529578381559842306742648998760907084684563413849219169053849784211354050614850319417077521989877798711270275395655435548243505313900806192864479277656782190517635155201661394945256008853192490870397865834420009271970731316453533296142528668284148322125785429702453847646855714305873129806381417498841690040120946241048078094586527863097330963326789179370774770561196508937629233114776827260655557500867976923676888911099980452888047512968954596906487164415751918724625617912231599538275833844879647070333058474298682623591454640518748600751483417242327249028387306225441157256491794929127375286128705117875890489550414596393547077757985812166680703410621230648109588075831855736389306053346238500421720511068913703968625825435180100868067590986704811946193859595414355344771939380392695254079862041866101742342457306829521730409221088616785648754421731097461429841918041081693646147661850699841370215957154874769327753927814506422744964943028003332676464210641552029599378130910403316075402146714904110681080876783770598564662579867848043752286957987957634409164000761627610823573567179937922385623513935177955882520348861703578175005962020037741229470451095228133496663173533711762850207318015614996452277241638735337423858780629963343615113275300041852971810126222635885604634656748337195832092031921658891387523676722128613849314746844694246620008930253984331265247152485190193070449838524253337417237929037798986051855575229201275413816225374618999248202374063750246262282525222483734232197912431755504828673784466879995049595526307399929074689815442345236500881698840036976509985650452249384581669577155353749529293179032118096040675427283423381557734428278475998570399454558366834311939015650646147281618716908331491585837927822193693200954999800754923751982640857699978564330844661744687214866014082841941179492967517322179371732469743363901434359342085265150214817977861632612597753664934374241280106802795987581358129865361716592627665945452446260928460410232097881937269315254938568700542035267143000528346692823407368935442087736432312096212220862424773226930021406648500955729763702786742280029230397392159450355527833046339309485142162194063784230294855315150082903802851555184247726327004746117863403822047017983932365076032700175398579981040158580035429366903437570785651881323703596680046874238669973420040990428556266437639777025061973332493047456405879209972777889596222562640028965649042767151687878177604589569202581816942100663811742743893822073823240672977990287901697681468054390272955991797420640268213691123817496549440119121581507342531166257579268533775079218039961079011885663568015359902474488479297698123315609359140761057860585957217895807709532871511296062928081450779489043845281640686177420181066850744757005499894467925711680257095578804390189863741226101898555069394526308255188449091689395067534077741892519837752994849802663766494658919916183674760160696513692433145079270453639369033502003055468235464946586250363885857820653719256715963325117948725055769990151836082738907798941628905094464055200332224965487908084123465891478890356548132729865291817248148834386261026213947142776880189746788890785749032500493916141121224852271330384402601166647628931224921259990982694400549055881430553187229608083027312363578553118171857356716463178013704137186267620631201648712703533955477140085159513550580257325357904857806036523679066354600624080113317123880375256411536562147397702568747440131370876719539915228763615780205964639496410197209916746051099432392730971320786601493694285540663241547530496141774436162857947503276713463725891542790987408079015367488201666907643317736158259664006184041163168639879271553240700870357475936398613489826689846541126882599377775441093485023888243798515050676644716515889521730121280323830421114062065375486429664395970927421605042118612092088738056026324132752230887073637213870209757273260718377094817886186511065261785875475789460782216790946205972108126905082162837936829408186962466023368420244849134348482027250806138239518466952702639137435579940721413956905031749401686234122101768848827929545201776625955697644257915164449670898022410781606281793886429690814050189276444587499364626973938950015873697632459032329328884466561537942320138662284215454905912378993104514759718521101500246402013913540193606639411691758807471312113245130723254044500028751711231157199741495987079455571792221960777197105726448906131324609980797531203549135937193175864363159230826896205849690031266688583291293534425892376828323769913327540028574845351263231325966633805061952420622564293142649936757499769713877575289926383363034512595170993531756135089727949039077580181664980262352293012743507923135461440567286148349703547426435926402232535150817434582388390549421334468347224065396461688502948841765983691944073573264260393690887399523572246678797343324074124756264788529235876862530627579507512151135735388978128285430319784641360222711642055823543939917316298058268094470131120949653606043572419742071802030001102727144598166532715090560234288174539276710506714724772474763928686867174728983246701999344592597249552527253179891146760182587748103507762814625941392792539506611921666660377320796314536851362211177268629914975639923892688796175839873897648517047880485694481999104381772076801614862728338067930675849434372403428123835891821453882450307590589766871010990764941313137299690057463334615365392131508609614605210351358700364240062253210154456139364544382533063539799517982910035676234653760736392329647138578754916872186317155086893884314937578020910750960287146624580030866811870293753174213856035367732819761896281088713756014386749692708659511988540804579962719142060294940282780510296420194385034030132320615360948087899065936917245257788074091749188646631863135901440194734139241783907552590140298687470607505314749943778844974897879623450774233275538776496999724997817820735517106966671013722415693723339165141346094076648494068102388165939600488733778448127457938298739974313708307858729767192397285472710401612563322642937747696776808587625628577210556948092017006934760038053794817576426934519425932077580659855614942980854108245223087299379500130969937335298908745165717934454474035695772462597059285693467139909901919434997501325074669221893799535396162706117873030833296867718029861044160956321845710829224333026189497392471855267445429780616922728128246381631920491628417533412478145547741725336715646926987758631104346099938587421371305519522737466675783386758870438699589946780126944598252648509137031274746272158923268313628487161210276411413017566081732449045474206180125096119116269102635908590594740757529381707180845242795965181656987003703309401876893183250746557991686271946389204025864239664721019409855345888559590156040794875698053063580340157326505153457540764704879969426093637591209493860286664497863545424838511164062378454654761169875782694020436780716630548642419186491926951314057188133685416673446658464659678529203679367203779616696524586653837400288698778194109360987557128090831147769449795145112255682272347942394785423519751480475705118941482057732613333414344271931108568592607802754393194089218320875516571121487454227084742484717069332003286467893263107158823567942385181446978436715378737022384347427870196551995348801348613787727468495165630868493756440986836755567316670371792736899621474943424597687538853835167846169147636331114028882539328399360221856716994589412829943219209785065727424252834275351954877002080237196225584380222592809369802440682194994433425419997342165279489068737251492931529460735632109769986538804863937944627056848687453198440819838979231620880150989778352400011705776216658131761737736018940748089726081666857806538110926242754095358612436472083963902416794539359892580150917583415640823105738459252694997206864886039761985346870132611991448633825058855282600333167643365528374400909258614907396782463454248801226844514881851776508646443971789884661162432231054816308939659101524756819424652801485942618146407128763538791488926450389826752909701786604249459574283918890412754917428278851487179685821753043617596650817977216757660705624885345541157578873290217237424417773308050875057305569008388200071239995139399717058425745661852160630352686790520681388440586054459086452649224493123283816647380379896663347816740790158588721499539743588081388648380093781930422840716951332375888545588875061687678168272981227167507077195820474071332714408976560047185613250857142938349790250291882057405515572152351017140250818391120024609480143175936463383283309668054725435079984852950086485291080831408256096646250737443971439334752243128700775902012095595861410096415569176295710364139323178381145703696202435827402277476802435310174573663174153348392710786419149208309587975662171034309091894049225545294079453901401974045417625314190858108641783865094373901500192430443780340351281992686047166966204663941559542214122526846614159439731022884424253957784152388120162011961112332433067693575753376534581654506146277163972125283859121435241624565837059191547601985367047935979469117895045528257641498416976496944410438631068191747808042596448262754769100572470001436544106812837896496743853051304052825768165589294176715590311501250647210858107531238670623554048409322189730174512247970071592543663741099659322984622103472636448443113916221823988599503317638680940507020377185762633819972103680285915802025140606971382100972510760724341258666247302673141313977765658270712302751519980326713216676438382953645076490896051790288837746999938812454936140532927782764972161646055452106962140137059240774994922103105098993164089729268248868534727919240950764276561337586869722897936126989849146007329956271179975697802283149606311835623991285590863907639522793082579442521451754789610874518732001437023440102908466927072375197331962123728177296416941131204835022064833271099891294570435696933740496873675952328425083045319614874800564219951881776464362465005328445266468330360199395610058811626764640229075946576859630215491646029013233953313808957061583191736300129607319477309992567419589130064920961417125624454646833552847740129272456845388087780880822380026879606972020729538431637173461088526121899662950169889611782343426745225820841577376809162931249478284897989185241687377956012821958799068496170846188403203585328496039520110394443368955488590475345332269120737312832704416970158407026121366012032618287714476187820835870428053217883806569283172699850457737263003256308753931681530057854284018830893503931195312097569137228595921872833344081280127923042780556031432083444455548762425074319834735019926400409317629336563295005544875376129834894215775156676775563103546005420040296929659028451782000096429661511959911325555502576927667893183435536125266347395500459816577966035152301873108368131585060056079011108885892543415756762857002455503251633582838180909526070333816663993996273988010070217819995850880097962960552885440686436821685734866264310519861856505660175214938251157540269672463587659334328777282741481572059953408058019738840065349030190337217046845592099765459006186944886317344574249070838163918491906299589138594653177868906992249118766247990442286102043415476797212448115478707228373221902257318619313817721361057162830718264122425650205711677352819800059772686493049078881766589203596068547184091684862457406237086809993949096122691006860721644444267301080235891756052005163913019502206683692971277625123280459109075972272663428498005230397624863381365013532612831417046222268813302978981375663494085934651608247828337675757341201023837322379964840543260391685510919550345230839674852906135342286394045078969118587188547017655775353566017352832404188724947165175273824084250160493862511845096449434019464545586212015235656899022689058314391908964398136251827752267456764481789731166370381446674161220447953065339939098643686647404819266247272494165170930350295284005904535658811733491861805092092652228821734417624060021295514975108115283702458365048442361953913372798368493852467767608811712548862289849054250772845029374662897628628316770257233296080246904439859505918350486471015183585155057591892442375234298078853956294333179965200920631893742377514477226926349104046942450614544866068089282646270966634303669892943916772948695758823591120008627766282313897731744119691726263098696413391328689446897052404878263878995320477357289162833960052761497906613002937305308547507317421552505104295126343667226358414802894807107299409148702720963812939433108538127464021812384116165693616559289665643912837566330946047587919846862130609270596151674062294576364761010235260549707255074499001399172429976521864563112699336509679412758570933378813212084624824850156229904021390925948502489379777054759734625434366170407738988974987435850198961563324369321604628627777996391682927603988395085848337654337473881591504504112117518275622880231908442075854928418033432476499312600217450834343594851580437774403004334947854201224649215507064118762250620822566986930895975912210955652691929094805300249470332306346374547478363636183520367999548446026290802508175503672911776140686133737255639018656728030947073564996441818538288947117992429564894327211504792290148287020368717301620169737782006069631057189870297863208927027877207169819410179150529702900065624003164588843885853989294867874570811289759268611284118766066863515404813696971471743754279542465011315551641462997870334846251150778391041862005047890949593842238345960094944384977384556818152815365154695269230552262198404941127894561968106582224879428242792013669768741328681359836280930540664419856257846089318929139417137396647328962975534421693855167741710113899641421687150033588429356966372022353034380047683456067609197937604572028757628066578588509657106937172245067663125351778809934385628668395956630757906798260512300725791694845700161989437240131942140167232060960693997904040186075065547299091957548068779886594223570489032550323282479942019212134686924656487668423625060731964267315178684663984266331329793383142352360794959973896903338146108993401959784225016538336433689820706276143497934987866408858895058617728491351053716212766805137168593445166604091914395986524284332215582585868172935236740425975917630629752144351057330972737641443105750577665396031702562399042229371013506124711680842093472083882011911590755020022628029544408759539806824330193193484999416121856826089412872886736444173303015454384851622617531972954286356150664370789870292214929136194662488432086041659519348750955588585603356475844256079813422368328588778964495467197627058754777694198423921371999173529698442887758937096609872098857500888884381769240966702779123365841363761097244503594125966907278185517687239803006604273172233758097154740739665330199795322472756414966110700451898893816567082508886019332076950332007665980286788852922200147432922818909702080604572585901927425354671583772260804864204831369265554955233526740711889958930278593312550229495155212968932637489983376017563632882887861548845867166492687655347548048361279565704546925069292236490762082459323635513439903892253606516341898194395682738006246108571549564822618430316024087167572649251464517808839883144668412980289727637486800396552636374829307399835601884214444419083985030104243009529519941512816150589878559171447042664764448406441485238338380345288162898411985575778709861082109857473589900843823086734245857477513961607280024994949369956205910573284526075988969266016553776750620812428430645204737002879823627526184480345890467077274955910883001278417522032403002045075141898146972164168519616128352547528976751349503912985089947452202909112118812749609399072125292038824572970822468138274318758689956450031330629703039637812243719047210462686682826938318613310430032226263411387040609855588020775668410231180614735013933750187587693397310889237273432937037228241836957946009601380359099888380702112425091963491265382962468740557856239711717435657904856038760249593665223449126607426739570602979466819229408876189225859825656014155819981782040620800864659780279204175019252053072446770033237325333978157138735573925939235320965211863852833353822720414301807340969352776635425959646314939840266914290149466970736514026857973291306051818209088277495708033149892516603130272543750116958950969582510543618538159804920027992885625465674985279183287371496351980294969302048293434039299005965920639074963232791761873916599710764207218525133714029320899186577902113030180729595194738021023216631484308076755839972467469864180288791842149005377401948937629239213938438246340855007343130233626554169976750747685117614710099015963728025980463834792958377051890242182568255015093309112883699028748023899005865319711435024210727239872293945848479377902084523679112417200532656209782005029972817466803977759649271684803706482093227162010945499740551420224788521028322527474601166023349986489914098042312160117562950371808136039030892971808157458365100325623908699402387703187617339797034434725402518856229869301639709861248588042397462549601065918808361480876436143096274536987102093272069052998919631780710255591566172497062627414163074062483761290681595204862419607617671354666109839286210946683543362548795071630747112819442368731335096267810049177823329134110822743644323778383808568974707021158844605404812772754314520709185637623563671522048556964951661535285520370731325076981860688457359816352987606010846165095999575753852833236883140294640742071935270932825120521622546286728704880967883257749797227324191579547041830806612170873850696931321019894645441249658988317954601182255697385376609839710031372414196444171875905925163461662157678958002892230116135301165154186055576024007817736429254891984710630619636491538985755367882870396152490391516017606409127843659320604635769327664799612328636539921183345709564283123123050108479014899971815778658442421254542043232256044887138045853805351325280890683443725056614856106022247603394067401638558969918302214797919659878102043581170223586199783206427350836828478059970654060703095448322826796292271830396419264449190880100629674747891568228641317338572318149329072083825665935115378152746550559129923845858517084901945012190924525021782507525455840132798995315905322926695559765837767080376689732448264463859640124131579548111346192010848989495675506203935189489769370789088666406088092893073722032488220919268580945076439349295351904697452448360459561670962242206835695055786715345869080263653642821069820644981052143046396714603408545907704140121707886525458729782468326968582734351589076038388844502802186816552856526455024731851241313957785315743465683300861646674907653190410672706380249015401384633490828288133791864149657811023036431082660754734744255660502941328089876808537543773553428958646649619714108515212919862287346574070798111243298572160199268160997116977194769402591336334466720681562823218903666885110245014996209292218088188908562551557443903235524998522903192701869564193400442836673170359487346603870506384745367433682540089330595937411498626136853737506173857139456611567868139169175318401611730463104693723404673202734852492447096714501333910979365821455278660624546672663308242997832126190625507643309720114607464622599290785821471208656038807482877161509227945947058690318663490253968601779077791168622180298021158076617939388871710168030881916751433890070526448041779064013816924541128899707265928092567945319030950206113985736587833090712787025841120154358888099833520679809172864627508524650518242502261258921712607345617353300588456007845935218898411157155160250472512276895741952669910548685611176499988612854476058058693574906242393425712006895919520231581736517602339349454338796811689229251388168213913048501668313002625781680054563494227512379178167317012736949997301405674661577633877260101635487769282370922104865471269508556095085622614678630301026268935921205317521250581501996660494121844846501376158517961186566299842746357095679628196729645825846113814326083114184338298716111119043734812836087121162128275266492600510127242962847416445832098244432774490884495160841646021663062618924731581983702952115697813060919819346642510107774082485999231656167065405411412228381831418383065212242430557563271381031428348089536079126660829455793128758060396523242067332700837844310159313059870478195674053355874748085369853374732588616920172732975347966244088449153780433727723085868995164732703414601293934163391753957078116426942849741715384216659387748356337697195944258599597570048212198038178220261347962062942485030714984393961653623217875563749766579842878861512912680922729584104758481244547666042633951465148385002806246387733946845341735367066214201969805546028005535131765158311340756293551885861257593008190998584791862690223032862558664921367108079594029284179582399649939163452040371542515786748029808239798527597463857714793367484143787751828213090335762938172896443963131997812821511463417111100460234723383252465067868862058322839641577222255990728782290890006903457696591877699453861131576869202680063113416236833071481989438440389942302339871649459047103437927165977323224141194400953186014738652490857283645894490513435288456728949302281046379516381669003350996674311641448705907063859585444972167711782849539718836097915748876323743701080809544194688166968234219414684178703980648460370115692682740838940281677913798810259181207222779922952889676235466339799568240195858707477718643026091714812415123527057682452555203840394408219714552230514667305256370268342048366653529813852946915130481045422013563705388279827213229114542361961132508381729427801287097920518257162346884743275480599972050405696316816007474616150257389030878173281148713590556529554226887026473446652122901911684715140538500387201864631917864380857676841834815737030825354502644062462035802557047959154658023631692988570575485619542818434021621493047313640668105840782132990719427280234248052612451989105599854181287044275274015236152788399410540692248757174316521022945315536020005841171091801601469514325937496501234372931956331605394280870180879906575207959469996487663347427864850008860783525705033308089821011705827084999855004039516895646167682632570784662245674455028137294762993313120276028196974548388101007614187539500612961501476356848193857730317861465480685132488089320848817959529439838333857387579700803636355780154646854564354406416476357639004884414686280186963576472438915601760305512681811791148072560914891531840402100444397637829148434445531508508592304545020493826090106455589992414527339334146425558965053781832447225378779892819848771553972206699847463488075103253008825494843437324422818647274336326822924660035589378015797009347545733310950557135862203761789988174361585381681617628645116085132746520461378458775850105635353576250780383039923178694900406991169718376964715636332712751399931162686389485696515726684084521555000523960991159893465730722082443648110496361413041957270036105944471879143376200684904832713123882760286519953796034074392785979468368094675156715704235430258632141038855320282968777873535155418212675236653234326386166921072498099535554458231290646582285194658679325369633760185237388049512274931620486931637049174351069078577413705371722461142220151672198616980062836655172374766687466032791135667644560268124724646783211703249672117110676837927330100589027715983648706562652072698952473740346159115504264965824715093357984721829956242290043809360322208949897177573718629569761226461501048192547853144336371193302540226170283389608171267492168808441689943998041534911204136194675190104992788013021857592397004452004486040558271343783641273099363487241745162019931069991224840212164309774574203055481227201038527922085446620043327212551174340172446438564790082046638352537454901579977502894056815926169943027820915940630111310572730076650900939736294916884533972355695816696732485737299875194764416314773772552420275519567962568608772518324563174113432166562831727168595798276312539117203044670800203265295189631805082977255357763197799508470640886776583702240303633717735101932904650605579685786619860987598407565485082777586451826234172814541834370222969906704823441371490864765370254897463769056987154298683672727363332016908280809759521875593276749415089894675692095892825568182940742070984541623105380850239304872243444071121028246247293914096813066210784016568242876678987591472274764022803639238117020890299942862923804945941988000713164657519382184583244759408149407158839910076988678174507057740131369084715797056087790695004398163013098450949061725371166704391994793434023880517365921600207996171003493313123259352492778790786300432020017289981743309235250683461304719135854636463086399351837291682436188082453569461997589274060270746647948638029002229381990270436512006575703378045986717390895515753275108564597872822708996028697321782813004633144440849243650576134728727761239316445472590161468611126058381279666255060298411394574052265721144010547797771989183078512217581117524461259283151939917951643332067429450853722409397742931445946853386507554132064660510651640945445695664404492956853027823811593040523860955052214125939911525922891076454364956739667211970007357937755147311249294626279008012232153019373602161165264082958024492689629469470199561762005277192651436733956436718673594657489921553933799129953354290545141254990015310956108986344029188076749962189918615953144437528648844937222385791783482585269529837686373805182320323230722577748577481133504841603300878280042493850187919017849375425958695912466447027827120887465045458883697395868072268611654678630492735282636148859205805847487840368494899040498371663424764543024519149785128212249309356796358545039248400385445876669866335465309293627809145274379740103448974071678124910327567477760990592582701536901402343234181743439633133239509203468000421439685588301904922275742064755423857807287730237080653097811838443693204648638852400375561584145615896697363537190788581669416898563452762790059785460846019499557196393116917479605366168509471886329330752713489650185927203047509026296300162979540969186598675547636969553665486816398686337038720158651333392405092418860701812481999302359387366147701786969683948873828698547877310699320873002671106952004997533649906469656924958584272671222646473794100211169429843351456155175596834679239656100617512028732588885503657631239676771253659580680018265039734943505250527997679260271397421604475088285525204599100621918871343006191441639329539046824951931438919163506700065118720232023760856695723194824931217858108684745142904652990254889500159713088428229648182958640543816184695755675914171958675890188047784954889473590652616779845471461185519243948333401763583052991884891640172455739958702642634551700374766199473466356077474573171540879473990706536525022290333749494040121961898085024762708534991599066117056287275336989475704194384199710195585100025394545728361930605843096077152536626129843690033774544232832134486400954394196490384822861605759648078698369153993872702217482623156734081853203556209471115513793489056463234550494088684713738741467407241257179599976333599928414142899850728958190420277182650143374645239433964391153105129566910682574362020206526748518429987636546654439950485427481780260965665914024195314974541363706870226110451131900756592773117766283950465599006415404425894669972443751905373591380671603421094456018878034509086000430903764470192279155351775554909152001953750072712440543245492489699086590015606031357622378408009862864268284306972838207914562997817616678434896604516120180418064291134073520745012706152899406882851677089349122904079195477420028750767542952920989135531936596082758267860157684582622665921586936453554650815794917455766993596292101318266298688919673011358735677884133998517058468332867531107519879161729997640627850690235368187156412464554664479570656721589168106420179063387827536062591472978198855719726757599651571218126098731670151080007005213808708333908532421929208465856564028749177673840151514543848897744349442875692168535970100671581689778618462476730246720227374921287780570185431191815237755570445347519418748023662847343107654852106026704026612542446474570874303387038150383628754731540473718264803038207208194391631851248678068963815909159465505535538561699393906119888350930188017071563387653023579099918854827884475902216966041149307746076590955569446534058578795337152383655000183008314392429587487115665558848359730545447951384100592457902168208343811953538593402021171035048690394073178575124249245927027697113989596342723579904254135588136617609963828793360271362800497131111848527862028349875665896868962204153737295768096681637551864996195431474779273289759439017345698209902346409303919726693692587883624122911733712330597564097422183846798445036018999014283978453429028075564380947790897881438807129079245252865991685673335358681747982850928920438802995274020633887136681538657981216202248357036165657779375144217855713341629934588292759409459215049395338695610481225007149105234320659584359837812894886771888603096305849028756235457258474508164867385753464645189879967742283882416421570526046995671187210700008035285604975617038150655522225411179853550952444633949209324227362219957083170615610535361820003750391311951064484991153247421188974958459661958872509828238472377310775303962189314097207873825839775044860677141949907634089038588542230181308313609809248480524862309182115875062159950694366771682962049582278430642830372493945987810831363724312917529806176923525474038944687194887330321102695889953785372403913074704881361309434676438072316607113176510277765038351269570643094206908495969606162314702875887045226384174868024030283672302976935851310532094974477251938524437292450929039976566390297824177258112142203954924883460925021530446670917301857043663730350438658611056298836577991918969935593855400569194782334209265345542105301621165632842117537653987712982291256077769799088461027015292243927409494652906200290299418912895486153122329479628440354938805298888259672365918526466510660706664588228916784113360227250518237373595155889200807053505019863854718112748856288735125724989871876826225407510011036418621483818609566056422207436396917719303799597019317939254732851991181614317767996824821142832976364914709128001086336430477925012598194309341793881227371404157606135197506916965401245208326882645218253719526951205277656098180229125396551746428286332462292315672345979888605122950103327365996911628116259238915272683036367711065297543833955519032914822941596066356097748560293234773236677049896258112474868044138986371150574273869625135496599600301131122827949313514513847956739632321412890458514998292776660511567474395355206199563845191237492631587114241474790449587266137277881903435740245465616309290242718126637493294102798720392122698071664923254140118490375886496986716815179222444929470544729345896467851385943834966008653121917575639425254350031849408482131259899254403766940983140988349309278481749103762753897655864685348995962937939826232236438806742669457473893846452936542132503676520383325872875447923217554388372505631228975800616183904966747374760390522540751140198238159946641161287007981080427206461027319102162346960771486542000963184154292932129386503115569700774781938149954378944848192980751418469141904990305026480250355684190224757294470107108221904306997109242100848699437660259998267853679570610218127542531385765497132557102446198227584797754244460281552826804082379868578630060292244052399505022308818077804527335789411108385631621751497226700359357352747233006387990229151781881618976952252899508976813688333683495091805037590910824454016996384728226783376373320096700857338652069116922444159879630525729442467475315115611468501925005370244297235995432201140104208299396474698377211235480419780149023032953434207214754048962513642519077999788458615159938013968684603628397169681060523569602607072513121171668314199534623955321502387914522653353930341990922516378453163886856615333747498538375667052811609454485313754466322690472223856328159502282101011458985469443554023119116712282276700946336441775003494332167710457081280564290483846247571384067591286514644031067376889514845316406738979720766841726303065281231067417877711207798428934743260901207165611058684555117590967007997694667616774197848366167529975578186378920342448476837241194987594366090010481642598163154837441141467307517658195942654889329786767777286052365024300354212297430382784203786921501678282828872692886309096269364773361516363202185480478215871592478340677832436477217953036751359885644813396801695494434055653642933118792644423581948777408840403449881347017604419571011007538090563835383344218400382215158006605858722591834626234501132255879673117548230856879680023530565347644158591281102078377272834717889449008404863630871038380217492278648506147577771126682475371791895553957232006784262037291128020924785103057181475699440423969790141571648841162702321463637270604523891296648863008866361771028431596103033319918654429226277769501841322344616876513918213394305513745797880719449873840815682307518732332991980928884534629397655142658152392012976146582823418591615017740251401966080593120056199696090144349341571655662276402229601553003287944876737896829559283339125625284068512231717527960447454144788291889272566304776359162598573750295188613286881004594572251445486909332631713932446740910685875931086244978064639599202917347781277955382837956597007348301648258457528434304832706660192724697817342635482995783001816109874946144906405267589192906632967950723704863944557145220318201133071617573981750662791029057624148705969540218060214292829080318073436240826882029748949806521685596170442276747493737186125825976401231877271861562639901698921327552608689342378945395469351669580848783868841356700474647930515432150863371682145285201010083269220824692983577158305126668420563908168180062418004435724092147508316182881275477126049959002793059536377495892802851819228230474431715696102530034873118303961281427096959819247007973391698298259509513305706079281779184051829965476645232258699049424460750057109350094070565007846565786474943704127580702633645636397032322027440087310105638778213665371076613060707638011419494065765089876661748410887555808744841070877147449916005535160431082208829420611376085672471507007927261475284661667151693925458652443257313851611979226999638897819370638130149581941579237482973954950178332901077561935220186374766275465780934005135303982811787722466000547925525889479683767920811904947256528435319943565137968468298092342975108065080149532319606208677952656039853392726649764609243191206138980860012468930784330688471376537720842462738978187449014134508897301497029719485329187924545789424513291415233764696658551634300203493689108507379823361355439861608535610660769260815957496436401210165631590682331665281064217918329378899038073178335381636029544409207061823085251950134496235607692012823247333421022354304025234346393424447016013946639251548814694217232847812156645423366276947297689607824516765747933652547837138676231696212368976655701176567103376231146958138088964854276511136010452247361792877179126317576194576194615785426234917193483660014806097572561380418495528040855774979256382857438472661407811509553114811306559882620370658204175949186910827281297408844988106236169789680369954811606425609083870236891479516992725144947050814984181837539096034557005358970566052791654062662453826535325440078700247446900250529496629787499386267334955665869156488764981000292975166174418136486428910095439164460830584575658885088244408284475821955647007222221754332825626834044356256773607952863893754587922619536596572031412470925794221433114424088137821284960021955736978190773675752882386242560064217214928298014891529214459167215689086848556048053069840030137978602110808895965104725679698375712755555179898815547690736668442019273167948432184693646422999256964735654325446054270941818102053899092791971063602499522874367742389186770639907981376367683516834681482090328511246435866347376722410642844089722465480389033751141908579279633877779178199887737164626869919588573567564281912764121665019115076605707411753126969683568605662008828448547170002417989679382851871200277296024554365907360930999442054047515200868003873307528418391691078004862926231801379835030561000454584330534381161492708872169306828003315725078667744097042688253647046868769687281320480163428471266417171884207065521641149870513302056841998528202475805363571089424978275326287368619862895337063016427300956380908684766723894042927350511638479210364249144664828335990790291418254516826859550910108319985949224377518904948442189119436072467691573696746413928867041105759347691613995069405829882009067273853026542292098091724138281940727864696020484411998436296673419444637156725677543105885716964948644562598167704254438788040424484110681882456714090232770467943734603301731420333995521186880355348775892596317331104196884687549147995593683948506595158225513884471122111152387236033729803103595023943945421509092131744779670696558810950864575068234600330469068928861226189767510344065510138115857984047438830089251827604387315388624300035781776792108646108435741777577214307650686291403990239842765725799302646728234519616150173949932579279972374028035052338263719166005291879454110075766654477876538350726650432968684134734905460177410149717106936338967523005271020273869568883870445662515908949702892642668202305643800425640141592014732743657510886505961992015638090516406518151193551546525243458298289685348920736365686715598054648442734792923788023532654770159400093561986048037395236834167714465552683550269906332815855239051800598489701185077551686418399162805482529427496183469066377658032803111652592207088308226989036795433635907647753132977091501025610129920188367846757257617255025475422283462853532361212000167379342839226996878892403190927152952236648184337553380651590964660997273369877143999066676057921697221066009588394025910221256437050965482164276295639215376092881978592274797588295794191568077289379870827745725885490188003286693569880870291656225177497624267147306534012818268991870924850295952218294482218934297608200896336207627521000444585950006502296707131031125786770758645069180314953886923535872734989098931236725475592076669647241972505305954116775831392559510588176928249151627842175664199169002898981127878463595058172074715633216039322942413480500185976755605554354240693455231903039623461429180288605901214621992960625732357526702326491969433612365650064694611503749968099315817064273235611139502052853789158011305857687728800095027177657938673602259118940171302966917619760500593707861649360826284487514711601849847841425542192666279606771434314174418336603469134020681775636404751237773174032656322639963305782884692879942147440499554615248962222219470596874415464105810426885282515096615864165225834191226641808094687162087369039463925947882987023857332232972112865323293249485020514652390875098528454175808950057440221925821778471446700601924799544857322040579743325996467532072995006743693266316984562613138221638780863144385593254991884865563285913168644536826185376287006824595919982198457124002319516818129119694042614931772197639160641713813867428252590662126122282375929473424380335642212392217983988375963243249481850565844813459556683784824174148022142294925256567268847943257956542054045388547061560741930957931443150664272506118578741100065283663378046652143658998557560136756439549238572156668077165537244278007046899042099405436741013327300393628816014250560890089880608347808766833546968071274182840199325940549049645895169111174711442775489169319324708649132863958220459543731853872727395262068584388277087923520739490932882998485625142934376753291573808032752073657722368042841152747380035522808801313834385300081055542378352693325684791982914992076066943109920709761796046109165183194265843442289347143815836365009362114099917498541053373735581250018086015595765000321786646481315456909538459737073125644931371937020795005937124709758114993186285542440989595370511354341298689384725152517620887766409513974688722413059696221127373868788973323842717586442218116485549842779055235667170006693159476934241707879239233122512234489234863326920335322461030012630276408898826295299518184673689453274239899519064506515054846623429624383177243920096909058028775938761997901203023694770303515722408172295356557473530797297670980717633726456111437799123880343263190402338327778908797021406883562893201989658226297369296690060659879944856450132071367104568091641856661998587731970990763210099734313548643594358502249343892067472363601913123808159722638057364462917122040015552994856031719217386328156220042322973069887114948368670404002496350845117364114013279432039396759545549751479660578359716973370546982333406465248729380099096625972727549485122809689814376626740821739637726508800975016036528713791706808168420197879010908834031380805221038187777719918540658593602739085322561665780204553549216159929625834010248528731380266100195165490939494666972563511626771831711903810771335377450459614422753513242583836919248541439861036735195358396556018219058202121460870235965801606919442119954050454752013319695779281715164861683391896448597629254894364160498314057919999785141872869721274211720848643477350376108825576571668132154864140263574868899484693357851549398397943687632361995130910174695753284550009652011759798328928498742569449692529486799058902860079583534784180766814430904645481844443153879226922075358699880050218583030457178427582053397423964640978702036823066244824248988907894759896407347216737297224766262060347518336308430715474438333194542216831346120252648867869828654380989423265225875838333986808905426622112412053017700146411763714777467970763914065395909702227975424406510199065813239014957672039793578161218297571425064880286225389638364363592433115822412730285610792101922043972590380266603138567936699468060274592817757641669399236895496714950589762788732317368298789456097093367108141903885778580024367297721849158536374833498910724084805877487534166743596219943542081657105771270961531357450579037491861395336137772821841371784447532104819469547304487833411421565494499446987436679453230604392451108202749901582073661815781798770363783211845163309526052141852315180400023582929754900591021286650073849575561539256607077306393300988409099136957956441781610565573370283329030058665543345841932791951911998033473607558738809225584643462056984266966695411385975849351610679685591537475809277008269688278035994050201407090350151424440411248564528741245990375642109648799131592375871422641739958237983128337419024591060563528876002387941466059064281176313335502808495607815735025232401823388966329413760805318871271092044350298628641438402445561215833917788378514722680573719122782967412278939350098747920284004421080015727807660131616007967411563269795496494604495077191383290739671869739991308991720615030279674979152135440421398428511614058682075510386464285513686510105034429725892267874701157674161874874951713372484141456240028509923063341842635208727005270058619168326438633807637331231859452642360882941547518525709471218151998400359898749202552148578972534288033280429325847085248268462547857045371689783165376544332184606447486370874059961285060587846596988389189282632411868734545158816959862287322663786924860052138439871511308009297721336643744295864754786265541350748247033321994279703113091167732639576297213434709785558194437525288385636558438698088064954752573141269613876206041469941353280299222173106459670240788396059397187117581850841068872674592937621950599768609202943455125453257711162767678249016691656619022443823420188912615932448466018501099969016692270670387657697934770221990076966151574273124119008276471779730655114416658337850650144160546467567390552271067224308465108792241214705426424331875027569942044814184967884504180587598418011430240332190061087788080527293862651639587825874655316958457501172701668190745618406861373108686694110419389327401752670798035355545056193995164094948363964302686703909240788189221869929964970829302825536253232969512723128909293320534018690826210891692617378577566941942918326459654134374090870855464238641817197832385014319349644469303459976730108853780110281204858628807403594224249489802870412688583658198756485472341871230583741510539502991552663731020674085510460131431691098661964500407302849598946655908793906808117130909566517721402944516087559414561283605364025903391151617744373407152787214940486954978166213933553201875532156333011781651864603358317042498726315797083378048735890856349009593366735759082871219369871191515089898292967720926178351966648245886011603976213430579747114985241954370039768024455175174172233400537153937426591780535530654466704888702751067297785185159502043909136408432936098271924523851480650168563751729629011892671629087756117162329480905590646339734986007048576840299511902049778246432233250317806867606052102729688904984457957684469113378379011767875184461655531511348103356877185544119125191414740202151147538147298182343843730322136666421410985051615163441864292665122789462361784618477332935363405697154433871406877810319151502104006988833710106090351428410991906425141587459819937144700915786866336200286805126020044083764367043543608212147786753415135455399513609577011593617351370388387179961624876106987961384849672491381351614400150274189889717787848518750616204011280871215431166079887070562381252127195699495113646104864922713999729438606474326929185176138869859628649130025258181821835830828683064065975316104420131238993748498268149063308599969252808963775173072713044131756666061624902860820545068113317405981123700429224065818950460636639679583323150696275025361326990947888589446092180292200442761690236607089667732010470774044038248435707014240615403465454111672878442285322355330470106292822681827152871429397851118694585333530267682204670810720540836788991164583407868067573864262348836203177138391332925157927099883147797712042959358108770198039661172438603769278164200889051131125129722934026825148530750329613990114145626178826946028553637550731067563467139227683836323546111892839469972132538961460091511797318484382330676225906379492574954890789123825968250519651790648135827658438445613840444744588926295209490132460426480341772382556141491799306763596127504998977071764636039895746906433294778414905192262517253441742248925359870207309160567585888803515872743088708780996150910123247304473411752913917493002163045360275654834240661170104768060416004942826371193715984733037038003924827086115169033143391056936175310791173396782843120177700850084186482616957033638472136419857614498789781061952983683757504523341250401126958721892484631410426621881210008789805324082760727351419755048197276593638433574511433294598363375457902196104599735275480432613710600881256404335845527210844681817249681403192063321749791642390501561808038344202947664975168531768598231297884027916181514861898364793348148596523831882914229694492900163260845356735590550534611519403179468610819654028474400389342749441127316022845189413797344958012188970756558041934112651612897273298784699964592451960893113782531986986023752374767481974855529057057311440481197243430025044501113096891998394080844864793455758345854955287739281765955464451512162249896922015291629298717406350205693833203485546736984753157905751676211092829976118666522599226079213257876706655488867748488027622771295402195626964851126334545611813641870270844686334686967765188551270132092715795523979688540867920717664319532825600453744777044293398001526294074254832315134186026801332005527012107327488425089350665032643682130559952693631759395318978681725897501447108954042309207104344274477966018963748857335495373965084860851532609335473292379176141661505808724184465046062104374204681154896443891494993266441336244291072199721019227874322272126159754936042092774411544015220556792963776029157363500382503814391354993466432706456140025180000993693332355596875753856513543884094861514923794367892723613876328208219888908892763926467436183155594479435301604632371689276345080936609814742243195756281356720639129510092333708089386287028537231611819326497788171538682087875944189543263291535869050831595703665175790786411662035179989538930538254357057226444298167593863744940670015839964402267749718973618490783540643995381742705138214250594196951452547333956816069487803557233660270705624106724651987984667493630242784105666939075333792145545890584078565640218551584900788049427850032212103675167382731993582097767101093476945780093971545312381342814751226734999196354444356962244076364755013936267607328705035882908781310472514139600478910868314461608911346558454317735180968592282731114170036340535401481169006953643479723658818398956527273182749142283993570101542727374730531408043894804962058549480297685771355521579017654943750875284610298169477014384069984346938294189922234133034186399098655582036362857954479082742283414390695621303529153970662276337742039722806830709196898682009301608867293007197209597758394756683787217508188975904116753541024516447743790206899446671701867019703260374106081663034707196049191178083793301793300052082836817464321538699782081768097015877253363003454274737516873846473993091458507565656774959271264787427166643260469130729905994139885726416380021907452304959308021358658057093608919752929308383862827902810992102020661481952968873398332417213305195005123952665387062331564845307588584504564238910318062976811382244776188704485925837135426076056100883943517065752818823527490855437637383512159404810619918989000968400581572372240768043000055159173802753769036951987094449382103876075689591777121916192863043811894366375111290324557119571771807710915004423908262787896803186725603191068609217170288208862221624482973365277396841852912472689349444510510830767099583948747034954466173546345011318262874836244110553608172060915001804703927096426967012731549991513342410868678764803791974843570906246596183132075320568766591199589081360471513838344402527909803883931466586789283997466668467215882169470904462973065081302460886083964268741261117076742018666078272069181732648111415313542753896593373572692126892355987525430528356198082473744938304306520619955076797871435590896417416325891515843628769329966338105754947194377085513704478142795459794626580425500401758866486816235533513859274111764241438384080632324518886696898402805664397186706944132663767439854885368945953043479524720170760274312520988929800663514734893667204675640130082455318017908142619294585338765753442292908959500531886663931946787829713526165634277769320029519838147925803406703281035594401386110541259569401103849182268973308516115146617167773233092001753187619106676070011202005494096923965456541055425899956227500282371293075061743602292054453189401310627392575470979068873124784807709146826816570440820642238335509929347997984642250610295979417377795066935867000811950919111116281200554434247048431530286332701141113895990735796429300776911100649354185963340780064616113077498302831534059818228066826654113449313781897708700924654629346814674697249211457253573863601474163933171111060277125881632343791405538831291978151616307333373168888600462042063499232287027186553593510032636853361254869025520249757695464706853361234796398792627420784126366849138777214049603962007870276525169763604635009406154004980484220017020593979516996318159948342269655121849733490988817057592105085440110353342406154878717648570866146434912052007422953552264366788821833161225267508422062379057907360031906046937719485768551192526064377282295091003154729806019927225220961480749620134037079154363199675927607791545587504652064578817249983363732344529595841696412287502592305903216693353153645859309017312192397420044176395583715531756620998459602955444816584939634047262311122225126610835225224231561361345853027816326154975752613451576800690202798091476315681542353445247723032396309300244346159076584151147883650010457393275394932833851974404265786676803251774802463575179052565430917123937603713641129852749894800040919025943752472179988497745509904453272417151671214767705564277846652828517142223446771642003001090696701905541463688441814888544446101333913408533673558745489282914596117620519871484326105459595228412813150272490426527085379037319306232680096178931670526041092948655397738311562678751315585805215866581458311449993013205142461396269950186460544658786252440791144880401120045755958623801592409945054192918197733400849410537587537420224285163734315656489417428054405188796850712552209694431251621837268416422871216637152737668401187909004235018071684246009141545921604170854863373757129096234080573512798336048630016717495122483234829437571941308649837737721315627246589819522995734896850348195000001012593070703821137840842980188789668288612007378718483170819827794336885418962520764815235478133605239864370341683423158744108874633098468825897637811878886739548814349950028216475218407064115820678617994060186936240172678869111239237102497004585466491391386062922710950932900601941974575557018337493715986096744392021943785945926577965728890667020043348739008630438945606514235657790615237356657508675259304928774390501355500494516804300420668147835122011565277682152890582511048833661927308049469494170471077434252250080637760819718631408093232439576468274846243332909632755194269499203118838946487680638742522690306209077018405942988757976327741491026088609832196523313328889419145657570290083622680685254251527818902278214358725237998549808230341462507940943891752348929126643194085402810229246778318670425793858282283422765970951057887035517908405555024512921802383026110634255994477048275820430014276845567553571070447131309560497191826834930305244343968622499429010466599085536862881386773952895391288620188109082424579978042588337664986879102843112180842003140943181742322123584322614182477613488105615356520857067991162073389470548823018321607363641872103339973745164011192880161627191057636663934447783030928989525950138907182432273051151440266839868531878959081255753911128951037863218900341995013731963470528015214091138374321141454590958812742814105399511622521743091829204014048181072229234948353147953744194172509793297597330938362477345696288325737979804746684543141949834936003684931518986558822289027068589492446155833895747180280566142616790656900329810442684470262543229680457077398987164477165620654042424360800221029650874632549986054606157987499129075602625544006280656189359407965185941185328121112688123911989813770703992820285261170385188349545924101711938102103392238280763613334959144559110548814185052619277377848819953591830255044746836181915553088321126811862773087743846343532014823426668972197306455704224869169623413611006429723962498116938115247795932168854336350619855882210102529520117823216609743230621348505235241321168095624756461557372258327479047177926037627660616313197683438365773778664713354345203333154575686651333806233439215063566342052979074670256954125205586383663335433913554331045032050707000824560365526991847601683075746622333679569520701720970548155391251798589155008991008987896610428125064840306359655389584798670807124056727023584431068383562953409232415674318955749747079569496390878797346547472383091874379555294236467871719197425063193765247650194719750010565242756485402682949080159250777152984745934890528626193678618057135907881080709098519589729862137329737871076042803009549649760121215852360041933525118189548600852403754609153643810265498907862579165347197984862103103556972965954905861540724470251313619006373279754695438866836569702906516044103121953644187409718347798581532044315350890147300095644257812459145555620197784014735673699971253852066935010781268875779816173066584413066499888358939139198421330922083879607592019148944575496732183710497657521772778456340974159266826312613725605767058846607828998236828151389464000091304315811050237509952105323552829631765819269166671644660574895918175285138016143782746655415056018460632639802739478485937743026797111782458122976972735576161672917451159813221198377706673480430700330074655177384179704542883583514266675278189373224564932617601200018043334606998177423742476251436341893421472254574610404521534831832483548520088125426679116753479412658290813164007958192496903751546231474155817228576973362390402381785643537742500758530859044013043922144264199996079089803982538823987871350571479580220080704468310674387717289761080010196049387214785695558231385423110386256806029650632830388014851026513390050523966806556838043057554568661846006540519830597375983594128634338344432870199681580154483602689305836124343331006845254208778545935732125438611450940937043156088135502302416141549081416486709952175444029685209041521771642644620296687824393080534435863778386412494789411428318400043464044851899107572510609199347365416382994997193487722982293816561116667210366596636354714012909970842358569143592644411540451856881283029114880518985813057463582433365517156547557095246817634323222445690683720881546273921535990934463189773241204720262308060070624004788116472350210896877999298578035630132989544528964504796740048133606696395712798101178098016376497213990653576020273166933918353577877449098462210365435872820508297334173719199908194878227327166397885433641642623930775115902730533523431057723205351367512621302486533313487608892730596860939694872568875298496839294834466815095383886875705249710886142470494682472730511594513472948299131952290688585367318486213529884141786571069186098199915639348827599175022238119880964121674781773962963983452061431102857410499672745845970699514083037888112723552594719825080276551432883223881013194342144629712599032772621055766260605226017837805608859193795404239331809298788106926150072388857298063656322055754955474303564812380382246759379118266977469373640969631070872637298751230331654379025447653647039027219156560566998800662012498866366308200256903621424333791529995622137911923297683627034572268597770265085851069805184779254416705972230473756976540721323955290486860786777131161154417158632803150245366916026837658279100182040263011367861935890673451452808710143705037558291155904576758723851934240117450006249978381087970327656479123975093469499128132137236371525173234546769547793737307116608353841632649924173692039155798108157450654837039162838769643104263892042835565037903195874063100142757148869280050711189914313712109742406063377026584709077429164172092748957908472661282443953048268647886725763825863398544436958870502227473973287471794908931782390121328692703986914222281517612248418578641784869510401603941092156756393906062705979130132129331884019421468714615598808439388803356590822415549246405170838055090376705783773022255806247847136608197088532351452588161256569743389974013631725534708416149507234552825402976245763661066990521277537642135708354044355900904026946791938801499052581762125563250278948912968870735926842738676019080319225986666845949961198955373201313846400970733030920849853684557896158559632075565280010580218906918915277105537406223463070697497525379854992685363988186439877133138487036184484200741489421571973834479742165416370773868452058752801774973982566385622978679879225574713772068473741450959490335381135436094702521215912404841186799826884389036065317787442498234229150335468246194210219236513394457980663085039828141293080665658776095572320751705737866237446414285847169340886816962024419233692685391146108665972756776634563747423520842545618096957109304204215445614131973209365408173891195204680132335290815311483153533985275073504986088986125703012220341736969989502777921858899370778708729272050244690478292010324021785455597767235329654209512876708569317776577384265035579614834136474419529928075741214079704206084067494590953057383088209420717760093282808595818556391803025366516778327786688871999214646497189919203450271249108493214434233696745417756921913812370621623942677327730429962340445554815333822632227697833133327818392435054610156918247539152506213148810952685456940229719519948529280835222732473963306775938866024119892784380425284897746717277434723499853722959643960731461814348080913744225106809329722880271277329826544483628363232278469474880896044504059676830781905333208789155681088208067987122356819218302986114282990089023806563277197360884368990850192988512088905065797435785448141202867038323432218644559847511775137083530711802025873195548186045053525934503910823364514674576993104754885125124142636671114640518564482444402126546061579044042938336024154421541483844771916487126074022904537991719353358414769096586036652146252059490204952575576835779744440020749350342126509395463254377291973225808433563411328586964935818408195860358611063279191322842469650137670536384692149827785557203933219399974354227326883763929065464914556653726648091410623936890572580211640609394187986719804880533038282706944487641689504110201113617814064221027252011802532354529310020915309995595885559269321793686487915511961167248542520417836813861916819929926648247713004739260447165614428907558521750621199910522891030929177773810095807006931149531844288493542007936000501922069591988682341837203256193824524684529938603169427416317170391780628293428852844773192889122761368219089394187654847067150728015573770410712718753821025527652360346756787982494524727319965944013677695174668765510991023239841864113053138938905124421420003672027323006194041591326187559982098603887189288512652717984793275882944043487580693695461820219546843369014052020296513246396478778486945490372726870251302179693036827987544259608685242693586769822230331063249449704836670023186868625473549592438348875663801056083447364530082726615301068050981674152990416722427936142924022313400735622227817561866300000758076178469934451991397458492927521088550027169068876837518138950790708434811185278149327880307824798358691228785171384498821074904427927265843353760073529099426886484441499782974573576206455796227436611364074111376121354071917660452333650002126490237979825059316334811913915543038141873809537072077063402704923401532093650969823340848708411832727644636995860125779880287318945201608478347180899487545714405375268151875352506620319715369669530607178689972224456500698756285634752653174102675396632997819626279067576134801226187551927575891436086346261335813815884687427203618317197999871166579576688792329193149521625586183256959703743594336577009306017516447355531906636906966224526155862375728883680019377006224961663923592979357790749385478365678874365166095792323240197527251214938513962432076879414082928253535702361539890619590010976945979349891925248551603960066007500280375091819458406900802244894612297281688609747231464954067343224762401269299500097449293511792407501281230258989097741414524264857861031245674919671834800943068511737911455222485912688241844156334152779309495384887490683583763903056400486131962634381262056675511336203646684482551004000341830627455521292936773167780870936612586937533677932641887795180150927714375544337584403076157745910689787274903200251670718065077345107862420143020234462143725431711882650316708143866051543312325002553938121720036719566900242977584807204433467936418712623781441538001653974531313086627410936403189712756559121160389210679942734950946300210411895003192757478359531374380598555931620529484198229497376454922124050464693297986449279940428590824534845388971532203410436560570409930631650203942943004320457340117909182665028016379385245447507998906744553660649031745597400303533938420526131075684224515586913907248552467686163613708909142226240921051223390586244638753636714086567673281888149868506328607625499785297457133843921077498684859162479628977717698104380709334512868113293052917248367607346030778453711212102359858654839933964183084099115484910313896733593010556413089924143072502265170363415060725193693774724420035836925638323328767884403115238943190849305796654774980216416980190588406703805848511204625790665652162937339536843513724672480238476192758002109258560303907298567281466523123037998074330848733745853869062390562775236838032021575338774470220628477026535530530176572712891171169255566138139562372054350141811537984120688184863399638581357108010799972772584443378686173395584749176975143512283397390032729182271205872849147607967304155474366477101736840388733083835877747004764928207053185266993747273580957380258875789211986132673173978707214270464502188418532270152589282588320538552852018710339845063498723887070430307274343885285553503778304250101690324151117127200065032255047308350226428512122626636010065850855408772714188365931139928991318635036961125999679401847103473483226661788841915366535447869880222374632754436000703800462975766544717978039176097346231086674970153617436688724893298810082403603719079055023682899208448902009502926204571258796269728774197028352750991782368192170009115445436026936789998984381740869925435326526942954351992166586716896373394809242055752980450432969298189084842871070836298038342639376170724368125638703274639062770740017506164325782320909819574049982805586159260366491889726803688375844187164042542033592104134681072667810190493702505486477540446367552870756255043016207055345666980896156778627948187408941924168300162557372075815300378270378138239707266624227717410764226996207209142108882232544809885591604427637836214055475480579360392053324413840232124285738894859713515334628624805209292735069284677893652751098214820497748757545351396522815189288720075865839303469912871034224202937245928545432578896359027364343903675580244641104519029071232244852551137757388060985948000982177457184745866511674537452452647624707137591776707983339626587735613606625330400654472990009288109652249150197323378765640721147606677438171253439407308955895561817502238919057015362428674255518462266951145395251561231006667339848988391763717974354780020211580867914600302130690104345506216587267860842815780779387698346938616662497020630555868362880655634802325518713589021296859363299259411118355772521375043086557155057501070737183707299873725686352716950598037725687514867860228712684191323347386869993476090337572336937431050118158535582078796581704327435992706230214250975821047688877842460580486981137308373185207155366363496577479289470761065876345387826585719823379537399774418584443519652611138523647459895787163981133687644602858920768153039496631782290994282357897120115073729162506601471658942114871826401209541507293697812523235942444534519389196292668537912804692108448656867125316125599100629841277259752700370935089601107046109749567631286275503311756329856914924042138309193464884414322686508482362715145873788090245602476903639161680712534728175475487715707221199263238751157261543559280144638635542387701950323373246056680980851151342767245661745410863625667866871356402476341303558118788435863873871060637311706807473542530530200851676758113853759085741417718023501869229506126301715894877573951336000927697842970559614693359777109842227888078122849791380926735000091145767710242978458054682370061693065575258027178911330229938561087007871298494692581205337254225533790264819171874282220344994209855091405810163549991045772980217291569493550294640318925298962754319419039529537344264341575143444740581048065534696038279651655158029653630344585054846238797928766407039954905080297788536541292686364028094978362118902417971684401118733778288874193357106768213797361142669764462701312271093460877738435496149505224067789032061180718753279776560237128934242746849719150221208550724246087852107492267719501913771835545362022187416948961221210342859390960544577068950086918013620022430174415097232788620140117677703419900827399196188040721789133118809918356952823787008497271246342314008223521227672653552613604157146442978551996274854761388882966108020649781634554795320441359154234149655850378029875520894545156157527091206494877796552366347130587767623539624164797946174566270852422153871199705769632309353692186311621749160576896310256550972903670601458431810782166385700794920460084956551688546076600533887890219610776443212973711383756893915899224879371910390215359131186491849762380651937587747016009375364547196795134201519251318199608162681123241461994971824368761355975838019166899067981157741160523968376992063837427341326598511134241970665231478958982691094207618604946047254718697429641163028351474794903688384055141368761091838384075886799033972946353223887008795268652638959869453580077974075079728781348083696485488990654824605388517359486462256530227452187578733555923527321764250642400282316020868765902977015528342525825083792897821261274335088791365728178450018940394619650076265140479098159979707183715059295249407967662438516275889418570469691685643832479233593034237536635217714927515690874952617920763413549479659167358022985519929965111772700620792198777708769671858413699918956771747363422921229406129815345155169856906092729403427758179798572646336745166763319021408767576358810311232004855767635928477959257184374048241758875162061694929261561959843735768928317875484697500308198846842077398984605959026802724852953208364160554252109268905293298094434641796634490608838507470933925666457446960817086653167932238552555823462821921511788383462393021668661163300184757652419750413391124767001423320655345833514619473898622521017019981942430031754843580189200025954823297720173759438714921073983735808874936041820321053767564605454898565990630495957291261869084133090320762445406207745380441366581916003687383564707189302551097904725391838880099739992414976948095803558199509131425956427177236857796752977335450228996446035532729212015023462802817813018311843321051461530409147742047376273838533248352869323437613095994135603526071978202921938344272636789909394832658491369388700106552264068499739875212436183796339482939018984418477316879688178916111184271212360730721956593759142087760806379543994428336776914826192694006150581096678731714904730782626716664509689211631932600777022871716609220701792694178713807851712882157784620052958654015417896526046181380172694691996634559557977484055175503702086327461069131232920012015307357150725080935310619018559232430027963630459508305560375549383180472391629899599294389651709920527885313266566146029533191123126692236966009430008225957001321990853655215382065746860177824620042819940572197545332837200854237534791227541431342332627254931266498750350165557376804911762172745189310730212324260019939908729804815875529052793601013695667282716089052734630851486866170038140132886983330448638069051554190574540110585413088042824265371826986076632888343068333535342187212631917615075573660488445624301431339626518821910373440518613305270747908028376269960230196783752953661362526363017009542430520192165151602474185131312195390527090173880922033864101886941102265694971038177531946242116809794203491890852491174238055961407646416787162233941886295845671160684878622516142528262344501925554728204955918271189161722440342062704995751555771775234329488134069299184872354494262737402520606882866260102081501491773032220490367624709331042695596780574715350582735954926286850969065805955838559543203469844683793647434277260878867752545679092229505477201856029535204869441496986307337005994301686431330631222133182731346734219816715848412475886431901829181692442527762755972851092290503771894763156340659134062965985605918591982768152277305497093643714712366479011348742649170362693693992183339058189701429072335650482739034594259554767240356654258972480261754986668867110037920098542430571118217746010100070174809541634055711245102679969426497482423554095521684798524604339625312476382222936371374426577953343691980244508872542398357477240236463773651024624091695705019218531877432801428244098172673255264312342724311426080883282074880388125135641362805929412682114611321791419653432801749220609546616883823748232833089857791147841276713481534978314702921804658365138293475560846498499428702232245016105827740970479598880662727365987924108221296739783728799468967944779309208570183683573370545266717309878156745546366006398305908790377364174692493778807940020894757778798049543738258542300973791217340594676514912588914041506594550110362128752520608856518413476999653111613585473724913321573763576886419184389116210929149714865568699130880529953514213602971340987024333381758715524659157395907108934367199714846120535070827490137496426573066901322510752571750227827052502785328597312968401086336456625703233159956859783587329742768879313791385411314768122498221471637941942791957237758956618297371424716506372119939925574473053308597161405061788723106480152896995091491911838730067156885962914280273016452370323688903247997439430690619521493159588121430915951092667203997407685416567107540542134695642849898246451856959629820847799661235879042152936623534374935318215647324304947834663532509419982570982709998456007843373222790297490241050726102709948534661012403084713073479965782651164527164256433068653587465264982656831851122545822954843842847155851075724468376839068213979306919072451963258493293137711502980631952219072892283418731828950256255671267346280166793402998167798675950584853881629276518290614279511453155806983037643923458412293661054635302352304627792830279834561819615310263463037113855197310805630644596153881869098285201741162133597526963174950668803727170012086524744935592394022338497957975039343276343539894138954494791100655209960599489200080890466196486015411428463313367721231902768171634041573934082801030465392598679741416427008877518594171851613554314442844392721887940780980248743291395874053851466119406512617220105966354693140064904431954984858498156285855250636633218249703071259211595150890594225990648343686609093832774722387107908800316486303780864361843197673226038704355941928882097252420451126878230574081493006835449161451442257113285292017451677690181833328948270745439797488846319919844433673731532837537428961889666908281180817042843835844650449529092521565567102619756250951208071836464424754785927554222666898106387057998087535016701564351584974810555103103077649057032884033036788053540806682712471202371783910776187602343274096983235861505425165290574771216364232949081113802265276789765103242594340624660258668225080174354293381799088538703301540605672461471807560230449450022648652249453216918934343171741926774500298740312322558227388757833552547665237651923958397599616281408941755019692692640962427536404575775000731734026507084210024157091570477842677651010770100469060091003560984186182849832771374761651670576934784485042381640146802532234980151078828791830394048960021263014581049091461537656165510766832625818114123198514489269750389785073139881939346604550353699259077430599964170646562361258927665926285535920721714781732236237916450615869119515251669816256773299028540032651501172964387293049915756639494965954934579367641006724168210211261841513674939495471551039322460422192164726220915957848070877775340160475643960784207017009406388039628988014744664528397586508035072514904543308235637049347800964556799527958894950958354911556014947469569997619336471854668370136479973632378655964006096618963742933240070190567879379472920308298039891071554336759245053490122762754311626998960301237726219101231985726569318733199869215150438276366081234317404558129411244052713834685528509118711697933053210159310172686487019646688182974938633363818937648287339918595678972762418325196924200549278557058085852685107912060935341255239618193971568015480149536615041553694091676991682050175664739727235675379955097135362265049988695815844434451694484466839953219135007615181872674300872932619781862932235700484964869321388631478449800278566224446093962088583504278414437336086139070670623506484255712856418329566945587526500502066878122635340147934309317771179432039806623256743864277946588082129863044362162777050806906850088843017303649486051687989763743976970600918571234361104791100332290159521027782911401954726509491403740938836849374964676841471402292005775159933600592253607349920610427035997395695273611218536812318245981906909269844433325418701177260381994064422941458358238783897806704027632701308622310137889472300711532544394953486160899954330447945713778000575503401500177018604218908070849146338059210593830907292269297514357896935312313034305892892644497674774425877905484407695931819990362126412056285571592718444798043510927116541399949815223049941976934517999184117153366404749820648846265611306933198127988528307617721235952681995384884383125097957522345982031068479902840687736952263304564671802499533740601905639170141580542776783638131884167924801011754572328427924324764943339386371997602256027732903261485995636511541287648575219223390356301486673809665980717470541142775772295405048724197214641467321906344670671321080197060459007773857348786507554823123635672805855276609441941911509837210602179484522285869820395707895022493339676485051403217163168047565680746884096003882128501005698790581198234350101529500426118271326322178817058746442815123067005756202180282129682609087065978552641219464202109146760866416609737738144420225370308823837384144899319110264780893209432075979764746761839499294578703167036941605652059633999648149086947982904530514512273219089459973991957937217725693619379537123109388035450159733817221750886586897656066746103627863432817056397764003310496972714404255312454710367388955940608944198057814591444531872731419675409166247695475559671433236106577930327192931684904933969074289256576303256010068514552487918180164435724492019037357271503775190666081839881279265918521848404591461496774754419402107755795575479493868137289581200160350597578704551279954332593249160953126661919129282427472128233324289342368568315938739016293891890736164387978826393535766097626630964531114723511119897535132967020446048506570998373470650865831663500863460825718433703688401166623125068883594278315838068577207498231868648970444016644589442117523022545150342500836971414192629422090195087152185174067614324490296902314626004927521309756011672750807914600311817531170100728339271433268436490385483625395721360628698717259176139869174954189676074833586845629183710038567608953739497782267437716616105435893496939624593884275834437341713478326128179760936911147711713603243939835054258687481863418881373026140213949247068729628816024724038832706657241895101596369320782045999688303607994054543313954791155120958252430342186580480003467952435553119466544115764533396076191785943467185853396963587347110041154791268256187180797223633086172721401708714629820836459311762613227349287044804773761552468595075798574686069981053068689463359648327354249586659644627694709228972959274143770457069036277170325760600499293074512906897613291237054683756252493701949610169980408557664057438511909572568030348749038832514347270876656908502644420127130306380059152971798327341258370475394291306945465810790783165828398015794735571076776282803377877956443837377032495765963700246290468274916692606205934028833586498079825825265005254726888635734239708984074235667619300363906348822440641354398840231693023981297834945111213806677910108481745654910082731354551270770969409051807830632629814249231705227898262488091753341416378307759885444047068645998596501822646500947366383575657478808437334484858868119394761193077839445999237208069436379729874702323430496237938281644242665956784160340395493727414893504330117794279542691852870181335727481917822204311592184255760234915991752809409934739340335969042779875368242882509151266168268589455289052094267538331379487857162033801710032093510224003922979133252754274853304881971298217408037985331622715396295628552531370908658229151395038792860328831787359940497780984715538623613908101785151693491985146715627372525766783153250602169604666816224981354797288238363900842280907744384318000110107127223061969889814381763625119880921818564073353925902074023520428025310823842008014934356906871941182903505354497707094193679865978155802205544661543789367677458583645638608333183513223258387171618775577221522544779174595728998937414821902896231485394176736693607108549584905377601957156600392126293309200410318794166830383578466257971393692737457336568380711183003549691258448831605150653457829740870658190237062091826215046041560427249033977361531549848814353167872677539036057813455356798060249516950815210502491309624738886118922821007836278408417402789335246370913819436329534144798645840428603958883506999853174337487645146679112300872551372099953135791071563703254236583459200385002102107587301593203512129482810069718255498569227360098352160902451970296416191420283560045468909023340642881722455153104840213343101085095444519067922328912640309287602333155752244805182033177992615653746713180722440754132252528966895117944761114190693137406706189181470144932893416110973989945061402669269323962974866288528120221963859030220559075471752915749509748141374787676366656816481319205312501038954636087998420099852224961234385650463567498431914192227432552246890883188631294797874222686144828632395210396127552761442879972131652337051857777625835379914981685990496774616010289252426700696839292517064312627620116441092415782465396224187625870517750584326013929526434343011008735792757910937794738042170727463187067209565684411848254111235730814477566756457966712611601078983002473007794450984276917641143272727226611514408429461861252949234395710804937525403793852002798614123500270900492535324465407896157813877611855979386646649994011988992308985556147949628453334204834334370826078516615823343069728537378993145050874554277454725130469238874163976531943937358894312810394089524823023813792272550276879049435862873920018179755337619846892147542628234700330795203542297228538987408114374732625184287818622164216242098414825704981971065809044964201777962370153979121090497387781609193778514837115458040817086089987866148795968437396693986202164306333151117762472247434827729667482921520460788090776434263929975261228790996612619230098961459325379001112111610079850013432288591795677290222436094929133301999663548505827297908895474394291345819954965586994909302706632922716550747428934928103450287104881616599360080245406677585409365004687720827115727817895219514802566453815829280980784271013287188067092770138381282964225939083968702940095571554924576247949099204141265615186007624575466044521327679090001628943836755135373949570234821821481582746987561192758082581588580781783921360424116858659496064975205819923752770901508921672929536162684324158322535260261889469201044233224507084874288535171010994141196041379838445213876320200501805626937307272751320560927047809073977422620868206159085579635011035675766850774035290430768215436792000044321563081307892681894205917268454296255564413213768822731042448012973405478151156454824782582552206248023050973397168344254076486494257484866623974670201001691889484883742422513464491495399233605451853751602083531809650791415050193640130869297773623210234442954626823907563620779648065385108312254306251546769178812970218107857234620900335649086409113722178822531914755941306338526657755265647148896762619000772312938695249509075737216355461431101439099186910254884659828103944268539956447796718720467131375823868135583225539568202260514928170704268565631770991988801628036578368485670010160008536615289852881929097711708846695850106499716663236344445830987703659135823948887180938373542316237333206835930347233146959443637588935259053873551814217493938201690714925521095557337297174475851091053283378278483209903692029992688909655357916912263764677767762393566192255884163363793428700871980753713121224438085659424280276922154631746892944507975260326672849498723351572626338476202930948329853128746322630159087515774604973857586943999485341923865107652211010805850817314046516185475831039501221608535107969775050970248735527747841239949274914661986736704466176446887344062297759045905878441008648545687998363214783746807818343223846658562044339451645303061520678931305475452092511814794983227977876472548143207067856078406040363010256908612731502772843799713737726436496378851282298720843337178803335465186847171391022332641640493877993792627958109189055765031636327052037811338375383763802122509460636999051891924729846533748298915939189246651566418177927649147926994237748006588557024799406308254744524854579289902772132362763288129996274190578930689531490797143906899317032947792613744956701514761847976966417531005348907993839929453574970334869840068089151192633501741381053319622437070784550704198667014110542565656758167076413926300754201651672526008081572858065975585949882816866528183746849263909510899376251984070498799832040056137274405965800311740102427654638886147534677262758891014953622595866628674083776037706614183461025971516771275815387379456021012134748699578195327625210230539867664513058994135794051835221837825794710395904154465386538104128971161842799249158298175903657527588596417539598834333657731429713383823120292859850788662201051181410720280669994456120415502872172880676547498098050536145434152666182212204471164951472780537102749084990868212811708651461188947808226268661478206658994661664392366606521173386476665918381758907043393256746230912072998639223064777423580382998383929959960817650046022693737365852588975127679199322997352040885352791901015457742476991125641400250209908974257484857826068869812807625949375500325213854782829964148461154454837589026379559195819388894714117264980284768270021056740214468835460190214687273939771554527674694375188971471822725223010073513845996779026248410510264701691128488138667912349761481609579740988586569000563770461483981208426654333460495717183621697467700976960074032643364319783172913385589669460979980285359234675529884786586488379336873520320189908404531957549817642618402076676490162416064229945396958232746683568078734920481410008176785312196225318270212786026481035538405432421988944865532585753619193825252443619976150223607167602293247619354369993927692834120729171067207883578128478235141125158018821420205061135252976774666963998156312741781707045397967884162716246896707446168476951379224147637885745567485629620274775559833466157329775297927249075455891030966378058424401142784995570455460075708453157353279095465931156230041319221652028039865282113938788072208629944799239200011182963315417995455272387937085374580089068524982287654317581007077930456336588637326321189505274281165822066743094815594426958149779218739355716077120139522773358976346176204501192320872811294150370590471786734823482523391007725071611772148749896091321653387198302334225995304948509804713461865600873644771759345867415216409041020248115780515228463512672406167778030687163293069271613173943843248383886342907688009787578267166473468864564582005551660105951443938319661192287838650105872803785088211554545777528362014818907869978871009753158770566140754428627540702626484954871923536662125422256979561134281863560229254475545682391516393233591886513991619376764668269873761436615056598898510737867329999889956317723398335934216985174235627914832546547326711296762790921702931753497723401928712464395981288885096236161692919959432077582790093867131228452570611463326933672345289281444381128691761072725069340379978273377606857801584401464812952444186822100440587479303087992534009075957391916062276816620282254997870279883959133319418527913762434068980344125291641478835014868783116446039956218261614852506490718803720368063160697836190071171157369513608944578097587429795785605331939158543017619130733742471643985227813198399502532863905721140803498864666679692255315620436249844302809060813211536751512147929338895330234892061528085945618486427314597446090836177009716702241443632405770216111384111699511607165763514307833456509400923735155603515087558388286608756754633225491044760150285927599546430301899597741575474550150983049895250607678303473324818539133203085244133258830798767602282612677091832662306028485715104261843097311633541358228142565110480151883192788840822042010731614639410865640778370782599052419063372037055572416697405500740635962765932209549673275828439920872278146007864827230918031677652165434803747471263467264822483701290210362115418375669613297878277830945659159143447357099857184291944982669127697025340128328310544042577527266797089923203770165477273690781862398357167472784835926798096163913276505245319538470283709803953788650132196252621480811617809311814272279166373716830438912438372949708152621117694343087741440194622831231110203130640665107846169435596292986594746653437340534658674421218115630802141171957811365367641580436598242920243331046044493128843676330362928096324869412355313059779308303467017639059033444886480232697520086792968531576236570863408115257427281645334287353743194111503117370107716913332942368040063409674981014933479857862420276385658320073663256574048121298447151655417921387282707972331405687019651638801329843615373566139016530895497205082785424241753222070846952765097336416867242674729487591736160963532342140119075688880973880356346353311028937200687893751262086369718208632396630111170885854003308945372684311227521629352857205958547575021371617337295056556954268845039981815173634190508145172388931389823497426292848305890509383653891704499775964539670830961878597055679323533696113703608608728119732167612952536547432958529036052303454541253183495492825438527552700698641773933951996207203937262427408627982094248560368890801821407332453977396881342783002570041293879947251133943704984190438426843565983387909591437034232797240698407810773844108146843677916104557605938420631726624295842564631589348444264568864004277377285659704848335206652930015942349508045186981266292907313746293208451460458124260449203607110516419796001330155988359754812308045374368226938105868251973484128499783941079922696202653952111142004477756401299395291935088060895168285885511711083778108468275921459531124393718401970917862961554074943430955752809340449510492443673576653904537030754827477372591680928960496669684123847283080131877387125218731036386803116825662846155847836888635263119698187190458785891950426162848071127622926231032778074418195214401015185733083033700273195464877878243149782829200323330398054825354965733858105789921846439449773738353684741676276689884448165189433025317319185687507001913440240942199275164211675826370307178189333590294029306403348760090901259097771274150522956461019588594214568879531146120202816302385493276784370333033907548101377013162876786449876006138663128861901635531366223270419884419147559234807263089920140410323987768286752926964390446835928454121220051190242443868217534397664216976027194502795826449023888066308277209967883514208798081425059572305258471046639351754595225368813645544878640740459304223025253793476405635944967229308879365640608000693707414135035600000030250399831149519186392481940557671183202400120628604269740617532350717516068480982810322886078510889578024196057864973378523249664912051008844699345144263138384405295740773408255616889733322721419702642083371659092683907438959394907257341321504902513906309883421729566295353922238336301377778704645242992650754310859175927658513086688787718845149801985383090986698499457949552647691065305541115854906281858473386635925445377109405384464280755366725535274396661270439621623994856751902343159782050458716678448931790868743525157325598731269370756944815531514182153754594293984441055227814338184378887501223158423221377581345575214664569385218647114930754383414921939524742401963137498710778631629919688706788153265727963599703054671164674124840628686135089011650270920683750869597596279161333635688547007288499672570182367314827749096945079405021131946972254848425754638986836759350433581454769452971895737566216613828618835426569904811082881652801245145773121454513589746185333309834055354565464614539107128499240639793171251066333579524204049927958741491868335510493165447961462653367084259944081861914487014683305578563297136397343711342339745006827361326175341452368235790165660937616910030404619476321600586842934453253272280316607339663426610663455610216898978696476114121109730287994047258798587903882424761408991292069826956010104243599837616384180147911505550829042402127039291491277134649623215229816315900616535800250439058711051252902599327326708535076580478096688578149612094719651182202598887576570133931983115368740027320527460260353460061334545520235708156684524917578990138609261580303861372101067503803186831519298971100312383747084864436158432996878500806977383474411315204215767773333272551157468051698073644391748529172608245496238082276104847782908577059455902862878591747765810752070736689911749796467704677553248800533035765059640076429254204856105315391561007896420128541203483325419994157720714603408057572000100875855786546698778665167031267079798306344006237823985603073282259444896999561487894553141455688310644284537968563734296868165305165584991069717412785870491150896435391986720156214602563783567444120686539060101908107260282292063556060474751729537270079078821177168161318042282370005438642073795282135944745386225271604715933369157405375527177114969830242400784390866682949836787241125971714324811188263043961885336241813664858865927356183832961064834814413063839833671868581016353904516135899055424584395838346488690886996612346956939455145875856448463677518293092065035220027889947216322660527712354106413537017816210289913159075603779301652905309409699288229032753662113564980294060057054008153876412160314091962889148409514096984014465342904124592391098950086391828576016785448725234527723903364126475124370086572146258371842668721340818669739118548191762072466169889856409536726238303796609862079793406354731327572246519626678042896330349337700841910985951858932777323664447679684677746748482616068915031851188378641711133829515943223070588993392538245876176372237785630472765004215202331738108612132809547083458199005757595562905057492176634455504711768289164816384127058186504437317789837258597785261703062923452851917401437132948071143747587485640787295188303303905756406098179427086499185659471399263390735988072433425988576393643868684124919759066911650655692667980834576459439529122947958458292181985096464884040025370674370678922851422272482725639550247718095701640251649848812402335681188901136155617572067932140683443972589237172966839188977297514092708922878322789114962645612574152902359293726263333298994389595977176783649051408169622345786708747407646828156242156267254498045686508508775114063574946495377945460524392293129649246433980921345190722217113560739927318785787897072779477559584741425927490960140411462552537987851976187926575696990834877699942887333868741918199810823019827944845685147191643675793875115049667751433316064331166865729838138425812912137497670741554198318986090628159751253411625794901485699167593715200217098746005939528961341069292299474021337621822590968994807014236428242132195014346771251255157005301334710563816235785528893285026306774614119888683033478746995181997161383544790048552560182135680209769493899567021148116416800745737026639147178258692660732065347933528879896929504120156350096860805924046938990872715530618603219183940167496456394949764084101680344775791489876784728492571350658059948764196113721047592009623191888944795027338544270325469575351599144426040911989406832309757182150315153132931037677002839718025853032721239982425820734504715971677636959006415670158157341589762236325038998008368885511822947014760394354205350376551554020434861993286113417574888700842724347925662153771241604164114460798736968012575763155149944145256999104244787880943033594211744286867861589779076969678764873889310869558878602267476885340037595766538861444485237390049588970630865745153927559977893910481938599923276923833859715880127518912342239558110312444283005581416497343005942208522220615753024639632174485516085732631219632284637577783324459306620929929134644979341239836339033123030002694116874557398781972741206271881110718471862883905187209945980831440628010763905022108391969357282626373256600988368775357603636466255348807172866316190234995865980334012839897404993058013771821199470378799543505067402417444258703598291060277426325890415792822611239804628439333490051169424770945140838924458573963147111834973807878726021560695759437728914410941857505031322139197112361485648348587422593833596800636086946974941824130287018312251513768522766844269157526199811112897876307729148809119123529409034631431290905293904910517795473441349999341036598124848518114587264044410730682030982877357356603194435691554650028001118339061400292573400974570936392602429042059558386424271307042412467440332569508960060425647492838369196656251996515171067340312520548971499064028886333458031629298592186602114170381649271752701395737096640851626076462264377557311638408318647948323682153129350431052840976087213743782902233882613760322700030900387457853757808719339756200823318236582402986320672908465210568312824524443273106625831433118737418333793067545935144241919663280453283025509990043691552577807588157942367686974542392956768209966366217841422618937206201059449250697907316255862716917699526987151509747143166677138550818279295283154392354403906340400796519885792436363607873763156331545860359559674218479098545253231238082549207359121131382388391028009424323605495560754510227092583432305787329546788148962738963289658743373025361717047345596004844342488582379526816043717300320324814877813950305394317621676999308781582687745162833203796705359574093253428752288828257049557182401759695769795861578637246295539851115534642252910618928233104717255305275084897745391398613056996236900552986547351180999680675838548088882852747556773397569434278753523651708581234697365823596979817037830667784732374842786083216796379989178682881419671978134835135039589721110693214168950641192604934139636161821763577592620517862891010350693424616070611949355688983898024100642801156149818504630727232316012139301820630260645259057187336013371870247677224614151957584777221455006435554387925928796728529758360574086572592250952558004073137952804010323954540777758785584399829035008637968374710812271686517476666406271620476617203392031961613920129602138918392532780992666733256470723071040483903740617893535642149622543001565238567102145617745044949534081500817528856700044663230400877000024338600663790843380912951011614690617027231810448203677615893560970111318440143940064791803193807741199614402812878579867775279345103018621553135532498390998050419527853299509519891528726946618874493634622265174612924662641510306208253228052283965754777260296299333611773846027001584053258568810321827707964366303816579909309410209053680513288280999075296878172378191394810215564791223581199840621065777073884554084078553249393587800712121062342202494895553745079870309257611889303768845698855376445650260488872381165192851224887655919270726167761021264436763739545065188902849853123685726962315714486547771548930918956785917091169607132192310846949021998624276148849589344515651885499012108490452523822996252809847239582558455621461917588431984426667162389616189609743255253362061482396795211901381254700921371207104415846598438650276784999621935676176775873171883219758926099080238924766014715343396722217198147263317536625273038955788847952682133145742557994702885190541884405312843067287877718848807504721344929766823696920071683886804711945825227619394553220793103326102801801915229054604165496085773612509329731264597709887671249880329403326370563181946787420472493635796962744617554643277632348447314934799794451072788582650784579934053376673339868740949605923815567775648011984944794268166381776570074139665331598719232577981558614021797738651861242776661089341098355872456478311993313786304609790790886941888102738168310438939476559569439885082638622001190348428361261495579602083296288864202602758403665850125842943973064412933711836683964984580358553214881198727733216011622810272562593980386537504271725590514365220087716160026612575527413848080840963308295794717712007230906441483777429297951013300756143548806161696668298831609157218295122177617378039561264796950379406721440130803489162335536203139202371508866768169613054018491987992198561362132485193848070047312581620443983366083650969165140479946406326594549221806964636574358699996279900830903140187463736259436222441687022277081525027059048475918670174401464370237527706612882268208709075860107908202421029327754882660457508606684005531988033541833478762214185538000252408676458066821377565250521056819249442904039863816348055057688462364871815544269371466561263551604226853285329935283056649743164515650322384581639737784936495635043449427768348242461448880270752203701984569653905281916919300382812304021878506324357076681410039488563785655673177767627924982466492826748314712532460775389091715890168061626389997596903736084823963643357384375773163049504845340650789226933963874531035412934169310835836478075939551275958359399827939846950566939093885447221667619769142808775006939591000258435272183902822973063366483932498437429161799456881114502000996696572467711585669395784606294791671887572903172061161226166023834630291343137779448289359993806627117301847840403524372396136670386491345084501886135225643103505924321124484192317492582297059105044172335964365649169834425969620950246457868967544260630716742833952328810647348041805065259270143774774147814836445900895626802174505880357481390859081172806892134833850671315657610448962535016815824909316522103409830265498294142076554763712018109786418499927749903250200307951337326170271373862236758905345791688094280699604221825229617564324585240614197390136833047465747869970223048571698513253527162049604618383965148530806642176636479836531939160074397759847132590017970009693960761982674873148701239701271415576092121804993001788887639157448650179422878944509537572398585948225218810363595914191095514599411410128756002165367495877205491007986105634263188738688056480827072946006471667652238448266747615989621080219683306223321946533733906199109867380880643758557276681969197793685031605216260790960875359724995108647132753323370842807994572873960192314709835789918812815162445614362450186427237749172838273792506182049689319387141083885814894974183417255835015946408302464188753058943570265894548862081716254702388608311806735683470274329935971866115824295499162526642745355175045002241668048181311162300408415784986071527154994350408973027177527489460474050657813014267528714241478917603092315668328283111498291085564892238944218884480067452047042885749806916145272376136358806644061781649981100412182802450668676365187601611340568728868792108624422403328190497010531517334106757820933031735025683137102451927805788981199930639640988354577421931512321898897779918489576209056740299676452323939620224198981455246182074125375009588324487230293578063635373734456281603749923262586296303752640608095504688146417346380112503074284577854893292464049205110110142931660653583487842099311277665747933968387624191238344490832894922601720448813697435044220923272192245001993475415138798845282305931964875501031035945680722504802946094776505154155845917184268968285693388943142424880648611846407484337774529690893963829725584159422428055131045152414430098095061309407815180379664568585715127060847588028331247353332353162817920450145868250079623065520952880011658332747848028394856373065555478094793705635263097579978215697751640811801725345012938895248731684828028653588533227439837728279919067763221488508443937698509262126224159284183478746681389760140442692823951769945272841245854087026958507298177537947130228553726907275108043508578340575256830915214089669032297138440151808208562734646223022362997975912252379819962976564056803811464717001569994899261147947952776358056313485283913918395242739708020577500954249128140864390159742565299007257058903334119709276626898610344102507425924524703154187072321849382167885354029980764952042324835573746917256786051505194839122415226485211233458099901614324353218049609751858512133749085095653965078914855731620089546430416325624925287167633359452980622551444533585305692941637373315290746214594799376312388359218153520539004951596753606598515289830983607892909551969596614015333721002632892851608484167158536346781379065585043152163747873208068535836733898354633456302815583413252031609544112841376095031560151005725042163443445135250495585974659128783167416708076496373597151809599592342037654668507809357091210392856618326122569361123038647972026665383792788526493410450582621725172839107834706039135177698405840754327683141487533636583753857082493345192336109782413900272535387545579337234089948638766107005784775983333693824488916399691104526417558878790687566684083868035429784115203426621976681907252560392147080963731074943440796508550548094574365873636585990832262503358716530172488862455766072081265501813622507133630558820175621930349633000198335452460330317160277422121960537878000816331670414836621165240356508071739601515653654750443319474793187151408020762130650503909537715429764148668997676086654000975319834027098733822915422172446861948191626611077970060722930052431788730154093047476265761505364592593069491528416921939693759720940080426537787702256329494629580088057167363391716473882072498603610740519752321974181980864206541083225262191429742632983423743437725576703646407276683455237926736386080195253825862546591694441761192158730630062439172927275302382898696479948903028543836560349357498687599086902191135373790998774777321332299346481920862582215756330311161307068682378820974316599007963852054562622174629678517669211601477489282020837109381436319718535949891854405875723395458814121441909588090026670351477946656621363877710570975914438206898983377707319211013774675257487306697726084097485625905936484072203545788872365479764422840570330750744848006899334645837240462018723902751889421471312379440689276067091452259986727299607149962884675112322208884303882113043662312942675115870773592863868887974936609697463053680152428088746411301943967912780661665122186529123516046487596486232147081438647005654139629848624282563533694490149450918313281136173913796767279210133856937998651283142370689622767826336483901774085621073772167756379064021900055549116193797978214641584407837312824088856049210073084757664072772940677663993844765875201252072823708234975368520615858399587859799444524918802641704235962446053081603973882889054645818386049080881389898401886811135096373428986612353200938281079045303601014556279754386350469397616590542543894586868181682396751664566297463462443505682059854346690834017136075577767609777060346947580776330577691593819487687882580080794969424350189466253287816042346305120259383575071881487783528541304339694671545445350377476983130182885098672439920361657910737661509214361275128871401205464156401309985765111949520194245475143726235045661486199504268990715124881675290295330907646486437319227993357459086548896099189997209269119268339625717517021170978140430558491811706193036716650970623291112389726310959150995707497567503586170426833623208680561629584597394097571425180541427955374509010254431015487467235299028287697977391551692138278084393195802052266122692740659939374935841308061830575849160927231901876437521114763977682316142099380560087272282659765842380975699685401056768495645075067536356567990271636230991715248803370189802852623291718264367091683282104939617933374601493984741490434983724270555676651072144038655652586578655725873349993800608279868757163326353680672258119430170222183897638597670041256780634273774859051114147698425245371371561992597112065164372032548820119996069827888512671638636753755377735233247235632338576284449137375131425651262665684007532972653768405676276967879325983424864420101945859675528529746817870697430990069821512224171400043413258722654222937898758972756414369140265531532227772983275881812669469631285031616121763580067296492225954327587388955629708382190294571517484614510330762759983337012943148102027852236929667845151052728295088689694761187505515631030194218145480159830519134769744984152169051029748410770754509097635606873377660105966667037338756293498075966111016416349235966048703602857226270533480786518909556853664621811210807432768001812455904148992181320742473990102692492376416186995817269349834519196976850159337824869303553611764359363116488688050544173356490411657275605777094378325375516181656974067142685602608482263497931771617379520435516669902338341053816667735558760752463345637073931600235441067916646667508131054168548193924267909693322164361675388841810387977552074568093020990623022735659581058116810297139579108332338198023986464852978352025845300137409832353828132508662102571188841118994540868912793319595614045924063179418437045794599015593339840135062464428053378895869739428309853227883032822647944161391177557562066671648481194827039878368268537200164180042119938377291984401336753888766643310564741642423626117199059609387319177122391822763691781907377984999000605259846240016779708926228194216898472728805805404164035084675654802014480901896156518055893169103435031715863238362100315386295201414872553152676424054934034667624528357347453045862279874624070954439694910835634043684621708577002814029061402351741521888402213021507908092017755086311220294470529658147278716069778718069679313293060309316988770803775328088966359954210757175547302297800126842081773548397410948164821750194902803212325260074008882444881888755375942576301360137164018006098944529365155242578352420794908527582065400423563437398900204869675123831544451808095096510797316718346597491505637718851693996283970471248132024118439477894765485243996081487802782085422972414567312353615752453454981980550075582796366511087733665880139873024328703104854872753718899934672394661129271883089683270025206740598412714978667237755258727367049803633425284528851254927905090866405376616397079956711615774326162646234617682394638481868903568568228796431775715506732748892295575316634454960878281630161286035162947214449365786918890025490399145264691616374847913581717279879097000580135450142919017077877396304330049987880971045406542781974488081955896944537653253634294288396954556080100207373977948687003919884191912243220889032767016306064304020420642173255793856654850911801697136294046964333216008030354287445044375261146554597582191352773798294130600656563016838496771058264000972587175245746706793399620727858023378616283742857512929071983200987815892911826300753910560715601202018684980700297271265059420852811368615589519017859295111319667192021436975181277661275837666541726017702953449940465742902559084230794938779862780929013572235834492230149064927653646095085788669311585643438988577403212054208448725705094202397780022238378169503448585133379535991876097312622942114363029488485887748116709342850906328351425289400359492805745774547232193569760788778273962209776006250942296151122084940898107311145742252798388134159521496693875871620676770839111308156871937490541080267087451484701708271332908789609916947507805557770472841242199152655816058820733497015904729004505608143955209646349424960498048752434161630261417259199219223001350032026563296822627270233030198860627466269546034214063481368042112481714464442599921682634829821271131350043371491040616478610964085864408830185522726792759814665683577135234548397185892884383035946003963792032910038644652153747902483342472296145210374291703989937194946182450869255621724267733341580856368229022469683779664044728524134815153655352069026575138519917551041663929237375499056410036059223931286766377913488061007398583927635914087059251508540718188138371004584381697102787567643210394915907400357573336781181060503731735276195699556465692349217996054819699648681883495009950640065186435062479061543592008037147992128426384265230462393801383391048391738377733719547443842013691103405126827559935098408146245174798061612806203928751390488713424453199834028325755139563808663990670904489212637703256830700908256412215801879664883790745454843304941472328234715495955952630050700817977532772128065772359790427779116083721676181615861537083509769649745052942876551570102637645083464554433204549017359795947156932627306708107772379238398078613621918997476625075096121574695227350929932419589817083734957203846650447170912099878564678984476661083614802162903445449454430112780080320372722185967046146074557565329543830334928118140656730955731596325713840999288185574078504814635468649017602421679775591539546043154446025208522422061268410165815211478361927779773156456104830285908917457772630862189227477583745041689759958126441026129568280640063097613668228584251213989251244764091141060391961122506282721237846356827183968927119884128174144907634799817657063805840118948203775696491264957191410785821002657912762627370049470580650791249836275680548023140998404254951820566286530370521064794154787207698245305214545099375441523879511308396110120204924909528785381250615986062743435085038666606501037308427761991152879339816245205001397943773196701953955282645385296328191081955973874487189299102407096236412358025811318148768236160478297459757302620067953143421387882343059316967843304716354906924414160291605334341257099303070491831807757946286368917465602929263124931735110029268142897227719547410176807365208997041393976703173926792303600508587739444037354268870631116675739047675886509993327824817505712371244464697237368668688276024635732404847212854864063300174274869676726705376356377029980535998602174723287652029644065145149974889723606901922404323355994991202344645795406355561245727243125164020683614896625447097663123195323306416359843136366887781264035280042266228143853906335975296129964058182836499467543895404678267981283908519367808800002486298969351049303683575245581258619806681887423752335238301160106149239710907925052443840387960704660244382197143861627486798279582569588663975932584742760405592500602126324924517269030129701890307605677645258047473393167039646439055667441131397300291797780408877126162220059775283634576572315986063361401816681646271113215660679794863197364820017864477444554101374842336352618164173158101524008540841231905914458176960342100871996474346507650848571676114116655938316760092023365204501870621839665262640498237914470546660992438477486031443705767730108835956315649106879591767221444413401863894973059930439573532351028177454257832365579018671709666843149399906748502880245010859262934982659877367411148523318566170505841269628763846607360754479676052005297034147511312672675141138996231453735672986973510838882508408843874844087548496120519159785678620151032679208025741802495360612476118261996842318102951289194563015182722891045084559154834580572961065024863583440752448729797700097334072966229670630822535339310498678807369158374684742081399957285210581357721800427801834034381822506673729994723663886337833617889516041491217918494087469201788911211382796076726966848661958896407102871896392312214965647839835949293740835201306541315047054900433769646390529690691572050395143464219656166048322907120549321313018321151460077916692846528268144209892423172185550206392262219613158134164728809339398836250177960789464326111342024936125437574862726739183645111461623482142866442660427190731142547582219339477422486018513022040837834027911506297538552642180167169410952508447284306784935583847512665932910452323665112034571616602220841128385321422090962945229396640890244789206774171924146332971801120674524216546995408005637474597029353603553677852617869718230305535977990630644605994220901702665546230668610666870115137353837200055807896960147262972213811374726773874753735136224106456249912483922071516266595146310711562092742626116173707811790860047877777093803564210613775124571023155486840720432983344872364558843826641210354438715886045672147818319621822743565812601066871463022200864335940596547359715236163950701886583393849622980056014327631408579374205967537366036045338402198723889201388172382292008299921525368069028544589022460325087359534620352918809762334401301386130532070347502675511286315920116741647730934278122912806029998846771526299906902275173661637658176435032992918676190387200874029242435252073154493101162060590590067462142687949390352244531012962106766258069533703397801088786970280792485712794150763356098132505558235635527216876310229610045128199265668589112260460686067337057811608955717787732535114656787472345061002066229108051045253443224862641683513540128939225610053596110129724544040742600797659262333076120026551718347852585346413635558747455918987716086066766193270966414412847220630304579972729610697709541678461823330895776983337848832836566716539578127228732925573818193467441534818920113139661140408886985389998592730354587006776251140971783917314016415028822481103694096956412987713651605589922309257237934316055123378968567243204650137685082723946947034217334234529351243057099114029848517979383020351996678599857322762374150003710717530570073815582162441634711536251019257773497967571116871170319898656169861465224220560007183512668342665934757417818108672148472940312182061481595197665853287394865331052631363267309442990142876413724210314239490336525081622069625117356792113690170491619641170637999631448857889696256119523789917370304047274322678396964762070740786557785880433088327669686712757790777563137109016452973471147953614496968277168376949896093868126817221299119094738168933153706974841490887159086347866282907968612398296452620115699122135037185554294000622891156551537638451519048222355695315422390446598433094037709711451489150350944268229871317329679233042799073283038517220285012786600989971745046100364055829027995719310242820038253325758449599662919949964476662784885953685498302250377622418228852909788294769234986471982708967130272500055796734725396616443461731543516157083592782606383447649542165573755369121869867164034116293553768692890078017625219530482403453548883363791499389536642205705330809254688465562900075525296596952734772945847673693065850113093776224591518008681489449043543131842787798248614109463011090634167880975061085936872107395684208958389486849639256095083338420874073331909364295901389254346445542588326240860287746426367878903300506488906729469380156263676124899552499002537842921998077910716427738393921230565805764229513050648549244056856720986512540979067842074988356627111199148398425500574913697977794098060170702481018274464399238387611692950910019115239762816451667826656725618511557786503959618872627733187625673347139784433906018012104513225622674036712163954698187745327037045949742275280018198922214406650076464750032934095387876417444522228952187110592227770656890173429632862244349064222497008651657382788969699711425205729573805949778008382815353202482327021459927780982058242412279144330777579760276493371489185387248008364493579805292070113395968104177396263770502311381832564887980045877346406173715624728486304756439923222980648676421434501053696767270223982532438979853857187754173157826844019810293919388868938677099344465121666678560557194322873381292266174505129249937237948045695741174472782731415499663962538742761828248038518853117552740714897753550592482188431526970878805679990321464060645447500342811766917571470705777415451781385347111927151737706438940661654280377790432214536959927801659160995783425701734651694549487515067178654176866254725690047784278025043065937543994066620815158865726879086494929545110772935964418266891918693503849513056352703482100582798056439557583792242467076987223237496744434225024732201973756854813861933795593355989299502906932247347271991692079470638954071732240978882099127399923341294765670747143740337263753576878320770631065777605933606920445011603653721270292917757689165699386339419716034773620885503934480652412319648027845824745174816845513405567670632741148933871679352241052276571513680505367336007339717345933589293953987848975350531358612347573040233452016140874844447391179240428161290898619037375954939074450229390051500095643140993563985251096260167323887678657536263837972167017876743455694665359327582268815857290012939233964553203969079399759817929952003057266873342881233652746181036630300261769686748982055391188074812898483181529044498205549827278038138028820436454376942683494684048870602090135598909872706506998429274490513740019412283940816177950174699771514968081158400964829714895441483255226397917785182912478386600351977771440542017630804844383211356688120450949732328734476387202826467800452259651950278801419325053841708127915641962942416863245849569129447478965675710910277474122037043074158974801817151950155510437060541705208033426091601119826653318369958217867455751155565745666151783602024261900352384977469998938444985287207045527975787759661066126870530212192639230041998814983895545739175847315951184728691482111588167934293055682412607476145564478105699454661848921247047672055928729281664513194071357811643699350557375970575751330331567465377526887312935025188571262462048989040384346466906161584823807221022808709593657229353633465876979289738998213522884711957058882680207802509728737878186214015695100211586847227921068385707257714765871714576376070496701462365629008143178876890017553153059581167020677840138067631045855715929076031418929659957576683453377700442762994914755778193386281995570364864717119347336006591398201179416804740875524137006745654714653346322039357174501710147170322708119561752133875189282462801062797309551579402158368948174670585566801014843482662903632020074068505757704865625468154482070524981588400595767462566661151482843741225124863260562381832779507860476161084025105041640866084478825821044217755325611087590753318534008509240268778376339572152049013826672518876132249174579328966432804748865212739394150384676669942158351359588420548247240161368977973385498492883175389595722340079123070636040533713824793561506531905073074287587975186328773522987369328187037487626624767322093259337288954641563925471211571602207050336023228839498334396474384970440491277214263394932596881075712200228169871976442832595162608966402025296253534854380417500648473853316813156038226895093893373281536368692857575027039144006157649023799159883752777894694842796070620623349643121475606703572078625457107648166366171484988750333574399111502989123565050042905172432579650697548628188405731201554210612565948110501048778689208390204736414028797862626810117952051693790632958539553169741765497596110737645516919587812078629426562118980182903202415376185348311952137114104209962666118849799384344163467838385539601783985804542722027033218821402755177816519895174985268757224833159462713203545949366137122339879668669620404003801401176242152486089130453670577038170680436060726597201464857217909189006261855498332646378633624252602304781344729390782929748539307991818978851015954713131734294720810173280008620205191590236762280316855590557217272947482888841003804068282562339506174470981459703695185449827455219102462560733710870658438006710697303727481883536167395321209620929198731096415338186188445456934312936435132743580336864551026482891383580984375177137856623358997159397749757319850983886223622797023182996018649065529569509478401486577926204830266157658255083952731784094628977093814352228187215381675466522639812662295224169701319214356364962091193015172409528985721863220073135920424752997352739773242888058838123138596209578199249345772746693906078718072054441230057028870055219118017728703256027632335372674535880836083706203387966027130714718678427159849763104693866483344863804376555763119136892249014903425662050475261910630024069357402310294869323450856767106967794687869023324238747740428015800801887592332575112586611663987088252748493278175812064328616406010669762261482874817151932832333164948422618474361890784254879855173434980756679065844627741668319250527358800512547381970066682557257933824884328787467916228417447876840813896647032992583344915230218272815061263217123703867456521382232060055892715589517654226740757362237914976466966201499275353713515703696837212580066386616095872678767119777762616070054499564833649787581194824955521388902613384064714446805704776769783069623254560970567081319586541765129114714768764199224818325131272132565563315813287036319121405375901471523321312496098558461841709164149175166263824664511829973669597877826564291394452612373069215241620811154158719739443840697955078209356492324901206233143531879576101308192566661930994506355439892885651697716208681083361692567966150973879659482875453296372029806628271717792674120125138636057633473068731619393484041014851774690953094257565313105563387909479209504917938205735690504844350487576662489674032000715517916919990432212151527282917274134221934338134012957261878098341859245367563643251337339305772313626129036883776114855537368943415896220492462980941274468925881265816398209095624869136766844398548179397156136208727327163628721325887155749519351584675481808287094249623371560770210063976490218863370416271223075807550535500103305326086727635678199647483891358888275530545650222432160977342676436620708094762909058210810525521115643721173183802800760795243401606236908538147717147569169733741254540914007456331756135967131742323158631175204626138657974711911648890285722568165621846762838316180826768994530693915696170442369209456950655109188959762992669079859607362265705534115625077403744878780476705403167654887965719137305988712802017151048511264545726787424217300750210943578629594956171340563091720520296973496900569513552962620172529044135194194438233723195538112699541367077941096954068967531431799613582601131991169626587318234946553705034294796614309535327267257409265505481885154174272293906644360424016163277996305469350041683577755992026614018175078726832524118371246097606910924832753746785108799842815477810894233084054127114640373513818194035997312711671796127927512142134732320708314363576323927761546273368425688016910314890569255463221405024058286194775891864384440826588533150052530675730993188012560326965148131964132887863377859970758181153332283885866421320803034816996931771145715189485639527415674929583521010828966927657279885640672265708091269962004337378913978301687408055917390667810312826983011868304170280069886694445850764437137144483219746795160783606629412157795287536823354260359974239891498453397857626622004720210313223735623667519728320925661815361907172695194131387347067379878381412307252178677199655298653621134354547362680384329232427480374335836152726852060636067524300904295232438663477894110595162370704265331032861872513358156701627973545220090487702617005353452664768579771280244035502661616075101776891727560265623940156726432396589961091382272140341762662667044159335284496298269835328289739465016562845325586901046498273515245194209679000914326546288928470869808582051425806954446597463394290793448090504246664319067422646445269148483754920365254625641979363221563228949932500554802009108249706755471171183618637938257002383331755628430029153644527818983324976845793290164662556787277078779733482192432126539120653518915868881119058696390860359275837055045162673417188842595422138075931891099026732150452370710374439677660845234714008893701180266746492449134361819433511083874036590461458719553159422954562430320100732539041785033760161524936767931171965756823941213033680537947371376571111344956608273552789934338577379062925265438650703446100715272250858477601066223575364688755110171651129338375052267988308768265338386169706002375992751773179426800392602918641762716300476530647154586831699422073522343270507606062790633250004841883880420533012010398371030624374276333818364582935104607137329402527147647457988161572389387593117163834180990515563399140238153642845131258992914665430310564887840234680619214347285496291516803333714624673314258534629132867968798708797849990036041613511836744054498011200346181361135921570123613123947915129711618856093194029328092799425976740429652926729902266302494656059144526399454637118505009801040381136261822156968122828125158160533530245192258904644235657116176907480654374787918623256818560574953482273011588825178815852680947276761618344661084322762756844307480210418912811506127763080579399549378070900691438746048302489364757179114306652677755136102879295476667934424075725820472889489759802400977164595266557617436809359273465577349281121298929812135766463498933565195062276363731946794097918688519963172388794991308422985298628113603997573708334286649811039247148352635321452075096001378428332208775655064810205788671338216254051914944102479041485039691157026741346854677269466495158177014811019158168434853857610038508469889390760160260740329271969408407473784349176865286588997385534151980910226706463358278124507607799029320477533556807707914077342263924288910972355384036060560174350176290739944680587773579905096741190206220406764546513754083322999838730275099772078710646018690154080003934301067635908133552074944696929907886801958431241693297774760583653670600906758235966756786534014916172440597082146556726056717870371424916198588651881641547793775489556567442019810640379771486320500260400747838356117113540049777109605594442913516294641765699774966311400509211263032129800573210772616463430569541076002199239859510368034022652862096691477272668991548427657939953955344552986880578851201162108629282486562971391056419667456815016475639112125633823865515782602941230623230418019816202182865853341454915614770188868829366437281869383047408056877087208612943221434689637986882624065481531002505094094081789659489931427283375927316119508368497324569744949324313097595546222448982990688753527415703715937974803967523589713314855427865218247940903766722221539441734267822739310926795686281154591402839638354453570949479730383671719014765726484953062141162743430159823954630443166983407990239796085374570466548204460822646467430498700754850474936896792525962821178503978503833531937810031369147600997869371449717449735479765381702162269551890266319381016577576425553320572061988737058858207424979189951511541324674998456203088672389032791677019923304862584857857801327000617232379798187524675791972468599273829356887771388173711841714358336919086891847120299839613904235930960680532040618469978429510920112294063426159595700368157355863165040848164908386056821605056032905642098424046852498302768901685333664919110579559900899317297491443577588856679848980954459224880541739562938731087412134382974270203296570132080010049799084222125185547738243578448674270926783503279740602139498434498145686409200215947325817820387252217111775148414935631078415696194547561408237014878093818030162376918516821829281502550327304058128032990077157593084365954619153836893595057718406835853083580598789416998635482808629009408613915732612314919544506507694455988248075835405721234497560643750400012490265988588938120322912921578450750501051655030692320692106922323379231242924461472737838402111698136453244674871243188425150510418783798242688123397615546265549158164628715424671617785944148933852110163890720543002943631445156252378983519996376686111265850246612998389800335488526552810675745127315434266175996955191671426727011367428535599833791165371888601842384573286308062785457516033535362826234797066042859101848434556922620822105902492909186312791746054608649186381679367645290191620971232314434832798596431032425635546041108611832497900692548083139280472981065599624390830855222096650206283615076488418824020206644648565997832532472084603196811362966800275532617603518692292646597883263214737864330495867920744235433788060698556682227662626118288376922517951769406306724387513789515851165720898891555945946328016191514265196183460317828787515814640478511729065889156713336724768322909619515981542832254831752634150536177369379615238125546191649453354650623418293390109669356239064604661662881117102171052443424502908151984821560719729047439873816251301450783680862975483250781016910857172208418482829217755703106543266058983476316253949729439860663986584257319378796860696506686902502452156578587145165900594217879460070306575191376484781206611655100482523638720473466679343362639382347072642903731854786469110422918419586005320614402031793884530593866302025554293361366975918682458406903218025305534428797940905146964233907490084582733887077987990933970593244784831973315517490254491236811956744346852694903194463075695743049249076752105311108034594431275264187765444319152033926661223011724285171042273432247275492552587552990789346850157476545278916733942545601918739070729462139440489370281905595018674280597033924857423822683344682609223294926495189969591441355699925302695829517868905314348147484950838623361589041153296184618106908230269823204032766311595976050076441218150962950290079895549329474524466141315898585307986897986526071171383214758286141629549337683341584426029426472234930563994040778255750767405807177600048595708737724170789937122181772955854733157756305925490345625375341932002876617875510456301872190830567828239207389986493434257922306076566282539806565661376141456415763366274644527959864974683548895040513636067783767448291695303228863239926930164930578108747252467211143530685218792861969282570873960916486752629531139485013178182365343118362380067925048505156312828289015395682414328191021661484313720119214163494259853586069188032126683665296976177814806041897809793163573025302364629508695998606318610705654758060554661643080286773407208880205555146393211027444212595222519620744888652003986650521896572826802820347249319063334725066689824777528792472525627180263666300242859457653303414165278176380116778193015503740364762533726355995543437460961824167723125381832691652723851280792257411212341011920739391949048972794015945332668508877830716154124436315799191789308155598434310668373596426261691078258747456225075523742959357196379208397450375776984768226035616817400132133082259743641192769833334150868104738004910058159904136162470047420764566858246175115092785243614641660827468620494304703967466507775912666307058858381129660275797354255856076239534498440021716964644213454866370671810383517517223126276345392501951451431793410416259446870032036837165322221787043091170210901608550489011994910876025098154347596865668905538725657292054143592720995701959451739179199527294909115643586413311376884077541816959727069142344287596976778913538410728035112590562467770252449561610425152651314136252962925366193139024278507304111712934815858056213275623073216524681991561963900647390871366057287455464460214594443018528942543069977318771443125106058941872003683685571077319001492083749136373702587535744723965453448038111824036816109467798519559916367044363145879487394018463149325996701058430651840130656308649945367190451244113512301329507500259231889038557435132451436566562062092901468038801111195463026652444739262943505955394576284974816067034389115530124414649763543784194164966331340050502696041040087076426800367460559706172019912460094358480795866137607524723175798482170304435420130151495140817158340504298619917227643503003172631222825965956192415133080052955123472132911216246124321372032823322244272496813389117703071960245663810849724976811451933538609808493825201519818589026092905670815145274387993923681071235705330256258929968762615555322753589997196798465527495196406368712933818137587871696032381894423495705396321800974722411139576400055203564933652056854859293436309594137128029815726230646510562774571646524440142801533724310477602906936134124807959972952633254866984047970291869880443897789265971322788306669169546572148462834206867463730405420133693761451514503377184118852802714631266563760473852279793849348021373724336218009754499683746444499564426222417845418555061880198693470575577537082819612038488094654522842467219951220529008528172894340675382765624382068086901970951168204818261831246951061178747523998404172732317652429720901374407544665148708600866825520339539478290079087551034268984140769594849142627554281136043628620261228998884732740038240297324055032152365252537011238588635771228669548508876435715323732029883786780112784318248430327400558734140468116748547162926162601147050554427130501188883683822890013310958690985211770358866519970342569623485319987028957379165420226554483536832312160372098700211853097251188305645394104408178098531038212582213541993680657692180914750649529785781870526498859407381878506195032564623540343485542878311332849745769147982842707311192511570557350601403835819612904326626656130278116486211271050091133800321851775591899312595407427634218051959062501572133431920824783836054953573157877580856356026275357007645753735689669320068862245660028627824191948994483970563719121241205415172904478006693788499710909183307608567532095896184716765699528411173060556248421016014235183379964309470503204914928952908877183491034864069856396768695068274790630708361811398194518585937261721285135500655996071355351397466552733176200825992656615318911321466706915995622429361124087198200017324254590933374075028661777020580668174285171005011086343725550756109814908580637756704924628260514530531502111782561633847304669655150393742545535620953177676087573423130950773715673722128469261669366685258960627650270104577466515837564528255194437031125495559635420523231472503589516604354993429915249212326882302735467677672910815585015295097907441310255592168110400081211895662798144425911002154226737860733562831367124024958376435484036109367328635422010042716534761843719077565132268801483355855447885879617347052426821083758589585478266781754227720776848034291237238434694429787884921780485565216567827202435878734533782966249328051512679577537382505451266219067592019933794726273424687153060270342319497490828397896795823496901707591292183534171985774109279839260135688932851910756538471863819716639832742532978004948107151925746591142230218470804352993679406010259423565277782299004008528880375857456664787133555106741720066259354267298445447711944201593575677714083346599823649838456459805757371627502725856329869731411757812166808653134050906800532176886099029875286426452416538403480461488570345573177999642631695392530102447584091208058253891371344461814004264804065784006336177125290135647356990314335740862023758470849840838334001568835399994934570142403550289597523015963126187437821475534762188805761600190668703093765399060866362834457281664872733931061850175074625536847885480724133176483342971841141114614573457493575854141561833718912924411484510419501867833132588431520088603630534795665739291629608540825407326608101658125538698346669708808107680157989623064712597354610957375458834103880451449636198896228263133911163011622106471417219256870241002755331077389915935645067915301855487275015506523503646411598943022255863263408858914620300207064277783559453794860498006999796670807077930709348694582269488298843792819165466657446842191757057620495744624082009176773859253425894615164486930884033092020052668972151263250645384342449160953934486864089513097470719816247534743079804800504981844296166908818283505888899378341556199825632729944902845266270465093694742767531513825476942406186791108283634856433674867033190917911333642410903064544633036119654430139188330714015692188350283953446911615937578389979201518422386983413593139257496088182473979001442329229676735703952878717677716610590949353555467167651676817476914935299632174929035938750875587256661275228462222808620269347239896639524672111150327239882361755630295150674887859540753188325506030835294266352488011702104842152712523411358699748271070634103353507209879753380699983792212457031313568626618414604993596056387709750085718303039295537917453943018985661578878019703640663387926884457702537708395010611305667207949729401296062002012583757216980647676826760730932890713180947306877079102059656035613757064255203162271688710310841314367244868229695901131552225724854521069237168787403830056662175607209330967387113462248860998887470124925263088259511644116241726100890133332764354249162313223377669561187758654682208937504939098202065938917133804048668113759743093308491330998816716913856127711933993274722039959774311108267788668627580342501669810757776818972999720492245634787155230554669041019581745609534805442320998251528133897638540655132761739474056888401791438635191720354510055529939859111280207201720316580533084674037648455350125949870071902181691349808474935614957559280535317835936149501417518146317340478126524825327510570307245744332126422600547368256074485857167968499426222852653658946867741596717005771112392416850889033253679663742715635491920955848218944276084936461237297409248275933922879838276683673346485767862075894017392221937192913995427707909630825656764377899706998349010383712736248442127035326617095130312331812026101408887863858431708012910843570037291961572511655992720224711521805013700425853994204971480241079995349144482694693085786450780711547096252987821113059892818658189731199720926883639962951174016555296349263800092924975071076066425613385008301143018701307629299889289672963081640485579985394156471340707655287210972487640724855884872797248682335059351837666719555236182131252969821071719034971306161800951639768092603522436349443728400695293733877428661599330454803648217329086470618992510873265150122455590111399778239305865899974049114227731542086172710386491005195212329304906144252294816196044386125462651245055520675594308925278360306685484226312941929401874506964372338181527004045686817713623924454820337980282233961003434551308343964628738817671689805935900885421232912761429908929628623683369839076137487364389546846279770201475780904889741165932720335593513938627875354275093712111315813948760393534507230511715990386309499806907679048954125847951457250641560627290463363440345807270830820978138892941494830348854322623619234585492890749395507578957920021308404419630836905890362377777533261534937310079928003318783112761396615931945775615604846181380961189916784047153522567884461461502890531318525168828016060585375419571898803668392285501861496433434868952758539023594958368427862961880286758938891700433441395467951057081708361919984554226647586123867475852003137801242495491863814048858047383741324433531990756501009359823703555811765820462577001441724192021747059440557819726544393092680729169533365636599870269015654210733665114871767580745420261875968812152226022321557727172447033684429610752457422571367257385790825743737677391718287152131842958949268425639554580410076190914112512837863590577790181896057120074145353648887250161658723652554512702207291519106419216857087894004007186214116373150394093660902626901963109787560988655807538781676978048292236043587596982901684935497152548573321430293446533279426895603528937667965224164882367070983991646360601342214138382934411730615011870165476785215247275313476021960779380317515491769411625867583617739295801154048467331949254017654076602601823499343579418959884637367546385326770566539631257127876455223809673948323317229688765279280220681336939642117860286239931445379919905690211986016360746708868044305428555899200689045960370168838027661894588212242683013283949507936933002264496810412175263543158554912148857047699344775470076030888809749796812072616400774276503211632192453919988676763002381500164591723185438631159384329290832428920521733547360752108147807921663696333986968873755702056772535462238786627119966998172080018833809914473311864786728521461200389441072605768088189915652065050339956883282376364391086475217070411412914815998553430984516993493129268397456132683482659937385866324674380681203573285184689915416511154061219869840813055542000594984615624684721328221381058689973958248088520265748019944206481188267071521094879705832526168886494138951699791145866446865660953542273922337557186658678168971145784930189121333231288091441210659547078606607871830188648603827438910915325340870793566394511814590486086048509903593492901300361415152625854781625707273291862091892642634927824119043479961043690359212802829473601663493796281498092395608245701669310526653806083574502462816459738871844561767724810133289029180790583805333782795115528914683666788279667985537746760072544726225686764592233443015102115872756488440823483201150273283285323694711651131929552966750084948224092740525084935054904905593976611957407891671782570942458746945215611677036536903780960296218351953781515607482209510456445225967284830741534536782382803071740451269595854427583073396145472582103743240526522374296419438721093988970516925099610919047449473266268545402295733695873413177506946169108367737855285721970841337667697736112857877367490831426665435300379123870702133538327523210209609672171880727759533337220818133974967122095201766762412720704910657527165530278426842852044904529384518112808066116798403982752889246392649074497459054287184175450196386422074501037184526534885609458608376082920354042679441623494242359876529019623845898877443190388525499474760528714406309355264921636480615304190377840237557352065930303708167505971034005778449872337352197460088486832892364432826024808087943623532324504352563741698473147175274219503696965056251358467258214286275515350818627830845765809889741999199860779264864967039639808229984699081802781332097829909283640375756488312552065249850856011952741696055448080545685580070414039868495204275555330613922057137942767097124800351995989399649508427966945807750042989386627789510273468767581615007865913870729891969348060826134049427067933174173748042297061313402370763851986683908497966869557796055400320336082109160549910573954374549007381492200476588420617727969017491413529803501006428937449708573266454664019165279868795710422486140106600061177757677930453556691633155652651790575557436816931491118924790895732691979927886134690804441591231128837164062557414514785694537173171012860786957856541454950262113625039340608802872284761053349669573639441017404382334856154161782810068240266080501355987643976245005856360427686587403095788404731616197000450527744058018079577904373545722018705671624406118516537773786172500989014015499684679527598529137559325136816337645813286348482668370487278341144857271390843113815311089009856051063054187295307583895964152379967832524099405475243544900712696389763908027956313171955546370207017272589436232416490408425235634187060146257213712546025951480563562681387773495041028776368686453597129687850702833352309714867678520987630473059859000751498004005438303400069871116224050878650842338405401686946285773381182722676588473680410831953454350555970203818165571283095802805868867764666213683498916822074598269233500044991663674205828994583754180295394303504997890057851628098807072855086638744635907947344043643386742406283919134070111138036992266017459551767692500465473538508311476258041877799664632525868103650361264508552229914843873180072788851379085850742586237190990499097867626564142377103855482480390933204155501967138814086696490573830560820007488423305433314318566673759537074488278627939483106549979927063469560687356264811929095288686437761312623417771310216280074220602305264199292156964231693840374562481385270163292427916683567398320580519874683840922149086471076651991410161945566096688361940910018461675748426060771805953201453460846401126820139921351856224925152866336093894897251936530503344150635034585442218192112226341523235232362234944438705185026517750034269083065563581156219700967120562771895204296908747382592264775809422160725991772978305046791620102126567608732833282821713471152157244201055092608472173095913722155619081166220154161709463263685805602109670510875427753613110277802422949629813565557906087846813906438218823867885576576072805541784107661017590440703071072714449954163205909474497141449049257531257831690874858546294450647764011021907441345630979604754089885871147702331241952921428656133468292709398684017026495258867796014478639393089941508394869644304706742881741249328160470760985693812810178588997178793636964182619192298857977507935961604459763727001873982873372680908218449557931068547384236400380158195759429066421180874138789591151909917663095062388225471607649391918961187680275495119477390374359200017830199131030465634748024245972658343659632967594163284599477268289835976194698998699144859790541184064188479617251832198471956198485667493539671381413498153715955528813511841243845005019154243593763595853756929849014075060942353497940139958187387115907410678908659505372862826442540885344436706098157188278088379357756232818282719077751159452981963926095981236893230361520602354193340907051664967266784892092127344700826850062999598874119511511594082150794243438238231423213388500893445901623777780578552716755098301801713689911918124281494680426058050633182926033550543602121044503087758863876431595214294459631883354738337266324486149757153488623888557090797092465578588394109380651109354783713412784665027686482572138120190185150387810781171891566507342799308016861422609963235001756345974813857842347026834004963818174881809118714661395126847566825788291548777350627326097495505885300306671336217504774447329318947504166827692612202578754303410098058727327962124740529771383488519504779805002359125086201741254075381044308511148812431773188173441205537975883035708605089354643082377457329642216757915477355364033500328119635480652221100787989722797167815896907014470015236910418936751555298537908361223467286368084266168360226894844195697663044874308480564914183255297669106416437449774982011925872553940891071936618363027784448622635874157007738455257399564085162709462269672852721613795458742355332495308715250157227925160001287387658510396994963947740859461997587104291685665797143873692693978391771891191568324804250136499769561259781692411691138426547021784609021664021887820525665060010810863117834868508374014906747136727952932390381425778601250276016501992658026334560683728210713947365996520781549064141547166634024671275714693064279600205323196878993034822201805727934398802439304958252458227403295904974480821678341293982435530176829062301760740587091319071689779301429869287085309898037544335002496579936754220674102236819943884826831725510124066329922093215410689032326711095273702777713192207471871479476524009810205314275938678385533002743148259678161261583191711327318977226185096459114414870110728788983099556302337223374806218880729649193463903118216338784606900456937829481821721438388924851398377899247309874080652781888121308357867034240950563542417228714910504988495498923413605563376847492697861628795173052034963142462325616751656007385595450834385957611297387303297224189621302558127567067362676545388293634308711364201966891266218435949689478734859134124494239732623025632678004682899670094669274864213179852199107034440141983914427682555863836530329205765776383342332024332300445150321325474830133737469025264207509835536200425185805176726978654557833306012056189721681628569883280128373598629852050056520873476009285052489903045283389516409005793895864505495272862730108399007706897105043712458470110894926786748732724488021768935869479578451322112332372518279008709819732360581687073167857159068791242275748779153649944746492150813140437914047163930223461851313423551224975203139900483713600525106063004643541158570258057325693152165317624448397735164025958086531420813756920978771421829105213771866514906230934790725175310397981671318977898099912875894694861398083186672942373347650796268705742786119967497395950863092571684792594559294010183550220908799388548650519848530107805098401141507685863223185253430249564897602056644339272486172616254184077433709661532273917665756229312414036827190047903260387302040015574701263870729011705361682796004054955732940458567137633372288125725697197379291982293417762840732173816875485717139453003580595348981932021162688407377175592307759020161973641444340637049595095987874811190913500532972494802308088893665346523385092460297500423808501163829931842112298536514627652712347120369509358252492055722493050002989641139234964405906502142754398284726222408241721566579124622619145075643624515422931568068452821406872137307707207955360013917558982930586298027593139075739227611477473804980130621521181831484373006241694272307969562819820787152437334691582901157987090399809736900750485608668845897185809188066625757734055659392778767407805455277853548812865126105961929376678104048460925701876340306981926565784912124459578276902598021936581982860988220517167633799252473248381759747710087661589201255708085894372918841072571817657408514495775407061642560040619910112839840382330039838745393254833688470109629293467115484285865741556904851302774804906818738780916639089260067088428753312818434113090069109545991055135341290975830612612803541311796178203355372065046177636778078672954177417597236036939644361555444569779350275448228819379066244897598280906715893788479599900246980068739010129029490441497224756682795569184870650970435687555456490719190666753200468540383136231404986836114310198901358199287971775588178465241717317127494719248210245858988183774875116919504310490145733477256733329997608863052272015478587201150340963814069806984984272009894647273551293635473957398009046200322252354960357059035303098254151828156826150964327432559275142470370394081450354837054377408309749883026835547346342711221764778133704566151153712154535152834554100490366457666764098056780534666162851332411955758884484070040663760546410366096779768762969587467086879589931384179047385330296875991519668580812385477239279698656672258018173950662655887132835886293962553048672387532646312903060125687545992988114802766163001910733415234312286436566027812629815755856171881230339763579715106122268467349662354587718577643725599138393362293267986382593731513862353241757693538060782347013547313609598785457516311673149529919868527210074014301883964786718973300742223728225084428716858166141502763977530139650632623354613536020340998059640193178366198412137029629975514502184753604227365953133524661490934539944267967097053147228910595227396333438032540987444639070471542082697502592250730236425511531054440690165306456751749951658673167102493549649845116133453601040798616230644302600894671056710196774154147757716412174849953977361273867365298102804913365997326491263106870697623815316008206358104054427155973049755142086991487393994145447961823593414774364141531703067388700887755678190129490881473749864887588146917492281957734016039583132488876271740637885387454888742145086752492811641870807949381791896437935479534456287082624849028545809682110344897414980459882638435564824334406940466560181265316668274008373014598993426302742724358653692640875366184292222557640050592603498567939268222701565156713856396761391461597925400922597414220579493225270302285071713819086330796370488718570317845353326519059832007924061658161350716275276636512141885550078019793303956240877590165195390221352993445271826277565270415739102005702785411000731447190089721012895236386170626727594499268376619038538374736302629720924417937271197947115290148921734096206288642861923362439787311268553595278777292015157888178575561584705943050517897726015010946032787974095689198249257663089857277877473952449698707316934136631378787050209910768517018057829858998806840026432033210182014836484297879201595729536543483973711593340183249547353262495361245515298718695903538839350592430607419056392713109062625844450571123152654806879873042691860180507255747462833840640792198594976824006034890859634181207066185257361895117656302250899773293420324364551718081143748783090045738150385215060220105857569881248509324606807425669242958053301704734844333315896431684778127926129546785215462720623036804065368445580340393505299736501211713521602434488698392252195036256273936224235553860442373428413764435058951052312065591230100641458466775329898047189988484203927462686690303782693201447462020541557891221152427872824542684078346650598608627208368186497041730375608062183677638909885757863980732390743100118395981762483744129460707924736243583898321437049721012034998643319575441304724384094514314822818059467305053579115148962599137653528948400510469520765677499045623132441391880024815075906137343500243250212354479239292842142348776595823216811385671053975431503234145933697560534623118114211767101269329862118750538192014173410839897709894701529930339781948347473608200095861909928814675224381362494702887771948779037143384532577876123674960786261488594775993963361225433132732967796465187669865460573362700146224286920546399316628188181617989738253840611794645947373008838810970108154755744214885785667434614650056807720179794499191331426016037014337084174160458937806267445739335236970854514093972831590085959583107793303613794684233961957488288307189444945845378344442277369198339537226363445575949358089381607268928235219678006008647613671607407453692813735750095946949583056158521216029852108310716903484491178580238813849441188721229220191730749376219117392132367813489975059584464515578719490953000844788103268967139917247560552074191624638984503665854481536051115317869775740534420620345584268500537541963778842384373062949677485216260531664035261891888106486941030960126009374356040003625111395641304962584284216592865446504134051601774278994230330403600241094777910774853543837145905134515241683610634555415288097069008674850495719919844808896373829412076998374493185208437223581605947901679875049199229870788990562913157079076829124589667191377229447370789000296886050841173543374419720932400521313067990729818779366382870187487786911642705663001624161916828365555123541391704225978300266775291719199843116844201290610334794373429492048132958412251357645120584889038317401085476473781001264246080816251152293312382984102662600109950616668981731077065730005582986885362778514042940383279250209488101219574927419619592269431854449467878566277407409591967967976869677070956895322821093705497002377928570250453764638534476720437190874597250988112380705929017854274594970141728741689963935610384915315390103667124171917761274075917354366357880653680671252040797254343067851592596861671469616946277404189387790360269704418272225210497216200926476610007661514322568400323325004089370028652814674085851259275448887644683088662322237664052504840437915465082522527918651518918242911105813746089248238379095616619968227405314135456054855089693279861510669208056064826422544636498469606841041415066303128430143653071107556969877097576139861657550313932516345927759046010925663488131123956849245674681838745009170273407718123223384308952399313096899997018659440418138052742485958334011718787653691920758962130939444311684864774685994280717165148398903367539071691821802555166683062081673234532680400216967844131967900132270198594869732874776696195316769094223474942045672345010673352049382176674196789671471465237574689180024875089256009141418058328928988211195319246105392106246155495282923086345936700830490857153778232843939455912154915863289272897124515101735814729586439493103713488388252087150968514597334571251679730907365787020607737672631309754718745625904814085328123185074828685051005572751491037814486830576241560841316429306912498440261891518115617995642112139811615338355645328586109777701128105355050167887147380016994433299877147697975057834050447051856898078207255878174621255839465475854768352104289758241383048993360033208638792541699736472904361696972087887010718490642826606497705633483084682338216609753362938183898658315045449396890947740738992699729335320871183961008264298781323239699039439727462217148433100744979821080515582900131204869417091360576838174395839414233682915630958106767957443942930299126305057979778184216590055028164546911608424109121924281881507947145587638812018479303794830113590475306934830300773074283263299637711212542964771978157263030168041380125753250408959189133587392360716902513607938988406665537792178988295532188259929022103495941918605412220715586094458904845249883680879328107332740029442115303266649686894561272818886244781518340575493777998684202783338097615265120495538941333296082165422392489020749380452883023466521102737012493798347014596614398593711537713778874820494662484892023879274244633244591197273366180504754833479715508536852175035027270767941579016300136893738580944400162863433929498974710466156948319802140391206149013379234364760470595568423705548309559516202647134061668210510260988036087147404767761241873584335802766239458868124637130074499232356666190384819705079972710970952168085027302662046703581122903499656773672294844851894343712033627878478137917279022340821092574932271786719556916522823455261681586805792702975141934910497805249561657053249630589406716515321211573120694652139302768979763063931330508751542871368403836530082049763580325316046712717586927271299806902615632426037661337626044664415856797979405706804437548237359768947225778827687393555853726921846461922756861005567580724541237188542455125734403886821025057954610502531441594793888338652674017155423457268631574164597616086509090636281628727105488093750963615459623471071524538016128905552625369915181868020791742578701773806193768639586850904111055848046418675323308175640485064729750594996764711798905985205867375309611486958236507732497674601420791754707785761724238450140306381694074000102023508154646381096765875096798170714645409572211212121944348018793164038455568245869310308543168675477597695613691987878898514647249843078112317808976510758406625974493783291202865190147802541287698414364368281792466269988832744596671493482866928707786286501275585898149914954197076079625309426839858837570868679294909417626620788302417162701452271190460931705059702026934527318273971297508131202655023579499643873873739330451939000038855840399258061287204022597590559912411792389026017924519266058814856338127585241373788690683993751542601508103189453985577896304335883382118864072717940171674197071415614008573255694573009846298051903879332887484591570622956484225561300109095032483711626343393599703202386362746388019377676138868720229337404127128802450789911264175920497112934466410683048870217273234333298632012801965999355640239442097013929414039527746712514383298700897521705907249870526387470093031824182840560796668290590314117376098946313123418107401546448256121076789922703064219270104594134044457177009709717632384656527205437858832873201184820222779120726960536154888067224772226900199474502944020789438687513110112365591482418956774916278674296164005166807057598453339025550928712040348564682175852344658169202104877604290931262058872000436414440926745247467945542786090102967510965271712430665552660851401579980634455800633998732414572709923271993166836011118401508567119091706406453504752235798095323501085642077810735492369469913884535067778312471896170475869581262663145173587183009117475533371966003337250721663610318368592951211869293415937906318804493403831388851009961798318037406825347681068529002673396146314150925546580207137122785879014455074923968156854307586065051292217834051921030939437645640381344654470395718045426911677948135847800587313619044925250438098940630163397564565568965916041558300618433968767943670079169819674396608799087651392341704727209765764123637413277995337265814712208284162230730826139879292380363590693384824264086262861354440372393255175803713298424503770740274154270739329978200636563795824177045306075075852574243297259570354591893592286710872400266398392630002556841291592804537939625950583818776136934967236540601099454947198550303132149625767675359627145599683826267449958351548925529862927698545947770480397985154924853961363174784402120791549098919159572381876293759251408931071366465339995180961543302493989325736999442021057468477300060804788158352270631792689115740291034340494247181649983720967208825552212434046818872014142292344375772105195807674716772566470993009019003727559772841792639083517887258412018483160693899936345413535772088703634928218355469082663367756375083233520498482171801665259505376654077537197043024533681521503705744074799188484466645036195957429702074964917871521193910287470305437074289581951921421590039231148707745207707160990065683633767240080871063671077444829437349942832076169124612289470965285164069264447493206910872391344097691568727540434597803376840007792089370755470524615474421639776198854306648329252950954172474249170996094379394946110808574186907955948382591436777393162342379780380366608730648105872955580560323599367172302841455784472577341512105499884197437854314821118655572322950198792664401862644837249845652921931603545559919141161750843779097087142717451814611667844735205891497393966082181656069669751709657740704457324345269726258252107833838303408517088458923369240907868967846365227642524456611892925148450959791251583663784010230182366157605541443217455024494026679317809554027886210679652701086416467723613091713465152081853304413963520772698342139701702222516396452379207285734194478460534020711971483939130664617951029497473215822150168968453828069141067326722896131967787116583166075189758116286066996981996160696538191326912188508682710281125970725059658178925923939447498468373349134397676178110434055172024901289854333499263535930940410747056532274191527131919380660578440187827316772032906338868346505622810376591078378148910428358510351578681120009206975781007776098141102541193246764968792897459569534014177434726889690444635812930964600552997178059984827018147279238920815022705626445494880658341633044441860690854220351194590947137900769334694078790519535726501003281988985043476583564352276371634713044727279690589170389572993251754781655183840755167139562290742251629262428439340399244680133392882486699589459209525602546563337320151093052904518432273832806846945705699043404308580370235291797543345954641163601848695645623800300341718197465985848745940505289536889740747515265657413396299477352435948009621596367107069615154963760309878943138855915226113239736229701543463489496596037846415208441797317967489434123957665961569664645669366346965672531161511777805502198899083950838030726389065915727207377239817131347134257513908185352815591474236221031937803186048206059980575441060807210772342390528042284108753934932387274550736582875040580515715911586791413301515669718584455952070516373415203610892042419475910016011596578449229256467424860032377461915552918312597856386791852303316056119660604117144697223228329337856930762603653296095236010377965582420332814372493591933111356978987843558444515273316364231898048844104892547151467280226952157804853896886380616625312198374312747179868739804136688796874207130653360516970853498597697135772264755240739511494293091570752049643075231426608965744365625947571646384016032114576054793762726212323281111138884699700834609314087222520575451351676152268932788542909910313559858526203802726437740063018224779410156060346623475962812319962810304743347410305059130604811327658342999933210194827609750658903754316736602889363616484558542640656408273430962795524028158165457567053509572066109427647184919081091734195703260957566882120629012328911311324860626126694083088387761119493950351047309313056418354021890802788190554227167668898290972208336300469422326900313122008530254577187824622394261230738733754210311514015236750358112936606346291597014888629530168255283115293922685245066556597576152160538809960711171417008092565456638785514453321346423773618794291753588550376893266563935223751944763223364839850601830040853008975249884213087675732519369607490919928429266106282972737992679104268817300890905214372133199898016553211580581070524169232736555809272272838921204097624292330598052715347416261906799017040198166895067008464700666434755803893254300427007624121006168480293407397743268148017954955205373476214526462982890556654956925628845930528216474122700527510119616161783062695764291494890035167315970203693828480333907459198858230305593859306178624199897802913472570163919292947006067921691130506644223255378412869093603074341670664725314741752970554065644834337698795366326937469141203076051246668180538776593025888071169481558290203611986735807223532479625186296470563786920395401578853608189370111177860395980313375562891621244114191784534678955666664561066325576889618595712048381696950281505334618303597941033737594286769399461307611939751780320166197739889008196632408054263559396054848532202980352205605419935742441871979749633275672072178962453682600624054026602625614353147296801176336746887825769845177088628484763428464339400115664717932465786289863354209329008382582765830681979126226771891075617502847572873777251561596811854512472306304734097756104059153813844622872624237091565491392577932936217651835641131571680322270404943499271952020689541810807698684128175380594639258593769063090456544241434138662277852968366690392911912293290529279408901688377925038724342949204715902665474256376501725268053561096720111937028305210695814694145792331305171934680509173153943471605270370150012877114723480223601844306390484444698414633132074619824923157623338879387618142282770089776896344692287283937766156502295955009804424890705523142370288195111063337287598213934486350617611544138288683729313302343333216025036252805117512924727677101393530435641662154881172798294367123420248280671641942783443006896755176416846164186592215408671901033767228767006796778950951547844335089153262531955954951152062954667362110968654347902553068534722760180367833411483429471754387713205470255137123084594376828766715171787957823769008597439799852427297883219135439116789389444859394476299674749051537160881317573773135180093631274281204628383550405823497012768895066378089336111068985889797936028563985112782243202869599510169472730265603650184071724496520501452062822980749041719019178821396696657980327909511610853455382550252165120707699539692153254925158770629610251433279651886117965396119080041423792245326993124490862713995790476967091708473833918878403662015978163461544571514058589618973213876298082647555651296328461908466673102954269793142817717157558255628312673242134901179233114535034917394489952083384745169212793890488556961675157466043514011823173414060805255898664957014214420422282584674600930717872695705210635217448960665790095242290451693033608755958813343994151916263405672400315594845162944653407841178002530448261717913823354328804318958295365679807643283185831081235942642291515000791718517080565796680480412723943053928356380615665907329267275570745004902501613769793753616881733091110597130601636090782130488564854887605318162619067799269790931392597382919600212605294616134849224727487672433080188848625771578897245735253478347115763313394359530281656037737442339757012965987494278524310510592631695065842326471013731875898309377496390330776027630913359505615568666833573914980916727399756848406787026460302544569651155596308700813808658543009817273185888866223771953965510305351323778598041645745010887869065537726327034382608683470823571002082240670241580933873565513921865737646688661309945890441303583256155343925569865131778989967196276737853447266697168653201953397472838360594349032732413902832616434044393013137132975803276479136238624472575810449950767386584845629781267657824734463071354992412236007730196953512940250558002239252626913596420328549752188805444685992482001051154702944208684581261037647426271055364560055144462609632914412043793861552766173860826707681503298797584155403892338612342543966599785952022257986520592895805272626411296883245880461578166175491171252768829293215844831210485190329150516553203113501006412582409043713475131159116527769648330011143218351539364834713935538688139213898828567409258408482989547869471453068387086126974762464153302492788003205766791179883882882953019333043518077882455801220901480637912665943525893372574367777026269282230948203248307201173177278896716546416523554981971427647619219501225620666865129656429547613412146595574561357834722422299289944896913913232305103181931952854211106583716736078590512295436603590809086548369798271160260981283197527702887693439144568952862478552952220692595708845932586890090591393774778979702222824963444333219679635436960215407128940065236382176614022489869316409482819105805310551817047229444816423952508111398806857884876744254214089696685694186469807300099761460838261631283432381742054309072800186713700357427005284894717766995418598886936707032467505722568551090773541240318046045252848659388924093305790954106997177768389781927633097833796353645997864837085633697579982487015202618163960644858706630435703395472830905639367012754129435915282358596943861032096378114449447381511203193129073716492427336434670161901219597879610057830864732285911948046637294315097510685615240510789454479376544165184682545456707099517339767173453785210753133384525181935354814476619834519092268816014091924919563223680259133161119778621443065044258459735741005791872442209112310754601645726504820093394618582587578818289709502487512107625700279297944253519524870534743450552936752949325929255314242344030764721997552685320791632858645683286301572194080856449100790761154371862573374957796519025624823576399572007481763328069834199108564828535283124580082137222094280227258805610703099504852433351523493831581840140587128355312530239996499640994046684261785490501483203632738358974208398437282113683743442521597483058145945773099501417787593936074260097682888787166882918739957840395517188894093044891635772967066940626233890782481095583697883262560185010427021422948043979569168121188640294286129498700510681266754387071032745138308896066633093740772905009860794290899021612400147415486772604612266703265828546250314132729564210854734940833432446907317481601606009113194654613275251808189045785772714297463858220314391352606163274360198690241905997254755382288788823703103074650964078617812816681061032145219107056687726446501433886178398212958034808375079337671476368581024142103193838819135460869416615633120971950129754094023158787955063596119010146759319255272727477131780794512259972274655977858175952025370395772396538484321755771256373173445323110213556007334038451625950936001728134557299331220085668600580122216541874074733573833718424660053762741918221951967811217493219417270671311295375544324566921685281285852036713335295807992947732251447502117176116884758195789029909544435930170587728119240158443447125689636279129640663076836228696596689620512086434448204404743710298278949275342642758142433563484324202875224084723589642273801018226432120818712178570498359500439008025543551681039334406772967797284313662049279086490443180495498347981923588755961987547504629206606139921794622321300841515339442394314291728717021291163812136970788979083092553332789785461442835339062686217130930434418772810719471595075907823689653624671736802729605259992162893232176587543069212692800865248377508268204388629264379383748605991609637696567314435389941667292654888547075913308737940592010286954212913700324228038558321272730718302154193314083062820891155443316830730872514343740351976048954562508760042841806737067821000337798207859947417732427554162696554156030142338990575623937621480666233979814111795884450824725579087382924899075982330607748881862636123888585694880024779453629660644472539402530100597701323062396152592603313765731895524060440341347605792256504226996864966164816781225253709827830532026662845575393284550276189706555111073177554020593088994920545355888820786918417055085870845616014427895428286855141187719610733783561459428719235700265432808663817349351074044246678876471829183007041336492911944249845893621655799207849313610953324222672023118100223443076961372805725528611661715861786290951064862702471538098060671351893333993776523684875125752296182212775267793966852552811822035723415331172948238610494384311040611044077167211241893839441601480548342052610771203250332357479999132375168312226516204637775049981696522499063145092197905369809012085341074344316028617208860048423934333361745740727859046055834679765538751949002862901860121508193385535828076448059871073615641343960238032200259061695264451730270232274658274634205258229142503202887452142533368850607743604121857567277528354347678702065404149550234212561132298316545893520712699627769564679939778308338006620117375853757222280591332662142133199906637941748703352517417864927992968547586864528825516135089758638635995949255000366788708425488437738061075526866171126126302101035374605131961967017547810274117350260967283786502703827834864015102308334773818245296567775131351792191105965770415581023544231629848222294929587745632705790088318752241535666968548795429466640696069339467171086355837328114777025065275374047663473493832299162542865541349509654521311316872331383470623647063935154375387901670676254711063912362450835302655547875306270190979456524205502320524433544142211933243733927451752160510821375037684584820463438860594059713208388710957230859088368769445838909877189737102091616992190663841410620654943654986039998946598685028835431475698370153233238931269281614605393645653285866644765006217010564533134809934356947424419153942869582283711541758359784957055939543136295348183930046492264686538303027302470718578852830224306810901231972214951595878773888229428843251755635475273634513871657101410126995997908064731893229962662200337100017048379776059234419942349468493601654804607812619696288570130577603328929876137593995542946366243939313885853609576644978770622088160407832204923460516094318416158326650524189454952880550840309328740925844982828566446531584749237120600645943557627409163390894128605275096392904725860428213190962085107176530880710829440966476720047112847153907402129299407312310898774829817991473453396708799008033340163328522131536473875954668989997987870099175167658460179856988942750296340672448357559274116663411417560877379265380335349541556255284786172560971452381694064259918178776064692919918374155716582730714116163308143601227913332100048628408947932872585891960238863549953901467102673853453447586938142406623627841507250317245607351073412554454181524182537240742349119066505462206300449706123170225663089989410918682720044599848959458426484331141253730736548549959124803537325947550461287006466323240875553750131033863589792173604088178428863436084566493107307333350147389275294816664073182372766758914242684191955893902800712270186274518035743359792281808932422050451888022956543019958506212170932725574105685368280827027436954986128352953165270168639272288113804067793823851672334828875249762927708787538905295106304053645020119618248395584065460606804919847769614482783144514974764672306648978339268608735809826003603148056256710160027258703339667853904848187314049285507114126175864584825583172642496486648969955231190546202558318986708808509980201687035712661140291805699789769621885047560828265153726466571512154238566133930885983129075533308209696946331626329919538082215025083354000996163034793035202715987610578942358432118368298482822095834203078590895266826322614123061492881557101574919058513822581984713600763141074561371960954067447485125640624564029852099643536739018652409343137894659064592881863638137988474391115112113594493613717766797590603197531576243733546814741665350543450149496796469021911129884785399468179257603786544883057385222557625786012373491166960907023846859793695491295421412901666668308283004869515030769366795974537748921479081841648604082129653013359715197607299104886996067855631519085107431278142306789166443625487164354448810133621217915112650048568357518615637619257701320022272879455538491720562352770128135401207191260145208053702349575557908684674065881170403853895239228516538255842646891453221294854831018735421905786386724918922211951922065346734021949696289502629509726455641891645552095094500744852722751436985733530753500004095978676165111764320626032595667424947865811813039674958634468339614656234326321431754345282435554503435884609128338522015719839256791098610132732349585749585468444675979010120781821955352377077005523762981275922481108174174710834066741886329443850977446681533863059814956358181332602379827076207076624567069474801974970873572599610682441985301502135257694157552930609943328599399998171307352603703408386838146530788072818244385715471221742112885705719699168652898145380606160887832306436359435298570637310311660033083008881466520189257924994682211999918658530150857587939892302878810025506051686847508677214188897599829498455425958148052501256399606516242838060594998548778317235913510311616382863688302888315195334259196709393197942243686541986745345282850817455170061641405736128969254904937618424249296749198865993289138777729241872896380540322709875891144408843482598961121911418469693258605766168502667557709222979299930540248259961955702775353786621215652296292875230889933168388282227776860728273462961845484579840863487532967187726891552339393034787582719000591876302360087094405422190209028022102650005046819894625906380156861031772233926865140136239647511387828619729238756296500801653657310019474663566885884031700544268095368209962412425089774368195931368094461118204422070089534121700149917625022478405515280873607462707650217552388326724322165352330287757454899522898866842396341433271508591152281735527368494477227010836147227944088871166786789104708628766726754748099167570187986012153594900667015241465696141286678854272051337218640991461529488374468984724807025786127884235886349964400438045067227766618870794899143750079474123873006668441247013802924561125845389019142726337052734509060357208418975286911159091605339929956313127961894960994961483688869556720550149695267387117000029548609616396387122543162927489842222335399438401383157031021169439306885443710686590779770413527894533118835451185861234894750319364374892843600739279366037610097114734532738808839503891405657211525049434167749835341199840029919427664129822768560505095084152987696883067324056136875550975873545251574653697562548189901958587270727883962767337388679041289841681718983783169187342172321632814434154780603756258451193642464030909340010313285993601284340634495397473170816148457756846024979373011671936577447608487012845697936196950615667604098582429677157820044597115518035829517724389579746189290244651230669576147403958525228343813759627487186738332700542137259218534094855042734955021760858856849996337549279279651972165353663453982534560944098945982617540894025513304442061659467112148129961352197601885724086129240682821803854052486374459690397432650633952950163998372970657632427975883603893374883679213964569991165837918730928874606458606490438546670099411839748454179636829483036501218626255723726726748539946467857188535584020462771219522108185817101336143502619901631740214196662604908959365724672664823889977456690666693305849080172519857922585769418451808670275752824633852957270391937613642469075690205094625638198315895313962707442466541276312689967408372188713503986975473157608222095919844373629066061741584809657633641871570709418209272215154011959410953515992691277348225524465736312492377134564134431490201174266637402587625534876182904555589218766347550803605304248466768394136137290792264370155839008960962377851621123068260225963015169253879497858231257056750460369960571260155311767459928883049355951493145348740297166700124890192559822804943165056670398356786643969015089746830353704944500762742592683569754574601681537650031728368752455632604659425607725709593288443706335355586975075867128287282736590929356571163955510018606140759816566601478300145443849844206265854287556660561478040750521865591457012800405604017494557001422322963999192587273321285460984857333448498114649732134576252955765093375116953573952313757324459329164022092753131394038246456528504012283792683828604852621944474034739729629274373684114494688528546283961866670553016172940851230127037856427031263828847780935014774568754511203851100858994266596856649645025588695413926061719332131044713944185329630480894460026147159340437372204779634802122571345426608903391204518011342862669821010034787529903073973320682941609551550400715085227484790015395050907615645268391867808879617438164686660919117705985769270095739786632059223011595015668919816543478800444391221715752867065462851289120610008653037444003428358845578019395184500510472481753039089441820876582319239048389787285795429985782008441700217469511925391896113525436506264257801257895490964077193576840157890902745783168865620956332688088869530884036084876719891291884270709898027096738691597932412020033136804019960928203285494995976808306217274829685591889494109100881136015170522868339982338709415188813708614979974290244752515416203601448025053125256391024003906278028940719210166478689289066321372496696736960388849219709513061650472745225938885903967097051848977975678246428235873011762640637029718457045759720190828889575372931528318002093624400907597008530689181516247880753776755411669300551707621707025883337110188725804622723206140756440429840636367219030329280272774936135489903333172769887598154559636001720109530160948237867817124034067056586383099157412678298933615856368653435071275996461778115127194385972250518365091654299271064574429491312141776949050394984389330801075581045849101446335702215211678565537500095106124215241857277491994132900008436123521877868603216097838883083526361804516724384034350735354713840056526733902083717517629801290156120589509627049807169537606521078437344951142634530558594609564533020712379277340778563537205237533649244461074607629382311440190023860222987297380278550335270781723889088701420829185980811911168621257260426175997419962800279821079142956974094414331582846976679906679950125931505567629173886358795805055654481704347580181984304707299377730891693304897487352736948621476731445374806310352172436970562987528697697730036862478811684728983774375715190473444571245027884092043356020499527793241775986775307545391310723178430307375830379617780343356323904042875843421656592685399457108130876828111499040559312139746937135183460660898853510656731857710732219946296900492345429601513074453848986212611257282396522461313212178429769433096107012127085484070101483073538493326385370309955206778584831528150218271047508452177694762049850570330194094057151679402072524674763534159643812586282595642512467214552917216182386353475868433224543913764983514315571440691981992051553843789432728150359724937895028966015243669119608127127047695514343355033003116344277023005018270228714794426726445453990038449565954486732803773570661614997892574515704617582440074046519677953644984918343742613518007682649667527538483037396186344492293473300747987844754217058546297131187309332736426835488969375518350887278585825577196697088688594157152586478235134646259909809003713524786056620953011171542029120961498687471134453760337412066498060127857296760084107262319432532450887137187877569933306782084426972127313928055617868317846382884962860531179166271549599674677881661881502658449570700678880593653405493732915004826273742945781812974578319130606078844873092087974709603951591532850332441563225588287595695305774637635616632325479584001773348111705816717580328960647301338996055198940681742638110159756512351248613719940705281173849649494948291023690146460216376320084447374239694621426495567659373692146018900103730179576645360381786683576730505985758901090329155065075918211370632702943825994645436411576334581023770746595270857923222383479110687705386372351096325497285967732864989001550720776689454104601747014152609715066837436641094851904015133961494589421229456961785293817664999675427867310998755637690197592286359806702821188213987569648693122506088128585216139014262375552411115064923152035665126594782796601433245604363051532977644401505018357056658358165131184360372256997908552136800258125892598915875651558171061852339656877697146714803339444642847947795745570525993515061320134361336938050069353700377161545515986637832553568465048816869558745642345954157110393105766590545465152051979263012536430300087436568224753222063467569630422199676352107194139598076026920250717550241363592762868337795625702283390025486234529632049372399836908042047713330213032767478963863147728125420231221938490297315892154462267087011943864015537364298227757011449644538844814344850178278839449306032700732997423495055741711417740491332325456753861382087457894352461254755241273541012864714311652583358036417659387846913324524720998215112506896423308847072584159648577614281604160234980294049226111828464804666110653183704008202524165270942287174119761446476891845934719663422305545155969222759029211945529697355037988004656703915076797240283963199083649304212442403634136973694776562410061913536312838180644062077085053418121579186174560247486258393619419058662891206677486693661421961238702765475896523121039714890273078091982591654252997713627255385853776428092022406650814292173738233515399121572347339785555874808770900329530840086008497521010435066189055112174207305499047979540484903847138846414485433482718736368788960892714819614247776637131259326247282996213846919746093779883474683905666279698036420563622652646833163374669414681694536011920679305789276335240897074713292722943200874212137804271452964997023402909451351421596692900198685256513422611560290191487706629064418175227231442129014078783115678191071603273682843163468183004744963026349119268971140710182341096642545975996564566912886409127388038132155249793394022642887928210135487598435199027453330889840329868154735799664297116103951637914578072713333980409309107088062804803091409577275700868715768174599241970232549374357716925141853686922167078984888342412799476246847075356757949804230449032271350663133992094279091001464480049354259963635078717428566614043399062813015714108789410998135407248712276207380454140139024279803045491333443138330694900169718556194501254828562141367965502022111981528976157842271173474250084458558055408768156506344701314905002751482982778004610620112553696683021700832891236402094225481700732950736036215073365584069086761184268865811581884450976587583128026689283902929521033362091238964795768045157984528917978995720662727739386919023326205281788430781641251682647667673854835037472017955072318246621309812558752894664270795878554071267722403272855730178599166362065788792212945810637704349486436415158299344457925251626176758201963464035999631968080490279902486206667415186642600612301667873011179879889046393555298068263247613537381436665549930995316213100944022634618670496069547235480845830246526089507985101336556020990021315630972612633238958077864696166951240429120142537343089812616964911210137798918254074222098719057272090528069184060658618328645619961650839169270343199774136357580560739040220102956512874297572235680253085186350358678060488370617373979333640251496000476874894118426358550710210259800285480415811666408109779481058671547859062681561098652151479915493486125954797298152685597765352717583312208879897553201142066193977921383641599866497981348943386376096527310673158233925942451110966253400401548645681045162453761384769173124888810197936160316293555905957890166152342732622075174063534958975758672500088071503747521380907771569935739072148525695286107522391689712924808465934601280741991359145016244533022987780291411581259446867665491996731997891394097887187885218637574036826047528959926024242163713956668402753897023707025935331754524446962394420451191758903291537379640765392602635618719225654584771752639003865512466860647141801211076715811566635996308370902562997907350765233243100995960356737517449247316748150441792271841141517760242402397548180304994930548618138205368469024245901810077654049625443408122765523167994862251390497349751436619640689131106856036334377930435092957558179120332793769073793933128491185222142231628667812153604050638016593178125076829208133726766843642698723263918896101142668222608306245966106066219606528598526690845933009959024270104000384551492890117432943016487860485201835709220816798825472822631806981174121344471303611386800520839131454530392666530643750673612496492910679757436749143963460847520424497335303328496157291125920228581926674552905398317444913024520373019067118328010075395858260861965129692299033555849517783105220314684690658836379227675357599078036403319769096664798616291002123757983537042660933931794820870890518273583791488798842448874652490837382281265617133634808268370779092741285932045998084354720707714084833805692181498699432447369134591778516513195255776200263559553100782781373736483345931785958917163826853493193655985478370286660029538606972128172363132666101074146226823297853278774984687222411535346257997233755968414209546294884644521905323622081343181778190932607644685085143304747894049428267788352899632430238554610318219169172961390434136977342150589979274529169775700679968763474095974901405002325659704402245177108071698262705486394002481404675908992683286989738041659784271335713070565172837928718413553354791188952554897029643881575154539984382091176054709668334911232606749792585577102358387342646189133638876647185090157200660582693533407272609280146173557343626054171123603183018727631725482269130863705758715938404509137881420873441306470238403888680803938561641505338433126255851886669705054131056332583052806932218801387696882828398983861541302195471980350521607355780741891330306340727284505734484472330318017976706844345609198310161597030541019515692922942843469607903905544130742444475973696173535936095176663169450468343850977039257945105601173040302632618742778636314523411980497398451638417242475413896978092682946033332533637341997567649635870765387172520313638016918203475147270723083691794953757055630289791424091235488917794969480717651567046580779256967671228266018142513825726232234356951558864952862778207572452129193855887228147252285704264712453082563295131860168217864434131851586742206259024394797426152110098318114443521616023304245132853598886077901204881427936074272204672441634717025263757218295755923513752904821745916083843297723168647044612104192477824402344014960414047416003661688332313843216987747885842368425622629122047676691210153141925689607884288403306929636484146653806055888197810748982218386458048581423105999876486519808966821852132182005479474558984178096229347115816422571425556108770036294335658094450545866006081378496025788715130960193720756066511429649047552317610804825856571909429034815265028131540053632311359914589439276312690045675929117039911310425495300112123011074808298406118775927384056370319814072077344904662056073631771241956838770605074019532073831237345125140185889016029998320740015568962124856331658955175433013792035205497604820479082552506084309043482908342456443179964563348159614349300537560351432191142995706561840287583778664504468555111383798892437890515633633555601302807198803833985708045220191604483936593045619459408942785890504282064072138723146913753335841184399388144427831327359281110103142899616200687137011837266447858794341695614558398629826408430919535173949618055541035889799642863537112699705818637250757590901999065849361643401688929154182709414902930258170736988203552182012304513232849393142248637742285586636570682741365685482177516293894531137431343163812379981194229946180493647787185040314347979661683321075731906864707244266658404353332468394606842101632375832360687277726507818254797468508850848305971425114765077719265251054199497220989890052671676428862572528535893638570433131340409524239639883540034673811462365093760945007143319040773724013318283320930503599255985174565091014136150482313260256772822361851028106526051029894030317610743331447660160238498070275461472437324976259904867659113975037229695333204390644371273898620991106844140969657066206778928258167668284162649137973989081473619859241062980311539040437730045262643048436692289335668617758509044708489375399599512056535828716164501125692369624812789424334965492741964295902064493661088434371069737724874113587714282375993999769835128274189748625968792114298212572476255304279725545931754013633402512157932996022302785672457006850658434760324333756465681327745502360598546596935142706241811053825962412045855338017906516678983368928820876616425996496963089802128180831545016436677814076311329114428748200913972565700974801608176073004723840070680200316025743767587779736091344930557934756984086006221655054698685972704543933024715536307778117864884184888852169996864170827947668092120426737694382946103414797758624616067547763195088217414824473427457466510476440872825906127692897685151452719259389190249276436815483415324556823079655659911573370530043970292145478408882264779947458500499336344934653320520656866611727491948929692383283335076486546782831389093295298277985575740769742520801694736478073613380384062742833745451382504509346805052678132471473381594509724166602306538917022891255041560361576348843451575148627142401554960188249466284434176426078506177464225835682651061593030140203730178349514128856045618497310676027100732834055033094516287885762865962294639068095461187899486252409066963567336107540882815332232435781394575008332382318539544232108641778726151126783263521983084548985926556846004537337794979825203315961539706133679569155205644004050365472080962359286463371019270273107199120823131417818712311217717465240718961344230079277582162532486836246655453908088030272760933928428133862939140659917396529139172220452037268290703228648680567137587990819802377848076615730950548244095291140876876362975214348644403733622035605790021591830758642121099092843019042862747886705596202554858676072299616364159448850673076165788433948157716270991780327377668301463419264425864960485801025366573742485345244232717394390941697124553187123937950885926931694766908912454716538242765538763637011087748312193851595040844036480670158468306003017370383538940063298905914387692436011730699572429002463780473437094236593214722927754725723366204191300259867426983045532104125730340435253432401247943250608426071679600101636032219555665949906102628598545836516565237975344478043938230894359235025075979051974216159999772482411491584073190977649870565403885358526022444342486009630390583802505559190234279066028539983580580543227789301781364289231685044122716553197892763042134738132131000577458748643047726225639357383066808517719318634633910582059950587754515382929687339002928643880291976529118095416202228057488991123398608351115732155988641283340174303821722532880891829352270120831654675004610630735229453067991235755107810265448872440030782940863217063831157760247089843223216302143164275649915365349215128899208766832056082417022364687784058975884700961835300816835902605656057422093388477198425911492308519986825660271209048269668447671635008222914238210471447555046275707514281073322281383854490165801205829718725250835427116885312642718749862832097299675898971216380145986835766021582857224016251603146120845665343580098439715890382460034625443366019386446936571108045721753241697738865489725435481006919832666093223251073190817979956088428798806055618881973302753269514655213171713224057708116251913668789912538136829987903645913039769799650648859908116954012886533534785694526659869874131549706642607281408126161735476260740294799377174693522404419545280768125650244963443565500305890366914430453201943074948974481152239273224990722572123492455926941338707572352685338198521051847937622650575839842944282760550969266575411086546918413128943210133642794866760962598598904527287975236245225931724364328375864670332590707626645733794621667066819855523049744856933736732422116733443682327907102199217348630565382077970206104328957620004716659727654120474286374739075327424524106313758956109455538823725556709489205821899646442151416405253057348174693739678704898112493261803373202769301110715487686286282656909553831163157422966294984825718471929312342068273441346880224696149071747699933390567024293862271490373015393794802399123443896319832574481462346863551001202498428874556831904738508541447496670925200657977122765640740700363970935329955375534846708025194576059137002284012276860065256241142135068643493388752056894707862761262326706423920540020683017646112204279881373993511917374670917325096376514472410965294332948367795729279423858282164122003933533559452534261010868590191807044069583905569015696672478888253461539634908730952327254280872846031308468678967444132986219198124586701574567008395899932113056579824347730875222939521200137552481934160271826688680223714958704405935576881363274971899886924969334311511115450125897244045915769235702534285944773715124911345520752440640349079394812246577447856149394350785486106236720015922029942591915978322120065941549567710887243572992408037113329556541400690070548142084613663133650903813861850343805244960390276103119660487098268102104431422438191125915038924181995866027446392673295378188728989230449215864288785713773643380905467819507672708109149997956629723677282916500662319842461829492016051896215257677978805459585406218345452026833521247191430814353796857859893018990637841470189752129251370503781311120590948008426743697293384448626752153499982099159895866163245791390722948208005510139403838071528006665697736322137171486274158359454640868719309129124025241799046733661190251848475431024884774177066736393881048174631384586650916964614526659038828306609624767751131668271771598952672394865162790904806900877917635745624732010981902249021137924269685837755954761166565184780057128722035283240271923932006391883622862497857501101102194364799477594976294322313606437951760217414861007528129581343461519438970307949597000105171129593315621767573767187242555976231778575185527143295255769315448879698376232011632694995465512115112391304495436223782279620330269668070487250207547191814747565832186030681270023046575567595514586725114588404694192314244673394791738284525898068230013129089500917993594363227898491599532827185597995922464176295923787832072533720447041836842822672125752834812478200362123499476455721040456113755083535127445923603730573396396290679129374407518624286221977568684281703193138033245037001696274585177376482437055396749002712964591920347668630146323314868858549186242256687941102981698240766799296886214878956805444502857727861818784997612822034039876197341282974574124858519228697982775308103672466822485227381937008082088840426230276945820663501432355322284664646353705463920085352507064801170218635762560149959431446143389052725311089935006409932067573533207308524162010522546046437967002952887208517005079630256682074773500197189421617537250422948535336349446403470678756705184138916734273905849036677214484457480245619256019985110243112786836715053661755185006262932659000249399222180702739839489061366963458935112404165995005526622652971398197280334853878955771277437449278405362818180942064493183864973936465926012501858379383817232818991685691626561170847844315651027661692188825361866307892429476300064449368958377802200073922135914223224484218704700141146650976226274191324424962189374605198416650567305864459531442484637678465179596476497984664098505422603881760122040021687042071204892764679021739959694225890712396632490018480595524996232500352848840798372178099375196084510614694185238021523698080073485722918421662494122959626384443622295732394817692680073202466204102774398727307869244285482414346280283476314482535345235686008333820312988531107730586017021823197148447039615177999492721514743431130566860370968660552068057635991310526825000224583986799731073411682376880403921310780222498692251990529555196368747461289830436434556212513165065486946271623995691709207789677833793930283147083842112802782250475891401669949074289352761563097300609006156602441744543435887945398511988076357525989184829956301676565423634324566646321045122981842872997305296106035526499338941546872012382356701262922078211945524663349482399474016544854792843243864184372540753846757821016702364802135864083052987977452846673565165853031537286365137576548517222544658573756575828620689133933538666567363095084879694367387527218193111552021761595866778075677381557053861770286825514175508454414871947783323346407995674850386041457292901529543089015728704499124441323877082723521818685165009252640622783288061362981394213337574076402243518054505826457276809589127382670130988738964124011614732286267818377760098448575718045568242758173524273304628408383772944049791581916517222877811380422255131484637487929720308622154002668767632466389268135639969837867583838925147299875582521579067455252856649775585277495488316401586541485886385546420030068031384864087308541866310807679780660184960800043369243936809605481278970770906399725777092640550669542632217284480346613163952335606715496259918327553553877623874588645291501846884526765245939006479378001363796135999519675977071720088385119469557589680004172620752982757307670261684012418768415090414874531497039963347688488574762293663607994693882692842947113653931572868960757840651815086297466636337158724478753913325305987383565412179878651325221620964500607574454526215570556758479988157645984248266353949695020164052659701267379428287819020931061955651192062899789739424683501884165404358882545239929747705703903249104281673848316494404759510769965134865750794900498644863578446094503113179848550939597181127176385178185174972370242869234421324799831585578938221400145079537265199362386706168150299597834908167538406121259496439017885225246162631283724941902594568027499898463019203429684447173320949534148339893909697067549822052927288377384889581772785951153573062868966240769237286178646942168772891229591679752882957468921454935825248682256912208008725185710560553324279644528992304700285806306109853156052421154583619871493559223204542970715891438313420461652600787482316252158754953062594337063476054745101990271589308803661118851847027136873786814105708844075700467932014771873719611139930182794785851064849273485327395014412792754117033206031924561149765010874612597838277444028296383765996949183490714782336018202236814612874270157486058615782556253356383787259817533318669911388598985393936695076815081016509278983934086269987702685231912455162546217512040111582927829722590284643153920327635015933537253050863090110055366014263572971410783767205190257582214643936614573986542283025611503090010029454940300586309906256529172794417634322056645734292147851872935364676067284401512648950100007595592493397303168340495235018116482138141818867367467012478111651998753399414517861038709814645215005329013014643885809754269229023266354360122936557971525322674900163833140042718689431086404351739891947271841283528996457987788134924112313976667578355704913958620164356309404091431915009528091142739531631740310850299300062503162855560451540905923796007545443484814310082897079890296338955975629909608201007371173477316460661664926905307184244576796524598342073203994203779645312605387201706759702884513237252801492747362111423657931636140157100787784434813737431367579550894840307910221302709103886003763548457748078986272386477904914212828959080234399367137163125001528109664430856443657243908299534576661872620995044153875281225723513982077457098436432443598081480805035479540862925702171200341733372245895793750820204544157023841509655055085927909600528466937120299404988436524621890368321132766328781830146237863983331933671050847303589067562391296410561174764956436292747662234135555523813870999807962096576835434056531844793397847755954560505133020103747178403720265725019687690898862784480713496438544466209663623153207879433786558437877555208886967516647989269729728303450479068126871893790401442611785640141795528967494004693916886979413849394320885398461619543304156173246214073011869086178960364849249106879249529253252152539226678976226173748996554798706892073715149304517540347996687593643767724042596313382293858381621258324843749936804112310776688938708580310230398672728169597996707834132428185046145219388409008104879890519910940799700640981475572380633926172305644490305080269836566448641861229507269132989592207547754033239807371002125659882551935260761192094568354272168785982254153473296318831491601966316941529645907905563526667225561753518943735465996366368657877005476134799102623498269728211401207758229707840675151882314325336249121084019350498220471994583704648925407578598929516910438844178824839485199382085772895930114624969807992927849869912086587117274104788689372306239263509873257262114046352615676449022362619819869163671317826325585421931946290576750318434857924420811283873451436125659552136149223612871420109762996119635514442874985426269928902808612864098239295956778906754714207309741198507259385228925463420373616368755849889846477082379173914605395873575806525528681636890407917037429267195482619146459852232332214385236420907670314804836901141839056656230794542523698978774113847240676304865601251532206952910345641802340033060283600468244485455531217597812213693866041571022309413366190588977777573456687860642515619395415689967178109760445736836071625893822326107732590082155666759953016966343788339579805966101973388104254029917608669495830275009714003027869816154488132759319900564866834740640864509286957810419976305585042106424673485360629467615914964273701952742833116813986979071673277682826231336788014956033708123870130350988496958223598188833454148548497138812570310539863614823053706942339305093338431747940789745534903540055818013983171596132062300423357373934313454607145449383708273727024340599352921246540788211991279709387512880412997955820965982504982338304341255465557770676144835667904006819894913423000293738350956737925501121289996538807960559313090644608614758583202880387172107842898844277701857424183849350276977053172077957748859558072796996253896187651856167219519377119415134460856638098482426525280535258187003817763894844624828225857179272827691634782255831206712833381207163897044720372361517652003501697737803940107434030124039704990068471670314199690151968331478506299384632012952535944093977799396967028367409112178756916712092716417738529834564364543180391840257404544556675125308735284762588305812557648616568816216734006601226813311040447394428078080645467838490080208667957135564371699711623495167714824740480239621924404453122578673056422842807132211195472044671223580371801768997588533384796874170166492596332866476610671638897746528396074889988307092462562643500249165284981783964562170520489290553823742451539496938523168265975179519474047304597668932881612184260412261883658968060844087503156240236879165179821453700581040855146376390358598340660879247157480907612640185697290087693853013039889357842473927115163968798337568385757289494974028095284446323060368779227304347566663413070948370024009467381031319860743540253054096370990320892152613910377158950252095631084166611149106812303916776932148423385388811214324114827578724175729594823409749497347213019687463161796565202998328703594313168967855638949631910569795005746088940659080303341921392263445832477402581904064133154829090535325965646302318161982566914085993492282194021675155068539070276686128540786200908141333628524240484597768318875236331264715425768746183719836167571755541242837500081788443923414344192655709880068696675973082222738782422894849758662441906651437029358400081935603373420095001546219213528329542566377820869842538411473154015596067615598181681080366033426003939738281646663745941550429880456381654739519625468407450791408322133741328911541425838193494784176142556952422953746437241542568458201130708483631859540301094876535443146346713847479266441528829829636127474080643559785098955527155433676691518318209280942819459004436383788874232242030153863148476830555977288676919057126145474509020961973997246718798287057677800458176376985288615324530520837639175417825667296531563153839704347834450738824498673137757940279000781329330924438787716513372279177790944850285124883934255798489819585645402267690047855938760123767135259100335513257495756966959663581881375568502055681462398497648741043194363937753144214963208160433944102122388867494958886815380166613026145512409192296042853655387749412997394795645604618492299068853881385930606426359816599504600827093677790408318013831915864047042019945704002434268564043107167806747247231366701236801000092099144570202334061825482218756466435634156351789899592911058177605112125996406841474969936527839128889592988060175860914275159774428385603242061328358444523083105136855090960464944683379096768612003144589244024885197154279118814446305490319228989050559729651548011180330395094284698711084695027340400409287845738643472388018347172514132145734820179445334056066674553810210190466540341528098766576323810925435147286253520765891038615406755974291363991418659866736755195221050241847283447483670672202842622338578217921471621153217565447951645786285526347689778542922975134387946675076819343646206913564413591594281983896524989590203165621975899176141236567001127756752922371476256494830980556707893525267099665577581271586860898867297590583459126858253925307795185204667238602336335190083727551780382968668163228794514639885541483240051742009660909164995338499570435455825835405709468669553676785836991377650849002104680101346531949546252691779839538486356574688010548981582220728569129181993881687350020996958905582204392333146154721486449340900875367375529969358850881884155649867181868990612403096533759553483565496636120304502722603613806254536189335439182402322880242013686426865676112264254476574360853294344211558338302109453540208809078943701365833259796437791105344004140151702720767391128564043287618053070833509845754982585500669444977610271530731946850028600254427000225417304241168174726093169005396986066823713314299214949666231589865101497322621926937065519473213789416696481433079075972017969255184052292728972241467084147719789673519912052659955386730717647380923963775445320956442036615714780212713507460924847887689667259237859385695205709858103315069229004865700989104543414034484482217279525176602388457153702204574575421933044560666217967352699460567909007943682551866776709517947217014125970472256230550786281980535911557622974720980572516733437555205593163650779550018919673285918287281721849123549337821831451674075660473821888990081028406140446323448127540155521823523176742154521817798412676039509768970861320855942559029704717242679166826524778917224464223878024002101792371360028552918646344537922550208753112996674891355098563157272034766711700458254096728245894945799351088781978479332862253159694630100669892616050121695611878146282999024246446712386995372283582620664641290682145532179136984510912869581382816715715873059722343595313484983473489964019789663207767453810632970678328956064949819719301412891756775811549695308597143133661270312380939945271213109534610296872570915637755419201351701253826774669157553011765855702654952588928474036350322271985463734054475661754674027967209795552709438702485167644024869760984377185430184999918117766452543174019131890922979096799112321258678140160029059070503135883587385196096318748883913368370783336238231423513703463355971256903581531378406839640338004111849966764522637446529051407702830779214441855921898522537894026116337381382667728889779144863973177498621678050197722086747653016832358618828437987161873015886367258458791149214801770812188011234421798142870799064624572910652513811702267483394325557924087544716305320346635977876544121301055536646069953518278549679055551865832959390303403118977129133927375715823720409751592112767517916604743202726286103339789309142490271915227497920762314306841721698908241817454422602247774797325424906940989766088554840121191236941290416837463551342021842021251381481740137036601531510928842195435815884814375924366592349449538710805091895362447920631895270490941048283564883667572494271036186399731973901230461265965749930505633386861683900033967751718583750781204181958635809199128215880712654223021115231838237237182733193705105209187499593879603993949172222435975940304056403379871341074927335049950048197402475141795762069986416051597625608473622231163815582910982743915946808687973284905304925219733396062721464348127637773365908135384054205512037333966818234739582300700528463656604820581682414488403880698958033351929576983449488207107559625361365529526491993090704427554443854998774199951831201501112882872686307537446194431560811617362433099276698180293038744744833633640885330815246127883552242562036018368689643946220613845496851153798009204946455092079748191482410616630618091552302791182984486515910176120707220617210758806660199907025427934059970294557598220771059382583565831423461453522291324416782749223328065852512620340586305868512126613928372253190526444070000728279386518646283739059400420140056137948079823950614045934673093308907899963836505483437083499900037784542159255648105647621742336669327532977956884100136181777248097599279779906858630316124284892958606655048028278526052219425148254116014244132702982561926557324128151815386965961070364642344287079835359385465698769801990377441185652273715223326284702636384554168835884835572823150119722641188674426215146744203224964126630983498179720457973762029759964263165759292582749799418995482498927295143008002636822515369097611490665389326516633298210823645635673305211572786048291100734363007693476589570524264011851449263551244098246401172042727198485615426500556866353296168549275226721683491480898052114493152556909864646557573013647611161722729002168495703034373659717501967531697903263800481377259198563163003582756800110449259975299100416683559748385640492717582982184088021347647329168322790354245896808211445742423222779483910585459313972461087492286398202757063855178254185901445325100475780814632745353701603900665586855801923370187574802769931035636946549328414656166822911085664213814105959870920538496514477595130505556205350515545451661335268408870141212027017511411040709954374999383865062716170686254009319652408117994084968019373307710514546093433590635077435136829262782944251704429836821099971610627555767373440771530986969081728176683585639716710375596821354888327576762027056739385870000934855914078532770342046072232248518821129156135310246580348935533665580990221098566123221366740110778126155813514180231673633922301460462736353995406086792589917426153846230184410476720926171721907953177133577068192374128556752020308994401301152208427210465427821485323554016955941427545337456768040793189823165082514055378323004590975864093080525429551285569089796117785222151268792906588978130786077735181687054692832373043558651855044309015826447017634795788984365668553151360790576299578765980278125406481298610584048849692761729859663578023756607276170708744303068307216965930815643958453172265587231872843728184741752463828555909615638826918070412219061489507556677053074245887345332617050937894458593792288974212721323007869400064031384199060707165157626643199257528304506757005779947748313983195307909888948015076784893115988019198116010228536571462718708881996679655731070317580319035559772177726798683303071026033502311769620638294138463050088592291038798946440191843877790354365767910686306536782114596263997763696685788674444399982852046531217235045735289827103507382185440027826666168360491722627454575822289132694572264630458556378066581926304570041543877457770401033769055475948731969981760614409175629039529965959592411284893371137261066502888469333914617979647632400044295398716393435351523035258290699127979962045229564546964720533482552598805608889865439866926929329230508136841764927171212680811686970610241649783638286858119829937201981645184019141221510246147269254069618138476987531954714389912616451976193869749761815896120239190751650713269179728068768852657723597751569068038904111640488000227480266384612553377581217447531029299074474848789381692482036260537430446055500667637042799158635614265297460847053106781287473712530046462449540720343940020711106209735106102533035225490798114878195460283518132261035181480782201493648150866107493799428766401745173927151674699811963359531250948722580331612957527613815594820736898407920804332447530891765348100651223698029970747151001806463940233514878560566084554052624960454305876941188213280658791004561171468565744520971882509328362185404466193066512056194422593942797082412293125923820893418700941145792116967933585183717796452636313262655216098544347300450045332008984814500853577281987443123779323552146746955815871419163642089835028861941265816798814716966883316138050781640454327137690158657602469006366362468957913336852212967738667630675439400324259231068703961074968559625840131700093762567304232335898078795551493193128701488757166348339235901569398254696322373979534068541456721831867054826931908705990909624393365209889726778687861043498908862122805624034410874635912011507385742183470796644791437247256104460774263303934832290779858943541181098999679764754088947328847235877986944286822153138449335565975740367740207354179228917330772893511643529920300020658492470980647656537672587697357845195057998773201742666104946649201930755501556257609251397625334827155274419992052633270235496701442019761434213883351316131792042037348971419625037528827938807320896788012356413183656936500586124837472828410781241943415959303361371079143049765349110554149005093556624656381224343610874987529809647090572741829787235224756458944223039593548527377899127211422129188573323448133466262583288855081374639405984731859887008141935074073604396157056005772012951141179353988461141417180217514493293835017121627455113450290263239337122199959294195224946032150853836224471525917730900396662575347794588079738288366510422817563323856429267758727828913267779532444252619564762730405086817183888146372008628856783757710116959659400727372249743686543066095100472543553561930322127874937604254346073204877049965284584235262897545323286253141221070761927799672534588666655587420099788194032776664809213950351280095014082882586000382184366049071539828302100273686153221335197438313338463783340067689029402983764866622492724311651371644332981196265943584233033244303769015056512637813198620678673897085729356558649248125991680173388472552142479750863588057935904332736318866599187350090334675022951464042106572875039030823834110776368406797705687765492761069442554138918156533965523186238630415035495488084823449466647657226354033735635925234219849768397165430365608182866744563966819592533288904518090498103427254426054277596214368032460703330423023353244388233065692797557680353286757104093689367681331618423347214024775017755677256145325446928405905376463534853222875774786829903345055826019039475068642171407830956692264381690450759099238788486962628716783057492338895256820844367791065688387894954266595582215309955542606273079729751554413982820624930731010353029175431612053986865247188155350447416276180882663903710206300008098521108550511949688214579834156331803174132788866351464463496194741396723833128346000511741640743772481317858100812363164443589182208119324481941013226738807051616959634062641985679508480899748158345295458251606866700686600528321357426148039395124768389678326642888469361194200029026285729392285012154125717786214447988226147722346495445338102500217355764221329030363752921873430855549341316132064146818298635991194831476365483915072597964079671684335836117522718226610473026715873125511074948387172246871564738722595162538779295651715704985442794350897095408815254191477211590215963789572566109823597270871531761939915765846336055926371994647592894123785289768871418525423448519556597056679032430860745295441142802422496676002352428528334121479065382009261504246266093482501091628516740460609137279615972691823048790009254840740810735303966751773130395872881116257830728989578587827063333182528563282911937382741420460061515510602338406694685341281362929021780197692784778462187715389608709162323589669150189933208167126243749146712529609719952442025099872794951390356822834440739956781667525060350761261412945209681798400724179550908507130951112753996196190149877652831490008730440090213244625346777055115523860420591891350274157524190492151355775096442040844526685364815803612783580702707224525608547474078970476202313118214236732698137359702476364199809496581326466520274233596915680642128108970523523591605261987491821718806297538303634655480760904936011638149224922997886674342988571026413228110113719811101773782287446443213067428734812822614315450555572607933537546138584711013145890156008801740610723465508036321259970146293553680010634233753100400026141572410877234957303854250702000323585072544611506567113712314052000994126653118222935094583245732867322121469922080165348278726441316705029354404298648657631458551149792652481186351860831821534893504778106214886164481728198711216882544607699329564747928786993106660084563453460352398973748562248382368262558744033407469569695193714528702198327719545363516757639453622781349512135198977795760689658001936936895953768799179025116280228028313607678400126729627862132046922103158433106120602401220260691003209353614700171777372706237226381110273296555740616362040355294280615719520845962678893005800755381450688597080300370580426974976399464907063381226498307838254959047434975671940326894733496245016693676467736242502079890355535662587317376292034643532248112071577471202398066939660972519663429767460395062914503892961471267371924310807983785060295961809001074373232838095095037587052730457501520070995930749726542716196601752461633184430304456494305271388880650959141315641601829905542519990898305357548889881440891011954092408708624815700738809850802417542209620059642916819614212185262958018430877125606676233124066966677799052657530274496241470090831703477606086452306764333016546085446907237014049394948098493091036192919806779307445775228335501617005014185828152317793846677747071170904474724567850801751307206114071542623341048488851049483263422760188808326079379178301938583080977746407667279492924437897377764117768100227371120188326229081585600909977853897455384985455666428832135003647311249049196817567798901941467839436425082724128711448501959155668131511339199571875210888227592695085355157699263973433033091986936436996938637518826844358094695226326080375321777655573849917096327755220771742953073513143392425571062032260252849290340215698602690749594773176268491896025946461818715756921424809727850890280512514617330338197354816194070671772956043305964083519120482054480828832837715472720611367706529175376197778396562321378737314235833534884171975268640456010238921241299341996548477483829854243009183485980940286564641211348642960714950317586923477680918292620122075234037182342493865493647424023700056901387023563024225689723663856640746655695992134385886503185918713944526277707320713982098584379753567451139579550580478540300425210668299651989707703201655050848964543041108712538809083896409789748051891060419364671077315708151994659781404705991968152984237337380660373957870789761936886515308099872328912870805242952507859400228153457048745893747768858965815601160055090900377514878310288198285802813159583297944538318418623386607834637126168254220242935398662093270612766063532697471160320228938948215757969168558530714035786851558680075310441326020346015043007323901404399447294520878576186748006648957860295114700005951417470242249454235155911718373100282898106285776293319314106203649544189190243092246246534838895834050602496441873719379343974515711607929122510398017307200846693317905232482025771163529163118574609377303970057049786079248839478184012546807573612993223205709688318588255716878584690446461795415214359286140340681674128638604573325263351979047033064560318447156657283949063723025940152961337363953396708350670106956227577419287790844344897924943579434357574723913290253570600053576035656485251329834397056334030376749563552384515887897691889172323588779832394904364533263117522494530414155134820694219040996554656240814142701394352072477648036948773453057023351161153706013000360844943164192472994379882935447862113329053263504725879059698779373125140019100145181471960593025092453425610307645482900356869939993305109186871779328301109269936102869403771277400149822868022690564662447408029869932866583269055906363321590564302277509528253257699120712671948448447393236451672377600131259658699895659021182605491563989730807269476924880442101880107422023019675024150664295310812734113406369049204879597282095971099991878183494361434825204896690288333066964718077530256879388938530877240387427458565091101048789591720986913117015812865289523587352715872956520083821437831109559314848197358632315313690156023610686287129723211252709959903571652516547703446777366906737063879395334153720012736251672203124934992569663497030822035118807695831112979838097535909276342102609724537367248090592694537505988581699769123235106599555981203293895858019333764072185408441726026576554341044298547720468864603713037852701198225149008728372686717270816090979357592158210471429196351732394077097446340560038299782664940851824634981635425700711082162479460550481329625288379672605730574641049439200501330685283347974188245977950808476985514539484881431447831243912544427214177997511425932135189991998964542908437089544194014453462968133408357804772207572883839390485432631794329511985021976855407937874812535116560993907157337664684561380101780308373265472401710947371712137525031233057475481832408979532959200851870749919603663599528534182987178298033833245059925174165664708004362847836033535602724251630235011172765872375187480709891522368443372604804275920111190633255450957810129160978724658033688772382962873321498549574805649618989290935671788715656722970379529985297828298923548861524269272748215468634368446993296598335052383743272807306350402728546251777588457680190646698517532936437570490517201602968197577550276397707855955331980656182868982964918276906837673441621676664465527968399001299871563347588729970147819832305671217644344257888633469984203152302245308474896668966346565147083726033709766693762703639982463747644742787974215990674020096195474795254914868602208675186893433653085341564684626250859780336764739696641260443088077589142282685225458807074856590288873250403892871156506723922435410583100338917390731639363336647279743047314268834619075609345117100000508599981887716581717464743799959119652203363002092788056188524658823320671884611117247604868611206870372281159356425599676091302192778516037638601982364708345738058309717144903600483753531263708062921809783915926407139097083407361327080028966733486194832592283402743820220412145570380365004839921594351220510963218819931276075495611162999054618083437816603894620455407394552995339757818537112161846172656716993669066407919182544526832178035651715073200443845094180270528983518003137315509984470755163944685059469763014269314706883036714809583683994482930674213658375007144842633555379442442830706691008734189666140347421090008948950452099041125069508339682233935690490091259314541516149012316886215541292947711472389221256034684516331986175964548524184875470838907016944887833524040128702459639430418699303392599591046511906006392665787899621542809054920772127778015724526145715625352101561740785727911005416551759211415848257230056699495728170123859155515967909332478088815894762303160465996664823075943151659299086904414928118638802977308296572260078015245198964443123178927625507340290456610967733487952906148287606191303988368518507605702126562442016206396914350567782322464050139726611638086797598259543870925804767213957683582599661603322850406095374270971481609308950059131777556225547933895046601497637185735152219101219290055771905555126003863738730010860507446213130636422118032686989935058167399581064128647961223441904725688453155450436452627540481278062564597339420088419405302623422029901950911544479400406192509129831355832506921087959703690204991492383462185245307003761757886616057953092599747726210940732779604527884296106748342675745937962334301676803801115513132145217036275919560914017629237841409996406116123614989087657790143856704457904862986449656715147916677023911031429612116493916597021694406349771293840998882227531403583629858496874413311261464855882848373543126075076580866143961220897364283326330370360804039158925832223197057702664308787243271841874406153321958569434496700144910938752783808686457411784995742175048960595470035701723232820819083158115194275767377284948067355038425874988725926996835708296583700846098014205451765634815500236869198246673459477179337587112029900940906156893771301643069172725723399675382598111560345273961182183237877966932446465980450226774531450659076918151571693809590263784576189049891451103379019834034093474372743600994834839267392106849075204779037179711653625450901833618743627239173737925317225750977535505835633046828160512192855624996666251780105912610933317970756240526459904286576111204138172043487079713678396270837829397755328180458499571175971691887703617784228856192928766347570383992435679089994542387392546258026377685175985611134757252076457244845695519711734242365682994606404101514888732277171381887878553588665007794053878764949998033902073002117796966936133663468522714877907385574136871325049908989586669480777306062036440821351646247023791893234474024583041563895027641210295813155967545868656339073471101331795047442905723972179247124785133681361822263190446978466121804337331010481995813937368789769646959831885121872860546651119016385790541198508790541414520287549770981458892522600083289095344841000486660793105941187603987363560368143277203471350069187300212166292409898734326765070715911400933426110710283239843849117698117210172767516351489234929369230467515922530035421660557113315192264671706481592730091000668977838236805309598844997154734622923906266304224871240145283753038682645490807842836703178594260313780641048631220726850765795328181881737254945125410897414943799510835827713757872189855292583081855405769239394700021961312806415573679739263999252697293660762065480339123623959352912780405144972548839461269535945590182523084521582589965459634167652736382012398875244969826770749913873668937355130694468112263872701755942553770911245818539391528677551009709274138041654622450365920781072516389521651082161194782618924291011062805265796689694057403962798587664235923085464067049961788867904271449183625773028362900669674425397580094941521144248416644756147450300291897692475214983639230132174503527064401449926436349623271690516126968454941257779776459982605731685060698437946748034031912648063979363148332375616930776893375236714393319416278224649985482628317357720007218390512353164766298552579065235140275512699986374151220541279189535678372231148990686990774132229519215353746055274334545762632680536309582838389863085717981248495812709181945201386437588332096363482622791077117679371566126803000447147491437669968968177831702310071028141362968326276941314448560300111387351423178227349791541939333238376210142466597867500026259578095256826994272866610892992916969304518449193074443213778427026467283676703691546377890308309771007580139794937221407967047291887092373071822685684171100598465095632898982809143447142162427962157331543806298094231943035745422064068454934349268703303188138204716661954923737353032009779801705850882828746053132793830265462502520836489480855343348696191440231806274640468425717973729386852445713412446990030657800492458652333024116450659744460573592038556929370777122812201032489595635916924643919130035911184496252740694676558152720433951083760539389777723588039860980379701785013412627087869780390703745344473558354139251186070792094869409324209277248635357901323228316375743158604893228507541548923782448741384137592307291818342268010796658647978175431798627964750951195188373406521818374667694672784365721005566621561549357253870265823372660642814122827393499108302073729750631171353491608377432891113331563641185257512694339865019321412581209050764270351904963271094323251609182518658509174636126279203688683696972338996891315323974286983911157372057451095165024591974778355957978354468725058870912565001717908111614631517802940847406459068532443009959137560011026539387889361640085352000525152265671451154857057409790974558708180783421380445271464637236312144243687243712496045508500492126687817625500150684149900036655381089460685176879115920576886778880899772451078042183417757944496762990970185749557699267668735533849614428401911310823144118719242918098244139959834039215955717005405630313638957456847421293477615443980219786311023728814642807334538307686409888184845169301571969021893782670633798882763753173928277770471873518614969854332375542266722591711850798891273185156518584705662246925804983436383026926733809485632534391987768221950158240269263596951245089996562699570471140756132247267827557823080534080795436303227044200164904809302949338438226827237206913052637418349909803811468344435190851078939459020885373863323561867578200059367960423402648407349780802952662373441200841791778408765024380422544458764877974508804708588974532195610564066826880837051993368279577897148758006774356690493817907499888563526736461751394903391754995466816546766808743972260079389775025827036685187729200513166720461714437991310810040513365501596478019210268246389069425620900968835258871514518873393424274061297946741967000398035871831822297102868290560528156315035279127593617417572017287398638629515898884279187059392077132767952570897022566485328444447689679452406692931859510904717220116895493258708511466307152592822136848327140149708902571717173336326260278347489773920324610037948250668629591485289125193969225946224812327289105720798729981476171944953626047068305220147141562750891463811820932751587540311218161712359682373862092328451648879971607010472326844101199095902875350641867093514111305971088799217549651120878731933160364283411069495834334453853325125642108939946148921943340830943810622230914353009928614209550876387606918054402241556984283710549434630767850120341418723016786815083130286355409743033537070617088769510738620861348096304203902850729925193224824918180951652464317272095127309900680025275138961147574092362020273579666692790885344458796056981161534177763685734810957932490554885673140533344515458396669902781449919053897526821406480463998736757447272751346757433508628676398077628081074202544741013151935855850409930335352673484047576216343734120330206874927819934416100069012180516031823357127340958233401978323266921251625391320874470101946824126097818241692832739103045151336215490303677408096673217560488188550880360213648887265496310835094312345674075321363470822810847716925192375073939761646791885524765831468965256821953506461503946943841388766955516698291422733612867338250015894002063218022971707673043667790573510300310407926004669901625885576195265857587090338513665387574220718102929387422649179588299807002158596864203262261211916507331880544728498876603140591444940643147547366072744963870352314452198389468251869866060922572764665023602808561105519661764214844070281504340928544231790395382213080012962731168891089268254150966153123381347915598095013685229302412175585318825099779171337162061610173504970613655060044246818126592185087640333055553462742958784463664951144495919162382403256956642985092280008607822454706192807280964372321271030754984168505348479906799521895436137276880996876537429659395029298809670365215271457941674703615379760862447875706404487034216846731465594333398550767113930863150350464106353104811839263978220820275551103233609195815571123362796121234236206593841370225909257084725321442260261233100077046497359901262948149099247048735563147076070071411228275059787940804491794861306114664043179593623404945514129988254429235397131329685623871238356440467621107729475802014563735360673400872110771555689739069456365839757431226318889312762722745764792384540621067297011590222495286064862319117643195344079290739533579061711126809623779900133843687086776411228936099327433697435154160796310187842202239202257390461813497469521517781034273355032602863976504738571047569513930599557794515284300885969930352349138678149666022185802981447385974991797423938696321984905151236086235676087890908712337981057968680067425097000544692044948346105323121726575795613124899156024457097334948234366109111067498995191615888045944874417852817409841225868954348278340589157056172143789502375274928576081314493187886273502177938715467982773838730519323814506645573927350384434174424924490988976057437567632591559788900062668930367400636306855482761275959994217641895705099689983164622953687078465734805748740368840003920782482208425984258717115509765245000383868838185524244299596079317473986359877817682038313304847711103959500909372268221586462476236289014973295937151490397891213002482536841297241047258514453542436482905053438824863307508015379211382796932746262278545300575280202877899038628858566039302913262700823988218554600699536165601095243021142784891458675496688198893149721726987851385401761826784471924801835552814570981142472066242777347016436783173406615945355545061684534075566302888914474904489791228520343869476744821415510087993487990451746428389525019728285139564187055108645864916391283591112585953957724444638657481365925482036664838803229084433712952299163892606121718665287325336320696577863824095227495369025166908422851719000697175980423673782560976358384082075391507343717567608346764172061263702731099907139067061886505983164955211404790278740106223152680439638006295927097785640301135586731914338230282836614511558991152161907362872895339227198203955516209036975927048367464889087404186105536653447961472389586092699034738110957144106921520172563482846043578236188108386611468981184602432735911595256156631029073657562400132781458215683252426846579779190791163412162955385223521764639497859056576100480554894716802917883118741253619993945148885873471380400878461066948157170201296363250626216739157895695759352963884723123987297099862594445731322942796958147289132441026326380439961622723999310066517548330160792683736018506094449780522266168860275942110290331311570467745514765942787477860175164036890791635623087933416159045336061154470503404291987283676362872447373442768855056046919973103637667240575341175206572944378778204065282880396216606917312836052889199408915401408770879765802926302117154969822889776237048529872353297306155613452069134476313921964972602259561752313973048631831118338396741372809327701901036781693571048207056309557478718996764715442601460546085096805278427337853121545671299540511421355404086634617450038458027945177386054118054561671822349916663158205593254527445778195597138440820122883039862780057650912976622823438112509724422550236293841190949953167571964905126786803035682331076195270525091894554871885856102586992185903768080889765542820285257558962826061697724161170057597121354500584693007471635697077211780372508372645388876887569174879110017382897530887839432737812088743427029066355364246491661994507067330762546117279070170938644500891804144536317768414899690075689887603533481557167650502247567412837356314390524346533114662966758286453768476736859362242456771800884322898299712455915806800423932607207633348932151654712596943043647268929561440013103575807762333805679784232923699283796387293559702626515023881242845065669417885722763448173948613085725305558785779646172466827952426008412575352404614947430375595769527015029047274211171736256452022498552250243361856609512808128852310428306639342086534086819982064664541928415074444125250885356191165293485594693414117860990488012145069099752305462142257337000401530123019998965652642239701784788710297628410346540410252003837778989909758747022068346628224951466134182711606528659339618097689599001934472472377763105149058880038807092259567904072554585385051500039119002190113317623374847949160932423844560169465944366213687760011181765664864520199565663125304422707203750548774492305651607691460617018877920791771598291723962538206380799942182920347855624804711421169319027489305541960590372175126609217493654745576671359251562295527978635504549863983434551146747749861242304534309020175061020104111310024397286585394958252069924680316582093292042275724188771003208527448558302197258980770205037248077228597023711298681944121704003037423545230953680035567752108637414281312715002732758112393599876289191600057799617791647132402381845997245149368911578405350643509999204365262849353744018943668164838785384594865121096419520564907489547463673313932209414281852557413911981378778100380537927454046433919346254363055338497326780978545512613447882493723038569632045798910233304801035986832135826524616627611904313612161424390052483162108626376344205394868405941667596403015677020253345406558588975746598954080638506163987944382564513876424808891050351177722306342567924600227958429722246400485947372326571781667944775578579468658419781685366863684886307437713979811621263998137391010662193331232833250452897707119279291597428057951038927425281853043195065316050221239913693802944840090571268637496946373384216259990772870174758375779741089890276311887259516075272411163459158697715236176918939005568750024348228281977398064060519581534827627566297328301084807830504068625478559458894288022254428581121574037772998620989264980854116692117388858975410078163799318326730253448763871923537324474712002458970352149029416475354025114902363844744384306413390495097198832642044074330970261728377081826960501086173424146144638974965007954940716207319497662574915006575156952579835548825683924630408216871408836247232171782538263265852955810561411737162749841487994648586022081766114843679367756045992400125574529938208274965756701845612428911789599096273960345277012913954274588880863138867365951772914515264972159358900404258707732950414982037011822919998560837656913494206908152090622611672380815599742983188331848921487736946423673637482660201053169659788859014447283493518020156515207336068172907623663567377607836546248794494804111149131471843459673916157596131608728983806802449866545622584225579496240222545121139022628439544423469101592494361234722181893755640739869641617848287516208300574876796671285063272094281872056668136781206991135706084579325159356303138008163016209203278483290337417504587324300257314599627692191884827765448870107638605294453378044107454197507448270386394888485125045933460334676241060897826668493350151567115132238651632255955316476509761215352917509155864815127371157453731090597120691751071317879930474372586588814845931993018700876138697710330860383237336658351352941978978881098470334704071157404067419202330861965198981737862385041109078929574226256290782677379331166564110909943112690807512946866591098928752518110018916009019238402656940856157069731044730493645721732971746798978316414663324245222630076876762439412976123890944005137873542572280020123868820086165673354351558962843617562213045083649175839314125970355566722751736683944897049624256831287686108475524922089720042883924474987531166310163911882313071963086546685612640135087789964448263184322266506587469739361598510130147529200786983311454015804240303753817130922239105138436486669495671310840038731096604498397094442254974141566207172048028743052953449890346266135835854585485075405312234146336525682078066723850791151158226341968204134905277745376384417992746287492701424582279222433820176223378863455834644739317130248820702307043436156003032558507295902928579127004176086182804273463221207029043500965982390992657429246980903328563458566641167570600534474997792351956077560259097164192590898815956483570001915683529487143919388934096479870354869593045310351501048274934885107244871659991146166831349062117199493970274877562886719232838748970863447569700141427028164755677639745374805873788369607117437252827553695731869426540528326201319422809392881618829672369038245587270391397767815439542336372757311986349024903475122148650894766312923930828624403077712193966119249498338626355321581165033403266080798637600316031416724455373338431281307977365944052043703432213741679532759743091147729353289489064481959836093616029577108146519906471482487487673706447674344808140544430563656893812056729843728815315325517201580508113783387003004674976872315039497827172162989256790903708470472126692546588416789393083151048402026560362104303915407910258283629676815170201005623970798512967962224433609107767214832363734017946079462038736895672136537152449326129281122359595849798437308396381726805743120922329518319928719754163316287462285233048586463273316761187772663363790290165673326258059632428623081500214427388661742554976721352724553220215212006782361190482399892628676987096491444638074758458599695521694124533177484106443488700546343957665173921864483609098415499260598113982206616900929539116695379939082176246717764732735705982800783472374537503065353246476464723888905194860182732731387779669861576677696618895087770281977178736686672889640227041104614203292693820189562636387014106374066228118284984562034052164357134933415959074089616616934626797097032768398703284385671299921932077069589185424573914454474679177593981702403234022269032548271138756814826104690067522666047268165509280851426986558942344807329740577780417338690900110396291353836687146632584939065611807268735603243768536703778870644615241554499356668516307932341825262027620252890002430000924879061199699547997955108096235611388056187621635109409821504732595132679248768692657366285868336756029838151665581974401794432478881662920921403388707730416734263020138808712603712074962167550337581987161755476083089930334251069404388132195498490075026849487951539374259722808475714464026141038490396742315667112386261746780585887229443949993099037580664285108075711190303646091171793690825227926585093860168839958401057307574304717527852597542595551543197305513337763173509672582256416348442327108428496123558165151972589033446380272580173482072105976053882184085701923901537461226616857399413248456436156509269966665594050546495580642509562196741359178479897667511497604492165771023350917996358531502294570743904698076963033503221599488365699749841807820281713043315719079317170034015054155204679965948762031673217622331233714294768225151634405559394724288301655117424378858109208183919471582126484496810709692193741303544583526934319258233849920383597921212843384825789519774509030784533811100744243584588166200883631429027224248080117176679291718146904799636080089798239592678030161039736219348585806417602441147991240630225639716115987586473174805890639273277713549463766459236154906753013082450674825603384308334583883673003045853862218250088297196632680376052597092108874768222902038859334145165485564527892007269592460260182747864598841421758347863087800812011240264925332459012608966294044811020203941284056720808256526348375433311826543828790779129068388393018430016555735989986835520876826195749954901507078114232923595388914659175845664752076970162451335516407914366666957691174035559776671062532664283990902401147974820744128920633943362740165402825800079685318213319122087969366532915989520006111003817825184893751064667305780479678329910677346918137306758526607963497027978401754447482741516835407208106843330028647329232770946541877488880735111882137833702886739142476383650282839819098947085445535555812003704653111280078236415119966701231862320818916145804404853049153392246794644756012595015332290741910976745096675160104914410461501510672647986298944834439600620883349696783622836463697900641628359809723964782451489952469598090385962763928198747673715084082013467696322591473118113567200254860440158763933330873765268255126753966181725180479863912268031688965239264824559538656137483612347915940079192286380857210498524617650295956158004656787954206054326673060057249208121995571675195861915696424109701702104828277562377918614458583781867519348968086223137684939380260231844880230198443450227800940054460343141693359295839039687637714656711702996361724964037982302763482980802455416829740894815507377348146797232919210218573632374388331603946151268343820745430029115132080311652118202777774681026649893304386291533883499846976156711395606810738269039584974951284796716379887640104751858982328114799327123459221174257793822953742879123280520524582928476346273383384273893303174076651424648032131253790557176746189004914175637504265828976685766260854157059140357242689469035168665492430572445395527298348506351732029458332796970690630299911013753380341853966580477499678203032344193781974400384195771853387500952751544776657641613509990073655023544689044291701631442935511474263022051263925475033587352476114806641855902789909795306869642308052186436932721663499165725421845198471852347452680443109330473708297412643511119317519966717045640940245913164698329740094902060049104138691036356442600193579065145807684377760083283651419753680132185670412423642430890254429954250026504779893585451850447557422437747265095608114589811371499091377355239164091378006282365117047871248681233688723463067781427724284992392090362801482282937521777059274213281814459075253926428905667976813356075251121591215283319906402962804231218631647338122298760322381837353783557007079010938566562984682860904916348531249529966069777586907457804043213886796559470517855689743175093574530845274344483127094982539858789992746543877084803870485926494369001039521787481601741871240167905194771826329656818567109225434622722709763610806548949102793250754644947291526793148096639209587760943913248121483417418628184206938697864781971895870544669472163824895119631911738663380815819112728829371107180656180114489355975041927377312945695964975554559259785681603101527196049668948695938172803619766460988744245361362140292502339196023688895609230154461599713793018313485884447579937324803264456260167059867924994758737064626859287140188368107432327810183088392360153834428843314048928861310661256717063433345198925857215225941975214340973006092970621206608730545645211901266316187158159580967641926434329629125344627964502714315627312669815948717101526889047587661361474553324828358894108766474202442092900496058653682639254340163999639825020813030268352669954861268449263878558051379103901735964910713273427992804111616187397055110542781282123539701161380957582802370649054670221492312806205787086329978816349055424850096731617145855842085260394691979429760678618507087184568337247261636002601330081529168488230828600951314458924143195354456106663802817232796217716614622227991227869083699704396209992534913671043400047258491170638107456179225842152209888372532928623395827988795623561455463719690448049168577748724350172717839797300570562284102939447589994107352162686825617638613743933068823248229750053114647404481965722647526947829277680176214401236466315971224026392658975600781027741653131748549460350617487446164292226424994137746399318808717130739530092992733170137309240764492901736751941279621101295783199586695113238999857937468705453078492517396934772153316687143543086242605693711536934460094993927400442415895450197465535492912130818273128373290028056457062879390962909861444043207483010270493714282939967272876991389667332210324796706439848676030429526905584275626560230294209167113147862601825949561997418160383246734447345816562309154637981600883922588261929875036125403566181074126978395336663519507743072420605628919424786025442192864761962657975599190214842293307464449882789406528411168040217669617983350023000561018724067764343310938513920080797755394493337905754721352951034409037904388917601450085755380354999052693010611531392421781795164796811121827231860644024545138932215637677234829155422665558311966225693851738460794572086482113403822032812135821352477469947395528470448488584092864363023670228390107899353601378469409370285612876695867923297024760306302929594996205953277694466136331700457102957345681903990743942899045053075966047928351452110314448024017050585340229536959126987805784620009100351130442932548059198004754985358385516294681215862152822452184922264187747534980255820586791284042175102150992723252806073621969079478479648480832286870520717464077293559267810036900413526472602807271081813399091145335707436293428612254697109689074021979235035183811662406132122546734146842513749607825261041628942697958544369262290685722743313676066177623317807558790571279700548734581866519310072585638694523707459222533721687289197499485061700739982281520987931678986373928171099480474429586704048639071402178266293444283619708633565722007001958576549371216501521336770504117538085550815068607759301289512742528840760076582726763950781907645675050543051814443854690546236192960454449646456934716274969220161981567117500870088430244780263908371749834930709747754952496729894890053053436242286885937423764993549010335804835009609380811609959051439960270985905197367302208766704282220138861705153745378392630090317360095707626132302556338899466420842233765867267959836534864967573739369744375337370330798848377767176860515580633412269963073934222238447582920496202406984147922313013667529892513496034565356544635208124282449059090494099946189285144602270072736631630424082626157994511238480087676439881215566674221801056961873425045776074082962303168385940468957582146250113167538500789864018524554195190963643628389126545528391823114774271498060898410534326498627993233493427092897581770939344016964222421944109450854349869582898017961053773348098691161020211560064752997107990655868842700408850157301289237235026992117344923487753726232804192965116449091076865555260560788008574515404370032789370413300023934387376855020984579356210571615854033454656682957102050875565282724900255471387484465998411988831858713595850869705486189755170246433480853550380856828965643444486113408761867773619938830272445354793762239868058429247150098500080438434326806756477085961826465696999342924878199833066925168638457346644078015156870713326340196898138616738134127480176172984857151755246008641739248929484571516211381843447245431640462722274418292103473322399385808890903467462005624282658088890973461792676243701014930769767079023875140677799631952084085487206453923642690890281739926250028635202686926250738863979193595311403680577791839688690888515683226169759313664075224401086244935290198373433976421347328700663202088882045243919711034632867231151414431104512481069747537863347364455765089534984781315731277453157181275043258361769742823845552712492924245793650862609396820650862950351161898038050965226919246579336391980335956401278454468268427420880134873646203745061745448783299843820631702203023232815849210261539758154075337303184359525824469578160304339994759957587108054432508153051192030953143083128573081961143999984863976678626651310975972817205357256998848497295341032128453541670029827998947839764421742453292604925007091325978724531496446852190789298809329944157928918407732080260187457334281970311011209623694348222545190140817804841013691408590082801390164424332511674400890495889631372121552457740702540572066157609541568156006117049571636287307704704214679948529632082862959769633945268624670953428825737541415068339853303419565569520337341066170415096036488547365895763530269937554730187224813592527868721240816316627195354867803874243835080930181733082303476946975778232867529799616430510933899127197197591581953335401314923386227812536522306370285081587602910009059699486123060847941686957328893503319850987991836627398968970088351188078898297701318026798957684468785698852375638724734670772401528484838302318761030790073023379286840137419011491579520559552863888763206064528375308442051319322766475623622410078486052498222445962419037323557220415070642465913460480240161953638916023091589092000740129017151302526745274976426428195390749685832632139649403370945318112337724530993847618919047748475993610843245384054918363937929465660680421646649438218573052503431582315632819088999002685907463819375689179290323407254096654206131607846463684631459993762179897048500019859963495976048155424541524228924934299759241522430142124315126753906397285020911908246968036506065316771349233570181659025310498760871015000154782837244670652108844903237430521226577185110322505502703949778456393377222781083825952846684591516711880972419070104457935241441462644994399826723160894622136836624169806191075815307542021804402830811857037055881753551604116957866691036796494184998287913029844232529380807179769767310837933904966356458216995064731033787760481015491204100732603129292958759714265614593510644047799245730631905982694565211477333963506344360164417387049316717758040483404057845774503018464412104722006855303256023639190868737870534341815174555215158232567242520665802761821635498846976653044718114716520017522181996755521385880867139185798626201071827608113664962242860874670481048007948800799707696578867295244741310257345779526960496719734210655370033871217142393762547639008907713499427172409563382566193286282841497340337901045496572553106519695154946422752378832381353719163838648848344780340726769705192292588518264600293555157093934985156093225107395585338540665823132160180151751752297392454902694480491028918016748200402598379913746550528975354919305670646570522685108060187722276881134657539467106729372734705853299220427715637292129895365057315763703188063708884842857339803665464542883746180051234536321816233701351109077652678463784312496887314064918509661467527105447393826841934292291670282312344163044953617901760727698084056936055076566256289830110861583187464973798415480467966330383850385439922286721307538326117979725622536844189542537240508438741995486264360016201053131153733899534906307052647757831778686432632679791538828457728501960626845442553729170819260360172357410156091308192229846592645086457667982104668257562109426497637559262401877605263612640608697091641165156089833149801124149843408649856932282925129150590331213774737459674701894956627010066406967326296913131488431185076926272130333991693974355822441675201583313413194202096876273507670271462185735835188691277604221673905768396916550165576629275503809660276565339262727428713044907627665671735020339168797387298876705424658020834009183763532983102216352939197205872165930135927692399153419673649379180540058840865671146547660050043901563050436865439714308009773048032475002481940386539257466284686282478222620089866031222065693214887566230119990421016941430222603936292516005423344098569269513944598460977066044564813901274438586106105556790846865759412860934186536245652659646795997842747444554535245595494866682337975989813170210127764979464715465138550846232218861733179734160709264136852772438185924185780250691323345379368152256291522197848820006288620153768959354419080133240259857741504492390951169143738183323333831599307653108489025105209434574581847710615539061231784909671796349693877256230786940467104823665679690357055308447356586957186518825416359660092634437688693512103053148852241973061543457567034958601583257342380744294497648996292301237828831963678643467171552608617458183462939736656987667723671020955473244409732587341145678546707682962464099022767484737183084603405283451223265584742328258443717610651504462413298743379520753713454192194386330478121499602452230418355981301092587359094311023082017716069840517755757147834064359516720862954351764838774166894301088914139727642973507775740558921454988871345548931798431751141372383906805820387728592845542733321790252312217909339555046825134476687535374942080217123986068573220372327597062469151951515677540327411093409631051160179838789346181078077885218846069798675832194745132836242924176122968510112717084568767976047771455719378293427498090685806850248974169530452834264009128455592300109919341681534072992498260518898364181911529219901584955471299386383354214080794325619567419717180724851924061082215206619276539951348392243562312481246261118275584356010273208329678086505087419289719177923291342511294525248678284400597424006849917733740400699151844174222235843608780944191230390750231120577176081510737870049128934724331208416747627037409236341632259573275681440605358547409806171283781901884727750586333007987258981300571194303590241356608324755959171928740469857649144550674201104795066145950125404312768587284317923689442113785396759208462140254440535219103074847565483156925029140003954744503636561136128537142861673983254036740965337086258249788608263710027434659765144324126129986150501390653814647233404428630447680704033397936951957078066575496158393752156115038717671540494367063542400487875593977230307982193596169284635944596385175795231144480579101409282174500300024548759223344490715299741958188565624821922962049486122132724887362862369895601438512925774993085051331051978886754306030825309907507967449632041222691159557229035238685199277564648163821530152890676066536689825254950723537612455108014829780388862954054160354823896321038959007378484923959144868540454808915184620675949971323316189477037962301029150629650560148492454019383752520803817861706527817978798610630384340768959927578948001605163236238313913288149080314212346910498153491944548964610375046224878609477666603272231665401054451537377794967918786309010917953634731104790661314486414715288332079446727444957527434591812800798674335469818067198630386237537187838060942151522967529193898233526749187667433104975367555656587709008989662825937545370650294030082483383949126471920307671781873459735470649523357894340887479425797917563540857481132466370385747880121839568872287158782157877278008395710178515342427646786894039443724993458199499312756512978333903715762105527691068562549700111758136051692929909560703821678337098701947642673344098450292205864404408481881380578010732716126470096984941555401517450855304524421373411207276747824200745014249233288001670828690184594740769882651141738963821027813739752939553604883221968891990294579320285131864744851151781770346398404606761617419200431166167537200448823810168303893595176658261345163649554559605547875114102461485496424790011537765291204281081200778145731962104412558711849416868485360419807054114792002854607878611188523052144533130794991585301665797440967916178099833031350752952614443022185442577543852628260439651548769474917452522878906396018830673045129372731906231133277256755217361436947834044504599871107802644362425597458933127476976627395987548397583669904915945502683248986378348802934795591984976217040156837881860411490422910694384064541750235527022769865908278292780689062579222735551507044311006313694930744260928209346109757279510949745874262517230849193105471281224064642667628766189563989681708882476406827607894234359241657862974886925819626038203776500222628773159075131028487354072079617643299250964018051072821312592849327674957318724841052259069554227642733188273010918411904745066416360615128423730369577443499434106375374036637988782984427249367162218963325945799527842876622214078856987523080204461654120251229450210298503077114423480740995798606169982434631857110307017103286678345181744518443405464646233185304555913306780165626405925383939616746544199225731758399913002748906685468416037199136362087262955490981222682105605766199336311014541096380138489056973321226976793088662723425996558056806251231020084482007216696857556980037655165853273534021942389604280850852073593648776108268391960501556392537388743311227886392698213674105213143196319815678887094982570747675019260629141409457156885283394155380346554178837623638039307398979413128869210787465839033946365536314321861202968099746974703960598296963621873105474401606673536741409341948031483572333342516695984687778854493343442016986948753828548308241400843064507631793139914858489973810961879129774329915887145786651613374818970455236735922586168192418112936065946357012049896536898053806074968315646661350074707532517127857211783223126561879620991722466671742648547968324070837468259150727561600235562899452882691378322678467168610974235781029099069997912078197963399187624853551945680625978751417027247203337336086480605698124761069231195612062493207557492806895793230220120213739933545049253962531862198686123235848699776709301732756809648480245497180950910241129630083323432372502801434785481846683772741355937393832086214013587247139275074263595148948046242255772041951244668108950198127844243221716696788734847517464103853827545973344611395502680890261136331131580344279728229027632937274696259582610570029796414881221530258165568952673453693184046374629864348762670187030492733568538152300996948564750334032392394516918180283812432995096819759432787771285355939855769713287212155977351167310512088743581958554433970674604496819819163223063909731187649446025209639159994440529480803654099275680663535592371217474279120688523689992963065615173869040787318695850042710842288850697310032404803104375032200568243667232016240861609908388837844734190264361973045349228737926885139916925702947141872871938817212134262002748104004330307823934652013737281336181683145341988182506672612427002012547014122488343654222963390434310894940294075802094246787340041977742625136358099853825212108107194179513089603339870482587549587036031056327214134226958209014450520706183387298527838566668178456028628809179218419828306621613503338338636201664822865359389714396074689679280350222784190818977634349414704916537452792708132231278132602568348562693692832968983307637184531032903648532384781862365178267959002059672403739494876425696220604672320500260282067752981159122031541231948210127003622140975319608464702924519614820057678270908530590301429123652244056164040234302658700025935420200671069031116485382824048894317251298754836252229779999259807629489442149936809026756419446570866647085135590906706180061693419066855260976792399252837734690489253634268288808397056892799849191658498274291354274452231303244013199081895475217969549198900279620005733299721830694092438658524558635760061970746682821073258809460999813226604628092304929491756827493301789260514978667224901026233407105006020448629639054686722691880502848951684901098683639308192332699630387660027448080902673669431231793361374906725711409874958758115658448586831744994907309083720863811041806514412969090785903734033868402544903954429341685465447008024909516305026677541818655635108992340135420903398825876388525224472285555796957263258032725900299004436766992516218313255499942331434848207376509681053599285099452261640213274505789608634352144711902510415343134253985978650234294722985827284053505804861588743451052117612346777335503238577252736788534252414576947683458865639321391568910254092016076255220866368095937843446866807792575627707916606020407278408623659832107254655449847277209875696396933838111204967565845313666013201534888347505856574632080184436586918033331286549961267066521406439616441585124119224209265445654296025974052625000775067814276151113224905529698629165800604355423662666929196432035630360176788503288382948973396447937735399396655961321586030228560248271880230118813671069585498348869483959750572546777386993187379997818540217146052990135784306870197171199498905823909476051115744917620717263170575708858895646353957834929237057516367978802538421960622405577830910359152627024424220262328125880902448624333588134908033557914263399491292770333456723838532502026896093045605689796923209455021001235454178697104939317759159357325351891562182710319737116092448510052018149855018585511096555631409387742923859549193739399387310285182090339392738846849003029078729179621538647310478239335693835701701441322151844984659886072762659108976807266216516894647146334927472383557589509069747173917941343810408675620493711031109597680061031443712463464451696633019291687407207781178781802574917796908324625041131272457584523790049062589488905908768710507611971289299537222309702614458990757231266057915970264698177717373081088048922522713913297333586918843521502155011200126511125455017849912326541753868770020916644592056734902951476923336968082673762572855447735861510774986180661106951606112504966004004680864012338283333833423755384498522900300827193107042025239445698682001116070957046394365961372510507951848881500457192224883010479091693784389892839110641775474323189919180994195120293224310798718866947998956982977875043857473010377026603349785909535191384867447901579457740391938351100236146482177909852135945619938424440982180181197389112043435503876046533681069109651870963617515442244943805452238314283514586462726509047802042169307105755260724539523866041923054635706481125341037283255216692479631587399953788400553613029894468217147547661558964456330904991872706053237313336724866733654671680985650372620341384818945814010022021378734548110766607866258659346571855814378274471440899678901565805401158796039660021917238651442670837367095398674118081656528913381214334627826219923026706468357402951510359728237810978239640431228288927708580540720921818404672658052930583353760409390899124136378994900266782366643691704321365480645048883864671644382388701950106525761802570639201891836466925737484018993435379669454451571361056533107764564080071667824766610148889327808495889897258660284119450985268678057646945297385027363258011607367625023704014317812233693561193805391086107012217564678076013050145110893923664605986322021334316579736055050558961518359967401420902035366975850779106187523050415223496732565535755307091725912264513782286686726389456163848773156423639193683785515054821574699409766751367221394697541566793511192635743425047073474340455817548882418789402218682029946575871165893561510101306153569767178126170020612856550251799205283433301050196318469557365771324711175882459099720981891678478201913836211928009626757845768517823669213842488087829710761951234649539619825684091342127827590513492093515532440267264873882718787054793124993294951459230413723450594983984690439601195341293637170289166617171105472472095261914795784958691101780537988549189411441406190565029103780141164302234393785360992391805673101704005478466038739686473655801942063148332131776871979863976948747433286086143745908080858278802953088711001843768460304056911624070273874741730308925979072624373847662847099247749715000993439549050927926870250054384796071896256480657373451160489364700115865460908823692191502804184933999458964563500912921012570950596316184432731777811899588942951817550353764873984864524318343326791189345210189205256707622135857732829507353626893185900954694790665184920224269438175020350337538125062028387611564043904993032965167261051661120704047645069640352231559974881221856633588219844406930102133234074348658764105464013243478999642682060348682714661743815883266834559211685037515937129524758224338484091174004930870929595908215203059508165602968925042436899772498910234655415025452390518814668818524068745335925551299944317072197245622616990890465916291516782514006915510381139882190829455110370617680434656651560848870493965010600860976423587945293598862890792858199184523991454288099484786367755587413760828433735749204642227712628385286418785766526835720286460485495816817209753648477960370985923429061564862179809639846977723475700494617998939303003704757814315833141987070402247635639195416615077585687277246828924929923415088071051299404739165184019141785462505588432610987755059427699629224797671207055352720731832427398290100648741387311449259232702301727979703733224453325121194315496369046941635687118950112069962583920013025063502977190383040799078662544501303601362047954922051529357967221004033008649104542292925946175013046698871731722582748351273076393313264703459612582271619046047161556020823299476517033637905796487653628412778929797897854866326262674085305036168683307265109819799100695476003640924022097015923354827214281852559124944875844496059292185553304052722481822280310906282041170087186033270531817944460980761966894576746676322991242451538432849037337356347945629105976899342594927023252063285031330677637031393593676514405436414003054147950697705362333204032548842366431337471522877545426281086441925599644156298580613700595108978796830751176334031810573155047154211928707021149351101180947593464055317973878794435171995212787953814861549291690758531493474742115994662029400895057786191851679339053111926815802047918915980793092688009619977351644206602306201653799771630362648347068809834321172399312621039056753872550436080972216365875296731728632273353835992359167356400919920774848505319460936921796171548064908579034784806365841520105903936838157009070906343812690007761699277921250919903021559639015968469916520488985710362344477748402838117612587107102443483656127806942349918563659396197032450991666106889920642307690531276376458529250648934168872139901390191275560682768239467547351266926121860039508738918566189345738629210811746160068687985637316130888688316448565448679829253533865901248093151241299830429649526486839449726000138549206439613571696756037270901911772163704156671221559074994253292974415641879479696365490414326724811892125007799263837140312548865588717944347520070087446624575741863711288824294106501778369786867040416238061594811778720948831594750384928985644416269287158978741361778175283570939251304384631649605127584359833730654433617635965907647569107368283033094066477626134727340135455560422530137264538564597433018857200753287956759940662418327059195390748179754126347594608157717245946842792160846417731261930656965298941800419211724666530919078353374426738737090532386036912593509739205157172054223739686212637033265232514307595224559237903291080298149808728683051829022505164412392670266968805551232944313118825092372272022732807880708839354717015114836589835303828581540176891719080967679988241664150134287959844833463145692196647914364622390307708186684087613247172456797400009830959304024101812180664183907120342717043869393709597345101560322211284840369337356620625463268795005106418839460749289821222278681504747863696298983226404120482962351345587195460993176634738038788258332996229038747584728300267379401203039873424825674142469557760943886640093380485125754409742092341519821636037641089104376699643901896250183086469924564001662508674889244137369921126494555407760784705689361105797575902292360756876190961045450754926899802023515880498442306385116401600988791460441139406452342009396947208478292502601497457468256567989827735577668675891143430461543389350395198558795427879317471921710232693664796478240459179668109672935547730903498703132553889318896731700272975521601241898660795867214301369859848251192229438575091179763978109014455610609158020747914131401900240227301205546381262966121658340629165678136680475811852643311798346742751389875113696388092302201246020199851223576914987640556098226799366911563108600060604177248873638566479368396186438411989699277988652875402513464379694349833779936965762273400054850728434220003050829163141093353910163970425111769654888914437201027738381088313359835136430627505369249326035828408113816973368120598589341975814947635527879050811022199797151934982590626709010567238717563874696640262651285773818021991445482006101303085986805405879047218294874873800452450874358994593048803116509277820546582708840721583378841940216315314725963655113220283910824698293216494703488844550971127895708305246656468296744409736463382360503952033665688437306391865698955931719425587656347744025493287947969265040316707797728492365143161825516781183538032907263009097211348772770065925701204112036183788139129335497663813184053912075533250047839853634324719513364844980807924333468374657484285087741666041940930111645856829003756021141077542312506105323185521575418707651478945089002761233674953259896684305633783253557699808705480667360386625144635266508387598471080326520462834954791661726785702289659614415782913114031441542341945674239731504933135568872565900097849404002152977526859587849653141963706805499359503442409483086699028914478524925061824896230121883878101351491403514829529486919387967326411337469609082076052199824775886756616078915399363735737107615867299758782419835136744757440355246465116182920230723934185128052534616169708236730917839160568661665010854792164344770135103857929481605156399924008187527687556723090981672177744287090250646372354717084718295266002883418242050564765599763533741498132556559224339659008444646515560402724484626490427103604727032116025189830252471183643366907943287349539335495998705648958703513334865450058592848431837447253802707496509639347079150020152268478878415295802367768079472444802062919780622524795055062511928027562880771429593085107139684036182898878534536715817530203041285017254271423774988310720021517043718536875550105437849179702910048176940444897166278537970806870198310214404250932830687403098010641200011513769211197613559211943166449522204273299122468474609359540202039774695133221090849160501969563126446930683933160026522039571995554178347608511031831648233112031196783617099896856450912821145848328156645167987656461751049048556701056739392081158932524231521638067251740751951644690494443064828610051170718449874007019015844069313616704203051607122624553674296529599241677853645309066467056664898367220727134479890103979458952159971986111190679716716362058070827194489030332550070063467042469033167521038097829625421736114056606481315872626315688964671690738296497755063108769585626275746696473184658339061905235905993877284481800402059067509711323810938991125103067832728568759680841990050468302687296796187918159919539768523925558563371102850595849600422481770478216740366761827668382811372417056061744951814603454628915501915664355534705085056739417033105607300864147701935419767781264698546927605974630517263481004576951219034153601836328518682541033168709897219636614652819711873021718907661358167825949313473112481999840376328358003758609170196426384818232306980593541984127162666928240081788848917905493613731368780731736115354782849564721883292321884284494014602275590526843930614462753132982952115935224971502898668581336464263934816270166514017591420244842593762751406228811892520125395835112151266522914301650275100251257753946661452856970358821623545947998652869890481762497941895411075146738785642309105690645341640045309648771395251614319078776201081296424818665253355045862186539742192329237398133830788189007355239215183934404779178090974174045534446600846434277265404704459327227112925167473201736412813738294680024303185081605418209012257127120723747274852372283229143739073298205401262690863401065901685298157949849464978263854137480460961251726653473369654341390834634587934493078838359999556854388553684650245990399505786504045408473867129032559059055939256198621141854682898782690465219058540719140138625136399444307162094452183705074723165774862859042646610229989731004502589821415376204555614512384329183659735828566467969580416206513618983261317103916429873299000371922283816222535805115809123605334021428249042036718451720799626131961131406190603740165239222021212848830515645594469008606330709495636407144987194472141442203299199731740471397734826989707303463677950118492012349848148586560390733645058383606737150550185216829585330869163991889611073110781899431061014123654601015981638374139632124982800026391373184369341904982208481399867909906421782484411656861325025224154477267845941423454454934277550785413309850254116871488714948565793144527800261432731812312713895970218485037299999436967987906524003308228868922253471343875213993824256942080287120112628787572367799692806013889144473367929822966365816628550815160412934387984125273319278189074626318274154888341688250537766470100570808715792854893258900631642871562259840678495277246510652058849055143500236184024153830397665300244000435406197108009276644945888592037245415238536424174911497380174160655820570328145959101596775104115796249274101702500776840187248149415857898708870520026845201705122454359849904064963828634315695354175908406067381777129773760776774730525265744337513948212692103924883252165228392089326420371736810177721604588210224905339341534997527190710907648796826636929766806491920498908716512546167082562637850873544719352386735819107903348441593796341271427216606462092059703838178543622230071833748599856285706938843755891361297379075006920280409528600392992678729813792479975538457785638306745305144489096016633625752721218564335774983096738011502213468079636938296163599118680098967154128935239286772832122466566695496929611373047327022635953113536146430446363450181776917625101049740687267865478428551506227592567031140305165972664845611724120436282796791535722100768837054037110317844333033313538233884652880406805921750371554933825792875769324540568709904356963330847460220995078719745469808174074668732245724296936482713534444815634330379204753891466187057807229979570631978591056732770328466405756000731226031359037896253977618452388502553244836795364272350160721332224194278802875841722793690773547450845515492569759701561933596296925629153805912017847132200873257528827670660683454329422917359626317337322399650396006767570573215375807036769257536061416794065757682411908932765232386163469241119276737245597587388497315157372478330583085054207125165191905519643869284529795840066760623166848532624513838935229178212043791524093368258613598095762374553105297012859153888684651092267032789564493752838069248389848666779317107411872521754808926634823312499114644508367986422243584197318788729801272965244732004477397977574054610671752805415619282408822600717017181199092870222680869891807323630095232521594110818285451124412576565589807724031601632893790133117815933361814905255233557307738864807248892508530311132459714347544063731769175491901369944731745422879249664132797274957144988908771529506726475957523882301720231896563964572876506062634562439493510293903763162978708074471186558487341535266718793140995052781929898764660660365631771336192392018252779777543028120130351193917177797048430254226224279124076183293198819327860781029122144051233930531291441657829459907211935596358988969690944683777972469535272858211377103970328016950634815068159025110388693405447571081726610117182137183648119019756242121841324600741263932716435111763795443090726131520562222275377687702687057909383401175820043996914104696798985444340296052652181879810409759205447051715841534721877505403797430286899122987004084240670558830971755604172909463765313086206887396527767538304561086388272400213045969190435237892418604361515475166167677341611113096238874743487348063790787865428356770990035243394073688557456163778568118630517994513465729750832520039850215922326962691978779359522547084568576986091661300890650999925098847425274725884627523309827894297997347529760511539465135943197598423694329587552651600766041350406053967049847638797686109916921968747163256982359278818287608660618038050960728832029531756398095031055568371366658265593409105376105557250358077384991528230169207458105654773252483732853170159249737063470276868448142607904877170955457632941219080869768134718665769175218536769858271094834185967234759563094810283970696734993463189285757965259301457930710307599048519680412452093232932548971096599744712062074414474873999431135280063281886770496394372174009705847628461754619720651240256194519015263234257622033295104415422610492731075664844034990376957605830163150017780374486810459200135510760113574428134601152475080686115409856369739841993582578203396460904371355912063802840908512606440847197847969491454598048770546418914371201337194655399476147351771922601719384385907055483876451269970232958503147556613713084844756861348739503163616961083502116713235676097570141618249199297192440032349759187178572342800299322338239590432827585921856860190264020019715262125486497531682754151648037421301933364609272615561031472812627640126378935220062897339454583397405174221328751988102287194518998966470904239315840976024725909139421649777271778563038080231687708247404733137671523090970015931577338599189030146997211751153232941362926227186672564534789252734955205623562160413465861366927573750556473916179906165149400148218874201283692510063207456223087802275860056562112308352717853019210102298879368987534005879368999024087512497896102104912686133387939109709810199552921991706033007836276611532989879178550280130875337271380159911953373809285236848008577895595607983184469900725290474725590545588012628479002418773005830588963199656214200243552911019314866065027723084796474993383143622610598818895619999549906642748282749398604322922180901037364865003675142788341884971962378731793798470584906507855749717968697059192951144482567379379336082263351005333479274494366592781918807224592132847219230300247274800271456145380370897089848410115176191568230457042374533159318633348030994648630981374251824375666477670772348686010412480574672359761872596509648372797488493947579779575866562927143958121501905465032067397795159591253035116507002932577566432036037088409182966829028095448697386174470332501360020311900905248547556173922202687866722832180909554427458027758937137472012451997156073884867436539666717738526260177470493560833787826193730422835427153496023615051067492806312313072916832140576880577323986426328733587500659964586533160191014110835966060666910356383616414205819883552559082070043712403434769925274487931344220386290462061641005159148102225248799190145487147966089192285438526987207406235073053752243517302263610157270570882768783543950703569259773380070864059910196485776273068978060058606305053995778587245957678657364552371262990503129217487935556395227017348740012870810416617180784592569012259892916640768671177014034771708009685166161591286537757123232630650936456846160675328743188858009774926663155324750837346225950230056224189962457355694757295634988693611131808954667155406847267576620996962296554927966906018000448259330547887828188706648104215544813002399649352131764549184384645885221048121974725280711608651311089256938263807630273019985427936275140661582403500587937457936055104519353888458652981002011113785920949343750044213018743521586310870487928245691967614331272972629905118164672337674708033771943257839757674241978065703846698256391422287870300829285506254855704514558533977429528144318564163885556014725337488446936572297547943706915512847912833059187301330045150571314899222668833434067958837197982555510467066380281521482875114455302111100275989645564661987728931738475455889500730356686596724423546072103875739472768678981605275362659514560403078844792125167227523035418183040925231846608706526202506088734071390105199403137260671377251513514672773055764149991941408669274152685282160960785417800364462972365795413436575324215542412500107777881991436838123385937265342203720823125314566833308566247827058918058114839718584739012251508899796073920226329758257993668111537413238244865278212312365238058579119028810249846266361288368567093189998289693736626910306712912225809434279410012028130621499460349578579906813084007178371213858477765561005149082865435531652032200413414133391185473380414383616477211394686987901929614424680996438799741476650118618791041670010841856676314282335454893027989560442036714544469531966255824200510410845138894597631645610145991938845082805493781981738923650172304691123108220002634260707007638768080408771272095125326434465895769204879742906126168578062173055548432652629633816843101739566752290357514292915002404162180131002334423509112261194847518676480542367768416087882838044818305293858219823640137531559156002590868473983430471834585070576474220049677314323727719385113671622644728315452631949224670804560574354408459848886438801637058673919266502134833019688348534387569566411166090334549310387279485195341143499102195072596992233553134001757814755277140304728778960653533523064379148885354685910690232422257635900173655027398860717009216427191777165479306063639205187838015064777471595148063473047899103757173606345294539785759987761931618633430656371343754702521545058517446662991442796397610862218935334723213335824890913697037753678117937401173719178687655143986696913249462452428499335246684172177085624469585230436570822640889669316531121030047396961577412871101216400809556803647532885477115568533290372553685007824132279071221560926439127232439524127810991278397984631984731509075191486284503556242178805068975623076620254173863966403401458484691821101858318670762506803162872607399484356194512673528295671659953882176565995833862654102545005425948605505277669385690736978304493019073180766881427669150768759911432907697404151584362004052044759948272808987653317941527008392628801582259263108479918252766706592841411085443341049374379038158870988550230824302252632036987629795453040702978816198445459840169784662491042797651621668243169103654136278572167405530095775771714302837741878163767023787608387669590287649838006372182191042827783695422192588738248539426649545531509563138850867668561869007007646049871781374911539311121961150504036938430697864301683972314375334156081230269355506138586765975432699812408763240759732378016780846813500511167913057041683432173669392989858838216224860811109904499594671304551050447183096445146047667679685295084211006489546514847516054647554922980265497293226164796113950997538835855185898009947346253501002982034538073266285231692851282315536441132056681723728374814960329836402711157988967832631528611457225367741412609103551799631765431034347834513567075731186086173329500446057181984128973644838437224953415805657636351853692236645158534877309025906692017073098842306686277153862786995560303250784307381830365919145008153257466065984902896239889830877903863753084403289345249736283496587671465181282413100991448239908605861635445575920537429018789766248862591688998445068896129830580839715671700035034842699556351699824735112147207579503935156289613037343872647425327066072150800908259995267751848036979174244124311153191279866454072993040595826883016547832776330245064322141638427081043260360888913676840182092865919348148761018298787899723748941615875826071071741678164690877048072711488410938667117472342402793829712990757611896463601441359497321413161864903438950782636135300936465687059079277269804360773051635330278650287233692384849258767548542390751930122007018748052447851095630791337453086348989500425881965552857775240747107771371013704613585373766005270208036528435679723313949434506231265934878810652195973260910264317375567445523523868684355124482958904827662528167745915397335772205469006705620901827477412450878302766251579537195200645757346037509919474567450457071131602328968682792387798492500537399102741538096247369483176059487137818190080931001338860456655901720287899042233977566243793109551641113801650610624712354768047614878865097506609634659772289935232423727476980500417365211039741782659191406412376053032718606689726279376622950727431181763118672330860279957632131208963875883153894193352062469008815376802228467113537022499024296954470397258869451730715713905935740289263301511117228009887531721314207938646238750554815381626710766734889955814165553321731861432137791447106289717804396776186747639972956978796568210871105381202499151598496676856053530996369182097892548939629482280152936302546160171932725555328919033734482576881571835081024222138486376226604177737867268482133425100602214255868489246212191679069183132790390954767899612590262009879022471874301351368322519602282216014596110168283858431585856122847205125120900597617853253007895219694143845773698326192228782860641167562543301065830771807494278355912734725673528010824805403053307942035657819064349250970461594638951096998957380014699897134010087003747933868243924463323513972530645750739910449421712484113175263143556399329391289137658892442262383343886146422800945430515709421708396089316890385537576219269025272793472328510933052649493597689066542136403529380399647061125275790851257198937276068857900750025225356290727483064545620973853992600918954393273022984197044405835633738808549274397976002329344912595871924385576558947595100353027021231623287567591707210514502495177974564668204997577099509075785095373800781097402763807772783113824266407514596136112029212400918687072932464994340773150869209680503873140090895750026648200498442469533569385664667758866699369924320391963291638365862825097587718723921415364210808433048095133231071740262248561446502715994012877091836896530135041581516443833863010459569790505557971132687547229710479721285732566885607423965047478658185064846289640179034548178158224802188392128326548327648271994078797060375553333983612716903211435456074398295212588740625430170808368371514316305265459126915365396280658130681492731116832809557927806002497593576173734842078537661762375484899677381713979387606409312254985296393585904832542270875451865027201254318119818989997231611877385370948845934912955021701883335206136083933455400599194026480750447906026856402979721151662935887320963636022284040972211689473061099896540190994057659007138270586086850557346048827458929477859047637054723010397867739197779737351250275623829053480328695919425789464871413480808758812458204964111040942401695106990017895156667136652988293210291917058178441095237097122401403829449677720866869597120773408812307420677884333676268826687751021489799825936444542133036770347463685369210823411019946620334623944578739466099491047103650957928129152316497056814949729073940966524307650959345476888852280160048115965656035249304683537575485583348935737564356783115924071512948768504271673074295945659381554797256423736861571238069682584461459499831458592618295930587179037732122617046909633545219604965876764753529088886822008058355287640963287212673497519666686282742161680402782204306067238136215644834246720985909778637264075582665414322866331336712197232255126317738998172506681489096012533781337261493023294327367525232054809749604414662698934941284009265321085518394716505684877469144958330827445083700675781437477035572005065178047462901229397910504516496431593589777705116559222678189739130202505233297076884753519374976898888401630531892457464709501860806145741772064262506628756181921741475146691318985181106177427899404038182172389833167347838668488890404222598995361434270695504604236996777182516005225324922211720950082203874565637257010497485880374888780936206075844073152150851103866758639231395676433368563135273779070067736534234322784248579917278438831023593078698619558066477291849545980538331633681260446544787015170860900875660064136943524623792075315040581953108625276458295259900600612283383523277193832401929194289412662865251359362057628381287546704241740447347203779344992261560704944042359085071988093967743806277181277908161252315784347758296648446369301040479919502821175154216588058212923496334665230245207638189308243599610818236514854558380629517971901444891433446835732197681030100889665188735253277002854108775338577740521189093005324837320532769444162417113845551229042340915510341723149567739903555313473275957152537470591315539469360135426324676421723121690995049275186841655161471503608961233896303442216295606386010788864078754867345219071525084372317306999124944945785349254169832202493391029060550177188848077764815240565697648744144686214719149304838934875509788227055027066880855294104113116113894109278537533358070882087735152880549961114861600485362662985504202095599434073192369085052544757471505524037229709768330877496149124396217965800218579280492561234112011652924138895966068979762623546765981200755453286954763245894901395027129403346088905817139332889552737155061846218058272910545240705243561015489946793477101813740381106243711698516752465825353310335018438252484489889029232251297559119960183517933411210377563949191199012660875723797884019876227715442318583207407671432917643596320432054682706326216329548726572312483958785606236456194760455632598959762577612389490848905208967003486292916769938030467173266643782421176908616886132397692999875985808373117407421305980719121155131802643241385727493584378401136278328409420372771540489461220892383503091146513845125105540184437826610142269311133013343805842336143533427005008840760523748557721451902418823845394223068042523398219251256926100128515776404299927665991095591869391231427075703598749667611556949697786886186611093723392012955139655228935760850078916360331945377298717114966810135017520609469634115494883436584794258708752938903897845824024431034286092609423189544863827916227390778330997592598264762811262286196082004500636752849209015462361722648934676214303295961045037332694403508348528993522609774736627502527509009799699258698596734502304763034991382977170805594313548681024397428240518725695497052732463448358145367245278004956188436621646404446073000917742035247706610973109637380006773096405891588348906118587039019034160651059318572545204317260057242059861657279790188242980630587937492957116161190191987838222681911345099407844689257578034891205800715023589312039929467866440801087138516383483309875964553012372168601406025541167456918884807832447184736996422138444725452147021437729855696178301227510065354189625779237300763074693470514796814425595493027509403694893328718108911470518486707615116633298229324143175729592280838534386853114573489931389129946741346985640012547483711922968744668547025181449244166689481954692642359130342714182489012929048369685995781858115438379782120429736765992777612394942517025849192671894982417980712065009511046043840865491856289523063716454954196698431108410002477864940697315793932237562214739945816349916627117803994815272557119924013310253699954426835833627469056142718456251217418247717277754396355261565742497016263449552457695418594151869373730822572934343799062295261707202665490661983194803537769517249222812901520179535440438774190352784166639760769307932468197938267354333324233199221491725906397368123030939999914313851126314644885545001787177225151446967538041300509395504369533800681103406111503466015214581880566798713880550184424515872627483111622580667420517263210560513600920151205722376096554440869430101003184738511309319030840127219305895556223405930040492504486109730499184289227457985818862100856370050184845468083973892420518333300239426526613872878261391694585303698094974158929039736561168220149020201488770329594123029005859921976684946229193998235417065690382942018330416576311988842130154013615505211121513300107590671806468673976159991858761064412177380440351781408602926775870302245728380941902988066127841291406832708778832965080888976891089239290857521665076320780226545968249087813865921816618227627836418142139313681551621949247960563417715276275522947289281863472919261306203971949526254562642732882314775796755849949719240940654156432048503525919163250226262164824968393542900348343058761228075549685060860626517223576259683977738950864994316379435155312251727715745507818714097313491429658468625431096321792824392823179442511368390953634055193965482351653041920478736417586720634071654888262813218771619626942235921067988140116293563345779291481987369411614628238844986932357850579381789581406921451956424879909950263910184138740073577683900310350036272387889462836266699113253589801153914295079227026957749480199010378222673352391102394443269545693653297317359399764233796269652949080658638478951478350005437156991660599915433060290051403464233111726203827159629422191472141402858552008357694401308034360143119740685348067183549607310171534930842876818436170026534902135542338855239822966782446994826631902904655475440063581823446215240443364854044261888228909869823178655367738771320733648128624625531497961599746824181131765044745058829816967383978529575952969660981866301370539903393899956360107016011334660043734976919513262044465237996192752782403159223018304779468323151564842925742587900493535170260857104340270656356610363778191670875987912036107986325941221393785671749557234594794645842181660886089014909285917900202374315519028701486030077462223228426783941932905626141560461943561687825459258270337430100439494076743129643451042925006321287416301182184599437520671776286903573808087054291275938584574549360442684033816192029083959400903825901088099148873261764393273513055733755438621518966008332130575065065527724444305966126141107473811879096165479313492394873811644605958159230365564880657151559226458465081109338333374990359016094748100065053030487742161700307904035912741981524311925619847653026666267495821599477619495422743141901237252772366365426741962599668255282062736839678328646730548107961409408975922127544376925249447174317039938228064609252907884508965351530577762882930023686305325591351967204898997643552866341493788332930926799326742068083789637137063454968078454914651736968697309329423775616612831122247804322223964136962445330911615975047223023257872049091861743137652977377809399632731390420094352586313737959276411221539981845311570106908041254537952029614039337877456568756003764943252159411969064470312264508431278902825209126117740973191379256766982627416066575942224523700525566122586858622671214482844711307620981266486364860700524275537218625614407981174706464962075689301722353957685553357274339935689627730117561717136898025349982154094146072635272741521299286073026956315252315158405043739758687566564493541167917485688079027690261379162581656755821430715331824814288443171814118306738307036056434141985679466975264637693823189941061525045519400055672814413354446756315954178233093962679599319494672638945452572539992360481451174010601237893146283684446725416709925235246221263181089017258300525503468930600425553463405746131408687665473172667757349144857264911252056556091787287118874361435994907465407582088674755907936449065387817540957705796110795969778483237462701102500964952073372550266111216156279361059439024492706910920170224966283459350970781686748365102332958598395276673974245300443999506779250307322485196688974411164196218997590738227168409464322112460506665366576439210561400426011887815875092903068712399607892431252523501456087530050153074264409431718274707592776360027885048020502146868789658814127308119661198702267415801070067469779712598840634158088942206552394554558146069384572289173801534712644772553056017781139072869696564029082789039426126530565954812519802950502067813403057559107782001721107197964467835548997753667548140088514422365640800760680203223586811452087693109589837215748224804464380399929399929025575789843439342437240760454575425332932758089722726194495228832324769820774285334375490116236772367372755544264712243010983894278503363513105840245566902632120355367373106155297547903440556509161740361618635931133347690288228107872010560626855504129127122410543383257883257634774914323893514879870970541835016559490476122185781063509044528053014557301438749648547844984791817480162108138017241741018090041985000713808455528524495076321079012885753680597645685352153032404690016155304592119543538745974373644057767721816724453948117365866247172035584189374695805775711830164946679257769119432788268860086529071308996827130264879466681831307876252495527570232933931850497747325650753874392771555053049289320493124129413374637126996098705720601866449870025332581824444871569563880782834473727627460271658196992820631145679404542722106187501707111105569541662343827078136625343178538755585701620918255233702449800320773238654949871018736873578632228966938721456780831151667332182741316806209269648292971997936950151979968341967906859946219534012763516961032583194290082300932624576025942318174403426799152234789228407586658729219009034410976368875879289382203274923009239363034279920099173016198160743667152077134444927687981474936718313235132825977630762188384364169455449101342120770345335068584145261933711747350219584923349690813937191281831602056763239031723996073356338594541805468022617328734320567472108365086126308651412846164472832279392412981303983166343175775040529671010283022335529393018216282860508256474957264067410797857675974593697746091580867947206495411446685069359220285827567369015589125242357063672101380208080274934795405951836158010931275621897161353688625101575996415583337973563355699294711971776184581865806131598304254468878707615553882168939070709425150433410064333788635584889497249192076563392170501376506950804326025740726984190404093304164194249743326701460391189988769653261034717203923228945868235250902779318435882303859212790715674642298979067518004143666710521598812150289384678646374265786743083024922528724102884909772187017897860304913104843301509659737367439169279917116438488763977537358841943065837602672089498058651756604412873940579229215681968052167604330185568443572104553134369487587828707168329092717887900679984145770521155501922357918785019253450896871016795123438730491730544355573604398491152027078585319176920754920979995158704638880754478090705265601851844147381275814009537656450786736077621984377241466802117217346413611804300474733341486481992652782417075368599210902428418705436229887464261370829811017950944017759592689107535827934032930080420159515871857967696994167518853481361826577429812060180284520212896753172866828484694153297112423117026526093746236686648012490766600851112775733691703726191238457313376367541558652886085109433039227767587489865228032968790015333351229866413399603753614981795389802988895897946475137507103266695778803419115476936178269504381722244154074801519615525346891909337047511129022427235020696867381577167938515463345716416262053659564344538560418793217561843355208496255815193334580131700752794316487785889209621413398986894208183945976582415307742718225623909880449137157610480509040231062967163422930999425801313158888379545171698574678244405223639478799883398642647738418305860714322359845432288993421772588700826406678187110850104063197761161264703846542737674842553554994839533563868772539778057080866915521228240373638193835195041159954822964073453414455329654582588769216707412017471612671900378631055901106259612930238548940718473862099024406475505061474871842999436633652672183634267703993051216759586029435548007471629829873623378561551131386802498560762043606168698284063586687405686006553485236733642623378324645586221737118142719245963838891259533388257608505076607751278642551704955539421131479442002982305752411190339103048296030956525028331610379560502369568506907106177042668785172681428675529703450805960809412282480529329770480864867882124506446463502962636220334795943311104540343967430499705857445344269786418359603492710298028677367953128161654485959853348677763216210390597950483263371151229429372988344104650914523444039765078617443210815323194168920936662798946572894753511518054149096076857876996153539001222149113097383077559981145060741178805021339089896129925402485398260320095681419276674208225682929082859760825491514264136583138598738732576407257377182798125244485431055765594497329368460953885401982779271503823595002597019920562563381392994325363338030141290399590090137934479626767815942862491798877206482411043120112106821049696168554246489129377921446829299754291390197672960126106525241736714388406824471101144600065700788794535799294139625022869700295621792180611763779001267321385358395806887608594515859506148850157845250047951742968874325321158698051587788697125923692693913772795844641357840264057030199939955112989316744890192882298910854324895854756744107047915349099854301195908820928201824778767994237626841302815614523138850035156690073575953937792380378098211608256061835169404356682580535065457770550349699392248939581053672465839849061262016039490872651642472034552943095395344889058123899540425188834727006553581303822016290369399921196075266732615543781681833580247008103576512015112911035952789003101928197708401017462044776579782464423513249875752403819856366151561373814019223110601162417023773131520847185904970123996946192145633021238868221677302112392558837062107916383247239471850834495663909670985527870472638002379443472357213663295456670196327600653818417346441165362633792062751825868527955359087726194181486098207030410534790571825483952913183479628973294734479240297135802151407713744820809890559593753142380195877110046392451975749864358715064891346952749156505063159763145890134982250437207041314377866483767682879966814243396736572614902387409742911613274789604911869688259230466838923468405008050442994354326698843429749986662929329320671140006288400553685003927199600064050079298363918372204626365415889257183306390304436702055728067872666578688691475291309418624254456387335475904036348221141710335389832492538970121671857335833843106739230970095836315980369025157047643578223556343173914871030552576930027076599105631111852865463290665455871130868168671742496887872377955771525116502578900114105115030164704283558010221580932964411598281440890010999973766885318522006399173274068573308377146278347103503558944511886615188305864067743262988264236717767932157279433764386286432737071543194207818962481202432508130009661783609190112535845752492564016083427948780991511094714832955318047764919186860856311313985864861798982701788086962755313807844304054450632906592142778900666875247185106365109053494690649393998728587603216445824113439350045781678646158032606009776086558306772855640939196156357151866465815907174942112037262309115228767958483524412892770218468108785611567035419236314411136060532964504491918037850234338327842795403247659443878791099786850131932236748016408282780581415238797789416493567892464489146784338636774037577292376595896976805063012552461282582879256770242338742451379686633753342620990827398252608244551269171058608120462735116924653574397351122012596440274643174251163721618182958887666972651972952048863357035800159442192409675205724797863612598099892162681200247177583003535662687605816204001412784314204708579525404995447413672147456786074004911512165091737719245556889092800798993582244556276827346469777268541488212185734118930066580428793716048524835199294781653841240992186956644545064369824869482715383823464226488963481895455202307478222778043269195718754161006174988860539206331961899656346323264313689234785051688799325034382224880239219358668529998667042126888916935777406316682782868934724510827814334648189226971877610404273040948448549738617460114213664830539870217662768138765824604063139397851935917031014310995108828759921187100559607273517956218976382475705059457663251755960430417238350931237715178280222063392357552931476211669541175609789820053384333069392957623585169059696096698229786681426742975968770594775150814257463468907443535933779936889749679432449522780585676465188747839150318157370666754585132137630443243773270718302372729838717974518949782287764872272413156173452996611735627015369398026605258904218462176370172837625209485002732148525737866915264887389559803094789784069125131734887142608737349717946655527549906868569215468159103773208319822558725474329072252873043752336213310493758638627086596097595467659281349968233790230113742820547294830916741561604167135948870510935328938059610230042507292005767847745718192139381600903598234698874545627835596746778832936955955664521395467051480464278061545871699665079847376828291345183585551162192170506612387016399425600786787446373198882503307995098555287228455265455400192363165655190067760191007555524715037027196848635396400479721186436226461202865512801230530658802831224517844073165794503349174867195656728654988371443591455178252026784311869145619100285315586104031596577366237031433127968895339732083868535404441862131021996525662152571644965880015007020096185715066707984777181255559613178908828491379790849548959780541968365927572025474392504992564209555387674287485715713839558667672120711870361280525684172615715412094777163719308170848540286182660687969742572627912438305620218741100704470194908142970640964663793114064274725737404406764046954662849635902799084235146850717136703265182788010870313391676064235838657814432284397954622375092927238534857958941236144252905741400081688519885996218905959147150501639568648791770729113997813481191298160330204904839604291741421913630619869583669262094270418654252462731115736779092212035100054125706187873660662213291542591523540078021077312640024335310829347947479625366788547803286858750490637762311487427531891163648698635948231823958910454253270139729600522027057442343219681917385439977991451046366159101223023394828654448360964151999190203237478224385589950449427699937702938882380205667824311155517447104162845555902547429811206588976699009623727950184004211184283036982098528461334071687011449534256541581173661813149273378402456118476089681294392361666415501944028998687624389493884856352144560980908796015199056866797862895966008561216454822907878927627070192003327409554366042647370662614935155141819585135644617592693010266878842207638381915062565250014885354812325180745028828823636885854729172833488612316513720714947936301921339055909999935821764511291323323868048028468461639868528777010254674248312699758923658157261449386788838853312626748652749437408204377763303071517487742725923757812347401866187625297196782802719506596042172609387174900266016978816937553183497320945687438361327358506450402955909155956635227561100440748632522083210034489289719113662372491604227849512981470658919619089459830600749916828725533511072296531557504797755579344843617817479782873193614025255974781479124886304346553617330116883726198007328933316137771320397125967770488733231287433303782551298244027892381785505796412386331622124957672734358420093476661877104483489960589314584476687671268671521523744587117141022756435627826375767479907068290738105430420588501179942083511670150947193191004212947649995538135335507916914811655838170952416040717090021041614398059281068010529802612893451956738289649868945529658411299608737973760479502022500517313956196013547438923098992429902502974764626015480824292991505175748425421690348211529983640892723236870793081897552460233426096036301925372833786227893402922886856488636093602101009338729430419668383314679006408219390771164796929515659605813688006650118117720097418191062543546502155692428019446791079259237752498231927716675839387806684334402045686989969589020379095850576703537734635098780028745250282237645503670192489539979006401166694719240118656392158366590290878092971603255285999080108712040873774684199050610110408692289894960534204307484404658359021754178855567927079463339986297255968810806158653414538300289784490349981376315495992596094148977791433450391471097053125699378957296766712870380464203527588095317431751148502346711940022521501440034583834239165755539817102157573963189462105402290021213721879188692900366873444566644488804828038877232038743142894667436036437360374334193821715268926371095877849068599226618191780411965744795282629199547604240352313397404935627530293169990175066772244777986816883248192646500930761521083875857484886838143358620289351308124059335285141528354241958916001531840374422790986186418507013328690686069652204915855847702561394862860510236323666444234459351806886683245073856001563417832708553873898723519845796994528102550110319310276617184782331230818833761952662836195187027005910146570340619844282303932209408699396064289229831217600296580823321019361749878592287564125726771337110084940869543886664412457345599721540648924444694604820069485284093632838579379609277998444539458355554496504697994394745776407722724286345736750786379047410246330180623833264507923437979026810197209589815044080766009926892857831739783364131276162583141051725433969166510929749512697739441245981297778097354958909788296384378888550981004921056092417667906245229130741196588373668559426249956454920197306291996950260549474339974550956222114755903982742666163084612336511541031656795865762126738896411802575995093091591378541656658715073713694177384050138482447571874909672762675674432261972511448699051119870670175721053369173086475195650859049945595935332345277051368508254878029626158870322089833041553146327317899665086405445910917450405473232805946954391774686140204400995794740987288553666395709199694921475642099637297367390204628149835386835250319175830402531584766958193043912062650113375974160143816218742754060462880724291440171878920203745475161791515968883298824518137883813620513925499669761759782985497030964500531626564116695313299678570274170111095509757894389614616505056859590360825602014424288121885532543309878553634449460645410754662637343382108884857900351780236491675483152456697057099038317105052107049890059870253194209082196387770142294265985352750751749068101862869199376873443461103661827532152426114568420791054269076053459837499562714471218058511789536854479456200664442774399265794423790841074465735978939621593799937122676119277435929936315429459602683925502265731854263574810480734240165066165131668765818145037727223871439228300151532317910695418120563045144694814088541842974191739923442446357208238591726839247829720945875606399940780597093331015977415815151248511398783210641372645070226968727336983533377321975160701615105983080697843083396408001250524740582824012549455402656858251352270637739834888741532756215712057187840094852694219133943989198534274722097889929544628370080443226519281708954656013767613630342998232854719377962335514720432422036455493530357229586967239373676652931317727216216391806653903999809873466150453525081844150816058632385880739869780537074121564318241694204158104599599917347104104787675691406530664845533035513846495357318914051907004409594010556716280195553305867377809598630881861497616207391538595575359836219403332136123579150576884752613862430525171028004474251187682660959469966679844232452163474324198966460113500633707579197336256146131132053809681629555566798173884301480764578802710688244277905665551807886951131224467332980487157570343705800357060909559830299300878184475492703164808137267490904082088760432773045987143171371669652525472145364370883916391443642050065903897215525501177667880870421700342513456507611692500437502224187243133562447112845552718563585064961376876384658785342876055240342405681384634249535322924908475668009216934918652611003213904647252166810987307618575257656023595581846407649979447594559748982374250875596092631411882576611709656073911193226930542121814453339569296129422923419992022813325891957791194950877962601536976343950637309579399604132052549278634040541955495037214483184993108287241211727630155354859229148549052125286396013665862432440436236293434812077661339973205368415854149395699471941801900470510149982132365017690732323089872302723826526682736183363412756141535011187413171770292241711248705393226903265558480272741840074530326059104224127006121887788147897988641509607216629789454659821923131935269407845668768711150408320403689195182247539581810355525400300795640204233010130033044881920060540997741431407517230621148296043324402161357520771079409523664465564968792643949503715124707802442817226906054615967079493687185275507986370961954533750428020863050961468950030446063155320399215650611801115432629196256597512064808566523001968556450571302961911681745424086149007660912131774126308682918782161600349322824336898515210777746218256334567541641278592741144275148554816859416604587260656899095660722305877295762465593055252707056681432506107895229873521179030603432829627413575412220522968438282717017947717270074059484678461571356464047887459352432504093145987180315412360037240870028291277467370973772870293897851122228332960717013009474974946210375571233048377137413839882444778767187898462602939388196923792805081512456023485938240914819286907262482649995024281106890923670183325791846669969829016252283536886458495490420673544970434290118363708414487764609183173368141926392404196069310050730686415255845275748508231384064483304361824864616742389298246533492668367258172911511717509584683009033823825792453954970741976144493693113539017020056232070896709821207170466771355207258935919052040939477143814923699680908693752647368399508261948714636331121728631595044436346942722348823758183077167952449649574329961650323697739289624111316420743454602607693533550876365348687646858045401297241861937523456631799902502719418332108350909476033500566789649302534071888598302031260427696188852942170173767438865659507513803086885646364758821031550188882421225219808505969799507477773017549377864304856388448109436021144350959514511857526260542290641073545312012270437469064408947276855008042102411536923142179391273255792569805618468365639668133766064736036647377992629311266347192711264167829642168650163945918888562485008639972457505533367965903358405126505677796152721341441328216847980027169508428686906197608962145531601023356630927326196556228105929535578717218437368584763632862707889531029285653895709631012745974740380668313043691661874473763630058472127631155637094478441728042838954203177059197274349114703465585904217570152204990058915301814513502895462109710374795552054933661980670843796144145680970468625940534378833838315827325053436949279660122404399074687651675756131340977380112102683243123421784171632594970823118683105015985870610533066138943930125709354900668334229190204410435917352774431899387850936076278750125159897029386133440959326006289610883088102689799790868044930809194030892063507017624261220425825179655860227680291353032233307307441576047909696283046358183586579231686783388074586954111369749973320776014862972941952830130634407193514231220104572451409769150287812145392915448739235330465594240606996071019595868990264810665903520011320993687380913744655990031396031718518429924854278456086920649067838091607890243725957344831889638945537038489673940449532783850892314194560731462227230401530905691211940682148512001193318405557237006081044467713998861479982365979204240250240788947366609607554212745289264763578628730435674571449442967109801765210600550852519581498288519256419575073750150137244314894256449955117456867162980514558073277729743474737512582112344526438517198480104306123880919929773534224436278666832798095411752017218775231474629280878993746279839170198228726626940539969516330165551566467917581520074271828218686509582582130604578473945603106099651116117862091909670512728730168439283966971656650842069192844563710826328747604851803995527754141680344603656327843098875984859874683004174427472207213020143741083162455519383199900682179027031467312407929568589484283611554370787708139612017861090964804006585152360278931785601482658220587095847344524009802508167871410573422701008231624318005942599588250706483999937859473539675545732740130209865321043130839043970151644210775129400751450766801249003600048392912288380735826498215861979825996287347105769266567316374170853769103830445962409328028080402036277738213355412896647640485568375154323578108458989612093348873164641669978087212885769302807184396486363855376764291564082616292334864539731452648439329725897160780443652600717553295746306457467827031677609097443218444841275569712665427349299226740876976521214053773185025203417354446866954241376226770778474477953825934912677898901368828878561392750163106171286580970554399045215958137188342165563168643220637563507852154564626067583714625440946391064327879077474818100577612401524886715108738177517327358898970678620379069449145770453791776032608221397183475108739821498462430678621388450887507215244246065407534452094608717123088676012176280917944792430424835627720978497492873236437619155142241104681168036899040864360889622755828136454392333028110939972440631118910020403223758693443937420446318767634946297226550332250820129093346986989932294734003332716130882778212761484353247485646232573466909557698726302086156525292489452546710340191200734507884388067372689041060034146009162600173471785975038117445597283491713559652646348839121520532378906253326928739154821771812279198027607674957601490276120297170309429043194510558383912125813733387324239662387044041263386706269791240238533748953276479094143988597349690385912031703455205870383203450817679391264707549827314550255828889664357129716840739721879411060415409543252503511861186820239643388613708594021413353416415686590033170849176594900197300989101696838228452301529807416133232007383141884285626526711734711519038106739317745851511201080139529089892781690841226591322658369818943454300392775009594818833538784101203241341108593960695021660802928570774746936188930517398912691238460945827366033902047689489087335222898446070529637462580018430915384432949563073048322909321780024315988939117483974580116215359371073801062949270644861480613621188835275442712428801649843288441781187757546845859705044784056254632796433277197359791691884043580482339955727130984717953025984851700679457864742195507635856677245170931864593891888280639465762753199506024709367010325948058559638615199545455717549891194179122249654834585114275466538154240834583120761201667464300513361408903885359077847710374966624120279541170845845911776352567295551014874752384286614913938753011373302527388182930048538976223248037531143566431564728909040156556532892765886302531566185600259977035089950662557800126299829533023507038615395075188776793585237508083180771066868361224528631607576551903242445175582226196059266857847658618979735557080183025418945066014746258628602749879727953066114780666637489563277404966249674833444661781673138233194526672471969899634016367736413424839144275605988309880894405769215946515327105470387757077914415927150347619545343575321448166098569427796953818480975280014404979562998705188286709872284139146714659154280394443308189715856378938712098151938734095045898959143629766254410933904581098497533782203972649486037226567109056950777110111278383407261069738904747094949445859912141323885913867124760294672339329901970048614588860380247881294338539387303376329862157123328854313365261872958862172349957415083058677609343736975244851449630672952468042406203615827175710435054009500154666053122826194543312956383307769159654318536644804480825297978535983431289811849697192896525681311142287787838390423795527379973046009226116948487999453105288960418743180388365773056500921323807909337645072290381415300564098054664081425943238175994738491616727207489585014449284335479764191930184310582105603806625777310988968307914945488082086308202201129642518484146438259870402350563071763864313969432774899333216582569167077482123920360700114790081206596056236898950541634266207050779364778194174307275771310385736454868263078477679919229016885175767676113750092128531953077906566109084245033632159278936651354764085125115553314517521391285144096728509720369090178162974995771726981041649642445896197665657603415243456570240382395619645311179891234700083152452337624171799558183321846043144662553941606689225591681933035778505412397774665874650224928533723391638863199598128687135177726223737530501213591451103052672720419485618997976426984850957624443691538503480470517333221063938558105777997898724104791936634521889729619969175336091327948873355741777516914365557504239599123925014934371041764714824710512407965657351465196138302107085039500374658403360254701536649977994327128557942206113340326725033482606388380012582165714633488589413682755414080402324335501230378942200820934064924457797386148774082545702430581619014549433110330915369021949452592794805180901624679854753272529755450796345107547991631461319953158517450571352000856800569401645703890822016604617710884177428485777627119701373856889099563472849845731859732607597667781294967424518078240002465785557286146127091077174586333796910320021766550065979941284718549842594359018523157400829561565925147735432975962666905860652183507681172974832626000218198891352883793553641061550707775175605067761685657369441270766853050681267767982545224973298579366871403809843685486176351496241774157084373914793270635959265129456221107536526119760711555638796806416714730115803492490676620775836262450621132997891314710513589623473716682324128702899465009936376949872609820116379881780125273948812510476764749994252325631238201029357468164415354836221817977697605499063107032566636129856871219508937197544691770072661163887274338550110896424994448977892899045525511795863746846672931036013006190621733140405971040503873842971829721174600643393589964234246708548176976312611468440016623656658764869625113481704412333845521577123289914322833251073837479917558867620366977061099134463144092133226963305233900775281884395884198326638295060459473346086705585967545795723398494365292757814700978733490949014565382167627539051690726035639734993150844193704129852576416503399740143982313721653942169160365087668079510918992737356993371967583206182322053349427081912609611598760708814885843582961440358780921244540643471658057817332652878292015381903099766206714825398769438383711434200965018324731692916788981758815403672887432813489645049952377732024533529508243267495953854543455955325465634655910766571024223489399911252839264011449557519106122645552141508863562853169023500778250655972753284213438658387554392008665444886374700810124310942964852091572214616183016128939843604393040527707979665881661198909352855064179638936764983227121734735219907630982775609479694872616137392623833303014074845232314722713403007082143688987638112323548870180004754845509280198500690938521933098060772320497717172142148332970565157682295911638996188489686284146425312325740969740037404414940332211521482735631173633098527998097882689957115048492427054439212151549090633619214260089525078221044634968251766213349771127629576677334085147369697586991958000936674443475790326242821749893180425141046572153064329952640675402437209225431858692742444700130170088875452142342427112124606625845753807088797061994898069579854759473123645901544606365480550828608456307467904112137160850614326698421444858339897511081429670974284767692048431110368077726421092997443570845613165643322166216155294631735280895436175986265761243711773102553778046796154110562541580375786867439245782583428057371752204535115848906058338302529347303447143243723030545625578433131404445326374012559443346381522713203033770594557377253228051004261630598964954128516264553925249603511240356822291752029418359624057117669147745568720451435920323809743154996154745794420831553469669376728927691074255783402037502761806768229273738351181987070794753975538731713488138734798572490636663696923677044864301396504080388986470694765370343331969901661003030375802403763147845547967992858391770276352732781434613606453215015682260849047250903611591005594752188986232158520541392164822531157500758036013990644649788058468367221800797953606211625939666259254757286495258729092865985269133974397458086649116851626076919435965122273175354947598968193202706308700285021506489568415293282727403356228255632280793069343174494831954423909264771276122459882759055765384011032247970836966529692569281043942959578389346194655557442130483467440007458242746087188592430629580013812286000783968592017885432587197173243882328048787462336016049031110393958174158405503020509983451004840334186151389230054244562601500453794149303690826551873389149221527935952456614631433585201746434450184444980798533409466049045255300547854377290212231778954305688555829141843564406704110967932902833179741740471731719143790091350952280139420743806667688768195598986271837682229379385594067591431971095398498113238988211609135685290832160165999140969356197313024085235937371105449026653531023499342191754094393501154654699548774621084404526953114637630461756514253621893745629650702488982022406882847070854149336667157683798296250161963412095391020278421974211717534962400259051271838232536982407778898887573838700556658456551075750263630321052717376761795905226232878589527541689428558170490157001942528259836682201507296840326082041466824230890149675483890214770544361276344280926939379949101632302368037656274768629937931930149399863176568741890295458805896856940528666221689934571327325018240312426838185904210764003546862559405831170336124897352600528113479873591773265545145561134211134908247150596947541966258586722441403641146458898336202683847006699343278239518361094140373059437411760703104034648523246834862755749275395720723622189906772490027133338144803877673555739452452528921110771707806138188572492013865591334518431998226927716912774280884996726504672425396176183964337150391417045069931366113418221862283989804036281620134830843474249073686271042177918492762151655566479056246023499664379609032668167610071221897870508238034035321570013716479734389266961975839487633811842888933358215519156950012373099967526291588335072812849106062102124221824170657503942892191829150903629266354477053759356091420252682269971361066105476628423522931680278836767781257001438539964847624317719353499356674563213062429856352889922591813441717583149947851256642573463460545322414475795059776618726113850064160063938299275180230601492991331993931532340662430783075902502776480248894149437127035138163847568627014863454555606099248303160914507115188928708419942434590436735657626839779018983336109234259148232578838197656302758087539886775554220319924175170278259315181103053285908888312667250148243905804473392062535856380452992888795646515103416036755344698880154962810847530088833372242667643876964342027054155860716025303508512675753354088136319540657296199884783870907293337774175868304177381830500296999685898401719906453166078162579880486163627824987059125260141722866771056329130861066418319015046648306213296794423450027104865764560860649924563176038391828989412512139664830071757409808316783740822729603453501635609931858742464151926965571904637856237472763627699039744246623040259189978909676664724479035338111716720298630101889030795644642075791743578603387884367525760600244185484414357586042077675603571752973455830643534269773264860997218514570163377566738472771961240033817285840848723413058700897042200329292184224205945902256313384366742721217322715581774597003371328200002792161644680330025624658164401023074014943672978263836296720458145285914107390181433496448451211517521764420880774388219743312051497086392807272345137704891472736581978582253237212677276244986275603777847576090264947486135116252065380010511353229466305888031593689579981767864388113664696656582529575112762290015803857924468703365379304630017084632163807455213928422940258915758168123117392645235667316455703684851829483611540193922539735474414525112327556050797698566940178396404555614759358388652543781165159147927426195305866237304504000688611718279464704304334924188883540720961316830208427504356582372194614937183515655292276964523340078105072147215346241428274702481190479945051977892645697778130723710137731148686501593587221876698627704338445616232695380567748646946365793862032436046146964152756739828472815505968938520965833332365720523257394945111043026545214474647099065127126091193270618088422326357100598174392780564561846233479481606780932884317819933762461607086794408387718827248895683125923825895526992029863944698129526895120561949785489020918899039052206666285042912371880191715378413952987829178066372551696632847758287815119352784766978005285872765743660222139839612810238594500897928197068511977146152428199139597608881299105845433067807320568151810919101428091839357665735945511923741181731752897803985131290094349639169286259838823222821338611179036869452680030678751200096188057567655682059473244808488811664867702572948134839352777220315779695158920134775026061727476043463498396258681300407697234700651656662558231897377224780258081484131141431224379061071886037405624720670484535141685230349251371526641368488008463081175452413397709810447407999573434137937665123697437391460921256158888349966559451535032966997188848903498247264585047334627911110617998526653865030105702904780247054474302909658328722487265080967344028979857670513207967926567788557632654130955017343778490000777965834178349279554347177771141493648929009075908588741779886530161016015192907924242522776643020172961019829336671235943449998440417530077839475901502127716502443521086369060813910453815466235739850867864872765900616885545118651864335035358469061461580519186196887507864711973670502732708512073098583582571870341183365299510143502130290314775874419711274092286556797168933193612576278650011081497155896900830602113090521659917088950195610200623438442387794234123247307564412023020484432352824560896620793486072747487447918376584065589034386165763195930388070183952225564498193436200770491498306749483607309944151671207736283343218039894721741549852102959325837883874874791796767183399574989102298503987046768007224556984206126672360940587519566063911618021098997549387917757589734185979624890693329317267845179085345307614097500965484889821212044505615573980473451295372106517767387512958211738372564422215869763219848653886182331735035702652451488806147230377589948136971557663456195447124695616202599733273619449612249604886648196175867524706465500658123449089296866629564359450449318065655242243275106262981460732396673726914931445423831148640503569031836878685883746556017492655614073021506973277350156362991311645165309749782814310558486781760174430321131739322803020940203210072591906289591781945327666364625115717390455237090087164308257254986469604910571532076239958781290394400358433845307636484088238473543172422216708314709607872822035244151050395256333449963656884406814675841838128107722806223640696988259169883301085292081278188103973801894137275158526086485032911649082644889864352738148775974666751472297552393179669025963563078431038565835259149512937380808455911093085236674642353143743841665855862264715544544910693546390651395846501090644936240588727758948154151230967032164081640166688794884466512752702140623580575907831006173982477946427146621123215563669913455703399612214749617433798456992577471297390235306560463565341131712822869102630047917365555331206110259617319177495051247711380775903793786913271917167223217712236205832263290547637639544956193112618833129458258166079180655712573423874406473425181010365284590473112405869467409942030472326280617000278189346114863858693740956615757512854649952990866816660546352650086918382900793839362472899512458803536163819252236950013918743038814047101499003441359469484405775606757573790847558727481588347874292464394227355343992180479746265605470076166679168208846673202030724838489510961161324932726999924946788507825650548840429923480320984787095041410631946388046895329537307333783163756661922987952191356703477623043724782740574695145460614068020811167761450823203436673629736352225454069463900787005946782330537616097308868833999788507358089712428586819135170231027268907414033041638438481620525439934115935211828882460585643761016373933609396668726995255222868431521422466699788814401812698237482368672473108549080104935365801891349311755074099619835244443063806084474855327194317145781436736702844538937730495409199497282314056532439588695621287099534211316317479876043483544910120787760882272269416448510741840151833608036578218546461132900969518702401437091105066406569420417779459203013666946196694321306761044702129524313355002688329317988582374725216996491291173003419423115647339671921803346685938893061461077634096839715065467743115555225827030863787532312814025323387243468327554872282702402267470576256473340649533993036982548176660698213533900596823590614379755722300285096640686292856988418151045922266740687031733869113902630241293387980730057943391927554955128368055243829068117800139848515025183805937473155608678074367214610169077727973132079229398746318516661308685662202012160404107472401784543470882306444224832602687663094094094739855360156412017100407303197856969566747630466824397777916741580298385058399570938899090309603390094792853164729417751203221420406065993332160424232825856443292691677827593622562605261749498264821218244619947585229606726067571572559414855581660864511239304180563494621097131084374478989161236102244206308096567996504410752962307345029385878757278334599421747675409549720828329598120990098680054672377767404768180131134160116030855425900482387041853857715679146569895017933688721891027969250970215037988819083035048295486154796250404832139219947331695314273469695169278211117365789427305035090116314339498536044779231684335855673723572683892107711745814694157790801797033147959749530189557318320472439713069834394549412782845932575106085893952086437753966495037878294682493885363213021188848190261748995447181616829082462379301638011951146359645936174661651783036658826431806648637191962806830339749243817253612210000642980174328123840350642137163530247109878397104501164595566349198006990429715780206982440023959605038233640409311284682655702251155613082918719486410123088458415920144550233907655503781328656949425034042890236759297075804927167298705083281869840705073606450639375773005425806850262308605433921046643505865252571563085054098345998802562367289612494987522169957140900602704225118016304893971623654033800072310959623095355058227830822886209795262364001208025756923089110058787509643025813735619673522929589116268194548372775488086151575441907378928214030733752661432835812976200049468431013766439980737184343096574492981358198938222765456323459110787871276360607367319339339585571527770921136235458318786640861802243209144029651422630923196998275256457705634789783381021013406855313203592194200588736956860044640428138780097772416658876490094672438888609253907762952389801544063624466592693645950712977612040508816512424308586453724227290381457575710713622081812122040891900814744938908378005288267449305015504772883829035194576002486272733561615548676315262376615895470360318598951719452902781888975366058125481681187710992334148991093308603490560550489663301559112445982257925133304913546913168242141266462738280526204521640401723988098911259725601679656261272741781128461368312759969785033774823350545876951569237672396143539299359977181433270322678396197691501317605452898674085507468786036477845338332979062600546144428511970667697694951826950782728564194528704458825517619686799427037820883770846982349689801818609921351837706621543814979483747152046966790562911454929599179999386593681989289056201570785252217600268398578214459152203996289507125791589268878405177149343197618960865168011748903155667821064674234132541808761939209506317789062555129095567486726052335146371006615070873763649520161215070657835584622124745262826070958370587707849443582601769028394315331211893664360598861449179143153951890572601638931588842335687256386756007620993110340419202946618707783866831571218490535931938822404828761736978724241914509606227509857606196641123001162287303553574750739173205584506958362427765505667148656979804806776948606259247753157427641724123466504644948260269309813758559480169141959199885353224752863528834566277558456801624924755823538767524526360225094667682577017952851219274197032877879869783613237674283949334705022001950749341395651002472375236039158879962966392792816606041519663199997568799499481468427472974719553879362836974529210433473858672676163110503685759058340296520034714107208787140513107496336101464001988147174645001869946995890922329162699650236419304251005324173240274968413835740241026075230956705563340651653354635727184443583255366359249766861611633205022404066496345600212105365919078084449936231547359813238864517887244349972156504374354313947713948385226393613621375941795544008041193222534697221618509511891137465795602921931767372456320157441842445455839001161036843362672793866519008763311221062849522481063746378595914643506350813658718079598435026891298129205242702194798787060658596297400579906824336833452934889903281083526354446577860769929360905156433913364778010941786594282010306950678679865682946489085062665202329050403356085507631345403232466945913806814555388110485300397088737069020086007708750285902561308439827495404281774900435285883616842920263056599023215017817987845031067211283447218464465542184696769142980824842306445084668646233139081757702354000556970183530155356510084991487128090054760910101072187189170918957716160777700785374760449561973694865262180416923042503343203131581252718058198931254146982358587959895651918890843643201851110809265072852257016412774530446907183661733786663921160656142887970631873529638649260133291040697726803484632601476928552038042690380774431634380175186867248656016831579983573426634078942449398650484172159433599867369717368093086779034717654910296772251211331239657770198687238159581390947235962711075716338259263633213059587891700226072590559002639289084000657797836631656111339255811759704720103081341317085705776027337254915355532498281026668573579094135899245371708597812644400234773841134996824576938342380857544626130795496984928598206643192608936698432184200780934703206250960377799489080164719732451960139204055280753500200273879617563896616069026158746449679841415283126793951914484234998053299945646925129573641311077775491284808924473506291208993119352243804292110407322211877622663826842616905609868293636443573356351880082292167643244357823900489828892591281274372355145236946441649699777128558276580379016245362459869198295888713734367187315135383868785988126077778098317432012820740045238008907032453102045901156118545478747110433631388049807487366733156285246880162452421347368898188747282463898959404907411042079083686682807462332748329974212320372571745541723409729455309948785198489704623749671762205906127453833320104602761344683940337643160842147710693137633704406466305327762073143799112870867470775159435043031503507801870758519396542405018308552267618237928619721488445366176355051372842001064399437453097665259597932736967722990941324737386028930228932752973164536478975919547879391255235326551832978465357550354742436456874955186209403296285128831626909966099114441977905151182441219761674444395048031186525348297046442956611068353543390303260733631037238664436156876705417890346180822307406158100666023941842856659016708482400919714109158660544253741494950846463055290881059837716947438833091340731653673618159050302862957845154225630865437162687383506622672656045266671198895623645249592191278061060245718105932281495500512327135895269585014566494237314753514924844423481030083930996898824222947154560174548912092083402510950358974944841283469073175966838208408062848564526751185793767867046143599728268418165539343630615732096199932627546467323219333392115251743421078948276632364352391577876926373753582269747840597995783594668409074606884242152291946210872424374781889524022459217841140285812314437489778470371469306883113240914172991987947133869397418993963641262122964599838041775190318038751935895532986742180852580829180278891637673940969543958974666866063684512938220033584167794601722293902482334170047147333873874126873878420687092555660484898830230666810576976026137420229499260986561283334810888055569636426671204574569000675056227823128443548386849850949840182851007904774326904912598001726308795586034701602173764253339739284158276350282942531879193495500564087966694907054654934856308823358401301867149959646436211967267903466656674838223160612404423640112503847837855587875687399840722932352557078877501293206112037399467321899754038656956067996558554956839035672004204475729914390869387121691177258859372203113261711546296197132133064809196728452998713745342302309670955066021037213513836196437659943891975815657355748129197339804275896003227676645539363591336621390667958888592028058190693062341048377928026887125786345165820583072474178671246048120393142482028929585218264031409904173776326596390290514949570984797409257838383563318604374527128475935241078733313988699925762090975152122925066433676421267695289697710670846045170626795135661144359750474338439146501432418214555702548080008444363198880580961168988936146978609313443647993001300200427213061816320394460904682435470434400302892218819801093076315463102551406775476100196140622852398534834009628414080193414709857896246824920408643081441710154347083135071001382892209488976857635461607884217592101783263990971411227467574775513955144552734632181969605500829618073592250661000094652837052064696444993260976728008410579103915157554264342863642476403213442746006873421517137056180188479610882377925596493466429533345157642164757314378464709561436554849408138367581926762821573896352825939126531290989860964182134583496529556841837198264228067993170346027041118125299779338671862959437235399145532628166294081331135619158688573354956924483868681284948083896798132103948537561754189900495002061547385122029781706412742084647826251850823090015608805297470230974412527022791610427864714521427785095705368751209492888025399649669910751206695297590810960837317770223001355931002152681541355332875669006467581243184644507012966931894355828147309500950411929662051749271980693694408148348935125440653807878329404592225621909061290469269233930791331015511255421925394441751853132886615347061784017102960487583903579257965541178115641306972217437561682358866504736029241458116294899182358508928980263557266495887150390865377232952065039687458978194920057849137510133505412097157921318658099450446827411918912440026910951625912335023736629377253326621527786850489999560690483048139299127233903436006345854988231659845261717053463373603332681727479928590104025983119873202491133752456726776030557838211086043737328790090214025149838731244930370529752236872438539363617029969688898860344848753838178415892415912638811769566771912207677906710324910545838231885794577369855476131684730682192662162295681445285989361960275862869759255906675194687182076637963040454716638789290460471194808021990401996812140618030585799932722034659181519765131678937893251560583228668101348560526193053700213905230066783470467357375644638838891317832464074978983506149583205261962197244629520542409775921793755394569916450951884869893561857551198634320311768452157012534089800663022270498154307270069008947981540153935676636491297793204521487678980441350156497994973039275511195222057554103511213766502919158833563950171974419572264934877797251231957008019149367814596579849397552230885089757088478663232647132759608105812460868558621640753982225887682626400334482228197756174758372191168276520203293038387842101200654796946864086231116798058111003733623108111295826009770985615046408513168049831545424351377967909124048353087754656257739465616718625858952923704628837911206168260186701058683751895971261696316476645412759157243196523223305778249652220018828164368574285144510662925268939168175395916804642849754066288640904070416840469270139078522357535154718528756207767708826647111181279877313638966850015991454387876542961761245958014443383520114201242861490567062567837605819367089817658928846383106418808372219891503090286038960142918757971844453232494798730266336989811925157839805354191524274139244387202725731872729904291336129535261934593678269089595973524809349119282717080185748571109578434032843829048076300025501733283775089993708570407591371642494664546683565331789088741169486112784811988613919608866048729735366961752721929855176945853196834698760253382055442769463001070108425709066680893980248035385681838599516141934001739216023192488880279489180023688640416882247871905747750313784531084110675142153703926173031127409065335341496614704707202385901473771817739482648441463298496888264491743051375967012688142288241238104184204166130282911301912421728733145168185100857098908018835740163230542213913269859467170379381417548199235600830320591989819465060279692251391882195864095463607984487682010977193220531217152780022851222474101863698399449375091501500807795371728784152103107742080689761818403215758236782714150636065795671920877036544615126376415347441297139507775919781070122908643525630508884811929214910564474063886957970112246162808105356641512052239964526464154472255300940100302805112675705914335237210054355114992406947495253106689121238767345457785530176698614516089897996936422155712143408779847122767586090342801431239702465164637446231787710202538715244579726943415959309889590146453869414063828730765871067940006399687970456985581732376616874560402849876083122258242748167651411896174415187374264234649495600702504228096001998068707954137479466076855756225693052118995112838479914007684104637044948178020382228283910555546820524979758988554621097347124723773294356825687239069998813957575180651686463840813712181922855414100651399902319625004913084710874872552709507194124289531021089506959439516198419571504405065443093679571782147403795325670219732640308935435207406726110470504075260388125489432200642262575848582197836129767433629414089183893691788259643775369214833848402934411594626650677122933258044561378866110248186002702788475622629353934176098972107969525204096950120309010835876817535928465386363969016544544722532540672610761945331726841232881912885026855680822273588433756223515177226370124064467382103667251381588079931484632192379876980563259434224103386889082732169144905455720301928219000339888744800652519714575558433689307886049189360225400465053927582558952781577904087237577115195705779532039925881631700208112882322780790732720423005481167280356400611588638331391006156840182890476090710313418237085653217186516058041642558077333414424367727942845244591249405772501678957816371290096839203632209279346997989080096870541651379500771170009588711579090223940580459704452879299047406211651474774108012815557252078999079281491914473344461799696764092297218931377874809893694276456828138210222909270763564131922383750387238327450863686958047847730576663999354018471553138476556561623839435941867258983287124758390514413669370222549803592100380414422527293713825954762535251026019783866090368826377923311843520551305994862961975661901315646487822496909090387580831651616483953613504396380357567755383244145889447887511416615469354449042457131045481859410904585444901150261278312746450415665713099933655347967203307026373970132996420056809996461020129529493728793380270411319575579740750114919445605580858095037800955723250894559499026765150126251944481862881948129407737868921798084235819898487079955568949350662475135312836820774197746547074950432208790292602561586532992336300627209380987611284575403301349464592804978780904064852061105876079920725854542830868786579095107555074953085291088112349765122371028576088295028502123867289188642637487413248607227887180205512715110961947879625573789996324370308698929501083049692276764539338704871967458740427913777736770323193501192776212891770132747340814638832228530470800857445555893311693477654330040503859520333441507002062023803775955717089932900680703471357574806209714215440970913977226016008003972327954359553534978095510845767464482038300378739614176195371258101414116446860777953651333390094533804410140392375158885774660750888489654256308113550716787760867038033294996771494121159065445392891739153077185350722907501528869781504056747484608098941193875510886583444299914506436395949100738325646906433679280244251665940659149966969269307079544900513679548722071803269240790401693874565415477624566092094680465990733082494123235113522648065506570523377587669445094932955432231358696751870767981368180891771256634489236838299392492598337888196630095082541938495966027143960513976229391394903090056031269272637858816419622545489665187235875173553171024531542387919273948006432316285709655357814638799472626035380752628654185216427751776979532773660646705807756763979492928725198241274461778890541107192726754160236250199988003538389920195583029828264472747177057685636688479542572040372499690798743079708387898538121875988451390173320106026250470069555940651358742299820770378979939459946274728417679401024814849279609463336835022551308300075577686193772883090943669613187681843706530339245884322913284100687702519859621653305897241830755751433752353018287545526647843815235652865538339411159010658737226955975562914449472477894700536690157205775038049054425341417271565251478247871486590225811726958903317426222391581355635686193670102900470791316148333236212011286614877406149535850773246224312687076154026119484057048992501262880851318828645048596223880902826390574069151201569928359487743239026659534499671792673231693830939027984404403634172948060081236975339505793950038147746598560983141396041446135689502711353410763790241546400747070476111947210057266538282445964339259990397690480298074063824726800263001939855815104110564613608917535697241431634380799485368380548711988288267857717321047659351414239794820911828907125961854268200759502272020024611885413324803815757411983346568595243160055192101924412549669322932709911482437041652331490972722873536689513661160675988240658027555848736529441935272736783251928317896144171009625514464196895328979049654344715456593789715271959966780144811942580036545243104449304127496155916560674851723493201885571063770332697209288881305662148042638001046161227094445859257963914225402409070432427602530948988419085167894954374312460041250686244264965093957409162972608306252491419757054682765879084027466359729630279429203003314695932973250945544804686031818823315853491052476477942924841367900398401979292568957490400207819526060471785269893155489240282650954538775889842430953814641651094454335906740739386717256544621691850244930800003546687330803746242718856504910618728569427193277179887656123055777450811456279855059788185001032197082043674795869904645245804526585063398971920254477152950372921309621913283147585418968299154962952590224872075362996749194819298713031291873326010024434175576141219258123702173560372485479555895045374654321505718719363985592589839444396201582214165597027224063892507307516667861497177757560554254762859570868661647712313827695804946939877005081035209116670900204310587624632840433474199754457377633289273200622418033114688508522064125495563402016473725017652860135533316684865229245526461674981249154035603418908059292738062753634162807566483473911480163699351685078031450573060135904835845171746482940592045839385996822239323623816630372546406399967455126339536868310125703366803349803811757692362034731704373965750131362057424588858298230432272897906784252621503001396416926660362071852506244552606917933750766178190478648168758218923053039208839291511702933633280522245682963775378688025104584002899581781962302419694837999013926831694380273469733111168069957379928741368712196462304324747735283438385478381608926957307161887573728636193222240074859486548563899046302343672673250500638062985185898405737630872900375454722348383943871136879808196115716410213953887882002343073330557603019782669510594027272515660733260042171638317280299877776345338094629890924989855908192349954706874523555589222361647304078002774090680978397060724877213140083235377880725426526705324774842931322674203837662324700412041815987313304002381927409771401378260753377010628377655948516786652986212207958316790240359849528853138923287729463315841181286663799212384851876985096283359063016519760749428927562064711821227091639602223641810133839582958214184562013471534171332296170613777620229028499160482006787683932966496296819234099175073324560449636924825612722134712231339029141803776277424881475119406724203071804357088262502816009480699276025124841745955657189624015035739845607902177556130544036978727099933001394559276270847103672269944787021832823045005478983097114749934268507864060748665040184317051354622425610494134310575535305329885830849839880531534905117869309684398497276439411671966901804803774373350701784491800056797576164119937678671226518543901228142884055221024203154243178697405302627172770659176024205551144114561240898627457974382036378573062645818130265199191611071441944286636372224822375475743479904467090860209327012470324162765952133045050728351751598221341629687318033836214035786255151982317066222720496627173697754477164215493211048050960113193700582191776947574990500404094309760047546895379879091600589372141501581035321487516228460243073942123005158274195781108160264148764842665809903716690308938126832702795379421502996833391577689829642633876480166125104056139105054315983264680927047548363642500034515788185366028721264841374390509417917146982759231506503796041705556799267949675239613950497477334273670055754194688214956944520915500647081685888685371629433823878487802993312964502672037631699813759363884971745395929741643060768227320348076515730849778735167442370137971871262484097338159107130641306474506230061991902836131197426038958437870486312714451661279920501703710407013763266370004386096529685350013063541109558817604169160400756398009087967632234252260053039417746898396907256291277824690485578024913041278781496824227526550895163598411555401956361329473728224033421583533326994397435591688037917646335821557106045956620613954494455169823303417779360884965422157284119776837353457034333804966309993748631046177322827777603046211113573153476897442826980299754642922813553383377821759573430946238946768951285396706053834803093078067695855094438830019473149032067771081184248179243938521668338989634849942089191035634825076818486538402542206838395956978718103377221435584903387512640127463846658637225032350344463026485662390765647429613514826955456539226080238103289046500105817808846399242101127770833793306933640112547658210217113618130277517323064873851478147849305890730179839643524954161708208675848895103346882942445410759821786878649175665659570947631881501591878698896708420154533799879486617412507299190805502659609856719976952116813395781227428147451416662248689172410980478172778589347063009694559714198683179079325902008006081766682570002628933495268721286272197953686169200879150212172727908091856248132726627460140588585672405006955264127847526710392544449277924922626093878058291877861674334928207987846113240458430854877393187134189875310812449652515152342308384781651466685864611673197408480126892848645445448278573502168957878673965252077484782848770839197729420760401966135384450260406558284048652992793397309456031841653709497078835607785811388034447648393875654169155118988879852088533109915987699501885769451237235237763527062516316037706942915614740376373349011267505776450185085913848127664738044736624424039595542392461686214168443621604544948526502696646627313966841902644993438992890513234225638293008715023972900714687506379010121835735426976476775316081805550872199048676076029391828948297254830001326733196920521806127127361878251975403723026730170058625988934575498580925037597081966483334478273776365464826905908682464130967034415607945173833262678017956999247577243362345034009930727675147825845979827898648175536973813081065321500799133127040784609355013332086222446986383891882777233956691127079272111640761899070766154322868658005408302157046702996473724568070731017484533253030257449418205386333122758510187507423193743101907616289779852688986914965472525794749783912700209148688788922156280424341991255240625340519560093266797332649832433567446459293360259713617865537713286936809453799729049399072630740703699824937861220799204121228285553156879340561759562145211966226593374020815291470414540364796971415503927398306292042067274066976239780296342845224482264385441587616402610728161448658062387687256214252081469116666388685040324880143347799877510603403340135321270039030273957893210198350590891515750429563022509319191554149380351344297123969710897107517917390097331858959005684965548789537063501856005099775790117565293562283496934437684948888162221588678429325896339240440962059954551893878360886198556877604968035176633511852554803394989173482559275356209588497510011178296911780864112668385033494366814863784951258857317217215522167974525578840953375565509176052467898072062398403578579252065306510103749209302052007110937296953131407934664056121225310718650841207848686700957554361347860676763878376324975165070097168275972542348356297543479842515530507488816764745270603243034494349440281505559887185658381459590073184252717621594758536729751544297035277611748969525247129604341450065598272977267757260202403729393431286861245334081994005490348678882275286980262553091485734545906402184335171507168929281827021469140828385780642731628797238898148280908515248315259896093561984172587823210524302023685625720957073595096699044692701844775589680813550697882941574946511783864416409633095625429381224592074241199156844395233409312436493313812630287298845453634131967695221194961211575305758762340920879922722445840236251958273552373983641861647705839001406214031272642093579874795786850069131391533493124951119294969517607791173234988897711163150522455793001912183489907742115034852358054875423221134369574467607115768717471057481716494443812364865653028048418562989402631557892236915183658773246047220657900104404693911678181869773533769126169270607898031958824956150057787946643810864942430269789077815943826562192152366132184643652821873837020444448116158681382183430151932199428488412632924004533452687172553629070368297908335693134287666706440322137262000933709876078869385384924057681103064084239935075338004718359409722407686398199240420288627749401078694341549397342265898974608393384410392932804608951336699844941876417796217248020981026289750454155453247190292959535233778920848963455595567684960745274932123775503707305896588435985474657574819447731049835756145118216192124639729502532946180863334372258580034493650026338055855992670924422867057100033687436972272519494185060934944661629705779131622284244523083436356914488094602310130922510076164542113661616332392639275357886996654405495533234284387509736395453798722577288385221994093783013547143357589977975523594075769542523101421544647626919411917814702329511296679938772487905171544700220119857715674006977832957113543842100728921322512848384207053972166480129045197274304376228172297616279907378960428214087584486853675231726834076856732637876213945601840224681398763521459870400932774182350920795427421913183126354962141364952535264660056029727978124635859853478052838696491448808075500059639326148272988363579246267634546060907910251681972971644715479838311624417423385363546241860743283557956727024070202985403602478093081026199108160111280663358753342901316174892987120318941636289084372837567063970652800545884850935056265844856153034983600674114173845757453573727316029293618025817560673562086438956909452599579397991685935802487054534407491627320537098622715438515830369955637476247225519909796022096510243810116442602361014019561715674272129473756375915360996408075822100797929985284496215699009264458116799486371929872257272663848463380808536731936133497250361926881704099834813242842306922361324748468289702112870142253766137161956967866533001552482173887318554111499930792771426308443015060806392949311286607182945353914165002815461177030761619852525748944408224342025855214505171068240837739085282081824268228678783841135776537174336283736100760672641424227834588526893365145495209692549565598172907900224058822809561211204790137291702817204366649319554197803004435674899329772040646602473281421518591661101586803402426932276662652591980676778942642513186990546951527764232989687395519896835269590714460007855216076533286127946748607629653159865915850126636690721376378628473111509831698905861346039986631156685078698303322780292722614467466920318901674516264333580291921133466613353796658807884061663372856901367409960746216460248654810734338144979545109616088054227643285705142570096713630092987978983070644962144970626081363603615953054796697673370299484000200855519424291087425017740021776340680968958028143999036704535709793641850176993523165124032863594015914096235797917218723084724888521055980573071378454102176334209412299438545816082389625950080480807271740679298733689186464741507092087863913318580546644160405227977579491349484444671940472530712520992919391253886088160214554858508281842686183077575512951012238763710518419124346138729338058256342120899420744886143586089911241979121607245241207097174740691499257147600605562077903950711207480850521480124011202207322210730492150704514157121515804036660210925513634695604623895748001682255424722728294857654186999786734058080162813188366116747363166187498243243180982379136992513126608961167133199954299470733492763021843983147495757431290224585041043931782821376980274612417899873155230171771307633759879904521485783875124776651073409707692361078193994510215070311023115620513843372098339457480399974968876653759462481321639855689564713843935825069767502186618133607504804099614062050922506051365944559239849375443189831689167889316898891958596487169525834035647985224415770866476376555819621560206587361762601427440043501930173268305698648744233793931006074490985958892568150630563309773365734767060896050373371164795837057505965676199994308534879289772322912672087627720829696253144178706479778074947592523577244987453031830784666894248089826207440652962626545093053867832932299798300183525843671571263061394384387949707560049171820080337650401692803164369987317225260485222713132607290209568922447835459667872217736877672764746348928128585393816575176528085312406189085375162698632706181767944247111116591951950364011112644330109221711317520559507854823267985606089388692665226654795179137595267717202627801523971135730057681077745952357672880340765208575899934581723562022212163997581393576932727334992291349357224002262464597471892035577411425242467470320923014890718135520645844721950574415257187171947184808930245685939530830368719821821468932766909967591686145206288628718193985246802064191328841526201965693758821660642009579733092952992155851493266988469584723723256652068797814342607053192833666828079600076855814692797227026292875734785143056872998905643320816771585236502739001385346448199999459609919123878616084987330749477091041232379448062041167036164721979299545392925353411813124103572464773170704261378775990152529740247782313134181499300201170884771214166146958597993814472712462418301277846778091203514472672748171558226077428427311184191676239182937447861084023339548334496069409401990778328649530314302814720501119343742436115987515781916846786178094341948185163180468729467633207951013882564188503530063724010047314286324016007378860952416111906654849414403918349558734649372670075422033390491167075367614133666059165303510962960027223872028198120094888162577667888842159737495614649512241743472336086215179231003059026411317581246671628248413091219067008692775385384636345998482884275828693377381254194929630864913133006216636115886857294552170772777384045966880900676520254182249603212581847729608354403184429571678039974232514892506439936422747983796571418943328886580194781183749631038251869141809191547296199227002240015842532183822503498248521970863722801647940617942137458250115338827395886544266551965208786339395191217938219485334447028617301143470477097481703722882785305831535975051645317407882687280665089823896777204144314011394836275216055087643842540700338600549415772366469617214205690565733003176574971962183429832721265413605366792155959331027452916773932524943878216086065679685043612959888228488101353344386482131682167407396110939773513266801812356882069191468721947110683348255621591870837335749562868721176910389968496708524177997485343143959714219030110084469157509276915974199963100881503182487230651346552430536501056337945740379562571406193299643137624937301983839871180395169534694785544535209620985770951722324725460837760444033341001857488624664518159509790817816474132327154392017797635780022438383767061295477205100197117493589827965486319293355333727179283635450926906921628876014193559079209509599906419938448150451618472805310091777572817489687540175798027124161981246268345508569372768919875460075959067590519402472303389219213378114693663741868959580099749897828714901354807185564916903937326147912573000064284302970156197256007344420260826543966361869422077503094015804048879547257982657210858395192960064197167706529958641569808393636664525508522315312140925451776603432069707670660838791222793577804116959762903093978882402525421781210449409556004525349477252416925670173086097281519288409054225845257685785529334616108880781480777570021672113445536386724571788064973991400893495056167967854941636038680357612523717633599382596169884229543407552700972678307244404587533510766357307573762903325791678230813519225841259817018197338902041521515154968348823754585006060528035707328408996422524669243078040159693017172610648762601667499838695648409418398158965565710545395938167080393631147859088397669248158618147255115394204623285828155960754168518871679656701252384084274547948951040726922606644732237301448954604390795074263665499717718397908304044572442082850461587128284505545384970488115058835272667819188150635517103539857981169017721250876829820480096232905051694659026789675890585858525831869057934552493517363030136692818498839206393440097015400955539851201700988805043813134294691425516766615492179314742580725245565559586507505997636981421971749443450487865040515938615273141043454347310170329094805971186416100347578359786962330476365702512228999405753993504032535300351632583314590380325427367717463460265407052747114746853040911953352847690943318921170925459805042119639016236402967355001147698598062884292992691400067372046016467262281189966551128429206734715005834601595356634162993524211543946215828653889741456412042270426091786236051963174887151563449062223897646353898791756860972704466790058889240334897703395359768091914344829760908604218404964218105300522218786306457007964084839975989238677311165334260592825510509302794638964391880773134064952758591650557139159606112250473333063455235650263454586806685139004573564873363873551737937368984765434300610017305564371597077008313992832868302541028502819180601107560268578488877443620122915819804483814727050927769076338461940528624163083174560495261686015431459879543022559487248633081912204756566115521417790695954742676647284561751260385799271225078191256674264453988622061544776001590088823438237677917105242675469268772809093969082415030601085848642060254059648859294684172230722624952990501652050588885447843466486098167436425873152141168721322232311049422078087651841772217559236700047362972340459997294182224273038029551763867481457691559098457783497769428416735177436421198431059362570593361941637688253234144324111887141814400457014547534166642871746798492119203804681787239570532287131691438647320562246838799457462176223956894632602525356721969285276348608605030738613629608997503406838860023279523932135914284288722571874393410011979864431305500398899711884771830719166366065175729161725833338832269355391794123233333778177814703516742120775225006559190191699370343830539512060756063896822793235307936327753152501502108964480603964833702351316628373667897960051097201362604826668365517461905296268591760939237450798502351208893258111155739821854715666277689138551756643709022496885709796359745603735363471028929661959511990063990352784441297600412143330954166470323466664962077596734214581515154708690923125216231794158965596361101750034902784645086395398080085089796250055422604038926459854746636445490433565409790393200845688348341154427922828035767776170411802890027270683834182915049105201518542313251764061068834372379967136147321886050112769841154510361514371394572642098106965521585933247419154107163848743488693442033257678196595551688906653192699191228083094830273711490837198733584630675906793872390956683923700839579449881324492268977989509831960442497341056650947686137375438124259448934321773457374715846912069501460043936968282820349508477092603166223861294782983392428178792901251360495169967911682215772105649621441778637292878315371242590892774455482618303767989186392555929675883830697150181918506298704474441687214664864771515616309104795617201409664060207092809906342999040778878680942641052077138971877312626430267701708302250113224932508175237058193266271369364837993000074295596595526394747450942196490069412120542700232414125077392902507962614184597518246305297617741891109840575579524582321362647636347088257352369086663049689842496137077892837903052605356090644637734753241888155823206357000830678109502250462401836860856308924723571142985687164475327084855212943015694049826331670234622434971689457728151690012540777043667396493895202626642429520268991694787646911126029625505128267232855871196502370958851009700214312321836993616222184369466098442395416772253963428730429665204412495527492174390719856594807013842269755597200880814179087246128247800743342008008092650722151573291913638361820789904652688451392286094392355932291218602074524600489260330301270781028704547225537229964207146524779686955556247973230246444233257181426720359613544567397747974662671746605430600358864144294456747053730614020742378989095604255955055644368234538831832397782993232977381138483749508430371407828703815204227117377488041348928933833002547618685153143611168938107137981372826144856069046028422462012780273869387625954555123656644311325862448286970033193265072790648240543411128603382692819690642151215689878242928651173704416326910065713550656604395595685076675126206781032017149207537429262739336698171937212656929228651901783552143597132140261562763028421635796527861473529173335640846320028069919898497434147858923453379254800091326943515232646266291405572978618280383718664875844445125027960503995562907240579020937349717059514348599997923383531730324239333782413804655347996765566050407778552789316611048803569719144980039476248127995789328145417430474687929142346628721970287352285831132327781567390466464629299071347170448007397776542551967319784293295906958679261265443877749126150208596274284558853974946618690423954997970571730619611390428928540567065002368889562440936692639343578516714672979259629958365592830531738547241392301979547179323539399640925355272664191849410727661881104570409711187705003533376343617998668637007102589398180105386697560668577197398010602215701002266817264023795136766764266651893084797468674649919749167072274972040734538999491890071571364887117125009065772663566654518483777285544276736427529915917335462074308287389950557366596501511350449556520208531797449722862238543684090536628447674271539967855211729822733408147424628161775724123546626205146232234600702965929124554647492354581149309723673726309759543904554556197523598419797333706081488652394009306751370182394977586851386154425399126397682353910249130285459762511247193815189450958752658300473359188053304961644744225605540119122092150824961201607447888839051802885588968717027651871911186650863654495858867173054544834028005444421487467527532521050619463857991001333697777989793201673874270238076840779600083315987107765395967118767016047542385751430459228721860862187086306452515398499226300955725571943619110759099461383062425666318584338098306891915386931834178213291257303880699931086453810282048758816964923683053267199725973617847657579708928769236786186226716369171829158505326223795718789995872949878208125209856565926844485177116307916322335640122430869376520818252920263270821291349046064910063713646149497938531350584848625055507704398034338476185569604635826972152216704124518981390762175799585247419450722794461329637305103514750034292310757805888772490021241331094174661600318177055250370584668357109897412201981376160175974841357976155188213412155845508736258192124766117196127791499302004238775843668499431216324945437164766043185547612406419105853592955875194956231380254632386390384503238577391692347248051963786128514831882605232625353242609975741706206633865474590536454367645018643071693911010004518133438839236942959459716175779312456858531508211179381127781596303038139626316313929107858742620353011102494532222929533045115730354249061613394278624123476968541546797616296627226891504584909406386297651776052116587062307850744239427524713899723153564343638324760569841309202502396362132742936840094320966024793732370466431649564328379787634856445662588803075395571043189034474335745348709607171342618672963978672513013882711242213932164886085098957161291796284757062358675066759195588497219179679851156542140262879816123566612726057024861412423380190788089668138324422564428462517106562329197490792157152873911563139302822554381171619245484348264899303140101752582404721573841463494732879646987102258903972630165503839494684234335566849941267463501394917814301323482517291896114340600718011642505805231091871712325702749292196732277251038197970692565845274413931877525253083245153566604041333528679740746335900315700123407793617842640634602607904696809763205547540450592321846255281186053010342355101320868170144166308803398706356889923036275026338502623963225851278369480350752883678326999167761276715002931812374944630160035222239222172565737666559209255439285149069872945314846726175976223636585557381779132160211703850299291611200277851396016420739281466077917291977604207506214105475815675388954299843131435527115887481992635894929088108207972005992209032555688581100934600500926076602044450413068660180699918961318560865720592007639094661518368681384238324828414611178045483504065229003650060153478161368590728485962018823217739196342517274289953195052280415159391672050946575842032196197455746963664771952974550911617271013276076765933119824846291647382841383723297909879923760569531962915143817610899554290053646345633414874581526520080562395244280369507482341646341809938150209349442725886670388942924873923912472815654027869967329819486341658667269881024561532103395132255496901438510966393076235324457344936115669885092297504186650500556987196069419235942780845325327035975316450725351390450974928338719591955008805588113440249264132976900904019812671394390322132529605874379290438862399756124652393804435553778294633224444427923444114201583065914550862024627474824889091199471901467217680094532708593887681666827508788962048162123837723817609148807555483093089986057898053285620834380676396582169322389306220365178538310981975917014086980966456631309184967996461525866187321747757407857616993860538596384976501160208764374793065309987771073978953842790175329065629695227484155402145013127068280122156045646305824784775607354695441753138855834033484836960323508298432982579144438204115073059970752112633618288791182148878271617568823876016130865978551982520255371476238105399550857011979148985485483345691988749607706971014652585874815512924658008669153936383388732185530317481956563761550695356527518172588819541027987695999230756077928217165508581102068250065129952101234653307346137092588062722618649186429039611471055476565684218513969946553507240068315949741007818402675719823268218468329856325201301201064957758805590156020614229403727561568731386392136596615006038715432050484183959713875177548683724882292813761752024418915506636958855514398931067898693000779708702575954891790902001988297708778609021840045674956152616431758940517346317476024945120411894166924404912759412735379037405854134792355034141666930703182069092320757494646416776996943671026533999783011122795652301878175333207303279194699451625066575789236401629550506645919609201111591024094864082352217853690873572193808273809591545381316681133177951680016115191589520830864273832674577603618597095512982736332175953938508942588141127849270662194125830814953480769396560390481983330793422249380616701214648570956901856178637370941381528248791042975007724439296082795226570446711830178705196516964302947781904688665388145064901365368878329702242798958856658497287079365419137231482887540445645630940046196545322096097323147839129914840711810564067787287896018417938035219086876795245910322697652579779766907813265282897731709322801356356798687005591596520766121431063300998412351822096006854560463668588045911694335903275281254245334658163399025687357439534039167373815685513474162374113884493173630802756339087411492112775084938622700875187689272387893110296160649811006185279777603840792460518562140730286279384175951958479498955039486394094871356695921771449154086212029228038374308528919833351112375137013487671426797306559003283576086895029183159390016360064089655341200110778718380469795062888755953746935280148967636282403370586468661555743048878226580447097191969429036241326135651387416594258792292249354237698139009043877398699303727102125151726106245294534915956303347204162824305169892254061812453382002962549300951694294863375702409988030921225455011541239874261844906963362167040246044666027754501123473322618185783903288805290383991684610461890790198330574945641145002338251669943520816899045201746707597446152900630921383435074001947856651660625243268775112263187219304810888387815321061108321849246152398885409385866609225726243688917538235947483773377857660307412568107614110041309311377684952370626457567651220233095782899771117386638184245538600547522580724738869362216561097952905655978465554405546139064289220683163555900941801349210450507389349737164305273425815597776021635676242910712513909211535853161793497098847278412742129291235770612365452744919696013557888391204615140160120370378071670340774229819223512398946070905675625782872773919939883905661283940348278456398654122532639467717288323048513359445154865786562324819283517492422615588028607547115055408196488975087138452558684578993688614369944818947478550056821241569475388590456155893950219017964062272067036122666227675129808944364747274233634261055283340930674306749105716037230828161176199945419517179259395139020680365994855752632635574613284965647547225724538122129687018868381858479164284804023084739390738397371662480374571403344755190015819031185506846937469946079471896837610567429423720677683145365429082998964149980075371133611944711790124967089274005282260465165369674418187818820493449218537049717468513468341517475338048763927675876462124550900776735013403752010708125038120197032118133171800022310020356615027716575498563906333129869375813725007122822488845828141503645563305792065454549298129914924331627348331045023679576429177061377534942502626765983752026719119374452099021568021293147819055853848440864064312066913109101429790470215513815955695116900987943858434718131532783254028235553649399543701216565894338707337823050885447812401642332224779732637028471346414435903063413332137046959469677468871652222263747176245505864028616203315510153370496709451129790394835901830945356879880660460428024028565623512172039323582952266315477063197234638438586329790220258113626703621965008859530109147204691290907643814677128566293669025159872135166883210765612992316200467430882904843858617150379987656199283643623454813794088003344183795581809175212902483693770531832392308137309898970477858422539111398499193064034509098351100438825764258777346144585682155758660943146741073764660335216711442185716554920530137660114253900059442279757736578276873548127829133116201898432241505925582561071016181774853579450968714484341908363554520567666788046944034145714251547658489091242286224156517350811711552069203128278761227724748901131377097020243531507324525257096165143526467244576047245233257884935718173152756530721607531799974207888470929021759020859256547304886368013083000426960409034214902876493382841529382539527465466757038698742643430300606553899559080761666461026050237573689522012766117968106093560317173497358023320037364141952576771400052122154558031563644334331544172292706511630949345530697582869118238344171883342888203286809702059147833409877189890724433570329832898790346405956135674906885821818056650113345408885021808679550089792787770995868299721524474154947693412609835677025835963164695774693317813596342759037878697959639551033481569909063866722175817906171567708327293042023770379391222593435819032398088737825432670259235798940881957433687978596371415092350715725219247736943808109346752967685651401625547082210417337964841419654608347768512914937738038047362053091461570599217878811565832825872935824969061272726118958031215265203809426730722752204017197617959791567235136870043274350715799770111524388506746250452003918228905375574656823976747433898785036266465928671791429432810376272531482649665397149777383850732113141061854359942430821777130272641747321724067435113417315012145282909322671701316155251828403038644898354012594259711738258387492831163818706368283393797525932729839758276698412835610978762078518855317957391361053923742867896329070251101654221592942339841327623062462119002457561748283727372350379233256306346698937900785098665532082994075598821734885346552632309516161058549982210325140614977335728565151115623326213134005623884746192560599537309840984425739395762728237983362155828415010411936467705730011384274876710228334137825892393394709936609341799253115067877152240688027884910602554528020310801085049624363350770420179013496138464338072990803361281931415644799948081316161549972188752018094137912470474035820413208897442199521339486741773677576589470706297992507199287966319335510916649031795006310247199160270030205015190923386421122956011904997280935730290798049544625384712372490645106203696830818298920913558305126775726068571501988596309345190265082247991066116464180682188830723617586592237747423641756557298161224259757297449431730427428450949532545583490807595407556404390983872645049449350462503873749838078735898601994010871251113814434860813269832396770185276475687803466966969744971230904707153899444041682002957787292987462667232913671392407200929653252261578271028824755710374925923106312135103447649073381172534357910902677481742434198218618691217738209754584984736520233672593040465931228166030763490416477001121427647268118839749803286601452199957541082246608187659410846869085753340849404168678361435830073704248061242632472676092983063473674157002175477250227670729946776023254397267207459181201536701986036049246191709410651760762046987106044200540670558668774317901034310095419912155472069803080395265280139577756065809194509629192685993246858708203035104679917577746607179680593013068426997284849310610591936048186723028363293271733767404978709998545691086260828943973746359491671886755895881098792874221925227174111456091913187109939912189801445819398318723357836484922997167070796589957017626088314266071234508228928280705780297734597695747682656150137756556332910384580862208394267595652376731394171772352536378153314354054594437950262394258914941810855724852801818708928075984472989621729320040665333334900678202554641482110276409923266092070552054124362070469755057850197185046751513270950959287540374755005547485038542554533111325551371313838406348491867018092847449039727062625791134361144831151026587566208986610528253543342563523738103103705606822554590082973758664613839938342820811422555109736725426651533741389567662421383990241990446238029342792803610099622769233739561562252668189763774113535529211438867193688155918192379516472453090557682329715391412396215891520326514395226400596742653988231340778873975254841994930472821607258179083288915780635233321546928301779686548379934422875496273696369846456491343732860608507209847427541289656595114776247521966864411735275341368914316489422763354636536838152921064145364245030172351781525986549165250321103439372873913587076441108511250469969904828046983944856266257491616239437954200246961707356140638935782831444488488340749407356938316204306526150922786258390716655129689231219866714294708101270541671712223944171290421886396914683526578619541997648990193098704187029547474655760703141517162670945694845582144652818945873027429314736718977014599405087297421443000705409334266013702753878870073292119220760566576737005555804767432510591280571350232657073504494041921189704357963030703205484660564020922084296748553154909644393494278011643098371719431280090287141579470437289850396081056631147000733660333376474822756556036941184571557096473969041457743996526492683759218385512727339617767038545642841083058694383246994841745267932120875277959423110623367821084122085243056736011785457617642971626750572594032870317513442563182832562717488339190472066589595165684216496966243691060755554469269047095156265398442127226439725232332016570833872123565259046324554517637745466623328057428986899128521562056528312440426821897531296263400046017613857647562969198612392793834334574331101144898602044546056255360883352693299070970645260764966823297135483318059688102892750657159502708817983876242336567203503873265765924333612023055473406841957757313117071255549062830039491970997662530660910208422956450316841793695614329500873267786186539001940655938189511035690395259799815505131846607938480337633243611063079709287984012194392211756369722963832084700826398615069777773321303167821063264725845435737749574780687714256512683440040269764864211373817411158584064172298927840830717662521503629374977668318736840792077741669749980294943250020372007880025759512930544233562185165772388239499669394824652769532178348566841273822286917387626022152289291725466845555562654398237504243350003240908743604028232663514682024286296045134296634640414703896278459788263606730128922300890533380748799779191198766897222765678222797484124532631634748798439243625617154175502775070240355214721514142489819196761562642970563099128326735487661752171855728887538832249381114663534247326214053537157774596016603899194098778118567929317387224401375150355234751359756023827038252063123441544180169084341177058054684604619824545892749776156132945923112679181756590744828707312650009005079488101718854894397076425019568704582235982140346763331231743568795540564917245016577511978426888865098874078011724879627287596953978109790712599707304888502606003651791988893659172285496147435632927992581648265433272416570270398847109437834070064411751425245841397710528701770699399516675317356987032598987826945046637544035840152692205291849891516350064839201912783230402501933319974042757875770512917810817533934126633700149752704547298934528601072509438914676717463022700401768115437737912269266095251077547348302778866336642210303714201793718585775798223671924577569185574693513855296639413248142632124678637724358190855755210571741336128356793462567729618248828491470849779187888189195180312078149385293824476835506926048303924141393707291355420505755564063897063899253031376426851878821252821741705600630078996805909931554315672212338719569820837845900894733249498289926721529122767743706604119397079999757329600830580616967173801136101691319996366596800555734557454771351926215254661666256705118364432440695175978783522594684073989704856216112266790001853094288841593459600071165758031442942416722644034732386766510075576380951337490289124856912835321927866411424591333397111300025629114262200273801185766913567765041142496688368504191160813078159225550509357347550965312982423347768958364376434623557594047999458767227554313285672358429439215716062667781232526540128633463351041443055947647739616847058733015149305376050906297060191631785494823837763666364781106872627436802693841806547408698792201202396779426174737927440345618175535912091156437120980349486569212668486799423631597862932801145080370719997281401019052964678001426599316797357940702726818713047248744438521146873646414164046735646112847894150656617966953150324195374851572001219455056354530207208876950724179550650814662124713295910055861329211991193884264009338105820303110419903590998563624668132588738599766731538293464721970445462568022433580303210951788155513933329373320110648258012097041344310160464688480613506403792490888033494490748021680183234585444326884890417939373848087331163979534048603214084287996678295303111468131666966819057546179602847440059057552678975332756646915208095067479204374202970864304258835497080544378622072186082984729366624067645677227046187468716589909251109046212343055788741343172070233427431262750351337254062053733622735643238271237227083390494784474195467328054435616446758926252991232619107813318664856217128578942258944868856431716127956209616274538396735051455489772207098568695842659464200773694812202344443273620834350645631289189634281873801620028847454924840235447721423439482990861198956654510643442634516534293626377218594889795375988430720790333961066476638393285632800061283260103816964425587081212774011916585866124597692555118183557073175561727921249677225651488264090747983399354115207771286751570066134056526794452754110774707285939370333805804028338909656937293347723335235584009522254350637769194390559482451843884123617236964932825449644592635591487949714053999165630038116893644004824906817219110649245234553580014042076245580293554542464300322453027389866573751643398353304154191337765498036250143053400065260006297506250980523985600222993300020828005079849710293617113241298791735457596411655430118086165912941084920674127080090104060556679419093540381202046575036199940293015948923745845095275018682834593293136814560838601404414970783948071305243269130069626225193263219716034908636863876742355759623265326046372782511302703504728990782051954044805233782332185376137730570217924962347370442251173852577350796860060367791191937508932842409941655260550499232514427473069202186273267491420401922077860585687421176841850364366831363585477006656509326339125835119199472773311482683327238735286634137111983239458361181696552648795108683719079239690398850747970662604386483129589144603281983613627529728265687092761788389741609550928914948741597270902964521367656541725190732135783935253357456738833189713131775480697200050288399690958165272373162545463228128232872293683647700571682509397262614199115578276541073426381566051518776047059068853218418624359140973247354140746749799465205182339291078618334075098327344365741039863648774630370693651344143048002173198570740264691223413253046710364560395757424703923516293982899539437279264458895091423772067813938101024818242365154224661313819583023560806307552583667034933950520642667910732287620356326601744524547911916381073827228444224319554738458432159853300241071058217777629818240045389141806329188435017979690818474594609101023957365807626496354125758826235088953278882065033889009389519058699207497974447842246287436935964129885169842416823605491475427097972409128827916189692749577732774851450624098323776122821658319430631464936896733884361492864039937267789769720202559807074527912784712465225700211914687030152220172250575264095427789968869476012757925791338892380831235600635391187549033383635560353757292018555605544437851360447044150523633834283467282472504870228618497309528566243202117254415672511193088369237641900445510381898909273958222666212983134222545951087561638539800523277165589961715192671486204914956098883986296243375542182430190189818013739374012374399269717478444809957128527361218362365925536325754787512053117210019445085541118393077999848724501817509936199226166864756938339965550513052293444334900125570957522423831450391307217271711329734085656696877739170134269649412933027946298287816747183196224341843783605329091152894813975338983573195379292863908864294098695248998683169420159748841894753383029065521055837860859041827546750690621283768374380679498956207089729931765317839323680787595695850883285470177228901286119362860809849089883319446813386497959605814354920385251212769971236654014779598790092209022743815112292811767516076286801369710695520149237156026775084060198823378670624498911920136980156092937413783923583175119244423855835097203167385526927124514490949425646801615939449540999104264754334544830097549478001006677391482377152832492206731196348463441751649882543061232093396556447372281309362311968474178671293919097729676195344147712385722516698317254557030454569137983567530007541101299625738591571644050732657831790243519020597470342616829771198323844980415009923498939731255891101579064495622995753440299505397807932172843730080640944675881509445077611965684855219001112979387628546163367584723355424423435854583989133217332669918961806523924519187846671832214007962725374961486602620351604355234821137950708033656611681448657325147807658115198562223168995021029620734493458698807348484208464241031039979640630212701478539031322588425551631469900920370828106981219626455742412476748154266516918639154584537644014443522056750765013625393299087032677422607095043470007498242883222807036346870173131556876962547893754743526428953707084549465150083460948006766953637636376648259324393465007741718842873750892414016072082830695696262492179121465642701650236947134470642089334030622662872473623550498133262643405823299352495233001926539845083079304809098954086467570317295735831435768859168455008989276394825883343925285317317329183391714474516380862168650407023522657108456271064564314440159597319287326605615817909284229082152652072302833543787646312304291554741414068637008531935303470380787482307157307778839210638893181220976550284043424779248737311188543725412592474909930922243749287630713873476502581710437478490994672159580693909941806904923950601611532219332684329961211952051031722414727001629657578021128421518305458654898642257905806692446414799719835959265615351126687781569742459327761905678982125075219672281581083329898733656397849735413101062963399447462541058737852502414428863799847427280958090901891026935211993755039116555946624130265594854417889164671086596882898173426261461711759764616545609158141415923986014817276464365047183279004629793453455089295717058310682934673505558734730016812081312781175831354469041695460493839121073070953117094682671943278044099305189308564090587679188062385140010520078466308346310094599452682857074277744948958538681281496719385648755897591230228520637496967395473132835752622201785392899426197480942234976475578318882954388041034439300185161990272015408398137480948590939379314474871491244774440290595292768635438153762022927919876321756082750432030206797388853014923915276091846312996742696914279763693931258030625428508097209993370045480605003783743446384532382731198162209256438659543248228085790281398265295155727244952753298891281698943321111365066842467710139016264107280810878972677145554533133399354551967718733920109673537596664739557175038779676529317951801382651713815066330826001531356865773078368359994765958334234599060969421021565065030651247502239137248298381479383261132839795133988971280848870081809907768375545638343272873649793843570981202963179529806626979159053249290903547491103303972669736866120518608110596170184209388808054650592805712413828602163985442835567591378082847976246104515216424821004588735105399496969291275833475342759377295698005710187837460553720950690130854060301758599042400515142001068217205207211295764170952219411547791673018793064236386197180461173747647715271930808888631203496478097227756763108043087581956146008287997177302836068358223117060977083459933180468201237460557851645891111929595960646335759921180185355410061687289291359451758245133473128753415106339370768644350432340488306579335066264676540473407203342648508352037417499281937770748545597400757467344872991685516366081127656120233041953170707774212448222743350570339250185258240538999691594014987160778598478626957157231179306197395739354997018395733056278683033615907121324509945711827086642117615314982563184019913766591952192953065137696860978128048320776969528330949620052951739257399140062031206691844412424043666684204328319506615211839260067651895165043216362418083545291517293997423761634552835679543713371350211911498917626858726820521815545005817281956522086741608257597690522502597643666867567403999066962814843359477033445263615786388544265924668433237100821255218101550419762174333408811604700182317105727244002770605000496586957624920701270944015886838431120022966955168650132586664711796077092270755904430526880437743106172095282885657674793626670221977085674468727419795133728507584363474638963195995109718058060652517906303285732656750245124682899699489344095805358621491572586117454080795774037817774387251346678712967784374792954629644225974948646122171579564555392317578099357938083874810009673974071435184401105067277499784037053727909172663280396043451085394337570094181941101511773487411632516221495274457767164912873889750335262270602125272878329481729579449316174035930218043638847427054630102471479251105743232944174352538977502888446718424570246103898383658302104881232521333667460567890810339440965224043876520633235528556565046370547561462807636999685932399542425268450434047464452024944069152040089883298242987989764250217172473726713545563990652404552829559653187547988902482194899405390000768125601266422932194629919389672314985711795473398918650340186062855464997713159847087466602115428195577754186727943182719651439169331480610642267387476605652424617774630583750468797232227590671147589699717681698909815243406247142935247463696388023728873523226150857238276425633097068681138146588567867068098547028545867339966234520224588486170207525400760901453945628381707946212299979939865861681307249894221647667793986631627589095800320066521976720864969870896969245173815086312449033369036445669330126424835855634950947206977827873887946284596086899501570527253742488334516470843756612986884689824757279542861703792849762350168152828898766267911663657882857934217797148485818894511392622043517925234733425087136894497950209226060456112418145378520901180717998369995888348485404505375232664408780483503066308933719063058662086177812475666847855929632688017070906272006594722974789358382435122233668724126509730654560556778849731983182397370127868715807192846259537187526094171437379659942020884943501618615185012724889295229490000490900814263149555259879306044960833033599551468710664483641162983423070233181103544539539891845982597905420768839161446356237606330077541810321920761776770113016376945285322494725515840172072491019635647073449894417428650298960738000387595947692691226456382617673464485014000066961481705467327242371270987033503689198105234034722082580783452142707397066654096386680443847628066446695215429368260708377189692166713305782322276236583096197800970453386560089876748037931580624673963690976151453802409347618965126033536486219732262636542446612455895991805486328784448985110179361537910976288930357929648161730839207669024502549798870675011017768057756487047072836022601769471755630958051595554584865866781817681400146553328097587761573542100529380025477376433416818575899810552371788217811819340894459319728048534871346062446978090295792651714040274837947819405533497409604356148003371336107404052013919022220231265883656931010893863389919545842334853769694858534175071344225388404577413735654264033727436513770876827228378832007873279415094234995470821991904907346894253294315001613968155180185485963177150906147571987067235686478511860774045991985101705800326796261993407890684650814517045103232753777782675802017163079809728527464662850338412887852616953021057377205314657066670024524669137542915163983198266958629072724049795829364003727145898374142483737747416399424500646464528818852975148055460215655272016584289383697980833164071254684497275976005548964298038091010757272465674928244070755748338590952647505579935266489054246448476105116617744011656164949104822640151536177331586405407505808985385864954902847847696187871290277667787534289658347764978328861413869526335176008418050321667645646177666002885942390736468982012127649383733309800139557060631981768025368922412904783188890994607728803120710336090154795326320237100348404687971810932015144425817771621318909978902672297083140521538384624665130651760596828828198898340018005157592239639760088967034859632384167117338552190176108943961869266067239943540325163039928023675550698617346333241170695196200616180712582978600025982225583557481148642461728409580412688838865985746706068610818156417247435803927462063788312191360887000564239638539991576012141200742374103773260117098619648308633598347134209391406128585666584442848794114893865508035529099453223398689007048904399077386559246633205557198012334198660914106548441396925641141919838452491625976714277575683977584743661148799614023999780489255266918754583066315984468191537422324144633678289261592065585684059393340749566781003428710421245519640589777859816080703466443297267194406685030485279825773243149730898761578345424440649224665511607358747910463148060346049088652523642933476915467117741771078587430257225865995313285956461726108832547872980872108101055856229722404053560072249486977208130123478472505712647890567077792769021346049878010980086565254991415963310525073843268398367704705623004622181403626145170986446372163915265232859545849780430071013888055403834066179548294013539548623619069288031754478573888299317831442853298410018290293239180292541919781682314328022913153653428174729826641246179315940927346113490808309385529537849324677564021355067079577106171837548755089654018838194488894451964595903486100021901446576547552228089843865765713218532009422683248659994517664319589326165937440439563757830599486883318848958765834158243799133396839268931727790920626247783898705523852285426399365928116011376538207370973605706907928493884256285910738974768767503052999771814718333875374693179788318626923058655404310971614837820659776614692904539957426262754002940302406792885780355744223620804692765910366050682022387290566516467778796512361507778012723707457413505833755923731150476327518681914272627849474473630205977877190465621515442786259788457684530798821344829023033630861557917471907159056923662411245325735116061129905219469367034701909826896849264760161401048174585662261797184593552339145192912559095451261184896129572268691126571869272862988660363445480361570471488288627614033739147629697578456534374516262143815036390276082224259835427164993882003595679403043190060761901312150295240891023878253665724994167583250205459563857290853248394605310864949285603690191123746266475516892561542839133693300102770888483102153890064604405523047427147408362690551285016124833132933949279755353843401253897173578659940199951438556366256244216850922519463310262477691097321278975847540139601742905527857895787535421490461633501460138822121857955339454580516703493151180710124760466519869105103283847723880736089898344750772260708816233773126252930203801449053375971281297867494124968565670053797626949898496974942492903594266448980607939140296963014573883688099130822595289910660128206395066670417100486123596131212482761498674931700093902013508863524867038890771084195419185034011639747702592409330734301157073716505303741310649027663944557866247232023135435907860976683530483367077072744005786273520204000210573509684227910727703259292683620739684358385031409064812239187662740625453250739996146618110985824850121593517190524582250525088939796404258634979391738009512716994341040168199909766688621040155138058698806313222848473972689389180166620789233789611054871218425868929342103112666137005574230720370849796444762571563025912064299715133773765854695459958237093538262910088185395509342391830231029852431469844091590361947444591699435989485469128129589258448106735072390259764761215288620540401620681511097191534828336570823110539590526803560535385485763368949809031219409947855020574149382346429225032713575865083344003939224058670371708739470115068458266756079165756444968711002165557783823130339622701872268268046342138444847230111585287047097856468375023665205282658957912912734335236518965478624326270216675554253605679498928950795861964589257781034322179665411292115513832440677702640736289129468764323245517825829250848262655216873306920159045814597635702421243395290562773583524461843058069161334660096833344205982211930772897794821333103707786739358587379569084141161459986089021957627318567093736806525311337041134423786805123465407634476440291663308541796938381188168382305954046005929042297601434539073996194244748623441813923529957728771391427444366045236066379049177897878569852956345445346866679714249613441924930226978906945872188321364227274663867716994199433934846291629675133861850739724830170266363928382840682236776327581793598155761630964961028202057585785226239051392819029717214889378693449858915483036526485347590587023333449578730905430036838610496913344093868687858342959890493791996819225268266306806981516091587405890257893099038682778089239833831430663737828622010355015905714762826847833938157671469283378896163470968767672747751400941540800317527968843001290304118889837769128122267685984639643493850675359751159723703958618293942121238504715772937737929607568825781730157319001250328094107941455657801510990233214654489091434029074984734670314846374813344938312700243160492967560582097479198056144559387743456997149535192086205615509819535888040623342674280427912391081051316497999802820624550609451013890759859204254225980481335419053931729371530634924591920396139025690229750936347146067560025809251965089712558186974048920454850114688831730154825739076577963042370738038829075702369521027638342404693851715517523858113300441277071698092027854396803119674790022448977984832323164776637654654967426858885681503222423869168531078973735668663385850949228174022418209871687633484619523495437305762179740527406666664703724778545357284250216754209421838868181613460861409550956653635895975519396831568060410752594276094029253623815958231687984507486296958940797118420084871339631318291580828859836706961624301593514145387906341470095777668504814715313891695029833858179364400337979019644102914946963716225492841629537483269853407996085533830756944377703968239106238657182902014827224806747027145481814731544067332230437794023567910822306611595563936808998710367172933741802847116369966613195354378939822385511829188125282011567143240106429429617377971531995579758649948157071510917790319140301949278655166957749395384167987383281179699751032874495335120646191104940878417212189054296778389565394779863385951570169771187065881901083286265606930894841784916017145114059503532240547730877753801777976766901588064664049791098084259957005076342724417436070790638638750057101813528082738056494559348586683773261467108884075271375865350875961586283574854184429576888818764625898561263191964556906408042646932185872611260332953469810830007565984419105945745285036258019054851175810768197052240116435872873666570674382103571889485535239239184887057724529414480996868065202354008737209694639839883239356487538667164554983203948799044676154024669359693439342610524404539168960314016434958423828953389837082265512044777997586301212957602392213002994619238484448567347891506036712319522671982793138272548086739265098187240552005475058197048333848220823061270362440185535760117936744630108028982918148887822044569093679880992972069956167282206745251740558307110272800813729155768334107883631137820672128082844616652536193418403021190628118822671777475885939406476487800738095492113649279907711233801061200307968230188640557673202775319197767345918817622964776078350610918692034490347058008603266357452731687213451854446089533727496890149824386542637924501049115752027330083962686832688422822424057763867774808075049478221654475891543431274395595566348632453464783417742718185004803007334867430357640522779455028085547395844574474694547858369050634731799390814646082201515221948930191203019586509104081469802874887703142970562346993775536804909729503831969765497820627188474291832657389237612122748494595163606476114103906997952321129095469430928282950245876991078113395257867554236865646246703393905805325378407886456019635228123108970989685641621697857931088867516156810616582367246842319985125181181793614452353579338290529344328699252175061545594904992734911197871494556947878287947070959512326094885644051813072220147925190504790552169167534583186049719872448956994697784050233805801411405679591754460425866149102427699306753436230411836212293833125626469464597463033829793041357727601999159865431011796407887574351231532293737547590049093840307108415046232696655320173656261666433387379751742104122666554215284344375941497610426555778875740526031082217465457061518535555224512331530347296391263536891089794826447482936231792657308382095071068112217762648895881856715827067486201518923303498083210651161409018250334089706389438345053973827361686913536268299293705634537943149294455522652121165532203896228475907408494343902009945460002163611768949701992736871375356671311486968242143415454531220449792610122608047585731226705405152184266407703121238063501465963393493719942272412148717314081349794681902570418756297677816418339271452254997093683690320128929529642232418379238277099820891990678960288083120000839423503783015083095399478700757922075655793143969126268806923107691287874861346648507799212190842268977875923501163584977472624334834207761358026703793062089666352870705128856143063605834079944467018832049679017020432407909606034062135905876387380133635424917811312128300552931369572123063041298017734234436230911098067315619866566071829121337150580136693269117011546164443281801245236681295074153863881525633310103277714563559250057637286064270811827173109637306815314462312874221990291824904642884304573836974980918151531001529585777402162123199021930839093739076366574853813441268258943565241409210911560015472022223710786289965116975921597097887901835943356205355018813537257032559389301466771040241641692936518527833449867747119727621620064984320650665215186571327638161832055235459397986143070863099226349139403793040017500530119546116570803125947116454549050543318581034940548186956764005926986029568536851470119975767811121077576114933670427690159922291500265150638709193588983617996556913940777878992723934667154406429550385450129785190830029894020711906703617390427942812333681276663174908533409726621191764525831590465308064103848451989075241187414544472848804845595820158062894154852958991275719264652658834836236815495659732433985978324042555592496173582570320579570084978183623584390527296421832720450630303542848363449174950637523645360499739108543597551867597234311045926104841151416282355742821126197434889598733194392757666639909449576539172323874680324588587481922873780377187966535186205669040074854275226042045707905013154090733104748787423850345146906448388069621375100279700794084013108036660624480791844426579383550220762943220401414087362014195939698003351494247640953473225724266094168827110176458357450052586240056986129377560993208832912717896576136343372354889840932625397113842096515987870209079950610692731597783565802423639249458006555506336408062401163513892181181315042619750959365876010590790035005965932147188574097967126477458124955039338792241221758471943428022343463841821767474793602728495324851138939946333393244962519632169136336978709021091203829134408434583478702056105302712490730228511318779689750788264442013114621977257185724004083239754045205773825637071104416756937592128730648742590235123081045664153894378176229087556701711179397455757414137130211689420980210110984586194830492156260924148659944413310434594272500028989486683312653770425726071365492944886601012931181322491995835525463690996889115338128569030347585799988139121986543110841167242881581050866009798020123434366484735106112509489318924027912771964182878690545353473125880118003086588673759759067237057576860972514442222195844422844037989097236214440429250526143445165123705388285101013694983144123196613114583237187248122027979399856787178020540952195936009871489957269865256049118302131602603118935507776935836037927522330913585053255189693653552895478919641944629506869185614268506603734721853912579738159604687375009455448268403902869673129106019130420759025352643358683581185150262485947075671951604852189410708585815184947691344709819984161184786189762611051834056562582714222611318560568830746048202680786150903541582859215986189159075535269910577991908575189213447773359654977361634442294351070254431965752747746409208980211930123108332653889910704380313785160195792506594451411902848208557471142375049337683408796602325210427948502298618136125261026858671053205037376500535645249916481372913232386406365862157552804540488268844198353687099550222218750819364354766546057477971244454639527369538946760322562239144604211252141543135441416465471984003742024777610582354502951379830802311562175340318774124774533886547416565703482319246071242016055293651938164542776931843874930853410818103626163802589526624481509276878095391847379469524062088079223772986027302198214761761654546693974174969699567155150641219024901580664703013408509868382610336823342218423811093517309324271814591045125744929895646404119864814586131965681381488629534457623431083785410199556964121169798006387287392672458039820674089020514006060703947752666598624196321282232534097809845804514712406604867517459219302771596869550907443209318835506186995612169407625133092624373065035379969652993442555808932705755691320141210636458581067586048336469161838459615999941361581938142490595665052056171591048078271362894797744369067943245505470840563802252169934381976739366494719133368745174866096718431723677564446166698814657960220758810199976532524924982682327481643863016050146538535561716932541309335020692139053321581549581432027231875008103338330156392608666535486135856441589676843692339698367585963544848885445224988348862615501127492262618725200757797290491835337950907035169751311982374831012720651703621398325003683008999675111824380329512338676914035615492494938279580812807570112435469390916362320800572804939255026205157010341587212359140521135548695498429792552758048897192530147982541707132888272905081104616372649471929726943717495234094209112022532657639612574923839460587593506657294705454243840110757397413710526921467138696865119377739828018451218522672107583522656528569652653245173635605498013337146844255533508899198599744632966076768821396624517111297001691138370806617806092362514868873763400184174261512073633150799027340418465253266414943609219208945942685339643616082469788317956960932146330187401490139162374347928644529028009637897524434892098036446484039311782290439748593420651144559856670880049338060005605924886195798603262149850569337502629924214925232212870333916901446360242313788774095216303895739710977461537351676817570713910948300253752600017382944588669785772770818699764492249701418913055949844708375817099489587453963315660438502722257243098867658297772779511051969518383134172000779236647996267442805445180382266026031496056078650891812964851644454652670790835887429582735984161511278340165038232500383981374326402282522804503110519590946792329982505565286603097374297046900800387015169056776576294116652715591904286493673625389859893539614013567704218704452535169950933022500356432272776219809489727686195635668714714794596294566135676629953241699218066718569987030542456645431365931477167751980764283105395142832683079840525047370663387487658509297564483171001330145426160270988880926064569400708007452701127914003197487035892311657601241126849838992466887788985672973147630758046444890646556676054339291636186694878485669306384701979548841525425650275407833092594084941734761697491818083175160204357286191980269816203077798051538592684476781379144230121166716602783965334640060900264527688575751100179542037690478478398575320319884669037122208804709236986375518300738538962646808106223721745234963072466804742415959356277199414388343218402888280997511212590464152759703721607534127808573041295107660336103427756772709573368190874014047832038643795465972659947865896954587577170819819389145115299853174121261264389015357859815890198455155927783754397391845806870240969113629015287213249350620420053239187175447107682138864618919091257661944898639195895257812732491789254282463225402742184569957680949410483589403061993487155955136739085969576875644663322154169993092734132905436869754285677824551302665099370662376354376411727951291937065485405108303651213794779881570158065880197111982210818120725263954895638718707564620794617767177272206077930308298277253453630307248708517005036624737371866835653490210426221469070519145969753137556957818517825667199755119200168342755639002617607104885172894200013525112508039296985435791144828890660457307235840998783435127361453639631598986649763962757604583832760508299951413804793645520091071343917584532752567815130748192140426431979657471224664126823134967174508353680132671863965355698654053093150592826971627683710312337774803035990345232096241833432481586143242123731268331909182442835604366933958681901170777807382705116843689265870710928178380677982900612801294031027527025806957728772172699476172760787444097483992839919538398703233366170387096152902392201836068306530314846040096635369738549356012509675967612581925940863869995804302096131015574345369828264479300545427635549396588831204519811623492184050245042588500668847609589149331830201568248675596911434948288962501233231583487557573913716289936538247684707018046502647955200538052711190444711237229394616472709773822089185657934411036857741696198848391153927282636993154784555384398739663498326234443631323005257498170392678438211640500467826265341119230555188018365238370252901180058061998325733799856063831230600585914242591265712044729180555181606515787567472007092239583918025812972422746277190181998742940290960267840129851175287798079936801278449783431467949120071612996805907420692005343459756372704380786952946086558986934277383797420065026673923953962305302237850443790230308507495412046354559180893158952807210603998799141670201913422026536619815400402673845273967771724401855715644834014839425209788904216210735315141278969354212249633388616958306446875436021184600706133138527018735818286418737685836431729040838874829379702011971529530398627713687806871148396758269477719791684364919660175256435796263824781465452197624591493580958469017789064833447825657707603238143842848032053526691291329686277563022013802736513562348340555570751551670966362292490833959654191647578601046423069950581972073966595825129131091864115513066916504807287484391753482541792803844666934850356038849167487842346523726676512165781708645281705067729774273381175595258543878623878501792827008471465928800391398227167537311795540295439278280998235743920299464356861577227471352445996638433723101451803563368096227498355729711024760073594343765451514950881655103110986255995164957324955360866447564777461859526973373219757925828705517514142644486955260242933642157663174758023794378224589009367014927420858159458292664063372780568132713923232149867105722854915446201441399117986912177055760091821825954751069768289435211001664533485435728282657219675256150539703539131530280583851897184849889444426468950260835577437513896036860342693827090123752500765098437316935538839546163065816411750979584619371076482361254332038400266485235352336107599111765319538200335203456756181900659384929810579434844123357878355608301785404982029503953414619934271133334981406259234424868304760656833460372201151245606022733549746928386758293913327850971676480177751320760634103119421949245102541970759257953692937927160608343631935298204804033588287823353039635960810162889816024567943671383391614270707885541926516543126353439071498698507121675707979328632255576029952195207036387456196800338756779277313020161740596690834832006106523675699802747880082981380598952077887347142890202612310316633472811205650859949491312906596930365381927457851912563772996335916162800374300929060343347167022931999717487746183238972888602138825512272657578397581090524301033407784380885804471894929201514774779722095805462820505139917678619460315633614542041811234285020462853130367179160013438824900288633727845736610703598577825574360768208307799111921662892363925397691458480301673642605595895855102383681105171064286137499681915180625599059052426206264243009670005473362623003556789196919053154013335340810617067736909456446664881295043856695674419102463704230157921813933318425697168670137189367725824862310483335880510479002545787880235686851530846675979736685759543566925917745533614486812750694031350833006728576434446499529653818990884280085049702756375867146112360220004244386823292737236797112524796396972612613710900834662601664636258925306103041885122457560193887794447982156976977135951057247906930418077035564215527276115108418795172566636012823001063125259227415966680509981953800094423299022323631324958941597975271495087936504691080528506622351439295817951729375159946802055394110043901194022246563753277624690955374282743810820136812335829912901610494664137852413776713464598132193444567065632142760653757391233965491626006752107386691014189008371817025155521976724508517393556759156778369136331611242710119847950582006147730755754645509813369280009545021623607764371552236931698743086820114870015645287702017341499356503425647747793222739044235273345674247435752140938881241768283558038673551500291633473837767309868738774164017873257235408048485493580896945176845153290209266063830834088280556099158192011658954323218390406135286690556142668184145432977375452936295625821493505068307430077251696517362114236291037748696038313671118909181470356446597020559053222491279340773119174797818497494840741018020106476813744598599283453109814427078421022760652690128940835520709724819331939263186949937094314275293737350499956559453556587598897303947051569242346840469992317254395543222737934637495525016952495389337019936063714021507920667925623870449081195681462382087815919114981828962685683201668400858444051825388552180193493601267287173133710166826336066529067805729145599313114168721788153250432396584137358011357692585777272537668219558976260150138793308494461462044587838726785963212762213451029844409805605405360556865696624523026404005377702842244516692808298518900046580328793836831001053604127896214742943259606025092406337376926496081862278803229592184448359350437769997456877459663398195359269969323305103861604180808982097009467674307267181914324577278946427812747222579023961880654262068565780658306997644725699285964612642544200699237621146017757845095728141529971358664640763240248484227875926028477403550319886264813931538547358000042050016005501310529895512163893558250336475310046320546160475594857306246551016540318046888541859890298072725382682166532109262811885114137840687219129915065359515857836704322156122046994973940267552487156602250135021168970559507553204232602852014865307551296262700492865108446503588833443476661556356739941989312599821075523914601455899574460444509611271662207526778727070443067894553701949553284304916981130867330253592571633670045485654773083319581223739364002723680411012687776412862060195727568646096117234564318640225537831979251736783528192144472765611018920876176231975139934551572427740293874927513753047728672441575211706692366080500313323079499891491974158418251755551330707186521072269348010786522953406897222939511547705935389843154609342847357811499390763918819398037126292480314813122526248600454110085425577789434915959345889449418666923872029637568120613696065299069560591701300629395579517354115648892284668386143060630684397134724617708522016705171431100308126834315225958884078456643182313360638137793186394001497115990216579486919888946343556326441923807577498037383553809435374039815340544536636877929521430168666642686165929937681926167186155568912954780639582254258631388150228575328413739067483743236518272956505789023409705057705429421332782717159887437452407301510965821994938123696705735761139442177172776687149381523939517083943100932037599355403584143567876726485062250290975835834842821108769453163874363115587650655239321829390694765397586989250461930228808652459491807636975234393285403788183320862406666445166705432578886847701213110824876434425238972955005133139062343331857599018779799363512787138127945149540441559201392486448322704022623301335641098617820725581276045931545733040335000371027857181045993048764532792914930263192444609510727457754407710724001081989644739141877106771142555827325664231882648184412144276500109198274392844759626157936575115549495411609750848553532250714246779860638461435937074492561671566621016739105913280265098449356365460456345463027755808101006556028126166759068100906215578641525103740006848994227447615190518997777948375724076870721785822449658451155284533055177244830889377681731293900713355524917240528177137741761992731358056403918497941034297061030826123180349597088296696139775405865358151897558342224305081376901837178813172879959156902790465217465339041955512369204798143349487899771043286327957774732136408491888788932354237304600526394914521198655321980713874745952491559688589897388437066576105479485070387336334355304354733630604902424659756510048131711944814163501570615802350714010648782882485986265041716561136290119821992124696456064160644579649093353509935326731577419413303989345787423293958810231223159698183680959766143153135090872124247978845883804874013424677892285542688631701893012148744246970366204628112697302025902817529224889628804569312854794423802974826320256756573845732684659799128414273676315259979938643499733449413658928923657401372641710208224308800958403844442797067207763962263055505288474607597202015964004393974125562216890162248867210171779202112969671393813912392236337760608544256240861459964530762239580253951574671097960264078788897293655251785822638017787145699122432019979708111795720848915489923499513795866710384950091490482920320975180867609195863518778501465250768593713985680475076096241531131149439581478199722460228070173869998177383299125318467083875160072833443292220862518247419113143140876660305603619414661514735165038875213724838099994562889369478521880063582441853494943277300704990840669655427110963739363534867548542994031655006282604986671461601357852295913002865339596003447630452739788108554591763882381699774193145920926194137535702508590224923585777246433120547157349078276258865056815752187137983329772464933337104402375207946112869487154593839347167910344886899780343592597013755774581053050698677985143020969063516558421764881559285819879122035950953406537774165766604215540448595890946754658117558691112698909344494441879666798976159988582218837983877492022578946921731490488207472847221292348531063352900752143973947290805306892682510811205536365940213829371147641231873723923068527960031895282727969090483803566176514709265437563470679508580442147069464814901523811553674761495245399342758690143010833019242387498029298719660359260871836961124612369323268723350289001620204817664113139439498853504174726167143401287492336700869738950270218696516269206207020925543808279339323589942008287449367827127478654949909778660413222811777174596389011114011429539839388616277652140707194885216509843795494845287924326749217990623314788081558738116606728559697611862322407598033354358750242081049995020445181801458793471607622479512971190432316346290432820046137198678203027029061287359820041441855164604635455352106812964571318454498291900482385049165808559244185593369377059961908184291340769283266534000383538627393401288751306963199891577082269154532002198548157532878466808194801519079673746791553153002660828455180062921746565284244325290134112735951057258475463045875749467645856014471152243182620398997660280847700459351450998361968634269382980578961031157778170338558839698921590914221487409318018401287446551163482790423069612009613180715673970574672794525908692534364547879350929914777194127631421371655717787039926036902788446762541345528314825969039007992867132718183891062329492101986864592064614090421129636881335152073262329344049470247029727857272668232146462758825437449489349017347004041251650043409418449046518066942313000915977578244208358159153856222037293474443099234945133931005703460493039360352691721360126670335869984415214994904984528812282333778148249476044512144644556899764678000097255502373566206262935418683361164400713794583548991097405793651881806967906293809223964725282709029104947996001819241685353189646223132941459104030823536935767707974666680735214482205673182639321749495895641942926109045301805228831611884585503097990153059253525988176920534500887432564213360155310873560490027877870982558042313859411642572380699515887216411304002956225194885946385769332235292610872143236900062035108421494495395031998252417417005156479129844065124082890338897074310011598033303551200531713693555606378838695825064611604978427560015689739141114495767086793172197665965967843978527910481718072629326806113205929967335535349063535727531923987316539729215138248574141280614378995367944546590018529875916470718944002373996366753050853300812234106409415649638162977287480959493061143113931671685228605642134534687693510545113456186411542477834822064031798650124325734660349450446349878380827902863400520868039169416351362034150570929564940770366049091117604570625607569571905547584720107874477899580968832977268239972150075909654878240792212529782971552873009358926568154055376546783572401802231928719660051536646737627405777862976221127832772090928339462292805921441470445789632305866340803534399469355998037404716669338955081659246631073946497648537879403865012500178541041268578850460930184590050457797333601995906713029610712602742617180411714407036496178625221594974860424332820966298864608896990665387047679654767180171890271712724278059582251428364228558972375774687972721117418235914728837878238523568172638943826974461762897658713416075862663258443615112820598787485037707305016655212051536324780923015916844544519091043468684256084655667561130225272654452847845026644358954805830200319297971136304703495169658876293568423708325084882006761232966235719142193020001125122452995381788071808647625422123776030604570712703432086840424789560300723213012646960724684011953875808768000283484808317734900522396295532632792778219034794738200092413232836144061355859915368438033396108750027141774970212444726860548538784395861345571554227493450196203657397380339783423134286715046578980385158818373229611512251059927004769894368098064245079114452810447103681040395535968105832850842657798008937698535575826305307414892914454994213550208612290501432584196391996395407250121498953696218514120254935669968432225192634612728074146822662108427451623233119200091356022945140511392865885498075635827656583278888729687314517375542212566826462330053332101421727667852005407577022123223486643333928744265361021300397427511866973038224302269558415380478576213718104858845410488627463331225478580038165596833171998950474990604255957215042247278355055945038987135041314070469429187021274878016369646943682430006922171704223770459035617268321464123887010280887842453976805000900654914079818899681682827764851801211602462099605305808054799506595693881591696813336867821700364179575332718638960587048869796586037616129632018203546310272139163036716649850218332898444771883223188853502896036766645358653153642643133400979562333755610017626913616239912352854543579364017543674879101259184292858306315555884396675648836682885760999906401492997737306862633610732772896268401868971731466735209844314762547940012681868005589852874155369030264876682239690415162322596321252518719809705338816093265596907500097367457924363801993927428455242526308489735203438841892270184543616516447669734687468105334190901311628244048075286462679944029489885907497988944783038959969602626899759859165057650708093982755122268738217182045432974185677362631357250748788411821494080864313416913898248601055363350118079786051423100154579964778175240944853235819195115811600303998877314860250701743444762638559066605653655838839095690159011047282974200313966262084624343999320730223917958969329396039851452736077172608207297612974142173983534965984978569585605561751628124964330736465109307152052590272278198258556874941787769406227426106045028294133252558959852482673975795426751943079135805419092923801676971816300511928368697866802066161774864328129314716364103592732110307549244111965759944385052512311095655120237103877126341402639682575401233246957837708417535550291657860336184237046055460346569974827069055281917426655237040332276184430350422265747764153123578928759371177234029983667322682451558977023203744347891203185777390812886054832960314817672262570519331544600618599958060192159474601268707286141254883967002208119029908877637513817055297186418372839895119818289167765307546881978435501340555211422007444948982245275716611511450897334769852996136216703631643311105419312929487202493060319193883275320998272241480723225937228239742130082679149660247721938720162042387864346567591897902607186945742692801200545471657763701392763741347109799383893594232996144450017621145368324970424579076414340159917333022188433994158801181718111413818492525730889439091637081535681696838171896737540975072253343388225341808726003688227010900627920561652647884862778139515279864879608434394177437918250376442209326140581579020184437488873866379094665791241597905263544489391148431590240848008234747144493723698828387276523714627648658570111772169864727327200398715655582218997108441204304192440873917038997945467790602309701795104541663766886407170787455419079181193413686982851265386374136311884121811793715783368171603390628964437740332777109481258700647015117691024571401572043065207633055209161671362056919493592347311501863092706689146337310454187106567105955337011886667558654514366099030498505570766964580123434049098031783401338218435231152355161280356517813311563769808592013338788824026317368890245876710440796062823066843449286726301018281664033142510228974046133681183175434368543298575032460440491565748285327820003012744722522584890600483784830897701768573299610037847963047446292553738642107878697229684131790626053008708094141683640259374344354484691232173054634717490895179051126041813864019214064406100463778215159825898062135331095735891423426879524366245885906132919455819763550453953568398356114783442927389168235433015794674901316394249752770144470593451274123738112422024066723984223458590068691610116826281560285329483167199799821787555084207449206053860693909722932442800439016328061049256606449792484591097411297704047467520220330842112429441236711282905833682165236011024092671102831299008394204456734824568453191800021093556190622050253272250424593895680953585840572063849167150406211016664614035630862935302153890127384336179822518113481827540965595956510025449448449304378713815658245954155633721532708967881305017356566031746800118446422996687478791824132086211567298340878868747954878225670291523174768261015583594798930509633624314275339921565933566560387092469360259229676034428958952486151125749565475207534342450315372558696347599311737662920233926262228201721492795114792303832604889750481820521990235542383126211728085408604011798327801292027735948186296572827616094910549656065031480400147609913295566042065226648934776072236017092477295151981439276121569803693896338486894277153485941585724022197339655859650818378359705277902176015675639134647056201085030593179466086655052345464345819658803853022951871226449366512523013161217499326120278136778705353582583557840373097160470845359267038130562698303835308431801761997074700066490093946912825764039715417244026047227672430291080778249725236274729319368996750424685539220054062430754775640026679963166603685912050796972202925350316504823142928172992046811558768820945016999216772020498842793531795435857790784360225982787830147827456129408688625523799207942852185046499062918728407046324854869153844816966055570952454465997198191718787788389799243069878886303947328238818575108759623308652108356429853541872669951766840904395685836569601178579959439621387539698626203328909221492033571495577305479902382523674400891901404414135255612594806459598070899368945358661911401431347389285189961402502121430865611353285763978519196572266000125152519357139784264523657013155490304517546368157725103965446463040889636917149035000296093173855158374893438766876690782509720386440059947804377367424584590982891486937510659389074926009075164599562132283405895896382897207202227284407122253840968683852322831651495869622702698515319285634939972780260936849232524379347221124492732972028948957082299028025938859895419383168284344199748827109559967162963275600338542273021181160486765806778712256496379594256283632129576215913901028589362184708248072736211873965484851811877789469454163047439395150268060330754637503853727305970644956556316532667856802295552490401186415660102611721038568327460329299013563377923831466250428290774514179473183061256076886157976221824865114034036401374203770068140112230182681000878563279613223479134087182251032947163677969687311721085836371891068504336172898653064533298758444938837855945913203854892801296137546297898305471164538544898069475950527565072724119335308634909674140981183038670318510937084432712942939404736804671855530795894717371016589217798880892090969741507908075133693793006095610050884812345653403119643153003310828002961274190932488552222863187100642842598150231222444963380995401277384520873324552152554924829493859665726097900656247960401425006548070616551390819779367753900628202501466089470654518738146816027909811331929325934417612887170075215168428594756574964488273917188050763509611914886066852323151739288612727201519000417861428928867064893715887775895943320596380749217302003621954131749704814416899646260022111943631289324212294507190743651685224617143326536339504708596206649498974787857241186617887769943054001099018024478516169348601246521874562956839585628944609169460116843801758765816739443791520316269738100815295817802803365109687062362237328582126273973890209351520431220751512394145606634799387748750633645265230350803231070545023247104127483415847799562415066127348161060075388160286715731198080778199638869111377268197893449936473577447249101863710082564972623684297391761311860737649155261880486152970529014265284085279571858891031158666661109274466238323240694914316699736639034902827832060543988537555965435364690203456514297869985863953159501870923061015882044741503851125778400825441567565437424651319843168503834980336761334036139472543574437667764071662099145764251786563834913958078307895305696369935358764784258843687163029342362625520760965630711206610981881388675946238385882819190544383711730458065537020264006939113432124434065362844939738332845050647530722549451371798327494518139525532656035026174619867605214488879743794090882556871919564334072900795402018738189403656268875595211850708698980726688755689894821448506535367309379557896506199293682564005489155152005636445806095331903704456209319525481879278356041016752683151269737161137263372531361704982403655421300955282384976047432975609053360599797336626587489681872107312113725556135488927614256373405852269572702907596032330796504313002969365219034381886545332758640907489549612166923204203524207371326199130509419149522091335125151455731310721862820763139494627554702808438148474378953057565407725094583379663434879925430669692319245294455267763454442815556379171740444474839705111897189275885920772305351485183643835858626684933362636002393059265791115028393605701644254593083683253360871096694645769073503215714301609015620613170697439236733321976095267649479746869303236642352334010015068247166242817645260172606286854884707479034332334114407050583569340140992668645827194097188340180442765424390016861443912288533228694348850790887265781530775999641374416208635183100988321032379008470046923590465835226687927124258222331866831326485377125027741085517518045517296462384039317605319831815278461469607043574739726539290821481593775776748060959640509186462831402591383345536892732139176884217872800936566799562175663888111056184150129555897396247155737546144001396557534643677085628724157662110011401615709343556129604501507210107951736555069677236920011631793866638766632334516045276736995487239350433654008950751570608280777628150264420123585141339416001084948799707097728719167746230208267874068457770882940154902295465029280661893324423615244825854043020308017117066964715056325115701556378616308975633041340148253742738120948547228172127665297926197783034644522177841329015811685173766835914624155269024940035104297990445299294657694643812160226265570443998383030920173909128562743268355407605190278303674109209648907873418302592685879894713583527809753196292637570146935004947384910107567962705536812663992838374554530217291567538741308210870289272265258070855773230608155872459674996259942686500738917624292096127415863760146417798664123096203402227391036641466854453176693948189177872516606052348190995611905690714778576814500740773852503414538934372987625132604831633222972824578156120361719687874651770549465004193611489419246478279998039984902418785179231370956644623944958804456898594328956588751970944790135857190897329109006995101859949048797707897230529244198114241747938406411789995497493720971814040080462089175683640423969139826745435216489978824772545873196635788981390492647300320690941377660991897200181096486824411382810702134455133172162148939292521892857400150752153709747772479363255956654945892278455039534067635918717602222408944956319191921911701658904606973531896098247820073903927948528290674739598699456440251506193927236912540880316164284426553631454696357242683146728924095765498275497191240872728024637619617710464790952357921986679931128286385467467825382676153418878963979407355644359406686085492830779445395984491798004626432977504082501393005825690564243336570115944540233810570793334019691841548471718881624731328451685195517232213507743437813049237721186874191937826067963267691873475888140767744712588789969639259977674130509132780627943450324182515724678417630025608542140513593855022397912201209058162976529261650705155528330025926293502346391047933664154910662727809622784656398331872728728371011480105199000193331219135305595988901632341777964704156581764449642926182141931593057067983312005007408450427436763234239217533967496720340997075482107531445551854541767495736670622562807652994903792692073811237481822982176724347844055396278726737055059232770637424728190863528476426188118333706422162540542322735831938445515982024057153980165265236917815823598072283038886235417730802756592352476632126317501753150233495454128415531643371594507562359988911449950577886289459666364652670071490839615816982182086108320778098952410948006235851074427460378511128299360361235104844016266997108596366012584717873140819673799839457289294929571739083421882717189593632208297241340099076937489736574539760573428511268226464085162566864252149942886311388777897773825398248915272620914954270736014554153911152851228077949723789921838130851366614195011373268858953644881103060730397080272107523431406225516276291889889355366195995990309026863031742456016063807902796131479377534943098589561470117319314322491348003057863666764394994500664522646626182726386483779643095045722337218757432599620109994971776782937056304907598889374580705773927512653163648334347176252698255376326148835032314274533515592883562985537701082137502537873851345400906701803799134775583133686677747893368752794211157995064108324652471314248578737766226477578462087166918645564424539804221891154443994181313035855632782119876411084529471404043078295964879096577523831576892859617629470591290995752131675659362530679638313173004233363591696132144647563418533064636373122866069162858805643250404275942161303045970875137223445804741495162691271918183639411748764724883229763433273517986081607566601489643879642059015969909181596739338399135245626738941782005833399554391746449388417596723195219012100125898640429261762171890004497257945749321457052782570432854864854655236927810210265663221563069223356292383694072959930724053606720841398207398734517149444822093620505818246865196428914105649696359141713993983656033813531154277070385656706530966013874199114164415958517727422625347985187751841510311958877630767550302205624581861287212413088941783942801920172771233155478016582830358099306747979646199691886414427457257589587370139166244914960534073275696039800497262486216433531004079002156473817647461017420558561843600131789856774857270139564233810968536481841443057493384296640218867958711046940196578766912662043366744950318576863862381888737476926720918832257003023615386359087191455609371480091490134947761491995556744733030211359389010563502471982342021024779032837054710578303013549150354840182782162631076594672623440776627111955927445462892566671780957835553637921875646721989504974694742945860142177516069398484667975381335611992191211132707889859185619995944868708407674472395574806094111968250623280114500802550883543907462623847537660727678575474674231880057869421701671696614454540981715838938169627663605692246469159466715237132466169965027592975602657740833019282407983627307885615430409134152573132114062203537690178564481349580879303970108577188513822377940698424754527744452129905480789641175041566291496497908025637216738584976615088127014933635083680084935633222734298478916590396739284714650140935867467079345156747937588445336579952714665602930138871862703453661077171641106644341276896814254687681751204608936993720863653994796269477610140466205676268024641004320826349773002015833482069615461820115071386686476361168599895894303043929439648538139860298402029267597331991254365026959278982302436065672122272466586326161078947703968061718059180607389304491054669482471006323356801926530151395470140310189484560915641166509598182987778958796043507046625636129649644782975194158481594028314243589011855084453351699584460415722759063181717159990174924958611925517881187207457162641008396765582863959159330016436498220987813285505644141637202681361263171358213975518973555884728497930773295985592711454184259783455552778130994284631064326897183754270786942674828013192659585551117817046773276149124116636588681125270458736636844773891002032504249929569856364080287648135523912440388381382123487770071977558593347186435832550553193513553997344557680810359192782924392787732606908757914584666030900816206495544535552134703277658844448732089129410320046414603340128723245682457659455125378345657232086305390192158369366244339292986299839843105866407265775629926983045494032396545401239634229624825689577491913156605801646483779131568694940653989114017739059698929160616588201687123966562772816436342751931256085677607250524037025537034372418089267676159808644571256790098774881688539734563772681445348396325361386293110194280903295972389899299505570298284197848866910759515571662159317270250092654056293969866174263328164381983941612289991212270290823040184163063655332661817964816217203459937176146214183165223566668288517149646614646564358120127464831604982341127488903175731506716223588099607594971426827308076675019296344721991151750891438361466887612666853614345395117361253100533721333278772315296508496768315574058698038966009356983822842839946397384766870704726942338489888315794786874226943249086618147060152995868906530555878602701182692515532956621143582617087780570934699724381282574249089530736004087737504570865368367274980443373428814886469675422277683540785335565502827172235241629107247776023343054696424129395651207595421522227474798473037546124444929910734829246679232938533381909052365084106644350764325857434437702113589911338518940603731970501612827219666035746342080695838158527377148125366868663190829951716829359964390565554502678397771487441881140981383420842549932472230900811776343733969696556673311112899023402760688749974161333249228588977870709957179179906580904004350064943049334337338937898096573416458229365226509948555411168867705536276472421951046083826706821891270373263429919211614013680811692543822803400699118622042029370456686821098066873360325518568254083875950780993720736270842965210481518551719314521066920003079656948357941427962344726103249878168272225886009709490642688064245002283703634545995692287296854339999676475224987613274909108926593173291690717251399191554571992087015201860643462735134778411574993791160238370672826947930128541103543694996511841585733339963995720730596347618060494453756825794823432856754363726980426851258928203593724648831152975502761640312688246450371430377392348416497007661065028819556603535805575933113701019214776251826086894053459196030220914218130329806607072811187927424259492029196966344818491769819393497682572924392543727472554095785973635020746946608041290854004013520158922018675766238309657961218819903996533666367738877398428828707339428992840715654325814328475773179365854020315909581141763335845159564127847089004261930770073972317580108293498720211035887533085153412882255124715999195602127232504834513295593403129045187014073055839889031320705745953781580144734046087022291612823823675401991912621785462574503839564191008055113366600974651627649590650369420150113570454261011690210759914192965551486531241733913206027498245846211381083873340364796178189623632404417408532180143094072183984757563563610247131895970988905680282463342146066747057471613695436727305985312330818088530740041000124719844489342035659838923600609369096519389721914903318450789585060130212655095562628475032603000128626686800742780515336223694407312605942016656244723478068188423313404007411890801401526047422527980979758363830454803282153029265716561490246144323822390034206402839555042995126919800897002772163346711049424880472410868782643132844720584633101894206327262133240479851621329403034349201002927655271746340583413474072029808474298266548462938192233306432060137975909721158640981798038736767561575125038769547828770200545618185240342331149295887676310099256951070756832574046919134830364168434882735790540359027549130278751904493258758472462186276690087736702323551827418821030209387686690745231477509817407278978353172099984283025174594218035136378366029126115183434865180318419359266408552916841211210149945441620574831484088346695558217539110354756121779771646908047358192335593522950159436880214360572473401884841602468455964371574462031785513834518559491681270426584822453167699851671076523882095563227242499894196645915935995470054924861575027660760502901026751232503233725236831510065738482822707538526820441238284740556568873402505721603099330052140478874347588005598864530935148115266401727069967667052195697791001694491488846149422937832247412776394141649080844459284249814833190953412068465147866484742240338319210979650730562676528706524630982324287317800648092832176471051970148219701249086683077969867275074088712443190268778580357521586406692942920556351454923548805288065340612509825949489112875397154444980170773215180988337535332922597802062270338020683823806443284679738473416765421868411994416308219176563242993498987704579186414100062051454059472959611809455733829862771864885704003996992439738140178054494465854771557133399329312797600030809826105453578772727978395392222762010226800679831356883797731331271463751753136587642748681197793962501403440338076926039536792883073243777853719920179221821297655173761627900453524275306638403857218504000652421257157857614959140979160554766912607299584995251504088546770313961304273191606612345050427837315910057975651361469150369137511394123065483283139056302417804128663178313341962246688279957781159227087042252693201218550384219850690404223726259383253933303923413291647318146839250224912792612791315968330389357479712032639329353899989853568737092646143736833563170317948545897200453376050418412654519190703075736915607828224086698948183099190640243736631032217956184136434735713335635114577222750589757264630545295423303012066411665490365240956416326612336040028184800021812882255488553110909520673322901896386157182072529394103901305771769373447558040640334034651190552663847639335172327400809825418829837702194165751847820597136825055836320085848819741434348387655499808849419461364671071058580578104187613249110142956768752953737582609849236381226778352061349665000728730064917203650645994283474844931979879632717938675629318816680533022405150544055411987939090499925957129201295807735599836149803932499021026481442258176833790656599017618695180638590878308528609855539569142176873361574651171210792208841167760254675621923548307413541284237996894109047329701384423474097694654957721061506729796252864932047904662346336210174509632935071076279615083708602015786069838954993221118631378702378692616455706663203805130082764120778343534428673406421439341995373274146809492948568253455317919914652509701563028649332349235754110987416712221423188661394647658013605510330121268389313504095862967202175318856644895044944656548452664170143335887990826978055246827227420144337558879009588111834788006357660932812031224339224190632118796179148155744348308414039140285739178824451582418017369375334491190212481657069607458184489530320954218072548197703060299681776482859028931527236190621072852597561946994079441700018452819797868885266061137891920155644497451514822283971378834070415554558320160647716825074532902052933971467266889642056095894015337944914545638380676317902653304697358387348669083027373720333147123409085830018936579686076037073079615167520601035326406506618009696218225053150757870464209321054550568477818326435991702719818072226439250211378108306873656595168675520780577330674061546780806688417718937080761051322392854460608424294391167312502980061705669823498464202713782189274145824942734866633014170190160828489032732580251084094583658950777510194043852449561929086122932827035471012947799166472654247713611332584533861508969202642009481299475171924123504806604996427482694673794453411214961792969807810207142158578486165487055836934103335865043856785537906765853301367109433231322761630181748532227594354389837267120204528167395147168867201871750121220049772016711987164595615218340234893917514257603471354170195277094602820395758134701884120370295683146787946787057845704250368347473259266779197829452404157922885557658422731264197303701352274579227340394088010554213589688676417031651382265641500255816448469294147455911043461407828041573870810027632982305872804776105959424273500267919262479702211368362129780227117522439513118055526337096173745736488918077551494145037242702956013842978545682222073497060998432687925062873327252231719947817063553764252404415801744760043797709320208983440563416613247741601582706645438367733519463082969949479955549489307175390790306839575595608495153447483124235184104117629026434322905696308156188311655224315627310226328222653386333735241791637542769317860730301968538850375572513227990083370455481870276359748876086318271477569874486339895126636660503932951373419012533881940496883589312855389123111292515337658479687741712220926015714047927800477093905577939755161926273343472539211831936623918118924772585929916337678671534969872516384152906245830578412559567227003623553365328096932338326781427297231519244077610649724228066283641395780579345805471707152892444672661803628872217473460342009979841605602794481436975455762448973085086608631964969336405609511552161576728927396186304050215418771010285265545572767870353450829639169973204940822067457378258313002145166365720973091827805062662501401537610663119344122523037322874846827199689731784057014653054904558674688275790185581037418492327278146440660083504111685075078163689623760076649133639330956675128368905312058541220014486765333406596427345268299435754691405125075098721743581658461499687949348691323044348936526273998481949823158513701713773997583255351835866164297042086857059651283448097880615904195875554530751663422959576425334038838321321359378379720271420182655639979892540344118898939058002653885310129034786183872160854373897139610743532627576905026353545228543071721367963368935999576244334084566456073490736708362174567798640831852309863760487584538894890571843735854632322342190551424380496465022408002004576139477712732804657120496762683207737218883288914475500240752467231598649789124242338223395138553967749380514849503720046022112662976414787295184208044350017678063487689614990496326114139203926270621244317977198037810192931660672334053081577543714766098782586317624880002294913325031111522155613087739124579150986487428143394795134543694967849223977208234335152322528943715874512862948415223721707340013083762883174662124160566480014860870823809655866981733006752799084332476961405471841228620502800227212310657684948430065654197612618803682868823281400274088412651599846836498174672300841281682557701587359064317134133115771732883865352570700675996907483444578590231265706578208971153115458671562037524469618675976640112035177128260605774033880160151488972707944821147221812584338877008280707755767553097329643421970404132451038256332039852084238186638049910727110429835325553130488101578705338523269533580057331402416773994472680182300285431139938307342833269227874682984064452662188299321748163380230819646515783983208137181887008249681749070327536900468893238580737176029054470355502772374213116035454830782367019947150756601250122615055649372540845120835733301920224628548984848585294935415170270516539901346072105507807797674277116292725900128282921499645787982749443371008530078209670884498490957741521701261609889218362604922732596954085792116240417019544564249278841413536754910701668367787463783554939325139734112169968896801963425627442594224448344340290380753340771970532340988390246847934775407535600080428355149050739041949201348517079736541356459088616481721702930274763702774946330819880575182207914772267739413420075912314346574966494692060081205761884876095411225270925218936135647557269458912571549010235783123108894177199857408773007491826430327436383995422840293504093500325714636564131560022822050420114143740074539259933140104304578813993747139653670680580843914144689352180884695854813137556724113480694220287157912788052473957880891364799196133376615058532914879647820714079988162949711188966695007687934351180887709920544766047342252102352898406187148693764504110536989933107172573120389908526565150184812069449639708137895353080470681365408179646604847879841415091887760019152111442968901542916592242336708855325858300079786368046730585527936518069568603557085303827618385549862723818021203844540623009008622245525383400188103997594223730705251627776295031905705541414374465943323755184482846503556806382428214480833152862992240486732785083847357495102984327856223901578051061755545153972038562627908912826208500538945481953047751402619768119253006858866491957135153527259899594768321093452412536659199221823344336755762620260145423649558035103103001759227237846420054934371754254492663870390729759815755651421690686441783990584673955675614321148508345401786108465209080757606107422724569675279480264723914825641203344095888753192388087342090873779531143102247476584973870865464758173150146659025654802759204505200951398519588088406438303723833804656041153075301536742168268982240324841733309319895375319649449917773176457342565811597672956676212684712153502786984669826698471713587786177279651198269986194588034676535225914068207173912913772647849003647456831621393779240670518773668870603603513056438269864708848402211971548900067892143870437019208002656405892470548745894177499936613936484047626811156992929057708484981742593436335959732550017589231435860614074652884354893002474410115727881604039152939406873026490769149336311097791210394588252385184483743429616675350429693883271236150160268661825412461183061492690891245683575989604493151198428675492006014558828705683562600088037770441030593418514557421988168723059188031907335664524156538010261929182269832376999988845689478736802728442425005860824610474547634803687381303101441034224380506553009545458936843388253577097132536620990553698847866145751394264900293731012900726742673316943060997873439346248526410740106239699396614378011262885684853531939362491577871728374249863687332419075786050434805028679719544592556348539339132077949562493662039468149049374435607008845971894025807360848911977138806761975353192119438340532286835534628217914403654713950199784331878531523523374858705002926906879729454923666629870565553164989673276446998999099549488694598395319459512504835176691808917007395662717000211167215113107193359092628570142800326359970580958422843695233216557242449491841096492189778331411652279239561448859895756588272852757254366737685077480096979231775881966249951523735411505788663695797884173854374826432474271606825182099460786561380444579811486453302901305995854613071221312704038118118454809715153234609992365551487802245180597787448690726497645422786108069058856633249091144611737591042639045721473519588053843371913571513560103616540924942172292320718034761302602093610037366613414871169918468772420464189072354225819822738117164098718229772992118422518154225216730851481668219054232230106475361048920967771974544459621455150896024902126018372679945250254103231307894617426604396073936727603219422714763150804449765459455232345528065221715314311020916293483180325753891769990213424309041949951530624501998174108529762052071319223369513318696216347522587682165235428482593727267737253626291148443451221446332738733465371052531356160442477087035818075951740977613969774774818375675096974305175285720778559843220186001295520444265334608612396781185378913978988378837700929889913267491776364459967990568210144034754649128553195634109766024301667318550027656174941740452492933953496017817840234329641100658299691291039510737082453155528706901647470043229234845935812046004463821452345669207142377262696384166147834690191761277885518780226919638145581414358409202957374175608475952228540308996174897926785524367754530701301964479584167803475475729228331668352928026012739822221051476599270276063090789231193847850361364712404751644588028762123494561003294127896082683783046227408050950210076599425766824109367901346530100995254618003317296150031267769542040161620635507776104942013986244610886699227719910257120967453627818134226237519598567933270302669921462643974932510082310084599141429693339233279605423670588878310049710376392143240110868724433902205461785326663497980553449926391568670018315813547813164921498774846069664915904061772964182407620138227983826082270281500170069880022277926020629949910983670471430155898490731604803903835089086397389426782451948390306941787303876436170672345143700263245557902266050005841640099721750865232552629653845794573878135181438906939130463206789668800675573863473435438475601829244281378743156921956553033258659887826086829999728401736712810748855768656590709338011472351692523635994867078278445600298118909216626301959893488984422968119808120378285016921750360476506460005895118121327924983982598116841342149321717727063606548636281312050530325655702028976127061235586539888042121211912665225919202847310804339052229751652087071629977080321225121356766763375817420937279942444660614654822919763459467050631142614170261719327894615895686008154430994542324771087140268673751300182860287279432635755556865239410412744351412335600540345921655581408752924203078672259995050790849428207990494839081350017737024960739888502471596192971450243692066529823684876198447774754054032018633037502660305136562584148050839727355402743112467141213631254600139619194251179369842029500349818450902717820054201599645280346707613123047782648506865862194508259560624408465238875855411825246327415966973857319312707454377545177620789432963550984313221928121350393883943429674856163820791443877214562392043978631661554738765878484748212492612159474216777907562535993850974416402941837244770341136785853546341184672109236928747936572939128520006371323687156830649388797760843728479478797095355573809365059602652198301537792209494973446309943580376396087296471584453895557294354760819525185425677707619143479921651674718426934220874049971261403862365770213893863463134822251503130500425343162628194774759966135692314857298945416130956544948374407875465653464432066374768330388148899502311876084837923002177056456167510382958795473887503361828039411029197412122029371261759203593014504853742137574401327964495524307577345711093902828881412246875916069195525860708871625538022522759718207900701323393411449278386872672344683935691520538515028691669949510879561494826464143098265625157963634866009720208389588393386802207495376325105536849808427251588007847521841521459706646407413842567248087814971013275961639904799572735035294856705470817284241596466207112808681863990313659035358527666430735786064818531438438617101143406064647484481819793389013469010970500394993249885229683560466410784329626888780055649446093957498519265330668967285606254359858982833558771733291508433748541320059094738602130170869564811663737422390449601291222468336808076318927724044056663516293833486343858217118881335608246954945537744555784681403767461016317997501286162043988100479820570392066765875285770494304756660217485801813116334211902532836605179727501796120321614275400467661074270960253481523952587713666362633346869008530590223577428681012894416456675295312857667626393944137528574950931131219785984911662581454175203675313172780757830870051242020006683673341980969491652619837626045774460044026870075010346538180919738738591197066220103008930970732272791967284739818140201889828204720029942054971207550317314047024395361876412020223492457077543453022055690947346627526779051055129037694869962026273026482309345743593452367898540127174879709353782161022649888860728634597785957215309421155183470792389529998297068475990201441053966085649609605118474300512733558663047172920088834623305510165821137927144511391257225224357450297522345159924038758541558830686759507355066524104711807929600763733469317514478700750601386622515143263725854535570160770532274353099856706324897411524598587800208333741566165411552568633007298126989678058871449329771769118174040331779797249845903318310884382814053573122004682423294221894006481180720901949809387381580768857836334228618365761907237636154062344498671269868438370193220247233039057509687859120424206872611317486309528576780183895940288067780077597800811085728274004182844644156392982107594920401324660807617087024148771583608743535777981100369695507462969915027521713869454314700790775688073370764277125582585244512596576743542468170207596346443523732549416207061810900819752766432918518813299648761351309398921156787517720606839470847683310605286368712923138831133321051772398668370886363237162765425095084740627364329590018942192900122368544338932407099671060292709417856266208924296852105940375151790041541854165576892389149172588781521417616266041489289748490750569759284794069357800600699009083649144915152287719463046233445124629923108340151713448122267872049877223441570378801082313779841564923455645133557643088299405406355320805906936617571066711269952713249391522383508405419853062362304016285506025560122650129389925190137916638404646361539144792856049616572181999256222485500046629866960600026088821398333741956598712106511339845706816129336495992718704948361709454234127308874941747577325751090305952005861668758579915176788430365757829883418304259650444734400479026995076777596883722568685480801870152946956149594140069663124372334848719391372146984821245438228734475254851823846430366815627354787734469332238558683681260847114326328505988175044414279148906204949848038784749143826887100179774180540122226070893885441347470112610000296768147566378118322476412987085508082749860003337381674267093140003599013185394433958737535505969349598949693328110080365664621746106304506145199653072967949086942850336397752795755018447485339938142836138295970292991338001444749573160079983934265170829968632535950597009925676885493288872995075592113848901649566423182281845009269848542608091327631858479261055832474654793436166290113441005877814247580743126890345953881778462342700305020100080969453273418484677624710292594268721184953313718949142597282235171104049534171215812564478867353710267105009456722541866633908318731422267028732011431235491977336325863387722985198778009098857903063570456838145435308592933113394666924205762552221038918805338514431328568377612666437078511194115882004826188464772676308693704951777527375337805039411013426555825263533576284803680262474812154496581938584098298836359990393777129387889389062870551776547470908681174983270939503256652667413582996776757792172107251304452985660923008440032202290477860110222684697781174398175693448698235180175002430853847455715382509892451191021041326449555747968666800622968163542077697853952756592081747269026507611329724416506949756785807760133673518802072346308909473358332210246145318311780750113907162772749417514529315323878174026701933258479719573296967997250521159274753226139516080688514382579654150730745437946565605370633159061788542144919297381221421080551724023786686572209119275905373376378499201116590482717724583180183485205008463604181807042681637461138126395682908261384484485701662764236789245049319587747823981482774601550391891133427498822337452426967409078174810379860357757468596215697668850910986152476452589786872736008900638096942096770558443153110557217017733420744840543713586167065055909945083664671974344243816120318500175300792819540137372869455924696237474094016467597793726982560571094675427137409391085708634099428279121008899068859152416526515756918493685116247346941462671574652963067572754229323223606759657712212834448225220616911618507782201477730218570973602266960768567470794268527627271682009605209684943721607252272698139780217083994064987788480325788118965387952703999131769213751188491375165955629592629065202213423282217064157465698466172987409003567638887838588250645250454462493058696430928271571261150885264445042823167652817530834793368194251589647377041020812380935666967603315226438534956373945521828452709744940344045828611841596637181053163860972692642040729941398650413947695454602711786498006168077002408204340240993288415405417087962701130464909864358827881827171721769040328041404728303630037526109226482451479194011748654938347383591889878447710835261567521335401256671044423651727539440837725899914952515001403265119503393272014697325645351425928827150517562040887755298502074720189062647150896657456168712991208514623079869223812993598521152647225971579194883004851483898408440618168068034693871933056057698701956356861909998317081807650392125426041127618445598977603155590043510557126219147650884261950940682505992884641973530285128717767214462500417826324620375294493672773115785763038924362718302862275154004579150798869820785753584630967193916232035513919571391566332936178422965041896911808212008064505752461680150992071430044830568539461236578633083097953591938280040657778609709653216294878154054395636705241872988356054855881790236980025516977736836634358616695995450869576320002997256308473484733735142358110320217245446601328368451762304714349089406668512004468351475085966586670230024185208640642814346757493949005195029890935715184258238968611756317068233635008740372186900363965270089791487797588244772365584914370359948354782999663502716991129227860271458025028443602735256112666699149792640707450539875363884292942263560611538490880927708650367416878383772516291924163596771123174993147529371291348491809795963655724094353817578286076363846222513319421285201575211884478907150592586565596796484479171142229234647839794983653237900748545306256109695444556393475191384815127429105574756083138410324267564086546098445427719462927729402589289642752808037561790002727760974294570865863611428199585222183442691080047391852232688528238410666789104763032516046778482622590889619227746074287760057889811530420141003405666179671512398814885927136861551949255665652405279258817344787620533816681002478573079457885982362764037930339884217600216208146654367605097413650343317243521429471138936375125375079490602711699800569272441149546178142317847633157630447718957223342911224059562920732756376422730308393422217449479256467409104432350197153471317923257378569703425864803092492627901471500175649958352501345132753853212946565571258045010134545352701506928906249030052864185797487513508429284276235157565734652172048624482314581924312364406397730773658364205091000085917993214779196689484691872054508903686020842457592475299717547787978381756569720682241893935293073308699350046337394548344059813150776092942221375338787869564473562731614809869508516843290653071960329619752446695096517744465293849987549494381544827188364541684105453828979096694896622326895065283782822725829191320266087082648084803973665976878007359120545297236259679419395006147490268477570461597086764674975221696312926608704310439717422786090318873391748109228036075079034959573656998377247074352698942384822543197491362500084947942209722273869685740097108526642868205085490453606349430347181263291480706353621646928503802581361612314786089460885796129545954345680101975774996461906041169234833853994164227309610390125057206262460853420172313530003340958108825573215696643083059833292070756734013238005884974738982329268167794771067996503189647736357198921920954399867301447847231257874067049172064681208571006558716058711670117877142211979803346196773414721353502366339039157726338182169580800180552899795604448980652454764908157419224536832489818563223844005916702968007285814272795864040903154087688649400826617108694358268362756071701976887381282434527872699773051333005291986650125924894121192996234175567291579942036137092808152842173532094527204318459991163085831959272308034889360185612709401623112865359340811662417478539723979122780900432974160159563265750156521253809066071419872909807475086565732795820682567260469717848172005577277035054540850473484524452774792216147576286522772492202725722627984656693794421474293804474463124115091399348728033319760439775111373365957028019117453615127203023921461696644706858488585591588428559124974966423775541700308846001681084185001080476746249873978020346595629329347502799927546658679295696926038850206122774193170373336640302264529204658790684486779423899291386679286078951959037316491577821972105606006222342888653170169052506469051366417473442254842421525155368121603832426999097499702842977493551285466116703492974123565068792524406950504981392038347980602525276371882366827143392362002763854117694823348718365098633226163457646371552484824518362811352887614026216958505208404628900359588964352847140031809015343195665697699021690518566254640923979454729875835763524717404846611954453534345736904935419334139987503240054380167749069820682828955668860872578570245739439928343313718771610088021311262028504917299704350220028273322576879588593495197817522720322257591637204124214573326660109476657580603609246361645322101735690946999148226844649534225761937229370231317689993849709454443484410674098640379005396281942558956031044869948915250170786977435232904236884784921791096380342580114773710442973527639194790425689745979732955024919832393520347840939608642013935265691141751976278103017150633641495681276121017237653773382376565518282921589696782967379849853106230832047528625173949793932860352435048105755697473418465796985599313032594613771116387878392608253861332866074119673951420524130865665832915752962864161440258289765102531255615464536137655885442465174070925218805122673758092704631079168453127665374387970826469682078170375463312843200963318128909002905832809531922589491055289154610289957913980089213950985058453059450845565858878886641916684951932428928332411863544134420709184817074158760392497773545558923795004231861719563637353388123340682849724159787476717204542655671425010014419997723466789820387527275397195734840494940891567122960507445062675320882567803999931863539549590543795558163871833647979891105182102888887064742188334252618694205979906119623765209841554219999224070894291834526794053177861971891224009349104647211828994528830060426443888467371726329917074424284767855874998180659825986473483509487857508110615527243104903317142751893736750476348962175483148698373508933771754820015401719016958922128381392399734571785953455036335708601882798874162296974491242082760697129747551168978188985469265707872872505219504473006463715059427481069685920428186360451237482455845801951202147129704015220841443460966165128206823402272810245419133779982243643499376516062169440384183382151187016222341375830491939224572173021172397698736166151259247788999332434564217248109193915220495054859724042049395018283139279806849500633515093577046143825869353594297672873181675929777590914914537865724175383653749494628379086491438884411783857252707671367922342923287127756079306221533977543185854643762757439045330396006290031864036145056905980281218137962880989210277410994502692326240735742628279278866066360689539487034827089649367442936820864258440285273743424412649086196811167384271883291414249200844632025093456389945127731674339107448638795330239316001412440645836288650468636776166131412989234209696670020709974370221041774995646656665325561965453570261875849545495340042781130140613435075096408213228779504078087339730683856621412811432245017742354351878683229956604314734785670083871592807396911964533747267046559868440386871298988563224317268342865502627035445138687242209698766530178973407450583630989164682264783622007808425342396037786396389780932178114499653416887763591400430939138310323860490000557116378291734297220967268542671233073339862861436813246454896495526874256356812828134076640004597848465765398117972313425677423650919308849993282516438294386684898308363397355187327319826970041483817479025709771321274886412388234019591075834471445794188648578369843163416549074230303052668221972593239728602022257021718853391607983767814022998487747910839752986433870891187848787326949882721655694978741568689755945606694612102767984882542398263946086954667809133874939356423798892897572637850033310145626449659332674568524158733457974691458242557738146534974360984560481953159961169491070179500717293499402270504121758692253037057681828774398651415979755396877330561049673128173846766121856914356023848684549462296954483300811856147308351422807700245361387477724025489799011252704401623180255991801179569480581700648408870294146560330667734182683825864672937546449822501875086571427824684280832298483193257683631548763258453941555020415389537807485840037533443404064454125387325659146969589746502605378347597810100233306977926221239912438034511106027820709483597473735263093698680191958708144375971816232400055528736983506115002044899578465212635781777921573415243035742430367163063199772325058354384585770281318818863359635414920934440644762849495497976233758995952126234611705300567729134359300282271412752239414481134596564469971460118056356698984035414612943294112118607679349306779019881588606579269755429257486167332929130435462556375633742345956836428548896072236256758063310249059359491113146042990912546404366196192837817268813306308188967396071801584068803288419753265818047565108915605385962366323611722725643043316046892708439133098338780190840889488170192855053745228114635109360524544725091395292100742771960586281733356589432030390471787108513811836247015511218625424817764839147814362042270627663898108965846378027217950010979255633882987675623184406357486986725561107696626306772144538639999310439531880575542481030964030849841788479631745379816227098695216880348261552521912743305524910234620573380767683120020065022951132723575596530232025420334643135011186469080753999293357156213227990917810428899802153599593867009945110367177616345625390068074882403285682834268671424674452515218277485836272327055230727122466756466068518289594801741470842114253635587506315046528323905703526952529639653506599184647253275009864557171261593024920234480480723324540603563075411143876716133274170116646142854834225895933753092967228812164607022231897349653338334815166053177823173101953974772213491865387793504664052051730292045566875479326870425912232367005093373508845025353231528545810371388360062849203124278208733928494437886962727282061968063040442564406065682174206433595144280161097135084976956405704545929818666291696382039073495486367980302754581649822189775556080498014569484518208693680500576673150994324327935450414113568521775484144456769555973581767584720284503050599240209456719450267635646740540154136115661889021173679055325639987451683371071728369511718288725555532792090607642339497175988752179348962249184185957119832809576281778121613418306463999086400485628184772921157815169471230670990464015380110697247286902276402244817930101202728550939987566530961112153992932193622493753399716464700627364972369366716112677109281098996156561898803821906435494677937056235654341715058333925727805882293081597049726056970360149087952318569204209270947411567059825021302659861228041190676583270197335962224408814225666862773447980406901026152738428201315329627117817852579712878223015647224627471922464389668904453160431653476821650544733862134134309507206122958246185139272742279564275522099635363010352419665640593702407841327003403327661682878984668564388174624176511252854348575054911459372978055716930029369963959463928458232375117404037061164019498030799128791900283763897412695516211170296872216026989906589572499052023757030200018969710596737028747903355354841579921887989408788253604517584638736032667103261740079753787411624619679881384642740409205221115041659596539610458791171419136419915960860329769557187588731817399504931011639510796875988431865126794510696566333171746694309902306476944225556406701693750350758139620638684264937404978818188090901720864812656141100366314905274466733794880870507333013445847409632641727114687318286035156798143139954415050253425163653397470008146499387943623636677497843074412296416182808281336560764523812004880198726903723003137208258439488615174877210985715250661670053994198195309122209452064739759395231700378265161061982120405208596863327621681119746079090958714566195111750777171977281532416913507091474009221241608920668012882657914182035136042784263777150007928978216478930451881231259907250913610558280144379662977841144545452572835409336213750693843669010929214689739860970975731262397193598267973887786783325248055468102200476041972165146648862407890073700337852840755880260306524600902078036248582707703837428622417825198902988523236700235821593012430312723786524913359416636951614124454192491546889086687415360668797516851481446620078765649827208341277626100787211090939767669686543506181027214703063824553901314107191090481568222601587263850349506528841360084161027596662275691883449424337171900112632523590076292430367372010386260914427292531082293274822366373444346202487059019110489689450150794480827792382476793078713448868589718204800569150439562690665849055748527029779275743486796295654857743148859402574639873440018751625120394660241043447550940790828608883122548261651540916145398179805012960785563293620692897313114570336474651801884654298511844740199810139351053321857066451279977851336878233138373871383920852320418747223897720223592748963116370779824020223105144937345597517969670484187551444489569602804630047855836521465439800663513032604591414241129111817814639283382676239790902478084288924764059197123823096838290870210530332661409582884075917019294016046236758684576656195805997030750282148506819578380293210699860797724069700455702110164409824602702609949639981931126659989965091363493983179426135654864854571951028154262363446003423674112475788229774886824703684553609619326242377211973549434070636888747147452665884607537989024096627396828321586773991989120946888593801281417456314608592113054890892553841114490503496881608236389958391773161007211770989212318325869215069438787602713215168008549498756276286511146358970997204650656865157788294076524336057691808388664027051110484004146097718576662999300031938103875817626920083444313627931153581184069199440520828603780631093502256580908572661522768478953277687961920734450355999000827773841292921138176556237096454289705883979872792814596016837454049317576693478676575863635548808570916117413868826022717424478120150123329893445400839165469474048902895550081011401469725744385176919442332125513827686025343092296703200581011566325991941309445251865070849293019412536089542600626881202458331316426169517540757415307651211149136632140158404616538491230272900430576097961627019958143190051873721517534860861954249894586079768409193496364022220948768744020198823122285893244465593521194837934222389946345274851611271953063419285688995070661403010502591960747366014971922625843128309576494644960378272837597092080151369410081393492444699781252136563337310670441430612989812839432286774034132215338390992790043148263595907951173428273443222098466885779730254541886530191513824861076733839371533055042349924090542786874120562631528871497211353300468704864183578274780921897682951185587607778831941558886969177924947995027587195290871124293774870534477939876027773576458745090624326602144234964484823134458412310436001083831301139621984408404342017637400006177829372190204474333294868739065569251596350404171301975896828001971194870320038146239087044200739790638126951467310270121755151642752828322739455673841750467553323679479865966669977218027436906461037650267993753163131473020622447991911925349191662591113271027523599711986285654670465624313271519014676808368209424616198847676050836891848789556049600077694355861765588648234995861496186901712998922329338584144429489249882790279772343527695845797785819778562947086168491565329770385958810192675914459267180597961023607735278955042469285519755068128797452390528481640901649018297977320271069987875115645342380487835730237637755726699571893150876374911433662457237571663740255884686872732139135384431233625506403692853281339264841947817694283022223071555555831434471210869803907365334707681863776125466749987997986355092367793364179772754655850140118028364731927438207657827874253046503531341070854493415947060240599854558173856990835979223406733911225412894221493667822714693869631134483813761880853061790016382499754711878854646971599972870762912763260071308424685517596955849488240357109945841857246305819048517704653622696768106073137307799641849797775283523992746785110672073761883812065298185049838932115215990395151358200474466585332171382933551782515062013461028940371418431443850015445210397620578412050755310529276736680887975413662529158266666367623555971801769716402226538448605932493269309545704304399638312793534976580683585207067220548121337513769094598528447232314538309058418314792828317405264496607654790507780234523132476013030162202640648215476368064176341747745960136906065525856408287062484098751721966664534632453764754293267614485958037066250725914961454545349295889431713842269849024575422456297121253189598089327912429489913741248172017384159878421180383145246396825102686619225296914286689233047947701813244828554356446964669369319654866433752793425351245466358708174310158270903441552448440511780793093637085756693325473970580271005705930606396945340497903758670967509113012677250946589168703809872935300806747801725814858843816046497844178933487603608730934396455034550653674682787147520901495638253928326053572935106990047973738086323435987995621061045137205854147827248459964224960260971073206358183576369314854225991314289709625821544607378145118815187442039139251744012332260762658362644548870531819805175618845412139285570439437073449624753622873893179037191979062133484035394945627855395208647806292779068987812182359384594578427287901194293013712460802106330859490511276499493311506532750200088484204155395146074131956994359748806211178169959898765397886505931393134762094473923912949566291625997810365828082956794127268846231388079213167176183531891699533791787350549595359827101066236105598302084558448178098941228627812440738947206129369174883491823801097438727692575410331511412639828595111528662489572510145026546585368742534714945384357680716694403325406175542008072024240437684708985596067685687036447484886630048260175841661411828918152774949171452509083896278166511625193640543733378034070536679722522651298295717383610634413353644014077349160398098541009577271790801227185251037380882344527013971094753165209974521106625059948593947031892465564226319088994989926206783960418831657024837449079126715808774412279147530828281017838108089845431180575813665950974515919331594129116237630955121508004548368155561559013966424525959440489982637637182726881421985207155051482468113401545617081358601754874954843510181784758244107082832433781025673495196859695519038231932035774194455313335271520186489284194821881855461564774734671302189907006681332089265321719469055073703408341939875737696797923595713058514603305892041299207776972807201212310026783527602035487388411390264600810513484546913627338754519535710614496514239230541398920647421093577250208018531951571969615123557791410197146847327665284570634885132724920650804315896942054030126255810293061864958158719043785388992125222640874118684418868112895420247494977909201530602395210477998698416159911992441992101738714967069166364000339674540447606740732418821102773550243940195709763771847804780048923727765083200116608138617498545945631715591080034045389152225867836605989298194556321891862206667974000571518114931298476414234072888478470936267275283236633187176151710362961609305326725378965053997727325691789025841879381068453494849983835664696336744258607589974162374500406465939482877104759472709009242992835597324185418094850102945071232810694304077626848951669725904320796519746903970442012695156165163788147478265608473954083498145285994757617571696809051624061285736544883077619248290695318016531567390323189765807675298474172411833990503188095263104297730633619579555194867862496422931787348647224251839336397121435632069186391447260203919995520190336853695016625615643074119315615483736806455561088850834472123681106010444246288133448970916566158033797219758592053105686443895343411362583977890655370148256495299367493903355124895909305959965339298701548924645169947958809038036400658603349039119498244174590546278462582268453717005234065678508127129891457739653159816601891575849803517500231198525600065730033436957694484446674001657414813408828318550303934596693124754161319468162505182535758831048942895496922254502010061510445214590230388969682863493086754659702452362612076988506214758154883887456597915729509690746161879604282592159986106754530663082679806406660252016355776075317483399036124869082637874767545055335868494493665880576784682912834415717764796726392128943659707509272657484881739639989328679451324489406295793825169643018697874345218310221900603437642200050682934573022304815436286044402105629236117376522863861542832911641853550245159015308769472922411516522130292542447590701118671084443826164460526071638451156517294520974513282991888009199377659831160408426270980937471782889170074709903706981374646460685900997048784999799854899978850944765079575694500499099177404563733538813958042785745371551057135870153599458877733703933498588191859652682374468149838504409461448779333847462257983450920373877717466139652927124768475326886469773564141721052409168340598738823582076902757716572712290419942348163178017682126463226554405299402957635550673890035405653570804334926942719237231718997832490041020347080418897199252620114724600168067742635735757671094172385451588440939800802294559854760677867763728931434606388340749900780512242648517516082745707239256022099498789754644796792738245881803200388550481644553934940592301973376920864160409595093165918575420689248869968660559430195374329702780330962175831063149654773297978519993924157462084821940331428701385209180738839007862412573683626772660209299055278729390818093812509148623953510426950672313659226465853813013300304919610387748671806973156146187401626984287208248124462548483583191361921461651570495393304080312506081837456933069957266779201713998933904643853795478544488767422595049140598842699285460058279509157304165642943151348302165366626564011266573346645992073496548205158322298894059178501727491236010464183929390209698372856140293966318473992353236136721575510108390187899383708220006984015011895806527002859591266479701708325449146838255371030700789901904029412308842373245849919264191265713972495430786055600234374163287792097511279565527936476008429555362802479812846998460607976756816690733910664790569321859980920992548229233930033290380956662107342632363507559840212815591542032145737440036857449869617467356843554038367212277758083556245825198039699480726337099755302320200963134329914571830985267015161102198292942987976967013315985492968788732339098611438172903037324438391968326986353675677038326271918162714523880876151999066455443485409182284982354160092173385794850554514740111001730764287381634880456518696685400288484989315576717625842226204475150229578521367847774202410318839451539283865484406483611081417727849434409607803883555407872227101360453619480855923457913075280722382973628222558139489376316674169977378879505477995709877734742151489820098503117379036014174481274522432677201095644999547219328255004634448082934232740964053086881549607682731836129067316354468230381580820325711942454400670045688426128518308133727944022323816990962844767400407885751750988210956912799510549148837438325218639532309316802604210174407695645986044275129866812917418425146614985977107948992515595318596127533746539221755312573110481256683541695372451171044382414086188909292534716286258926688416170598646603596259966320412215513214976033181729904456360491639642266364437984446942598591745178204352223596663553671758081823611991700764975780107867752243061640098565263515701302618253661835235195503170941560987814986807274813415148150338296321119621013647803806040634874925157747024003660434363698997565497120594235229446358691308464531033237473680969546070060782885808041304835375821640257650540320231426075772611102826260908755705110528168169825445208581946540608371508347585415524251278511578612337399701797573848128007594051512788467723737506518601667009958988563020216419144075846693792541313910413325551059240287087728720086147109496343844675379733983649665499680133358503928095015198951858015947125015807034299200277076247334331316890275787386245149341031665711088085307260626548677264238172386183167681744639935823083895351930454170548719840677583327648347277873083131494260523162739091479720581910387307965557068994801365559986702942804132249772166913982146193353592906922938756420948239237214668299782931443204792358042314750864467127995883587817485052768776991873284268932980912593158602859970763149465771601808364002357710245265219917599009176821127398878281937724150010495097747004886800255885444389289164794873281856614173931339416715535916476293544219628488256071998596466707079142181379812718121313254669815840979655358416067374370089889201946723213134037655969453845963288640263686395965875366786413854584277606980851798327611052033721402366158270371690397499578571149807124817119729153438571231365389207104587865552958511909562964175659092055025260594520737441023672261226176279518704904692572427589093914923089748943225042232667451977036712258353732520910716726318461780567031909143783208625599193293181228949079141229953931513371355427167309871229585827197773402957788537371316892147294974179301722167496437388998175032961603551111640684431526139162649456924798233584284891114633985091534350632985517446737354465452124886759889191774963166928200688362885399607480070918277850716520601578005113834182476297985190110402379727309386996346193590831118549110474930504737462626341630512602884634831648394746784320901334133154482592582869277966318258259629243689658924049000921283287599649558452769996265533335881881619143845194633655892530957089364417631959166471988669784599219598117390788661059626333119285505927450129259213659154369931510477782046110687566214698756858487970027657471715895662385100488366108568855160275070069346194147098024086498928998256013310819382675625598416402200276500334035190492405789963721449284861096136307310641866383286878960658051001819418300990202387146705061135700293776604477444468228034708667454811679736999694444395769680384297598199546556171688239420648047171382036216479318510322116653764897901539667075182246124842233982520997103053657551044423205238734810460053384160574190476816240349134056677146318553468478285663449429599812354228257244045595866988562298974398312453085265939106167029181177767064351152174834614860708678680249978940277933558736266440872654937292150598730521709043270846586723030481726769968398718536746833786709897546767508882210467757976964274374801336829206674589458873174402311447285568695452415527565743396335251012649464478484917049610303063273050127479970329328355845325134674586805564632620751111448694069141087509936008650829569820772793551107752512012241615101657530637364463928706519051678752455953175151377282892979578012177123872918420623546964602315413193905940976148043401475192317574313451682161021225077434018055248088018517265259429665753438289638413980359863761125253419292139831584401903414742743750498683179940691081813548074281946710382566401926484763744055848596996800465420373074353967933008668730644820524399530295744426081379921509881594890198608429656833611693213200520060551567546745530374545763716553492864940941152988856217573199241428796114962587401012441595784461423456520811646860037929456075470485311366388380664786935250292210544424769960345907501133657378120786365576990125775790463261038317751002253144861648696667071504995686046764956930970212664819557645058581073915656670932285531593009501874054173917378420740221855597356473269448657108625545926334451682577507342151347548996107750702195139171886189658669310304802241973973878394942149968901388799612677470876321597988067089452108192848115927120520099230910449720086231276193550510648609896639252129863305426147536050769389267739851406199209617228619059644383889044010188388651791140699610300683705193921832841998869223634767472021441012910716827571989942085523198392796080459611507284209138011281023163211732202393988890880512666800821818285915373908069646181757095882773568034744699133787450942345287495945323255333511513428673762701850772519509631442304950845648211123728267139421938616788738489526328654458062108137142469589334239037238627682690802796217357794460698794682713765423748735227109204917272978587933477507323393051309822281131119935720364316116008266679792303763316900771622752353057521566188757141655168636861567256935580429363012231441135478237012789173160742927420836509859274080251374987444638855988352274786473599862508575959640258149777383072561504229622337070618709490637999911442056537431384122146609791369903482697412450552935382351189984865226666441370132125697699159476188815316062431295627339726302981918532628096323648155872303693640249529840256608574227822910498937752672173341225778961027571043966033833952987551045519472399199709512018995838714928186549312573889800181269459212761688432051984633937602392781124697535929188512424313436768544386889360466073297811732506689917164511307930055057031572804008880502166036443846482617774261420167773014372298622664094509137947444051116611175870195287572703624026899077930799797196890195802666070843403396010108620615236471899245393161831248689210425331061652908394525988726089613899090849986500824438761612860391588294682285199490739146953561581652528567894148794375364161830146207073855448658557392312917790232235221341584829117891779672590312094579487904721962573765206862349841283108192547875336763360325176727653614781101315068095615557252910744508586040266166909989321349630477952935313410827027803961988185930458967750600825173470956504297037408273852509539769298921520642923493832020895968665463314397712399303959983578123418814089807297153982014112004444424446816023369209854756800153707624364890980183734736241223771050222734706719013295353986059795806811536166991231952655580605511238254212713663595147297027582910381789617408403269100683150437098139679556116722643191996223629867112358407718683565108844308367915396843919426938507976314968923139594725855772045699225008800515523618598722299274527973426062147538569256915677494420807278880061756501761018598923725088566228965465110717460649059426394000028889826924654382098409467338180658188754815956185732514212876992940313045099879687321766544318899001245661597322139279837835382757259493764605753988242297008429929100100220009140698367228480940050341137536271439215264077402763443735603594395011010214809173610410524539247150176266682562572594390740037064902205021047073568787950011705725642760565600939243135959699521353333746189237985460073163910133714308271896498816500670897369587044522161951785435098738030727359085119307110714297908279091124223441326927234724593856025743083502677045973967854497708590818464795585581169382904376742899339685501261009949989756149729241547393449625917824709812599086893521350944012994470061639269964440292016610332607724977203566499617531912955580716107046757509987729243238642720448069296446967717908074705698969853420595447851935003678604359381245986847284309469551783977843165260352313758361157233630591019755043484780737426777911104805868367372322866523467759571745162409847331642938728490077615878811500418800233529657886240950213030681467355125808553178375526789997524487233806015861761538470801333935269343394236526957727867664210814267400803936010247144825301036475530267590221173344997270576542376421720564857449923969868957154391114268704228252632778996038975389368921418245644956319759633298484983017870407836216466522364724575705443467797780500621373946750249137626761390017855240829536355749798223148928163607674029695702772218246026832386585795740522119875376742346662531514963457526672483056269410967295718159850764176251487533667224368808526554354270549807972106479708877549060524903416986648187793492007464862698990872967808183384779203349354492265825310692001788194246939449207650593853691802624924022881633860912187266320600130394601697425074246161196570536336603235544280396840181206349873472255086715937957423716088829103435685521838665146903907377613754831561822215591402290008082855168147376691705571319691211900529995914126234869899879407019649803478329269907527619315460626327677521330522236110742180312406668205038105543006698683372426877718237881235325905978751572372701108910044948477838510215338362183363920625164126672290716104584553829676078189729742348760616119974262833643419794644742436973952932304579526956315723274441133065738185370409777741827647948483122450849143066750658968134634785917387990526009610426184412655820826513351298771960251211664730060542362706163332213128068208410841984335156607052528817880187920185230509057337219145316695277290607879659318339035041609022421842287107884182333695682795681119493474210956232717142643088843352466289714426864521264301393239499323438564045688377653715748675818049627084128440622113093150012558421033665876993065133622989351392066151276293662431421806356925281486431493123970813577480886217130493052947396337816908861442234012982798509379734713801371537477059029275523169152945117427611822864902065953249418004921632592350791274892306621025747243924555000785228150702410284044736528779056562277433102665483945020349196748484272377205431263521385981030586517686136251024769910447706336326040825777765733028790194770838275503325292968838979745062168563374541197093086392526151184032321978434280951229630238648162783083991997912983727476249934282082214785481491711357911622080071920871976731225906533575388433326410495531738083891452098102865743139309844096253388254376594784707221624209492061786308448971037469172519799079370138840027174065498403873748123900118922530925132493540675311208835512940420419968214799510823996903260645715583905829990649389064681154049845270133295000785871250566567868205161100112502418271047727671973504146337862421952769811439383309798732719517700009438673485717786057941180114562739826353554312873926809854828285788903423046826105870623023102602688207403053667103272817582978637909922303176288016649112785204707983758522244475319700258377040981244427367826989740727996624439994407576127449825245092818017129834198226610692505190620029668623580564434858833684466626320175472189222087296129517541029717693863191855840887979854039196582798651597036839768269430811672005594260201552482000432693930214984728902311166074435923424207106296397001248087274258762122851097521402264955865052132465135601911279138821858492452156364625482319949188837822472673901741361576315803960291680625715355019605289232777663568534094020276527437573973274286025823623274759140807847572733412747874725732292685610011019503012006119950385028693682616903383496257497767116950795740950349439169973770439498120207613138717952376578179322029540902924697821998143048491125128374645621481558313287564858285279954428751344990677498140473807151637461404771444146566265738716734100017047906215854354037686935800734011385511309176899862866474672212241193342821640716600243901922958469216971544103390345056000302371662726770296740737025668398064551874236427156853842425901773224026139860069034727444213279253526669017784629962051152336974600674404833568594336298917456674006094415904395118177208789228721878768713693297455422731698387668003528891045679837668355825722806005770089476101285695821328267058168035853240083811896064957601480123674716279118467811804567754162414833635502611234210913199581680191845254719502164113538901671580850672909782259467826240662904392199118039297709742650048739517707809212766731001327392079416003448901896145857786344047726278507522418144099201238600931207168835958097112382884319015541958132231863562576269129454780027482993613320907808054415538741635169293591070961556031874520903502330427623310937632859845202790903658533552769573767157202241364819349070437595215747156284718305329793723911704737013356443129271566930642778792658808270381926469322886465321936738888281746282313862649915521450891497853038280235329108489130665702331565891304540595262105290808289268889229918723831508203725018281054925136032696974769821893057850818117441583102010212046663904234777981346907076922171217286548090956741436463534591667682475880662097323770946649449670129452474024332794120463096047312543997894850482905770423844277911688051722333410264039394457954165312058284079002127178793745418571469139027724549587578085154435447346719933595012763579304046335391743532114668673206948730477355065499988259985876121994796095994446924186626816116362036927057872999276234197091213000185171184126238888251822861279431082882254884403729246523830415442063470201990492133151088752266135174354549796464330437475315311032870038848456407057335573409000022046530789661535809595964266669738024766132511506476278617629001681129799731837438644987325251208398635650567975323149841576863972098138398695819802572230983994711381254734743339895593777752046734853796526584183804003239448018475179227045183210722489470889069761319337654983050207583689890415578602200258995740646907841214520522375146268588826463924168231438883439889326837279521873376916144498130820573954546563321815155614502058886474420651721123585217208990199206690988456057972736001280667100673125146863672048948879220124712365709194820639548087813837747271094215119997149962608737420569387492606764867888897013467880924261880540585132230677333141006390055238888401565415460046389257240904674228295255482489834386926682358162702049899513149669429096477378606371132001048028181256453560778108550403343841905492621193180178180153534406451796530411825566061579526255567412506365259223717395747177344182197007911495047922243852398478748335211277144130797927424452675738492680557880384705792988107345201069524362352353169744659429636973419229714457597648221220330742558684832546661295453795786670299511328880212898455472362730210669473815184329573221329674953947821977300729233728577879751321988866035668756997644725194758406636670519978472182771086651509987606117153966966394648474642487074274758268295310841372851397471316425743936798081878045199147877468909356949231254625100299605153571880198788140124415770320004945431710505695883525661687416880456136440354361560584634343756566710404785524544262073571097827070680884435762614062014200128802525234594340735054401971191435124814140651454967683649167182805835072010056957888513041340695863937897213833284567614800850836488388278457937964892817924066106917291122356285698942692474577318639796974986141473696718766689086115057166173564250399170258357835600287600617641162976934993153229075842747503267606148909903457255386328434088088002272187590905257224971618215165338566414213828362003550739560359682502639098291108354959872709425615836218509925737922304776180419008467440713612752152691907107947953876911837281555664369028463880773238387292428146033372568774101765916740098776636265415908523035517956651762243764676004890491339158200610837054836469629053783352109813457923968256609549057247991471750575877881518547392527564222787138013836800090769671265767619953426444470322562542394142895929798392345647560205325585923920470917234556244596237465630170639275014268394283789254252237966734171049746513056609837383619255139147149342513132023048681775023019526535897712975096503456963573673359516565918599307231606362670979681788907188412912385463247728608972046998534831679167221504514732121456336838933306806556534390558790480613971642467052147432408840753807108306594507818718905721445521129504930587689952436352542672520973562821232804395197886163057297258712558514374355700283319786915393634512889427768743727290347209782225498655454386068120443048338506371089788904776475892366876421956826169783532606302995815638807864992014462815857191670421560485619139318962626665983855600473100503285846034253993562287122774590270475537865670899321609470399848579052557176444174583634643222760018812785900742643099421990284166506943901275826153335942994232742199872896392223858526744211777149533946421839904814690699175382149151635958800751124864893089923813604847390582163147813129415720331399445383819013862099415439523145228276532575911997065153387119773196065287062277214542298356087238156497282134996242283193158730152842556820020260075712182101799770505666913611399187526533575612617349770280822006420790767272577971115818437924649197330160221808784848708692817253199327856091075804168420682992207938135026931646590412191098503982111004574294987840460381937058655574203877957359534123150563736780344908042340282875362956194149392075777132104941389822729341607863712288932277337362894486801114891122667076848866475120493135927163514492345553720126688789807202129323611118857254515513346681842486561773407368328747861902088555905298327784077969061225047487019000437145946492042043353013964681733982271507562515107342202102257660126853436033204214137479277758325362571728458989889658723189675202642950465188545274394742542533299416794775532309062674450848806714126240172397804147959020750672434303391464379821534902969668820256592596698773747152123107108838514093446963016810427638546482298387863366411930628430240670177081546883297793917789191941443472034597732621735714835462931377100184814560829601927713472232020339018547322195937467078884747497949793018540611342509626035707658493117632506155464434963341305579685304376479410434970285294940947206940816453422971876808312927884715980899938063634233559258240143261230083527508273407912078641643806534280686749852087770088288489436078937505684563312917627075042247998842866221519704542313718968288583028485751257085264753330760920976775423758452314334898087099461371834711886787337802783314839754447492253808133356135546474025646673167425434041445022730377108714269907668602270701980455861988621792780225164426587421466865772226788128338805673086242088878934385913472434664969457187635015677466706184391710341270361967420166984276897936784766793032257800483868434665760387673233833202517916880851915697334199770218868854707981750624293377210324002931561583143735213759027855975950950166054471623808201801480950927212255723431781902309499830209465737553745284404229061830791857469060409511554423524230634260277707549597525882660446745327585974757805221249309153384285157066499515922713023264644146421706176599686561716415617160535116353559924360353872780381914080905896089180781667444577588388117236827080653307788797990917700298200048443978444928255735033213216831003970864277909604767087030480596067939986905880367626362189683858011419705424783448092646034378018158041742000059457877309756739264681282709870486738638610218811434867687527278130942229275799121475518650782323655095566107940788146296145866024761579911307970074223135743267163595242561328546994135681455034385272625602520429054167889858089391409206703115201543834086218176941806444651862276428110056578229288062625604170227115131536303131110949622796433800096569120207131140106011925023889043533263887040030428993374352969519917428776352296100550245304001726415718380578088299656237197102039226712619445871444661305552105389183706405421967127135544252329914110159760151028078737859538394654231410709046857679046467336557515220299354739618570278099234825080328062031782076340457760520372062137214384988670441929132856177817605007443336858746864699167522143877299029865026664778848964588184645460592929086849192574909662265463099574062156146204343004107686321684594517522927897328531894710535347355714368176019283085649453363009263099686582292457299510465700279418197445987320366673770054757504751325978635664409449898048548727304021592556948352062173044847301444219341972552429902250719303112217525032021418593732401149428541791234292217500269257583765609688736206665629734627774822481430289983881295262867793750052120437275836421427713130458845259820659452867469159319426647758915275699117732448761709088010546977923766372507096897036993166521462563965907899036894449161672973669653837914904917948232812738916668937685306306662618789845427059090528631000211445052123698802091119511855148254838078154046249033654817793567422700092816732677992355726209412540335293544610501439034915052939609433973710500312019500140169970927864475671495424052863648317969318997274209274752536057649230589408654117128168504744272906885179042421242736813139901702347988907724298551343449887539514488103969070980868697779319206224299194099855380829980694089114530789646056973034373758411946477482785608874533528532734185152450888179482191488743458911086977610994517232712008371181255830321241126783597576289348610145074816998185894104606910343351284530525756839565822419971680142273446310081123849333994173117403262625549090715505601109610461437033708697744959238827222114666365649209085361850497846998000135390012585397538320325041476725739526174867473408825441382174415324363528610457156564575190592217518417640287476318422338170043860609381638224610184098544649012100479695330202509999436929898291964484239233258335143323294686535801844655864578011970515669687985418219579479807370187892378726593060995825052731334946340541168484391627941399910097448676363146214433703004606253460685775154042118956834526587066502183067375411346262559427245994138853393689942291523369865759514030113852368123272719857129389394164667424829645988561753181946854961609615501783455348449951500987229001075567429001800595438357473178009457626171357489510972703969695040861242368873883115691456497943208930400631388324913884910489531582504115886460266303519040842007644464702741449346550981925158309781714458855813349111837208373365652430174100444970574478699106921329020800069144047040046139849336325182012937329757115974908363310533044870286705826681938315699559521442579339743558871616959249568148533084446035174963012885188645391558012312335223183852988109463978173612499883698927190645242816228779119723935660963708873011398367730531530456798576293942047244167676818624571248805713332438050428739293769888745880833248664878130064635333068030841759433040904793614338566525600305528761068040892804077944073879496398203173698759364177072180855000320401135611137730871251032262013495462552105656358996359469519751854810003318016558288340558921424939389190488320032375146183860646858024764183929205975254086924522798249003349748374850398065617581854509841327643872358299404671534845693436968694931291671114478966617547899520689830571018340850336339348037362975700426644813573969881374041643855080628163896266209494808525435854055343797061777182699211072157524583695590276723679180755702720623933865216730165839565178395847494520500889059057891371728674919126311308975848379252345004021483587846666910702251854647319658382467211416803892116354712507938235880656238091975498183027284905213631748617893898630056969629089875105056159195278668344089220192730815176079147987532638486981650003848862746818331256065529101835428283418275137497142881361357921739487325304975207137017201421976217535721722244120404934916446788916384532414671530533827081149307757406085253876812148525909975130142112796495229569171665725281200222053091002684787030525758235713076092385383516683426435427616375236700954253084708153351835241017659643359331702934438371923642384608745666079939921878417432075868460464068847572375873580142646985059973314086486868312397033005072715138113383436864470954397495606538143562078612227380990893228116592844921285509599268139968740788228710644650789670845630918693177641252181266509709080080316861819693035368376983362991906965962346260429525369868776999434213423900921262494704462011845925912510204283595007967240023906873675544152628754195268380538191010718212488218131119372809809408475604793559201179707309112942374082097929350502566115485570143806237347212671186899566194675682050335450098085554533032412085643987419110708750961870450196806862702032073797455982431411757870162295139325160372828721504664871614390078544552476125850732076470710575281325163836032093625325524495437167242466384510922404907897795826870870289289314081394552460201952709078993422330817762357369633200448335838458163100059912218549392711756747609692807274712167796858432003854623394666398375127163169596809796234671050774352333100842336597673008207979336820439560053695407121390538372209411696325854447339700232490061607802632041510797764986162532711047443735016830795961774533725488130195071009901408262653790448794620517776934331503776864422600550293766696142932731670631422393486895189936672235300948777930265468452488493995035651459751427864279129966887608003971113022621415267054565136930302650858250171092797082613579115328309932274452213134630998305996055472776527524353385212065043622677363082788829427737102671260666516838987312235482875236144150874085737380031835312027333145971652948104781950280208551593969826769119788425334177371628196312236368072842940263543412959676600808150344363755988142414113832328962307914386835081124871998333963277215868672725316058631181325035903855553869951233829352559767680725152018734162414657412404203951797497899988624338476832957510977737953641442745451664139819079717512877250478345645069628342474409862167746112924303285052196496081236184723355766804609464840086943380460354703895140686269445990409434015318358787243347217119614953165383666432468000037480384322185502915881673853174422935122472729456694092419212796460107635417665737003806177263130783998317701801581741642481258451796018423728760773025345645676404159791921073709295068810707425039285477002511350157818101713783173702292949044922787310329893515916441024415237229937707039339240610129901445337141321041373670977521227550726293618054767751863364122713994336541172350824870134832298002246218119901979824901599273465527382903801672259204540070300457871708159544433481944591628176798506643938246346849868821252582794359230714292579534966379208307660415530646652797080917725761405613139228829164631864346459641187461401184184629958687562413548800183724438368940393006883701930611686023324420986269660624689920373351364055748812074635272555784342422940177447788264476010027392182521404820793190661553747525944014039546969165637901892154418782744984541499883689492969649245954790363966855762928218113411832954884701173967496719321799688537986269087165882423118943555104306367607563235639212065887024760302900813399216434031517988378783790404773861432209461923544630105016101466755688906804337169878221543603183132152589063338675294217546227954753016506025205562366693358946640373575254819333729604217434009112039070388967955943551160218428518165142831439226329720466460304398322874978308897734839099736552028280687041334390356755547767132603505784621047065665729018185023457779674883651650568593390036024186661174559855039922264874265049037581709905968646137472284273969193601568499485398024978454148091700088384152705172858029752768153615473046072894310189703328034616814075828452654898460417687590768189894741748575283016994376005846449992573456262820410812786490105135872850207404250139312040788451952782578321991149737469847826073656621975295304665670307989845110660346000367892328542152864512250613271778277325644913419949051364550180883273004608486348348547147263734551093751323716805796515105465740472401999509440124507958915165376017267697492028407318963636862713111066426199430741417132435466918763355801516761707247657021784516336595011578499117746131167982923432023681989594309177579246753477109370123363537404165388542651690446248145663283835823241971436642122488622246342537699904347440699729745770123221049682760557738391316581700711010602127110275669357327356194741049606851793522354256202824757264862111977699320419224402684026627294583977714699827715478060372018204562439758309283517746550799800411452837899488981938895073126301135194453932875517938795211646709900599178823387128335456783124041289584463925799245506638913337459760037816247959353799645471051149307676898029884442069993900844190691072554616356772530055927043748679188960378287402369310956885038314214541018740546816060963821140933907057404851051710528919110575904584361895704797926799526335797302396779064388612252591392431020137949436586464838620062508344615303082967655018423239413860762847964467382112319648078359589083350837625964174835421217908307320434313736404537543219882561272088025371264675509541465622837733984422616163665416306164010625003954945538637030639889789490572937850349551470240662999362628823036816758631234764658665166927733426569695925963826283248732830016066716865831970900517094794933733531279208197980356426455717019345171395683509862606095974392235034245880267484013131383616877909794895155374844101647028693083683102905336586976094626975217162688952034615147999066851314252759030811909643798763579365442557156681281382746895985112503733828589475532215110961686298766976633133928507661083403919884525366965808045716184905184176258290295883977942315123870704321828140117393671893646849402165489492332283259353206487806545429708926840183496710841256104415005717788623077632561340942375582500053567507081693545869989271119607705372414193644697177679032763538868929284377352422882133321884332960773568765152120583237178813800913006726236560208279030163701042002909508389816824332427125300127467956520953900298045707945779093858546731372106702675974019563654859081922706175337431429741017054101113495005294525451982765993052609986202570123547930479451120792782969057128884116384088303154760136903570073582866730280289289411890746868515445764761264971466938781340843929887984147687158617956203097297106585101653826523070804330887199927232661056238812569286503105530062359422095072770449543966496359710650116717718014912711754759190065619635045820701365717295598264706317179387537766306999096339370499625775168277378239174873461778546889311564387592063933108605795905220995575575986573039798034482208922446639337692545952819487173142131512519112472461775559486938620616338886348045073736762614438992100912001427545721400489645739581406707151469063661802121913286939746624319889912323369141387415725447550451270445665846440271995614027553657130211693395922312762570552243723498428969537889227862462815247606757630405958486808214756395671074414828147450512908806206486403236659865916054067462117313407095530373306323714300663975686598389016409877513236983845669096739172702270340946163881794581198442916457894131783813825984521593748476351279741302054421515766727922700991611698976881674453107915264786985426019340525355267424306061704582472775874642447509320337793254049470980698183417238402008539039010480967431815177141142867368237062460041474814399777229968068604264359789212265445002195456047196470945892003539666755152736307124513344188931954876719762407967357002962770045759722065209251641554162613142417037443254456979587581462221856368121338491183136039396502986679145915292120996177123303531624383672407210142805802800042624458189645397202143589402191006782535061259764789972413691853140305704077365658799316332573105113586688557064923095404256263277473444993673870432022702509788879652639399764928829755076982678397118003492403468557878536857999812472647625202800871237198622094627175216809797990880578256734313545169885481295627666619067033940819221795475054426849817509682248972916202988444072910044956646512108533908687458209210773822066779533389756949179135662736117129966787298243362435788330383346374887641352763244921223901754928102304871080267201853827322168500792711119329344366921371029282199271373046670145486124277839859084285157597843149385068459276976233215561705973571960467652649652966288194225849821235948361513493497512269806090732892284473293306418736765400350245873631449047415108482834948367260893147807437730237972183182094704960010784705897972046638693212029965510388920621643177085679622059320175794356695280071309107851360784419383147741012527135867001738551258738022254109394161787236769894370749406961513508780820999721566146886022644884140434301900995599359876960439208519904596026230457599019085585469119577588885725934745609734149930219274274044097107552666321258717826581959373933612934957859429642838103800886426475609051004322366538145951967861751235246417172352211053980879522401740711589862292784052725130491885003616178306083117839384247319117820303747152902910689411452579133168933062092467202757234565527684027519511852042523945680489724012550114846388141290060341651807314018016628792444256624728838344505218885884866547242157073140454220795226348008004492092397841111089801397965134523486883108099424550635236322402854172099697355075058385485096408959539317917794007298038557523632060888231382952993006276992799771721610067917657963521712829627776890639680127707641717909278052225270287488909770723886370214419512008135973045821269085291158471840844894055451619011306069599510905137384956177304965217518842123407193811262891169469215168530063125041181734999964167944129996297005882275982188298544461294450176442560138432933725457110609966098223882498416147640973924454479825861521828488519971545115163325812187667331209066559273448167643157511196572716618924535920566106717703464712309103898342084842924595215965216906599385234073348515400602883355334147246034584205101575118628727338704360225401553115931915654381646483611477326173624392283258613003654043661310790996085506736932836165536764027036941960570434248265450922769892230016936615545299247825819217213450986794167378171986652552378411845450725581114591718473307844436551428632479879152317013753399236920149290961363948389809463822538911582309342330854466298782045570293129029186701441172157551362782325124571489080334306504179371268081691889973889149348299916773442656103662972926223960219270606628264660959098943488873740536507594100650092636662033626765012935459313583998343019884843403841629259861655307288696127419950894062928008981778939035099217004399022651925265558387178179397287223248366949691666657845753617350960160036569927626756745557619899956586727690662945574685547065504940131083345022721714941173062439997768016838546288590142532030064568437890340038849798181175499988855344534581956138747721006771013912704248387560273337026847391160737869911281425097405256391213162606755672149538294194376980923009622334528028699524766121359973827051801080906204962033915293536820882267699267111092801908076836389852632057662148693686446668704838868507046361686511295538481132877542409572088160086560976846716369147938507161385365255633793771310626831884356113043338170205610041957449073917881814488747679935350628763234803954763413197506115874662823646861920374599868846117701083874240830292296450663490462377625760076763769165947476922914365577879409331941530879086403317093085993517773223354010804029737917051707367858641214545582880337760478463785279258812624839986410813675288053243794613106903690385509298609724199158652750373554090616070242432513540409116043572971382769885966398477645538615530865935412738081921365711141467709227921155077729486787289641951285467332280162472674211024980967030803757571103334962161347933812507938826816604607281732644379581725580913206169589717626633094669297229358016806646365815155823780864810535982303414534021591921935469522005495442010715795687488212770002532305892349017710492776933508536526852216108246811936312301690048745293909717468645803904399722082288698772938663799722611904654825562643440568804900237092204772111919628743043555334660031213711467800653307327344412096664835382756478738070885145760977684227531061945685534273113367184679966642052612390885035073188472669256880426326369443287822950540579814362896009541756798927910879724622728236927746193564992786373757005449539767639324564232685788217235611933019462182171495832744090616420053174353164330973346617609591411982225062455834121497691052585028591545669566754460605754274751398204824642432755166648980152182152497697336771353528314188632982670781910940033715047694607334795313233105985389045490920996440605078300796477673024771369982997012662399419651193027047786570370359315155802641982694278266452587695489228600344306503922647495515575581787485069640573511689497441356141811062332107041753705968479500488903379757349123731467878395312512865357035795160526908758112418166828377175217509154999704759311809622482131105850079720125727669622872570686345508774036975772914109503918505934239476513518353902234341906760772962086693166234640992706485867668703838809692974163623521744929424745501706875093267721063274495501239239642097398312535616306115495718012676108077018903853375171737574504119006726130452987690489306895040412900132382417256149671477499486864366622983201315258402739607232720541849528823032035825900944715313181385866172282950697898278250970733027234183783683031549529229123381782712702046628820556754182557757953517925362466646711027995268859529889656866706274744961010344513209417459279895249114893054284929569651797797195063291553491133185565538417665232500096105672975804445694034306556181407292446445488652639724724328045854692947936272986471569081537414660402083748520383150897593154265643843095631493594759550648125986167118496466967417486435637230452280939347271510652475415738024036069193874598375086161518377220461734393067404226814586568863179029335902556663216466510525535156755834425199549472638525560374478473793028977812607666540566512846566658756637442861815957757736496971935502716817418334289935228760581993396365367149729579611608599303761824729908334580454997658438013424131757826431885395598512803506154532624035777938576394069350961403524362638802504032784654707176624684089593899009558726036493316193847352509266517115124297208695113260137773406876166991110488259580473274054355938368949278875591573832104620401168570320143301148858627008179626931448964442594144850273709051115462527830972556001551062102708243810571978842362256099505894969126656701054431608374818749733801005949391649462613350855797950575119473005563668160509862275219126483539994319945162858917125741130194779763534008737314438421734587740718995957300752775519576535238971144271340898027452846421417139473924549075371898670502652313565466490384591988458852801437805614421729793856563489863631111341946564754919431510527233941456290727150940362239740799796065355097918208107179984600936163417335676696771690216322049773546082500332020010736178484370675890012065883821274891025110584337347344488163380362514145752350552842041332616927649489509225751104090432392927616294819368971908912152365572566279991730577108451290511204096799906715836293250633217869579382053521822138212625382417184497430868357190765587024468600812449411587186410018163241577536148984133697813125214621957107851231880201549795675305845527543650885938161028606554682793418345334199288235766984188393505435838448749214660704677046923186561244535379561043973334849246167872222795299465207314383964442111379462362009786725019926818577052369898816763001676714922214090769872438243819147881868318380062745704594043814076987340201274225767027794470009180841594209334794397210613684057027181963656127708109621409871482353278031244379983356328109938982417989539459898110230761730510387725392968554306115046530541819179963094654683767206985293556325742336647622613496454807771679686531374125190477143774713603642538554110168098992492340063913254866401701458690761800514436462017284396503782775963803640217726596040507118924496586222992937268836191175847259875372380846184245792152519421076255609614129839392659683052938616906513617467377435545183682162229219570224954203234129755960767355669648215959877184152657731828443190136971506507844534676708355253224240214413492375287087610227301152703260342340571538220362845274990593861387630284012193753596079228814468000501072650843224771906966222013249849129820814663310387389685132617382465799321460935220180097619318010639236070284314257624800291936288532288149362177221234648831481386523679208687014956217821400874081338792657272181726918305392296839491926802434420947686975010081477560556388469620707849094086311952403683104774908013115306514121029872003601157735685184196752410248392595197938832477638010035716521635978946764835241677128581279526820544977727020288490296294806194090962634784228065166464563224444582756489481554112182341380490041914303112554733881137859791913956645131912846457583595920696760993223941006900518661017705174207050208584923571405744316227241246619227827559655917395543279117430336206457273574872688154933559274976806919940898961622058794431711292123939956660859951492741346333848160383319194801536548186352622714746354420133199984645572422510052248036321552653101699411853227337788756487003256911004595522259788087692047701437143179617526341401676505553697832802068615672617571215747206619611219133666100691642475467504011936207168355365741072768026743938519797857323843368046976139623687433965084638138540604383604867260239392561152520463522056052698370194839980645584114079398003867488209512373793491434018135142484009614114867575503332641121540126588734585389412746897361563308175163560562080259509127588935218461593424935617096852675109518840441038677303594564302316661149645921538552753349141093446061626940709621607903042650555837997385489411301062601952675766030200079106134913680595813672855174729268115699026967671970838930784122716143261933577546423515971143124191167854727172114920434904118023687064036830968801884969334988306275953316034010644231314261613944250770623593922986915564703624134801326869003076191430452818028486757139750884728124706396352504054741337391936641858998023803827134653411144436058028780935045699148877097617772615549177925170405025989638543578317300216076291014713776016616116105138740380284951373626942033835795335720811640153307265489413749010325525978761803931165186299307742021199432960435712991287285446324558245668200010559001024436811802181527984169620972659016127244737873129579154363556337266831372114197696466171255345172366376191883082708475946931748668037665069646817241359257237911353767324619452096348588633452110356536317434483804951991818238300143224132126882348364412568675284103576486021877711771921350022094535856502694911940225502526371096478499450225601447584384887363967020759315771031259938524781500570198430237768127213049610152433326457814561849610647752005948814182327885875844902703561302178115459687935188756962417344588736381676775088160641909898404299638207306282559890588726215728589999321664630098380500224498758104969763540086098359277965038426784427741199623651962802788129480017282008373679355413848811766344561135420118692259330475328894122820899676665625936033792241449521367397044507338875315335770787959850405462094941801924190074996641338904550273200390865906328574549634222192751189221038008858824916833997637137004635029028887990244648288328019836093093169955826991782273810870164623233778567209173926498934503841299298786850217333964773312552678865192901579986924054871135920312090635614288589109950203543572915193743676375056400545674454370575140731806033769498812465432783407537158733845034590121935694778146351490209099593119409407707323957586149893155656831015668985328790491862788480728518322857465122428770524762942635417681731189821164755837373864016553407882047406222246742254424859850746041170916076424165410600195437923071394539429087948503428589574821408391350227519767815953012280326404307212772989782891691040882612952085746451043704367148279043362386881738953551032363822608573632418757849289679468417275594423357799548406320801579642822841269109162214175175835902810527399327257853724747045525266086921304602015859924467043134757190197709158986708540999260117549667034434327850433438630051658841878480700573032005478368949937684529177391573971999122317317017204525588656181195231822099710573914636535280484656905091883890828423457708530250655226949489522784228960080230623333752904489073146198323491699082362698971732415190326150849053732711963291796761767356860667685327534531043654467879553041604158813715499873366323931639904426062471978010369421083306785650283595149753080404909357298554828090594839757575719453426787130524125141686917516563144345218485949239175640789419522904133867298624503802520452394857078726496118420772520058487759265993432347878964466820936010536408456659081006173698364015021381356108364838596465325786116375823020709507816525142400909071390274467443713184189570848473355435385680677132665583006188491051986835941240948317897037069471090434644598768375203979717875847108533377018765885226151129040229954381637585144857066490170054007558005866461287069390970768687138118462738189206124036726136336931194475881068173004886666636277827147896332659847589439795364763929551576040404577158212367119036908380629108634242643250208516654114069939464188142166258903762498170280852117543085347471057879454612944499428019386810011063084317714635888361499206397055253786210505422013510331076613812120243225055888094081948779869920341725625011012670226054255023110457095604920450674183291059892309845602973321476020703317022101001622276808510517204087701866695927734674521884834723442439225906281511431696779547062739848511535075634999029138775792844098067641070717472147393893704799744102028885366261102459173524469787408771472178622736743278954814047190021091624459449502408147979048544713947137165510347854255090503699847735750518384934637876941102442947572734805334466770572019015923702635895943711069895884087113783975248278670706146894799683505514543069993227489966510247926427140869543580620823828469146318700051623383187426254306937118523579794516121420205088216423353253464103778391432697229891680725251996279601398962280936435458877319639524191266689637129407399438590540919480550802683219230164590119196097691186224918219101323023371991164914746301602416617201690551556929215553281334615361279238222973597355279750157655579112597770419675685089332394174923373416686439720303845856700313272490399266372488467891898134909135528096478959967601774413119894218767910419372196442772286501908980336452227238833528139014609350339955202619187491045299897679080729228275647582749487530072352726034807618162012119307397123453721733305746569180628013958825896454633586572989205055850195971887356169730438484310048916147186096133860383923678469371001219028749677146728893509974732504268241549785108612622092389245744005154948875556212009304839054106906871206393798359026891727199660737828655324122808709586430263070432831192726611126955693146442583136023682535627949405646594083150774170976239097580105460740105225327914755818198162486892955023762930575632270901680669054790838887101698443504354187402126946946261942221026242506950184051590303059357168268220638474907176567757254823850878798509143942467196760579111772638591845139687542681431679852116117843901037689099333151300814880852642208782679617241193680971214599979251521737834034274371190774280357642530255161367867958018300618012600192654132815163310148814369217567212650270376619046926791486886344863390628684663417960894079275511263244494615973202884446051846523861646763837340513747007767844500047850263885299722272959362526874679511503457096577236390629480003419153788648334799466382920037104378579933065862649574715155269859226729879975296526256367806611322718205453761380539122884072025556900684202678350202452726782413248987815207169718668728388709666300804044280561031625094862090820819168370364932544225347441824104594244928273067383887726937543738959992353872558997832012633518380014945561756949659779589531764925195247056367932586891612648052066447336066823263328288204017611747774939872579770771574577848453014713651444650443425676307719174472481419241153498217027674722475618664782173543180593477996012968666509556230043170414316827394564422716742352064335678925522316773857683945534602416012499694544527029573380875657939250051920918542049655323636545463108486414486443712000995054002222045645274999476411041089943709673522864534504677967702341184054092202348658272384640714103441508009226123738841879689875885699522703828193133428480348280938835303296545018896962327541767393293327272757443430179227324966014305933730679374405475604594418088991075731684950898957205194927985748221533746501135986836180142373165108877635883572696202931085202864735014257982289013615860930475106017132633133764057371737441849216253466528499201734426682260042138212153714148370760526575464436500647083808465060919552401027628284056940866289273718494626985528894079421910829465817567054311336192327285408783266962958379559774450594741215104206235120504665781121124060541999700236079933504793842474352285524476814801081155935940876016640925275109520557832357190670712933952913456954415735432759582101111070871818490493556114414390960406046376034693418382846497448024762555951296850753204810327594223267191404723792547470345906500719680756729751389224195326089324160295801534526172251804633008375717199421938641813931994604446458119814221694033659415083347853412398176126719955394900517762991724869647502118135492727186039344866238531649682640098836167543017825405982620183028553889857378268307334803234270469799846886700395324310164212585440580133236469575632828902781051612386579456111863737828038879008775533816534609644507920336104466094653290981316290970767503342433341695465792692111384088295992332271555804700840477578192807887448772671886187342852492882505136855436429570315707342408068970183960792686737273525634390632478499838698133015991897059154437514878970097906181464174818281027716042344544108438863637112638055428326904023278290660846267757228041864956355191560233011495581146083421049835485829178340883169275897599371545402421158429284343564306714201999195800771083465377669992637947066738089670675176340418729269096391745611066622180717290843436489762855527158559956275078706357573265194720052586452702526777642171392213783455256360177583090335176357953634240419704077977420323006756563358216614880180939928340680990394150840112797852178987689349862135185479068425443618694226995824799879728416811806159444960975483975438260036374280857524712012568604844587584222516826564028911023216168698970611167739340747572364800725200638800901962166526293677964960670470910858339219350749396136706124184502216454487801903233121979939713074124435270521149701173260759724015272692907296790999765889442412849038600030784900853856670583240570943304903922036090610179630772029681449120239749293726433849456490540162455978065178425129667764469009675382770590466027280498748225246977658898515190223702362256392520933341963926158673023287381445828142512829360613145068732831766060554805823542552459675944385808888033756294459391519900560127459289700072843257411258904948357881899018900707517869327627268046476546760834038539640527518036875307244537686403200002457465116176183734392940165136893209038075190819448218406233000844774557661534196512102421762641580331830554059611533492216590912103295380108852049289529539852685650593580765402554532580827337253392714716051026613881766821116423685425558838447504651984416113759452406440531468765013724805315710735817697201364432071192322646205354966211474358203168002033722652336487356357953889924148951467392821851676370234020617380869388089035463663838424853377119419347334192467922060169009321175721088452047562434759907881400628571664927736180163696403280837890150179480925706685629946610159081992765272790295647876152975518622171822417595354002694934751628245582142719869145112034078871637099190550548960851074124472198848407680390107411248274010227654422830490087784877398133914148343103400586768201473151990941193950710423290884854092600719607018376943292048846215133075329443660043364841143054805909174741829345743946461595915170148647444096613094632673813138760376964842470943097843052534623657939408848016304102218726319643765364818402657903428856886604303197420887522088624703828994143207124589068253586006647152001376570325293156831928102992526420635973860853103327289175971539188464413726967811712432585510429170456101467318828182226561162414360982984683063393396282966754681900470866685464224063678210496503478474612422692203959523793399114210723723774395875214146150070365928289289483542960401396208171553756542176425206403950762986999757194559730336704857274957136784130833376629172166782161834898030242953348527435525557366719600461888085046879201401577552476064359258677547962059790215003641909520404405400089742814554420470308397581498480282547177940847616568290590372997780707901391129902151624676120485789200317621820073694525938222394206594446499844511648662661983997755739134947535790096643808914377980632612578788444277069180515680421687545388288526039593290049419249296650768464348218787165578664963946994203673238656003233133386028470065388428470859063364370493040770797368624039207595690591352974616982957775141196426897294959748523143790899915378294556614667706867531510380971908915618512290016847490043203198177110804250608729292800378053599727070378757667684641568746511177477904877642341538048233220208678027801669457144767211163799677664637789024017145593663908624710996685065207103831500099186919930167945157770034548506787061645921608304229332976718742874988550861306656442713463781880283223448206126827500654188858701547140650812010412202516455299658231062292091356202426828330036035287637047974109624324340686309408049291722189597442583272287838610314287114542911693997386804844666622081445871653830003151494566200949466487301278598667017461846991881345477745351815208217220476842762541843761394218735527241610549969175106789326668628449043334774732139087809285530330485384118354748475506332870538017848883994144869586448560366960469398246823666696900911712966113260282424272097904896549450044741780470599707316937273279930387394575294876710910682940285608478168021999793929882821483608696715681069231484902349097588243952316275732276220058915057635788266260877244371730155412970441136851994347025579536780125554586953185969895158099054136163871192285282408904185336677459437044908156658281716819639114382820421198914761147357773913561868246039395775698009615156221919710277711719568926545422926216575081122298889836567756200769239464982105553551010146335545788157915722904800277316079777281639442912977986653011317955550506541338436731017935788746381487762562058689204129611691916814703448551788422391559394240247423174943084985272574562785159184514068972100523640594347911733708152009898576046343428060058337348975879895297125763183214939416125885039460854068519065305261424038786633867902869548316798559233630464677672252275798303526929910403878114526443979195993763342761222044934341860277603759382729799796049955676311674200338941251260023627746655461374317227998959298183976483892161516953415062300859315596632081011667725683034804452059904004352626806887742110730210580983418519616503284188267920771854317107274884388773267275804059245293661198081916810737167330530132400956762782694121667737201631853670600824218449405007904882824917141643732632758914480129158869071349627806506116742991858488078661863559650684845303011150080475418144833887589644081814260825438210908026953779103002588959061299178374415130552178005871932791259961403226941906315459475032304939912413323398730912743226603084492204130356011945916419342145603513768415004855526676721689076776253397426816589231059093999593713109322681692945928004191873101368045987253470385997912963980662624673467549783751098889137522649361711392660790769254482621704409121615680616236254343882051286606625756458755693600052792802462005331624043726230172224015194065560707218206132923444066696300077259424521899554384435784268369936383267969178883573384284374908553078592850738672654180968164681518122297381248553695033237388765225031287692020721276890040995052988163332456004675266789269831406266698673182307809656621209889470624285241889018335036737784227947177728411815543712378453350797407096695367581759424086851626669162105421671937918160355526115168000460091410339080870411031096298364737240730928255435840098666781401200140343335492326484262050898217713133818772145495800471407276777840005396444794177811843276623723992928655577694556202702274128325162093879662956590941005185278518342340077040940192355403919625619542073802688646315774430085495766386714398876450789173006384716932535969577762214674199701532746293513729094354220109387538627966065318271274262300164624960773402923408074593772413873797186232348393523017102584361267350905313242009783368141568666133375490630922632072419402564384418839305020286994120035544368062640306219479265502137032960941531951065213190571763278720974981353551350471373785601531575409065613103774475836217436836690948656201211079030397743787271632186206118030111652797936056217717928073678467272398168675527186784725451206112038775430034188957319762069386112508004205091962063828851279734106429412772215616588853829629313062893653596957529764680117801565593533189384904312787596882824051531358640645008050542528713099537777339926002984976521112356508515745590317334396352142210855171718721293149954774157714025335487494736097412783680655332220330728004771744516320878195570391691117538405907060462502174908536696479053825338619549775030568603404041244127500610976273008584309105521874648327707308507131483170051874071011092272653495421240586203485579321747561060365436773425938713684085199388080942772341930164557789292104211035388263996237905941358898017586679192749055723958015203599143334850776352074507852014768203121070073037340382372858445632602520530599103348934978422047401363248854834780383838153135818191947172482505458545570295956973552305330965654866290637624511727207717014403089440750628344932428677814686196812191654858987692120211570768579980702470852234539190446533190579776679672528860927549590339662670903827551230023029358284414571547739402302220518703808583563693058230773790335432976101238635910715798209036979666763384800692558467961646366760136814175888141715448118588756912070529960075362905489762984307686691485075369677756058352817900787854271298459790060043591946529570409915774406644787526461987877883408577570743180296383326066096595354333584852329739152124220403870724002037618811773822138568220549916984742482305975780516337932502827895667118432832007365617509345107381913573899895173017238831458384488250781432346023671952147146920057467153394957967271166354088850469323712099700604013350765718566055747503492962582981033231189849995861575999689821258756967681780822806659977701431037593857928342360915952980300585318892745069859615093149079399973862935827944973601489786057159283792023468387192448042027702823836931071924957606436890488869131548449172555180530908410440504221316336347210665409489519201769925770892554449062596500826691316196638284449684746619095102544155858182224821263189362446624344588228767025095409495264817751884546431776077336161646880601682002614060543980697868329215359888806957531065171559155124596219758010504488420468720585581774492172663563589045064939112249268997843495921345048500298253920462977996251873158804590382558362065537681594304298943559168533437561313422649065788335029604746086665288571789342333225865471988291020130034592654037174891738449027844788595961501728230651525556629996972768970443256924411605241529572671923742344876558605742107986582646360697290775718066097486973022957194023745835841029041752378135573750186334886121796676278858181352458242742455143895782503020821319016500454050245550839280596855651535292009310985892657495524034034473473192119880980728972312875489440183906581140009660821757925223675609547447266846059425799900234750909675328886490624607001401114358710886854763878671693488652162048487817599735002108971766321561539054781217865926469094692960044825839435576010421523089937354648761248822795036866383384736384980415255483570249596478415978866965318693805314340696900700828006814354961883497700851080279416985425566708434221473434239457599337573826423210689403997138837991034069802917370090327985608711561134189247906301411371126177752189623771376245888116826307154601606478328388016715527713050874196828145736687518293768231673990988351140015163751142388822838736063846695990396413127059288182095203862221175985228931764718721353183556049677835554085655000531950457212917322263722681317914725629544471382331897880539414603127807499662605543268556204906966386446616538750833786524816073870957272173052295687772977331093453482666680263133083919342577959965970902981430180653904733937162905579735674468761798745479871369259491811714006714235723028977565767138128958340687163844516670734581008964677795467811567870647772303543021475039501775659603110391514583322173340191325591672272627270774904569769213893829769616600375177764420224370600752212006381815263207170050850751951354535313583054141547788352623777159086417148366573071162528450008495238387592559363555685318198504926505151762761455147590890290359771425738006912173258107286775969505777444854907395974752421690784907342006765926338505486087354875238569410466855775986377664687373570439584858463034342509271483898908812865317127866111115114184365570141504457126423258292142281102020720297956421729781052686068382790552891170401983932225408040044220069740463334260692871211549920815477198149727813919201167784730620942879818679263132366848657761543845256798964815632314434747213243284158703134507712723425343416231584959411915648442150884565793799089610897928514264794442765869112365759324699727438401125867983358580842889646834217584521568751040132480934092610326231932653065247880464532171492633745556009657180516994115016783474932133756172322753280228509527139438826204862397582618112274441210717392557431143127457279533419968071484396989731033020483318310568056665286780142764543515668831302556306501642132856143092463579543955971552030211764929930931724164756005261507095353195465358656465499094324196835852762848249280534758001146696022418546540682707468993053906230457546004497526697844461287790559311859112693809468541066456725866585010292209595319192139373995283041159161237369470568376698328379110211677444631634526998022367490497136539001986860854835295346608049166408879956159373163781775844437129765979180798581123855889875516820992825128325056003911636095942376901638815948086691048713452374825087397556781465500134728076596388638435087307359236319859629663488865457429376397322302382762465546806132939091700360927060004543701242688931665279493747620261820838130510712862765228654582555880511363327493569486896667628073488348661802991103175002429055591415403325203616188771636051203736505375395141841380226179247388264417664382531412540245397558523916615421013552765410841289185534033535578024054932728018185033875617385649020944081374223769560890794925874734001701339260714419958387679864773057233089111834684425347224303170916740732498166348885738893584549817741835370625343334946950676683021854720725808531040269922190394435842033891786325903494640095036900258256035401075456485706473676990818041538071382459685862154294137753712272880542088455131842388546322197087727989968722665676827712976334136095116929437934623281032870577603732065420648312057205850944694553345848468245625825548765165469187442857532531310709450024670210246002927434809730691117456499958758080287226859625868793696734231500532139277104678267163978992705980121381471779212050928650449709113766134573295759372176758061174857781454046638371835828831581517248778776039431260821956696942870583022643710184815253451263813699999851052983555964726342369661060220104233250856363154599290885916102670886645363346137460840841441502783268517579215052700795313405643302424155879297185840135878207535527998369042846876743631606253015002206220609672280450671016309614508613862928988102883327452239846070850440668458403193324656333739360095220871746726921172069740433387761174218183700771253540443118476335775308732350269285772011927239534581902050103967036368007959238182188185099120298571550571196753715299653725621327413051515244587731319688392879028170393299541609232968033914753186729054564127312917573849546688097291796347033823893938349046153314861654810537999511315569473124598397139647183349873127951982543837115451784717283790316504554742231771442995658688883173196993267088849621202865909933096714494617282377549644840498893249164582875239443798580764268360379745583353891649505721130414780782841390946440227763551715464095816504492951758185920283543981261686393560710976173067219108614207945188244966068242628000655467332958915129783753627420391404034663233331971274530848398505686987827350015297991152433736234227209591073413808057202588366179400014568965797800427131470499846082535429096140762516053967215089937646392982595280906358219111723759015603287691966777341594451909917399278573494290990254971460243546955228753870339569638601991552340687243667620678178376574040609290698105455172743451310863575170241272701390328987500482075792818829605428134882134081658037013012403621322154990064335375935837045414038739543302318990293521835204437100082518783459940485585855799848837071495701355421205396383405667976214135705617018522944761133568357537230581183496355622153248781523621591181696151197405069179179611752845369410856189558665312863355532098349201031849764186938968720219434425985848370619552690733465924702481105781863515275909985051705704157120867660137433221237421066947793900206309742914729482866106729846968649765702360134177955874044164307988559495175757559755333861247501920905381049232072571669869743294301089900600360821157056025005299784374733169355746601396391417280760988818558922361420187839722058846014924089613823965415443756743634406987396034145366655255834271639276715406275826088072366636518855319242297360680843951974295563591393346248374228794457556059759267881618519405346302896219305508574967395593548662978801905026989775611562248782459606656388238402146815029747031881400025834871169559572935975843815302459283589239163107165062203409865804296727665396397730905395373226575753335765819811952993939997197770156471914560615710919546189312090249907562199323166327626323739490682613417024134107563264800889291377074688540208172850529813921552501188030186339802309815185046735181198896617660783010582200635200686008308646775946776214228545199810753201950801550370581557073622309308621996125219349305300315290186360886827830753444558700456328418126748270233096691189664207257900084101911299464839472008383772980032423040723328876351819387792778942820399393173479190067253932356842993741624932629751683057310689965484378402236637138402245354868086767136900319469349633210410439246573770130567352463397336494604057910826566795056220027013078291291248303691531386545639065460582271978184579125747003330620546046767408863099959906698311470988238965698742850861467975288811011389064799789783344527119307824754966026808997079316218954437761055887028422175921662017829133499254667826788876189504464644594699663066939671732166236496063011236899477439030092563436203276091985899759380360960865013879814335574130573232206700940193267245071562226335894240452439337062799429648587369405844668798139144615950809556306235090943601089722760558852573393883968395332229796751373187104901575667029648873763295591807746362997538751785603023872043179358536066207851988181334327179998615322286485828034896952582510579761673186480014106374386982203923792967785497529179448984917042405697284106357359484518277457609908020364491835424808148361182534387207050677066809341062043289578898146153916813808242087190774993460890698789860521931822607051636227246724651219018620096198438569424845029013559132396347634937421706783174885931687541371893544204540753052153634156428798174583957441168276054571344932201043983842170256872761163444309956665884047904202504597114993434928776883450411814693997116898510367253569880177409835180490064751276251012837295385032346006894954589139690389132306191023629436622395022008348424723547436920667731848002175193502479835641987654703906011125366612014168753322563423165979949087297682507807056420488178319871784998218230341628251135504972103753394757624857665049917926796121228137537913526124099728812832888959658305186727034592777469275587976797897741209015006651016542184547992645125468219127932366173660764092057662158220572940011791521765736629094496144929098601401563100206174698784388217604488666268779486356666491419558805424697980888071094120563718453302519846997671283542953880866167440036754405281473978584397474550000819863685212259267367811136263537363957223451965706798841325559718728691919832310434733799035779494773788161090867857675608850343067348332956609867007659481703440221782039675543585028997715722403899513794322563711881194907234389427700038605302751350454580092802591103421093177007335071998920323505738207811492827534465240052348939983625553272718394321729669178628842799611047809436290672049010671342118846364560841050610450218875664355981335993044243394309527525166182730153569067121524333040495714933569010609209006549277099920809651946618508700747151367524532693107960260933704390733280307645136539771519862276505668411278269663801384376089044244479375901011587417721212037834171606837256007297034525583734290170840316781495781227349702445452263928886794615989282460443458650369044126328675016621359498798490801386256340561901023599659451362449132418050716999082211970515670150310452796931638465448374456687013480149471939502976701198018500144070161041929095642143407872010048558413862871341394181397994117847569131400229008121740483184389801797951807256952375078307351656303044442083572213604619504125627574604873863539617021535427458671496941008622961588801860604156502391955403199891455107017534216151369719171639465148009354929873144757201840721846825899654710505840168540894551730046123060654369994038753741539762889180602316800700346021069910866134775268490637866869458541733540652456369538000231960136981502700253525661290934790771025382646800085308082532212374986424288776415682948743161704173491315625111342440243217420915718655343469920506874892090249622542392055413775452675543578365026793552845479340457982098228098314904774767245670913614268192562878431395266276990133124430099814507534207805067537812289611279978554648675739827442129525157628082266100488027171887170702773275169446874277012499644700002045184413786018825672623251458700037251100694346696538972209795810211911369676579457180334156960048764847264456955998004826563914581993461821881226046141539567734017787230678256976378061819719424083409769772292456358137416854285982352023576689929037806020451636385447301190160219883920008994440300929125291719557027235259095145671703058504887264951059791858611736365437366358327406067497445446909956871971777042339088591344679656841877508613731944116320097281628714557211371600398916604615249796551438851811390292956961346446432065091422241313350057761215236942380589311573685310597582780014365829207421927918163732887993330987089054186605878520419892431188407399835823309378641781110624543727036317087587392858320532886363048408145951781391627589133919580610815247310813594932752624575295662386710343837096725054037115446266919967106305306566004227969644327532135309937753335388776560040388629582150527080138640189713448940293249281398571377044249218418656377960493609246413778785491189687792430653088936997650452028963592207017569082126498241129320561309284858133007885944044976273433053219175858574744212290562896091871572161490179749734040789961502439844376744715875578856332437791258155446478536751024135706147390327912661696324567369960980930272579102540497696266652322648097243528240550939870678389175203137136029037187612226333396522538468054972766184678439725996997954118128147276941272095254973012996660377389045606586268949613960859090637025904376983398522224266482623553607844014429896866834592617470620708773676795729157611918789148397012566019338568757552587076654374456680111437022346247385576789430996939130231673582692415261375319709186652955150997643644205975046485333064633708109947524258226128792095645085932999676642463041807151418481501496633210674143151843378874254663959087892377356828589726150918233758299903133435649126698923306995327402135286106353281341440001137736809200765950554169429437475319018139021140463761115801480756014214848686860717329663247321084852878703703537618301037504649266605856460250852511442442486974486400387342160667622128776735651345844278717449587915929506290942475357523998786876814577914003079388564644016855726098494904282981479375095946246135555015095468627786871775767916261986058410959890913460958626232560108198468853166402737190155198320825955502767835660349997318591993173578942002476180326331152074912584756541163026642091401776066890340371772189444709943435141262021244981899980632952233994788732703527749589338856219284725246340512543520446998122062239009981602090529757518502818813638184918586584516828985612016405486279841571219783641969481220972033823933314404471518115371489230726478302653733966013963759147417600273670305813818390389303287458140588132847827898087037471067140485032590496364975151184387522671802859557589050749736254232027045457181723753410508615654853777801498921135296225220230839273846124942452740056608032537762279950316417871691165742239815252160448481790030407281486446439462750063996463402413730401649778633604133417234970067545113399365226551798580520466880974079952523016782245802852143018758437593367362600619140028355383271580677845092000567662630806345417271517547049144571352632401837040622601521635910251879892843080039000596857449155960725515339968723854531905569114821986757160820974454771571101345272333312619899666610671994929709079387645406158810299745934004600185904219173949528371086601791015422983178466673582791032200484177285398917292820097928915014779385142531193013841380529294488774313822996863351283038139508315693790193299705462556886039086545401738783511102719938326356685364365900251270235628947771741009455166159705601752033832973508821541690269166388314588561715450444923116820578679584115490316303844602767489707831170884181018883742637293785255748366952315964485223976480027246224629741079701801624724407259343581739526714430182937635694437667262921145046281934873078202918882165591044658038990578000791402134205686820826927458086535466158620426632481895438607995353211319067807100198218801637919325747312323788219928536190197531683731131283395094272733560406341171995081418442037841685672179206808286124497559694674837762573687600933567797231578160369022030334351105244245584002141670957446045465198724750450586383067905911879961545891928584340837594749230127079501671394605649226054968335184180996552736165445118536219215800697610899018545303570492943039510061376265646349727259627743085581333068311642707167717020363349495406332862876379315264349782472286234964680160150334464385509325047839081785025764046151059699640122589734476443732718456747342214536321563465699171809534203737135655734075022601540114188387339263756285357590901264733798557829169440686497857220080426827955569187879587929340951666765938135417288480300471750817092635172353624452339374079686642407241475280366971437015129474833542112983929826526286540341889761867700161641526601258678011988809384656051243155630751856524953003984319307818995960618795978362114455056840183556496215622154883144701261302572038270940490266514905852914732514708467645537646113219666111530717037860953099599072281646017619928192041075040952071655717620434665858616662122870164253997954341157311524127100500464166497644742345536933726264712297053764327616581469261032382044631044863837309504523888592767926201987120782832859475096973566032927007236017662794563965783409209783965944106178345243633338897060608521938946083425929194342393405817232948018102208810832162915448635891988908908110594896471734732123313419403753761900196152837180862441554851492647790145470894694650583631564969831256477333867644853757674340449065887951896664197258081629140972657595536157994685715531742697582963743599581040396207743778797806523399389095638480037417271961997443654840507815613111014118545518926231571851735670052984699828885649363560251050263030428769342522139909326754765371621207917812956812981835697679845720776520443844027239273874752865140562499059624566615324359410452231100595478690969122134759530886940022948962160090632398438293541823186339916392157922552824139408471452167750958576561535282949377436558536090739097441034686836001697559260865322386049480541175499727892664989323744601757150190586563887949820966916832308348914599385614934175523544264334386837132967937328096746404764346857612123095289119068845813479786865729931669489793869186475175956183329729500198045021172899683767929255240867532928842940270965232229427260842712057703756031945233935411775249498493835594188552758162874083888182943544034517562161519792688635816874856269287577597564777241957214753138885634665332268316652143872110251035818365224820397225725039977633320972205907251688528466290601310415824090275507263162049514805744884409143389519026110163024411348133253130899164967008750664888186525324475621267764487068849167075912781025010388398884177607948720986504935032946055151106757843432889592774353362587169940207962083040019757901740933507503350249345103290903854858403351704792077646060366601125305209938190081350420050035665855709488021889884340341197683546413833975053365198861182536833568296731736636840759882562141192104750644097661750565561417056118515601283459587059590902496402803815674114460467511016597559705243648956525256263049396150576179588923958955236900238310152522407732929261356688342394720570860405425610614769565870330972232003142566494583728287837276720819009650255499489491625964888150228959284215963500607518865842415056454475783714793479272787772016259208157500605908929950606729287048944802165086769694432905887812230034406628685757126899089464483205167753592533844880871150458051657388158410362045989321868663792730765717428867559894998995309555439582701707185019236360935960823081933138279333877357329466663831945750387121713182990081549606584209812587574419285227635207411673822436220903099115910542287827531412219659407346977704963044520741854356226156597542460430302974933504027062922255058245002341135237431743637665295676672979654398721165684851337537309382299006393544269743376012850691467614016025581270833226262520296586277738334318630399551220864560174863365735372754258473186007472859314266142026998785806264427985222136670156443415292792157505928260900113348987509275627871723283988383219269246111343548297459345058472039794795639063524629639878756502997203253590050138853796493751346643746108853783037986505878141654825392114037824120841399841516706361888974401267588438644940066357645671698776607086839920596408174250699238635455632928198607595909707835281755983889200343342919075280281531419646446039594620587932365957664465026832398417175272749919326566703264811190874453803003436867758757877624162931059921185593172341323827635357116318120882811485901764180232813759719548580651032998479578452730277562785814886393269011341656549265610140933439297013285710475446540527874716980174567589719091545068925390230495678649015138104720117242773202849085212147419538834901904465954197445336405384259435942818087222607913239666528341605400792263232799984901059916748096977137019066559048265400152285170770852753880104059398079147788073176929835950267395495820414672165015033264441104980844230765642438329795804392168311177105677903746392211972810592980741912835578997747240703548627677222900803820232661164293200015371348757533833958095776318410509116992892095980559512846675684866633640045084545675190027160215743083865939452667173834160476953034235105507384574695695389653187413635267658083382323946722951375501528300790615497295565839117655939332693599796573903329240780907865167624452346897871368045892855858724053322371678778796636874143890529467096848127649194484526781316355288041630362902522850788439578279971084719743188851398136443024806338339436532770108342782770770351147647687410417290504077155220842929347017541246630527593567182127123914164508260242700436065792619620945870880987667239414848274082514251174471845993115234491582253320204425626633420615481198065293695004704478430937340294178569743046624586423074407268762124110510359763206025404264442542946470624364686136630123718988792716978615145726285831778278321395990238948427214633348360495973838101699519333117641801051012676116371846459573641218830001549831112518718689875108016706703252075588463869793784283981857923194516661190843592064644907165164511763333562861845505351897768214476685906276021737356777121216774641614683669596571729677056599846551611682650789414147985727754823622585856753610546858889414382091151963287083485333696737752059688636864769987196595663139779041112895819031948048829294375023800372016590394307174020615639890831472037383692375109744038711999306101207292764383119594374460412645804443120709365499927464216371852554954651358349344602889869461710759446085684139234520148495025950061076704169136353017510973488052094399601585697281394091912239430088701515010516135062285758073393012187854508197798093845321151461671542626778360463696459702161576201514378931855018886649286179670528393087248157408605139768144700199020941420074871438628613474451927107278671437602821656490435365253120667145947096999115438167150495210144166276035362699600601783270075178664163540374575159659675879092574261152546235458651964093914137410547521713777757243141720486653046952347674649636503096112315089333878135375669724481211871358284343567190290068733107170967256170423442266583277611371837389441667646130626775032346139101275836182213931951351801101350664095436954165216147992987150717951906837900413827015864380509048004291472637347010796615785641741151637962040602588113057492973533721080710193930101950852436746670488752679980273106074130274048574617323782012349466320992008825995603461901407621103557579919185605117100273674911617096017084514137484664055430581473297968359776421632923814154561872920318133382366265408038402133617802777537127248409617285721228906469997217164241069969937693922515327558769716686966627926262034325204224161051869252970629253622769406200655369035914937820331301662668741844664767953846313036801514834462661250260573167193775081107489820028542281436264621430521054472623518852810725289940957678648995439732973875451866971510885486917134595225805597976997743739282924991108207883593362704614801503796103281077513127170031323072173720512950741805753013242222693710187067132978580167671816107745452409915301172939975710989482200575871606859573780578800699194795692894603659856973743540841941519023796259851478246226406587386451492942185303751831993926968430067912898664634425808496549438484683143247132840715067518724741696859350400375471488352703021049897361115868517653517503639579049902437663315511259150937328480732531591010950133294772870310437007969377602933341739236702643528943932162618429015530766507384994218693727989522672391454900167928084655048078234489524510174626390838217255583560240921355973060295366499542060635064349647525844289261054251775525408171316671371316195087425981553061054122183982569600710548977805869770174143084797840089990883863317902811685933090684436223456327099214502059512723546581003485123288972819852951051466282880263576870650837190795711116239732738188308923740672554968132503719822213833073579685112874343157208210419458410700023856424674524688807399582832591490505174159569039051638562623615506055755158689663505545749339163447361578386675695557107896332031018473188594373331983684021893824470129011331124492500523342327705855952077473686128983961134793909894953274589906642847137890765097328707053313991034145567248214135116651807261079777462122634522215524051936192796497436848330869755832385791852131895852390835158039559380832236342931702098313439838014705692168460110902191718742360689238833313961189793753771950901666291217815600982452418989363990248812458618648610054748583035034247861635158778580568405271155033393796723466126266015588062110631467177916465295938269559148709296792264147904879568164147629719664034225249306972512498246368724344212564624061411947622540214303912003602337681972881940057103534903833538656598709574124240077123586347025998518184477547668836216649490863409268474959950605378122272066224795581767022669579396257453357368769815394486301966513021394154317196235176829618261973327404761067385972213371400754541614051056712190928591973523683800581272901598972481547776206807428008323591937784206707214634052592870348137160392725415199545198495323004410676473566118340025877758885792025944678441909696259739016316773854263549573617402461403661330138550734365126512825369285093239969425682373610398894444617188683712471266463523151141750675928410291722214562856794947189076360594538973425241053832378777108066429887669149326140738394400043623639242728313223524906846967887291445311092112573134904027490410973647071982927021007253569331232588577925112225704108234663456570453148234000454278264545539694697666970950926538774122749722354875090240740853899340198417886281876587318614578916909843161668998913294681604169498269255386914907107485622323733169795097931233704897270952654183607822444097677810132737488964135885800873892807020289749925735771604940744740420958517139996052108873112446281904304606878908936575179166668480558489133141746647036534929244225913360219647316168274772057791732697044989924234019161628310851956829047171102346953313209632969994440162881281688443158674292270294188541486883829571506072803362044856438900075338806466303792675296874893567473924226863513387342674118927607582195465689435701601900751396397607145348048178513336784261235627487917405559120627583817379721829245500790590884032447134737113298805131781732934065465110691142218712908116361806408956404369563400256182676589943104084247723937833912543842245995698403924777993902426721805469736644520671558225236315512262807461449325394460098161327824785305338926141217133607473901627228050534628162175090406208198445086644416357695620043922328474109358095945413340552251061599207451996949406348790563038161825026639458948429071160720003546794608272577598528516375865966491120686469613644448117658614141227222150880315386020386657061460786203479795025771495131183983828206813949646766282152185272903076700364840433581813010043866213049350863422235142299606504513841971919543563423990860050871331701728990812529563803004049113033601009480586517013691190006507944295603481008239148745713629031937715770617945273181555639351637870217731202368794601987340514654081338235197854089722553773459711268706691662339994830692980152071914833123044127318958483951856534590249859733104199938472850897093872990694514826308310900082222176605203035337152894885607286621147053347892099159431509311356495991538832274879841960893977603110066692329553232064078542479052626583149216741116423284184594472150476409762573246774805022224532755584635462538407612476658114999600929902912513348851534851726437711682243597573169252392079075465155821240372115150498460963799605041914557553711438778466322483634963100503172101389484995872892480138955409192357878918528055752398650286631958241686656334353664727339187766304525512641183689202741992257731229249041277322621206525132288589154415509705845470582683185221898447776192188258223927501211691380889200313310520169630905711283157270077372862031832746104408142067468252273198780709777919002022394422481616022981623407261192947047336773080964912202872232827616685330824582183189578616623945629734442953285843422907666262299780450633106596679354665664416220268958759012897300973051490530516746157849256709104490827516967899788689449051057063658586861978084228384066726173595601035298582521586460462478476369045981087505587871141901242611418739094212959537436336226569464930627789989336921400682574304963397679773000629685120297991864217440341410333445233760654712547845016921162229461480851202668624445940286666960421976926148774112730839002050136797434489120287509794661557723659186551696688630790529472574109218957267370034298540061689191538574384550162352626551020306321424644447618905957227229330389130137934149875495591684116145638547693069734736711738052227553098474423364247082966238680849688740698574907230248101293201915412761857146263284684303483885190961493328828837115254221351868684792641658363650322117283510730366486795803889488834080941356918604177891386742120697860117287378049710145312959602491619475572705406237322550492772134446956568102538032087595151889293408337003488147390184376571625084537405581633020216155923142715580412490259739385399584805262348744626095367588497478305718830046534336246784424512969901045858129918719444265876269496310440134954140370630609255053837814470954752295196184295990074909543105330706073175496430954054305615591569052590083802574624354629035592469650639112015439767052049810994145988464022215688208261643724797281304265174644464349842725311796716552737306400252284356743201729597602466715678217532950583467684208359961698920435919646254467307997717944851840259563096118599805703669856637020508319044744112331432221342295763481537218451461101982256550381735691413006785945535810514708084342634904417044791137668321111784719378533033062155366802499069326738858137196614313209470962769804107376842439920105330923159173302140905531813961553886990108691127191299958928174060525944257665846578536075997331032540324011019488439283439292175934305779295364608195550860575986092741741910783789971823064285409978457372161964104405715036231615858455215214237400758193945227644657335450875310059534493304760911865234186192077919839049136565774376696164551372925960775509143620750925632665804906405181792016737891859378324591363786663265164642118684504288725191141751253855887658759157310702131957906713227830550987068569594609517987011278634111774102739619681239359572318961183184067063845337583034608660719875657958863733053442798454853208023080324276306679758273476809732234027026532253287324919955163127705593822634170932518121121615439002678498301250358542494306417457337579241362652002129790620733823879385235273472274584357669985680817131582248111406174216323717380494145926395260968192220896207438841231133185571931034119906905477246378550631076649642055886523558976330243829981853457386768740857875567428641370904420415348971715571454431148050012143920416529634576127825508831022960814859467876375757761838934516106492447489867996597097411357447391147270563502187474843969499456108114223940022431021763506659156424791482991703392064034124926683589926722952173696764692382901129979998911717580133611542012085230254167058789870708061788880613881620044653322065413647611973589512847767974447855401842523890432981708404521507279599002150206801742804840397653736296569989385863180534217977761021038980695439746573995136223270756375311840159852344522312929291833073431951419631722116263948782914649076670944152107154981127363518996903177835191692545700805282092901687624514039796327938487889430592093096177856188454080918427833040818569032141889400007056201578317228219691175381214335708408672834531023856102936993411070815906424509168907732631589606664895711967973654274036181169293224974882317983214539584958562485197268886230287261544271772731557716347878474514052175947286169067614674178154221573030069899467048036504991076390733380604295956985732684715811551040799606775936593903328967944410962448583137700050565643294329824528180841285732859973408385274306877807875731820333819916989591485540563671120860557088658395158154513166513134225385907365574550932752887371247570736483917998292033585246002174175846255609383355061609286407082636565743338349444328446202273416834234211551167215155403816796656272477486300538976771970962473987560700313668336978172443801142507714028785211453101026924919410542893772990611972922789292163824453487773748031903079242764638058803259313315678756260549548487367513677701646612846772316817777503633847990966735939110013215893545194548556245901023687532817831358712038177626734079511520651851031106573394831981949242278400871922972749872823081449062165921715568265552051851637327580324196296683519779194299606742509064920183064276929382931951715255688651638878174861048730172877587801789696708109839571940142702160799269175411702464408905951625503881438645501337523202806953404620795089153716837906796237317821955213258328592061124967181712410661403733292640666379925978687886414522199963998274706241381253866677995928815802506931792555219303104046710772250726283149717776192160204913530414958667450097433601632547625606231643641986776179642593815326679373826339472852243536017465278518769347081302532063925819983336907690136396091537427458391517284567782394523835425403929490905669562375567996490367500745854375161007340864558106212766233381033654172352108170703892447445234359327402739083792974092825786157794885927389427307864995355519321517134564276676027421419021515665275064181710579491660388216222735632477168128592778140425876659279584908436980707569435793854763742834072915791992758366583411292808725037499592829481928003901317805429782659674062065163953164074897284454697974370562459973388619995113443367941249800429863219220116414642353736093682996957275708282665964082183813946692864867963201452981466533956551851777886391729178889493186146948183374029503542499768867212454285145288478703231439179515384079887666878910531222345203543092036250807501288069377502342266860545463546651173640037065364804301309412157302167980243741715813637485284564873644920050124863671108528484607346101715889162261833767897173486961423979836766852865328845958908588648562503867618269447732650511174826037663931132913604081645853231984695901485659926905927895482902065735140284466649226884269055727579010974586758928218507721680703474920083907469931530766104731179546022897561591249156718724350875106939206452043790885687750476004405859030906958257441963066992366201109951658448954028772121429155115589736521610729123052912441642561740075730069193595277242368610024675956313473414605584258775446909193736382299369268688627263655382915426030037969369766613724471276133611062706217039437473015483635810370781509855035842887674635764097231693732197031160312328212699862272208810056372350213091217046141872238143751398600891438118138626509900326268850189947379220538933785555677130442823719949022655994580160955517000391194815257963617446600632115101333161389804502365770662227614733759899774404993551096347323097736723226383853766969661766598783117544726254351181207048064864380699433470858099784112210450729207963384655834376510649267697690040185219070338634589846554989358160584167704747804405621763613355282487728959526380066466791556723992037068937938565594914515047761786048428904937975785175545079104705175464316281628099756325114416242167476240581203155133065637107764352026068168816244482360189204134412631251564804834976661034527022367769308179856807292393805868673107332073264518710383355805667396365521919094056475635514912503196983977028008401666611094076377512349415232650876213016326128387842681320171602430978127254290749667505201457116846738666278941830883158450091168485642358355892760662666998017141442142360099466930367962591790808207033925417584064808333834616358176154732010554430280485451369801855214282007343736788780862565559020180104487640213973914491633967576427572079377131266122981560196244740435463674933128304263224448908941766036281966902919171064646813851573879622859898001977404874444151871660297595189644315557179192340425152673349446488266368742419795829427622719445262363035442887360077663243621863189381752434840543058627630744322124793510161504403078812555912942498252253624659347150384559747969993068137198224253722461619422434717344477525116611941317735102740668322145318485003883065650417811699344939625190486340855630672644355684754891982062471644251683161279236853700821732731453106441294188131151440793735213797146459037908315180800551707679360212402377641913952284233536306033325526763979309447066930190707664105904884605361582294900413820598685255084773714457306652660101788530792659088991787521871210366351108950576565678771105153238417938101716851234442057432806087134895323073028079110847346293444615048767096534513732273148209337725978337073318284010006357654732136719166680727133126957824495249981543686865562721773002273124054326641740166306749515614159713115969515126052283878035703924526206466236887202866609679201784637278493887723681030370848010624173436390529473232750697577523989361016579467985174190692529204005410109070680495253427782048428721732896861413185926693526882277742677263497701232323739892829441218700734078665919938325314573785577346154114310611282732407037202012522559481887018292095206845985674444372478926721764235409603703525015012666456211879106509913432874764500376224931118905618121500422515813056211699224820521389303907960233684398024035428343131235201902318776466980692998215765012009142672608877474239239992663408568198344809207894704839936457731291384130644733684588431683895246986221951412286071385771641631689189419461607080736761670850646513325033920689203334026036824800435646123110841706863579311209303398016965803477299710500002916364982325195482136673286821093497234202323890231938661942995773533696864669232975423929299544146350008100595335476323602513647638681356640608101567322122415410988674119545017782172984407027770186373533995818438799639957373133739751596606894071344067141950102104915132568937210432043594792984229833784104497075661297053212356152451250433179526824199886690740333876507258281272224430035789009887704881474580320933358297217142567998782755197111225963394099162043926554954788969128858197282183502655726092794302236996735896998922217925840412225425748325930491862508529198512611776593526800535347387877009817795171411237857865453063808415922091620064918938417185324148921829437337613738856406374875469963556501452661205870228339440110211339264441301293906063765827404042030719317662050563696707818386071909836723514802529443593530136958433267249318771826569547997496585247943371051362503545978835216321345825279307751310260720031394147874593457762118563664369593333487798378965344178904608899906791663002261922416011442674182015150489811416910984352247300559604287299518451103073512456329991994412783744315053111794177805113673930160645803440129654475660455128569518716697183594169684352535359009603680383742684905962828673561385014576177521020885354685106551535930888853387221336874173230937694209185313934882109439756584059200227769610985715514184048003382940745541599039192424137096826640481270471376725506399173025112656588004563268388129218513368566241406599659772195702391596607435116849902096426467289641821727697384080111256349888221167576210641467899927612129953968254797643714490855402174455493092471345077501263585165305749179187015182562472632450122016471630179919637954839824709758679616281223827613902278928613666281501489841647189831343676738840551367177091002813713059473899632723933214897264047794413627313724702813401614871541305495462844750230130266321539655471370903647404802715250997022888418999541171610157259313418161006899865457403894924275961295270514462165926437164320168695651774978840146500839461832381224642059502947862699589115870738948922906367841792779389153887431844567652391790649875936635607570461590342340809388729043589445232326555479412620708741200752058723482438998944879428193547691217273116120720815056741849540075505958963314691283197359054555073221062167965027831810776891073032000632990458095759263222315695838153138904801598497698329029443784695831575240868836409102724238697038727741024188936156712599638678748268125964459728112261452171493951297907378585046715195195563791829699481145930698439436705007933007167511742548308036840875185955116455461841180358117645963474991951572560291035351079161275174189247861337303759504964933359604543379832479699483651429848459967742835754023903013304549959533340964835369181686631913799264294143879787346381403708780714568708712580203014751316053278384803394511974570250426213741480569455477913999065161691291105193366291946954122365235579880016172341774583723309249474246388051624431484832510070940165755962125531097687872011190336143286404597644935416527896760200730033159309897442856842312452561445634706127042832029804815250396845137466982495129837618951575865251216287988729065285785998372419977872181680954066339370343228938556233140554190785083815011362029695727739191626802041748078933301738680029881512976043463565126323031296417399676488961385670325856106470979069923689695805336950571654595411373607171314095720506872046663070884490859371008697323673631714830809797611305817707799205481010727713129880454189081212051798309233609109890358185129988365929358686508811228939303807564868219693132924873139963035407328866448946649659422204028177738062760867973397611219025436408869085759659819091606865850474064484672816827103585097172137611308835647611189645589826338284521700683717885724495477904870544377640645571645549694157630700247104296910437839098053447724915107488574257348255245162045934453776945650794015572676606448651554569387918528684408726015569834954577154238804990178027089973624473405838314221570007587032271462047331560848980576904319865536713770842992397832171462240228130295988399115503779208435823097918209961973376709700672906064475868884977063999063861353258027145725957633782868149504549166488153144421468355225863018370200364160825132767202258870970321636562603186095997884859668527590948628038744906122466190850433724100943126486859228760845737336758911570681361177826799497893804965609038162555218597512707142874359520998899028010067207676478773909289512965328872406775423058338724211393366049207333944980358565712875708467349138094595932013588839735338093360862767358851759656933116018843867969658604549063200185348299834000782075893003182984216954515643180746495239670062383722289099522812690359377591715672478547868954381584747701765201738556389500689567885712127659537213853416284903473812254506758580078161291255314577222113262640525258955115225534596310347211760775582441294376030403169135950544289584899380197378326463723579164465367473450879669953386000426427967681918472404644913568565222716405811687273806011093490861818131563383754024165924061086631875290262029804294619167560667776622609018783456056788592959053652900544225700810303612152900179151058985957529189445189145887704983038448140515245232383487901492183289315276080747418701395768653632029299215891717365070695025994640984200978132080989307642973282078611323121892715389469128210742512849900061261917862376012963122141780263503902728830088533109090473071433049285351032698210881610116131324713730963792914037614762417648693921977628217670275784678400167277293627007165645873912492481194364032659569496862458943343907294209263072253777360500249147778590990184218171352186829168781511366834971995754291922499148351353279220258233970815300684735848084730093455192028807431610427439124402381477583299389958155234815854821692124383131609364730135965745998606783794429791956679812205002186310645356573899540014913344155141718368513508722821074772740258588859197080782526251488637771836746280567427489786831120453660631458355628584400984414892743646367157259367767747701295667916853190934492694519742223828289077076323876850677162872044244894601414157187220440307215172447895595544319273300492392420582577546675247385972100276451222827322254265674840472809524699652911930836893564867104543893870672052844271955099778613846399285135560741644527709041375379457372488126689910442267745746456314445271347622999914983714853604107881677151271234872223165174246910350209938533578245406993186620628408448406716166199698283300814126946708963091026889439919606969318916471157989688475122578874801004011967554777828984644154382644824312206124915505064924209573589777456929338394484794805581558487984632666738477147252755193059685179020694715026865093329095066115528076590171143538257348899210281919489562794531909937319957065512199054168984264389194503663734183529892735433672164782146138360824364209549920398860978935619218027256923673562846646864615824987233041766829873814015814948699220366110718573582154161801872444208651981712522244990583088041646570182061028728979434392938497927445597724613583857948107038187854554300581324904553887373046705307055714750281797758060479448700622133122721623433379027236223562088902149357099789094206209192441029527508498939891437537556648478684269504581550101542658675863193542784906827763315252504670877338987785213833835974443756115133854685110448553542989466658596202139729266235026699380733675339062689801148647292032211517583611501839426511782505461531291965289042577818634764211468845124417073722579261076957445227131496011176018032218667807648997792754765062101967547419779655166096087372924663114967425530422520908156474531797974457427526326251219528651730893011653631498978880920439475858677176352611624066776440122780984088652022612713032138180033520398940609645441896858917902566493113632186099551308284221961813627309610860184798736151938769868200561596267171959105058564941251378235402700688213303433853451664014279017584145304742312086940224465048759696492227120926806925132805557462746321990445228104596722066930605851311113159259284956225543144769985298163379241369637374963448755349703237868237594949249820384781017799223155566216647688144890648042372563415448259009137762061379330126270197811426644614119310175501299031012327050548261795286379858906305454346233976114455551329297862761431500680368584251703205190114084788626321795020603143743904935158127831109783795423005446285530920778825126674709916417023129710369728916210076153545354218565248123160887309262513809695671089042402845337586062521206530259827605750936130125282035618785380771221333301214615098943841451194088030212893002365113355318505810576449288359057879595098844286620573279585444552793530502799587587185114665212122304626662045903721669913670991729230267288168840288862502091305602615020700415570880855870984401414283544270896338132968856361811056055018039855472646394990630393137266260628161185095590516034037546634729784908691100386341819104558534759420971517238825169271101348544782515784994496499610478810886288737969767570307895770599394914204480858745840730894832697480663577406414800030565668268232541887270852912690262948663196345425462861694536323874396903187389550517127549712082914256907367848614701555305272904872768920173349953575845323552960405465470937243580674078720114946346926140227996548742658482680341748972982249588606300061308515640813307707115780263110985768499535795185719654232167685617816481108235096986020549957559481629659252860512784093250147906149998984696981073556913258910585093212305979237221531174777843063774527655686293385159415406144684282142766977922765910720286204051385900077998565806244722416536617038932372855865811569479755600945246994637435780970692851457196452713805656145917001627670764060531074578173905260938867277333601952641937885148706671261251649226330241114833145106090688170482865704001934598302349097172759082234186634331213053869841825101541016801455121189142413957989783647485603460992094532885285091398825073346272153461510617733563709799477364022826042317539897217913871494431925869575040575809950415201114510322470417101708436174214792427139958387481640736696225147014347938098597956546038221050100098424737433183243834777448863461963001562471001933931352388962869985182861406622168717195781096157504648909480202905424785833404457840083498916827879776357033310074256392444512861355184023493263241609791672957065754732958236814553448492695781690581532408327521712833263318058113972175853239659125213905683270192562940068076328868770160069155528826406699664475814835528508450289227101179566884777346543894406534858243090923391958364069942794962236263370472168988065450398762714860301157686760049628573413176235548676172856859176562569645357326313547385688326101226504689644310496462196526382806013882044333819857100163344143387547884169257310043810155602758408055007243378434256312021573257088084002156008409175862538494307606946547573282139131599346207867763682831695488438670205063607491512445441977938429457324348690987676747099843613006138679159572658722772871012983489767753250171626294950869424424924441658250456405616752799681803590529154315337014269113503265434349682716111871053243052046771395419794205281548319510810630419878299526239711705977602115881941364630175940236255533746328916253700365843252526719898265507894600058739570153368899986614963902924909446794608274412886537070158276584891277580641863000006177236645140662832444028502418028619452035430937791375407042043682167275988342269103676343670064566372190987792878740708099973646235920659757238177631891337440548015071400920025340633640994878103481297080641058669122809375392598104974055675653061360133310839708073699043426890877968976642227335769521332179225473922635291653265446144939200775739809025341846335374862617922110626926713165356682956527270944821486977354744389757701867584732790806790129409406595451558991689614731118269364401027532106599824374420657759874781804318687159043922441682796923323414694030110797145397854721876231187732307518162787136878009015857632532111065298947679560797871901902336112696114221286499046393183290194626361521388483115562228013840125687290805465844515526014420134167957916710161261215096627823120116309427397015495402355497826400404546464545419503539808904522048275627320971309306711205444297434607443962101834538283636076053340953833770437372427371083751405289200824197741211162225270078187070415980091656488375272249714023447585763383538721486768053165495402241422973896660501748434681465391838135492491539802982350739224710157234847548575604564743050641398310872312293663789918127363183710106116943607400005203372505710928296696681816947221520218088747519723298264633435899681864279011602537165250171538814991005364883710656079942859762979781655682453332937651894543678120657530742049375860296880133209952801222367391364047454644433494722957731313926176347792728414777703677056880308116630172122968714133164540689692181528045818342235645049222615842538393468790797398578840740105859977391916249159851245064417173791255177120694177883137026371299736424281380109694726550310789747862596090353028360633290955802210558900637530178211299545284933701375054919103797315481142270360014817092621394860384535049595077966102018572894661890232175470518578184704624303086402097895577145965709511654323122212749028461994487519406237179314651683488490090745058475688299158527587788590275930045950442114521221828704073368777604090673171370557170398478736017259470734582469425569148285723991787138276129263708895641001418443126606340696883641186565274223664481403682396016823379576773857054456517004159137797864978203272506945804544409802218214311171566685141459575540386894472159205181479129655454320772222896287920822746597365748559070259073828603998022262383568353940354820703804001283408487263203517773826818920760073911968257727063838393963610423790122254882206140023321160640809559046334467930053280952833314263930848947505695325432784911580893439787541720113067706122667835224801909667360377523045307094445937681912604419763669967586283461534368259031708701770788383980984549522421263791259452685811271899014445994427738838907294152674177625632983929691364917396800314183805170290295789038132554157965209219545520578773117723298492993874065932680288646557302629910895788661498724916347439333870041831198684974039267857951893256346843533748454060838770802517344653996333831704184857892229032700099654044905143633653593783363449860895024288994793206020504645768530639315764147175873238224754832876936271549969503769427286171433984168925458251330988234366701332446856056458622498070973495097496854064017695172608590413319829474472835176359529420553996707802387869182886098849952128517028066717440438473708302859121866240992046462057789961487348690873988666352235652999908039818824682806351672381160293321669853192266403690690717761307277777510812938805675336455214826728017708837370029786248095312565294948209501054378128612760383957553198204578817863036482556099523844200278826522464922720450122561274201826923881390196308353853053742163117417606438082095880688116024137425780640657443169681290943028221213644084051300091459885797114033167431229312514189252765384652205955462498351812223501397794820531559387851143369089582566798237090372866660217036929425006469945688606254884770542102201283911559627252232582376546175672938344215924336909401064373685969637359204438423856027597459638655028574479810865572199279577311948565148619340697694049917114210769570991679606269345401382896808865640881366432282604278483456875805253277193243723855327457404748444046012053716711906112950816133068939082157730553740356672982775927246477645374983246860270656029136303270078099833247185161665805261487641024308547171696400963845175620685194854762702871590903494332277599413255700020955960957685600401099008129154589952494203225226776712438028493437282288187206161519953051442390568850426915003599906493821208546409398464875714190695010047813431210722152601568077029651867305591578793818340790992361463603550676352520041474098026525889267834708922335203103339717596673210659599072728418823847918393668393309309563000750619261184937104820827701327094498061579137297156847468709883862298454440883059280355044332740608952886573975843074315288210360784031042042000534182702423489990801806479133044058683385527343642897892563318683882242049291662284254854657081009540714942643145274661788734387677213569723444517005671091067920800203025346814502851023554001779457911912831229573836386585636186327627578994007531108719675314487419157692172439868617093704994162996067085820687867144669044849517648293400163589022233297403068918286301536365098796748651156761681688113194329819039391011292985795355412841339061149139080487811553685214241079965813417355229701339402959230185510594867229265596151528147316620992848889636105516433060056487989953922559976468780346131036495210831669079977989789279187784047660022330601759293011650196396842635776736896426369884559307006834542895389452366233826961905365597841105703987727345932583887623227447650336626299256224590324805378706073100840751066428229023845222129488422732893379184530286701470309334523426039099869496980439468075352095079762096096453035063447573573951505494625002683254851097150609333446455568760024192209360852943120912715646937842737685900980374703952036860073442585319577724086317758709363372166481436740357396217186534054470092187222843991091002719722072422408081162823739380447026977525644097603252361424962552047154615782078281123650508463497905676344466712044229879784961153015743827639010436658200339815865927265541552426183721600140790197727278121364765950583836867194284025560870839534614134778983466790317750345073920387927434805708991340228472910634111140610565873782776044764803236307911400333198536107859029700471200935948154479949087845919739083587013139578687685273091098519507374911192415156353670868441651001568080778380401220215401057406583297810142274072304901339297247164269943091300770242161676051924227867053816373772642079416202573749520683158680176957281095713478040674647389923128458039218260455498349465656844338865361525331166611381137569760608114011373974938204007141780054701156839275471590468256899225382391724661683051714700238486235473134593861115767395143762550626905835591239170717294474267831596963232141435650619516896957284738524281033567795178718874486384427229838763228838989366632009928449867845218604974790724804358957369755685085887526110532244074159391195202840691395570386048119552377560327781407826024864559031332857868132259585486949058279680426086484414214036887049294882100490867713327579518177198604707725097038402121726616526878143505183378084681662292293771259620296595297639479993110608621162535259821545924723982964706937121225807808671542680897373234567772360160490564391119997658739955858825298410514109549600559509283958659365753479600597607442124508794553860683314527684991263135662114643776363010371892206416389419993489733638166271541220850839829730485731597396359801976261373153382453782678555246142007779537096732951928496822226750142881886176618767923541811206433060476333531326188106534065620110934256653164545734374962090914338361958762216397840915556242551959557772079173361663992885676087906033917491876500614136195985231508783393787723750883232982321970721789948690222720407051107145467452412869637858691606367812091512692025378708246126270269439535482029474818143006363666380958080436373789315733358697701592774756987546871907480339534712396143885715437548001787346519810011731300091741608334407046416080851633481546175255912476248917831604694387537014463248119597584894090531863924857921432368236948622339857227929203647060683003201998781762878661269900825002040718237401626013620592410740187544629672840370015496458636680221169907101894253550142763011246022108267093191589925099123793412739154370064797350028600950522678389415483810023143823866900307136674092940202047524411922659857653864289218035836674164941798970406043435743035085727317450387431544699610138496473408909880069943592251416170739869411784853494942330130984586286698371660502448330918675251684962639997827613544950439018762524117339119787480892528313001795698721838917177368198259255373176391623960981423131487098942905131308462305048298623820092524788287384589066614118082429900862214433607477818115791159746953268686966134761993435730904895303317945780832612535587858876613529857219902387475179865814135128052064907819585085707657031196104368780425435755843614196353207061292278390585003837861198208630842374269215679504300668335594269507785013169630526786895641169274630058215171162488284912058987426494283928200298868032112534501361297566008595774705292580860379478672263060787163641224955088547728704550285825112425918387122080658385699412594362079983865418465433892730321191255943557130849154054990078459980727949996488144226820771731980593154614974236443300214113336068953162145867003451653548420763004534401539397689258440959397048367569563391939168206847701841087285048154589581608225615429748367708249162987279668464728584561237234390506941562391014487857992099557108551831196716990863904336438291030637487332486017067549387111395372615082500291993092535599854010271952411368089569123847496220101023797944614632868354891338692087404422429466684221469540603621355050127295646531191986916271865646848463025408710935202439588806107043274823065920927527235878875668304222867106485430892690131355883629128574853543731103911014383479647733383221044487802608206686437207126475732233448236512690082179886598619436451751258487598414990924908781583482918438501306142497611883353515494245737453940789183578154766206667884928421417168792986342251801902900117717285672010497125804169255961763317591990980295612591585708907636274586374630631440089654277564794821922002383511665119851083808837295986664968805073981579166572918201450952991796826256171741758214248713142264497435758308022398241423919633402722085424513968820194899021174918445769327681794806305739315946888469601726608693853897778968864110428765131215352731846444454760503941903007340885992154387194671806083251399219116555810789456276770564711068897218248485690996101841982835298820194391725554834595282472705283790947687031408806479053229870577662503377469780804932448732517771900053153644143640180308610543593879800615012154016924365064320604394922629018462145997571614405126318280478468098477525368839131792884645802026597784652987427864528662511885200526189485769042449360375106389924099946141047701133204002270964111335891811813262864854114428975176070856267567267561543285799664652527625925404724125739430778327699537518816309831719906445401595059288111415050379940645021096568886189716076174193966815525545861346947769575337524973989066708643328325701738423066825781421516242278665564877017529946203673026685773719011550697340455015282353529261640196370881753219190319645366365781538531656582051257784912595311452381622024399872938367352116862009856427985267592094174118604076078417890351993982899095052200699054616896152997503144911359476366350443974953247597002298443104215739081723549332234796832146105442399268305840408025757669002492667966398255377259196343585529088018064423515551344924450460082760966037145206700183752155760801291423492389539244393533105828640060069859145310802634461603291556337244508390534970201424544039399722758776057933251704358096667499335692553901822488305013594504128585570166849431218502016417825862237623666020434679184383751654737784176428801826046214659108015605032449524355668216062455095625134097489460777660312392794627490154918276329242516735694637928316896887679480782582903200925953175506184080810675379292772446406253885826245571373956656668118586077220958965919564365560139585236222652670489888991326377843825581784153982972836808674960979719369841596393456522823981279742636017379204136826127592787111239432314543740100328671655997609460995849385832123533401623131894411958474024667233675915887668065317733973256843790654450514397930384469124646530436262320374190888095100937784194878522244823543700370901824442109156194572374601752799135714656634080773795639909973051311484423918478472460451719380151343368107341813157393930554607694932491695582635963895827945558043005039460059742829923034372169244403909952080554170018629837062072749643304776345941175264395825489751484092758260130585913120612918519213017672477482428015167211276227762584681497552740603681483773292199742656270772573341499475932930438820901896500991263334862594132267731912545116226128987290615582273267983940011787679162682276612570219720461068189670273515742204804797133423566204581235569511693571877452038343111163897026326715840296361920238321647724179851223958984675084648188862940490249522555110904768294915292307906014773857775616380328530435519452850543187879155662037880286372778655420659797513938654804514150074090474034194565452162881484263736328454372147652717949640122927785956570276496285835927254436026759444871629650930903218760266464261133862911457689137438973249324951362157268521438877351482786186676178026129088006390388916880048552497258562220482977781782841473209436116281034288099043658613736413121342143222208793068810680232836700096177744288964493215739565556928610380253936135041587736989696952747161857764031944922917334566544506670355596242964864031258772230226265951354631477507642770686393564873754494499519619876472673817348229415577338265517212354681267049088636882381074044541940620273968139089202667249968649956027665315926470481144555327099994380104763440353068244210875113872224870884383342771053027029945990260338593888940862758864950192205548677451405794975979159868961572576496210972066476385082500269443918295792808316922864140773829282803330783683539486372344534765509754908966105631673561332584320362962601448310133101571076661619334843571084762566268978311319947553235396756696575958403690122939877360548075767524890923877129267696987151164426206822185205303669614895930781090864412616032636571104827394552526159821809936361503726802126028287813726925208303553483759400655643677820710171933510365348222527180978632304601922133231637861118823942965439796588368823989436848605554875450048815782928917731678441324778951550145525955753089186050075740179170792275892644059077215792798362526402583384228423043119548276855679713183405542704239338018265588633587167594301823508195266375757754536788811857618723436194157838374226588522801996939982082010066705244635281615040764294858454016752038093182444985253341505633078245949800185962074942317001630077372545591691072445258534979262403068430785140274666743791831216651746772805589077881686016752194736798371440892210255283509080970133659770872867722336042285923323665233174159423179445616059359458641718903462566266030103142634030455288542550398156939389824254321047127127302821298547694315110518290897170314055995729109217325168105303714990097521083212612226284423689849936679095006527074131530547221149769747756647938881811980521180567946694787338533879273852859539893554528113781618562599298967533556268027657684591058570890072613162678647821428707118830142259044368795900279370572408398823354965316163114225975909653588891448926544946110934180729865470155814948396710277797434056305502961751169087485617400599706448526798528171669449165451362910508124536001665414631963488495811037149897884951199294699556459515711919409928656776141170107227949118399006749508204599766019762145614260114103183865818789135085269100664514911026679411065420122247762443093110752929272579224052832594317574646192357456180669165051788806654380405360185208946823795295563260878930907443205554537166458301462226132640360279324397821653232856006047170171294724495671798172563657084916088041858826085895921927599093927346524433505005513753308039016746860143815409286734806161733436205586746046305246750905133778129050982273434055970456567796915887638817990977996887744285746046154598858943256644788321263177234495899874129534857935227799474515183040343490110067203727692973353519393036313271391720954740647077932052579675284284642718297092490730353299848391887349467660479107761754296625587681195321639850469448642128331003130379655718518588371866997147447420016685681028266648557092376389185413198758732802245385897143813859062867254519052906102977015990927149071336536188033442817459157380028373492385131979962911870414572710794724743126649264647632174743808111047087772905416138740157451867786899318808655394998118632300544822672433871740704630344739036952601871661469177447234825328720754066686038891703175655713498351792113653026233567048238731555091242003437569421276471008916533038206247543841745182198345305906958576086844345009692227266297870754175131843952927228954842458839075687821957309162306066631039237919845131124526343410258365833525719920280684824264193497098658666173374298176213720494280021988545239112781664590518751454127397699867578347956742342736956200174620098234191860971705457209132596628710168713241175874506780331152314612235347392821351430145279672505916571959892024172349540494726119740014719892851641785089593108422372928200388115185724897117548641802178134740497368730167670536603286360247941256695695843566231245178303946971575223241835597624003854035935437937236617473424827336725416776969219900873847836833277320862706532036197771655494723749912989168172873427604352932634294154572755579610279620198587381306956811287219019578197042007954481921022126920749420657716249766129798618114025976484946760042168552847429010366259322363386989244595344766803845873839961356241029371428312635920818036223508762553148516518874947497762989259422682973721922911375369037356766133748246401228427968157038541003836164745418378183215216807699642725101635831744531091512842772271412471202887155612007915896250808202850438801099371444570063050268878757065388464000577623306145398180492342725187668611296690767174628282996138340067501658606834110049799123039806817533869148959355147423363731243129791184262642663081491027035761622610099872022645812155195161628796915775802150412648884379019295522180256396304104195475264671453814673792191460187442270675474053922881235103083852027605239154789522623192343997976322658951775550055909415858281109949880560018011446027158328531961268078849636653863605401090669604717253170218500956715023127593676280819342716977994879187195552327339533779814146118474666253718036083647928284718924110589472194498394596045249293890391172692635003378652027149442665989532531243076364059963344361039994020943462122393274337327673595478106213408448431608711573404790306377158529754477086134798422546079285625578442457185340509957989421172909112680064682614042033652374792178641556621314349732968586403714711877980433269670178612793422759015735821358640771245425177771925600689279380043866605650371447990656117946649351834948322249009650128310870026834221684631969102222542743838404215435106349072128165747843658809441409371173439538565471040297638433688952045557183220533731539343659370401013719821396614742740456962979573730544591374251567992389058551356115464198243739149502760837149662148338953863011610056080165574622884412569268530292587583901205113498456978659592193545385787357448955536295447848601449386180885504808096921621106965226354100663358824304886941407825792457909795341989070799977959199531030401354858353077931522246958645856347557243666041462244008694881453655930020415217693538671876544656417184788149738869799412297959543537396464826496861342391720019404747901081133345064011557431116960571512456582131188627740763981575138900953524761733848854527827965799663553357387494727509316828894601797235514481311602064967842642102142158066418095272478029504812140980412611015781020905675006587982534280085831254622458645982901706714658120105163500702307415092550269351623204940709313681079173776017196884515630032140328185347396294611103911040561617419625999160807668223144208035709381313604871108489505697074782706791004961081059525413112976273263660182040739687577247948474646724831743207905782488170351594007089167428087915714840378495262570354820654514359207732970122518912338650451972566588836816122351771897010154536630162551936414353291164147843659314456431184190639958454449348765462666411951647818294462768985197955191861149314694498770894770964848530485763471575770915319632400837563928064796449840810176989238349660617690353863031390747176968692528066845304761856623698757246353763048533556717826634809628561032461884067987020942179250750121398499391238740220050828116175224749294958314656344919706533593089256249982680578890050003161235325582429519937943408068448075479487525569316841421572624347736796000113321217338837901937026217169961173774354397512455587040933843399885618123956151539559007855356387204296324330876054316958742593901645165608469841817049226483284650975475359569801214423215008706767617887816937250169360346639405011744449284116056780378896324750717936508474524333779296124503094615401580594114596505275228739161010433877453196251761305385140707257587531018684934832846057931277616122130133475127941437368765172331056060624301084842763943201337809089547165238671441850816840610052861497142652722992606098170526543571210842655096038225178305312174006483040732710000170718812402761344293775548977256112049992719553484878956231022206717734092862901819547750079327273850747665964697255113544010563307645779707142803460217162905494727942847179817025406959777266244189306636341282248721908392510501553780613397816157281836638429241350115428086012275588210387411030542926992102022068711148581718213713375641685261663421263123135154891329650810524028980827053415273577191292576009237751591260660303364384631295941544862559520226059746369703095984600444032035348614991929525797963720250621100549587639648251459599242712129612071551599540866322337587618130811657442944631609000350285992443286885607524877327460001154512203683572195224066206173144777407984811606101577896049956051555993188457077788480392233233434016787340420872320446670592751083716581457159317146585338856191438856506534244798045985512182197707116448093996681979835666160641437458361877108414747859843401632362423731210656644647162928400439418377692598763406462139858360850288683204982388286088054438919776720963743147333612177216571264541727715761335353210734523075570482476831499987455714960909880083404749476359604217685583956994768121087990933604969012564587036594525040624300532798411307641236521132721473575010104927298950283960840180344128695327045389134451993913642759627773744458041404482142580188794635213261757790025096125156788084168652399016127034973075121018546726230018032007541192008780966907605545435063651807696903748364065261372521399622099658792380256368679519002545813011314334463182077969014240025555794713601320414137269308101905854985311420691560057745124723377484996068958410805258159871467715913980926302793715918346747638745428108681386102070741454850752264903559117764427326539674726688053429303594604823861418157891952819524573788987975420752712219853098288661972411583407332789458189688869677772220715478389294614442230873349719489863266859303852435215283083685916502222157176413130844253962349369399192318418478611254974393135432641837356040322138723181223989884761353267665385698391576087587785918560512889431879713859108695671025437138831819381299219452415207757382067957259490640931218330187428810773744706947090965241985399713165303856810298121345666504163491939413203997096606410285408012919770729744235466985732737866295241363654265877604812739877440586868014878334924027219008402567120860813741265248634390725470676030805803742628183380582264778501657519808600665668260830794586477414080462575540314425802001608290158677613871353008265562312231969336124343288581012676129231153530663222458212844732686475788915834542904035813737020983267689451246207488389519871878304762029275265872684022877567355816204057890570034316172350556878911627721723448352765944649891061948598264558392921944585297833961313834462984822631984393780199460600316034188671132588550118103681957598615618115814258959897856912541293184612452906377878662369661734926871093811668386920703068763475575828767224627010141442849016975115850616916009352779793124871300004209939211017451995983333890421256337995849136544842772891853357508905420355509491597985068294137883615524361447407627159212207479250075684889336807663679828404445624718407905383388356056962682262797653855171660207098584025028366404238617285930884304722607644133853477407581616176115036448965938548759546045935447184566624259062872944070063131433329909883090368114253584222685954384814739937936080588576679287114935607095801803314692980878079618365064119183949904872718737494881828992054812877714062363555454185634800271254943874365537158275717760714370880894120826450692988310862977780519377627742555411479701662926218073492668239842844878681271381078944790423422608778363877574009586157792431015447551186717943033874437842646257971664849520670960197657126791654558802589323685774431943984516320755027923500834422597264287824121324033248029736663893847848928659538761875541692091587264779276390682251183449803849667815777686365586482652867724464212669951869035477465660519011666571346962996523173450976563120015843170369982652909747076472031910601203220155784436007520378801232871589500459877610673976577140083688071581784658625142427835367168052727752485791774732459195272897904474952078512754025550368383368453930322783278006183878048587049239853151161274831668406834479008410354615941063348012564803030363972637110103809079284225778411201615654243159227819726891671482767427916415549576028895373684139082782196233420841873928026462359424578729141032339608217091575750739806786529148953970781724472032514817027239458115019560743199289592004593082021680932210156020829453682145987985665141072251388612576990814862014498957742667892248311771923811333588177573468183727560546840567845740304559588585488311729133259351130352680817816526113699240942490999567377842584429346169821841450652360942611893241473710834308914623100235355073198741452061971364530902325059183254479810318592913351600917789745095830080532730069011706965046264819562281818768056748905258440300813685461005847340821898236498867397443452306110631696371452372881776920926709388044684282015229119674798766839718163600968517813308731365000094073147903660049970684431961416726362484135530461267599752384038371310467825124184187744785711077249715459967619594833382249928775294847605543697899389149699805570136272111170327692454927029522979981220394321855967149769209386338116378433176117062903615219388994598488412395261681263725902194403800896668892399213721476991419979619486650248312073572349885613716906718144932857774468158361131397360166146811839440275369538049507629265766706623218724757736066863494242409621946518710241722355278503911306833428563477255908730223323385769994031120922631198605342766011911595070254258716858847675131591441222826890505395486483933652410193096949752095113056388839364238775293079376082572048183887874948250725782080591610223936121950145544703278943408427497863596231984026798715852923411422022618526964938093734965720710396606741998732062555158926153178458069489586628188581105787702577141567212213025992734260581921679075313603341772095647491555754743568150474289043548048622733266117530570470725438164005734802802081823526050732376162818855085610837802490549770369470107676406065184509326489345762889846326956150169874978260237615293627778485298152453658487520689980170947675353751588261741382919025611856539112865246398426116230662190851038502802205779168383818259371744377072221265328408049331506197728520939400811459486177929215331878887514334842197611641998319211073911900654037321987341536915963429295687140311137213380754551501396020662336365632893162708019875172927554946614168371456181725729520496083083760651872471485658634888726138612681362728994186769687146946345167777382561187025974583890364990591355877256827973410444188248331718385711634068671615750270522082763590224205622229894938442868640893675396773372767664689778238168636424209140784890003141299640462380017276131355981102136684471556806060203547267908985627655602295825207235757401760865869587822838774431864827948786285011975097761699083470300781378012028842517130370114523065916174498393471979791169346980344797896842375309491218091879756589607228088477691599953214128802200308155192627599934887357880216541319580730400989472148881576000629143249339419997167207311538199188876170475994220386937267764449535980372483440464514158771685581322693769123081259768220566649906009456009907898153552603930216867609733686023798056241724009100254077341226530880026335317135921580230648441354916289161177908433645974532487307972701190120344424319833483851303014666363408760218239456449946273288683240725259312868672670127618039117216989185666751374083394116070011931358744373410559943763766011078167907884441805995277684777863222440916827650110418557418590674774750704358720134839978730165364519789425207369060961024883376388281659963348110116869913589309333159812867407069956490982382075219729839232662403831099615788361801546836143626221829032969246614587630777993252116700799364232688908424921433305971142200998680409567220670837496233121367154954847926438810331511637208609147814717633054458260605084283151872770477319771470674891044416555392568073341648234376472997921984530318458035728876812513766520679043796215264211710540099030400664309771328220407060945739585041147680033166095329647142385174551152343495776885972126286968858382157591232613576983907949859771029756176778023326562806987513803411567314225248393371013460677583212168281687983675238946743378927756730813947044606901568461673648615489963111071920368263975747110533646226202707475051091460118180379763012135811551204118040030848308044140938077554537658508485442535869732501787690912379326575404865436378505646592258470472180997489650883159743865288103428783484942672179271268933003926493103327771087465477700998905660832087022482304839557033085382882714531112355556307883485561955309063928337510756234768220220704307147645177869403306572869373399605237604748160086372057894770574211804831981585355990925210804936582915968297765451899443228593053857672232200416355643140568587773840085498327213225033179972675883771619879321245496473009288387283368949385288342823351998433640620498394707696877377364851301956138111037063179420379960271223061077918363931104844337755300456353779121279723840179612095778858053471289144821648756587635234534367950941332818072312786309266025029570248948049067066294496281996440689240311781918613070066301803519428037736898841390072977230100909317783432371044266457148112953262468369209269262015360058965594463499453875358280140670952739993852180889356597283462479464194290038775737006246191762069839965864371832889815397540115199784050563222719516609499391456696224216945930551056983583665963160158643245069657208973683660892925462960302291573484336296240297599885928361939740820319362999386962000381933404526847644513833281574456423948646672187183711484320552141468002699022400519874520425643423414022154922995686306159660530990478031120548857869095855682358932342608634301055986048012990267031401273100372325668960914366577000718180993768863762401024782994161411252646500395401828899965494884709795284121647980141874735814329782932711322726410530190845948963038171545381778131751513892718594946150722678023957556181329812309692683894326415905531406509493542623198077659626084942070106594358735658910610850839972919646734793011161281024532965561659531437771825040536655084814222754985642328227079140706081731551961824645223598921026241837259440698626667120711205351182840059465870089174021573543139262924028567604116185137319645710079266618363846548575327572463283286076800168992540600798159252949068031061018932197633222287151206925992494538400594173676431278273397196028085230713434965034179837908344592036509632254710327061650302921862483966834885989801295785502954795263361526320559296308915171443369786933465509623500137436217795078420273225380181818442692904123317136520079234747021346590795492985711095049792337012790772989749686965632837972229453843693177299470776826761108115965021405123328387100214119896681013933004477950825765122015988873253626926963556062764366890036013022254399188021334386766921260297286795248688377673449407703228194126544826196444287518555046796482392974699232123431374173491769554593386300353497855203050243197801930065397746977099063104469948302139544588191213537617573351555423264093953960270267605924056528533281268466557163274007677170396841122948457359951214033683452854609202896836698052187955582163415964007807612425131732879681459928332334488186869336473667313259354901311848117476846672766204141361852131414167175243005148532467556375847949611803986846238619666722661814744645175101595666926674056717887712834821220152991806189625642317636114434941312232615322639043718412016821542581540584894178106598891648592081924871024816349042644395157464150052521430174010982914852485382450363301008868320123693109159998488188687623799157440160730447740511167628159536673572931739666605935996386238786601301781541497604058290798725137585328159222625422483149972889051756999583562883439573135911014488310601836736913570468947933698149044110202754929163072674920986093162853935384307579330017433194739066356891868413872518684387610218115034717330985219903678109563605311520649217756963391988944165032575685559725361488667002663946660740444656340515145507256703336964426483171105354063779234686355030191654551734552038604406364493713963879998221018419421184793173449215625441353947144537987404168389385255856961180202036763985586070216243217054485496434943113866785769831030555993468336402214151229061355851704088001180708436251857547187245015974537742282301903445602456554495967254736895584098709215395140056860723720439501801826596107619159635466338274618509417316144998614196106482900966585228640606684117474961310306588801412261302687300890538139411953883841461023334117059973293818006206606242480506305009649178911075299161746902818120592772228141980583960469575184729558677692795812446748697360640829424825685075403248873471907222107933109889112115286276381307190545979190686436176413690271355619637703809941148299926805750747959204921724560741767678073505783211913264148188717212840249856321625920793987796563292568772405639532532525321195617970104216635191934451920979614587883107547453096129495885641280344563699076313168579431848744360136313461681783899458791130055980583161528442257629984083318687770863836792893357037178365339152941286189618294361428629005101058852594675701944922188934974572465992914969996177166250820306638846877029435734106666498359491030408997729333479526126039939287617825003300473481389938269235290473975449454813934448154084234028897983600932804104147403569103445153611185498563282885929047652892954853137990536989648895931681615616131921530632322207296127722967703259491766257186473354213783193417811743913505787059176910957412963802162374954200176934001005063107307770107204941319319713289061650361815662792026688016796915890496836091856037638401872653313140246261774437950352852684316782829235479709026850097346174153647541197035152897752216110072130167319964550657145984623000447131963348068811324188900960367473540181536569147429591154010022589120792476803717544599332015494377696697817730957966634069532035676525054388833555252305281234128217501125381710956727031100804992427868080297832825959661177169186042206543232316376455616385051493512711088426692366342449439905896166697708401533933834472455502057221703269747716869358390107189422102944288315771460238051027785881113224631142032872271804900787229042750410789178564303348404165115521624250404163420949595234521129326701978916366704398033937636070888194343943860740214797467823517842972673003279844932872965199402270081753152802467407478452679662809761538818886678996423015539993560777872509030397437978271168593398114261629240280164503755718954606642323697294626532540886741396664237537497099283795928649594130532915435938496158382079406523037241929600187583420382915533271516197442398022822512678408909279480391745117146536470729985752317816726761294358395129802664902698944194571622956761124305477980072937164346613014676840384569759122072722531812356655771451786583134917712166323439322015065604296868392464570513270434212090682902406036462679715617446788245496725098082677439126579795407671894987426444657651206127133248410572437145461488813762237927600304243553594674239589178883251266112095865370445873899821993063545562311307751448676775334511015596235916765147190699430063951729035504332659934523372592210684125280566771262823596210401560104729497010107564016076000572352765626703020271148862176790855818951735849162556752079446873506670392639733678257452195838853767068862956712512563001826097729140401585544531543201382643192238006609550148897833564237898516923305282835128567831854813475418256308477427033374913882498292672324438436138206465876926541785853848564095954187287541779440489695379333353979625784385912030042685606247512014172883576082093576719392925654704522785872019188916686088274946971234722240155351106805351095345617299345801195589825260255107046617279739944833740558625050398856858752700052980210138328174996001180886123628230382141474356280475594940782167619714619673224652023687108990889651242588420273340619377585287802054727405674959999292544528955595565154586490006616519837614022182183771727752936858791161956215278684279182669320562454180511890558163282111255824090574572755877515538106197300445745895311645261268730150680061414532170901955288345758044081438701968619897091405353385935802531860130631625382246533338916215273854727258516404400457605484062008227486951756254988270180361367040292794256121436598348627968849341863041866219549608863628155552222070361055858897591381966223176740476908894801600722910455473938102788958963603832809906647353402344146328905095187753219512853238842139691759642674226817182259008980163769778661861285411507612591761354316866194775043074803777714885167687630518789723089138929886573355897492662669315060227693218208419002090513718302300622018031947597207427367283114364692252726927479297347467388129575206991762875804727809037342485187610616540941124837138493476955671441579457206660419099621509786221185523433237000195304280221657087088227217699741830572097882103171607183555628993803461343591891420626173331909597430938893973430420225570171703976405063584148184858148801620505289206188317971970752167635110376442054650427096107609618547772906890227581770436501236070499767258851185083801902803648087812279567163074887977714312458068936003131320908676600571549276824788109671379579310323306806130685847002419843445780389962645396672935248285619226462686965021684119855625214265454905070638392694890836264597388840336501203167909041230761663156426132445688824882765090919841683701092293909467060410871736062062824789577567720711487667702908867356804068666409294109052449582256570947384473606035477979976883337936318185901755758038354873162492211452920193246199803337298689982631638777708865869838238904494243013911018343064571139051105666257685231323621120551196851204520707868170977902518472044803190389488552535712050482341523723532448138921402983814530292272982803491600673145860257723552835700074431625539381709671369726090028058196660235422643162150624179476773767117175768860950522285019475113699627590065589110130003398461310941988066437949880947239224449508414581949375123824080433423669528785198911825544425352803831919349610863250122554656164693516583651951667984567445998427079839189500773559526500747876482354460925017530299633116688322733300802629620948089994263941312418858059051387429895250462894328313340388478442993418130082809906626280535896085405062715152777582723512154730319994468953135598452522530133353977693120409622241680260823210136456142179851059860105709866175194077729640467892034254858269668928094084218381768518030747667727708693612017637204383236289255255204053075316533095050845768046167920803600458316839345036108683271838214780483659405661445811311845846512970614421736058345883424738498438167355384282157454902605720657765480483638189357551822938159004093365371634262272420378413371660299951112675107234370786509458613287054799700806163299851763681642767935843035719381340883054492681444825964164565455584603639127132171303748878603984952707553296776295717771343426463255285464021847225418243976895721238975295695261483705297262015091366713111708713345859244211244192047221032831537838373060231196390311245334648654261328227311891730364973744319460134741588634520748336541833807597996641075795879001341127604711816585759941793149510583442367053922611991107141300053405308708096047153562789342235822891607020010260298989120705279084105706484532340585235331107741148316338197855310051645820169476573197328336835480124607787202964189906695315908293676687514489673948467949711067540231047012618207164321551280042083362924250181991093126386995334486886208659092298985011302719145746540071759700429800517879933252389138862721944348357149377462550161350576090698958613907716174859164088841716544075514389599106504119403848817143164711593553997453049358777218841284841512395222356691846164917488031911089922094685896095808253461700501634631911139972626398955651570199517248289712157374136001618858901192094439922818809193389807280715886737882004497456349835587292469922941998849993592972201740510306645574930103281641273471744248596910548170336814580211036381882482128428801741799122910049159237331351707976924732290169159609253984670775570455587629490017515133198789435950448912407363827248723689107375356019915651868085572223656246664895692358258556208079379638839550872966332007875842979776074669733207862527978960154201083547231508548015954311842538915842933128399892855689367097479243835737327269053845986411628368716302994905488055073828655141328473418812758903000956416022399335077265463256307146298294311079408152738279200039259174812127155372951460926844810864473519782254442948778189552207571606888235192427440917154033816333592338279577300597792893961699585856512060083522520269358195606669650951869552334620324019838894658142110535907537323912804610931998116848798098375561724072928348104584782876592686231900517691985291680123118033430385868470105864512667985620750335318768346093910165953641452023858703219930322365488272928540904956057755434762652598477900699794051668413719418236992026768405549369913068660351589593607425317438530225406203064605619076148462195038247569996316614838083638190143119604072889413354977094621487399620982921174782695928638264078834626791518161863516179519176050517948165420972862754840437410460982239390502950986263392879301214391290534728159336596329351924312229103605213866343796159687900386287077983353576136838365801621603034195706310202796412293146467751812969229563894250247423601151611896465140633462741903938222523384070604414214498097594146759876655650874094117621934769631186037318576411454927927509526814370191595748652212201354624732468424609154085213755009917766385134269316608818032515323446585481651401423058854611605456508387163129064687048830548359870079863826114023228602294770014318875928706739360913989676394400036516739308847023489139141095340415695090668336735902004365020269744432680944553656451585734359779227882825297715180344019889124355512212398452267327379404120728716694051388400319016032069932786234531103059465564805137321794220798718452031438988233977752965073636161451183290815119959662094288923373695308148605032885405042523486923536722054178985511428034799036226285742320935812755071124786397025826626807585197167853446102581555567624723351387887633792942264398537250886290933297312970738854378875947611542207226553267201794623238190030949645998387149548064310782602763235229473132145186370332384955644784176353325397320283394223559322339981775601270216604218268343127991653752808684641507223349330969827684498096816121775418536869451191200521356589723566761969916224470020419602868417318939683563959728991781529699941739854723200069723006426460326082203020923288112147531100463039009566215883155076026117654318545189056725393306256370027480908352187613070426945047310745022554446585220764800458247470653440916826829166272656232462614120955556722003641795956080221418343484540857931099243846091405733843923408738838124237635931614009636093666763981323869884623556430057133552898438658888345419861025950156136970133122441074602026530235054253245368691979651591163886970808362895415090108446294061367650294485335649593495947695917129371595311637125549731651340687243859509230118733776977440300050148691600125626492595137512744657173918785072393068641479832297789206480695495944505219505983805913244026857560360096374697749069952278507085515292984266593753412030924781531582347466827310417812992818138836797357396706011873770417016031132728047196169822695308972360509783743204436425289138906704680676940566591652727675292041136296324821519436470394294761341903939929260887990474117386592455401536975405168044602768370771325666126531150000889925387304636618847859521465784379509785130250718884127190243990115397234824429801434838776120941399924601953240646496764198179229289578335644846287155566013849238769509279408118677692185839898873164038317817982597967453676571353134334812676146550395479922717912480155550879155116758712616864219926759933243018270060779414444408839109274641455551351933671371815761434693370646412189612363881937508207959770068608357329823118103645999174640241549344782483034399993565919695843735194801002136340769893293724130073924981088158839073134767136799356725220085714678861515465816626172110878397211610487158442089370764507740098205428306274075823454310172298072882286685320101538297965218915455647559435561388856431495779703971031040695090006211931439656806938235689877067608984973491427992928136659062935181685337444369917081824084238618984600780687192733042813473927312106771285621808557622997338800144717352575779528625327607662950219450813166607256249420941424763627158114010799583886729936493406806932145211333450133288469112232514094479192322405398267690666644818491771202098265350010983636748938489846514359198055751285303601021780875760495353681053930928882369244718033824838908126884170227992291976336598095322552935818832229565057629997128570179285142777587085991563895181069065882090362679014261355343513602533166256569737499850466396917309644644921156440412605827523006538367964271216071606801971510906579438967820747093022478988236475048131160067628819960996003024129751321841691607362516925818918844749063936160146073368472449721730703119675593733123849130208951144748053074620841705297067999774697349959980703959543241734681680821785448467541363872340596314219573040023231514562509729123631411130972907124841610696348355922745278363686232804934402952521402314876215374699587493705767558248638139907545945970645206437813258193683533826310485476199808444921165677745188843760108773543452941273285263875526441899062246134890193828639211967365880991623836496683766580932073674948724464340713948133119800025694334921129972434519208728987448458416932254606875762670669322887011421399746535514882258376825648945484054463736876206022318262601238496640652533503100308779656943698951172515584821636755084456414543533804852088644960703931701717579322061134857350082614400676645374874590759204530480724598327049067426961470607251802928821149735160872183533059498316203579861554369836069531727752059405661489958214704747111945041872024994858181502927955065390302547017601099655482686545993088496438378858316740149550986745677580999646888384905819436618073364854330269237590663409413698543780627366957641852626030098462716767119704486013371097526460220888209985043718733636329154004269658493593413721221302961958033267494112561462164290325180140944164614585141786537104519973684850815019064192921426397283822473176252447430979464922574625365244202123222940639688307933943028397604299775958245874040170691084950209263534540730390355262934590491340401140100936722917377576754185118605193007369675110864748087537953919761938466161731923666883105309909999713804816606402616286152814742165673654466311581592369249970195290340491336888455147528181551053525095551788016014745277711823697634757791329427521764025545200126009243694025227929644536052161235633862438565113295817388795642763938843578685033202437305384675187570263446152615688841119772242094308848799521661063130809119220218013245298869560488914247118063076093665989842913411189546462872923295510950377871860773591229334621332781942434441655807143513020229406676896789086145020641101152468276468771351776416170192489143745029836469430072705075951041575315782746985351511021168103375015550654245955585967405695475996377369395733411904881741519063032047558303904875409714903007632413929311372375121074856716421668904395321806100671528040137553128850182130287070918430735463920370060361456829457173157692893876392395079566123186022932858015633213543358931828229179781763802941947022579034988229173664318646839399488448344656201879687590993566343110510277507034550648798859628639137258337709884419957870341948726230650443855081236513185368822561292976373257328417709544831243982936775209210965612877614327868048561708769312964407307951541458498473920542380890535943627676087150724837682860450075988756065583390639120330315741686004635156298897268687773973358516338959340726516302789475154317208984546170844956722082386652862594542253250415438893471352206337945152746897629900210804658259271161777789415148617979773337422689844362353601663365175721207955848930014269283045392832344740457412292373290251323177653644510350838340211975585911649726320530183121548795438760717061346509579556629354487040608939766616687561797635607539270708934257549737268543312936465896723346752458177977910694128596688716999035535368406383637311239851437669241765736782531119236991601450440847525779380579283785857048471431763109151613158180268317211311986017793687985060728004877135448999963573472064441248818528546838998524217474060013576895482301737179225291013531921543960145621232808723296226154128271166163642285723551475237872359476303743487388531220410688629101663140955289220435424290248682676613977886959656447829543376243037822361632837643109984592299232118197209925572193214075379041705544358382029491120377397895267993879554653686957413297053793855011745525889594599012492189019049636585269833373775173572315328772422248971723594719541031865263674008448960249989910471920999214117226056223724174930538044833231736093529835775360020980503333833128543810677415765165580286097843914145594978270215239410439275957986319560248927304189631000872270388456208365766047381094074801954970743836149008208371284371763502222993614007441414183732748055475452702694019012883432973606320644035946668200663994386348402368121789529568318635050646366613868828169149682439662493462881582097483609964659656852107725430976907359123991998504883957514941487306522496283857019946266995238079812668151162713824399820584716001906680799646057828908093238916006841479172238119794443790104576585782288893585147019971126151730263965976166716933511189135080167054152620604776142508755443900706381784355616726717366687641364880677335373587407701660093823688223724305831199920130106182534486958335921630089749338613637191456031474349964864337198499882873328654239814976682807697057833817473837708080985404509835694708230293821330376994723306508584592603975343571117354288120750720220194905053704789264785376160778266233628750808815228136322047325556655625842600896518195748891683485829105086888540441662316323576901017113677355804443357355171423200578137762953070756522227553656631873063562522626002676333293520796139901815520886472937681783941099609866147352183936783760417525035346912020026273730369796426446106071424660294476310801122517622720867188856244643665179109979943777872856697103849078338010689913949518192253461836681609715243783088157484198780579729342980812884136206430304410574140791290576354622552679170372443050072957658633340202539370829675862053003986529065604248614483897732562517465098155186406873666701676496474185022106641474988291637994111770559778454804185719012287604869860121977965737990809715184793392147357595866533188837565162727757353294894947704461559477112939358073992203408422650074243633656232136092463799485402933717820809279686000004755672019217749030793553962031686766648965101100601329911620975681090708368467078448515722972687509756897203648104274398265269066946920550990370742483477944120267634941096025673572648259770045985797680095052906802975724823105691414688733694800510410115734758880468939080333780360189697494956229079271296967608513264543089229199307418628184863553731689136508877063934128919703164539486148976183540353499315952658979158691602071648824491514588342069153996197025672824337907069001267141183282127606136498956753883052581686029431300286756739805431481687965703327952023902358516906265242772999880904105255456874405610824853501204202756996320103020091055066720387397529754546156889380001071746770109314405132995481489481266850751269757030264146010519989078007254016123953822034406077492535788393234240957340138767065071205478565979565143271860037593089946831769693442854828131349490609123229329805947113486066836569249497627330589606542475618000479729040469831163222119574047148754627528280260679425112691562461022993442537773876535749329355204772650609973713252178548840299939999379749769178805290736327783703448125415378566697376049024001437079598519453689045479122825646252222762706450249332751043764022495879703999615759056656907785903660132644972952617421452370305518042371458691810104766112680602698814507248459537977495591999785169602258427187408703782598456065941923413597244612348247192494201936176914551153458149780818003997600356512742094147969975516099994828279392764739529290722075799302963026379475430774018498725879342455982113534129159036037912256084641380641712880397894879055369137526247922461211610600796762640219087542735585240164747372320635219839517754951417342175502637434326277431846199913109881694262836784255499884763737036008982249164219215171773754170084385751735436862037630435132124277265215714089396179831973323235010529665522001508774100777987898869211037769803309119141501465208148889781057194295022472026736370190332128102517543697508465830601167384453517634132913205325711417934436883834691669459180427978910834923910256584302470065042867590388102061482991450987855755568640656424143616133014832385368777365321053841469943175575971409052323878642796489778425592957171788875416057138668977831509279086172048894116193664732770591939093643604744954050077209734216312186810472548089867042869814709799988493144425351852390965174201296217483331935623484708575377958837600189477583905610017372510807089745612031957062671176701297302589971393029171691778687144934879988836383463382631517754330854154447024798774752823164543514839702465528369614344325212711789994081883141558171254120128299702482230330706471170340908056559827005685094410278057333249522398028364142275154628397658914935216726859928128762986624317963681708863408603988063906540952071724788199581750278339030207111703009252463367278669120171891940639053433474741662330355165067327102538779030330120452470058140895657698179133356801704640218306508988796992301188340881179660980851860376009824026118831488887625051019814480791252213451086686759582358793982121628887350879299461538171201926057154688288280440543121277250593359619842709003988911714563079885363507325816466426409846369462456353910772937446930168749799160298312914424445049099562919682719595664322931870041735786702915595990401257495819052600671983125056134404357115203344276024652263780750298227278254347848643539330417833370226315227946091979071707828122955482134731619326198277846223522698617690180122039789567764390944666646080761337916709946650378926038465205004246587122569796703030338734275437605058911248698833615908317449356825147332621780752183368562693936192327336244721531646506751729999091250212345828944289674745853170986165764482522964969624601510506755222245505211391668287104092264959389770169410513262840783818351284273538700508707180306768015883440548397114068062930988422429689643436347937780099499591811019652778999773637288918191847493631134525608070552028533610787100567526503330541564593631832192147555284508113593429579608130083257672720635144308309119953145517825901014453069316543027505553942536171964025772064964659243590952878372099610464251690554561458749629858876734389359367356247465193737570848376704109727006034582430425242676076855908148992054108444941357358246029508390355277100752613050428025393527984366866485652103711743780501189727213140981151143261799255750838813439094111914044251876319003014031752200680002715506623933197096804235814060250949820201122338470970743111261829123189544148053087682148751073237200791573072061155361289755158588045663501275997509435438371169705513775492842827955661715208875275977472355478237434663593905522898406369754636848851912044959042835746322418298570470762389459219466296918674381647015598435375423103083663884980225960463029784243507426765800645839923389075092613495871764659309480696261030213016110610008177860046951104618378060712326859654119832851357799850826430534116028477704956381070825611461075196128235423160603740003520240277149480636379415550214100005554022064435682827217080614207393549968702536094547551665842346584206311269065363896529699067003825629720844748012044674462001860464323456391794481308440188228999511597477880819287208290995462535558609632886386250171720035536972298213086372832252232390195999608489106281780544901159434794847858937902962753276896454458683686930554770139849725362929616524417204537117162703792139790258027045470868674900624656856758486627104044088938017804052128903585006404926622690231372564994573389803461812703180023282057335248396583751862142025876113294502977998533719778347363549721694073494191275028594750052391222628395981978605480053045070802892539519769826309704397608967465960498183905668385744612685323624812867811288349375319612157895889819712248219745404579055202125700218645917881782617424020277183796434395472334295273509273305342459914832521531980826283387102129078275438306153218006149150245311141724767035861226660019359313053790485622461867924431644686193346835585898361450454556369939637440641615162138655495998429810286332953084018102441486795221084131174728053250568750536847093158806792110157504319946831792025355645809728170075085088660455972663896773765976063291229610707155446297407317029965613930648371501472890223178829444521813460008877046185712734026361043609070980027692847466735836565612629891540821458039251503310435431917527468596623499645114422187966601602403738612474481424205329078638236208054298494534703661067508500915259673349008996472042463937928526981541941974807569001586063809567906292660375355306006452718254495342727574357353228505212583481084648135439623616901439282524127740735549792104217836387308141044817186927549638580026706780833383407028347809159307900662921172700635115259108557104231429209086281298285090883041113656032776133569351479209159759223005302933548541054612681000662262388955717063752233956853834428864138789982930463924585536609750579892307650148160725702333388555424434781390863652985758920654678183359074392303269285627343505762936479940920925042013196333254782346215476398395742981416921033059232022156717656931872376109339615181751797449772001610541135398625585338697749164974494458038587040559713719072382126835985901055894214942859726636942535517908356729280325913587409292828061378880239853747914395628682260010432216607140943959218912608067520190702633896540477156446858599785573708712846381460501776844999957690658822977000024401083816224450926775626533361228364030672514799375588540692292373464490805672456821123641812972512749339407284061602221176655474927269944410492569127688043306126028580511766019620302779508435349670415660802232935549180194683950040144728036973082863196553175611402624724187976841961853425451033847742134691352893982601992332781120117248156699329369320308925598350113376557027638432829371903465367372335587427253534616062402714029705582049365182030773897802356212495813900556905348174814883884684773434744796870511272829012528028054187737364530520948761488407212439292950866854498073859857686194954366857940010568745178158583148569326036117616846181019609366282664239349775747553947701082650053800538102073398675348075763703823701384632337866266628197505055159957835004072779042589761785679854300304675588510657743894254571109515711192853591074601434968482449101808016046848324689057985997774694644809916892349787935879559378587423467406787776523160018066734021750079094198983265663065369891601434315783773093985905087783280329915733962779131683145352061364389041456272490102741411807794842832157899724152477848979003002295453847624045553874321079422237167251560725604016255229394761330302256546617179405226781000583759207492410494956375489995300471708314790311406713647920296528882538718714374005285189254985456693999842813083794690915600167928433863621327213706563485033011725518140498431838117912500074688613191040798024962096368159306846876242829390061017007982990368906872959108527475572168123744991176331707076811749295370194926605749141855290235386421789640611413484522169549049524217280893727725443744976297153419814042747289994017206337194742891721894748185380426638655125265869948849936304894321490581336352721808166784206204966675858642016569637454973754473181018042733984225110511868307298347954377404793068670293802880494147630944754016865712461297875006989154108770842569423982790549422046516776366309306528547938051566528366160262059791736204433555083590256859130259321266569817023953790017844600048827766811863246498118964286854421714642114409869332974929049750384841866183023952142261231052133729805896761586732558817545628992017390973785869062619466218101283768383056721801864905354368986785300526256589615907123394609176994666959683933278364125754664746549850951007461131760895870549429964506297814952263952087274400768533340669009683985476709413051376180458771141867929841113784400682364844215478733429087262603364145788941752834339107830291833226963892885001590681879753986023835503807616089791266004416037582806411745633655309878859767581419980482281092173105481958140026604528425105182220056625062198841348530031349288262850165299969310654458710562525977063574681157322517005698115234193397703218874376906072177473154035832903329972459868683859374745313552739118130134575770894518307257813941581609375749841076572418327141138740682448218562908357544372783036192866209783557517450345503848817281922856559989401404536450233858332773814769291288840427166047334594211643846546849168149906707316946887943517414264802842421795141204483594358761735320890491443495943066599673437402391439032531398551292105996249955222161880435606852097958853780966187647360017361240236546666187810303051306849174336075476427720279379348801441751875935854973265478045399870844288979211287252720727588872098022329781551438405707291333735088493840377795301930830848320839667109816933983892297834182568910267679311680156500923178353160833419846528665670455316829980625409205515809430661987849512538749645643464068504954793765393647676634004073068574237445338718463327515628442770776549593046601248014494993444332557763107731417205340822029618007782510225192456402310182475348270926098674818171435373602364084217887954564140502123704590656711035022036018032995811213303427772730131891400540617251388827039028764167684412459773161850796985185336212272632070701968104363896706926040695698813085942903072867081067500687213498893205074755572765498543323936614609970921160278165627346548621017248738006973796134682324979449303878250639772785951980513337826312378158000802428777994152421291898379217196554689950212566104393632701012549587434227759838392811176616019344066713967891426659645031511362537838115605262414673770053554892220898719099672769414313085197377472086712959070818634846626511498143981291578766748654542673307987412903824071409707734594154729402797353190095306173784008517473174619382802682964263203365600560323945181177902720982695232807919582438227528322903712663245662733446051827726634442764847602348233813329524025688321399842266058195157160734497423851124815469786998783959753442257403254076205468901024278379329167228442590093986984414873764649767700549300253078748706805952973492592589715853327272692381966832215905365201100186724969025848236448682842780441858333048627178638085958691464577736288721161927369205475683723143743448596379440121588570407772897701384346411652883731690240377449377228479282658435252629162047470986514193213673992485379979958626773991662034846900828072359817661623459302158793496864023786350150059159948664297725303965652519017847160634786655666063177612104007224840321928608464365039159978782364426178105798400812052271167468848705440020041242795068615560331643074080046159466653038345610544682016585314989209212329128576879909689029494513757488553940849202389506958494809901434851353529103322738960222253408002089376686514493521510153760689396662365193400910267729570975764567974683219453871387997776955962506708103771917382823466178137942279388222773683024584204402119460015900452952736614002926901599487623033717409518085678235829003591405342927032137479868865633990655843486122535314510151871876398532668649640760877200499391459893136545482837193566468928999485340561083029334237336714680182124560799559417355020963728850748549423037979431083417825208224237957288165765471305000466014819886125634607590515917232468105755085182906935952169392569101680564082211349103559167451122733314944950618643501251284776229381712401660681697125207335623986093990538123742005580700108293115058709490702064913335745003234832601649270249543097852051196748161031779691156411448021908211808035081632408667402279698071537406096528010997012460604240975075511194002618971810680716437690604908982169938632814307695925716472892537251220917140975552203338107266711049846956646494733264158630102749110277756077373374356819096735026659104693981673206336140343222680553453192070088721224597445947022507164220447579903627119663317698331293591600005556083512817843166981707455417288658285231249164812550768878508990607562612841939148070921810140206061055389293044256522265164709683258596881389598075973368018626624807947577751372777672704920116807974445178197759077927153724756410587455560331155098221837930893564100341948547908394802622915237270691115193194087200631150931494131041623381405712828229656791599226443631562905517575886251053850884972159844034657049873075205195988822653419658447196848848371861848998393079305840589081516594037581581497754237792353988167458468172963229884488014050146852433451087364011482908670672836031456691654463469491105161446026833962539065081571133462178885260591450033293978802282184207428814693383389370256734642593188495113803886689095560108659181073573424513296228080149091226227400298587034123846034809307971615465817751053246872701791661400351504897287863527039094779022296857519110360339090819687174008999321396824568251207538353180608265915601927250792830424629724306098642384296212833102993096572846629471682077593474348387896703692173551513584018444285204722469707729604136138987181049933834467762687968432768250901036860706080024347387245498263164777292681470603031714645122035106477510622596507968991562103000550650345241368963474805196701044001498263266986365195211935425979352052070478593945008509382125228957870129517010789970380298843848966393703819612699570772069652480842467860799133833015836500782265782097182278643046034766138317965228219627009945545434485514591865364698893194778672344366440328645836868063505155526337401649718619377076011193223694329216469132876003878815259190748632906505469237045541271858107610357906675034464696569634269377494978080580021738484793474428009260692176514061701563201272415608337583795088672527413852018264739825848976613123737103562918550010554626018729662598821099540543206781708355877423180705295236777203204946624398653775437534043694974930310825902992699433618244777267302157102141704608628322146941216370420703610796479004075598671799077742884997092966574746621776974412495618779304965924808159471158439098023010510970463975329819868997903088152707609763292967149334915034120142224820326925641733275226563197907665656589002474065190643610247112912025002271756516027400678231089798609314830460562371101315969768048858720004736567303381924305170210033923312295213947807133151010381899546419431421433334375691476882355957835010829345515614354352420976542427078882940612473899120285248169369638353282650449650159292773086176926472400905174327840941973157236544641520109000279466713349211289466400582794516436848364794765324044561190390139009109131239351869868535837310972276203424479180108100234155306223911846782634148919901263501022585788683154095814153292302813280249319944632830638615425914303437992039027481751768636772378797098386539508171815995262228595083743428842005943210265219729051756972598639538281008502636162963527500192429313394567461544196564248048866533075853636586089851095755909645443000222677770269764455105154377813608870226690993530480969483453509714717710084950156687710433691572587917784464797219026446329564316746860487134728515973773196969481174917063874090578088652834374446616583488713544212256325988822026798521762587300102640821422153130712492651547992334913022171744335897464433662770273924109502357828809679920420734568916861423032968295335421887329848482063770301250721744992003910502644897952860783124269514716189662320849083812198667203201517844803598975953997537257067737447638737418193299214558963457599948790151390556201776029566133508736649333207139743880271949543831399271732175424096310951460192000452844194615274241750459499809217750403692051559430887799685630893532305119430234369519847883982061169511163721338764113339525259651177379380679486650902000645304257046245428566503426649663696920439133810067224565380051916567034775701048175285246056087968880323330549970304707284349365847489567229086171404765196222009317363529174616566746740932870877629810168398459183247969761274567168695940894725112843306432927155065979529851603384737886987950646901678083937903874749433981030303397808671789652880507619736698641259111143509681979283933656971989022835530356708162143999436022972599441969212212233039419574428017867548367582336449028339300006690615159058113020633899470307714944924142795716171122407343315109704187040259618690425271304622587617462771236059654233365289945040991729058568010985575140211128829948423087550971833179534206172746563574390691146105051985854124518766455002601169284620444809167888610086817837059386124410712000440225725375880693280252890661108853522474322388358485379765158663331940205407817410485423834287735828802592693610566751117894508958667470975753056272164247763622837254409568550961096173476449764366969147740675617322302322648867014650737348641703683154865008700544274448461012440097121233604440874821063638968309242568145822295401940504498810741216818481116358362584197678906616836039212933184341345637374766980425005345668683955688963269221934981139252104539981265351034531007979273788176270680154149080197112540307107825999270176342665788887259795597969091862978630112627446465151106896744262863856056707456751077261281932099170143812821960686502464370957929308742286410654915076906518214964090900332649158217817023423784763576849071296262568400852063578119385590181475457165795118750472500813609449376275169207634406320238089514686332290991811143645989257445136816115935842304585768328282184998158740202803521052021677497041827379560397227438875167210439855945526071741048596654320262298766301403584681071966295148700318564824927927980131626490423813803563454113502256524669046010570629065350908031481419753052563513507266158386583339626219956957392297739224221351786395970351610298466927890366003373235539313841144718623400058880322656877330750081545496828827196954793689447600439157764556196577292978380781068673806886113823917653134141748960270952723826748666312713887625114990718542013619784394867632431262016377116769984602631964732423900230663931320196657391006676118351059013963366390996486483409823793542919189383686171771660447452939515493411764947243299651019865142310240772375845044082264099809757244093360132166360549468681251259185897969562484759441571016222640717713937708274669767027364979202292246606545227987681537109686399036296573940046836365936266167293353416131769800836497641607911063102309896399202849895044985548195549842097415536678354284443671484728901151509739623715607521103138727821803475049851542865565817925485266553601650086652442434623423441837744834413608667113984021720665791795301644967938842875609962493005297119017610100623631996918046079056083696175278514378888238155876517386609100586929459004003770549314322948520141758464080332090786992448966556384000928355233879899812908466195526553994528734531370389050925732978129686830328632739931535019367462194479662556421494610566028516257493238033651384412040066145110658265114566186344942559997091526470059637435071679642875684553639627879585062255109406991113391034668761990648287476402836898770350261719206918814296633450152889860112753824433070782540411724884140902795166657310965182336337979581767182114326001373807724610836888390393787747589836063341091905643987740333040186446945446687008025917035354644574886908597655003363580094814568174305555148533122066548579109785852241486370078860613967616420545223961795743776841187793355679774953322261718312774011844308420538830087035779721276481042673175331938475949259875203200393990694535964522856805583764027566746654310754309613639830859532406412039151824944886598861948441164034190316812971043789052294465477224354725530042352429216777165425215927428470659973956581105321186087016423522062750864140947947680053068583399355466999159480338146587029901078405559474266277232453994690263324970890815695065094146911353589464704933057077889798405243713470551520737009071521724268244805727823284472021496267858036888724814681247355957905349053737906320762931311506532397676671807637628727048835123344095989241204906063243374944105269615793027743445359676244007323647604400814443280252292772825489071415995841775463507498724536606690104490227183450432825532476696440756928655234132153980682269953702452024907996247639520677343158460059188115589280420987655691095552098014420837393079213180560599791171977612045358874011314450195339650434063635182901474155726792862614907644361043284500900317759031185438842688050589621437948050722936773636527249168484358780891771147057679461121188972435752209275009208341539546829334910246519892907434240202821358482922863901899031740600451311075929813949381236452408219579608217764258042705165012801140954077657335709849163228985830105222707009613892977623984279170948757677700761138256909049379080438910761083819429143071897227976481683870800949162947515484747154875900127211240991490084029717988647356358205360701533159551761507874710745411487995035784940452086458432143090366482562925721591849523575502847176419052648019448908762980500858418902512671399199509796615788772095681704108399649311951545339088564813025180692750529179417374736053280756725321487795692444914486629448192135486612821228267784636117960125202016021952265861586268535623018174174699381906730777974258777487068336220917086429314583379398393971906603248637654815910510983558385619463437868072357789149626744508744304065795137890869154016009474531116625731973978782003694696684645766254841867095060910777176512221054366026293793246477929437778292820210820193509453048124273287747791215818169053733327007079806236081547078130023486852614815469366667306417282809655300909987537227422793417908953999466829121081731296658844744080302292676957700629913719366262911801215106520681985927977135767085906795517798761344587870410861931239048137621497322719975418701247800968849831450000372382467362497436001704759885029366116651090906963495812481831109725185150892956758263404933788536966854655023863786266681449020148189419238178748940492354722355701480424449497846704604864147033641975531804654261085558744018312493119685491989067949928562499656229323762007010012182868628259974778574402761207223016364878132852261147743202978305109734573642354377199686670843252491602079669585141351392677479005601347879889370428426924384656989124526070405586301827415495505104263181970204688727580189135211633261018590735552938795665178153744563376076483382379797562651613775907345003393077026147168583093368712119697875276247993959884186518140295080526785808460420535548300126521809946114325594779713517030398052372955125948698847894577439550867413302055814763464771406912518869125064919381630387165866427921193927455539104841658587264708188599398352160705106725641759863120399638891164619446264409161604746143478366177324374339196605614676220224646389197467204222708116456482263522837336839846695284475202802058846251434740768837044252685600309584819112387379769816680748334288810152434460088091816994649330856840151760110978337057849981023001540092819715883677589121122735932510654363334935387942666330510048077937472431802075955780487650224578681412507758039105449769032625490334684657764533115903370920016508620841815541624206448061803675751696349502274233513010885836470174126582091997957074127258612926662056126608028672143906570633756156678841099547454964029866281696227235746939654260730454310662609662792603711072104520352741836297011476132546317830215861716137914487663387975347680515310140782844248166047987626288010224252469128915789514813661745192986262451335984688168231115937087580942248378490763408636378641853837923675947958280393677421644856557458898047222541646514988480814778873006601998420830845984206244805302259691366959109078742479844033821682024073567299863229191372862862614742005534089838714333168959542915611031047505674879465789077801899607007181472445595295277803792055983499962441088708645533573098239817619435041038904890937780615931217819292286979016655875593575417247841382288943791725575037372700714067246768691877663773234694078833149095637208691050850505720480613472144834076017755071339047745878044400464504544535433133844250577358313333553385085494766381510325282854783117435096110423766285713570114443762933542798667131392859918244438636328909266749288174513915185360374764508186549560569079857065532708136598493350151688410756779996882512464675832760491719642482585930998520736616237502836100736055924858842832672793995679077836050966468925195242143624308446516352397753983932190585668369918422180271147491666040550180200218697798883776400497620941810733536715474982639155313587392163757486229744923701853582967214431107837390878582528045287560414246039226646954539422490025580864324933214210555990253701798208037106307157444733492767883809190713690570680970623736016813192631767247395577510076123410550476650450485715333302528118540758383124727542481377939692968206657351103875365938366519167166006969673477411370980228488624712739858734317251096229972666531897310040181932556452823799783452223559471678271689637790938252600433179638850960089888214059360424710869386946835866419281207181834219217802714475248667125635932566843032279765248784993060548995662728598714173783751041638156449388452239085841191055163118379718251953805676544493606340633947389276950828864318445650362119898698406177052011023956805790342707960278533200464911335836262390425666840265889524000534072318670420789020158573721350711746626992334710779307411559957537005040728351477994599558507466375544032801038915387845391117436400667855858188528614321332255339723138243318344486365853155177424167173452782257351065586001094748482703279475594757540236784093122162414171845337147036290103001627205797417691758071006764094409422870823147463349668852266140929334163452883109665070513549792332521285076995448843666727698246716329831110305137488715224947338109635846076678126866308331071187693752387765102092718744840875512988970329778926393126115622757273513433171841544370115270050544030506899994353975602347515702946539490871763543951108480093167757870950464840795388135614573361995787758031723106330916648113348051576024937617186221042399099485311706482443233395425912078759014825107830224110497803472491968557554303500381024135120110274375414811479781067199804816979161473573845442180409389864880837600311553752368842019227084565399124640574156321721135263194263596250436139705815790503660900867575006967820963807505963705904469420086122212241006690239583696402139994971853267372410678159255634549944433888259675927639712924614529457277224079344431503659874310844018161048962561926524934667791406233574331323101955339837353318036268782666680139361136746490519504014842018466603085220055607506622954401598510118058167516583093150451752684678670437099807021280249720556338459575912235482863497077864512110264398548894520166592661751142769304397055735709588252271843800357212856117433146743802303070917135113348119988961786977594877851484121716847492476733261001884280186911824250005382645569859513288284990791365940362267316008549643655744048873419608544029848031549275260753970481375642994287460145394071935008700666404681464738004160433499962390515373840098876626823961624515709420108335637640171076373540610189994088909897104099578582488807252440203669796993175813435464485848451827184267172968267359588421654516083637696526691860812813908993101534886524365435107563114078132433127833144261413861953793022147750342329587489550463080946831640478859382121274602012360215822803225369111774385734195515055798120871184845946174892541436925675785251616294409843315897068151986455993812995191194832802891324107825714793404335619988841537326610318875517230090781720857258546613065854446061224761586299809759774892083374119306516014415011068215505499015835432378003364725418184268311238633122315066064157626952912448068957707555387366492054464356868287130955354500526254586131722528823722094243368866772941024300186258070950437660847164854590802523254638224321533432402848674087517925233275254007558233715515995288843411941027395427311472098913443543356140561986505489676599191020885314501855592861099230141937463819235395513994269699503462550161707991839336585264400898835640962657627265094398395345478253651457916084672268189321791493502428046966995256100591432970351549747751012725760793708058478799142742227963743858198844981590348771451486219601375792037247861583363626818040884885683750441200388078615451491869271525342163293786448598286750983020852597408524688462331888784992838817154706902643432586947367834971638978257770043711508811011968057894658927717264749273103126114385852629529715967437211927447930802902627774286758604252639871620974953195811185595555787467137913117113749554154194199908434638766515704944996821082498055132496226622556433028083936403770540340249695218784689718600736797796866063521091460220694100835394072070562134386919727138719429377150445182787276918328093682005215860087157739931011924248987372262886387472060651599208706088714879226775000168441186759572681760627797595285816095464656162479024534311816331614399919742351039579431027066615521125827632027015601964678139543327167390100887876708786242547896278825398129222649758219890747963028680027475286119020448955086438007602748533121208607325043618599239864081393929608602862963954094816279495341913956218280414380519307528742358568707472481499154417444821152390450280089131429713375652251715809398432855470758617493905153962113242127424220157057542440111006009671109578069354742857749373041802779941828258518556934520310814440494582633230613241484599777258799118459299309084606799396232019216883637432875769702455716970000472171915461450046374806329698775307181854305692875019920351663163063313511084603721410197098116988304501448256504514755340181295055125432946423297301940273351932710784716497546929844581547705922617990282580944699632109841879716076539926636553435741016141051726992364519569661367625787758595292788576598497039673136813860215706119795876434439120747855553084342673697817869619300537724419773076672110384082043655461494487544054508829481118195019050844769891036213078408010813319646140353027497396705328819312369762324833207733403410818033552180247527152444368035015019106663853128788478933587095184058069452526139535103377256902161674580033479188667482783626167141553376893669862073598586959632134086636397085289172442192692253212686191567930246643624345206449761334084819210035407743157624817550138386860061292953888395426855907566374549088568768384642164920303650998485670953943895592642921587919386130809221144426497180791103785071038914369898661810527239981621629199262968366313501199260147601712425475963172719226099251531122678712103024079111672525512243532939087760861150105556792023311885210082838672794847759979097670598688271774118358972021162549226245196515157087522998372311736025112928570091567334849007134579890990102543328252554078878678627796717493785022111037982549006077943178950498149167437902016642208491103608045716565452440129403928616149942735525332399543353275673041837146130286862214311343901224044098542250871395536233438629453129980070839623118703769142750878738958914268968314789977223709305525645444782076469771372713854477469230110579837398224349131398767657275282226091458465651538402522374380944137578472002399229854821307908358804834845862344749959090004291425296716697418569264373811260109698665576771340429963077218754875566226703807075301628919492376531111704189182184682296196729298304751055941136130254540694377013416607149888283278422322018536808425253142373080500109801752941890507411807449613215136442547697408266568668777306197582809714944335927933253633565884144602902328690514694649085662139145898980575401382949708502773429886942722169166272335384806939062082794655910332847667968923021899464102741246805023177632923444938547161480774838905334508076510788888074407424695353751128252798847017257443550829999359236137188148499344453607919296370021185123166725234545896057452824304192545132368343220895329526752098731363934960173497481680344992852808429545765027536103767339151362530117217536888070761693293258996610325623617044601948230076130719348421246505356584336391296819003520213245788393822706327668577709769993228875495756207190762024653446834923603727610743622796870704863444602276952704687634877943767086265520746176007526041405013272706702450690555673785954476618609143485661508087870682738727523087458040005828466469231854324610593642098138068805266817662536792309713312468347927068426070651138096875225443261220678173029364632163601733414747684743514145793894400623968397200221859963126782565897648006486714574905704881641078574627436746827795778485660637652214742137441390952364982319169271815393554979446658890042336574431737447238266974955242573717998705702751970823436377798139681346525604236474419550205232841342047470475090517117179159593913534537325502240433105997003697841534484920600252234721366898477519399424460327341414397916438946552976956171410915036766523189305569418626589510271300398666562411573990410309377965500649256270543581229935008825459316238285514232602463035514590468431927404580607763179772047932487500715868522922281125261173395317811895510723103688482735483280606757842025951723819132431202139255465481040647192157247809038669037533506982621878413082977925187203461602168937913553730911918042174466242357746409382407658777618685939188127168588709248388351322015135379751643744639440058532539755700425449383133975888963818014251758288093942718705463554671535614091861595979742733860356960050034313326576405387673769848924894907527614180939623377531590468524929876499831835853764470871657356038670660681010970348910186755967052772968690668546466112674773874124552434862730779449597313349642739261483698911168928817982160702037984328275612317332503980141980114654393180118050048891455349895579186494484170337657737572479965347746299974003386526264003728244179030199630278631606141224774671788359775718432484116146302004471415311292176815619746894807202557073084653404423890820282302795942432721868993575970442278376819620539840765818093990644372332557224387349072834932172745664685078345121885917335281158620415193362550011615056194959945109517764567459366210839207118458546643422198045733587000965197125301047432138013986458884352573072463052083004392036030592521735649159648192364080496326349211050757825939985866938344872645744978815121798552137594156565321406426440697897068516786650925247301631369102500322583287736632014469739960691715860787413551135651889386727156881351479100246360925791864900240575333830426537849481775207943482710280664276793534022430598970930177143485234858534127436427473704308630037391463143958211033884292460559797052737287326451905859726913128764462666402797236664702071041463066362484445933144059488314024265821362181515620923682014028905821438972133998905097265940336200740968382117604116336060948584344461279966782387270176675680743937779412047753583341879717467344098080661814168595807067182928241418400029915028719866703371891467879230690812989670553024733910191230177387793428263212924566219007365542274525425152056874760829102737654715444134891479899995881892104487662021287233766299637649952301004774341763417665068568822503603439808101247353150071008851583355463345206049110242522781292716401157155637226542081545318597366548987353730377332483874296487297421760292932916688836420539859686154714740961929811497907043916042481780913122820545168953347717485786238148374452790774989295857573317071676939848749041957115608187214550900191823349055054523483943615711536212718848812653905394678313633289034011106970650715763875046645023447007747065973929761756218018987883736060173051612489058146796849945507757120472236959539195826581747104209925238166529813762669008802916814388223047657388054160095852428253665175226773949113171074565672465132093738306620934678781948715040468785959592834545476130743606740972736555564351856118228257254033466740049247317763909531950788460317493962403586752293088209441303268854401330979810692600059330621629386322238267973406041398291583321004086263323845330138209380655416182018146370898827820943728120639272924099681774293102399250469819658407858210335046466786533523930445422935242645825963462525256780890320883831871269384019058751377594608439376020852176932148025263206126709484896646224406367714110266307817564602510743520677837310121431926964689687838298227070090176120225447762844735252269702012678877146211898184158977726203368105967037447316160362550502333603868679336886287026190310110324130555558222971176301587747663296928387641489242165487499313818962749462712786688600633764732964154517358083230699784307529541773242742975829611738911605766345827414948926681188301990315186370929710819902057699085633102454859874502570119012242094948224586295820919329421044922187897652099328122327326061089863226897351673432857811778383878819914960623976480148895653588748544147555942906707610633983409125112836000584230779604069535133929020529923984867345479883000363770218354541446764540664194718308187999067015147829804034151976068804986726670754701576640299374777914659436662951056961779792821549933280098021386293313870520429925133590988634946046547535707447614549338323908958238743172297579640965011694796230301304637946530725582848339783399735115370494714629583954838552907825138937235405670353594658486005317352562117829697568599248984324913433522609485537106159291878718210350336342143562145039148542441962399063667053332513053266897382321646456646304060242454262346056492362843743315056462791511162840958774112925049457043942724997560988356408485947989427004106501146361387788721310386430732972709911292458410597181251387465080566208713664938746054524539699643158561090890974913202845180913165934937710455783932186447612148925705318341232546633893942839726062052251642719544388918553180140527219143228031992816469144355557344463719070471821004531681741461629174048620438747229403949356314121179558363728743521495360881203432425610488171765995841094627876514420655160531142526741837737509689294961823132779738334210715987764554224744468492512672203267274486853965236509037302468859652347494817225486492359489835846445647886310815120793308758879674380655351828670135999623479377260579778033466241484730207315977184535680277363690524953692685634186527002870205051430006813245151002382098857746249438665499228112409080402972389401408876154743230038035636964426018837624935075201118785885397926989805155674945224451270885325282904613882745512137980203591905023546963344920950121459614675370673636602810340191713805784403903514393827308826581688370470920588503807326048050440498395310260277965964552291295385859212306541765689848696455329039156028897743898475042309515504945406385568483474554751762310538551249939507319888547765628333133875441339026594355493989809608479640974959121985958900892713448216066328617902012508828117541501405811524751170911578744327108839508612177924097920862707615242385713343293025680556037711698233816502603744237506691341120801584419630541313544213052564359373668623982175722469859726037583671827982067022116940079373025158050272229982835964315217271375777557184359942631444668213560419327979500746714257353713807060679618413497383181314278541648632695034033651697192346957875157174630762189692435388083953305424671785122921184720183861607782572374233852407069379965495653370022443885099055093920795208664329923642983088229976995750653382543099998682320354409949057884029582154241901992402936263492334934074091299015599021718865124654036831199668293049568577420837804567866447432202053274206366127191801879839966096632394392775718180880563153929342959758598994158553086201199964934655304398620168625888672520743422238701901586655404353640191350801196384178152846349319061043744425917481873631120833009371154742784444414336157576230931284231510878879887515414375921026625041980454199151975058035785565958413541369733347284854524280774265317257863219094076921406108433867214985133607455149350240687515594650087330099877331059634776589912645315429696387083120018595106016332613954646759260735627409936928626673005643080988623105285944254457696140536011063831384933599667365027151269018074612822012480196822391081873665808925483726984286279864246535451924771685261432456975968410315953852345463897752322856426913290854172013216290354476760778966683237286410413314594457339538992739950935084416058465930438017184388972089408570798049883701334834400953995246883051184155202715292721449478780652114919130586838040111201926571068886587078193622490572475763016964589432582115124641979023797236048455453404629765975162171464872213083189266510852626209430606907691502226194296347425422637188295430304929292020925703234343796491995263112338405360313526445045507581387202391649089310647806570961646132156982572423622877654434887345284164544087402068225135259298402151317528633881825387393304729521483788966603811630363999337105519355130989602175678595762104611736441161271060451608716072442830522441495745473388007590137085253834894380802446989470164740191879912363246700126317522204701584345200743582616511548108855836929510722769432118475114623293281474358320320534930243651394641933680815879297636288594313262375629174655045435263939387976156225309642747941755205601667370885740130053780355426730265511339668718441586075145703390917512096368712978204916220463630743497623127563810618591538080142672717783346461790764154881231436889166270180550817916221006667269997920168055055907829860561851203957700672984224861294282969472466785080602628712539755092852113782072142379816166491526120271755868840727582166029387793922969127693550600696582181460236929925415764911259750106200821783797928439048284943083690794141637858976964553812936452063920972055815386451649382864359980476743777059052482235305416546130085451611001264255389426614519927776426253534171293736597998611053240484962436721217898012339989451495556866894476223327151309461406911839303477222776455410136019925493106091290601880903848856921296985381167430628806885405071425563995732584105493119232487881589310172388559404158324989992481679378992961503876019485880309369745689052889802732876526137722868805067168475978657084663792756296500938996309622611393867970869436173641282611981936205401298521473557231777708298803812166863750543487363628765316231795312099031659373703436688836915315401295745442096324341560207190026017610188491767817270339770240488785673637599597838033135757428494461173182004127775899053898172475537968980190346867532139849444887883755101996972655223498306881125949985718643852740106187274450467023987605158191409422072827213424483134706561958985626791932978672501945083691384455687956871504582963013185055131803841442490241539989662461516066397966755509934017589066229140982259834267273094686052293147325125943113214660211931105951688831801877186785476812726751079296093152940699125004181861359551167226900011924128630599719128087471827625631704149341583695191116357509384608294138879240349419741794701597399176145376337678515806312920739044301147329439501368391129125684808791385239628982991043119802008332715351762164737661760122594175351097696211916759212215195657699131731933249014392510793091359592232726005425193589098021079699224733475229564221939824716814179089006078174704734616576401784137213203098689388909669574580684392766516870563707173481990804823249236984846916937463714993346452487737760586529013503795794881945336301942181586139740759425610863432209785889274473787117253046068983401670867546509209689845005621413097550127600641527540874969428106945406105100558139367467387919376157117358772498305837703626057301142103711973799491658039344543672387291600682667564594333969860097136395475072939752323061875688582109702585007032711433145525842030665647993889006672277057701443200385171685282606451807647612414662777472399452216926069725125366582428849830718839953958514747259725344468324187580353954887927212998339425905359979993998262672462003095744273378846665592710229244453018851435739805485761274633506090748722932517608000534033934178614356366309035253906479749227130512760432251022311177974200989640298916690211555547779588377660086173487914282019460087600054823636676192789466968193110905937188933321711901720863033450965292798091397972532941067736053599790414822803727389762923244241428641744667591945501047016420381456837985797855525242376971404601167911028131713687585810056557762955371146531248426026138292562675484082932076085964725180595181686857643795444863225315674187730536917260529213685240545590075509415662196884051906485630665560262208618289099315398200815686657004564573047828027291009123800268376451084199126759542645363539801039439587765235264224995390725174110300262173941546083218438219503769455018719293062375028905624509963207296807400784475853368233271603205261907157565676599078228174776867507730540004008830920026402865553989366179474360558758180673922549975118361506162589523340887673311350291178758989378206680092928515670361931104045837206884596535751172577833887087825965042401459354117133748068946987720978097199724807436447261594918570006112757174171010321743260057205321237005167698303691570776411458230225602651690804018169629236095285596497608047855402760770934008904909302421853123280935404286990568862699783669032125624988575736894523677657077527416007285488738360733772042725559664470642301785003420752850555360298387169395729725591949404071839196707592609438500990336280864557666450458036488561522189871333192840468225527909988645314318324591821441294950494477179047606081625599927208430972806164148384610502393065054951419078131381927769369675848767306734242264676476663239788601068126722463926387082274387242016170244289501305253866593137019083328866582149131177031602236700797884896273659526585885030251970657596505754411995187501604483101469453806924202875100931341324452210135421170394374897262187957427205562050769056567652205604993156626710715518314020487534982973312703117092118714627709358396286007701934552307237410817786154841443206234771417973994056544921550631464725146333873165773629728716585325578999743834923787601441567747109095532157635630395868194753899226036234425194645689303687553749725313121656147115664281318005949203060455393731102012167326765154378888881571797001093578609447577088586726246653457606765202302251673292708630690106383852682865420824267563391786557601552355505083503740681536701001678460909442284837898737694005678930633559542305534337496295736574503267042752795766840257642673403435238488196334772892478699726131739915572307078883152155851357570065485373992719138363337499591145948364771086488731148181579370318679748139542206462035822188686473714072635217394849895086310143707233593856614595925660827400697850645096461813421866452490089952212048205543447489672296466661171810579299632034296516389737986796545234498907443850809653976327158380604650157407054175284795601471743758620280530442523670735497833945486175617570593014427105401457650809329908217301810931344744773745863647585427150117127143508925845640051488403658332446510058941488497938599191863194438518076188496450830891161974351808864323168552385746621636273993942382337603422290230845916343299504487100713448039506105209303162799757418027618226831754107334963283552882282245003288803949518861281014468913415393177669241723482516147364215761789253174187762094948638257555333972394391043219662763912748907943547479976152126888988813131769889530079646708344652891597057818596297597663510347435073709254852801943671208670903260775519346047537591133821015911585412413382285888213802779729260771843030400744754857206954397559470719395599989060797234846816611045781348473422308828026476776995005254378950238574074765906738348914328147853125169148206131259772062300898877667263681226894154305333463787805344068791015187030804520437208323923259705253717892252537264783295753027858031498976259834431688240921023015973358521477732492419736414790265582994762919421895611563589894606991501977526827064303899262871462265258852230329416854200668811388703617981220028399145650865435504266171067728077973083099059208962391044043434070493585503481218142556690093778816804813810292195342183886727760354502557363384095368056089743797758767843478311593652390191946886179272466682277389179725964958985787172975210507186957341693068150237115777742629203135876865297296593349642793366773052039158841616695272984309579594384541116378926761898252716726883173405278777852133279357348901390235231369491283945024520789202828058014278760459974286720294344005134737561483284977577480524693277694803204919403852624204699241290513459847152893275282568299532733289916690757623271538677626884284172750493291158798509291542286800184541778578284698456153467356980416141135616526748773873520096016821941336918517737763017635746294671097309603794744069804677138867606763042937610848473037680307059240935822121077991110142397145293452195937559949809456520113958628100447856318551073060168059038583838224071599121396635810683487960166754261620413439070822393296721967290380231016998426835235518223002370620175506992060553448981864157072837838758797147995146525063148695007810877890562793135681449590974504805720575504082507534499309531321734230154192092138607209771742551783965197845019567365940249330094555791480301687258663707006628328560106129386095486345289049801744598620033105069538628080743302526002194639406051820111463108401461045465464080962699171856374596584948938334662714393807503946992026408229357618620733705232046868704874595088909965008525123516528461036688419862893823677560284230068853330942531700896028556893638991384011053355251006279748555706450699909860237356157412640307180872527400983463607972935862348273794826315918699291345165510176444486670204710811426919838872343536514828020197043009968055868215375018558970046044395655617377126820017094675849785201713736125211078842257961707619400906384120113569182762640606137259792850856469947833334110019552855033731010521500386983405020794473900262577855646541737875931377073556143991853649165622584603146233633803976551689878898923190379805166385522550107338427574060793478920042969741867357109136538890376584920001019869987508222501658932211893863410103237190089784222562481246837864709463883416915694447052726882038967376832100158540510505919592911545315154660420303614744695398571574882468895059761097699966640354447435010759286705098193301131521167006647114827026539178528132179357991628791597957863038430996577370506449230493022526826062142317791849740740615645056273288069451338364727666570292063548622900621222556277632338056817409380276134914714975516380542039262556478841297003906441972872744979491912045815957566834948094165079582483617862459646747368723744443842097554028756734772465040368354204593079353126967932366462648462853110301925588273169406408641570987580464165399410699091310581547870382159565237958737533494746474622292670906226330266102151344735966989047435107215331491914673358190162573746963139954820404277426246996840189903768354441049484463868152723408089174165251353754222575847721675646858129051724709276285531823257587728982552935787554104392822495908332319580590811259101904051413680836715877541193411212012121240379975733555181716415579667442463230989844142987984527924228791105996852358378855953435293387277417532034575094592079755524235028791845201159238136568907520408187447631916566398993844908462385360032125738891897944178543734908691130909137130881391175433713142321599673350286714050652465396327386882864743390246100130229779290051773575742601249163540861276927430551072490958093296202133805919557232535012413874741037403949183729337846057819487198282680829621470823409884266352217774865194385998551642063908611419801697110983548243683391518368195095316841894471248741052915817209523666313441143562965128315371347288489462848554459154143490425294729296639068627114640434448384133306250550784985554576765970340449023888617067677001830635231073631414059018507816095076684200447317160125432320100980874076220108035852280063029889924234098161310785167146690816174591997797089567892076813463476771711853472372825264467830371435103001949647564034139018772098072805350385254757188737637862210367384606315887347254748753191779772213156129183363688457384269644136976517423243446240773433720583219869471642206412498446607807817283269654671223815021096468109296766512114193297286097498081734278754948697391686392734574651951767280924967510319841019969658845307996403535239553700833940690397900437326003702171793721509574318616777201667574863335822441424883293755002228241707472817451085880060976629499154712676706985700026088039870312497672892840331578482122138964535727226559260755619370387585794501435644298833478061475205816994074778438031442824504350764132109257286043969977200581926229637979378881212319254975497842007767901743667197743138456800946340171323204006863109034400124203374046488977772694856542847027722948458291487040253645707066249409673818382339298007347103838707977156308998037870599009156771457177434511116239814364004935738867066657997174596732489150556469930305637346733054462408702630229026968191994873678406641260051621783648227265868432668751155018282072782710181001652729115524039842434758352291566359543113761808015539403358157867915115523084746527691469764012937610313741740087868470961151156967077713005497689336001175330505745753961198908523836915134065453669833241053394139809250916239784887707283584410022539107078367115740620638302415541298818314589956303046328595499163655280903915532695313309287082256857782682756728212873093855728658548018579608766945191736531709873795857010474782769947480742504701982748966479352068381213534233462319544858114171502559923703272219140555596122698348061070616274385912592404612037902561047354712470656580098139535554477807555659684489732983135010296425627264567369675847459583976844083592250643704399947726504211116482209849419504807944809172732905554232657191737310432536206805909611131502083476821304838709013772734331127927195920796977831207680222666383681465874154819022581119086308375107496010871366658035872612280566426052842181577475522499587980549620331629472047985920907871022100279556576246503158570751980856962295423971645051838268395946137047760934613198881836429662589256263322778522225125146044291856010734971945178215167050123015050750295814138270130172698238543887250563692260992986502813939742156208854571964581986253655709610154616938564221676418226517516679969342072966040339291348311221695488067427211945240613561736544370363614361245179180644110693022124835416107602606842564338158049220690189916616681411162055692795824627526207856455704197551902608047726149412067867499217281772690293069915200102193694651218509808957733177604746985836369474712595311502252959048854487027338086363757372084262703936222117249548661182593320909518309868920682927981597218750541570821990063442996730447037223042744598719118863543240498544900472093316757507260495894033512358071722030967470454636115517860497739501760464632385524303066460278467788002835905679860349957803249585228469571025856897203688750744617433987054966036358278018519359119299000713442065888993966432907827853123454359785795669358849384562602949088814087616887725676328778371965633020782354818615313951224029112896419800599586209140640251442818544723237904644289933257463431522019515209723679830427128732858693551847543898078584545706076129754211440373133062403215797738703377930273417280447410316843618316558626275526743021981368378606238157785217192100636897442248517951229086972862984741122389778519547228205934905136369768422782523621648527417260840067976720540024544022562989702211748743316704134574650865092846755285760316450149595135359374352446578099788845683402450657216575503552788359501406240964526294739173597743583026824902859841856492999879032771704572179264155265419972093969758871990432276983057584991784068416366720767979125145103972820103174376828233189843412442255710560156234910559528757351556749194927376701579851725804944186040101242106952695634819814496629789638909322074888656199900602989117560194049669419694387501810757194201238162246047613388684779430081130030093360671861060795042597177903145683352057871707026388521646093518116844769161289453738224288660951354573891275690686295265829848141559596448326966031726324409614422524066237200247548511424124422865045761582177670162189722095155831058095200256514136893401618570185477559286720990535050799716903368438209494634635745083884839555159712835861993485610837598401815524036391079242374658631599478971661510206907782247308674663091695271501764073799897866842415525392383880578372873705918556166235174725354392096475571678437902029743829244739641145935382272696926250441899886265292824759059378433897127084315704941414790104603379682864479670089351250374314633189743102029374830607278420808694131954446573716200778711385851077036270035349136695397806317894460378763621380427296269211185032775531395872554431016285144553080646241201838740675644034591952559506767110585682156546146695128368025861633148265425146703483379164066996919890174251090320037512946579908092775842447372715897124520865545312355963525352756909952027097207545927654050459895147324963642064572773244871188472775251256029253585086620118914250165629324095885142100665088953294280784765674168619900224558716769076881710845324813877330896398714779218031785066373917114411257981858170230144644183979853911310898111950066235017287486866081845844854544547498597542440636120165692178776136730907958509359450404471991978120985369687567853103036196121552381896426442085675922336982592320534287930708629743409362981136880929115909571969838300381421245067260166515974626559698772100122726005479193731347278929837696365343439355991812170118943997966309725695531520780639267439353043841165558227562257060296576461743887665213310357030452414095339660672508000038802991761180849025796713010883719593214342775731892219942311015220410514546403345556784086127099643323467127690019632351836765248550693736261866679623837254701418896136854646626682888265584285763298493448998025514808813766444449099025470046908471289703254517918554707628693376678533067130511253319076687588146992058322386259706494965565621386804977496432173524107655486975223958397489360005421614498553425222628025357954431847940940671165044794342468574837613812750412488323441049267817544909768227337606070021830142379926674986184152876124257488867819026096677809833239352683207198114703571058018077054771142704663539769918599309636756356161096614506308846141357701047642427413051286305865871168488383533534509722218908632891601879388566244973358304964957229126590055078121740630539151234559999063704801841759330573194473820601619478759303651202730954339501632754271907051662163805813041754142558398978324905407875183556584647415858707712876720914713872756803388635914572666925465150512948071805356871561114328818816946799821255205568986408260624867647692928571024532796720572789338554177419940936819125870551581392640235791068738072592775228967682854660811599334118338372979040734165265223386656770841321953106603116975551613097427068702444965142378940075493867646726842578627069910880294899341004902108483896433114437986121059738539468076881158720037952315701423163126942756494082684760620567435982604048031945842410745918763900456639379987824612373571150876693861458718732215047635033997111032684052494041975472683631097077134421683230597878736400850657351147399755692455800506022906434644562596072390254839471221651290763800033999905321136699460571599471273465980937624208511188158508531297095876434605762024840827457829775251102897654847152017572045314158706440371266055426880773871692874576725856225984471492352752132245739649309194207613458337512017656742174375922458123962584101811515013473950761488114556950125001414534442603161141992444360199245923384925014607570526281130036166047683294861522257652530898539698136185257626201537212226026721247129295440581769416185092178947754419352242534627952270195893642120044684604696503474637145201079504034514051217491974315006984727234985611821544291786934093817576265446030889502480004368245475038568775426819373341482026031879784503738512431595617962191315869725782494857389223357874302668299133425157680942637502837173968207196865622980513716847781283954454031563474914630227235862447064281638789584148200006737073941715158604061869895737720963948541723048236354091505253792367750605323775681296217159120132104898582157373607262734828560551109885112843881802705102997376297570303019752426527206961868297484560641940453471893243981460171337835062358453756664733993813946924992108759021608924040728744297300770291863447215501843943338602088847700526610848924823585404022686297290196869545173400198487082077377875113562766246871875986630003081243569795107683104366179138609026871865341943428521049112480746250404912588954882599569706216882309642751789628943557058476412673550152159247197148706378535988882597279702481445256054510067624657523182396896061275367409377641787672299509964110172875526012144444035463004914587145834251137196424911948607664620314530905272864068163843033756594451135052193093441554156991891513573090152495551791820061678376371359402436273824729920291753062186521371370413146396452867502122011616851523311537986121975966683547867959604324222504613301911508016950278663141710082009396993190897214383592946131760335088682999815342792822521196295377385646859714901946739683852665292764630801917553413461227567036586715704901240045002569347178721907283642412449862069678222876163990024999504396413022311186002649111675685348975939077009476215380013195332615347395712937633589822431017283982631354581223260784815976392870036420897336659476704270819259793465555679118295115986595723502354044920907402037944411350778443356951070085033657165547875351399419054721426232215854126392291086168125392675499150922986239405036967273431184217491777560947943447591171026497362925081735078498496885021664733664844475158724661522507221743363964189438992316372090889384551177804058828579619840113644220529613440003399442269336838284677429247636412240215802746255787848339709526750529412667910981865393969711496585845637556914174203539670817727374222795135489426118059984387910879620312576188047955482933908200026012460445383819872756845780810007573599817888289806251103466108787329706824909780009155156081982081063550881742284911155974272898106243194596279051165327441133826639099503217888112543994789699410462891069432018651955900594391458171619095393073614835403602168740012567825980078315235862982554406526664308442794101172069319136613269907502673554915049693911821929044921181787602014208123578977205252545292072130415433543909678423888143873838670899184565080144721176412918451051701051262304615773612184021295886844961993271956628964664054813780203669449972859064778335804879661336174042899893672248159685209925115297848098931076830584685775536305567002979826709833636557321660990820449230861465455395550441349790529930649086010861897071878788224201135026908674019518180216302208747357487995231874485819638924375522804768355102415274653279919599227251224484383591947563683702559434579973211013458160985165018339797766820756513673615355661289036443740966603254329426556054532607001720587021699860993059906151286303097968320597420689270368531887828842970973824221274506851270288151699541437949804954220836984973408117887414978546313424916525098317052279012683080408041653798492745568708222372112536483090566522788160867389706603101794648330388189644535656100532912472542226326723295011230743355521917921649335609217566509489571683402228369049407261203234694511661342502838848140553250139762070034852131838302502186084716109576575574334473031335777081555463567724328417378863598642569867201607524815159337217091682605367773387836498036379890814664529325023794912404160435423200978082825033762243285763604076145786975315141669878423707974397346290742215356161821260758447744445791466215040676021348366901406013407338421625635504078623801909539805612310235850889559770926835521131413814237355177865349306844798686906378877520326127516196907748855515351164352732785775948114246213197542396524907935290592608283262297244928585698335262202865710434507835676219687866009550266452278566099881929742408124032711421393217845199684665402575083365566806113180153852605834293384757086579699545485529111404122799900199297136125895077559419129628838867387670476218581904329804515590611531423193376128254179169184851364724279576440034207187179099812341951332215188724772495158663816392680230061749434831084962805223239552657263607952130325448255196713234570155555278215020609895529464643215560067180359862229002663370821621740408573655851465871410942832248619342835030688905212752465873080428401966612738748694550461141530215459574276230841008815243475398000125497043112654466828258949548491243950779685719577848662670131231987847996638820121769575002489883441361516220503395511359741880779139968919720999020321054404912487274205656575424148325328186236834496489100598752891707053254470272788199423565990974036170413684250880343869367701539631390958774639700008713545244892260998451697996392855252565358381002271029332043499203243200339157392818505286695805287230693419943391335623797235125012615247181976761994272293673843877233603133059195222857337877633680646636609714559949017914109313781434273119140313445657270492064228629827091679822589569024654293300368634652525967551446849827770290859059082983324215455514426105291987072012843492127399752210939179369472101766080350723976681351001493103409899593728514426681873993580803295102846248237631696368425401625211679074014658246500363670545110043138817599328469677496753781758227360400447781051018787085938051478379829300671177674834998692804099795621974510212245689766757827585443939084450572180246215379566699947557635717648425214887566026884611843587658409494046680574252949530968986033998961344475580039105609660718216612643403048874521016283413903104223583056928060430788590193115707763853684187637583516486839263810201495965890872324588006142946101535668091646672566520564626216263943080894507429347196188187217306079380541826861883178836800363105886913139857405116140966066662104740069186532388159331846323667627690318280457129732437104944632080847263216065704366075738963915438057039438076313611580288130789571120771352911114145725533263016934680307787755729178540607473849936934920035024773123134391556262139677724113562586353966328463894176184912486002336520501027227526709770123258684444515009044006107548194645144837712696301462442454829157908397437930603068819439188287799761391062736714871840876536642338313037943659201516742831738516227853559007793640889704197312155549513785514781490886020918392552689372711435147110817148855841117176840727696402434363024484614788883780740363103461942764333134762949986186337224274665433751053174446185422367535015100494871662333943791121989782707262700528435286001405413129682324241272374662583301960133708838781429166474268056707977683285549799569237235464741569718580292001364226447357694653719742569811878939592920304237561034787403212187259417368261375421598685003341528103703383868147074538814786381641661065941742046617033801323994946155072445033890363873295155887342460674650590154649963964863328512009965533756971297870841063323509052925887352857255263693870874316005065242245481624622247640216239215966334474207074202150036642497804135234264176359214247974819609050324452120320717547402454098085078360261126059381696569140453738056108520062742659444821261257088970800206961050484802082973532552880944732335545886044621917991430824571732556052011401283911661129193769622705908424220091659027383002380898266641652618529373202434106326026415966796802406456313363294892298041597787079849730226316594400092734041996743598765782063191849200272173832552784867932567004621252307690659258819986472469224904135235580164004843064286203503119119279436150485120792882735841165060400805978383643135815163584972864658790380600049630002897360522064985914690014043315678313783839131131181624699256069430422982132690860422528756101088393213628112591500109793171195663754701780153660994701461434819491132866677313636621373314408751412007035105678902789578199758819564871378852782265808837196065602142964622999568082758831888608841079639571588913659900952270475677590339293286196343509531804057434061685509290806465284425633057934419619297787059421982263158272844396104458483279001056790616655112239202830091125388226476534283770650897875041974395933269013525977725456790941271990895288168804937447451984643064078727634114720837491363187628369993316039759804930997202418728778744588423621091560554395527040219295562540709605167013218544477863980585088787366723107373500446533758968350984154728509455725190749742413417194444622480506235134347954264822185872055209996114915565648577255300346156037316697194204773335502757207321967256015567601371542340639680297675222467472682080801262437020614324140281830794236499426518753886417808643659825180913064090421560009307712281224429994208269314802702020732342061197059565481388628445396800434336387062057815781813944524063466845937484848329019324302517673215240997578297386610939465598412759148316735732612682804179182070776640061575752901518431665725819565330744959942820151535234029043786463095424495825424449697512776255235189857373717037867300473684457713873810147077474326568400644633051618572225641782038268995311249859395244555998099011172253863998246816389936926867100056890260184178762720597998844728278088633612751934745132957021079539601552616727401155002865836956103712954114744128239377492536633688735228699929271469059008014447893958259752488534323365279916092953682278226499989317750677206719616411182841112394374946035145270037620770722057753333529951629173968194049613010088299630319102719944523544348455394589701301566929553442670734991376912616788182366545031737860206722151418229268295620632339878712639137902770846438482978426806669389333088800132686779831429757794111277024399176951959012716873472056036755607206643614111419253246967686317575182927922995390532514409347237958252957713838272867086327675337960961224238934342870087283957265370563387841600330876972237955603002083311778652848317911739007731790409056722891726164145835398422974728945749856947593080632508310445869384949216649924038429353539770072614910563665838372517319589595843886721194200984739173114931353461613969109579505103500409560448294023316847314213655041421822702630501717406857309519053517824065948266667248269403724631579924115923794199684685222768169088152740519457865429477225751675872667917631045171729947181046139765522721878004764599922649875219445138664922039862682757629665654132153021312059672774158107780267637449151287657225136247308344895299016942957516696261923154197698705176357295071293447727269321582392430221922568749176505737154996505601746472202943370266405340167808079816325709638891958889180071957338781911347693636508182738257643670054064000110565233247618540994735815224954089754690878820167573280957880474522175215949169095216548862249223067556732049965172434853926941640720111857089142185961875836658166861307146917440850372225619639273993119096284908874612159003748225359659749918771517453220679095192919736488149359731764137300547140025393183631195576949122179914294044694922866191127646736243781378749060633007667932682461730442771107234602368066990622931838116375160750071586197039425485794438421551342950912155565841415619158191568657780710127895759174866882550436705266590372744613949159113997279875055443210556674093962319706025400964592521937009844130831740821133039697560943180636880676218099936341662651151168470154664457642653436809463016013873753929671021304658616029344624742174553982624714476077487763618886963797616845308039689583458059834421080925226943775392819216607794976114386878314820253621567686772687822485010409763066300445460115978850531997989997338273658533989766298940924806910944845711365380647070695498059378972331798502422993538172234844598613881242543233678608764901779365810561482554775055529037884833877711238602754844312576054372317060610140709111016428053106762228755986528734448727072237117653669666994588087801777520466847928791741351992012228183858545092246074176759288848119333913253148426879737604036743341838044152849561688454879079986868040532268741994961271543475043965169477422758862173049695223189092971769317532886392917177752077438281582065149082583102808960883329551686832106640567443824408979705577045212391964707769888926181272073322895208244775975160776737803455764213382229480671966824931254907357397204829565063801881422613531697365628583619158693004819241745958852293178472162290107794259106798154032119094735580658627629734360413692237266981579534038479257758641715373503643538991960552807233993329118206932855800094060400816054542776231939788770825687405737580881893475996843681452003908186721932240875113268128387502112202016388735789698901501877262082702291378749006124838238285941592051227408631144681105225851652218522934910320789989299691618826180449360815635096170179406574783632858983910954798687001917377909666839257829959802422295063852988396460924812133707938776140512266505836146639822518224893527161057424001657944112213591363175226301899598833350745218898352115329309343271377300386908987371284031592077376154322629753852505594025571699913697574632717585379793709910685605725702490874185226338738617271457981629490405963235226913689255559175848125929256475302569824383914631609020143017578733688640293170144111201945043948588220295923316137817567342952117884008673247089966995314165830021793949617595644707999380517820891107702349941659438261651996021769631307722414812807371772666127880677721462097682176312033002445636254210527430025853576737037295126271074818281391937521444697905914455154918911813943158980437448271595737041862594138646284963873446680028486303567022740331558570558860947021722293180272948139566913831387711743921486152857821697516608057240378383947132031944713846869050726713404103637488698884054681302998130806137353041040412144219640875370115065757248484842016216986525721736393309272319007989153576401192920068549614280659662589642387532230535426980245762876166158048580985259681462879006807101282957216245095481370737691384286728526725469684003049373373264982244854877418290896040333816202553688459226903874424866444482876354215461431055644843885914691758000973353131974446350531655083874775863500851221504839839035709703302219455037943050030622853101724557973253552382762792703433632362941586247973271822681896203641151931783573520571180439765139137953776060530364923748242129735697209470880012357053873543746002536989872532870271857498809139086067558555500519516925987584533241237031423531029210215727451617204762728513417397195935781029083607842930442879277742038690799053060470397040732022044502778061991214920899694228200649644662771704039887460499211659261814058628101635775776337428759424797542421886188537982394113391362193107121594589531069274601307109240753367504753123637480007659656143168104637906711363692642321888778198545354346104638984318550316167248426205915493357760970162022717656941055514714996708024989247261636685259648975067764622081977170874436991281700357124717329731932888978723648742757177326762144942994153469782245076256115370669953474490707281946515272298082974142057630621555269436101287888355066071537173005680043687278366752719742987700952644968348060546342983058909686049763624900079714553595140778122536163373103277432117455405903464247659382811418187383526668542120172934283807994938081531360845098829506151548489165188462077517126629562938860610894149697177805384365496224395333503576998528346713395990245044331656228930062463071422453289662520646072527776101743492778897225255972106233714330786113664097099562637978477450369046314916718702350521632087231020085847630308544774457075421719024429525024609652168834463176642201891087251730257443984326049325283102729292363520842795627223026625968419256751644730976745683021932050241007004448779233548303993203792660168645000197915613248140842775538813372098437656300532299521315185631630164910169487058316403072867011632359762103568411909672972119827349502545694977499484546301971014683937287079775597982234333761671359957609854680847138916730291518959287639385787901479900448608706902005001791244546408006134809415580462532543484946373385633080905515471353383641160015039874624709429964349865141892398494995768442177276342199960439664231898414578031260870626975298840050392176722266503064598340044733776472017271390472880165108314281246739796826890530772237394948591643904781652669668233554238995926185869027910471022454749463460695898431850360471643561257782386516614820440429196909661253271964642683394849948817486056200303578975717653070199137530780266271919628628157450686538897773131033234985296581286385934732870717149141077770988536555816415632793570670140940968802691260107518345764244301277388680133618520855388359793778018687728797761649370215874315817043969898973621053411347483329460917620939937340285006864632137744370686407506441210102592096465102556558252735195830491612841526836060920877335038785816450622925048994817226415898936117183552881427809177265902156159911005139262201827947903630705438163951532066648960849537528919463410134990410062310395116343043820067628503883919023779648816661019843818119986364686544285908851986763429468493769073496469405393852443982802410870500769935607092466073854828581553763298542873542431457278768375089634597090893973529610629574052870551234091771300701805284931227476816531734748502262535080585670446655518878079247155847149604594201323995383065731399698538509736745530348557444857171691797757858080146031191682912315355621289903152745546215648778120780420421628562431315027605227806036353021164836264493490754792388617091804940168565541863800449722402458177786302716842087418280044717326069111145475431057608069933118180099154812464253713374754669494775282897147380327031784601083893787962569422635192480917625002095232517582842682087701586647661622714891137463177642678043865877030657914474820252022045575009485677838166785157684840197284672281620716467313817670600315766026566381053674070195903084590004251569177798382329944148893969182351044243493344391932431273641981753247634071920705328918408077525470869408351643853565062504999685209924538445346357897418136107807080687654078220259846450633778588757698609470097184145460598461095168629978307909238974592729057385897956803343534957109468567999627272588759692216392536038443720015595865377528137764467543992338880865932387430837721889488725056501798986260750820397370033244326433099244110982525269002333959361437936285629231438341207281105774162007183744898803979097910617377930265692635126652645360286029638179444858186595362384443176838241413219474139170793423026084001671817154667259241589639866934295532862836615212570539268912554454050066908585157893036590558241220723761846303993181512095571654615745194399674210151141399492544754619357672817338843018394455536849262692467868627463013052345690274217155871738599299088640291133063805812421848390047073908107633862103476558570481221696470552894340811753579636451730327341000917145375132144567255761030978458501347626208377458447716687544540128098093130206080435726955998735234633364443649903437260837136762689449004707502700821744374719589494760519537994798363851139500254141510385313490144921811730770754110394119600399394539958419280389138538439676243064335185547992518241952173525070951556127269890354363568432762496860682738853654851908465741346071203622048799369080652679133187524410121306065245501885503003829221954614435947170471636998023338319392714641374087389711315901818624116673339223272522011834075530279869046529542235295923481569216497803173379962147637694057936272528073318590556156959669698556498568708845260202252028891250658371412493404805138873579945262521629611405139908394157561248467571415359744800573880809516978970272095913195466715383742453391169107816771814165717961293370657328388354553063066144757554283942891597902819561733819163376395189024779335712660324869063653484424452260403137634770397474786487947463237703126279624573505646427408507237096933747532826019450029938761771892130693104070771589915059651123494636218129610532513648796979798443869858825222012566544543367198215299155515080583102957115015764670034045313774838084599385914510942881940077861876680492910580125451927493845434701590633879653472417059364019242631169197351526559879993630750435683075391291731443406167260743206389487770288468587838958497944731377792298735419730720226258782592219378196023544054430248292855273853000013539428416522292394481176938423199175271528398211808951978091404107561085948750394495214934928221494707011045699118952481494501583100047962557396082744119323566315806399717023968117925098572757748584130288079095303007076766325650036645150867947751371102206320213132825479263391994386029372360550533823685576256890663787310604796836781945549082113136961390814379553292870748916548155826353499700471422302833781267497243338182538505493007331478914734053131862978255186943070615708629737967890514918698692955842290569309957039269879575450623156929461303442413376066168749073737995737065938385554976016185589290757295349714599744361420791731365181892355606671286169788301216531375288029300455266599011004066261688223802223322879570727558729728323906564879528658894354089571985240439384437439323385677057703125353752942254348125728610634842705202203158106285459038588042599758154537401627491178783952210275412590478237540060036735692035672966403531501957911086931303680174791857878656732014908523894734050334018001305698027490482136773028003860413850508747901220677599346621412004511767337317953867196255971931084013564009943894933933847603898170112250998450313065636253133089885655159526975820044144973783994951147388747353889991777031588993297010326787258197695453314680280345013578588858094264727160599832030688391172180320081534379520088877667338618499364818124303984238313349760924496073897732055169059651510572666048625642045173580799423034589789195756862582456190160889446395090285596709319493680399062791929675658512733540944367519081659988163090810168723626615161368373980655933902225588535738840143459293477493321627084887969295235076098261291742674249708100157696258395879474953929925760221511001693662589537062672827138421152012108694954400375323223937587033026443838596431168462661944670941017747806887725640037263208574873652844688417103720686176307971082574709953071509534709373860698913070884391046283318453031840203735127218477013840816445753076915532267959432012030659294657809100611401898679994370761758769911968115830680548039216210202716445699652449935843628518268551439327192654078751778318917507820381701115628779119113664938155253063345169418556404041788942557314989774104776821868215598985159393294293825227459372629689742400273881523949160959098626642709693633723784054624068008343284265580052542588199269980335022853779738441915709744609277117441295856657373987023927795203949717514187567628907074261762770539010891739879432052521219284912521308382376153663661107905190489620807641146437312632659232140218314529210994350682834532346653769234653282398551364002608183668782610278498091759688614048240551857852156464342552937691998797588784438776237296136488235962488727849461737717484801601427260489189408530148907020441870222306063073293388128684239730524002111231109030946692913627613414786589196054961988539217751717385159659216893084924518876800059140195631138704979530384000867316503127992929408237503280247488450233515150823798332118797922123404751680500072836378171534427806307444613779024822359096938500554374038359598431660534476243487757020694845931768435285779932301337587539110316791343939345632243359761400223935455647201398016508251442272589235298924681245949152230203268118993493355234835047521406385811698517676489057284592227769777882465190509079742509348860518521954690863923927763102888606609860727176717445602175432358964895651160772555351072851560347287438558380085430707556952824519916029500171219355890293931506906751887806903382992448141184173103324486488523874993481409310921488502658581859699232784912033435187681018247354338271622217512633646000344942003699687539668284102287906659164809289802475409756401353885034046049045044579669120415237934024481961385698069818509853059242660790402539442660522332991357741673514807723736146587775461459947282569386510054766063921691424462099009919516178619261975198264678764199622732987607632626149013881759401020725869441580020855833510736888218192614806109489201458567415925034911523623414139136312729577084039811958152107196116824670260644470028750152235536840613509748104384718228260508928389711602680767041881536666114792376401257667813039976387320878219853102525146859702914936226283870240590213190905090856379471549861370162922856143487025840786815423158220207906239178370894650026242184965179927877224591218155389764750185191712377800085392990241434920787858371629789244375738015456050646687138736929552080166249783537346366458131881578901792062748266149981700150037865958341032085097773764780419283238840054639539320112592466036441900966509738815091408082639677154690264405571410129171327043112502003115114937876595717605199858228726817591737427385082007311420747837325739616249703031372733145865714246062349134653401828885846242753810595961644566467369906451804089188537859433511809832689720262249800543266185691265088945218684342918528627159497078557416426319182002076955217366305227536869675941092270521682995334239702868122572883844920860685221744512240066295512005436718524598899235290936505827667363722550522063805295095410238387379596032891181254718391461911679216981527383263139448666701713248099575536024268879889456998341345650065236066473203762478447803092345040499354798368692617159861946176625320796501818646657108092313575262901761739710696879292035631492917221415369403378293997549940887628913757502282420933743890635348871153978309195768829694696867521053816881778557079541890301954903676837514196067156662213246167277752900306599411209019383970977494695811629246240232823905598312000678267896533125917502770512290987457823612098446410589610692103861973192081881136868615177046045260259772346930268088148876307103616984543280828127620172755808101786916935529905073026050705230089501853666991202907454102484909468415427861759018190863372321106389347995820908949572577401179290157743837319791944194171129044490014483090314064273466654273776055565297005692770338247072038643400902007247970290592728517096174512852175786223053986118835561235417884717891310491556764517732409684090383038523456814724580694851121227842049751457028556745365247776456815293972094397932589619029680962552398045231647744225688472590462182853003855542880471226384653286789418195370323208138784032534015480100941700288956074733022383564566850509375846349579294835010562778567844753556425730329799653053214630173316617425345914681488830409526029642530889698348035145057262820987688958242764416415255494526095103133904321746280748602378217941732562224349301099169809444394412630147289523358789766061132470998771626768361397568434570415086739185712944826932317134266932624308670373235579307127446198434073488695321472588018725540521889476609045352187670984962075269921553391364104489544580641150859698856372258158951780613129536448835019662754599649156983425579754890228707076168688442664385355054960395239906525300935398054720876408286648534046841500513164464955454286845031426679774741447529696974165515536859209640499830152021086337665488673248862544593691488972710460351503641025829083926627051617203550332856917504928755842788890027923196338035131494319404387959565564961615624661966603763419718198275797411555796951763889212684339272579389018688210133709245560772095681404186319183997794407336983726110555587956047527584911574547362431815330465438021646106341870689806848688511619914192758425846481130295148084866705888209497035638737100085416763491823226467845493469182731738416693047511417015277679665230582651899059400488388529772258369609703008342980592267056347854525891341964115610147097739949017643451770054065602410361793951540985875174065738917913847495333811332814908802733142828772516736656719201897537826561662646284840629196963383365600331524074525148073063906842415442746597131008809820708165555409857687338433273804003978242299833979136242816593993202912382897075271581662052339174846741854286558844322160421170079173007910289485432607834357739457967135439302965926049155476813260749249802068112672556225224199154458999448068953951965720585932872002210755801776965512037385009496027334824498316756878082556998417100670479822379518381532335564828025317188800770453457443815204122810874938103860117529936941338690320269603132536001670461378217072237652446776769719330630192030665788615280434529380866454429979654306357208304486028556394312244411511600097089455975750687101981205034593484070734140818839701650399671634024881184592566659766057540145558608350454130311535961882917902573544053743398182603951062224610953829631288378657443327110053921430693466858805910780260781875260173511921924726868975140808542713451888701033101280496106572356284578101189695384846132534077772148496674852849189919794075089195583537997379557255286663536107206099740108004215680746089653671605488160288551632611953122336382542479745998689427523073420550012278106386091988215913182438718537341910148057893056049976081603302018260478575412083712268294575862058000068834101804657691453520566435667424324183211784862956269376742787211523646061113788627270190656169923374078294258926632583499176114930934069421012785489620140257153492505939633641823892799396686569189970274258891068667158884415545001533935641670520466048353681554441117835715034845092791423954730349499576466348667534235343516117384414270355185393791783935686604784854888221521330034370652160772852835617002719487108936629550056350422796663690132317694142416582032686010818309753751385473757804868535274513205127839251956670235449099247650723503856652191611616017029051003506852470310176723910759988437225960438959437251392854824473713724410897742036551469876158703777764564382202294417937158180613822890996175076607793551752352952678079000235820900191339947629072803983761043924523872839587790009532929760770611699511452202730236585874662972063036116895703843368477147849841097155509586361415152083375689896214280617860285427201795668717134103500595869897273030695139892943740351810186937609675472098769273404173015451904456219700622859205849996247047196199706562108391568083317279463654671667507756684374775509733630767381118589503099989020066809957912457558503932498988372294514320573503008248418156640171081195369275853237674471777010440104516116290817409591256788883274706982176407232309289561195984077937985801509150891853730933830938979769422908918874074169687339077639555853590516867860973750332464794861933712650116798908254648296354149261468349999189766614762868210436596869738880194214966109372827894760872357303551615860297193886733041717938967024436826499424238470005114866584277371277381543411755593349470431502636289326136280805169232463949370479267995222006753884836198743630780954769800759487827921049904741768703167619954654381507222002619737112215995313429230445381931843551428376470547104544197978347292494951428695733455216636397958575131435260210360431924542901476491030600681245592838118428089686556514603343232909789779781878658188102421463364145173115664670417333923784027121145004332124949168863223238042345757787319673712555032460909260259551561173237867024307658767016081366032216495797804672662692676011295103006176207234548755457306201591304032996362668536711617214096661817168897453334534255542040743921499484515871892206422232037908751963376069031764641474315606237159409293371562628627028416021584690508698978457211434769998904891499712818425806510217656900233415702048225880198269499181536387667852686461444258702715215395132425426664909572268041101362165767573669570476286094330398199123667137883823773254583308217840426120057717953363313834824641614682637104474786911288909083125927745954983755350631492592336538306969852374334372706836916370638565498422058074922739740266818651911080960312645530517973660137210548000295369207781847180323046822729220976674100793342444677258074979757968043261180289428020219647675987579392891191480163525801461016646825704698118929317168356628811859140262855819721497813193016965793901383786217449804552689120303375619868921821156417207281341346399679271942089229723369156361537687814312578301227723692109961076492814019351504243462844532739598648694406658319432446481078920655426180231710553556954134535784957499406199056432192001542684642104855964698458776122198407179413498961111604506064988442113434112383978740061816080441058291209996428844985321588697053184263456460291256413802998039011419883050486741116579320561962695955980360707858538560802640563977583768967524667092665400061617583467557051770879364977995509963905027788905033362898408134417875650593383610680055154138179062540514193339808882480135953550386005691253152688503364431691686879331797609124897643273490514497331308076586426477980015840966695082263806969761974545593003986667232348402431675284492525603203545747398438795107131501529949670060728262858771356901403029668072420857155805902586923480347437315157878619925790359221224532941256910971910694407112228670777434865642331331934394729850979702443760101258573009991434035515933665532988421319086754804666872832270101010640224231238445546945637574090097262415025007957414880614783248214359168301004378086012326086959262023334220304538413818072423043003898658284263330208409979079378228381434428751179950178166805838852246954970542948885185304047933455751206449444318805869537672899368049513452298712993843723505484238443243460919298226904776392099771694705182988929493841161234107522824588221218304616976811570998309393541065905242798009273141725411195810529086944407856378296656129607063856858313326173538569628627197533747808225190156298204357025524608323290773668694437425657149011171672997943202202367317961336747099844444439740652579461852457659791493150611955238947819097555407170284194381202151148086962081947146978581942939992998255628492431110274584151121442700270029060162678605875525922161641136778845232690931039481166869206472052273473256221831732605566669580650154807705856728715718384700216366369500689390569661022968815378073231798127113278353834088248943672521839864129250322055986601228191649543065864081955708091084056936073644909404596332168417735552957666855233498691228860794312648600771992502443475998228701844680018349128139050097201854019387759291779163184418232625225530295904318637105227656035928306240087923406258425556792548431277667533976741514788879665501519007836650172056625111262954120209844961423172536435081939467120660591659803254181120165746571840974748946930240777362506007870124551747818145222199398986674551811547686640650467072053490167263677310873478503579052124799986604715741276370849518426798417068341957141162125195225673223929702942572134333672913851111590464976175783227209437650686936026261923070575109676032034403942289661713403378827000006877262993491830008314451824415167033908436498517570565219677745263898398737279136617907355731615594469399958589376243593934836319299262472865516493401137876189156817800977098314018275738636216954811330151103080214383206877775366504614733906583220167060123891244105429005070813359099832307769233996006283563313364084913049482993665561064973472105934300458598917913151436367776007585945730473404024699570463793209016378742886981281694271769599164679594965030129103488786186920819510579012896240350949586728897355756764986844003836999949221282079911318173222580160963902138540650504771476253812625595344009674556688654067117878358521249152358415154017292181876884639613959198217838260362307448371573216852025593661234093187137545114293234153304769694412762043986942499938916860237025471254746609377479367595950588379363011613564172296600511948909361124573762988912111536715982013243364318734160973103481404260800084295703052256142110857779119325629078763556591603020231606127545312035033288903617382428224894516635666477188863018669790331523694911432038181544008659193090401534974612800316207246651302525658805390761827842104703926883767963691974292297688687417383826363044819378085165896442256722790674433661647920885050899769225007774107510025743465973728117156956358194238754163886052809139767717339019515129153365182532135133318579606899829550849541031737032471029694928141752239031244985058945937702103420412920015197472566645520615118463338021932965121175337351492284662925808320124362467484356722112211386656145054927037139654488399162554010165326399625103059642136469348267985265512182511245119689493250078120237156362700575707076828225486891970964628967659504142404683894118011768617570898078297646708420701193676888357285277827871860787087725567880211297797747951880825056945709764522968028351098143035606913944771992487226239902991109685361217189242133736466490110671073180697169301685460790966297386408657874964460281010856599520712173595926585092028844733757647084653661911688920220774639178353317795293155147245416951473037783164878648930739647643290571025748905284263807648989470877317406418033209211617735237111309016711397289893443418583328374133249808710987480058770975904947692110211523076605811772225216206966586119572881355368965226715826659705277473947246223510181955800790870442446961102838964903432292768569472140656067991587583239381724614197791987406311417561547522028574852008295476550151043471061453354373887719985078290466220287583418043595781542279590957045939443435579301861746261763674350758172619068039244823328305213038135471972773772769486650604586636689129942549775055510630312300057708578481007729034337620066754165505084997235680008143592496305449089190601226603008272471148415256604542615499089849514998586927738772297730885880532706714169664333363893820699120367434706800536118577855025286454980513254067181141316838703888678849782773963886279259719867121153906862810400036928447816983794249587845964365993391935296119322417661702351566364765245913233122831477551147390385332126253329007521359478634673594500218505331765147106071112477183839164737463277999054380728681385009784003306428932153386041028757481882860242286862294878850855119313109679003024886513648635543727828096468184937160888717388879831247143368678672532270696863073429251474944454781548534013965098273091645388612253685339867218113916703540864462982528524181879706496869039253775827378812970532027583835757352140623122625219669769867837656829245452351466287471837064870265147092707833390043209766857183150180746540288369634050788539738968937085608611728971524428130008891443628964510127333034325238414899504710600171364151770934207762273166787576574701284704075313129068704887446249816877531853233522645770401431606880009997606231388294878429140027980672742904727460295305975638801886480503633933135748693574076369074023577632271606621277947327553779910626732569634318744506967600599352284072817675655613837556560665118092133112373606774558007072611711458821960376760539301805564524001236732537561007126113884794560872213948751308339747346935938507583712051239197079471317711307682631785605636090842070116189778645887812179612809997659017855970890789944491223501660675264878671624416532903741131617170207268451449807676637051174431697181803790917165159518013476550058374388857080763243190102482616416343499877527227395163452641955725797836799935336353101787746499916310184025915562800260727594794912688876271558659854763584135382116837695393009136448237759999673864063737210160269344185992907332421684222067618504410311840004698483529985697396294963822756038828689187475366120690323005863616847282055666877180707891645241028959890587079623206896069343746490377927141657231520697818566184763297173665570030841789320442753807265666236565074590693279820385058232124082475297142878848897792976837453003433869016701644670767145875183930282256723584691507307792634297231173783745941981986380111967977112013048813931982755422828386037938575288432158092027979282633826295570525335858673917223054351212005560481272062706764282587774342421442855928644786457977611726031584098809111289909538882263878075290844846959847042718746751598902236232801005072469894587006472441961983902106626137878170687630684632681521124076839536898572352383710770454971726301062663590853682370847538376172936479130755443252558584738409002018188738547773621478255042967956718022146204935642143512169996835913472219173309311317258381919704650688732081252432981336809568195121976746875676747875351933439331251604212298500744149208631706182650145648303769310411284759877866431059699871907060355261336186837843654573453548401837874650549900974007612584310533458169966638250608324256723639845043975638314409619456521048149312654582779275661278520559687870371727324046465299220460489534795586321296011496232412129870691551360483152475012951147250053193985932001349396020420558496976907780220171611061588819537828707071026720048531984598820338122036818777126005475522534533975361758238549333255260338902222031144374915014641296031648431646899886323364416979547723076932517141684652081875418198209737117063777597478953910844786607929078466273918623277209604687285448488395697201230934788575520173475012090693337718599127371425855589537404896789195218478220428999751544080644934150697914959191646109854685018079757667631458328186159780817356229929003361440326748292969221023412646158829616066543891995826381431654416459573848195439505231969606772376584336033640371520608484089224296923557198388955536418813679949794275738468512348051132259549278497523048260127610969705347973116064897130228879285112396016720949806388318300287467252643470149012214250186043917805710768146775001594667485722556523579046373964134428893880884472080485397950506190986059739125519992947746906228339420800632521790329703777106389839739290126959785907497966388939030325596344652751689418404224683320377341757679531815682040663561497958901236563605706558137551037910342568468896153029043049755043054392315375874015329115919985114966778288547665788264338398525151787170774346012231439146342785433048583632792322878029001083560067092266454604614159959083780784988309453819528203288878295014935913975321709738582139550729900315168361562142450142993129046466027945547871099309518536264153126090312908177904489065144538838608187931159233630735587185544562756320856629764144876121803639436525025996530075882144419138692983250396082247440812192296280508489507397246003974667703704633385988137697441587677130366308399582682986042697316421377704132489535991587976361161187071296503402803786457551354315454821338041644829498788169664550723042111974961860203165962604885938918024692244922064856255481788161764293225470910920211336421940133597044788318581118347213192120147764840953235809962795522865006501729691365551661189035887580486127485490270291165990791365257171626318746778889604175058627905761787915693644411916883408390342221439400233229707688511668832306376704928917731832552524840278055936439577763249026069447905797200635062214034477124853558867957976101503438773445966340369109527703593424051731082306544044501956880727924638310390731055843493382099198753264082327231878937713084623500606791084150476183113137278249155650273625285123427982446929027601587065027784737601977101545515242982244762323407158103475564128909646763432715732135341603296377923836119369556371989019436922209203216067316793648836119873136311687096496691545669612911477389332716062298076413679082761339423918299380214595520946225320104727985857795857507701148365435210241481235017905344744386391729925256830045956050348981803499073980676991923965086620990480539835380973842556364547955289219136083174210069266684077389414741350666089493940815854977042557141617353077219273317429773836064570392722737455152558357876758251710725854936995731953536357513520213218835502405690196111064849178119856874411454599952008912281954668247241929364680868731499627500481261597526151810307569501813607703038666752973171122671355871145324563308766812077231294757373594201622997540887151368601344413124727376940534675005531615610598893976654292303615066338215384939053344156088369219038057226853072698663250803325156316828872779043602202966174960806273183224299821812407292193309353910845657827965368471979339645728660969116406929863076674146578922199682852862592809566144407202462980456518126843440496699715063732621563339436794086278674501911462272374922406439074954446644057692702024184234267402959481368055719896180355231446176517103742787154911142848092845510426135007167564879134136362706962075814757134260879195700261530748706855774221484953518110136469312213678968191271677304230391038167870848253067598550189736012341701370117566108878353975640706823378686023534575180773158259049983070043810014978848119503258085506736702206625315598472190175433854282625567969520600682366626850271906129089424050456177383754135819584489332680888534202743942212052061676896304974018840942847816983604852670523805959347142134090931247539731311291746775938187471760690424115052941350484641775560487612874858699051353118441958810027006524290793415371959980244540946113205783045730447859842402992010900597483035508261375362689196953683875378364217366433152753772887900684163760004657357954722339153577669017054488147020706398383343326255621419938566276508249576096766499228110765795632850298254376603304609907723397433679988775334814649709645500347963514288799624614179878697834106957960469319866098847369919672972476896672360099668997366009478752680941827268335899219192673271556417314018044391956469270453671713639836491788127685434044304618819787226425159624696638140472509787296181788443742839293280124032827088773345841520968550728167578522246880446136244899526631540298446165364971274161529422649023774968606838852437677618610189866869558247979058762874814168894501051473093537509539040735369700135764618675917877337475976677814109118227050632568933490922061702484918679646117710992659024363736938665217032977251064853859990448314684193314763930681603857943689573203956340633657246466045824647204717792250256470018994785320392428663494059631259428238633546206296137859659504823511947548851156335101512874824551494770278359333150696653891166238594862108463652878513647017956623962761685417245947837236713496288120574944544050422689581066711060076742432429026422886496890497429411284392416511962721623011969955345605540939703158923317317115232811904483329883091671826692432919749380390427575699659898181530262689100403437824711105299015564060059963778671612216422923318915915842480743085298560270319502813885084229940486388508400182226699562291590913809781712014545150530679578320303064168157552797223554654362942185761219029504946506362069518596115540525768724164795867213928694350844318256651142558728539705552612706370804118926664391714366694704278604026545295749913068518845002621782180824831619056761375674731632756707729077574819287590328417324278124198349569658839614293403894729382166792118405738138802544732887936354639295393756654513438423391613796402105478525172554698872876440781927946209489346430153693871009285655643603852208231893363684123337918339503693491483230871368247398715349219014461816298880141121166625792096732719541864322542630066466588807220826908757404736808832786491950824074194977182966329354625458686610518605666143923899807006126060132684050986866538238463030228793468057648226415303589868014866202681494872370749869519975707576104193032927924818351779404714821142304224750873776418099534190977653366539265274411082047861457404720783094304897099691193222487719589289809100209973254642881198957476490074468938273193349661464348745323419962813428085938818795421990749346307001524106481382560983083911994465967335133395872055493502751615850108534978082614337332865064048271775322783876806748491380376931402109673846059244958242128147639758680765824540835783958108247132239514395028748450441512032361585433501381108325996670568731307819605506560709363371785005547610659148711884336550584656406478243668866564030560722590536465252751271425953467324284579200292710996050138144237041114785528015110966126245458945276690344417039094253933348697623821984120149275417993069545063654042730835594782064451767385018890208986598412722781565141971045308091227242118656154098821543911394332423741628186233832777808226502239681138788351318706023595893732249681930217670887090917857671237170569679529046365322192887897042003633215509635370146525170464859549194821035254054324428316730917196407079786719810998767569661754482362086986322183220622950800504279435142185611856811593162106752571333318808450823287673960063041246888164886962650259176373801672051992153296288265518428205490928012066202453765158377516661037215396705130024107557987813095499949662765636629299935040688737013996558797060346654957702577383494049739497180849453477849947835776874377438314650865038159898544555227285595173355261448846545843102976037909321370676241871098799187923860736320824192987157855369572946982486095931799870466174688523730579531898001743217451903466071445698879442888533545735133631671093489380494114624108158638590374878966462085391268152050298682506552476152220712924909741919445483570200454225315914325821844719425180199932276510487859776167083850213344013468093714503285785999080035620576639524232537365748226891469024483501941396432255184651923211839039862362152645927639347183928918571234805199533469772561907848068667519220754154097820681406679772503882289617895193980605586167160539228656910375309076696447320316954657853574972320895678878383109657803793576838261628780413852860039781803525792389177127495234671577282358555686624570230584378647466886415803441234552766116155318068487632584721319931692364031875566004537932965002497476670598359520354258019290393530965137081742313408146598602615403358578535937286622796316452174604077009235656198077288683318666225891990697162493904727385873380738488435868208620363963459770447559339482012870568133927632184286605814609585905995864803367396710892636774489517516713975600926611913321881649175178150509722639525292364888877476340266457181451590416878791179918235654903000426397101279873330587763893487439436341005738458042607226055438080138675104799200815837866537815777076427138930597863019335083541632350608357119881774234512611146302094965908346599640035184418446727132606812907816675827453855043196272216152077427654174892434217866573449392316151738469833389777821170941874041059283035668884539245123526188728620921899611851744259047536297864060237756271034259373643725457885237776266074391868926189245862157940510175625888596820737457726081636775620329872129275119664576509841687252702969742406415583631850498896654313440463903321948537162262727297586634588583729048912045955825120755592234015585803989881384866412196347546551735758461456367450425449274773718717983140116433306325912946139725692085999352834820160257849156572576509523147643570732135158235413665213649644014874341092299982421883999158073087853369698487196512106669757943058899583343968670324521343209223416902406898505072595204354243645564817847099630299989515561268941740314388406921932901615248342302072011002372930109205911985651833133392022383852443103522634122072413124445308844191929179417718872346385764833091583721060811121072298346480394137552782014639606919638286114217182704752022345340623814212061717105777729456206495272187547003705906541004632521717614012126854971314295582873005431039068498347562991316773279795986441576522969130372999986924623232848202886470198478555056626650941359394055469893458080585667192838460654413478598670353931509684552331057535323887292391172434188528004060073193618821622847970048442561582661604793588125939016979960275477931759702403655823035953139423197902413925955900258136601909566134193788174298516708287248849514150350119185092494100745599620789340012020141260201996686464909726052144575111007064049236821070934450502899102730896970889047210023216493753236250369590070209266432937236738368475787247615430933992068500942768301553799378085380465898893354384885428715047843937086950953918908569133168904216983396764784324791334950928382683565838875887904104806978286161933738685011142421161038922947261737754500239635769471021366489384588470010333818974007791338169655102695756922646766176397387507453681886093259351371610855673736561641360242939184271948612466825995372247701868537524652746138562181216520973244413510106187427919857798117549662734207236240098278697670898505740096145533897832758123473516884076299843146055468848428837342475818235002684975697806969860564406758043554886579946123901310693197463834805789642349426721376330734304302185310066762772256255102828189279541627507460908646819776585833982620591006806848878986369127894500234993730678686368222311834895003838048277377368296280882074312934859433751811699266599721991013351488163702100814255425918304551841488649216508023201870394504171067879341022912814494250735323350941458446276662800368608302592631454296631606636826433439142568460161558988606202924802769831111724460960267805224935277753746956972236457626943196037115526340837406781805263019982499773210257600072762199922990839890369149230735900306161008580966524625032249462600029382904444164988134759850974782234999161335968266972655839901698457597045504743842011618186543503952776256829345588809587419289199601259823909400499073608961186702291390218437205682167278618056341546508498853927864851350870788571324014650782100627103940893086716343438247396421802232445121723664892521233111908937876296966877342872637435763249576676518670834621762978373600203486612946608754577227483379862226278036832738653260582276257749321295481760192863360696868938589267129438306805448787400995715494857073759769462126904315246617843945525321940890653206566595703611163055166043133344784032802016351338371988934383869845829892549255272620491123832109646287343162880803349451945701721216449628623911497505323962830677640555006899937076668292957233138016587769070185562035890103978935741011352787138088727793396758530478627270854146155920703555840577966474096428450126769929322643018849550957578949209213451536717986485097361852384392488935709919963911053185560452743022367325012157493809530196338831676696266653479300125360307036446795186301808871585184354363459803201501494315521704882882299743287673475875640008417305274408176735422937211491849565386030936886918565619134756558793166172069962597936659524415517643211256996969466459526010116744312022742745967931334615389702349726832570515019995687898657232205848393769294474067624858727355609232620664372445803807142643159973831206661208624902975253687148948271342025090104530263260032790987637687261731660304007197316114820107409377682428485891510859116223521649944007728179014103809675189004358267846849746703223652150213362479836718860969141246923085739273858408946748757518235469933074315888643762094404559238610555206159089226623097211911808375858681525096292402433550652703579355934674396378201868919158091173276735999831376885322509959595780298366734293954184488923616721739003607111566715686312615809939798417300200676993972446000404416768755084866817342818670738604830298292973293002671289267090593215842237753084480035352275040112595839125281008162475241386633122452782345556959812746899538456911987485261056642572326195581010022865270824665184936371820194982133565382436630263426817006958918136971087781160313832221064465355370976590232538942347074582318911032658182917407074284688855138408830236790967405083758288530952100651357193114870057768874970551143569556791227041395523174958793688522837978330416280928217769851976270390269769452839640134617429725503175574981169929967724694029759335289126405652179524090340139276345141942933593594134139276273338312011895917261881332716346914495033660711331487623255377012961520177702839721726061162008523532233646868773484589563802392425258894169989822073506596368643839108921223198739123429644579290999966469949019391254949983375681750861798726798473811369495868755267960639511370835667388205443968500756111015020364727944035886594770652424931364364567798161708517824935103044734444104021683141682012887884093976640810205712716784761642488631605928906592290682295941630064411462581355738884200654683154991995720796742695289213136679498781869159814781326630461388610864927392853199260642900688029710123151503417685309760350581619636434857230424604022611514269407535005291255517746895923880108851481326282203289300449810876707786366397554934151084348400699397418907737620775463680009527374335154597658515332448644175297128479576847942866093844486255108292056701041821318282469202425336517220356147419276178786843356968618745373799757934073458152495876345951120797761573989712678046849809500584630468518110489683862412470952689849621149379182392572935799900086364369513438094475329271112323419406095099220453837114156444775824582101430419750843701052771095891290264943075703031922872351938967343583106236266151922077320050922112602398264253609794254606318289199565811008476595838025509265863141318995170197296315899995035417769585110842607544418376097464613348586543749036999104811156595714995031676196900167470993373971647696925824226903599436244778854901336587227090914043546566785815551709406559866916251341640951573650475963654655578678497358857873136087079701129922541385033758358559996058877312203710654659710317007730014946537907815255209709513860079190337349189106486600267752146491546120331294531362310450724376764490613503992510881158814671699682681600834096079315235014068686146875169955545530821014058883954611943986030862306851200931091736181791960560928941104781884834315976298483496661034344419420214243011934362018768504340031038466662471790618757980427454159655955054578248226420816285222477072707546144480506566955875513213587871233180185985404159233933475347910044904336607693342248187305414576577999993099518294716340916179005118194978420605138576161350396636185807083481601773809596454427394084538055717604496763455216310300088331373289593864988472911671306292899086538170579589731721428660680077417721061583168692573156930667386162687454814234355177680570140748422530492808460030809972199983264552046382107882338389150972890326040113357763400852308313311016495504202093107411286604459109137304430691508862915444644431746220976430207462017036385119353886726469867247504839104314215246198547919931611216351758861098327228928022624293155457116482545391707073438345401149880807473424241022056425828636496475693344231600661318700004872634909483536450426550936492982706636142514912745177631226537055861158390217204804199209900180868993504819673078285066922748874094913578870153339359845051659055928311744073671281103467471208651097531845889735125445579870760580491094525240490789297359691316178289828255272385853205868508831855828896286991163000306133138014929107105942891122459983430066100118707768457405602837273634708302522773529804332028541868706790805049807337582043721750022732154308264361206349984137004669385348408370412969181951383595898715281916885416340084251016485259775975537153616577167496330264091001237173363399983941368056984204053850917779532104203478274079555401451021051278411248317575613161622001526919418619969212529290294412893115536229179130822203653242363091498085478620389705441150259083369495076555094287359731784706796038359317678301230503737166024422040037540208671325369581985614612062828466399373929214964260947651553736801878103003038574165471669771737377872433884239632687707770850303842726867135458174484686151898990669991438453073786145832111411966027790464306383359663057979976947732529498564745781368427713612306000461590774625560277992775667826970335732105601469098132521953723332968492235522948981764274454394637526630833055602198872074178998729200556533398454786984914866708530719639450168869738371151222435332724002977850239448762967081560767058345362513366846049723923276001908956378887555593432010054638515182877328646373887254618384951851070932488280989212682344985357887222119292279995393685375318168700245828511011528798246267015433284785076718697639616596937525786451237162305984165120624520833133918711719893644014296622994985449695095686884428087747527522701343436702495736178379746398611727506221376758611627310008740611431696989406598252940015940691258443170337790717426787668486324111344830051687827313534711615623234720856451267495945797731318634525554730772474233329291660811789432800429094776048410058090287186212887668634566587616907497996714558096611451874722066150607312608732449089173281893148004284816095244173528065525384429035873150413028499141588442237854300406779700922079656325630351754499424564864145487454292909405859590826324239468361800800175182312119066997189157569306234990854716342240145851935521299037825014854068339244150234557364889472146641076708459632288732460935849204715581769764728395143732865346267495131478645356583404592712394124913011556791684844258007651257013811708784578928538756698024911251471589607553035802520297559634008997863739770327793957507130397032300201359406018871812107968897881554581048327461753137543450328005089155696264716508401126471563845494796030063601855088492726201581023528470223335940299940476533269943930741123794104825805136066149820226406614755687464166284415940739453209268637569500752186344520978532889283858737497900343814959858314393857251693536077941335188630737677241339255158882810065208362785313227121347550417700902089883876212468949005688222183461322621472659905446609461129986600636289977569970964989984386020050421983837975567807785891629281063701175430272133918346586237713711942573675316681705859525808029501051889918427224424207800147929470659238071188284439671537149855793649251423335510228222615121102078404598289237071111740817408815287606870018473341380511262380841058805888746184444242137008302690336485269252566894765133510778948653010163944599891181610094359623578448925610921637157647472332826911900647516156439730179569545652813302277260982895084913938120327596009967857271642563557502969763545051890379627838570430409723343984647390040812217113590194710403266517048086058456837207950989877134132966300135919922677431997943014591754114179447693876354060087502388662446129986807848680005593067934902416334217802877451033711770515448348443357330984172219286993366895558706636214287612716666869206700865909796909256841034478745668669948548350875208472303962677564404999743397227360849318866527674558809595965789463847843168234800831655778672696010875364249769604415757778702125752190828255226786165604366905602242751899171060798105582261847642324109877636933064753122157769404988571821785444540555499832816225018729009525887514220585265201894892859283899590234663695183111760983055277679748136043632153778550764111205110362751222442451765239283180646322709849518137890445992641563540522002350667842543326470402051731612329300642802775034069254233540492260602090609854371393187936712043498531398638400249243586910398317929310273245962369405550527958409241463224080438932309797363031369924238869843483883879970551436357809685462035863544720984678707147078914860235865651078205782711158125193128904295931510792651629777351628385027726098527493462294653105102716328279425340841910635936128438282024104017041637189579508000048942383164351715337012040235023359397554857192138673716867751579629417727496536321231465358515312970362920446665408058077362840937602265452851623695969547671469806779417225802014642251066347162134629903179241766164372995721989944413971403874850873268981549467613673925241743509251281658202407399960604621963060116540970269475582697570905623634685064834378418430048131082189605349473466871774337201608817010914507485658297683080743999086729651050112140023599912670220786369160654523093029130904695356474355693061592157210033119801912944289068999818373467683959059366906014589641261132022363942577093499879995829833816412529304131892996243978169736870592499366058588939190756430555588841000342229241802394091960349734363023155860091981646500618178794485112837279615968019952097473096676161362644637911660237795260205146392368605642410687519213465410631311035785216903830650517319508506580194660332550779408485301856412790002870901226098306397592765278565568797284156611680682573755235515455655817341957082702084768386108254784971116301900666959349521521157216265889239154521877315056726900347723565725172095667860707432211538376988969812608183382662234363984768739831415339549432164774932974795493753931675871406121982733368804619909129835360401113499183149221528493254220171049617184266004374918600916853412200666301835890022029508880659958885106739181895090593163245365313042334671418242535385436230029230234041961817226706541696436927485563448129738956147440283854590906652789282003700500232049248612666258474874048508542432125504006316186670930032357754945999998566821965182391355987425153131715936824794684284927052889620458036719082610297854198195659977173708766528667073656878884316842130479583646890664122642925546029618618186004968681397638445875749909573383541052547971373181713968074566413554110189386672275196731465378134166254375888543028752039841266172214943052385978721568505693186714125636491655700822088283614941225582415247533674043049156008773355268428477345113777771505270636735290401372399806223204016609390680915622335751896668878159306550987950587840107121344822623780569578921412806422037508056300207000177141363233000046369850986158197512587822549649925032416518766556439590991936634514121029311146294003918428486477193259684441354330729510280354655252782069334610974194260561735559403931726870957792069469933086908439282750370804997130507798639602196762089485468449083329426519898731023031614321949855985133265222938817800146225180288289354386242209958225808916084176804146694444547908989284379694859986133234516297822773498665935571340394723988637225255612752252338744923485443760072550316272665186183427170850465055310166515522821546216800740720995411193362980494429416839831644408476174483000043517428952796773143479146708293568561085110733285545829661131912994181303084555239639777965456179561137072998216970110562771419898511760999550956614485516499389967010042619479601544175282547315311926380596998005002083339449636870123647943757579588255661233423471942321142675265806760275702662741565075895209203508312214338674825693438108057427172888890264736890034933378992589930831020328900273573396988812164951751663442926322628171873750578455991442244959222538496287688497408955868493117796541439094371239771575415467158438862785511088220122819545588367227608677729994245810589873273287455168968391783705190614086494305502757279310624176391886959385524076105373322641634692364859598087428909622497976857872124841345426557003439905889459541417637953933359043785529336906900184942579196451494370077855299844203703792130302861918016706413851076737341948130114085623668994485758193185448802371956940239857483020034866641513586879675246871166712624193150659239419797261847417485477254542380951685006008271400561358110900421479708914052176825920265755118729218699030889509766175198621112091188516950765628876862432170072762946531125362840662882324686626482000885310548848651146672263358118814419787098334120289644687384861274125692290397356406517958242194739137600802921520350246132875037977119013547043601285847993488241978922905510725053674616118107295354650732014261209564096670225514420378471921894786065925096453335622041866248802841140585790753161259203151140555837933212876390272673889206137801099381665899225793672233323273393288192282109880700185369572717160753561786575224170261067123762166394033120507114791715451224892678432104980458422690128636929759094570992440514123542621899915775902020703888217436459617841338855459822161492948684577376827823733447781026048634478236373388386225451357539986990242174227719049297067003181511795086026431642280627305586937888859218791921929647646812890963222100646307381390404917456784597292235921383088878890644164015544789186191299181898905639263126189096510088090811200496265466430081960625336388055064874618562569859248619936440698878937891988674684664279386141168485179917206869690672949912596582405389283907761552185402128306955845055372100963498783928100834088089333590074190684809311488282655351207764942095136188451780980190540187058095932157237659031232088725440104248329801850445309951777274557464619882814177918505637233803115903923769158385770314838479670077909811696952214567624240560873816124584404956435216997657555903008214097505134943193621422850968095662743563433844047613663661915323821723511761292572713400571455290789084481754030994842492380671195011980331132239312420430623994739334915143648501933563117647033280505432395785222160722634245736985659312866470478616981065724011501422527580106317764710873453020189640320144124901657691735965717847087482992386893193005418561191241323956497682392388633888069212734549000076593533545313105660380778432397876495937450296457539802290598697276407581169422850970107955873103153413680760142910569306313662013796624798038509267757955213299838630909824612652945197975700694475947987073501553518993371240412786410948384476276622935748312507783786706313550262793925282427229925051217027166968988339283801984617729960924546511749102663356845022441331360524663920544076338988200462217602446681772444266591254829828182732936018151836483465274708516114997374584276179847726487466303334265984740105807166323933613221376497867787453481531152079410309654888511001422392156675821202087137047146609866118425031595820417109381278363944552337681490177780287414052086891357505097137464649352625810175544306652214183722253459327449128158256827450489253743880196366653409500618100100037907481416874864884017331022174128621692589713895670660841739035643852807518684300312564221539228751788529550179181483079025578708141245412441653644479633307011967353392937928487927385003543953936163292044421324445535828640208952761908644979301226207623033104556327341166445482063992302761459145382862148720191384436360306136829577932425406818753491960744229369461623125065663370096067071468487845970404467508272571767769602825705779156417684295359735391497702586921885022618089321163758381080881910219049822650540665888370410472879494887519723282484246415652829443637334575872534963127520883540260965128522478271976835603789118122686744622402899911440592788341303924267761651084500398861103819164754133084050829561794316658666108149800183083058038760925848801232056158879760139908415252785609211644568790127563418970697216584624129348160388842746173408473064291005587597173326481929308955078975758920868429684162605242209154456052208928109006897367441530997743732532439854315779415290742958966391641628366461146885750845373314614530194748968571928509962357144578002586078175901725763171224274477838018538460220810937402423229791388136053580708717150997433803221176327040019625459342623268841039115280652414185077876758944745782927024077532311282189428939430865579484818949985161361186023433973267733777007911975885862462496743994667416418311857605773256911637445787882017246717488680839170351006733547686049417831585695273091437023148240405009361685585055437758407932019210889839961560419687722195056853949807537809901377350169617761566855936725474653925382885783544087787695074070014355815498816958708046086470265575519922371855884574197938325782694907441541156144291415310654130693952445431575136384596723907002058656842516462545176393655159525911544639452869633036747653323910264522450928682315472924962399128341854955600391967666640201559280356035289449666300119395472429190611502557270712039030017429012847053760601335637906162509553328328689702143095602554206009117623778803920399961541580487802817533233717289394944922670375101766518907986034700878047823663834519503399986346450717521491154098941802349719467845151062199307699316594618704715842498077961014396652144670329734544872867167545956685969735162747637717425382124533675556153389270938758626437904972855216146354652839140972396729089594406172100006360545621360038205832673012585138987278292185047398163044125951294363531179838764426319202725702796539720336554570926635835894383553303953245571970015006268708468584460277185603848316368582450914661341976742777297857724912324297127321752992139449329990879726057200572529375351823991277294042637443991137835332033706413626372932259427368560697559903925401568859406723499183159138307051983381355361065646309904152564327167783422468972191881992472206659050258776008989707072544972342491286782248211874376662689971458774956408423315956340270501263410403667891642540746362923786568497968583816326441996846050012632875815210257371934150479593002493335427734076796776770353492816855537906030384534119005126304845312863848699174197767994786249569124932489715245904075073249241627759687704487978110361408033623781975742031042822650575483669775992667802097409710410717583986906017200185804353741955425559530227135603889859790785136321288050144792730410665140102915772393519839847491333861995462163670075324612810360625450841116939574967669367071313689950200356058642939041886404312944575220440606812923241238567974553673276196189387447678125289380526723808821599612960828973118974686098643242280497211548880165744670067062019939330403483572135207975327726653008649061669636170855045516607141575268199538321092215949047835432073262530147725829471060518004565406496313650600678024206484734181341925080046662079434935526006019274781668619875359315319678867740831504223091451150156483315197187029825733441640869367343708231388292745023351386837623827060685118755468047469507711845329095476114422733256544148033548234307316603586438329689211633466838690893022187507884579630015737188461958116220734826003361212517058450367819331144169447794707999218863055959666094926160202482451259243257355691813389483375793428863129674830902182748916803233674340203291495320024672605518240389482866573911887998774684602878572551802029600074273280680350574466745635875807297919367723211491553498554473103452398121617073350238374974082201560072101558145748174800804626539572107754982828231642548885510183058806804905559024369165934394957361570250994304057934898042181107189314505449272237778095448631030046533240735579751164493995495736495442531726567254783997004115199866198244060793494831021837821235999643962048346476698892149811925904518921121809365632793399340904748248977313349814884218579397270769888811049170601912974865137161388976490902064682891348978713565487730974477536465089496577990587889363327477433361828487312041929406624057057142254292092567643369310719897210386905805295014266208685147872201688646531687908442263802730336232731485299470641160441249661430759600430754375839690306358488081309297085056188110001805679745357170357067793886137664260320435123938347660773422924689171604870909614024914847293732418591902339283350770229813450504192233051727106210422988431468620250134824484314096556580389978224517431649835276000524790697386883729994063189670969154550311093451579651066630096922228163527594279249563231815346273776630575943710789527185218480366880012532713363256955289656839584936814724572977855920737517122961104713718872352968206780137213757371762034519127481866327588687853434258795819252955449786330020833756062537305457100980651031823964345016349145188826778143215007536274529227888644857971648703904341886132173825580905630158723501205088896510424168804826953613861450523268740113423849866383595918907896918370251550874983558768492772840256399979437312675200904222738170522369537955345446511750255040180090380367526168749704332649703651060342261794353311499855481024730943125205053094849480625642528224175762458154765052406342238466175549175448336294523868126851518598704363533458690245285682973748093684865776190578339458550916728101190060288673762071206393658234089066615357728825235423607961968226273960573166972512154283869732751872090250877239962610583426720265913056354846243273822029135196899354584269357678113856135777548587633176741788792566945151222771075174540959351978791834267623668358085682614822524548504345645990703371840592967673202393781082161009168084299872819189249487083103932356197277191274936204123684681925699134003405307461333943741511140687532454563184898702415288157708732652829563024935170472208867789271544608672801248441397520257809059245935080189344083950004077939232707991648380551436184971329983615339284132397583106505043958732875295262271208598536044855622337967151775628233331733078946321813989755628130252745303924954707492172221412217432801686555759723062875730510818439571311595866386751854918295986951145119495707810349370194398273728804517854034156095343578442487668219608687019188751393061396575585928881201991627901104578672137570478533667736042228321628098239201389833668346632996258968742677339978173506805725899980816345841830738257449121515520546977172777537934223082264711193730715521754045686094428788982079106149176289982050247780953034221771087391644072375598557808967280021507536412023630531415421823537868207902671836101577517345056772152121983562950022580022295425866476357081742200733148167943554893380856604180375548475386201926789654264788314449052003328340262396045707188680767563001957725123470507945434735313674355247850391928739281480608000664109345941288450909529771802340712813932320649890668176558516099058528066261501107729701699844604758192869958784483473587267407923774835897661195707085685503038860023085149988274411820839043205620698753009518498779040467379814090787911872116964676473257211015294138177822354964872801836116334242037774447223921014676966147456221327283224082431921126718567468957372170208890657497701163257729556544244910192641246254552824343547275501463999262962566503695837984486744137084425949554644945266211276715897375334959578243426869684825812593146855501813559246546652307109222324444482994402618250649923860706500621991516182495343717783004828554215620640647912007496282762597992509794988708996747662261294821954328194086921255072019231063771692554503525818945892687798996073470048127914102168264181711798953697095609641376944889793066055426253037472286845874470517173847879284426910269690663588812830779823060681420279570523228462068246895970078074227919761457201709784024641278430461317193531488148874734237673497691637077235601665070867927207876372371262349404750141853698809243608970721203908747250124961695675412476022674418931163943297797206895958575997452333110424492276439555708529429412536726252674184952404596972407738206994522937975731413918387305256473417487918688845387094365945720347463193171221324269999154370004056520677123211809815217905709166197333854632880545080018188086694477551617653376766578433855716329731319720146812750024461243666563720566664623657880965245553774632828938342337743490914739740967793018256017293983798624009503330820398863004855807036103968754844895648941694867195718512490563907638562402444130171896746156450164788776737289602346894576369506545624243925971403169311557785894918652110193477364106284267367183070890033871305386593175238676957472914315559224404640934288617181595292294815136099419105905734212590692436913404147408653697239248023378601486755228626237938343665881506144993792894586989128918528923465164278750260954130760597274285675609948852327895686252021409990558439692522912875372483311049541470228103367604974363690995235706236442300755939440290210645821544576421768217427820374008013232130360106113009966024227823338531413341093243940223626553168626341540701926607856710151706768377462030199667867729651110181230243046161904381939177794351675775931901910496758411899709185730036754795609311192897046610882490380799545086313227632911583286657663653283018633856477489950889766394124065701456788530750205879838315782100137701320401445406772169873411182126135906728520886512010382648921853299998107827198133392981063185549314375600960604194511815433885938975033176710398863202630812572618800188944939440831321948086870135876906714328171625147670169077126595396055950304762981338579903101259122915747666553547455460752651041317512124818495741341349205185395192506595672342200050723999607434204826077515645025195994331625671865465746414396379955417228511396478154611497246653935676397957054962992393460911788781378692879248890916360857143992201262358697817326165149339904179874622447778520703275723336418958078712038675702072503163516390392009863572730777836043882896255934318462478412608399769651659277307784421931676987998667935032824715111895424452642325567922193444247044766587320508102500549829533124204183258948742775368213075533545900016895781535389878379188221925542098036118669407921117874969870533777939093860192389805669158512210604094780926994547217845770130611281938324326689544234672251586025768479589773885208464310968199581119412645486475316310249457525827486408303915482280249315111995171110635230748513663057706093132961658934706803492021101756831117144812493979570352260655519632408479452967268202192386379012666145919417475225511006060879233077264412509612172512105206066506397023918412049519289893695286519501827667767853332774257666380423386204485834954974305996491431329463912119341809856705087141729036672780499744088243852861274768240261377565255330558482860900615435411299012921439090285809042804677194202044800074225747119838437617868942278088897012882287265579827136225121461976458983103238192386961119840603070170097485273598937887926799854407052168874400800520041309934606685861987343315246459263988299280510132462078211962802316020147885903980421810974884299017939880411445864646368712130034772935059835410904072553252176036498047644727828516794169467059118345477384447248722727502987943089684372261083375784284261972940668288211847472100498824378068938120874247025163659642610657887432146155360982627833349453775109106369326221991107611424270461745292639220260595695760925272434956613447632310880638590817086809828940333466173477363764588831659081227261343577030919535048979675516039624423104065217208577022155247645837893742034491916435387803589516541636875734536661384841297156520020606138153399774128360051037203223783149910508579945798596596571008954097141569331872259965982118995231436782554601764740921699565086465899521493127086511913358189196602645192642475674958055372171528017532853206165493649929514901041636727185391392007966263557441305676367617330945350150257364377910623601903154400072134889883661999509406897312543231301904064984886527610533404431192154555668558115873910887063032157856077417112168379965550745092877583067712367785443253893495059530506601556753024407293000190515490368703674778311441667488665768115144696870339731353324722519413110645385779191781520318866977142437528705859559219653719226115807357607820538152668958490589654889023832762121724306917361309327533541289084284930067526770806921921217297595410164414689860329299296968168175797304497455717613413370494804447137313164558538166164959390111422336794900002818574188151867304834457158160232936266857193760768742294620310904466839728574690117893133159868682853154172517106557130603358222148448014412917926967760707804106163612564842039153045614395836477447591369736825210868608706635750799002038051730388560554858226305986972193954835171009066768454630234998345139239518558552694910900930698941777774185425031984534924400935074654688578053543395341989731815904833045083840726977071210807855876772663424470712612388429398754093553762169028993285111359431178690167647821007531090010614565095630118131207299122825818719122808930707082421498279702531055927376913713119316607709583924990650420558133014898539994890155767671377695374260125232960150458610089868142050369751851653678059767232550504539915466492261416287151498558187887646067257780346626863553156274282770275134225684334551425172937765897804169521754437112333136942226198776381231329774053847075737945611375564858554736444710935119088679845559978926096715758840274938002789995959999269745807457650632759450471743619308690355756776259282950029248773089079804763859460797371024876536251513797208020711839634094977771517190669277486145921265452149519485543305892335011258451009591710120987301120727513773827475337173816020539344877670074075371785758351350315940241816172260360344792242217891832172523976681965091838679751500059300625698070627568680225809927747857709205005184393157404514434834389532203180389228062851115058743284993734904271466472130532110857521236684792273061178124663729236983373668190660584440022338905739541644324595036937565963870952726791919188179633386443469960212426192592352147556023273029602570900788602853887445410054880639784224516709222237394219367251108645621224440190934462178242069915690884196857753478583210902663118104413316006053867442681697897443430297806487317623302238561136347609642691947680668271316784381655173898289226195335008702961721333945048571842163661117333251580496497596554887402768467306817133209433962339913016991915562886394107926429694756467141310756583256023231718628561933249257174938327240922347180997589024636547215058253349858692325464111268332245439959236492357704330884081979022438961879508849980780309245943343335027772198852099085999254620043255511813774028443889567953568078804926788968074602239444195677940116964894487844270244064938915811624245352769433768856676168002978996458228022207841394693276429086705869726434264654775971241759287333319727546117273530135343992064565970670626127641537058552070485487582920414023664213330807469056870291406244690350860030480464282505370246950448483060279175589056548694463424735009745914781249968449477838572018669303051400995544500081409164313241638764776283612546707994778439284240449781795153858551533506170141427744548019439643496056341301034684674698808775436285413977371640000688602683856099854363216736702085661076510704504013826288011750748102734554236251814980439776820434326100407096113604485559873295762804351031810302765991375317776118677580904115000623899953975278486529033108521406824581869602676005656551708335063011751992135459634644935724190254727352293607291865644954798560635767473398388125195035773844364511420210379244358484079395220561326091688641094025986509991225187637947730111111122709313083462274018319526603936086301690635097448219403575438639681346730143670683507555529555805175147323150396552403552266000266599307002795594135329084856894622022016185123577240750470488366714646188380060268811578505113841930231607886832508841189350496925669337877860368787338588856721615354512478960518011599312119199137244116355859355654931156464769981832004456012540200306998011289895303562721317745288120230364083621586515583034013824855446356163586320836228888215630850637895361554617373768986068501123718167205786561145552905609867565046574888282508239222303707026624043013603157171956280608237399234753357212589850831000324155193679706681922035838241051284359405650649398758893700899645920260004529655750367675902032059324389367684885587401583923849139768568426821759478384444428447124040297692799303972885802560559005896814734321003232417185941129225695933459942986336063636214344548690465567473790663355207468223249137363355585883136216436611725751777220466753638387992620605510346426065438579773862996143797324296323894047644036326853123241520738517929144944970636194953157366879406136540529476423308844349064288184356856450263311656262152948098741673141471900905144014791701854033915458391412531204921011883557365961790736474416773803289838185383202776974000682999204966975369542468556865574422827798739591326931412210650583536489499213751778010328410426538956780537631954599053437919257416154020206020905916296657443338546754318869865580849351593067519408772468980035256675511810725747153432633871637729658333616525057341874714789714072409926409594241160149205545451868734117606454358814692103009482550747548222373113193638126083208778025878290499892787287862612010124402963458999006097816574592100841509034816908189964700787019943355781639137367511246424139672881187867892564540146283086564001734033822603432796889756411598904597342758993519043171625769022126196341921630119110458095593392812041121462564526431786660320216100813692506814678426178021202851775568094763440152611603372561387184385597506429803888256924703655663281103754837471159920532411447610321483825672795277509164048439258891235339034268992864105326843241405130720863879951732059046930208513087726170771850536543730811383985865774338929053705494192834703443839158203276146376691216028271716480560308542580217597042773461576731145060251255495165185483083710183295093310198781286785552254322079083288928135171354515990042876334476854550094889939320622616237079540946050979040027827854713702500981328834916323702122760650044943255303016712452093805442682784898268297945686761427324545937494726740583936650062090176717386559439931978267214114876549546150642804629652017566624563263510328898365728343471346974160918296175330746978715916619795222436241925368908387179939407926043670550227510735904127492255189142231660439284807209846869624915991938355021735401259922512601377762959091417760950224658324182634073515284337483841457540351631389497495593805157551415074332720639602102711375369459807112124707236612837044363048381366699630682572037054633562037627382978178385425062404976132076823092931546897213693079261755025729276472519125099634551498370618426917514157565157771582274992627661664466375425510755905470736000712882492961587144172026402586812274330562508952190442999609322365897427166041995171072273804475073734731509729935102616358894393123989801385214218915984101717405010679951249076531404370532394233527361105848046764465915887187387015932350092731553203511501507728978335589741726011185904376918446735720790282189137624915348670179562243786176751339788625240063462233266661415482813772876771577537129612116802133011709571503773719547486190216854635612374682799475013520349386851447556542121799012069451859830738305814515370789117856579086396965445650028368371012297360262282962290710343464912497333361311124121134217318997146570195675921217567487380598616671371483049464533928441233461133303657095702738180616848583945637919043889625119795666950665757898931587485855908488103347884693591883742652904043161504325296421269670077486434659505827094181995511917101560743510428564764967768360637375374607594530623812222097498812847750787137094183562878663065817289369619792296790404967859218894445514161626924181835790848142565836450172558984414425473475962729926793742309105901627438895873770043559016323841259781222458133634199140828627694373032399680124853530579737329815208051481809981881841526161539870805265221042896607129964127093833655505044712392932893006442428720767873223378626393669017213295940128688128553805200573598707206813303392910492037638736787484346326628995207868865889598255777907466744556760760039891192127413635870822732294856881697133885181025136336738155212413073967902795981179718407810717285097628819863891776439780525898816138010180179058916834787737746368693610409181553637693993067672059977781322548488827167066426212073007940118828179519446269772987433662604421552761603441460235308064129144509356765134290312360015284729459118132633790712909659852172967158987451024936848254596727244091952159672933089448856407812893479821119198613293917227689610032355032141261210364258684161331815279118509084174913170423711451054847531573677660159664799817086125190289419815669671671658394980821978365322570139561129049536144207029987430877176216689179180746074517062402408055326336009387875280486347458109646572644623912988037195354534665762440804858247812655191792552416914561216140252278361454558781373617775724992347567312703756515332394832033921303593503205413563187171149240752015959833562735968952074156062357251771631820840983748397508509669187912463231787764784673505383791365603456724372552480709150327268311184403447222691897902995218315482559254040225958637747866206292663087860584083537380002636710208759052986729616042057836547644190737409738911813081010037544868851876924630184211665916589686151698243728235515885690398024278272786328716680961865782251336972441861434402137300586426615624718656131387263364124244030887014240192785652597715746809136380915959427082988498190714484593770522687626443744402069176856017936897741936671341401388867669932980199684539421147907116000419217281284257790911580605736011178840739921233257393855890076273623779108726146807691190416184282834235956685204109262422709224896939859098958124232755171836758284726803309540497293597711645078091139185935871085125447341444796809425615371557406981806350327914621383417648919492498619694624240730572940668649534043737631178088391039701562276398775518631521427593230720384096327058616215767063639202873559866642255809314358801442706224165188762828510973107152223517559197398893509066145910885286008437815978491730510352235493132176139367794808078835089656593092187902187668192445181252085840983486214098419847205103778779841178728314268212775575375784090650752427565130352424008667816531433829381055689220036263757810448132874933443840552017335003178448568954576486314353309440115774117290168985215993081756671964482461647183584837994113250378973148499418065631109988113314995903739099801253196758578421262985414446420160019482690030209329025048886572272752220002893456047206738331520992769342594906784694365486923415873646168475850810184845856373852769725845775352938039485337640640574008186176768734384761388470859060679627459233645360091876992846781412998359686294877623229882959460926104040879993317924841463993328672909412813252280937805607130001950963970196925445935999007154920369784593493503030143917105425598954945739468021182412259324963093546097504059961174101086121482181378492339334066364668767315625209318352830652285026750787629180422482215630723508319087928402194827548668108127255184881452417537605602191925568025676334732332398496822205785812459801415592522666241589453188513342032680556332980426894745045529408802866696221451455450968099463901228204774198402741085214788727555403137641048993185229554901772554785754949839124120394844749729695726508303958357379126745793695971224180685951844719612665623388019404891138242128219828055403962258592889757315997043344346505489074603374337268430755386886248826064198771507559477163685586964975815976683116322178869593152881884955787235119915284859909189103890951188094688335668638089726780314989839305098138585828348889267040625106042496026070129994335227651190031257143821026872082650579122505260915831946369021619121097135853373467491309572949232660439265506289481072489686698748863293066199825050786256859307966378598720004968588879441790292166390227178161975490893206143199760242654354676293878544124388646570199008291445276984050492471311740281426635777901876044885112637116145721136422391779012431985683229536103710358178890702324044229381446694488068976584272766450795423899738317421383260948483207269700056831301592745073849162724150928773596941135632182187838333751338664471217465639898613250337201750357294171415209146561830240338451576022887984390401868730671105614763684090956814159335464821555008191124723366528213628298768866153203106353315666468742468411258043587389934898548565966951905696410955483700319425515268699728442692064103629247357686061639044579466347268749442526655208830171136982775245166527923960490575656142335263483383881345579427284491311121322803408395005539768669304752184757295596302813290745129295025737518757688671048958733471447306543460273532901420532590034241707295709736707001196537844544712286838793530621342684521221954115612220266412922985881211064946950507607947086728607051392604877826792825317937172228527486319694048108833078069618186509526248387059841072459062174192234127265240686103004464404468408300079126007284791888576407781122693511621134801413867274744731028670580120782907010097613716391428953522661955410020843149044880209968970522874279138590539563201100500352246318340056807245795587494870537112568563329723402411016085620193533489468056250483537838655403150152260305176811980755718204873843176014993480055321867427866505413753767655865807608883280551265147556318972365796298139770088563109543646382598648514767936035908808682462634162057228241467416542978978003077265887548317980381928881805487366717219788471691432099611313041388790766547817496004227700601760787495753005305274934155389713406200999719095994110211429259269667453368981868134558476883581810150833924499649656243159993839785321093148191314955603929404100728357910640776347311705169829009194508738202448002101847468683204971512202752293064633754938743594390883062176204286529690737389937536410162279801357808405174785629243743490271851412551568678755289460676436742699684739799046683321520769926272603114602090623877130810682365434246030746116694785325500608279017571402062488087782323934804123416424671459786055318345144427069534084941734108214948097503089152116399014881374826180343457230013731946763209730643041312682470347201571750401328600589880581077260214733573694803148317768298410373630635561717600866798639158062430981946259521141119470460571321332504982128268602342065261684634508945170873423216430565351922656791386461666653465846358912901046454682339907113186925565203612442073457230198604724856622463078735685132967227844396520215869742141714832207390853101042164330008270577304454575423476497879645523151132766169212578710574080713128038049059868902663566166212028429685734015722797644955664763201962790648338815444356249181043092875928416610524001455042925730536652629947571404857408696937125295381678443402801100146412661955903884437590086445135991119730621469610990477489392580513919397246358314443973712379594678507103895761077307540750203192807976203868298713407855823680643136148502038481736665249333955618016303664597146965004572116741049692374886514655660542641850652847850166106034688007097468451319355470361840975458327072097638921457514235494927926610313468289336761419890765910776161631936923454082229344352289185652818423653218905158273392379357841846379849704704547834362797829958742928441718420317064381051013362938030408515840311684043005411109396648529743186940542698868706650766785863819756655572074236519992846988258993954929430857441497936144505365747952455127595798893870092977509623186094074620115209992967007206382461950781713462853580574730787215979232718325698670996362668273299274938335772667626445148553368329391672491638753910961750428510929687769043852079218449595860754125087413174723777863274071905270252818319366458813215597047264114217282310667955474018290726578230349236526054872324146084478861742231784820938213550150502543636495426073972682457312774078602234037023020647349146577315722803700043198904181611492027515597993941277808549845552287611533005176754373321116351509293582759900132917115461560288595426682208370169649142921281192304841396817304035031025752841746401531609688170166919682809400395355791420141892018485497027918160777211515863975093619446232287972570486215593089053335639519365162840913288481884842424799200764360891702912230607093483058143945913297087213895707663089097329834070545952336001086404760949970751371416292074444269216160822529335412885015187197134571460386655494998295359565551446524872330625555273080835965073969307476952494341269071485840050116197388625698210351695583449788223884869222590990967236297388708887021071940638026171714726600754110411667259927226173376851891361322246507289791029435532921343330144886008026878791106560713011538429105836468810878220750112019373975022976077186292274306790863122824716773763913019794650136026086774351799290572646731272731961858332695620523967610771667960955799837502064307068518603505352605617540673318641470452585448634637415730631957385411689528691829395638776310310662675064820709812415378836888100499937037167231747468961307731876954559837609991570523405763134169542516671025303217336889892965779706571030694059214915290094426731767159323897806134872427187775266867528725906640716139740312454907845551792887458486076361117471350133094314377060234135284944437937416052666677242545032601086229857284434433228647935161397707681882048901779447206476522458723098576311127717812526015474529736074420637830682739157241809675797648000984048861453780627780268023470367872190510303384844004040508623524130963534598647403043504726689773446882141747947307689943796643799032813263136025477847958048913875459656730320211100259386200793887211083347531580983878986349967819574265511808256085782939710925959065515084569887134772406634891622255282678426663263211820716887293289447920811729902295479167945900914600594799662770677830301911345729498063364050818580758015805339035644501234440546957274540797213395851229961854449272884071842115103145180760615973718508646938193443469752587103170594263342773239456777928724678594772812479502603685912276826229530418568098290281853333346215663226314407075691081360519814440348726466905745414689832005376971247767103053650127980652206324278032758672753320193659197482898907766735378268180675754976140428269673044145370363539214812959550479050148675665545006415423606673968002285155998941644398250651867775132330054445632358599485494416864102965516409510097000565240620300484146661053218388658664956037408691336443694421891774653591606809218956817347218575889463780707655665680475047824389280711712546455624465315704611991192839050922108216965950012068063842439246118081103965522950769183716639870725407758240194688244006743829514493017686567550794846804172827756580074170336334419894693511660737051826958997092259186849607038609244192109362433168589946292811996219609137382651209289132634057766807837202248097043319458546119768841546327633571254375203810486344043458713200638379910832952290563668750857043152947519646834857256091075746538652458074029765215440304270756746860194318138867549322974885346703732224820300029737141168018194924266476430358620401109908113234579037171650605897818120949978599952414394250228132939293781183779585243074527736410831367270237299924814334792242662167954596787420627507070346137511104080230908910621763425557172065143488113920977727285935609149105674733481210858120806531221967340389245010398717034248092368989598674322361410236651677648675091179016281822568900997293274880575345279601888067839496429442863993403188909663398947459193670910875196193852412211765992986364135478072396077349801988116609420368889164629540463623498879213096633675078459960429918201478522561031150340105349218055816799251599058696357614109280064692254831518714771732697746792141532032083782279835700889787964535570682495858193738311057503677633697845780224881262324014976055991086212360993618109505028560859464830967791889944666484237288006866501383802557503564766790640149128736524678057798062574616426857815408464098265571331935894858510932426145895948397370663578480149619778015389772961765230260088216534887556945498548979624961663367432021640185876814992812454938200888188958062001123147547697652470758691098389878519574570783109235652205531673589805067174408110594606556278214431493681976559382429891778258101055294625275832664356267875087526219108872147134965727078348622373545140778930033097330901676748433732720198220298006250216290426952234808084185250548233641861965790764720486200588476561281321189512604902910789472280784131543514289965676382111569199875715085871890843826075318878152880658576165152849697817260038046190329997353412738862885556568653416896751199389871652876694551268018671096220506809963349811607514035943753233471256050746826561680664802364577443823394760770174984303923791985865760537480658839767338031825132781324019527956901548860201626886642693492750962840745116920910569836815165365581925937079196528557284820929070684779696515966732431817338604155303685409896952499628395813465669120535137200049351117909433611108502491053521800981949031297604830028171207225080498668776762335088959185905766276383077941578986805925739266432112897893812963960360344859001132230840736734477640997410947838730277273679302738286576298680720652253418414584361828315320954369757358127441288361772407895297066331602658833801600381178464358979993513377145832811014643034674133043804548195129235693802117907380803347540270233047420157180026589863184925718749692296837419294718325232753114091994310101692361581051191795572866498916984751497462749807852783148431323727288761602428115556892841359282236080704615853524228772572510794882720966547112175097551127351689202311504927439345740298036802606717019369580191814243642183880712191857792925292932770529546890250595231104514247656671194532905642338756421269883763937463593972339353235857689353525064587525402291843526421333049445921795101682576445730407516639185286176507142118120480102497048298367161271648401151173903061386034203679068472801783906146678883906170687094507172487437243318885577418108528975146430994245047998310049184122307585166728125259101230236093539939719348319665540405482204403126341001920176448363958684932884277564012636668649352121970242810090752364768989573763664817757685621418898989810767705380803068657012926262523132199654442233311006783965353321458862367452355767369836343198478585788045925008945437650156537746846938277222105326203929696134040668168367698548998357044242446594787868866074602166673626061544999653787003965832456055442111784601760009310569286520248728796009444566677998258833710157933436007732525375577691756059962693092316921061435246867667431642231659845154029538987798432495452494733717802022159902923399728161937636557856253790184020965393648210056802146202515560370969396101302550440137164974094229152782189101177746621196970550180879735760060945305105497793005802316315421303910325520491507105351005434468544686083807368408159210695846897347574392292660339477207378307709493633227750982312973433114247932429204576384280005290897388349725284917046891008668054819734660090858117682041962813894245699167328753139417107237325339173337226212709768621333358461575318901135102393137644084327188416575893951386408594956954241908582222586469550917274758756880336005158716675102314497974813403419695914799831550722343803950191798586511653642373619069276307883217708781653804709463142790225528742967854582203319330450037251908267799447473764521178669950818969447509683436136044167729533518055195966650586519480683716547497197298804567931097568330977209005051218453093139002085409221914769900384008714167901197110085239873082969059775325057399049014231231476112787939186212634254894782248255124472958268345933040426973564193571821861426095247514003210291452294487358635836201255726582215260833577838484658524316218268788028582273438905327524330279961218543130393890976941063870778711647526522466260675532936823578000608660801989899206062692181069723686098862878535884881158895329437406642793093819465207182337341872739865162282897931150381039134105993535684846397680852222356471747069979149406007243119932198461734939379506978452885259862159748049438391436773210551652590155144665628447580799617085731860351420781277654615596513414490586252859125402831601707351367968899572673964411653082772783139598075234122485852869599110925859633127610486102914544332163694308706088001879037306495165196592130876810808420086736686224600831108679642762417166705233552925786850357477941615809149797129674722774278971637709309808268318434566028947280959848535891256498945147519124586734216005840490204979661244646832188566580621270819992153615613728673414708046243334962459473279467330485408112463511967512934695583938563354081923360452971376664894758454515966510122560019574213279725844876020025895718404063506972610863793467095355705360747901850953886991632569536457593969409045025709283293372225108777108891357622521513942758785880130744679854955104326549949008028882598607271703176513562136925120501814098886287226488766324252030886914204253565683996985868456992358135067025074835538510923726744370505881204965910125181615291644293522516693084960612903822437252942027018020999329001838054270844945962072952542513727039468540172902170129484657162622950244542228499522747581467778167941726731609286444983853509164637790026836371155441840142319745972064620599383916463383681940326476189750070773488540287887591701216866956994623900073406409110875969353316709874808002661414100744642736888811163662541623436615792542384216995017149698225957682327206354294751749520095552860031038828770483610153569976968678830355581652522454708343067669711243604304943649898381820151982646419660358912419730662638392758634256407547934344913125284518229839225581007783481682579008477592423871584017018548987536193898414151832216626935754947533061424890773487612648136577034205416668715853749675924986926226344136087606817822326358481808345403849401823351406541308324924793833871639714208148179661324660253596560987002713137086249655360271149308658096550356575456150975011679081524356492476379261492972228321233647042064936014072497125044690312228880697395630931312613550155622530740985909039325626696586992915824508475045280807943528209074836793141504472473589114638380576243831921063722641445383525159061523695197633304936387172283723797798127075013448942138788155910976434725824147805222771778619558942670019604651011773499847735026706722018940885718707436045935079271474245337385826381977905325003246190605082598883801478517359339072701279381260967421202826999597094189951346942270773677353216095211888850416938234120828964900987292876928083308571777343799364380435179750867971485421465672628051714795325729137921156012008563230567929816433973035487930050725802609419895440334528116442222954344259744897480246000901676277034648812621772158807915161365347155374359579541686002826918166698613271458177394071262612185857356170145155056106194906349735683464027386666828115872550829488052879176115223573819026248533232787274947295258713189141240691619461901384591121484095871162395293357931721403246681588861916593732400986236832339903896336486964239492181774871585209852799625856583564174777903820758780150620582425177700439872408524274776866961844009176704513785399604483175031407261334559804116770029282610941388089951666906187242443158374893034808776170303147577067611016667714360652407533379035621494891321018109711461674062899693590236795143304761793064284208857308701287214351650318725711907789957306283059808261389481938400095636109049162910413479066621670043476457820416096033725454778199991462299883392752129293503456827958307961438126642836257557561324745500036038889129844113072465767615276182792698528793452508377751399176137497207597912005500411728932779053708600759244920560094638639709035368433495116634065989283501234872991723483492775040770873129328885867023007819867888357659280623094426084619031659155642957064820664708322978836752070116830236726559600544532710759474316284724985894924518525918851880497734463715002171954169304874380878264312109964865264066105270830626498999631162606206567429674514531668534646046630923853576918832526181274889419460166537514205415198332846948545616579804882698765474814087605860210768267623825326845311716606619122053124339996099301545574127548212407208983483722405194612384234855124815132034307277894571126182701897318813375778266437090909554312488236077834607304720071912059168336336085366808572342267814612803288198306116053232752099831865660376694838329680810523162804526092714797805709020462943484387630507305593655749131692979410729342548863863665719409021483458577723217009808886399625142251448815033673327835173356462986232414105998853838261500852923376445082795141875571083662164101788471222572412619237627337261277684470717392663320140162172780235051038229591545730391026843062172809101139195429633836621716565490983818766728644781769912300026117871923403691409928490614029348418894520149569775768842488657379171518359056495898991207426955454447658456975598035908601258354003141164439061368859442493291932826840622255468227625297700359189219855595972889706606769274781264610280627555570415485646142518334282372843084722386904078569339917385245443835510437987520545460456131424573995426631199789654003521271946170617550058941159818745294789508937206789310221355224159330869818242633340957476332227087231302808834530827252141811133134392612378904010100734547778882281566333750291293534576131086919869429830308363393281444421824761530930210656232387490650096457984848894883898655558698955722225144333485729098624784364691435216054214475537356139303784055352629028609416993856777491455465162382753347427047799383742532772210811579925903677575206526295047226768209631219875238672403930247508287897302251883015237751693505372749772495282545328699218846963156864750526013741692316716769641557600227828097823320127802981663406860108747201715971224281179698059158831891854714832645793006568300911326822089778522576530968196547029488857319460996161601224605536491413502642584970364923670926802943120627895136192420061143169803452557304724400941803817216586102437529248534555263277385732175976035522282854153062186694411326712596403918093993471554820664166586549926888543009074869373835057494899870140269234983733759597781040459479126838369896103766751787244783784536373901243199905806750252771654581983627142324748300196940131313385892450607047045868671419284306706897570241936144146784823225447569289798273327619512212441837876241309538098665877129805128811931212741237359025526205382289552762378783341872125978761747893576760935072101644366012470844376045534854017465987232495841434325315364714493964335912394512553071058129253659305166770507265284777611458851484661708881230211772823305154816235726847771141641199431728379523279080064224433234820320801777258018934893878954758685409992195135991720802535170669228030961038977772829079348557750368828004246574506648883089309745133625562897135048254952226773088859531076910293122213079684788655751184968811370459532827618182402193321263907986254782873851560115863399655109749328151596807346971671981734258213568184966761466465129564798451908475214676752159366419100718480210244309166655930549374721763559184985983196031014480792001769558152033465642183039615631783774182851630210711003770914323543497859558427266375526255745644313264950539748502523522687196051541681790908379024128091171998151104844712167370847890877927667731945069543619441869594121442893472773971281656061144207496375560740653587304893088304567573488481703660005261925336640958878400451299001149922183567773802600346998135454308314277548183470288506783619304482435891754974741020520368680695009443052458274490748843986832905632301945312141854796937266469034788554085314709977441817526047802892885902867425270820247363102035665030382943517081630798953930670284572904770107160459163053242490364936201994731135752127428220745304668411253397922546753722370979743254761148100183350852315722993321737160313987137158336095203478149496665426925125783952047686963343642137369631486731903761965173796162612708230869541980231287387435808194653502347178105986921399900928912640907933999624473765656234021600178045133003455278897369152016953185894299753601093175063970504228057825154667641201802075675948051735199280267330090057412435222376691654620280896191657654507612882806613135667351478632993215482529494017385912070250006892365511324814533051241083614616746087759276549335491935037735883401567767536288493294741295705015694931777550800696135324185095333733162394748895546269620135468579894604863573440040737772675050850541263507101374550788115917803938571090568088337967720427704327086406881383197185008665557305379320756020845411301743023460845415971403247842815420801391489925181543529533029811896984242997289627207995453815360907943005006634753776223355369560059692179001839775269572842535820101114380123593089934227309222382614711350415014660612806747503462052679417413347394183832151595842919376819523417248153526337804218074492919971127361759027044496442334251767012910083513087025230441342732076108290770266218581144728399504440827008078558537301045000977159554089198007857621912264360356948485252114338577712072142965851462357776482009139601323493755699889583959286034179783287588058847571720846980301935477546199150800044118137780820565568005574700723552308875140062366306259589574382684597654529136722366857923593617753566035784909563956452538284811842812680009413783681959419211060323417621262014834830124775841390364717122150150595027184530064157943337860053333572309093935272906761166597128525918497179073838228840339132858271962108350782993441536918092112066956267891944563615073357131356313423555441149779953365994320939067988655680302663162129871667868590069454360554174890419685536093066397522111766327889548589554750397038236661357742897628477792054806953527469943581360976084727914957252721768409289525370533836228618191841472141046646572534555700682347267428183363126578466376367045872098390968350252624125846407082968983579486758008333794870845630276411918990993994735371147898319437115641486841050655054584015141081317929967387095760689679364217893527637282735117514335676074183745206201927580477251695787695541542470922217548286000232027357234035468991225917183921469644336661645684570606358325186185451104272564155488079305157004473462199580999792386221893481878005941638477552977237837039946341902235701147673459813877139113141718594184684541791738907958676577065269634344507949214152767935031071727956172795684723614566323555975484388634421373821319308642843640060384938567748824087147054465032803069742686152717771724029702539861683419152836284940949386786634853191808661757905777015772251325909471665029869479090496461203186603934089972043622070967725662036122639035368894562196857128122848585031595525366536562859556492434458039682507795440528233144822092299979740112132226318157911877969748000777886107762898645101872411394199376796943707449168669342462959935540226192205068727629314935504342539462717554827904060991068987087431788045265547588668647222406208487803570004558638869895147287338815891746705192473539988157083343985677109144506018826762746839764872240429490065230081369082930092432390110608935431456482645972143226506601025484228582769708848559462512999836428086182894055451247010042471779991067790708911425785996177192136791374928625342481898823010037140313547459583632587653891068031977240756105192321011642008068402611303015608719189670160006332218095474311736429075032558936850758217428136956057919637458411715393315798601541007535461820379455983096577219151352516617531014196131903687186991220470607406337781266681714819328622746992712522452799148888733867577942137566706404095869302592336147338049052315647031192981991867994699431891169822534998273062116467923601790307813876764053868411514519969146554671953924196867891840686774186200743785154464346693303403981894723150882274168030539469746636232716267693111766424814215251382036966747746716878787363294213959064805158025421572900336759482212970929340905785449511147249711012487934559342828714292246663010593368552099616604534196418310265127369008758555075831415756401822223957817605134232471323379279277073052457616156805705728266222228690730992724383927904978721101306102426838941680521316200745518025921510345593787971370504142888176033094424576594256488100410751680076795563695083045558084631256508018261929513629678469893076517516535018074384761407227445260954979067050366045197886697708297799395650917720772775526346151444341916165138917749039785327486280375317544194717128519935748877575373721070794316605067174698033875798741429006552947710302004835138784266111153818258589221837642692822455532484130705209839692511765593427814045536943225304878110337306707228214712405918872431169571504041994197914435877880798142200687308763047294482963769776216296779314943881755996804007873369111135810778656524279102183950707131364836221242337866247358635604640651029042572481245513593253066919731852183008817170496651066889573237346734126920745028716627107655939682611935125191106200128317163146165539951149898355800235519705827312297513166359012381752897372257098321122782720748600596465649371358173775009562966998214437566977075371547910017966864666207558365608337828832444996583065559675098847569232756780961489490335069466689104848714289691321655554108322026489010217369326510095037422189788469766520586165394373718376041749265837347341990685550657392963168469757149980840300105214761447922098199578171864069776242203897873075726411729837037925949524948754156920677045387083227116547623740519940162623823056904971234680961703278763164148641890142406553668422521457077982783595914031360210139944930528254594719302061511849276601715890878693975148390950705896145031733132701637552321180190880097497787698430195244168833063844286941158250092200082572956669781524339335153113207096941894170880097880635385349412809154230632399958426692829805370950881237083655675132806857910339259456584806610320077772843588325753143750932375131905185407595717705620137627192783572344817389922393170790414635548530300409880918175025211801836232345712631017740150554552231481070997223359564936184145440299237249593800111140141391449006298180682679430751486396054884657349372167019442267130442300742921244623657155941473546885406374543753504060443518472757240114028085170764365387427618504375324046700173550707319212631549337884129101101836407210264766981560516704601386686042554444814896164738126475237997904432506609377190824260199912635678516132456823219954689174881744717507433535497597986731481042875474399866115002965584523804792777034917898143829076868712401132837199281031260561438388704348254665201926679711408623892455475941576650090595585264587493960157646674240242087415609085754503768324529732199813564486869883567198621072465623660335389816145107751660015250874499795012486299260901283919452900783262575479578498551003922540091639875472517208089486535910314899666268243601572359982355720013533019878725133490947845103715323199407426762384619559684413999240357890289901878961586695936210764106386099080703181006121895418886376540366134615035763380086210488391365013549843054668057126543492195088974809782645183719559161986828188330872674940793889204457736952917086400837587576128316175956000390395895565374984479954077148071344772005585068377214742835910771912348335312941898165923348098560711267471837651713597209231524184011595473793513267962870485997083437260983647998156049593004613423195089010153174244120836208059700911472746949535941586090106726276800471007752840605117035507820183441168847997279390415863482920838519510381501458336405038482472774388972256333058764850540733630777213834469907971844891170807430497029495733869483845620175005103569796643963762544696656165868747460470710871755954952308696031295093319633493213608271078954588189069842938891368825360387374327039012981799485518840658456018742535712137386146913429423917558110467898284308947073759193233683610277610804236903348433033381648275499070137382026077384455594349605593622363784440111001423597975133119871186912140204320600833523167263167815902505648074655692870463676033919262877253727179907554895178265146022215892119984938308821897274092261641691382265056696840784053556058695024175763473464503605678546068211551258643424813805199184896173531447933184983211297506571885620352348304048145668233371479240949537161337085407999977106839787729669508009277862202574579671084760159985807261542274811876149226983575040418647022303343542111836530434168051676501498997302934349331155810275590759460167739111176518689492446186628579496093071041036464615849488233951984465791585873642816663867863789441861049500268369369593591185304346433843851651231892463939098129967626050250861980784568463002788923105898707051301093204417130553697137182396842333783341403763802264204014351079125885963916854988057652454203604916507352823862559255330073617382173490836711172360460347985543391083182143734073022726705551889744175775582282432950648873039470402192557936669210700052445673038677956921829629586060181546056253125494075807130191305140111627741788324743253349482198463128353441225458818547257261088602968168858792086661286944789556255144548017169042902362169937793227459692914148467205760251234178145463346356979993048895907364544416517960612721669380874239435593004861044298714337784623886740520927662426720322455344430285843910549622338645179512369059589658742088484997638152113918725604243506393813270653918476495564723417084482844570100729819744659131481890828366777354340797263375411774006534817947494304384294963606095954865996103280513443116854285548948561085928105208424177689810443081357738367851811730057809883091657726837136305565623708181138751905554745961540612451502472028538396826666636746476205533075151669951407304028891635360307852593913215594351756338700900700757953578762731956824766461594963312818386110579996576550594027814797449184467353694007892849897549382218194309933076898903811579760951650032498378907643813102967399902637148253980774195774106731913212506373590349295166969509871417475476959214348453044102831178809168196633815942231136963565013577756594989644872067373760150176685952286634412057455637024583286590679771350387689728007286656080754308862952511519665488747476651786230234001081629275437738710577224223517204725905101653598767081541790137957922105677122882136110082148368721515355534207764053266190448028944504460778297724880997830517486107048660058986897297315779459415370728364701981631370596713586939661658694864579720547676466987971961383374766143148803320464768432941035319536281080752913256682531419431920517774167559076448297007842461484179297174641687958365890095959862981596464203914139505641834401427888359965395305122935773940068225242571467982098409165651082183335591449651401005023745548300437555706688919305060413273697544258361306784302816940495366908083231739565804113163015942126266656231572026510240373376352849690810450461194878410644813831135440197535461859565420210481273859518877475313459001025874119584476385671021259345281633154117906041309512292707676292573224904902486153782344235566661268740968087263149658045420402455892467011423376676110558207704921664058282373727893539963763310018996136021946941993089397700149086165418803024538015809319652359852359091438140627676685294801344955675457606359107868211430565228448989922528669531852196452834829321355220837181454200320310469746922795194943206655850511951273320817478014494428072139219773487679735604655787242306168730770921466942970604840110387049721292165375149099417825055428061072533048090497455278838201380247078391087132214505780172514099328574500369601385005102452443147990301958159016470958665071934485611838114849007524811031275638409649503639339334956832465770875533731169612975952859524208037109281547023892591999740273525778351804091530555206235626395353458075150757844086874023782258399294066630910875289748277153478673742883997771422881948585878243297012131889289872153476174769674857769024798259466807627257641503443512305434003695178484438988198369878203102736296830522447702865467200250914754590520243190174027513516320160032207960014468542779229482184923303786232144262317146384083261219891830977792984266772727462147810457022847784140359977140773567387066886714678011673586108692228833746030856536321412151895271044290565291564800936053389628466014027417493692390907484637431694312024767509446777567016038920736777987000529958597732318382992645571657999878326684262746462555900724827184920903175932813211692565095670707505292560325997828686189355681754959651216589175769102697118227496531099751685676285983685539257715452464938290873675203608498895362155512957017292410449455119091599312089860470989250638259228555843853916047511014260169778490213036265284337678556080243084912393267791283911294475059561226111886944447016634391196030037357618479252032355644739013765823611997231424529759257031133958077471302036849924509390179287271356516121061670449391918622501798476452748275453566011133606803432544280455873954677628854331815359130989763141109980190063480055155631101491342351835767434411409669393565072618343735062116309002614723672890048205155899336290601137614784835988625476596715885984005692955671230174747440104424518764763152911050888236672384781308881927345647066573001638009953054142900858457591178012860259844862784378058317192824504939544603994221465651523093320281221667885870716601855639887542541842433908404955752360049520532843747542025777797432603880165946289571106091329388990799115262138689544148790809086079877554583076581744922971700017112665763431078924401504757487383429568287740535902158680395352669093178930765367680816054292427585290971467224605149738152092024064289173309913669654706656130814150197699609814657609515431599792955455985875506595973018614888031487874302297562128303028947553004751739232311361786787331129558591747443506912572341355433313253060802212764472898088679855820858969044275379915821252157492060706659517112550972933121282385768625458358350793152238034729271912078671038519070122535109607633485265632351765325026371159302874214229054811810152856242930146870272070756664194443723448141451907931898703772776352567988773499511361733739617934558031823756682701733367818651328959644151711432451429384534728552812986292821928927382280338652686035914283947676959895777568306327802106250215578857618535723976501155851049227381461666215844935397882630502650495856110389797339480832625882553952328637704986171158337459320196472495962334635989208211872072305039053561247479684176304276375581454015260107990620794839076355842949074333134259283760746297673901301717884350098092022490720781733005964524782472734636478440523001861779209544020162313425045535046670746367485059770491288669816829485375934169867811633114176731182412504840168845571472748527543782547463348809145801078388514606206753325517103848604161456864271088617532235472392543822069882274190346242695748600523751767014606159533802901752860643935194983997853341526081577377073558658196473820274217034122322293337814123266715056542878672176210483786320229645721562160092453262897223944682197864941390644248419607028400931743073701412495840712980030822636200561879296091370016783202070687060276127437020635186222749329479237924671718975134806221019783963849210181218021268975033466531718924830547555228123508352429505784444474394265280463260449701326825315097712777620644392875432906477175965437314402851926263927163052793016474448641197305427886589587737649025659992421507779644064188233616872980438971329473271905938438869380391053913233949077648422578756009093613467894196505492129767927511441808211404823616570342903746510124136887040320322974698871376782097078312756159582446534576238357081346000638623329635559558947786311309492213468098496691751628321448163769635556687337973197647652533608429161296997259909351629161594326155506875524803532289511816360614817264860707069999300845068298995727587831053308919608103786167016457403848224480661239202716458634186085508343075910213806666648193062328202658668021797238076187746419863327854457897048492557943931730472675888266760485246224942408973913044165100529417572422660450354088507192297155855772254153501021473130909716756144321194287585412654910071265860353270899810343353857641569460010799978610360869708900587731499865352863783170840639564065901199401594520277389058190544995529523511525762120002653916949884883662811669965889910077842799201576220918344179951350119422147207291235407533259936224852404011954428307020675071766336584195408154826965408427598365334783131491042918499685371475863316567197075236894929208678060811160243812644768867135870587383446085314497722611992835834713278024125307791022589383348213870075185482308775684004674007151929769683658088201790483155891174310668336802981080657947921188553752785392617442933561773204753997640099706203272668156114630523038381140960538501538200424791867603825354195889840208177069623656599773859773002524254485130130420947952274157582244809456773120145988572105057249647112716685667691280094669379680379414614404409965894246045935012175658788889685344897545137106962032662118333198855642166376790957114941391388172782587440083798593188055028771975696172226218587104793186827173705901542360053779582424239839579839673048251645234517806428092911906945690390720529707277923270912958287121677282891886245652773736514435132167753582808294783181719760631612585867816591519145655591342860313383849713369646806507801188173125089086123703977283757698497302691161818531812776267310260066505611854465788646002802086173930325223552956589578160882579123910230386931058739166544250592488384254064367948044167440235172782248663627795445014075738233879946898872922120575953341503053517498700992716255183009947051818266387233207483294074952328781210839438686370599572658301967314343448866545830045737529467658263474230704644552916653477221519170510126345929595172305875428098203165972254628243018749364298582552017943220686657101599080790778427369202709635417126286435674905387590425411315849580777237560107707369900456975078690976508712014676032527989514351542799570916107728768413419793094798477987532903658187634929242023654248020601899296306695714537912061453310121600744705076780620475162028971525872665908852614818009799879917917876525631060997437893483805560672372330090182670175468630009703014165644844727661284155291918948977078138148686775664799133535440094765473157531541659255075118434659240754567671795216810133863339126571992344050693246814890567855280918613232296842837836569194606609440078240754691051560797036714171841227950220435527017177118024498996924054563260103988416325070402878923702791716910570727490415147538399594079374537588273893755079461048788331112320956273776650367653625277633715387417609393956664712178957317591365501395412029180277486755840088034238507769083235281916708381522987972044363977510036344829941079192112456742975558904314263707944471337764030257508746095350511691901036791272875087286788493627397839027301493052125302421227822126763975101620626333172702240597574181629225892534718623673333707750347757999690127819208450959326948225054098645092975223025997396126193968930206843234737400390109477911420023692326674333659142475956728062381300355717530521801391256111202006954461308436787174112938649701383358341341164261281400304937903847096244849555070670120170537702367386185144849312233211251742142284833265268674479245847563174212311309672462518196636374620628606560053263254512637187030607025494736252779093572563405613546732437282196628617298520305033657390345693126897368301299304466671143462124836561123674428394330593119452048669113118293456196593024599810316646387772319400939631853976835859720649604761987890862234752054771560267848522020733766007339798611203718645625791771552143041929594926345803811804283991541031462975562856529880352176629501021835409340591635332795882234701410000855470704658608771813584258661776705904408340729225015530088003432735370738717311449254738297914604859657894107826389106355805255709040722442879965690399912356254473462806742898157367095640930970625028261159182628141464020904070338127745514104980883720740939302382675137164323823541491505032763785435924236885276456553023772207849100739654351643053759988032804236809269775711795696738253111621175350306926379178065104941247381736556555968900916968500325809642175525500614418869856303433733327292733977806258719424199020614141992754646778161553541159081506918329967707842281439871857035071401881664158094044197464871983033685827172691642662331669817875470183381964633833652129948916775854134912442936705911462135793449210892845438921392972132424490934646525765918843886702889270892273766346566619889051455515087099031179359692643938906658121257784454592306660169649672192511195536206143976416217785744342798605465120415087274011221683198886058323802242793522725228547179098509300326706021302804851465276742706683489225468944566430036822552664950433653668230455309137609647016253563689745929667950259215850228260241933144424921434933507937719748307177036342423612498995326358589373616081985493821416211659129754110329701233209357943791238291634971430473596152861485434463198191882265256368359888348389414800588627714544870926332652238557818160202254471417795012579516579898882127017038840621463208604288894067694070273234389387717104216793063992451166125768821030078568504140774496009085917211864276800861392563647525698858818321783477967094714479607766152428513794188090509891385108993308326085962370372696079825660700883899147609656833542499517536573568756094442687502505236344331867381782910267154595172537010651737324447770673600460662513358085786577434533058121912943625735776509547486713079215450920224364663813714057749915158166180187489036527137779858446298104330716181148123320937366919424055816241614661559292097235836666364234076581778534759398576592854341101728973049561253032198159787906417078438164765476554818361752410344916022697359498297509412780535186379647070120790812346214277756810376249170487179442062352313689893063533003931686586305289267535590974992178460001265886143563267649594586400410735711009803210740467150627016733222441042355534502535148997687800947883594862749820383061165348777187766672715606126557870100512272895853724455471912755182242896726393945028658404478662370382014353021983604025870543830827567252664837084363518971405504481982338015223452162488747098212157288099521539156788589341910813518722337115648349732973198881703974208800095423756142016283926890856142709856226163572899363153098475420544405539636272101702443020331201777025616672159061139015552106712006191818494957934272701284117096458915348183994018112201748727184750183915533527227267873637058258391028450321049883289183268326351275914942745931115142225009275019008962361687163325079965096946066996638361129524536315604800323411538180169263590188975416929039231657146223656845774335354410121590563993072235620517355593781861955193686106715866633246071395575122769066830879273267439348502632332644392768407288909112311951668963216786705421383560064027632875204894333204487639368864253383893296005895745328669512916062193205831297479631894751889911904361762753657157241740279975692693116918994931445217204541257982037480644732541014815517353995305249474050414416605580153517890911449104389290125392917231263619634758191538273902946086918002278382966527294204710332547679471198786291742930425922497799577484431539521594431798872314465206685164523058991378560715836417543203364372407502954638619684735964739615737491856974651453400040577452367208837324610930151658886634776755818057752825594352055669162590855026792259623621198754664394677311353869980215926855715200742318585293991838824945393966855292728231343678371027274809287013761370555193045656582277840724788249526113450781564658094711061979596008330662978722722489318182130741576042568703543920993818012619798497486736677682307815718425500791327268433634827410664227107764647482149130157563044037704758569801994608214659334033387796283748699795463056663124172890385180355540269709619609036947415227557867716324773628174963323270476151625373407349916280254622472182464277103415319477523230010872366158206361511406690231046690856147943223344551974474012401714828336622513026504714808793769009475925023969354554637137948394037613142214504208393623837910652122287219461145784773351011732264189273485924221058875624310490307283467405710936828569542715766111264105302438610640062424108823862317633625955930880822982682876515335818343268366307460341875690892151510277746060035118287541691271938892711425120781907428098584610978690050621356102102996182070729795354398808860141482979436074045255465547880612076566453023825035960132188364325475023001216344299100035296864824190574292645021165460065821101952292890748227516025597304570007479943249006249532225592048011565817536620903371229789534072619193124842917123033988460649768414775517434220735836946279216418805944782912730316133360769128216865361549394284113172298453484892446846777833298813059356730656174348799575062613583635192580435269345887747524780821829055511744473186383795967194199875723261653561175579785130129528298199592894642467189857453309671057081922777190277692858292318035110002287339561185795896040197009715290132580425327031825694060118577051156072349592493946351915881856924612981978375666561560520988127058534358275273910654956325046335343420318673352732739697323591797829657039152686721292291711738127646005665196767075786128897989125701199935438821858612155143837191696302683272970828251900749588006782099519167505350789261765319901052233090097885729050401957509039087184072374236861144066616914975082757651737673702644306070011653888433352994498344134277488799181456207454115611027605982056525944943738431705410232458922724042940984093727502192193256465578130733965444771940564102494035373566062961255864350031922011146391957404728328678604487937770969762161396513261343565410304208881546638516087228379717809881131186208617229173901413118655806230883441485965983188759125214317806475539586552495696913111513370203441941007049964413445666197897548155292197241532051428321703756036835403176251254135598232102723077765447260162222236825498291789510560259440446486320932159633365129989484954094683555309270900088045063315959252624252248683792139611365669169550326700424808912731788458236232897385819066482736915525137501613512751912625900623293105246755765075172270662629128736012875764618862352646307036227612006654747501883904287386330434065982827671089929258050252204772582498611670544691125311056085836058932531668911348954857752292699393717388994023852570974699156418765614570871761951978244920330099280349294063998689983896643193516658574810946220481587401421586391628190069675818283291353920549451408655901816837075613177030971280697465150087136188092299180152293555158573575816570072019582534564876175555617992661743963491896880730027919434231138277613736080879509236659923053066480671754906150991014725979503966041344627281035674664589311346174201683414649799680942967665655168723420513730269737021373506790000389588358892187724672806794558351606235951137496391703842709452842293424211313726778782287246136889651580593492624095422504318028042938655936675825374838313717592335957225307700607684706773295927624559099466528092173886692030742637777144246554908411891470832298758177119794735364339546467222872161882916486923220192743911031080898667472994775760321767197526477614313518911197023584022852066357633600426509744848577299123782029949131244307571842464806247114801612376218915586978653856445347311910605898613790623648375268801365911914350929338358771964653717472111220193205514414843996104247050800575144835694210839174442101553007577968744825526782253681678452003538481159312178355513593950997723860657261560739914041482681796109170794571400974624077318907960134475996208594314221090255233758617320519037015903638949680474997735402737665288244808615854956772729673453906673038161848238020920288364997364827433358590337502299743573307458137509099154190719782625141287499749737462176229142238186261140856576054819555012782658094889687736257836263307338658101179556154219871379432865361952554009923886750335637820097752483342987744788094893318836257614766701121456484035234921403716424388009204793680719051925406191456435680744674773560366610744561995768540582089700654763692543423873268573191589485839971419975718934221441726637324669890417714295895956918122981870107663113505510896260324607072399529124686458713721655814297450117301618801998551925299483585325107843836917637555595915198324136762537981120502826629769521102406868106030146715689778133411122024073836712502862948198452880011701550133089897620080667535418036073865330844008915162297313589377202539377113318135912440043077758538903058622899665836997590316999688229420039440773620183627271872410173565819436622041677567998089563866350033551782394017719676094322143670543193061959454374404071462519779433093858698135492961385771047258201313955915285254884792701831526225017948578903283239331691482125558589365276334698679163125373382839361396175297755878571830098681922759811539001382324306286694828502264725533783751855840093642623384815610179428603969481223627261614601100166955478642761189418590990368093654214751791271906451654836526435996248249243620724625335738615354077416925093973047361260259455865991236202321896187150717799389136711039716621963494632072055303701850399555377559940854178007509030831338736284342301567456040233874316303981494662638185482557772344414016130682929968120040540583027187703216898972264216122441375303947751420468563241787557928795243002684225570072862881278899145619337079997077375803312716043526985037408312111766555757689358409198830150531353457518454407413408382653188278639825989368339443065308467346479608575056850789581941223444165743028207975982093624276019708487358513488652217835143303712689282527851678896031042481151340409712630055720570177363624896998052947980248523030555521430372865786614367793323985715496127330199257022563379664727435991860899331350752224719381571236885127056755038396323616824004491041569684604647668611423590856738302531900099142158749742329529852685661218183930175710648066665632186714570711040511691856080083720773059301751942239051789562266027904176404679536036025694466612670777443538456977277400458863150898939147331559489266140931366878830787861021796555172558750038097912853135016740013483762330356953987024657819276498247105560188875472591981912138452415494329119430922119813536407647242469152621389553921876559236885640309962249653061503064422634678818110461377562727716161112155041539200465686719061179565815076782513047496607889072397434759349779031421377550815869054071697211354675917510379104348008136542354165390268711849478724611965418026756031942422940985075426693534958316558332419103846953241448763462566950886012680268993435207007210437499356506380255813462515281829086146875828664135836691981246179189222726213606663582690902170670303094961244625347050797973559608506465892791604016508250124255446088205606018824207734946233820716135726180425468818762985593608711469986304499211940922616681535916013675448221113710324972969705307353196419458216303018798200988968880859682964285802982781621439133837307477395086482193973196763254241861038514253327960877761597001972395338813763984583706425840936394859740691970219505516434647266493727189605243006885496844336162588616117626362457353520565130223557019715349296170481566854498931051589778719336503882847338173069303715040590425092706093240856776013988487011097900776205838478705250313053643529049307872622404094213024776108149482259718982394738830739587552083354405057466324999416214734991796703468458675534785405960040121250673634347055584348287467052613806492754412127779690976744782491791683186446269721053155686166290158478400131135221312515740568145311961116404489382069090365335645408544857579827504747198651599380688923368984926144442298617573536264947810652395946376725356004411931119601417125221426832891659130708222326445876750222941632400127204511056678339358661838526966187393282715511048596806806027388104685467595308404605704648293123792430027453706229573833140865409945371970635667259590124520436092722971269757338044793605194630488726542187219876320330475491016729363938092589190339156563444160345856257156588638253842624745560052009160093801802725935429954790782400422331093232052706776996923139263367975752328488124044875401796410116891611601972173539498892824774836948462267345114674502603765475210593627607046377834081324378457429884232132947652869312780665805450480198850055572884973755894270842609587150759128400033695411429081116542462262712489019684727325527347493536752660586516016189058442306727887469502668904192074959606424785728636446072742924276503854223482664364092846128978107221112033787758790658836928471239434023083586390700214598625515167722797426221055229866560185766236052553429265628815405859156369606472619943424226447709254864296315679265242856145210855390747364707227011779854235463111980263667524399948767064543706811361316282447886218287856511569208072797126720322919931793580847134708819717805305511621741899036790467522289239110454366395557483092573717737105844758285719270203473572621059204500417395001188628596473446541898484366834537633362504531569689143547140742644849567940254053687104030529856281087488027136200037948776442837956581873246015910725124282276021218298672604056849174410790749799202529617639727177571790068838653433003604583641130360010417891439480072974426063052451701648676559091699836387468615662762369069335073042011263474704783563738703602607300631077597498045910075923197117457808845467820394355146697105309767505439541796476005948153587942854849401703257239867915951898626792189443450017090272891974246207933400577245617346018208895723411280572854156930911263474499412946530124596657148506360621261099261553993553409123271815171849622049945284879998696990319520660376621170749574752926372451275106229121070609047454155958584529013726781207319495909483686081208474034455657701500404746561051252797896188243670211390231953767441201875463322868606556938615410272180009066298119720637658915242419994605866635486703252178100772909364568819133987080199286100191919679239809470191822109064574506874912332767632932040935395464205241854338934475052146367028908839377538986018212672854109579175954908362818979947267984187438295547814309138028669889133977525336493114621424040438874614197560519553951294862874141801429571429094985756078443941350658353455835667715127760763240267415868082325726145856847297690899890092627712074623566716600499725957393617830628905802177505093015579228966753035881632335063328269061777846295137880637757611527601753388420978654751083499271760612726665913110682309139635572387141599496466273876730879995991669444250378676924611454028180407036394085649886425114580273607174241266476481270791013094102302876852607677252984436241393422701211020613555677505781094946605308699721808669017220749689645856338311201178169279808445653969837107199483102303930109836950667469089980547093559712113544284748768182147485707288235414771407909381057017443600576388211453918669807468146513617891096530480216254531823144850492827058854426060178772583850312510390676469986801138009404951447633231625304711959324769510901223470340513699411939378941103536119230275507092145781849549401015258501938639198314983387315708360843806159525591538919494392378883383105536620899254618844725224368968934753892233710366456313367789463610499416536510407781037106059297454300947091064299012755931963461260359320475681744888518649112510112639915947244074943738255629512445662222329584672225979344757582124756108186608596503961843980824437675003949004521429963568825330059184999084559599695252783902849490703616527945836099031229213933068283046651369004923465948846939662793936419228409503380945292895957396280177552588969471384940661154900206119087729773892125592728163653397114097461537372687490460655555539217213355081830516977698019204314316398585279226071048678046626114818080173700581948252469958539894071956590240237969441372501474089554823628966216268051706047256005606956540625240013667390176447284570613426981190226002230870836196399842946545849029174687663700977790154096447598903696294197874205088399401317048541114542731746182217025202852443982299589899206425073200659416191111379731227086260346300999611570129242503208599369153434100193373021673877383590766508910182977091058284411850723595295136155329104052061852639144934976176331148831353663762145930342449510150005028497953967745866219796772216811142116810407049694033586901812820913011532650436120792760603659303876603528009710638710014213230185795849559135137444289867119816954781946342928256532264432321728190985617427915856170031049326005771285313647382519312718503612553764288103747016838698708871595572054442581787375941231144260961986306489280524426206126041194009953413390144802836779622567324876689500204195796980050713787919318775932528624823661411180567271160874833056718672264036686099725880614975334554053810962131303225911457478720959398534184663091617153430201498732929332575114743231839560429265989978558583969795656904003777995632705978226261566576204384771591187822931211411112726418647229748461169713114043879188781112318548037798249570804551756936787596210667628693704191975709763431066389395230647184407589260861927852017061501896812741636982927526973065275349104932811221611724578035028778397154596446371119060584432708554137038751033923809341768658101299591228421485994498529308597145758030849311634731798408840419242736531804404395556931420597693355093080841090579051106732238407587319175330007214417276424347280917247944982580234849104652401497031009027453950102203666114146429608583776248269858625334912635621774509922208873249991123549736772247425048457831034028861648265409060542552483488461644870779274108922758464879527069851147844495624319740933541557417624181982894137402349668511254551834626953829699397675592909761077826671582837532675018918349872729492884849277708267592603160261570348944745236631520935081915917475403013806335853937376793753308109115463629336865877303466548193491857082552599606133817345915356316010896806233915685176120038084572826688733708451849675004376289562969961469437656481394140459298146542939001717355414648945435513825506130931921642062189200379848580715563433791579343146965542026390692870036814299828964979278165653575897752494706996047771122264213271086432269340788447691056783222658817542545192265514205510168684264880210927418402290206394985486534285890059462962713688786856639135841891203199817590137847511686045016656168356703674858745557673025746925686807755604850663725391285366220021473381931346955283341747449222360300559560795068135943670415558028583481804971735587944292198864686836869558068962239551070387821127562653825001958208962435899816034494130522625021103560072707235731090951240077382975983702413165639414930111013141821169554103753314820180387868521230293843667319110452487863555093016159699739275512506379291013926462421595001281970980652495676504427475602649178297972731631064203185156227329514484095506304129041468733121487139102518867262050985710002624106695479472947575389671075214208615354519284223563512188107693586406983857677061496643002773986624288489570014487800434803795900521643699268523072316790380834576804137175356385563353975442425724122013984152060265108468048307430110610009911035325873461548433707004591836313374714913060354991678530450104188700170506757289759596920023253487756053077996192069033368180834293699845937848493462662739337823457875065672204390893549746143359714423919934346018079121564020968895943153107322145669478881116374950614234020600520711639952581388742177858735807454969289123531635382407423825031126765593040585339470905677010983357554173006725115095194555166861603761075149263345808980373332220471876053740664659893019602985239388875021088639529538150411808599945230407324516830673769559771586459893831091722465010250544103369961751790891621765871676111374644272564396131845748460515047148134961973707038053067292240150485044374396568752403326291812884672622986047721609528779620573460205207520975745020386585491368713821493357942369293270134681278518558725954651610704694124864485956883300445495795928721980255479469503844076204739951484385995541472468890902356815237206729904072690247514737786646266754126962267792933496997198866586012410204642099596764119239541477095477895172210407693055582752069413680477525056108458083347638637562410807623613061513978866404661773202028029005838435378331023450074740501516502130424404667280566247705570610772405588316022923292127423128062105589265166581937183369069528618492124576489664796139941442966545832468752462530186417145775490136976928887635452307555561424238822943252133032406383803408041098098329693734746974554266088723815940674026843156644505421884004874992596379904683201391488572991717915213271676166170036632490105485315869095615692171932968016691679960599297563974506642429381619510534797783507376832208665444288734174810823764398215596290908186066841335851967849737325562924261350519108183243522379501175749989982259008274111804984343868740671461770876101017000032428063191553078216653419219745875690756106708329964251989897281137906997765634701923041210897798380242017581576970570733804758096055652037996308309346839473230605827536190737909855526588247690970815728374208355702914967220944846136123891091580945319092441684677352739942629542287063250773830237440112237409360064670350846272377916803303728557653026011937129189802245865473895689812940263791833479802871608447874373812312495759101284071929688915357972265968359584177574288720986304640528637926052599680679585253149454937126129337669225681857713478453390469024619062734917447443572061943922971061431074771722794856825161302299866156781970134361003703299661745040992911902770416031642365713481077124940636972663619133123667762126189602358699245514142235632339953548440131544278915460202886040302526545469991771841149613083499579875885757571005091947800482189900462933784554978791188802192975812860534312253428400124026561229978288080714358831679987821022009705779659776843909592227526964850852055782335962973319434114785894001095175139098186883664643406047649003867546596356679186223590675660413779719158519616660357606469217418996872517947989952950123799594158956116746180580990395097984860317865126277231257123141319795296551407439996851663298540164521343331095581659857727394153071049511358185527290186284820296587748025623820482638598985278091184913329029269870562946235509774028670417963287814384491958947597605654759111495244259023675250813593897991273149359787854152647839587910755871947900235671343705993141510108928783546111259980420471991878877907293901836049929542597494094666949677288557424952345519093140523949455177588191045174601912665204272826413259911265505757764447953676999995078592439097058097542960768508185380128798895597447380204438852399132345165437470962933428104146897048101014921182797809465065984919199030719494904621019762787980688726628324267961612531778604982748323144323775125135215370361667899021844942718746454961480822388291546934773708862095121165075980271551993982461342521020613985053422548172400060645745004709786064567390626646346404801234790751581114814190991402520923238216606750988820912566243117423600095757327467088488280850680994731284722330369022064294650990897517003559114309318365116451179388154718455268068625571031398225980014805626275051256912717120671802117561849416708382902357570569041751058965463020164288824975249475769180052380933551694495118426498716702963486989743949366628476502073630658807219856823712613890416919766564440564598528000373322699919229472073268224870772823168208827686190589969507161618844299049574699401726672695106157979305395303897068776595483093404128380922095197841622973052863812812130231261281910240427892537353419466095184776240936938038970340177437373285418437051370587620490713851140117559560295802718506548367200227897463409752037567133769151187438807725118700929485342071721195305112902803620638221215744161541126952499320757880686665643686216203408961741037672082264082460645177118954627035933219799822966283134308578680547926197769688964593621387083347271132059074495830529458272473254985548308000895687506007045881378210706148281201416379139852822683035330831856878255349218709968916088510399036315579979700742517423671229564093301144671193241118750581129177352330988481892206806731372460711936149297176879063411506467182649388454288512740248747890365569222701162110017544929785016749857908090677870435205923674078521906138688057465498687766888116093745733386560634786229016409991264110810732808546535454889856992677884987150019234078037281545788041097783694176082318719149123120972627310447852978244986511594704475664544464335780072821158320160903937412413183113364608418101783218796470326625374799941066425777465064675947389787918493233687102253097761402283196891299974886128380053667542938282475584827868915957609333985243498020125697546894563514533904036207978346011573041489514969908427332227363997110961506423714779628785712780627163160669895783071180408255714940928140105974458345707513794290393185539616897938466264090572724620328790770273579175399632023537543662523451935119559634533787038839065311000505228054812356157180691615206941132073684979390925365955253385671920407368219218049853327788977337497766096655091614812693962872425069673223699375609641923979507781809946107779566703610802515869465075465499287605749405764382717122995595009573157432796927014143947651484906346641033943098516177810984164387328293104825749250879740787729043391202171253850474256737303194690935861480530518979456730806487904456904498971536180587907611563989293119687957740410336247373471711980627286339306027941324443026016131788243759466562605112609883288585538065086940907210366128388494278487242003477741800504494866255915032202447482882223399614577420663407904134198434060759244699622763742207263780519748791949739337248252439512141733463005227601413362529449819102895137891058625347041120000097783224080838506504017641143296607304628070394695772976628517469403839058855491706939605306322533665368067689660423458336947377227358547523073679461734651994191888387242117380574502772332256908432940024800342470407147949173432884409933358899043781792437824462881635575198311413731429208885086081785331820593922143477551061922839179029382293522116851551826062187347021108686178857038728711910625201534953772879438990991270927044843172553267370198307492165506174959217848086706265815384692360271595077938070878585670316875032331659705453417416940749154408403330229698177935410787243424228945592670820132156085668620002861377065732022646121132703983881919782767803253799244298841991064961043976759904508420727478599475635241467768645309565011306348658269604945724313825190860542848899620402001940445605188137964004722332508418140513857813006894769865361239364930126012032764932858411702398782827083188574092394701892304375142768835936407726354467871664121350247787492969092311046303128839376388863419125029254246993813112319715303461527276167175306666096675111525160843826209984177834386539369406499502151362977935977297412503965764785967412363848430255686976414520990914536874213870188679301920363143501150391442062588025328254004211210732699049510035329887281737804217167560882350622989128099967173597487862034681352129709957441437458978699482716407907135064637307281792144195689650799844189085052520176523377054982819507682965714089496470173410683417946729647198092612835248839656832375850945884042696741078510875911487131458698813801523152626337819243636714044212391442651464635317989379909276387947078026699270152424897057182409358063819350159736286228603414165485028260137092902457474418851129861068194265143105816959603243444636259027435942225675066977951590920652945604184566007352973356614773483196914752477347613947241736635949776092991802631164867656064250262835865412472194082522447594587228070593998150247448941483096883344182727059327180830930260836821287127004901746659208185102381750290201377838384704957013594054269953573141821614674561663091641510832608994347346722200948541037439435253145483495886278655282581800986805179916030928376003992977525855222475943932928716147398556548776364121781997861643302003688490200515779135951778917928489083411407464212721401175329400180528350396629776581546625352088625806567929991151919823547514285398564003661991630625735861176234722422885223705095486492322444748998818044045909878950775795170192849302369955663211309551061341145044816691118130278515208310135853265369086633829776042596123680278107410023173274283433636565130121968042985204188546223180402055446614423715056637702715233939735774641397341725729071217645955033880812625047572699527625807835721175149386424184955373552990177736677902399119598151076544706615607604588167545707272597499271301804281620821311993371984681143813361397355610997390834479155602313994687788236972388839848958778775058502206538396086452743795593632714098154780787117701605321792361396509648324503911417831526669558047979925284216320789616569306198404781938194780863769460656862764122452820127630119812106396891675065166080118300751082404067703995974846004209656034149508327790295354826861180786646716386385136372673332324765889199181207648895305133128093715220402738398191055022018414840928968094236966431244339671417998580836733196308245297144855296206194559323576238920194718956137552274127781673923614300015153194606760655072096306421141343609165436681502922147191622700921791318020783239562333802980015354979209596484442011423335142181320027274419043433334928466792547183886612917609828253120529117396029396924023487021307316756511093711367775939572738295827976434156553374730376364037346655942208927964663433089970091497856943095427395684415123434521059732354041534279035845308309956883763914008291182408131689160376899136109052448522555991530622399477790131675644873198642198294008871383826258145276217594460942995186404893225776983409741475242543033543698976127958247015810098519540292632801988091565733644382871588406498240273378008102035860385516384052495023997263493537409586905207020311190937749046583350099754622836887330865780624461292258686083566324876345871083363547978571960667002002030231807342540886884666448712033943231655966792690605209915911510504585255246893750058368874419414546889441538279952819393303915925860560658209748544355606262541326723783739395757335076871877207638243792676954351152919561275923096610375457203561541962709319252929356398130382049134858517292939134986871915760759962810616591872093030679390710847247464966700390453534615575133525749751792715110379897097088895579935260938870946464710592188940443744491597372216154834519896383723964876356157464115761891082282870489340880633787824819563335707678215622928904556992013902623288178051751677094788631284329497283555221391958548867401814068863638193335408859532754865535268361102246234969154173936625341455809126580604480897565631690936096228052849708912375936138652619965514309365061902544252906728266268645100574314372402891700163600416482687385119727816425918510929647783451608057972018275721599846901944083834218192084576649705610615237524862023188063560292732454315076960990187098825903161053489761338698318698795221603814446817176676309652877415632622971943348115774438440000712378461783315659443538829719754652909824034650738209334769130379809834514623758841516971572053505216415648494768416997257833240964282472183380016468319651458059502979650012308182786257097529723156978642755070675017871101412291477752132642216382815910777496280664539193884232996149412449895186462344198469580489979494466707679789980683404032806942819137658080295298646883372523369114635768547442718929340644617695884124662239609096938315829861470185526059680914384391129383399386376960303699147040546215320779664453339025304001615916711951660255911951316158478248135890702267110593180095051983885347363023826993570784396280998930390508423000832713146800025288794588051665791278743580181767061882615413350318964547434640669311699567634253414830384788790336903625547955169517826085804825070450506989563878470808124020290127815901619577483216440707912135459309590635437891206620925295905612173524678742134538613997920029623336659235938633970532830614747865636239037711268907670461467692765915416218705039934045564026552568835161315637942117044439780125461247198795045752604846643221769713893735795838401022047888069675921104726699241918077933134690049619369105170733491524030953462933253041172058669323434831127850343391007619699081081810583853627065194574303299933442268793041366198094214879864989718417313955946223780271976596314555851495064886567404240883577493664620034775020860545957504014723791606704127849497433658349390128938018664163176161657575312069516925473129796374385491297961976781543392610640292672797220066411521657062996711470159586684540529763835097363081618513654206595307917979751304152361405091889488056177864987524244647009423529506711278914630339631145602081069723570471337058854851423079402135486262382302852956580184957332170300036851773595424972887189450453015579671806706829972104793096086112076061538400405752878051745484560495398516904394047483529210732812230628480837180869027602386540492504931573482089574675486332838523636610046213592039687503024019857213138536041026530895782457091387066786670631829485135468378937483855021413750351426625504315961645797488726615261510843141621531354599266551359362379577781191467435524546384611321657691072901853004422043353658456998962287885553662671980378520132963300625951668380662430553546847914349399197972912549598533734327329085035172580771569950115117846581070640209325919592260821233295357397313071473615059728844996749531404049625059093151676777819433419541198066024568430957303680509248813458818318061388908523171995397172726176240829382707689440473760076272271571883793253958003518352455110644604383164448828118584078262328503763887756123059169486074023031694516647699569765694416085353103718244532378644048808098308028694305032216997432914071503515420615813827103242444565011783653845719329699903791232241958459165963211277929434430844569989448907374700020668335469981438425700797867148877043027575228832499246311414440140000594390387481961261940820498484593821573335973562093201318965284591238380235258211415311877607346269698353947091350185184358075352316604163429518652351216489883059512873321650056626037607984174562813062016784574777845645633195290939507624750347970324885290337219172713797935829318361491453659396544079153055800074727954220225108375913968880731848779850851812744897363081162702073904233647432449148395242705703450457389340085251372087415366336832795911898071637454110221256643699954159487063964060132146115216073452328171651071515999181458385921902775362691000702417874307700572673399699824937370684706988104580601282561105950763381101679561747229289820748460656695498438711270325560183015001665844510579745734968131041777844602436047615603173491999473013876585599596151994100824084025085592273064204609569974635638316107336698909790966952332920228259246010417574079419552035848966681680393848813383661155500861381093197064885537291088106616771616472985385885050554183376807101647787775081362648689101921682051847072616677301311944532479288860820934509965269741115901318067707440920319910000989469667337346182673606859422006413824176103262479032561489815301007387228557364484491280165693094402198429828120700701503227237329746229437167260726061421806883302652993900983515574602118390900745190307724853140438275579391245410553187229379404250610515839996969981990492577711828608842291233572741164545055760660385871008199300035403872205432674737386076563321501512892524355194636378114578165995663779483873772636116538425806141194874464299126372138784002354465679155862671934350049350425754421201345085252124557509018889942984492706127837545220718986446460371306094141467707244496380167763310571106810965617389970703619124460600748465336923594993276028208419852724723958248277166150286797077607466078201710081608077110825900905080357463372756540549539023191738688434407458437427146069286132525974022868332192969901612194684892972542683095739351689349168418784830461339163291794068412380828349252383578366562733747355623793430904415222241219375980802590572987787378518078105854574028873872814101271460757969648875499506886655782249490835795952294351950008740265223094315891407699962065482870229763388384231148134139305636798867184314722890821566697607342641084080967647374181754429922484450617835312050201424481584220697270829340637274419652299753418687342241556439725506497411346240868513120960823334784912822536881528903642166678263320970298874125983012782561432107293808359390438709146070421899177233191548127439343497011791296293426222105627715756312245803962403734844597274220180080771035219850299907688504739414725058673569713542416297437148528390656463063307047562885075820156044236419244952881081303172594463980503743480144829704683456694240737537878252112847913989288313226257646643814826482253064103311591943223095194656871644900979741858118375862810726192478028984162996270436114225055348023673709093888804780817456171816245865431075840989275404577576875391917974482197009621664030564215191932900249840720065622117852737698404025419480136667470611673457735540526352738433698690716680519279058604034236044416065080561263681504754101046279215226096605807175564962458605088299185766349995652614757186916087395189351509977792805287158825535505138750624310672166736861513044937631161562048817465494997236202667597361663257224586348518544516845126737729056732783258292651774376598524050860592416229342266219221721094784065249384030173619730807348559026577157115516952665875478503505941584098214557327858906761602205282962415173379512591531826257332290865612741003115314897599616532820295086353155346476858179316401086471011071205975837476196911864676349496869626156261902944817677443044640572153774261982937337862939201763443619564566645942477632399663547026056762901988426649580185010387295465255538861126526046437371641523187289663872537415600416302465696300101368715980916421451340075468736771600294823467827063273629880643984850362910323624009710810606620878904404635925716076735148448319602405197502207868952020746439214358233538765982138363603761368448080308054359440866396242593143072756710703133326273958305250780283055211119005102927721985878286688246212497018576039589629529003028095318443950362619199345773898197175710299618662299141318932901699101134434811721137707381596540031027381154425067988445701567226867501440896779324748452838192062423139268516729387935993190985120288393950737872642512982379939246817483413082833182855176461544432480814045244547528430481248001494056979636161603302922521099412614695484798747967666264668580663479472268256177097969890227804716234163614152073442378717929485520428737891983234832799721023528418630150039096061117858130317751956314553716093990383002750881166895376227158266530453828683571786884754250597642938864389788860548539988584214951199546084945227009686911102520282679397354723179597320235403984610364953606318199227634067375463533152575475845937520656121243069826764867764817656559004579493204273204881991470275507278926099962968817963746621538058043779368452683500901257063200034317600637884715755363029527462071155918579858053222759208830665276783482567856027525994037350107224855602833457148794412401771207827937940485517875811812088140322365441519238172106085086756657012441688496247674143107481719968239315069022455264505288559233747894715684843578192482975613742493401054136530526946720377085807962099308387799853704985004216293343631467941839976225773713747278878345940409338009429377122334371093199190480551232641284547807692813810806086626334154662601197413205648618362920912042656161831629612971233440088869441658835484973855120316242260304219512339249279067850543393348642983845743605581210973681209773384288573640543324318688345223113519665219036521883214437063461661488219239577434400231973440797180350173938050313470484280820764747567123049758240500151235489915041128278231181914643321269686756994960792510122003407873457605026526817502528185785489323724614495110264024047380540847121942335779189041022132619710681836001277887862863971864944905431023827646015075955596930336848999054014511655815129674761576378320592749680064150429456368114036069380455171734813179417850630445957514111903571906563349428859969437460709165021694803553594812249649687827161081696661208227371081138076009750426927303604121289876340733964767088768315454346666448876967974859101114439086834662565050888772337191834629761191892640322812716396172445228686079341987271741943902737076414955468995169282036773395533686709378570489661151359731160311490546937894198505293789927268384099789267045696062434235804395385796276520893817147040584595439369943923047855282392020433268030614953051882114157204413940584592286307625497149545458656949761482984028318334779299195647750033311952816723475952418331452722214007193704906607651374352892714139039126922674089888239658652382792942118481660422915966511601777929425446382693431845312835245445443634135394205257686873894513085930098225184905282192981520794177075468779909866198244334850757174996656254243228382183771308333316548565030114999741373947936193839887527978131393936646146892830076310755657933721569437998796939768040557938379087734424158489282301032572375769181782600266566184901794935782506063531731915873883326875933078895307723075920004568149975679544927658640555671840946540112104049969777901780073771659529596788391664400315384333556375044123967195278254741812368701909071539181147908628087253948361638809530063053513730736569485388805944040857613097862759421573157635215855376386530814560818568519153614995402321318323015923392841451877868936041682538992123972696826825307026307735719849098778410245203554058966983392933167960923337574496375948513789671194128224745708084186705620575538945225337425063401433046005137683296951081530252405354738894020013308263461267069743725022148624393205438565957851875141170522539597405323905823624718960159488914891782225720813614728970521189263064620217285284379369911354271130594980847422093213636847110676395416506838951653323997853193615271170907136401243023689760630987178946402204816545275799572583040501683350943702849640444816402983773788244493758160460887692032260272129597708836912820716230187390315220003572188790602762263003526347562280010980887153172531764054854524707764001848508083559669240521644415441730870373938274668017099303805910739602905139539732539450303349458770037733699496280618031402352978947964748680679660587952551050773996344195416835112064957306751029129360414595073325635030566092725617407217320313663049142956525558364556946043394245121969281254389149003214504818711121858238337695521998279472714277378919376306595719922497288064766522124664377559584729842829177197482655926997796662213658216298627127460116865316676979984879023506358944156851300042703439791750471289635344659186610998705761928604386992383848813510814428124454272722450054980849699913351053044129532906867367690879429858424761311070532465890330177088721467905654581587785896111556638388489160317358570713529960013393610178630235241571970390551976223726108663800760257221901061206307613414692817656935638441557374166278166860705216340536758088460630013031119452921504269312399574899634301413802147247347599555844846137359866790106648665525163995975818686839399014755704082957625935250991786409123985408428120120315368259838732788667773903891555607827089897401787951682308866485534704367285599949407039557262908052145745926631150002732023786215640995155919340880583292133121795119212289350199457414973679593124792804906655813763563627940174546952812385988748866471935306765050456268739567547932800338892575499863744567165479348303645203790052980552409333652407522323413561260420732132736828321390893369447597439929320486326416999049870622129702580017021454998233011331609451374484904305545334322123799471646469756452223212802209215683899885090049961373335303684928157477665212753325294975898990886052713557577379322668476963209793947764683488878746963003923759731171888888668455052723851923929596169826082702305129760413967427535301050686000955441303426862993662698747167027617323895683590859253980560696301477247488264949264519585489845546187899944918387208079841925920637960761583391900219643256185121737683573652140516241972080318035013091036423039195280304198324968275532633175168701909676924541772528309783755966194830251192165806750940794762163387176298567585153596468987120335479467685939515205106420268204424510713224870942071899288269001616182613298427151211318583427998610386660024087352765372126520018095876761355639836265969299116855671912342309986777827577898540954894245403090348238906691388729809974628613092299741229505784349976237220243626950569413558753105825947891017588207064673833199885322563701111528601884118519416360782326445498770188435934497397836011309021479720894815621703087108163951802655170430735376768564107264001907798766548112329965733189257410718229460132658489556412442557964252762615929656848049722589379679451373615554883444675754783137166293877629415291648808475554509938368778916365833133562460313195114470595420627197072839343727052409803982267324109168007172446405317634424414911573178564263062344996342326969395652400655687997753163242014201053283391227553039047520623338782749570262223684719648171619076299330499932592252515719208788969415384534583459454228451079330567049753115871766028715256410182416026792426251450377346557324974259099765877453466828047970406244181891612863619912849467384437920783910243496213874593263526414870914654360275557307455225760063352691146534334357128722146771742156175255516537717455756596478359533006948590171098246945478353349010113359660591041473918797860021026433897733555951345722217264559699095973170539520494568054160022031571499834212276501503023178226169778657647109517814851611294518347713806640573028948289100697211075001912249912680770969978892806992548302361743014414607750064666069441740378171791571128890927182531722866135497263225905381025744284276242639624773149462778703623000405027147907359919516643369260179293672019934503400602392294271975995102731231464807285192295858826140782745155025682832451000400151237814753053674123961820103615390795360182081146056582627894635898658032640355346661713421652803301664181317518581304113325335116384967917859678737753098739478546820419744868345152460902347408544066842670881004344522917568241608772899866070305037209221482196730061560055350425876254368092710008045668846764214086214985063054334134509621897088243273772084254194342858360856821320516943921220553671324027400766219010371479510524883156171724351794460357969870887158933705962220563651245867808208272992472946420378198057700398803196391164810274988427558194784856041380724572737691581312416026291221667570841076831743127587373194481982821100833096115468914898133979130994702187202720048561618713878846909662701877217396373233511742517651510364303966032412003546686063371395254074509298893877392454416321025359102084673445829262396999298269234364520555403078158431192367658671860762044006341113355609624048803551827530077495173152151916052058503791728107637484958633368206036970457265187042365416888633975757396149404965271631480615918516868096582804827666111307818315635670387960230681801948815779827545949407261752814588300682434732630065809614474100788115828385441134117115921727762333125240187194242340922704986135059374163768058937033605798710540791801033225212191525211833999843005464574246134159020152586305629123598127370054277542478398699686441387948940722204176336701038953160069165156062770923866004489831635840176645987915052788813916044536079380735775943117910685060231532716789615469407004520082779045811661593844374979963688600668084760894787533741185565194032558904303681465347278613313099855052310727120085212175179640588914727292351985977280510000560237957062091671456763412165186706184782741628432438639428663205407448432643844443574255774440441091637171933186973520041013421599775954398863413583292926181975409733344730218265699739419771032273941992142160290395081088542632951866081642070229381663966348770410663966581636968670179171387599873862075918442694738647690650744745475862146386935761912897012993669534034642607867604658542447281813380598658827849902904842540260204607641251870745647565940412812372261265977307213502667233302120712970867291510691482053823343050630729782444290804581432792043502245917961708854337150063674502427277106559664522899680085388350380303194767179336512422040175482225485479294749754931620393483796399547699017045556592086867347156137387649150499322239844675040200697901537685732413124477250328920774376589117235982228614201444617017743600805219086527477176228803095546701845646276403569164164749683412185048414714365009589505464633078975204153363714237411590394544559245482045670885369349050321239008466347568440051103283125716180309544217161408919573031249910847195077571315988253194042402555019464300520008188335323083476243176282991422298972077730817952547263203865749543979037361450670042505565326096290223612921250808360169440152869500710470472107431144198217351213062482661369848290514956366760583972648568615759827656909344582979745269008929482532716060652151807763083395093565169892173526805345859652608795756309624933105878686854446075925514442377281911852519227643411162013809958802116664862751065111953166517131191808260394414337919268478732377250220173685655867408812152412399450506291289212494711067544383551093558804397531899267504057588977313371899867390536707714432671729811411783301321966637808559110312515108453482820968534453288965683912559294120704819268228185532909553221775626526693325083719630277139844214307459432619781891922769688977490897126725238386884898035288673279219466617919118353141294123913319507868883628803426196781735395382907364012248047792529155345702206329245298896840007999041823555646970673794810319403729345712223826683806728841984545576143753179553884850154051654354101645101819812230991789627146684631228741939919931029754874860353217321653950694118582553241564772313045245029095428662055670386161701324053673216494351195060131100188540453229150968414434552431291178842854523466942218543490231724598507723844305420720272943490017056892720971291516990029583819470020205690017761132594440044071500925976101336407532067063444229284162230100713877608521418197297000723892477130573435173130690495470909617148999836976106535514303700929431974347736849198188727351071988725627206674254810872943339430159343279476983448045671379084663235060917920241607746807772261193242192528017583144686951776451283338887963296169806253669052628311306847125227280243705264302642450524674992444615046016290561602289142866919974908302879523025643616604261838925507194943293168577136896089271168956600576953143754993704308510255804380388063084351912159625251756648356916263441895054358986671405243413560933089641183730210711051960864140760171823622352241205193053526272407535638603792908647449994289326063037220953735022543605714953252574805398664230406016170976044181164230726253571630767238411027979166747274653115323795062678309273020648071181955160251014534079687560548766966615613610948599351439106570359042376388075765484328733115678221467575790987105315811107237595161778457550843781639920423733401320086349797136502645634072968729937802915517807188834772263486505110563290960325303669793328367314130989417066858851223366024232356458692917810358560149544618907965571057686340066984108719162272074140998196440117206429079083613190712051384194828757069409741751819052290112465263816983081179171278188673839832598253928229737916213515721920366724296470366403032437871234568566695230558615199668586060942623752139379454645713600017479131687572688286222062219138848051844263843312289214690189046493926925694845892568231430004543016353048277173750674908075866092534635194966277788114875836399075924545090321681424127056515723620858144375850458988061851641968409522633739976602110111888730323834420901455317524088612534765104953766115585486340800472242316624396363449315529432089175175461421840492551230001740779901585672289309582266515096437377944261440076344556686907421769317724341318074131365905795947097419620986251709554292969899958831764269516059595211278147692156318481341977337682800107573075401884884246854245365283998400359196054064996293802340199426625237638224704613950043196847860257727653588864904434633658119369288046717664811183724623783109218603285380641077810894624769171317859594375711737704607977929395130570441303114310065446092081159770826838279656798967145812730668721260467191575244516003995421162918848306802434653654375359486918989418254116017655016132109459191622765334394398416954453604975874148488048514035573981509220436670877976896930323480545391719659149256074390712607635912321686603360979938811588062849067679938132654126797021783841979807990277077390451784613931042246604927982941628544796496750962981388951178608861500830747309277682686616686282410362009758907207800089954438315665116533532693287536746284610332536037770642994239168705119795703078617231726857626877024193030706613698849834674100743013144200613409954860663362966114453085511924545733077501346000513160926721733466985930130606824806433797752698164185963821301669195363063037873688518358202253116616614920473640649600023642711718495689316018585645182411240507307406854174662751189256799276856599088089948676686462022415058111373724554338616718792889954509804237359977903743380419761952134853774279205207356179651194351674963816159487739724844430747231159963328106282126811953591856396819311862728819663495031861918280409822681122432492900874445555292073626744713621996630577170969729467327165694231669247111072194881822930065418070681891728460919796281341616518163531095920094376830456979573971739123049597275206754753943999677803676439513345226540827407010897998870052232558982046413772317182164969144187099214429876751744098748314654971227138049030190531632258992914201013050080447611554274451824323325706355193279210216768100862005249051786959191985600993842429347591187857220975818708441969038245107304432443594226572388762706512806900461423095721536128669787464543788475589005815879063791969541797863269261069316769080474029672001375576295235900749404599276660337077675847754017350242081391791843767614233824817957047357562058538256617082977046011356058315880896896491555930007166817466518116421241157404524661446651597084264256166547184848275195243501058718501473129354762453316595908531626174182834295900024039019558292622967064015034839611779250739137411970103423415784901215048031653435320970470383540867859621395353278205981410826734848999390058174743367826179776269274740583748548752295853146235330312823282589253293965135172060563697799322363779356527724320667280207995155797890857007931324809932322060774752461086262073307493080633326340832234488677476365966127919276014204954028192032788872266305586745118221116391099835503008867269149614795572868682850967289642879420893285889958126238125409925753806558842908736608279380738781150119685530852460672603238912383113247697508844018621434197001134380003971714996647350316472324862976522156680334016490552145367450271958305838651166442304417913385522653904872789517732310637592551988321646101438782241197014428992433180686361622762599559745561494307929853097067359363056568713068999108280997310585518319760921981202430765402338653869944398174848462445298692863169694361028554010946993877515456102617579435853715699538528942340376341797564941182926618360158734165356824041938012010603768821399798674004515564969783266000998291135655953452334067092085728597060293524556770522077957467198155090076988912566294925816591078934084249523868261609967901383191267447173569708451031533270798928247692144948836634412648700243172366862300096304523820455521650141383878689792628915497643824788364512749532711084022254513160716362811388369304408694774992814713100394388058628602141412867047761176191705926711167154639405132020267168286744980694400592974195110263830657943873600211113959037046881328143911250892923532600736528293641763083550712631776116149676842495949669166015381449984654663466834113836256712511428617471071416886462079046658474723529405250908352651455960025041295122249027910860420830537441803881719916746898246695729553093818987131043374309098550039634888851178627626142501766400386988260357551844521321056934828623363927857599849738682881241170915372666466999449069386501875329371740168566533545867940017769960648262441068978746184521327396503463928579452129838369224329594229281558866258807148637166436266607555696639418729056946802872703084864995105125430567573064550961602008391430380117819198681417118187336581442767005278363534051811827725413516655319145605677509325873413941821166347945359553073922227850570175967861632503215600406094232696154197181815911410929076050853731729236076038291787318636963554364568716609708473187226533905565791225546003972312808759906154630763104658134958783278152789779720095756231580166181623032965275005284223660753808490709258182744359753477537169001135157117503413800242653393763515202964330313733843466421300058839420485394012113427501757932455291900799136547697169094667845305699152387914273520364679044302067657907302072308926772705832585721319864011057291030340195725739888325706231420734171670933702042227561653274913075986031940834306419875212684876096449319266862054052939467051747675194388609408491852656810929262630178608562869162122857321415937612612849445303933092142601068254304482324488259964311711532979409597097840771306061654083482052889591030281229020142027808147947007623680626048921927308697100148093869669252187023114655358419678649267487019224609684295210578939329294580558937208428285803831763769154769167345315981410235200398238398643250597571435520695664394996544582436450621747392279632438616137207775340706425110081592543346711567113693666231056860630735367283577296248476045208480117696345803290471707078626243934286387830093438642597396444456695924876231655049251572656165302233750822773562170068862339412806060400919831720404582179505085816537381678064522395240825398793230198501176403326298656291711915811418995978327923645975311599818241563075159430441249633374155235953632730068002489851536222999086693450736017476783495508101601176103658693954836043773167844871159057338338197573393586055330452086324070482328223505862707268802416503068642254411383253717363273623319733385325604048826404991925313271543102757529973560509409119569718511237958909360026170287063948529806870491984998303970036227714032491143880831867649895750965820231556787707423174942565370773264870465705048480721179098084966254375938656492796399557270102583704548336231423995492477474069034295461430988143667040625308188096643404691424337017789235574718613921949734522935383078538724345576251985856830184608423927992402327298952967391261082201196760848248294878133007913185332224117336198507582081865733740913732914986550685152321312550839760360830072171502493256088744370771475911580267632952383123402759950041068435974819215663303436853066554353832519711069989876289896070384005056755261430379423129849230954864236908462939169814363794932358253443640057799610242392760381709504668197762942676528394860031955052843405989650159591877965920869574014717010751211156857035609798483379379904103069662224607914655587909152009142549411114313125046013085183125808843945806445512776290773841610075451870928370872816184416194847894245754033326275680628321941514634567720293551867615859859549666848511394655629496037556252140311454440579276884454972738136349693345483542424977088541352597317048504209872403864942856595125340417455414292399611435567256499502649372637463184892593269415355112266395419176302519561529779105755269377659840311833443355994968222062979436675253838561018098122613683436016540299190360373009900502251262589699146746072249481380888125712004799216996889258281581480675466693517111109365973265564744347652252456353999317285441687613390311144917205429431991915033846126746727405731963121025222421178400106793347139408139927356210114708664870027862780067240066884019714660481051718512745126502795435091530412026413839781744116346800198423241749255839246083289421317370582482545861748240266992157174316624279371501955829667197475391583073489820079766770185336206624364336109929563700716807394912712532626966646717840471447348041816396488448357292597634443686764135111021164037220108438294135472592180216031370058970467292657203282139301551332883053624754133909518587689784531099146477969636376477611030766254392040589457483138912477685198984240984876556807003803480156421514790789288071944949321282302895930001525845659349334359164206770848573029456609418742514510957554888093613649000481308502981285423716232601320726013143135337703896515591053568067222334094075456718306915063889628804603211161487187687265336295436721527207232706377997447069014119346403459157968695088537604559016066249317236002557879861569450329297296484393122802154234558504032309894286299569497956360866861436422298096267920545528202666543628028392646727981986486385757854039553139192990899922613374168180564936838514446103541195370081198081316869584516637599011830109299716807832241714334136744293999196556367429005639132776552937073500324658926725867119047975697178466379461125961694120243135982390281445251045773451344123887149177412756598951617394107924382954419899886372644524136927961742725570147317845078759179359181063859435246058924011281794436166208061253834146523589460422943661138752412471774303579900793267885241260793850553602486388567943041963369322977917813771777405173168399806996357659697573730669204928559381655404373489154992788390892243380711451300728198110864271960140988138076718833112007483895118054545428709504886187995814163785350107710306376323842813545392927843695085322995968917195612687871335897652915525394316905472162486154125379354895811515241119736589931877120325038511791238436236725906163692760492463287867142238100846993761572692679672485887048525434113512286561872753372773215508648158803037193983114963214915347224602067309873647273215319360350818068984560464592238590210333103513904311040113945308208270542429962236374492660358867047619234583375148704746445639065396028617695825668373134204091313701480813248546911334236169154941517137787980803738980325220908763598365743034414684796496960538353901131613225540346613720316009305138825428530030888829122577968852511217887922812654801112724085084474976300987858303058921715020806383186206478595237777678728405390107957997401525804062000083444269307274175827469335334209769814328815051082194269380822898113195997927694570737152278414225633772536219024383795473122840339799765546558222932749628614732797262267059588703134558781102173690685341523445390245133260921250548235243527345086535142230729648320398565878643517742559229539363907957193332089177601172503598453315433163813037705458357646947668140393092874904958249507326643039015261737397411960513228954223113609537136241615875111886044438251629979454231596415902557989281098259537270370067122747129583189624047771051265179841794610773128763138101474040064915378833883416670811128192623021952056442917445207864714554007124853490024969600888529998367215150628956811578557966999779319892212593356825077321254947872979627417930986768254018666957696086262518461117763449728760338979724981832861457351937202037724069799229943765375083777922642727442219024904560030685770489889694435768451636668145775010662223097099342488815063009362984937294454746773833106328749846016024103090768409494662592112521244202125122475344467154022834535607791177476112897081817553623926408195283749235582324182097116745129029543359938984595611753714593164383158036021025179200373026840422609021253579712865855080607639442437762921293327070592369598477469355266171521216904624917046607402273647782221966258926393668464901396801660133092209434731984224913891917001637846799386974582593472417072891098070680717389428704080083680671518945960458356925299389188760844345814114810099809764879044727069704571690365327300779417764061262617983904592110340406218148512985138135234049675111610067424222872993259760317541283375963827132416977350185035079436591107779166409545176429907623537098780679381193363505240148841525437818325960348621007018305620167399892460507847532866016471063325420029220240077703170837362808156991507976281228293696827452380085561030049043565923092738686913838620484491692935894062533974026105622064452059629932636847327414948810601198573506714549691934616111901969328410204900540193452055919124702832285080511725780448689769636578543931475508863407207632726432989020876513542273139834932940581661537041940570715926743127905279823382123424359436938548154773915921801934108695776915090802712160512912690756348942097110816609801081083946169541993721967030014132189003264406112086115362996695902040967766598166800000056481885046718590003883737594806544464384512292690942058779451345426887259128155504960469499869064506715675260164839045358256278482336358610144259508307073124621490260657749634643790159682099944720623372682555462576807722839666278836345173272762993701066801654146031059556281048054937016350440883741700938962599988800806680608101605385694623360688793954502326746662404110724770189996056254674445335836552570061028202827887990953483741810178859324452978914161875292791093433794951833334374705121553782279059746772860793738825654344712573321744916286745146101428252156357268309379794759987482867828847978129998197425174512919719794233412584142925154343482143619644010560228233965594529904584130522312398178270963707804000336776154632357150238176088347854110415685453008731675391179312946810805554248463696579979485670542618377851114967961893510062605324688661319064483883477073643868644310307121201457276401542849704316390461110396476102968077547837748140132458524415023098034341224891580371513049601416953451681623416037763370866671214996381991806094223948033400271435387584825464957770420501177728330480147336254934733687927928912580828054489872810396921235467216501736626233209381487325858359705874653013969541608054077198844949416767938645003698388336347021443115014621462132262546344633036927201826973407676136098135633192607865497916888522788681455091917052335374203901196636239522930444222322410315654980010051447891785827085133826140274644636034950651017809633868933218210380794128224695903855899125371308665219365048907610440485996881113007761565925694340673763062517912935673789970554496163263032746929214550209747725780112423482105416408754380212547957332542205545062932069562695426026959109455746055599383384131395592767727981429979921028370000515934122729515500390414132323815675081052088454151549754158273640470040634362353831881730166286641738879723751834801004835919249853303355184660558931938987782024485541791705847412910301345660274668974281133275581454040541105021224183503918843990425063046348846811723985804981835226966897240773683340590849206442949754792401262511360646947702023026245040465493241836619168204124591437926598967913010961461242443345984684515758042138798269196149683319805748770812579520345420288059663479139177990891330348686019353188176949986705675743427330571517676012207151395779594691260708680162643262494297202233154177216802284173038003298155438557875102064774166843223213384036210651401033747470983511639825379845935211626900019570843164884836194001809439550829686899329444678772605155415515452591659057836041490007664889485718955162223120672492471900243052682981222247391661451683831667993210309466954844936506855849392395189852557671027101306114797309862791441946929372747840748225862131644776235246911332611715351953710048102155113163054470822159885468112794667743896198534497840450897919542324490741122631341218072522249243387138606826663166956725581831765610548578106914179452415302882704697439702279372769975868567540842509547135384058516651363171389354661591793624880986674475404333220573123975877979240351601853830700282370636532599219689330386484725125788305653615010525692107008508897997050612422518309953320209849821368521492625359644034021536625306798522915554851345698623803708273825324611363542788066583915032436683923730794053102086627046770205657260724541798672293508136681291116942946440166351971576624284003654125639954234890001287862985465016460713079663896685450741659375404250207072891901669216221776476767059427956193369578198838293531968021822574195373888176954165173576234743625472264299115088329250908565878209457860333873215584259764024113482297378911331471721361008662585700215609973352316802361855008718842003753200928864978695770820633882297426121694245024329581077932523234129053948874966841101018718722562598550448858516589343896771340754301113969094007736156591173311560654186355690261174052962852411273733824646826151582368840060279237192734931559808717262076311001316293559809873157239501885456280221924937580890394075574009071693893471238447491644324905419880836683102958849495311663571559608545277715888652576570321957885605213200526548691588730960336457084683894689353829800763219174270537718171381664987675290825327003981271514695019742653115875544906786131929462548945643114915847283804507878674619635858411529600571740076497314870469921087405522297491612188642135135112428687766918614490686627760934167290743816638148577666061277429589906727052037764107280231898379459047146490109553075468406353031478449580861623110994408683276976669512504784701436810562482957664272442317956898220500277139270223235998007274795224931596138724438163720542126318334553586728737499281110633225527607208402312059183323504203633113327335309884768454965911260714962542368384122642439724474696969919864943608559376967176742711357084649179476277008961705733806233700841259343810313421971431257251371923600805016162886481412854990369925176532085679502093340973440834551182695463537817752001113469277899189782179131731859728275187585720031955581058438818918214069386243487175956488194239711883034336653374920743777005330814943056856501278018885317856752846094565324729766291462139128837034380734497858754287873847742390590000819603926040018727619529335005834408111012736669964310681455304979604880797071129719706254910176923340158146223721180554714434986920682993415925141281553204778016812792804564992018069285219061618954809163576856163185494007638368379769252872964911681316972101520000144672996420655297372775490494240058463625712805080139989351915626439227933975439913805669190854496440639610141379120654931781825875852802677452440971630036924312057946775014727594382547306207247068486445852218758851986882919585171983713890203752759386031555903084645299840811809493744550373500679558330570585120839687159629518727213480874987314510392585053109768051015662480223464116606819330835390031693383735473616986056697914590674944410639509207014118581366253433775335911467256359205099046862155138252516563216383071643533874814909911508973340353790046391082010207929996112194591287116170070223892122157983735197790753689601671961025678818323179189895361348137710624512320646821918242448807996159353578431758433927334185612344285337043032782989857095533930455075755105911137673525228936578509346409985314839265573580037142050468111292601622198019181498632139664444100051625328018185055301965591677007069605648002847355955823704424730187899712215950344348862551303495928609108394057827998668723931549465970703314607094353401762016923413791234829931420092986865798571063275925060114275651147489648405527826964109230773354427045574331914595524170141992763648835405185614565999838332805684523432755188892699372560989413170781954503396304908668379161966566592474655424686340202945716370920136359021244357171070375816651743725580078983441017264254539503593178763654325071733700999742167035401869697447053495931865617960717471556208477597403573964709894681994087213920010003896299013423626576080602273532390006184964799888434733251624302286811416910513308605290523543906177602114379573129233769934941013782553738611916361067410358542025781141973658676615138927513511617727113333338923375846996659206412509632015740806948075586188981095611413841396479756997816383351733129706390948302530422427865720736782091347722487041521336912400498651240643871617876655618948560487564908586481294324465337272783689446004831880504284556910878625297227671164463551615812610438047411284440735275884978070021007712089791043726568474042807108164442016491362411795061262843133645785103964233610984777909537930710522353540628845913642226222149633977360300257668468962477626187278503281747024330808131002800039029052373136769535655226090475557699917476472823827208791756301671009823105947869418706521016738318611198767634964677880104243669655459979496709173794693558127752282083018218589533585823156155706391094521012435220060858958018214819205648420756008105019759079048250852731804047569853413507316463288771611402643268744163013386481287076168847048225099890411235946571641824737303431280995069384186392429121665375801654513038149195210674026680458970597225132391931810110912481201241650824785869813251453913461538176201195350385079336019546801566444925956985151860430850186342690485875227858572005323727689506824355225285303883132751022170297975044678164199738931635859423924163785897471458901997746143920509979649293496003730103149408827998526441075942237689336131145339401921854401590778786794580219999501528849507428891405320446580960856266232053997410972011070705758615504450498368123678696595518674845019986672755755066497557741469998739185536914778601454557142449529606511013112195083143632739043208863923539175158183242525010221313573144118253093390714279994008105447051501530087641757956648403556890609481850992100266496037839283259660761043016572997232404819533384447948230370732413222151680888252014915582237171706531378872108152476127600383881781636541514720167059585897092899491745894040721789540198540643237459632724794342094385083188171256816290722682886941682566663312562021887020989911499136167552317143382512932256560549782167180663906885874908388440231908599618183610034290984625370228317944313147988525789862468514443361743309073853909084181042906082982666773476795958401707547282362088343276763739957561537126310201273524470336074338462641000903203970416711600220677336247460905008115885024255378520670127434656917043423183298454275463457092110568894307844424368925491357482904607970166016864470556227578420657656030814747873630872091781968829808929176311015611788927307655163804082010508577948807433967811471103462358479883924852121285665722418983898076756162666895264396164226410431661885918037220815979048278360767642272221908482461665124647053252676820782962184507973016091820418558709792829276152447919217184710764577873533037705079993785265773286576570452773756248243905019867652281161739103548299320935405979279041555249550430166845010829588676096755732201737226167670091034276617522429035016683630877381909688468625364494317716532982481851863930449483196872345549395712749303460971174206102872135594410535819773614636140191596022652441552336526142889567018197743024081254367454910489816354034330417591093100142289284535573952818298914445385799302006692034142646655138761372699424911072496977359876770453055670600923458300250158949012345512374890179358583080819231451169579630987320712311051614555898415427772620290456865478359488863930981671258360721307065300314464031579346452494255305200170410832409174901541817205169842205740081080311988596279375315631920096996649805714447207227222275465321393705858956311074438966909416196557614678280195085401347890807111685974443896201151147823920507876285968080227888934699913898383700015864800337997517906423280802482641777519277029303175743409071530710110504990371565378281573881157132037049365953423736494364644615478885179958452737821420229919442303438203109100814793770023208701729909781658364011901860666126660307988086659874387145944272623057819642732443418387984924814220782475892419588871402616360469045786314383260335171167773575372685975264605943008427537676208749757830793975884825389723494798627118750544589930698486534416385566961400255662871402154733488786517862723414772688156680596330031394875369791225295045701966500930457333910569915876060753646386292009273632294395417352748279368348211066335253644599595407399353586391123573389343567928088870399631451290643941584204784335128843091879801999044724070734974915469669837974634314972879277804730147004226108413131971059225696472339034228033741639749006731105850614993696859026638967786251512878090889767782557106824538795872802055679473440357048700595179269568389125307131367470364386786920180420397744837813441230744423292833029295349117478058416490541138514818569210728070499089824328447442059261284310240950117863927805030314761290786956197467205654715887148948988887850722896250835483397208432451724013011340680355818456251090975790698380321672389109575782829016704784897331461286151640192725414342430027528101729768300001972021166615068795484096471532241365941500796173332966301728678202843810582677499647355259342520645562958208827466550559678721754570075772304489616886894025454915673733574014821150734629720241358097377776899870099241617497000067017637924774716221381869849722186982805430849724236929189268310252834480861638483832925599786085066451970096500221113336638778222628145492057758529892508111281300562449827248949903697638376337224421423183776798083993156575842166140202378715060270979275929664617067149251570827191021597599608018097320191827346955070253550002091955287281144101954058627483891316550830207584198377417584751217180237993305631120330896928170683843658807834256620722087709178690543594517525341569494476513978552445025675971741735606355002892625131187535134708143745757167189808956944023183167997707114067369056478669879253939503843933889619095746017518665167207097516869319925126518316430231962338329137680527036597216211633254718864844461754748086018407579240351037608692074614701863633304266193901804644068031930565946160844904284641169137822221577408646161949854931914177438497039665079484070301510909993934231761825249158842648987741233723947887285743833870328975154257466190077590717833184387896435386550240693237044796151632798074975035244787375796808295886030005089056377397443298794570983728714153038658877224916755250451018316059939777538188950880918759676927602551741943462872751652032300421627671992119401935595585077879858991431051779221302432388944038217765754330399438639101601442478659135533884973479193778442242735811801996292087988048380843155230038108154375152918545114760224810647681542048254968611254046622061572590650006940034030759992499590320126296819491486190535374460567099305350999327297333146727483737679229240752219455459479550049752818214738136662018627800814394008104821199004828370901820417086774860166346026336452761368667642206053924111192992621217213808819777427005308129849705884780864467381407465385617998424140591561837991811176188500969376184894223956925183165104425844251554275263336882199494734381454845674328956153914492275515923485765812171018444549746651974605089963048952520674037459262410755263443946613073982544644806085929111208477256692381746169283865606731116231849858703687874855957276225070166280849885594023170095041166768346691877092282306077848185951471196054288398348992927282005707626315974890874246781938287457755603892346587079202390233091165733158148028506535080089561109711305600626221969742331970337681784402347549250568392343728148866516506003481937642440427593580533108572990384525311315838542809186199063377184128700520569695288026578227144661496475494438857278894616226389705832431559445764936422947149327593421582576575204918879459641641457978690178747118178439012820307536755827562092987232051625079361177098459122996213969595686607822280913705015622363702537957760530673286798554491430894049871779494406406423547566816218452792898101997472962925303402736687689196210140905005188011418275294018288630320144315462193247232600443715006118071264414377010732329126582322393811499215137580390702555866239808678757846968269635183157355421524508696591982413953588553163284171029622625243179975694595422658305238356491216008643809911107624749696296714489456938970256075535104903805368997985069757344109759010394115108430424655161273743846705909419764363574284044127625529894727213927585463217377167888612790267841307392864481335503444296259969082562366508143948863738962753737463466217728364012411691163316595563190228930023989252127336814183667992900795874793035729883701458530700469622878420887684850974008244628481405925974207306722442587059940898881901230059588570389269060313084421008796257737104289677805630468403498611058880096200448470206581239748447493875296795091477959709342962058453673288350873012416483160345977168328853844751795486001029575791562702648211515061251017416512817921149863756380635178457489971836960165165875941378405408867916535099772257023291700887260838919838952341068551060094909849987472121937627581002524296176780639414375979448134601178889624841886438697514347768079512754084933926067893663942302702508494189689943176937020845501168656370533077863617940038795265535197740011619184364703709265794624488996805585830188996480072734735347353254238675686738408341258816076846492886026598269522634537297085779760354002685670193394712784348537761128185519678417419242136843955513927332935519825281550706580629120531319881796610137551701168329980825391041085682280941011680328867654259176463458345449876517535785617699634130456130942218956841928625630616742366357141152323362970387512203073033168191687470332561898038198223426264671358949526487911971566571243770006500836887348075748253675491620000850452001948712932918429643174461650792663137855755821294788884401056019628886731038813002150090967287209805669199221732159743984676081689309126485842940977880682237819227219266577504658648147829013250489269461542894671414382065881834379021086740410604227000580501185583513718845111703161409027162137870904930795488492486124627018958426319440617455374202501766940044988902931010164776235327537845320679598724153438163875770357386301628832457266720337074576164703541902813114037641886222299990398959342923731337772998070635947297532602207467161977727269848803818128127295991538463321364848153689548812770637056823744074533111550509448305888918135867323459475558520593901287652929071997767347953382948618661198074919492306757780960965382290210388803912079991673578575710107232126189611471573706112380101959312880480879443150003041004595554805475681619352092064593898231886647419376973402060760915203064929978183269763481969511659625550134974626492878846901977863834499774047961142505899542274498411943395582620118402664545163744661430955360503054352351907401809783966912757864287361468289875467254835039044145873690458416083480470379862141907088420237763985295059173424711719502349591888438812072479568653899283246964202540509324986306480909007475808469798930715864260768339774851616772565138311037257261953457748021910650259997345352273265720506407067806872440391200164980660740465486142516462413812809428436168974054616076137420171561746673570661628392269962536611082238838882700768973329347125749372819241659163549173630444768546045200899190370298947766928502936244057221606740358848707444231757066005157132223734383589253463297983771769120828816157197490329767636612686659255750257014637697839938646372523300049297573762567592778128851489668570917140337570512285350973893197840128118006862010626692122130106956589704826755469285549879495586312406123518042398440363467618495014271141639199009058031649978959694172999928914404835821904822743633301571591493366509857917421287642536016225997500628143407031029275053125984954189672259259246761394163892292123118879717036296981942992429731605424332836846856465857874688095426071643894788352232537594408393895737178198343781115344975041130621530185250240487422186656541618428436087269493386374115087771808725454925643603718858129756583865793487837273855168788313803692327403318704184722462861853432746793104393511363551896346318629033164922694413454010157231263897649370398833669657335953544697153855357023255254518891175382140693352689953778402680696108674314805911304454477930966710768264517111948052778346605226310685698302029301267349387102272812252188741224162356528096512183462975997760227530346488018807689300250136885724995606634287244281543506811985078070824097555599046888277961537977482780509895856315149876501035256965012413282529852844429538834594580570158673008599486140864982506407021855174843590478401550155221951652746458862333786669057070435709234369268675172391029662000753847267512630600407872154059811905604324712402033770004689522692378533217094394652007282250181756959866510711455778709314445112424959239407434683055653885335260768428696101399681069573090924640571519627160631640751634889409241652794350331643684850086961972047549983318732321875335913958024372279327893967857208067233333613977457754169833518948113056650396017705066949344197217695252705362935001916796741251713075545722487835014643977774261905161353116363166104460137348237864070756348530473510787561799718584105239541670386674037692973111697753145661520983943055281188867883740059879970585902140284205761618097752474302045595414345480577341391940071566466397811158988243276472750399985309624025825151750687379746748282479329706564900386301242236130581437495188347700041298864241592731426068051549627832560476856805152377815053263412833681429231578625848516926506400525175409156117815627350253927887756628284737241080800956716143909915763879248047105012881758572536950893347078349548470329301179108786533266429487786522604750415736109766622604521896109229109598228935287713967532218470535725937602119066395336637591343597391385287338269064775211690069654144555264224486656995201923015399372515225221496579723734472172367667834956566901484687570211696294857971548647851798538054643641864169590469438913696942523947911287081603207135382070302292619943116817579117683154227121226528163428573361883828835375681062558689947618106937468332361525821190759636063307313974630444245699329267438873020480033424879908585490689508064376325605458876172651061976418194058954843204830679573237190469582494562205823637940881372027013401969505389474584484329253389145401738075567004023050773753736416963719788078415905684202100495024573386502579692984629065751532576310703397510049484400460603234396375417272769567392885761621827142063458811577596574371632647028798074009363135371850431792429444217409437790795527809463918440873087651193506098243265628788637956042530199182781338267113829332481421406451920068596540507630264848796663416518151923254792137397487723592458010384182021014273377145247239962148966444715168550419678120399108022733347403735924981089277394992808720716730842187337734499846266588523900506798793345250853956202519250765785856863611957059314818607870720864094617658108952033457323665932795269902200956829031934817548097047092038460943541745287873443176464687392343377851448262095757856327498706264495852332037867241314569595753188866260804514924245576996468245909007167521194005901602795726924758511015143578123675989973916961804754417806823861434308547586197464630009070342570034866411940515288531195341678387929111494434419438334055232379461002276237260927267062249356291247037970612567958274571639583104557642563712710120625200776957311988803728339797662319289999187658938879893459682471166173109141786635018628060218144361821017227902479866002962089423619551080672960452754642943311971108642832698413510814121038487167447644723351316992280310244556155428073297357014983022838993762286292341674681951113108993837701141654637325019485323304352466753742098058086036173211440214515800521976142895772818045510306100223247782619401077306793055147113337123787046378072154384718461452016764959430901710020713794841404940041557045633680507687053973835259266679629435947353008440295106988448913149067011809063334941295124174873855254932725876556240123049238312815812381064689375714827423614886606994705641719362865770947026177225685446845833659910162177664473613782919719429909121753719826349971209799444172760583257593702035277402666553013947564214736875531338157842515079262797669130279021555069925238140166771346338922716814312596700296342412024857029779547512663592505443398565321229553969458690595464010892021864500703771689742630152871207818971879163333354123608457278576025257323270958448627999192211776816659502004972662381387928845906694108831633460280671660130305991865800990261497771892430087429081415225940152098125527405317520377902573707456301954826966681946062879912263637263447498685705594121287592693199407230573260543939482259215614682483089931286744138211893228491701517250026620964553686314160702889203773726345747347028022178988332723713487596355000324867375495243830434010265332291482957754771138061175775645030824008031772027528447803726404588312351818961080705248870113124423434829701557643380280665822971782531366042351893759571051743021634215128697518364047470340147714746764490151024517683010764042955200372811811949427338612310278024408087922212344914441473960220878865127375671521103555914619648268145515959583164523148926509971002511029567246960580323192998851018188495389748056882295978381182058106780416411351545549399620365304880395282116019285153599519090027432333513152365062408287195528345536527973589611779182431764244879939059036617611041108228762159487453985755411067100603810571925331225523088500059392177261182134763264101343588837939321931016003768894515086704867289891442024119730287256983681857377445402817454576210023084268766137102658148554359054244132199275479998636860803925996703865391797561976742041820687365010559935122137431567335976274772622336587757506751123950269377065227817584452377042708963802904415170327839253550278109650996750440950726505234995203989230835044432601129924707355859613313147641918363614253022021044609679715630455240727279647857292434219917357777660200736030992559180426963158192039825986708591126955050507348990768528334222713179946520229671101119936986819291468958560151508869780979347185169173321132976312750034790383949834337427667787921578302649377049454361053226581782133692464955488695633866297334108181459703103702071158267664916468371727961092339824785094792656344747200628468422095122474700603796401300122221741297671740001023768204193906065086778255294770503760335780885371653437527004304470235624150112371638151224203010118691589208246501007435886944624896209888652795108418351887703197426575568281252796566776026696065672160622400991964423829596076830728942989100522785570871570167326864421505443841499743276679308251343900270951634488323503002535929377344438710659217596279979196851979982807455162051154576929537566205680909202057625532263845024584143707651556124958168538173425237265293080374230823737000430993298145170529540172994317032786763295170521018846182553037718235205628811240763254597474243720999257871837011194687036779632251195876412662666355828003831357749718213395743866861677095952778491721959784493377642448874597674899247488585930124409876800316131014556704296634105623845138155409849151168672991422147509332927544104495349950950379611388168417845998913399292220715875748094027338466096095470114601685844518328048339386051316185687688784639516963767810867554640342358259874945832826733525332145999100829658886901210365986153483982649197942607773986739891826286587150928506961769218815862089059466001146803070632756256736199273173511630528834373255194393363716737958919332164533905193494074462012138438492071838659131817418930251030650208118684422599798309619678846070607974854985306789755994966434374803659303623355363555493228306179420644261073296772921606067142293936248548977987144564211717048541363703925501380937184685154441674716564667427504608035196412654370029383630145881830145320400551461347306486596634976041388048503944576276834209285348806670539005638616737554151292106626242793954776628982705631837630603146262424837332673885013545501330481652812896968160161596155650013352919347909086853347872197963397458155489872364011167458927190452023345938165588648503384354318416503683069511958964828280509503551047851773533951415504480540625174684761483530605905718910936004963419203023384113693199239979761445046402149004153347123233490571640055584606474338818596217300015294378757720433380232639103633877171953480356077116148581627956407048569879710355633690975528182033162944320361634033867883808501601316208596471120125528859915515369628734946490671163785521636647383334882486129852371448805631596449414504161192382327971505682641305499379362144602716841062605384515491488291174502228870042768293586224687662660126257819150242578124973711880570705248669615407488867320970689985336534737476003545833588456194419082698676921086532394490976410995897402295973495519917612148447175508299667446897767721217862823143272098728226937806020819591498310144150505609904110505682267213891765259551105135937855227064411074582197547686008308747382713020482791996090228551331669515121039734549148554744412724841894526993344575451369086184557030114775046270951974182444731003065958240879957060575060398684503505435441962957506561200419083039003131852559743680836252044330949046188137885050306187667048879038776535773156609317433610902276667663559824378180317242609281133060365453756103215138429562290534219424123747720611024826792592954040825875399461674823340609764954774470301411443226120913836367898359802300623164445922268765825037137989246052697635007479486129330057176115135135714605613715297943765991882731809843355479601108339223952051390975026394492328756408201076733995750162271425911796240212350358144288489339002067688967665276020609570783154988531674076910515993066949574609300562985094563213578635608667679760732602965519122038109420322525649231569406740746299040831802775786932848865397646076156912566610686033838356175114506219239513892237744283332982744154519165694094387956708737667634589908093471799604445703518453114604876281833355171747450744265085036501632562405920474197047129281510643311336213903681678151302028382488340817154707317511076659782903458873239680739788805169792366299371214903735232533315540652773261995115942720047916994080746303869203058110749086705074406924148748934974910807299774417881594025878936662650401513551073078951488474179595014384110148446796488070136861945945561056814030574132379098272647693313726544141742878913324695939949867432020080356512577571979828064647132527661795585797092381297314623779273380741848112124828733055902443354436351717958943640393713139337656971057136122373377762380800762075334382981142567460920025135078582066442671439038124125889980662679125771687171159042643847803343191558656164786339172682696352348233277218571887704328418699756807280446003968908868824022567417543340177165609952232807050997366061308367124868763336256331455949874207136573272163415176882440782508468092601308292909770037055371944026540218684250648166417842035384823906147984465769748069287565049108366669628284022084008883681971462442120444062879655807209094913776411883760685069853550681190178899498055478470669807615141105490038498989700616183801186157923774461176365704021784708590705200684435289702612493243977545787575645376890879538906463130461520773597467036729618206503806948660150767199860919034701170294577696829224184996036640795067718642053112154730726949220298387957333783753600019418670816838876728896047399289563391057557877480296738547008727295491043493338146198144385705147815671786969811567206936415755646934980708628585895213819586518567002964652348986147348315913633091730962890357861966966843345141017894237910423441144838321969882829095529073722564187910383208108928635337999425770613010370439329210242817591432894790687008378621032836445939011585794822335684026793057254667064696985574459844306994423460352583734668526402943737823126427728293415806038282009853534811532135612768032017120078878074062255128382089752978360628415010667223770228153351214988284292744728857070885310670153403029036368490224176503424543656312066028428239170372348388571037186171673720767697669685631769538936978379930426474517495718669878356905903793805195608237975267342987282749724973544231455339553059285844965375819254600630936948627759270219478617029332984375914223831925070697557604798439732975144660332586670544360129183777898121562405842111153102983271894673609774475954671207599667658734066372898201007543885334133488298553186717594108215632635498213679591791149780893400320100532928321674981379121478285287877156124616563108806723007326344147458590159229460744509507625449645253124652574659290288534596832713927168656675341695078618021048389404306255291787936955739382500279405732533161644154633604895087350154782426989774486604702956441089344002787797331404883750860779042935099023446913209199645775203226475716464316453062667987122581148401877459496206482594720653223732087162509418469716692922974968732475066214781769411233229264561732634073616256612536461777990599038564063117171678778866212457325796687058136897954873174682841267979519225642737133438495324923003899390345112927497882766703121385708010830090282578554598328941113961276932223722461780473820724097894987724315253774141748112597051869192648295726654111551724950553040987373457930435348224504939232273113226712993667230506840303193298485915462299395328901267370519535489399854184786803250312427420950902536847868862744825919848754621507107247902580444688424682087013365636779404098158020273809792180708397678625051269820814114107424521526857138327043509081167018599125946738423641186663742727775038213380247208718538195562201198811613616293611449425554327078628987274769702653050248135391672631514371519797218039162106009944698170393312086800159065893329011134105918504832005314688476984642181054433031317626073316174306521498308181485388655567741052429491249650656345805820344566642643968460918457040490309283761535071602552940055329601691721608689794154942539247569257428889972094248167439669807200481049435297453213756914093860385461287509342325781354483658114679881745951003766912920478942233816245919812351255756377686046176663075214679492330933079499415325400292060437424957257823795654387826039915203266533914014487721445526520745885358596793864265144408808122485010438672835732788774577437323138773444751900767160401730015739792708796491756931931899781642633538615904527135945622937092978656962104650830998071046563990854052514853243044041280778778953364070614379161826588252203966680623921089907641564278902551907470136656797598325137318061069531646081976119734731644102575651934934477168870736594577087442076345577066723526962928245726943952245001957534019725257237183650580357466528305027630808032376579334891955754971374503172114195886518719398123620096067623510921149071879217190845722578408832017714414211730343387150079706856772779628583653382014228132105640203156837049508343018105783861951880729349143598863316759780294903011822108688285070802238976725213431634725185333321242577605437668535957936025453283392349785930130946497587094642653756338125715304278175762993591353679229681351489759174934142420813775863764225191848396994622584873139654651283497890333100573113909733867598013700328519896794807769303852217961007973119680035574905451332336034028519829633934005503453949172936461235857455861365079421323776435070054817142322356638886008366221427196666733740471478452242874787425362484379690139066763000609313291524946339486751573964092904167559594883047081634258341033483641503598202453472146523269561875395772764151419641380785317023453897188615815464175490090428293926661547400782578889644118026062816353827648498223133897718102139773184315621896928337612417693544461452465628648979130471723921246556314548300958220900918008925875646927637255317166225014138887626502499921096428990299328204351076993111867654398059024199600695549047261577102259888857201161797746872937086093608791271762292942227398272935228332594640375718576337094970761226115176735084297783935521845414398248805044466411867586348107042535618331909556207642294433583738948116319456087032033655960115351868331983369147010361384621764840051518054618969870993373475538037045850877737242185775512400071481814399014120785689798274628504278404804042269345616326291296798479117822706467217099413915338234235677190434727845763960982483427221885421891439409568256277397001152840728809351052474909467550104036773444684323149176500350790616791403963857908437148536774954405653328358878459505323521614265519501145148411037812833324226415392202361912318562341115788225538277155900676471988683562092777679449829913656348464971185296473471510512484132913607339525088844847738210581445648647140205580767289580991341546508245645183581985925241996007679571806124212253220880656653861449347299908602062364581900468156673853000183966548685496208579189335666518127227747141149092760709015323237471259273036859655219755746957399442345033043757201604052250370370521188458713374604902408828506186390132161632155128678124577370411168174925576347564453647904825004243777014978037976754883090663681970819658637475178043576461960916371994898219435975188971943545221610474033236174190921825159784082876882130244123047619275220313378603553432890579307858603055958250863084763292886203428609833986381506269387088491005770568276485691466803788928324107549227796620658054205698515277180626709290901833128090674946412493940688584601969326070732761118517244700717920629457837865105378316206058723133933215925435900218832853050418491951754326510503639790862411820693118857917040020341444691780666761580458540746019659825518078616400449244390619149494378986342017455838248668295918116190564659613231513080253262085536751089914967095026258329372057660033237246580336719170323430168767447002355936506223614108802056558725238029436739976249361176597924317304994946881803871394888703776219648980801348390356693551644735569551851887985418729563414325111215344731018526541793942826400358217020626095637527052261548415507551790234573663783752035776671370903520762392527719151506661355044711847959778698876178680662097080948952022089182779637283138925762048049582999826478070729608551998841806218736332260597721444559936910815171261359988440841486888920393143938307581527510079709631260920970122786490068270257336266315486476156655192584892120045056601068594758801105223690079897408612161226207530001000354175160811217418289487183085226267737746143576502073506362425987447968079815847297245863182137054918762336135396763525064045083006223353337134026071300870542048539655935948827376267225413424127038010544631503064271411479903513965377403346103686249594220075344073940158295245287002070208423414897783839481743872041906424224566003777983107719211335390720694632123341366563670141098877221275003161992872108220542018447901906234638642337780318094721467614514251087297172567480574673147774073023947404930961899843583964806417872183597552994863018052575388259920188733013340318529148830365406139931923840891199907779138038622909485456525829700414403775503988790628315836084185415975284841526189853745743485953215961334246964961377372104677769713489963998782391120967143784706931050784934286324856624905507698348733225967760602607445526091149602661978567238314320139442109480478798132836949797273367573090068980355517560875552872982462523315177552763066974538700360941989678302447565500428509273528705345543414898843949639044506877301918215607142337890110228882576767463345977975543496331511401331525224654337077521524457923262686351258128312062663841834823538757213009091016581100090153625665219922953688301310832671333183536846738207602420241406572695745229088809630375238691184636907407992565009172944203246832305862480417114185458404395372128761794360331082998550866029208806535681551985647484450663102746751374371278194579998481397446856764436502710991303944703194297128421670090221682468090799026516525794508140802304417239485961510558179899510002770076116188502966906353789029406706084873276659289177061364479893150639493067228971061041204973107941056702682884368323989295917786795552771600333195808222898104023778472532446260847231437240407305010349796143398342546659590501054280206299513721246810321322803552003581069954139210891371837500609179876313259992447543943664901362389782440108321970019760858367762351153926801481695265851914400784734941382483108135355518906180426590906835469011556525434323912626827625974355302240021812008558758738226440064962857844319234459535594591409260646389700100925353042075822159519626823000124859559108433901463169741686573616304272966482573065967969619781375428339900232283517062740098281005983213524887579362978107048458980169461698619547446518098039768702388701783191810897013275220807618690499861686793286455422301349963585914131010471942818758546749785553172082196974970969765052780216996102184870536640700834744960593359908481107747576694127192927412894795579643731604217157696931447509311997954458020163840806287620708271822074101535861984187886704855862557655464544879399911288053264482557371152082178459108283498020321413861403186030604986820633941526855004607128471741468872291003355262872208124748683753737526154521596400326854291143849212411058565061330616469301100718710921860516592751004959140459506293221121453365826400807100973741293934890646265639551326910942504864088838629577648311335618108127747911728296092041198544609538240773417414755326405791892677489653432839166050529142920565584366312422931320711465198862358701890346327691389447109499244840704173144533055796973036572725275736796555390993371560673588989920897590603659871899289347034380157502897414552925356203953602289676281265265984833643625171224794697572583410368482507117218166514011364599263303598721713959646911438288125211630879151375426241037800131171360296742800975465592465827001608869597865090101897249762667913754185412735105407171857985410499567515135657383349924258549125307984869566590097241149158919251095515701251019579162373027759670399894506415182939132447729115290843005117914507143502422463559316422617297656120961637462557804861701747662896348945201538917679581253744417218292361611675334275006457522184276245639852156128936451041905181358527638504685610735940595664470281969074406600981306162734258416816503101131188229407821377083971458750589409948203579614853715119585743548631082170329983327320897302205029521343295044269653895418410022334396159472605938250275134464487227433981493459008560695073381314451403735981421566352082053491516405689737567405055211478404829726901501101370198943488048928243783223336070471194836405942932904000863556243730933370766372205824762190742826365165971881140127064249412556848459574916400406764304984207785320882158015233114947031001158831421027386828160877781711643840856887635504927120811522165893665314756427721588290473307814581894854632833283047398260881672199924009742168737900657095779079281271033872835321300049486761435731342770961501341155152078944605858730109039640676342514695078550250063289478810085908969740417007846734133868621240934284679878559294713105488420286934289102676559722649614603192440722979026870260431440985505791033971092274419873507473973335221078344073016572701200598381411182456805838365441312560365396562588691770076828482871128900302679587448296105799710750038808601071702026737145685832417187313079498096803630080392818591167922148889856145115642155305989367817021867618730209993550507243186844366439683586874554243330688815966734651989791951480811726483810274465021485197388516762325831202044430782781877754542379033846641936317420252182867525106364670169881853784380924903380171504411376608773932501935083260392760101508613179512506037442124028709279418320396440755722166465711501928242457008350302543447987774398166073590982216484234250567878825543645330865289627151606812197017034977255246664533000464750118096089567090964566581159924092468262939245719559580142027520623830681368847044630313862467745974588076714597097407694291111166239893234036364852954423825196198674369463743936922469921711508942646528222134022976834726556983219837860646766414099180305759673315530944041546290247015916794911001571135778252912540839210203503466096144508996539698670747622603422355967982628050462394006693961970022618148919038556896763953638662008195790366061556710281970150742429389159192146036640291207613817398371156493343914739787864452878453039418514415437608611923538579415902139968022729466659469210710382273498489677524966156708695813641534066360519881521965802366793585646990251664335357308114136245478280047932297440161090686988646760484662687461249059621646004294395117079449726045566182631802908033253978787539787389456510237115167682066829203529076821128758482039984764529116441333877408357001750590876845067656835406625224611962233666040322808933161500021026015807918856254605612967219786633803573498765431225125181163460788225531269439141391155180337361219065385195631563101930476467571919342476218993681639103319909027553947184249847120312114196607101020769787827567521986512733966599900952883139131752842968909384483345737087433642413470956970267174305770405800010715486592460178671374533180984920509484325566684456134728531071229554054134528002375763408071429197511200201949331498474233199565477446900413273722157336430187831085840179516475048276610825868477054558997047515702887839949092575118746283716756145899071472459436912375174367279541043871740015521490269202381296384826517952718137309806644711808448559270679661737065336316580960907585088671794380999365319599328765487911359489880186288583332869803043740994289363377353168497643325656687246870897641233095599006672144109146497284776078526780343462960399422567598125493856436255093482926196207021408467021341353425946863468609779743010597681459326119235028422111272389474204235595268349062690104690293895975990262656848045920597987328940902330413549289659864966597928848363099164427361210950942313819721538270518212521392533353756063205546460621115374420830028650933823388997476340727151371711432700745601835928289376923079485691983423664911380929621263524081514211342258362149793116005929929500489751113556350143743040423592965982228122244540919682910951084702428066235837209745938203292919055204803837705217979829474634660008362774183449499183354101817168508761159142567790534440184552076467619196566042937869446389557002728011318011404670253062422847884673172061871830887910337043422895090647290692195380709280663680198594489478241902973888206616067329600605462804870200981495817705705247175485556056673959053842451057014299032402839416112875648920408976488018243335640756649645538022162905970730852004373643346679803427923774438084127298522678243275602670075995734308191023654017705715178478985072376358976400012162690948181661009253810609267304148784193342856339809250034282232021311711574868160505394139971552954725751488156521423819676126890496714978104895713838749372386568861811685788179750342355725128184676751045032451924510294107608034587734505001032057447941414454894882265748276153610219833406778027331503627807733981027813069486950285768231696893860231222027939954776913416939331425009890783994329156332214931866125252234477592518771568828546519788335916183960043318796159600086798809319058892000677982507992140506504735780477577658849141968380698389376463978656866731893598526384036029817103222366463207321229135702553224333389558110746294655072921216099529184675349440862104385317594292350393883940473916250848601938679690060941770204035100964262841583995010904075244121910657850672671830529934613590631036723502465638984963274492851078112312564425425658002626634274014981493832776021535502740265135007990564489306733960116470440669133623504628017312026515361903388608699323304385895973367223801268724273496119393846308425926194196726568166858331714242081074482176482071081475753863556440500540666881564293994183244641122191113804598086378232359408894214004600178466061060538799874363463578606950470834292912311450119314437753561176454322237977525035132265672570335336500288497579028235282774025073476654857025837508512745643152968201998961515089753457324816494617479100157724740924456197138106668273883944648943909723781894009906872789273506289078594683998867686226995178260406346614386369539337201386646708272278960217550014385570599838063161452917384830569433037447592408528537520060167049004758346578853908074992989290958560214960893054530288822375482650258545848773457541200129528653316934744904152949345253891645146662098158143108427276721134172513940028971512121853906233153764056531048365540100354033295483613573316624946789551130792620105957781469198534277405718865702511755113723027781935122971234680034048982243566622823992449175235196951120483188647039733908358090007325178485721718184206555682819964486225457302278601079032629629038966822620068663169982542617640780195707163210990988285794118788400207210851842363717697457398718502932445976464562729981223305848677179070920527106064310017201323277323715921633115713562231557874361050376982622088451353351813908230403308034629779378093378326276642154146282780963082359177667149788745044970180021193342732395939274479667501313717576677514004607938155552177144736734828202393686265182610720125399647276009292050270621014639728123319752057533333602535261594136846480799856816529358083358493610641235684488625342765497673015899019326926970770527094805463760112575252321302876454251472869254305034619362723594264293962633207677127420309607519592776147370445537151443369767053855449485097603106505032854470765862523373195708507958073150087150519659380821095092036285789058606002090464086638319937708272846008254849690992827064571692517850757521694715079251869212124499599410491714892796405261701050187827291773047839871894854632458248137334487858121638785413283472982398423072862641196876692256949812534312240514397570810889451475469104870011793683305153989571836531360270971255610830918098304788140912517682783758404193139258083437249456551657827303775533114371286349373396638429299981464862312924380546103050274772497530410996176393090456876901401905386403572779481200820934469410571620519420282783642247892470695612214459667906759904135007784837276166872399488923144561902290437942312525740575462040959132133273697703248788275147254522324486005026242887649415828096987057869733364198188824394942614908006340891166490775312056011276303213723527974197007217783409828089856358695191964474474869887512875795831462925027297097952811498130474416691369226869334663995733301168207501863328730488228125395846802111444621430970657672934330739181415336747007772805277560057873279146625024688150578480801237536994898215957598182881282893214353073279877974934767924297970522208710862460090314419494675045075121894518186110948807129796391058451701293602580437690566628244994101571961917968653173851297401968973714448576166057780593616804897265323678090480052781293254564685509683002000977196652266086612025889524189788568951846513945799916192907759872833421138433682584046222166400093371219801467577499889562907647137510669177088715435834378019404990358664099635600044086945021870751563504205857340311586494758709473355942404544394744601065269268800104395909868192147806059983529941954710445388765148358607041915496323007691161890056014635015008645337679528343581090033936838742663111493810825984244193995418574730696550334392610403939678178957472111527343088762563977018397991021261454794536898421172957270596050624023805427328250333125758913736497254160568210292717949137804768291351096850338964884136435092369778181425160927886348467600238347552376230222273125021160205294696064479722793994786407132654331397703275010021084143898863921191350464832685691289982235697500543408337296246637090807332000765715724530196077097745420953225719585737357993568606080855263900951862268484938894690119662426323076174291023564067851837410168706835009578268904117179402653548050871752094868272897996308076488881244441637179277327339868271582450173450340609252790765081820170991098748695090972265640423564291384511062682965676121164280512439564710965757082792662316612836785723526533331843196946110549843064082973443692295833770445231239953761189534944545946204177026915156785789828074756336862090199143772273827668769303539993626866073119378214488140599303407933073594327554012123833136123231885210985644679730384704667270402961930488148349057833053107193527226020384519708188986874378608824771761888124647238614256627990753223457744908775164849881993206065356492513773564733718002348461070030825228298876293239287881797633949751207766207342565644040790403215016789949300243314329699154915721618629565012279123020673089364174573435207768982384014655232102276046163650761569108653463666369315482677649571104710377479464780743601966999677846257776591250955569130729231777222085257946781611927505828477613405904071866766994281943278626199845770881689972533477481664638169100380372864547014134377308967233155626480583155809877270189677371525693344677507060436936647186716025402838021474857010672993746560340804309362722051095170988217582475382603113279278611541060019856209389313746185806488081332554124731947750443238916164203315259497861488521201808602215481649030923242991968933546004449702671649545232574895368253902979870416657676907004502923176908807817425439783986469406317587024706770624971748749810715576769690285773034952933267558693499318352741966738065621487886385021341884659753220141256716056984225177747449842791578247178252443210274526041673628210482494013293149794738109307004143674628337030393403759726640326106239858442879383131721390362875255834359793088809199892776118891314778124621148010170610350330720173092806790800167874983341347777787927804667915864375780833188804409694671696690880087628286167201028837857939262384944533732191255515673635097044330068231159066656057407799564527312564362766427477311623361915222109897125844942951225864339178848073850577281003323373558448115976927785444598731595164923041564859230698506162778923910965785220755277718339664397051833233898466772343461978579940188262703715285420995377581677879355828699535561983706471120879014490578952767000597766334121188713393848743882808878051125344516831780617804611504238413528654157948625194483083422789347033339653801780097297616437191645168900236347461031586326681127362656515033452904314904702159109965618738095320413873729705005085874535930648791083771665570734905893419165273807879498616049728033517548500481966047594857708656041045579566707178558274332657052667902130547133438134390528706171921871330763736296005488030544801083465371805310935774927767719685709129462470936905026739881584138075083009241737508792586916773341435398308436442957294925495295746712865815648913533286698970774692025925235666290012534304094719550766597672473978628468608977525748700235524597971330313860255754533869564968636490182853055650811737534058529868134833944608719700733954937963354896459626741418800172340090385019252405812645505616190854303783198579711014442916187579509470908172061972288826410985498703473036059032566579238531510085602276455999964094709779437156244725023505124582644204161212727259128691491191749881552127105763331218255319742348703563214688847938756625333836885806084894466942841325729168063285971455550176537224080956690235880346137484410142106920556176571852212512980102225253252946027543180937016908233549207729666763387271522628722092918768798365991094816148860302654694607553351529861258658243815234275181736982858982844254714699259497366296770653917464878113556404708018831170017200416371492502251344781699192875096270883034613296540449857977474027176486136003076480884780297113807321597993372629732493346672677606067584680637802263893601685068088841819909845226180156467010884001708950310825976741622089050774821791675941090049000706081815246420679784922635571801120928633894961317477018928387873869834651130361540304434837111197631601539450308878595615891332060912692352695533195253446273366865489944777477629976138873610918622469955497715505577222193659489346461870217421196298593220333819575512858054274030065551825741541555219593795047545080744069805237391932748382560660100100998037934372664258066569516362357009504785795370032817525448574999822366126912309229864586792537923942459293173317680423339804888871033381139598152628909126575684216740935753334037512014240477852192001612160826112537284509012515220656418139312532534168193716332319724077254417608869543449378650819239705191276177203108694323891871043162308449429748295099904536776515556686844056537082148308966717590275837552723319261761091758663500644559142535269944425311741199589362271185518667308234448792055523521685156966181126371546061735106076006257849739023175035123718899812338793823035815900898420039819129942960962993949033842821012898758326007807720908686264547926209997455164527571571461454833725713228850856764200705978357873565165997998787521354156662352181929282403252252057023929479163100959989314163382124953280767214329816917933580077386933749963547360631758505178422335051621812656030978699125775461131426757835212119228841736475849165345016838232284093327047130678763471212509877979838120763520023575576807076336269422629304737878412737311664748524676601860971296310535255463271211234102441493546768758399593666509160193030751735521149820302791926047121597370861589350008542990942593493708868352997110727979895365516783201636738777961881027581892637801646003459798132595862646657455924820482988563289768718112452402960263452747682307337613660441556879363227762768517273929207704691750774878572972061414787901265778781266125552608588148534752479632592700786764492202844319430280246853086728582255306058627192091971895826522837943129124049482996716899920881022094248107107686019304140047289018326473000296292131095060022175030234933669428497441949156648240742451281970783500396682579136775248313968333342567422423128196751694829323958749771598628578080374671557092768040620662301994682373781655961301310449372360057570598103879367458560982132788193368631303717032370516729317168164818885106173442683588565645275443664297178918786614330236664342301782985154839953167511369575706130385858662656933539581170118454899794815237110804491160364668214783182136900537035222648584284431458247771819005056471973236872169870007269011312976224820211970174766103927422080439273300916145923499897268328802301951582011517234412778826311489390687749339030794066332360650823847476462081037672683556563280926625962185268056790902053076927242189668971980813219766975900572628143923678585728608210282235824345159038896468498085017170923863207489148017947453750316813549217626649783298630006125901783143508675995731886077076066035440729574318118018466261426692852368556858040780806094372163863112452281883389637275265291462990992813995611111765480018778076538968423308572819437083682788956881073084257918620694495138322681341886269624812997960366435728881104113921955151779697628340604710524816950282058813760599720037405720909955581748674431499247615182607051610001478786987343344456252328055886296003508910865312337855155225354713519987558932048456234936897625474890231924483469881504217190431748133230488779992969202819858900722127824585468983867740748474209601120591802914338141067502531346125166920064946645267118418257893167571954710884693292602918974646018514606316973670638281908580878079853249296381216009351393663869637632394395626771896270592225597241696052902969575438323326741349122192981102627732730926883482864260554226116478761046229471971255389581668701940377497473632010546264902287814358163507451621593462381163495413044336546707757303469809016923758450577479606729871597921289464430674980975516409171513713826251017237073473007267184453774187867369724447181721647277612627420224378934675953730196663378591939378236649850997144381718524859576782913562694234859160059412373752459743103286512206551581686649734530897121194849961687263616866838079186961300765520697956791755415197253661034516648585262698023313875236128477685523340615286522118304129470379310756673097833334739768458037196630198063046620887567395648108555217698839197032887328081201144595838763044710320729928989351696865578075223460018404575544354437946263346012084083960273937784869990146857204605137778410003827741675767339458058749604568764485118400572830595082650873176239359171016785410899028485170148672556126485295307102058049683350058147316320567942301414420940163968177177650895030532418427679079686075550707417907259210043663933378406013595070267995097996791791854506150506643336324902361348800411172157602343996467946182029410784976808221428379651615029436527679163820902479849320723856713797610309234040981817829391838121938566998771762659855261318003830417345967011542351806253402460787123308324730294461017779022056379149545810949427425637268096741844033755638007638003769920146999180942855374966267272587014960286852476316023720303783423465977805628262364330403135750086248614993909436385956847126188154496589641043905487285854975756959199440438554169993087428461310889244715272652903733138605949675147242216129197582200981277653094024741593814535988433286495582497873685900412150022793852026378563880409776334566094611537708470342512058830153478035379092293868104043095208238509695710599670655938501617991186744494432317865716183954881289051576853831420681460691035452770520798895187785210009663068518534698593189058628096052888394127541225296710034265802978300388980564564385829106979513309157552755542388000187992991288846810906861518915391277267632498803827697860493147167148053666851477518573619007649989343548206577597667916469178916409487134078995714395621353586055050157698215690286273346560532926155769636793404132240757742648106986579001894414840057981780164709514375665503442597938507091793556705144580520458991891894123448783592268542161271398348457197979812272761587304694766952162618839340286861973772601602121390604195719232901890006722652320447300769006728487022919673158931350338427255985040293412610660107352472081196702771076969471438571414360539188443181201866142222316443882678459168454078609610815500125212335225742376272175000507192615273028323221290652911995578902204248921711655869814754331517963482850324920304683647162719683740491986376965186976198897921253166944125808570065854167401729796544543747708339846641164261007941350086157109565043269448576601469895958555385040528450047462405396304028542246099074827380133041593867082560236043248700174270787258096576396444033584657846658477910355262859144551910860384280550491791185816822958391241204998932390086153784751893544357874925197188777544140635300355742534314798721880526329335713145376817428829432190813743429189431245240700880855928910231425844521524285450328537249218204890284667370199260222565220783358864488616819762489533930443682854595805070116914804007265959033196491385280348139397958513491707415134083195054055774194839537196518404421494141151906735422821817369988536593051849019062331239285270482364311542466937563957323342805129880160703569878375589650055640112191979076952861201185323758458380112051911574023331305856336728059483170005269437128998452447344551269264284703340376802592342740267725113245587059008216414749329801652581536738443079832534994037885851047234090800837382576258817750892889069818877764952511837863058232875205906522973983908630920747292940127630047933023863357410237071893334694075759278691264441227089461347813597946642455076924211152455168803348242453674607217517286295873566335963208793548434235454714602467833995364543769989653212765308411023639284990034216329443294194422418512474765090425471551914438658645214719143320065715762424493837430344069917872833146394891373908025815060730458816424842874304541996687882341084409454019830170013287577021450340092861259590967981643178418767105058552532370575101447032993075846455358042701034567200577558913888065520056563666172198791899688374853910932924094454230764870876236354965182773947592860348633833371573505150876378553381301522236251010686981645050391177972023973271620776232714188427511104872236579745682295986447039170096619130674107463145953150139230120379566587157395116690525740364924779312370399390503939024152097952341684168565256521758723840447217695463520248221335886898102665804359969377403153236924658594398611400032738148752195455498789253227841714531682257923959042504737955696039854888984448189324013461142410640748675866145331322993598740628035691077122051867922632423543425565256454888817780263801685604956493371631523715731075763775356593816008792760551959767973452490473811992775161766042575611856638577283383681470069111712655265124554381794425559754717657350097203573575320108610053273793121618803167683757337817989095873388274227438465906531806627749089047147963156904207053534490757002539863378744380659581513379762154983177257584992168384820367327359536379135654623349589566679266392043790032404127754841804400259868802715279715986299375449018063847125826957850770525044330608646167368802691770606391970664586042704541330585836572908866024623467747804827818831177330517986905177946016121233907893512301732324781177184260908570149783776551259090039295152027792294257524653328969911735576176465639475435312491667891773476029114538814739875418871094746505150243448032864705866143121850665275496080410912762853863685667620631644991003588716788169555911130420722133998996926926991655934213335073957184275024779062310591112266440224761669816826607862227470929634113442291314820854795960261901199077035358236351782764059014720334915877350182710629057210792911893672445860357246601623702459892466933804437277925715043265643219933454857067116971947485518246148460882430361692060359702070554145862443462676632726566516468207947315610770258570797753137404191821076577245703440513878704789288106723719339904024008263210822394944380161002565853918227363559539797906210051711837376108210162811478827263997406400980230211914014505995879187847749660788066812414488384954177795121060801157508123454379029899384818540692862583732714690305136236621564517475979378399045599811373555703255655162216163967753837507949140461195681468701476755388448824458756144513694250243376387046023209957047094921054721932511170180980611168477751646174555209446176660059601027256008372502886066891034787994444062065855774275387736069926955083160977956499844025677988158503814212233775444272718457391222774183666376598643672035577514587684720570029062157693873946623087829939958490623404914082427058862314754009609125773902988674733900079867753981033395213626572869256824248590664675146437292001796113110840238265052850464976164285159039831640333435888177060242171906406677735424916301917466011101676047631914347008493823836546901866200609088377160531157566765815515372371811269910741095319420926692561371073936114796655680550356211767801627873476440243269865493285795015396000485216354355435751183081565362933047152848713139494707038238393162959685635490773148924884756431769362668226725627158096035815602571950557162083229609977230585608772378656527507584427797925703356671208739175610852784047434157692739825657241462835738097994389858547680176674990165296883417394881276672635502786836282017336263031564952568545356736128968992215582086731607700896712042546986681927761906386768749458784264592105274437252094414996549518679001952198645404661142581527684080353399706305619928421892044336648427714635890586869911352239233553366799993306946126962046110696691700199633919273269622875330353249545527465831268847361810907143873636360411448229121156023709530680430064593193969839469992704227739770925754515235248281226488281159061497410047941169468654719950982043441387259806141255626038741055443993081437908726103999223315996600931425000633125428747861187408360994314853793107638421214753645137581504317132799784750426379621731445066095028992945083039302483504391996072668340354472352712221738865976994003445961045978875705614765359629814704678009745251983080630351118706198636921182948521292121064245233353964639374300616044312334303319695301831215116908108048260959894200830744560059739582107697125735412148759973527409307952171203791738512396758216403928868820250984815003382007371274850223400811536029483964619333637451825371318086114842773714108841709700694523537517366381578268607162024091658639200208999030972604250140066097034891143522984938497564956442980521031921663812432415767158063836239401966647304982262428872451055947013968460516956853262735647677917216970495049712753108273472835583059400127925409967054827269396096903763059556491358440080982912122365311885163471577132684679661022913709589955739701851755038901019984354509271886895513658252440159133407767748017446384751382338139777708939662688450783464399090384495090727860219569153952860882601801646476872283271909744454149221762278879650117757573971603801867269220972849410242206383408745596078946225125636674165630767369752202663046556795158553624790968768822946184224255786929627527214078818861430999096758908314816482145647438314076443884651522923433440308560249413103029318125820300423477021676090786539127049673120966610385373306982456647007263029286240189918679311358390188140306402890954824377778052311098300263817822409640912537576196571748959937581553084865552754439892252945593113524148994484311803264399824816905969120473487329790594826939809012816554859716184806304830827644058138198100607611054470913441231356756967639964648210420523858407927168300421256305782508275179259941183939633820257372318134296990310864291592385531648256491958284773070092819316345780503232859353143928107456269688101344686472640442851761357302750432120183795341236574629964789760038303164052783236422085033346781066816109114043757206639201351863961428876638856209098393926138939027345422949912785699700232255753787487447233822994163415991742938049877471267664148209553462643612249350314325863763515339349638242058886871911361350609740425186900119619882986844551548733180528629005811226352488864345231987206768321881135720176807193851703263445820499042683223310663279525672693076273303546439050816763893068620657527081705829351276000026031894598955631550441554771021504867736865032721431270279539159324151616254176623128279475360707301387483894765373199369171173989652726918633167876392214559544512860944089826100117424382230307884638759494082324960826335017956635226456650931030759687113934583549547352174602799321499874685155607978011552736290640070567884347421888115649715659461224654525583285942286232631626480412509971527924081713995004215901390196838466933580146437877874443806924569996964864581307400316114125186468206412492258482398900192620117410383792310658112131340364238202950902315873469283171728828750588807067291241585794124973703320173503875392551829194613113192396535331973520562582532129180580603284586138552077973301944812609166750446885698455145134386326982264991937660951804509646024297569333413066339327241233329729384429641982041816030291500515839042649592849907671552384953052234446960750585998818108989149364875465811572621369997754250162009029538451699847935566608067352821912520278671414443708383482479043112876586932407359984642656889112628524686803153185978735030513837450538708836115811079379122153362191951760778452817878400241372769693774404270426781289828494534432530500052881288428415225661641819084477804380729032885436416202508823075918885052882532997875917841115590579586647865641036054486397553411436510088378291356624979687472003895453318823122035941221617287079961054068806573224278295897468643542008120820956234793118746506584636387138225948672117445655384428268733915283637838646368310214336819595347549569331024303349810314710989907241636591775412642542880022650199131385934615220899249378177806542436234796972241660410315966545331385165846716196405021809697276922061278945422385986806745655466237152313350866927359950703935532002526349501263366258727772051478320723574184714907808949884387138706504213442807600069290610791041095192957457252117118726548147987471322117718172584775517108240640865773341240526682636487985084179430749988659356901925131137105269986162048268534682779185021166087912589640534018232288062836261977869534499143641406328483914029763512076109773828757372904368999160790036062170056734807445002500120561870086750412100008012324454398355185257525681844093286499428770421486296256411522196381802117334136796702131602380017087525232823522733334987534770803600389572221974984464160712883735034847320317217872922745344234245276526128009113125126204691731909044750499245450917330105396124113528215280351859882379680107286355772960030585605878206321824240370864661395578963034826759692925838967605658405622941343256262108213525564554782978188802875657851579877952788472508920625962860060831290873858458863725893543858702559034811039623944154685910053888904334538090683281634431882097618099547679964178768277598355244712817646861661768304606503734916133916874915906478627706941405601460203863443762336574295035195411385863477073292395409906180546260318797114603291349752980590398230160918760387110378826137750937999580935496493890495297158400029156678593521670993021114634549985938097673836464153019082079483874273643160807019396842347250877234013877522806797969454320743151901244708027850081106830801650916804493550516902813456308720594697554764260215943291665017044417544498724318955291008107288239363769786748020379273614526843215376576403933469696785920054289361865403442824131948006892310556512365127569731050750795561023308067893416404368662066482541170513407239187571392716167551502711833299889068891299787741627804532854984435946318916022365314242584116265573356104086766673989255651263170564302377744514309516468119091198245642230086945331041095733659976448953290703909608604399031306363172088040663298138389491164051206264412051477908245223955997788635184896922798897805219827861993405942454307249969017953694097404049242268745372282000517466746564005733077966232120766941455606446884574008204648865833672319625433181827716203276311452435034661360290267944960449242637694883823983760863028635612115317508173886035745800475864086055043698768788103259610933142461562370779103053483915334294619065647895845013461076138400721960382667436453777723828053190903303613961570531675062833755661938393432910656902207568905602921155301547696000790192495358311946655063868184602472634603865517029890864112049975657196827552017863554847645090775359393544056251161164674711553025366791315054008862115024813053034996445135222119097636004476387349917383935988534645218708706885805792310291081009052530912572138514682794208635878429295502929480659539918521312562754308508322872117199781766788174432082731202884879788942402082273904163464346050165727245631674541989362926146464316657849710646388548148030231265712445226548727130774674890966477323057802147542069572985085339517601387634210977312670957138461967903534727835051436103756889622765872618756425802723083277078343880505450697755778094077485419236812986902471321008331850616746089707900104928118180996103614824512301003747517185257830145571849782953391035394039430681747059373651699030083757692130157007610762970953547503385628947891433889351376554072623029183164816570914555586580396982668216442201871917708132694939510768124016078730867811392865012152784987948900398701308761097233159504879138289794758315489723719251866868293701265408202545129582339054036051804794270323532917164762948615488670776829263498226518072722308588472891702450696672432960608481330371627426309307442965834657755463830350269932468250501968924468447180057807319284564332850207162564409541534493583865632884019893885720721386893063604462156956986469023939725865502942907287522218708083729980643199513344576913009188349196589372200686415442101145601152155278438775631646913335599091743317386766707869228961195367016917745120197596834846658800425439328534386120407868441479684968522719462624396497079017639540857176616168336670902131770359972062606636029385352941712118657530576301944778337024463892732046954343388631759145254215901845127168778668917215529242968630648697048650365229345371497021228629417721623834356316200178271955623438077613748717622718948948576432160951017820789349228417574006214071516545477351411175895570648538200177410652436642420407006727037336787287168913940489971479730193019393416303835652545739099139944369921559930576980757891067183803078382150729442056069876947435137122670218384369644632371018052591552242198133145706948346005634470616307870981952693258961966628481158886808470367716697817409886376299421684991878107611870451558597289925793622339757947743335793987915400091499569564387884845441441501282005552268300527393155467948290041258252654651939070573451379797506890470484015979607259864757170842478763257069345869581555897808189412968628788012704279389361642361284751633475868415368860646762972146342921480001121400540815975223506353285373505052189695492290915013954940992767435265116846526397121767515220673085596745387420265995016714799649734556557940859888014608102343518070162771706498252373550670845936757967471116587726892030762383097841416150776560315092037181894817478423530960415187281123210532308464472941231144155612386930776157772106141055346495866548567305504689324904525925997813172395143231068689072654897687766446866778071417806746273913477225962732054012811682960398354982337763443073670396347086322417180010572340203608110877535959218422536733084499973802263819322177992501194107675757894233263183540780213427813196489294759613488222161108086750159316204370182090622201435733299211135575305999665126479231977918657792327502100381761484048873540272374687163928378227036732273135034310347866243651581455095511689940921417467718280462656187808153064922825400963651184149376058881012940724721917545031811946265091880649567759581740493397075473475159382706403867528173350295362645741600543230185320227909744644061901115018126756773701053287822970635573035331011614886238800038577642621678208695986675774470493122815796274958751886382810738020517137831166129925731634046462058969002769268243327197811977494085194737846967221281164096923584577180656300172283733497802299933771479161394126484784325848133399672386769909147641768863302112830378282487623819502932462424288113087264541960241126481884930613150472008720139363255402384916502684185884033171491249116292988430775957519372272345820644427468198366115935602580122559771707096182701781442032909512385924238968886441872523332112021325409487475824609454692132902216920507999232962701614299232658250349827449804389094703434767460408475170819563021275278367205231091955702301482055539655763299858873647284130639977796879386351198949714069976494703193463005304566098814990637601133259011576941762611701746675702254260119579730351059160862021858707383787133656750685247943942409168971218291922349787324693574562852976918314802979164554862779200591608129427664245855109549891405441737408666801805223945240145366389840145929702636131371951739153167682140936325055940924987747788710961548990266143374553842154176584893191664415454851484262189790211138625478923987619348976129367010124582241226988296627262094370177618741300062707104399060007474710799667539587115914301214276868244698985493168480553634985890026214544344803153653934103834753011661865909852328533962392854594943202405107979188537809786636088648103277557738349551930490766730121164393324425936686102129217991031488146328634143064605587723723008702050802065412416761421491882384866424828956962308188614687605161950880313470617320510951560964593590316028630740684424667612292828534591711340562424255736633477372984805091391642327482335452869250819093101115164126053972987317280086392535853670354415994206842449788477265585202540934407759875348523449111400477498007531398401284087951071791959340305817555509486940380833869766461256295664103162063908252305287195229919667591553305902600426676438459189626690660725339480514817339533055931758111349245412455793687650914031422492807309668752119193467395530714822052314314330548322144846370933715968711505178141560638733176476821004655299050090642178811365101048459314591840780572114537916509594386958004280026207619794827667621204001688802075350932837061465783057087462491057587664975025420349537584206028291540087566932047745588344365658814637417743139997009299521000008863264380742981895308341710034822588155230692247289342062105345149754129680162626638301437405581772324034039024193568710826689783438405609953461534796639759594655532001772825293637403046453797577351392638118140635446139702112228315674056121284618096136672229223578400375809542261372177604051569961794871800378669184291171424700262860157146964392273374758388022730482224458284747012397745223481648967520998621999832069975671323146521611469140984363693432938588160752940236489916882183417946523989416126859987545468380505808955971028241879302842457599476955094192127275401719222702347924768154380005501575859535453671246002684168622845677371604555838719211661551422035815104900602901265251132932978868923653789607919945413159605801012948736903925662346813014012824272777460080247609213012726325360501728270769250251644422622464076458429331385440111245195515618016272444525189563125221950599988332638909265565141642928248693789758091553515550393100975033432077155377139307968858195938035692161598840140210242392419003076974939295137162045937282643557981092528438708310250749359444200441032524399029262845351743832527278981290079700441139975707928016120135234807635927508371237681075570206044155988647250334480693794315277658232221463315769184999008894069263248896178078777061727186178598138521725003812179843282967091824596086736174858686302245920445680576793734980638829675273873990925015547493432545243643664692467124995682531659562799404148054742337674817602185998019467320712489520470004622156168045267802300814723469151603688297654168017229746542529802457038701913988220199931652996587026208179059942248107425102141542836127685686815318433796035903346380971412332807625869382124629341497902349446239031136923279954952081535914588612250074847671140716999215690677654634666235634446610099052392111675200704949524022360939049485606683051539061737910436817377121088477546351750964519124315778695028682178583373437935111187557492188911115909169992178787432870131914952073928947478660618885847109705941209173117860332742421284574297616120350628205018728127625000897824754103038154668796947637315160370768368955281910462304362490910324535920638085327410168780070524990789263721595563698231964738493049205660706098423530389729219548337363766675727377667285365294627064180707688088423831341254328248383343420200718185596037886614128240620648356244511535146613127386717988305492925284815909983813267964178831280733421742407363866843799187443065844259267453597489938052375243649225433082977802791046647844412080148509379478061691870679269144325861562633975847937592080924706906079788580049216239270401084993955145493052210125653367730681747793191326303529739590282192789874215477449729451387641617074189404638920505707579296002059879354627736650020755392538670150945919307442020510967646951972987260862506643043819332220241720787147248097497424434954424240325550604009439495735713965808885144881985775980955036162202955571710166570750890143184372213064108642918166503909836745802562193194729885087680363019103949781234401823483857586183956465877359001699895447644702130023267699424527058824267470322852422435059999984926802901760761318881724756254810030224058334688862033700492633570871685328691929327191562255163203035352046272469838432165701217468249997013377910179938572596994316337960261547198758802171249464478049241711696784185985797882318072101655619122820643801885464886862271978074707769342720034673642954197738194240993953366439677842745336421871726615779576193712245308531100273107452668592608711910544478673336747785725843383492696870621121320349758538919463258252427700338026237100452466642596549435293233538037793444219516473731613279775101735553522641685299708823981010882452440789848444027521224322851899881875963811535651955527975459028214402327102288282614921379506107898023658295296520589386398368977989815790166492463518844916481779193486620839445597492636644165968736762062568701452595428082092533072825391635276190227350718610574514859094282926240730279933861261401265017227402312659499210064504823731980892578206676107970326964703085490836239526992762355899085752635980436491547204368220221880881928461821842220668279143918514005699182317226671915149586465343235838280481949914542808039055473349780408220457267059673859078282513232181206694657280320889322362690377362861184846460050303197116907358331712087766678482522125332655199669242910083571092215849991548234240145054656537584890308969685527685972976709947398715582780891185242155992123158123844031971452812123825902713360209347613445779122943343915953017082131763480029237911365985317666792910211134127761517097643079351849339280554611381308836842440745383899785267472019186465069514282418061123027953842270062744544921300753998430767615810277915231140184153736847394267649105799251514956443549765555666635215281242996600939298437514241234806163003955183901518348395373322724632296418186703574936097378619222399590735535360818827885305552045537626857543760131955331436565312699694056478939394597398887134650964474831777030505060286619009210113947755013423285663056849499416199864274306562379759845079690609815716269949640046088202887266735902373368349356183524570487416832969027337460677162923985588220907502192352590333556818627637602834065443783601555142482886724460604335305973045928832337723379075745420975434094402456545895812745715016327304039395611856994274900458885751778678382185817471365270877888202403436767098137636871177123153536123563317201976402364517601552510251321338848190770114907441805206922990687633831147729805996779195798617668930508121215840809566110971352960214503230354008377149698414849524945818431063773387358396351345913654408008809414538275440287114267327885388621620416076072252784709453136077716375800873568062766470660664612947485216997590157114605383441075085927709620811185982618091303093444177720669683003042738962631653348886398226928466044637779099396243666580962033842952033981491591967277399600513236956110858820496206953598363173202057416268545856345113567510880397144847638430205108307911394950579983866999081089251165507990570262186735117512688734219814289510369939031653883494901241687631571935946993735016772767713801559817610385144095509154912468062417642219174427957128062422259496873925635854005501749718717748662382863641682748252489863155096189909736304117059248384763586670135032497864447210300513062270136931924384536045141930604468127928413185241927498154898027490044196917450635598338256506849075008754803918588819105165383359282508327062124915203256843008138639842716879657716476430803054633094336691179314976457683855027125283158094764722798827091984083235123557360299436293729577319599778208752415791171766174232774598803639129846908057337062736644949930068354438345515818849493877472780836640845724442201636667915578478956592093756956347567610985357752255108819495687514352863158767981393767272451268413635995083214353908087887824629414817924081900590887491462942765182912569515752925923013391692703598041149485017602951979313045002426405259584185941491891537864001622251770756830067474079937747952343529103485047257718541106285386644489758259634825615546978553874972193198894743750846606365074003660874994798666025468731012316464954025406916330146707344684705029942988754151855581036106262348103581049114444431374807362480943562657790157465369730017920615915301865447965332709758129137361341381269643620230690312367081176293986761519161677519437324393959918013892773090736042466279110223569439839764300079959648263044418232382127571482520424143484205048876197438911810398158874777907967484639619139950205869744970855356383110528337751591275330124358288992311802396381375390398107108010504882521284222582541560066235873887918722366617379769146968243116012297479326870153324497376213505449523407059603058492775629278382024981742487255523445179800612426784308005973913431131402932717474355291388987736298779254165929425611750146575243771050647086034695283679149460321809813213273779405889574469637650485875011610926978958293968040063721728201167466436316147740553428552991464204165735278474135900865602151350685911085477756702789244653568663001064942415381355078064682765230458970457104002780176970693282128849166345420295815872976749928404269401206519804134670857122399731675714652903316781575274904534128980003742828918929928837792143985472416045432077456579176139088588082035381588236348418179305030629128270112899731951357236742487460184714570587049463548262774018836875214906899459632446641131194266992994598618785185879444405634053458873227668112034376174095870551649914533594901569809851958174327033836265785101672243961059987109569768495178999208274248463418173237407963135185110290373297273185639556609727271427000910192396290297391926899773388378049651191498516023206352222632844084070762212197154103648110049585057734296912101573919454528393761670264544618371806227443115285810737656105787250942036346209786257401561841412170668209814276239133856216255509887228703217654827548842544927594516895839771367191009210156419734510998161590161139803303551928277153489769459250027057322539409080013350935073779528885826347891035859693410446492400605587833134917735982103305973375062764125032392216409306595103584635639994672333736872469315716415619556391342206677037246844038642559699648324624405070940801528276595607482701859813684959993694642266934686593971463304952981659364103498953878644118863622022126354341592423753907108855852870371335965459752545098326048587652421890226433080734927443618989480617019954421768497289607980068914470560967435789330778517208334543686980488729815235501843065526203458390320256201886038503347997548937304737802100411493223277085000507127497152704883447446438810087590138841882707700230556328691178548841648636858011361902799895313952676686640911685564180485200046349524009074325474696258536904317826832726514701836375684527121613885064250424755189441917184757307279283946692085827270258373940013665471618204709342026870266424106082656713087228525100733002038081077060000122816615605814743116877451340204687307444268736255038680745709148808919833089550131704375763293863428295432396492548238021459739330329454839148745338462773144047593655973886007140199900196695865490498571531463055715998737601231915584297211763037119917346071551938797416381235496790717958329195555871492955398206127145158233222898797972895525411323811218572890714927724375252461307498782907202875904497022011970794724728347202410463387041853518345099526981367556019125492068658856148591395824445342244243817915302013609425962956130486232468104089592248575033579105907412101174741428771172784441635041064361273561596828880843571683162078807688155384197876930669355842075992929134699855769980353815902443867300699232504705328312996648715090859728642894138160817167498201470815362251428342125523773361418557100256383977405694298728866668649712948480614767603460989250772944853414570965948361219276233070418731730218727181234148255275234150785835197004626719433961080849567682087922737963507307670160745566216005904677257400945995582962928945559819489984427184068696382559269523152502883590084410004870776007400722133512179649944349875953270403304765859969074385181734053085906527107264709359954040117858553730416638021445588933026809221066428825509561720949360676751050732706066953370570248867742464124097599955796682050585062756649110363630161239450422701373014941827579271946596510452148576101923339795838415906711459998647561821523222398330559733096346592772159715905987741073352525150937009223081156241657082170752906567466952169808257930034344071828778649191447008491685585063206745836495205097365919040690311335633287635134634391771671962246569183070855984179501594258209277311321008691736403202616768378619360751289210249344354959666627589437680350912840020321113994170222004175448544927645808882189565842006395855172007476947905882110314978351139150512138418231213904855832125345970821261956645250249200291143711639189757232890058474279946311313562286123888486134085422865095573559470142862299498916615523608601265129500522952979983954072081142904081238123425508122532942185620228495035291085138718263896901405983646773800214168134858284930247042922665385524314247521936866076422109440140590889451282867450029682157782490913269441190005735426358376052556972825664937218764143220922352791557972905303632333976503779623313324228751530826145135324261499585490825618098894542279147908938842446595362793091529056472095998171301057278833214993043186182165655593927433008181892604804927086380739830411962414794635482056568617347570866190119747522000601629303002460098301605614883122238319417947747966179418547574393278719705611318098276294002834640100148995141121241084082355484813165973911791316044608864910635605974124827021689658158789665087247407295288030011137345658583623919644521792919744259921449976332826815607788066542955247054020451805187043489174040760448011782633645096934979292304325359089124651199367082935423990017563438326876418462522485542881125721420598267671285758586993266268968218178158637600084439717323128528605424534936309448634064496051939448541100363794194698446807280105131988806852911725483349135540160813565622682359300665709354614289594173902843844562856966358537070087807245590080242314096775126514612591049921915159142419181684901616835643513416657392514993980731271059487970450364085234355720181156588106335576133072425295336526808219131435670509347041656097813801181743297361642401214506567272518121662376690550967998272375385123975320671987050052352192382000571755824042093512069213913331863787874041003737191797504494480383544600910175505068073632656342141145971824427154353014996894588507045910766811931757931513592521681794572543868997437519824029566441873656898194166055942698601844097640638837896260267415710935833712036116700800352685345110830494218696881994136067344239494306586055214178325394757202042115035762127469200445519720808720876062314697620491700382641393406306295192440581869152667711626251939958605245531007907844397813578936168812408163682706583015659430167174014064925667280362463107186486387028787162124919241396219760100173511028867013857064615275121418970453106592260777044919967649020489444073164193237369589197592029329469836303982506371371109282454750784646311071119753593750474659783232543794996599041811795376682972159264240402970682527633216407876152821275058996224651127541743756257358969390436107126679429769521681625124818938386197171907397416454459066836349632270055063024305389894977235967466244981258366886101369504788366420775373909997749447789449643388101896062657660929126357690094857221560614359887079078408891135853768314609002398034123108816635092743365514618755801366993778886902031236937387372089852004265990414056317584305725293169443100015309194395859399971922618449829203149394769567038549793724899566565466347383587402749788605364474238607448960791446352021518385174328199340471037292164512425747155380386801180171021526273605891411970922122266451690379730255254493412440742406458906934351434771311759995784135836266868257505210094338707052932094864240697978984222517007739721389852557688709301860465399016656356816830973213839472337977131191642492169843079274128517903574883692899617805331848165542161445320616436276536840845464656816475865966420530118816435253089604036941672251961661243419245592498172419134957613273641302293909700899119753776174898133002214886941071338175297283149670878809700808859381459436678997318393252594958879963222305837718375867732862831553757252608507000552845210582173538152654104060557056550167080136720072404970275486922252177814641732118231795770812999553575216996679292992616503880405282225552627691956787713610024789734158502327406919145881700117527313627554635886804170273131897393696774872056433753739333424967043993063009618172093280848254923540014367789421139488269545417138600222761156001086247802235427338091460681921175009965890577686991189340212376287372417424487455899557618448332299073293239282386264876579642304664651047291777574869789893055509245751810637519706617737480932289149734075044655883384796659219502878204638483215330131434949413531121026206159795251841113666752724909038113383910012759917515048009793453192580149844159419948348142657129730309312347192706094710765327133908434486047295921782701690153619394571048531754077941563206959484614218677962325483988498526311933397871944825294534375658411232817648797223871519392128846690191174911513065533263306041519827367557638444392490935394740658064645167712096535318516809376089672664203243098648992853409065076417939540956537978741227281945023614086424245461229024053092421968811690867311998533830738386775695681867769024280528272840714230865294223052733425191787299070399883714997261634146240984811112504684175566324114298754371941742629225667226968463055806753144444255003495037932347773559252225003290266259385529932417856945416152763090123333268112063919549971883163540997511609391070502894633200247742315146442346364145914415207198061410965496347066492683361689957858097242263652565608470310868556298455749810992982712564712990937842487783349571671354935588407193253797600325166400218556297953240936867870451557171391216125867585739567655209450030653802867708073154881607862868732450571530451345073707944343302215306798548399009571524806926710770238106568241813986178826458107247283065331869978812716316742799292985992821993417793258913364417660166491686591732701466578896214111342010761819998620182869332493394338772767749005510099962423826087976830103070569589966662995731452557223562410370224292418627761041933224983974787793651669506190272745761158547031905168760129386666152800962859661850211361887700135754594595709696291156162295895269866815021062638239625061613604759780077823412790398683682765069848982413602425163417537233875129568537830559704687411446117518558732938774877704180385988062343905435592622459727505729318683650954373677523956670359780402625645094262888840750119499892195933976659910065660004355272082010549846106202020945031284994436809743352984591553226545022325374378702050450380590035544369065791090704324537240191016870301401642725354970633774239862674239170203194054967132291138095577459988009886742909304992676858788978886710874559797093240913954802483697855959194737161059085899426222419358093624884391834544629280768682105862672678894399374042672187364475402787047521566520836890228188897346578806593396601205584929009307095602853770459151405261950937480842431902388809982985869356602530674956110054007059156950143519538358903002099673922333234866810664623940445512332995271010016427538815092785379543533623535476447235058054484077549316168418399066744268527190847212825426509289985530710409644707834721284349639336177570339472056546956262731922174671436754819108822506788217980256372680856949581288506489154567553031057589332000428522953974465605150915051796556937950774107786862727569931592001743118524150121222713526611890108439036311474557870634587227613173234860649941536406823997320445366962839056382690725934160387239182448924476950177958609581055878582587740573534802758935152826842075815744992993236474167968120313374714233344704499707787567173059169384181860064949409037027898814104687177936366201247618365413568053944503143093953866073198901275705600347084187206102957247076431209424911619148041852541465507604759398664208909023615836416267363014134034050470438511117371728502995584989997150778113686274967751539818590203396968698551093669541387528755162517011936067233676328926454757363341779883369145226603331211055012192729437828443562594520960383571197739173231579171357032192083097063712116336545496278786847503277603263626652446930959625956481077176741965946591047136352894542612007628331348958617632558457709351034626709113364322301941491810419459843752176292093684045956567626290138816364400911346518152781227949435357064775253592783219382394286082522525819578476022777253145786961996440517701973756467815964185053760521770592392010275227075484536253355596827982675939514235877604087429116692156274943332080356994731093809413829857737315244830833768104758706950005212628196644954565264155092165105305037258804573389575306933032152928289438972946888211998203249487590357719621444244444988887523275160063468734265882272894239676214530860097513662582636171210966428874507650385128018644091668713308412990298513900436215780854650826386589372857840428033776405856896323613947432286715394748230491876349395033405272399420160741153985971901614461027044169220809357171933206413479454896188515596372237314676155185249908397500317244750828783093706235877232112825310736100699506247692347372686831630454351050073051118528672602398152452956887854884099051873986861900810022413541772528760269136359845955281984872182302108243524582063702166040432282309905022769819065481615750342267497083445588858037386279661451852275084503636385863517959827576494848497402978789700412176008616702384387500485176124227521998421748985343852648366590550060959221589364011926487232740843438330371915852610283030967682770667684834808188655348540994362635303475797684121168869840253339003516844097395129206475847535137295840730883682092313005861280095954339403642600478345893306978220473324136583436074867608381304227583289934322003684337673941081461956608510912097775814159296375379142469736902110538814903494933451192481696745297213283542727069471167978820512397264568182818959509642340672604863550047269884730090340370905869605159435872616486727148234414476229624243094623033277390215270286768438329465457247341973682010753825302663289792358793665311761459904864099689577504296234291270582457739482786110937066474617907041343987012740583276280399153586648953558624412614631775268279683023459728324075360741899609089439375566583942662211642462878514956456631288456258669753928897574044182136096445486750085185383988867930733087868814867306620848976716594603222598872851762118798543342032038774985603509861521305366362698504391290578823982061193004752604354391516002452184389407164608430470013186434413765584359101543247293215843540305664293810485954277645255508882006746775418380183006478743904624621188373293189101829867363280104248875851862084365690400715667111308493590314419014282375965860001768888460833063494816476126984545093370407747929716000670997332286504790138601219473279863474280358403323478658284265378533462167380343766074764459786739664323475991088470827757482665664666200121164398757688479092683378998728233338114407777934111742398227397796305612738642677853359731707547091386101611412950741473825635587927931142403567632268827370667672315931328198514175833681724407149903167212836274012189939780142447869596221822935819419996545742970380902197248942009100980494898464095219759264915502706688087703651536561091088744729317813002936802102682552635675626674772686265086122152136316944367882110917114831596074588811506662111560889201896579172644125898653586031485738607956228665993420654959680675082607519464524222473447442771372777510169682125283045160366420202475669533140680543971719551927983386025068004264697923421706552790894274635044986826739699968419191722747696739197229882937156074260298567647979654036840530417737868159114193605106126286667077732249708246007570445409289989421125309706435849576174937693132648731126772730731666735541331661428192156349059431121060683168944376967301115398644958981440622508122525258879426907198227331480990502681433895209438891186197518824145572019037595950015296533445116559636030560512345426809895246165705754899560518570153128063509607703982270050683757165133112914332633099090943866373748126466556931511726947602873512604065380575735724920537015355485593821554468828638432388062658699032909386481737256179304304491926203415608075938696085532234811861411029529313686432334925118014205475366532830607181773716449983190250778221049624438114384440060130248510170597345870631167462358228256816000275175187204584447826709615800249885484216680412720237465801457329434063847412185389549850792379731605908469041237294039683088405241772739204476449271913176976220288375281845693915575250054141300576061566237990123108341351920277269730983086685171033622579244323687653983341176082991271603848203602181142505387884437838646596333628476487482564085085002514673974169345958511175264775685488029076965067990224753036481328882432514061810728295217248983747387203508109083708777696599171706210766326036125461464424728275792135500304348895923742326539652547159857708315141360093104664213863308332346240768654789982618817528128394599971409718407897159269901613791478393364278623641402238541684242088490847703764345674074587425103445302984627368447443564022621003444135688854409269919083552891971718848702053876328443485511189489652744846051404414148170172190402736606769932302523108052974418853227364814954831608331947749665054708886176597677959443234792644681456208360103863844593408898152372384072783047932605110619083854389150853600988199727534143305905778324586530404876198490314470045370048786470980859414051914206788663970973946961194205574966777866785780111869845942414744205218806984185645432429021278579888882754424060107756215134754592280537208797211185537464101757909212890443051079347902096640540930476336256134454530422850141763459277258388935878969139916593234352195338641640184415405445817289129033026785389045433968673619628063322955472779141114542883295961446338309223786381535513731405550111492620685290675494965920500223146815472589582529205166316629332785861218219934531026776367178341351322750859721863138602855059439038656926874468363603004335418443044559459388494674908308698881782929379447273734010696104066864404132128987736100800795225426486986857842224054461157916181665662445724111630449603915202170984334640343255770905412033081967716459561721847427994592811596098759496060606718082394021304968927544125935648646471335762400005065360224223739844001154842916872684060732007353620506647305390823901287850869459641209636583044140449256386942612493863406856145309235076641007216418384178928913251180839638477670883873767975079220740072563100591956847282684864558294316540949481092633100382489215417781352550544277489353437204006752207935330920760201420787666385515438550151936563893513496060137671424877207367306632316564570808253457191577088762401752907517680054354370697064827785455939632552038354790750403524356651027528018039869465725813933548199121225210948367132091973763807602239781296157058076651968655343375415938811826413405496116591480293866578006110326024792432945385161741314957619124509263430568382873130270654326295219971393010978457824004667998771076011939637935174726465630509542539232381810828139553001551776034376467001356945463124057806883222506690666490468466805775087224698888625702744725348923055466697385524861262294795877019272521187322067298818809712356859263201503844753383427422871031516510727518508095731582573975091782819300868645985613951853299552035254827478874609309841984007652630670889461732535766064922522433029007165195904310151210001623099921075393090145790321804736517450966898058398892412017491217412249720322787728468094560035871221249857165685864596432309809683602541226122348178568622882566636262555747455006923033899462716168575361947182100637797151394581530733505997072175376892449969479256190598778358117094638995116643845594050461568592686593333673214350788384634693181214427609432344503044095141186243790416852084235887685172324208781256285441805142191408266639403776818279661878363994777521811983437242081679183053212937912834166822834214806746450817696665068822456154391235013014563026817565295268419891899360921093230945057672818152687836477738759793116589742669407446609719100803069733235711161039610951903936147584630560257759734500460293702968619521304318641885844136304810560018169664151190773391063821795589798720365130683054084342641805106484866873598279499400257878874677850700419828247283588033629608461198113205719270707716014508250355244376361495612823459567859298321531684300885075356742706931861466364839751362363137025538885445862590023162451308411219617648984418449343961740708697459711741927409123254323841024845414637324914925735122715496889522480734107188222781351902775660798651434689706804204824884917722792460758330049624224315835160775918572483990408516131867843925509392485934387974264855117457945593608731040818259556883402649759211865622165783122105639748978473192586483169579421335595476999431899019221463871875609162572756730528728018637941993889536821475129466604435229625835323018262540740576685205034791247148510337489568795235885894094503961882026736922064550878008854352244607865650341978007715643202013833571582331918444072636085481048476297447316654430621909715802225390600998846162991610064417052333456111255865361957680075171740099276717972578499238296154313531416910598104002930728057936375581519692613275333799081800851023375403568027773491733554324048297762820308958253763105654409081496482993170797665231994472198328848504363367911142657179853733840120664956561715387465033869268238074013895332984227731451711071577256902949000762428457571531758325911857314752044755304703489095735888807403498915047613596874810377916340395619580349570747846510093691178124501578791660604564154048146920708175369495294773954910044008784575990388018734578144228990724206468068481864206840920012504561043025434797292817620200625974854948071305260986532191958520542884227256913535970611123083648445249608982672206964847945582237928214166017225392182759806687303634672810697544643363292896623730492558337607695739507793055594086925418542101085050331877436335250547733899561722718100815916108966004869493840290584850090387088948678113216969944971355172617175297771598229164005015117887710424057930231086182007087855727352837905504306234097754176450807977849133575724590375037583944501678635102906050755404264649643065454578107406720849946086571134000378265605724062205309674006616099033073371608312601624102370940823386068420356490930863470050201334719179993140056389046117657269620725787078312350854743380431913928237530163506735480486241599152992438863929813020961430926406690764478072654677202389163307790832014169245363557911015675978750273180932699016602780408446775514515726779986394724227845434702366321524088397435639235740588175743575054715182554538589729808164419937162564986383748508466112449114897715092819283665760123159411860131664933634925609030809072212819324437851103369644621234963517136149054623757162301634459021709795818470605038568737068593893057402550133134989959334488801963269201233332007872374426228383378424670504663604380323826909734625627089751357021572392298090592685646426783274896156134417836001747179074093172744376260622818549776299054253734911725971099321706935631946810743068195754926719391519567396729928485650318570768521756501611867281344613129794139950964441413492060799923053268825449330911388972806445883157024277243717778861072775444510984774825935765651654986801224858634599497921867219574337434115212655453760421548131098837602951059267930046296125121161518114842545700282040445289687712602394547990241633753449159314449343745938790253457363154331079734987813801081674657775342992257667159476863676307676069680118074270141393540587847989930668488631189857091846128491910750954928797003867946048979881043017791575013720767464705069266076912264280105772488932198858190505603553775651267871178848183853013704006536506118645644355807015389697467530499066677485545509820457431456696887936519537826056089930202653399644628441831042225446111756646559482397496861948449440706828727569807291885605491020831630357775576466430986641368848011132618378936835766596034216803184459202520465445738154571821067868442988083608879152634370409886771659551397528315758321482267304542291123505449119701106078517355633464789271329521333820572628032164485960462548626328039911968888721864834728834949881656872768016639496400401975322567175684533295154595248138801790556477080218092307505355961859981837010001510600275219998582341218766895419712965899127070759495383430540567539786093646122508835898141487639979463707696113464680449167301238942707681621904531049984345615493013398294797323562355460581561579269658866636578060743882977977833570608020329651694159760088616080413453508405992209001043767809958970107679266492653965204310187386467828568839434748832133669153117676299114525377111883452264233856674089502166518321097779327898742384480620678416210191391515821865851973252671343631286731647834279984381893675786655589667568991737403783343131054101798797975853573820776018654790679986029395506995954676423811756119578532939950654654216832685630395325585963101544983870120478597640752306537339689183346371163568893344570669622570584285475425696396477726935552634133188269461046639252509064961852796051131950213055167636234403094497984547575714020086790523710898195292821473160141346686998897823821666659499376147949292667097886632606780672764194977483710316158733004233824839667917565088609914685793306152752218373755629138989838603992637348691911803817286036698304894725763813764977831619749878498417567886923873453238753159956514598954255539846666035618003535222161833670220905863576422817241334004247267532354856855528981336195389996617830819015878025995120490287988894686602060297671599695227060831239102597836251684869765716872042194008397227187834828447284544830407225174949331117161369792830818683848334564597622728706602423683794558748796860898461614311823107682574461272861340887301113161605956955082272906730104794994170389475703166270422716757813602397071091252252276373549169921226426515324515253199864772574910155039773469965022211398179170457565211146756392371144644443701251943223485270395701901734156140012652867877993356199130262552579360502919682432811740646658278639688831936583374289320840797433285304759269558466660379707962061385437083981452376181063209703980418612425885917262782011614768162784087233879848473599792061242580973680078525188519611355611013285264690614609424022076116314467981165924515511643928707945016237295114683335929741307881686272080681622438899007452834175591889728199530990674261968712740019397739023930902222973620342424967198619271848377253397165388823145900173698656735616054316875180363757296690488588960474868848404585243663471784587413730769915330681246375403877501478749019043327903284060839633965330762132907781380729764180461639982286620821884586696291351082572181748427099251562892149910545686264183470451229768988729008205505100676613365213351710127395950186725704423368869955877433657522453976408479400990927974821651894723703810024224030987802694696563725342486527192238660141225689030510589267019721187780108006590580078417992816440296953919294016549923555616646444388896211314073874865515057103931821224937063276989181334389587086164089609266737621570743443765616458083875151898408776509073078996821122379704970538426224348370916417166992048715583524148052461861819349864479908385532420239925224803828546258317214104986534657575625318918728494685317068978841848563424001558781009868956914587634703239615057553732166098361549135547898304302419011904012459501988870826512801208724689690034563869296268441419206660533278174160885620799531582849538098468632653138384710231967452596080375462687536895735638755732021211205894795485655983337729417844863523719648119923713903452077049328412095198795912315343757080918781867277924368584819348498102563106784129009921300165324402839095162104536297860369834467637791850853803454495782907172380936485845678736674937067038931004873115455304825723669583557519985002320283976013972735634995035771979121430167712182754622582221139224884865320251276780498304733554066693191103453599504083294982924661667053591319620674195369209143368037727347332948573542679307063005986565082205284744215627198203445901183841484132656429641339618486523866760856866859864236479618041861239418840217668625112256877311564386835286012558249844171269781914930460281638784983610195680777206483599948849360615220923127763722317907026368377860527659672443785598808076450101387093056258863052510819331694582921922376695239582397135935904827977603901894988346472403360449575606061698455393841972327925652978694483695511549023324827603991458267029869655532886541749270967414413949678854450814474276554015634549039066300242649536920239588388840155579920414262959310857521974899698612332788839596831218438002425243075138141371652904682311897974656823718855665950112260048742677416020320396810237982931251377727206842459807977456019908212075581834824723327109358797024405459703420373459882190973779530557943619738773253159808971733061638556329130924579919730909126258656430021454369984521261202041883013187585535157147350632205372725936003510255752367856954938465614349783883272317887369592058808329127412178174941547082717285122879975528012595148575728317373154101449410794977504341931463179394843298505148606583182536579788695609292946386832265981829670040576765507582883595059048923654248729139323070418138114764164650975784488613079166007691347525943650592373679915615360958326772057098032242776512992452978543929956995176663727161558626006853484683779142127961862027961620451968783100874448822361098006347090655861689734900713400124540812626709986839766467952527781738483602669810234105073007864904157399539065025520096926041778005229970700693557339334879384190469093181583809022586005160940169386431071181151669436539174854513262838279892065455161625735948854083320411089427155715724318812801238112101309897837691678448008589011183575714438422037212371974589189381582652178734490626384598028919881905229638861508989862754588028900650321084222784121649343739928615781815536896910865945292949120848003919257303689488774525041810821711650505256997369031563237354850141177821486590911742119562039078457754788983720893155640838224438333630297293392897782185643351662906687612971200616988359432900233234913494295126564954827026812255778875544910564899643121767831098537994771392934297092602125548817884646839845657242359484379663880279715067347811846415822077555322232251536531217991119242046467858004741611268651489228791607488221395043559122825690782025701133599951509953963813799041642247699302860407956690657357434650697147515344063654885775262024615062409529142305295925785030292008652041850391800863494001513591721528908034523163417884849955768806165844192533970023170007763655802306992223984258015823813669109600203042773490029178119207286715447441725006472230500500033080132617062274401894431709057678753037681100380891202285735684704466911121604099078320473478598430561150932227936747751441930336530037945649680166812409424689681065444411271494344994511896221259502543876812093739174666321509975847714084779288864054833360478922049230026170367870242323500820274385972527545203367634133342309699074766461623444468664461471816979481725115295291880773663190388475251013741430390146934321612656203182813514299076950427547739002691655075709499426494351593264714429771219169241033922790094370816419642687653931214016813368061393490473926138104634702485033013217900102961655498395291490258556872413048505769723082610010615759983481558835925692459832962211638621706561394692828192361783026385367639634394750215859078260658532981368660051528389869533699829025403501184508913438437933573020917984967832359966057344410311601595764166171760300186113251304894492268602943482916447163409939352508488533753943133452553675934578448072179893855436731896545710909732230739840992573375458836678454288123899850163843414868405490174864204535898134316696532846715221374703580560406962972492817375767512399965434574643245693718521527736309969845915892265609470492755463623046003444116958804360567735139882023679721160626780753458266730740654745762561336569986692499290567747665513772192389732830640973967775367769522443675576587947250991500571227537629971058771762541703820353186991321221589124605953569425697298784158557336279769466507642115723546595247808962739881899569371300166448624266339321941066880754058553377779300428612328277317264477694959164363417279676868860282005850993212524693387267502923980444224336829769952420014212351482565882455595459827956552088504400809005396325091112094507605105847825843006242604982492974966942065345489238006242990474079842090218368503832426220920512289041357775121829982445460896990283832579305251656708871033014021071446600134359359657040231805327962933434944502506734226550847496504469986193180293869814362343254338801034816929270281856243430835822473467581334430918615824181710317211846683332946541745134021783808520546447749692727544959928592054016380809872149748590452807178642532265801518131790395817042953416895319294173605561762762839576695523789964356375146362345246997418958986939458426605675832402653383847544846197195279384167219726570962253302382147724201482568768147199894376751733649671566747236279697353341591309859927061146607730109805314616116966126795513038319077981658876953020144117254236082336126229186825107162136770411914488449820963322147517591920806678606817109129492576143664407638423998933054964735918956134225479265298395011365461994464727555778269981815378377578210860683707236985166968374249587377279805451231813918342636823790028122381559922738273775047902079274774551236102735348215959056577863283280198895467111665817332230499081824512107975001597194631784563543317647305627012978388651897954869735032442512562372603511351466746298048085078587924718605039675745227511322284932198836912989090894332041584228282074017153423618091528873366891008438677632978946152838194028327046862562030848466274056818152299723149480972447721915801816035134542453569459042219041263964074048241122501550144972141411308111755847721433524823349268636593385650559697227470711342193986111615936592893424394169629733711077159615717385836994120916285897789566019200093687749296452421018305406546180032006958807621550789603800575799604490352334327250752265695014700992734676928472137659153637341756424275079787145861732147932237290125046318645775744773498723597653792165081782792591785108375857533526111648305909351838205213038600029052183115804015180527697693267658231458676452957554789689097327658648390765533099640800759849336628979428221583554634939656413549980334834152231041253640728921504101770666475718334168548296177136226715401086912730096404333153868819154552202446676324313030848098298067714216678878588404316284979907172867161191314208505473405313321000242816733747997442602875302233294562450402899007592142690539142755737990746884915324277607181449504071149966812787627154283752929515402288347260713925190060564601123983455253644487584737341164120974499015217430948707451114742490157438853250350701904464874268403490329844817707191340583511972740351017949150578722880647157816514670289012310197060950391747397808194684929215035022164855580003733844394829992898397840947115134326105531423644984722991813276119635958493429323204642308878738570112222391019432616643155196195270550604636524952544157731202685233643930635781342995792650871800099909785411777063714765317681530100791665467481177635675323526896308616659280426118031311314320166414598379554366759206020312550924372865218774423796331793153358420984829586907369048580430409953475548296269456088692206454350139566374153549255350362000688723819504232813758994637784924191325217326002403632303714055168693169847274696213680018723865727103959892991168306382358133580096635364042766395506503543142964414498639170773640744371418442052606817875329794685321698211202439487137195239690583391824748857027094475163132720323139515279865602077470039968315952772566070078583642360505834258370904372044332363541110939003782060896436656987848915288173863421519337306855536725187847710838865690665890411371025278885596374951511028185743034331522613459080562839143734102742614626998466140876722317870991481491499098056924939416115974532549448812114970461972882428064380016737898229991631277117129415778370875293977339645132319285369607566907152154610557000401502704534761701935853806367980435249893805089720321764802458092749600507650193235514087777647532583868030251398598130171274438601085086180957778917084810169502704849878341551282814560345841396454897654503586490729321165823169466007635282598943560156550495355044149793947621301080675722973932356762330306451643237920915805311106676202031511783136974640319339090064210749270485491741890974609359898506417354011035053103387863243639858989088938515814881012700811782669639881435820618147648525205098036506107561981791093494047611326554952457165661655213277745110597697995209484019779515496646872058138679787727087095461047061872470012149461949430128468947017798037818444665975754210462493045525441552237409821354807924603521656769546591281889549302428082056438919463298666919212812352355549329305932965191721419151710281060506062699066723248979692703531371423984913951828666198169458300390762924124536625878235101056944182616832098171366744737861807636021895882105489866718697042642636311167767950277516201176308302932110787218342445572664032208119701102848744502935960091876195210080466905452419341861000152410142482524232079778585270119239466384497160103694403156451659781157705006212318177024377897819050963243138776949981529041345664544087506966894468305165809248644580690827289079158188741861276222158760839872439892924271276098383690129438973309032907561486293298707850826190746200567547392344676623271820323548029961923601256271777139041345438453754036504643778397499685815265717020689551589216505651627650314649914134084994407314857827796944938942873785396577094011678967235670749588992983647579621860672350274618215348700670922989772523036833136500976221303979231292063657372126423051560295749931260926931399577156335299185552535905781456522721571210896661761440254787214709094928197891541282545159611911632142360467820685265711088809790537786501574709652968237074118887339879220760659720000222897658866579295573663399614016717439306299104168025012879126134446081341929478101427304462102545834936876440643948684971356493898822475907833519328642619487473296297724006569945242232663617947563924088664099673853418576300453429397130481536498994859273731106308626864318742505324718735557161179817378523388386080506980834575105367687504900678018211126599143334670017637329315786062574808548569458610020017765196396308426709331166260414478073196931063445926526983893309323770945134863808534377540621901928551790490943220748964165486211904257019837257338724898230747702825317135836487854922102821581818813425071900341146272798119176081941173911544106726341056759949695415763133626554152508597988656578145304752323875229230467895786800286316166048995808814162947843657460212126755648746898845898278561408283495698315956126319717512640118866141306144093158438776132003290000593654021038722016526824830422467044416121029936757576277410075808063886704266836085113072285197064009951483606318954647043201318628021666881611388825145255720762174290850114295155098737251507166870988639328776082045790256611553242695391672928532073529771046045101135149286889154036674861693298212516177649519826036925378867722550052176474974589231213606500176090620644850700192612823693541341026368443677679352565750599303385609793725434654168858828821343818460458334850948290675659521394542132170314806387558758337321907314325310638342391202205338775886613869650633071202898758761204514454855599772861723346876027487792984742311386168135692828491169158872250364322643892073435754165370919959627600503321878928556497255467352628606578995060767317911538266572640254899179601506314118187461191550748889917930235279039933868481194087815536207719062893965156054144355075219928034234083816789567654253817917705804711614894350735090662997494565179649259767299165758428237073913723475194526471209012760827004722408745997597450777133508753222658411623050306127422557439346425755673664327334265138201539826542469674297666599128482786014390093132191133108180387806657322166492248982441026073023802349627135027520005201939469114264046374854734821849304129054236974419121553378635291410015064105692686144930928655344966299802823212871264505977731645860218214707848289447156142994553481725285502784138023536645796446957489114947371200643749901690337015631316072163351202213464998589026580653025580641433900993375437067968361937459746372975492703795841574979564564980071921070272830434069440088393082500707023271783230644799383502140555033516929240032937082550630646852176129238466143371301348521567993787820503665099407894110901922792314203752613662252612488280321280200766411658651968117836617947675370643879017343641641716340319685392343181912898382338726917960816510885162998798638331050881094859960486305677748427103806243120794651702432887038745406148350270170546153154102494341867678610359287632480759496040206661931633248928871505950338928451920063916595692648318244102195430925748265568120887439371861863947101077970114969017532614335449290401030192420237262225755091383491263267536638424706645545912677187427194731338755711091985389449388279585214780572349882741203309240590049091676452628557550360039431502536044068848855339294485745534765075527503490571573010139479105422681846035655434669156138609114651986144041767331131335945896443913563387548317722151941174905168249915529516464071355736990834898141138069243220698268524445723859090359100939830709685135650109256155964079947048114168435160408642344911421089661151083870329103099297253658441894039531487608861215387204544451175955888996135859037018690939401624135254916844128935264094088042483758602830883621728308125570630385794803273731846638051078309371874974396924227417248515735135736987650759335196973742639183015255399885339791907310769523455205174067551227199652360457653962905849661695793882998148918117722837643054754913330130364994839623091748375589338773195016198354781319657277806213835991741315951995314225186598063438516339571734945090679044098667982957939651569691288823872612979912696316388430912313986310002371742496873468613655072825714463669213767600334015926095165270289673671514182611922455641619137544820035919788451121407870345862131330615312086858403528833945948957833062735617005779775251379491821718937702572733805061134671368377534493654704864232458594546195487508574203746067987599627518434802392383348062037379504746269375950363333246062395428533894955047917193854403797371624677019435980187351839041309724609568083355127034111426202634975816803974198163458133630565056405849236201026934323901195373515145295820777369676784129515348978086906564402532058232273835975946800444222800253323708414502339940438902262735165763497016012648017030123436923022158535534794369892761707891713839888044515107310251986939555526124715931877963982775094533097684103332524019649971871340380131152395345637813997581794749470947785375645407550350153000923213109363951815861354273450537250599404488201717943265824234443562163324109229371286158274499387803658818505139279602634578776370721671630525389325516269570245697202105126688272803428273991308214300239034236741591487588877814479412147633557864866550612889522884843241237760977824892698417416927723777732149633594172573807360844589035904286647338780986461962832492747793409374284065699180741194236700374587729646342791617627783939903136905704432687321019199310034724605656414272167265236713686739480763097912768851032187788853539117654930097122843716489911094618388018526701259313445935242895751337690520052515511016978090662165743148748154139865768324862606850085569508355681691623512900235449336224850503164298532393776989106342871811602525594456909381463999065969727747239257819924790791827216985473612451201543404581042371213053257071399331849899736037226567436007966120734097059743154660728637219931543027203196183112274686461563245560405420463795671966954848749070215638734522045581297668015871080641747494546316245518114252870958349332522467907709373930817004072741954284763946795611435047578698471959417050854065400354143598890933797345854702155391632915519187532097639679290367314059094152972167870770154460045457518873101415723098007153156346245938090306955894360568166952977734475984643224155503122132666928395893965520794333199717053307529027657620656278757228034471014857052707263173407472582139232425945868266246964660356943560089114853591985145869415421517515702250028162500105829309652561687115751920693428022534302713143970525678824174346902697230176467827409519060298848534664999829278369509555800369521088348825453502136808380195466170966399026191815873163805778853933286255065954829802325660554759743951335125651330116381731613227484739391310859552822537387766380246134730165401324347410189994603779903024263464883833194988768362590600230113966571924256114998259023119886531828581197391789306302215566835896766129926556913119686582449914154688813659663489219089113194060345277696974245330575051454360071711425470597067678405965713045244181922479698477212104815062098625579179853274768602967742101310710510921077936224002849110313418303195917539467005620566433818031615517028775203921709189887636701966105615823439717749060640056501732261235047761751753134138671094097694246543345821632286241714331072908398514768842950557517126500145344287389853560316407155402709350190929751545346928151705685581467362865447058767542093864019910475540919077781847849224438406843044800581798670451538602552869331554646794388668390154528897537697372059195194908446935362103498174830974014242128196702588789103565312247574539062513900904633392896840792493805142711871620236059674901893089572299856911514234130672912290635158640440179881698356613174796918137817570782233429847119378317690895463241269940211719455292691149143100198711173096558544219769610084977827921014954520466155240782065976929730058303573579871382523055143515874746671339922007777216271805786587935887725662434740128597345966016191615275469647418704463858384187243614304966663637316532959781364908261595950917842149980530604077793836311546287270015590524656329489264436951005569155651709536202587154368939069489463276183161741223442364591423933426996554028904055487557576260615981789212600148784808504251591431699402551938707771510639239083165182030645129181023423741076216909124038855165828103412674895362635595833495716468329440443112711871526766801789442032084201136625368439206697512714659618549777745948115364501055213189936145844939229141181439521608892202833118762325566330359421302561643386918324578556536990442422296245948473777435940893625438349573012781903206896226464958727832074166758472447817583762880416200478885326381668333956553910888301441411575728501721478292858507853917917625306027591536740608092180091351842145059118593840223669074891013465782351422435686427810003745344635655271718343563899752098468315104904319480903660678235692146075899598617999384292184040708790244774636967421390177607316127900673780126047675541678084732603325408511255472716968924688269664957417758481959038928874057550177809654102459490545067166203615076629528947629019677138578365747810513153176209994911885187132366822424501874930809386737851579338096599946955054037122416626959974419371098475843720205493748094083827175902775601330776998014021982225146287618125987019901226666824139314371166571756078842275507699612812986034012078272963058156372444143342411076134902898129620353248031483663856298523365664164778948964163678043516364469993872383305538800915819334317241944985877141380540020998216634267475487178301411921929621441743731284573041064788083980959394317031427281677597601455296192453410799457182330418324264984656831075201413657924938123920434362885955710489850606918484711683817211497379210379872305894474113588683477564672772669930671290838959369644901595234760662090049176078845050574519451293431601449126069614409605212053799084737900771047863485143330131619279964344472184407151517140559092003188695299692856572078146748331340836027989515987982406562471921718420397809141827495377113866831213548922510447621348284915180947152447858202678628409213860408742056634562591971264076604185348257997047543870253935846970591021567587711345314090144440767167532113743370881123005944869910528628142059209954807567698564215963777595593198626916035869308539702203855072025677012621760336002299840921160972905799864328263321537120420798570118239009180752170414764442667380858966789412740341659006638507561720688607922944116025397295246326387205908683057068804802430399933429519630668792861770179063458227142969373960986040387909860908228444505218338536493853711597956218344554700245760240331224243159151741932476287942589335732585101509810768518395410428319249071784017611459505284393640204406653227262075743584135695123597917615339571969101627905641645305429900370957478641818232017304077448369661512396487797954881317906648436180990007777346926185681886147748520575602646689355651327223349670948003046581084309879800312563077201457296907175065640060350940504494795875938404044896860881265920403661581671079111225954598306030036446325141806583034606727827403289675156387666708887782635418749117237401732739109941709924057887982774353827412193020015969066009222668814443868084178897808845766377393541838742165690036584829829498521719087472681941436318148751111121369417354782235251794645822514999279821143690367632507525555326743565277729800586441535500997089108086566201041885077233394344049920108316277863143836483090987818474701619262065548075167504687752980329505644074380114983544190870594101999936732406551294977746097534336189379611873135112573220465584871312002712539099448207171346247288600952321996884499145466325918216343762177427557029610039390084987965713179069331640564928355095646354313374887929717205190189863811741123158667918069909445558128880875789440446733871299200779859045383380792574826012989934976786569283669783307863695963885721490313674409288675949570806451420205971239392540001852718718826697055172159268224050325403046449529880545366808944728670460434282412150773179794675147600643502820480361865519263566275808870609639457630265858239533724446974515023281774413308347152340965657343014206351250386036230991186446291694193366249565483990327662311406055666061867011107960708661065005675686295325638141021137524233125025426254994313096334794924348387252015491353509485447142100198025905537024427858420287772033092099933614193843217863999800654629913261579244234886223848610113914227715353925153128885282263080322713502840370876251691966008502013281194247477943144000291447828319062877520394917664928223465178732954997870122645562563069410042680938741241486857907167868082281354225738125917477411482882436462836135526102991628057247047010827887050747089779585070806664907695427886358374442941376886486430985319106140297672079047728090857318528479703071650913069557900516075742321959655070629472524589617141294760729362303272057738368891012295765827264152117529130621797957656623242418539259131959591862892470195888950508658798769769388156814638294490456076104316119309530483264388083827155043161360563519139292157165003870797744792153473944276528891247428535950805228444801843050057041364305508591201695184437870221351842758239268082043779741687753865915427352907950395981067308163169687445884521618622142279203621544708062548386567884339267248840936044523236536178801224781073414457547838266216534946641240624783788519321572665370640560423992013146495269317948629877403416707889104859412368131993062441671888158909923073603909842587498448917062399927855852669135355848649074331042856233730465807621130267981640987232457330625164928401726014200590896830018927823069918642143843211087456324260983444424464100179800650655411693997593902196235228940292713822944727959123281427761227416812200978570691157717088207650445181486598023296554163061013020939108285830664288795325613219107332094175098872216542868347303903142342792615171154659341727679577462446388762598570631777851977261096634803457279378349473703415038245710283995456333968643549877949763046860650237494584903217774623741718920100123914954534169287621997177408238376689847362357460939207810532727394155855190358642208128553583984511528416036317077782833095682482681273406891253839806462446295930675254374012928314936699187844177440868407533899568179843338870008310325476100562746415722195355656497339329042761477677573834879014683610947243311147703835890202757764176344764666110858099080778353085689951280214019255691290841172052030195406628969542094415526257160307719017303345717570495227250768678675988920134525514053073627373258556730558515797198631841364153133927743551363484469323629390970236750500811475394233501561242410123822992366494790422415274196289607811065985194349629729420278245999155547239498559419508049234125767003926995428406545149601812837110483204560805978196516133983291449387458669409599557758185260700079969066346828869163341785870843982908000737274765609021431006036399680025845380954115597474218996350913602125142706295723340180923852920140010807723996765583989541622173227880387456358503676881207602650597697278365737226206597402555905589684279741531753991750112216116676920060044172362127567963599047866026772301725445249440338739085147655666839223139517765031305354944596056989760956306463071089321558495536333037745044049607998517462904703013338864372613367845127354035054203887563172977151679630176565328861192025959910752814927041619241274445537425302273858028862310884632328441580354388781761984407145244363365874820153257766348554735397523204512577363109613454663607867074293437429823598651636359656605314725522376706491864813311813784594335695651031287123092293523396645183261249950001094317786190565234094492901132591341005230267337505771480746353157030370458520710788227966404544494139876929268968034507824810342502206181820674077071123782805156151776075032583286304880453047649185207515652577042541159822793068263390783858825370706442725006322414539990788805289382977218205686841726383315725659495780605171378126859225337685392532073435013065378567425904756191182689049341245875001348694401324122873589661348393627985638821415729253221789073421115601422793189839478139670236692246200101618772145216079896879150354793906528567105449383395182312779388144061476104338191222048491233305150411642826328834246212987590197755974954853527645783481885830222998188272529835050776709862364864650842694108589160000241266518217992035791827059356555639849619241059497187994613291675108808457636929661471780608307361715649415455301967669005654047617881737222645350537601402732688410909674523510307710648569856846939009260407384234379542547849878502133644168052884973008980620241349254151715256490401377380742094195491301586380528573355719700594559713314926548277469276174521118632452063816941452941075585296522336860529787106098061475800657785366050559848879181194212255967953277480345743741340573443305350256791309629147790252101431441956983818077678207226529189640564732850158416412406334819426662455109905062275811529213878341900314829801095761774202717523170264055248879267096119990116001509349554966892104636523286089372295919593741585871439104179852212857202059889256005631917544323145835382270615027788917738249148598981042189859922382724211742767325218475239959229939282208361906117383868670646977186842218543735986590770169424904421995222763217556444210968238599372481177731874262721597743940621179106669991677327182658709003225460006397369992043802320201174217139548983531357724322505113976834425363121602562476808861883159192198493867492891079308326986690850814315413725928304322678450369092618519969830636566995311145195343081287919939912497580254945887334081820159513884441640169096952843330833028672959430048305137343807512017279081473914667443378821511686592693463056672378622647483305093619084815923606534003286479642678666847029887428463910319774518820724221997882851056379572624710531073660063230039249147024932953446639476012912867985971755405118512737172205487573756373891867907218133943723557727628910374577474047624913380117679716571950379118912400915850972493484247306161742375484011796867097598406251692386606207151901545681060651940476093581194923509434444940614298675095840282289379953920783226019115788749191427302093141294355379637270093161652059394027782389683758131361781012108762952138222491500768958184115708178002604252886314604243530557169370878411164660924820989007044696378278477659499593401982292675569053145003703452109053795877152770208927909401000433512896356434333419868637579555963459471313849192263963923607328731158103989350388740223658231900010359282690432008267855899270502917715460154919536026325640751044091695206334017849877993990998514792103453441531012800564718020679253805207447996014196764914226648207745022292668003143541432087847278901306154156368146860954375602967525230711135724150703147006303153090371738108983133934565129972504527400709780798746336889371225712029485021925190825988868821487481186506785423368270028028642534822907542986042260603477267248714719330335402899844536314804990399573918008452850388039462677499848857256043185396963048000460236484081926415653100448001246254715127213427668280324131208506179099037658337379302702263181920241440400613841479193510325078308686210844826447919340155563961385395916555664601001746537757878828692536648606059563081041249567518613850467299672579278010912866322349026342964682019534547011195908792784914954209732475138424955371073893452817864808843722783168981434012342926881987840915945258996171537098744079146035215791043671917878534994347358428153794026148571856414952428125358366659183694884570819774281603081024886605110823291962664759489199434701712120278456383026758434744672133140856937329131524551755318060924232872202553874605750182030641340346932065052606010633974652287811365608266282924087962693004542285151261572463729906384103763494476136459077350248406584953001355992435880839321699359322454335455644046908308582000669763045778001332831825576135411365728024644425987989451947854976862052888836969729375064228677827441289014139359554301869233031672783698850020114213443422682949179673756377410472872305926449948119627479984873531371451056908959863504209774787881220519155779111366736782490885577622176363331739650785882936540513468776368432744540635180659134483445657778654609000612491386363047824611244408009444930481108752222677126113059816067134822315433988216320358189725327850100545181663403094928151995875677320672204074115120178717766588212714711173547709243443514784456139587460991899821128623785020103365183081975992648714681329997907878080064939208962518949705046181886457740548043947303537089296358271940842720805057549403811585343255972897799962144923119539725766544884694783681286975558251982621214561061207732646741637314733856542438677374369556467888583414701535709272368297801161159875545621554468829099836361803729437748066036514563709300563812758976187848426465943432940187877944835072274724139767592075836334910507978397212912944049243838602411983392598663996180722157255899504016027427572409434330473485754101391461249131957080385988367195146083597674765796634820331359235108602468803307544954683413640239678642992791452749721985683045832599622568817165537489808130287751459638811566871288318352434268215181591723556875531543703294550078587140281661537057953836549249601862599378379992478966349504469254045797345956691802639489055533093726670444130964177286158068489409416060983983095831657184434984815416676374197368066422920358649343105690541012927062584680380816694021761537271681408841071007383745942298152319248026167906967646020021713516153768583387143378628287798887654311885326209067954122237998602534141492857496687007476739001041351851542079251163750639171718311078967332657329395362410423751645937615820547978825124538736877299149916589248870419602271972472593386175761993168281116690731667679141074371640106567320435150164373465303865939528591655224824743543057195924945770904054941173968303050965031018036109133980563829631416999058990360761394051038705179517064049878037782378434802267018516147067393737855894002552269327396544393351507448892856144988404599455728208009683010254451898673520616822732679968028468763257982368872331484936734008976743076601002616245967689336946718662325081442633265671216986714789369106680844542965694319974498223625075820286978527963535650243614614689085454110164508388990733768019114208174554985037525496236398944271683979849248686978901425629902697630262589324288285916025331105796050737128369869685031360384395706994856442384458166556077220370960674083369484114416555300531841172632296026613957361984335546244607255212329242686645767167165124118559813202029275762262878077182244303039023442629608455421635462537968404781129556947855751210314070161022069590502817230565160907941892910346033455075800735417451767827779451939774131936627336763416725744204192970995147270124332677627983733282991737295087964617774099786847733909872291125848505497559257819768848534204686019159137457557727038291944965204735885908669064524699387069441216224373143192874503085048332865530814421568078566346015934888429163432587778375046614803641177138184228007373134514844680300581653617308167919540676360334579130592701184427245913733881852615642750651311325807511852613505226392124700050044346444870839118251799690281992840110006354517653562789907760363603561959238988090584128436489898636381380177788247205569308119947936261175964637499090847189862429090827488550809027351633647752069390789312579188752150155687158447587269973262831507366287110938159607616504679242744448674787285129896109554369069801784732539166077992838949030904907162376066327804594539277403956838670829407040353980353054239205751000711317119335690330544238386816743187007687149614728904505102922466290579372086944976942907697806130660729094423173354094730378019178022615452559933129984934731974424661592784366671613422728152527607204872722736507834571862372911372403551805685116909008867469116344843795608186879988312602864403284699700644672479321075986740207297968354755401563271913053041924583705659947396528821478729407602423505396303445988025072369433835898604364432078726323744163733198125701409057635582007739053494925197753570774761613353675153137081458574667328666796241319994762868654908686362172761255558853718165273033905682496954433822219963699917862475880023907569804725895687618060711700326998357172432468309266092166786896038917960541742986182711496172172934935952264493992730345597971740633311929098254343013836160305047765218606317764978784271227471084400824466763728523656719794869915695271297013134529072036325419456145420612458648644534783824584529430661966566128927200470136688610762845067783830938943272939309236164813628512641897410053495149844319481302412315624710767848581369630046118033816168253882258551297907390286194117898482574565432412753932917691854295988393270588476137027662510980265158074997143934469187213384615757865944106770096032725092089754519594280665661507357615858505522208451259314430424680255840129800207328158747517319694200391879843732278197868057401352630295556363518915028039902114956857044415594280876310985185878614944176488314211087203341356741473376945937019392283302918010421774163099805461968422013820101533807784988399708233205565976924371003121062042054624043133975721096771802115017870831036118437399995936699079366831211151331000023631984610512851956996018286308447557034947203031513166986915482883096078931712073009686762888692441272871451558739668154998872380695889215572806372904902839601156195993320655440892483525585588042358216499913412506148648639994586318513479903438484720382624876664725603007460121307901580746493551697905838236205825954144976868900311077055929707884210249392623502646412579876560205283107024352515414240563321503865589164086863476093786172978757092217267168411981047312238031338617800085655282450313327123560225560120701630018057516496508985114292035682939096064466215197992367875771684852859520710118410781102473403160120331181375548472511970812198556781934613643830706295244587189796800910468606062791957765717170602456823470130498469587633002588728748903179476375183413009777282347406217664545279543326914876269717888472909636821911698233322312435928470930399350862687333855750919169815662073550000215227231489386910240904661149172116656536137537606664769808444344490730996128730406912648301684955990294052410346867511498885589850138127821412064238072325091740318908498147941056709436194062233210824292142026079166693726095485707478825774154914115873989097301361764320962106606980921661358773763985476489810632122151338665338425236354804977651414359752430441163941869394614023303648682055551684714114535422669434878471180399641167506279192405478389653354436348480266121134763160513947173756284574431120881734406915334378677993872073042807577351183593727290513197444467645499657749238760371687599782630475758702384719903452611466368249002467133829194963386592063548200288408197921620111821947805490876668303536734620112096210660984860361729210840279504185554537789944248602313355221150388289883001847932629377716719245901648896426170749488483579392950428439928941512919624417135062856187693860749219923221163651192564300501455331572436331499935238513629371648439838048686862249645027936024535786933010359685059589150389096906316581226518223152701061507961851979175387260354623163141273741590829795993552661373704529904882743389884296506490060376270155832046318573015081957796354327992540759228189630289639332645146293529067032485788333005339162989011558619967371948127753222489605967937611874219547392722872530331911638878826340697597889255182936728364842533359223823939645812815943954279002129237248101096251871069599413352507766962970641915620767763700001482973179494123881344621043873121573167206908148814972846162451442103193321518435402369813130091786146153825982443096274821574260905983206563103552302840926409360422156924649009902741053879675909914373225404280945531403651920452488580702555035038324956930639356068715239350847218972067245347807049946792932820019052490184336971430180577292498102674408530472408868638057476284332896030978572046891831369317026963221120584426691365891689858114168290897282098519990242455125771803213263298104936071403767305019249615406041862133400895953088925562067488151069053150205300272795510886013432753482883862901770596091598312154090606965734334625365922971521276791870680591142930748180709497358438172559487539570738883513053415073864912990826688266758070343384509751180342809516088477692506209344895060138364072049278802415526675114315190242527914905073436550667084312268620500043123972581282227169545072229142783177908025016067628722755263873788577359698169042828838113571925182664813669177815061298089487216448257163808221177002347900968536184906264871414470411986881726098589968058542388622102326695065644325946978238487189948726680278334990438050018450945458032222432326086449369941245390027235705139124874527795293652588748719924669868168865674496070041817513798493719138129469860814661967658845294181176883144771044317231037325378373016370056861542100670006710215187402480811944102088160831560863086954418175229617443976784757755073828445627138483369711458300483517588650717469539351240844615820001360833581437704825819459128831596888774192653273173902185115452988310806148815600706327264830773227649493044356381395563920888547184246946850266035072339717929315366137835626534865146736858129550074733400609607078444892304027197877087117899519544542912552935601508090220302752328313575207711652274508517000002060359603968654572309014813859871503669495222211771080790055200942384088399443011832030330744446996012296000192928562554873166810306038526809063698276385259739811787591311462748927976148340901271392535155174335571101203933196278356896503817214659891655011641313647145587429218923213020933137199277484088624719643729515593737400626979966334458826228287355215959853234578047591854744987309617976609546869202771999004843676862482355284404659511820544337792719828519506885262118604686028510573147910696110860882898868646893151932812498572640681653961746004292274828887181170942836151154132428185147083245890726110868988865015898513153635851976088906259759181809093574282173810007356683502278003170799405909616287314132334649256932694167969609609084214302084151764209113294448477376645038313295975672874407605438686597566117496834719503275154938555839204932863030661955577567320396639527366840773001854823818703365196684075172060256851293808021241301263838921246354995222648940722988751857621799231542989772420337557350657193267121554137747109353951574121388416833220640904495347644444745295547972558839647056692838223280632801454960235142914529619642267027008252378028358882550886407698526172943998006195528245234848077837236355032544220838282707715247001985158028942874086578548680624344580678304180522703521456154415472960128622866516839904866379312137706250111088581371629458487339607817961565351533306333276377412982291797693443009980138515974974450777585808114672509118482231743276229040762845479017278593613924934423534319923002414214762404305446471793659361673854111644662022768033278201833509837822210366681057820380850458637924530469468565396524989525116250552210101078094376319758530383515022043594786400293205317538406528390416028685197682731212472095273784192888568971045414442783338849990316463305013114716103893807180648187185606295680331609038429522201354587895533366932508651674739569202527534894165261349149934924677011046932798807735408912570483082058788857596897126011305913916070384569793115189172007124657016008294047758475966971578134721262788133148828191627260269522837688005876629933658400275763255779387811064831634715239166975680605056695532716311450844720742828177115728807814006163705013905449234693700768947958340897183170142154661697348696296036104013072778782655078976107107943711692808916923708746211869453579373494543042124285390737801921931799324120389212929612739417183765211435900448521056605230939350607504187323051051159194704671666877538732785152842445437188653107526730672270127205808516281124459094164324676491724620896585172551707542958744965460443293342667819515799091066413907026765013971087362879414301797158310379849883837836712950824938014749934633225796276087561310830729073669541746099325730245641472190428899057215464494192142002667393322789432573308087916494492077691562981966280388681384902245406830467168964123812179482206089520320512579000547192559287701142077107119886976648811554666315325630121598698240082168881548421743036858960104881189944434020913048160336110445794245809540011767186967361147551214432004034520815821523826545757884199425264578050841228862911960148394639092440637461372158156871323345585378243296886020808439971405617370128196911692081370147566956461423033729175386593670583958109352248020628814288502597232771675930402554226841399008085386639596571263445137154464931886193387241129391251666336844715500736693188046523157167794860492407735684808181770646735232562190401181128027232054722907001136151835851746538677409558184927165921463664332642588718902018233289442920735224222889484120221652342253826972018065120600149996798590607701678374414427538612174404853175172668812314498309225513449616671364398063087648051943090987461319349278947301528891169575051641816681116071823053880226217925561809677901705893097763719117896185346051809800668143651245853687579333627125659235215983603734109146529736756154028346052308114616515390735636563305832785412473537004937944998400849902900958200185380372792978030456382772957952760186576425829302581143812170518634277148966207394080900845128250757842852817061851388697861942711141870856090553240473116754535361967464546934279810951094274911929253852449423259924207556738726466475773278129721777744169907718323903602789675600368634647183933180033153440666302123596926732510104988561071224541526189120134110043792682311060330758341955028317100539669860222420874372057342129290063526902968082123312150402970689236284739143408988796492467863699404422722651756408526468644892844784803131651061467076913880679518302545576259722231438895440836963549567279464675419113108987161457483307818258830920864462133054401378442120398729659270559718967422548321173208735602835103554574398604242250658550549003756537717737430337786398474357589676339747008328540996948128910206336932704642180076592689945433738904981884773168064667261853502911474057819504022118541420776085424142786011633606396074259859848567305489180814064515844628813181824333780678220731563030646547063792414751823112416935109338152469646998604753527016384215196203633748681016374159175478227306936124312671061429838947543913910565990653924492450078049971909130849601934800141683772448071210808103230752584857560334279000653777942032040616638414765967143258872848141379321402850990526051349737926688439892487955717582740093275327170032881745998222479369428774593375079849820642179808469346132745853437995490782113161688898650144674102360348871743353175010448863379518917111809953990134065164735588725156718966063492982751586197702435026804655879401086139850670819716900554237778384999173214261155974776142144031376132829967625742750138911101990606835352495187123013276360965528443812082277144045701383267594769106484981827241128035092970047426083113355676472436806612075019761260898281851468727795144998468154212026163552693647004829670558125874084428100394263204942969012357429910729934620268411028372272327731061040011044393762906766894455096124304768394766193121173097743376694328806075385343173160792027335655017594695133881741804219967575898648992270419518050780241058680409115776819106183390477733436022155880397357207827196502253142568703517728595671798495031876243341279864565390568670105299793734287847371670367066538183711588164679650573186629711699960037801058469634233331692480459883155769197215151021927910308077638477498769816191978255598156409828492411563641058578518495680172477592986766982528406303851900844846929868339197785942184931021655649618509616589065128863225105391469361909453657134951273781172742201865401783190372073548240258243234940606826819386201232778097686539197484590533370550792245370817482743031809720813711178964298306209461133927830672060577645413476734475347078470795649043049266607074008651749096355913229226952829117509615959183951715635630613029527210712748382071906124901937638449187320960583266428238603276060694065795029634699388607581056845852851262155709079462071181598016536824023653250770877549270756769932297723986005714384369459851569904337747856444637549558953033994746699518809124147254019276121347968710811952921149707726225654704568067508019664401396963249091191528660492700872070415435929177528256555879464880523458653025671054547378970960869986356719872708122039119962456408048739117927360624447668813606816539564941068201153729059420915253506339312652412182918440205658251147335145085445633773782625994130130060509640649199376168699364846530328815057168805243679930155207500800758374051845780765513436122609671745122390000032900207278664636378158276133511093260874194958024553058942784133076528657038867710032367599008819673984419374724362196625975946435407140467794744774883342873629133707973578327857986631562013937704098311182367763248821778792313787188536407550070857488049656637989062120604645549488520588442702606934681006641552572868051487636760690890385579188605309809891211320243882047256447178704533689124797341847387096597661885477436786680076922104478699612703307766956392297515349852544801058789897854274752041932873814516156502105613238419241266051658900373658292174734308994431704404678115306948768578115940510884036859159456313254992685138853107616015314678587743151530238715443576926196235864884966498744209099416596577094885411181743171883888177564502378396844482987800698427918231134774156457998911340169659750504040533112028910413900634034778108030280098121759161199243668968654397853379641667367563937994582440783298114372698072552902795003939807909014790951749475232669555885619431986894344289816045971482572217180601153408366739639350137690776401464216416440121515799558206409349980792751631678839991468776416822353809666791762373803109011960646516629450518642797766515588868203426026593057141465484669731605439384030270190650206142697181070034626592841276373080571142624434578659594512927851299839113190873094471318670045643695825322065293940191607723187588178391402430256992142358100418369668909611540727088536613841238076670216192368091552560522717060396334923946902328361468406722695544395791381540528938805399068959272184098172591343738270694886681188367443788199381818805269148401382526588531982409432345834509430951803762360371478058898910636924827446405245101501881532736331439419156846328579260742080146152377703109833664144958923171686603900971625040318904712316524780995988620427479476882266324609186549318397099914939065636281551982989849474976952319349759440875754552346343527963545284482243383008405794507211457587796361036774968040035626238745239181174713452940150724455280499545006418255318666670389396597695593947752688878350274605701668567513934466297245062531016949038717339757267276134072416998814880784122629704092871473006509288916562581111538954825893172174667679975050610453419795252464957412065074733979166511899024448635170435033825639013648125098622980750876274218384590819634390132624810560176179535077237167992257081132785911490090428052855667443448904354258769662988657434355031221035222288873807904801091728193932888078587592287994188567400076683882799629973395211624423449092643435825702924163258979003564426185793999813774771984571167213190937763301378669182670429935568823068739167351364283957653316049483401789357814697644729349065632876774966330970647249583419640502383581917518686215684001946119947956570582924179249203049043462951141277471054914723240962318719774190901986695001724446692212922121549999448955319694968997348532483280630185372230343067111082345610627556014783157199027111188469133706377070140299982269752061516781528765499775893370212963373414384382630576810658742487304217326489351080465069912540470724889055899796283254415281574014027150372943447793854427400202583190273866991244655024523148444162400309349128126790691142382983395395531504699943016225436912591998882023117143969669861704616416202077534143462777339107797184734111182867105546820425169410792618976813327083828701570967735983408801248561937512471744602052306704404855988812425596183231478169289744580188641573267999672299169707607446920216770869032224602643855766418211487626532850835852610199495631128333656028354786508962549059341065728938540224206401786148282442745955701660923465763049307035338094422693091097996806200586234403798710607534144770678295600903995099315884494345545049210625843831434296811334866159532649034467089232697920362035105039541232806274239974784968464254326106040784528404910735307599241331791402974405783569578572918858111904146278174109266418261787880232738967859577355743436946903014524306420257797630359478362438693360142068960324500530745168922039409234354785635898348378135704974552936901191708884785157767937720299160320499900579352236637583165417020143551948098768228672899226286458416966788952028102166913976130975638277869481438714744161838831931997933440310272275573349151248820608218270924656542233085272117269443475393108377465183614926027590957031900009627926022733532165288085219518877193378909019961683072620579829760626190585399942975183836338830522347856804502747913638801153002973896185791112571753194232163856226542047961098514736732449181004898403214445153671106114726928084285681574004922669803462526717648164220492098300922434056367870373042785323161944842065217803861696484343418129865185593777975722782648769908599099356140960899195230135878184008982665244845410172097077183099066176905337147361160432622294005688459205759560091591823667710786864262939313186910699872438226342177329809153437998379530943625272887399291697758665684662280274673308160427548796784776275527282275191343964848462956221334787478477289896462697188198498219799173614888909857285687596800740259158666089989566431462545123689437909336081699085025060304912046855705860712185641988196212192675588054842447391155676364275005175204294473860964512696757229264299685096695065139722114210359923905718365665539367141489029489068364808201868357690796103389396957762123880737803505003036035601681451957572786927265841393979094787191474242056656170125129422278819628750017946300962260646605752616050681520569544895311729210679097384641206121188837577253232674626042147256002519204648399650558885337878627679742360040540640502887330168542582518905726091823565562152799577981815084354655296400600335559810695857413359760666473158364637300994617808642589093930941141291485319736973136012200240918959732019443725558047537779449726033826706883160468141431208709696874549325648519246127675507624083495173450407480955444602858699878969891139024341532767189123285301087218219979261736948408222052286398634119755222807306178751614085778067834122313100698693966146550661967104677517140407795763552848924288494593383496695233766397022515608641343409813074121270669175975061973485837012102766756433641195835421314829881808332958437400664012762091024465210978118559175838491230850384373113760301739583697862777424301377479685813524598766150253922656951094009185181808276977675768307761186984296816534703571572186347292014645031418967761779301466314193697926556745333289540809289767041472076742311983208173245716535730140261519230879357252088510894717191695537949411615837709613090166396224750505253545240966833344124014472662623373268682931739243687341836417063321707833940917761761568742692255295022975200669336160617598834022736830570802192935081670294652346054995631469387523286013658648594077099300710843249150628540087216945147401284582891094104897851459828588192566538375835240714780256514198905220659024234818990905997454570725248662065142684743190323034857704225347597600774640231944410923307134345285892263297725207871160755448676706505469723146225660452861335535782928118394803662652022503803858614191631555764562704966682755355344242940676952869164424022206142154594535727808704749538021042334120014083725639677562768578125382710071390519114726106467747975489841421908375653735170873607826909788318557553288491853297970410257397444838522790203016925574404029306451541644705085598438923133319421103445157293056422967374172460754330023580378232298992161468098278374738751643639127515228027891396466213848943072645438735541265659896967559604916628844634540837992474286399395239148239653696178122126085836640270542165416933537215627506571798077898071577597268637490970285667595114103009269921315237291603099949097672723718510257255651943977896065169463851258953577500560382734687634994810505749354067796632962095642306752768253091071072970009697373486868793540273104349096602469485523592907714623149826366249523357959169067227498547899283184743870947987990727861462172182526737771449761605303885541216639605429588846753442939980040808778221169631356651352715275917178373234168207639751814035448067389053193984854891427314760254060408483995835896907046423468395610954931512371292983221288624419059065106667242800223375322228958026681483530975154439180474412089128378280908175522947867897204455846275539200450742088375978172540492826650749358453754005346512344495452419954298844065264383554732172471804599319531863538945716238577183597112984705114109817712422492797036218992512571326131557343932595650323578773322399606134484040014789024103594077574054872931712871120302502479143194987825573253568450000180698489604067394983720507289509028506291117503946400492792735156293253313838816759373594972450013204823538943115527733492718606540368400364025733502757117370724877786222564764957292458400232564610643594277656085620928486386778151324020363809995618134673618614399914456880089094732027213643963127430972507853414560983135333331313878607888690248933714921099200608145499591620239918392566024183088806570516974467783640140354038945808865565538626353866992945916948101155496693784831589527555262389757258141282332696695035774435355245341784922607503763179037011799378689885770586106003687491317420858633865810024792617045466829508194269745929468151752129977640075189964543350186119856856709914818003392647188070943240577216639549412530714320002471462321463761108382630226974088421800815148090742412426471711589318255362445426992626086775871382538655870287955591300650720471961711871322746089946552393090173618809462991915954235778528833923790668068062301945995636113391137700477979321578082726294311096631913155029154962559806716007387084955052068336880864542895806241467737701538690458640931916957506486734402607343827472948183127533416748441719139839983609882601440715782991849405610478576858177486271703004571808720946652337789903656964068173601434009488278443563730481167294921551644493189553985344327721641477238015116187581855434328203325957475067666456728786824624828968029089640209780858056009571707429681178599047770230046896225074463641840915274119600546728926521494846839548593492963495144756996520769835635951493399705025599926174922629712183264268245200003020383985780011854534638188263795458093186286921448151452538933478646134723150712567022841196801714467892770622623332861845322566512371916142185995315799433290946064907849089397693098645619471142979499221441400133778330569291714149636579243345611448552232920611407022599189296296573106283051408853523705394643069733018133938917846254837566400940185612515406448187342301154731617938879997794341749446466525101986916647033212691289060028339172484866463911574639267370595836698184441428825435894943794868269498713322433715652569798327577212768616528352896995139101619964350625820494666983142596837302773780828575738989971219326275737501254088363420419762326445001769711473879630354902900998152112756195715205378722665920902053775688172223678344325114337573224964669325990613068393645119493371966063520097401137454693523868230967206993049323508901322055328214190478001603432544203675369102428412021132572171437596362951723393018115390458865221105096018545831494036759996389303682322851338431140754793222199747055960152231238590228666584131792834647171984114934159828542231645883506342730308104313885761688379504960398499316786222477799631048436202533139080739755004249653710492018154923746544083960431270682674161092909907469227304337490679983774742530533840565569356650100195217992682733446353267989007505210891892158475453959611640038300031839261656516444558286223788118422383792172290065588126141410923066910347541514974841418972104415921179626924932261613127341637489983228388748786980819794207437211655316195224543279143739623396773284490444234573127295779250492661746741158213743800149606216908101202979382577389841434128963002859273493194368488812878588722344610987012857887766835969638460467260397914986167256611610541583232186661028219294117665651274263396645658051024428429927130293974073522352197984144439099393666469208605347775982862765589839649285186488832317697017628482587816466039979661635952388329774663830433748033361305686363918333268143592968082561785516663560478291458835486971607239874262367155043916867980758956347209495139021128546649082961936985978593258957041916016310630746550499525902947037487705290306546661277748167137155345591653602609931505593301785239280609097597395276317208251157871789560728252283561386437501956742485446245051285156053041047232869755784883566090465648378663748659926400529354136092108232597972851073174132978246177853858213906036213015258979454505367644194233787605308549309237047578642931540271826785351915825303721995981019442768801807194414287953182273281754612867317354973573423020881205834645317266073381344228841386103038905368431410253866710978272904701265421619535429997725382856350504223152303854419342297641792413780399466114181394258790120775528858995574767831302101703707086197784042992058980172661428783537966270075572295535539748256054724210195406828932053120741127643752461145886007812831162112375977899202995535519429468834224060118994441535466672543929034459199739090034560771325057580751766041684178518303310963350433028049507504661974314422226355403700744224843251426419904978121143636565029124003544098391156100502448202883930860362404225210883724585174012279183103775133209801951106979759225875042565105046570154097902022328070411136435996581047547295088814072715092448254156464622364196061306326806367823820546712787713948571794139198235606112384676934342178268327086328942466272389642949123448709914594899264317404452149988791152788539303377105109483785333753169517926546961587747290678127591277094038137888409774215086948584659114972951159462538216748907581764897805475541311184104282818699348205774448572900341821647065973108527095889314521157999980523729412221543232827428617629987049359805714521319322012463480891350863863843673706338607688346848556660279701950744937602612907305522500951525850901131936793034208141854291983911209360266413124314366976827372725587070279042519420497285469693531794279691496081838273739285210442504801169937766647361957442869971736268288611413810979115848375449998596740933701279951684893014285155325191369635216958027509872588401652289060788633384437773763260979726877477678204549733029939494373037725164417527202278829094055934911789389280118484151219176883865537870211521981710745350454520078025080679252165437179560445615115827739886203392688307316585038036766983630714420442169396577087262575236736663859618493929955765488599488485322669845105587840791820214834386872194236577926480091085343686052536564445134547705136658527944953227219338310429113699342176458890299877403901020740321959888717114350454817286145734677207012226233178669433093380864612396829691512674180781577928946128136516410747171035372981173702157085536177234172318102721424415696992297005157077321617338272972882657072128704924183938337490575101527940887703454785759295456616493036118591481092448149040162160240068839967138791762612131186105327554815839193040466642094299875083576175210172672028549416761461779435812311153147388935176832239526302656044675785321723872205650540098758774134058515660169430891566457845453299841282421826421975408983284374815119411346094200508286156279475960885105650757525710377348123091792195203164600271195617204289121172609266884748644435707758160580813802478226005667097211255252115301184558646423911363324064797487545398538803155919611270032062442184463599462019464166991532045060372067062276617036189998551980614644683865040341878163158012845786444293650121094842905825447668312924724962407778776247607344250121500438913081899124675357882618634974579889937043053792720483354257322614553675344998328609014705891288358423611227385127059068531577783798392849144329031447306773547693441210660772950181191587254244639861797692104075828516041165115655251942437179017079564207123588000247301332877402986192124319653819564391893201946948559303453615090872651066001005550009402213012318087460494931935002027273110544401652268942514425282745555374720195156508933330530148442266028178463481107270613114881187306793662018753866042459747803648868985607119284712488038624287435065660260202312030522943202860695423973399302384821750114741667220728989376463307947738408680802060408154573622923824511839505945575082029211126879672378717389716646214905215945275022980259765953447572571130776544735504079309217702641477591573833643193658511660765512336010110003930798941646788844263377691970510422860118913840814773105255761722223858712757381769805828357291866794734304369218133227814850291416073654912698880913660224769418089899780764414786813207415540894234908744291668157010625653276727987925453538383439926527769853537030393441172249173427815335696430677771601596004360154273536254362638178783217694716842397828801381084557701821071920115850816671545490342533252290326488982511733614959579664095969538584188265813949392863054089174523581214861438465408861858504214761703738820726864081691593832052041916427530739466204135847044972962370938959450920614690315858781286016967526742129626393831438868242140274983343760583943513809886892094183358260516967394329610385535981957891836299586292897152525158148717334961695137974623174047931818239686359439989447128371601953848618016593205162507144216208582788306781096267743788164351029070587923338312227733015983668124441006288037523398588880912142828623331395289745081637722717976216062574090952641808932765397438365130192106752676620965542007407419903530530591652336408209655279419448126570619170080961507228407264215549011795146455601760726594547296021109502283632417626114196431308762347170493283664137775655018284799730005117759441326365422779516161347022280768048934071671599400514628021873370256641683718364018023655166941741029281233622705707996950064160563630528346292871490081106695911308495103522446564974223942475550010848904991116342050984532407998837426970846469839850863654241578481015024009293507595978888512067519580976824086369092154098966980277573026822148253984670771809234861109167724997128726289709444959257207543846006396020952617781864184482022874769627540233860966196739908055017641285436981552500829748628015598811686287680195769092387341733616303571988269604025833934163026801394219360313733244417973540618005524949025105605083515391085551678085572088322890727451492556857377536308027165266359138731169307704056340885703182018843553344463038622312943233859478908855817303891528811701801478509962493587025819807511700704088048265882266180438117760833778720486575662781691312360629073174689872570756123314436282188733855161009335989365824376717631811168510032867913873973226499872664614084906774957845395689210038050025614689270087891320727891245348920719518714559659583304101073334146908925406314143781728192554150569603992771015101711800982486199254536495656973182284997440072717021080817380995424486096012078145041535863760733716406078981426737954863494524850744319448546288953214861623001618229599425373565438313444149180303690231034602343104877948205286352265924986040555451181068751630670596605294860109548243367336787186655603211109589918091192884352128486141058263479739442069428477712820604856062082766926720530557397684407918708409658882716982205228011216285990446783292070454088971286951496376858456398393047810609752050887580699224836169292394200331262815754153859579951015447694079205974713080618995297196129164107037076503240215415089874782920735071470120556772950375300054614922281445620213186577487375725008115301718432417927560359042363736489348991952768939980114713623748503946205378857607622504655404533966583577732256505430666429929640393748245506913947646317458152608089778895733187691551798491463099569163087776649162583201661208564661645748326800421495136941887086492179430049645801332954140787321771129117440610189890539064939910181608352247142990966174416899982044039898557550222611761354319544089344989670764339232167588699941507190759501369372458315154559372116231954391110586893318508774657801156849403893131280502846129979954120261975025976583143745189502738649539003757075935917761623862556534192091818556561257098449260902020958028736314512656803274747551309511370719529107854204787010340876901019406615947778127605030480066673160645182773962065788086577081904481445578869438223982542670790543024346250957890583876341484823390437399769313722833896563037163388093582359315639952544409492315002840307085121914141138188205384235993141768961914792830882163105731348202629738552365413467122917855208073892485234006977097040718537382256077846448666988647672113951963119569197423286991322892597820909449987972124825045995161475439251023336296352401245242140074793846521735651889670273345831532682051543057633494312148984197469482322317104665835302965755112026854381585189770771642532674588634939733376356425983921230302634201412103764632437215890013888110252481005134494545381986706324577182560535220568847987062024760494165136389515184278734546111426706742832377934818744651973961516625420250571305724492567240917360612702206650072735614960934433034913324132848229393165093582663308216790586472278459943951022359809251313599326351689675747644868193061090125049671854264967706711535400298439286585091801697742131274123904895184423675955985901287502782943695427302610558799327001011890204918013308584792179600360100175131758446909629793709377466445247474266191708933908529303263603896816171676333513590734342267369988853097571222979197584744637433912092012294589860974012742275400369491787119277062434192562657987856410561375436946942248484454045261519847878832203761958147007717845744316588801298718375257714736732373274672020151616291576558845625734830066349155936993792821870279505595038338164052701031009432135620551720355898096004871285239941114504249791511566715649743279346216540366928631405420011237581791897611754802634668344504621227349225831975864710361077504713497724474588333358650352406671588364340918614990314719505459183052180448643148702073936843861844425269777030025681873714239042200025304107295539011460287188638606007140027309107658655282255151700078645497237304265030262821190730665283383623724632995108282293149821186597496318078534458159382179693010486882170579922127643462587386531762492985869463547714413804727311113960327309078450258271361239141221588314791402497373762312056110941013232267420148043351515547060946272366764545883786649651511741101921887300673591452884445499134542514925477304202859451794807539671231173231903144068209130645511768121308116055311985934777044644951647329722924713423744855181746172576134722693667779717320692216803670257594447628442227429964414313697859273193353012096831332063839896372323050484188954316071876349205295474341628085043924833292929745737411147146286285576568590086776312105800663078225128210744518224662281198891350333594248382177116926317563306569915778162301421009757080919907035426167032127804882256077435396173257535040398138100877232304574018885331901495163758824305542416491677357514263235594850503508744988906328193754456221065686108167900641515192680827629393052526979539189120440812817429048587756702530214738388668172762496960152113655423228348505989202395294109198514631135163840486555050088868649951482455160334097250880825774191505418312628210034879082087402344697169140310148072173787673332548375046449006448354025958660400396029797164753195741621748866107384930825606428026872659291287304794795483785357394035970034881427120535467632847612457459901795996516786177573376783183305785320717449381135548821553360367891148569263288077369084889514068002435263898376732056616364085341700120694827041701032973881218163152108672341288214357614324278395324716139052482756202286945112526388382658312958335100259342868822463546856999486727543303720820894452639334271971065320385474781375548127719629634596365868186453078022298764859863039042163605440670158410887128649940980279889415334692140815910629752325184469210423194041851912059130674429358342217769948228617241998389523117647917314099092569808413340520478678540938387425871412602301141276194188605685280444209660783074842539455125029588292518305094159240432469490777890071130738570406396260254918293298609955682088000702687248839139817523938612358663177695299555761449050444171907068409308565626198158045758221296013565219691867295436975692601180073947926358269534920504731167294288504965394868526055476250432701957965636067922518262401949760776659807637426797213346712159903383264391961234085702478331014928053559269287188249288137376862364238891979665903566146970391372709399410384064569496998014657263266685364988776537734203604312138900510156486748675296476103047064912904422279101054308063199146768411680088735468721039925830839597360309927500944262180385808001756759639384986157122631713097253863841213587929030432960064918903955918018284852937001009548569340405427215247865433740315823444315517427354096758011185067878066869466038093126489611883034645542561514390707875503132323073418050790283124682898425916996098590879594452129763458520945217604961796965379601418168647899602650391090102688241680524436892687585563370791663723638757168973800314472562334522253731968681280358872980740866894718607914131712731263298861246363112056153133513906870683754063575256913387136004092059610757050473905711520703343234462372526527104008990900110455255965766588088482799614229608915045792516961893067764385178818904093170580708602045125232180218669332102471420324541516079054640487966854711785338920402893605815870304990755646220476981652028265304571883296878974465322230873574782467096413150253696767689859547721628196356638257573574127317037849724327115879381793872309119602079595426505564776431416019675181523435804183758096347762624958591902835961122530576632053244393112837199839794425065049814234763309761053208301082516617114224101400336418907723324812436707990314002146594536091893646035143021391781357390551246751674518455587255992874147627639475548355281612398272237859661999537958213169512131636938222880998763134854092834212324835069690061610246642400187240047754081670829846483314608353780145796686587965347925576314736094205376181688632609158772031029573809930565838935932542667367920169303291880418759285574725099704588339584461980793104098069187867028032590367854006769023858498763641817830869200027821909936924421451061279787595445018967513756512984750258312192932805857831743217956660980968999579271076425696210608631123730763819624331818361207575255572296751023995421125675636303214953019549636478101149451638991940437283433851559985151804831649146617259850622134953478045450344144932132475072226470244929887885788129906258216315758584940254395366555134559253124378489880495004953050133014718778669377548794828470604224979298118403231369043167768484139746354718800580158162088329687845865499724970526374873400244940177107863161982705986570362471478460517263625160512790469611771410755021049257855400745218873142611779826040409054586065734207649502476269668942896861127626271070084144106547241581663074910211683097003808849430111869624657782165356784456116289396540457124375570987217489489047913929557450925736212527906757809978962643785828852283712593654836996180122594754886462328222742152779617458878968419485571589728898157271236635068306869708329676129813430058203793401253292434997723679512740981563419410778476257696708074653217291270588072390053110284879629339343723384174009877547439136700214555273142954703379052289272623421297037851730786610047499490132970274593953597944785981011945569135472167970770678233070173362262242050253036984801006670952738870929480138500754136545628636224855193574757560379894647554359424199005340341866589010998716725700312480256284659375399235475718870094174483598235306294310945066498072226408638612332886804825325772476317834493824331942982472556118737878290002255520821372420323406458770453914679109325823076592439303909551138148964946417362564842939239655651296182744293573445965451329109286653883153904582697654033412472135520402384459498467182060774711915383449030244441388504525071825453159151134481096149855743662033937312839494681301435047670291456546031123796775098376313197643437255813248278625354119596257511477522674289994990760454125855917452221568028733020590605059678868427230199386721511398976856494921973508663846704578650564118330465829637787696528638099092745084857809075832164720884818015666126173985626118915894958761335185648564923377245545730318451786508651279397025692500184708995925364528970206283318658924442127689398607718128121083655140374565485616249634596848874438183430114517096164049621660432139405837186187257611938172946469836460490669540772672935506128072284528132013212083117337016668954225767546897394326198167426706695131270199810224903300717980388640884000047388000087519670232504963741979231229843140206328095337226213818227062954756357728610453934518758455428340517059870987741304468853032898647705800383105360117870284134938220925732807261515869583095291652695988237282077344363822429704079185962721438671979329078100534102466659180722191561714530465728941875906574719526692120077662802784588234686198406858577654716059613716899905583454889074848473846985137577602641814447725282754423811681767531309062451872150781111511431345813477111746539020198153923846865247554284717592276060940450623923436359365690520731754914081088073429788398993937836530403518518462223540641769855109571508106429299468089932438676018952859808724985174342841341474817554560754125853129915928289679436673416111371456461739890567879777546384894702888618137344130195967436147609780759626511376598923289682852904197315043188141870516082303445881190324406222807201024921034889639657618330801635325229458989588474936997953216370630145793968069369308496204534402143145350283561617681946111421966404477618383010750761137579432840352698504630077863574318170457613121107014727058789518806305775971811960967388725459585082233404018546876675784361956766149678583640145310988484519302873663823151760487553646488138230282835611884331448783606924204278701172137602921862184372537470626893941437276411222092990101653705903241489650805781666162985025387761327353650665694378091379906010362207761694148774883159654995277819896229958517348803848753794168070006682329695008779046459605518549255033796173983238567834434823265168228727108602519860734061191970823364018501341890704361300947772477384361550018263286668067337871910215279689333145829672856154928267119207844831752761320121376533268261720985922389018091046989574337091031863328773409121894365509563227173313479774801186959949196150570645242785500628734492630762677762974591077017582561487559055999312758474335037062793856594844777935679707115074938835292769901791858149682201878840410740016507292741964682644724440595167874371963001694893455919850329901570205055674423218914791535237739930216708446457481409414296098397198543052361247553225694460785029977713100942666493391170663346269610344495691134202053155055807041892304010018565003275178712899927748378980358881301685113798580389025220965281699880605380066756528477358138642298219166070744658336023820288593450996663014648089980797799529562535348087597354518977228543056387991915439330405035589581647404302823959878659452319021949483576679675081641254222418841622621696812154276765830811841983797308335513538592984459543356117449222771980973970092160180450231957417562457985178134518685286523387918412895437376243253380866191807688686606925122594495912788796645205407463765777467648847049191492076472942202937658007054753866011374601815103505548554645084765002616880164985292064523105729914062725209881656229543741205721755693518788105169024496595405156540654445854630964378898296930599714757196281631772319503210710889040767542498717193854701227903537712487637967584009877693435674553691669957306592662183842069066868821586117660159142866262709582304062908999660126198619089387020106086659924304559295088311517527151803359540677863598473283223865180137099921120574206762253637289976706288566222740330085088044713784942897845487734079078465503175127612943329177046717860423144094741063999661701182177864696607865442976177689953534201024782459785664814380261299724263673620928210122370322016689614508167687175281111691357666250644156423868946987565863022629959755350234265400987209634532635936750469633495396818826299238817398745598482386152605575509799769180259304575944654283456968438241918076780591870696245817333591925230413067983623365820480963025814787096357599074725739948441041031542266065186734563692024030525116889824221652645978824772923828399678772756544711585322480273385883019036476685748744978487918287395644783548810197555044411284661847147425846479660683304793849757735544127185347177078846726207867084695178412975479743036539855044011240460086776535067751522916039441110444114850329193833747132935923374334893042061009709463601803226264098382734740752229854981406747546355063244146624859248242436816123067948498601376011956544455904119316162996302688644875931954405939447343864798279503878556126621360172778571526350874785004458494990377174388813227315953010550413972460316623552588955341554329442203229979572952351763564547355427981385459604502353890988182537036071686704446919504402782981420087358607143162826610678076800981798084600112276678017651054609022094995000516181141505496351350919494975772855549595341181911250765412496073390388574146594307437073190013650037065525285969298057476679012316053679810616944470443374791713779250129911006871480056570511113578859506024980271206103032512429754420340809852669428148723022391912446635832604406492623491064897810169067080072754110067658512857816495590679744077772977406002490455201103297215901913871172306170714717920877214415461980087709048067052141406626252490792322592328510920019169050747020339636013132969592929923030125504372817303178847406757575319950157744840264528328120818707755377079845567881713491519317334885268614759982461518162790608037864131420937907678171680418148831483292830703563887651167801638708855223030144311782833767132649285822466398153816738686002782793937255003912113366726806677942750859589958646923446587856681117765526685263044993423052711088095460534014077941189734876022181352515602767020481991777499563275839932042264180975458901488154201660788191011476331873707371933713125243184297370707976532341591187129079952263244012467860288025679400385900657758001937776243789074401046381158430605794508810586644339540303227111151548979884049792551434188254500986566708825524616469824675154685106929100810700775174925681471005071053780389057611048385143594471239188318265608244265166424520500036157499290014137993559957220983708422170111442041119333091574651428807439327550580843920851102273440051891094212644086347534573116827515495008375632239162919149828933496934594770729269227861914268595803450727823200315775248404565111594279244917978544063068150748557429900353768168892305376057472543466936918721692225002368823143890388551555901627768734781517244186926115614911535203444554587513482614923435957079941106670999908441315850979410309842233681902585991311387197594395697955776054797640013146999183593223346418087102596892804903948351678445735563832341565343461634545212758334028524432667438745658542072257713549839631533209762439636664747903640649504737392109803666137875147352535241740477620710922133870877286202296999153878606881652777966258866666579069295823376990076698764374211068501722979486200032826536079478872385071585038750194679782002118889382576623148662702600500845640489067283492881143341847976794811789502535249970519782344493832806552575836455085330131939609994261690675936085874427251455455367167721625454437641952408770981781819651197077198561239552972737136570773251095538773580976436049150368965573892451567650051136117271092639472280210362126588495356731373612422822361869609976183190199391793178840162848875697740224392628713852799704176517596335505767302532775969357422345349445707878662940038652097132419050579226916077449440089448703782817449590160419126465041588800645398350857644207663172565602908932228722696516402733793473375576387962232803505802218666366274777359898452598129356218066881965562178697686029882666675057896399229685857824129461601283602165516802256187649390403724230068038411236364860455165673273055248792433139245532319598494688638259399554872306155042613876793034218086920975030408598911542287475888316689382191461956872794305866313058045096322748590013402041576105128915641661836927369044368738506433133739304598340090338946103874490520602925107744011812189819978486699758847135994826633026679589177106684623302112543716712072182800748096442094065959270002822538907175639884646989838469502840485334477546960745121608175212334594685187430224560867531314721866477159115886800985645973331588011184258607207857151610819648880045358632595702459448867775260784242050324954347896965736816415278761316386296849677036682125915551448229547913704697636229748553922880864505372498451358134956889220941977146678400867964566144327002833694176767197399338751507410499673168286302000897536067045914814650217406472008733045289494874356400552972929003219203686405683657279319944313214540724227720187582974221221598564978152610068103704397374836943411840199366849244076647871840518915967181745353097693350644258634341955198843950019708058166826588648207940449411002053543012232008836733149439999173978389328060496599162160175074877145361194669758890032718116528306401739470081099398397578774576069088290663714291471286586781438990112208742673275274199021131115052188888598484388721453970372123483256140232791576448344452420534738334630374013128024322618393341924831001135158972103507247970824959346207323863932541783075457032613359475879170496056279653652884138841145281365731476235608957332451174921455773951531891912469793111056177900369068460522482183598660463393366547827864347130781574365768742667922452810527456163357654599696733298059375951818826955079108968614723306243713635186509726161822947023298186953692604644860091769219993923350242799894340587435226872317776019968988885543302120641952588511565650592756213315593622478702865947370500366139640348388248394814632900756436420322816211990789766345787984732016696012915539997179488006403117501257893550192474266904673423708429826374291387431601553954841160194108254109029256207976720261100389365276647934008288552689017083358515164957307052530136006094306335263839761400289779079803187216561475925309213677862119466559873878525029547124835478280017148413327472552357504017626487832885497588733638503704676617705203236996236275924879017931344581897224943276418372868917483485072057435852542613491113995805501255645130518121133722290972828984145189919029029355272387797721875220863221595954031510343726368597211343153384354474753577883523327126344844424548012695752225939142955847520894050835281479395157408866012741093574410271096452001154330944153237726417925864987520329627792630500889373626846388216972981895377955199085668246075066911816260543579356735104869711850651437956151388736351704345775375018854020199695646147558148189204932283489920407944204308070831022448714999936297561988485423978285518216738805564836444309442490513003570237951967269379914822891468454005525724761611093635714125486775109906767708539609656665392611338911990448895458408281840983929790522664515929114397542868415990274966415885005873768346757473785239275382768452817177629130018777416363459764595679865518000643867456219707637099901001029125001801512714132176857740717813265978052193844210301051061483553648158370460948917123064006619652408743336292703613129625380818062403822717843145265307872749910624202350646044545313353011425788925374821580362652279459443856360258460495679365494109002408983661609325883522887458263982353253100089771118990970621757132377178605806347337029460968866565976221327593466373816653680015038665715246377486390236524257498484057263067801831231206175614465988418485071053751734531101900829321314789171637641400580828377367069072131258070648647277007433854496398793122818199513240380097371261802402831042548684165351033352064811993759789044007117025069690217628566780709061316146912498655419144285912696520595624182352693875156217885715251593044814045180511802113498929975093059541090368815026057756817935473291104040725262974912461351163006125626534649399683479417792149471363941003475240685273628979254131884122563500591472116888626327311669752934641440433317796143843485586656841219557492845432158860375931610211234146753903999732520882938663621343707689855559704650498532182180254900201541290392676091818825123322814891069644657354551174167787696384507436365435290990667706970382711570239120598871798846714391260140893552781694193048348106956357955447117683661709125237157667242997024713947165377817982600328422579576063314407599214181552929489057418420345292656676961007082034114847512274796413005369908221358891673443404937128460075655194363940676717552984741714946561345466056954638854034572658545411752999004574681436739633970194455557133082962983855226444712336105403199685370179326534755373779813382485775448339632603945949486453880027699844331541715765751312475625633445812126002370069459116822428175192791311035110203994787198156921484569620465452091217955976682856762723539829519865986438022285108112686238178280920988010473674458369868303326138677444236598868106897781855780335035886656027532891054910252918105709792738517230622891775273052947659973246254985219241864587418128359935916767158239534170787889374403640141746476268891474023974255316307368039791629370812753973308125412077562439494459030696639838435829884662409412159272484733168799576674130017664218953061376510693092965344571959519746205303013157750646355551792542932655701190534218577941708455378339334355874841144924864500032407737835568585537562842167366577496497330133750941471980941055875487532459146524346905148008379494966331498280969394798562296392465098863175790457958868948557449058186625781509399411042423580083744597658877553169052620523844120973640473413269741766376803793775870626569147704952250340252603046939946434111080135965911292957954420150414603500755484803986217677723111321704626945819370095488934985722038827966979126097391363761498089373426324038411999425463440513578231432536155483409056696022204523479846021929983301599324827040181408304736066831817192337811454186624704799238997847553655475369537238132770039572979371188985663058028249939336680430733528699059723586621423441727327884611307170659723641602277438887494886445375532149366320303891436874752155718239744557404549668741565494221772001676047923233298667247966867418182004156626300054740001990053359264398717039636574590716092188215127170647045566213453124747395476327547093801482449466561352085695643561096084038865933604493250958093640837132348646708170499859949210272304606806823350360168358316130554924468788836062577813563211066664890758838557314635705854184271867777950802620807650611657991144284921679690195292604319821145742295258073505647885352600154747821815048189700106810741081976266403007051102895168750765115024639525701825585171159059393570354304456791158367411114846449282601510147525623130262569744955248841686209353062162220665324363952745658698021083731939326339864186258380841456204406367621443876055920060262434290462150928118075780648897689857235046217409066456745489665704607340098983165247654298621966205341197081415889951814317560367836017458160161779346078412694653100612728984605871443712409453055170565169130289359361830431077180027547452903466920732868252077068869076238370911570226858549816173878036277741890331040622798840204082598750049835350764551360148161141743426271595925747848009574753465392950811773484397719245805016873712336977663987853548070661834587627096525270558004712591395048442639913171324650281076705555886253573321692420857672106668689944543620915135131448361021858280565583002096036641955403734349983574767048746162032089088281550478916603402327586622099232705219107527855369684233646333845372283122086997905262926917391571029040680050913083396627737489022633558413907094447810292280824339878841199143510700490345656635644982182154817904269098752479881015271232923031996159735507765321727871754784253555715347102403226744127090000588925464100480070416971742518385627285105720187407710447733268575942013007813613369972915959440881617430799957520852431066075714252579226699397274932196988863110984897106004590967851824851755451755165660480852520246520975789748546262456800174638982551882192548275615481899689576681928461148228284352724173115874656571490340650594869500734011725335478163916782764503892380796398276595324497873868094611855411660195751219834718651165541912351275309279459395368336240267375073541559564671670727090798903588612172921634820085145329907567031644443604737507915019272113367485522282585110464167565278747950378260002442744071827029975858410535117402290263777887841897166491783684266492561532247845734850898789266504096362619210068285286545646410339099502318429793193647963999787988896305307893056449854064588640366328228411367138158686602157597095612618639952882700105924666812844116309704292311783957695344276138459693749165451781998779654762707686567309567802118129744287594108884317473603867479504437477500296681896393949212290636132086963837638717589524352422519691900699189637835150997220230003390601299939725772246411726755892501117593193950514033791382063619763430750682413954147586437491647570332604717339564062874021200698166859497608196775904330280913060239015223575472082803716369956820587264801216351219632180055335137310510789085443386989452338405945153078743782962861462174327948528871906664222604539627907463053692181827100654980984458284516181708013368719827878975304330182998684572102885055291913012561565901079134879280466323544316536875176949940134295051013763916496681480020952957545276096405114008466417954451370749473014619867287025105612734639838471291241835953707044759073676440408561820403512918008140717028360728316259558646196983945030155486770952003933940866728698545190173417345801624712397121243506642008235744387177163593079906634807357114457136472602197625139647143929044320845654408134693020897825996581712451820637778845858747074049234987864390760367225145862625337188593738000934849471829612572645445926180297747525028354812811021911095326753095972117740831920860282476143937618942768042608892414639913018318442032804386990127504305521874232541415507634965457227289299144750952250139631104938670257320564440438650506140967109295766254426513733694002310128987282746004783154071479776479862754685881695406599671369288095540297575937991065752894095228709170054886835850963707205855811979505720707715804681015206788898128427823436494266508048683165365748398231760389392441515501910862846982928650791804061381390454798129286990583307366679564481814104185711247403080223693311286500259874362625587950341484259646629102681668848600385580839933975124634924239632219999333768347827504671224863964891965431938704976817161825398698172786591559579719937378818519530868750427202642047927346740523551359410619100055618301117568059278671911111349763931449817817281030035996370275907848510442430441389263128917341277359882385646900926919106551228306085406448041066800414806871531133780187598780240126564157265595710812978662271641761622392398225757619047840859185750981098778814493985376314098635496576168066244152358958131134165866592871955285613754941605436781695578215629638924563873961363332518930060768949099887848232409563982014654926608506722432815025758723376066128484967744846470823921470071352866848683731136585573961473184687034226521044636081274369491532743580440125775280508492155383152799375578415460998726620913634693551971977152000557875775558389138674972396177304552183474360805983514427200949197005374906540724672070929142010529623174566060574676449554327743538932356584125695702053899313370154306369855015565427459910811557554625168882856161623674306376103883396757035949397103751667414561334629697225989540905153982083279313154034620611170763519111363658095725793644246640628995060697359170976450418848457358244282368700399003515829751013889716463554676864204904735329898002866793531661309318910457259447548508093015384787189363945918123709389533530901744104613037009659557882270962209804954215817012732429615036092225201183357440812173790437696999184651455930925807405852645423738363544678352914992623070658931961646466141740398287004947045038229987763833614373419473340556211686044766333779938282591473568703896008084633016262625125803094710420254879082471193939733156693738399960089008243773644120033558564056292393113036508431721820158051962024481001190071396065982598353825427637431523800354122788511743625629701136665304267413269287826611466657048406925416125979533595663130144337592033919615098480830609746816271328136913661293251620002951151627939560146359583965646721484725047296310909626763172581213552223637388502468455138919822206969808607550027402181284497815889932113760700688329027997689613752189728800910888254763269984188009345472343413692156462946522054003339789906338578290836153698918924724921680039712025097047862787604799284358512340777441374220193340143792886197822835972977346704908594781868290932145465590941354746521615180662242175061396445310409664681527779129885753512816321491906918268490929040496008368460822446181205907560958752037213789665048371741733787652622312445045818689693786715125088295895313760765753011406562239953013803577787784656681876084967964604280998636402242467434555734964600068744255938507289428500396250649147496245240734905877353677143816469727927189465548745038030484938394152029083939498143942281869785607167027418452645883890357007472614625535291499041114557239205780437555286922173883191806796843041417216438879137943836393439806320693152943515113270367936846525040427870405686929473415462560582951293697311052246619095108834247057772025429887598091387932859346327300061528199250059190407959287419843924682737821354761364154276373941907282256019483876753868475108805540923077620893412134920773944353013091138453988428686948051966522968225400099548312800034322430097099716745595361631873237695043748182152470162814069234364338521991687526088986429478990534692241124578486869411673557839039454508318222850352410667000582383122805304095109606312567544337465309012231341278399059071835451490957087127896638131616701984792720784050493323503928096677037839737819536695082721017329982012224882497160825508041411818217838051741462826897060399739892286691929598146230632879319343654715114121374786881850003794237802716983335440278503150323687737927383591705610719568794785538657859749393447226289700226397694968588440458807468586170641525583693036390836927445714642864021504167770021165391211404150158424978309571096368162543928199728281149651503083053621993055929153327884100678832104726632798144450051503489954480678513564621416311585174849399802769021819991113518499261657657419974855111967431681964625406167188482538969595601652577581928131422079940078418714514957814736674067968394703891567825963851447385995067497840376739030232386667780578759612924433607001137718668007377272856169004984409358754817402331196854477903616059271994373861450250126246858388023048642141153377154278933000293932760698569379990300770502529216636269810332333006966694169834555443850153858687968157447819891934925442827113712425282823816664980762080795956358364297437742409227512221366582963175307879628572397828316066404037604827131725128341232602429466241568175672628357720638201179215840709980930308318339505511739444926929928566512708890095901228686109000744006090110676921826432071406251545772195345487265258888172494814638333305879640506463290094927110901455169213668959422834105104266523422495138937622765551157147940483109879762808805148116431547248192978882837582377934791393980767605214114650669914063852313016164223725800638505135971126013369857834805690593204528733021820049899228346169640721882758907526697589432774721241989978169725993270018487857414116038849791190468646845443217592267374758210323736798343043244624846709233243111761096544035094193132297566277359070783518932251981538839806947430262365775162232642257436792044181803787212871277382571939396380442889285041626924340116511974260731418072360709783615760842156372341057329559982875070746640672076993534428555364609571331164079326878471635440721137806510106935401355364174072751678113180268955417850646841308270479270732822456028406104130464361458705712884579486904563865433525347536035586465703750782412020688912522969018297320771312958289023899410131859073955215281794648549780848065717844630927351690511721282963705664796105908392535926975154576294174618897640730622662390201115050373571779619220294712605876429424738760753691935062918175729998417150650672499386582342403594063325229928644241684699669029568711843494588705039399455486462029063051666098897127109838336530753120118652528238251578674178281019741814520324319588147873098450671582619929914009524585253870473391354540199732564406566571094239462495877473904717355990803284351521723845685857963522176443573252301622984271185088338837280561160386146509767080446881051872015802561865736758083693493176667465474731777877994858113001463419037620877388667887124482625168090314170486287763743737522617181715760821691928097733240810001925339921099707439795327035063904981172030119752069185239065917188145372240744513316268057814849117047862960147248070194691921044500808146821445533083258743760486261547127031101664151875864871968135782642241229802295517674541376091637965762580207655782487925374923037291648129427034280684226330900513965987233863239700960223020331107779694653783819552548428345968495205732454783929176862877736760787803246133685248384983573557606158995072003213561289110322970460297932436308355199610739543426683906778673844389660049801566189871730987041521514049453429682633287374705090718322737163031197649696471960990018405697225564717868580146866023051409099735682609882833260365609455332262570047271066356203060828306178881552686862204960973068246051252438356978929215746096066885181969678578723965085967683488619808214784437625540562932808695436997918890955365336273964015413940324476934548263535032073460985249440959913257599355998496629360598689689715967867178418308193306012033792812249293140597566372392036177326596977878594749973531768387285507987116762999170120082098977236753302825546054937980363765930632475110410416059197970813876653635965210404701670608991832867940983389226447453907948065441353981611509303558203942898492421498011025947659552045011805442038203065712074467063645969050541315611641655199884538447024145794012283063575338122545410262878051256838646598361629303873393219502610596007594859137056290683354596446912356567861302849364040859633614141448676813383655578183049950575830417282593762605064105530568318878816168289419661135027994364106820272131701479140276773048618947328187166812901155151904377210013792169676624798539935655355425686420633972434457786987915321023542988656189333376791561407252947107323798711634571985676004364866492114430495484973413726148148359331542965861764774861846328539950987892683919941678280463339774294033295419110727916771378281235902456230697431606946645195831513129274178806498419077941690382996470655628453480132897111163870323035844129393570319961567679127962821573088639334187789208852170531881026541262251596038667002790570424696498728127420387447765931810171739863924077502730593432809524306613694010102476031392783695068483454862993630914231541773992408149393553498117500626114592837079508412160256559094808935483953181997626881956009066366418783123183912234435336311308329335398345335573487051955391220375382635507473091105698020326651786432597457913915470075409528363808518860625689014466328035967623877587444446753343945346311958491151504718415311570685154791757033114298172695384415595541830495799036791511012504014889710445030313423718614578976808306221968517413404047708268118371182743247305987818874168062901606251506112661042795624377206634974035759769433882781741468399809950612421698071993140468649340824000369198094665733062529862026430011492042342955895001763146283045310819806371877528380797441542329609377427180847771863152174245897068676508645372294307210711779688673897933050360277745292330889233591925257619337662354309152060255351633392593003671157161701932027694497869584541559256349514008292426415029591016395435495309945912650032945905395299763606026188722349721583300511659813927245274150759326756106319248363062301748321235523391172878724525086105608545488103498046534224621472382937813223533150353241295931122217694069004907327833815601134807996284661195982448322050505677211528123395677187667986796878060292531631735654475960179610825036045424960817233828543380286528555470002834677539336407432388639705278289587602208276924528470184644559402139998405533982191339118661283574920701487242717412802221132112055023986964616775481099264124252007476147506186019766070820106801758661719696683050280705782383839466432803666756637413251906132537726957419270432110795688246007083030409234284892607295802723037384673564309709454491944582689986764043104146402495491854591485921689480949762611536146226511983467030035601671179974816178243933791952352430697165602327288626915312035320583562882571732185030117719743940639100067706363188913654093097667543113917809254045514531712038084437943684943788131215382518107116697200636182630423736458863373161908674646628886763808912440750632458891703156250427916926409653796585680532122395956700079679566323343573729861757759760630700439172568086339265934782133720879864877029383747308848806494227097877083561684735868073730960728836969954039962796594954535458154546685140417977133091106186118018722758045614387344332853208299453198570033894482101055888286399756179566644658695364237966194473312276222023816255223449240373125398449978160768189770023507086353198753586124992209830337333939020327262322004214220479180798831547989506444889126900260372051019059138219728991797535449053031852410379934712506093668708197175252021426838074200862619540289249188420760025030044186960680552149668371286927994424611500304297108787657202434181539092279507348823135899702084874876464416870589815713571900373365503090149784484267961881720350280333286893147303870654983990842441754771913815420461304679630127632331184737796831396663485391479408498441561799324029026719766863938463316889029614789633481757929308614103142183494360775550584496311640137663491955093910058342166815407705262593409416272810532641955562837584872362501752571755638194614790315685228860656327346738769067193713667923517229604002450382323946653602242773796713331163401996886418905366928564998370747899395609974905670518000142777672814916137243872469321535932883731575617825463803895608792556609586026352894163875931226987153732042048369544490355652929791203133094517628058588475271257981326439076471615883447297538905719658754256570179945359132049477733847460894223390019411185258263808436624051400488134014834439653053834509729411644848250225686418461557252469946609989027644508701541965911307967119193101346007335285215205972816951085393445675859140749372722115889354747996454579273727498781815763610543299409023153777949622017500490152584145045417766958940052734801193110668495685205538415159546177761983070880986612761175218058743222335000328112019610163676184371449224962817462821364137324233018290356586271127163011947298832085788639249038253559060161350571608669725657319647689917121583253264125134299152577694306063055582434315256378004221198459938608326139705275418005617734505357239087546045333262218656646049024892069396710303448008910514484915626006138338154015402148267078472087653370753258332679464317894208038069306570298023610246825371935892766590155957391154748178001830941428096400446797892288934379732668576697405697586109225320938695948529958798363889988936194261053898229057096679064382178944749376540772885659991564965970846768559617440375244815069443888463609517888075445825597268638956753923661236303107377734486479998400959654998537172062502389708069689486739421536567624792807163557455431734638530880648031204318387440996881420761623490976134850315504720372669732812240652626520058283412383832989420409218788490461519515718988562553462788899174030128711917722282883060044909020751993838095020025086536461545740405688345576506543028210835627828524284796948730276698030673222878522868911032093628634424080005413135616557292837897513213364462208649260154456086748441333605019378435908190647016247603973612848497759993817126457697322199023518883463186788531728874003879409251923988733272679708406912585816134988118863770242582522336099388934351853624477274311555928411734020022735623885539250282484216601106866386730024681997197741021889032522128771595719709656523903428293143282865661478872333959026500563996490415861252796404259771296947627888090903834635165257178254789761357987551601176432778678525887194319911473117690195001226552891413959595731878789440307465403145282181999308710390668585003719140060161345044272298377679007029132344619097489957112383262217705818408252705162707531257961170640411151030527193466086252692335930692646693408949998665888010226184122548018897847813982591177905992761865806130301416446128987151678886730969925704269918029893784618157198987440816030833538237448531362847147189820445508115975435521352184722051862146366162160287216906077738136838418885638686823049251162077008861166113773905065410529777500215442837732248123196396115519162662741721857890105383377942422882706114043910913221755056683812787271892498910367782338467033691928501719504820818990114747954003847056714506651692509527339625558876415299457280830663223283910390249638320770341821957474525715291589787903995039616423166097089154216247881754337558402400286518667039320215393807671421355071729057989190619399328197777135709747940386552294178076920850715015423964935500427349130185352566101473011441460695117040567348339886979429328830361027995404501727451658328051040981658329950288133266402386448736787479723187813951708636078749228792016143120307391162775321810182572756217179993352825258539647203089528007310022013588573025108342911257586955915219145137127061729497608724460587178259936916680260088039058370321318050631135747800571014153910783170427399499837736453775269738059572492369270505193087710085787868741357540608863130538201295290880357475497714621460819973165479172192937212869607065162221504634772178340978402401905372820064781795332984464971877132438507601063920942230083366637374393301755784214175442864779338329196812141121598424719525701002636978017298416888341066164202330434457314549932549350971055763428318660730259027849660703271470867805269720192129604557631630391946437660690119466117228320526787607096965531771521932681434003466403231484289974260490695286293352689820933397212710032727038949540393086783685477148323658248157644703289805287439407226888733170316647567383035464511110796629551881196121849767084666240882361724563753604813752497191944291585988119257732025658360156524373225449819849225280553829492084029617569223160727508351831359917894895590071120911609501215696879215463230468698638421594842468003952477903600965731374772855006897459894818785312333772752410354469029766534812166148235651158326940312799408449972636073482652547265401926904622979301651610889416272436486878161575771256592081971585893414486637166899867323911369457860424496176578446953046414338567194788471617752469938832331732445735500613626986102404149608557626350040605447934232585729099219591469135456951529815576252969237755906805846922772968783685356394260604428002037852557761757275269537865114505315667156266637537646523528772770309356607271529699517347919713860758161591945660548566241604936856466844908751991571302962635623494972335002363578759172627944386915928052792800487377505543961493727422702962709140213265379838900948657567831768026453196440371983230828417776346601052280711115525446546805858832323114715910956610942640198665402919347314468473782651151060425202675781276792857996332770845853321628013576092808795108263940876638116117337604647753333882789687422732353787616929470577136367016802227704384979300769409973616067778506135173394407562377577652338033790223932027262074388785061565848277816505924566047508342234454177515931360839039099142034600273129366945914666722396297105530136642573364364609373121503456169524523922750724135048215789817860566986494445608721920742541222018998838952163141353011272803657992915334880241967134826669948200716755263849203074108017628960538825603961687818137464035037933851780682603769441587132420129539024593816204889812292215926378692593027418285614389342560030368905062942743037263024039814297541615247585684741877350156370199434141413119689440154662347299656473336823634903967594394912083181947031113344579515995372861252999401312588834148393259800586706151881632637612831337880749625882760814027848847540014250081051888556305228991531301244505933070907646213432841709949474733968072417412434746374772253058195935240181162051054290376914931437412595127378442874197122803761644386985973745292571156943975984352580908596035537888495220561709993050963669194175588559149616435503979349060875105398425696135689666532501521223480284729956264843804709026985793485826335100766692686696158036371529604302636668540379798806757110368538763749484774296364186515650970196659737962307412990825177423463148735138351921227074432461063678558944177481851410698173492853053525401872167290427513696112259759496314964901062529627065516160136896215742262583322978238767262548566509133813571264084222062389520473992094030310895102511938116244851375014614072787094466551626172704930957718608509772022777049195251342394943804833837892419672180146009155623595141423401301462765114974420269695502745820302526551556131811033002477163164494415394924793002042699813610045626828382437487982725091857614616354925819410883907543422744322257176358765795487279495823542473607634692999036077061595872853887531263821759580331120170777845599956499388543474960020998424775772398738959931227971523145142171408479292937946106523868326493648896205684917645029934793339207613775379026222370427384416987607066953015786772081681996563822919410054363451040255266274836169810660324674978014361672522512619693792526749887899351827963989016941624200349015845373649441104351869138068000755914513978068323835224932006836089304984486426502665694199164088528911361541705706122432301622401504220128110455914390441228698465761731785704067401743620982971117955043979968967460072360165189191426475609171772425396004365645081446678081432932533287034439831222650317272468012437327014371503220923168957116065990080321027761945229065441787322399551890561030999195183627867701274334632467569277621581789142985030999321150414026132132879589832279635097207170244711632602173735143491716365412102154811666507414034340674968330612046406273132833026078013932245522766180950084011417700038365301273822937510237332266858056480407522215835978042681735977088990074768205896276439223788629639780966797896274940896697496663004844454276974451860437235340442213698791607086567613493128555610854955127275762230150530327811899483564880234092415984713879220574064663577376368109385994330231667033070748895972621563094131186997451797429423925071957847808708365117501790041267559578601024601424749179483612519135633946258933358188856430643144761462387928281609961452934980149399502311505531092228432378793662605348781663957122684112937048226332572736611701663141882646114791781956300493118979698103138485655201153804311873666822010091647991725156162253319070739306359511470591361376850759209728071727618124125123102034236817852438739714513215094905814803082384745841456585455740606806245179617899355500726223160402407115981639191452534463973543903776581872732589541151609539359580099091651834316543886945277366106575363954504943679070659018593078236481155196236818037347926947886184823587475348322663043732758050814370138759874620419287896543605832470246584793215403641881594526630127789795762521094257169980545487081941012073737404721020053985514712454971627388570176897390211481541678479161397442628424279671950062522338609968792844969589221108637396840753226088041412698462358670850864158814536536669868136289049419066640394383821279276018374751203880385960617295394024714046871818269874903389485057504245245625218666041498630494087523110998738472384041971203734769310116508961445645572516175506388816186711979302731446003509497436134965552686329334956756977442663222869801461790197686137116470200372544126991650984591151752667267617984371837481426770281767284978294514768598986923357196437102775311958767090702128805245512027319832582394498296298701596881812096528594032875359997834632179727531494643643553798338678986832159432149797820949541054004846881649532169053607465859667982000221207258303789622947430753373384521206558693019868542551172933061789001316579492876482277806443189713838325969512769167403414522414576030199199911761237749592164079364065858375043431982366949758969985359633808609482953437981179982427175132121512233103834069730792857980989144634784302068168535534195059213081778122643175369748062162398906552172665719318962655891625975842978908132201188895554120246967471813940512760784619201286577070456869237526486534542630614491324976581216645430385413915856349653214481850671284969441532585619254264766724132293083430055556442809605345517887747402582851831419641140819136298436632798520286597847094771623238997838680385387969126299664732628524348672690598742262358615751973539369145679939525720855343926662638772907661271680360932324624202145040265774019401395694180946606294086512135311426953791231927113497015336114672772642473947691033564747997237607629874501433334773018274210855962435186329802234587922960077361791930447549718525718543333179696196413813754336024385746653385870999162914508892049136799522191581687569951138852438546204608225527105046433941454677799959131161629008463857763513712378816350483419458112877446008674681264492774817131926027965962767034927336345916740501251078080865455685335709652743501418566683472264568664671940548102120467274210903952705554107478335786858036092170106160420425401339445975884349615427598774102869325607829644419573647787578711993189060344822878644997808458001678823184808444068020782854545855055906476485571102173477236307978397091776497431570339602125873822017185639385039739202640253606207533627829081086267214601488385366188558227565308522925040185902825983362860822516540025624111936006441419189394903433262391743313387571373361454593843015855703114396744628767149260578749947867596265596184157393347964980989129356430389023344897881155985602155900488719192137036012815003124381111080067541959268281219828351266216517172694952678573313863349073519216144524064409547480363060135187251300716666478623935845911061619587929599085143741522592952771434262431091232355338410471919288960144301758972929354240088673134609010045918513241442529337998880811863949761336082946102346391517253300564207729040434851724840702701975853027026913775004655229373002333506573036043839975342939479114778644382833531581058913193099187526193881488021649517967247196753527466822077562229139793971685462239961770869671764027501116938298334825138610232635365700201861351991523448238221159855624753427419380026981582437928884792484473573016526891145765639650244435612905629996672442558077874637346800887745226488908184431798766924315942333972141823605297815768934382388653598943384187108560758949361915733676518296005549707671037204260454803404352344553169606333260985696748070667921648892884697123033152293451640510597570450647367135728239212016985734606170246098614313691645293841556246159318175443215835567298300028429725994048430532136103502525142473706456190814855963654345167963937346699404656523149579076492728366001210953864421606495909920953996014925131316230817214980698758424687901359245999482325502781361092758630183047988128956224353426133408653555211899736458333718442343664703797469549529929029680182412925969487816816129907171401173196651032140414155186360019720554676826743829763026850937238032913421814044433024598046723391940583893154667006734354410528947201535245631794705546086088875627041817050444030052404785612565216260332704682299585045881916980146931709842079353391265310657385198008958884568388416877404157776995138432131454109872471573928807911038935233075108930982086765003058205022022561221134042153340465966382404212289334867029350489983256506354160687560777238452897939234970814062797157618883408097171434163449721673779138345575008132274165027952518281915740507882975596408457552876351572287460750862801270501634937893287314375472027486488921210245286859678047329932090255048292077646828761250440181457466642970448847900245125435619616386263129694691737090975964572857988516257846027833866640291039099952879001798052478892490722063420022919761059472204799616950603603901932909458339772530542878467048503306632201659246921163290497819398087834820600126668285142011386342892885904067871864521938334647650306766755473353153196958822843149396726679777464302817688668853346139962355032163863198384060488574404780590402518402337834086374515739195009334373692297110993550537206851289133678858395307481613861738462827290517418420458572823144898120465391561584953269452309082690000780192415983425814624868715407838211258096206158062751060553299899413959358035316225644766753686304272209467845437360363910354455800396418879754463263906781246406293560931324930632258175020920002884903700723074297309106698735212124952270219712087076306542772802276744061311835952534675151644759025585276638253184314172421332224088386221459537154951853553126115476269206130572288112607202507407855124383427212468916471695965319349537027821925180478125697781628182974327989891274338209506033561774823555052099014517268564362038310122084322544610268402079424673767001877437515772982134277555629488499632885110598242158809910174760636927692363604327814607127758204431104274962839083928832963969531262909767642665238365164149575359296135250610274883373955802211022489984575836001991129998986840925210744093548967016904213147139409845488596004266263844117640658720137839625967302166863675048340205738400180455232232008220447233933734895674363421743016781644566741956752823486821496572349648711854587502999413857151157843191307198119665568176605575194268238078133230248131167862600384289217954734846901059847554539357942373891809423497979916555416205952676799000518671208395001398960473381796096054095864907503765596214313691674556236645554318292866342591605654691917212178893456897467605789476907367357088248118699406852624059361769326352268145472041942347521579564421245380695425785268311356320004540295062960870283331580479363283654425395392362887157154783478587885525056984357096252431250864364352143858766242893244498136564005521716536991714343177745504059827426055544467854636153273176659468414456833735409270788791001630311724481349193611886444148130076125558969742385664326128829243937566757059290850408208229710894949435285039370009042326104494997924026138847692603780883276343039206439093662369694424032021261637593575919668773478862832712393438419408429516444421900398984385845704392564130356560530138877679775634306290636664363841060052816348713277018062662322297323962303007708576652468466978494160331554048850038588298025646333999545754344943415099621452729567487666582283933221851053671987055839268832202163325804363801138167262649534785757511523046936541182534805675446477778882196967154781217584836061107644599520031383136109190836280604695423180752699526602826576679236253812541816113031686772160563805073870517118323017941790919185249211225454312772967343126825161779650726255277109098448970959690935267403099779009723359139802415245000786423487761653314544331188474455286024229767297553821123701643640000782103802493342776715684885109988380788423738280145161072746366439129897186553481619633107776732236462314391290419655934423753158369431063607777503054114716349099535184804431273943864494308151797798579404709586267613668097763576503308093418611078129312363307516786118479802550534853360676827953335274229119119631171379217371761667992078022409217187611419568943217907120250457546999776520543507016278446553734154652169108089723207225914563849444190466860485817182654691189036052426773513569523552427540598071378838851884817514218454522040312067556526096986238017222471562905382577890964562708978439757725074608905742285506179532781451364912115561205236001421608887460020324068535400780298256460952542316845616820338917122006119757283785228814719975968771490021258317076797791766106609760527788607679336723142897772651957912387545272445952198360499132456304147544211202001561019179185827492126911265712677264973262882910372192554540564784753983847920280427931320001359172999212332880554724469722034031770427193052709980404657556388839121084870886359091627992604762158813152985832538730504488199196319057476134951177095521322426987961909649566647439499651164891324100784080739819990546959950420634432921548652801456032383477133814339652218083689530107953427485208517369511715773227812711456814694024483575086890984791100403166356340028364309139114599622188885563560023031161541770245045857527397073075417592486376055582279695043942447932249980050817965774864203282825650350941269974065145442805094265636561508911244865515697553734727217421082495167177618554182840086145923056666019131242328759574831355155739990296816164261027023482193434388208665329949848837152073668910313248791051812371645198073119515819221111476973923816251217789672891397712646359532118907824903734046542568483258672645490634303990547101616378738506049031204467220347823524397465514388640254293985529726459272903733954238650165064358981198948945839828613580793528029810563692059858367310786459981628708114369670749641244775955034757545348720673351598877938104433293480259275283758995081698511466330161630269338620947693954564295563792345338010752806172778852848895388127570206764225863659763003601596861734601625668283846725936080972116510834462852879790387951840427504235874433450477956975519077344236296325629725544250156420621426814879595140960063494570054136441597481367678890685400165879578365987245117674431987763021126836227463203466615270558988770439135269305510101346759103210291910116135684989057843559536152906437199201798661143803002409269006518547638779252027955172370305551054685995152172431021326206791746332677505590794098494098597121823490606115588203869950247253434457612223537489861742907822659533645357658298689484763353893568710875538627910296801951660162513450209658351733139566296764809390956423916959534081231466883128459133592165000995058796426445507246361287864892699551439515471891187037769348298587341044969902597682871226958741124788414269917103720092030350544425256961749630572691360312876219511031481249951234450582678139986079325193188545403897975103244030950613227949144332474323155668438404587850255322523285285252535019868446520516648065479280256010969874955802194533629663665638008816881262650618486567000494720051388044020193045372677449926610534681703637655087950860300338719795433046591793938876696475448308657320815100620249055127659263059359354347570468083952608004229416901752574639884602204589254408745947105650144081532871691533712042601962036631213886826257070252562102782842662996967621082177319814179210102632528206106110050010739618180160548597386966379330659924693006607000383901316940552967001568374863866455685685800246039544774639878440857001515385022694284271968500629873894707930206117274410397200809150327439242238656017930115609154418417484707605655028592794787433342173790118190328658616658197996721303454927570671420167935152897583188583068437522364424527668641380153988798406482726569556457406667735567530094622215663725816544978377242811308280327774620941439828963331775661119711234062451402834393907546216772846162412261141923457973431533826573988042528351456470245007757129943498510065861997064462264268745609249869399472450541384672229467297426740304193882731232827165056357863975017786107974380922090678335143918171636260118781949201819820148673260579779894257731487243745020744778829973047278053121626917125962043816624751619699723658199274714114365324174321018018858994066307213270626081022753979047918981309782529370779119387005176146217740204400250412336747722988731809877825367202095277878737922407419617945739666830517633020529771683194963327303862261972207172313266692767601417770599578669874665014241910067981201573033161563579135684562405800593804558931264670723548042970141086980527614423269284435467891041912668029581714570667192815754253545164980658702540576086299611975712537010956902636846250740652606886938457640333392931770364973305053949071513576940069282004315945870757510998439378665417502595247128463752149613135987930614759856998682246439405774146633530407962421396087691495061399909561554283275698647503949911609518509931767156369757998240735211920585225998348113905279271383584723999338929914248799222699882249267887359376471711526394770643912184972328802866307676579817733543772056492239315492973828764371753616690291296301530478735902713983261394860625637577827130584124650781808625718113642247704743783753572361011223914419947329211330024229220788004792450022871098925846890068033175565362167872846406511535785248565214290572617604768604590886807861964173967787007234792862365441414337056324422520708358588453324203536965027000765438869555386540916576675717912324301881274826464728038129875337045990243998495025450736762527439614081233036094216161797542680518290091275811684357965039145837353676279634676180164891291070917771466657017871159609113613939078490418968143408288029906970051809983088885090923582053317099454414631989961376884154156015623064270831243223932232929019606390199391425673004758949684864390058125475790210812358162617397406447137895267831321205392486672142525545589582354135856380776688021824477033139481721468117808703535678357248141357847712940158879920018172805848149003166748551777387200045008871085181820400304153912535052263967441388990601199734815333233900300431252104822339809865264495316424728420657449351465687663648730784973243485316208674298613075721597592048202668939207532661835941073168731576769383835277289684051790991137275134329320184129026139153429014595266988724874700664927519868529792518665076494786088706119452411113832841100474584534321294881781210807966716490197544001581595786896008770007042451615691231029457800570270960591112001244687445186610691593356513014176110455945339667245124084822087166437649038516538304863065200094925336369423542342620842442241987835564908067619777688230245472676852502927502890906439194688823789057050912988748272118403121920256193150396567784073216836722074651736257993909414468800679452188980798430688347412195614092333924077019182738090812806250530907110335306192885785637514440824293387481163274406280585377148915227261368141792753012385194764870700551006683030145221109570337637917402493548872798712287520340409877493940177708683436940484527939142508701429584460742075914052260057004387370048852607824135946267138575845020655255074507069088168580191800181425860099991535688546592581076908447233817149211016081586062032801397570343066759347450731436254381206006989356545564975031912063435518693513586371527716835560301425916615850072732726842251788270130967539510421509338296614578881505661675283963267482959705797171479028533784565415187868401481939355641572257885031121260160180861261429072826667311834004561277917637095445904234613421683312507935449482522560109196698264010702780244439358974504146722614632293974214080449577965860499996370323114725065482249736753208815078991828800477420161732026232937747994922738247633044400494846393511438902359640614789620361172733195641182346770255624569451123680938091540450626094915207786629438593719777865388691887566259688065733264442300994691629749621074184780492553816967524716486388052802745531249354189421256365162567735395969270776429832256637970515508008095802892540937261423610073143007424261577941755312994007245824923027524918017014050972556322499603322078040313223735552940021226279553862072133122635293984175451802842710799220440824730054957844794026065789195640511861698949994352219901027635616418290094480361850486219446175175321660605857646184933128763214523053212713205786243997066747092024428193839378876625946086090971431498905783251701054789096169596076850434881216614790561082464458118406739919182540195219888823472916357951884462459598060996442056878069302650412879489935156549945378352993301707283266601644382930948794070140363340903107510755095518616730771718736896171407560418883693287911153565591343208542431184250485557501619825943779992127912678776205165777907609447562654233724043967173209554608097888860508920777454191269625965678799500101981711567394831662288574303356057798296357624518567091013749980595671927214351779074309840951837097144454311528523526064265302165167792593323280539258779031960457281302140322454287140871753438394947368033153090130544082888074898891098915646598742432840384607583664512167792036921119948689049178561527858146285860764499893509275584608988758511759024578838976796372230554845336430387622468515791457304238397269508710162947791451806590848888786273939447477471587253367798183407743927218651087478456198506046213207975029032720326701332027537102773852010344351018483499824943790468928054824454398886906887988076268498030092887458905923643560835295888529599316956354512538851149507659662562505700345776398267680054132844547709675811277773866559379020508554472724014295968807432308777875684575057787708869153229632246078328276129410442265741680347907414205071964371207469565892445172183440936180024072948296648412150889059292726878931655230647851017904056098595729062356388911208730138449737870275912782338483933121448326526449891274332567122738209753582846741882985300714930731980631118820959313967890740473813641700630871319073976543257028158495524456288380160854343974336823718384122467309863870387919803664072040818706814067036236002175235220312346187830421593600547745538082410309266619932537104818960446343126280868260932447086955747792026164151357553941642566801600571344918125074235114464817965758670115428719249256534262655054948645793252448746180896346833899022056023540699937661317425765192304235158999346844957766048349706125012504693424339472809153894421056039292138740036984983801613614613384224062762681127879088825293861090651004897791268153918834076573839595701632660171216474259624613946010549599810121195600945955572204528199259742310698108188998534735657353730069255429561268334037481577477170647038472637098228604429745954407482243981495518647697735994267104509054885754622081648624566423830008705920984563736789844673632172352741044289619590954240850401892185445627257576949973355692765250837429214866879395667025033485914528678950974324633827116912642048464955954664086343237803628159687213764729507895477146455737389105051113512808034157179395590987691636406533296564955073542631047710976703438762341074992785806381588983745147961408598680133507962956138818720247694528336697296706886012152919532239402023320141898594784585983218535377971929578565320326594090067087712527706454582544170181233449421807263493031205107776255120624534550600212370240132733536312984296656236213450069527168092735813609927403033100235776147916402770033886086007783092981029824855631037720006155376176715686096455188054778328887981239941881073048552333263855467820255690291000512917166767148490848220948864219145498923233366457202081220892733663378906467983598580195070417232753537969961156002718180584276923151549830156117118294507446770312368667062156677992337935212289657729504603335024355228429530984753895981264804284129305741815782687331250855123526498358930221547665854713514125580648836088486354845749738595212085511688241622762801514382058866710592510998393649685997004800354905458664408376124393945487494016297734050907268197117952795139888148955575336706629299665468001843513837122126188771527516435602431310957666908871579421929955709261244520618091353358123237257007780871277193644020880637586811511786518333886327019591928979361500528792416990044274585096445290477137394320915297701366861497081535275866260461610090657916450531681271522539648421466558713388387199041603312953280525133149938912050199145946390201419208909061304302680994001411430730962672154338477232313724310592660614803656683656129952217079490264600022714976343555642138001345175937823895000268967014633284142597472558359084342702876303096716082581510455143109618942355669453223805241673517060367767118747499748315171007715564614373557131887665830122919313192237105238774712289416305333501491073194149064996470158226841250253430823477009018273877056103322977220078461339040851990515720436829613594462237265153539973240521657421502305484990487824782314973355331285707063380094619132279536852573770570552210103078301315085982802235906978184210705114924976342876050244523304310041566225387906712921294154971559588231123686280820180735456162955822920486306763947694895291478615374836298444766512721391444934730828967477005570858353579720310526048067176821146153528860083201258766136751254887461796821415185087633099617953558501760554167006468985110820151228794270379987453409956360274974276393700294872642144340829368607704086490409887538402432292065345020385001195043297657938762970571833986352888497118946182234305093596710224092799611697556286229311418270628981628318661691493409352263871163684299666367819099648517177174990197079596035795176691030511194693774837796777707714354983543184844208170574810094719556457740496891886688103347501483802198087662255178198857002311150462720879141052111436649034116949181182290923628022191695407879448122835705149463395921687845102747265228989786572551224877121477181126526579323127624419325776519449035591492707137067706085974809472471292121859920818437359988894961843814122802282272731695147713568263277706279420391356253152061326490367454339022905918226310246680477848437666072632454522409035221559223294015966162487009696886802466653965484423125880382669339314309972674743204189948022708029785567391298876158194975405653073026380728546865027501281827690632357814852760879374465285704342628521846966817526460138401360742035888296196484371466774248929109844350303968497500945047787855043141263220105759138762205995207944182390519927019047662407915605140909378803506079374295137882036097677243358613707220111781023668721271944621024435582569133386734372270590509050892334514391310421616811688259705408661377256665962716214983653156364500945955405529732657600881320927548903869127362200478844429726538098865140660373112272366829072961091682632479363561386165755946517032210679793965976899927379275140851690992123973905098973063276856946316362301661863347759075468928092249120234308860097529092071023726243228475463064353238964952636837656612385489225071484838796973379781332810127805959604976690415546741532897155309761060554137755536891077633631100224105233286967225928485851828943108620153097227681550263946524069676992772447071413709389223567533821847632988240301486716007240878726595956568077878748160504863097971415437601034164225291239666958755550376213187335394643064363805163390141700365000464978004201776948756523010110991493844044439998231514600309431574530902657873236767202018044633861238478377457566275551709661971552750425386177373938250739473047857425198813687461009896227841809966324718803847299647632321382829835106775657081777456925218169135523493247017541561403429620930576910262169639822446997030149147895279605086608874045086160859309730349982153887253376762793034563248987550034338037466381474106802000732045092206958982632666203565559671643003647388332230780492130601818235181400700704956268371439368780174093553213314196268555762738829271464942156506443431706036200329124528845056597496282886489125312104382037268264658497549767583066502058503884806576585824708025698970253731078832536255837135602570120237356321119528861219244218484453580561303068175006041301275554873272320167761784863104041687961674047592767332585326683996983297175077004529695696644910336346520377061885011348638903158039996513301391372088713059321421684388455863873200419673790188335688966685557206671904264404782098058515130571927682387262637533525149591263707899883925367049962721849705667138526735526432807631402182857465485656751878418564885336225164321081329203147357872870856809648227226119224388459099986910261381845132460425663290894718715200276846080622155669553258735928242097265577742775389294963718186188151417850844697627898789231236087585244143037201486294907020309363464650867271283320345205608493674530280431106479275590376906128304689022444805885595169016240977333106442006273948487452721781891994443425240385949557612439860398559439196660672715504062334944543340606380802289423572526706479865527179052719099275275936255174600424561676031507022162392508866936181170091072843288685091415502018742578953759291620955466923662945961276156649336417028878646065768673768150971119827195998080295172968622736759245907880034983718198163008816443289019864453005778699051782403968565370144406367141197217026750488305784885913824048637571259597295702490053198359270299794368976054020174741794859871481228359111782302298241525329580184842878038374844121544870989146185265464870646895036493387945635966844876341473076892909701090643024803390713532644927563669090774166735882225388931172977281510552777610443063892958180946343594245967357016520499270681091901558080065022134920590089619237489170503649186240108310420804060435018054263782098920824544724080796912850070987329336343606409086735450280187094062518214237132679481267387077827360634180536898435114565941543824886482410178954889150046750770317282667133275252906270997966782883546931859226470545813533063753466236678118906552010349071927823930360903955624723029568704991972394545012641820356386023354025827028435561034225506927465965232855152885522714486536014994389775387943404195410934284233703324801819405240034152911230533898654624669878100159250329831366934945641406147407929224380348422337954102664006814805502295136561115737974626452115008575674012832509235918127455086242266030369859778492290924051281282345169882356661452514414326228038065368495963434384075586260683042881943341542344127775308924386709772904824239549901634668387960472881826604446436737402375925320575534974643473961060196981436063524579868139407417456777658864003943440405794033450799062136536978176897363860730006227673278549070465117894366697665407321652995288919573407137038572934791259393693900795082348553972340839106849627032714521404945949253320649981118444820166080540838193872987008775167932875169090416980696971376823771893000709915064584216488174497531659095883040103750069918337661368263059357396846845173275450416407784564169418567326537781506772982748776107981421982918945894774701941432093375157005702003661968602658065205870402896368415342208609900379246072640590250099456582381432673339095966158429440409164808688112081317056636601772898641954559837373852424917564379000354342702360121797251416130421494681263312797878672288286879515003857507155758235689830931839567281013046918501642135237193171581637420021736998334583888508059774431124778067317750276677047468836967719783834037922499057659923314027064916911106423969880247477533064628184237569954730207238377860950894714327790936407504254175220421180115246762224296662601927343680288996866375449921334905330245121738563416516161556550119907624495561597503505868807849432295902601506751816637695917928464569091402841763374478284824513892847243006015026200477865108248381397690297521584019458686172514109761811905209966249588990507560464299446802289494154929576784795172022529454997122680515993637236713199382606888136229226107518152393321742238895362123091314340403437576154668419956295372466938167902719085118100473364301623273632133664500527667928643138078364120037121863479107482154827064666226313430584619291674820458678047869002784879248550709210769289256653692353269708424661927613469723188695271786020598766162007386798144876053842942835622159617325137001542626871934665377089072218119273288660611136940300889353298222676365156965295522666367230515755338708780438020505386703866581126254423419888397991082059677739725542103701351431076432633821268685402126587367732427284655451452866304094879684253971428277944562622126532769396223569475501425906577800382233147996927491874008441592146948297436070199332944109491292890576970619942183971502642345010805904840032706724565518996715231110493219231218831671993671155084864414359075301069786842859601249694164605726241962699879230278546166790513802544786226575622698986754831169313516185393923270196476742952022678863119499321783997107597227506709355285699917174726617420339255886134026583367044732938000473105047852585639335645573115824174833311518591764404942373957053472516579558059010164359271716244187093589939755070621809939872169144057394083724572246268541953297843499171973544228772950118227759011161792448350811664106920654533720940735839271473319865297028078803405103945696226147170988882142845035627303705056943532381365716330845571744526208938650455146514101619149215718142438729982451405833789639944872611816960964409994288474998019007642847727495501494675308958946845126474385018667162787219881881037911555695490922812529003925391285274292629036620075579651012578293676456500955981328691468778580490524058788762565332899443685677663521836529448188753104167290912977211210693764992371063641414269513426430754578068315314923545777427916238346603192420452313354894774811140560708995694274382969791673602499400717641258491559803978833895396778785030981955507641933193977375218351310215693035626598946948233565632504929280357839330691390810292066312169206329390464815103205060470055803191727885853439589764219515320796844709889847234199825407314731943291142667383882161324165029453755385580661570397726557854072899671481533293696017176531486750189169641466987403276399226930625170299399072800619381273740509025417247827723720158312544365002197009378365221572912675546219531212099254957658474169229094478864195403707254439645824577158987762770827157857189936099827454435178156580174412002373006548810380114733715429781531141152150042549015043939472245207649290688046278386581512826499426099824072757866571755970005418102403666339360888681307309467785858647822867851115126090167844823123513931024967638260818097765222297592890927560378064227403774501909884824152653968889431805641122688824213542616830896235915375979320809323356203187108410939622306294260778107536864423306251596275469442454792952583633658114267426227945005158132676335917494722363510199086193183936218280853348978704910208489028741959251847331481109364431145491456293828706546820935794977082555203665887890168455444874369900228250587701919619027131075702538125891503599732201600865141407965609174603554275373432073130127025468244625189296935461073315861727488696141508062641632395819222425345770985139923226390848944760206033194571229807906882504678611663782692354675303628663116480036996198354289594404166685767383715570067419302236799555292447175156930198145853493913430183632202868205111972302434490769286120492676240757877294930106617683477977860722442000043312024877241802792613806801744287762317871084107858800687039801426692722315455930121993093960818772314916683625078350745087169687231689706993895122896690474950587578848310294978286076911484185330358662528677165026218530026352230324178913618964380107807555936378925292425390743029383329140434528815921606773650736195802468683121526495704904812652424168411791399604449834378799204450316535096041824590594057298992640460356655748093153450111275647138432602028881698786979342961182268028743655275096535418933078398685457509682783058431512286767043715861821728376184168416104677609967769077335201487243403129842306927735188975182035885064994606205685445397189816827870938364276981129702253975632909693574790691431466667561445978667228813610212116119266794595398384248571526144050168282331279357433174252498298581515499989988112086005487664234121707932189009405361516856789088585670924541553171164999526160205492565705330441257891045782466435257008961551674362379968400058086420155423244206295990869976263042967322397892521138989158930877868334597375330167677225597469219107657934157782439673790029274804063793141859903802962477575096568340023639305065035594622744001418565657587521415199790383488293486247812588701659354318061011076251129780863372647157445228305401141771195133318256198509807900830929173615634738547672322817960244411331089818172224095870163197663951539658439226213350887266269194363488265942737953585151342350661923292577670084347438769821189168026602489833447701620812149115805134267460757175060066173932411461543562759059071892027755384487284170431656850766007411318747517632755821680929442743007807379304664357460707634614778211667622810309814874744629821384316354287705799738639367179643279322035142724743168767332400879612908718583959927521102498096326349818639265868194397578846005769224455072643422183413538091859664603751926554820800894600053075301279497124056285189845500692948035342569401104009211920820107821325639302157952070155157809319800062298637690235803199848906139317581998456414002424123837570226939586593956394874139261082078044408202786614786068869706387398130070323745533580205961808430185589011689781179356386581195727037429777650184278573416667570158437586963077102015773551318993961043135409395124314303265258055142316652460692652875035658685425149533705072149287509864153785976262602552735078518117754804671612081500113758773037898682541116686909263467655176798509140483633670833700649874977900772854795531296021899706765098900837889988975515523052272976952780286709977481918220787169888725731614976092768966347393759698580470970427699762694680776077949568789594884289798011322230346694869347487093012338031321424045859003037667452738243709181392679909399075834978948274583621385338246025141022726906142999220585869375628143660444739674268627898655593279709333036987849454392721713741343371101787128122855828582384467755057453997469815492973469364237842905895583356907485797579449157965502007466782992863044413203709363845926352607621367557433968271597394667876881664522099899102847918544237027707491205262528232932133847971087601419399603419406969051663351564063032062443276712842393913371781566308140692191905123718510900048554456512191754905660877253230995963215660879888278448314064867108213656177259480865607168330581033888256659298227044128203283506951538506202848046852103760143720414529756467358512893502265248770553905040467914964522313030675038059283713997384675002405537623756777666621207339993498413220067676029229365413990358896164369132245948905863934827224728443975244745050119555857155577008753981017419401590886861395767458891522183075862796442661141747647317367003780784067521531199730873150181353540734391742625846819074059614438701765098443690982028413872968290001300467946450260909580125436976046883538143922625348238820052253173695074000785275052280721310075304148256093626605947272619705221479661396919133128181586945438296629436061871610273575991459910771853347762369223780093359630753316129869131528992356981856840601055620750014313393370307583934720528343243576208743715507893399305100300039634331711438334565642121268700981654107173670734223733531215918699331138737507418741926821783521910772783644396109297311139392447531792483507302337783062571480681073297349589764650693163978748350006125475056695115167920103709695181352330164842572284106377574243210589116087264982932552391979024691402803505542109179641910593382316786777009569301995902638885628285999727106776045159535134580836375872700092028025955551527290855665891903355690507836827493249799402452510016434669596267888460558817277362012351786899475748553048482774583409388182513657453269434690690514688240076465681255024064043758123677234991267295963028615865027017281017805245443803722063679566725970017552532978060125902097212965093731276532158948808271951919706542889332365549364101751908938442884358552344690085768635403649809850689340389182006014444766861552947427653146640440446717768976615331878915340942892830057236223055973353873255770642476804640643904006575922842468090395898664733885590415831997081288872271513633880091347385220018318190840525785395434255212679678781871260547398490873741265930782908743308843448561008056832669709591176692027675119854502308326477104186849875127768326782222186032043186184334574696503914820809030065551145775486707384284658274789472703275628235804864780197384486855896404508859358833412344091069535283960212823092812387545401579631330143085988349950982556587668335908288637197688131892731075333504808592283201694423954622393019084360275268780778202315080671923990063601408700187080946258996987725310975046122573042850414311387011683384429474359552502503432645904576592002422351978751394507707826237205236177249470715645025375329066671458405524758895836184149097589364488693821650698228934819501322229803774012817126343397065346830060206241253544236037199021396455276472225602043142309555147041466523226138704542471440971429473034544806522308251582321961211690996716612993992968323792950858337537418927097497385738903870798809827339446962240072213387386231261430019664776849859466209668494328749657509250872264896278049666307129171203773372841978652383441674806963400487620384866918313283046338414403059314348582278711062147326874513000935478032619432849734767110946547375824853852530197670171921166123423836607545437204274385145670541605692504333606189967325305580121290192206088465311158003787921078952204688210363010785796771056564203818073618694526861761159205877703561244501284670868805011568343191547896519199282897207906712471894702250986848717562359679967120391348006371091005653836748672381754079251642924335560035331235611084835174484192649331865950578032475513758777374205223855932552165393834965098429465423343156536976068644749510835256787158344785480574988301134237433554998788877113240854208701597572306403146037992879043739801313037182368554407512818967802067996808500311290029807220248325525560644876944556007104579030221592137736894018158557426605684666072286412660324676724435723287593832617004903004734591790886094606841733047646825148442732888535495097568205286151995112049048392909607529593683993833761653241775735089658422806769287063336191994186468978124899410798892528187266222721065400280842713833471707985030049881771821247102028224186299640510121173449921472204266281257340639764550897252892943113599490663611545782319860411597799687930584355872128024417749126027670895722807816601041906645734802988714056071588425602310516486335578291055888024368341616293877321402707851223994339308497688825854166424353509764002612138762128374017235152249238476548229127261989042190195638786614083155762081498533033648483735937107519104268361926236409310102900072624800828702844584908656670162155100939455079415299302178758325171071932387131606645961584577067280663574463724770841470643316960764695060748827403473501195943353001090402776003531650311197499918176543724157760574705123422874424785549892283182988574221054158303392724773894351492227041142544988573304864177346556428916730201141019045351140155556724669999346836590094951169123118709002869206064745479993004880129757087928002015228715903677849863601202087391141490214022750033669154066830000456059558690120900466005209393751405544134293727859885646015769912038961770527994412776718266189889180556832811114541335588580373984069622821681628773817826248383657876125021574526513076215969122233201933552971638377680421437244677847001442793176010459961269801595840344213366924497901954012005657418999101079984662558294518872737025098655880974458699212161776709894637996607606736518720674518398216914484659597254810016795844119765412825682833081296548802459235655598097071870323796581947162122812349428545598111126767048029240933954721982354156280638426504698546329529636735073857896129041310938512523691141245959312284696621290083938942151064296964694098757757356150391072375878291436015326843937542609532867552464556420803711217096892280292794659376885969117945474938864898296403302999900834213295975135409851953548791413446060159379548019140980326101832987544119792964605657432279592311650467290733961188232310660868704191603303291277623030892584633080729458762375531159903649995290625425690950119911267719716483961507282579027528721449222519013422404794076727338529367194196788230993434433751322512667396797411351704988593186538232519268350932766136032095337323925222080623283540199289673175505544557538654660261580404141961539711296347588128995423547815130744600204499026777017942212948183089300148985316638333138756066270667978124553184720157622901182031340897858023587193722638289111464094367127993009747144646489051295473793292354691554452462549317033563528227181293889721335486625035044497711452320473217957595514556179100052343104700738325736986724125311660870268124620916319614060145580241209125694420034272492888731017706951715025639511512664453773731847287445077873911987442302118585874957871208068951945487132974591224706481619817883698046812007443523747511333714523962979167398493594263947862271533028955610259565332856127145077768334962646161030834458762726524167601951022026538316655301732566304948062352419441744081415493480862012569154873852594792092300087502358905414246562356412166192923535273547853622199975669153932705777901131727742296270761312986057980729229670112243038718840545302209190639145373281328255538901153420543984385288800550769738659915175384487710019383247959997779216218617644791360520305981987957067433852945389786665957506440926287439522283389284628323429119092635161454443364043900159556149813540528851429834364600881962651788498448985916979266929045361167583185633648970044461136012712506834363042779052517680009589825868592434541305154293952384293039044568424382537174980923997331832272881324576569125284523863595035379286327302049707413740332347842384943596482019839817009627578317963306901900451167117284133487227479882210038149903848743595752586804126789412355449814891883130942636417456470930358493657051309498013810144400481621850712635185004517561859010431647984100929015548818897962343093905910034021966670720409106144740758890139373130010524222077186605792015078249412939861407781063438757834037942859673892627856319249754577293789296664788827650885752721775611079275042128317662368343013321490403006594954885456728637986595105276267420273617058790889074782477015672189282163100467256877656924482254718028842734023628498089998791262002629464716163061529308606818621889954757617476612664423391504802210093102864908169404301498777182714510494951828084296871301388959480710221148260983249042863853122157263898993802086343939701264360281304949932851829079427772282431725734142439701259390968306059453194597470174513326505945164686729233111291813579986428963706846865406714203327142722032451954592648421866582177310967981662179624117537581236010098160258655782878952856576686159322209221375720584525839979861165389770162958286186976225239187912108645799512646503206892341547598266337320263633127734329783074848977907016977600715623143837659631039160347024472163241731776389607701750373213734186776018227389424446969345914866621569474918276782573332413617978353899183227282801589781131671251824057714522637625696999187106709716205129002717138073991700436187650565111027360494946804194625521341807597941925738751493114699831055694770987415701446031017100312978983819707510073866249960428254513304404038524492341773086279444719984489379750395799634440995869809447216165513481721324796049031438880405611668442480686448623880499558706519377104770204676875876519622501212705091156261727471862810084388276318108758870853595313090257868629483370724850808475693507190595374182189852009624280310725699910732861365328726544083054829732099032077167064014899459581671586326057019068288511922147394295607410543145477710192587331707586543818178198008808874969151801700219190180697157324273515253369341530470265665931443328551284322232146142135671895209976605618063778638017460421525118555503686005168880806794828380154898180598177901341743509060454589499360789012199137679455947432865413175923904221723199368283624863921375635092089948054809364773636573308564951821490394965595342636194707589672543752614790729866757805300516153359369349399576171278651824277927184290299906964798611915440560318458239958335504042227683737996414572331344639099895965473488292494279948275456401205549806886116600503123316388302233738848031305040877977664177391194458267973886614743984037521515541611166015468724586486909514133172099217672895898142684611804058808686930525219731739665355160641132326267822064970695181137635422593193117378952428901846414149915430702328798601927585790530175353324193833797214416086864268240502034121622166496285325753798619955630075175471609513868753081250039236824101064873737922481298872456938543051046943614454029299871323580336266104711192734382107725883788864621717998411473184726434403548358990055387494060477899772656501279067774805306736409855246100155091733052285587549969548319359965423971090515158579432298003960216275689952447222191209735578500130193377442924531732428250065678987534649471644397942410903205355603401666296826330440265973034755051211808786970291383840094671702136415851185396938196669097845577628233073967012082618948182741464366194442744059158969040180355081161161893084294166652388745151840086261344249710837015668651223990032289403886473456025089395055192436663135471151127724582995846517818035552569725704268782735666451820971584782675027104391316980142583767966814086615676095905734208208139668779138870240037604180870082590926448432622908384513530814482937188930249082371486492613385816839566183883555263668243434513209906543188371252147172628802926496854194651940609413474113014569515161276721524609989603833247647422200754099649945243892764034120176002635513383439862106001744698208736763617496184667931998991976418573966475793902727408933986038993728988502781799738316932721541779961157748036951408389252626284699582329007159776035631784139446416165547121568186701933219004628539135046950243886114369706156815580292080302044565090002582718548156016424726256310548272288280599186211684459123734532122397436138422604447725712248200096920094310645048379035500578184032644456020082245630803678712546394813598212672293701546143800691971588354448170295947524302475709505058793193681032609546181114581339253456185470935140799130418933811315495284313425754985666040664145804797232803918191824182323245453065097850955663554427001182504587598864934305038747594358444325658751087026135666076789054221518190509785089995983139495113430963612053805462353212846080619495877134149031525819175694507744758100145125695233136969841762916862954734913038107087247562524616027729825949357044852833538186960456986930300459714112901003850533521748815699909398367171846379702813240016538569937033250674194642121605362860490499070598849336041961785546305834180574190944011024916202280924741239869387500445482337534315300456293088979572591028751373339097339680846928473311309002140213111542339982021082131590579061461256934859682148225842028813548328008546037692083456976847291205295937511333431736247709480705287008946626140152446008240068378411146277000225570355557762688183643711589440740588913121422241095958653639983919264515211450004534486236779739871312573466396692394440717809560765317863200943363609026126318767040322245797126573319352620291865022783799071927251691083200478784725213237525998457583867236044550134472172115247502927298538432900431270901762956336344451029712538260300469209503043003749884904932820892343214896367422451481924166499345075325029286112436716291091418242953328661710774348848061692511082279445207899414912278992654716402484689957669082447482096273244250795219832949525010712271188456439609994974977003930651146228712724796085577021246734155997720956052849305915546619859666992153640328894004518902963243462976043125165320326074838967541093996033360061468324444011053641085650161154637102724617048543321571939424369292045390542337398411072865200141255592914502003208223823146624001076071914068824476005099685553577984890015268827406278438372427162408764281334475246806043928186103410367158472659215558567001787847061246919957967221564851915766196525660695609029205880057495047824607749166794095413205188388978366869274609204093381618869400147041431110624301724012996447942478089319553241421341691465327684885123126615810791892184398386920054762377339590194541998052327372565518996666160922736739284921267605758150033614918599255332694922822434669242912323151015301173038208661069149633244018826604703087183002088108272213379325540346148220064543294063283340793717317694480612353214468172395591077394977426339874385712918547708873231599890167817980253277002416088278342865644397210132710395711304491174783715035001254435163267230333127219500317480505713783438621583050944524537628747402684840630265623842916990922274129452750480745258618098094919090053897529576922973838806335323138093970210981568787956924974630699959653791890161769796504942973496648849013126104549814143657915912489887739224159276089501922441593934377672369695379890859864196393763134284582973680768377882476179848551365904255150667172932797219888324540734714422731311078439070306081105307838886542883525964870721644202728681838545684740356401097574348315926235598353140712528251926372518145859162354704204852476422139845972602990916016292869352861984261180626620442439052473822675182318284472488340217141547658377583939786217144416603253457702793777531538284539977273923537597908677040386365198919507487422471499422559754791168824183582536338998363107673166582828621622196067950541849770193809386548852768793179251034234509416416119024005187057422125204121121747804359148236098125137988494752366692432479454299419497351555839982781676544258137677495961084672407113091781702425061221505254464185771934413022470481102834842230725071647688668786292973826208270104523759010818089722439069953326253087856565686425123547108431391027987168031859279339036704236235438070665530375670179669703543983443813412404621428975636607931233145753765946397344331162916874057728535956720755056861552569868243869288419824860931361138660221474494924178366768526921981273392022411402885251563973230862551280248735799293742898467427654385156043116289003029126653025509471687457504851402424631113978678560459279109562269017495269115477284166413547838944748947790588295336237683660080845284830398265658826459342282657245843317672911394940531769930398180417247393525032499633234839493305142754989757583903818229661015520530898833018190001115219326306962137406414762358036347654457323919939426182667020247172497974768893863963082469246202165187814415112920598173671565736638122041175405938278261984493547420863975308940886684539464367530588530366701761828745856850437457590376643145533599553978310732169611505830548310128888548804912860374382796212012822451598685191075495211748444324468867106733659656215130803632498806247183384318372136027956070863623785848078902705470635967224421213446289832524558181976716400847264978360222634893903272278527415647960394820344034064201581837148781822696248751633487917819047425012610595764279570447929417503037317175238891571868337950536212385211640877948792162867400114202101698882815449039335031924918699835694830174962685992431615629360149979888805445311150657940894325236751668185554517240767436718700677358134716820000396221946748519212512697619465397708764357047609881572289763655998296070399498818902351880275556857526754265519068354623366085366320383164219912923591391717556165893148289817247502595906884453348448081110773338360998919760889666885981631843819053866788934899636045680160497155996480145066650878362029412442298812088728798811017459440184851702566030166164721055179464248832874127761719216411357625754091381092594960376243793157665719863614364820237420608499408889707817108250880358178296370080973026523482123792831935003634131246042145568630480420707995050385988413144120122345323727830480005103794202540109186749818275665818313009069087162139800114928063541927696136174449610505447646667056331789051643810104889161253117837002568465373317458300306811790825827833003549832457797895722089385307078019554414939321112222529862416532532072044965845506544270926688785581500947156040664221094663605968558492885469059917038930483021422683109088499007363209893761624992564199662378105058204401055446970445967410034621485091882915476406429605026723453327791105228933525447633575386418121070929756676005838968064562895779810884977126726140732515630044395853813583505559206536918796049631295095070209046668100550625567059541505257028532311891698611542243010888235862214876544375042054115625846387007893435805819984460579494791304168143976846023697004420850417384492246859386358284694357685478591652589197017467711342543392264127366080000043641507421678250836033335722158901868484416311106439472585525386794514191688203743138872954323040823514237823680357418185924537897330826651073895109747668970258846316493425658929059146951885429469986531789671592311272793293897098900063072236364526023881237634264847269951911483010945322832989614300792370599367453690279156290495656311684678917943071714210129196910142501782374015114885400550443219987917729286679077378487086785631183151998069997422051325494827245242693196143144637086406717536696093370006487428539731650081261970307814865173516542849044896955859669030273310288353804661823039334274481680080687424887310511293083429228932015705002401468305503320719703017962303612494010275375776462594718764737222696080575660658746729952245130058801089888932969745071544045420428911044179015635740370761356100633942835363928255495820280601722651333608078060869748596071038765595720110285648109510009558373426310972959939049905911935020110965722072670832746887785053689770621934729726949661331462797096922745494599650004473227971609477763303171196594752734579989260536995453390546442295350885024495622847858912494761014765763638037770841352440052471988721813769170428679893473823957622074321810666332316472564036749674745797122922169473568117737865604941044304442262106467196029777213255125503942533345398249680039699858283795441501757080802719197525655923935843196712813931402793184835505668466089498872405447073452187058773429448097666607545986038198866671355838880343649900557292142298511787154588565753084665111057232550882545529504075061860505344133888110103945091970456301724371445299885558925879285511855293825193486432180900857187216443837986745129438846398686097638880212813634351726972486148241010574755206473955172372766100087504552214565015021494358959764521673818627952619117708601546670457021413197383768563591004644877054252207780991718447120453083512461557457237755033108329543555067795688398579658895090007314818511827382282083115144987723077080674038599242808187327880694481051073344631246067940929769416154428585025582527707796180901152101065849116369597113182360570509489366172740692188503329578193539635569489875779044548416278032806843483697802149168282226073979573924103904020378535216793932882909615808402175618968201319464096108873975718754048167812765457983181922360129315328051716767872576384707600480278989607795638986859863299229443770262667628351663402907117894982034134879947338509045754048905394030328529568945223586876103559933010194538285429873947282016849696612750979274827755618521159730251204708548304899743031807428969682006131398979899016522101052548804402660393337573504052941092338941208879999301740189912630464096202565762535061331206007679043552390531586744145556380256173644375113581988483488675202262858772712214877568336922889634743709705389712606991470833041778272973065519716437602981587468833050605026400055966032440328584203335152201418137999105731726501564983163581169072011063553394826147006280116128581742110600282415691527079191415954469601006584670862289426168487683246577251967159765332787677109012141181303083339458199654369478125421047270308093554721137692033159997236348875284183858061902380232446727360642261764356378723674598649318113972900431857536322355972206430079650780905457727409380730484106134739463410533574927834454414365217334383262837249449940131326935027017345795458106054524761071658033220953000885526336291355635547676266730517274817807864776321754118437616312862113869336339252437484790262402010997352647393728690360350554874215731084794717815989376026487939309467340816307427495984996070963755931218807027484486655021955882843925967990961433921068798327244705869984417918707112047039470675431205099189652224429308269749173660589315581939036668532611614971428692481527740374577457540281702251885250550088033033340188394064764345270855113906804618219466574460696178195441404762074858014844674531929576708545469154306322914197553467388739561925878402557457947808747111812976501185797793852395758208093724957805263428577169563994053698756448112190353533898876490227149361555384528725471157516314613072989177623977697826860269588338824798228341283208612336165373657659213105095510318389055683251833742183066826996180059651048569680199008551477640846261057242461750261874739792162456719494373671476065940072428589379877327741661437231168616938844361130486756357561402301638261891683489734339205267017871159706703704574793966052520699440554879480528053806050409175220911852635341998150954975225432133103559333868373642416878751563091188695517492680575832555347773228209738591367347946948666865470360576192013644883277130489268654622832327255643004727711415981485736023775745363711699144258372565014726447221646110170843286465279867042974723825886815190497572509434282862125757746283365101913316523905476201457470040100875356190633993040723928918156423480357583214946293234364115173139882933010874356253181096305782348481637931502302176483814309019253975073178477072733415797735544756557309109118257545845384805668707873460289297674188004271742923809779643722966471888341764588909564910517044952516370138222583316050097140386040232885493881389391693755580570353534646007106291755073534464106158594129683034559651863477257048972359295026952752527899426184606533243392932597256944608912843399281421619005812538716273232954534210285437630716228614246295922293385670016798824698053984124333435030415148977350026185877290576466430881237998926256190752476508696485733687248052735699305312074424003881957466303709146766037062546965631662450032635738710348787513464658173865926930031838895432110541046416654335743627994763607679429874269036152224101085291012515711492508211066173279951359359728334703080025882232794191422968342682428384223396840257710938233526598652413017147673744400269805445213271383055344952433883755012866593150890692201013713576356858009001535612703563337660082401449166393332693278064974053656898541864910198112171173388834266739271440554696005965971116300102183699435355904832824028848684929160747167338835471366081815326101282378521576085480943381305842901866112453743852989917783135685494632950848400144492150282863786345517337651337712188571395719400615213684278498900831614920110227708600526698927617548258485054866112860210463748761797989734737426052706340605440598692202548679294393573405538552400718922445111927820962508630602969282962836453383947146984496575759657851022770277764073115832241478400820691595219607835447913905867827621281543028336545461670078905337885434546063306554926363056943828455740013053082430948148095186173072268022994475905936484194411444572557418485012792474497862802449321937599586380829685544116001648142022795715957972203984062331878808877139504398322478559795755437420476152293061985207699380730675057187171733325737991203020600308310645341073793024777569492180886275273337065247086065288324481865632094363387297084356247377191543457967898044488749050617180772628403857277533235995166851771622273958251222621664956243497689360108526352042619635497217834557851048008897808010335473623997709506728993634558560842886774086136984934972729635501825446139829126736742875339627660138269866148333379269744960033252767319012827822933296737556815897712113759241073755033211117929390983452714900563152748888024522072439288982654789017549884668014816901358142530309145820162416735122896309677102199555114742731682521052869439717912487221820791491734650126688494296875489454899871646238398607337325058317361097580380954976709234603528659909967561023393506070728343717942555251134691318326583207985726002266607324499122755176724559498090013125710612069460431386150065350211565178647643811812638613662092071743117899729545018798976888697913272954746205246719886099005970040396233019162821680056190372845782779211530054679025458271112078173797967851135958395069787508065211170289446416497700350142964874757349362872491001666098385462319536677404186498518644387308904436984849057981152679208684684264725960069229708359988027084813344029183692706652742298216341077756168116616729493183862445665930345656459105368994918722608798812136918612552489555348850559401939497174327308557101881920690037912107739424932133316829080152977219987399362504228212823452057044660509042576367016220736168828026073683413255524887516763603871135394882576832535547573342999805091273514753457587144359826563817729249782214587733973832772116692594554896331189839884450653144284807028881510633899176973135185291316293017995876258162424735568281777901011484139425125386737335744494433347211442239271685876634750584220809080359290583042883458849061612234431391124879544093962353896932373363504930971355021367496221591680809332468171486342603891731535848287771442252498175848810395137416076703449673853578912230855733000800199788893092279624243460519609955567239076806960149786856228587779455209817464821939028165688052839370379370209752147899201006316274511008916224641056292291124162172865104698512029192513626492372382525790220627804187207633999223701157011104853503363853419512894576968964895149725458338891774922204318710815841262750096969312147538564373265416344557575560622292607335346355428178771150938883147083912077403019791335544987733573222254407359158469591064453431520233718712417645628003374591422118354675721742992472633823612282331642146173294062761761923000944161378499420689545413681786558264251739613437370431166174453890514062109822861908357366359851126578238343378625461026034301071630022081840904184006128767487572475512922651241513326303126503365702691938194247385020963622006892782898030453027617523160450894070537170584272673443088891865523756749085056200099472952101362444962250250152458029195008620803940314428015882944726461339353821610938316827530237243498711248398853005270129129765114832781203103497537837432819756131494393893907872251026741237419821196946551229135678204440694671885316923074274008142430088179636723263283088377160665290802272735910842202634358493325884642010860183548132089957464750729815159114457403393640884220259290553331678783018194276612099997517324279284754141026762479834921371312748269308323357329191413090726985878747557310597727936406882751656359201157196041474346192820460391204664046961306157830096749240970443884710382868748563566296983800033762244958930614055035016718500147364410833306043588501026440289049991238735097485659533597420110975295120465384964094752270397058172293668878952745674280742877589590399819606180512511779532205125609135008094899001497165530324909268071498048308068824510086463548710194109702338464818465371929568008334558572231529087057034026919026115423855545249237435426510870565288910830681788038020812172619888860818890620096821181909696259896680850057115090818708967156310440593190855410005809315406428702310645056075071751732319790605508029858777681756223082109171672313988458248063207321246855441966260152067052037368934058666096176222951571880453278681162250184169773736157116923807570416242984035678337932141790565317875256836236389535657590258864107878543541599526009366545640081878557175416488501275963946166583215202608556873776181771148318397496652419418638213809205261384569577418553565480204525841279688818717696074095348035301555404111298339573031010086866032070334317043015360319929740555859391860717648159917597330180076042908111158432040085216521857104844193032145911180054994357814040843122923515117934722056100664354873108046358588203259340367002878719895638492329217693985680863046521740418918589190382037261968901894589346955123181037606924595390565037067370220999518737966090968928061469996231959718299344153978785763809427231702765021565287161709696232142035540660804598020606141469349980265586110513309244145020176252593586509232547005228582622935243863780649293698454085869608457367396663389381126453756376477395961574169629474246920600476269556501379879812619377256737595956963200683414228607062800292879370815017454807980796621690860259096414520167693919473255223996232235206562002591935525669649523443304651270788584596994479635043002069778097473777359133194060201158806027985969043872701139762042322271922889603672642537401410505173835413848215763245322101252129140206961891823622712052886351892834937471788678701813043231383245773055391652564864145212153442315821390015486913097652061562562996249755673930232305108152914007010698343191013518429801997520748751750389181493585968712982942869783522515591532393555835087934278403156018941818116542746512511540743047039719118361463457805490675028978821246257953337356743165556880748873117411494878736561485100908058571367410669879266297448991191378016200445562736261185106419068161988629979623765772159721804913804500051493606352834057146275305843728460745839788658844705501074395078952837675076878158840523093178909097958172399524645106258433110239853098045843827344677511335781949335045810045175989016496048891489344809243558898484937924698217390700985050413669208422858653143265300105825649382348434533974819308615989044671641726355901969154672769034579610142873063736433495940013714412998014561757844433030200969228459560385599212456579310073875372507866488871277721635939997433750340324405008976658747206315547131887991299116958219716154531189772362096050573248866991181249115474861984073460220432609782097057397989936980636310429380642198446251028046642677320460615227184887355848912104772785327814931540208256058477390416998732572385882264605928608977574322223630049364272182681854025251922295205293234601500519382468078136640735407131910281256754201400480660582112595001547268689764860810662675110325252242352254174959848415801006768238310140270078636981340845811321910848229861681816026923417000678432631896687068223226351670209485801783695212731835565597214582933385237938399133915947925697806614304907639093950913560332217282711928455311485495572956092865277562102650850388194066088713126318480505976736315900803033509581921647346767099205028890208808726263781674181948403603820433736307450699473044684254747628466343814898183164901337627611805413365339367059838282756284182770743585259691366491535522054725439382256344615400451129272270621165302590214729010701900139014237557872882353786377141856088479594612010672978752250614323479353583841543894834115652949121744633265999856885051420950016221908362620635568155836296613373588135403920894090051459615854871635339934502879261930737211470232495039362372570888422690049139516341287571004457663460667439587702026250962666550180073398527742304694317056990109964935665326849679702277646856000588631635750089540571737626267754201116623368422218081501644648247836064048652808864338468638698717692326281758139802455668199410680720717335626982427144483761085126131828710852541954611951375257113585911679846356376778787816695846852500936181830139110599371047978251833156140738395297901634843206298858196810389291928730186316539621866603162404515357453675409334606765095395146982973667672930738741753728600778695117255211472678075003134698552723761899524133519123354291439450411268045511051368310196992808631353461346675961940036228835327871643058154731355051411843177588646108781911830474273652202518366599611935863647251324675490569194037178144015596888324949834530657075399338842968221185954747447817876698133427726444987443975450583293324998222384816617285178201024996913098161340283798708799026496062842866241375403890811326817646713394137040532837930289919389323834964033403693449063569803926140089959792616157119894268542944398352475439095555228660142717489943017933461283047759624158174459186734508567438974335877256364818672817796053306657193514949399318887831001747881983462240684269611237558426340484068118384272725431567282918173703043661983985298002277872265688736577425858029482064806302362067167770743874436966946724988469710415316248734073217293187713565632063344971430525484358066117011026027286021209722028590683498711550640224341991731463044707667695487210909258318253144793489104390594319261154321061703094869653726780123263705228739124177665608207486150145253395470331352403342666150142740151951034172692509807334481095364165482814609811166924868459047283804579306504772121650805104513338507796889680111815096145893757992853977752150096052807936294716160145945564264696607993328340537620845815249625533280660976623769021027504907864155138677566311542824918249616381509707495071903712421158657604937212789743833824810641996642599229775533492557721251051966501598608481511136856952362816548459752700292143456726506262190126624637155927090642368628207507173722531210648353198969127797069887592755314608154879548285183070752901184959368466237912335839998443889898092592759087024475749988148061618269439545741301078884990397293144637517327477382381724135140184750755377836517239895037339992922141366676719490891796991922701612483780122226380494357977811650350683781823747637987224901495113692345430081731265952506211573563708725917370731243727798463928598937771236938371029170371710784486239679184966592953883675446588534407076410257268073094619369931847897558438988406837456893412295819351254635824976637465518770744754067828227666527561359153582220183188443716308951757816122728726999569006141332017678723796596890823364566100128283607824607272467363360931619022507485765684847651794322356562281313238705339138129836269302920149371620482731642695572326952718498202444591478451370211488673018688533418606144124780703665992040910845768692766092061581146965691918007304076413281299277618781261577856462693993966752891085990672790031054786718343113599557724213011481258083563836462754456545936155914109392317241562773338386929116281849423794377274941914886813598181530227720058444262676080556872938530296529258479388039258895055633506368981189781335318705507454209277536668311225780895685597747745210949268605488198301403882223191274668826987819203131901823285589986407052035952788652039340768422828489601984773491861370975297050258463138315013693659593486759411139364362590562198273441757259664948024905281730946467986313868806783659136683164157726045771396265811036382890162975834381466165375934189160166185577032088927401061589250727900039976988327262544495512987448955374392944862674398180059936405603450414257227518947391177831074618706752435563193539548914281905823300232967304242602044089890673851990855194322045389168613847728217500455408487451669987724166179298916726614016467113363115413956016200177898942674696422126726852940910168261584774162615322433022032101656147488949779784827673580310593270036943025891287433163815218933746308336054935726977043662262057493867014904004734781583106161665879486921701525012394332669309903289369038167514961654558097252212789488015102974446476244733819045464866705100633182385481353892011267218154687553321368042487991527173685804459907572843452484418247886853598621111858240874111358522462755431637360458024311837660202081785607362590400753215329367424666209317977566198830458245519339716529034898265912947703111162269419674618354077980190151939728803941967789255572028448489976974861668831063577413751425195036592190121814816208344173918998245960793669599708058827208480320229095215488491298182069099755762374578318770833957439379206343284068677389807538710701358040774175268269322152111856100617235700920241578045066944184704462188569591019003862188636138959995441167959778018367180721841156466655844953437889562661943620290162259852158881935401374393714767431330919139486244616448219671972896361245284843372534129362772624254973329022896601065934995848957746761899798263464463886326038221230294967467607010648695068475299694853706893608584105115793091689930527066927584007343579013677538700968104158349408805929248003248697069002790595185611172240558619497945597474409821838181698697447042306869246619861588957179987639803239264558563452317171534894624352068811495993316543103987191046529736999048261122863513444810283401695297571916108303899530543651560389199459598720998397368406308512151888572565515022947922727518494570708203731367866939651141228567974096599185424251459472162173158607140758175710406512755842456993960839775136030625717534800976417713139825445580438766933756722445362124038989875797853290440049742063019273665562522788114450040726104811480109486703493378708487265804573487926240047680631669925163691474140645958521871111313066316584888101611845122585532743762408207383513838454502106132814534842320580768343973546498807087048832018453548753719337337324884782737172030743185556626313940603993978020422006540933868414431275801242093731695643273763072667538208418311630885639542611010534807352125068306163004439863239707751163956957713990468664911010730337948002695613634495442914893629442803123314294094613084412828735775851308685741635395727172182093435217126554918273855728074558079417851963386806463987203586894252929881051053378369556882782486714970793119720836039908729030335511290841550712473173761520256996206118530375255090293539132635612731708846694592052213179076640039561254735354395896691452067901385548592523764734503108676478039452292162186181280563626866164951016634304628622935308396659937991039411412983572632988629283161683338966137010878480777607167021845690983278526991662352276867477672082841696071956651988573639639319130318646755235757320447998006338710082202143247170303719707596957610727262445126484804979176679409095641840668868750802328540197441712701844337326690541429441110374318888519523203154427474744840601538724347857474560436657948676115349928921675819605444847921967737501882033087159786452468573700826712974130838669413216351023773878545010460053479003261558513506107260867627624190404886185416280936420524471498121754050275578326439380763614722158968307755843355218919685388793019322980177758065106566078893738528880803247575356599020647952534484085791114865989354169320689220150408378033828934618211162462080614052462467090757751678047395890177299060237204678754457350527156769845756160506565572056189193432784246174666994217793162622199809408511782544165130384972238290738578420095545019055814773152925802746447916048756418433443379119241927543040934347702627517424083541233217646499240754763436646135148024698187694793674833777408760568227962746492276257742506472413631946469451051303117282685665054011819701921877788755245028906046638317956560119100706846922105402424099283321843116202646395336501180848580460365495068056625661286508984246885115486753154291389904910352547331956155381365088698541064750803616031467376798420226172913901615540441994058613869994695869293665794989273006026858797089317292582118773893926577457581131488868057271187740464220691997143745907407481496943248856848308532688438730848221986517065883454293415953498083986140171697274160394807655169224049448953147271574985385024222378451116402554105763450780737488410638098723696453380898849162858120826972192689856806105211206656139469818043573602489131707397686955518851042004117106778457602424695793083039307284544280227288895474192290043854371538397556186950350063842738250723593688296381590453222302859878045704750475985666630841289999235540404301952831904937360631929150380117096282260410895133588536861908881393669993148670373850397920144661545230382335235691208919406919955564719675949191902406891762418196645275818792231262468734125640897700409581124828982194786124457234650687018720265586594404952356031555544303528879478247439971277060453168403476795630943663972012656064593313089638982539997985068364790294694583605384276662505455862448819432097765350250695610818739433070251726164806939758600826902164050996050415073679903238942632059645676453558522607245158077728193387611170975852535261007682685006528979056294756159654789395741134203118496543617118043552024420752120173543089176457494300960580094056270932450518084051056053935964122849431607912451036885351684060943014313739923692627070694847907364417414456409365803905089334479001209514690697071446892290888202193504628810355320756923965751404898318136702801324031457119934096966419860182978222764275146153119036612160767567922653333358630532030037112537378258511413784848694214489930583217105248496743227686356771653416674751240177885768775473444340785990052883597030111330088011672470948269062041619877686505092137829603142216842122611369020440016873772916531733415375819189971588997038850261532188197898692253384071672121720647394195133912936713513037996545057300563027756165356192202474639414127727785769005145383846934700139387692037202847912111070639017754830958592469174057291070130513290171139731250690236600364172232916671441958130355849005394544203653778819347608913152299732712197866636433379444055621916262316655030714264498641914332385664739446973355623470630967663777206791456779381868090254484513068634359498894852527150756702630619652651691087021680865581319738089545247488008232760038542248532345181004160102715096284871601839452175867353656945456393224458071122190300257529693197057070907789048132834631208928242042484816221867920308532619182732680820815868409705243582940880513228472071372593160383800569015590404793503715282093398063970874812172135295887368743578626369797013565307099336913676611109141814470410183698505227714092257791176217941584760887539075176140517679666037540422832691290389287087221494314292865788033124473573751536634377136335758880979373072900548185704636062107129910074685808977756664928806309225294681006079742993392720153819067356914346871734343957270703929556288177687581543919849965623152387330156495508866053478775903449919964455415569183321308873500158068506874303750496986278733718829284102426030837517508776734156954369048791184081363635893580723298346963562881290901189336990906484209846946350007142535503113497882337921889530779222226033547112301950742404493645643073057723045751171261765392673083873363302444010077503435603615640429778087996366686244887493414319328522511782593780553347220664759966146700831202350034594912018188826340396311696039538136191886788312737401475063085950070240625628885825696003550939301956347756821753030870673692732975547102359142373624043387365580390258859330374253570454105785195507861591905901870106768900526024112464189616305875464905447543102561410146520375248178754276051906108874793906303861983283698955594531951063861597009880829780330587705763413370347353763285609265559102030029332390639708974648144981124582427138601442601899633856947380466089162737147433257597119567781060540087785888165314036905562226586950677043414632105386015951597531254984295842385981926393073599045773860183408747125659062485202902144454015220529423264649430598965245112204559896871644398304714872560125986844937040724378536177574372176744024151790718091366640252162961494175634069435225188842803707533966785599336049813427532015397268463210493077128746329718811774623355159484150756167203683295630598194656873064216909459284161312409355251454288410741483545703912766309723120466284144168714770455678301430341371301319412383271838543026480253324315096289088700271876076296873412341922086907428750870445414999148940033145432463969798923217930805365428359644896413189258790619802160631964879492634500461220269818657453212091080135820713804568098664774656685373616334460614687323524660014385846973176708450105151093819887124759480039399809397208695403144845307414412901229013749383240520575458335700252025794537774806001153682356491435681199110178263233398133737628672886463594938504538055882047083177565535507213184337030778267409190698618447264603670218460190915725627240411720417169323639541816891401313385348562995868326749039370067410876355792485122819599050080686412121016593322830167887610203712123370908702714310220075835288701859209571712733811384020510320991784392052706786253435292666736305712656962226056722995964105179549354548174365037867664454320317777311730264591332591577806742740952555942011956928579969115027586452209272268930973255104502668355477126006358639517448053494886030007335464259457861814357646151663103021910671660690621039156594517598798086956157543619760741913573755647374177763230530457352531506356270484904589359863512823301575264991750976998789297770940769756618067543028064159698000008067614357907851589260563592220123901878883573580532366546876536015848537025444512198742821174211486593309847276303235564703649909124873773042526919898819674472955061717436554679944685242362579246994046252973198661392802133505155474388902808863923787241061090384775904367353823702984241985719743086092893151765156053054741181886153025567945793402731115898427918004395840017351682141438488600524161434018146897653254819776211003166237050903654225572487588238002782620782971822098525071289357717700023605207035469318318820129510010049879840674518317616912972061306204225230665493066651779022191297911902189866853856908001351728824247915100020034452306811813671131475721869629151964431866111846669867537605157199604960964179931180493547251802072102034437829358530911720078111106271279138202346790737254182985424148948270996224696911162139126194183736923441498010713714148355261537637644098272781645029421624341269123318184838452824948868880452136694013370062405463587965015583858262682855519804947326777439279713929532332053488306281982622268742601790810979668472563159186860155822707802529209346795460106739825438655037399140114069807739698843329862346049740797076004143055397799073339088111032261025121327258694982631714339112853592907194675443827054126429265817515753157130887653665965817675273435253565242082126651890107259378747513169425558851474769453623359748062091386714830203298947855061559908096954339909950148081830812379546408781372420733128587861785464944647639297398055467756137517931696577046906998948231019533870646186941471903308580174325080944734081059254493297038254731828970970649726652873781981515818036955496707716566908863524625592396719541757574240000969034511072894073433732016080769414789713935286683392038995080726026761317446706076343042569284244399138036977980553299234344672199768462763875142723140613750639433596565200436873479965223682622796073323837523412342809142467967806866612363461189296506759469797237722028019676021928599976235087808770107742295220850759396474201215587514376589268355612766829757469262893042166098044795229446542893127388441081688066392529585477188537257366837965515865643788665332830982794157370595615084813790209080731413374711786529552825940687953835175525343480546092880161375590823233740545649730776928800726818728663285558086171522054027155579812350569027457548959811029831612693647088175528635488680921712560820515183324263637435448755768175818906286460301340953662379614591329132240444546649800728995826854873921998107119861317397711439863841765221380130889703746343342090199114691700196755556663811593007276553969538612787096375114039909565614109872265437951474766007642646094871225315118631696029544818716441348432461446811644355684912075864548570538701809870487452461302638228002183204415051400272949890227599799883226306443953910361347583478105965803697485656195328863447445330937785409097962726170548335500264797634784543729820339588323572701789934281241089398197385301537558864500395475760160591538411209069873402788013710848999609163705081206922516049307995307023518953772870602482613255319042735408447242124837676647448698543830094302305982353624586465111993565601901194794289883277237240319429491722472662452584141124269053744795988719963084538897063965579371146104491805784249462317158274101457206178526260749321479125212026542147865826424044352772693798742689665795952767283303752273844216136541626128423006231671285157590547324367585818883357434042464509160994622955565966904463392853630217647152512323253387095427925371228495005332755258111237356183735067648978471162607060108796548881912743397745560785535550347018372143451299532237833873347954641187543922485922824770803960828479009740287661647633588322904371567527753820608926105930766061702333400455983489215736239225763621528890459002841727225961040659367068206013451962060249674913476856596849098883256210830322913312123596953813613973241478591887633656183520095701026676760504381611205622015982973040894077489312424479258272354319121441905584402132494096122492978792025935239654557196717838351843808578715259775395863375692874855958657685556367046932146338907942086787611035251591737906678890461764667892204151329959041894806174333251100002489272489447312476549955805309254307129757701746051092482296409834129417542365172046442171399861001611726574015114328185916889483772152382545211308272342097395896901243629008916998082570292178153617727261814329556116182707464586380346945690061818158334034088465346676106313296441340243530233780976687821434078085138525066513132473278592544751566876507801439449292830949614224378665364688888118636400909081748648662053410722429413044423618574978828047013320956652806870838451919855489588963811893152227066225696189903052150432681452786688700306275157201559510500515179550773074971735580368030217246651020033784347753504910333707576908230000129618055480384534867599934967376860079041894170935915457573283421740613591434843817126281798536694199301395687496432731367048169822529273364328887536681961179886778582586125524364023233595963310265190146533457962150215234269020497821319569130926901905369424031834680329454636798956551937271964354707533074667970389609544679797937776392068798784407773905112846241709032620650418877324282885894199159224896494686621004711075062126913642728485385212486891001984885873119621631611530777822830274257648563600953282030145821963461920694068083900155722693912441730598598079461729882574753233286731375158405477315763231173608725255219305125965932474221812213184014486633236649651946954252551690188262496311501503521013480404205110889537875853282923906980465265654327186286469177560055431905036323802582313203950087365324886824211469080230282459279620425924660122763232026255404241289272560308970084697836716226236609752210320585925463502514710741839958258946080239402603574346198662324615508431898075971821061122371496660843714062195588947043998301241827551207795636451787384611768338992010201541223100686610619649916243839300240068631214626232521710972973447406506894527672201880862880925025584473556935680681186326053654424679973292120504241821928862481550791990659571929898056953348172051897980017196693799266569862136478636384215442609845424029969258134933756698921552059278612616617075437756354026637685309541590216409966248945698574346006137087808182326427496690155335559980322280199184618389715356354459925984619110899382230469703080667083331144312870354249899555831464831898719789239769350669032292232320784597684369091855933411690120778719069014449950051548233147431391126369050432354108549779495482017341994935304073473665163762412162051765741692250061483986607097896879580358910492675277246042093885242069103817875892264831851733287382000221824738727875409942243104882997142472222898304544023270871382998710964553320987127011217591580751594892175515638432240940881163065726447733034894532601237508756403324881151789814660759077340899727512603624068071041255647006940799239860529880278606205887774192744638934565934449017522175628219221970319755198620207670021667132662757168610485823540987160468893236322017108424102646189207520943320960823477778519774892245830464080914268730691844422097750800478611046931690525016219801511548073170842278363877506837269781880598965517472670124964711180510264271073967179278769034798860587400741566396905596792190502374547732700032721748313608421365300010954240298449879628885296067456369979342810079739381109297339196033838817534772260773497427510328030863144267099980797881969462049734729081134798216458654312527377824261618187171354550851734924350269526562715411941252573764255578967347423825913638926093802188045838056982114250213032915238844851698716019718952867329969563833296020882766173805671851633762828201797415785212269150962133630651090990333377410083734585992424897326242893872301353679621106980717786211795990498018684493784013444452868835284833955096616760191347968919580490910281282664705860835735119092320215820307138359430414261314160826985811261783109774795093709343918398375404022786957826594640172812279638080108907365041701261283011696064299255825454299423100757234009794604595772414565283843430056416865212089449795855595392575824338865785911389321748945851654292500238900353420796329285899784905444361829827352720139539499699051199312774626510118325378772414923212293082097690115494426841043704649565454228564569624255432861554634947187346647598557326284269729610354480414716030739518356701162846411465826711456973947807759168295758920541482569201756049927828801725526704025657194486765258576668534002128121975413108300656276728223246224363424419612578527854483038371338880865743228263521517399028270863052332533572612956504733603168634691941113519261710270517304859717099184366452797966625174593135067758785559253568066740208719119381579455958703006446170186854577571638150346319655031318511967793984184009640198797854082390998110119714313471395957121166761452017436770395432855375280162876391630991836299883384385311216578637649219766074686092418372050981811944102230240310773566169663444046717174902749711184187476028341457660790957900445058075093421595403025300594795506855516527004543527801467138538409093672219992499758211925552226192826640086292017414625740722521115901008234630290094703272310218721872392778262093992388677343989098446745407826302453343404998865618251520993319282392957098070351453074172296734429692521692957641194726320345260213037702652029526165138879556267695211588607152036082336757227698486406010569118701826334596167142717992939160605216296909095457522017369676546716724959168696857236167906733234162723381619635292469429781620415739769615400655557503408634490955261409271599790572683728229644288633932566243511565947183215276469317368472092113518939686140661267708778347689928316233752906794139704523428781474587154439986926270215892435946249500399966455891234920827701708421137504968929604190870160940945255380255610371326456070950502615977944005661622055250156422323211225921014488556282293581688839912875655953200871995078059601591595518093548301944203271798565008210643262816636205202860538072951742413975696530645018066372289013735620615026933810789978018697162956626005873444445175838542047952299825278387598162519216117943381760547498639284776579469444895292296126650518076037284753049804225273732085372567502577098196991889200868209422639225657790968220024492337129753397532172535603530609841506823464631850413187313625970494649895438314311995520755154151390582069626885420941071223991190044550601255022485313422168939322694270115845875309955272464046608758874506706886699662617457406105673739170846742805011044531754028540257885476235293290320499509318346513577744827863612316957274097845976936509575210803539534256660760073107738867713447395031889268047250237804646278235038334957942006272755292404375911713046831485668748159110348290851582093474644010356515501656891926242520361761686543940908821632786287728828733053128998755505671226698690288579978465608715440435391097946620608209363240108649468158490918165645721699704689498069461088874024066229862425730312901746933814366488364032237610327167175425606166321918852103044679918295876184855430817874815348523743337146629047673175821955172517665904230729402718106901294743553661543574919002509976761108139813011575523925372012276471299607943695957634652913912775563020869832659592904387951381040135929176622788024787684718842166808238415834820851379308436533046372402883674417695954905054705649261784612113325601077120805529824829001316425826068665295730377794819056321963949489081342400422138888415923909621100469605986787026783294550875782034923403440996825383557365334323257211263564260687467265279799442483083666975086223519385558226825150832461329952792390925702843332823703472956096099466140915911627298286547545304452680790679302377741396943534632180409256250552548937419748864993443335251053079361790323977619093512029895380868864835700423451437504526837554743005297127034628969378339977964484946610290575215716563189948289353447291155200604603192047880825916536712835390587488261157036648121458861525786118772547774604821685219744622903790840313558500063410853442499903978537606895839891534181212466216646562277545184037271056616896353294724483090664727895172632945301620823926698730193145318284314304493478641537554536919967652871304519379777028367865422814453348509008353685983077721802254281606316094264147696867548740760036652588667026157458485790875408706183473252255324155257640012442322979423388860123177331539676306756841890859908871251106754776638633088955896302266773257830682023730507109140996889933733804101853307229216851201635459219428988314952453215638491054655429539481679564953536211337625693621292374923632536230685742323865848223026601345029234766930455889470681662300662936684769575178901096366844138712626535567685461152468427772227137674016824385994971295678195864905567836839782144143950797991992978506907402819527532798133744386804554860628993716272349515981728233126540835108100968517550352954315809125721400862682683678003863091452604589450332128571837266897141638716206139786500890769399809249515978819217151695147879843033930874119081205255776968384549101388404537440419681355552819239850008735230999636885032059886617961504251922042770668366753782244112025609881745441004004353195664606542791655173494586780565095750321393934604322868793843498808385819246244626950713802206616442938531665419576817346608609113091582441712806886828939527747600393750002507937340427701168550220825618409975261321938732754496062191492581501172325233046134918702610381382678374007995861337022474971822404531311252440649861858757983787895398026183961142030776921571317700658539084654142788478967947465936231702860828310707313101074321960657576583092306508660965735990600315725795942713024167414638966549258250416539107685843736935693646859754086597073205275214274656344801981040480742291791870366891462746606036556204854434464514593228829480214388711581387196044956835150212383774060860949248127130961006132717184701094132354543391858142161538131026957841335618064076299170571153292871624029863746234884457085392141577140594295035576143567030100398301667088908200262014595539621162527362312411286804194818654130514085227353449137861131478407564594532751961104495884490227623708875519447973855052739546330715630610879085730722239052021563196480061295099785312679383913135658751482640532325856831154183724596278373188808104743264776352132111705918184718626682145408490538610919382619224157176021436402778200780966948677618601792059814313004662303738396183153301398070266751037851848806514739089630896132785043990993621075752059378868451314361660053706607876619943819586470496514837730121213275291927089614331989393148538223443458787149990047815666978346781288762675496728351353606643482423248188075198926419775089520540248971318477276344036373372675165941739901325201245202986942611083960193263430550132246480553335194012064110434185549530914632206075198070174472904528922726451993458423774777722496263267608518499465106539982855602115281847916203971516727075253390429769713641130598881650532191612036761673999381917217824043478566639966135499878987754561806901944599697865144628163849674855386335488200842237063993272322844925969194355132732388696352570927513204187066508705819909697065336247945911826142548499175761519546146403173389215108777348766076362931463417771460381348424467120196272910358285058515559572406890906939451760897314876609730383555614727315208748577732918442966102652845201692714660481874377219768529252716572518369552686977397023814281960136514915412767476782809554776493991322805140158370006125117469777323783083079103383501465610106840431700103716813349841562984723554428544494810203864698314383946970904904548356709453501042933392290584257385420137235713902719786379189620647312238001222996398532169512348488036601873399272607591736117439974949423233517391871349051293710581847626929776494387636350738094928815922682882812849725905704361300676176388008953689789185531897700336063876920788926770613227802448024494077189692414093402832839097853617617214372730737576889067994827748689641166161597317169192598995119853130138743601570094239764836284700392623983158246735033469488278533322964252228938197599619639275563582394843800977454758508773932704216040416786839084412060908228242268793389132532326301070831955468062713183387266765372079305715163870481318811105206637727146069631915477674943436162215355619992476035033553221443192531024643621955317718517045768962407688872688941801456846799472875884156417552522471922085628812551809190638275768748939634462009421720448946401044608601671550535154507528717300818064463504041710701901141082189597613349950797489239092077493074770231256500383937831588261462366907603760336189381513783255894076937806852914764327847756013933910864737668586309023368187843457683776965347403480619248965337779847445027481509415372924597489536958197180368436320010528265552127201875253440839321323473836263479154394519553807830376377839492789613072052779029918473781863589836166609088605183508866611386420106517123357707205930503786494881772829239910016046086605970934764229340409679290775932442572699983878107228640429560933840280998715682297868099524204551148950641485478307620560988761267198971879292357226984427413146332875703261976384561119021392069778338738283814348873899365118563252459049420713548611615141974899314067628660645715004629580861270289793221328957380115051541590729077798745346053330516480190555972276120249536005657351016821753186662724821062675543821109519065828291084611287287219956298684544645527585810677066457001674127264803408907923589612881515461679932329778006994022708693541791899849030255879971388811151618196788370017217058257525115966312183704236742715643095935673495038385831051370206062217478886713470212951473511457839589778813533989134849371613261476654861498169756143444504028007530043082916477681650932691329582010060412124400894738194974449911161699642054006585618539796534528096823160879043361848324097261373463975197931128169872889025596502915464607899282394350830234403997404675627748122947806724681063083489040910051112079729603493291660131341544628452101733494757408186737657776784448017848734170262960843881225215436927571352632980283227476860893245011006111377985262233929420198923028277222759745831965834663834475987930027264428911182465773385463092929829940373304209834495466703827273878901386167058631966461859219984555790254464834529471605303037176759147839843979501454765112268145754359111963719727583440929077912667731860705147402789263826360708603725060876151201714649137084558792794858295128443841562301972924330560217483363208560958444784826717473381773559916774713583070707299256811951979761301623402576620249201754048358228929815093082078729497057707212159346778743954561777060887384552223030872283020937777461084385733240934513095569818720322941356902937171405162841641004298263331640921938244854143178378065095177486971485770295003612520425996027951796111242024348403257354468308569353959714906250490021012802048119190547104855697657336415956651084919558823236701892713194860914901606069260704528234569793528830239687706172561847977902144737330750877873306333700192322970223984852748197031614493153536472514351712192959543666730460615780297852516345276038981129945142167453653240138573391393839342851142332559667230977624100020266830498037488914346363851521487907522556330720666536741838500407963416511033664396586816654912832657532846030583380840068810276536616980222933742083286906245406760019747247091025519596522711402714427953375721697272836800605714378111264765217092333289806415458999355102912456692287632553989446106797436701198933115534142906633297034703730925864268589030000802705895567838329030039779210923976271379489235499251940258140675045793133018287991793736822529887491698983901135926960116198307275487428601524336215797808278588235208812045282907047508736753482307029110085550989975121223948821337596026937868567744297657160049955521312470222990947503437885636892974243159131558683200590190859721930602670192506656522621990341476902276596148150960756819039246238139710708474124286552001249684287240371030192978512880832624708018681514652374460614103891782707669376343083471236008905882969020069311098477790610314758256471681276115316377972721969075657785174297348990600285144599548391788258594425327816903040943565075024636094196425357904075073951045723020700909793308600572429393315838267054702166123166520099393328551009289809829125376658125965126673847395336396269313177099285153185005115902973519191100714611672813890698416514503879604207152990570571771279662181561739294702686496681272885121191487488286902620910477616854330564348317030895205782455498275712564470372173475764736628973516848627625330441023097796229516713638062234809295697523358347920805313544791315777572047805238664653048168530145838611807132222710557441571175456039762590563472580931579277685292474646701696240534944734105423457310219049492105932891130152206128532272443826577903303909400838085909274200138158706066937670874203711067610077852841599268111055536432575576701824284636521579098370731786560963836117407553224301280360435414271839887975714376580880739133793220801404825150451043670144706465161917437060261233407143394414259412992320039725680883096116552337332448018528887401609855969958869435968193597213060104658234711795630024815347263504187611386743432246517246286637919939945768741979659672447966474723320238069013526075432816428770025310064030238167284548483253063455787936702999429103934608391125922152306628971440221339402382545398195377498947579639945533016298297772941256701174324541107399825586697148817515427805922440101165299671176932906687173997848079795468398124890960971796456272141943826273062748026385803708406910091664780814444675220701066026417253514840853724025806804470696927866935680861894031264382158412167706258179015628755515647410404093472828154910119448258102877560503896613242507864361124967563019511458104533577443013254891510004313876105913191801659221568045496646241982858128866340353005226838524226937814995455747355520282834342793595831664351545167439921486616540457112038463747454322750962620331186110469464759860520989400801255205280115017334096735562134248457534389885053267981733855104701784793590528688022471111137572783869778962823344481469865728492209901304709841399151244908165104517896442619692780511910948811914832051447106793519120856415154866183590418136187279342687391019767311911318442983421628370930814589169667961317800860892581434890982753806126242007752048583483382766803486948697348527324531529752147372043237381518312195880714749928232133173835295618952573755924341188073082902085369402733859958560145214094706169224566222337621322732833815398856266320707427262524487420740732263473302052745848254906201250161481315238642338708292373173776925540373557259222530575894419992088776052594592480863018836752229013651430416008694030093417317503396290891322734784491714475870567920832518234591110303631670704877707540134068940964657432922896934050251962477294642488671965797453471458216142488619968165162803353147578519693904060035118457729589506206564181310131494972349901348332097637218700102792474282999892940340290820286693832811177473252706001473409029887725777146853267791624390951415052080899322734936890727946618844320651452094317770149234619863681154658976430577974519163935450057766660606748943486050524295917391259621283403465414896205016362565875382850354667496161615291598958090794370970103689466741293080926015267589635546263945384304933640768739015953993373282991670877931336951032007631871083136278275740410532959470260322963814756278614703245667451911295769805982817345863821214067782143166633538959905657753070919081494542049491601434646934949096341587866709973826092471982840327467377674586611062898195659318377127036559377327304411191327451639453835405233090075541558061128127685630372142111475070072520486031632883938136363796213311050502221030513172641171182407512261572923917742067414686085472887920114134219950616455617827745187534210233464354569191189140344086942202859388225147153396296846245279066912174188130510235152938962824980464139294537110773650185411069871250662677034235998276051625636800889806847459629024275698501727699744616463542067543393787147316755866462911043779805914226318101200814740399763134550724680274777139488358796637663455242443907643691087683202800491792263584577711806412571021120849766995358066398103648888589849217124901260173173334806349743903100032722551735389204631404083606341051625878557549823752506227887198207631662785023309924160607872845136052335431240358601887269123043144592499357784823594214188194474403862705850649862933689291174538320515376418936667359029960826888522247142841020070626403000175393223635085795426506095958545629727629098195545539748081584701841257856763398024098970779954798659375458774639053128610479107890283966402313256897858628619902778909777733786262775567834485497328283274878020308258015662726496456495038509210472870841149787665208346685737737873863790523892263665150200138429226915599482337869691448324062790084530009215132162149396506557193705949812333771397675942469476725250514104229203591217492612892293581936668614920368399154200436788926668696797122284543901074247128482666872554564734059870881235455105117576416293590134199258082620035047548458731418989853155183578582073982161074781150254063864183064285896259971555783992663449435242402151274335969532412139302628992574444439190481401054734100066389263778999851309970215215941296908584640581007583535444666947404727419726364833157372476753743084822525137151431844368768372265339916130988772408614888483992740106059222141869578810718512926779494698549918767034390544237992874481127205108830075328731864059804193100761294758863281903527679109200137029087407269301596394406505999766762940015580710077796007816559125263270679044381793124893935955509160217115285014969247667926888757379639417621668329200435408801578104889154042629934189731767690180717714602588098939508340032563976171107826505289592052071017503209599847523438727409019694217710881356801203066051788612925633090060694399470317320894953691288222664548724005321015149392370002819271198628532058157482352543203591341275338885954395688849273803577273107036443769567123633509392522666619199737138060714302833774270233552117480723723050824890865313925989902065709249486667141548176131877689157232646123164689562795938457948615100694174202778409503999665759431360227473820407578590827414233297051437574980941418590926401446611647459472140888024679159851155209118120139864252687710920756009543917946934345029078895894508170730990192023547945854387691575028638723390407290511383137430777332683498281498052887916859487705935679344463693503017461425376703424805708179297917856987172896435095213074560072052791487612467280925546440167112595593940109971842611574158889607096882745620584752194280843377565997297993970776400964558216101991974735822530029694167559182132432509285367843838094225678766260472608497599755193949112660822117958886350174140425990223159644306613722352585637187358841585113427140148852691697234022931354351739836006594731557273161774098148072965910563587353582972709576709473027949564351410821346324267924957237121966320929521773247274870858824121627617262400094034218140706747048310418938819042254242583734861798065030939905410120399900645544217176144159201873405035265966431426349300803279123810758706219035589939632330918654025020939925663177521486769723964770545849327135374764035575470270304700296121046735860153494377616014991290443736252282019183144405028418329143444596414824952278258915221416863396853075314210133259461002407228134535159995999863309260013872949345537336901073459967199280856405875693874105492065477210496920080181159427614051398163873585030259389226450505251440758517681203755432161250710686561105248504177029237169134600674616337299096733180350621548103166801960459205816171778244568130905599711365759822997428510071861784735711646500918807270694949034021796467981081986746747354437928350314723180593828263709968104942626228967723349142332946596426971668783445806758275174447632643294298884868382946186143743819838048798443546448424718811654377439769322591438744893838001738364038656934086237748100825438938353043118975998327073531310286731000495403324850670906079656575011814493859737105829172843081476828351037623298158064862979318326320831957493724806842452619991773199217513122727523556565191108339922658292171010578092095425420607727198485245879960464296690209082910619584061477173530470114383104619627996531706799357758103121723789505383648232538448771839257803670294296628199791957135509052423387370787853217686823014223533414569075174629019421300262330851183414889429204616390857751482362611275783405806877961036787160886459483294589320828486859666487660382641516880114549824234362917883175899831156417403299758634859141932265699472339578200447345437902378168335396001983221634464131477252283359912842189609221442022685796278363710071343850915956711452874787990429706830546605892701820730227087944660446301619363977584143654914745421301150184935354055705351840963609730499308922384786093890051017557278720690386622966719487925424427734688401157895494707846712455589522087692835296257984122801710809978022593096092924390091147733970306780889717968835635465667060597754947309091147594869378882301082520790987141874105316068040210166326260578558388381259598407262810734457951153421947072031921145728859764475866034989874325556592400537390228577538760561318659600154144874494430188309855552520541984284748088168782602639949016589677435723928351396278840185938846560313210371586119262216432781743268876881022028639953709994680745289085556677977211007299096689974073626098947979898903032923553293944190575675744393969615314618846160957355532997261406947273672173493051920956699380153554762446391765480008107919690022932834336094439367200186224734452663455473404726897587646549221672524247274876737932917180437739791251356075880740150177327869619731987381764056103527228063969501477215642193270596114062751395172458480576697710562663207051288598115736878393496352149075004714896652623612065944615131913008822136098885943549072577378711007866457464848966987307491838646441456704202564078396771699847571719447005488810939826882962782479218483760488652227634475212971473411555197633687196754138858374400752231424761669429932970562759136905756298179799708756342691426410181012013283439188869035562663396549825818179186932000481226407103671020668219669719398555625185344866921009608754810692293362958623624708755665725959133408099741928954148448974023859631861321448912062558905049542716059743870492886006811861505576947923673812292800569653898028986177239722209711075035648371416964991018546055573186528206546547816522202537252584362146237258436459010957012256745896998294328119917877651037024494892768746691314973440649605064579141479779851048802498214580434516122563479378603735080577284074664423112396979706227666793997581031237321982962492645632678591708524878805760224750856863167847890233248333947242613463433464148258065049904222148367675103703662022584224503139002646719072041618671480785064795915775289105594166845977751506195350092555991411471978898879270108979294620711930575674329324098012257168213532043831800488701579240954382279518501713293840353476804095095226422945504657907002299407251969492981969700924937396537514941378564291544063015813175285526654215108337009854932463506938684855602045437198561593874684585133507835928648835791377253397083846575504086704794855748609845948311026929436119569403656959210003007344493721274473682108678216972662540333502901284988626104681801037112804295242445026321346147229108867593124440518906536711937118265283057164636412282868250614824165883286492378197208453506591280526358864253768240430532355214806330248990007507940808108442757104704080042437884803949852884147568156912115343592688520209339464828247101607546134008561264033392168911517190038809844720699106813764630929191113416133015613549698790739478272166669006719698459299433205936275967605227309744360823934660820901347675153540643007521782234421726916294775884130590874722764521054132918931069870419531792007380920843834465210653261925784999366186144106278403423928887864976213906551922200882682141399807949083612473071293770427688578308304893905041026979162894847410032747117812561541735630090034238131007044079336114049300919180476170101441408240762437676717154947809799539550652862250224779985969630737107018818854175268286826484330829266887652896557106158453143268323504838834252992861321117924492091052948283643529537957601817705215457082706804504248919043485123039164101896450554076693409657025085465046273534515228773378700252633054985604283935107060929361724050905255849143475486715394369571242665691178968458202797625668805225854704633610078069016342755578017334329289368327331552278006121909266778193540488424349694602340704182086173889373871442293488681926946735097566285983148270960552814925717315530910948069133046883312672023481035953991533805702191602901740805188613994963106780491289758562707670632069897271627900107872538800344506670627356862084397598536797894773034238028707377100983455547213190787021438075916551991192666523703163240607328780115711767230860030382418761258693924289737334457360548763708774780532615739287620008565739502761683239019950355562429790039875997113992224767962448380445531711976536725681907289983274563435190281761224099482325327132122515932324975008591052966220354660197503713573663270678657170718375221912272464663483765908320066840585521645680053815950328552772590067956516251011712990645393081558936859709969258871134185970224540512801301153324062660955288047742076749212392305682202985832605504070407887570517803673916414739566564647017331823853506398024884830371503873773322307288232271382285261922152481697834362601516476132473577219381860379346484389317825786323378705355830589225955718392044433817125024075387562330961602571611193972357394310587196810991878676494762173570350197497889670745937855021212102089847569387386588340532649268537056590508862649019831540819615458941027954008650996395450720925093287603557530892149174910921847790218434134051812884687173437018410597835855767014706291457959884005297608722406773393639110629310209337610673559183134334766282544790470627458504267019971308304938815843193577691066328528354433638280673826483786974245547861005852337109086481502181236915792142783037485833457825032406451644310818657177772470642139615031776846391927548324655503791285186376240065901611141509469172597264495228460422920197679207345185848893914982483835113914359025592647084788286631796639569438402027272284874532085274159400650924158342601120579646899879939591906635250048407282766869765660087530923806867089187444054228601742547012160254254578784092189487387007259571815521361053346241266818188800541255421017194756309306152664127585107723606651255902129911639138399289223934890597463309392322419734715740179942905278355373878568794339528929447830796875727423937335404178456580511386345852185071949248196917797125280824703335673547272437795513068827656434211168994773461565488888260942260020998270045283378249425441719011361966694910605755416803728789323783624283500244511212493426998648555430704125102170260901638231163413343878462647545018902727434391532686106958188243088402838099533979724024891395254429890069010938389657224387554750063531278958639935494425626219734962547208771784644147736472574487166638099469104246980078705435395987128045906974503380250718449520810384851312322056056774505151882256532050250758898241891659729221298565685401483720072073492813189487314486536805925439647631062392105128685570086453766617186226329592009352920572895420311409265349165444053788272559767862001095195262009090526604136436709173701337237716837628624870151013343635468975334532515678782256129515871536713024538544118787303600964614074606459917117028052596237974098452316084140204833806251624836077987285195808990190446485338630492196541368853564250080922070979517098220957514618509795423766008465240567110891438706304093260506856085077532267905425295745350070529950377717371089777970625724251219266641398837510789529668341530133879185055952432894812275483122070853320541458156346194302424488383414553666742182227658411776013322581312659877146642496300929827906389070438071837040302308541660434378921579368300865152578687724664439938543321500325159644072362791010858556969468378167621110752581751364971558326272569772442517510633347008170260408567891983356770491338008721670831973536981278510627713856105729258180833874203754197233041044107376017813240128593345965511802767584695420946902980770026930395350235518662436966848454225666475504033900964393438550314077624282343218644213938313886980757742311204229964436076864753940070751944201872312121257630133091172276977681448528658260357467886426469285558208741099212949983378465688261597695998406688160013213392854818943519256754527022456710500709622327125617102509147728480963126732101092369125760090568767730861072525267416872736164930752105037051869161654129965958360039901424456927900831957704434889304667880710952975256071392246104673480660049593497402714971082990835044547166107179365165640274559466131073797134235648016700083778521104379268792697674640131651596871708490321813067049114300790654596901974265669969021034741400082888062953915085373521836379770807993418677741233733805526481964702187222301629008348856134858558312437747986514013712893797145957733608451845243742688027342906232280434262065131564176548755074266016678721112346454674367110548206115866639433299011112404396372673742088212493050211254085909743878208619857143070764862879952898021549523510267175744403535522247531842898320440917237301833451685556961515112923885047118700408706850567674247516374130521692602335874493209580319706321023172663076041205266309431575656586831977064139826588029767622006907115383496270417495163269466740518375234387005331702805099358773847952143493458841267331923170162274638204506286545182578546980585423464574989093037646417569596720819321697073133653256676997963007500278439048515441486813039698839013118830422418860096369915102830687320905056644789273164943900336202641463114163359133693445205945553332452357673560082664284397236763442997104744121956801244803874387843506108287098844270042207973330322420579472106386535074820001756667642005147319614877172541732272833648909401728011415562117487489533434629785088867488563689888225317615948017557087367346442188353097477681203021780177558800718387440788162280201632815622664232650329151869571166006336659822410246710992215686058714597584289771291616862164986007720998515001962699789584843752609064058798074508651623035290516524896277111850035319723128914118112977941889363678108896550072154279948905852878171919470418624979819582765201273808442361315320469202687000394154979504396364522811705994299037951364384890863316068768633700939364815058626185320066584520319169222036603470714462872155775787055138002892527107915325677959273778650361455282435986969695656899547585392316266495380698523524725446052284014054205659243719008129626585030462900100702863875850199086244056626980852973984206726140687323918701658757279959048281064155920583217647365799822800518520391086586143803288116186026144372949302686149725723675954729897133368477352110437265537801947601760033564839196606066291375823880714047930192235360990569527915643877243578809759401972723501814762400106683594260065926888745294097319301976665242754478936334992001514167948416607569076293985443182253036373137257242570833567408343778458408402406637284739679554732256025816960072635444549953426237618290078514253881913313210253751101091244976180025041361971855473169595628107845082935622594164736851927103683232395608366433516574745048147589685726694510879719821733201663599092018017187433909528261828943507350363471236470886299212161070176050017087137939479661599912498488551519279189672480611176052658973575245217949297389426184699726374426360666668733005286616142542122534615083199023760511455225813238020927399920088135283499118715695762186934660232268655538539442153298904117865958952340881247982794319282118801830960438399460953986577246362782651653127348331055487718119174731569608481301482373284183451567538119211953718220007515098781848663118120011098016870942648741786550822135138999640515277989597356313555802343920691021059424988566329868850730280593552798545651374027294049104690685738405500688034783596518466860411022137465666515312281792009877319888127236068257490451624605314282493236888512601621130780963477139298865009932803452875466271587758035150826353458787838035801965509522494228782938671254351144927647153100951066177837545996535840239753865233290921422559884101940415202194254685656730481582972239496383609338434676400725317667819554011605307402967217672007399803192743491370833203790436034919538711268059691195692763324636622153749517340459662263165568991730554191025665886801454281302505412660568551395834236468485355367192376182233658737763469031978827458835000647472585964162157042795483557344352023697214104460231467179085318063538007552870619738732354401544966692789822817731227623786090421943307448964867563805629657172639895530285069255082379604345556445961809672074095301501265476086069716247837160331351879493889298460641016465002192864453872101992198502530292264069804035320211942687807930215549570450546173168652486840604633947482287321419503175586818508570642472234246540658903847256473741661304027442785523462028974373557146353286948295048769234091463315589218532014940434390154465093701810264350604663391548565570857668145880923013148221329363931422845829057125372731169503617189685392285698872005491893622355873283305852847650925640075573993574699296224503135585132304247142696751777010372866609067629317052250605455300683704476532364575925918251579055576030423125485804814470887070305264987367161515804132733543212275719034723282892871347445641393075662067313454002075766903918306133211140253107483114301644946638793253682775050921544196240693283602378143314965868224870615179006887543690585375895459249788299328568197129156460004248151532019965134442919992085339570496775327122424481012418487945208088117988780671668505179242302961546513869871922074256035327201308086419739781815931953508922171568153186394898390591230009133588217286129516499973273477930459470426139397968690220459501922633890327045052228688024744615958461302976462045526411181653878458372144842019668777262846011851127650140705257809082476910841813622434335871911767872033368623241467070093766936987578321792197006921948038705434323686511101862984299758110329579635624913491821624602407473672185212549680226481677329232289371430050388117616506043929499517860251472758281117347585517232410089089267228302822590034289950369470676605257109617257627631031955762714887303096385594000102999322983890406283619005144755591295530405806844306421996837054952457268747822759435936445488256442617282938364669273283371806847521802338444396870799525455405983215913446417553728241322023621078538458761817834724696671105353700206098021328847322914718782511779923097884953922306558733401033574600947003431980965079722459088038232273568157895647110248776622377631305925168889221724940989503145856767000957399753349854456835168196907172418884363459013393613574759643517001534775203657287900972726638983477204459504361395784923415248327938838108750674403339859572612948327463013878093354392717872348594400006512274391960716528204817279320787400540946694291429531906961282879376955015593783813670402936318593937748827218194232889850817175902748098644805488814719850197679036376817329089149120177992435026905284922893436497837148603449473169550630958666716314910003161126095865932939542379842646148554386938285256038622895088170131449598056332234394203196170356037782704159055300316541022665034416317176710976466488282178594489493671913516153886602645689965549783648021432968407107100440061105399647362812121218639855221513289927704313491802490608810521757776016326443948092721852964237051876766323235597643041029811229478469160356218465829598960702489116200812418241224743074424372016951950341296599847999911628010709692757419835960087732178247723421918770307642873619987185684252834697503675730733591704973013944813778475488598395803174277408689145582382287164299957617462593807363917284610665614160522078022335400663229111754861284908583887199162240425000934044657018515727467030354054306496184363259586213852891764170830666686790240805917126100892261549471090736418975344541994606315060129320279652468859970780481391705491606583556043755601442436548076487407366998582152099183441640680710933300914961413599697083699175208618059725215621850216578156846347871894245196967006894071875526374297094945158015423629952596732513677307490402472477219182753553395129460331617770505958623325831497663327349538607878912939163735634849338115536775739319907179245708028135803615967687026689981607503009716704117394048455627886360093159437576815438791661521544112305125459611871689712347684232783690770406457495667189362131065820198837604350696570054188667793643834300018527285111557965219244303371620779528145260546889263014231263250062488639636272078013873447705903248635175785664150823786042245043161094257592677129185538935634277359266889500274199964840819783480862394639129955857397097550140080544529351172963901467400389374820600041284490754374536184514548701143955661925506525704194058183383821008046995930102400801651757785278213237552228686539612855097328586640095527466660314654176877268888693305958214143352860719091847566376498763534390424423233210477092571293699683096876871999806238263673810811303519609780225141130270718448138435132414253010330680088741096550570859164537163941532179025639890015587966728555377309049061560017224733629398125739820782772258233427523470822791074616015501465855979365940764076035330455486614508623005704496608565779678014071570182078305350901456204743294202468549465933221671194149918265758116065677036627575570177122936819060875003300586588736714609569501098779810169817184391370490266354209208183287188167840126924512671527841241401961894874468546788110099823768036021947667582518052391550967357553425293233027047942850583912976733781248222967528218095610925772479781930025587087322420171447003463848844277037601424275475240123346831491184864566397116283771252325230891641474771801225282121289858485945769431786302189048516895121397248202506141108877826642652455363935257021015757060597741864489014886234868083165739607561691525949742543833610898724738424621141515422167558523812918674597063243365308728180426940609984497138666030118106164784382781444176049338498818758281926436410074962515774784682149845680156040416605983054987390198011361777132412202713980413500334652501955069496215582512400624748928544986170389227641087457522402045556506433980167037078812495741870149116055828221441697604330694595160345314523038168861939123331112542124824688438646906742803327927444307098587237746510181261947369743513458663252333841831157999069759226343316564921448230367726796977440044123636444543667117557107925130922366131151544971120914743018139689564225499806498298007087952598392996754947357043891556475368354069421346477397532033530258169206267927250744134467229175373370305087462188149741323081740968792953462230051145259947736516410823579710012268701910527771012308510110486262553086959063466385222081542513171986628042460007423798775186933250397234301111869240200166077551348910104958602350244711192037927662886705200939456593567637917522476208631322644091435902845001327843432132067908470471427463034098359977802078489324541402846934611064755776504404409972984123319432125384207904061114814653489165607810754880287319755297646863625544025464745475584664209049549442638239354306152065852168757601449435937974063700442580334167058055192217645414612025590842993176227727402685448454592267825086258162210282602455299067736793810926533344369935507036894761592893694867589365072329074665988098940996256707488593488134939592768645936868199062902432819157476790536679948351390816240599787103164270746864178614035963767420448015155698471096126059555031390248609718019298514960328556266357197158807014066640378133737456582873325260672404992443518651151818659954385515524046440230362192860194251249422527596720342275804415037978215298624481865154624719124718018911031253409717596910490370679092014823336250179787871680653716858755499871225808368917966151023862093473035382785211850556222551641255578627074035104996659575218933185648323862755695863587715459064061597820354966455312369853373470946967605040127284661428264529164970461754776130672087400880867866699290901574646311269546461343198972141179721645456581893465815396521957110292916965563022693215263331579896102832779130998276224236190977528242847624126681404352985475844366961081205489166164481035649715044408793048881096694251862126885820439179978410876610441369683180007158633064385218606453266504908325554223448251894919067918889776679249020853948284468100121226633531532129500000189156175686091544830560872500015509028494998334510665003230736004142634505416799417680284874415700930696597665965795250756430929850522794910499632608959731166058676443802238116728930902955994937440209620155553592251944622262891450386670260278988350485781739403560520811485225318786898169104632608872618177093005662683929422312870260379860289684234547076334661864127162469236432240058023568150749538179696473635072759973780838070054766188563843310940301221076749353520906593830007163909624684984614413066024730217828663919805440109730417176117972068310965219756169935362266694569775318897491607391670712900674561101787390268965450413847011760362336334581505457180529035925128105254880641959736483834129645813812603422445993209575912439368196259480838318570108710817879210446182301932342112145374326030452031057029615088702872268214971678085400530830399540690973523538340272229975568373048316562596974537494059751253026811369964373218608906206084173295829438491495132467676102586480377933326233579242681258316019603662525438320188989834335280663017968181552440925429476527413362641064289130592986666106021041864867336735156736542126364505152632180119606681391501804613245810919449347490980457029059750197243410194349053089126249649088598715110707826066922745268149595878973461801125206537014788427987833092409056883579629309669296145567899699122015581896852347602739097566042623063314142908540414455445053951349360497693398825385551111264876835214795468007293773290644495498341844348209316136291084587163511533203854010328485393589064333195037081227178022040960087952512149026967193051552807467039754455798855821331817057920172844047930633552968481722349699194714038088447662812256696072548975842386015254650240114739979332960644034184417900703606806765359935730890276056849685287491769049225010130465592032535784412688759754496132923099977786654960563500973011932632798171417440871504123510800960765207354963916686144622806922329421034345311591044525063794112904544941464766604334347881168868585415541964073848687956264113956339343897321492350899745126651125115370989750121656061511546526329887785695571321223979021065616377089358694287181701234044525767294984815894429154899318969359020678612273566898246485536724092640065486839650756569551447968745311030529268154099668544194733961921192845298113526607784017892730509286249623698170847811912344543453576419300406872771927943746146507702503259244042409433887695827181617978874552553190042568238402229663266132253346295533005327698303391908239813613679408317274949705347323572750736749582307558001803905171739974560361508905478526124243358089370569034583091440443114939895912660553539843519897424965067596950131195118359368692312077856405524425767650942763720740370518783256806177422080966723994325681167539824814052538505943248355489820816005589232715108916020652871559257124712590623049403668852746266823563136886196145568465709016094490225376524659308058873276810222629364303052536421145063041505620377889557410258936977188344743325511411932902320525457403872985179103676555773210038978994440172126940968205800461488602185634980389342145001345771413416294224224563743859657162158581355854865302504174130955048902986988969463909921541186790862469956819329226175248239737717698997419919331460696421295103872550034610927277075553998331982232865022083267452506994944941651175292275017952335663107504225182246346317994567339453601841180943888893449540510952255167919126226476401889352418565012856807894352232121698644866077382849029768463662069023790416737922474655119265886069512669230223763096026144368822562196847455276183667139427316448334870565778941552628942625738584724703528639485144538827266016702128812080430601392349894457629070763757626639927591122523371163281422305237654536399407521776003911650614134939240716753371418278815070150620677246156220656697322388094412045626042985858132205111873566236539747163733508296441126356006911969081105458984016045542770873950279885742895602804820277612743997122489737736947064928076174951426293100284927661727618465056161555695698006072695094911410616789256149124592737225932578690897369180823836400200229545542592670147293460284719067048201964471203902140681478420499525089630187850991517303956209764472824019857698613439919084267237196493976710660130901223029132157026858895257459525583902838785880150404148217572177865327941294920722476865961139636657911773470761801372645602643234540179531523231035584606290801970072160766210798972906574666982552549941444616747218414811745587045679983623062214329391470602070372816970310024811377588812063194449042387413132591943495874826704577789676656831429993777553227352915273967517090101521927478069095344563812205882835923516727450978083572445051996008659132447593176927272808466877239305795152940501671673804612254171231476490489576478165120360391704167334418509756436315354575247968886734944038331597428405516172898155969790708636099447579674242316278540826161595784034756229748154563897057265676684882374343874702163851155203783715641924912423387045659342593345837778538849982338268857473472670489031350987023257745634404235555742209226723934163373099424305823980599493579687837069419283626223801514239406725096814370337388534336175039165891956574489456736929814514296118398016552140543659246653153028588913982200836608327175400233439244765027684408046494549864314846803971939547410318033015045220706581258244902634177339838981133908571088930388200541852858987456414076852760801884269111834139404033330632236859557371947593787390155705866503904194180694963128637478838440918749000417729093670572189678551305621446493685565281655104531183762876033161913977195678564041543094058516514079136579930541403958177027210431874055661591794434694246864166400151438478486972100440373142915300633277423194847190866266543123266557729781336889888211250773986884204895621677053698832616318444286734401029700229950142015775248738650283627197927922685255146356369730556908861388508845886902809612095759087005616693432928027959882747022222651511274542121865192306815922928577335656196589600504056578950682816691002402292468578099343172682092744186132536593228231114077205025672219598257005134586596187640653089658598186808850724829128583336662073761445776257516458889734450009421793298314723901413465862930172726104077861688281207888373062502828878360799717096685966820342594358085928253632234622105248235455594633071355992979750489414016753283761995137792329907522927505839730428596836098959713037945755284737820841227609323338725382779440472656825643749060841587042595672828240074901492866882101446191136780260696077261962591184099323805107383676286443598227881159773352955784624767324281351812981782709301807775210085968943754065678016793551999651798161846073265903896086321200009905877562331562138668802685439269340148684987873295102737323765455899641603879767586615933778875019016855977322047492446825471330419282536098718408789743374539894762538831353964170124900860574057432797207668030817660135620058224958649789586381423591208724306423035668497172896895270694143808313090171547648375421125974824891372930272712906671482671176261275453616711321580305758446307840766390306428426730336289510234661919470185526877383980927823943401182010097997921088472432401472924089318187734267854543846721568479289438492288816648143407898492342527615853147656157554268803719001154760442424456265841354886768225000300795608399287567081105603242372358233743893392603776212669605161033737189030906304407049042070211753415855573757850286014411198038699941810905226898618580660514256085566091177135332601169370252001661105128438705231600622632434652157278722922593467489816008570921850969554145459844680549730119682221726694798977881979426507862470947595584716112629871664865803644757533918571081671699097421556105234961429920285064839910358855753484048957262113725304397330197728913519377338418608889957589171223741172600464653680628288994808263798011991943630081574407540539053980997235050722060935848857919727013434934058668229868069828100820931298981721732384751590827956451019058361062746465877484669223462118234240496935306475444021378626425318642808287015702275490681090356798659819687378627347106766206306487905902126936210223059603289821129306019681786295016337630739100666666581923771839164293117727065960999539729978741491383742128433671728905828173403228834300215811925390656834194615053716518029057222646601589781910941530677917531140324901175918762975717767196506208037228688793782417211306722095718676755475719677273932403475849885828805586217929364644900638369423971449222703782839733726328363304416777432900823208243148536484992854511931761036971217998928674712583087357493009161662438224937430985614631395098606110552265651750773414478932055544636566546649154850900496437127319911453581364587865312777553130411498954320012260531001647797298801072363596927544284756112814101633569522179110266542978972928067154261302983523710718566350349851680746643991593047293156168000147450532812974217749859052032132100330848492257765394123334487189270547421138499684763984285241323294097567562917781032195284734708485671317416397550481599268615445401422574802936871981880703112097721744568401648382932364360486555049696191941658435977970811488724611755910346977470476364408469292718228173454352514898519320005315992472946563025193461634453584525377731618658015630064071193001535027166707735107880406268404507800858718877345589568674310997929416676527417856813763965756811270200541180202703309938835931321854770141294630641000065719479869270775455279713472368087590648207408237626897364607761679337173849175487339188610788325388162565470082615583013849961193734466103447418021746486520824182960636382280790649690404440417109629735218852746044720637828104419031498701154065401681877344461893488667720070950405018967138475985039402733155462581277307529110828342062934724831261845091632502248784369479712048227849921289241853085778012859824749226874236965629273189734126913521109257656470455863866343859364657848245282120816535096943507894180622227075792692312963261195766993295097099934499488447549699464834314750601179948994875369374947527430822495296687079048862546813758108491271485219955947994389553781739080735404882948678008476769581478286010164089165848341783274151271659281232437967757706916782296352888437442473942868030939579137513225957728403645280901101787212735521723953629986672082073159300724487189832881835511577880329021478813587004930698980322650348532429340199404952827043037228978627179266114188869622431843083045229665303949300243354393142884464478055089243918919201420222666102440641309041180353105799619467892319928245346441129467609969193380360945844737352162907010707782444287918879694733897413050233426197913342448360807167899760375533503027468210008533060972863843324168608002224166695946093655380730778129659921332608006098772565932580557192943962296846175403474348101216176693103417716247819481732984977167977549909626378277951091771707498966332067460287175434043175833183174213581567427903532959845186847187319455259784045420596405607978180027080123957599165167766287693373617745858377826813921967306855365029115933023941311499768470645114232486612521417900452540750008492442456284651695510060697663245429177872042164498188909257230352568666841614866418027789195207142326582646554678107840336627746294868175419434321783600466471042029466034291462865943508266792906318769226753622719058765091111058724011295714926920141094157127597783229963973024862743480426214266194946757805055573449837532690170412710047715654825509241625276409245038313685085835815121667345994221532708960074907868104821271599621725515534983742734058471852187596607007337476291584158983101884480805446156515260625358031001626074067898642145711486447968995878902196884061355079962481072250816660523266289582878868388815635520713239132276403149062909431774473999249131791914454233091505191145846617627572290917716495245272791884379696786266034386429951237734838103522033000662005190425594381025678169201046327755028100575984716762748415324319878200592232953689602931248817627525016212902433556970302816629321324513476911941522735595344065055763993105428931785605288458395374301831744059234059545402174702606506824800290483177448183404403077856697723974267093709981278928634134200948956351973566430670327073719129584825900945985808310036635745692711025107193232106409695382993448203631279536220041520772761673758260909823532873792449704602273758539883792883205790573879242201797900146049659787998674157037917135613493863078906424431514489943239688433824816679636264511906638026551881631223060007700940048135122599113692915421242211702127171691499866325139240291459250149249097297559801361748998569916129676574472190481783527772774389885123839194209515577230648962310981282199880550858219848241079652118031583167192774097151398377337942127576501165493466204978115213937154832134523312619682583733754748478026809830331484310954232651055769766650605946657605491895646224764426787898845643094741369330055130915031565963010604854672723001516196511605667338439999997310293729160860911890184064848395669893821325119603259490579496759667717525629115775036718746235633368692629741050594338090721265384972320959731423311982904644901710673624482013677275962171001474688227984630436652882197246362852971056369256530989037493857017853777756726273245728882304344994410298540589927477436035056443135109963080268352063204577969220017058448592414495626973122452313177864941915800934011402554470003087773103755779915196976363075611910688498890800491800670149799297865226693222696981077042258398705253625825663603719583327613013397482356928203472466808603959096105900389305436488737960762834996059702022963941912211278739864944241550642836847668704372957325166554287510316377974631551476044741093212963024089582886978624732570946660512426208975324011991663326562821698470484319869285635042499154054521606533926929454128208486394801941880104786783952499385495100663797618484261709298823659817373830006670645349668346810637213924717164542617053318670504949862049198872014428014073562696872702477548685147113479527157530263848561094576503009718049404544473888379292475633479996654599992093481902496622437375974317727186883829386971624411266155262538385830707264387565895811895130197962491038952936285955813718349761180031557380908791921337057358362422479649183130313780905236004858673026211083598872403242994474215206526284694926971009653740181839028134775993503586520948025314891969353254968528005760360602522065509442532574181707654459263717711372608853902042582415970857823766475396034521965027331981761333559520647478258310563011762654917604796532887958633078521124214981236693490372636360736888947191538406732266287418339500174289987536499872012946780338372827604641521130729856285029306615418318160685748355131667682984369023567127882821256747298132223312463270452014575919808967397467065299094754208077937578582984610903719864082578476774265930959004661609658635991213802216232082794927360803093500809645650524149386057171180538937996774523864443353784717673947524227019115331713710400030104291454839964577463688183246148389403904279688621810972118103396641334066106915613268191392671162638017802157649417561556328736750995340788335998320273616062556253869437437848749427990403208261376645400361515925465881385835483823309644123615956789096536463403663152741130222134824121183113853812299306109623468384449465418290921134226362176736126501682654955068144284481640129186377713731043859830284507661796571336618637326218773432563406361232462062951731992541098589214101085165149629909199616868014295264104861570912441584886149459293900138923512025784483524293656607039526206998337336868479257363359500154158770313509137045223981266084528903664678872137298154745304226410271365144594949334762875767834173513916212156068865474701306759497311811258116224355405006538366105512430766389507821594357675334374507250441796778629797504298765678884700452837644302476661533788909489306096344952249337149269927547394938438996373841633086870129715672594875845999481808928332173266777036449027388056748068452389250090686656597655583876711431043641053410411940771307915488334073584253620770932099510411668355123856204198608489010895877048144570455303090976731905445655743042940924191679336405150886171232759368602053558447198484714877291775508683450140312132317322097941717286839684155711582923853140389366343502219433306878021524625891849393129303937288873009722282788919071751330035611490288768106300549429640327741465446511531543790107328478182272785537908086569157118606764139119373897739324343946106949768579639241752924925761167701773011191790569899915154156319920343572832439092227530751879934105300180014883152315026076639543180448529718662584076702708375064792044915575453229355237509482417595491352201605570039089660141335460490961660877657760880193431418543702085937043014158087849529690187093299226710291420353633712257007025622490297870661476513458396141852477307035106230286508451928013410971449334047174899533438627194167076339553669739376796967995641481460703516271808546972375325285883184069857276750005864433706412384173496467404393915640777786901873258457731199441377006689267263845761283795129134636911821333996697626504831408976274822487981322921320353659538439360800206715693895033898824842003703400603622215920049911326220474733056748148806074314090790794294779455021287264519668380227466302585277860655668460050804064571795059951903996214541016323824527056170017861190772300183065534066386347884432864611980825410496280383952386471802651382698696264789938728142028120177395779863210039226982853781434878640530509063007741906963470707202611269694864966011056240849458691603497525598325229393753082709965822246722175939083158110413002306144804306397260251112973534954586837318601590921528507009497229099764643873761292066409765379153886419409259398815785437216548395311751022580188658989394848877899031230193339844404519534609051883839388999679161637401673141823132126024575262784673084205008957282158295431068439397242574833938198162211677917769529672159512569536009550065822626088224211812490627851203807568534063994611975534627399993234193355380719385155411524438540174579389239568364641295529577954345305727774720080670177684454829380440129133551754912281964565480084574934986162089208758310601836433255701131449254638230459464014586209237521820075021469794192054088800777867756772403598863326424689048848192125367712279914814131746984057011291132389675456532310568543555197706922329736541585551548807390797901658832501983307987032654660398849579613394146431735814920661910412959161920783086544076748665496037219834425065165754886494281420021836456426717705503503614096488466914149273213537020450733580615979277173072858288204582300443550306290285582707636031771756271341614308175982301068250578058564680765704939171092138231792486558874912633494673570825362434482733082973606600966511164995342072546517605704330041348893432378276582506742033755836915211101294231800267392998513947224610983836703526746788260331710165952560780411412938918783693395135694353537821059388760839005561946781675988067499769943981766114514611184987520208860172169569966465970840976143992344956716496090241607166725603097765099011761249788111645702472947174971669578820703657952932250964527011262528709248371744761225986350668677329707135839620277409733688432228926706664765720004088405048326715955238281054885489487491448535850977322170960567044109525611297436936931255084762373186305492882599437616759515981791966162159844482264095055926283726385450318059737690591718502909412181444722623292713238822499641629487957092502859975507171336345656227032914598756128170404140243402227959686588035874117752451673774520497328913376815433756494640978040412049747598855985471555517965472956686600563639988904909456002200442908730686899305797833068023460536952027482760145670784816853484628722751891104184311184876565792709274267149939979206462651292117239396554439956103970194791640157614750477698327204166511744660532719127413254549741232460898356531615511226475776108181763983001525146417060436183853593846078082684162777043167296397311616646051338481913652387199753993647406101550259718143366769293684538450850468358778749271097451863810304390851939919706037980184855314863948541242972057593715259863485285528712815564298475465365791503908507795166264047326915891483613710086734991923948990609440776275424357533602698749558291913067638148937878797107036946783925960002689329918862333363744658379617888261846862733156987087740050603917188003664555888597905230328578876069473038389703402920985495518546714172077145549328917676390842247370490459975568063043026544052428242119142359470268620422121376059667055158952730780880438765768006019847942512927524713333055805503085414577348694641267996994906018695536353496682170983467072846061216908167377021725571105891734895375170633820048100150883512538630459849259605593787948486781289411274348788263528295293403564456028953941354033887318526855732526892105592241432621535431345667085573083381742608754890728889346973892003407159723592287431254135451340467557928986749750543382249923280439556490456827134982418454755224374961788523145243106100937545856454276684799248026892387692678944338161501591727885333876200142463208376696464573406558545096046338554253330330614643777287594102496331900410668131911063723162899500640804606552487202176979084194360987769587560572028685157981395363989331269544950393544661725200988771480271078516679908498465626127920550140638886482354823068880084307800774480428303459229516247356435105905491161239261972797528652757722998211887938340000748096420254867904403112508408599875405515849525209433848090033579286689927752227040807529588585070646895506560074833956315740266189476214032685626447145710667891286697522161622361738646962262682735628394232723767608073035939402024062338540675426463904061576910273747313094797895492373368896824509257962931694126214624257338802201217220145700068104256933709335709611803574913212771281618075350929340898470110453656783430284082487878106600524426375282079631650897323569206913884420941083884780205969107175884925770393973205873688327128132674887086764142168502880865027669092872818484340405129783847986406599713130705083806252351717250310673904778647189752116992830949047453032052477693954684303345767488019817443689090585055120017756205700038875952055458963152103817262664297883671425273997027618113363692828921892690606208993265275074152824809442462128756293375194396788151444810162340529749656668152922018476305357033001549642929851801279513201980488716548388487069741921113060915913441914931661194311858135751509475140520595079383289438278411772115381396510817186955237011472531987049711453503445619010453132685514584429733028426244213940985346867739569376034972670811237209474387991955006806843924308789369733490878054197447332380096462808050009143493221024448454277292087968090508362062602815280238119197967370461435833630153069436161907437831717202924785627714062412815037904915346936966878546686922249770152394270166416431832437773359576408522767153368769918972388296758165549562783090059473949242336499906107924475635566498254319270713421281555115641098191399850606726833362130234972809068970241171513584531235763907594872730591060860913688822356874593510872832202823210568792101118788451775363994160578820980983756980678861642898842241042514745904679151308985223117112979832338861856555926962956095830269159577313205635000935145244007870573011959849568548240381381246145366749161678876051100697503327825194837606450521255554630329606582195846252397560169124476377603649444267217839509826266854388354222799256751875606710202360327180861330457691328138344000351119397310228893714098784473152014132986156255597543203649004952989311494061224976185244484605504972132630369605049062706627558946106236557288955331630292669267860195330310967762069402857655887817197573458936383622074034134763826863255354889332849031818212270630278005683966755173189331560895260516995112421909753593928576100010316511589821882931163361111991755669131488984435091140733612028346755934520918216537004841591018253875025907118431331461248409051020201851481761778621887288879115020996658268856542188770483120272804057902350149487078794155602160625657424391752068750856622707804212033211971019070979666813396945376772515120463131534570930937053379157102049387065661618472487820247101419449706258327043893038380554281423442039001962836524545635285818963739107192168857820353770070892222563811771958504349646686877733071628634386461029411290230525208343729547044473931437084688895402301775878596350421692841710827539356748198536703306503023050390946629117508713507744833172876775255189375718477943076559857039551038817584057806526445496220914323217117578736035335764665701407234992137848769562401418323605347258858515462600795873817412778288107229509574662312321656989479755528394510329285899012743728192686428599234816036492389275262427163752591606432170878494358055288862788044204996032901331263482068030502425274622920484609083059462252404536604136361188247656720174496254889423812798482133757933183534213843071885795240485777177554692013377267055548421804552940487746335921373337565161688375070366698402989079961564882590111274879188580603577176485339643827472899432771485260789682210223023862173380537332414670462143167854146943221060713464272699904301507071921793656947739141545280812222920229536611194480653197318870504498853349226896362793426660521972583811844773109638910613131040520491836747989624421236392710485512868851832746561130432606976132235626414056813311943185121948035834806060116628259455194347322480731562044269920266786280688406890037022315888301360136204153126357851159955048795780561700887378878941410255711087023139868757432356261111115691213872510218600245425966052939783043796137522980126616979873778259249879741966527482590709070634972853684923036853571214400149033204987596694370272106608999385901342343927035233154512390070055505159280105962015215342486431388290440475030779511624321673823401734453657938605232875933116920024591987927900111505271935938426302432166494896916899362899668413265646239291449477445045824489248998326772581595221709462713078387327116398396590901416105399206387814006199671269687546768267690140643419164925237531760271982753579769755384887039523171236168698166533896762570920544896515377518033087734789267407874638524063854020598212905268893180327816381994561232807259395581113619024017444717087204237180201867706708639165562890243068723170388125796828804204144624292143667305878731633301238330450619971506323592723983511143497166764045935957616404661470380326730522733121040814089420820691147802762084650200341518193762319549702791576469876892002516134609451781662911545165492082826761132647311045942218796398575572377475479594433827274429061950147455115198275863761347662557988957329974670470073324226442024660505948092606674801646017847707029937251704501760820431470909116014984300157074868533967723846637483297527936448780781153674938094862168084842680310936317918038596626069256830570171322050921446072555127206413225518838355861125280834613732356585384579117970542387524975709070339227828862128428682386431776650088271508450308023598973703318994208720853116078102636760091977620108116613218227909894858567491626515891535956634863601700547175680877566176012491082635372749518876799904310441805006568348044317815168205771906767415161664294423607740703430645930322692670595227483963991506947535548595693340958705481810803831534685294714671301159821146452938968659206812515104658238547961501204630250060602824288315229981066293665245822333793886989835331720374656686185449511352815068998427342895886037687357458743858752554862869850067946719099172859446945950544641247613134037876855417771772399243605047561158354790833858949897825704751365729595638245478940182256732006628920109833707158343696414242064488251872523841091129254954365460980695605432769154325107283032312895520430323913174233057643003323882303115399433477020851406788821279483024619512490136725328367784550166688377655047281120533101804718759999705536128073430096690536379147471268452286172652443306338594330279426413263349670086726787072636502970221730932197571889988768026106393673774549185140906464751337220026151840205402912677649834751074551069324333757209511603574539524351771265548594571565884699478854458565400554893164072469376532552710912051305127060727024619056424014658302656978262296035380628247033197341822873310899753384530608674009748335330230142667490948332323884026371752857311866753620408105714796248915025501104329043790131750679626574894875374075016765539489536384985286207849391547509733878578828304273072643259848541772320919238116368135665121356508671219931934725782581571621820619375317823797734500752872005834370501324480106245207731965623127414809048039215545581088619301322208547900060279823529332077750154965348607833841200752934266608394353330657824098020337845290156076856749341954637833742994558200950393868094623988914942166052140677865795698004667257834568432966566499507719432470837926514257665183798020306350024992575523472045490569236797135147297614296334757922097452923740058718293950988158077039245339559448641851719498133065630527183615030899450218774775189364637912410440646033150031594399561014135277855231587684817355077028279253391121776527414282564404588674149059771728043390977374556976593525062331476611427439649126880483598934893462610459280277357728434346238154970005851992860149242777676322809382439016635269046714687434362131273482435718720659963628720608866372006104008992813576579546770071698802846443973263447278013937345099004756730475379197912462633842705193363786148450020330927378774212685569255340338700251331042738067685928183057053208879896637974991983469780075610404067754123217170012613464636230764678335966279553521711004414373778434704535328142853621462687504896663900381248517016179724215379758451100377532549640905172244754072586757445545943618722816837545132469371736108571230999613553895199419629483460904324697291856440092501022455720771685315586476411388198734839962717802340492837356382600828618177769846785218169338608026127802548322834422801542369007617565353190526996337262080159350480763289431288167124386685910028320226949005168415106892029919811788596346165485599563738922130644338057931580910230111486634331515006948605622445342844201347220232418120847838833480676648037498794787037633759757834121651693569261366700322699794919134939386135268209926466628554034131676441841693896789215573197486422425618043970889679385163409745153308843159550579901822077203593845856978209137954163120062540932805410105604193610389105015870977281292493760188774652003738967599037695800341051567502328114894721229528085610536031433795231648822266055380669928456066998293306737540889409834927966810989142956794935237331825696238687626538210437162422619059471226141267921329718527050577182947664928021353641516459207721070308617886917606865769531251281518969429357068958744057453187709971229829693489036641051327354093295066868688862003275201723389109673950707824477315956408873009653006158740129863374350159894389291573372522473779041658270237491888138167718626818075159100346972763503152991800554431065896477006449956864596272620685301028917259755963842728845391575892394265499428145149649277146689154065874573754112992349452458251680174216989783573164756699478932576794469755878225201567980740900064615249015062541331360686895116485543669985334012636115584263797668740864206588573880029704020942893261434743506277504485991764936907147751745411598058352594797015587163516807724893049852451747370686047991229370087756531367562340505773005569067705300812817352015252078963640036297291443389500629625291212465095924518371494635236832690509438300101235563375102485493236773247339439077016487482540093761003229309708252470068446645910306776626078174268714154200626766461069752190668613106177143895007955907239334330786180086186165650609943564871269618897108532691338889575594141121300810804565038118629072428840155027489568018138116812031908159678790831140708356043765795397006675308712234779065925719501163292516705934820682599831680989289737140182402924338536162163519412817530980171848579774127006067456496285899806461301004894290047563389264086913699449887436002120670872449249862891063335035853276784534819899188624777101727104183922734850770107529294798458479785077248356400055963780023482058959701959375711660925712592189311731477689735051222334809579089855743007891308141278331040669677637496626272342979680052233250752601428458798032300097677741659632888201955629945343017524487606052914784361327242387721843603296125184444775879619471299911940978613518868005553254708341854509711062602486227117664837352598422100375088489152184176200994490807637272072770414637739665092707127219798218325702253752560858540724827601162838573499273850853010080567032424540137192667046495700742120007869176748742907743645376976456185323247605259053349679554541846867962557220036596769360190514006195579279806878092430916607039889236136649926681086573463431631097726828937423056065612262970260980673863264204409526741453494449200693342843781994394685231723336203590036313852552721120505802113305457891642251908887332824494539569047509637070417173036754458526244989416094763275809396166450822853468903880628442720364206665903077615724564616144256264923100909126877641086436268937209267522152468987042834458192532382099243028044491304811706885046168054919790120420595865953044151811602726061376516793795773821870491924156059601694344360341315023197454956256029142967220334297069350671188467613314272189772666354401740667502967272223414181652783259321450794945808058404174997330717564368339578647945717032298724731825466661744111253997626219045627086123189007208207901116404574011495968471479528651720139118571322313570661775472512548539392188091360446345311884044700893249171648698376211683793624268390073941329240945515427206286529216803966634902666180452809657877544968216171313555189781245398162601076968605092847246138918600008649076178140713769630110726118251080420442192865355534659022942939229438977779978101916613442465798523790983563124929239609500710923984370204581086472401406560653077025313906972030161395757043348321689469571200461614458713533547053942210679433753118308675798552245469918335233708247748948005099501180135327405675891930552280265320092562133136916400980082029801287997469656991583216345610758639419130220767918390750939198408197470755729709992786302490041620705778051422936948768057295644213714598937800943554180378143533776140736562484100868054990316149658744878650643299861442832172045284172155358843313063278193897557384802291499281689135845789889093797070816315531654646128441220993318895750377860558718057551381209551583791854669532298119803503858215501920255219289534063397105525263999226637232784730503164790937787427375349402719522888851956222721906113740238930245115895711634165639957083935968543782284395676366085451779083286353870875584114407738334757342992675915519131070159681123929869938222869067163351896284965156243358927660225206827379661295120698079988035396385251390412568793927191786875179025168776946278772071055164422578034999510215708662570914091399216364368271162926144607304900818389671498748809473539183423218560823706944896900752023119019304752766329040680516113589264990144021120495637306482584915308432524710232917801617926915190615025241378195882252301623584829933100607118429839403589352901609395850759340027505209665189286412300733059475851704501989755133349599207159328173823837871575140454573285067276313229040465427333911218337166213341720680406949845497107785227739979174584522031524553320995170879518222414948273549830326768851362354088835578983283507687794417774084049138121065803252793150796816666855549047468258608744443985784456956800373425463909479065658196856313356705279653668185413195589313580562969939997805284891807624988423014160173558879337426210280514751897069932284229251807562124161931322629156651628914921847941375947568706695014243056700208318383370274290298366464779625956760481081352541814016036421332806953487927509863059532614968593901638821141790427122909324847697650836720018024642604536622912490012199553793288133079715420914702851323548318220798968932586534208351911343416893726046785794625958264956196559867575947641322472657436388542536077301377123155475230984708980458665911597265627412658796547310338874747337602787615320040238767365954920468845558108878977402689092058701260253732553605271028615202518332620127306699282695813078015975812377258512029340683709044589925853067654951359445055628547584933584268732161745631788180679358584472263074734709885897437999200506540051311112197159901550310166114883286615216690004560402349061706647018843420437497257173484673598584197986582994553150221547360492202838580830034882818887535119625251951757305968383060111799322020398639188186308549774472179856418391784391920615258719162794799285492425534821114591592118034333813742822487177573176201243771899386083834630199563338366734272592089662051174077485321550781278521461085455763082018141260280807258940867097801816233287923604108093750557622552106259419144525822168428667161502129142655679769605451231553111276477953039757070413555531494932728418816890144800498845169602383771944857017096346382018661706199485375440225408694236685329128030977379375144125061219337885694701210385686758776134012895306183452437537411755291898061168631219127475571123697365662743036375772467061478054936003982333470923079997858683584054653169382684205726946058814406994059432168714491044899062027501798335424290347137310211582419282527852096916201068474569606523439910066549574955814187232266003444337291139387563493223864721763234316845592478332269960116451700472201813979847368035339973011641118003753675843249292290954198438143772117308154974045232093665788533918286949905331391697879196541050357302057685699109107441880578075379200743306208660337232685229770868682150473215607859080253546059062770017281597686884290001272231799005123783083693635113852974389709596969168433802833955393998983425572410279743857116289788042084665156095664228299894236970447255832314743332332333018616439658891068156891266509918824658448485850967980334459134504291184060243183054783446747399632850432804428804244890983806477379492562035251987599940095116385506109790280246397073623035931624486744261738412602706246583695041630099158213124467647681427348789977567613801527072290899640135253220490725080522574247382755205579386523853584349551433263623231435517464169147121762515294860976957719507029940593634358374840470733092558180638868332155584538814459326441381993743897042521689962231255493167874146335838843324114629746895017223366150281999702217038404105615628588485656547220932620773257464184884964987393108114595544054096930026836148542701625195461229920234046128245338788673561182426496876043471293933486117208862446217062521879452057815224184208236910268577714480401564087454795391172043103787769377062975962725794699795702623447136373489259093451848557721157372419573829202076933840395303873649046498455389177011957124835562045271301469000786263001144274922245748140427241068594721671722718706562891589044091659853191762699514248369979492445410159710323086053451444363740601830965064823406273880952174744533751157430215285267660747511310335120639792996243077111873569616684392936106071592077684261522998057628283108136508272878768557532041426772145127467274206068449019294283596389848177399883938294240364293078113292817716655151475029358043550328567061808915475240479553282937804405838264852007089054101102746237953372596916464943659449391947511920065987283414708064439031585215903684038256963058158249882024058558703781673494465423769838628308858919340645229487103722404152166103455456865065974366027516329619409111083961473330209674379483161584305192262416267376988281153225210771746977708830984945550831123872456429861649453266009750532999436533174513680810818888389125196013988834105645860169350185208179052713317583406052753849844086958496789142799423279653580428728241582400689189641535574845304912695553525846848448949569904850662624812715240416831018582257672481653635593823776661410898942287935620856590660501799595536581333725707748743957901131143554722583979726187855778999608072342850511087471741261890237808269010768922075918264422307998769577200193778737512578232790977177790959949720403870118246891530053032792677400191761760407534659224767891343451399673646153748972141680364868004376049884504162557477714246552610458195019211326734885020992122488225074234907902499212594387528882137155742469299825640764690581741615078882154852754118374299279314982368821862890751053164744595120424693315236244976491502426347163899075899393821314525993230982745245980204650419618112591311915567004084737098435587444223979034898776416297496278749235102456309550162800252525160239704397982125819364125083753778761044413461261298837137189619222066690633871539260344663331529698828165923858704145410471224241966212130620151697558985438221296355479313456108747914194737800225126837337024480740417811996672145075063907287996060216497531341858099019369425337546618607799217794758816409395412254374751797516691044769586278337175996651738032699054486582197701297937649381077786418046665609177377138904664377845643719911924765103738377607152446390416553172980845631196242733113774813383080046490151621933481339396765077754380947906303818780996420597526024614848218594105275925499798320864635485071870710817509905074264910700519032992513561778673210613247322902320659438109189774541651375398348616009375892004864811196678715000065242874587982710864839738322462597802797481901476986986537291400870397034306569766067435248748652905636299302453128088211996259829564634431377358617244850489170868831839008227655936349209186716816613112721393676294774166651653671595518620589379506379771024855324351068969675585193606706077036469662115896393280907267961980634153171769957015423001867436969305931512704672237178551228763354302767674763483408614776644116594290100111621210100921748029812474788260684563960972585083639100034184086944491791087198849784503159467796923652525921021964806067658072880874964664755107129969123752891102284440447918143704506635798376593699674787610303992576583041255359110985686944339363781118886343381936565963974737791987497564817616792076819229741802816048721729659169803842488518326660092669076642065223185351542333409354230454690953450538409015936777057689201840158273684264561731255787518308361764048910701623469931762270885454181829506224666233779325151826091697459223012348227301325469773214306638471964324235220985792250294224699195948378593183296529500813427013814483664653989258646807092817359170362673291501306796303631867264297137469268983470191208305303901390585859305030320372508408696800296745485086513583383979952319196657363037638825261696824641496485804122585494310817208175619966120946037906353910757183420336909461694809880013628819798404510582812910388977682637866010906638356777137057481106913428041784863640947746193369285135736911171230505677173049180515334107809892783403969162440205309401710769496581813522451441908935458541906751835660978515728324468063695368256155948412844898107885247947670914720107994799643518948346966945593958772253884622925681542001732793351866079401606907558179575857678243952899716607005092841509495203377513966875850442945855620956110901388977360271889584590602401012403393679284347588959438173123144239928018816690247317697117425623245122452506760923513948158921489750472410536837261252676978785226393208387526012235777883390451553894627006372403704977380505540948696230471034546422984363439174836621855224787814632844564885263540990308191853496369426976730154834008748391128051441253957190356904703795083277933486663270587939576524243864064733101691878492093400517650724929139235760306005385966069687700014311846968587902168700154603744834400306661373053749040549917248892888392246522721689791536874385278451959854444877348619840312233710187728891502633466068022838679993707735341069425977117934261529254207304807335851064969298086364748791291761637000026320770685885559150478788140102037837661839347418805968379228138660668069276074278077302445618916381259260216015809115502386302402593351974981101512090210236075974757871859031307848020882884384449685957235274453576386408428673067734586906941341558395840489302670941370442650935197404461129860200706745864972239214567743692581462141479792498902629464509318216692637545914465629529979125214862037444621247737428810160146638566657724004888302741336571445903648699028797964757171784000931216860088365064514577323668883023262136177783619546688037445420274786215667209738499561899251051837460857475638528447207323612913232158760242357916433281260625134627171398897099028946203436661361782658974902287474595621355040358811427629404702550591577361847190204736884897403122970652806025543388637486239655749632266019786712820031742710388263413084010072625462738607919141689097665443937025732380555354639330687870088359884098159429109142943131015520717672505626036805033779056897180711939806692451633639105223876862504279246300192461198505225778031126621478108441736385098575234634536947609045748592186365731699127998988681900161459848186005694213162149412186811816336637139335928293720800448509426128042620818701903823480746180076381527718792774077313324714388243863802713678255551169816568895909244180092320736387017451497751786339103151956715832673511029511257181279982936590774694256091377693410419578012947537560878093853431404851101046863192563537578878960585802765511790035043699403057217757160150440048308080170530779801051968105587240317713267709996074358991344923088532675789851947967874493985457721341430026594058310383209629346738026212472232831728298901956193146972359687684695174055853123538554514651789812425433937364967334412166850470556433693158919038327617607916539812250954981298317357154074960358948413696377246782546696070166499490294898571303931267415518524099913514205109778057119085104808432017942472063150719013257743927178738121500826334227832568422298025593336181627738500733852244917404010951345768915050151094991387477051895921974451017820451223238395526791190899416423159814435664012005865851097368317118980611641322721310313510651892026341475716187407753318311784536643427319287371131643860918034806614964172809652421523160189446793443156886985441577813779211049038734830912764372196257826384340683430686722261818498663831667213397942615304692118818379753235205733228771137899924069753944845929953972144181371162397711659381372062627986341753751132489428661156212437446540866846111587774327915810703899026736519447293576044325337809675455698912649835327653864957220538441931051790634686669664615013171095551858856342741978859337308773344708736354087426035801296898537857027702419792236053644789527031387769079667204394944791296292289700430885916644705909711425755423015716830869828931164248269822912945349287864178767018312730516486125206746728000065268206709000621545626222862714050373444469205614523501148664664777985726469013612784153626671933763346884642643892331139509315381929555955458303271864544421837143842984134313304132150481763973663790929528887439394758435230540173278081273775102590500513501526677957814153419260610893621576157931253120387768165951225353357761699147729062479231123020022278751445093245697746039235409930150088814461858947158701871801389027098904625272985335413668897588482654867457290845059712978113393631221932981170136379922186617100751018139971846733697566508386913917128508408013587685664659638089580856124389044948813795051387717403883183620421716104635881188067827322577386252442031131474812061280107458492484840020552452198985078767884729442343311703812321323196871295673140624285201795976142343196348740601692798169662661551333879137156577963952442103599399035213871020498633864858432367779204790395558607029175482701263665056593498951913993733453718952927547977894768336301972624019696509492804328435826613199957890015559107952615893796727029497889497531853401008921488792134355159558846299190610651024753244394727072068397990259668131627091447333122871328620259617501740864970961047098564599686207816135770649408712151528863085512093699639420187411918949559114217090402444358793949822264673824617943912130212485596374413615913752915823900485891841682800945865660461918810511624012673496400852788233043213608123898684404697492276943234214517177850862707807343409244305444462303052948078808697171144483233906070239348146343375575666610240770160263530718346430378849013935485900964289971702479745739545082851005797054282175361435644642605359648855539273729397807013148998275406777958852077455603741595041251871843945400181264233173926461726885654010537479704832774777654411354542198609696327749480809396791133859211672830764023115303069330778068271541428940452929791009076704040478320065808907823228716017737805615239775915952305687750477606946216423366217476865038131083183925789978346343494162286504967025115151288799523264476746641747009854243817870231210151375981759078061155304111315307180652601221352018376834721726646024837045732583496684179791155106677110771561248059500024985915485035948239883412258156028435581759498648624480733166629464849864350685862023239538203438606343914246158432880687079754682092852192751398906480185239110285283239810324002678331385804807035658815963138975750990794738146182106662412004918723306120368121233450242052169550072284137318821430357177837048160623515388435476553831520910452727352117678784446297842716962165729607953423313818740793329854409722324267335705138720064151080399372980447900407718888908373188797253664068389100038875123622819901629053344645927302959632227838221669785389610961982178479014742326171833593366991190389564649090685500759861720261750398384183063843528476003509178362651703216593207547808699039979326034226258972304348862075809196685220731246347326227429731000890622064084391318077123902812764705505054472978103531861495342238825082341504640238462522461403996839644317157953181610545263099427031303409408477435198764910431281983759012387716957702937191460517862511600273741373722269973361207599963062098299144454017784485110441119958643306584709568133642053597924687381000026812575733304435870417474354095336611583461231458781762433700227892427049217920493222521110067009830282473461160502651249385915451773112763810999954013525950868376441742333605805054616473330026182921019436670370588967770461884768317523541967378456510074864954132284630253988284167926219747729378652079031735520084375001346266110679052288163748955580309346115622795158481316749903745373053410194593505531413012450287677204855665061808760120686383607484204024941601739162315049721495002921524795548714038845480873626241422564884353564306984352192704740253829093060159892010664285448007915050635848338543275735264107901272784713431113323924847080136051652892240190181159749989479428365791279318421584376271485602410432124845902936584860862628155559807228527827856617113389265606556157342669911957951682426445062983730452251723275768486319423677238064365135402811943399972795100343185728874962836343961597027957974237597935961269084091250806772763988598872637347409012502207498870165320041753137724260350703915626886694454910761562831297139290899346731876746530689183451324126016931227098847940399866093515282798864138065101332200088873702755690599277861237593865095475966380484799462131239648658609997610560860573410233396193978961806318857074836845395987382679073109468016887560558498346339148499090627380841907806035895989828745918850512034217498382549860835610454516907048800499744726835275362466842916493491666421793541759743716545300073725206256784448748247479390004436087706707017977999087346860294003799299959346971134009362102309720602529612553005076377375908471550166578776598585897968720588263064434664460843612704123116789390121302020539735504818351148242173853499597811390102678205886433996299064859549483612897827138171019004521674866998610737946212421030312157015320530100121047517936403047714171537325505014271283990310534035618706501354584331960531220259247520152033931849562932672535896251946254014276908610605959326569424266567628167064360554343299544265321443367174110028135457495050660008488455566838168823204506061384075161194255016312623139313564312380306579686488176031413717156481698933545103822145716295206980469709977804922953665237442325944489401406111044112327965594496473983163802747573118537964748999786501449280952053786467969349140613079960292433432117792728840920480817776091529609258683733579367855406993905059680213958527479840033813524366352397006717957726053835134192504701720144540297124011232485000934175035688554760877519857493258230053834501797986736004104737238488565330978743316339420828202719741263773480403212574747542393423160663197796983390095741366374164447942959772998856441602123252259393011722420464764187825329007057106005815280741360304022785998326246450648608437214075985520015338778043861993033416418087782307156471567982452641967103910761779851666879337083945815263305817969341210323526297845680620195307454783954033567945421183066311521468734064475822497339422946030711236129730582883990547702841373224173778516652524432712010789980141421421021156913019981304765470387100857858104580498385620201728403495352464742802533436017448757800081206864285958518385526599336801451893717069393324434620960714244335666240461159910066701188105337883258523685117748554536033491536653773292290178510693565386744734932267183927654769312944155595674652297311272000059332412404286909153227094600542897386882034424575337262081867871666083102845010446299719897026761044962964442537083016392387371172037120031000697433487182613532296048897231176293658333439470981222594467934475479430401006875231233020113050926092587637641440693463231665224042898432138992846005676614332433726982226397877480714628429135696773842021011143567931381991836402507482468143745322802882607408457833125508751745997669246181352519662585686292765995318499170868121906235658611807278995789679814710068078269774626565266652899648159700007267255634788934195002992871459970456982730084685814642631767131819018390657558400478086179793530338940464839457032993594057141278954066994663243966383717389899767631943560915160849400195424635042566585324580351405023667922232395898140102650929158268872973099092337254183881633794595029700300592860877034686157653560272338712452397902338898286389731376943522469851822565658672539092570549450668726436918558662289383415927918949987624441025952006906004144144799501995102106610131654511874973548957262001209829876161696853423763975696594184645804077571984692659109105884077021769519150206068351842507761262439327520018231565210940038156912840009567760184770671109500516384575953937137373744942884395480994844761708674275656651227012912683403194937867084863491546887304728546527596564338282786583435182551888636654433401003573742679038158703664803393339398352554506800374324734147336311230445935014258957635547298756101748857754491410036907746156201084651887788196959320798133135600105858192260611465002044740905561690641681376365344710163340797630981317762107554112245581019095786650325997526245974967637722785341960905315678397667959844028701601759819127986085395896251955087245427993656042780794628811425981715233740571301541483621331611773646360436389471726742326299554399055112392907450114520943743466793189047051677603344860550293985636781543315204441803780036569919132695910382354460213304581739663846422169396570111331186236860037269520270123174671871111559833284723048447302804881752563355672726846443840593187617573951541090563382343412141850576823077276066475904520974525677342960745238170826772992864073136984980310256138081736838527699873456746325623490275262056158669866042746869093577350799085265561481731121695695329469079423902445582097653255733942835379845324797335608048119297093741450588483793031351360009162188030150996093072568350328837632108567553907890604920493548549561443948235447902978998995272866935582270843284160846447462305784742003068207181609788599929827510953935754677179142810984562630517546505439002721046916778987079371465705805396236609356780051046089839360847998282059176864902134994207583191098443552319800489308169415117448641060145010725555204527941530468443545580221614950853593104227291386443284577863069987854781435117397735824327812558996807330935546502122884619734516848425484190379060065091149562095596014154589315186928293828218237934917459923252307105532681841535753517692390799154500927921436216756498113702423460054783316931145568839486433590866821493932339318545797177137020990993303013959022841224224928927519802377821675217776308124129065119040052785030052719308536268911954150372311025289745632390598129232059157536047823967019421623142175984980588631401266005966110625051601553352556981238556052279528149128821906236122994782127691734321467276128187271190349983386337196957913982877131770998477781401922770525321102156202659721893798515287716610478175064112588357714446064018832379565956912486285467361423024558352805315628982055482663212428279334692416097532849731009325835602821875406819242358912492512369837431589681374215847736051890167696515724996514405304575909323114229448379306810964514279080357493832542962510479255603675240070458273074781875173913209760226356224468892547067398900682934300325036675917765929621125126712213368798020044939367148196933986827223140545994280709843584495542872414632544785570430685466906879467471682072330248514172609542044714660498755097096763797779694687264536339226636849746120453384823172039628819433329226436670518150691620773317016448037478114716444198995657148640120690269831313120806415017099323095477659720091614132589150909823959286967002735150345130701744559683003139543395023374023332246431023783551103728133397085832229035818701016124075823930450339288709085665690758550816819726384051088475628704845412068786982591602738225937709941626993474909299852674091127247656003887899542147254921112454998922030535575853068413207830800836619211724296313962524132954035347114921262084052465670865912988188789334059692971413846702216119316395826186024363616370309332133942729021956168573926003553184765775638891116006631589701965236570933874462406035453925391162598630385993935524136152047032503056173461862425548886992816157919268205534054450777011914415500495885077823357324784254952413785181463298864005535132476525153311593729139585347927339267847577628233387064303590097684905834305780707729482725539057720721270852132619409129747113911765334479854242311999371361941369758556296935484339485476933187254150553487442153193874807615128348154882818336708690401366655172973227379432969708322583019308940344423180715774003597284273250020366913262951098054762182923258816641004494385387361042287679903311988965687836817759840459605826401310542626018443131076756937462163168146240742343146614842503764218408139137715910586102970324262673403825181400626205215400340810123143944275197496513154381207111853022050164473061388602323497659815205638954590167870683792141662741918594311917577034799045264586138922094948219962753789262631531871998457407133036126302636966932142432092478398194077484645158730070928925193744507298189319005207831282387924268298980067984752644459258332251424146066892546049252066439276963604885455613787331989849023184619024083319173872180487370686002625684634765617335917550856082930251671974843005446362705488375422921017958188328924097570296568295890437702814314891152847831337661359831896008173611854207332311535866020824830906558704530487289722858689324921201143233972453504827919816761274142337650924609516985158283902455004413290003004310364682568422379188033441166067477678108858673277257238559826498379407012055387628104673757008968504551327357348182743705157275684443379507826902181648790232046854938336167752179168485509863991314401052408411414076940016658456853570644487827920994558222332665586299719957925255901396870791563200884461756769211826713628459355690760809896666417918655698771086825658670554006064213568618803970429757130570444429408748239698756777192811436990176642367714662626549415095384962906935743495816089987558860557439130730482805033516639091021637989695736824031276104939815118048720321967672676330522703676884910060065129516169030328866649200239029916711393292345632020812590904429474613128870813066994829127685886005720461459472130033301686393202088146331553595755979910049004336670395672994798504111104642811258048884947506452132387187233905308301883077249746305788413964715189928165267739402270237068368356665244477149098923852586076197809331389735274190977562139181737434325707274877107472075243009813336330501596380985668008720853696409894703807836105019128831478161697537796972795290001230787937711995186827161097727273874370835444535157453776904273630721353143860946175168269915139205569353767072550634727835355927704917388821278757171805803284506137913695094416720600819619253111212117642902767240557977806286049781866749109749785054418340679781282137046008564681674402351237980941288697934635037999568586294229349134087875013760122318608547429747938066757207650473009647729597761959012627236839531356028115392526172741634261319985063190767198271994753679092734719566468965458438386605627928692130751276854314101069650150697167241318612788703977614620405951224028487080775145103843810928816805765240940522934509993503828788212702715763780675643999022410791900419667569535986473205414148111366950117900637803869139742286074976943571869547611187513113049395351330815673996427309833728925423476820920364804883925949459059984082122257288466507010928642314757645905304913292554000457987725993437233972868020454522553435109094679596796614684269599175804415399124561393957990724811128340569385785031538998561766084309105120917698763996482378060477728970739096765255515010612417973244030445226646659470735012032360632496893079198268276620488528253468829171781746719710118170923470001503467711078298073575671479191653346639621035091968396527819261009322720018960186736292151478443744810468008140401352417531002730511191581532142865267468802601302703103398757881430175714903325143360605071012985933789215424020905634760437539786743623126830386921209195506786833906796799384565649812739680777356958098838748046504140153669197210949840671363215799657791131092331444298953885614538092481089380116292751294139302588334154096891473603710246256416597177516106317420101960954185837134543966451454494708725788014847636048184544529878106885652599610976988663483540501523184712006644896355740223800501341241292204938377257854654555713788423827881105061540736203295351060003143990228847260523738235036924643347746414548971741970539069034304774558067836297752506831080537480220522310375885974457578914861704678577816221317030069843099993122793486268813079616390230949106697257116463177490627790137521402345546991025011926926721625519454624525961324407380388485163325596881487575328868761402120845780216350151966122624518774240937833983352367452591778035743724483001728370812836960924326629698214480384502104930840860372783382047690581161687865595726784612455499846766333951013156500587205321691340951105983756196054976516197264750650678340834471249791588961463364902035948566121228053915542086163668098534214693892715151681041269480324783015348729147283281554654736526628723890890571735193754025284668085440402494030190336747744640257464358299369954054914255109082357293570788037161308441187659620451021255477607854589399452283825603450064237807562712194055864973479925855251407495274646176329139551623496560396503409577917640127538153831159119964523062481627856196169836997690955113164245241799902880571652820953568518207994828173405696415686447966358883404439640000393749715167785417059156839283376946099768160584236259353983032469171050207670582392742290658260080532407857445390068058238737100774898343286365997555427593414178118029031926690436274490073935774099566369274299976278554300083499709341264731256801162011570608220743092808261302598663694805342815609171746708849160552067726893599900022855990659153838770220260785649604748404167247070014913836376473941885506713008998269372273059076810265134618700669811169467971970040495469250219622456103426295024569623075006587876196299995454796510533562048278850801911941800594143915779605945715579976383524523586562443587916342006663343173834092414576625280834037003773799521126997678112935297596004804444446508879419552304262418848528307980147366394392490210315065621469953861781530859285497840875157021545354848056005494482741726113262852714531587544616704439644514317929446478389789522202827803220704967321023786954167308383258402985775682881150850347523472692336942839409470502464083716163421754905955416616936676806026568826630771894301103768690260975084413260620958788636168357818236669307421759645199514805456271094799456810205665293582805865154306657156745975198540989149856152263278117026038887033520425649271756693958184376987700075453872404992036877241480690914999223456139157819784884144709411124405056388175825388241020026533349999582759498999364523756852858637451642281117378762635511827064544267046145086906266934666412289432807123567342042518593152233185016665762538662409994376940251410093722252731779363741218703648995823431725654724058170125331351888963861808274406266949734468839968259215780072996253637851177905586304834193655031132515988290837011188277489022099299459679877640468175586610891391169611174475013447388122364437432092655016000648643610950225494559196768247299896738433420746116006875850299970953713745448033750736129120760342029935511584717668236180660752690026341739656319175652371503815450929154084329902364480242668663116099980176069235458807077915455693496108563219831733071831687900447223406095564675076088888821794312612429082562355678390379542795282905221179209028226671573023953423583787336012192361521690520753895643288403791218958361751677397645765914672827986060326305216744430669501528723865475565671449738504505738402137847420833560603367031503680887507096306122038850252130732031750857143430946517144036079413589378767994176395785083452402531630783405263790056739500435426963625253068910436171465635615157714704792433371081756772648165608130038354123808875089172391867126921787610010811532329916912627193056862580756159350308527202199786770817497139445967036741155834439829189231341094305706744760658760783144355910291862809703584880733177441064247153487572510188169010507493643471103584328729038963123985893088486935661535950584223214491628505471263945392117343384875223101616913001542228917200884397766740730112955613754291697027334977714883375853959342341086182975883007344738917125310119674010433922338292544116950444214642939509515409910215359829568805049205872478925895371256474594637253092883665527295319947970977475006168037168924247191024878329364366702283384813443656009205873093619251389636118390402349762733390043253287934849364044568571327801906902863785513844492957109982920419397725840317621390797439674615653281453167876259182349943190047203898480988683464199028282890807173918841817061861141729533818116487043460268114471505268764014450765396143417819233700487404307706825294408348850528271689930214362604620216500840147413221706578335433299463083140118144122034570446496289957978774295495822990797343247119439808946413255467151072709704420747372786867427462691847066329554374759531397252717799871502516173485001192706412463949684243280913503931088945662838502980769520398434238140873503120614282070013421811375282382680371653202031868012927773616265499407157556985560024718245451450470916341428470659617189744296355164699842855464099127051643667842772288798190169655225701183472218312290585765619722999170138767305671337934725902874620221957290986481077989526236582070354909622574036267298370898970718595537488088580218630257672177329108462714918715011097865970748968927738099134782410165601241584863753907811637203606107071881266654402090945031590132010249314637225777711244698554081875837718939943050426473659771486477415453296275445742798027965679858595448922173364131524231192982856138980522871173424417238353366151672068981996486952044979132086028281731103309823540548311314625516014548516483667857296113177101785672667378620760042571950471493548913383178883303922512805314345952100232257252666569065574461214691418203446150053617837845278965414381099664413070939758706636109558065055420471214734349740327630813508704155351623257335963602614527540398524761395989791280499281755277723709699250418645165266982606041238815073254406814732377773373724418051670306869708430225685189700676431386933614895742570449203245847680816192744022674282092213213151384758912814741863860065555987722865149238794556453359768123925913379426517158385244209254533080683542276153357368206906491578397107967111171070284007759849821377849105897665855251290553843510860169400650354748531679843041137435614198619823062521653667330829511234202086254143560862782763919457227902271577529427763168853453403938682758733458144786322360937141301844531634819762641993765961891912047290621629001394235292886767288986847278551502387794846132255576744817051642626003168961400126277857187721996072416124341062029494797109280945406078154050279076073410096750600135025158642220501585703574917980314551373035668988318979119809424933438052394037471544332304959647657897069498594567699663548660112960196806663225692097974790060133055624495980451377373623672834722692303433194631956535323445003908921870036070724360075346945830735852807916440037525627361961434217399701816749223873634258842870392440199733812614880698633735531066718821948496920470935037432996935184146684210501477467030528236038604589115935446512984709281014571969243401577756613371092696316895982768329653848798251297721080117602167381848279407722201056670345797340706793913523732069239516126687595297941168087145976888203220268133596814710676356726288525556893545798407508337671293135408847251539580118104963967228666395880284219711038429181606232420302002852572534601258055499163191751480400449785802060102132883813260294517779086801192949568354913862565434208225683594174029027388904380593700809402696032574619129285032453658007972907294815938055775705088238795868014125638756283005794486189498114927230737185439430600606765165849311577122900926459253444449785342604752354620679105019711408229381725142899452232455822659148088291892526839786396670728655862568311480768568000031076763660667012156686782964480429001074910423960964272478451990736029411610491327988542786389975121574922028039079504870836293076336233275534707120840200048557204246263294028009382058119186511476135024639950660743367754416064925749140268397284131789032930980729073203085253929347706669594061993643145974058414550353805676675664302119581516452007069437832891902215007167866521157234491233116467918994642866272580363235054010859867444251344480579886457638234745994398793625274024183534493440630468768360172460902452686625324802408919191817870906718053856485603780152072140740818361708763862741698660015514886607776446313081266115025878226982229797121015818569002062288477050484644420197899334829383055594480181406671794098050323248842115374781855967422217089983314020610134913968741956452733737666788967422153046356218886665621164026564834397397208202239461683590743953429313115757239916101797133579978315981802702649928664801308687303814256589690227967694445451771867727878860039905403049500494902054742140188183124315138881564849579327859716842680781307214690639493400341746234841006395564960803809435440812097710619096747431907008819999910536493314323756544872383243182720362370061898274562257321002195589414794955293356357216303782593490798258686388763059647066881243939635369770664216474495185214974460629995805585450994067439375228702800047975132756004204061516346990513366295048238865462417746000642250045165871383144692308508358043948964938660935949622812514708663337833197526332425388878025449968225174504775972102889262870402447872853934547292651072838203966217022754734849441765512303341395489218707159928356578910806871086353095945335505541001627275179443471082462333248181186571363159979886829830566692067189590251366132316582675851628064162649471334356807984254525179596723294161734699990157147321998394701317170992905894042807454807779947637081218821748406500155467511488901997250235688949398590457127762603505713338335341569787323960598927720493963963115137700468662119154304527791853077399380537443094601972751110117413564196658957395951757709005367737653824174531168748279806818503928163763401053471919736813074345652278790836294313432104365911271869347874046698361665421765292698004093188189537764372615205384279290056448686875212147248017534856384689290416343461615928201386725429702922729822191591937780119083880538713645695446719661051008918478291037442708954089622794316117267179880060501026149979289694548702014145518186779315757292266716083915018606325834707135340752439477437418041109971367764559229878988280650768972211019048009847797046569413657781632831746664166509350829693665278540013796326662989963956770187114823640318983487058060684674415391664780626554691210088116096902250203056786553855769828727543473026279444903713455538431900885592699138403523451714298229927657714717519462606530811575369561318716234948305253738955958433016569462166862647012821067713981342166236904111937777543152114508098535107163988968726423168790328168429273452127545547509297436422872438105364539543321328148287617125833585826136063733714109961613383054652975585278448095725347617251556036105055218421949881475066562302577278801681508500214738850362888372556396703790011725467972190433126050039101976456832822727400655032751018709330536935247160629364049259972577750863440105015806740637376574036025627964499825831490497704085736125004577226508877028834530437207013105107408924293074310915943274078347782303316168712380719777768396503455842297898464905498118357899120894016127328734870499942037609836100551592694878121287389286915008623334639730947195001575950772382983771293194398827822303414050161672679133327054144271135614048361394128621646547958825015420926895141388581435593889948412223881309597523691125956831509758188260132251539430584173580108677572482465757161339856693554727784293305870102818946301348933259077610406620602007567896701581354960960861706854238057784105710075294542381260471968783905318253511604008131499648082758048332898253195153025768644552229599944486829131387191043400309830999478760637233033528689662358533987066815370424294735801091729669542794175657161289393617569720071928549416869057487119311134758687344157361371049059634305246204775873625992761863078470433626260440200108012128182223288868350857300207695316771607879753375919284627127440845491891219516934279135292364588474213418248977836628654111855374607713586726190413259268887727484666114317286915926573316117956397487377678754275037635058692621314327284173311368340342968689016571892354360319032329230160157216344522025820954690637976395020417925309803972874387122318333311977077735167271827366747428014493503927221680554842142340992416907368732389558512209825515683620064570496189308019883348779453960141451632133684003677659032366753560226809328168160711737385181662658343622043631043850168663710332330855656433093886075160598560443080845681903652923128245926986494235218580981613814564087364626277523827717140574163647892284817452427516414503054966161967475023165130655235192794686196053384664798389947072436698874348942484167731866057869087662848429448049621990305479547703254113476606984148544666923474617580874675730112004619013191043850008644526036117138372912703719120522511056092566842426820754168512462491780758594494527110416563217669244368427288257178072675851768515635969773798611138901250434587007535796010216085061667661815029382077806402338837439611855257399366376316632045373825843483388300136414976112625455291688129713725396835710595932083824903440733363591303981358569720147844977422414999975811553470530763778151431608574708356448175599446375997015126110574841040151084233533007005925052504032175089536159265212095554383472792694591153643445050154337244344194916338672568923784384987848161110887835773985303348152419327576734500453195795289252457646589775407247443622889588777463679375542429031460027637563064490971232531820815020379438094772248859889806526276848342057230562412440364675771605250341188468920712190993715700090876872004019601074389154455517502204059643743176492760260486079981794308184483826929549533447871651624907803741321793438810882153232108817302498129605486706846525016784841111424281070832132668109055884694001031305568220940779787242308684112771889027575665567658184610241499531048683708427409140274791104760761594047753461520615773556145520507955619105417571367222650227678007688780627497081522579478608565240242628798066112241662808661009883966072829697931070287051596077196535253734762989131546678793866556020448928947857052013316958947556634104144726223233829499728564327357226266600524323804886030752309856639455233027055559500798378360143099724573128806456420128366673653193237795075130301158822705573597116335990280166790549436311289444619418004698553677024794473901493163110047607956882071763750714846155077095255819050667791397746441962850133315856854832429047720491837935180948292918591226394924060392204778913875300010811905382227140869658329469031332837893476892568233408831586090835961572041667694495971936802076146419245312328666741297338397675482611608408768673532661586959740680125373224310708788981187440445323573059221548751239458915978964768470047897399916466893749234514284142330237920188125671742909959313053102230948321972006998012468774372420391289926886196397357345769610450057874867599958207592961485751841618845073783922407621106336542541154544995815121433565097989554703154139889076106731216258789860455070418184856942562317271879778874254644645434064391152865329763580758383229753055168905518587144034856509985554664767881355367989297295524975036065020767569053530444494059482690244684537300896042063227541062569946979058787512430744818451329726274877546226548445245281881097881914584721726075656959866788289557667767439362838373057858360777199727487870758501669049000159583671078295159055025429648569360752967292752807419763662390417099157387652275369642065148279233066660318681107429298474960723316643161751619521028381040877267485470382811622496548261656317259595607768735361556160125530903003662984534584090707882018215106788085683139174270858762086752427606834812616838783035695456308000916753503990984369935320895712357810506997825640147667704547996344732644186110447946681310863514344470418559280377996047003782350377215178573899227014293526377330444774004155931158147114969404723200319762436966817787565464465816253652793382072381031827100977256975899330968747189092414457574619508033490168810504011696091556596635273065732678904611404138074031932030724308450912406258351881256749833765447418104069461245855426685370629667857484330140168930849538920455943159924272962001306703379232377870814124310540264407925662875689356745087406994691244708320739996744759388427071080054905719932176514014966493252731056955447393437050262275960346305642036222689822464199854289436479935323516770299702032386443739787177067732548411462367009857527169113521514398449475699332681242214146357348813715727550485979232439657447376805868271333843938796737247406961024434408886419000361959007846857615693851187900230995906140005427770303172904053536940786314815705390868781361660781593613682377219576637080343055661669043599861933691833122177772433824240566927559100607886049208050587351200147691185989300067287526120278914499847858492980311034064948354544064851597581212938801163442933581250345337564273577317817269032077352768384527136337577413102012190987274677098078880128905865307120771528951704672437558900392509059554728614908344223474537246410634467138512780674017505638903535652950651957764179283690016245556947274464929940892792083673408954586734971228028522212166127013986986872425347200994294176790220474417892449522003114843055351629830621469892321810276239549476663301076701721593708034968861562382932382431132493674230010473196626212163541402764558026200185902494685529371474338615603367932913157481174461264662666274933242423927205207081762655393549339311994537517631059621283679208024930193697930877265706408963527806286328730433928460993222884939728790468122639731982351793270156339135435340612693460336746799020402076907660365257943723194993370305522129627158906403002610963977602179785560964414065245349484969520752996650203078725583640592300854625185771084337046773067284159182554450156693755119359137959389339949251215588216173603346251256888099271837493007979525621346716212314474168801784623749394366579404014314779823532158393407603463190693844588324358031325340061088931307974127336195804447300354910431128427664768426231579167451090774585104371884240736189215160524423848099445139385696129820311172646922374446735997905795294737787085834885389518881860960014056373165980355046384581485629452160952761663500407157166810557971847492908958516346837487159579319302294684999626176675148245522967815078335087783443015317255752013094123239668504021623813347492078109336578921669832799624965071222715798766643414947447369454405713433937085105980426958980944060457890433017559738861776099528215737849334460161028084670197153313582837182213807823730909888573151016369173443449612053387129975572901404942033075841110654475221236748245866577443201535264030946154790976087671262787802859912380090010491426489125724922605072364762851031865802106709629199390862994870230796573149669427443084528472654007682239120068455602403270454204326478900301224911271042467210278484529800018496969170403153884192735482959652197676650588945717164841279934476973171359014506181695716300023884656914588377653639678681764034336759872222761941268242969558620075255238718496736539007851246232734223038070988068885027304402201826449253307892958526886136937555945053648773385772007953217640628359218948848062452204233505259218681010653155975460535772593769685545415486349479342537020766532925284375701265416533557031099716259058206646305125210903651070781053625553818645038322484378336632517947107532544779217597604932358871777891923483155906030256630925358926065041457401279347947983729929426858138138171991723776302497596164218719840030335139530951372907847508655482929486596778165333501872145935236903167177623421816077328728599870559928047958352468470973962079838333172124810546087816842580857694198018408606885940581980241568240324203049841509542213952910068565698667204757096854817219720895323760246931169296762549665455327322721866699635742072761170992169545950890059463405139394767690503298206948224802722091437100874427965346887158001691507083309340679141768673001660238022381980768241356161482111589243783587916983131435074490639940869450348689348875081515433676339472425805384965805679366453452560683875890270353868912081235175928277903219971328076844588654211259008789968387796114118747085161498656305706699004163611756794095804405945213023343316792389628285846756060314691075185883946267189578316374094944678685579178160611816620441521040889364904956407098631555733536456765488205452379778166090579591098250658913881480772676826890756705757173294163825221248356279969253699162420827176450839839259275378133285088457338763919226025320639251851935321241280788300919205368254083651726327705731299535571466554887865746584896261043322441466484974716221062030482600607775312240757579399239092977906060507731107378155129877201707010410861226039986175487572525696824299968255173183552545053014992990391189322469680795124352896433659611342409847163836449647588434816629416181196691654304221688147556959141392051690204447790890024629370292805235261339264705745856919353297922055428427738851140358944491654570646830594424570755160041246693476427387172496183346779931546302084683976873780914247028238926760022896243197776604618667881664042697664820909654677966653198696635984378847922356591764069482998993236043430406521943466259404231338381646411135985302402791469887044041249578571802777099664625267706822550133228610671213021691176361993104864190377591458088049482535295936227049782528976570476343851576298022535028483342699864168067193300675064639733094233819214856139162484722009038041947628626832131180165058429455800315215575085298637300610074872297726141333576553095641395329524931721132858541197262038206262916017225712779259841999197878493042870157853792685468652797405564762412551535722791380507806263609428029299265943161460521198339141218224029316351774421364295463651094536001870085957816479199324914209229655962758088550575184643949103522882184433172248875812654134605770595347542583316775620928899440050229378609191073190811289053568722454633102489420728561734003230223300486525039016169396057392119729179226267966049116100594789033945270272283503181931109576789470447809720112182282171872876975166815216811423425500179899257372700444984793379789611178726498707816809010447278273495958350988418863743691592169488987729575528539246708778969611896536975604420079877274672097706530083074843237465994285237983012443090380375632696723615047417500555123672494278824970862893050403990402983026809734420744351099069564250756583973993716992209088969984534347021760164964590282060664592266951330396313240562908440946581124036748055929086159663936616453316886043293610120283416449266961064226728727311130223352614340029294604521624462324575962298441183690956388397813176645598405615784803065073650697535538126307049726711711323203703638875332415905922227655002152555435702839141681639165417147475918578196469905192612933520721086464594442482024993899865986040272850595999178501404278853014289164320769787080238619143307462915911910575940524595802980464534744765324926988293387942296389031133008314589691530623486142225195430332428069961368734744773364029652006641210380539133919739302840439391493476343872473415229390316624347788475365181046179659670231486830697355847859908018115311710654975780269532566150000230753869190812735489041395633629339428978835374282304875981361964046533936617788283436004926878159770707879494648605913582922507070826701856543063487079443084744247946264672546641682822892745919056260156335295222674383175641611412546857581296778602224559055660963494536298700842088998012339165256431585842533640787588502956024645583903911963873061315678569707750322129641582884887568956000641205277579273219199527826484567117388290438324449465272850368456499750892483699239015328981872853443042875267864521722029295380896262156286994691547395275181392887230403705952626472871751686329871141817442887860794269701842921188156686915662896727546883464198954462510902685929016962422645977446605409420377732351185255761328000333573897945616806772220648086316788586066557890088111112336662595084120592377372774636463800503283564471477787639573021989046073842937876793271383899235659238671617404350004838781765863566378338702118953393603148813305754622905545643573672534647992821558217149375965020270373907539048472118762708092094266854431205596517524304873835821855288722044275935631829211906770242925414891817863792545708406640794518680095565167106841929899167787623368762964802615583203094169853206305016220410557245260401383562026005505058605783831959535015367669722489154131784894108693594508998051482132240575814518944291068842491038394477712474341118323850539209867255313973474258906376494923530754867566445838059989800203601687489455959160034420068428049383094979476941222354381227800884011087822360201750982162491357747922870260898153706740890858113542661650263758617809700964835394313960892897334561765456795253922317406287900218826968765359522209008783750716294432787721765636110113114370648606408350168389675927407466862498556735647787346735188228655825748351735615599250610718053550953795482228336983032129334591615050157367652630873478386726614074211441945279253722629777919554495687103602728794216320590215668358697942209634647655886044917967154067096090462770788499606126066667276197385694475761581556212189756910367674333573061101852320657931679301020980133555910793163731649565447746043055763974995875283195768149220743310357746587743727888651701287812915953642559337353063254625733801151413953220644190015507513891180270964514736283979449025398119058031926238310546763087065777982771466634646527733745556636585666680351524056079669386380036806914251148803810592421384317352593824934352221713997130521913654510060978919294237436246570290046817747108831640009160338543077994934076433194275846889000494125115183856204492231766292297652328070041317154016521745485771429911649193996029922872217235850814351076619103159815504050763640251396549417358383259673929843856824692786733877751699571441957466259891708306824705076660585946304750974563590862387029088841097216285308819550184739000185081425057233860333898716976530709071640795898984203479462892013845972877699770247125701431887924762153923089267402273143249899267379682857451511387159947152299135108260261228160147681052630264982581381861184263572563801742888240914216621455791777022365503074392876420000469875226838960902010097831843168583788046811607015243579090979621021560390190478971919948209270729984747619456948307842705007826800659081528157723582117797098469155911695073045075102862376160561812651884820934119239011715475419401231365431856029435509084366882373423840628423218768704325955731132885303854778074983246671326038611042233266839826590231073515102693945652128770881086503233447282001827378526084149782295904397956960547419003015456710427695130593655966923116207834066261503817788115411316295509352091007443624467912864107418636180895112039812884565321152302764585064234882973774274458324775810695470354956618784762831590311656490216439180310555914537371599380482162006528342925830159992281043899264956475193818251963658271972106660199096680063665439289756412370131392559401373661235375344248378220661094890071853553608927443687239780617475370088465437632021102568353569600136886243174291965634820762613954233186713057041635613018773732997091377158006010607566091109528840136567075055390570163401710215007636475859185678540528483355047641212990939836523627786576592066160055856112926721328752354635201178859822547883330676556514309029561587955189791263365206273524462032395792964199579483747715003295577322772632685198024767922305512324865328707118350770267027607071630258778897121028826954091431763494346609116609737254154344828736694711730377126647249928045207966563953422666745783978570461140288950951359169284451746890927927159791886507987908669832593121056635791247399511243398132023352523734295653735111505200531375607112314931121247216129481774843648564139245571992148288317082036756308834604392070952110105579366582220170032565906346322388721882319105220261508410744922344840650466187546795473511114035731160340166834001880247160208237512040005530886173990518030373869435588860172850517776903147070927897677978705743055798278968131323810204156983442134400198228289560436227341973278680252061871774001839962027763493272719713639487330498358198461347830799677185063082960616238850326687324305860499643898777919775977363287739404686188630100752606885493779096702494813849791356082256982369036789736545256636280562672681557097531554781548173246761572876339380700306073749159286783920202662776317032048144725149681047870092894585562321818799965046993515538199481489205574551532058814106803819630883490372821728190322039161924317626464738994618592363235405914930847992638727462506572408397590388143400752458535016040520861983365043588150067017830404310871592113357023471375571531791809158714875637879369378357159628345963031471082563484272631087901300881351732972198165655415939133757121013970840602730957522490539881730492537690661701522652521515691311150223033942999256493824716420943648798467411177057545331943535038879475378632884238620099009328339215125593989884854124798853698479660494523196968681042041720807190815132406494631801483845628545565091903982341735027188743526781612557694898607428235399387929254110002279239591517664549842582246596410185707413610953173518241964621245484332632545189001783606826737552245076002601918983252866761216457660267825364731065661742319571168093514964374652737342277812120321539833193499085525227209241739788172077197457725075136877558826511212715175433428030995737719673075368788143822982455019607338974395940281045159131066622151555536260407060732565359049363220448777889566014160969475928612943583864567855334455291895935603835056578339032273080576568090755114861667372901220846451126147621000573914631730553604186117062006859850703890769801212714356152997510538047109008851843208996057311546842899007458901951356181795229653509904874850192917907557060807551725652298583184393481160268355453483009810797831299163818681872102177833773446499809567828635020387932139821684937767244386397747981676992890348044904774422984283559600357449468398252216948281363152320662579564036153862480264018072420867887985338236326639885502563979708589128688721956302926187345012668903642171471463084859722111585137703623944151663363176560288229857002311664140966093845588231266270825872547530144624690008932621169868605558227640552374382566678497120917435165550974842370961315416759718503999918866747921319572013352245713547627541392961411487613683137351136298606867626663717483800502459769747707835953032576202518108549229224359553954459100047000557209269049204783605988148483678365296519207670720099284035786443681823393500916315339787499135277508308808530328739840236574855854766952112832560708350202333573096397317505389950504518173353823002186295462517473813149453231137578140940666700384525604089648027092192672940503374037245505587306941947198815032383440694616888044772358492552910944026349759699260308718652074360991670480460382711629971493188635978598613721461549143924975521351650441348012469772833406528803840043285353378283919330970166500823767030979778932464459011825457452256433670817090866682694572502341163345882089472744631260039870619687699315149674861342290380604323444649511071909088912521218104014028345030752661499535511633750102398117102446876001675267561730665112103662798697501064622922608702707666725082545470814494192765219294992189863632972430629029702802699141289711507664825232891306315800115133363652288132116275540961795564856362601243986098830586583311790692185986723936348983526346030889259526405602895528702241351328486400230351857367675932245160599098682555709651696732529904968997445272075904253778646306562794981145117318743085242851573464917971572427024041249189758036373606481528358623836592331125347555446836701468271954316129897201048406054859876338121942592981743395501302005390132342205842523846944582726376529271441376088116422363989987099388802750450796803228060325124052455695258139078295363691905172718301138389890535304612041038814068281611011131520145894262910074896843271004204585042795672000980837879763809627753150938428520734927177556247442500364172613987785985215256288615344497078345633655560089428577765666053130704267227341497782039518244458086931755840377968979006813998559651288343123677685321648953095931593283142391377798829076166427113253339300242298132458050529751210488120203942899415757270425283975646904359923203341461154465007408217102022112203129653986256007249554353464595613503521529978143284378439701499797219205497270622212681019524743688578304981751647065876456686715030769303410243082221287620907764816972123446930959084319674342080732851423380397260003979244027226482738399039836226753611549748876974874718926365574422676554254979582655384226062884036122026202945382823579945451826478001172145004057148006561633566372844663081772573156476793180988988399914376712976202620195846113216772630035297315588616984562595975307609562116047609736642471425382763200495169526130006791494844958479716192350136624834771830538021980077586273159573140762731659470725640605308462365630015870421065773588796830351016994207422201205351924372930086722053703599441581405607216960859216985336105383514085663076896572646208496141039201396756265592590153149373240969337132782021743096697325786624801280743976115735992410797333054866458864383030555225257665764007170173035029764617642416954092407897746789241558906203862470488733350695359846394602982054575859867712832675888305834881236703310967398164934346925894868271210228052697502329654153091044290283794245438815688398490178287243511335426380254250177774823237458411386312087013479128625947373244899030296125952273496795198211227272885475805659254265538314308032130125426053792074605534540731384863285412033360717961547088349956682175097715362038197929166932902011847644866195753025889898145311382562346160944810949247002622562298140566025353226464541495910561082644358744770352560336146600288397586208906624192734014893415474981492892966543554865534756217688865453112884289805491362623269224886051615541852341421955158870066598048213602002209242515316044260361453734781044092658971909471606885935101410888757361360700066344779872551676366954722296955606474912584951022436847393700633597914014148853157975154345447626717983111527494278801849392119084938453626814263753047130526296072191728731846067925781140299985269818683107300768027340113670978691291589446017020814951066542440005760527434933763758878708702012659891698032653503019057837750999847709088858942528772763503893506607627070440006191325250052414325285103860629732364978566319010838993858485272057158675005154427388825416303723824185211518082817909154721225946647878195076062155878926731262382651190297505533170574013293181092976967179899954693425392044509427309590944604645811845122134080074782325819382554958028441550461374416487701726268776051715587111427005587567993046210692102201201592381095742853653434400592868912953846908009651621149313536024270460413992428282358091338473128499638489564153883086671951081829475972279741260566495715042418295321889305509465750034158747982142950411308879912053865515985422788370281678407781675801624195544172011324871297149648603540231882984470633437932337920359416544109837898737056330144615045617883394379125033634774210626627204755483582086062155378623408231460520315747212303078697242772294237653920397787451205922195814424523243127166777612165646451677643889706175897221041042377422856780698560060799761592953087557296819986947752617416399603535758509857379602456573996504326874457678023271802707760334575364585781069702201999063910041308732363676839377417360091608221098539983227503489179186015655327800463938776443251040976760678612135933023242759448313011267339444594479038532318503877861821640630444311630589723624919155663107930262909177749127658897899218731037208435887897362978824503967864377533776425864474933594981686635507777776857980718130005563721657645410716860745318147473310936753530471375120136458942231800851257674940274262246343457504317625534055609344274614425301706612494132088511520566961715934568280610668715369664447458280096315009277982122358060371055777997294902412861469450783331843901440267698897217731718724613364517850285558023418501023525093315692500831193432226521575773662364007935691101853831095833609244122677947319497942300713788151059385285656545578469698956531278432105131311066404960124431133775575540695078328826244540781991825001854746519478267440113117662483488250956646780430724978416312576854268597487497681817394383558356541012187990683772484516099215363357215583258862132941633630201128439083845946163050674980654412835601348661147607781790162479598760555672165498104248677350134628238013624940131653786609984147767151134782891157168850871607914528061204686993846805768140822505424290380305887389673598216706265266629526807483842110366633601855850701832641900254549531177054201307951544825526292462766338530800003129316920917161942191747739595227602872274999441869358142201070001759740615529395997468942021241350479156478431360578772373918489085044678282358399901406175409328059972015193505589306189925251404413468893983103831180309765071452367430373341326930442229724242291831788633706963196725556125601676274906533212938525675698657224561760288893950529526813000759079706165816480006904794667914390668619212661037483136936952598746423564945823666720208375049530696283635484233016699419806971699753722087600294219786157436684476810507374685145866018519897225886928880535818918512400623853777493327591411769762207681265044798187809679272551126879987415517672642418396531214210043167158167233574076529498387680259974168976620090816477285627484385968369434919368727602215836804300444240068425832092499595973769856041952795791275438425132607097283282637408406871927680927950658444500468881576290518217028492395347879731666791828976903515855553498324952037355012674698908722781909590126248686540919358527408286100176600544897995005893809865330513079353346001121578011218517620187733659637771970569948734797513570774447844747200640141232826695943194266744582437904049615168234450123137711587337111364695545732833581228833976550374315584554689248182898496862675382937076458589729352652922563955527231079263824683663003805136432499120696685990821812511289297938678402222571267413234138035799790806472442948147712139039765614377599378330777792040282348684908336297285080046031805936831449771365095575427416717200857965044121855067015275358197202299040135714923816219152060276496237742555326307852481937392679667054880335028446840601744198335258420838696675718491166943377032624491005182296878994651101837183656366182420243684309643959838431195233599767009065077540016676278088617694868216547521884754940637128862256798401141579652297647574831545424045471896801683672741236599975818306097734436896321530521278763241797381004285545239107602013238700374124277120133520019924457101792585876394382752557851133688113003434903945645822219807090008759476817035900539058002282569860906945368452184263071425698602245318602515698140283307348273634825454960604733359284369229066289971038963299932792761570623925120897170195388238519854677814069550032840001518182196617229052994048114390684745554905252370890040683386700181189867469775110069894457017601369686906402241079132487882467355082344687690830107912038123845895153362209623776740903705017946958915659818105478368572667080231293663712176998237794592916028012057001165381626215169188278971737370686633289504423168930449795554053187506148628091076132721195407864670414877532273241756912015415793147006194041251337128407437996953152205602120274081512326871560884010203502647502976609120775678710111799295297192752517175515754896485729977889030496828642120330864662264593607820911218131691598980249128793524248028469662713901330629610768695463864533257029828777910915251397403073250384459339754106393988353133722443337607915481831579875579778097316429125957792313938473654120547301121119518522901531649758624278634070033229066158161865371677232928886375798590917538544181115999260016135016906238108637974696936166838583250691829190869806367022605270369860192367967364832534171411658271871630886258831588277405400706011954230032426216730145020435097590615598398356269240735400496303060980936749130404821120299881202012996576776238567736236186846424591137258960653722906514960208759368216447425141505557792565595098371930727513139706001770736998451168552723732948614775088393445005121062140554265203815790806498995535289753129913651959623361602380316777195252053860473338486945970791594070844581378965666964173842239136131948674609073527406778583967334771160627420500531790159339417675788858794004538268939184495035187554209301234952421799273444596693643311898929242969607476421071050162965081595490331054626536094565871808248802070353045170411651858507197277069036929865798428462150893470456247740382419632252418607799673382208538450798713057505991795831116312972713162659440917086099845549078420162239684001180557313397191777653205734283277910915004072382344370663822760554433895497913171986392507797068357325002873515172952691226472199505324785515911193846812410598148403807917232920127304946061047900174314922832343925203128930957995789260552166360113784364684211480813050969605007452309661252900736945746544688946191612017087795567494663035998538472430952988103666917115077324916522011122800880304000780448023655165421674477011065661013610580061330844370386002484616763804707104251948556089229742137927261811019572492930778784209512755509633683602411619279696717038025633329980779802079780537824696169142558467360571622863011518371779717967614152592544886592701797265998883385297644961100108998861567733364090458230021027013052746083075974438787846357883579325198471331104068338991506424178078139846468686265847581922940772939787255595801935452470272593425325694977974636988818841723077570542327243015525471355083872812709712907217054961887435544687655378656966276756983642218823880344583989062260281085445452744285958182168017421425272949152389129860488454509537743206288168050339944127166572659588390930258990491506758163554026114539523134722479650523053854684616004612055004896812429477154102285147876281619285482363432970949065415648997977299786486851309980955911058109650320445969507499136010687090931518606960434549260938604983702770528570966065035841048302559400742591891291825713551978978736964228065628099167046767587111372161721418446904420167402978286442558043557823852663217361907223017480472057629804858864596519196559662041596084845285409990622986802103203055598308906871101931329585417142939998943822022263344757611650331502296984346474475601310081178022210365864347623722021068143156887055385881453224052015271435718023591866599295546607071631812518341106508156224571761532006747415254591614789826288492611221166889326769814157858372120118035459368330922630831644283613835783290711322244411656421511530297048531361934160674964430947723688346631459867238594527501954777394329829764573492325527315656005689640308164027174138330708233503049596868448112282613531418045068196904600991593786145000271243379091662722576443513143541919630026514615901307337252227441163489322755689335936617957305217904196672016038731336007678911084499756821849035660593347875392156542446682527409549229712507420102927718310717620516643112475373632905292139375960291134128623337085956333298900613968702516073252312882583175422943934108994246832702890204087534219757173841334165036393510629497066162631203815461420634124874186031822943546765388494026517553158808872825330404355811035217308218838217851515238283694343413321727737126460578526159999125901090458322789899477272288378804420055049802138486513917382712206659438389805394398727954271289042753126591934376620025059708188178957076998734514134483151216489359894859334280285437092888804567510990029396808989063404992416817306220312696400726252451879949247256180671732821130179943162878621401262387911787430361220501051203474169111077436111691039320538725362053358056089225733949780060774076063160315427317268602294027636357931988719797534640572115328819692588963926817818769528172209442189836931589206191729464536951339856006476082977161520391969462915493079895617225581595148074641296717285738156914315143916462416054691981654080656681663350661486996604011940046103530612226329238747159684046480327906104709257471887638929793930930762323822831207372386823246030583356036640825374347237862513874261068918109805932516649127120809596982451170208207771350739532117577377061431521331706095091711668034724782853813412949177317825719053028234487328725644531135807036187479913833962745615842686839197455015871337073234265455820175381114235335148448219632037429647570622491788734782019142678666914769963701106888209395182676032579173223896951182946341955569764468370524620451541322604967106179639503219613687055834695669135254942808049465037529318676231320386211676549840920119550235664144350075073496029908673530548317515528096478693074363432653101796622420618407127283210528124713378206698327803284090234978316088876755021958063429585232502756832710354426381946218857922055139563799169759373256346375378426736006578935311369112719515905318425199364922982878120199763727340037920715215840439141271981540314876104468270984386022927271379512707192793889683493671629689118033890646893430836367403134538069503195868900973496137620703299519836827643757850477177327645554773153756481208790653875312997432059897598050374004588037942794211732356638652324154543187793418048135876350140480848479487420713121068595690008343261397697286896368235453288530030706189517033706308471944374540330263993542786291569134889187996268664183338539093756825294381591104034081185897265449538794810180522575333185055021323569763289386261178364441940037773146954894140376004296133940948214974152204274156063591848414908154338570037492858025865124605623301068587465976822175523819419571816932313785752852593307652736810267142532016266896644554574490437661722986901019770150099450516392954736510035230850518330267288380737157005098045468224570777075741874756480056561537522339791159142807691828868334290081580127178925538161115739506470393076935448155658938058650602551724036692977000529629748725254786218161019409675279959833816086752078177723760854408444219197479041299557631723058616195049167854488388747792520558881448754617625963462936134644914650226396806885569501631435659205993053333656323846630266837244337160705135022951373856799847801378337990271011037368159807514983081510100013595229769542557307429723705904068784940748694676357791633245813106249386202358828621528387938661989519010726501743026358516598909312228136344587553487349735373048988130519632636239870514276253280159291217034306364938234467094640533620020312313062302274970606310003023665583964075168311396802649958887462080501045319381534343879381631315156094100400655522615357798733490349027559126836772339101757605446580887062997154930830060125486905368485238870766678302419411307945333082698253017883668379213801901797443515715994234718156020628178355831502734339042360282777405768522231595799155568195823951614937372574146614031164875137303627080868368873362550967887438148798779175059717998487076655409411857065550037743116179295864981177387950853139252402906285316765438183900444575539505916397702363291530936768897827805624380967660713898465899969169852099445781481099490319402700875344911035027262789057043211310435006272300325353462116436574298500288507207112218882842258673000187832748158957080227879030222909647787213048167658189928766587637313089625369254674857217987162245001314417765063599367833032099718096951016377802296628076606512870322326899183128197721403690072997873170485980930565790423807244744897752770789780448344058475173312098397540442752866887452938564624477365409492611209193954970050331128063376841673598771328725427162957702823641914491645358186708116240109681114528780255152565022890298211424675756199993532747097600191710296133629264740621961515949459678713616503263164977016542175346852762048625623888741039254304330235755306653667636460880552812751155502934015391488884710034131303761862416280124048611400064087702079356612611101028340370885099967605650432959201304655271709454390356046912176775574651069132405462195094836021797528450021690891276510434012912343388571019985626131057541685247784599289273372056697787987736740845891802273443863245266522060188991710201033392647927448826475677080354642320966044462185194274604644347773890938324162661673805544649508565816397781208740478068000786535453946759857613389986597900028076067327090379108739097161319077565090061517899173274535642118741228719716543194762042179968668304971887640048344549204507382772586818846810751088883477187250983037279150404089193612545401527247786746145402422606759897324386770924187832816538760500488486324367894141328064651363800995548708191115616411676451623178647377671150340374497905438064110196408940880670362536498289543850125858303498740625075603696459917273638607661072168302953437836471465481834347865803529118975784194815761085068385566895885202517724281844652872986684118241444503307163806172272035622949104531483236662482429914052148643695754123589512944382996158468932439772270045675104045948114347449503350097389386878451633153950247673521416108857631062283027209348806505491420130515735425259738740138392883559223619563347281706671441272251050212463663411724560362578315159633314054955835060316816646305639148367614122933632980342421128646391191360669754555202570695837037256186918639818807525868868652671046943606553124882209978466031974659300379750847445785986765006771890777493807403991356612538239398457408196909814869625850458162002172511505658176662208835731054634689597078841317958121274363346375858065928039739797033427183699714659416775339567235092451944615693279544982572622703638837264732632366705411413924866927836166341384478671527365278133515645754078799794365464029022553315660997038161973075050881018886837630676242991423693985266899405717805524796771405470142625895922250487581807672519216490806929974463405197205885979584282264014432126705556705435147324271303204619914166932177071712028819123796921849591423631370540256531477725889144042764458799383937034645586081091746510524147633507766104267321885170646222728725175444137923589334999777417619146473865839990118455369589066375149480275192866206823102442207500049674828057493734684606532165755687212227736263486547487907571514292101731702005970942366022361387413488051278198847339433560282952989431745462284788088564849727473220011396481271338550088205129078647227131504658693279094299705790937220911880354391761573939834175022887413731425351931008027942386836518342341538328480640806555355014997712037927272613047927661423404936976479302556436175145583272974865179737835546264712883182833994607048541638353987616038617694339205881331662178268304118786459985492246203795709979445564313891352920173227267203534659249085430072412983534053202792710211973811036252022028641965367115419534961902767861985239919003056440047254480936682574814181935788159394665617346170142989751625191139521990393988521434562910962846874193299426673545886116981111390430807899045743098867995788744385533161467811704455786643828911052026509271993869616269960702569864211933339912397446430965889269871728797008941919505485000142009406996474049476243029897531695734094296466947775264864419467922942419993952938128431384079358486632095169011377712631308357164284586644791324835097430798165511510308511655849483365531895478456703423837576504313684735830086050884366322659363119381057709399933451931950472801414123162694652946027430632021618713222035889378801746317293447383823986401598578305564053633731851227325645857770893051166861560555233101295185994401709804174164018337229240241041882538210477255261917058786543184543227241892409903646188484778775552178313891135335342273074512543768989850918224081740034545871393693754609064676382120300033572504413172370540185812334142333655678964394088077171070053544926951223342031078489713934825778095355078007799324823047001579385423067668083304287403665069319134829019003572055072317291069836741284307154569314331542471428468869245159839648737672924090144808191279853414054260381581337956357740580550840494661649126785698934003158589600488563496877737623989398725041497196650495831426078791774186526214320902659267661292083179831088583626318460886559207164251934664584294506580627605239769763243220523907435678443032686269914532460348403103201638553437312721043047927100175268031188537675386102524624123704202537968809667403727736428256589683508241389620029884845112213066851905250690299753698297066817674990207205337395185083218599910320129080071907690577906071578772864809967904781683471680712151341684926787686990095196109588732111058427172462321614610315940116092294369161859181534039839271316323375571546177192787984250250606792304871467818149742147534302710525942958779512520202480486396225263148677711906435758034380365670957678086101399556685286983240625919004998149360599925943192678115397648653144331023110763227679656687357990441913638677882238790265773382950085884429874582065196209222438684256164801453807470115085311349168284205813164650494257897638976290504223874290352805766182216846984912628456436781277956384096508704856301188991221483994544839323035245577535318494183216554404734907633769239002464971613573805726412537469079074801732203106860247820184678227615679979346105089828659485741222046807281717201247297562489087373874047720611410456302905677564983424608131768434564994754300876385565895759583174310014026745996181716474624281355109086930041410942253110404698028226230257474214946593479002986691341966351763701344003863124447852221561651874386172053371500497578705557697747407158369356591843983374254371217750321062770879430870127278965117102121380114128959160471814175388393179374517974689639508306565867163124806767047853901517764789600176492634665497634342041396612955438664428914030977776313548354535883698579625855304622827693585801914553180197385218214528044936616322667314616770391564335941478269602658201912665258425270157820120389733469916928407393162687903360266143606676829555969166375134126636055967802165014241811021245564144765280903126817779257203362986620004833696262515956049923256099143619587759850552480331682796251709000765379843055992505726794976650799885783766897344188494523153709229958263257178364582345620114063499371120143913636094700625387596900636155099402952064648949373912072888232515209699507577227665839667987754113367797741002637960976397460525472485980271562299229536562854693342344477358058585792328772199775275665369875289106210137646061113995008248903321947827955119310507621205326769652705241836060242423842999897295309533062295444859581628289647450229585492673933224874734270580371112133422096676868029349158643606903138481218324125650327853130174310326819402915394679867764103319828201333542058857402451605543792709588320187467146016736154483987719605230146706076505901032723481829503332590843175887958337406723465167578987614001730652836488964510318975296285913802340724842473997614302163019655946031004915091535928077434574676649690364313289301895997355386789636861886387739957557393422808010955808150846211929510821488917747622337923874482299082132529662784541762326530259738749306470705119310728230850862093084762782330028626552469704976990353112497077971671334609297538648031576473926532159633936017491370047646817191125109830022650091805844776234880801156320106576975827652029349408349120747283281568092506024600209608364647742322907713546042412869320246757634084138022136654944234309427194116951870390598778146564432392642873682451744319623628840402419695063173678170437901331978175122962350344936210293624341406942049309610214776057285242310681600763950417161435427814146224694494766613528279104715724763730136268191798732200346352474172413108248260661963149277107935891692047522694789902260582617106360912483736970683460052702472817781495532000287674061410605890759753754177584613271059534245734150303958195862484589862165754374178520375818757419558283203434732744225065875513618288951041377777140348267143779118067348032226160943949441065662690541720991171484613786424356067850042799064489888808234125780273275828408399513060831125749132910812164805561759397125123792343260044999263820561230691100679121572026334897827605554943865656277346615787399116602807856367192321365893123779992455653520174751698889786352209457201690900669937891183188806521055621275574718142328028587319241911713290637224124151004306234462847640899217232046158063316907225257373850793777531739404803844605089719044736240772646613926110394580178067324521504029775196700689530226414965366929171675458125338426361880303239060624842190831340341993131193905705794096154401363997515114957935207378997925029712445441275331010451225452113406534463401855872011441412244376300221979205206123730398733495683778935061859331784933267705691619161730913957766976718132699359930125060842961066672627860930017252186342231509091345235931725664772383788014936119946430261436632183958829632906156431130514523051051641819522586839654610010924264829931113852205094974051348862752085154862321633358255526998004580965679814305317471866198234946419519331906433957469757715763612650834367973268836965105999267553948330860433509707459947666773602189782505837296561725361509783468874279601797270670373865763072567166526020232771728202707093002356165761498438780015510514186377235396771432095075109633301554943515272706545369531294656755414826135496532057291284977948842246583650739634763823663419865494098064563925241390504872349205439116814640685572702937508638125615480580226344929378091349316096574515386356463893618963356916098472991580665296160753442603299289404832092550536162857773562814721400739298540420935245634726282504573341158839626357169960835590128042334651225207797141213982861946776232417059471089151546714687507357452163587025563409657267688791431463907306447859150528757533372896503905199173578590456793489576194514642002003685572891440191315684278008090312705376239984273856230553290283969359076887724027316537126987938805236125075715483106111693349144377208497280592700179997286774001803833045481560450301042215261652169548104630217914424171470233429349267767874395930519261245536368819448819485000635413332678447723700189413353044967537748105663205496870538581557231079661254367148764202578587077525341391302405424887015419550233053667288420144416346083054360793632460040697197552346435947132965823218821100245012277388132874478543924206590195259689979704774886962012064414397075881962441705961700331480360508927682233290275365398171722639709414690831935353032160379108811357045343802110168263450780420550471048236952378510556334279277375334344903336241362711380348407218817837234012397337609625836636476379376195875621525949175125356522587190034677508770930234368260035845793650197296721843658633832671734204939432323055136525167559094863766026729779017309531107062644305418820155344566236176690215873429128265687730907720616066173081403310032136867430617060989016901138813983588215133545358921438730574667600271677194182676627447112485227909453372021013388709562869022338830439745080779868801308456821160194641318528132477614261136545978997968612753753437314299462329658900541728043259124468834264782499125328380066370490962830528137330868097584966020338634805315827718072844009625829873446007937367759113834905822525691404392858258615915693731240412157481797596466854975114928493176024687413246253958915227757167505665631882714227035268825501459913329193882958720864868074311283152946787710104160951712925133280394692585490130970256490073071815584830674955050447847058586526239877702741287525116223934237720980787317131037491080866178112418180325036124726649732685336329030205655182099660696662162335741809019636743299477485869188508538050002244569860351122533177490251801154570563539097968688816378925076810566521219696479107663210493662699364523946838830725440582738671005654349936326994899975607566068043646824265466054798321557303393631716982334496430571904115884175131723599599536301154400398418572620846749543708660198414052057194948076740058928635717239302657075329852124267370289453629439653121118918178745543051918716813031991139520487907246708748327336376689616568264441591188826746301393969118758948258632289998041216223986192507165934345942807198693463715250910794877544140138096388180860000289465213805800157490230313356330640590906765633646243267612613318399460246745675555193666621886887978596267835819724492585748980896082460469375707998765389008962681243272234170545623220295092068376687919712309358795229826119445326382277725018065297782254077275765308437945878715666144571313316570217838148819871663868366422944193231227222009129018070819975080682480627238011119636673974080465936724275661088731460285472294238600833824417986576960419557212256729070660795335433454574986118643735013095326444368702358948568166653843757311019912944212993212815737510156451491998328409126299119032607437345241741624395917650251259724031442142645925420715134520897933880165104454735858103462857197957857944862202862422149451441004593013957768708709324725836855674859562003915347494464603603284547546251643838300571687182041455112860420217117773736757615140184339913014628058267638436874770477915029298950195121563436181816652191646973591333538157922823131116917090410028447875776622396888701895960566212397361311163436038327434772001172143738839752685731541382144493206796608097464011187656804293809011354988096795002321902123123215916595132208940505900518782821123113969480688644659652234195343904214085585987697352379715548029912537962493993370525657923975092682133628563324290017074018182774765727903503758509529010016256927976339953585249567578666072742424968831576017187243705014175723560150693471909815367201050609373694877249731222330860588199351948443835123433359740858078757378909552660877585091014636571124464005416082349218860546112201998022465978375960178013149511025513824938308913605609337017267412553001270543368318309775126464847493097984805840762106808891554708908414846133832864251243935416906011294199072391777067794586203420806478230729689288580130987565598127115951048145430573329417393071391866901324007828116559054796391426113305251290202861117779467015145260273734908572826776402264835561244555569163606020097469401877472279603262659751749485009538464320772801107464247071356131103616352958372042721943401194437247273657900690935161884306344485696160214199765664751912897760537335833580025754619291263986248100420790676063169304588934611947634490360194597915138381880209322246942764374902348176988650316478499350358619406509072802573467584003560555757028956480403901091876530235758833187080514511899757631815382060704687661357597727619933112640480388329564008716289657478292925376546997261826647563159562958018775610440422660129987865081688330039329794208864270186161758174144567639696184060444579779214540608055655147517591718154448871494455979525736379548594433978512443338472465120372520346255229194791068181438085956268651069095845828455588135368816770007450095187716174920059045871522495359710730940008976427022029147785091375218021744738568991723768119645853514564231709736327365488731442232577558932744636988300075116632801429834100573363344760123644090289590691308658518732686478692709986747641013187264711407560900346330102103140361302375128243280901869011994065591094980513305756985436363391351664577131050477524009605809519697219664868536658042545210943338321612928263179291179531738019888111196336404996957562679656902706341003606369545728353974411822938550101334551404869182867356811892779044672219186915167051626750863434094517504170727046831817168726629070902296565708213468952502672129489837255272728808015991441047243047186954686411447912797457803774825530757269924014276100371236932901271455568231733076083558169999399119089462188387226076887162437515902243248405935404810959789473021990395301314658351419789498862173238839958650415861053085574844284324888075853348650546981461558643059030151040983716191528757896804505080806920852927095842635461362001199997796605150583680897222607586942389956644096517948747971629810309433805170764701996975969241666071064951271836376658871879867154798849871918729232434680439371485868999308171904286161758114265847353908993991608740496184949875997186077429966132239108337501940006774896455804083942754729487791808226203277107715493988808250400598846643927099171682781503565621008349442769870813865147830252028854689184150433204908912504680366859965275265462802726992814254061868564394801787344643871308272300758928128588796785537335764900960951756781578588309260787558476913490200965994653740791845511124158516838402110296047419966814909973896597691641149734120856679935446212861549304909918580585141684111899280362881198122876997472729378942250006045683859802328081934680261874148971474263171174715550234878754326219962450794657215101898559475576371584481999428383305235050599526061709899339269459377482076624843264438483303133757683696819442262994527140634568000146862575581935028917818786342675085771054478477919563018748024873237319740656637795643980165333939978783470296102218497533309465930141200735358338758052472243443643043099534787704933339988340896843709515336585477588284605168495865679015518795888271362517035646900374475900555097969080195564739696595942412260168620869204904518911976013457658199403053644497121456619823696415610479552464285962772397640444383714928920791555077454814440702987035234130558450914440520531062671279091524499314456266373154147388639128872135506289819865377218542382846441646908199964607085894158903591977453391005014232277929613642486537587134856208285620701669306449593485810793577654749289165341021308078868814776302010681807954845711367381670399340186102224104582569083639951055524159778160356061379875999962137105255937595241999742923967860309274101463206155851067026466229926806540229033200820267552961593764747565013668511321168022280773313826924656107020451358934742455665521579607326033802953735115221984489979188439224727717670399850300411400035593715889964260318032747979338703145040103258141621334937395695105508891127685692268073237913962578804341026844915712876179425835115551769161906034422270446629863920167577676672259919791327709052661913646668498599332996951528649022450694350794592971096729527287073794221224426708975187392355397673150007412334473510946362025822784032509454508881530820428728465938886485417232938143192429199946724382058142391173620679635968639007282404134287397340886336967607933544195557124051056026732744746898269174373771835629280482081186069571866716125169223162755003611585306455843962176930392637923593885190071028947708703963331430534116521946747895595705429740419824671799660489650902272010987534625865222407808014084230746196552063984733035437931541250572054770767204050604121390796929428627949522296822311368251651847805324574987827133400844578564449648982113612686922484968624801914031503451858775960730306000548776983499015700728327385156893660587857786020690068836105417542130620267812180934031592611509261336398168820465064839084740913619798705787504750916124545435752350810205410231916195783836406024120442504865470744993200540613886748622049070700532746175641051761147037974884563743133713939582340888777265156257637705356902463480462132726452387746095856464071020570282661503842042138963281965851258897213788834900310449884258424326467393544624367396286702728010412172864096609339206006035804333089091463728495387299151306001507235341607446633757922282580600458609689182860599378745233928416445653045697731597317964286140621013850415056220747536393205948071963759224425836022736924784293740459417332807744418937434302937914786224478956858759988056357224930388090706542191815392619331553862658032469192776568214044556287070591065778164088699779654253400475147190071324855209407056074612670905294557447682292444910050824570362187700407897715606267519070649045737347001262162065085990943663041820134621818191690072585091457063793664435718817531013667907799260037642235504434957204067866303945211606224566422504076323085403129214986757899092646925064395893596569324374312083232536457667735845130972608902784903579574226747317985511209817239406430553555973479610526549257462555139628408505351422595261356741380212924803878472516156172728769835837207166872246174652489359225242402906625171956786555519265415357948370471863185522066324540835833121761760057923713394758974281710805401843158016568190860751432534248088542644437829428574268700051490744951237722241912324434440976551765491317711628528552284484540570868002762405921908415665497534420341135633959639662068142005777317478198753752914007753399848105857332101978642504486285478226972528153724532419658805459064876918109626491610724580511964173400691038893343605173467984765032534318517330835458906989860198259152545486485074072582135923439925361468312080839509525073609286999790843270832847097519653482562576026612692117363332455645995585531386655583968542070707897014554358347619888749983094601531903027669901920247306966709297680617257979152198666671601450497207869375776381532175884515978425516986745518262030739123180879636205522094510305478385042758718661384001222671038276601312805868799188680293198003777556052626937483812428461005384120427734249358090912889765718356776537834525667007742435148830124729177180748406238528926271747848713800721143832716122719308816481930199160577362133243792577526658752101892464676720414991492402035774021566297142881778521165612549433961313195580518716132654268687693902034027436182510324175724843666601092683831290468943454760953712424952048287930251563029838600840305665087042169884160866192400241800473506302732618146063220327389193516469215744565074954922362707877858043406135551644872336964215299765477286669734400240649621214989542948503613700989299581022503328450301129503747404694095859966496870088990078264824835694383922327446461840118956519286511404025215948301707317212480834320001013673223092349807384747139338867057786536134941410861913266771788615872444757116786186373281747943017586230922013391972795673628168004549058038638798059077959738927723834856288792146719628887744883755604018792659486206794585388316820247720918536355712081432917468884029500859639178347046200073147728969421884902032768576633584438343871648503287471783713841712825596727489786441291641896262894567523766068077819064855068100831561205912897516163897091737357723232984199694606798414474410576150222304021855418769941379459348860562172281413338969695391078932773727517302717010043137798470478330654771813613526512529938973134298324472365777957157351816442515286852321231589893320809161386204252609200642499674148195879110768841097947678456727220337611624149336977020607785945767861922759366747174678352775390536010714646757989546925633167513688191731151474914419912208060123862353040660436440658483927536611136044179002791743195837471124535748742276342977031728242707858561248643899151783939492915405002880361646694554076446920127870734749845411568436458287477989127089019645145481081467911956692740806854805440632470288255116582887375437869054545398421926391489483427100912183606920302449852304433248428242240921089795907293275864338354618587604793765577543213306775917764296665377600850461379981200034134439940577000094907552752799161812129708797749944574559470244513990279792608700975172921083942708880051186814955667822416513901105932856872519141970119935357850932569802085794696699301880177870712469871418799203648423273093693968765153568797105271168090039284599835458769584791523199239832750345502928014804961791039796541906672701780385132913931427184468914265736249704512456867694776718608531552291740985927816310049712956896437726991520826765850905705732131761651652290247811515920038685789141067475461272455551929489084635817008977151643039983597630637585969219641866524973128554542366729672096020758272557596102706981206480708399360145390662409858004544249148127943566595526536984291518486960797825737751167670847259437765281162159210028822799200347193191314962074539287278574406483298906432405337883668699006854786586197608404785261737719374754174427494458062796938409192623262188158239683671792054262936601967392410249496393936137487130492879758210796796846329465648038752891179505236090642667137802395001343397285772203663622262233985825578572416306476253976174584559166056643267031454573892696029228257621915386599192441582034820893041690643394618252796587231539744269787595097964968982663649571675352998800200522704305348330995965374217443245870830270396600491473198284046174241269718935516740377650760494399041112329213628831163583660922353783542578940662794969675983384140005271445603557067868712791384293493691547319481043532363009029915788346701011419723088468528688474263642344238208566644955898212531230815639083022152055100610141562069249691094441414729766910173848072236411297220040525632376655796739949192893210574834253521865512283358300934357501179657303695803494320413570232481484194467434174278773033048726271803106539580596078346416973672610732756491583442710399949311359652980974914323487447674588766335120338643977040307709071150311740164343844745332392310879750098736413350766225056113609375597540462256757660274640700146377166516746019259851724283835399536058965647791385903327011797072460599558639593043554716419232507376261575983723030058939411499384047631714330448400600602084770060186340917770584294443911247080692929896708185393556265328235616139051744173821674685914852533221888425723379369653237653901915792776442726425451605853973391746320768652601629582907740662912853218651552961916502939617969988476362188855590914355278633061703188599754523879933021865778961995382122738666948710033922404015680287949966502677685650143314123272938809412387475841713220093042584034570820225225493191896450908065678208058187618539847231748793300507261745038327324923405670328227199545908921017038683521388808202935541474457185612442355342744643605202494499117279265806893720445250742306625772419491210995691057670998304972503921095622668859785206461364521296082434014124204977870688884310630943381216280136584779757068223356552464105149933375842455851140064281581008380014786672442172231325973961779601862680856186982587661897990434069764424637822198511966025734039739390241111388404097641243403115831909589809789432368176447837026982597793866277984891534665107172872239519225505718323178385670968901823243329887585360995375921189153265825354423700974889301235239606108639832551001120571364000852027931648329488709138534477906936625718084872260839186110560428485817390376682859888395335165990870054704524541729000054899774921583599786708108646154569494794815915785444059536847219073244540285636730187413157548003003147280636068033404749679453551087211185693546003437744442445699504812088383572739132307136694679341149845965500702139664238779172908562516281734927583223951687279175334270872829366622219908560968712702060869828994775580329978215909308164235471485822300513735202620858758466199093006022172807556394547547256281084782722907712609170683766291581481153070651615084444041247091939030104362704210953397818600657473572950265569211328179042436619527014911046075290071705377979163940828310292061669348785211723893988180268878195151214336221520389950408807960284435240763161285566752793993212509714343299389356454278205580240454774444918819732719403254001976552828044131844837370541348636013118901054412449725829291532364368098032298743579157668628619945294358741047216818572992049503539161084939231963938877667711990350872625465011939461002858015651912444580107896125279001859097479337255950185069290127742403156887636332892945965006576312654831067015379124210095119296038656865623319141818358110396847330227490128624525564688585499722341980731487218529989899985451980101444645323676565083592999413208103582717288100477243454882818682985341669635496795466283802833338661239361857824007910668986883140342830090648456407222182137682633625919668442401450033153245436608345193343878898743811850710372662419692849176472864317921449494308864421121727960424378289862104582369241143789996466000463936217885003886948672584369040517330871482394342221974551384456490525100324975103278372728582144290011004620910891366355064806120595845626904982338374433957129855902871869880826723606528666187672141380132911593872803870186239355263414600945915458114155260095218667070570759598853452494668487740909481368066461379794726134387306024346480588305975352428006760821920320091685248057629041810273278859268690722830887092639999970142524169834301310741275009062004792179515616010106683033738491666421547186991148723498377841418288627498192046231457886421731158969727516868169364789140535152467745773397894053167424805661887461858843756842393107929580028224666103020853847379017594837422334399091700312378182845183142724156024154685851717991410856633340194299338470737130687962574087628510006670562921369869790412901758768067784194784766198001974323438395219576098799594647269216386287849520044726116749614456959168280384919708694593738928362071714303871789264689198167611048291615613836056686264660497529134589733604398475379860309018027031105350240652437632174980387894634700979303646902996091958421012176259967406491471393847694748965825666716377636688183863845147501794408381704087473455464748071914926541674394603046667971518363694555885698466546375071771334346133812287176918034830987203768278608480389452048757237924559479844813008843612714003600868837878888409010996000376397590664415066499778008570323252779109200163455649870661904705507310213492970545342776193154590375697125720936061249725108223101864840829475788152440935586495047224541656467783209170855139464057240984907293993965879557104916702885213506343121484329634463639668797500245903177177442000112291359263291652129278706524756349378521357076303294354807514639683984374426013922915409555884887268542484274331374524281522049537012867576817770487296588996104735483143824598191119413905832565439851896896602738928537076942779621467533961972231643715445984648830232302385898109755554753333347131144047629733478931118221255820556508029537207086258193467209308217097949672467368901896592564623320393473668994445061018309656078712602136874377018856825234193850695325120901000756941619940959605371365847048918738999828147412933880214562700934356787526812080125817263598155214211033238722369688531364170885391957825095053117599381481256069773880980349502609391409586867896803775491288899787773254960750381116459517944308091927139678476981830867276030720171572631721416052421445377636895940930226167190807066188906851741768533328286448550123487579904110990250450280814047495021295957298390139836625067154051567624671876432792118108003792449579052522666739493848646043828529203963667391693144774333281946570381408914709601664288624106593934456645714642476934730135635167929535206359293920749542685004853262999507941044375658463932258109890433159498332609545309749003217628301360048740612340421897762687265236429139410843088840959380482593304197447580900705600413637651608756600261699359021845122103189893868122869780894696156752138032580830288806900489184451773402691998995960509343741429634738977203676575025662058368302690593853042985778923211469857332876790613969079417955108853462435871239529589887522211256956612701346389558974629900153853662335866790238112654751536916650068347372142273060105289784907830378106755255926719897924136429339889292925460627796570756400219372421430915739265755583806858725743642924577768942372305972609156290814089125298462632579971477182270006711484229765261676505686583311694318378627389293639062114592659678602744218829980308148951585755548266586858330717291555695639202778483780773351306980469951988696210790978945688531379993969035504825074267737488252887331364386848952970579206853863076766822126180589148076184804701895526025356946522839612775512625301445045392932035420196610727028449565380336756832720653965439668184898323495263454602770797806137477051512106504374787455093383232811581220036821340779172541355273269873570534672730596965922014518945050906301865001258062845791096473007128269243222112671168760122743807754152590933498749712817186189116409955443949820397845977520389279103422648566022139560584470913167646557338638401978568116149425468470765193969786277023560808108088198881389000029690989586508779895691464406841069051219293057743877756533834499612710693385058413813405011920111745716107575569267272330059545580461103594900089239996840955224549781322776963120514995108768801517453007240564028098113337422344860220974108121028816022414002698202262355624614754878883508923367261935924098906080837873523206138288146249558173777989730362676309994449209870850656495583362132240755305011202609202597804985874940334209143429807739443361411126605548439423010820251926575353890313563459618361540118521236674702954830746149222878712842525517145402816511098195833014673303757889507155476666067440838516457195748206344405812105735479191603506322799009596650856064345303581757715571704256800607987014343872020111707510768854325761464150101360588904339591740985395397418477995167866517006194417706735526953476087067435802557088513936763848873518692262415424330878155671021806205255864927081048898428602084566571504320671874216652658675537245920482057127823010403553088176605360874197864597887399774229242762952618841169933652886143717537608064282012367331776670974644359412712222859303896824933788748457354132493020753797751716586759846690411241378698983055327901729130240436360245524402755396694047501129888985572728025275973399706234062805480822748423857637723252705667333481936329681466364836510888705744257494802624912091971446919934436875301575314143579335841139130501226051220923314679231573727930130880480613918942543873996970352952192172881171438094709591560431154369818559891605697911360343630016965322757412711276092338599780659580348524226986511615727293461291738268778146921833320567306416946558798345715826775371767136240281645705930119903233019785727175490955212028019940775665226406630004112053525279035703846293298632362062959387607999908428998681714710098684247259030393571410000836003561284089279649166260677578562860345911284065845210325385772223424323154165473550001212678078487183275390540426412560323834057573256486032695059838818055646747584813465440633062360018626525770215192167197066367988546574143777248363471860524152485143577995085189771708411878377313087797304175347499303922461851293166053618395624719665150384896957824199720463153057186794831070505962124508229654247246762405771339335804276174360323548337770880252997166007821914593634389156216905037489364550213327194642266178151927942916390092167606538227720596794275300902820493063369287284814174536551416671411392633597429697189091324667851383274136842261368697258773415993496487117665331591807253277245972703638236949263987908395998397036633980712002446283509972973980143714542837132773797612083626003083783764277171571202809669440971274418691815731702561251652942678055833133788405774400407474161724726922341529310338171771867510275100912445829291634851778272554860931064928667077150038575012278875942619176898688801695232971876824336459355585398415302495736916562017834316842761574052695834096921969994645390108001205293469206067899906297983774263341943442432197530706344752152594179497633506237740583045829973856037238398439339860554092059149132738987899271865528066393211687913311122652195727779961953672607389963966962191469841383720771421263688467543999836872639130756073940251152994049196656011814420781359372228239679039138053816192365355441297962641338012085119961528970727356586069120613569744029725002139671158398827308730804758522914438405038610702110686864891593640250720524274761045699406984967501973319490354066093274337511352594657617205922267501954980997200777213800609516900353395276228343670891138492342188241308212513589046230070659941971111922448613408772306602437757932326639327423636692482791403113469963620975176749354424602982359622618864438048502969488878819009666869425696423108800677086538930848359092585828134196698006625691681847245907234662256875175520216752161179790658428203101346947508185240877688965003705165632757330563441502297783667770632993854811898438281552302409809367143911027925186555402755354482601698207412803690596143442779965918467594399134744240658393080817446477673447886318409079664498353302718571035779770624331481766005503638505305483422670584109875993333754001990003225896121167319882459515736615746773090783733080513384816563994479317699774259325080245926303304810686266938976035693098111648557926133891095182037927788403458563134142724861269368734636613323251173250321427443721109401561287189127688563685412251275361971576727008879928227671604478094616226007795718265422550459998423921926091183831513987060745453041007263253762650831354465138430724567827749285809697181788566798194626314776482932090751062439796900293102015960502859602472274866495854600106249800065062676941363521334885940423314384732706062910121234222160486024573976066849380408973946016405433925898640253089885304773126537657845642619396725239402702105166237723999010258531182699485184274109960362579270082584494509712300297233237330914413387691426970375405435151538197597038619226601902772160345002466356350899862173495773307930130296595371366798450687807996679495394810792984535708137671269520179811438501521927610668023827380455649533168184614416145402328044345280369683912873571957749165186515685153175614253583164006121125538526330364193849120933939634818917330036164320444530987204751149204271364579952044220361659104739506380244537820730817339887284433064857305679697140381951506800385008033469873781983312744083424636693406209319861696932901724444488465059946575643841720088904825868918295571924931282498371124734656228470266099713230778128792242874235782756198732684319929310947574108391296484879643371820432672838511300936501055841643601955341434088565418311101295462281105525696079065797022289696608964669205569573139372235465873808314862943227833499513917047968582105539288326245574912326759123719857595255472087596907338385936468968370561018787600651256790510082135975705966169045740531094909838160546995695358705115574500125072096548802735954346407636406473435346245985231999071826218340601906549755649457917229423211278484791839471914819775593036315098134466107500727585804219723001731061494447122018423046941892266613035522695224411751644755807789905431292265386588868393147804489152411271966930263317899230182456621749180434220106197558026140571827774947656356025588507125880057611428407596608821130369802274638301301838656023822170167114485129272072157589720968294192231108246949679294394796515720468056793688841507468826321309044838201791687301926702332244544147105852685468570220732355839364306099053351429564351739975409335952946805088808460078602203658344501580875363850390144498370111810474635199827000709227885487470328536913474684722652269095121730127264756121411842249839955385181868790370851810505430932422679266268455294677365251410550727735595503329467178197204793957885486759197610684377883291988592214074965281043751707678554173735368789991336934270989042523812659896490927848248179438454622761482897136783492593421304607845751252876728073034147109095739654515525823290484058199355924355810707394574158646357398108768053451889266109534359090059379564240148421121160696111805704740332780166912262876889499303456608413134126938442450259066031349026528797934237338567200458179902422573985923394176725497651533558770792053991677821730138869832108670799140981479877133629646125752021286776406148084660242429735406393457005360763694966140422450591981533446486830053684066232799856051636815818581888676170348377679135630042835849319254310645434732895561213242236516430788362560039212303878248374886390415796623856237701742865919594526100025770343359432063733330694918353652580176177023009577013503946601730453686505080735266265412560814027977326012688167921080360845957965093386199781989136047956354816291951711646013175413581206171859011167650091944702329606676191846190974840605163319264838816143433407872138931202425519012743711973186111785063503500246275097675930647012022434349145821926469283261555664023471722912072100464210176173752460142067468804320519097684122907572657197117972265606496473450697047957917986498008092862642602736310158311998736442553995860590259386258939797125696683288589656364614153495181533535076852000002765919617351329098064478477978265465045432858645223542405459234520942931261007860177283826138189773647994008131286254481289809501531940238751451901866417972365653589730038699870876291409449351980657673408786829952899235584807016130759576440815732828033467871857402253836152385688845112395705069099084532992683071506748448617247985514788882653600206195492671841212765261057331048563243514484152840319761628735898701743077974127337876860124819389401314841829567587617457377868772134284934920255744332013303869637603504725130288033094641647694598462150546985677749588339894712608172762971938688980205624387844694249124860427368583800380570721635166000057866692172800767859706515242910955206116068572022365039089984885745712683890028614207641913502744905795309463526898915712842176295781923013361238561286335841465211099513294907161499357744481652722600070958302677531565395276304611141391369787552941385576055428322371046612304031827382199100755153124869726064422388555774658512079353669333034042747057968317356422525737600133550167240906241913851894810563227098573589403697477443186324773126134843412473691011820251290510529499565004563352232651248711642525470071721310063023239100407162748264333285118425337027820356180990141410530679287696340547629156391230755414319186703627974930106929110435621041384527931375273553482525928369583135535987050068101499888821646214869084133242421206307589624350442828729735289883007119821440223570055438880794852773300470400489832900969145015225501239374483494131453932880376507626260374505323553977719772217721746019518997153523389987620271370040817952983236819604384881223052046968046847011746635501905943571690782859988070466135815569892778240661110801606042645316181444598649253195836148278810235959896756556379512686158223199043797622547383082879300369775342906889559773688305119025145252278191380265656581785563060416871991312168695466542523463353802283278922152043376465185070215598911852264735196401967640396158129862352603117613448536872141887209079613403143850201827593998719671423628841578300972182163677894961766386199910860620067377651600094762607445449638110555601582952489826403837380595131841692331013860123768621448057466813148999316589937885519236073559299739741248649084652095245053672176048432999719081186235950077183292390660428873108210505375174423861789759868058850370412698543920820703190008514489004708812836850969646493573775063313196626879515500392599706941204007829428272423797274481023483552971972494358431331098677782651080550487843767853051691367506182877642190145590925641724743420314331173911998455605093387735148204030355913785618572267507807884488993906673284149555792895129105202476894294912556056868925506274844146286934927019123315200953272855076326027845726523732038487585846278866292950336296514441507230542222952704014200955970152405870390602671978432669787342393016496091025637003312789077108934040148549743229269305012028111850954074090927498592453740730812908095011712322610997745973782334729425194344718861594638648969374363389999328055463980381812664494725954095755457470574939702079703289340825881587792374926888646432682024528235219480254436719925985660470380067109263184937744187296327822359799530251477300215502101440713230505993705438022322994648392355618802541536598730778784015812274048717230701671405576014594585684920576461417844475311159793672732942267395846685500539245112022871140473825032805666371167046218456093716335598346309848207629844548992570436942869705084383990297763740136885503109485674096278689237707592900435351217534001469438514032951462729489996444101454761586355942055157329634673499937555067304010590955309350788241422239794497239044829868718421278388829542766988562268044298288627687208691604893114196233298395986219080443064527239048862713352691141970503443629366133267289883415078007599302230680626255461169649280599613859253520042694793293792769598810178945143663637461169570210863695756883475488484987942686121201788623512859925342925672384603371150326474694692503203380661692352873482985287123642577721867852978336359694525354945974998464146848298271182799777022657693377921850639491780850622553271535317294861308086418872749239185747225348346805194370097988864265358457372484424010405656556059416554594492273247118627837806922892886989881734722625795315586643898724252050082375855155768517169043633071917639931834870694319613035235291828249644701884509566405455851833091038849053943224993548430655310379834951578171261825504048674980324783025946304375830425094354415909560572245626573077180435275627324028461076055568078916565626078932186296531762104478411001328408226847111357312562452168231476475827895874456530364298054538959794866939717356936930802178375162163623001830516423437781055184542238322413466144680953692332202881585810723610297759525652215769735853605496176901435190880635758162649543284010244349462741257119223285221088347992548901306664711461343399310355231252850182259852682142676851922412510484365576779705102674806760249843165410673435572498269010811084071682955574892944162574954686877645957142761764941686531032426845199233901273646587833701955474743757594986899626983097196558502185742261249327020851637330821142286525949169821726379640773215670859604501640932933084968331715561246430013259398792008828618812468767249583494149978073438414779715587866879327942362201343749860596887030955728491862157565396883901688869201792067493206922715202207166375715770870655552642463140737018319091656579358256930321369024840233045586884224286824742663768522507586163834337685121956784549032413028271250112276347246145234009310489079910919595229605016002994057549005684049433683118511901605053807265413775312787303400764304004079448989759030735985650616663240636692255743667892143230856196270305083802995421177222364068225541425853399869984284618303526982508405731468539467746156067830059277016136574983238879763337291554652555514636391882560828350164094509399195813284839752195046493304819213407776838909159205831438288579074630006354494544553674319019782802862972944289034552196884993840272626912267278565059181245839260376825095592520724177403000119592605289147867072703045860394635769376470130866458737886660389053339225964231057200752114099787415543252783313008890426765894295584957921219822772434280893465015622360936461763325168538474836405744953346252835680803777721874272389633080282576350669604793687834108651211816636821941642295959650701707357622950696150264862369356741293705328905165051348749838435837724658097795511843549861233661095299377132666543336819931511518067113594675112733393794126180071622246149736837510579394538863411654406856945103485866450854076732325606749328524890672021366326696230252205327936500291527193104639352148559535231441120927620531847677428328959813521701890970254707376330101854758283062307087934209811124541187009513070781878539955942251982769668749061674815810966963208244452721948441834482605475816246480305305328843451926899143964090268641011093820329915460072661864918753905376181086529205968911120476945453265312681402812775502452883333589949312000147381798994995734191422435600759423522441832021520153838316183753690230832228071418825155170026242051892644271055381101940613146212059996697552612631954748918970308199642553434280005697164889900577387052729279065514030775560446059386324884404094064206678122872501683468022717502513923385635984439420934991429090265999301563076270015236735034211112125174708355449583803303730377965017275911537472740807730770410604649441826586095097608202488037342779793734182117433027340960949510108576366487708491764521846835629754393372245245302747919844701763740713162468752472823640905175752571452118025380807424444051446849348312913503377725822670453471138076089639886596641856939978712194969759758300293571305971715539372951526528533232742231835434342164883473333073271263668205767470206762177564086880238394864622618193862761854184536642144295273770020580736369882155115584788027782114863602288248280121297875876760316968917411516264034210557083194103203427080778215738805501383497709373411108480709560814687433370436952059509379245500865615880570531657672690287759997507123707628541982005708852283795150610961327139574217073425680204749600440565615557765546425132379598909562498688206019204171818626874599306303679840180253984741766657493175568607007047756257363645648583137371301323155712686187520691089227499260792242180926701221128783597207705032449351566367160695970558752750167600143056144946032708382284837712224658685120103144053298745652248500084792163230757002278938703252886193781625867384432808141710237154073845411841189284848222450762512299779602212889220594350611180283557226309974258237711247501941424433379461417054303728292124416024200167142100087322386269496022551659764228051088361926120820954936104757562342520239118574229618540227359295871212655525453174552374121877826061650097938482354486612202655534239130961532827669224322401600681030919590656193653206284656175183095344207743644608692854054841001832729160557777929527890898460575394375008756665870106030185647773749238243911641719757825066824494755260155583516303074936922511192876465358681436497032969715139040376531581207840284116315261700964708233856370077841393013823582482376389675164174990479552355833503966565491095276231158326989652299546993905222882359084591211455409471667635624279287168611389469798045027536643094870999175176146291205467934763387831549778555059793695258161412144185072911801325974574691790983587762278294779174445313034293853529772582201420036389110581413664980083679396764615858897023049828400520711644836462161227657095440835569043209240600283522062184142545019535374736249705871502592474377341348728883468755460377549853309410395458232847345268751318360941891212428405870659712929815530783379612360108562500150198970723844289873220140727502736504769860424518435119515176622113625975069616262195599979153899127716122801221608617571929232356478436634304601580154949886406584756338961103621261181157470725026843023318934726170976956352618790193781555221638531904702108975149929170220045762572245474730366363232760123322989378242112383434523956396466684249354518665661730330198357792250431200195492318471678068301714331978919130541279624557476292302792852222570445267258568704493390322199105454728572536225875542380472678303566391526911530230751694449702870768150731345895958967901608901329228126797465319420908670071345997950885352174599245403185285365676955692991804653137093052980026741483236748936629599149099480582860196359335725247168490721881742450264860909670767364284462832393273743471888006994093368744544284308262285530675333173054590907064096508976060626219467452216036059877112707943181510792798917256095744365389581397186897622396019368763779810267659177116655842746865756331280579120296954421249743543436010192057550955117176023383373512043458876062054297281699161835112092631352818875727631967989508820024824817929584886630558401575571173485224572887913728759400362031961481948557343546080800348974477513176841590571585349693595259172091982784401580834013892363937990753595941754968347464652871991173972607832389584467871716896638328990851481542792757625448534834259613649334193834375800904397452251447798504457171267104398121977444211090995224567952088018344158017509173232089528434147712230918523711162750692780235249245600650533982244621372377148169445412172895841559604308121181932978938532390595699053610768347342939877887702512548806539574732511632386200244116952050546984700651709445365930105117205010530357140077629540264898429229387896598397541312438184694750396664794345609595925609554061392841017229796278361151023250213059856966436792208569389326660823398078726964359316717598381656397665472222093218902067934577844982934413995128146227776789277737539990152564583817619534262831902857178864042447885317334452214477058942210256942198302765065086681543238081637923428304738410495240521299022133474666335528822160806734937879361337341370345325444477672492585494940316463593345921756240389290200226007900455596060746719192909013689334231689520109116908608497135271381372491048160132766327507532112573728162068087078785752181423646698252537161998591058005968039988201742462121034161966489639847786766436127949813067099669879565586136942141093980202122989571590848982436612789610874359414981594823917454858336637608675295903298326437104402521810807678299338789466902897730305633095701321752072759974113873417946731699424226269091649882876749146520748451089774898367791133045102668204204915824206902408823574277467866112043842475722873542534672179727111135090761010409730489824075106543390022008861730600690709364455799436326095166381345994529945593377218039677244920751142612189924320525212030132185174544037335612406374925086390326810435212244694933755744313185281027574984736604451027241347642616479538524484232032425289946959082427851358761143329863194936601585349203687218747229551649004715772123339312136773516439324428581566282597670689061534130099505055820337348673763986872479483474587905571107830772086860501447172790663233914306589394612808989094480439665020177596912095440656340517102557056036848789306859882142581743920949920689306869179651364719920263452562975214701534037868473431194337127144937289762215278385042200753998010005955867621699228890229663765692570158414580029283973977863569689299984861479001867486643496414478106194359757758528217863227877406417305089345081153847098379875685760463232697328861224313702824570644939649311311965179989200802956002838712532228331295474451931257523619705036338014403011246185522557097376736144685560905718688524236207630323432619560373685309083310923622978549871324640915308991228384987780934632595101347539549213651653059278740613218691455774731597214844793047342568212442309771232300674903337976823294519222908938530640517815822152316716914816157570682323490589180435445225093476725595932187921673868096163250749303419224163448453285573838168137290164367310937179570502195936942033043198763287687773661803189478819178947492992232190524717684922628705966627160068086538204227572945832501776276484959683394140476502444818693203962158431475078219200285486421639404241750356917037266239074125708302738021374488663936038807986405705164545305274411502993540607995507422110055625565174310836666819974163437022274320291669609758713367823497242105309165563836918222612688799517913465560890112580766726365423815209229016317626672592863722700442815233743258990096725044089343829925990949668153623453272897927647890788008838974332282284010801568353421371058700358942075201251977192596049726997984803550512733838557556100291753435553801738800805094581415149945201689085781675615106288052286013898590393365460566681826996500648688205502087284642859634650701354730830874034812781679051983579789485444998654858061635662296611064346288974610678698644494632462154142558004687030081396574201583422439359252798356127940272357424243587878672713317417260739518398123507345002235038630083908136722386699719817088218986074010945323230644190244658644798772404546889342299803889181365316025118059779211089629147136812861050698703953443492445924774854991618672891445071522538421091004083325982594923917365695049481037362717576212068329042548662471727232024111307184269521687236176556116996805886170597150035117752809025515387118640370187319576464948456251512819209625069851141927002451392574179291695955937956982065885616928223305919930962571557553566235678579659781997201240280801175195346980758908356869439164493562733765519963782211892254554699611541420564783452419446090763386720787574618047308632919415967530152084422479927808829501275663356436185631476830026342976814262025022920799728346816073108408409671831079813883059011399501511304954992342082144930532558130887734050764520731831751975695725053435363165728489295547424353417644806085305340027580438051894644571339396300605879686082255937205217965981931463556060337869363116308474261398344496416589143847970757443392031119298163623420304981175586937488752550901075020660883904308613358630971596319584847153740817117978776631723822885005833178387816673561472887612852752982367586619193095758240656263289354547926640874080447294737980612695718008856065206249363097451733646848817168712580619523360206482754273733035159225990677453409715542393807964300121127506380912440871307513064271678127166110580274317503471633674969009055538585516327003464820806205973142774849844358119172010785866602386801585385249591179409512157204097281395170989154538658225066747771810837394630196375941829138923507102254718769381739853082108539185724996998678229374393559225559117564386966698609213242639490958664591385108631626443221288329394638830069415842196453863510986479440812360194886794254918733026253711159606939243002737108798325551133392717675957957632178471598927294673264849816105902301942102127062620307906372853916367756231710430123464616158268789895513675515369853248216488496322668712407832061646244656983515771378649558827973442817300102996332718572307202660483801817761299261761667082614037459929288786824129559086209406361096829509203723898753866526870286415072244590216754112027996224490809870569751670020508272777375746668871106819897808960687827871801246675993519492459734435594464240949345018883237891321287898708458348909301990365207198513039647904744005809992062944659335348751099485096110484552991352908594379622134105729600939840524157627307269322616008450655750577145420984550089096362253943691570337124768633930208551261284682466419570695654008194303410767784260263303243594167292906353604015031286447469571874826614771111013496019451583267621826549299786642468910877571903829540647994397750863898541480317691427013765427080441658541274430437011794081819564135413747702036269137100446280114562218602754893130461212980815494091532407123855280179837549353604947473120483749482829024219860204891687222850561380353756355425176356725098222175503266557305048043340403233433048201982415771697633700697196619907406090387500148670272045882834929469161793047855150614785328393566510473899764671049129871533675045476996306765890305406301689259238822772028874404897013101462196269627487166026847010143506439319801283830978552337345128619783421528198875394543953520531322507004400248362045546677453601429070978995647601257937127661461834236501122139814611248024095456993329252080021439824094960745498998651100619183886081616017085421874821530207685167988572824603926955894673093987297690981241906768367002479729805259654365496055984885359622934456656905796646095790915773413325446191494761406597530774326086640195673750158551321104310651643311435739461516774861481365341734806812220007843957329798689043105651758767615369920709276952222020205536308044457697236104383148893158270152187037491117376502222661024134286818299197743689749323300491800905062981427288725886210249868208079318711756015850348919526227941836509820566620769581376937028201165564846533660833372484076363607397256504587057216260849859627240342724264572477700622001801521111550275272120196390694328606588712871721646636525795568620370401168003714158049030364166001885927006055062784795954849793926272181047380076140121904538197375734893351941690707506684521066466163832475025211510960324218295252822952964351267137171964902682298151742452547137866053131690075018952086435139919332813931832574759710639454898048447689186153134465590508358933322117446895920917805482570488607999322456616645859000304191886959968049738403388356980005777384087076207421443594491708866044410410856857515485871786620540373073841735456157060164360388394565953484836949017225355788988122799878147196014102381829668891436547522734310768990436047584627081361919987862002409899245561959490983286533249039668486305664282554667028033698204034951466771621479206727602077261473122876574525127925612613105146778376419928515517373421037387608301223952286566175410539380585170961731542105956514468775926840910613273791596536162384870868717038489117052205307895637777609357580504088555775364984449551656597441829692604131036188093958318941565231579237181578427030717631916957298401502991939432666354054901799206497718187162761415829818842932815032185474582108298952778474899999194468086427148333990012400784338382618261728634890888606790699090342593897110112273036541705537175287425077528336080134004114084504859807423766079449625342301031553201151326283690700074531815541575947869840177714693846156891572389343108449957125676699894017670894747977674813868497834349526763163728982762323272096470377861873120078936958647802159009822529123037738967401216435876305649888405644962589807484053944675099532846786087796665736758895747496962973199034723491583975286390064391313434012969030796181765524818806892595917696777993973269961532355546099244864272932246173905123493691820871670447969226268741472239224903136624622256064720076697445228502355691771600807999738213230008518368432464284138624681247249990825117821207300426784422928555216466654522357232521924707618414002837297264314532755437577775424836000298022777183554501989916662188283011711825983601469816849497633967764029829848991581949359974498197650182013956984961361692270873286327353870757428712494918158547893302218062039761710900105364100453511766255447881854889352177206337909627997722731522273038878514446438699835535619599274422456058848743816417426252517273343408564394616995270655381508016051921878954182992245872043478053113690968533597023887787625211477113862467892410181423852199832901691650706606535998290744098317276797662889132664374039231076076778347212071364583534024165705560006341770385416308271722105917669351213323154177303687839651817849533915641300306723403166415893171207518197707770916336328044250174262429537218452053241048049833576258613479150012954763704344350765059690827779109036600430556963013112772776438008922051743379776718243428243386505059500988968484504196637984227934790673612961015173677531468276121331899819275128746714781721695639405470938059337281411741627326263271420967777236548976205478891202214981112907713029789942135187594409743985449395577915016633152774521182114970637928068671978898693923022985417262478059741359864457685575900324407157658272481423575516245285670235051819918394279272366788725300991631724058860739013587308110118750444192947022855942514588938284692380282373521159475626154935306107688103425567602654341284709663641945480912416335630126522908747166643785662598425264960046876681583629566511705203007467576651226781774139225917919503965000556674893665247845856008300378042731376282915294116945846303743232379540263090571509909606853767408297635248854587633132504185587176903243187222169286955465152996749730027472503975767371337438441137165946473705730270348383924449314673535886437560539385341606814804571174858949874903576647135310860251980019707950144140876623622947928736483698407755662327906131887806182499754106917215294319050149125441319938025316135944589047114260306182591027656785411445668122971208982171554783382242630332367348501088014720003018460909122930611405835304528719779962027040229162919651423214190426810773629225860941309315655909700678898663961329183587501117787960098519610681316636271611538937145585495723632779726818361544093988587708722171350075491596356770633544793366862071271593203174377769296979032576332899883255280010358364401900167920660742699614708872493248683260065541086609254426524150794948725435029837545223863459185176631032072602301762099074768226172480347437775878417433378843599158216882799354178434994527491948521337282000836651821108776685308675479756439395002536399991058854163223863511412675669152751020891239577207654707865422167706543321058398200196877913132807763644203644830439615378078964082290246413792384804901115567613688663849986855163456569740296103072310413258308669553372784236214069141895208819549235389632011421229331177444840350052332223210896378284985727405239210825202701055089401145622086800863666307355514087289873458080180023783023987827632790483253289447276200445098526100963459184586125849967758298005880988638173957886651880700523372502069179344317327024993449920262336629235644653994038488501766253265487059392373219989602421283884131042977150554404948362088093824264674633257179176633955095407840566742726051491116312003156457798944260147842646709349158307963567285290875631417715840725152717662021632281436636835742426722605325656574661629228137404291528668024662249628020070136003690653431593869303463406174524636747866227151202425266681255317316475817492858131238009038584154959664092190848002970690666747940427015004572660803981483388782339450527549904711823855983316046171662902203631846139335895961327871151305671081879351417034995412232625166851157310018039167575324226207633431318713687828337975768954123948784532884122118518080840337268324432156850951857415032427091790433866835241283919745547529791652020380182584841356788705199672470731394177420374091126504941537208091900803477459614637955013760724972934586910572522739860542420307803441269162475458007894122929104856163297771380764255962146481974696458439506476515155666081207899423391283354647820747825555357064892447535265704107963019747854777284600248969391055008355786327786268314297911020712666831511591268510983162179598716075526294885190467519596750787721062346482570490940987510766963157084475143494691456834612442764849654972342381674595531838054884808140596141570489324883490590547227432694754999047430787242523560976023512044378550939494960215986689954921446890550375235637848623759028933800169327315448740273600678221500637292997593439971060146905978323764913420563958715689105931251123051341637118342103315091884239118443857234098309731751990406545808304970741288100080962927862048886897214201916514251181497848050993236623359816478874494493446589774492710772777348261205763455404679468208345115692980138133011557271266977549910446867098699847492624397779588795265103679677973562414686728196864059709776893457827869107670555798348232028036492297065970836171506877468832641550090278800227144831830958407518171083149256920473714802655096722164920490135241812991382044043235000848671860471859197387125038866189819395720427459785927897019224507862878885847011646633452616336707299188370376400808798782767299885104026679485680568177919993806891710489721115023984441031922379299694752893936525265034613892741919364166411195498546712185031689156629651047052243400817814577441652645015364266941194508309103550373656564226925669217396978031018333463480408027062379571729480865462802031845260886629728360590575102166988682938929807999319146825177221664420509017127362478506385862153500385499873224631033232418727778438124407879971923345498369802487701845421638517929973439951869237578774239827016928715808606376938061244313872174475688997237503775169452725300315734977142948307385992761720589866129840904013437307137136160193476995680495930302453435667772043044213089940653916715852760030128473338885955788495319623450719190858305319953233258461496556674989688801768571303175834609789008009545552579403336106765421697879680288563678644913255877818205132876139994626229116090197465570053077389904803733105563857402272459897471134594130994698354793548000834675006755404939543300292226792817400775705605206133197328562910200932499791486801701390408095084642227802422796149227433558876782416960615136924812879800903508419359279766733339363875673183340429790249375580967955343178386093710609229431977101170975091670428340701201341876041659292300146310602875553332989933745760614344859196792725371122083151181130473985599391480758647532103672957091694735957996498643836460007390326650857820775678172777403798639537190234438790351071059630415792417430394337585788851183902093999077651678921405900317955405033322789289515530191502730103732000105031640015512025891975895990239526119027603271406318870052877355823198038143623042918899684623605998030581885623255150593121947880488065040161845568219425260288941241418303737680566536522848623374705415344074840276353325291190951077367932323343607117012363786437058147660814630274160065703468359470305174491649402122772769975022989833107932029232979510376092025589064118003735471577845956052432883507356057872298139643571058853366180762125072640628768543343369564591516679652855791752174824173222149992401106601405605566098708349941890638794607529219782519389835413629159722423283710655623980971290528951017302593709314538120253868000624487171472666738617668582087872917678399020203543668422683499032937630033013965652413618722315442810464002963811458295390364941587960360544917084225536914874727855645690833645534662521609991813460878622007553654486841597171343758366090495884030769007224135831350360096747030337752635927233848311711730035269640396944827197256632386798065604121535527600353383034823470520648263929432792312202005484645465136734804981784687330294718788958834995464812249061959070799862472989877184252751488526434854842860599882058438449535618261492433834322754978530097137542125024217986871274338181054360050384742258353800313307735612460353169739918721428743144537766699528451753150623624957033767516304628114619369341901824419912272891372325652530439695968668697369549763675091436829330937955601668979089515693231028384812187115101735580234398394060575777111852168742297469030548927726556660495846606271344114947249980586459592677809565853401686339489144176614165111051446265691549048169832410080149691885662453865301750255380157728336562109539559467327491042889998378962695478800127122301119889483942622194868328368393101654685625403122968333541262717253485780375338327308312684590880474715637552720427730746062478480011747934708244129643203097043678096205323664196246887535333967193319996956059066213714679644531443298457959008657614591590844183811035660394016604991938144095231822849541215035937495661134741538419650383522599258855533244425594042843030756823151439713098976291938920589758347834012704117477880361714104034764618042802279074051580981942847958597162474043229632264726383060484038708035376555888767277384823270994170287878285578189605151931168696325981244936985504413786079784423003817209658798169367631267286753720719952370055059139293590329127929644310568072450647426917046964217599482363717951197387423065358039883411011269853249230523898658651413622473429980502883047926431902939556948592287481376375159342474814194876296749399142831162518898209442191270573869120004421985763777975682695806595997227975368989358586849259315503528341464891434792802493417720754444359077977929279646475670986361196370813110894434872133477312877866397653906685560176391797799007561480371381137998551730436010400798753159845001572809394468607712273751840006400908438829613271684994564675154686559090573424685305169678397641271776894061002559654548963615934829161061862840117864740479703884531606528637192000658775561037541808023185302880714062210947494513177761724476785279182938070497561743332473890736537429454106112463093544381582042294956962117595951676677147577601564001389495800892108661834168694897554039895848294582163259091617310978176506935977435748263194769368066983631515064023556903180701172652567910830479433792392769839690499818697675224666758000237527608226338481825268427658914704136294437965620552121150753260158735801508885111850509016594310319256910726357235761972475772303565772752126197236170511208537593903009284477711454092527315401059586541167866171482589476975323395812857465147945415246590151287292669529436119873847182553525688089821027529136383416786129645433419271089955811046735886607275388360676805696356251876659232541232865928985042195874968784287888384142720220440823074963254565594423117590193149590024542612759911263392296592597008985622328560676679343673845835486156982254094560531715366931668528466484419128058477507874098940331443527030258241443320809886311069689248905258827373856777257206800821037577978036213780192057804529001130842864864648979235988679351669886418046974735493912083616923734270786177242369548348965496477809049259131173269145588333708489563059955796138889329692449400847380248923113494494397552081853615937187869532979403976408356441239885501585716582896402993934882800322186174182755328194261936840510719193302653446848257639001973246973273846221263380282239373220943162634687483659532973442256156707222508583968662458778918310278223368193022183474419666935472178676649813883336612245435702948430611813611393093794046739290915660355114538604131560756935679722273691607738588908557491149176057130055875860172873431664685901021167415878749202630936241551382175732950802022287017829963251168027036726098535011380756079771511940624834083457697255706512442096875214909763716134217168975428168562505010793130388608896010232191538849025461760573113041341197741997624903053355660098928463641763966784111385908677056391083232274108595841439773199938289002738182566292782871188348116436788275206002173184277995927476445225414472318629287420767569914316425389627551070480066657563408913019736162648115286050026072813469305409556490221060554441447383887659915019743084982654112618592459923462342277209259163672518336891884822690381531307223696016886469612196207797389765997093439196354308659275151490230494229978991049647282245901820574982552902998700018886095813682288459455607614697618729416239930078781195942634855221641805386186796472207275552254615305796649772079533571546375635171508032894089262396268617857658507858028302836469468284058613000984716721446684775510781515488113528892861888014064518719681368110841126909630143269469047220863608287776382415941905964425904421861343145715013437033408609062150366935068904656780649006852273968237346161231396718495392316398951823870693659212768796008656452510729672177530044050345258491174139485884878362003254313920148817365460324624551009564749046963275319275357637287087774795976550528476498890272525967111400508105968907608638736413225451745588391603461157373950600112654023053496174095437386189435820212529053514196776175544867061226027630536407405913768562041951480387450240417712716096282697261211641718916570580833382474814333874024315780392057829690497837898634145032548398580638591158759490904279621119791178007349005362680780811482416804359232867917518262351155416914166381113480142058818923159251213447693257821957271191534613549045822260344108038530558761117409585305527071264590013689888244752804252031950293728574508781213494128905094018918890045841327732764221019478685041920468590607987178471841583504597950860880612667218833874412626066032022591183573409832220064026742365123411536090588634158620700837444086021876372894074869677447753823405111253641829064684743577115094448112527501642170951612636680450890526615257643326778879260309803135467950847969068968705580657931342383773286113547494476371796893582442309026351782786913018309309472561454042878896653607839727821234976455247919018246111635547254208187858156205140244404333218072793277666249969457698088340197735856263839348324888293627765009842649655228441017301096910550510075880960175103457690368649313773047130643348529904094892714273648839613518856086961666190421733019516092033347190152087774514667238768753928502600506023229710071965996855213508149673119854974457261630433601966970577708665352022676072574898841414683919454542738525507706572402708722826615405233897170841294010545205969399337537489453138939228544173604879690196404854593373429614502348905169905225487470741472722445650547553039316538653367376858514991988195347654343691721186651480815042489056126723440577146112122429728262839616336436870570233848132748208608542438219755767324376054190590918258986086560334029671011984810344905286878138562844364501319763161562798844291041433731391324296501584135486369547168821688175818691446574862572071655178401826762072479794744208710038660360108243711657522893982645732838767585384767182271245618152697430356393647215533960154016998772947197941458817721796853596564275532744379147112804922639127690329762318117951248026277958565390602052503045545208960571145200848605302226251957377286312479643156263884661248039278523513508274373702675364826885537289380577931279018165333383862305015121399190792701543516091006360291089537536172437435171632078067290982395616110902330050753258642601615671222320608068288452965848862542866885394867372633190194246404079029077508994982440556709464399462497633049763373904458800652198822423637017533984906959642149955593494917178056163764602665492581975347004322069468605856901506373954537359614700264415357891385974148064987279626211141759845886211008910896622530494973487466124762387187465876150971985845076453829856958805909769422353932293557044049959666228121052983426884709951110127228812387485942988958936918253490492661952018553399288395521442082424394792684402261530040858797968095011584646362301513910312734253370937063133114421861904096286235728032984883208500895772546679585146701493699195421596743087144578136783577988893653309143811377608104689712939439768672288598168137338930684114075782562406304790635804749274065116694011056522633952486251224920005200060423701942686147521499521648776594109069831616261537252273888459661904542584644705988113074396690690730306270578415176323839649530467805430642044238393735111746077286641368807751041021715244800183527894447992442411612092543578628088290654565531757065303789423083335666705413320759696644402306746170213308780655172462806936923316643128171292405013654130769664385083258676498125313524462123702486349925590084060041800177714300591285282167286332772478734153079582418015579043852530865369282520861982888899470697442075588651504781123198038121768223056296339097065356335211071874868083589861961694057086894919198444781384326814046783470791620345126959316102413166742732901630579156814969903701157736698642055083280037855999810109637592272612346812150257815806687880958665730992220039888851351745204723893439093084865735536012103352424930524206947624341561207915600566219454049341613842859501720023262734650587047361869943547465873884459831255773628769079761922491573122015411384326819211432666940341061107232875802409159509585603717133676176634816962404445349751982538114427058364287986947479572834055729242599125871180265799779940937927673941143434444508578155376899265779172561696120803066869017590989413116717190205563316156505532833170245987520459127167835771027221291112501270279915282912385511232582312016215941777460118667715970703451567291955001598000246719185521612389753057524852859243006716085068161434337261818266367979595080399480545007731277434826180608008438840235027903197451769612963233078912492988713696701169502087604833068403754474702917655932079217228544502411660625144706243741643431446364565598769063767629141604316494844294511732767796133997063295249946620464491761791432071873566025160250224481712424096680541259902936369639062606599340312341929630757907424542880200128503948845135796693798594376985398400843772698289102392657100938590938286159532043675175136819903756173672433140876017713946827314731648882506390775505746241572413721953710295608502636444879629317761626982198549122362678798769416648099897808461855638643477707687449775296967951167280514968940668254531682304438921248988701731867922934929741346599076363621025963064143010679521955042132710909197462651689660932749340130702682331633631795418523098026460464072979334795273726170698744729865132932951528877833225071358956027428181912474289291517249474268421975779746832696360759821482670823358853710107200575928280671871497748916139968672108248347105745694385177900044704924933866168420842482254794324852480174666683874201580682556903311118564597578044178358511886373473401658184784929402617125096214873458207470312481499518664576669205661742336801793659060845599981435764389212424415053589162585265757366579430956662515440559712778540278202125680380843274292963823312180147608732165990031857221300620141837264681276012593801206638301143231777581620772740595834963194978128273244650290756608045125436501425416676858169383098811810583379143416726270239296083724254531688380439645267715448354980138414522577735908192845488407877496796392887021765755346202400772286567404465931807320920889979771149176901574289650864816991290654813096095369506413627508481644256451088854887962229851219951998786230942836924099482656658027672501010380653775561396060807167215465772085665220228291982171557424337251626056450969604596511790124110183957783830162779403986789487821330574025483191693428143288864261829448976281255370779670611053173211638710245107957364563117284352236242041574610797605357883873007008344167298933660866582713291182275631962856582349701904136768865330203552931056097228420509143282982279293749014928048403108649876315673437952012192434544130511022589215943496160668536457543362370177628782064581775720726145305247517553988131147600798736134756432159570967997906052508276992888495532674440412174342845524436624062474943520891840215499257880177125986262320661598609523445282092645172136396311976729489810060743276921107277631227346026641465218145022521948300426431539475223778489079368039633808846046586700509546440260137743269840504200103484378562899795383191301326314164711663666216640832353211472638816415100010817939740006064478123805119688492464456419538952382334390517785514689830882158389908109147033986617064571384429961632573482378614159369421133363831778820307837195781407360059018897719295114791427229216433099996436326805209639960965087519602744750768931287819763463868663621482977689331431633212795509090806757466678146144089275370038872919038791006670927154938772255677566429063506544382652128798155606137955352005555100646098380555594456297397759946044431590502070473527843187319410266065750590759564361382975025697007437665439282818244428823758122618818711807136303566394568906601258035881548102686458770935729457491450604110614315628688569045412226314526177213194358772540339336919344192386878285382520892299541925847117676369055577108597139847252865877874366753654596915613562582054044012221593026405498717213267368928581872834239471771425506184365536455727573362254918884328015324528848250752572436165488627198089362785570093155066364325717028868344259417941413733511088004618668287202578342573381872465399381887425255910651640142868204046966936640268637949982087585353134403204481502318521259020001076397623916744349513842966373921691917176212204836925897639583452364799998425549492880502670067217541272316712138197750929756535526136218462622133696784625265407884181137989015265910973507152232484089468956110577132946649419332787351415605141000417428166035875300493849258083990457854607537561111184437362819033117831238520487195123725148822857404470389115793487775994145756076763222041967217833329963945336934980065262612593516274112173773099145546878007546036933807877817128430548593020979039138312283356091923654247441774782664555580665614496414690070276843920593177765232010146198126569722431918201294577977013224845717778649255172446878567265463640178521364795374946850835173483827479989836197738794329016779632982296138162731000302667857142365098254640992888985016167922562963269829551910534371960574840446078041717900872468773862989189763178250631453340237574073751616315981868670612558244863778241510486342991602537396311964809514039400883140614371761298461053970033401771540238520909959681677200817208873154373944439496916470490746476045331363091374775260057701353115315558929271229381750956974305916695664063104647044535107277274607940819148379936899681249691855948939705733170583583515633645324021923157293770904493804991290818388327931048353644983288371603085359811191500368099280195587872931038444305324714789650222171170716012978438424752088838270767129414616185960851373823810847233601669502389607344889810023086359751657335106760982653919390587427920711414103204426808524341328279653668349957665531423690404894538985820407964857941244276192943830998795675636123049743383805932822063961086252267260341683085013477571151162187310718839538713985653946972879592921938573213230869876337886973546761001888082817891437185907989116645607421608080395718979106296117576275303971905374109327456037926397755997403538871387390797587181471951383879019144830321469915562272097619577395636768467883582706269181573480810963570448472078211305238217839999048272559778896710251350906952128847106618075880928997416277197828142096643805987144022437617718102231310230812740294470435883034086122297038567783347876508359683608687453055374196154656986038728789406339813977607861756360315919209887012630288642698596282834534668488702047837446299785971905191699931269631954020003513104663360632267388523777065203642008635202973593488285201241735857369366573482998305005502831528157853677188818117968653043993157701980411765598507755364110739359940842012563401851887941790067193373566349361772979292206450754084968025576752699128345874102288191156443155298866380263062661607440123701462514521777834587745606939714626155395140209766429030141075731620369809662763150863250285604630714509074551203178516024993388321506460419605085924428226004899148340806152708426317315037132192254107881956628863450929540983654147391491526300004681278985298265673030876707527037555953544980819382383935293783242152658621210986070605647961305961961414417674564951838861002773911018430438126363303534807033039896947237367815625887427632517096173597824914243512866516233465377447688779198279412377750597904803868693753033647853940705347808427227315200936960237370753582735120445975092176833755338832238055947683929097734106664917056117896327730707248334425162707679989151627921503259750586638172113759045679293219553030941692445139568411046303372275095972235136951462000745186274001679673646609471577471523426567530431303509300695606221611233996156203646099605011829338640999625812281989864878920048275268493837059702606112325410046189507243414769993708101434748060934054790914670818093343582961472975929838545865031352211175624464886838409627146724074731949366621490907574741990390560399091148344470157015878270798341661286216135907842992278922207474496044587683502330958193306167129598723552759960392416277012389785331453773483276288545292489386910865289845238973948951199614989691048574013328831132988333957954495964675481690096184333113195490741448694915978155031028684809065013396801974175919493103584541751503760348819849393729016787034711717970802141074062508813530647382877000038478665455422433633711305736596190133124952942654280090859992971695244228725446528522742838458731887721610757677098985380023803030332702239442920461683985258674406066305543699207366099743123584291389841349148028220038105037730564525027433001805923933020029512227578469353267538728459730400509830290770935089767796782283607284542758870870657793372517442142779799999871842136274370427483719231577741296578636118364271254102019982424918335568932243113443048029512074822621799597133856564760459180279107626510508170329743542974775975896907932590456076518051219830877534558049468654055632090749005660800466477590113928009942054426170073830278903107948740893019188293461546488185736998130131958331043880892994718733649794186872650408775485952680251691155564623437760410000222162207999411912533038863511858038050456700653890976053398973093868938529240047349308654986143653659534798822487394039134014877671477248573823789427075039763874521849499157418357784045713762295472790335359800049173017538453120240106902680843776441139511948225854478425455405859080165689892408515380800443451820154220930371940962679957879149038214748393258346844112808593874402372628685390898699262346171332016264560771696312592881791349745404437130973803005641047903299299810587383657636508097273488600128159910184028772869035000924593117694474338165086559557468369652111526200372155830309206442156629031775800927477773707697573886080633820792699780873086959892706235426686563789401801301605739245987703285861229625813760128704242548846734216912850854012694783389987156530845353120600074256968246940162013212728325064671844354154825917544069171471201933549873146136491914233106852219464006805826290724767095222394654548713413160462363404196498816670848799086035951195312609632537637194598518067000363226111495955752941836640733478307410297845704943081050208510254315048768172597967172910878776094320225423839260025036553726321206690224409232801916480410768441345725072756288445687185824823163213903987509533244121999400538057773392148139592543542407807361912911913650808548334136170265414284817834136600219756752251552782063508903843050136956332396817796781851513903748561521343294259968535058623398703546086717986196431165253487582690824730064097470189878704405567148665862127247597343434171104883842398146031285339437048504954202066228065255905969894224058042630459687602724810720983451237647181374898749761896760890691458323025272486669671963850307744035344253445086027473766647547162664703074074550007287382980935543224739540561053078335067961697872557208329236202010411252770955579411141228818445646070895164894042737521225461793271564399960782070550050649158456994152342670807538512596178016026950091808129595846394957070553385063563042254076782521132718156317772063323625116922745428559956260236991342027692513398912142104339155931247138102219707427416935110713916293805611274423746687034790600808299474039834630248702969946892697435023464915344772997943665467391978816786636527827078426304159682029679028493005814885580751145983012697610830718629025289976265461657026273486965842583409500452827435936087589335556698496402477016239285469992524170843550135439261293956125609204956052820221998474654723121430374752655995539531155094033965981950576677613808502838288910169594097084904738586875354646257344619568366326020493251679799233723342954081758290888865500737457031560602570723967551136556763324592688249211298767573154158090602824011393791259254431307524146611951932568892171630733428207102459873760961936850428638363937307669306984500651726014473978093379841939800747505025039259001126122389959834752447679989357122118494392908972086296154691153992490854426695254688012665803724407040111046382059518797992484350523431021914611908117208649949279005335613815288807755413350330168360301824541181664345162535886916214918843086273945849653011517872827889012265483272613178274284640885394610930218369189874546249590822384578686756211569634138733685845221436704061396808047807062004593765022670091613200055394882750553239311312800497555349444962434030050911642711570956758158464410156087126364806751104818395497282750824181767711676091305512254359855910731733233941977270041616610227602221602009171915829322991824450301569106301553876161543294153930965779979076964807961023844102348857002176645726122437991931380239068821608451451869035045015484994054457207383411978171691693069305319640673957362784674643223081194045097006075862679538983931516136533814146114604366777908707576371935537208549458057904620471566318512687479992061188809737912025488468353334012240259934032368970716550362894178069941663713350192533090827265310819126581714038891024820333120859681593884694747949714209691261093205816158289398300280817888089465644038474849922208480088608657752675839818460400454100218808357309297016102340979668385228475694666193407377022327845830364765161131474230090894783064598229016471191974713024967214952760809458623634287556561429320415498198585972990753505668026041636890289930001042868424112526588620848907143529977705859641182718988096088917437163901852696030039061029776472247662065658716590468120165684950342408245074694643484573498515862534155386461691699061866007369846842771299949431853151611611037104338499633077749370194488191665161258800107817144652533023985519423551639961474226555586079109555516671579443690109416607332327823523111505028989769318298684541925902506593719566300753313761976779884750703182820238043961218955648527945273980938548348289938741206519837588384987686742219580570495407036199998366850214590277579222705189510637945265238014163413352785377657217252121832782568659708733453136192111324979850555176514183802923769514043056688158881247141177622655996050558979649109242002805950598043780208120756962623809057465032246767017869559461830925617519491421344817752055819079461311790640842075354004739433689347949462318083850525087668836532238662926514531927609389619862658017823222879442500733692402185643639976984920614179260994559048513489206158922489728967269818508299857173690527843896759508308667862963645160026202068463799114573003158471454098581705526551131205039368247614507673869061373318641031698244487001109856099607887968804623718506146620433134029629443347508614547046297851713251270079767847219454647643231933199706629462544257323098213864070090269655588811645434871314879574906031415698068741303437838093493853589096397474669528022001080403687640950860658822014988461859541922329013457302229954860808219308945238701578344307782966360779448004770041851316695528290979595701858182087484780912917707763522139447649016146711277388768723547150190877118135640820913246750085727980256543706372744087734651165556999556814302165633237011526544833311043345230768135857293182959817120042653157463582177710487669183989643482940118968351544586517452135171717541934564738108171907253953699200053136210299168515034529914499757024501443617106936962096774678909480145486790810289341977314900450245205456233008880498282356293700960086993834206572221053319695063436459951267141410271368605495943649007784599310024759019585123912990414316017707483975926327122149442908168300290035346973187140685074265664989237891663014537023238544423655478880757749367050680789579730998090144244210921361431293891949689872250287743458401174637231800596360219506665514674985241255961275072792465643853406994972960404386491507588538533529941286723310235356737734827886044162721117597645330818251842982190030532573483215889413489541936861391293638162545410346254089964887049148438879716722585471543847867929440603431984754877467234691463412723111884636717578747362363948239713556822386669754214044012517556429166464621265114528479603211411306198710475893243307661864469454169618538245853446069929997731819668537855467634195233761101956025196513578617668444515936760672360449365934749418737697161773057646549867436262364836061351433536716148050391878825572504948066171906474815844438775498114868734119018954634246095241276280576390231315494718168512723588693089363742923954096542678875962592293374736576324773812265426133578761383110235448638167515529615023492092324252150065403663615833721373868407357811580184768314151521381754532215497017192403598845899556909650445639742258769837376061451603700787846491100499962275830081153697932439459840725595008059170027074963380961212368590740629581214967637729735187053444933214357961075890306100182539977001121006583614649457873871315077771280268695871694887578103132019106046456002085367813483389540755760216200535952448255150877716244996490089041663656230048372232729786897080752992030053272675514295506258689947080208382577205567203726538626178901314989753633515416802386434131682536006756242020028722213055090660055609526433693781208096047900348843616750846852183138749218735681475857862930907520019702757775185398357823697024201758323513832882983112014095840916508727301315137259819281273549096328614040232023308468254456092518434943223692936566731812271820213727970131496633501574813487232730840157538786473642370327513050249125303712150129581952426858570229716647805409843675410493840260386704995239191063275551205997325697370096341779251830838686623908294948933479975406645458299275176290452088253020974152114459446352630259995268540868547850958984426957648225884644048373537070667270013739559972562574663029400502790715037151296530010910797382884411075814853056090307792569826361680604524974226107479390260808585926463034892471803850689144919417890405764061943155580630004531047903402050447606819600151373497024079856548580716772227164768772574854688503207139673029218771106633706522444814351110846373922563789335991436678461284476321050520637249407961651106828481855592688641345154423472827767476148346985314123458018192893943316145377618403684203051660526386257491567691849156271846726893658088404102458731295277716504856136125162254429632280937648034370401502408768629879124223362965652336071891122030223550357336174313033709161942479051448251092789129216935666554934342661944341090347006529787761035060998080291307170752641391460474324387721933806929534006535384136042841510324603392543286206181790830280217664432154141812369979746607053744578531349624931408958458115805690673235443861749445783228264490399353999320523105875128263388814440941799988592858911686620741133328412709750615427015081832471458362684483188279563361728727085799732774013298332776405907679665670538731309679128940972134224034106562763489385990149809952394735817870346635882182924813509818935357751724782723555630150130202948155290957312991598069462239814204815341391612385710820875871674358635745445303420839117373112418524371197442186151278455271987172310296010728158959460822140189668320036116748708746688598327611937559625564030336042929797442579150185115619911876567425405545887071939305430153949073822930520362854467531439190733204914196677008643941503020874660648786998723828023683798149225429948035167827367627083081845029035996489738601578037348554453795466267881847379783732112772334203807637943992775982494304557731487734352673998012621038913931153956364403852708067914149951566543140637678536997151746906335975134131163254672684986970561669126914003825133877139799290810876429997136520943996213769466604605800533406033006218406170937683568836658021982416275070415867376618366898163341084028768260529392897310866722399994942939807292132853578041698988930012172522587165328676383274880792184105171274801848696798248545083787429249016424651172315742336556432314970040159564147686609349056771571571833864709739267823878258701280745381970076900136381061593185928934191352912901979543533120033617268752731933222988415312098599367900355527867360933760095808175913272449950459855381166447681676920720899365317354017557194849266778423716433091920898595010393401683892759821477003643917568609296348251062818443405180371466183034963369156000119960760690556714448483741893191405771599058819466313923812924098169466785274368600518104245834931029744336676667427262965685644263888578673973537004688234155173708242008608591520447756053528708246074359127982427758817927017607779858166123954537311069846762289947820082964104720716163996222689081554371135370733825527871100516421384438267537352849710506701258637446754981080484528350276382997763805459575086455639565870861061900355130428864828369568581132495198296599821638455675788893064556562498549357479245740218582013309104236152632844492923053528570688409797617925459701705117129745994401962086071088623259002894518727048920435326451905884883673052035605541348893331273281943853933339232151412436229756387782942927354195958134768168440984110811587139106684515076465342317471282154585444780235042507180006327215222988887824620737449836409961556012938725986084435700643477371152630148924925973484461273718230237259133539881093511941569893950098749229250229595487189547168605722212942913036198735003683269196071450486553876012508095814495954978721173229550864356912264134029061353192974538049851160258023236349318984257424154240980899156747175346431150235757985323632564545234492310227424610016184849803918764820042744308071935731927211843541375639138396440011344381887198161402525346404697870816595909708473365203689130487554590301866988020792241694742769900327138561133057594987063688409689768137280990188584751782945695120314162436803027339356970011982316174356641712903810743617739320559558957120457297868289877447068540182655723929326089887053108706251353055436780667634829882034953535391227788375250808042804572292936371478924483903991878622521695125778134110842708798077263283084234837131937811093598083658138821314329054921537971341137165695659365302447290738587463347405912403097299991136910085567452875774664181647369693931078179835235889131604698082490366982722325196261198323499869204986191344647776798010896298182791918154115342237058370742381916670083451547986940341566235540883648189641436828262331415168654724051979110964030248509413784851253124110436870606794644400854849452558754913564271007909355033579252927743973497096392523785048993649361296130749622161721332133423690016175138499133389423146951410793698350464306923421525018878216144449218173978146021387317876022521709820245663156034752681503004846754708633027524693177274308076057982290127128715855832739028863596350735159735686658719239623394490173889001579178793213927664745154388097974902229574032084235566843177983920933056563761174397574968161994833654806301950702010577523041343010926392894112258389130607380176441472808990556958911301266394762723684737248669562083822707084193833245772672367203511597337800765844542503533881147237002568180954795502727912021746182353214196793465705101534585485361878137978080079925774962005041601095103259894441316364892024834197816090430311114383683624494600430500175259695307418483618581824167504644930923225341804195131700271957572526678169940073687911628204560711028840219813525751814498933277039517387826229990478240199313256724639110399419424495902081310865930153036642891109753452364636181633772560020400625154560295487796886242090423319547964488700063070837754571569839418579207598195351829721545661018704225050569998700511274382569660856864999114119457714274085259824033427951174091114468899540735432881799001473635499882583720275215876202372936929528114849081975801625729928039682992996505670176892712925084940338951201302453939641590300422967368718643684953736395659267699568333862544287140947774213836683515230053562113497445768581819310191434271712909764652774824485937980733806345134019398431566454570143735403714407022242305849869050447047979366630210468260980838268438678941502568644063224688096598456005960332297488143417272452693999728169540572100136877350400051028048361993583320663270459190709345931268945157485778330591950415011063371598559840871274597551746687769667396900573941420555770243890001368520778250690431081518347774327563622949887199704713379999841533065280431667552820975285632439210056296558721742258527142013015630532636512679926377285022515803322749269223007257446139214218617259597381127378042635255397437841657639489342537435945596928462360540729753350037438752382204861756080312913730448715790557101562215515706738905392069675565336608824369810261267867268561073263797224729880371505034892810592323696413637405017078597703095063228724733600167070502558141326787158039556891008863812535049920519949170240719326239472425381423658948759919021314262806679217965163197431287870326618679050766424668583021766040308670380099150413649250002699136815759769127267021366749203297442664943197372690992530585666577931304932518402198998079875627903687202131308813879806480382655244032014591458423141959336228954538627696516340507556067012120790097336526464991091197334026339819260805649382892332494368743320413889282407546090947504103181490834234339775734143011120545601774906783388281313178156181733824626155656148797394397937658101486285804328379136228169660440133119248378505210061103932550954815743881564500425588784630582339843386466773496969202429816231893168834593545273621322583383548477306807051418086152000271030025765138717322799865696500182918320354707720891474907421356853047288321167463230292249848735789257199633770789753490633363954926266131125461295403207569440849447817146291066940176915890947463522575327563241540101263439671591883400356738601907826772713963334079680954368386087376946297827694588992795314435580521090608831859906385011667858171600287867944527407375561018319760835455270303298724198098918850916122985161955095920618827648450227601368867376468398255847419281568563910413636935125062210723476606476740251309217882810932514439605027740584429380469306005971229324887245726997505459592957395118584121065378880788578620407345435838449990793693236785098843611343898461489730283925158186181323608777227033909117431446359882246130340571811664287935732316251394452015993163205290673331781191404430587133047048649087029911809520895107756662270928737289417490392162725577384928000460269972060828119121262343288884039486898607780724180579976887934086314820960330870624617794760903111942006189920992450334961098572504129604565061738887057143042280703718550892438176818357253578812437759296308167829168067400244453142807037415985719746655259706231641190840197648002641888892319739722234346866826281312877815353882664939405960916072401111235104486744121975244714891950807507782261391082973218871505106110658072238233361738486263293068624434271633183025493949016137854939766147743854444214620957556283171192994597637763955003021642278026499396459835836496197766991744521389486966952226018033995866254577069933363158046219521157255099403580384942979776235100470647963538929540652598774056946569281690268355966887673042405994116135388784957204575258383420180510830838239922183985835317690571573121425945945904538087392696028055136568666148659429844215287172214125981082288525793656526578108396187452580936375517527823266728270263792652998905690079569949417955188465914656105839348603902289045386899205891856459503996874322693294322711605020664894308784893053565881595855174407980339776049961418458274892443999514468342012364244884619376593457332427958467058627888979381685640107609274364533576319826739899046949117008215975885346000002739302567219097757428836506006537731084290726710983085861884228907441079704351674108319226618462743563742983858908483818974982675518448375070840335550302518929019266550694803477720220053061411587487579746744511135404695584781479428186282856815496664229686788328726267382037562222142236210694051083144939540898215966324472455962727258008708295742537795432376256136641925619277709435037208014209929121941212929247783008150432535476557573760891366138052985151400285141809979583689570881904336668118127775548776756630586586265074217772720356916804017397435339925791649162133444214809814537090999259157567553171113416277517921717875337652244669780660297334636461098659884224020563417138631795562516220645268879829544194480550737168356491731303228972833140269249259248546075286543908562117098082415764790182098741892617977333871530876865791877138030431302929684932551009083357336834632423586940564132703720553095721838806192769493059781752113575231345255886362774288869804707689695629643819256987328856524914108731787519351423047837245533564266299876035113210939693789229118704494486422472938393428759932884086653434496782113308464366806166468187049039518087641696665938367681749842891727372930234282279891230134526513121416016588544687325895030581470294120092045542422249275367212746031492497264219479606272795341342718829612439065907528700448526051621744836226820734113759650656245893276396267825855296910890611140258247940306150237711902003883944342570262431835032244471608846782199937359183793796046433191471187834753324927520502039018001872604635903549746356822444242316589757607253707440725927717845059331092616434396410682775807762333262759198565154229500573037711108657884399632139410739156814279593955391763973760603066531157921253720071992767776517143912562061625055253611829252562257531387628941035081519121624758585291274811195163554304812978533898297837419436896424607421967428258025614424762603847860476582216283991359815852318154136064176552453538873706416760611836513457207629509249021419918471905502263740546528647821909918743221118985339050438721538843303485778688323337806029389333222226073506567446804435561700031151898204537405329320447004482340871995077973192451307042886969892609397089594668160124927651686929137146703113485349441678539657294961462169379150135165124533519250984602101324629358200881829830928610607390035337277340191507821970219200724023005954325909711104751026715162358957410752836573158840630574361902660648405141163511513528134260941397761077332538753011729162600913287606859350698411032830441683410985580195202022658834572250177669987960028585695477686524279716671600237720364493179101288218184606598242856516922982698305304649881543277221618255929745862118414252788082789886531859873147084311248293849840894041361548360874249599732679638310199232278980649482783670206289421153361646692018653659409035596027406142499818980238451837361809886676229509358675315919081639380178190680828179420195279485844429852221020842753055285878923789080167344545758383128376975935402683589131033804344651364910006633933222945466046383105735114483840480982931729903765102930192253804656392071392030764425661244443219340746677620456869156474019956896566180067474795420125594847009377923009696530446561132923620089793259084003112032987853573877787800298799474857918722408477539066114447592406868580665939998653682216459400065085607598644140686782604668439406834075958146049299219966471790226376240747423373655737116344043734726660415629356840387477745560047092535796057953326488303148310547615182433324253075700300695053013413084864361594607842963986978364458060870276173347244423872862690002205883573165515998769100840512232550067100788818044737935159532800534274484410378646960994859754153350264881299889310042219233404076802980328307776501219056748063384571185433691183687874759312720937432711006473111502142790737665378589703070181273172187322528240604913743925290009973566946622300236580876223795368816005336620218825903284386119868788459784380377476215966968997896786906328723830593386128083465883423657787056411450368053824153587236354941665724892188990019071340597560157330496556876811595163881148668317426017704042996475361709971540127492565210364264015317132800223307550907274676358528406239869747076256927883619671005850092133899334168998407353034742170981827659975253138584732510939028439717164409528092271311233217730052347673906684416873357686881483923952156962784310418645847231585895562776318214446889848423249767390227094639813209936465839265900541065791138914885568254380197097613854632979031365690833427752697918234654246077190813645507728298195316525993243656572778071842979402147934226652370076894707697331401257917970461848318947430386973404213634827455202475379837190653770321016066814253290894986945740940512777916108114449186029435703096065056098524049359977914557001490037397051471514352916230982034733840560807212911167798218461974011766958000187681338281349917170702820113496172737666125015117765161885123599940484936189458379340024408788009794810723868079222683983743692993007956542948124891581669244977808225280807323701117053744751617607630050623691283909029046279834872468092911096706370869776442509721393811472416546260538063097298896685442390221540796924560642873560795765512200708895572020969120749562227021450226461555387458189037880315997194644579706559216212353759918849271320072042431910116376374565840962719676849732547327701791411414902913495022450732010043486280208199054691182715425425945725557011062533778130225121664173058252955187791639762747436378162357598617644340691062209138611340409994722933866221648207820079597178369199649086272816417604567740070883311904328411122959168035984572343812314262009438152168786425473210047252000747033072217838420424716944713774331190939957020979928195264366206924668703282148997374847451653646948095191217544040467546298111638719512606317599075150237688847352003004134486713242537573354775724592549082841096541356732350831806570710167906751027602033778068182690460789808332926994840038026410748626251791241630257446287822940646526924289295586404004544660826858090283040673733865991527770666022041981040198276093693391593526860500530668244211270937307806366124177208640696747457148303995840766474301962506247854125704241843542937692095452710475902658869777957039129863794383157204273674237416214813240094144945016507210749792529341240146818670202398890300086269130717824012392058573974737304348634436573413371708835180555013654257041662269241291334384496430551197317903452404634097806864417418839870646196782422910807483124777179980964552446433475765757654010953747585579297449821142293012167251004231259865489007771272907136447719067626555611430559830607083339615969194015045535477995301837229076350302198830753526552478465307837481395851460970140522308221005418915259083289903618071896458552476618128674844558338729949025563864064612612919643528661745532661782412214547125815678974820353173579886357183038344146561602537228913113428613914412090075556381395389973274428815712774532425833806173441358127792072892764342418743791484178476438380315584780233168068924808610771439663382745510705580650374183818587685778653193753582862588805436354743739591043478255248681595911725450430310805957678365802887921919676205229732935072665731387972671798241268953875230669762255379457098772321937387775134572108393887035144547625280113975193092139728322770726116493062930364661311212504554276954138792534217892958503162548904525048484222792648671779860719954279375299002501550788857245195595648706730887120475699782811885799937260112467707795766869113982680289877020297882516924300721882810333790176901725345658192584827612025010243132317098327111445357678507889724094136191432825278437259254748788999188180963828413731236669226451274462717843256820105460521796849594577627559014479840038968069232208795021330009366340563814827735720381422495907530733126233137619776633558662477167285884559351207642408338775804164193526819917177984283456129198952042185880662577904174662018992621788034164109216493639862048502853738263241355433816674539818734387085462142072916529847644878883050031267259499703019915147025194949389504771527462180221955300447348353402584486569357600551191053032398469788034056592269223162314556945059326262171989438855029768973043855375983531688995313595192101947788832590801625861977552647932290937186976366160326624305752213334474461782100256515252408753761653238735002263266656195000401101546510925165634211253764450551305348024988870836312141203729270951207674690747466611574061732914864382965505904972102956496007897754153300628561425539946171759484123530977444086594936423764073635399698720759708638635235315592404827335746888671921100721669949930989376269126182316919515812047819786229512506466035323778117144906088444658158182013514236518333258491180215361098709784888495310600901056793785020364290767312956177179044800580711081758705942189818934027928284987355389113812202244214950206389541158695353036352942325352013246112597475281025356145152901668599042476687870627107664324968360377438552593124048670435038058472121003317561233259852796798691771203588469106498699816957349441573405944844361495325874405350865075727520256821385288386140030841957974841337269438086126389093309245789120896546142898611345214983804023024127785988902629513739661826200876604235609038759181016339895785044837721050853932819226184770078250951865261442587215206721579062099917272556954807415256725577289153942874796875758908431047428937473055981444470488316351685261273670380339076706793591010634995212144316214208503457022140698815990799516144184863716267099603028591696589749881840528827063464567109340584291480630599935209526438076477896336335369241287618093440837103051215238791116038781194901616046271116142136264300775446924588056970046279415315903704857465439491626656310395525933890496087947181253763871813436066790692027064043680022774902250711025554106463918430090120744210969272881635893682393754349345771030516488920235293113909379716832021765573126431873439106740883493318739072909190660323296087870058791599058022146551491424994306057369842523720047794689572174042948393637781990851082455558216907152366574795284966854624150582716877993257550441483240648910770386105170449877255890752523111005030873577750980945918536248363156990312086903332765883140386392620990893694656491835222952029533972737210870458691568431605993913375330971927718147689789399680031998880916373573519045625384574347721687796301164725900693479084248142521064505483218246942592731645460904137612182061164768270808330599260751549371385004065369230984620761066394287571352852095277828108568345691812734166462899591101191232231136908355489393566800143961758523950591513422139438863940532594356024760335902702318480753792690452572705578006144959738411488685643561775162528807195885290862569235295168494121610293894854903393800045239458591537502114991408579135922049079105976189156037100040772917381555453801881284444180305064093067938905223455999186948564760769451743299962049751218048127043703614641760581371409655831627408746307734380945636484769609955117160163777180254031683683704206719717280029467795342552637341708503758948513129178936039634678598333803004342293126300985464020050538263003160627366033174742896852341495784085049156038765297683151947153929411072434894960549222091844049707688601337856586208493969861277379781387236776750199131347650919437763177403328167851795956793068555563006092766339645995263574550391732407410916561323474484379217887263899983458347112708481411399508644028121416929320668176239541724284610782599053606204367090218800322028474529191445385180905689025268220136813773960474316159447717728192498598538104802315408937579120800387741944271015467557104901549842362451358985106948834825083696674133832305354700745968108310717769783462736775078581417730206597935279498060885722770432537267127658216476814057762381938625511811072162548480534941860410945288265445079340041473326578827773294969114638622974072452276677255121132390692935864596027098357299051265252538285485451160668949734411824883611568754958008023937067886802351725100108341230478550606952533728393235397885362519495141363410624296901815967439304576306082596627595403169599135445965946798045996443911750963967295919216657765002218152261584106520545956933381811603897658900329490092412486167183255455639490355211812075118437713743306797145211809596211310595124008028903914179831753469554352972312276928811495008725518325900505690418148538988261043222829496069697543669969968024252196459717137736034902455298514512842600443416790175930720545206483220908754412651027583933427186644550493546851311479859114322808175937179985333245533880947508274443929610815263449638422872945218667705823327884477505544114597343460527926087443501458050553534461250939404425735982910633079495127165098446213330751914335151557480996091789438593988762016311479729731983305713723304495425425439708029544713212645612000490752947148147481615615678967469095848135740194631309906957140262072620736003116124930135423260879029529545480355189826933400950222107308793940014211499413855912703112233181284845631966534007944109478963549264330337075734505965636137661135064480964924905848293501947565580406217332540466928957518633341965427066881484650295436338260322934848898860885780977765896881411066363070578382695415827001166037039654301376310229786949635974703983674749933500798663421392012893438394203716022367662855813692453524141271022888546498207014503047709905195836481274996877243942742160599280281744540661367526949231247238281517722856553144070112676288869167146106413464952519771432871196227925293714574950572334588370641657866667803404920892141151631617316306695116723457887520550348188099324399628042197158132371403762723516431226031399726726499113305191846034074070503271544146013087601529996209324578922476021973346140756227033773106520768385914206483135287096449483118918901877865339540056715933418709769965858028486939560297321091048674117391968016082526774155602106230151246938272606447843730121024800952861217211336932479932954781349863328408465479658400988143832407867820414833260997505791837081474820538806791914247634978056048978738958908879791875591742792394134831129507965080021606155996460324987405607937671702132554576089462660532885087195137099452839185627403545322253735044040322192520964521042178238629010686280507236078539487267450076298736981376230032455722186456285099754005342485783301241809755180755739839737748142072102843263714637836794811070899864886959421873326770787274873095775187873047884382637102188500646226080157497848537011241206854983199723515214120601902517979491836525460248542112256549826185512246143750690967086175694776249008731972948161432376465379534554498910304392198906936434637841719854757396280516724466504309890193344937510353563016371940217601703164065393654876915611500519322569506172649715329674840083727145002147301915574835070430089561390078301479907206474033598961378448052856343268509759199899170548397955669558353852825861917220025275879187065880095899102424428714696385379184772521598685509369067050492186847135575315860639680535192173914494825390217136935789190099165026392968444675282526563424755417118600150093564534571852752732983522093389439421702101031561436197551759597618997317473240204767867485968180087629591779543265120572697413521147338514423720248713850278017366922068652595620573342443708280169615517664659628011134369319255396815107663735018827781813602828779271010477503223539830683347852263015005250060706853025328469340508782868794482692146748163588788518419801715027264993606693848128020188171196788890473459520782725009380624800513344164519967848670822176110939847581295746447951920994082191645247037496833068106928639432376827461041270442820834681617211997053652243953087700877760668349476423211373205905221196456450580163697634551637455811519359318180703494404125669105405510240369604555478726310321730339122481797708865645374601054984241129246669018519325205857502526210554052732878123937416503386404210406602361103674337088639104611344493383073774746478942866632860954616811906032536832160978943642647591750960772475476837776459515874690543037945588105804058840435970545472904504070911088958989892085805640203518372622840104928063041373935079557048373243075525555043957696939544263704062880354661009082219071676755562904800949539077660841364449598386157029733460596585047807497982539545838234464429096016724355961922902180295185663691886399703260661794600527130681432568294116348832235432514165672201702564334913723254031220415675828981477388237124775224922786676727314224523183841898930052981136401248880081777466493717133341218271589826912815220061674577309159169672118662793505935529230902788943535329298132487769192910253631696580072884405018733661391440199255921766500954233603461306983405100305469564530903071051455162985433626758355989658992989797158742149562012241467616762584860179111700701974085938016415604424992024927946909238714425617428672909669420067051920903133820598542531130450595282770170322009059929507057493885458552585724909199948377717787211142048240780795739389333964343659229246145481859711934877981739241788986193571740424299142810603069351309763320238366426792223386638565272868565152573876541839583549137141969882707316396214158517418482149570859508000676049925281823704275892445622954355338222821932740634545612138452648042284147275169114659372227866427669805289946349721485439814073543486767506484958123219737531499110012993753607800098663985001034926576238572087515033800375349256585569603949273762615496379822896274280774607852010903214022225256934853215294317391464341110000526707389471396732701745131605769465462194032358280863874350637769970867485131038186076527007255702026927210198869253276463476261720446784526962989853464440696906452895962560233098096605208323658241980910989651792402838657883239648306209665575095111186676271770562248452132737836859290872341478190626151553547953033367606283591306066771957624037850075662944173297042456446051806200548810330430383541030844538948234486337242410289301045020644948016317177946790491517543492622668374270875330059894618686041474244005327510082969646569367101444198807005113570684506947253826411128100807646793326042810247440540601335925798232762778966528852113165222116457980114261269049979064422238234366667294277109925661027724378442550430078282735566972250640045896489992385946506559527931160645731410285967375949324606344690054708329420725909487326898580660614412248192398783227444990214389851228453423895661344550385596681348306633343224682921832452211134031792668108726721637929784602860536811936108261205018360189057822681203712307522071268136942958868959217683659398160274554379144812355976317641347423465951491781578741270146925255700224418283629311309135362829010467980177015316929533025428675810158662559270693060476843783390209108676721819991900897864374419457903198040317016237844215990495127429175289833478327586341205008851764644211598736628536833450157422206286903525966139360350402850022038472147814322411887259918031189007019541496965883737288778693221979860200608562258115627743079589820623241900208327849405852006738595747433623284690436246893169349806562881744996137570154016025950939477359555715884156224576828637453500391646704893381063512409772050924459855005270996356302066174165847934327227949904726924101216970576263759361682618978315005067456499259891091254996011447716242748146360682900527745354778351991886238335539376348982951782367537275051478408785906174185051490961532947034221469237104252012152443613808282541043032393494186214810026332223671880769730233250652065891609842631529696711400133676270936964959119750503969223230354257158037560718632616249265736806232381804063383754599986965250739929282205895454263520212553083693200682701130686644686628639216110513949288213138473492911357810656734866747822061860760085466811085798788424756852311231361469724915806173621005203039634475665576855721226062251049631324063060669909616686459596194691805467812706145711119629722743530294454394205358853776159133275784330831427554212566458613969211725434535419000779359361841211899063131068268011873536173581273897099169482664519773750495124766255746420511521945898918080901439586100577883979727300713907142963785070070049915065751241777354776483527191782911401278352813475862054628889489384412703984404867880782856263085436067354869274580113499066168127922658480771084953808271640368148439862065171451240811773156550531204495432811512130064205380285240424823292430103693485416629380522956858459230500870252932355850635387303403082404266606830119686854678639084428551159191682467536743549025432841569489572667159748031563268218099724466454327506515798146629077784577487721755983000193809202130615427858579953557571748075012694672366259273471677956380555958050014487363005846062557040582674443456501701633308548046327889485068156078599553487671074908098827575792776062419637464784316935324820360918595683102530024907750618638022744102548594035349448424817275321085859088123127848314097723052821539112919499965119275355595347583440189391501771979521678899353172188650481481660192209839658722442770337257640994569588765721408243907241836070850650935317581764812515375696892248372075504693444902115477538485681152112506255517539363193387262161114874597757160704710124985095520381922097838242355651221051653067000149809662806848472577594387894472593756407065931999978217371667518867429959516792964040623562985035073918338607633011327282234986718225384042520416608682847904712283654624343974665956809113881148279093750664412249582984402012599723290642436458418094437938726893154769468617471293803288628910483667623366770003364684286186310645977791898235745745946368076856856991663664438324218255636232760024439321381437168615970272701307081678245641879630926840137922624238517180925459126646742138213316730052520865433916300984225539723783770287259400714464539719627184100142735623776850514949567587209835549351378313377563141394248127458394222407927000714790091525651392675482936008419029655780574764095907941294820242156296313436924389919270386684272182662519622159866145338031599763993297412934783747180951199498681060186576418045752094732666622123994434053233533360629993386499601358314114552852441208614912169828489936458911534121798948813854189835249115993279863960433865553627242534361536238814329171543559588454801259515923828335087711432790987216219327128307839964209639831053391483202295384346484268849288040984540717212743823626075514361427870570464470242892353539087335995608449728374866389166831902102700107532878714507774329112249970480098088881187833020612608053248267475778949704443012176249379915218952296087153492428653989502573290893842708356686873274134037315462668333709881239035307303191814979567839038059052589949181655084196104073515868168745695908231299786410900881137051675416902681978633408623281072058913716320877547886972907769781524669566350269200410852228019940146676327781899493807553956665355201115201194262672973089441119297829000263398633936898248596121236361819316605589626621868890576341041659829461157974571615531911155414952940567143977290051917495330594934397857560524043299657748675986969010171660866739130948764353146789677283941717852398281959164221740900697802315200341947144823325274117176176952017227066531124329348620246973642768931301483535650125908928802414709689977359057539808264798568230619840794816555288218935276268402183315574339671632796426888987979144433961285655498478883873264374410048137782772360451686156856872162658642709434711381502873991161206815449416710751364468835384098510758886658530692478206027204744411630576157927739367505854655750262373926751931750220299871158645968943916868506945882516868188625964427120367959137499424540043193807062419098006002247002114538920312668968259475347276487727488145433195308723996064829086433580062634893656983557441962273947781665599249011962466271560993525966167126411218395331629022161394842706177287344203913504405606008213294067518421787858252059650020918473905946039169432250095812632304823916468160801662846391282693922037360294204510664865893286143056628268301725060511396440881971989322391931876130555021115494319396183395837130965949793194701659976921424397039357442609714299449089761602159238701093082556015521781796811357339287111786593921166031456367471113101773147610888363946769497959760274491038087777436017639670686581759326220863385778866061444823658562750452261303987528331906870890955518874563421974151752964999669249086292052040715384155409516581060705470938738486967393025777684777367627002696082979447406973741725917768728533623153274836373525924780615442486702550093224463659948491478217050474985040499409906998247163372963975698636530864041044851709544419047418272281987944935309318213932699936116618819322258209199108729208402154428144354506239270405688945603595270851992891379062149010422247541148926588888242773636334033988265585551001089718641430655237410139381820009998000808572894774925388185417234810616900964260933897905616405664309710484058333112319269721112653441486704687249113113314207828393064220347750376744504369503342020851947063254543770618774981698905621509572893320217292664885896062014444536562356464291385607292706411706150027386425048448321141548241919551917600620325157027870644033170034295223492434574022050166599979289050609207014906590708306934554104685886982494766066034849688427175334286730448491265164096965041474787316093269324754178228142591018221006569917064554738184916832018797893821071487961625817342213426516389229174287949494657203945462073805749989870512584533339685350917666081780937511325897562512929481461215590354172566199325590059696767273974090683929166287287319602784176558087735947410033801194009379735924315373493952549783124681648401032612393189171399839662765029668319796523756286949709305308414779163043259220018615123333356237724021086350913843253540954092255958438481898230248921173574225986513778974088483087960869765255865511896154555290342606636515531838188447589107745146999259297985883585249689666252422562732776649675013967912761295130112289678626677736951658909963482063872157890219914805357233526348379449569792185768553563554406863531402229350213060673864854120973047577806819458720341492056325578955642570433946151029955885183640818711318795907090438438605235564501671834100519947179431307247544276052286580089932287105845121998289815411531693084790502123597384958883587181133641933509960419899051620901586810363840766213314314117891755462186596453234038939538152421619989613841767698518449074729189548654183315945755980134259443218133232080594784857787815549669560653966694548698782916376400708358201507170117642682620991148905292339024337778739522588618302898924000658941313808562676002506754950243560187508212916843364820688369721093880408881314603251645016082480691031872993134554770126153121850756768289583930208240298528763593694117438599665392666690941746755755925554029404030871046046280949268400458906533879483784588702865142922984968003458872372172174609659240304667605145038757816565032801767518766928625225942493052703919933002370687080186574208095168566245361888591230047430188664445030304273063128925176601814832342319442174970221863091110504335067467857609904759882794323482996826038169924888330537033048223209005050932234982885166334614925887923036541821886895029929313113048398652969989515313216210825490073104691888907455054022066261736418196229053528569136051024326794694498225356847044728110897881102955712521701254172115865720413914982293476456184372249214344742840707317802805416407870523150656043901980513858229977673742400579132855895209585717341725684558337075146402179448419761263614324536334975840153468154604570347403652361167363037797845865883949030524274811432442498162710622333750462101091600383910790618331979040705330589888458197720050329926254825425865434572357048236896770112084840100271055736417988164177778259554105669475764866311961086747351811865042851910363909781512826928232937944502771989981416636753686447504842539305732034567973746306419282812243680577270279334600192743550081130992649650546845597410405082718154658154961866151062256303495972424324316144834498776709839672616170608454142356313907709375043377101975613603013586118579711972091097165528103745046201684557460601486032291383191564195667636951434198109445807598926445920036619299157348996142443671778929198560263288875746277312890808586375983392005098800091871466336498586213057485264103438732238103421315678398632139642555717939271229867113306563357534981905796673278172236907440089056631914669465376748430477615483355771300160576260514710169721504368072527729191791426023939601000890134572025970966535166543281754471484065755309793684551463695300347041998466265102589145797401157436478179903272437940201273652050850548446415910170390409925936540819560034420342411617885419990045116184483057025373415570028789630627726638708259278538876770218323989305367461291932844318094703334922070946087425714667110105610603379552784357506014859590712429666499566244951666683426801389216674984206875371741181588806920420769207649261736512033020153680093165618504145663661650341327841496895424554056420347478444909266023462856778078264721296093710364842978499843280941558241701291629836748076178528452358292163512891027264163284718807619684119275693561255542775613822196019784628214935505415102436434034263246686818868091775687907033489828098525819655786907873770219518612437159889587766863666620221501095471050751205657090266838311039463885914963067972602718625499316789149476423573757209399080984141332280436052921501222100785100839753328333478423918665476443013561882109597178843646384726182611092129702026084201402151850308989008025671760920346079870424242287741309352815369294945377905943197085225845340872268343312160297267544842849575431083902197150245489094577926005896839882637725716432171829886579983078942937487087390273253955153477584867840197705367154085447104584737319530235196076228899942616737476866092763147340829780589112256819688344563890432190333681949615717334887338932742387883860128393377190911793610852606118483029295151090234580572197952314508431278767016045496827635481744400173281213328454968211400437755338406412596657838334452869764806962641806494500652599621561365977397776505009972763536988060690080531609858009919850848123179756238598440949679953068201894436043057387747960449977097577932779895355075941497415063744561728341993511950323493948831734781689519888599991252962632779202243295860888772106852979042126309119422397604086914003219540851415172191869910943747825869654611640013817549702236238483435422975961602473174151288341491793879169323396360416492170857540040518797877391761674073007033914698354537769255972274181035275567479778590039027695079944417439380607222748769949143907904640296936496893682375999510481210346488359572835065815295238957820355858082089586165117896354982093184372041535366644217510631900304604283110205078816543890372317032734605012694326060199666398340402400544223273746555466107560920287383735278015791462925704250597289513671995852973875405398772388157040763430241725904556210180560447501120406798772366290448923258402953464783680373868243391930339864506973251368170984432926833351622481350968590494268283768089245054717090171740286776056846401430041743012434132047705228294984875658558422001661768915836968083431253264820129100653416343587690859566315218009699153724760082558934214372776040983232268420020604130275872013537649341568156042626817887763806648771928207360636075341758511121874306631315674055680010754579693167468711413766198643726239572073667439322513734607785053672231136834509595847538051034918382553595358340989876452945627078270375753259892469713641222089979106012739424348244359576201235039457490176015123929762219184203476333688375342125204604701549566058302654682787028567152454807300287623327323426109909163823144567956766801297473677762620866363478393442879470497116551370092553131892068446939241416999816669615043036239234275878979387791665118351830905863583619588249710123106349116340349573232066912437841047013474555858290445670572075268893552603429382803808829557601573432624573545785360839042310147002876569191181654779479765385500986942028014060565076951650166906690721992688904284289503671212140299306699455698716140424127983970164829371684590158809871056355459538216538160225146332660965520844879275392235413148597590712403997129919879565073952156524049969273645242915575447744965303243662016615666016782883272392125464339104791819886130022061427850202809499647225236025058912780049903896364212719851202422910819002751889322850093467487175167691930327214274115592321013495484627508323439252032844559393393483162671703427226140337230829784274453425979852765561133473539483664929227913783119594613680558828493644038081937703911412258743471547171856558801594972380330668908580950889867816072588884154816607676156984382477146638527671206347080389722925139768382770024337161304251605204063716452380818264852789520822256154554497610677269148578703654071478922041127528093898508282373401397587152673134134289771713865750036584506542672665818424669655726024528288258570579066251222946435031489170570469088557058888987619851585859555863939308641799231551128592454933808056624409527920586773434784511948476805110082751396512060082834821626928923752683984769790686313975264780706042480196327982331121826320538642336532670393062036997991399344267432565860068058664298511740319764057291895335507431330197461979394274279594556058260138128362974571319183665500908378135577319191887702859946212295511000812205358829341354818311158724777474060063795436326607689158774981994862236892313256868689906703435824746104834132282897731484519403407934569958258783266793741099800027131361870348360797602854920055624729756512295514458726140320049941565342595853238947880933183332874535463587470441252922170789346636038340343025537791312348311700575144802165265252309651163123350358520825189139882372963772259987170118773375083384225906150114492769461248845300507269181973012865208694617905417335453426296328488175575965452855478450172787969126821844456937159568141574758676128064926447870270386130141143421777864265820535470472551114623886314481673616980680533318185544014441391310874358317584964115458180624021954387026452234641874184801125202392343909043804231953362408779692255655293131027753746996671109078057965455144264312461183179953345470911092818029625104789716129018344557830897441736993348389635464004711524804255664649329745049790077030055650603804267531101176881578936021417670507216113270457602606329835846356732084479076353903489516047951150121652957354025027249990001896340289068593161315364987439338307562196483324416047283029580646060215760090438196575160022961233224821616120203372085759041473344081483210950762432065223349840678812802393273754275932411178575181064418925905650311097163588710391436992739702745943927549854197148609833465303950959158320550312600432682791604385760495871538950183011915150727126016185380869207148427265369775499187266827762970462857592451104248600923841887086331357575031997363394382290141476104987823388741583316604003453461840497088718939871025165835764050801388687925579442614805260245098343251127435678641290931549732665757930330451324069650327563848157603231385358177492211988813227571574192720114241814477286092919140354735004957554408026691725252541781697987485813145391982703756397201932218404621593586134388982735662062751122183530428413827998191336885768712759133946625053706483175087123832191470186205840614670141579256172598566842549053537803554754637554347238661231499988173475897193150199804448617737301095440229081059646429081835439393446888800816273804873536592930810779083474778567088854730884609278599969118916494448005480192652737611431093079868391110141595817173592813353380157843661029445306096533244022351691637893719587714650266838420405112421259874746789214095318700663897836645138671487178180226545453869915000964950955485134528368671552364277563262860716786805163278760088028993828477832269988634790987525232191320496361532030487959978639282249044112517273505720246773514917995959760003857428538941829847706213496467899861596022342624998739250024846890209123900566778063895496060207435570412644305324377488292289495302476997136850083668794130774646829084270424440673659744604401292673778833546724667367491563271554354423831703402489153860134202024364147256845573327770917668772541312312612853894046938673968124821256707225242930696142790622841478161048994831036115327012066636583043541431473737401269507252006014742420875300939414028511029000703621504955153138781619332656680835091390785522755730966147610288931500177217598200453754597932735478028563261189051967877778429957303394756426520083860283747705606366930597780121544264676976893242924957233927927088964212882558203747413807667284685717663786794607111607003544202597209854101097861857635797150014861601415072278540319104567446444273690146652877290427080237073791934229079839590368500106912452721770412118149358035149327143552487715417274834612983485907477381201666569252812233674320264426302990132155031965124219087036684238011555223171819268175643408059446701650132177578696399606548432713078010281091475343339480473560189726149200024406429544074341121358795804907592152855787071133422031855992836454519173402028444847928503905256679995049531357137630027278440746351203707928903628910259730816966910849355120847583262096405108106452047826025083903974795454132832147688962061941433022079646412203461719801192870392872321065279348288892474798290071343344920705497216565129579661244475257666669800155140479414085696422771005050976168779413923294725379672669918789444309068132546435293659494249262712148075033368262352875923622574559949571999845936263296219505769715798399636061034189924493359307236145035487066473226501228050897457901415395386549446485291959627604319608875570477313877523343007257026133461132304927801105715418968148554547293963302519998924863281227514883299835397304362358927508765409386259724099888668346284720864436008356992855688280477035740518336679758392827407512165357184009025782235325857307542059799286777435128832994306424915263377086821090392162029836328400780814465986124802528623552368573602416219422642359828052111726465299981507788025498865377974965730062586190838936038846939875506592386005503516571668534688192809986851954636035458452027808001689154611750010964025868918383172280968326497458021119209923713864695967508727091005777646524333345988527199343781265154265415268335523872191664170057142289043032929478264131721852119728762260308079421859329747356156131318502856476033617093756360114267014013970552750145725389326562448433153576380007421455618745336768657229772130271352199772153210266516342747985501656561629160190461574191686916658543643782129395480241971629380822827959523807610532656958987514248155915112179250267881605872362513801042983102357763857295833429414859957280253183065145806829993442695263365533764559681180094868419989752056590426771475629959177811052899502947090779647848023791569125104645206910468796897749639883839440335221077219456832270300431846978808071693943571226884220088223259991262512154864347102444004554514437082103098130583609245641572067217673365831374349627800939321107638817773298416694538832110330893912841441454896830150580661304966493558107413379194010095831275574955858362865322454463911928956287353303710321486465819933681781001885934806262817286874958948634684907942805910982910408781100441085905998917091957806811525601676417118786007669373305926586741380121855922875307565500059709144816192557401252895498452345485147035546319847931436761065070873118086993759243096401194463828038039792461858532487763876557002477370384569605493410966820433961090594852401407690656074217685288721066687725126769403500757120539225737588983833373827486879632443932459357146900947871920726362195104491019063629775631133259396862216519732808632335167019603075501425149914497994777024906538459304922297046737731792739569571872109475769531271479518427724877444275071734443160480625374474823943648348653417651131799868085084320830918004278281524202444620257714515037979461069460308683277107487183912529388384478413168544174063417428810102640967652585766493163274454164150044283809038791022195947865201756789128261543336867482226646957157230894543836214535673867450694641071091950309862788583890876985976473112050626668048922692713568910158068809970083566266977895981269832640146041133398725531308078500481777180576697414217038156534698679863444406430191255559467176216832397822166850648237624498672292964486271935858381094284691210081163479961446826209323386842884926131422153855057521445411572667450813506109790732400787658804796497933039394191137681376542338831196326504352355149522479051932074316111142080158593300106543494342151924702082649061470969124474841331514651110247238113426136231618860406686210743945074446100906517399777341208046472776436006019003049821752251220987521045159007670517976571235145901920510037592619941580261482521186642494332833752772344190269352820625310800430740387429326126027869125104328307636563196554112878963399910056412466223968320531180325683426906389767165434096295691176670754819434195451885420452284258470716460784245683037723422579397861868199346907186305959773122859634249353295897867231482668504583261628643926726451597061122595512664954768390486247157400309049115989651489832627345131708674086476548485481756958923627075698786050089624068704847056591587910209550926195396886192444884921883219594507746873988182514121888722131061705750279103614458949795442594334563631739055312625720424266235469531705778793210651634761677137582000044059283992835006192004264544171013073520400364161748256773137021931950875479417198581323983644712415746077846406413162704373941389089538005535683449828437985273171745760131206984242671813565577401193663967479887221668568518392000925730065573268384378852702960675135383737647022770095177402656964571175408768208267810653499787912874073348512637080232765735123729194089581000911604689931756136694322197742550330748696354905901924295157700553267220108496422450612394922753261520254791689757326612546432544599425925200997994684244674532577756331830664526412110797720808984244262780814807008152293333365913701253317806539245720215014464250141609885426724558487883705274902573109331897835173920031527758532802882640766915965276464300628149982496077242594286362307428378377700849882017109216628419389287232175743759039293632508462883067171017742898397583692657842561851804644635422379920735882852735845759793350268229097184051555601679156603395131116768354707644151026433053358472827870990224175472543260286129002208188492782120701030052857633709985795190638411405806968700476635694080252565034372257227212412609598665016629795857687407010796183881935460531635415100962425856640295759451818046616390361093224641398323760872036322005863509874695643322168706444976392426965011195461918837548575008116315964447750625366414615702900688359920343909175787326976086633133969550124971896859117912072895618498246775058683817577350605861737101557363979652102992780948451303390690932522574028153328122367000279465890083265163562690578621354185261796535224358048928797615563041698835812367587621369152177270877787439789616719366558280138066645300896668756675004341717658518747728078944484565120873822332577432070181662899174391461621696181797117141878180938337150716219927535831826253059156147669501066741825207025815789474838790232811406619693255828400441071979614063911855941346846134436566440781656402894378910427878630445393906390448017536596917043006603971542925331543976663903566634047108049605753964910386044680214193209354402159208985559430450633404089182700235300634243977111319942942828825825030833098120859910995288512642480070882832126279845370359914395046176242304634768624520399775441308296387490241240809994293307507037465191648763895763690957268720024378915866296662253044801261174588255694559807303702472536237128706079567583480554777594412893560651170040260164099630321758068630819125856817174228095995581481739739984703459308043783049970622086280922480295838450905185250874102101672284104827226958015546239517107125902132204565473347101273762819200416832059848372622194563484502975778615474528284382984372541239415586659686861407701674013984168866676751093240091052164162364652380542623148879164469247904912785601923300690641527609298825646178221118241752240716059838353168008731165319772656448362183379398493953496768247031481146452819540695023466892924511354682983058075923774132854698744197809343665096996705147869729105945060862512958971775510641409596876298201706606266593834638297675716653344402466159073047847341925581708204218473091598103899190305707306439113665496221102241479542896234985192596186418580413686364343734560390568405164933523641838699757400316558434229569105380611083293583625100703507130164035789856715444819349701068308171269779764154335215464760276052025459840532356822501904698842118678552357013080428624187324915288090521299327209906229183872379479919640776317658566274427681400190765199121718461199494822038357922975875308712481731225072385712398243253770465025032700065776613536981880199514748245674145872892084104619552662767579538049464825470127776406965466440939938395023050026056731337167791648644586485217822301888058381701425794462047261523323906511003054218342261469920309658650697580358637491427873358961201329307512758297672844488389095807084134281886826010926478793014815231782050516351750653911530285460702793368748279404231641100493672644996754042109525003630691344371330143240664986865470101623673170700356979527876892552972668370842348609077045215147664852163548588970823498341888473501963578889696815136138564335726824349445594552098236650980360952198039568160309119508469945679260931898069332397989991222218381521869960546722157351104643248358308758068184537983507996037365787111668617735279310581062861809784081716253151952680656129847274006328625348493006792529515053264293497947397618319492934066159164681187427271200861099743306347530944059143683481276479109092880122044427813519377560634052711191234002907372684681580585853349238455692290206264437809474973778187224720110653703852149610299936991420762297775953515409364439977000289962775072005470443667785119803606685248653413084202549963364596057013490314818528728498405508611330019327615501733957513319490440369698262478844178586378934868059747556186805714903260327857830445494156770103788603762984567330654978070149927140932374969253135354030949077829494499261833390308734297040621822616831846869187166462397507716867934292381984863293302708852465209332392602028954834251623275289427324861781264412105052453064783679219386275292296566287361756150193193826866720259501672758906677293252276811785475678523410829846330089745090143305658515502062392885763337401465256003012280690124078495510866656940281192163473369862458985356360834308621501199884136853736836097219599429479088664584403388900510691673484630948639560446229568608636941948605401627222401827677369621207286850676642848214071290614231733932938764926324159610509463723818688020075935645705338119583906485273986773530665406274565742465674666142914257363183130667515137856811726296003414638131711847388934581736993345299006181776519268180295109760057460809228246109668588005430253775587374727908469232562729007433460623370898657691566976561683368467186583361799462119701565323432922746936073939738282500890301304967307019887419461770181808649179957873834098091369917823994861814713471617863211379031371694081711651489865834319495238230598836708114909699675045092418386485013140551592952171344336633260680439457726234829554025085775971417065022489320757231330096958245049869071146712629983234419913998452955412958861523165487191892126169597905079450200119436107591737497914146682817728638918600567939069151850670379952393194444744619399679763962266280108607306033037956127889471942493273275350450542605215155391190873485600327112255323289898467971192664438531868023744877506586831312973889749322544737233584667911469924119640061450940920129648754444091290776511894684204617281978124383959580191914377519575768138682959665633065781142591729229897476430911518782776002634478481686441453145228067978203855082395973258331239440681672732814686464411206648010682726933465795706440184759678119432947244390809656290790925972068851776851209037472262182962224180519945770601091047455062912889718946759485384270005838698845404677333722112094255651295526291660460090855955227155836899719169766917315384405237103762600900735918850061564240959984631954558347350342704176561207099253986415238254996992005913172997781384573401578496977555401364150627595486471477531300174077007100480105784409241377774797262145633603185580293522393541435475488729823970537303512427086048941786774064861118253587351941212108799706131067370333104883387647434354442186129409222140139176215548052586744509990013784642914001525972990069532436669040354638408093692304260116408964037637740015246618249492107785349295567102621717366604864437104251361037342902252440821257335918454749741748134865184141647127857549051209673614959924972017369701344229200500771836382807221584562216822518308078336920341004334382438270055644018460968938665242602871148137937514414567336108798457473338301959572714082834594322060878820822220146439703944067070891136825346683255102122319822901861746132199595176197828865231668780462005094122084731385545403430779176061088033516189704511724172143906182965736303200363240398732702124040479535709939569870801585090252886411553562010551939485799928514114904223854262303875569881185937724175402850671431466280078091490206604754809146046603489078543713922559448925521821906574871609697148469028618472717274508774758137133689585765019503993779834765098002753407797901326105112754983728770748979637133704756606558413994415479751155763392479516126563217919084311935158701537049786113857695343816865447016843992352068724353354433129427387839022521441991770530041948703885620889095827655011587909902831657382346977900619473064105941572036055688552976271329057160801307176411144698829123126714647593596518388189683531190456491995172021753647894234750882678805337451510196464566571655316902710909343405050337386047595847927189568961489150105957172555734998025620805603758190272631657179556381777715381036329982743604899762127639711722297840282447772810091106986351212137630897016498975396013024525825054747991747210903423895949224438511883521909658878290559707798961698489588077760314008460183521089432841929443822988015106611834228354448660695269900016133072625527546882627252979195093365183628666123481484670737361677495437182492808515447133943105887569161934333343922912673794903768847339172468936763719032527903431152561303139298831592892041239196336908002414235129161801038007993327008848936581898399635479463979191892351720386001531232715215440193667610430748440448791059334334798989177345052349677894227443467268775278363229688702083126909840692785241477662122923320614626854550722033067174894224549137901450661676653822241252192513874228736427598503317925564070928270067647201203234395010057952415428913871102157055826626271858444565293783677798359103609987966763045874187944089092476554725552036620503488179377323744789621154698643024458869632803865043868535518089441578460889476292194999256439182304661248787788777939566588667098087066156759873329886834549482233584190067094582301985414283827198467114228258228348263661844250021948781999381794924034203300935739598798416035546871288912532314744953402895532257655701466052811073374077437417563708770305724705775832117293592172552036236484856877432123014346195721597517581991425605793665530227780660645019173721915797464404004533727126272516544327105357955328157933019028439184682510640231596055369523599518347855075791910607993807928219609162394838424998420769962141376670280053726915945534536628641508081661048756906185694121352166692357855503064449470863465077630462798157240886593110934883984014391533539160323161388507634844404677159802677844595312842253315104558753387656751103950761356503670530857708671939643648874897604351155041291198595014926678819242659287285198213639817609947896939937144399978887141627316127174094972243533434590927198307307347154657434917865367337754384144674031574892823178154017349946046510446941088509791533256048782567434531865828637379280155236577631625473766735681404298578950365039117346949954352125323044218735980860549983846948224085922427414997257332084947614828796206248279650487045792171253127710504614132091327884818082365678832762153413645131921358206744018591172637554272559260590497150775314630541037481111187217698625286949774778715763469729473415746482693669472351781785406722509907926884442667247959753413315261918387573474094623582215430673993097393931267191065230273657173315174639922867598035318459064883584857357257966995360270919095897296324441911223275794041403369017744582730061494642441281397742063934401801378733059315099039841019681637570689867951766561786598238153338589434380130303095418741517359304896663420401128338409230430100801026313338306972933891114749797300627897666235968027064840029110937860651188250436898660836594868603582544912064413730539771684196718899428518948208924959876731405143067465941211547633507914520978288967370251053989914562249468517771448606164506597738901739899594177604464340798712183954743200805466803125775105882046652652135902654489002809616224975064617883350847186794540415874194796712213639453335372574857066703113764585803998876373281272918362468468250421858975432334229647635703217820976232064892151629197821795235116147065564686433550370125329052489874716101274540985263176033441385171915068071623836081883938229062314930784822944988761185158573775270084930468264470863779866961091932619899404316487391670956734977930822591864646956611737032614592088145928085869947936167714655951617306292925308310072962017399944279570438808662253907017115909072796789533828186561003224427637675107527062424661402636771956863589937198510197112016988576118379235217754332360172932615365178652048839506794407078367257741118227225319302988804596866161032276349497775275216109292576091075607080296070266287057043117176333805042952472113102694034271511784022837071367576536357643412590989005250257449499286049170755087145004615527726703421174107060919001535155170054168372270756217772789102654226894081119062372879278548967148628534690993868308340302001153073036182678691298021677299044643096541549156057659594519686176741826628258181449542871234875242217207721350857217174682554777832001085959468181328107391191195268564358203959260034067141720591011771972685758449561338496969952718736773144337450569474717427158586206420216568902746769903629043207119904490274680407653598778280533856228825272595607060643461057683973759012682272478997190923380382855200941469623508377846943450780506618558827054609245048763206983623267382808412655188103981657287395219050279748990509619103024195969964458468547838031432276094390336788236551189732413206380769176375309845979333034263913837056890232108650580562684578176542639598195905889756023783257175221413437967593538461549016887561857563143757941211516774652715570179096257350541341370751993813064317457763854498965848847033598749647368861160220773825806830702687013600993578646802726463740748453263448523296743738700480881208465641870885189014356078451308443834027195256367999575469394011716530256328522447175335038142552220245709578966782632368333532559378095910006170482377202201764477855210005648046048914991813238965428680488088437018455897187287010213197858170226466846870515246190621653693876485407810619797837091477886509340506734343463327344794925315536671367481946772450470414100044260990879867644689889694234679494233549384342691982375703321981746334531691958155657183255477947299617178437637381928168202734591440714490225095367982584833484163170787738840693028062060379962441953830348173947090162298154194808335274679743718691192266216344335261219517251855492259068715221925084104987355452244226865850152949069397844642518003509451824300225596130762687429699982565277553426518457578850984076949160344285109128913969115014131430952323981751229650938769696316679607466019296416354747179661805574877343229473997936673154130859702384770626517378028687353500791732877943237315770438465738380469127676462384757737473710464552581317736627747646359254416950405141006638693760444625096032214524136280808214080223300751918492832623506844975275119536567514461707703484215274878623678010420169937092353667004488103531445910727746486984806509361461665142181607601045663675528077786395953899276490145979678752062549713488842661669512562750931098574894607743968459479183439490323653155438522525450755973012656731634439177516221265726800159894980380897918490282026515747036356718862939360454719537264749506803982031563715743462296280402934816116097874229611354890491164927202746592905613042442779327418050138399057221669068118507816064639482326273192178770821105184184553642089610956628518491471740319816514623912410877746138859504818442924048081404551932774481412895049882175766155179276778329856880836360376181140532887668105980106292458667479629964433530998332384559665282215589318057469472750648305110228930826814137766940636823245211999524375792119762110958056275267309169189199889648532390145461424835333601024127661583964813590172967112647970704122786732213871288244747327275083372656487284053170986768985451853290027710440755290136786405094966634825822286873386863949141203841801790064936816773603193396834219060157989925501576463165566615187396784484102674561737226869990707357029045823059061041208558246314316846475678398408637280347055215619861783721973637914486269498250683023395565379301381398909767791700484044156054271182800814850713526761610472830230836045272026719348979154562195613208629805319814434498811800147290214200244787850303700091551981389818100603633441771154566583452554579459829786709006555910060790733048237552176080538219909091228044876773668964944846721369809729202211117685666042214483411498536335913347580895959121990175060104471071120346970702393272948592543344516634197120277983301061935777769826406054471079635497361283431955861430275597250389060363404479608514900067556290467741944403213844329882322144920869656640640980021839537164307550171074818052082524019000838673991477767216007195573399460189077072373073814435196450332364946613240286923638473130573039810985448383553793545447515206970993203011141827778134939939347415684484716831421648172949518805098244859271546464954244018987194640402071436787205863635150619399928187778562935994216260811245886296238301554454753005161914910148546073614250077082639149501669374938539224718200954538382058855032396750571741091232170256712080632144399059367642205138125068771698952737173502731501417769624763991703707474420886025580916933644481463540491637572887567871409483752570273581362895763835546352572820500439594836856000565429789197335554768483135096420091064538635939559869760622353981825703296948986523521950683520493194058283109081652594106529675374026496384900012436940281760925525657122683957194428856912503281198021989211651637879402695802171305828306783901556085652108483839475643580878270397472200339914983408392838084314136413428238398256599989954634522254053197698126911267530027383685129262596743226308898605259752198974317443786397235516477730221181565067338893528543793084637037260987754127834780501478537736554854275916412131521063704911420815344276480568879663276210671085866240205235128038488354524282379067826909595464390598186255804175406436616587830540077566067062257825457044594360975477377032110325178596788846412318052775325664563860387116462733544212772467664984724734308379871961317977026934382693084378631147312057924001964097218306420250521104352672326999531961106681074177848852245303032768824723031274732479387593385700608228589476503213400669428956923708376457283150957217563053748749494239037564259029859798940522745643501951862929871717795950781560171122309143588744782368980908990611830293693716776638115268126631657019121625135470188200644736347424981702545557489527153302404894213757000137199140404324229137920333104593730325923880305282453508288217684007821610159773297287362166714504886634686310989045877885045852001835676186496465648354273893897134642562955193489669092685167697961905091386001916351712784398782399396701771381544386727797273581824827315461699539134541606298137073746114087333551451128429829354023976613087339413898263057175201444896262031620150350642651406268104220064739825602286836855002039325718333596765550567179390489457150942482646424332204469879622904698182057869516048194860752602317357161705671566713396144026033442184283488657086498344467704693622058387087861323462722359574700868687770178539268728982458335642925799752383938860522575157477685883589402382518892309172179912858297247260995151182797966460950076175632700315924644446612311911094661450054228780335793682304218971074346845376784877987851435138281735508594628319726748812293738081185332629603237616610389164545283353613632473216611383265402111866982783031161792881143874198174899969821850797479440880668645014000693901972719325533247716889529782995937693841105424321434566052081771887467323571241232622352384368255929538900456487428453618557307539679581926882171320266279209349388056347605379691271710398305184933940295715178742061825922102767508423950619801028357435065236700062686871061352888253024645370294820294569297826260894874713668630042470668824820754832639605694301465526949560039115107532278608547374704581659513169743655389674244825536021717585296715353804518807568935745067975837376516432395718821837831405500152884670436100839703305678657492059475524000955362216007780526280575401441156454402688082240152982179966370258797533608645629646623228973184254696299902279208763526967331119596835673839070015781976523666015372408500503870970226328275621102154684526548915526519168115260228019970629283229562309719463809458945153004344577631362328734243340866727260776359949534953614062328996437018002226976853997607687638619459241245159236832938073657973744242514119476393410038279900954208364464864187155883166967719632905767750158560317286786292680079219166320727070069069460363855694209261908116743596461568969232050042599343552385215608382366536134809890048401838290841800059322986651287578195818049479962857953577125605890366126856329706572698291030867508728489845854912318627938110770551031463079439237672348243964427059692826111455670797530084362230775219119290888983815594373805290030773121779673026825972601925968407225561438176862557936926385750303067975901608984705893554458306524700604180484201259531044218676221928984649279593053136568797754722344928739201323947460671338940986233270844208189631951492348406614944602348385775964128059400839002713480149449544325670000393142353798919307329340532179127214899364941258118141121235691602045636641447277326882540282754973559723372094589659260507056402193972663111463019302282299293829513186557578413965042533076000074302047537129073164205966547577163653525174346114885161182964339496160014896999764715014332758026749997694793549637524498550500137921665365109820392531381036719513412433216599627795954674690563315900542110267311281416304902930071472293582741992194434586618671117492416243312591823928021619043252079365690528632427427502404704816525295939771467660198533538432324822688675727581061963272243210891762494197090022517182444434401295603931614353084647725317462573169062106103257585543377926608142749856648756982689990454906538462593548496172534045460282554328863735527221538872119058093342364698841414950823307977393269993493573337028595554486411594799833720780247956248522174996087436400790704021353119280576010912607347746592440966461396379739275468517983200528971898731098496450456243987105290318389146195343869996097558734245778815280760254706429004213367842126330925840248759627617584299982444313333611002213646196268675045318830646433095628679761124830508924615411866537012071628507474477844344180913645300328409121836911550645031555237098672698930165092113394833221347858919976910935062169837255184957130670453332828332312115421181255445630692434984853887667734699303975207407185527292434882254344875833857254985118568395388846835761670711656813240296531212465794112995452151358844233844574435882016371146896232967759101719930886071779797595169624856212780195731875407004156619246089180105806678028469852904917367376112162879620195797346379211380183226057603764376609605051221366003475534673985278017086825268765167908376482240182072329431338636716940338316780609223626739441516847116808741701275635043010652928527580529247704992092436283623883234354081560583947489494503817689722685725751147987896655873785272818916993487716680748732796765276522756168949051688960478399710983841900486218016206986751440871373078885440115077741324949911033242964606100775816397801516621302833955336031065751792323385799514636798026519499328064763355627821931949247331826912066960102639065406229034812992713802067821386803144938577269167831974103374268957774028910078513776744136525366853872675207476903949552893950570765368849598901522150071091441593026440141538214912762804695684099948500491872327369234158634163495192555992872585116050777511975968847699828382547042652503806996832755896543318577963066090407054870163183523974280618845022584630063110860695399773325988758132831848657346850730507721558574744105732912435585885373288539596596090740021064201291131657005016391397052960117019470019481801899306787438905046204930646528000390725177517858541938106481559585400606249518571029535118982938708436073793533827531370706893650654746409746642243106772616966823905367667241862081455485838425465855950236968815893704678427504295214413329371028126070648072363550461351739905086611823714039726206406329224363494116975122079736003852991077914017963945058831343021748574134744119357711905539339322536720127986042651691235005770677286409250898130413314735522657971017642280834448105004643784929330714907918745843831157313927108602352830057429474226685401851241045093972989355447964494787271305489410194136640011934028655466187111988791011144792529147081117281344652758607799652993248325635422578329288638686275985535649252895102097322973295015430397340555359847971928627371616059789719411593603681385550918349007718309040424630671186291284081802646627079481054403735681366257920107866694094951185072872003530251343576377261196605184264032605404220298944350577884539061048043422527813377507959170465578892934584593680969981672592515059013100326002960472426486079247616655679693245890313727439462438413848130060295943342414150373158760264072685776385857550494485597397174955353195136994637266477878749058507922725485631280063435936563524031202962890779433831720187537177593333869704860536713592853458709720495704464713634272492822738818931452469928415571226323440904248172349738859615554777632144942995546797535685708779470834808002051784058972274039291261500375375133750766235921447446773226648514228042282970138111176166414729733878259919842511788364837129324683122563978780938286434967685182739851427038191533911167462815446951414474370978822267923422365651517285539242097779521835721255313126050017423676802687558199875360884347857728677814691683106293519598269491895152000870120195791809779027869494019103754580104721085288284161630290983477620361209833368637670602722469306634673898287000314863152259834143851510566862817777765479815401770073009603282355378734812232459359874796458022464431836566221840284080437007726487691153888235138698243031058354512853257442869436593737625224304337840280071703345067521386883442735202149739563044553101520863660688702368861948414644174540256863394063360716817393949973764631584326070484949455040156109321484786365322009682726427909795355199303758673557104808972941504061873022628946817753862771456990122637361765031102353745484127457905200385220703317628754187071213336130758482750951399848105050345594822147588247293812772247499047582166247729420219713113955210936205584833175325361676632841844779514391569721738366213593894873217287885485853430699769839558674972342060260506002950710373808797600407531355570146538961289770978341485056483244487077576332450556390165325171885208444675504880337286719085090300835586134010471897391909056158403584739976558280557561738272776075652816731888133855231947024131379781329868348198083930952297769815775316987681746821562898534963600831589398654408950570225399355690295614851860125709498527675089373221752749579107394827569423806210815470175462235794755830940372591356572614168295794230427600535104574049842893789174021495367763973061928879654649842812248717482912973178753281971309365544931809474890478175575473662648114606027123726658861736231873443904752192258348181119622126831863432686584415181095086449476230871290697743124306443971329513577753781173962518001226591725207169011521437559058211092838095435025023498991045768091456445754676969869857173604147923769587225516536756844488225375455521475694956024438453861186795429268034676429853473969355158817707590404495793558963870232144126309144209009563081537012462652187803446681815033950460602630720305535936282816593673316265624247051119380198927741851388019659666505858226563766572958466832671063503115034518291653855417919392199474178727180562341066492832718149229597271659247687353432465297899363125745612325154255361324858490873292353009368084124170289712475288263497471714788770579570157725646408305098140783098319124468298014961539913714394331103635388119019685554234024968542215178509465651767781221438758309436987329438570699691592209214278692261078319916977589907506754012169561012361248313519842543935568824443254093391914211258126074119631034485908993458967610738799752416645299976157635393198296963793566348555168909847890075471387254397887208298309698179775521804818582168395242439870463936475880201956379936569598513565271143300004276106615487390724962869285592261122886286047247564585450617199602833704671021145273710277928992517198857416896911718377412574507311634957391259684812203953600821158582423950964887575895689535099884109971705711261501161151530641752330969362980861805192308876390638763742967008520131733533521629851454061680724030545580290802245667702257084074343644886000205441886705090426280561101114217534396662451634025905427343928725895369205455481465125967254746466083811581600153348874124667378887820632919455400461647474784196544534106174153604607988528845816649752968430372025069855466583761865729552105242224473098318423626279616455777773049872547171777981732757345428864985431170866382088477079557337128967536448672738411250841941295654059474079300548682417339312234180979605148344534402566771096418235474383264750338102432611176077533144383078540839901766566921222503561604068505405512091698294727548425266234095017267484729138513059131565513421132313913626023283127748080815784759287577328792950455025101741045390220394291186260550221752078566465720546179769468580142221491993454421877200525374184600423897772914890249472579215026795431040465541339102134916527995534404833167310562826613267825152994174377350185394052932285317885241622124333776907781709201073859980718540874248722463795249621005089184909215262960178073445292076880083305650546535218649127748015630616877634769706615598690916519693693518258081233999785143119994323024669583334046191491941081328241923419525046529762654042060421700480881554516910181769261783720847728951873627439653979839703944629782524568243763292639919981542353040079238970254445403217005868104941778597210440520406357178833308775024360005174153364447240315681271751008713362925543908656543733111171437288976589134828204597766927684161084519580747471136204411577873428258433555862145712970635886643243848411292123975131154463940088509373568831866901684492277992805470290039554395710874042438613260519829379945877110936105433276138905536340225917778981811285189836702593501796549233139495396280577965945570926381471277025369267226028872068371439401810380937762707787048313547306807589829952210096575979601472578687864562961797856295941790957653547918196861405259313935924803750094301294234844608692928234660934079552251311096369131139031899299287675493831858388634539147985335747465308414166531052584153279019939464675461556837591580418757907106780752544727042800212830199229939473286639819129404871792385366995424397140482967775048703481398211374423688091601591603346575111219256452094032517513157171124123581321453717526017150509085471034332100748147792091883422950399267949490053844993890439833733863292230608243188904420034154059743269598614234449072495048197753099359694198938534296567778791415666024749029389314023560508059313188917213321416148817529029430386295849305332708603325434625109187093068218415352737330097894285988180491697073437119929899606453904421978443567454030349577104062427451379782343026411614312877960869101505299486184173004540616702001072268080471893817258786758233325443920026404941066315496781168077396468152157286297097443883250633965133273063725883173800084076468777838879333222442916984044060967142188527926981664356422862097291344921345941571056264185141362867689372945441848904960600695912580378656753586235922530504953829344033093272262599963327381109719294006362995479098181998305954214096955409155476527092886470879808054539289782996506636009064526513352692119856144382750278202368820195378618021577670728416056653220586634438786381155530391831043957462725878374623317316066335006880381711563057369097887867569315817755660070305231249389832724797070906919657396598486531014373049208412236570839378794579043896364873190042618184153128153878792904581287295175353740168580477866704778321697876669608251153659871929101925125823293456831104596344259579060655242559304170409388427879963578475104177869116132081344618248373197786703473466268572127765116159352604881420410785902072604366984013260545577414524719634720064647349758461253031490346867669743004518098136877093512823590240380186270739106974339260623343180589811735043923339498921067754010614882497245126847793920708723663480312244774764186193268762985249185646480670739404432034245533995764621978059842331511809955044575651583574420721695442655761254407772451627024720562438730798268948558861996020573908153294469478108167821891602908540023957714078503431506164560403499147278896791120030743317382366533798475178003525327442501992804919661438531852407199158585453132599025357202220680702318102988782913194274520547110121910008230146628601335257182689639007234263233247842084396151697413894322247504012861580873066625650572112224512088747801648997879718542668344952006137048019002629510075032880768342009793387531006088288251764034430252686304750563827804940333823917744495827045826500714481002952668099450049097626274810443827200458078529336060160446782757010225708791590910352434328005134908362865068652793998659384061153572459970065165928231048528227389373778905364673898048260888704445779291113348084220224211620984898200170112045706829163567106640053649336904450452927620209961828352057324050506127250447114912488171437705114393782731953917157606170233474646608549246866741978453840314442841847570986141661967776498453389257493407448736709127568742863724260495984720839838222699789116174596361601183310256348701551473317628786721224875205597030905125667112004114662956692719690550592397030937877771747431632525775306707896248874926704887674970971949756339879797531051569126436327797290292712565175461207728009271993664276430148406868426030413027307773642556917133147054419749342683347677111186021499617135802666942070487950070484114383834250990361001072881282081937136417840077781020121674234486722899137839547443622381169910320016618223757868998218098955531384584233930716377092618866990590926185326710846717286897005449832667542932783354395233111359503087204937816007230465185991903587191161118835318511460688632356704010771483030833265755713034620399396652871599014092648458170119827051181496768070392104189865308606275279546669119175197593319846512333397303768399681624493222018303703795844481894241507633855776915474433281681014764631625663372536540588841659040737096885690981912024569594140925834571003852163407237922002024475308587322853937908265245458628209569999842195295874781521067850790097771469388647158542403302316711428833843037220649797121563281798353547737652015952087933012310782877740186284292083940074924397476977910313633229457039800010553379311304134314566593720423683022541754090150457935444832925328704462094658293464233617641770272404620818703295094788624468058200473156174543604275987352089266119437309586929793713764267202711035512072748022374902524792703271816607331193601899868917487544405633076697308017032062755589843508987527977305980084487066839906123279298799884790387713673463128330214449789377702130686986537459030668756304684193117317678057021203443218421570224487101228315394898287898522549307076626206757268172766428230853212218481013382819681367691059828209988030368372744797886461101231382260138687172792086295127046894919883928046057932235372300146742668621075636481534462963180028788003959363408641369314617268703987299111565874763296492121903154184317273688367427505252670711677328991610789113646144476187430788585767626427890129926025197593333302145211001460442383136088648251129975926869236642274142366009203339020240486899918724613180418919434788032342674936174216365899305206838335730905659567855753430005228227765196135594222561145451674977070280163702576432837035452031663069870248077359795172059376850927231708814186464222570904790145952206882624584681822669765706250643887937797947001851176607471955456153412826874950957457653005203963073498349983841423359762780583389006444275209344064914805347845295244842671455724235239214233526867170096859813863247642913281630581809268079787960185675166541299862569136372055990524317882452248895176978241643910744399541141480899457968235801831971784734916045162687200869693057126071693722959703351313228289852704113348232166430502834564421792831444515584941333449229182816483577839264414448847937779741318836235286240055337185636179690717375720652887365783985635056847258144053723708900688070923093900961487368181421809305710004564668176418662385943819160198593609522521269352132726143140135883451492747148585850192138289428675998248696252100440495158048007684222639969691378518120695610287154489290376793225304515476358194987193685219915157893196165906329429940172857842746748995797340440977932770447470865933892326716248437539304142181774294170520530208165509961880107994963390208735426244591112340507197121781380129360401179112128411176926922259784077180500625564822379618991144421727575273804263214621662834647179844764865023199767392514436326812312703664773478532687441999556498579144077997482899198673017372578514649698240628758209095336507226289337625633612715697142123784325457877761109396827738805430537980408140382092832592642128700559139766993736257010122296286991700456045944443484057928615292144966894193286644285102759504049462812415142471852548096833202710503709261103646312418838411303250842482096871521001491228186209450161657417801464820009121895092356873273889031667596146886756215038939188868933483335533284281837947273888082867527209039952761850364001531131575744981353623528694456842245949742610027844917652642100832718385777045600140921474816038834809003236863937487234291570042319208584206675295000853056055294492036183568030542793708319826420146381151497392876560146492569197802403667007911783606667587898278874060836430801670861830928629652658560802164259075700698618939885485549123758365646490979325342904643116138863597880117485717190099609312969032739499418708765052311553148580991542026597884592070172818384208239736713716638966847205378118241138120854329871867018855479293160983578580802509434207369914765067988396348035855499911407986714627029779738789014854781722483752921975252679928403879126308389476068100034311394583559639023114561210202333463952809432506717333342955759526478765610352888482464712806579338398300636994667180680341605447231961291810375500371689523420995573928324458322754494667202734364553260780844555472551158943591427837629498307926831759548393101650900692293532803759641595741791651507104335798797130106344747360558865543432987946537590090056700672139829136860486348848881112854265865185518391561553989446788233983738390229300602651642666988332335152198023347393736034578665850009622413360264200148110620505537010110289312165567826565133244347467673890410571976870559819472314691268151730413862436946893782971856859910677071810531876051737664507378919691897275502923170665888217338077333265676183297453628770664519600131529883323603823627353508094845960901856742819832179519041025784684617710758765277141919061489077228119784956927660336298955028105775368148950631508876755931306761584203706270658771679865234951795568514533400928359399294149768676231541027842544945284984133505873254827446027682793035071201384229300088159102150962374947865593604393507807267077084855298801573622147498027433251112617225196266796784135710168604446230111888764145949725900194983347011535641269368751912387312127535511973570050517600992937752009960658409456327586236979123360849597705434534393052396543035173139325319253896573178071345733804905710697068391817935879427543676769803104103469336257395736880397548614082986974216422654389877753106990002772000896550468186382912085487194218905078379354425266692478902227606001127923630004415191626865236608249950068176240599737071821218586864560870068793515363698920888276044770217909991833825240567187194402275352400270242979814760846249581306342224000745477515877932537131133450918503491203544270081727472905304986461651394905851811452268938736409350109285282176291847433449695435832397220899929802498619013413965852270081180934961621240017339651946768468736999368189375469175537120965611988908966722999635639000966747082794613695356966719076665696457888674850744527986980958727964878372470522240389860905378086525335873095646628811321353328021231552396172049521017467919813463392820783826852752325827965585363963838607657399373342890909586797696249257664088662016444463061408088051656554062696064840041444459934487906096224581475641710720736652584891988360389566378317277460717993978537955636454893877245603016567921018687420677983486462991297529322671098549714059453723437462537702915142684663930086851951404789552048618268823031336926939346234397306322210937560872337051366564913415085463433240481677960062187861349208497995292440975870954833745451096216938760460334271444781337106497125414843256311658818313242175062691024386348951915005887280620750403520429846403674893048147310522509456856825288657179241070158633878539237734770124086926938098095358228205331215538574694279550121005115038431993582874467232469802566803012102152756793621102418098322334235109267851495775114424123323410991775934630049337460530498344083908177445351640449108077959537703246084030732740217975789870154880636010599576341686443542675570296201178691390864217828609267521473992704105300827481889396402065904489082246703578809403240887397511514774387606833250160114345400574692258920650747679419916136055432048305891940189867394337486567492225765140788363911068108622348340351379484634762996127287103236440897297936912428703625677885438833248078600199110064979845775135158708121182497824165564289448730254117655450520440765923988624340303050470098034746355822985951885462277668253616343704600430583505168847375661040329249953457155783617917603873352049433270424831222002883447624838794875357523722848444149243156478469942440787791852970593462235380063242992388457052142797733101158483868443539339330753934197978014112842634239009631015140883635486021940304325110821711023762075691039044002889262193436487075307155277969497913577864203769894069239905531023972624559324617306091730105403870039671362818420501672388072347377047976974815304122549620648743342233953988825012521748737556953623395960855332935514383596583827180930829961940782413887478761180129724283813679064490582561588827917804374461500492163595191554005425913604392366047849468543141702172822811412273197317124307571900852674602993619770712804808240793094984019005702593831395492118342338440106319492167241481063839721382980628025618159638872611637319030079268128971930139424961741296864908923721551293383990323834775861652735115643955948976112812231876076302135233503985616722507738629792881591093231042830559817624399001086162000675276043993977804108550293022470375996264682928136400254461743114493244872925316225892589279175060933335018771599149495164398199949428049445592297134264711768660466980646763276331635541483096225069669285610182563756539974466706868029667869931847349119560764948528661788712755359390066953140246980778742950504108440465839943413990762886298872300115068277481967067193837244497099710487876062302808833000169074624952798976380458051253931027519188952262883208064239215869233706738981084644035332611613146629152760024025579583553241932889738831405178992549812380888537041817859147892402323160210934921400232706513735233291040304326263121684175271143933785299544386882102509026791648553032773949448134067432973859369462015694081674262232443786346069452897785185066620863113000654831116522583531577031704575615423904856109584537160482542284894398841751254395382638003878206302757000234597781281494541749370484623236036082523704474243246098782097300358273219494930500868500532097040924752481861050318838493021621492862217090531796996070924567455627675631762609597747372082119966935130078443133264616093726361646420005964063620878752664668715837544078392762665671587148244735538977723168165448096492759559151404620611576384005233099822995868270739901569201169270821704719320098286366058944695589952785369695615531596407454428120925448247916775282391210106082765164103405796763453351102252335516585007258732851828123969185478019186146525416433422484866166434779717163245212981258293515714370443021451490176830099363744364833405768447754453007035637623874692894902799159829560061628724487665615899238644611394542264646095798428377016618437386168630095253822658291037897272404521467512955447619066177525067951216333558640516790111107256732252112581289288671192623957244698785233525477934195944615537315347331391134178413859104192826850592361199834219448051434350048480711940702037883741841002494542213657827704848259049069237153690910785205681914357408441787556921568095094883033558049851454153898504421993579834405735827102937839690695056706637924415328378661403340772584990668438841130571634009604920398079744147824553211757452070962027139098228784079815304151420349959114263137982839872377884124417377294418893088814171113732633160922824794943367228278319010861331116076920393691168338435610504136166346789964048779069576721200428558535146278330541926059547334762495049720063701162979551892383448030617690894649929684581460030725942517525716494630910808239946659503619474837596718624977751968941492147744720701056058170558490988510356948018351408809904156797286019275251378845213449878512313750119624545099228955778195242615875766312925438000983579450577725001044904135176561228085024455123498012963069874206187032446784620730631801717971182207992168066235907294067557473672512116169020516053057417913293462224659708796341819755621207072934232573103602338294764532873840162511115105971688508868779173502919180074371719982844457424530469831527131858280064318599926674406372840067731708173791639732428164327223681986295242773090393448931314571899312995867579938065970950241442386304942668660864796191761181092686183559359706171659511748785361525462155665387566679287197563390227396501623613021159663060037208551055322566268695196541243044017239979777130344661376000854451902750632565560410452605970407389136982521021347367438528000910496243474164365525145049113582095214779669431729461563219148117882398611783014249590352518275694369059474090552321768358163332668398125818158774769004351436070484537427735647145051950428589668157946131785382003976649319050122907622857880741089788875336037295292819405584018252818509209394108789416955210399772674267622008927390257491134290323702835511273380933737466103097941004062081977792104973085968816305472183185083405847206182699312517104245713952355447244333283126023602253881532810424369373074749933243478302799486885163437371400222461564910322149601809534087805342116318507332288780154258139550452120993440305383474865340767776905557170611486428428650785503272304930906786624484084812359767994710388057206105947801478307598496419671961022926371208619720459355128135635438938472308268272108678311764117818236091043018975365277428962479297275885230685023687988215364499722324210042745475929774523494701016781019082296281859583159194935851896443745440437060405229307259506324787282540364541997079978587197605378445621849385562908272883487477569117786236466031031219853924354278037905057652363463826064743344109064737588062708865266259721940103084308193766432311153414135981503531340922209495320396646701874160288652599167370431483326222935584724842018220524906941752014248947159479743894856444955509825866239663112999609964017600788915554554340153927372650954103600623213138987348525409800863328797324223328401881512235094197868406983535332484101724827784701691653674130965901484741732810345752869524518332959680366522513208252555091547192216233018568562436954431555763121241508335322679941075815522207548735009844339344499518816199010727997108696597163454525506536945007399226346735512629054117685562444380991238014727790032962310913279520112858683699468326393811437151756169707004844807177925353638333563148711032023883009948550083169675332252237643674363536178417921143115589448314417438331961015074625154218986945343261268742176879671928292016169076985225439974152485568192254965030227240027265105463638594285779288094635432759571147868535519915366807725571017070454154447604914449127067041961610582087159019587119907242231788203383799692766877458638685904732660128685775349493859536500411315571463992875022193742717236812951478060852163519537637390077230402531336921717647514841187743841640144860852187055706532526258442746854783769195356854058389590226506086780065180081079797700661077273111613680973496593547461399446407211283058348677051872616783671339267619853043405564530184168803467224929801779829609510710714938412091801575585456530392042880199389885793681437110055403206981263970679302121528311195690944151696304909205674257770361935702126258149066596205454269444787283159482064888909705920427124997166318180750910827375253459153355365816244466389814119254856728648622144621293239252444056685568636359622733147590070543021908103695638231082446892653089431406015902246050984642215863043582616286561188952532184435705589394939230007997533353823498063693938592177928486692984476486165245802893938300960329465395297943016941948001194194666105158039617667728250764883518666808704317153250632363990880338032385657244121301951516463216464059185481506143050390666973578374478021053344282302713864429093617257632650422616124215344667988347222059415939738031866510916467794761620225068517486367121415945399484909976748212419856522249899559430486389834645025216606168478749416102425805787736308081211118503285532977178660569852026067030574460480401830763724533624505931204358634992521528488816144086963120627801868423551407121669370737596075851880732887289280336030445353272267816521519146243406430371521845966146560032448711046238529009588440437794182404471178314881588832580679149793937482133035429078217238336594406225777123750536896146560137321140290849057443778349482142605315752424467462995572732545547530155176590652901378508969106547596435492070370429243117060508079051511358651360042636112624269593890467167113022254707260683268362273793300422095211128568554685936166002301656225245455112651050248234278453680129331003307320471097417637502099451770767784403210485113960924492859450219506783629679594951869952192803002247675888293191864315547683368961913726727199251612844178806965431767677020665857676442377922558207064446976505224626273684691578604002836937972945973315325035834691177896502767442814239312909316068226251207510565878917187435307000774022832488652782987397757749192977795670413159465812682649864838468141192864493630553072695106469009343151689072883632866081047873869578513962131526424513842505338368480755868282674248720182228319608805384906280467055177415466416466465224301707675734887501463459932833650626637375392374274222214547646873647086219132303995374412522256081265521674809637693052027358045141726378651800483323371728032208600662198531854613984706724154123918410531956054218423221452435151700326099972302089790405858812079986498093544314297513779776603672938879645026174626993793631684308490220219395122963519417613329571397891942638969186860700821361089500527033998293148372717561537923152779837336207999967819809261652503992340848797882633784228402707278790205625452025306023926963124656855826855720597039708981342823766066480287780509159815388852490207730306666435618260922310387936111513992710981098913213034130889429714525747832406066663160658527496463026386880985112457263066290193938676662529792566475848908756333637203337912681396978870773136207971693555062783357176671711512660797024528205288236415005195219614752247685824151885772546359337142360378366736008367267468254701362945656829421747198674231288377329074450895535837693402508229247719709081069342205533930091776839010648535254196017163745917414002096446946186068994006083392305970362215843786795382267823542279008360614029711051462258616261653247893614613884394196966909529379733523700446778834563127372804240510094344984505928788709180537590343983008422342472174458960274109573096789898057694818677362930223988290128056477711123518937040050131557598158311487767334690734493524149510118270135793970756377259598908902775930588665728306394904244749897509248693190159460916045710174857226651367356845276915855988996304001341947880667911378755187366219406894903673039115173349039242014253639459715824282171538310423774125565898503551827174758742069285958199118649659766844227631705317936173071909423160603829490604948195183729259434079190904999841806159774722092674404854794560630626066529913348642126025817365381730717093510986537719103585345321311029051532406342174755191338401844024063835913548699345233329309364222061682403282294616338873844988909870595381415565407281906885759291665566378014169138464891654267179884216388583506850393522255022501994017962956107174617671663436934604724217168713321215915580807471203928807177962315582300941351514147871356758534161635032388725210274723479951354869052658592251616573449039761873599370538693055254396069636880187536701343893963959284735478546827932085209994513113010430724220486250705487975222468465756713904847625910008136768011739116336662826712042419035607537179869110653054431227708908566775690690914933573320644404704175052376966690665895220371614769554964412101665457759575727691174577743552492255094507770106400539355223155699943417835101509200571840038717299979203507366794069460318508475126781977247546505223698644848929454775403764799996975243817436510701397305772835830988457041892934684391835071330561995590027837332237859197380047982983704162309543611971203931029858016440534141265788998662760120265648813456249138328367340804431238845648576927345640874657285452234205216714663103554896034847999304515877965862098834013770111624594649356927474210804181712556951458686422774794861828447830468438289826472840917674064341576180359729776817225818229365754200914978597784807384268052712898346409746746017329590169961407706036697930589833832927454459390003593470277916363599156095806986932396033758948437681051822642466170288352231445429620049220487480354642589164892033790675891139605444661801817839451926843200349464786530492123862465306771252364423139883146155437200362235003273237647377015941279955108791929289983343437279805564657336498921130262432417960847330575242589973170037629614380661855988042001107308199767724788555295755626591393335247274004348204939726105539154491553207237322706625376838453170683628805514831473678919959637687166682514584179679491708630428574192069858093012299480690029737121456874049573504705154509382930808993874341172950948239294890809884832266135060506096630039317349770281085133592034566987263724276646018505702490198689799033545356731289762991400616454767767614700669613493453006019205424603654023927843868036706406974459212815747119618769466361282958022304778328904536418914926349434724394227612628424249634102698569823628192345623354339241599849003571402824284968824819240164865971944987573750333699424865282171327913126049162467023092049115457787362511732614951005893766113830909166335559906604399857550739495489275618169622908043856308507721730206797784632646656749436514951975429152612500439407880721780068870793920968424338951935309870454816860663233879869703478332313990176195636204969712770624322339372189310351757425733988752464792563734440994242065495801915942134048379258814140822320303717204938249712585683078572926746380671541104087947997031039640408000571129486678704463336868117706103253733712560927878507391732461979704735310969013435633556556961956013018549327088372695658639135147717512809756171257810483498853235329124583469424305234358625491323281270756382755345222035664622973696936502868770722978264792667869587045486601724108538656353475706961818181464914800645586505423935055685454065090453648392714902254691289035047873580294823388279559786153545992551362680275026890464600014520402830421278650172985702648708761610951899571635252253543679982895512916548465187790939745665920838968716502428791329805987962244687326574955535232079489922076500188211246668467154862212888886526282975261632820905766848495113259723191229366832744697326452930155956490583472865275663451618623410721272061423563804565428293459264983289958351483860007656237809060074684805712711463250117406316660418931964079069855338781115406057344603458866805347576613356763800320269694682942886215692146476297998559362948246515465432639778253852842522379961673740216857654050329082937509276638211659946350940050039970214768474416226709167430358757366934459274237362108132753105373333115672946546974368050637720996795252950427841077452328221156533724775506452176289587556047918459410627993118833621525127763270792820298898124454687400335793963923391900815745390075235110571747166434804279241031424004343207075394874721274122980108327651397667952682196435830878405270276531645596946607584139456886627913291011701955501427364070104476437289003510165770047231143614815236928079306665014070304967813415889166535343521518537394645714499577507130771381840297207653431951852895530848335822236019819753519619746027045023258207029707593080912458137192719301156849324980720744663440049138639291532394648922105807311213031488822890356403492755564897309061447798231845872626021199117888281174054820866996912142120381548207720779146891273149414260576784223732302089680466497519870640645730036638542711968875745013755605033852157339610400629685973487187554716134812814635957891936643146273093837051914960197301313622634533012723427970822845660264530362305131646900634832047982837232059354065113402040321508427297673161855497925163824146117273123714511577065878843634604204139018264410883846439292971361420242626372290715047515855920005984860561981881863339988565142881729576143659955579526034117273673917311046922808120069452620243165229933419836642164324596149238719883511210326527190673118814150333737641803189675019708137948844835973009025075722420325240479379274722990750851465010241775258747434747259904583967990032525158644446491773609328542091388269604140587006798602285658741605635328493853906283123732052024445031471177347764483944227461871168732839563344112702313807413802155835168023999706480822037504004707627489055990290659594351767971427443412729928930456169755415902929999577911285168638188679181733370895925508835797165091166296910159645976089582951895781565746301487952139939960090720018869720773194156752311898888082408627161336679977839594165102965086663221924165736982566686558226559341943769291104565196148980454829777791870583192907871166330375576807989280841185788871688131334446309283590415840102280376884109190720105341948295585183685499990419764541119469670444577803446612318675183839030824554325973739582392474958022281763274557355247884194759549191013001992173327253921541374955040925884928132776085522740838893122612710817507710157542615523564545857794950084075699308288765184821235458200004674001125435233068080258473174372875866523452922381699623440775731175516051731675523185442473804979677080012523143198366983134157349078294851788532233269912925195255646022890019698288019820530489841335828543153265882525502859170602811139743673414718368935397892105577721549814515512911460520225072184516462684167899129888826697070118676986141567289524807385562772669815072355937790536628564352256439166204416287165930825367170636690439431511686902855440672959691249265725130513307023359410310900875559213561024811451092984130820550464953364583935341484152270374558666440961755008514372818230496492733921792143086105121086697722547639324148846814393162950348812488719233743248884675238161141631346037512400008407420238229355067928535285115708140139054385259044718228906709190480693595574802583616402007175541257265637610197967630464981298055556449479872197684640263493320987648268786484505364708632160888580433474105362550475509065338274862538553951113259102745870690217624352508819158524816564479604380331414038060332865471160058835296031083276231008168012971578601463976445215081072603301320241750102049798474041528451406766118854795621144407739292724769768637367309972440474480199696463958353301621809635260159702155615921072917379216284931368455111073255012713268266366279430590917732729895246634183263318037939928176383142506830916707582132998389765569854116073928650199696187368771561747331120547280072770359435803398588162591192224468093708448179081170956700931651686901691316355315438002432770281775436416195780672231318637132526716778534640723094894537227203251374943917099152028284514294440674968350713860435075025484085561484665980426409702595999517876759233925106621141628340553508406258108118326379121011062962080624176014703894588337674378000971381975383216969891029266054895649901506019440618849777196027356295945758293222244185760130877862131457629264045517343771949583273675017889602361010351586270211875988362334021291481956054057951793470639054230666552344070863404555428505206189864234813056455929762263140078524152994556860435854342914129184771730830611469922124465959022706492591473419223525195001416252342150492747880312084722080841009951858895670251950541238551728383492982345920895860114842144849763975589438628611369906718463200543230590697388032812192200804139443623857348202336506039283463101884929569330510516986500019076807833743616852964622550380948277868103045217241692515794959268117110657927840052514817023376304775369404536765756714524663731092837592400587607345186053370956331100809350788395629908894502191009737032792850713415525107385105176320125654114261523536661081779526259357819689027029953695721716382387618097224975234338411398296743723985091973735299168310280094906877073239581110192201296989669933363922039514256712759218371540810567146670564974513184657441845557438704179765214051004631011503161294967610186432389060556092595905486650707411666884445310283291572756938578996771838585596536375393186038122700764151497846951859350558440517351826419801699422294923365098746181360312148841699983366464352147001812709843846645953858888752548704368064924581584495628947336322562850606027028664130105442049622513902592656950184661487610870030051984239347981478168828596844206924903267890405504582209374171898474903043015416428023298691133311781901345127269039201560549488855445649395545698539966899592959843883653271327453324994646151236645256595080620658740643245058530314693414904946288932924831404858136702036774981128548276967530256464237714428202372801038361783447593446029860277072236218697291328413223679995186535561520003398151252010877887083658726889004695427620248103881338544486620429964003561066286691229381499685443317366597491491509063230514179218457820520659089305628748137278607329669585622370148670196329227311855142314730389849598591963779865880408760782702651881685057666790546038431361427695920406550368787247303892602367259503334202718405975784691344995687833610966200235933789570627789957918149719671469848415709689552122715476958329513620086959267803925556127572531268283390398157578120230511098136864510067103704523224965043929653228801788077408801197800727220055279907272076402719658515353133099460026950695851931447492801609908427162819107106141111765657602354286569264374398757594924428051163083065348376678360308892818431782126378346949474911334449558949638320398989524614228460576856621370274326764061847682197840294045197902840945589579968767570094322370128889195261780114042570524243137446370351862986602462035299386717544254507948212526550513119019100105141353111871627142538954972468837904088245906459590604721101421342813537836838055274663277325188851398575494355493631990764343789552093806352578518767459230241855777127886590948097090026093350031939606462446521393375142601382838911669746192782152980931238895422725036459424555752318887993391279145716249176554598891351472569643263319978143357491226722842412680690212836902600942622231548349464056220035848550600268423395141058797005798317430984728493324388450163793494905023975924227751812816397336854489264259960773904199244765028627976054210899913140158923270863637258653950918739377221366088227095725899198042420850487868161572693081175386642524521709790028851579018413024831563484959877183946140682413834529045062109592823791050030268497547827394394711197821847151907385886104889469555226243166735917191336966431556613489375206310242829591614044933176521713559724244269215202305596606938136959796549035427739874647658496192203716255723420292220018719581003399398583108375662140274762272318922699962656999349901631154349605682863502497673138580989415458762089185143201172977163055392802303983665520489487685502752062099839482111771685197483282008520399482507360092747617989700272166495045269038629959038224120884587493732668251123616472726024271871221792167429771710986889795687859903517690838213459010284697325704423070033831632705572049614464987487310460844342196744175818094043142381555543498872395558413573342836081292926125998922650355662174631710243378908746204846232194769442648559056575198238819014168835137057102536624431476050733907134259924733793066027258588463711900082610518131240808242763608411066036132412688171321874237122637497823433818247795965695131060270028724168774241392581864903200532891910486432772465271842406908861617448734177238907445440205673375783232152753380524330766535732800426604677409571136529540625601500262209044240794319603073310929104467268938103470558752003026632185427895697699245620805945164667871481941842804740436379753140166361072420368168730162570734646124159408375890377637440319842203806953524636328497903959340489827600776435971657831980651544692342218798045690089462280187124516179115955767281356165959472611800754383677621988514791438431166667566630513412500701468506311336015259940086173517159300559862177322510535134984303689393595104976311467504100722855616253866386137573302188288366409407006299891886698615630343824403356370345428621654542302523149551887092159130271863790986994233082488899042686002964542407238085903834295076962414625301302160434198362262905194936112535493275745451279833177854567850980452142287635888117307814980998030670782408041077538640532056799274772765819855163481669163543998908029514143256972996170097040473331762249590287730562760845907706916653998856692097729002204756353302221235650820666243637585283910421290210416804481446844799031537001055159793084429149274330746588911160986413508363008040044849741288498329904563507509420506840429624218589229068288275902141769624817614547876659927017720317974835302495468801596135049504795974489780653633158092420213750001944017141825301029644700398900018609190176702108833863358967979261429082272462129014928075662523651411024705767894559727889200585851437640664003450677478555503519223961006982124414511501011152246661743964415335199775654764275362211830378307186517259180024252129678222436009390740847607406205616027721536061928006676178423131981208059620673557938300714097913512587662993208378523810085175350379597683560123861605296424823542526153807753072480559709342258792816117085938522454360982159838886354527573119963381376536508300283331149467977040846537564876557674604268676127959809881232959349176787297884123399439391186684659842113470848026246486372824167353363687187859024334646262199174772811222288300529727407851038947141895391418235655570981954503453146190732353274749687022358245886443539073028336367390528715591888708441272017145238102066124681156384733257668049939905429469382368000812089221543968892839473464390945055786841984310026144652011769193923879916589426508768725009337550699149328421090987535398586456640890308333915768093369497758610734362170491944314965844303779970111851787620962279489071751112668063761458559733602787563795949273773838519735773537679183450516074881698902864777409680955593479523996270699501318405409703877642808612305180985339694581049593806133625689032404238911563526391079563741163099983123995846303224196904847129902520130059015016277702728911025184166053319516202370806810042566392830162072495656230771165310501629700936374415738673875607046639758430541933607016128104777266817266234152569702969524456224355231856666556270618487194247505093228189355662968577532305860198676365319320950083373789233190722658037270036635670266578113619245530722328971488647032598541340131146286112911685942705510058008063779722924174950545458262431986627515882889453160186697271481491675380674605286900414749760421982768389653191542703516148864154314562587157987630602035141841620582019247779807358357590627310273429997099983362578022648593659413855869951627959054469622249936304058373698868507680524870424325933652548502708873282996647576822765520579301618188301524837832022869077729782842342152108628009848501047323268746723076746049634272091959981988754520807819068411597132104113706275528201245201894261564556305654709114707511176974733530630715895805750064796103338824698627754583456146106820239894442159121198452447243849451532638869230467813629052942084533826728980484917034327157144240948419781157149962981164486389549599720745712530448229889920231522704310545726131500490915772609211575330631272227762839267282951283982478949362398903418225939667557566693037986421890048602528295098729428532919393205784267578321316833014052626568883426515344236268049936098027844105493392322147188165202137877278205166786759661348327361631974645337535441264024412727813553190509050239487182741724195538426360956217998848919535169191755949534173439561101564379828566792514935588331267703089022496244346430972822175187538914567839306349306896016160666116369503288299126386793822390008542793024665815686621539563994305047855962419542465324699180997076742005052612081128944626002905838485117727684794685199082537574093917632352292593233364469465409987099295835057184689026705174702317072247938181880367796913221689288858320760212705594781276616154837100390081067911431678802863420672476010381709030494564470841716107266196406545981643209797799607781573820438348006721667228996406517399661878108614135422959192131484337155582512036606907438840157645664767334086859862816438649257889971118365780472598081530474375148565486293061890124971258789422807088848512387979396295598867692202198005076822023521126968408301547275145029927742211816441436451249719556155424086679349024874063643724084392603216479548845187166098980409280602119133306444900922146170838123212562650012068752637529653762936271989473621449787525794613486758142990987822135750543687729446651255514947755788121636304537154102767546667500216151960011120654184757653410096952141442897097171405468627673251703555060671364468412348618263933127112036398429075527383477461253978934071471801214037645553278133231801915511843872894834538081747369537497043510788633208403077455667659437348917602662241333166733638552778798397635284295636623229485656248091318164117215396994388630794617141029257416793203572347217471254245798401168671291695156645142024124801963771360249118055676477091171900019987417117627050385982605223946494429836736419638620182384754043249836949723447765911481606535547043880007239967355665742144618552798126225792404182140123773344982243283263438042376177323345314450260668077863323102356193954990125234665882502163765487811842170430984843610286055864505189826010555132984391025817258079208493216841142926517910605724116275103104455980016250319405644811734210068499662741066888253375429856480375319384380320463657559571604864152423670516676063769258386935428819284432088454923059427407204612478669870559172880912581553794079300602461144416916539097589918139433238383537222366360886445982033478049377215975727887595738160733224005088533312765650093093432498948025711655404558476541939997437900422147194305315527340187628819841590084176247755799092498194223093290287516449621826731823443363946877480628961232384334598349432922193982858335270279543250449160308374339633202010293775055997293502213401097690632346319906445181243248272005710533739399407294756526355374189468249027895864847985750324380763255259176285747697215806216038849636129689302552080508020718029185914654102566088444449528706622348754053403487614168052128485463491005242058737622321096424151280868877254081270330505867999611113709990780062892175791585098908523453660278627605074874322899474526558693578422914817316370288293499663472805942459665777029021562307449215718340909907161890911599114821435560268778430285441719253923507567939935172359499254243092719470097597088973407967716725781424170825644874467344564058600464463696708988514952439579235782493134462319328525362113520469435518413265785047041043233990971501042838809348489768969862361633900880898830281883647441230806030084127742194795189948996491882464178343113024486327240453344998484669972061234195501538547553018764362243237129076613298194768958928384506318000284536983937226849413856427489644886904320657231929959159826352268853984476811952155023308101459167388088765626449257015809035221413035049969563075904136466170824290207248247604093174814098012284179082763936903701809265445979030716962816260757748538578295676894821422198119842646342343547838746089684824770422083025145793908349882997392082698985801014718226297700701133555499871088940288078274236348147465884167354026743897821631044900371461980886277368637838066192733083860239698633767094688325491999882040316751776604074339383690514484158079325353351052219735987051214841647941654527674919625517764573071082767115460151277475329557480178258356591899790525715481030334027656331064575951706908771390452336458738662455635712611119784034814028732889723178377440561376450213274249958175182101026549784023601474155351100187639344753959254331221440995799000180687493004808310361650940011407274091281626045200227218605092312024259099108943286633755302252185842735478468077035346728509997349232791489035617454784814310652104642017844327179763303933235302081003039585236472235882629884022422040798308413344337376935587345394124806557856489931615338718361248233103684466005127119338422275219259944804791835895597315293581128810524379312422145721745109642810933552620249720172799344748642754774724962089893531942274798906641493811054170523020007110967648385823209019825586443521373048525902716437069711201233574282959743780896470915970125455874997426885516813861018457925897694687337073161561061058311171294551909972450217569790663751666645821291566846766799995382708137367710127632881157505985617527860232665431074201961276136216487435808654125899742350764836352283639946390934383193840014728462647361351610032536715112064787132348738188570616441994112585675848104580163236720674285819166931670308696006928951580769110712285382589106124506440845995088490346967811920941779853518676784036579194927072974598711734028517927055304550074525480267780811070766661606028681994165229997392884486042945853524820692338162405398599070290756356162667340839000849883547189214943574024095050955155915536500337236252931814541985107790536012809478602524897438510136606623890993100386806525588465031566756796043785015239458067791884219621817592820188956964963574354701192244179408558765353534631631705480605790807235032455021498754377121989798410044623119782330753871961874762329633741083483667284700149709766864602607303722490720185104333656883105515602719938490728393832323435659167169872944096571501869428949900539918282678618041601296586357597486912846145371686371215092641021155156290081276306989142242507560900649164241877624555011534007361117380449804811468631325289499125102412443430064474127822651299512565203517620456614015059787979567044320063691989861251515086724272270113587736755438246885484528694301116400200390536442202761723421890307083704105694436378999783766180502893971923319565290423304725326949226930580166750265580781960368201003473491314358619133542069547077309390180482576774902751308674595495995938608991567342407699881078990095761139752847993682709050211584339367508509704443241598756773020029633917777819842013707816949479298131527858381576484768171148183586365306580737004374891125732377138332339040172389463927993704646700338203614037907836714548378223624602794566073618350398653547241066520444634260283712968918654187609316179903161575199539928904873246590922765566019468557234892889777531157472613262374497908477273165852514358537237237034879512972324985087980175450073183889014745474906535153808774399990779611283548394185766527681804179377404254979287200634195250722151427344637666539311724124012947265265080190124257400362562369686894049966408762018573125074865794937812198974084654062507246777627136616096797172539547967150591950073062004191969831180430375053314432515763478235564995518830957810466816169848951419881830646648467231182464104797331058134269332401383873548235592454402776341761971773076110240617197520471306849605749735041208434500021467106476803666301538187307971813573011287939059334363458933162777891839570026925840877191371887972287670316663302669461734932814943621475396390601670330085485668189950700760283823735624705048655920564565498683818405853482760988510292119397701592824954066591495851851780704211594984493408923103418539254044010160203959164166765581512976091451239457488959454527015583551482315650824795315806488045388935123437398896582415293074696183801235848193154435250135382821751341727991234179935763668393854482689621124812169640706728611395879723639081579413814850577563415284610223915640249148993908961640641689931986404896953552784859534565333645172387705995714197027928771381578755356249189668611159799283217101208811943501452728122388674156529917270616087827047025751922067532263965106074398251030052121591621567732250739603789794523815226069417062834520238732145821352226977815185972545362623858996014737553432238123621736430072559302326276332488425254065998056238179107628626820172365094684977230944951117374548256803129365857536065430913295565235214262365626539782885940210546853061545276432583976824261988151957544429996476484088340966674964086458448420545626947528667229075499651500228109280410155602189896459175920903807112778214023274052389794942262395069260595383212248812619309745068678710199156922034454115458381825036539297255860918870787470114293109249287122528914243890167814086136124703898559753800619609442253286306000696168462177837169381519245755995650913060891329333467619466427257531969349129371313391774468017108930505324576260848736078281122067515188481354013645594883642730501083451283090264677558442183578533467766087464809588102926277850231311371475665687800150401239127970039637809595482779797866638712999990470445224826745014431682752221752271789289810771967302197269823821485581427050748534333604605131063194656808944699002666731231714028291020068262389518084781147491239935758625684502145617760468426503836289892395304712224736322843192317709604663847218320431014330998141006014103164255245258977515490293495822302974110181050612984681553132783419130646642414616134579568645126461897153728612384020890772352424287631158518683050327337603151491965525221132944801893874113743582497451698762000225006110948733953578208321245011331937794233534211337174197092609412011272527336219799777032612800873541901761183932566601732180503269419178596777230652199293419269829398704267924407434482181650630391979772482148040158632517030067960869563685702815786085144327536508109354665777178989731052509690380736120908834554465006323955332422365751726942617371520423067443347660815315336766989288401447001455823957490675765915762469878049540151044108458294798267880830993527467466731782934431841598927357971066935749157393887584900217371247297823313084494809319444380402460073543731186681672010634879251809551790609263132215415591809952371517647986849686291445739547614943758657773264305581026307678770342959977849793952098458570593146831683398895494962427376148953813021865437939703647386005221653459040274840218197655975797413934127889670450253903599952312850665935754797417856638630147602385825129944745427486447453797751908370745757497257195829505950167098475422506041834946292482797939445873755319694318322196044397986161587076275516064064617964884840014958020638417678176861809816668988576616065780960711883611877040018337464646218966851755469347253486557979666330086323744054006929676978316963551939365933120360878309957627882566409114422979815802792793387280640868451852972182821467193862786354965355408267146849875998748149965716029385252569875816468194018902610596232454285532590603379793438177880912323032530037999878897952856638608166266519990257050327104097049575435193352807423653774811477915587790184795193189470411634515071687403677158993224386195240464360342990289696960032830099932266781215289080073044722204716619662626330556595070227940468383710347867081852185828016889923987529517125246947838462225549839930628735948430753535049657928415392256690572756580916770174018753778002085776371103977205934719835658411191167815652022074533912310135467159021697893634857489646427294180427987418555086237231748901589818121110918295569169402584602654556189891408253279065928980727302904642610941777787235594155725198309385744503951982789418018762125437443832925641557062118949305790311936666150578916895957744042469270278943478642082889714217259796005706285750936968842523953945624495911266273829235098412362816137497252706619702588461207892922020699971273737206290225312191243407961178647127956040098963413415282747590408021535076406459633608924893665742463369120337916473213468712231419783446350349838084620520712997165022565677381286835952198667657061450309288578754055182920006632026734598771987674556533512368763732374503971879214487815725897820317345191458066082523438806401283327669203399558246814949967039170720231080224369648645714487989762193084001267655272619199884887713445815853083559342191556705729534252178331548190761820641228492363013719441786001963487531814375495498437635675827621380342072915370332373868435808913197226782923451511591333070612745691783824520235287438149879054943386907916250120705594348745225153708481505844204872220881804714807446349227803774388071325094436641801153513326471276836851574550451696837821647623474540915729369153568560350284154341679392730425360899522282985356603439832737403416195753478257410589547256755815963649783812277557946897067377100636724931238714734341782244034515150086435675378045250325067413368091524222903429946786822000459058801234765300689611059034155248027759458880589085460237475588655357370833460436868580948815137404692495873325241666941273870267761192715549038174638641290723969002296167111464087175113537318898106475761862101324394680959335094945268379698714402136554236502814206594008285610751361936566228087545010267558462637774290412740995848660330428547875389078814231813440640026068183861126741579727774294903906941351123585164318801959471898231081507315269424013503588479324990925667099742331534214789053633041496477189928084069355304075363410700846393588885806731355460038465870937102565072445830652352895120046322000921664971694706193541658014050464836702018877807820323664592807694814542817201903101941123539267144572042249298370105073624771786903519652072514512553855495296409811540822022682690491601977333262506889934541026222522820293044012431102561870547740050751934558909714695914364107873904118952239363261269345956613932847789936677969516632519143258595250969674193323138142648768858208455108060679393388517825311271240789826537627338362198785358486469322511092667690046540602902792836513367093227256238012291208053341037535036103317168829027110690877056196355447257213631327451589613716752945096309024870804781720843489111878725770200586776756221816237195439950645759791321382937826793502804838749774457653871795424888359737328389583694943758248594569790376510028116313949799046739560647699332632899511393585037460182810753892911111338294067859881415671731588606517733620771125463981151683666567175212206968648434539786597137383516640622457883410709477088335408873604278989903274178207599506130393113237358436695781527350601627309352283527538514748485356258171106530922602197211505999769407333520140423758479759591455798543895777995039335886263615759359283472702480466956521931837443402524832563701165379849364888180526623451345009133322176045803263095290564967987422597655108735448378700709001326072630828623263731797576784090132407929308167581142146905388245553170880532519679889363908485422203961046562574863902394064365571275459544885591911566985171527048893352287899802475548901718837851376884221631878032139610331149435318358834689110316606910736538606205691338239821515116488455876678209228291900626405593216293135275133496492677112731829185331438560488244555859716037238122621011194671663188130133992915159206766439608337058938489692010650363061494986308955802334201666433772291031844823036165275148452440333665556083717644200242201234078584504097124805085907097133506732820748318409255577431763014416190653242474419290841306105074242385254575548435433400273653667733525759442999042003930199949880569891048113965044833922287212680926720746831272703138816001179279326184652432584636184961831193613436308108259203198379413095570135423718208819030470111965843891715489880173991733801062835242534446218868722915972552773432328279131059934729274327132334160068813913974774142558363538717766028087112731729986591491671264106321075131143202938956352565119079744054066582970650466975853511469133645933863746887219776016575647551202274267733386234939249606433971680070839963936773003523010898720035835586691523001743472234564715395630747398366943534670329287556999985391896118795137919280348226294384409016461773971502816481081363252131343153737125201325370201521341648040088347424970049079793491747801882191501856906037949197747787590704007700991211097035568096079487568410497225489627665090960409737398132167344831125765146660992829130699704233010586967452496511624294050897126326109408624826503658665412111244700227468772062053823130196918448284154059530338573399086489020831002103531361486779344362051082568683621007678785063627143963369442526707730834501236734065035482345964611796236288990062666092952629622990115674223007463120578814598330418558714840832608529584836310197237678876326798304817038533900547047441044064055431607047473048920957561709339331929592490789208600964022489973757742643677250374046992809547626847639990225650025912817234414271333629956571042507536674594994234565525522291502104744888245372042400052678998306121838940064359247030962771240831600948226135731914145793045784769324167376563561222671512221154506428993530441874402889750067419116304680689863980365936951431845260256362158751159583859747942229314512051570519029128765840978415352343173426564497541405859940088782622712940038702065352624049505211458723306255478642921932304433345751069822616643630396771951314985582526558697651349182624700252188752493855708677149674857500419405093610600850933353116291167419494732585298980678373668620390612300067209180033162890365378768095767175477578303944227818294006638662168941580477908844286101320678603346553752632383334193366612867569587553700441374353949654315160004063413819171760599217191471398481315494218979304976406421018265271000222197549406507260559843515251409274364238875429973417803050998804598226519687720597555755322115032540309832420004780231330294249452474379897059823764299203295318640181364074488627946640671690817671269602723326266319879483565567417212683385746373140278197323517448037122600560381694726737233448059853767484045977889285437297871794877481612228497042373057066655222512885994574249513392892130695923607179847844658301537967633666674539130180202747366566814158583185979646611584113006246850824492019957394540027377558039893485643428856105177715619259395696665601602421827561259167445176801819533030010135116594353505268919072714990210473226593656755274943255632661438810244010665648425304167172039086061800694272254262839525108956147680355880350056572265328874282815800579927578739042147639407902598074850623756707089026504305554123262889265427706462369041302672443654680785618230240620623817414085975995616275662937378558593195977289104322957685621617784405654936453519973503397543901109825173989512449069524527390261124512010618513730159999962049418640079125684106759582387782285979605083143723226353412257655205317926857500774368851184656399168298896149803615619451244721778541199098856864348924316062414050045924035900378152162207130690260388100048618101962600471380594711699289111817229796732634590857353744973596514063879974879952007198262866731382316489676181155241588657330386163249847877253165494596746991178426708637712876647434650588063247724303652854476676629197620517228269020180323473136878506006979474507582434183216283105141348486645921218759242413083445111625148103392060212554290880966793896074912256959038620297601548286551171043019241812813055275912079972798485135208737513854045463551070407786971540027953530904879279365134052410171493822583629097406157370127690840345631526910795579593704090651777756834723974754941837575012726010420771854264650801622931777198966784390019439747673533438341423893441606301031523090564777642794073194578725357219845319619430025194100955228566623113128854076214162654353227401735311727080394458968056819046371327160856582805918091050990495889109106370603695704424313495087372312130997360519061517200825479362579196657073778150662206241387357170690633694084236963331923850385994775945276701141699454583329666997343723994052763038279432002267942440509486512952369724568324375365889484528143199231985424211076956025729030533495968193762052121073420197386048481066281521859691978106913697399280688298289709901466366246121216727038920575199243246536866666863673043793001365993681544419216444803585473250578677930726210062453845444915289884698213732052055305684186673752492123082333504534136540285216668387394699716949993634071200994108401772732986962321299009832811366109083989723274712535492976722007242519612697305357272618001036740388865041790180212116520112673372812069218218820807676083998071729361125611065674636735949741918790574855899028994603415812441931530111140376716030789688929163566642694977805011140486384380458676171269904701772508460773036017114658495582052115688493394186133200131494349773289159026928888621618631797104257078159944754925473030239761080175407772571207394473964124701690292198326481903875686739939537153132713975379029210964010376000205994442372965236978558008479118727961183836088147969081535008473335762768238990226400202056071796779196371343689904021617595944741271224733357168748818044925981817648221854040624425770286738526657256543470845020848094078593397913116237206659203046441513416868582891752661409480834458293253094857883265716537255520261612894488887629844821153921804343307998755001922377573000579517655754644039259690406564403285941216321144955972875687849391549896922558041160659146555827960793074255732163351680938066930740966340901103390681234887421231601753984211878877619979309500150138424501797172136723151321620163727909575905887592510256012018879841525860320542849331841176935588076372650885483238782075826543449635067583248523427145028880011922520349528567059134231018943547446114669420670686229247709407560180891661746820459809715339364980640932537019740245937649586683863916228289301076439392869633307613201248559330213614454463761986874887629810713989969914582843424246724412277572379893153193761386853298604761587727491324361064358132428267220135393390061915467296445558319868215158591453329406179269361544932346707870969634017798852621894261362774694778379227552242728402042756517118491305592597033750585499275833562553593801546313076442410072416926571781381987772677911084465248747692886815582075110334171115784017361383664807980813131452598740654363248921610338987264266188285368182888226337480004806076644711598496709557470523715102980060476343968190239718149569641773701640889813530127184091085758698408120638953156286252547931757422681453946235168907109399059977200601129514411924176944510789443629663329150248121735221345971626051947263600667306179685353602552530225547013861536851394225566825188070370997817955422698402886231670905978549392095098966797747378568692229932984854515749724141347394005531799634322507461090133449216171942567060105501349879371810871861433858245689196257135381254792321962416845990670047668950713476306891075132820272003683339680831335107931998840849189588744968077891062890711351237992852609441751616184230362058066311340425937841151098138232974590459287316238835331358970533383677657719136818381063376007099933230483816745035255296688694853876147268847650616053038872155333614374001658940265778127397163128319096991426077937154777036584703566409466862497001218955769805649417031269027377355639844271212426502225569329315702860421192194901750681086658493026457890958103603978230932428708613700230467301882559802869883615553508209278865803254276395807796127197331039474717704974411547227693939819457452094335499105631800317923499840266643273343215648988813772640149214524003731571446455410447385138780667458503670635529513045139929317037172732390244262785970499055675898965599308124251647626152525474315195832615458555564893884063106683905325463066747432525328971843692953033325314005535305054738920317446332711448334049416994982164116420201264930023430864696282076981818368886936017979395198515514224176053566956547039551092306110940544862052659983653690396743432895690179583127033892937138473163354831645746227176602254005699876227431276925641132802348805287959428209731698918712559086425327956340984101467770634193928953461679835063870244376946500412821489560338612482080861605480471584241603198437663931643526574142947532323500224911218808670288524501550338965584953165765808423734113497994318745459456612687659439762072498685218867685724773895702671919524601579820904305424200264442665006586158755668319131215191251128513801223161171827033444499885775100239611529460047255463865393230100873828411759803428835745166903937899333860332426102655513201982251961374563382517178454462018707944478890542787813036305543655814326611025069160902676153603854688342611559902938651538327793738418535651324013971104125225308284267437950914964703994393999603897623992738954979705534729615617508259162026246238028754116778191506511027263408337691107119203131668106833661596609266000442630704885062216756677977809275736827260430423183187630013599037790172515543767367599925085984821823246968965019282290903040150621083612909736267733894560335016750925143594333302848338354660344188770298613836184848137503688866943431413562315434441450184425401258090729362999729917067383275021900198746890996339855551047987163201898977746087417779962557198356627859729394833105898842756858760726193642886104609098979844742402911707109354949413117323630699075054002780874547137638996504876423139791822215690881434876263673970503422338881588483618919341960537069880554230883794962646936393297291368289640692103488235504852864953475127394156822412335054521986297599663522253247335312816358033982966309146212425402319652023756860294567681110192357524215125240388337631040469898315719037555498136058366605765976007121551881480801883423275463735691626579340004966129675935554247413333387318318127880369809029281494047082787523142874178391103265034658117207151850012124047911574673481519817324329012570741967027114372047525432751775758677052823080063061753485136202818740723497259186773992661597329732924266001076792752414997524791752037209445752671570725532692090275358903970483680147713985441243649192349539319857413569586457915534806841643042271361039879307146581518636777982017999940367650014314701751707776058395073452678941959967391283364382472675530284127132771496979104953270941273916916371387991405363124213274814176237611108147220874514862940602230038546016186548313934940994558683321575247726970461265475885562125493210787934462856783693384004545309941052667755474958865238930192908616358022278492755196731121691611780171789179601516572682743709402687303299357246055421415361198351030422263952684456199386766784679297786290219144944143044455515888270236386247443343531929558290562787206868174778956285286247281572912756952929337116137539404054290699297775317915407131066860023174833156267284505975752506913136187430059539706508356367754735379287513142967368218619170424134979843807907672781834009145828092063012593479139727309443767768733502649087271802164684374366571235444190316023572035580574579599865469063892863786105122540269391920495615757757685882194999548934814850626386176554352421263808346786189345704396130513439181409385438560254866045294870146753286974618383246696045786324897630403929564193506835056109591992139496243182141188429563909475500004066683381118733576059319862632910159958703338715837250928577037699858574901674782136965546745727956021054444231451021606103506040117922674228886380155406509012462339701231684470466861468014020537992172257931597898560979057294844782270309864622295482871513515774256611210939623519673890722528098918380690134272950239837227652616850992136077005836167686908361589928241996473870038581993621972333613783891134195910531382491041133387851414120918790276712675337853552305775140399316439736323857049923283065944635251191626669530501379568538182409941690457385779880332450399589064123735601667243649786897422083307261583875990642501733339506354340621747123105187475656993038037078577558418191542614720124795250447249608745031978324044546300359959037739733635039166355226986926764068490343436849845998644184094701680263394573131815760356025622719492085282984687671014116305929027201347096266301714773105587691409015119036333315068961014027695944392684845850233253506771550051401638049820377309714068976947386893277828602055956210142167408010819460031122704843906682223729386463003308868902035568720614875113787766864936194524141291447116097191222193484245958830826308774845243569822274969059750730385687819663552515489721334279386741999840402060344536965761493517996229747244471023420080033292143970336007328160739145509321716243691942978915934829306550425194612393892725736584343916385822907222572310024192954198792114779006623120168521905994669649008676103781603449872209601738571433031487226564022146554316953345366583080911724934296954092514505353856817092002774195864404368784653018728994547414921342743371239743348366545705503360390182600633289238483751661796088009549678358595792177338926693899445044745214902357964887088673999524041506317260325516543218538222813058438896764187175199419130290814203948491143809943744098944698365915634322624431816324305605185961879217955087511944329992973025343875854198637493895265316911117035724929564320649116378887680576360317229939850092357327028643738022498320111739316402748955238949810038207398106545570161647584575922598711564602581282572131009137907702230691713324903683282460162105865218000497233136074212680990717403794298218256257811756729676018235293697498066782284227141686543783406752176218489339857946502354439451176395779514821846406038994109542878967762173423884174563904490236042622791741921668822242432116708980192529037152030460476746896672899854754952450922756086052640647123590110533710486183950336631082609498283515271008917841848402807321553354452503480423905906909235806103366631634237096142976718184267729688928802991231509885381549700182044019326745058709048214459831730293683650202810831712169222723871954836096428922853231892462434250928000167780948262633921788492346605800112901941404206069613646517865581320940925939348335757666185864188485520206739745105084314428975696204663951089498576360789053521265900220876262779437873967751372351257292129759115650606824506265143423420930848017864204879529483342969671479448878355754902608924198477289921260466490907957410932442413657439881120659941064660202398961164065975894681397683827622680455358493692450780922204521892570616072411249795686489596168833758341022394341310863498307086133372301561692499524228827249183199042916851489767220793661315009508831686331172508485604636506388611870459465761264690459383371305899915920440696185747093020840758357162212023031706169287316322482258883982906324036274691450339193162114284418676675587050047442654908285761024972892605248513394295213591009270257366869118016843158983873375440841421596417279082364846536479815039608411201361192028003049553300568071058245936743346450415251837584424336445310577499240063693642837338660522752452645784652440123401154012421933520926658694504789671215810566783079572543282336387101607230037317957542394642345796428359829814876499278498111315949058605330212847774195728444623386288842735129308783986314368596057098253541390612493366091519071513015507317011548687813360330973475546419988345599888520697786596041977462049839620481029121162306964576663963712353816347895051873502113179455535269619619152683690912046319428832764396923215680789541517047049100400671734619071941838418235955194751370273757600232650324670401548901121059293076155558739995921662714143317480497110047858129793900501534949030195448272128336618354468995196630269312169384490102098911040709055676009024348071874445086697007822968212146868546806768727879389782669735108624459053213092578420000855875536214995711025620345841297863928108205750188498918019945525778866504094806561606421560363391468473341925985154395196823503820592824520385552112706186121542424433384348830589557379648205962185872771174574038914235475383898390303316644814851808113382884810549264018388163708624402823210197787515749505778522498615135487364319908093359379497677887330689091948978563672324024898251490925160427132934731698760878982292998433424673750357884709205928850291827705967703949280489096290576278859873454353368101846006048166944142201207755573353412617793748611812549812437755937856675429175101975181500567339416597636730733375133272118329489543778016333488281176073192754754889360211186762573605607747043298649123958377776657859293517870064824484604202984699604939323096108663135926331493067634964885032757767030546474352872631823015151844108663522815988322927079076874762663310324872021591268466999540944963599085469961332381580982566903619740935714353485565531963265792658642839926520798086559683065286886056231909044294534202235165811626281930716056866301821556538063795379032711725897107573158478902939334471427759419224273177831540907234320293266061791930183798612651806510138262189217752596735744789322580781581617670587025139910147557997325050981646415505631192510743724643058977614545702366100276002204741100289770712864336545728450501191362571414797022763865288655816154322277027346871429132488848848801593152345612801691712810777532448619261147030765080465405679252998145734233269376634412886417304559431431537157126180273564199389613388513994455390087193258414640354825685359378749708035176869542970596089693787355323162701305617653974741291361261658546387236326572616087136201459515764243266990832868224806740964313669214801661475089296942620274995015907212630524714766476186401509994913491944272287146776548143075886262829016260747557434471008258985433744887957890813828222322555063309025118194581821501760203721069437822863273284626031374326980381449634150368097251762653531598037739721100023362447058993438780496329089435377797849466997101083030605793976819336010854840988916906072623049753229725354345670394182925999616333402305208287921892279889901760903885921242398162518057600633103591901595023842809867164759021014178695900883034624082109520857576062282050474475258638762159710992958149962500914086616982481182962212353623438153522852017851228598732460126395213748914488782061025214461176674934997135418133411799897069576554421039138965463101207380096687339493241079526175253963836842256948038390840401993010914287612586510521755963751598969192753123482315359281734810580988287505562699754854871041791854235298264743186355302338210627275871141751546654255979250108682383931773479172963258917025235268977189319200910991926745481987964451807630794791524773239606044269918761837561479483515614499843963919624749618584343673073039409874538537842118459036727029519001492786059507297977247714230124144315213468071941630220276581786064898401217610222905723950015280574683830556818147720047747006121694533243035097122705697931261410389830061514137347301696160853532595773990727526463138879913440492422621705026637453084732257897969560089181105099381174087950811302948130595680019641178539417058937509914397017134631434010641477754419862035994727009479683055079309957083117563931407615260909263847158812202511115833852604154158930446457604417002305387584735720998727056266418227393524288477633544777981871013102944428305946134336542712975035540515796681387468833743001126687596854320927141177908367354174842451651218584922047340313051073073510607599330408286583974192803498378406418759409351633957508847447191048587625422600015721179334816085810704422483719098257756627969324874110111846574825715878900461571715183609475056321031347186282933877099987413856251665324273577964163465223771701449699628403270407040341153132406098215654675918163078339373576694528979225689941594868521962964037344031875155180707610796889407085051617133950918777537780132867872473582503227051788604142191525931605601330760380386162909511792863663038622292243891915845035145494518848616353493635448328888004966386457620796269003830828560075100117513868991823852876731432852580148523954509868623794477991457225383467990573718593745782102993189306103267744296093740784292708596449458173721006092026624897175354944560925950235783311982283152619855793655111896236876580043242979705165681898775917167102437403353293351833749628001504913613179036065010229248048951356723862965724308324798614106558270557051681381775581235099286064308290686267301540419429920374778283717118887108702288646394496544423629058500372418803331209703611038000266387693502513873499245010726304407706006179510750825056791378923704828959953481647411505876430741454683413356097690237548426691077883000311966837237738481678216467170359832725663540770315329701249290075880426005448933052721591659453095509472906554175399592269036126817866288574464477762383928055744967363350904098323824246855199837708406778571492759793504539723367064910407919944561052233323857543278122412214578030723556586931872241113052715806850452205505958834197980810998348608667938055037584239837807920580516240496939971239656607569350454318533352560753612176038317108790771304569363958871757341783870931390855474364252948557858026731879095341619125455054558537710844722616723603542030188205995080438973890591588595280030960552258490207793905406843643140017538979690004375692880398551349739905480115411043247313056630012346404498922516270569388598471977481912365186106566623756116639460144612328560494204919570562148851870516991040505369230404357979131834374839569596130007548255769361392682366831710001753045474111019483039037687161076989458250816573680004384548970997402180050061238338310094265386963204131825541284260495129590349219920356959506535615141781406692274239467588127294707097347742667886529696192489645800652297595044249341739950667447088192357650610609932779888968452614657315167791791350143077965055032979954723343838537167454611313533250459847119849274202724426992184863577142984211257064061456328933618006325803785973438338321103736195019633271352867517900541978655659895123421294736631736697077357780851778100150632576219024600142781618516565813024238420888869428781861979880280320015424698061461611406728053331954577905065150459147964852996687644450781449570944201732429775361618187325850745506444565656742664777571119452369690748045067721201895370523834097553341072821775381808080636769009936937765003328913151070957823876299932320453832568365247753150754626450319582895121575032129088857262896467294547479234868546075913218194811634831399797225522487791346284274795110639424637040044025552120327207432448946072492232795442305644067818390438850543707181340456389299322539648174437737784742535002794063684274952617559391392037839907896013584911757293400135391249544738605483321668399845843144562895330480491515948295015094468735971528617957563901730420097592059993361235556190817333943669245745225672952120908065102487541856882438468039684422620776666061569991906550331660101962101246397861405482155813165701679284684570932969079569348086456033274767786196731983407074338970510904401826418609418540756198530373208425767880238488283622058408419652115977259031920185961175148657500905847089850465212229869194423976142303532027103606242430029484998469388325314959486523249914767469809275886316734021345806070366209370198791152732058206833520442031158500415645902175051640955665143264112736801967126019130645017809080006541339906325445920850885576307369944593830037003981229306178213566269296294658534700280504150712631104424660181742959001351337442335538222961263889733666838373213745824568099322825413973857012319580329902495672789970128126005899009216660766135243928897095417622673270825301909565376434529268007118750813302121167183328503010875413786244466098954563022731786395205205137273049923964711517577507702545486885096790430052743297526372076984241983334456516320359055388592367178250125642093074646332637950938346059841148134718330025107246712884046045970674964202131372233679252441615466577361779400477537166716452218663737962696822275522482238195885695282913665915789379708686183197165638299188063539936985591804503931125798703710741799927213542022572123796240079009775782944405654464352633058579135671368656708896174182926090684682313268420147756277209657221883789084924347013606297044105919975661014460629858389588597286258380673707780763524530993057845330437475597986827528463544176784911372067306429778023311114846910355054567206347850543643427648702353490001682976473368670002229256910294693775866624374469956716274517945175464833246170900660582571528713284340934896588310952718434200446674770454365497256727520936313203189239558514619052819995331373168616547539761307036800000154627088604037742690262725433474397182665107887825440566103862956342979537054256448030387820205974883777847537760648518520080448676995463043251206253272481960618894302711707338875795590859392042228162768292481209943257157243748536777567334726400532204567479760465951752509130742543391276768572266344057507180722468390156261187103831802100168913384379693729674617830619859058976975118487721554142542351859573893593529609279255669704875684395716507887554813520232623309090458213709017183728735434366038264668125864164434288402483766710878514903324884834437242846450001541092206818670533675463329123598939260720051674968987824621421826272708298762575684963672134963468795547375430486268522838188712595611743775590197980851215869928323737427091113611591985545214952563987811878013737978649612796966433666110879698572513717289326115033145852641960349563158525531546569248140951090258729524006468699886408892570611385808425498051959001720991691594912914531578105794597058613102808406959504787040874668701879708551317718041958560247976756277942372827487191508509639103137613496239682950176453572691175213271640074869199047562777233731970400361386583783150630477697806988189119211007213983634510887650559655494719603199590517243021995401439337789314396638351317491643912823099945268788190847977131111478670361740171183484413038935483934671591663396558969716434344497742618560031515196111662666826115037559348472222131861318601924071214174168536735246234324950335116141992819295717366581915872903421599291098307477231628965702104884042301182000306115818757771711719366971106449231900719543846904036012154763271344967909463583805967413852533129237359960702816609386672285285626107607497215910619681829391258846781534628780839496972770806829853650695328663484478381263425546369001006500245146924944107490499760337666367066044700165944821549993344491327021521419574482942728943313141712970729135699630564328401934784295221045428740822062025400556071022644780455799470331739074910829325398706268528956133183808349231961206836554011999431762745880716617160389219052889192316142093495370799805457217624494635715053490003744853394030845131297679673581159872298949044080903391063603094479480673718536542066046278138101195560470367199658039038659352691770270850989777490228628997257165069239788067407099849267943999675496686332414523347798238945337262593255616939616585956777017417225128438796011389448113726371000970585146900091524971633903504684679296347792566776916751877681211472992290520015209754565573425700475132250076675486427017494825189632582082354865604535326893155093538035229776294678993186632466563390934298149883238186755351007004293444353860944487724273598028164848101025827035791502356393533304148674610048485282962901512976085199130674186279222266196298819608798120816432329712675716995107295439308831177320692438027732419554673737955897171619940847757012020841085634095189813256810203822658853183115106529766341766898806605948175483194352318092817070953243097064317939239393643954599333931503046699717387575447640619252018044581093008896185655612181603312276338432342301296148368252139136500046853756243362860572610127612327615477701112617508493132507249980352667686285286457570777594938180971698541195027410285433725500287361440273948614646143479221245223174852833534039933827731134060064474019875138705922988150586399278438698354321759785943825680961304682025455984573543050892891489307605763587674856910848726441360438830703426368579920735457929775355068728287514505447037433987935176034228407778320094494933274686520658173422386288738989351914998451560320490914732949607544000345126219302580116119855419583745637516937844540339757697911967250913469931390232050955012539452103819517851987996578495862941588638137486621764702212148077438321530187936025929125151948895040525724731172614127578525237531385539328777638380874217326151367152726985074570330394747845301005714596950740316129777786788359256184603476813138529509351302458109738020449903335310484051269115823503522598759122891818210794081896495058682370323780373998800000928498736531985313669674918726935324862639649799423585327321442477493064016535086277563079207660226906541131353950939324112629806371528526345948769210205511618162937551482152681085233678118007944318657246889687635210653740961138781983200124159198300293362282725402501422092546445504700042308943421004062495597488675661085337207763883198599522559293505478305309650926144464812198418242406941595294194697858109160149256322748970575616823408006155570068403058052197459001716121259585200168238091407984654425732401185828618318739847069433727258959346023408183136141655988912146442631106474006283456312752783856602987967631036659613559297831279670156313436620550891468743472526834847104565548579736959060277119025694363701791856656503956577520940516896364500121501433711811633818997691589819863289055221885532900141378873290764352064640100203403592014661857468969792681409921442253143876202465054090771861815378804049276291634099978495026294535240540629721999063380538263528474018137017005667887799494692927730049129521857978099657620657185225817860588254584709912890505832111591888668043004580627716081901310847741247906821976409527739818610865724583536260932179988537896965518980415080152764156999045441642091387139522288396647551419634098159882559273316351240883871901696607079801625944142559960018757756043606926644328269984622709090713960316027929786180032469357715495295518936831056641542616627452667620672021937465878960974367439322679587888781494989978461141908067826884309346887475077604792401060798970115681345117341675176527112584658492086790847681328820132303323375040661015171660988334212221008633595559508458312173270088737608299029351445153809685372227703060556677226043047990855585146022046516799823436815315270630188370431285169773661232361064594369185221461093448518683960069739649823464904410849268767980993249154678029382622382763243053026896496639106347736217304672904670033425448654865771646458066724567176148013415608772181060103069211468976695040085528971395382194268173520633010883306223081258096146971620737733499102331887592364785203725758838697884583822563074224859826602457683546536172215812615929267403158679851225949960186149116955918570910750855590951429546371168190762607186000673631448729089189320540675818438825968953719118914478247882200082551219799871535816943395693489114650944027231583487419833479165453774416326252456430114477545759803073602475779560734610007285838031303904196833144466053690264428134484532649536937744983277348643291535430207328641707486110706623714908829414384956316148912409888211853047108547697421139594400334603505009885692635294968068578242411147373204751279249066326946668751297777289630672006553777893865841441757221301284030330548951570631882135721008116739496682906033186556204654532621655212396703298401367829625967778611724839819797469667778553652684528833438720228010153634497148786305297168894974174654120845560123722279283873189520801701468160452304600237858527078253208647846467807315163305349789465748121804934398087448841222463072761381553801880680139647480314218990264079537191716679586911697385271821691186137575919764847274093736068300786759787268980185198334093101583067223941268186838500157186782405855934492502681155838423267449073932538503225169278150112583846433467043981457469902641736641794718920923510182791833551883561491416848537362240047923942946058930047785421103714042771887849328936453315010856431143702788613297030763401779538335269418331792938303769583018659998555914305742077024933579278734303527235132668710855051284339945835811477847956147652282836751653912042010761465108862749596789748650963774828420363008893229375594594415170226582260685121176248530937132304525469289417495981906909860471439846508952096184868464803085448215594919128410045062722390893508587425272554055395067637341774748225483738176280632131484633999949433297669244193359724042600432605722227313446121827283120993409984699482559940065106270235816246784207267771838159888921607465610510202705440349641078505566207461514639976799917810784652833156123431348526957498484429679392675321829513013608339645008288819855415176123688171448570578588258219587849973324646443329899048753311585275349197646738657126099989213317515896671224932364188345548557138107365152093020946750074861075552277270910361368273358364615304916998044343724720665361630512743413797004373384282869175954240832626506076849351585163106158093780176187862839667346247538172178835923213921165990643318607372248260714005756260661490847215144557418656412421367521694152322052733747213033353622731584990334868743977875462167289378105290671616337585409741411085417204240698100809685379170141922511067905914399703846117986832038277864712802954018005025197627579621369919603912322976887686078273146776447924528814063064111110680267694216442044382499239150862384524186991058128125795984488518753986782025777884288436645598729304937769630081969193723621568497564563476783301309360595505263460254822303912316659334604990640491312275665232743471041877144545495344412882055744659075542695887020699547358448599763451895306700609381745404451962323916140299076076812291598012583055377551614043111571555874432276275169293347426643951206274348058378023640899482182485749500083255756244722339191880431030450716543857063780557139765672340356956625369017021806877351957488277535688323877081116563137367359092097237345668987524741351813986319336987436848506095527375415892255940581013532338575843737542995120924911300349454769629113710671389853330292856665038539348282658127486827346685072316437171453401646138332067390409440916912703758532289285473369113451641716214321884498922761056903078503705005104208765530566832748558885085876539379574573681843040358485709375820817473090454400791107566306830142938938569219155567278839657967961880851835204699565273703010915681804595477171944116444899463514188405172150809363672131948056508201856826491730133775694330637809272064855406765834643711775222459008130098049378915617396349928808493737978987127916056010237646511185937005124823755026576044514498720261800743920498627911088014118142416480039688055113356963754562060856413458802524644417588310491464340242298990539310551201260615787636891931623045061810336610505362662304399231509860136394264230486092654749887538307235326884393732926605936381031869733050332870768127766676127078763495207407722835210743782980697043349227825759727692086148549185655554882544650052215128922089005047911282058325799878346114158393785221098331576831595765567332892960831189445016185846152010271456937669728988168815594300437218668484591210073482187977811178023636380933458494734296621615667050666736392410462580246915188279921292016531137734459393982907155812669520109934732623391320529095979568035139687512922517202909637155285861373380806502860454223240981288020235592081430128437319858091496483579995542656620095823398347338508141533146928151756558282862792182542179875521354073745520087192245255866003421404813243446134871128131420552927367318982745631135567967693965743211591979914470169722366517933545455874887710132662158423904739999615740520450207838778850726740648201812106967232695368159029634339609735001406719784975131023320594045879018240165100576808689922271299329822957158350521094000670653096754017789740904996367517338543669993688347995848649549762206688554402398690717701347678050936606202528651013028849285885820309624164573499089547086362556302029278835946731082590536543000766026674572089735326954356759974443459019890559282075766768276715116507158968612442114781281863383242001564234018393995657658960445687167125160010618765550276584546948720794950046812022384429999959197187210376022730926665573055358543709685832204015886584649010576556738384883278204129883850445018765358903122296711884899997655301507710386975253777677013011448609471627111708599024917744222948763539261499378489955291515710319572975244757957558788037842767421480135468817497134179647062106005135044447038273099497741981496734636831331142743493391671744440766284778161963546383895076645569369899447106806120763388815814680433622216692947605879779479255051653133368712454397086658616367956055817995381702359132107120849491646804413152002087576386534412405917417010902334653952159705965323268417711308348400149496278227486140645068431961262016751847672714474539338482369883262271431698448380582068863621295235693431017158215422963203196782696495484679895246194920933714010303688561430653430194291479432736005076130398279134633099002145628757576756963351952742351205023394204529342210999439518584461029447630526498115027114100036389413446819591781501506694001066050812165226626946627055178921830996949368600871617371327037291590313937894899098913119663359576524675219165866557060328405398871831344300409490771891315471593702536802803491182727724781942506371922647884917309064614952856504063539265191258586138783129038873436403609036025044046158695891560064693125285246052251352400973017636501713349154268568380069338201923553136401663227215293215823069303693430389301690653410069662824746398768617026092416852878436288743627603373399401718133199146047957456786756301886542466864156993885438874021953190905224226659254344531707697276213147636408480856216628296530632289467477907233776747815237406673909361308808334291436338408235088641532563397974534604400587562830749102884887720802181249757684758420576158861397539203431036055595987604492076550459876832238335016034372797811144884900161924313431745649631478617245492910242795788591049243287305770944261521918033347932585841525018298280707066673870631331588490029535115398992625125762041709955645412608041301795064188708653586440816478331325106437557499770501387054590022469688256251378589942914851342447551206597491454720135760451738730851387037219644842084844593802248596516691227530099202569682146392659211854145422637013903147841207909419810159683001303663632161051928611360490431860336729211133624853382315382374812138356565220594734027417551477808322187385304462507395658132754592289066645093069899513641555105752930953028446902571461802519375702215690965366424980491578727254488214732475067560369893361836262476146651187770866385579103136739649962742137469277097507850755341190987234421900857435919868167776775958207711278465008409981619808098809208686736821941239100436371491664533489665688536522155095566777697078859227041635630606331436061542636194712995402950953554219553909925806197948334628855484038148014875964661871956541625484119894351472465851018248133534849779547373273478955110941540161182735750515284153706268378790168832281341322691271952782190259831479794870996471816449552227423143642449855791400447509419447964736652836579112893472211465817680353847578107126308607278274305452069345276958115004831063296039062668676241481033945388727368710843500370282384691089432844134218740875608492363249695786090059620504922135246548863886971685998330262284293973809294958602139072515564400180002190452627368308402543603533141448476130670384597566671969248145476310051109472418561309892735481197230737772689648380376732335815463474691826621985844423470789010689493124362255887541254713990889734689685540262104810947631432900014817021458428313830282782794797800067536620636015869048620477408709315139801302791623933973891116248597010866611301505109751458044528041650327450294484847177339365774512605677553090942738421627636225116818741208082681411745080502225475661775943702279769608343974158711205011938202003791108407971564188334698190662855632674278815215250004756360878095139538160758114678336841010108846713474990575110548409841180250790234772170491725418616703350905076168266631481909858595090014676695081118677860664542022131629024172366657279459511716815975656160801532567597840807152142373212892599015432507945340529647870835167415368989657132148741407204736841526738951032256756322153618094075939480940258260124499597009057129729688103291955903212974999844494190520352908226636365098712920689311108320316009607347260929483648628492565530191875640098462597169483558597977247482603516642247872350278988495341039272834675922738016711753356056890957730516324145757608712764872664645692111618536386399214489323527576390239715727256737770302004427762077734069645498244949835106558081143854322974511160451314784250742456915571169226007375178650493757345648054569495386815217400203807646974682497140012288319087899556272107813547451634642127066339877661349352942547392998421614755161817846458461869876658338042130480844369059238669925881764420440432589731103903077733774749300237586291602785783956918455326203644856046305483243058208886430494071615871155137650450337151692613359192313801378917888578448280590338702932879164863060622273544241190330731818763020877286373981846314698600784452484653736466993104770650362152319362172496618995409251486992014729601944116990526211121895866285747539972257179483625899079121052860261076580176238795707402366562789623358815031910962308242988149745530012360891491683621624537323360521131083760915129476809510384504330000105311263927897153990726262215783448219792540018636096407009716227894754854709542524625149082389307439247316827623790439391506601102965822380174116151195343245828957512306069661568179784217764371300296299907172891490680451263880594596513273554434215712173395124364028923270568805851158048815918041825114193195376439905881151564049377883412440570095014114065051921298679571018432669662206748976375748330955357835482885740827263830517214338584484030069460896550858156520539131132469638985017958185765892321644503300569621895270021390166013685613973436361767722876682201286758825093010287041549261639097644306488227429522823162607492755191974477770264957323229957015318096309290044932311040742303064910652609932961191811320761459405788299141486152130305766980425150272620900586745572941679854068042962758012981831005690660122304756659007735113540870112623812325478702006367487730583155192162410039522087735144879431635746992693777822043848196328726629545239748185563498936228470219714409300297561351273664297400636399263117926999488324472432228354769273776104933263154911721190150688565084070599486771682106892836926824644888767691858220022184569513603865963629872877728229113297651529568912608027354435212603424967203065142082964066728156555680292614874181140936995071656803181398839616564383590334579228270461092364023416267349790432381312234366835736052257550648595751935507588423341673694429025025755081404791083757264416190381933840399143655228065332506499296090754084810151866380739936549651048324412696018483044004163272838863265574034291269722691663174465738217440801610088558323777869740060612640476555856922581260126047510113038009583475858204578164257841199261034325063555802620856222066874097066567211209598578717215551360540751853461168888721777769891451555355362639804362322357767420023925080310353246193428213293014994863002522229945727145048820019981282998598667932593336082109049686196194592139884365489275449642158122696699488133277420679815692685255578848504340500469462486172956724522207825875048348662452133422803873133935922305671069087537814944420734565344085872615112984184106604716689700529080516494844865975688044765363402133358072260912470558688657410563867380630501204177633177171092534239068612295130008972584159611753482052332968760376466716041755250561451133979618197859315356863483035585838383113789722769732412264399910491366546909399416617471190572654376418745807600945384234598520371404648438644695357754639205944709083527476558521349863119197950442788116374281273448794641663527611519336197223858988565865609149871213459058449771876137634542743588973765735188962147072026130125343657755756402843815651387566949105808755506119649209968328936001676802192458439922392356040079059201575980010316413385808869106111225189332577657120912391835329900584076322690133432637202857589403500283781639675072263320479174808364250842367182501881052466208350642058744835985361824653385144205980757225177412938184521634965299162724265158862654498928247599725299503632414013709898150224819157406135252885102697983020967685330365668095728619556040859355221011305876340521558131032790542791854273611123846254205567296578918900793921724546396788606009691332039077453491072440202664855398326227946247274277810670119745011513057988427975314780923336406327606894334932597858735715604100585851815042385322740837462915310023714138590167549715838762185006929159929484923070579736252469478731695755030161873888761681362386576455225434767043679508262921661758365267286377990105029850688939148661022068726619220907855971518988995814180478269578494519210860977050971843313828609792781834898388092949416974696911548137622360735741731818004099987412491742375017582998127222181525718802261179623795580551243009945457078033392733671114034019304621789024526705135814206013642262135015611355238797958789120450926596649218420082477447695935647429654123674250064845501675864630729470750420468837640263307409319516890492680387120894734485552355919320172582266039371608966075736099733363440012116105848037565372671119115522748090184190840745268942836219576993538149441743762602518550943860636370756079305314893270961104945903473715202883828183022654145436243589574346559343216801384928824877809565007460967734139614512281999600468100177201628250709075497698584603895859962732663667199451045191379489311495305539568504287661915512125374658682174753936688012305041874354041387099573565046071967004122623645342858247559026998252994132549783642149992616779881523351784708517874701396724023418624155149274557709226221421688976579226187741623959134778289250899175808196198380189738983762784933970857171733753300327647159220225946028522919567287809713137659366237362047372639396201816665669525747887906369465991431851870457360978779927484890060606787017771238346752995793172376754800694237719726463987377305514012045214956167457350167216803372961133969901417338154772583996736219019229410385273221602366012371806156689321995631647353639933138872337105467377347211366206813398724975494853371299990620338954757000783589423766356933053994501935271861304815717006138272165345551235792550433650609134532828001400220267269406618316472082141207233462639600885489060763411956208027176272304811582731543185734563770858176757351354991976932395150793562445638006736953524117513705786630145181518462195150123599145325177608551305795518448567426008121628736138508070160948920114806079477365990837249334076520572716217248849585573473317628529358513145583066596604870629467771228510497180032219556166856696138551121521525733062382868173066490417193105370600434136076001546285511451735045418415733019375595390651158894474581887859481032249278937976999184548388510054977634379251450935549153668645444019779815424672102098196103442200542025360243024646353394178447606255163638845640499345545949101932024894059916395753241164896289056116057938309142340068559801968292833711010725166591605096458588998876167282805166648618106328451662832779920490184600973034388425254705557843167549352954763542396071934260316880361450846202309300482490277188143619948882075324816460061777301666148111109313318025619910537156977862086947198117544082230778023441645987728592635406770477056939179810904904561957759068921451980296650040283370997067881785301743257297269939494715233829046307428890156462708118728904275740957365273630359504315089704544725239893647307019330103186471363912390293834236776969990801419639808743454013911386382181875245285531550556707445681605899602406999267161705606904584321483935568374093337368620701213409607370558058069001790039701194928964101248499158971920931506384032265797772141992804037418629410886935030580533111141006287859065997641852843277061705101954822029331930966133692670249891882770135110299432973571135031623836307361024432726721524031686435259291579559015741632641187542767253526859280911274589672705268527374387368084734763264632735293511397705771454653689597200339111313462608793719019946955919689799979156310129259712380917594897761922202034781437840227627202500604597042485202366366904252610906833569110127531876449284943451041536909885682956277869116037908310721915089507251321134270200019392552493903153346333931590920482991832987976291842479316233416621403213487491104331771316868259135129227665850966385519267958324073410706548948917658547846214423960234146740953651930866848283930017221348628278613379891755257364193857819080043698600080609372037202234170414516439156732626926016059886396306895907006659028488922394982468716053632581881156050266453079775870701390536144603216594474777974842285238219000866388187774454151911754136190084134401099527139428935179768202808104839841100382505382324790831349146705200293908652222386143328345830475506278009787525842799168268809684315524730102840262391919877508978714585919810174265057407376194209666340399372935795593836276461405817420493692129412436737751295294741098663332058178517348629568494858337760207367113404892556796799384098057332415607152034895567136984940389510635394268082105173619889031901274383213618374183039795324240385262840321817123851845379367843370571469517420425932966143570122653207784453504879742281400263613787588403945161787354179188834304362475804724763135886376579046308649909843624028731011525892501683034680206638540997727166410817185596366594026920274101644294470854566186207638838226150957382851467600393198260789651583866458114757013068222256217390513388532642571096092545779426866803585774265148832016318051422102426009667050030129583723796714390312325868029576311445901441161260225299487571197277032175675310963902186386855167651492116457310666431726366132873902259243370311933516967826469275776586833833780933451849143820231716480300545455429790054165235316200698797348700579850511087283075956048402484587761601949205887256612580214708026402472064144815384832634589425171749911343008577784348551234066191102504555291360901202315976820218221903579431360847729061526504711888575537420024682253066243313753993243649349840072734671491590651689016172839448009161098000188873560957938816668147320459769049771340825827256349664941425200446989404929029554816756808143675468545967156099908204740636007213384418914291128810025187799517937126686449787247116037306681772358018339005910525071832534563782053425468578696184081085582133464126567525826876038821499780105253369017916443289643496759094493736292822108321981407458163897008999789072359221560043403734335973703950066801654553918187634633677635083583809785717805174105467507389322405595191212336820983397457560315346853760716034597334414600189826337829552396471022947984039904847038944729447290570608059355959638822622913463228612885180525185068031315949068441315446070375851256625157913652331731602227408257682065823280597618756393103309709479991854994416193577129135218358692159820949610801560061186629249457630760596965335368976508053104493224278659154743140661194741374612881360172254587195843673282897015000064345001560789602568922668748300814225632044330207152102956710967270454485071607924594348917670545260297109760508395828487235159494852004787076653683959947183660356041872617506809376384514173779639781607362458165570966093676362211606391739136642311628574481444416977767352501946879647661793733909689751076028392057660087527075775637674333350630119889118548354422169009206201145891302376690893625906069924498619089772824060701836208671989912272712395561099823181093118256694668080353836027170557411031940224234141811515430321711879403539858950465404709934685898430902925827194240975616048811667883475306634866699682557942994152832822887270375351430367993677419997452701906001653823215911625630127086599825494290802486229342951871184789349320854373299401198971283756350725710195355501012346205523519223326737182493919927314238944190944152923228225152730097882251642496121083716221856572546377604657314189184945168405114516869155033250957569160898325162586673172647586234862814038651588667556210058122922173056047813812072666311405370646650737723546336314645508208872708783195506902363058192972378842405813414526412525113067746733767333665713881643709734353557754669859294655454424168476238873375723910712043632890031335327457960112879182920767585815488418558994278290956288031020598437051296598179268168512852642767556022393875766283967014830789452410194591936189275165801462830570597044018370172394224927019928532930384521810855196733040927358170608385665674776143326542314451770221502353792437572746054590276995965472029683773543182479076380816429865663958085445411159456677323376165559937429521794888249436381027055873981719956178584623792076238660430535633961735615815042786647210707833985596830252288401383243714020913348903648044149320062699626786691182702418140375416466164348706425796469844950274849955110272094917903754065394299553497485661304561596462121790300776152968055911125902100878047441967774662972776135933822236196406968394077888654923391191723115395255524263915802684498214618823704923744579777284489179111473245829050329465391456752962246323409549191069645332019463172443591744919160220638013523691104261417070746864537305747265417137040687727717261255412287696231997001624812644634910936144532955348574809772670431795363492252240876552339771849529152847558873657808711875222201606884971662862503976047305040456545229642973669370904115122815968786571962459360278550253429404688680121963645707277587016054509571103085337787906396463176132378363376926042177807585671497438875419884706300345659381445131043460802790112928675655531737905786517612521872425955037935501061771258439104170836618178508397720166360856820843213736009172555966126215526628116756718031216619378247336996436504569693568127652657476454481440311028196147462606997122491236259174158671936301341638558748910408076951818557293895332355621417732464414838513542589352269016347378864702637335876039968152565574635577017829057730064402894596751825261013285228835215401489630901249245747584868495531102925978330934982658740345569794482714845851735397760565518748924223670042777495761470598950359395136490725021743497000991118416473971841053481031932982116789710419850744496504886233201041359413209412955542049830210271132775037343659224540297167499915538721706591829236979344678640214257149572962079384425143730503542303451632319408480284249151939214797925980586361574520448540137302821845682140823924141130742863872661480775942716181278231837431884317895943460114970760137409296936882248182344546933504928046310277670356854734664541394370989700986756200767914514417356412721107281380640079735439568586086893741408774662606306427501599672815777669815025910273864750707755284796150608727383868249369980936919656327556241227103937511794070666927960173145484413400112711891682250689780965930276028017155413289283074357949849449511492522877717997650250163059566086793419109385517736566681812313250060331194825598444508901077965707216666360806259170968080400444626566681785516082661832956807205011231941988751360379223865270540871444005732040364556336851685994824971636432781561168818828333726149627591463635912044352473546665807656247104713153382989266958335317611203951576088148224019656780791080179490376710072745165117571834656295316424390497579193811606334926662999563451352417832465004927949143262041646634931115042312795706902281994888082576927245512391327401787172770434605103130681504052922488794938999075543530718404623314785313357856703917798075649220304764125370898646022720945521955315022607454168145196455893306151199045800678541722705294536016583872343290065826456025037225174008676386992009779656567817370610652524885912402378472985675548964684123827485630478510016565171028198091375290344099424655214328870190467236476168383432306335215404288117207511002878429090168315294188208029618660703026060492514719446860239089610605691420767358058924565874794545956556385588712593820130208723816966505263950562979366071887329329085255443492219218606487936727188267395984949671997205084527214119879115091748716050601623373508521019378054327648716591797649472854537787932042278361882021177297884034329552595252516049595746904686923199273653002982567925788332132390864206355052724115886475404287760027400041237550800565094542794678288134200420794384795865115498998551415104088148245906115986347987209901011151669622990630085681983770481568856303047791610763482611610142335657157306163375694501728066199724315297309133639717622047575237538225841337793784760407400754885518637008795198967065479022197518948345198407259070376336112176539188769724131542521984319471355571712947739859034091948847416710732136383994962119880889812360740757989064297757400879561344745064678852624319943531785260144552975915883536449592792256879516982435918749856542230661071740382401130611889585300472043416878976370809850903093000452168654094534589171479238163377301748601677781719406212447064118169864394994984533127377150289974307664995467592341154000820829709614147098718423195242691004657411595665886132925249530756184511124609902821867642788694595808127026972046178511890951416525479200486192605201306119482973399109429620055982945599292837910479184376633217629401966161554991706142114431582483018310023108501707546829823516191089012762400759673003887924204300023931353559198903523928443330778989726538935750184539475138517104136103511159090902245453169344586084199107473034828956371164263302288724545869356267294231588570012690083748279366740461736124200614088600797777294858894770984550135517521621245335152806472927793361349543307615542640603415433422137093911804012553560509054991954034290834582559687651306893921669571949713220353956850731781460552764795593933939390663054347079700665819803227597135170904040583373518116904575558018885266440331906817110084334276813356652191216777426274002403560722290762035954750533475779495923354062619305330555607934515686677017559420314131962322412012451355940088970452940211279690215288652943806612341034371525820030429034821073410619758347310277476149538849616424822149941468531177768012810955479111860731788090154571687418520234516610220035012851593042389908994538458900161039738586132151757716055348957069990037730752487354958023490478097985793622616631444924618477646627014668235380955694643270560082918014584968536964901008467861260090637122795668670947170537017084766891708398096129267280826462868324300449607237393905857022075553061732144946192056055696568512328367401607660198751264642697536773265801247847172057580480985263274879975020340568381629682711936746112890649165885263360693275102934201817628457411676061957594668582960972644990119516931936111964109332690888922386383184107298716470854634538938199724866232139830926591771720095900544326082383981116574882049854477538341470848084265089201810109896077781572307919290232364274136600790887196766587851136907320230495448016060625088034809728468340499934049057189143378422892978097564719751420373691118412464418726247801784663098121654275416509345892617330464863945314403115371542729649789299753790680681641127028189149720204374564254554377280370377911495174460041123692106509058768445914661569647886809049015829834292255454211083708502126241240907555155568792576773183848998897023077569906006509478765000301875140140780463543817331399641935664817687105564054656344132962709461734797089030257789108449346685144558754195296561446634678532804108014425554709227084568321143156728227890394523043942136719909557871918545821815752457977012752112214072981646432207909865974241618720182525089533596081899406446618088341019753398386556773115779561070265501597640629484637320018468529955200154284171506875284886680727374103341214834812946829385664569880695038555093446982080011003264386211651211738565507596450196673582125414619763194116758388970932432612480092384915863563959348056718969280448496590203651250703418239235003258229434526079907966562342367325929362481689153017803308666579525175168876855111725331784674963497137156382441598129904750639728006161854056909142502072457781591761151937850982001868049984983108736875273981370690418613893103806199877968508136438361762535126950854653001567547366267956213562118344409603147606857776145718569721363424437144479538839816684760435495662296538739828959541465228853679191756294206560330704011937026139720301473998773499521499012928218847574278168074814181043483986668940346508984593170097755674648136409798587590020276879810310350052963073644807136909004480916184158921488986463785613582104932355376062984522832954780873877964708980304568206688656204261664139109623429831948482322071092291065129337154626960081111255668251727022123722820402057628274655569477428561306941366902578469772910620528108566910939315567456633775383931254942888713115015784484959174748281432573194146876518205454472170655905730254595277887874336082735150638066055016367663296418417571281812195522927899788636404938739736321691475933141413838102470026901845293875594862565746100695906209113146818691738868642296047376240815282957717613482793478832250023158482085149700330388254496425816710493511428927340913490013578662385754545123932992187367262743682170553378087530124659633746449752886143031053620935847273378188271770554187628532843476852996284327443833389357441905130605385139902796924607745222716081573684773601283339463135416998949566821902279730456667500940251628656808792454223424834446037087544402620061918885984843413204837120197865794162906681684705417354048555566612597272899057408442677994878634385548074314755914907882833577915323792138297110812071172049423617273409675650568887763448509094140364627752875484842968127520374216252283603844314562372138023212616075572445358889041124423894061391820314224320473580908733615780467705889144871639128615247188997080188294705951895540676705585310328877247839157529645686163003170168366013555393034927169774174660993799874821775388926721940437746037190282256643885771775017817380729523537433748032525513837484130648995281598886323423126483210816711376274233689676695216022091580187424596683747498924604328724847270600479015864485739086881005150400275914284337740486462130641398551278599981582572620536758633269272718964186503752468471869655160954549635107325041642887871620172710493951621442646501935344195514627366806986548763607689637590621233249309866416474478937811553629830629788204664130450753538522183263770986567069886441197945076762871227077251410767214391619897763154446576941345488521893357199872115926085874642055099246351718654708568545382853161101310739380266563300955725378626707676384903823577698842355424712541875078675466270203623540469529364863022558280353904078450395650015520311818420957062674604483671120557427204554478820707213627473373224072779786270851332936916421796116133175141508279194490377447889424099929909296823780931522439740813105979718019722987920723701096438845086044878033300583115369075952082932529756194844542927522340711728289124227314266557129739424896106848222135690284360885163974958353223531770959052117475272963644614297742787820587809226757096954213063284573054871468295021656465348173955200722319775150381972491169653346766314241357019110233132185527009260925587466321319571182941283585624021700316266653290465796960419616829114868559179341191535774072464403710465785437091910700754939565615116276132789087057588117072657590859665005780613432053340584451657297385371246661920022319520891679033664827731496674865271480804549564591518208028260325150707707365832650558912278241456595045610250121339783447596131546214939808909554828007093657952849286077690773274078989674420356253178541816456339718265974617698703931759365107247003394654256372108280532324694407072775198686551091766118887591897667703565232341838738652453309878897620895077048003732449349403069006199384761392567002938360767180254346448452973147333619420850678852100407381000496359677769166728667212514707495495735932737755989688977880624369674572537676603237234657683979373851087608949428871157718322032101903572475577916507756041269760736471381531803234789740786410213055623790501645929297044640211179074817604085455134605785178228237182199898832402644306358500069193756885923603180745223167627964585175280004790607455092244225870889549200038757979171551864745788370582564505490529428943571821566690304604972221668837024945571480156129782946022041607938971632370423944915170496184635031420476390934358755467487784004515242035745160300026772102026533620539921189364215988524517536485384902730072250628006297312848278811993796489908260005185464776526460112436350254607984977568345199791543515678721832065413704042327145559509776551807613123247860332424676186073631162555339156013046821356537548265100959016464654162932679664772094514854977996162143286639143282987079531454390329301585438225652324412090261050720431938778928395523453600521804895485182178765542908455176633857818589426289358669637582137546372271137291863178560152292273360796802022210022699674411888854275241956636972339304648882465621483916076997076817881946663206898009773020941741928810122578217232238688155133918617217524604242174705876411266375927328789547079337457760110269536385288971262576631862446675516726529897105859494175849942381208885824765251678383682721492136401885335353354098851647552355737933614659567625247386944896127420165641882339399951202669104503010795455244133454405924837168112309674702633080979007447271193215678234202424687824915190465553848487293673733485962739714519738765372175005850792998561052591037328218902942527116446219031969296538376160208920901110125025401913322386458135354004116801558420319202270171723749932699732971498535031627334865927388646742544912304557312341322774260343095450357032348476545024446605099165823075879538349697356517012592947288363371013272792194001656653730290497129789575686241426748515197737293329432071175178052015100414309161938811505588945124753851288980486615344526177006276325678275991254294629389582395190573129725230651705866259958789651184333598643723593036719151938062031778135890186083339104949696590284271615490207285084588220618244938912763803971675914007116328017549930060874413477298943371014628320498824852232459799226483998916145888946531825422386665052525971572513442052649226780793746381103262061969849869375636395636836699607320042825515768271808252958677448858441729164542457254601824194675055537659465157888109174601214749536596291159419512858777048310190964748962620460985420053544277163745719112283306512586382183179810264711722920748755080288718049060206005961360764770919771108706248765446085299285613025800113383075555504265244453427354995197479673896365178665429013781567867076458187782018024581247183452702247693348795805956308526981661222949998845037749597713503921511448166493401881535996965486061094544793971363025185420544207006111846577271064784829173240200503835646626079102448643211551296371507283772942800819932616038975165364974651136352077255367636786948898620063630674718272129627153372166895776269857516569070744301727908552655095309021289942702004546279999638466742480362492257143260162790695239703510508739864934170724195004765779351339771068944909993073446066503781479785975691238700762215566534462967039541518043793227438866147160599951636048181221430022119000602588018095219130972477919463422757517993165337921818962501494556984558050706450100818603234632545950026883757516646183012806598190036259924195066098978226163780255838469639691981718620391177016096987025332236765085972672883919909536497416980951151913767952756050165196726076429586346476762838860592355063704888111677249462223001512599410598476559990857017021459246635794551522279623902121251592496869527437571107166977323740863895417348762220757934688791154585823488492938541029076610470764839120113025675442144106991409360511584467563567709453836558368904854418101916036633551670253862245540037422845992764386013819073676126339315978550260654371958026201322473289029908430589403028972864321327800670815479243419120045938012853264305432851663512005499601852406118578034309863250098569221162799087318388371142153130333123937007465327351947886880898075311764642699901387819931971306203390372119252528011112455585228768232024894441102871819281435983810159252414240300022125382133381104467240001700468773929067273518215842756602065296797145580503039300382068450294790024606288435842942755462657340021369166958210104861794361140563276292638373100417782296745805910547615109974783352699409548170478943018954038845251364078687906534173030664295733144423916253766519665584149140270158907365483701233516462965136963460916023812834829062392906757279815578971309954767950309204645682320236581418039520940319958168345956482467352172651951465560271050190984608764530411816298272251421081260432705929374171696183577735907300395983613668314068766218434084437422286168969019807732539569952224334307403671161918373014255664922145991021281264686577379265652668235253856603658742258554928515356613537421492421857860794146472785827975938057074341699014580210500069939541116105173668282977142447117541287485975422889562662906749018790125148909124565774722379201090433704806984130019848427465106359915965228942638043831476167420117698313695820314361357483462501334686761134216157506823409450587256852018137560883327093947444136780678781425833764377407599871214043975889004148228232673379341895771085094998184804222216941203926129371208893594748652094653673678674870179787023652911309830102459404992999997089494942593354655508181329962949643691993266078844075945711264151437192970908825737690217881051664899685675985781879231274464382126997044666657402089073624446923371141739497036039137056752381229175472261158195069370471983701923844621181489698938774161858945746805725686460309568884702952429327291854506476128205812479501438714151208888362611796385044955003899362412892165195357598809245387313298380833942130521075997128904159951439033127601536286775752987088592778711915956888839082236247558641404646791346439742666941499295364330623364193351126398262143294575094634483060293757181555902278682646009532515043827953899598869491498157078330740949895518844194942964734319675601765153347679021566140446759126560096667234240652594137597567748774314692530598466000030212804059772723892656344523608766910135015264615421935008731074670751246585881707863828785614036239535096410567117403164478619844560025590538383421807690273227434590738912638896700852921279292570986313917685556882971167215541442113787146407509642132627772313158749676959636986190208525263454886094379224630552444271923717899409514344087226826857406945757742828790192738628469587935895908627778759281332275588446847637803603674744796136810489011866342591734068315657095131651035942837142068855792842608262692835341207407195097870722588524190478783918416065306275208555252597457728278765530457915047658973309708029644795970573869108283523326956680486915470715568540044307461015103777252218955995100459633748581360040583591461564324623018306563079994001278859449908538126122083305834136740756003693077739532172848000446513213837840620557808884559453551324149722336042477336918793506252999849184086055145165127164110173453789589642512338640078388061626485062444917541075036045831361031583988308610289992388021772960780776340128254136930826110487980615093907051600109001929740791591086123709679135613991382668113074675142694362507006694187210825171229694123201531994421902484432777280812247838273901210784327492413358168214227040256701072344249329584801269034022428831688102202346209882526742869545139435838968232298536063700429280338439484150311328541276596291872452861958147877589123850040325414571103774127243803315661298193213099044144493491772781265727046526265453264803087875133991384447758025471600078405939034529495636021716680509146982069729480941410329228535145874209199059739474598680602409988680542418772600527625762050693658967373811151973628542417408244150038379423158894506182123418517806738433595518060856019604291620392472998776150235081603139022215754021989636047661252298324569426090378770900387786464959998948666673159440996824274993721900016896839025519721912364286826259409527012608892434321641681838868929188680246490847632664138965612854094673150819263079509331183054949317586302112403469916360372191478578692921774661047618089512585695887233680597239220289083621023825566479244667462258292050115438893871957084805000759679220482568348841427152188982565026499498590840804529731650310621857993622326516008943375580716640014278394077798044698567266679045424811464699161342949295900290470496874814258082647273964279639288024158849405638569798171401722014022464351515761516144019188858576668103157138838459934937166535228155596733998428180371537104565389927719873273312432845417733160258502871288123505789438063940350931199545498805166295045937194529109115190759936328538935316085261215700339463298053846818519483207508897086198880849998982126824805688440232468985321504639482866102095571036728310905910653364583573863533780643378299974010689334220794273831312800634661719115551565637000864132593566080863451695948210517164262855579767902723056382494201023549271298727726890639782355754425305247897848023266647324698610923632948114887893911985823457062708507460046406458355943113848118208711360811981507900482075571381802553753999638738124976358745758351897853790721585350675205902020981019081567641802715143452328775597635419061869747289155752732186470212322768103231880531951579711251958924430509050580518019712533680288951413410874225445666591050672179070420312160093260835658846415769530915251602828429357241524000429241008302116830785695874634488826755888798331081795098451592387197557553979891185330737372090570510197566304770782517005033029325279567501753756695663402653965584816515798116866917987725656412559665032883919096789166548258062070803935261270764187497567180621403880369485708975912182578192360485017278132082525525157479577839912856823584065660528364255559138487038388940939505895459169087705163210261091651649016577812374763626721832844646837859032987650876909160696528922361090624857413184274290229056596812492250942498791220328682566721660374717048198831649331406458453819000260302637800056700395541641622351203707101701626676879001032312602275122643485507253935270019436279119311170325405065580908885452723946429437620016001955958003569592333855686325521037576900357959571592720861872031526143160773490230493079931730262212407053517620177375583995682519760174757165326678908314833358121546769904978493950313035421163937808203236135584518500340374248048148713342540764134165758828723744364846422641114397870939018762060414394564557744070554735399055615935153648817837724986757292874634631286423577384717768764318977412969142736750306647803570118551086997640164711661976900099849711751532418386509160889618642386159422953809155720300328109964544005745492531608675844661275862760901970879910655367093471438504899060535105256340297025209961513832687386947787857755465613984445784597122796136386160316789454159121761273978189586770479958593903947716236682231453602243067390080494914763226589785027601052471249923353473166513159608315587425557085860632684245795645334100314832999169049921306177275495872054139324204845515475234498471353420977201486866442982300809443258347236892434497373589132314268753265156997115371338388484322926889297458944458187666134898416790841958470329409029373280786360653021568455331424177636672435175415144741213258747243315780837748623424229988202282552227219370520884334246311110350113285608564302862240162711439107513439551480235550923705885786545666245026579213896283177256315898639098161447827633470086840097379762129484198458558165578145622774156785292800926651523908960161213969983790781594635908776411707273027186640847983965212453286822011254749809696806764175537648904872364052291530792213330276584141096088526804163654004512918255176045802497659241377505805532024782087065501749624478486646480237601099520898976757869074041847349331890998931766322913862060186353209640308576105598186578137502299068148420320175853541043395959800647695290280474341153865087112565729401983302539234282487742181299597593048676384661430786099689167567368167354202405369119174142626651147785310767743807634896172376391530631756463856211990238794403803636990229297681308759969324798961169836687131042285737743650676745306996781338997345605258210778128063693420147955968046306486316093351420667073316138890097256743752895481829901295268204135602684177279741598851059354584802588997062097280660784332989244277185349050929063118573596142971878315952240163999824053793571090670670139145770157086444845358513103321416119794031818017041045194318581106655265000667395823463040203398709529681152627376873683361242365301850758544965442608643511675201068711767154341330502351427651905322023033686970724377584387306480654771036105996417175663684529544902536077095309425577199912641375662257991233474224666339361229378932626628314357712831908047541539840559428997740182566500194547220003439058184359085637616383159486522013168538150440206185530703015314037191942749145274491703685610579490474906852575382857833685894812348084237604996238315713870396223332223228059652852555633027455286565785622932314036825154407772975764320918779197680154821003339254974332172527283150471722810999642137237848183684669836477322352291755274455315139115214925527267673654725176851480968432132278364299411797889829409506468463537511755317356154269635529772090519429852957897072241758632346744165077856823354046790240949188485217182668081629864474344765965483448185508952099668764750453621541750297045535615566269125840203523564616405687637751501745930899472576234021114954880553820499111177573120296556329763009750938950074608907326005623374260055007127368105881982271756648129192092539208267563804612466890632205028222301865699843974031589301356420008995378797678059269491259432612812459766047317649450393071868376043926081985396032061999253862600828358000340342741669916607484589118852055211030347675537154906101474612713717323683114047606115034936640042574642524122612278386904446916185619599671504852277603905049217812164778924194626305205478014646818244091373710841367735580541419941941997546486365170085228052292045648488515595633579781991178017626616134715286665181328766019367546049698657197379082094872718042739462433205857112200611661311154732736640568101871765572816234406241856474232651333051558768884837304493384283927529753454470814086877101713229751602521122919766265539804633608454530239922140179345267415931697019698116864153522565507043332306553006231703793050688127698340294836023094330043932259148829196357800271786478901245008676162155491142244891748406470143730029078317205631848003181041740641887748137712096168982157722235846853247544755866838928017097205252141175422871825570319026433882651918068865506077673334744869899321166124018040143418168597025736379686169164698070217992337984152399040256017175749674963687747935964214212399280361326533434673504180076883489277749157458589948784924441353932671960034964252074728527966531809343180369866282417648289492589707691617080857626423832204203677631266514672688783575504365094044114187761918394203454064840134723007422130663444926294253249570110223931182428630524687433002867947019470174230467708110046130943232547780313165137084914595543563731160435011900875333643156026150731002817469384862849210779902949863084447434825076088408574635205627652264751440103876762865612436519212290406188674873010075475305416500079945357456169005814314146806960445861794398205094879226043215573310139878426178746208616603327157048960916410037090546375826476249122216970081803535773260442367592907365786727299568578255793323325764923271049658302905415854456453378817895442887256058217115836247239693935089235232618817407860207971868238911188143732911428381049747642114262736980883084060644274548973958864449225069582441877562124155976227959663149130248000787203133147099916061763294292085840123532527067828810558072696421132590396505739968600020196764876302742122862585188016683889029380549443024747044351884132443863690969823451515058061232475472143091379193900399853846277499875166727440804138906235407681004228343285906538572028917874381169567833830609686628215689660357608893213012502652555868257951698778743182902673271107287960872441397787618852382794147700945444349177346967410905530775562706367601029927354500634816994267091343914065142494250763436182111746297260296143602130495914733966319778852688289675478779599116916770107572213011105938484116188414960939288923113873727729679346988895176356854922326481111475452994863845767433191324077028012657170666050475300232389812389924156105229456549816717127847535092676179745351318696767268622027150609360447328286525793497201593559326150602753058779668417090589102173624673554682902120241084808812080493139143900695868687358461585809079965187829832254300777530913844884917807021853831317166864632332614474667478118722242041525085291432670961629366510413254070305978818646411163876130703673244979389294494301427635536616963129835545824150019661757841840997395703125322270656833879966411117336930328091085084987659953136235136634549298618308351753220805267285246239950150291822707041676803580071148524848970800942990194518053362101944083964011604344184522402160305902771943939570262054818851495149944760409744417771366598912770585684608289188105047208109819417453380586211060684856440744538746644866765091017112556823741464938894146786956953253903817179899299101736680370791017658022338388059232446991428267426182201501461615215356344217185841481168013607006009192676135557940413756096086497235636239929503252232128357804489139792556926470315173822932167131000318469414586532294999844679860483303585049857272159076844917252927147913069174859412475637861749855606391228209269246284710449018593578309490370086502492730287932085772320471719177452427349031075118994036298089008098134367074112143437764759812731057069201187408313064747205804310779028122341060343881057107246281039107781786639896177004849760362560227873441924896760046826473180243392028721801701826406815785926447274934747734224827877684071596666770359864421635521647993682168437544241728148828035462097959762420460199875933588353019099243110274195199580044640636496092781902081920472958618690118280589910888405268899680669806369436466064980453649105308184742694590038901601899301362093466467010796406149078189988454590501425639497311228687930737739167563420094078265667448972873743072513505457364694337799049579997371103848270921490177943162398915661665034250365968266889991523715089069978691269782036110487106567297482304939238841189992884662558661097405865874285235214586992839338284275092894609593892001649162537297725688842640156147435752801114682559844215736347710733794056404051107904292143504392871258424876731076003939065622314683914096479966631364845510931470223042709880910585809030762689882264812222296516622894970975084707022399923922415348184318290185817776071952940728778615679661771914282983201328759084211659684858244902219733452186599207625723123476868345486894322208518689193173693899343535693073985640913845842736473667289511100130187566996211597323573361940340237244553652396042491825329170097040012942498632135764039142883881250835962563539347555329290174361466102289801615201317625033411960096712321781307819355148510659337068564992785712948434509300855326949185729474312933615231259284259660234302112687691021800675919265759131297369135265723294727500276251466242363893282530095308661251478932205712411972047844326001656644130754774550822519863988868429501477740399470242901787249980965647142630663087858154616567990495714455897916794500888474441797750221845247112914030101922993023434625876106238351672217474995349286097260697458316834572902867964683262465824515252295140184273266870659254175437285572906986632936405665554307887739799267186484701697553500834088088671792942648008571306648417741932086877121874717047907997262360167162458010623710891673694139033357311909274568763982009089304948792643874761013974132304135284017581211180720034303282896010994277947811196939907307530065416722894609497066814602069960343794146383849329286332624511437631328880517285516215676425045882225467465293570950228884782029543846449353829376825372157259689171750481244181962180035819644324344977417851956026504267548365194650720413269222481502835390660698367512258142282930097236095745843688982446280220912306914310268691523587847469353241602579840642358372936310703286799824892471790707479647633238522994378916821286251367454854667616778831805195460958001525032503902237558497810534238462647885006066386846729169313494051506053667299075337206642529145645609640830398192326717248432217124617212436550942298051963045119248908138907219280648357968959090664001724024578977742801108368547862113855590629674205219881026377537145381693040153907679213533997734873969076076719272002659885453547239958013804835830474481080608362469210226911939619823512400664117862138390457235773094209138747306029611619620894682177945262227380391723985755334187175602182669328095524428560902124510798584064939554432023894614754413852072898073962596228086239610237917155653541299046821128668161821734283334644180183444113230580229820841988733345499105848219056186776899717919968738894789113471211394664575853663561859800754784217362602378053283636754404190511546627932223614220032724035496968640389499810259090440192498419142780409957224307272650406741384214912910339916107509099734493677564793411392539995586683276952479779359136944444155826830038402312198876472287221758022684761878531536076379633863705152092870534927518669349687155490090520428569851862813196791264795735650573210461311297438656157517705750302993339415128166308869073384222688262078975487222210714654334890610133703533689371533148152128132600237071051164805370781154948056073261785872894481059720711249137305262767525054213104385475759915041196155027468355677976906427860757388684660871421367334638443347393868949423132029978159640879458353281522894404273519926229233884695842224797191578482016207118977389530215508406409273151912215161046286744131461278487887525374328447310859468667628693550785371265578224433532550982078246722245581193716814166372387451244885912174166585749293167203123796268821280776941732281073499345002865940036654188614113383618388530748839369122561433234590893617954954129046215816914462514875159326105097910613728786072747506578240412874770090701973929200347079430103243926387446365238693733325040139756041972234828923692003350857603346087915197015440591320873443127223102882062226008690756060767279590759101570057530301380414822168177296046948512336451779553208247496499088321158720748463994970233857051212188454566541716163145879216553725185379930990067097609209118030940128864964272534827708911322643380989449272639085650140577705407183124220255064786373044029325090647935455743495514205018504606919952532852221203428527603793841827516623396930776623933765039887388647016932317885611755091809566558180571049542881356333716568752632637008587048389312306186647753032145761495755563665952694207087398101764236452504122724548347643689986192501667025601616537834493957529873047069571189525459156793743806610428972034411220730324510762584013508017472214661692407336288328249247263593955618205908412324541704222004277820500377793416219411498607052125592511211489897695806577752753405218366593703714885139741861373069031078702205706272939879258446604291402357182992766760744314391694708316950830204567848880144647078331602042836341890017634731564157629247584615824571220256724695595612887011028358500054147081433364882049241817142567851807593334085180422408315331170428692341347144452175087423922502465872944207306917881347368711382515374443601881396571451423621524304672095175100893370360427293223432201508868649198283048183065198450783382567755983091490443710004834923748787276024988230580244088409183369482893726863123611918979538733094181532096105367264777362297595795907478707929070814833437891405601816049563210946584223411673162685917782702954851888179144287211635479237624635356342939401942969456743925776183933516071451949773771168330885405887558950816654619709780904113522684973946595287522006630320090743257627424889402775910526959411517544123400755939242617012691675224273057129878838674415127891666984492070461852142043917186843152805520776240327868840148048146025581257467282089003642106508480323809875407390335314296953402095323541848308441188101614566506663973444203131528868815744258869500014587753126480973524399401796854502139486426893741421102595119066142224897813080687805134786633477145204567073926712878313117673176374296829033723046893057973629420074925273717755996322819887898383549438947826008118265638064272447757524789773574975771433211103391876647776990492044953948130555141093548050607241164395813046211293478048165438368308219055109678412385609936413295484646323247091614248276935768957570286637661271433479058597479068573745269939957814627828007461330595339549786040244668431380733880201589630096999075876156337821291390554713276921389484356141982643519046346385153175613382356628369305289720110315296473177418353704328628793719980479298993653402445743488511882990507899610257002686512447041296698723885541202000746595005575538117801200566519776871162876088691770419787272311996438158026318497243549183436740068029955877489475334637759398367622070672450244457056157844090993373109640445589690709671486500091112744763706816830284158047303473880309242574615607475875481621708681621145999826110755183254249713375440114606908330746901498864310360943867411663765733974901070204651342842446631071185576474732732402404993383333267983404137068747017594814768479198537028350341892739583065453337855614481494866883991249230648987475467924996151236090845689579864944477534799698030842536856261383713260529060171606131000865271073147526321149396104074433199525483104291171133519484597061094281575720311846714838849783632411967495866375853602414789331540958497599352883357105813372247669927345758855904320751369524582449889325745974530681477504985402647592566939772717496259947951778180381880102514356046386061460512363202133114510255083723825712864629115313292053998566720146410621755474164719355722602991942619918538419916503525724690864543214752296216729775535531793611293793687723151518103292023623924383973369231207666385084500822993922039064772605102974860937282266351817857647421939349490143386442013860614631291627635036494665177695230330742148534913008598691232306143695015311073394683083933863279542269658821707183372047714997744106352717324389320615982793402019634389700542475174199441288745802495300519989679300529433937136047414449465038927966514792994256903859944928243006423487045805751904191725521630981090985368222238069431729829126600878885445236228429203128494022819402271520888902355635784249873768177151988033924319306535906369278588572311023389999816497749313096326803455973025416184404796043071295529450092161228942262987304502837427823793609473090361098249233997850649364875543945726885015352870147391805731605052301790996072981395072896849825335543385046338166594604174530481058270173889603716734634609002358905883539258636591135871181161031162463279217493510145497763239943228935186605739008085050302062920009100426639994459581440800045011911290449676857536214731332021686011990079165769111535294103068188593105830696110652903664016046970621750214004532719008678409434300145029155612126261479653537268700536771908414348555553454821112149220059324323558724119469612283631421805767713311447567452273425689246905366219549219401106452358947031876678545115373499693522932063502618934355377883288532224269812229668414268284832283842046568522600071236688865208797981757474520515585921875692055518791151728990470567256298559645908021933678730843221648515968303097964518954786923845202652720488475533269466245841454456255897462764481367877425192001478651651369916751752103663942369700732313849697674783852405836928218822729389395261639853652267877236770000395399777490114859738832149879693752562608178632438351290682755784333084969819632806195443738635646545835084404558981915693878551642217726073435055332756695531879610031188656853140736365180890306365104361803399181794756985918921743492971283029482999659398114702763619957085617943772929628486743704720413580878745285672111163516896702012004327072281808374392797533614622792455207925568051038792893289322816055954243233145916862469368912927827733808859008174181563401866100638780256434408739488389357510227558089602783314142806747322738680486972891190065359578858980814983023367130285207760426171937098469829169056885690242325879013639046240896626072813687026606314712047830683178157689154514709684129628057842711104690281078230931580328155367031745970634164053209587013411608217292884016521900784179694775195252261342993060145767633956781792432596796076688274786038637767030958838871821570626477252480987437073529953132887369400369963662164782374393881749444771956056244392719303486067072780177799221204796283928914561101042879840908152284032666002856256933812671112037479617426007508042656267316800184861387159516119552609654136443394028981537459088572080182708636896027299062205667632622872061429311524721036431466204864877720505909831185904655702308445739395509841107497635596316974019006302704755481752156714803864341410944477845056203833057701950562128938017017208045031761978144281554476805805864064242141700212846100901590111830075020052673277195883793433991727812166475870996441503185392677114512275102679690851565640136959561976596041266298718610932381349083791226508903474766881306982602501334256966663453439265621803891650030817131333990668438693818186504880727218031034565220483378994134869155134356847097584887898678630404079884276020157045475089041490458811299468157305854594399014236934069768797628682359668776771462228459460768190687040254542246125887916909384846045989912000608517138998090225198149296994426866938053181452603333266716375784954111793965547841986997310034354053026310696572180899984155220469175605777812279896131689853088856159493922849982533092335082086043878569178523469507677174291987859226036888663176786641687927465176676561072912885376766641095006220571194779935147289708315091468907640946198314188522187057776362205073544563776327386348426663098321072632962509879378381236566642107142912666964496730456891393050595992486191514792245245882788886013326425676571240552412322611576378930129593627340918029452114361413801402731335348450297369656294159292757927482872877080617605843617168585734908969457443506806897302738122321765765160314172931462932417584743989354191718205990308033475267665386647535590507649124636891580424289681306593546665102233112660147029314050328901356758505801326977469598421771258068577176191203432332187065560662286984230594235173543050400421193405337480573834625321173972998982908281398316545949427743018764617595618125500669333340586314427310456436125261099113561795990688630610213884103748361514658742311478192274982009625526111333679119193171163998068438256760082319654203281786109727614398741635895597481545214921148565253711609732824405006026337313379405431427825566534016801970479113834322118460970932272961774444171362879026075866015658002653140469552412899762388883201050998000708498893733860330318358784397840241635763470697595310312039501446936169581366491198493417306507102091540515459357003639244445893891332010482785936622678457118603441699893831840292382034563796601837552418538753339837686434538109620309125231596070610867139782932610395441593551465489867463530763714265264214036063912822907704489268607791694068190638540599983297013112040728200836303817788643918784430280782172150599843670675908570605549268624883382734234789004424801123234185818851744898244470463282102767346949515041604041563800749774459777596383497542220414996301971787986814101802846966177585105554630507622538013321213747037818253876350669329030171264424949074805342587643423382274346912700964376918455452775742155189256661825070532959007449401786925121426289232087600550149261658975759447640696088337797522754639843740392201922073460920604329016933019373571442697630905583296948975199854535727754684104908669065287565135543374856168925092154445201758043400871369164599815270859991611406940744056121976264986101440286083308082185504370790665723322207140742588748823258729884562876362843641202109354320058690875999459072828312741935195656454006098888333509180402354057320848256927425944011985180430055229072495209043060407332754657082144648846184451340027711469202831898550940144696770197798735853910133779434492925703459895041406794571672251832879893505409358633371768910703236580880649056887968897801633824461517719907370760560899138354042366201193464935690235268420016735806891411363429924649788148971946642596918788150982662584765910376105404906888130941663732846169990302095040489556818028974997465691169891653603064964306651043401659057299090982433457102243411757039893342548357984239598207032694729278107920180576865948042633208453074018504933540683412654404393239818885216785905667582429440099714810743275431761765223150980263694963090949881795982991976704741991298959188378572656856816922963229318596164235720575760578544143407534809970987758341828505161246766972970653484802743964489717311977795217112926978706924211710632565383495350892769631127386180923723641973033008180774516951655230641220960539510761603279383206620952460970650612657601939074464658739042906601565802021430435143201763743931913899609857203951478498879478298886432423808663037833108390158977178289664101558446430725924201329296701920062026967677025403726444291393841370560723351878906719094514384417638171494488148507025489945830795029192913149417915580939475479186327426006224964911917397900978609113319378819733397423313953335516715743577377586298567855669437612720809455442841295891384692229334457056651118351952152131055119728929114595490995077931744041953308992556487693930823285785293139269985730841654489409349274640995784212666000016136947015370003020326314293353310713367069255474841920495530347183652624803716439431239218871799818467818486789469808057499000899995862082330394717882939250418805365807558505872378882532169681106788041386344079498184624115513022003491231266997062883645870333576512785156704374036517542054221421281865568975188397978296412291208759865942941223360725996756085432545914008341700724561650565262363716666350625995995749383458067238153038007219520544291981790571771138807211710772484809351854874081264607579073730780935092350571728603037343986429416760265298197635120004993898327559594469797909278261454526023305392939272807709233785303963148082340355254701308200044019266667127385070039614130753114296299058313573995814546172961349119589412088513558830148541362096770327331161894898781436852691903980984269768370607697441317301357975759881630738514866475189639015508512772168688857668314215437207985378523464104801788866575684304407155409010308185283263337291278286283677769759193762860874857169230975395009567066389354674986934974260234911701299025383049992655001913326731768347147635001154640187497256301567064562051803752243776160349393842741503593936649349315464311577217149804858904806855721930314172449141356337375641027674579558676337633416870266028205696463869030468307134902901434158855269071079617775876841910138220193831750182869442946695886849167539107095981319078220348764804271609360367301360498125825363074404571405020871226268211920828256670316782121038051582525345176741800717787649452114467429804552749320300157234444078548935007034447726163886543420647151585820462987874372319485565524684291545388082089190476259853085541268476044105189935184511913653457001647076532432950548387663638960081771673162182236947893088753958968004822745530669910190311939814118181013629571789562092282322089190724168743431371819888498866124957463323961282854965198203845978499709566519423649441513174086278496126588209734516191119908604023069342533832411316328819728536072239387886492992373236793611671146552498516252422914213036572849325763696848143361842639196279526309557137054416096584522066529659500560907501393442060011404060680520464467460922285760578528774031500369740324842644203030596949419246734800641703079090761286690678822858522409049897458515857316197709382674291158531466383404551301562619422848147895949354998009863242729606728585247855830818216905884301167563389448339212975917582236233803140107797315774647687047716566873626664141547379927131995001466322179299484769143426457867835820081821758101712145375901571200954126713693981057043500332065194541885567593454439054467242113869499844858069572437789775214069346606081253128867778173434208978498769480149652460490371421970877605652843467130379279000579489765026705470015992812173409226882064489174503197365319603387134711736792366094578155768892968991399735711330401128349200424358104504170854051482197239358021639664093974180108941097206989385032304566237154620810314685302129876841884036950786204960818896054187509926886476974004891285548563854784139073958904266245769178158929443369886849373881195379888358511834936026577390744271961806030102254158771124374166589090813078447744264141706717006806686488282590247478027868541484841247695992715643135016416975520296492382396674564159180445048572919264899143661203794454344352384353233959046122409545718984305480294892492411983159590675584510919383733459538856869381839400358538150078277501208986574548746964757418320259775658842520241858126656203188363267513127923211510557586498763561847199028645472900044517672925830950506755567366771414945675178306097156715490539446281766071807748331037101121949981026327164355570888887980838577364010843194619920997829966262926172869788577806612097544274713230309199242235157859552475860782811892879364773257189280873493600158115874148459936735216865034193273622854889692462087028895997508143109392492958851180357967086717025317956378934332272616770497472951330686924007964392899448706385627750004019872646410559944840056543745493277295762198419455750843006772218248856994343751252188711331729978316777933967251650098390100398752782003190525373107483590356022448549651865217566065285080640657813119849099925869974011537076480101971722855692403436368217113568165799840449762470766657187174973786844692723564751653283743634034594810576906003424650333995722809683764908309202377878091146458447424741961802458492143261267042240412469297395040822445724029165591323658117993719814115787771169699709302263475315191967387367243520431586976405477223246376699563283953025347035509297858748058528699106688945416223957313451103708985124699116850838650311902669692603779916007418629300517538059161824957293412121317450530779850161894572086670741337009221802448399520506268874195304058196240067873486810027821703483647947353663018220151003071284313202979786834124402472431653122276690144646971380888810282437131227037285554842243052047641949294685687556244975616677735555986870367808262173401534784671752665843532018821498073679654117265571521595527827528232884772954694562037330459106916216961112720621363818853785478839555470445240133269352727441727425105505865250152855192836132599969502174247680170057083626084173442451014142511204994111158722369585222395306936551011851896207100031676951056332496177120123616720021530421919203835279463625720860031125059881881806931285875505258548138104221645594932609472716225154178366798206571886942352582308810111798234058030750961370843427946364511954889058004910744314677447218730678067331792161569524912492472586470012891092532684087840292312733426159968675104945494922141054250815245685642008399519258324737634624326592822580342878164674211698303497753172001378645272731828000051635464468097957682636551785322113304057590047480037165153388617034746665826005343010380450204118016310413427899900908569652364116167906824300020527611922005329987346565182427476327747251118933865046911952305992180602912355047012325834659490300226255120648355249712830643136746247471102476071123733537584772141056084430750022493013318369122038804818255856220534803791382219044650081196430404573728542484397140586981608366376382516496721733725665415865615739153910421812818663896588541609758463270969687483048548285325165206416507335172484384791786041061314536439111310126046615947502098721031687980134605984604621527636041280058102496265310837579104234459362682257172540797268707074198490108752521831851453082007811412642130337497035402687807140673589362520780052988337674649470405112437371708088549906107959493467009982200175188267796016096094614039941424375338460531078343874354499070433579393121664902291364762298541820763205497947824447903395152977038083921015629064219643806240791020120690114303633924791437386176291924591988073941875557724030888425043045259396778130617320761106063752426752292545713284416775306232712650793565787641781304180961543422989562252212659706676881623152230404139008160906659209847561751055533580789049597289932195274594017941405217592148693849627097799418437478984278340617340081494060200632054270939215123141312577112027424572576441403879495604077647151365221888790628982508987982687608063976001519008148327310532014737070990311682976938964561764363435969611252083795342691962185210408995345079223839195436758317061144462140653826264310047384936929794438474800230122201594517783680584552794676976468891613113246938770108671094213235090145077358193062561914825193529412342012303624976270586580212392485750697927167670462482901624674450969685891779815211963424145731625733282157305099573150324944610361561243764883944357419402600792129627434306530459157152355777163776789926929338105994518276871244690880007645507240557888043349298962689212308414055991329878244659623722264297109593363410060824717062406424808385713003426232867340984505741444622879291097614280144223265839697186071963129289305861155394494339493901142045573859742400527004430483140295395986305920421272466731576436024044854674871179528573595621867454512945067740357178034113721010350389748782065427300225327321952791818253573908780315660721769329664749470996961585641071152832497778377424351396952218316584663486812789953092139604974682655734684232833743650574413019283522296351638200504248911465994302651019216963749530098422299024604708293732396674677589187459168063050883292259524743162143404547841036369245564543817341791142184579484701300587365362541899221830648179534966219467476860063993631603979757482103731680151112819542438951736449862757648460428773526238646707119706211883967490078075803551769516233158427617199147287652073623720788476265846225106548932995676794185106645913744898112671445482840437884677045194800505985145030696019406482296278820716737735331438648178062157551413242616210480356581778111774644689209366248850520711968333475727807937225418980030322169477449905964022965814218101670422078933337081923479314471277373320346908070645690002266353291532960245307959517511445171680549072288657368578419503137675255357557652356054088713795656105990016313873826638298452447317067193006326260144153369062356811960357904781132723804573878041237146348265697346380664792108748591837109194725550278414937071235918981603347793352683395753016612715264411797119264164354747634455498625699074768776515603503322623756255059938332890960012382957702895647227544093639248634579472145041640284136055741928620811005183316229829699363343775349892704941142732421985874313077557600107654412897777047763740000738329359062149018742328534030310908290390232578791037087537803012312614958273686975733739738511190210219667225359412036130772659691265741439579149518087291466999161207554569168768512411489224869436655545124161081309464529082919319283483206457182000872348295186146679282762180152791329903350566148321304807635411630606617917274292998879637399916187067829121009663692667822838567820109072430700685182260212410595817404473202358456801673769125289757517319865067947946554732728176158705501620485261923587826406298998791717501271000422643641814978144583756101562482030153010284376684352363184742744118051805975038314433467224900276581282950211540207882225529687612455897744000493661576511202682475668998962236741144679118219939957793273169715758872320271282866417041345182278560530567295059700156567364910032533157440928293702654590386721138953377800192394910090439506912831124901922115037204678137112031862582924283937957777350688362426785916425690214264721138600583024327123679756334794849856952402308960585730422163487159420293030244523606897972412612002525689360595427592241350329667575113056686186771165398360958182563387447657048003040751337809590991390135494264331089946956133513913468342293855009760891279653383005825044755850685655368894094333937661938704403284372719085098045195858541988669458797020475967843866906471892253064113795411278780798733586746572338178181425152257756030896735961853706465890811873090880820651163430389019547789241081487152263017004949806176166243727046487523238571015496058224140215789464704213149901057879565655830065474212662251571779556855675087595854888758696241955441244023509635870456669266546971143330158714861724320274999870242564923987278282640633321064914899219858547314796749684135280088829097716371924772625782917765175336871707426848194088124081466795404838290945030881389654029198144469505273517333607782000490468535461811574790470844857674969094110146911676943217010048755357410181655892254730503705700226986875159931127033881509458769809269831946788720372043259740609790768431512430294238597767354531868406746623231909942039025387696356508021352270714652637165366875595428545994989569390264544998509078511529649504285314831921148438190933996278551918926875833612687473590943277987767118134878533344042249967744449933415335567748524804508319620543862062034776377646913590227367366133668525728277695121294630813945972843038019137232953978391732855820249308741533778839372078595677301993330181686640376838597034261846305709308623579431936246856535669163973167037231083771513511382921050344742131691614995941427146645513511169048673405219206590936617788049683468615998050844836091994892602261408843715296707681279683719712103385617928542929832828970337397928401104478502815200191543270021829314407306305639453212621174796389703728244243682112410244820702562950422798453021916204162700244240063071771016138885871360260374105423507598911275760187292165898168975342840024512418345174901507931928872926122675536452931889871247865456437450325438339208679166346704240504518294749892795276740949327311409782565365594374720470067696189822555698520801808388291723686752232045983505730446581615340928277734882621420974807853860247041227899375799228545261714809310517997046062066688549746177806186457832985214993962172384992508845255880430048662258921504419233933602315120306446443457465763651599378447960436842279078589152800737059346264562323288079999584794091646874547027415553316045702380816938135597463233472222377210422654390181368999774501742066660510418461186650070914568350539396752414145064546583046074582035214474199663270286580704515859119442946286793628182649006353100057040739639895689769395216591321417071542047256167964410438861881173200101663219363769892457119099933552622024587876818717468382404233765881026895705473795986239996049452225516861550801931572555626565090515763352396485637531443022470069905310860833270414390599630170331564443202391608233659979722216917285195286116576837770690195819464807830502146649736465623580386527431072167979730880371257811271585909761178094252920205637377345980419971853731910537360789886431037299916143441297697646633145366906829512682510012074718400131789374212406061214713975910391698158306652151970495960837305787058091201173526298339182456497205457076297121178584732443656986091150654469018363037509741662642044837690242123985093251111092698329906684105824090938548750106804097327088493228943127192994512622022972306335621472738322401337129892002146257282218042218013851453529589766327712009884434086543984796365430807231773688940875061418606576346980926665951784536563139033427579652744671096677385699117259882367469161940894213977285759339080042352194098814742426439702589121855834311814685980572012220106450102839062351602543307398600574575347243784545361224506888238723682346745513149217947516766090776955440206079379523570064969711902931877280157798777121024088829855074719603517210848453314409409239231444611530495283722745450848273498209153484978874650417578408447335134024296190033536094528591726957449012531694501321026516319863149453261508778620230435093123349537654429163427398675921574554577427628359567880621104437898406642542417976520877122823150500189273895807768233996205324408671845770001551372605679756799191289105401813355420479478273800341782102630232124165180680027573511161598309970080302655719653747872893443667691655389398869444097299640375958815648690248862867643315882438869106700825178265157057871297931443514621512115125384078203224174753708200282569598341214890682511425220634269066176667431083735510495497518014833093567565370051265614657483958751175399507110821706077326328504485351693857277006943724090431444230976039651588391133676380138864399379183258971927712875922707821141993582310899065823046929166318218960568787681282120196653680997210529766710307608006397537146218672324229235510719103765028628396553895637870362880486726051030852808808182007196404986435759446933773156092737843903177703752799240440532443851085152344907629082547136840838212016143140786818592194012579568795113253140192299001492655531449366565980732583309996993590926087945895222442233786119211522441047347992058113919774034391630826505400568860817771960272729009595841944989914929567316354090686608959849341297959061464381491052536318767082518601973555129100984604269237983155173780806427562208801926663280765852063531785289141228535939688016205767815258473099513108971037565129193122654960914390326163254466606639259765317826485825171097194348141756348682729252941369586273478079376446830036166289159773660550379569951712096979529038888092930525393256980869681473921619957427155524961333265489109282285470011995195884531954785669265842373279871879758707250437219225671668646470038120531982556237899383813759839104720982466235505252415626042584621566428272750267679098642959920280818889155482530469323630605192010634853114186073984317439516947993477513986618006297794942100763161120121410276189957116306061392375715179593670512249811208183409748534431510986402897915292214564555108525066302746066047060135896979697739701920476849917528930597069136282712086204953987667114161669976734211628134781848055030864579071129808705949680548502215752756932537555024910596053023062283446233136306306164779951109447641775157520833407144202835447618945323116859351765020222066002037099803795524487951547727867330818634303217737331486712797428585800403093139247934563602859268168550609746820719801117410471571324119144092131751912379632079499797969302079894651284422242917292806699451351040303690381900623080657777520240129526734457774042203531509772142173099557507743279464493044479341286248646467320934760981318349274992214525078545832499932561588337481115011788994611977501833055808310652471990681896540959523032245798130969319717359976995214024095158923172491579724877135716852728213325519057439060381287847454178535750127105148366808432826803486261104672145138195852089816069140360171594661846224876241219161483312933567970382359217188640237030373392568606553485641565600121109881163920151002162436515319192408292432393196771712936937606155631050176848800282224939965919105624471702716790974005897785710536802974748041458588982265442747820146331147761025709080705972278967098594617058079780239390601805174062911216264466318605403527962011863450912738124057990793494136070728823919870093187970305154390118381963394246024205658699202968375904718785809350371288784826192116502581174734156167751036494747454390628256041915073650952740912282481435395194028767035747824525937980750670422354556696216372649978368817261680390946028464252878377413331689768487360868600899270565927146631019498060857527067876913150954315165167107858003427532648766278832370115363806621628729256686882074763136202438988870954701212599974955842498505388166542765710243302838645435203641540546473294517678876583889603955414882317687369190505126460319693991676010634551912076107954966470247911245534413130757165026455814853497727029149668072132333892390592748515989547555859667295391321949244686663242848687003741668135472493075276324289187307851310271362258187999539774751611135505703029773902691269083310099947617776440946074766402700638163925421698724445160054902127794532725510371898340588976446294042788542026091747915123408211173324244873441281902803082327668469957990798092255489334117502492978741838041873969276330663669686397066557513369675350497095625587329510656745629831262913251052679431150677797590666932460204172762452562609357352135071293739573983318385103446067012549242111261282071024548329643767805219499285920928245861156217509070388685484558274086066992277852581672548087223666405475565326416212460684029251618241232513376379778624934716587710583507692472727692041465184083327071669044437487600370260575610972009303401142995633203976619639148367985539625916710647061170007921198117529603759053282172335584542659409557259113569217667853759444071602398105923378731462358597512847301962850338680761559066319818234384860468221753527971722161701369186572781859954957400680180360589785385707569550258970547364346788556583104110013879711802607226188601862316535684569232894525307677551584931553547981138596969658943021176810608173975395023742261471255757942953808950832596145408169023736210390265955792773368630082462829388956834795525261037599149936213089291959512708943224472131041637602778756079777768875913294556942704984906203094157597662912895061612920309019633608293070833638549580564283629583554227933062992690184467001814328330055836325507608221605136306087726023719609450308840636008685108565359551260923677283194870057753738815972915699135176887072316920895738259657977711946341023734290945546048838316484708892407711515204441234449270632168695200922236082043171281858730542197041176983708923582667406124752670048764394269127462487448612772748724811457815404584549158078765871875339029661981432430241081252166373406894246838944942310260648777461334623943829009486947504236967989393654440678818190574966892245907315855470683317244591247808071579124589927166027976756571226107988907678573853779277882095393053105821151358942569165824978272035376919059394421845769736305310335888386600640470879697682002862260852330181602505619511970949482269060342336796813740154183842340831492349905395748048382917902328232161573445860708358077197917711383841832165427896763801113777093052804965892246951006482276361465738458276916595057976160776216369723306241975453703151577149855376278723981755503791706398932145730255463124454333168311426381365502082784117458524274693491734188054098116424246793912948373390149360796762270745117546579340788944307307391429901179192804431497751795967407700719846592364314062684145137282624519977989994672346881642191951986398512627499518023566346418612828171001905002357002391227253589351851734525697547947993126559401405713805807577088639312237137694737511003218953133152981995930729885645920389650395151875142644169094020720410592438292838617422749920120814918993997917789829578533281705294128591424828718621960871353417888567748417579766163941374909530843272006418411799487656042571993430113115354464953988533177518672741011642062922872306156964652109428412302587958973848920808621567643340816035556181437113109713302254120036009252041591427350759952690243768671573243073214806205769600020287794723071269098774750454645919712022889812395560227447990149802387659766825193523966137847049050187201754237977730267642998185415907222665802039817605557763154644011191886288129031262032229810631731696456921096591781382165466412071630409874687776137645277217840991635055822231535555218649425092099725210154536651506339351847555203866616350285786213445354612369397174950322548308885825579190244711283228298645456765109365435291689281845543453814939490572547631943256876557161875784949362602681480085727724772110522297870264388372969867345169183674222386506760364126366483013742534877612877701192063966283082005559821706130636173800519698727423930529034172042197705111086364502665617115565181172013141176969823451783546805476945743468572315987364262004132576466948626266849811877827336904755383956164965717426401852527706302538671788807978878779306989059837869823955411238280707979427140489981437934496703794423628884554701116209411036857962310948778194744054253583604974087665001447788076539669284959055374355043595377146597758189729464608849302882704468227369131419042405531161393695928340573300184701551113340061149018369515988106252828756688642742648025720669880249617986390094965416388444325465724485899436052740061397782902099848108392195964946936754017239578670510678185508115268949313756697176944067889583583983321275533419187648110271012943302393723683166663270657235736010671290284229518115179230238596186508533005322771832371693312355784011242840957304587026800483257075887014840572630030012535362063486358425042143008542340690250594137088703769328743363832367475489517565587524368382771414822303178258241884055248739310462083086674686336194881090588196889853019602886544576656373692087777695497727711093857483691937759879043182048111432175505693012245689209267770956887994812288381636307371590288879743524314588969726402641507407602757398315765412800981127462700663254931775341321450721801867898857342646751440021363128847513408619075580155517502608676442896069456371173528455890023237078509843617483188043206163743829643495453976749997674283936600759841723685947084402361223654776742470480453680015544656931250851230607194600363352260782948124897000582960622385281080849210687041626846872210559160659307126975347905597982779635069251381582974546730793147802021972881739362695593468254629340220829089539415316091127429094002427401980528321402692343826535108546707360714473515257561263667298237057800402342281190500073865133360788607393941208126790942622699811537483386884238103102268895308019632984825354937541035309130345510662784108763284313046253867588567979868037979945921920782676580848572793667951839263424754114763474587182164865103498147053650096241361241331293614442217464596994166761742306217475092293467065378601566144575506474613419913982878017440391831358416990954063417291971385696669461190690059998642398320892998695924018681248318104019118267003654068786948759484760948477761275792355146453419206089052041749326570828079320288196703556991532190801292024303522712770699512481114865796313921365422603021774730889785032064054760502317740415995930281067931733156410559133983974659360770505109866460001725510539240355708154690347682727041669230088643745917535628133639679950764404584121856036349935352443473987737650622860065323283145556493870227118601352039730911805900192177625762180611856666897170670534078320556169558357088405458239710145584256602509946258413459991370445192024868308917156097634413288016701404391648499285187573926965389745012579529321461635019004972267267684785131177744182571470185140867503811018130030293903658548713433844047712400566270995351764983431717377768730701850379803160207288565798820872414903221767894688332885197346467920884385043691940379717424251650831348809915612728550496133034160717698676808779572428888805417095305188439969368069355447324121848759734434673798654109936794944324679493429249724251844231162543508496295779872022787357681176702870321535414151827433933561232673197108564880314026948338761416892969843892743649358368293075686481465061350712394938635164183118052654329548548483256205605288331536394075474839907188052539284274475052293456386432915303998596287028661468145046875089779005815263003028440465676368238299693274621660373105906014179775489817930957883515739964327412587746374908485738440224324195462295863750025049754148072413055779723185111797200578732156759213142961040506899003611225789221597227559325846177325642417838389995636921966646876221836571656632948190460418259255584783781471045143691266555893241991373085139382717599799571387253841443174686237228293012856077304661946233238402468816874770375762124323988655288275017345591700790059670752210859190529644973939461067193775053281536178366932826918686099987596239865609449489522181458707726332878836134621734110198711976261742647295506574397983861397598699151031437344688349685339176420245629680377388103456144085902963036039454658968515883386285646293474110446448793853264018072122967914598388124404037156789052800302742907036422292496254157851705724968341339902058164742746142387390277705186499581067506339109534942948323632818041056097905542468131081989766842538305393572413770569164880254235615431432712235466246065045988230534619202362799826141918266851098667267333355112997976865191756281517345010762441642231265855938961176452238864067874314069446747805706381692287529679253468049812638208371973664292798356524580710553294177286217116830537195775356156433956382571014023470494651226259676339831546799891522885951875099558609887727547141747460954929432641135389482979642661906240846203845131500274681242824312533349261567470191452909506377682120797065466355116350610816969648423460974518138896926740593392028924734992599324221127753941546913069350596602080040595070348462843981115741570973617665952382438431672036626976970299852882899529106463663370144789757592128707144869745852025438633467656253327437956396461632097941375339637423545598732785359237791790799989830997730955082731940219974095382347616723218898412700017750641988990961510480432277265554757260691907046453074896450055987054830762389309895606212601267227535364102964120177103713732233979887994342404763912022945832482447201215050996407571526664669295785577315284116345747252047787773939185266827675995133128745792420629644834727398070596468255954437082173566786001058752974396274160496119838971651635127488751070006590151154964322713610618929749288261429694704710754894349955045776006603200154679098159196788148015061341002375708108856712122290813488389094798053990089072865931002210193361004270682831414459066675013548916742685379928960218842438368126067472083815547804536813160424420576366012063194022717719979467622734450420012005208127389399816521444593935494994354376833500982446494563648874039210469689103640480419420213901583679709500172150267045852239527031405276568343681957718039765767061347195243422671967096126677620103514928978825629216737066974972471897149991199233820276905177365133949393311132162696128830653214856953643110200689303815229996637346745828323765787668205834079717101751129849229426982514748855996244371355489957443049654490085142743580459793130887597082597079456705762921304517667268711619657471423829218581503006782253719117426748863569198252677979067153366158226886186523786716384286532599710107668130355743934353372014115733552943433032948378643196529558448139457452073138343755049126730287844570457979314737403000863184325740052710787954548573908700485470428204209581270746093310807864195961178408813182694776879141003287096623877709050204530303771700231683479895088909891522960468020846845105801469790041739073023138181806915888480073881993693057964096559048344544083621551017160745171227196645917543600506489348968166676491710156318405168773116695615526340609976661560676513525442333494187721736913373261773175212796495113663039103987851363196051467990299938899623832684620509031012601244998097337022749255938420545643778174747212474228088887956134657793750290293348701668198150526914623613388480210639036557579432155439368929991259160374659231068435463305778523039974565544543849545527590741481590701937083564952270470013957696314870937293246619852567365116598954053796119023505174168085149921772338432725632820699866258557591346590373618595570855467496927235454909728731174590299363237039738674525595066359431277163640727101305559297903387460905717693933824880742273475483228867824850233165815580052595756705850140413451397296306645169786202352084061401542701075996511327016802147873490996427245064014409676992152685266183782273750784045282809353248304552820332017821123787197200295628688171945368454167184887024894804185977488418705943383439921057292678046362702206376837496323528441835624845070491515685454667672028823672647566332122164357753338153078365449841951752348209257396503049244822256082291089158470278077192633664509607913547833506812212557594383753504191621083953109356838734296037206947479087689266582264383673029589680520484634089385726236465904881673541351564394405973101527163185721250204300720096774378498897907549177460810400485577692402881200997291449326571169548126650871020477919816923121261606178694951112157647294017413613502215974696456019626503923045765833843790694229362405982652648083869572562056679642251579397246856145868544731048829832857153733938573141080850389045989257602128064231622864013815670323292554674286863536888039721355902501399185584707068074387815360030879884617781256457965372866264164504184311013486337175571782683514344739392966090080359136309435578804552120161150238330326547696459190630231697292376050811289774264027250956782205358563176746333156269964669177290636594422213042810289195911516421141030196558525087300304642339388953353734964124356222587645683057436883388363062134586281625415720412073954688568688028525846017211496037838525133139594422144069983763800586680465625201447104689599636158601315517606190597483395116890884627142094163156728644554435160270371007471513358208140269189883036035744611917096648718156938053853073680077810393138547782715353803583239791282637570184265177403399274354627642059080090023883395412905095460215760969312938906846667329896999260737967119705916442741061060684201165362990643165927425388713639957203398401899646452491952285224670294605307203273829232473461341299816603279947687977483584295279709232512791536535814622967912818974795144913083128135659155676336789199243486011616705114512050379337210137992258114523099490091688445611070474721719435300380265525702344277288966580987708595599607024830426884782550919585730994014605044292497828092139247150538411457248045148097493160882471489192986594639469746306908320779945039179428631828116020926820572848088206347332448643332466806122121941442707287993588797697016114799301486570480574331951131396838740300465650267130735787114672700625772240562638221187533140346070698866717960781485252553510226708600519085360821497166322579260396099685442027367514709936431977342648228653601411097407126342724742419479958706984172541601623344785199180433494041390961996184016376852884018795050278389568114007059516989108902009932364036164553887460381665106780058127864329736878926438269238753722242332435883561980987893599402044631117728847858062571643438512468728399947340068733770015672610663147380147584887060281542687110623125650990904309533120946739150021441512651866823271290426222013620795157128968800488875928637091173250734628152440118482441610654802761825621455834237506701704954689095753958743410045119669722024441369713843076492101241973929953829214621127375658473563384432153560585995305308662164081775561845804565686082362953821286033004671496228710702879529606716687985570637345754698911343831296462921379825441875771393827366937478977853939155366666795433120335256713956969907756798416139736774398583759839740757592010243771019237706537990364730224773234332153000823369146779177824933447370435540588838359848719265050768115992630781839832041094908850573129193599793918784638965687833319106774723701693454512640653981737572319399642254783463614440016320721883985861525796994572889470063320141996796656936668377972988019121817656983514010042930631369792828328372258511477808702739338311104103548988521812717928983362520421858157945481162158787359559717648057880548672671122363178824625066247400645657936629917556575559425174580758197229485667118400194899450826254356317368700841857362603839651602717195852266228477355990464283785666545285829604689186962397241382282858734826384915921242681254504583682013397541063934662050019216409780566746079778072979694503821397030956082894081997010695463564604223171075616712794303105790200814384973856873174782688209402664676883953379975080384015375235377912080414012968649140926297650915929240625004310805714811581854175977517708636002519790721090312683702222136590123020915256273884977201438910474601359409797289137932514674022514509703103391651821846916816152354109790763007713846226606528292387814799358160343130838046854755342650739690374919416590929055887800461997630501535025605176115567404544157383798170355495688783808891611898580909682248986566241796860998773631371081881077174171977335378082732043532791876534122140052920995379957441376047750616700281749739198827192265614873884455102938761142813873924456663299270421946455725929475511225349190210983181187908651724473780816176160924438200316402563902771872880775187462846302531275097472514806001802297809881963670863586531359778850759825337001117133363717741316151244009995736286466158045416075850051819550605563883436593784290534245880070337390776344081975770336148863047011235600731876091501484417189092914654660872598193402241591246784561881414665603616871767241774969322048215373238956100733693342611236037825342710761898553264694105030363558175385223115659310942383749408362910340790266577321623358536177375129417876541195675063860628396076153254328712468314336040085748518984293454705342323852434668451073050697193453915563208704666779650864912336587698620658056742508677444256179242959852479016456855945222162940114707658773690876996463116442110888065442378223543562679084843125238077071660811688922258686716296422559337236614991740707529349890212862507609798403166778278473032633655164171814373488132103499615441591013044241350450425616779378226833977114613044706729723617831573894707751320323743359532127651086332570761944009048631498988945484251330427826775321131842947250248005164820964895576757450965536408541572318431577067515732747694340268186369934422612567601741996199057657787225484774754091900195286844228309054463027116889759739746159923424728397759443291722876430921152161669422503435780856010143252049232482783222117841246534546590993428693919372579206553852804808021656590306523363949440989615266088397754763519467161183795333436810395252310975331415847569360882801977653746192006102424954535026567910826606268493940788890306132052567437015519469024442127230672409286951012655128054964846177330766969812816560423951277261475892715007732434990554976675955034101554758235305925308692559695597320839779490417705011525702307121545681499683714546520495578521295286282290812016388278098128323247253134884590213574575451007803706222495289325305432988337090156756887470026856532096210734388859624441284238303015223628823734833228296384853768577535740632902752912570920510785726467394494257288357180654030199234751379050405739546425862700361350246855518001899073391786634511658316500042527623517315991987014541535722960582541066822243590956293719421479333400308719886556486173345654821443968717284070613405455687402946814511453296594549805888762741411815269434444325430240619293025774956127641200349123444740815892098478481091052373132108760921813186718859154046867762917461871003683102689916761931126586880740241452416958029344238733521177387998714683898445833270432868346351326888085816220904790951098356882316147937777452885678358191442740225744432505917087280687495962918320707350809688030190035676112147169549491384264186070804111203269271750938629820449345215763063336102006273612180260452457637428753302301740436345342486058370907430555191834011080558144473138595853765817686784230960812893042763207490879912285847077918317210593491613032797759135214474309243697615323007748454898859696700673300198097796491342758201405840618164098000832708883579484790341122851842319346130881211990291029394713916994695825715219489764436413283610212339930279801165310972416628687139140650354549882426620844538283836574900292342663899507780561710843149429133816939398370919342890669428419487600098291539303855606618352228305298459931417714442149287389916983435899038952977249829083525535300651566374323320589429294137789270596683642951947111967651263631659544060882963936850629901221229321712692974794832296900919972710587376799084966897775171417985393879403719440714895016872325970035014368728721487663923330203090727648774075284123440170148773085653062220065420326922941607685019752113251176272917023749449692279690530435677022972560104236942183834895882571206857367203895739320407974390902213527919045608051794680047472836518827143154318046438520096353430220643236437963674377619306817207666224204031259339685654663128486919474871130276716587237161189840210355811934320505190716652137265796955520808690650570574232658176737195069209993611070991309679792432090612980639722027723380124743803848395041850631004952245802641727513221548714586897103941928560382413817977870510566360250762380310079931474475259541796884507302856970036254989571937461176673207162470471751036059791454906545176372238524807148309922932440662840666424709081198772198807915357890242844841587932192548500234856810928839572947219724945449174624241219475790681902365467589537356784832198191691506960934988453720630090664486196130387023708890532742358581369595004732450020836485808212768994136638952019212874709920231330782736786143141347388265525424805434278399983345487104149185572882227647204585231269627756963060045199802735220150218426346245203934650473978600428681595193223150473990482941609971274938009365830545709093849774666022984742476659656220037432052899685929178696901515570936458357089679257136326508523687190641886090755522797155306711748944081557095379725864452489696119318766752364763489940495607414608611300985443285506728327068769196709658859120608931140180071817994347114908515836608626818914034704361157282845092402835711255017745402146544142194285097801807141372159211365318565902410466332582666082857678585086513166902209385319023781263858534841218830746736831043756763133901064580408362593339986006215552712789179238665498557584785770383072166438237410539225586123213642719240231629107457492141078248042034104070969639928534197319081323308831356483703169072299798453893174103613172070885511998005862800103469433522613115920349781120366163433378397579203034568453449572311681701729273076154705913234972407883892505371604609411256451149486868629170480242693227649980567488113180194248942068927140446822905241694823093097666150824159132663868761263894878172339322785058267453401141787926471356431556808095808127159929914943386140406323995083610156534328789645266260753562529522078672430212007885378820224763761489837448561391535771945693327520152775851435743498493164937458131279899852871515965446380784201681391731474516713400314753704957810312021137640279860685770822050186201053670021369817807462305728594670927771594785851336114712727215445711876213998088118061986593754946853476826853526960711449843661154756712300666700412954191891040595207124089542369136840179306439489143832224088574225108337176737346168734347470165336044106005402973081539419553220782598410998358578767859147593093701579396882315572982227502914288562463697240454373287615954255843448764791064728866131477707657053547507515574060088656661308483394703838206208013845100908024710164017766177301314183263255941565724572749045625694619083477950974461672682313847701880373123328598821019208682409946963531714980285818449247809330939019028614292340617074707046353811569399133805894558843859971168695086854675842933694066716532299241215335365280482934666569460006347057423944577638320337405280602287761990604388077028968870660605180089103035741007884380487690041373463675820150477059708736867172938902343714234329291378688050882085030528508471181872090450930561543688071749371495301295382363245786116700256063347635872433753200592176762524317787689104185249136811477514116719217139290108118638934298738424432154850585412266819579464487392160470151088492635994221682768179061429073441513645145201641568167123021142035649746956729138432954163965917950160554644888339462179960316539251226465901262130471622028738864566650545567080148014809976257908834528981908013648420152382826413001708678286634080337606521836409714438506394953607477730199715460293432614986105158436287358843015659956812871760514828032398600309937658403662835081807856908043769308923459589495058689670367583030196721110368028755679574515458427495507903155590789408927437290059331419314427534285236743661565369859749552206001526135056220102960936913046024768345560220207887199690927381073603515712675417406223664220239029979682162575013992253464777860976251872397882707536043791465527201384912686560671874775340428877702069938583320869958023026360155140470230329621637729350801180795339650371430203889357546460863457036249295932779409538964839626598625277576700039658980870930015811309882716878497507348550475818505782036291389144119376466658833176249711788926630572355335784347186953154171401731264158383874578462024038140673467992115302174584827257462865522853243969468429524169028481495205896249411460082278689272486592616092836612560559611300417652728396506316779597147439352553883012675778179970311541874648780442747475284237825663451811005007051010941215952555546825840032264748761636862335570986602485999975685378532099879026576740978367383366659029302492286603186453399665926335262989790962457166982617440671170940240409965545254561854826290223887303461052704141612354798839837873728152778087005764369727852507829601552647547967108158253318432571218801755733482011270851573317916002056876910538276493700729674837805185020678564226158189494238755892754901291190711314701571044379913169766525297655264226550874453987403517713547818313274537661437008018944627162316371272311601693174434185155009459838250810452231748300005257803005405751893704946064193584729730850631721119331232657807464784568524503314837445733113000396187892172245369968527147667327365428455787508565426454600127790419223419069822396236454699064293350555177909230935545588872817186363976027334773931720814015398875531745452586634943081763234357784180450062075141384092994113744959201632897448589874861903949098783196718653150127124010001786034066132080379268266145396157315582975587002940635276191465277234355925971936756519577310451178012377983638643480775890397124352382120107387764404513701415262052995959201731035375420761639492369244339894769748831696576051271099482396628610348749781692568450606403053190846217175426288129005983690670331622896878132371283385412030086482024124198239342295436847721054704906704410892948149731887347716674491917513098774448231120144445773238862398133418283793953622444891581688512294439833005040354840166726475005004962860960320587825731031532055607948077135853119737352528929697862821674071375031389121967772912955402866274239872620972703914998281594753995476715011148219216165758118176414845544608246346570083772454244519500203083143772019812707160295225235286844469858025252595433910377508702343585316080083640569900547983080301439345866617929835052918358731369725673556971501231624066483079390690326457016734223127842460630523500505634287209051050577230043204726794890324409445236292269571292229004391935941871431803612764013202570741443752393072720408615193505106847637773532535015365228265471324362625154659651117749986612703876231499909552642823896842936654256995506838599245749890602553165412974964527531715405210285759092751963629047107711717700894814772068640159979812044846316599129649857759506034972261134450360044948960049896807533687843118876506841518195247050938135190228242366205827777936743644318040190023666134604194184959340072483679926655977190991375345890205526971461733529060463575253637298475003113718511872928811019782905615101876124199383972677581569049996705950953113004291090717100709789641379766919835075602727011012876212819580496930129961200810504310169813162130410708991007369798732477996800171340415853129989723818119645411594648452864021031071754752263137255184036324922683763828084894067326418237877461170505394405080162024743893777813638381021396699430340926829007930800761065253311327684412535057547005018364977753395780029286536729683820681519789027280211537216605538500647304894784039088007142223191527846940749907561306522107682899474632951129006652866979052758967477025587152357337250303115563138049847291405043693718846842553626542948660512996698434355367807676613796260843868817148463620719131108318403243364861423454272302776309654620564497126697928095805228936386449058987369860688316587442721182424513062460400980349550962208451452356189916352956273472766606168739088187821232468680425346585095349871766754030560230064390511128900611462004857708507445010987291246533434921373333796970225182029186124503066197582896292832088794600437657242833694256688796080259838756565873581308633492138796516697094250364641178843181719430781796479128710823470994904476900202179414785336654751475918977985041045799113000004630530391424473960602049838471343720026984597470609866945276250836477303632575107205495689594934713075195125692042587185461448510137096638036611293238476945137455968254545745487401005176622627833680535587220988455481068574856993730071212105394731636748591820058125393251397292753418238145543335391240047671905964467940645364586762130568494545143122385755418082038774677227793871265885795648135511519917213131712749735904344491978412548542424052676601611800976010311829203671023714014265996287371993971555097496286193578994349470718292332054356315073235269223160736831377356022752736773410019171170007048105061036668243020354688995675587019586964400430393021199580629435809070542651893678094739945419637587467013571137724192019682765490021709846365210606359207337052438896699194903544502969743925645359508493943642650196182991151212196897241604249173249834898627326672210525145397314274187795720750007062627829068895630128148236391037340616975616141568462675087705125920382508222688409956142711150608947928916305983793946328363374032435303131986400518616088959588625588585154343969915347378243531796279817657004167269081438179180779384388698521749649832714269078395359378952192890063527906947555408828172340364178369671454890914631562064160294826707866457845917046492802484540055303057922633531242585242429056609168435766043871582899101922764072326912544598343007249530997351470373513822782028513038372086910836533650633728933712964682806189061060265871389230276557612387079546336091898128779032549920172358885033577064797207760998312898329445329313899214905022549682425390672407166669478279076925351225915042771023402324580116986138755601841089234934662121957956411158095553208903064336623325903469006132798838941203541456943769603752912223117005717100386872019163991573942539084563464876123861012251025631291036351383982786265087498630061519209866660716356629970943278608827470335187974303021568683183458770981368704544054085612261086269300578696957003149075540586460751501378085097187811523507694441525010995295724508258553425290773875643217108107611435485936780348394162221795224538656394443699863499895450019710019969845543252281344651166145913279150791873641083951592754429847483746131415698410725609943954956460175641119615362731211446807395633755804189211238803833926255562108054158367483250703627234006023225711020085055316580044203125852207987692729606751249190553741429937738769612090365090518064245447165893609929221092762397012031870143085763236144061406566995311394578001499282858978799856168730739247290715535637631941240805417961650643156767835208135031627372534531557474635869875844808994931385854144136490513015415106125332759506937341537016902309349091572588749010304418253116671320782485433770967405805578561524259950501501046939948653594067469679159539481613563010743453191811770228029502812362125280902998219567035016060221606334434468305075438012855445531961885994113551002515735652455923726639532542235854765006625807893877992285941190424001152578852341165831456392852820724613265535881889776294016449887633433692268409264048830983907643528391795595747847359525458233069793306132579314228848157318441738442250741770964199090725956109407746884619732293888085135932640444833891346945585111517644130899312657579327946790287706075481798081343427873133113293451635656418386456972646776835778147289883770881534010673893670864953595020400317116504247586837510781546628219965905183464254162836896362584287021551026101826910616172171020054076287818470934695801088090519806849584944607688877885670831246536063395968541522511588798424128647912194914998562605577920870459461528611273961227730623856287595111715503157083746419167998942933195696667849956156367725196771297352389478445287165485529598002582681254241946722691475835611841990608994147233907268851267141876511492419831003243535493366057939618055470741928057740951203519930803237203554517134183041105607228784411074932685876004572893024882582142504739629889263110223457211996826692505996612473143341512244355750371736770489379821303598741044044686834492771389248431354123832640325728497572139132210693938565687425387281545357032341780639427244554954927495698448175687316182840139860716436502377120230474502831407141570678748334975440896588724581690038389620893046288413448581736243137470048770279279032048932099337231708647566415936019633958612816402737784888883253399643810202027621449750523679042167220871355460962539063117619687544529270281495763273865186406752408748134787624017362040409263513381080068281300282630667517306578423807600224488725072933798242182398623104928338432920991098268355635773432091970651499419673145208631897433419853377463166659570291659319720215411519050268329862194331174385308033487153268818160465532635865393454503948738489119776800265164017197736260955591267638398688205879841048761097856644484623971001708247618169368505066857137354828354615808875000700467973587822025352255577523504630977246723371628350049690947242644759585618994467276677748075706477921463568311955243669922239900572831167192739025454880401236764244669811972596581515784491308276474022714962332307111735656884986807402734178326930124253018344146424839005269130179949719035072972661746639516262460527487103297770842299912773413380456987156926358345001811633398969683268810172698318790555530827058474427531389370110864134100043751559685844483021078002966702642569067664382151220650373770239931340682678777976050000351938213729283003857028960257865217735451761505760694093162805268472477480558422220278715991198000683862239227781284049544738006779241850040132254994390019475175466004452180772227032528186737908233846983395378751432242796271503822352231566934616034246900707161626360455242532518071154609218093116178158577791145466577083045537170934767560766096880961256911672027943716009255846815752194831235164641733244400396598461806757339271253581423859637375562122823666685297984332520489804526686643803068773182821347876126762118138428934934480301697035154754626619654587038234456891859331489270095782798223818214605735609264682263177387115231605204146494143945115444240471186236258857472883371341520788791434821533223465145037063024907254469304232472040990235291273101795423023880177359017581111527658365141124429784789913772202873228651510556342432959753709503462318882394771006772769870417913446405240905952659805152259528604665844714781130655740282760923769207727861142729938038764842666958792931873162508428560728009539105957730022031741111080797095576512966326700787500892815850816310892424967577967639720462099166477038368175207583273500942900581166440791262822229322532499434205110416400295238264750970411061420689600504824630014757619109132720709904727066340386638106603209519901669901604234607872954860463813600187393847726164868654210618544288538926718552407832043359320427928845142530430364342462560489150154772739154694094989770307821993701389117543872987750950913185256026299795558875230212988477512804339990549481541872055893939635796179873109428636266915358834741304399433796705472309964569336869451194311277912041704138208289142629860249242351801907425659075290748449174964499375115296444581011700672510346773169411815549312666574988171154974772949470872594973126956915714261949635519505992858500868340184943983462399324746905161076413025937489456549276790640079422460129536489220632278342278415773132938077306261863209470009718535157854596615140888841316350063499830353384197388672308950327764794311042985515202368440416492333868719509159954981213464577231740238361667041653399324117965146557576557691158079046409258938271221197900543005791202856804283067017598331710856828608644542281238287355870887623342601727711050870540800589802228151996920346067661012845201348966558724892786390621450902450460086853241403324220979455175826852023028672457057274601118212591186649501403887806135116199212206058003081531060851676358007091157758373480784519478598574704796027546646988478213264544473033870250481653988848102002724250825976680698547634923429393818597422183835318460869105802340162479624281006099161246347922284740288905900031527540865983298409158806258767035094030571814397537668000913167116848680358426557989084892349358105188179595333751882728359414403974266017250720007891006729189085526028104829823258117317613748915938748699119081320210823939498524483906650734718892598101683381283398619873475164967533216467681705483341550359484349516119766468810429239712402853515961692628683362447746239099198402554893993488041647730895598544227870167365264784255299188599103675949439673243344674742991677398502778107087313314285427939753794192268404205046310607313099697423587656693299182256623872200557636446262917601243660544833327219415377890574450692838446058494699473629058138301402475812452766195471498849286946693082607988641761067357606340525407571680623108350446590019348474367141738875105180083510763303787120670660440611813173860962847304012173821157484816320164905767793547134432969340417776114029882080529657198406578294776393459935056274510991455732859155762037201478934781441659741762559954087128078428530634656976955710527399387624924086658972948646043888706152987443455822210113655112256490095896542610923248248547932778838587300149243856968530172642627284485360702485580476477873671352204728378184331795477023520324890895901489761101680091925351943977914517265246690297953895699217334119478037955132958832121196657589375730776234434542937282898779198110983339954829175645894487421284132608041616706564868176823143269717495609928584504443714394872913674070161714434550560659111571556876875612045482057197832544124754751223239598466416124065730660799970256268679565212779070680618867530814138697831440750995661243169450406467476721464737982653244610982800339901814478629084110531691815217503722288286178210257987552346088240255984771540781905790808910726672002445212955982256290072661425319527614789360501748922739239870727787452537308100740988725662294116754607896574892564090338648448076562283513804453133211262753870928710239250295622278759448168081172966127299964101484881797557258176755743095351292667483884926380886929832165071889239526961908572847284335676437883873353972678170699721082906881840021388250625970606157448912677252072785860131254981339319386656625622194580204112558694437032613098932169733884929021732719249418432411560833094105174644349749491907347647706091083298294755054961186768282422878320614061538283396293565716771170907159313629692553700775605771271149294759782057132920618582789542474438314496022842226918227284628838295441693745464951500945082339659139149125410832437728930391256951028320107560773293563122891419882865671299938675060868863300011041955033308703611694758768339247277870894612626184753301082754108947490334180472390566990549027520509808140062838211585349172136721813952603307886036540151624651128492659229284044438452770772930407809383942304943506713789284395435777838114099984344143597963355280885274567961346795149730292177094399567313243038333216614024430693011966223554096905289802317561376921326097122647309629857233309330844383210635261137576202423474564566883282489970162368863781022445800657087537419514947067926279262090150105516600792974985630930355513171077483512056805634350218684987911950345723150117718819177946617477146918175861999761843794859859433585264501870769422366407591420555348303789760091417989817168091934969604377819206896471268161834431954329073991090883778969917638592141384325702987671129142722596917370062652062815103615218781610583907018904933221176999869589692609628130737779551401293910254088284848630503498024488775470433090684789090419407248747006402402063293734860541654080376195470247613896848038918505008210005381449773143353506879469311424514108457629006279794566150607610694246657126557205597859598273178418972316272889934124349323096497963061452047518911041478587152102171342621040431479211593593272746993409747080951828786880167366262737692968013948592171818908317783779762680104949735559734860518773791720308501747027857646078361033878325851904757585348416963963699951802734339496743970206476942034172268383984698458665502120169078257823532823354889957235666737213592894526139233742796027302687638384219186875350501707927842703095845639187078188315396782377786594834917483227227222848388315022317295880932639307193192670836405946468267911364065537926458582514040619058431190544151490067771501539454793243036738710469465845753458778488001694226049472076530676211254505561249200521591068754120786896130087086712721531780827029755751780803361586689044282632051653315704000096205098168872329421055073005384523139532494383521243905056663251460882344366946599066827104691792835064781242029892746698705599045611133990711436086429414820369528013720641250724144173313955276299749677464907209044446986920422345785473610655764740660012805200552709723361533713252423809552452413193012925830190260458569867586081402125301304589946480496149115020833037763028276972269410315081385983977237135015221868210751420400982698976934844697722127569711750368126016093982631658858986019120371182853988313910633071140611169098071168638606730375255085557424783516263519203618075865153124814238586162758149309748630859845122232634143452971005766425037030417042696099961815105320943028997877071547484158993231339508142324307757351481292198041134447097313456225009351997883797601250673858405249006965927482227996335880031518747887299873732500387962728549410696073033335473229254683055134599392390430731966508322928209403037860036983044287743413723859731283864360610229857585795707169969854999310280543017497129126867277100618219693492287375890170564233967430558915748918370322091738088410322019074278039738761864634936160989808038471242104354839879481218773097344628222658011650699653421434751660010551585873821838104752787073254638922211905433060742910792821672247654944769275854152784662296425418934382743722528789131296921411420155229755608378295647838121272025466387840357074593523873904753676628056120239372952007154575143725081714584565136308463126646825647353890603024214174932951893914434981743689621335104049468491136854324131626653766550293706490233323525777063786087305806279490717051584710023153720422350719369611317755640239283905519744572406732617874753618713692416005540743128835284691412587285250382767247822449705779809496277399313020390256395698976561936771851272985739209288124247512987485372096339718103519591780716780223703715903257828336044341104026458677271451242175209372448992750857424512548634101474176368339420737193799915996807112718986408082266909098317333485456445259192219514666295779143159003322083869492256185771203356186219268134790081652636757375923980432983217420526822469645683466859332561535730601992777828399521094171497382411306796193222982006547824739122002636011541885636188628683893561899599624060755321024966357080175360049353094967006330409864676805684424649453170360493625002931084586934195686171173607277987250043392782460189673504023750017228057441854677050312070283715410666207492765249568393266223434491389402506993143067546111650355064784339828489867877961782037021375345897776853515312965879383887319341674164313217106254327808490562173534392261674940110464751272750085974126767091792009823833375418410754047708300129848059578819329454506524558172882872004743477093333162917299728939832148292467944315806405920077919422031910040815942294062338094054798027614821497311581144116188993283841672847609377612628523791473174191279548254258805764964522855782635158823234329746445760487372252017560575675647646953296929610429056608350259503023481754192306161421337605655062432505538910827630211510574526707366831887926668571021002715297307499560216419277903317983307966272993772008966380255801471384854941545387096490371899320979515633325684031493710557617592941832541477849892717662640289932823486086621729691605445891380713846761263181509860535676943578077397673967618159907534711482525200121371735935536757296222999167861125351086362685568796378496293676563808974842033484521468345313375322835746428080416306636602922157307275931123104223060236882106314687297947698401985410565981486606734279868874525575341753370991005488760271494529409420427386851693601434396135553737858580289614663882100432031180220416330255639695468534671423181802720353191107647174399258842996726519871692527147928231523399664292833254273555021106697031149631479002505794987119462949187424767817135801404373987972963386870035798047084731013564260485677527546264930606998222099641532491350671073999869276817411713678635891498522555353915379423675847694757273298015314445568378420410003855151682998148175918807989740470728962130028857708828368177517590429569874860392813666476337140752665064783828663885320006101830460001478663289875718914869664339107913207311909027601289690975789880780980131177215370025760921143437304444807845645407583681932787609998992667120894853889203911101559463080613957948901669151737944940623235055571636703156145320112500748818160458090260472327281579871276423212731625430239767191231922857277100040237729460454801288401120245438017916689688798032274138217846545022523658398157083265107191999819917220152901344704643113704058331911879521072210760577584206744534151531303394635053139885471619334509799771495901953418774713249702401441757623458920501662591677980370062164538125081893595138356429426524265438315296054278258531994178742013027554437816051091720018422086443838281986523640600154960588593114121334327152054397689061224487368971518856605432450568461515438900287748261423713567994578462929247192428903683252959480044496087867763853253333849453577148300774278444968916070306919815731873189078558693656248206852648711905537203875601353167932621246406557403536491928111834878474896356635504550514616625538635708260904986072030619719551073463276418999946751613095237476219967971910593521721271248184567099286000464162390877095769501495818222478028049111258121142925623986805365707196006823568725592213049722004697864296542815504350742380466897490034982364687508088177495533307953337689726157824466468970752330416963404166881985140934627793709451356577527541200306773011883611186662745245958452654144573511514296840761444262185858393419116435325063954724435325796211264163141087113965507979288270818515054573128815875599888254267685036646048004403677084587484806425399809626057324221308798846874581194393015349828781137020294422975381216942211089611810824104790407708975770346117701549128678935421058853639652096104325411930235069892750839617347342901322997354752036753256730270592107088003564841249703921933543817880100992504687648110440497705023309529007876997803096059344681783355129819676577379388531083846895639664498836873446314883526559183387648722720390231643683075240078877602912104392902882020356801767079567967436976797038741730888674708238692184254792104996629397764940464295462754327112162291707718693426104103826295373017863796039636943226200259555303396891107669287084236275192098286024809673469955891451162211576388217727259672548118371353386273326571964101767983508583693504638664849586109013687828970431530907079259506053326588842549786128723028069303320349300032048418290867654137315118548738634334492734086312055928530779469926665880186616497202416145975953994765493615956529373590041569546864139876887862688682059257768598164061994766366235849917817924708736746431227855431304303027354106427734707419952243712611793690144576936458575537801659541818597414173265046490116484234882935194893642272447954022421969610032106784585079304297303356824703896282366843151021494429283811913650774320024580182666874509526148887948764743091101155287526971877064170824694575079625827959034848889125499172722660326097788141513392350217963538467368645763951864139967797223380675532191273832941149922999999630428824168252614287218100261435371285814518028602021284702842711785872458485107096463430277676111013051164379068778054990837124631389835498278698543820983195774409752344197120184097905021750284019093086384553746214378813892061807245265202808082300376991018092921058960679538151210863818909622191779552054994511999248208451049844015285249955910203341522222366834088597354160482234840363262947463517703688253134594939257501767678260917374036110456913477646535151748893608646579707171272286387165236037417400201331605062139409993708670746201286584514518874107476079804483428153136709759109966570134910774459583017397066676664310961580126231078351837004481461520220521441412996667718421456700447154659106932500098455877515972117965497179979140018659472615290363154202669933735592279194277252491242967949487925426780767270376668854844458144503563944237562736840263016669389581717925843801718051040357288272591292451703052032321846448050310619189726239398163469930740212697800124973826715643327324423546376605026043750778489212854287241839681039647626158491771439202025719881101970374213900596164463126965503914943842952582512871806651649165975536228905027369843820527006533412012465003095646322829117143267045516856055076488368878513321014277342255208509368889633120659934277375104739638410422524285199801143804373470533571726524405482092504313840630676081389211763689317547660756409277618058733338651454481911441321373384248264043593421659652526015802257051751928933732767787419865971857587018666915023025613490002581332805541022549386457248659685740404531144051425578649339641630883406342414294653658096095090344291559718989199865150072485397900270395770421972356940325804218535883361582502945046215005155658432985305040648920035751106198228080601303334306008335623437737205851181059434098406581693223104504623301189941928408505752340071129078029444996723450430622719562851410835203989612734752901018407391516614037012553447658994480402323277072134770547893133078154820564523189907207011517359502802178522416053848936804604249769160774434098798226109211722456794261813133088143415757079131759322032399564280141946751479244337228395833977336306753411321784420575663029853860137945798440047085670705753824674129969815385336484787365634060653855375755278669341001196540002449548025605730862856517320971559360967963567289360417974321882515547793686543629168843586264536267310550158591633063242538386683856645386733176853135033469389941618593045915420579518969738071595789434244654079208828110881149622503639725300678669125925022641603682407435982150813938870152955140536567147240618667199604439034126150095760143919454642750528738919981279352412313984627169245661920438690666676984999549628492285830794057279828069725421302784266135921700642182744880237388264885061075822477480223284540790599110159030503449358028706760207155181348619116586688205519870489219180180093991624522383563655012224093240151826754802962912718514624502600422069742204066203620351617682618856721029148471684859252027564569147697610817901285535755609278347895945710105324546589433999728052087176792399086848421908480017129901132956137535157746029372728551904896645573193686593880910680046702323632835068682863814139024836329674342412518931912169536192005653137835464118795940826643425032428375633333684374394977354511002330282671735187601867944784549915615282150881325926932034109838736782789431690465792934252555718476406906066583179822392352906478097541685846904546554187645051522639039713748568026660729807447553994066311982772804746074703604649263016770558516429346347959740310976531148876528783187195646759834208331480207100657487256560405864316916648733588754807799317160631464491843992481429912725518752676144103332530372194824510419712448760117159870231366561762069962664816834317142633471905201505426349925422974912976541186532435339935249448136594512100322742345604365439172777708618457774868946382737655357873139303889787330106911509994739845943189258535191109454457416772357985901662821847355433678285419057254380455178555770108209337963112595037445549335928177843274390338619052893808163388971408442895422317323582989225737968403823338197034890733280806911763072188834342661355982301612359161992650627803994140015610944218018426974263964753551842985889149620194906881018039938299175939663155438965037598317024668851125044778239824589504414749315142879966416884663418843341246477472183082743604992835158460522850069072868416617604942094359024251512890323394525081624162586213319567526334101723378004609898237394754555915108946394496905276803949320362621635919935783299223422914794315872754522084855691959957326638216027380915180041782608301863345249328822456481569536430015838266354045359088419818480124802348254257903165473686207801309507796847050802313698472966831027396411820911240850637490625425700730910496571234574495279463749646946317629136425513686498331214823072532038407597520454150649068531742724475338797487894968730561465243084326433713928807028786748719756472909330178514145293556768137980511358517554377405745518940767538072707229842354201766065236643737074160559605450595282180357395848912642504768078903796858980125619734359500252532621859853914317575906918980497509843980994926059714912028874808525019204202450116837130283073236532560463659217223863400166427124559888032168909226342347744777604804319421402497411981082235299680625566124655761391017550829970546510547843917489635111278268732199227111127469200793276434887186978992099859900685125343265245420685219465544628215337009198362990309195937499676193817405333785897421497915546697584485633330820916126382749445932695558932317151838482869623711579821255338355399012462373448990149890764522170412749902797823369420443120803125670418363933783627695980445123171465204905533845433087076592617614663832750670159145313747545986459689238555100075200065464480297305402101339424125490597827709668507467756875061443644348901675557013532339721822604076734259174298875647554323887971302845977626479528635288341283172774874705404242976407244071677341774220181644585884540853033806060130189021081294694628687051540450514636909778526621387294560130911359164214668646062053983201283182316560916349335659554407527156962084804652093805234431599591062380470143889883716770589898152276757619087951658328409653431510737915801384424473611462703877184517298890085661520448904261820972548540563299929226023516013746337376561487675914265947537812246969692105400313585351305059109953538112031518543241110997157875113942291140604445931036675605771434049501406155799280826032199847483301678173026657995516280819559361736898285843684039459802835791762652769239408352410154760796367221675029852927400842070664615836071830764191176124738541105678881024456679769335712209049301273229705670567489855086384401044557587167717844874190451507838164748843234211496345686357358674395128094518987394677399367059609684373262437497313769837189609017215940203721375317423732261700770297350789022865005123298071834186718280115197735576030915361982301926940818439274380357085621746209319082072400057673905714727226774364252902220464222978485629232343152095589634010386928404776297314357154343556418999984183884207851615658443392423954694601971113201811096892530944247845278722403346599749464393096047061448931326170677601496329428062251242774838372462231093194585237790262662005737432072026648800691974394938096796388632386532780372340451631903192021047062531182198836975933496696135237949572122095024739692536518542479383123902282784211378197611920933374212387791831506450616624812654739910533858212799949908957994654621743331768969089988035935218790005948152885589870121281092655231955448160918140913362894828884143231867580430558915325157442011912445839699349247674061032258594860855913536784455162808609452910007670842910911868417021624345599897506284694457248293882228210893053634525838595209620905356975882444018893775857887457141651534663709926256156885542578029930508558238871058452559432462875142483815511503525691259172134994113205009069115808322676492222139366827365351400010758632350890700263221647745561205636466013734551947825613754076434125566201470535763951096005228472552397595253872881951149864268671955498612146616366332502056813948968940866272104315183013056821402969692253142294670257040069923460272711143165212335712572264910019714816250321651491283044906355285620398451660000767358957330895010614442965649840217052744195113946692407299608537447285264417947303260778505613136760497510576306727027021366608911599364557164387854207387368391617828787623671576489818364053453920043464799219395305965887808676604099223981256015752205473103467004655808674024757460978409330957678898630016576890994368798305876423162064712485542563461165550168486079259199973139485623036220917697307383442872026858287458621160947665840613804962835647453854159865247539000991862832378544548272930948899628097634853547873302340709037451556587155182282995031727852997410732381806702137401931491350427774911075671681044981171899894101643032115843042130691496846385794420109701757228626481815442075316170727507927210800903237011080338084743700826250635967788894710293851403694961098018133462339181074413728450830382924505414436831875349967462130059526020404359403545376929589256798101681631820169709279432831002513335258626918364215349035891912624953196914808123944929150429322533903486160564182785627923751143884563677980741765667843437784599931605107446150132593271387465433684135719259753914023942986152492601128993828189056080025327575429527106140667518849776573614944859617305592144457564518123104732991979115269569457182525516938840805949468469914765013633388512704353425153749478826777285152586096122602998587779661742483651370741386516120687680194682309973696411570529598432780852765115477117370705823216899451833931262226470844520414868611193892249511642751018665438184726704993162177234808844016601066664120512903063711688242578503192814468977883496904447246154819132551720590657064726093744553950013435180753044202754487966513848943695237496802008814582705682595331284524082401571710586963308281752315344000116783436788220913937876368592306295879418605122250056956071589329476629908478274038083058857270691280483306005531996926523558418678085562644770430494530404741545458662861271198468782515604001102377975190594644558436467401439135404322241535456282117385626275807755262846334573446747979060504387228060384406416596625989812065196779970995065392148191311215167490302248054683284767935927803441294689253911572041745773340227205283366677725933616682698052266086198017146262591039386853282090329066595421232496256783650342797631256254023711379738276663206803126100574948038282726538547316425493524285032256400748094768497107532066260050103411852134395134951921361925195050077476927793298850197890821403613326971945088543783798921125858641708326378963388515679705080080620054223753849274076355922303290622489556290078159766348041004633619649189553877102676418069214343537711171555586851578678525402658687037804606988002733743511866953531805352962824896604319541166266473278514221558056545893509133978187597782176397467941361926462360114346949672292421813956118236100203630831128344005842959815731182862180572377207532773961275288453745811144150611750715789354799937535660393980306958257509848944319647982076561406231010732381198211765631611395935247794443987844491459555782499087836018608410061279280037241607229639222805096421231764529904455163689120880554640088592747358240490866245029857633127196067607893474382881528433991935847868236818650724996871613765749794481694944899162098462163092251110872827146555856821426703027848731567835936848888655387250332795605166370767592035040421301879697224422291751259750491134111997078852996817747581337149009894789072486157785766511833376633810637102135785821405340333033642430898285074770752107832545040411340538252446244099554907256026183729218398635237416959149015767617271869362173801288291314763337089926531572915263013638015702368363309609742926853799766316908315566073755236391630972295989766996208709698269791439024175788222470831996032669712465433205324303648916919602944414660329453618384878911320022785806809565252136000923466256060311019140553379080199007061330210154436496808953101861339687679373007736788371833678179845796670532645275500956604257456767638593017302854735049161547697092568293152927302497945375906976253579398634328311382674766058625644598044542944551163229227597686438138085747308521453884958752720112214548366019864430385722304509242296951791751444537117280199132593211718601578264416651149460369323684050171271980732155053156245542449433742913294913268340086542751004153147170597953932526228632146927769134014024199529318084216056476724859373592637175694869150441235920092818674586710572479753328874460281989856952866903038241268611065966349722737809296288170429030584694909443166293616646427875617972822107555102449956499456502658853215859263366403016645646880322064081480726464629746409129788143700233792217475149619021574903970976677351393855406254988818878008427484475841393131390181359938831692193130908700935140842550133650992174317930521031160972075361893277638148395137321342459488341147529630391074123745875913106847964657225157217071338307009739748623445749088549172848525119968409029018360673898858253404058868153564832124733463975349136624318083389510621658126325361222553706684786185466669273300934141792472311658955152903313759145188179869547805422994668581639833430290115711064995264032496917419279179984869912268539590444816276222758377710830187227913119120516448855565047029548359608212259105729268931713347334629790303051387758681738001611596836758133019788486904644799322304226665656333185419774933356161445878908075366188518774445494972793350758164589877509031796533351213300517442175474729105047754073940448082836032439018883893314971020141050102104523804386202929271177329719023333270187689547647322685749059097443501900041164695716097004038446006431453185748738164594962166477417520401795353948842406680351271822500593572957408802741689973230800417863350267947717006483799162837891692748543176621892648577906849855549807102533253391934003380015765677882895644057396169475614914366978170137416311505803064216074929171774938815269978234091246132057684691903534893637563315737474600724904537279461821935367341093301938465505332479857412404184606148632038674723037449449596044344948268018459402929220147130955508741545380183384788849408989817848256386032592909486691831577328187696290613089846668815121326860295656759681626586018317330587927345903463280524134782771757443252834161962471059468780227558450627395626212565562968649375419379612462787612929830614553271828721568123590004698980990279972345560567685500341688598757561850204103817245227655951009425294830813205035553100621529871436491668596022298067614638057775304562108838180062967079604204402186687877668429079557876019753279550338977465141070152815763406191073660022333115730818298110977934625441594305416266123282232395439717398796076276229892130695232977221191125600653291365943371758800124661628512717686142387668130349902421293597503972363866772051980009646664351728886310779121607835375940071050403915266324669369538147206060625564003549177241639643356940207746582976783573088296230494925991904171444804180464857089735814008448873457366377892174486849244691489662510197020594986147290658585891238309024739796261400683096428696718750785116140714497022708203383488148578631255339359500028595861893743041607920176423824905246877746909442495251107328868451865917248802389330230036949447277714118468591157157469486606685619498436607722557166588359449196487904315040113947987292417259983767392650984894069417202129523306470432966823315194962565542895088142772136892126706395035781881949856788504062647865058098820494779823901413374114788637660062478395584945042959930864634924682797332522624018900033889896906358161268251153933830462750825580557574202778180608461714806949060631663708731309023493142180835534613127483796775286448810005137867746293376940168703596809406136881455462478874219616786505927656784999367611502725127542242758331156977433713040535634751672825781001596513115564385218708444543397188369970048485705221782603351341336847601653718460138027199890318971354944438070209282021029007899381579394591718737666510060953603633777288193515866899240344823240618961314067951355616623231181888438349031586939987191132584099776780813867156954904087756149385376588213008484874561156588100962713988806243972890677321421810143584399767880720644224799898161772878444512279193855207616899082128322486197418062041748425931039596289364214184080160666467100692874093173463562616314518941330688625931471631844999534152395248216663452723394064133784008915610398472562984936360214481083703204425452626808249244703066947738402799476783930379467609991437813201164413060674564120460864582156941501657192852528594834776100829667994339254253189732544009179725552427459188784487783080133309708275886073767987223277114957451745042555926615150378520809479887445319907971193061135483849347420612875949623212180379301222331872124826955392862557222526044805725642115759245990887482856425952807413727142555510845649858085688057756525802694925632302862873027901557215174411427233291356490699918051112973165654632950001494357034254568589961587993810229185531311495368900928558145695004735155845970659219685982014366311377044532576262657402349158008381775330782296146602347610761800832723295273359262178947544776912640854373219774052857937649206078197497593202574960473710483220771836977079547064578876250549899178994153098617633984293092464421864736462184074712396636264279071075616244945202821680511921416884840076412545762763006165049069144106111636148427653415845546201976842570680220995568932813573994656956058635745561961954553519830690422862179118813973234311363900972806788070708720433064369854484838435607646767579508686328253592212917452838821762496080050271622310927134864431312042452971549228518985431488776857449749333264681510034472438915495161803530544433270990661058880766867990334283897445528799916500547210669342540361929063147563450251509690545475534537486693778371732937034976587611715842570658756214492714967125863173081540003974192430633243680551870121770355101439898107658511563659362991781899241454160958061213540163434583053281240318746445120542173213854409345098419271466889644321830244023713970277288563623309729256052936999320303387569275462042670143824188535887856940347327198054254481686727861058636145259988406856263410683995325372858695650808259300707593664505007973704644070920930679375151942740423821180375927122630006099031273111266712992013847988873187698772108133139766806943089568952963574866140162864271178223275929205877240058394296007969944499745509525995950676816740260641413442418842291989020253955933964037969373848648060775329922729830733811795603543280237745357664864752369337251210780481195269398053666206420575646280849031158731503655608089617426619571243141515569615785467277344374334989630207780611576078951495117517869202888738271274493497003047163064337319992252098423024439621399983547196530996688334764049277263852825929666911342607052181512909756033484290458081796140598861640767011182684795321676830715563071574049873611480664667302190356827777511194527952020337302215140422182717264331102842825456318526237596214321949058638352442047960004951454352146261201425355146058169076567244963240911316411168607980008475462208572666760408952629017553219946494869648058749143723378502628371727892057373372254271175612024078391086707558804025697152533945702425310199454062212296053444717103565989428337658126095023382090267799481818664039844573783314999463915106566257778229110875281161165455245209078444341500187653937254996141720224525729057574036817133996667722797673845437618046837412586423226621633152143045696910699339527346784603257421498040090785688551261644259702299846570701389914407817399588306728537688407936796079208387523759170479689751021290862588286512677144402743893911494479974815201896557029363331778661406625688266431897302824868746122789430812557679762035013600904402047837861319141886738028035691454348690379260965358750126106304637213551335284695749509533388256521595369308386773191755614628989744708644781495116808279043053515658383960202080120625047953245676891035404009246504740307554966280493827837484819045603000338340873086513042686085347319273604150550166532774824707965624074072486847422108450142389481250858385494710546156643768482489229156416480430024319448863211092471823925596893277029339435771293251015870143370805343382476880273729009076460989077576718638211192649316154230989602097407185749963144677489894771446419678387386391092660917136569489950104794210887007767513180278954491894858106438087109713167556033760519051162459836796318878695478196430641280439210222058898146285810566217103835179499202430978375151430116870446051455289902881490556217068944947691864058732847517968550645256774886678797051059979865580591456322370929844031814196947660679883785714411913380798299735422534709469126736991773106898196331994757830386867999617780719715667838137533520346484116071901071368946241643998918892284283662261455923937102820051750212861849913036036202421034496822046203828257606535209288836367453912779897626646055649623404203599702932940363502179481893869450667206047175745984605491533930150590033870774846378803157644341382526645939765972037523631872778853990072396658720361689720987352401565929411506230314831337886947994937685732484610752296602526054886109322496415707321185074165947652274474729283341621872071122994151228074023489518430150996413498573001803314555857478248346022401353351430471087571968822898577550878719922720136572746019464718951476518431832791836457280600876183950100846013817514234171307194436498527926164126001386283720050924831758578775653180304448397228503650111705756145801860032190476854015335486561903548367012289506363693816485168899864890642785878009692993683380633232955712979705233925781260983042908107231534267565632321197571755212695596764859817649702345081067824273155023736048876776929679893790454790907537512081089717399824784627618601630422937529035274172893791987127446436402321922313283044124061753991611688875986725744420404287044097158778631928176254928192933259993490663142458590600712085755226777203842013957095684887038829101340321370027773676973509457451642391255298628049300600505397581220632803847559143563699927531385097346766390663183995022161174059933836167237315678832081200222549033616739476001881434236485482228643480750243491843478822701240361080236853348187278930021206233251779332270040887529503114942503489371428077617006425671449683948139834588609979155872297031295226024499087789484237499760139744581810031172406777143220050572970592725858632001641240757072907894511305562321179067673362308282142869446342809356862009301574981801782130874778246343112886513449849539947402522928928602969664463247170523917831989672225573612933743799677985707374330047866774819090701646756370231291736893060093850073663732387857489970265232067161526101065325242208997152082721908723410173401853712271204500569461057333467812823713720135119438471011459355763892644499905830875959440797329386155030602516652188788012087648795416349039192920932396809764136501436456252457875571148368192028160159763241088420285110532464263836720346557127262385267800328789364509071737486820472756555199845559625365604730945685564477750688333344462934420704347695076548067877042487922062688037072144962868436240762688689850564548430039220019086302225519902537890454045349214248608868327820922817930864903727537326070786148715596384910640572276115623132872230840076828973754217736669645600898049665098601476215311418851390509759496680415932142197426986480807954605930496951325013536389647475648112748318991854754326197420270107541029918597382108527085271224031848708356291815427046607153990469997259792138106861275183101171775797322708031803118790586057509794912090000686396513306254632578849928381676927682248040217896874213397761255018202585949336432997171030382609661439594060169689676164128388453036569187175662236598724289868147131000584880244912691696732044800162107441507538762727150928556290822505661655941667669019545097438887796238352107288992996112294865021295521767571739330287319801703690443541925937000407794751736320215081635828646149906601887318921550925397850452235421719169339170459829166065072754433771343127212180022133891783519105157353930648188449510731789051609206996020864102375224152320546930309620814072515960206707581395599341658178676524808278032491969250791570561057737525416815999151479821431696080742434899318277225170923377654897776614498700701496851400931801236536482123418567698531668444344359283989359654207803928465109799048431071324351061833883166184969748774218126199629204809724182473263142660640155161286232125596944503433012160958712348517902545756347071972865055250436929163029041876743681181818343611593858251088259585638899979627458771158290481012702567437725399708023591233037022168901010549224361103056870118125140422037626129688368496182983757767597709192154404200402895421546760756686390278988984867773833457567548986250892200612910430663497087336886147354340842304614280725208590070457237296712467833363938666642425246821107644931504259768205864962735743484310673896266213285348146242374168854419067959096302177581075615267185873662277431560758811731575719113073833193668524180832243937343777850749017713904165208937223725499228137669835077123650817105827200266611337115925628864136508018349978406511681568887279377839721398062730834365863850724858325788306323755869290268771419281505884962879034133127221967025848844668914222416724004805644620185549411085590708736484763026307585175759626572876175032693869593587097426911170686830292900557128046210581415509500887776309439331903513129249428173811481123533434512546347611825232464827619121288375099857849887476601330925018705421788386164841925700273959996158241136502683962752872164402530340658282112514751505071416579357100046398480807228515588929667015077892027301391019383179565666071156375108011673692902587503310716688211417816461839492820566439412068063560420052421691539995436336100049109402083476799988494788729551188417451746140655646036692803758216441011395456424507397557189051649900385700436380847576004282645163941983839400616667416291227704228791549545687914451484152790611470802581611639563662743941183405924124294033290814048084019439264519046022408815911533772726761952736614510074705884172920952831988587382302825144279864733974734217680491786316184543321609305854635622905015883774258569900220868961814843915328108838277887851970388768080629170655862503747810402475727660948165123240135272188650064990186204330016105841128197855498060067052830737032639769536773256575078526711594112029831463724355026807542285761505391109006221791212792512573497953033735937608323350663229619291824257799351342106593439269324337750453036211567742337686664712294342102480697171980074323401538006291127958503287882709121600186086248578086289340173798801818229881469555368831160477283456127746272731538798111726278868794722902617026900217763661784235266679901657124062639499018244813616062140110982337363093992526606268568879290847641814677194056352439090197216012116260095468831772984987986826684592020885202524412744524933426543133547845110525428913674565653435030950651819864222714072397648152298206413507516563266988207095687463816289615681998543115460947014057195068600174392630524429232968653468059994051910654240844969823935484441148176431845388952620439789374008022504731495888919668924741360778980635063263547460070075447241896189859484758824941649277605147528717142402225923088907861900143174317247781466940604256306308817372158186718190697009495227134780538714741439974493407053213098305230673574155395901126445399236768816439651009562448706466979717822436331158832868794285004733014565541071736404885235113087973361339028865042057730466462686283920205890319695923401125417321381525264745991420219401003847067889039621740517244101121910771617455510218199420451996780289345549629111783443283409035378555760409937535539985921480786172297586482309946179395889328817207034007027770770456341462900021528873056508789943600833213748959837896699679298803648683691902057274546122311304782102100028060440856179431111916419589954652525463320683316538971131196861127872267479724581571044707478991472821662918695031536694581273628748932422436974258248383479906806368602363891301020951491803738128387390434306867914568884805638651924201045902999881578576756728339396597397393445276053619780798156020591522431781078597005277410881152119274433365023273487486228753933309788875934053934286652826169077855655983634222727856210993959100218422083107034495585828656495972799658745172368933022275177553639516602113388699448609678333994121071795191916213080309402115585651540151711456161481699246456313337858118671786750325811009881845905668835263476852744015564289261155521054746341963614352175418540212683242247693913500715317176115248903743926837699943419092178922433653532774395656925286102806260691880776352777862878228959802526387666910665817805413494615118770808513005943113044482286879890326614614772724739371212942415667396118028383476963866342146294224483259627357729619592745915126953941254812312238430140018958015482991517801993925523660511287087075860094821398862657796574613328584980398469723445118796757853760753874344631093653642913227474511963594555416628554446917056541322846415042515795196541771069629665763665319848383560087857831256825444107709993501353429633372602604952740041034761512365829600763578346579088103930927820135846231070168943214879369370013482322650796173305983353661928222411185597578715042661655206836169616467228346671448348780147475672030939018573721063607335364875616286330497557360070989710351878939737746320101634427344590294156465965349073038845050134137568597185935318981753356734291752341828259836044597483725916401066602560787238043796766946051781707454926059992793406614171872332684796562590372281287492460424931928335068181974379599216707557122058019275609605760837572114712493441418168598174716399498200880578330187925864097584334557462470804873597182469063777313120263434590282429190146151479583900907106326694529258857524511363270234770192155396218849753593414367190210900525278844044402408219272039650802172126859077036184987888013313318541229563516033843293477900359217448409856116817115363087572284074414719788488446187363604356416791786596710086603473510785137471331716552028000913091980732647708218533621069276377760285961682647559994299542635285075031024935681470052384272106412953823827355081809787440874545548132379296380839401281321954922220034862575855702439026857545717440246089544814696233964688900289037895554795782372775396455879030184053364342920945864787326999903257588066313623618814943693323174793634011712006329577619189602173630861229089625979459861880903989637765870151639187194994329525941123926340577165940081383569589505198087893130569009601566366100409099798115773633882479231829835246675028812800276791536050663512558291011943783950904946875727932055289371522958471124873864089321814676573937472948662789940100880177932547088921812429567189078254409228937238386736885432775131156761898523056397712414249814877875778308428914948536191249900058477729715566784115329310618700103027174500379728606154560463166070951214064303895156616098516482919596561104246595099347505919134894528785665530489780370704205490602094801530613654652000457577965339373234254561237421947665456215946135404445229864944786802586502149408901170037689914764349532382413527316860958008643872990765225154378402915412344336014222333857862892043030168855324776868564526090069530477764557211657660674048844806380863941943713181022660910910206570025431517910909197263388233637511986469620074296160266627865364068164403650359613248098847542320769526893055218392180584352683903134077683397267121254475884431551128632234687512469085915182717702490261887495555321534648865789228791678385548903238809260945187960648202670508275110767075278680506550667619128635754701062510059292172409567341934655741223335271323075999640222662943884802080524226194146142769191714468795295220758948923255064291429661938395612672544703507403837958234450088535161857014795396205049352328229164832770688431125055895139927815179310939015308703740865453914772402144931444696329656315147954819999724815857224262854455407237122550540032169993898896593763329939041921864816527678359971172241166096259766945097830320133653203493934827383329617017673380550114464939090037819996772163603120861433892143897487344475421799897781179354130770581160800325339896185843317541446967018307083934134132510712141566718835111284509301082003986126913013441460617608956997439135843192246567056588603101089448172447699988861767623385385727711230458127208704634012605253088040063836050559586944598674165230020074304067414187765925291904076161470025574234740548146166939269219997898200081096283477531896080214578962757636997497641076352328615615588235737903192477763819185823312850765627689787579178972771589882715039451747430212180694964510540810899626288348181257117571579639900945349846340540853301509668726798347836351186181276381869401199429946323034886986735578866265660777829094681848068935429146906669822663467158907028629245408734812858060719470547409537444967749386886816824742395079298120082782405820965396727379301469409368216889288164163704319822589478394176011289268080855068674368970974267546106973605953517014593845407174410335611091519450988439475246934116577538771581371643909709780188644515094889092609375113193445886941880039324688079788886516236478322936659821936240853625171865396741391563303442090806964151805699476636107703717915865706293283277349490536703359420776565636666772941708561319857925057283014821170249314554026645826141653711029338603624401337164916594262396392863821406587347104942818973779272276913174513435480809077413366463764841403191179440013690246085856948003229314445140237438842022775908365307114359074129768047924281573760900280393098972045476842143031391220653659616085741532545249270719947853196651877647330582714427628452645575617210333653940868583063156462479187623873087906226672501036636815677608467048973295972581707106772214587541205366723968266864927528754456456960545020042694150772053770055031819654056102424792731730601812454724927954474777838400713615566485709760488979359836390529512806032807859293625669307452046728638263504603109350596851454871639980473913188835452036186650267459474189928231170497195886418848688243625550155527383523685257773666262632492221655153251823621298746675897815091491191567866736309545839238669794730615967633251175073781158096090061641901214079861568395071569621020866814061250610874886028644259821485781902694596940536255649140407995791464054771424126422959200834267679486384563529495592492046509616763202061128476711391545316331236351521604912026358886415164006396144428302697876069298624860835927444317551639840947370967779443195352110765768400624121665689109213671950437891172888842812281636021600101407085022552605438647222918770063222654248890346468667836591592564455494310800870522494813032166036339464493010079194970650173342133203884653196365019668819253003368502656788922657227647009741347809891669947500727746468867931816285040602441559738305924224877999342242369913581830153450841542446510363323301954990945024886300469515936373491285601652607623697956758782652106549108306928458051117249597078026085964851334301932405924480185672145634462036650248445927309191356513967640331034602890762106352281517271913285754866060415636161997363393036062933611376971245566251472259203961707528670304591149247027059971484803073610234568682235565649892367858100788216613365949101297952465814330307228310081527108886307216184442357109292053696844960235656172417829721219602993439650343813790095436963286359704816884268303392250396039224157678043877822981283439578213424085705508028830507090297229010731640338058993695853883565587575492406791286563772281294370927002817253264528335074700314880824467349385832704918261564762735678798023684477317991881488488324773906480276774724045187717907150157293344832594151570581924290012290100021763777688247522409027907746055350639637911190805324800342655489510668505251464702315955857014484942433759530681784908563267140025830468199346804472248620457811026025510683193102353681998083707493901874071543713019632786213290874037475000131126618212940253859952700678307917862873799963858579572857328338162933765742505726867931825033322755172947119150614477450346419087498400233254739758204133180243052380678014421213083447385597068690350731388177552320705657183642977921673925644098447794725216345757698073368201590984122015947772931800796204924372121873161030459502940386758200468973307668299657125939494854764672617979178685471564617509966594162021507034088645809981978312652574383118393955344143686971333462899558478481783282001235873683996121205891123013295375244214873144119919133825520879735654424364800654271225026961266499677262544227526026429832697086748961731398218928385399128756940145873035083815675230242974113914208490366861245789578332632939664088301575349493553171737866603296516520439134269119905802425301231940236320997668318352038297193488041278436975526647281527637113076101075254353524528361264711212925258025823061847507806414553357849761426797666432512143875963034872521368116915776340893317232494375316099817199540816785793461493783057419796164457384242022977638117415218165861122207440210352191972815051739207738956439083591875247550187388793802872420436537537047120207356265626016506785898269636868205789140249157196735518691836818562531491316132393375681150755289182679250540424104553637814055039737374964325323392587403894660423325557647702487625589202034235701183901262194939751041137876158667666806334032939509454224913185165237297084931130372714536573999389010558649418505303164499202993578148550847639227412739200705543471031831737828915586703056891219612218941667213170202328913467592500560964023346719623315548173015979535976085642711745428514388266962398363355282552116919815755467218548199955749419452681363215050684483988994333565379382309027015478240143493621187539777247586742005865203509318606101252082374018482662151408434594718972196353567068302346296860886949011205950341602231485762629121054212412326825261291490625982908572367027772066651428924206095478151786956815795131269767330084968213061366258727774860557935218217654304931173858518162184899643720400918972904371967104960744008944173074292140547260078981188167578867438100737765893086314477550958316282617834207260200839405646247373472105212637314543264235217926685013816132189523903602603661478974999390093309511430194582668823819835896864744217438718321047191376639468934768548053646947990725245071649272408630439061528878090901529534090163552958957317313449134694666176711490074539275928818868361397816055141504737977726104093884202827545927745656514461114269274773752496794092587794491926694780774479266267879002755794617396010366115630341988211336477508871079889871058866622036709814480283184158904419801269960365624523261955671565631916901957723135361664810177378742683159445540063962420089678379005920042499004536874825554100847770154524934130555655080647493254043328279420644271218985642749153884633744705924524363807437230121701653933327698099531018124539482307465920036908317291667051359596936201565041701403360922295935260060082303340994558367274378946707577894185969742079909921121828890293668089186805553688013880845711200408150537774384239988588967787637233584230929892294659056638577703242124299079079842131718574015154411673451397411362112936244172355068032366981764967323039940231634643523902209665572837829801110757344283627523519376878272946224657320836739391948699499029719537175490644001506354575200914866227760495257347020468120316906771182410617822942061119128745617896440100377554266962882823731768316718740014693378097658830406104643617830609421875419663710409294126959564439570846831712407205060462806447717701907362601918161809111903834697361467889704840952614628555260314947324009805885583150018353129449748332602566295852449677671888417748975511921136248429573534982047185676234762258889285408770561764472078234029081456275253726598827421775839041204553789532372945870106572771703973783578258469690328084437299666577927079936851430303377862125659868657983448358486089518571057262417801195910938471802126299654780992278026502330220604670183708298745558959090011272694568626097346325304423018675393003115902476381810359021567146109745186754280897962924357502864946370893440072616384513633099198964419916204242420138787744985643408397981205290674512683874096252326102885394028339814759224515657213997887103719712884894044804023265325010795742991670688327736771989240175741417285552755865641596594940826289448277981279565903348389806082752618932004559458463699042202593650329898972905175009655835763648118482042463638475051945374697514799517904623101104660101914913343736915525655291022810279849649820991006720387663425754783496213926204845127215529241327195582275476776580749700371838044497190831144707231647207336594270920588312581733044543506787338690482365507131986517206908783471553579178095172603158056993677565038216192098703082894505082110242024651356029016430102332614748739239464016525173361045667185431570384108477556717112993383787064602585509255129922392505128777046189017578620138106849416957056942659698411887935964128034636899302685001316453181785142524917097601534605996912733714560194975030923417009795735001836475177787464725454082519312998382712515568552699817810253434519225795203876745096753298693834068177532809135618838236020269754104697507335888933981528983884754705674469263128128793093046687074636870140920629045113173112475320603187603929110986592082480280263359748635721522370570938194092846978899954592242861911778312924828874299393977135226534636365145496441426672277807955001858006760781290000078372143436850540431806741760993620932018881305154784242742583902772593781503441077873289108261104366834459640654740005483872121414714577348159918739509273360670101502495190260637959903085037041045280488342721533994336442912508529857954807581526078539674088129207041423296821905935407497978868342838892647517872363250020268201076855491613589145064757746659868116988602599202989409653540268166358235971678652649562040023643935853738317154638955924126709239279186049107112501294876495114845937723193722770460903927551287195503790259785543210205814874730403375513465532452823757311780761132440103163091284044152431536664448370746260194835905275316020847289320242588915977371599325917510486864665876327377464896633741155881915654951555874304865572191783112949053554284740017575467627237372450671295186733381981824580000940108961011825533164664379020294809102864217042916504331896116047891267093443577719543886719594448799505535896128268291275124888782949527848190557439930413549855792775970270473997987742895709237391112992328943743939369625277426606841157416948150632276307934522001762017739119116849761001079140238741204298068220735145778284536448116501559652152016853735167542405770145230854472061529961173931944791270209952800347355446191136672308612713344450526768921532314087925584266248193787867005565391853489201117007742860577285569799594099326167041360163871969814797339227429976908241020580845404856272725235975185262543563569927920281880957870064684690960192707728240816566273819118684007095913204222882049034934301936394775964591435067332417135716208817558033761937367503393100626633208871413469464937442882945774428263598286343874175805310074591177622669022726836734399093868344133095326729675451865879772780835475923844579210751337755551013967251141770303005351417540013089320163459996804729725151346453542847118124897351902204155585787173416387103724886245172470426479296869022026091751705903650518772259310659132765718849380387624123490646372871565491307933132141894849710288809148662172099684066804536343204963648204964014063584873470569624531871334307429230903169611342889618093735103433837148153169644770309821450114200024710042244692553968860365148681075550635782311684799224408329884657327169216580825549514277476827125298868384397864171616935297195749976180341068964135801347916666685827655106422257568889691467353009029222756472407829576374183197935924183480721305239590952789082203693918748695307433791566597376108660027824517276965609998628166060303895361436517171875109424530619713119048030603996354341506975995999745644773987858740050783270103808696539847792586856128614141265931031584012599901778082179606837290419410117089974722141186511380214300619146203652647819337802102558709932659386253231088089710242421385122816202273873892654063886139489974433240065005055076789195329474319435147113327265776552209852176943029856147914424387382535821849353880480348375898264814451732569066136707106913092800017944838451694377501534229269949407848343927207575115496649268449607240114357127507019208010299579473300613182470898872945459685655777406351540027239736680167640539438205227195995890676275213623208981450381622771452333294108765947206031078719624244266576603557400462573161839100660526755847834655898453486856477077627844186794486712564216047925155792222135323398652031295758555667754860982629124633095807417393589287306054943288486253368904241497053232731633783588255579024672269344533831743861032303221862524182171447909227196675603993974521067062783595139982902840301694247983458019033805671215939677783181366937106573205865259433077474600713117213894346793316520577317193991678375207804868537001655273437872811375112084915500573703742440908282565262873660349540201447215683698725354585970690297970651325998880872317758604731411807703078609807401742323765637883324842962218071431084184651090589685133694506082999733616469079385613490294357023788544468188231731647918102428727395529641375922494287370189839692732277900738856386785819795419866604517494209483758401438013425702642915784874419598083427722075035909006281502013103657716858131751653976285255809415267618469194124901002932086456284345666226903662941627392976797655478313534510059253442359954969374292577706374434078982553527551942591152085804853580568201666642859909172376110832914181543374085254747037372551677137458435525837717466405962715782936288552813367239135774239801503248703372121090316444283473899673630183580369490081624843528744255661479079061477955304666407006137007658920940660107505191042486772057577148558626799913047355072086680933481904718773546915338354395579811901773167261260681059863382546574586872278127695201626228205411200858982322987557788911404232937651127089104292177192939381359812446607438541622181347219274150914272689478966557128153286334710421735408468693440982075625831087130638265032671235634066816476021015541320631574235742427815657100177336615035589391838262458925987359887676853312867340022381041542160556355265955733558838976810876743775190718737756888773924629722685628075512859815421185514314780406543636549396894816526595361668541368295598705943669643365426127798540174197265727261467163481926771405067798751149999140840566839497895175864083552888862639458600783223130100029620097915570880992443149955541760959791690374701432143278923086158011975075906736041878328766096750385685516561757407312575868250941802362365365553011830739904069920769525722244865678104550983190111825570301431649360324990013876900126536075006553204301803717207137772222618381872982389034528119808743666692477462459139131620342012541243257315367287631966354475810682143050864812349944727152107556706754206125347330044079715374802269153688463985719489221135772798921605915606287711216551165700450587585565880013678507730127438041980089528288725409916486998253328098558897007404411255856830065231979579780744859411240109962242739791958553077095282061162938258090671817239551747899348815519997114215481873076731266711020780606674283053571140080158914298592837519834993082140006956692367635169697302666883395746382831071960167101297484568793652113686049155237712086604614287315972647751948757570089570040580989908309554501207959656206277336388468751420541206725555212549298408349789955781755610723688420441986752136273849177858054170884627677658899317203744665642937499657283926907480146091273777916160358673212456421311310793989075931407937421065546202824714861686721310121355907590413757661951818801979201691560720321192309493998370657919727904755655975646597735697571952718422397976892338185244313306382540825786160333889545713313643580716818565274620391296626593608259551819421984939305053531836393051689619227131205962947301595184484035835864916652890617671257229249373437530969727330571516763118474582196395712417336917608483516054718734190063378347440744053348608420253791440189945081040987769412303457448434935548538351475882952397762017863555910239351485033190521483705751142664284608159344388772754454708127088053964353050173798060784451351790890114683761509338464872655976502187208800574786591618345190853831715322096684440599420554582744393398260841265234144503083508602007689188459240983038971534593710009655305031424575172020616467465642551061342999167331635202491167414943492581818520795747708692088866787544283895591720936947890213696750974683727759453488460171387306526181025290959237247814147060828756970351640157051078899905123303591687558182389919823385451892572837758777982031333225876845357041953487043317268250224284135468550694320394293039943245552778378101923358288654290439119224440612276402757943701299208435442579195411387776947226463356532226758026236413069546120913710958189650209835785837693110422129751753127832994637807677918216217780487058277173617053791525486541034026435959894984363550923406590348738595572892688185391453790601172842842116213145993551261853244930593181480500188945960412396191245616785445143683200994591202658287296182357381831520482476460043591295890780208330813313943681960287003245878878136214051706007759001676112911981416766800187844964799115860433227996405229004002547550766831009112553280396904310615167288636647750932613636913103434684525106231242959586605713495822121321776423463674283750124565948637497978225947131030663753150720819818672864514580736818588206358116328059822926448370096267365245651805693365883569187927100277351082775728118038266560333280705903390686204703874326506009942824984828644729543339394058096306122391405623238716889668446470181460955875719947037124674704744103905167832153999049328835953454835601154665557733633701402622013978922938758121225958031459730204855685765448809991815815886672453076307131726167271974942214767580420134144315527984508582417177187872773784946192570955964449805056514574455323744519053801819780155642633775732452658632478555097434554166844771016575978823452288058704575873436319228762932472033831879519033783797376277134992293556230759413044649329326370476289502754950390176509309644711605745088093745216067766821579065537169224401468143273821785663626859762867578643992766621532162423978922558231800843720075254807591703827220267375615351039469971618104156410859147194006743404292305674807553459873057991295157034885220357002373814783623478400315433654475498402789850091842849758237597630342705550109114313000877057663233386979751475490279200847540477159204905857145647492568384378226100053566581738920949939129434154911252339827548813559840674658876619262322954393907104369615485913670522007590171087938448386528918604622497957791994676277349218849774781262746754357065569563449530503013803109536341610937969566922410999014122640997719360849008813579811019428337413603709802829301019411940935570248807206449958078997043155010519537979213455135757688179514044413414598800715820762988786505588597724123246381972335079766093070970135519378592849305926496494742969762362181892487653295608083796573713474657640093573369073825883325468436259016334341518841392504139787167012464973723962657357083867144962826419892679250062877237413529844871933002474086825083917186207288364377107242103939748578373951976534263650897390759004685019243318311943754278237918267073528791923199635855920800430041886137875815091568304282251695903795724306414644499815988835517348809981211035195699878035275135694473003490744766645957773478935786596754388938290680331093178280628591249933272712517462032775125950259307623264524046445238195857588162407666974931069029976751713634402667664078300440945433948666106917391410982707031333580700296201314268675637092390291094621524391955569451487404832845829745360258132545875679182485664799513187858793279701524000809813867162811305788332086595042654667600754357275012721223582801838619667325446012783942125349424937688838448350925394935235602178988080719189953392390720214925772514713574603694758571009463594465564161583598159020675531778880566317629880378427657633147591925020513651561831207195097376914781817146799271913698154301489050975577930376996345113420066746792655025760921958690302840294359588810123554255108000788544732200974066516644023732391375244523009556716381152401165505971793050194316884484353826410720352654149006222586668983507660847438142214302326277424432136190770420559679101547957646173953241343619345855853844507550237775900924354325120950395825496841599566248952226670117819758839836399355018869566967967703612885867940884855254896973891964069591831776931743019647322603669325719089131830143176519350948950398106539631523603551586448753726467422706987343007931452574963178971805090896645877712165924374199420644726615255468640716133991280248460408195062559189156617914650098595630971197641067732146140675747923406698789978902487786818299212258966258113953103616782203244695758719758204011391866082322284611588091934752140567853842043800744682699515381963319090412719737781137173063172954014462342052887769804390601250352764732678097704294238709656907853786381580010319990202796182931396664263373402790064589574489818993626906046426089293652944694622110302078688166089850585530876558606698593313116931042045753504841374694764079758447268816879369307972563959600254525771417594177098712076156524531682842495218356733769041827836318527597992143876215644827472939577573555033464090133757075932732357034199826753295961349506008075172381496766779903249237485026742021562632418852357182502292441381943713319755901342288296591526876179873537180428136202637467864227610551604158972493598684624334984739132757929678906553590452061710725251430258691294882489298079512818529545627735861654264127542802636125558687300291202676241091259516928301451752053850893784068119548701863507426230611905671889313031448778435970713658196186057563741909310747264165192943587557728367759366427072338029775745785057921001603520815399700544079776101282810014102010717947088203608284631058756795718800579055893508726002353127952934828301284662452075823771243789859152139928892762921091015953366171402520880179579671609359898413159896418384975949189034932820267630766947604081994999164413179315185819755532043935032078397605334640809586160401362355575069269350094764967173509049960212403826872449455912799378719653890183388411210953456429856013388958473599327910876011956338206836527758325783320665063871680287993146552537546457411767352533950304996863952080390659894863142675542958416546972441643918385307184912231867169733082610840164858986835992956424846237060768527026739548037806475590158211910735940239098992662285668940545620201332160102569033468041684140085450543066791868368869419884304228107657650850825942863285114101099721485501473113621310844068207428546412436499127148511528112384282653615938524529944819186679879672804656733304201389223115957428830760939714354671980979929061825240438093588055682008085001277689302355369503659061211348951435373394936132189640145209808291722886565773991892724413907543452109878440148136958001227300127996584923869648402453825780283806925708634501427449161931913761567269828013886934545962397136641488921407158248851991413985964973727711488399988865956429746891426524257087776663663140490610995540036733109608469305325956601454961076407080287879558276741583213513107328849288832796437128058920924624103873684058781790666293307895150526172365775951396901191465820789572925279635135370099415433219114633507460390307891217550018379316200742911457399298609118116463918015508554152727471134916140584379706881659981840066403987051532473883320756254964012786484238660357117788106280105415391128963286363747390294701109817263087019948865329234884184973326809437265943691062947617338119708604969298678849681898646441939034087354198146860351180036266837445477263211225265154991228000587668323388836267920252638391652318236288300894466494773153026776540059130575807453039462815895836588917250844261343042597699483006414146755174174596943694632740621757988640804936491549505420939604613660925642304436986076022331091397151867649275856584553402987669135424711699544503343773873671246530858360991791055641898241792107223253022334575447400492716581463182654432196482946416095562812813455604733075396460657471672746172814586799177522324723171648641752858111990024689020655325976397937734546628169099653639368894973298470820614925897723383065613969156226954211360894115050871277786885996190921890946970813956816111028885068031764482963168038658053045367807658314523412866136101154020581570109360908870015591740009010857630741721779271255330815923879261404463514639360738056589331591750864831602635467313794221498228056224712837423871049708543061462975109018686719429121075009160768015203759750558068604317150654412814515877053920864081440353485583589425020042055923675254061580308404738349736441525136640529872165463211782328378296520655704995027953149140962445508767515645579579678248538812745556473077848987482096758711034397052624875702835608593702169497594701137604770955886395836837974319821036326566771747236377720995741708610381512969234382257564563017825372965092830732616945163264064694572716027691795199678629897163271535970610997223152876943362862842417634884903456620116739831130531508443193159416495946277667029653630350278530938274518828158131718743730918275734774695844382617157332805901371121321465337115532826371951215864881200707711237905272188389984398994180739090743660822131750837449565491921295385539576218751253697802709832973278361559916180805296774091676335248613128038434304767253874675486826291485034101061438622678556216238818733434953423086167620812060974881661834981822199452736843255321611918015569620828843445215326990386415438473320812970099313055253625611818450743850882701166779330288384350742622074137931529014881942969535621779749092218418335584402539513879288726581477715524120023774989564113959394836002479460879102634627539441752777284993776739616200610469708299290046788886762682895530249379707841334300003775577290263981223855157302063411533971127565709676291068085348127623320025756552370383881450592947629665278826456657526248503147493423607344268098898013060771720543857124035132924552603501923652481170595801061008319538144960285714290702441108531113846965432861845501989220358962614470031071802139862777678208635109476259200928279180310061728292130899536563207844462486231397459247512337600732630397206190933956617289080820860158886501725767269242359882746422394736070161874929892750746615456396097132493967313328930060594318047433152581479212070337556865871629710067174231412047339227726581594554022621980450452887355188258920577214466464871938666505648642698607761563849936925279224892544110143984652933743791091842057454055673751769998357963914430474715168912291842972774362743710210878270865591462701568165160351726667672340419241696530373791021985805845641535032297356986905392505681270569789240878436844591202022352395559932062712415966351986107218431773681299784727023158582850853014193795060126201088250104482054607817507498740893031110775579845658670192838971475502953640190485925440059681921437417315267656223084574157365496567268040597872996193409465522472318708468459165344782096561097191523999871740229977723375873490953861297733239450477575014782455903307604353337936349485693924153358485843991580837111899181559220918939050379071375537104594366072078952076443107003796102125047481763711189793610128195716661961381476607766131528875493492846059833472994903237494777284401013282035015420460005082612320899095401576495834615691895201985177565994051085043112793119569097573946851696002314450994373460737218159943093898661710936098739720192088372230693076764637102274735376079766543487391328654620192366527694277561495848092384608576881000465886219102012865556271370111654191913814264538728038908075592137559885945956104564628691430596698389532354858022632678989058782329954803396289193778727796483805449964400221746313681154551845197537529756990836211279497565218880897028167982059987117763659818870671332512935233468851136930389137785666308257684503480698988338446324824900868347318258380379140594457197793107837858113291217261016143373658140668865414083587817802250505044266198034759023840514312252260880791518321718480558238179236555876955312583740498797739807662493848905380735427902795962748099053760427313502046264430996346382443583505560486085932828186076948600617665064122801132970378969917234264173565970640439776152733419774216230681518936689443090199017542002870796746902964255528269431288034535218852750250884934027852112988533161170378630212245534222347297725942239416909388170497917904110194884787300904005895959888020078461727212837001748321496026495138685515618116231651195383408910600342211657261704431166656691991876390161497776238373097305521451961248972431984644497622715876188114164144741829493092830781432085811407426726828861824362633730721768347636341744054148627536831315474104831926651022824272869839278781731268743559144398669190429565934202929221624069582316657815443457266425102837784102611840055926850658045554246811033626471410917851232599171070954476405194196592211131390300329238163919200154427054753583572540374508672799127291330841484706410491761313716212847467432512980101456356172216641215324938358296105214971349861725287522251068660080944476831996612849777781942517714665348232404354972932956971076245599185150898547937236401079773094770745897585231423410773652982288275965784788418995249124765107136318019898595851564684241796084782646439855126225323685943751356131563348749327727232177720524447164450674974463294758278529871288361883094402951979173611851343655934387910366965141897813216445105225546702897008356422262107216445941768983492698872068128133685664728502223208295247475363533004613860759333420211994428337411246549344227435978171991886835513848961100799699326328837849738692658320308696596580778816986552954539175180399287467707899204684354512225457560290360283922306649005680072682671879135874565755302321731380603537572183267016098962881699022237883054162333241061047027008447750920010405228688896698789349579545324514736740108850588449816498782132360079026030709092722517431556909564047291817930696633943086483412326001729880907998966620145462988128629586314079049247153579340489021386166600700813866507967092279819393520618300482346759677170025207462029212830018254708419923182837318963140176235879435218799980789895772418701324352987726641247303747215811742254252449832500388427563716178711965717504876307618666683321821898631672222773156314636236098136790222161615749444660900293054909563069593904453347161586926400634930836748318817681206368157353977823418481534918835943453444461762197549370799364665127863181636171527810716129142138541779920406099865560841670787425661345923402025643708854030675873654578351927410398248311867609587167789261143499705749655650651110096070703936860015782914742149040430716423448641569817218868896951601462699974848244074633013850162262344368039461177011252874783045186843409419454213841777991370530129606469730354774998996412875847361952487783745936225487886526368351677365182921427069489818428677188579151461635197060711910102321956137854848728607021290327444297072595999082749190538562123866499852274293744320106234672602798680009877343593977137507398309890962323452161507172448988561677950982751331338355160112465954334932577746787507955078809147825185657166356773627542074563311786520824734665439846220715692948913884214805998414104183985010701622507848304224287969069777023050820894754735219505290787665787935805917087469146098291798450256265681317975249739121122200919878193467690848462740853495845642729350991416989316561671764565352170254782201060560783477091633782477956989527744220158135922867125183210475758520118176104067758190804321216668898725046206438448270660821825656123107329992488086725890333333746274736716676987314039425078655544708332652597619346648712624093647542683531193259992279416117286092400192440318861832285803873062657328512818966726374317234535364937611987688648443010664164623964997475234208845430151827598467524123593634667290219434584948386516297418964734442684386655697716285044004863514474625326001945352781221687106783815896233090184677583369827417002646952363253949161365013613330059653413019694645281770742614186294784803033297010657908021540477485787156664061742843976293124402147230978080705049868053103267928661659806469253959995654041320510804594581969266723969730799815252149763563614158918603571666632158715942474533749915591528897756459696721865048927046254395593942800780301864127760583792522098792819399332452233487126310334146834422652783424638411532479094277168045171698441873380917763546516483593030339051300692929303720664029748559219510477342385487995452891068096851938267428059525380454858175268682994828791689773044014932486761389077959222544029945427194531206385840532537895272543708738686605512406411403996700063247214668776992392189613051928906904242810739343657518215252150438337482495702465295323804237271756047371362799377551592529138866194024585466340812495126557651168832400193668440870481849403532429642660465753418185475897038972770925162974246895173931546633923061251283075489462905961321709277257804536064769747991547022741212754480046701105473076801990812988948241144206283542191171594534719750086148814124569152152082276645462547026833392487570863176586709388352512407612510825055417626550224455261518882050449409430811096437883806214806550055907738789907666096296493633300465745085700751075428643908452559100916501469588936925999874899507261311650331139489539791699892975406440963028435955862891593145727621143681506760611406020131096289998505584333314927484743309362559045339668962572582241943639859707679236837279067461536841197873569803150334847468831747643374258396521090074706289690823494557183395778062547327097144114045470837040787732593198966559153107000049165708371259665225779248203958862843847693319445390711517670411244253776880009055969392444263965083616160300848132095791553956658736341597472066687992011649034395404821573576348597489133253308600306468478293740009248990437518328437849413949268216940698101911283965977362951565909560813580923544998400905904701357965743668488276400485501090237046889425667374528054621233041642585687548966059257819346663664520671720215202367651475607854195035861119214998035527453623668533453126890853678610956402402087673688347223661174147123964863981456475001774369040942927690446135470390738025172710542874600064486611512148625938523742709463765405713138298905850546041406173973278204998410863371799084972430095757046079181880559287154305446317465143024207051741951511226166081055059874543802351746381695260956989974206620080611521340808037384504325486161229889403934899415790299263341670426727598109483380266286251095370826781023472268719553120611283411568471970758525689361782100286750432562535528609816716295876168259858270465909246070118283958147860605084890335373554396076567486926814342334028661667101680635106526270986379987881878059707778883790407388704735388818344949885076989073419472428960082253669347200886608157676451684262549083453465966659397891423287200934468788881554850152632536771892617757646748219729540303549445300191552681149735393365723769078107514422453552720597896337347136529815363888750711472875910200405866474289025877934368887985964968663623907670102117300166756526182720626169212567632497666661536072620970194429772490358854259975924880516998794541335778010846947582370561945061648719410328163681422850213442857522832101560928503173035932217737024061438068591362538530530323143727375632747301098374814456011738526559259257737746634290409422886103936292621923770627205354493618733427681270823352504904819743238577710980345453843933142648569555335863349692272883435725692689355283301564593728119809985953011327112727627005963691557829430735577890642253607753670363439539205959129918678403291905360416886858722747084917844553945027067855286399200581234066197412887596227006017174833030322683411678396571520868693644378890562872905649955498620607955657927206663655840054303751100673689645051441797491417755599824836933057248076460529509829860191396061114542257370608063599967543803103303188490134077714459550277254925732716535197098894630373743079725296397284998732562577020913107722576421893128437677778067831287175854919998186800311382658170594059193398349664760077659130160738055591995495811715932042724377492866316836417623228916251175776615416034417393196041931845488570029194036889013969677344179322382006022674028393220470390060778959736362453698853257280809470562550583333998009258635017863028035075163306546852917569464817851746020202509253187412276539312795126773696171218145092540362840560683860454968196802650999199442989138603511854642334578763393646387230051211288972863177968189605315214961667499172945674750443781401109969411959640955404320570131314901164134462073855662037380315806827986535843169356571143641614491409703498332481245304741102868359355026144409590643590393019632818331110551049738847505855788539871010259625559427070323962243460519925550826453162128285015504303522327436664113256600420959556347587990850455477408970566353549490308033118123458268325994424195147082351279818307791325855382912367362834541914670828436126832983421181967460676315860755290289394203159229761670635847625791491085968664284288733900624556016185410245210705261348653572778107740847167644606201417270439395567322115734498105259444455093289601402471492432286681837400685636131768305400902794037862420512849788825340701926812989720150876094122226971084786245472797804910650481838438647025930429004374866241695659494800796193987309864037647430037726136758243473347851347461209744583449558624544881761767560362086386797373938908934749683663266454943224781457351989309960195405057654595877927554394329853682278943101539151825998738877482890444697040013369692333067486754036236403513923105542557445564832722744742169798275050791286868909018440981341861973688698908978445297309636956486035642095792190526772166446690192093831815608574113666104132918850260185619041935162703929036091296064266135808167886390919722869709043818464885572509654935180452539408466239568730268809614755269892116067079063160939581960572666545793562763116935119464427665334089178462149928812774228729729021693397451941688354773588598677362308802521115293491146784554873314395376498680262127495564454494398035717333595755300896820690334757914243728848381368370055207578897184538187879911459852549503317791114479870325056689121882647920824210775282653941507827642928841889475704802163925969853527139965522654010611444647184628963767797249595926410959284383478505780680608371747872745463827893607943832216722581042476357453935080619843658443503513931690330311174017174446571607212736649393019834784993437373879892978254258953191516808253923770513254543654266073101852944538453868018394130790961975556185538659164863272130316940863699977221502831703645833998945001601693991973744531874685335935429740430361937966611200778627722144868329064270825488027801347689609833356700640489291702377861218563953827496368995480113024350541559131068980882832951271220448378698906833478464609361374744538696973117403480420054070445816119906295002892960860322949710463344913344033029916777631361503486262095725814872264883862655552485958155076250690086391692644333779228104520619683088484684261391269318691285570646011856694296773878429643257305265382777010534743608165373433868325092512198232161438584024785087834165998412792316808076379609838094254630059121037272575779887870877170272321384379067012677124492876079631456612555023749012679830349651916110548568049409134123977910531723077539932532698911572666104431286364687826241741466269646215813231402194430366116068742834593659787909793797492325101054860158048362051177024745954441060938793075471991403330662631282363538739471775382776087945690856851314451992383114883161148675667827899853096616327818411641460633916661005357914795247601097890987947912562735503872135605429521747443009783809096007916069021367661285720274656430589355078296362132047942736745100587280075234819132201961849868065895605643779741826273522882918934916973697572274323098933174336177381146098631924990617860398050981788869656289416959818773416183128479566750329722479225846349797945488406433622665445970221087233576070219224413560955380127610198414009459943210191703443279526416440187353931773732563345202147836775464085522182689049043112016549775743551600027968536502116897418596215646575311276441634017126079041916798849222714475613109719347576829621464798027864557597085231036141816928376982836290643022648058146173025213190422350976232463078573287492515684942776242308422811402543348032393478119623780378261510450288011836330001292574445470488129463440518317238092376990658653939915800900242323320125922143585846881221171375424509769643942735277428902538644945085355301439781992974940598905932797313577134736182323635493484746189937054429497919443260909234634861063525357738162894500363769818732776291263268113741827571432592570044746295560428764732896682480873212566174638490714433400481883859426657716126858769064091348319619489001541583841282276072296500990902413548704426525488486531503836619671067833786548527217611576667957517650445776485809933393493210798167331623170742388421062248516006133189078364456439779254347535868122221701130456920852310260091412013390287293253238979386563124618513313242467417824150060920343235759473986173668475016405232171793900942774323060104625963756028240484848215335814191118465079349682396682039678188868120397999916191083204936810228885588152652369547421774567043828860948077483578141166880713835069836619501493534990671532029185370183323436491674709647928015150465354080448770595605757779487011667349933814214881181632745087553295983099390696678015145334732166258690484702637424200644633106481956747364129831453845744549472117469819912310735964633262529910569778469492331186546979136713868859020598817793104185290336012584810911981814452740152914503186919224277121671895182043608988719262257401161848839600969348503571832221455076875729516151169633203421548156973087938949140516286254747070579707083647717841807014866609205611878853880419357621082966884687219018117556224060442970069267613982071329404183099577692580439027627276724206183821356962302791395270877310185387638924687232567327749917479296997144800507695123543248907810049224565189671459267281445474028894012169804952788620302433237832375657743718350751407257389943086694106821180795389428715602865927796805976800295132265803575258647527776231070338898030891743070592834310857883236908428571715685157625064823869764292757982466628025930780782783441387744268706295292412238500121266632830069514212115828616134255807940781524825928010275562338521963531531838910005916181445158033135334869960147259848837694175962879150323133967145479451499955394743022874936453526236367183197361557354350964448951305718214073338748197979666982920961122215887613257400279058246283716423992498909906191478446695215490656959440383177940216752724994071605907455420348817990617346489957688028668561158063770329142052664005698867670437627866868313503623665874870169614279229514297085494120016027468363046070138855626972686590053887904654538147480985732494578899088398835987361228814656939450188053975982095991582100261707702293752762652494247058633691308701813500856441876728271773263640638782888464811818517648277934425445415011277528610859218769184806186013418463998787722738642391412280520345663018934522075028596891198564485098884072844343805644080175260739796221610608793838002290269311600038223859088609264645033293235236978444053518542625433135278353390829506860443185705347640765381239126742816092037121304190298822513908828901579507165360838389496212082729241073894256357692945316045026497069930154035343522137103991910268597338169238689651164565499607268246788641361566605115204957907917820718870243837468166216128407362461680852263821655818360253100834218885307085220078681555547724320101327698274909574246992902949772707614924836588421108820832013199284990334522804723929363782346104187184070072759857384639168434241341646775633951787329801532982774976091810943659381561501149821912187363776458731111735149673515121546304662480161140650866763966357778535549398676953902798939325127474803779822994285910417501850330264073445503653065244189384669259295665105722812118432899754026444559285104733745613692349231809289626765712775519318698687935525332580519396604027961359548709175685468222915341512305948226609919233444042657916197104594048094962273063172502424223648648426199290677941267207682013393693931100946204498251377027059022804780306339279829788477937683878956227271337944043554702482343633672160184015462388107370838909347980368627911453125830002215054483111839139270385045334209453485565738974547046879808084676441912091210934164868823054639560471562193488703010453627432516849505094239484444415098608860760809497467085063045720547114432244765381052791260258677602760406639105458424494744143396842054825655945398732169030831154119486113795839661467227755443770526484027915874743478219910128524051619127707405319811384427567542405043813911674044423556100609160566474687181013135180032594680757081394812535771870105129775267821126778138877683622496265638726196888732106915612281631302655454838878461873426591069662715955046600169093156514328995163275996650459796050488897863413141449512867124820311723140511613314343790075331249348998646742287566137096054657291509210750009351564793471157039318575788993398024639085063829732250843433129968649320844061296267736009202335715086142828119673136084028094287883890652299095792380263667609222944262734810802139603486614224564351059560664339351853218690253543135201941593079716949582439178499071845474673445530619214409507482606523391522162523332422273079509916526480418943948995701875728731508577875782747174708886547682201805266385235355256515659331316544283528614446179402517140561401243454530428758854600093646192216971030243228149229283225061358275991265893467495432024975651576228122783216005725497305133023528142973064922906380761273626979997160578589333168765079400415325242598318841089160695201472311062595290380506799452258566273196134247147317379321005882500379931610109425675784336792313725987708865051767579473744411649453675670122387320041474698100407045949980339924279668778878103684877626528470267995849113214950001200525339601251244932265936254729164201648953937675814546810634890465470597642183195720342557569166160726208737793059521607598484941620895716189650171404860927846071285368030088621505765993744020423462164215568239987831511263985858506069416827932318375013187796981846372097354812403105475879884130341296320216319529660467599740577640629681216875354004152830965691525392650028392938036354624562303855329830926913406075502716953113551483517412993834286276602405204551023858851268358957327602222404625197597920114598713335006421885191090730159034565063954618907894050104350160642299913466026126012934994799038364360366498856878232396289500305168389046329591953572290893439786141554893922223442148564292409829226018789152635106437900734674814662311730263151017493877362616542546722429899706826071157347205951294305910184900723635545998620491984023260613093291681314971066440307473220928184781046174523826883540674512921463315310456271803561383431165782530906335731204908804959888629817977495004564865342137970245963783537886973071701769249203272839046995628471146609060194641029461439517133271823514939112906138451293549261961667609060903918922828555349095783579357634199498958266604625672269134072789754253378290036390488024062746397880362704601500568955465768673899177442585764515578094632296483118092259732551321192292985556177860880540619727803313969217559787497369866459774682884863381348440912593828234993140158053212054260515622834837250213083592004037084178543722367171646820272767383323177282296309654432515478831727630374189809832588915919380301388100742547380590598438934062599568246869689104052627896837826054512609897893798928321621518028419931799348638875571363181355330709523561977016177378258306804256847943859981219935716889250888782409952301798743696547056081551976819972224231655381826593385916764726430365097161710403881564292690649819817923994173648976929911264204394208131854949411874226840789833399285737810475631899812453789799568137082591798173937519856880579078460068821703257484048129944496817303199953394815798468671398698507050971970538971121481213205183874497531223518857857924571211556573694530904315852307324911752758376240986923898143908060059767777374664222278742097761748609766649184004371568736194980188665720732330405425957655287880363496112890212052874116133399547004590166514934209418632429208739298059864657138760644083374153800582107724367664528464635423605952440181688891546514545359616434979002266356438397286758303483351079050181595394256455464154851131718705858063311004198127053947777153253803517271940247912098383821450936782475586863831415482993616915851186149495461024484526429940415023799563785837333781397561853087331183549800266440944074258145407445617371025739567754729266509534832859452351931407158826022073651109296378174436257136908773539262391478876574860113747178809970528879692679625421668611876622770197687344454074023793660272935502369436817626175153464284990540876863802928542751217692535067606502017037430037872145233026400784167915745421503370352667141986844321515414070335207076391570959214083752483484527011015356394654833050272386690047057132998091407484318845574211330675607850671695249178896236908850352901282361809768802660238471568372773580832149984586258540556320855782137431314974259268401271461927181833654866502965491475199232008321421319374477158936938774962362873032535028633742890414541957257981102056469331521417578714291956752965498088331997885679054990902864979094250558647055986534767261527548382462937505972039137917510902832863608940307798359472247792307508264748920077538648606144871703074058595703256593235912028852794765044461617764587703758292705619809591539890423079496482687572009201595644806430173975451651337332827659010512754165445938174349440608889646416811571658667661729032043491504887016850645890183421330775131052678284829973302352457180768856129072956212145272687909473148549617622436196406737150695431102384591470020575773672335338469091188080550479046015164637793850873977110661304989695323572359111987210913097786404526311258998492499185674584486440322106136095027917457322479785659067988763745957344268346876699368817536673046485970586655114717914214605858692619139407306723572387956955392623448393899066124500057458651390322398796012752771426222380344956984784770582437837581606702495296493729858582450297670741198148156156015268520759698043260307755889557164267240863772494488516659951682083923981170937638330382954678110556628268951708513528966629344310950166338281156182948887327340334662326241249788395103944623914658513924715117573946478502835555265458459910331876788605145263557075300049482791647917925490414516868459723486824794227325020599621099282396846349351487259629186023074271405107529886108709731893285673751449566559070355997580767854833411602023732827221949857558109312444210420195058873466347819888222026416027790796076457288170208218262861270983604334542871493300832963233813014554953471082570614650738917218586408070134456712287787181782157993385324123931987457861094002543397724599481482114365621062220979361387771822427980386197883491998382086217462696660273508858409861752179384861868122837783141850086541672174073623080010247974131129041415621198406824914144241173998890026335639098255629580914284721897666833301088390000212459865537637731065841884047270177687807815974663919632472293453958604615102391155859378813754197009072777748224429364229398117460796302590136009431671401025612388024253900291882659732218307278186612339785096741964083924023295994326187212606546718098490184401545533784707449533494262388961067823094968485538563536786589407073081554800146603651486975903003966357770696821376423176024083207701092587082456314099957424705777227936099487377579257941743524071747199618175420602593372654455722129249391615474860987927026466874680473068468188531932711215585485629973027565085105024380812302672118682942299485689304552759367315391313834432249702961791853010411787043794653946274680901768095704730569512111293613512816756539899780419352751050893638150619454531778376666455640297571100954883214416195552831430524548405822145360848930316608531463031849934599900053338231075549370518551094047107944325426556160279502533035774273778153947810786855758711078359989223243049954697270837320819270964574744905553364524493418736624638600922497458086117937984176293910242771863286125512600207616780240304466922939142131027069323338460471811742149986705776328584113823993186511601933010211232667218896730926703799767344123313167159986153464617336510372992960295259525667630743246885116810145992719152495626451888446636682543607999453314000821428436182981553819021691482979551545879800286503350602182777363573596227635338581138194630950685511973000980020090106156024502379395072056174470535773308058959198630936732774642603293054801111439050650334827923075642210746547584603295501328320612606126620134397415116445183096526897256289571780961906690339231583708034402917186203901716964930921032447498499891486880291839097138361783729646330367430852724722407310616171661809897590469157789464652926500664343946040285993043520349811420791317707904521394466693243300415146130436434073825925502157286238187773398149152594006542287314409104792525547284344834067480099225636751569514896685128679300294982713091072836285249381392673839349833901165061805018258233032098368434674037571190752275545975203544566194314770038164527514697415239755673279945697259848841622501109493065788534553166549846539216043563631352594868374449688376266764189205733028524917866527116552672662921004906541014254818755485784450458173494683046336519493860582910008864085445803672771922361451194128779639092807794764247304464928767215077627496204561502436999104356354711223476933669959633225099970446870082719435902274543223417101841467622541659217676888956683030415797438229275057331253233266826471882190760709699600408720344853861547721256052312562851978910582593553563195491899946337083495826246242387542452688411253516897409119287645833870487955168470148413622329508686114486656610664384032930138948778210168740215487783450716539137316043867650399928235767975334098621082167392053340667765769403762995677098328332567153302746942365559747265897680283749009366146434381605018632494595723686507434421399487748765793534548712734218469614513731164540305705387649314213452135273469740657117176708583681216172711690128226808027343296258209777357478011977286577081685354777453216812005326810880345749364412469290217512639983383563367003484132357603226638163665287401080814847514815084177216141887195835368415767428665756004373048004363501349742932231535453575709537404882092446194346292477807170325650004815436853048924955970521595642461092626815610354643900462544233995795004530975893826428174117912042872785135931182879773480051954534582854595414278119876562020714289765939452131259448666742991894992335731114174386114290957895544258007928448147394964482546955428913064637735995682942275212115174978931178942459594849513166633129079122191272583655355489432102817018374842708869571684829865743161389251660962981113916737400260112327361230023157882686772143342644284722651012263941744280278878772885104232904374363748704775766607811382250528996215917955441306202775984157449568826327629623690832884480680411730914269748527630782857124680310560356395108416176502298144621714607802830438591820265803607247799354395857517445326722642253650645147637552397347314221595486798919765146058329214034863812426426905199863718830375095134151511036808393288321863188844419099999611147238447196888998806499559715750206577622256739889459466713646963530320630180401723311075852957150130674514917501679232120351691207035788473946734687967296599227562068899825787821882178662807974386343017620050444633855248040847650368497490778981318194624293480316232706971586870864369209835261276258751193292866293782815621417223857013622992044621864156665631404821257351308106769653978165912063806043512462833198555834888578238411794257250377143242591123542801925131537870520231244402316388220899470397391926615778254376015466744957710339549118297945415034073519566196286045338994904771998841620298485684204501108361092509809313989491621610863868529674349373301106377920369231592087645987507791737584126101289514290857088394302780869563639208960726794933856616793403894809699114574927218128238222744061862532349121670449884965841722841099921043878125760277952646215177914711738223169255457356822585812463068779740352331844670488287850268530909214483149735732390308130693328995180143440056973316144338557626684862334180224477069414594713724270344913921107452051395635450369789182591338484583737862160088266294856187384532006454621764635700109409152368960240534179494046443377494597491443073237138848436885556095531037737630659061559671796428740428315839298788558610191256722567305869526446937801955035161740771467963106074508329609409248481429136345017952129634951433696811304055568426084013563924680374682191659174549728553766155924611507025491364960050007672810196027200043837557981798922487984545008579116408905978561412604539330351626302991337524011115218180691697907889653157770491488146267498056843514218131169213589237601039332700567649479761328643347694590116747237663607414042280480615983142569054200133012713893630296965394350327069176430564060244807329719847423861033097669979776935306073276901311375452239451046718377904264620807319924746162943532606757473736662404375779179782760674547320120381726758704878327622928267815539042642307170664531158176092971627582319210641515624218717858156508923317661750171455410809947620107305028195717325264452927647567962839500318056094362719663152566780694808102605816149646505652561849409065479238216711203097069040210939172946420203864180604517785747701601022234133374286238907211024677685712473861383683762317074247466832827815002480709545086708742129056199913436670263166839965795914802719964380344936041652197207176374118205645441235333194377497602182542830496774188390890665543332856250249795320923848667139749708273391174002006570697452118931054062049730782121107449420438041042656335891498673576075536714016698559029352975157358749600529371238321542974388767827083879433422406176672343556825129995602662730559931602423811282137805058905832376930065682704012503543876592493241744057834604926742414527367944181916695841984226914883388100396001462140217033431927247479225541500274591319157399324947455242307498650765408478065658174560962751192362490143039588058099758945334447305899915922346879544955905593135762624453428845513385723613058510215008015542364851176844027712033070453227502550139916126158423317814836962367510965131858456808799541352046075945220852217396401702238667279123318523909942345615798593693826361125581638809560468178383731909065317455305579009443379210733141383770622856446022428731487528546867108023195658005501271716039388019997441139347644894219319484896678028241752444182298740877913569649197266293648050803293346603612882176295565856285941115134093286048273446698967275301801304374997044221609296974404795918658733924953242775768994023808222266978811047069243702868059920241892737837182907483535260129720907688624964709993630630288801211488796633269060345260908359268547594102392937766412378964195998584157198574956381506806290657174390571740562299605528583282634059763059147859175974149712795481827159858700872936915521937145688578718074275416054070331266914352845843080316326731632060881070243122669544051203109029580861273600001716267078555417664560550290781130327150115046036552468805881396567535170567320439190540271092987277032878710932321914564035799357144273515191518913581526968362718098257702310499072903010685340997597362465820246779672550879060908785785906719696253312263354169353881108228137693691004923603868832524542748378298578515445725303574100661187393012470896271042457855001881532022117518121743724747249242495962409645918986004932177971867632254463521856515502166314441040500774451377642300241641275155330986610838999124192532400936687812283577580598440697654081598863496049287841427763274530655080838687365086824695280331315639895931912583286731593017586114963654940989315383391481291049735172404335595907885523556874319218028046982252264000087633961469319897887947679368950779877495670283059388795752345971882946040806855166937730172935081835474488615086970138794979698205795602864029133933682551552070665456869384277267780720492142371151929264818396860176104899007274775320340396783480420062421908545400293488152327261834026974480461532341091163640482478924718834572461806189962362059200605469791430216437451752048624302423823647523464887477315517243921593976495290435834438342517786816062190239683232937437052914293582261985566391280684306086298859086203403641877046188809105054268792836240225027456328303936327739567889589918362238666791490095718290203112646580579273353265997438747537706304132930472655791587458012177944129378825799064303322869972114330609446773211685267467002335431180297510963110663396533709812173475831116088204119536917959576010857729829104936270514822768949309175714899931968966402949435442505396419840803607026519848723073314725851763107708945161771614222422807233808561658338778440637483362632083760438153736491380126082864816582710872557660427292718497134107096905517716883525110156491835891277693649157364666015125245467264196216955516191310805669065748146787456766359802383148360420690553749593065792167778607871788640729488062928905770208048089658885817385348099154490986886870089028999809401525806521580298628124885006158002871666772177822780240357739311351831250403957703083668000222600300552412118615762203649948455756317116404672938084632468139949346031880208576317879224078987808903307352485458242529327986767803862518929242251643939339295746780015889459855041432475093368197509443304670443283212458132859198242935808819512168225419706657427478494149160320802260753770066392952617826231696453294564429295267928085820969749709061621417351484694568923924541762943886907279396576823011295777347236165722484561241745734582821978375104176005376877809222035489533538275655656702100821564324175849992376550572161407021229771414405003643835790392895816660302811409250075097343680584604580368510629226720277657885052463580537869508563457037858612381694261271192972694623496995268068692236511337930114864325227601953843017136247432859441211549020740192697301295875443778145134249635904439427211602350310882893032342335852696502027971181046113082582794121353141305075187122516776827027195478090153874670053323937826156176635533672484523330524385240007007167083170480057330167108717713974976666678006165229870569367176825314093236262252644703656567597942076154820171618001912504285574136084825019213175614868010054567278101124765892126161073291346292758598272488879738082090773878707110436712485286291724733925085845391757175207460301154758645552916175315149917333216340228401127906593770711949238208301434679238140167431482831904181822876045433397798481770011210802608414925767415118222899760029471412930678375602127568036444746771121245599154593907337651770925335966962331206991963808743363161761711493734215888019828862362016600529502435430333376070026225622463631337036674852933616391461496684071780769584525214211266090172286955891363105645893365594487754951466477202821842537306260850602492605130441824043768497610858893571297134361192863363641924602362611892431207449384772573427436200507466994437109972172382398117518064437809849933039620815214156090196381221475333117899235713192580457080855897219808731810823962610052452282602689805204698884239670447599352566291165463120387650445095727617970207050293694872458150795928214499654735138194403001853107419967154359697537125403091091458467127052210300639672906343275808554611989952780659319629235702697207605951757820086696561011981119082447446542908767261768729524059687589712210925000925710805249839532302515325627384566058567560112212985219630895236388106792190015387889455131819125434915529026749986429651162100392055414332195150515418081391349035586031939769267421580736848751385773574359507688062323664629715926825425738391242538437717378251954277298576039397103575905772107212532306243797088574966403209607231707127278688877806802754106437087081770305720353060925484394717098986145062683521422800186426862059792725663994832041988089152628184624393082638338369044582287430819049960857451835788723624266211448968208700075999263007695523615654223788428974071822565594101439611746405756527412160388073284697743442875527373420361759362923911413074288781886078589546093203180545591648477060543962810644816327009604841106608115327809766062948319557163688820895377946721088373324613133453802877530777386858318721922707920086785819279883547427468287589437847505676071019682277671083207134902838487716058500609617127837468673570281688073118102431855161542349912108039486265614627145496718032929389398364084725984084966411603407955005519075012796192543547494815145182288302790937115500793426350204223462630777708472796815468964290660744991600548642590157199679929263753127100855612502989236033658739160775136024114406453292680357444520588996544787020771869774910990201407541699210610167212506015661499873316645529406654401466366931695879090123113367015735099534546032269422977577078515258028745328175880621857785382904022109972930116136809083151474178295337674578771671244884823899715126795061973389119107069062989035568865329109303749390372118119042332234713084690446633950352324634707942633689826097689608885196881508443153813909922410678757516557213092576966513866053795713038968667653333808650076410620774092987771965380648605474290637700841226614824298962764252472505008501841127122938809800833437102679148807607030215747500070493059218404411317050291188498620913846001434005728535821067826272426798413854787679745384164454119607583185620250465712265344494398728514496027054831676453755219750924154348924127223062502487195936367570935534321641642706743219595013172981222636464482845942626743919314972603233021910872947398915259649697158789754227746538362601247722084847444119790148395595884695869630521691219020337720106126048233220448864225401252358232941183363997328982521760748971246501432158336025646508466937155528166755672819726748431044856569472406130545513098296937263503645269470924300862226641078119310119021360362292756414107087307041142102663237369009629479017027729355373760091312851176576107346751144618360996148034270959895980611169875160235425162296382081728632602770323543037425795465534075267810998587176170820562854327152853477421200894687982914592966281708213313317355251716882595132261031769825226555881657126917591916783833737676211358799460016300489587704140430597606370621632205179778236150528392529961847617927319562953204129792386170397660627909103594065390148093652717882111927274801492994215706585269585271000720662833851530547955780343179814209284285633791494842534847249078942921557642000328764971535657715547004261407901866720149596095017873130358550802527314286727377145338134329959067848798797203984962492261757562799877410611069416045408670220593410762018651944923161370823948948692021241898256693087457982529174143407025300767476749690286207561280380785622317146954308187263816718763337837682333190029934170558421761490543923230791974726391917144484452236704709589785923105466384151863243170717239221876095202761861389548570604641968191400715438065442812319833318156440845082727760210397565053223030016197156728271393914822716936373440337616025881193401992919764716357395818542428763985643091039132276470716242652477759316198494492438717773351919084128607485216898110601669289136219351985519715446113817934110031892281767159915213337110495389181125172403625852329306211067849371329451235279043370282833957934802485653163774098964814395732804285003604431845329809673760239353156477946320150600403526436865633098712330255485717223570646402425208523168072463706851595990220619549266101597941068148127166674737969619750951828082840796930244053728585704763838962708320028235797369431808698233456889149318528051709447689875262369376532270324076379446102082485614546177482430749513317915641538153600080935309896323011698068817302585205898880031185419803603487488449475746399627614522133389986336907214970690120612945062400426642518413453401763373101354837702433596014587516452032474600966288923998950486994403754583728212968657323890280945933490774071866647045524631166481637786361216294054248009554017818142765510678485921438082989549269783035346554365566962362473934360816395392246275144673863404575313984223858967570021773785640077721698364161681896160239605702523990242519195273493448372978009036898309734864825260791763019770633483207532394173042896499348247191405869320800805020162428313909873904968681900209141079333341038513796627680252152852383343301058771149889501269382529764403672665602591164637288567508222211862912067054018462156395349137122778538750121545284326623475277405962069288831663479751002799490527246523709023236451471124632512753873471190742734750340155377217506056319740667227641298220638507304618863013929222064851998328824365476392737073885948916512038492900796862643365147580295182899002297604554072058051508172833307638369700388520996236437794255539637832879946602549514803563661328634011438172978333618382983266855922710394770908365048660541998921497403876459733207914382707874385335765422109973884346042215593509828213298373697223005168741471568015185140157999570710787231968442632555408879101040715693121923960640167509499942719966464856918422105227765331522588348026270191104831794517406175139758124976829627680567288897784438516270030553133668791820438415369893302824402036738590840374386988373557326146248591582547864284549536004042535157285461332523367539972331927204936661748998192640502972284172352267124626533228929986122993259961671922134797001882781166020993293673243193232494801808199404022440386282024500131138658013646167655743485031316959627201869361304233042386745736354756288763235603315304545624686350058075632597995749448575618373077030494682286980895236087153425015582727060475236905274724961621385466787563255198864045971448286112623353844150884008900752616626441098384657481097287627166304497689124188273440433412089977869851898633369923581207053581200014467895155587376325944380436841129947006744776554982236898333601338624194378914951940322163154581953206032924037918872667094753366146323641851242299668759761269721974485671768436050415942542180201863680613250035710870555310555337210494347116482245856400546137961005703452076373333664527998841177955691974316857190891892118332530833465759010176587595679660082797184816449916827180986316062058731347472193639316875121086510324650688822367786710182870196839103806564485634086384392380274814459471618894696350368146029421431438483873367342435428735014775504373262000187632068130447886193289271383606841088666399119159871873054414271656716914039596670501998364713817147451160600338967393151638541717801635718804624118735680568636433003265428853707198073432342231069030223176471579496486457453009904808708812311449688678492603801556135141720314118859562919664706737539428066580978142402306263942193114895655150645210265781059615223337908549005293081028132091228426976882105437640900365785500263853910413057695020528163345564947535957097890533927322779454133680700279220472246087112862002552663506335712605113992377643335303810742481602023966920913637089968789313433061444436428837125711660936779246967543187545514874842439969146712210533896846098123331966213391250668961414108054510036945782222785219621462972898849399435152961070907423707806063033942152611795593226819974049473013917769935916394780535010597701150335983669750332564642957482363865734647018366203782329433955616298582155126493462881026904262226074181947491930560665560267810728033947919171787716468701077032297394262668410820661849097472088100418542942571657893044857221665123420046238890368604011189690678030798861465474214096128892483618363631026357380189351687252881708769170361622521869710607376952830606509165911229515635622610849884863350739598454687940601973786510093449885423659405338432142390313905632332769854219615071231688600575761388025921012728560238869282414295806176165872866740915562926085457979981794686832372929725683757330161959147838589360915114780085517409831103361368269524742416397096068150415546983998389910763568833152514942850633102589010236580430017105024318904445768575860417133063619424740726007226867182007815307304564209413263065720972933952273581676952601752541748531381838254208308132907826323791661074788654774016289560706291907820711839245214577426389277724812528615946769409068855831465828149850941508520178715505626811261048262476296567009333217163815492195884648900746909255726768837352759792094418962543713122038453863132312818400426919135742426948635132025498417711382657653381032566858668274846954506554681585816014176258829271034346742024163456452780545302545232968336358249624091589368867657097948580387918677957823979127189926368074544086693515660273277185682190943522540023462586285022148290398512531998899433234857524318716462130990086373284299669150719735641104686957754003203711054504270935040639510262833886683138591063335577593502802583479496970630603402013162436452276530877483651877020715371803992283650825910494465443344173030752468563151743729460828549163718603680576444848906702193718538402138538655043614077345370049844297590491230325673730264261423475948397727042158126651507826548770053034570819598710912377032063694160047584294279686260744604585949127409910734496188202653893927648595042351442395956802772535313282017719620829166088204502974393972371580659247323573498121280205425090708329286608324812644858677302658645689980777650072442067175750550478137912688067226741953580969096125613233313262408667404197243675191120500067463007371921946324708200707823087141944248596570123116306838495667471397094487688926518561224206215882474165978056849101735466405328602357745888098583915436331321274867553191953411425276584858092512026189881073767747521400490600748227771205802600136588431767883229578018396795733611104510335303396100187083111811799866057891457637204162605963794605002176271282652072620270718876018183324023024516211705615294586519357297146667496136648667492769125472826724744870041639251888697733336150115565379163433887884766466082653549034484626664466632769862191103476065999881549547986232789955283231417764500204098768774709326576235354404596155535437453846818261212947448537319206064903763489957110779914639390628580924345259392853686471325438715174404883862952751511058124329995986509342598276015988750912293879979078143894886506275224375461590280395973503212612097665243210133894692329153803887415604056233010926786986635783155698071282676408263039337392153173367194980540303909050928392944558562417069219623494025375768374058363244711913231201042813066779499777930751517576741342665276432513170724903874731230604303163826013546383172216649343775934816881156088054958105471225668975821134705342862245457317881714818067208799781897203688517607787419330963181200425543214898537480761345615219378676168084023064072679014325198471597711190447588532118424267416730552870172907367569289758131449581577542874912537028472088514104565228200669554699009238854121671818433118582839160572903057604867837281905002998393051617975066438040723892962384663054302665960720815836050636176633704328397507105202979535340835137920120921695557864247367613725500582211228026855081363354555867850364504640396264889172888217277955385991072734938137829437002456044180063140068605241269097993090092815959880607425190094924998672183553653449800143152590985283847556185404840211230662995689773502354053316389434708934632445568990253398126719285865283982506651938237160230497380708013898786883351973418489872556316096867894533558530858904575397361026343193337521327070405174272168138801402352885965203837885131358672240329745348856320607770381544698168900857847017938605809807138510661480452872027202972386330265005086545040523948179751938400784617543353860348554188807772565835891892196765049366744915355697611932601988085609233192947064145136388538893752768424318925580676058165652911762978181215529061067519866903868992085327120190207321869351627157194477266432675518383051046890781888362205182938561296616590894362007413409487530556596248473662224757644581483950258867839173303967125108575124379760083974498342771246054948658100121208192262310768406065641138159078771115218940059548157754927265499795863597586480612698564491365994450135562507361934165405131386991473648477409842633173397195423654884659226744171114568747898265085845576923623302958227931677954158509250009800255906254140520802040186823465545873085675310294634489563834480231233623505993574830234453276770050840416779456246619895360907936287186492585970299736556635181487388180877300120553180474173202748088573695544980566423740149497710321652976915022340816593051715604959019275442868103131035972137669568583286023374938686627349912537638261695698493053212739701523889096266383092412796216446490937713857939788984822091303718160049413989250932224191667738154355935168868340710228469860851366579910444011428348169511169901844199908847559287041998140540637282216632101068162180443868434305282071674611087157199796492671232418958311283885747888236388511238011772398256953361060745638154177253939201693857881790126096835963069650719920773592852210491548179989091402122590664656789201812699245563066975431874515102003057699163536858356715627960923222942795261431544179908051139352955268696406006409576653070249997803560758753947600726016169929977632666358448668138223637961962625047452479410008023793372946600262689388026056725161958346365736509933761940194343671702886736849449194589736737742358542636051223032934747668418371333117137087720338848019308955226133024327304208252612416093186394467883277193516987884059257427198036027596985365958072824734214494019411630371716492914064525059001299640194750090025606934110120351100109637934622362087872734420536487835274942167707162316887586024991333255755575978184372254200479569649772798431504599592622740425047874592536208240418017723618588429016695055567319877414353307352679192647507830793048029633611151797661607789096288153592294512960731430314904854281225257072444226476667694180779734499059572579260025027076831552713321624891988773310970506919201010546731942586497661740618193346905084067726337204158592711300044100626872540803305402269241091906966466200500927729050944216789688905105236317780218751281637541072668031310072339167541026465377703950853501825360045867136354360790162536232205271658713919020757610001791510244873777713160525511493074660403117711057133836341135853921296469769388219711830048817984293552924150699251748879028524888241988211566876992473456833537796112731424468195680626444625157467768481124792618225039207050061483593665878359149476067087716250642957029231873931057194371495702473484782997740528958190298892610551809216873868387359662159818303952874789673136374822565408915297857463436837543987082333847257385611759542463477577838034545714334703618065109947886953927021269194607198926558877802447033089422182314838623962049403971069650217985147224212223851687321898175319862111756255030311740178148837757930230302284764665260418091433090655105842381488021742069533272912803866231465083468918064143158593856707295771810944283747657309817458373197131506706136621932606273046667233379433748436790760537282348475131932171395786572563674872739726852957754691291395685584255117570928723153744327418353744508752771204868285532162390080269169520916574129726806377527486428817879349296925176583170516960070561234247910700308280144281181256438876274648638598627806001141574119672219402121775048202464155884069031227784109319648731086328162103493895228194953065743718082152088607489230887068733612278005866389912437302947153226629452958089282097183564266465213618711166837530960669199563817125433543135979025852411170056043723495479471749807805628073061503085372641731373516184731577963016327568987710573699639498484653373101976667459085850892714083664039906035522859904404397137865134593736103936755278586743790427523664854142998695490546323678491027046732630639122322401364400681009798457518377229744654106004658067268367696219250424326509082336215863020592326065016606588418282849645057065362663535223624407096723910162393678826254576242090027780526200570352038780793736129835400025717410049500903430985649708689915806546308177338812134332153722204653174642367469871992202261034013006083146993770584006333885764843846842122913121736213423765775862972545964414672074921108508169765691153123431317584675530704617168285477042676271810229432000286120843464069890349804472741728523183589127132304949456883554035321853796961544821180317840430127353266369621795813237675973912371709585843414643724405674090598622153389946169182033299300692266532334286476429758829515099328165827424930704646336431060220262004447825203774897431857368709276156364758718779179152661380404915746089595423231605186030065551755421829602221918808712541786372369296389773100759043045007576529771719683826734404288673683792246019141329206115338786544810877882421377581012526439616914855853107004218646949453207255480951711963997957673394229528832227881267184697471184898720533401049776631757807047874837936125459870760709680961406651763683794037461477700018194507972478590240137064317446410949689991424887918800355944675329966213145951197377556263644038979062151472083087821207591832243461335927412388654871859619875751086398026056721302231137188965281725011086447982486262805308192994929399330624724092673683393410658477042449660364671115800266202071371010286506750364724292218785558463838663572119674581364533429071393417213171153273423559437284002012291354498877902360188720691043010488720962562773637208206854206658713808974245848529427308193512111372432980599826079410172657396643443586543036729679131021166040966913750907862946196993263951512544609885306119435335543925811625931586396410744646868394597447813159967788937805534618275697863444350004507722264450394866245608216771217630379149402435228789626570485973529274621494800321501171845893927514802477360457477619566347197137327470078703684398947915093350097269659303073386508520591982940636946725099520845251758416594434654257198917947964596603245306191400077516687332822919526400012053007652021426593109028674386638539045762628022004618335673908204016618757094702907387940962894903522990735048709164828618534483990120717593346237979527300115761441703895982037464597275732935238299403450360798156100480815546993335057423632287333199108309444191022119749936801425744713224809320857705079919825889789713177397287146745885313574741112421536257113714689909398334562207545037445233821674420253497169684630454624083682276102482980422763329576811692232249394695406218093402522164155991331317189630059392513901398345062200363146197221589368340232534054124810437894777458503240920505420068123265390413769288708479247933091574225088790540038619675010718802765046602778923394190483043419690119989856896150104035882624020499349061949828352231241560811693764020023523228341696336066926669784235958899835121127911633628740516289013510036215884496732374234840580234775078516964023592060437731939991965788845250468951236186522966494991274626898179259312835637472607956127011648735521698620005198832323094260256206749384067779484382549888944780810416134056283008394051161235957370762973675213715359122407780822307319510166674319955517847222696739403756127536163898541941276024731070405192689930262095255541489753614889698702872665092058957448202554362548424812829833625059103139978273138464121403836955184792581365537701360314220530113998374537424309766876306060949441543476488708961254666441417392321087364397465784988247415213886848464873036823253275741883147840962486359797881742303691498512316121065007275213317515987416526399392353183215240925092075350741410314793582435639304142982858542679379363174869528561166457108908448100700396955716241186708684786904910147084315843353660462853309962754517965892173369251156823445932996976165358982234953759988045666429080226366036347321521871419436555634589249097088776451868639401570078398052994138594225546793761142080571267746217299577115407837906756281817694590477353063088759201019378889176753288684460969246912178654010412616508920304748770245852340337633695582896159275022170590982613025585475635131171566186326802300937059359850294529444974835319415188625138794109635605273005979010760518821699779389032468348948224907468588661700099044150101479493662888758337422844699078318007559077373704191706346915299208649952774893918867759865693710474853819917844339366749595076650600889315555871292206426649333181575291931302073676948526718308193119621139267931630022328485882966972380093279012410411237950042471559693337502796319266584124456110950658515467846094377644525955555692523950996885942767286142309062174731143229994574749483691591939139001815125203383453849688854216829932894264824792645520915573478712951073069598698456831763345173657192168469135144169620434994210646488267009689127029026170650397981348585170523822400405663557228903391478809362802197048629582957311230853741625804875089148755988197313205298792986998925710483690007913412748306835199430543302438487957145702494105732956763539400586555920599815016234525092382631767924810202221421927053535518030048434800374394288553274809789964027746669127861594958965939747170760935365660609223518641880567523654917868200434890483709980914865705348973666595516828545097590001347981470570111802333918931024522015924098836820694337590413720514081718020732270850824352037595941608563449258345209004467681221651037131356418898979815003755223417487467199877773742225256962762174777370411663338037684380667655226397879888590032166053647685875551247694188384032653491588704078769783617630780957538168846609922892913576180948759203105576365035788210761134872214812048179248138242406387675666389179608821679789796284896782979371647683249714877535180059605704665728592937578882933492981595251659704466275760754815609785008914631674596125249848267761364646406230657261818088463592785826914541856843431601106331326900884573001104173148119182241991063066175620479235918629220002845039426401790687281518345425113333132167788545122608890637034480024308618756171270658635860614575588899714051037162099968512013802116431826396984395859300950204279849909609122285204381974664117466304334240809779409851606555833587144838520657667713131158566690139738847407269865060423074716772588113335244095355296957189741115861384122832108752745251477332838282529573321491305544138345908217377944073993521536590109457911468116283518013566520375896758251288594180118378934905952463672485735940984048868581810812416763251856963026779949705971468406975876758293660898448357675866202157803218263042031690803297332210518047164704600090028866030873118093405554770760011732294844367809955454116960730556913297517520502275501719639327796389059610592894084579638395619708228214061808215553678028660111459548428178196181217467197511410061136277320342973577109245559851922319224234592644119575835841340541681510697527148528256922573817873948620820363929543874002539015042371676313381559028164257159450257203410569085656741132124377181853492710821148497149977153467432253087980502155446434890824055090719257961636249558371249320980981848873112763588667591415301552961991496613743700170486187800634274359992945041424740498612183981083858936308965021454716114433118244069932236905385336326523854205592298718266429084432337380365289521427617679441220633885814924095844207079414925404098487003186296802453604528546354811569291219722869988495584869663204896994796088528117995388712786454379454497913950985982952967141192259069046598980361935779149125240980846022377166890602116980256105307376378612043119517102030175773163868241080694093452880029673499646051745973713692553007228974589961182468791920302361448332454754512015358054865203559415365594384290878717282236015151643382366448796099844303921706480254608270314315243745263434741219983464132813467605179201611724396759102947749106610285980347096386234168633373850587979837268001690360773554042434501715927250696376377395076250441097322348894796136506652861138247370897297999295189717364971972358943299240964074834525458887606050140350820646404579265173245692313194851260509899410610475047419476407927808753313910471988876272030203488208305961503770966112832778778660103301884203396815926227646989568777921946441315728571737015757973418248572583521289466343376127902038592319162632237385848114721851838314884813122271447991820869254643989698969816404679622541513277836030253108118000329244673596075175618969564692495159860842323439246436686550811265044857170881796151698164991607688900833658872250029204209423591586347716493429896766611791605400585307155860663873100606307653364212690671082830065213217774048292146578687622425249189551120663412298546834909619945796197842810096877001422298521774489950235578880633979414592452488579469936847237054488479569291514508814492601681080520423964842204694858904396589551035736632899329147210004672843564695599892181219031165905829040371723458271271945154176582248291204583436958777085245125605104942264504841632252565198920970155189003107134642987605683323836062026412413652195412826807363385954984942643243616404129219333570660626674682907186238655888993928130502493929835946311667258209976720442315711959522712784120622983842828762733194261784940019935169014384724631484534004698728997332799461368224610007446372268076690692863358446447889920326202339033155939518333099733227364034907808400462675380635126516309548713756916443695695057015307702459248825525104513037302667007392781797725903679130311310516636359426871776019047573402889037249596557602539694476125457902032352540512804858806754374321399924946623665881625600396735823595597890741649404837302225004955241262920398901619852295271269553428343874774921916979608364553681051811333395631821549283777762634653649500008097814387058632190057520962606675008808782607582497271559657111147116548719037797784596821503090440626600247127357971566336568536102237553448947492388523027351711034747558739725966065732971037605018475303520886297619412027606485951857341655036947330174739280850227919373465153185225230116152938597940555512716788913662439705650663971934700614493321583131949831580222221219196491117523170736465809168727001329999568699053997529512804438816334996988773635290788407647324837827955419104597183638748808610818840072698248417991015540075828495990175531059256077539938339726266870057081077189326504319490995992069358894842920076422931930955354272433403427561940190861657102314486409506591157950242638438446478162747636273705241756096387125672067477536586022665745711577845385994584786946919612557502560404736553286837372335950160035166702042600000219339071102196814218339824897706419502618079801228262298564578202729408751662183055355030279306865982133536941364972420848575118485193053047051039130615932091311698481328130257208174925603649467408890795135346135299473273924050980801747069786320210102478622713262072471759114473338482226724491210520937712715377128519771727961019025397464000239226882630078563165595922391591190379863323827134970320423314832062962296226744198896315144482427929886536314590106292802303942964919904226449935391440754420029771939947772440725038968814928153665457753340059344330962369388747121892365113170886503014867202649081915621854853876579642392073786212413470234227844555433805920471267421374466923390474367333139099426194240335807676391026444228164291324984563623031574191186781290252710497603074758458235372730777855635551475292381128220887838422756257177214405764511244934228232561291459759826969612689020583367023889645803926532921441174843957224966210909506636529220430825541755237438089269455156849545877753075259980412284400156980185363679552015732844690585688599626494733686061164157246757108233867209653751301407394700804963660142189822310857600099583535905099613804245148388602075604176953101411119954868281394295610906107160093644135062144027206531006463180047164984234579099314610563675248052806862155615127798852761256865322333256840399091958963363674819169612257207836080865834311486329602531972729827204045574370277268444036191596860209802134928003286343915140104708037293018243147106363800698547314051948904252337300812495567664991376746003968317354261828774438088615987216531311202971169367651946504666658847331256275707844831931468904928386114474064859120117312567697716171331639490402947215547756978264045735177064158536638059850346320377770194167473831555894455091179896007856267536810311969923486623120664355314968984443949655289314452132955567204548823665200751679332443474051227825220049944226450225762936201625777796861938854661733904196598061192686189111553415619275739350243142423073553352737548996526991249432290311651884011534324077119835395200827113071458425996880461413389595553253827406820200783771182819552557729316104065683021649896322188768629697966756616391921789522698940628424442664579397095644297157538158074446259912871754488017421139571560972303226379649249754436543993500093431236518660592603651361858939311997943567183237650395133565230615056282213269401410072189883476210066086375006779840437619548805322309154439316528445442700977917129208543969347072543017325259596685663489024225761994775763321416731316490298606560089148546887265007529351573415850367166982436339579056189703786715829076113638008391242578157603876587635293929652991336340378399815368709307644772691073086125219576076640210782725349076010053863454489060104091205174074957141925001519165321686307024472034232578977403916669820216208819950768358865595020377968687631197058727959834029360533174263934796967463020946306177915237656421457844071495783120511136064985761963280494249377285682298998309224664227498217429465430991623272520787856410547250796355187019824904789979923704033001405864242781926798082368801052804723331574609998300284368674312892501865972397409140826976982481733129922605214989771056298450590003956646335951182927051190694016731713477773316744267198075754806313053527981859124923318390749301445825592121313135961983111568033089999912962271001831253138707740736495521145296383979560451043118284417540467933366681499937171202467361448731712154941019060533591996106328901430470866761330035582149479300615937271333588828660289730880735783234935683209266480187730989211683958564029953854287234730582395819617970523327178762067982481806125947315421019132660104590833110029133840477833516483667667182647021733921019086836131909802001524862395931388251378671311862008862921898236465450937531192250702364258044046108779306974727530534444193315725730722646119123460554686485411921150652325725420689688027596891147237229316725867053259988987972575219250494938435218546472375448954350225569488514155911303843360881822730660974754140369558171313755809820472128262113005912382402970177715350718204447491711502180463959418560080484166858610030777085619544250873367355271545771018366598217036694146992919909056215048245782964967835386549173906977844190395499903483114598155663234016740076276944516330813064515509431357736496120367965161424377420180213942031729745211728395989594789742728852612389822890352318046106478590229612191402370402791424905114327014279623599657346012828218764647958090693620846576068016193013149900512697270140903656952238276048403221012106159840988498324146239778384893034130499373890994370833913623842138458051985107219154560541950064415273907269304242036899615238252825680014577251734070109923260977980784146109221665648940726730978018738001490673097002262232298544721551665669004172503516681800096126093838666695129166416281754501024056642159620839534391135441689853335540271191376980690551453772889315099284257594645763631848144750031783574170434997983118289876007323805640953505569762129079130751976785326179977035229907463395889711163226232417910635496329535705269153201194663269336611981755454351607510386057652195937459113091961834298209517546429126182468602957150369546141255916320366088333528291014342065037529593406475805158808937645432448876691367745071159220804583418460180310389443397792106847457680580677969230265955109165576541572487739269913644617562494479456289378256513421167146471466390909798972333489953619314984411321015379776384569699022118583750636258504692906230531817695197037647400503836420493914640346361357034298829470472155151922650312164351773909464772296237577789003661994790663720736705385016867481626028337085172652936550296211836462547369820788745187939607486557766528432244396508478315720765218890357989273027837586512272031563436824429521242440208485229444592224822185855824135785118167013851530331098148677618446320637086621519593898990363955230150771954162334070253001343660496243167389366238684027146759701000560910839826211667298435826118733901110093908979450355359276387044112796316432160880704226028130000946099439443091198958868098768985472556757626015285383548093719714878910684445596815888167459385713650973188350489338917382519346886381471212898617547976282677428152711715146709264738794914396158576765880937014266139959135244671257288586627767900937672947771700618465585167837578098130883083588398088852806661661348892872108194341447605150931710655380998125578274918602270484704270196082166107981607539214429754036296708986472707614802342737987825126624358849367590473278791231909853349745420269821413694629386372649320624445531898621749417203331115510489396828252569602138238707676488285066301808756340382060213700649788130875311553573945471129719908897544881704076544642436539300270676096465434356430512199598631196691906988201146959897711386024793418272059832553709267381816105026983689600387739044180507988010220655729891219536029245133780245531989127547572250571631297900686140573973367086761118969073991601520762382129478642634338971398421410944834069967500454457359340670602798837567005525083954920317952950755028400702852864273712898322722892011546724101245512738790359434734610324733497608561922666104852422452278879237040206069297281329411606692138712209305702129482384398731689387051324939419874553394036705151596765130991709533020388953189094332110005632206393726660758649771383702324714798867610551362840319615781593097353365062394404638546627543309163366493682114842803847160622443834326285568384420752978674889034471884113012602713408673400789434353224930345075976230362813616125123943042930379236715819113320563164536383574796010125418902920660500634456186586358917220229733261947941066415395852894488186938741044477765475860667380109284261792400543035001472796556032929647545310046838376478047923697439324031388797057157780600040219764999447939153753181376834834206299439912685288977889499139312884319237457696022070931159343029761178978331336840749893331771899745534055420956077837695116013877570680898831798764999751185116202843815234807457809025726435722250483688788630181017856211828711698273909979031840978970730945790515507477554113547937749227149002375115248392545578198286544700958348050290107978848952478712658451226529709355264087332278009403191903465634458023825893005710480910016418353274481739613867141174338811927806500058932382153322229546722963141169485615458656043090702424555005971797165046381705491641221609012910187646607982303375032104616209409356262172347968060704430286946263385224114783959860431211972154255492889377521630040126498374383083522020769582357473460857148637751928148709406469629578306671273559208864256185733863045871786691449839371949474506064993614678208899280927725470219547199833651369526502025638703218679646357226090480028202340762333012298952916263605108572371042182890695571594010417942372115285851379290251897253467807191470850665624520594906365031785090789859094230233324340619578356948154447462548526811061956021940903761487440438117070744473491301527541496743678755155570697502849287073052537759855700285618474835358912431086391239849245426461220130484151783765064881242222905033223347087190671382720297929902460210398256031184842848026747670189549491636195844132473568605155403555843288199845036506385951059640467309168662303314717995028512069759812946711774688007546547970931205421404904600855030131195640676233616929070087333454324306008454855102373743103625960656957980078740663017905057067471874665907655116100341539637545066206952510270254947454375454054008278178240085827238154537404224573999220509476148684869033330693806918694664359820953029428053086330151117310123231200180628422177711867248801919183949854159954444158637857746035229339729767141263993616918521082986661366666104361254097831115221976301570496620113260592715134379924283469400210472837100012451420488170789339258998268099176344438783513859146200099973316237923974864319119534011361263706125171497307153826199697251229676726431251410868947669539595647851059318661628617260081188920279515731174800945394826462996157333473142645257421311762318308361192921198224937120971516643821890200052760598937695333928445385769170705120599075467823787664707613352153686530961162541098622819826485131380436803853314712364140416027070353909599847637747019337533791106671448841785999454415990599466264959433044485113293898579754733408891808381699244449615996098451764514032339727638967484734084846373465292212610491830316190207189863504788531245898570912119456464103740819589809066522137501704662020170635663847710114965904211631455769069345060376793639796492797923933858508524540262272597382121645049386363267340995831620055555133393045178115411782650205917155039222373874638726842945735873770471167584784099627234711338133558944971147783356785880115678619320599910413627681455734676908957449808438690766502097849336275164812958784465087038823465702640827898896569332708712934354430915128297387681516511625844112829600078998530464768324472980703646654547841050346547747375424480903782010609837570995555277229455101571978462349297375259570607159935757437943566275895553140419176387366038808505395805449981526959144934435555382486361428322640383340879309557410362413450612850920793034405392967254375486116166117719903458822841638008232032272787567402591946332678198641302535313943342342883500487726630284278024255932689781273852150366598322526659713633827111767128381040550731817512999220354418428473997506091342184645207218414237718058583169700088303163067491565715511375453200873535622864701385765071074271468435342339549006927602815451657680281088360153037592453282283387854031541520166983453627966545417732550581796871933875028626748452808516398929339732775010914738095972044695973180197635766590991273187760405263089552306745198700824116588167596194134002656887603292117348243573203076552495483455853527470924154590993584822425525944976259993060250411953106456619519583518419617435049160194422951704291976214201419127518602165743590881634228049604846200135495350818289035353656298147293409314723966052926118981987368488252838656898388237112583195997193834773905510229944312178104733972581439839319626667474983711212597577199264605476238506510854913344788589233189022844409396780919415903354165838488733769348425325470541773568760837737123391588674976146439976947394569776828501844075269579829400267953926728592490203173439796800044437077741859735461967113212240483956507645983598120724916321369434274354403406130570629226045432450738178090296989182129598967192266000288685762167043216985404280270358828042836118022576704240270965803497916613114793034901408941365367183659096839450581908028810350842715083786957753340442465283063189494635021216249263620497594602904334764498419091226989155783597029083975278462622968767465007577735327800501118058817940901544719651360001804660790159674475478055597164653632899319811449143043908660179841882013028685335817559372022268167032326609404445912346901697467535960858526071205941625931160044812912629086788573563448688110414901011542479329181484617630691522137677211569640221596309976010758378531408785950732750862711645273002251107005782192648001873317533706099023816160959143264159268349390765370277001530047782439284656782743458872320171207896975606727797101608578815013771002384237939108826784856458195810373290956134306991812425921170884202280888812596185112308499122187881222495701635611344673584419368380470393315373209083748646440352157674762889134343872995902325893277254655565283750388954413358334952738893062771387332234724126418574623877111328190263040179867719598431314992350836640082100643815270316226641991193028166155917200945464288298181053389818853030701553049539554489194537768571731125721309635573492709586995322044295885870099716115225936347879932277557306678621252027518120850515430628661850661466750157943721022652990362145055954244597329580863870274158747028673345791833373152921519444152930973367043694005101810875276603749763553845338272931302807544726914337932292442419594423320696517524945782465972126548143778977856787390893203682709895085078353761218882650993569241527679415175448487247341083912653275347900198222298878468182728395790666700445647338741715844801401460673285079955394549836094785669090696575116771094511169862872500273185303500778546181437129310137814093564049692883625548335564308078946664179192234680146206611752533743922212362498175473432292666582818140795266943278914409531667331624859786240633659677895767142926931935565426323286935704577266119052672982993556191301448024790621268841691621399743147294248659809630502956314135209990663084347562834661493210396353787382680776742217837534863300192696635615215660635805243289255775106652168314931653389674566128792327326062883102606905087983364662758719924478100378535241153642784453959113354254192179644838713405599923309582161107493209642167991013305555043039963997679258760501543107825630256164644854445116969766396130818477532095998295795364498405007199394515770763539065146183132122072374522221154510736451818152862719064614833544318318362373209711218166901021883350871375996245942624818780880421285466637034318863920731493940101019804365318825591930008241775082430162359674092650014100030301928887668003920279704229174522193563678251919106736759848844727204091730185106288299158162035363227365715646066152735938930651462263532039001664286175178496762879159758410874533534298153278460251666464273338047438185514022307841045897948935339052990263471525336356030902400216361439685414562680721958655897452852183745381317112151631840717077739360510352490575090465804199030240681531829727676367878526094450549558058205102767772907617095761014577214772786387016044954145721423500463414333808321509871006299815802299957652592095778504392470554397891294754723018434951499849388903508861920385073528789546667097322011941750363448276149650215995850241916424598081304360906725139649180063064381618025618237240697470754742684897187333389616438587828890811723567890851049720791585125425800807333170391796702205662375816357638701085116887714503808021352153068832274020648874831326775699598170699351907066716452736485656270434854147243567916254404993814280043490073908202762154316478151972958319735506530461415201107033992708250163753868984803787307284353243857621838591851422518411763814079748736477151903164645557067237547785869111627939070249493848234041897240568528728753886399378670178736070814136662756622606848023467701152674038351408497014372393539888057678942229661969237073238455744863868615279661825768286624203274301831836866930612477016684479390866586155196751393500598083046787830750980682316661429397749566586862451297764305509509115510713816225431611620391063795585975071040405764440734378868643331123794729965746348287174336200199825094873523965047032627355421569411692449645996686375882008297748705002470149392508927121854567294521123595985179309420060519579259173998561084575043174264063792596661363222124350599691910855061256664473087383952059139490445824870409393499770760529258130612478992564157550508502976425535392873732358767013387477031380810957907628773911020149735716897806790190292278324157474555085869168197629070041456611159385152556898109694888506847003634516364199638638885714597865275215330061590076296631051178734500177971918340636097476496276610575561570074390011870539925984353736951236238165864179719476770311952141259765211886007552569156150376781676418325949423296890736890341889355644208024208164837466433993213264118581340988703723751592636268547266852928749679005845629543354265285494116658381601649278711025252494246238258303841114448347259894452735476673080338241819549216626358035999370654362346025621681077751286879560036934774081038617407356787742259292960175951533808140760898845204007267080913449693360236859123455086295506441426167876454609033222457476517461774789313908514235371484349283950904441047854322137003241383367393252361825577412381224250565802873739084975701390002930106293049780607888813322083456111470732068518009488460073166640378292425341287090740476272023577053455519669455475417867344257289553878750169026957595944082644840558815946669486182986430361356516886175915032841738755402395688120299089290089165882697839260185965562666743582741008440713384381603541032200158145564689309248001216090459632221018804081348697008924336375612696973229412803903605409029461218522411461354229277161794244148531257686981529434630686705626437264879317816927275272859669828501709865606964921190701201966280818335171179959407614118688389577294136119456585202598355419921335192115126904158737786689107586666720988321190803100616452184588379806354681337414039246685227055993506401887528949962033831677153906330669133322525374795034537617006253151820915905385056594290645564007401730126019145597861405956428004057183208943435505590447210656842236496938639557364905974170311228276315778497038713616439264817284797390797507153669271004081805263437868791717997304065273412086639512959819426851104375181220690947567359891209190420988366590260606172454132116064316631429387011569380431534120320282900288274600114268885031977627534225127627870519575701220911834267903513470237837635178251325107572617270295062639085390983544701170342971665918606544642058962824523418079631189434126307718513005848493072438328997718178300809224494654389290004546145702473113744783115768058129879457145640473098554813067488538448987750003657123483664146480258098717575920343791378221465318533268282979761061450970934348002161852262137300216679852174562709344912616450269494436094160088426071041044837495249088811753105647234847765942932519543546314586947898308315049713917679788487592384059091748592668759787125999766778763229740300193850567111324395488798816259765815682992289491309703934775979128579743105839755234646795663512448009361168100322639391397850690935233946779906491812915130795959323946571483302137065970553492131442921323797816288438553990432053415043295359754921761826801968210767178171120556690448023323990029166088666791147318774582431404114990222024214354486849694038647610816818393919815741086784290174045454072705470901217863214778888840395996336842121725252024894395684456023669599186874577924517650902948618490759912304125365231236913434819015869762248799092767405498933246133266558920572205186730655210794890798427211480475234151784565877487877618057982195719577035437085636499372662013876663690541932573127961497654193280932275608608234080915836721034763708407505348834673054805658818415262110367317133511154229924713537440785450675573228815972855941276077322206034770054541636242585774433896859600358142122240564100436448939153574386467150466064016178110296520826164063329087340829451596773178436873242692672196087883740441638103637816796680915805215301132027749087389751156133732752734064239292182374069786532862850773427421418551107873059853698336123470663963089005038627431005655316398187410731477202557118613306491687637825525950066201511071207336849461978924475257223182347012428383070892482589206204041086441433829201553482229485860714060043299028030957742526944765509793352868863527875714987098705270845717762201557768177282701899165617607331108241024799360560656233622217974348292190977528696313830449120989586568308003459313290823581936780425730165718127027579651191293779660506893246845124706967262694484849401931899686305364146843787190723139337664795150037648678292381608548696651534766883166436290667310505004982952652358975624210767397317985825990612287544583493599395786068759822794416363071073091892791695312494505378873926995614252903989702516795063823411652325944907456899138266304351054130235422550314281548975593564077557166428735983375905090429189274274777897019341407901870582836474120979101164718933357882263963141353773355810608421251490058747475408828384376329361590008379687272951281968683872628681882267559579368817764586612279378296487406807270742906779888167795217340482852582449840951529849144779749319427177693920194982129665069834604232041948112601251615052645688310498974823904689727059140874644515977288610467315876958866657666445556858265739712730565510134297959282324861587888465006680478731678176277652582609987785220586081652852814266914591178826450133452377673144023613348112827456750527818792612021790681564820241936557984439331930835281276592554545244710059097611063336234734466342277869442157696766494899678953608762569797208605178372387687232219655682846553884280466620783369028988832949517657690256122379752294614433611120505805106091023267884622511036927036615385927103518625044895195029558689032861205937926820366144904754035714220367617848603865617692623244283884293110730090958533978237187606158020484636054735938337787745294806342910604623186414058397491311117899679649054054477064524272413209096202628751057417648120136641533628259821936901506821986352998707599177725876603892456824892270908186545475386551860695343700950484226322034790953585748802024588414901714679086087820848975396751349327890131520031047280309138509411395262880529877868739959061683206678603726143306066582954549076948893038312642691719617571035911806476832246417869967512805544933659482316467006486898296587985207981807093620607406846247695660038209494661302395476968222117824033570480457401615883596603071740544824826513168984001636391571153059613220153015134425451950958249462367889478698498056541349764299911974576075949021724575162219215272838192790343565035320013888049370994755335801179525504664480904231333422052549271759895466564716509947692002939195932759182116236540509735287023653690675355021848013877845179395936267997241933054568049337030682690819741022359702817704374207650532274125382924280047897850473467276384583621844708658775331937927360502330600451375520554846904044845593547802473271442388560145431363476527303774080249399703579003171440632055490211437184065730932580035568466227470821748940433637021557218114906391449516349049248268314095473013320358213259033259373481155158913470799636032808929862951996490347659457484236180906518458967998848463330755394468529533159630855874000413448184548888233852086851365362874426076362735932031679305844394246322396942614880568759108423345717954631763841730549514604434404019919104323823229888368795595560749293331853424214388826824792572098806090021155394852170975601612446674806507290328306352069810439502299551789065279699849354735630420340145351119620975232775184419354109161382230728128144780893855185391848798875071041320206286452046202793891176152016520327890287298287691610875176976342747631239840962003075861304396896961936774271615312838524467929492430291396152301359147815351137276582834411623156197616515053129714471323429627878293339665490068923008594640819453222309604492361569834543886917041133832517347597578931386917520304431102728058784563593346538669849066865136487837940874973166643312728350438018390489478288399099240674044604031462794671828627524360145956364121606753640073912044354915970888078411071858811144691378787871749046948202615880653795453530026371656894748548849498325268791513052891120114224390915458851475561223898467553404559412457517679713462438236228675698612248136989639098600026917783129992709768636690346879709247973204315268387156372652442426880019690898562824275219548489971890062094301365209094675052535981139203177396219488982338361825353684607662558712209899305749212395725920395004490916960616366010486140248147391044409972197457727025112389419663996680083535832844113233898905913717167100521091128295718118615951768587098461216310997503456469839878526232198979082393178642084232409992143870602265109831201277206554920682700966896509932597937851683011506902190251803264959649645881585770469081330549727932976474540336324896257840720241408348290104205346014216859119252377465033665504021485233139396065239359119019870097155246606892005601446408463398746834568178250257739765941975799017465684819642668106797960980020742428657671880204694039168621087499915357919232545874587271311571513656907659519683135329325024955479831945011997817386862539954495927801416126790552998944891857108592017420773276139012532009795387919818971764894607157159943679718518764283143882003383678035282859269047572017623990328458561829337973820401612524533921403369715789374324811753883903605101019092210729356225814657116788587078905247204785795861271492130880599213124803627207276398873255584442673833125565893061140918203313089496912403755931679958613108089751684771581850795013358166091775433873646805437713132590131451830175072189141557459476446861514398193426786740141110417912538220979255837256671766056092101825020142952551186592203467249939248262978272766345092287418498823612331675292640017159706973679225777925745968510332361731885904406282275242371191522556505498664666541108969607823673318577567707797721867807456114721724712419085544358650381558877788044823918288871229240264014114768812071935854249151418685939317161717240007220576408539144170033959789750190657737119027230030371043269134023950394810503754115990963710302789804052195196742538342843121167792329069744939303455992472401301275870750679911708156461633838451505358302143044296439980798903453699231739744092989810331305601907170241316935200236362176613903997076016077037408911849059813842009490929173177055062298025646560309837949477931415317464373062735973528242768940826607035086919931931096078130814166178510823941944009633163382278521774147685708024843827260655171910777659815115682438234380830625185595577461244900633465423602925262198531313073164815430008273204755627205764680581399500954767935859689570728134364576514746324232877345863639460398164509409723931829171174962651080437249301340824990029260613426428493662606624354224683733399668008244549063276554764774359082718954797270791325920355667930593040167198552608164487831409664169685391516854357048026104398773816821764672336697664676679027997780268203733645121854027132203978088485240545031834104979783266280755379166151757377866684622135203150875952561208348878802602948948130131528055340750872425046901103095190939701103670733217214319655020572687864992126578240942535914326922903965647224514046950909485300083210777879668724675593330146240004953358926699033736585611140664780717829602720916360297790363015114770094725254793035492099222076112053187469968494699013713278806538083371620375956548552042560699298620116507539085790831512974225277971793869085408205292133832055444730811458827612158467134116824732396439803478944819055022328920932756011826734470931320164860768917659856975565939831620878265077095120313297119081805322328959486934226090827337934310487885107502370486489830308920270224677135660261983762353039921432081412125063335934124317194660018079333546123186195619537860696619274485625355579657299002581496449963423614432386577313986015988010119317674229755971154703931029042627272500077685216485699107847366354137096666923364027755734714862612895095869827464074127402345613426538552758598402446396477501914574547970030731973590652008806844822658743066922981035982873512356393533546422743492673940494121998796198766487138632122299703358314895475267331149392307589574681988048194310413061305265712363047337515429942551441263040556247013794745356795736700079732760433822180115755390257604069012059563787631280582344191063045579955318833190821492689319844411221208461178469012586083947652909891007663169348090667932821654710480675619205472935431351119496185545066264042545826395797400560844883862926906256547817959810349339921323350524926437103660590145147980031446376411507737097407221040105789044529155180210416581509523091598700396255482167664649230183266621677424483435295929050608761424888637316832825645527820814809164012115336952883390108817061498136381290795189656665819067223246443069478325770583259629194752179952271362923782062064548993181753682529379683127069536371357188061909741992582744432632601866909373788427877187438904776148774121079300919269054000362996056834732031039552822769821540565783939444883261806406733203333026896964994677334961619216041141886009328710102321633294940322153116831044085449803859834393197932796795778613601161973645682525531090716987182888686700117385957308561008076214087153115530783039592537982280815940720038387934103867697687393373893261652206365513685408484614480068599397201685302170319108693089257709614577583733412156939249853225785098584532087135451888681597975515887071252507142515829107037938837570411769288800482772315693792593967563869021240806444619194842393836108704328400689861768989502586376319493724943952095044853484465901801616151122215887907449934069160237150127771423358096470850552215159551442281915619026743295272655333855773710892946394737137274050626278643927184795865940791662427547791058451527414433701986835933564861974376770006288658781232220041934082188103026219108138797304583664926415865246595444507949931061340252939126921461629477365800046707277441375491399778303737682875617945054788512957874315619675912256417310671622273824346213481578476585950529554111419954930263955409478701348445084575149550546016076524967088673543139573373498468322232633264735507155354474065582663795094992312685222322713270417820488590170747970830286455831778744070109231635880871313930725584736193754771002334502239248158850610256743188988290741515284667120168888861426679541988942591795244158204015648996629249601793463630818315102087508320494628535791619406476882498324237540602973435004487481680359193843027655825809674565634798088013044874186387765004179526373603697941954701070548328317063011265548638099345330882567602221215178114127913053707224300763087209415710014447502730043982649913847976191095311650681064872337246564714673312218583424528868922316046354216987291956504190181160926377346266478390206328780130935286190236016256820334301132932106520104945639586052280779172225788638060754578459188858489243073190019604391280411769086916777589918175249345468226883950678413004842378339889083500962960401217147810400941215291276382219595919637083257612665698179364457416762369580823002644916379377122550521745389301590752266678955098165702378867320160629199537569945169152025871320562335124712765902357632082604659812099517220718923719710286665668678493307221496299643230130589840442091087673271691071270581403226872746382352479977756316941589061579480058358261955521130019645389743048411924247626626607031910412604279935005365803292569791387565307956516338022723375389592623299297735607905840075182509494665563258646829853867336277943366837844362164947453692159049795053312981686691170089177728848750316301418760273152131739218595329356621821077886313101800367033166013366566659643156056617560546895140938300209228824909347780479003559308621764581971348411511446942199811057669028590501816968300803509115870459725076631428087059783832869455340747395445656073889195462604877821512041890732557144593513090605294329464897727487316921523860445641248610867458383953346634100387223394624561908190207029397857450037760283793903809452615505127958947299069780525933816568793411645724064539260985741091740829332195023914720248665934849377625439924388874624377991926678764133717907420861944507398138427862840821559323484461681464529372879791357575739815681273458618704277203049135559853822108646959458831551706938371110036548144657346038156773432961259343182844249313761029107698951948267978575772361955961303845816295376810173343242806073251398559212675413539001020226448054297545453928727461759060177318275718453275965596363937317622817488569709018613237123790972923967825289672992867149532437354215421610026704503228745866931876263724334737316403094821134895829437817545759554246597287914958904057823729517561522439554799133279638331441070244345276838458284043076736469794669016424614754737024648207277963253455529165393172891766032438890012712754496903899105878475776919973146609116186164628622074481975151974967462874790555169530442155304951328431018221951726551145596822772155989357546342559570234937102042185803225412234195978635694911975129785513209999534296522600692909369387701821444133718678834049563701575579491702613472167210899808512583479165862214552445936704799781243422359348345907984563248877724183351347838860323424504232128315334355311911754901774491188291763431451464889200009867958839646625473638603647845203049477608700378466298236778467474368764136157886632109865226586335721152446841314951239849321725098994652778166429246509474483226067314884463506121419850537766420576436533841154318085725094311321888992922634584005438003956725036700144344215056914639690428623664520147611254364996218342926666583095067201168288151621165058195520303857523647676441347858421764621683069750734016544936531896560775770100604484952604001625505953640874106130514617347721272030215199722443524510788107361387195336595470479539704555304391335422774981366977014044352465862219733328145929285246309187940774494953171867433157240762727280671955014651199821832361824990974212065605644156361464681496412476720792706790395173974206148370762586197545051989860779102911184909881618238209725676902816561898410991332907281290996484892907570741453875266573220580218152852050525407856184626908557014581663618383643442403303145028390680336075756620170118981657856709415492993561460982563613654763222988166589658577562361302559963609481306528163645329880147028510951406034601807430719803867800163291878262815980357042004964298168958575642370917793512632652166731938085070272901427205827274889833221303885158089589824284226310298367256007085969738118981387226158001675915268247486317173519632935241226196310538588866780017198190378101614616479021909442473744052051029329124914609532350236785536763085353628450930246608866468021380637946811075866852706013964872066320518241917186586907841297725852157427410285269676220008044169617232571683461817410005986969214343763151682980482656970680582896659788090335138654104311775335813499805769258197268197209731603246292583162989646279757880145443302900781721745147334068278491264979981723143987412083855216491961593719960233760604061671039209584521915836979649710966869450684528639501178877111626517590430368504780460386147180132993269867600329109822439970472708423895019200524096868188647457665436341440588230346182180510942092591101242609283100036303345940743204504545647406794649780174563304791728621609173917614063929091627674984117859360899505869780992382878469067771975744841994539918930769418654828971906717444545429892276567815118461873585437702293576487478032466215359590269752069972213094195196328326017450079373543628912709707901724928399918980783167317532954042829686462404368246716530930044347653939598205095720431275548898861862821431550070061822040162661229165090489773651271268351354924927624832954486668829949407553044327725019459559693344911931148832189527689243811267658798279311679394320380994501924448002616541769833913328508377656234112003128406064009743550428821998566629964211543864303288966145253746568102075806227878731205848137845369904916385401129528586992005446897544722489427097051848860573303486774269405363041545521437931185714882910908207150755371244377391786530158806324476637945488674034494893005419076792798865237959235206295342583118994180899364260813304494448464586384377773687110179370254381369058652369012492841820701434292501439430176853429078561183528482579363646386118723576340805610356588415505389606333061872032025874588492182026873985970556728572750286404033572137793509719864697141575061667409603071975889679504994703121405467508537701607321393221203551349330879911204597423191984676191619308512198111498226546378204314975441966448946713856447963981450553738076723815430773854404995017394553816885201228477987207251518384321402630165567714104104605333368690164987282270484031738903959138517521927665149303851306354810752517001840610343054557974335781518952330292976849500705755939793880867263025433901698623254086336267824539838901379201993217783772748704907483895324055994202071262992788726221538380186959829982081877084492018932810950000273189065203374835112007648559474243168009761511090408012258436945060684267676015302544475731487843404792056114459694966951965670682552396430612750583462882632111329304132806019449519035414422066108923813247597497362442741569510680670303412713881685478437412598633253154187973181310204973486328943136780761008159050675481429820289279258577919375800052514278535786476545327185523808353551221172644829194013834150484757174610351199536304299505555086272288382988369303525962306918808130566559692365780682224953206667959529500703087682156658357168088801472750285709872048011195255391805438440264902007791161438045976394215710350001357814429385882486575024971751895875591507293178807167675688275960272825097492807448694097580302013189284697512547304661027187375585429131333481424542835424322378146707843685155125649368486379163631016680112119356128410585757778864539639925180498303806176299718100880659054840906125870634965997757907925325143232704590621938032823630117783832040048325045085026628721637077325951790638231420596248312293660598195614481771174580563569266432580910434765391079961290444406109610278025021688888459302158384140950214487607158711633030445028494572714783464753808483875202196402820774917471362200587322136354018827701462573766725906593682465823047124851923573162248564658486237441413232169895300215551444557641823278912560406048474104836689637728155051783142821511888101592634466131021179006581840396761026342935124750195813957914961418551113364124511046945389107097679541720984797841408480639920918974207348000761843169995253162169545542498561091424863448854846937820444241100467320136189239992928090347352312830679830931621350669269993003056662607240404956467146316704903621354617159060316995023401226167248927616121054584733144051068817939739648860550158186058110232940080098605211099859477786896335985555758224291858592286166169206841034736964537344344619728646863144279799466976685043805189714683624820635318712379052402945052417579339640782988958192845181445544177887481307671276967026910800937956357395759890805998943727620827901336420697406142470519916377589320560610757759345681096553676595465122532593765514141087447105554668959485651997834999369832239253488307983881677909000202668998553599816414444177703455292617762438743741262179003915356093833628678107569521100307993134085651180845154495562027909521418077756102059573927295819858278023603027631050696020023753324980303961232053071331252106540161949859320885974466303533903978702160340898749283655871549529108082157239244287589805356711046432132637398205585620403899068681681713488912962442034109596463333093963710700228901375492422813481096360849517053397762471622180726476377356815908109654461660366256158976606795449298008148840392825614992712428938501761811499440638577089906830687468322152327800872877668428942720760850243907345937896334923009685085585902928740968810105688734045209892509200940061154260148529877941619246535759795086632714893751831426246440407412188333348760472968595146913044520572637919607757557447169118774139080650798046281364509584453114386592560137141494035462907950255340271444525929636467840969027259996395021600500202988117732137468222399461293645920385113355013726239063412593076969148080566584030136631186237060928869676791257729658291067818332173678616653014682851333744821865406856897930675660647149649790525210898679227614058004476715301115437216117611645093122283614678142778409073251746321540686110473253860758370770990097599916422802491874608067948574723651337510754449160489815787834985900564480817813612955080542959882317481863998302869444048148440757710503661635314017229868139304550332451164070877170169986270668570378792993975942427098100736447966235584291718198483399261406283063733926095508609663343872571399587874061304210114039093902948184667451277630759798781779390921322156864153589621641638833222793773686764943176555114147617915363622834207278306501321945578635830878848535092343330436153072593873152250131883619460075315445653619815919471414439352563599574000644203382639574030000241789743089886005488514972337437311515451224589067016088058793390700791568291969077550692996274040931129287749787628353971179878379721300553462346713533560925893786050469328181355338779080906950849797178292814634370160513134338753926293024608549897109108987780697962683789433510797707120118828320226022259285663615735276670813590755405974523668308230452888307763296627641248474992511891177361826443025027877593764659491682078506703177753464975498052337584544744960213675793351609621144812646503708667195000859207202218077332277972877135568781474866604856240327699132996912691480553738726413518024617408629056129357124018053212839656275227717970941688232932819671675578818770656971447038772837709387843893825598633603533325079394999497799445579192830859484949727786169271300013606020625891204382418810274118748177326806242838089424296355696561338870505293147582683903463954424812530125607803843354218031717818091268263697941245047687765271507296012705509757735916709826103697941687517145212063068878625608548267544844384550028718257067332329741725877170227273900754185791202145694489938435496603699443416096596359465817625884411096706315140774384920023784905363972256966528217268727734592387313843059427162733930041764631590384105662420703374472337452328279723577942840072657847970420231527764168089048885764698619724043733962845167275713451993570397387013399194813623253997118733391574615008653020130321494462224935978653473235927187858515106642516398136593076836299849119689019914917326515789891397424910047823501228050589752642548307440215313826085123403021177030141917300051820610787095438461426665331781748198016892608232403668802030632742826913407351680004786633119626570961274619863023478903384676684357802899007634315247078525208646704239192026603165335792175617286114035859596452209850004702764481559044749719155682657695174997684444471163714438812990193984666256719253889342838397752531695494042334451293390445281529532807592131622474220104216569541909093886120084893788721373250205140331448330394726717027774110654449936648441591622717680949493281219928521420273105634184024101712516266386867225039511750826756525144437959179314037131486610212543616727662177399881471159233163525282340671014783560494395676871620484361999438436315081172124283565854155052826694465028137728471146167563865443067818236340770145915946940151085279970223534403545076815397789799400565555433731217808869825245244134654884152861849512506991722307596026984838400195261340857825698441275194870113099587301697470141096102752019950788425568567179305045139982684851532747242877285585531401655302898404121091840498946294601897948066498614166273961118823809713245404054670847643852889518512428100535386823228642822604588711913828890813297138216695732955797387873824168072332160091139852349954142082782958365715818004443899317893218049480040916187091219574209844123505645255498100042155578095408604558689827211183252786642712862860328876258602786995225362741308719544494830090662905121768464283408173002453099595620353000790310185876356878148400737030622838119925891762758087532637592088417471400215954028376852892319370495061289692697321674905320828000259546766208840717700089837567770135340067626883033070755871806204107356378497585986794264662622617224118084090619253164096373411809374352664888309547591215549144044237919002604576791365015581158519910766928347587476591426706645120168231927053099540081914128548543450624706153111138352125566196214364422372387237134804970310362083406126823581471337844546805983741026483440311799461511036628259374052461984508238216356131160265293233969359420346700650072209761151583103642865332774833810221392117244534817872027677616208994903321380408749839636946394004393018251900304202738481027428045683843213009916703597398892711921317974275865790459507249602752126716925624244856108335779832642872614338662547019796229389890112514319650024367717183874175732882157474406296062039155533655808021702259043035848792264600232895565771908500886446706157145593463642058682917331229948149474384291109911919608179045502224099483842676689254401242270349059469189895075234144750565006486962712188239983646291287128407003365302549646321907413836598494696105208581533407439188947284326053715286991564506929606445772944808092217813491402812185768315179487353951230494029610510438945979117640932069421155682958568158691550808441687954035466267277889563181263110287550196637944000860362149778132806972479724449070954470890555498920069956736557182171838033804341530832618631926793805986304346679196355422732425833759302761820071936190315161390294895656904702798059031475857569944551362712993053655020953270591984068288631252058739273087216970351653835419328892750647401046930384567214310600552888544037947571063371483619945559607294939911524237742884078366283769066410223347666460958518204910934262666763641211647057790379515134496323669826847256140304934545097139758982374980190912220625095595042665614436086705764590700252637410820943293391300229146432216069832861049024997081513980220193426259094072719322894841750255496974224040976838557319532626974166116908445902038484338413884727418779869678383009859828449504503313072827691029621386813358948241996494254193989568967726862093233569040783020723340555979549261105010563149257039167923986266636555131755299023762673835114723293143967898348240975848311411573260180261826136913209030546954827735989720424739003478794848644794540623132609297055458331597910049149659338130142890146128226368386902875466743297764060483858573991902758073415462143466358549660925953258827437020775861296876910426371908130953665559080155872059059984682064874969640459687425251576289397592173693532147422202121566475947013542634579139936056557183329665877891199077214992506881639809818957554503824324936746285169814228895152118035390653605616643286664522277906615184434478372842089890954059467422575375795063932791327056721036005850376996006170164496862263038655642158106913306254461996594694954659111346151877874610363933014981246266504652406638583938275579705413434002879830590267957715437850850863288298464010988772095547624452301261206283490191159914265423348718880375301621067891382462781268637808479304341520381474156444053819577291613230180670869118266811554718847832392070688008874809794720828424782723053885529347499158725815478820267369881017765917179873019183693914102203276197705795440447538824557140845691417746597365760246426625273085503605552297949284651277190063053137722885255982923679758805924980789099020351926461255540840642105141939869397446306943816899713893763661515725487247941238789697694651380855880692851972211940822585985811750153675820119604588888155889148881596182804718966206686268847791960816068229119940385687524878268171787093107548238681531915961752491645019797004710397418490430828864649060381941522352604942959984680945256492963231609114412622397823648050493111426148589043481098275502214633685354836113234723192502584988228893801898179149138054146609188922300314929748563525471109929820324727799542319262127998617560125389431170108217677661857396749730395986154233168641550533377509641326679252787233025168607025953642925667135161344973811088311755385599233672203419366346882420961562763710454888289071206761391254417990988920696794940481888278030402161995049451838706428001262002931220290379210667366854958442696598449281151447968397798487934167815171676085471393378454782382603200362352032693987861275620632611594961196086973732953209478317586020275018553389912283556091271516291635381844549400616110538029246103607396181194049442263760958943066724034608420209515840494580414034837839989667866930906990505883176610005941013427246325546527895865383627307903272945396330674305591290382731273120277942771495207297612164344475537951618693673858354500603911810573683229048053158096469848724362450075588144849736369735319488247433304407336016058211774861614851609186570607315259175061272056957402358876912484246422047126697297879607112833479990415645421726596347883623418773946209095053401129404573609866336687656502738301015842444474621919141164141568543660239373339740035165057961252491538517687664176462632843996971283933785538766112162715677368235076639477686937824160082352530109673152522251554995099931556211023339993640474269685119851522553417011787070953479421900295454101040802116684617502049603408530835174293032675726365499198012498326829778790636581490037488522280397368481502101506736211201976634862272965212377431072347363537063554532323758001487651068044131517485044524576036057606509816357704014273784580543762281852266379931478827031390335267616019367215151083275141937050502968063724194121343022179002753803241957350788765528050707704171680606454478082432362479351111274155343172620425356428900347490588413250237450241538732045538925816499979518500487627265639320032838848483724222494954539628897150953014260652072195341911204573333787164963769577893540545515270581057245731587123369210482961578978776013324543632898583095658478307654402715573061659618742570123137789332416933383083678123272255805560052024322238507539443103502684998906328993079636432166166808890679449308112146480132086390380291255106065241252957476602382343622180831748800959662028349092735259152891988239111643881896340595911330885384203668940542164167618367437420902261267329704016523183838588470727133295379592427913802982506025958660284535865515514435166260235143836146327299366349245980212267209500329819931875634089157653522743131154773323557934650058090946295772894386004176396330369463359926832931922430056662466026111048531613881180113563718391447432569278215603679402833032788612292446777657654424314334050717969551239417275583432816827995905906047922998545614742774073989466958599706222922932259369131488512705838646165550998165457269256873917033679731479688230968678933684372693962159936271609166517960909191037838700166342863207356975521690301009421418320251049485833631407466911540992259112048666821987675226992787265216379471878414398050793859285635489897063284797174446725426837769929097835836138913523782275760478024628068231367519879036609027212123848175749744545816694594525278420181878767641480020683935100431384827886151782001154889607193848073076674633818353549266121656045157517925535842332996401621091925420621283103412597082010861168288529495558843361962520920882332989337342062719554561653395551699346866273019930208976611506540512337503604556328964408360917278623103010180220430703019792754418646863042167853107942968076357064155771123195279656283671452211444108043305371102228763554675953391344067563494725909636565448548238227328889744729836521795254137364353271393459858231461975575470608993341829529787518231321896392306266665688751600581504271713267916834866744210672885943726267697723726133104033730927450390180801347684633787345202747057628234830671444429515992677469054524295697322288510105846530682899868458815545736762317197864421308021192473206060913776467340440303951069362666266885232857160727418647009151129954503291523829380950999016690707712940001492711633783199532510793953709958548727106159180952410242054071880416608990908533392664079585817934846097126459115914162127923122522119810000360152748884770465191799519645950910022284261883742301758212130155047067105813555789886078454162335456577774407565579497274069667176595612427447916744965215525106062125454034596559769838148303684200521992450932002903603222437052568002308035985242703005629481951268106776762579074651974926551007742911535370186826783341190019415365169702650187726843939234505736458339928420983146427224749757067626900806031178152655183878483643579767828353639953848046539306307025743300610326982720000501538877959378733963687003348169103860168320757406586099908690375061774112076715283691037108048108506393403326258149440378285689690266339553515965657908524622395083306306375557832652663316028360101135542254291535747146979982259826938129639073002241734233366779901972114178653084264636260541893951444763245182306288345831702930144592862327015118474500377423489102284675350456846502535527584352669831095086327248828610722252473933946027561406439904634092414195780080938367885542189278663230967469218295567603978859026388254524949819905550163441223877571309168389364523618098933911508682150588999284571630507628753855549482491250735544644012741332791684533590738685445573750798481415281014228603830671333499890545668370591097973113409550832036492271111370730939503430012700040851173235716166666164982633827645749505993555367885995657743829008813909031510064564173925919753920100116892278674944502206213263781050148126733763032727512973670856013365421277431461786852003998883988275836020221913959069738621496499650583471746333549823598225166218001711521103553909374689421740400074023134780996006640840655708736757702446700639004554207899818429752478082415317368902668969997175616213909547215593981433659786496033608658141667473036076516520049963226920398918914982016602011783787203249530129036934869577070936823797462754969650980030435949835449967280589072757058513026071483808521300449171399636817319569444181760382355999239211864384534410784905847482866853111800657892973497054300997626807821727838728243053421908220758172804912348181735414026021297021048411246299155382410722480474313509653728279874165165834342502753254497092424406026514849714261216578708244230284768790292361712843320114864590138420129649739389971991872221998722323708080613575933470824070869981002697268792410712243947198563396896532506236361144785236642448757424233261112652625219476800124084583549055072794280699195847693024966917756378662072289536829551700174341420219314063350864478698241099288023759094714004710794476167153248067348878512696570976997099395611221439570925693791433716612033684571937272198442502156685915190719906812308507707976978417404540959971023249904041497791235396863586402549300100172398368328967227414341695574969338576668769963598725507566394523103697241471866750172319102069349363337124224413949163713313914030226751829609663142651089368063611808315811141002542899912321917118167898036365735977664806982315306332449412481685301250921214731848360338080523487853404853470499180749503044811731361038384128204224811041940298228067640242578184004890257220824836181902229731861660095666763042302880272655331285180917761680628434753322712063353522918573811231898174616635056781096001629694470215501463815587797020119515180017117836477215214151919617277590066582509410844392457856735226590368627775735037053906223680834987279812977445690710387514436835437898710152091738245775914273782670735048103345990021475013227964615365272020506389940502495887994693160484591733343041193460543405422338165734170155474052952036708100758496426216405126382533369908049687749229951222142128403116443602404321515005328065660538844159569591979810409206830397233268920890566145406871419506370882954114177888660721814864442927987785734131974584135285730226524116888130230795183193006588252194492373135276522259464097660996596147651047295803964391096419423036354714726925666295212105205701414208985235611444421983492967677589541106582687677729646853399377935904455473998605567300073115296267927900834324128518900884279902022341374601158663006646727358979495126551036723837889578788287338469413664952862679075705680621817475534408570858756723501810815302155991450794120502441561853780999719784165733968319022759272086478600565670024547008526201977611176408474168003448272075101981209385531520295058016254562451137350755585941640647858944504054941531919008155933525346377874409852583843249880366887376977818966088410726792545702167167352638466288890034199408921466502685359864433980418661909801945238245234131687496772088808398958028723023315503762123213373083453620410396522145231246473513922838544724461943244697747917770677389854623595797274052184790276956915343448267500139003025702436946905909148286852956691885021197273687915234746403183144112544141746555402048257695059087586075510681916646516664482448476237307217674661361949654370071842289589875538321131223324288194347954437183155688460209234417860960063595484077484597791734735856458052111563241976220126075190047463060336182475540263379756239597503067334199950666596937240638081868424673703188499531339337055760521798101651532827282143709897565520493273453584330281775782609353702323803934568731073531514915864559820072145256433651852567445225032282928026909355483047320028652636127172351003667796369156531169081151455367351591295139055366352311458485422265905802064127829220058444977434173542773127240011381778515327272842464108190954450115046964076703464252632660127560325614777287146441063367448908359204436257121483800153547054787209860977801484907706245866878129658066328096279100380009118841848272416445365252626054734445799936448202538419864459307523932191807468947592016072499189629285420917563300753607069604656267833391969166241260620197581285662902836570758560060458891480913679661998706278046501276726098095054782603556304333112859984986720377862667727215274790864194601167687231316122830074489339628820541210062059442942118772682689043856643464534630171721329235962352582840399140487699508545801369655998292206901441838308058547730307249677420339514212888524968065583101979534792871017840300580940129791917067590540764279246716012909116187532141144945656069936475913843395118390902990925516767405168311391321167293613580486510300868109871425593353948786893157754724658276791144632627771025123624816906169483936156492463478660071017430117656177945844926354984660983429148015936714227486313921537780509807581542251534537940942182953738773212358314496924853187779974864229507127179861339500872825572196714096860192909856017618567041017748250828364573517457743845871924510664327349067746823118576504468217030541334366136852785208377527167677088955747919900771582174470819013473381995866757692393880063347613082509561391010279008830422539847303783358031702794282672795223601514158671080140979148856830140365281297858269879960495712922134468303213572212968415589573814048379056799915346457778833494138775998058014942729184769455808944529690130713035370252803997354177967648384092548602106718111809075052540437496030653977660866294009187844695998009374099895662735681846381763902169783717791848854996119073546630885626874339273488662644322987460296543510120593518362390166599851977399173490042607611757160673145407510232181422308251090315736287100262591221582912302024702008329650121863070823759963698386221662413429770434927453220084122039163977738214293076707062031496497578114217589509217652921673303379825049044100235503990505464646846239627367298888822092738676996348680852765104559517348933250597336197005324391714712229111705623786436208720916648182045614632035618235685195597245411618303054126569542426922016869634047164322500393028456322572303947985866431389533398070494409509681512509557916353724149998521360962130524204148309616799779991018496713503217390476220022720955525280475552781603454212357814610902631807720264634801140961047530617202379061830599701865229210616910360347628697193910276406510250047567077483853560812102145525301673343020232231527359077881549909711495970421170875584968990400997877062080937027944264049461737853657330729621779859736158776346394792185338396079250780615252125133703318650515753190278039789768387119548997283819707348302538930158827274377526502984259466387547631723178247981526104407869819085251778184029127271769250149725742301295732625589440723613898675622955150303931894795485387507039160703392418141963833402223437935908158400393264702265226679765075521431526013722892707670174953844141362046722873040457421397966819374623960022676066962678228180923671409843580057088986032766027599111244156923985631893941645351534980999449104290380789233925519862136339095035131511954534547322030752588050321203033636991502221673892719841158921090767692653047841377005559070660214261992157084576643039989044120520788040923745180769693666446255873239359122012290238921785931332344767648712735943831827998782161444560365296683257365816004554877604810200979637256248082189520292690299222177798361107952663839504661975710141389051129754615227646505862588052256154400989143416117646647650149400569332170637286499321714914056751706423711891888167909614441083030196830784730541170287229204135561722557988487209838968682590967202559935164575517695971725932668927087555187840302597038490526556799877222467902419959038663787867960803357826188902830931044095184804595930917579628095302614416682266430583067574698607022555445638722575375859022272172125041738090237294451610790165693950593393106858454262501385029336911881680668979849044044215338644601695903092294034780611607678512107241873004646545747095342205412183706978587243980372315089800332017202581458711825433562686375531689793206528674257029341213130748449291005237502330175143629633718063617884700179640131753572448646681950296183266411592504398101892004335884552929817046265068755614883648574614496464267869895682845946873856589587456111301084012758665375190743356541926374550864144655184261411368236654077686985508391600197415436933018678882058442764358179517084901143180997316683316226094871265396169462153403108616050288428876019141069527536021349440199262014564265824389830207016178345662108568940886590651073999882841007592287179293915541243349251035090940985913613514771491432398299636232620647390894888483560058358238601323805522887339653302687657203462751030818224481280044561907779345512632227174630832038607603004570059002017206652933882287192046943285975177088590053122902515092456293262518003745774796235739860098494945660269034253504880149589940918630877193081715624396487657005403650458949421298619620694145891973779446542158014868613019612455978219830136498390877467281581895259291530345815540653268157660056043772758580141506594501505996052651245115132412817776259572994922697921298624836976569205374027066790815157397498518130555494373120199693597163419160427620037629164813240786204865306137192874558315086332777845912448316440773504612686297078348810656123649745754883645846242508319463887493208038494068347576992375911600777563480426137582100930118586962323187228512968361353384095352081550324538985670975307522007189598012639008577254820652100739733170836469013971991027520848577291771701989107376753760273498060978589971467891758125730480078058799514943505182301220190725430855855616352292954020968927101553769007658044021430297409075006330107931886746889381672832940663974319632021762467882251845813996262176478785076831357087240104273965006247145017807853491428804928773403980752150066156723440955081175466037294030365037314735086321030866993647028745680350404603201132843693410546099969982956628765300594945428461160607971623153867976798706817479532212007405049296253114678545240813000223629206066759608232186362048020834148005331895110744513195360629391568006306602888133008819965126863205446933781201476717862251313867205067992970565690943954798800697099324319823034306495379411645060505229046665204166077542959024243596115541478822401064414677927275321383461503298836861038335543511657608013212658002950235328625593392210655575854414673858320296927669649084597945963572223497639714448101994182324718544952918239576451935938255295154919775246055831761214515082133649280936413951286280126914081686744508117860003319009553990146653098540721459222280348629281283663397345755466699375413211776851067655153924392010088155892918908651548266341739313847329221534183615837177336714907042562363950506445190104695781897455752297396924218530734173325620009217739175144468506695884401449931895886080037731709983912677150446419905268627398150740348155126765991468213061885469598025969075862326902591948941229569605179025625742052042584034202120307201042588099950894266173832946372876186066387256241840787236438294107297494987512357671489215470085793060551380403541253568043204998779823821445389147360206965589605633192906645012253989599709924778722457176014456175479697429957507871683160112136273327867944626396936564929507871321265093990235995388308880969263374814914921437113051263465199828617295772836485968888461308529258499672145733349628981974686872039136488519826104046649268993998672091615627653001316012638761855714766989889041773816261671549003300094804350138194570869324416477229401222976311792730656698980175159847778394396726295946020617900038957653677923225459669373423539914864375742162806109308107411566305900967187705004086760173153735553593595753813128976076981023528090244619529152616364713568349943116568366452368416532318875989936588123854457507081192823865677830378990259217822784141145192635524054576871088795409915913524565645758048831020703949288438640758895631915904729621232699938724716017732561198101930146003896147373003640411933860441938606635839534516185618048625118003921694421410539251558713725431435775238739944989905915705170612826976833499058584978228410544470580934744356807403287383277360428892428803928947460767748385896005592294654161426939847092986052843116362230117880693560431696136900269473494578476376374381255909369765728832011803260178244723885615755466258511267471925615814951822317144142001123663222527728695300993506363714776996885371285458678544469642907985379611409428661124386683522601068313769110585069082683652878128553978890096553558702596192468002993359696373172131801311247260880234428737005933444847020074277011568490158440622266074509334438954476342239540429022807685922021084716203250034949645698232526788528611732991734089993697396150944474007619982630220449042143722027483819772192675435527071808180994012589876900955176354953574178714997665583836795611866941497737697999702016407384346085757561820347996730972204727107619212537209372781361609211619660382172486013138852870284024596608429276730157345096940537562103887586964080558136548973280867195029231334754177503466150781531237975247317347622532814419365947437848364318716506655485717380028642822957081941120053054323305173624566521268421336728649590459995907532732463829085632574532203617458048604034436355406153312358335664434343484276492826998021253123407407528344085954412658489455225059321378513409489996927568079229598003865510595193374907531874915839075470762843541287986406147204427388983701657426322315690580401478916318103153330115756620631555475255633364943198818820637731266326932498088463812773952119482259151885041686885945801565432352132486519839421590777705504335711991566990192057562483698205043218389913363221576482743729357843176081997308948450348872669686367660900556601883886669422056523643181423238413703567442472073315630065666804154298619813249245566426575399048501008409558178415068748551333474379554911339367606700741759529806212135180213477958584366886542030318925506298958197047774158613617730677649948332091111429484323985373962642812678763573785044455256840983525082506204979821357658782470559965477636870284169670853522340235428719200766154026843775848834355952014822717438014000853703136235603765580693366279762998628931760766278377212093391160910579334348049499708517987979355986291123878536277915901861435801292792640001450713910108536592813988829946311908560432874356397486060197966323780284586964354824832656019252271980751335082208437997591297062583771506793833436789173032278248833746726270156445872077031695310181471982548175748704169405506837870119670812950602802395840094510497597209847013184972828711852409970309455657875009148276831360839135567173559353305240592758477798433677661692825044282311260535503698542680187429245868672237254752190004608778398694323158424875132844087053375753277297993034439170500940295210585089514396069919799779353324729849619096134156092573602620713831403915358157859845296629706020988106544951492010480556202401036714891135462996099254499598271165071821816477609267980393324002732602171585861835238213277516685929500468620576132804439401294451750474429527056629408854191020117339512414368287644034522931488780517215574179666634772941732342845627614423519244510771976255308978490728305909127476787955567903818095932394775177271281063150987936383562069773972174031297720540636250669542227732812123659673468092854141960367119275891890459686993984005049962350359345966824535202964690008482039728467687889233434785920742601786373088866950236922966644346590691824826469202351488171180494839437860773601326577761679148263738990368569524562120936003851885810346792768855045831084791014791349381938345043984074275889095730119156329706985798543128864929971509267685639558038216215612671631969207449449875268805041039672234042108626447525494198200096387466247518960368834159800925714988496817763979730949274695761073685555775093254337157652651634775923638806690269661344859025012877667866185362857499329777100059150993214726276679036169090346201918166811072449198872620126964538417028262861763266515135765883785043590696249211974282262469073223559270777143325290770021292752089418449972101982590408461857595574021145103152715290254093176111599858749830859172778080605495179133235549813107595199364332624348729240618176083398073535763093894781449673384531407672242009659819079326563902797397978291234251564199077025183843969532599353618884817107646055940322575558454979599411050054412492603867275528542649254274054470926835348941351572949741203504885359333345977360045415115024294171314769791928202978563106335982068896815092553389511539405946113425283953274238014413350190668578421071921075524696234744361198455708949686466573105618477801289375712446363591096844003434200303747899490889189799179567567001290850528763248075884185064060653424242487784599774260249147246929412810922576938237330518495024427375406047962893892356511108455315686909241853803536202197208131473324196603739558949827133558552850782082707668722582460040624660299566840457882282716274044254799150819464700426844087162491550395139046271276515328327047884071770825113434014151014974395729173820245677694556138448457271527836069569769154116016093710736649922377493709255943248226415203211008333270564241670157299821369639779229286078446395016143878223628015538361353997119286976146294453226333085236169404007125980257964853431655111652505197780321285879291838438224024653108236258076265816663649657302346410037344730226868047814835748891656030096749778124722669702735035268717726901457768518789668660032000483851501537668457101098045644029309747718754059190462908698214333270268304698415214573915590132444789835581877483060058996977572166798971044769012577509350216799982078777953540945152431429137105602515733738264370431443726746237724821074221202150120122802362168679909234103243127190136023197029874995986097965802221105442477454588504391509418329305788529928973321317196559689195534871658487966728473538667379204929463372130080925124347391382399795720496981625580728419183376157733505049346820109477931741712796540167356817701587483378297628456587960765233109263745524616162551815711555030997549516499794066416749294353960763791177028401213265302358311655491007278057940972557627492146888236252092414727169374426226698392704912553334540717986145302317383709696362941966270669471988979876632631034452593093985650463175265606847425452831061879868592997707227857139764699890074947838478139488692213402185159469517653224742229684853324226572235911770808080900277573435610861588646541128205454231442468935490119332692564531292905861308409191063633378239631947377944918530898370655645353759392747773267368787242499172437475660133670835828090413515339529800262301968144828637890941268902720282627200269447685862187762168977546553230755154768839217623187526287148177078845335387578903478621960456180308002098756840905496537547898968769502621141205806541576855796092350855404766108777558181827157832626083764614443685809738243758572183068613694206524545732925750086049185500431681728748771823747774625932007130753145585927329117761097240594485405224949199619305973039064501317623186935011387424252691838759408762539552537725558045679192372797715995175856279808035746042983704316468560087820136512152247278379552683711937052412989347048918866426838701692700545836230553424334238656096057701219149947247710158358206958540984681204932896024140846513091298172936103166739790482839433680213960369346777041602665485188868190433477087871970265467235633883418515067185638716364606680425020029395172053515813102567262615654516491426409051241745762834534140137355331719395368616644316232372637114482887918176205909108392751422725514165479068540905423269430860095532057314449871304380168973646257364477673802081424440747671615677927656703348681704937040617815103073771626442851605784348252706232033895073529766015381387094538718051941289833958388701431233832929072476656577347110545366121291469275584908294898068712684300601429247391236503837483417620680570069366870514544050209200921323617866727727290493195520276057807111322153839968196451001333990179712526815939379276579269920488588623141200925086317628375112300950348234536359839542298665393420486757065219538187965579712490340610043708547105290579008782925956753233525648582468877739760120030292632309389603942755176492782277869082912582544625090357161985544017395306212713926453244284444057401216110691489418483894339827140679588527910674804579510809469580317488847620439130594386565136806071738807430647981460584549571530470051149336882945329608830523897372167609047379167929618156507067734497300222534801265509949081204636301282022292479866679097528281377255038975969179135417857307421053302399982944130323015086589496971185514866731698712958230560536162121228002791805880755822004133245853198649444756353686085434122852359295930641185027417305362584676804627526657990120248300317006279218942906593535630727291423973543678884757283486102396374608189756322826204717383524898115630846727374430742020940646121483325356841830758753537973318774822255480637692762636135971733473484429166531061986654446444922058089727585637733190207985678076622725491704555376459719427357139009556614047632621370405679061956993737576187381472194917522869473646798856292818243454957337467516648852031129180036076566975903759557421986575639945430039575796872076989460508850257430737063300835189333220733791377410031185544934394904134919854777131175847089494534569516733612698016205926175807794473811790892347126624813550346386323589027638597492047566816971040508801225482623752221210518728939536288949930913484371219893687544059433452569132493890846270085977814193621215532444364342444135229527320720586261816392816690579135730436213127989999007565044073545192061275092844937627891384174087463185908624450077197183585799529986561404613589034835447646975294175191074011550143232652952891045963199489184236689123334677186173459129024509312608607958545272141726854355396884899864951527258615340214909031929501655027588697692506522488496095810842755764371379642070255420277702336417718996748511409981207753364011534946235002259910237596390388798531643475826180365856266531799195967752732688433957881485040162705117907679443404606258891970300548013723511964480490025798477996469030746020440534835395858816131211396892956241791474004971290989434236740636154519094643555505220684084241877526604481869539090002432456451141833173895917288340190059014743653394347641560392882089821857361592416155661719586246820304442500421096084263554771815894544208297038402291101233710175085345273869325066958292388945018264504455478162253368228936264302506502173414692862463911226170922753848191791812656553562101106010290334471901930974669494897752633101091404502344904389498295388350080365896573402920556995869531604880598199067915604781203921294554377441857328974964665851101196706848180260754031524209414046587554826827770809205170415815799814727667107062074710464313098886150435169465570924031626282689628825782952779912369781610442052189443830429656646771823667847115858958765695904590817293511598515174456189234148916467246656178748822786367269177865495360880223792781447417640076157081526773547881400526905822801921917279965793422351636269758297488962971060900547307971054403040638884245215351220797922333157309590984097319367890996742302868546901896077702300481483534226691680901331650460007541525510313447208983454918374523544290627454551365683731295476080409039286046290196622003311723393852259316078992811565991648164717511628155269310086483699772560090323728360455438288244924047915342422192888659949445919163383888557003120256889987098586836047529899861683136581108870422331266929174279906093764573085157900480550660356365059935092084674435107414300277230149679945208828733926842562324137905367488742699275303527079685864195636098318619931859364924426716691675718197646784050989436860296001793832887405744613502180506450068901085659362731235488416739688997628822310095767079659386354866864339692591441237188788746759601678292229804305145222434900832584177793637913951771501731020126869675525350778265193172580683920646806596860819350673404976690895672933363221352709675648995644120196598985512794650108799570445857661365768414029761823165969456649711976643942277663207198276003034333627992881267222008094681963446970379261240386835787280020943954923000989841765181611404955942621231987884820615529554589924897294779693739533733013676324548116320016480881396919886863081772815510739059936683149745984318543250224943658400245101402308988777470618022122373259374232487165595878000552461413108161205665727052740527345666144501982334510320620613366878481007261044547728239296417397431391565238900287750523430101735096743535713719453324593673371728981802407124824787754865311823166000464068993111942640484768833085807465263303900547041289456259238513310560281941572849848875530386475953484750785579646464843706593174564543252980982425987191072004936128682128165659200886107610277930697892284560400451608296451065701456630791126602011108772332248411002187265559033552191521933402717314249513728765339045753860589067768454409249594113719265848799021042121004692514964293723847196915931571191377567340578613581336488108563915795141428433206508418791940024842730639068403051018243778225889420570289895443940361772435322192191241764153887940622404194256386260293480798103551149831506511801216295211844560409338032093947078571938013372186720756334503570704768364559456241626737744595635651611467875169246067348118051639873078469416671115116618905833866352982963126474632787250919850161694179944909134762825887868996909495907240598938658797455547384746232584871236561257740695956232319880708138161146340659299893086854889001973621068572643119224203809669035789775851226069701756435759414168874630432960190930156065881813820484145236409429354726021416076199615375258201255354783307733121748321490016278126076472095454550500143903868118254972214004103145708181887885958641515173910488959630560909667501187845822146560133378634824610579814841841800932508188402928972797453960367232658699944898619076284439863810977402253614581903899141994170910546427609283422949906447708225885721318104336547523880353246054597840190562398760601868545743918664631287262494897263058958067516452233940719454670571541576894212161336907996197494200571243180872709196120200980627455075118736310794529908421866573579730225620005385960412703361148654140093623788004035827064854929552705726723503033248817039416995886228470287224490710188011965445208152704387184735865718365430739203328601816343464809249004422565726576112549862510876851922597326876095548930736636603749859557057152670450569637748894837098258282122825232746790314136895806515241384883197747822194847652570033489440814547473957767226026140003644546435186183048270882699596138865759719282726018258790919911583683197009760468396862218089880479357924848589902205306066090316206594939042997358593873534403730736420859115245680992815020540784690531364106663334265299637790154617509688872291140568054122824152622240690071479496754789158699227051602946972664173265519957399293932534291280130957326264482956413828998992451545090462923041300353853703248055905098568535243680290480966322215600611015469159858611841325678805618054629570632158259200219604913433114631216100130630657674498658495292876392693446302412065512755635236163157603315108604563583674255999435143816143766289304017269989271025944615953873902122612136094765955167680422545186290240445689852903694506336451792208477730901318838090180951838416464702586062757052801776790823264500454482002560605028346686073551110838999898741124293617124610593685575567827474354466349374353385822601942172012817648294242264465111874674832779504816464298166935797538000828077596152514411018754918349153015804710377929452735418318493309547200129052978984996458367617424026562435356082179389611767428168509460658460774555914700200541221851489213357532892214925070102392366853046635428285502392745887984203196092119867186131079071621357845738146591283082604363274323985061546171972339933500177509692050087832962625509652076578053345921829858338597220758164179718242252900249838004602396753132890437384034467407919762165093512744138785035833116075342760285756048728227693549809450424478808955695278547544210962835857739352100400009099170924083514290693815106715508275553992587936986176076238348135100770275782567335448698239550490751968530203565164878364006191439336156252227844180866850161582272932267574869478191030423391091256606970280092521973874384363952095578536812507273145581129860400780047365863036258057344235080530177509006946894630337542098791052021972453315631747443853780056088289664088837252237792786835608026719980844077577937220485814490548091732937513126066130370998620501993040745956899664471301631508972321401095933886747812253481185199340096235832901961469320418697623932065731120839247604617277424387720836000228847530075840521987985065286179429854724300935114451005932509956645191360733587961982526324687790565701868791546708672215172683374649176695098936059624695714492799161056057593157427549225345188768581811918276026363274885740559816130690537603883800035853229169730981614041224223457819132404881396921498783656996901104704716027039696234501243732305162696445453440852264865179522048434492122944330945825460309086498257153921320956647789532366541979869380813898608999358572409986656897940778384925902903119513765964599802645447251026544068954309988450495498150233511552776759366206764453995965176083513143086151318361626763301113018198807902992128779693070409140337299756570862698403335736586451895781725555935617101826689244679838426997973706300543683555228066461297872628676783483825210002270272873239844013766469314841877197549840543921702355748093123717563441074362110359799817019337248908093342217701664188536935540228231077166272845045375718566089294789228434344446403441079839086994185044082886014671863813762888038904811245532031843961780704285103636977637742954997450325411847077660681841066842432454214551471340478919183024736995698421471427036915076196661532409346722807928461330913158433188633854578243328889843142960847896011889048328247065098266780546281518284354061005573174931249789911354183493733075595305586688070386818570003247123778446699931260861174140756133216073421437923320059397833207828432474506847600875971509038338330706292841087753837739465286492034816843501730677415612899453548413417951784555452177553484409110401752293050262691598196196202299770531491361954041427323699713406390670801526117495042836613435416647693759392080087497567788308253154868015440406460887554543257043544181517895453074130592364576945772120988327856291381206545955523654308170980685793492386878115452159814116881913657541247134533840847756717186233710928550541850176366607149987933838402991373263594677884664582122522492131906834260021814129848211936764030292741597604293582062574177271214391729949752176116830751443693090744141089841428473744608536974709172844705432595500131350030230057872879586227192643935078270359928529565481156023443220551267453558473969957776360621506461412924040616254335240865174059350805161841529558167148765240004786120022593374433885322873699804098980929884028949913035344165427576541923822860266394326347681429283819402856571431616237404834481218365587051237098404685239091440332575999726501473718747333936948799961658822437155437983267679350329510133223233818803380224882128238927916186402957781438688685108251477151362467003763857574835140234340558407259664955988775719197946566764797928720476034475902010987200013902697929530720802813507309182493322803149283941664068974743047597362399361071403883493320539075455648507643456172202238208612683608967162496372997909759207887111531088266199011760281107621078722866584606320160076304071276496666770680382332109066607315871370005453544289981291091549957046516744201607702500086926145343278059574438048749570334674836028443523292258756742713339355791604150922167831028433455275435070841383563415178853715726954611601238306956286733398018049394301382486363280306483128912067769893201210335771137698182641150053969550843476264308464613715935616164990107001492667227963610274430780661239230449738728480167531617217334118244597266232946690282647184062059177199564679479165932351510025017484119483673918563268002483707194558942896449870967030461236226523363153911462876829433437867964334012975237990970079756079446010479560020116343682012809991776481196044162760628256427117991766055150122313603224693150464612371948641641890436831135410327393913384930233846511720622912805501597505006770020806750061552139021472406053538836389409042813835534207433890157800784946223258542157280664692601752479594754386924104848802360338662912665330692694682879516417241548419081220721599132914827699742526680597003117149969747726654656674820298600494196728932830489892695813430687935057015275073934904028789015835536119538883122924490161442365889905936342503396190478645454226246583408836739394467256128706475881070899545301885041943431578670929694050009808150412949773394065694435816388863005734027321569995956394380116576148183318861774656927279433637687548740637920313063877060059479682282540456608024255572651409141595519725668563311799612254268600867790208502087855058746292291713852281201751342143061919559407646868854575690922758909179557205740099052919252274316854848932761848746932052304725793648792652234166192469178424968276045758805911261234007600206228857801710287254866197433911289177337125499964809732176649234118215095716211551655730165207771577560186963667688153359093187401487530649995226715839355178272779629312117056376768996098140264919983928056696735230776278862578146187799950738113305713651607112779233851609187750073940880976946505386821633721029045740217486307879701098568607979097273859497478330380106856117733789003320050975861929725640937198149300339645677959954155925071221757246237479817734796442083717370104850047215811753773420896296664625725836494387191692217377725453610932453743525389142342014980949340803505290186075147382158519005543632639007243206999493517790942926654462501202503715716137407637737501074495773415586334455808552619984849068806414997942921115847406377890997666520648045061494882056200222553493708971103651272018606221126105437640871402948028539284446049127712530034259286591621074361891780621019325571342531354594307370396721943073799591543904661465622812230123080267190246674920922752743456181710221231329427881264176700201916349162267234038669122702717163646153189825600335594191081607343350544041291394502077301635512830403256441916300611222123357710161656176315728219531103989584684259733475610806718288763923890944570720282788765426535718879872566445789696761756388000906829632070247074452878806563323404432795137209021927080059028702657046514255557291169323369337531834115820379567105915410954423445157094747262323744152635071306511313962768601066342888846689857404303689116808291695577063778195666103315226946600134076894341595795068077763776656213488579864968856728698902873293460230000388375949878700992772018334869113158023740173365646150440982547570136519305143553995971061528366446487977794664767445833555102252626566686900216015093685578703214421750846879403188672121253293880105763127331615875842960197691996325772488036792032879489286321026058703400234410958156447262355512310642862999844755093850022636781166197761851481917044017632629717264982438782797734035523935440655529303900051022059210909611290361799141295285446954186384378606530972795863995761546773487590717620497209978430074572377259417779382811611954722240436963352452010262373322472906022427004324976194212773767673815893782875457616820237576166961139994190207272597080003420614041213192425802691062877670378801633254150920553349766425617662744999849897501084665848596383138082644795409645934006806356231968897803810861610415240709712618480086237636121539792628623313960697584130159485711901297370713550895186885390738150009421957604737968029791463880363759810664788364217183362679838790734106782725416653138910132122592905581925295817428394081913830760083493164971800373215210709143231970418161568543408166099177848214091543672069067467298944287953045659785611964178591135944786271913266920295152226295871675114238245344405240667677529104681817256584065536240907316633699865393610937791965762863889070177932768767417404708591351273408559462254985660284629843411651190913467120649089978095799975335896302296122943000092967097319280437011614936116738728410497453178778840255691407184022695791095209422131475074629610642595339012666248362233868927430425121083985475663026554580701365879806397786847837225392684194673421362524743817256373224073389956059576010612738268822001261320934194202290959190616711649239550196911397485916307085633473951939104276725588292631235304016321700762501564632137832543316175576515844894174433060569697787000765759160205308543251818488330848729731438070029181785584234788967500811035491724499084862384540289223514479662471449288223902362836950562762752223070463446168918415856207717956017467413996759698364739163822250439944897147876151963396230178070667403729863959847806813483768529500073766973336254261373115496279535155741003771524881194182764757482530806659608686530422269216345553738755468036405493422616189965442650516690917372213723601217723323246680004502013030427796115782622991224864597876274938724015129359984785725644039772780945803103850230177775066441211224726037567444040727894731199058433644086232408513885463071655496228083167228885076864086345912859207919853891053576905189226392040598234219472457863131191904865191271425634502639339851640028232714127621232599785248718687174123922408870597802819099637225638813661803144604696642185392972658877974999250862465166765382233404014030302335478143506019623276684773083895913711840591727247833953487578614265709048242499176413263228637388266587411246997239340274169183666851752224547014337929776221473762091574840062686299447967934638521217287234340822694681257605827731078268868905042619948995923088770196701489259794280560785733021207090613761072112000620008700159746547591663551754673662055681995488739667628173441344881229345162140783808807028428903943466782944660585737099340211453252427100268069554147347807784779132581207581951009260376712950575035910100674571766008829443730770555216875155192567776028126123528383644066290168259650917658826444486822190287300299527375809700833805371935580361693087629374259847569875168566246582112990610668851299155349418606967754051807196270278222521727577515974311858781610947262396254380821086369077752045891567985611931549649709693890766775012924823293823344957325153935153901180958916868271365181743854592828480152196573343389918968725102848316994716003321327289002431210553523121465911827152681432626334889642366381041900659443651744614284205711952173134017347544845377978555335622506402788262067649308195619429203868275871011385521308414206516093745297076983667414935721737389110724993565437821216948746183602069498577806074569451882708653043341167275746049081101145392572575144037714756049875579327491156944044108233280529880906262800589530443801107606669999560897798300608744508398843637878608747830492401128682262825288720653765536558831686157599265592039703750955313258265303097336232769588946163419437976260683116633372846893161140655275462518339557939121842340199921954109283391354030902562318664831684968538632024937818302839985505263330583631233804867056504132943368808603729748552588467088825393251728193043853728198734744838182265470567712148632063023064374420056944201647598442915559710602457430639375200780653588642719482163940425681950602998397069299052974403790865711630992093672713153498488736595413484486520172533388726707330011274501846229708001767958743567092722120647324168951573893913865523275952208329675180499446911260904278031178380978640039425216908361806662298835518425562478421053884913120195974374031758986552095998099263875876492063073512395815116675252040519523252572969078187385131989439303797237984090167993802739779753249596402931103128096820501960994356285223180936604305086142824231968554270095875686067917248904328952634915480582528341508824629804259142684340374509102288141403059169718804438295344602377638668037901306974370622188712505762513660323032227482500580571777243631550889222137496172025369219177373958510392034389192018975301607686571317317296780796002376779557276700368729450382904588455187112682343863848652583563152145124854646869191552451641777794443581767590132490597516428027029791410983879471497791609540613125123789857638984457160670426234049312735700192106542910857144918530327587366920405989371911947114838505119761711139172049068210526640365651376659874728067793105061865107028760215478180273961526122478010123108764888973500549817109564414057272639560989757513391727728215327986834734080110063499922077848568002026874020060463399237582679834240996078422706024341622846278110283533644649180538261881794363176772320714048263882846627393099183962354552538216165766276445415032749013434326005017495213465226007038749169689424050190055290616804219453526140609359712136350156195116177514433304583609623510579258110528077482868848282563077477534918026235409085492440977859563169194675076851093933418137888720998456832691654988745223513856546882629553473521105109414570503898595051476616779469848716627085555372532034995816895622317921197561999223875390259083398185317123652158863733452277579030072107504130547588323138224354966293717717143815684239637965557417466481090033159216972524166997283110431381489544314174865013465872675466728905633398796572095184596742198970512451978491650526943641458058505833754099074853635874348088256345421869626495945323568249415578247625483861409551151743777651746324448781848408527070820470662511830858516597448520819803633335713704486511435696673551525161159121028234569004970750056543105434292793165210937381717985775879126288374590709800239792691288062223048994591759918263616629918877133675144545594545949582001923423774181645354536574988133921557526180977608462225217188104876442860811831481804581366090092138392650301434415263882915304810028266781128214513403183038081511135341794420061906220960518674865580688988427911541603510078940271080803783266125256706398848265261514299573815013858389878185248991922410405669836846418563593185977787323373394582306954528879761171211661164264836623148506438948490144696284112397154825274019577273808445950493262021178934179454705055954424880029336877225429250412741712059291458480148010879879630703124515034319958594198892503150518026436262435612689079262217286176747817241884809246353918785518184610241221939371748075703717432976553043746224067589428752214118540230936367366092355217851447712696981463406117956446024371148407346278842316905923407995926605454204588315083621147703206412925601228135094736707991824236871368072072678877011323694445836228220632457151475426302916557347238085635151792953848259177546432480562163289100458006209672833607723806618639422302657015313682684500955004734936544294125767126463709247863876727614901698404745537016135187484865920603346887905083775256670215100873877935617658498170616635265845864967554142960297764075978991528842624194817272139181699489491740046697082122507027818164569345330908318789422634242176582397016378786829428167106252031144379327253204262022383660673586939649943783293306037981229351070531044540141700732433632553833465143162144872021590263435755538110876890160746559634804069591003518070905969155627681408193494177062548706470814547039206251167684656587269109297937999098904726433453644922846157665220320097430330658729340746455281046069306948142230749769720471074332059606534033743097925016453917693563057900924535548646395407933949422269442595316946068215833288624589504051747723071320186899481523489136191004609300555219003449813638516987268402347460069092493852121141882986567919744038063145025069613450212589258200000606533523521849269246635661889492656836751529228932156548672455682644886360968239314866932371006179674605885625275976658334519788095619446499833272227164647272408845171911478759351823618258638810136212833420408548920671571549786892056039113126620913812145427718212281571634090028190778888330169949022022061652432823824728330152603204466534635922386149412604160107414731608892037474784909062408817745733552801599968664556651847673575484632692942523322876958202917107150302279958723007728146909016408774197248848610981490935608045678354036367284327336410571583521567362524857859768840576519051828886338456865896535594129495811790713607783985952223691673125155250967972023399033344955808870547506727551026930594102149625456131702085598272152811819184702044444920643296384846982360351004106250162284560341111454579818063013776879870907024760604453144086715591871303265798460594735733083534369458099638930836919073232789959528937301394024903937252477714975457797464694297936262854683837143297869212307066957481486108596849481478909628516031672593191395201021797257077210896894798645979872550677743247732673969279891071705442669669544734112118950948107043554902011316477838144918969477841758441640953205304283438201864643912645569707177528772122384180827186898811195196600702194317320826915337414151542725406572054285347984403525430021360212063603582135438211893510168419303802699061827787343978909485421334137326523021918221709930256243700816187115901269428659409390935517438022789170472433044434992248326158863469890377849096548059318463809300454324737696562184967880580333862348934845260044918772069335900074110590458370340874720224956441695726391822818854663073825023197818882692244948410344976117332254286613269513764482948728097166580820584237499066209940806968700058223753738037725760998198174052671691654347893707144191086370323546387667766526587533359961604957322443846336187978037901642511271845898366473139378846295562467804587356946035587935268513343786256831959789409452880170786448972700899770810625063528856620827065022323416006862554309695083071233344536529518513759798234017794239267802847975610365144780444008467230003870444563942242556126970018518613672625410986055765644906613762148245059189168490126623702611442333043879228852073638485439113272114989152071479108030319172309878605699118830134933923713257611144781709257312622741330000246329826430496125108715168757050867542781295346733654144360397158560564856550044202250897447227482442257762737711930638097772506959876311596549510258404974328873337563739623643479855227707937316237943541234535980861119153348219216908835418066856831228023252661539133821273455490973526793369206186734823412817346424182614824843824741283245242795133941330892878326412621826009283633308473620177874772716251558104055594499005971097090602523886130480147849473447058673400177825147328216219925308644005794359885218272975133743716766599984818763892319644027731006487297988849996499913016585766026159389028786440668550500074100264551450685312128290173374704654987926358671481916299496042102013799626793031238675419404719573892344217929554159516090803131260233651877466031134255362571399527107868703386970264919386622384742965139112549133632592487476222931407667050679127642265446611100802342204197726463367855536737357767954492445447210400757960698351713959055457022232485750828675588220563708103910898976040060041100755742874199917808934979456227375847393887125406560829255636834824393242188413698601955178428122653211916225091040742765680029101623044496233079469481011394906227716768891750679274179215067773683027807357909279583447013260969694377441463997503652065946569142838359524142321339376086851251228802144798645145977594500485030266295049452839606443187415229840556162951368182974435352720878589915402198440408385780223963955226476704171369352964739810653052153986549214385470446887423343062623777222483517205790166173892621933086571937528285373085879541064215412123485419282343293671454433077920085129260113444440596338409119410688060010226497952346735333612431597240955450367884044040630538268363019367010474932467870734994707801524352834090794085212898067869282195221923308299904774199574912333206265946485325610988650372921195461716389284643572598016994395033339881826454274727677903615709669948310267451919857751794676703468332975914720737428401076301448505389409473353669660621102059226292632075393555253063449548012201788479041456058025749999791211497729691640188068143993185841457168299569723129400140436525240041840185477320883903163545590608302527500936165814868196480219401675037046030153061667126601873707960296077907944456721198776995839995543256664546792744606758616029001821755708360102084706740268557220155829155833723733323324517297243813241918545160676239284143805641077128403392196787294675545205034214728855150206451648455126894830936835581926825325315958804086445165300851210572518605130407063307584755702012188850123099671543640143814178273575285027309663616651875777419375398050147443919687751353723198646441271738502400888322395321476381977109205901421086861504557810568872327850429756832094227874342704469083472724566501159261119389630180342738899071055480550398727571563672462935054327946354454966820896708972380159562466353733169563552416129611781229739510536945463473325783113325095107350966801617701922264616638099016043923315410925361024055896294940384637689143397738511928799068049466931798686576916268951610058277705666626575147157890320504318454225614230841908123839478129513605414590442086697114862825426516754952656597610171639843293925206082525101851175117876550689505994769912170323721458993945584634478815098450370943640016082051118124946749310751727803145339589562890923947188064754209302428643563964692134379372303337477921978291420147758239374907935941442009573083709718700192066607250307109049968551746228068822826104862166749294205144450926554845477628301476482698791274049727872875788854209351425909188820337946226295151144647796467335353887757692809346858242481529411596070081841695268366647341565195276485069686691722790932214084089536434266106651920764252233534576110277614053618618179369286032848804808261021143416909426573510233954114416782426790117476534737260426786852815580115996416041498886746970899593672794925419137763929013634314316454982158389782828675785684077229821995073818000182144916359007321068891614645217943203841809964113662216047316621108741172580829182423789425722212078261273203347552367152285159163339003846682407739675130368069245188081444167378615091013260324069240479882341184613884901313911098150265453773408177079805312430045219179487464974931085282134679837670495599978105105920140951429723528014829519643488830851211760036975877572974180965904929554232892480062350521011192949773056415644022280355104236235306125302676564473194172652592326062620502426696079496513843827253242291239432697650936122099074583150695827509836689573947638370732976544611061377253689488670736823313639479770169069633328563085421033777245345392089268432940116714984114979419743589354546978559382481603674076706258385981781917562016894860648315084857405662266355908934154171161006279730710272390320942339119102006970605086792925242659040349805833934773370318497786443516445010148166095597474810158676533008148249965894552564398042940928085914980632876151889355079673374904582736880015666316452810062085699683146810149800924607521608835327177365750730246396826034824508874406120692365201883308197597948970063739903728503416819707409611681766537481668067727666986707760698666225129310294932048992241009853256121635426449139193591610687534627079328486891366355878818962164577084110888682171671539095254849526140127151183500035958114012160854876669881063788338792361405307205286904556411254316642296679722768714820031084313032044884409677217549408061624514976069018952795017639649389037176648152299380137003348527658231196780226033155039156258818448424485294041268831734345367093576084310576532141618127013426675142837112159971960198376414628964545607252663769854598605530887261872503426141336031121250515064628411128539231022759474002387649366354594397140415545587865994345629471269554011423687402118835894249299923613196488869846337812753504276676114445784386520623631143791416470000942561550017906087081251782245632461550799484229400885233952273129067988892683277801687985961288142700653894562160326268991931191273419945016831794366689042620252308918767068380737359428352720860107676261232332969766206147933097094831346249821900743754470703633605984764107152577291870337810423035351710404850584370470920327730277893583409752995806100359776841601211559553648506991401829452530772559592472190405132452716176429155051866870345129998068533654292821295420610483997343799094410529605567401441460625104840684603595620266154438662110530758485084670954662396343340155364061805786927737662935843103599968500916127277651458447366691407387609234264488797217101940232563310454790629675609779926686096942327318742840371714956256240993133902730770464319417837176684295509797096936200575096308360680557103650605645144877355635612053524034978203399409395182441689702694817199185885317387380340848357740961284103230480205572398619026289976068234012006355838895854863183268426782684988855564656257220794808948742529478663289788728600710508579385084186724338159603087071213496838588428277557393758496963112360282932831021089750818118002796978181974853829339059582830765900178657946349762514937140747143634916152494921557437591268400905528330466837590343660697577505625753988240703974599480114135633682553811964854845256622316431386111467428259895325225941267083388122404648680549459813267688505860967109367885964954353902209845461243643843445439494358447395311021744909457401361715896237257636507572582060578811478712795266251610232544742579982314164198417657598308278125136992982657495807864865882897982108082422030945102053644470767230338126469517108042080999566495660705293870296540748248573879201224149055437933657393633525134230513654715976482973600287753927101593187838651819712560024019295843992300538872318667711075358763712442582539483384659446957725510244467622392187128313891566971912297284645088876567996911308893308333042136994378546001830803573003793786125320629634980567857456093358443764500759701779747919376781938770736706208475181713200296415712252799664818752964146025080099525267037717370621515727881490346398790605691058231778748548285691278653841964740617382312179993552105644450179228923635378111185874374130633977993959955640049609124478735622763914851808896343359379454794397708566910428584598957932639665248312259258696364233443344089306751848552551598097758362208445259555748778643223230787757572355104205183915675130459899941149603653935831707031945091718532842261130318089659477186113119108972952448699912184918802964928220241280094280384970798395054534125668405928349132647919481061675376645612368626632811035803426164838857709212374597134619436443859881372691558020661627284593354150146245743369791349310054800128272026011450029432259163975991731568248856775477593150188523618809095282432527394513187145663112507427941023455272488216667201374447781747865791167890125546320419939554849107185595635663711719112256141127632034742873533800396572937965428674834542485796514628445433364800590737890403723941332182464653582002652191852948010788100767212081625206706880233199337492807658793411207471313841516612023351435079614559572265416759931943591691146376211463078588959231465401035364995156806605517937012116942188861440168001456747817581710995836361053424993817383421561347931640613713551354446123820714277480146631078048320258647662881677561231415614232508344516946310373769039743635357648662749751312055243902867667432028913829983817671806158340955973436794891069942237628950795684844862458933511475594464985704320445251628443595937729931434943847848459832717159030767413462393378201691707083480631754922154656701674567901586097290021081234428795680950151165884981143312293573579648345630217813959638601018418788832552640318287986614320418709195603547557307984535564720652476114524771176437033350517344775160744724974224572541661144447530161345151240303958391944048262062377710104716070574938201126813930428309977222081553612655467599973293271467566793713085328761497184301972546151080527010687421113342794476781567128117327992702881565429074304121830153394175671042932494420643991681837508322029715930308611027863878957264377751556948901569949224737447121884867365986893952817265473490505913557533037221256224436655325485058429711818709544047172380458606974288390153009360386330667212322948627836590125340989073567907382953646803746185910744960116795151918768035212475439637879599090171699749768601371758527373452898050461872718554975574529414191917337054547025947382035543589846108754373317342491725912681141590070607125160204423803144744075189199772222974547447169886439347686596403247198290600311991530956279391501536781643245703800916075602652650390540797893955760097599137213094976414732689952896795157214902804434740322338051616889504369479175886449645877122767740480408272412498406494914477112028143963749762367939391017012789383895816243957071753543338470984319528352492461709715116615462508430253010000195830707119497547549872711331975311724908744284180469047717016249610792460657953955959927527162093097362186190523029889450185097243374198379740102047384246555270862194730581157586488817781992551386938762504993211326508036832046268908293529299021131459793646192387668059614770502578902180451883367435573581764758711070171095843914098240361089931409402866906797011153289542711039362555804218616788690926591270704187914672111913686453616575068915665485577394396866418848999551074555259026431546155510696795817981136288881017515499279975650592918281530751416665883220855672908505988629773125073924553702769100667668960941609347660695502266663439705738401941793619815076971005801300782333599959869025186963799488757371031919459035493305812821461583486782372850801833472218485955730309002486166051541171508221120413833652198396767775928655532502311618025135910903620350942069127620777009306501653413152775195457532551720851253772393638637937695408773857260808914534030674585647226976182830143459906556876926013477904503216722654123862541412935257048503606312216159424554247598547426908605096580995738758015436097171947790941783639711092460962199871400390025244285298861308879927471875751767994283756653965320732983913031949703923383544928711499994948222486491203578343881073279911450060722169622828547620305386766548912671507440321420715058846017446465853091971541976901020247169171676181354898988172402681915823113962122962694444605280381490201578535823436737609599604852674177309553421009356198315115727464243980180122800562283353656994187367296708557627353672939178441798947789012534152642593046186657952079589455979779254126731327630468371366634805570835698438104929961970789571601763318629349748612382045817428388575976931993725453876621512398101178924907219570961050493019546996147182042406317595292976838218680677503065644829643793614371330444907264700738574154934337455057032620764174010323018798788865503504804191777488932501340743150074846018115149880153579583767973599759247670013015996607259332106251056143304678656515036483126095645817529752752209516920441294764643919263543662013867837094573788793175539027245254977663459250191631857314745588927511678875536157535777535361640624620995696852009236814463189108137104122086743286669853357035444250298086343027742589252942764551739819135200392870452275153095134623398946397511488514643127464137703533053543278682291971436664981298990776153767576660806588776445024984079055412324770335821776490201594591118524470319249946991334339153251653514880934397655769918443943158713870604068065039429161242539656855387611073054685610201618596046072299130194699314950554308060502944925783765138368520906212096849622212773249226531354487575952264703258319535012264478474263827381594054051895145974080685663618985467564266701136272338421606623195266977536200270297566094638627401444685822551836024425446664152740301062701813582957469509693416242396505388970960608072864355161654343821674494801248885479450787534916587655138647394988232628235785491662201198971198080076935330596229212964568004527620230030005387389773990426608199646678746194725410710672858015748351335625094724571188202186678693371567114145928425651700242853694874152969854825920117441056618215677675906586924740057054250020595034201343164167716853728959346473498353771470854830077327315571860412675711232034811561485243302866148258506265218089981187511427062856751004274015011409028099085228491617765229038341857972613318437286484457493510855750509021022081646857264485429603214021331326341894732512698922613432814621723232776713361959031728756613706482298941618043002695030140678776072074442827759901895875238052896441820598769646181451748810972597592608386463404919892218240493756632411716842509042479794738072027597524834039839656520956516095184437770742865023473579470070165052090234969605627416350769232008834584787714683314260300075044164990555763787699736209883063676998150361191073970334242026169734093121073536880503520960566963961581942483280301514960543205940781905317136873820588744525853460635522867722620777237906446768897557653084852076264872532438289096439476864804376137749159144613948447174068723865293206544064147246231554868180714310430885521179936274735439988318636154623235064480891668245011714099869176558969707824203786432848997896926722175242947665462046333657272913632840268109613007539680935275650603406273659073251566916354725177915014732309909505874996700358464453139912914917455317522397571845940815261830049959662090425716761349132198853657431296378960472898847757075721732417990880926158032490884740710915948201560887797748348606510418926084838704010536445938843884409657597688618331472750088388319343023776292069450538958622444799073782690102300910754005567368668617013328257611764450874049470605976022588631421698746275766253117591434716317386060246768367174011273351342672231333321594128079357773474071315757394186036492221598781044885877349695898405236823244441683401200845976950758613252612508940884172872026665964506084798279490816356501139954535975924692829631694310721120835118698562068256819984117061669360916278293139299489975367476556034178875707494410938674300629141417634246043073516843010178533967295189109789486962706908606963662614271117158809899995905877499637941991908319282085938774281291796918740717239072800262032957007244006068278779441835594236523001166897077928639078045388565614826002619330475286740863282161132632673792922977321161293137875663164073488681155776645942407524440205320058860206177509085940393546108757190846272404662159464409450863772781274630127656167530161939971997772954423181963214143757200669792277940258724210819249185300236453179632041238515928688880816564607004831996372457100074057486812440338444931227160231704268286197340965040918064824270471634951836930403814976669778960283872411939612525582182317713071972564996556189632599679809436485474195648470319565819352234659183480683911886792928638107596225390701116106527622973270248459258467640475474469578267526085956249325959232127348854922407702045600828923203709607757254760746696985587645595168381876214137603855558326534992304705585592520043508682756477791845081368106715858885139215727058982538063499630027599464238255969221182872191856456896418028188225116710503830391442702775951552402137166195231856265175822220996980706863863920211603431890377362834637129008543759921539997101767168988393009082769211150206400865526925455618906491493340200607684177902222071068334732509626595680043627029858054931757170366842176612970015633351916066907862131365007998909363274481924808138904605818638885551553828737222492061579723926772493523556477313818118386294485269516204361453055577583943341650953874072519113927087254710755723916209806476807619671044966703725172805994192534797317957981542809047862320609709116177610847666057697294599043144231514278112833997380379347269616019239732151056632609922339758811033977029179555602517541825244648473552867512030246608754056503075131234528917872468957319378135287628271199810463507048356604426058597154410854408666632490445292089216245608389231734127222976009971001093635871607412044448170548506179884049551381703786313528344699529598965617181920233886085548066151097690378092168189182530171665451710890618532347898649565567364164776857728468923699207342754647493505285530538699330499250268401955328397648407013782355133050635894535430490240964924680486636327805640082300093082310112762703306152146951269161229807058047062345028852674841931447310308895882337172243375673020240982041581517648909391040480066306156891847836178191202544287582195381995114919249024743563976309729449615651540436217939594226315374050204872830842124260308786885175329958023283575807234101739903279685490055009003444553950059523346276486761997112196837489923010494797350200403706401495706758566980050631981791980768716419231781612245203280115117469606786428971440011906459062815625624168168328835220447077425817831112779526414508206064101417585443639408985514889353928459703171169337510305495636380666569949659286445099057312106655882253463622244232021430681967733304830114767657705264687166103757387355172085180177825323430257441135324459071071221589572469844506023056716997265150088161268883148466405252018013297917066816063210498436287817116423596487069105442991045984938808066048380041145008998063641685583054831534137040976847390705764130713560012302460058340653911408181322814832037895936082405145965260525954522067892407955666350017053457660948797215849639167830865443380085096430214505690329601737935227246982463450323955373778096908437536071390047749534711372567462650192288318026599297421212121421279410095396269681674181427558817536984901090712740383448003765368442105195518228664317812357842751983287187751808633315555680212345226108813675326715591292025727540399123169265455604943913381531880870348460881857590674989130675491192178052609665139747938806824092951246965837703836246751293715960537337434401216603716008692076560310558213073981447803467050212881676595087148691476669941194108998462567259742819523779684218214102610525962927330794279179181203208562906188116644653700000220570968567819522692512618239260222344413487778719270182290850353670683633520933516695536212712900426967172136305623863458021598346211381873617169334753832619736528973598081706572982884552259824705475547220764884209566722565593393782766946870338578763476469502977981905583625295058692721255639704502031705292299100831679472450640775995657838123405340424210778789634456040061202648577944992442160170894350994565955432897953944029475823370599716004192353052812129327976357599134364166718893023556100895070534132325738615898789418461491853181366471069881632230491523296091249073282307797935666724279078217727599587167902177990676561715893452936688723094326755910225740287357205032950793772819049851104838539202975256080486082640190657279382169145109680906118112234158755855055034514371020250353650298050703347667245862897384589826912534601958794227352141902521932297807975505239999888576500561162182206970957817465377969959524407223120607892557034809481522792305142497276845250489139241103732165934622399224655693353223216483498476748586484513755380927719836276980933340182351126338930800924761796324899638929375528319661017770181726718925696044958272420572033457059616224847913619303244172590840874991747057450060773532075093354004288003618945918728040714423787277856846344600638500948845107125760982415829204317742037085564767815587533130890708561049329885333354449710551934592330741056760135880390439834012740008926025533027432921248882137722273363424436187000127072575078664807128619366304867072137491976512985904569382567267271438366539027466075170233721977211654209890344919445555298306244383896800470520994156492242384949009854702398627065483215679080763682441397452419404349249662734976949916793842836244645316259732678371601738327995771219826447260230294123682681773069015245303239226798696450010856180839487375903883004785779834265718443385936785945278122695871861553576938626425743945286523141784460403382303483730960199543353463123030523388381037400201279093340579338076424887264843011645661179651773441033795461741603247261256626722890250265187277615277256921588848555334282257380822030187659319213368409298314549271302843891768797591196979729769657396732592937601090472753389120537079995292129503318035761137939015925000285089178242717323442387804116578234752840138504537302474809595301615466377528523693848781006529641595338518792846022310055873284280795058202684537289193715266050653211982701176745712998557603548243012853423051349721572232962064027691301440719379759347306113527910164024846954625649030051451445971180476124070378259313803489810289855457704611561145465675040319799424389188897893012629283318401542703072884424213490975112560539405063926986953377271815818455960067047171374217324723795023088397854119913365417359150006560027321868140499478877710679052655702520099855088164465313381166559454165581644744272582636955928587045605607473681905551126979375323662995452355715957951593065560439920840869403271170398771065451927442650616795159116701505561184935388381766271689328598591519574452696467733390323404418967223838502236403655086786297357631830634513884464128917741471989970805677208856733276319475948168211764094154851954622377555098647469719290263378453508179823018750213045731972700882195223016126795558479874398538703465467116608065316304088006297059017300563530360080286816792035523070310891257813315728273007668786879330501673743904636748855716420485215171180249550548830045599083280961295239571561849120491933483358170982462861497528786022224280246244062771107135343525989044218922688719861884939298555339373179178673419312843121942328091048397195514829989229516000575191469877794343085170658679037286237387372028423599179237672020323602854051808878243041754231344590802345861557138904384713432076402166121552802345245480551798190203751967935284235892846619679127734279071669117859132567076464667129178562123476866999082661606544411374602470089561499559052343523865459821172746766741819096218200480577797681024613141690482840239512252863691075941973711926228576728094568560067996118299460673292880570715737948337664522636979670899779894238612514052391930842343613796517332427903240900370670478745279000175652319933582319407298125614753951970959199644501393374997932134169390674566362138893538158096498385584580218517526364962150144584782148096593722397254795532776895576786288068619163962337414711755275579554086591310603025999102787493518609793694104061442090958356342187745941335685091884274609483547935891490677642472205170528483518943126753569330965532489186384287769275958107663857270027435217080097551070444271074177957257347702546830956443407492603436748233287627379563716464484142069643577283297065608242019011629651801312154162600198506903016728255134620144635112649910778714646232455955184614844901351407996232122061357076456420231442275843734871390906068518520701329790649177526326863889348086441121049801244460498190876629748508981267356066714743698214363870030005823777440803198870205678948381930902858881840990754428511636135676769102789599093435817670259621496807655253966233654467199776389050257591219334490479659288570552882278010922051161330965885654900689523883408874027430250647983934852235070687064351783249605954636545775918705829193798198736641351713749860030881487679302230276539520391378050299955623573949800070488557271344340787871065040180079085592666573242704021759846397889346425741297101769707746019769629927377749483952108610844329938881742644006488384879712958217470801006986301819685967546318005392153964388271440302298860933705601669244402423478834407085363498554985602342216168352807199215082669937531854549077867465770176080182074887375157046673824217691358761666448362703476342602164783461390112050565770158321315450776977330444556073353210544623916522232938419639667786252200304619393300976511687928268613577305782466380301449523801912240526739055572982537599923021653365806352734728392190545590837241439215681960220655826765866493804329779545969970466076965533937051416425261191444447549657577843955456172593391978184237703763241187440004999675863339939749987568604088837494391735192635342328468872159142050618030883118908093732908517996203167773508886590458878745224452404005173155859540716452134179940450428699781019658261705871662491373111842839227689639874403531994438650198651376870623253104223785707995008294095644398837959609063552839816539731443567130863481643573857659419015511771510815671901162689917143059659481750784818722461449058074137342718304318389841648096289766249803333486948788785394844747025231472937413959234311420721796964735440983877910010577839009149064275669223790046701577595298296187897538612320159321447798622571596606443278173561839675728710037611999861472472709850353922936108168328271888524733583872889803449392758035092753322791518891599533129843793547889746052873093747097198555664503279205690540139339683999647668179740599607980381280934007939723008378997230789194776401078462786161102162395301185440982731820986922038975419248692257001968114471244006845857980509216154492821094095605069483689648654726569046235799582435555656486530120507713472662273290171748147131353722362795573454548101349294191715277187065678081838288637600847461297714271776047924305699115470836466169208350704978024199020581777668688968422394276150810181952547923824667246551626528636512944652261637289524272640342572802320446285894133410317492430730588896137512565781287454672923863948866139560428176590138623936723407400057221029430735191063194707291998096142735715641552904463657128931842494375498264598614430547581410663326773425468849524826394261705464967874541458147845650351285455697150830011610322682369600011295684581110739427025863788432572691342935552893815704780153806903052720089017609250737562907399151098875270930549573560799320474963513294317471061442709503066982701212348207632002180497886714394663772117615192024396450929345795614859251447659950045237621409487557401424483036800209294719616454050471832484226858963009353950296984360420873076553798058289585602185004242278007869315747390676442378140411619764217854785742671612845663924024379170733703750114083574871672056868435794099984599782182909871589609030834696151428697873400688564094109617968411267043743977762401229379276954369650919611439040928797707088253142878326332865682308585138836119610669067531409974959034347014053965409838700865659789268625202538152423910616599643609741151131427107672297657365412129922011397204609531499926552129979688793687381638173266872080097835079431874536819123601823663573780413412755059151950440566298222312200798104588144202337650710026138948741800058686017737440702717170410076097957573477010375917482232811470092202289482234309738035992947698731339228386744862309863537868502909566112185400334195371959055582136362758545358171856973817382536761738496877267424955083309812168746192506398408803979443397585257074749334571062742067809919821566443225523518484646325162411139263884496479171548465252414205138906146499004733612416131134867437169398275733721465958571445978108601812306526927725993167686529093075891945762446357301711619837681839182060298895750822056371347042144117412575946550162933912592930376169494641895589982334725920319188356165290432753902864118088201208654541987834142529142855735613658849004311036739308701265857905512145067928864978220690212374187915587653683948632726937996114435326275783137576856168077949831664722096226397558989030445325500437370533106962648420035044288464835074846207125607220107442860245384451762645270570742500334401408228591388701682952560029673421441133638315019563006014071935280838807446717808606243580281050662153153210015759612857976711044717043159906577352224156407760833499446428048929655486990376896396773301914934155843481400419408186476725231941475075804907512584046961459350846675615700543668139613159907682541348963739238921537694696275272384266321295904294427465337175454570416450709970286012210818453971403177666419453778114372337246691176589363803279854905598939123093002088573515829118298739766579980292596356040412495391101625421449457662055035923060106703804268877841634809561718847878162163195710663431579277165098999266607044376631928807366055350007213421009006298430398602868324205893152721286695392266022704674046697870918528607116971466042330525531291008664051773238478250757373015000794027862840352554587474496365703413577569125715061133330832328166780725574269032729411468490372109681238160360554941922044036623130332458270025686816900512167928736136843769580829158468477984306282004455768355333989422549669839660546449385495203368715164528280996873368667138556612058273020109815788366209712723355817846661767792755585749757145083507877914726957795492778679198981453683893847523735956225302181829824010568560646340544944207159516872545075538144493297015190580536631942733494008428940266177474084442780833879394339513982662580014061398900520502786769095137124775500751698079532936196869223745359970512726272690723275839250795285508099146418704142945248860478771089064058526542077245301495764865413741345200279233636673540557821912668748358145567913296001467751883957949865449666392638021383606364996685223533764442044479745173902742028017862707031926406312427864113832041038280329480655807121371308435767450555404529758358433899249782667398087828820391682874869399204192961007591850899421878130263547673400632130312918205985408157073854602734844651672694258400154822962011703507753048057443180744166177057978366809729130584331050005927381537995520327840401685368293106920761571540113596117663606938909515474391323423894829341811745478954653109511237742633520334853543838961675619008351316439123019257338293794000618825473429969869935089541974854846798715241293246236028763765912375932054361587125462763273360847327192486155883637638907118746266808339855293920442148405281534594083869708359487457386496087348048350659429548516448281308956806770632582619489880736824499495084053148932209518965725955320446993624022916420384546456975519964071832309221061549394607330652347018885575574778313641863788021864614374907077442490772787118237773479632502318455959040190392154033170757107566956543121431262835791712778766373307110486679447257013527603275706577922115588319762085334906948473353336373735129941524230916499839204725849018194588114810617933418537970849086337719567777961287665388261203889003412022216009065511932962954217407694452832602324498795005748018647446825873088613590849763507070495826481386772201545000036952993402898888380099503159439261598519183553121740381073801857447934230664530478807370697880737499692019988559556316783104988276049768071886311934820620604986701556666762706248567540623750105894131891572135975560901450858107078527099268387919063317961272089643713683184511483400561781464726427295611017977354092841239594254914441367679105855589987910423721175488442594180914317072833534279891222443717907790482405874308342737960292191956960497041810405957627974204516260402804669712085465852520182650456883257675126065060354855491359756545694282937142590241379920183165150475843737401104586488423617394191847179001692284619247778851695757533901256978867707568205130042419826680035742540737160704393390820643968397360376769859183989467809301053734688971547136188402122758629643066659922995004846817444011211705122457599178715152610300149390107539569512653671047769638209773883304108828348863489993949912881775921230276083808361174655281997002571345154412764789538363002632050658856938420016394832285882632671254819457154854504530885545190423506266742646997280682953946253076546164863521796415220515891066885181341526020009220825021916596492631031653194627181340507022511138651455245597718318017029701781184792854543844388312627531257299347319900433755731409317973683749831799109159505320009351092216717758276833274216064033760259095681529338789003374585464242156326940101688981109836249638235396368597249910887381452640394530776965017168967535441966293518292992743075322669631607723942537229284166554352208939687978229544058552175787312774566915329331363700000437452433347551694990172210870919969368067469759635670412947790549591259166446848413007877172942688527267306858250660347547911964863675330050602604050883967717365235752697638679340317326932081035544246214492217169839404179190344458853672358881253118768764769292972781595393494546409523173217824544477232470196387230719864015397862877734304526281376373769555905937125270069623264826063634658554882253823431323093206173944529296677486527801576407089336159276742395264403465713150794966498239744110933633424086895747426389762946076211678267426784821537757550062063009922410096992188692927797095359771621019142547987774180563898075492950275607515248824125423278500100200143484197725322721709118407020927936927891934934182370368050761736567550079129411752352619335627206137265787645760420965859335076828588082434646356855221969749200589058581607824970364580757433681111529012731724285528247095924507520046853130557182707513147196744580409758655151090636808654434223266208964054438288819652795989553969676057350975266832059718590251263480724745900699884194461447706735077292344179178362361345310828662429911593895104486447889296449394243187342722894074417596689947312855400079455310636380069868802919078920241478445333295349114126367636487750503013209420392677541130642871776529590202001598776422845767014438533026882986518704228253128464339041557842726557878872227148936815230892491012231931520328033461210353838318566271575898376047670236934749191385607966307363168140023530582989679742888831858466436447896421368285062278523161498118753375987656050741016889451354609959313576824497898057803779340063131332941259831063201307978755112064299297298704744542135974509872392172832618357261821221750282149026225527677288829334541745407412571993388553954416161664114262362116082738451462284304277814963916679348199415827467050025816156044165900275528622334834589389717682580910913024390896852328931832541435321824977681659822708401964481781423000366115991549746479663392905899412980695751039196575318518136727941286286189106083675185650491927207114785311638959187495247967692730563672067885355941751228553872447546453200481579432776807502394121226615787568293807605269628975901817806811647499036333539084974416586276858648985498683070550624776270442878236520239497947493699111235775057530004932158065534030636035900070881622282183758400421986422283381483906687448956149318338602124492394573908071711619662912805048235109263556145002664537562923061233813041142656151288100214164398709348729610452459803327993026960203668536265287368786804571284205293938404956590466259521732925121350134588188443085844852083419725064280847680692731384795986107722351743388012644279620866464941443055290489496711251643779447481032804842087370086007098901849338612527921779652388387983556726134407088502940346770266446777320900653436439858022726491299010045473869510693599227452887875682574953818464882746944785118591738073274925660889687803559255264893026099723181177395186374796792772154401923172375286311910562418890521457036360688364278759326284906175032909115703717797659839389856443941051330443809682405087792943466105018781885363964209347105491798694154412068183631011254799455926353818819773616433759005006894667505818810012219390186713420190997097990691753561793175649249047046362390463580514141818087228739122310775662548086726246357813005156900202844445088053252812626863192701233071375364126180918869782387732085170127268963329657744353318180757036592665542701032835488762484503040068429291591515077107195208243954868049822280845978392564757814649310026631774348855642693070628504842136486821673551536770976690756218879072742342794651616945162456991608042743181269931541639796857168465686267497462301375316656697334531228106386777326551776646931491988914775407506477096993130706995142912205733778939600096237597178172323049763160007352222947983658615531073467791670818999377561418825426630314038800886160772395135411986507092394006643318912808142397031899205696133735739529963558072188847654343094810050651369881435707235031030514148487742512717645021513167409144419217337165297332405940292285927745747419410202267341092779801769529780036131496550983937005305977581055927858894686737056623473142925085914426571038087353084398649413722392109821271269848186818742612181331659049253602184617788125756903294582462009223310130648882142979811168980319453605160467607663075537857870801640659541480467581180517659518666311388875720323135562494972942021297971129113556764678929178642330019293966100817021649021281419548590117230877300649948966185884149637487454531749712604753663844801101068901415648608302311612415626956890126384846972166497061058214300102846361920686760972563057326566256100055847532739915237645627065797727145202291542862080440264302252242950205312815409316078540679458579137224903334324416637605970178508304205970308902885216862132168810798060496307721878915564821908423822113092579360833168290427208315688818762724672709302020979747397383408870901141624197209888441616643769114795694236312212343272072536195891298183491077996667574838817245608850903841888359826945163119421119817648340448573955586199041933896628158082146451558513805757534856222205757392791582669177667489537116961100138773624525434792523610644641371987858365220056574890219498814580494656075328222894883537271288548283060124273967729343272759965027448156133391019760262629362309327932051195836203502030612654080069659061111608427240916779150972599578792818100385703175839037107538867865758161085111780391958779273117182111780996044685926022117833647638502335079742846695803536069992305934497758388253780222650626545315540912316187170819142648645892654039292134227143524309899573964390186274848784376182547739375905258712471537573971638934282042277864344467517883691469432784291480178138875274649032854294382949838718309383338877911743965900580765375833402599141502165509828007211759929453617592120424158913611140499730701159953479801421056867724379206138862108617456499935733714847170806630993384362744589629380460897806602065810668706467480465595471347716014549117730679788555915693897326391587458567546892625259863369838390477714813073314695026248571750195304862531589758328081807633490743647038723535137654712662697185304525230710070082714835996755150762509888328780798795369274535451173543504040468729692047668751713682278768315939304527096481199146375115052278248169734670453685957298091148166763766456395449906109871022208060691890963286591083124452119372988616798558190244971433326518706672564892280414113492286648638427354199599461966137744686631266223576862778734926420758911677661346527034810886972006134866170537249212480757261550214018687301543335196330849606245092371523658917162331274726005888430682206221225861832701342389398668930492844833248756280402786604913072054832480755235512027106832030226411374501531745178260233483216369618331737652267836345544063238239190492783057286953169557116384363114016411172503511737411360460988544616877293306125727392851583786554785457169708641081311966718595277425097974145276369881685853948545815984703850420189562312817202104802188123344520529777676130193799487341771478390773017579206966144170747479946409120448994368272189555321232663542365746953100711443800854193297210781244051873357801354163438209098553276112762409725416929029398990193289587839243389513555711640365492621706805761467382623253728150348071938943017289016242542518537731068906090018774844676093573672674361839963865593058329807806041113854388236756297120854895567109213435881206080772344191854532651359014370634024173617737530025458014019167758604165894540583619595072096841489849491301712787071791663977561984957751642645011573286232182611233192838599816373225925797436735244059345426173680955340551531859272614859722995147920908598615303048690571304762783860280636990200725895278629755410896253192054555116040083044929967844656212598497478411602813435003583802398865361733943432714805079723063199301441140634547670675558195539167662118816172600541477536073811366454835319744245536420342541046667251699667802291293916164102778311414139587973845808558909767013635687667129639294857757811301157890735563116289814701531616849856497221974690524710529712276799438831564055394122755373807100007731428779878382598939783976051258736115824508378750322011659777688170349277218785285220858486660531649642375566044238884139614341861567615021313171967549479657696866070068434007382867012694016919782518237175946873189649786769340595081983558700164633010805800248040665982227938097883709930796778908845621074257470623218450959862865766389088296147259687254742592099498496756549953457455466692696407966924959865829147836540912249411081764375824993960132499548816512542325061226392994702465558725682052989121103103461331046697670752969233506212466636718536758550773520182645710724529983136446360041204902083433116660852947768265258748312005332305579229612396800713471076327247873271354714704008499843645823090066068589385355880963466629194381401458317911263626688250011945020964396190407826772275988354564540428501974512078592445333837786788644933957396518798116197387794519982587424495609790208913565316035634144897338340262231417711260121590448302273284399252513241334996458189419613997568154113403445842889111303541316158727811609231747572719816913634767290537526450870482637952932492608373413740079742856060176336727073463252256063213907283559552089987421622805811271466481100984942623410151058283329639921516409042966410969521672895512527473892350544536544220445706711023052238493869926755872777637787439679017926433053077238684533564317915830565962179522542150852882381252217869649499234145379357783429064976848556779788909394857295488815642172536396394822326918868261803806256467051603978767127080280968972032404885588408400813284305083785164444312619980832769436213232706969997504314699626202203768174235079583751015022891575625599439901129495476989217755096727069887560028990675451713324800074169868620488427980397183647079475494770554180510599158452340215188122392302556538085929517963704920400372098614939864898236441375567886370237267152188335045821182579274519655135813961792134837685805989024613540263095005943185418019592478820431795973769641288607488818078791728836915806614186242261767313221029195509198897592898064499190877778414179167611433517611530957855782844879331266988449842035518573418365448152142052761716181357655303965491904463754350135760484836382992951439863301686145208803914758978669588325875318209528897958348889458855657661031039866174087796650990938790171488712851450468988777279273498995308815747837050286534977887806276039850967034187839784952799460205442348894543594642268670052205980856100899078892133599045899470357402943414694696327220653581073684939501382099773563347143838713616662402648196212847235673980377673410353496158710354685908489545719623282426181179008998820568866918116012160653218190393182306086604582942505343285612245564847905623196759307452949599724566890914614774649430449432168666384465971150914956753583307230041348826845529564406728827991246008138615466664897557286702294797012009624391386907839715676734872634559879242938545270774547393833121453532939067086890137138167008764767414955849404088450673427360361690258491775176526859928162370370338369417311460479598558840399937444097697698052906543902540292008874446855201360132234231852631729861223302606969928967061791370741942825631031935275077300566827863508519343299306606874715333941799618487578181179512659336256860204812607753664890202757600889840075812476014902990308336788374893648998856062351161006510109731664000793814022063238961927413775511073793968442135182814959914964697465512357826885119105512699040457988236810195030563865990406251387626417321500039064464837486506601970937607197407615325264383954849802968032188314704832017519747863145673927318225207475956114564044206373721249863345156139058797567142904412172549120927404643599294447285042658145758986753442526822845274838032907764955848218058331616362657129916022900868869339717771004965028357935361957416915102560467695959730107460749884774791610065751402578633472255621985830628179893095060805944588773792965237112266167366762862829874619838187932154758757657994192128684585738871120531568650620466870070842224468883218760926467800589309466445633411934460740188359141795337618582075279508431659665655883949307579711464261334684950636447865188598071321753207385860669652153202897213353808416149272258301210790734764178585877266591503104406016766769725513774547759136309095858550264944021434567592352677355873749171703783556749719802056957644907784955634261675678059075435487556127671082055470688538395934231945000898531407138371679208339284193906252461528469593550971462647527516257902825328495482006439192717634686293158051428164483771529393038855123305860360880311737282629384089140551797683007940424957399408628433931464255805617625125677360830551943969896236344134815564549817831202421540291552993068874502435166393823845945281601675394102783417953062809643809043085430260307949676310906260251768427485953041152714573236383203284755004108636477784451842389581459729523382305811868822717932343842508142065335805086636867207431322078731513009872620416416834355604999061799500823094797030441518036496109139967114802003044816450774056350051483042005130560423800627537210423650720733565853218357159477462977933199399896028130872773032320558777962451257532906869484351064078033138558808246561519255651667653350622674369465857299117316791478630740620284945140640944035710719533458991247984732293323047590523713041346530836542512526374493228154687388337999704676294323429912312652280771564861058768495455677518877166723210366260043614738696000520171593497822326568855161771589110267997289344207905638758689369076308370079898325528883740331484622373573730315383783485462224505316005314893777301968474512695937609524014548475588734879613506417861487501440328308560043638962127706536302391004148991309730136842801397902700603583725048482065895881193448602469009584504069636344919937680084426027399147380495136016712629657650256295093134885464479275667503415066598633434281998385926981245598501187663672714345733917899122472588752699843244530914398940373965178254810339790511426010713089695938401700343030095258040855269808524840623225219565858299420714813911368283881580076715867684721466662609795500562878395421358276776082685189801167340430326088520718508926394323827861917700705406581227200837018813296538466935282017430911654578686476171865305782685623431581338558251834092490813299446974574006860332591977278898910305811805164503730390463154762295959887168956315818537761880453761515402634433325247225177109843010607477995606679294397392712364291892274081543170861107435840932393694951572060718563300911468199782476781954261990494621310848665214324363294061397066578004266283264799365366890997070266830997124309917267431248304047433047524889006893773413727137182780166014989010497483554605180602821867166872937056346685027755826169275409618901727720729783973054411540337239761997250270803742306929491657077445190484756161696943223563082296217153617714558714718004192646135733205162208322989157582839476960577636942423721615376324870366413398058383182545665476306870800762281258316485940285958015929300197954110264853404985905467041374014811259370061329126688264181532377928904649543551369281411040038663151897304895451455859125746505109280259647637262990781185681268695037757183273369596396498154955782079617084617842255560783263469024733671533826382146494337957247566810033514282655714551838362494098866547863183970614555316264891776068259597219462970211229293180077515959600302889248017147480119085674243125541604683709147180326144833973797475623161417918233256351432483639821649727591023893184496142320349307486983792099115084856533838327005767868613592816096831526686015807114259940479616751959960047654411315100102842199296875764140966742064950545587045029355673395113097057028205603854456400178641942959040841816358166544757267052286864308678202307552759984994461505934721498401206763256753879378397758327019863196997034440522427782055726827437047997747829065861327217174257564107958185399892863923120245641443181194015804974834644067164942441953174064438380200406397869500734087842701543972778417050209803852904625212669432945484856744613665434251348329946777924378412467959654918021132259268028169353778680671292362955172683886046472355980960360521675761044027257133999483521470492918533356010115879961220426863713477402357097322687785445368518712736981932562854297577851584341594216347924061114467601324584063900877974804618612839616715583067409504210005954880379565556412874372851700703022078207165947516190305184050781738183388010017900696800848041300474596388986363600089995528699591851910796710689194328898825223978082093681572236390105403889201885288155871384420343186806897181870247731501767592684026800876759572524792274005522519254052693692393479510236732678505899687509129998302594139708797985351524816777852879658790918285302754699228051937379176695490098981612293974801787038621345345161048500285799261532785522439480615290291820983409647833745684105873251122286606952729411888047397314667889970678128632141482650573443493441640743893046832563731756551757129574354948727083896784417718778394450700654257797374901617869283443123299176938764965444722914563935313018830837375452651068347431219731593245941611540824558766867543979781176563334977487096990951433855911473405874731091553056574451633433395850131132099696204774430269364531231755445438399840764378106818654347033743264330333632656590447450113045935263136261654684227832086662254244634424514348707937079661481830138870528240426060047281574273812240358956726971350127954785285152026224460102914456585056684510635575879852473214861941369390779877508210651559755020231782184736389697602252871520061502822491083280818673890444209697943339614566711935727770135829334412432120903599564307276208989158717426357245642465487908957172581040039837834854082020390166184728266696925904556092068660176880393935062064028330444171382808569600825322744717602201388920903257315483166669008318166229374733533060601193548027187323758166045812156490019272617740219314232044082702454900247831779302270365867607621457154881563904606446630971023817373735601840055541438360003378416400084231251619070426437182073421701209347738149783574120595309369319764997945080921652688407226838482705766586291619077712696371607733868009904115324491744865474614403253649115325936896455013490885320839982750854761027625770163206203152025155659997059971952153053995211353767024755848103242416210933409403677919028390680948107575600541428226495096983314337607714004458816815090038601450730906848149128216892087441391577414076158563498718890886372709170660202089074486726873375454581366242802619682912723997792688652353792745553790637374140405797015071246521249771355962112681268358372330210473393914990394980760930744118143173514663613564077134838165098779864896627189770180446356281273548879441766572725526914086404492325288732198377503997608152650893403505547775151433096928524101942001104691657877045630713011386250418584911904974218254710404340045459231328308393388130496966882404790310699328570292747823423805062819236318704678895997229927464939344498263474866320137517632411284191725070579147282490322656955197573339908169251389994947532536601000086641097967046219626412435258559548497647225504255267749155954243936240827219341957330936116509673190479931847084304068837070705499609261526129777397865063069286694237498567040463309255813287374079349073413477884549438376012912615069483804668923598524433819023069990349854522797154850157348846785458924423196294803188241886515236694679567740154883336688406557311208101106068388055184015352010245639124468775893698726764011161332205520139264316908105447351083820844388061706845917728345688884591165102320177255295902153237191172289856053926566153654070112680804132959159796390664728040423403460647295511142750555773436230352337948386824442891781202167273565954609429095027595426300720216659432834004918828788418709048538582041946449026704534601515258140947419036989426464762712001747289482362619053564490935105666347379328698819939247950562157188361508297223879449182336451568990844770826709455105153636524832179725473274791251373658603464012455036260295382628625172643937717712225246341316622524012085884795990848708772554171096526842732554375477592720301172099550722217356479963146585009496196013098293497710768907012632460011109750765617291600552635418720486526682815278741485676441805269751847981811449863885086699596783428593075432959287033100913988285182490249915161057669175298885388179611113569962703731946720740453416173846253221405959451119019079769431711299931633797067771079645219628999738931968425225943014746818297395083293480230319076667486455963389139862331801991904965830757068517259930624110630995245857839493382436539463221279954227635417591573482840992524964786187789808444071235677564277742166587487753363625094616441294013512622376192342923104729612333717851430499210092525652065480005604305655181555523015418712243635884209113978437228212589709452352587353144647705114384673627757848534073207075038629576684300646844630314016211223201806801126339441862296441097210116463345985473316258143040448944599034131265290908675822184150825684502211678721604207339561308668090139415165946536616272892579805494031374648370852359624291886812096495699138593448037075222253407085676988715360846037362024583199956510861047554928394071730104130345089854357385549922606725470718748719406833142856684214901319019879054920686959752344843902768226658440188311398595082162129587912422723997142270766067324168836620070076453864474874120480604580162776176658324397122137291399780171414718839141342349613304197174415008157500256781959845261381799346069000881019295042136201028889124856165815613437386310357596028655942489393302195699413750138075221905807509291001516309498406722709517349630716425110708331937250399563533518645233800007298280208229504101489654795752354883569758228394376937295315202836154339738805802662612927184574332710836882740108059583365048884629679554339046200474003994442065505568357461491333886709346263468787726226354903928924432816908494476696077010232692796224735429675768968653393027587599743141057578800711046614340080950978829101513477615939315923849076751384553526790454935553262143570639430915630225204564078787418397284371788320096429273348213975393982777574452048833032587969625085516377775653009670624567706999921108250563010044106575455962545318305999178527345382278300969336646119655710619842370448420846190038385631224239955959752989541270688617322937176761507752887233835450922382828640004660702326665539227641772297306931395652331325195714322063382089018348785210952969756714538347939977386910454856930303661501786861594836512345848871454172516744511957525341665779731708406759504209689526127487058041509724845307251531574358694355690005974802821076435284753257748264552697116417485105623558256088752034863173254749574724545092966877956690442077388798198279489159115724252315449439775772321918079307471855686415931148968011745216195981829031695692701690349870380689149745912948376399877718598581968845531663985674189571040072887131599970277596050893852864971960287729888447779612851267338323681325523660662595621495942732393854988106543570462258227737735531539236631170465429083726372630076314961053090602620833735516129276595043910799545285628623992328736073710123208162920156099140557268737558515362736825955117905065017925630449330828669340046109762056235469373224698050615616649952028639726223259052613831864730325299834655580348062448741787591876386442245469886412332611233119920589204650921414933226422530141412178862614458082133492079204878563420565638943931779525693909974367886008523270903759367609832534212437875229323113278265022597391844059820779746863134061912671692930970803942461827114770401231143631982585139020429819792798285672066566945110594040714593370280328754472217399825034470334611640106089658268355094488244569569459392543009288375078728525874139728411885132687853600611155954102888608938634739852357858663744093441062468494849516236589076774578517617550996400710207475357402003619676560005194756171770945352015554330374301607164062924707640095640453470269433708859852277449339549179079289128855931778677183246509075570517018630756576854259256952427768750598516947198978255602363882401553938032390803139943645938006345345419456765012379505863922877913189233188204702997380098504650818504033595456396353022680611823851957279343895553540155376734096489011477099200401357598322395224585983724330767546640561715103710578480040026973975170414612811997288493236212044584366870873379605845507219848508136766390294844288543334340890185710673347849204349374354565053165473233470331950097316943323707569955466384258083431284688727145373262900153039376913616742484694490723046014435547705097194532749618448527500926260200726711061744394042513209128776392272930915114517310921828352339976583427434558658720021517998022222225493995446175028800462626865798801024616145958740561806523994954860341770970098415966838347308551545928835328230837878234777407066099733272308299672063287397288894013527526955179343853217762291994314792684531764498014342222872008328137403512939600069530667212603370518143481808518305987786344154495505417104909788717934025854412384740642441021619335154009042369603496665967793849338732510389078507707829735494822054201227818593979052373175660433989836095437591491085990849465166229013392986131823236065209742336539647278278177054367884389303772864556218505778629990359454547563058433264264865393566645001148594364757276913922159493206960400745046741089553106787293050902098616451997183946697177083257477176332657647379944509375211235560006176931960966663548083916207741859517535017124379796505244334843461247653390413694296962810090082772315030284713163249880566538467604484654404669760826217169773552916134972804151720106705304758115248466857586016013208022922232697174967471650456019125363549691316667844803566089166678875220919035197368053188730705218338119931781833189066372647203273128468477007444686095522870388219384487883952089217297045988715156217943893870908463783479673101044336057553687706935572521654539809372278016556799299683342664499315517795131177693268416689288276059499161959551828501035292893241446469734840093880521452249845103821406707144146036773848151094101875931150276183458872568951421697166634020948001351486180166955935776048362590237303240041800188424060069586208871573141473304994580246868770412139199270960706826415923260830581593223270528083616520643635715644936254621484920270233007190745578861139117086873433826496191648060149907524152249085132824519009553248944578011240053991312534325396677305535825093798816613513068032475895332289045958890606789177417184700030271464438709108537477106940088266054475576492395559857426416163865111232595608299845845168322110199871069344297230119508551632847845495413434021166157426987174689214456024541884357546794425430822791073855953812140989366835272489923498041255174913263347309293671213671108265337701325209070705591039711935083421403207739012148226534555654988449626135618430121772125876116121884887576844126497997317401879235162539316407461268268259496493958057459528182419363813455751057104292905898122213437441019254311885957224760390495066543684339527641588585705697699228963561025084496265323522489995480664501029592256831764057649505879285762177604107657069067416088634041995324868337634086511643386194859026088869661856421017021395818807461676932905458153887769507704148332144613966309053176306006155139106427355708871269476863884268313114885996837304648540317797303148561230021157992845249227219882488319046687555969499866192713007040561900316657058429529292424668037571736524853214588083877560585600825160465811313190216184855746291867315322927232844649757889802753394908336594581329890670452087247633974171829964979118786772789698471553250840162034608968890997236352073972947787942794239492021435366327548380096071865171961701578022834774814087306715400701899462918478387016580550761358096320177629276940212188910717832421390526834132359322883288330775320929515386099511812852711197377993619618075210046593643795816516928262628705182515910203159020082834714854766732580458325958442607478373454900890772215699526081180992367964047263020621871492035902767715227719870509386565529604268899575877636707939100770034099732091895012100679310523894140790159211837025700884019372196446982357017584691470068330434509720293607010712761633743878444264757030888659658765876971020229802581204617934562727795208960696723873154661112755230426904770762770664373239564211560214762172679571808416581810256822792663503453554394017452452001485404483269812790967384271169397555659990116111381633086582003323695776764097029998374728007674576972857999793963753187698205235780887179740912158687444522312566945957090713876552453323303997667795091957787978851060870601019961017380615837248585410515366470900859815930820763291457953066935927465494410111628722842598230379613992315421266275543062606035148137923936196018749806740572102254009381363348214514304504644304038604725994525287740574052393971430239282737749014010305263503640889046846395171672493578695746375627063508272963812999311546254660304103678065031194869317121894199515451645167705850127654849955138058604599423688533971863326649078728378736471200468148719862436638929359787802151911830025149905568122279026866046034622530619733586695514385058044653588655546375461651810313710714716577558313275303718627834033793168736642752753298154965640244873993433526908655712629980947482250145433830699854110179697691180069572005373583903601553861739673299429903677502756053360641863285285320945916803682657943272879960051581284570684745353070909487693493939612218834363680352515814356726748241798715798509035113495960937357728811945486101758706286477721845033091005344924184366106717055376567061860041101782822112267762203377808579986550799435410026306922099894344456147976040483100740944603116416255537489654529023376025731242383052727434139638565130449071553192316935733327213412112648071254027277827788891923347870675325226167121859263934237562757183028121311218181005262726788027113761464439768570368116565351378181426260805686743639610339686418850559050330599735102391779113119197144727733946199958926798254242082735562243779541219648176146131395833546450072639488472854073542655632039015890866410445941869938002431302964366654915256707887761353650308081404871168717905318651711485979420333818295133056363994528604733710048739865718802757639817036042491656174335783464427420980110105218555637203426726306148898257348951850223894116906852356933593032085825468240657115102673177232627143528397984042308513166026417005616096542965423218651342014539524842221373053825204817032685005307260267793968409955795154014017653596026061326315027958757595516066904663162120271096012669458685375174694553288338842553920200113175569361494431686418771909719144967541499097785136102422758548741561278874430018442584300557847532161043081637876927198731440517161607860966307090176108833655413584577914976192595610322574298014623949662032854809650382560140450041009144146050963954173441413655208097169067534250809518485545643626724339138207642349179666291675551964238351451670079587324037668159201483234703800867990501060871608189234670443404106815054910047219090240080093121235521927724316019539359988384513760316763995213382334196986919194728628555269669225696989992109969563767589440801911339300791096840828452946181325528449957889546514097294481454741117043295841091801652793039744747684159926613675057801719871231431137605430828687107213026495915860799444632261791223668111825532034394999428119175443470023721566931067672171927162152116827629007039142951526847609973805679122341398775479835222629550740853125270327728741492687251207302469506899832145976484714174126234447230185229083985573773512060062656936641441679205640487728532638114676202196620920768778216361675072526514380426716040881814269860905390387388384069778399501834427470093434429622062671018733887461310036489652422148862589542134052820894609982904801225303860512920398347341730916447714907669285583763395282806014608866975875105784588475884620461807422723757505086457839391197849154508626925684194186520633913405977591059145871376591686652177038473494829339142869679115985507559114960119720874684152951586092357430820394821490335906953369350961373046411494105581154067487148858200920471210948195173712850373070606746825816117333527613612044828787212390202227705053666875620341787523783049269151029372958351797051123679156429427739814499267648352857913102646372386037596753885825898579113456609253688577842664302425712407010209741446426752547263771335737282047154050430382845589908265074450616591303352052114541847227823527516456149714271460850650592560745678580691148023370171774833569286671667082628359032085612275929814218495334503929947675255492200160098091615056325913034019095127729541049778174919576886168470443403281492555529538447518034912566340173402404584605561051012651455186548142779416394869703488112999422497597646257516219520838385243754800360493026247425142941822501076030630004403277119723200820190879947897722825527907705349127317774800441157665671690310876495261166309609848203072527990449742888817625343110224034682588527137544950463732958790699689194680500740581374661856454841403638210354557039819283239521202986750816988313413203239817244755859125175672777360206386634855885369953363179402127291944161012331148034457318406038581623986308865714529831398058381890865850491426826701768244292341742274579359581092813734310510415874524874419118633041992991633182270901643635587827740964429067004289946313161305131084830172355246131516832370052757925363012850637114923274241647633999165932807248526287472635008915893558247306059511042087127370241323128247458749295752032313811530317883534475230551372364650427406874149736187415576236892441889179953807788941564061573024221322259574082583919791219110895881939603485390367608532590435565283713679807925904602494226873248600262073722999375606056724478713576357650877570395487103038480101300668951600573884791877037565769898531938813152607286108359816650099819613752459359066698307201363751437046585786302261059621487399344419779186550421562147220607938770268177878635733451441672649785396411717659379555992347348658268265172049705424905974254170066816917284616842499591984492498800768276464890982327946180346299451850985382827851773895611976606667335434095802677654888046321591970883585816585963526104718346105367125521737008918596428055500338872808118847139125203818477901702664857613194835667916031936626920701097926174945314232831036293952177657597280694195148915806089647830293610199851768004713776716442936763044773187108921779875546269489097196972791467619043549140463548720798810109072160454265104937874221275201577137305600598903003418631775059536144102996013778726464252045687257810112732266877295720400617479230105541840317508979806138722564326130479129392320007894436742465505018300128297119685458726860598798148601773941508474119394466297490885964187693459100939716309312223419026987056456083288182248784693694090138966104162943449040101138391772729313430106864699417448008518469745744076885760300117089993053065884864770436159096002387465485823879700533298550078291376016316959559926632751569220266075110418407098666042259029372946842376445455245798972506342161566805949578701315331681812050937369543110338403790254148120001982323378524190077635288925432247992688775138545537353527496829672705949958095069632560250316250155024994760756103060087955175836098292896263745279373956692567331366676096709677942765208112614919517414891652263088371263527350364453995953663588123357403024503388659962391113582518518470426857969825526393789096827565582076225641279156086778039668584188453737985035346469625182598227067371843099135762191542490127023215481727091614238137352844626733075196654125070973626919927827951184791033620238686638825580440394582767866982460012387154152072874703844279114442321522075012249005957132020371215530344196068463161439701503762749917068880658267074364775247302617401879789795509977217080188102695171135243464744850750129535797152719120613287073362902342123788004931354459098670094653479608654630800517310648959155117065094180593943546032914350488982252143864369329767850597562984940917692837786437238022553661785066323495539897325313321290756765171658087658730282779739563844986728127823678498558143381545918995925355828262344109024719815823470339816167525629465188522462165461223339244945518158096473605618516174417225565934641878160655054935576698754505726893030061778653972668591093004536575740556031993691709241571001904941925574839011826207472222744213779541850139780807723354607224683768663604202949083357998722374906441187105567679003155901497692175702470785071676695999099990245052808937129484878702353470906220651395441341835175356170276017155923591683734336860907339783813905917011251934183153589125867645215859647841499261150859831449377255386375056680304400133298665777040411142719323149408634123934355031097276196800635195344070222613399843196174139642632979483895033980049473440079425770794265627085402269646709446651239786290586212819987495368729216819680249770036049868006586736815535774076738548908197570983660446336616736076627016083009619556813185337451117625977962422039207564331919260632815100973276210808830627400415392877878985935664369021474194433137450130358374738543509211798381849014406869085762343409328606106172114403045516794353025699005745957917540565526722682831260611978317626233954285308114103887182132587169311307065859844363343437265989696219799327606954434335050838091448091188115410388047846049664126345394796482851928135171962759190799955692737764607101908270156320172163212171577996378286277051466449239669991155247172141026955436324798877504728950064467972956749202601223644573850436576519658435438610322597363806232037329016452031523699877953799394615120171662897557567521307709209716236459126096249071747959838373862688185779467697632991470829991065028583039658986457220820594378326801554122493380699343617994650702890863529371648445043488379716438491460519397402962473165516929091155656040503860525856098509940890930677712004040561537091192693409651301561759558102041137718014332097828988976309537929095633204934099489922591337696223260603341215425561077395655412096219628444915078836990983087885720954491067740374463605514373306170440416673135923900857091636282464908500823980034682490665925241218047953102746404172765045747453700715749725446678353694363406141303054408274911533317960348575219052439179820173491690176977654153902554734071782748236408622330203912412716537430862787621931488588546147277884398481245441872962635780843102815130527500609399694562752054334384438580226965516671248010880676952432848232020341727106881351240795562094242634430690628992456222686389323403380429167696119559141673835213238081661829255543043464613565497900216746477969641036538950235043853572040204583255590170688428821152389781192872539612556871955524651131183410300790452766085087301928567732920784845395096050807103793246414543957019357341739137487620983746143699113232426269440924056860137285824840591666864006190826041047943178129906504614612112918994626374040109222787278055066494839392080700700948651258364412646391742183496942076824747838073373908112480198152449856679338244362056080007100198551426524787533712615866597785839219120459687348615716994068163317179290654491536821007764901054436356846674150427381454183962879519701350507947590960785382374082868848528527972046541027413980709508683453340330650032754302120858723194769287064217089182569409900453807742217551393370921887713412905733077642177446808577516130892094430483633199657957861430458320343384005868046662726969319690669449854970253493990808127907691807945463304544381298643865112761903534719079318665800627136795159814200351619043319064741031974709629928333970750316071243635705463416173862849466095232280505589251741551894884405630132059138925048656209564948229925937945921510610916789635069543606500013301293602971528601230666333146550855058035422790114084154609975749064460443257898619526193161852600800787967735080426703015830414373529729322541754687155380173599519529695157371210304955398594208625761446875150980161669863245697738107263921428570830089651266958934302369356617910279072185961086203402430929213231797979045834136419849922618594116002973390755301659956597040097090181731503081368253219071125109127138777996156195265488308561283441937824721482442137666984089819148573032281958095313956147262693934804344525951579390059277191196388536589011033140963277346151134284822276175321896250527497356904996175848520309926493650348538583913238169400336094875570764492233182297334732977320235012127401151956676660596323798105107722596705202136651271048760563366802298437069796111796145922569285238021876779164916079256911462250322680293663818999533167446851678193610444342391864659740575036043948581757481448680147471220165768287110229045703602138964149589269008906660522860353874093341355566152823368783453952482375005868222215491442704344012295771249796995886741271798351205220587481435000147987608596601194760140263590896512633977013585744333813937455616378047490702927149985054375280385455071573637973693531749579065469484591147253196945947035101053044193131712660433766828432795435495672327579082671395920418878793819722939557459037481369983707722053441828905790051845819977680263525611356913103465113533542463296005622604860000279952196913044679298723846434295219336047132630472960316315401116244309995015561932174833938438120419965971097143882940218265678623449325813293278620582512462592775690766088691760010820251668077185987628172391614557517956023073248709922665919024958266244160319035914980572397268905130157067916026108603515787052039506085387087256700576037315924496279092085886890631575587671713707494500955058029197527506457353688287653412898075746037763218748328696885446842679536199394261786406543201150568043340739635202195445864293329293326408027842289068505487142610706683010862629629424974709213422693104286841855062296722157891590542390731281763555875956896373793426164118959935912597508880557354656935767661161520470856970880936065232366925666357163788466091939160636625650757093210530772633431915674839575391166080017773841840973031239249575834734001341290110093864138286043698676346914987684212130445027111548902461218333381168388157373332310509633954715452857551813520871341595824107754908306840650925072387702890783609595100416618307457730028852190633753062661067945911579733000542161641505739333079978436537467844768766079722342723278459242819526235956667626355992217388634899939396042117901564991689038808530732896665089247647845551368467759081075025538702468782838348754917937851642556236693063663446652808077232614489565528780932127522932206154793194390301393686747876342200604920312534386113796800702942520370666792809461871422790761802662363098603016819479136210536952958368842189703884833146972284848781116459071218078170123020953105681946637535137944704100234576852069296774917047692628667693206039812187875383591736939176985421026483198203611709204016163166231401832520439076836924171766403760486449771394441187703665375930096995897862168761199491374180957955720476880115159542098891902417705578741059715455975992092647230689915505272600686764520400369842505746590693370953728201449567149592704569232576018718372620359343900332875849491211773687008885580195676884927862940032369816403087988491976407873815629399770324040431205785386939422696575551167688496107593804664520776960948613892936555505441702766506700392988976297012829503065175443239971284753557853559816136317415816898306382530706401298249858793042263338200094022336085290092289923624706060365185124727452145439050462647158904095134912961076817938599518579148044104785235506657248472367599939210203866076089016774095168922730918800705508468497147137484929729312336352207133990650418953152051430552443501154747475156594512159279260921898016703635386776510411448987912216255263824373723825945816693431711542513011989329701703003020146078196230040322953812655914443300202074013049453783485134561647503391348811948366119299407915806590893560590533734980992660045595960024555380163076106065026354298984430105935392740420397512644814026355221328962430641432892797962844159723017248863328124118753044697861489605039673393758703847030589259246308903458936691661546319695408615225710465291166144361390081228131922324838595522236478587806639748757258200692468480418241065240183049137426372407557718522615863608197337989233028734425836047945642113557973591025246353556702190895409672137350904983171471367438498511891221581539336945258720322233013422170670047597629761113170643994173811620773159763229617935419590417303140185306058841004272406242029936612773067629778568497426639552145300374346053090942048266296942874541479847928989360107817291575850986675270249606994431290246956255174706147256492801225853854432823448670436899496321838971201558575536628125685944175603132650487520285372027354485811116091102571048088097685769746443692546203317349811633777564691045925569248410373359984641321124666405993207477292054528263085448926470101805061488791575878420866306438801584951090492470961044020583784045180074277036109021367900587852962121791321881958451026066709368655408797885474462674395597508782715462328950964667355811612317649778431649196454721130028539521861373700293005858353237342393646927640950389924260327220724811324376612795076969310723982389985326048127559119243738855587714780888245379975327937930023715929296490600506918730809889137069080432962421514432180221865344879570508984868667970069889116155407542460677508091406108083341475750166439669240494965804637701737376175937587344944677918661667024344506899812286220075752376621347078249293475714516906798427408822839051345345226888323139464557818123052128758599449761553765636111637528973470802359806502867905174283870813389005573360204724460929118869241252202686545139664108036516583806250852914155894757895752097127919082541757439510156361899606070686398518858817348251196019823549539787460245748972471330239803165657788306236097661827229571970344059381667958090661604568994377804700895213174201308137493422433058258294841515442907818966202459718630531688272400389708357253256881356918835079956331566604903394611853483746079345835744781540477842348323094756863118392927385930447932057984495959439275949711829799204938465047390713669128559282041484124861177311120175508522616515489753634634074120362428093517498877261691112254459828319828412741139474021650521338543652874010550211107296283708418278416697016738041042188654371670995418567700480383380279991550137941116796772351669554630269846839527441250755634005974769847284110471457087270220150511435182421276808637465340476233502034557912024522046295441979899222689320621350908839231292624873973810085056690399664901217077902371774949292629450264315834581721118625709161084384436141606726370282299603673143467630996741656303081385444598646847571627622645015946466753170614015604546516531091076616135585563782333225938621837661490815153584463935083111954219977650651092963114020711362768366070405591435465021099455682239280733365024198700083813978695360433180538769753866840244636129803294396975617957279704583096988775045067310787222431883752033573578541859967096934697587209361666837429907686675347873526890390137765907455857124652501159969135850270372195846447195719621956538950708842135326799456533000082961663025892657459198515017874372275630650806249629253441784601456833706703643840075412905766028824793674640093904300616175243022067085397874740966917556683374007587144730436770186251586301034059639636740455730033528662717137137874701261353322163270062045123300209953663773341881631219993397482596175856089193276232889388654201593114234267861915373340887217690317246239166880789835407437012728951696331899785075987417129175536852448853923270822870494026789719702237989438099766464475611243809691240598179618750424010830160029993134374476428934614038905290337505672374576516959594178212206020728788519591897043110846229210361506565624327838052644539006666227715574873430333117671450090206679274795763916760263772622146588732613566987137863937198976117029775950303899157901246656017607429015794849774306069831935090472066558018881697169797982671448766152555463034773102172553273139843847575979372539930942699789707393018515219038083137980964710344925130255772026409951361180417045383770629738733043423520632072444097928053973202675444028853950611172938027713033600600413149992662824095075817900602418740180756314097862404333797123339311577956349574999287488686124283988536468542363521101611052007091329020744203768464487677585672230365515352020351197559298960735504237135422752368712306933704922497516659227265698593833303454519003255920329780657934683778667755588997648272633794753601261320842723923666940971870482374057897879831570843333602873127246627600118210184861964503350437723956938540375230899152218402629818331917692408377884008463283270723814981249740092499733264407559636855329877900764053884484520272594825985448990413293785448857072982568793230011591831472035532675377036182800067410307947812908178318333576275645386916884156005168789114878870776065136364409941551861694920955463392461128159214260082819590221852135933127433909534341974868371103470493696534377809635723294796574150789088844852720000557365531454676814684104899172824112396109802258179805566042515117634131758098173350616653386116877111909556514025136729690409327668999429057943925696470425913881563254904742256619023616037698266534371694220926841836753140115112466541221185237317604576730423775858084499986960010062208158866022660866514251631749247294717253792544164334467257095044983532983645216648408657038524173433191417202899222564025399379331556497714866450796627201880476601549521971906389466301817162187322405145237612361379685869747529786379674628731528152135527680658632038325742279758721968170977897515985945039019859316606535468492088313167744245372045510460612551339512511539392041626448898493485093109772206400525093710547040159348826574422374918927579521805994345151104109211431432762646429075828175853346969916626101955084192998470593552413366918904551938297887648621891686863000857862546607195371552806782096329782033779160990238470296897542561501554883070807751420786743488044803261928597939146650108655734366887252969931486449335204988478237617095596853203035260009776815555169378503939060000107547429976166284163765580958708347796265258675930722388694538822135996959757675221989468926989055103933969773016761079665727618526214252460408433167037582551648951350686395435646014033014834037815977679686315147284263039029059770553258213398664549619682310203123628035244777487835046009668930319296864152406664334279963148842991332736607401536873178029202074503027026949465951214753988876598871022346249634442279338956739355795864563527780759314867059887067748281369491558537427143724221356778231537356857360874222083139696138259687122725188121695399886310934193161561064000089607942254004356025004001468617886906017073568888923054874299087673683205570077052075475840237009189096008831681262952334103879807439770161684374058553734911612148379470426242254402502757327524057052134383805217215654860988670124531831603679226734692112390136909649020625304983113679841019272898399071346189707999060776889468017520680723381334220451851035187334436543584509014242595110106173796525705386374666905894923396098765651627722460574920541546014662795913543717142902392436498477203288660124974288187712496971215156314094256663539259801879340046017434156114713482215454137186333538047714942789931442949396311992397524217606875840305249381445779218065781577997251058916095124007998881043846921223182455925520658291248089565315999558288129748705689230571537657080450417377911132543144470071908785900477714106159419832254933276844801203554442246041553662147161969640263862404157179271992012779449240885501596803767979283609778380957257703382999694314497476504152060652287750958870779518190387966430804016358340907054274523796525282117393127844307775586394299646317840714291079210373641366852072190633794500148418657304359672542812117778863599332500585491091764034531229780711545534302154356056345915366351674510470649815227542459911880974813905573202988097999113446566787736982074780435754455759397417722181198394404225325781211128001740115904583963344901869014721433907418195461837609512561560168680638569015013963676700071815529899477113081907883864230017868233609377918746666238206474779723051239320478526990586175929065767788641039676153362055578778259917786516737868169058124540863761928489821193618556409742399837216879381038049594932413545215653211758024107728973320978830515419752195317653626330411251424823003611461932861614339160803715770303288252650803917735164454212117081804800731105008315638764898784606454959095181429538404561884015259651514485824493224457993933428217124841305480154469202145340212003780435880672667721911436051164415869501541534665342457070302473184095928075949832519559795049708706750684013586547829268898274297757506348292424838471243711497437839151236457269196681639532137334264152794847510328012389522051015875500563986565217571033037547266278458884079962229255277951537656356700048539350597348315660987824086481769843717421342778049924315373989869434968062306644393210460993155943528623214456297594724231727366183026646618591390690763640375907084628166358357397282166165257649249487645620233370493892589731058268492526294162489337220234934921809300959589427302945282934521396824152794634765451835785437717990521001737017251516477887252097153232864392694385458713679551075331733395187234846268824144148242453657022065588828195679099410586392212356114817942250827685861992827866924037312743597237609158631964964486808151669859096064897520514641485107408630380065394215482487316227630706528208008629872838926885553907417676797810843418984310308092576780647222993694888153787704504296423470187467277586832011355682866686521071198341452105307614608106223629931446643153551424215007912757661509404912999629206822801352938107604526243288212450343598572057224953334897409358828045733552449027823966596009125482773999804121648627936627402536117876875533952602729886554288333008598961366364377293612994896456384203825501421461320104407464055732727509465575057200750251385402155941256672318970899628293429449926808315789390143666600943409299326777258129935371052594761608353920010407976440268270981306921925863520617023589426838596155717562209995813508696826191953586005970160791389135800423214385899014557384563647316533526360172525328246883809854671662840407106850936618310385716138495397664484257439672088078925358988846519476310607972337738193483174821469843765733254802521981238041459319216960940785963611463471397858044578743964914399879755905479739633929350782960177120877239434702740968734283132104690814369934898741559715159375344846655314580318853837686705057683191318902257044401829281077266532478241292894253638776390701452276871497060195523200920827872894274788826756576431244969709623293466430825190968241539869439488664171941078986070361973015178125703851494502726977322395454002667864939133114077460685411878937026892863902605385568621970635449679415702040102472607142802055475646120932189778267549140716240410513224070303532582771624371750870713143698137552874747385900189893523682870631261204123546950447776241227545474108225233206097628370137617939213637448868552920145853135915433915731823415486601390715622339976377189026184197133787934484703827882349297294277008019782189335337871205943979378565874988758926028581567894771686591703339795892622994147813236090156095744504483481158477423443252378453631024598058835653205973505074675685994364146117648410804973047814921836229691099127468513607090254365508605830483446929010962638481628655272498116361961106086374797537210905885086273547041977472890538999395452122398900773991927201071807722930258300010607299525999594348469297803216452179261020798024322283602946359110519786396870216968854541087568976659785477933266061709007992264368783807271078631954651283757768803830091758731913679099949211025449684254067418212290918725529621073954741396083197918260275319564597472945816023510222311184695704761172290172587075316398620250256801145889718116119026521618786219794258076200499023061641579413524883230634824621607953714579888353365062822167176112495208660070786978262651837350022724744049167072519554857009415784044178212852402049499132405329080029820264040643139587411404116368005170201282029761720364531386201073994103069579161615192617971322618407683453112090385756489371971346281339799998262235534311502416963742374769678282004406094808028233075934763437185452116504356290570110230875489163448655229971386611958082070479209230292789485244141492431696972793726374319419704753775596161156558334786180448378226856231566255675316614393382436620837964259443629886311488882100245927277799914880996257961281342009077607741075550372615252280202994514387495513162190032955559918842835871774055619264792524197740829225831603999803014293701429081371054736427152712860966241409785397902508713446427744238710894327721417644572805489043208570555393399905708629516943952837589737986526818961020355990581310011347265437848318596164470674366007451277037516574024491935654460109994036990909888171166484480387158596373756301988313091358858668047700850114794642841622710278092164763078606204053249319812160631082688657185638678591476686407441169009816294620498677797421972612832170535140590589417899333659830574140167613746863192840374221151488197075633680326762686920880890724977299093843050688923446346464615686005100716851694455218153648149920044753825955290487024962113329819475766081162501977575269802353249241446590173419713840852959529009899043576878196592262304326147016090572304043770859034609164644209306780300414320145700247463016037399819451564941653153427825386784948313790392224961564983501432985907385653346409660290421443674037513731535897926246417749593591496848185937147862290785626976250627951161136130488477557940111145094838596675552046137724416393947463242118740294059768657316745834634119938265582452918307559693699776472718479160520177369072028542626028058359127007699647673960261936653823786595179461634119702113887020048339007127399691924383820791353239142123385173024199720568330943276460744831229242097534894315214638880192622391347400710763325450077200478192479828096939371886438401515468706007433827237546447746689637989660011512026985010955734816838775904162871805787393362422582575395284282475886208156847416381873811793751429967479671232652433553096501324414431887514629206016956842356682462325928725208172838830068436096937714473237088692489341624628007222920931154869460657815760223745553314286847227448238514907172975073973259156034349230754670992892377885615318508620763587718144412311285650638458110855565110828243853860522749348857354633755583358848011715883498258759020168931394348137483529433085392612463344662553932675139678723221941846926967501710943146227964505586754738985326079929441358240856596664058567717288686620002973025813770187189501056806660251956491789292339303061108169776595835857921862107565887433981324738897826741982585918445708815238945117771543915869771300595610728133178839951787698825408875376861583684656874937348427891903001527636067394643975244691689825156064914217821897859808480206544300349437690088523012891991789205456172529464571108349753003296691326849685318222542352016834407424863188606764890555057331975695685343982791618418956025395811218247284475552463781934889368425750208684191195962661226751375653498386133111269388857945713899432814501296963879050659970942482004851697959287069089671803712339188211852285607017042202499056109684658712746190019839055356506854613169006075922278260538609218680025862870179105451080443160845932227164401853372326132221452058878641624725395832547366629953887855060037276974324371998608946741580573627170540132113653753135780016353892013500052876193216018664512725799203214580165558408165829635237361271292999205454239306947437408067785371854235496575471672241694502169122806212918103905111252928654754115643061680104634191306148708091064618751017704355558629427861379500671838619228847411461214977519953772972237299821190123347460037274526404851072637371845603989227374571862051400731182660901134042117720441737825509355037139456122566500903343590855176815112424545408337022053517926618242537539382525490321666440156753642971983623150180075655964802218950325709965893415117618034432355407820629544396598417296570077953075725175547867297283326502343196275108550520537023836995557182760856900427710494927332613203597114437492031709772809877944470168747085487556592884432788538079030634319536083201535260126769607124364664441308908436799399093033737371121845959858904468848495133565224979947747622611616994917300084866790271196012770385275482946984830298094563039359684414836493776669126538111350775010152371052316855356341398257207240284606813950586188062704569942803663219786550632089542702893756515707025732424851326145737884698056853173691279194136147082592365555690248483573476038798448655113738137441557372825770870486959156164168567679442702466365338140425944562968357896345837124546896780762699567781601749936141130949289177185821907287803706657474053954724926470318587588773945390164091009844039437684945538281138151071021759167842049779814471827081884248870045646343547957715874646984560560749262573803114274517373048642045569856343504403959310622575464422920585016730284736590834241486203962363447114840082025912974474458600068773637523896028002301326043857057678520145191644714014008093253777287185569812167068717823952363158696883116628930446838230707242036209945945567510046139691739799621904932458199457397950313613956021435607456738204408525109425332494541893583191672815993731819738018892474314830901923258929022429877271876971276406365110781254954348643709183601479265745608512970174128547785145379604277155883382514662698244242358499724299748908551231194137451373796158072250779024949269458728921073280808960234462244130475932393621603382669852821123406495072490256951935308512241595627130703217111176117354939692763055963438847671725786338916806242883920429296819545095283077697440289805487091220236074931677599748231189759269671436592726452530592088160881817907737749241982339055812643377107745799618466955748103759738373127896995301180706120892474965937069531116243561861521473978723044367686442354421485722838493287439103172734377840704907497566552710519333762473159115215259678598159231562036081274301143067298463579897588331799243609794306152352024397281752335928653070905523120719041105455468571678256602383700235776701129070252425349869473246410791817353304614055365104968925171089546645292666106113686657329332614677959516507093878623542303768577026704410730256145089561238573769826610479958614967622328695530277739895119776275190123439004263747739915868522769825336813794241641619961202569839460801944092300495103700143292435624418854426772472529849197124878906269121604717451209951270638290953263699176781706206712331792644989483189696300304344570957311602300847331800511493945946790785830090016227993414221875966099008556532950720965134112865985077038977180367458390261804583834790107268336943540088739478775557450581378809015315128452543813809185211355895297466971079880988569699392940566374179840067510567532508203251821096323499109672796694353308496330037270414364588389266937404473623226370325687440907943893238411860224662980819847253600945055883635423962990157677699687230152525686236871618192107814143347160650900797100537423958809655373094687044691436814861678635215664997730005349510939690723969278790148505457205783282148040602930331408398586609983156381077214833875039475920276489867793308514245290837943005536633967563050889126787817399817078916447186376007987804448677325261169418380003100964536275568685727816289662332041827878756198988963629367583430995868737738108469502282396912474685297368982329557241268942548725352204385968002083410600032900614960460939819726278174952339069043917735557531395364753929375203793250229322216974527555186317122617808957655820129697058254309720422115402334682626898749405831247107815642580000197151494135148956405001264855090671527804722410579257568770375343354377900342250688965181584785377842654027096380538960996996516348391813345558820461328712852732786091229428703038417669004286146818408087417815639420793890567927113055336830633256080441516207717910827059208460375653248917473622713420690342797754927196899527373258219259291666085188966832411787237135319243783992459461947894007068785569232889410283556569073949440910034535251637904890442958739186650645732687521106485612406722219251067531845471781852703812924798171952228885809773123572631825735889682749879149607752338402557589698836958340724009776733819605678918367484992436270305583583409801404192913671856328211734828717949942742714834955675654250719195092450791978373446564421637987826540456516464377474712994276363286452291685450350683901271060930863250935582577383187264486673626416857749615448855813272471602848855051871066048372805447164704930953928033289739189182339865091162534702242635769234214784855811825311026049150213775226406070627469365889134938894472204289607631822166687956923636431695485586260131377188004456823302576710881996532025190106728826064039307087392839612669068245735778575432149906340992517573032388575893365783054649400206418094603036825822257278541580950317397117767985606515783372989201277785266524486412872624204247803991792250765403864893111930539878393336291045816565012729464701678697936893951233213544501638322413598022484045888175927306545563341647274698595950200783884483675801110095455532782076427117269112772485019524899374156499982906261003817195475610550054299528191626958472521558716384334524203340300340353263830147842839218911102991045005083795922120710677681334045242225618534784417171665484452062278251728742095685962352615308733060017663409857605769028335914375683413362560703424725879676969819327921502194290916430568037462301656267571964415294019633343481631373240965500934949498754546394457889243722623672096805756029984594562349732236381619343463040869214152939833019447349172300492631794174485290418479640245512915229046995760007678497047867049088490314898835676927313168088915861138356083197593103198230532049503822373296442492270625477259486500084432213154193070049007509379561097227527877082119942508011496153534127394803187952133713042677034356919110643846834521066067502846311872182006091999660387998934929971127767977095193477881637216942306909573529623742908979657386386922756464794858843346974704124172892825502397110569276731664772056060419362365516028673550862932756362908033189562691293109133914313434489786792234622145514455147098099973649300349350565110707497342062770000293798975792583994421559011174341030584313936738466629862003643135004250187661238757002993501081803690987244621797631462203794697921525539268161738570369166470877712979820515513849394390969605995295331016728607847367061055317821431865990503808788932060344749185752864092976612591226168592480965430835350560028345816435843330366763661781561494460450917815538496625385199906259964246568843728805782871201641507401049943037770567865785778269702886359552841677656362090512300490718217296260887301950892678203588562030759730481230507586040400648998874872819152423481728147279193030909371296629886252798632992187260149789780379329100419430796903248760374032690409376519893250343681348741180554314249714787030544014891735308447450869382032698741450899249437187965993306587771277178207493473396859488707162725902283466824788757592048717306176665353301704741369771636178649153075887381063763368182568188700047567945559134532198698549011787146006103316932385447455325334468195177282352741906628170178394576445753482418057959328972957467202464342830633702281991537522432994747341144607581856335178391385302379429463137840188099999919270368882112770265790409993218651054759588286180614164822355038017586179240838245875340136284706609396007733966464072753117632269421978729392508694999770307664324942392534933729336847963233648974427926884388137605614410778605058325144278497997345417737339532959825268149104927881267790922303502905948423386227381540381533445247036138161873254523809292697847518331329126729253816166958513291984710305755652377467063609444046339289340629733309658948653904423744554406390728201269801373856672903830873538353225018907471703950290731346808203945847457920450731203451449140541818388520764499498738418198552249784451046695203090113521915501100883774418448286781668453108127824088713960980423658896244845439498065157261850194187284615381254638957488870669722620346393937305552570370430615918260227452251996888451500442569194981407519093535114425762900574655335608827899330239552688672931304930202574738671129843142912924827890095433456571492716909813766214070036988479219688725661642304652871465091491602104251300983487808610122319210818068418836515628328902061696832160283921069119028006006634655672733028648896412058197287790129741655121502919251648269766620414243248040099867232730300068195516530031026755673738163462630257343621476769271150774988448918050735047494021444307063145796177537404137653387229997439736919710761002625081989837789552222422641582423858623391322530482440476322416055688307877993281424550367907428070447452537566355890177567262244747259415746601481023942361768544258694512427705791264283176930472418402507101819989351863671856404264240326264266421726630509805446607870576362170025899423452368976800082573473643890003298539384326392394340328819612534828473464081359530743507218215226437613270133516810780792197756000332632390178886677405163276261617180900387640387675695586116321475717748926308304552223962843052382156290645542703225754315598020517552612898303770069164287739963540046092335330607609027166470533604039988626177285789782501477423687794719978737712906091624416014726571078170999705340748705003513062702208600694296838650186972181287895228085370752577600300297402447026896047848302084446191053883508245848813112547643322003162421125757706777515109370708705139363966420205195323033625591482881393440124079130166481049898018021856646272811806462875471676546613678773890251312835290839706966022315528054826773236170097681297742340372740039143538620924658803759927977827305163442233082668046517692991347568269361002682424621437535525475999987536147240253133238797179791923951241513172991831987236445986695130062047921753207432805338946842045340061447423084964497366922459955823833635583247108316238289288629033571705923906760464675207565367099216729365229286873429017786356539198058739086206510927256990627318461655953159201408954731991425742496715131446520001202893551584726927935227738047721637990478543061211005819493934880043843323582227652259892218217602519314210300806948961029859639519047177031658972194609753197940314306687043762937492608267106719961065580855228377321270595061480795562973064455492979024485716543640259263579951433888586876321757284692486121157471752401361691975733451765729607864078817155174810380447447639723214348856481409251614990725118833674520858403842836095166774461002731025127527597139764685944794675634618359681177642081897695839976991678012096631300869622390090940637049190399748840389305102038190520516145990105862086960497748409822754273604954310942665232713829801766234815499111706260095837556051791806499321933831259413873915977269010648990703021273948020449109743021541143655242188401541331547041063385157022953681827434287103048179566325012736093406450259289017568112942652877134341877301669751969833668728737893648684451007677365214152951314891631055846662387324836163761817077378647992226104331463166778873231344886935805025165819481259239794413228761750763840600074018766538164151034340155754526875142169670012441871968155508634775275978041390236119848610080311602335385763603719430341544371914477787489857864724483741238858455902039514062359079713972989492795151595553644322612752119611342131756122434126588682004047926842427292029652482520155637363248743535216759467808378149246079782102905143252195604340617214096550916327184629438425452440715064598114155389623216349389343956989938034319662471818334733881809060563495616328341769886427009068618869124989286506088870931165564753742705491301647586158866841153887110539495152797326257172896278804755114685893338956379291568877327342848056136318058383342613850480824766449449237869971140255791226690180323892404902267829905185195862885691815864691509406490929202842046617108062965361402526330754141789677105566534368104625772481173063761757292172260494641458701958999356298621060305922342390051180685607694459203550838168688559214139473328756521250466495746854923618662872522895185779901079754795684371039279813578243684318563638352201467287526532759317568224213216564833677215773868697903257393662427784738263735558686848121146473499185863586930763488788385443237634215212736736068366189407852747280796503479433358424584254925408433013171373727768888781766680150504090979300780190846675082874721335719564852097494153794298109537114819899217065711225876118500727129843544460644496696806100892547961850684689567430543603370549401959003904497961937070435158491514864241358189931663658544829661323646617819592184688866386760838739788390353548580598420109823464060960934460239871145703343926860389395032965799888269902014809239018480670534031348877861945988176168174268538445862119556939714468060317544400154356042052649723075031277986774733273033965509674493188674789869968936248725587294843029982071023287663411720996996057876754722211615200914429269488160943324235458727784031168049972737957504113156925946466879189647823364831116048964980204965047848544071601875222152221470562086371702926821530502080260212342867040705183012443954924616948706630931759870220307219749519959366817845833793708887121274369524401384065132126453834361798976816614373637918845188974795679752560878401786408495297701674328002866794766386569187684095398205765038536479027142698815707580332831977348390677075112638280074316700557556576768318975154699335697596372980525455406362174475855041569576838404080403584135540795954023093236314145405777684124914823514560193683043554688651735182180240247157352356566903648918852374931495766411275100223295077476398844893442917650343599129636618459224987605661679511724498375551717254545398341095171009177798096024997495012297715247500165558749300246841857348422385547777835796652654691964931186494196165255466775042365719563657964525779258249787554650649900255397569869094434324943253711125527290869177978750814429339558721188836747001714869333424183275750076304831222582680343083892656961357707371382740060657951078208564550045120732375542189946660252445813728118637773998874495225693009964314444705695532971306272072235194828367781134618299454652894265623729226354644180350213560465598404091928400647880167680949091986172084947413667787796315846203951041230854958313518917535864828896128201393188129368777311888714303432008496616189783854964777162845751542472554563811176059308961259691256535966088947829515938003125919721834808323214344793922869424676284636706635008025412109025880555392546161893366579051418807123188122917668300222497001062447819373755373341155499481245918766489601775241862900849240683330877778361161871257487914194461595144171109206953089403288794505742492324298111948290921428304551964297519653325120686812572760700508437373897796768152080193525650815520390245028590661388716656890637597091161550943539263824893068822175020798659136156331375797271080721470751178231201740000103493560540173399517598074713038977872018405160697379480631771527619867428980460995223068900288324310126337845370273286272408961213612420411300343596536447228362175113819073604484061954333498801676911383734025242528735554628637011175132360352734206764228588389514562751422276406238355551995613302106973428639996464002933659612886207124485726276095739376549900100685808804147952991613800182080901902828725297832083155461630114106541720372457469155257985442465091994488598410821192034505028452197840374736863023010875612279260518572236085559233711068821021942472486600341296959393255418680157707893451921693807951812662279013562920486389983613908056282102268143755082099944892566201495070808541896666353566849450280254830558192569074437054814763266199615663111508696377587011797017301076095631910246358822024453027015720210639274077395221368392963538043429970104161737873916248271012275516800352056560621090477782659345994814016826760757143479638458661379189067178049552778686678088709887897880343365836377565210572616310847419077962686609206803043928780866485363416666638650908323470440324202876576751632140135727110143277642899732163848577797387872453381002758683882282912256614594773859172413750063160920129367319327543380364654137658066544992034817960674396699768247207484037282424408891728645404515214838822763692037347394523848671560997077835207231016643640250009919425159304806968498170385206258064459186576165426666369950736539785280291578618332715502445311475163638606779120479648917632529832456603847180192848412022193705430852743973124232402018500689011423547646219079500992545818404465901364369554520439275693232406504621572480208368312578867009155264844328801630762957714464307506847985081791284896017046334061137032817045022132852135213813784646939749556199900782830872109192950915458747779262832163432139699650084382156637645214350009174206257546317741466046449550790427980918997971395359634445616840619360742925948733418920434617300825550243178708982334459171349241127173102112580364598479764875733980272047782761363155548691997784239656017319291832322617946817076676124706610049459189660936787720496842147086615386003234649638578159552269436547109197334784257558029625001083107292340854178480119528353806382522619664420293695308775648499867357176571212594373964393596502031962357791159470629544287990741287273101897634801900467614754427037123122785507860969743797625698778569114847861448298951626660464828139234834327849629167385545811099431995808132719244208122531698082525320601062870900822894311297481083696498893231859485288595508359640331648854065124322319073947199335658461451845178904860532603070996256425377597808812891089889567748188060705515570090744357105672540766471452976567405284896720341953269889613414639533329994764867496526649502357542291144446387276511733043999310176374097327242502962864990383932632536033184591429812497119755701144974610487556452625067430773389292548951151056211576469786809402399494980088265176830725138320246641814999369208408369621083347221143033943843098692042689670239698513222158364074721701104162919357491141247026844725558683824135121609063356414283945409036047026857390913488061618391637264947332166773647624357634434991830872273622669679215175089449522042116675723821452967854341731259427877693742189236247865571461971711531725742548771266119209704037273610703167673267501577296577332576081463250553596392560518473439359074359449321722153544514906493289540415757207201041273818029202880554022169990437220209664734267116820336247989287745192517195506455577146990059254886330000272271032080724392446093810259894112942803273795111036204438851722450517117563761043580913457114539187275497569557856735344275205671937060000836494098745850110578593742671388505490448910319776748826004656196253408482866298763324188368702136137622051731607105395562881414607907595779735268165832923247390751911149942764177135538187319776999089775939280773418081199550836953404439093280890251674955615300040667972705029053672555598585142631892807994627459791505355145688689596883582501289800337953179739138915681500348797824868651033492216099318956636313588359000277638657755474979872709618479084673068474126148969410020374011628914342159918765947595232367083553018155071086180565917653899067252260712724991654932631467262569116527266776452085536796448257492192481534630038123783206021284977059136164756635421239002921361522507299557768149155348101012339073940686872792293513318022868529106001973309004802521536471708161525612431469122610125707749792576128848883705953855984632524200033089859219234979755979243910325099495257534964039540370816585827015742351460475467670135679969958640509670894458294254817274299464760110386995590686688417264615984195966820331243700961740525110183854203412254271850849265119916617564007067451815037412657549424905402987713240847659147494968366333311339800382972591453685957062999784429472562630916659558582156066822155313578533064519410802816032130507491100145731342115133015820814261084071152906272119896046173303648678303961010016671335987137482746678290703525331546174774798190518826438534335759615619957742627138294991440192052793565980415587724058981708286722132848485937509199249392668474422997740490611866665488755404410764144490666502475549720725652700846808537247251382928253302605099751371557177558040057456428395263540984216501171438208387216037186691928568219125723301493228924973732073879763180029066079448787995605092484481633344604275329598457951866257454325538342634869942451037260393173521991614514458167068641479561368884397309940961170993846371340244436962094403416088982512754046602157772348637928484502199822893681101998894530334314193841065824885998159323889060061489939003789174221178529508125909761171132801429715446026921854076763778121696456329204226504438057666268078072539364001140512717990028864590964425536991383164580196424473593139213667761966720304062715026671141617038844284350802767086884681577954958309993758580535763499420371797458424772949345429942367927323845265650477915635909841904703826950632085199804769394665642602313517107411922339893821711117943105858786272848274916600792310525366334953928443900163332265377693999604945646849765684122829597873529192385176707729661155037034436982003886412187009123554879849554673789474423002953177812177218921390576643164607026638620439545110224895127831850347370398786075108222546983089140897838684713892722168209878777479751043697046915903757353496681025732880553037442705524682448848216757322273337416357280355335242970480222289828437295983045271885769879587542502952446419117470663596177024688857118597989784920791672543666686762765311530502853259506496586667140536383733444860170319612433277592819449081495854048951227696926972388603795104471759802059314411365532200349765784650662446343661992765056820678367519275033272568478803977116388090075454655985506068012610845819429252185850415990179059821064113714263539541589686905382963006125795357794439232783349548732774214926139301142103541416718205824672548819827746859231446842898755435138604758369939571165968525821240710763798166883054737721757733664040982914295110198522813969541649618535408748975849981532133419538126475331899720121739619785795826263807761834700320195826374913650810775495869049652032958729291213308612850659476563460005750041385773415106229474196940287522006942301791741146720704954297074513856192228721789472951333099521858756116358039380004887904840336854863869043372114448506040073364754189402095448463985511149780664770402165128222917528234832581051686630288764876585955215404978741066944880348536930265942627588027312255693853421259652690418327689535016065152914551170815757734078257242367233181024349613920741233800359508071406840625540782940012289146473782270455574873561773414370459360540067620872176834077854259152635022599469491943063452707462394823564335489798244205159780543584283826448011696463048396283123849755444196152565954214529547067963625584206526559949234010783607361496136416239590593660196343069346296358116877926419015387819945459828351029784074951886644847503023899890992885374044837448109299631436928494484399895240031940282984741362124951247986452005486159991732806090008664084935666165125881683006436336332370544588441762002847132590103085212752070430647652008396773266458474402446018391508779844795177407613063877333629609544519299144232504741062254824454586818315112067893915385083964415743038032370283809710139537335573231139735090433940323662275181027723225080491570025206051791489813547871487582189760663485300921469288012601990608744541997072580312684670578618331118810308725559438305280082429219274777104833441616877001117574335985824204777160663250772075824040980936207913066579530632300543225606468470157554421697642721023473724686986368825141935808015180413977901784255343870540315703294787150116098061292307006883588774890230303509970605478720921299139523073953698312368525316713420280368330736436827705914641386195497406786131934372696802895294172005944774000234964587622422791665987811478371055053985038227332241340412382916482917745706292529068540911820726298235217441022243607494916750441825876062922493725597589862805095983967097774959229108579883053433203078571011698973282436185193547963695343993828082832288463717208931884133484267054492559663016242852879336386825095007721053990288934590105669627091417982845264470360200292481456797343395381563470488089944447238891015501870301846621370696308057527754314017664256675904063483179409007205807826962302563109992204817980933018494762233611249595871349491298286177798596820193264949059351866437710229269117141968195536740189549311906282938480287725820102723510576492476664219948570825060532829505619499298040181826082014077970104793275940641811573616119915607386090831557777560843340510076324783718001869561151810343606043825565226746042922379553088615997666104036863210040343071312255301533572091683074080531025878342736078986242746001403777118924934730056675892963834838165703703797456944452282119655849977846145438360238325790322950200555990452976292926695874119673868348370502574661025091723435649071018086636848288290000308797304538517315266980165588782871413422662203870194196093962962038198347758843583633662360178063091155549685150306033092830584676653485944393764159857608021955005200671058208015639675594930685934890103103541685949780672023409667075818091551263869033264356571903563292378674064717105496986343037986085814874965941402072529583812705749404328860176006707994848754439737763739347782509481465248535591310084642807236138207391361362620129994418378183977101245689548009720747182028733746905648082032537482285147202327075047777752933230597068573453619533470909158786234420388560312326374702640397767469818107109890287750911462405083805801640181035247907412322729871127716836880825798404023376813124534323517953911099716688707718118605008360598573655645836088546646966419607144368008777741939912683976356998204528110482331965144076303046763647859208960177434760103891214925870263589480847371803189034608186808642877852896232158281426914869719841367114209730853770059889638734739610131334021524540762631426597661124319222404141413903885824314910494948972721710548606497012929050071816668367639267002799185753475215737207571250487013961764005336724227192448942070827406224915832484636597178629583519240506679240198212796085639500798377348220046458256183551891952304606386509718831580374464533677237803473731166223026755413391765219226491635088955032286695543810056058483253060544440624741318226356019760345185795729862770970162530067411398218018182782881808704369610409619673385664493102662896255220976875306871991559027582279826353236383412216658787055975348006552083164808851156010677300543380264072767256806362966561787515162651621457420179256621079509987885644185378928963008347921032549383986914622043760208417109134322090053428076626776914282907140055480701121467869703490990458861683557812366138348990362169586578225685356968228772566656417494545171595273793008069380371580987646202069853461448074630668238773189962481320407967208997274048933501933322548018743759595434749911647827097934651368287898988620356084265446717450553556236809767449093634480948195430094207782694379583477579077053210171185419496900487039728489773409997107161000841054138202528058086905633285447793490915851798025780959719499284946757387931149762931556939486476761734967918273646446751473837238713208785553803059687033592085955114195251802231787920031225878249026943038917546413005834618096673845094428684463602222021986837745570759555883198947321324475370532191300311098666928521600368271134741736378752838849067075313343023468764538244066162029158798117412275621543672482799385038763534506054389236084243197370070333541646391137938970067773195453736223036238201570281122646642114545764889523870265702915527277871930913135157877292565070614560738047215756166865772432186295375425922408356405053217189124524419087722172017364022369685550453471992555051555806165177847480846753883780182754209269823919521946101821212596955787496813786784287477881942166817998633226868889748465931623439001184648956571138883602043892427404101510043864175139802937537809618246887226394233831229196401077241834783669197610254861675373063094585366900287370572059335317195995334111196220592590491306329159692018661944969515190698112089791175475873827710848148547596245534516622604568407449733003792238710329830529920957815562629824422585459506361098654294820911869660960336728941950796928711074819737463416335309316312958471651713021110075752858826549356989464369232817113975189093489192080334216864267876350677624612328735264675890078682646974950614706273935133401058254366112488993069550551576820360341525381641781716705082949644332079597832884926800995071476125398496159827660012943301217880241248662822316250487508815992164231212782056692580861713597705575136112387573685070022311157431720581701827332699759043356029217464468653808684131257120614637645016635613586097049786526341789506197063328111062126598121559525607793088303944223331320480887629589858862141128441777987477318978234115426227487621282744428772145594294870280339111684682890334020815143926262254062012329663102507786938680509553043868936327072165102655957184043395202001314450735961108921073646693743609428722770942180811815887691191286826662252027378068552183347986807715447489197093138999874266604364451763583731144074033754390885025775504917062895209999100636531857290709771060549226793955376655215340500300721422471953415254953124720715958800807403621519979231002409965564031721354528720951046901847372163248569214693382511353634670203198987210140490109768402431867355640696091610659522526844807744764464965865725227482906197491512209075056785793788833215495998609324447531906074397980269400807707828211138376671228924691246673732402551585249185856513769839898324623554377706373263802411986183009189836304227987285112683489949522091618035606737843832373239198801511591364334477160223292159451908852872045017568930320061857868696136561276340925176225017616698156455837554972569521848718444532556483468417148315082602443381493636333983099900478661167765405568294757842501044730980122098169202145795931892687591181464461148970754034400430934129086613314904540690816556419678594833171412634510527704045205454691124374588564055566860269379299451026375304218599027107997954700623919601786420219178139301365333364125327484650788309035572653628996301376553736341899738705061983346936759234709944058041835893904163464111794013604835856035140052191795557999151574379407036274425687121615016068481608934577846668913875706345720848497579396962935774920103388144111059765891216902646663181709696676692588583608464974009001583483134099706183262565452922127553983376631895727086725301978306756228905189159162343256558149502854863948943032147273508786506989410549181580695348746760952140667556584953234910944758499276870509207470619439670760759917515363093584693478867266316762213408055065322016217582599812007537834557327117753592919115265757094781992216857413029766395149781757079218863298818629713729849694343113271732404766198979842742509119094450886652620784440829209763564381740219366951528951366939864991134418137659610613443615592899445378441749241932237094607304776525497476693542435156084169776427310432310152716801568033851841374720668481744245647681845662920800795790105602719677326385341770497030918512512338887806883946379373728944787246130863683866613454008020958578991115039414625142558161064214649945279487349344025367871332288160251959133536875025815002294810088019764241005444213072348784228554145673877843214996566050436556899853104444556911889425795004607822990864410961170057744632505698396931530597604205939943436277869151574274606557303326553696882618190692740276984424597792219898676541938701579787748452297150759967766693301217514786299477685884029442539896408515180551306160221422395270771122662913950357715484664187621268055879007721336495952348172755072499998073254938386487150207962308848915181239849142951400014976617533267255524697493329391320477934761134539469854873228239643688120909811347268285170336030080185969713757333189296431190973882786228413580895845275243557478887573682835530170338137270557973315616598457013513716362710636926957160975490724416653883097437339931947130757817737876034139080851315101331915442578001166526506776569687015027740371331438420118687713345667695830529178793090932225341765409463548448651085211637658393159274838965334979776899249334106868846600961264017989622154250711250756170555512848091196457343603887426044030569111842951577713104868942040356652827800831435655332875383446696722217678222541063588177636554107519041682293941529771911321488158779571074591717410033305610065764358984163744537374320219058751985315100636635219312233828402621577846982888420574651820728665691780341898676781465555118046357826789286567402648471639500623469212532505001075018485495740314434088838394143923721500081374374625954012335977139211885186452858415202645842759232352125353971572806074285537917756805533543221270070527861951963572551363284253801593972725630566161038991525396846330928878145821939518499214524031420548898061146339268427654076381345612894647747152565425715656116923185739818698890724863927843616099014153749981095715120527034872355315080155447961165028696611074040185822302595525722457420673553532786808826011099005094955683096979874113820298975482921386229994680688823674805691922521643558956153391892193914712681930203606798269270844681282475103899267209416924700169930750000528543793605640123984133633814309424552272270973500120031491141384258529240623132360193114748281832359577583713593029096928626649344706431970423328548888575031232341947122635501782100987651261996490579468987554470993760949564576716675805598485023784978820270946431833369952624479852196314659076848976859866501181785377235488399780912037018146117795360603503414125611868429955237106744074706155780534874728784835457767098391175057643946404744742083009283185803304017324061054922154545609826502356094194145055672577230042010701786153012555823048460459512282339607085871450301724509647143111725931281313742836162046242904582536589398079801991038287955431387658787249966462825986520685708951604068805698018841173273041828946355360720146319971491808691710422073761628119804703975346544104360830186042543915536547302866093590769302213642195855538915899837949108817777843471737765966487354000010050481952276421026719138647110452571962597604344998148445998969168659342707773873067447231627498269700636364990274110589527409537792464357610348675911396430994236563699436716656550891754623436807418107145714409682236751317782268307234168461496912237005252823141020285791654001863461230403515400683485664611617882459078732796748825164631040632735215687217414793850483647203464634882627206032240649874837625936173085544127432845602198272515781180190065506612253497545793507519067735248944590455785941284835565708310946512908393142620653035388836777707391343505477712559212296878341767943660536873451061346194632400562834621237910360177383361044759722662573198987215650828982941804938146617851063067439504589964835880797645335206100893280856757718878143003206597277275684869616384316286800140005709560298111124631960575735002872182938699136152389512258453747184847536856375504535815259334750789346999654701224298132568772712668407003131682967994831156942809423578114964461729133309732451384319061196358394544807903554419993292092033926991380523503801759667957484138373342926763974074276508997705810515551830070564737277881071350864460670863254870796229172567847915599155346230216755503648751691352192383850498160026036389561748113207889530380531578641908281064623715416916339965454725992132736359538391748917816536761153427307840123533902955779946779973569742545834082501750010027204852062161456426716360734837344358807302325561204768598005414249572830072311609206211972384234628420309307400462907461838134923965467589937600346488235168933834003959300862420172531433175213900701694814148863291446569917217534635158237137314166906471752365429140898692262744807257884195978950884628495944202475476862176328796129506866629154806579604058533677912934398779980199127941836718555673191793288039909469520222518501902980823665743834135260500895205746782005279465640484797459354555321437639675183596113559834651959436586079860823481722129465716853113587629366149598538705867090217844233051841746009574569587809353262642768253713462089407249703429909915535765486877634751311783334416534409399089832465659578391031199893415158830359399991956950174965160940657130468336708528009678815797903557666360286894971125272345518265873166359201868486188167513466468560277945961891082064030761061296539678742359062684173062114551569557971099328315037363663189070063900020896153813631857799540085092057836730306957277250695826024700552956637495086093817270210218171492427067521139708955215288870551539596441730145674511398117061874573051219678979474481111080236250572887483365758789595829348632532443379539542610313986491331122764790797399969839586301409510600944882846278030602002957708406690193322340951511000668665219544275955491824226102970326198931868420949468887247242932645259079364547301955986465026892371628168591451746113991133294386224636077071419929935274951673070174139846417188451562599568233546550321733212261692362228591710886937544572143204966764450542914381736080615527437349078363256910475848422308239826370059739746561989530456384653805963503359289208880539829561258393755295568905407408448134202122378060860883889414658916132252947192702452869921280936399394156124976939132590755914386859320707623251415793465978488585851586469375358959878566475719476550899268747476277560554042202240562967886493960331292518064745352180136360529467549794716468750539252380024624800531249133199369014241800340262425187131284828653413382929655188935988035268074443612629092574286516431184144780555889374774782609024976661083174894296295005053791371923482471083490208625117218082452845810721491286962771188274509645676000315294879358851026411759577530746241604822419712460133706995468388105319458924688914718417768520621741710799031740658445151347234181449754759105220907363826594918404051087002832067350333327999695194606240891835459989821053868682006020473575467864407650120226943673945886460921740262427645991763227411084146147717588953233524192784507618729399845551013481525597949700071922202988036760830177143397572685774948518731472841533407648677829713049096063163062745123345886633491521774357842602043496044971592690691825408142477273652737105232867482671041178735983046318679400704749366065383494325536113759943388091075662428141634338345833391766524981237782754232293036564568644268234799685253588266796948673239821665581402097271293643348043423591671756200812436165422854526652044307916398023649508509302181360648288275190759415482494780485089851894187925527204416617190990690412787667551505146605781570328246089384416829947755058847444249389567031194884183758424273926927762165481925440358810704530134393044125288410394354834348268378070301351940953745857301371185043883645392170331048918028942874773642396777225288126745644411558439615754304112317646346408623674222343751915684505958544963749642119985066194800920578711730158130412714120367838568378399090706535629899608331295464158842054275174175126283761235041279306762849817727927569168907937620892022962974405473220473073692271194276577121517770033070827539742897272029255954940009684657153192442976988917289537848603266472138733143339986068479507233913199971478667735610860494766533036549791618399900576921240173399260635759398778108380995492221698761709464604838264573037732446739054492601906447361799318675653358622165774456090902111991264980764363447335725874719435254764409263198547817660673576985001987358724816888757705186485054068635140919447602889161273908362861555164620931729989921563752947415770023962376994727152765987235114237110790165286471995381134131570556284312707817458021544040105670013900798229900397468548898919311918489187623199525916532144626859239118986155618096698286993899216468019744463002329448429412111614682753831916221118345540515278107054823744893445920035335501909615215349056986689962581914242371629670149197855769947115774222934002354910461508710794205970510766804505406918150025740973810642887850840633127673756542437803957859315760737634022666284108865752666262986186211996867742590791795313618927328478131317739843686534088699444746189443878344422071025499610033877781032920128062343652478999296731010558311019137334945726988404833786349216766679999113779871317706831392471535641090939897397809310746052396718527252668818282256267818053308672881877642633361405892894673728490707518336108847920010076809755986553096210147147219186133175947530507627024417657299598643706281138533909594635231731931338642723579392457975195572602713639985416446458742569852109027255971987201640936941468259297783841371473089364593296034931645725245582941719747164900251264655967070340686319229196648879415959325567711662110100480265883869679600054624831170370817469842904102768675989661778232677550993134722170639368598463694639402149681338381368863807978626142440046044390698048879116751068551080180545428854862717183946954024640859850165993158409740900708382382630577452899062567255589346892627224734003343935176718340990404868720317657622094844592703063214629589889297378036740981239929608175880867741965730084826607525190098503197305530708438028754486540046094316323806497377140076109427070641111276283680773054018720473483494284038200239082258280856027102113990893073405328132889081753463705776366568844930366595935767989056426642637731711793934803334593099815487448357275378832292319736754763833665018047622233423786058944610485466124824856599005681728055357128016173429316333246803067126361511193390000910460522882805246737446616638616780670804028298510651682674418190774031404182864060813236570082892878874520739654953605154934499999129829323643465702307947977783079660046904587981651576033744617300674196003531152148778996172164279258076807652541081948885919735016387447096993486708192411795588660993478517772109251518871897676345882682692823574652307458545798580907123818097957804862431135826237769850474852348064010998623390428829752596207995366470927950270408368540569587450534413549369494576653959236965949288092798932736088169909659435689999736767242273199114995816056377878080084090336061081803186363004469479363373753875917155981753155192650829966004967854396956217983266280972936796798657220727929384463700992628039883679296470335895275048212048222325622249284332719541596531693502835406392014749212256757743023313698219738645056833178253912294527147380118136924958379548512446835853567903403649543764682541677535939191374246851911654628004506754073093512416070083478228400738547682531900542352856231314426295826297074211409794326377564934726060191633296131391122800813295864846767887134883182193843787814401858445433484484859685866431468827913124242477811617170905457382314168719034121394726197404250186625188691550937851052872815302952925855192835250657599838748666258859685662129557880479813699442843046577759048396137849649613633269384065661943474128024895033252700729737113045103696139017093926818826461628310888486363009091717638903942476233416975499217005559995472214128766061546156521745732126201042215687581043232362816912350394514276549032773700772677443279864954520924833737352759168755447885210810097878427875328309336297560710870199559127719655221375069925432570036786124578856117950552856165224516905093930690473984247675199994986329246274097432624773202451276616230677395565937405270410264911755971432261818924963920987273377540753348036263673733373041130210554346704121312079893847594643640078070687230518406103245007674216632635537076904096254200738355619368831395104400631070925286933542987028521469655914438592052355276598617532745663414532898301385934682887803475177435919877275726168903950057001175214981524198730649004618096577286975708363223675912277750452316552809691021495116076960328291409550430392769467094177466665247151487932063332194237187513947079140526381333246288762113088756255089426126177866982150148114732424230101687160122500280093974575610441058782763483714469538380989696957447366492846227460846025458051994028350737647399105417538585032136352868363653409496850277205354761164294386934260044817358068167204023759518803766683436382854841137484289677700372888316957970359079119379436379323851464447708265913115681534763956902071638111090424389871547079580335074363855514867920884562307161118122206766600080948622086125831858354500780461016882387008849310662088357309996249891276490218510791165578030750087321645222698386063150250369850967256113041910177967467158220655825639553543823085059608736842940517752229556688941585963194000025729802345893148044251596827472227825748727527669032101512028509542926238965249327663697418783132669700978787179083938984118797792733665132553335830992998467383305543407685002949996746972865846693657048607517123485495990733819779688190894039098571733742632567901436266076395100133505068513413397019069107522118181355820314414405560339836064545146931780970388100354465311796960685011722928014688876319496780632599803221065003598751052548246552982887038657562374855486236811725819923847570719824762180051443863277651741561287441466198344587996736500022838397130925821413058383665277913479194278707348277047445591764819619983981252388039765000383836788664042224288890536222486169472111510374625163166412005982094477836282971583837580345358146519669817751101840239729802936091129679891102814741858865229010271894945664357316062461361333643904959693795560993634718597433095021863072868303827687862181127602527900149039692364958241151096065300775389053277321260462210931962389091211918655433501413011225402944310391458252936312041998733118147786284989147530625442214277218260343945679760700311091621763307469659100733869752693460110336680933522434482509664946074472013994157523748709011465299575557035133420215071048581129093761101704669132475394335114727034241800128803443295124074749750477441322709832911807552199995245072689678589419899151347543147529131029787551688707074141952293889585587437425350751900516894186420328625378382432802435529420909274461035933142567940458397637460667153114321211228861194203064906960854307259907074491403744165652430276234184393643522893822450788369563658259803329374295368720614581658984121266208319873747910267433165513150027429054335027711390268740001552670534420136567628692266066883014950614523077930535876966865424378609141037291830598745649600973537835441129395273447421152137837745161087772625634289916050629770375856559005502127736756443235526073762830967475155289715300975495667274582890482218759176293451107418726706463360341582218864863718329472594948524715101184276996454263132075799655252558174781654131005444104573406686429683994583173250359075198758973331801180734399537586433281346896644932394103240290056568492944541537237093347367983098722519881088483755140198809007245284534459062272731430421989306034169461816983777114210434461837943364182482645906210452246476681806165851738549178726972066879056366576185653704650954777870418630391285673212522729235717021394284138639216802338835315350359360295678822809536013742013559712461627120959364362331262875956373510566268606753706698757408518795495308485090839724303069231520356607565353529710243244314206487628695527022347102051624787525019321572354527592326583948658505550004084959621364632222829685078599585927041031865324848746589024427940790107591088134510817125228620001027459060524001503691508229455864477787131180067972865174274358037966434185887504161290076689757783950270334008207423068956282224365707173901426750930123670333601818113898543498066205742619729836133092400264064521950936462091150679228325943630619407330349605145447370568622814578733559400235765500015396401742924033751365354581919610366316937383699654123836661970491272567663538660647368285600191352421132681247500605565116369819935623910962290259408563643026027989352024534792020395392635184864173108217903335171739676620230125334208732587519576512150881695572289506522329820666899141374059331891014478262579351761647543603136934538037722470307210088149809161916805029094527975061449714734299907700816083253290479783359092155611057118222400659711844922383334945969407910692754721258525280081780484607859344958662416168982315259116226672324416479304616774953225476121052683617060994923692954254118185465549129938526073538902374427301613413641375465966764577348720701658074783336090784567497481128800154315714858979364158475984395317879655990013622682201000065402829723658501317831439796576746506919727668156141386201290701040418453946393335718830708479003536476201210276323016026580451135696760993337173336525416555772659792409218076276160065726719851853209336229145232938451310055388972820045903987857465774720804869517239620710557998070553602852866455898432335775864761756957998142652494577381376800521341644336844713756169423466869010082964904607025687852302788936350175289355610816603269417702615375478733591863040847791965409457227207909018762870866509731820817977915669899559358909635252820251886525203470996021093706098716958225487806244268306999208812775542328612178366820558968753861920194478991766415861512094724962362268844807864046311679017738248997272365688358998132507943169739816218073346596708357000281574826684292586310497647358302298042842773587769234275072053010123067571765310484329314935809583496633365576612170123981170097891602472568265323426176071690269833187772976602093494042620938084089580465157054273023353846716025402628477903122711517345538835055579196978057097943156822516885473972423041995788865982710032135996073934296986012983150815388742638728731727991645987474747813436069147403337831893061878477946876811547499428137497068885215653001277369448185379863992350047652809616031739217647066926512190931118754701866275612201154253116921401147377381747874580080471845667419584773655399671626825871142395755034549917323574648135962624845616073677363776261369021012310189404970505610532567447166865478278157465799896028503029411702321435055974737788644854188738887390173846433583741865544647899708088715377108429635014443205643087004263357845086310580257720617994385445618842044241904901243849418181169663035148827466316009810024670235455273461794582856853169237367690173199194110122000648966061822880617002568324745532405700126087435136145736016391205795915445568686718919062240183277735767941916825869720528081459405819143269910830099877133162353827614911977411609947163218415334571608553640393139122999788970334014675307809928183161920800642796101558015544063696899016910714149704495440157878009456671404228335032906146745599421428110224547107361285305885769750384219035411372142810539631015119167044417298839007836329397814937770981744344580443005834865678446126019956103973837937449037932223541175356416383137301960726341069548090853549636940434494043667513124363469128994172171309349862265284447081539364547494706272467909881181623221864099157654791057789182982633505274498236449522399023079087764580527934499306278800264689530623835104650191445690794547524577425568219098254500166149771806786909628620476530593532573319629618220934498443318153763072348866882283764151308954240250730032341993502351898873762227826258998507639485654314646155399085322642972998216904033976088983995201848148455417937855278893047058976808922897568022111587345287931468563872651935463112077319042127697817462613885024778505521659914980770463105249966653706590627377928986016494179742379089529492017461528784706044866763502007570698652759824522702966943198203867416804542990044884850785835162004519736065305172639569223303622587822921071767879786452639002368859259357393825029942811966024009321480551677116277881856988678743730953334973265592515259988034542745220845508344210002422863241286874602340937027219308358307354874864098976921942782529218187924341683491431486183106956181842122942189554368209294563694608260002495089500308626382113834131958454522284080516101163961731423587980926200152894036331727734533978468622038986340058102882964522707076138282822882247319645402689925813977063030213371785250385851867344155011026955803727975015589398229997241128798561693711744195082119002830583827158640231642405939605958238124182029303790423401684264159832338346159184706293425340433344949596475819886417221428990491556991974403080150401368437444102006759154204322953767052951300581679854836691511109984525264124360438949992034139984970707782298451367071803888698905375431912802777078437427721821173249423323367901126439527890205200322898291735877732339812340392343162703560382235166556082560631700524917474718618896910804512077959877699810979158538275638971938949009708848882647979876424928683504553990143233956034204526756172956804397245947790540355539192216249444480620047459103757522693767855295470780708169650490936139564959844049803756484234199236178942198762981735894104567249627786682061137131798847693175827604606287429596870896498472540860623486199419632531917062064738788906058964370471752990681285350191114753495577891165047224771474182119327864807758088136422341088183047111679206048284067932761832540067904263295305901664274200714995494720269637267045749148012259773479362239397347438971203767883852806318681532602916795578292892050736637959711307006977443663973143298684773261617009039916651301006606415655623087119716019609968025387851661771326096711803474813774102767825118379484142386473675761658122185108346421508492098357526336458262028805745724747741111743875300693118508409496308878454189082764434578559414899611355158230956260995578736655486253378662016305795996360572823900596269615787625877616598594736889022160771422081541228755296242590493166922743048404848485378324823448450458128422560564876587534567128400672558757137108346535547009993367434589114833152401210950356078835728952676224609477595418511302878481469146330238237769589993928322099880299494238772993333429025759872137762192647188065404485700113529578101986454837228576666102521461045964577944807816796183394175314311652235306048680209762067143813008029745213489854686994981766123275593484676252490401565676543088440011779219708991011390598323237593748680564828648248858553272057104565865214683770756186814409442432822254882743008466105038225187182594159775003728674242912330591187723382579260245593197506852737014420450795215781556143846964849166983523911301199757611357267966272998678440734054367132761639985148091755273185499487344184640911385862905530361528309560247925871951093915587779358142344591842355698332063225720564196940693935942027419233877483811168181269429520968558457635405646180595420486108734314138108908323490834069481292971678340477530892428458863976554118909982877418638664083284389675312596835567112381878411860381250317607698872742182326831056226633479466188856371284585133934923940470133428806265283053826270663393379536063725733515634742238012926987174514569685315431567584729475628721627931296133267199380980149079175032735934040810976631916258373498535064485573568782186589757725130203039708431768099471692123675195862461219973897328027548171786189685313463060428049201856688666054440662749502542754293536755465466588439876741858451842989615291717621489638177939270398311114817411597918507244355393520518722687736864160013307794986776396327859264471283557741118707984306144828800242953410511907130521965971729534778618688799406080899206187638457850110606150844479437191604729031520030889393582977500454231255652705729797027508778679538673640113825276171320944015878628247990071610957314161278240941799636526787094170341762507780871765716689910149397980349390302440087341477290107021661780479516557842065356917039294614123520679479675831076950505107685279967471307019815278833719687694415228788911863039622938672851348699790713871026083883583711369292549228742713090884927672504155438869866062136799549227492708756818222733854864479747584716945116789132903591119232818962436061938033888049099798731223973489188187957695590502867815484911442720606905341896554428704143499083861961149071440249804329334656853348178628001588696614508781117442374132702870454341819488961987695286448839462892942507410012659730717742363322581141448243980717750062614106118094873712331155630472565948942315933626087065459908758760619776444764714703410997352314156279592543696484846378996764091215899734198152126771040094655334827214165532699757372150503577694995489634774604809726670061345738954258619651676025984024675802923532403896328033129317628108255454519768017570737241837001867035637332594107760819799423166330346477830981253656484333231071372391623130369732126090283546135864024335024448880764328998869698804438092023763286752999367403623377242831611839084255331440125172808287288616407662199280978749013148259744947857029208009723486142056569597074429951967624031141667740095441940849304698860678265977563565856144177375097124214973576738453616125486111236352300260877280658074108590942864924841976500917278738742856236182264762084082071693716266504553203268821041274407973601905360669746739083491459407355949913228919545325816383934771059354299123459623601869644422694027071561990255896717808197352537183158295445911270363976597745347605872030201249693547998714787674722515312372412024523489632516412148109293146916300424547041511062483209760316859025744225293993420591321630674913801628823429807435550826721326447039111771834333773355480198029352761405170889893734844971197867725439957014784095748515736588402807751341031335520256240396985520608208678885412771456606116697237108397345784587025801918162691606097514368754125826654814248655568400861135086964672924591562225277489742567744103194868507724949626898465497420450582458416580569223108047220190962473698881655834628645367208408901224596009334598337921056752624856341374811908850472951822161311767753151901395193614933286786745912207366119894865348058810773007454318864758521873113613370277311584654793963372738561709070634878847126275018793229129163214807993900791713052771974870452532931668044352909562965103053717766878789232974785332636922241272103121054896237904035788521430197865544294385851282724775769609671161258361096417396626860676082263240289059384966048744545610289328314733333978570836364475661752522912889781704395865477584468307609295435045256759013368174239669930455520512894564896840939093483306535251112320577840754486794642019051147619421499496080034114479966403046816771657162257159582783972498171295224898944940850651666875625984483586661237789267856151190851043494547570753741545414829956942557305332775687830858296125288181972034965420046057222603911807092567230790731676793786438504296082695647213728527441904532776766407874180077023998210380754598118309017410869534665911310869926502974318853693926740378378964427503010904910630290167702337520830948491282127104663068033161655978297801899749828375333621400618447815397585116783973667411393802298358336623155386554804872559866196590883138617632244722832680235809387333985716034502209135881899537879422810413718068715802310234594061551421659080486358378510791307901359619022131873618923587706459038735815816745848906783760955591725338664381731374952219939540745568501587639632729069720060159249325836171544180615465319763385967358990680166146539868477635631573960661384306732620087959676618036751026180368738597069481047642438194974745955853625847278533113449471395272005893542347814991821032286859973819049614700812846097809912190545301667831059815392054383496197413125025554109881137822199783031227257561032384114989513960072370671764601004097174445228846443080947354475598534877582650932156856247378003005478862100056005949320482028978827571575623770907781490206181505229942331652771601774338611669738271397199644434559801107844171756088528811829214868545919158153211492709288515897836843310243963327091388398391212173521078800116745472553669273133053683292010593432047471978748907434092530939903085656225018927034454662002867157406936849076603357346897083003725494616453285557541281475546036700049489081908557963788742285002548816744729255443010814707831641585210887784573440463218049563619104285418614044116469699181960560157999791203181409534048414658191169705070689524393344031640240225032458857505573046767593939606212890101834539364712002486191425934731440263858482823608660283904899239704495349204687488029084463255955643144876228797574696556948914044522912131540999259951484881660423693895183159350105402948884619194058165060618079624411411447542737571897793926354251656963944076633119411786780986545990135826167728203564021529092637135808347062954036500592603516474206955979581114161675498454102684579240829364159031832615173849900056089884912607710247769116220047148695213500683456807168461734037751937970997890636582304137742647554935049917297926443913221106274620844891134438114468847642975746758604603028267018086495163579145915310800708290882614295031515187554392379677068873774494123800851838793440446037895010213498935784266967298789556532559557882095286737969236727089246749458924844671696151380913028374154816080467236157924797876438630956171407281172812413972203840881921773384176498597435775517272799828193633745135543790407728680164662387532246701315728832716408911606486110412020847375346968616556508134133171380389497949030281099846476536716406467352486017766107097770323529899351424588656056497044844652400211946017739782723513319724408415168542292670090162033236869227202873484933211894453974183757591489743098520272282660634388102448496169808557133132843116325539893840766540420667199021679193286899911033773033175104977501252967845924447282159779973198796774893217947403893248767732033811324750262723031345085584539978956747416861958653377282756932193586200992165207165095841037191873452360688998292288597706443570896677416965613883324226295733073853966950068135812395762509933877350855449319484664905521740883831943508215870799547113382604302339446978779814134460526692966112003146829832543143649054182361783701068710641862771573302332860240231794101379994715367900396924051700602870582737635361367751016658027941621106226177217874685662600663623335619052548965983544974730912320178266871233036213262712869561723754486014353432723200437383773578346380583379495429690062876515403145327890173351807103583881594722160142955784682418449250247474962707109638872366971151359283636748326286693471710491077618945685092855068300382180721141889102433852417042877176179163122801949472567125645660758822887298632426639442127845073409326340009015406013038116594591394331094906456742539400315711314071063340228129924697799289075065340952114482401180779567195467443335591877144753520832674250995771082968722938783184935845150948794830445395515653111896789052744117780700085295046136401323319130041414891898413390375374051610276207065057233613480309199719620895211692103712085496634504531746479837126623393751482128921612511478315396158864204564002790089955990244602568691670796731039447731674892267893235205560244264226945471483665693032137391584821127863318494414554187244635027006687882329415736194336396915774353096933677273852373443849725966685449837472246319487633492423061700392143740748285814914973763220795468130376753927551269796170751072168594010941468800926362882960883065398350496715913124655154837067463394941794316086448242213063448096917571016772188937846502618996014838884456530738841315051535005545278330730408697812028811818895596142182632827864200445598545234187041870204312061386660136387076802955343235166922109317408158636199742214100562039927605179221617793047870062617843314021518309446582956021685391408665362539254180482638923987335192813383412755020028664461033859532713106333821337836414377659887644523245515957452550657280899343469288118128438865883387608883925252698422447508677246753926725631392341988911441204398408986972978057646365369862651031086947731843674948065736278531857978709288030451879890619098789684917587140712995096658207611923071065446501534616732836732363603835277490944710760640816341106010348890811838968158700488562712285354167112783538296906224522561526794854456116250026264042995970725248853358812914022994679489103138595960797468888659933241328135054578813166586415710589996195269639285851791704117146897900591550184105576661682960212865291319317027448451909373958966216647831868320352469173971512806084108761215704911797662371700334428298375850390329282512813645320363389998140233538358960578572061788560593882301296699759043965648591039861571992682012705784896439925852860989950236211227371347088116880129972593745692457795889379199595647848981234575134311973405522807902652589093432786392512979550785462323809399213879532553351221600251721722353326201850316034988838229365073784934225777838580094804023631139572295270053330871115309473228366443253196340621451164645960819892510600096689271729360358447237880027511726636322345436381893158217966508983783806404340828672005597556811812059253166487601454994133015545891499915057441680096332033629802538470427894915359702771234682383645623490173098607106070079437809102160942234546359363647731076164005889209557770724901135112292739400359939821470838493954415178675455949794423000428864888728622324401493119147719186873657501967426295065511308005832229296910354903620161154281068624354391230394140516179790562385277318709218204724710782149492952841419661924766203177500660804789612287578665038710529289269346360613984100527593099873568288733863304536354478531411453147108491585239262777728620725732233452381701887497529937942633019281139952829958478078747488691301785916180527700895338574393671411616562862344291198734173517507199025919407128547101127877642566174594316690081394210629861281102267341895400964323491350793566798085245263944199877539543146963202756645996675613447755408953541518521225983956403343746199097731837230256768176659732705296752209856475672044870367233394658500593352727872045080482890175462158119672092461695666926728156649539030192412872291923973461295950484645172261067580388418513469781041037962155963093270851500281162615177900549960338160787879550268404700572220898058415670968632132261462658791936106995665013348990647552858028838270244295455019485727926740229778685450587519118108050920405826689690339258826451960293922653156215138970853223569622297152041867809361894316338368924684888189577049816778725150490967598628066596507026171748441959964987910732672931189727000501984997285886722160585798999217217060757632981401213092781905757207915928741468192616016299761457270515309728554590680670308522153876219676518740186871021830993338249976891917672768298344744759837492833185846364381205320644205383515106035039271635762691265604365183683087474532460644044118979665602376354716684762983109241258982948395510985550436208464961812670327959185873805258068885815166563242749900233386645409367491909383182899702566293337111639642877728648386322000425814022831953191014552047473423414405716828677206686127310022065370774599846213163500077101628266778999379361813790005376996241804347330329108729387288150633760108383898023964700266075042736824801774423912776366782773493587277415439241890015219474914352920483764123631022907955410926115673361681790600708858462560354790022213497566010723021447701543954240070563414570493292134473223090648313995199386697611874462775032687052957854957062466348027015270899069727648350781377072437281219999679147111235066523907569068919802147856348593002715004517923282187113123718647693311425801018876866812304317992104020778409985786746929870820271191770857650960594670657756641844980681229248551705566158945442287568925770371132283077147262290813098439964241638473591903578714008377962052599531937821626060621712471125614942453854440918462527363296705600785407623387506140506043336546992437690662408212492706458055393385582421052016848115987480543316802882349262680703205753347728324658195170468656531845935242063230393124025626558165251078650397148240863573006388877844017724976547418854797426853320451901685405553829225804280083729501126938657485223958192220317608690825037858866328575117015562866070882289365698696532798908959176639479839024044900472124335719590703086812900202988317264363181578967805993509576230081973050566739844014238344486478904426775642674531941228617203808420311391680397696456509486160249956079861669109048430320391641090312360058375166383092460237390067790877405412267571649412019670441399197677788861110458257639695491749976637673668516844337220080978704180466087052543968586372902619350251137255364030680238414212243055324050575450987153930993749866743393803746878689322183569201996383194464224671937827880330366917060331191932822639046659681048016316375266389671501881482186187741983317211114918549680656094804840604660625081659234375731275316883138305459755378595474700773840232571435058985956117408826148964270911059932591538072857269220190369700502498775294993815827420693158567783155370053415406649906529987719619688291745612147206979751378254117687064633539287847312468936116820146882892880617527698841801821583399212525306039670004650982843967308126418064128836961007754052512685345557081273854619538630376358722710093823179030333886189547472750652339582815696810063267861808410186515562789654279437731722972568268677631674961708122431284833140153764672644818592499088819326202847946020039315418732744514539492360466390177303641580613788065318418445569249130405514202086924066054235268892718154528776157353208423104695162156063432511512842960367526977965741103990880328058159950426173659164247686959666348206829676956372697347646981482440772359779435707695193493353111062031622174015660433370567279680816888413458701996306140593015379212521342522748147290168038434355258202276783963680825594155765869598903230128533397797987349753780242147419555752251103223213427204153731754044809313241354053139368001712526163416654182354468089237624455507508736202436724679534106831275950473312806720520924088159561985045897757940622663796846004690543901586888281437419774777578235642884665264484530629295013074953992869117233679919138100112731512368777119143109366511788039736944214844011271233008453446180644114065612770372601593779520544776398974511016563806028998018773320125923771623469855834970977093425044488182321875802615958029065109721171014172526742362030595257809727113129317733041694538947820542570180646481778766374035518029905179951061268312881126602438344447143191064828025497470185568563778826273528595784899903491181433977604735271554737886169606842621721278626124386720989134715013852866420036089560593127023235675569088064784900805507109791838324859251629224260782583812531026630710591134002131920099954023723760053746694710592380734780071602927103347912086680670114558647992273687178633219787581346729336202336681572037891955734727684711208881253456794764992143559880531427078477131844117155616336450999830689144554552654459535335650576920663062161728754417943354233748272132134164895190488301884336659895863474928232153943226593754784239787494687679999436323814460047708350347523974232911290778999529715056039945275231436571976947974448443622452792612708299032199400100436186303959496869429487684021191444700382703129162168685555217260773666477882200420619965206291899205999780869950481316596281712890367510007615568871260655537666736418932227862690939007762759538479611997685458575108802315927448756908636694144359346980576607064009742846398300725425058036308474274000072091470386059027187155975067292822395870022257128826611478916281186420258854397830869817961763750265642750886308009527085841066351195380309867789804838980245123434534354222393465528793063817549882493380078901441391610049941822863759970692292190609398996049047018483111478471042306883675399074943699932765478872830152091157590470158436024462620994127712525335770385133365319954453111157276019328503643863463599332851759539491724105745040473434403829899628510341263886829559070981117276453711831814280570944238081888300736346283205150308710362198233785119349332846982455444248885090426455565028783641128231443635436841582806505515861140938798846433611838207139111051853517510200797210585308989541921470575599052142605242636933235506574260235020730078779041190875711123550254920193838969863017755139349229207062378204531365340103996301654993358724248401480511786125913062736075383979226735149772319023286274720784811612778114193575197002497471253391867908725518517471713602774634741347180467173083752548430309252088484050239771340373912847059506600550796142049461318169592849220229298464449154537181333303379766220698682813644903950358168721191851950278776751890460770249401459569202815818803289797046139895553331549270428196414722086561515245459599650615155094902238800939681587389140680382472046408262573288991398930882567858408590865098123758785034412506102027175485277909244814198694044313001016097089864169503983734173796097653977405223458039296176913333634689417967808139133173291867409094984252655564355170578251515136601373569446751130292868066661637350744628980130221073137547299741979601798751329516496012277467407905044515793433179049879988133101888525540584613472632464703115118236644245447143210695387126387113993292820227616979855293079226682871815867342631196497664363102579168303782231818570824784234480180620683796952986516441442889407739210657603764959154097909763687685655466966984878453137398579891667667012620811498437524748050183366177896326828947380484854709530180416075987138252567304634867867009416919543295328841610780872387648071663114063778547105018849983052102296486427525147395847371192545009030518581727567269602877366628784927705770847780373653092235795970094989633559827675887239426779700465388787092307553545446656563492582324115692107784275367952792740843432730357966768520101315933656913233630832384169150617827568394612740102231157021768413684813342705997764295210484126958120814800707033776434343972141643655675395291911660294018031097712543524730026617278719274596361895448727494284586198108665013574136273357108393022935944065158482711159770005571300210365899713698467193433981784446698784230391420244866589196438145872591248171975342066294680949680736204595962037998324733865061280510053257768548923430755189418140616955547325557641622773762798186588795547658882325885284622898491574206822212540300979356977440832947848733473894572337426226939097330483221023755743699367299683484909309690871608616905414241285956735084558366414052234399221034647008861282299789752182668141001919019605614861369258591774862738912991162892781730645598819558807607056326151411711962112019153967032984477285972403133725149405176494027010791036108855306708811805308840062203563699844916498004072657804872783642841755934795181387950741975111190800831092724850562705497076258282397273938724287290009434389468671836351096295963659660230053959864710644077796774298366180287244399043126352712659980631988537400545112071432703096982947619730800472272356104313485112127470910347850492250969339877225078353954281785978894593510938451895309777432805123818854232727926702493315271120359368838360388569137016550875696126271880978820258675632146054692646591049823003668378073683375325386808009872652491426638034045808820665358092337619478568769672715068591559406453578408395599949830198761277230569516645312221404928022343140568993190261397122403709988056108732626303318272694968017223203237034137962274190138293117852690917099403381501610184263151773422422796117105781175050923776753092937434922964125913134676702692735922176085022518759138122887908716891957418219570580642868010569857483900485308486971758670229366923821646395000865362581887673313209535827988136354745979414529757144289316585756827223475271322438962023767939776574872010848943089836369305580140608002226231176739294636011976428896931919706388117465703634266329420357935567155461243290880165811297594808117931807238510426704775602757638792700381187301502505626808685085418163920622875576442562002976802328335430326709647790462830987748756928848987842251250806936103145616248973512069158816519075976994523698664413471974051359836691407290118880659412160464766947775484214620441213575219427927092503013444072536359510452811332326969824743290369905087783613559606821012207032764257411213024127379154911344036103189129147006032853637134063221941243616255238369218590173636425175167387645529153560495711982733639029863966224037774640239661495784914814279944245091177678815001449687309499057144783741655955439186245668832521508336128555154475348637170354777525249023872364293439184489283342027446172573391265739752666791499435968826387854017186743411555105462839786322855005122288000490047894130595678218440731797568430510174508380212451834513630070328672008616425150683238874012108103144611617982578785414486570619303307689994040544142766122522794278627497795674533934473933051992696255090952225805292625727261778598536450228537507780851505497320198595285281846541973559720166305665270225016611505321951593075546560398026601347115985858343163226104194616573169781899935216634447217028294212684676215595266082187489260682390747337088943458162067646135308215213503342683128749123394180850977033037681918046642825696407481671149906351205749268800944996229181415735810981245120028769820865059813978152262339175551003018298702860747317016393994258975545145664332536524831583129731670250228117456798319187670424525348165023798106776483876518301631436357726214884657936433299016964077588815332998138172027205500748054260596325032042995700077466362598696595263376940566354308254160578640811148101903307968959450586467103282330994760034564353761026025386293633106462472162193427663797745078955713721152254833862370072512934000611024454368324800504022262719423802525751682994612596973573475943772018486652432908445930861151746604359998391655894430663387608210724995648015210848601231708328410546727152623803855266101776060813161513768376669079640760620312226675886926116477930733765628806509002815899012487272638180924193962575727191687255096332595226806327807573075609450537071312772874020128380413349897075059571024179065785480642173127054672683528231686652658875602738345254407709266943635538472788264773195926617804733050512167159127705384916948703378604596572787861806932916625451658714011140492238060013912915801436268411076810534608869802367625181947511366587078331082018513678917725183013110253991371905560690743964108448586337087296773488214454635892771748579219137397127721558150790179289764120464088581313309893218568709362570267018583960887507180090042323449194785840094309251813241598480289777083530142297713617783832979972885139571861152133085615318135894436858537608672766238243833447384477313247354837599918929718639364151771757649664347445615146888582542334589887342944234842963495014090626473366207418074251637944552744133201086158359543902439586476388170928125160179657404239593939119921202043229218476858379403651197604323371771375904239838411907523396920499426869099542142417380674154917519535030956366093076447224471970294426459963419460538035075230232526929687582005774828488818703409101069422161340137176032974324115726070980413389527003279880327668769304760805141322506386362928519604271395725700561233288649120678753405609104412939701395440482849966268072419488455802215563301457936876207148320585355761453986735054833729889865952231984569267300455634070216028415028434668224298313006955457948406875011356439230422285977446340582086422593232488987413480242297116159807220666010912217980351138734188174149357174191527847940060996431467643250618067581276772881612265604703446869057901815524341271273228393115921747991615680350094455970572634275235050276726487118748895660995961903895940283302686793381494324430795605567018728897040079355842189164023902275818696070730263286897524608242530439921627331580938748720492969319260643559094049078969829331518910260070979270782567922180679201705382110561247435333223268190631848286188858680550028780263423492841762404158384397551874709140827973527787424925040246444250089789099275542631826994005894923207301228064276039778280011391134831685420501677624439528360153080188496407566519411709465362222736966380278170287277378502829698743859982945154967032000050191063152383664520310965971604576714504929610989219728112528868889392166711800662766571504934869461321903443690360711297723850351318626670322160691820336466191786414997547115076180075564224379679728391277025662710191384794747783757742579470880433122836631416728126031029864117319908943807331513477687133694395458057125347375425818639205355496765008862368493392726612563532762882325921223623795697303168445539970077881962046551065260439112272027954625114263690902021351441102751336158343201789441094063062435491116514946996663392418083740204137307262612221930571937872221977829186171461962066231658735550613068481865841244236128891185762697935994710620348107921256823719851888233030504922540657877846459365881715192342425393194710293572036707297078181679634852570340914398096135502584448981070159172707258822985041608215547015091991712491795401033224002622033460066179801073434616844808727766296094998300036517479174899156036320931536752793329982709597204195009734290501961123769731466593497253256827116380948226895528625274995846170689334368284140600096438107330137459767525382005353057709321558004066289570003509854481344764716625833483862346667561154800692760542994642756697315349338552228080737314992709135013060076659281583063227742872929436659428549352852126297424405419741161207845699138350634823172879628719725120531109593158172190974991347075889805140990967385126977613372490816576643595125357715707152032772253975779813187302697576480904322465607745111737559062217374171448797400682127122279254757708793406577726008343093318384727555389469788854622629570065230673742241039487271574225911909357551212774172394289188653731430004235252669224500712744618903667331303824989767125738613250998833779830568403953991934609405309067474325594640718201224991958030585574920032554624024931946159402925010863953375500411823298875288201241067246050338485739403478561176803985583323019320909467314453418572204439227258616991259666055926879967846764023303552966969373725142288192821875203991114280259722695310703426041682760490086557117391424521490916238493023066268191258287056426375194736074577140008401856461395272275754129317603783337612273145764260913471603563928008147205990485237490639799434159283561220131052106476701620386644347198041987838173104455811920393149991991943739856152302692124316753535596900117016689489818533792185160104602583045068814588130460565306654581493815130900670384661250229090790608239659062459692161940372012488442177185581531098762618002150810027173046095640710027934725202045248804387631044721592668523278586645509712346728489885015457015846747876046886805201305068844264279576108837433424002770773654613886784945667531590714494633210965037680936871449738132885651538218248503101507019977700740514199388939649448403469940116011768411900621632721787438208138147715106895052791933098552758453010365693628509038074810314604022995110677071412767902932389457314661144337214296957930649593270826884426100665471230066440703821309028297444641226124017408193301423973239951355184365090785486393198739514678730230059257194775203404735180672206925671356220256417776040328793973958310872414997794355138470938826003374735465821269933875377573227690823648471906008308650538346340704605765862493765821082481819085110283580961507407094872201680748840997429320587867496475145251880288158040821057536561733120846851577996384442742523831514124581268909397362659333940561649381284881272076914006574619415989431790379108928830760070711627157334746919558087612293624350381696548349004783171435324394297323167638389548651547828474509842975281836880065143879085239953805799482505478660426667540793413296474982742393792072567375059778339918350706523523463681623658350507554091098370466892604499042157902692839074747760084945109332321320034390880957640884831863777983861888203076104782265558177754209330025640907227398957104569511790450192192659905156116877920961708765836440480857646907635665144513279664713253012575504736732834120207412036081076715464115416383267703213185843871517658828008128689299325888696081280102806422962276459807655426590429694828750705959528703547660808836095419903959037130383784699132390570508439143466883718271715486608414528885160718691311901748677164735820516042085368762598645265839596272178604964755067582169235966820968060285434496007147095813507840851773715076561954281790719329489348007386549778853711986200912507337565407241320670229311200874129747442420445463038024559506543209548889438275657908208938809081998284886148445312260720299672034504610984661247275407733790020365595833894377215354382445757323573953140422696445480068688649087718346355128219333372579089906709199875395875201171634077336311955224496686381182473972025983901977859690433174911460408728578145092641964311151122849896789151240607503465373530961619213094599466727235739293774155864705263799404845133010921729348708031426491065337785783139553962508308576308945163762572035993288590647059641784470664888364759032858371684860646739036083182656180049796838003826798540142835327001366681215977028550566421691567749107971303142631613692914853106767083634762040028470744013141895062253845091122177181086218825647979925553856760119391206670652758846695475457039963664645568956549351346851059908539580301860251733986653790794860852190035320031520733977994943418417949787903275694992244959793426917790692491426255988143492326251092659677013781801522382314982404051190876058496664462312199995472057925173072866607175673292775419577701419676053478408793758586862340459774217129176155556538663379852011894150504182974620135825954860831761602000032778130056032929866936450251670529605887204546594508312937546501988278200176459616328652904283664977127497438880735080612460921800471155933261068336235289468599288515216041821577932683315503488582589868149133958636202202164957850400786436278854846257838155654269653744431350043078323271977493790063331540210921190759379505421938272666615448432705577880555888097322285377292315486121708779542008204707423594921410448253819081707025825319375914890438984536438866761215288576255742029907965635482444147820961642031467934326444048066802552743283091044633154087896559303699731978618774965724857216581369822410556743301237456411668413753801353801649877849823165323090844749088486020380040929116018395824485769258960589847577142415925079100560750490180525217380052523657428657453668551239967621738337146307438193225255906155892714145711074302933807531793161125406763650387087833661004093856457194264084094212429132447235503114715536616039021462226982759890908206253581730155174651736719616185082251358277516449386575373128224140172054537188214764024095320557773432962569505266806247672023394928288252106087679450828462846552516816974302190742572234479666776183083808522589646972530441422845822328657478129157667018108826961998573230987538074841700721528712182349349538479758160508575178286048893827183549026442315117415701988087991289891061436077801690704178232280642425297429036276310176562402730826288191678397874165943781237625575134683218842016716965802743487966176426034522596096555568350616552675445632673808563619299284416291081557094999759047630875834412223043826219285658576794725232305119170278290445391911649911233717829469562062793303753002948528595579341065584890682145705750672261233488212507685862514928330766753792330851195611412378027085100647641291750182300862243473925026596530172088303017809381924720314766160337495007754647904269753321886610412515917681746024064364604095393533172417549812841206313309314093627479662251009860136562746933949288045018382738448413216058356746387134869574958044178901511667998791829492237693811800332517382511480635783414262019701282808679883378122775561854388545801917162562125188858905281521162629845923078047976936224543647694702250420804726985490767036941083690340344792287257860702945317493485793035087309226134448786190630766327938539613312370046694751387950797791423961070073747740228008644374371226744568165319829135387729678641375299686886527344280415250884852853092217672157467262264324065024129651417520502811722466668947557318543223537130608040825050203540905343122590692640723996977176073987205757166523402927187930080178216209794174080358960315704537551220226488851008841350137450183867000443926859986082538210869156074683154956047391959000975510477333028979638162775776150738979482985762363794966298932412126639004734275675932991679121387145018573430422196708390103997298028832537357151151311833179477775698290697709399438961178078988398118240846333117090053995178239778639362693601947433273881089328491750852991140868489171969316422082023800665963352905698652616168709107627683790456381664077198386984879975812928305382927681209360407186967654017209396722213733062518948088423499239423163961425087632216795990134847264862377800361116268147845640120226889245933682931265531586073931209567199260108263110787678023714562560283281107047531997519067590295388174587164632985756255430766314036210845908916267566516559022035866341471637420568180292954368416132480959061750014816042040417206466426430558203518698918690388679305813164781597780576343094211958755733751289334871880258835155553341875951125976237963094603022365596720810744615142641984058967138569454943624314952184335194471761256992696453904508013919785392721441385622280625973970684411758750328989101017494362416903472338041431715448999346531115281701734516185470848739519031854828078818443500599043581698772960864961963559141625667316002205910953661532583850970293277096408599320930269036958152082801585926906409146965600538047672419433542936313728705315695427533401734354557572344966137953624329939524013696105957652137390287177914207883796427944746932118125441387328137048814752063798249468675317393816802096239541762092074967159903263455405992128595911774226856621949919894585440900764696240114761031105992891944603578980371941721439173813622541027555223542787750692829795734495651713425442763896400283869201995150551134284160029325819278341211498668739661100754463531761973125828441112386150204391068324383320972094498542954365635208698057774746876791104559447377914241194624763464295484684453430140233021705942741383825369502364096615338875707286131519828296455888853454896269542681549873723497384161191633614569612761409742798818463223406311637536780724707372284575067596566347342912905682074783380570700584176655836059805564425367924066233193522378885879156482533604189329778510214129157666788833620054485156590560963645774341689690225221692017612769164562578576253093597261092273409029749291574378495387775195299751322976886166029198344055065761871311798535329553870591161128460064820950241334724200895318194229820051605939755043162167383084009936902306731832814460428915528419469153320232486348966182051325746278130382497389669155791015200928814803841495854574990034708999272550758649435582035342703664652387265058051833234871879841571911840684737351278238578984725876614547889218616152538299410300538684794117737265602177985176983619759191346121607019209624971941501990218171983207562884788745056898233565733511997717290629387449543272399751058611239221576505939119487123394232332069240574677547815630694127058782693156861947563531841925328003825056009836141875030056203973000356024557308051879824493431095344308950763518252213449134368204351455318927690049371982133162179378002598192745754751905682026929678270974873080779150933236990697128980145795357668377446028863186617793099655958428742891869679591560325024560753079839456858054412065862727872662005774584523107030594617418452317912390840693004712849415406018679744859799555174382694901100020883689196941735424438537884048232649917655347995187352846534904454061215092069679338819739787827487777798124343406584703380384406261782627079055137947902791974861263077430224162105566737839020177471417103879115912395380047309732803643367249874281583175319061141170933249630308209109814156867576754688875023120943743781810931387748098684438513343377746544199969350248126600061912104984847999979089821231753515523027075141683255542884094828313604261559081275988437634460327271882804693687551751405544848933689354052368193539133300616894824485530880336367168222732399075411577652631144628447343269635757912620179954307577137132863451691697134359035703316063794511469315342098614320864796183751716694344053610288308951562478864347817867903592426915623589902915118434262110927161050591611313498319653849273388786032546467661177216763741386069433226324721259698957137058201104927786973700795396696934899310067577937361178412081624350079295390322811005647670864183837002835157862720009698730065974878238593536769431300507165709043352189873173055139551398818477539684679304860473916391209978727980632637956818157313044769274038487637938583063145266447997077312220525297902114080808331075880174571583771114991629655049587960616583922154591632371075330368185501462799568606938296882344901398613394514298423767632235371341168731606801875712332944921207672917532797974950134247561790618736762222757916614839871820147316877900847601453948652596681136382228946694338537266138827119028393326662630084506672759869394072520756646695075261751890283986098575728307244619213045145000859936979032335887843998377756483968799994018121971278764201047916526780395568895309391091437013195057223701370331648989278042976032962518249315598989655871989583711868569261750317958953412027450456780162863707890192849862732633493465337038656796771167410962231865705905450132769821027293652845285970677523246635965322919516580302760523498749204368937968765649591097147050754145348979706173912933069996333551212887767091494838072260576258824954888461984742494372212538846980029423658803525412721953641928887299965877679322756608665980678697057913786343755452327714087837457310944797411212007953077996525952149386075358351731655331460577982685000749991724087915705307420649740300368449777185755912857759693599940086760947329616385076842667833864942308828389622045921465742363080276287012041076135491169384203907937675357228683067923346314812512871929104234365504036506832767376886224529656077163186432161109103717449914794451126570551375462658261673256884004217749617062879228840662557898562210611666887660678292904442758368593821079408095655894096461621070649544189411811767270976359425878566234014031688207122835455616351380346801088486630707571302752009782521710325045248050006955950927275206830837531784974196986371364941219733899416921289096369190449355437667710306035408822816689994435671832043577588695121028153456109061281847328899966070730608621039415783092144850469417837162224656438426796569264471314501488153939008497967154231358552394927002493515765883091665898906159650600509808966919251249292490430624375833860926103209197980359100482964230863557442923416945017726768351462250567764571249204990631629408998383888067774977737704994382925697591433639134646132753692411550711680256733302651700109629545282702289387271758322618141629495415955221235851920171537648703653881192396032517679759911885631390635222000537776950778588197283425127444679163869712197376995046269345090066571005653809786028862813827867475138647480023821987792460868745048157081997684042908973041725907875856586815633570073005989605800611426950452910805943050810505837214674670401361733355693028478776925652848699582187725270920842466702999846078955278753840140809199589854443138941483907362555450518416116237875707938887762281445939940107217921265100450046555920906068337495013125644224320356218180411769115740745713872076821560959510483456615791070465268742001389767626459377997928807220609120911959766896597790404142221478653934192801412741273938227799901584976794014376116398438024693218789749541858291394601119793511682855996502561664575778376530881677579037965109299986481262416091319671188770496840178408369591428728234747284318415235546645053005226726472909348467396513761607926830393698804526992046899641746945897225974296685668155803680316732383658536939868107683462310503309887763666751046785277849191955023038420250303658922339275051336583008467001595599226508101034793299546188579171572982234752089499143392992513425916302320913201692209683213234769083957981139382042143688506805866592223353872403583244145350733585969285095590201461545399024747900361615962212302464861919523639755142424498511857799331425841157529834093720034374172872376704991025794603504333542853010435083403600226096861202925417953081252604787896692865048539088099367038894768473848710400953121103057440555072214182195040482897954953638611533871454241378191965321064639096869347896256595320659163967821553194458387879126922980980488870094976253993292685151112873310511280549450763807376401578946667733841916485637133111603202445690782189196643603466833349220169958927779658391672267097159061315333899394500655011489095597080752842403277489582950442743163708105866649018757217387889574549201984170381628959631660243612789105610485404414838142660444859402687455429806514964003314254403909164946883073253114436467898629802903452667254984526017135230942349844614320565805169636652142218114401433753290894512900494315560193048005179995832842933014233401880830903816988096562981345944516468475655546577526626873756037915773834201024664626657497241710966639496440469277808745399770130458085352662615127054823223355310549045840113701693972192358029894904478606614394231996151788769825451971792496236950459877382419630933877077009454197492225336996778578273426083038576118732301772836903776281564774010386248333542596835932421653680801798688124388348340024182812730266023895674502154208876358929927166587797866750660890856445983993825952578785360604043723228723822899288270314412714618524964793200503672606838893162809914040035990094712820976936090378577152369984359515252527075404039204186270162821098584887753010807534598735268069853452234143080909445456969473724578988234587326737177617025865496994010986102378835207450912309095784488897851936687829814881564451115840264196571631343954683968548864280397690990057345653317797620735093075067295863148449854488027916034450139566323317110145519230390446535250447662171026910248700381463524848525418034626075561133742146471013826741494196409278392019584318115107503352274033488747815106188191959353596370966680744609531376664602670607248609275371572987596190688213193623488540328891814034164472474158386148786076204737748319783526814607245005209202260771347975655619876834228243093724608314148852239758806128081660296186420955082986534288824098889346994628039853553426277803431050373377942447137290222503345347247209668351343546871509798267310501258212115225085225097203255637715773083486218037507760278034490329686752135730522779903241285636099733757475632491105712470378099928292888672018783809937242783465581889953260983534111398457681389233840418875137143840156602586879815564939335397930187724037092687699937329783539849518399101320977273033816624443740696097101998784596572159873871067702330296283653468390918316269151307521844076835705518731101395662864823171345230706792044661679826822969313898612727748418538439465479828340544685381182967958876787867113703761097742396773119309654265428702526581993408077881091817508642479748388603572738489183045144131475406888942486341425713131844807776545805967449072086092421558756851479605280332864507800173832307331029855288546351726057923111228565001342358420597853003279161672684671024212585005130839074140714665693195293799500287415165495084185919881343936308622602797237907815677627230195322350325890072679780750218016020729156172897772221875435564729745172763791119942448772073874864577509312928745192666761495057427141016578702448737547824290878724671261889500308432389810413378545656935512331435943744099003514587340984791957045078930135929681190556727583934174117983484568018827887170810034340824935015091613402356623470615309353076741069082353682392794778723676003316176166294976695218852214686387908287558976655027591049723054058794681856637795271399722502768867228491286391508100313224132770270505066569331065685350121710669305900711579761735514945323644990083932473385096992737052381908139688893508177655870862491255772945231499472949006154428685104328208072551875368250697562192813117707642942270296929065561216178736571825571823057660165862868083516953490450068601783061412794417710245152931768982862718615981028884512898721898238516728393435841927109829135907724155543844534945809831041486707059469584672879144218107632680982219888818419353722210702016790523158992388608281465182092560677931320576529610265720589811410578111190956193070877830919215551310460681017640333015827386755016046493225772156866826813927120498965360025349865364444803187947440044465350327123712226007333693400883357074484757575926623019579862612571351035820226283118868845367353752054986019165235507062791598702180842987563767583694714560403608964676204698154434591022220987569830880181577691891354802917050763630443143972906456807498627499298497821880782747460079803089509135798762386849202605375101298286469122241936959177974113214024883863177742754629083316491177092745341475702458618500413419810388788759635602360906747847197539561481489053557332450569110642739552579271873047358974295745589126476152198097666954974682742006544082103361679305702650955279245762667409636154655170481448897729180935687162453664595244218519718661910180883617389815400997606598977579213055660390151441722719351412091272115624371147274364695567345398257480437353376516973833119994889142942819904605383567443691028825016650159113032752397233356087768323066215267855186892755389697607323895173873523855850315036597686110171906117221555817015228706295130671829540593271279498761903046142525376852321476605139682239409484414717731957607559530691387585546288360750793140088541895527062536352254078230939716667170683663919590533082586155911081960856299439129657210967195432858008473940871498432448538700653054133227237649645987689478032692675710829972027072108274664784285065000543746544900946260798411257737008725721987835573264383717315339433702490132207349221043883637624710975565443306605530833582355235580044907826884076307738087943040181031167432871121635847865682486813317239144189129612866403818608183824346484091138149440673388672297866731169704654340873621398637527959160535240643446251987434295510303309772647544026128962768872573590792088114009684456324241936625657572303125086401087964848849560360951971514843161337925940664059455328861370705267067432695949601523063733674901881207695943015409934840785896839774907461540677255212643311873299630446942457441343872084870891551558488687028837876806898881249605208340327247606176576004732276517145603327042142022971888682689147900074943304890717455365863468550290951211157061435856216969011204701420743789066664411500804399058682271496587179869255685911214250567108568476825687961744974742233531271247273660892185141710843285973846399797751644053620588748864691442721537968649121388659368965127551420711992422934752206020729815238987833910546709990738834858650372314302745701938524365894241489676493173390440811602804891300984740461314678559177851548701355360519330002641143446976145472889773951075011985100616721414276992442596892768003210439188087768348704746281459934225712575001896448862026773291612373902974325783933261145879005162004098884278352484805462319499100829781024416622917742424487728084919525422517140721834988625145825288119937281537871652726178171280655414874126616304043665569434023284802570442275950287019311148756822843269699045536018462758148881341320860111096519605548974235192482678944348500768187244107577323753985395651309209022829581188187943291936495053044618504287403516344204713406869307081472989495114415529226529230501749100798333888181664868684672150581620825549349895769892214190654619277809931703807915320717125503152806295691631173099275478445418673698422374639638382375407612532833864300226672428548515671882638317581688124649743537190395990163802943739200626442661418351570832312599491600587420451521519575491938989587240188198130647763500751718466032609067885145686776578620525398773436876872229667848594637974842751774016720708193511135069966744586305232166288999855472210082220601329309240129107554261447032524939381966137000260524201778398159640649274285071722480738788608070333064239420728233797712835866073992432354467962525371364798148262036650021440939471561415479511192175990773541584326442279251477764439264303852355072503147166161193665368643595041706230500355740974615252534669178374381935040890152022019715771206374672888381101477107254423926511875951418786308511710208211022729019967401804846370908442253284091765825687084873650809262274448102533367181382370220708644647289762637738756393274519053917194816937859391964919848217542948415416890070725945845240924916417675130769130291761506905196020701435204012298154259814469721685402444870359802587115127601570405274059732036495432641908131028481741303340274689236565271915854377639540907905686409798122870270629892331162865155456572748727374092086799170259071076834561896999454556611464924771416281356465140680907712797648431662682539915011215649859756395582803176330466595383533559692858646344132675410881099404133739114099998773493261718649856935809081492006806539209728505354104607690431047513789217139132371112514847441088026758887814956908853719891416470867206224681355195050968816956431527598819173815103199268566264801744926975590446291026441958884995567972274156119566948888339660767155740518429494837464077630775550720907157284474028021100659259520013388706417842104094364883109259977099868501661157524471533208572773649738313437464486089384290942293919103567004507490041449803134466466718793878705578427671429687259418275612671124160869615120268572989483342793465798043441143598309109776465085052005636489563449701603382392868316978082962189593280555749056485224198066685280760451849999277108042815052632529208396017371018512561089923125489817349686223472401594735816791343510976489731355605570969463869355511658587410073394331053737115813899456222136092521603366181610559199761961885467524950881907552360796471915109735689942573237712940358752006317240007165248678099649586908054192028663095578665262927968355489084274928013476364631180324944181411570122659143346056657601957963167333861866810871975248739917886150673727383923721435470620483072588375727892812138051219583108031328912327918465083385608312132643020279248822830141033883763479148999164812398817491302846999301309415908291247661889300218203347145419432791590688624051269362689767848453230990105553731289640170923158513550963454789817890468973948612341444477745205457904042610712225354386115602780203420154020876604585368921928840323540866292808261823009360783518472236579330540654421378891695619086389618628053490971143242617148496108262702773559759687113289157289673898518089904783981360940404813006797250812670248512413852411133475838121318029019794768347997847459396887589813955800001241348092881541023144639947375812417325886218093797764225519368981343086728014039029171179162237734995429497624417315842105175184150120140124080333324678517415110246153817978588991399175092300397493437431932796211259639676193850976807544277880029356375734230724063029471627119466653649866148088539330695863701458819086565694179155916088670043610085734312983574812996868204184001391005777590382082743238839967142376656146773637963254987663690533609065226884596158665383702974896376444708845118122807439442251914543753062450179854082513274750294322316165332431733590043106017950378012249538898713799869190045877163641493118869902032366262836958249759406582869003853728851438563554392854800548052971314150591821638709113775107020284834045185056732889628634692491846315699604526746632046954310473591581877020219516232815825954207787881726385949071274494076440074272609651881999941863505219892727573226067258617853068799634089570299819814421167698567946201656669251495745328993886351914016369066175942378521708883347017783856908958562772662792286578151050288954994119399014918127040557396199915614094493372530815891835671990791184719712725454930563074885115861893243530547611223037645137993273793203750763206773420324739277759396439408594582455303768742365588128756555690809895444225140315477259845791730600840928365496394992198499049284808931812944206185800959515887253607557891560852739686684617092033043344050283788043897237388013845401508244612331337451123605294741964370273388148991196883492786435566172958262265829939196063594043438906462360290440703167597404628780968479147220524815599394921083163725335594942449523137688736272560247186351660398304945356473973264560504306703882621273744433951157184610335792925494500327398953791538175830860084480299892877360610255039097282102562169277074739275406048647896405380957558315016227929772583077151406543468517330824927272575073168735506980112372855828801545347991022934339498319890360238347773239003567658881205774239505119759730454139765648643577404728622912007846716278959584667257674286847170109104039860983070037547251341404640657089009531705056313826317807667261638429430010254892157010392109418476753123159541753739117316631429162001724819939646619439592812273403170029613686391536238753999721237271199073207568722380883434606976477831215557755613472215201517065444042754338056477182149147358197785992567031649931155833944245451244554163029509510150595653175778633661286296892849399011832233278767935095084794512926392386285690556914047640459659379207196640244730195244332100196965581796630125184538515321401439280622598412525662757021182658382187335822907123075870901173483269348577475762942039829649747704803227303459418363951576473486558721129399310263706527754427869519094658973837296294859125502382427832195611628891705373134010426760447542677324296948267553580986242919454764545368556708972575806024832409664877378231788890251100256121173206516863864515755620636653368462515066734222764729531915109140233314139331592658382751616685185327691451634292076919894900854567616933084485611170455393277891163287396084516386101437599857487572442992929208708039964461920964263843031063627300431148048276588187847069459594541690409652050755788617442927378192961363031551807271572520671564698717715003616322534874683696075451843067381520861658431499803494845199724967520697921205845627143288665374469909156278210356040580659204712685950913078751114200493080400891899078225711174972000127598978000499648575120920426788644434067419927070466012309085915702170865331610601982596894499000801426321190719823656378843327163603108007715749697503153724624180051101853090054601858065141549737592534137745801179611058906550214585041484409859426787625919288214220519664023942609387982694881132693915483698113386713401787631417462686735583597906002315006761649242356708467744600516187729729849205338087843651235400147600917350752623307037236858396499436955186950427167998026736160839416300241727116408495906762650480043426308137497758273030198238379949945949882704124217355655959503626767835917595967855360848290582571092283773426507443243594901189105530780938700167932621426595122927984770689167439387628443216845282039326011643394733400073548187330809237800803161661375747904470602925838302452061205695406723335938374444450828137686278730417726312537217384491568809400026493452218599928230661866308917179947537968749356287072481433555177978016684187951267569417610463113643265106648040016198973535426318143976874391916481069931623313343107754300867729611415054670833044427297751351344769293351456036326964773311508179655839088902771340216644504232204194642103330832476237780025741272405034493876010029301403537094326203188542510733901349854759196461105942432550958774646406667149201263604693540720463009669044260923103585602777843343466847700174258247634694401513928982318846373229077127094482187756337053317033012315722028676954352604118027126265238619349888756201560563807691812497846137804736248257488532284385116651466701154101683265402462539782674966830084101344720835640206428563054657344000907296754774395203315026649711951234685260649190912174176027400668879036642203125979053121767256426018003111475777753162925583936373807059587481707935749628014694505400137199568363125102150728321748749232077674760796659138175014975504557336233700838168529882775453492707597115177674544297963617874007229865264849701690588646167013617817240086265342358500067026099959522161855155090929376164009922518292650889396303794007282637300933022725680388561067267803305259806419511898124915401952247350078069650980439725345950830447784272287138580636772622483039153493564675440691129996045815800017746997952599139292313296656863354256666961874013617310650981523234091553000989983555489373203400221601120399011713506901297580555713973526813315325260852794597479035901388586101441507738435012625090104217360240991977039646423545526626131308603789623914167476180185474455263859347460914820953767882343173400356586475516165057298942892172157138712863126653185434477959037116801786229646848084203788807492171942979382168729071039739160694063706230472625789734270837210749921197153456570773785940049054194545406391386157130153973732601048049300179770025563249912512941326113378733982283630894291744388028987901640946997186084487375501600511608728326716683088262285720315117204655198687002541744076482636253559132070710773774572361287337953106909089816524382457313338730126779513381850040131981576204101783028751512871749463778622271644795126542650435440083316715434326798508408079675872406259659594816256957665538430863367088365568399943322559408080106900470590457412798284213542641853802532062982823494092869924343533002502581814639738897248331256673475204996733119234565563484717867625207693402570866717883401262528638014163384945873349898768378429275887463617745644802737028425186253761336686479917128169332309328611758551067211376893054197829560867132593042914428046962982111810380554274332122394630417707333781197816085419174323489827784822713345360297730304050923583403439921429287801256162028885469472845453647401354756598445836096412543693520533361651271883217130487740220880869272630713597349310019059795581180132272137472529462595158274741405800034670062593399819872930744833381270358941583611770933508137861782924420644994389139790288973784186661897182460529529159273218069872762162058669870288783763803063517338371541784500651033815074012124134582103635168426967424412005256022253489255430096884864003652319097519304121430195662851213479731568204652627368411196303945825885099164613198513887365579367396461621007454880799954711306360651917053688812664646073192166191815544807695859056165978957366081098951283038620935201870658165702064927897874487673326119258542007825338985962978875772180662179016235172864690749109063429563189051620813760946206924468181451826923679703078388459402524943932653653890750925716350493558161505409813250948204753167498408039194025524299884390673156258244438053334179156431269519108242281211172913062572711024526995457826232579859808039904720217403742003146359022926350478763262964639748450225925713780914646256576597396035865960732531650819177288500819973204098054735903555370803224757234447101724956911211263576873388707914886443348612255340981416510510564851510311879919282185425954775789468701264792380572029409694481871194066459558371998280515698382353596500076207273024905392281480968552596177732322485251216188471224040230482586972546370901751119764415033489159068890542806673407103489486359645746905316422086371775313221097958140450492346813062141443553736067734971006793753761106039637512591001802081725351415215071907340421800266754553748602913188535848628072247372072383199055979168580699015901723616995140149784189245788865195883799897796328183411660516150658919392557504126121016542351815874455235074542350342479344595569889665468640936211630098988918572955820172374005374408996839305267658348022091569040167368637764395168366318754040209129446790949478827930513399056655407193252793860600764611853731250149651062508264580532654549141285742566878670870848850284028489903184851598962713253980443400611244043947089841218307264982969366200864614536189474512237350739147232370121922463525901834280484374012604112587552702111292184640731248088447133202872629384169361781664301243998445363059883756774490763702451224176693170924978670233737890210305607533509535597201164600676012899479355967307198578581864271855036350932209650128040080841372062006352532952378068656383724180459460442220370333842859870433775464746934678342843503101979295972302907305757767437349726141922390263668767435056651754080121544841676176830721734021511169970680910724287136166878677287571953097057557493384635774411222668387690051164505447493519588545990859558358507355802549392553856310392865323690783134299988112417274267615810419402824856262749559566103232905006425128872621919379683753453071229112837031520013759268808358740247321317214513470299175160322040935659797467604587712403269570177308274227490540158503878189360847688554261850306441103035371189275306834256744072446520579455170861044859632038724995198298418049574635626624988369469709397864786089986262285464701201827787108994148625220336750279636173095035900183586927019323591891946211545166054851588407332168470437450183318106278247868994669821136323977468908808613976260988994226461918337307490424177728819855338735244364916178286705841849740137781614402534827711968447672195357141391064804551056156753703241733365975183731543043748153913330062477197612416930634179529820367656294313728658781698477682487110547537779804201779082629518834380379708220547392377454261112283832922408803465819967153464407150964907900477155165197772410804971813410284494374557713937163400432473619347291665901448167701805867768803592917508703348806642811010882641729212344205570802696466487150342093779186199871664082190550315922062654208083959731569708181306619416525306137343843675371384021962494641058035855211852636904481518844095661095273609876199500503200431737560371036876491953689839863497976444006723002743655355213408271316926452338735665160984487737925248983864630532544875572833985330647575302511306716647999406177196567044953979993028147455438203967043521398598546305822920958391892556361904143259475262635703623274350456856085346782643211261414704026924964197901704174246530119102385631927637278290052484752537974279795535653119896466560215891170062893531538764417579389377922151140160370820454925295550272125660099331718996400210164713140660913725472277390046760316609848457520038074190841300341653185208577548291410035702587543395148948958403784435097606482491566175594690557284557964250205799214815121605997494374769485350566546169310482519569481187716698577284632561651319168519571579333342031164612203127529737817341929463701672991887304298243645919363357086017901750286859677824107159492617528064129556950768553520326160575237529347318782195506690497649183927596235546879594413313236028973985063936752788447137099246378312943078571391536493072900216463428418355375034400010879188978970476671590262690433992365379028806969758650580886290982056708804616612018495589284129591975647604797027411889906307483634493115536152657110979855707554869707687532178760298643752249388978943230819273120725100982163413172842872284777472253614714284699034651172631505690113776128846707779670211315246865258214402679218533247033342254766385761480131495836210295719646492692232445880805649050205077972962915253788929416470535127672771727265810910008657625972483259705535731946965220421340806573025277707048088668890027453651331324580229708940582291893396588555764377583632165209353627805310630959418565392237522100700918213224324502277539995445360747899799058105697519612143763033003855551280549616262570855591440719284173537199562586421819241137121612884519047229432206985610961915600104232444083772528236088538417584506822404022894812720939398900389779689306091459571724025906326986066790003753438857360584814897465846208977433972333418971632901741547053806140341708932258865776955556779026792466083713569196005581562610623753028510459621412607702664127819709280778895079576398000597468023290887179502903291439452103818146691199509929612835905706386762443961179746688262980103943104300967806491173327637597855495856406907425356908998650881441512520924218608417703099563240068659899575560490755592400121582052650382572960434431900123610098795179814054923042286124646669848715776520548591650441825114889116199834312474772697916089497235905845894616820261420664199389713287243288553873433316351727338341565248302684455673885213509210346764986269486944475638372679074158108549257132889566249799624462853345031955426828580450189943895768392481667647193037376762517239600563491246780628301155856219857355210794851965987356071866862076766998388642785188309362040985474065451718485128894823438962316797885197628008508895147240894532231698315204695682814574262756010309537141844615682689403007656824673110291525447919869924506773116213755151534873387946578933280242243072778789242575787231159078119027673380570794666129624766852681948799213782281745524372595717008873277666416080412223581650689912150883198361276777921841191448150585484380427520550564910381715641610935459914761315015813428771320846371352939674346004603822836226232249525666855638017592698771010213646377592637705579031270400226249728538618935796238267339395572386932168840688364003689398686561985744007076345648179069315537201329034916617166776316124517352474591012244383717712455056975823041048212227670280293063322931004532802273297972395930279329133403959598842895706877470674046167479530445954099191164993083212782231969355204409428570467357716071446024050095981278634711382380341594059551431186376316635144322615910433402455265785163226965437481178971882176251213159223128894904927177328216115988964313750822346866254098658432834286955358175209932515849275967656259824924932023921622577080295567728609444066528141807633029861336461985807864750060740653198034376821967040528775402132529793052959796908161797356639204263226939780558908741124345080327501042416856051333200701986611628756379456296097934001502874967871399455119279122146813020702112525604214712269216705510428524273702744681230383747512822442174740734912518521158720153087603580017843017188968921891365753967859685003164043165277789481948288562251621166092986649294509291485113272123414527997171462146201827682657596527355978516609317268152269151493961579446873816915434228290611932371794790191251990121906133462694338394887783528651588321178336027413382753945899039227464925369010782615335654512843785778570367206463090001676250017887246873519050575215134977006484763058602203195840125326875282633971659188749796648039152950956882974457533382008378099986384724957846934972350584057697143869900942428256226336577752793294047382889614334004210885593880614217582027554352966614121114476995727032345329561113310097175377454370423343062026396592225324293809363111410146853151846781083422075981317150535174397030198779558889547534417384106260666216177289513624441714040126146154097974806772002647024973683654950254416277177042720404964798111292705641287408464215548044530870176536295051652687466809355323225354805421477100378828282928466181883883463439116370147696298878610491338150668998169350337242520121787957740834960760210930021686248004019719889005643414964895728790705491274338846538716265925297074048700637928923748910345732387928800445760389543432508766796121459753915435559852998935038356860645695051256975416885626864284995019158305594664166614566409042441003092176840881981458276148802594140618151410394701308835085743654454998799683292499424935949698770677189789811553561938153223438101948688774643472133953059806222726756443008253479839424225486224328254793064283203189798589737310066704021272446167562695267014179143018207336577169009218699451345594852539719308464124512269881887354622868978822720311252708753183268414010768571422300607494412633331125691236906991387333967624971224658267744599070936400235638902613342073623029361483697285560101082037135004986021130163854493926083339739602475673316246486578335090646591655031001883353424290826388452145500215615962512307551548270565137864917008827700794191273341024308608105854417439534052548600472299345738569294747133654745500330375218331604546278188138097525133207371557677206123976139380160934809957541268410152242947996877479248542265623118512732270282199568573274245493508323197746182312564385991008912265580536368606592246991398959949754436206872709009100279832147917419417406340569984007614014997222300225542509059630741004207065178791204995497128719833281194520612546276675695517237601626016960356274810879782876784660950171471512881034151421997703623705796440985066161863195208697074570034934964274464115465723285188239050202847105032615286523128804540356863808300235954859791835096196226505628570849610342998615829623184521233398808227263026536285930595540944075816670398442299428055994590603875196253044240886284878945299783092431948081053707864777328739734554331665651480162656917502502624168746098040967891790024801208280122026088248394649489770524256514676196553126266587260800021014912938401783217471065633968672187105259542486898766830329212049230206012109669096621617966019899573990087378212813337077744669655071659117674153212581479039366645556628907256894064155557139889780653020137360411121303203013810025926083431591769637063418269382244427697295349976989404530518473442652064289303518349442948169647134405424002545770389227617135628430016785310601960120812276988579228428546256671461879488026764729450848419882261775600424847264960213621929303778194178224565117033882633470606498795684724504703606674089811918567910258879775491823575749387600785212992798594168443493085869601759122794624636937871227148603911109571058229076255873354548447503228625726100134367432392002858762490802700341537430247645134442875664478513699971965163707663776084974185409518572341648333960651196122392566198197431038435279864880602645917755108570876077262877809271449564054702746383906398997254594463095806130636208409037584738567699478501677977132621812094362904590662653878326831560156015132186452800236870834411412491658533433378254379458809855008788014117890157874418336732294557398806296498108680714834551623944329677319298961920319974305312460674130029435122152496574546108276094045724645488104995251484797718793902094116220058704514154492195427496002607818986625861118307748365349921391897710194729249403506901779182043732778090579063683024119831531475487189832960179325529726603383281965804531214397991148982822806897476403447560798820450535605527282866454099225489979228417953216793702386376910400750047686068207979168646364855121980996866996707467153730630349944479997371259119353561309987755380356553485925916334543566700103941517447619409196171314809039381199600889345887636434777664999603944569249242714358690943384505538648027503815517233705369578808696403006710414447863921868521049859262348874384978155522584344535469226456190476722511921381490366207431315255761230249035569022396603012775330589795467140568655083748019693235369080120150970311953229784967497753322232306881527077692521517256119915582771770772423385670816159588185157266729104911393586189439860514882543652332351946952981356782476009594890541539063335642767571655305295922623715864210441357298857248932554526872753168638025972411065452907827820765228032467996451290845391006506815205471576786817385152818273978005274592905045482130455727637804171803622010818296272987337946504309762079145846403320005579239414200307330546861574501108586716260481902387320576955758197484305531123216185845527724834769646622666460849180887986473769929440409778943911080865058398512401195370820484763010222310306138772991010396533479132648057018123836580515552523643714605932432786832514713809326169494736109308796041368059024467827464688104651589141559779362215733487733684767969064043963658902837717213357509803019235948336284588832244160854581514831088321134429258702674722451226593372690334835240868716585613493709027011324557235170774741694895462370702943305098107316090053989096424400872036761508335775542128071511606234125860028356518413753857559348421911795872895798364278105688597953224726682734541050840744754352395874118911598658793158717360875300301524401916676682179376521956568562276166669425850211098974731505815906279345839147221210528369199816141442204566880305009172061176388228609910940594154114144600455639202008216269170422191429268902690705760954705215441469233833968660480134304338003567219214173856328943791783086012981553455731454294508397698227055985517625839077740808883226064974216781613462255515567055512770628288905386408588954627011339827957420049898638181780850374212734062685480548407224034528151995488680087097701531191019607710617235332246624818637376524381301316427776264036059661257849168479481479211286271439027957883445818735477729849297817902982809615058751758169247700009901448347964053985687901149000396896818609556415780382172776086637919148106914008864903718098694726539709255727778874978478403336505118708448831586352584358006894561940780718651718780549536856204775089224102793283472210988550043131458217968697909877786729294140128498191833230651429698830531908236828628350493152332083701548392012564237161353104094403612530539704300726188539554037930850561953142260302560309587270868359136553287194298822534672055676104309726101920682538652163630172754420139841914786517942391708833340526751262855472036730712225064187918051281202878227201910352997556613623619154339774089799355740532303928975050688399866283179942213932997652847164098428434475616460299468717377838795370704094717369893335731741417834842566222490381504114606587005887510603973557487503980197867099150895240148272019139058063812317868132358332449170539303873833849710647246884249278337033556101776058235225642923105435350289126593736840428662881190110152926326668040847213905030301237689651282592983730903133523976665077057969320752185301753117515682977419728643220764919139784995100092277520568743941576703286268003579673251951397862942932719946832692642153929059193951114515575576046687136738970057518687687138283005266073113909430574795337568365623672641199907153760102874995336512669126593079010345693991765799800728181427975975860506095825635207371197630392323168827603127474020653806417427492479754441542086549864406645858438159995603260927199888411774475046750237869390377166495366459302551986616749576229425093234842547475419054139030428704185752479841411140867885976852548761638077954268927815992404260868430761695405515859919396006796742193002176117015301744671475314105947704405552053009816993422524527642409748586171156581334791768974430871774685890082271658810247556784245618403249011979792741218256383022073377880525240765822642749324596752778343510348701033285663678048785775581676103418809586385997292447169752733768580204076652180948022200639399493091319709451347259979847986586260807800817594728624411778678240897856492858938798406307835599968996176791947091846541619800823178066079985091157812321416302874165862309570133225204227552059319917907313547252888147221704649574714909224945236038897107843759021373819750782691234582505208489228868645508937075181188000890974554742567638249841415982092908067367240697737904951725797726437962047428366929703506117032938790478622321764696571364530022189387102270613174974011890913819088906716403686986004987787327410630219167269634767375245112565280024377550746633038054144084312632110333255951932504148693935060940223947680441291880571843247811312052167774680863060120905954623163912075385241273214119612499332157100942319234923762280078917757769486796385463062199267893233887123827441385566130073313959761195588753011903007358953722695917064902954851142361919897955321887011811624538629411225855445286374123291990571039504715840604968678497359555984017752305172309098757834016330596029579942751034836009146997293971225587089406732675401246011696939601473195127439144568573968024674465813964024432169714864867306983134608964542592707762669330964334056835382255929479595644181519955844774540057007084741663366175807465772306776397866597239958631996954593955589124697274696826634331431426070567736664757152715913696002323710399321422322694384027505670486409439049538226835794184962398265019305826871760180231894962170460712633750455557345301241685741882033934006476412204386233111296065354860322162296849190649029392571055585036648612124694061557168117996834095449860783717923353389631437026873382850418381627696232818354293299874139820521231346698485821220698833273855872438487890915851928685164556900225174735743116257668634014397535316690163950469445697456223864574937565755275512564821764786370067651595505279991940728595098246781822071905087464101318192651750709433615448590657886553635062837613712105545408733688578779347864559890165447368179653589562681485959145310338648298156722637908604081925473617602995165933197685449811077792480567086261162235478005061474542540910095349163938080807095081282830779158154988271031161365162154155706800131767513937177975100880680694754882059920011202670393397545067605296622916023136285804562898647598292155274783041985356342175581490952381966223573803989140566393320809211156542928757101736227509658264356343787816688478616012705899192640619531854627104460751692571490794451975505697381763970061736034902820443486820201630479903399081704431299719253360750916780420500233903011538856414347348848003931964369560872714690183009291460338507723868999035816293986372728755756807145529874881050389128081501910426892826996310438226790315318587919497067640896858845550464835703623972760836892084011618134201407256178964687217088368385359741909000306853443167754818960086338088472297551168689393975991153859092716615584376089139558747640407436096760734051325541162818998210981503371837710117309973252474478425297376376500645179788297535252235548954566617879259131736034311135059424325170177613296785742418975338743214145927503828809686773216879979572604495772287700382088743553654174668053280379225584987704809151323654207860705352138454735268206489198609214722336055883445766288444204189202619843696702356249642163870964901079727584814128266806654752404682209746279146634752832281912126274531999782536136429274401344422709305821407050499313604809675457677145710657414316549716386748343241008517083955750891633777397943000540008064013071808846208725411191800321832838058910156800010433893492903376307344552359618452884160811506535767551241555825427978316176604722626252824141560631037338329108538864605380741118960541331770211003235265971578950773532888455310119526915136004918607432116897579310874479385198827019513403783399235147875915043975299676694884292063356187915157025639038218077291731526976397654645634778809167547028761947518098034601657315929061827136640955647697903479355849191010821494178080081411317689414503140782302485797557144598162296087097907021144713284925395621617980779142977807971206781334068022261120205815935598007885262885676363042362664674493108253666834973522146977003760584446635817641895393227075740516074769351849004823916353515124006371014613046495500669109032230202752483926752294557266217423383548900846264381291214674739057350798170578150396560775077461852151361731970062370287324431189006895347285971187298421738636288195108919082253818531074421904610417896330694788621582360247837062607505743218283145636492660481055724320255710095867110433558655235301662881720481220598201296596079482243941617503786759125663382077813835190967046740732151573147416796744300029936540333273938598038943996848500356457013066913563365758649108913118854777660274516830356837361897365436311710252754052735657208613480548376819449863254559042471933507582626411260012076457911310881622269833309359206599237978635369854245311826768862013404114430671091723142163394137461645786435732276701133195415347055368736219987953061184357897388757633803578714689326143798715113635524657714469060316540269849584297479545885522232245345776486490960130245008805439511084286066527029302031482035587409991190250611832081479526956030110990762174662000269630039205689985389863878139389849514764915098053086150590974274324807237567935253765716521085922472798007099582559294060101817604643597398165094681580950865190445886638198369250101160756750586133327776647601125980043168334256824741051396741483633733339320236060776929871432068376445663054641229569000979973395355817709829167837628565625774242629153581674396740015565491365633939777350873570431651100199108391565271724496103558984267676915255223512928679309554417092755899638839956801189782387870702815764496630393432991805514704270331257106813802568515312629459552996584480101703501910624604700682342864841954359484153246385819883035376348108988616533735420450990299532003870847756472762545595212820134920738522029372760381732452266654934492260984068854174581495616845109446293921627287892461640140725113390544829236899839638823719689746239456298988200419419408029695221964242594123300925836994936396784079964537217118447093796566210648203064827078289745153688622258456579190321822862984591538031075323988397927006734341722863411114519252548358083781301591012487310191128941315522687813860655704835753221217895697831845344735454152094307688692726442286802234877817303813421608089754479435369510157846699311087653901424779650556350894742681970073138868861038896821975431634493426010729393533669950262336300046441565005835033681755629425458976891808386052379917313789527428035214424296854058607797131905039488215520600757860200182410728291356088105646286458540841184271809034550856240888926644370642869049255433619742020865746100516921153020075698779711021074444855057160588113854794409167787833770048244277940499626194326753679105818997211801012167413822679254261640998224735956693533088941154264549755079675073612730686604768339160927558548079921793454762231559177717978946325570055817959415067636063998119458072858495567252964009913574669998566752584894011171961062978629994351986014237738608413361222949225788322792883861607568335518760309149840023873813425068767010465753831655496491574148640121652692380871532550542567780458260474072990246318822891914042303003339014933481966230329712316271268172933376982718403156618566218409942672189525318422259887710728337850872470501794753900433699384228671048940321837432653779741128219948077695794894589397750852685430393781653709988433309858824431616588198282052759951502185939948923294016347778110936229428087174692566972797898516277894968683311723302069389591646456701856730535184135206362058887306355897463425575460387098687585694404122529576640464378020622639743575152300598045369683529756193741411282748489928576484478318731006434551135046479258621671937705788695001347457118207971747452243281833094948671859417104441044761903112161718750583004485781142657457707297388458621911572048835970348769754666350086130710285340805291867689958228122870701085048286493791378096197379447367913985410859512249197020811228516055406615137286533465952994293294364687098447394430269991727210593672499057673695455075559951242576952420831788362486400433256665470439471687700091831697170569108813382183860951060576034398381221876015247288427537733762353810690234081357030014933702139140795190001636362268529679743016724987755878276047705795945006038491048260157781809793348564601184420210033673854888485822872864859114460333128241591633429080682890898730101169577970255414251619190778914346414409296032752805381424702825065856605851617723300723163549229656982170107626145282167162698073782171883865418654328556273658804952722658848888948487012590801525979593100950309363795192180399804728543822877492134824193664026980764572368257300551693497512323222648319564425052642858482604862053193123587766863377236033862489996237643894113314416785513452671291333071102531486227660513131073888227277985302342581082997804524838958732022301024359322036676079162716825499969338973245858704268098837061911319610288847226673657459676572965253207244975177799146535909669957041684410922740231160569376545848708557583073229129201184346881541871806851385660042377884212791455696587257338539089259896530269826440672212695104865222893095908572537550469099569437613457749039345054781747844073245993781243819934088391036327246600760446356107537145628131704134975252897827565723383372490220568693713899689472165446301058604764265461101064169979982643679836989630895661416400138111276844538232609082989503443872001307025518845391689516395246732689349504131988858355221088871630563059410168653383284306759124082672689157675107411365515748086617814193097148307924192171643892877636710688136731529060849949343148957653021486872239591484416332024907657725459994790289398651158512753398398355869664616261355763717773055958664911544358899912404048491162047364932002588562766711489691108897557090920179862783962438019585085479343117907871596256532607183534509686089265321156325106982872956021102520311368649312491122472370640339745211519423361579149761426521987065076282265614137870797597091921997387947190794611309921734851510268557923205248918793875182548040617627708887594703160636116021681390854701049766354033019995323481613597783959153651002037731578279386568751794409389598376158159935871596984650616227022868528394348438305776020950910707530044159516326638996275010663100666193898690110352547764203688862296794502742499324228582454208447670659178939608104893113338631528947347347436087194211136874573548485176475581395664277080260125991833850634588597614073779797442443616255649261681383867980130877557289297583828139236258067638142398733302519960690077424720689517650730921683950062814239917030556852554075866025788088738337956616328751937667314738524649796839999919375155023821785601268863229821984836398861449606567259145140624910947273961754534451380451286388239834056894729294799451372165453375417563632211403841677826413820842010589678260967091821583062628092793022227790742502391407891493382612829919929489145898978065071517503199439331748823716740544311286719150166750533317261650567983766855512458985197657863675339820561487308254987968207755230188649102292542596238776407532215211724570432204951822058306297839955117065058592061857959139032630953438179411876384850689251888706844147459039802346367429130794268989955305999902645050894643238142815099359169731780566970027839677916656763675330408467102882810845016554373567850051884544801511778569889484219687915642993010039015203825926764466742554427755482948252767073043974984031639773928538084079330402315420674506338577666186421523033958580811391756279328737464827534630174159072225349337944576233044922785180677839115478269848250760985342716480995653192259936605589835434433962822992919301892039061937032036449715602192160691083872275536475780014765057141164959808957503046546395211796600683393599560097106722267135210688309384218490400228953444747730194002566038863782456813173142820058953121580063856468016422895325895308195765038993822927554659068259170074703597569515693766716827758605849983250440392371140494264902505742117301470689323012078208661156112745133527020376915703575170774432203433523515830852079727857328980639692535235940635126011859109597994030803734264387880620266975700355187247943782562856181436166747877601689648406857661358011765477440290222664186012782091924019691771845720308606392380805248070752481051527414813616353766171241843851285860732119858948010564792675050926925658843869707772557408348871190999279470135970594537144734102983548293121583934289251790647096070611307903119428915345784713300408330012291709820817756272496496545243395274787591616603293797741343123350606231826872810967043986722541125787189550883256262380373204413145482500695708608299406479552106198481050873212106775160990444847828600554690659869517826040985693396844145491542241370838288981007613888013165672575699087511283311223763662567954157584550399082701728788463300691903077894795542793025699674706059481608585395766709214464540153314188720047315253228657545844654230145691743481233335712340363727501812257018344569981194702339181994145476286638845170709622574437084697333854659933352099629115901317623874635354973366964540260606775094911027215199830982752819892390200271335083364504200734705732045873102011226647944383850188780205404873549175273695470140251516803071551687239806669230910330923351498219288954790572464919795434766062236387266025903098259605677914900155024591279990033871371679953529453230172507915533768932874926043244504065430489031679920952610804983203245037167553472337892603080251655880934431200166791850140245385588494816254466136302299657502179055852544950702691566202592073595612705260769636981863033494479406551730312754290189711301400308677237823279203774875253966173597392594057858000482588430792281072782699952374252567076502618025256777729322649895707323613329404362860344653699849401523162248387698490005036770636413071283327133070989230508405277103100838736793111879926072553747978998481936376883467986201737396401541409244170325853299150866357772509359982040037637108802781682890975503466766552379630054239900831929511328265934091797014779153581677792578011253708879918686172713511480431641141618081873603532687096535923064657566036906917307961111684369606163672460742622352919700245483771028170996571475093929687660644680750559908230506414685037629443371451807728312365870155174400895028864771961847037182937932608414506751547683413085914392933540177958103458182923464515157941855645463991032634259715314778794089786970446951045272251533796128239440273927108521403343169792782182958166537259154997276596410614773133256035690121446066122217418616737395435017151929769950486595399577660727088378395592039747873039773858478161518198867863829173762360919574254082323342777213662481684866524631513901499424394271857908734304039947916462000769184982008474229359127203716423495610309457702203848897187883284796019125806373165207551362454984462495519098449543519989572196503463926722431848139044940088293489571564626446146249006611427150831389996028021935252333682415148841425527552710456128553675818195418253203824415348924970014478304912712383997136549387820456393225002026151587821314491633291330197733781547736892887453988788342032870323574343863381865209186539543960319119260771122051646549116891141946759808176037042025087968616744185811842981571975370373662593195899233946930303555748313940091408130388218789284517590879641400761204803151550526026395584356417245403645866900974627173466679900826189717038487188034143522544068654798848698406815106585354182125590468493669742001740021524925499999127889767880970973704892376170496394920479743603925078997335443674087827632653323604956719376282901276393996414443568549352345858763351945502893582514367767396493908131138100312280058819563401367369750302068012327282825068493683437871861586522703692614710493621725658411716327263576882179091436385788784720307116486835446596256242951187000720559397674728780828581785003011445674001048246488092224874818249227063819758221845386575634223828252959279222207668966457694503301957511155657419978596200399007761144472948840259909273216520443659275310751018494130249015631029366380314979065713640301672361021947371802719210430016539010223415761243112646354603851061256198563486746415867717173320829303876196764716146948030117099574329463053340419449416704292934106338088657154870523817713309314946464596866187641220987985887839439986894831797028240000720979765063774498680776799385670053326700644599489126087666214845240468575794135574037830808802785135273734399855231023309514845740390573644405933438153751874629502745437751988004657565049984663383876251854442440320736212044959347161339870065695979193753532866305187121500920124696464416616260606108313087813651973591404600349894391700019988218143779500006983836165827011942471005437884941096920963200952568838143361891444291412364805117699862122244571458827958506872863207508320420959120942681617269121441065925661208468630029084858428333343780717960440856055262722305762917504372760910651883996905951733134911518590498361933201161085587144615136350534436132052097588208155040340309341961552689353558761769344425638817642923617937702776054503005347629087784890904673741476322844514851182938152387437063154800356965266714955504138157236095959643895408383209775010323336148188142843681396790359935577065563646948756060176227079640978619086682926942580307000728128028722320827584149477431945525760460459552006638731486223634657174930466910284303650491499133592149125362205650566309184393010155169547555811630229418756030754961486176771727438100861614072857728391298468682166601636067931663674715879852309481233712765216718009231002373810740435572730672856285554362776905077842508188626808252465423907756922192694254991672482359979966953928710557514804804967194818009125238444176797606661709208787396549997616770021740058918111083385928999845860933161852714112060559417730210259873365806863437684818897583015090996521373182277863830213939731216561127423150879612849592907890823867897268684332986559607635445435511317082838596871324327456529598528546363730948359631730264664642150383509762538122165663147084324939348230158758914979609932229603402231806258549257505689603615912419535737179091945048439255301091523113446050149466274436709731827990055866015309286725693991359573539743403567665916537151462445145699098889755851001708768403051527938755860740242691759640654030353413914615246370624648081111215787639546838065617255999966673506434164862431390778347273843583235353617493580456522058730752758551241628029799906845462596496101673047489729273187343726704286070235020337123131038257997126687915372632977848907395208173675194981380231731269678411678884393568992940492457429948434998786002621704688181248474956369255188297391269627854007304009097201562412908479875565628138323203150321550622859702967200400368356645890764003089030524535960799939735183370045678916534365277054600993115663016563524070914356663666164546872635642050371684883028805009929976706164256117977341676406722752148416937088975295550562194621805864635167362956196702134942148179574863803158762693913707554886488994702888073360643398612684241516862832213684488125490196615355693369496943631859722403543205211062019350711116844132323295890609756602510844398711663586479450729481066348167269681454775880748366017687564635271469381747680486789628709582196866242227156873497041272148087203086055327606652556542415587530091611133865617160967806329270590500081133648472788095847125235114481474768529642766873885788624407863937636318661996363755627499718196969442460343950451757304810171901277197921550438765306231771039253130870409248635337605088633185009681142907492619098567159329333489917849020765127037003128740038568736567926497716862742782034688953283163300971048558856401106317477785776959212699798099106179738704945763255381470479484324959362136572272717383403462273803907020035402773050843025587543699443926363078499468747211555127919142099686576808460634363423136519483214896871422865427290688414395571533552711892344443680206844265103774689237833916631429195457725949792658043296526479521072096107350140645136347839979328531772980262529500309425023001036532407687724850679399857628118462064485873821227322799757255298966783485525911115081994550020714788479329993791085325124744426314604839091437765525197229966784072235688582460258118821486535338483880630074796353641791744061766011776096789946117225721600899289596832075194451905149939938159500789668727897211043631903597617452257266947963416250274279912494625896417743564680858842796300854853262566744365512350446065543960017756746211417414985102289702979698484099297880764363844696231274577850213205045043764271598536217096846706416534442807867450900644305751833609505009966925296631751672702549580576341606639683351207948323666742637086027456980168560525232786715319243587108913238836528233561918945920939308794546552248278551399333102856047018443489666010447960354486048023817419972472995728323607654984456349620449880639263694486614047787399664207080239541178962159590570019928241754271675994917626101943314606544778933672587536761312437722612864943472862643974575620265478134479092518798107172880853967511134637598406071140645432043919235447931152259182399518502957625044562535748700769679869505736036483200465434990428944698776322109917277062960114853588742625194170296988915338121862441703619913389890290445536118901412127539582713578164138392504089472543573374704404816813634341559265374715852548225255381105627535334177569769286313688276207475840171516637164823762754497110337031970163956023488224945315445918468127451131622568442004629251873620343779817014222074789243192712152127214708253222070676300361546638278692460406989359781648231517695325815516981742336753755038507280235830371086476386253500189304326776272598108572014046810468850650169708481663924487992008161525237859544579907148703526590654858208982093949890780909309978142280372599275170482642178710130739497328057338084361360958583498653891592958010807885948169721911686923711229613083337722969047881144673933040011202380473785468991054614078707140756089517498296923325009182574727563341882891729844376899168033056477506795605843855326238300132083355361390116676688382328800870296370899193781500860893427436080793844373905607412344790213569295777840630355909439170295306805246751400304835752345632178836071269047329610976444589610450756609045743992374510192573459282155346260153028147966409510154140828263876446831937625024223444246602264786107054939886266819206567934158336616778959117664736326199428797058801305303537773012399229449684851412464379270655006435864046122536555689473512437997743819318845870216862390556159090577203603106976302810239222029145903110341186800613890238819081010583427970568863328452278464896499903175038528887719938980847189281200023129894548680303199432789646606434738877160970133561452557957638102328959143298468581618899257499575024434773346898967544723917128812404851365398104205062765772076258376504537665238134038199193763082271618270995242429432161482160283896736305938595607868783035191470202697476374031549338009689994527857216746094859262543587133902407830777700899447194045444816768386169909716105580075135565279951827723576691949488773936964453953405150064592786330835720394145827348689002976695260536126971970768330785417233773085659268226410654606095813053612991546023680655715548784660010594944525578731012818037417696772785125013608156501742169199015833174941982788772938684683821279379671017466450518573580221940628935907072383012749115500150014651010036298643044939153096546898010618753719984908516303285114789420011030857602732507253472125726666778416274543832058152848137459972743106862391442036439645042330432738799351806518599773442206071631684467086717475995497428854997094926594628430822261857157981214550298433696609379209997540587524636450931292363206762631103975108884609018833378627252506967448320806820548035501335793754012862297269645456560130275881531199736428536752633774113487469239410739292765915964778146772752192191902423280428600675345936575423051761913645347990217446299604818346003345286668558969206425629378366211736707658992385159788095618975051634553255611083710717111910962774974396241618228768446408420006295237333051344433119756509981278658856159043097342387240810572385623874146016904116668819759806814699160770337394071168375851742970777857914047594591221955115215529865351364851068704137546343153972174094266957059915506391455408859850682160035087749156555277774773599206281645775833634487227347111332066670754819390220198750237840224107542133266294863828081038797349263711936534138493178303102252200036558550372908312680423624941745013175878676638124010570205909489850167319892180160550505775867461420410975354456061307445729924057118161848074473571568984964349731610102499933773347384807679637859794524203286339494365495029059270101980974203572717106823234486263885615260152755396192873475690160495599221976237487952771298978518450695197320336043418929455237553092810161192999014249590305220735406398437070903615908568199486031472147477307738013007499757961969449624946726771450589682879170240588603778986395991725602688262218222584447746177845423094377724904865885270384736760154284073016478413722619245843521905318601126541378355137508587387748381514675122121484091812409015026591122031749412946774265373671644553708497354036563522123091295485296222611044285179679588315528679734221244844910471745954104349173082703841609033823900676017900546543911930756294293187945662969021075346453766196087434555284602089746829149969444508268658252535094261904732553487996221694714508775324125633442813151470390463719591594464413429513429206628928614587425727865568370017060523752071974556773550502414301650347107744517331555994443651007563071129764144163110641996833817375864964706498389715226157645101411410073557465959753628252411805397232676943125413319678122373176174546752886777257754974417912095112549771971174514659588501593615130198361670023679775240311235946484608768287492775353319839592287544673440440377768777167956285939080608428192242458486418563322591926418460851683584206009616818555875006378177193813355274467160305461809050594449572905507976650452486639158192703524976978426526941619529719608005300144317633857015608816649912126319313046563609141255108751896680914922648069823762114853678546643645782153271506416325540513300682618542129887239237856114117039220561653314741044949213617809554791496126466965187303702075909751266679588969962429934235560382741063482962097729732534428895960143551181485138360275755384650144804281395786983126006885190175004457990991812302592714623016157043850745481648275508053496156295076276269993573224265738894472108935586575967057377840520644163524406458619222666815692844858609612100625802049504996629491476893537318377675818178410036526595093699825519060074023936307371094903689729850967308476585809853574079864166921718604008057198843148950421593803737883610913617089522769164422162103773082347157314362240113946069236209840498567628684630299001890763048131531522550735881803098805451881524728745829398526236154770520179010960550607638895291868845585183336357588242975611715824106022295085961169808354097034938022857067758810483298278783697741071888909422834468877067043508906249238642865598927015413635694291343058248717032137061949971013817552923799522247688095654174605896089511608703914155492765980941948262680392690017599664680519666813626938220852405754780529930317490245713309145773048852152175212329122888213641898186987283031367607958359864382231175127565873568603520594060179782277410991505841112710568860713649902399984465083209551520517863015930139214823642550271949096410836820863719810626001688320136489404286877453230011627276834387350292023643667815969235313029423120267507955169967758581648246492436988260175329297456766446836404078624262778091416276071943877940469741094824323764992250737123662851621988765312295251333557828989357678002713469859436622448231550784556316445923950404406921158118161193949631103789850703763861490583706697604534374564922429337410673757289923823492252813226398938542187687159430312607155932017098260134846384488788855364611422081314647298915565997473218426703956680371823153820586910658636218156361242542838964729177516414936116321395688487587285989786421337776280716662313887646417113337955434787779142431017578085381194496885419551512690224650535636898406143490694487150539236342621208291476286727932353355652639361053490061957501308259591089423987456797551506105833235849071423856092403389588991551399708641207337255763183887810750432302085045166290647438265801133557744470542817345919771884109485589670292189136368110891492695270614205538970555839576552980858396131933996545284162429688865656016987161340384722699413058614426072259842595949720840891937905009287159793466628489992510801060737249528288404631441217010712087505785513040758142417610450200965449581889376821130765718276267495364322869493763083637121574859853644522333120799075112528892361492005794652922451417590650270778583475857053024366229273833477240410100965865645818737679937535496473827258523820620634052947133310728805875071928808969720341025154538637313285066942572266538555293221858463961844139329940074190162190162370383680381148963558059288803182463530922979137780850133723034358446533193823923697190406104288929779996286715664164577371699441666558424021313656139507849843642188826845765825407203659989401289622008555366700251340848902987183416938014329924648541247659745035154025220617195118853483358947376474347543591328088497058130079096002065266737356455449977467019326403052366498523970183905215205459915275818823028331273466180687363560084533650154954044453092548678306780232082730246104558473398403936327329016275847509436232614160346325242787523087754122290101304439914538024226969596217620029935592207508261550928501697333558318106639793387489104649976436034551565681906753494481943217346133020726108265822580582001015001580239179198067282602064001110860302934805278845984863450364230209778277593160229537136757378953910074694552813653588993710352363433142177269371384864158992598654129539403392764750058293072667331122469617993259034176662694815204813520821367129280406708635889732041452626803207315399334203910838581623061817651661707386051438252445490935712378519660274224764128534243286267596213080745470535530754837556187748688196016191338490195679021446033779153537708374019727016357610042564216176112704615616769324072879796440900107593979707162438815369614019960190362160936487680795077075248461303634717139336476326857771859056781631558694911814993946709492455867283876356319186894074549774990078286121115179786875813621791062563641871478081324152889541123379296682295567242929050384157472214908946476541457820290217895466719457978681698100537942839906946666374458373981809222595110589354316154777369247486324837196123064150599274852080486278655718761097091699175204923091056721442756677087186915969878562321550232520515495752860573330128894264291125436937631263453411097617284734550295720179268321714569372667242814025189817955726627550229334710539040757338072984227704625024872079872578864583415720547180404710972290699712017933202010027322421343985162630698338380405085178710641409046407139547562369345801011288641400158077619952777436235814814498583860421051561036677380832676384567535431930761680105725160792976795411148427736791690138450572078813340486528382439904475163400630808159940857569522434428400189629582834393016573341149502749737245339302353344365651866879036142308728605359884644882184387722434148140196349373631661718801369940120337315083850109189351154124785519056909027618967000803097399316429123594633428728254484980613836681398602585443729048212903561927008849622775506478674660139391409811398493758931810074904368992274667366015674819079170869621480299724823468131561437927631885012433863722542247115614196483045220592281121182293454985798234956367403834814846542255921513764456805094413984652061700984405576508589246167504033634039712620705779172970720008261018345416672409242099331493199281223029892038157557832565008159976224516404276047753912790741099524541324298827416476121923211720535224021279432151257173122108860836923760333564679719089663500130480061921050756439319742669693409676612426200075471388401172583849553934217229760237227620311428764268663942083610778853047328789482057676617812966988291738284803443429524911423271659295979141062521306706014849980423176979767775714357317591977113462135102576295355842595753559937868652523235945275744029548346789500438525457226495835141684839931973037915305235479109929998059035436738918359740555162367582888260665422985385226684742276811469622543168935590773786995412624590260194596520394957202875118491764028523778637396375660193298125102820335766415157177478847521564069956932558724116337874718815117421505107692701934021453343128712849358317147274699012528248485410718953073238040514485585142221007992648089958255968677488000758330174828112626486243616072866266639656666379284932866454980913790090675604675765539903870185397394586651253639750853300164280760703105798992786798374326305405442099507214926985487347954228715634404667120765817719484094126795595740078630650047924928104468146488075457631407263733675613299204820775397643614871138430938548413082666111424861861361762422050681567998402339133718317834338804930379642879887041509945746822280547732911963895844223390670396335198981469694429382298793620848176697870004213425226343744611891322569931223476678161607011096725759846218830909676059502554992096758211339267696223323299264558898366810765848498202796603576947283034695431437861594466797021500779807365786188669387781620395205443421367141413471128957674441444332870242617036247595249626869440442251058785277595227023841126348456000600212558465132746544911042525370675305101346028434228996625279540404274112142854766333054983584502692597963984831416191676174673142938578425121978103106528831195520745011308488293669479077465424690744442113990282997679326063198415410034548993775489181414303128688148060423334818336304776578989581344700095694516202774421077213176031544822761278060053580564875633268686732026801824965518008887234411427976960571058949167081968275314048636388103377179952150538667908728409506193863099065352944871129815368963853576521257451088296204533010913031477999279678651198540404227736540965692880615717611527378110295032339669640182048416292973583009562555373731829743885480107349117925516686753496435029229604016640557185081138876753837032158923195182381439679826217422252688117278012259638078246295257632329679782751647349862327305442677735784511163310742347514228408470825169206742034390045621789035658043598570925006883745315173434554364658293226096787899452029582159839296930571591362500707607189917413460332358256884058419444936763798589822423406861355260010083773966381133526187243453939686057939698710565301391238978640555731566642218486587357899021245545305909172394978586083242598369524479298281467380975034152017812467989509750064558954216711509227276083357002877839545623277888546381804204660997757438687390680351305942885396789596910219191386975736479152025813756255708903036734531339184759511926382326505918569503740984304595616955814935188720568485226438771117627167015542403322830381671002886789369146443490053591837726862873643032384838122043357486956164297102583474728382826740662416679633269998027190851065711326496732489610304877699521639894265046331472922948641306505969231688232667912460440589007759134239542548880188412964936555038512002718346362934625626785189599686795655240561272008904550691938833163227453313600241568383157049456912644175838970897116824622156821005700035102276628706342876826042447205562727902635644781005047051800897813559295077107011116579705867185408793423034356621860078573638979022525426539114776635733228994225115959874781283640163332457378196254858273278133693619874460070078438399405368838540481972458528375045504574726638975276652845690172974180995589168617721458642187382173080876611354513450539125365797484870992888022256422759661604272027122017829018634590088644190834291119886451098165837961153610306470624015297862610519606026657810638101471860329392515594459575701249423936557689469324294519743378026901391026063546224981235018450668556321195856898862973090336958810657372330802196874392825947118133889436060964943719988638214805868984477757318724186007090232100458032259414406460645264472083959838854947287580990122718697289710333794268718797839753186259231997881519576862896268380366733278564153146290400428864732560756755698814577291770984472509418151604640260137890163582201249597600382411096852937707632405773908638034198674514748642566984418583663825491477738070093571290677224731766638214317767326900003646231244079543319407402341039945650630852210169416983573770962297765584593374911145970569883321965567549072002669835224420965505424212688702936689713330208575900427604736989203850530273682795293764541310869506844528829347418717120979128193627033542229475327264704587700122729018077809792935458213439382999124513239129914596590063263823041525081214974303866093940276513553194470928214962579806036856355084179091749738293779930634666677517457667603443186729725197267167718635978261648368051187191351784016662974205865264767673414277848491267027352255142714458336821720731327323343837961184565945859323498489960117151089538120328682787677383101529601219102340408516617738883604212982772610492848099195379388017818604207231778241340284060854829042483609610356300409713107170778748830659015888880139447535264300564589178669749425319896769850025483781547984997317615438889189395335996651204266024592128241819586446223462353012626089919565639237445150296789266312362603188094559656294463633934952204764431036281863155297508736028906162102259319431325960063211250679618972347996095332398823817242935085868742733921854704322443775314337617324697928987870236834449786110371450417432000984334883783439523783649947896874063367286315297177641685386329922403147993019685258174767532525227165657677325216343850181602539000547970879946757102060755206310435559373684945706795206537225149838052684214336606942745807421824244994572226529534762662079671329852394977921596292411387329758992258881670019352808336871895933821879935746441047170617584288720220022341699968339130436690789680505383038927809534421193649986344322080304767861119818449670309147499079035534715284143427160136716352597437141528588451044068034996776001322732395105497052379728199485369152430506803510652093984368289922993606889132123849172454753131135119244211294091086670025759755080489527318316421491115941466399712084637322131426959643026319227656836246651104435890192459686762635839954828461268552946466493869481993919432023540215694184672928516939521573393849363886068053097498815984887116150085739568981233822069753457813264464447962347077875508801974965360672769313658492058171730815241928163132011491944064354718050677175215776041681859935533316944263239757151937406135968900778840201399351847509210209162413864320727433567383909743488123693559823956223999008548620909293948917243351113946355910656289855131990302578095368526658492682142616948259854407099660694537960733724105947435080353548940021828839560881760820863994552488653142755179109513309632390403668787039183983262523859752439466136908352279271647339747191109348683654727433438700109318657248460136856843537281784687532108336798431161665501088978535275668592368073220247529194545227413284354142485256192533719980040674543721591984605089744215499381221602685217092937297355773319114374260714542752436021692055314453388442389727238032857668441027851103405514811723113523735893663060100627647055474289128223849343953702501356404940524201519996541221986621602533236835548827080223818589624741501371508068368106477925716164565195697661243805974822724385252292215175123397075713206591437802458772301623097791559689706977230898186460462723538742315028515405667866570501336058378896058092558325730128080081023337899552746514230802481824961788437319084762899142211064733577885865189299149577875382722193778047722859344076754884934469551387067438822988468448263279478968913780074180836651001826937723258030962953991062270884861563615920557599909786476315142533707196855602972001306035764139634445572173206799592470883370892243742233774176080638519295166303383008171624306710269183273601120036463500943799524643737856197220679358253036727084677866767110313596455650647639326427875199734233125592507052380380792686920489377777741808583408326791333972534756964984211154884249835324374787857288804882267735815504012339499986567427927645356051938163069833778488816613881046130294893290009990853259412116681741090661423059059444971666483993791899737900565882298392787784348768599413145244062043740193589499331198958103008066028713660022691581080798739401171031470521670387379535090358846410105635409453697690467406963545056489029873639930267062608889776025556220088896809435086616343061502143073428833667484802180725022328128794245662347703545130439600726223714032161909855823635996110027015636790357450299636038816650118485953610999141604237013037181156671313002555186442558709208147265591527751701419701969524541995624995386364435527789201782731304290115370594919391815768630280225361324624669503764215135085277667718885924996704042657895042723385924265207456976645742147560912636682402371681267016699516055580341441625561466031605599582921376808799109311153942141352993272847922342731002244140679960585426826349547877171643798937952653333074388388221858171662187233055696850102542059334571833578526920433527911198937075893060664247766836865187949946488091797910654847655843437213640083251288206711771106439828041406934719888415557730417828048964958527470779259684226688994712493009762779625146703738097841769208321275013567977002989285728809044207229036842744685366100420040569196069162659215045385720723682335530104671240495930874582166524131108021769892872475920829619955715495822946586606168235708706228517826236902604691813281691530392072009878894550224182842902907295345457284833786956740375603524426811518852166088639565803593132297934749759651958315122033541763625191225569853062007987522890134489349535173518040438293297216261279211862141793804055253327149042866210742171761928143337993555611203520655711938149333809745761732932891124523434330152388600115421589935323068413506795362149699702187824429155307558000829155328912998639885419307324646487112229012449366081678612951175810576784012590325605164045697562055676973130071268340374567621385183083683499129544484395645913865229829945019804687525924437186925834165755257820376434935825879202000790334739980220359963652432726615114578011220812292734633038969689388972050493618197918345162921532367529508800649257645479986646692829443197624664754471768625372467590680016756461819289953173034400517463041105183947138231070087588991592762151330561282598264579558455053154300691726614848623371198907189637082276837399724230564957652000480434725661067782592469185264929479863414560951869030555923129123363473050659841826684544393639587387061275692392742657631237292740108730253188310344652429395314457509634617170477323449118905569970596853716546232902322251775714205953975666617458393307623492874028803317631054668267502111653790310116528116528110934529319972811403126014541763325635206161799461001070415492738924347835846888010247116648858056911722514025908187181420729727017676376660526182531627297106073982021839520356166144655479752244184894509108741523341906294362510481995923058089035687586572207720756630758463280943645794286593385783999126110363361886308137459852283517949203424698332055576010578872746101958697674847176354920308027199350884720999246424569615365721670710890987377962563901237277237757840232857936733317019275751497991338239696779304080725328294680304472942117845098249840886771890773175901519639819122631146975672902885794312938008298948715105048842577087832218741857780127135763860831780493696931820149944329877638671338972775589393029090136485056766156883899340025157749454620986280943726954251740735385882301438684928647198325160844243718547783721076378831186667218259667377907916566154105093464159947277121258444168899030865690181922338226833428992913087414726557618412574286611241811327648807320675217119639803749049713532132666201634269555533481951197120026212798036699541521007896254396213856360099501964252285907627551044204269020756548813108176388306546885603188381677734428972274471324409439377404873566359139416461220578659397209496819553439750106172290036158811106559687168205053139472636085372236516908228376765447975015557935649180212368674194047652811484128035975987717288501057862200859963359854759798176163407707440475126661153200882743896211815766180538494369660717319898847054549065306855933889926217980612204838881250010831663841599889823188114587247101961174618061565341472959855668425835667874901937812650526823547219123782357640477760431667814022824607740724236748626757427529546148414941388439594743369503575018494490470625144895513168568945875367813241878975295468692819295249376148050120129222073190152153333830131845147005334405492437546051904859802789988869562409203805865384834934638961132864234421534465141513144184942097648685500194207876222898908107506981325426498017496587221006115054998411114612772539011040008487167680490257116543858360023408476321728595431549097255452253977868111420546566072924174411707552443419089119187258801565958668480658229390667267513728368179335043243183498517957309835465518876518377662592723029685780487363794923711169177165188856635919101705413617506798231163223855630593072856250244495858583991930461049212506281171747431365037444019686873001556445274983843951955281823469274100060594069838006881539875896260952304706898392978035644670289303099937448223789517544435338078860190638996830643493530646506586249376049691410036730909087061428530153375618172761001856729606134630992846897475777974429384228549279548402574643319522308520568686284776178033619872559023161998126151176444046711481322505058549881818273116621172114021055014681068949937502524341468282203746883368229959691503793588007220605562178390801991604620541413783060097106568715042016306403078451174275810773780675262408413636187672094192375465729502119487386565280734252958397665116738844796771546699396178173779806935957957074908384111291411091494629292544343300574554724076699651520306045570776941672045468690337585327777577026867114813308075275435957947732133199488017625435544919417959891362723976117019726088601671843303526885964975869999720004564923844778992522883601497174958038135789264374617551899299296206433729415322009395900846198080060559586995621886015572875541732176156026868321070608905883880705260865208825104195931059655926395189023459133277985759183581556556165754231500431489865011139011739188900020705362323523290211606514692011693298920150317003112137356407564846799092694783157745764645309910028299853972595136907043300169181293325597806142287604454054008621143227503434182272562220468208064071063628847784917272321050304727405225901914759882036858114005368258763928723083507307884050290765521413624395725435525801592921170941777789216699590198782383333148606707308550096418436569706513433578936167180952038326250851496501586888273490814057599660791324661953372481847703300147740747924561198033363137482680828676315607922959936594787460925767992596222325712368357321448365957476526853708000772649959512892298661083405966000384262660244289520704419527004190975828113536465157074716520633667722153111009925393311122214601210688587063746876722798970071296010072146749291231996759662093150974547657927654920834675026434637953165958407784822842859661173924262948053620870360762100285052221405365748493522733679981757642251513479181423433205682527862233134392285971762874078342589193300858564751664513686321382300655515601220202490807351684418115669521620525218733923953251230272582360898993434074312596238783811915533411396671210118795260952318483770661613465914917510249618824951643093978722374128294245865719049283899398434758124074273516671286052103387306796756196474986105949002825596603396375493068572163207282404156691332168992446692484943315910500107078328247662501175421763333892703443653917463175515676873814280096770037027878885250004472625938810765446360569297108489739374613256306790496698509905151485803342958257022146793366498208296857704286743561453646733286136490800691050286409128676920315806169462051505187241734164050503986145513199527725764550661514439404998407786685039269740836171053413486849709673626907895403824732316274071551953027735136418167112505026243055243402616513920891520057142110275536237736852080232646561723621541792554613939868133995018210633934195812621520123061968277901685219644029148975782150027742042533288508004822170019578889501061925388082452377196992860941830236906372620683811004783508610096645378627910719284973257342693497594626592728209188944978735959194943706140873659129556903867959074384579453325277889232955048122998678956260492486749217746503327738274546515841315819357407025036663963653803372432282835345648029388933152835255288730184123145817875883656660105097822490622193164214369092940856982787380498641505817205217065581888443052576487740100446405059396016602896968625740724736690884459641978024467075692153798440421577237802694567112038965135143421843996426889369869985363969591221655428284036581953192230881667311047666134598271556000713272745599105056106970777988052309482809414543120897043165389582302326307288217109273216302598455702571584969513459113024424485831882238837346342495975505949839975385218752318945069040758229356382469606540378772537437690267816390755375381845814142528682188388967368139203237773899450695034004443872086312083030628748857792168622930503101874476298323539527040577349861967524538406165517269726500024045529689172016346401857458690129455418327265965512953634343581843810553287764859109273359849312257372220958586401551931719691110850208730530936431553998229139009878799379007682150273455868791247632887028374244183987068403024958093399480202189426501250633657317740926331095411344267234446254048897800852577074763324705108346513451281177096837458391033834756401808733770800519694337603764844513340654099911339460625480650345341072582721088908982096735108879822551740631981200289721197808488760736897663663845236419927757104428954268419929119434041164749031224137691053000084657515069082561460597839296617156513853321804325601178689665389648138590776213339348942139178625818214722404419090864386299710070327760830199142905430009025303249395645455624488004353659536321306910674477260498408469934944140146022441256342811022526584184710838699233128325347260776393531113181755331773194458579597060414417853268951621976894971256448905754301190728250498745440425618872258415414200228439442655588185261215489595437392417877626289613508600450518007059187976342742030430939631358038039911929676304087354588276961924300175690178064501152504206246856782236364591201181063590337790738546340926520154333288815468232334235388201662561478783518412760914995749496706703103234765120724512391158939866312052533297759135850218209448865421061643086830891851224799228748322602822737758393801221685793073828839085876157904430902559824108053558833220601573421518932909463035672687459275159447540275276771793587795382180290878572655806614420855899674310551865373478001459675716487579185934424959703784186774545087034521443954399327473905285894169518302222914087258905225503496736966862855694774079144385669000776934836832024837115026686706704887697337447233272063781555478835628551460814946418605547940506247685455067905302841522953349165814577995365297471515647640728228006089656269058703378531956249433914650033084806805608986198030464142970660740064359892413456249930246989167635305682152933837191142737995451865464351956967664362203872205835432210926483022879015842778422504946241658105005365573055464370533430100023242148150027884727535803239399923684160655684411990781805174630712947325257242583455798280799809144471237964593079873583835458445933636263018378273970114418243472322929707499641979042263304078424089488880252952126614817964723791683183483240990171196629954973449961818603925734205658884575036338324248611839893285227948247373997389762796850110705517886858630837902021621954978111504947272250330465729164039990027339174702484272448953261908983275700248221400587430121124474813596437375674262645382366663345104738617612187070491067645155653107517804809514390032952340874991910503808098121360034702595253102704688116191779551172606470788198874592253328857084753309702828159454207058839509096099815983881214046889170733917960852621184476906872499538461796618899460213589298726514491264664241287522341135091434125647231427812142395614947278370385515328154253385903339515373203676491853687766449210907250545262434631433293570718527173762041271137396167056130495604029596108659812303826384981927949290149381439875885943891628578975697926646766089001867870846076630316199296888669349869631757049560476004520788178142309171535337345447903470837253676491481648980528942687980447124307688204230840148676327309116680800536884351389562315532891696973482691485831265897323320015082095582273061818561322714870987979621264834019086392896722938133307023317305135645720741761209823069614008088819656083862107309242611535308198142741330497429756577942604107034227201999162102280458885380428097194906439091656833300910018245270303207007927061876748547412299640907329126416766921551149126282906921198126778609863173509977416609557361092339752350878165520031070152658564428672962484461137583173422593137078738671701513340419232136858450657671411116290640313662056621322141748109883108976946405345644232496991883407212157668597785674431896296357757355820801921545281201666738830750767519686670984720591799060573493175043638554455646901242543756745924204809485752999176448208099465447993313896593984866537110943544706830998609907943518768020515495615093316247994675698242189964755187787702761022257443161737033226650905081762856546304565595986347708022491524151651814150502373047742043451380615095072267488712763979222662410977709152677408767373234139640639202019826356429487578314352201186905373862709899851378702381309471638616291938992436462196016247182972955755749415872499690471199211859504532294468983702333925988525896391198913770199815766080782191354612913198940030507958371094217369701015875170942200028261582234114815985709788451109008394435250508483894907896065150121714181876426494344844055352378538296401398236549370817210318570479977182893595099533259380831545075025210716524159509797884557510183191829679536104136940151580616529352671338636111447727212596582742340461257467514987426468987398293332481774747310280007721760904167879055555293828237175509966257346471252567209812016039630421874424720193834475650002988704756842694104232629417019198773095520208709899596070254808083458407961189988710600074803071672301017044279894430021666718199559252450857555656816852012934409932492481556685640348685024060470151186023775547918850702096111270560622532010809923186270874195962936565750217385302172828373037783060428173483704685717998577612380357094935880431198320384991888958930745730571962924477327918886349284647469652219446657475845242351746056491649528189143015321909898046786971499896436166984049003894585472901568254346599168530987731800911450234520057028601760016213256740587513275442898283063595835469603906932712910438643808811404614904283838682313555313719712599156771184204142019410356601693849223791637334289324886498070261205433699561387840493930351543575338774761682698723375872034498137212664323325411596816338805934035184272387994457251084958940720377636483681680344860729715155723938859835891910520408431223244281841703346062460377419682078875847122969713008526095538593506273202534620640457497196211247101779794143223940040799966523091614019098914904016302628022426049843269179969796454719410811436348057077599218225600992774845089912892935602926544975920826464948024558226515740604411916264902235331671835257915549677000758359076828844926879262259517679797296482921291915276223940882977826244449604641602657174246262391328124192125497591286728765893955716034149726256484779175380502781546595288269757786082335987337365307088273423142981865548838240046360968647490531692910887141789730754698964526065503589947639854792686045780787128937335320732000510503821422518121575394916484579622454318760940493167081133683857283165711927540774891345873637900913355202245596955041952138826626005493132398126229638330347014420931921221175080817048678255912611815790730569255119549526538349570418530618899724113402878350642561056819638502971380223917639421516126463288998950972022395911021309036351026500235355215418755378261406313426575168682420926013153171722286898498150387954107594504534214933657375265154014597033471181971912938530995429755255592048106442829336790499652425159473911654468401921246207399838069880894711444993124423133489863075277335440475960066507349708258921590039469383918293093888207658465723379850003559566942481315536318491912204652505866527053169434532589491257494641768282158606419451375808506776397487304984107964081721679017588730549165444218825065949146760563927961896315075048719322880243184238412654115790565560315070782609891605810426228557162017366762669094554574001485028324304862584373610810183754022510771868582477378267313530109164045522990338864079087462360176192873207602105608727259257171851573942796713406861369619382455447375845592654097097359882809558348005663193916662488766134643384908554650057451315955352715858638105113148731977306552170939279213568361131544537337137024183719125406803440050940053199256673767454960597008969209539201766433982596214598873801937053680837599679250552543988736000404987060074612587227201018919707692926085377144166984915501692995392687388353175699056699683018406709483248977224000060606847381058251371450103602053191092567019725450471481354858838509577775044648744887397596760828225874962678770353950668277569389860360051734302933000172077152183533072143789463686702828571594149726275789897126353058476573237557108855722571349827291571506948910279940479594791646249359236894210172753853519913489442436826605285143014841739746535194100753791393549520980578524167504540457543384188042515670377892290835294918329928842266440506819215406261142297147090777711025036261450470422942537738582611204166320726591036048858919343373186277409979356993350932580998165379155826500025920546990693437209178806856451213751047461706914344505141025111552179265656610294510218319571377636364882179543386854342312623825231142838936119290973451418100269161655110850163659338062905112757505198034495928363161765515034217963235447449582749173270302540731769578895063998291103561871823992062581339700193358571015812109551227651355306354330668264892060064026246582221021386376095730515300025194461584519683974720401301423289580844321161848278261606322737642329312782933999175214004265679999678016456619231865647233850898501838559090449705388490531289135069412340914672767013980624940088403630437135403256794287750651376436852355922731517999661579940525826974546201309752345103167595887903598682841166698517508218296185615633009067611800676417287678648266378547487758033106481191365237379256718023708450372762552008808351779211016283290291912961537461337848260294442825444270177069669828319636894867148876696934706949469489448656380924190664184907095215421095441324643006777107574674290150330681079391207740700260177690120856906145037302616245446931672281313513951569081580600226499825283394149590165402725164326346714073682775706913313277372013388721386416938496419755715412227531988260184512513700070465548748985756014305311072285775064280594065995531685432058552183524743958385913484228246622579324124177038523372753634845798689263372277905371151442661626570923452049600049317782627080567359628707071566164269665723613158264675471501389475413284299248245107792377822491181962662267852634524370173437645406854922349151175341949905821017100069031994427896555102883607897172755318546218773982220851531741456156076569565931853909068063352040901477057452291580188746387980117595790609367501365157426912099802953082872865003580800126046465470358540407804748692274932952872449577045849874089154785983931653065968502466781163005014994657159173044371338890171334250322138678257213102973922585886381704427402926339970071997791539300331553420509811594041323046814868864653911145515559753097023101994117624748282933713485021594793509279349684917083651702618050353275271974540354463724719093923504899923814197266727927252413847844820324368500902516749739007319428731458767734627945344828405403594002086645803519391822522595792785468532501262989950435272630244696346529402989264693434603886300900088061890287735305183886790120953460832307513239400098428578636441301574445712704728652692456261458923101741571679761478441026220281135192642825658719057712551010402722888384510191049645595954604651207011865844183917482406390210670065901163724508082087407710371668597055282075727441115951129191822289577690196143572393452921497736429583111728454045261182518643992443060094330160232405603322460925659321409407177285379545961037784346099718275592821620194617955947827638898134740219929868720630816373778373260676018862165809490064699999620423403452843880062443894850207685610751350015172787650231785724767259040466219013441957110333186023234159089258955545769874022070259780967212600895417522120533031417643632707837102432331634055089522162311114626764538408843469914863331453993828486066638343769591114603232685196025873704360481308978791973022935393966187094331931647920718073198997412846790767401069600036627214088879877827039570758153156926630040484127152673843253205093213751685867406633079199392693009523367151120401007137887945458438134635065088266850272456045819787044230751112518868052939141544699200590110954383724093575191002157561277866737274769526817559295436397647332915909091671839970786507044853746825649499140160756553067399730439975944683870446533084151956598287940530210610458629710269249801500364916747419065109411109646924996693922964336575443758669004434751089075926137000119462711942650799016837882445236079839590967155338441762299248879530944580124397953625772161543646752132273480552838751994167480781831242751004245138485701923553648591354027355747335004913841764675254962400085917751661578823015268506844186135575524857173590140243574666407326030175785814763249610223964917815221060179979134902069011205389601124848555115442286601452553926983987500256111214490528437188473092046602712865721937723554871662806162551121606649194090811355627721280752613900427988738489887303633559194309180228886072060971069250593177297063102577374921900697625632579974568824600522433424313300742921345288355332585530693525880716127458593186543499876442296337106181532138713355497141931535727564481402431038258743552950906195466390348427077305003176575515894567759798735050845127191037572064316886553371266663138199035346352636224382191949640719579088633209097610605490284780076781353622574941844888799416863700984389155984369390534901373408295958551245736077247658911668525860238117606844444157706368942006397680328348747152719773402587470771567249283111796437616615756001035233254219274904293429513658594814439809980007278130831815975555315429212833155120892871295678520962730241054695155654246663961920358250682763940025792777664660325050754812513291668191086941484446262028613971751790530941689775482569964810113296954208269590832947971608110561212628491008407556497208395579946119019883521452204238849915812278826283737963140540779469671047226576412941636722075884268213377728882699752306867678629245483300543455409300842391323958812148329387409524815215448488280672699662358060424130670083205671426801247732624352148770869667690844473635431859883754146998255323016358610077759872470000343889266813836747628919888161423843505451610253589356597689896918357563473849711272473979489069506806851773921158445299992185636307082999513108666332504487074016653840560671813430528833454137202851504702687671697141878544548377803869362563803579081398080370061505511019602914388146332828835324760342445111738843790840357387106955507678498374735197440475527698693987124508795056281774769693474081659173218794352849653694397113074372365954583247687708932811860607677782991744169992529506992113912877444812678519997017351283749108137487698408898287067121087330433207729388643444156284527445455071335494726181755169902143079876279365094911807193477569335747233941196004057015876522073523082999800897773368241219975231350368198255790477079515913338448157886715871268825952792407355565106751589076045639106376514387561263708755572638340501380194087533574689507563290744146299059692618060726427334560127279234650133125754476863758610441074173888410630641600645228163223571798165414338240528064896079478753049506387973201050738861516780558116646591026454124077517414572527723499230585033746699357837715268996338274130685466359057208397232246600677282748644220024963287174904290836836836312152257504766252545303561615400604348213013404222585052490308981303966355351581874253649189526892514676158175729436812530840582181409851077298993117391187223306076710834184685271088212277762391144662886958731179187951124667828614793469646466200315745602624582650555742809483340646137302454951091877476928821435656553544914111448471644021803079084586089282979586369901512478235547494199431281012488316197949486000044127517075915609878892105659687901998292586017826211808392244191811965323159059487369099946565238121915410140476824736839145700825434383293770887833063265204779517088172154715860921778836531527018562972318332144193623209913138166142143577387077493454124013462127720444647433118887756118519355541679469762371887926416202369736756381193157764374349043442818399627233950831894211334104293599914272374518934981333326029764217069886555030092387532375392990663323922996606111165190723105185568626095749921662433710046902999803331094038420748924851873002521052979133643423456746191351134931836984908893972930905491127514243347669686916784244619579057573931788258749015587834013549923159897148270712489234479184360437830968593831242380816163389509361385671396915984633980720226027193669190820955357418871137302873461926684503954785083277617828988174850274238403295421090885909074429419404188026681091919162207365950128212667469300636760137159729088142374959761437430424689486145025818487834650208751620669000589720288647542945165547778978459302444101789292210613259278305730094540816099546608151358001833684939785750085172039931229870642799529419733576364941256119264301452476788071013810437057422990803862838908617689855957309896818723274998438451343207866192014857439178953771609314008699095409975693984205835074201103053861123733907011084083025074309925827712384571047050064686184882073325722846600913227467805325998256455978003592737186588814539185462529247984909527520924308535227975243344907546541903934793832349465453053264521638520465177284515450328588885035519921518130187575129750919198627407575412504204966044803818101839610960647384022507362162182827632304411999121558632096610906243689972062355899044199516095677257766045017321509658559644256241364536789515701612931341288355268778170851865354201811637474764198513144741729878067139327674462240214607399931810487541770511867514712039050897869192065367156970681297600058126211586661466467191959826187539869188849857265090027679046412108471535725070912290731312902811816563412094252061442675535223648709829939063851778689081978738048290077478824178606130572427149972002759364231483614410224799422135581565473250102916513177129177896601949782522432749021000310139142964863777653703704234514775300157802083840019564192077040456168580955103511825151391947182805370047976159014156378505559544400149192736693401097710991594667722514483841527025636791329265510814428326157447980931322544286867715427781157979233261752159060112827153670433828671859045204446865451410864520770545543102367873581014773175189186248639207147934582820722341045088279523057942872411271134995597932743745186420090572689654662211623389106844255551890770576158350311646723540842767261428649111700334803334883796552037369699769978204837039376176616689308121052654008591235225718641077742307726333505214299128624046010614279028203233577513896744508326249683424725317226964164768157809577916039559666028575197654759380502413023810390014212496959100806740925832241124636299260801788648625400171602435141389248077167797498547013697003791231453819402857180707985155167893798958117300073600505160567214232509299727202541659928228978035838295360672998158305422539032524401024180761964896580753558767890501620932165636550464911330169519597066614222026737365310596198064055632840733955265201709716341899564140043069186920507073520094786102025038624088362435576687034853189484022256736404130997166913873778970876510010932416540364962473964587370403770344768008049092965977535007093096590253849790376050492381739140759582543259462377182977505860560576403584485430210616237951598616607696193294112615402147589139222254974958843685494463380865932542797721457948432219999654665815066688803426600601899661885246690739193499624629402828637183830376579778129705623204027103226712381624252372514345948082202282981483948041518102119511076947866430223554301759707796935114191922734820951178459301880367770122651228571005350341834273382370768296995203974456124988441294970372515556371173164511089031498473289575665992849870131713120450263471829314267875201618001737306920332828581423953757681816049698192151389984400247834713721989285708169117632086645289522990831567740657009304799101286622448489054157561873044570654193437575299550991185867812779721650040257983282126995995325709397470736812656780294790913190699662695180394742646954701578720783338876259971401479904691454032881190800305629272426191421715630748092587849059514989051875986299970622408315465461674439022552708046123200110676701811249460679523582175382477399458159416627959218334312903785679218511931467865146883098745426136453590272575643325834749930310160941224729316146876401177215548822530162505767851160381038361129755538874230803234407503855292809430253018260554072473101102760398665669802905259672462230883709840731964292005016453851415285707926948650062261416724842645911809200720786459547817419919999916208494473453190238458204408058574427792136491627684825011108803130855710694614910565003050133915499995058796121097557837824787952032675988964694495781297905867821906776332894262591422081665784702469423470304211986540965061882577680716260422733026065458483358204935436162099726270884063024416636820359704440713459227294742694233793446826415216817135463150948777858527050443337352834400348775912530230431446401548413846903905509399077971847313504435814677068455794916369120441183433381325401057388325388953651886823288557325211060600011626826414608557168877842175817084991262711804380749371926534988152311177299650779152306850753094150830527418803012869744993111520094287516391997233210744266392104962691095721582265708083414081970627463825822031291368248610609879499057234686382881431797450155067879956704859818854365975376180266549285928270599403106947895447730202665349885426387434705142861610414852961641564258654680037325823214630208915649376082592179545815798184414099278022200828849438040082315767019205298070243140757277150422046119002268703030506580286552936272570575529793142831527465107325157175604968551646939939913548504066938441358502970573773057582869230712637132406632480827125349829839623769443980681855791450799107927247931386388523291362428075895417701985714057252469923807143790904322381729024185751624066986864008130315171353966243648606779364186008255800460771841090140697829831576687674040945467691541744505500482729748249386773498593248888476321103917873315133900293293147424634571329331801351622921884185626240426406169818585529847616458737084718417274056649565057785646411658610947674152125701527759860716464147604286004950716868345571968254745945119610368189039044051579054196020627469820180478303085577364623141182730633434728863138876522291707736245820487657233039384500087017492619279061705171602487234820758712223958233919660363523875869856750749020998048576149499507234010020713995429493127614776422224241239865741468876285998831830904712180718618060686102110741841416490569601538896500496411112108012215814331905587274234512009860930620407671324499714322040123527249987970985873914272012125731379507229687578742624169485388043035608031370288725256429664146943418742414071379333849953726535170708718376971547337759334544079258061793952244085230172002105291527438400631753598365838730582508296394047648047386589282235912436136651305149829253245109616081922362472213156844230792481354323397590641569323170996811567190385878014489314175874419662386789593065956226905269512993589074236432956419345563951687936662556538042104611929229511267097224020759491117024521729846056250761395214651873196581928387658352882252579992908648996992391225373799028570430129938536963893457544236132555124186361589239437904773395854276923476340323873220303534449849318188649319650888474462391594304667650700299190106567267762707593898941197263276918852194153443121672203679885777246244155671216115514403048017407686874561105689350322795371902747818277460405524529852214054995000122752711401748638196415537759991694909141897892004659661671227923525947947431229974367134968801663853274818243736106165203319686610614574901679318077088127899754406235721192935286828366485023886504122065043061581707955989772824405277548209803740934154634636224687782922895031082612250672940844080409723397481601433862829159022146741571129346802146020108487188772268271443363222407578306353977561303909134272200998865083230477870377199839681355668935043354422704340733484617115275234776868650278640675737895456134801927569058374977666197144509835002162623587638142186767228787990570033393912352314305692264587494861621764486775522240603825300040646060115558569981204081158779414234141931113307823818836379533450299825625586171671134257762964931899546887371653810110120282753412961344443693261878287378171156587748700725876774521537949301860850068609638180399331557699782265801150914215025579946168642391339047026008640678050926713026149433092559991136416278118920489349496548119587444937160018521365017483829475717286627319117109084935543412281914482420288585226724601490671376239171699170812611119402522366990403724738565354113073617735162635944232323441367270036346159345937759802127160146689192223260573825223950507654428807645142188970580267014387814711058196401906330899305587912877815002101428169300245235380096636815712835456560646150434575439063787163885217870968750128916309714568514827812054812198171299557272283918212577966766294112064124002793846891891423216422132687950102405749214921575962701950227113132248118416812318920103096188319263804921644652831296106467829117815495459891255622545137763194100737021609250272820007005026432056870687975671775528657027468343862692329109619935813269213291934219149138094508195809423521508696860595201653933248262950005681559493260078036733107075011369348891134461292949906177027442214095377356817329846795092717772965740741639467646383477834603221501866126862754771672015528505381200541262082916885453071878133219364714992148661669136241127336534775713492539004835389963445606556359914838710267997774185476538873696961830686152378777922444541340940685757257602297295367014220609748625425616786335089308153532960477717235008923304016606102032432133552129774723208225699461316771603519248952770609382172877900556357596448370832540071644118423645611244494163147887749560887918567027601747057813466520827519709702742664965100592199204853417559046553400115223071720162166347781201149813727493203929757430195962391299493299980375741748323383792979291271035122014257212666977109104704016477691265834289801050969667170600430177216831818021280243470231362844341019613412548661650540491902742657434295831574634038286512050538092998946943886366114688291413236151862970193110158154847684868368252535477102505173307553075938971608369500343568941642904598218871091758593520024955876717207728938555286027427027678387296832593923415290638802770104763326685865257263297877304182020802418434275182127545126915817907573306747694004336703602771163918016564262006288472328241091510445785648462138211765721996816034451919572859693498990766201976707878550178952363560587103772640470976876986384523629768774783262650742472909582887048282380273995055406378380659008979470463876172943090142977768090879917258634304707681657787422359391387662294538867884212297203155153723251391584966259997083529758116923843232867749977267504239313790177759194670835707017176236384423020380725115099009144245357691956825692563023668524404735663881781269843139492906161148726134072649232561511763381010105470257611010610005957925579444587686974649135057249543416205314885532952212806352820516270090296435525436635534057490513050605945548863018758048232885174893563231317786669096952479228416389473817969690382066302152873666408135130002966572548039651457267257025148464730157723436293974212728481150368392967526810337031249046076525189907882862308340750241384471986742722674267834812085847930278125369598248596927185415230889115141517000998863319850159736209098831298032380278978484480983449110793426139818372774386325372491359324811351370927196316757313554598621049659122607702778289858788618470357455663664650614320244353034718993549034564307707006236261701201946800952277776767591303490987364047437076439083905118650127547575216308133019200745406053339357839273102787369031875109299614507359010969988258474073851266032539214793844597237480104338365372534692440567266774110642392032409750665051357845482862119856849288413643936534436808923319842740703236580551934099454509886777002963776286160715488916884538411453810188769104846566702313230774924585992398553969069960258919323091571774973339633231940084845164213353679403318623355376044428901935998552868856676253989256568478732063486905056757027186285667389665262219092193837625386393743690120041021229793308283915293563023097661375170174415805591803018151828625766110879363311178030688486864871568291537693138293468715573447993247483103321443920981386954051968171088021245094937154178183579179307880290973347901435988785708488605367297768608737238977010665460914203820443274375535410670192410024895945783862901263438469489792669319187307845607395233633425167699387688704448771795073600853385686049074806329604788694865093001511350149061088796583392081246854597489700924328961754401935785685231275584538251651841659347906863594289736224711115053758145991134944719437501954091213953472630431318239229943566885775866533040699142669020970016743177492609488663083753696060618401757065985944486816035676484984391470532578395444722184927892708396481407802752459545680890689990801200895959416681493955235868281682581899628522849020903728021440940508868140458361088333696812763101473229008378687828121532277519187284912747499316324509435179726979868885587673213281161776632197035771585835330462457769706285323335590327455012425028030387043451273829086693718795087024524727020223309937926875111612856253217706756373877781569647153139250899944147886358971226224947535970835058413198142617203535872162082565743865547400164439627295755863053153920045955630917970858128991666502260462661677843652852391396092098803743720852832746483556294153694521771602804297839349565779576600110357574412726399942663763157926779480621599024090984455005068773725431819924764839276003402612533564535307790084343136588424784221721628532481658364400238098140815911612634866875664798422484188047247605191809889521230366494884543446704026632184965659987553400505771453593405739398272962855930351410661297498806092255149578546930060988517304145084865827084135060490931546961966411480303124478020758500411285810364732324549460096731792623075631244558527661771983839487540406556811573059736533735572850243033252428343339298008358700085717785337514914865325725145166214143622218432263985494241450692404069445732856049844634425674209834520823557548196337775004253183271776741605938648612109177598347091045610966051330273019717621500425263528675273156073721111515419576884876453030045656286012954282380389109561210961849113479247308618018781384524868953185789179939123146992315001310165232937636652871006663863728255260771029994891281501522737572213512192118963658791939370088558741759703085275263449057820113876419495229155443065129216001582669344914025878204557930865621505852663320929545992749892789518847207530738109566856732477556957388800100127445157571952122412238716603038238954648227743414155852164125181679238875165293978926068555483122413891196074066024324371072341346283557469594868068358730542982520906255431571018189328759797707175220229453771715062392724306482853510836008594531843786480050332520296002808452751965412677695288656756016299622034963670828598346309578670276422438211499838024272877364809391777092248980742778724252952012298032335857520515675354082445789155849364793532215319633380583624786951958407046362300654557443562685548120322585367978314131975264227063844790734520664470561763768662948046017453375840967847664758457747184449102084624222902411255509937888216258835509354952886976932392357623392416671497003609476438996084591027003043285017372810446818436008232249475972277230083077820327985333183661522149342458109145045065826997148542327498587906419133165306971094492741267229370202900675313678416695983840523233966454102092111663974391776680041926002532676304071571557178322662622724211288935203193963501187176999887505903949322770169425085373318418793997595437568897413559523719513171143028929976076937335141500003775398963628744071027878690397460381579873160943471262918568908482299351641508248593892650652964309618517056904581593220149369764456258707300089751883993560561486908791355504428522302343873061815628866758944161795678050595202405262706260280126093182600215704991122619600456708283632939290201268984513772504645367051433625200738659965425985604979261725120222686663440837480034725990949613069703975451858044629658395886703892799415806755775161320778863269893418057708605762804816846603369482901730691357882064069777322325090675864896518768042765677202815901495424131400696266597570636210233255287258632561275038790535036354054279600545674905239481833481001989142377780847745372843919364275930100768851842504186433666253750347429779122892252060434467693955723146162515821030469295447047591243376353843648970879056224986312665258615198366983920149622942786963465057826676243259093697651584484458535935714258683082201729282831913172073327437891868601366182652631899954118583897967067804105917403926321706761728306459144301703251926877385045431801507420135180036793769791374119608844516828574141843147350257778905765357330194963239824334398638213880759644799012070696100576076053150595781447833833471935926878130662757425436951193404176341089581574263229906633532623773883191166335650708808793389446543228192856631590553555061499041554812996035976730878461035344889092786837583264090702886164678867573359116357170707976212447389747708212859959695223315296747901843724808699645704289509266964144883552795786886836801530089882574207663093302604143201148375324303764747801159082587782071282403443632900609651091463473760084307733024063568036515459677879204578176197853777909873206600402354569715646896904180975230536751621387784465937416364443289206311598163564037019652125118653452375388936677658527417582647198155544487912302205038213709877915471264771560534900142893053601469316683536229238416183104288918966587164444016386342874623909251964068264659591373472053364283593334438932594186468869445217268359379460305320591449646538298558375425416030752668238579644763231096944264359039384652903484766567314095050171786729256868996460380935487113724133664566535275696660372057158144524161763778255419871858120999163807251799056825474986625690890178179741369479349641280185809466787993326153623572386362262451599407857153800418218139127328625860372990455539327833465138998659102788129324950382715497338879862056480207309298643277242109069098847409012328671798106835087356900843800395500637351804728623989601125588929929084306935719836035860399071263125599940365495000893069605249587966519753374450274056589834128205289186658485473978720378086726746723259750216214119401567610594769699746454779031390793106680917484341575517537525653011244061661036317515735755889791175999926212672144095493729417565558598144686050427566219253631903548146278490989122577700503538958051774449226058222485512974316994019248743428719167104544158919777679650893466449166663111645994928002786874101374914555120910238022809921019956782988192157439140919317553904617877468330623612169955418713724841455137384015842593847647550127664062105105726087634297502329344636810869937527481121481904789216692057292574822300072113933020114306423749303060008486452585266819316991642354964604987501814049544277504791122656071405982847204050276914016235625149154042585069483363348826146470647369988134442209235850226425144118973308379382033745744664635423940904215414019824715845155571276846310325737897908772677966785325938713819686393365619015618240214309861265297950345495004787915062301682164639930693581064504600322000986694924101457358079706570741066421690203766985810910206874451307090987885320138397714676813122766242626645683819926846947052805056623045748881048148331392170689053641290861467157034933574788056119706901058530214892981464300017592157303316374266602696640192721808633821351768797086873400598223947375283620432635938604654469170951544179260034558432932845480144818324699427590755896346178905829157170013348872502236017288046046911006971568026160918837254736987404480190807945006241692524509792298507584310310109001160264174128927697584873182710079739000985262747350746253138622076590916586660640177486659504675175449584124841418058811833777195886501947910060118827599228770866948889572137671492234036125066918941391595896401147672961814639693765600842567421751867774347497180971638669480691502807409542929820399911273000408686136126347927087154437289288467016712470088485467059252634625601867389353502212815103624274640274635836970432367033942301053082518350185620285750210007743009896211415554090292564808266349634938733059180267392516312005240811438250839669558605530458718312892515422769698449340008935057151126699476067720870041576781052169596013016137726011349802849633525069557255779961059720296551856072416146180492160578189181873667940470351520732624243078675867064892946419077572442061921706569241902016841153923151216092504482466114724015077040804361657720467297147410335372795225077448901851376962764619352824792921256906313097245433923634257994362659869625397171907388689973504271712987078257507339920384305048502465051710845641738938717542277296754927697405829689979313871277372343911016141022351711259112763499964566288408813688812259879328065041980401207834943718865936383795393343772092182337075980150003916903625509827826044134026171124925222254213369601444271825378221430998174585197265747161633595517139723802058668870183029023169729039104371757463423354728691633801378329464377353194799940722270242545532000986656301517459842085630137178415891769967678703898331014097763492042406375124038407554771978995037062326276490759143100952127451754827436581931691321290770483067356511003854472950415099779452459075523895751926366700951921427916831477689707355878154566529346197806993678797300894450168320790411445394186977985945690332355158905833549426743146140364462806006562014521031144640052372402318503868436033814030219531821147999011389974854904732762285378977772444458742174158714816626613392142100940694160744013588572166942834458040821038955025211741054131201858403576395747593376061026224954658291711608411967141598715491902380358034038501250669537885618369642726699600119129249409435216951518344567845309282924101260416733897854002049977673432187344278500944245431016603470426237916033047176766011700305330837828462523145231100955550172568618327940414529204271804987014486011805070147460302969196324933654685655455937357664562253304670009378651839591773297943700095558528714973562502018802568519961833507141691087324875974155489468253391071138303825171888649669920841946774761177354608927832154981521302495433359328540017841729998139150628558250954677979691913515261659819648137462460924563412170007987799449708870853682565912058208787735269391285192593831038757713260207299066028916617779559341070835926631747394179991011582874401738935685260235453955210107872960263952782019737364182670588924409884590334614137243735391343729709465720686884525024267091216965513913308001659106578005937168770204309415527858162863039532920815039485230989966097454950425968906568327033570704984120976725426401604099157260490581362294401735670429446851330021111913739473543903285122110747278343522360219568257077814892289788366331400595314836417115491156444673458704931233152198804931380348273807305387223209149672593349591453490453111799889839378173244786698977066868292373833930966100021226375608628353085689051746336804590950634669076114862397985630565045294451661258697395266441318614484690945903665977682399967687275873647458457308103146353582231800318893305945048086184320921142500562605257977087715487072032913567589717573492136978808786018700970536062842436267379626050463628866637645193159108058042748314907891821239868473028280762580247411039211388712097536412335604210967427677177025887479451231341558158524327737745315987834121184361193803848279423056939880604271776678492875216775130785474926004626200105434582966485144654169049771797907908166759903013018063062794370928366669586037752548748888838748515350762988047155120444834400780854485007065897693834967195839621499967592554276956663316756300684723357564466539466013804751624784800803185417133550927528056152005343079106889286507358869844003211009838729590136117018696701341152266073385182524079653209632882445953994912958379629927347914605292301123567568549683362593656884884476891499098849120128258714158860436356255615188244655560124630153624326624254654360227128423206698476575272163218833352492542316166173249848899253856581852432005570049711798186545950684064448078452132658578771712774511277386997640752385209662932463851609618977466914601810946154994666877141922091066894663945124209381160365317424730686251260969710728127636406090101485164024297294156517630190606999933172967491995419422608897216320288842209333271337171517250897032624848989623777476059368495073594259596621654671750447306161348512606805198732586855462310694081792177797421960070072493526129562984699211881596046799011902147620722928191996374476358237756651471933399685681177647455644753185483632250464733409662879823949221360326819536425136690343795370629024097745377151846190601576930020617872148773735279252871686017581101174574195257956240638038633302939742977011290270085567687228915429439699992163356466390265976659075006287899704290446117396403060312339500973119498695996733734541690522843631623274518839249591443016826881082374241189058821024905906758419105600268353885690671753093910139872840564213008512050655768902430378555508887453675220504031168343703806624102278098910406768958434407103056999678387280562176114717499137891559627923146114422959468368321126720097416377094790738492163203677285014433587930118433028832527165537009410340115540169047971080250968020063024582391986903820165097730147616210404267403920403584089157797062459726761985008616804841995033349149499656585033392101970068256208373666546598267599805741048703993668097734207921235064724203195424392629666096341558936143153865915495227770880437456479439795439819126612849549841573411269298984297824579792120810014749207798681059715228266429353944016414854500831169221084481393865188611112177086893082128431303385551933162812168376283715836875643632364495038791100750200699321399285351469079183809825512776898861927484830794538183644327925314942400201105863973237101044934105962208033543793702399218970052436901412520194200976442537584265523594531575055913283289041468699175077552534470623257909667566763789875182605837988438906485230125357181188826509132977790520990966900475221899711200693522236170520043956493288067138522652801978543750547475161173237419744369112348593868567185127875883837130221220802350666862145269254195209493739486494613789991260514591388302822504253726384635456099798326585519283482592216366724304411529979724732493103219563154123221019346303405922683164245532861868296612882453769206579095483663964169208320299825686047283167426787303178233495415744255626763131433913428343307543283166867833820166107133078462814495854517402503970222152728736174908371726074127576099746828256449601844891204351881189542575557266785206309517900712859118265523872599154679467462488524035827340903100384226696736286558443065432513910432898905668552615764597046579715022175307537654247755980195687352850513207409222252684214715703423745841013797022331969655768550563741584660731537314105535232463744665494448030730103411341421404834933363869231312807800203599210255545901569863219654230766989168055636216882129944747004574667376576042106114856437863309535741301290238475282286332554586735734272353795795749104062713559925453464778967941219490548106021036343258737887547848322134207675383653572575529439597158127818546769162390584410523069721454647592553187653118253848118629895668979099920594440260858635103107542833344940455412140477478605324957366288414804321443026376775029256269418416198403660640904176079252549503435480373928922724765653468679534817237415782486368915092770341268386753131086929155854981474119523061414405542486552117988063898613244513200325907303243673014178320191715834775779677451356235821425393547893161266294110345196188458393062352174368940961830788141753549363151351621810170036842808352510192987664917909082303892197031913162323920271583292733885050450172757190642261040524695406097360125751221834156623025437388922804212909929159891581278487181476534076042742359101658748916123287045989383115132164757829180848206199543162882923881415054970946344244164655838377135340661466081594220037391154052674511442205608579443056908512347334160059767053793757898048877451317729866233740904875158877917060248069604103551402471053091402326527486022526613956421981370016515154843014718713874832538232285315890968887568844994514927106135585930053060672625330449892262082688722477793018875085554879258807874064601231010088831066332416486538752947615343665158449045780425592046681088737814080438721396592547257243153498877493162786982218141404221714073733334441934969594055279234627798441803200888760846824945716524309525703043047782211857007489712017856905875271661801948223021106169495849659840196966649217171565290480646113416800959315177820243498135910772552083125826934947794470531466405763659337390523989618230671457535578327157949918353016128366086678045271317570174416684583758731679824023738893421597321987521110373048882173331202317639875660261975744644261554220038775412902522150401466495523066786314705909133564890886334888325999115397259204025067183673861483756736751085811617649348151000518292342752735497860729664107636313894431386518896997298932574108172337346843577897266076296238405936751169521172324592502189900514819338912346122803833092263210896638826746141317659839970563713137643179751760543698962929800628283631532762114279331774732720726371137121288021621596279070729947246401930181201484269966808050492153572165820187447889414182088966511163909310972497455226710256889364618915275162202561466154236264086324410265863100581239233404717880659628783702995158794763485109960357563199124163760584543212164816718279563655742741258127578612759330382465368304945360617882813867616684019137642874797163332388036990599620199132046656631153183459232615093520888550694955424767586076636238576335700662284553246608155603605608202762902056954894582022326968773269868873506361284156194024270161253420756238885145692548731900834572377113104791682560141773048633643614507718415378135197920439531558852132163507465405526154441188330207372329241065237248855455296642727874967840640869058248305090179875435121383693615287859924104815258091157448203110867704811291911694135385394681239711298165399053342113889875490421563268423958265317781988177877795814602107545570643367076168157104791147168312243785221814844384002856690030646526722260299411060859756513648885060863925437754378790356052562268015367801902636932130617681748969378366959555172201245155516794401207107106620053184665669816638548743782069761515467995344762351630785985937042276401079605104953483220387158298570844399474153278486015185416982051457607710044833763867292671583901876480266292409182840431683102022016254970897935593645229139146384857720416494417555473427851089055760751928018205004414852862823915434746428096465311348666871218380498985533732398499930532098318140627129133563121875271402183232771050950250887650450863431961339196495881041751418527191553197874584813193083092286097630506195385909954147008321439333546446521427498155451043220463373136951791826056302448752252865114828546509926019027488536708051253050444857181606717596202324211157342968293583915037543300818336661177901409361019321883990087787060234186649811982795902828065225199830649747195346772453573596384223337502374939822831018986976079418604216790760924705816393733189583899572597388780184648866940640764502007359696308925456773080674146511285757021217895764463322808846127721887139801703237801249998895198497548516639797059028045747989062511294123885904445321174178939226397517420528242857722818654993619426952926493811321049079020138843351050981339030282993715627860357262424336325395197932376226471363025640132142618725653166164905039269444434668246528526671556715980522568853989104574966273055062580075014003206652045091644132208178121122182458847132313652861150948339889021327887284001606632561269118108318183816584583054866337536530495165191792653541376816839853972019268970855315158823030259859962423367476772698823852299717065702959782307581821134420352933776635145779518453099887791390602667064782511524473798416566555451805858464093021108139677498155579189924226007217342520094377779372159743603497912014295512975736123534779050568199483402294870187588603428298464208086609267688419711337288036358103928069928219849106622504601980882191653476901060026010736037718770165604132335141798030566777965074237869839466178021042357416182376877440415365711051274422065278690692578490986346169000871731772098501522590392521937579038485733387928260147672876882573204701273426026508070555430976299154789591367607842798370050132480416353817345470389658605105880981383057199362576680884477111096241390264730696909461933038899169806276076958152537124555626272530003623142065503710245057168884696607722554669454447151450344022708413434390469116209233340167046700635911412504397191120027352127981260809584576526789209991982564769043371662344479816811883910537403354814252667280892613004940320033022248783068415246881752202021362797751056314673886243443665156819115650426256409339788051595216377559291139778110622382060601481220173362610963740723016800450937096332259658383144633407752208993609011857855548097483673611120202973005011371452622076762906401842208393400989867256415318408347794587950710888895047153421825376468510372782720932557117572227259197968999887325833925709281783613361571826907119590958220796180795195521173042982877947742366309530750768212490137888266072412902066778848232391002043163989499925744309893189900640609967277485576293164008138180575982596860815921202899928538500645295362323489898341738160188250865081669464737382545143832942536248663694267744976968563346576464447889100863946246317800457245082113237335418854503929074054545975271658543649678687954686438018447101903138437644002030029625418123295026420564287353754016874298034230005245447034835426343357330642945115835469652477692031957521919314297982973695268579318084126029280287602462352810775842865954580224714595392039045666692969705707148868559113279852400026032883460390883163546575745001180060643367261327118355127390885740410066797827956168871226532479291417477188612568025551729293889005244066630230445584479096411517886958507734512171619581496610559820997803048470883200883183591517183578659385828312543211973188624307614552912374120621325581821173138100957498555463772103048184555196221269692826708678199797449564896343075281165026431100699230631074286804270591070901149710743416078032679715272444069106169074203130510714252919401310228632974687799318396455936160370302013842088496168923408154094260779781170651110332088652711237065027961532046875691820862726923271346532191846858796171477099395581922356985942609511402989212243116364797309000932371997918610962653313675937444007817049812718095094984864394587719071422024004542867680552042408357225633260031285449599009278952304084435250423233302780970452220677067370170060122633991614242450359200602504999394231362543853463883899316124004733803568356562033384699869214396282292330075884612873612655375190516600030733491970787294724681198014810001351335940939672985466889068803026054917455415718340418546896980777479208012361637536992168574427125646071406680958379292643561605748352867758985641269539584961291286481792744034900819522041156966913768835041663093059983360766219106307891821592302776566072586747202381415464089989297912834903177279597472470766580842813071471757965603374193507521857746692550712615903395412804650476792424190671469368364341320958024615016715026291960538165931217131245246546280826410393718748860915787160304483369912731706975194033479645516420938963257009955763432556217783748535028306350272890425707972043342157776074488512472300449265376526548677018006817368834453468743017338464844425427555897046444406694867907301220155031101377587826937114283204069069254221527045095985406903741711904474242229274933278096444309251532650507128946767516887099853719378788563511364292607517077153572339997866622997267533102627854047947315618160538067017006510927582582419474361859321849809831846981245482347682189719479979625917659519298825641653420559725252420295500032805854012874501805046314815986133711444287321243809286901551168112807970759056602039444819637157928130446641102816536523828156339611670206556867362757827258915904105065449889694025764064033262119164258357544866751741645411727864668043512822951739328057550822800718101425968076388710905599515027952191361093254621831984785293644321676197070635085272040903588784410413759902012726876145642715916151969799607797064727470346162927203053792428201713132562815743792969431641518373104005490013279052312505336438855201684834460409919138998175597017385232974657959908221796881480876544609835012435769450428966384210082335366535550749464417741511958002304816005076096327783723950052600244641857971006078033571083375004063534215550165073766323791082674184160344748864913490441300892206373199799622509261187591223059618539508896378953000678944353214588973720079847055274492164095735115039748577945875525897290760060831793327694358127653808498100520623634050331780452805528684459456526883845190322251028460979261887627980693744693468865843578327292453139951284176332348497057326329088169557969389749358830863750238735708375521335006036618167465963353382313535518675654636160844581649292171461248703782717247507182723492858546058203673736604356561374620854739709982075826622145265838708620997107122921699907988746433195355479213500527738710183227570498643573126322330511519668547181253013908366011648055979777047187245779778396587202626691932531397683408811756997595676501040135080569212862024925744769294942463980572345674874009751881162939292664525387206043820847097437796031182305486344920078266990170948927639294939791623158950475712607443669156780964985768194763370577068099658936874751219975705456300887909622554737009333016487596197022516633224083079572016400164668726010992367715102318467046859506042933918672126024718221827344727760674651414528173980933989306270931397897310142226661350677311424503026538275888594473472300226196106126770821866752157719675004070945270465050963119613053677191288239856884626209302964517943821287381981710832628633599241322857133768399007888111678192204425637918817097171698173755642239993667398050979620703707427737721784893262434035003102202849899899247385455101769507889731902361819110796024522723663375878726392056662250945875006064116034111645235310211909794469337765696132876095957015122937367799093896622999900765399949402302678236913363001777635344583705136126894149769205333283489104907346328437599223427968711871776820974147703488037933718030414826843607332178830592008451366290879818741974780266364919798436574261851248107721216687992860325053198730385337851534629478266253787113705463144523256026290391815882183065747087133968147881894295111057526204139810223232038148642602702053412544824418691506804922668825823371174161081830659410832127028080205601317117364611211232903556059837209359745909258934592296664582876810303732536408145658565302368319694741283365025023983236432184309479821810451769780093974155771989507924975955595722063697640419221842944770677243674275103246329686521161385739629024467688794539880812528665802238335580869958789032305072677244902931385891571424258259222243663967350476743566746579889338166329900374327928115903546984868991954759990529307040801692982970767711053197840821463900033123242028865227228421474690366662480061804575740972151422154810011130487547698836431838291457867955049864141289264327240035651315236792200287480984121066664007667837381223781959339905220247092519994634978896251249619307661195944503563002121620642984333809534998429114835938425411322295665389599460346979288480740761697349556657058634441934971678924066794196255831472442454561199812146725931800152598277278224596533870008678001947799377419282727136964489209424380422160588664797333742548700546456089813612165496600792892986905914348517788954209390771998529146089220931379576444260093549524046147669047936977738112682948166123738302246585275002306779781210124521303749417524874782016286919726496871167124530503021693912075121318578039875522746160590069123829904856170244809346182625818757501168711503582966482240510550437995002908752931414742028292508474204438481223362854941050369346769956339254159145326169282554951564078471087512196608494926648125504444079225094082477896312953748577267011994031522446723976441189402213998312579474723812007752518704830245117103357148890213726041248917742050758929109154641708471152387597836361117548153948389021329635705845845875987163715828083880296542369220454532961351501727534721014520081888525540842805888908881262145653780353396434547421381061949296675626151205776598650390533126076758630341106060935555301825644569939875372443914818954622434793824199160003882612889479389494097798196408258482112817426234939703145338419788262133063443417491175214202344909134648990550994294416735252073097656949731920544526515095520213140628448992898380983705313547649726813843312586384367849124832472983816471541333927757458063567461589905923380298522205557217642855438201301934409000196903465896569591557497875908987121174232343203710488210270295264665068777047767161619927248741579048956854843560317181139144577477209392356504101205846178882964519205265731007721467672171247992502926410749257716958784055193702890881401722074260514016379981279093579875355051866356970073115284736027085686905050722185575167925659926057473934999082047268047079948540870778524158915896825788216958088580859525863357442438792095632405153919990676475550200770579427393675999884177667088457441326555837558756962746528031934295275742118802331496299027096203316947152277091823093957841048811873793783701364020261115889843254009973968026247367023723676687501662612765223342730743573704397026156103914385868613584976048622079070700732844475564259809616720000727812204832423814853165718435728811358576504715038953294052545375671309830164223744316855655151748254124973522612127403225976519599470641731889030271429336300769768220869257895484359902046403388174208312281466032798789150238708043513535713972276182755796180691343187701997971784543264330075179189599117953263963616758019342309938159844920579337032853048461614821137278597103411112051158960801672887712955028455164929015996824454359306046857343257177151890691925910791802772448821172585842293218853159939977046593457298680334417960237325593740682993695950411054460208204796248993920066893480124340874471692052591745557291576558950368039057501223838785308937866058415035861615783144752520714878508741439426225761411646898247871662245790542078890319968947659684665402195666254556115353022073673766344543825123903292517891388919709814601816013950500952434845509558111319227489449925766300697873751960075929117031037340868582453586646438320835849940893851329859754937129777494326688027834549057597217824131084186750830092325182560118240654357560957365291691851505269428174889637744561476682205412077859775752822787936485875406155633012137075080277488558354422498445276577896919901297865951025665603184163466495137400092328650803244219770178683695215240465099626294045060038031961483511495742803918631107134788023201436119882143403121716178052612115583722172642770863503980086499212065678013069182341691347203947798994402986604652031614271237280239446043367041666474280185024480023768343523758940664558152363043252220851584702151698473181684454023591453868550884264412438952363637864547495986353021719158749895253883418101169602358598169339482085879595196627291288011565227023994954634868304390457913043152206845411481138689372531975103834461204420842866838431502457480748951096045157061097061851811050300166392043019080964705175267126835587106900247537781377186214945172835307228433071703100718651489253302584946033746393285613183450918081524299749628808348003066635284326365482436741251971616893851928067622108719506100489130357771488424516483455472735162671165122322003366096463739240302567066694459327795834868498425507571168693000848388927857181843148385741726036166645334907269615036315293924475099478280358672454691530479191341524345622499545821830937310481906689059371456869922810971146745283406455241360785910257441200466788244537412326536137936550093456273940855634554786903106972877908955993397546343048833056216089325955112347736464392041985951762797086546515224850232858178777065093035281286204909530532178374595735041879957342842456614181944466518370556360550109312277296337521354454879678040971622517219070396064296882629074142199297627098089477147912489858998025353086958799408048583775202589749015672182308167493110923882638857177519228835256969807230501773389659129492295938997450165704935671575947632267269041713697322365194548851686591864449273660329812133330044367318798783801331499805511640901244722643138045002917042384708257083589350491115393422248684451912919469105936238635703263071182482725848649778876424762655947335375395188232030383049303565735314635357444874015181752952836735467212617903164613236093097060737444417520260633012157830477110699413220748801197893441599413784338734309447559991381982591420219361398260764772719766647490233251226914404900207069985386073222717123107957013744888058503995974675967552970120715350997686243086046287242484176631808778807387174588144398229853299785129651192182765027531173332580634651575474817729300371274652269183588804125490991265699441764652342515516145932815528213719664241388179950954710950241039596954279276230213130562507074996304351650449823044912028602995987549219510503011825235437249227420459162234772101210871855686559195654402187278754439607018400758501951539680810949975574054800568963019699658964959821743118543314336632631721882830797456856116712268622850743950848727313381196569767492241187264466465376433618568285835321742545504668218115801711919729157855594641893935626829946090158529179889104072457005580748535412843271815263935575978880930175684643390368382513317383841635104546979343341595827678812999087462492332032606505721765859070224040915277275926482591000844009433702172457984074187160377014230583628217105254931580364535635920051181454146807113308351853929044050848163244721910640088817511437976334166022982201704242770857648393306618111297941615960756481421524904145694800109324983093060543324593590537026083030397933671864795194561893830915375367258511226261804844309087958028171553936937106201815133108181425926096063207650957515093702121004374269516720733027609429422033873933194232004062185397213949516596809890017294811463708577410176442063842621671595940924454305365896613809994424286788827161346176710133946395799055596386504136372485205813960793501078319860517981516459091119711111616670368019762780033887940241031435826939192337922602917618350727817904334368467140787983091544989270150127778055274878085016083873537553625173235799936023849845439768551975339903047070555535233274873321782565320837886088469189341655723611141632755032406446424510731067548289544602985673074929415334529740617166521768958392984345624073419171566221349967552453519964760766803877507305072223731535975389500996776263884268238024563075542026518847602175501083895748722219380887550509481940457028522636021039065455970734332170639791532082102648941490033569500236244942295463204031440452417868732306840590199564365781001301273528573155532626493891467160791374698245092267067540660442692115925182753201120107616941360715049118045251638935921730451346175289999131430936860824950298963423434661751214546993361312276960037733538321003581890929659002641842387732054119085502542988559536898449328942150799025492092925849214174363268133567417848713197687954533041018858136217746000947151625575620196455787643233831720369241273910959170590868493994091380430412730257407171586689411443138154607974955218361796730864308419594563836542050960797092416529331589260273539585563122579011762347361068358584318213645235160069047713404378578129843230119106838522164508166188262214153014986374732422096795518466495185253153993631871951365863949587041287561059913444136644664263989991444543800535990463565925698161510671170634945507153899350686813975399933661848224318785437786679791229838550595539969438410625323095967804951108337284373253967799821156730554936420593606821647618453726435428451300210058796543755499286789549294856473842345506824802681320174812798390992843390146812854541208655045947973685195227315044426452318627945955634073561687832359868962571915373684254897080029290602493463572040015087222427362961309942625392270755997339370725704479979487408958381359324050846870975594390379544835904677960257081195276861546077313753269093246681385419165412420556473717221743376802362286627941579264746112601917235933250609331786774982970898319375901617426283225330695331862639322126630113252275326299396500719459760938899855629210028311086805486180535207357290128538196060167883080704931785096300512386411762016948577937475475422596273673658570082730690224279481281368587579387474816200074290204570691591444101480859035630992615591360379564176278503442807382082132876676659734842285322095855484857020834988796617452335192916107678178770500594153722601767272493635707337849932334825408059605417745810276385470920740101902896323969976877911107943431708205514440267963784986608728593075288844958094452530412917727282911073356155761800577513848566306714017033275755504870570659231864588455756814616137807930604431688235748613921670015188804284674888041046455797273421688708831025868658129722190497604333145684264333931673279790733366639698371239845795554154619652303202095841981441194941998903211589103416137969026915811956788539458430993923687439333085483722732903644083065559012378466042448227732147546466723308688310650649530952705535970279118945728177521558829312488242882464402041959112016480369232101753300163304588507031597845257414481509836773326864312083780307701174441314095181729411434265507533126331285444272694784691120388885054447749488749739581673023531946429324915132121942886530774962633335553218238057940813496501697542254763851940618600999066547067441520915497832783863014526270785400580848326714768055310232129373110451025476919856234190862366450858880177830105665489490005867689602019408375340578082693507422886828313021894985849452155746930522393267180838065914469193096387960691267190420410989860442872925056750685158526479265388891586823582163155205511239400703428625481982244239343805423095679645442129034195074862325335903042642262141963510049428955737823358674266236116421714855348152404170807375687139846735664051838820716937776306823006336783192627716265695592798248385062280176860437318366566924099631414825885099616691656451440519019469941331314529672604302429332207797050848187846633137153206874896554268942808987957938196691942888769904305540237255883157457672487248011575432554719386321518982421696815703389437597924660240545994248517617092090265354910942444158318317462401645978444912049512687069381534694408794147338087362894909586947870245277728195225631292599997966579005755563208757380756536251898659332621282087208136492208647142822602694531112309837782748163172227389931351123023507315869626926316531963079759746844140310303504836358185619035812228247558680430500858769577837427768834130122334514925274975567947319930517559072450210625331865381080911662842830245227984815722555739899192917644747518692166068726180952457428962677085855203291692751871022197951674000285260323983237548823171191425287692761934347772901236392368899826623150540277741581258193990446709198595548899415437036304185048375073828234492768170396328053470342023321714405816103713111426263635703094922417001193098909289872018341677113827906545131590032288816135221394484463320479972582670450476634223366125952917499656802585578224035959208070645993889591522976266165158416419083707572411306153552973470683711872229835343298024009435243655246890938519915110873682816503978818560285701282299521661565459570407717963747514361820476677728255454268720132016914100186774535408319283493353996076315617168278991021663655109052632646620136745502843052248347881166300885382396583462236889088343257632003592707472164102314568237432233740258812246346438817416310408554517089572683742053799145902377437715987091296431946658409426537981164629960993060078286829543511695953610219621985304903529629150701179378153783475044745122475910571483625152712914608175424417055844884502402043053447925753989301353479296446691527365114969187447682810834721628714216524623616798675688114278977640747786215285481628525312501717311050071478443071524254796658398754753430992857325078199891809974577806968041393622201951061673833976702756422877474510664046887922918074707836777045064680471028720952385456892021898927828152928825898637105215094994575637636054604317273541180568580310754308585261483438060236624544766218163286691358456967935252000393041947591219008822808330875665235196047668894869029225448827255668929110366560241014785755411368167996419295474055184871038518949353246500403180058339058642372867892337814692835604571156060362851575538359488684452596393728205791797710492107487211737936089038884534416902893135555349297321230419480819275879825348725657364218667962690804244834937406077084973157371263532613776616994478543525155264013032759921344043741261553309322565629626020752095320843739346193412727690273773513046668985281343253649624422294693529868015920479244551709353417261113221758342140841678786525931653985684039281655396846711929516244414621977215549197907381832374348292703384867113196626683211144089452436505695631528291106529442720980385024284056758816144922224323636781678293333382406030937108247695588819710610073152446111577016414224075394375816358315577969405655920386287693270575850149446884763461774510029134052395006579934387907071250168819284661722804268671830520661758223911279632078200791528327323057111292192766853720161429013482857165216075252420309691108107105150592294057014987743709672688235647618816943692328183790305178759854660897458716075672646107809419285064225127384606377078287011699551953171744623009337077671795820314178494250481119572170852068180899790061355589895604631566363846711157523451690787318043409088906468287900941870364705529551721708337241608577827980109730813979824808537761920455820598752924590518231146502999892631030239946299785889135753625528356100351818950083458454085138194390614604003594571928329816606957193620698481219588073192644372722490254426356515940310024436172460908179231359674248739486887267289802844988845571455548645383024223714441019621581288828121443375970433852421025578901201550213693679543353771760836589874223003332189638794288947473898817356893763314626792611453763625279495520292190974231464185961158230875614957576234247891963814856093677830798441477291075922672849644337623745960680850631310061666646645579286144346351154583264326241817707080400692271268523203228788093819985099296466734653104296134799270124498167302268212142459993740111441387268709506754204871132671772206532017915537869851164812840834504677813982329171248515056910360783998870858755748534851005816896567763682924694082335662669162865403936304563571193845952333402239580888316233978352041121745680012375178572184847228134438477060465185070225780625583959682895757191247657472623170341555095562095032661525675856061738294421084513715652022299511907697619806579691786399655824861102456563164245815230961004635549321668840533676526700215873495802098334749913247420632866398924520027245116075716791909888879981608153598897426394201238106075022110010115619562263840277965515185839940553241725578826620190575018437284599270707155077341235142039279776825456972670594216133667282030968366700452649754386848508833847427040189899669855610042468563308452894451683795932473312803495666656787622565310635947755100014666201000611632415011337118112859655901006171878185499289312973394718333968477197038999619388943075450577656531190406085726161479804215225528569051060624611414293247262228637616193656380574186311260885786618791916500966149280210365743038486104943699883202507014911936039543185434398613804390614872298716206415513385026154144247428371343090705742696906780561380738097192953151751367751767904210862953857063859722951408853744381995944902997110768512596989325086114828427530335178406510180375814622649814911506441627580928828645765756187357889620060572194602001194992849385220679168377289402598932546758547735024195922367858389066631169882271404383053649057441014592020687682905592269504011657577753097876565342619942278182222283422830482534144285798341339972171744888282251855487060138946981700846502376591384170247115379921189147732728231625990979353523633482391477922435954203821317964102938277209084466423223618645589291615284172045010280629033963777763435666723706019323171678352076389673865421352725439570150578992254373720247762259364039285099463258400507827213458415458465706268858841787592329243512163033057960327798323203558689398461772969841057657921292669108732332456006229857224068085861539783017794094248991111119635748474227849663352892826410569554977336281306867996156119498211866806223751411239189863651803486238965613350778324631922050032305196832018409129858450258995924583715791446636817292126158273520463906929453082178329765625728374862025160382936908529451516598985997313228125707891459585072677588848603328127623459831502844453919354121683529702653410699408175333712936539336642009573572575224725596206305480885399326696153468757389855337166296678107748037902508141034968927438693558326049977024149185388377234562712669694546997794713932003841420295362869475298051342996069700436420896368402335337219542589029904131815855155905610268313265429402831917153515201384613060999262406621089828029658268192924370822438821128701360711371962588365398518409246330367601971692799755101439023432246231083895104709120716734353353359360175989709357761673605729775790676938436179256370338883415714301544471425515371333918951238864812911491066974910856979181305013848082663580724114670135275370110206476159606584222652171405603294793697576763897610506173184621270860902069328283004978379120510105614660177207980147627430865320630897783320237117275222619066413319071012818241086193721576505654511244366369224399077377011374774381215451191856590462363098803496901830795354370624176318576576272424330329294623729483509826838088664319011164077306306609713877991304440242348236868617086650228632834761648678930732169313643253900190090403402774278513657589165117360047607501626737181813581546574905041717626353954206002178423095868336750706375976534597759929524891270884642582450733523697461241144121173328541623929192275593751302469163272839182835165816515859856838991586993078994279594277091995374456542084121654260946134947154655193052833487347779044112817757368873040549619699410576665285640663623623032261044174334612612254313643011738250160420696510500043641549387534367622899690849220217491886615541744035450513960392081407767588158238645419949926340838217274833344610816393597737971991186940637704304714130591925627432505748747718785170884117210933789670364385365845433540813813218673862918617551417950216642794816320563317648037305112121050139855651873220592138616871249679502406951115271862958648960984693881668791092664597447705551701703702168197832269884447842253104768404025865940705245090474344615459718015692862351785052602208810340903467473657354232625493727221989348397874403087056468140075762974923676745925488818341911888098091706147547607882903336916196175115869222941720254148967175410595846731069667502221898412237136329968254678952425901748123550214354920802119781489848810853366983922541279654592771908914705997649692904788084962615197126511138827467279359320701226171202640943847330711003156964109290466566570990331983868615890767727803698903226490497938636531407580266532356940055404451837303948410588355535222050853946119200345844738633989568354241131091785126121668873517427026251187002838132929115346853131795386106406483250688738160911280137065090569405866390339764347045500124427504936371086772890124944808147791844798091902874600287199981305387921241098338561546497703591438353672166930057381030584557208427748191917603486069984256781062880946165344658255661041900657199910289601462301020034204098077927673739737645444075031488616619927715349884856681777404165561134731573989816270112499614705679197252632308958129328566950586198110727383076094949910304662322361022684842434649009609751149731523408554123140037847214504908441785858168020701911625833139436017984902667165956020508255218717221278873668146359850014956270590079021224330438193372561222978616137564385630780380264655159923422996977457762065081590225268127014676578870199331659297721840379303790973834086901092655764207459655032531672250443935862936695976508937709502885356598209840158945842324218388033295627834193827872466057236698474863367978281786501246835229548491982902753451699869321312122074988225729746849685883857774696357511883531050928822069574842902326780745044551624964511823993337931613618957164824690305416495565214952986401006443673002762228049753540324337978037937493473975330205320623366206073569743129020437701458614789053604554961656093197724267535783784015633403516226040397621648060877676639089465763670020616728699728554976440733584744443144045839625148340594035869837641036952941898557135517073090580565564645768396105072312520164647030615258067546670145308596560080235669627035516295525450352338254879525670234259179664415934105924070371859826543539224606028399860786443713464103858983682147098096624634356509231433757658170234707010163372935018399852068248141636269130794401876200461445688688611794696356956192731894257958741060832437458727653005926554110729066160865868921666533046955391259077734361914134937105879629912600580559818491735173437583960405383498654175830490023866251108797915442637476646419055199837853297498393155965061328649933912403602421436490817028080572096417108440081386157075834926249174635597451580017063278692448203716526654963585961677050252206777536407392110661477478069018374158611687395107600619180944523951848444366879648554869229984439031837354349628269498152499102933598252050912894386513611482420480935287259636851660125924371510352801649036651591154018415249691020518832425589222520987931236294675785488542172428793362962926969930882880027838585932636369372683248376721742424753549071751828321834441475712126844026676983894675853849381180653737334688676488924443646228509843830014272594619237803177136977791523604723151815928001593887676377324618835380911825563996794713789311668095934264883937323222974743332230829157628450767137264837015864285823717035909490305055956245995072827115774293935165608431948851239611497502700095524186915225520978742362671441813311043127465224759283261101340864792558147970242377601933352137148215526364097746463100792071223745702748337218894624745322511397013442204757048955966087776310972529404621820376071791364681077591123799675097613781633208940954832121381371463939394537723135852493541719007203127573843701174931335575050865814217459806780771722879649100959622709830156976120287541721019590338492622931334627990214792299296078959295053619598374501338676135314789671964316548243992782916096990134217016720785692245195370784601805207709108232552723609842180699064905443062963151665874993555005589465672302149282478025319597374824939611660722401110513578489596926363540421134419248842035047631112388673394981437538466045764028825912086596851559447163997175282994351272291186777227333230672880043379086830138984070897227065974705707769482588361751787705990477196574254677248120745804263792324382191155880003188847072935194578737188392960640406689555291824230500349975200089201350773537359496600174564261592698609113428146192498028530706103112375961423576355907797181411436613122442534553261863024519907644225478313970692681110380796674596644863583743944106010821072701504399833222670591408292739102097122067361514390959778451887235739042630701227481751909119112884419495058146803209429423410818898062083287165658182188929149895798025760037414001476671982416628902278571931323333840260533949078428218294478730298924164870650755891850402453877751478644766130724023750539192199767108417149829851032376783424901144788166644597524178702705238764539526324857319753725207355999808068273954886820394582497881671308332482499375266601976611454721357444097566606498812000422636006100468661290077546263167384907582098885262204178845582941014467803038448620860464298155198600585067797345149772084243261458368832520622075776537410566976615870383864627679478318848757715350224354291548058702504334034943962850835441907334886655942593456599779819608844532488918854420953006925561071143913826854787167185741105339168412407939517728741374592699049659414562219459731401364094695475164953731662952383184171392292633726605609797920325923776548463518594374521897204874927241972156648282792320074398119778682843577040381346790928870849628561927014913365196581138727932948305467462594860044562898555417102840267124943693879819536694545427453544092748809723124242529217194529412655191670899104626125203241581224510783709875240902075276275722925446518659029094243278628345193506219885696633105925596348283676479152059936394074966206955709791493437998786873419676628716935907313654772486886536714090623694068112262787527321101670277983840409627760694236120949394905688620188023996098775362614122181216603133825754661994802157288697513995080993777446881697301441164675933687618927341218844232574517367911212396989645970057704468166604874011003920156564360794004147404814904105447252348754523965786933855799033180136284322564524372805134141612084386674563422016517755458554405759325418477620795435379948201965533873303069800371101313174299685937476111105626876398458100137164170895807868854016521367215209729216557508126384825359892069722612306055797074693615443022130867223039835695452273842980575421394059353199417623936283208090789417057846690870545892556290761639410024367930214001146986336537584164149546697617220560327902377259604261647401250820139230488563151093236894957409388699070282035732002921296951251153608213727117361414665883872137599399627377456508694571217767260384247236424814977820599178412359652665483295972320547560168925405309300286017660044347583324612612798967142829670465036449155783770378225014749539384252830769550393967305918601752747807007430568237415250464314947496265437968348406183573498096300428352321167569199116642291068216911805232674610247399345795804836767284276595024300964760358942087980559528648420448512712072768709687059300963450948482923283094403891683801345409171454187814245233964943794401150020583237168515850336486805554430189789644913338225674814211121222120880822883974610594404824556164354977816177700830085054947539702099756828285530055442344750838752011676126451519576983014138787182228645897224451769143913636929947451012110631657415028852778160199423523280462475128381343112659527134858819316201405995739546108106005532400782846196258446029310355867276757864110827170751564714891989790890751673361350983308775786838976682344323579897068350947987181775580723546965905359958772969076325894043108471501248241255591512277722663545873772207567739269476298383812293006946992024736217037918294489649017766156628928691275811642549528958546356423681947367918545305175472949053918257079273232234295208024287211430222341437540181573628294373317175966740012729982622740005841726201628033581480747049354793765692793275137691030779088803895316755279842161286978474335506506849249961025503080276139814394061390451016062887744895981090236311945492015956269279746091496191447612839066242385814870504069376335983008440079181123259626625708233008931359569628907941282304515417198268860574184501204448987240193810528581506972192647208555938341226978847195766568218813726396407808630705793863191910219004900309423440155353490218185553605901509576730235615618901671941271070904322746143051994048280839597311759577309795763578045616272434958167526302876803993682222303306719572036601290562740210126140199126357396550152256412553753768687894827616110551897376677391460238750028005182465797958388673701641163649296731924617737255592529181765044785073616153099156475286916488964218794369080635107939534435824210327951111913904192783866565189853542163549954087104636257485984235562180983446970957054028005562238758392081262711541702435575700810830405581679168047294299164232073128900070357104458331183359569276005262130854172903940237543610609412222395075131706358564085434558315975451904856495408038747690663019963202202883905613289877296952103762121123643008820469747213684387711279616459304892607126912429137551359181724221465284133966054390412750244951032563442681573444924594512031873606288604536026194964772719157628771301863533285521537135010790994262781154597334500719950346480778982756956778703078539981187806603062220745407808550633314102936823709316877643178326969019989839209102400406338348978891513800602237214000379905113256653796569419918149862106264722089045847226174164878483556585170056783935289080044930498857869459454872306951652500678240561115219923269171440292733458117735643942920996032799502757396117501488878942247926368725930263195592508776404550169700195118201597883392044189104513518507763588488704197976216160652989033530560290850497157768725569601386851939418864392068501618879455436317995752636043493763514926765435018486158803463070561975771492508255917011139339932426196339019934742678794008901380713808345569653515702527893062269853190111714834644420072091782503591461889014942927050849194708893418724971597251667987965122562431300985971112140945168193058689138650222601095832993599953893847283560945680440042841060281924444639802239583097856303928631529325905602684155937893388354132781671657966591169086731739682224314502569916100533248941047440367225265878498065955498293489125455298683969025491842065365099257678472263523172925873157108652163501773227872828763111038491244082712944994958047891746677045738451216281512249168395078790330786941892531751979233768568050254341140626674671974158216454701518847449748223520040306938093602476818254719844332016781950655815552788991256276510207492911264729410510577936856908336134212717329521258123148798002666210054321135681745300277839163623724062821205431944956582573730845355577887780751881053811001215347261078917571315466264162728914822060365327402062399165454638713802966355032689488229976151920158552861358254993137078822826902147935083152102377286421500459603698279409605895458713488434901789027151560246607192739874498847518108686877638938254131225305421796973661074413583495644760194541008629744579696799181038589663744721101602070429323373350721960193090604090005002262641757565556337562678931183906778519361344053617919044874767964908524243019878839765394718534021715063902399803820905196036330424221558489183217060263661535395582850788110934392466717617614218949416418640204663446899775647725041377168549173545450433234478957283764738053825684787700325278705700436924798265807394574267059095204824803061503567929009164795037202191562149392704404012561927034878227715361574983059059905153459345782927279899039659652060677715688833716686801170026605062852388865002936185453334570991266860371172317309204141547862949731543052174769087563929738161749146463441102804989868428568281857710242478164756788782032957367499204738569276219844074016545681221140756457734376553419247251901944719227363698535237185436253781556939715200298618921230902685751187205751341690325433349864168080340207985601651933751859708346939613924602421443630546490256876382833521385547278628642216539368577175843962410453567334526618422798569426215973661357122030071241054650666133712690197735177709290074804886495980429947386690298349307124868841663970392096916727110753099094475490078569522970441373827832003938952788531783930490283590295476348942391330921687674464244810066848218587070091149021279571539468877031800571586610014812286085500487029904820624366655274880384687839025393098553590902627703422239845408687698531712007081756040281177743971681633810616033784660586507164764954325423871458898805041134264295838767145381496100098015878987718397110107246088363306860188605884248691233749436431859511248291309518398500301902026187089099667714210927578736454721112380752853884659271956826905632284492683276398039317838431681994376827970002644643470515657953217078674050967694528437023098882694719328598571583816557055126412559805717591264673603773881011450328295482310248553893113798561448010078544049806307441290329800955536157342893229094939403112163378187182327823300275067387756701774621388850933931396260714453200807014117478761529203543538128370901567834358707634846387213625263549898015362039903928864976863782619568346229161635949141605360775985161456834516059706449017917885231139751769859640725851369522833431378247769168689598424153181636746034397722452195571913868153083716912429061887652264961045196072455471770368853821389061722302043557644990425552185565505232333960005843871420092968595039806484201146209359113294114412154998950688893121928251074186230075352673681206463273677470037597619381441420277020193015941979510510992070811961842933603833676505190467403163091203504556265786146646912144259770761388457626065711648594349069512842777431908127204745154244906583405718755328182092189155867105347397448527420946119534848282191567720868968294001432214837269603647487253000911225369358490631708796816854670261049902852733608311134463217230259263513086833225247544921013684865658093028962348283896024251439458692919737646204919390815911074530613347729367250747738732961222056905084931960745853729370343138185545847399537768611352066799830263837574700535540209877933872769608660586481201856828103062991126836846527666330663113165020550195382949460085677150431411499932812816751660861750114628291454067336125298100706235894418100396995896836993182862614169760955588524227096549884560224733059538991686731145751493705190866259011521902068407786609135548169568222573805986525515887258481299782825610039870986497295032258844267772486665928246675971906575425905093399487519164357777393645518459853984688087794960998032900049960518017527638686482023106174210578798461567399557439975314840552630983297884407724843757045270893609073802878439398623788757015096836191257569792981576845771862782479683533354704232109446494116597713782158741667414491226591484526396917489029998227375039472167545037065865694681289280555425863252944786849311645136430881494808228859577333761881701530107414231387728129915299803422335251612834896632436769280611156878771188042361992424730358337495952000441129245009772078522622051449314974714257238920958191997147190445566673556676255579952176432256766699337776564877074847725587496845145940967365294727841762577903259297933251073194798206075493044016862101879530495927170100552577078786719170036553549828555498857939299291209319296147014792891326657990971541304688942106978933303555928591261496881294873547834601966835722453586283469546967908579511016789440069325618686800699666656015368510994574877079521378898235636505176060898328160251806050541615146601029974193615584120534079604089386345410917696780308073024657617524654313536985289778391525051757082884352686802555399151367111443905444842842938688211849116181654933723138898532460635368759168209557331432563312108229396092200814639408601309722206677857158539064429023476244124926417059052968403997063920608474075440843277622049026522360090689932101252109965045093864321477210661999987522802705822962503270171408269814450127666006002590607693332055052683032369734044567910421437730409199557126359089603826956672492589015882766616746579433816590264537284623544741395555359112329447151073869592749955900624915529727422915967401328141472552037219500060508605439287256312155504312099519172912496445492926396960412330133879686501922942180652168458483202392514015491632004846847329849085886686946042532083914055782951456999141237097096839936392867615967183961716463711744491947520950643015390568812804139035425975868073965152457188041036438497654188774022830470175489634737953277634024735312672172782344775096004857949750828160424697243385498822021771294990521670412971710765173836006850303230099474295406755866152034897447111699319349583209677302071182894784405678164863470133780611163842596875346119005370905542144584898605460646358260789074903315465827956935699586811813574422232091895653630239824519275253941719294935816320142610629034018222612519675244687751434725727181211745445544334324657406335716756873899193039491239146859432351481210726944007770113267378353320175584317649377067842235233679294687943169770713523613239024179199518330191686541771174268576522434124797297957394255342332423644182154640688663298842957327139898569363696907576278662622653442978116109091399266328000084834597199398106524710711383704770107566493448813947766958040644848749323611665582007462770724530689683400928736079379350124204712578851178636037917219687296439927931527052466457563218220620811233905623307088495869513999987993491374300873904388771912250363652359416960614839607181752332150600484219876922995936320698135253577824739610315536519325170250316723851221720397047355064644703483268875162945608419541076529028876701620155573888223908225719907131253204326417565911537891576025863898180438839410009431938946163957629533639165302865994322222993479574269366771568576426921493716850358797875823888239640938768555847404705150299960227707797621305271566937373189345810955899414103705711793211862576865862484082804708867654978853681291098716525798743713537198089865023797138582791198867029594291428582289128383826392762950113197115197294368588290280265730263996307548877104147679680004061480187234336782177101717316982913372808032149820166296270105659680523165975670659768481886219471970916658711103333712421880346976171048273281076578705571741581696401111479388372128038331811291465309168023576752427060098364676697345355465940362263562040762756277918198878182512565696460055500883194511461882163745204156777622187413772820033340616372622621819543192794562016568639555508862559043783306903896029901215875637654545157784045844212311840781121371983620655736212413550246688276783826928888295453131766353923632534121556141971608082389135894575953459641399160345062038299866608492230719381451737174583786817677938452756861236304983906924806126827732470507708335412098034311542428045821633105868687848313022969317201066046019165136935813383150079450975681073621052861940649245322081990110679352434256826569099041004431656360761826703806536655100189294657889198235327638010090858204326868009597838207817598229190352051316876683747199832107957745400804863629589378698626599197290489703362022125018929765176515912234456483284306151377431183547697490336467213838544759329805226468130784168264293677947879436310867414689577211883741990423006927144264590764173585478767116034589172193110281483424925924864770439638929631947812514759754005156991679301404108507817068552283026897240968223504709969618807620495537068359649744803250751634163391144091558744772974948666089996084457106079329712478506035426401260538798143215447250739136239609115122769727591804805684082127407932005770075436277223463401659345692738255774052948825476121558387512391620632530680371172282147274533884349292401666410089292887311958711923581924166817395781963502779287806212991606034652553704294866823148903981718767559822536178982345662710283104768202931429490463407885231866862877327169965559760622486135057318930450699294239565578245811990005315617853490472611227673775626285601955680325620702606094204111787864670923185922138677523910711877438727513878279259200318487787436448192097840160908886297159411013653331758714632162930973257508775201198584639521193473411184878840283475419903237597111081278085018066358466206169400114443003328502146812595310209982310939459697102175331259355585308791349352602077532756148732695471337611996861387695470334043120227251944501868579178120480768200907808182902277622537739983501251438938349624423593339927191282131332544828878794037048197478973556483850287145710460649593560217238327270487947235376392819477598480557775659091756578357484762350621728349501212914854597114828234779587532589875302842926433456937387789181064960862316284697241922375463985757561255511186637181133803434137097699095813965570254703346157627173886676715457901333836365368067753897138830927511916120343245389273409657440831589229641096351191882396964738963759278737630327980485333516202763835646553482099365836984266620681394436993029511759289870310076291584788857205291472300679726362872622955112007958172833802832995899892696353254457928315713770018002977778932900167230335469063049285742562488521467355136417580849545661177497002002596259371581067478829179778893733640378798677936845801669942807668263103527231111922970938642397445600439998694208965129817649140030331615921793995607712954941688387921485856774774153481258702677982722775174160997256567332799646211624938195125747608340884376209737419315647715480076391969566847472840730881362896172953015577070594834452947077942949878652334865607814617814876531428170992508773793905896374133247465311444422196856547113103528868881216593491550660417206151968737781893735524785931774097863188587376303394801049443441340137263513128292261654648076438596812018751904885634262696758491755954166987970674573690247930260563691172712121145785731076222349410809281569605670898905669252836712960100210105753781627755417883254990016498395931145357932762499211306288250984488559619197055834115320254982419512436906275219006522029786581327505931660970242716861747355248168744589986150718410428129157041233999514722259459952424415849465006006468208627737003726427279428184257440791848736819131223334848210811853737517075128026542128250026313336603731714053361490348868219975866931199842755767346112150076878952690214011728164765451766760161763772565463459783836019843408045572619865167869459543803174988152788656084654089849755851524529408639002051681850410470332202362411824035449747926551522501694960800213234957034876590239191984119192998825970500876117360972128962025665170898371410167922467561417248268893978103254101823607384583011628887934797830001645601176106812272488300380509155370960263392862661984067139745406277419883515364390743843580238763890168789110962415230188254023411337963541722718866109333886121402654432374876318249431402162041721693427101716338468164746952592910844136441604236168457569169436404380554096702797262551400172307203459062053122956934919223275817637181826821645556248872219025575892415022944374331109526685652047771943997024610854435864554712296898657705751598327236986012214414898784872895606614764178251211275298866595652986414104695991536369503744715573209186100089706745615181931324644820310302758566936505818174570587134334051540623633595847162404352932407815211549204255193690535344924276695467292743526996198691319330352152277679123278794558371063419272456412577038607178488034519510921222134066625674194064312136852995590488787287226732984712159480910051618254711956669051878000952688192088359897810092571125565003933645516430991623288925559937864642522373659213305762076212677460262288553897963013463296622629900437757960909213773636062203421187172857014518307838772704752315510017767440489625209071672692634577299524299216638421679511034268208589729742070055286442048495585685543991953870786275657659169564184186960035219737195379294399023470050857371106364166618533838386181332540989999850718548446547820812662888736599022077858227615296555396452082616915473303990551475387740541259100778093417936888556483534993693627131113834721911224583199272299007966415122720990963731278877818537941339008524059519723280655927856348387121286039690692964308780706392768716869878971309359621603138116963441277190347277902997440747413476629672216155409545397194145653696863740835906913660495367560970581285400155553021426695671529662307297036078562191253891505273358239402737166234258247287876238399731770439577680144124959357725510828389764713344913942734815258345344825817970034665431155741373483212035639147597013945879218101390448404166235424590165585332939607465189905979725685988965199607522129293088777411684609924012688693775666684001753700872679905822235469765360954440250814644355542267575970302932538236803812407963033033963725652828493732278870290487244414511108807368679883076911152846026456980265571142767367269407574145190846188422673887439024975361881665605822111254959837105889549922752746381352225601142463293333219318804884216168779907257580835500417429157342554292770943338601790918413868280731261658590918578194971170722273198359481057346674071380036181183316626759509759759285628387053936593719311128206278858883428976656089505593211258993353385352298517078018614634192529289126923712488493202114176137809380112970479947594119915557308230239704882671918041120386104173319103976589565959542488541508290921053303703971374826748398500307792152083880438863905240750546354657632448212429019453754129265479314300008991959840765117733523998699319805895266193403217976507314487994523868526041319214590731382321846169593856123586447504847847826002150648006584274217983294343262074221414422799697214542012169626005885089406093558528220494829615549049400866981531629447729358043306086449884403158477797208718246383320506635181874143320889465036236166608014843560539069568482894025811680967265723214152062494282379452958825929915644650278316737223175893162297582863999400745325563672536857839647690721926927596462658031633790778450659579836047549743161177061887060015964509265047417362307760845024477629814240429284363306559605221477335018433834666583215190258930388891730006562705043460589631280211726413318499382092123203399167046927148960792582227715047129799249576781419141932847065791083447922292764166439450971164416044256420671679101405956607382173838843667010385540917351679514796245863913945879576860217725471291234113788862234486015391644907720708948627927889082271336492831529361489215109915422943949982905184238824213079524876714010839617425696277806854628448078793496102255151981618412720630524735055566282686136987592991993934707841148570469454511998031591728033392877077953988986326737151664446986022655439865222923181050211462909897036941538294161039862037661557103837197684041634080998158424100525495046780845620787884440974970297221300162240108165112556751473770228611317496080630266904759694581405443199008415856915429969359733786423245025787293674826004963886397592492308641522420501781607675602183044388991648956341001521258901299670467502729723152854172080167244644273948820056560696821073197925696166451100019789785718593052632906516114368541785207257249558934482284993685193128621371605255423548246015685206519062612088769836202924319806367757263541278271478278840450056428081157850353505098620066266140386870285746573525681745900483423596575167877472682142693276386693802795864444017233499394710235035379215084448477653195875071100845409321184904281255946789886089896370895359788257527046505077179073597689869592005717076569773766119477615002733848951122790605783665014209117933261831041539797895785753007262242386427890060069821193810260362362646297875749550950719628383919652102324005600668513736396637872471594656871137593150436151006424601673446843402771268885782198638070334056597235647611942437541511399151690007062785813889970241669371326634370288383519005910139780936835311901253319149062452344248081059354480965244802165247377500193716898968828344868232805470694469834290547009864828652265243083706279284731246754768149821852079965955432021438733244354879062710505870973911630043151340730880751500537947233326188967732629405373607455900803567433640112947065550342669426642537114059959526920866758980114970147525215453435501611319672044412702934879218108024187800309454664023986653215313921608485309293087628496927690190486838424051951226419748245227541787329940127096499755121818604190636765819380820357208477584615462844263571715030371297815916931296293613199179860145990207507839708501770925478137161595157341781142274548725346189612729175183409979007307941889192802940601863362402867936345835882013681308091041936621725490559814624298253707127785573865247507584358440748169874205456250101398980743933847641789295963045756391016995574950825212298496680441008036772149121545378966947714045461294478073874517998041697677427336158505250250305865681013897576490766785670064938460095765908165998531431054170704731165763957061605903353625391160125273847522036450242388943350682766391675109561908588614910164187894444148530062074347871193743486089732938387599776509148653588218821073947863576630050417619885478768701596397025454729808451808650106828584851607144572358609725328885507127333921086772313292366428230762949579497674637841420493035381781491045456030715920269719627771612487753998149592956933831665006694179034015834399162742024727603637535530382631761739086600967615475636328750477319729769593424732986007051934751621587554714364638758978195150541781063700997157236485138658756594900432931378319728048683949201369904381824666588029644711999184746718497098039929502725097762563738862556580786135184911196336251608775967772518123354194724084014295275816154815388889929371135577227330144159109204196830780418314884129411946980742301737129584176829592696868107290932358695507419085720295975510745772732063815013716236413648805334355233469022838948572847060244611476496172210780057528321866732404802626247766338308368051450183108534192433632577182622913269943958046870015190889053019446889516397553024959712938237796777901943456508768453145098175413590055141936350646355691839517245034220935571669720779958958075206691678623463005434438636973855241199365144641645731034815892265595052829236567212124242743682529181164416423786360770421065930313740488793931602911795943778290989132690498667142764910020730158366598404034784785140149993492525686507610118230555550370015890258105190285403884329238888072437297152361611013682654713406010653210572279532956091888630645870933356937597292312308036467783510666790911220920261489755876385888459600998493739372550855334786358203598823581579754896355562287458263923906849931018230272515110348331115095578985876718594160348987396917077996375044895120282863933973410396558048912913069917177501573349217576747943400009095725049423848509614417493468497240716025125637627895851320676959548216862636703439940347720630608481581052823162587640673752341204077146001889331611381659681889522961173277128450371714004378986645275213761731707504397516331879377529086309672956738081463383071080491993461323612816358952418479263676139113497925045594108680110071905856674962850833774221981040880601054450895967011099778864614743121845057583446565955436567278375578822164737677985599721549925196853725994472530993733539423086217173784201781810871196552643144887753484338379204058003823323405758935625859800161069431652354352577731436803106515102770060583920023243169721538228757792423906418331181297400232973689305945966294697503355749945341283630593656510960847745326775799269872473100338153276662468041674089432125184716284541465513098323712958110709095828732178652300820819655939939193382545986125166802582387698151244369502994348675911740959827389416847992162633281314265074285834131265120035400414924243202683308027806556906425319381063681878391536578468984510531348598700282933989195629339810567085305684607787972670320377884277028056312562031521542829085707269691250769954541868668168897394438185986723269483011281291863435816388553352552856816968104230058316481858535459330296427376901218649116862565445479775959094799839803774413844967938862444351732315255702102046350362252749321663423309311955099461700421211730869481943898127448953885912387252920647791015841593561213623803206815322763210251585023369093155894173113429832844994648660948490430521680464969572490072259064084829539178471510066116133762480456363220360955403297086077911624162763053287801172963274780309027620701805127607261466769872069139183318647027648858463362211551480890727288564471995220659912906141568996294486893831043387087665762262087095508414978023400674308279519087125910136033582627698343589216190066980683466517560031451365101862030799917583633774147638558667538661152693849293661364851830297092995681884655763428552861214275706550144353703367689564113370080274154902747997295092222379979088777558964536016521046305710894636408917583159793800549266996831374072506200064039899094068100740969240848953201066556169045723038514902063957657067868777848130612847378819008547626337659041796570243780073730517017374810489699711949995408322170293416768094892047109348941336320491291646916497076240728591147389286597819880693441395366344802068859790900418806062726416017459736475306494256850359048282712600357543400999136475281837004996790281384286007380280668741905951781900651430965361220807410136843633845022576643179748048386583045312553372880091430794518504078097519867521449327450026770972106941971290172965899888299209939024194458611398206762847579230122083790396250738285791809510302434601287055570435165182130973166496949320074509762359262238524546618529328351757343680370522295782130290936734287573663762011505597768810124451287254426028222701516702842439336808070597942065914731276618883265119919904561119991925788216073941827273780383391086237309655475097772701075087457948234275683124753508004955984763052646557092033179495298226468894784420629765459467684087942727191226184918909641866866577574057507465596752341311739952703955923308595338552394719399526982854376878979438727640435787323372351980702416350988107721209561411461080970835280084396109615529450598782185357728530126403338174977118004835054649932192675310912811165514668679944351965848352835566336468939702319905134172737929807140392093569180012828878586465017101802814358142507399074741539067636362684721547571192445476460943467689465568830056737747918334168122475880717363582070153951922070628785965584315928313288062795264605256903155813166593660324290451730430762305083466425989454956724516318036474789725684278331111104501729393498057983017367331257774522838060682518848570566232190282314743631690994786968557593183880364108026383868690318179829066389700822382612144207012849518727970481066385251274427802687386634034469442968464664090780261562152461080930863776136780312043970869706329466728298556749310639354390252524556876080470799317533933823701231250946110301332354881043085190125790479759557350452491322756915463815639994788512912144956112101278847209247312913633894205840232855693005574307447932853618454934959989939132629672751679337261816841842273917649051834821677435144827848940890113603266336347345642095031493433456383101229469108290841801072941477891921766410548524985011178754161902181950542414648628069142860251075390440004117083457822821114477526881272299355511762990637193438864603197307359758687960657422794265109909716817282954159985711516688385211237337621738547097296646881251979833849466241110197058194249425829709353923398342401323022007921469855739505206746776465498498626195205365264206471776280523667341864819587600761597951274301868174803391810002982864894475695135728864757246902332227046947251038867521158453263865284307729202494607517288360209720445732224822203755693874823693210322233948571736600912661959943356372768913592721411890181663696020883831687897695143994655809367416796427857986225169901838393545013432046679569539718827111086850325793953328750068698357417683918585975252718028366135090308216672058877998572119788300803776939897232505776904294663140134372434185995182288073008486797417518048280006498726759301587276525357196835947088116995263750763028077140564141917844647916396941681921868069889363721320938097272320086722777987363871543331570960518079566162626397687202824735813972644816538996150672894224497621352833743559365909785579400233131162996302127365769599887824112399457631291801584304215394003175806150181795821914662984826955139537802479656585021444335532169847729790544884838347923003888313538249248480940750408775015373758933650328000744199701052958037204049249154025315416337452554526041830646202964615391863416157508046061237990537233195325705772084529158522331182667526597972279892877520346589018149842724624809287447159498838904194748653869844932918671484593819065308241481880050403121893816997858233493802934420246385248467619423420231497244905190302543396390340766720098275844130635994935242125087146067479089615544545209125901182429019260956712296866686505684855268163752316158946563143525832830639242749041120757402995926728504961132075800454566058672573608972821153626459043161709511888974586854995924643506597147769362834828695834094818950327276936513336582382105486169148433598027802374664474920037699319346393194754785624391979402801422525589498039152407374565472677879239489359180141950111115513906157100238415294188857888942515011557810829280018853224496852980289086363346313460592606041329678744525396392326486549698165165612191811801870205018620792286855861351896654413566999785288635983809961212994803475189459167841535179529546844417614610100188922255138986153607540872529052645201076611464527868660664964343216867788912079696081989409466525827200693019795205203281565951196681198864948210908400611307916788666217166125476805945194085843155660520246083866772312303998809990213897192352940508225276253600479630552078431056784396321716411142974972820385714197752352185910218493621349091607410787021559337191469457047266811271273336387364331442476516271310895555251514602265819639736207769969680978456742694344346693559549460905153474157293940427694574814277634487664992725156450188234199122144149987101601211037102575030093394117660758850853462097249233595094755256404064686444422558766492824302193560031538162185941223935442313972912557682588696775064896271854728280031554284952313343715958313623217079537295154671535740556755619328764188075229593041209648321725168864045659430566489491058451794055910965674580691225875153821624005638483498229530102246188041516658451128580975696085697115531111081828401688827265443428425003700943332906583927963763540886618446665578937674482604503930902767468155181193634799066769499932753118357794650803921394519697015594924643980774716737928249172869074429426087430417214680990628156960687656139344568224388419723516830295843650960490538710783789623542260974575708769000201071241413836282963736743236479947846743129254866483182625224177231975835628361437134697626076420069099504747618587130270062939898721062862179696625000498123421395409440007647150813371757532405274102351094720899619041307988991744873097791531442051833311581875010487689790759151985050982685576317250506881530260715981075619491205967281170675783362092916388012142150343471949308298742226122221138481880534852753263069917089743118073139498737803103362750480743142820673283838554201761877147564798883073085966850124944398748288012715883713529082571393253133074177218356855035140417379185906901040426533502581157078667728684800645043214460258606347879655385676045490661326576999904297502163862177530080132150039717084567698779780382184032512762339797879158514183347956401263792309961326839722132601434818437175038590084017618498297185422941747982057422975896203867758808357487350733122308662398059487352958652767195839819208987989025462778385236463914025693481367460354578847044551128373167810785597424231589809754536712312127401832134659611575922097608090719058765805832983129550558731604842756045250528234270702488164954493698999592817622360459176419637424623501180723501291975820129526840056143616899130650981175727115183834578701494351238167136652849194296386170899884823662929261358918125193900920855601179137595678954744412330374244394769278941350137114380782640149775471204322668140123181556766406650857994367436242806047055847559131894008995782977721526117195930652277299173890001001599687746741950999685283444231643609609865823833036783816593088371161310906421486271678249290983108729766332958008740666765420370591822829352176305361447726161273768814626781342971809087707154987260757864173789155035587099149522966832264660060676734576675958517247739225426997471773245727311634736795686057224693539574465865906134699163997631085550254585296578935268132516420340507912031545965673626373680712374640023998292945992731958060187735852692415062776440901302063912689975225375207596704767784184625358267559951245295973459707648944945253681502935755107037198759758633392639105036189226497440431683762657469092700915200777599521434798188023447453927238894706112300169828585794811177592027504460728258973779495121837832608009882117488875903728810086117732058733729160751714438983865257413242900409167068782090232844244719125073987038375716568936628795813090765419625428244493253452355905548072933279899716731486940584747515919948167165696933115872603091560800137742194553914966914808633324813959733198101137160686195986287602682363607750435926605269057767106483568769532254388792660146732234413103774014401545984997025384463416601970065906717920269396453853694201279918265769266694828826713565362724823260951719888015617817393723027609999621024055604861753128003306881477218572179068375941402705762378074778666362473945038049275138322014741361342453914294311181627624194701388607993668223896882696522663267454714301214811719355103918725939248158784813251404591646150956908949721117172153820265685105911910700780927965880325472796546826317783113971311353468660164117139028952222083440763852887035840542046916871014049297304689048729787679171262371883552219666467287492469262828377456295283998642950476905350606142747896595521228790644729498666314405205508409662520017163790849202525844052888949219153737176669894979820316002111444054793600788219716756279446574534391921340718505406609001270221057281034004758363685810480947493970223809281281371093460360750733679263607694917437543216472420962974323981691398000119351306902765450798088883489379713361147912191217109111857012283680107621193332226680689120068058107162365178517392570798409088830795300021070044935745897784377922675238028282413840545677994044160112558367262975744884322609018859947108952174077975715975834181446820729734124955573148112098954394862241511877912593315926142567609946086637483564915056003747063564342216691038775448954069131665989558382071459658660422619138007586735399961312298587225884716617934016207414946291281867074749925559551769751236076192985574344412215550765103174521338389189931118537269957862941562433601431413058983744932217154129329740953359694242516258230446348087175558227316959020844436471866620611302070666268658246345276915097565758533311130808732126061050063202603106210078242076422011618832883709185470157506739757113901570079937193685003983993736360909222043515889742381958607218907913396765845303675433697701318294757792284361582605234167725928267931230149207033403935501180120088145852065260557820748319157476260672024753423156204929297191622781280188273028140790357496698227330156077076612917507909834335374674250523046333684938007742938623889948251361119399430112583675231314846825046933394352931008793654350793655402736070001425180699208395033090193388028100706879023935108946993062520991533214965738311723530322916220787063994606330366376552483148750598559835725924837268550108554849589056174622669520161293682609684701076587250950118058371308349080108515246084703893817081948584053371543739759916543613673047051871010350847353183901315947427148857003966870125811127961129723446950399998571958033568947186787613801154929749957363004328011463398108426102781271984292601583535303906546052109263360887500582669187594116436460233377093940025084209439385947560535165595130932847026835431085192233318039197225264096763888653930620462951342107428199081840582792247218818182022585543336642474922398560318312336730642487829319179173077679567794323083679289944655215434184375735680194601787783748760891059012725396676171475920966522171374800174143952616605168451251638274205597107039295189816940499284354366011881747318409508646538052207860554981704645154616089563375430922510930386418940478667228635314027397043671514559051051606433077250035293797169520910399481424042275721758786180257622543944534496646080832589120342289374387727823702105909353853493940402891193517855610131581437833126219273242498542482881089758354941151981707849855078320491064813972428262393130425097492022151508488562126407746819564796511354800283195195219652906361588071253671670237199915439289740136151430552503725843597581847961391203921146607222417420229128402420902679995254298986032671724263086335747067169111578257898745079678823872834563642599230056467053407585283714646339129639251236741118906754667209873305777624017097580428068512262658906919336051687657407318140493686518670529186792669064465996486766966870347263032395184250599169960977391900447816352065870443050891314529068064940964076704547997096476718765058359135871125093769652236951583971796556964464908471984145293095777778680945733376861051662334602332780807091354319373062930553413131284285043646687887510650713405108745328538163739950066468509676339511902088457044302330503946847366899916474288545695891372151268057615017712877928512377952252799608551323871168334415009842008464267744968016776594054203356958845654193790227360771235431666425346955454316665092879162751223133178268132139562193698489703798886610019064532122830309906196408254953372301173736235499875065981661397586286986877803214646344578371072363434425982997077205633415433650030986560237532272118782468827383636440045961004043072464963191630131785036634726834443679575685697014864505453992593290709533601744375769592066184465162499494726284159102778756312982174015357265870591802996879490345526433105370438098472310963218371581163193915972641654161390926549899483460056924501485630393173206665570464968657969823799950569307097935645438156042436307076357116077933544298821816104699482438830131575708919414861940876856639686129047459983050440831551629484446196926761531398606433036031663313311499948491720002719463254448117403672751746385506946239798965944207167759257778506816364709156720449331542996670693053924223371103246777802086086407628289429279919106839176737954444564416189647249485707103405781725265177331847445985220712324263067229509119950551225834935906168725103710892679793510893443211706522372640690278729219756209644239276754620552638533591352587829812656738540014582020623838072308739982635319936005856035233918305031714844064826797381826048483743686095886080398712885772881748266193168333147832402827943991463760725855455030251528403750460415549725032074296668285728823899267495285066832992382236276791618710413488481133671032828410153236965344874917001975784954346743316328100495950347794808977400688899269652297613236381369864518215000075761563439456579309875603762028781027903320762386037828223271113054638209989084521304997235458313694742170688673707150411939371303719691126398079430184067763746385649809623681694927330625207044378870070905977231431685302142196355433779358856897078971522149925455757839644625650321855024748945882536934182700874545726024629058360294051661304009279809978292209639561082152288946203230786932527644975867071778597112987418892530104782675361580212960172301362338427172608838391304177846200294265493858248091194027199904357586240448005002363411000516633492784312666184077733258063722675616253656101589777839405680684382906267780771221448474944773815310229446111928985831933274980705606012348219842148891226988439786542740346867899946318840681316543238611698212245147690420934538728884057564323662699973612754520581751478111748035062754220134906325618628449795670671454313719541307648573805212118059479534182039942712654891613190521734882996066238215608087369027552634378470600897724259373637871198352648573764723092340047354490296683648683726410823693167202293069361440542017372994500247310426468800765080265288192401287102167597203230999278063179806320929953812405742018297371706304446884856392050171287895847221646426892071818781267418714216611680264671728331457090831836551623349721883266988823454141729089321157908343639970933108806663322716005082608532186383099896824056586381073167357273348755948732832773593931580362019876350532198926946492882826179335583884975491247058736912670565162906240717786794269337107335237269042403062020436624969008142399430943584555303076314698258551288238899760631349037885770099447119864775420879736370672587651852315662224010097596993507000905170789501656660020987562203053218638346216944518196886878103958145657723845109252470727235946399521401948620658099926731366631187523832709565633988797528599625493711378898595701436850824741576550853799975548979874292196882451327556597966055507430087422697285298117308389846833481754203301706282142308518434746921063761518785682436018530365726712231099625835171410035316747912822371242619753254143319794636966345770444360786955676338917922108903943324740032867861202077360030390511392947276024491955064277251148695426843867183994278371662443729270237299342239789406032802084727359387904245468509635194449650000990673629976093372775783666818279143233360396178946538886849848017104748690291797660582866183558308595308961233589066605214874401722479331535215519366023131163801002844603922046423796485552245142040640207826257412432583170473321289618764375640569834146594451140351991181695900328750413535258208561250571045044622781530424977559851577464118187825096872382376768594398660726173071166771521649907913145562574763196122850827489663248963298686581522230470160786062546570411501476413389458856139744347047677398670446213491099093700179710016711375585826475461023325519151296654642805441931108901779674687483497926207092530429206061890556387621494791850789098187955395791506342448628742047889650025766600162018889720286202031752316083420791208500554293540357149923568783757392672310986878889274751710597722276735619250521024862682548628644634905435874691471629337905254311473733922116053490292733239882942884540364011050197975436176289459803766273460789810609323874758724428263733398939397076669227184450638925813157992899844125871898676323728791324350643389801034759925427461457478014543074939111544083969849728219358152522338875716665703851211445494860179976814322373298761537584194470897392616798706398193370725625740803485768713186569224013984962895551462485772794210238051585765928190715373414636416360780838404001322982197946624476390207030318449068782564327276314668825016466588337276714674912947545225325007949260193162417946313553499390995506734493506062271291158940584265081386166689209897821749110787009089551907492018399725285907491047055602278413797644757788062218834941131240059195199396549663920068242393032047509950903076930080355129614365719215962448283214257218468851516656733647588204138379831619475267787357318132861626430087518330977170373544613302685748071928085761310966268855085671587793757995275620518650365720193411333171826375088633020336881641581069239035473928832494608149325089949523712628586911042042742042604555766685121586156984208927342852964247198723342299345158714548281821130338298073192769808414194503563694626006895592255939221393159089948001055386900800033375920830047727893962244712198140469183067812133505164023004320799816131953751884232084758021407150866613470166294331158883547342733318283684495258136985652351294862104574275608768027810350370429776204846710816565335426937510685968718575198452703408282306721975057954316938168030506817476647759578162284815235249274556909906875407747554653736015020537826175708422372851928435348529421521635080392076983220034426438203828326962929065681265050692628931519876620363826979569863451806163762869061053488938902034928944464814944163423823203937648409201216242198274549290592664578565211440446162452089747634729510550645326550138566832870141172984146642042658129453557500568209209211940079401244564864040665743024159723974691754771511860313232786108543307798314539247440375268622151735376635489331855187150351197900570849974067830705275879844485987977774768182125823764300089981142976376147393638847645621998933839694305534847970973848113355036247148950182092692977234821733003169089487791632547158961480347420586161534226482990791505835435284599009717762746734480352727034219054234350565817830741280323067784638643393683638544822642649640732649332008752033831204825953815396458585340968542983708148012707812018153180034861035847260472897001840010516777869606126100226077025733951236286829757493607957339329639520382787172389643111803141162515160131078343690435074982781635547834639465204972442345784758751881203380700912554939942900934551545387418302427088695075850147192404666644181284092367708594112552628914463337036383200273786582386228188593190661035337307022269523153880974053480944247299146065429074896300769362970945765525176265786067740775744416614780125206174674515496632530449849295892551335424438336899292688270516654779563527264069079789024917492598388351913477034039165594232099881812268360530324385901573984187231430178657548723948744327635148870598324994632602341866454067272853726289070588984219499313419951984248525400382314084392807650948627993262998545448574758349594011947310854725391992018845828572085296677517840626082260648630043329202796298035279908353968512759789590809581985983974211725344213799866197907472477217830147922380521884133225700277007186123273799404752364024639392042086814788852100832240270103166535400984322680482287938495651974803535815365761174833358248364876056744374956246552023800864006903439463715511264187389684308904726989019083295661359649275445926200608871553010447009973112099885923771487092524895929148632800822990952637537973425874097744976532104453656845427524902738439942514822314803636704014195322352368470492163404134182886202989079511093972870244492340748570080087872489736628996475131259745066885178146457217778626509817505890782684251005402062168453519039964584100709857677220511015290333116227724692133478756872886379154352733485327056199595203979606781039146621922133971000452805217764368339446862696014840869777784233935115298014848078991748111557809718704014239628131155252917762830455770122222764563046213932910419831484909571992096423893521617583608527913554836649040688028259982184471668225248149160347207508448788851529575774817762354542006657611014687206337708395453561949168052946218026296356791843992163304331917738031628713244592251276894617159506338670957287828020562481954948343272396354192675210966324058077496107942239828181784135535872782017993007922990129899531772384951810621106943666576035000845694626742445938459344515599674158703390269118497571750294053097176119877923068537359631277841592394519800686939395862591369190340918087122028737909638818190510969555623054215109271083054925220769342372548329085283665990809726049637218844600628568112463500931810241276117700557461969041015913168297597502919373537230436766958980698542650524671676872386530400788017139086130277856578789102083858179175567652329092295990139049250668192119092816523786226128935356220210227000912777809498584739617083934603176339024629198729046934979239305668689790190612073122509338763863681593761686939740591996074347339990086547353382197216468060528677720425926694776740570443299142694282538614785930522969786916073555596853893490930444428640616629460984671524055457208172956689257075879769147689786066896159137596397357178542977492819238823651394281088672394834467639462694935806708782718216349963310211971371884076572147806016392396726614670855314617487882196738290426489520596862913284028440282402916827086847487177224171932416320769932510243506674350173226793293623196460016594741841414523877648045256217894724220629668833832974556497499763994669673649479147126113711869690012440481939257855104569782648557098706488466264368527218809128858002619167781494362089472808461994580293868121209634418998935378509196274889535039970451077169873733263013755598699196884184320365751791790949556212140284297936518270403444017568875005750661822950267518886431223925488813079550204764190767987267867158932954041848441799686472074629933086009531358556133809908005108166486345737484818332448959502452508551133938359869692754588459260630684086300867787291203844957205340780063234739860948058895127481224839175889812943138191165765763059593739788786857960109359468841857569401137194419367576784176393414082182085133864864802916061909435245669551197780624768573719655872953531417264271107738834886341360549594632086577556854520309052033249995192115360191441445136783260529857966226462573291051771367685615340172428208255303072215776510180813253547839916801134745669445657978938639633095251054690649100730486042728407406640704892056216665959517370925379833404644594847118446624916797858188201473606680759149299216056650761475440891702642185840934849496574715623683989950384767192403558580028175084506810656801012103281692663685055277399573682870141077827980076974694785189349786247963747228419752151790860239699096426104034549430797137566455382056483908018590165302718498096830503613609170752189234326481951131072078325099728610603080857516317791674624850368991199030725277971250025519680086243344593775219066174288142581906907777060251071041230290356652750686076590177499540668142589237134505479568641411204511329835435475537987697988263019291254821832091894586832492973871999380375032342192657313951250860635789805672426197816959297337849629523145530199205290991582861387052225460472076332107495177263232839925772865200151887582602137432664670910421973585633929059199456093278242448999389482378733469211764537949204648808170799574215270013037198662774399702349881145366550658660138481726235431259613974523228274907170579928441879540854798836490665852431052102703041904665246877643499004968090457083083853018902119443345116473216894179957653363402437470408600176937122153404994810863968548173243103473815789245095881213768023011655883089433890338196387089350029364464469299141364963339943338523339760108113410405570420387910827821033682821244312705397773606611039289108714994541444279874037655621566528039042487243041322242790665715922273917032159542543461615008351033023774582783631299756080850847368867542940329129075815161402273587586153167965312215257864499867041174758558571765474341044047327752619091644877526358575517987035454198040588017310067843177164293783441340541120169994369560857767078381289259213248820752808967985704118997404607448264625962935032311146631489470209399705217065013891045945950294910440068546507116523979742349117370792912805476272291355906710043860793103487382360189697052800150747740303880520869789232320008078892676302857232686432196073344472387920426277859941621374708009304767621251668441758394703562468933147583482167356369277253538962997665598070581839276606061430398446529091404209214554705919418682163173862956783323046252725676164817559878232863913677834776896086151900909164642481979766371032107013837401190828042038522674673814795507059093675731156548618914318755542368455119976454696632154064198055632518434043470298981954138104636647382204630355362140369168180653422452924931742914475786345712826090754870757481650236645772897160550565284980563620917412772234257351514049304438404930170187061297239968169743618631304039840279088184397364528056442371126700594234065116940543247433098470780791751674036224542436619444385096627951460226486196077516809685011332129495011285185898108641244642484461161937807368134617665955773343983952319021469356255386130115585444305821241687983951198295324459972996452530160898395897366751336344880938717159572699847720239459931370208818774255526469925892472184056339988139989779531669350165096601648862481109990443336741655869213585011192569913193191152454274873546180807878450796681909536713625109717260346326687139385513547785853260759814928136305363972615886007537547327749689324067310565724778406428628053666783028666829781555423062844882778573576681519230150368390193484845030828212277651520039576876717708843657966844723448161143101543113922725014799740080261835286811167448649425753117282390696301023632891149958589177169733570760027898522192356512360177253498163327397471305762923119986906903856069534761460546837571563993888418280968282396673064945502207599479909500277726556283636526135062398872986911200333996082579210638819788952099408819884585472042417765873173479562505399166020261256784903302029635500874508228543584972161522178697123941434430625862220545788284123274079634253786107114738837169158053891616473446933185147729291172435191645821501986181119469043407947898834362997060729592787317021157371770615310651985564376337165892215604198240883273664494230413328290565892383322847138451914582115751141721963625532562242909509242378268031357114142330888202066940453629255071670583358332711854895795906488129133021585157270522836291345498707842342669447474369889044005783623817455755062677916275518313054013065445728111821035188046932921452727935307182999626605377195952011218874028735454474399948146993674883435000028736348241920351099556728724621763509924384281577902764050882801669606572408987037803860897958058341109763482212658309907982365960764419283852124483676905503665617494123126882011307022148081776875089577107312697928949667973944563021753705525558787751177760766420064883321198990429918788559563243941173185273751196893240388359420398496598063214129110217552690193937126165557241070007767060421668963816772607051477474323153658354058231895632696079205995347146758296680330264532554800596603760018311302928753754026278811781349691094499995159578801644519370955122835780365709860194850470376894018596283278627846870893459277126096620682994012520589960854825674901902924054830862731413254824715886414278000553579533695195007736439837106985063999394617937662067295862496092265423377971968351926909205268215088210826953530480572871885078779405729741583847463448016909947589370367589036186634761883876054591348124265044001349070188953337997526883235607206201868548575494317036595391825825878460981863647777099808239031875405983684455363691649508309822066180367662316603651888740502984629993707635059610100144610732609388774623004454355584894404387551668493731652050913770066866043300363601008148809720172322932814131093358246597868544789857012161746020054426258772166882158333742611337381255549017344728656897816206543064108137391926613704876487733110040623435779892137049312042393063294030661932953539709968375695213816950145735828521704425165407992278302209366733696586450598805319054067679173257453473324144805828948262340030935626822500126225962859368705740046576864414338310538374273719838793009929701005342515689614260537037659741454809793819433803322143640088954320949180949216357871410180548505317950298765301034114735155612859437128782258839789866099141458304634055071323335368183843933904579365343633921933663855242677833713780923672433358413449753809111182839535689300955623317232388562631263852130180528481958191559543970504138539660810217185413632224495604310003283153505562272909478458098049662111000527830360098670677969327271682850679688486997708451951335373046699715135165771660544706819937783945018894478340278203278692404854410658105213295901217277050448910144654976940307851273634266484487559295765425524556637501575444918800797956308918912413627294280611635146722328493634475949983644260059529454242215377566442115764322487985839434915655605870953089625207888721504423811049752347601515971121855211804770344264465776582048312824339725941314365507578911056034420310111214745033914054692672152074374063969821205895452089912870501292401454360831325610981783535635414059225126388623187309955755053465811713213188800063318283525502348971404566747504268705778285421915206509892957729820440189994757503775288541265133618439188220434451241250803774982878496318295827001341528085091843321337750933491432690134319574311228000651845889558442052992251318274136010178254841571391594347048936582964479970623140901660633497494009173164061594795404625812787383176735276511492021517349421163570112248262760545394578538474899245385495901382184508161853761182621131108969579738892489250874123873863662523485103798145999483968942675652026649430763393341097648072737298696827367204627636122787121607393010494152485706573671232445238782698343165573472410444300407140215440164317745168402209626920119992404845809598564112669428378827456532469302281750893371071200913136541667159388315913558889043791738468830109369547369575436364443891489667883477532401936387810800082701728216930271278845998111223927195265419428924781752122794585070679019297486211688642335496103040442422222797659456291686670761385279296229452109302627911275418084037878337665590452544781619011006977027030877978340718998624859518831370597285937984863865470415183214056558963725406771149131030811738631378489793333380901334306297720288838737176119112000859749875852579650437426625443806715197237987493067339593503307479152531757253611066054408018855796740212837374563725846199327547357536278912808591466497120009975636482540016351474681299824604430780033111509544466544967207386351173203936903309495722772062524184159839406875849320283453225590975014243470317213986375531034980684576951619166243082734681641119721248566053675614621084133637973940919316643118646544420394814125026126965556247288566162864344875221890998010498647476170671939874453389891263365604061648940166857491419355404338077710161264383108931782731681737433865326179540735984685462776272451540098096353767774455212407271166451531276647175089729651417213548056076880751894409608245722414787782133306064492085504784177745982331697342726209637725099423846404567909222884079043359977161278489777924795108392306621958047270228111854620567294653530640974581098469002244349430724817165186036341807810015551374190062977505141950584380592931378044559015186116127133546014062804694066283250358280296428150688269409846631841564586667615845905406177548583659302303388669980759702284034494387665099059888660362159032571285820550202956498007323527461119517100243278603276814486766733765393873731433152780505309977593450351790882216986434837468368077384028832206502032069447805493667441352203492346826280438052274323169788249789417415119123770985834510265031107290814111109451936795305083495356495797547910794775043842805776939263956587778932684162448495483887839242838041644309547477676138789256929798735123076959660301142012285063737939706645210751316170178967318854949020462216633598554792291993377276091249064107875432453175814170894798675191478271072303009827537559178200157994530099801415388081760385820225882418694843114997855334667783428166614543630702395013276376469290954521377833707860096216565981605462780844595724725700004828570829091767359749071418660768945164714882858730700966589735275978534477089088639850773474210683418545374812980099062108016161936140880108503677357385420510050558628497226622281900509739992090659559914320908058546678451279472550646776653920792954338854611791810318722469443217400110772444844011845897369872603122940943752835183215225505380458270688459265116140868999654539164820842040783144391342581164897074560347005250216127745597169147443897583880237906739213457991950493761306297067155905551316406024105165375237397509377501187898425045367692594646713145247238063724185133718094125029407136696616936809185079279439176480953698369693922298360075137237883276363912689093325366151667889778716673489616004674955459992418647865351158477336422922893602970670555664408187580788479073720440759656224354977585631661742352085576718712259265120096231200604700941322867595710222874586590229180889539798965949880698112340524247837809632738452726891095863478453051961240892712915337391084876390645689805597110638979404316657929436598372333667463979525307538000619126983080499041195775905338400231315046157529974052793144593741795770263052779756626423415970665617762621473031680666551565167796390874087602658564837822486798114012938792863181953399793959052611156826740394769603416815792875827893904065168714359306883592589783484895487600015572850594981943191371775935684627081970581525900012878554173922869075332374132229728947804565815607548594195336308177618758239520412451931222419319181657818720930943631212489450164915002220781564125714360895856389487284973486818749384400224804862671566301312520475369360039723925349623661612004714657697852328229635348384390719595267826958217575536196372234684814831770374722591887584355500706769157648366670819975769243008642669794644120589138703107984327855399639882193175691495276174868176456624271317601150909829843871746231779323625257056063237880481471614766357216970245888680307894966455267320347634500088000972554249282029707396654815370354720802797809786541096358679687065941106820338235634057517615284521419455026684515592332771687508386057897808153641931292977130203659605742372411509033937770311144103091857672967989217059379241921905057327453237358667209430085758573141885383099921042572722688831248173077840286214580459325328761820003997186088756021410310182308844239743800031836455192047147445833425588518437282165352896476430094626482651046627505597286028672921191463638325376929903550400181318087920726988993339981542403709112783135184157029200051590633316200511523293187564276458704897621761149650552069579256464731335920184414467587769675845667128840970179366163989946100095053657330641603360015094379931014209587910985265717203486028555309630232646810083063149668360750145279549115874025493660220036040011037713896720053593208317877340860791622660486534882197487142991937674745515437978779877264087426244001093133927955862525333657088523102370149450264763069768671895396005700606551756582168381793717360109667108797146825473889858203736796511674263571399403782743365986823734310972443191059049534256485121024704104729006720935648537830189316843884733972781192682320364928263567485625960790568282592494189846156820312154124725935794977858098599263750057154459791604668887352636377104296919239266025750869880753489536172420338236899956728648068002390765114068309265287632715274950421564496012083468976445284613695739309033328243936616881094380987504388240315869322926249543029337290417130297733410169786947433768618860221101506006434122828263239559681135465228724621715108432297205581697762196031063230889117003526947153289536988520561644186160470319462151572788657994562651024009664587903736435178805873577669565589778460890093171029457901194392606840297603396971428423295316149277784963324122329150617140286769444019611927014407085868066880748481594941458517279649036115275826798620656370318053431989578950439869206936828694463547408941860771382824402398753105589596061544254229589567609981911758676926276722496334365168714023451764915245621279796334478958894335085599931461558785885303173847132909859468798172322717199385281220773453045462197754677375323080261305136795494267816703997369767856671590501395010939774502731775538188451095479866185582779536002095216837261247712665828991347469268219868083161082273544976593514288404905859268343706549204621640673821896053386214641503137946372027527294440317985173554321202852539875947949695137737503143910631453920864863612592980305854838175839869495097768196509720050228149386203281828727993206531629014068172052907729625595482027851388717361733722751093368443205899869730895134926365028134377702214440487267228099255484822241734506930923607069822131541504007957461036022170736901622269844023929381944857568270477732248512058966174762555594153444830777864011080172598500794077945849238537535363967514619350507291238610158743831527187843125518598484500140180951059180961144224414838169630317578498626212412229127779241533323572741510882110438384795363203953977189010237283523561468312066005601963465674117027986697288153541506910585196529047875006244968612844205637481052504410850046533786866164812914429636587741274067357967299954889124122701923253534872424118537665001194921272709045634897155141389765717567398622778890746937635065635315059401205907398564784468530530578816526729595411886687026445900295196110266872379194190707586645250879234540018901270813145962521283234653412640381738623360804556527032885789814763628456256890984891089709984465697203676452095081661048171041904704212858146261420786721161707168831809358709293470137892248541189452516352753886668698312066765178845275102053104278029069346591822239337764981088419890833384465301324705477790710237979119927146266852456721591803671210421520436128506945633067692843671425508623263065222175765208082841747103845087548076262160551873187048917472656747797414656704697159413960798473811817266358560238590028948899013698505680606920741596234553986216218528719117967814393174860441924210119758565922110111958230299543100345998862957723865549183270417115200054861387964012481084871723600922484951918297972778007166392326315541777804439044878075622588763158817215635077197900448629920073151940931854790756489241375095873576618861866417788908924301562604070429635147139455105981342178268407225056680024843819249608422138544387890169130560397822939910797324606418255171794204006316854052521467463953919242674071176573856510591171886315851921580117838509625675197017596862439760123956569577018646694410652273747785501358877202507380656675910008753542542576854704106000735459979293712147659652029800812549173730125236198536161328428384791633477171626009024026042950712785718072996846185465098842937037651671626212004544501457814915039517675891534906635490028154806335716405516724807723595450554350869272914054738341739155354626009780975441764913828675008254017116754472430181437190204401410702090704714431729555282503329293727122521000186991431836664089251398820645861662907532254320312743187210699562232695653960996274589981356090879211823576549082367803096583464995302701943426741860555597869341898988792305153742630758644313115794826674485117716247954567530357006423379602404955901334143854999929478966332013754219574453646046319207316745156557872705114744487653958938335868773856668044278991018986546245643626490576740854101546488512182556105703716752607805023772013811301246369079175918441923875036221670560675018339982486231141328144050486190027713609820627859197414778190360537293077976637795171850183265941139790827677421538290327677059948731923530876387765240600536103223074363114023406976278631415856629542030544353039491948847763069701471944749993018181838243953316026935302023820244949715017598382547172907486660352545894893429710607928879797105114002984217751315819692791442537562466762346888027550111458352117318985883230793519709859513113078554475283287019341691618963809745209180441821565582429706579120752425446021012405202621483977202660291960582951981481342848978473050925011430662408006291478302781960931008052647867289888773468306505816023483609380484441102085431959154545497372645734887588749119274222482192967726150157542424099822372001479889567917285410079426791875240888146309236762717425690150574953709148943264552986354231130694470739317372920981640501717988474740019524960452287468918115793047653974680584395092627066072747133846994030589573523836631044896360939225580462862820084256379888440409051890097012026338364372287277410417187671115470993702395410806113934167797107416630324616361973043734624483392894748476225673433072368695205711506770268868736151050710740032256151390938039823763032767486465354838384356411235045701228273953780723396241957535993132611044020182184281029682409228177762274453628797097741574518905511157323622628475153795292104057060220575927363063317071515490752360905337260720986436921072833287179589887639788987851231348847089575099081323792266615541514734865088847472055199141368080657910743936068369278915003140950529717149290186828729425941707851757470992500993567516635437578815780426728390457010660375175129032796687334679427031770738323757030741291160973388551650021044974345654265681333911694821012856215650239308039712230389666438152781341014564475736699893738351130758770066262988418537359687082812405181666818025169910845101707390870360835740129977673807968652000290726324762415985604813055891729112692596106277055794559506634834371391495999080528168596784366245130048336638277907857426007084373940627174596894310366028395267219667223991252443802426238638386566852503230625169730324394381048464947373399728692238013977047883968696591666320466556922990079289419389339327227701688382094331444392642597392513145212909280906957246092041114349856349081632482777432899687997649436380846908795802459612204906286204477087324002774660181685547407669231488282618987013340912287213577722333238617922592013586420560476913425642013223116522690904839294542745100124791990282594878010499459870634683276797547382041268741228508787983095647291906142799860778985995014533442643950387698736196905516989928340144744178415713417932016940445101688278183344083529272514054439877093848838657947019561005242196681644144535409995327247934588609051559510780906101370672586832011896334273631417602802975473504340099381063470874936551737859808332397980412756527007350704278501326348323442307714886895451939282104807351139653494191053909501016559030527811507165429450808122456363713490723710550037455602444039758468131715527516831640810640172670027440597534832598926739957187841235500592423742244900452464260708647478863255553267905461719126601930189245652315158745201612557587932835308456211504425957611027002638590024134491585225038296905998582179941463815859987312740123469450788740866000087689584982109809137304815303189724799317040872603735748588288136161503439491956451645566590731779811382710759453118480625105414171748194242998308676885749588420127723468914765651733846994719316366774532511483200671039254732401017555307092267486447993295352871556846142378855068754387215667267886498554314314396429905580089229150877836075016081398167756499948171387114555277492760012533287894941180211058067109329484679416989806334101534672318371959003911691994942497965650152800760441609371448428043460687412887885229071979867814886061905672789821387827205857166332287674619645896094348886322461260831041043070389598075204538637231091678142449446169544269938867542003282620631974377123156760589090456806354924963014078600286899395153000390924353975392923599238856718219907462613980879971767240752828075832480472787964882526282988746222318453561111435224434582394235699286595160611072211364711022079903982662957443074063984279162629986883658626671650171620260386215910895709137830534685143743082167593149324432932343266182252238874657664046017948998800880851519906907996824598686660835213531284410138100504429751628672003759966307549425048409555753701693935862533094554052729633642244572535975870503717037155622235434441619145141443172617714310857691218021394207279407322223138660064076930612192931829514158465953737748700997823210226055551052444073790000446126329574379849598611345683127837914333328605529832460675803371498597982967190693754030819970780673574178556912014160241763642529459243305014864707823161263141339708860228875224821218147038186187863754119460939174500827176923666779930503586785015770144298696094682072900069790968564935119268447558439788703312692131123213459716347346595633772969117076452462525738144794203592922404230744456802873960981788322814717538966447457038400101856221748325075347165768049944786324482023155524062064500781477865767881126979086173239153721026859696432041345320859373475976987644180116399437970099305619652961623264376870065191858960609146472920492928120738192120556282656630765354272748291042436079402985492735297540849403033251506914557264294435529867068245220465419567341351809170944046232961034735136809054164412579154519114675399229562546393150198610862808466803315439862147769608730897979007556456926914583568493314333295735882047662928837265277184887565490142988295873613400253381293676191217953461771428524578645336027437355730221473653867186910489085619665145553300891927667642292463238702407547763650081338294036106914824819414468256499131640412691555653729785410297064370503848734665928188989019736724266229174550431416161346651407985943741658469543024162848098628131745546957664906879637041465244875928388407656910986441396251508158712476805771761562960244077905444446233416258698415037681947168381380433423978731295812574574776893911474864093319861665812096962184863852691498746577205118932737793890697371253979177846454886040474922968957820704949357524532354980946087300072676347055249873181250320746469796013757757371287469631577234942063361591581277526033251429845169541484634075277489328012684990708874936074944556946608599003807151415183400305885950325259103828654262169446434866626671227844343083629434548204462022398079704215929835243337118462380102798178094426007607549630598766950255570115184807464384249220566585685111648176113914419942152567926234950373989235832967800593249400945108873362925203278633376231960316865058730850598623591469276656129216421663036998316189439723662890411940311698952923419648268801856975512822471745833923819921630919331693782172458551657565508664632520028282088713978946881774804781195800121182050890948988863492276308407877354911903793247705615272545660528989027403652887232548712181634377785419973975179997456724915702038133136829741348854905586690593680909948210071769419915894734708678597673072468879297086907482066580454469985619891062957394425266036844073764102000082490359986122312614816617633846086249652651467650933649392258328233018994452376458360545583572147821191398355367510317017581160978488627914136476393542464021258175396638226272478212024407359334533060546158029085414597161964560912596345522423259350048541532393350792008919847004360308704978491368201669633396771828169936589326149284366078111135170571719980715140685956765835097387895511680414026896771443623386992877601249705787548770937470117718376620949568651306384682606197857424873903614219796927911562438238592090582249373045669560172773136793798559990388420427376610420268110660774380024688604031851892720360380218881538250000725493465564484206120195272602788481391798869631971295778006551150594138594148945204214047933988546759891869196841313311963578231738712406772507924037034711504535072917757434941927707986420701167271386955334527087041549635195841340328650356547785337029318284588329459461875945731208776987604513621611741078680414869959903047790912846579171681046899636922196514869005733382439950295429807051516651122498609017222731745640090486076745934040501937922363961792856880337899117923720989700417448339322011247381446411594991723854791704270192700858602239628100677757404703532672535390712625394188723145001108879242226827128731255901804786914654111525311407141806376811519557009421664964965735844593867101575089402138967113513367668952513402731344361315308358965048809072344565601101793425884261968277358042890707659278431026281019299838946529988235879525643999992843655419530245745435612357308808430818737530229795166581815733644336960374674029709520557237584999148432955971611486454815929408928393574020062177150572357917435587615568114693860507039160083635289194253914860588709676390171502458399091723000843390242411828913587843358188853690371647657893075268207150653660708044975717286394774335318757389173490895795156031760514222255727688263682606675340073028091864908439288932150499070676255021506797999476153807801214460181984318892165732788230383276651833343422917076254266654749617939646015294225393580176303769005450660261619918516207923323257451751992158474312850840892937661718887600589759786784849102109757923474253271751071410677468246891090165438995611668888080143182329270802880293267717197456261358697928761862299181793073026159485052129088072279487603973343836618238958333463899098345638340250523513056166350662009242632740353682187479121719882782049152854095655400677438231178325196918352464236010719768332276017494686231249528143386448606357620963328124737121256904229857345597884636809509237047265465629191705342742205297737943268161829445843498077690417779577259310168385673101988699257523415636876671497065792367715550159644403564451318882848858273819696294218176929221957224203781436466497676653066602516845179094634418126862652509692819606300770759252739478884527262728613253199161548319217446473879698422834061577030419312897288446144385595420227435336452174734410755080710117722071564258065238153399291983484861353181570609149252388575137564401741334896209533338052359164211177773276116776580205913188839900606370417365970374121497969885161900819761865807845610953523935780565093610205447396989297531599993607829432664409448284890926448248542596049015260404761312338308383913026761656476191345260763757399513992383299549401752613383389157341497908875449751992269785217384769044492545042679858899053053872112860500442797448627896925905175192351482598939427799289451958921597264480640620601764601720557228685081410205890240690439986001871167609557018897820870127944356556754205038730443603135310685299878355989616186785204197208009272831312510597538553863388898373660422726467934174908214547130563850148106928454208126494222485793507880332667480142692332527136522496162606841454252492270894023460472982264649592046365061259045732062033460720091015528311869989391810400224077538669778823230627138455404718551467272624162813073329419329415034840037912783211844712488084590601606021328463271051639492984149576820887200689246355840247032991712818586159467591171964996751756897716104922376058914120610510620046627668329134825291269126856324701578397374701092690846218936464883125887973223704403830856952280955783595456068467087426425778270878375114269966331293812868040707010050772683676515527125275407425347000985408203119594041727293826865656932478759381698472733292658497607298714389097687656808920615823664832882377406894742153374755217940632660773881401278595497482663668968335430580983332348375137251236037281233658510571143828311780761402752699195289007912317309091208642555170032786194017152451278332826934429932278462024664108928031302677069697818977109006302335001956144384393057823004154814984933078379191638824063244977519561570389938757626691314263530617814061739206388824002730487163235804603520775876733793289715738852281951864031903657166054626598617267604294930558220212721474761744541672064073139060742897436224875106265111165326739438189651530057456626260392893559702488629239772982836513781742217681623208953527242575750815974227972689250797528253284578344884740774415098978027759869684244687982240259597825908732437640773402185522495094107484320151427586733823747896846273333961674867657884217507103630927548882187257930670249000849380249086419042548516413934422679243048304209910077796305811984948518573998532045390079994987191472074855247539639054873575816406793436712539808856242131509347301488308788134266640768984306447213922600294478834284579409590337722272351079372273418802294000370996165105219177668264602078266597837651776007844961274275752090427109245448588626216893515756250852499982715709082580991926459052379662128753672548707103665227503191917690592837229864738227079790658859742515168484572601244375661072396119857668309097629073851365276598026104988876043488494354092726254371860862239109637308338128212940002738087278101960910446518231549174746424426271334745125788204682166635479940586858183433983820873386652047094414062559553640691460148125768095728028023721497221157205729891715407770527762380478405080299523074080430031433873861106588035008373989103156307237327060598237906583367027699020797365767095780503798670797237911013878319828137413590476466355977493190765885393968213138748604262741822068114525565754522232001632711803589180469404211715718878144539862603943924641657325149851680252420511838341381585053960177012550590403576698043073139615048829072926741901790009981899477967609603727287900834541053454931946285379521499023774688973447839536397864878154600229610685949759666547128919456717798276525866187026325531119426013451326934277834160462712749136569190168953154139070779960539758655322186952652442372037027900770360001338279748990234875795636701892180667279474353787315566069122514354121658197203689230745701407529875289686812673551299917418844736965303278173897832437107962167942253783283777025365345959680350501704641098448811085044839359214499305083427691093780618122134815760812513143126817259446193722130268341563833100617288565172657538541653650675743315907786471133335772223210484159293013696552012788021927370408059405061187772808208643126319546117890131086766425464196027497885025121041959595529927582099366087374056276727569624203140437120515892848750696234265685192003221116697303939724789378893086316738961123269595990329513770688286713946029449564378818911507262603998700534964600440157414509224037073128193604456165983863066992785168303771262795479773981582826560600888793276149605087526485406090007647831747849676257416134585510925590256019516618758070434228268024728431957154856368146435922968794678204908314285460767985583990679862829084392856930277420699626215038402409600870260266715709459385974290709187827654519320110928638530882715982650542503184397503679572201694095474390723803610375020738424227752122144966346640910755609545152595379684855362698232552337335385405435214823227778976463908039572580440343631967216228337039233605366586756264502152055310159036747500158588959401085731602098341368856526929695203234418820671426150752322249558637157115686916428250292172100473279786612334003748770632341903034785297300929275895867811341325708190970854112355092292406912634713134143117613083884512784292391524812847724120325708806583228655384589895086864128566971424585915934157909380360110185082081159627088941306958457729478009986664777815718622376853217382178765351522454970228585058290164055519479290633415685908550244958539594925316831045605180904171238716245360847425397412665762673307203851235465415446950100440343443596813028622754840782465978097496300941843578649466342308760040213888219931383998523569547930986602450609437003153457170788830939195191113984755022527789583104625832022737684817759091321754854840570895212797586683851186020166206265642344055334809247660542450843457608732268089052923362184834339326486307463104633465685578746693489792788044378731407683680744631608647749921954121777957236621553405045174163380037080309170588049622342064929554909331440225018746069998480614533887605854533346003380843894424288768504212631576163120104874060023411901239162146931155784605774536360083310278254662906326731348204624700120680010321326930086471788675221917073738582776802886202986562700125389097721646829680980199566109235213530380516569300073980958148819275298704173681310218145851365975365427910822608013615620128459075476034184144216825975170500072708998999538078199531886858514309350162828776233974068642793240424540977545209859214244818568695687721278553687211054452196091532002213620055980106703729711496992310889780658555192528582200359204580222548197554269915214200523690870295433097565509857615209016885907551956946711763393263421069336480579069696970367047901635465877030575517211273802542390770654881772877818255671078300729741912673051240952203105414762463817022300488158848290834551254409549901238751967261714904229464983098365703687994659714504510619923870018717700937561307753999892520461754327561154052932070800339613110488616320615614538048144285987032889417766513842468897335469740541700420324895834066443540376107457809897682073065608277491257907284772474297785954136232892892767260306902660135062432659828833108610822194417977332919541968052773014437476897553523779110886844594104498789730095004823987653500833091508406881661994429996854702769316272352542308875719065795730511421534268196609496649982731308816473814314015381189981523794953203455047751160116310682604649385562939017131587559036689685153023020061171199588936240551197095659671873547003567909742573990070369706037641557747563400688797471134820868524664432839983328921369644051063908712662096140935155155527683269538210043456900117910650491508154449611523938371084760917178113222795971999377462164675039859251332068523385587944701266727520254272744197144203782432111853062434782802819333820136911731673263643295866920864324987102162698749350069007826671489442590521004623943450803753857331926814448545521547039213175084380230143306350502278276633218668517715014005144679494206979709487362439996672469234430677155331148510684656455973209751772247538714451026779143832020991713695429394563249435863999313192694992001156341960898368431125030662408702726972051745843415855125923715966252346821704295193405537487740335551814543767347471594932866978800654743012001171052796051007514443469084750358912010316289389990514163211146842545897172166083855542714513074715803771046268221629801866055510745560481317797464750623087881032456149841042234889174236464413596585650994338196773874159294241719980438420044096365813007814846168139287398008365189247507905654866097451638484662908303270093673435703828687935143139318468176484650419880186789903685136954013031172797524049463605614172321881866269970216358887583168839941602474763506684923849925519124206592460693181192025444760581671765498074371119800085560924636801298916652711918174391616094155323276993946861280626681528810176532039771022104377383984950576467204559531822779486353625911816612597860800861854689945423101524616212113016138062075695835975529751494339314594991739593067280483193940234223917556871819025691294852542539431136475938041763307698640619518653371581174339929328870222899395640348500512036769641131983830798622966384304117852246647619801196688974698754465949318919990313422071157967980697418681936405549207963404651249552176520094161792432069967076425389797045462545674827465229320290341538086061155123303723705963558272538058372811971137164229677768362153661469113967227017122420478104682003754689914771981765244033688640720921249389972343169762526551562461589277603993559863200113690879064733104437658556387967982391837819184966267847299789181489445426282952936839792028172872186267436274916341024607237823046725863349161341386128017871820028258896034132912780997322583774752917965409158412474387078700680620837892148247090515484755780026106762512727377633057357852766351757849512605716178825292832115797937972847928969208017430669667350676766897813132362134165026351096487724829276113125675357842392244681427017569432333878116588727594549756155055979408336955260876815714861054163856470182505527580250678655985104387627391943762005800958155551718307030907361549709964320117171838761629663983461535569392034881545964517906088942440828962931623238944048828930180551675520983656254027725411857502219181224566219164835666398373108942612613400751428359031946691656135862838951583530100231917480529213188676303812723528218044954137119465425733810702988811638345803848374935807962454325622975696282102568746532202811294986468180300167403173870334981025922504002642311357405892143262698215667050193801663958291441507942071011786301561965369018675172396674928367733942431796908911069182426290394014739402531952867199388923220553901761594990881329561449135427882798275037814831648023198799685410112922365440180998662887574997315883530031391887082227178388029639816703720010768920123382338128231101452424801286241156652703214266092963652854254093237229060374118660143615995905627392650743535780244187859364418126027468060637348631832065046238090540437263128978070724820877940786540819477363218950609388411667566664053055074317141665365229316737816119610323716624790657678540454914587035734797918473649917432900644891691593520780726715658640708993057430020971942508942453515549754200556020059156317533565504388404088901641872548971832896515417781757593491359311159318720457712473189919899361846634748393154459610736168354059673310067363715172304307940833830385401456989265811770249747770749007890943575469691562541274828755748576684319026730810083115674073482530809934818982466114350620024210941288363025194307596770274047241656495159389990592219930909805158218901306842225466069047658624647993956987611402043013454089844777950467607900860081595371366849535499477422422654150528394711010998991892134219426404805650066305324083038771826154276193398805257318684931481102957995081855086930282645171603874167454960794455051015684572376591495888302647523753670845354278606250551228001709762942394190418429036838005002868676525447010023662328436907901550446173328426776781327953707271196996352955997087490551568068847901847264536040478089277611048638865647999251168140341847117045579656669730434291947361376891327173600760741334370748749640571788564465703090829261267190890006271531907199360329039751953508835515677397351339859759134895928187805116949037731712664011727249249134855146200615830656529486364903897315105598644148744751027626851484063611311346802670866418677791483739827283933674401003182266378804282366058498535215638497805159233030086323749051568891141226205782994766145028565393723026655909581565374208534876564502271255975918947988568545722811962006465151263160445610247397501688996479305645133534691974093978543729833785898603685442006071200139174108754883494450364236469467796237711361066424872457711618367512015778442491118572595065022446106239798548080162830830401153744262724090384180278731258704669468607462336616861305708592426437634939867801700709513632864979486005800027166932783373506976149857933116162757390138933715247500234648900357781262264926915767526019463640571755293055420959891789224880997501086761033966488749348072324765917880362429742685994827464177150039742239360794292000269357102828235009050042196511926244892236789883446259353092717703561532737436118648747730150359771873775030036307641041711310738014515947534874277860427516316062215789009698200671528253735706647210987656924311493923336758560369476385604936432489088471757783904057392312715999030834577068425608796726663619958718651063436655231863090221083611844840003581132756675516249369397976438734587747492382863997365497761161347489092231151390181044516576213948340910797452549135800758808223068707671704848967392148937232121235636747485208072263999144481410284423717392693762641243923704016470029362558241945686445626066253091534732992525622740899198950824430595227551985808596291607328015720329524304807920356966067447138055598134857387226025381480596553161253017082218346763679216663845491635401721141834385207543013349528010012037100495089518850479351026363193289928718477699655305457279958954461064446377481616136414034102519403180540927207082141615902308250254158745040479195929554711159247342703126341293947846228242236354152994949241969595645701932487665896093471288087660406148315914965897784181035412604112328306485418181170807316348624612538458256289123959249055954716886528590687926479170294842590149912671880650339910356152315780223850329558063700546251279589909562026502300452241046793743464096950280515028115478738568564671796547913083951036192716964848499447389886055792094396179958251615742122384968802677457099326324546006774953107196394454395811358036655013162263699207134367122746174387596628558932842650199470988687129207942590689925967801966849192266721705268800765387278485195176227235698731271825529923248795339507372054508295252360217770252371932531786356869557935925912607919420363040521990519374796087380964850817383441052105756523782740918944893915604068433598248657201958477812607500749329892900271645416848736464432206876114546207979555527583671309457260993618830144432294043544916605090842269578188527931561527992369810588770322805257032110992205524407378458695417840036639706583843852542175525801287807087546796330457527823442075296860813465278536126555281045042296675891581848299603722352568257764267418510837072766683282592293746276134611443138436668211840935531208300306561728877366642211483389680877801201898211203332367962429629022646283873518415660593121337805103041700756943982282405675218588274944502991241970893613663881728047874577717486324179753466206366538272866296466310915613119540452649945181382766902709070713416216473820952963878814939690579808554285846414318154040476859260001252858882612751505320729623721146070051356066605249111452457631132019113100892526694650873804564891720913655232786990242784543914636570781436660431616772276969326319752321509095240091054319113750317395472900923084349180789351181296561254263431524101028518389018142817115219110084076622918784759170119778760895553517664529893300785690881489136798786305922772305924797541726801311979442895685606376004200675268392695791897827022740215177227400621322989987106777530065482574032397605607179064806673021947523864494966827609394096909142381410253621680367106741090036387046886125602079004608282526233536506797354225362686124226009226729091887039494431937910424097873357890222580592088031215808726209266218755208845170136535535639268636804220054466283140216519536453469611876086811702147759327663830417901344488072587674651671984044611313990895674898707517505671770376295197443171907993655141439530032481529486088989565955244813993189415160337273226528042862352963961033545598584990493609556841800300868795929712985275166573581685791959550737420669131605117699302371654897084865535391876439601816123434865983980706903875684288795952050434101302037059840350132844418341963063197872970178485483365228641532336033133780082369986755037956817513587772785201624944053641344214397762988769099460885172355887097445373906728852217793121133263200478619381010978125327645090761558111829577302881420256646369424438179262364916442640745448858386959658042635666846251730332568855219582248933292394181424329293507420300210458736020941872643571585047547616225236663966746757575060588678950557017605194921474945099589891813120287188306541776788189745003613073756246449275511156113330582982251173795513286127537763608281486420500057883952528701304996155304120023326132235091726316410694731270274953496797908038174108850515226928095924108219087012731263794470803415622925202120632816389121116684297626869182685433333415134404295512595345594992827991698356161073757365443856486815350919564566676328066707810070807089272922620625001700589838778410503485190688359396696285618329495691743745017385916607473295506491687140062610322146934548657344346935413629636456897930337545319768495872277456249110121933834837516224922670446967404331231682110232991740821567541513788985531881571819865726413966913711949974637716462623618861450091328694449062383005434838487841044793218565254364189754175893880126593306527266909318601031378792694037549370217767985470743433671840230325959011507002723566289112903168795370520345257860647678096893843550052936790089409113646804825838577715242710928137077924688996215971276214492813871184616058804203681189610376677202955836012186696936373383213690449310284877472178780239207242110873643137269766545174403744019784202021222787900888299640730297106152469457611346423258057065377112004814809794676535243572940744540858582850112485847549303120283952584535437749349627932434606590368990901247013636106450592463288577242891918659870141044628274422282779943489367535278167809762807688827062638653317009648321988667888173191742638667784394801017953218328615110637192636320339871541720338350652496230346664236261935882428655886505952810010769014696201908641951660670746497746219565187685826551752338815708745824632481131551835078831277661037150568230008763937418048138060592230801647002713895340344087718937801211581445533287207526658992854054254098680828656050437529047358210969569680152690389876354560345818974336977114233093523023668819833448829928716578631850777963300021286575087746259632907182764284375889078930421385640504154857529273718138932605665631886531503962684706864028094779450002700110692547128412870108763781231751173708684795231782891426787778117354147871944911348358299176787525110154422248880874706485806176162775437635561267649645985224509228039763859409655886742375054528633235401426789886977405788589778149809237142204765919185324472506780949436109951622460471477046497978750743490354447461407163177835143758351847895786395062041782114866954784018643712918809095792761936896473004044049154395065322603242861633380979058857091391341755678199278745995091252842070977080757744841059617462281685484064987544767139232030838533582417190086768847146632148202330595712821365715034163761610956060077934826338298302031959796410155319472260574298582118347647323909089008556897884753419712663260981071773167435547305644849485500055504224620507793589829829540945734144372405593926895729762876937786918804113935388190277038667239820504234035081252219369538138878725887538246464451787390675427999319680336232767630541016031159067537268872432882557445672163168390163975295080503637059062194459808370178102220747012814314540138743782128116566639364691083959935891437110167956799840250737082852778868177751487402184081127606107051952912956598318111913343825372663152793117424665878204727730566504291188194388935361540490587344836435606001076366871829509293187526580573141779972248985847834796377447719833287959882018077862478518859042743825379049507855194947427008368169967465751513642139270021911886298792053985856866364893711870335497138333127006834655545893914324733193807721510424896575358141561336500128820410710247596949074176255749694041749779190535784590761278425128301229243716450752937834523859193255775107479845248249396468145686103843809472511610515514191164024977029677739798926621305999404163352867684265019548583886933242995655225822301321673895889840022609529563602369612347422427987309934899917437275049291437727603838959753308489728113915695817366201727305482468940879721762622713053185321923450931289477053846507607046352765178634834461120575032189515452090927169127045502747590033548427149003085978880103471599750648010171904882583573270571103984580121265922261168453114723294553009555481919179072658586402068891560071383824295111144871321593508051342133673210340235891359241107060346679200271633907830307847041650387202887599300212983320127744573689783254397545494981330013592125466677673299719405518642774295901487115893864379471704118314646587569358465982513566656372286723443840109849733740455875952507113123127491374867942074206253832968647388641170027936267203512233621235213552797556169197146029237123773739214727904190082941446520402857446356999853190738038578420914369868235332966281165084911698331539205143496063946711384063832470554686607716850415148215864682533546234818064374517174122786918403406930148613477438034683969337180115054715582210918999115390747395255377336291203509196461329867069932079304569522295898282753267045923799157706101510420329669709804383571980456247383705174514464238876454497441663532350419465585770473237600672297069826670362641908848815851035266637398369226382854556161507822048187581746523146904841860727879757489937982806930189016642390169922159302165944352475408087448355178698539826209021393798719129479514835358482631927780380206126236132320461234274259860903264442424665160023623757683721405509950963329426036764220427824971604023089440351958915818660996944488762615106672073902399221728016988608458565871592304199806767799276666659838760974397585310510730712875738154954034692722673154823061251152186071474863943662311939033447780438794039633193820338122595397742460297544709345157357878581626933431818029074615909876111975041711999678926104772769506704519048777108600591421347957659519756502091907598265858726299185318440770529479311841476301332912930387927537896435396173497487920077742934129972738004953407431672144088352966867276925059698167701693758668126555091354153067697313305939690098336098877770316216139559145797848910140165372781966947512893382704453000047525431844321215797083651937449738045620321521575795083334015679060536844254169191576866171586651331599451146155843585090810899466814723525901159781035767417116479657633639414430409498448848611146854989014245834752296905896292945618870314023891178146027502250349968228345072059374631706499240417820845717871583629183407679086320604247197419034273084369010074773975601326966122588599131444878992631827069186291942371856088270429709766747933109364409148544553542515926257478853939570901907881928272560545554089244238535138919518829041736524907862976164495478572364258639096624802304141320280886136341828608586612717891118808308476803870873617107390177113971309911804847913147089083488642317801916513527419937649641109367363190956957896061686103065796746403545822612386917798585938038833962477969976253956990609713520376947565271400504789074152387468975342013703736620301263377376971215709152278451936367273347997449280117235908899544293718762537197117355856370600473983271753608986724468662433491024112922543057763933347297624278245473034075358715844632784330880158412114649951805044160813793011812241985710309117587347659865038864459839116222597503614111975026880338106634169238150387898782666222599460916588993178737781733527476126006802082530255225330646259336192042578229260995807624711674972162100380287315878068737330322575853229935290019233787656757355514941648044689934537284970383754772760162172005690216668168941981713219212545524473309311169934916128238272806054246935123203523544841580453296194448480554985088949123761161811680371731385795730834529367025054424947263456281007634790098827683870669304838370385043294692697536859234147685412554135085013204194367154167382773805513292440325095164854034760711003268455635570505250322799069185119324370368565559380627546752135192356743133584456019926915108910927050776905989820629629477273293494501342796093919329017743325446104358870936460721756688011525599531965415336642849260578158722123456523979082051701578443470570075685231699044986514105208546775717421087204835662214350503899986818831146687483524063714808402924054947162209821291800464052182357284394775954680392752040541454798760259375766452003394529110582982383853766716999139164185731152959324540828499817687969520547033090964161625573084890321741462086016747053049763411839119171557141250172819226335987410337421136888406697846711920295359202894046434997270353532189201515005210042092133991882425261621703408756437359783285002139487420013556874242805624903170641069395213449707214663484156899310585221565608420197478631590277717421812058711548163371575529224412050505286446696904110860755744670703100755396611724601509965723008181159831225383858461101445747751769417945655914252162495430312648510418169210769706831265604676103639428912601461419609077485662396706241153541423879487629411062011514432766857608589768102074542135038192977023249735746470374838356578966134502832260672371273988794165395576494022955872777080497543220482844281058417540764235779748242256776721603328833529853270550245016536866567148392139129502464796321561659679309560479939389738538429064312662821061571618497821199701542443041282015325348521022332821970309037650201824576018165000574734166143751680177964324715445654019712263456468233798130234071538968019680243725276451263322544945196871645575861898688876544823982909524407370076299855899973999095894625677622797931565040299961555214615447311595751604776196820594986760504610860370598639062517565513371623107395591097804981428626602809658953678076792157667397454592648766193187405994937991463907969663487867512336048733729179015658776425622403717534552665828397105257304241022243278502016288938933276790277945179136913551652448457919301626315867128917420230915790759224837303853803034847487164322144093899198283925660057510459583686790423014896935050852095819237996750575253007266668725539376686297959849630098606650945184633765404351493295032068768296681660572780351094541162103010666067949186338303975522777828564357660812570269616232502737505812696643191978732995563181236455940175430059038354910663091064655029324531515804477877931483813945738611023815154878647128779082528479473990732570940270504991645606010911012412711270163621229048058282000530489809832357756435201261208482213079343439303041352589594382998694098342390341928818301909150134840988942007116072137845510896874864416665768732187802140837479157060505977767363716365762579169273742667775087430259248054691608771359019372439424159300675622748828331410737331760255508426759351609364426685229070527803582817498225045107637607163956071252120752455459467921824200705253053122219000031628732113687724685557300806013786577939292579240684512007645022845065465421784480965486338811054258697941032481426079060713169470976642239239504053684836795757849488022714300364604486616924413963169606260581298925879568023190359456768345603378441970022123348546481705248046646303387130011595748641272091745963660659554232979709707308014504368524475851936784218597542513196475347442768572531212993952810306588098332489453196605563373467661714371623351020528571379098804040772758105375075106306316881010741362947700841745831160190484176449193774449849468482227054657736588654641287885762455023489923437688013581094674589730480423484859976082096055258960153563328670132855104691156961730872349741818651982794127350212987669709284470625138180347392633429761228939374694453408859479002709336289744984054139631701441237114156030326219240475987309005367397443659518141058964764800995352122841986612539222936422720457671536575860024309907369715287451569329244680455052086788181865757710701992883725491933197120023790206461642609257112093136076021024303746629155949522008477446687097344655053272924069327695605273005115129181349847989856670843672081749570983283118321642921022108267536404914495710171369415356639916853595699711395720943153582894089864680314501662606072380977141645007598497788045878645376483341622743291430417357122940339341904414955396234407286907462889255334192893319715917026594485732953726753813579844808705456630255513167336301696506880910061772934825806485582996837399178926816035276747430226638166212318773975868972017184895530645744662445194898834532346078948139539499550578500654952146535353768726755752216407060025748305456206468790247061880767453871646048861523640498138568041210678515674061825734764280088037036120835542070938684448538780734922716465612647525531373540286712469141871670782068466825582760286797568989965944249777910656115296806960897390069824600800348259196867891671023447465244235420562638662034485165936288240637811428632573566021537697586858210221485054275685327476513740821392323836055223174008281473093125506006146278095160913315929835229364489257712411678334167113988457251569690791673195282056099145500926566523231316354263769733566155155918194614581650714250056479627673079235880676658942790932638898186456264617604474074636136637325230448863615553864728351127777884514327124891640741911658979133678474550211454539112564691632000087241024617478901366991533326791752036086290905820618278034326995809955203138530372199036834630089547209118877189312630439107311271167229296236935025440775555198671594377994711946098642375733219796230888410473547342085807814143275641877543688449257041679205707184775692728393951182887197886938588126727559230629893705427782354807329195016080347621044054143015355972581199727213580120485315909580133036506141021783805985902224180563614493612095112401267442560593798075614173684664123750490201192367046564978839132393326312012771410389226145564479779166858679005532909032412695366795499658862652462006938179055348657339908443236535227455464146870200289908624308941884191309175015716906349399340515837362922416904314147260260993503842748411588027781140705112343660416575397939037258461097025269319470315325677366307666136526454293253793804464119953989521451735680200753124540719966841004871801643768325183912418173702175649368611768175091475090731859895988564018067230355900456720934729250695116531132539821605129319657579269332529559472174794271059905928454664826702514077301033619194495458012384613915541204315611081762664256258791873657821830439567458893436128352223861273759759089264522925282758402411455577474241511656164201354177754753160900208355363287896365107538407043738210885371992121424323115229757329236489109518114404944921701858675815395169531433153603749290617261363839777859774168811513075311466538590240289609379711860486207756276119816289429111653740206233536713521595266528266442300469972280981330434240518018659191420493999775401077660977276241706231727760294986596539054092587858347664474130309074433136568163708801842693505917408040020476543524932108399878341361694185648020234122265578078499029564696439470739167875716269369656081394917022689195440851868016924744162132355067494727854671172164173614951768311287249374349996234365768578834126877176470658561875418947057234391991933356094109449075617899415849156508743451407862521723683455002572074027007690239006237334826239118360915473807162294565274119391731848644577558778940328529489653379754974939074500060932983651888170249710343978503681397240387409286071035035733956432546141131055218411790221046074346072434071280438650938232456180504830125121360358951066513480856863461828792752306199928446058693855041766463682140394579209049137630061097211849226833188321621764583389617639187388405221180895281097318535213218361168306984475558620509117630608066976679183415174320517504956755011096352433043875170345085891135044647912656341253436415671866551516759011436980842928295514669350315959403702472551279382138857880164210826992227724437716637215529632116797742616992057129124764751593028235552015933137062378054925407817501400650863194954797387832274928885295365244335694315021906769857108640658895205021424325128092234661763924476298491325716653336976229266177870380612211250944513112665902925914428530255330116372392291153099157948428107905926668766160701479393686639399010877285698209056422044975996322643522715015636703819956536439304131831274623055292748752464443364417602837293489665983256501911977799466559836586520753605146688002490616974847052505681236182552343225619543219907551308000737551873576033084704371470442646166328616746582518587055610691030556600677141937907304863283928140183213851005448845487938492910205939021786170329034068263604136694649582494127216949089983076733240334756281241519707173301905874898350766938768197577302140210237356258055400435264780975162424218413536340147897867303868856511117260667162195247073663596594806770221579887587189853750205706094439252859950663307599926893855851105207940682340649727537443449076234018999747600592097745013685823085799156595029314479281560932911642511595905036662910651099120861765991635828952822953215050882812369962331635522898177257897465232113787110368311573741699137812802013307487839477379009861169712707888446362094657310592849081462126384211182609404346254481150519337836466127273615230605210455185188127687555102919012209011867018804652172272330198409608821945691937948601730087877777022538642287571275006692208784129277006518537241202017927894288192100371486823986294235213543323602663147564991879629620596917373694623447604693789109038229972622423043750378394969785262435079641854921962032194044640380727089676326264547005570142349339983800889935328711990995589398761444605399184459311543432630183338841089656726434312017656996959950915903214498052091492889889455027493985545859691808932656650957730573802044441532089240014915251269209244288299528866253405404153186573107314042767239144556132093565039403602576270064362593822132568852769558794778389259912064877561549713067023334294124867994472552264346492432470677763460839052104003296135323437411598720682717850787638018375575575782948894172964508215922478940504699743880371195939950590883235006045265047984512986291271360539884797290033057941600039403444820033945354671054198957242023979171803165922272423077414211878996213577453714540509909803623796046832737803675607492392471267259906350472899853966155063066506060828176891590836909230276007025848635924635200674142703389883880785519657057948768295503872243082240300608242778145869816878430002210565816438224057961836020664262843988947755943433819140629456351901947039983765037778108552566469580178332140917802696169974389582714636131346240557745990337226146197888418518935315575801720138346523361420515913260379614433971836709812370276530584605757865122027804054020212407916374524781640050194759485661863653144287525572786069280008283824090827545496760538310723206845805006931993926039658237451323624130927688189368989141190324779043479882801314739779233953946787623844218485358747160093982661264774716596869045989565036385306724927049740945393247882907252411711124584047145667837336613348134822920020187537878486892422490369782368779702583758129210432957017375374870692468003337771060401230201262005894392831752514180006969715277370197468629164228604082517999585363884468125263559403211864689714890168274639362065537371959569290503295923670909771685089781560472914339291725153504115109801232904767835348866697510836160968978349518634532117144759374784470136215963048075766096515711481052639170657352964891017597669741607811268601215441552447814042367026721750563787717604538667082590910011840103459889055931723417265942670275905833617550139704318658527017589215406598536606153852615656318530397414132274353509466896125138374737662580182702994261441418959817526377726346958211024045924866600863030981964674829573238853332134893265151442279675022539756879083702913712487934266484293451804182389977136629535088510530524611197495311940702639255386510886184963949524753181970664494233246315909661857866832726971664122586267763316147141376004079279749182373791969732083288735449256607701710711873272890617124434194827752564375225504215664836153476183121133050949511592100417936899033503855838438657590873115120384990276026670598326389143873721071509829183349978029375971443699840285306594930073386658079851153787212340073403792870240091787899966485479450329189756194379944399334264664588521264414205200492406277042892527131375842239334972268979654274484379401638098286736959988088838734125577139707877329300431582736382301723827948939013590090914149605170644582372971858889060896722754078999265765708520928238351863565028253421944084929092598721078375826978907017566295802538158633810225710250882287436453753665187759426551768473818335962192334290189474149014119067359650503605682850038124520459923446216481298651713438286331696444293282656819737948475691022682766429714355873331081076865653534355722139723901253706426785489058011621047459659549063472801229469597618993652430755374701677309632156003710725029499875435283942435590537589618867105325130173086619401704945273955019499437373669437685943778153717917695472794845656455800082283501404873210750482705786624655711576425292401131240240480541016349266746848462941971913770682240122210608901244654942936579968875601780272397838870832820679429397526838080014634125783476178923989604131406654222899339612365269923414874390630582656309249812872570534273404036155474051624321498672504989081033767618647011572878512665007309247191991720333672753013943570799086871957791554161387355200679044490442941942065329252959350261684976561784343856894917517462648332838408475116791684575680729908205280238597669883074202109372634595150073544105608372729724608610268438211611788598078781223308445304639306676654818710055121872115437482596482470541864829333084935282660673116253390205230213768108761597542883805779261257316098679140299127329753873470365795567878121469945871528666046285130046003980724620791211650486897986465507797447231498748965382683534168162752682834103554675580295897073150537628169925528051505324295869535843387463165351641855829848730774557458916186035877936327479295174915528629506384509465451366448692759154266827513338098071101379495782171801797091960143001056852233990167826767628619553273342834526025038183006905489578578664894094972667157009835446948883204858550159000229943379915301274700033719714325805985492968252539395334542076453513376383452523958957799556526620401163807166374879568890696085892108747754154663099394811480613906271253690609542989051066093608947864407873261107961815459453527156544513794747557179904974099692020747591612264569860984655248866524274523431272565435885743244411325203720369291866216898728062372731105056728304393631310128661381490399279491714121711795627466989338146037362514882529888665962591711847806184295423225954721778637064144956555988336225592553151758192572441052395258304249485430298315082690779898844670199728128125450691116747605316515508552748714092011638607645965076668836001200237446519920357254113008868250058124345681576071064768036509610475848194831034346598379029703346229603874593888441463108905860552803198563018797419009920329734723694549015720758336080803620631822116424584432465686638782422083142894098262399147609977853046335050358063150902541568530938396900940256977010705065817481997044573806282600198797831872067236086296677271467557662190985608089991725455087352184068274364658156202660452475158942065971411002502290858714815050358229446914755885253825417079968055327811745394873245985239420289020596961114630695054277262694080082176094074847226795974702120368969850309602961650517493689896907424765443085188216254845537268976212092246031606593586710795338271000524966168938946224082845051755516144917624369958057901052154787028372200580162208610706774497424488226849586297092760190185045600548977644434856183916141035794528597877191738667554821357116712759389346222306323113220483208489493099742960652534239401722762346149550039091983367333485990448927211373091293404142113984161280307856686143529110720065528980654291251403628407988347535477418059064045130192730614502261694012014658084587806458916237083033233568756594747877218388579475838263994546350148582271382806857950780541492300196893367523223304334655753184812285727769881912201167678229511336755239841972735117676046537255298500153146781336224523679807250445201971595621256758892408350372242399826938314104931845547960215112575727964688575466923387024223309465021849336791466020659204179636629470876711934843593123816230355397648783717007145513803978602774022651754738399302472442287208638811311172856537959253069796031645630413205108080639896404260588729578476169819526770488835264110986066317160903516339911508716250905025925228522042824623183655328068412110364769619986099787620399412086781582508481498987023119873239931397580607081297794277972851646097473121075163224306491580447923592222354235379866048691312809467266175959875154643524101511062717142761031345176939939939158556247689234419476528001124556735170421749308669653668364160145628593706946892466689829275060907096573378291349608480776273857885664135048446332887683989086507585712354957390573169071607623672987103196851372595169844359146038576476935353110287477232769464333727290155491272061626454721117954905253825687743861390196729787725916321085636064310454235578466873312859217851180366544333176303900059408585531081403107545156552632029568332360915998267340586291878358997155408371119197407802310767034932016476956922716753059152761663001800152742178793183155492711536624079273072593295897985108214051287073039514716476216875078252273667103783019594759148632744883814711706953886883782095347693469614451146831064567088452715608593605439905685108402489283948309958029540175651707487950946479145289325677827884414472339207387715643064877777479553012330357489367928280506258515956979190253292234027914775855274362835227276055823945763634114224739485757999281843621602611935830001189183459466747306363819996132077516348323271753818657705712525260841380099204501211312027352654863763014730082828225425739371383416034250511915330979484049557606741121063350232683663468335389382386282020505140735024365161074202299853422358081748136692009608610167866901015252832956242169589371331173188925625096996028331324828415574403121876173748256087620629094315008158932489510776306723024335729231710987961063352175777137540896621024487166049618440417307278102798313444334454289145627059038520303955498584596688634049912563129896460994290083459643873152042998470203733467907544458146715605538649506347044556203916142400961713432249601404043348737440394197435110319501786358128404848483077478247934461339395272918562080464896756336474796279993564117210427404920822511953849454931768451395991930726312090710029831601556592999182486288021181523416118162253106785091885405608948311446435869390133079789163157309805296048900065959346103614285599535781761194410897507627979286128265066978742880991172616861567295719397125841893789591278872448306994254451347258144197847945152391521534073401789361494310509990023915475364107654663491214220505258274446841271804513657091214305563723901073664171112423007684073309258804160820948859704623317394401370289780166987587375469358709894434413028778287646236828340375147321552126898142647231455979725504527813475435572818599051606981234607894729587398455557355161538661807057327401293054530069251026886518757743176151370411540220744559988369749315436070619393071483223522522080394064242433656475883652081638886377411205435161328422424876310948221936690265601600010613951372669990353126477726107641329391062839923885865345879443238725967077064709527809860245202878763379427268522150532112225231468411760708782499499068176566361220983040918566936062989257182964361506267912685133538795094049811678504027177384095017997658989672781391350008816596181071997777531896537050905375282586677176314277958488694873269316440473190276206658825718897081954741988690655462899502236084321520706375736670842145680528796854291004074387812667358131228619936519935712474542629682989651212621975949916199580837611812649183726471973468689036073451326713918469681335124248763434203130325921149782752420689150306133847000498952424852788922222379838747283745165680677598546736547253706726635021903575616436054007005590348271013231505813793354875086541102347511011061073473962021853148291511851926309740612180999541113608847505849883936062947333341561361154015045414863949362751316042838557940629199297774686310126892865804395319283281957850515379083739450458653029460237288073411678232733430852402689685522569018206213401776326539298938474635604142409451316663085189593226982477049184903132004121811467822627786540073198327353608893387666484345739248450888316437297187192862664616450413080344226589353657747895010895873291083181815884633163430822092592841928662829111491947440097227607382997573844818140362219659765647550122402805819457920356712464869459974210917193329947200457971939910648104617583509167426480448514492303702428089074893006126781236284926578007609049202472326494370085229778510100094727051841619967655993902199378211374260666799478415052296134466673673525999719542065942818855567916421558932529890486540386554062380770099870844189935465456234324683711578890938559118100147110055959634888240596026980289629089068849622762114182812399886525866726724500594652533127937295298878406678034514705401857459953917034739623187440973424116139595670543894752368661472340699517013904680275138066099607332807633957717456809899744544560177595302988935809622654768371233778750883232650355363786487717660415429279711161253550721776155846331159681734759457268698430025694759092848531561984467207438584447811061603857843962823555741200765697385380653007462181212418089413089779686474452822529810476654377621321818999032871038260958163970463177294730105550199183712257053955655830135316095283676140666054608686874926429034234172325798919191543410448958943059332639714308881215091979598984030778156869795527069037003432231252169117811134294410781080823409869980073804718312752285024573589735848741859363330059932199726779243325869103365450977322270434504475967611012270898284908336388123840760628392580208312507332509644685423425411138018237839729719875894663094030838767369969081525361781647391473675939113247554533699211014796321635389908698778955626568157864527501853238120875565708688000785077304101741724870968535703942710521388329355585746522837819695487754253619180377935751763894293869634240975194398947451551475937603912263508476442274393177969661559931379167242102612368923495238811631566538464748739560253516666676286584782562805795170689398965767786464224007712368663556079192416204301606667014844565214452562008663952790061574694538385478879356408272901008349677172184417106882098117739752194733160163563377592650232854936755564547270208149684602406711019061110199763252201773206561132657788149047155212789281683090954259563159028429161479072572374038280292454757420799660983325202377105111232694826785362266435345006768178449461373533222859090858011173036075997512054792479632356838741369620403539717846306392022409060790268391055269770007555455052749017229977155653872698897362957677738221254504582871447120963887330496677764228873615679112080818475637151394025262643667536498664680497009872618657245576889187010461071175626847959928537425319689082825712436206634603711925490373055424320142321121960862158833954706541915869824873258072222192463704284908068148751528343405365235370279386242061197591316998209880421225731115483433795381429946477461690951073170244378712367778844824164113567112137947095756938461823813863772166649404617917532575972197041723618204507298102047711170568867946381087451675387170922441479739725393106335947606364301589500072512821146033287537588199069800244695153998119959748153532070546889821159614169703429085611774720227805948766299266027299386731413191510885007771761359332444911861801059308358005012573456597254546906730359140883414391283601285889576515945276704883663983511911911541287412975605748052738529352308233361937695257936026356606041923991486753715208795703894529067036663008092243227231340215488491183841592186609248160989768436493711879789014678581948888400675346639612570269670450365725945001806248379771728404554976155367714329459972718700737287764010738273896486332895907675605100891513444829199279697557607060789935283823064169927107364775771969259148543425615007598344247383485999366306889661464457924190365092425220885835423434366765622959787823602461209263545327261917836643268587736919338576119711824257188714145789211474540725374634124290695885403173218886357347540189183196772329562749097163630788152510182966404846993331702382531659490706882469230731553940571585357425988313442906656736473318132198204312234549268165796378830324892657779465864291514387385942709756699595480646058804839501495895453518943452624409892270271995546197678931438409979246184419214510526389162611814182469838639978023205690155116485563232932508919466466722145872412361578504634648008174648872608300619096682997310689963725460690332543120880531013223959673173478124108181291069526073894663820918685491688964915692883592890682725985717562097291427644693512392900817298665861835656202998632410411973927906738979168717449450905164844221363679269603264719491635321273028756852695658623158914246316585981593290540469778352068058393322905802305380655386733220968370257210159094690888176546013894847161601858351307668386879080198911832762873303916511166384308566261662174827535518758717513416075562436604127738833647937558919516171752634656487089257380599720074209344415217675101296810479080729480777946564149153787231602847272402525346038121866531653095771199326081020913094881429519298219665853342667702181373375638174009860345226218285856509995529396533475029693912680799127663790219831879070344229187303770155508488465236663394632888224504293615922527915511221076264362910162376164532540594370105541819371484412128110139229821529130280028437457259281599414936174476749782292590773975455907786700190629842918886804536439254907704498094666801347099923658359901687491551996536743439344578541607701711133123683029853637065022030710105168491785633689219109946951064881031701333635798909844952929168627372339791787833412337551894878226547973179027900838088525201293318298951876506512916701972437008876046386723689853894483297724377211622685055398236355092236752052723101556661831725151972162082121460325529030218330413444104149147595683693504159594078614335600127179091619836684408861329020495446062282513420229524822372351944994998939813091275026937659342241395734379893735566380803995306209271420743940568046701511192295350742387929040848055517575040798014867846586182868219585756717184079635135903660662924973885251220895845375260681518581737358283128130049975953993064324031203092283001087430761054554210093283408107614720015415632010586758067887319037112272347378939472451145583063133615623232888279440632231743553628201892133658774903260932144795564139233066676843776054302733229840982105514916856015932536673908693728434191328460536277743399079551551979243325442872118285938660685015286518675970916707486185766415378732703214888230027659169566511058428274386920016246504643384220335738796167333788398561659983193590213212151179980591373136760740534054196249625592601798436676941435898368951473076844011009720046035927888936252482689391477587356052444020984501713649215340448776219869691022759917540484248591809991439904608852197920197198058745737795327798801690002505663548915950908617297423301472307888691328824370620713909389352207484920121833115305565129620511527953314303856420488861866688485340821106796938105653584324017530963007569640531411215322335620568559224293857461234661366514765184246843539473269377682580062290877468397531101286101933117948550912798842253598887641076866077665993595730382804953298689811977304746969286449357489282511212698918062416578632529829572292969709452484615129205493412255732682622334506834101354399618538555715484632291544606210901492034114734630142458768349691376574755588719689634576369008223887061021519075560901837089023765072514625293147488606807096470519906077516250512891107980516968148704374168039020193547869782231969402066773168753607865701837630157601769122712406684826111016680453971356635084982829862370669889407621019797366819388767581397858482698803732020806919723436535139280504988282771038449609259960135193764572040996385160933069308106643249623674424014156408043663103171763090941994571520842129016816090252901755383868946725851731565280989225757611441117055436139677130424186822058976584761721974230151108236839951358692808015868955895711608211424149053209795057303045643229422553691451117255153700683810988255124702242644776784447153096734274125697805297311616809647326793339739717134136885258735758218782335403203867742373691204767159433764623237713096462317421426811592506146124015725513134497097234100267037486845276978816362430446892420395266736391817886752349682734316468580352207777881691352109764510430515729795320295262916055324798769111746805889294883889690553211969425296017080444697402357489154276343350186353293844106144529979408727549455030384842257956864708462140451117072361438511918637732851832109297448914460472154159658545621440780295245501809624843183269962597879129868115736445616837855328714736098671469747685406869388549481695424906506855902538771498098824514656823075963141290323556181144133569322191798981935290841247046569999074753194496885658103838519218525270488810821091086260965537457243102360312929872576209727593973538083832545067107949450168794352048809497890777129326833482404203622603173554286120752550117898122524920758961141057006504490219870847060981389485941292860830021585661771540311580864097803220579602476821094812734176408810216813521414396883865499880677917565600188240803379310648454321315273119789732066122680854621121320717478236951435968337204731552668829462979756400934737771541965029240119368417990406754082562499754943489986474359456009471571343365651192501014343186542100399201598115515661653583043034898625050454342396610657365345920408897641744721895374753328270072394729820038140718989108134155428863283323033496151142431198712842442023945479511422655060818775554492518796398296717094356679954163150358963040549633322402357819349036375757367531275185562083296187281944854365048956933825779546596933339015645462679054956851651361393433316820218654430120155558442219510529465849525372836717277382396013927731337235939675700759649764903082849271339185962044519985068103765263250920915168563741437241932110429588735302831607858671106742415403845799901449434938458336132851176777249669049289292539632309763654006177914090072894093986072970785270839550928425370032017509142575482662833516390254982601911793560501128997150116114006134352960073863947180106160983963848551840116481114125116331839065137091298805695482915424185157067748237606536437558099404976207111959547062833724426540923919724476974572052622968514898155065186543306688832333798719053311957644458750397318179991165703297415900601605757068310344150441574996455955838098905303038453964824871811962098815171634898500896677791288634635362282448211652071527689077247360178490842787434722815125911625199835189966481504367497917364678481061975560372691905218633456907738719143085448956897493533531439410726902381181102332543365354486722022335070759699374427895099883810943233492177695234431578604932612161935065913391959064317655286013110472745865291609685668884026843891614696598010976588528646775652913554349956818219862003840900521955506042458394574588529073300140333183590575899099606772311109800542706688930822477882681098534082565521574053935748986311569595829207826143860908626858189707839671456622309527132354452745774582478164427979884982453755893125725300456985555598321734965732707634142160662420904768944779155354203734743892024403195624637345050610096925710299546274561713326216373642615394595605755245049663784299774796028906406434089087979568950076380453693652353257044269767981792541340197845182403678278411947556698016677139845589992312137876567328508606510859822124275268881944082250169590027820862483187806926086034914063270680218380405355117463739403105093714528022465760598028137169328584617983557982232112748681886283512768071320714874448301087629786018997650926084425481596250229236384521916808411240670946779107943151154469138465526200348210871621933443063706795616386966340376616492663169853343247397926851238300669498529102266179113570585729495733148761871343227508329925802803391388989019972497893744544341483495691573424309037870233812502617863335562978882830990763050773167561717112208699216916811688854631589925241012926830861141745519862470401567845888102298192744004680746063627674290122645588584230126627324863023499800379121333666848215313151793967659780882914970183904598914726041695591121263864547936381127112916689940422962976375757320538644809112790686906926138698348387079058462048998828731044453557079341137900515166031135442902430344430621205514040118027170451034898283079859196515004469244928687334053141728765700989648259001909685788629318479311792369970779564903241876259006931650089663740665919970802223316895584637095921441216486927219000752269722177876562936589955676430549822748603591770743318759013174406793462351005662752498115718762416196605002531965112804886697319329902049341327711605692358339978543312853052432462709318375340444042491508022116134271130706185326259781002548201764268884280760674840433529292286256371710929062738719127152696522003832696845380932096336405424779523756035989603102905009372463393025352308592521805962826504940524514856627118646223444194498794020608564833439573808893651921837522955888898891456174574545701116138770782476052517773221081779282155284406530361739211502034251919076455925804780839352910204847654882076527651334520827096581417939440853022848586358269752941600874666136429759760189169777273764409199044424392751062688132739860145366411705255555250460970457923196580749911186230230916664537850188937042135660912000917670649038606076308666921430722791353928243344004724864381935789991138861108312892130194006963375436709711821712426882873156977224571869454893747777773721038956696752705006317851319005177372165390443380901813885469892150163753100198601183854966324276311828608031224410237880571482332330047162488362135285530899418339894214999344186314452106490680395334436649956362802731334324815194282092258647982786903668927403389008788393360742423249566028178546124753345728263692951683716187611637714975953476922565520202215531837505934189725256415114495874191393200367739975917941167933477281569823560514309969010615187385522996045614108297080322347325696529748689501229017541126676292783681815516211733311952320945680772041131389633712734926684098145901348582598657317862954519331614339116431570458252005785408800838880135623783331276931565962207661984673366924792530111659293597333317471644672554540184453621527301907978589130847335776122710358602080737841712966159174980136047121342640145911961690030968269823983163426194294490069196717673094306246785665120891510022916146587844306890734113341310999855755989998088849038215058561484444233883735662131097122296498433524812072994726434612267927144440878776116666521673848047789869996042309346541289537591121059488702296076247027737777345486324384359782798776527556386243552094908203314193204825347993570729368532460209858203472725872406050437399302982401244433810660869062734660252763249851584138959500174477204030132740743980705745233612656764324752921992635678858498212983939787397397663523900238138938796323610528398630595162501017702329244263466153604104036878441203328602489238791048540868315499703533159512981922143322129048007158355275439347958247530624495036736929794876900146748753689209730654575477040538410390885241960736967672078884800591032783937641048093305896773708883860917581949303183922738364233854320692778090899847149337334869726263506574381422072655199605022370063328825245227686405792695067977021783452669218369100680794737633857127061986493915908520225196329520494746994810942377145150162253304360765828813754572927221628493060738332763742638357143544558102522689457732867897289554688631702338695782675941671739393953051171493398117271568358162208736328371916032721486281144520619157946255310391539660727257347053330212493127439279958697483259647339020077379441182062370706487248247589489583938213944502003970321740466420754162284455624160837201412182797935798265072688031469344810738230537052609220191655688042492682768921318970359586659829098630984460736427857380888430744930113067764905051804611193883404657245294758125047288001586755076381684664192375209972960369505316553676650211973754781361298910766282483585540957162799457890522063450138034049294283518300741185314031835958329332870074871082917019641203102339503975753083377485751191408051205920787377879616844233830679042889408609652449918981958100827122888226849614598053954082074279018944186833766142139982688516398504156963731090817523672981670220344350293594207107291574826687744850767270574817131198024274597124470607255451360677451737565153041167757544178572186243548989644929603224155345683377751624039818648428157828186150719436630435858407806038207988695496204882673024682464455205384102642453352161298508180493020327036894656633387287397107756427153564847166434723706084343675748554712491128648609746530493264313457691086965995054525245941145102830224890056011518421437992761200688736120929376642811574339497508202134556218140741512282186549896628595294147926702452660151788668301026806544738197022579308869756956992864385368312304400518920886965182963064582547815639104976423674423531675749793682308805659494387365124489392834078685063546703567054603720886786089200944718063860658212575905022016960998480873813685388304710274430961571349281001807770692861897066392655568391018898299439265619819910815408326996086307142715810270879616843583144386385320264821829601508871510812199593382964794498702760863234477060964175799058208514919816508259838777107088777244606396887308425075617295375566777833984888066413780052309768755624953753342534546437778606621016223001335201041516630791206790370950457771743254042128261662208462657170366394449215015895849326898326241983229179646668216438565724607161540344359699633576033594515105946811551067043337366476079760169389974649723339149072434852474127487450852155019932944168674784390731499513713154320402078228926315320247375088190802951272156312186330196503762513523092181722898410501711463049453110714080439597210835336537869746307348683001386400757760830042468236534296760462816462484364466191442363038499758792533937342923943545108800972947312285749303578388285920811260961050700420067204282085000953827453348863530243793742735690312352493657878481801320012741907348536775953592815579259345730170391128903893915053685396263134766856394600759607805542090160876332325712580812858084570389725788482330598161465688847718417155407411360195060948417759057523464001032675520159917866128608647439379747842117104239330209950168382848948893732547131167088141124498455131363846550095633350992292441259526784559421166496973946516104658381195859610285746254393997332954319514050903891093608878300266610501046736659840852716267235285892655074231854495564955948247297077105719032367058438409363463463198379851037719773878863904251635641749488239469355914965922109749359068685607579427350526045224825757167657056326433645946712358057795998406089965958377257592066218886698201279146955549936069522290334350585851921172929057377539174028148604915536483247616227515386816935183647912118321135398464909567932495160151972304297943753699335674191228260985371425726145621375288478005791879412399586042314133200489943821252778998942231104272438461472512158135632733502398787685183349209527458693728193685278366847090773249427956987086032718822182384166324576183552427725722936785475561861450278046830010434229242292109863491219704138629012489664219698907713588774693823249536775981349372864174603201549626739902296730835913717335697485566581694644615026623542431350747024402164867002382494839159082349649895479927357259529203618477093305434845636658592785705853504280470226392411277634472153149225121838571281529584143750404784880252171012460893436179653712625060795715361688858733570770408036667066786342935073229916272650748858815754702637167939101647589811207971444862573598709434869037777881263626383104148250261395193029790983632255926205324327086321313545622574976747394864026124533592409614116927053219506152246565631913335858639219718346206991664955099199206468484447153770407985392382665842679909307653953843087218890113063667756185180817271296800028741393864603232951236346327190512055945290261815797384524584759273267199808166274294994392371918354263104104868630382974478143508775861760252546400921222225190046548201788844787509841232314756994897090175002416894162271631002747511794175869241378044400768924309431313941392597325246383359657789348245693141393721908703186566712293263553483587186459901319806347384516818786187514816904437030644826447130744813984075353911040895769229756585902896806891318818826472461718319476693663197805084867456505755578217283711861884187141917647494554765028480210139898063359645898083470959995040854718404301042205069259342324552960395695117567586178085441388885601636609313310156438701630716134959255355975704456715212238036722843136267794151925098259982350855712291021567023071344441570661200665454083710223143995248925557917467944708828358695912285514742499121347458146463205115533999083015059639069712226596589179204962819268679601802012655023823502873335135032584294453035991486074997011345796768764368814775565275207164850902711541863507355311438128380579658429388808672160608154837018231341442279180277656022283348206765874455417122295490481630572968605091953055536523930331000512746895989664742852513467217346364348888836001650305759053827091129219914894574069577408982840668278670772655809206250287942642231954027708842437932373447487011505185327857360684549156130205818078524466665789243891235030527045830627833591040526246714850047080589475549541030045451125149447918241347746954729312637049172888702824959795216330068795967373705295183815002997488268546918757378633858579829070964180991606256608782873120017006986068704786278162887530742891900997530696287844862023160495857049276643630555099041870585906485254879076802692260636949528923928942604276962467367605239514987662257845046428122528593661356779974800781505709845981400187052040025060967939635302725896713785840329872729673999113764011921513888437229855613844265194167736513871068214499942505616583902472491919787457968244739693656467649317830931030427366876413749390182709377183694811043134227683539068845264752731848205402478931870613577260416856710179022077480161795699894001678279730987491080565613161591734822027521171713536630772041144656860509555294314728591642601093038964102453182588551170096720072301914052664050559980233731185468283720266481886662082782185351930654969724221252421415539512824480596319708330561191437943879719373991295526208054372628722100079827970374946697256140064195131400180742444453871461012511522802123885067087845714122027876183443399314521854222664844148344612173430601371497079540159457755833133070907070533484438747373481270464744392273973039839510959108312398793342489184468292447530749784557195656421726248947287263162139324910823865219676555345395838828618558395158311422311040053256135719463709724757704856004737454629063290760942184607536720103162021106822728262051886364092565278819842598322532675415060723764208941036127193256494789839649031928225396325611831569961097816950951186753007411024799762504637031210030350607600569407236598869101540348859172016902977422688784808141720249965699990152084352926128471936157347041798145460864096330693243854294810100069133188104410035385164918671304638450497756567905616678997221717215651505217410755545252346826249977731392566638665280109811431157742712646857308229167759662726285979024744503322242259551686083478167637403572363741992331268661458346339270654842194885985313151494187654547746354851701629010444368966351120163568440354841802693750306397629746902144576183282589667010631759300125576190110903669624465121575638884176205674786261389275711609373121374474271110380387524233782439831168955449108165876298974231735124704344709433283442816358096351741858923226657145810058626902421274562362074736450402010016049759806466511941611030744468386978693349182694057761968671978555659461573426055879570724421409602416260168455487782322498468394239405402320327478387711809360479298882955084040928641500796214880423607449830018634566188028501743208965003071997067832055769695386415055282042636877839424826947120065616148595266553686156545436460965070105098042784366886551433125026501044929851355085083517038975811649596574407698469342410304659606374616996348777101659629618160874772479711755001698428588276049919925228030344091578072725420846880223183290055881848083466904453340982851591968397036558483167257880354036055856565051749506035075078511826165144819910406571947629483262002573047251061870692465090196435456798673441762253756024856705484971447381555359251740395384856423950158871393669191423683055103054512225962390582283717062177000843111331649417009818307278070676101629143128532988508432515719118162594630227998649093376923955222583424317811704137409984990955393569330412658362044283451361556617414332970805933108388562372800805063677512137467291734844642893474223835748947916526733007335119680815197005974213268386744232603461679082411967332950903161822858061949217255226967625219098947306644625214456591781580309023987620466888854394664473660794048780723377646718807044708142567917938144220172333395905961912120809591570659917686869921704204767212226513360617472812118153866936390473846787406127519245864578805071051215840594181493431984420581958099416117750210644532263765145060404577778403110440811772931772253006311507220019675233624492692426094602899982741243482120077766210722871470223534259825389548773680404084345926583135281687419189385383584057046958567340854300349781497916400925783239334146488121209038732072501204212729336816713626783445587949169832782872435455766876543435152203547295961295874259422462908202329316169266867308640297903132370296421234772505177523974696951348489451590178698806511057734983351678370832220006990191006143052989068114577134166172508474419919321834974753105239730880108731825743816264254025657007323639551942388324161631984870792651612597433258550440469330033893493410495293741794343319649647353331109220508204015482423136181202971185868942140474942361561663727278818031639058857102467602819177861372819708703701952626699395355494208727793657899235038522164346310010727422928980511810283910782515849329335776244203348179934772906742387060052980269322153042959593392801954449735236566360586885958246687829620740172930151863424974247516167310895553529895939712741191484755781861388573654309093674089708503461282979249835937349318964969386018024836483748136721318887678927394528938574492477008883464205264610276949788447264157080976300748680431376976247933110177692708600530840015202752043974566656649173607592320261678504932975471844154118451755906404387103063212312427766749435886545756085608952403392659836258887180522593257366446996517905661480287795578985802880794648030561007275880513737231759805228157939144638152780195880543084544660368600978276296049090201528081015983493111961750025690118791484273764365035753916613945659857910388174407820485411804566668489002278949044858576383511578086603127103509853226189795148879333699272564852113793690067875660252219976312794661924429913635776009448267384071308209614824078336920731252555935742384097547985932504463005267220052957624301102137316468494095329380447678825269792758657466372355935128308775696484521011128121481354571148659877113954622336375904255610983090490298310691149616398442119336767406202702658209684304972993599659306261081974407266928454083976428289557083739836336866048913576621075371534393612880270605769000976801528665179387971737100516723425657251656584515877933613402312810714227957408437987178208505417311516632781746818934637468425917041945726974639344452513816102230706226161286109868894883440737222287626339736429878476865631949186309036900705479938647640535701848513115694090856311935759733697498045524232377261811521070097639346246666739294563843559995701589616097786827416743717062037957685292101895288875063170634227190344629010568456003838583956721329633220325122349212938840605068670472519049087625670479144688226185882749209960999711980958568710662227043258169272470815357125326712577582331922794344318531580003207382014856493872390743771473297964365105166313581160245649740431035771013773450610945688681081353536192406809159406855531722779385990832148015850701063146089657236979979385567510543644325794548985708639514265986837225000982758767093268764345896313473397998774551541618535625807828607283309547329352540369785428990913965930023217942652976422255274983843558308075196092105660041027352602324626606540532403634872396232847876375479309834728439610350041554897476631712572675724071636592954028941115574486236416305211036387595471850056465494595348047524893751956042321243900090887665679604855907246903802469916957271517621522014221946371181486197399128294313785061344634092515016035502551879202886895725851000377971629065743232969303251783145893200936320974352815796886390543072584977730996007747474668254883834520616536845297740392211699864372398031856439360083718280743372422275671825333159735452293301922856351019128899471334467595876433426313875802843482542460250068089624201813168442788107899285810979483510899238890555330142208730515440453856543024693386433900851336906326038919525087861761197784982048237884930779761064324704723726679659187060474366458026415858834778712530721308947993733863650564961165564440258789359307999158172985154150324003886384650869240417142357495831063862692080746753715518403718517336467546689144561490126897573103810584691790880496529421602239240857787423490329808518710174935333605348064414124504172302630886474503566531140334376240680229278464622381016899289066606170941280036418529596521405802904349751580254598876548003874496014618446353937601903962800377077216798249598680268627559392120913721267944331128579771777121947613607379691933721308755339690899476569410251375684554391374147829634218233822545748231045904182020599902006760382057639599425108696861517946064499744617749045044254848779950134415721051363725513513968187611688089980069916180140529236782167736539546299462899474746517243036911029792907658068187132553879495158445246217679973789927602178127663668984552141635754725023491381919525936997160275095883886530704508757769272194866044423275462183124077117308727394385763350976823571598093896326242671287349228278563269745773356013548909803223653037837675694462597874800499537702712729657312729956702579814679818170532225037250777969422154131594446364192136617805122909569135127482202001588602448394256038843714560103519995034218199322890809434155343606474395458016232595397057697444264853805202350923035983557538823069627134380754917421144817278212579975030143535698061640493403412473897274837840407268003169806647541638855307822459874640472377184146855358316727489714545244822280761676225462236324214603971772023575393160777638882265348023536348688132516338602359714638084902845253921785922661304641807818711123832430856022580377030582583521636002241025639989543289131331383056249381994262326640220390820601234192543340887533402292294524786379713834000308746388388810684639234832667505116791161839533516209391003352005579578347623189342891570415818008159747779441314192879077156581463916978358639826398361897207193027709509646366084477986465728802602383824660527679708676600745598254012411425832447136503691687673031531630108709621955603988194188147004357658170371963613823074561975441448748545381499738251548569752161554300710859860527370672706776843310950880694489403295590729026049879961453884010517093716448688332200545714595775952340878525188643383412429931453054506581891868483694369482197341998738478218682756841171683578345710743339689096466732059115142823045334981064187127327448610775484531908039724174929929214183095039382832305328487418278724628114312898082898529023598516519306392624118362859831649094017839553057159185844062796153435605607608502627298882405101976737712493456994828565121340682746794245887057478015082533815217670215029281015633739601504296460245142753634468113494592690665392208005308795854526397973219782762503791145032190548966892299496642912612184025771306133267057990326956098421375748898365752560809608677512168867522887553297332955245088148862499047538299032665585788099672187134045995869820433002190456747508602091556810641629964556669277660194872039827923686844073551849868070669461455614225941441043741334941273918149528616305375585684466466056169846708364783783545904654716025051055792475359837233306982042888459367940761576296847431785596797678083192990582268655145303996857990323605449939027543759091607824924617761584088978105949560767335259244201841243570238009960634642989547213769313584942812314544782169964511128762143900836420135696051045726040973968242794646353381886292060717431336071922294720348145340349502650860074608418293916694255695548435030228565648218335665725243244529164023874025874682676365373176228839673661273700826036589747722184032627740819577377823788850535799400960682706315843927859981276486451790438878428887005078609220016393577308912979411716218547585049532325328274092413757899667005751026999313413985508018721766782454368132323497676658000102253640576834036285569898978566893658184209496195757542069504510925238983116550748366794912651635297834196272732917015712724658583889031755848978627989704104587029919759838152251421272494169028620105521174907440160178969531911809441282828555290605353560140077546522378475066251725280040437310149689675152607958900513734573955134584354652120768107576641736647650663353345140781894431566614449329004481551368566405416733253059585381927436852885039014831563597909946839399067991578689445055484908005959063003542604409547124058554446066145281956238678598076318188731353858583709870677193507965302975175267059856867885380134813654031625652435827454111367944753108680028271462316252054436071621025543765439375650152820510092086575988041167799187344565762751006400285557415648368594979222948028290695335837636093057783298026676829497883688936613980442638459581231075160061187938844963351582096807556490839291792959957148217713346640868766763213076466937603679082873695632242957445270717868781054803444074613002946367230233799602158877903352257853164449325360341473700418474210898608719107785459095511100510558593167702724395093011596086281561872581998136993296067674645577880155882165612451606345052254326841701009024949300511431851767083059055951097845820694656591568040914009478596712166727256222789617867646571456722452454456715111087673093407425539303794586802206810392615343633726139850509251984200297344458206172715050377678848053380164385038663284946138174686006683437888148746377212228749372629282475512880757887087958932407469310023414908721877407712047323458582170605004271879481600091989087934423921114627274253265063728707850376117442093043132700448001850157668811813772380149091017510503353443821580297569388606157382621613711594624654615142013619291909685190351959915930614896931065448500796923837812657728030898219006802332225403987908156041954945793862168856834880604934758924370082263060836823469634798131206966013704451850522757110663346215124172985221978157656715564261317824793532967961953655148813989555666379053319297383507637390866361642725276936878517662439508826407104144064108409583423905339249790709902769969843200859786030446771251485202996296668272960456353741524008415986867385385639109752806863548356741052141115480474848953274301209225009065394023894026503472595970764337844902843699243459812637317972849334201230106793449629050306130538367246908742141979797202725866740583413053948306110284213734671971876873907143838050615743356085318842203422741351241946229699813875809077729842985513915959888547789474191627627982737353075625491107387022544437401164702901111533598257608265947099270250263095628070262088715173672807937736969367490279064999927265385432400201064681935835505862021513614182192389085442864410629438619768832637165556567341014543583670825667795472173324060301405259169568493973270076565645577485014917148100286594583450409962998349191205736896444401327397351540630854225318308710627508238193014210490762091961849592857806321458773677819792503978107098534315571597688099179942212814857940086144232050838313566769037858744599902082188061641926280775192636288716600419827099437933504647555510902968520197524207874991118872854442665497565491748340976838971344878928218619158557816564144920494904207688046177456196475917508757140439875160931184064536019068418905489530411539419880447781104957519448861740203417865649130074770395668983713884015417861854877960226097184527236176761083162473396117035607172888360283451194860444026449863936472126311571637494970440092700898236921104547061349125979808761707636255287583979666213393520937927765887638469620538303675620490754652801560265969799514942034388017316224017140462439905729578777259879686558763726911702747743293945898953430914646505296460016644504225635435288374468292789835021963864246668361914102679985379616707569222083324367275087291867941312781773920972425791740589588694106552909929202185482637372611468100730376386763075416507299954493016811243711061367854400222393639901600996283765744638187051199431087682495666415832695999650570203178342791928488053501809715528799624645664084617047474485287214189734060916586683145373012834682768209078479223311264113072783191954239080906303059472521587372516418381635758348875359144850292696181185951575695697541152501354361933059926112073707484148933438330258802710895517971120493181266668094194823501536269793486124919012666016721654107861749029528456121101855740185918378987652567508576320953304801115908502451058574143906394436618687013956859687052939237518800355401341257738185663523758667371018669883174573008590124234248956675767042314143987340342949284515532432697133813264042237689220743981948340510153006231448250877371522371868302506314284883885999838938504299488876035631136495430352427048395272966481677393417795838455344687148378547842745042788351967792451132501692473176410145995230648562427158704262528253183867229756024926886969808188911865232196519946297163554267692383076515239833169275855832035262780310736073817863081262619325941393162069650344960950660051224657525547872396803126149578774040988259424221772159266290996464515183136848331801960797053348906795143622890282869432287820829464399281218515500456711127109360275667636457585319371437214453849023127185168300438286972826840047905959627163262130586160659630874494725230239322455022811077881312785741958185617673064164371683498728392746791983417076102540987640456986115245430267787682069041020739346842711411849937831328152234043852596856796454648357357524506154396841454755256412893498826739947874081700344295263932457771073850005049528063369856467226421684091826519739115747815056226615223350416219408790527596219957379506184457588857691720014994037611935735873241573609931299541494780839432738851132232081993854557960801966605485248921559710517791877939223332289315365683680645969695868171478531891103274317240113656219796432326268455303550647795089024971161426176308192622178116221529547353612168907513142365471462218348395114235361552098269131121141707733771542452094835999497080799570371801334913100341965735248252881353271569898834217842692839014600923324274967769540791664917622240678247099255964008837041052459073364915861602999471540712556454413328488554662887864038876965189508429783635224543634139451325650803545390623336817265703660097311225179975915405180769630917371314727683514551176921129349192254128282288161793120968905334865337778412465896660123954116425413369418845640727075398112762517339641557230477488372740685241734345398150471292522698219192015892834571140075596856201676440074087924638835018308371835673767897286858463952888459370220173005788514267955309884938473775684813464006041952107529574448549167374659148719930512260040945181188268590372472028512012199643896510202808252977803145746763724249907371883952029475167790948392527643945182627209114861764828314944577334567210047369333055429832267746268567021865008851398478430174058034777353287131785013861534371561606831077914781650629247715692337264929371575639344934545613834767378781417802501759548227692039307027601255758232998514009459590079530094599925574734498938729344879253310240212411021824375369752791758106641095766774757425089329282840211217997946851920820320397313901607526965055198014735060028024739817990438920590621852544748298938804833303886011140303503974606818592912629959773744759577338908731809019748565635555465478262159825410630128297671462766525429962565224021539640299800733441256893538608080142747621754347729444389877291142087082412691920954241817493358256714706978474790289910904762240292034494343128103117951507405535866627120409137970472946681781532844932438075195556406705865631177975139748583783846747393996273697273922226166903829452358473096833748621440539000584313673117652413349136361043709378463129310335561483234171761111725234072457545609210515330094787927970862433672605934514822696311142903938056214751668836158915684145228765349075574725560317348909568810720752149091471531134884376066961479710240212870392823005643663963607998456267446336491932222909926579222205835239343409887368774490304552674437164696864240027938491443818527641682234521910300224450422912748441178196779951323992343309457544363856073785223399474342017861044052211217438963517372670284035585157816102158306925255094527917403224814162474585728232308134488408178211463554417979060996304141153642183710825596103360755978249342983746087034628839900106608368097075579038823764808417559836071481157004226410757558941617950440780639931096515980513865831553461039331446069180184568515603776053652188012444530978397579394063667262228556930134927598775241676139442812829920254064842509496327673905218666077073659227659333493283989992733373804796256640909407694734180696205952152922347113242405842832013217845453881720280904244504009341349202033166957912364869033660806929144786944849766266780460850634664284341775431014807711347590086305458844736017854725827359256931630952903560454272744004874582474506845516683908940938247986363067903705281323424634259807058089319594049467240231686562630983428833899286024991968616412246155926064151807573949912944650174566546353910601286062423038611570905147508584951703384822972415542133072793165611599176075441707626750496895365311684096731550073297658149989039936000804631686941429071259312887907912739271898337937403150150955441780113172286293053126324401073932498069245871756351764157214836264908035258151003538236022447654797996490112579444944395973478264058481138803462999896405640859757953995233581613947533771508948459146481685459385924227852150607521323584878819372996771357081745387146014491202307941366848351063181497378374283182164695992644833621776333948718187670293620522648511500699685979374112021191010943560661171305707398287605399628157887332824584539858294182888072527217770410747056053068390926643233206652845647378407872263057574040487703671800311744754153810244361320307835107989253287225132384397399009531753702790308614512631057021712607751137580435041440103589059596778922830174820889422241351554248585420254070342062340012865377861786894013275578696888196254789739638846479912505473862825608746548578561100769502845316709334986946900082123119236042841917406225346215043100834179141459599465360585405761013498295295913872712689050606057506855840776118935210028081655463216619297613805725606577442356908844947635316290208236119180988018425130245536282191110198078435708596630246895865256627316911559087552126083933490827011257730044578447563097639196476962228233019533949584146613006831298779459528072953048393559840138686915430819690949872167859622506052214867398226116793183305702955638951142610680359719173612257210214363727685697327822163730006934087542091576062036791735418147135058187458110409144646437251050517371960240554178208841850207147746172140608472821957489024680153271294088251197856750686713341999328516646802759796660052018212354031611054874891538221488465811614686092197306416229945550558594381515007663596155193848275976724508639358374594679659962192403222769559873783299066222380479030014514872662733258882012634841012372501528008079992767416279269409248684918270429805942826386311296987156961117154955733199692382899629202277112980592666239657727769562374101256366372978543025124441427793830638546015866725206494921298577401182165362310008313930800636159188158002922607785846868448856174958005318944507358504493086441964032255391516139116591242986124713753378500693872395416239699396799458145616697965122362873062026831155087510318621190514175686727082897654369726158405317928571290226958663766244629658085040555817550758868392955585348811633974218052613516764964149049704614065115637503288941332160674001685359659653283552556835057938800322496011994421014578532853786403642652055853818282672953662722834104315339014281440565371561924326711955005266446933130620846298901858930347663877063094804987988089320493314652783628763702418302302282972526306158650051679170463062150006828262111838363859091884519904126370030808598061035371478747307006534581873936925698131242250389573883797876503508840578934936216274967847688869454244551807982911916519577744621038313181069708820256047350670725921918595270840060284361266704359966862260314484480780863364415318844492610403720053807859513246054215718518575009833340471800624307057854677620991843536658269175277420869272779882883232064202851975269092973372409152079351856539793702493282568023199863913735776332888226596154738381096827524478807943273893320946910451136006321206304676286686422631409974603081932514433531288365943319373186301044008677606937031008711315055638899077872696607989776451730087638735931019966138079337708010228303877838135107163159442240784791382432530849574407934245606738568916511874893018462913962369946739092586325834336851516111710840883034616893705600534921883446350262761043338794364433079241862526117424563646370485438785427145316564783911550821578714739641092477420112568892520699587000653189213372653093184027685993409587238946849072619588978164336376419650595539659251358652183025370912823529670613107824717510775129483082686342407826536396479112670992867605189152373708347945492918453575779277214383480937702643563470360284105323617737962901144445234446469659578213876367795255744388809952476073277340398774016515789116596819359513578399125429023783205810246953949463724185675777128669591204266293395540873313619061215652009062886629343324046615134742908166184970492101744649872305519519710403547896578771986043347628653886796491957920002012699478246463225714194698613982178373617886705559965528871017505052698029582861499426532586791275267345880716983865866676908584808370524676290642334207764800575568255422126886379491204700511975370577996366120285289418510813485438952221806239633792722071873751567734346143065589217145541252971472648231275352595671898790988032304895724707660161981771954138139620219495175633638543629679822027787298150650226906911236550297050851335218502245583619145888246002748586756934783387121227531444948194863444612285746362883791791058696078494485866081654822042222374992721246603443496926522524257132203651392213235460509961835638531268659925486049401510226371940956405729888137615194243519543232135419640787020653856735074510698332683687361501484653231447177476227262901156121557967509518391288042049246184649889461450204367670848840981849770335178506814462481508092519132345288321935604399738315238542385546613996155806898911522578998505146429840844227629571554141890341465727283422453235818368200399779432974318914287956740864692555096566170995784930096887059638893225278715539275252966250980319773218436435593091486577822048296344489930529339932036312417464453170142674894131360051970025297159986300639773464211926769712726808894314086071813532675615449239866484335542924632066680339353897769929901366333591344793143454689674867338008183013705977673774680639569290674151392424886710476002843039272967331479028786457279293451152760781340326935645922464756497152878728405746103822773514495679467334604682252434329828384388752569906454481255996150133225356650543936265605995971084847694096127127772330613077385504461366982484678706087357186600769890472003297073540545477150801151251332076454166397867724623880921696320440001076222260531750859477186162530143786514430510255077125029101553363142854948891740366444160155053554601036751368834116755465607243617325148201275644594779695868432552301419124347208358122419158196472363822021188941630071402853052092664873060653937826196783189838478155491907746658778871826666211489493308745212529494248409565100348860749038918678827782896297614146996162755807308504622163855733825243247215818920453038934676231589855430721521361132693386523627220056113951320798853217581946031701365162448378685004230182164862206949257373071422006291076593257681377190291512801569139189509052144703225415548788487629453643099896601561186173837607428242975670216362398049582912435096863274194506563064641435333997676864703866095189329994535866801847888102964313767385413913216415925351576034068965348655675068611060817468790958171660828373727827690827542339197270959131617024490173041948947207325305817373289252876376092588779231811124329718058705563954104829710297967220805151084675382074911287719761961401227570758764799248205516052697958244457750109969090370255754156643141786713094410368841726402849350311069922921609593423818236718819331859848835682135249048313614510751798813599914512622843791848715776854923473233003175308978204150647060499371191906880942005802984888963762394909066455663366367179333278303242434755967243212635975971143408134773239696242985969267533929356207752960377105636474337805538032533040488717224583143025261380323225093053607558148246198136555364094767638654968288980842374183020457277206484124053452568243231289186844001617175566499448129624721744674163537369890314865467481662759835087237825558436486664132677130919691308598211944389911322121606237051865432545069300029072767007952077176473814505272684548168354653691673670700253589486919519865011992143432147655726476217039734930471616970045814261878086463831053704836885570831961826764582156520674255675634671355990232038043639612832078825058253301327903559777835585966613924887251984377734519438563738364331779164643594538217514117152975220638049800846656802179173914565473579300588546080760598212687449746887836948352155569621886934408121530555412492496649621721550892961392693778176451016491654057669234919878691420605713622079421022353557139324073608769417691735337459531326962707423557574261137326063914313061458121890501782529088617571633073284464477911714116872322946332894793016240810910339560054600736141057896631198092992054390114227384982272470614155505627243187118568257992274367924283231715099810170861603688358407808583086291613748098802880641428790304837115457270143339428021380204794033190381627463470577116248983693246456188155397839910807586962338899327325109545435266871523349834131495622883101286159758878815599934718310535280323180293144826890478747231576082677767651895850240995425084331146186883510326008149267376263691574002911432646104335866184006836605261513125973876245159949825799157086203803670358221378123297910471202915316832365792753769922107120419980198519170696293228869246081180778776975152577851455243358911032488559814721655599596326920256655594461785583032884596533771482560287178747744387803061242117127948721043329575396760349596086891395342850187843870203378805960781071447548129702355208814676190019824204996669363603678181348551114224642704121570665694839117449020310010710481876889306665881073216816642107544361649278626020528534771338011312734185104094262047271362333537897709933546340071760792554264869025315616064420185766840036264232716670635007252542325290480629337029797338953700467515047850581627303632815577063641615468170154987991170390717167397630349653266909978631736503438860722197532461487997431168269676121733713041006665547286002345080076233287457403955291079484890806816045269730298337389772626698331410918003393599733530161990474788606351680153759603458327038856903204525699421493562470644893254393908901145337188413439678943317132497156245115435374916895757249002382272377170609976094141214478399215661440942839992756804510003560365139065765736505614563978488964621481119965345718178120084973605914867491629806310038690930795562064984650138655557072073451673847329724479779216154707115245390375162766843621384252899980052258886522491510409012964097836929709305461520113009994553374041426096707293369784993346310516896677399037456282968678309151800192694023074715026917983483413140130140727593074703672434023314654286801272313319474490421467331800705424736230628786547463980426655866118694238953273052641655844282369079497182187524521722994026705358231773112360522327719717731832927970272779222421058804609341751798026219432299558857797614485099440800422643172782637929909996226081982576182669468314312431418924404634880139598294369771624584327966689228128276493467933513650005071987996833732599246968458075669691340384889360941564702933385775240609952923554602686911437044598471368223397420189471163873860608389864782672135280414654350218176154234403906898260886825847765066850418960117085741808555311684140648876527810897080680214809077746851464557895901388892940299205398170850280737948670176840552845986972372103313364837231380545557322697513827207753247740843213357368296653861316606883723396351096689737523498818807527065118503807160068862900616532046743633952320107105086915122488374379459496363986012655284111230925656927607747119312719969456310003440226311929897480803166703962218850018583894678845646260043639371328781530510684625634845318771602564769255214633124495692107224289908946334495398868804984049720744648524193731052050053135722343056970893272527522331515185959411010772423897117542668100915375334108033542786371092197318601736413897947435872032455826417189114083255695340879700336350426181224845381511944344968113148238545437959424011838711220248255558167256093680805073944896271151561599009611287304284236082362893927058380302590654925941837761049350870440704213250857967822002928083427136783741427130002846029086417625826365717249276644425209882356896931779199608241167301734483109376860121767951502027245272180658491736511420848586120653436701293555159907298336850504159555998539932885223765952470538050646107597002047229159018735757604327015931896398318682842238517160767871779689456395737218647555713118509423455918518704209854933949957837055791226468842363830418066696950781892909162521944699257538803725743681685056035714955562551165475738902324356785546170276216282192450405924441075142189055204198281485958096180738564238938556523192727822470309675127393059757728391523072992770838343249526727442727977307410197650046871360551760573033420145834316990831856846320412153016249222411618701035122639820771035005777481041090536694155259642888524084135299047449873109770427352539367107493736943544784843096778069287334033453276894567536064266587914291087655008696863208085939472301778059739168602478377149425540590735397793177627386588147969683502007858570457273993420959447321201411070578043631485892638733841142957365699775108886545104473868829992357862844135407331428641289597018953933514143888418805455371936406111458301931573031639231031437248058557178099433693405837821333783415936491288591112459898560304269192003648498754928153754841688277737463529970925629559903372083099504777433140382774880108396483275924691152449849698397131663984876774454904496043765949738881843366011975568107738490783640677433267600748855307379007626042822160746081570395607205037436369059897831773749939713947906811574292960594059844726667064167897727768337749288411310720464472834827259805160208218630333463924558079382561089016924212012817599549274925836111844787138993698821719130228146071788207989276151579357883857476192826945722138523602792962358552286078068866422671241185016215209239293606382026666776094124617773939739096291281777827173869410390945452535755756358499048566496465673652269108146406453526192611863043319222679466148571645176390133593839475899863595895918044377093557541431498843419958865817738163471429809753308377704011052490931429959067266549622254341012218568093128220780026345420191272031283254608174088510862977311788706350666096768376070827982698712180462099756867346584628605587646987936248521405489765566046954114401638789654830926004907407865066206136480709970121776841937183292271392953366116365090177699847319604147749382789682376637989428037732424261180029110069125160059150624906056253268804675425386155167299766911698160387707110233301184723770354515349956873528961779350214116558144921822909336957034132452054997181347907854711954036756775724195888778912254043412861237360975696763850575679104681933268212225357978219319595634144116939111058635537065720954008098271990965234513743150418358066947780895634354267815595038044330153708690257327231949195980030741264818318488565558068812862339205790704521628041741890624214192553387356321272564739625723510833709831095043544985404866986570050107052509143738260109306318173778285214280773622103688087411164215096442790047440233332214138751342025354709625761774442042785663374020252865607583686868288699854998859265314705271618263611671461543375691508912479231238102363769577965201846854598775359455343661771162591242096516589035998368964301298529667897610202191472868019834912288367133214378278836486440996621213438853396815306885454782207581467487061900221095833295728940433532132065961322897190759224384472375787706673694240134364254292909971365867876431796942376321590864111090461065489283313193337661402956779609224519678087441930947765512612081770276293577031132779578614327090155594209862228065901073758698451976717802444035836174807884177124121972365946588107629442460942367235547685767869677885534269331394542574836196853436530340303431596298196842717175767032239945260519158122513054462565139673530461000830948061395491205791656168785816526847807194866284215459333490090454815708182450608508122110097655410161126360115009309715089376769772001425431379493332283329122524009468177217998349817168378682008269891830336496620036835024903123300521578586172408445245001042524261820363587489085830473704317448664221116641933918500477866184876435042629501477273221977526686638313885293505942875241230088945554024484791532958407200312904423209858740734785232024183454905321959049890495801119738836986187092056739192652308255663677168326378070919196238221138655584552481577448938437717678509705591508237835678760379038040027090233419219208617836683407385184319387803942178236689298233682600912395927095413224334611285004594048619320727811012613927142573588431121671270008522062622092159906177208759088725666758242567056899245626234921548546304818266356639707646625909413960968632551681291719898561709455155843747735471100244414649668826450801647580844779904600769794832148841863139668211917220201617652915977028728665498827180186283095947960828217793507449004849802567364735576055815785918684211903162798211081800536519460901494981184057811546819896175563001939938697276464635634368501960760967263622829906675061480700160852469418667770270204408213039491683484990682228799519750264558896304471211306486324287436601716576997211852487762127934719486781013618149399149145655947171412594553459543791223785055744272304383225592644426885321793566337058289587529504447963482821798030567811023179650901156607526103502650296480350733033224061514182852306900140704373283670327568114310733855999415138367763105524735532715390631844604686720697353804822413340337390794844671974243392559593212293229326795994122580416465413861026723167411934957868557384639195724530131860421581560859857364968418550852186521319814739412687603864404855526508852575752263254527517176792108150948241678267894731363600609205396316332507497891903060433990877728134991177461476342315987327598367881331233180963756754478760141688967959413485071192105476097790898120741631483874362670242105515605578629408791514743848367263023366577259852558403229334206103905682327307107963398309047433243695054669270845244488923578437731111572564776249817614639489541884068333932329788009101376080660189658193371854066196736855948921953199328443491034178974007636619026112318757355928672458403981491490861910087198782089097658341035523701479054088794412177535306267293662921691460572893722462627226784926023729213520651386415299645057523964905152278494471922322717541780140901635801799895606068339195461711580964100224841158141772829120408982443844003950794426922310077480317365492199315812791599816021403576494238411479579345027608299811084662049897582710821543485797142789757096779665862049449820891087796440684448872569164473949401585816170469734807191377220532310766397575725146482099474087743045184694952566369768275798432946708994351729437596043846527882263440291446894710669926835257860940886338963384803102894826195616494598735998816219074349574980103898961076927614951671722851009774588168385341410862471222961857307250501977358093096867193164185782478855028182453090380377976483653604081394383492322090577555592331275363177211917671876402878062354736131895730269165499505517262698579274582476633420596649512475004973386978981963583831692930649872549795804387755689863012274112241966712400102684344251277293196887247225644659862066310838275217205709813220665243639033227149730670294223239294644024895884716688504468641358021978188824619770516913142848094711600502293008203131408681111555687749741241198190012421474715352326559161600434193054622898726705068732898281500111290332771465670576038567235530477581190665190409449668076113654803917947603620564905310014070168532443257770011000190160143794653340754695297215878973807700656271750252671045865818618578298194843729627216977875604133698215594056595860035480564877632251145043237228367214164436714714233980562753867860396284342587342686145604844831295751985526149943677630033881076229778019095824091333890179348265512475431640228119017419983735792906327183423483209428457324835036738540121758471485047526166112438158821869334396311910322518053842544791931696704908493681021801224061843915345823416911054874225565728193942422852026524189160931615260051695317078875327100691125807754464258426501274642484574303064026229170764912366541396447721566140371703454239959224700611441413175338747269633561291158671074412171215140817867144341982049110384165996946942042871089986688395784764691024016425395983379198574406689417338392449007113014792011399292715509154081445849478104710586866329702481406669456385118706302068812829554755258791662771361116212363776243327569067877103377133099546844214134576221895388204692640025627691699502563079182697229455730046150581277871942240014444407287088221821495142476070584923763933577443403351971791330979284553258476028892387226740006700971598919574739164022575638977159440021691122399167673987841612106454771681890763499612910531012831738971805465335294846410980249260407120082643542386421701945115581018191858526704090948111399556411547864932445700214015097602148092355624866374548230552034643053368582450621793292647933060735619668417539212401835790214992213348687974917116418051050858706378917867358666870807045930984975270872017320431452421336897831573686515768378649964825909889142350153858642108778464269198743271434599923806545651105057536830029816083186575144488009822160049275308794689154132969713681978899762054184399400503526619518972988783686768122664645482448377931782883269041073645305524313833893295542564995948152764167347685710412230649531123852886030504074038864971482756429424299474198891307533522092862223600671808791318099588372912649550460613408127744417668184146428918886940770176929389647438065450932224518841660575160544523318121898478578870464519566621618416221568633020469355259962769945592756324682122124552848632286312214113627132969670717637643062657450938474921114710472526742064162463173698589299351857375977440206495058038100132849018020242861411228950701996745346348915284871550003668183662915398137433917934583072167311581699063713193291459557709795415979482586850310647667699224769966862688097338654089693963709984526117749169532319763231278176980563468755038216270994290573461712838190446376397409987556421783501750452052493921052495707671682872622990916007848764630736785191494694669191428678702945990938964190291946053327251348713740993388932987038297317597916498915280001274885044798970944246897958308815253479317734734419387673356633297340273758717181198603308263965833486707865202541279610167428709844232515743390137980471328630893313039550449244257307660491921095367177846773238045269905397252875692404097935741637044399881516846462544454826029013943328184818406914576494182657482575147853857211334981621993579019570194299794518257892285883390012854896119161143143620150972404452653717125119175715666828797889999366358715330920860575300435367423602273850860383885401296945793336875366277617820621942559958156004650438775501959607766496784086354586221922030463030119815296577170168903735314380473646402357907360071650526008811798378300418666328868976766163760060330762940100026231893503699707955536217896190300002406883553219550846961869744055133343598101508420167208959502090563788248342695348657827074468897608456663104609955465691309530778340707489500976141826211327667923312191840543511144353636072430341397657894423038866089207779686115135628002529381100396103679158303651874670492609797830402024834080130367380407324969485923337561591528595897655209155632013238877619694223411756432036615516842303080435290942040427577178970664156020955408147749715285459987413518944561482228690437287108952679976787301373719726731550088673157018190037314989856453165320019757952698684470881973779870932050779050478308729449670578113626375700486867112586739585808567668046624781889450206683507929531449916438482464834357386892789946863092161349257844096448762856212292803425027174727013436141290655905759949883901972929549668633348688489626067160235022079212071708314609809774118860301974669392462789720276844057192434599300225191007198560735400127477362079721646424775805327525931138081814994259940483404201683282868869274525307329817799293867867435652526324446836747458161819093567274851965839982859171725571522207372095386342082999365218173843499590215757686672961057262879814498821196920220871238045709602869121013614239938050605808774044433889399430545986661203683026960355077389255799250570542437944680563969934749220587511130673454265435686531156763916238442473439849287286076365710567102890131075317603900528810680623774298907679774540818034655214783660868200053670452506921217330945377654937641908713225173030307452132042121624485353358031178131060019464495973119287763091721306002871127245427493404355488088677549537505477403481821462223848745834987434353420821274855396450095268198949693622434235329272652929189211950247584892289058152424890237736218730880588332557752155362823771102502095737632781420520342259343183812313246524920469459389041716821930256931128924199299457966241165353903439313582098435092924750040960262930083966089847571734085403990891983784822060760365868005316819032046546908573991857452696988727725762939690717069151986855733395915367625861026372767635206724883801054530418274691536193330001103892256260603627156190207646776420225478097389353123275154855648231246266872923233469027772402651605190569247086831173847856057248075415651369086892112831299511985648816049692200696102876069302122309439574203849242704475371989902498176835095684215488198669211423342307892320373719606899094491208747325516094478923068755723509687354018790418017733577747268969391134117479173387161395241044804626602423651479650018260337625797505283463924300820355919893310114269004635956234720861142100395028572742733203791896951632314264028144803391251009848712717712250472285294990284775703623986188407683163529941998159243320059032917208277788222493131055502347252176914180492325730789447960826093099115874320448816285193364879984685010030068000413711189615645447126634409637658312046015446236714305499068696565891305585833220111535269134541598652683949634919305774744071227957864963834590751216756004011727284163734889109615035145135712686486748215618654530194609164051500951811353366704732312841365033331669566277352937404143751117173609098645664546802324924557773895927545067168767328985350294997362034360389730969614725403914256159550329776916389181532568787285106460534458966164560183954387105066749301272988227352288176682794642184536315659470332049504017264148379956410474261556140967084369847025560560805960824939968861129177242185186005338327548471677952488989032363363102914685836224634749346997852346011752562147675155513093378850775029095966353814335394960526219278212191509443150763747686187459878864762014051416378423333449915445179686129035086571977519092749814079022637710871946515163628166955512670127041752954514217384690696037178293062567595368420367397280595753271228914414598320551614559267964508080748421504160287297655433265852216788757962985814290116767208586034266403767660731260926808974425434979725536096989616498345182118102094788892122390256536313916638765478609440365668796435553516117488869962971148238043070412530198556399259417577199212358173901023981462801024808509258780895807624088397704665801868395632720528163759413289424211697277678676187311411876440612703146255782610954594145150759795213060864808878358678506412431899130138439210907680720527383419846152845810180519601943752560103902190635905180142302779501038199984431294027491569920960074149747848007430794617997555431510602882861412438625729496836291878336693984400435286634962775644921717621230472657942678527460843518070799460746292720367242292513214603613860985998498050232361462055818789469863775408336208900861436823681380966597641771650435309132340116721619181690571803557661480010561957869332676654949049879514196543943079866555754307031273063712963478795388341379459608414046828734719830145385487877406203805678024812344634258506531497116936473905344326552219596140209878666164642857761491159287131161185096650229529817561910960744271688943700044256168603306977993216325059497001447025867402012988996195774685308356780198338970696064100360827677200304183819739002988988072484373174061695345283011192464088830850176467153915099745175810063161143302578620528151812385137897992090676672242097517046026857185390425448472354296867246518195398256226899622445617405046556262251942673679151522621849160700065620565372632912621112927494212441088769698507968611713904940791089392785309343950669598409903174252054530251314610179489622928455259356865020233460125792194261868150649909750430024258865934452926929676831851888295435344555853461245335849696825382589041102218978608545448508265843624640755634687609202242604087071999126986428010833698497364644674729718871038040629224819439458658188381012134084267808820374036409940848574933243486802895411037558846538208296267213958717151128025703311476092910009595427940091618238042774664259655907583990590042141479253458710378761577053158845348760208175544969627671436266891921669029204776755891134280310612883285164130909471866077265922615933624126212644024287998097081004451836343035625486193272649530059585912203416855996959523394823011284444623775591387206750828314998049156882426442451000874955454680558107501695029572514869398053133815980437948269746605047541105175676235034004634148806039680962160309538207567006627745831869462975927558276488369676921895988248019059968573516350089523337064456863492824699386652688525285903622260187893723525098378675774251603682988294624900017302049346678988623513105315991396815416685419650398773426647646167299418285223929036191086366269696461982320883379763905191024068950139275484933483611127848975000833578355939716375301764094292157334059255921755841006999950165711668807921963105867294592187788546433407787523741446736309783385590964031572572853915567024777357514832137346458941140543327417401346401043746911273863334049339116792513042349833395973412930971489731181180379212347190604583241436285858282060648675891187559467456673882340691818179226657855876750120254324152175791890631489531451103681173697174257613555990982634451203665236355061279929968247274464381393844847135197771133631942548816502405778654255163838118438973759781634125105920176331684171994026021744956331989386621874613156667382210223618337061731288366146830900095926790052681414385831260695269833010329437699488567662711053287303866558160292505626338568771706604291140902791722094528679126479157569657447351721737485756833129733979566294330003918415391914830758501836297875639703881543182914970786673072977408407861471481223227991008946282998783740682070806078272475825350494458871455654995063952815000764719146232023792366534746602465809774127311476173020195193679190187326495856074577420707179178819359605862733149484085777836278361571317377072408846323279838344090176155282319593245952282423021694627861130627824629942151247680919421536962953319088677603033079458430696716649984524460312373190034911525384903648608820511448363349805746557845946724930937310343895566695993556946730820445225414742073736205979831400268614542180460245082759588416290155441670195770366850765465437332801901438914057421273538712120631774112827999686964084398913868413095587261471282877404871472330198971882444532022587753763375936096253547095474353138067395819989771650499830510009753613294414621359609974271995656747079582133780246530591370498509418187234055344434299574434792789479198003316568240353750956053905703539920693645938150663367764082328052744612568771477109103041992052422997065956558347304566144383281111606109964889933222386730003517699438268091325341933387713078169695674224027198864782877332606282749613255962796608355092152075520423750076214774171211873677056775460956308877440398896184842719410457136379788156161954773763869457296143956703054766962082324865906820038486104449771445286815628086985909854476876609988949814299548368417591558628378458911698791741892356763399975344203320735606064054806147184286307194118169201633174076554146100712494301890063775730047604224162654642532764884467989176082087777851811039961152931875699968580592911551548474958492951542746165742535465170582966821087725483961249225412842822187179381868024992009711693547992775300020397229931152534098486965137780015936336979961136932106294605393452029879923343125608370117330266757108292834536194035345402628795079653289598534165438767334063267960649980945513722526192762499583383830425363251164318671375916887001311182333271590331482169536181528893488552098248752695988257351732833462230464026434302232187693782941675301011381614147945965638230485622705026463170651561122895102791438853340664908368271778661501897954932624916105453614701167895169933441746501215772508972185538993822666911319572205332232203160018362177903961037207251972046732150303963509832383465211436178094022812380049358595900346678032070082552594028683766413190691113460259857452858033040643005201049185961387712397935122952837097115297970027333673645099970673990524192587271189058270333911307842453849933614957302077107490793928818710459035793857650113713539386410324805389953396500989562242545722877656303437521161537982804455331787364740649621985448347115997524907227117792919583369571997809551243937643880250782057811798866569618996087095697882982763479023018272185400333661492103919242660029862528506699961997399216417895907329558300554267212543116621114207441995408756461119066933184502162638230274654237911472280267256063809232776660711084938484438550564377510299694979523418907964219778588776973331247190832363855225608368146003707629453402511330682879548057252188420262726230549630211368652018276613916127126426969716527149428400183306217722344902171975236671330727435395526296883456138386950238627289612146938123826346690551685761364968866545322600662564056827474749607754043712706240228109120250570891619756351841189475557992815345293391863095906340037241621049518139422005294593482560339381462444331814565800815560657158468092071051103258189321499431296380091941451286333183915307995946013593415405297005773009869460798687030400554660545390319077046168075236539229347837279816807882386937440205575527777433020632499090050317341654955681065140578051606590131867249709854316791373637711513472954246685905575153678910344925618163073423197292181738667609777297225569203595570842462930459590767597755510005202870350496079635523135252721112909603016533500987356681821826845123896691149485368744742350454118563025657087452406684966764008926552517542408771014070059584057170998014115734267173952769354330067236824350660059023807378527972419296469204546874285348450590054173947374933852490367025730611668672745943254211128663555657237396581619746328994332703185651859913892818553596996350213735903454857877883615170933837404363185762348666766530086459639310894750759180801871367372913779993818546295793315839606569398575081599958616063354367506032265006658479193637277408545307987770167376626981588695410205850523655865943159303075911614624350221477204650628464832529597487327376953488939527396676667610367455365996171053116891838390309396755617265483106408317912552254984446969505806728227092507999344313815252837676167488435520175163227588932041599136309803247398129824200768924366069187064994482928382324937493617424050052132538252359539686598648952890348818234464039183901443935587050927253406132263603053412744321908898003265136039430517383306713702457524073908592566847240909402607042648473299082895090408468333524638351565551808253918499017147626247032039261641512443879582742195452273949163081362938094362097836667947020475653832303647164510866549736322225327013629188414964722132501423430277902826655075310663726584224155287927835308936543032740802211102347223719498249579280501912583233252108309398682054435390382536813203556217182889460471391015125107358282494460306869643321638038419985470473935883178126896564240037495717043441866459136993380186961038717269504637688598668324245870846973626295674071425148702738372443029989982902022120701367757382518164687849240698295354452859687546261140698329109003660685424355568250431670289661043129673572026529792034792086919399812844873962379453156959102302761219164097408228919638836400651309234942823374410456722029448708483530964493720522747202186591719581668837684990479782581070776375355785588362850464843288836474497737372203614853912880881674037363628834302639937463888525896755087233493352194040302278130867519250566064424195533832090226844770610638043430599583831691506745234681092606856885046775771461947490175740338650991783088212193280684404189911157449416471645651662155072247113450800910976748587174684959483468898387158377926477658297638237369254456566614445850829290486210379652505934130612793812398275724255192835422608751327601242871409658753935289359545232424162978661727696757852026525762237156151198547853755508826300039752498877880350812528860432891034929917924678012556936589125529335878259627504655478194523274459792561470870974289654172030327160825956145796742826622745836778459451730827217636867017758240382278695534580244384921829547175327500123201481765371087421785457603038591926120451656782347720662762090463884637591068082891538207577473860136529554811263802201537249124098247758606433007932706109424914094230959633702334199180031991499428701117630020704787237257986985189455748852965427126977671121355054041694336795330701203197686300943719965810507088499604842591375706742729919445919525876530810502090683071007357256773152930234671953645432498414850296251980301736677603169452981671809005928995759942971421239345715507706880610433762169339539266532811724391611728051767198063197951071597079059016894695457143360087634460321926916216004957054751021289542720868323708848438668569017224802669870346954962002501968737392904997964505566544403398720543314240270789663430023802932956945125495140780427909968073011689282384797929240148791621142873564931997845779324172731359310506102850481274113974769345646976447029799562530056744017806449152664219364397380700539956714446295330813969339177288953287723829180273704113639005100208584320319424569073062115796783106360874966849001044464468044508085173199316466498594161596238258058869162998381554912891490659702965739636025856943195208593694962775601803111537312336630877375601368373219352495782349788669109700805887871359635691107448751899347258390755844480872022924081761537332510377940577258847994695253727645865130212079346608122389873233292492085980091121744020881992902802927698035734245918102146314206786569860811446889195984240202921850257020434582053470722701390698147457689917370887664154944789105848434004830744280436659760757254353974567494882132954539798719102016696740861106776287079876825769372352163446624049282496855644957595002075056200752917953636778027177247925486951370605309512850731838256284231514529415478712214663317506935770414884376832525072565763824066125808195135253568047112797685498290432879609838456106840718608268492896291200852571035106405432840167736940573979952251317405604415543151366220719073324483938196003718193229983248512337362220783206701937392610328950754352786929290145660941641614733058655697286890608841234375015028990466187937541203837243384230817312713902409014543620666859461531649147119075391838934069481640145605448888649387773707487004815352134779954429368021814661504861865730958210991881103078102961908961262856272206366413960688486776106176356998814802113544885948907204052366900626661139311578552667099018253870440560858613329641291234118544804880151338856538144255565928548666020910040163900892962198093317889862460550364441701434754356558916841983882623720879523500832260038142399252264810396142531384865205850121735456191183094396272146713867633950221333471529204252911999903398059627823621086098281600600731120684477975939024658043918528527236691861506402256533668574284231019154825937778755507973400377399786691942522045637220880117849544773469337686177651618037914647768367231444116043987800132607298287771991209823337888682539021272414881100320040188697852096667756183575952613395626997438841391392178658837705488986752210086821380778693013653005573874475010960728056060208984307598000986366102798596198255222271650159693528689560003828852071573772431641264890968815110129673853841008885620362009736746912911754238318018627835579301459343584674972938477710283284880977182723716747406310354264297222421981299304094791935241175442774058232806628082547554784986200438245799546480051510941368547142447310435947690405556235581291688438200188092567776462478354158574761908875509345436570974454225592001764974750157192056812122018504052290465055560111601700400523583223667024132578878767789414746880535828243580350216631570282335294798539555959151971307004415596324649200903675348443050904306730950585308270732431361735527849534605420218946281686569199499033141976716229845343678672339906294159214281908101846596664280611078861146276910276496813999804498393800849780613697868731937359822928689832901672318758072116285447712921094538304693015827680156603466784715691685257787969684847812531014521391325185764789675181424650708863892362878886003686294478217778321249544140850327144581910073197323604561978534890937698847053571563946444374618365691574051266766455899432975094642308807404383735511147627937038533689199662114855280558589719133402683409757805872393055688337207576138414566602522976926562705808348895132058996103615071667928536787668105763223365571026909976318507641307142556753439962772390369607323635582297794454101337177031646168779283540524043507729527867039119250178266261241170231215325136331907826603376710650571399031835111865360059958743714117908533425898042608397698154641969782850482937516530195995816397554702552128222454532509197227892680931861780295759967510426228030619380003275434652741937111235563875730260563929513788019048509838775920683723520628837184073306582520516803753110950250452055519542250450130924858883037977182823291056042782958701377440839518505892739814189404269713048009303005522219005326474192739552882616084102819501232577736205479309272120688334870262296926672708154726856666111795108202590683930762915895675531462868559654707647219366863971684210450655461791988633040422766196159673915756538914525287202291736343257722186217885445426294407418539674840289640972074121602554795937504128097358988478402331305435742053759215249480085789479404453960150159433887305597423455900423958603062313954445073770642292487492920231963113930323895294255279691081895050716037693584109390981970914605244131688641773869757124999287920120639155837681009578728644823477412374798810170962457110147271987835441356253678876208800050631883403089803731854853896085069733262352684066769973514493447087813663807816275521908616433666625770003877214337916178058900777890047861224573145419693683809429203839478927548158347963793343319669713541489757647399520788861486727292417770353572850295879232249522978844455676612854456495798042414415268913516804001530985599976409727309277852149338335565317970660842941597211557044873706490874284843087716349557104973471195731992301491511060966371978201438695190907715651406307960572165262344663998854682504596049855001673277925303539653381974761134697941724062180911794763389670220304103686415850580489238813870872484854176988112986909934642304125979382285730970816319163613447582699087631780332998701288767654706190157622847718567655337635996102870598140854613405732437063311634965864471572964052906776334613711824401079911584714123062870315425182421960503832432825745855324349557875074759048570402274724829539990580818127275019038390752773784380510245698085349350502448002889077348417991965546836964119370088958461070302419385604226026048076671572130816588099033359650055516353002868544866236352491314256418496856382642174967897734397253551101001471698277659584943630354182582084427265579880341762476524085864953440518780620747292271661152330400562232015602416241169247895664389395856689795273801853495006357713544610310989387812768446021180529017832810179969050794451680817610770528345426190542339682211923493701682980271932679173774613099062406682798293147230619223545128217687367999534644878744974432972867040702279991321697581444534791266520300067272910249523117517773705459855919393913877822689279090775529604482789341642935315125030171755304598472173793413078034777700058515349145890354738786612777019704147669607299650767997973643405531732742861637123465921058677852754577069881290542348935242939935320996476666241959744634923263791355454860491866305339358374401625819471157560104897718436374196293706726959903914398184442750872549142919065570169440567133382706343073413148186693851679756072116909502868750248806630393411137920889815953322924531777308281710393433808954832995555065668161334953233431471709823879009210322864003290645640340585325397701166178508091646633328958370023608023033990292484881746058929511604125867520148000235853541644554338265838308560835378441047219838479609778378505595067550740287914488209485660374840859358088801153134016334877551418133799695861127317407928005948134866920320019347941315547474021696637779464591396315054523599568517836813004111062184490885452462749851308398522852721873754335190781835427738621181978622815792701853859839713230017904651201295825178935292304055192804888882118852836685054536865621164928775094818190437208417702398479249834627153396783119278533018454312498441320973527769386820248783886359994831855139949872002400639702808699062981860818399068668506597888286414257844945210027920918345050699604470030845344298076146053920546871661208447700273096983013209178882494175731965174948443287874723990970429342272483430465952772735718034740592409101750411788705117058079392137339554174867856731190366060514427204924769792451139570033041676212070604260710192312289924141010576589063762381064055443572389614753389487610745084786711930513983093588196626805689716363576319233808341721980448649764929128603537427336090492773058045576598067606909743036033201215212487002487445791738471694366594767018749432185841844959188753919922545916481124219276818559065515585022018468905461087338836077526310375935809888635693535654327227031569441485489204191949968363315069766882914338251355802874927912296229959544848766910563835263540637182369649304357166880978043157789082434561613663778996212518450973979429789347958862354426971209622183716797335226444347095173004256115408674788785275773144456697192973537086719046538162121313346189464353649288234767318145971798471204531481221746037416237066191980622082293329577413971287519269196453010049918995048975997649384947562884044188504919041106965118302552848909377823586183424239374435848682534574111898749447698589977890069794300262466727897568520067443127931385230695641203765199261475322435974408927350778445531270667959682514892837373760152217036256772251984533777497368899503245972017781643535639787422879237688636364201663464960095104916014518143432283589553406137043869517302465258492377223254075291658382404216308990539755365703264854710905150791153925645105692690415489852188487305464411078862468083080965375950436927700387040434620635276347310548689560406241785429528197614014809225423789942105400343910150719117516447943258421879940670577199756404478875944674080457202023936578808492877258647774964488311314642138191122954990918649392813617057237207052409781772778397591725569476097897483684246480658843707176366972565357717824713749352254488459119653978422447918130177428761249853146931926244525689783301453208718635863794362020605538226229131309824036412260657859589348973952083428052644574526971163768679918320182812089671849610002187780903789549518015920861480218895840316078615264973994260080912027844711155241062500313041998876493522983940408299166542024776985623578625086144749173878510854003856533300547720693125765987919239623861195597992497357272175219088219928159582018342645903797271494367721275167790132663762005044487232447276498411984932803687299744204221584897727468690990015824506019810796916232460787495900830380491773593963339093685652466093989316531773945230474768580572880374785679706248244846163294328204395186055454445317907077192518596699249236258147853317209606609156428806181248260365548235796035627233347574281978906512194552168419608996254119154339586826876218779368474194834209670140942121495637398896639417979142601284114662139985149717210239543372016538397377529029774753579281545314026323915437027264134674906929464418084798207851064738882806694402568638036017536355435142103751034292757387840950400659983337591482119232443598019529816605976168126657400011082807534907911064943873513378350175540370526988433523593189482883147431418862998068166219436368328438176309242230238066818375110495708928866049718016531310401921709036306104293429095149668357811674070506839332623258558984837874805788823325361996682378934678682721586782235273025205438574839738618059723276840982669322231151117052984327012088820862038447353971884464641809521464337101587454736854701038008705842255381331962585971640921158130510633850137642027413081426287247001618983865896718047292930665619046422869700556974365133307799509364792022906666730470387444128839300082571477710699672084999694312242398191236241565184186273778721379510027297406135187707799501174632469204580737201454867212362599481331950525080680226389471116506682056252250655500696200194597321550865361388631519415082583722630963413620260783583461118857211986228491424432042330452363766901295649270667822978975070311424524816013607949846434996260629607307628638600210454716130693110045627748799272437947611907785887648149694745044128462113522079691815699419038811816516820782740536014753458880036606483301175365354870341691236347545554643160904578502921087933406764067683007526094843278861556334875906709508602508200592898144603237714410216376550956314965302302097757466638310858496148260752047783678255074483833083568146010434658207701513585596145505559950744125574664892254367948473324646988574314344047494216783529176961320423968150843578194687353286446764556232110544736277911705406985415029167402714173082268300162898202422121488774250019846079688081578071012863908336784848336175806694207546724809023765468645540502664186194499417706834765612404657969424676394472534753670684904409046936788477685174917076909887508620619063830546144515775781686363009859373514973685604701795351758343116845239015493653894821613567134885816951037056363452546205987765034663555179452419168615861346997536905656781048456293981164876958228546655357761123282683817601987826327672712729389503652004428397705758046495529572043499356749642132488161116728155231406090462192975293795796914755707669513005708929565203946741054889269665164516593485090982874966727907670128224674467155227421941676788163823846984598178105546610368943329906993119581438629381074305992071838233763330623230386871328663072137031171442299001510006060860006087499697611437481482297379453812472905295120163673247013047332897945393622769088193020670494951715304247724042068938681718742955525514167131937852291767186485806861204324975538478063192260818196160487543235696849013317227553254852378214281390015110444133012743231702261133741588741860496234292383579187053693450538847742404024030597953556236092717960858597165296062514978237089827505109974164858704235424041141838311392226920859939377791664025395075905983302419410662628366721283056879115494157660868767105702973391277603537771044379173167107036987261547925594259919729712887091622762984401348991035176855991197231572374694865755951376951955335095487760835864803117421568256365719678498342678562605262739976844969377950461045958079504178109909816009497639388236121859797930944152409171143063475013263104688738537217152390440083390091777218626584125871148802443325383264779154131303077390336167910040754390197860015866132563166664852210601476272458126972361764146171226374753835522063650262066594117715600389018186051547037898040479916638787075523505580531982831000478508765541487579882468269820000245729306106909211056057546373753403547266157430043376812063928990890560788354075683274906161221405330502264003643840018109740915298383392637631030965967460211446192612792908802010414112439661294809310027830835648757011387631445148754069488553733609734694324033721217228568610288183170185667726426538325215079954795866626297136451408530011017950901934523764427031872413140322357683093434761895991625991932311704405742404047328895622905069713967478303611267839578515031255683350452792791681889806833532225310471870295585822136530172285765300654142935887105018519363557866053358106976575906508924853532299760105659134709030870751800691045709050444539210143376725768442802327985412813366725577538966767587340873805318536781655958517123689873989645807662001557160142699014327678279465843714299023009538320308790815249576545875419025506671264177474674326418288636523725327731862371415374681285102459539772633025814717272185099886467412336216697209569908757611015352526333443846997439020419755473386544662158377949938261764164395592317663646479756166266365843715642798791926748003941625007774698169481670750254882609415699780157038904701635783203803369362198834773317849480156195916053256513725711406174039741511500831652442063973061142559479292543125418324986605480006569346242464125112374556573902191811698772296979319551300683333702470751711006711758717921901630727985267488828239119849400696453300458742815447766943380002941511470413207722851788028384713628656268641069731567229941341386655273047704201069140885881108887135364168009533618500537952782950836741758690175339504786449834783536152230737260466121526670233101716735093461944661974784092353291018373788893525383209016879408213193199430334874306696545536632638120821720274186545674315676800017540087778599221391309354760944725005465747236893835831314213392675000434623796701123705358403754921400493901015077690443541398378431589861311086758237633221534576718226297316281488674937358456893314140057504538133018948832564979630856009520147946551777087220103016197992730719635862242737203728317762620917598773727419461948960243798463872513043717289710468975563821372700703777907444764919878215963217381053395264987772292470055885562923244078006515439865396133758614519435321643186980098590144539882763639756446781026803980605222591768701264017523624527089160686690206597846951060847936299885343815531885338445204097391226679884078114286159037111285332080156882894324259366848338143253789673438019618920865129770176358524248659115090463443504927710932801680604068459100158441843299321124192610004453088157160352277084098168438822708586160258127460818916326636292187610315686268666576981683481935285025726505705993120069734704151093118054603269156759743669560826176338398065980636862327868274891662516587424068870378203016671827901136314102227366801666116372654016238642009919151089620863788719841000913880414308280884321946036528633983835797679961739488272021418068748791026978549221620465094877753684851690336106822881265664945342141410208800022351311494062618027909168225223903544197109693776700965482500020767148441302746528345678770269310852593367962719507409829526509862407260740646229191026053230993712252650385648352086648621005742023818855898845585868701250554667110158290341256468079041828693371177445029722301912651265994052539364532428282570653207308362061952148241559532109143718838714472271779255124486038044986154123042815679424812694338849926401288494901749166539947202348355576640164682687071712140699058245699861962261217541609036918652958402052665630168517601295547576586151487366097502096944302655446127610891438501624350794906308271556438405439143470404167039669170767696380625181818752332582818835574146519968990715133639543674671015997472124707636818588263905486622302260072151055890312452909051941433666537476374491608790214988572956462442440640239960970658773471685371818354072239023578380064048046230148419685870465101550492545361512756820041838740170501865020548200787400681804062575989018439066419513898188422141356054645213372163516765202668326469307559221735854214003351160768050469026009157607575579279062213755015469961181846441881393401470626366761249686017024022399806891016695941730153241436303783562106506716817424770275756569579934722272466963932741135318262697261402464831746646962855525337866231775464493191044202185610888467934190945139684290595389124516712779682205290839251076981627688695420900342025175078504544735787987198106527683573091716951948525880432209364292103579223770851918411551953905032927823384408040127283445958625756133742545572880197929145976262226063430485902732650201161060600413054447559485624950138124024293380286056478978047277486387850398180257280606485962752614648968229444508258794171144109802217322839783489010903213741286740310610302116787893251302800313316235455708279581379633366997740716900626151292298417263714035381966604028150627791013975637860040836865262474561920611648367786817440550710439740001887876872706535769256761111298715448132070616096994068070299310115296537099665091627256534542773054214376929598509414949732009059526629528717279735234163459639586681323499516520770680444995664986677632419314428943717798839087510772031518972295609854154993833692345881097596804449980872378342958780923838238277024169713481150333680837096969477011825294165000605958232318395254951741436480123798633433861881121769633294546943223617265725255386696998756138099915713389350615652339404220821164480158252747137712443132171681107251326018801521607470434196916969863184054339515489491052155440528377168904777726463907632799188870505079553246535020071481350136277042859665963225873260352073017427941756567420501864591132988148847882052778355381018434482284680043999787052936826887370917731085443078194945012108986031965022478493856478711733243614551791410500129240497641313339115737071584719536814128236271490016555610975582212934657532519785420463567443343588430260375553779621082933649830414619761423216290326808540852267096995437549017673960490383781865198232694053022131370635259146278134814642701720424597274780884660443399149974477019159584999819851053883347134576459973270605569168639493126423505290881285566288734546261211681572096960609148696143751702229608476308496360975183348169533267884670873202383981893770942008793978906666531610687278165447030728574990394942264965158674412818962221017440479056820433226169013703095646295748287212731686210343753584339995196554390251688238408798641208772488233048778513810221893222375387451610014093017007101310993369090866968465671689113685295019423257252110280555986994911358515676720266958556545059858705707691510183280211583698460775627432395251729025306771508237094085146506590739261411862761223304847647946323738552643690606769386005830257514947354307625523196922577259367399497595485504130000882084556158448997487193809349828095049953059785167936453171901392212623395932072168701605323667830141504082488831746316365626460326924980233088070948831853349077470143754758528803242367505905683705690947514431044410544143494418557809863725185403389005435363954052097037665078286154305063984182710689218649566072397041793808249042313965721840991640650716658694943188556753474023992204523591430176844689264270796483762224084483782402355665327640432370308970844971816719676828611093149879445091393482968455044253668532234175275102650268026593299722832400302875710854529547908124602234328326651623107925614916787502259445467767524601300386945006643309692938114006478746502473986765688634366426718103717282372651495783835971225516709550928875466777168460972856137293846857098623105713184811960478782724039705325285157485128413885434320121415406320505745760994208204888914787138312425631709098136385790489446485992342621917887552879060106419224085622968802576738976324207247342600555604494844162243997645258030535822245014185245284428079365238638274119823352179961310289815426952941337099183044463372385787775805957295015025156382759751294321824694264796103722441257893887512539233720140405714198665412553852212537957649878333366459424770676808655325619981703742182195814377639619840648890061483223753595643828957670634946094588502306332862200304761931789482140348006290607244187603849101670404322727791749141137770002959094066376844849576274749140274230281289410171208378028091337839805444014822850236474121577882664661698528035303986008939666343154563926037240300538928145289817548099987495633700128403004704438401036360692878072314717747281563727343614999038354368206782176867133236346002076748688076219563855877848562270484370413133702739270583027276871769690822942627078888939364339518840405365964336473380073210299664869344440981625574959861056994594278457589654831389360672277421187636406842467597348331602379892065587553756796036991025311153633760244596815049547652254188588189143161396680350211497367664285007590671046390792220817447513615954753227962746441648568517293965123300636831814052841725146705947177104718968077545242145408916206507465170974162515566422276882721822400785628353033922573416620059785157756878186316786860161615838033252782024724287942894913732927574836075328985913137912646749395183673700690928018115340645359124973091961879248762989880091129985087090748399474720671003060470271084092919243948936735533233974654760494286649629081393705534826565362731403112797282984811108065956305220648346493036446461766838155959916400990753624786863071348084385717094895233794524759591613895985372671823857312439601195272322116824297890056694689757624669257539234896209743654274689548632236106844761344063192248124149839925158952034703349747623214596133111446286582528656227503751012356394152097416865338126448374937690813740732469963820107087538621782181104453929902362474440614088946022202032632817234552447481587771661011605181412119755789861034790736127354615281551000257412149935550890820726869321150891611563542902594391539945354171940870869041490294133725808579236446653195864291679728957430119317651325667729884687854661078707677390193520937085784820553965217250675587086435915567242849672868364320146171121599118942751953904831815916182434440963173332651517499354486596766470097597072427451653569366202688142894847881271797397227899152255586973809728287070694358102891735018954731492905023898221314296345998170371386903167258504267352764574537042640115244375774275271434529594247353375056671901259379423032257844601415727392506569093564012130133963112227753089629811754965181425480763241183247141983328559990059766513176577816194194852338833085533130329283825048078598318961739958183639312819511155977078942147464403047003147378931307605245316456220781563158976503973537460602612760704103081892474230530391672829416289907280393629009465499706522889206106477844142705397623439301550524893932215071594414520431064323871307401537761916995299172142935452826423322409974016832946610516411892065276802214317751709888691490679509714061223078762782597091684848143498681623033323259159638752520127798975401414053835751270899164708726223130354509229502487419373342458903186495531880950497846914431922144446126276231254348330225197037730453259666833594539722203974487924527241093041715962209636874074602915829847469220814052340315909658417192682563913224280262833542793007494184832150090733983169333121420127684257146326043309182285559870876523074450884050188298774652805602002804818537461304364211147753953192096136334618884504918367965155232280763415123758437296940931356380739314357277917622141071912619673624341181845977945700155156869920008342986868912723648248888501139871564777312247085482399993151576864287649804097509105667726194153644069083822137647610762073586769869639538590426684459184814657636477840002192131398666259005702560866266564578472767694282154049463101904622751574376711652675612430876351320413511972659241701873270015179971658668188858783950515015398428291435960675635856125170263683901964514371987526202592455133807061960805213216505474425602458712436193795079067419082343928462543452478582180278384613340343071693616799897206595980715019936542252810233556268498004917082381294328070867119753066217875692296560761418082158589435668532761858311720648904322256470096444420964610596945502952179476932286131871967458945941651882159611150677951793509956648421683436304644023653844010941828009157980865347526539084734036751705518581763192132414054260830248497615798178100492068972634526502473847076365093293485670717575244884798638459366243498727619444892677684938901363420487223475971148648307418053211910815786510893702740773783467033511120270172220810176576586926038886863791910020638566053595633168985648995011656952884137248649825070930063227089711375364101223928359504493473369506063303070200779765778701421945776596402517714223392396431724535722590236810581611428779808241956509648114102855124331059245677218070945792395425447736145020512275549946443016423402214553134492454638931634100952625513696734866145254851864574313360924598968311254994896845292758690261280648602330239708472599060094036424669888828830843877152265376440498844562815868426534373416948268719316395526283343081072338863241406131860173681965307187236642326479056143734436267115139387437214698739596859384828938456708028154397988797991982844148388630523921402835197434790815560442674278812930261155616801245652035841402815551697534908487487917245567074970054603831589136656161100424856974925269029583855542689350088019681105580788772469520822329896756602063755918898337947784871695728275260658963449269877392467451528791084225174657425553769325574086369246222737168211332057233769990713112256197502505647041312921486010796952487946089283686427794620777990312154121800336161880404743124779419953691392140186497021258886461675692220926020502021126111158056152502788165959651678390569034044516443908261246767716835710707407685247288270352993761634499533309975381007956314021608518255531923348928501642793407867469264676856641405519525672903621859499737054627398516360652292228003253365376741327266528949114715081397462322675489733447292261813699633153235168176428600349227134832628873676265031174647187256818259739598995004932145722179585301179756445277023137478308162980493641260318746712446010883480402743061321228677383578347535670902060491926534202152349609692777638163786092160660878906177977370985708016110311725779278137634911998560097764095823256314648481064511407558047261159114694652172120821931672385886415566779473995176422009094589579280288529783580599516445738462295649796652275933583547179635534825512316517251335193592860923445357117738778758628829585661950202221295467843794815795909003290281764327386659739835895131742070427942822396841478651888856073615989510573070608652031675092404570873679452899948035506504209874019221664568991781441490772233287463902944603095253617885664209373732135065000539522432894903498589837285647863082644166067414725503963922823573532725452074494386696971739614626881131829874338318092810253822883722804112130721341304179063803995727551615868197569436892731696902722993386669680516061977177659426143837442263900338884431376076209868174909107061598248433847153879843980017424865291216214820740382149949134445895834943596458977957661165976658777687098698059217645064581578880569487459353480043526084703409685962733695495782079148566202328897769509898516760867293169750530731577289709233311076208467279714495410282369906282207910970717852789050204556649171329228967739734977163452551410569950071126189612501504104809436126744794725546093916813730940365389519250739648970241924329285863234225315835300534037033316843018852787101687666163892286799589717827658472941642830361340188972927279900247058939951780420193351431022372620393938874550951773603762654715054705395581573588441991603451107477458526988987559417724708663452678522147125522427081824744361065021405553650790979076993866300329175095534016605888722908671362793217613352625244129744462727783428223900102566764697274689733483793773326213751917638233891253817570877906385435073087832087870727050099315018746730588818055986000905278035760881738656248844723773181643305632237838860866518109346436880153999123894721991559993214799725731373003613331706321242929716538719545474316029526582356584332094643286534462891939606966928210643712415661197804196033558593503813168830893318908596306472353717631922163587846108516320171231576155768058962031017113278020660445043664738027258269021728944952628262413409415138385379236232405064343127608789398067825273764575294244018303478820793393227173987095172377194911837329288819930566992938399894276568010257726978795159750690155650639908229976417909808329338774579971309122176804427150920988785637558029801102982707316755162042288222573147429179579956455458885799416040775465584094653103450785307443650201126841911618952632999698939217660436034439852014117795741473978307871477157519608274526729145705859738460422919177881230828689385018075292108351272817204491111236195578505312213308796666380188120823989823279087650015878771596247270589385062011239048826963610238937745378188493908926812229780812213569141710195233625077220540206091452012194406393784776416730707159369368878227513814739145504830106603569262556065906552211479944433987843351080477585053202760686909192892294048883768562307242169533978108097980448624035080940217470083987236084349299066263688016870524346804122161703594221739358601277273098554093561833112472082377179074869295722071231184957335141363302556034172892670223744192614588238965217878017224758353112302361493439265269862482825907133393878233092158171646866476659057560308878088855965343277731138858120739207284807943975538860079440053926410247813226259384410842683668406437680837579711724695866915303516744629245786555401559527925621596514753561001462779794030697500748573855225242524517113694039900052981102258771253068318334678602489823409760569672489757220753145018974686979123067769709745619016255826693271035654369202333777623402687793413400195694061565561533900587195495199175425001212111717132261108951456933208058157003830639349676098358744960978025065246857881302275651473552307491318334219650664759425595754302034578912529704218148664855014282111022437342518956860901177855696551836350348573650216722933117600706107631305476475617724196796811257253052077572477284572338754195942209815731564099741046651440697871364661060049653028583196660118971459534180135289336261194860710396094865745000842821894871369516603022009596479485155643829453751655975107537439526581932927585117564301819089220500967674196756567939449437594954097238104381329401416834198907240093324459854765765689722652056501495418209941327787292605627943398171600312116684438616318909907694941368289660991949085800426268029466046578470029604766670071882709301626822988558410352786280056637558093787643902400451190851808241384244681622116571536804507075401449343377341034449059808842126027019424119357445855578370978652906085737786615693389808481157669622327619539885414307445802657796966820339199863344765891457057958099934508443179234357069410655848850310603168932288696440356103408535577275080616719637875835703768891073648646460592785601296370662089471006846116822924016539811591368420472754577517891852226833513361784802090042512376689597784329377086770714906102578884865487770141926346639474449722474062458872734861830966495777392484149488012070149057903852063168066194228519541164269347309211629208779283081846434627089487377167658839175239790163487795219701153264481646376883588784556499876387076724215807125690440838790956970633099212895957205902344423648415282109758015468747189049113516873762971724466709081621730336686248566419608183900373724697020348313173582254386496221442139705475081303575947480528951423550088973739321627132697079618376969067530059154736299879140986914572704248609441435727718168736105577355308498681365063404405448452937220525382135153884621236517469662805306979541811005704508629350774496969065090812419582952866772055562184061912419408892943204187087151437255628750199682864235386674048047924280005062302883971449300701955467154282035551049490466697165115111487265877740017549695542334161353948624554591700094132339619597540445332714322648430636160510448990699076305381560212259520405714160192294301170043633561740044210187849223600680335372641412374332190006082277491381208728017129950555292137817320967132531872946372621207331970826669597587228962731876659187730080892392350473451108392676572132556257707219618840982634067791499525625438107486120939967317281515380452912464337292062184124231689569984508792304867020612053800374813806070977857966780314519314437062217957018253275788402091747308502206892859575182081759003589860363684496802368007350600695313662911852321725460117701059197116106955708016717946034756122734594540546927747059100918064297746545591415107839589303702446090965952511584069012607089881080422711506078092142782262982626626404978255878790212588628158911859670178138203669016444045840669992824563506427644818251465102563004259108138177274573067793155739795347759145241054832708342000332846538405699867551705674666917736677352686427778203466833908846596888123843815419598964533609356819997381586767812477670239860171760859869987662663729951417505511434648920689202924712532237628628693319766883784370089494272657793483408850545946014115015131908796288743925680801775734469274576687003173111816829570578970732149419626617358091438808569325809399580577841840190084379410412574178580382740430144391330677013343578130537186110401463901422567015480384333869713840223564461180173510817710600451776485015338058269946006778606487145241291519425044338369089302007440721761689648145760185755291474183104873800811425384867736824333056785737655371239604876037330128515723123178871434544438064813002629987608021963440213069712044135312000458619256764455849120237881508725562839634065668189950163989354463427479503181225083230280284145187082910614677416470513693613455731037929594770964400405509556371102099324293536046160428477887461749036159446277599433701269065011624703894490794485143004753980281270698468787932246837639364974740954287083603636898542935173530181001163936906880211630820371098404740279804553714005772731120605188172100274519126046968562337759362987241233612819642999203215207772902970194991859924723176689705498402161611779825929225356822395737556017653777076803500999689118670956283857798995212737359231126209027076879311272758390232766289310715848004101324823621499456887184473123330900542309514167745411813513693276635813667821278199489533049241984214854633601680047876100878859924888132646648691717260148295897745020782252863032739210627711846132459868172860936305417415401404643720686512676174419486476222611383146884098625273306213810129804344848676896794484334452195245461349616129144539782933840751414759746624809758282836651087163460126753200244847239813395522676268746658653009657368408612055396363054702651632520274689680345323817051834079921875400827227480481138822780998356208109074388686822668289274888526191080392710337707790811567912761756726943476937936330345105921105179812294605208842170723852795704169343152544792025036130956989976972131918449325121643831357497614375620025709563272019287357479379174360580418026098015410303017415592289218675752218988493817025687922533983196375272779432228904714534620128147664498592576521785292572631586173057689440493742931984434168337567194800493089757746546182550102440941795877626048415525351722830153604245945560777485669447606822530859175267623176614683185441528173234327313182740934064043604888502721833288409662670227456391774916337779651013188427225191580862393357557226246277603031302915456886758440904870052349193288767246032876703827626436092727087325600845883139134360598496784488816243074343556848615993301494690946541286241000957102062330306208005281792381585045078955165077293064328159181778744622593777690810455301215054962412718231841064537290773978953382814335448945294455131280123136164762821269967506041530287266468107216234807950729489857565207653237739414936109580770959180906532624744647822977981608847062118422756179055010339344983014862264833918102498085910092492958718865502580723214023499632805149518635503241979695917096937345002732397648295295396027258754518407195992254182817455176121982966862239473801721427053752380721026584105877697209165708788718153170496797853663314139341798966994852297641415900798674034097599173230176918529920548995969559834084457477052093908051958025481898006427290712325917492874390279985201249231764764906788827935557382477061464869980528058746516503134290543970834923307248389606817687734424593894376908828438202464332527655126708245072972743622405022680416762577783883429611714721034608301249142277191524102557116382172851949476736465662737911184229339470491400130243332593714029129423520163888473813045512879504284642681469711405183924515757815392847450525051601460901401987478838646791633540099268976053249412794540311734762152186727648538738916272336019743584645802830435477329218771962560748229106637435124949017335981131431266843132207736007704764512151883809627242237845867700283208015451530926330770933996528056936466464902052122541960439737716735717508601606852124697864825703386577746609934924748489386101167618610561302478312203116488107332694264428349832425525402751781742730785090794716270450856044728897709032423238822736883689589364176128802740833034786018727011771710675756351189274359739128620381027416240776324149722898215346373682362530952070159838448153624704453128592389589214994051965327132618362446144084498539437539634649190090270780820905883226660760816137358707793587524922430041819800558338933707796894433825036375902099282333375789192769102575092918361091098047245382029693202545476211732649908789564118459509150598560514573593598058152087857177363494056794039235552115053211527584733645491323873260787572371608982220742091443016150043825913670037767670103894124634819841870566874184423115292140942468066257420013068929267198799532165710735128411902897318247594146363157392917138411309996869074068383452754974365587228334016753156622324591701439581769080188194673891655493516910879275111806359920663054700444150740417018378794566752170789317283944764670006415070326951501333410376992802194257132458683796606445109590223674870007690551952424101562110924111873255355351918734458115141627868520624395722117220650523602035277342869879373260325014293414809685881234552815360761606358271304640215785984716309331439669356659139667195309237436202656783497672372944452395845530159208582056263622677058766615517557568852493985887109081839306464901997912663073485483633654288930718703632689681409445225191971859271028657844558442381691990838790414057323567730745739054706212201426056342832361226776945328379753761105410352171506568628851927515613126557391416308298867744240435036584346316171325568585072931543283287911334925030439629047544112614486558277719927788613595011370935842633257833693828424624169159410019791424616992621232932254263300965467079705706684549571872914841672280998253897157348500324349074024698147061003903808282628038591493531355022170949733184494158419910982906080566229011215656697344220377950309041566446186063078193639612410709193291603445432781780557946151107179689506727849325072465329121479139978802213314229490039156624054136059643397625204539063435445076810302230463244814718731153848426587988675582802007022401576127378316569736782435099701240259878784826103551532739255187413735936648965143643057473252351266698294466825638997575797356940548268497423296860816775773394732783416695253766023055805727998484449225194163368360410745948347266257272251560343775538257254062648706230959169919625443546358007470853715035720085915921869026254239981816580328548106402705335384094957156771479107891072109999890820889059251199175950275256257403776382681718342171454322320115849191203861605849236214373640560541237634088534221420144906018980362515523291889275583621504648789978594224506019699689711936287347746016094309095992686353541244863382424010251120868981762811076573135574146578783069163732346481068035828991684600295108709953941208597727287762183277738980227075467683329398644211072598037524392654699831798704235123302251078268692683464161818733689862474571781330257726193470481024557755668870022612504557220554439027357939257853058202989964434082961056627927276419979530278761066058320090173280346321557221978796906442541163875928406053618186360018191722760049154043969740535731289127872146793389131618671349412670945307355820127607854460337747112325919705555574219176626138368497052338266576981467570099358712447773218347317213794196797496135622130247103488754044136880162594438795377450886221779179622107645564850495208857218951665826987238075662187189396480606726697735175642680805588001675687520124214029696282240183897969653175056230717932454322088910579300406514676936470792555416966759152339426041814229176657909491419510421489112236674193039818600956627732765201841208019383690302014713204803941490106300316585690270881282891817219855219718204314535407763902717493189119975779505399837573286084539975935473308919175610072879986396135142900356984755874856711594498232507418652781865279152423552005151058915652116976269870495968653873715107008212087609923615427155060347181412956880579454658244283197685790724572675423516115995096259302913020415269323212394662449595033607156732682107334146893856964670210528170367372456483937385521103158808869004833350383269662771702287197849896038805513420706194977403183167494149182623563085132019970031324198177726977786459760539318086874940912042561716762349703275362640596156403921857969133847184890759762821852332395069113329355600168871844412296540716496926597770682638732481580293769885477461902392353125599261288193413287396914139834331221663469187455041844577155541782105446336049340075831036055564810542236169969936788493515456017386134382258237331365847259175272488778529352709968653978394321462014528977185589778645960756449102423515415812683989249026662025895353518921657527821567904910021656792592814223928763510053730134947733068041810958091107381608692435095954595362767568964815310719733416851463207813878911607180764928374245128076341541973580389711292257469807489182012066357812146760351467300801871928479207137801831355088902292893563589613658858471150978950401124052968962271037472357686112903532602757677117826914320412915020678832927679128365465647708680276110293804244287172497203380218505405873925452772554012081722369741779466611623905874289183027189587539371956531647482357733047565415355579703871163372503960013509059788619761768772239283530080060220041373071535820772288657464589572820999824679331747693213161434436085837987450233251853799758343829379297626563405273215805019347289148333107137173296347717400242028297857113436660176233682603441270536090897584525455793995625891422110485417729195611878364595781234973915343048799578147058116507560269708663875967959668144994338004795959062662588697042246428241894209379203547118884869460026446919830197825332401991049783353227640307652395732206418109090604401232379428965766938762690880849838487140025467885193238141694076720202032254371108929854519188833023264193372067632215146572620590661021973248151817456489248207310736120322823096354870646985633754197904319630884623697570233234968588564516018818961234483887985782665662500620704033905975765107127034967812009639895983733787921100857970819356994602246935950444726826637647583331756033607707396414397035860865971878504814075525696262630410562317979280762348659329373887651368410294494596318069633950205101375212147928598763217426827334081289235565476636274909984252931844796521068687833645463674503945913251753370677252910228538491844121950798571080505006970693161881557725448435471329355205971830348952831547933244287127547325965683846011098215663278655003690255485630515971011671722900790146186302994701711820450488293299166632783454936365513346975325724686245384402967920261790549195470682499495791940800763773785607580537324421525423124436717966350030289595697987537068640478618563476984589545574512731032613087839849523966697327592843984512423822075283540615736327914027524585033587879059829377916769389628447401929949574179882704470266554526389903452053513262380453207242737770112096893141157529839277092417279106968710223006987916283396012344135731025256524589504020539296906005146862554078233746113585216195008646835467583471160881052901014906379650131178446864342609108160863629863212512862883079957049656296514139340145576491115160105476676177091722835274220776044579177801021388511659386923019805494658914063770920841698142876216747850760604197733261163838520400450085122187381040229357922770629756100307081063357896286678913706880541605004030985467666375348669007123102733077899626043403990014885438254655211178148532948960552098766314012737292323818943165078001486674558805328166359119781752108154231504243093218398059308401777755643982493097310353893621330828913271339639061478098371957515585991605318117131375262718470068569245111756463362071973389078519736371344155041875268782646325314652878093080488279253492601720126809585115359272342629120818947718525685205168276066980183816329318967197402608455210189645676366806618836597271082382847848640913917739126658728702527521414490304260313227310554604077438419141816246944506369347412598774489751276532572443449391214199959892591343508394267105948208086439418662072239685577506448672493054113644868578928256891526601642950392102203635654424094819325413886425055991019113061463281465109322802595517228052550291366732867109100535956047716372986107047195679144472412913952312661677686892100602733658960443135615098570640658422189712994811490596865907349905713015256844047074374041464166239287373023256007426158419968730405207297464864564870443252319968098342550537100340093527927625801360692905720763961197129272778245046475315179715475258401013470382789173106120167415328389957303302763122483455222997226243644326789455160850186748315826151292843620902262308405016724131909317552648430320492849021806274161965116050851423908755841481163752209079588677023550381437885472253472724115368360336052483259086035529644431962104965268865741142349271843649520741905821560175647711007537866660170837120793295737897426415781490825056985400938852209436763835986780768526688359435230615001243463374961564307119742052202186540623004039728984528282527746670438517827139671432776358376855534173851297329505472025349413285322564225164385901000962701232803528862897787881889859881376479188023814029944877893882493550286797051271024108872126374889177195419361742258358538436636945739847518533895091756437769639212790028116355860031197845937903878962270500313774843986124402139607332121263869821053660947501097588537450037685021525373539412231795580000031173250430370849469115062482141605477611890214988798527135376521202304537799540869646548423275666810230071806681874916816987088738629740446333142441232110789960892064269963830514458070043593106044002476121743157677241675098529370022083805988251085821526673370862795159114476666583139976847684372376439746527345353132631695438774147155332405201293101351874208516991647960513746024498456560992669794725395716265149175141762276935336660233784765188632168424563528043099624221183243548589020095647380910892311477999173349469322131935154219209669923027124216810841518600098393847048992608056031030684206128182406421935612872837759714704500768652515049983549541577643924926558558324010885962252150152422548721428966877375212640378691345349341894397924440363686517354287607073467827131337948693725751903357569468764158003772194699415936102966031454063860780282152931302426432259752723690323821721709920499825982714332582872744502837154206745184467450928358098764357093002144069741097824116330634136939466931886518252392900250906659699226417675312467785476041626765586975330866110791761093893979673810736545748806095245892717057398804267638422143421377935206720855990210889153295556784472558579348135832177216515370088255807164274851684075293685574948582266030934331104707096270378625469615242457486893032518204348416558305958038979300768462553693971425306271089521549576840194949048268450231991589508383437089599742394174092752188283367663574892383608039577902704523260527430371583568740556713692994340853122596985380271249265450722848681666164144121581031254409633889095162846850689234057839060391716851339044707131601506640679771101516570116319916898996521263463025501352046400728954722251469356441557834171655979374540167890587619207930552777522832464958947556293320724710796201668189870977969275051507934471326942174479965669164761505432204239507469419396210059689612830492372121985081478390187491773874184585165198343911636225386663431555830194195650911736934031067869773160399877954200238382194369042174922726648480244223729512845700098384136495357098560704694583894631846322469869902096872590529508200911229101686470004950501290464193320012657341596093996470552991944068417360009121124339021335427655479494819540621348094192586691038656930596023262745153061477896541417495944475960737873885264676642086754239624266670084066045318828769037865661224656648385851207528941609959906812417001747932021304271835435277910191641443132332484356879508857340852663479938476060733652468321434943838182237338604696840062334885278941589207201271786744019279999565324856640539068809637641279265663043238537989253522967690892321546975033426643159609229186260529823566561166058127290320142111875097897458539421858189109659539721660444484439246966821065025125245460127204429013509772397255503065485260121432909968489734951245902047395338120087492962645543488128504470852033427606683189360135697719878847789726317096120661406164471810999363389191542291181095184952956549779954662114283030331537839458116887114995509401751499421341120898879381210167970583133853827717640289617296753299940635081294215805097197924521128138090794053735340966153872192866156554706691813782320126853560511381549202516529302918628833287447674405338549859652649786628411310978593214599683090256097119922681655534123727138160310117143108455526859726368387511805864298173321509481237039299907288873175304697735728652539552458011994818419243073026271796100929077140730642807656635890831154735357480935788341892964093418757560905385683648350649235591862851804659016087999554715730063542268855730502470977189658333027605883811804921085016983898835114953896125617396151956338562067054901414976471957410775600247958194539457854561218370658744407516072283556629277626724685062465023208900644915649673701822259712416791892384491888398536191216429381277456368640425384467801228633234384616308512071848515007987168613844059358173937375171809841536953319866346907212587398080679041819161058053084079806046462837962370997892784599394004612687742445237940711132672569279074163432629947609907962723867281667372095026787099771383553553178340065045766159928421894502573395257532597498170829182825031476343380731253737103258808565797076325730366504745882846552995735632661476142831865936062549132656052554346202764384576923380241924344092110320648427292699244645810450710187451434910031585011355180877427465034390211535081374449501015268188312398293925084361657824000402243923716578276230644121237564343055976019880592390506447334882738474438809996470944283849506305402797595839682557985105365411927890609802724810490153549675397973301663033086347570726565954948948613383713628948892620382257213200635686077413224273280855912391085986540161526746843799490699707367704724369257305699785681311263978886146256866542114602924060565277283258011275660941903647498580581808078406084259214592933645227891466506992575494998316321518561756852725056193187150345381621533797543834955307038865007624842795046801120890444511489435516115500476914480694631174855018235059957487776525107586860314870644587984653585947898556686622847260872062899270902333331301352795429715285455181213218888109370487376810123982933941420409934124334269504855487188989037513175768349449398592966714596665456389754434305694425964079427424768725616866491630238016305645606889517128990684721585044795903945601987077779673150045909196415081662257303977552247362992066949195358592590410682308122371527615923868680878744761735284922352984010233314223353265041579546216021511082526213016854700618778674934742731937973115547553260244783667405902068258933096733350388489002811794884993963722536583726375178574979031991019239668143716128205995874761063255412865453782479062717025257947065794207398060611038231149820712402154718480078252029713152741248550841352575456661958698897315233571750874246812116829611459120959361817868545731503383345007984459493139116483835005300776616985205169512378789446615581451647339693875719212494336451163774367752777192180234484502602603367975397020065485064780212001648083167639021372220721654638227048616786451028748883361819370130723706285179729049462891933495580939646670041502700538435781195162162453800328499166259239045923313540615062400539998660561280047227252004751461406309844960560250683526663169169602195185749966314031931597038740918150941111589796451402735585890324990271528983524692123689735283659279224265446022632753702065968197495536625758425032250902952915798499459571604042965915875984576029949297712193282540800373222306833297821924217055557274831986106968448155008922116621062647298382121338275446085456164835073160132780883141523589940885088502713288001924035859651375516356267121486148232498083758778732679867372849333337410814806912755306458238914431818979711428336434927331962742796275012209531003523063068679626250285103837352861013379175132141695170414578288876399086638363000641882487375472187220853368489160898003377747227965453501488530142616677896734120611309323219572264234111320317359583919468433209434218567666962743554636966749963250142538484449249214165055348952031773591867668747036496492784838959838640410166292426964740535919074477980718492796058711395143372963871798838427067898587692825384391223097767500015607774219087927049583266887054729350171891307407586124886032632353922179983290228163375466226412505788289057737643734592106904244564116410536185482312478663628930417549163113884469302091594038299740748890564029658178976878312458254774350664802070207917733018255522934028233788832175754406802982165092499030611124047931843674639354117299733963410525103625369932788416738518475926584483763920422981234715698154031686254561746985702876653715435521448033413994465047013270162987702619183057933639946149718474061967830643755710685816744121744036661335699231126665351486390353969850090655299947121100719500582716162780272484655631282384619460812798555426293051987200799504702922506291980346292730408435435914813866642349488565014097157548740814603091529365674877478730581968337975896053986369391758817346193169546507566851344733374479595004087613544792851103866812294042250984993317493918721771058690775321274221207253646827618566943663094572705409929220740253974241086038776041792994563781148400885316790656982941790408300200636018921019397892431452335367337513877964856146337245745688234828779352881089374220910097972670339432529365019267987179956468987900638808480172469568166488436265170013696567656592719622216369716120530952526574305065653633501613434871423729765886053907001255711494511360281544616225513617612225569318813332370055372047231091055809981458229473596282450443138473241312218504543515929423711347672545846889682656762823040032805634389065181154213971444677840170462453479226422521353883855167171914808886727728430037210603568333948504730321931969976466099456102847481389366512565099082168992074077911586073836500282213863221028179225705033114041326288050524618613824524854140972109054704583513931186777526770502055409946052141011037488945891641990617813514083874850016716766022319358041622154149511702656322770986114919472823783275348239480071723535610413987501510873942217710600041544812529512892980195453062521858647720197236094052107781560866772935440576668353778238198031356528953118457223628711566258083114444515273795595756473619473108418636434342299938360400960169881563255427626449972301040570176614657140162205621800811589022222273764560141655093958877172893749050162559045670870210733365757914099604537355552755872769173064628571383607795777729415869694777109062795978572750141206420547403290839065205582974027773738945367002773222187094598588753448667012924854309449055821864358767461956450296290623369851219843444853674077487048316271411206236506180969907794565554568096922007065938685041005392562362525380137443257197999009191989954305044774152605578419792045098604611221799714989392005301678371350182441575849798715926016200171981810931242889144097373963582083884571010397589997307576730790415567724619164747828465424957865495083167386194630426981232509666729247801506019242313741343836571310003165027699217446611733035227786749333517639836331426824571649588114493507833869188364949914867538098728705317155202378288952526404318291950975934172509096415045681593639089940076262669946892116234024777489917200947647445628611181998763213743821858356020680903475725090455722528505834635058749395879444905345143568048851821932529751647241451902555238899339506489337141262297338639461650495366366936423420055778001862751861982924127266011003957582533153971834953591530195589777325941941287723589661404470649742400620727636448533906593832227384877590761784344194932407306438610122862880549695026173402268521447678645406000484543957448388366022376428977948136304268296276710693487414922199574404509320553669071544393370755471194414654880863308646996035772143277287298035824641605388226395463238522765559872134736276152336751607656252667297943095711437223963845129802238619356952416351567176282062429940767668084789035090596421271171081788682759420747090328352594131354492712142162993493871980526567335748789911771979260607774444601059067779934560056981451555808236639769859628247863584567486956374288075964565845431762371985442165311112676501112910646531536154657516572058423029148175122772665435474294758268867391197722801381912270991495284258993221918430410227546706117476284104797475823806087187104925517662131150364329702678275818645536832849208861901540787553445069566007782868508842429755835345855772503950058052965338048317617337787898996057105288956068245943989248035651526559120270236157408147111087979502214932958482532752721883523738912734688047689590984293368015299591034962116129305087221704460334034404309260349399297404788511352937978841016321037921021322328258588834200361932665831164079268436314312976923582571809340556596865449171356673354732321805545391356470850458351131580829304182969598829067592130751069064006912304992053594944574710906878647346162636869814339746211113718828829100662067369061584628153278251572826603200191021105303877865494663143058128443745652703022635568093550908572091137272979997109860544415295907458569835409183276149713203306195249393583554436272328666388067325051299805592596733900832100006588250188421310257217668941309829797896514799618531957633570042257469569660601506420925651117900842752637716721619845868063883218832858437135690716932943154877493108574320575938569540332846980332124160142283466868882719880416755575138244524238767677435763178210723087458247770407433334483695222177516941538527717061592496808542060454496956538801083538564073442895091954955968573252383353686482389339064863948831353532398936142822304172909263377594333943524993568132858840207030546226000723812210606121153577396525151449727116362462099218762308074919554403880812532041259032347160367396266140319246537557362460838655525338100432358092453230821583264357895415916995647813979482916056608828868626264327700814994674411812752571103006621350369441242134494142989126321116251448274709185961336080247323429377421363005107972935476123035904454378408232071207630680029124791811475094089802750532252597198116515176256534712281501334147847028977546858422727219434592248722252491476507532314874132809022521719720543327103205604909626346801552185644096668606414060873546050563939851062120162601301139653269405538392026236427555955586156006298003297005989005386941307444159544894533631138071765463431905621412210678076054503894428354968738276785898753064407478222874025071821745749697641929754478087976356938120089503803094732155686680020499888341521676143494603802563451143556323423926163105358952152939228322995808006128682342249661325547296865899661762321504320858235607162966318865579143134851162037258655011837630027912858556529580443656052255192990271047316404254514952140545044329346631543561449724511590245780010290705765208982218922170082693350074831978481630697089563402219903105555437626502596329430604871998417573942466882312834770680457648184787833356460755777433708892177968540129450057793802928725462049267739937256535941311099371099029947259273228478886796211763440877202116666788970682072099063407341946245270526666610796637015556908330033007980594322142526922134043001213003478390234112653710475260066481749255566559476656753985146721442890674571023983405260633962128793176899805556226974259854727646444517351199414120300772741036447998964888555497574910679914609865591755318939321755801756567772860969754915915990874176758241149230874280989713871864949063623517681182244690535852151523956507107451079590693889192101927787236059880247258702555080239038183664363193755258561528057951696812352779829630699710929614096655236443218604372969151969927551620864899813229215350544612858561210393518746336672930899352742717514383695891368377978178531664011535791987419397247482119911079264766110265034173484627542276429091734805358801303919655750142970181532781586342095197459544507301889823182715001164165077717410156279437382492108838470707119365360730639533015349604459895793149210127143731546003332215504913871331562040423261742841274402760541272012673188954257515435503732194956769052743600279771468175875780760183739767550529494038743880025125167863003631214298663621960819823484404198722782694692942134767046159708030567057761872885000891593884384644482624157732368348145377492953065692135781247557761084585080498708912541776631317609409721840340801224065221330625197295157066229746705762989776962620549720422814207038153253325094995240361492699043362865017191640748260689602209402529285938305210838300891377583919178650508084072585622928650894072318595892381796522824641319594798466600739021822747978020855210836889773016381872675513415441769193769259989881777855222234843063880140931733035812251761652127199719683849913792116196149583643282195859536002536281973708515419990425944804227674700334017298959246654168670668420900785836686459295594218968909948624033291220731791939165001582166111123886496710447395732293289844417837889849491308789935866806989198529088577476690910221657026859666731540642797062899990392717867964925483130586469715054787483054495662653935133727237974533200751313017066027362102258927559475993455335823048435338422707781319333411880174850570501207123762072251318292924040791056827120713596962362250041552447859409680219753319999486178794197409846979590906128709254900487341504436782475445769359878674136135214953649376673208598823482742513864820617649061373021858823073795521979004323543892332255391840357475156943980554644294389082840617898122497770135836852034982246921659903824675778725929295167885882943577021333761242752544494164223035124239844010156487534127782725792289835578011346427079267567656242094012518474310655422110080406066878565781487847443027195508578284602589096201443959984321131018480474499272930450190550427879190280438256567577689536840379028030966897285320568367344898671126165080381274980398161114942468515198041652601832678801680779566719096072417856573569571921839430839009576473312827455757569859300270779234000584396448792304468611192679160656576868345865369755734440021808696046759969504081468009376641601280690537368040671411018208665405286535384486082641513027286691475069174054826398405697993025785003808084252446832087870974394117967557332230823704206880299649291708747455176502851438362818367323725354065557710818097948142573765157650715750812419586889094965248568378114603297563924013262486609253404915948276893481082280480180097771355199143453353405539206198537932528928688978958408535348181021075843784163125120539772001306257022251191856527398938554322933229256903958516236431261831928385102382924536822823133982834897199705356713045952504167855682750940329372401748315409224082685012548170863512406414193293432120628280279281438744969975872338156880556377710007686487383919104738703261973426835028110645335801880302191036934026517249567420758221175488469594087462997639251244651630655895470719078887891537936060059691846484782354957749868730208513055802628731196059466249554740996840972110355414212382031538211449340794752457293341289530326637914800506416625926029895907956634203912440040082635209688217835044120919340377780251468075164097168233144323521710001557630042325336979796703739434999863298153905856446898129498621764126005917766464814589515336104618050410382588092634317709977754262095985072910725605207775728635778078908872704676609601399048894454481467134657587192281518316288745288874551569298914751894635781764605610584053701760423101890972562447107133237144609153083127212495622586882177183093102103615923594640392567683429048205713101298863099782679641249468850991329966197136439846302129358553710765488775473154267395768025947490664508447179131160072858989423661173422489803430917249332419781166676379788925209507475307955570332498208965729643974531750936261470406636401580516444199326151907381656468956146161067721861592329467903061039076933438644915858515073360055328311064599737080480820138908770542518074343172025386565890869708840468055073983316546559893886543993114131499123613868507169923812737309407859248600516520447334227252551256079959703213901053057232027619659932721435300198600561995769475082450030730592204065792885267132282653538279524383735805363919482592991498545543674599549608574332509403576898262034258644424469080751899214790101127797478420129978742605569707602815047652504771076323435213271454330010627556923039971653708956002251011178496660588572231993063157321308390088456967160382057814926836270862164098069009892217647642689440757386153412787008698089018185414112026897145780816683467897821710893393494295456618427124715403503837475926941864915499325992932247428333454324411946896867916674853655340485620639842670444583687762760233254836537366844613571798144437064252379834507762373349942483783028682277145876087265383003397635356918682174718802399500210472566750371647303077706647845152281545902946996805549970602679476128327386847572253090622563734457173215989905617854001498208818329761175956081294262421961534560006616347971199158337760709738770079604968882326171618165142899696763316841273071547171154069746556491205901309705626195345912246260682375460302720076115132806815748515413653065520313408884564858422548180667042030442884111611773113407857002604314123276895889261219868514745359682669612477769592538125014731722122875807695451907530548062060917775736067970002155200557475100428101293920130431803173416540843049597097950261642073761163650738607447510008916364317205798516934948126580184842034993630217536387895975360271781547433818803045568121163974727151851865120315142312087006859968304228012704053888125929170393419788966567573698460408031549552065409646865888598492621902067569584372812110716567933094116159398397491028665918975534554484539822049981366864122968783597626997998828623194404335837077317823495376772634017200819604264286904633721745938447936158145284918928322404840722583277288514712347796129932366742778765365732569797560617132290065980279719449856824805106290757464206469082437484709398949808767121773912722329369268104096250216894439542812138131851140281249045976264023521054995887510891995850979511772100016951567360558956468674145025380570921817681561442257503244961277094375133718885081281372653510500136792268665434600036216866557663774974920073337571145582897794281938602799006372330110085673728635298172497238168586000913626695128616203632907248148087845981604793544668676490444857547634300402780675525181035506508010001657648280131133251203726327586356967851915301749048572684038740902116511724725535362720840921412360693910526987330846882212689062297969455192097721078837022798736530603888151597237173581488523205452128608034298939739844947499829666275799403704773176712456120854959844160799793358318440153644121977094932822426801845262101653650732897931396016012743167939243359098523361936366314674036273841019335926607789196265516292359965012335171644229083888227122506455695949621653785842636132614650539601553052759510312783250400476860805629606121450178024468993941310984611050808941617777107695626905031299782704756684574473934536255195967054287981406405222731769273307065419150705779860201011797953284302579911964603765928533568487717871851994205136184493111282488934168675814440707688763656864383381252527721921610982282397749659556556012716247774160245414651626709176714177871746817432168309407726963927729912694755567391749622289383220756529175874886132997013279693172383113709065888713676589842867262337018818199959682241726111477122581437900433324339474523148845556927593859674685951794679927191945785399782800406372301760051684022792287405984308283777879250286420531729270595949916400845330200755432676414889916451448954743784317925167623777919143971515577112024604606649869357636275997404378087465296454404902032664890582922389050782224501663563774097997818652418140494488306511341682543187892567048399977434121711211024342780212667936042742059563934275357114036621433391036812533855919160125473316414674881326705061466930994798955101761854266422302132534349126513042095255860435829253779063086786540958177774100096013859184509517341183450596911989734418193110698480892393657822738260077091982747576241225011962823177525647718985190659598389461477199371686965941217256578007361123015432785661301737841093638441559928752358106092166353759091791986659990173516212293156930317770579134909013171944788985165475159154694194906405434711394957255266055585643053884661980289759471120365322963114174941193007585782139271960449741336349030191184413342125320907596075822196618645022878536881302100460750129715228892895349591529758439196040134697047578364975473490126191440615820267661974752713775471469488570719801686345024825902067535199134384233915749623890614864195174699354221718542072520710427926392399360727459427108044071645555838074816803732241867752650398150501278865903730876064916288774184867999445386792473197890690395560791154647109218552504763209112352335219351826862829596338392757681965676954961217091884137585082329849881199885468320921579816773457120661296046514265655050758246316074719921622643911238488753896525106472992554539147684457318726258284362247821225445875681928519059369680553238731414868301821078085665966293775905134604884166152424785505818158365698512304723043679636915570776438208204490512986542652790389157953069376758350805891483554569959854597569088906755106731510002577943817009283353910008472829940773861605421898276798292570377056089495612505705217525252547177057825064475822409556839067449460664941861981748878520729786728981114730535774765758790970137688362652289322607841969228649898460526866373068213991008854872640440737652925389902865701916296370533822603578066221208691041163219599222311364925147166932443404363899028339753266465117870020682921876509086844584334345164982731304952943291496911333548504489612435187456646793447317715894145816019331005149781465351976988782183301417655362278291499287398146259153287559126254160504893884011992372062830863308035614689818477835008420401744045625349345481235637280667251191093378206245316813257282091112869625818212247335675448408447072976211029343436573274958310931777683214753308182110538045722200117103023091769532427009556967394223233613693814987583312791308166223196455435790635345899821223483881417820536281724999984634711873311987313780936021821606691851596502389919221724544134210174895341391178357751098500047095017753344672360079686170127517726154042674282641432004012874032027301481859532594922216264192812752153586423142192984095338309624587398664188750843422387700344813379982230399489406168595446262611693412263331225806870175111096784100367379054946839404942602171756095434013216561942839112259986138425264276192607524043322794826169871623093132347659513951125200232098680836439423676246818243922044006663445335202214303478355681282805658902433062130821646261914916881758372547112001385157644336110600100493460010385515601754097430386476977749021783513704439992857469529455444538869790492918730969132320111302399044725510019350047286390211495544555349281974362774078421759641075424068328779257823367617437752152232473949956790890987577784045955491873215247560625701766718096730264454407138693174167178243221393833891321930198298721219299273101980780782544514189954227624537801321280383552151408639254099493400177904515473269006865219972262845609979706975457020590813650000946726549136180133028339508609474070828758129575206136125092109050542499876709177940926118089645977191260261457034796191507890204267857974870042023233804912136442964709158364425108154045685847332895675987060802581318770450011834730490927237271531545965704826448969913837168068744382511570032999210583170439587638170641660261216591499968799606245159643843684800701232796846849508006677898345825970964113691158323634207747322465463311105885823142081219024770415016110363547115090109610851962053919684674460075523230735742081816556768258908346335055377545587148158821321509987423481045982364083352245966171255536275617869513528297108229327890296837850598445472628952279104683308192422748059839536652549017741177599073806573115162710997282760860270926959690995876170454765562288695965319590976728888878235861838905276086016192437597138581342686259783650916726290559169378349831177650084097523840979971149737720616699035173487527527677455864610726054460105009022030621148223222487466384700642965933487145847273422015525829129340378134761323246489857475431663397132400794961220169059736132876445061575971344317039959062610000905229728949784422927997041569494329106501361436983939489961043997157611436681972168469645435219172429414100299273840616652329153880339963586831069870807461989397711019343641096099456201472736782915749466182815226218290291250935549705345023227455380317554196253193462617189060205728958777504156828525647042092440224622639583310199027196616987926005617867396860350472686591990090315432076165945165704974748364675385720671997506982939836824011371370440888844075208088917544759511332749878100343454242626289162824343095960928400380889788587616431318720522489081619740383405376968237314496888194796303585738787570843460661290801290926653327834051620153066840365439383437912120227695218466726212260455905562823921537752249003085374203801362033180314286779793055633381912927521864566674656999827534414181675596042595593066844693520179363987851518163055009772388575201346594207383433257825958184957778697712667471003201887419969475532853984925817713176523738828444495124580271389859580745552242585736995777297646888545999416303160261779542919981279093291669679402989155964195402705799574653823710878915980571820137669637992182914417196960571799044461804681250767400226950112992310852095680744368506397665205813277632457110300871419358957487450851393320705069086230350002898857707714222619818103012401490699474973506980939330490063935662140473122553741380572093644050996954857496751781077841776510512975311754881174424277881715979521198000342496881925999340930772778799855745213455796356363866470398132947865769654269376876418035785253061660771945509334389974738944382338748369274527114345628679263129955392332815076636917558298056763169260480113576796520877094937086869433469638493985475733411325110220905979266649302230666015823071071062074268998633252936087221507123072173304245830361035551653324635294451253731956062255819035114586261474371899206545662145362686029978436897588565375006474430991895181698614774731552314225077333448099418078023331632036976809040132415034818910839088921114384244759660998997155977302376797357513667130714118796428369747010303092992533221152404503747133262061164789297870281567458652724087890088109325542857946913094046723182895498655484441364960292488043576805607071512127177767611580674479031355316159730160003680713574698947602324393833069502930302927230615209367698406443421893478410675405999608676231022739926991220801964707908121924807668404934562343028908984275865114904269612967196238573114972187087188092042909729383737091943248248234474211959945177144135669919226483382355242477432487085942870441954291258671011174985274922581603104329517934805390122265753431824277504501158017228802724931541722432479627076391594152405466430794774977687709112473579412556294401072481722426116438581661843001671473552223433653691022404313766218064863543489688800532209612776517944043380020930080570047602715219486595528617810535122221544994890949275049698675270329053022488550070585934517789368904853320501752024294742400992156776748459164581844415915848743754425995622750478254543097784194767311213322344339177210487672481415366942451741029840126777742430917296677016121228077475520563789377245926169715004555850971456825705856951276424976605455997784184881541025190516874614881505384983708878735133039533295347797518708397792996938248374184821280120984254676342737484253054478440553104898954461492549075894076663351898428506982597731884462290684157325629469160676790172892834219576463586215245156426776163253317209016889045179490714701573522454015936545589468130658241022958999877686272007526746243549732570273449924161026321002356322602810735081497952231146048815596834217263427537568031186706431679508616174476975506365164789463355946026147267905737877814554767911889810784751086148186344920730136521711175563314321690166977888186001982020527278290306151098039978109422834441150183556429678671611264178799796773215521612916640438271080542870142131753020827131313482150318324830144159639387425939073508568816460009119916913784075784805579913556283883780255571587095519838000635160021820663893974185545778047622481497487969237117964562010828231499267170345553293329904174035840675785550707383521285105285895878552135546660847116349090757975472653553887711880396838209332847221055378213814196312841102332950818675430647953348635162833090157720054835715565429979160223041000788240614647305196771660762832243904203218541312339808330002984171254354132179151986889381366269053999344607987832677552471109736787808189554892317056904410769084614643737922098085733076470946685492335392731655768358835171252164838949764438161540838161396752633328869321723345200995764543282347898436674213959067612243469032851597059730152485212572003190825311160830257218312348232378855151937518695954167550246939587413454664980559217599815959972335067212748902623460608405831293874606621053836337693671941619816052640370031947000757951787330704736712126968090906894105424830214540550497748705532501861466699471251277195331559653432594477220996798728152949284859440620357102199873827716499940857238015247261687293099959241241710767913485824639187559842664635560917962074145500729702871796192418905925857940724347019958418709126292892035053390359739580077318475756124758151159554545556997878808091741709364676524892791998049147456861769892016957669204990690819210396137418906717372719915118135129880567055741717265882662446932668843123992297036362303092099733526257736909576706231715659623319227858712810743184265829538988526965723313191430462801649658726181386687253404961051820290515194525009179281646758634347449431908378991170590399077023388550211805152242974000904264619302108902500080996693807106754650242723035202936313909076884132101417849415289537004927598072001676112939225894712921120928002063590309097564656661070977920139037634385473119152824610272788298358157395567496994443742425037048580375903290215122418352900605347942454590611955897300951021653868254248222344801924351235737272805156380192853043903238049662304733209172203661791899589453250628826093523131621243247506498722408475511532787958996252561864376244680171504669472631187054025246709592909109517491135096511578293890540818974692947968722065379943339742171340593994199195794312631393803832040522542406802960585045076314526230996942684665811093210159764013482245949722946725357893242530222335669934152826298229434330130746065435647595953441202031793574810067843915392497900024675352345590262808393201741769362118531312334731205855699842959334017660764723226331644005891930257208014276914398221402971409817814754915459927840054646593225775391565930743059869263838211812531519036333343343478316486770217216681102596105591362101406511042390791882634399185311082723303928806595388272074442241169403913334449182824611797588677136360200373360062633089162012082229830059911888935242993674261448110314361110151438634427501154045005099197297784609586093702354364437281240242993007147295474631146019312309559382916998204736532686190138991796816702785920867193942932305894182901708767332470507293265713215655753820294251348309392284072333967849152763761989626603762514219665942099578526779748506328037447459654257301147796495118012566304851833834594785624461719099552077202426951187298951815867507110610824647817582799681124631772716576995307023845323753786331331779791353886603814078542300247845932336841946947606375340669209073537376978901659325156188474274123683262860155725510066936718469246351640542211811954841261853008133839648572612256366923806155048756494866635518085413603246304997330050643209216532115861652267187017732423271811526851597733682523088724994847980295484752226943167145845936086305909135180493766383731755531099096256126538599671701645548351855418909180732489572028335910400192121307233910348382742654641127515996935065515312465366402637246959206554571342690253525598366425290950166497096082682758802794026068937202034459753025773282668323171688600560104446413989975692002630817946218447717156716711793229256814406468840840854100893301762204755040087673503825987337710819909161282272101018105852551326912788250371816584522329130411083137032344059537809217374347113862359053881405320966871261706476570277796593658421465695329405218406340953065336684253921228504080675699752888059507438163810646849068328477736891076874376124387110822993948226887269965279710228134698509534374153106414225506913589054311440955215874485151488925422454920242866523705615163964210610296722071371263812123762175127285964003455287708118220730299600837683974031674159348466212128180250890129839970129814389754686191780169226636271049615368584154876314454886448316895972599176811360426743985500324064751574757914400388699019829991246948507865595539093376484997231097874398962911878778769711262701513162538004686542563627480345802641611056499637949329124164588210357023374489473115524344678112635652949630110537196493047497029847674481466151419951636355255391230893426959444821933869838839057092164058972629384052395240430068083669509180506359617771590529557051163215059461960971776235304265411624209331971259779663567839956808201874194935920669888415692507457361056618462782813463757593881711369408867897068695156338570021077494477823941641230893988343078190438943496623683824338108158413859818036156998768218479665236779681585034181548492971353239613933919800215170972289951876109280455869234781551078709810803210051702658574238680686101416563981804393435982920064708657335845036796669955062690644862246396379056441000832564235879997310749347468489966954826851456389205374674460833620693587080938104680645109836297397327244039678662413981832189860747034834465135532055887039133662698073240325007746697824943731280663582167874011412534941207575199114260108947479261040060370279248574730362184881739857305118217500053193539310079066907534519066753203714780007125887641255930654643923317711542713075504570389807187752819464775211959620529618917230089975242961644462565391656224144831322671467490489078095540898401728240853005861691861393570236117934888984039230060950879479423480591124845716131097004232810671388923671541827617787194260926536499126456796421396246853193511197386809850055603746876817048684119541233248737811055943886971457035911530145547648314651228836951821646053927313200976179691819393816160079289598560142875023196589143130830864435111656249502891947740980790489373643369208932532303197414681114289364150582755808840108685939716636904972807442679228646229006436950413550740146390960919962901523306502682393730395500004819958980305102641815326827606091108676497989775748763358666803923094026387565646127255575997353261154393875726531938813349344379213949070593620950535377253439633085476466787415556438820746422965956263415420388903209378033507189920956598032414800302602131768805726064833898218733110403845883986125393404109381859250601519855991949414551376160490968940165853315749364751963436627939733933226912453739859364431433905180874102172082785380984352497051578705829737222350446265036095711616331509290101579708034723660546624276660162712192024098260982302247192978644686797678407325792867394841696453423999981742374744606810458454318376045820488285168505141989517394646832128318255816859652508969774852916414171536235488708463942883356842550549659855308610987188867975754441385460372673049677487611572757855780642636622437568222870170594147835043852467391735924579461591785390976758535671871626248289964772661165057254415938031553127443155613234278353862309673911593297915716436572277098083883065858147169286013166621048337617129872535007173092071471587125666811764761512885341015420943914875423358397635439188423148045754658226244870447589352092767182856595340028307045989595107168346166428738844244487759851569715732705144617479091703281003971406586739678652912027921187112815321858456053836231261224525147844951955974953082338765044128362147666809789738165406742345305367738897178926344848939602916570640785323477614679417577395193481079238487736757670423361702151126708409820496290482453376665960137647302442386618134977983158901368924166632250107527870986944755095545255853967841747532686692703191384433933787150634521642049176687508030642357055258600608197946928595412499459258439349039190225311959110539250606128439765662800265486077649158887206700141148725268114257145231531395295236958014016155030308519045389179598502069783438936821663437893891530724939250339082067937562420363823660455096338081634657446364279742258445480316939905251729443308041537984894974990163565950621170104008184330458318981397581612459631003649233095414205638411073344022085056358631081209146251730336006701750948595950591151297072844055306529780995782543843949954861640293814319253491823329466757231001664520686898418866197972669411461856247531160867547132325457056764413645873252716308581067181466764119353236044414645974747502381445937040143448515381880606596126064693349529578679900885184796348689893343978271736757219427143612913243591141512438299270455975913606837838020640169889712037533963142310741360558043105917282812589937395280505791119622383485218139474182248817524320496457408371763990395815624532063630142362704949038865694073300839944444680384946516792075795211986035724383177854477643318120300509805420488891198447098453463008832439573391488181426695614014828528542594207115325713029993056289408248922925520195170017574972755309941479532954345426798321433156099996654166601974209231970696951646410140650224119725187433315759819433515640341608608791207766264639157676872539595010046021174816073606200445251196841278292672418378955788021547535959693738575020737306865689869660189454349016718407378370425745811377833512959263520910958059069564020479422189792786066194195143033600666465126137834675138162241739316270984020638902800345644532105283543328372935555893938281394188049359106473179281535563180250487804985257506137142483398168220410208432273337703662828696419527287206531152339097993618974349688754062126582494849410576283918544963887331262893923188362535657043296982803439384989775788863280791158278855563815151080577795654507568810107637060894791709298773971786838218008739382355777204859521416553535546835897312970838307271718323466273110020331214916432925781580236327483580099981446827747901482287599392460666031433218821833067528638889980044073388083239860736936082944902719503139673208004903743899706319438319897634232221357798205299951085414990644409573695087343318856543243517428207647069838887883406399603907001343442895630070625249749475499037890020195504336475558591292070959588037426125236089452535028978075000352540053885363174476662462339393453621101556780308593427967774723320626919421740662334946560449317666673327521479656398645596217058704677231306492880138509105892996406922004073114473492267600038668285849690994348620801240856331820252204160281062624511205588204877342746645440888102244908712317765426416214912080300540245713910449200535519445127004196288260335831686459921700237130975638754311901213326853952726528344883219212135808331522788195069147511837161583871458622120047286272453092256857637219348403231510763714805892211591888823455597511778540025709237164904954818528739553555485569131754830225083974546016807994006667293738079463189244833835802836672721874518818884952723509617417388172428370379915097945040706524078614407131456082122483089809902392459566358617972338199469894919408929823069945043124540866262590814959961438798203932266369300477568376560411001242006893153471519910384198950831394693729562731278088715568959545289203362539148651929762601202029964296063091588032430618755031220468220680313720348798502028906365605239644852632287644585619097456167843269400560047691979459773981026993017532940478607924579948478589385476163375713783509884227370054517556287595502247231836403479979263888924774388548893001635907448904796542502726255136614574030550662104187518842706105247315957149430317276108215596836560707501823834323915032114620047210360733007722418349999028876338521943272776596602665477260367876100782897621070500001161063701041275292002571586354792076811410592713550383646602305186567521749645137765725440656493719576408035845985274215064049456265170777789227864633079986100245728554008857877381810653196677791506112674680131038197169939916714647160798536736753764221362059581068401423178217121952758679546590251407076065835443695517356110692921779947736867159661301145436985650054403789354955381396146933406995018661306442748688171705493961433978781198546519016225677220667200802471522885090487805188880258879775768196892797679814791647105104033334423016176047908354761416818189413101886161011929907168005235370379429328287506618318532413619164801427038257067226472297024046597966297191779116277455878541942326127960459808778044853839715822601869140854580663036567096945625520853682607988268635306105549928775620829065282356605894005850219107384477361438976230608142120057091159027621690462765950404276846310955084245576202274134143183394986660580150983864184710891419565147554490916651834470637166665011176213367906199477734094361703890823321964608438732211286850196811405493827925662480712552296556706420016095277834637930623218334002955430148678801864166481430287261086546595235457435819829735665311316600301077854257606125760777615846162325228116624675275258986413283110163504364643504898112324909641553166295264455122463098976630035357684265314565569051534560516972482066980132227113437509289664377008621815397588692413785173509133379555431109829252327815232472681627502915702240704649076625927115330169167641625433300227756505797033547200524170833289135651239468633884823926802665485655653579628314701712139177680400286789984293084450133917737326735315088531809907700884946746405590030485019948708491342536553827614977248279498876126264510413982705531185577825085970093529699345524671204523934813495004995838456313503048085461954172780089294900618825148553900273293521413595457312213020574296843319785244420085775341425500330801525995484694117148670591753323233651351501592774563962867439288831953178635455432225174518689087115313352199826708465004020769738992082657671931071520005930206015360444795423412207583800152402848774270739485436619546323060159258373370248661377141990174275642192674197790585763507467638452568021289197696161574817344883954544615203260258273490119822910258247491795809440265450010693225853343345549037597062398876714161708817975350680929641971069830396642468607437218025224334033318987423602892082591317458293188088577571086260935551449763194556309501713579212469301515609896998755722954304841436394448128332577089747758785590301526534224629759085541040147133808421004124423323852418735593422428563864385950828535975703094883852600970414338977833200539843117156165010756623951211053365012455156300340160651210662080036220608683842298877959853762689394653084769213151261706333441234937006296426411668915702475161006836586721025727288720675019679834693849967767097339852826274616232231179316649696758328750546752704012257320800843852030867573277237728851069244445939574967702154185790053414278594776077938507759686914701696098706798686931617682711495588590676359771740633554764362719713851474971195773594709386603987967798444508224180154312671896969496294778517378428663579563159243376584595604846414670080480108300009512535321253374194706331001777120950750146307467442534720784599864170835349447734251788443490484856121080553302494483536183393971197379925160655465916012480032197019562418324093500249664675582320208437800086970111354721254385852156212437454523788690859808923709146653978166612071953184113054487690370151803248324807193260483642250182522749625865961693824697972850127653993929646936006549883499395706630588852805439434799215368286482745590705802450784700283181484976746176119621929910263547927986970379240334186648351475298157357340848949675448274473342579248154895469857758476852753776825088396366078839365784263525366175441918319698978248061294800578559971922467100280145310358159734242580700547548584200077522755597145537530648020499808614827685944768717946991503155165787404130665359418505176163153594055338936443578993943011625767521153927567484190240304828860945700857702888336428579332998077228084518967437913321660350398894835713231241875362817772186373050367224186350813096478917061299320253486281047891961749427558829481265805510107155617781648576317029241551631634168953506132902917072071288912453073274425952892994210137068242336053276762898586594313086083775182269615018261862825281524651116062913823268217456349582492653329166284220867118774815525682433528709884933030082649610487188083931395201630082836838298702040336809516691073081036224051025724593195846272830206726682772051247291545805960976488584635872449552892277638943397580408860543106707422496294397866149105486079051907488465033406329069733869343583631125301464394594845807554235970157496194941126441039792606801795059857776620735134221950016863143633396384481816417715320892597775801089144423731369062785242442623061257693842164675628025041625872513949350523829421595465309637980868012105612614069323443187704911547026173328264478438527269996257428443728488878030776974885647317859416454617476847543444294286939382037044324058363958677179775909490062999742856155142706830420759274972716698269660045858551612182039145303883008909089560018637904104458901083426295438458079327087152641351411425825767037793446344539791326619122916884189404400066427636341454819545265290047874449804517688986989796190208116103302809865201465331430849786977463322418946804354387635828202171933576327125137612192325259359172037087296756172515647725669052825505081914552578999556657338729021885801989826735220109859582959294794078899828493004961985755589133677755181681701739632743369094366864314363766988619093546775164192631724270255575825393776217525220257924108820196670132721991631240716852004026237574305467216904938109294543230823608725087601976878663058159532594996295260965541438836914116086841331592691115719860594278325968147289536209569518925982275528903529933138934827642474365519478832261274279157520810810780289004802276237130690734163827465923877152689146552044251070440885969471712899261535899278299330408853664986127152943547491787566261663171343836183745053216346099747160271638947142714230613731707850470462608596394636203769739498433018243279240133635227966948803133863245595507910943391093655204566315290182823875457545697051783787888067991782530343727314425748638316704949086676815641300956924275035216710489675531803045499770331732706662169890164647088095330766578040834546525002828568902192030448858177086369802517422900337723330510236626641527236569213686696272109881387552461696184181138868140099926318048871413916568643232463002316254131025498679468028242756645138975273250239035234623921352163008235485547426561064483755241870063562611448195376213527454852743265032270618254569039098710470666357609521152737621125242932271986269622761550097993282494625658571772870917885622777339110169737339350295947627658075456357883283484878636004282475661546649714659311125072119488366652251488282904349224501708120509862780402399954631614627183294400809331342576002870869963295433997623836476075713457637559922182743583977034324391998760096461496760266845464457102431721086993686355037583974018400418113663242557050228556671782818503825429820424247252771210167876816390949101214611655549448706260481895363613904882686878373805360710037755919054982354589371601618627122247591577100878045209388198137514732015180245625809609728051761847212755995801014640281805395963011484021239793792457294077563171687035508812414275049164469544465680143350629800989717753811117113709282874112721570347075120990152935598815178740557639788042769077930831466399431569675114957224170167602686266936773035390918935350431506117287574214419514314976509251492263916651608341293468759035140753971891534503204598259890658795146394750342091702337252059234795764918828540514507474241294561257011420872591593420286027979270295866184645038263366546393579550307172723484966940987068002735827650067145964431294013989456819603042015004620563440090773727100672759994220199166394778795970662801560913517351953378410938189732197967043987064237497570661448153683226829347818571938403518805981568930904004667394407260197295057901647729304083157545494086752363762902572836998565591061931036434468585779748038169389473706204553066430368401038718116279697226623800655826831394005493866240559914126169603180668820504832339948294093848934913066215001455003557700782983795249793947347147481957711575864155020249791593637066601083704833249239381604691389424776834331870111786173574050502599386449523127146450194621371493563348506622442145866334934005164701105068340097785992834389376483853720234957006924874337312601873866366763192292423240415251658371284274359546424106205746907520928583088562954814956672875502350292206873325601052014254419449933267323759982326041448330589430810220715914238126475357952187137292901977396590520588994000960735176689390394845219385386397148081465371379233915861672868092776077801223050841964404413547209086445619081200639273549044497457560428402008723254233403608508107302179078842015752880516814722566613444263480183836066632180617439016041524174876591607658158929464714403899120266553747272771094517608266638718538860225159427122962748352751487865449397787221467149287078730882022487038710462496438768990865959346505411272689327796025266602362072445929329658576780384761339430983479924245217971084606552792001000267213297800363785411591074240729003493091150315191813837712554021928767002698994282139316681878405611422731551587411757347316324074277060508270166665250864765055879695417981980914438541736811378173268565804935462722485757354312698712958619467229485696502053699542283982511910422372643977838815934049725893265945557584373962559213204117941449908624798056259055987359245332826422915271745596344812342789668560305896196663787926928074334863882506326808162949534780799962946169637096117489157432323349697253892970432617119360745672896903287467635316906355354383051468580970114724791432627711114671566084841697105667997081350496049616889101268750886827256407051845790319204559230239199585737692417383125726943862681422141581396822065581857448359840412732973856377571961132778403296742673853959834620661849452828513699005037901011215975627732768380388823857923299369489891057279892001667132909946182883128047723643712089418300201319487701115177192613548929879864528759415205536066908208054416413764378914572081771011256661425633184913483646431149924947586184047639065959478429083168209808526711273582125257533286083513652801435658926781996994459972625451182021333558026494944107874811042980891157367480839086024331977430659443116317238068325762427992229735294279727343887482030467514126572515938676205031381092068557736682300197047677072551110951993571591675414453199708159091208401681109523878841791875895082616414045214299900261323586072734239726608261574596364517077265032820205274661838433658794694725335329791250799155925880961804040306311363546732226341572885012812616886857084503644052599089893650763843116517409341139882032272208659130846507496807608714586428024413503765108391165021219577785036507813469540612650155007983139990894200935864136829972446252199460102446500880029959810412701034058122691307560275431151866378125842256186572150200359937957514772557228790560442126908540456374418973133768161518270871302509583615132132781093175864905167349809240105205428413692447902012448717894066937265895116400186360148709168687057657874667745122035824442468498484174959933827161122068166140078657825522481600612405955413268773590712432984477431038129912626425700200583930756665986095383452773989886390028320041408805120982912851125539605478887298027952228954761901209479723530660708680811718870016530030658933831349708331252053618721798813996783475505080385604425192399134907137505663610210358041452207427330157222865306478542479141550176523780409625374913566649775773201999056307389157669172814371257656013889512771733917653057377380305545345699827157817435051233130956442082209175329690655463298787202287532146449470786429241391023173771648220194264712985909015478541827878547093531516194304166104309360931311854011242787549206313935093037487637681928274155500583912704142873670087504675438772020875928130680514515842451123649079205126354949381277685948854137530294742026052678373652032003681745531287084799282903767598658500756679507537459788720055159678643617920007705613055691242191388740131854399269536736543813658403944445388946773733571227488158833792812887650353308978017561083450052995800788593978118638483954286386910840526427240609070077859872613340585498450904838450857126152721644477873259058721254856757436374433746718016759476888783465205231487832072403166398733225551783237524712504479550959878812270452023823516703735194448646505950641703127598604772758135879969496309793630324079847735590128699163220747900073378263875224189747596578978859831156939663023340685025720089831890469726887089938771926065159496424548096503938343879585708069649975822744964342310643710930570217463410746807487761316991625852730404436290358802638628493117444791042054733614283042051662854291186504366462545389070828030415591089707988290269085076649185269340249311807059357116354818441672004429976162161878675826885964253720675730769325822828586704345909044057820861378339035036865994121875327055067802441136609540101409383941041720220519117572997416516570707441995005819889009768174521344444467293358721139451751492636692139948546592114414769836591033594419446544465893044795231209324794073676522012193012640121269933010373460484316663284895548451995320606503581681064563156599709173748378731897137839354148870733946428695196122851887893586222976157191564713048740027511529951476029759776170959922674193987951972033245493344820804416278645626210148315601798996919797293524583170448310881084510721677915094700926631815797390272729957503517752872227624664453342391437324824099456413501368056826296844873527254682567323963178263787253922333340266947371940940333776572009924472656274643788174832490516564228053938335436598307936345023146774359051519952630731275569752778022666456545672224308729186033243018153078014969329046755852609069103145368148061484607427094539732165904865114827382424349322056917862304450154365225716561466684470709504839249184925215790725595223806619827977515751460730350889677274305107013719907596644870132674671960675674629724750863227188478106847153567696022194073015153745897136381955560750630394806302539233920018847716564955683380191242862975752500722532082320171759951667286032748892477050350777840328283679324393140553912001330162012328825424851060586682013253331437170450241138444682925178027875487510848686920510080028802690415155025940558076300377292312219783183650432495892676864322760221351989444151173192236759340653588106808567577396354416321216037528475250152248162561165000431965962384142575849908895778864823310186671899729858252153046736642049390429715527674599668304220642035093642271938025527649822596661401877034670458660674423446074527660475002832103033302371642241909828557080180544198165748556595591416852929819924979384242653858070374979531569340165235368092933053987845807403392507590201278364655286340200058203144526699820285624189079445158873743122992740811726995443103235239598315988920164746582942087502547241472242937032826720768034649473720113382978614274280569916952294336615264833917518395573617275197346482971811041445938204423933855119621847812135762623509700032469843184684346565858027073433468727362474373254193097534274109073763891188172354208407398266299399822873360694502947484232160970402691642438192839979000597442464221244570891002355846935506463141152863642460210839423927103972926459829600492806290786396848822214424545827282411524451379632180901292758994301570240855600277852541780067193671004065353212347768347706959131705161746194897617151380140723802915820976439254866349099518521660734194451391864199553737853953886712371948792389248197606935393822770029973812116512617350961200124037064857840013831322694541962874467120971192440705226152840072269924935164156397706270345119477247964489166055091840305837166216992612463489581171468397105969410013414999157647199341729957466675257898479900523466594701640568633571263814786890018232458021056936064215528314689787853721689939082756455303113404855715702258497701063975404510068115490450116497665966121913313022669970027599732850422076830920017727311180714725316989098367369373751361818263595967894060792939881464786961333498599720457655608520849262911215680283182253914978101481304926976982712223347016470800131973385166786713492382321732824259468947708165525610214492650059297567521441171230443130034813821771300037278542122020750022984371520920063714736118014333974374754183093365372792490131006777212069938254322485338240831138834393230971372761382441633091033096658148535525960358312608091053591588188614360268594133113795822913106798039871021168390607893713282472354338356199330901213945561820745068716592415339416403652715558810156414280978108088724975673859645116862025654632957399400631729700391627738427147837942824639480424752478928149168389197141032952622001977205998968249864916097840874191627971731381939169652577729225681694805147479433143790285956130013010820724653316088761782993729127861533874867847783508186825869330441218035314181563251739953902428585758307587657238981634227407866891955652845506895207075118393165633949127728694819257821843785171701494113036710853516992359930518660798404548466918584238605932634720042620156931111012852610461659418045005467199565416291149236110828115700011715522149755324719384068182866761187113755597177166900202785236260778626645249726653455944371728012758678041933888617777793769200768008211283092216785445497566194014951100266157592837805418656323561224151513332764700429600584403088953373546078159032955193096744524720957121261100144641456264090216597692340982634567399746107145727317201569039735017170298761048936718166972863258255045454303572222675741518680704484198453244494129576851920690687212078392549673488070553344389478652017614922773638952379442099178478428707789948743164341495047292793862562647082340276185109440962865693482213341162272749293858266818177328221342088198083151866973218670183878971090230616882019490678033111908477470132001256379192522853250726236489086483166318858598715520659181591733142725122183993236102042930392301004212472093998116004102464244630200111447552818260550295744530036874449771536430262399773546073089351326562801771799675440319952453010757871846282043147304238495367822171393471071890879108903088980336759453786065647905964590901678881337577683591706894218825505383096597492661015262389711592098522068227823767882742265609932506714520486561675289354681609209602356038660941203353772057679280311207291622822113032639895411702191974635130826218640633205444560696241128733307896008699225997770515320558574529319430715981778186385223307958417483615254163609604039380378398488544543807907768224220615685244313420226672218427516508847976980128493865586776121476363155695376478910910568631061400106641175816839810312595560794037726218435760751201880121252806233775953065432469543214155708331354736424261906518043235007676016670615254488365695884532913834427881315819691648014599198827294660119946103245254016263413950925609307725193005050368515955366132721914544616863199527923216182695130231925159706225728304145399528427899024313504488289259740114171070481733331847897702797546457923609609001930186094138539629686054049272082905367357379980586465727133225383877394894895121797077107200837262605398765967977704771806546674200637758673124720137605060738049472803755359045106493467695366896358405269442548185420532184749862443052510365574068706394486490671375447340651053737979869150069565166821333600806993957358295833611662414855457374331738934797706193172796900827106970352467623535010038112141194333142125769135274216957249724676597475624417223670875290295332066314621200891384929721683451597649633966414608330225176093752226035397453932385104993682867954281829961308294472714976894993165302629172634162552608154579313436296095025639031240445988098742439256202964630979119690609456639119300021900528095168097039486258943245831082908394889123818860470444290643389554738085613755532684711107676812916173257712577681860087926491262493193643305247142974943939992689670556877516366637104421564958037229829512032413222210149352069055494258079138712974364960830587443384147991742572494715951284785276102049307737236973866231134404659094603621265650760408689781058484398167279082734852990124070804898223296262655832445124513830249119434177188697421104610278573211828351992870144409343751571016766720011172532478507254539901647218940256076737632985654763744180662711227176657408158517666566301420443368846114244338945500882216390222440414800744817685370858308312667858016107589802120273524947522745704971397941079369176921762052875874337444943915597475984574757088289488027674304706186311954959157961296041718120110564317852991934282968933614972687986974363895948007203634505280384427157644429505352939863958954385426805289407101261891630568577280139134336936865605826628436760340894134334419733524444454096867379118707366366265372135485483735170604957317509598502862740479637012140284940106351173328294316061933235805667089644400093695939883798488950568393301227530139196213118639793709478752124007481094073580675124174079107019129148010599169720991906081907282002971204914747663755827429098443560656957737611099014418786670668750251557866069194657705945615373117115147578334213996607321486714342322949714443740225106371639055429613651388074641779811590721417095205478734976478755605238119742510376659239312563637565398804141644964573328125800886573121722504689691631130089727992776160788804704151738666130435412013399737400222385542855497505077122184559178080751345383867032538413949644995971500591590793009774836295403863063195110572765101432612643024392789834747763678993812279986610899635849038188400225879324193546570415627363885889000756907219800352164515513468679262361883861776171246730980020453101059931902193122560001114615249571724555196479891071865530293547290207243568765284781380403859460343606598013699077727499875685497204311474588691784257043017675182643525261152435940861505750831730400570753557307962325643175813819013594580355983582578956427315652910008396772477422286800607881866682050945427437774081896203358717412159129479122012624307712096067962263301235420926651639560839653835027886210018111058292864345659114657928993227755469696538023566474171578910003489266850617649657468773745989688358754484075020065994723901677725603937488765364298535149824070864385413040471894427162363132627516341332732966782139329934322123867492784158143810560932634268848991859307517838893086480801066271492869268610015375857382512500013104447920334444865108690615029207073729243649112610733568635552519998835617249688232879710520086979496709444817389120720266026170063948103045232047958287662600623781476739048358982517759144975859455362612480196747249707140764709982126923865832109627228114012264219226092638717746862748685266726022311764596484133908936445216999240791593172744824300818366771744514235656874272487089469625181049908163812359133357336341417013084037312701626129865508041029142407137940466444743113963908870647953245235932423489150784345624750257671027814651205024724607463395854570284789740300431632765453126874832613062697990268756306000630021677279567677383995997783696573233408279084513678910847669682022299547348046554612428708994830814825442817425150083844692448959990852255928826585609582789711139478324798441559165533508357880394489162580174430686043248001198855037158990941463846135608124622248289624028626256905323364825073140600661112048846529451756921755184474447108436122620171073490461931661278215419847416978896259914930638848347243070857326070841066456879341204645116620536854427615204791467453401324432812480310446832582947673689069297056179426070123074634939952196316510051616895594202280011748542945153237900369015755852271908347491361971297364010752909204457082495509777147048533617548262411578037364309405554212847235496446144683016152278500298836549001558314782967183869387555377215134867987717155563771211031583743747266671533118348827355299952631821320924842270331909329017816933154707792660804709761637784289608084594360380800383392532557853505124461469748329085913318594810702797086584289281088689604098354402984022461181551349009906640812223071279207903152954185161566161656298346956134436435339490688344190769613373926143369422098613696837729766846202648270235838460128453547432032072480792397748955037885756158420958225409426209110488875164565546255904756064951862766081334612003519241028103128766862320543371147640228983720481453448326051875279158577330854060961271198121268251102372687660744831387342923783071093059340960553938596707442652696287292805288989117543900609101115754974726036519908430212223809488958707288184676055219215313497512171735391000091994568541800317891664967532191699387975408718603118584762864402131904277891593362750152440134518148168536428209467372662780706967229487174123037722535444007806559108108091116699937169731875143632272648309218833676973372165201414282099415065151391157613013922755033473973310862110556494927899906109170711713430254830405155388094521184315561738736065476877271126549151230049052397157563990759863604866798724685423718862700115085673291718670707565961292196215863419917460465178592414544078587509974655199763183358552449726202655393247615382471820574139822605673131335098618076890487006556094662040724741110904242172881515216223333442797560294979779616443711817043516249488631883136820249633558377660924733019933955806120575854483055644710973049477215176845834827575401963440634792001697383523455876427075101431570605420061838895774909913537167253589167495151222797529017849243788591607009934455021703681820430212609402892562941272451068984105861492525485387463222906416994407825106216489357190998767215372743467822379768220895997174440430328055585278658523268722460651838926763036289549285402448171985578527406292538936355393522614819782660884517648025786169579890662377273921672098249894855246784936943843701301198686686991368356216405660608185867965447207953032477713057334153150688671891449725087951146452967306442899747263897553146947150449314581114676672806360230540240921649353134428892749463460547574428501595392310535580839930550221040933627414918465148131128662137934822571553297868811167622427710806002358239762204631771930314201600538250490024794993893965828872500288791425083936964259305125328808307585692379951912151461950824630326490619074684548051322668383477557589663596109731471784098674239284176386536173710814435532460571134402769997978024872508865856952837793115949726263490693827118826410699558492912036690388099708908565113780722019820983068819107320047099612063474586979494149016512553681069629027471693148124108632725716099944740754722734100925417167457238758618391136911752083424810422313041485656104618771419153806224868080381581274217147932824280883689746003160440317415166396285427106963692289330606944335679998110996662647489750050709718666336325612478168990566284433045473781607716740577127805692716483830279965806338514417845312114298532366671720519572347124724884808067993975439724667747368524920147985306193932684362323879472289182295297495580231364768036400955302592431364407342171769351934610130109333144628197250864957292310841791697410996794310786140048160389457197485480542329597785384376950461750861595325946223658549853558634974069558263303037996977006175126107821212880655127977177649799052256373707366614697158775424618147150923887502138073775212373275276549438094001030855653619038626604310101551676311711476675242962755759764264242085573822456083347274828586333987164131274515846342958576794245538456025598247348900683191096350628372842028397198170184075231243702962386586079004825905613666054821584103862876440887155370533067043937246901962294093355578883152626823975392935486953078463518043745953814227039729332549582517790723729356470083893521555521247534915643992320788817231168247284407296964265911598257851460424203971168483378750380602422048586989755587993719345193713091067569057378283775102604216351644757366508624428310119509387453365482254216872155929366326398233154794616410497785446140602319771556602222662315796275708240174631123723094906789828455206176548329504253426837784494843102493004264623736216554464871031572557098978385045623632463510579151497498330367873219323112497636845438814062829313123935537501371965703422319186163766853629005117341695271639974297333690539264931894429271457345344777569702741604433385528264086510141393493469458981972257912670277011261487954594932669267670424749065060471752542580411243231814792943707724179734200942966081259687321291906879525399504428255281753364463170718960287841582984869705392794788562067445674653046337455410785043884142707015402053996917304999813329582404398405121930247561709692258912098331778120861818922095574351772073862443904495219414158430961008287541387353094078499061616836678753700386455802996644135048428731787934116609603498840312288966727884921974217113900829788177545981569313216361826781651768599717759303218974075637913441729905999995090746767806084814343051416730854211630268972854684961707275358838513267643046993526761756019612888683895939369243609780032112963656482965461358053283390284791563805513531988387803966650711705952110160384166095881102982321340685551014590838968236274711476432886158879028135917234521760463316798105516684564295942924439761258564169879083377920108928772488577814381043825868761814668181574629116570572431769897997767588754940818296067057531617458887729253489107999526124886632923062310585548891296772554069514856447494995779225896992560970538254060768642689391451336062341143910696248439568772490280276767594595184960358256313721457051729376947854043730313962010266361563246125179256000475343923236319449934235250345882423695781563570148223709489698048517974534706793105462594644338419421531791994041364307003032508376165697607267532943840336145315078827193259074321765256689553420216204700988805938700196411837677326700278409484354029028317994251748620602885694388579985720484106450522015089904395114486059379326227228517685450615261884153658266412262151211782697222449696962008388153350365339659006810917198005740553068634833227725237468717418604172539178896067365374364627300187194070953832644632688525431598965085039656307777888282059265826978686940741256511579898957007150070645810607244794557316137274466955938405119448129028762389260860806672677823390062671391923725658428369566683388460116536767033148062671911905590399120984768520386821682428122843162066312231415917390664409260688462633325902779595246091812106274223847586258442348654503922341071444381665593831335257684003735026598614447513226961958873647983848832771331748304244029428603429445997919174450824021005501212111662914498252605027907073428202709317855734075652856395120477720073832858398089569177600216976668233095328920287124062995487696405203053905169958051235987423555444156048395469036567454559232786649743185473862223026950586109397483337321199775084891064278827339569630096054541281948574235958418978854781193075206738630443290229715362952176402176856663032468945015261165648017889812032471852470138305188509654088989740554978912758710872982745435927712964272698756598731373057796571371653025360352677976579744469057411432987738163279497720912309729346312508733403226000821088864530188910293064779048122469780282055454076408051691800890150898668033342147500966384357875244996093330644141621012834031030849329469105125775380845339236116577626413839786565356298096689936929178840187342464650762785740587057689354037449290550958900064694536384399568284610656623773200601603000926197040224948762238740366287938245450461426127914078414208132549243757567261563128393518019870811154348433940504802961763947884282327228520577712982752268066632099060423202333933892190153561231698787778391038688215691863129607618496856461825800331016134745700179454945716644955939676082229764600992376305018040841420688200691551932427901908945025924394947014133078323724304404961547639359826619836500821103788923690794086544886349597719588981067668218315064831189574037207061830823142434920017056188689916130602638059017298764111222926757179078464041611192780966321002042589427852896973493589935443616190277816844540292181475865668255032553556938530804316855969740190380430061563564352984866916207608858494288840690416774474085665372153554614353606068028882774597951765882057962194558764998059501638949485525088748948387589866599837907154455070836897124490392286534494134063365437883847337365651872224537668250085847540813191221408609820838005127481676817425051203587892846789902687136447553892979071242841487524848017925215695459036286894661790179991415910686051221594601885511086128713597433047658066281489844117504829753449485405154037330843260203229570318715135614562727459405689869554245963375259156828042872660203115887920796081372124131266702233702236625545730503399112456011662274817948571522920987598949396563640846121381753343607788854746514971030574801387857042818914809391555127015170313619302615786948004734762516655938430384841778655963830234080778935471393043653384601305453623714926801160232665954646400716450441025083330910955692333757157328981309917152704793944642899951999021257644472148054923057303462746009577989599371742155736545332822960321168103808475041278137400611735795907935330854019971049948681647431348585973310891592111847507364809965458376155216565192411199774379594662721231670752417142248084524319838806577845161814657472317145748015571213826600400754868225230649201608429630184056569358488141014475266530784324448083709975027695897008370795544016258614878201262782523328109411304094474928930381663127169987132474839803316891930294107453513507164801687339950068911769942287316714153045405717434890312623815696586054239243864720500473602559261201222737467247261335495109135817060839886618759238114154071028912570011913862591556581139698309643135954664508188787769388626453793251763038499860586417429642623807581634124608209836813281512944988886715352832381618683582860498208387713039592034644328772628857356541557756349537147109778914603252223586476634017095539173587505508136244194414005844925942862708933153126270810312198379203939374102540974611832567875061695493600930982310521176252407284770629200810697197306635189981895750948778453630090619369474028206474788881800584464478742694619934520207229211931963332141332881125743698679581864464760908794441430805138359243086425352286907997699227596128944103936959659271919332592801389907589093547733630149041233059529794656376287172442251113651012528560300588064924252012681254162592416749959285111130698013365783267484052210447708233079842558086182556852784475794373380173899714292552150113611540367696514401614067092778696642615994445443904553911965113303677896084233272346650263937946611025837296323092776114825328739902779243235205406225306411507294657235665592606405352330436770816839720471097732589494967036815761448737695735791876414769322032631359538035716700580819233625171355972979170459150725859122359688526482053330751909581261158386275408455410999781219601024771080901159976739262240101590276559310717407590987449244016021133855851354046502237496694351481721234961786342804492319478193174131029490142764543074516883704780101843214718774172868052365535285095723590498469020935140133837999715474326355589441634170135706520285619589271362378183617379347685150552847697151448827001319519814529377051003369233632278164985776365771135304668302506185922659579735511390000367592091707245142160454097090823553824177231686297687055497175774764882212581752884070783935252242358834326524840016036903531455168652005489406069522159921142640486616510935975535721394299169526533566262990355920118813545573693096776632380143517365341589912146657577119213848544895417573832564736658280154815383875909527309772808947150103988718280034768442217024914807519995043187098072257107520658355197446528509896052251754407876842890837900338245751391446870261877015731741513671013155145296310071463683646410082599170856822297260765403536032691262052004294967280280712485373132590358590191092642962839685592448860678283355025477164123612858770723166944281802250417832064741979458533524750127313304172825947969749495955300735032155894182472671710768713656636812855488560029996920336353087760508297434252793847998914020830080522134400447444706972849993160480110482349452346522886699950028319369608520021768284668379484661229218190804333902082168137678195716841196187418477276522078515106076742222908883561454737805112311768424928774519997888339116298212264622437190213533826914335168826824444935737086024195353270990875446023277541329770790234906504187087008701536122690262626168568706633069705804868599928955340089707772397166514859036216827769678203780825043933066190765758764966127883005222852066040208286716231452426189054642115601578910245699470149929530036785956548898002319745291755425183422981713240778556471274733497866705601661990292052864887765218134222372197062375994754893245231112092414626267726885565203841705192256117805513396814364190060087440746918826902792456047016218657122673166692853710248439309781727212516648992119626081421354809488947477547429673874762121735144519385712014115116948064410091759628010467833612394630697517742336690234253011321865698994796092676711443031927975482753499729855859587341401909749513513179434979745400723168271486195185440274549905193834237143542200215831752239244750289522991867679990422291786275490205294090589028733690262769760822522435138753601763367662897346787766715763866636088997430190006319596350346680999715174137894610880705080557845419767166834191206023920215014384961802697781290713152321984730614927411137931915168546974066084568920230781860782422688097975527368252084285886255193565417073092969266340428914589413564932079499174131406528049372367065536398472938217895048209267650377693061116353256328253864999553512123439273700753252383779882912284702467241617360727795931879776789957445593580185870732936940455874719139144185749638014588784337567929663616235182684365918818027417794606655003515598014912851801225283623197637591064328906342655861941382669925748797622808057433249169952775483849921322658208727984507908740233822485178708450053012000119945338305688224329912926229286895632909950563877828943625891417861378943357717553272453023767439640913710919786162370442890740724126113083460328191876707532217440772352037255070434900285854778235235422236169170568592431440574307635700917434135983180871567243268865198815800886552958906261125221810890962642008685517484245759655515299315190005021841036621029813004206144084986382903609669706990539163958787752316108485515083389483662826135224067720966146368422649772805254014902843923434780837979429319666773860729467964234393494841141761775711664109383659866742724771793655188661779268356021693648369215670340621845642907336928708196525171020035373083435711252662106116863400823941005340457481238802941108336975082496138128474284050803938866781425378337789923658233968477820657375838982428254720023015623270172594077285563270623752459873699981575659131087441763994391127590523475999517539807412617336974309672700038222551157893063852879583181322459333174205961173774479622395589796619910846369689863049312505492324466803661721709350031708356263594414863741999540460628500202235048322488576383065293131492049191224979367871474073875705201378406229284176995534440822333981413912284965431747329006914560558880174275839746593870217126660197180896084772697996852552478934903368068446311028063953644650114722183432695071960159283946433970082894220928642553493414449893333998108821154456710689438971908266401196932031435131462942281987070388012176630941293602754880707155292634281088235145615759358503249586961658446925769556027755880039600568603455608217237254647754824720285664485590814012117931650682141436523031506172216883644543551833342527658711581393639086128511477043133676066913349401413291817730836372665451993838711073071571764109336340865764051119353750025424400618621848724426853397199919016574557813245493950313047683424240419529735043521854934638606224524183232089112924635548634667958023865393716711800714031921432372084771507635023587196806057184802887795585260465439975668207328542982381197230065153671570078530173120531757402452018049523755302586540997972568102921214187597730070567987349991979511041889180197174784211890418235292578723413759561066867057742980809523683969479437272731538489916916562754537037464354152335059326276435223644338720950616122736697873756707111664739987427615141811358347585695265750686327471132701617275079631441921118547011058848195009602202625079838390314605446294262508232058022795647094612118355708975758049801495134223686383891860888044956516974480601673831665296551982734248984127967962585696220690970162620376665627207464240789238921698162330918026865961381247164290378497420500516981584271131602022300474571136257810628116519230201792230874201400358645204092705751811655629824008941974944651348222775941978980324835145434921336965468305087075986140585850430047228593287571340048063964819570213885224004243372836420655895257928120850198917366375051550235843444319989662486085098126775538737248084860656877393623509243175607328998655539479274651193759878831918230537561610492398409070822159998935759280766451910344713746041489374287235649308731778742002681413997844881099349153432253289596833728119467203093143405220690912688870167537505536921774808174403346002709316531754463632316771919090491842382531887480580673472831140326674657548780187189863393402232785286244174093865725117599198566605733490964813269487465308267751607125539756776490493250636688535762827252778623786743867440676516673831675707278998357842640855714237815987950984742880265876695426239919602813912935312190279662827636762472756141110298150537339691762909280124898779300641281249469601347200468467976390714368788373794022509976486327751846199646148688597678532292940411474949877463751582951623004009164945451891058922851381764295281970632866294191599922143053687289669316701350532880588778338294081605250075476774121836778654098045961200648989379589051489740373053449352851042705379929893759429497247506262754313488243602138835073949191633255426137935107341576899591275632622692984333257109695462889134340284569343267677631821844536432956439276176661423450358315082464663627749189268862505822133333436905855318159322278706215455660468345689068643844376547292668623376033080744433896990555175164502329493627563186038058459627928786112981752227321592264563401378425990252818003411942115103757892267731508701865418376646609423254248602656052259335284774481751021191324699916056159983181397214328799356823781156693482359888231252098570290316524871540590882619363235335525055142818618693037271431924488965091628507210507214782054969810613462854229818612595149720597528509682463365210425724273513263041118744445999156343043783172341946358964034510953690929827140885788363186909217378087338778601769754643996122897727628898588317972096162835792810180339949819477144332065762573406926829264098643651758366707656133336916555835432695657153733825336054980516306391884249744857101058319352706758871413924506520151133245305146354726869743064987903854277636618932208707961338812678547772032158100380158205305348642172246081227810806510428714419543497559400199883534359014144007872151384841270062188127922120885566133474161219030198970925062971261047294907309835702632286779348309528224855540222069700414887545474635765479406078282294473241014929996195871396252848725990798859837107932732782689644210582809316084092265281909483374636861552887592189767441545103873765285752860722179648581251034405196988157648802080595899080968388022767534940998747677348748995607765739546155718054386510071137106392615101248575347563874290937654297912497723910402584573368367285849934503127193250708235612542697858516384197987623391627024281958589641341096033349449782030872537207892557081399849149637759587699642734157698029295312109031586048155914600787495053090431773254919839404582437201985757710049720352999003514493094807426742135694153526237653568702203375810462796474847228034039085081402886747116551202100040729386459492190008397550139125695001098589990432465077697015601580249607953043776640598673942893448009336681027157188214470825402872163109830311845785256800748442515704457406549761857364209399900689704957838470603327500727094183356675907178588877075264313374806006562397484833145582975031955028827993124681287848063861249879533153807338689567973058885735839128657084250488455040966013494949903012736280565677534994216912882098904198132640577288933526435611876479697344029093876026100243504784308978650225244473465317136116285157265353831715302928793910870309471212532073510114456405210879693370820100168708892411606537268509598515146978745118754834484043455206120930120337236291652390224925133650300905666435438576700253837889033683999904107608466408590630431962705425491049645600477353252132019883750371734206090294136650215229940506275165734336438302867933722312093054714462641006961875759965041592729310436130670516198071791094491852007653338581200430120087396064141107793915296535311842003667476831626479245354680484855799408081510995036979644339646716909101264526672697949305394124849328465206220521502535418563241982705308380495484445166505004806646559117226759637987550989147585525430484213003075440266352980757615686148830016733926404954499370291110245198596522165786999514455264453180496270047549509550538400528874020802829447054916810000042350378809892145594920085464459918410386273355375505288773207246271428971612202999671912592237012559884946037712447754054587613287102951648708400269879793781934604459760500904549027747938612796315769847019605981828735740380880569240815948819596902182816258348345228610230805761695835875079027428551406718461799185088903213924710016562985055049952293387184505981732891966140091558043234225381232478021544552802817640775587245496536312041298303413488485527937882239229385962837613715884086921723167969146300222148668987211103116292576972971787752445917305104119611367965250955096386697140379145390930869830487810075514721083364619809954917157023441173268355988922649582911426650423139283940970312948495194920832113325840483755212904182256310078476644729545936414418547836055596290147441511989309600417316779583314615444941736790452906189937133460377152569892065434701151341498294735877234591280770441091952550734453959355284032996269106399415492760360696061018060263571920910229017430935888473504715025688453680463317726794705766976917204725272685004861637927246288878926811087274825668152025459431846490250735390767739502540356637278256069193845729284369564416389654441062567584849292320095299073033988467352654333608186810596219132744318587412728208726041246629535333290023331145058341817473259314900199951169895962804892823092083896891114900305926427711734834064894823035098602949554225830453591443859797980948748197699752708036774570171553118253221781457552051364578559349903036927125955273279707681607227930152513330078537939117890292281730057667951211070960445578190135957889258075707190397756603911074926090889031101019432667643890279931602602781588083366820027355480715413635365816586540901562762413315811238506645310777461329049304639442664132946719447818844559155243913344384749150109046825045053227853722764262272212924756944292929653851737945562012214063457410990316337011102298526185104147552260999111842548054999417249604992552462494387790747760086123271189979659468684387541229782526609037615487011639007721682286913562704696153510691582071177244798923342610466893282979317824778884872120608388111456593701441404025187257029527991738845310700702807557844474165789915539687263235047071819023397937563494092159365761324103583351955041306447977502104603359888147230008520501529026474079132615734823224255622587749881641556107312887880739877608753497896056282340717997232737684694772991860033152156296998454233404949417908582048378707458473579138300103069728264709744859947608991098687612387127410742910524369478831540989539489716964299152740558173485164644442104214188439711478110356241016126856900933995721997694201859764373728168264048317312652585659057399967353578450177660876152690388151730623217744190234271002107237337352491227784639196800204000245374915004392569212570285291538155848417652695692084907976594232438483229933385928286869263666565809685906650432485582810747929682692952140112139004037695980545552177871421524777813343650199727632734171778423647522447445259300301852842457783307289320625410517233774320287676024258569595115751793194761285092103781906349912800331528584508443448338413330609503110269654368698244223458235522576132280619031399524559327236891321553716999190671216752121093121368012137252936473516385446054442735377289307518937619812534144181672427393318532430535619352373254959712763406885628381367995837513866862467952641047359654752931916031783716259251281463767561420228053572096459310359686984738289204033604374378130932376149908406300488851387167212784399049198602910070589883215302732802118575921609266845788947701550611657481878457734250235548600917948604895137938182761401936569756621880273904708738043314924283834826140646319422042660635163276024909228488940726589342057852036035254559437472278977750675806527590408372376267807715490658891886267827896675768107277069530987295137784131164903854427318526711866337597341420392973260417918432127755642020127868431829191449350992374614537795144931222548732645526457876959091642374417480316395798850783389463177025868946884343868988886186803840741545233961122513010002343752354017258821760900365535723701618921459390232586290384160624942479626863104670047872882135791879322653554360123725259033118207274601889561258986147515739959796780095546151348438554648777124772161923280589057156586535102199192611468971658121509051725293311057704456035332319698521735288590189187913430157992696051846247970774224303870568854100874855482840756447177811603451015521880151222497314486660734738030119621604428928818062095700037493546836194383147241350621381421963623981095206085319930803372856522923785124323609044975182950542379543640393131492932097446422818980660729984382848390768006094706462369501321803826991144910671815247858364199949671294150998844570350870976365761876846037882267081212183322592010913288216281452401476424823442241743196431693351182444344064035197441271685095165845718108963269485576220988802911676074929259659575819855527705407918525601961602237603909409872126716923120836118760240883541279891955818374018852105949194762564226831550936322605770705644600465204638675471216783940252440794789324609532103472239684242375869199568065577942408916954415689514626246942554199079285230760978432295647307623005375952264466452427185981899089680620367369651786508194889662618411401633122617739849813823083087855425153372562713218393037128573122604315904161352406038273169883981079118209275635229554493959387283269056241245361344675589003976714411412013753978549749129193766345020988200999195254597626987345358436899742979710526975189950758017229190190728984903816775588208411133827135601671846601826419791534883984329454339059841906320767074856590317044027493657529536893208507549301464890393300140856014159224025854481742834143769862587036112043544643583183484573295757442668714272071971223736321417715679822414451498909901089856448465475977044786346950258456323631894023519338246299158341919383307087662250636711334687768478425872447330076224450819586674395058096984805836125713117773669703687191262321604886513566358642003783277297046189540786168429500737483496788581798933606905434087469903217595664829786479385273770696595666366560212936902796830055101812609955701182149763337769956427095886450704420446812267469364196541620855259277503352217535494439394090400543969119194811801094197660323086237604602242345564040891129898132476238781581532527241201455753128035924439635575246563795496679325527723202908095711232469521925283532270509850636738419844536293490423465034914917526315568536372130041996043988062810110313034618453085590633633380361996249386916257469751790462672003447638368435691687295430853443644642129195094670292563631477578281492320201541019162842800347585928071509281707522581573453697662607249488589184981632463010247748311725607134556697940240426868907065625371025723999224959825621181902330929064303639956129975584567398123086856601362799323495129752727813393506870692436251377521247263921733315705149929490640419083534748066315436730655189971880946050815510563740208353752218628337043826573648629354027948553006916235196536540754827118539852567967096942837580857126997437438177568489460511795172868107506908652681365446723344288670339231328227002961533618235250564488022766588143786395631869677073563061547009568562287571415329546434167069136842233204346949202360289710996568590001527445492422883827589608939288392137729579185432808599649011699666991343757326726500024530707600134896043188208809320270289111267467081725378187931511294374220363220102932844950407297675769203152214999830214617121649303224870917820412543260581750881264545848644584705028082501953449750090968557651897057888413088849599337569695302239045120227478908498826463395264210997224650990058119936240705491931990184970353052710129561950208976002354339231975914412381836820612518257376821702808211711653007865358522456987759680855447923713473830254137437001781625623837292022344945179750911469199437976496955671620941372224055994221011800170777259080184498506202679910628122722821984728790583901840741660306403964347448558968307889532941869004327723337561034512138808551172920091180224454928675599226548740428210267468503240155072407727175361957256131975985765461369781982188319149528964492591169310468368604879271115387439116697072161048375387060314205434752383643960705528364142460100926799228357694165720322131981954271888375115988075989297168914847912767512875118007186043559523179786100678807070047214858716719109460948290084541667619260477395500598565409738893767440480237796391824706404300031531649568118479740391685083708684043160838122535464803879162121998687013600084822347995809741766101139880488248773465077762925502877952733212213841838431598069638010977116210237074450682442533689071579422484448662939976290243336474981570878102159163873225084260629281264949644963201485136582368744949822967982824555789819658358528795215656801528106153578954105880463568222182369288459883399710540085537324991920454166978752239902474435301557741940935276562175861404626013284166060967469194420920916602882296892941654336115905916406550248413065364990671849615514535796428874423230362499572556680478159105044305115318080326732097614739652077541439218169167237303428683178950220260097467927216505001952228196972281349722125857258517792884049105496523374745678246338265116570095395261648318711033842561361891381761519214901350831657776048543628433505544657829389839662607144375891917650573324758053394415929984984560315390802334893080662963837167020621248989918898987341964221488316841667904531625811513493517042147722993459765268065626986059816187563483215622824514906974501393727368554541935014985565964726842036232123630166931835775711699853569558175104059339951928631259050858595087690287496334498914934813111237025282016260885648218403574808322615071201091463138611882886468593813225915452783179165358576253857786342968168762246493947739969525129146944321574723100670873751736782201367220625855722051751725383986580887430229744159271324292983903245870625760178869190129018991634397869511770877245971744706713486341573604509660199309433100328134954946835420054079500179894652679246510490000612878994226662961382176140542477504522691480704863371399970374232574845870131701739544756276946214782623467787069637144633207146932336086670915399693777823902868805146517445734477142593392027105617217610297807837113229098010914745244564488904976414967941629924029481912956233436703726379662369272797096705095239238354136660075749001759201542983916314628735876107941557373276985837459082642266362316367420366499762745727406146245179945615620721867575990825952408128807325970134134901134502217979132096763777180998390436753556553952345456749836891853304478080281427835862458281906950197547097654999349330285529950303020332304038260343215803917397893186335033245048303859210392348674643436534364157743877495791473973601374332926291305034616303858377589429452272669436760307191714859307757107867823748462081508911886721057397271670845358870317882709863620759474096669832503741578368021599624563446357875209609558000545196752570061227359591660528442384572151859639238817444824541002191498386459067033968323730019265414579811899948989359457810328893230941884987344116541538835161280488970029289602901875136169247980227081130911799804376665504658018933483605482039185235454673263303267217521432763309395940490385891879296678029382257012524139096161751840700641434690432228222562047000803958124278331146556620317641562975050279065760458918419116982683633103541309758431576203516383088130249859708936847815043992527296816596507784351579378125207583007673131943039881646022828481127465810903734784772894849602475236867850435365284651156986069644969290023227912990895474774228923928830080813347653592526500130121768455993194638176277268349120845640698837207659463441260988804589395197079672593217338175255643960245689763386484178563663937965762249273185023459122574070830804030341394841794653891907874332174139429282817562135289815346020482266475896787175077229649152250619463418550756280532632666218070338839353914878642814619521394609514388222680759613584037074817674223821326337773919214376583387037060449357114456786974027502365549767700059209256841800062171260366048062090686212426679099181918972446594346065149056134943636386340481014465658869242474403881551004551682182889945145232998231540327774788717085487746731327667452747854972944008826548782077474649812526409123682974274283042276607627457551281615463875528060114771343101795110785286077486905379302995898315142797355605700009035287456884936854985480506617836187793564760931017256365490200630444918255007371686371469876243449304048177976258128047986160121081980980566669115162149359038480812420372082827068331722726663007720670518720103304196298768543011751163215610172717245930450312015240956680459634750770781293985396963064732738675533835517682285605971430665080547973141043577258640831348824653803349440111280740754585983441391573959803148026015003413236565869631580215966252249208449709607156892847486043046605739510176393013033824568528428441059180708328573663612092406619227239773564044990026326931584674195092799476438425944136860159144320645998019055576213185831014665001965779056161262093047456875754066985570272856818077318657289913207585951578275015817224226564831867823438871585282229711015362440651931101436041895279308178412201795483809632057355622970190371970174866139973615684884889496425317587419091409050164932565911824699280770520131770857333613960418227637005181785706855751121939887042618392611586723946972731384054631588637275838905587929829300186185947405651031093809264388829415872008067031542151559860017474027291414642819315921087650053737920150718542770629218189966470728884540057993994376102325345926487472439707971066607095488664169621196669715609653612722110472172073540931286108303172055583278046256984859085143155677255800842645923893029165218669052514340921598768016329241444209618733593740975995474009244946004058271438772436789037692386521889608957183717200816532598687037416495001977376758395574607528802985650427035831325371821186914523316872179981943984208989913140314137872274881720228916491371382002758658961007257718357532378783720698356276745159877838128299899458476642290119537322468096143072277512477535601327798701509754460631325296409393483649352363042614590762403865567846939595088178275976322744839733194371670046532846913898357376383480732857918024125053761029220605676348578945050673306498762356444161676758547181162023747979826009900916657635014160634150970725134992125929044603321591027673736669264219396183781910954822665278003638191440526853805355505530958814146177104118064405204595961846565639599179498169375065651971030680656398502305875771503392128071189808359274007229267380771425522528095743437043056606152993321323298906959271455119023818570788559311614406244695955507925400292075122943978103695024367277531861482169888135416036357439091086790827462156597465148611579261927162944954799729523204328254893155065680273271689737921377396434465976675980408831003356026069357211914559369666689321693896109289770274821377409651619140343003799980907733682095749906860101722878899669686744995495541420984645085577227631579067353722742230907227710956566243769686840444528519115857552346507908205224081035984867760729286894127177296447949630004147598361401680548615227197124641276144687427649951723706511350956847278977161841291013139653238421943523576674659569164602552006903829981073996282221079812151127039062431814533829397889350619572704760181900498824115453206359265846213760325543737641998458004945407402534634066240051726526647458834617129627333986645754576169276797068873238440001896355006953124676290751868702004657784547290310492326429146702962727098954260889721323481319251596547211448292561737698270491310551086966289559353842111811938684407272461808980664769472859905510067363011532548785137845822191094224523046956278189037137149310988939665896804483095802724525276130173259550842150169180533857357652101180377337350629250684907644336649483555901459700871016088823753399037342830902723825628665352817343837084925503545523077552092953194536439538023874810782662262194813588437215875983797860223153747196991661613284178260372908777682076903684358615680006594038793053952792149832681274096676964575222057414112586706879090387584118861756163206029527375540601934678707997511404473074297453797911498740133705952977320524637089797517676974211105493757821356095565057540311444324880606455747680585398816498223986559767103989110673142408638279430633744360465486202969135265756136811563459934409182508094932257841305862869178027105419448937027712789335548232929286189573859051997765878886668310460744349375084985322278374526361592800729654357535744286193592216168879765849498144311046530847247528125566807524706513968820026754447340983017146815761554854669444629223722951034629914290715505743757644786472317304430462516518200045024652614878152019795433493274960456432004769023581382080824456768677746637151450309802198377226447115069402725485834953634553167837623502159000475489142364669020666521365719142177430362805146681521818905280846844533639259618267729222530090577781933920059254450092036156796087501522141958108491156117192891320334129904507891157677067013806235525067314907940891604982956806766016392286688291758282734375348531715033444653790258971638482024627648228560444362037916663626310885824294585258803474886633220680509372154002291265320925531719352532459723605422832067911592495496191637139915953575952689405715039819037196358412855919870577134323960687464999811779334860387840502949648123080441463851645462422046349313041234162087883540614641441050049910791423347783388776387298154982710529130006191369351915602696897734757059930596757722288448906158736201112546874273612867990474687925856881532739334358833257476042367806262937194113404013416341861877973307673353413836453279173881870072369491494866375192782566158701805012354197394939613456262201553994292936863028039708177027970340914243819969221636899628007972552430369443806705328230940940594177698765986807486436920956339129889583181816660239296798407411468913036968795921809114790626002668849781332002718091318704208363857622962786414216048594746880730335392146084690118350208013806492491090411887881900263270353513335848305358927535793162846594995977127979952723589987269692282075922139474177307027762095091551196730842046461665466617674840161185011208443550751648915467704539660923182195364021290690720567935377174474032425393495265306447487167712688997712403694299298113691983686935675077211718045078321565479109476522417909767442634738566177836461055991683665399875852259097579527262588996374146417039093767620208187069357971542582558402978393852027383059239364017612037659521915119473441224145512354001746995382354521424934002960578411671592891677336014801833898054608038601051029524738467991252975604090030953204584560855646785441580210838357226716872638838628172312366719546389494031167351827312207984253719680440142667486816595035576639613640629154528285465508408157724518168121583273502164485508032566705333384454265646670669864182671218408546724237037434899193231036155988729964181095106266720775879897147681287092996263315151691076339901667220421918197915563514170943981353968911250183661405094298730556572171849846261198042279104038176714990486030587712481738408828085026107430278813645970940884266287263085946430223690864473801612299766909649896367238433151205454193746620071514198403019187478764994282198743805856546818135014739089444137381366928035712556522592708377067069950044910886918686584740305823937994198700715436702249043404083931863988826106943556909872017611682218531571094485286386631970303369456082861751350218463667196526224066124652679094200002360405232351518388724079855345216009031960331630797560314832490358029512558949066544874273631350354376506299379251924884140106032154856230158115782150956240567257763439436217231244986243500123423315309763249775796023273785312605612306628341974655664796825142147913625549744063907766344964221392211367498121991669341291941254364107642838379635503356606729017716656148931012680941898171670829721586451618534787258424752176351796612770841351087127735278671469807679502169657840066079771099752921753222595465216181909067964826891397239356560047993055568713731450005625019921201388154750487332392574744014442248047371422660169831687717674116412678359999033278973639561284405676408199010931972457855155214218576479555623150738660037086989477851955307679246130633558769792063820776012605119853674421249173202422725473895056271217420637583142726042376554105736283403611741401066079355504270920808021623042901243873605844422187970710211669220741585468676766495367645486584894601290737551832209923149196093519910707755938228849672082394315083157854084482059687466933338784607149567315769021604655770634297519935036724780677964839167327444824004748046917341434944006750123420685542602418230212934989188823969134777968180177696786026186121313950211692010339719947916715160800094817855608578289384575449122876515067718253624612628970727529619473998410267267418797357361772745544652573227797040279235924605843091034790832459474469481955197094049551763702273423306787321663081549223017920844131727253245033044826962536222394297714956613570753244350831313876254658240080199823424913574931109538059508722016249660236618448913328083717642305973408322188374104954721030668327121036924252684319088877244539051205057443129138107460737477829943361622984539621016699453206857270070277329174712698276266515033555328146824670394530317961346799581115631499804817371755821311861761909636975235495717609390659303943502378283877627474926689775057007095210465501148933704463705339327816947141846582376474309062536179933976186641235878784768931065980472158377055322309461211033184137356703728534300913195435454606720730944660745039588242749652495343097321086977809579224730355497203089993642311551406260647471916155052684397385436684019656162499050576983194523686801582965601122090693202078807533842252106955149157916766478722799694326617804060254348231237813936991520515515825174459739052389758870600776374250073127551945169547109933368058856656898965925615507916384625829338180835956279709734563764321346821945392195153054654256830923449792009315350778888861923295175920596562316043486563370801900863011865346428294873091524305106550191965099610595606857784199328495432571805613186553891481172055158075312942127113801327371033186181148698040705398861847034104551005798263590200886388466004303873815798542940797357199971868312324756045636560100642934275290712525250382534398237548738920765539036983944034641247023689022656043225136512551203407141971617073611699997460941988962247666242060031608063004196345774479436325690667758867725624691110398627836485085991981059170989580735466396626027107891548533915964360689009016114994206904846585277351863922862041529450410237864187166948634320488416193024122637684648134154701844743573642226191526299583394642831419827897044982812575693929224166792215002805972430241292311996726881448009264351003891873325551219159272265433351096559102089846369183436107104626209543244748828267081193592274820675525897222987735776465584810063910868233692894653121093177380961491889723168570130167746812915896557777642271523601467990098585865617404478494839956643305130018165004522083105489421594268414586099887476946092659884348958023524145752724354703583230807587597786836677373468471845255471981398073301198520106991350185196517909196746979961078952369889585470869742337422027011429131870508406068620885113340344354148065595338579326924995532287364877920393495435895954507187084851257317827716065011223754537835712799058426511767490507352359167895732715938187893746116459998033787052260501340272321775410586311557642104489850534962290178492516051660098432888792922700419176900149469871632699753593898673826179387755677588666239481617938262353424892711927833021149506024739214904849210304878726769629702892429988617817867227219887615881600716734457039308279787913725797368147340783299373790864106626675158390140865104852285955301766314631734771697563964735398964975398099615578222716601411543959455943322119455807624634696585568976160786476831068937552686095472656978662493659059763168998259183179301696671997810841160037364299024888015663556336266005489483561380574237213217748467403626640815429618754115671454249206079093732752080073350130627837351579337422508826006614049963265520997333397663994507053717904261667290440242430803729134850646402555518261330803200205878822099114493152107448558977310531636935201989966367291180735644364597385683845479025644313066970309598859729096228444678610608707921993881751351142425415275166421465083419645410047849200296240989761258634283136892992917508535210191781030158052583924468083542912580938150592874799351168023262389703681333545686434638441373273880675180903935015625322206939654668296051011298644264887549570879249257821702417729875834421262997467097506036053721311797501281095441115003769986479983905656667636645746190734921697149769498497222777870032447725200936785873644260342657304421779093621028155044939392877445909022426421100909747685709616631999158759952961229196685921429614429655401553416602279983955148782091996654903631185297459848631362419849926422050628265288051257255457866001684115156241430123392565443906537771478117170784372309148446046262887969487956842861204306281909334797116997791415161021347364706998837057889956593783515648952969143398747236923428092795295559648046208730880987909673797233224033007056883913390118157043464683006369163681666939220608853396545751590593527857126676382683154736443474076965153694977332295110171981539077963404237254205406662933370753760012425495628968893493352612259810884692775064217389384559466344387249411773239318627278036676775287852941985046438790166986372733179451679277427690292425209330016507696841940322309761322210449314864479374387464914258976002986243756574021661095727804158189564217338713330858992325985212055047065009873149348840205866665774606342375934190700752180196087419247917518617086859597915851538713943712478402577950174162095040327148425855015570555432522211350388135302695956153838781570654678201276625242955386845825343496387929182679381185606882677024415736568407554106964712252581232204036911912263693096032558932690534444569387091359580612880454862507551757753680252469316246290237750248169345870751783479865551126443782528504276800914308272205963214492114913664239677039387443051039789383865529629108868059308170557874687531830403755422223012222325619675096494216313799347299839261563701833744399320915162119398101222748890091801427962914253280457840671143128768521504382084768812903235098560615168666295321142682400744557807612906285326074958886510139582168901695389282989291780926831138274387951582707611989449893130636242469664015705567054362471216154151761011738949521190849167384637373196787796828694564147173479055643384273166349979904986316175196745373105975397986966224004154288710108330145909487957857197755462910577764085402030197880601753733016585711081610024986468922641851002386567996993573588886634101280828984368541043652500355875235233799367321791034396433234959669634028501922912234949639675842951785026897132344949117927311052730302498604929462369744893571083037939844949110693527644872736198303397306150913790056502400358932593965489861430413716940723800851095389217523115997952854803454978645757666014619573278155462627191447360984306274472282787342081516339798898526513198474765609782881877039586803058666177288842354475915265464867238741558223567333517411186512437877094747748941381912935730446236793724799341684163810557093038108804618950656946752998365231889446994444626952402140739035495837894992605584458945244497589518701450451085387272406892977600514745216577002053459409976595259832199808094831200874158282859725152101916062875915470685261080593015232216703584280279245973039141669174251302604940328182393746429237728575257112298154340745883186074499030789095433540175739738660170611914490422184925624941427769199403664891578450566606093719334030149336616728741963791126370202296699117853711739298029423799501545327957199371104326272197493816522056709656694146372368640886164909364737535504993495822634541307918965755357253659587361546395471913154879046814037092730515854371300149819472979558337205897043787564938115650891998906067605613051836564220502490415606839405115077811904773887104482512326371081749202323293179276645847911502571291685188303750733456040055825827947864574553449109549791720961843764279180791730049076440221315461119722238899406622454514066351152853357729086039835947357425357595351479446665360319288449301415805709229456329164050121627994508562161084149307913943277044566910563362140010532275416418639077596170122472730875929313085680766208735606264886766868976355891924965366775954064184288606909912769555345491067067614768526294266225727426823835178590462450832448230946870786176906922459075505365011976581601337085818388481588531058265056368320058310728320666596412404580499256222827901544897692293688668809475778533045554544810507781305727249658160807113310994761485418662480201541385014998896750166939882352660880457046909932034113041600192650588424890047194628153886210279725821630046376672932462448965751967190033165882859284029890797144582939168447959136540863800734679654540091524565057791588048878603219425731026490116364264651518211801761718804733905590875698195552565461368263306703588543646568059238204435428576704081650270380264835122354907886736309575521894152714069156653256499107016191554173368504719713160044317525067890513687191322114989568932036513898845477956222522996238744168303464847920082807940751412876131495680012530791780035162197284969584211959541255047790012950551797081934790306912029100111425069886194851233219928100348269081900358242571367425357950552357666123477076525426635935307812835868815323580020485750049092756198601331696879856858396551834997805182376728507168714263470760088392382588701426510292133898125904396450402231552239701214433457042578447793753294384064107163716259081125375258102841311936153997812991868117902063941628035968251114976832224044323574414879613199383530847282170449370194989683823940387545995965045071934503202309381254624999002766336293308962605551682973504657486843484537718322881353442830203017216098800008702762981632652945451010543006515436568024039099219163713139490132859554433813134727460297884934515160903753994053841929977085239380407275342115404784204197925256475651760260976438025862050352118686350487696416442410275642328938881696008995723089960518598646264769886198713877155953967823954090307773503520638296372672557779136311491926790829610352056366222815452436058589040136170419808273041313265218792039450726339971510816256189089990997506351732400535214588419099217702409697013940606226834133058727027384238214115479743557035953227261293156550272974582544990471014169749604819530157729707250474266952811743447111317440047063229339300429825334909408004428249892241904995343354591931048351861207309826964293273690293550284125016789038134315099163745595831166757263452738181758575469004479481081226287238557914260160416820885012161437010002577405649970015377007218565777936442657199581510099665168082366861995212917858980212825966314407711457725588899388561765614126142817567466440730089894956365473700521742950696563919175480905210816790568944995951403202821231124388272738399206886229481263616452030774388060435699221462678380431881810127176776507139180287082177341876497665252894983357113349881046507029976160860712995585516029283227197206707952499123756667445356002492066980280875499008005454281124515174212495070229589574545624606049597592364229518100617996659876794071018934426324250317361873704645929964179145485941904346651893282296196799991079882866745812662096987883897478902403344909028358727473774824713079096252062984613041899668736562121792004297823376411029999292215723061187816821699011449960779034674920213499549818333697386945750652198887288188872057124987105969902102647505166062095976190302006562405555532280471041409721724070685456743517944138323488419554512665556410153630275049817288381723165717708644611589000279915391396809492724080022039876420806323705025213557801256555478807201139906028838220130080400562592590583100575259653164803420550154426889213671238985026252572925679812612139530103095785596722936337373017793182424722374914351479543446138874376131362422915468207939034395486635041700419250927856479115796108870403458841218375428947171844477341381868190386355970885407601774248902500961436660978428010677676956406214408089265849898788345874537712828132262975495967672780926219517969985833324077556664266478248585165435872586484901002764513620287619970980430253930820162749519474440442865435832459946551029575534505310036082511434953505264199072895867948941845634278038784441531026784682958206455128465986245446021229670076980776434676442384514154536830554393726497882843502039374435186632636811768613065502844094505946679460292565812513682914228037595587438011896562135249593142624523895126357789536590672819588847507390725128706522195251928065919512825968428772531756065014719219829855483047397333762342337967547151482622163571691492237868197789901276789628606714140808350464851661342924917598787472163372206425298615529307799210419399923622182906668688108544528859078154892310771172110005334429291085451546727789849339040999411164513657157068125418962646961836280175647886720754399114251038253148902288031934936503782241350734846528341837979697531917593824711557896925839030030165658638612979906528356307524185493548486293092780727630049142041747746720912078705380805196614890849249386067457075693755626164819415654660774754579008568970535341498039270455430690976451277288785272560445811412315181833181110636991467020825965078972671197708771570580072665857511205133225879951135039177407639965389342780523778657980888691336934370384629745701063866563289480767594860233222925835751408836299587777575469634341949475979616476689123422064702992145309843483067546253362378312017565727081120511483193034453558421052679155662882418654893739917559044162292698322688096215757740877046493175892145477124498360631885125088342198777431075644669946402013547946243855881112094430678241122687309713481991391880808868763537994144793335217839700470746182427854536648426074718773436049459162612342108438961108126314179063490621655403207627987059239466276923184409381313673195772515925812358351147428554603926617050838619647799274522062067212947802641842221506594717197919302431107064588006878233532757905973882713938082086009822500309807517041046613126641148326838696757977390089209604438782679151187290029876478316955576110486533882756622083648983568842285855238854508727955162847443543006803561567141764877305340548188447898575878261847338897359257040282046732089364132996300757552169062937788629862004422602219647758778025823257031311244471955856485345763318056289290066522675212697968038558633250814045996042509659447828795544409180266820496251601408220005981710027363326244579075901268909597885777644152695319348814200475984691920890955104918524321740957661970530457755414321226593799204210392460094804197770329532551838778861401621392640370821291542824643508053587865355295693407696381751573471681525827396248821973284359377986485103442133896619452561667387017016161688729639661759114060041027094333575250922871322431765933360479688022914103076896085737134960172096551523770497882195723308700303499907502905492333962779822346081558603873140606253593249482754899909481447003349868101654486907800321051256931092693368701445650000465225732829889394891576421221205035696322695599440750077743301476755915982848124119022582501791487171815457469468334333571026766422806538182672088959294467633547710395624975964994677321200352160853177965532207609449679474811449510755721079236729984445370801171414660281800144232320219669234081176853596536437836264800644635335329272220651842236103466171552128343270480113077558807761245345662679535558484389795968823679848059600333503325542507877505063487042396443024047428344850946933396991178347109979064272208957247441936914490294293184845128827697611522245446671324046492789817251264880156148056289309054841584033277518939958099629181078344909470742883162430382147778521159531668273551371324723920743717902670895052514982813916566569936450710058223115805878076860677508753600279913817192015058639700713733993342679129236913113430550721027474796154658608618785042384053308068211959928567999326080111707551227735079002599835175797223447474982232643776952722029324322438600330126003447720921081147360288522396812333685877049688115242896326743997230571848188300972812937742040327717975657482885121425201331955522614491833010887679774016254972385693552778215972652251707682323750718162418619381356405335505560470483551874895696382498829360387176981261814417769083828812454344050488529661862289568017098858242401223219486913441916899965957183714936110839788530098571937226619766799716203546549128205103943942260291591416405857170346008061932436919769462598796005989074493791486072404831202468662344210284159364407444627532785146963602259389740452247336850959590136110321989350106458074939244988729797118754953279131767544046655032686686217704735031551030172821842474477817920566592056918136866057296829188405730777864838160242121817335131716073081336168342601862078921359530180202901526412320221277134636803782626543464315161028339823611591064766432047677795851984805145088385914953784381087091919680627621865277660508496612479196227406744388292714663128857565028225344482555354875948176751613659092963393165954374082939555974443625189063474794328273999419068907678910402377449436044583897245858244559157766800233807848177156596765632558100039469056244668704683734122531118545618889740598039811842463660155536652101685438481764408067235817749104844963825832469801141901109943285489403364035384496572174517046150293771673891914061793906322183615751238351240300191509919628617839217763224410990348802362586973097642002554264556545499658106403683445473590698271320509588534253717099102307930036294484613312168732226171202360545674574935968971899338270010995517859168776035917628595766841560091883491432323359041036473912668018411616181138392437163170699295217942010761383890276113772953690699291684668049156039579720950736666383707032367038285876460044662448047702938024312653534587809400143952860351377201891365452354199891396440106550384236958594936629310149444760821227904182703116352099638981662468774670387694997401161126967061429944889919640018811510437835876396036808575341107648091162513097015871892142530024543535652690258796009879311109886350962994252793819737116114562094998999769766984050804634659687159256505283011237253385548952063476946039273113029744632675379917919379874451700462648742368011921320289273153932894797910740086340534183001901791475131551647166329224708211577305541967794709882848400795427818887536746225401856569683861670550036956891167554896882236423028532652205923215989621855631243442639236600033252563711694644837108079296214578690197658143481094456887495175660101518193558730508396030198528043329690691151534371042570154781244980494334532365155877933105311643256028916677990214233264372259981739424851055929173498087383123668991167241503528328789029049428644813888851273122267975975486306180272919426712395652085546542675318051939927421762834359859208509234145793936706892340942518158538311209644261238526922508447661825702176045965462098397749834161293830704726208424884614383524855028472503643196421549088432184155736223026195447972046122671964942011509742144428318632211524080896487801207832875955473126578129098178944685966173005585370430732699814885136911727319612818612078072587250055613631911913802054879024182199053030793942556699420184898019979125204751812704225330365858928006012655735328141907691732664116633075054701564902447999579797160082888558965798425440792878795064875082262408245812352883580840376773181089843824939416714925522904148869501398224596485276590929092903432955672291891903017215852052740713826974846160202026810536978368429309957862149092072081490892321748445469301994991287603680815207152532977535543812495371869719035589306821240416159355160762924921583372955835944175889536434684621264549713680007333417977938390180953128935548507845144528300581824792122896364831688510871314396249942283750091435143437300012226910691299413127059684842827626793807687163890498548744664097662187822855546434769597965830739874668661923544507694486532880754540758789418986346166437022960012053876993326057966967995403511493900953526708734280864238382557563200917114730015754295129472762826608473261958189991364193301851159261809173322256083244896404896625010039647518444484769218595994166684354185415721331186279000913843897185796822538598321569644512308380526552730609950508156747969721250218345555105791767049078120209379201658261653793827665824033185813276124798887203197735882273528303294136701860665335367197285844793698750508612636554919990182604324840302702245407664317747595131197243765702519812004764566892498702252652993013055944542129740357855984119370378321067222923521155542418193125220779087567409823048429452327841236803624957867242406513573818191467412489130630038765855311808102289751590145622311165353538190709953538257604814247925790079050445003136784612684846374105169640376124319509422595906902165412150686925446897188375832935710456659971891130575027652443125609036744853817657098412402354240435829874655463179204782157251665930590942963043541185742509367292870866900947113780924147571504485687972283746812028386221592681642831229940807337616516738764178064985871828062325788760108293566113596925020755296364742445004609353685041796417831256027191737738660335816892466884676243040485063156235693749560431949654724850368535530601470539895911986761894017906696687251138222619963553666615020366341189689536735766686292707949627244510219813863591176937604570823209374323196979937181226175904439211727614916956314102791992428336720065426914822814444792163551141604491904575109490970800505134475154878351130948843548930565637847781124370131918668842963118988280572984253631911954223170057297732497633206481312094646468069895637546943487346519770330251831411809647199916018489187830953035982846286485427223393948983309740200331971350697998715483303479466389444709077635507166522655523895272910597907507570577227270206315123191929382618580088257532384615821823862357447828153016146671375042695948477365407785804618697656148433865785925986655475696040270835137759725253343741694412746899500611825164139238309438603643981088773924087188842349768275222345581684288600142084549459399702100374661031549042844381822883749171996788795937867332635666257961759773471055650335400474172828787808108147619045592410879985749649969612297735761151569543711206516573381453196256859355087773476021004798658154237849250459454280347395958918083274037643570207156179006986133122561395286123654646048125096543550465703684637768769897663555888069126087604630583639055526541392087465442380184422954942877711514794381671559253897645310607749838741501217294911994567860382770060194982011210486261000250382064731193899791378423483721529140163932730110686526607920775815747366139596873328500570908204860335227561562108010498922413452571439144383396939777362852267521423284024877075092405191652992432373531866624737507439459202442548318589879914554074438964935452425524168610276119024472090362602492851317668316818204293873773779494489923162228981232272494436783755129994421868069023957733411837773610537071962058080765108803897257099254572950652494259918913496348170728928300005935900634247778640772622773612336788679237539412566857631333856693507215306604174806045085832444729011100766560806146861718963372650897874679625149381274674721774428209206178095100582254534931166665075679092605627417324595566669187995714913591405260981798405200386842783663721500326039551497691297523285516152420339353538428296130041257720751692648722229854792080027711094878180896992024063911916008046411091781095358321731226467015594424876743356876207796880841078142785676006573377987458662436271992883785791178435267249330648183291149447173742164746017318593277256890354886636811444224505952807963209543298908174882324582440591432882375160761950448036899819497339277822738918247250041276300748394995227150245865918113207364242231597596912749207532362774786695893307471609556316886598691931892515606035472913102681647471086269234535905951514317207728627095260668314153323588181698602983814608481532579327260419195571972690430578933373984330493378675627590608398096094198090047585351197797718113978813942955902329301632073430018567183745772762253381212966872793158000167016605256574088154336113436794338755054753651204885695789459845704573864189386718276040423585607034694316093790775968177854453127623493012898755060480682953962584013642650591929390276908153424532653838964197079116511474048158953616204131937241280275267036509483326260000502653593254160616751797788191178046546018167171376950488058965932190710782209378253626738592029569208356370402018206240456437290549536121619508832884486122631223020569671084348797220157009350571801892072496219318962372176285343333223642777069950777353029955377459299787282084381354049040766204498048202755105161256601585111733797027098433605834108530516948555245436170526906086336244942897343869988990308554486584187967296929880523278260376506337402047645151684744582529007065796306350498048189529384767928485498297194672028155714783461097698252285834329537917874219021074571679836247595596028255050812428505518645032908862691615190104811442417477473632138356464873660111731786698252490624157971797992514185353350636745298348410212656165638309863555267906412468669341805389592056519611379162216478510996422318632909169440203637508725313269944118793129551764866648170345589000244545490170433220674162892019872197757178766524955216186673443345803444930074829825758402506920989506499693962204051656358344126715481953264634604357952481765018500080365268182701098880771352283961013870941155150948168210761961485265599090831942927550746082201085005358232422225228444892993542874268390503111936831744740434112017920673622097358636305318260277186936602476827679963173631635666530091471085386564434165449748665395308291461033618260666997728799607843258948515524535140962213891825854650841276350434052139824056856864240582320614590007967205671741965804343452407993149643318352968655534382381996385888190472153077759341071033992103279027332896998955409779842775117175050797035912961061623760138161803686980130133440300334703046947588488499130857934393503624940611642510845521811309265589417955118807698411437158772596108254299014254732785377169053080185623046262782009667081725836647458084138493164539770416796613350879937133069467825009478069594369311751918135354251605834140033302294567268854494875269782277497646323203018070679515915858806508101150270469075497436764509434608701469290696108893563164096966747143996096703542614089973105053384980018818520404410374355202097262517986414391433239557557062487049972961275637896055239793980545750524589239645266205452116337295489313946964365561323944750941330926806739574282591712696806846481858145202081129223459662976144698499529388491829548340814310946125482951020494284004736790276622637513396066269282486011858507651877564396156703080392190421028608018398049249256124491424825839372914104436441436692543220049231020629175885019682471804989161407360695266514363874063671697722648944514757261177508606509309728845805424133740145383583999698756256340402600051850477115164708490212451302774158534161348785932921488217334821886711972735938788933497848805469069334850229173072155163421694934260713998922363571397089875492215059196892085763342127896901946793982678115196426032159513910419351898899541331967619007739901770542358554636849849844311430296184252375595101918707047825194191285461509723477734372100300741629763810267269845604596820228139030890187325861292003794657712803666297015940952905186521264269320835366241854329119932414983224612073841232044301312167370875742814866976214367792090580254142602467986560057549641398766391991102030810094040900625234507797475713068753827422043420747870906396801867086464954553210185160881072466691940580381129665907120256476883755368355168153120331496180875874663653276229228791787369167844632597797977289953657007975271787874492465755329347952781921477476211466198736966202550685617187228559630135415418972984999060572321955664881991963324443445844994880911338253277558265154113734915341923581857721687507676956235315812340137660636504557818985113400689691181295623843786250213140918599642686144057146396885740004943335661422820585592368666364538590027170411141228845433154365348688494391129784369397701867443315678817946349447588144232959926694376750767480424355339907072878404094033623832489220583255441717939851596276775526306680351641291196094416554759461908330481779551431346011145840776362026404896369868245120025731520524388326424526578064557704406113814208907800523416620024557087188107103880827418015824426857099733153272408599655882937323738021400409333850166651907468585216406512405136171079566809757829136198695148980975946277624274943719061041247642535317242814246051600205661478583656680476520038102349289715377905693102211149655297867865847941761038994036047699767427280563443016536661564447406179556315202523516924512131541457882258145421672492953820424865642895460165498166859800612247818556413004618662837911825608343379546842529069077869590038806616395273245184869508448406667804053081955574150888456398968935906817922312105479563382497575227832961123947290579482193763779442653921273122890093235816797382979709125500887588070272929100140186881201904566148265922902774777140051304033672258844570453574557338834657987190187232107955701236457527333455888650456635176867147116281824113498114191965696946553050864554751162861113118356843073137154568498766078884051732903683359661483093137529878493987752393317672760686014116784983672940805137540529553891078191642694021617725087118153447968899542516944677829721585890107298112222644295243486910397179290436642221165936178975455592499434009996257849352245615060411640973023055153955944712022773290940774801964782162483632781800530951817596548897732129673345451384753968869413514961878971666518087328154933675524736646329239524649440725622242543826889681904741771052176316257824117837996744994758031449066771915828576623193320824969398386050058761269465332207472278164145236441090167120442400178614344054366352743870850344599000062929329929960163594331066109525516731551905878967891637595049292351839914692736608326242957025105017935521546993579047547435164579158819070501295978281304483759965165365369450968786485764084841970885306883982330766776977204862441070475863135181898130233463489919976654588078805385990046938671381610747905182764903180446827002083857367435263394768823323174718261698608377927782718138296949111435820754729243660519912822046527795355850841318217885038078239242909576250641331078867685732152449414724461756842255114796738258523383467454183811794099928130711080394591669470501356818931206151065346781383047431050551035860573490696180535287991848139613704398917707681629634824051711196813001627389795071700282623626793357989713344335816548415154366926411109879403148223103809500386445724487278497654993845557384061050968237347769530558965239391707768582015943677009754601495990129187370921071112622339765592147579264152826483547838299936854975643075948806613856998793447470110024349368564193076298469657683472820618850438226694404000502297531600610330506911819990380857207031425811326458923584974094647681162703655588171745728156701185127361827050521092733450529208394872537963533627449892641559586359338727707576690323744632003153301754780840150707214044366726169245129071643420565732706585471284828577645829853071030504180131694770869347077744419555927223845325198462356870371359389668802216818102204254701067485977461962868297655892092982334758629683351165915569274221351130816802633870923863566596989973664538347264601446208021983966405019061243547405423243178048487085583371748974334096722748763736130161821778638427057455208227699343700516362832304128389278781620406214318503561749716156511299871942188519741343563315306154241644334025438283101246685703357962701954261136584008863569884701130624098268343257921608399632029615011770104108413669460959559088564735396318274812629583079630840630239617088382170744184216815869072014401510632198283227381943996111593009576265271359084481143659166877345058846984783281408257945501784013207485987574077140697786089801147888316571086884520380082239229628015347834367200353032796430230414601202762377206920085315619790917306402089280480197780341795614302433046362148752029274910478737398550621871176526614328558853715217466942926433716464964586264887580249983451305087137239774610665439521163061586547845803040830484091187445562562643065680932522974466050362085368059645594559051555841181142138125474179406891010094538170588113704069916607930699333292285103974970495793103463276764333585304847298871647016404235521908532279286813568234191258284826946271126512148234673072498555244003606383168093328357496854031324361551176153480520869366322393947881198400477319850668222566334985348492115664284903584801392507887014410286576224999732815277982330885347561725443678834119011638867868520767412751053845509055858796214578763867075398414374734011848321866969452467375897647874926730034839310061022406298907640046047147785326574583425710077303281739888622746713383147039080036898618178526515310847255189076798235639016815979883174482687861958018057774521712256367151228256929249218454101628742579111537750945064801412180509002449479177277643586885028243027379723182509461604759418771564497961370735749071578072505756288223189534576374964356456259351992883925807171826792309674841123974720043381377012669401285905046600832913418794733190435150167652911763580523035582165767288650534790007324168765972524594056293780328361189034929494333195104213591154958767929030708825124689945856914048767553171541404964619423696280460194915530099734378844953950905166305771398264399774012588386199297523162531736639510169087044685072878354058713742561466079752573681603679685262661644490407828645165904861491748980758152801945671758644823680677791611022086940199589213761678790646227020759899656322611263340159670209933502696349971088432386607618756483993422295545926409773345415555488010502455522351215723025812792461326633443597049648343473388159309738613263082148618439196818765525845606891361037491121661586851652225079107225377197577360254268654706375511849830507195276798629365000467709802121464939616940766992877508995947832941337781936454694514443787696283844275255938601958797682405057987626330733613180702270420568945795529513427518889845221346570903358338080742585840233699976732083312327192533392203693583218852825570678883025532687407706088564873018158807440998501808511480592850075539955871756527601430312621009626815830817391019996623186220386292865391590182840371247961894532282190015784852036820418959231069072537542454028427482121464644734312888613018404476524307705204819113133784780934817814062165765659842465392190437179986182691669435927478088794758405975038791989899628979116253885860672666905338057260904885585513202498235898648509338897783207261133445273947623258254650510756054216337692233451507825517977279984542701580640535587074499824635900369447793766492445668472159035439957432382492756049466398631298935577882400855957401226360668624110711722791411014584535707756875036793804372451417074231493638638703108663425928974071941598738517370149807968299806436623257148148710594034696924461930661617360193672239893167429035039498194340253120461286653699177071168064247190904123226353538737824730056887685957593552629704494484955488485685390771698556723864324119686705783905321020446808041813499935449769231198088299791810402844592654911205518589509910769720492758465389124237673823836800144013192649131710370980645176361460435739878882104945249259422885676537064875812521571972447067638677785073915234008586079633782465731008393872471308301193502201412148219889580147178063838329640201481497353634217995859082405962539305033550565112856794839072122750603267981238929772534463172678310872649836461460941883871838905183126763085175331769830159684283355091055942178686906932256852607089872558214585768780652051838775071469736832229757490164697846832884957569648483760096597908669815794130459891189782446421054251044548347053685346587784658488832923293473239600535800901425776597997186167335532230133914997697601703093528261554566348665730197615763801387220125904549712254131582097686475599655278808379565432556161375610305630035389165812706992125285969703585270546747906390260972789044535707445576362548721919672661590061249569895033765129906531760515378084400723641597556067416445708919554749032253196507946803053620201067511099156308999854291419803362414030907837869297492168907851613249640031609756031724502880702889831769873914899536809816987605820373625848862324524505180030493719499297552793072921867206788836254324391973311244374224283459089077914425524148794836176094084783142377068984410309030263412946096350108027784448117845638298230721766840757076625027572979408374430315552029782300151465385045799878521263100378690932547744790970363807996162684057203257486139828093556380112208808041687513170014012705366375640482072607558869474842169633931966819297243220445908257288711000041768368892548314457833536932848186582262549581691433360100975369289707730927863207751996317807715664367676144607896842407224092501861923435226504116718231172350694362195375915064154813127991442695241050078522130811061000811225507828372414592536644619049709255729415251045784565363144192096566557540947259086042550491230080794485451865267945122870204631313369988088629470762678415255733184048642268078312816302191973880299302382540001704758297841456696971423848924464658447407160530031098722755533284024675145361114830883402707813131602516818331953623890096340422272311924871708298659060546584734440413777091913853559892022158666381481696209073139717656392949596344815198375123463695870716227033711990238256420115808983867996725139814185961856424875432535813674781335815351184506937076515357572792816216358831928593377504853747258600657619939003656587638432408637267888509996783378897075447251538439627603565117127067481899581306523545483712752507868110688970507844012168754459257182514743208342653176332322265487602449597846353460223087665705876526340902914300307463520734496270927551744687314437523752338428585151220898644332642482396509372561805520072233377806851538488172454455762491037436170664578798505063329854447938243642191750829211065426510699140839824685239681152263416969103419003817270700010543995251426734098277624147370307849594922748522808765623264969958036663017054372652587535153013517593321951200051193171377574815033381987024679098737524088808205708203437801487540497532789489295871359933741195877947892037103308119523197709413978423586658837207778922484687036836347917719093612698830656898428840878624656539592685916121265436034674656917944027291421464754239274173811754593133899801427820283009029183641637449002043269787351782977870392002200440982142021398746811397656985966037915287218619397049733443067495301975904911731298546516268146960482204458312009438855969224191663461142116029318523744129391674720603966288983587344346437941395145537967823398049422532296613408207713550950717642387712735397218994882381914224762135965640663716253187221165550443050951324233694630956890329447749668147512123497776900187430194180070207968662423530511854551641291507290882985987946862428181938139580212307177261924058260776653764179303138827954399634227859241623464081899257984846586893741705361518641747169238379677949593056424369039442292085588589822765777883481448712344111924868566164058259049381109703088056312145637360337733385741651703719940078997947478750568843851722721315207868618625779086287230850091561502823225296292054608357887528336341113922570404981416647627105129261850224101519853733614057395926529922531016125856456046093766621653232431171724980604323725527092531036762231494504658890090694884405976744640334834936550475657223978153497623978278285798414551745334987043048009162958172806462417604945590300565211770051745896858173617408267457857359087022437922937848963785501653943828538233237300735111915556388811782587416659425188410376479476355875012678732592510552895133617450395665135433595755149822639399701025356964084831116272877957048309452095669230159812574146548142187987557378222009230170552253980834439441300319661083680190691207296917066786888387283301748056068889046285722712264404142529978650444980208548119464872034081495706889317810494848079542493359843825299345392417789172336810767481393896494365247312803920089533910836271254244159072201775795358486976536259586704574718702780735247143837942002038757801165786365230386091847597674132260883482588431939266646541329981185965709188488786052346224403054324497803473181761220499185533850285838265165010498541058345189087389937196205440063631254005029239135044580133100063656488404132471774289830213870120207430563339592175981090339614905464983512164175976594147145964742373983411027576442428766272143607484010961108221173288590622069809277130122278237030739890167959296066224840918590414794364307052074124828393393867543806904980802173122792019351220381012230222098582038540965486650441289096428682651195732727966932420814888387332583613335157428889743036664993787507084253688126632098522393365869827277819836129223013404479487926254301878911747549467977974127062758202170962850441832827425335446076147944520567716057311956427186428701356157928941495417792137647271615456417732070285192842382203653270448033250618710816581833525207974582217303064725231085199655491568537586688133637877265178504554304609930241423601076890309314996033814275181446644009526194435250967452819098151926281535966419937561051812347884991864794517926060320475637637774857441955136010579949020690127642134591799637392149362565417476527892513814600358685717079234447598087125710310276717557846699333985106925381788885768770741662913732953362622016634844429504900352473775587527250198433753334214770018263822459190221986172364906649471803579659206975588756185953157718181338295470418730414217538901643550046322799085039914370383021687348489478592263880246365688104875685546796824469695219118740506662262086878690205741698456601374593787621675900837987686582419460300441820893621697962725459665541159631932316419036624874072272122442687880310509666854316325387009859168343344711905160028413455908765244793817011321769787414998650915613831945954130774476398784579110580904560548116709099398219716970261521417663797678390063412995221356874155221246836062251320829829502267585437277353445170021787388526956111156992394710155053284273827157624409366042150790801079187097822406711478289380865684912445232226151265913780268650139852162013001035018902515335863465783205950963546649426048764997993170759832171106766008101835331741144460903398367082291813868633780545387246569440508852789389472252423045719277916978420438516296275595750644497970764522400943306675697785446510715428496237979907120109084336867389776884271159958389952809847170984260373576522308868138268352835158124624551656042576426027243061184126996385332171213187025218290073067635503562231357398582070052671326777967793897991739467079309731771431203203832375589449233652538769092224429269338187521818542300751728381604406570519942497612691591349133080172425186156010518663526335403746248775884347222906311680770094775164840107349619626015995535801491355979242845142053954826505043563829464855286181904337084682940394344524547087623370419905159774895431814302442457915225928702426342256407483664590877077607955849226350672960772964531842720557613640545758712527192704756359802873319366109534406288608364023621231713114962286276022234219853809814870877942938133542800242808041741788728199363129702750082988461065691120807597984713135101075433769707065340741303539885455366287617905743634633316404204682170455846245415130730465430895314103526179912758952942947139102743011485414216200270463042068364473346524580531348086460243084039215654196181015106685911467823579797307122964785286469760259753962411056181757149634964874835812226264458107241118435086821501056695265206276944913733712897607181078805415580402564068102085286044859454903074740179421563676887289516263176510447827969527648775939601971332476073079549589327433033395230741295817684801667820754477043738680813610391909499326964579068751844768033943364815661186375710376462454828106334513906809754430474808882030948367184815450092493728503534086980787204154934531935875822025879512153557622483198805473254206061232685689053887112518326794963417477559132642167840071342687216290006783968007724226537807985186235384531662887699555128386917594968386385071770952447962253106652867277023316479762191394648030592656790720507764431170969322244920572190911561670686176055790017721288274319158800325913934250040466935578978643591161873437300475271815154689312107751040489547605780354580114209956186230412036429422923061069890314736572143794772864360964629115856806137819291646569010315531991103204182312805735153567125369881384142175716183227979448638078273379053893069741689154677207033250986902437045237328940740668908788609771976495585525897240377662526003794003701244733184583909111913540513128368566092889412838025918727950200497062129313467574716606112087433685675933066891644285271264953855747997820357976502960531127705494094704469545818360944098516258128753102509682257807963475250740361488476359961658137483001841166699233411789554981839311041943373429507216809543727055452940274022303771769812283902154182164271532225127575376387691930136358021247366564748227291249881849353706539089938835275929220887639113159203339235444214691520071722490780648954432421200319380313604124895135538254183302002561707802936672223368764910038163782033079443528298317928449735468609735734359370086465726788494989154934400723488812465387753969876071467309442685546616583274050451050039162967341495712791915123188364371015015947352224973234463697033163125710674240189366055900215788336039262734696226530697265086001612749382075470601263244340593822310859643660112525465964570550479735066938026696238897085428343757011789472918558452742279387453870183662369257678261387912434789071085791602517425234065293224731731239386115593574466583236128499673405342691025966694331662258660368487799119510782076390042606604227353297813529768944341235679739309494090043263548744511404852433036576423726477411125522806003043120206215422769914090646184711623690428838842396531311888885039112288962559509507413975388487833196005933077157109050455023478226335548715548422831006102227113230586444402141127276173923707017870258335387820107575659613159304109262956044425627104500101351886271392049877373472109651008571695866204531007188220404945241219171093518375767082208347087777127859312330588447042924856995202483386211042252776115478436131078080256628926897916099872682119711639354031098677191263982662051812611022181889442296335278172244769581833832989731127159288877614646472241722667946680694562608243864831800450729971375616540388445143691207532285856971779047576102899657001424588334491096051385875336662399807358053350766706981509487621581119586944665270244738773730531804010782423051309693833731277467020580540749364919878686824219209402037489908527501001966257473031664012947402917470774123168318180623836935737661079781703134491318842656975048502496826252589634804671323735081245893156776163873066911604921834559977262201557225825422458496176675111149730698641546868693191542704787858883051401900501793470616207613881824229751435145966834828096142397392668243205271459000887302189423912402863847033830465555377258371171702818414800359088589828102362848542876239049810896362296345675554636070894520125824362859173613589690108630079959130770570293376088086536946184483627761960182333789398134973401841010395951733078313649991277335260192318507126833273378908910481103034626850228278630524503958284856515668607606727762789373494602263174866492884317233349476407354344814634273948945232367492399115291988147935741506899356432303043892091821949109326761116179217570052382035428213534295609341855036662536456191609496233242848188071932132302873567122238063394405839631962918520977208007611132758956583135254873924549913988460531538111283323831120035229215541787432318900639823553205304647702558384102996067605718368372629774479304763035336557128072345681418584693284858139810433579532413843088159834928405366574610006156169822929616142258274056830328493731192397620107916322292882529729076020178925250981318472815334587359691179216434644273699762665019541128674275058955290593359358198658843219511141283366181324700027307081320966543208845889665894703377713440798634366123924908119200756013897592091832896071354936967358278625737039389778794764022137527183937998944245889370692590158649139490704104320001865534939976680898057838266932261816675169107101194752422745556873544899714091504604006649176400585081356567851336835909862207585420613878668156186224709347941054760966631330668741822732986836495552904306252498452288772018379561224699356398161549112765967078474971235188409745467019570252725078591712913055866711324988185731628409920373592471643541300240283315775082770660939013770205724712604434247968810347925103654068534157094791023041834345839817568439036871332812787791700478273658199459754489284231317753532680090079373297610404083641042555948397037514166680111488489351116732347251648671592421651500363458599805772093095947788067391724579100699553778502464720603323502939639008296409402381192128117839407892013027956520245245828098182082398251927126282147406255005007792934961604467272359935027894216344910006571843113959619471816487824444374457835153413727450687708420695148755991252052311816062247909274084860845943867313261857226563751761508593163099112399913500212206873039154255335639631653587346724678531626213333876356633840945327185265447120215183060668860352316267672280241668294523051741605438389508101365283288266847626788581430753639346746016288010073074539487243177876969262976345845190967382513962658696920946958779139920951565281404421225651343621647689045449724014039520353511574160619984458319616598277672530554868790763950612895992096247880887188553934004840166348948646584996767236380487565881890506897445808736169328242369182303654809550502538298679103436515194735010783313501297031196664948600292621569398472162708830470955065243450800008483894052560862938299953364811557709286030964104689643605029081166518188641215407245820533167309843995883398654368335402263448983302892869654084142022969708228678450136705398833089450499509754491147226851611525310820920116241569686732329611933186227352381466891746630495941129727690502677321165769550737586835491046417561706702143254209386799975889432452987219407966811985104761832601911732068004474786458993630063216836483019441979072316430321231678244037793756610597672248309127246616721491349986056370177606003600520037117844755698691612755302259701183013531882918984736247811384150618442669380933429814647461247012803483053832233057614179253616352723335113951105472504547432524379712566404402587155209495099151477539372082887283609175421846062513371403050793213840433468932621379844287547955899327898341256664935447259135800546390305266449860772553108232607690343980774507050852995626342971805795846654559312054983974739337983030275308351652845020167842524495919289292796649386168011275769168199431236980331538579317144932352672031882143887195400459962303848961221587148715943809268132626489474492228571228189592228473135753773946305888444818622829460404047664356941894982249629158010293633148046388543991731909086986012976714280237991669501391425404067096538991146186481926367562087322613957090802828668371255715708840019454795201838249806624295708685254108723202059365491269180514240703411941786004533760917149991489667905024718075222734340690915560130186446820880299834225657831644071142050156627379642182361521924946880826478045964534966645358379080498297622260056696408463116545861593408407693556065016889621398400045750401487842062421101534997919008498729528685583499476278804534798654402086222868419571085019056634463729176205776656833522422747151892510672315548284558117797921273522240564170613551815759643241768837770546254485563038414052599713636781841328591802728038640874008624463101236636542585308791315048887890576827012158148364176060186159719541779487333427100439012141900242450882984579380376179170297200834195365934523679189677221323445085054207864949540474293015592407545536729005156095603431471103267923094094126471127315306368885571727132904744460604063600830772611558778114151746178552268642039390093193009437886236027982865597846674275755954280914939093356306853050693259148840824586064611622415564067333096718689854906056886715103306197749503918667458272589202483214015817894444917513390978123775834663351199026228005081795890663843704945935718142155226281966557669631173870817804676269255794074990556663885795456295486880969445352775903644924541910635268572570643720361742783782809209485257182275327555585578702199406295341760879121650339350581878941672786987608224127228285387982748777098025658057035164706201731072317191000309565886496435888910328293359621235665756363529831382078863211918967419357435895583033203710645082492528185658498186026442742721701612885972690459966599086939071064673603175828430479643037690870135766839937632794316114406033862466476412208263455553115714024080639723900264079178643520401214606829247203492939894311192056373871511043370186493333956370639064853492993157032974150399998706384544252741175496786998373465842686559112273332124335792341198292379111682240255886362541552538480454193364189192521453952487416190664264760531521339498654167306452457482430977692355151695668717334864865602036753694627292408316549748030506316334331610151518412848381891535807782320224450218769512750270819893816894044016832275293794453240337294447323204228659303627027104079002149779349741615973663576924268726692163587030152974672090965089492952974506748912994302786941011931852315078750962989804770649565568435453181446994857189213860774838812391627600058073707749024058785556356601881446319247994931102630309353022444361225156877447189679425953588005158074181055998368500070707476849041330029797040786017509623848715933688945733546563307270518711247552946823727462935755046610708621500800485699400094590765415639391587547297937302710823532484998799476111169807839979742904222976462474660370549657925432791280465864883847207229714608422149742908359606015550135754356393893502621014858000459204022429240766362714095608552104205063606278493899295388342113297156716308416727899562604072102315260802124495657121330978888912009903304664740277356669675018524774203974880220438061413923393321190971841971733038133144014938402745542435342922835937625168083291043170927275122111933430640749389612624138238116896297219487938541305799650789081719703772126532077573677445894826433602567818488470201302202493120099630891543187291659205204532643136341962879954059846578519571754553097085486192597571152335582579396881527775612905854953426397320143526818517687455753290992086735417776811382879573485967120461209696497410264207125893379561801200488203154742245854601740288506073744037789194933251585467262592880191306999666842375387371617951620852393243548638289575835997719076796071893923433111916941350598421770711356300627725866708552815496575652054433224225860799321814626536073441921997818426988401309468833055912451979123365275342277624278357053909499891218094290841235860526156671155446813579549818569864646014614552279903547136876473457482138925784687910368895557293973858979180412044140993400307135775314077655012257817286227929240047557150709251837467122317098790209106888421501082603732981941301954731971614749221241218587239559865092819522872863223821768693125166561817546557540470996014074133098232852861998137974977653271334144840525891869059995743928679142212324614452493486347478820194495597978617336058764798372914013635762111455700414549794084044102090161040109341778405941492074304242981202813647806873332598989984046946103628375211377406383907449574300961597652922723777866898354081776433724889051369593411086311854097057794077352919444392021323926686072025519856304057809398194565446366684592317290135753547954275064897959573991448177270933431576077993150184946192618160641054634170445559558584804535349469488678231310750441689031342325394946417275785196335164765856025125777999133540391787422833974771892407397353851428635813819687922241909794294769066238088269262981446727912600358624499858358098401783694117721579138047079123805130882498581247634632344781042517936842163478247265831124498454534480477933451781057935355751293507077706253280244753302630251898209425319906528389753678685206821703786264832112194785043276396689366320375902114397545965059338742657314374925315738701830312566880741245170896712138410886630979584458735648247821948426996306025994473499618555462064707022306618498472613604983994590773533069891549358387569986772294442326242908526642929782303595992597174130222446172697864719640404465454904856428533546335407115425034340370798279989850809318658635749503474461882121369140239247423944447357882900057299884659568802317089818894621942912338666726608175935731531631061737571059071099491606025703914325186176863569517170242130690624686833201197998010939210469384572201996263465430637030901735594524104081810282444548362177526084689871817776779959447871395411130352098692129448095697669590967700947649888358283442671687272259780040023696282980671712496912156694766857739867437101726073558446584539523445432723445033592980930596094583530415888190142117171825396870133453420748207293108950467888270524901425365474561786607014822998591198012873712161195206787813670159405512203727204021758119960419599144515931344265677526372486475391458088275460323813059932398902958790578661644836991599190285259276388192762917852276606991141519345179759441579453306591921345030572884127665111419697726763216022616943306387103075773165521994513572586027531679310809375588145612590452629521146560896086362868989289137766092895309898310165121712203245426844411533198648884411088500085438387410821209627211190766139976988699622198385941299786321047583012019022907140591697090866403481276870272353502541204437004483058242423160277322483667744270490487936768302553171125701196886235195008269081662738433071165637182615245671054883822042230671184197828848991098744669802354882299326756948075845697958314218053081635087714269536160944566426082946698427583232082385475538672865008429316099360377241034035175721793623890427919959614799058035349235089281235992468990849968463678535914821681873649224415952578259593365250287523842579689595098334371736392329202727920950795378327929300957820561001906120545843127688883911914900444427946936725012156636047405389538288071769696841876434826511371901270226958512965828342454847589208558733382441245345269752115239060346038393375117472704484225379334049096149347000948052290924968163457940222564697150599380047054171282331505391382937186814588457391381708958096587268450652781446356888831797248206250467190234375096701661397448112885145017023665315408084645106475853018975627548172990323021755791790600044178019105882095919073696392699199914735590793783190114865132634616443911504685193763628564839113880919808705397958815761406867197085451060539402224403245242190184521699753058300969401801246865763780133753022856415478940377089807993396051441262498898612193487338755052053661164588759577915768198223932240735383685339214373944615298446739213271317850950198807244078961062800806386012527727585130904537923665383323507761373119127528160017908011439948810038882400977999286959185768829008421002827773251612499266562614709060015220932028455020787706046282233385082899963034786591661444277618322592119734847018013248690789525986261539651850568983945421135660528625213112748877317957057232071221702597180708291666869898216248715123551988021261591541120193506382889720025300658609979875251241138070167378614809443843359772167671171811315131493907077553998064307148395404638594573269331395838853504428714653889936290444040081249049391133564115206195109346925184237768875062047642498613179708115562974380479672141966245356457490440047562460354730961399975417012538547053658462604536001420846803975634803932843525489687088775891132095347590681808129712035815970787805107908346923127400007687337323235125585016244509212338734445981434658800131076544182695187354391999581074302129778883018246967352352296253545307559487561640467491102455560419500899091565803762824576130461827444888366314641785449247244476332343410889735813374617097759042697783695289461376110474055511645974199196372984217986977986966332569970706748276383307316339537373068858727159485166394729383825927333699030284783644262887961439909592975983671506504362706802490521925572823494939904450722231257623059504479795646762659869783289872420777833419579249268735516969942556287822772144674130261070901505343231203772465392911159961936125066694897283716332043935277069851992909829526228744187086057126715336655833511741371248461890215648730032183929304242703541474348493066456433628627739323078424030190368260799824798808551157447476757118804337122006453347898421814470281726216401828931981462896768750237215674460096556027430166553736847580948992990236784994692940365015475932719505088036004589695902816951534704810167121606542886845677321529507832482968288823780886053334652508219773755553046595298876747886256061005866564549252169346858790288473348203907843102168486783811527309528907644592599849034514261251101625446822192909943553874989122173164867368135915485918968913529447672483722681100622957747609884430528710936375544153386308903117926150927574766226400979328897287879631181279506793656021067647861154796067457035399931356050047865099954958598266144127897886175694911383359385608312555785310356877721654733086612826338155987304325014706228453403800146637870558067289430327228041372987987992414004807207424135936955298795280872230682232527311478765803820869748750500686182217819857168853176430493802025241136037746555027111784748215448159787714397565279248683450807294331184131223663870302841991952046131578684779291760372200827149833308117316657954674358290308527450616362907020678220318346185728792255944651349146337038565256450864819851886187813811885774715944014763882748423780501380788434704874250018600064300697821095688532096989738624282425492529218250647134716083686828124049769124176945517890918985620326108128801710461063480238215742181121691756013224470689851494380200661275035816733481848586420295793304193668073235948650911915662707083734987126685947446509739140950446008817270386001764617881115162935136525630587520477477129800822080777466160503908088379986348698122217342657659712010460962595621795901601298532186837021959469212160239432670632358953053488900266730565428849013394073146101863755046666290835578223214233400853247291033098631376829396605658553881958399143029176329872776925761226565152479411792264091281849456052087129848379036523857852680944405711854066136009268200468941501563150785790596282556552497465012102700682738733830311639162379354284089283457300058291301082499839865000401364361189907714039385005624138895161505437175987653884772838856986329322981849825904026320314065541743740664901630093461456395053541022548496555028070419427584875406453476497213447864156990126981201661988329696456568976337467824298233319240812917492791362680274270272625068046866644862564840777234521533852507495313176418909121679593548225095292886720894133155909607399460056708905092678090622195128512198452111741287274463726066744766760710107106080394226032373296120388261113239159434560043355453795736521497588022839571702643126220935213725600891424797202810920164829062906589992040377394204414055673460502485054685294025515183075525844027199570900875565857923305825343935853683294178803858564982694755603005926547043835022888343880439574152742620042256574577984631989779762217446306602513256679557492119595499912579346242755531473094843258956287691912540174850721318188599493522748283039732716353539108012359396425389546892267597582848703941157353781586066446611397826821412654375672943065501169967328367906843884203237471748672525609513288361760660807860174161992120467300456386942000735499024876828856296520903215939399748367338510854786529597214228428303893843272197619648962451506845497234660135133262708389848225374384179635358354377450300030452071998137004432229746559011674035822542113585377674847326054745078718862499246735481595063746725794038923877361445407596438446841095501105860945052397078325127639620745310619269594670444993830283035681303683241299730443264564758688570343774148957118750457412296280181921547320610738365338148066720391573001506162120126488784080952670886183016730828442492412660488718031286738839964939628380257469695323559455122332885188786696741621451631645747304748925871740977102914176315678422924992412610818090068024793507393497515877036214609019612655973565880427568474008325960374959710193158492633780443704668361501035440174133744311187916952377067232442419960845283570399057661631868770417705735675931026594788017582940806661878221252821610906816849116961611021341548387557173662618882457544622369083764044486480336237925204323430459625407606337859345062939650336635349956393081250259779090220145016052239239853969398582414272033220214421974386853182715776046954873576773191656200988926419703483937123866925316372489695688507020718943078286995288886232185916036550903180783719992488026733074485092301963445273354234558211255561369396919187075865407724671348281213019574886662498846140881186828398202868410511635411110234613513717180535916577959755479409263830410384262206861523610659288398782081578593045950303077035776742569354477368778947704281575930132605973754171883187778500458680676110445794857843377953767812472180078007333002897922313363610105228835713827963343336749024896882487279713113838051158375506276825428578674321094320226112012007267306174496132860479335189567414291757317606478091776277463017157554740448369045085234461731852145765257212700069612323439086054563421125601228603813391197387512994448693955558711687052392621066136445978985950807475386036875529760208454591205301398676701184173237206361341417944220245826585592320405289109265881370877899668598112507018019377857687733216415179277947209866151363241398964158901219495779144966442786003344730482123443167018664619724329970257255132481517831673222920078588999737043546970097167029221387291764140859670460836752564341864849341112700695438279726106699633874867309027546306265077019745873046616728126052679140393005553295592231990729458461412628236365681779769474311876121680290861621929209842233445735770914782672461092629568284989056043254359649730450514412928788396973155940791647040484076596180680710478061189861723459548223987770619957550499119181953055609046640101679323476016378319219235087878986029195526819865378364310825840902402055000670829326402262820108243629120208011470010084624548207420777895293010823068386068355129356441381782000535376830472700965542552854409849376909206482035689632264103800043342441374475680492272435137085756228218395569729372301708066998460193585272707520047952155094750079745961819456685517332362518991790560351905353794872905219762927465216575573328110508152343978154810752859729421684590857797218633822242457617417053371069362565643888227900257900789488779364836144901053085062478920315309479178593285884909124896160525542857361814638742761456987169980341531097709709706853623207827814988425497763254518314506453584436934540600853280994269075962232464813893128665860450166593929012668258364410212336643950889383760428756461214295191506431802558809277281785371430116850394680250243959467910103172698380335608846694542128706804617280602158290397526417321162057006766860625808221994735801716969072278042508046270381706215067653958916333129900076576447105497598453435591227576134172461513829625321388111811221855916125406852816647193013150337120978584584590793775092806849523904278727789934522117185657444650826132237697042354005009903715037882530468547779604535538733211841712301003466049328686278093434622069127561269087632241394401698179302317573205950083853629818045164278685185852248743911744544714408966809106976729952940900732636828847217966686720718864423667336047762559647463530472261717976955396186027014216703132596446082006181276255664164839062102530501419122634937409972619816434442701449896092541918551352257030264149479477650419665165579768615144615678817522477367588873434375839357830691659243114406619941515507769445153084663969501273966679003429735748686851811801881615378404343338594686830488431115356126696226282554153877375605541224891827829023010964167953636126318129892481035480350121330765864823215774370177023706331065773883754673860663362642784308503841214464989066767800596330689492412895290793548460824516360501218525475801790888904036834110657756292057663436314942448310691774462123159693825571183268173133041668847383840406324554154973401813636166477377565547867155041353816829872388853917504147716020906971135173677152058228003408369050999401536693790272552971383395365841413677177997018257372410880774939960299899381996729376544510426761064394991146654393340046457421852506417971893928707768539509859517035380924040749757722850646743712694507189536031130936420465814345017576132396832140017888732112044217864190880777162936556179983201401600728475251438289330179014754873925170876650943502880366649125806058853300890460299260283177323794690640479605241262504208340017620556310527538818227146309170730850405600713731857789202518611743362712218960013000311205344664101792523206257209613658497566945268084777129353020405466117376963067843349102003625056614382374294926283803123478056756093980742774386774698412380791015063034309052217004404432171330723508060095903137343769268430899505796604006927562803601164619222257045333352355826921872172528562460447760658552643276617569060691903743140127922716831200497263863872870024578208096276653732387097020644097446136853410842990394973796618335025750486791775103467965334383776819899518851898573207619116609392032409812171634951611035523453304861447987544919682560725969404279460646062873693991802973126125766117778317949278633278741269033075030078741717032458448927017645129863039311239272895490202284964875194484328566081333196878582912695209445688673980265959318987335019004504527562936512186737864514000542777628646388456975094607840325249176283494172788104435964954575426311758969114695792268047903160598962488283089229398528222794285581334463644975367134786265196414275495329536208750218238298612953719359816990159829317021773822212244709812161344884566023911996150425507027230738109681592166688762222606420450865979153429744959438555835388309642180089454679552399304707210820297231895745856009464153780480941006428213868811776636819606930235708762980680185574220094528465352015032619819270218182246317139192740539629257173854573984159461435945622791252631504194769551490234312990826047892727202266868061992481077864548933587306898010063373699569824056279193377591289777428750935640114806241822087623281584022896443550199451054694920503830984825538413026457582609391869234975430183539449811367432270472503353781130593412359610967311191959798613460876138782277518136997808991673873855663060975237839228643589346874423282962875698529443305579911482847108402355657072753028236468925973162536957640037998875490998153445798542808110528492642176244923760490259674767551792407473502755418699363760629496222123759339884611886159529068545502428633741946376418603571889531191088968070359136284996692609453892868679562590820643279316091350369133810408788195391009860345236378121636326016572504440808565227029947218719637161868606271779127859098794086325923674828086129198212814306573256054612965544759402822834813986310717679865378176303067281860055414273036817116945321767788855352956158792334789718674318511956894412630633935666046141329857110351736194833074491501103856011183853530602521442247298713551210242461526432837608521481668879359774792195268865984648030850376805997518975076086268229484140745944205193142478916064986057440935020061749634485860520896703211124387466340905776588627647547210852976734331080914007506678143659418016883048657959895097422886236675913951762214945833347987654061859178296763715430611263063480292432457714488722515923449041522967788822751446727231805041992866781777407746936892247038053311113123166917599020302124286680696468884737593631751278790354991191817579242838591167162415534922042937618803428660016853510956780263440953705734214423675301472747119899827315397802297284153140709862652171884327585392923900851111247811404601045411933369018300457437157588281294847810736557174952564000968869143023874815904626839515721368412658650853584530534199314410379535013988654442722405231376849170928709075308009423372402287458229017389864829776483282047322929444736946928690040704489132543223407176117511864699224046872469381480845401082356595254637958214849939470627456691997234748527327327029232988522909333133047503135032004505945846988300359492469736652550247912100175619753837364587288314387022126021860815908252260568037212709386189671054512089789404370630310430043633091708487564457714561967355563549370222659463358598451790841165542606329088607583070403052347145348433914852211091182858515311725147329366750541319689216711755870052129394612314827256830449735258522602759457125656578356523334781864127295154777242756691788766475728384235777400278468297529269066520841827662592813065034737930053061151263102599351659263230406243595301832824616326864867602825066113630945709115814710577265849229305191836207864965539018732695348812341320924640463249584830894659497483668592009469698616842246173066528747901840861063847046303762962019512267246009937341370153682051412626828983481139577648408815250036936387647729721590485481282823499859349514329208252758614229052240371486298924917823828862715773567980104158669021079414933906343478282397686847496808424467734872589960005887010393053461796835442636434010880549757864625164940407105650184127948311664543572658991408953841429563569920940950716263225079931629844422756770789154437019648148582497682719214515430396368233485653965912859991582962229762275730796934422601697411533828560949123961413426615432447072083289395696011665504595474241222975185753107007587057262823144790217831390017665640279748939058109714063957698079318730862976904190985994547087081227956641276428389960586319452154782072301254112399814794652044206941159554528877223609025634053019529897977069546693123150588651426901174252735579061309475452947480193929991736746002140438078647887217608212836792704734209644773709588549368335298445831188937966121802085766260991163160749663868597717900181658346026647504545913819865633389171915024743358735949655317637245114821540802886695957142267937083900321256072423044192164607804103874344032292628990193249577002030178947977653561522468039133178878594531888357690020764603806019519205310212269444397394463326890061831375591814119002487586700991490117908892853137035872476549190887374867704366722712657903865373519964749823934189241649942066056597499138762975354358294329082249886745005240748460788270571990385488436836617717020671854150434715508704051851578268254215868791949976970757536658618321870484152898371803010404527918168923867394049762213673563289362226497574921024894074783918676868732321682973043678587410885245285387301364479591034156733122688008269689430736864777631171308002002889842408337002882330376894936618125408109405429531503356005411162350610309635834831863910750929226676711266432638629594962753856435881156309701363506448441236803655358434628068231409383003007533514884762900963735631333792756764720766542762998042203587375829415856933579227493261575222344718441918019512411203573253741072967930283689653215901013447162310477742987233898375757791812551749264450509032706230737933522342998041236582424783300322326802190608360041697462291662130875951890312464053585128957368912618515231137314162168848262591886798162216656381633744967632599566990438175429400765701316777333518433149635892808831776976777090587884024263129870591642319796840459046849531849839678918661084854426159798143698738646727766766726654599391034446856131095754247382512923115285552924305456562882797550192620902418032267854907226581800272874328329116839940896844406971763851964730287433039578162850210719371173513715741008639820262956307436924932586568338948775178739874492707104645193668194205624251049662871682308367662594422022537000376844283991751454602398570001360455305437378162732562121645663947357155311246549821054507882081671694885948757530608506097601705738659433723686249674164395636349722472843176714266107365028859667866803149753012180753282453228056840095736828958535773673989752392946825528428471020050123865125277608100921606532431346144068237002971574666847602286965706821045335863790436108559179576160372011907978035031942234352248651632548324696748198882210791654581979944339377812355480561849625291717199412791166119925216814296148443159496686693644918026924065654985099384169386987289250876551095516845809776709158471065089765481854640321043116191958200676130226948190442125441129270464669029100209989762082781718544413874476902330021787155674476610138896232209331071040357513696569762994566309049917873599547033277540813139408388882687751244093205978488356121182230299706349939072659402545458511593917650569698159239961363523413734578523327020943408606016682725334363609623760889979871634805314063261647855746651936374163152549522822267515282950293242803693226852448760859394401386325783606433859162345154589517449734686214647125859632556912156266515096997249075133562498726475991518329510970264650491291296411621551292372455624754655381136726855175495038863270146797302874124079245993253579602296797348112812717792488018774316442189327647157986009713115157661916898077791755444601730484163697602587285158664666522875219213585820601257055815550061693088200769765918747988209196989270869499349367895039918346903838903364655084782166826313059892603901252316013343649619645887940694754230313493429621875296040989663140052110027292376118843281304293620271115563762439072882694252383070744794174837242521546504114502186181634594757215810405054743365757951426726914872385514943844284026097153098860564445615396251732834372628375822700881140432225747818412817809659641246264772162494889846425599064081484306834040051839105890204077875885106153820715973050938531648477344457248379188447035423218299790549531566296491302924525731486714540542702069167938457424994759088049934334418391598782335791305069592385338684691915264811178500675162833713878423174437477011185605624793490923575617733115175612023476930792779642526436014795320681724789919738690541655373381648182319170416788588546088703468524011212008388510623696552016261738626612023650828728357300618108945651213338414962440713079181937361055075334348808705461952921278469575666023176267666751373934995016399781061034213118209609752696143983308317274819403278155622066766585299837573486020540779114894488672360743087994050799875640621120260656367629815909064386821866406201943013507558885120631568263081494220631855811182342771492800529823868701519509708413288366715824680375919744188114483930354672837588608303818773049504479842070166995660950652403293722961432852574910824190531378721397006265162779182830983845716315673420265951016237672364924130698473790662786161261962517110058580656046285758517192928731221442308347164150472827052495647408232955143400520902774588695772263610173733223804233078202653402578613412207271030634593575884813250002603336566115589211658594631365498725112688157286461690631617312591153642986089707351959859109811087600371256879677122701002701161468905978703720834085870197321163149391609376366432887990714404966257668769912232808945786985448155622471835154528492357724143613246056579455489221494039780404048552192464380400908124055014043031679470580906616500262805699852285058528955475641254438291739549258291490603019052296508750513665788442850051924859813152995946836793246524449298790993105602314076074848561991185163321614609858411323040832709707820349832054418439769240506753808641705600880299291024775880722641717199868863443657833453841892389585153476024041278313253746789020074791278950148407310910963927626630447309177405610430700066056967938450082499996963579199924643518082242972543173464779574823938473476986251723336739730569395005201513226851541848263691091975379688955634753420713070375308713839757387499659838261060825499640039223631774342998437114911152161275672494744857526007586812942426230988727580468084854766144191113842445182098106395077999475545643237037628514725607147911253526978765849452638151097513077833763171853783028066315222582381981726864633572301488961231737389964855389021498780050726327444457427338472006656633449104989762918245529835604666717157448802159125659288959511242457197932853639717131890950487419640054929358880065522783633000409246710627556998403554439947364809349576144278331241288235346892646732466121149886175983189194678694118066558450106816755313033267112808521427137155752562460715409705979340298089005950261107736078566906050942302208328471314699433719650420159614258500010542424752504052323085504174469435685458775186351666064223065940803344462605390802403248278819722012893561202071488585176934093171153346814660318256443206908292528664690786113617682425170927109671961566563899811275333814044771721551313870215843056586242754879933210071243915568176029664288783442075180150983342483915016063409032075245931017305791248328846618064046964474948881000545417039546623603658984862335796815111906387147710531528187615772210082426120476289350244734140212608723124652552780797220926786091580679902012621068401365649429986363058812817438617608278841965464984330741218718550670869466832753420087309025449610427278543097904009584793345886728079524690481971730160864431225784988129025474661695143039423938678848165154493279248902461974562681676894206917776176429496725748325960217813135318517203119571522515151019649823964516120413368836949865977703406591025542578052751540530492479578213136610567871585346829361589588953144155004801134276673078026765954749904648659249084070155686499782218042993275132977004954380344964783405205836822565646607074808404334293101911434314194513528597810659009314968522387736873703902655476905397922152529431768776142632588102112523800337884526612201449730713203487132151098617464357887679307494266443695188556211171255127410315902844783341452899912700678297177082421610702466068044444593788513219551321703907042424029938539477757491447373634395583478185056050340907385557578840825338586521770400172962989423777402765434490844273425471025306063814760425564827045157881648988468592571604247754764406079928417633548410547486700421586877850876609184950633265787378266636745763065367562427634319366891152681005439281805279382008458171692401963689554242927807230827057120834904864805289485388777459694476722155529575410520541480179127128217371818256684534529452735830058483805614124786880350893638458690908321248637786838127002401071178770041384009450302253358901748442900676870712954294816586340689738496272889333287261654900193765470062191710129665511147064305436739472503746404692620093604328097513748317456379438095167965732896797081775633547912573145255704245118996082934866432129823439289587387562340636289716207312091324801630018674635104998040940129782422613868851764600395892298233497675061815649764590897668330060860927143641609222556524249679708900183596709594108989234153441117807233537690241176616135984577129895068014940764089708107099026600258688428624873227353384265866100889500817151845700342137246374658738989558752606085691404364126722321434441020907339771265027796902752219834931313573717432053759219009168175418523977176313149377173453987582578015056650337326514116390524663070457226822551360655178355276406464270778259403478021275636705838755210656871050191565620236758601443836928488145646429778931881364465183700736406377234220726031086295697359733712360610982472016254607555681095722933675406220600627165133346382403446847782351860706845921635674568452300726326740761459853654492334510913352933917471597300804002246206329094338185365045185861023819717597457640082185912196306044180428339489199004517002981436457735000606611885778527632542321201335526121807352055114686791131568052897357922811445761557181702595900829302882012695459689283529643186396104075166346994477436312754980566166055519032012314094272021636933938568589151536645018320196895251907797974727744721265039713284816515383794023875321527701192082354898073150970015897766868205267764728166166655867013336761277965749290098221201630742262118104418685371691611275018111283369721273247002541209276714243398837194933042803063314526999829506607586991840941935573988146189528748256491799191034896187947281480516714863030059943939965645648282212308325659770535474054498351581383588398108789005492803104185220608893378671132187723214603579198103425799461643067437056729625994575373451520698599557863948735651294349806502422695813643149866824538720017119976173550803368458210447775529426219483791398365671952770931563822797924307529092774778679986607867537983267213456538284798225210241847556558737128540114296267044120026704066770584583348204615614885000935930797140820696540137230287070307952403270779577009107159976798097243851427162263312046960004237579370336402964233187018906946129572096482625919319698353327244832759260764452712354625247012258108100431199849323770975427029157399440126988325314409800001488890727257485963634905890308837859195097374313829287223140653135116696988550662700464665524472951302231748228224979335247468891740054327402841642824113868558476253181695753959851528568413576714953076194949257156679271475547669363747518084612204673213818110142939111176219538882716831618166122979849676022647916188146457571091085379543848386530007320946439032748215634052771216742316301994694548384546912379683398239529930208057989414467234731784860478005861382218866905717443571880553389713256510096840006308662867454291444444149802705043485820369309553952559516187560321167592817945707463680716390347299330656435421752076672126272579617123897352721334774791256840077597432448458083360244485504269573771438640303388202779776240046002938288031920732954463950606861192319481427864242804494116582670443337953788448217253012489727575506963152551941864131805046622966975519066902989231320985184601422717941543446856176049065265012345592482132198530695662554671539378985021892997517712305813584045658766767240404844939295410670677133248975680790654997288047138121414713088340452378213658426566745725552137969020304829522737119560120792138685387986989235794740341001934625588206649551741528523727260604423348107072002553002572260089386980262319165848988549093429618738255540594288756442117717912512189086170762099219388841892925309495650206718925947750480108473826824317691734190416342396583086352286730452623127981778772038569184108899726595769527191889940754662654923876983784697088105065841411060847418888396014896787633838574911472617918875587577708421327565506183656406036638358601108109600746633263022064322525920151520661535626816857679930367577938630381314693369177092709943357932023749248476268302967810527897807138403566305455649466709454215124689222526504094685322029772643308183231761868058535145544025076731838200503514756746187107845635723956808843126552957729209089917008043460934763252047142886578987014206674121898209530175268838119677710910600259942759437619483451063905311604297604689603763363504535115200886866902857592794756183839974563255434589208466575065183477532542923178760233814982518805317650353833661124679446121236812981007551258255381698271347718489272514440244886287250394375392066714332546166222349568534702570352602523756277351465618187792511689413178629075876747570453821198038062431443051693519506744752751324834058992035378158810135097589994488915555126886746771581926936177034151823517483646510966199941106387080473777977907276841564614717842100249053721029972498539206225901794089733994481030687609094220433359990462061949055812308286635419612034814417952379474070646293482044310973304491711431622042097501728738990655013584490577606703769620538187678490308074549746220219282435278556569461321575256596815896635400365705526728506085049633032847884349264049442132543349417729963228176409004869665650686811260159887546133016114533815191240885628268317171576101313339206335647094611787873076552695873097624349506099051945538408251029493060065490211033959724036890660971542372763027201941288469587864390949385128186452107481848404353775500249013634409206314725363448379141721237211516643679016924447866866192439596530081108637353365678174055561168578907195547706069370058694218354300838355982855538516750051588456519029519927228708758465193924497855774339449983112895708929797816864867097470058986562509032321569601091272455131928721583118557616050991258139724640583062014180966129141254016030275730631649897708852290443738398460252049627781941304362483393205454503280330353045007124517488111956717576325848516800051610564848295709678691922932478542571381651254942613879603603025429377089974780228839009271189873791853359415739569288007917066710796221447894870535541905563859894982595116713696763090372589272859182380062052152977830689026336203433898004535419914561927115809893825091472315438149345772374988294868115082905288059643889553006936498305344441154617310528490643328032691004857400652824734430295016854547798575466618081521965826452639093525555837637858046970749931835163401330246109209794542085840728713498045578009341793933201881261001143247562475333883945274917497510496302316843260743109492498460932247793465723368891519276837678139688648361874796217906780215110542334690880784635721867849159510506980897515193072733024279924054967113725510970104975670204102072765253446275238358885754049164994679469179184615139799073758319573774499359829956764596592971174085195947552616329160646835480271751742574585235840475599606534297571786341783957653609488751105399200725517600711813796439198862833990069212025621262694968189245511794152537960141769174370616329454096172576823641658221629131735181782887702235143644674496989082533640053979844346216946968836065298983559325292146509715387123411431763848352297183835766454769859097878598183225062579857482678240100339251351564987510593130294898459806190296951476029670733827856354747711405662628105436445221752845345378042647895478659423414668764167439068004022386833542588652464664544604943527574948223897284050578582154595544855778516623303683200976052617744670617879398685665316840724700946725851907063741051238933235979409778358986406707419517589130170828476061829688642820063788136300352885560731131958656728492437372128088667225318192627599927205002710943228730409208784169272180784399846796771586026060847957395321283571874382221567443733158228558987499363907656028265730248553925554425014845187471509587605831999921510968587516867091856955769239978728086825433734761990446023757633557505989410356551800529553387754531312867335896164285507929237951280145113979833068804527939775108557722459725726704321398505157661256030279899528781419165587835158260360835979354174782979656363518503006089918156925541369191994299812507753360136799922583979553367310225545756299486621341543453890774806680911796601472272928071548933634524890369185771437979372500244335629362129968937232977141342109667688350763985346940916052986289835191766858272597817434320079636859630165384318233170573588647635921828538259058627694710625510908201511110888180510248938648139591464747759451630726398194974030239171774336373736450818254392786708323469276663334732021421100558124832334641750774503660856160587433522263825754991394373469267035065443088708257826343388733337263878265078985144057574262871116137937514309919180726501505189493263595556948057134791747185118796618613501959659430506895428959480589753970898007522806443119755481566422918272257443300103940830004733720529806136560871121647051899480156925911606074776114267863349166647302012315978976892141065784752614764621505853819271605184920245908264316964144434947085977938477221036449611381471689577002138830334187585124987379300489430364976832782051507294528850660120286076914899311040851741815863172542368092198942633188112865548522069280608477076723723928384032743144707423890360509520246862853762932880402151122132979562282205346015114297956149460735492401011935713663277404652605901197627423319114457898124093294703977868413689961853507111435102172425921477770601695183756224332862006119493686306276096639762605925636987027963406189364161684673423192862588074080320746229066828810113068646166426282264048851754954161358074448180938351875176775899297899409958466637325423514838367128237286225012410763903538171401265552241512924257343883096703426648148115548463722992029897393941628276207060391832270492226195715522045056814868953456892107720595912749048649184914282349821563239510662500772512126259296222967595808619445131465311605822330006577483271221870175452897807883737861920116272989941197180913770106070402800632622766650885258249038816923967800889549832442240052912301446623019527532679424919705679667492586072453073972679725997285019024266620787556004681633713733265237258356128171134017432007671669115978410641039292924519190184442835640074170578026000740310256068352880387119068007040301877498143508326282117708642616594161295847281589770960685279170278139852680420852880980197479988929812077183002830039678923360363134817970360617143484920049016065247388744275552716395861416197452990476998504669048775151584485594417738287977847388131638857656578834407696039660314434179156774664170816581252334575646016301567590481015705556303653602607159680013052161153431428244676418648897729535359040423345315242182964309099096185371274594477285702510611581636077355661467426589739655533486845068888321501933582560753852103593668998058715280550293222676958992324754425977458259406286698679386132321624477267269073765099919436816731057622249016785345415158446817463379574094042164024321819551046057214148190274186672353108096825183755254347580960794260804483963203043072696739304787718329407004526470771492183991329953188478226143146282421560683812949740589758322753311004518702364816652224850816840696461536382017101340112824917835567798427482039555295253651292993845772955472317809442390889470695945343582211679936679090027521239871562946029712101336542275518861959852091708740635814493004883313289855479528056481895788163136175730988482923177057555296346156123360252502889368355312992805017205631412983088755942049430127065125283846619580440062697693610090072274383201119442258024299431967565158866761377673450863026271377267078466265532340561289736880826711591195737344381793951426291830564897793323241789184956088208161078328344848638638873796787080359938729956903798418289873942220689449494263597158524892418696322197983208869755747077536031539642122475249302628635937760109867523453015205929175467011598526945426987378691029255182072167350439947236209254439474011300267211348808877049718213147301583551132293703469100972528647097522573396874142909929754561094051176791270647917926442238795074724679864768188074074885050278510946811522406211332560238209104250227865896646442372658182531841202364872317274245403126089254684566372840212727086711622183181907915171631301510757035985814666701382254162426612766239156539058111368289545555688240419794876925152888868341399403459306283739595126964369449173586411581975930074583414631073448660396825896563636761494093176926697177582521741181717614261363895513112706109523891805413392802293736848185839669632278737519927494897236516929653833588931273859433015895105289884463733324999664352765539334184244070881739172577615499727200272912036032539616024868323306373590727325942645900363986505988678535696684970708413506309728772216803466590052124844927545367196727539370978687745520117624079766212683558846559255520388896115007369837500826327525408841822549113916683165356377399179509235273538176318626231838477589282468483857707741422862605388036447450323471392577076111592355810280879092106419140942914752573414239543387024467699739205989376637205615573696057387649193555907675718488201014366666690390335481093478645790732907267355527904024987352292110673587314755962043437603529413793036847423814863491588957033776805468102146730688677091805270927227725896311436815894118605384252314348286915810144609530431461045729457934261281462935308590262502486966585709749500677629397174096647142633422475927050356725119365086831399032225962879546129055492109695799782475760269137267550092499060119337093232093719308999684010224411985807920460423338613357920957030872479350911350881512760967571082341746609802165418594548827122696631099928254049762607568778269767714328178552584083083156847326900951811453351646537497134562822107556780905185872920157889528783264539067810406593718447106571598085459155414222403635989145578492259894907576189936017051557315292984778280377351686049714635854423800892379507962448091876538005893721102009297546142417722001520438971725571386586356865542623638340677150378154350512341823475740835199280310856253321769897378097761943664290394852492712207890657038706696715018282933602645178527789843504961141615933348561679481577077766339613337910992575723523340147768245578552706947339302699715931717640756297414853287769772277999829399421215303549674048171227274839026905691325046352382764281609166406828184552832006522942083061094486528232242582605656572374582347576493547930718515619999727263252266908857128964876662823284897270576332852625709934998644964566646861436619073485271028455419304234328854457539902834938501533233480029278457186096468066643578582268917353484301548551568921637634879098994205039795059085122294176078299948384125773515279467159852056989497923012645017802481050483691537996252397024895122782607796231355805049422691989556834748555746359537917676089011091279238248287146655771537143185765476675573040160854979606955112605758697447516777713202287454039158571970037554918899493952525185036806896675856396287109762167566958423492575927415964720164002312364886048783350495143166251010456995829635410502954013728779694729595239832119730387273791791552917521390793296092325633361570219879292348527326875028582164019828561509615293821180259516160486437266334256237645790257954195612517865261061275996283825470968144027805062767868036717729220506437501328244333528859218228608333636408261298351591155306934971343809740725740407526057736364432263583191870154649109718392755398998185513879621850125809252531464536192167265602499942248743486815638477822975475825442539293885488676942097582892270958587350977168281623989062732639395232537229846993022461345573327702026641911299409447239753716927331573290253506206132226072032302937527677929853877783066641043689155095989250158887941989346696701737060762737156327371387936179020866129796715154404402699332481344062525157226510113961873366393245665430840288210801830663654630544759601000107486831141313790813297469837122621883339097911069543486493301872214826548181882127747845231991395290858886952472738841346680810033637487485020124195977607138219281895070300384268021300268380107273452056884271077616331905584722928717679698413523719243419020337791398000836962406462123817297276512272951268684731230367888177986878014745522284563242450461489022187173361086204069251590993930203701554772104729686280388322419634588937799454239371901507382562635279240594384330454766137101144230877609702286998393518061917206745827461964409195246961518191822034115103878511038060673329301015291655059393270448326364551198421700650039199226448709891955390759994092109142148043452749525053037393320584842066128631319681406128898591469801246972994569174867108686149797436843178177056331931867337141131073624118020345113944552616164829489716457075536499040112232946512468005618727207056673558585192780555306306538586349300271828478257307809656856603849719793359639964394880292690857904609809529895336734243288757967511522970574493753031761700439254956345905805335926990116152653494679531157734239700716750977543147663628340037089377879479231070904090654070197177361250413047790945507567863850570429680010401332536640211882037904517943461447646428698548176995519853674200076658168152626143543721958876424475061067060195569144430998302514077308471090965318531370218563457729350463209623408967940561846760416773702168400937092559727630911260418192710509524176831008538637763284884268283420581899053217389579917253391047635780030299623101525443146198945662910955746616259278344749037862359273416456319928842345757347149593749924082918526613508845069438336257925438937289849472064209287002952170256784286905599443070017493717222492162256332349016809335830814797528264029105140389469778765910543138740958951739470709046191119540400833407863503180451537099007743117338520422749319348507491791397519217520141497070573498540213946930711717972290268334904623662385342690951720253572380096105622643570436441942010789538963382084675978913014104393782379352272396812882288444591959750383518096983789154340391391712294556599879734942902494621416168413335131123343292903267423084663802353290092758201118769032035165935639273782032109799009286179604243533941771310690880640391722400390868993712975531003163756505114235946712455054190174543408602175300988124638956891280769319064002571844776500685979225524524312480161250878181810834067902227613423478886558961632167879506706804344650438795214321384785087325367461353937518486896004379612717859515313134192070804555713950185909310901731533159001119399821803417994301158734756762626307206649688357231157859235750839089523109528825122930023935638208810251063844960952494242714991441689856928837549785247534063903796802661245935275885477972600089729751589822218678625709868439770097685214478467295592708875530665019365838542212661223317452071174330153205425596458155191359716119795221316017938144736315788744380977514206419040949426418571657624634380806653481079493577517174735030198154805239082032328318842913012134626841920284439708727358739097282151468139766911735389803091060386976313477517528527075840787456706835889792558432818636313060952141728207519032678670200134424173258809701195338525446808524092200212161589409314508675296710276702224713152804065923109948921208879605309406662356749942557419139241651538157363407446508973338240263515142553017230330324977835961917984939077744436239928617788868127561675828271360571516716989370819467291288751777006523220090464554852285711999036614045129862896195223108362284772515232575884095092949429876910078831236221991706608540000974368118025302106074231390660271112792371228027433169139959470272076633081344658891226447227149564295237738154985986657072547321363907551574044996071999545151950624377174278960553361329499902647101989222324688789389310048387385155350312173171781044849154796233361763948298540516004847766482902365105138156527290655527768087338714056944485608077974797876195271188351899881831492892675265286877997563934386198426738233023167429594917901956731785476756529212845964020542332947842888990521613348685523631726815527253752114800026363535783448977224471672770682659275680051966553688129898333929849442768052289152518451491871346767299934389268325641275681560214414812698701093212508988606448024774670411473574794372721033574372498995357753897604917454400488213426415221582028275687780787911553064118921312294983013344689814251461073066785742832945276330342399033134996737748579623143632501227769171725663482365156905377310265069832237974358315989216089263368928103743738232654096410537500337930301969327185173899683720140207070038132347271209024340634029318864446485127662743018056614958614936985731389925095254192507453244931941733891924204283929103343825369585563626283307832301931455732141229735000973919550550711277278338392257688847542757760919678737638130312121611677443837119556497673035941356909882944369565669892625982484734323070797907927821180333391644891361454022822101572313682139578239278267399252011045510806302820572591696125872089060961978313430470754590653772906832086567959672142107542265219469945908172131162681531450829594972345536817801978160957632322935126563360568420385590127571618934834852868870647908916773935225553058737556630514260013010342463861877257922810973111318324353877799360723526469235135142295568943929686333222180101723463249952619803476683877645602080405467565540706568922805834295718820153189686327609007954176726889876549656426103576289889703968948990256261056248050625849230445919052500663234077563368956197792590930388125853044211382897154005504561694200070327898391784978824870826368697542435552638935698476094009286652224286068151644360026955034932335111036209566599369738999957947558043180760853206778034437470424875257499747529604596017629640267179748623247864067930045776481459580651025294863103929549016974326565513499196035920219275291640719282989234870550999639891250100499390392122189388990646560609305014106953910491511392717417787483613609913273095329299380472022652042317535179397001832594856507477948282783744806578911817927411997239242702922047157775802297979265060520687646080606678783951504442392563849289869881947256147358712926907375607297772493805406973115594505944239495761440996029513706730146180252581679903976960495361354811026926060472156751758347779198369848483894424962659762531276834015533119023556445111180811679915840826190871563755289825691738682271363646810160648641443603897805671916473622509517554968282559200353858162859685762300999645100269449779638958045002533443208964108846890474212926733613861715723566913995904938834804344172895032576700718447171074754653140091234626021888269374277466472539148619668408285522458802152718838196937176793944656718266333378688175753221490634163798536624420218610171981052067671082523399251878843442313890979644098643543183508178857754349498006665426063115786326843675071824187077191209126515134704135374700064310417561484236265624245586084402070796930853728633250573755148366109256478723922515973886920023383634778539686562281186513563630880872974043440380533203978276970239380761144626315518194343623291131344253205797081422157757016608189237578482936851731802043058799143473578946338368254605438502629314372647136086030195224664382033821548465109065485054174663838502968348444316422185746957517132093493736600148335232794430392409036751447077470262706246483219510125548549236373822398397039281949322321854408247074995011148199652334764602156423173637896708334847236066868246023302601662007411436282995910831792465775946826159926040313031974400731355329465523595036789766107957424395776257607716986173430206155316704733028798889275470234979103133053289233356624979873477503209587247867055880727323169206043417824619384779195630263136497870385135262011965324146663811576016591302654252545956187929807430566044453666539371515034754923231435263190663320847726250578191441877265272486946490734949536264706568174072214522124154800433511948580203605945397472149636876414496755489473848253886437925580681695056434120888585585524153634814674856416378791272143220771139974597214179090692195881303144956931495808916482945208443454545485488740330730493588620215138678463658946815587881034111825101944214161264296601369136972930479662873506528835348627419334086902075890279408335746892834820640816369213314942086917790304558799252017351465062611250941889117453601962884319332163298374710922565539177696489269719933008475946501132037727470929747827631800158812328453798796517438438028749401552416890696329590954722157708982891007871034345521411516414044951836059895561174292957485868994403037004148601944390713779256374284006998895915432706963891449312589961164834391425893091468833670574197970135719688623730683910526478697657718846914096105795715066127196410091208005252483737492765118489788263356811773528348252210756512169981406624308005265018052454498894908791676950164224154005962275177342592059471331679792104570403530016765828619441635237533185933178840391789397511447322107574754180965478951405186983048378513900805472320420017926427512244005940610387244535670377774873350149760142163858973699253694825306247447726312321589572989340922457142004493541648239714054034410381194472876086961933137845155026697366145104465630286074334633053824838206702078115143818881749112285552382618608387794668422765276128682895530903062976699499854834913692314079598037737217213387266911713558008989767769369279048507736625758249676610209424051606832888625232154226782713837951756882059529365003914890934718001255589722005988464450520160003209764415522384746373389161778271968624349476023117381674307872648765875267445382063696106922679150757897720544668377334691040388021542679538439921404172001499062574633046469493137367266028820198574590630554521256159206673700256362337127642095316563338857212474965204741332713796033773687574122165401809394729030141253295904312436284117498353496757469598481446521615011171734063353687212889495835272868493874573593667904201055356903932486437902683541932550902308176492859274306667217891958657883784185739742817869415389194896586051455243375116666135851274043490713226777724098411341040772873559569090865828483064174180287546194885664926685271991939846667552092844022109770513492263701865162702633484348666628909006598581319885856410291438357185288314942055136866872506492791473977323669042799171053603484098768901289097005027778288111878624592163762327826115817273520434342234162593029173449183136423904125466205552126467156870280456941835987352191633527239376401386566828256654170660594109988844573328752694968387066756510335040028694057465847393623602216499806024378266875330121073730428041070474039981823673822909876027425014731912404326050334547291099224291184853823869043348376044761730410218790826879408087859737961803088939862948283682930569077867853527282198118247933690549063869305538177818201678903070241275558211936003184696528098752536707307955782633730697824584439525008222512247437340595459712811319087950937720607282384715167027935260941009771773710163178922778748373890109701197302237300342307947130744040522205850734837065336428679334811612381619500825788910963401625389783059107468474424798616400405578439818076465876724844091572188473887361386329395223067871370070670795825004706874803514510580360256015017709389875468457061846005180541102221468255832926012600480913970991607001963186181780657359482273465967951086658657822353057860106019654854865994963279013053337795401160222859373207003963141544000053506380423062674304872533090083131460087526104018207298238821524858659124359899218015802647285018899924654740864958980000676292867169473488172394831413623158881582011923508672468728182116571343129407010154018039140392324172414860622084010128352588660086869015556180232319528458387605189425044275824014393155812073453068679780653449185204627202279049897214669311819871447559962274975288756217929572508053371432110643831829405520259499836050468900918061488327623164881478945631586995159819161691747187492154687500277715382550019916384022737087055757707180174225635508593292548162337436535315647577517830585770382295362636021102571137492364682064286762019645145630409183478452320638415173640819040155767691988092036485954246475069814144249689208518337930079769369651950720300521435934296678893626656442789517064328013052482848715789243052968216836250332103572929830147750235651305199175621352875768287457438161865188975347747696560095517954271651121913557175935563440542268131209248654047859670707267145429650786519689606959089863639881493310699442894834926132557762084984843098991539469040163140428844708375595695392181891961461477750993847588162757169481174750046506863837173204378013875196268315988186035518051391641040600130603151501793325518664496956673990844947047435285978002962222180355611025655626083663979162953103095679408771101739431157313868011584080130375044206687059224551592175872409260680015398827987350259659923568567694280282128296702313189233881733552272981587244108952030857073355097366623536478530782683716291200693726340705969774011614586775302736810467649497150023078424948023974716682581542870918652981853225398935933941917366847606489194516441131601556556459019197313909087781539683595495920471351577893319726433121973686746307851238763357793103365558602891836015325518304858316506464829384568000712208927503281922338924986353938131463622626823128289834960009880210799945647291005851853204322660597305338825212948873948971653882164205360864202565396223927126858589442261682175176191985256174995096837205224795172027861292937562551553450362709660847998537784368059322108506064653539988449068485425577882557598493025672166997186909051094592318648472871327011914752252815454961949673806797721858352906252122308146840697723889078474688228418549524518707257171268653065558382715593594184409297026460785173263726786734679754143816965026372827199652392885458417257675891247775298561830661262306324362857382928164879603599235837136525228056824798794712358256953832641659503303756011567050586068525366844251261928606405111876680686557344536335586851105275419279276893029073663099874385422242534082654703581990819632945402200386160623121248173054871556377784763867276620383712573198964585638359599774842027617519158099996398733872279444322080174973891227960276868956412649670858429504581512441949966492685567996773762148583662504901525925890260427465696766853421097986676144355629162197230488821318807100734692533625163539833742927415984845041128473201219072761592242500101202997014153636894056524196230884763910115746112822557872180699637335301012762875757696816675155741636699335490498892133250415369444187094982778248079920738016842548142504726552340275286989561357508116992714184643773297336720124426904281995466155557242274133160524679439285148899459357633986093209051858365754176980383099535138797389206401974397318055635731020514846324151375493442896984909516789999552772960282956613702527254153843037015709629240126549082903058937462275466583683873824466691176676197439855631743861560407891783429287727168217215970365377548475960852490684750279402492429306865500077776618379790264079419789641869141865697948030446243362971499175023058466371691478778371179842075248639751511737278851289462099671848958246648604741463221462161895397814671556071272754221781373103553167783222865680109872795464594087687011105073326043764335081388119737876589833043427826199316789771326695042639946571846161807133296565502102124493259083445447124901045105119618764853628655488575860930381084879854491884287815930929752399385929734365891826991769864727319686552362445239459408833898898148033404364860014838776578166580891496749253050130083794423750617530771940764095434813820962925020299035118629096169217651952255547501983276896532124164049877353320483516893809346625815732944878162791196025979496070827262361686284810060389153987058878536986328675252556283206678900535909429340592403591545619991958917425187678095163305516373626118847568619951970327839901324506622514543859489194199193626662143143015917441438251757015690324205188242990531418424122040382809198802804299284929722568800605311117146851357485266731640242073029862508188823949393102249701485171633154580644664574604138183048695984183533083807211035891827277088207099010573709076702005877091422272893765372699566366966411953901689011669698320650709509060709868698325423601849526557172666944436471784484597438777023727973968865798670992848745466362399992860687704446263070217178605442021565354156077405021682069177424154903561795660517603977194861992747345485176662188530147260110510542530863193725084394394537099064884156724895228629095365453667560040157445928266825566208284326870097288549223274001639750542204382925474329739629969990716124097736350617497575171769389510497086849977132459261425325725847514539555809574376876592353154957337619690168966233336700071929539586712345976026153695107023873409676992839120982656664986118496158736397215003803147830764245113994862772273655080869237043620463622131196373456030886847319678274382827984363011007276514801334450624621061379004041752350840638075937476541687829490139762104253056556600143210009987783378583423431433892234259735222407061957311137545142452684433364238122588622026481074432654054269970168407135542118809233693986858162500972525599420497355895341221970225695156228772985665980762502306661280073655534026658597533485181159374770599799872530661784578313952762510029129276604700485986378878182895532657955035486688968825770964091706357015556149376685452234328832916198685637409274555391802906326279534575943780051684894095562831303086751798646760191887943281503986622882166471859770190179165518725905019524134809232212398389646771008067688270632278928643449925940759000105502075514202072009613684454203737624674636358269808639464038799204460176024674664101052307768112846765401529466745722801526088421169235087286485315010183997134004952130158748034716917790195218297297869123391573939721600899968441871889220167605979735856504215993189919656404998177877238151106846820301712545721425321054557102098675895209026831320022760120336162647722640120419229379397345173636967864281753244661249079809197725352719979449270922294814277638388347058275462568018018823131278636047326648500996243501156811433735355743066725086799902736778486173306006582840161710936323247677348490094390932024983945603649731780687104813663095782275982335252062577040688223486072242018768949609041994724956863686639977839615045389345651236748090455918132990230766737724384835381788022342097393163890810694631673275678503981526594184067383495553145191304812445208776186970128074360689253946742775416874699871584616184606679669163732047381996804346763501771683629921064668421074731639344138295097742311516847922326655711121260928079449522473368181930877915918191519926751328355799096264980659155062740415642394501399373602555115692720124063302347786621747349989525627154059043667419441601848778343351412110789308331017907784388965611695267478954209375298897474370790122792994724735718053684128757372555986683225000592355437465063391606467864436289317379222932028940584710861849598188432118102012334223112102834370055798961080958220778697880365747093642914655347733003109868084401080057574843668860885905978428948216148633452417082272173397142849472795881249335036484645697785956647852987572196363523761502531369220633423357761137388311523433942181864830446550017999302592644928298378955629306228592570324705673606555361418690436719554522646854697048945945193400295328631098745617779218082408020150103291597873565315251702672681814355622230321166651441406038118202739765266976165780137629759446678870015504190738686706637008718312424498000614862959988150522911126303084106433749489294685629766607900679859547190814538469175926965574092954133482009083161930057717035370013993931542815782766719316750990332038912873279039957376551486023931785471567008798177243221600018464507873274783811097343855286007327106285793845762783214435953236424665048250353341700631996380405743203277644678795783297728553597182769380665156164445731135417621582493903501136369087070081268945570539168348243659753174114896963331378042226563518604010868533182608687381844537797692105294210039801119442467458176532411081218821383765954431313757423417629044500249111774976390744945783613014055500619409273953891618858577801975909304844079370766000974122270204599859374255565297843238736162117971990757145622948548638396795369839907108401981154151485539553983562191494419942737998219545505295660452187250363171502313705937810740991222690657524105592199095429255439809395006434487827799338257806354642403318028482165879686625678634782236599614352808174089700852165593207970658735143781761946359989466279201257445138739370640436064437531049364534205273958885401832622761081038036434822831335816925548829602898877915829020682930947535312520001323719658269929043881855954441138918481209947722106747066600322223052463616621202201115261758663967489344773313570223943201661135848250672743038236183748463020386579885814720667006787575909599317458866343740319005911651627517255400556783088251880816544463731335280294939298035198977748433242474154378668271595636249144566463823238051654076681702347926357937838511982044274518852532115837037708624517929804802995533765387599452650228223229912462477195403406211246027676122798825072293541618821955196026442759447646304873886931956560552738359785589864136289827335713326512185058775195577605376850843296104433029910055846271447500110555642051665471469660794607079577924753270546262945863231069103250831525095188279199962779905813380610194085522045993472155452124559237087545360631620443718177780577239468468011680437180431112001062531887539520262980215720126309685733761479935105401036901002239909070369629971724626924172453779150095900143382137367610821450219197545015015250090332090013079240095917265719152054725290111821286220327283546447605149653266680910167932406975475676410652213025136636305127751132415175955804005393981563562988813273669864830596988120832870659268942645780813922169779198865203190605124766961993008378366833017264677271956166492386845248485716477822085607691052435909657496235463627839654785708132032815172291640902916151361196262276351840512635777437297564350326444815502178880546086188508287240686228368689582838566494655840261899262715337793216087543967000704144241306135442032885295020100406902415853900830481433537067041027938133619976024498020262939977432550838890426095697418169810011086445811927603303459207548088797628745505211136326117775922306002494591954767289478761716329674460043683004077418613180101301665556612046417852640167686745749955219511168278745857115703829794691542327666788062898610230780756104379530099159517982114998325458009380687050932285725144829374326736106345252517772015665069686098324110126361209209020027145442073954933390870277111664980876765364721883398181270240579998414934309068312026968605952122791340927077016552808075132722327531367128848831008878231979108362652584061299299000400116716177412341809546907292731063708615806771281188159434235332243137336443983200997045462802574709413496763576472548168248949961820476711985911525763736088375138000883377031106672603759151015721289318719834846055313833330369859041724739877922916959469940326141714983859839113234758529501722995726608970415833166846474423817524495278848593448663158563964751400710125913576994763997334400576799831174857420540263806092796695272886595665209669809498832589893902217369150760627820078609902659517238597608794026862309209422276959804774918524433702791984317791685461651401472279190408389486041984308627455933557549802646732824439394577702346029261537652319441578969844007913669416979996268792629913749245371673598767637713632635852739837363644780329019324077431941441934043771629711449866018975408653778945522203581406745895810981587585434885583154125347552488638353830983232861299806270252273141789065256830138635371488954194863745948831500251046843627153489679404153830293359624632373189920910532257866294777304313069955194195773147390373578846127900511383895079859594185836659991193441094351379206756443849327327891337758010894459485760156371249369600913115087634840432740039121593240997325374605412204394409154291003246026845061747052984541430597128041010023493613945358014757379010268369799291545391420680781566553171970427436344709092854072540545495231926943501290384683759329378608105453089976851960745652054597005144373156508764832136858669740602278385986042659848115597066256824644694738593319825612205673964734375786039986273060860516390902609753950427942711277223514952594803120354701473928823742680093237896825450042384688407759768862122897349349408964847893814797616745554164296981102448806360089882807463525289550318223951682295811498971276530053179871800959673032375194004396237363856969106364719976167137585430197731428990697597932510005426858884249673281991790831486453308217678429474287733395048740763578253082743059956771904017023275990121171657603174086309586254824033674153481934218606811307542282886683087457450439913834677939257139239122928830145484674210764930948232928947981704756252513609828009540450749426227901782879163463446665773792750956615262573292011476483168546909479483115367616306738756908444872980649980242763710351623851845179510534637020641436592898178676700038061917267759696702191398230152842594471440044969660300780851355097095424297799237319978591598765016010536617497138335655666814212524883316782438382530141244942495687818070554544809655474827766780068590601866226914282397065600538858983760800385543252208866892560704956484774093637369538120617876793515490904073625941011363237100922613902965793810996879090152302184541806749886959071505812487758725531752724916815986227857902829301148037042686850264930852687644588243560450145298016530553564295767883131798697068305834019387053748220807752534182855870969372622033015808457898074798778534088399732924088645106054299830831280609686643238179018717449108584784875829614886773022538587784433336616484176829561167256564041533647041967235258824899417947895219359344103772211652088390231996523997916752642804865445880020576858052620888685179431874407433606669568995632938471884602875972449604015220636506911422129594061955034087108100757704457663569321981871105217407081831252948460008780995101021001528565518344256550956366793855831190260897982331562588725546936449183364845029593810437798991092393336729598645604612803976535582117311961160218242145717598175502164032517226163940351258399209685322666094209149310017062778050480792314458340818070252507326544855389925361802974019823397718356869094057919691139041938850693758397447439761044443167600133544835499690758562081850927736951010743195450469414220307617285302317923445890642879103193658748149405086583070711790781893470116291174603062940879462713890162553605400088557369891074185388633416901293024369364809194019776348769158866559579336123508767350791673716576355341743795088167971977160313458987178951403812801054723555625951039715529193091881999987175512498331578885481989117797101445047930973878024433534867753337285774170328531680980243336658416370499665908015226763612694727313469267705371878507194126165658464160226761322903063269699029626818363684407290019432787425849764283706814306493563669197504788334615427259489547870610185174093089418947920422520609984491729803095987825764046873806187638069031387443184577900198679999953117919385818625851209736610501101314453525304721344747442576935311996320243543862783987778044799228551627018175609245523376421986960112589788794077921741891704418500753122437177374596858673609659693066469771122619369896285724761122693244044025992959140636233613432062041708170957329904677852134729350559875118967641499416581021884890531230981998520972908407446558063970654596797310453789147379824151606944693759886704886549742449873005669747096776236534834175684330017269031147216868879703735087134637524239224073904211157481987396052247963486910998160384042921759603900021791865327512077088923195172634505197803145710738074557053752833655250691317325858754095151889884979482988185057830886096024733681091148027480862700721454754874171098269537623922775975452284868921648329259195265208779203304298777693124527628624003742342837718126442184584873058762614133340374367623034621379319534964619534879913034815382123064612605485169143483814018420835442002180959104512955087459844319525926676055317873989701130294481291318497762010457157155460887589532713136662425104240358904273461588230925114643122980022361477930152772249052821334110818411977338112527131122304983636008749147912149243788630084050051291584523429786897162697506427860101102112746958282972620378207184880920285300590007230240328024672326476857624185009419550546990541835900495712659871641815402407088182640979157606836378157649621188084480590917890558509168239979870726885141273701280305083633533188634200775678743052443283052884735126616219276759176677208037125424438401410590090188996985805131718480597106426247547704004130510956154078102263549830034296397909108735284771913156001539056895113733494452278067410563417141463693549950499197324942911783037104602375738344150973437626280463939111677224736784288668822824713339201153820993346638045057244820877047739019593692972504117671880466660614174000341631159655365365115034509639725616893992010058098693837425001477871163631333343841658681983229407114531691294564378264846266580739508490714359450191657234582609664837203052755373935135722603695808713464819757485090700874840598881345093711144393085984921990180965871534849304184941678614821327862884268881233365204712833114686054836312864403036442381968734131824743134403907868436149980653852334891551292489304613893986622302516904639936684736154046133584620579251897456551945569534576019620757609987025656916312502260749475554719398023689311238106038024379713685809762764834491789036881593582890990050947890261954290447635705953606149707987983457431442194365123697187044571953994402630037650435218329398638022672234497304286828606291969874495911701438193369492139323587442202659771205239796914054338229478904094349743641378451672690483418916107648728449379910762644499506931360028525062830739791572579170631626388039508090711192297242036793269146885151732330207529121174193543762028378227224296994955269451002468764292702362163211816543378500040551499784966590005078941139613879689781370507850003500564303386224595359711399449551622218077452190307546898382961710840467894022989703649581012709484726573801205501336811051364381736049306693187286331368308594313625056156225869663774596394199471135992769342855878829609713362323184176899515497953787817825189829537304383660811724248887584344883585469247437346029483308260627320325888169495055306649521482962532146295355703124490556850193782126143081483175876364219125746088307777445828857452535257800549930560434805099682792732013570686812773994388852234756832714961235716793153732916438908686922289828260483291037330136723914578659316772476906437621747380652753827626742812038006365626979514962107573570497157723229320379685753942191321756593612126759800330847898558375356961046281845764613405030672870399490731828712294861281198688911138033786492775370577035722914189223257312236210867583349476638848375602935326932635021270732541687419746959539891612334044918543288329343129488958885383416932374565194023139641557998025242145554176384456091958828197407821014406029308370710256260709753451555627869643246557907662192429586674164360429247100277997543657319150775404908553079096619885842228689373520041490944294556886860118060293063978129566149721417081377300797527418531974314946899756670563076699900699021983975691664941427542648860836171418061550317066671037084577774784367954162002077399230313647527183785601798097509038778678258871044524231011727677658910905270168678800302239000708342032228672685645303105855940986591568817899045262321701535487816567694643600166695003152526890453141485459400435463503378904805995080413352102246930188219453617597162536240742314491936115082969814705190236163561646533044404521705172659714155520124484053652954987354022547011675587677975257935897646345965750385738029610639673999053859769678150658781576288360072683690366201129853574095243764618990806840148161826131177598787566691130341032878687893678109845614036553925459551636334968504679426762263426604384774139794966392166165015581352468203146041171448872221006702672126549161467699012177509474959269479176284319529562544461270656527730583050859610558022192383928554744537574262760961854304982935197715201331692338834934470719579840052961508089698199495214564681832471331990978785067294026522121604033839791563713016931657219226586523834292367111152262762660045207508177385803823651976482263033112623491503566919333723184734903687395468074715012215231941211192186451258460395807632256097650257507360618669989423709799653943364287077938229355670403994738107967658720438255206121154197803019973235539959322670070052877688972506973468471185773675825829621775628185503039444157706060511057907426753122439587689878197377149310133264653656580841730699233705754265559249645187822825328004622252402666368244514914031651086034988579274700249455654528599008632812784190923580462783844063001998917231593676882835313624633713135797760861676553584175824171967438972897520637130228169064392866884237488102019463380184863978372050835348039256065017697348581399176006330659570257946632275619322757874458048371426547739383197695659613199300516607524622531195813902864251354292957793238555332810884301796285038230626356270858402792427561633217589108953689352657087510486163749529074016547987763885782389798864671859471558958406530298002017869618877924374636807501931805952282080063175883919501827034712523456587865412679340952180478188309553323923579852365467415176350809300668239595641312779419149367373896873712129157625352338739211138261298982243871362873392260037180709130363080901773662680665627530147678850336626757944194163876660124012608225400644170361420384434034792950266243893964067494007831739446484438694413038056121141720771848323732741382640113958801238251212156695866048336074713340440381867460586079046886010619044987680401734406648793654197590284370957483497084265600285129552720586625770314659695800194995658137554992413790218751907839384759938603054325237583550514571414378582404923449301671151552184369649642857571667724280837411424973977444325895075919305191638419027155135901247971237131449655904149747512394424990621207338230270443263204282537462621847971649213618463725690619728695634957702710395588016922416482525338659424977757389362774295750192136491280330492321719736345190324804693542725608071246322688684529689942276739811232612801580090384365102637083682140772592266469995603629870804353566014243319598384620358034608756272736522752561828247474618235412166531226989682405873173765936780270640487316906424161818144143264611054217042198122897220801777622576186370401240732238834288806606983864702529040984053954693442487384119581448557553920082617446084983307912510473055143135955841258639020033265842467974985940816821936807293265089083709152849386023572076185086581726504279808117116018420617676383677628303093397465419835262740885553573801027604887134547033507863869876050246484048496842731187522434006260928668148622370193412548017202238974681893105412519974585113814810614895212676476777102715340072714939742837788739748144707853095965529081697558810463676999809245293464497096687324483832003458831825379179443003998257610903157276463879644729473176559277605165412983088385880188338406478869234424108727348195410129934748469497411616324933259112859931336924825796447751464571428003573446759358976078507907458745759694918373407787895971113857673065396872203246889814694528197555970805640543917987073261356924086389758094727355898351179182798546954585444883104585627654441917079851424575378780446258558596558538366138098562490722776300448097052660587989985235430131767862920234359722709926828768959537980200686021432915083141161799536289327780720397712122813279329917576477702255529400928363228428779378957918654918713287104357967069845680063183790478894762687611897395008119149355488097263766270987833265829669540165662801941934974059801210289052176467024653988260786535668974776558236102171274104420022568076550908327743530277570186230376043027991821942542084517381564071365260666799005195736295963005910154897599058479220351732515182974476185776780680946029100260241730058794098423599709882285105748309010666741353741666430678293028109259600852691311752879764646497072618889406946784898830461326820105849495229657112810119570352913778591001005413232328721152351894021264404621293797081789728079554935519650906053417409611851138147709312426122813912216764559352975157204570163323578043370633828166480612312938427136912594282369993885945805596772129370582334771080057557724637925610654814790119162495935131469590733457851859546763450502867106115762143431972877363951267557087735796266273818402185472726454127948620600924893971647928661915333357546412313961840845334751456101895637786272724313938489824407345184006614257034907385035497014675541361385558493217214055836985082821508637884374934573405113590685626778129226988273614484178969610654415611092773721805540486506862748313473223487598059305360022826737664684732909645282173671865529165371726317823041629036447987981879956911778470974530162090303706875825548721394062847563447238495684249342953374359021173339961062802057324060125175308185079823818064854409636968305278302405540833793269166774057375821067034910994238942240457516663210717759055715273843668806224265348180206996836125910629168937205772521088967771931350346117226133128326886892963916238962403371757631092066824509797934392967665238046767518692096614314426558658589681040381749811221075515500189807334492988008532169476120226043019658101255943525092208355534162557849328045227198904835092799060854906110413020915055472353742773910003628683551153490929407788076374570252330399942150680739323938662112113721133775830717106043494012006656609388770407663167410329323822824105577893567386424505212668088513219171743478788660225595167326776368512853724894538526660001362453243565936428937668343070290419302324315835673629878709487981006503054759033464127938542507646968882522710899831424233899164899116492666192087066394879550355535446123982016381234062620330097349602917550661332455463000237024518005256463882084010294876030295594464120582083017069161323404375333682514980525986852508906260722383944741430312178025044387182274655169200954389607168299797857592137885906970238615525130462381774975424118485933439022947126198769410035051148741131638167636773104266231216201536583054237545004918677180960105801069567207563264855447442267561381809740272709142082509383158890286013780043240922378805956422464277190237831681879871150029758884591034234743968592012357383852894011420373672692181755863507169221796083331046174421280386427233679924363166157481978433142314449604977366954262474432660668839463945317151482541808858294501992601723633973135972472697491413211570595670304139567020029211914917658183549928443938580551584281773365255669243177445608545086587373575564545865331514319077912170997968846801965733370049668335064730306050005240998859922022105330609050616679589893754894949701610711396705313553240509485338156374551146127400797468386819267187536173777546985591232694944827440344958393240161783597569200749265054871076843725222417139868242250136832933458985921181105415500494436079235623061422529043577544491006292143868389851542642246492113323873658723850604684512793167901185376897787450055891460430738703654423271833002864999972911006314125688285664918204679161153868235803384872049674817663623210669943343172898593517575888281905460140069038728472493126665733016199825229638216145470896729525718585027220955195161761309283202074279348121486146645640454942307080391506294338048359620191030941170247520997664314639303085401360722839166698561601862862798579993688314493801295464208572227357288418300997312658041362573403400398245428724486280389092881145367897457738091657446580409848836490169731867869105824050095246006704248687342341658791312493059914821895192763114596024823902666866717381381787370698062683937789467569840280775241265386373999105855949970113962698297465485637094926625608366839123309344795054296300747021917111742696001406686831367799457494479700956271177108759590538011116925402468760608266427658232732169393986103495763732477455452236342757888500952648162543918229360864359258930735430559336323840935284403319134557976854892885509476168719185941813025943041654964044624691791784161260232910306758719636293033526251927990976066526620382322958189185950420658977787357108120400022661990590953699771181167020013472030232092995694177984985805806721993548127406687533412079484809932110102838543275117441713328195337215129856947185386678383733325419728099965023471400174412115876838513807759964927016328795950678376954005199787540644758501533975185356436267295424123609750201087384998263960873011920975296470928546096272929319505852072840070038928302268931654272710482072434146700654387424095431717469955511630927915295642254871404654758069900878001878295104305107572753556247606372923065206791285258359019263649166258069041811614372289609024353051005620397894627511664622175733612199994421200542009397873627843631257129430231957656884885184329226466411664600135633909004890919565864402417871453901090424896520484495801190617762496458254546688387639995748030442534475607968084268416428350185037896683336796377568897653896207581127862895759255759866389859477710846415111757835219568364042514135406243011540376227653814996497393775313029508607918960950992067790431063130482634830673332904024017088826762103885345394216209806466197486877339833200491291651858091046475785819476141799937547351403178236806607334508012102486979533501365899064806511329801190214865978600389591756619003892546889989021098062900720988566441838085288600731289835245930413969391470094553091663694014470739291348897018735043687430948320454125021432925369993467606582181245399549282060902524773533944260889559395383274481282528261465819127087090219625554045027793955016546064593604752435547609354532810484827505870448042363121754565042551209647968491484233348934995933676932856267847488526464715361096051608074932352496343614234501827090636096202425592973415583042355361038063269719686547480308252790819885272388790982996161585036047760794010690447219649266156262102066677188410660280612564622398630739679121708440481197306831563123849888355093931434324691790376681897751569969926794205630385508626586513943462562382213117645950209363710109424472927268927203633322645736942243144506851690407430805409665602266742606517769679567533476135047643368009673081356498900800570863702447685773795921977560414084069376962691842745076521418310093965020576674687154276811208981139632133286262364572964629361313776382692620367057891902884059749937617932104661119323534809423800652671445951229065649949948908851181591876801289702622210375815727265953057222298044112994568994206206008417512739397725225824647518734869416504157922128467919130116720886224198870617485306255847817024789816133476691302953145788946710299277988650184498394379874177530694304059560506876644344878227772436066325543007925968501191670002114828587518343595860021409800283697037855418913729662385695830066658075448714166259760332496488743198173952296985619181462916062720198907563912031524635435267066254611105654075024867094693273897554748137763347278180842833566474335814044219237872335202497722485417346726159208367679787551387930370306137289195915301227732294397179956944446566385459143372934570605759059561050186182728204735677866927866877368119538867553155300300100468577891095812099066704147261082301932172835525692366317019056788801638131954772315069712588865565788444262477589673598661712710193651074017953472659077586974637131474539262660146884692052591250062154449610159599145160907014137879937699558267614242615795511391880836212740065853028757753024811007688117958650763051037390740632965360456725828174396050297354964009078999243363569393966768822880291237633899557205377832513770897620092115457809880133026295127666991959078874854330483753823116340757574757937415163424897573483088607953519932833426707645731675171946710417057101223694593415853440598487705635340172862791194614184560522248777240147852005697664399503796030879466304757956143097556325413200632501253524061749810213412389897963981199293394588533385441673498031652529689138590471829644792713870816757781848338305464295663674807229540376030735024239361534720595596611746380883564409427809837501814656386883569902226204122346144222510448477012007614623227969992546138059778926666640086452968593369079804093490590794675505990240909318452525315040253598734290702330023303262974267840808421939485185635699742999239045783353909848508974968455442899448678250489143804531710900189656152005939973514925285907288860866200851101819105151160239533436016447464963538924661007214824376745786826346512908550792075378951713550040441144322838317989357727118040035844887159205810512059038609782304494891524871461419426313455319013719419432456940947462207753350719481476177640242640747070131126697739856143923658749439965451985454781676914864532887754690500716837853365545313005346436487546855265645926902507708137726609454378844828907580303147757215964740459153745578415492626592107135568152790645851814473636012156898655196494121717113021082821697456443262074982666186051991787361084469176185059367379635304078792209170261938351558266914382203309218114510355635652376961977102064895783759141516255214298096013340675270775305673728375493549901004201298246036865754036651269418183626397967529242544865981700324764299011490638170227744828750100814960577555715848594524333840671538104944023413151750961056359762648653275116767727150962311693747650980805783631417990274882969137675701535707069119498714475176509873426697989788070379434807448798455557766397370744050714240481955572122829568171092636963357563627382737861470267961237817375891732632304618127870220183436384356198001703608149762908492027973204621601153951005557142268348102438068444863826391507074982903513092538072328863273956306926185588371711624989588515472969283426642054143265484897382076850692477686440196866070030607392427365480626661217837489249738805946968418614058319528086366564980316991507959329217197545905963560119519300237837011620476115740498523134252633106204221777529672775541420793708135639697473039873396832600341916127811699460155735248315281099517630825629538443415681641874916571707335530585687023773767585492780994550772599805457604370720871905843573314859794068591222671549917333194382699702912108241882986774494472723115626701808283648117706716727499028202149064390490988570484781847501523591508055591103773449227097553270947752619734102179044971572584383594289594399470247511449229807915926085743492834180201319482257651769388060605272870382181918415372263931768223967113554929959245835013754420241389324470966231376992295936299274358815190948148125492792510786571450829476912707450551738498820293985957613566059651946089690826818125717111861102137626881652497876876753940861684212098797503503609454405744077900874518989602363011168546485113756140906191796369130927772763541158393886148557889160878937592447375165356937337849695265340302304151331676241117210454847072456608757380300877158944993012461373986457706024372646795440417089680267564511718744830181537950131622873273352105821680692219645080230220301718651859475956541403118255648638029731187683205420239244998267214369216823572496619051575483061355855421091445025476229726342612722600490938687375204054578834225208388846602326139726837017301004626786511162876358906097912247882727839652925274004802662252986016872030203649579949458534081506348670705972119573189212589215652535782144745512720393595966505043183967455774106134113816203567887596660150025805433302236720184332169278681647822888169730413465223378628243810398526349823288987364571400078065791943877260870991052905782161170894882800230962814427987070327367873974456305807303067410284225068889527755433887308723899031495978584849615721335747604567588557063094646375434324195079649038925536607098342185770800628054972378936628146884227650829580710046254067852825742480967164135165800260979954977652708373854578814721934755822565634279065243489841475709796856923649421362580609904447938086880677779151557685914569180321632127065097361870573355585904306354556453449318463684454635955589204982914699305045334838669846939068236998351111571582652574550469286019532955730705390133283857860155136405117559183245339796919906697216793718723534516323688324469954181804195827511775422006267582261704046556936129191188083093529195618052912546869042313296748084281603129031250580700142332500432539529715084788805412330571614465725749381544220415450367484112673899972831901125508135063347886423082199303264940973489184063855198267821865175382138545574437073510104663789701084928974086354898282598488538021026568068144499026614783311034718941082822736653640343237562201286790994190281603138704405477000289051800090775241270383384914896459080095076323031081257872164709990560229853006584318246476796849261550926406285285535877431886520413350589379966285425781987357520121475676158858824702361077523251224641532510166015373025281147027802697403518864977841729756878170750935203169832395298098206354398041031349096290055969380193120786371288868634734793857419672908878702133105054919974302218533385367955638615514170492131952285115724805439314567131808488975841344162711484716272283285646589316785290214237352602990929395123187117852881762918699822152340867093414319835016247221146178583350319840145036955259706674753032762266861254393675514936820888262227695749579642681588970531330060396382625551005447405850041551308687081266671055120741350126878533394548492082430525108197713466946438901281630660102945390031729653018107221583287836513446804389477337299020024713451677928326106543380144998846003040283189857704314711458659728070913996713232467495447337760771967102981544436785400247994368015941500086981729982576760410438113014587593990702248551504188990727294971619845507821007758418144446072572337579919826038490537252309534029075757943679277320730679716847901999179354795508892425708379334756020554912427935682108317821118322785401979516977663145068411230972784809422458659103534507936773014437709980520026722069970842483823625575408628100034875076236837971320011014783577694769447556662148653590847115404223620703558148306917722314591293467093972256158753033364148641108619924979988077156063790794170375873388185881204567284048134530672545372664952994917475400399239505949150479330165766757468851832858066190298650242833429900038754712245603190331746149250310561881840632651259632088812402500918512064237295989635002672768360864115317984226135047021420335533245819480701288068215354665021763791329995318482731555362880767669705461743565195276017032233655271215184848344186129399435299729610927433799974322383081372439433029740146190974392703154844810841159844429437746819397815607866542158116734949466844715196554746265750898862779659834125469588278185872558620762328796497581774929619774609343063559218131074677811398257131238638960971765382617875219805319320775257807784342208535727205933356984203695306306187292833547840684192405602440942693088097321884209428946491241330140171982058720437805720295030267961948259471141918703157713564610518989813811662065281863875779365903246183126816402302901308750124000980892287056335392219995275758777602327614315159973778054679410200618908319322477195014538041632673822094641487851052297311572324235608490674952798077087841143059472076164838788168056498901235827042880430838251763158050764828567857866026817251343426362174722741950678942423462029756500597397215797333575937642682684637166519287089545564573977031807894722574439098348684112250351704565789714624188018509984398358640552108378152845791857106416042978401548541541370743985692586819495879179809453550015750490540104635791842858732223865026525321360862365729863313381562711123908566453677834471380871488315297213538356179494397269959760160121560619018318193926406482875550642098472708170272856354737402317902297286389929066574014332640778296335579838841213248981482331616308463148250658971957182881107643002923389969865028213131838739115453348280208245413050412216254266486895432158709253423514922400871358454031271940122066145476285291902814967203251979531961166411611619279832637341748171233655163975528921358688981573923290579783830383102402132761091649072372243450544576450723943083701124864411607305015828444894756751195802528563971524729981515755903413118400860360188407361562589215244291827248609341237724878898446770455317043604340016026547018927701201013287480009750989508897618460184498421807664510600080125854072674237629347758419906326129207541800805067647553523956791264797303428735704307165954131795127421540186723575493314492005604609797856985664716150273237051180800976821575732998523623282945722556358933751847741971284292948722588199702176146336712144488651453333213035913221167843007563116937752624805761193916192097701567572275501841778563145673696319241516625568513903318347723007879502119227761243708174563300926261523889361061606296933412071153988507539877829011133282190657660039444006864842922789179909981054984882772170465070984474002404366576655091744076898556371140989459639374693226408332532253064844872015013844049933367110194130226755761397667790718377900892893502052705989520748751875212216271909418533565837068454792017250568692904107436147522810872228560949359627627960182175099318767572996914223460586135118240168907099671638155640849714920185717782550851679507216893719940127182877493675740356838047213515403309166648731222687736656206732099912600717907520535208704580163124426562224256975240510200806616154832528811692204210425176547288408355689837822940312553796145256515984174458684769617032455157683235548508007320375665059731534721677637611306881346221610625984871020074889991964644481734112634655164331888803633637053989155095483715462199204456037613142066330681484775580990412572700472328065283529146567621294818758623663263077079290351955206630673976832130166012044576094654475453007782211249836165707762482280969979264706341990773787525405117262297448487843445280358717353852668322121217198944144573772737084584041479712633946035272805806536614230424369474788739645424726879113645661791575807977987451452541135103773202845521059122170654771919572572002338917909713821286127748270541813477669496605126376703792159566840820657816220217449168461041945628307053545394082468631985557114282650403337685863544884504009655371067089864826305036616365122336392900364387957640542504852999664492103856512945913176856698935651891471941177885480939922169798869599770463262869435588453831053807680325915090585136649159562185332734601530296437454505895480168852122911788737235844399564503611777158129141937070905809976090033024368906066406509512260991026881813324996033035555242507656266128273778619983967932788125440930477246861639645428170975584073311334012969337444358495855883382013793744917686246722864678332020169882970422795491023439075240611239685456125449506937571816873056170212850453519279422531268163949366404676792579384517333940799037580810083210155252323507906172262408434816892973741577518903554645321780545226886307609082648353604591013921554886647850910602027557582550336686504490628170250797544752170826591075039567616645457191928580939017009911422678218080079873616334444895416539830770683609723960669686859875599576704322868181728632929997419613374482653669312507902613813792656082461190919929532043145910441138327000613214031019896953001413833598066617265672629523668242042863632182549807473979986055873051534478481421605218138248326876366189026735253476944601473823725076771967266314453206272567508291247444122851497414808304532657161985301750060458546328021451211495964721634158787880526787296104337566656812368483278004352848747562592050861568797528479729095481824918835675080933452609277149613567824237346221722051705419208977515447654476038847307331613792382233041129835289758051281179678682569206537914598403775349712855277426291366759386596704991947078673680923858574921832706717471929797825223766629074949222311106974027897894027353488843406328114760128226481764350759542906385487577584042031015023862160491468438007527269627549146031309075959431935628625977832826412944217926065846558533343632438862884956704493307217420196416036745104686159328704312887024200428684654425308286006152913006094891293437154399476838257157817291153138858867598896452748581744599964507756885398366588004630433634365049627646016326644906834810917195779101075230765283283090135489948525031487813735036248791072206647371595578827683363438971115576546893623676862379649709482645177031575405669458390840698191657035660877374138201432634604757611206892520601017504782212490332013148945949051867270818310654237799463536247388689361066297600853096760906305011986914888093217762237662513128889011802689688556072179531250384943259132192585187984712346493256880603072089153341306913167563664245252086887805817687012670078784077258844881107119708761517646263439596136465907440363810210278810892381955182844410413823143295628008064833010073048531279294749944060153163962972776354602336522793600498130395293116293994028238033332690820096697871297360010798760443716771835850223882062786480925717365633926266956078651676721466794352693618805726494850437577331986780416465290682866701145731580055788018266373526626315018873912051677548062092712808178161957274043983486664921451614993378953061748988773261630634886820733330894981533320570991329151407452840712143521748356104331436819245480580665945457876844395540424514889605756575399896287809911023920201801991207296365783342903806531643903246549309636670548957870870875273203012863190791502523587265117254995794518252869801784946709310161343620498379100003726795664998774630449727712367142925548713940615371861625092882572914323012869634498026467489440280671599112087774897054277192170023998312015240956272397474333039109301867792783628972803966126532840992707307864564338735846627096404147963859121250781609557359245750749165338423776144565262093302524363495489935976469298760520134561997459053214302381704157730513162389082758588718631478398419032357466706487390927863790765674070020217069709229669226684703305072930994115684796524533746358808788509208943113204096240716600308806318895319221120933350591133291517755872277112588581501584871628370386131085832604927673536810991790162383575019411756438618912929322886328896116377676199826034654621086015329802325670019732799402646851852063622834740025105368960613906637571195393079877364536929906956354682329557859139975256419542272393634187201691296471406968993424414209876336045354118784934466385680256982151229812161250216788469116423815348499866103901207427685511591741522136513938843964917233464752070838475536110105981275672953047019733275466526683562262720004102699289348405754535089111268022281254983249216138066379194153173855405080626494538360737679594529769003518329357982911175529903538219980942066673617287248209447264501836499138160366423642361120309838050681979009193342940665261319550462680708872275103034365278997460081045909960257071592586005228511859272547302854452051818369270605727328068005185822269548013049223023491153203085800176021924329209709969923547623452064267092856584747453242000955810941235056984123576242979885843710318980323075854527040923961303493079401540188007140173217570676180459817814441064446724339908331046966256077286807671695059569743441297674005577671087275764384502894930665048632667580204259370070583362273022519961235099298126572948429002307522852780911551246345528921465785721640244834627412585288383070810240680567466439403413088936918713866464410616811308787014328799973406333635776445220629382917605814737257705452388240490865424433726149882384177230716818594375833756737548141135034890028796892537334398996028539726430940157085501174407140687190781400787610771332298463389599224492177489326238700575236135225229458475767559407980082715299338119587739449727365223714365577028356390685123036897913726761725087708294661164735342802639720147032604811332354295756821947591615522959933003962288008148092897459396559958475043052999583188268742761337540952270006486747939418389185851909558020664522910642000927590020087056146876652441414405515407352172498174477671139742231466798569037475009661882171770038261370136144029413850106186989071175939771864896887924910979530772178791496202908928336375390605802955556517195560022389112938779594029063869524758407531464105318339513306092472042749980515795258849223882806376767611804558986905026340497775583611150137284196501763716120406883736894284973963556635218210010206991195945512170596393516312028079677451160075639061518022907773905247439279532535208337103504068416155013946351861991752435832386321362674094990715266106581571743688293652797001354283453888204712816185583620029952109226263716163478956892250684180442690341450964272302603126414294612494707681020502328544889001655955945183500800125561263649289322393810815647858044653243887068306860236122767961425285958830868376822405531153412959520504350929238266579833955542375062993314410355238653037903328193250486553533831874316471778297628230176690674715059855144868906345513182906662118095365298899279889263753226526874686711484584952178818975571513039261304360439345011605308398726149421731333571861835285813571830453036179481475315492615710610341508441209373319923989512005779157568848498349604717325930394017840481230377150465960485247250994868106005485462712525228933185420783133279060874484722675964587553707857109178657775394986789715495356772999820359081347835727504919542620692108585915494045786399025058078507681043646992270935592371341798045628166121092613491620666097838865536182257332293530603479644888968688644683486256293032576107062024720259127266037302069945670765991339704031623957790190162196526537744337090093555347553952688105771842867533416049453017146612749101793539241579187468467659381586836686520414260271999610353386976370276714357213932864283415545554210839133586567176663870396556461885684738571133095598090398651487951739883495596355353502503019084765351883651112292635313319978418214818554880712805403126527289809753183414113916311841259787322151703436502501902439112157009548125259496448576241130517898325838143578525467468368243359066750670365967563037680590187829281266790727249161159239493147162141516179207524583813726988416155592795079449087854105907594577809232787367922645286914885431457106291656340983711429758877379868956173496885749774465555579058278473364415288738702831432475708285298979962559767301855151749018157060697013717691846298760894887986676354548476459387754512280599863674686552098995714326403101412930320876276216241979190098229942981282160004075427704582130568808991709948495264833478534796056177116886980137066597433590647970633176372687886350812890067631026020294765333501753060055273735382461000059542113830208456790397194503970284838175701010440468178682032745073262769301007050359277289377066935471118026549255846242101613735849572053970696713355121339848210513027887526288211452033897029056782835705060061318268184052200601498659929942523812732398724138851632216247625021244012648663798935139456302791307400366069928180445526035344410923154494569548087072538996098749550867560559735737499775630396859473669049650658865277387002117503687989280959641384748416152013826012177132902374115164832548279203909550933853335643509163351126337754623377609133374662630617760077865730205918235097528205928505208402632795699625385503475591501719743402181019436848201058295018998381072700821481204005178116831734490979927707372748533983117847140021637630465475938068460833702740712690699236070032333691265365602057892739036456267419346567853096437600186673023151042361888591006313160982031441326571661332516816566986316073279632902518825249188565257172240107716966441056862033271425963081728353850863621392217556683083308184187899899352552775516384047039702942746608007314589994118500302868446875544287761493816334493487132615588956254372778013178737366898948341985149181391918422843415964098070369976348286023661850080781241927363827615080385098964623094892538206797773957564965509221834621819741959913790919248908099680309838284858237444279285199669127790878532578143986186118146853212814912508578742272482402156342617980996017670117741444188240883275220318633779700851097588138213366419545101523106824500305698390567759444659143628446697966716860938797519139589118985499761809928278938903498362363585758551302365727622852864591385052922763577566025891208122094676785259107489407945829532166997029088181049049437454179852112673323718924791534566888783835212720132397215913765510734698788983699010925332535442432356865138366650210069597383967052548572274704964381151081792131259726824799302483120403921711048835771504483517155312395077867326055578888066314068357294498670596003253852607753836554214672219678928541986344668323929230499995113217467083712608643381968471934235953133089888065021423399493846421308498479978961859280474227631257864064788862536443229335830033222781530805617050498611523934680993345959231471421866131332266916223027871423844507237747415390568237319390781981129749623512622275921124659598276665593802023924107020445247949907349404886829059357551513288520463315451972640209309996985607395566594596142504471744235040296532839056844389399028458787823222208645559572691145424123002551965884505248772518876834249290696742493095097124373968693515255014063469960833350731580605285393117449240273203566299570387335560003851241590930726479897919668170019657086945589624173955357022458177816148218912453046569299901656778491365997139413634822136920782568568976512590838700801989863027432195125760914711319481420953671589251941729706474818716061597895479336852447376708209157129975226815271939762489722176250498294140546557394063368385416173397978222292699883319050736449261184355913795919432292498965246678069849136186488986102384832741012120648527251738396938313643637182778609512545965049326557921874949853166594782949935217635678355176461299168462403126685833547438037770625652044339012579310909244381257561286449877862815873091137690739472220724170301826728427472719742000171549716652192023569000134286633875617866330767814856128574386256968367892671109677553914441170882074017933135110960913203603082282325723546609519075426278773871781110082759071024934584671744245912713276248809765544703409674225137567812875508376603710132535015846369292694546765734292662322441090809697253437266053320172529204746567738212348441363480312705212042531564022661952819824575909207833340033126086621827949628384132287308570726700700849474913382167949871244543459102979839887780790131397246500069819449251223450349027318833690573041099552610993278433776254578612613610287853166067583074887258826997628485328655866998091679868174338472538316939222083282405296786713859617311266844946337846265025807996711858390370850555179978965603282239096852257632388066575364339444122903947520559300102354299990834769307384615298473625642248140865181484386487291049037286967577856256817899643345095804178659409844788989044652571195466578939110862217992305351240615979166886443423379799579235134328010144729228316697515305621266884043328707792527298781771735462687606624579120751705986854985262628486375763381221330029310837170165374237856817574538148248433899725476357369449403889641487907017880783340387129878364623438278311900095638603723389104947611905433650352348737752190345088416842151043954901989715877413072317030724229109217522613909536851330954026144029896406722096077475215647435445477579681191110054989875799400318713990985880769396303323463966245988397054899088067521053938017208186029804542493205026004644358351798183972656053885691554137121594155534068071662922132374814741435829145321335403748453980214223854668771093286304702550594380690788220554495547892900478355480090036119563860436969204117114183691326278938617024777527018620285101938243029830164774213569807640636635971344275085259969075940035445901485693692412037438192162393385310134969899043456407481685618245242446395240143089924444985598612640201635930687778057341499196094402493537596925536890345040176101941271405446693088334656888146264529850521362066983935165131979177277770571958653995155701202971732608858369420888283108152269611281899476542965935914040898247641844944966495080260554272588619012171862604683960115666335248628391231955663686503666379316397856009682881134342738875788901233270558486404497444334579925013820712127737255010499704940059769366091273260157313661997827043834237425673864836712311850989684614287626861126768006893596333343564896321808312068620035750633981882455320946589609112523522832619394897957379537923400685291226445875322122110894126089889439968592458309200417046288928800267697775586395646181293168133173933047468684752606040287958058546661623808213377154083247703487247156237149178889205658597717157609996268557216395738856676940674938652406044657252494583198201269459353859698512022540194129114223552539978477678892368915487428446062249065745606956798784988326113802185510195639398769268866238510370612779840505993656839242055747257040106692442282923068910066910509816098625970056649625644551058886122603558008870832139608554472326688628973357405735523699636909485932112729584871910654646950455572729440986785266472036983800501244718383372946956647416787071301220379365974829589626154506041604844208099674538591484885202097114500987454131151666871100589442042503871066198791425033689133792336989555176166796534227796785218927284325354529865767022426755911265794823194598708253996561414495220548939875671590879871587112800033301761540978822140027956002096594196601497167944194537836102661982194311170093835130106680835066273933584385752964366415864111461038176923537766190688520432396448059118758473574981057521861072909677239407269171068301658899677192724501274739426772304517224463021137971737205825936246310599532344204730680577996611382253909642862371630017973610762313348867631545295458815328398329357456403451854824937479062331636074079206161474216621498688362769838330690402244221886300534107546411068387106229881576978954620860431548804436792353694776781860613409941076791317614286996710542059584105877872754741530544307831652352359114757410313544841809014282535920038047392609471830942333168975306799228195841691157252230591038722460067566559037592672111193570967355171258520333415695517528360772930380412586999389987528095101022349614551850130051667721915694386292835942326013460290140505958157001973582233971346807994369765802382667778114693649018856974451286403555835391823781920897496100028432638740430365777372003296424421475363820478037971329646715994309628385382269351776869943764890696755977604204413986916793648474289289471872617029990509940080423745592595832167171335478185023455161986442179416798257923188064523545155978064348114785391276211294088946181656924460672677245094955070434024892804912218868887289194910401728561473761001669729458331520432009386224141329240528599446197073298169487378523846643575161133603625658495549652306173300965163249013444194016256446748170405038050656529287428269328058008081266512477050493709121685795267115074967723910824196018544833919289791086789389550449467168921027333564326483923795507759170764253304350734545368089113293718994253128299531591616891204733789176101563542311145659605419775763057321784313526255534063761153429061730932845354350068112054010655737173499558559784200694775420450910241985122610108535144570523161672655042889991511641999485015375325965112711856620461480764683270469511481823698700765205959064427109080125911345794142531595468826230738635601011400898745604984522236370530370118005821115188245201155293856702188051594235932011172334849554292790386292878737802269762529435889819364147965948101462496350622784229534107182859085581340996384199273885061221689504425578007318745234132613097947335717076410765506438369465658229235800843067470564520499285428520548566661708317301342021105515830442859837324334890866743759303696901756187384332508250290803891370345390422520946146549781801913975036250147948814281016660221227892214121034090165781480531108202339751992379667100589228873821052852351107838990025294579161913456092635567301200193128330973292364756199697087539815004859890821729386502986948043149553731423722151512705369049231895100851970906287479863580180920087355384231279597773363588008794623419286828608476449990460345476649996136609144922060404941523437286337430942162259661332916303987019659940439076820121831660916086018155942027838823662412618430935702825752328109995859204558703066779390917472933861961522206360396177826219184879170764104540154311533999910390098783624927079003648363897631637749349289564590584702074639277293221063280754637224362158418388229784119522300072094005814578780738376355041646888228743240930358863594275189142941387312292427785085930543599202678202836808009445059744442129031297941640799422806767709493864984247423353830323251191063814737562009445982109029059381353775986561802206064759648695358272992471538112401667845701459245927998756130922542504829749756072076726708366511918471001429949573312081154708808268156240398516718299793253496535361636943470881270540212480342221150527493198775341113271099382414688749830352008015079061183812414808958252993054408760025628404804237132621335470522701000707163309205448989071469404251791636569386107475002804117238717242166000926088068161447889839182869482714862465007948624066925519308593087295033703477967246099976466142728287416514349968355488309163243439847090330558245948705145727344728436988934930574867596281394224190002649329859460110088099396327921531835213688308044988270632856444848957107175614448408347581232508639176287276890892040791459853214342169544047267632596616221191407074330789231375460890535122984233556622253795113008256544034069490480134973010209987663319355816628578518147221320244511469597298740239840573720687256710051186045074838816972033744699673319790652233625617546237582302489072311245250626095732378841192102001965673951039622092473209337131573178397680658836324487524799851787279281865825240659980735847491981789477925236755664435322304066129450791676638960399309740954166519675447397499046271739796117226706067916796832324283647511630959078409658071712883415658291658831387709185634223203873670143354703962167287166583374591097581526073266644599867604337225416249462334409573615321034515870205531205116123952784430217420112922991561589128589191292218307290609917780629960293452231723353042965869990279417075874627347633049811645588780255226896773739910089786473567518278387771577197954427541439629224715731323930116443030304367216663579511531049328656054234320830102607213692633940596049346314918814377323423675771321932785669739965794533359779448714043855209125918025106884507272139912044483332033850166732293843117713333523621562989891796280116499679440018867215371979582532115761314296475285223701110846420028031835518004800339996179633998463519135474573800101592830267112110047310779093850437507851796628660422960773335417355275903645818052658029597612905072411449209993120326265089497755785646737897025258682084350762812477478377554289633758095154892762227436672058467187682514874945727282885962273695713831125031330432237285491748479466901957041428050384228231485276721360669049927789567733222699390723253494124838507059161378567462163637038168400293768799033160401290530324912493589511087792082400798652876125574086869084924973787925962761543196560454979154133093406825203873172729314012010457796799475675761726720050764807872144948386710063108775907986432544160780556648649250384826037513264705230123180761810269284478623798177164331052857608710586988059977719734446296366633552018779808972037639884341763271107648692297495086257125068835529871076438702080498490357495742314988472031067845190921943727061861039743697453833519856449887730370237930224513291228939480596018285084105882544488858949644214689259144638375757852320055080564687494913910968292354343880368961229870251064793926115252271527055365331601794167583629590718529836639857882881443911185200200409771557824496869944436763094691459862063145201958790178296271568905258319939392190269321766577036233451024650029577776153829319951410391912953374977650828654506535823436604626986528342639514988932233941794115134600792501355837631684315540456151352602982994543080875405846835605924565035201717730978669646360917586683088155157236378460584913835713425033927446398893097246505881731628776289330780300220349780804917294229583282813828296247988760180176473582081820344530836284830795211120237013783692139971511462375011642860208072488711462245214300184851346872027416358858493575956370044991174934270239288254810781592909921619848307385360373451653335912200499084542729186632804549970035731496166170285727841512958358180019874497953038312452085540677591412503897682315651744716083905374099451069799304294613471471534196289706881092480861182866987768980847385937775331588110100407723063749537009771518961306938950151787979938134410795307250514388089468230433623536763209692879080801016066031700762904148472552001101035085524241969313269630181102592049074427267480561309750482174065921605882260241340429396804709840665703260657383115758258597763488149076772390482539010480252113251234629041689091154751035986246443061372744811114407891048554941709491172181701481210057949714655106888002292786848430650154828387391010322798927779988399349785064852233293557852910236851183755991509510102854038965302907939052863443044261158154506020288532432963418777636529017345993029914655546467472609927343719014472416427368411622725129637991325855531863588836363841929544319315290868199783174931934434676822285413833921348880421593287496254168838060291365500427750788140476139541579456806136839209224356007105649378203683771852238960643742433355640989765172208141635129150065319782539536898204775892874922574414686741945855683382323031857467247635371956461115322163550620010223841232498565133058460227623492852816069267959720949486401687392930786486501232089424517371526970036251818926680607329888298693785395007107141060207674438612561890355960566772506172457101779533241946900273110778516092706557071327977163560928602406032045671275416104643478239179552937349674438048222744371386454655524522598058227404298441759423342615480584823578711027618254267980876297982195063233956868018618788660536616731539119599725584421995516388479937898972428807302173361942927983756364549264450050229037050772989689074472703435300137017893648761902986768647421321481053381027447707505743144573557170547683446372361346653475209467921196060679803181447547854953400275990957901865748742631637529884530806672347646096603884937920661002244261993354681116085633324387745385783402962845148616871287192805474516428997542900684378535600924867143833838622913031122605361294401125050094124591399749666494065018524274931246072075908599463958068843983030477490226711659738253819058248376585421893784112861366200208826835601049334101538230886130036277250155878325893174551884586716356233734992016356129169451084642605603779218558311295087069583038770229407912588718375466427543366096598486425468073891677867171910682572030949180796723094538176001060061181000592852328260038472696693360036546326896752666900662789076685459540783948333600235975591676099315854623013561555815215307569913521407613013597311620647849311566638531120231370130911320419161983815830686080931520807271100963742531796582491048098412228306116286125317367555813016982071184436142871542477285803888822748728931992917604988395873437908539721739021960613955986239312305868639718461470834603777936266238598790950441578104765167886486603678417286557828547356416725173721867917350402969193833360599774428654447342187169176584265009981188405411252631481109998450737901450615710111550207232334591820386494177508394541491415629466949843258907721044870567896453569201728521914601252356162217208547400594026272952136649581881198093628438280909779329834088537189777097957406798820331431326945454681782087436162551637498112163397176158853920585143108435923318893331266968148604290223807152925828937119357843861742075481485431440335353398749240138056489215107747013807781040175380932183130643362427303559181671798105610241241789178066898803409485216400276102887959183042608293902655778904745259308941516298268743251366221192652277073643841726271558415791096217169714450915688391291927389566191219136395424922861136599553384195954933954775734270262900347826381001004956167313138355097653906405015775541798515796242391162352646320816585059670066722114203098225173557655673766894857979403159675577575851356108892828282564776838553191966369021817371307028760287763716388896023234957105800292558691881605570800833610667342336618620145015296041637582606008265241269142155723366579189393962830783370775697509316759618154544431233385348064455826023709928199793826492441625095953045736992427560386479955348599220609523316493945917776087506822970542002843186341079583018551090772470244507681265518523726417543373329243664610599067983079243409966378560166746372370507653582565826097483634888801799517916477802856937104384582920624523502798569480993468077611456330531583638103998073269068543959362716996384433846472352383768098201856060422699380630060738583825484378731811484991840065425495717041661839123326833207658526410720063107663843869728558048278885850535336683978786228164496947254119951146395900447252975915636743801769654422984021155222273409555256567065548976595811066232964123682288985363960759250487336192370403590746272074983131347663503702049952227377453399968517192693272589650547356498533217505419966788887067948792217681205209985268172166801928112913715567081613922539947097638047455279282814275712570520770218866796286307923677386438516117029075350581854649092873387942373988405861596156362346567551939512708158924789360406136611175309381126522289254723250185398780959226324740937501501090347249662995370265565100875057241469148447099195799727956056783634759540432308377064560497580857642791350581271343611184083308572638565474522386342429836426281893651500802058488380938061662816469513782850154770147353549729198014393118861266469104423719703964318505358469226030447580698892575914891610407973903217155871145624192914233686254050605448067527429983348717874000732719590751334772806010694290514566861548082347795748445554474050672963627144142935737688616013324592780208237254188551968087897159860545384005775097934626496086289295941524600524102200768691205284375925783532186929249515754396779706463595400006148436307527683164271961286294587480256893750497302636382206341897238146107246820552447628864585255097857079270304812234570387572764746549655800513084669076305667157128101113879952868764161084774998722135971937623918500321998751455510583633884231493452409605678701553414683163685743698482135654428235169143679019663359211868523471046650303856221380729246032832834312709602518440010780209749331791994410094782129812202378208947751608961563301789838201244850201931078459192511312562081056497355118835450125524862520629016185720465559410971730706749051624487321406087749908533836443643103506871738167347662922431990142347599519001986050674657483805228950818619901131003875206896010627785761777440643555355500344874567208956260355350666602156843795900980534302740151997289771163131460039714665832820705725103761918187560030774109681156543438119007601018803951809983681358379750675651315048508750065362704540243604057185098143919793957446551031004779055561112911652690647072196943205646672132677065426769481277612589831940465305439794285918658604349058039302858878484203956856642828243704770947220919315639198545588234844872815604143424578281723572570052587636824657511992927582522468532089101674217959293427324168219991998858389454503987982514688413806796390294542658760128006455726308979431476385754075126133057660324842827135762658105216187649107159245070857121470505630690967944072541280377285624492217421440190495659622132901793602483725611245314937120620779405262477133919251604506311105739357599894196561868663167902761422510225816271386747562573348342918550395349159055745947555271035797210873090387773882041922827978478255128582479119912171754584111974863670795952740305041252681094454865983638089776363272402301283463851885193775018956958179606347696271057464722570103316466524396813265391966680483973379938724127223682225914340199586778704170238324566792310089583090589712828422398063436478103903089859078183147104865588905228906266360842107163899366480863806675047720344995873163747730405590516812657284367693058034892392407507708814795659773360567165674745845756835798259457942389809924928255947377275823864292967045979406661055916448375890565583741047378190613517463488033769923164296644630676327250580905912161735261867740576512850370752774197960795538649940548383791901191908466289101744090166576767649752643347645617756251497577019688817721294800562206424760329670097515142147314511330539654681750807018311684577548122161388525770834937867127982954841249027420630818219783059451311780815219227949180814869584957304940213390422861763309877374318189310952900719164772022626527348730447401508799551708056465059045440541509873600931911367097286684218662668053225688129728676091583353198215493773843680319130080183048391516933973570985932404877848510056625185682890844900772276411544961319625338153529615497937323461876309511354676488898072782189087909881840044032853876540370702228728496486742285120917103408639045305229539461436037572669420934369510789178869069381382951629005720911705531136372075580397870026028999238351728525622147116818893461429660279299560431523621971241785676640992920266337050921677866510287958050015139693663459535538080800038573110564001241071218585356312828611175438963012361072280130902805686588952737493096033907874923143550592408472970146397509220594751897295092249089500610875040158515810003100081841531147524768522049522215358046061457444549195199864880482801721715848991794849075820696099269368294020432560751898916236661805967679605522487647446166691671616188351183521093735634691921580403362818775949633305598625343238903478790172287609915464159463010382421785078671645433271019742173028382589212715557921399691659371405513632010958475806164589047146517357074337737752753152193724264625499615448022658632051703229210961318539572097855612546313893574050539180333596480903909997605974724418025023386051235959303504136204219697672396276449544705588917049542111129154776832329014818436956476976423814721631313480066671681176665444953637100640306362510105786037061609109208131081099614862411943757815578286797859822016501568739683537621496047782299212571678396482942387570186241701516022532375886133057551757935136221184278375595133293857911248568611896849455235141837139674122837727384697124807216671176189720219994300353378710987352387551240976778992432119903758390513533415937482864256814194454000414471188993630101449978162273665199829505462204187485271281151252262882160445764397110333262571182868787423791903770649565856070490402696127111124738226250945914896425922889580466162380532470993358684966870567968423022805118628457873587803489922675463361875207044514156505025462281816712680684648483090183050072022327451614690981536179913052066735166965922923635975437308626425473561111344288322245599130690941729752923529902624241516136568596367686802097568453064345953222937369314677283183690164994397703255246234515153853358088088590255874951993850675408090171180131706643863456843473764982377220722009353240841079841981388449972002318495669459435554566166995616867021933323753229156560512807026350840543978730793208719022469064776414245812523306415853330313828223855114320728080969110356868125547474346401074671978672471887765174349681813191302570022823728608306380724379748554577550408106672594492793623981626585598401780523899204514688144835367134500471287612378710735149347306517643961094048775705277458659869906634515804832091282462512445016241336408792844796035681310222043648642641867764899537352840029926209428712481451919883928590846804459686937939668458976198773339737918561286678888904788287728791568405016654569529780851814973364041955349449661681398971045437276877609925010576833568178804521678320978176570765026479686306937992704752862729287490545203668286242146714626145583120398770351260137543916523522637818405651682168206151550299433243179121089043175939244344290904577056137873716563380015510962502243854645359415594977006860080386458998353379511488877475061100842698159645707324630850220994480064470723832322001006930939480060191695578459461858021989386475162997203082573196768466362808186587321784177290736054252616331824353722899709741386132065316597092585866674096388763545294852964415482449072914038518462246609546868127447475322459326403943572899773674389800661177255167152521232556716388998683396514191017571978272576751657569182096848602597309511259062163613683197708770775195219539601339531326837940438463323415626546346534346646684626942186845083791126519557130514414534199649200066967414885647121360066398261508103481045811830773603126044087574521928998679296477311502958979636925511144476762291247860227841037194011026223003514973932045762059037452314347369076438134820057517909146900519761512165584826279853011759372707991601647976351807367177867123390301719222884233220194096403848660346197632866999520650733053638278590184514350428741532877896611037374231425061802607936710435305640806953088122316236546970687173469786816577021114086895734965496175863219934158638284964351587402372738695737776569593773428826328041676339388693954700398856588294258710063605683244350089617529093352228952355954797211718832427403887287477232917588253230970711719050081066864587709566797906683444957052842591789726056670134539282978960006907413242422061951098528204643949050662038314502548592875417048299367513576557671764187602656013202904339347691785258252827487656650735993185444235296427677534428122491517244343072224611309669224027146106089661477441619717999220918367695154590739783167629749757158270631550558523395927872877564555912769287332961027929728953167147881232246246688011745309221784006111644662369232756879724316243896840504251159626073586097742993822572347217702942411692340769327552446290838983538191197210937067611003722759787314761120361580827914650934738185677345292302144056610978435711239389769347238978211413430212708499750030157727490961128424694115498930089036303128250010316987701353421427673140568242247104286983939742609983544485619613767380526888443949071731895766051017394658050182522245851419106400717536804361919200806832282273211078672678304543250539021930397253289394739128661775121483019652377031628939664126199484211084882942355870101270228893420269397929831835132369909477405803671554582329517763688206730295575383411716056568238238310147253499726839655799954243732808619887548897003409010777347808964429049186815294179165932617548842611264099249421557671437212142826521389407478946843780545482524944207737014363849413282373322066985708738263963254469446476649952152507775518058055858488445655909625672940104387363439481687935285668416777984019423174758707820879023147731434152121852449735153246307828421596276739557910437292726127739241102579057189245690300845592906457853568792816698208391530413597648476595387109940979257941031427481688123784049198819860918912254700988093600833929827533566056961797490464525422335474081588145325103695649902619215491428252986455799734080090694427561278930617218109539805590160194808998214327477138454966493959089447619536265529895435328694204568974402032768242926296125144026658890661416845292176903969883592511129940092257279817772143128159006729119525803532510601244425376927583193513501329126132339783528068549890336444199889731025565060747197513335424087587885261468222092920451895903374336614188046695970611888527967233839188926999730348173774331930424221541937890858541991548127818505537152441962803747486788094465647971781238658464463212499169946341399111848886120112371981205349356014061034359734854491341162632879621991408816363624561741505159461163378246453826472193443651764976042970661523475634927005101780932697746047570638368974767164816673290372527288152383672201820006463269347294059636145635092234071724561453319829851112595734208866279023122225544663066536342914473737138339304894386637987807307316867445292219187927241065982794389314859208571670894187449046567824809263697707918757843547501386575366841450091777984564391933606256251658547250488008521087429707432251020347058661356114878191745035216661937196836095083298118711996464653953477335638124242050092888919851419041273517185385555182911110449626695631323737205542762521876601536527956264150279131200459632732952142319487564021319925315334503100241987244059094250628470872758866110622408095178045359934609354994627298219944560584873609087470452958814689982000558436705454293306151886666127929785852652493317979239913135653769649141773477949199523089486138120421380677164414774494542019273416873203134565491682581582173296206414298902423832439994580334100739454322615296467683675123146674405699057810288757780408510086860587110136927491731042236215561479146899152206889552527174001491359659173797366096491527547422916264001850109162833657203497116591084242687868507234308937308681116175028630917926799031418271660937702539323545496965159909357556130317890736372994886193415636561646196111140411049024137861464352394327743950261338856322203082938485687670581663382613680280308098694118749233162214414693312616429789843819901938695172286096791626183449465702753735751964076702677379004912540479203588410706663536217494500506844317461032964379297573157651225408156841686863229620283006498351129844197481197014678957060593346962510891316437758537625505803522557984291858331797398850966778891896834276303300876367852727857075528300755328306805057367200548889678475755884857890428223468587206137313700540103855565584799770281126701543713887279302847916883007807957978956209483054540037546242722950018445152808708587556168081710214761791288068222518664937391227928131660249245150163626340408581821860836810779006774921094186974445717324146460321382442919184132250724778632124039492055452061297623306293726690828957261760259721148452252033391547119623309340161709675438113947922118851358037557961100323396683097692244606832626595791585705279842997952185378341841479083054394924420003628292199657340665763295893964012797228070577959701900545844887270787520795363014298516109817083949594261659689262550568195047915644736045081379495164017054621058215606951230457063931819583696215462226856915494095704412043344311993496087681486495753952099961831450088847207788019330441020884133153881480299641216088018220546982750160297868936903567698908506809326996765782000328859941638612519505818626410323245205101031554525992022543124339160464487731238730031045326793212475178429202486544710565895796598108323857858793107825942924925890122325252154851697135211459845140920726360762556038388147006442134606076216552801955302893392932059875759626874927598796950492262214912154402883405058838647990799353056521669686527952125493194994922819939534596398778516027267902892759584104721290326654346883322628496235282093299636383186755382489820204428797262505734689770342886401042219351895264731111069315058732769675302589073034526577529853570510103476906382149820926065650145224524263760712824620379048941955885945299400142201158139977688868071325912028969197257392506528484433883857403763058844012397989540252893610471869489604497803586146164403554940992580944984428068562965467954263433379609780891267411108477123185424784801519452654893228705349446989077596126886785292768693777723901604464558592109766035561894248522419301094710532281879200754511727358515209844582769958671416681249585875608892596528125527322337556565767556732842701642814816517910840085053791425613928837055040795118251267773269097847929076906451419740764078977437934049936690470041835972042657406103977473477221527022061600918299685404065006365265857977251675308638195549181392407638313164818641104194174169942282180279621168230847395630384679608376264128311751693739973771252343707325364390855318084433424446443894018663191810212540244253232712229810148535625344713526243579533941312492253929608875423102060491311370181886186922598737879067247073842382752190563798473963382145837831928919025726443900314254798795360397885518134774788434498607339124098234726434338066050458062651543894248037531504668865763683957874247564244620639710590111207067324858030638419354258626057292788369970920238806613163539069479079247252106914287167243042407684874808750503332243613807423207148370359035732269422557784246227889038666271996246118387303956291931484724697664783447647908476746620714213357877723449633212197582698229847766945571544714881645276304119324604699359850811600128625048340892401416858306934103408189306110167828587372573368154331785494141622012171076703175984525793630792437136102390935178618969392485181058991827399825535607091383027490494509059787603394508805606530658994193233002689647243466210713820412480316617143033256686503529835500466923922664904063735134912839579366017379095576835586751633570677339259970417384260699500256614469477743776442542266560396715206839995388706714122723727708024591148546551091617493924614247405681348024412208921175169084231321199020976571426904939627566882754276512244555958351412549573302434551568841225036488824076658669503821485714461041412083103804471194252969034255220332081005438506556243821863690512275382420546701194895792810854487494066775866373037109594665977435524962627852165541522266667028366125627185900303504112388856791804917144185367474361721586723427509074658060730178076610149712536947887870436251013200622324140695341056518138358601004192055546483341516918845612049784430225034528071799310408790138255995556133258767661934621966097854970446470816492717665796272245906478586683926671486313348186674799929422802763893975343383265193029281712690321885163026126873912244105470296349579334109436482107620407818012570943423137553410386887068353945665955543161072967040539375131904555656744207684663432996216933112782776417336205819141726120820281927945735245010383495510435453439546148698993678485792569807698272255728839034116455117436243826227396546122351146299362887317165222377851073927224983302620551254985178291330497883160673283141520398034383560671365577542037373105748514557681199994231696776701710618883412945881653770433347141081413202399987140570738991911232113493189901572574562305958964137603133677590498958629694948642645771287939044866793062936335458521528633896068579278460036095869516780901440346217559936056061972282651326175983696044662167744258359530310961877819636880732144543219807665076312389341074999643023948893502295610521776849509468372850044957991267439464726935783698236296320061805436563238753459884096893642274229112713206668928573306084746906259054816574762260495027494087395039017322009882778693030312597132251746502539828858317379966907200174283689545386399841715403775049057660469495518856017633623841964076724078403509918901000698351529616477514000352030997529832172010925049663329489515183431425664788018166092652461899922931905330459465224527196272421968546351179733518999542104652773353397672008978631145079890985825961177419702310886042179307973656635526095199679970763516723434341054601009535953343518352482854963368201269660429285114164873457148895151476400902901116130782938192666324604434285945704953672841570378443183698096854973292038218322033416272334731636343099765941445074645779217543555948674826014486120364028996782617485412454400337332537574725432342093066308256308007644663242232251979540021231017009845838761186229817977204902558508036470700569593316807419521948517958053364613276252319543807066396850858292247941640520751664910945654596118486253527035928048097318996336342078286944753619108004302453531398703890356661765104839251982118687887974593928936882270975666446200580405821806663380641154366859519182166770636161038744782419598388897721637004677567255478700425753627779275619489756292309441124804983803488619745686598827069303815383339531010974417664396069057403453686459093061215654116803468890575762323786437249555338455824737213446181864848996583412446701179202268573886598931644192628089333337833743618756209047897147272216751031669949060129713228930393260553605718421390964361564867392232718698598719690773116847324805656753999471123335601644608020691776139428982472258139181884334756669121211755924740614429648760170637713270918250147689586187885330047815707311353125139695739099917071193966503566953624044879726045776902171104280994008008578404348334687530012246503147150958450297859231340861672821014935367300316505749333527298274406921160906859843766140230695747516274519892284426235812125537185902232169158372148251312360318097747673567568803172865157319399468158168938581790264270429706281489375483780727218946990498872998805667382186241312708811007964666607356329472041241966339757438579895528943832749374293852035617669602019572190531238610914500426067297571945609826341972840202676171554649256332542578971756307770897710964032634210710089824749368260652246945832545984744263235167224349559811092941941304289278556937365074515647402426250419694205503957019352579719672021567408128812712754099925726212832851781663310881662532306259498180743359931778235323470150749374478778576673302045519818309814355617381693973314082987709438823925316393654773299851701784841458194343570190870801559472449989931324479752863652457511221384662074103772542061670547034938360268607570165760781131338375099401417715318524970634910066828058987409081329135866212389045335541922175985817768066928191279927007781354340407609937830544226732447109364387726106396638251144090884232374056041935624327587706036238497801708770082633165956827905853598843146164847557817011126780320216271473553425783798850485465440981512284273195012798085107912084855534990671452701480883755714771614935489765638207334716126659289593201035970706499371086986749050727026260731174221827252922973596980044617316104400150495655390722904674084291366901067315516164600945390887691522650375571063042827089200258125694785173891299934998892582338478864625447559490407473269577448091410843979499536869505652968382154603759923140366542034290821411885932467772013935884455757726567647282506141302491147265741311129165237549467141507312554281784572540277713680666232260298974141757026358796600126401314801228262376645387225560236812623753589880166350890367736069402781752774293732466458769832512736750126617756057187392407725928918470807195217703337509607317680514530086383049107744420907900337682710182092003056048947850234096891682899342338181275447129089148593715639431482218957231654741372504851732773161734885381403582547605778941664298220658046988073812914336615642684207926710785442032516638418031830514716108811431076146979764421698528175353170738522098508602330416886696245279931207858987752414385271293014413995019997660334449819976043895874703817272812448131910987975241466121124979546708559587056436223156233907055742514812699412666492008789597855743709585806996117031352047282622101881159502018869878698902132405082916831144052332915916811644517356949455369670214478126215092031022931847085142495662888116211127257888327492322901404216137284729901723580027174414649029980990094120789262533197863258181583447647923743102093929421701864377249715377830770176958273757463352586581471535349425096994725239732826044572923724318610877626942287280273719266557722306572373111040698026597236534681291149331398792535657801685996336820378520455598504334546882482893262008444705957114611372477295989826050557959798448265646413661909449608995743194339176360187662701339004376749565600102355118203413504454574032003897074963413280461894288337269723705497704092226557193329366075558903420468031681422871543672871728041715459038394215574438122825718526571891712869816905818435128256853364219590196472041797127070636235046453861200415215079400920682522669623609513701626087097215867466575134734243853698206086922972319113348844683409786075701351961723558350503986078170206636250720411725362011658659274610275514915603976273300906363108372232862877397949875913080677855903541701845066998066270763872755777538787495386055209079062171716398253215837472872990967050072536365638737790730347632651918686556673028026380298078138109102796055945082266311638942144723611519414236436813417800183754993624088052064918986893593007629115759145730686699644184306843150911620406864855839020987815025924988545314004307604362930351447685333776805673164004533021927633116195712429702266353418775998503282163539816767278137372650827284416531748021785072527108408101138402210419632286555405113062352701404191419744353973852857404539158842382194670228435536665194244149480780924025751088158422971872327863972053160496988240062684170721355662615527205685601745913433342746444954022777222952246599510233715716375800933438819879362064044405742364990529594092780799831384610193579236129783373330327278779056050532501356979787517836295649500687788705493146468861794812456649617447741082607544623612949025634041217448301796676381441832868415574828066769856668773577942669893927623624130230247105103972521546028961176260615905623110737600870422062825003792378646012972775277783336952663170663982567478923232945642594333684245163393026632013815511103132242480512127400467124691045360156084002351234044060408150733919084376662645827435257240586927278892477219413249701556687705180732977846677246487664994699359029867024122364329272064318452149671499562172890505419897057185233490898742841528720507550762803336516551174165995002125829457703562309806727850152621376023927097098213245579338876144728074745720452758563990308236164186610563678245809120341252001340704837339755036950746458144411071051754499573400977745914246562583491034029771795042570862292945164387773762911814566765746763411531028570956891910852424795023180652455573202367792034132132957236606919271654062220497783131577836343830822237861037881796519462663315081656580046867887846126119172553547107649475302779352382447289646941551171224049286307191607060684926932887936106907755426092978664661085591688483684517857493829048926770577971464996823206962383572221455348512185032223598838702347678266992106047535109068896806397944365187562239933301522581302923149890137633725284335400646940067412157734007968243051872765440999763556085224596819732470687370001899054200813385462937193548949599466691407570564544109347225701193010934407468152086518087201200087750345748859744890132549189229134535994613212544479203612427783284258021034913588140201336566712557400407805320188875474877095812036467935128698632308644523260013370737003530620015875628587509609501049722148833799515628787722038336164121369992000097305338198054954077712705193477169322513155192474849632196729877429935475650315884962886223703283005591849502059867375778150256752382327268413763089368140994336036008830116965896834735376992197207052549609655672104329096423400697714673635359372463250027924004491456349021065620778909762600365921640413677377693014287594019609535737737491405386696197661160267841594095558491274520053573188245507470266417516968432492236159081775493686200100996325770171678772454951936039793575793512185740882724263975616267278742839029568349093543422738777185241285667693591646320185367312943817488245035552546824859200526376812017051963217386286526693818724074793290211000281252304585351566478093968364491880532682134935897232535258511846353051889149182730965710868524873970237788083216374724927487100261683336909922285384815351532111537070906244515381002530812369363994151085685193890547203491377901988001948464010938093954147058419624491263406758572411383398783543938327350108840505794610528989492811781884264718192468206039976479104225516440174670709765490714025609634646969969390355880888750224492843156050250489379531214126671287681351144334478098406333358271913891070233391540635087387919800184991335787622385913828006220209413883324580340262983777736925140980575368691336061226386714973873410914914559128584282952620734266836385168217739903740159789623251653047870591484544990288262209287061943592825702976541534275154503649220747742104398660295287342356033125882761445228357294749732549359009777027140934721267289376006587345792632772611538696836503815543579971006270067519622682439271304459079064522163193864821663325753217507799881110986853403830476644082372174512142660887620001165692895342627023326396823616320224853443851230851309035917660327813657175836320648236362956896309870693369773586874117526485707089639001883383025650255597042708745664508455415685056485224655042731678926424300891485459349791445674238705505993281114785550727404126098592820445414663379872759545853358894177474577670228254661746146934394497810080750263870331313501742541786267606446499235273155287492934949674299075494905276957821458111137503689037095695974061146900958114117842806788884142230526877260502292595435755547641237172969361128375194094494304544532579552736717432759741707406614420815472247955096838360259869172770130437360242318343753102667201362734972290771978268837648748380198187939528745164054251024199185443127774234702886809805070623133961320084628952856204065372205527720479986339104676827324809655485223594827947334910643715911020842502820445979646188003255072469225138400440092127902849358519031620722103403117588416855777317034534529825565657311767454926932817050412249068568283764209031326250144863200051226884783511465844106944104874790858004719241103288833604836370989900227751584783767781233586752582760977541793735158166192940936320916268202879866101144828338708891261170772624187966290856262930699577956984244931476607829960370325969582409235952502991034370639674254617424470392506800795264781963691798160846990873367750329718033871818731899737596831686720339759133762848874592587425479309079945080869421789877804357910600796717105574549605239224303387001381510675935643523600784996175142390683910851719686407084098687128341671891490692682736249121390773617345317718880868435192569868125098482694262185721729940553020696555544178295411356038085511298122506708716505689563366881308846521065621485723110773050214236138845837898566586384194925268315814817299008690008400740235997315396294953546224201978196688566323025517984575550748063280987036181094209257797748015693384931060206103335514074093178507184325458452255527137213218003695310918126209592501720320209372410774515082421242129685446874526112816871861141284477686096205547128329509292669410489681273911365341873045202069370291263097012794951588963568039883192268025232042186830137593534050835708835497621912017973085651410151936356021071519724107705700771014629828852303390588700782030254043919649110094601965294864749457900579702859970272157769917852135244323964209682891250100502046696531417526252357946632743782703749953163303506622619326300322975226885909130033544801618807783175864555492491212894936469174771650344084477982622428345131255088192639578823851220365585907451001229488894714399835434434080132558502725610420049124085595737381744589756157835018775679850811208502687959196711188670874742366494376088302920603648453888751000143940741753615326618267404579287389904809404163555665020456352160439542840199035664058567826985829650385153126396847110473840112612086761387666856752104729678952432351730664662131817427200066970238730842207712182044941724514101409075696030803337846975670153459519378007047192007559134948150595311287291562451506254822671329031468466229163983242601512651415274697739805453162992567190246475270957268710721475579948491443116681254879989191396657388183701767200779358067903113690254153075240985694703111548295836864713030759128726951285456035331895290690631214276924501622742647108866317029644263914870762559123618194671399542811613959345834366691996348278478075641218665498510386997936541192169508171107293015278939367002708250196161291739123772209785391162706515325512802876506135225582605763061918994905343336221008083318868120100530695533311286314009502272122392817145253253680806386110326056994434915305540450602626580989634072790324995072315923443978759027151731500031532917464607416198013974242693163146113654720929458948628670830395238127894838632384772488874510547792499777960102706018223659274388206303740982949009332145752174684154169819771538154589556339017221767638587590967981739037938833820612112897531105207418952780994727546645213340266566647087803229757964413963302226463364659705535127905048477401162999263695603265438739022389038471089648068243306663070492691124422212559947945680911506819427617215080622675022542755006407692937519555867990242345855008048899966849527366249864328499442890654488390300032979687313256161459926545431994384741962663437916037430459503158138829899593731095364052708211094157510882628482869306701550407745833825760040328276609832231861811099829104802565522367842447665144811870115071894123399096009906545536053870588485770540129584671103206790152956094856366575891146660118861615130080154507397801660294634112450711574760907655408981163014224605607860754387418067425381668155589338411217076970793379176000861675651669648949322203016580086898083983023913691990161416773301267321154514837590477683798075653978599828432491580815272130470290403663318212542055970449083743175468238125986496519277604240621156043688584579160590983891251953128541918077828462177080839185923933560790939077478462056415139880027240817190578470287895942272160886571018451347833930702601737622347974508853873607297495598997686269481979636177398156465052682644888172591680808958748426366761949620116688612379963219590226349348741282276954273021489096954670746421965245759673287750451551420266400452364095318516057809572671611314364014016824266536849200198153524614919804672753628622819875631549895265531763326904138384316566565014203209376058804766633880720934459854370232284184114790253757318308461947936186961737062845046565457596303549674745756823418342943336199277715363814829194415807063864321308774382632806129265130629451138186192405825757947376205767428967946654359411635045025042682562118883046064744326757138996967644452608628317182906712794244923971952706797743302938798615917352373499568572527997029491401466401399302630173005562999943807696560826496437768132614327574260689150983149879188938771377431218796899487190311230539467083925055870913477001797655701995598871407542267077446102172159005032186181820770264601837283422303051091346520305241217537683565276789156329027841545611709307615490442225233877382837086852810017120000841424923879501295204773443655032962544020547549428017778322544653568651136365611747394617764478219034226097371710775835956186411655642698885824066715860800229854400872221657857264394168678982523884499247299892976526077936992476928378724083689896158211226474827995940232091918587993444635053903101363282508208445969020475042294855239413393345326539991781320041517310185356425594030385370319281027938301289479371980321433846840545828342143200076624571854851735653561708178958256510320487280020515790454069594208684788309892455732609028660642822365711092486115320763503520187918943585304229476376109949078484929420636076567320525933704029462615169781067309772048409697649460123346606075671109640445841808730012348703485778308233281308859878462951751863319630826438284965714725086213440788495075109932133026828398758395930207568315942151665327504995964515040246331236808096378770224357906001964380081811869407310689165298096422959632797678645574315583105225766552881884805523803163507140927695423681155323585039754730818198842036618871754107831609400250587017599194354671019367745304883651667244218449756533537856382457882879576744394582721398399817244709495689317569369199967684655588133820367624718162384359661328851771364472370707085149312681549799611714725635906640788085411249317115636416577755861877204409395077312140463030289004209561394060479412685997297678201773564064172644011419883997138695703126804711776927078318820813769733795755322663309735477801250917421458035533163271918027276626335805004315463973470722519372139733559829178309104338539825653023606164844239354650754157673100349922004463633353347897434915809689123247526237644432132930292477109042209509559815335802368463813202107536312981914785936985952842410680343056656919424268764516738708338699022787076498276366731762896206449691506217023257277339627051510917313087141338755464925360817391841237812981661538457970619785253299422134306599268611390767331027003117531068301373577451449515730065984502186612748629732372935399900248477574743503309456629532896785898018266381617782776722230781730863690027112658148536572925965870651733622268429615124579729689151569853839591866894827419266995111645376986768680669839260774629741273651999932170539796087521748005491842304574519360599198411224887956658531787027200758172606006227342907690380796170482395440444947877720901923942499567504611505993897208611125101596503143591534151816559006459069841999151681827290020886730781468158015024989891175602185181905985987064235554701112074400383246490376541380521590596121460846436596530461199431470299094741291649131131544157120929556574308702449948542916179949618971998354438996430338412099813876205260745016464379104868963792418872347367331599577104542556668894978662373226380746471877880304948263850428814818441125071706285251487561719129623353083009513346486504671847491788923972746852654713152859623922386292518596696258233987949732190938418383778426403779445232164986982544005240055347704740958148083779080925230378629005378405522978600485051108882814963936582698298870745595633820489192602289864773729421038915551310224799214723800157274554802877978210753346126046063376480171511984826443764401756985081342163280894954361271182136411562196044252501917670908974825466738930230976311615598898732991955903106548054166489280979145491190055701542313937143177684541260884482989984368000390526609794342775615834437932470400112575965163117405242124482112534417343999914097240176342738823234154729278396528774321737177370156867803353995264386865369410783746060764537928504726639756313931835715879022236865184515150818497045067868087131309541038838823304241861252746579334995226873321730081487896230870948114998473486860572781448180703484314428110689231750510195117298429899956045135103478182570780055703609084987688868788865754253013021942583648626573897118895325259004948016880627687089392786774066155579190818917603416814337096777224400271896591160412993912992890181951409241610704249945735486882328694871232506960418043640599017826562993497217732825770199738264698761502237009862931514222069622714715570963157818183847531542612133407342651806228771589202926713988907384541268222005525589360274042016251521592379606763131351887672997704624095261136088332885619075779057381667425338605578832568573103653399265073351786043398696690095506336121583846747579845065355606448076817335548425149734824129648442657889366688990594252146481224585135017444782766536621178145829904671116701847700158835639413814409155544332261728444309919190429277432950140734184436135544620064078322518146876698491024664466064469234623322354585109565937115669929236626094061739450080744850662116487407759975567741718670752059852082053343983188554590961072669284362934456459169274056372345273674160377148937714629468053036631571279588461835528640859061717785935394092698127919432222527173168408426032869898342532072588146360406864493248714206373821283309871423020823243826357428547300868715198451068730271507040620140127017463095754681536130359121826248980757707868958325368368830193768642335963992210317049111891746072874679433550526609922065980996630169001141538287719290561014708336994297173705573223957236436905651496655587938310768689736776662053014541714991008027827100448768821427678617802082108332822020558879323684198891705891078876405652491151863875762123777623605174340448790500609896300137266647779479402405140612623006354633574553923189992036591840544509618084442052617249587188067598060224976395119560497066337961658262066086263643589164377625455788288524549771502151248817040443374197218800189191032615736143580796749510315151603658534670245214543409982973667412097868690248417253312594202743173963253805136458447580414783612670481110637951841011955355173127869364476060851811006604356684246465692613878032139376072924891917651386782714949167806453886446728626894330750897448294640722608638961043383572956245288779204390406167339678780949698589245448935085660322091850219034345771064985920789154047335759417883740632046829851735883019462674795583050103261505616927059959707023552527724589738902494244996006528764437460676876534044552579189454742292302739010261723930694280082206637185352919615408446821442376391451006848874970541617050626155220639083847258491205993175729218596407323201810412343692009239211090425705029469995856537941269230915937184159781429548386025429907544594258656376449120507158934904364799758130123285080115891898556054059314323294503440322278539106619896740429504363373821623440231744876106992631599231795263204252521362925844527621021313423724769559022258201292520375267183059825218921878383920866926773150985385326758750515335390988421169238147011283634356509272306089208001883927866339223176348277048485351223027005573272894744830327963112492915538247502534789653455020477435544005858183996042153381026525972750980824104423668540494897784973419307235887804917152711217931913899955601277132107640983940653796197502292032191784667901405320883323147727963913082657439052755607475730423738203040156085326044302299315817727998115449435564331978256237714266375893167627855207693090894075534835721722140296667763182162067121121644946648796655821276006464236228522913779565523778104339160512855405161295908505601162324506713181204385857482814722066630722513958337878002598604760252770104176481761719560724107987999721059413494990662725383199290620475882689681945820589329637294946072170711261203176413831421063202569950431276768897638582200370381717320072421686951367316945988003413218063266100005774311605289329780215157663220472201185634925890690076979939840688514592629558198497338104150539591114426848312650198075501344974851493948279122044530725132013889123095049585231307398208686942953764887617046412269100246430360461961736675391376035746286489713089260612706975599906176440635330795555055379841196505090494636558275429911497497853983016529258811534849397899728468447586758716713239148354753673997848382312713631765959575918694589228637880431565085233874506153643196001398466072211023791875069501396113366614063733759892019926404125730792371706813553482181613661414857655355200323196620323767623801957362825369815669168951659813818131878539817893926709510094451530748492740461967139833251574377735466878703210986214389085605918777508401618539982212605875912032177054831007402612209213813186101931204540566958235614963167822687467488833120274433395127042899096185535354845375412857667384048463179727914961600843914136002196469729717396203523465454512032866850781134972139842968258042584266971547231201765995501861414418437067408132020431650760040914913337322328142516034831193232585277993708529936279384144145854375082127544766058175691809266219927132540516554232217951439073721404947127856652238122598139465415745925424696927709201981790282425511251095248359989133747602194483603527744449335775336208105942438981331478900178511203831689272727730205249918934434526675828622708320366017640844537169979762162387446958192369695541619944384278194070257394151636227173796468882787474267707092996739008139325763320678456544954470698204567709180417700008480306786968143274029700093591101794272239408188691738874378691341103271094574890353057486397054720361718946042526582377554267735436462620483231061541662162798514618001814098379262603117227933356107402477871994756132288423718723837252734252671497761847415225567682938263779255393831200953648398482195712403166683267502172962535557268470482817504456126819741554231495439212241094553697958893468520710590731940249958232525423679663392929530818699347582135588074346520900360266658296927266898096930710588769145946191393297905157929618599462488524297691951455607832510516900511828872979566991887314411129327135968419740007563745856794150365019615197112344463238085634016665582222800613663904938240999860383195925838177763587090756052844348596322029176008717543047634344406329161619348560159118488115813026080035059574590177725819648774818905637504125220387860952000081515596005318601799259314718478109144785260127475915962869538010499672461045153227647101561377761738108817620878228931707404230014139198195850268036716364441044763113074687021222729001651443919493614789395349306494596119710239650337484327987877004718492313911349957688995140349859768512144274241456211612665511065544200531555977574814372166120192475436275009378806489781214912261348631852336944286815295921236189953888138497069450286486529060906678419357769194366141480767503632922968149501921369932266076573990504894101427583543588644311701062468826744939853465336509483415050297385120781045838115944597990830361400728134791555181428609077038757731462282611947154504067654386433451583061948567019342650312458370193410872747004932174861310201847720132284652502154909524086598335548990179986464993268408866903908310120126746385644313668018989992027427460432235979671775552105226178150105750525496087713235473223747707996236167226996684361466047398373293944962523625281636767601199689975762109734036721643734550172128267021735503041273640624453466796475543404643811309052895100492928512116974209357125577070074441316991404798425317642914890707635383755138948729558527525553482695956732874821987276601560432257431809964548546956075590002335761889901700722780303112016932616370508618508279318958402025738288461519787459869324972217469447571102444466612178801611809764808859692836033635971689510712943203607311458055007533803828070691444646036864478229101563693847492857260995133489347380953624359710430346421980972139347697438135401402991616119972991405794668606619126597207831839591196409432528207935151792235789696648334876416791866887207886379879436182104690964887788281415755607213797705642213435450495742116649119054096603549396332644112743944773354512830874483729887421424083657454566524698425446847668366209323516637693199088229894827630163032624836735988371569145931421418950609647929345830021355865903680913922111206085291656502312082650453065617879921937446242515356303543383251880747315671584204207458604163626394784917830202442699972361790803028000990601530995030149362776946022097555085320215818258162794174030951350592913515336927590140566207011358014460254755686426029990885777659352319322470837515415161672563411960490352471591375191430350030329184267338172826774364160274871603506481004705723039714562477120048512171187343938177589564019444773088227318750016263849600936687183245383456323029036188122536793454263810107226165109298349938835365332243060561786865544094098928904777756074082719093614998481683885046646667560814479992186976900595825380588565533994557991406558507288303477238539002427727314725880264914614854984736423485852012027611493405416079181129637870079967159161836924572232029616635851200324848684187360352676412489463721953382304359340589509895673271322473656858375958507416522663942829789763832929324619822287871001813037962933271495486886812026849621855045484729673280242871282145253344673835272479590557154262355312344933312439743686888820527852519226921518824782836971075456148454231231796281248020779011465374012200510887935090851083968832100524933327741470448489676577076368928336803125894746212096598309733315836152535305232969749542217974207902745909787564953240300061222359862782067099446325701365529865398925389420118429676799311250810289599550565148489927801562259661522184996029166168922635853797771710963248869872588151853340444804994579490329717414761389794220479921356746134190479648466330955340662693941926598311780162041343003826004210057532423331618710775238690624968308044469435327246212366574225505301768650443180533407396746969963123979310185761208634043651202208312475220819985600064803603750531006730213223035369506818155675634307698752574820535758108878769678038939877874004745790867029900695369870116923554381087237879752999771992396123477099460784091246222698068124387636665287234036221587302141399753349309732297110019588244329553929587122620407336472522846439586958963473998938105208183304873791873562393902942881091784050254618564344787361493052355823132644998436661615414559951069885816194537884898927455338086603367357673442910401738183343912797519739439072965078577889301582845374227049384203450136753931906892301596848798412660243737489920127433236465626336951798458751933008308854837778237209571920202555760295456001207386280208195194870914248727134339487696061668846321295965503982070529960992219256605940719281494695965057749912758990261474560495899686389034693513062039097182370827935461570354933125978090648357739043701303704969753227556973960765225920233333032057404246753467788231871021655343365503517206628329128868212574252415510828455238372391752443038807806507440549827986985292757928208913627745338752001351016260205807601000886005213203622778196772328086696531858320379078090275819912745095459946443518256041089492353943291319663695972529854634897086623501830054918780186499543470540054588674982035290451730303697785860970922011721954599666178717141772017464598272365838471240317252907754493978155164639765513284740977745986373535404936244710442129200645657046619096560213360821891305509416144683273089907263751594285388495774720779147400750429091279702096157208759936015718664822455490332420277765899249647350250319780261743587413207618468376191584441803837849008300844628123036903898870154388084686437886471737772696263484541465963400048839403866838966463993953312433366467956278461207152528437873444516389547988553487826117190680407251614877041858880050458699022200851985441212914921255632399306355468989930279457412359416360807393094335777518723137412534217262637150961759642844349076052950672650659943808944084723334540309249279615195663552033720794840103345051528142226834807767094423004905115113412612798383307151775544659988813179793728767412297190871264815645863219960786549529990369129127026639462769640381178593383510343623819038760938562146891407275200942061505635084984299420960774527079504473911067489734689240235896452582085785986205484487953481249415512843575366385966220095217241430867300476188693325827769769741098748724409102209050093208663882804018686553635170392747170423068683630095365798212431078387535269556724273570539897577357207222951173604778595072378570599259356270164989204849559374806431327987742359558820022363966494216628288329127923663261276724055489606321233404370831019372603129956643158605612262208971131829601975045129564468035127670168419637013517671492506285938230657030322190903420906309855225604120393804727249928455628037067994840155296842779880803965471861550480584194562574992424508194099543073847092746020491431414105129747539062323522382948676764328670945073785951573823767037024056950434498235574421252347052039184029092907648031355018663983423735202033868033313831122008869884078158542817559724274548390285996271641176450535512879423266117354530072566442265921229207595410697665703464583116051167798715308737151758587947711839715558546156208963838011129727312920473623827635129259505342542856459946150515383044502633741859615105097070957802570980506586269267984036466910373382604610376558861492111114356283946160235530878921755588057590192575710459620524816433151481831047190700449013240670900938669522322246837344455774126346374173815319530357229901575686028869557119065266295609752174971929619800048653294454934985602142271410735967986703741215261546634695804991962333452132711867121931308754252684771995083341880181713103352098245321478038486841750362597839237073990686029730264679682627979122149923344279677283659917418959053990750128548333101520119016460680598415164237369896973613932251231131430082486808278383801303700862914773191806669265519287144472691522580792833116982847411850985580989932403751540283120596491718186311456117028403663623950798285056886259268766929793764732880616756766201265048515579069245857706958383743376528317507347915134200359201824647872035347004366915529176559838200165108682219614491399174667910807306897164441714226229788129870874160406313824828000483053341353968798144922209598423549108728292330294603426700242642798304330029079781364273553450470597639280180523720151414215666294667596212105715654227025626429157058322033457002863193101679796857401761019505348471653053383430359718520247322394623378140175220508794221101796959945323989489068416958009103504498258386380945547183235980543397124819592487410085791754493952323997300641437292995291719126450064941608922650811922218475443435081632218592015991510571289471241145867048506402191147151259157224318283127649842396636814988889695325398874972281744790497329744504303139187765688132555518971551503898041580739506020668733123400836505777629075534174226125673061020283114115769051919753159098275920348791431160430919881740066631452029512105451687450585489531485581547578995898565685199597736509495349649701139718335000020367713196506892943166810019710464655724074544500357327649120336904257802220939499825269764763848782418112190839366018169962634193652707407705504853674203135225627661899294287533918348227358041624802237593854073908930007072383004165588486942467683474977186122409982452534809169374819705615228737624462887020217888807530086752214030888956144621934491761432149304981509061183157981365146514810027968966136813556376837084228210137649740603888056480482024427601317204275916505072370519012032471814621349423388879442769172156492651491987536716137165106199797671539457395447417310116352030720454943951019689301109739507302813345729380625800022430602865018307280568591897849941928372587661390010657752882003400538740594476053158801662624008452153183965827361857600636958279594051751790625944633674472586523314733392822577075221365623717667099434332683783708243162271558360326825462787686604249476512222952421836056387599195202144561015198812300383806904106950077654506604507937405583583474501011638401991619004037724698844742589281365516458079245653980299664495850690147362406964305798841974058901406407296287113422205784214809539633793174312112307741919649867119756079767804122814570398890688093865479593710857097991518520091910995856265127893612193666150403026951676820178367480993969882369576175737293623486780587502470493111108168402878583122100811286846672218134144481071340525672971502322624829902176799938681895065057354073897008902436412883024681645264023413408216697860261212498004462475838707722439185906629568694734896140731784577045644127250919763418520377281191042000941921340158076802738721468061047128651436446065560778717486914959808497366599918885450952112059927403943289624414193502561777827271504273638520763730294927708583417653700974674520220962990698340364519435321598271948887702819598062206993085012513831180107871575083546956013134168237609802585180577398639090326411617441989143140018869502762515660757369217362016173243677390768013304354922972647636936310440117354119331662326493709570476132239705023343337895222761810768832687555599455525673209248707127347873893958850184465726709053837228941662655929410830062443440817872177745241559819922922444983564263637035603675354784821191065717146638548781291965991240975633129099682127253844799087888417513283897615233366051651071866156079770720028895806407886928349854281505562282848846274975143047625178492451664746924851606097975205454433359283771076099672252371590782533527872404530219390264081213331314238495230702058662666424527203942875862022398893837729046794445191936486124931270705360820890945446910993734272483618693023638039485991261240514764329786752440539080681808350195074133703666586088794121567436004500680299572068480523402160261383231995230928119481025193442254294316504399445958852113460375908146000905572287317569062563061048888837944796731481152061877383687971842227818756581809377235561943351570405024665570849814317600746298610043762654598822667101424568092160823604655634620892468934376889723817944151357759175353252168860497388157937838414972396739483150742260834850930601303201045938420775883550164045519608460847109179899363322388766883295052455585360027827373827819309882780770030516932889127539459562810135958159568925677762496558611463524995257735900703981082133227321989448650931251477011783250138351959228692500393479837009314003084886541125717189286879741425145220500318050122527867837432282914658188596735785601492527055642842871082129622494646261995194020473831254038887080617577996825946710323404375140810295919125731110843405605492480528024791424540520646977652438720006260236073985450873734579135424954620012404630269537989642298895398281033687748428687380697026230808881972406712692247524296656755988929586557114632886239338601809014979219927802161879248734361210659811500232279808235342982981169024322263686331923173325213133688696487575092711562984755887963010038951936197178443341514002833855332307706044425463186514938892591228112956011883265581331658092473072130631188471387749370757402616256193951405992410423475506377095213800253816979865774723330821930163192736589086447861655820471602638749122822259993844244809217745719329405295936013989939243617692972448604993635255587936778000555920828553652772710370199857557006648418333365744489973997102810673097864438869409152844570085976388170563084242106248697295514618647358471058300717065675138921193895564469535988917788751318333625513037901800108749746237070295030679807032169405434061433103269541685647283373875307723876593077485310998970030855428477842427635506731614200566940974169759136482224078865500280092652481658393431928688324415954039950906523741395848378750800324867812052195568899606627750207551955368260957825820589897234363327408778831497805680571561270774969456487368051823087330403476561431156195725760296999784826209890646553467195112158662248613382591880115004234955684961052690074107508233102869788855773513844124398984418508412984034335962685440629685446104441155440452173082552933785151086089611160309315157883448048004289341659027186764389870496715212178751922512628257786217604322371244376614649042299578890197529233080478938701241605585982919804697676923415141419400577250624116385695160505301001965304166637790521177942127691662097213204751851268316816163418976658157102950168438731549202575477561216608297448854203603665601783952483816233394757675497947631114964941296922634340796954898243835994328629244587091828908866229142793959511304217950425245295462762947271158850619953569446144316221923044105378377467683004161739577587015732704350529642466930756895602863678657596528229491523650620289086924334656268205645956038218748746827969316807289863773925340395521547312827294284429287314104668147830968128835269689765520927956558896711028037872141188417223206102243249608028652097122756711325585013871972107593028865082619165566501502553662370177068427751724769759297837382600984864289994532865780165273052113898932522609063601267599415063495140475176927929432689972573307092699662885444718215578415352039070547796794652639672015039800261007183394484377431581663436411084359822011430174139684999931271868092657088917362257061224311861108270365181910064107965926448674979012358642168641017065582119642396184667770463492168801025292128086793200388155733959100695921707305422015110429556992515404904695766603647613812758922341392594863363918825140371650904041134544327094155657328888295036255595197844536068877246322865000566435062651370940157040013831468207134102656810075718720610995721711399567595741844958061532536627238182312452583424256796788350717685061975002316442553096649389079961700766446175218822490798127336368357438088120533260544487719045122414351373347410018113501468645789967848218536279650074808939897737354838299520392289349228626700899807910959112893597500659513701493702207721787317902247452357273792264661957344183361609357187587520354558045713132133315723456173606570283337152686792242078289843127778709094956298637625480891716566992464608894421829295040718431689090785192895248339254069740975317711206932173161228028307748554254760813470657601652394325891563867304845704292085751281148581155161816690290434386359633109158992647024444341506208533478696978157079843674220430565694144904919618191539482378464399678655236949075380437595873245347772181469837106102354718215342659091608811302361573927344380406370037018105860461784690997245069484023816548073854163155177443382814595891576255162649216275573829976563426238571675902232759099912603143660492276487413589843595951127689178797106556550233262959869934876565264903859959627696553694850886717115523203792586993496942317484850469115108134417859281551448069427191294111993112493050199728392068185056098261129562015332277928893769808538148573531582804325867406764819016669147445940887280980556763492760589186713511447863134727545920714153837472254644301898092117289027679744273207894720716320066312367677404332289105690108273251420604886668056760056165207946488965910571469389157667100733321446587387125166595280000118245791427757087740722460739539121304149193622309123381625752239875213482993584249955153243527029458508510566885191456312450665759478816125070469958912987605092971997156550034891577734274870488425706146279038096105720879042364379083090161580192309219883461870674225169318696190508022986130171554286676756419793034331404724827855524662788131956797816658865607086896833615652414131584062027404363644118637030379651824722537030507759543801368398226519664408611728734983501664590618945388654838459897269818915894145595268146036362328969905807900751716972756611980437239809504149117419578272771515229934930343301953623005736819879475393755530299095674945374724269867883805998139837057980189573206560682412175055006641341896818702872599517668458194854796147260400495481160201410367244926995377934788840905357960774229937174799974572344391964150751977608076902803959888117545560765001334272373118911118816094261700327668198025370597836387650477384349931825719259635579635147758563407573221130933171941552967882923846852418771345052433998520516252101274090871558408653493031811786832802747696471152943759397587178446734945636280275025891487569408967927810168944897801440946839847959987028706212953759683438451401036337864755234692590406637764138507651584784566901956284887051382172020803496338576221806694051542107580189642283731179871089316163271250211730330342534723911045772127477249885301390655206284139875505086144007355211141226208234889197731270852014965905753480300754089873078266699682055526816292805960669546260995503716529529173716780583653516207685923626574988191509757638773462361476041791211546741760792878527001911168876840816719524648362016755503138156823702196482760094980274317275909966109721291530988091250074018430688876241656443423398798317413913289409654088783167118630540680190890852345400036501976404163908575136220261395816666729118273631897175497384708396062294896526925420004731650282703697470153310469032912341009966682761787994151481104957644223976308012429432598724202578935582057821106230639495207564589624032306307577098606950446058146883705067177144020768381770211946144796966516688294971908361657471394531869293371566753968183301714867338786305676681522734127647064198535959995555698107825337412236147381054345884078769212924933329551046371450628589590375953555169245413801958673367172681880862170847399760594815435538160111842036630036187296709931241700535052573868984326196880267876224544942204639326840375741932650574455605875033984994763301441523401341268197502158227341186303352387178936064636341299985391862594188051644616666560381049752853874087146551020848222497800227215713182655301113301196160514067831546454731897092691508484694205438007664520161730368551673711126462525129430912686884304988167541013625201105804332375866843986077878664523813381320250913487707682875571857517346647732014039546887433860443256225935047368232133362240574473125829913485522796148390552196959382693867967519836107328075045855065626217437916836948424948724758659923241348166118307547134188531878791322189133215427258776261781033569096844517453837737872232176751023032711752159801716517161115194694100479985867912113593410208371309926109143574318706936177482416038916627586185388934666857842791086900243294342955991951798776068199731483680837875491227715959322114231892335301089686476999062123695568470336453380068805164967588049327246658598895376727944022377936842311165394272528021264734008789561251045461711613415440508945281734712842264885159994738452570171961462017197018300740490056624115204008834234063291920586032216174200010898130985604313397983067566195344284339665575427288529248417546921867245044539634415388303887056292730284721536528726358706315330665400413996814776239532013859669636180191734109722160930203040172817702578496133310693480413472225033821949407435800442197514807433833322160640279200986766433451277798869064531627818881851613246763936447999715402532175216056309218947354739803733643557035280045072898121801328492836702826728766693618978857601441412906672896019544759350663749818909617819473805447876530256315533231604316327365376054473578903547293433518667561161185199814258203763544229862790899872151641877709187049506082054600217177504694622729982113562264758270944553802182601918389720985424853920991578862586067346213869431411520814521741491575533618699293781956077908735087743528623886396843459281623595373205114662383391188767540720592667088117261287591065091638944794610676895937722420895361402745944660790414419709513048398256486563733143365913302154723165045588873972832419119299884182724383071221169907148493747614523964001427168539667520625786017606617516134044102989829638205468761892327747293615054628738046249397878850897494163081942014167153748510139327027684829240788799909727973014354145659606805248809224665437668294427563394784833991336347100660422995187033491216985867153396575991117894058967567435844825393881136073390147723394743613807694084568436489748751493185692257855772456584209323716677880286352113289755194556073656355257584646520677650763491021004566719176112151316172400930980643949309400780585913438004621083832841216445383837675906145492508276811748133876212780620117987787890692623416010426308057357587289733051138556682883334904388804751696263544678552089310786174172773173735140139939828619728098043971743662777609117699992739784734434581152716530567769381145302548700789788786196865051641189247209046920419996722255244490394489941400148425744756853524197476651050887877279915696088070434751825813121380151547791422958655787939647827970475173714289041823066582242163920204978638472184153548768591189348599115946539782248457157347282742313613193874275335897717048407442980908784212625449934995051821245768105372072172392918552593363510370553699110935637302750858466498416460929332743471738531257196965925037195669780361380576288680191792455265711905386379115786981470946188467459580243114799150653804228394786339839578639104210805277906671978973381805033694314124688627593172285733472172470317224495793851440019575573375040097992584693502143189731431924318741199443664003461782212373014424679631074277443238049375790148675958880297119103356517457139970700392595286694389813925981877908859849400968240466972003944573170963908986552166857885420478916513131937596737882612193056287886170478758602910837045706325400203736451788144555951466495538962166436489132357370342234581706347317352578513239650171080261285716172715220333622233122424830855675854411959658995194887703086726513123133605853334549657282861512320097437356758855261637400874769899381943994600835918276674332583686000948659137870427700998551264584740335481190249902853507746856377815932684104871032722551366851028124341791033439825761535021112715219967008060933388257808634531331253228504803492719454396852012147412226936630593357777544367901062354728263999382747104059279587428059252092296325908908592262862965403355876372392516922825335136563701196078883075368591090962199679056431387195918838736354373738123531965532522186877334361399235403226842702923621742558183762945444819146074541539504726012047263875997472934720361702701752693138845140849675285288875893070361514880835096804782262564299226095415561935566315587257396294632986667691778276061218637096282369565535148529263117680264248228509282470941080294398813024982988606596819306654735141889009487513656775820932918631717842149124492413654499548928165873920665322551470085342151756802709860855195577326748414501725875917563560474740333536867475194964890989217857696416621268343695566539617386653826990097218660339404118119375572202783127615132204534649451957564917449600112108485217361143969240906776603073781029198031621188193625869019968243860168988616976488858101477915924800748134525508415869713445616049275124721624422355149523907980512207188337959273472676356196692419617837465852562530301491631639267640861906503162295491571800706486879263375851177458867913436292837948072673439874404331145247572390705239733608466003388811102074287767127356618639140368977181834714974777564818323415930763835797788313326136582751880193675205931086223390193881359419747047985997743533917182310834181899504169930910570239558499869463434774326676666752489865588531630419253506566993344837420747352720481105608433982546697030919707575344875840671827538457033717069122579537179784733430657621680001170654944931476201321892650317493331958860998111979929457586307806810370008424501597276932711195927700407706555776598392265952821150268086647610447222302531808243966345059171959803148878467252361486066305322427523957364785612035011676632661588870873482085532397911147246387209327651600858010898432540779538598662166082999308416943785994271631117655134392888823587608919790463258208238259067016243295498458607411724940368160571191436707039665645884782452258358280720507326088916163582392958815813996232638789352256203095863028102888073849552070497170480202265268556956372110999486069570807689301994976250170194959932611684279840028975590585670082195302920963035330049795854527992587929987124699109150913468377199626483558459865907284991357110278138742283339082592523205526419529793551044024919615361584178206182697698303866224046093611473594312064701361316430478383893570810980445617923939911817212249818753137604906880239671099727507612839619676970360030134698673969176531588743140816082749267937323419451235888272864495532497112926842408046639928346753366331001851960781933404853633449658139624756858488821694401890029399729975396633194645133439001135751946318008111181409832597533204673550412210264181723403398970093016664119959626841137333714753921992374273816331788303236003490906790352771881686164723395227378738490488766204756417367630034130627965692059713649632151894333485992309381659446820162690480854571233157937023400312253374260209350332135278819701380973465250335178901351757632707671326957552412594510661628172283057521156686378628663968177665182846674707515653466727387325669829890177471648474897740322126546507586827149963482329623272421690038983028010505709097268502096150385158157370611171321288601356867661223322614486664513255397507897941877194294168739828922538532324599143243953595114953467634959535328589810544908827298214536979854544834473628975521505341107136681353220864210453910836389826836521087517371085177546232865744589856956584558789156867199782925658579600028926065710615362897857832506650709686652246451269028209519871757827065700435078042359004742405165211622294614718891591291947004834595766853251994912770150494288267306411043208169365487893444115040306096364764710873427398569061608549544768606819127330119094096684527956364064186202854540813139660106362034090874525608331477030481185002494123225658827748924362867573302587635237701785879630841100391176154699475092063428503010163888589576987069921428340498682930141962824854883321786486611234751690266342189882509286437642620825580040807537939572178030122076297930936715428775014630697841951642424787935558551883066522381640394530036038496458914325338882573695742456323235001699654689980373371555411077598891663449621012760492382139015096319344573501358093816397239862569016804597619095482198987244555414130135292690356232565178531833884384137147565679473190712891395379530821235644295267805761869168245430289295334430384273886177600113016722781837162830582698389011229215081965849739046359841294621990230133328371783137617688329976454647347999970431298182462186668856527566242945020159461987935630697603015026073679272907733981394193848580396805189156252369570828120892621078571251631511648291113951599414450670807757736797070905355816763951471496921252367754246242733032964654744026540391294376653967468112629582889576363216089271614384454675326708391300156483791336835391566225115914830092310079822809351057191438514641506900275121921575845880898877664702474134798241795224569649732714690432861551683232834930367988068478146147586798083706781754586564955441795782125293697163444526576523281967534759068001375134418875309185595286669850387120104698705539095793703520424206668051352933725948167765934685071675529760593575256645420964333960259485005286953352225881725283604905411370538211309412174509668107847214738161903280981831013520802475559481340419213192324177119619561462722694681014572603028043479381288247484159661987583295035028740791605558895378651073767864967938102358181452220993913057791298684845355959825604034692686601316077761450071567962516821516591848815389747661091107778833326861218673761092177911395314828354966168887378272250405502917897037671349562688446984727303547228930115301407944419299765275494678246510878565868674463815186376194274309955196973519185911246518798449948867970657165363060690036703520619737039543912314914044602721166592428455234822641274269809940820400162895117263917565991524611305627910356972882072121882840395868441323712044248213196148246711215870819699951590921752260610403382772149138989151190125093831662117483043516394645456053822914817283275301906707858307693900062846122708988472498721227571401967010075810625203924683967197124157830955574095383362178180730836872303487081904013517106828920255002625345458762506641359667896202828616780653030922085046195401452523734579851628215714370739547169778218257880665170809341493422659504550947510665818147105136790499474996170714908247225759691630587037657465032738825884560156896527572779085110116709999020894169961163386444504895287171467286619980455410839650121737207226011528660542948334640451692956939163389183717850801832901955716747331641396495606492179347101347668999767786518413419894929089904769728300031639529767060887565517345448617961228299050700361381612812166627641015740478359361797294072640587093798546908140501528865837112953711486428930596095276391823022126848270282624781000878453036886068467315099378113135607180243709254328421585977450156869702258369924887823590486423788679715269246173168223543291457420523180380249941469635317074667288916068842994371893816784359805630343348857758289653444914369900915672906410466556758915239634450975360396490586033785676151891122653448751225946171022968730244675889141224307446684645727782042917367835425889486666566384418744475022276700626872060237645116011676926834665649343672688537178186385197634141882620412311756138836042241407573068255322209902562989615167769455422398297704961885411671456094003924099746323581153589179098784409360741077931798380954849082455240683799980638701918539718713905753771582771128895901225810612654724772169481634800087961974613975890615866319280476090335656523929562725569055009551035706078571312060850903615567348064677173316622868905507518191395698569521851834992954156625230334836658809495399072003088649678375433623607933873092875195054617471809099830282125515264422013144604065661127746618986712351530417446868385660416933519324453344310158454888228808234010825691068634337424217007040546835511261579104936005439306338178707977564211236295353371271152263714842843194603278856010094989369067899376775256465383531560648568629071815773487419827718102947959274453699474040969603615034284409637811164301492050351077499708681751048674143637613083380152464949249533955357775027446560579819230513932939046811323965521531022389769541942857191695922206552200752431767257759987410178809480798471530389817063848137128150143575290168702418916351047995220265488803725829457481546280517682735827919138424435879569725910558266791086845781171304413118414631934145255148761894403045288658122027577615922421629407466322003931023480962665513626897436661951027305954762232377758815859585345292723934011107985825168034470780968025802877586211965343252281657530688178010700751010530709486086722819373040833120344674437995377067587721151590194928573406443442501045909289450306133275586696770345803456801137374045603317378850980941913012338002413516320029384833102844876629536817918853770558390271949635599824353702400145985621577771752469481246391989168490049673790023640308820386100460855250228044935813800250530645487030985393356499323773241502219466203223001645964188166725507700986915427230258251190999282620369512781066996762515163828414184239210552726034285050078021320295512315269278306852857012809439253694807181160208771195085496267705897640079755676302230329257604439409739821492495690027138588051124318967147277523587712450782613815137890487048868924256457705431354817560006967373381693492083100756014158459743237110036000344670803563458751610044289672312865254070302605574583556822914140433023589404785843670121340503017937274888683327218910556929199305097764055948199256749692796779187390588318624604523671410228581043218218590407799050578831221574346710441942900345922845823673366829632261954801273229093025711482497319079841788036350288722995556115613955073960848910524014820352093795184045111310287187935530241462745437817312837065160676526639554631020561544933254763384138518280715739326473450645439533585539554753844025883537073889584162963079706962392599485702128344544708606837421262756685018930756904322682105720872017184612755411756548320631649925539369942479364080773428834964159500892498904196679498228120933927441857895630994739374774022827015926645752911891503959843606249140401359744276771061175532030709587157401217745505976907380653465280995963392862952901841726339536851065609045659511302366059056656728269404672670118936101170595750995967723330699679820703984196743937849873336481775234810865256377683448217990479011699772317017392723140131036110659198860689639558376429212545192567308041523644397164066599757061755989681733416295801316396403118591097536658217191134640674611335244474971780667540803285474886384466738439323737464984646181311179478201155481397791121535248720714580358137901685735627024002319339188641862653749342696516338932228314053983757003243725607788045868118886260197205036532167112767751676594344436398225682054687799610759632796668487856899987459705851465056357409175924867884423845158062643604072966563536032154706070269271152191367475149351477336598874819577580523747866676559228411175430210727937286066051030282366925775040226041309484035813368612923005598769104572482046103088893677278688140188111283799458321296284996232540889350949214133283455638471284528139307334695489812548087973743686053712322965594468858258434780741137140135992530118413383121112102356731930461835029861725427688912855955846071344183848618499948502694094772915304037423145563323974845981617376817503992637764902341868405108814316113260048850823262824626157396142392047610363801352475792494435939799328915044190068053169566546835883138787622869344032986068311009044820372068321142040119383059485225840481797506402127983779901645490441065471446150318335738377277731709379189839475066658268112451937010868898422448639131323975841228680657956283855744085751867294960832486135550281820014714604299661417777016599313253457511102234594710389961283152059207689781983859156057490106886022336101725311155337190576178842681574136692592691338126728657435215725348466974821803097663007418101687722676738308424454519367932151884876941279514414572100263182317044534543737637460880516719145000416331802165455310721928329646117698853132089545133648873647530232819407707930765904510570758701309199228424043908331054582977487707042743803941346254780404160432808135096840160164372845891545916445358720227208009923162747402362608526308489113871193539020372610053240773501424641631836470859062328246593801334682931669289769951158939195563701276698261123900452609361187785456579176784614918325054664139185879453550012868565068653995185948611196555863300779599147008995910827769774421552902904846052958478561773662834661292247766766528323029485020903220324101436457342863536913253185267633564806201787205995911441816006374177171820393167973333845748900801223717344867909523958706333685708964833416767098898939972553392664089774436349879572186801548669908467242812512782429223591735727292407246919495450367328817940028273416050931490456083178928395523766131550974650822507313209730383351656979187075721851170953825902054440503529136456092981491299767321382429362467733648798433597344383892762846709794606950914594968647659598391127684004486942075941973844373214565999882879939972743363574282829474600938036602645208556835950789032545420101817820517903177842335339320818255787374987385093464606540993816384126339953507613019050816356391279834747422508685934357544129991897046606043183046025200595614836214435861460792965342841842456481960313124402910577460808307292218823943091902486615814521325602925296533450561977831984122066927166024919236477350114554192098752728094410435492495807285914407920075581928351459895361184944572641092973795412902546168711574280409646100732919996145020830806819746697660209675614622927875989660630467440102528306633164761743232699137420991819460901543462451590960915142008108152322956501231607868941382612681708096084037598833571903565951970515010432838884650457872521545893789542453248141980524765665519260268252876633351013090744166538691434695006942411298504659514010889275518192645280538393404672626803767597143212839756974019606028297216903758811937648491285504221731718460306916388291874133305586145301389295533863939505145294823561775071915967374862390267240847391359146379236233890087371507162589925393651988178732794230141142218436570524788448740674494051900462149023600086143476246192125950421505122289490256456400276135433215702579059738302541625386603969303596114367736677560614118274949517992229236984631317665566629541959286370692920047046477946136922238292894625190644753923366667250768350900375702956598008013284857352146078395809254322015621607760540483774670181353463579566557785697300216316855256589970515216109398144546159949040373609245029000955364663406725044392822900042484092164680560650907505816928419895533990561643588498295514618836073351559337366580267510932618707719152204611225800789999795853726278585463394591835093415369184531802967947404124504682551802669758535230253420760575483959163125968951578957252542313756316948272381594586033198868636384292067780542782268362462976402727214477344838598987417917988326383096329387664412715169462371878055469046282879541962413642002504749853624614854372912876087167245605860245449379496933291845002380572700138697854572005111357259645607938140729161281636303270949707400704855714539270931227080130448570224668432989970228900628260352073385724924811865147417973724008687290855204886136500379473317967850342554350736209386609546825451589966701178874633680423745882441708890782714520501936129930461283942874096596424534892041832638475040680062740034800976234608788209004769483816265125314910927356550265998687260026206906955002811813203821620529413499227924175888625562563022820200037097989579384205327792174216396968099368837276134909039020245367938690967927872443734335500589744052855820582435488478850223308920207007622379319455446665090357745012917153121939847927522977973605487086753250316221681973030535583317593493558820318799383755223459516256466398134971072458795696387929552674499265660177148591540718365806711076668754431759700664759836024744345666157363416704875461016458812586939925412529414667878551260467302225859716462144689656312595963273196052269799258205910854423362499867500687500024929696039680034485804757579380529191230468294591774967388985378175895411213594788597366823805158070736573077640011724548956475338288369049233627535322715689681513302770184707310523702966992673818312845370477059236231584944066574034117102131248082461020170442342297912594159143610623131227230732143397007247110583860776546192868414321864313873142658851431865531997420889528533992054304635910773782083303086688458915743147982087281674551229722483944868082320773524814184484819283404239990068381390158929360045780456408097742263881502631314808670272470982435778304139953050772088742305587343864124927805823890914404840259522859943711628031248879342246793503761699119553810020361028467082126227299060637243328237801635985510257727287848903187306861585970115555018150269836383083696549982918119117953566152801159056635613267815642517223971443924989083034203807108425163460746807334841785897852960773930963528547168151504156427166401247872809939502370948622556130262433366288243819442444747606565181961083629116223739769542069110170568770739231389747677903115161000323453266912265516910212626459141765540372233772561396358158848432409055170114955039810098284584330525465920678592958968878303682680864016756485013304540320202970979331443792034693216090989222353076687267592228850326189447824105176200530537946570635818027940701286314329018222320853192126323271430163516953587741137495725206104315601636888541327537845392260926492558367461209817469066431805224045870063863468010276792869879060613143031792510076479315910497858315854649027584774163722403047783068884305239638948455168544996101316587708848457107188020088383702545637907221122099287983933157027044036773736050831333594765226185153893181864232987627417263217019321778334865145609397805808748080590991310961945945384172953253234852144090578697498518600071339092641287332494143395747708576408722635129890449546272647199868983935057895922471786606980994019083066334427805709484346287429140424632703185430200573874136854003362845210688694162471907365589932321361580437368279933223732169879144263916869710516593130806212493554125884389675586089208456688230380021741786375059594012071251935685024398622082644893592913490724780399807016001583014576710874546854328798738241433141496921398852711350051404463416988685673115029756138729372803131682908915105776382626961473610779078206079808828250306653212170672837423666467691696657595883371421727602174617658464613164098240248528030830587219286955257060331663127509641610871173659370691894722659778400122678314878680634111413482025435144878273488537490470244397865376746733936597866083784480617441306373682270395172661116342259235671769928149171177829089568039854675210212026699804090466030255739900294155704315348316880797126535824230905913613897610180099318148833499213327536945879242390558170945154542443968423836432014504226477350185873869299707703722372984614806439252256778413582964124760180475885502447344258697023146093889808068888002009716188200341888798836332962931530501325314405774692511780758570552693587188100135419037628182373458356075958889123803550847292291630581245989079733724712953013675691510514407912899983217740765881817814044388520450644731351683343498363874751512793783703162870761489067316529810151410472796653619005771024748392323360599877676865918884202553954516042603328489236740490605911083103545402097861118415066637822590517166827142096193468547484255990811061771048739436924860641002326361783097234194833372104340067534443557013384208769955461897035145354615207018892216946926833916266569185837670068170426727000887257331681857512827705585349471883206331381768223610888916714714370429335094521759755691990281032003815888950933806217947161151978694721174908845195574259772707565121241259901373129217917172668957611330554605281854390958606122485075125133035517658477943983497487638619222977760304511084791391032066599391330475043087322556486104905935967523286456163553196853923897302521336019749207868390226085815112974390238180951631235228424049364326657152177125068450981991253778488779843945882516959696419027338034114922435734798270371953425501235376171156984727815993330516963085966927453180975413499920091865889790814734289795989672932710727367003388976738781289327126498170387819998747318832106424294439114428031405317837177735043445344190490064617542186722023207103044843806218503386122983320843441282054742241379173694816227238621383955727031503931541803513041268296014421283606945880496276062263875206273497999342315749451298937721968588246062418033105652275437214503950592798358411565558188938422422158132173280999392685215788643531433961807336831367082771414121667025132124178224013458255789133242252924651891340292100532969860675503469740422055825356164653455803106082896873148846594791391988377595291250928539184266526711895564173134798105750310770006225890826617306024670908426796239216407075075036843632453359360216465974540652713561706917824494955191034780336824953791893938852621343122105887379680668595133203767745997710225563531378488009124376282211111907864393907730726205269902977258785799036002320245649434046636018778298039909683749484325614704338536222540679213807608160389680575051552239567005001261718905695083361235085420593763759781244750512543640261253806246071239294852655853889774713138955782205631335227544268931755479885205759960050354134282575525924884718011385471087363674616304486716639656531824263234908212525219366993028486266195996925022335091318403854619574973346343162368820849529335255396856131623871885249491960802136591347965700531342928261617447438246910135021491636473662635508949675686081408544029046468000020000312767677977010366342326816793085869591886713556797784663863142028900738080009279957235422908704762815234678634246756375434391090760258935366614588376777628064316949512056335703651602209243909185723978025379654449261183123938409637760895259465666084351995067113121416715057507503492720258111534445877355080983285909556283522804825904767923428572215035086452576185778541093058950923286842982073402959336601605989334901822905767330414450185130374892022708173747232037832665368412858567052293119122501429973646086923217308811029445553883455733629037272466606782169091956339180897714655300547157989725561909743062441015738459818165372148041088337644437510985167742802382028626385773223302008386541042067583917587720515917365195972274778282830367381594624499158413424037945842439914238219447570083792030945197019332718219419814392627445905085096857908191793594709974271780265065279520697622712491738695069101494226516142747341341992793252280766493786993810687119079133503337667639219399156430365517116768996991275427053523299636240695531903678681632433632076997042950410527811178408206724111986140895645985738777444746415929000019406384724447964660130527246684340805276338129088600021777902090802572988553422127205974575588101711574370804295893765720876749392291183078593890208870411580587879625437499420140010495306055932703095136396614453159642296016391595684498486538354424518658004995231402055754179423012282095824237492673663263375731642134507067093961594374403303488463313679417009427131423698719684882747319424981018518877089108329330005063509153733873027780065257234523558883861476621288471038712135088793260496997070693834881784142948617939905777687847401760178308831669602409950802374179215180912236153579294294888172782150332337709298881093260848234978309319719294577526345438852350748737442617852667299045079356752080498948082575632115101884399725038304264426727469931987554821665276657340041316748090017515545107342979653246667034984099624037004304960727805960560936222636719334836637499812957484393268700592979123903288347450291896784840758462500852348871922094906814352250428136095493370517940740275094699922159340214710573677032163626104478681154014589106210818016626184026866276054359430580495253547694870502725063530680069492217378419401574000514743779482870550102408565818657437049729916721131996679453288689161922230880082324346792875886240641157163663861777699355485048892167423745717168245386562196502269075959855729570014019479690830667222809771725001356693506169980231918804224084305401822465792613294360029567758400276910495193617086418323874845321470157230965857356966409860743522569602920124803280995261499674810304614952604090097394908615718905039606819091453486811265215300689969433357136585410881347856717325766976503206781029848042759225529311162550787879724636037405716637616444583531538121166012369742839054264303033944869584210642166801453073212872527237284733006495112953911104316049460130684547599549725900513953967932902454206444469795514951467251821323088495760065900576625578592342456886279897712648584463803172235895615386472289703747467523600380349528393865575070618896503763993281344998927612393822252405104933372307787047716865300921016313253919657266435740017572439977635320093325292102178513069393856105968337173527555700413473213763859275026563065806102750402308136992756592722283412310048022962218673064689205248626131792755867319092633694635949500887319734994260321100936345179477049844422926629037294382368858005990839924224407883214320978928758179225402088856439508108694640822177597377043321374044407671741582760340091328011685550017077118215922529641682354612875035498534516654170879146861263812760468069264526206432650213769691074292857206764017608892986972832823204400559013533681788500919886379587042671908036973946436603891769846962119669982711948475205932973834817140589016843080574779741161476410120263103643201679827673706825967769206931012735991136302357828430826992776879977142605598567050205502200612035638666687076281030938826063740323930853637515850321745672759268718834679333328889164142935700255395341878094179917738667081392400129921652901070768838119888961366447315993968508971873356889041958561516968965412107809144587916571050749974151962318793414509849027766972518087739043212831300752820356555031119535571021085497945431267940274145111493411866300106505484844811318624771699042541507927205050659427737093882625116865002370309642790610219944020595796603590218330882337237620582175134490054023537792467897702882140997878810336999345350046509906023794930514450290228321753894514188294149456498631203989290661270571575221229393389502466203146886815425337568773365497191685588483987566420767160755080637367171134295733817162592568529834269302325020789642937215663665644160605435951012063996892027109701010417755309271159122065860973896312501735879915532229151154091189252294606019707547873082788541724897728647850179486603719282620809480904181342488271952557725046599089071957305262093023556286925423747646373656947527779136419436303308194266655239156431897094435558860986337327842985735493490933752828691549383888218020028253871735680333697996573843064535512841955356650454980914900402317873869996712871213397214713942718299063010520311123146024960239322896944392996593793272021784553380115183162613965397293295640047937275084266405774561210136183262800364500816735076723792509401895345373778745407792444861167759390628234444043586795954437713883651828347988982023491971975444491104168090585841394266218322688946107641117764288681405221320235205543814149799145590417303553678751428698292786312407195626140695809821098177488110578586097181471938538626244669269448880321128695459541240621824071045450756344759193829262233034062903437549999563083942016916141087737175020609555690164786627374070658300006803855166510080132728458558937288159412011761124534698263411634453549487631874976388982531186213657248890411687802264013620174146445610832808247065221866777658108903038311667795930471493034990886976922696501762832658848066130541977437635283365226777160647683030433440110656773523515062953619730902951960979939216288530556174089959891149535616847664448786170414083707247488385181421359302407855073895896284040343152757020874850406443254519639904734339017627785278166766725954541082512361853591374125587716849720286880387334461197140851995903577932065078349105029661720239014293034368414978548773386631773932410340487236030771727298066875583897816424753051735773275619557315939625587309235251420109451159878083500040665139719374566887406455841650434327425176221127202018008702092896385003568144516474291364513230557994831875701775242359170831941424531433185408994795424102094786396433762169616396205664148049269431097713928931123320143098103182533441855093320683325385235204706564436251021838327340979529553285732271058786646862232315561566288758590004888794164732226229615899030005063798513615453806566600779451757627659126533126206701473195368475716234856541070370856060570326452124243822764980801824554039452211102420612883348612508769884395441052227065680677984929039924184347877753227463579947264877111109432106514066035574224770141885497050451827390607070761705978409639331059364975193005662941870528170449043060803927851500359498116040086427550579613944333887715925308196047240979199362320441540443098670638912609711073793421436760687008024533207077082609315102363308257082651647027010061781952732299792980000873427507448630115686158450485792257577283395207305135398521216405628420171388314280649520223737206039053392767725599993542042216854704838269591178130855822479715125665451706356994357013471989744343518480119296778739338957406849440242613902406739294133438926490268170663622633437432813978298802602328687997231602703931522000387024043007829663708840095948801529817265430707966132198219379303127717520858501774008597015775016687516689597902725010639336112612510034147216225397647203241893447294053613135338690394731307213664935013354843001612250349510835336712623838965390507137383118927128707649884057630958551794671730782802829475712117094164966217672771003171921522492190813282612527802487433953853189765131872240536974774451135818545457445067837295331665332584820813987040579112785356507447297634727570279520120026965155843791022857300164988273190940874832191918900928252536647953434271957857549758974837174354591102695976210026546677680374974665482032549816131520254443654952185787673882165679344397650807311969220599961958896132072702831353680751124894372201227781531490058079212831624906244815361700870282600849770573153684325564739423704827124126223709767384800288225040627104759161700408179003412365049656983825876618962163588945432175651446236102876354069742050412929895048435359572812875446665226478686068700995240515505170826754441778463642502157667084927549785519370321308843356185320087519763990950763310007378622520999598619521176810148712850606126459766896041040812093972356034457412450165274859793320837913987604681782905989950592980346265248309799174331853081283436252838925205804154241859522478751251102670859467360805375908344487912007960630201853211498093553375221257952804112344245750536339047832898010490781360261588526587146857367082904959165633593791300058510095929853215790821023327791348519510324547515564679003389545527654388613452642104414907870699821713975305096842424105183502912315925086700099832688035590439139753685695500405603272201420216074534628726300021556229764907602513806377686206768760943741481458886863524808543600658114524407300352614549587070905817413400729665440826748627404108989121120311406983337525445106267278723325013974301088891200587770774918623927919120498462108976830916853732169998127449907603135609748217745802239575766046831573455440954160098579983288132158720682997629761589906359884645256756607446364049224394535993792840911564409081974183202146958779757790671972277069456998379399170745196160046410475360986844800938792498307615145689134946922933782748399502713145705543993735257539762789780370026383511523657544797024884636700339446785664751462878407364237432065655335116594805996799925781144823521315868494098123404766814964122106844679723534617317315232248266761628423568060773440618375616552169275492887214683599057372926946985332033165957596007714609766881445351454976953662730285987796707387365828639867427189528094310197000101940044289435449416216521920163677447913466243207719624766206291874867223157736984084563690329998094328123476921756169173097049321483665406702412067852810256438066732817897648870356388633019357683879771490076045872960049989402145033114038978968129035662556567615859199498619704910286054965374732792018590621075816561440035755337452297187127191408805197745994671064678309424966099242275772499634447333595031345247542281462577307664599623181549130877380915824976785370633708404032738199671643065422377074182026055006207232667028671631498716003077319584591549745667339840319711323868648916047956991053943822479213828533334719669881567148434485689032750621187844803562567465377870079796214761099036643365046995914258391723317256432351211119121199796815718979668793093296853750030340587118639350207757170960636737043022757038546487335660444489229711970043816975388374344478851590645038936089587980417732906904051434043116011694575282240191739288359879428128413617832218323072881830926938177926951956133351343516505253517856425608476956788537653585619590220232211349924550253945146049114255445102665251019110877845757309794625225994665647752571702768565023825074771628343623816413068792737585594239045208394904219504314704129781502788308626582952136719197244838312108566731056007265068803792265930216796053803907620314494104541876980659934960523888268413079520999083640913229444270246191596542064912281279951127759122464421912257196589831850821995441420379650281916106443879861797416841728726507706977397333211712752832494557272555056812333308359357211843928806111445932976568046307427773064985520785853080964861437775919046620697392172191377304968508335981822604842277888333683916653239936182975637948142290329787638738764371376011771826569978535212390383109560308245653888155325679329085962420480571521167274958551324023992998479411142654286599487807189838345492499594538106367359285481308765443509107815069309413369913469782807170288343268470916625130204561776712453887522826813185257222223137387668293610434448113100283884723322929073808475493155982770850277702147212276213891874880140154500451638869154012028161147947271692494913568956834371941772586835727393454058043596912733797054904317587031114870837415567037104532996424802797897208600353590198590514456126758769890994584500815072828737160311244291936975392616317701744430892702257974704056325940510568694830789670234362754972181177686383287102015947570429306006779973296127041215889646179765705157322134477666321855758357518750548257506935031019124424550887535744025356614536761349697137433481670721908693203092004149288713321943253800972769148267567786701499827440718926956136769646555934371470154014063501577336687249185028546508431315214309430086307017244646337689262646916773328292349806496140531450215002719668122537237998535991481119294190925464077580917877400275022914805338001785166965422835820021970872098111206507921792409451747936782185340491118929656430970504794745024924426211787649240322990132217591840389426978853569202206469557159647690763250634493796344247823074155849125147410624942667385388169348503310896500466498090094330816442106409282520264591184098267130136833475522103170210844017935009540026534373840463468138888037758083470677850907653027104404283462642373539656277874624391732329759123574030760036583065835895370038865282940668351929377501711041304916494751552914766045461937096097057635038479571414159566013175751595158134372417552829703291427702366618175541004270425328144760255397187580691909414293421455539513383579764940030128019204860739735079915642570768201146347863737490492490164586323467320221737869233138470173212856800359553195514380429590269756755994671321545697069227758115778294492885615359938031406067414181910182454011867918725484424969042065672669526718142975357265242386498825348945814613621126919909636013346331961329147009007061769409315270376617656732486952094109374330665957413653357293738015441721988350559464402850799425427376472531603488941690340325492803250476002928784686516160620707114095764498932061012228721474269706464812992691967048099294767940805267758896427018628053311214802823120515315468937929357683004085608804264844694606617701910014987985965273258831092922239555571235089575673078310159007181174120804108211553370047845168062322980468317514115785048356845481452420525303760110351779890855059754882004418435779182341758024033260902282058148962300204319119396999323558952039740896000671699896004520898712199483407382624006696721490278799382766400294790425781039658546300873551388357412204471955160211606632007821118383598262543846107261780277427049550514815398827542989090404566791957820937571983461283134539564159558249908560537130825595858690524720410219260710202506128266645157438476382653024292886128724153640717465999650947898288169146575074540833071556935591427375785730011269109208735661754334757470725338336741256972564202464700617252631697578140307727792293806401624788265449966459081223930872013304704366425233353155069708051022854931833507204574145643260415531621952360930833887947088188997297273138587316916340737816731626065737383093263868452666122906226394114910600614363222543795207357604409038209392142230350999649874867092844019913161904798477150629543499873548189101187955701722822399749850317068319330323668132038432713926283916878664357975893450574096292652703490409732541151469938706509452433563893344343054098944171765745177925497627557707607213580042939775344751689428010162084231984737658927866386483424152969503039617290117881458535201305198463642406529528444095154475119087643184190109469175038774326296200412645756771133528785294439640514989939793333769161553570628770809765356155939350643122145407599380695661137259342163346087684284181056950217993155952391506744555812556336911293403133812680914830973259889608980800747723546849859648043532422331090378012099798231862871550178578385991329382455366641622085572355709040584308295146425785615837678724201200758317982387093591894391446116697118238138117551869045435932556633311256079282731391991141230652309702134801739136047057367691998855013020652206996852813553081344405041266954120813488329985311050847505259953022864626934634601972936074960207340477680294310121780403948624789846079183742109322887502870659393099106451779746025386407853986695267966030501898462449419851160849593879977169224267874290421278243094096175087142981697316521462448763423404240702537086642306548035372551933475694792154096504549865195779712063680152471495138549400929817378897056042053180539097790344015343068540243256640321183386471238850483426455364466874589438332923102967581577732463681645969248093649421275270645499033965684558751928146818428203019427521738992011830246599785196948385647307342428149410901789348097207028496564575575668989899512753487318449457150450908871397211122513016114051594820155738715819672613544631056573534051512256498424673413231923176209339736390717513948677524148128736357897864584402376956644375223770037103670457148699969935716860702845218276515822031602397933476396595219849853681216925252162026334104347583418074697486007369684708824819480856510800729001742610118023599018144800752105718723283603005057112352416034295821568161135546342795196831473044463661813186807475150444200345071060581683939777810140767798753830507306545039048621791341547769756756368443488433098049616330828044355310373414689914012949043630154263187172933507127245945319828959854867212877749924556985239376423899055528574061181287353894786418685778914259271862994063414380016939421895122893778630127862970327650491135298621038811768901781702077844098246741653232775806375993354009943546722767103328897241469526680752942510618850190789750900443380450534355228173448925603629587844612939392118357051713630451044941125884952871184807275138484196492287997307899634052857211720285884247900753473312880632224515681276449462920604814506984611157289165241246850881414886133373165856205695273802420166869375836393223444852188584851951482931927220081772587773417683897552439011677302947850642549776829493545934305740715472216032519894716553862543492236064663974018662503236211994282388129049387726185046177479794107114081782949937701670610370047135064155974927464989012183118309585178405011324252747385604308796744385560310960019093248939416434067603162394043592721001484749571004415622100665716062907646092774049835518502750093475588840010096429259093182951666331460756428836196343322069718496472089786789691330026672294956025349698473441511402188735355922817710981099967525585905282465941256832515450848473036119109660138138269526493744155675197869923413079217565512843552024448750148227495624944402962918078703521769403863858056906258743990616203105762814255874307830067740796885961658670329124942188993662571129584230508391793414051331716533648524848288583965550883736385326924506067015516507579244037301514749716729796264398251096261179538785960865263812237914731631890620810946371915929842605235872761903056941960807351176359259174292354169390532292474419309665725500644965459808060864937049453689664994143930883458528349416376042228598251917234063904829582308244634390756839401538885966169380272942406318597838177321660794468951245946508005456785247783858959733309341953227253356364947952757943792588502946323956807419226472721263213894585913137226149559906286069599735129709565880302470015267586755827661891535887017856859720898744294093595223992451883752436854759035352997915126884544219366727935018534394487352396802986562062414330593733956880262448416177774408139572049894596431500157154124220134805803328275859497403109126745395980646957528646153156350685082208766576306293869393059008560001910306967962262946358797540097800682911260576507089877593785330336375550435526533682923052160113836442519698079051959645734576467703327205459280574823692912959514216761658684256481740774101624674775016833880801455883791828305489426100507724731133531223979309546315013072097621438903154659067427537227724620438496358007815954065410623035782469399314053372721316189330102067147130197396927985122112034077384388639472500831257951249388381339971944440558570925715805084888187190039212375925572678132729048721096814967124463041741672272185741209413169040475153543485737026085282475483464631907537567416223767736892898878574180175025481481496049708647231093303753441311538671284603392840004898791726280336245123203182534524026380557645494552688798949659165339114402305254758507166222069974242958134568681802353551172234764620003728153205399864359451885011129604774907993159395343899729909061996237477925507344036594128155992075391906640331728509056261732831585247494955029826916577141999483198941513511493801886342114349580049365394208053528469529061069770316891086443183312108139251759294999163894530608477981846538213579736326878431328068226983753152179116215323435069609025754726529270557220601780537904204950884397737840319296819517775548161403268038583663175186442849470961602712593731517073593283584978594786686492533461692075396453079881153509567512438831774452920250061457112076559579719612339848679881752686434237687500820306276694487950667715596487894985301156393510823245704532343382053171791844996883494910936665200944376466761102841005498113467011089222018570088668063182287269919606623631309280516624987917614139936563372243609711003125529630075167800310823090663678878318794511981350905371331608602283849270760204885377037642883761948364261242319907575377178594312425678328914732846598669763867765370420485721455387766087819972288771266151062185753808820231607396454815916533883366315273852514019758312891031644461467901799014233687963999428887731297498146421807497574364265829283774487761188133894630342104968028929403602061713142246373393844503009394259880068492919744496274329485663002007872644671575990353342267995017051059069608175058236285970299820587586405278630901766165464066140921369476365510728443006403086678269947799192476863078012981467992076073552086127791268287091612444332099312455948517847272310121022204162314119369837553021538243847277460834627068590828209806938890607375829222823799351547090262532613739531981970304635825826071812618165111164574160338067657333928785688341959653043455014777569535177850556426630713821009976964917094127323608240572833246971813634840343710562923201741418738712823317096367323167310873802950538447109899599263171847855409923385249111674235883712651090448062787026137824704119755529633029417618518582702898700553049395006880274333327970458515444395105059564344145027445782075956349333937837057232530884276996280361003821969477349003669211961533025885308731693247248169088425308546281186421275361996083883257311678854091861815217821779109058052254642279910432851444418059999353923025728588161659675060955948146652505022136890336470052874217623044075746602123305541412759548272748597948512427729095426316380188371625522145619187621758972865864841341474905519163957762864385426984617848128472079351121753325072925609984094902128394861019196942905730379807374798358565541570743698441674582246074795191490624573389083873597867303870524567620057969311297022816779351445290708771699479612643477603434790578891075026127634631611946411520710761200588342489596933841355866591060690142100178697749797652279851407683338259210162325827199860586565763476172281886880826300847213728247721514083416326995349047914394878624967778713620376335251243343922763383118981954313781478945666226791227873175326254018098431248147234389885643448446876827585418665363001035410751313967800420820144999710420287671722619002317159389834392555708225594889237750135281132155236716141779023235569476731886249167613057857808908526450172021674164705716661254712643715722774993595915244746345329451034010917104448605057718438022223323497796220255217027184720444098153326510510041335987162955556297209928328574355343719692904706721462966535317753318836254913949293858426126825819477240320554597346904335835466216446115305696442223784387407631539858044279442222843348885478566245755362982126040113656752203985118106383554748337655066912749912312820442394244572988655429053075477542032404578369783812433595052478747015162141160890671756416380334332674757812799973509770102954415680502902683316486775229319340257395174023156394691818803680820209004648424536380993137441681015708412957042865333752722108996843941219843589977742563227191963666567552736456143397153430647169441842933516814555007572951025620237495461243516938266198194216893170197669822717508462269445255660038719626173769878665114805839078500841116270326542786354114201862056847804979859959696902111525562448562094389105292105007772019862619133880326328744890844383605863413200260337704521798052668723641675732790477087818324213801905284133148819282728230811739136997930958090737340328358990480589183791756888480427872455339719481884801176881530585910084643079979032556515242575646704832777263309313498405421368318488683475924047151894522553705603622357599932959351811759741434546563221797768584790691950418105249584856584791882617290556471381753926002599268863976599717040757823324463187437352003554940551029305248441737777940751509620762176884577785792800634097008695317674124328219132406756601553699466123986857760420633588004543118476723991906462693689861990812055693149023787483681715718407978547296713572965593174324037712615292244625750971441432571655536081283861931504684839742904965541772642279326558834353864222134033886172206792835208798769086020492939663533469687093895832608656212286565901447090240568998715784076668528016956729255282066004990974525638247252002061982304100580161159666560957682278662283734338870430678606574882124159448439200268010936122551464539035672227085270381832745041390470838231851799086322845151831774162639428425803727594547414552001078891893939408653659419034375996297930866473995326682040634293014731647576345105704252849847203522005670653640554861337904624095992351157747534708618208156819417718410894240298804247700911075787613353080664882694303049097575772568988701586150068673888924219893711165258450692169243208991724551655225956541100411853934735098550292536198399286544476226520428958919161460738523939512770311438049205398115985673031259950006860216532442635658910259869944225860128282303416714507554540288633862984288200149518071276394372577331471283360167038725139221231360277249831079484951047026542552364667365777453303952327761596084072049909314163512676494720753959436019643216065691213011920050400656619023214072301028732331070912171063189795703696650535970348191867874862127150329393690664885074023598364767843242313043305616186667454518092283876122786192260306537151497376133770131786310329482570956810358771359929709702385365984994797072289466296838276936224235542240400172310708113045794711581995980362415340988941487616645199257449253582340844623996663020034755641111595844409243748171610458844325079842511694008810658770275411607796248929800583488385101291553041123081935633291366273891149603085181245218888208720768600203049019732123478159956404373792210919413934191784760803866514341092370040299802179283030194565455164081763728956877650170168255015908916582288073904631014862522768138056492137639093267802799095258821987090321055136899032701592442584254380643821100413857080729339368231671946549599826995909150954606472333988543111873693194625632234219177095156399567913986165132662637004810332692555869744287498287485893097259365489156462980004865155685366954143040113330153518570955987963160603135659806701626117506281106148417060254641645223164909275031954977736301462813965548569864819087981152581590303992010375946385703945284328011099152817777183399773891120401049625423339910761725364803131776211010133569600615953334878656808700748334244590465672338442230521535114752597880694534874670832399427544228819598188892546752601383907246543385380585690500181679374853288746713530767729283926986981786561218205126689528837619695268095825073141302508450474170219409572172783324302060117825284426195004527219094436867549493369644826102269721090349283982927342271650746077496096994375398644199512330042932185834232575525887767941040854131874614884731575952922720985155480045264380436901894735419339971380547696123753220629268152053935373278626338443083752543264095311600568183848510700992241531560331919107109653709091481522717657709603038293654338949710114525133214927915996637263864302488924612685626189131577186636370748042750123558653907947957224909890121670741107927294185755351965745739313260669992093700112925391438098376358822555139390520621702117610910606726822804994606292501817890241380369466208575758501049077774676195466437175867231567412242821155063189428310900341005816301445821682306289647741232271761636507112245400287587556933371537681097537587893059541271663629403613108618868533208737567142373721368979774704436999264074536711762692710058714317239348335628557402913978110743978066194292005275819796336792720941635820286950399111060247072109699973989071517413537372861688975860735991523369631764913473219497706413162003919328845883032972602980086271191060801414537216981376586236741209862281307314722025306924883209354055020338694689748427517357204191146986931598465138974753008397125661990038487453253971552541946768961167526767692695219480375880705560169284233755970479410612731417324635651271232182135257048018653439655505230077295166331202721656947684625475367038523644065483507159902487575093152006122127916943473231445503954625990156661020708137639151713604733391383215142878715824389701356861463867291533033251772170790017729045809125604013245683026872452000575310992134663018445419201483321615196687831543324890281692995631633697981763813410709637972671945250697239036602291409585151695397763588329097093823245479728131706427249093791577940490487001966448825530903787718158111820348349058532312190615385915061105173661496524598255146217572111759524525266108201769759684810231149289994123821422902512078504370494209954283305558207052709361513982213055084011534473432343610107683553627845845556529379208660103083395704651882301119676633063014111570008510316485908650135679204991924491590006834479675473405369862488020680198393973105225432648980330326755619164464165762990639704775667443500260760324128743700267020323056548388154899780393861633325756903562972485489826324246552763045062593428372738126011042874862200608747152246964244037945078533351829716864530739011022801166320010743454950333002965726022684840349372525168550852071315896998672764076565290316230227020778991987886389363599249527619597871188178623160273191963482400004414958252864019959466324307801913418463968672563399491085132414368623682665588354672517638801533808395674136760798577901682996789832723428870541375358603983543157136569745272382788147457782745562773690157657760396040068768665218937883820938637914855073050532523689181706147380125284744212723620455014679791978177552048734074492167062075668057093031231176269108013064366609401581886055050926405141662647999473896652408185474810925113203326665359254052355013323583707465499997375385098911685802061812051262086752096936162667085362984769806741832457204125886551186230996916114415735796809920158058917505421795958775935644683059801075267475596320216279309359611245055473354939353340835856375175828648924695029872455142896748973226496258680982079335315147454524287838284637007534066471277101222346099182468471615620872889652406156819330918992211067080496529565590837341243702532629389810036769416701548181555980970960026261408766461013783571891291059097099360657365392150098176260778997082851275223965031048520907602316200993695642075957433390461543199830509386629748334803902694705941123238456459946444712168756036582175317014154974672494135998191452433282768725327883171255256890930663726099421397051228343267686491970294251424314159116898284988191090065138781405170650617780746547170177038363415714618963542619854858060758807859704452642977544469606318149126036980150506631335722752452126464653788838975429562630896615199659998468804957595791577644566909205255352704587639669200877126338208471506263454328393715562125096911639842194025206105855444697923360229920869047345991410776299168315052371991898755000703524213289596258775740483992023890750747097601174130517330936360064569952064393503853738887861392452204517645246638065680135077762512884082866521122185784321010221526809613302922077057176078776938095286285091003304822318697210673468464692755808406755485532548879488493340924968250142282333981587664901340038903436612996463148001073974670282049619854668284748911916065581949099641949412319630007926289952181361921005358951537274782301846920496190630914665920197566223931808214838141128592222983950704309032800160646470164641881747687537349820466535593651143836205639961597530107098510332875096285928962598877679866888425710867781198539575303750941955724220081537013495390031384011392471818835720817013681863472086456987099808736348109587107891531187359198834697561362144904674692504293801878232911212995753381554694674253627216607733596604991014982528163294478660125453457607376502434073395091766431563285966470169169620400721608997929104068688447526171697424137305095734166527498712411801316703579995731079886359506625716852496766486997401522573372576487976430671645727975230639866836699201883910847406556589257950137513372921506541831048631871977953960604242906407691137718564613791120849577650056745533241310810849341108998218965887599960238222796073288527007099623389260944112043704550451778414472024882516763130325267435310065943643566990474544158743351790629478187857449475142070254577915615308828273889083931415379973869371180437394716087955660995341499335393729187876872912428562407116886824936876838489090268140534977161955323033160108002572594672878212910907112055918784409838730253330108487479345970255304070855587144118462260145243374236424732741553106526591710118780385338519282352910160996269130432320856792307452322314556532883429450831262060507070000600865032891590611008261312664783760899396803526124424736366378554612982527656825556156351311148102046704097723420321694487268227960907377880885370228838628840809742030188251015614620131316826066222201231048772962381351181870581379838677019626047848840828550259298727267626744852752563210188233608738586011029989283751932436497415398031039999869380086588056932960557313145287408455019480168320894206966780796997256880367727369542800839412223232671000851715067077441622265289760172609564850787460281919127672375465850317251450094301135831784460356538150931833465357584488720613657327420924037291827409488208507660892805717593605439183549694074178710758936348197053856149158157490001175334333751307126452821068329714731358548159744455505292148660869158971075827941215339255907216810506662365839148307597074570128144965711597825281355321697361954186736848302181893492915420238527083814067411510903133058397440786875587017409761260405829953448012959010154432344374745254606734023495894068604834189930124996758291048978549801585516922024793470309114347856217816788092420581250644488007310675333318608737769164570433755242962965847144564083399285206080920825834957949219139322644490381009561398421735117496599563188498461716084964410813145430617315404891946896222330583512933914363742906231906814972681190195814895609569249893348085841258802654836956187826000934499827648538378645013786292188169420812661049975424077950129604874228111069725718840761265136737217295756002623292762069672922695665857188513548962285517750069951815470331380035086694590459567480032924452609651262896817949318971683777940538445121123238425147722658976581140283648367327864931360715396211951477853844342487272051468546879063735507869261497868475415364374321879332725955342412816048008537493134611596250755412154218690877591978434396890196360371126477634656375154765522921068426258219782569383745557109281014191069947053826463095381236476198006175408950255149209783687888060534340134488123072630749482291093873610817049240950878879203377150767827679709348772228592289423533279192871841935946922841046651108778275864379992980995728675409772524384550724116164992255870916654304958538518603272399649245714134299904730617789096333818458550646372814532944694557998247502962996076754877261839108449400219757574669524667445156703274792536162890047664973455269601426317129899980320614511767052872837985788947680606013863731155040362407765730235458897340928129385940909390144569294762789118947402564490507803453838795752152102294597315327540389097245060834289152848226710082567921583591110364970386917070414085104452384711734251502632258994972023293252541951925864593981680108591204191100460761225365568269775956151371291472557574310164385492605625228906590538171398707130828790874816099217922720542628223307531523057224442445718177965846229631026364452555927264888060312032369094839920658773396112134015842094815476189093175141462547767323707137659974738017335933552847464730937915359488469296325318588812166967465043938260470347778165645872084549219489311903192572333794060868758831345194760160361427982828107498936158914082472501035735571120422864699547726181850663461799357453586141507927970034343138760591461217824243750252859507623088205413193850188512467340392027802279443214470928819984081755245975058818867177940388671764196871634926248066908732973709591152458941699755365353439920396378294106069200148143878598196308752396040100015226443805188447220641339570950166001324169638912297899409071749432921044786843588795373375210500123286128853851483342498679777344989093053285482028550407808151057242139751989518587007736805604108469430991880167401694600195196903528384337755704430146132157025227891358739485073233559266948828824508695526579496634013907873879899733810470401469780927489787399271046385689431452485740118897976497358992316034045725616839503485843326538653923846979463705273439988257253218349997957143443134331259566571519290716283292719780269470203030950090994734783428773097278581569238617440819610937134968195581501385626208770076618783081607054487646969975641386118710695478978099155410465656443633800942838997545957277959320832538272174329536342974667028326490877836325206309125810281617725917631136631919746168208013340715708639181581410958309101085276326406290435744156829924418529299182465478750115606459050048687645056274370972213083395112261980480366970252107897360468674053086582451919735142732126887553979113754428182460912782296527407836438118117184214326171593042638904639830411992618740127768562133844860539296442917724026788674496177388894836241483283518440885879494548752845836221928914810956164059472932485694270360902441912446479665733104632323187216216182093833664762894113793738017165364151230703367844405707769513613693854848230171707169898974387118617384570787819675545584758984046711367733397443424624566760404743749875151305702123318139072164195302494845093954133739027576257308083836504777199266700440659628574307340637874516586681219062440449877194085234661718739393832832336781406082061668523525263021350692595711741812366640079865917958554998417401259859267643284773918576929722493214195419691717741051620478030092362178488142537880899123141667487416710428176642179243856321200574896018497319905499758640870492504878550011157338131632383294719353389276738703597487205313068788341051906757017152064078304372725431326503224651543633338769059776646907454192320500070144926811308181078010346956924914996783145639718357482889472501157559361668242014100958804999510611416258923214093576097560126463893126713192028592997826732994211351415614968392388203349584912535579326791948131714988909231377829750276219077779377456302915262117693212761700216941382182179866599840999722834472500954212287133395664765989106483715150727730427412570678811492208531122333894755341421403952576027697011325666023965627739177156307545779938959169410422427438465323138834174179373158864363652316859169914544880820414168104723784687658514292741078078408764904517384388843840284442637202151481457730029200881423137026330652946231012385139221681981061691605724826500030044576866074064711896877906311808618034989673972301465550908961232996467502139740520814337353496382581658310901379034460009775564698431578948460159360579045291068019004678052325170809577665672886282326057547908177457156429642222038889109896022523310785054157222031845976431909542968043317401536728654253599045164891217000440294892876528175245137289580748069843194399786337837617884753344927915598343114997543103237343639004715615313362034189639140696582273932449644663568487662273869605319925353684297061925453999329177814241874031626531825515595051648767973209064459802067641492866340265946252838119122685391652124565298588825237513243267055761665041566956873949245582029677067461130746610519301104911503973235231326321563784561650650467918459623230745395353198406042499608083480563717006456771542611942280294966240497080953485453488142129800748534264890613981408322436808597617496067881985008114795620761251000808991647635593263783692356431097444008678132070690185243794901986788914763111175631032020506183532353749632602937561169717050584837646189258387730085687985553407567952149404068559470577069920510654507226918606649779010353028953145023960364752129805412046465899482298924877059980444024301743780179049256932972890616018304612798607520911241549844211275842829127640584866314129077960848608570148190906918452924033758542836288737818422466850305308915873376334697634518140252484996213269774916196085404316665251783615576006854548156369097854692172119241341146210489111369822749028019798457279451230620212360387279910394556106983788530333296244594027000494644098306109245124381194063848640905681271831542535045273124949146808360678902252773109259209519658801251856696566170446208885654103888890759840286918232480271566346269830031752940449213436687779935925220275346284540754433977786366501632379726750364701818436405121571118148588607891343204436332565493241126385929984034160698909491929156871842477729383360036737936246176529049418606718002248186657579063363915568178729152592024801825082658661947539294127722801213612345076715892242886664366765564346504661740810753882921425979347942363801497388271816369897489580845544980623610875930168982914940823738333116822407306908569118863120190898410475506821991378732776961247687067971318098754601843740110653043255417782670198867439661146125205469847465082708340512020275327578278973128205677414997387660323674637973078983360931259633005708492766856843182472694641890544370666690596465924254261864188759970189708174105854624337192059513007319514814247837280701358370322697613774881132457328803912137799892392470645881512850869548087290033292381627916104398748438687443098374136516329550509210933909593298915319362284228209096482215461844626639716918289165665190874750598697965440384719178544886822381560210018090979247259487154856436646645354477641018522163282395633932981340551962641053127853269883471717567645126203996829981735840680439983580513300607402888719214172199772433101374346465678819045559244696569913821824652031333923874684109396650564081706061550878766636632174868113841674226834511367683967777366183642139610968486455627040119662422758698954670788263786414463421878530649361072443601085344184234340024141202306107360940942789964896643081643989461581510373370679302051353253788150065851173098120008883458095998654949222123631856381414396095121236722482740394444874841864318785246166082933282967987759004815281975177970022746927232899551720282626146326813984049760475624466338530382112107283314828103117935622540289080904071301491065769178066722398459806635036985715095709987781106570259836141201763649810783933103085693165089449383970912653718480995574319835216262865506909317895427444739544971360495653886054286784890053376440109150444256535775503382578950126131575930369004878011868598058806364015882926128383984879623792438662264290313199313618206748349227404144096679702544782027349458625815439508441929817925192158288378918674911546280784549126043938249037145867092360893515272530604826502175487720456900777190582182093777191583064312516132008269800407214878335511750771720869505418137070960038263571720405846805408610739111220433297780078127144398314528112128582249764282228504197856628755918332793897011299400940379022561414094088134893632634376681189226948559909668738197320059120756085139650827969613508637971843127287313364842406777779281301919327708656353555084756577975120982208824280364076677591114961083621026375914667942915288644822798519524909981712558798465655430530026468210069614657857159240123128104991725858557497218289962941066978418897854525968212903988487786786492607944391729202353672276394578369240528712360179985321308767538590181123182814752647869010419450833296774748343911021084809352654360208405794389510769042617169520061736513124662953319175577201656076394681339500579112720370618417313700726619066574973947610287167940727203219555583027826970647214686948301026852584447201626221690082749524825716619845865005555553904877081896848743717689739618022316793935442291807941885449648067095706021420284291480568081438125119061161284596496980510073791827952830977713611229987196902259148835461692302523303339351670929717918616020591916442577494538587143756159500619353491384571769950237418251114058601683579702951501511167698328141416901600196650132759698082078307429632394059512958248362723906927128438839086586391889576952671025211496609365382099443400428012382118386783141405405906801289073861817457268970186360770789950192241289241622271897244789988183511663188092829491423412707510033308767793920998693328359092141591420675917544924506445017103871081618382635224919684282476340831186600870058057986558374458727789151449676933382149927676504093995668469830757744608612024857666894318629598346372283479391954129364063344401021317666335620988435491559541373993124491308533337002973724116397067721293482571987587982684847350564017608186788792993462253875992070299479429598313469847640678974379863988119945708808716044284011576977190677009005250988415594145580452511339895753291838380245027483167717167039598899122399911632399187679328088705574806717032730532287555307285904274590520414170468063537446612835824662822480576313278748321312291495239843965928060291580453441206621858445442279732992914534996027169522325839964534622923065614121831079411173554996375185425498752792175656226681358018630943732645159848002715364162029621703246494370755345033099924340921269194118164665080506197899060945164028634781861418423130810691973391940542088246657866226734986883409574436688064745982677313926098495768030000947610658665124515667243332391476500331237817435183580582596664715286497754492121679374227793682013258704309910969167197358293172498407684829826251038862618792419697380259532601347903638363639326532172548209007870544753329819273611741026693568377020583668679401931798658309949245462833900362172844075212165307205401230197771160930191523797833682477649721735103555871336600519006076922974079155951487291958227925103593741732876169803588389823973679273357056575510263966968521584417298891819771198887028276426988382375008202850398576377718067940467742400824604562281647189442852122877901297239137709959092301503096514796692725705066495061323117473960398989932960453220081062885555378550578303907431173632182437087750283222015693969081498696977494963394866312716594717290017844084260148619546624564154431619158485126872651070299045930035146841318501229200522400284333150994507687605854492381492155888071014555551002743598282560651201749428101265527157478465109092003405135066602017867482586183825540901350936306935729758531057648197484620241296479213646243999545968650288038234074148538005700200610319184270922080391602217049817925552270202317449738724901243515837411153966923965457359429762401124648999038947247812368454483208552263609847411726064333110130927333726178430304637843659487018945690747672572909467515843751484331793995276361124156104897793178873856398443609762213882244992221054539806450852395178944145620736392306424253416024211724097531861893448495746391094892761905409306840389009008518321866183297499400154261741212711886570923168360272793472859137938502236700759264134726300037094228992414401769154038859932692940602910153598927816831528481490924262941768961221060565477632949240816296897211456823001377793250536278377606097625120781328701120904863974295768534377051713268629596296259756741077035940596000558980283635561753181765909931840433951990364583429475343422455362130988806211386689669171542265320676842139302704896403632742859311292932714067598679340564075697743580509327479747811024617311472936589884358523026029817593569428087262218171716522165835588334380100584946715610576379200119126612848106660540179578404137146618894574795631987930563511020556786639097592798391910104627641035155908355598751212452692592935437758219800319511315197753275405612781437966567738656474238240294634535651777875397883716490999681896038230187831180724517523991711564042596406529532128881836119663536555383306843386734078246404982829828097728118547565985232635609069822368067931245491557580460806816886256777892943894145519542211668467326326459873155854508274048117417676054928412770459107886913968234431112127352646498239953385283656342615135847972544236444200835447862337095572542342442916302358138627923146191614103491339222387804468549064539602062680564755513838488554354870910218118886933384780191849996344156249969108855321832836093901348649789725998982596392251188990866799084055765510766944808063961135492781099274834164476200947889161276748103169933349748114696443282918186795330672532179941861100802917897620501884692346666544760877360110066885803742459956999779537441289593741112576195656832703382658406958450175193195404523497138865021548418524022790478353705843586572492547361331112054442189827700313369015045580843076855966144895801893897022595944684187470579881546943051077142716109152875443576246571495044984607608413862989238332290820565240632202076160960288196851121378458434453057007809827868561905571351355340392551334942602528276126869434589522742604641601917896405964493829126244566366450756212176523376734297059014859017488454836766500754314229514342299322164003449566819797463594598895341205389828754751587676599593526383457763411534875075896506534356283090412950132288207093516110446535239906805941234502595915066312330927881994601365877203424971538865065446851872116770947007482521687110196587723893350336147834166222171256793590195743755262671489021805411157943558422157273239820546590014342599334833869769015055667324763246800211112476262761659533467492944209964886729572023613175317189617431012773263656959930613854651633253977915575028097894503478430413635433219492774484289928627818770565925952420900273160372017455578564978366184837231891805716124190401965628257195436316092002552405660272738097504245953865621781167256375612080449780820199143900178020226129822041512771890684628211942281691262312437328950352497382292907088781291982396823943868272588685140058909839882371410659014833077199914326330234497497510446183363357933911615956800816745183312332482305080631754301747266621023866757797683254049525587473664564555942549452827646770961351744655596064321019159051216047036854892315050382251661502152699260102627758265528764525919905901682300883566970792635874826206021148962826610993292340056663894921077903972906886894929720826509107080131321441926415821583576723475139444160138555385331295777380882714373832779521650464367558814863689845525940847336383542167912380519476262703628168421232091419250987783926631015140115177321737257328341519303461666513450530118947233084639887984477628947995210718154306568240172197056800858203876478456205148176804894845320446390606362765531982898744950996720460614617391887847795427546383702700361191078805719871683775632650908891339972588309417773219188613026559608783594109344202354106735862999075582865625283561270413936551627166579453137581298413786064100157310324972453115813476407478763737471837061165890164851274219622107952698005794337409295290377323849436142086971329278535855019894205100211419636318168721177625394424349003808547109139867364704721668006824548631901114451658664255053735679463842305202884409949088939488517301381664942922465426708009330971106727424526200667532968355888881600608493494583529904264705048410908392702462183937480112157743805825865919858576415615918957032345753335063120989535405521621127263219130062494195217628608040957001577100055794728746911982700347424347656456306766150405091204832596647382832265017924630067529665991545624882689813338790374885421216792188883622858103577234542783975514066998423481064078941617876177924947911769502141291102640842498947769321538038269326181648277228023715387614339359190925985555225802297336314377485326748415088847087268424981796917734742300554454159504807686201111699964176620070417769942723348698894630036046318663847861057781575649847230154882398117298547282344659726769889649672610511904089487456666505921733367084816860944394181809173814417239145354296040881780442613617266128638662436417192009608892436125493530974610913537064739468893330364171331246576580719316782970425264978183531285965864046453618502512642847000246739488096502014286968843356440158273917443885485103677925929193066995774511684674764524693829057494761727168648538677371735624934796063148132873714259922140579648878080016345881678419465106335189783319246814966574473928195280793366998497617468647212309707733004698097338566079773269413712889035901149005771251980357069689956504024878854444389212366593159075201733998042013083575918536076758923791132663422461192281927368825020092758558814922437858782474659626002368815605041951718649439603154018043095615408580054386037270646119491562316801393799232666713581596646028026599185720585636169269493663785403952300470871471728396046794867442931746139630825971364473776003470611403840578263311035535143004219213018840638237219645826560202755393527344008433729819877866945934515936339652210562446676072784700571404715181287059888851269678791400856030834142922048252622796375956608030267229711310266591329203461189262410755333186119516991195675183494024268949331896431847417664780784025471256212765845721644326241686131819341950216866125434993251568780445512650347596596967263323536969338091983028876558369169380795267611817855617770066469244336180925256230156018033881374780834663408836645236586991467569467998717465124861242277215443993734144350220593167411938885613596530011391206287378765012938081156899468695072992769603986524399222700200988464699556371719212873942220727767595857222492354501402766549233842617512707249122519465565553005054241991460006459436456246777514065419765753913849576170735243675691497859645894943003477906468376980753425306740802580668564213793434593576381047154538180365453478022128536496065003770574642735000766763711228612555894868167505816657595861545003175997847450461461698689881874126766130689619797583246054122446631163465290692021750239867937084187626646223455707224498564810041256746274592036927700987333997493326971114910190876099049946095471991053098841551960877852362397952728684270912322331048175753611338035829420794796886256194220269826198053261930211025518096213657965916495557135013840849818296397078742309811805883762799143827341323260234893255580383082556715056266870274413083416102780729470148356842414262118100116721424333792941427113557655429455528632956381084715199351114656586524812320617275591480560263930302577045868068874404850799294889338544912814825998705651843297452668894529142193275995506923721945572747900326668561999213290658502371396373432691999964711831194097100282749492993237777046455751545145705793088697868810544998585169205114777191378135747208633292621422870359096142073230105062551521095119785244541198512087631723627486649239956693463298783802709906822861426593598405350295177499662780413778090865252845346841704313990660660336039421292486840095948494209476324186217302986048122643994742190996078474886556619012555504744062203012477425678881351364364969604108996621325774608979101393540980735537922842779750733536291561573055293886540791912386541723814756610455019440460087909465490320962403858289135270017689732856123638409654944771105518365566181909264500839505152837738287771519829055092569037415460159092019218536824324176104213670209089279042491730413300535928381658914133647794610453742844378095415847973310251465488666301840611604643743075428437860488509272137452344222904047608158363641269096721823111607039021834959859060045907713633750927972313841869533321875864846449842651357163171968188768724610924767475198309877124296659315688285367890719639428407435264239018882937745235473002631907363815945604509642185226182920060420175212733773620448706323339088736527121528982404650802640236938828581671440431095741362477831638029783493627290314000823845525373170271687455426893742811378384408460288676075170973444968716689480543680609945643919429097827268223399461609211058533937083277712074645815500729657701518831653483783500903803739015327009919023939078695363061401204980853726906862080783560695314170413776457873324765360931604445915136389431590703025421785334739214828629323138000756272987135233649381338655131631405113013038351425383931450404404573474250853615674897850775613699267969133050840703061204346986279989660181505955084011386470126612190755193516028607980827601988177659024428557567816072017656477893710487052856963004886864554823747984240993944306668871727698462231687685796957920794931323626488546986706250414892968915651845767163709918029075390874479354590548599853312210657277625545661522050753668019871423683726338162333136313365933864085737008960600124854307243921763310236899321835683859868264054391573412940269605927226108164278797238908030422037258517582091517583314338963962443536027908276528609861305501606630818489388138449021182012467257081716382446470793279672310537754902821008835656378935150933327870850696496987485835610887828391913956537497362785182919566014589941448995368109136230393402590579871895919095887170640491810524145584374128479251920732301926563790606490790684063459895145473723096225969785900440493637261205821846681873720752020767580775410411625857686954807078609994793469539761311270901364987881307903118269102072192986662223814635189670434995179595066697970522533415732682272765044574829131063147105495411845855060847972435692733312729401985069350116146751731930705182000792645998041592933296338683118961985657358590611404791537607423752012188716616850907562903466109947362752820728606641164679936198845016726560693200357934603954645809573954813654989596808039862804895730874173993853893599657006363925641966357348839990292062481836305225694481994541884279794775052633518511180484856651189098435158825845933375250948715682311265257692358887468184813293743782271251502864729020502090641514728122470200760829329481193216476603131060048353697655706137278891815901424718426735973125866367955750148261318559465116880107048599354809471645377447059414335764532839798231880063571639472230982861982834831696717805351916510803871202404631377397276521352866832595913662895843079967724108505071778920383977350522542822287666015850380822016953167830545368613463829982690205886098783695528582518443569835054447157592162578341351878186943152064777384779909686748855073962326071840878226942986188371105025790632745422574982530220599266828277877216666178013543464991160587335367101232656788489759530921165406044814761183053352310151328054209178185585497809419560428328713624123080564661070877648022966081163089134147372287743286666317803598805958119371481742512896023827220921695257180684519568486430234662471266431400915696763072834847009866089070333155064397674683960320719832795875215945238189833639721259605009294287426578104344440144941530986398764041861091948561360277967976297711775036019680355832161327902644173039075785739954379275995831326919929435408917562062677959989994370333562561017342607606685616631741761569805987382589114395959995681216388079917492465003399855336104395040741346255052491750464188552364546849746568607052210098922718211620915440226031393713148653071395268680762446374974714839392761271821349779768839123378314071970558058872806639251675619924308488880245247945468076007706820772937650964442666618971326697752060139872122485082740173103913127117631863450810192965670226055879869817516297149840628154979787429233799135768350247817792580001763539241245165713178298076943316384604338553138683391307719177894727610142687386458967396817727529290967468170307448417315637491874009599385655514394477470837157813712445434835564470024727917886963578809587923787881085867355919749136730129151596065526926955077867205581607293690899226854771798238112952453096475713919307957351861660113982215199251613070129486085146687831145882441974376517068609215001412384648940085387555045580774403031770060837890339329839078844233264868279923123008050193941755746702408382032198935628795690688393554639336758916219605126932047437936245677878066867908220434597248461586365008534992716064692713976766612006324272643168202582018398756632612478071349708739948804951269416577645641772859551749950508569603676392158536251427119304482849209485361142298535046739045331285656057951615236714471799327949140951203238040082346514411935839982875385326864479473568578285023812153081327106095985031362376868450358384586550852625684195833173658991046332394636397389480065495187256099582692011282115414575732075185897064267503657784571271943293605445185841866274470908096432112813798486380540440618130835793343850084818262531835073339858025260007394943306531802180097444588891627725095149944242441681945718451375097295469550234922132398744254813937521296589831682806015914831687031200835791680850112097846617990266389999720760499089503274064085865111027422168686454225622579315659088968360196681164551627278269501217701964479551474728105768547253162147223724808035793630311644021489898661224970327808096812062394781938468767968465454304200922970397861329132037672543471756096517511623121817896997993542823014313424059082274243474389492543287880932358366507405705268231009896242604426943583904638430604679047669651777054240904087101282191870397551967071298484126483898349012550277227094765410471232106380844598137325133174985934377491646926140710207717027527802354524996693234212280230812222986227861718591876033576419095845314299005500218596200966652420969149617053131794084027448150041629776699373630921898836831921201598077928053557163470283652805876584843524916330372321685347354214690656812697342381966018136599490071415029775399288152416014503151573441197949833444723247655599772081642701094737685665489559857741059235371182733276886833002079445575667932692559171697330875509636128517420794182707994878992087036155773530062952570873473157321658715853496072130907842139136220329304782781162178037806942654094104024644236123887897352312619454495316096019983525684173470395824594531573173217511316256910118236798116409952980024762562689265079068761183071025232695301792311805807323543259383986644531859300770302176941979141748452770202193943037777485084428641934221086686424206055650931088774147777730642131973074123337883594163316865748272705827499556846367185717641942043789333654208346942798414486734165117085769776782239870741804808198839060319449181150767743290948931314978560868367275926964133154735164410272316085766514009375071254214687990048697980350997503394899919040830585360598025792946656754977794921455674015117669437311112104160171374411184288485896644996233956260909633226921743569990094505216476355528141634464223530248017126362112188725549075039844408431656434715454005256657051806086053291704958154180136290797124625459063661379946205782468133583256319994638149774844093560827405483189697890511367806276244183429461227766319916234743796800842993885563456635229985208541313512905531951109457635634702465876017702592531834094347811332527908832357238939316027920418319426022429919609191424812552752794472917132886817453247425150900319108590234985123443601952249089215410749401446473305400112745665242443827642373730409338570348738218032948983886611702077537827146180700836866280037760524026353690843316900685310582453168509671328085998686292696786945832523393316923460249132805806374674777370654453950244560433824031099737545879370076513522260893166864942683564155418067109255052624896069571251220396337060566987945210957319914263010797879179315803999216135215053812431125092565514682848235072452327364569437020484328360481221496394646465071037250069626365008829756863968946049079874231023621530299643301541339862102318671226814800145270047319592917026388486508012931607755574824001404224422754240686850585904180318161522276873267815716216318507016090168438450188288619795036658099500347300465554942656789944090872591198128605058118859014542285567640108131004369197890306505147623607920224218487261952565566356366961789107922993162969575787973849356793386809402992454098543503713060513759040132135991876202815417126921775561365589410504824725573661063867803426743759434149481088587272668576969425596997477313281521714993229274158468909891404900720027643248900358025908697063072585787692188351047641347463949048842466902244817534985566683400862518049798687399479599562941735219960976483907997246861727115600953400042190102788893474205448610617477907990109062385129032209811845913630357651528110252003562677986736987202913243137229954013414496623173107477013916301140543587050544641409788172461683182935973301696663097473639926521316403650658887017130108486398359096310201356247170596578089845409553942966875735668564519513102594771910676381873634767918934385382490043322268005756664127683101693222947962242430172027882371417582178263126749359343390904750794223959398509760780939366905233675579258286698325326716888123584359117936181470692326888882092365523595933230901504284702990140265933658430822578302721382202283436332874502303176385938486747628702149057531267062369741098563842979972015857428404074959411143277233717431185709017495668789605249849799990955206286073628617579099798393848926258681061946993420580427047166102681510422215801712132551554201993597599579000905679557421693546877441904393813532741090153342419151330688910844439086800410033409191578353759438379107948258712431689432217611661417723671916883304144408008095979371990862452175766234796373466463494524138730166439733692315407031467810547714074334198293458627845728568670401071404758189139233377734245364816280368458387220015776367305012941384458359993847198937732060665176358785508374899199286680309591767796104452701810506246202251302870023929298395667239837921623636118994108831723064362303018122969412488223875274549726703500422040280267585567093592736676613943647068513302069320191174870078965686527277984563155057821873861031881581185623149192479067730336620338223311071879467529385591324033442628470663322201578426297042175104818974912630070641182683370947416053309412212416395081459525860305763943652401797511273017599574617432476146337244411467425141765719574995436254323342652859617822099897149523061887955929807468252191457939367144720763790203320857273687541330658736461507225794768717736115235712379233939360986110427499458402906062907146618645877096483773869860091660942642112373465338351953200276383598589295870310193887100382562351300760351851498123608346472788309150344462644049769653509065727506141468055505971565748157623319917665603842541651043503640359401844918048606426400416624429118569488994281135961638894355242949107671650437537459677269486585597598809901538106477218964406077952871693340157933443754235195440933116749525403118018870611309691410164245727439774855339677545630244293576102474334139108368351552994983604743138076253554348350386822195719082508427332055437871031341561063582286717651843056666955382882051154250734297340922654145135943301200562406075056349023686711042731739533856448511742791770469202780092613980710032020517046954787250408427727997236630526981065203017240416077988690007046625798793838946023122969396145055813085441883216530054582509904735516108258351729161706094208807092598664166306995873420132911133038913915904624150913980728542657163573269787302212788942426067662942725540837974088611727122107622781069937395986828116569393331223339274102568043950800843178397015025531413625865566565945854600757616424278948678599752303451531771931904088894491413513378453013960565667163900007749432053346422438459961234690857626118198155463552798154107106845577139017490236526986031111723235661828319521995652270711413760195264507656491828488185630284706638205991334954053516267716453319429135014870512666562047011283535529745053748758902981934479644606142147535831557201561624278831485921055112348710532053259977033794734714505147242112196521679218618049157008530683286964699279647420522694744916982132177949447128549764801787783755813180726460647906228800621938179481409274855909636335675551736648593229094291154474521802390433390741775431825512321766583413687407626111825077482152529272372597413129790982519629575994451461649443335052085748414352736466080532057944609790086526080546459002779226798612406279302792560117555611280216830864296836936549435419449694702746147140574181191039793365792487008381985769703461333067497534955677332034301917983585218228332593804728746206097967348344216761981531639261147959107768057829584948928022076162102996074470329475128574758806589565080727584181796523023720420644718855346379937507048162562523387497730795089982590888100331676132369843108718120136185646285048166481759078513435720069477762381631861798888093736395257121212151237120138738518093890141962753157684668732604613003967532771770669900234283455794958158999822357761056194941637023770207631266500898961949990035309214244002917146705403127446965251007389821178772146443095887824850445156784914184406492889507627365150395096356958242542738313240625134638348313802285431562636705305197981691256620630520780279399128915038158870813983241924628346513760273796442748868796497318912101935686329527762828330997368117349715745129271979376893899746738514349486166875206236362848178058055681961109883811158579854300582316589532538144318896311659268357949704005817266962968372501300001602439674472507205307524675286178654417200464092763759994435596514669073774691525855202964116840798677224256752426609064667514189221469934283328727637452333217189745832260624324887629767312054915440645861811134390426069865467208061652008652079411862859883509675834570131345100605238163250263059436603817492998177653638435459350832462615394881242702299038368417564819093252857923511469240642570004570103255241878605780112132555846986833963486120648472531718469044999922265614045028607473177304171649697094289230707729667734963037035605608390491719228316958327298583209400622780393503384772151786146562397945361256012694017332949648486972590597731092699339983049701377385914158626789479373829650600040126508702857668107197949368139839228734436881132949723700133913956403259701118588154667384057254784781882656948514365467850859987077891972843239938642333482654090655621431378808193750385052731796929987058789391301937901923689449118786378945365423113243382226764173351892601153478333505116883217796458928877344394359258263522139246270735510759930116744935455365379010643574068765641109254424246885026566546597725111887477570306462932372052679187175962085612147267351040375753696547193698302814676211856605740790599642934432156109921760217591876788108434241121208581607490988959351651467856554991994298749545720698847300223125951314992682159726539557528952514289251225862911498583559849366405680592959994046142238239594163115835553222157416012299077984729995441702161641129014308257521711748015607925402481405940197228488227732052893701315749908339823320680950702159657600450806047435341236639406572250500048426365596796246568538352612031060696855043238062008654866696916159676523971726252308323093090667469407901170963832882379199661112869100351602758010512468070741292235878692849796661954545617517200860462934571311539040408373236070464263920544291553061937497490877313294937517200498067020907053736818030214921003112954646450332482693390148540009762514128719289838798830220440793683387464191039722896284306358379319759895452965554209826967044339791398843278151788942507270569300438704519950926885205776910027714494468793572911025508649144039679647748169968641453110397923876228269022101406651371502777030528663519904274725548880648907522992326671684430216002369733220814644134156980710382687791911771899192681427388303884262496857788778889241309448324340577654849215199249166252003889179051082298375089332894190367827518170009548875485912142287224576671609703252745145267621158384203407725121111477157717762897744140975998725078693262552748208587378730610230812310554701028881374757357725907672142722863493304227693051855695230277631044702480349913005098317268089129000440683287140766911375273275604833679602497645014835137242279271014892786804091346630549956037196858257797836306307039150270749565831381298308108644286092766518535201504841426024861022499978740383644443913119365250240494251492402393224201435612189010956027253364438963598481297401859666350277308930606608316155083086369137071715241956961807546099645520743727318397826674180787891438950042697513358490956599899700624759019562376247929607849216282216309943839819716846204490503891354398164361429721157726975375159842042983150887645274014927218130140137528945495084096650857045370771134071346201381693227599856067049014748396058052486640639489173847060004078731109494269750065461127868167750583672472939168451561968761208720961685651243640940721055059307575966730686678798398760070737611185255219890103220772394859722442350088095780035192649138912613033020794855150993885608303904903440257971686080879161601598449709972192710418396267622788400837181274573329764080658563885386938366749580114430238848394703480891739217617553234236295298545727720566019626483942152965539250461274804750911715706431758771474223587912623189377041633854253057653578379993466495540587599853537346728549133003852512848715746717327862821598880289551227695446382317292331616425186570144837816914879426789632172146575179644208294678143637971611890786774384224171630848920722434131419122042835029649967702913838433820097051989856705260500402128420349428981920928848934789359199076451082312350424323414526712872994006562253510103690245820117529326933824877524389311077079451946678015791915813063449969493889745071143010835885131488292787567516207308830275129399686186952561333162289516299841956356090155676093440894576775732866190904079742816381516132178077544528630556986752991265296144277482048616118171505083976486304296046379797031007441532645915254292276299932221514448513173933338671444970357171685499888551024855428295057930254201965363722801104423150882359629194169936799159612943575545067657988613104681754529532579733188092883667920961479932916296943850752480533970834407953957352833818484406238851485263342211450021438121276373318750262295197518692052803147727019561430494296669151575886700164929489339767420415196957543073447053514956997155076511855826067099555026958343111167878394773244646740824414478309360695988951347598737933302337587226148312707913701266816402167332401734367279257458191752934003917463400057238695825377404896771364978827594001108005913464935098129514953641628959252438710274047329156024732227485956913416992602129294832577105106972971782335714383435882669846216767885725262444782887693240020434909839125781969937904252261728884788703794902597002630058230264847381336126807655858390251083367887731618558630068694105222179421265306622326394341250468412886224139843104510323526953169639177360351766998489616884473838744783092470840942237108909849661521148276088250303400959980969287893986020590642046691964443588403550043174753678200345142624757108852238046909363223410101744428148730233754853220142565603033760186047744803942306274931992953282878581344889177455290393776562002145414635137399114429310394947496065530917568671501003470873832325164456543600168071141914933126678320663334875263342484991256946096004148922777586990843828936666856878172159682837706725837900790837379949818857395150743019221737730891038403502268524493963968173646197891127111062181381191674909815259479130955472972012978296697641230660473152838476758316364121287881924109347239285293639469124793446668709895275593636641353719803968879251268361074835062912508915861496784578307766059295980867071079004603093991032136299805856634384730870239422111840914021351663843696562882438657930635891213569924127762378208342594876770341648561121314134527119722944109933838937472662453856457914270424158055129993065057315283060523905679371537585473901422114275265454015489438547360945290406138624000560068829275074416388916672840112133498367866209346512232665895097265372503883069647586540567890444521192008318478114873770873114987498990543173946508055330780383424580823869440330707019818177338122430404512232817204032214771299873716212441337026606750597386462112942544474900905117793024701324029071415896163106923153277325491809611714026603192405487492438366886379883176503041537734945951015498686435196232131084777622176759054413973331533525021238574499917971684451282132996342126674696163899758520265885428626121407499825289853887345693986488757282187564987795326334014159038633371331418203975552251865004177831146214091431144825011800595609958643902017458041896758015404372587189551511951525401707779545206894929260995377888205790718997970950520522526739489402626051406459068823031240051131848562309890138592397633425283693393684095124006098670199502133715286129572917811457925896769818249266088543109197678578295784244375421630747809569260913742358977834556688310440719436584551257191794542361737219964437630940201771599008466269090012451949358849289200963333024398070176411941815049850717671554056137353512793026581078332153729636806676692992615863561288436666169183721764172998752681613040247654635434418200337986449395907810969061582965302732899000597299844718567385274218622583747451105703121129219491843350789688400713930642847435251822531539873877977325755532506037442714830656799869406219876810327187063374972325669209088343037038160390270852277244626625914453880085263642599101148487789647869228347595275891242128453399274005906996933807671873182154065367849978785124868614508995772838962231113880397182436910746494800673748036492916138038989917925744205019814254041108891955251169915173409192855438489264754768564102781307901314927257247227666026188683383650337575076012781749821497839026178916377703535861896250987383115776782751329365595376046375915410241325203448335113797751756460853783304255781772812985505037577448565113111932301427506590861296293920508879416409199638183243661307303255584711413982191188608152725356969685296842075234508491102606522328846285705482667365180171112676103512774579328716118073676103333718239141723613921124118699154325361871630619345546083892161536879949064803813212754531729923861401791557115661809445828643557223370245048460770687991427833955584304015185755118778995249618819095844314534607081337450861291622970277739349132360074697786432542926619114724156158884759920495212179320065250690527165138002830160755840781238531493219461444966713397868313869953199884287972589791958394283271642121660237234321777836929384390059136268309696109695367869174243357136524720634730900460026409421446459725777899035341762994160454844110447553756111676681405765685799351597225900410884995758361088265615548729655287024994184194926706987168123701045161619029353326933278083996496568324229973018445975649992756120848678463010634701230125476441861778643725492280558311020830761213070114460523575285446657679906576452331753049348468338974925190926627730678113779440331957181706339947707524821725702565113971219726307841577693736545308811000543679046729310994636050577982231370145118809630501342226051777177683900946573124557936243367331480621359181563853012087492412380355592200217235694527961273820752691698098610287057242727790687544094376722803943970058497433886281184162765146312434674845483367404152398152472968461355919900178669999020773844519269245028106205760853356926157724103534288294757547124954796016847043724766377602506236295751995096583339770898206982030964349224355847065841389705448898158584986341515751250712995977530764664742626739292220704427173122908861273166736204962546235766292248409889472057292497765629913199779853849586496069730927645691864338865727828493295363583750053408132412877927282885825080270073765826886646476994060453660371406734631227113374061090686823408752312315243647943339847406502539545061715695275125660228342935711164228984955906769123211413658518798963760998006544006466454113802278354881130217331420553662912588442711111677770285948174448170564714856652888910019986101296811182549082417163495639447387411054359651497583088345886962726164408326924592229024424917171066133342346004087441066124244293090783593745670331630446169398423480272284498960698968318415350670388602939038243405451463251462116313662833024237914212741173440007779117605633159784019482026122045107801516570555212224353380561171102117501238451771532085974497097077565091461264137322840564304189658847914312388971391218388694138723115109317434974497716627394165545427895735314518149286658355878404958900072756788706294396528197688570182680747303296168126861002440419636822712763181123940140590865940008188110757213264601543767899726489741063801035082149536230060693422968541801662234758385923704422609365165007259324893786452325053525888960305112526940410177206788799672921100468081292250944950190163571755849108380212075448902483628828899504105718605319191396885139347333113161710352540236388599543972003743736020955627441848745649575930639814687622369418238595266664476323115474894372994268254329606903188451185841859220524187127193359558897157254335961454461497987072724598923906661550081339614548711441624330917242581756395781396729976375963123455288172903277290371638158389592812852967531558790922424076279192816568541222718160716322325190268967996898111113232135913392989483475061405279677756167309543770612181057725281691141740417115005570021591467763370316898179695099386484514223407030113531534119306233055816178845450891180419150877307834349505604745528390595515118604882788361163707972522559973473821349094100209575496960358125257924162309817816437508709699611013201391769159933430885411867303682225137564488359186886786488513474627050437614776838347854379012447834074907302261303127068588061290165088808489104027102438350721927625835953269286012745149735437485236913527684287616279249674948389976267509215852345136587756899073628201760678455906349758887526716008788372449403291463903130816984593471918592126010343310153102457223406457845704410271798537898336313282077774096636598578425686651023012471809461858899073680743643856677353105727534526180988228642038897617947381980831497768695878759822568934286357487546447126561452447918271135170792161649354762429789335797021290651705132487987581074421792947944474321117782964202477923919570831418617146370168501688367738960780850268797551812415947685223081711066923071733602283468724009327327385484440262159842672830972356327191554345460369081560908189310925877912643674276677712106213759206733332838233965302841681523209474152480923647260399700127672561486032231039643117638974853622818595258693785158681999818818678921033268492093330264984233214086227110275183185925885135906826425777815631181891434101314569365431078397833759824050769555154429488304785228896832911267095920356725371686772341946405575289930120528216905794068756686051811253783116405117238734126460106374532113815535020436624230213529610775926693216578482254947771610036473182926792460884817628380389351747050524823919361292698089306543747003228572607372184776649912175849135051655778564154099216037770265325135338813441892656952241694891171487432444796916328631353825040134659150086733144545077713474566685611847636399340716414117216950252171726582299840525876499941961286715386479982344721865673029622100003515615717398675293526356909173527472757707583732808013991468488519117026375707990597928750487676233962558700822258484824853045798931444193415582188067696453225969274130485358790108473767311531811000661451771153204625863721369732400985341187093870488782437692603819806353460819428481844502184937833435518045222984601131330031941095844462896956048682252497949700543942975820081939614975502202053677180592615400010487342179686612951407299376046119027410895016443684914748862328407316978928861677133133353321143824923853806731281631483767448183900700759762822320168384053269110739992572172507797361843386834582242314876185099158757643835903734290164448570941266381926904006244532551199845302254256578009167171630345318133168419965104651353515171851914224182799475018778888000073009452220671354233034472399551737863819848133675690581313526539185333578849465235229013108499822329273386249969710455348817097168691255842791359002429182335677929143479298850243800635196263978827590883436725880304341025268881423023905871188863758256519448292039814606698187074287916024138868487289643135224825592092335122346138722994837119603664105312734301443973998234339465776331309814852997898444827841273467716486343359592368576192957091323893647543294000310337280640365028846522353532897126982474788793366225968737163832940105151049150117636436119109010459687448790984084615155985797141781596428090874058594801360235327861425927206005635913309864863686801601580454703644732811759313197782387645901808899920196486213534749665109978846348731672306288398351907714343129211381682962847730385334575311467770485366051612500447158462052005175799421794945431137458652105520392531759238400105203986227019340270642453415422594353725158461329554031543079411190572440900533381613386994203428615704576627825282982245387884436598381324452641873392068452936343755794546901984261700746806778433706469009390183971086794302499886557993749130061427583752127446555724449415147811404272857313015322050674050240815796141938083184845032382236167749717071353200800735484684247128651926511676680677313500339880265383706489211446987197506870842328198403793582126954651231612031707633399607480270343224387745365223529861215196169781512502276420218340590720209615711229648727139275878625116608070694360285272735573615458314727169669536306242765402050733548057459087449262502219831431618977633766111050162439369521294187162044997501408809338697564235246902242883854008331560924546580385999311610101101065052540917144102742809765912003638459372207158115292496351562574618803413060376075295818937524941751809562287148987577252597440578432534331051167751716605982582146571531934080710647354554823857053941859798075227958115838038971239437353849096141340920026811894361212664028851310930225996032548944664490513772257209233728951445436843191454659187943928142782006386848327071646851961921422269797692269366564039831627368465173321401564992666004781674512959060449413046811655109522573574454690615506749268755198481733816725888295020931014131790795879129527101206149836769435547030747243203759877969025918237384628257973997418718517545111200777492995179293358310584424246306462871901212357061522159993094644798403584828149170853749342486811815621737634222189019315257445218839831282268071437136144958628476235309738780546594332054463308081767665204225358125842680182214263089912356956421555470493660394626300310479223795680494764400285464308342303839000425488103796171620450325359860649657350661485884525668321507538134173232889463128210805962107610876176460290994607732983740864270150047292356718393223913663668060025134414712661621007481993123865088807584333298259313982811057188329142963691831977056248473905251611524767476430529923043057402160500774302134969768765244635289419935465821269912948954013091342742548853082653882790260758327831975883722073315257560076069258267419468615783646099426863278920300805170231454269300875924593615282450949935007959190864596767296047623031446638561394133258605337510968757447662247286740721198518534871923090645840098566331968259860931294095521998943193669996898693091550951264099389918561857402623851809822812996594945364327921312729155017594636408826988222764362728313611202297249156183869342419290051653569358935225888556780429647291482804762975949472202792715330006683571370453475863249088602690577678940387986062967459367916619500179733045242825707291029000143234898044887780904663451651310415214492689774277185683291980445254002996370738499898329783991060914285937750377147109054474985462016947005507193582300262703940483549759422791096901330960898186604800663779306481196828531385863080596982081209385977509770336128954211181354549308510174626488718141944313237925465319043992475562210554832078655467043849462519755929704395343834738575714712575227932654184493512703389570240503006423809094468752287187829478787331428900793335302956278575255365782665451900003568857818203097237109412701069829826840355014837347316392114406011424269016277469503453782076120174406722446330611927075330220767285663665412306856403977968404693464679237164263235209503317807609329898187381934187379709491544183188673763933902102581703508680570132447110222813295185568084377713401711318965761819775939112181841923894558404797502052025662075629724286180222165121661538787993993319237720353083027220801346934369074909739102954511087657842440137507513326238580994258268261224295249995641179732584500929874666401531424122263096253143217570355161886143718079123804409299622221551643255338780568402907299236735941566582739993979180243637017688997347077908330182385717379057409604081759037020989471044995635122634045027216561533808686273670140985362150948908113454773680254913435728703810932500084137315741343678469023639516475865221868980969979053966426573824620256599229831994107521916306250264301690713362036914833641272097138950809875813777598076383796309361005883797633538055164029478831887605721044538911776296082779437201961869204857688329861878361580072894593659714964964062488507665019080663424214955230969637227431490267862334048278744085854744383816688761380190480835465138491505531271590803485731207446867886707209184410217942328004607322487352655594942186765160354582552120810280596622525362051709591638024952858555771423889348704627750146922625288279339451063567628878044864452163446969650774743453859762037962598720881667931064827186377668624639792342351807479704418976300821048560981701609277349847057755338627244108345302451518651201544860732410529956895207143901587998543917695274087523455279825365280696269771154181610227943783092093835022869607638308672002743983024821458650909004622558521021897455910912495673735011177553195594204193008776575747752950390937416395380509067496613310874304581688353647103145139812651709544816559999066076689559549481840470375052196131498451037312370989422895229288548565880395439075293621130085606163005473088665549968436497605302592255135190064867157145491971194578231537503973008434401558479098565214691649464401885219621642014145970803275244853583705319195824066778904923189921590293460453316849101079883176074181309174581161416968948714006140845011233661544637870850694326902145828948587050929469342614456903946428989346864354681959348608957837691886427504605883988106508525963324947499390614102251575776754303006385577716838052574640539264574124487350679631415380827050376425634008572640558916782974297852271781657435711059039153740060996891304867426984832694112447713834624331520409919636362807817063517290276235142653844072305402929447920505101193500858333314942633579854747968473155151550158496274902767808219386365276275113369042974238394208881194083615432070091976125259771738211811200174592803787486750412940612631546403061271216768565901380355756400738254985971779604247950217605544239795576444291247289098416841119463616409689034331722644578192758079947106453763191652390975441079670085370757896649141288585921187736803359794806601132003357040995080555438089797456072213055747102543762809653857779861983759138103540603357297227135166013403566557377794074340808448238526046548647400963821276150988064651703570944730791606361411551930127304115452477988726604586553885851863216110021666105511235108421324767891336376904672188352180604472480937685541710672119513462067265386969518718131912385731088230548799296035693834036903474100639515336126109683473747506798415598226087869199767901360455976256353344115285252369971243296379688434265595784349116292553816542148901836177981190058364790164182815241667071254718686214624610949609108167806300409297361714263425294774350883540013522158755464304607644119839040952306971899864157873196186995078913309082139955462042193152176432265815632265677149921310173237786409168829313115457393723199796033852448854197506379356006495626320759645501956791592487316275832394458857682073486323790072362396157331637372189619683051925753308112955373896341734453710317366564109506375683256522854484536734898175922911779441195790220217985187909225588816184776808842000284900101619009681494550117854877718404854790730941160813864068570147299336535676813790130175865741404869026023029638690033195672310255365731920496309925183654623720861241810722774206073555666904239162397537701029707169931294641221050183126608621251972133163742905232047167622584387669068974610325180432332604556795262664871055127658404192774751757630540536695652642727182906372789412459282576479292253343562700713974121429764083732325104739975432158621322740793685264675680925106488787784324139265018278422951470853397100085495410395176910084943810982516135025343496383492845003801140037620783608623123006496255175138248398392002925155759475031248440276698038928423062066848703573125432683644977055114538119337766661129352681912358083042802022446494685811222216847264293317885389592696727188871985929882413535195583103174147857373538721170180981726076580150725663142440276177084679035538324166782360781704954346565723564130962605077017979989861605077097149519325368090481855151597475894628872802426564440605326704644826639282025701611616326325135380315395282051943376267769444156070804189545704678308302780303587993122900830784906257445089887564906957183239793219045691709451178393469095672988153438717621744865703652994612816218112972034101600157789316782022649937485336644516685203321290263474038526909469100558807002677322603609216237383913791467030143768364471638417941363850001664271007776180921407523250734521718173662478035549028138609780593875367477106788310932845622827214794213185065306102740283250436703974639746534123686259941350375095067382267454860460099250541007023846715723771917090393700191639482997226655597077650565761008595228313262450025026031604050846056291518723991975029616141597943026466918096309898821491685941118688182267753743389106365749929184072701643653331292599576905174877300088489502999887685835525850531054646672666811801261085114499601060137539497309282561631426830937957711525754353598497723636365825487988586126240881928920137703313219445074993895286835625737620265386280587959923361985420384664960366145266502774229773926443643737307402610595510962950798584363567249086560328380972937282189775894925354951342149797165187060808231790038038081780597702027945793838403898080485365406945604015373764221673489106494747940875270525272675587322547814127678489151947922836236240687344086487731434945374268374588762734294482383556621203984287609201132921371992480540501410002885162078797745017432215037312644931837242946034399549044681907048691435883988158958718329412846410314053286744569650647618534811086731007678980565593803305087441768567087008929969360863089504203003193704964832746812166395680649663823128041605136930026964128351622673844412660677461026653521494742832682085882919858707268159631325906796057484743858029583211683961422018770000672977614570673644056265490211571821151175403332838559785197899261154668062231271430668518138969360321966719803306647204911199307469224630322401702782911689866689898093591981010059058816786891173786701978535481480226944887171174105823778675754483052862434099419622138842757644667825011040031978768363709956622066101927820791357732907773319326302077407907750449474384963270287658551090357127835067864855134364487558467024837292582397749206326815214758812599448414261826049353090871289798582360637539845359026474517466894219074357510729338031722419783133865908309173504997125381997858407319236601057095793807354310816062837583404871111125470305699902229704303241344694586915218030053586434417687084170738347235576716942300551378561423179762576050302225205919886831736150396041467672164009631510048724062216692264115550934845311665310810920740959604189839677078430173363362890367295513411228193797596789854932778649670284383433179583879190461959083262026790446502847127988370585685678394488162532483875007285849550915865644889851934641044915496993615012392198389081622973934369179883149535555927866826389352855485003637039814862683628582100016087418969537674894501495633018271665387358297022582069225414484342638233542844616376302173538991473268826476681834172283694504938927475295243606906228612457866235976478618621968237979896952730438501908860412076743704758309192753479208848620820921680866664193829625523303170548014742916996553776809944039186361192599865219128059302235301624764130670065043072117013718423891453853537929454124438388203279924478600953263240658156126277681996408478826104210160376065608394060857491778372143960421341272647346534243457010040021514586798823741461060733125163410831665757398064107584568565465914563300136406937623687307923796014694806703729961990398322188372489958772746031963143003047415645500764359809291550771032196338811469015357824432512561657227470757643838105932187182291254599442721217231785732258751977202690693059111193214448408415905074325461247663064811039081134495085939662462563447246483027684401991407204241887515529883510342076271708101164982656736108651224787029097745483133103414154439035901227248433568053753797781459575085667155943280081150278812563570705231292779189658389131768441700303929942923962793297613411861372283769619643659154699369592861450135870716492478421503041372394314017241325862132647443105610511531864921544441574496599063598438354066177260679180776150675281059985289894351407224315977039608587588467728639475288087255208038136955698576628498575278880542069473095494220937349354360735864147853317981681054007729037738391219171582608223800626191073722333865885130978385271338712855873604372073165898766176387696489784832223282063028697553369887806086462460359344973756613884209426969779216393622180834658006812192535664089127112106327873707068591876826859147795274589316007603428478901159261901974477815877103461802163971670464384933900002435400605785369606392118131974254077290465495551238936544516516996805014317143583206525604815549516629165139576124353780915885818074177802923501061062458774485937877698470632713572952452156711063970359519652493320889952575387822954835836974040018073517077296760098235494590191083603123478204740751791368743582709186080304239181662633931921263019898221941034069678896886250670347735175668840932442217086324231545718812552930499056305493428821123541559920932228984243006586908933227374714025490164515921480213784817496335581998583397992545586085204129904195513662115019994009044998506867265621435544040013989058529803810155115808666051134077245084188405612216619684242966439029147788844361161981959945334909452281547482327507831283248736640495790584079034096591396577239739106944796223050982716073424674228960054421615483039974527927349102560078291563558516399335222736160720893657864815059184299805741546969265644053604515702339615413962352868194115143372963159959102437096955418194633515865568188339723837367032103225167367862023260142144205896833975601632337341864574799880718585543773671582788826156931857937317050069717686959697618761068642546467714820434160920948228125769827600511048180790591597027908513628106187958922556199987416522942261560312411034461422287382849929369193787527711939143488123723822632668284880180603999605257234486095809437812564921177513576977380704680820571475080022359853839817661777064272354268656555983560437595620218277949335455849380254304262897415445387447925126501816335533544195981144030819819077968736197458531602046557602527839856276227253940673185791653097841225276895678912586657036697026436361911457476553119652840566791010574814178174698610455218698772665957993638737285487879230686381371065750540205283623673372068494685183507914990080557646092578368328326337468845731425388095872816173020141476299402768440554874827155391620630963513753361906324527756119325286647091594856352107507945212129195642515138234183743737935141130264476555855138263168533384005329321141877808082144292096340464105917792739613259053756052762510228553763057999505188530298645847389295225348651785213341698686200331532544146936608160375635558145706590877767183320699366952142907186259264088887689272163742214867614764944029610143251911609427593295932081127043248992947175519903264385141480871024873204895374919139884039103660369258518307973649963222310745654224659185800279564953895831334358369136072140287500491528477514136744180665797722874528608070788076939744619532793694963118442480544698257015287809967772524396988049775791326199084607168403512960732631320123281179434697416131925030136356130215503769086256956064081914696518487219983130149786086550568418911568238710695052861283564409287230485035159043851089710534361945233138932889770862784252066219039979685467758906990635883280973234539433832622793717433001608986666453050254743803439776509874290515062695800044846380683124213745787130240966414889294427690227839289087176253506069979473709187334443054151457128859136674961608765079660365531793979364621299147310107666592581953137971734115356020243406431322373637166968533572376465950100006823220912856787510766598860743159125111701422554539300026155446984216817451174613692587473753361567148573883094283768669868965444518063605447779793802959652767443761644790442103009165721592573167177902125007810564699145597641929400667882115502440677099187979317661734499096955855320348981745436521521879439904537078641812910335014291946892175760780728168881823409015809113196373006448628965136623203632759250553360200858381058769438364521519197554845583100843152314641390828416393318029641398718299281346058861769368012531046052343522226587866476959297030495665631305687794865390150966857122048782912399952309974227191504583154357391651548484078493791962510659447932798803840503944577055636292109695076859632714412300238524979920179526299238948482661329569288390180020870037114621958181956947400310208834255867363217240383762305416856199947880762026631632219507165162342689934349117794383346460839770386123703885478208728641432666926535796555211519916752525496001416143652191898673371119413955136984440761232871111298173569885884077241316672055765446985670311933627594731346668223907870629979768835350294782233514004786402968772871186024580609032452882147956197465156533072196984553489902715706410996921962523438028314623500797264495216954106372068030237650396731139747073064675761640412676429651986881828213344907852874840021352283111052670795481199940513745694428430147408221247329266168950337962851635320228165948486895711095437495214880349088732484073248696287897916779789079317081953630368435349037138340967506479846655590741469959339179220755975059433055105957103559967847837463031473464700340229760483991908069126950321756483693640625876316587791652102757841122390235503610464085547320449545785360145169330314973277785168733430827802395719865322679305594308997377293072158984749938903790608151654450039223437488084717537294388968700930768359364820005068156492035604210740303902648517476789350906098872419614013585050007868139715816351199575103286573892224644449097001144371989709087010066540269104863905984894764538314415521510718463250085960981829424912568034717147166023854066329641334548460368010991244536688783660052026838093271516473078658358332688229396636600464705063058164674124403829794949186612020725920799024989286178506372699609841349367454950336567351122208369364499916966619754635743224231874116859537943854087871640810959632754627214466977675587063421885855907562933509549593077571290887101783995132148396770238234428733269857116206114045985375973992314577432345845941646223374143648147018620733432943103284571365521020572677662201389633307816952692934193255059651713900784027925937867833622954960840716091137663893746672791364842879754328838308787335145212155634377990028238877608837039769362913248440340811903538078003281235007587422166667600260109418668647784752235186506335099023919111765865476889134525285556371524435641279324792487731252020703252484793885618981351210482373643383798005768290665987638076412553432385298914986363676349120757863749836287036012855880244569076281456881553278614924840495261198810302827574937701854359434246165873445259716814386921078823566468807396490136453070470126264127475271442045161175820444967591791695075538836989982391912106728116214638787989574595881076051779600556576354894793520665980493119369944474762789829876316573784741582006082193307914456677360854534695969401692622618497615557207433412810490108018500240834795696773750938622558394126157161364205653120830578882569286855116444617756174545134857805113026482642033910307183013293771795504551254226235788579175508471493132455502440822795896244402744418338738560599843969415488305435098506841630650003981987266319814788653231860868780601897578653023428011914032348682982757438222625478608707464093326370232511598858888104038192982448297460232323264258945019803723449809239465316180105351814667298897339271487942799227860578071463533589873155535123799060704986712588847277301236086452880911677117416412749446595648240101970251817661548884015354769624335910140237865204764491802425046859752572776408098232284273965540775178944252324585574355367142687828095290125932987904330888677915132541683863947977607635654840048234076591995568190987949164659109166792517442262260889094632381054920558983293028582714970292557016199394574391843548932170378919933870225906925432800222577896297892803171263902955804776799420962484823101748501955748835753434591632990775568130257400558781587617160931410794362643962843748765567796928893187414493908738554077673208343629568116501924357961643669009936929367722775158387286475103092910237545941164308699697041891905017828808293371335937767537863032179369304621759220890127308984336612873834681351000755663577756327121114907913800952480079244184262431901281718466645768229751690238941418941196488441312388538993476474826694695051344394125183469656464867563233417164683138295330755652052200464837333910115476497364334031438269230392501049394746157132981946597007483817873558564151830784103674893025681155261144316559851753692061553391416842035512502580788865517302039942939143947375063261687830535213200106317587408422473612410815790057653071401845998473421405195832727902723914996284521576583448792046796334615276496023936208108552695247522878729851956559985686185130788850830654676706602566582031133600430319409317125711566209812891661245109467341086427827023618652658861300557663983167221833755739631587175049319469247731435688406123085911985838637515141989634378099383563400542355510728778845854448725621932595820456979172698555002966054338225134648220659323256568361361105257128685234212041821647431355280839646497157335168212310493302936879884125703740615789610779364375168490238223178069079807073170463797751048356110982298571628378042727098022614756332482478200023198314416309723877541173772689450265380522966936216050742035011578639703670471313993041386124017007041226730259714036697085778238394034197590786638424634225118245773236220988149374817862086883868821720075721072732711625007598211382956742318441674763105735518317100670442830924259323707745787583495316865162959402045458407445664068023443196421321374898065965802666065067514075703473043824354520777754587434919372865516820015663719941721168157843672686772835581305229724916186448743155170165698771588270253843650620792305868982423832298534782668188123326304698185687702415645853226840059468374274396395682259008396425417389352637767335204786946206079383440656721766158664007581831846485595462494164206800335632771431244301915918167351384631505419229098789815373452112677788376067653161577728132452075319514104621090422917829111379435824533408504991653400079426866639570528026045623395893215536210432512520243929946195128009115941190621120344381921097438152555209737716392912531465134851033157660768823104683101317337008543876639153799317786745916529216561974316511163109530154994400265647998278034121740859834065807549156251494234918778901974098304747888388953022090566104215665887543071275442214732313764955914061383946577735140546332229185897216143165539333269117445339039071676121872792813402432093881080162938591152241683406182243118418719556742322290535294734325444316763727506448861310878325893249684601142242386166190617245125620350654785842771209251464824306514002536662373130312752803568252649370797295913612148311579243162850182014437096587415608906580011951102533206839413455115595705988426980792834058265908882190883977482458164364379702393618747882561050066152534245186724770826016566151980866831013974843794425215597466211120051906750509155089184658593953343813466597774299950346041106147472876749909491495929780463080984210723914120459402400893253046400460158456216468521533141900198656015532329671695155330469646972720054474968331354486768197187025234455269252748113043082968166204418675663251315133830445392886648624572010582709032641756423744501136098522646175342105097925300630020417969111136175822753996900759410410731449502169345097819484565080911070550378827633574781651354788900463372535334335103685277851161015632221437883699958769248458863259285450338246821008341686576260863380484377445955680329189931063234858798619332703323931110322516942965586232994492129167720075374476807389335407096411658780246678180855635295429215571910187533935800002353191269064694084356758379759125040871941564943738660949686207228924150522822138677937485115890549518605620806442325068946507566019779105190304774449152828093526482697616275003435617697989661964742178412291522084435553299504158112979156631514264466387289659235583870137555827419487216103685394877665455277211012807198214388333450997276932043961415360914231864454808981551411915478172742007231543900114086585469266928619463474795953475181987509273519366726259116506372941203882471081375361689313522742816620475817155016155835070911024799379021375602335367243408822580055900687479670382142864008226199136671559448324703600088975987186183438561599361379978132345615972458490626345835349339798999544884862692156554331742798494633719926668071560753872802843802812115165322520542087043675621680012814893541812781496046825487262131024711379152790864923271397392288992640475626615508645183227337773521465936136682430990761931891013371710144419838881748539908285094169513514988074529686203389759850830753319120559104544472960016100177529861628803721036084206600422083670193351567294297202821850692206489199342013682683950323834391518139954502676759083676077740525646878731096305748830749055469822979638560353723173099449628120524850033125228004481437016585935600361701504871720833856464566913518177774764917638673394119533909723853525859680285418979562074122025626463654476177209117361816943917396867266367613581031572090210750983016840188706886373103470235842199399231473027575669131535304943037792105428603016382173010046851237908397073581528782160226459427931146563141884205873833152176260814966718219828298279210572839144949398293367694967576207327048932866420942255368365015376242218404496134247810591177254394912536888943878942967798882418373212435540141996539775033998597445244874041511436582594466575017002827554141878542717824468881640710514830892754790463047491987470744885351285465483811764370521931563003339948920784213098290773584839555309918156136741438647314592043623919399700625066963351793701748327299793440563524272970667718067275960292106429203763417781649334119929341716145548009063917005868398778008837560794740775339126600541573295050405465388670821878104852486055443106123411963805143198892174749703080944575058177374678211868942463032948499209962180153965816444816411341799124650265635282615985293573686426229968556118192466615257000101527953057524067122748333652141349287787771937357817261601974371658451556081682409157000580635697617484478121559148599202361981673544534953069584379676085465269560813339015041674936584530997398366488814437366872959165711077576886295444339452660460812975651335872269550861466037346990258944019545337979648439531518754078355905440731157067383922338473065611216997779304074612510635252487677114392422337219178321840774800836598092026657194868697419046478337231139488677022200661160318662906731897441810783504341709209147317798348904554517234234042454934313488354770889398169142534797846210291256471810918814082748228652208268290095728466829821627348378898568661405102345576404638739352166977180406475177683662061250298528447531689224787411934836028532211959495973059859342062359360741151549282894367909894921627230578480613609490670094478242405841638186094441394780985562894644544703255512328974468896654490048710382730021140137861507452190989168575492332340659255700015255215052358447924536236378864988267559304720400184803181749225907234137590824289860746884374191456502344004658348111995307046255254284447435710003675455861758049155246032497116116891929454913277843711894534440145943077591204809624172258206068737265357685348919176786121028010945036455720175833038871569313533447119223429442218712556779743081462423998207643171327381691390407398030904616041333081170366997251033987476974736200807474369732417751446019661392924741420973559283816853259166401368129207618481202610226592450368990036620855856587795340390230381062197445933755051020656156157190398349313978795834115726466736608394836556120745122791432228586784000632981348267298647074475440488020394902229065809963596482057704445356790759341882572111218248287437090639133329608789651022094995322365211509777194264802035916066782747725974961369722257340398215252909651036306317863535635414637478753035806268835587358181764251815415313298946167676231488264486136524119864627264318470917417287924594208451315130429650376035700007460081646289890504333537991397878352210646667256994216438121055406201823106777606608483260437509483732454106920332209949997071887284025060514407879982126592203913838117471352440623076340099309781352757473900603724194722872085993478400897838682807711430412546873641883438668996262733334996191281692520791253118798094643162110838136695702594530272048442488388485057828629205187596330457010537138355042608675324367144947063125042074770147870860722137244114562751600868141850995536522469999989617210267868277422727705320034200971240783981293771454868417787189416621102057867614264394306569462533509846703092393128098318566187442341170542849079616478387839646861343470310759702581418149208602229328440152540806514644246439090882370024313331985491276466821431322397566004898796160354842545869903269303415291767411405369685315571437728527373721663166372600142920742294000662515577250894547381915727415526124453141478180288187064324547389860714052391958510235420928213911912308514725051634252949916540736822198795551214077822574145762983273405326105378418994086338785146584206621796299490751963298683558681234037908894938241151945100643594106752334754770154945711229786781364563679370222043296690880458708046147985908588916156649905980398091249170065601254029455585613767680273797736047728083305846611238203075434048070674573728483620429276195906751447043645204318117162951042431841005687757093503413816119853339812066186535526726695604743618065728951793538543602084292604464031322983962591633095093843373390792767301352363865307694735131872006010748425844682727397893535915062060287101870429455300404594723458719388616768567905856637896793630925460256333524867060410273898579301026521095996114868827049020002782744732268954611695034443532199947757907790447714081010585477097920847180150008273844772990331434290997176526765551515393653894776844373545985030358213017212775769222264022039673676748668454977813840066929228982788973482543534810059369551790814610884495636392539505702315607396852206301282910459048572311454763976213905619237233412975412275838601890873688500207801972841018380919466832804219074093819959281926159626193579862994049266024739438601167194875309792656188423808182038684766025169959341846986828606850141218305901190965430586561410665186208339333903337192065889208093402317805700035639272842761674685469447577248664774485913566064116401643186457738867633145301181644997753409602497225641197227437034436384879443543066682027450156744821837493330621975081007882810446862848523166510848731170245070113800673499413757678007702380660783392069310993565001564615167097181680913707268526978579379278198033647831874690893748836272435432595034218351063663530835871509218905081916429763142236379120391400058033433204296068805253950494597680014592599038466676200543283609398336112034383598053182029553930135507174562579328309490696257342494438496877148087717918593875104684577622829130724476560899572855721533822620785065271070946538070603726379668229916029447142568270366208597529603990132372541518175117233269926785480536568099525949898286520436816634916828501560826740418470845895005868653466663830073958543838492722376059971585126211097033118809425433544409530757903499948705593182545915873334817399816353936303439632910831035290908701622082155609764845405160179530408830758539042984823387892418323836348540965182281078626592763593301294571191268383952371631760685912637250681829193229578031716651495892246897875513885799658420395464511280971597129140573443306374307307079856242495073424168766604228549274474324101930145619112748604450581423831223146736928179039013635349118900260479255573844974704418115697348990705807528276302129931260147884775800059537229950641783547230717146618925707700061019240990454762550661198531359276950150778092662752647821680000859807763229875162483012793381655822030702121883163158064223348294112105082630884700797413611261548378404108869387375740937432282352338392757183106194487219907452584642348965934923339966195353212466558467111787342865248284163702909999309554519588946192605994767970873415896033371554278534823032652337961535326222520793585322745861667600466717227617966621746618514514451660449077275076085848401153778723986075087002062685996389647956068249651585026039273137808790483328865390964226625277161775619497170235029458639659639679757285780181249161683573795322479688782914296527620929849316795336805533365519353506520542851083434488424395821726537187619333544078948360371845048794487430105678400036828529016743980255451312074940646658726036414146629802249258389808967846985397704067024255724217506576809350040576699685403381780099341475080332186035234256237790518607131525703524082707633569182275859904657817890642307372905824168585460857437469350017773551614171843083138578046791543792346083481014793412699935646232083927354040033461564551277392206595628120241002156980595256193252956304601647849879758997742481731095040706553671694333959887123089986665162909409616890728702718533067287353875803220955220152416521750963853728119780225437785077786327052922679718858145343857445654060114473737980471136284874325820750489446284205776092140680888930981401374733043849159762523090772185051253947085692076342760604478843007136308137765836195955064499110455898868702316481518236144657454229089908525443504834580855933680015413582015511550482672109576961818533932721475772577717846608159455102855939559482445275968155345814314873994747083197572498448291257633435452259144606976635670670812115567640457239183468729624906831471560143336614738907284756463914989219390222129405679191616523804464854110059536778842224764440226962693442442631465784823526739251122760597663415644400688000404528997648666163757092027643267376259319759055083647915562009566302057875216205823810450694050562465948403817713936739575994471456860422590311620338644881500706338944738694875125393945283021577519625646475831034157192774930528019420437659691593551766786291150832801860377086092807623787190262854988881621968717600628772202408222465634821464452427993661379544833574800895370846556973154337415736897661579790793642829986508066697680607401475091350506080624525942319487381690919456252089148857875813062296978217421291603345321511096506922569527064965072483391835428212656255337596899549355521637476406637981984819365264646872878513483507292323883715810964905264942929990628607750020715811167588229638996062693290969592271750997033732457798841743590834655753163730006890498948118071649611111873561323532976024616384282858212504365308290557058218787032883560334564327134848382831870141539376068119715464681950291188524955899135614327065602111492502636209614028284804268785930800424644157694481020188969857356103524452684967646815546709434729810303369673523728572260733834104094838584746116484451406564578647467873383156656791722707939749956324609318241836065271475936952694184318732912196438820946211877776807264749971473705243023797836793567058655086877685978433263684930026033007329836547338468043843475225113472044510336707258312098639204233798396256839303630053255416216177819052653056654182406735870213808725815049335009679149830130319408355604834954508097957339589922504331305111308726121130036829810932509768408166858422541112121480096208595732182847567239358762850913460929957367448642707326748494450790781583736774412277907424443264081975831805361733210596881665228907858264698669548320320476801809333225894289216478739239064816385134040437217699827289036187603538685243992411253647858355736413987985205892064609577918191090102799294466207052902821547208830486487868810082881522582125081789969535605760523177106274402810948999368107182850167660949089932368332932363616071712725140247493310451184118975860494471702611164009748862755614029899356490001672461223415228436341124610998894594101374033084703019091849566949001774322786982367244617088833475975269233965977995624768480382083704424930136355776766541874818812131690512637318594430882682563792486581579044658450921773119683078497454868993235649758143763731175304520089369205881058521938778942816108017024323065162235347571494459227919895095860683760487274232880920918117857736626462837850441895405580802356225366258432803775417390021382852822322300942650909287652605162804792359048906155131025780028573140131605602594667393641575983999381190038737919968868952513421108471544451501624210469453048270008585921237549914829492055822175356933273678351624037487819380392854816906208493550839117242744613145563798006125740908449916671988678979846770581349139941091897347308942552662783572409265948637655000438486412989794116770252531766577129491872743102128163087353527326775632776291915539887172294078846806589216778145551238142496090675414055878691790308603653277561027349632908811685545784150924697906142026785610881407685707742503431568432196577619822130720292993173620744737103323391772155326616865197169919589743602589184439948250387397540157050426165697438323955216162156685374876953606112057452900895411488487044424088946910329422789846455696082904754493687649321328049736985369092944418201304013417785252610779257967359237544804719916509342038543126982703061778008372419834533879029954656312395192360212378578212089551717207479521874713589327548108208506429031492179062786375665046492107641902734959419652594621609072440328001677001626441402110095284778831242762392191021253374624887106983847004382298935385977911708189729825368984445817448458250752655074202789472672546850532410276726112300509736236383523044424825965596954699512932977608536405189369134554093069726698901564796655436992000736341201896142654603259726915690128561343963678608827566244701703535806455577624955631150503739997727850338539918381203181648230639918095800836905511397471543176983318989805859769639345104335439824736135609575413103076268698391870185190909690596150134970730312432822484568420590342534833310782268897769360201334739961619809160643714196764470059674334920359125333635766813418986133403813388535101718646847672334535856395577262142031759850140948955338908765629120234056472961097550813197469528445557737524591043528808271336466258966613551210359558885312486610930776546055176628786505139807258166796852864128033636639891502063677410725304438461355980539920227341594947281957892889360564400504958828579928259871538219422525929697144280554980222761343117703712538023037851189355938480248871815978015802914483450350479928778298805819809124265395705548889580600165974523603253674034485115058907090530731825634645680867825255323690936798010795949798320001340927254698654805610278993108725909830004077541952542663354578848621643356934583940648687317977186541541881664583798509340908480934825069980073534383998032585147986956761968845313937083893238983917254477261821789206356359916880093858487881232092221723380824932877046656904895471260960313493221112655219767287531137803401302197645760377252380032878840960369895398270459845394390133581224344533795926517185819478109656129294962707214238666373907495488700981563401046941120026806826016560142953672944534844043318155722560637090476525827219049917845191471435492262793190063591783749106772621352767708668536686836253391049926300981598724797150153807603682449244873956153792447907034468185924139393673078262247767362259335629472786489960281270426771306641490166795963686696545070193272767022790790154589794839256600377648889166037637612216508574048118902086974215999629845841696002881386645448497038028268366033299443806844692969413609684399360287868520352924462581785459208577920738539938269144557972002470884791295542059375900607564324621664632255559596194818739891354988831473000586889299531874003426787295744653246186871403343277827662640497595071014164686246581835957361156068126261805704357540389330536973496531964596540417183883025557246402413252601891090696781926738583382230372465229890351267617520331355687507923190899859732062416131426556541721159243868097245449305795769323108601874214307182862052356023537105747705665171985866078865619747567594351733748756190332381633641626050880750163116648333305162090464176258508319467546268066390540518609175477439491301063328288911944637702314036726645240381198507583831094997035604570806114028097323738252294301624436849898037571077064271455331659062862329049585313198173434986674139281017902953385244919067145138833058252483157134268173220413400305081348116753167217012975940974068867738882525058444100556249575347304870173571283328597838234941159590941254292028486143612134769968793928518148392433356278204477923196551046241603294348683722497747747932440232650461496690025110044488962205078118033339504020485628285473773482457058902876816554786779737020247585431253229959065088384827044565575015824979515584286422618384905546862586970812151024432501136706713245565905839144893781813212382199790043470630276045631537120806560555595276811121408349675822458911605697694652493032622281285246521718923655948470798959127316165829070626960077219025390740786901736660319883510415165071421406381457284087840202513645563376576250404398513527131381107818321213824374896346396815636577624213664846487315237890214216145388444154064129967226830895189291113322317675148134813666353324310896306387289398341343721005241753790698185119901779197705133129306414007679246176867287453984103030282619036848259375212959370717988376333097584650336055012325037571367643457295850520385116663437059451644854229008017017111033611036371251038404634532805005210083620905157481695499348956970807196893433561452411867570187431282276303463480364349378972538371274286784911330838512578328416290610284075977502400861361115336999944128422466763221744027752663224144410659080687962171959584858438008718248638249301946762447607309125961228981090059498962472837858547187686179196085252190561963988763186154286174658911638866044909318844384607725341766791926329064364967286022457932376223484040274014082009651442927598603151530147662616741113633580247268077655224421970100237415993045830197764081252500839811099592616865916729491697395274124956581803075267887899810394219055938093902782738458425024881069626075789683931656142118072866681116924153971034444196267908352300557293028523455212502257028956776427280107813009105310569455725106809912320446851543498414225964233378278725151709002952805051241692069520117612385713733273504650156664912049487784279603810467427679122060563131913071799119909600778625010663324690299988320881625560725463120569533764818605250276766981381933966544988166517359106836144116083031369604933256295411681859778730901509999011559952832834316756903470348124155764609480975447551214948240656536667587134102551954798505166302598031511873988501926769346826917412741135045413342333961168681268824479436545368980926850974113112770839377604185007819820358536428390628087111489797038736572467711506083501113800303419027218835878693247491512719841043009432949395437028644073422726598276524055935069216569101270788032031458829625830865473796730271958689414581920262759045423676699533397178117013946223048532531942699005053141695489722493008770519860492100920309726776145272238563857704649648371977351683233199421414468197520712831437499805676526748381305236363782642188203979882504309652567927515108105052163792356622042626180129344801688344512461910525920578138398636038831411638893606382461409917197272768065421340539488403938144472067056313886643235318290793647186911343599046320397374305551338734550473391197222356596386150799783286967572853134550757716169241804880088371473157639903096535304709156568094827927167122273360993881935476029953946517299942247601492858777884867513204038802271051622292899915914179774244051236539780606322640269567061987725152062646201639497034156945352997372355408180875064067505547970283097261413726822052620300749332498418146200102222737676982535544427641395418560842681411656277118316000965295741606963591398731425170153879537921155625488438985154958823266429521734882439175656100731015247654688279032142243875764445768123554484751977121821166526683122476876201460824692028544464273057672733120061721585293201580145174268906663584275879524558385721602871057898940566687990451947686941520221729018506746489255038442952490128015537076706204454585573713966438119651272623610839193517641669915195533582300216169588402873436676031104835611533281227974835157961857457842219796271897559965520237340750798709057212466774657910863605012704110441635191811093658734473496269238371911343091390185926100559691759090033348923756856131663929347709620900451269110969586100653912822806300053318036944503991522303676425541736280650968259069980932289923995333754131738933699268360663588771615141704681919187387270379723924134758730158271101348162577122926856190335851369428803257154109595055469858494116659301666695268970523456699373650407011368624553708612635397111783415118139315576410188890713300968912651320593463346948687181748706796048830720711014384762555008429893011287438533714174295888215140227485412730159447635761818613319297598245782418229764202652469102989137001978409750532876326346993508219828969840298492870070662494637976842899834405414888756610009155888970466243486745130234251991002218878531439618411925523932876893175299240577495119483288944504720915382287315211044171540379774401774359326860955118260973375894131954384625573366824770504671274049809677905429588265738075762720307391098391473214963173223573304910139122533455308028557313062121841046636546246404033677942110499172204394175370942305468644261930666997819261408116778465271821384136960111925608090375201426376168278766312133489360797737515878802341435241986953917444158884165660079078962045620895216790543811260495756957420595017196235121857957115704481138768070962592561015027982784664945175812366726611408304761348701544681433192879954141627858467721414011822487324131902620391304343578286937877495695328007128680777062764653552849084957124664949832902002215237374863335561599803528080802776500718867885516905246882744270627252499453641857263054785274268444831023649351180621313398459865182283886824613327409839851476710364056559517781588911640918279969015933606777898530067460704383497039120124246570558895768293889822293185289016228512445163859144501016408377529090040899421130138046374071962364222225341858325837382967092756267880944014990972794721474473494523446954356809819695016254173515645495520420578689633838154659676466949161370134170080366658560467828120671110484899144323930849311150019476708943045850286810413031359759099750159575641543117794253116712911836057509274892859308235260527063523803310210935829372438225769209650934740043982222235504651008692715077370714104288936089405251131711476469389313449631192042411832829157538475084995247914203963008453139200796911442805131162103148611861779865708679680801211843107632419933779248245951927655084091259625038930111470043792730947171363131443787934345822007971814820476654757275581629029789541014155258997813266589962850590008810710883573580540461771335093407415199150081156319863702866359013950239470139145205438519854743005990069676726537963409462003218744363204021877116024783328956422298514018234043168453661256825621627629567027266979117998236519778671936485988623086251438189979522269229444359052025433964416389467397069042286264920290243652475089348055725024580358351936959434020732790740170258499546749358773421630005765079179446322246122959928340696848311429992844309529764439814961149061271250083986892400445431093289772306160887019086042775402713880896938282301052526776590018628367595821623198357028138374857541534556369818039862877124162439496406300179800897067100126605036253507540613946976657518487043574248569761481311050168843033488229864184923042908216803467566862681913839502109351120349878687013212603778646564264460709158120887253083946098298601218100744793039810814352538287424976958673422197930380453979795579586481820778901688079955274517260024455584118420510943419700122160414177339814544808402592550036697141880504754030502241487179428061728506635572892913586994260823872084674367187247999345806243166010656369429949661751014206454550713938982117397260009642016105917896258808107412248215016704263099224220861223240132717577683558464502819771017817950965027477828131390189632804588172660233804639605736466729724880812838518380142922977147104373696955870356228958982194644886005780586944593411445031105528707539368878555823137770350943878931404885237481708163207636258940606484864764165349924720194870017398906603897607083312330254590094411592598124810832186553983261211013989237448609121033984916462992858873412974116828639593930711150033096668981019632541237240262194685744191460998765949470205279851567535303780657572969769264155038429987980923787085853693025553778952697207578890031190525199067548646896410405561452259771732853399363404589171049610618076527522224866822935205275473595519030415351110444203841037891709279393401207761466626403806368300901885500763278541745651136660979629605915471082095516352434394304218330081401209187241417634727430185960051405743871559685788771121358340931058518599272540003381566334937478481950312605179541419446908675727171317336951023608969153333936995192986083477951249049764920741184620224001178773711807720088488431947438938093411199132023634951898225725982051804486348025851939898403015938175538552510061917347121026384007047931627900333219340875045052516793572892137591748237765253684185516036188068508177387135603577082919288070901899099749873297243083862325787357880278155420439860134676877926771594706479897597140114824522982749817553981108278074267368716233312239982005203219043003015170599498936907443602253906688537813046507563972603771232252149436377341458730300015948874172359605434864386157820970903736413659929625596777990409603409208452386154033204864858184079936293130913901698845947025166925838233077971008052851394321367652094677595775590725060899081095617223744089913925219385193561152858585776135701783307345032420695006406048564926864631317046766472761516294639561451450082078337944199586381339271558604894449058504152300386813315605184732268166497334634818691034079842362301579830435466021839859552816374815144281304342109078851264625677112305027485122558846092581346051509911494925917273000855300090662366006411145020778169990180617116326350707114232374031979641741634990132283533644107819102210926116817548810321948001597617374770699245626369795387938066350939063232223078901637801709189021146286057374611463467069243184010813295982591445358894804352461805787156996407042270655675862025712228664734653031984574188594947379935835908859621423545307283389279193414111437919768514300831891520852911865487241811806268804816793809839415926459296008142259580249428176004146780679538286011116258016060759014169122724614462896103139916086734430294254875347777428302999660061172690586575835771311979060454890291849948537120674296995729320024929813715028628478392387275387946909725771679993449626224716838705726165644271691824825701818049478414414797780737994539401056649050384972832109186771078227409635165096729643980419109992034139135236332701379194853634069581786300572529272949674108610089481237774937846951746187169069882005945538413904707608471177625640267399481512120000758059821897976965734623221842367217388154088163175381812973949310693088235809520775571702713863595899841628671125305906071671377840058227316053427197642586414124917454804361320862376290060218468609869238863715045570803537041990059625874833029146362389292255557913719158627317678742328779309563595218848415063229597588082154563817461876917140081939722515813804026374282179187791134854208325373785073607030381745062322779415184863486090037903527680307152651881784784474168468700089134259590137079580760797813689935435609254388149182741775393311880656806761195582825471920769574225585960884049111170591673798274538113938281490855913746209073975211277086072379418374552892623890432086217549284945775809478032317558418899635385191269085429467554369155851567690131175566397899744802051351793564571729883283014453475375758903331753841238090905284970198373651377480860279576909484683487720062147647294459447639799719381874581293131026055544540980288711779767895910539410773567087089762720480565664286011132667279673315309422599498083692080598385441552243952412833273075850271142613178553763295078137360262002772323706222465229488501674806475719938325694700730737400009506071607652443748861580026070869415260239594814070069539418882675582215039457564313527104686661885411817903438739798823869546574103417262868215924728985149869548031485528976430591447492647676136542839736792947803402966365747384631488185566738337431325976799525556179789640894310606244994013548975342415491100861068386624998985480302172946661303718518885981432048702250549397628510594760444372276229863808842416945415084465960235652951981777255744519535469150519732126360080501530061338677353937108977326645766263764379959635529378866497396272376221465055052867269782510060112622217940430726902627483882264103630298915893596628882572903778367245320914068688803793849076596071309892964282968834441890081494127898000368127558588736631106091308713944406740541296569034068197330512200581275532352987334034081530120195521781907565032821600887266152828062807916338543953741801019859536507794906911453501108674968964140106771694806574093980457597084696219760290590776381752357739131633740766625768111027149398571546498537714581711544799839256371456890900769500080571611524894020195597253466779667402343909509206072898814607069682722661527451515063853159004745419713602238301937292383680390934675291609132069343135793005056018481535615229152306144921079695675171606759961458397207280888894809067454604966115037371033923775439547483149702209636030482799619630498647957929986230474683487291187152085486903629309476722138226020865734359951970866381275071978821110280694932000114460044377022312436515984617194639777889246185178180435761723720579555886020840534428281497163167900054187308343098905581876653183452767923720991177231333439543229151156684244787121554036588060756577271249207588012981831242994312573584418686288897458647283525744164941445657110607356710890114834189670788172162078430420787965976078605559270939127981761245227140513697726714476977910406728834115514330997865876286505849748702958250575618540676678084147543887873589980993316045301757440511935053022604945971756791345009734227322053011855635387841277020015416047629432747524080974788735186842182482023946730367258179718061904097293561444393007971842904282301538801426329520865829081717184796460251860434068563576234457487603552457504098702293133247603160707136264133726859288825587788211806372164758211885154693991343573089177924949320353300662634816949373376219080314339277161256792205735872088526679022044431360013189442534760530774572023974194276147092927869541032372784376339168188425302195094374772519633771386751033073021758879567995706746482370182564654550798162004923910027669322364257171796069932780140074319701417653503406652693129513438284133964860478042093862510774929387450197933563555584801400339464159685105831568859849250597615813419800016943611893630674831710043807416555357078091592251311836048244565197199343889938209335900367093415276949009176133585783826630797827116194245866289271446280709123763613859897581191329553813081767902620098035577339884716270437339324674074453823629059990357374234899631444481754592366930394752123064716370906092156493558277337285433534190489267575060510343018052483886568146789489014185028223137945352405199172086125691666708001376033044739279935557989444311487687558439300238859728076043642860072364916602124227740561421111973780258066740891605202234326533897655081621281345111798061845339182320845405740725805124837316460771710135327389064826769821587194116252410752091248516201342948907412211771807965293628930977884514626633914198146642561455555908345642831238075476290257524132129660948071868546207685050343921647620037051769085641627122846344356435431457123811977646698437029221136431220971618585502045569227686600732632511916305231795973393346024080026122497330026939279635142385035957887108152407749786562485070807134268418699649407924839489496276288415411099566228871730902913176357813799151370018447436315128381707354300552001810550629243092146221536555664754821168370859539404817669498215901897912401455600191939824302610704020416800040031520181831790730620568650497047665321832138165245055933069920949619055327256991209051566549987442624197074919837042254081580830043039305427217359693886078302841764130960286992484702822271985671672400415027461369856416750099316473847599344769696436310522979564468231361516999963493730573380632016286007356336579953195539380138771894603391268979549989344764835012987953103461695054297414019001560065839874875877566105950955735000394126853768717552311567532937125275387429782319669310720580746082703739795826919958385712246742012119459090973055892100504810639514105056263221008575047188090270653505556087371827443764151387495864194390747872654319189773627697927544319609737716410670813909977994518809704603994628535880467955144303423668470002427680362034588727975528152373066634235291555718889726890735580100826655995091376324480079406137130958778645265767528542869462878151679568674796867955077063719408859952324089662951214650933860450134441329163862331139856231037598434034066335032085716974679424484243302209019033145808675183172536566294307082591197570934550036222622397264506342558386037815297285408189717996231813291902818874739103868362731359291831478752132690547853959914141458300183536971285585135982998894972328284183501114264591352746399948115107356491563894846514493870817571527975553642992943283675048967429428483659740942460336405486016614028940681668952886270113291318111705408776744872909237722893376014046413120040195474057850648764306903090421097612917948877602868556056591192229989685725839370644459917119133041995597237906683357970355740177867379909659179386785235850779627147224455570315179435653797058268996568923719972238186069979452506775254329825255245497747458692885524605914221435996558178945355704951470397489111683858922183678318351841576481501355304205501818935789146639553160787737631817858076065685268589886424450600643817865326894809704049770512750064828646824587213572834468156471245876319156965666889075783255532548581139375050138743556300541830435771658817757549756275646731743646458057068091511679841453296373161677418802492732628464669173678444490133103790190012220271187227159348006310902336820305781373974602428182721994379772919472775714112385769912164504518677616627244470088205013674184415027536431722456803086021901467750999320901965721429447192601925053937326027336742131105200626790915253395700584435058715752774526867028306664555113225556296449749411677253516795822542080227707588496010895897899601967699141994410945697363290798252671921711866152729801356564069400019830092654389033694657046459016368644726663369700740982302086679620344923754173519069288433259531481930950040056985558337427033059309934990740415614777787436111133806663328059445422740487874466109179403601019760587189463402920862272873638887824535844746280593846678496962879622596100267620071531013741349031446936826611303891504513973180308077154357503983867217356741008611303643793816425294062584563164804680917294833120271690200488555697375941957514690132372451382360007980392333600818414419852891038737932892408528865375984595273066122364697290588299843635283588870684035874389204977238196134802822017218472224819966788756820123948339552228905213128216780304023581401488259359024554676716719592830168915650211485705770256128702745544338477762895778554635184893651571248860179163696926135380406642427582037240410148684246105080516765388740343689221752748238951386582963850928699264336026584155451384516190687330516912667631943242093262366064433835932502052232328733252658863854487882972560504200490581784298264319577404230388956509391402100625493440480745556754157019145623467711394352640842525711395684421121290909561135556884372646143210524262136811864700591892406528005614768518136055817177041985806342348563251871231208010548204790227584273040027560079739566179202851965876433233425524833898545360505544828272544626398241897128559039576825630079477353192178541042615393667097741113417257420476398656821179554304159342797566590992408597004521675954986696725082557621134055816957141825502462437743483223519844468467819870280448802074193368406258211639573339626474353198978365581585858075027062667350456094960817190533407063025541732843046964793032636017458367265385180107431139507824357050910899773784854887221448105379723871120421266138953692642078774940430944912041152164736164340490466569446864063850051399119763119693099385949002799231868781573935693437963213211769020096812778726197574360235434607085144590370247672598576648249869766844374005779342364832807143995559342962614113644383460640273804840255751687811672887190317464450937564760361269796738531759630461649111437353906820921883646927769022431826712934819681293283760765063586746102098459078029946360478374914873656411768772520811434541140999540328040902473932716114610650119544115197513199926219623345293011429376176281205237322733347624655702218294904917620568984241557930160631111473314737022955315892072782013940256173161525782142326733400503198574452276223414594582435302843285680635603582403291279687332025730066424841863628092347323365057413200977384360303292098036768691577435792510867962950182782956451381374143018493871525675415152947186675582636377859576647953747080096599346367943140694949606560483881966105150670021948490193389736952838994383541541640243224965516098103887338736092894204687103147705116920518069133913922755667902882084012867141177431425690516024301635941430313658425373719064744894745300621622955382810045731375962725881826297333297120267166852317507202069916541879864935394114337366283772096025223153879462532525568987352663053426979975615162679849095674085628209666349722401523863756539812046120180209203348793500158061271624925636646408317691677634820651758026378673050661417926736440598407566830501407025977826629635052039147374250769282225745436524943958031885930804770568919688558276330732274898698115916490053581708782587103824399305666482150069360091923607201108281591160126733465805427377543717516040159500973566777785577484286953883986027849545825473311194325595635551043031048741823319133938297311187499915703193825317328408096533761706996533721853054615494505367804793924700947232049556327364821921287246738445995309863126639668657588883612638189706613136003273004539804622446064240162683421285845687702600751342519926143343058566364718443093402415567092462602678686066640438169135809069343110959810301328233979017752010877397294049151850699272369658889348194644011884777569278097548156180244017741709128763197299253067401453127259656651530869017594026147709949372186028476535123918221786723016104117054789131394976878587456700296032245039352543649842888791991300387515061717809626795742747850391809232100899857441538916005640782576866571179074981534996365676998538749330219970930399530080576417178881188475747625378114377966320569690510099373105112547672360980121584780789566977075401956828880456454647461218544681969233070549200513694867202749563842562898804894390425581760987061383791877555863205978946163286187773469169203541285748439948741930939801621521114039139475160972658232099628014351457642508564312396024624220176301664946579626161579917320945205748316372886688157723237427374690362518011858781105496063790907964200408010447908098722121102157776371474068913829508222788158304235503376746947139576680547439740330595159003978137707662056491811537645528827120670717128930781978190770546322388391866757440689759412822993696738892914604226773968879671169445119995769623849463722210370991800315732257824638810499306447595338239828149186496490809527078537208303406815517335041501512912128577771617040457413332759578522548919611806849715885077082797132211947775994832893459376674224659085654452314493570634110341329492555490294900969791802555507132437201509232142702532728695769987314049295976749325946673663334172886777887438981887181632849791578222802453158184402695644457238908335081520690743690599251008958114314830757910730098274134994626579950142918205580648155882583607266187165620727959572683691300684045822936875791569098859679701211457106641803708586780235932343647643968162515548893699929477646463738713713069756830445922669311016691712831727258034417593225114871591312074815628880513269227113156772679348664380219105707756592815034110967549039794952844913962456175237400804656345581606059417463984750531909289103633956465912271728365391728561139003513966372198538905729356868062956792416501785548324626168407470641780901508323831479376025038656530696613423397101646168353026340296021030862177307691314088675650010131172997759614017365040959791983603920359016189217136479054970395869996725517782095445008705844443123435701249079041082916932900284957336629940735317509048209478114605441237773303051340839666661306646390946479573241038678516002255572599004755155388023676239597104653787265278005890955448852779640736230241459537523076335499856426019563159805840494900509442159680009065400390893089106261342030502169031504023894649034764517593217603624214275807662916885971472593917680410570053314442900436927365015568946769470329850190442667249846842919645414312862964450334779459353452034108224195811972925331458260995343555090468035737908863758713334696672342789661246644171876341987066584377453994485614933475510166830168813284772502764389139863691443116889983654332404056790058960996385399418550464174357197979678635327426293103365897644565006421536434757978020061414722483440930442807653276495648388161207653915031126109784315379722092088387692441076653952212642167862694626841741280156212727586128727107188116463330413565032656977264104625005481610820518969006854878485764246596983856796645408027134063248181729384015863830587594156879008745365872210153601310301634268621287101275066242173215909257709615129136904117692358754854568683584656300335946422703586691482948567597227025345858778767838165453988825007542335673861449875069071502058717009385596190449061307788489733853891509689605754351487489415748115914832136802256830928148731149312878460124777240499787134250318372909913917606422556957403160586528763783299543532120578112461760990964145361629404288039534566076149628309105582112812457349951464125016409163154651430357375595381280305808431134797710673653539114606837249120581075943229439378022926094025944463588526515063978250723742540453056690983598243367559382967830184619360004310066317425040242024119203865305579207485257949262934865445681298848567877027695819251881670362031797231440798123085166935514849881147785421015776206905377193318493420311563940030544863183654954901248785001931598596014904421111252970089400730348669094883056818904589101516091817752690883722884886724846208137174276422573457135570291622296008473528326156299053187871603639372548680405485236472963735030843406927869554666035187590191256466886884052440796575551080602846589360047539751470569467622493946726468820595044729034314023033326764798243127809232618452106449957679471390546623297361827459552829859954814471522521819796514204449181722711972855642011686277874657804508922907663239132521390587117536685820491548547563950134977652011284542234312586951405035471509544047307831778523347206259698204165335166573188665563453632088050485935807989514230382912922128964610783904391699348770717604067563282593243913644492866969841928899662417326673352439640485856057527353346754229812068859049223422226495872808837539241319807213597231121711384250651527635095801224066445231370219929931574698902432007827836136137231781302016905785720802254295698690438332659392088265572976961248533797808103564447993048923117556798383549746502633825601241702624380346279835595902718790755613417545464067984157311937160149900034222924595949381987727875994230763431803351579307148341083203546675566829731905815993581015341259974688294929643558254703220324608988806017299662083831564578761497670414063042983651470776885590042994908416730028465877299600455641674077739084722400868146700586612282609519063360853424037293211093779947270595334286295400809683883749493384645098083038533313076261355686974969696989665244554748571310790672617145011949963697078172206626710163403356743833221248854081771997540893132516724461626698518038914414932987705629937339091054516448019478770334741484492502590953700146732924565582529440859525898044794596298505465712896867279598972665841397100477730430778734664760236542592334448671805457060151472890316377502376153069381984646635278686300757805347217559064556031671612860312865618598828738498909396876667980882701992057367685417212367814089499147499027556397096522428004160799296219594652194690701600101554445765710079190935421020756101390175011951337812732132783596731903569175378779018222249784920898038167149373435813777108989328353727157006620498215883608949991177532747378923359769195605279680281441708509894143059614758669171861477909884487368761659096654296853515067426788804055571543227789822973040053754150035883355317515474587665988674962188049620646547716599206261215152756702068228675242996550486307980276257900820312748271861997622605799268281871348299514630464961845054699265878725041440006765183288856348668269342321860645938450995953463471211033391876720537051606328180240726547698359683514501130827510200127310023150172790161306193537899254972538318407758067646040072036198233670915522827834164675206871974119451055506072572591629942729957809360729085765042933951307768043319784547202142717950222429775749427320013731124548683566627359465044941050286663136562337687629798047111543232085982531558359744821967662382053906823816289838475214706178766535961963987950446265748263652622917985530578283860076061468036157249724913048060456533976108019286932623734987055289804051543171781464840462041252717394678971215066145322099944550378897704319212971518166652567987200323194095867609573301667530507500304495018159259692289904984829558740408421649908459300537131128666900625487960996056486392001659286172442680796228532562565510777208312189148907978804851809629947429913664159920871960101590792733026875142045247840576446641790367519005427666679932105136579544824970331910261747632417763039745263662622426030082533183680309476719165812278110629458348495756028827831697897821591896327058422228237389336038714931759415972388751623600036648916569805341795948848581145533603254270419126940618749766953590053926159807471945957098510504572791987486615234168370174127293090886095565467904770036051647964279169825361949746942597576950721652172430690447870602531007178198840614885714772270358157094637203983273336395037304699612111003240523799501809068168441768080748969436232389252611940208121037312316296574785884904185738482409167208899906491996049762524123947298616856588844024967143080124638857418939521214982087156745549798195166167185946973491047548930785964791896091316934319933186025149651886848711768966379752253119646714251245456949024130483968836463796725992914395530920685107878778628767786628083785445899584411640830837758462459857289920129426532316617830476014330017608224553069247992170649909687155644936332906462000827101614133875735209777707758368269848562019496902751357389516920230169072028284775463209340509909775686819436603482845115226306980616072893422662957557943431743293302710276977092104093584864750303327922003330487265540549572570002467714246115313396174766023298600545139227173203550410961907757665680471323265512923129365564591312176519329442839413081938697382759005094126894148184426297716764010442936931736548158095256549400905601235113461807728278930861459754840940200567906999902354309772286291059056667938773379355209317327777671531343758696965745146955536543214351360770259637545965541998789399335075145164489768078937745886212569028056870750945700342665336594148752858086245883723406392602967157867117128423280520090286485422213296443376209383209149973194639840132704675411443340887617462530536634899595729328350941046793199673497452814533798226208592660701170463681187249518670565603786686760643047536709000881935561184003211855015748909176165518555702173291255980840399961762829320688012486916645947923343634824566971805697654099482687062671681377959979793291771344600540556077661072471158669378840920820459715130090928297952987988751581373268415304844264227354236007775193173446670390090528055725077512695597916195273280712723798229463855585751046511303838135309361811895606686224471928288649830526470594265930883763232626348996021135007293207113402131298874492289697937772102144247997537314762324296599934915779534574867380592312416218494743701361183824537365662309380951744858544945433537362890021560672181096517514659141768911202299013783276374181200475487392710255404710085864519554210073073663615814455063209487134227309027187574045694953536511762675911693528809607149835599313554554237588819915803226885734609370032287904495940269852680161915615973934447878994359878374971946329622481112930909732171749069785210506535553406847226415267346465285598656486806740570024507364342840243484798292510099963808294841377846718541161051549775384139032652218640377286060074176024810685156297649818690137755075226007877839033100625136516074602816393081026718726067905935737745059238294093292018608463517565327113808406087397016297110029331298199355959947061954679560795752366105549738353121393285913661964462615680806715754632393003930406977707279398375333336513614808741900441239506676263450153137830933769120878866364902442874891651161636762136076372378170447674885518286957628663448533654826141851055062552885709345764902724748204974503407757611998219237824117229203457750427996697713430112577301421075638594220167238260762293276034413619644557978896294971102016104398463466455904573128035019025054232602610973049010750491654331976036166087283556421619764305614931712595873040902665127765625050161783840271594212823310962839953551392962453007135208773868118036715527656213564784313692276253364101997449784522191468762598027870136970133231778666069207786452082640962217519655154572582139419702703220208124631026434360669989721464865089792025775251029297000447184840839281777789791112083882537356125220844391653472745013424780725881100495384690827511838614117791524187015749626586695949585416135837365879947758774305162923387224626822558890251221102359539042337398172974009910128765271526601803482615934983940924641787327148954215559311645946813628441919616252431013339520552108183846692293331554578806109152472133666070918429976344024460946301534520427098065045317192074291527647800749107540203334966589592634409962805497727505034142806171709707918197398084006780688761128958472087869741556201858839748665245263929225158937081322662807998014831867741294515901497177044458428459226167059180946840882833060165782174884348864998548312692173747677684945395831808417048334043125814419282697985141891695758419312330343776158009595850598477144037874448093311711059507752086651739878965154363436276289693216908402685787815605222040083752256411715830461981948105768965795647546760692362399928771965676532154640127381033905689054658644877679386570043389827122100032519758422149725754056833158886326805173768296810849918070535669641458556021350661112285137525460491519346439622642926616485720195278265593557034816728089995910055897870780568496396687919233667966855180418947393563997099960854184470807093303832599077511148902253016670137759488845346612477179410595233392578449929103420808606259011421338089742826745905625606996964469482252019805677444171494285603671880029980880509765922545484612866542014557299978679824725733331812046527151971354791786390233469754464099320424605273753529641757930373536582845805277438679141475088853840925801809813178903580688053804371966256487673065683729476895776832086525441306168647131273633874549958754726559499648093213276148063830779554238866944994914391428843767821892158666984659737436028369264910759921375289887338335754045721639747083592382084573155961743082113959902483002520958408805990698836166784157173433446999540739633851398068758511185061365414193627124758267863339958674383053644540673724937606149909890963920638091224659844914716846231561985283085331821018769459571435783379490509821823119467973066521687294904670219470609612783942857416543752324124011455649672658277339976629774498573756764639782705591410898175640749502158856517147271330886630882429819704327224414614626214431026234309327185074602269574173543382451958192561398596938015532173969914597625906352315304609002254931256472788927989324486671784174377999228507941772716335747272413885579518693343312344691742799864695378644702473979030720300537055914183807823339009080046553673550183441469311733711645857996723973894547279559553197959200267220499830292983333275195937837996612015564472959764429406873439793357071274812550343615982686523400229482368302067297884897030024865861598131373813363955066265473804708685414476626031601094833604543786996140203505931319382410452372501987556942196042802946695679658230718064165765104463743397327920530883834825445036013570451872415600490011064404620163777138998793936733355277904441144524513785150689854369347420873139780130443489645421047343364661833466862724814213321258066774672778509371135967908262569340520250745566104143604750062339831464364900744930122376356197931272582937053991804864040788904571262030600143606991169508895243458134684624419102511800849459433777357092176264310415506849866207362519594669728693786914008979268325634065982004303863959714697013409793324059677265900313193771460223778199087354531499299805062959342263523644113178574387768748103147528931385444790701118529754614902350191614694158396861468168347851891464960173200967895127785059252216142889474563807343326216619267337318031624333284801354275314526336768012795091991762318092031251682291467984594474613467512212029243361618356940044775839563017383268472138001486898798410778395705455816512780707750240545753509657187389992380090378383129699710545581693336045547889408057439852336098721525503077957839314087747073646103696615624791564912290924464465469266045858740722510035962290542888190231011005747670640710247368050024482229611860047572290096167923775362328187392899163990566005437145053965336359422673567244784018716644806143515783537076856778985445671776745717638706785451094898837005787242365457318639010207273048494753702650796605092853623833015229633922270982000495980333420756672482179991055944915937258236693667741941351841874053443722304280475170800645482553744896741590366952686909211715720969876253438956361971252701220407652577391496343413451849965337084533039295437815601935783373918695419140314033825357284104902605828584495352267884828679994220395189739067553622252022528950124063654055198171707117694887824508981739736011675959102548194808148191574626757217383288484686412073823825069808416138980620971798887082566429964175293125288244021908121763784422163092932216964437072012935912983778304862370653673915827671229179506970620613510889743347193862730270287820876774669901092990100334023622052710165662152209858602369256535801013246167138802772429715334700392247897668758549929182486611373470843726593905784011376471696589519189908379066001337640830394015472335106499887549102034399334068016316685510177369634255848015898897071897937833804941625806803077349706500133924365528883393711813801998508013299983474175952121918636783793615556824415044530405084478976166807143462654418710447080509764019208363823004738360994906224416295496001360820753345927947795651208102691477710520496956928650438134579715079310536812330850231046588803602971511514924446090657243176921706231542293323723802633529446820889875297204964716890636819660373732689402316221092292858596364278384776594705582541956253582190364912217092144014460093375589642408956627983717814726724110649071806333845066698775775025349773758769226364891445660479688785416349353665670469664371837201980488870894773802844986543352409540822951553557720810392574976110191436877663686253553305089324930737231184865427435188956086917782762341568097372952411654694644029820208893159231826098141241995925294127564442815605163389236953204619413396210450633526459152744856060634873151582412325475505966087330001661049426424565263671454284093792101655105578806032621118922235285533013931179903036860501844706342343128663415160422782521386362897202483711269778629696247230016125736814098954507125103954325167237419579891252562417892020352780643740690651711243899011556328762215283205559873591127965245812651774325267345273939552395029232898020606640585856155820871089942691139145597197572810872298101555698100624694991386246176907946751664099421336966653981389102456652690258099056464526214793238171266300544952100583389285258328402854646174071373692599947587038740757657488637019539450490125085322437131086233069325890792371925364064319479961695849543772548152122883646160458186673517980903132304630554111050906781587559274671388072341289227718822603030132596562816443138002055122309776545688627193065982516005195050372318943271103790001926683824761719159445759309900533883420701323935674008276081859084637898990007003698007658143889957459588075428943632911052321886241992489807766520229399262653509059872921316085005614961196200020859043166761263400789097047149602403622654532079755728290467398243563886607174580409324894066625800626474849412080054182749101996680974726392895290983883030616877481912925622979594210061328941298361444686608516769986436007260080625443307892269102338973029470940979516261822676311441992613749901401703725425227610530570195676367439464632773908068608510548606257792102892672475382597368906630105230849120934237474245670705810465214311111481165848040495987927417899386423678973607317329014760054744473186488944318205266876142236713628762803421905455905510462786721931012834868336844882820254910056390113953313615335197334316410908891144083489730270073448770311452520017202345857922666594309066543350091008807487293269480516536724311294572589458788823455667465182554593941669861322206728133152549364834941412170697682665346425668544165455776811967498814330477555327557560562556784094762822824049847176972097373463013089585932830136012645644669065668749312001720697767842853781240183122277665590752221491975459874547302670588782416356210344806980149556184669064943835994259380135787914557625283375966531904096004508799716873974962514720384884157984888750879411579915194348792732714906340957030347577144180802063145753629182216727476797212798422756675190961731711278828471086771187891460264605911785461530501055728522592493793788208138183161138643396439220480034513851425224233558149673252443217705655363815027696255533033444203228893206449774399601300981103895589873048879636430538573792796512138978218335669085173519160619184899588419468475284463975793981766798905380493071266595790949782299934725092788421579390700823398742575329866926672705036526476911287571797536209594944367280320903033805467158390230794236157176749598401468812114163822430802840867616002127534920451160156549465174589839641230595484606401022477245297392034812150687584701786689275664067688803646928848901025168320368611130536816373835336623123201794806370859169650545160449538229377361797558494991617061774361884457277775350198577824963393925157879499786145600376367822054427247125685933990195136455323855293806228474453333060070378467326880290415747504986301083697977874973541861508752401404030493645810333595049516814349409595372108133491256113946016440216253713498621464790448811014646610150811286319055252373310034079971614569984943797726460715129790447388755498630331829075702641777901092260223124811154399604612756492616397576486544386565927480425497714455641344879446590443363765893192642088957370359653639767061736518906964712337429442895858056278906069897730718992564178204392366608421219743745165600857822142999248072792790428503364843945637114326390423366143023808507216863937558895978220900672847657771092015733530572286956212117359366537439395478735989411370943572547874128827649936276498416333435761489683312349423137981210577691587524519404590312585310895119681478368019822458328329683961563160623634862595115082588327333037157751381203236803557682123011786317060987625130313358376830314004238810900959728367620185135677558560253869010248777243395926079506173320914936750710771856007246653886027763212337158934097264525491467233756811037225727314286694525052678353611372146831399864309415732168878772949429560850652416694303078956337163164847699998929746697117464318142343184203689579768585259183089085799111135906189943569293110583185279533438387168650868803094250671455370364006950062578743739849742394382782391621678308661235078667865390755776736981883052009542439896061459414827031019926338199383938454676348251197677771706577166254275006614850760366744519837501020070677126581020600305932556125950528385621064848322417831138838472066003549452380413385745375655978349200131402775835738073029637568967680047654102682479916996456455251147448675987972749050519611528824484227600855355462142093384822162707226917242161550008231371943397251135229381174898692420673932582705943302759417845819768158653129893724327918639667613663526034790848221847661694842225173212029950380502320819854123421050857796649972669288216239959593155879937553216117150724326169279791748698934540553281983162673757402861841379936981169070724125049784075853940097863090979689721880514623059446085165680624202846641913141050423773667344300595187720423092828217177191466290329242440852117579086082191851786899547293727058702120034026534457897486454593447346964005587065883626167218767684431718446767833933064924979473098370552884932569861151462134346690198709750543901807672704292327949349267574277671101848734006782341553732453340164684200184786515690272921120639409825277494042171519739428192360844026434752992351554700029314581214204491009842239288423952531210745764626133701896883566096565435697450813439094936165576534188288434797337926619626727145815905409225345818908219137495921507132298286320588690537884245837524381446113290572889183716312629427663691798190902308549948158629970226755264618803062745489647925782486374435281188111824293271142091403089447390524104532429459690715412873782978250156337185157334555738402477416240930276061804135986017856327045931156717592782639781643469924418386257486901326809261641754299627221235584359799198239407018758395638954567492473947816161748880365218418127341062423579937169953577451293030196701898580928456213693999309803196829440366536146570205327341741898868474015268667688570749793317195801484864509281328712364644652689348636617574101464805495055577861981529856372787973447584159702391330730627730177951992075293154309270041320020699283180250228750149413354006333387355766836585551054330991673001286095840934683068670954939079442493305646242617243373869596445035331503706683909122432353947668271497784394259681640757890495156177620563032124463068813293663396489192539608081357326046959257584348128073312501564771180600248112528703930988040397890861681343251826650873894322275907075679687435477876705999909555530458353719538258563151974363008787883336259785866346264016872054364661908930481969908622552734308709035641060144018855985871160458530661331381743687945192329207496953876068783509648188230583137349154065010185775218882944036465612297267974151465891403927182991345885442287733133865266121499903177556103535888981923655480277697947169015765488077279826673351076730541728090600085571184379447001563833131706353293981731085701878589634906769972761726157286760585311144700293088545620110174472111140154360896056316901753754240237606563881015111343834522856723686107862028647585314391185116485544802316550859245966500257637005174184958629093517442514756490763682664618358440431849213943880506613348058824134741748718776828005281172938844645381651916171051001226975769212201881401581369694601296673731105183834090861188549288789586707199261424998349482249190732024541906147833407180657898703804329435139911377746327906386536435776009909973603161893581693194442086941591014067606939514638291448502354737112466407463401411376144309832496051015666005131418205310264889515681461228529872503331308108435855577137578197271292609442867781729425327054699067631524376859025743655661083020097087347804870860754796484303949263491062999718147950171097298641699800039438883809841115056084540896845448170395859269798262367801343614495759001397627404654713133651992207779918949082292943268098947930587104062250414026164127314373942992733511121919415428612425275578505544576036290036955795500656858339571593492925494036880049098092527743524176216600783459178672795396303077620625650283487566980819098261534393970601874996547336917284080729128529916639827620218483068594766772820417446529155121739786554832165887643348181307235788899920778259182566560336834637395450421512432261132067614183954193290874881922907718911218207388715694935360818694761804689594658205515420631813814902145770517272727764709520945726092945973100286834124000094882678213221954209578620725886145655488954288991010622324401728510355455976413748168339534844026165475289557616308952062161604665034021191970129525872520888240333127936342915245305610914830284055194004962229196495736334770009255647525440915454138834578781215690236090452900455419034529817174599127383888802731366967507952964985811388675814526516969666222000221330382785686147162122995023863804813849540447561732147994043797243769841715164094618062641875765352905110713358762326553077601792725494173299218293217598294081258819099646673960994305932405171404444745990533798397016415586074956561610850330120362074810032891513082231575287281873819305473238101554181853067336748458937801105142969624506549268080345578137839258559825051265242854612544636664788460235648822847066628085236867627297002012554747411100115340676063692070286611196103964651797982425120187654741999319312194435303097287929301552771942282916716373239076605651574013239075119422204106448043948755338402264612459717368028725002142557639726501050745119304488137684729553677618167925172620502816009234606233744832221467759164705651372643288840391062447433903045571652680913091500417391510243550525217133073046206521361819231776425186415289031490340283940176991827723961143855799870654673470464693874942137064371970546119140523172069882882500858210763102352515407214469247392414395171966219968839199181737239225206156079792726829159519287976940403386168635092335484719743455479324163568884857349410823986412114182796448803181601887877470485227952496492966518587014648854897333922393885632049936587176893243920921583783003902081910898310337915081750150025733719740173094156625028267413645557263969851952026988516925086957915877998315014723206376800298076114004906540729385629582675163214641000425012679986604782644523649373982699270758938197883206239774783529600149595831015928250728139696341038075733995225301764987947983651295380967361991288887884458816642713186001162828823995089702367649489667427368106138169364665518792696068404560857520700879530567937952957859215369717938584593866030241566556775610346269180912375714502130290722790714794146921667636819209535787496000484081564807930620019668764858140213654092754640483504152398165632894493605762273302332360020729838716508720131290610775655047233616385581617470760577145858648941735325428738466692619519806626413414202889128630943185757585461048019880689746987677322438655361354955272089546733713801744480732286361221319681661158037032436114245744158735340138437094276681876039344043160066416800562909577458994053925255053225353778885691447592159945473454230956697794186724251252860717672881336357631745028858065596425931285299726168708692648377252046845955348523117266968063706605132581315949445431229009544524552999824830962879551625553066871659299399427440762603227990484891906775117770619855167903497968155328941388606832635787579710397041591297197624049960173338434116870422513658549878447152626124048786343517040566917138286697194299043693295741292837042924310715375892016990258897082198718479684799651121543100599126377314857252384236441992088644740229965519332074902704542767726551806984446287806895698968494259199596102163657817751010954369229670619202242577478877583902464664053519243929933117472706252953493106898217867281727804567481784263201467512880400374249618501790409064868929716907308032315926371202616767837728947522464233005123449155775796171519418415791207492135771433807594044830570158764756010422543508984563369385698271893739705131321960235807738586830725471446210819617886341313542212017212251509562514722360503338202800482240027814594329157449139828797818101456454076593632630787468177484299962155760418075717557050418875915745328078788974567745001841028159667640837651551644379086873144191280865647807975893130390210456569724943558143960138900959762602631663320670956422398960727996230823944789343601663576719301375474773158559530542387484631228610692429306567410970854667608454830888829475276514615733149119218682904033513644229723189009315714737962032972243783941937755643953699697080411294007090664511853850437828878859055612784474953188493906689061109913087315939725934097106146589360972017015192740739814467263683132259845482743042566862858033563904792339593142674902587401625310587736932656027291352471817631614731740775310347780602515415866032707139847785942228900191685655432794942914321294901453634772977644020732404040650300222787978432650162508004205567607446264646870290899442646153073900805152075049997107596704711597583898669775153671002230335335937771776097880701960498486674364595717561558556664547865258652014439335329124905855829340907203583587918715968102832275232641669435948807951902524491670026752163919118386176920976809527721321930757557690402269930260567113120161831232745702577732899740538493811806651626689006848332058814993491787016512809703455419659003468489373608793264893943874197958314029010607430843886198044139547633537160894115136694888717063219296309361940904395890089695840198649643735293394276917915276810415808942585680240754567703294624488454542011242514350547039662473982023709912219600133751900515138938109677080318534291812609074075592188145309844788523971772949884023918716229647053922364832389988500274777284183184206791269229577803796316519058920439411282993897322436804275885929531324569133062267783865200399229695806163317728728286502681114016845036599353480238629430021069950802145706982861852926910992057589510796214114620867030256784312627948340837717107421831842771307460105357542724528022315504605135248133181402325674207647180693711424661358300404934121976734429743379596835431876412046327752601747451334834449493838040661694243132153820776840817088416351375561456000113447510077657913907436563791690430652445523616048547833391134447577034000881132925382284212788707628832025533272355950701897886286111817488985779242867480175304856858272301245921894939165459905547801334996444651833500859996910704614100264988171501395362298182948668294922569687024520201675240107964157931167259612887806922105490493888430388496433077351251836510519001233332236942523328608552836244282016866667216713206799174564352456795225895896436879642807924374676453176835328737894962762947273247323933084859734821747271744897238605600608301690538076775502812775758246841350325036340290270068543873974402090044348068911734372429309192851525195612282784402115552267251212550457590050432657562596177064836063449861200879728649547971653537539833786026127719906828470698666892463741619945837954350232857177010093744555289743348833118885918452302520870538898285851940591868576455230427560372601854893057933162895497049631692616349202404206738185288076375345649881777091450683158932538248928080004437406290756085286392841377913994194928206085152013423966108419992218742496483336993414235184828259608932742457005837069301288541450163998821809410569272042568536143348565034132668219723322947432375054411415796723882674668629922305981948420560732005112737956577943962883253590880086626565692440038888478112405142899579474338881215639250123767149120665829769164327469985659183988786122405714030073477230408439193641324272806315073580946064809659861841947540480544777455040407380230311380126027703955646899919213608917932426490942923160806054613632674235496394170815037650419175432441179011901959001353302455385542733657011090935084131349205894609246252406883808829792777404582569106603199991579082061432454521779865733528556649324807455925579762427320205099345981415203924091030099365781102577318816355025426243839207591105912504920875463937416013769609396921049068235659731716970941230482516599928304481926954254702575099949164851013896456881445225611489311175075560203678425094567999819275935056556630965306613092735744871457988807018522587497782056586765785759177842493613024113829361615323780536591577720634963534619798691458783971281123538531223560390060865569831372537857241269377193744701851302511086904870178416664672239190303441550475605298154477468495531546493206853766825895363258709848558119522777657359748124167922390508817491259884423055212784330379265541563948318915055240539172954219612478311969137403423426174883197745386354535284179276780413786447124073919589206916813436489332857040867235547519134000705257030168217727323121126697520156769684029795599948201942541433810071831920571818555713263617987425828461374413578193216905565779571028099847374338561927492130659023587214706835894175707389279521293797545763366711391506632662876603233547642812946944760768257056692285017517279226966655667842045674530527803312047902300987189803771238620898254111832434657092179660500922161317880165818258212986546016301256770576492356817243072301138020314410952115971044801488180862543280125293181301257745112295522470130427618929962139690077818594598537659576645097946114488574036598073872610063811969755707070852649265410068814092238427280631522583420043528569139007073206230558300175028711646050168111912594438258851586723061081678987741116831887802863555506172501991553794149070390656276092041712038366049716368826060465306543184383410200404055720634074904788864112943121864228815696769417669385731538131842353290464256026557340446694952668556337903251767969749777949055012706344765903819146705342481327228708398808135240992693538146846368388778258638140788839866717211307456618061169550690510269972896341294415573007914036272269453512015905860318175995477222945314871235968880172898607348852506711987855946506424625255212442338594992034543241034468300710475274282291554488861503054908088963014427642809167197112854917514928721165445269672461935775560634761690679834553801397057262067342769843128453541909964627724568740609175380389971215413723545169698476709116245550606768304939093309261790255102365115852006093971326255532879223088281039517856376764209533872042836235309846144462415680946789924083290268405478220094194539584357936540584662190801147781360759980391688068429655383901842910240632067045104922212401586062996005904842190938728073822362994617164818246918929069777367172964810756763628242675286518578964390859404072211813168764305602370916932186278461821569217293103570219297777357916657445559070183355001468991294776815147233514900731468090908055451990609232853448364647922279819123925948976840388695765643662981690930403093074048356339859308197352033840601278429358607172147492910262276440056527024660704812397144742889891074727371133557980328270996335581951324534061164897426407021140633411680661146322127252911932239147614412631698636294303538985553969366306915598326278958731600141568829309395892767598172202223862338827717527614017611915479621787070176641844590471025439685171294926865388257646360270260256208439370695185104689950142949353218577423803888240752955788422745289084272371014477634037820964341354768269917564532688675343335164198909725310038238110350523568946718174601260167044136926571404960109788535129993931091962018342684196544199131652857035527928322615801327879883258297583306778553378275640132888112681189614634288025464025818538135197217693681376629701719509295598541727662113849896352760355884613755074350214023162217876802584578529697896515872745832163430219684998486235732358583488192206332348334022765564874412885999105045738450453992253421642023179008852859411842963284385115419695737404714701258924321160507671504349469833597823808724392539171686462340771829187232630597422878338401738082600172654044642393732506806536898144481380197567175763337352408773920724773564595297700304446180467535846863366624254638200875133695830734863464544012043353436722897426496243100729586205181089418683924750743656041584685034019247708686508202443940896696307419571375822723476781956717869985936324289089556193910927237889018802394757854612576010751269180489445309621905384707031394432777910554421151196341695583368090630341603457904062518921329785040147772239536750081744912516454506385553118626787109203956934270529559932717917251588431500690141079256121337315060209190318959941295333255874740876811718825186115735947122840472531366883977436057418107083684107544642353595800667845771091085858037808416048845834661354893931861139615272554558530748430273969748668755301937447202587981911236081400410067525196828655330566119937439888126721682832017932794040608353383132206758842221688799882269272782081621592932486386936756290421515543732560203146937810851046950421673709290618266228545216414806886767489580814588816106569370717548382445360675656606361994585231902143947701141451198836739416032710566205656284074186139423960091758085300728249882036875155482302635302952793483070336563999860176650205366937317688247810625639996775387302756393732548297474238324518734270533868752717082776305229029616853311249488984670750602334886102562440940059990613710926919132503842438330435999573169084837440205839633225756665356618874645194918376730555089712198801293794011055762877430645116800910960259801708844226813770659689288657490650276178874867382602328967560416747163662218287630154272430794787022684480206717163526992995544662150679352063775411485324713753943276790295533915439694429011350577147077967990744752404624444164704762430048460631814074205096156368929771570628920116099732687313882727156613437097065375466280082182883766482334830003361693811392652090658810378274533962172620597340547248044282320630852108427749602840191848889418671894375088833882853094550743006440030223397906376668204390085275311978657904915885667055390561806149092369114440870163569717434858955682778739999912706265193042549546624598859389544654403296488150107201799237406882320044164461970584812714369610045099729017990711055134420752980424922428882711613183028612011449249819641826867848421219727033399020251981678643116546803121214172021674188430872168512329134986152984466979196522753529233688922054482536294136831441281426678345736212087296183961384053962138205933798368139925684155515269351558708056251177497093087587272295601960268466036201951746026394696562466208792432676596918557121433443109842897513864396864393788906610016736041128178020783489552196046314978421801885786467304101205637020723498029351932967220349959618934195438242213255681075739130124003642709502957582454670857381684268827161648660146689359440303123771144107047001240034103602696691933370860138026996118754184840634943510067173511463361564334714512237790253674837614801389009913648297907623115232572889632547128684780892093187020543176828881306591535916090722752832049387622020353311551276614752748662561044094716287003203792571070187324270765518244793988036673352101643164816061674638179652222222213376743366843917366716482444113131452699222933153784820668181885825642623720487414050994300132240827340678619990488920491694368170416421153767808896832807129729038642591707673254458635608137980561927723815839221773886376512595102197210553820525715703218754331334669742092142887169015022220601488687906865994118318239685471537310688702129018464606808912277554048386874153781620106067231737960803224292787971586376185609860831043142473960063784112528527005679583829196158571213951249213649899200343842829149915816809017429990343211184054007038114894423872269702932868068915911437458413734397125245086636325037682021506878761255233169221031715294491315004185023670784611495865787607255912948426510668238750543837269589936840443676353594225336071823289089301847865951873698713137133856341288427422658575299527366737813115749976105591833246675851542220643044148147228047510964493371815049065656387619918925957543222414889335596623150570593676110255445029362150682940803170232509229082170051032397388321180186496273078876141328895488605651810100980465649983222858000721004865425304460815842166897114389418286826298399499846777475248228082526898159023065028123451631757359712891848430915639789866208596959696475570544311372045225705193705776447354019324299855409787768106835749538266584291809636180533051225093196290414503332330093457644196240376011791282179310641031121657546363440982343727347454049055684887871080632096017589301542742153448911987831441042720312295371140867403607312566498479294328892839694718309334103197635923186784523216469139501393898823049784977725544524035512103524481191743967456020362817633308448488629937579828932384500722910172257220397707999867865318046143445600665091294227015346366256776540166938688542295628284803371492598666260146503476610253566421661407585919012041412921932557073501184657688061674648138361235512304880814388091274521802492917799063935257784689733819970499494107887300467058627711167445568155907911520403668786372529413599857644236883492185047094864263655102122066959648437472089883715534912393200348575692014666847067902047563280601676207489361732763531558093530258820646565398341572999926769438437133835941993473099235951783124667257375740886056978796495281398263067319140456136002560005921670996624278288356675125255301574767801924142578504839095372210195117549663938520098834279874030659706304408095813698937748875768263834435970009112096820823335847355816849845443420592555131373295831654698192245292501572625088310437861097956714900773282085782206029578888197015629452930678999261272201530269476095592981062242595253127936393085652085446439239408933912343627966974495453346971981798747575683177738024654082130795151845875375736263101770869280968129138814461565697762735806073193123658608409793260496780150921732626485585983502027557135858019557600529125867539947676549053938018141660113145054649543257458279464020471557275690629568770821668887322580974761892182639413189778087314938005768092844208240229542954358987498807096439283627037104766411611270312049280316544264200781380094053253493229361409460044652826173786179375071508715706918837752536661899500572926550380866488307419128073805274821667888475345498451495001581248986647743335954462247308910531898461959562303257597278306354562421526079069947195144200540659419689984416685375333906452258260197810004529697205292006879424661545900014667898510019461225446740272812475654945365527102090165213652186574759534158127829336604451748503301691660887249530766255531323717158427937923016261310167435866764991554546328330798691206389348353047796766076055229618557749236124269694896133124536787068254075197995962990329248369290957341017481040885791415983197349923904792960498120033496484074837930749947137890490363712987860242253533834101537147005774589419948988296828648386296702697155060100199258421463586077449070259947035998535022983274212157291399192829519027155628882749540192289907760335012625516522525111625565400496060485487323624358370259066679043936373094616449265219025960739776198224037908898455318802766476933804505066008083470108533035501212443293669774644842945817548550951313438337588995058596962338991360870972546047678840601072159326315518474421652810840813551605830144691383205368427487600795729552383550433714368934306240912166942676065096668053551445816783350181671714577658285541008966596083772090388889055353756267957837460544748890169872231173347260492434391544181787835317242768680442161008207853031382482633382783052374479209556635562642979512481409980721987229465888386558450151506124674691015811400488634110736115282556444772289604628570032975610913271494737548471173848755817949384349987242465025999079704952833655351726513346068891334626264481094702900603311223385442560747470580847111407109046549624155701462142625746556503487624290655206113720717435601296080154035389454807943910224988007740651897533296535021672876490236902345289292705373463768839760608651219664013691140643957654570143539875553248450636313049277569203769358709144745481549811261561532486171643917128910927503001426323893307691111917238307095906865296922714764988242019736055997225442529315302810822637965697826087949328438943742734102403755499157812588616712961014302707434469628356404996038933170025517324690702223973365991011908464051312292185399307195287177477578644901808146161763423059649469010943816734793407808300142305739951594699750900662071505924823343291793609684954796056157202222712815180361887705070157828503916460541821004137245221320073848317680039362388249157463243485556867018694428406012986439239551829235508584858079421663307071637092111223972244559214484421103949521110322987588193753801993916386428156174719715675199062403826413108992521407347603918800861664315729569113977179538211730355780962507807548292131356526280553835659308090319303794445957847006714810415171383182384494491510002177120686168219552873241737226405520227271594095270617492106881900209077361184894347853314529393791985584962320639726143134803549591518130458902208310385512947522393289863812003557940479584384095975532786334924964194301669746887173899026133786635869221122561179034422643394103792937897761098442879400789158426061983125206861975042939313946379164073149910560381929584501249466980499777874181112582500216485235243835948809122398726691898951955658823648244147204418967356388304133543921008415319695553337202240084650778276508470084736516778484595990067234658092903583248956528841008241189008898385226584359599183244328003950304588002813603959687435534800940482065921266020349412297486764777381180679056077246515094798100231721671652603591322622065960430136988485089892140209455354726736567547204230513303445646012895594689034924116299026646535250978668750164358244977940989592485530045325141172296123848988183218452691938490222002052441552727365768236247347857835210029018137454182198147758310008928920575836907629683057660364825390264323936027423394557305423361613069059663048403627883779390940445917849605295971623689645083600113244641249987403728166882782035718476783777946410276218944301273398240208882989824675852460071207504851891825090593777212366265594431251868254753730779722794841833407928149210155776512404287139002425582562140598176511327111690793078633613451138299445344760371821847243739241557192028371209125693771751331582813095729391233985963770295617182238840116556586967585854306005114984201481699915706519021402321868041137887157046050802890715375240058412641482713790181861382173448856289607460237425813910811840645633633155677321326269516680280345769906250817001487888046901658071281412690188207273157557851628526155091162349375472796600275370807778369739503543425123591631756002557658987810129081850921380448068025682902918950092552768026007705878855750425370108107266763787262806060690753271808467753577274999858885649960623645761572810218561071196627281190153725099964690736489973325717905375713148780247574219159665344962863124793969473352944368570578264622174533890995295714092252462284195650122577908740871281579711732359034556144632941760790757950527944076358677347530591444136847942544236418505126247991201871051178220840623403902206177181807866218328239589789251073817275970997742023082891957660125793858697362865706689397087610692044374437243898754379150580725908740073097509564813564982791699391255137359149750197892872582636765822154860260531289600583170009732962104875376848238086685078178360459038214480456075040811023351307831138009382404557730603088874062346173692690856668627019154871643800267116861841640552461944358065963871636555517261492506936898646265072566906571636219829866019275429356450978412257889587884970704219489680151752376860653338601651317776227542326172453027413968824252964699919595444894498648461793256069021162022617977416925020181152030798531802668264681614377127916850195033532187591204992205208391060555492460886852719365054848993084071523189239406866695665168112525121409492408925226320231723809414721646283547893749830037159273757443742264291897065035619651667752702183152469314046314147485055401111924305192383069671713777236683004035379794566750507942832899074473473517248562791261093863728857162892725365785239160438690122626896265586279913444141993238001154343178769896886771573964379983691570645557276969117427663770547943414687157288602747181188818444566091146528855978651417746886487442153948664097315196109229626251382516405288645765600250948465742102464453512220859968101624624205008767072856461872025659051078776773827177749977204933929333692036907888469531222120262919038859443928165466806606184130402632573548828704799708846616168569965696860413329502902540152086192452407263802286352591522041906911829907545473592652489081733079479433555859119651898233648587476021309060649366328234515528637465326468864542120405374181533330869167440902331629219609870223899006886294515485496828241859648276432540601568700481061883812548390609790514401903901275404956748492530857603071534345033885768504282340557142327093712803694833827654561053880193365626148871199345674350824528289252862282910693817201030579420855559634538626427823596781281094447997832576353847839442803608377850367800023986449225248944093702091671405008875677790973441802490231877065392304027294597864654899120065690467695056989187055709391919075592631743380603674224855048597192433412975220729649690971404518358524451931375981700742276565511237089348048552557342566742348190561930952506600966764612955500475509898096218433666350853876953836438537309039592507508621915525011371254740135957851742553696502177018632930974729288510286857232688153195742947400068607578829397692428636407021282993069224025793775723662954301990825496999187625169197428281949238119836359382369057893636939867517673737922555379906730152020317508477995576301119775649713700868033386783333234918634318696563288527927374598620891769247311668934686457803511747510211349195096571536713439984339478749662318128665668710544735912073064884442143439377096550204142254091869999478954366894852051320086256409458706700761861536145469420897662993865516550651820819042194876174847975465377551778531018985446242272377512531557548451464370117871208160005655189132928914032873778566881539260249383825593818028863686389912814343415785174917683021461412301717274124343624308894763469152042498833822720347680657634496067237845159799087140007794297841304532368761741620162586514879702478996453752182390552661433227766242746729500885475313741376267182016047807365255578964976552927547450834772705534380869501530163375996694146528688026175275133263072445329984953182502189540716547867869382155680522937918388594986272075361133041781491915690417851082012765821783917819870388496066105686778095384493250181311920533993275515973803907664267681037960974881124043640828768257653814473482319037372115611078646854473746486991041094677898408273959252844359902673268621455583718888276557818537481347837467495754867034840990805829969147836891339008651812171174338559118334537209597788981320657443532729510830039844379089144917389096548465025571691083831844920971415303713386791341076115031795515352592464706640954705432762176212279800669361934234141718940080079988986267688761345590380311869721358450931347039528363661687581150788330769502423641749254033733147408763643266133261092821602798126648251869822688314776953856860101649415278344416874621448549336678695878926820007271539793007683040449877411735063662930045235324132218890996326286567805912823802645944457579689773765592671703879239977333976328947924830995646301210831713066644040203024899981903856733084351349705365972876610244303356170588164850565927526701808177213110942773311751486695691913062861815122606453430008158135734978162183347033193993391375688688235611757258933816897575001152764219662981622266696703732417269024282710767022563287998838547067844188420439802722382953318644130064119497961770608409829440752674294362589149025489455068916964771460788833897523038677285602161279609144477305317301284249462034640344070053157734452373660251402185305669212251849675603549639226863443186945769094379830242288749469941769090619931641757669087206178791535349333232378393656220831630914431972859071840440620399339928137549060152718333362085805463891848375379868079204202931774807399084652432892032186908358159924096338933576813278958642238083507479934485093594235940382196758191865667161938508925339791382009998710854637594028413368509716643786561177691993080749004678091894666061979119450643714464484981994065316963110066793354415315576238921538477004824865692028144871750327996528220621459672831387546586853116375238427191259095834225191595812493934414366693426043444169658571682577728733385775068492233970761548611454726022499261086838955385122350825932129981257498243473268755920649468741517881728707620373605404457370235249704623604953506389152351642355445346693299310612318184302315666392138153117719686241728810360052346212573563457930897204902891691140279372261511190454586230975043045208106878151754271910615087146479742722033238830781874172338510859424610472174949495029484926764841222511252418819887887587346842079691593841945920405940572426982827151279823386106519415104646254497498580762717655395624149715955942574600325367895477522383284226194991147094098616768943237861548508648540251021078598343769081184224856503166191749690569744579488724720807377199479174109542311388194010308915135141464026863595004675459537176696593325953510593626094776392241135170210140205572652132690668884223389748949645946033948327890532860654421980775163410481273649825734395292483053294106796749456236145869610242844463058617881070035814837782033108709536971086120433264708986782630436882628078278947520715496383569033469760344343407381435517145330534013980572868832897621821807920023014830110674877440948252594728305112205830145692692605320539357145907397652696549994722722565456737817831349561926107259544312301036969976317677512807816027756409803667341954311632286667730753286137900086231530928754483178717621006127496663410488986088300634736468060577069743147902571614161909372708392528608861870663252870600844476894346475713387417458615611350059364180140186948086953194452321184642145285449110147001860912062257653909213826327576674366942100004867625221776892128073417539859290688031893206674093076143277233216161116338957303890403204477371947629947967897379400492295662735621191325332167926741840098291402330302471568292072777970099680602476420057725259353573066669103329197466419183377472363141492967275937512314438588034579787050833256721475283185147133566114611549050869801110582173167212190042131103847098272885075533370266352641897045683453567063458871710914408242084319530640788736071486752446832724693216017162098115775772310672826320990426334915431224228605291107517484733191555185998804084426428027400550550249118455607824401271461009816335452610781207285681069885959880338738889807215797762370045600728294763712449282443298390884834142550280167018154571221819357255667710901839716581989778251346503216123946821066203844865760649957432864163497160611228569355808347252952809713160268348483226895494991316047444837300293650132015243739620331431149077256262663544282346266175412888537181728793845627132046714233334678643906634511856416627797873731863114030748620786764932309382947346451285524272862553579677982705791916927765468667890549312641325796224323375391151233840314998138617195457465375461429030949362319203585409699188365096688633689589984092411978131807033723491908034550058900924253459861108121916584995467682803435261747190987507956155339269764342774083121161932238383394864454476263485859902004153018807813054431713584406044723881061638594559246104674253015773043813651249123566675011518673239368868134010792163970765024403018466488090646618149016957469919505097414953978397927809366481360921517095594649901827661553885631719019124940488175848295812325926422824429636754768931596199264616999114688620370164825485255181715927742776762700777729120408777347921058275245292593808177638263392409187081876800288098694958400632529695898610692155257144119023689527149907775839867278571868254861287274927090403803609968841167833413552435745373079280740415679452601942731702866556993277842233821242731550406989651884873602835458209450931453279788482694689338801661586616638563856417285625111475907713844887905178804383338032128913168555738746913496945086790699786383906711107851445068964276927650535290244481486079909402321111605836332348775674532230620346178177708564156878741396546245730797091615600660486013826273428772857657426119699339106478171736621549269910839078094590388648904640753686104113325112986813486112282731316487800265206066060411459404004913821579050073203924280615996823027674555430549012575527681182722934667991766721457415983910277043204308900225407507615312358095036498466160640180593769964014304278730393590335131254142046124513578542800488378224135491493035731146217074919580942749645236951108779077870893820936522170212244106205964077331633576346884640060485274288325387604741174466207976421116071560057519371256651349009466644560498066667152419830785335895333695321414897464788193862607144922576527600538260584505036499943131668930010232156163611920887873309595035809777323119327785872046947940070495867611317225034602862402169428052294002878857630891742370377407662985313436923331029645959138092430132590553036482858117739143311362626540345580011305229381787305849184135397976355649316375872928777485956012499743299821689400494131605083828542773046991683960041585219193131937811818953626847233603734550303805887940726106125548369678786315768330123175795316777509785228539403469689030477520994836226720540267766834287650770959617837710528281663000264999365192131994612362904646641726915135161542345659787019921451380171503578036937112066800108219529507876440079911273497877199369661301709811127778094976813040159129979949278067884980344670657603941764261169414620444404118134407272996892941257262085947504275423598105833062707156030681551728983147660909988259928828402568139533214011303345314919223638741927484364770169070687237739300911230357978155424208310886545455496670188243458965890929837521633293664101834812688219864755753070521631681871901760699470226310180683624870453000819541637460830562925822654995691524649769322168444908780186512977388143897739952540098296046018715146743996071193961506130540789149080683523993285194749698096506384581556715268018000273782440929793899603582491653020743597206867989882758055317853124746393286314696215526947236852670878216121766591181721552846801987309760079866864972323004046797104344835495071199614739727067181937134676922620418937213748575004711860847652293342570158527884699008486713675695127048080194425618878176070115635095746185940414541620179599492864748100270519122212704018035428742533747523530069826479973917153918969199086236012360514770696599162732069204867651979261867547127293856316665803881363210534850438787721220772600412697940560917392807848078302022869694634107424167335251191510587847711366512288919028016081989146554608312126343200181553630666608421487067464324845766632056076270424413121501778440823316566576231314771207392677856083935994931132822711611007892297697516467095293812876012725849239188059074436768872954801632144594924943908417768940960486563458673148121251461344512892761201151253501355889090312346640362558045511182504793063188836143703527146613383152715254360893753788117999531632017089174260716687930750106998159016614463363806797312725098224243917549376379864168761711036040634562109026375703742800134223435763785540002214372568314034930342864705027389927856695212100447217730908481511227497380658544381546347928642561831282923371543956466095970474099564426310966887410782526177588919536987763880811624432565954739346450590454015886097281278270638214822370600611553356585939279274749217266632958044376328575281041952666274281000361451956588952592559353394987358290022713984501671673387272361205473355119766501372941853435074476423529925078156451057096319636356967642398253277938372449281868470329273268148592262341843433542201942270581453662737283443046348380256174221785891917566410676696597427934989932598154976667387800634610643877622270678738966777085720809853409398597673733175209451883118115177961272460532724044606955058145847753750268431940821568007848412197192430920838443877616611296654657225036738350972565927578828745255329998816414709917082130142376316193828155182795983166353211239106090872712544203608388493718686436081354098222888492929019366531074520204496563668179032810699060513489774622970714644132767305561869450436335718002258527000224304709584673735157670393940690314327474925461444017914567633297850947610831694555937335931844420962767417280243361952804816747092146099799328276464040445750636445143428748342714408062874349486110288865956095170134282046499245835655014233509589222332944056192175637610606908853244292213209386888234830840578532017647883188489981596061885699867509034456304302450062469697322867741575731737485349147022131667554934963854157896302898946333370319949085242322549680880261136625698176426440023223324542257536160097948216398558969073901187178269498138793207002478295725481517358591301817947525913108434632532150654998099701141670441309852453305236919428581257446494207987646736378023431536126126796851022582344458360813757289366923804541258968349268650111424109105779291340115011142971852745254688700333283509564942834032901189880010788608211577788763796216107373622335298855766998877677616666885841600271817358652456648555898389575977551280143688153062233970112561303083044561434478319942611135391253249228204458275423635140024964820333757972604194210838934134593234138459774667058356520844549009568984429252286597213663211955658324076670502692377728343505185975970772182924432476135066516923592646980287485358266428944051780800334690005477597314398064267281658316607492935435186504200126713340296763939604113935560355074918098701596283425000227744841314734861031440792087604569973889310567836694206700422607689180808438226885658075327102301754452071819020372608092311557205443654139128953849168806665455397657689011908954560765540661651819661481240306287909573103901724194889872130793185355320708039956787400552275056825466937699358795841362883318994912725798689693162379660078283518791131268084537564621712313025416185445013145226064558083534013586761018913487855565124231294002340392381260158389076260953461562692015117105762951009989466327940033565522827522807683099932560546469750595302289125938415401957153795812531104846453203912611810070267451977097570003699979084282639843915146273448913991385871474475994508658355816565267363045239829367464706666285857710200755076415654743359628266258556216676329271041634748295716175967167676170748185779439215791966920598549081656414756182400512957812196789687524601154729826666977579172871702740613414761092640121753250060112053378047438417736626650533640627376517806649068389820636065840082587818838539835660607423465812916461244316890954544071318890157767688618580302109610778839435826481718513664983930978104786467857562366638220962391006636648007904834448340906070899370209777753426512465807153535076962869139416282913730611861541715056914445144188665086089840869476136310659912352032593746302846877371553426844816763848500963815273124704648699965837351258735299676462510263993204661494406442258073293415902294305802641721532483235362598537994246835014320721293601243681096083467463056640234270526369902610737521004500490370899775448154500837290590118469362577789385835641287683123825455618721856118953963405312002578222603887381431538000180692092986556087252199160683510716961131767547901968976891463285200560623105922518230771917201601813323373730049346588142107423485687370075871391416036921690940444939741218222316674034417221124496093836108743684465403660859355142967547334815112730884016559946020705883733922517444644156436730453906437040900458122092176130098359109377131167670887547979378950431251571225275237998107287212201187306468030454161880819959702573608091270472726907064783574885980516112823469357919322473949747729296390752717211479545119844376401261094436116788631800490588000164611378943456983015401910198411395529298025181045922479672004320832739198973618608190561975839792850435146280044175068797573282474679651097048030444384061108978143686908165653916806529084322901762232570188638821555774673695448979266849947369235772233815156227680830302810576533151519675285087190761306726334184428593105303647311622903066171022667772012943643849521197709475162992402943042582904749001451014553014972769240800667408513973024037110218330257933947731199142094112204088203387675289288276492770680307986834486323736527710574274917680288071600228148340128339954804058393597931989932535949388155743702045406702264209980198763665363162207504040183905504556863853172508334038858580723878085550809737187056471917951665359377092816606144914448396405726429229231636714494013077430890808209730488366348987079364129118233195829633001609929121561024425381115376735307320621969971122249533028643085020187858852225821350703721803128548200727193689595207661276463928716627838854794624328899222224597078714997658193547440933564073848283898375722048222812448229218119217092931051698845690174885415342087369653652889447697141100780515081629374030263014105841214238462214379128094891498569729225882226564334523394258499870262759074294441660856951568769293764376515383212768884655715030279571128227903666116196902624972577934161389973179004443913275066334684723751799693808355196966370223767310120971107847410813516239973208695403055071843357422789441699898436936169429050670699893304818002668292471669308289942941160101300355032335931709325066192252185056402287260115327192134677977348054340512337072459580345313039537179248629054674773812124064033434666098805436278663757231574331466435927448360349864619603405844851405172838247329195021016584326633587009738820047360149928066189964713574000058824367267111470974071357555822701316154744535457056399902370576352937523307718879947127338165561179647121620923657082715263897088651196724342320658756807662612536816513544246601970111488827887118477642888269266191711869186152276595576711362313795094411021577011675108052259381178943207018566218143920972758392169802885012749311191059209306037100475686187597211945857837782170145394667449826603682450839318419645724735918624460920227522768311204965168792336788610831697414616306998068102850483654563414492963352858064678269355885517395462039192986646809544789178717346808243746996157120247959200406800253852469810479521329512234443710166181460451676957253011411550171188354308672319475565295995359477717923864297239623687352477846277709302381737222083220196241411243796604020508288182414783018091778117363661293961749620135390706603422322087973058913823311329391746184441532522977599274404144046255451386789939705150237164051240351785155774070210365294960902523226751495759121056987629299199944864900826045996732634395967428298410832020270307734502692423372136572779084315815442422798693589335969098597632448435001635414846642762499543340442904601537862494746146801219766845225062744900376971480194522291320630150674139493546017861637172369766534679373391158465953858058764857729238853136828323135756493379049350608177225699419527697260547084236805614479204101706162977543861381565518003392109815583691792132502777636051557513865382188343582457078714944837987035792750185382532604620074858446763178784891576600395709350527645418266881609577881487230125093254844933733146960099532053285242453859381787275160772072267560345481848978886636541067730123132295695705904318003340402858392379760551700120999554118157341837640068100128568670803531699927330924438179726325530554526612260711151376033271697559409083916070994090238801381835048785578296842299108411269988931854236807906665232219400276992203434097704406495707488176007633543307692264152891447681260930054307115289932904849733371362057904287532012248772118547631591143402057084590275017448844620678703356819369295947888941128704364868500613912631575068779703341942819735833277932625629284224500106272942485449800723521789715478826611911332188669783497462249877315492740462594437422256291853793920091789055816868546984892529450214046830203670304505905251617289087963006678683665012022523183167692439191091316693680484196898975894629352764157945448412602257603215018627829293019036308745946943840459911762654983200219071043693909763737373420777653751472112565141410754797849334328128810285759998985028695561842521542114768177904073629843685667549615107327510936281706449616449496513116885180223506878044042671610560473146208824889421390861235407723504246428493039305052037090779648042367006410476841639877623196778710337245288318217214243661881229702827364182914750176899261097616144137781718951085435701089825221895653509502802150280741299157311336457230918514003082532702925641288994255533290794838240071499397353618176435903377728442052838696630749232232789353144238829016290000347901010834291895010813933778682096847620820606250780709445252583155200136685206649823138556889570421457679912270880792386128531647632627680566025673357544191959319862065158180898345167282919224491713872834505348826325410062581194985837417168936880498183132989587079723083277760344520798763767851473567007964322417856119542285465685162277037831577059069327615553681603344455681894138458077110005421711212221310356869455756436574132897179153467122173623795856207932872253942492652311455164573946109197731468716146074330210192049713952006884745132913862084340311450977359965360177299402366450698806530267603827497206244989930915110065612367010139936788050678760551014411155200025012556839300874305738058716667749212424850603460226037860029955997846985094956312049199656497115700724108842217838103884866582300474211526625458059045260272578111994483254636615045880272735721970367231107832896628569747570524363599770843097299383589449378439053029292061028916793674713544608992501542153154739819103538016249451669047807884755432243922084990990376654885525072574748484842122718030618115446306878623981660439841923094194197853514990466349727965040818021101633824082199837281120569144147377487547585369379192527608455122476996888766320206399706718501551187268865491163184271437411162544890379089471396085988363777003339543042670537967794824805539556332399994930089561645078466909092920519213036583428192990444220047591362504400222380144013127400866877424162391600750390178750349341802587732304870225693086842981367388341001567727973723311551934846430740869360801265847237028779904833014166879699594671049503780791596973015897428714778929682070232343026215759365690559022639123769724438186865629704607100498972432630548678478478700366689584489823786424402632096519085935464776320781652967610755346329375392817910872205476884991626929329351051520603552853134973994433393976239657963135580592928538321107844248027740204914746333374135099759711197957307313922988001173858919517719255083680181293425338581912271238950173700804245867625478356639933146021968238466257366145284038227740846147863120581540193854780986184257068922625835762679606299224514109374264776575386991331626872359594286610721449649567701536430876748144566826898313775633807155077456710354390021883598664809182609652469487723009725344828495328297359243312267059932704792242441091468141694020430595545664231772915345604924338046218209748607790754958177498426870296664343538511867685873347891290956517241404289460789911293006128930155560732139022503091130511347419732857212915288783845654543050276918513578754737817927330570067500271053608550645981988525191040347379000521804772002342912079740932343526967244054506376209564137504882031993848791203805619286808010957788978004836281325072477690834119362250137479262331834222375500404726843990277424292169024409832397454780211296136421790519085051051012071127662767110038428867702831162850345614951482305416706490775926394845005698872804666866516041803738296485080457045886644629645089102564195653454690704272730008405686890732502599005610602723716814352771265001689563550071511961259015906730603274110635878561085636542444907720371006434984304785124368795972989901192884356090558761926599330544773745850407831425479243476934244766744855677610515091747753550120719550987669604499037624726524942075626311630182601491480740479682507527864811141296003035508238508465728402058615149772679623965241936458623967589979983237841218734752971383737008063200754247955078860465958770911882346441245013224354280019236810998308560420452488895405535700056361845419962609092596023062541673335756930184115821870358105655989759966424186858481747822042295092657066762146396397289297669700268206318215419600283698977845386011242513087268637514715243233556891969150801729881635234175800818250315791938379584083074633798840020363178047299199086028056580250870467182061389625425649991246844064005644957388769267289466578678816212258872719417136855656785672675549288230896328658470331167963183742893553364049938154745273850866218625099485698768916936366865310580428932994075850301849482738518158479806753699391432273441460714561219393450226338557781398766966118127991105007552889442186249797828910390828819460754445958103632290885065028173533934707001725728721665815261307022154925198496668296832668809093631549896046535368391594132266210579607358904007676653692948927555379283814028919387616370213287855162430427721295112879060743367362369786212048334952074830330332077246100049815922913598767879227496363440036580994828199328385365789035352853913967926437227973035163738982612342128133492468580990552954667121280039467361191216274052598133576623096063984894523018190653165794772029355459366713279958697343051285366653859471583782805216624952445189560798251228029234655504390805498354429182899810169927189907604519848096590266212219089063767091501247532916156350209610244894537216235846819956325189507283453120309918376917916858713795849614042978077658232764149776989112969019769652465134793108365230984275535135731190088602664191361129577169181452442089131663997976493030567762966509430789952583381829375022102265023022142611386982473282893776351579808568282054841433867951349910637562123837883285665969724328838397234138170299445467336656012261604940978025565814706148167208885451083016810534152418917369375261183280900184288004894685234061726974584218664791147403410981416492203049596139483421010707524252570704813569851768848471346943539998376742395981823542716774221103634715454463799964066943760807074410358932402514094518301482699225455385178654551628314701108835080092188935099506332033029150844672121788268763733398254296196558216708037654377289613734500290572849473053456896779543727380625466996034178493627719220514894313469417065694425909340074948680835053966452689580012523558252690820995174896885604013039397432544455743713399407537891686414507529939020341955514294793546940778693413653027718867788571468691435437212572627877498489791312656814094419084255607275606921611984081313963053278595594459730953602653292755788000262022309992800004843831949375829944272337985551433908610435351568355010793640329963690645412535319866508201423852167849527197177067347048870737485632113483213409377904469935228483799320070575758283519583853707724115202162060041535283199750649384483064610910421873034213593910791407413201501613404508079315816079023581112357304719757164568902010756643513283080323308923575225790425926742623553444119178825194985027913045320881083135886103802385864036943716628424330837598145791143925265921784687691702571929844238508377154025111381386165885298537015153768057970352842192405613112140827141805684473102133904880550932783952784549482771276816627536059268320046464266221870751964919712305796625881188556503751900301151501911837390321971969532591355139000515086755008180612617468151459900536274642130300065202420091830982854521183269303427077573847753337379443067877953314874164286912281769639040479155284007040719838287619262330598622409565362680306749010464048230576102978193926596047654225647893221007493205657800873244564986758418943956682420347317515614541552775482313252984693199154808327294440601926666800558603676969994708496263712759796622427896604602067992697562451286757940565762602491976328274436386688579620920307268310379221051264169897387774253653989730942700797174449634308323430437533345499978997734610679024659207787984967629815803299926741023842119122248836132139759386985999162100522817154839980465219069733012058565698939532878769741041007572243495946170750746694559026471266750175056224190330943949452636256411955118931847315742048262715463575362263133614674064065016573007694682646761467574644338821297141065990298978723504494293308600171021477988081712817196262198750266629979609073233430050676950532178799612984061670123161458996041887576878200310972636291582896332322580152822955852156864199530594351557333485098444171840753222749388175525048016825245974003597365284459269535933683929907370695108015986477364587484056306409988905448823366556342790865956911668683655809278730979181746411582440480560502985978612807737346779582389268639622482099101134380662362934953565501545085159705105693190473645659870220645397797344143477382445916915862767681225209970549298537889307245143380160223290941345535640228461728051862794729364148793346930422903641319377307185657181228865427139373185397801770543286137623180360925320889295055184187435917924376692907128212376001396760521102292393659435073345692001934446732434009524341659762270260977263014203050227545702923019913445058526158918723728967497235242317646743029554671101552533161541636224376375921171306960627231058618656516634866780861779327023995572676846994711273634240178982151660363599870377043425145551317227559991733245336459918953721242877894182578638659272724654331215265229142138637158475373025930140414220074173276501969455855505338105731212779438458991880785061840467062872010975436850727551841159503907123787918625194230984550178406733246237064656577719644350708858178453228469127142334230029638949443502536897006234424578326946509058464801716518070126651463826751545362145164770527248359227785010283444377064537036094135075867132872459200563581889149704634869300983898969770044145706354120493118859896481174546249054684809639763090515042710700809119334687861069328540436154167377730149748519685594130078330498705497712850023981103038885065723385526739301270416216846988996370084930873981371461087194990702959432820509790234182320851796852545828243172563525921504551709528570913556355787454873603208251649056269180338888551199582383148637979462082042094982143229822348645683955716556003876012084771814160267557338664553696817756607130191336783807034731774857454164885223895602015147778063542323683405090900965077111247909390738822444542590542560915405166630508517694430859300214207727359146083893868657026590321307114762111329206122443807051310046401550974194634738931185205795957977728010249900075929409558548998696307045437964737321291331689407059071395525381498237750956639154556080747103253788081101415181583920499611003420013319724957303653530082873497914864204483654495832140490083100428901280892979429871386867855060043029090560071389683774895645292308420918646222354603593457519861093007373330400550709392353428315032022249175810962189210630934735161783321355363269506760970420397949016257443501950225946410744929326140822440317627684820263258010735031981334398884003808446041779195126441348603288354254795751483507469756152363534673542366740508932174269640725518563978629218451227057897904582274745647870251206673748394740663252797358082463756668749622701640068741243750724449383925227536800158438157343003826628629084568164863109691456391608762596413825024027488190741226527594312357089122701473990376193762646984626292111409460394017757675281605823944068854700080146440888495531727307166601704744332702900269496019018271660334684244559761727213509381396289280544351337802470324263384974024786104937933702728172835125238098196960108927657824083970509872112537443727680878596192190945118903620245928269997808888139671511863703103948382305301743040663434723255321095271088693455604620145470161517738665025397158304313860989867486299081672630906258973850825506175330788334581243075952759440256374967846563304951268214472209121832360500558563126002499059764855109380552756602166582592733134507808641724461551271565324671766676565689390938385727639529709084516875492832678311907757730838571133055282306626365162270936992206211680389397283940025312010311148664711607833909139072578621855152764708242373020213591130336843549866058785352593751592794005548704239693014854139082801305893958572282835357474432044873422346493986989206789824539674017762861751000458100985688104571117946565494297375041506099276002338478558329423169677059620446331142467789587999246577867362157526227270154758830771558154419639141109233326140825917294109180167880619172232175202935218938180565194860771767208883110979879616682312450757974091837683974590078904927366850143131071084280769630543830871132486356533414815223761150304861637043210638915377877117473737894665702151367442841098869438011990108499918238602805560766902234694819059073071852543351592850661705378924831171581389731629714501266549378497235691562080145074933954532782964945802390066780822700790392192594307111853096941304099577490435224427557633152628113544428303269282223175288961409017707637401335074259973775749723005166810322614107709003230615021423271158194539984822423574676716076192814353632719731549041104496834838339596801966445490421287002989602882933582215972815510719068120042912627518166654645898040081589962641530652615135051645780280153959307820083487455231342877233194311611816156718431787231863539570994423199109462134089398480605189856030693623229236176414964354335816292364280984148227305103399623392226463220679962613436631587019852375110138000052990140234578326882300842550150362926402238376719587330690764208751813429136487664182834988367324909097422424697998664212522955021105828819071449547663612046753802723334513347230983244870013660494044754995939016284690690411287075663405278369966043156505991730950859959618846575616911837482477881146155077485481611842141824104969796279334680305940464212409327142756158532524442728665274773076620573971965973439805656975839169484745541504223431282525415112891756206266232890723819298037685376108785073091455232361312672661776127435736889287776370243970430739772524706943452749810933156833663068149074921678725106530966809598547128857724859658488178002426994300006540482802918475052729122004303380035700713874504699592113437327779368338973170560991340509680948068916907947433929697531410550343195481881405027365993161615825449024067016101038525893069234821105154075098611314794377686941684462884511927078703649480910079141315893881414656023279848579028865959322856737310614225850717009388465117328233198699042331477867805127724458781121259967419372845350873834644792863109388204746480061562493593937134223424212369213495990663081659533365829014352609683940829865119014522289425007761580966088894223381911325587940461180264981258564782254265048716629568077315568220048743470637749871462353720985676130284327561904350244139116895522203850145600859477899135578317505688171153581318005906902609806299001332477197740788978715155629994380924819950191909253330826101221501670799419833736622512014341151824062072495757626235757283945608476968767804328106111187003993740231515250768089247742884612968551321316442195882044530735994175017996537501123241764481321160270674886581757558707254852322478948369948925167318377127206512306893817396809268311466888139577745172797780325010652858935754550072879375868046979672667293597229399999409555935522500462338270286273434620131337897309539296052535808019846912776366577834845541967800530672410005525430347780229076310651492043551139274450949601012245319283544204119973025547047595353366499465971184362549307378561725204722329808638538627692219202845371386146580914497069513342223011028784993470630208098372467317293291180199133211676319050423849249760745974577113759877647438627157563410498373009081808604336546694448220366580378776794935208846072859548338750191422411248992492175598778337514443200900565898907040554473523865664848922137702809915686368343678708119993028671655677202805530878601735955702333093476402953610110663132947387639436985823087723268600449786471856746938653708767693588606163682307505693642909653013882612532557429294260415918451052398917076883726320664916278176696567479159962708873242369327185258263134325550612910120721199743826271475322286623498471438885539122988041047213743465452026224129435979154330515013699362092303583309611439945155016910462611808899795514174953256548829029241841081248384405601834038970238376276289147227187367529418471269957731689071424935039605410783895829081760652924836767603747055665763392784726677594794518944930050357152049261269850719903630693726424366964862205935101409342876178372790338488022861681728328443558863540542811468169612029246305120963430125316911342527482547062658332778421372832120933389790076084203523818962434612211108388696439391032742578946478787566894776042912131475574423172900642962344668751148949161257749319965967687557798983960870011597493562494545400905657931706243220644878834828615577468932184571546687639384975155176155144345571331209824576853494712577066369281801849838789741242195300541808079551092596984738031826799008546958685172004242963263412422927648573908920983424999311995739453631711541023682809252742857546521293784080395703353673607551417477539736651498900191819484649195636738042934719479032880344083235210005694872670578772597784818190442058448658134072606623795649777855680817718331137717879418250114383254008372086356791467257914425540336911993974681812592802953477839694919646619025540245283425267553153072264465542767608530619459644362399990949903455908234283176641808331998676284476197914162713962750991697994215990186864203060869357511007729082917904632911475492923075719727646395558655266800506362935520566859027141929373422624893207958744353802048063859585308943111159589522151392486158610123729488779893064947977507586996952092744155551955714925234670241123341154531425178425296426094481028388486971437465123509503324557630822190006106645517850878288506209531484677643334839165785429489583444996668168838402383049264670083532072142407496766102102418332949262343362335763486081623933589033318887859617598833008058699866376713802079460151997377316715358172924709628940112388940168879566943567657175885561307592430424401923222297228073581526503731259689303679888144318832956626708425587426340181636497001101334517703522143387451198062131874616631407692290103143733736672323261003185690457903611954460390896823658451649413896057969324388494663514980804168045574686545750645895905263439828708369685597582128406233337141506669066529268491072523159976448832278970947131222168917992594523818363722993477781812586644203180326480414042592879177118355790426760787057864232549584367204398422638630398832827224812854049134283609992109590193923417230784890585367098388572690649356617984758296526596010200924467299090556240804784000020385547912196949529633115803213198461347034631173071427449998333247733260355003826773367809056453383023907001235198818520807782988336981858741655140073068192319216150933374899065359453042780624534172755866588959899646582650481757599645872151056657446297038782090347634261187639399471511602576962445737503621488221537349742662993265794162430977735696042369393396285546152388196634066543872846444192251039208171658140278073124706199680073235951300292704092120117972841835767351040499886003418904058999761777992216382169381620082637812225825056896264742681050719839725150007414465012706719550876731663869894893128005446065623920061139314020683764427269023641719099665664860554511418647684554830384565625006555027184909510103826420755667106933712654575772473243571908875113515599950940710699218348776994836930994215692116748923696085449406607636689556776956810527555377385794717385462238450824000259922838894053751083161727583586762880578016342393217103392560950271569460789322722721821717739164894015629653770830762058442183233615522911485285544738735909807549487068961217312474255971392543285503959265968972078377498299595881907367834388654981610671942815080226643878320927691314118240243940110784143824663797004814830864143241388921325444789042459399578459629732353581374393833709880213103055896774568654905397439814858813550386345194266239192506754070152934333347847469402977799693880927770108042962336053773493534318894627603757935044984746876170315216518343054963623970589458792902065645195521874872306796767640187413547749357142545373491907940494076740282701704892507708978316442457018365703100064094719630635052483426375493740490589179717797651605965062220141841359493047103851467988719174974364602424941577702094420299873249267172254948722502769234510326898531895287871012513974064719805834153110929953694383511329407905501380770336162187705855854141573839154074093594617011631893490746519260713213765872369129660473074163883895821680962338154481032709254897591253913035009652924269014693684155339871012847881189319138078335530846229289803685081272961255515996393576047548484359031718842053592090887687845762045827229836564616616648642549703183073498682359276730197652019138624614168671989151506980336741073307979445979442430894107014421222381723408494051644639630585334464758259793627357281080965732669284352409439268116876595141087931122014001735972167673473708786181797150263424681944222876058265005462734289875362530763695487815437500681869556361982915438072319603888136794213652102722008345607182988605912743738115665498134162343576350653680041395192516764379311169135334207319840750390634389914269619903859673871937131686199281955858252472231881079555913995114212114121161552178402439883808914664581973504138244263904672287171007007329644485199656783250561461408805359743478687132139352909906487727777499295593241144261124724735884274789356659939740855764081453881295268193636132274203462226202942141081999440070786753697277966502077137909118844689562049518490388896597861524029854500318168228499942494799614232425258068527301270742235340821668375105983451551178346288520572770183132809475740320893881831268676811056516251764969957388767476724624088326913312945072410765552925309471535140992457513067044162630866152092446325250302572850005728620774995958748713481251638804571378730387620269271557839918530449347530063350125723200921246858770826507649173097796381735599588934475675936391243275326995145506240996635964447404951898775635132789275252105223269693161882300661804407650506210397367645560277004120307344404141637813388954843991879480827118053692204658907735716368801008198724422100929476096476377603761987029998474744242222821830860372694051091299887423397894281081091300373796092354741502690357965606312650154192936144255543979291894188207715418082362886828183956244682754041444203215008532352019188365132869800831171948774648089900799227082596515974266796674789122253837668714382156891477141622859466591076684175124286944730532348384378057834967315175977786221428635119074537900209697911892028318050948535611596571781093867492427886178085190787880181210838819920444341587400021347744299406374236953980665695632949819139758138883035865018226184558677316387960233977590851247839566310186336900904515504346337122392945207514807295073262161266410404326365512513657720289210959715954556508108278415688522416209276642776811579339907049603076259076106299336636101427911749055393078554242543505659020850456561574019291597036317602103761098940931140017392606408316249241936028845016361657498248623467134594554116377350083278410712623337314638980642035738591400404931718217018430032331057116821400183597478116738447766299204228433314128467957216476320139295071182849830789427570415283150556634074700853211484621768201471966899862277197956597869262556313035219870100672935560537871572071252593925333450469255655629733645906373708249697438891806323350733997086681785299753019844430185678043997301287957281931454311895747212884898189007151262169830225752130492196052942490397717090400156243510654637869075349074792585967536700175793529971582709146238417747541557338014644673506172204133519917500974109430624484056958451967649688227179376120706888259591265342481245894869150842118472521269590357498739781872143856740228576629452468959506231548033868256560347364996547405135245168583940189341541311707358812823361484124953952876482630477419220847384858723687054261712428424599843717781681526784307275346347918351843735439172608797861889924856404767497444293910099772110925750408287027119669383060983209238864752287791611581273229069764167882518042303345671016836767690411317592399484573106657059077269109246810918782172889395415378521274450557253400331074665773790143921811237331351849039839077498149439470711120297722501150570011171490310227819582835261780702175526698841916280148319554376228712101648805034647024857069882242351003129711615876455679004964888017028055183386747834233605590004194217517946743587057062357495637450256999344532148419201262032596765450238253469861213903607381258610518227219091084860297737363299935607990311259366156564776524709690232451223562538805891273942226942937713710449880938244589893678303005730524528855393342773703468165084963177547871436456866428803526971254078333624571670470078489370476950143076718496834207766622599330125808058099552289836584335382458442416585099700588994071503669325980850111222465727702383317013432690922222589252435082851376486628732316029164242449330165341097720601687015866376109450557537335582495911534134442592688713870155531239323729793720844382366048742667629733767105903194611271954669797779361164593791567251718420652293728557073291752790123438837535139366835693688536465702384386859669938038946115218934588540573803786313338882406412763207899824259735053756696049544504170728688318002481289177244978359223201580795666625258914600006843753983852840378610031185325694933415232184870913177606519466548910594240261321340791305855656811555696976278802488466207785527182877720319468045713516106218282658075428515074310782935876828438898081446405730801576929094991036048331986419281470231700519194577696365219397144640194325295962194505345383794315742857170097797028023451111264817842616588459370300227198337926255471642253997745371487872285222520942067417413971667202502774501195321790345371424617346682657397414128375889697634870741903029344150965469642562118661187795185543720893619173944170386416322216410742554565369973585053072467528540588225541535895885709486946386092011505648000471266979271635384802595737771489128479856678824355341013079934671611418292357623190436416977803849394704663243909902845243337004278903960423520181685800380312308719232332933666089236991576438734732632018001870931051935591260337192004525878478316156347791514832628415422555174049318528888862765203223401841315879587324161699685102274997586742701604084385272747173077678605813452667092100042906725528478479066423315411606054131391846754857588593777750181943435337989170687713399863539587946456942199746368523392303650626479698697387993314455149243797528792032144613498716756825339688858385667870660756043125056381674956302263409638440559301287907565552095766066046794652296747437461959920507895379404146614256622214578198783583266255712400055575904038888055959548775260411606749005587529802961979897213104507334679511492357874736277522805792911370343626364144667130086648493995942527161038384746432950318286707718578532504234425835597917029460108782772728185333648608939742928565482882615812994864865343982857063163560047681879707787474538021772907877221072513776297928368322632377730144399701955402748245901780166478829982133649594753972175128851606210494013244163429683653608433519437499877298240828543784249571538043990198637187758364679075749437766825064773346276305406775027657371840374965765945490018085754472047263407620058186857439924169226195978842087158419479668713082693942935011110089985629610531935206754212114505690874527698880667627852242771971938569359445870173169285041389037413262947455064648964805887136140721188821424019853787676911363305469303745876640982605294996068088543926906940559246783568174580902168716221162162324942487938103115983213881270548249801502187807101365566377689118613391583887126065107389575137910507312575312272054663178456219386915654666820316001523894197571338328746971668088659791615713675914838901781347371138280019850490140884085854749599967967791777421063282330863207854240656415450883353235589196356890999274672647491245441770265615226807293747503451406784815112794449438329328004200514191019128946797764360536159618970396213171425039616588592395346266563352792855152248543365553534487022220666564701966011785683204078914631154938804896587476436272567439257138207265560656743360097999942726525429696127394676460178388491916193457240667735753284635407906632769321445773495783765275439421730118255291904781368434065648240152151917463749293767723238205446678273920170884475620588018972033955110249329411449241696491096992243619927630364932669355820433122778756945908421194704445440067968265277445843741599057284535172712074751772559678994392337072693596880775856340031127139977169481357437981988675655251638215607508393203796270729898958180292164905538388905772686153819108582197925622850705020296064105508777982095424084677490476203054085049815861144961818550986240084722036548161822947552274602540410864315177550833177850383559600480847592782228723520576022168981525097221705700488612225441344213824277269945803569804374093829338486534899328911573552842660582147518223976989898276227125144061638806158173550795944046628680465059140537583328242395263542179093186550758321637019750641985815342939311120913644412315725214754929937707129597044381044565315341592812883477264852865581186161023121989421155680921276523207252894529266654432662694328230101528132482865069839236868269978156851891594506304920572994910110737259762967842733003317755737380267628282490215444817368960107447993090792388454206929371061394764146211479100781844441036897644896904635487511112503190895316224860919434803709434026331207630625132702141103930047055293616949907863177638639347783182771297905622765556120275866314078247248844971375813003959243293253073553076088999964480917442115340539604658349499672537768418582899222592739190693256640396903374979989106518948885249346783488617385216173850366389230656969059003420676568862472147361261620299234370066202959936443375644091974217979978874764806826367165543895926100199555848639825062448840944013201107922620187383799946843674850034548723270861623985613429054635893685831709884953614065332031672505781710661441874446146782459084532617195752147039801648177416733607034142907849398726068534791310634893482281325229748364648125850052146809554071521408871386701270593288212186668299372053469297488679611536058161618403157376529169588663935040862211505422499585166897378968079478992524821186523185120306764930193450379325703185151183227533610045482069815963968173036163088125240664645273592470462638942559597766332878960034376364094333439550523675082870990820446727950113293215166905273007109849114978215687918632622154123865562556401096592482798994057031757501204185309981559468032147630291543924856096596681823652572422206026877729897735974045502039085652601911854401307497850200767252347745855005838240940922457719775753572148450778811422063872092072009471451320385567871119447538411448432435934927336471149285169676768128271796034078499726892366266114024911104302214955020854041107879364748823396324903110743095047034863514403039622011217102213250536217369328272235377506335331249346022116464078230372828056721336631850838821125879874568880281672517571549473432711207821540185294911907865293394137001981620238769220733754117189983598459494625840609487584408817741609660156150073904991788581565735263332906333318826374879236385705421691707353835602550973457183418944306903296819699092759173456364408349892060880627578927552685499595249309600787854576507554576885518700017995320823974978586911216190269928128783145524190004628042078056671849109262611680875015433793843664070586793967171075102651519248821206764417504970691645865387306481597683526105013773051643606398513812708753253913380266424385020535115010865882285145636955501596835271039235709196943844684551215941580328612299195003608149178213973577493888804367624249861027791228589061403400953389468573249050526433027725798742536776686773880296542696674079488098063107338981341040819016866076241341758672922975586610573824140887220962054818686043343478721951995661387877679206787251118355968734997067224991254652805380805773181664594946531917711115211737150491893232744105793222763885505371102596115049395461295281493477933346945965683549912565457398355453750452750492467016576229820205771415957303721033123587845196800117443551984480100088697914254504632194092909843208429159470178213042543173443664703934113026432759078161683328909478968381004323445473651236197791380259633478740788977366254504493725449300990635095063538306558965923311528030083428657590011661541760973452853332501083468236301815751272628075179821563028724674255281715595454484157574248667223996468674073531191701533156915480515816290903248412817024192101354019360286061505502581515274207643128668245792780442004487220312165130641002957208866567734651296098645849681173510033447648908613101298437719094015438163835682577104379820963445962891656177139472205832450622882704210634933125852931426758059480882772246212956743357889207557581683486884110948959768291295577421970542668978598801571568087142421765711693713841745703652505415179082512515206370743632592710391273611044486715786718995295110722001930177858168931909709127433060746088575216290630027839669675060109469135385265891893464409185703420786450478656898796598052790099745268621527258856593642818903749680516525823932075185119141275500836309353877621573382300581006701413419344411165433543651009973025238709674590585991619384046539364665238258345447331105917652269172013338011920766927400800481369927377675506098150739600048154657897344895033333024850802941237877096199034215522621359648920096802532616155879601122234352141424130453797682800948335466233459968685642219780635343194141291122558239636069011431616896943243824170284544162855236833166395421820842537345421124654815408216574229134763983478586143480907415009393640388859037244886252399201293132488113817264438506434830283219332385176862589559953354490559721032654169662573986616858108915625066075427293047799389199957370972754799538894252526871249259058103526004502536082018324487041181094645627018543628897690230414894224831671557675763843943967789394411455800068660342899679825653407463036392283496186286398419225780418814554817259670595655545987122230226946407444825991468012924817622160747815444143428303460438311409536645839176285412667593183252811736473688261028828727476780279755913596024538419540651169653803211402582550957930271248833461277754142784209467975687806301184324664036406295943490396285592090956907326050828161448913095244289561796519160980747329186606191663633373183232401369896434557918324714167418319422698604523847487646528982652281381319360569793754414834358683277207135865592945651281412790848943140066318787485708843227520971885805920921563514444059990675903576380312976364694075522838672004827554147552186831518346258267418956107224207830565258150540928926202728215172762744953885114564546895076219023586218760391637643127033692221516391964250508440488526661574193383370904459788536673420920231694105377247705403326521914106219558689403652619336132850061406075822415276188811290279778679704032277768888858729526116454304243257598754570863647976573821442394428994188898884086195831277980595242252086243887648824126794006979687977697454374556940969460724820463037251208977201195827971471972527454990453926262083160762918111771425795722539565867383508550565630456458693284529756148434585224157029241904418933141417781017625560691896219738564960421179484883850158916872190409678716572986623712793296886482840576753636046775903495816649153218774992569993105271081562094401217976631222384566451272731542012492818856736055642783535043200158494600565357856155458983535772540755188883210987370330480875901826364948877928710104315644771341848407693530118566657261958798053778314740446603307224461020966118349103626510761806806495931518191389413785264256385027686287800298557654405334954050746005149959461848811426611504310836066731155757469119589747725546167950899107306102354635464734069807941785100348688751198297904929530236631015433144783215025746499360142328750034886564699930375909477935655694595201954710128134611573455476786203980568951019986829288575684557229385375521213103892737973434152120265451887556595510485055747911765181873748015181399817747745164898220832072618051414522106691706640053206957295057057430078360223155444494180706152815435981492927701754236908168571992645861380559626742233485751182876633814476753691371319692478267456405757068405645211942796703713698514027806123998337876423083292428846373141956664439294921224429960555646868920676236003247491121759671402487000949383263677947328764493955149404015118256689362909516139920329713504011006058208651693948000064958974065096507134038639045126636499772033348058608029089244949386754265005922817453850126367610501673007208254923974325686057721493910325569036856922630217142513608396242774912746694751233241202396118071482168223823301529270148736417434481866000064521364013304442457092786343152749584274872566162761055282269669188163685686818738762757352075968908978498023289210640034423178855118496377409995114763030839903172085789092986505350989534104602206693344324475551962902897962605459994074622625762185537898006256721049108692198600433908028237499524179750000256065630732556693498141814426285160256232387789894432542174536353622839931074179607761095289934053163121918176046389003743378140971372517544313121203531528864060895438687586551926774380195407906114904499961780633288398040929043970350782242824291575767320162939675071404497446681031232568507211064069407636695719086523635738122205889637300467443460671092402115613365701055613597056788317768846535425380045342995747634930699036257014423425467708409054928906400985984459437793342019028080353280721419286872738400401209602131996506012828969423706776776468006949241930073871538739068576618108859094228865630143203984292962241387328592172474229115157988622533040076954562947379703442855156250694246423367352758993147690236285920711086953329993156812545090174191812078673562054800534809614509155647345046455934407697892444896591018289583746142467076145826780633047439936529958310359930602905474923124019553912559008073753781702962998306150120317801700255501803016598903375530600535971362509848129943305078185537494270295727575242482321931651509897849874650591056402022834983318982851666135970506462124447844566057912011645866177096421179741247088100995266789178624170767435461003629820723575516065778226160629366295824929152667924777226283889532215849411280562376457510038159331181027068333137766339949227488287696034503247104894374226374524222869264334381226980447098779704159423655655082944126693758401295519382891882290703803251367781412850186810581670442853124414733671820289179285189640895215955431559761159960832793764384550755970086088911136120234942115148502469231894569304444405522248432565602913680834679113602879070841624447961794435128832106125930562113955285182283915138605865447731294896804042050320240052740468283893243548830126292966202207984004126970260563869119163574656402841596904741049274107583341277049741459984565391728917569127601882130051154437443255680426916829106474799070563231689486693071113727125759848832441776656146262850015915311649455662137484842692506375091454899879179547569811760279214866783194550763099699086724312244397104664122205257442585379516042116990820331032541265983697841850629777719387256970209990996330563804788632478867418332036023739050393674680705407358357048122780590465594886533463764694244773548301308574173611694333707571505397543163269488281313598086073906483647841418492104111983466852999713551293804601767606879238774749316487093527342098184261200214375739694104784302247337894461825358219650393969714376338474261429191813906857106828183468635748732630723986743931362648172323838334798857007237849929667071166289301848480571256787044158641625872404662706372524641263016697757738669807106423717990571972546158357592394208359725625478007729743109653282551430414507253630557063377255777127149460034196198761717483840385449278393641063299478069284843132082849647930991649485616960639269007547424848484391092995941262252761526174883056499038568117051471125089911763800376166588711358953685501133457560836303222260766919683233122624534541198366942211004366415550836046368694671932547510738497570469319887563799201669744831544268133051545883423277771164105966770038540829892345320511742405707154596953321120278171450017719769039429674361179947329131307093541106988429523960758866471477478886383545352824627505820053767128760592810931643869119272821663776510885700150868131968387965960644558873294640471672872411698944347456940902819267404810610395687204798359925144227442135701194154566823397713965569978202442737289278751059052173881363818544614509892661288437019470441567583628663100093414295100473051543642128380512386197095109030364707308542207937089174982883394662687909951013072324037849190902822029010021526735305985735594386176417561921720524237357896608573522021507871342703660306550515566665262213624040625099779251240117425582841401420507368668321129375054341355054905786872431375217766506639704964424132646727101741961395233341663458189330190789042869515302790553440005990334810349014190964756789975881015835666475778272320016243934333636157942518426144882066189615651875869856276917827635870665409925785411542983541543205446187775511316065412754726525947843085724986037738136459308813360377668997202979193852517600388448673533943766894000079158107228627282020313934155238493347177409580708613362794741814534591201900465155675324059769786785985864106500317701689058371277681458745114811835164813439064119207099846672885956598423793956531404427708981669985087216719787473243560200076709610443728063625790198820967988149934241892623041827088574244004819942551752989022858649689848976318504376351751017835964149459007992570382633024537816647044654641078186058323415072862662853258017448255002553006613720387831433054446841021826255673866573279739703883217226977992031795559291061187739209676313260212844861034788127367326186015031739206770429251217201045509571821891166952824002728468464520595461894861481776572394811716273049334290733191537854956108570582974085919978879816128852743492574713294681905015121518504064231505362480494620201013272969465797863656205315307438359443150623556137904017941865487582359243517787293448794433634710894331583483880832140295356068581566494793798908676737904895928477521703758577422201895778800718861689755066289614964504392092210759310801572667063418829801539226145588983116753648801671565722813518034475579621315167866062507147838594208485905752133738290413868979250516106902579329817919887697777708234324578202852779678693426620317557131594740812892280543725284213500240101842522204210096254931349581433688316908386517199602204653903603134409697856113947794084952163894760452729456039322822326026369584721168964132900391317378814755228436540812656976518042717959712579189806171981049742157107723197549735989087916102908504405842653605468229026120492145015484583487066062287329346194152681591082868316276027410240459627770251888756067532313610943600013622143489052882910625123052938569435050321157147139452193883946972216070942733139225040391993568497141719925520115309774512811274551301425977914497494198587661553563236994219377637577482879948120443030355926031143271825485943849812852924621380711205807174326437277457649637456455937212482192141120685229960674766785942220674500102453644917855628224653052465802022810978239515952698908914055160906487143709272255436712492795125061669620132356944870020022109563311150781193799131490937032924475768582575632799769258369690915676650885539862611312461888914391570181442952202931421675986632619792648477182458506401564898284560410786153476397844155150383174636097356334001587649186222130042710451842955234295680033735849267269007888464879860251075897171430025439706170313209793332295618794199523342648847821097490698238079390579221895988770642400245131144085257435957419275094921445183502045107055521426423036354709539825862179844787968375845766103545975242636892212699546559730430991056730179579675988342090654669657995920025157595777624963214710704245872949342497758087916052134437482760888340182008623267889591168806482402123971212449036153690193232465218917353272733027730733204672854064067775260541947533154249796510991783756504526101047124018754475490484033497850762054249646890351681267123174843555381741142779352249856517425464731519296417835507799310644713814484493034310963218256863153340488997666921529489695547499181321284303031148690501969041553731802440775573050612147096441007833904975335386837841880414947724725255726891516733161655099973886486850132802608470329644429054343058733135219688894242194235092411051746320832600983905233896213727337985318005234697927148221791210860005188403665746543955280683782416193514236061879500609038168297728865772203616501627732072792771257371106664608761193128792379485244392140516844099625635196937478130177300773850475223290426198386299550790455542430855103346566787461241607026201890290697273498065228191116992265075373019390587111930584550042522098614508302123451099987503232649853445907678545316645246942251559369531193878451227993753060865087923518266305102267290697905021020847944111897908844798225686087657176946229628374126930732817127280915641169790390067966664150849640811691352341662086407118493275383506696789595026202637535644257412362085505778823286803167334556553550210844621755766397091035502465038439258487241243344960433341995650808160506930698375222282399959882438134247349985957151516220511382231454014705594717978288863278616301969811091964655720814291819123472474255227652653328609033571466450700536387555622125091571449482551128333358303461923830287268973204720305592534901888890285266984558576202334840523498071736938145033242943990499159265271959867941621265288952528839415770883250927229406181833380967583317597451292974983760814627582285442980861104905103050568891245494472055486243858191561956075511574768510222084471441471924607921848788100614950023649855351607074133690116286516807752459532481850152207068268318263157360525194445228855609120647225216991394551470325839853712780844099715062476146177065947722373550962241858247894252618575287655299644395478544717788721576312131414058030938814352038231052971952440702122952066756569748975714944275113776408863284968277869734844117105785356245849507468991860466748337102850830082991908385387689632138414626897375112083950545237758759534730729859585549808879033065467508948467174696504685839385642323630583439636734164000275607474208085334091988479081971692720719815760346516015138276677069359537535924962547516890609319686023863368777793996988234552414419662311238471325901541998107321213096647341361628269228664002444804605613475203248755237904889810648468525148553196668028034852965459687204936133111490016308981930378233533072268358008729320268046767406054240894638002138490715375772710992808382631949412201219445658354431029086682916734643764837644008584027174496025041608289255661815617234878336541892155365724447204590213239836721327809170438762023886137992965614952661444600808623731747436871378867742264886715436381224825530595219603289952646127732908606736272213903571088054498169419919196093061129267013392540105206132431285085838748130317395752584170310221836177932248935356112240758713809849195869280120447027869070098127255476331706854915747662711690010663555739923568222462016775089052069164193483380638971925010618948897776138840858538030372491372106096517458510393363459683363172707266068871314353616367578885657214291051096885551249174062887208482850761876592967551058032912723867995066571966855991438153709043180355192030629045542338766059242390088959843975391991827178325613438078811593988792673746950590281809140555316505852036090937660908864964768068255167351907926981864562648885092500007348690207031301433172457034042961940521872694047021010646349212743918387153058868051271089121027819902979347811606708744307648878730456378754221899492097095489213326000304552490154087915190140200887491178666166802184019868881055030708041241985662682702300834891725840803956477945745544432457762068309995839914351081992883818869299498005646005426550659546963401910727573035438657920205492573393772281220087194417961934337854156971080902817562422361312570471409197924231984375993487557469824268560071301054924823135423006680248881811442410538901124306926796564594018098835124248563788802426376459195095706452573605396897539596662297828268174978617527361820492679480897572388108041386386535508192531159395868170265436696442945723332511007881675449092611596162241907944431745389811522822914925582225346866755893459882034624125705972167617202289533253126711410412557093720986564019778627828719158361085114178815007599142444579284923224166913052145685880239502874274118092012144052153296293125942353802274538402981647348667000550923967361041127539571980703342094957028710875744425107921652859046199148724688790266994377245154915479125418488103841117173435919563624448618497094220010688365643582920608990770907196709576516120669793642629428167121505742069541725312417172605538840529981497291070301378480694343029031956191143783116259471305976079741168307397967647328325093871872250818223096243797194360137037379192226798845495441819173782167554162285319807452167047468936631160818715579968833404825953091255900717494765976596070412052703609331325781205058565973645299113024548334609379235877070991793543501682584943963576906136235719282818024321676874902614424303389148334025271045151886217549067016020733993127866693881149685023511036417225975496538365679518465989434791869060419584792398993678326858842365087907917215585480143755726153124633601411820417239848376268761778965524905984065322855225752749120867630113503870029547480656656248511621043671234238330441925786560529860138301168982144173315723367293231045013409203778540212928860647100143776198269072340566098836050304311067132905327564158165217252283655153636117122812940132976606125203490748768903366017004307911640659058931440431357900346134895352353283318786830694674634257295446224386349082976463843770395657586407668676618386942804455704045536308640542944895622826067064001190601329853541331082882907607756511513729454009438087945870938648832587551380937323772035786273631106215819603110821117081826558006660744359602641541622990885683553665479458398086090594290927840800426163812638238802480742327089640521191342126716079532707580673962572177601301952129701943193277261250757052759560208407033628760887492492640805039284485527932893180785044075270987416810791554726298102982808175943729113711540796475692488816857722171259544522989830707807108785906757884898905904758512205869406857320144116607465406007124634049345097490345314908876244785331968808486919995404799054039369062568519961874831143368664679908458320938164920052498148012426645950655629481413627243287522668097496599231359355212788171703459419745202714326097467809124671401926348592511354358242174876457898528869994826722745607581043568051330430615591725966076987039926806257659493473459222800653088544729280480471362131665170029913395252700202102225789615344793622221211162393194088361248234010767265804258130745367625584600606870195056139651291448998439886597543077971853324747950511523630992142531624422694751684368629294971642276397710910320691600557239740622012339016569979248796791405964587126887136824861812602007174961059185766358984234890553403921690522498810105025742461793931067693214858014931277462762763286497474866122761471265939968244142756408901037839868616596290221143186167877966698265990453793240057525283125812368819489885875646107059794709337192349014859726965794140202630213168846638755713762851537929217681782434172071512661385499735047704139833338841109401978496655163238538877973385904720472349148987662168401833902676483665194171226450811258446059987968965473587621721716042168524872906706838461409264574482613908237276613066161047013080188110317946854768142852420803997564774222168997683552161786911879428813412272388197815495778137650466042545262000603525639393122738270937077826615722279757887857843436703640292299491209434570138810278246954358329331937983483708860839590721940095729297333302455988616013550223360645115399482030937465689927889655216796498975757292933502857261987763517028099809535709263948262286686961154958216126302192016595938802271379124481187325729883310433296080931827710011623402194146332919508601170308653360556442714983389955529320204280785779091114712225261188550765463894298468575736152399684008802987067170754642177762287323063769076877357561600096187944414069550021331255421967619215746261822710087420205153866253613384248779406769389274527915367969067751539108180946345622170708688474986267222805379849491410063005870336123811242560385419330661871268605337190114574070327567677295785799981723123672652896354793889931802783773379395945657368329854316887787297236958473594269680663933887728759667880373907034013226452597027219122003042627691060278224125460595798431001854181491654381712644406210397202860681984549164100340116484811463706364969484630840385746904534988176733434412226767359311078017895466614594236566974496245955806592741900526475238642944320518359781185090617648711666678318451680590207015842781610010181170342715906772138679558897288572199155404619919720311967082404093813664206859740457857060039897092511647252660547432446669661487836322195929716092383133262939288889344297846076957926065208431297446255670449353766818489564554208850033004698314800107271624680705378012534976373880215070639349627902541507956706730385937110121534695481752606606721025774872143376043836149367180443673718509323704891127222776313458332234112818618873832398285399771456848566370702420192335373722226234460915890399914135263416800946999795868127071682370921982377019379647725919887535485905952419998677868245387361462616207803657272923849193492176098731889486768326920396951132385124813038317741438967085247804749368675818808149775542838965407472378098868078668770369315920849991548220350489869706025495100970539508635488847259494237357759609331005502811372055385078279637669565428772217779663383984457500943883666217360265787206608768656341353869916392350904694666559115560843278549687638917604172408585594702234152664359083802891433767480084496381677305401522583956288381475395721739319123514240605036956061343232866082869651402565021825650338690283894190678466108993699998300047986573914827251276561166938586126818654557191677431408651819485775686532118834137649799524199385858168170213732199872203826560683435789093818414366934438876516523619668028417928427516186822767803403021033160806833480507759026863666836756230981856534171648059273836476337587405315377480700292473814625049503648536294470902528399940773002128649677220907423230986837204448469054328006503096012786005629664469457332962912899506017695791523318267853593104552720917369403916055411593373968318503105896946398867281933459358805693571932691884750389497692466614545334657070999831561924805540017108972597914214312682229325464491350810800855202886859584969561107239870845506728908020347246639171397149165144749649274535035504819432446925385083438556727594980696399175367123892240330026191349251366780058681873507868418460667941440222487711639100546921371275685511754997308003654545590395567237580988088284926221811454765332622314925815243804984787936604437152549177618964680340729200335877424288965693543227980698651375703295181288682346021607160805831562786313437383996398444995067826373084110468447094262922930820814517017243478809813166813208991028330628492952509990230433953257742335378966893716726448903733092598885042079721996518329023445086347904893444946625375365500429813595684084023063863922308248039186264835760458623339384969067591859776721743525329107140172915324458192683760391434012927425321708472154160431861433711837747819279208460360238351938387538889686315461247951593608783256678766264791455844717315326267332979770934643114080209102232457204778483537528469175334156828002723535028183690382527726243762391768145125849870624503237567557115363367044256840112073174705518702304251064267911759551687191312492698183144522646750669075752225738868298740613229803750413727369539142015284276487046936850277742678323598768468069876032835316435165104880365672935236728527662251025284187860677005254070826618562765152864494592432597507851140605733497827551628496955653401081546847583094702912876719209530574010372509721495290127553722807215485512585107759504237950515763176512549113024165892353209944610034914125023847654397142866358692249852805077160211124861580705488006059300369144355756431266887234156314717930579921642860217581495592916139659676806548043655975701190756108526806367949526692677992772664258284099962515853804645405034261020211532864216677257950369514809813244113080431943357458330568721280657354971210121015801129726467293852785786352327886596312610527878766361311620298863186369145771220757245755975659505534662788177803161022540131528932621013652049265932014051832900751014236735496601706985926003005012812454644010553807344712811437728214246735201692022030584207061070198546842584531951583061829667627593090580468884996180134728766346645652965858784529389158467128601606682506130608712667622246019409350637617579354071017587546318714674359593676388377254284796652244777005283238700140966963633734818787191604795488150473076411412365233345728170743436449097263197709702539264424276772985086891705641953920382223678067565495584307647313202964667553678209641060538282662990768753707940370520653699119773336252619100151811547298262492099514759425244618244735416848162553345884824716048963770913693318936304779741836981806048248117775168103091646280903858385034482394588502503848291770543649362943211814672177136243566136482334573402701522860551359651299708062923740603030153841851431581247547992593300002812943434809768967051925915310936471837591491557702536929313947047832090357055425052199657426867603589148188243524269047430105013827295216603121093962837504198048738096414585034512344706798592866158574635840873807015463951550325718173394129045311124772182631434968586896798230832067957446820500642931461733151292504995868901749162992441597586476041425165408473825160390827539912320657533253827062946857268150628304443409344415559603345594161326146838776353495186463615596430669508329122090921995516457192596896886086048375615136197925818033640221613356223375202023171827411721658954567758057625884617377947228327330172101469110328518247144052694093634198580967880065587316476242182826018903224948560884419181486084406605094272378136995366614675165250031527772843240096691138178879257072996533926269419899018117574826949435523321924595555535443561995542149317199831557674962226124455606355262586287978838714843762863437898701270920278118151170936403716803179270332838735712498054061958217296845417860817153833168005259746272788494980518871482120475326727404827542747884303750958245254913150932650349961906382830705082165330215521067097531598909342568355238157985657009774280449774470301458180622665963857598068401885812768032442088269530583004436575401251321759224180029151742376721173428915229590621157958951896430858913948370043683751633596107750228867631280026090117811407947106739542873487776529890180643170592778577134877022787198399048519872871900817481269107928408122009997130990206575256637056009654652638326035603230262350497214792765205731180346669792603891420451005907647295128436107305582050805520977803092581627236264778515862098210210643560263500912993058082172642991463398046308230754686646852853822495084502232578352245613526514922854628041959774220332462513303244631031124639905165313471850694532410899711467862449178175181192516615260489338771833191033703741699727073409172629010855310305233139355501129033114826388708835970630110881707996877039615350907242025096834030150485236637517702788981168567912885093134129482647715133436960339829748913848319172161859317538839520633342685740948832895526839402365549740095871378922259564360111534677584640500648159336949040034049004202370987015625932521082972649932020862386554255115257581740957361756535116601740641505383254112208768721773952453284922842499079963541279818851377754244538219873928643756744262716403553080629264564113852570873412600969325132684030878309667163454381655459197275128372905581145527314636340987046964626885296268887323478011793028596955873212065652245224290470363169531926027198360984237779181320029833011002242884970563603526700018306416332578785597088134486879862156824136017837953663383310568419607479751328292683431279483201741152004165631518055286352655082895398744550923982680704519114992097312312677007082140996764375821791261458157359314111563841472867993087743466376082302798765072752640537146565339146473910089527379966361468916342656333918973632196563064180871406439419569512536927146418688539665823679552710195917386703559212004731317982972349295838323567889088115425300644478617542546853606923755807523886435248997675620917583607035577345492732458135731080379805003935788684153060720156698274251914091136115970360536611496803180144057562004323289780570458802189048337683846577158653268603950597086002112940403110574369536044964493788970632473947046798130782419790857272205791992535851589505712725586341277802986188504686583589202689954819046528652918865070631540245979436366760025511995617339551890854452714443352855226471542305569707857047968480641641021451832509060620325952495976666597136145244876252349993250668893246022121001235416648080112924076128503832135474738877466570818897755545079343594455644074062274374769542749114880766501348636828638658150033737130049800607415977105251875352540726590240840047959846486282614569350994236929506098024913108521872558381713663544649726224362997303639862990860186209323848987248033045479427078824146717247891448216179794039904690164779571496940793147236705697542162398263110219583097056871806866062340916060174240021311508273106432387909426336683671535224405133959724703080339532575694949845257678538609117914223939143924786987549963819979913664943993865505977013632736626760914748542864419493403391635426828025084034887237838581635321568752977706632786326707812288001012338369293363060188122803489597970600436792451162847426272665166138183598267972747545145422758830920406661305662464142742679170794804220747196076725044452665408430057312703513672007514427676670615793340905182571953749767060025697681560535779603859213068570583693987018203858566640156902254592925776527226624362593238402595790184353543172856764357143173068461320481461614861498271088329411545890664447859579337960623549228553606482795100216732146126862586482955480638211312702716281496665119492313064168319770404145248552971089004331200944710842943712929115329621547154239806693746839339245323524043621126736406939685652942702513540132166953929053486323863836538906827567500779196906584530052714597876462540889255662012563146712523806644653392657894096924035042595681266147696595697900129404537694377941761539158556476602040507252511745802710860160056379933791158592949898995938620019423536859178456820912546681290892108658238790472975105534235721903769406823517114606307808946820587319518898988923026990111668252197345695796824361850977524377757621434009173614765390878468481042962615215798380764277650119943722202044509634042107504067464573800059734584279642396862609164568850775888742560104192270690923445733226039116298698957728929503081356088122283480583488329367803558929784751998403154032902635601394533692253937478636639143885597567797479260747403089287434449662223866506259461820301393625906213418104994023878346644051180777180086509338281891929116824922439866568812353976980748738377284794589607455275149539582472539214375890661089156076047271736978352641912535608873286022899649101436230774449952482312911558206290403738521490729839338460389401330833387122141203012552425922734987397420303375600050159326403719778361340780118100450479100567220148773892675214649143918711294439982533784965531383935416553022974890457108097651902609073403444809786699248430213916561267140216597357746926260845935298590750738831252652646039541086033174142880148385449246953479368551638230076523328011253756212087306018259996470265441359829656874908335511627780836749011793802907717392264580165506808694034313535643538068102030321996527398003057324814311644479842016727503810364701674456701159092910587354023045664562820000717710619108795533189681723147618398984843019972227047328499359027617538031428025207917883028089690910939810911074447720063097272249892626723848141684129927392008527714410421120302395359311574204037159062722812196736911783327152446006165969704429776527137461538604128645261660702167284832133981773101322783645108784972274764652821739756382433596194475937214239744227505199101097960643798237692608321038900392621669258146772799703769111870237601983440653952491471169118362306857025073839651644295202693575889562816301063686799999835976196672682060774263828137646330514297353526181684064602915985366223718355198097173715191911173891487448591112830098766613891951786240834877762535862532514748458204488378981735548091628708006364789653420947591854754059012323342137220785855386967643916270535533282942798919659573390829343713237264917064312198527790097765028200055300171683587348811141506614914339032591558349845205413546332137511537782876634473347075607889633643819880185142834102488240017300350652167491526194221541236248682830443897169213916700734881834973479151997708436444063718333294588056603487778965860162078775848326205248849095078446472821594770001146198918325325148039149146867219751259873441215417401642934291369878290922292466548580895205606854724383532892533060474472756792456167548048245223612378418412488362190024669571569833422941773708691521339016830091471078705863679144883214227006614645070868050319219837399552380159684163383323366252391463204297567949948666781970341224360403310653397829169863852479094204123364627542247700086113434194843670370496775746085271588679422803095505298292442716239051796218347478759505129226641999673662871106178894806458116760654453193455629050259371765359674200865617500056420722759589315292732826938413011618211645185576591105592663338153887253802851036203267784058294009438648505385931614515708118648532696512025765270588285426296169073289543972648214060844830149995063319851921227045842553560495593240329603271320235107871030148155462835249249028067058572256000856114310761980146006742589421607662638103484567419002668959252310510440953722623316799852442189932503161743085846599375818551951348272703176325705343335078625512463270364716456917408303073201762749464769716268893693865671255232282184626736335892412011104590662186505585046862139551467498065976136559795799354729282199324040657290694080270425435094308535312527820284647521637558805867572357642029154391732310769483533993964132459433313465056437294614199238104721689843690294075451670093776824236092110202575135496272348325939513554241522828505340124323485359049095212379525039421756755297064962262513262732560515877493496157230423042079775763788472091707458293135332882446536080560797304890538657021172050759221706505107873236295493255425948952944010507533805382993010481571483507121700706493741003098951395481258340803007219982863391645286516431621947912466146154810031608008005691710823565511909622342823452442172982112009275571811129625609299797354130963391366911117590784814542654012523848706033121863083307589875581446697369807027258015648490330969026468509720623622537405251358851762380777333281823505943124253145338946596841208782735733328233565089021567973207256055056510659992100072238249427020854136216490877151074932387614573607711519018091620461310099719135697957610471694670552284638589568387392470951365742549387039662389808949783725351095407843870953474246985685965162556485910853939685131313458834848514559596306313125525090766829532908289993990743010939718040479450318611380181360488238424691246933629393850069994718307123742819386871220924897595116955632494427163925954945308629402797743758006901893389528542296991739673516197381410974831059179484898026817618277235303908517823079459232803332190827561022145174485313295327319825496929539434493144629711998072588818022326077473203105916186768720267273534358936125904925300564263565222697380856809038615718078211328624360405105409419081919295452728581593550335786587556125126898104809522123944837737386747575054684948548339259339594586510677702901256501249196020563490184548002458304394078551672699083395930563184919934734354576192252900105139397421765101089700756905962838442410076507879556614719857783694392914847677194364501275469385427313066715307107422945553871393671882288302754800661218776461483717161592150118228562593168008356740367850645156802887151416564410110588051379947859785856334912901495672124447856208662645020194967397205491333585550089049694278997047089884069558610610691851197915154958918895231067646049021521259098001575556878053153470141505385788274534545719624866919439027159336183074139831528528215080700674962568511088859977473183601224604861910593968736629862537942374772808815882238719666132094865330840429983937831766514041675420330623351494263025228552462592523561519933550240935587234872222312785802424852244809505969014215577217962842156456707181245646441044889299602504665098655712606388032730263895251061484996827805090122201800253721020040584818973582137307679066591194477312328069393055844056419212615648875350393671979753778878956590596292387873671500364079328737990067752993824579075001026119341957015540134829646622809459289481291985809897835231456091253696245682565727228623837501170489042453871590119260785471238269158884859058324593547704989951887669102629663872866169629640409689043180451397262675595500675973719965567877014075660387394395605205751326599713951951144717330108290555631679584213674686307239036140556282510592812711567831183959915942631704341536479628764536816450074729433301731191134338525949817817065705534673528520646847720840386400210966866406718614600432659858502316132215400379008641968201863397749903237135266349135948977402371644749885868535806113448655344007811535004158827598759110374333738140336447027878485513005582947190303049565159959574322044800362385819550112663266354400121154885675385075228740438454271566535979727811979403314790663655747550029245413827905137690544377900364385379060902313163017842530273793981918367171869204126040399088064313839730331382285867074131352334959180985608941678063041880072432548481041260205436268471744519481650373421883580381726948249978644625273870680856586009361846460204792327226571320979488248316336786571594928962547493019715152319699466076503392702612839958035224754316219259879933744716017804773993589964667607364432170294795633651076244201210299585571584531286643429575510803901038394452325087835406525606061726725317382678291692708433853348858036061018364148866149052942518446575799568506261117148480999128394733227043775528193187280239318112698664549159894098183193923432542765425674913678679033054503693987570687115846848232744854549306294953219824944169596372790342062177499107090675025558682721799040485198353917524767590219726071053865987289256527457126775316253867409854610403294904015108910589197330014116367446150070311269150486701225805322064215466691366738937866290499894941664898251454233045317401854021973174128315443428648066908562402829283058111333558374243191900828376863307893705814803078002333851206856712196017533617173668987182462766431758409103356680528848666885960057095802481276856155539079156074966818722025564926213772521111526215597661635254359495964294088548738766452693332975989362238085242973022659385512854272881088783456647815378772444856681552669043365721579304506224210841186025106370759882605532012276044248050933709141888822363063822822392047192959738168869237766874496058488850524230646486757112177787831921704204155581281343788334993318517144198018355512055900930602340556009317746305276552785610321976632876986873330498977005894180848660865944181994944022142143935882029059242231755784661807866637285492982873409982433334648458153093043922273578313919377849482193951456792573434039722059607621465746757881515973442848459039968480352489323349943698857132370555447641543257329255872873366446075868292701738744588649128131238570033973861405341569457221239433656366417689104609282115689683832964052290281743743478214497234464269616993077573995235266612791315136452890066136545490635533356333982119371720471743632526571022545364835545213554070254301709739364987814977970203417590326525794450238056339946816558267597090280008561486950198245235853997610523692394494546640345792365276976707576802573851588922830835915339669279813487812931825401084392267117072513590738481553026187570609647729611888056567333842280604928153502327084112109934145459212996332235789054561967904173761522439438860622212335506893425855505255653727263039952354330746562207367799803462786020067867820104274834008453899615290868876693712251110041638065202038418554021305166036362532126124731776260282056462680025247031869567653319058606975438195886526434193867776537028912596067005421651472657748944239380860642712250822082894144777219487608831626165372214764899446290566427105562663860032910492325140150426808609365507531982867593678199746411894011378273609881870164587592143625000646415076218508593867871564781737127402633812593397607744322927389840513131874772013746868299916898586775662869810130047012172316149732782045881342922505766442220972402243116916468399943852457606291716855831197833303474989167794155439635518899321547930262694827006703368825226703689449015427402200077459272698631083007517474763555571220293124894845226064360096060127578969682478598999383266755117863794674943441765044815409837713889216321073329328052293672198422331714759511632227299473330582315673194124933179898423259164599836336041142629282282905439675077563175029572020574199045417363253116566266499449649183411376945521177866437336048892256051588588829169314153196247608864413326409772825366847545691929506307701003764773289329685824265616045381885564070652780632561824568628465882074545805024835183744812165463294354235712285663076001215103465319588643414296215786642179615395421818730273354798349181059037915276643511313528159187787010884679317482364054787939560645966240216072607800523115596955071756473602295482359747567214487513679329119190355721445859534309577807674923289011265979417587480522071932383617665201139323206851309247365775266967906377994116493232515681034050843839166869027598994091249200265621298080825027508094713558588322483421617919810969061267647569094227339953887708501563249834911775448296745322339310859228650989332193093732140379295290588205874618165682918236882960532357660606655655212615789610164364068472528192181605453653511110464766315552607011678992808221914467513881948865592180996187112595760705267835328128504653387876086165644467956593443329841804683286166622842013048700492463627208439297010648451109395158508946310927494080804160941463836389535242328054159255779103555908772109492252269869953997793699163384391169773912432895153103987538858228553132349156222938078605185677759875493562184062809022282535087735777696048293760740292777720247537670254976418213524141793120691514039019457762911956123414682225352164951416365211857057013687970302489531665953501592975850913594156955191910673737623617478897990784418759870489017322592535324325442969100849452202678713678430144316345555889789592391121892009870235542062131851730160713327928394123261144455148135721111283516620042879350635299666294457115146135416876974305112163564075420952609203939458353840176642847418672131381336215670749782687164748841295625828388169392245490940362855496549152696975136609691353121508783036043892476345397071642527210348893255226582594043793364476155401077460306049839404463952462165551739624023301402594553069500436319896660376334799168810500613504848767635952882428395492170005454002266789566947952719721229430824629246834911675729154960435938552209885001371384644893752373982277140388987957893986798098702660370068257276316211052206476220562485684057733393618722691053995180292514765102608368447431443039532470154046253745713669501226314615469310972794366897825561427948152037964931877555055689734074098866850008452868822029258145996353478979581493111596397910699383359670250818676557402200741471054290374819157775301682642298954834848824671032097442834414561003942308017443867764965765635437704915717896868377286961034447700101741367618603205086904229931574069061766901342761024197871028227956081798505391631450581821271676222712211488689605120024551479793386451422154200065775454338243615255802119121115215037941626123877109828133836710803055610802641924008933511209610389283657765716153601092928716312162045968904569648934408282106137976162545068569461083592132949227185640282904842053448068670657493411348439689876782504191621495550741402098585504086075143680010812389082411104912653764819708357967310740633146782602897823389890565938236739019211131010355288495734555960498485764369987656356436133958506335334876154568929264489769774609866524884607628747822912019826407724993276084400721114917949409629234251120218593798763303110912853210849947906160545863960257942105115107666545412636828532348940098363052877700050157476676511672830316222849787317448631023490740557043769431313641366647236329690798661247824356435071931930339387187687755985550395634213191589904970630548123061790575421546336875831508654605187460270605278226621700383662987378346720435845481543748793773128976601457036258766547178764715532884000018324679747328440184966633079251790557734451482613776135974877114929198341373880855025070603519740511349728277310002105070439276477747745989731890067910759119687363137077055835397960526066360837971298053296051622458179557831487131806930587277003126369006787251469923756608496774659702630086704384296180582773256176724878172579869608510725925398683331895379840791308722643296670380310772813482997495481042016393387044025841697605699544461884698316364774785289665921509111013668148030892322582526300190775361657111891499386627840664229311731474855394951377839208717586207592399569049747812730387450185234367297137629312024465604664272900601150676294808215333008772113583986282555057709699906722668836105330198336702408369329750948116633562911186007217191445710779096254754513076828123881136773029703103761400260859313269183036092746544688295528449259544397878926551598702906467155028982882152781820660967645721490015160475304170413593131977995940307326958223504878921735093037158552574058240700699092171809943102613397285856495148032150334896452213732397316674565964918096607664481607871917929749853873454440389534638637005948650210205959185473275353890363388026838806883025783131905584141241873031971545473128127599029117391967110418779352098125032208065844511851436044840613597660303145761780844337978474164532367283790504564793103788098694449852365577681714320940775240982980448784546989984379920243708901555063774909868981924303222448718145785313949432723060584981751465585642259802905114197733718577033377989438812945763440430708450678212679969909659018271023398761965953516252935328412679707055092055252144965897838957205630278780131658510237623083431488976956129078744473622303172355294428030131325228065013978493557844683131201590731566210201754004322856188020172605477932192334175137573927708191428329946738069304107400465558948804364635267139167164774057300805771995081025524486813352070876284509048154395293243047737898409594442379992235240117348759559362294461221974750290792367367868936156995555838360705218151964909838961669070963177297417751565472914610793651203572560269359032384938961948756239561511635228115348368344174643068684319933554338126993069890331228255237754719240044112784775072029241610743565118754842990957910725764872302974508705238830964147197136741734946854992164394910454162855036478193857440091687011390692193151452353764142245637423738692145460935437499532360204025627198029062131534187574941941944519927327355962540103641026197151972046939082751804525758272272062202841337703525160505273884723255324144018978084067321303465926027861467257663429474361817553262654245758253897427046634900373804568908025945159597621752260524209178686116170396832536043397374261760421032296902843382629240002309736489119435578056728609085763066525752972231600984899002844651635994362174731901679116757413379057235433393779756127859634059923927053305842801077213074656076398654749627497525903834379759189814831880275485576988504358455048883157190714343433941860639605244727934524545680921219257186647144866941940908384039466503427719420278603083414771620276416829278799828794605363050957523166829845960352012029099577726223113864531221730124294183906271465754688430752854985736338778745220242294497794443908596702509749610174009767103117529056625768624109286558037992968357092657876774099368683673345963651764406596381562105161075896156452433144182941563026230229655699424583076028735552824499660044274545964300492747536516113388487381575082940819851869728414699277196871025059926828168784711326804755395192319891479208380378342703297858237131095249450465460611306629239250910570614132039397744279259948471423302193774591008519209386694211944577507939994983787462644147104675295843052402029074879152492240333652751433830493676559421611798431770459512819044787336213301054586958570197078132212591334614827221201813321623938273799023072226641717716238668935471539045895982526317525878760556352634510946805598708613630276736754746047564511955876872933081268393003362142741003864741660378926758244879714015803595316677671645639053531180360815017287762351026609528283733006337494090459425148322295871490838430536038479373342143967229414878311657942601437220896175544859754783477778747577189057186130928837742304509586655723713114497951622888643918487356380317576716529532666930809504850359949831247157965201108156689711568233966258222475364726806272343653666792374694470430314772096023772261499021394690842561888822005263155834685256431359888550836067088997709111683777278246556590737189124200197077498598451906372747837448528490042520452955732717899795559944009800730974131992133020019615136193203846397417947904319774323765531491061933994900953114213994331606952115175316806405459404528159997338042307184741583215200861348724722788370124392580020438531917708930459542024302910122779380204456607839196800086975777388223231168221864220473607536245815361768048394366099130726216480254609469480942216405142518190386024121286186909983809542029149286139113825149446751844595318675069211117103162253640281937201672378097110756067391955308632039599316766835279251288973929571785631295932525607819152626729517485675074484086509255824460255457356832824591539390044609980324201962396564081534951651559292261983214113469624625596446339808799852548896107749045944998876417355873774333654546946957897102340397819986431281026577970124126896035886338110720556006128048362693052826687692804560450494376898228244609250123541889845698857977065068210684624001997471008486357359178206300668235518458680462088192793277223582794639525067455828666948867289206327240504556437169449882324016928231203524487887272537672633377665628002544421943346256292919706439516201520722882553716811704661720236388969150161092872701748979444470671453139803465994638242353703443774617580003857189655092719745720547532464093879756427654113915491057106192063881166866385657631157032446240722696163580005730355437147925578406275870476706938615325302353719894447766367879994240865331371722590846903176908918404748880830296886801778052717758372381379588631233177731690209484507316863470710812061796847733179234534145778092421560374803741036895221869179092309866753360762247248867723694466852251101033979031695001228216763325207387435208144724757171459581982270535372319778055344092372093325196641235014913586552646463932824612791957041479448583754063765168723553429812945854961271055596069436071449641500984380076379973651478504912718295731760149561576396458285462216889798581188440066566176346420220843983592682486452348779909174835832408323710515782907902435240221888030548876891006598241167925984068285516165634120967174581441506066638958774062495635067981744004376431829006457061769743137608590964587864472443431157430873833839014756575889300199094137731645554801956758865125373877275676778660147258013432282895976122454603838090427878987528935852878621702199938255039411899117210196385703778865639687479264642759832448378785375057610764105669820583703289528972064211059669686432857200886596798670424767606479511702958397420628942962157590179556354299452014631687181647490732552724206619075898428525710397130155080778060961122001767320306579948123892683556421676215689694944028028288308075082045214353526563275400441934442927300180214386696155592511463375490177137921238357897158163945747951232068258878199885640580562519011085485593658505055730744327324236765063363980669652276514753283737445686501599084357044310299144072282309175034010063247394064299084182174634127523017605978935014353354996008619271524974602527838673229404684915211505362097446472686933123578052680389017715115897248653527569335337983681656147990558809110834479098521174288145009892528047639681531123305506470177923834643232632401740886696982887946537222277537100797140759285718044060514187844712764011320769669578978901839682800054971209269382764483101663823025471122643287363915109531069331787673168096509788214204069558393915723186308547271285767099610691013653675004624552166051389772062120251301561221974968164106148241683479328699834905046480292596503525969749226753246194763498183494128661067911661017953433314658826582033005897439096349577757535317126410022037517858771871078737907691669854008499750430308177639334669315323807331098616790337847036737657619029246250019189512420681953944766689840923936763175955936499921413900589328803969609557502141211074339280187903118888019182579991069206730091218988659696180212842676516221355691664743729145895257462734400157196617079730520809489711731304052011823403306684147697321433495630219971467233860144012916571828184786185894698116450451715488419504888638010141951847214156420464012853164666408320146709937044051231684993171655129814110791719662519459233157736782112833072999797527267103676097206335190335360908069476990337948436781086182141170506967116152077607480462654386818737714573271614709300706083829667369949299440794612004515443843602740317104107131136667139945348170622376351928026560794570691769808781378458574551311540415318083593371316533635416557245838344596061646795828198459701897541704096645121074142502035368775052743815800598007533102900688662082930986607559858186385787939498225014690816278898621957387743642149836214572789581078939779643539271442797722765643618038892349744828894638921972949182453613319142080336211124289882023868775378050638572830520618940286567388049579209625912793476074794756205209675491634509120551217946091671133270688402024299341719490795794442473669731274152364101441293664702549453590336807683462551426482243870850490565240685384774143982205897254714891426484252289341902287162485078958423446528876933882795784420158081425839093142125421275255956362775940666961784917846672471666574724339015777298696846460132053591820590008962032670528782982712646028761929549504157130084123843502636653543760877457536215243856331999124315235002268497991013910412445657528768183529966750576710422776612022982393868239852284729293185164938447701542604891911979371782059846240977125122191554791246848748045511092067367571041662327773280418462616689954230948788201242074777030036041757212399234857341839810759015824424040740684873466600139064670169109849220809206412443278165774033788782933010734697698617522550310702551125097792112209885467371387578105141073972158788055056176772702379765362447554565573351958807832754446192577963514928347239246904005949206410557145607531620128832722836423178494915821774234565143844325914325202653634486874899843314818741318102415722324134715994116177779825068664552427408719302033422436423061507977312259754088887577496622458834161352571308475213745189933579488201729594445549004770597022141531192331721086109699917205666027958002222541280392432220855344140734176526622068354910308854680845311912298921525849558435699556641282751436615309594951223039190664082480920820866887959199949562684521394842243493774650010383885994092099376508405248235473210983634794163568506957128175436587979307274231492764735119534373876325361025668616732892860981598047597689130568003159102667582302769091711250519508190047106341530295666780613542158485408691911987053021325504492944645303536997459802189722670038908363978628912638862682605419178340328025653919710079013883771847067819991710747535795360157994789975392853715905422678879796867710287485298645572817365832903682594052627091236012488010544985360956412003937387826708963755826949674584427949548575849141864270236236259403455576547118209783321338223381053180212662080607758645912006103243574754475619035994304522988755868823945406730075675398328264166021389429207637843886576155139354482134103516381582218342277208296725545393704038773465767783931466120436777590264405302352007599233635601351326685774361905436917599254975586079820094274612955237466222496035927795987811037222256545942798845321021267871346527846815858828010344859007230020425518873198254335539852681765635227140943112164900409964274678243417696156668347784480210498235531218596270961896916173619967012116414276806173770507744023804343870370802666006907831220276420979025288596630484970418022859473952905968637337943969231255569359104058425823952303323570423689538920029752067159053007162726947405076443122755709076750546616844265366028410511642371212385839106183326811032410191928548059702112107234183682424344016582889861796139588671458158620931965196577273242952727228469601778116630944486681107560737720951642782582419701785626571316384058039923344303401200312486196534937873119826246931961606070877353764444231339479118940210821372691607532361073109346748514268094826678088445342668059447505731695731452081720514612737123503741177805773543785350078783824302355448802909708486680030632848074428160803456863056086474935816171884976443419994101293974361641433584638711198147251058379524377487912032233772079671049656757036557744620030410246037161305604228625193185003807454683429919836399654499665165066936481932637540417696960822204444144476399249658050633882184125068680078371273205385213880785183469771049168600702851283419515006460277527377627329369478152906481574537384344490162095106417929414218740035885363592353596038736197952903194648773063540142235902848953814853443022181951205997167217020249727966418626616816150332004378996620909383858569906160484808000404454684589567249990835077837635028938297678372790152039017490123520787510662299313420285574270934972609528303735769124013229864251801507813203791591047064872988831801930704482131871632437493519110841334583964243078808035763359962689457272746412688463110988237967140084661917680105839601146637206599815361003788158441720463690480164667510746470182114215256836186377803362181357171672127076743620330484018726305125711450050254278057192877647250008902888109066633682878350912001478045418601163467883080463691861676849249665519847940864048626295271514690714155502435529336183680078644907657517111361005940420242801045874030216035226371123944902813926335927671950556741576256331317423542991214763759658777992835494698003091630625023175008267200416113742810482714043136122858938809652676111907701805009858944203009815165737658200883278146627765670343209820945482523211605374303258256670879612752366736545996287731162004206546737040919290779101352026761516744206316007457006658077527649132229216297102210013781196402058262597696882441932881220422230596283552487338236604233976984271470161109418130821003757359169055556843764342195358119027519236148773876314239250940871886113484793104980339657310594560569053908269095468781444595885721897594668594403013836054497934697272755781131222236378992780339550538536153301844760399254389632302552656246804999865098041941958489635820879418809261172643840022310567318951163680323049033000674223630320951066929495452898973714354564530059458706639612475401244724887497066956506523190149859380877041619110096272175606619297765724676091193246943353873064636913296412807715191579107275027221397413268591025221914437939014165037516456406098584334007367173184172336555482126588007913593861904740526234752186936081697553150763581283401685169212410383160091081445388162387713496673999610241591049270939948148075186181260135398357834780733148964057966269617143595930130537797078692874010509143073057300954730097795402333489932554708910619972791961151404985840748176457165411477965980621944632499519998665469403401931604332037685741818030325264302117863295276252081823534012410496315053146147598386472570211118203680910391219945001279487116463056779758102219582260263769009877513892180050595657833759139236656383061340729533423110769616089864801429440030705523032732309251827582087010127672153897983624983700473468259826372302956113151772407523616695353964170194824441854711436827486112600692296411516225782521567318571711544279590828142701885003259371625260309810604563674740887342850927422382815050344951031606808644304629402521031859711034134098409593608511218844202352030529300991069209948111132837664172186526312565808136647750197104167638298031452549451046836736152399283183664530308050195144314701498767437586281994699309587995191175094367201000504859867966751365756214404284362666183945689345753830382868161329416981716002941218346786014283879350436547421178074997371215492359912355698984744455122265297415067559935858455886665502183209742171581809248343351145958899458782908245586157146602697321600430047562964917872958801076883710258103244223044904132180067159711493695714627627995579949312330031211164475254596282889696364868704342542603830077199531641287333003750087595585444886875773752253238164889144539631685546383263283173141551405628253361560801321140038285481084656775652104750686120706553642445141529363619722977340593670284683447596853166266383824971143727581702221208744118221620527967920839603785657143532494769674670385764383093871703906544737856491697692828499072624864058612903649453249386307972449113131909392816621136232650730017685876211023282934906701510968081832380549982435138242852908038069254796816013755893818083724074991850615952963449495882157870654100930874739219896031953575712969513217448389813547098763461960655325857449367034278546697943987518884949077847356116146826912817595724683685868813827121942839983494660088701261035467445443962346803330634813279947946093924979410142814333358928405446838159115709288912931750531464344118712912276411924224285012727666674829338404278218490056000698690654366659278786443105531715433211275331505978755997854997124606381962655462435331544230023119861675737273445571897956533395286783907753771826982002406427383703201818687385598023763222307962005969307990480448682972286183309063449696899105484491549193190749032912120479334768061394424432865999093281298040625298750321885148737328911795619786926864305184537823925541295479852062023758479166041768187166533022702914286404192250398700053316311455371351082686913360007131102870582597313068888494720513689101967315783419756343614174208004629791405039505755147231066911677298825500856375754189731367157880792625669204132187433223252390376799094955493601598110967587907057457797928336166600148004589948102716011242563696287966566248774667534266133640641157051202898405467410723089924517804739449086355214888971888138910298055314516994531531682631409621853244159089923614282210313213943558836481538368838224627017193934983490727845161523489215125480362656513209361352633117582474344640659147730299511627643489696846673345347929071670917136580029292236475677041583956676517254565249651117396072656898641904949094623356638674938467137489523568912658869562239125863343539799015005784658410817042487451556306448915005616788046847850381180256291903725663234923040077295359101198545078886571592688388018056565164566862755412241152910624711555148494113397164882635730455228624404210263313269119641231686282198455585040262947366009515924080385222329233231876033452773722366041344252663569276571941709613221946679146374447420283506504881024540901909622423610504906812807121716637942298601589999310566119804875420514876895314203377979676164686627849471052105222121975650320245930909932634649501920265852804843906087459716787848572185312538879144268319314942667526088927233763268489257183163799746157577469690359900742691524195371359143292507531310507518483150583584108462225805220747781790394166163217610472952549323823908762612641537803685697681766773755994943441780900082269252948379797840117071587110644313297487488914794485206570178934726641694176713872875563144778498570666977556616135187436566727106383818497109058603014429658764384719621029058950649603154251995386440929056219463893773138290404649171412149566428580098316399355368187536774299960228636624864109058144818900338188474393045428839329082361379537273223502442544651743177417604099342224657283700558763126446832324119293868763446263767915419737480761549897906340020928500676026205488273634239594953622608221572034517413647603629801729128478296396288823859382521459144989230227965307754441429128263468636806663613216482533836340083747340063393034674099762453094109205013028565696853436525856581583688008027763559350028040349300773024009074245736427556150507002445042102917056429649714880427118619150291170511183033601882051922414597636795778553492795907412352597520996845070055297420482255751617958366217811238460743195679460534645105539395867009874741772202528816065701561594222703830536183938097076565547939201061573197340088262698203544629200302326415030602312340194134128783537904589019106133471511628317496197451945835843204195145212498743762249843095636321489638067588257486776109342016521185163663362298526085895750114713226350234784599749126281557597816773071564601337381620974814724505780285534352702886158310172098532039877698275618925150048445768934482199774541153047657568061420028845848663573243674668960368290340834442214586028186131437508765800971235796523454326708117535354438790313212521060648993396309824370159173388267717870837586800685138071792863515942302005941949864912712009369799542306543140043341191397498032472596171664952358933192322546579123862303430304258593915033613431926257257586507629367721892980428425789951651585802599825786386347716540166828655445069761343190429451891896508394149736191343290144330345826288117704535311927046593634566863355449617556408503223360112138244279484426463674290341305394657637808108240431493732664732365137609883614387402618728647272446418209452451349854381259937267253618308773011045610329838872892087933064857856324219999513045051826855814023248286618332649280267301090444593283638741029654365090565633851886989191431105544060968294136359024702821216231748805706011148029444981563618077537411588372409709340828546746824089588492156780832664249300212819728931350727471782914831558688745020102735336504334340544843744671145137258785404173570955565983148022200050428973595664703254181047175137720541209816885574837355864227445786836516045171038332410899628450885865012019229111880043433062276334530584197597328616199906636013141936041890526588655278551511648708142513383954748858705064808130942878806163695348078636856083377056299864325692816820112601066380973239222583947651271063627900470202631487278912290963378114724429958532049118062104107173434633502283112559857104695739112237260633205009608847805048817053951585693771710893401121039168864996764406015778995709485449880016014274575364426978731221983279162435404374347226568717219608767636909486879010545685959191802732671928269125444745237782447153478155603387785564547392158806258900790683998818893579380447887048568657573419221371001735562326444015252551439306577868034471636844581135478335927620391495544788392270420952522193146853353604429276227023427251929815286504222254081468754004988368655903365549767477311147203570463786200135709766474027375224063169267921302189013276330080567274012671978588398881681467791404312263927134833100808120493654767012136527105395819099562409150112163144506287780182690219072911292865747738340795918513326506966030331233351191392130026607155478502306559837599639413347660022910087016320423413636304377341413933447730145532200147617200723548184978000065572593790394279583556954750611723366723644813071275372231177015802379626090512939200637616416485295000686335465436333630150173246769417825922384465305068184405836645292479226180515392894444176375885563522622722311058707005593853387736786754445526321382723538522777988203623496246014520202064774769493630231563315542194136949801578349879154671461504379919101795611508438836058130596432830008123511011179109497349981976551471393707492281527091945133598270133834685407582786477224437094800972699100439371606020534506702699235880606139795476490561598490858915499100093289419723357232300510905213363888808311452387203301560101063536653351444320768606199266256288551985800039318515294762937241097200427734133955318495824192900067582924835611771526966282751796609042805399580808829652567545746936248515199572835182487308107782864421103418724722479906007978789749680508066023346598600916453940037395263593701457107622395152783943151850507524669329768851746240409641311742968329199563493291537669727497333311040938637752735561708054355857698856914198404976009408054614900384487094819756789268686654411035698514775546624031774134979468314055283817472077286651455847449670233155247913639281931707658573351232166289834482653136324921143952228399529837473677105962740713254932723087995852030508238243773425435575256060779126575762120512030333943300746841550640042012338559924389219271439979150014248494034159886591317526537393732471933738158498979281232395049626942336162577367977615795881348910599842972307745069217913861168037185382645721084112523073718151599567657184993452560341143631882863041885752194550057976009270989901810589461637921853925359313611783625546241828579737393075833693242383166592116347673618142361390348617905249635314583241399204353003788438492888514935575792586897887669370951382566134206059400535696422718515485683486643660165809077819029340853544109079367963779996080432118538185360709169189357175255081101344547634177683780203998020236848042511260383323475417590816709067721192855796521505596046838857787390323013252286167643836391587135167972551001087902134208530933664218365007220693869312222073336519091653957168636828481651485179739258573584008485386360744921036291643945406940790492987903788203654186293815345537202377249605532030335661152639347594193970995769759782238393629005726211089240743592569377588547729442237209639437913393915682299858216878131985194083670037352645370616525106996616877748311758046284717306965856701908639848005205906478080645518094835005200418234263894832460303751139238550100298203401643732388322247274923839205411773965318110294221828498001930862706166782398955531188383646561567587456469519844466901559914011930823465534866972566406612796460266252052565559341182600012012754747309844548336288801041551640744673173048172702963513226397796088019995987717964792804417656887966594713542584751049369624794417716262547419770274560548934501074528320810847338947833280217438243972593356710956324994213736758694820347084262948894622823368407493027988235550645541470368832884459630863288389930744206501590210368389742615633821637735860235032391001722598415874789873438059493651298632627620648591819128710153118083721105204932326553290905464866663710684039058705512534815311181354517435220813506041140599750522140158627855526245869666278770385810854446859152009266290653129982865881657650301863800769143065992617317473868026962501559903018543840709418025976391372760591511652398225240063658266761170617460535649541738959275867124740452682357751648820480403142097207071057700434055683150202521485148835665833547975832186320869797219868495120369684799758228214071774474099145702738968034822757650974985415262419001753024318075222309534365342729807597813077524828098201930541956859971131308036485245140110278157630706718685891962775440044203169575128550202936261861174300179071836811558798520745546497496518798332923349157606592247985327593739748741191010504374468511776872467925858000010899739812578199659084252324909082980450401672393696916964164365511570887086252708612883477947192677452217604346255799228474753676380400644965984569131583078131809629620141007313989852690394837983381947537244887878086227124428214108958272406189147559323764308360341261937126733401140658868833492919026008694077538828261851115247958331670523913051966278478173467384688952037719480394034839810569744193549271517442498424986021417994260716958114935207689545786541489534614631971105245681235594032058856145300129783837556401061962747500853641458872999850220063904606293140281869199283561171108354755513465232378853575875263106601319162720013449405700327837112564652087822296603080226396864043839160161007059088995551282821972341694467682327743726579396651706365637119882066109304060210785415615041576997003157072416109306694248731351386139018513760667942369071000472526112657406409431365749730413420695139594522848126909126886205282122388520685770787613897636561440216189705692766059344640090307245520682480193798289530283705742710543528890948687038584380259766556514582234961405647594783816892135469692116994701679101523505023001980549302093318071851484089181049232680017706754077491692533888249750023711274682017458630416041130458765483897109654468083817461725470122163167695167264280016817047899810347095947701855202307848436166818278122152668958683694425600840185635443977276710069066746842423778895086065218616269989442687659974042719605358808318395375786580846964503716494765883907848780905064804817765761913999320494773534784765298610100222824107804397399105548603522702662292651879272346158616425125075794540870904442350615442452401356999716623685332367448782249658250852604436192371939627909169312573294476612664653384003009138656914293332318198303393259379959646300789599946718041423984281318224516277482680725199956431992923104295182405003982127808995873165629484045151858534296433698157638322370574492710607106908384857985696764347041441349682041362243509347557311121108008783466020789575960689208827873469749403383171325307391346468079761039789902679862123156789748946908430082046833424884327329237373582683768908817522313942799342709902442372311643698823192408094353987862061998962987003625926852419263120465409725615895139813926085432420118707036227034773585816747147288597203052633862547553808851296345251937494908516911831977386580093873490113025633243102784342192795697352342672201630509137867603444144500735775518799591671071222041244533152804064928343004530421533925970882587815049913480495156703697973750079755098551765025127611270982101084503912985903427305510592244079138178219877091796338528287955159535143076499900600018798154500735997299687826735198805040023471026307042101526739474314593552846944573018414445799489143445782300269199566852125270643260507235636258416624939257747070047944796385781127467702197381643036843227104991484445860753656996444830854585379495887661324430584871371069216046064353006977026835149971315290256278568708532160869798170841959851839214774549699668630310811796906291981585377466225589698501729391178331581779133966190429891382214658625426184364604275908836988081769138014051777380356995681114540271192044555590966545985895874931051941161750451788650706499962318270072704551744236078432356811400764030312625360894816238268005114713848858411557466231237664418327191627092605702852419821060431263461450225700462034881952595665066698190728453326348338601602590419095387872177920039771297008127624504415072201516127498064887684605278527278823794917642440677345998012279281511234301976158223401011317515651782178491931340215311540422267264671147594152381110230879820020916738366978638165090495868872520054267276683931389423795035498587195885306178039204442574067623318353688663244422701527074170416386053761159870995587859368824176147038092739662324956319546104844482351667568374760494030979910548957449019181110241494618818780331989884857446742894129048917037267342313825426356321858093089781233490924517254531821854541502367443464334141661802327612645351035448434390505173461104651732138862547107150970571355953829600161834866940534163314470993947253835064685262598411745307886779379096869459728278043903378129506194686313984904194529419961545850977817618469556537416603321807694110135381773591413791936489530910857313662753822080349734578006994108651962215101913122719389975193181344275703139483658931512932905038173250208310311506590133712257352872051350042597540034250344240348398144450679591954115456734280103828913675634132645951256571622377856045122356212296411588812379720004840331236861490742923773798747696645703746822050085859962919768867490640412307070095443092642395787492665204224126870125928539748555708975905474140386965971701899954882759227791004274442334546145908878683049420683902884914739407003162010945818998994428788051165304344494286368638334834014238814601400833272501428946414098248755415517725576250073215603532896501423456294498587788228696568116807389435684815573148350280094846197236373020362290778853539665625513093202814036985482900824952021459758328781876038445037442010690059555707746376230483600356913415298081886722301304330859528826366158994733719610395167652607486961339937167086160974887973039284752871802457997893241326962921926206974768759493587556390853999696007814657740896406798170060415643152051996768399464237067608370147807042191027067106938406907669462340474631383976439823734825986174733413370577827785756077965113172885161804612574528537929239843402042744751630217995865294260424929962420569162649563977866907975343954360781563805385161307094088550876183114929248419380752414265785971357233897505728891523214129286683808401004503178559390662074251908543995168301373084100309387507020764179251213932072848882223886981693173922486355049878967704927282982984001067195612258597387846862364948437059235457310536948413808770465400303674315211166689224239793619424153725676774566562588488190971194143585853559116505769762943531005217542178104160933717557164069220105386347871619857427350400507120530401814872417357476641456312918714724015039644166364345813712960393874055311197735221591235843912001310961563642619121155564044595154653449156265333447853496396827945544298235057226781315517562750385301551821598022111198361126830495714993473612997865656140831133608967394850243818202705184703045806665152461035004339063632810233447627437330971537318754371231669944007685793179884628887329393538335767039220301761450358624696104576449577276428790781345878869613179196517593924524967441096000492220800529153176128527071558878029534082694069330710204494960440305901956618756543043255934193079814389293337216490985509101817960444487653383389878259769192718112117417370722042925242562730028127239044595751819987798279608129942813106947900684249149937815393999339013098248932624216260155732855397436179426874939399797431299473422326505578195440944252598484859700990635871413907091873891020224964546613491075226776691817989919865517400646470224321284171894524838389858513904024065237690882006090119917094611555630897080290932145601017755665322532951106916543158987928033810717174680021759686509336712101362473243693339158260834024268168585248178667338800662477490846128949851819857517325986628728585785469021987239551312293100712979677091249766141939509394379312249544088182651903576856604663717980480207107205851415918057464177937159850859333292900807811740812341303833909459351079173491462342852693635695689143474554777484661662886811688490606123587234382441949053479292208944935705718302690747648431592360920312425922277277135376264505249319236750793778320659800726888920686187013840095646921421427902341710874549170698313145822174412548033446261241534596685024873079670642734795235964613816541717473839594433459433389151557429255516292036379283344886539184698652757096431105583660885589290407779766261786167167288544864764345739420104002753980825182181556421392477802476110129083232486408172754825712257408544060650665063196701445945103637887422180198661539540107545718453514940899035521120447704127899783321725203030946410511617316715556167510447970199519363011831262351140770926990062825547231923435130127862191632388764951077543344778530934440545571602747876902582006591462058477160849615537459377796981600258204631936839563721351364862033949289193073747724575636028580576339262826434106487646731579066051895440582714701736902724886617934520550607373267269850904287703067899755498876131497949983287073800991020710032847224164664900835226066337168294613901889918351730202306950323863796554648009580434670406965303955615231832848416231039373535075369123952305615291710502825626032454263374537493319832080812179656647180381987914397554953145737160750655789620521504681415061202129591396784308557145361576769062460943907084407887534705266509894924381638296764077578864530318811187137200642691561812113267708936189593739583201901389024058087300285722552515822134266541647321016378351814249795093988054990735763082773977961246627556111204743698640256546178149104579115657847788016579173020669218903259218041429156537051880509755137756442107235293079692119353789249227345081448920129874956860247039448651721072765376749006148643978539994853699129689034971966976440833918080680625502387223248303215028042477457531399997787382874953008142727253392780812893999997254558540610747419178400529819190718910861232148745516078350350431795745036758456989989348538927289250126499705122617059758561000784478174827796554823166171611373612264921187530509199023910508954321368006091106121171202994046925631615513089061373789337960857935256505590751018924224689838581585020958974487929977229085358854375781289645182917561449437633931846223249589674658518737010567597715812409383578483771349836299535611192467537575858964448927914876205190891673000916040068987237280907213256939745639717671479785063760521960085040081648058035657006070279918329182904608034929160663557014572638458253714595881888804883275103390805685467795449725137474187133413556548883141511774960682755973962390897618286045713965128927534359701897230505215267369021901126190108079952059582820488643596104297221078345983985677532062690066320015274214961698291321007522707613489394133179153099661361962546298259457230967568293396569440631145933210712604509349452544461456677985191661574687240368792475233680258703429458240618869818626996802489222311238813879384555009814546279466250512263777333292230151695246521490070713281097393113931697574381613935509899296925875581488665663223545337043363237468431842820419596660699598490617482852970163214450947884241898955459194566729458352047707438642346052660601847691449134369535980999038352460203509911646285570902340918809849312742872287113122816676541520750565505741536524974250321548841344838135579348403515675422183235424123950772918249178387749181725492486325937340543256004182818791685061961534693097778017039866703197655358411614602046565766329806428140713428304133240286119584781934343346166190139791911945036480339990345944474959049264702144919969328322421877262564875242100770333600107619935199413987574489177206608497205679384122946871719600461973798457859550461583433127236265254907682032428390227376876420266531398255782800363898734912526429259604137982747570759542995793336627050073988206182873646830981704269378756653195453898511602696906089853901002935760199869440742977322147294495490964266066011204393275933226045737754884779794062144064389759472959203910198654973534924311365938802444878398738298133747658464697515277483149840860455874377342683218331948716784463756907892685654210217930680209980098796838908663380612527360232945944378122251378258499892461246467188036004779967770274910139353299973222089677670670980565505574574005001727352633006211188809071294083927092991473004787262104985334975277402151374737118476672052148202807171896995405035747765958519994395679124072922451848776888353389481971360171201577258666271675107928805951088977490310336352729619362179160785657912746647070160006826768382702627781328462881468492783727882599841809694227189802208252768868992185370238401277037774011562178088173271005333537271052060129153940730770377008530574631183472381742996693311580320474283947000737006237479174759379811407779874391301792812255322841252437084414524505922263189495248226014107824506102010743336945872338225602114196292825478319721532573109531771899836734869678264625336122950426562759101428271467334967318992856967370858196572915484968819097770664124706551100118501578080073601282780271598422946811612455830227473256288393784862801078514852994850618832417459120612300925748243848167608456335416710802220386489961713136450549974707219607623384395040397579119188023685385473883611678672374764302634422324331791561056528883310358535313490107534139305070527185586440025127173996920671023270957545547867146960494906078239201608634540571590593439420680131125241400006147136630157706793073783638176958238911262580288618853889740429671034813842787214554900448061762496296366167995307080567758181899126726716533401979431107140100391519495735652244707816247567271439881538037085100320980959550548914709775521607581448466451611703330592569249230517794860542923219058952197863227458687126921283411168786963617114964820290476808781618538700018546392052141555247177165114359894632212205245350543655278396338312795855491819812185710884707568529141948299186152082888556804961855799864466461200808357403182356921515357489024166680139375954832539614883381458957649082778598666839446825601855217069473490817694293703392434526366284977894028409800407526393929539194468528698720914130453777981241338976244263281785154838340322250852666308738803523580075633852972418121620617980898649333629221548701203140784261291745200311163858496100093033253284567563947296719743855601320819936594927251156512186083818443038991241535457834048633251863802534030117774591203571346638346182535999817658044568508375676346685615000320809366788622804360844208853256449575808825084345821104611930818756652136877951928653913466947141636253780647426109866207725474216849364004899814272195629961695507057812739290823348336036961561679742751691044295800681638053678742386131506271632622828036148359563914503460573048866737318355467542092012692981345633699392382142676471730835969347477142877082418833024210156261164042414668098317324437256478010255090339980621252760567290548765763324595762514860764386783550843852968310497500493255518749356583397343166899926853912061348471467636006683694590762695145292830227092684964294540229910649810897598709332561190458945848485301832181529133060419189472711391328706970254878087559252325071585999150014391250799910843206692465530359170250541611865894721515027319844527215981120045639393248489333406121409144066038188431203929467892473554747200037965307654669765920412849535210489668208520489167088288329673570487441829781681072889711359811740338234779113542801512840201582995418889106376386412905976151137036062154121920954091623680492319801058059431887743842277794087990124261101768689862443876434235229566148804071298528554006711740244877749008948119239274407646137912700335119561752614965433295341374910150848372811123226984956961804046896738921603870739537428452001299813015373537577327884752092326201261421597679781384678945818864363641434488476882038294500829228875033599280779529995965054613115506560860220877973622220391665622139802597466907431280706972828637007212058428366532527381327038187013503284729324915542589275931621352305134022894412653393094125789486792974908092677454175565769468533273081058484403747192323081824970800698838007372643830835450126874756239118312022621673029658130126329027605776080036724584251004677501283024118732079874927536054553276726761439049099614667551190737459372237820201878499087723440431897844101081509135858390488320258972906775396938987581481877319818051528361585319667552971408180112832535790118928484417809313434259357973248502195534961031184243882905084442385988607090095553993682471865788610858199715608708876175748765959344621964218051236608385104555333413113079752594664640960969611064374604724307989006507541764562388520321870616060357046126661338041897734257334189120449812518063143741126346572592841214669425676076198300627596112301992650063160328222636243879830359801427442616705184846424328827444741713047379752550625081349731029827897564031860364325219430738639527391202364725090931690107413862479636599350498871438863582731740955172899754306757638192566860413975259538042368844693309764071583408149589949472515931971249551735551312103455575441918281107233710356964443188769279843569379111264266764066049789429472228551773588687089819626980066852686451661487088448902095533470835441609990837642891461022872568727195730965404026746409293280077180473080263376025826942011867220586305968668109709327266800911220638128637481626408308201852340389773189270984453893952696215106909189463796111549486439787432638969720449213262281959212722684363210317089114667319923675022371860011790882255040336426804562644774998252968713419637167847608580081866267979185726923535799877119698767858736082315757496292321163850833578400234051427460596840316643330834120725104677623908906860517457136124748088954392723664532834475594485464742249443301288988916067166858389957917205326603090254610777839464267439820142837456429644821015324020202429178775209130567490033554644611556741704473373821075694037728295189583386657846746534960320500882689537988978933232632580548946647844374492821434802278140012732199195897592475133279811120689726518300123604413463118097223662596926316771570938517571489930440182974952825452353454967858865885506138721192040233561833988196034521275181841258475135151855764871735623193704702267177693571503122313796653467793090663813690692722830459362564961380307054698010267811953708452974888024116656994363821122587286909924216490141063788661106189807545885550003573157628472189769647925842134608541174694547411853837366209339006940951969243370902133789686066590139106552749775312776492389497064571767497666104716609899337677061560305717772506691903455989686851220248028041220112729861536462864158263432272477463650924239186227948889999129628611302415016788542891276328917143384593291871396037573960966110607799293568639794092213051228247968047266506986589183076777146591482049472684436360172598595484488451455536713681106597620924441115353994285999389589339688872426020994457843408812033007625480756358104341943966446507879825458561954219885561994235204988141203735246811894572966022872069554993779028280658885145927354847739429008778749219377293765258621794220166560558648728408857401264636725116510237260668550526841027554803580403905765866205427485704369350866863316284336482438533876771338172966555745118396870912310466892900067404772050606259961247358956333214474508406047359861168678739055813080037244669394318154030211184549274787718900872203996597506768955641892098638668121660331857644906060394770940502241791062950669469790696182746268214002096748843819526703797931804242890138276771546548521559351135968221652176047627360393477344433245490212667459968986796635011027000842987355687379563550976422237835657621122581752059743828323413760577306158531772106851633932656430850331262486665373307151723697936130258835647931502140318753261712331033453880008690659692642664642864441983031587583787504207236511934508702101028822822284217699080474368754654361531593136740103459210928953340482696256640481626991743993606605843647668560869004353314049092242578770947953369137452688171221200957729966717959077208678079600626865160389760146894040792308819687892455041591216244424811279112876166904304383402316889792487906149350818123147266078753652062985392988966230212158539461873395306618603055058679359022152874775992077724838865838880682013897706402979220414790342599942322013904175299529484774305527808357655884029190750092679810172209583036909572214339368080048888943018425782851094316658276998549612385287713856064740177435954957693377323393115173732339114990292175803828146215150656405328761834526232459697860993432722726007171699225141021322783802275432573488520470118943281504031396579516126949619067817002785144747853592946378473231984725658789756605850648293974744831957131865180396227319241391967185031385325471571257421955145481064203097555012657636493056759905930189985736320619184592110176775579227846511979530243069138483466295090387690746377544385015235040459139498460370476567409669141497711929931733800533468209536393891985782095420796223424079891830181047702099578845239060780211505290050952298438629260134514144768540567503880161170309760695179614407967849711515083604302092918833194702012392328560273134036580055842459082122609228696756410205743029046880404582609458016413765464597625140099734736092795482459223633274312927423759149048145188104932174319233085434856092129067520802607338261192988139488051147048082828049760291843290386668545012596626010460019189952615234859232529859576831486667695486484158869526531003633299636805320239105633455519711716854769457046761132085351497759823938846211005294428244632762807147052177238048774638828149014364859458289827957606331805124062502337805415928913770418161204575835724304129155005540577643467718127275499181306058786567756623904965192202972523684938019771363268772577083020237242064187727420019889446120985760278500279252326191789330462013008740705550525391266809187425742783190340154380123206095469559147966146850638406484561032061809503944242580560002198566388608034209981008885490411869386241010721819008034041722525015514735035107116937507439734089587797192306739497515096989157490606804944612436592318686951733451408209314562639706525522570886455908128705081536464338140474553941790938253600233055386675190267819538957209536340187656471508932434566358234061840718814078538533758986027343909183636868320885390232024502515369600647730309113831312074538852396131244094170768999094940297692997449450414841676159958521477082121733697293204693109245991652269535437973373544613440607742202230702583209641367376217206022834775804758618207427442491072278667521759594590673106822374061369791300581052331096561451403881898966505540162781408655302604863619892675921991809997802088926889774303764583225398723196286215679528035043111626327482430161713490782012197631435368930657244648533365925640668017418058543194871743097696374179728805370514513976990900207261129979935088987151997798177357035621400957499298457200936699854252078989048796947657224771316334282403650556120181341095534400698630994432208117775534745540323383174297307395205313422574471640988882226154414973583475183889918614664873444250900298432888705982458583073157046169365238327322752815679864374894649334770845541549115125083355752514910848993685011389736923009552052819141052758176478688191960099438321456874604450105499530614596472144656086367233100273963656001600968106325221128610505506516561370831314288100895523591585908154064675481452523444127094316422210523029645982770262021094182429252336947209607794138950643681423159289601933428746377553752428852393763581062158561413286226652573930239944918723004900561295557580743745657187590979792514163451326793986518485742179074474393230525318484729130163409752398064953517563664224877769259042704216004318707176178083061332321023443804256442205493279532552671572477671677568414330708444838531825874598770389365076413011196360556703519587625311094548184093008833735156904959611493765448318901982465204000300005056905974592298496672462149682154792331314013851786520698848406877648073317369143677255712609547389154913531445870028460509262013310827972437565740344535390795468746621965317140800745186567580171732801713104105457814074037809076905729961728098341692687364955394150763885332922163056344797323854161446378626690108571184171963470781848525790873115496408841186369045861075496571266980866509701632580547141971215457311524498802814260025576947013744160834666293479362649717726620331795845428530089457201091390232316996661224767470299181707915257579322131253589498794857609809510489142450847113828198783711035390217249884309923210163052327381796774243743240354400529658038345900817480140515765377851834574651303266139587322239900884980512858670946308733998791258769642170442727316740321055517164151523187851812921891139644662253005398596332656711783066231276293135396781490224402111069705434228594834662113543047634307556755454227300345231071921498656552371443892490724490188191640801760644998071559279098723737341580495010621191808420701635797505181774701455934628206701445039173986924441778890597135467338074504550508824199858928244348374451564001938053827352891217271043789748884756489542863038515431138232049167339637233318116572287083200979896824395218357161733448085693490270459585012170229459874477575212060332388046937093998320920940499092852914583224248616133264304050234341589353049475394805870716401307032097388116181955018414108055863380647829753081661972659619967283865300814156324885840003428003260132423667453946756709977524879216711129352856729873163364680915560839964142627342978659963248039618510410322689107838684338457708936025833637028747011913636697374688317819196393720640718024524034400746853360347098867657146126481444759120264427647763090333464463904095672455636351723386250294860635138359588422556305797180438614189663771912568137721977672757579038917197361650589313431445182814309169237899276819041173203819710096496654319024440271944755535149879041524707655868807505432587198586772750570789049588913142439014489207937682427441089553717070764200309006218282361928460292110005425500926612472838367569870651698899729431140179214138285986730164464544182302113779280151072500582739134856240666740957432838240685884814434495506404623821824194939999639302876881641969533799797457352154363966191728347884426077670362732113701571431943310575310469302701985924073513330078947760743137029770491367933533937906029163255161710961482474092611597199099495847786329241301323056955858917522036412392961628554858988125020723875960807520316782325809260955466253545291617225898336069064180622749618590840388662309535373774854591551165005435958718464474880578260133275383968589800197211726059199088466320050904002552128629421434403001921334186956707294649855982185280324088414101311776551328283745333466467740523938564981511216011906503729089675111447182007440744136098604167222430632373956204904657209665338860485164100345195892552868682630604870366824100478295821553995459380094260163847033911140282383743751175607312454936882154449408667932035064345380316912144143049855451339313490447044665773088958454392178308836445305753463747727945331396486892589967815179241733943484387798979349177847227874648765685614847857026980608511970292855993245937648102333237077282647884767693396134257743444797035433611605599142172687909485131575722533072358143350155886714128668982497377300657224730519147624562555696181527951388054796134298746637828035780215051189094543782788614007991981968554580503824586900947567690129622540774977313943574037119738385604422246680367397869294898185421136489127022715137046778576925270545434754118953086140142383176504889211076095650976889797385264569559437813740174904570449137777778229535814704996377082426409431226071236874977803648889557796153734396323549441551335829194575270724614061071276248052928882165559813021167968674150081096578034127634273151920648817186697333644165457465121937119060586873265246139284625460864759686995643937377241317011241266333964410399589238215398395975426382704969306184640786280199656050447477534209744583029300848635594814419534259100773425487261071483795589377224916501569228536661259393343456472693533647498413830008589691843290742735392275981578003543628142996910037449608218919584824292439021104080520965402337189633199412273154870339285484426360323029335607739200399045230732884812683398187219160912953757554667665502190571471529524793453773203950650395536762634600093480559208984648536123685115491773668297382903132326414630848347080059474918979467730029169886976989922675111574424668054557443800045906051574885336507088296926937305192585347621817921812198444660745092275819626887372367507223268263516960827344476179037379360173786591324985649830929832476999480178212017172743283251597423425390218155822914854573694551260081271693023220315504992441807798187814621633494551863167424046590895326487512031036509868641330854443660625867786417798061414039316347041747426268230072489010144985588416626604735052621453550153408250485510198112302422304299390004425296456015638890760847167971202579650933557944213801837563405939957685538419640984161518376189409648955577034521220912195063760905672349155334978099555484465022196233559081727506972240029867790914835697997300980928490037169163281555077679245436648571145949208000266505609834342855048677695331271998584527972879271116615205121004907955699902884558965175266580368710747135891723335387379504866221045465377761734710047431694044126858046822316513949400565172303581827998773594233859365693423643682706957571482480569878383381488243046295720243050335941393983579979906859217075546053412856631267625805019137365157308166682932075666060750145829274613453979530460130033839914708540667685468806209144983850096757583223869576446849740005821861172015968956152734476086499326106495965226185528638378653341813703874919445996396793310051406150248507606587911428544381604618564040048979894930875234780400467894244091699265178138082939906983189387901832400325516635292258510045446903409008156979074878673265608615765562356040039887648880670860727782151797179470680063913706261989735704494643048413577682444275495647525925505972141059898358883958156139722835497931298943729035303144978452809136080964422093230457074838609499253763766410372647524287942265397957685126242093931894246246863701146360255569312391506621835407686504498219481779356223320974911364994102378124694704733288753629401327378638710730859970297081467431865599868723715975295367199124963287728711662269089412511800608644007588766900389780443733239571721432727773661537760763720369696152011539227635898070591867849302061708752858549624245115937993678273503808149283435182898618836445210517656198969042791605895336331219144766720938311860858447582733375595249153961558351262062835713905275217186875244747304088757163122470811920675286093028503644182370897234333338309832118479970244199529672955363166406222969839934932135478913593338104722122736077444342412605078310740649035295446254695115724273400686594935613321983284882141464542537726426980968812391530106989295511183742514632177833764274570440378796276817452836400734764454429665032720037617889208333556279060667823597197764655504625379961236746500852503933602463502591435076840151802676489608848441170121089973877729342977720190535279958492041897310145346973406523625290327785386448065574848090339742857265745568876121239227984279297926272637337033398741205509405983817738707003715522504677117257729919977395436487341701417616681379345307882388822703804174096280883275651708988492669145637463501907247311200449138561280235978694635261252387613682451369184371920049691451888987355139844386137500317354182004790268667089650741892793738515981108969480527453503615154657337578722225870888063849008602581845156459131228332797908581351444003883405435888433597193125532432010685846252943261330191705233223579259553129565435402239030816200928588041775179180638287315007075403329221835622193120495257225784719303584306767800535632858020315802300557541953483895530606860884314180888579315367001730196166930508828389596397255298543626355432075260456143692617262601652586459772630751540099630406552216831110329670177967908148086673736193801397513960307253969842265655167876854725313873209405998580536221269056157173766963107784592520318550333039606138957087272673921531024736407265194084324639733337466915239397296572191899028092650837476573418574442947075463940279520658236897926392157126230876588833401230262682304688175626819978446864992501710902950108634913095387809618137816784134736840834165023317507242649701388100332996015511255647949934585761327083884024514689725691174621018296203033538148433532087943440816882925218574043051060631030558244360882164534168144339766950591067263491078494843586221027894945002969057519214623118009290489958670818700171414510859087657195992060689562170681835687016720674710325005654463737723110007958485572506646937296848128662622398137267523040582058010079678985587245812554306240364093486747507072879296136925554942880209784085122661173795917347000695609170690866138207401065089630553663839419462041686043957777930976618264167766433656122797975178215581657581004800893601085356290233451306779521112225302593381287140102395932463014131740823855246550722643058879621424099466749996833672747814084537252702394973881728592804584924655918455097823124084581109152282136892768326504864028345851345137073843455310420632143948606506539356599823298260043922250592729675793553341845732627569886512208525789501429539072262157910734011576795470907293294180086341284353383841059118802916312101960643141446860091448687085612028382030451890446107337400606759778423242137081144519006161954868582653722912180772114219644180546015515997308192734579524387853309080743019390967022428648800090573866126523073950292534514509484155643355213966308101338236071320372824459315110320712797646783938026498306724460984741579751950419312561620281291554208731897481583827284819172770433755970201151601771540617626273275625470232476150242243903199625078211024889548041963138602099530965453246525443773749842648164994086373759043655704437195758822303259653770861671728569401875170734291010497816528591831607385078922198814357139740075122776048287668690904445470020229745071144242381505871822780576955856088416326948036952539832281566086162770574015051274196122941011687574103851092416816474212713966290004716793282877954768276405578404033467808931425422910018135931102009739761066976184822070697844210170552538681014803760055484505371499681267489979786699363964389148172210873784731894469304522275049915861840656056400280926361525770844749515297091452291242789004737608082992407347334526869047967127823212712198982997721347333029398973109500476544712722724698575706863123378799722750764644006633236198029255655740354682984134260159568646906690401406868357192128223088910607890728781834910301710414675237175792122942828901379042762797586413938607279394825644716371251475386905844909111063130872937956642769348623938809678718655523203287441893793628180360673954447910839834872490684910653041925138879016664532260587438446751165147841686632749425971734989524230053801696222295122440843438457038789486383866575247681078231823596473310955228826388824732374852700800047012754771096239863513733664825286835200668319275958861946512022000154919926444613586113198981026974837515607841229969558366650114404840171638678489660736204932108560254000581005803763752052634056941475201003346914958220208980164598337614718864783682341092610996945415810977726368921152369949592409258246417121070057445924320028293980911813268824640530279921413471897443170789483247423656368628080036264079832600363418329523478103051452185576894755547176829331168653475610911393469530623995849812300487025920219683619813751043739366118797096136137685470216006181426247804803688190369801104437336158874408718330943247443827490243482689587653833770506544550638140023978602256655244992365847872050316661016571917900546170982127165972316964983798499931323129881378083213957429893638642564484497163697944948365590653540222855294365920003293294924376000764000958253469647195149359392295493413559033944274818907475263123520615651863265499079979161437285562705642041188561023146862586882593020454231402054089737360051742146431624511629028770925126982931143736143370209768090313384107955613309040772881529257228220533568756328982609977039122726821396227556385569582838117973536713967392838219140741789564854895713912823080225716930618386328267084336358058371317922377155432051088037094807699479399432423496962665169226449746914333784218370597084877842996652441375667846382636845625185328136302643528536700730093200328588422966874232280696560407943060087210012727234078804557945524599857738496659411808643938231633728881528185117009477308463214240141063341184692687332314486471244796226683056028352533320399722524810179005490923694972539369934174259626281280434822931746483569827872173376194852144393494749580417620214486766648993751512522682864260521529035310837911021129623848956067530381187464211577876885039556971952516113474100401010685615411174519026831156669568979401619986154309543751613383007567869924814035199224274100884696103032785411348080294740785835491200388861376280580900545653296629853054811819512941330918595927069271648789977690882447487392016026298018318158598150789797350204061935081523859655180476653879843563006302543344683069698375417726481526452053929433599595875933109778556426987757676448757555913121621206802164119739535970627130301441528313093506461153644377497510996052675162447389961006204934215758220329675816743713384606059476165558334236100917360073601415026749558181786757936677229824337836695867215524751241919425455396973217349529969302492673331701132380247771442097167187075078283680809154193859282807257993161057464875765566538971349214547039016833109349019254868682477105020094801123862344186780823219190164597658674062738434329473356660398381775703347130731632519679466906019379380039540467003437406722508114844176498525790959496204349894753013419270864691367695076884096364315132633940140088717361869445832225228955588103968695681697292442650791936710459725213173197972327564296216247635354331114766798242140749104960865504320186854125480116220557232698111314812990869485373267689482389030589933678871807625953432602582877631082459538379942642929543185547280933479291146584867349227233277717686444496840494099816466193707376601900464357411427030748560208867644981607119554429061410074860423157488862289055796796900221249068051047205312423697698804025639957001986300808279817075307449016582838724263026581286676070702215716338523072616049404488100818395599836192786981183114493500457756000453492133853606734703796980676475011208355299366977511079113414386578577352075856611651037318560536387099579904912991957335507096635663838125556917706176576571159442221978935621577806738181444649649537810471814519429426411904074647470602877069142812875255167137571093536324543034491576645849088669096957452765030608138838271601144729842867616350651363353277912642450827001513022017361567492357570070559842356767134703768989942037626463583536275243214719459516274317451758476009684551417034628670204800706263464270807153825562242338368907971620381221650509877861589229509434982074298975360493199655933805104438279333302415649341713419701918408247772583785225267942154394820028381488230882694266074115550824429937717902529110049857873317190622042528152089261189752519099595428151957748059282789080785467277654703697750578624245035697285435289818667667821752168449328430467074412697774112238000924051583315455717918453980538108495519780834542710571868446761219873453852156396496988753731034037740965850903952423547756697962104348189787303637800985634873589527205840703511091229678717833651356692699586212639769348665599586806042324392776765433021083593697289823642635427262706017613789291896929133085314323561939590281855897597257456978850966359800096964347253924992477071839786540886207873392435862778551282074508460512232836477019225357904688383214210306120125529783229838242427915301065615523635583055786474709550345228286384235268232437327738844600251225882761091346929498079507005462019556840817215692735093200063381424051610983747818074416008409230112668318312662179618194257556151358963989784966633258082072293719021458329480026096774226456130695313413118923444352313519532901169112228949635039305043202175956559661559312408638917229076998995064434734481281845840936516249980195950685943807842680870212128077390346408417674753537944981076795843812477194545142681481596527925780604657723845361162687476572562048553874210819862714832408584923655600773706878668111772006554256428832668691810057586012658763318832850324353317360191914441080786980261398462958748532849007843161650789067420860846386472608667172896782564066359973417929286323746936424826944967691638655313163761040384327711755780426894977547519350809678792345934230530567517822818182552109922348187633090537843239310245980760296464213905635364819057600911591052416547826382388666483210233935550126967376687420704882975391312122039265799797575458063102666675976931491456076458925385569615294285537772856469939859714130580085140292404823580236632414390036497313379687043155657236962187932746801996517541686675222028708838728263825655095121903157743512553094622278715367766725542561455251724141905663213824312373012897029645978404630047194142399774639960712602042151705591421398635028773479414067892045487419287563289834420352143340645191902469087374577468972905882475452943007685515383749495181156181756548275495781072717324196305894808490965208733727421771211762979375882954519524324828931486429874470583650463635802903625168715471032372194379507579002140608993507025026654375111476231951913392400310440939604042207324812561316984916538271171931382487482119995601112352220590059706538616172073176133840619549162558901787897271873175820431950511202297229642395798770171225416691324169036319142441509411663032285571888970763110872115797686140305920922923797808641286940483186138456968356572593301178974082044335992923620314151238067312118515446846085427388578604096429481287474355806995089586849960192530308104466229890029980531820923999526008847619107852480553339946823003108544882935376834872587703367977484508084069366947754383913585758420832939825271592453643968708339368826951842718463909033264233434169196612760280813593313229736159447759518454616711594071599532299154427559624167387724868788226198410278880102515186743504569842546712263766177547493761786248697094877533385626332592869611557915965514173882870038887381581032848769195689455233448827072060310592861916042884430003174356446730615807185600855281314361003666884054362443272445912277555513579039271615562836954749726416879367595293639035806364248901514352434084338561841673159778112902707226743752121397216566850482351312487163247752947567157733073277776075172818284716400720516947218870898694612487843436634888413612550813524277288413295988176781061158532343694660397528458016393257393957845979858463858055832684921141795009534006013634550397664213668560709232159524807958103805307464321296009309030907092962795164909879423634779241858894011684308992007253461460445227660092364532407971999872201733319194850097018898095968719590576900073381776279103217176874336025433894343870846417273123666335856047614688913046922639638092475029359831732786401334193709446791621140358567728325408195433393162280439269093433634763402466144979549161580560680268852302955837262775486208315724904427077533518540749977135884965254511999241795468110883513935125559462292859188370912011537435342070854460839036645652804718481971992958860508203209554169848993824802743488568754256161185540586579450653743526388887694412460600578385595665608986032155849251519003459893439678102500643797672909066395296576770463917686614726620820572240650054854754942320481729005992598120766590476782353656859447277325573097956321456828308315632269004271512486622311042436534206770828559658494320431675985706307123347046622055245339422361052481069411775360748344899219995924409403462391860347216076846472614240139375602376443683957902149045970624175182480817438619750070227900168162262216943986765733679349557675097169237355886451449124457018925733316042001389881696517446220684517581388831716592818253283811554721604960925460846955979297125877499048439929099874721160931459772297521280425959623617111266386108744684424009795664137283008084353880252999210890579618237879021755839079747967042528370856823033700861962730009868262230307128759034580651112711393535829174526225024803106248924330344403653080737179376744895181700382082473860129708170968211505362868456878140222071309831249431498285412747575149563103048612163975894695427608937450094334736178922011394227521944315160508886947372022560416419201281964617647667654478881291357144149926030954760072071595563753053376342596746758065263241796789888528559449788451465984727829724022390110540954312411839172159737737584248527042555959097818342037308146958444279301852151121517720240963456165755732380408380466953583710241287090168172851691164108410721098235064872297346586316460555901627727314745660003082962560949192134973458994019044402985021364990311869747473246291304394856742595816150508863279565049913365989146752250045283697708694582751637720822007001083928572681561210890696864175008362121281803090007381279707694633648164965211059835221787937159987494379553507505549850787958723565364988068830192478784361575222328787495665343480498481466707925441069004233835120056184373548670057192393060903365870127961148310082757972631690067449225922998574699714794697422700077972534003449069143030688885690901114527307749399176331164758656757430941827978068282038495197588693539384639978391352062607065446760383544961233120148650733447991278062802790933842425439494907395418253508613791972976910211091193726946126033972097316622716702592765223477668533040916809909849004064178131157514893899883056463692973041247442803004655130164199447507249965774104624368369977586670807763421546001504505633475448343432469041717566398439327327113664149832688633796440701255368484310005053624362870367282488439736076324292186481646050011957964632503133386278275403495448997070104042885001771066706843822717035833423231048930659584719132746073626049079513109297795062866409523569746018144658864057623237472397033066737613762250968608863727508184554852307917700059587551334624147539473061694873254726607471519020411284893926419811901889844270312951110527224354016465036908393950251706773243110319907014720952973609831322206058598208688641734465323537323288045188020570913197180538193866268591714894963982692785867340878340078900989798324347675213692950244387638141916177541052060344235573648354366269676727976226474421068443560643889359849158405726722458479263439297421599752075398202870764386640279649982219393210994506402779885052214590336032024570986509907536587792067538105006576396256927096133051610447212540117542070112740566084981988181225590870140389581353000480260144224074062282927211285646848862662207849569687281288325256266946687907051326895946815981571418511994797076214769132292934258178648401614909385379780028026441240450502013672491815973986408399992407990813500573825654363895136737153258361095249418631560198521056332717765484074805727445983904732266962501106365448795764772613397833644697052388678196240506517981354313460608866732071335486611747760587153382586146973072569741396447759293801363410807185108911752387788424081242448938939382711268647424469343411167918233567496940912427530057988139706258492174636669991971578769198700440945988157138403949235289744777284250127367325312208236238625517488356448364773552662338368578540189563321876008567436748521561961237610743604746899993574141580773598264580976016059536792028413152391416967657421595568465098375281532039953983346654427173050635881919001193105007117019549276508645745322792928919061110146300613904744777404117218368978580525967156745398370098016010312642030692045776824881897327089755695419023740404159789179155563371236889270202414336831264975323032362473524337650771838406727747678583259211630949367532195258989715633486933456379845438067801238219912414238562870470771425823594265752617237076754900704405892680034819528453204271722392485219996128283831583285860714880174212916809831345636072604045646246132468807856716673488324474538761662169107770807557005529436692256074567137184930426371037592053925095408916868906211206312365951227672925075984968513042187417281624606872991227826707465085670555484443560671712949149506632449954001257884990048200020664000589453608781597947807536928531749233653205632726814185644995772440000562126044898109710702596532714944963928964285000664835707857111655624174265148270572428153705127193713096765999154436447580926514673263493661977832084832539397541788181774682200292783210701619170672334772211919123369175879083437412320228940120911221955113157862192482172273571202130024950746525954625239543788291389381665776501228540421029255677691573005823243933588736968581144631984301877090652084930300541803909829828695950829185801800711892227009742453303346826458058757124448619332554073551822491288612994368795937183705136602601034353110242793938934140317019628248756147797982244891302993328428621013116948300129481665358125670313784572014561940918139550731037530813118117583959805509327217827540487228237092047046341461577020323278398848374450747105935554860115781497593971981705390833406082514527619290610705019059163688307788069657003587820726159645567731367459526106864080068233910050090374359837142234217017481422803374619147090472021730653470018569766463328814681953992189859807649750766334930547962291135286254235484430374039494001889330540277278959804817886326886298078117840267070018786470811276489074668375653607701802882120346897457801524685602108067622738800802666291673508210944396360306462765294787719256120954066088276595739041904147747334522479589925960935030178935139523584190160457920840093706692052000442208738128916395379178100651281569780956583412954289900092417968953800636250418171080914748184762407895113029674266943337187829550332191584897953723806317253827160811237517276874076591724688421232540880491723939859887580936474342093849144620236011830469031932575762943575924151689656907421777364452588478539233053094185727061893650821970555834926156681170021119454088149955037103104043779964455092229418295701023086385691865813790242285810325156973115824706217963130456140380204821316344420862477654384162894428611202743164006661905696943991318654997547924176178101758352258072071969462247684967021057917403967377002393377809460500459053209460785030760828290097013203692907859146301422048972689293730440322058421834482126657237956092978790116551644155655984755584719446333274699010841647156450652657962790571304225677091442187735537641168791204704504010589884261659664586829258679793534997684792487910141573769190189701659388024665063438305638885112751811179425595665069993428848293018075389155436421562059810838923899840785778090008581465623039592436702875447823515671702806530080442589784579698532837931819218497682346671925744536003017802617016718495489695811798209332484478860322591820474135333382869640101046324982591540761756840333343454248497688070843158386874009522965244140965764072703013019367874630487631587002911549879663092074882266892994520069533062949836056162694358490578461771053631259417187578586670646601467332900126918469450037414571668703169388138024116087252180172003675777825502722850685637933455470267816345512573645378668992357851069719289195201201208680361640725858823369038227551126172399988502877635783327890865077243863026897070969362430268842757777321395172991521668132527004633897893275559057838717018685043084967943343530316174435746872527224887832604914083326489512156412417068498796456633584032444213995398644026035293084643404509125823949012353979164155972086384336763498746052316989072106820956595967356665484362278861466082567666914979683822960546716089002579483319687723868350510613410301492351642923527671134347189701356664018891841182373071528417112564677772213604561536932973249114804265452951294430554385866186316667305721668783977193927099638259054446239809409194211792438077096664411908565410187934285647209389238140354891116021400050699362864924361968576464153426231857106680117174370650699399904928132411845335350449454562218302245727407793628230092657850876218516850466062713409023131299105072660394206687110492738200080585356276865097610606225457332521848761873932945643604490889899030532776518011216352001340867647978674958748062344495876217882904668451866718005777842339972263949468376360240580302266195762205382275844810137395586672420018959584290668309979701973540470891018184894262994525481068710877282062899590328102103319321628351202548033479249946483950516175668809301826606053209836959900195420237157986572552504622464182203995633105614572887328580925665635068735647075754943463436164054444866276161469581506840979383745730751904937070988773178943302308156055478848553067044659945901465888284145552466407094869136938986593792098114796876305381712686423949793533077944880069405383477675161107931993783321022423006024955243822118591926889134104718294941978709413041980657660588214042790501968836207812922049382095649176456409806435464045545933882839573398256317112183736263935605309295094008870244375036790781527992784074335172796797021068760111978908720340417709196118416705455475831528339047904427224843210310694331687493743262710465094613517289556234000330720936993169938147832021305377246144136961367127145184622227935005525596235917396379244933178934529466785842342352125107517556202243824760634262435076683780871100769420134490417965066409166086835212820940163137730507223237879526346742267801127691269654850501498892960612984010976663210618922776771398273573133040744880994922275820813924211190441192837031434100840738309767265080991320231407904698879395456446641709096379100076423898711079712448593141679163808987960567334702617778009450675746477017907600935121972134781695637093936245431028522733308626538216300074179447502300423525193125716555761929596724574327346374050096017114994936705599123705492284589246926797454297139385699187147110811296071532479150781344644002815579215252615102676223312973527061177765428503271220805192571272883266058183961898572167774570232103099856426752758759892933165997832601982469895447948326994346728719326772091599746009322439960487600036835659359169050788970656054983880645381222966851796539536484173080254693905191062643339128403846531029277287903103666031239829131627538021082321669434509282151836187282801330878726058142719848972466231341453238919333568951996222337537550639676290162794074456106763903261203220021985929056329738846876781036285217819051606882608358319708825826851480659120122555334012705252728342243170304207960586882752121350274723776002037211074731991513547306232743006538258437707497286269469205526583918033768513895614251106197216533833054624459258146878010077766621198976010478535746679962497712082670750637476957170831352835099919538671433732421739704914019178574146170273573595379015838415573377689927849566257993421992924763575223348589450925882324905863909044825873316739299760216250104928613072696893438292403536131423944869771893164110265208796142959470680163196416897442444143588713130668303627543416911465257244178595417491362044859093832106414818361676159575532505451726455272238635820833071060493229845099708986068256223171695249712644981194344663230540030939950140512450737363844895420940496360666064217281269022703358485813317396945836351155443959180015513058520285334298315454436700199400881809532813959308070893494414860930554514666138714274289461645139523220855815868629499649208846057440336620441458422265154046180798739410672874912593553946965914260249324417858443854412759777015440726089623011027497839221056331813292077854506472984371976081792395487447314247651641860526364881219614725126712802241559529326070113954234320412169460000469397828070183010950772867447555258904625331935719957604012668838277444134192191162885204946332610231789749262626758380201770183892638787077896245382439510115448412501085689139552510268101562683396800376212403972938657899936362007772152431085412266160908143905776054305130426579496588272548143395720334083789922495544236285898676093179577503214621079777126966180015505881839244191762117477462990878948253680386871447447114983048881273333231512649218724185936725739984717129763801156188927744407380563106209502922864082012798233575437980656195046125156689048869026717823858392314115418166380841228114808984983702906863072774271230434637267659745077213680355324620719804884794755171785292074155752833158048441753906029555401620761396163097643486337551549175480420449712926002085709983622475462510192935631950888526181379050347171428762155276520274702282565058813297122109343688239379015331209675126734733534098379272189433635938793465689226976376002451016910640034117730791877913756057516913988950867558494964699701523580580337829312334101914621997451026735250644458199289891622598861653058172025246120401721814881687111751086937794287402905833287691484525470908621718636573899514117986329889706461622696291088305698735427232374222884160499170948188042328538950630660443121606498822517636834612047167989739477147300679842272718626813809373148750708402970585475190948770762349977985769336668059316030824364191677891987574131017145460681596480456491064072515635284865529529804743445322086025086270472181369571094364144985189517477856516117134224828263226039239076850335684757810100309692568694042136443551035337480648936615514739863310146979019529691918782094111766902256233789538221499524531558348205437690126151129103217078639904667679832451361013725117120084402528873118013947894912706380498564760216238021399054748014484812208641220581188028491064242021324147784624106846382293846760759650984433328817350123165949630071870445873440658174871307363550122924418412030212132643091546052036364197351508399003971571409280417950487183877173172727258039890216599805980839723209412982680414246209673466069964770201114522624074046235459883626930550963316318458805280272749906735917811501202276496206304944000872887307688813599596008680616491869468291319783930845746288020266359917266900030353195934535041796580940787596414118649002127428647064740447567755991832244929372612523333564505312307571222390846796926790684111919440870429991021245182420406855626405887162939822987798782920448353040441029470300397634850616152920834417573091690149896380872111299464698745029212089183054668339781468337103917070379624027425911660800653652871200191866907344506204484691119466375349686705331131554953257160193537782350689905624522041985220516935095771513239331532592541175497781147956393299463397092870262313816683953880265753880170924161159546016626221397088596903085174742036329662220914534629546983656355162902836954944842454968447834309504550829563788924481072226396482993920284868104739472028789610511347277200958703586326525090811133321675288797701910954623773745081758831278392140033310656951922636222764900214309860627045365536651771975782810345063612910570978726532424538456027595753642213721068211570374851371414216670485648627423083301416424806680141512608227417028332152924112564239954483278490409859125625558528436479410843194313693897711278472435723589739471760438276049591728001361856890525091815701568181295595356336967990043370199333091395145965075873202073563493358076976741588407998010315232631032839765359829846501212365367678870487268343089874791392614998098132659321034183202028713541930253171157925381784719410491663856299444199087419636754966473106326897162760164557201575359930022418386384808051142672603381233588029696188298093060566323914888778393574527706546326108278844602290080998777293867154239276966523462661556110444481181989285765019298487772361274797172717100120762262647003983650701562477726550648613877640877836844165733249531842538707112687897932702687641662119793694787570171741256131657058099664900786843673077496299178983349247103035290742405076344680133546982638294507300378102818209239723140870575162526354626675586793288936679942419174733770226773421190087677353202749024579764304721620528545936241404594491121174091938030478165038277469125019069697863317822935643657674200412528411195214444115080356693927032460879076349201911528870679015857473777601728163590757398606747155331478154725915571850250824204438242382334042931381559153589403947996580743791771386888416672294767892235936818181086317774938914948438346644883404295804697935994809778613222178972609930640872744637860051626947108785768419961139413874393098021131704949361310863785585962211331659659768621952926480724233700392152945023658145903901543892624657823741356805759097889248384362530895190562131355517790887754424573804753578797696519800655386206958066768553001507791519541283288378890791045845522235348468359286658931867676703229666964710056643279476247095919393800555744028838650214380144930804115325059564832686856917421470364993805868212205727449240832075987538771161837825796916993293960541465579866958304473726685560305714899551644047847209135526470819036916268533635307229502974092592916793162132111185718508776644789033340690056235465714285813883584705880119860124060045006876196817271123563722623671309921709048628808242773248256437795429420661191838176798090561872169407302577864496854521368265239962420175029030325131054533757620141163776013270157038352369866863875848472710400294689398383560319432365015845260647217414884024515704493635081495559285126224921524729343688200400916922264494752218593091746956091537153826912575960404661642122011060630415749978008561520013926915242006458945119734207310194235583184730599870535336743034820920211874167280430368352608529141330730172552709185167070454980209253320239013162379251088563334072289617520243994605732696969043599853071157016388640128042010412571045541410186249850516620934709509703810776700510874464912013473001407990633585598031647927505559843594461043044079570191368419470991961355846254585306737322619247753256665679680981708045808280152570846902418014619707234408708802341307404548538782562546061154085734579687892589461246662890640789560805541150687781648561509564465326489781229210017662655925829854391136236133470438747704635377529735598484443432822490478906271308935783447542091485764481200324724659094820609488660798492642831692911004386026179670394227125696308026086258584725102419517378768681924259888512785619459803815117891902241135509981714995263147865697219066064345059914292332196566122698915880121827841914851357654878753792766658908263286428022361860120366276089992726546466522436307455977095508016399639716557620620421438792409462461461849745571156728390622293952754074173331766356024317356681806189286973198496514716326554538707816104223365861898188143680528839201202372320674881429785990437396200556732572280626253003779613360117358469757463411079842119619015695719321652264745380533371731383196787637329761280072849964309581823158484752965656550323159809376504198381297928741192102641259223390628068827884772455256935887110764599482212941470088677998024687394472087290697661785930447564357455682493610209263822309560406934348008976999244996077727513367122410962080431453760003090397060912411287196586101248299654271988098036546376726027803886738671832675360709720446827866583242258607428447768335155318244346770775092801030749124626888061126213394114263356313495002952452218305667284257410539396259536459315651217467212829260352295721511725067669284018650140193462206406511947087335813798154136782314173728847029636843628728815252337836671748105218898685086819608848587995512326331423767666578840574257769819845470288015655368257199001604882658832254785943445112662040827724106479995015536296322642138761665370121702662599755753182341403007514998895311354573897723176894141459460515660617857538539969505373342878801235675281252043159631377745879457497116460573985211510288635051514403492433743639306781484830307783208090866531448920815421540313363453313990036864267173345783873202322812161898347407731889535395940955540018566591728429971835431183574368212907320896051699873174640399387462200575319599918671004552881365228491431917602172074299641911963913155137035739446981375164170051704459776761018917399174139075184828007119965842706491197765565342347835132716229774088274292067899282269433087760499653987306031821129590909757956566358270172155258331609684922726852954188333284663642403676757035620852881265495928875459886970247124505842593058320758587837100229924337119077398282335652201904933888626272837906000412459580828504309247562612637724186827040281918139654883647318158195612156500248735796820758836526188351704813584840236570087318598468880204735402210109320714588494496675751279393184521057268535207309537797120591284224309120279467744943219316776401839191609294293723407693105090494397315846512880774358048251783465985274020248977449389752538063044959675452796004373296876114852092142077894117151257805656554566230353003473909887490122038275920576061505381875041317529786808400478328051187750917731307265861191000723347788567173686479709937817798677784593023678814616362879604234842729599823056758397207132271800089099782307964681511313999678884996510752202209517018380673431658965933530503882726907067496958817466518220383850598515893237875321714565382326823507678272452799798635308803387175062486208108334992928299366770672314276049265053662240439993348381549408976384238339585251650788565802826299469104385487573857506858551062090773647007246812415714004078145140018225492356069564290786814322724408215802459512849656774588455413337205131457956581465172405473209121991211661387752896065221943580225846926246236552278954476686088722037390540942055530880199600759474550582628489636047697161634272973892286660233702625817050064399209237629015930610898717283147259258772212963638007047944186603910066565798510270588470022662028188357892261187105051261479157706787637804765994440350561359385868246012575958798307538693292288585320424759536879109137352721589231725136100144469209859725079728545354555147233571149225313608017075545910176588821535328190453328500205232001135312995900334352648031986013271457558771299795525482580597851004940574458695829177303939183280881513909331354643396549614613579012247989280602733841135078872368500982115858903583331389781626676997110432813153465633872760978767847673063963681499239662768806661457365933360870520540914440143975407521913231623019939517999141281890361873291505688223532050811211418036608796577740919156267866793221849711234463519283769902328207107387782532250491207270289120718109873655862553311607603310345495535688731189089599733929843539178938344333398220862015820613663817238083219177303996581517103536023553095317519565711480452074983180206089674738278728205149065888233139848699291043213622653710996345614086194658280868234931442143379935726349620983050941510906246250405823912531140244003877016440697821558732093126322502887611633326284971766281939539615334096389464789004090444545443028973374618394730165430644781411013016626993888761313070267921643452771584028889313320686573515179291394633725819376002601450323827248688849940669984513097364512991199489837900827396775872041379360550324938843046652827867742826434493999692947218137401247758841921186109427419570558837843926834868165564046872581774663811630220923864721574536608617253540063917380718457558768038369222612098674110967422345586026261760183076276013437527829359323881004327494832918676324773806921445892406969212683572574333496246914676772865724749984250650937095932423918388233566317626965829635202801059661363292569658875904314551596041514768328167385504272492267530500452874967894272891973517334828529530881038011088803127171172653264297659774797963906029760026549872021444608377861590465207145412424569192826002591495816809168630448151345296471592275377032819826455962135977182762753892176455696936338550079274121802251392702834811346875335599560201557511246474174648264015469980992010029585398552484803064611703242499634485669795055076449777283272210522502090887655954301502479607009115948883377106886156915725956595502245377536302580063614483896810515095465687120552010353087856274328071204029475396519707660239176824636395257266544525230022445547149433369639285538875989486794679573068823136587018117579154887688422482759537606976628597906542688666226344849382917725775473910530298998565531974140664873396317768785128873973909330322197149642842704762676559679859753616691880749023499717215743047896355319259820972480268166164641899689875021789109817913257954326343018313870828717348262050505323871610561619276217356886329153101515938302165454485739523039858664095881345569733478154892934615854087344878607237142575573963405046360237048332668308468205066697321697434954171146959534571791946859392031563029987507554034265248962594829736314682101293309455831223366898487882175119377249193007694288527032045001302697913535546316720495408098754903437998646747701080280315272003630858633402854232103268856074271700640811646347015976973636090838703014589074797570547488663346556775193300229631684771473070074809892754340241009024669173726172354530911373738849649129079254234555197843738267219467429546076794528349471779665708172759879088659588000601438768414323020026948933556067932259665366929645279500471254126649440273146050394602624380370972092391966418825601284609199006887028954053309679658028438718609056565810182772796824282624299809750639609635525480293622729788152343087437023491004896077674316494764509448743426516749032111117590723142038922396033382155228564768992630284282565867819020281139083442436283153134043132410480668931890807696789962055880994267131875803667199886445468522567871131911791541522875900142218111432231132356729007977235065591746509617720007114090940522258469356434586119275152598207516078041711812851927378634668878013874699729585804620333715906667848033160979828128653162089790955820488960426290515094950283212359235381381972243075953799758940588073282987657534987628862779858908353684170218854668504694418589152874246545855056039484940008098595542362398537325915057313902025440728061818932462687299341616439624968348126442030949972934454850754440700904766105283761186989181418337540129340516005374566854024335617527478279066203581238149571227441863366791436986892063499274255912469415910717489258268786756181157723074077921992355152687854477926564098484696993769861667499878644430362019448471334644132490387388454793830079355924705314570661803383867078842008245997530553937703487551111338681872097142832899133405806306521251192078718747739692434754100945718442895338812602436244022879687750302397945845061377870646478266208784534753826948993382280493087852211330155998650470236900479211111383198821117833175624220879400749677364893196412112227829778366976487019665843276798163295421838408574648894223539757451543912184869986296567643335964685622871572751150420430549030513427578541381012378974120820327542072379788325124586417675266715982878406580274341432735518960616926538927010367569576269155479192146466313705059864506837909612618309017224362201234649895598410455959816062204320320280176643914480195103694132201186231826180973724725789816061682603301991011362384652184512790695633766451004996405897699438737159609686669765461236996103276959651674930737330231738239645463898429013897403954506033876990677581729354787801247547461498037455122679676465285484851370953080016437128106771465244607740591633516983374105931673954443551346069147678628143424792915976845761415730506353894427482640052799483852137383975586279960479506208320107376661646121171199765227387543762017406767688210478551730029342573192830840087256087027133401737349918663215133223220150479470547944792812588697868059413238188017100769293909312502192592643368183481723209676162656606569398829200650870205832335464103164088842482562780062786319746700693162968527537630287677870904589194483242699677493359563964821581823200230621196669081043334689912771458511355613155863884459451288657613862274950691496131887370690728556131363944223958978499291410126635718552149019524278760455385231265207415429571726603908791695937852697881840646159516804419723115835364855033148336571956647005155627324486063331978359535565212972469142402550981891165224214090976895432130981773835936345349247874897107651346272698860125597717611577127431230209556733627728478481416668381515077789971618235035353225001996001547687878697276653082867962875017908021913676479128512203818431956915288396257312545627470648328903334933586017990094028465223686480548135253004719960174769231584437207312560782543915704557231166940150804494586437697071842462057502588551803811252083635432126681628250109990833997368720462995548079629570682198571248776844189771798768443854746997274122052474571349884453590132171452294293980178277389544146436741041097775274294276247975346720700153713936148626903253390588778968722575414819802117027151165200945042691058474279010105249548798585778036158458201754614417040216124518686526496642437782701180454246847859388093728570044188380766738000907949887244853484353535786005197850513923670582159782702582267313856335885654418946174142617412983576652230717103382533397532922670658864740864315979502032138322509578349904878072127980290874692794754066790449955275640053657445651221917802689759657961158840842879601943649067265737061640507352033031265792171609215474018161803620236148777322710492074039884242232925672255931408207376383317376728986838095134820449488129789864886850876926618941883729373321413544348234824756111983785903171650616545000494524740148100545439859317397521614712977835012458652254668146263344848093689492331267717588938144207533344208611764587817949564104700065361803651916569825609404426778777402091971732417765194462192199190665142141037087651110590090547197119000755794746126590952836478102841473774428608817072280565377551406995920068456047894048264667691059879129376342373052734973711486462690410932407459086734852567844066753028027787876895866364667867745819494335255069019319298319982559734851496201405157774736259800122201951818973896998368849761020083171964654614765070308075049559762188906297720161779975752776301725276134634070343322722910797668974425351393822654864987652024938695077466553798753419891065510825178939625542557502404264189036195193234364197397552675471706018690502138664152837830588158292034971112999550465829667464903800704221101115846054535093172424449411949363616520880070189489604887789427743520717374287192598991668669572278003384115323632225215928167604523110078425708864493193215662150043314622528046667538202172855224946199181795802739436104418163339157783345856064235120134586165324581825443870248893577659231463651754191486015220173195650948403528476262279593687798821336464875558936375340612050367993952496630630705888217860565758759621656579851010816619045301577627069171215419926655333381452885654110257811377301889482397587985587892470065425354624021204099826492978092520057617588862787750423991070901912902174165173513619379101725680423660162342149027998052904710767774512595350906299221931884103034370893557184439734297560121787313308927603398877630633465598827329939200786151194999392201876980195947454380971594403071612041447579809563306227068124971065362656451715188899518755569668260979254366424576016153040500165334111053640181116221067183052188443953911991839263256294800153031547795690038226510703143949294179518229238424356910519252221608192546282096903794116350232610410515142321118020277497203383420455419122019915711779561802334251215770683918875701270629543775447366671806146309557004481645433804920603330490154748918936851033547865584103980181832728370934526073329720989025370499132493611423672224290081080178151779658418094920150752017028915626250488625893210428921878971260112036374863718045383182203396190409609178385177826814866633423479175115770007026490987768869335347654165218141097426110913111520516542519964298129692907319784072774875545281928505242504461888639823338842762312343459903589167990029736325532846814347496219842583609032160454402308831475896656894131687221553265455082750469865271213831210634348806836159738051421989251698392590033547206876300646835340042502567657532672220122825157974045747735852482438140138081034398003550625562640294149977391412836248743127362313932197234778342115682492048453663786966926869390045513940012412816908974513610142717840619772616933914070219642283526991839880896142525331870396090033272178100854093009226427219505749405107396515509562149268588198585504271393831647089149069774174240010426786467079510079997749791608798765964159253675484957558418306825588493465359757890240539509321863930209181825698742028556928478989539665397225563788092939568348231724541016622274756694427795195496833562727007836265790967406443630653274144122153434082753840501340197959899992771798895768264550638236839832639158686055442127915271140083340167556181307430168103647665537199787002100198940179353666891387596209655231025054905843735393681491994029166136358985530275890801654625518369077962045871021467490849315711724785729318585974408820826497310791935077868862002190801190217166739266859374692870639320083441801452292407049254340813363013017403322464168883957182970537941647720124520840486185286969852860408068988474330664171183865780296925697411191370933284384600819490063663206634190278827415373565685689511259259116192692445432357992226631978878599929505835940547147721400581034357545707585489474571005772390152242222970498753707382698062644870369115774686112675156108295158942561063891762696332686450433990252993630236432023506082263106258431833628017260715703183196552509054783219588061547836424353414618271998066538239898697382698315784532612141654793344878576007274308438562119233506136617038656164179786076727476120725732757430649366131145640471005812036621750167410940124773532902277401406840903383875780498443758560318486642763348017019288376394273754892954311749362309739208293529575360780567188410975455080921419387082168283671973509150213444729873522479443323772543715595148139982807250529520685533435919541995030102999957201046900427531087856631931197581358931191970922165526330665110725769642248426324632375557838267460551449143280968958638265870506192044024811903463799013270438613105274831879199489674802647607231120233081359552800370507080905760916990515825730484257031174861656465402354169501606067833507001864012025236203884442516600260914946859237933710175182817153236377751067668645928105811523735967164811846256920584234797263819843891719186858116082953482864935854271581222319886807618429428952090551615335885077253805410754752409661625582233718420166853807379296651184956023968829706985918947143924697493258859598072213504585649971954433166572152385023024977671911591735342407157284937369007108676325180597384510959793727419917124825960682976086674945593324035943349847307578043592465503592432078150270621001552357462957156251699868690816931932453953666902345999848249850407475138573168271764714647160280772922219309265814895576362442890997663818678052177876514088626493630027191646984829080019702160353798131126471574515239951039990058132029138700307499286398165094499693465663620629640347818130081862194201769624570897104766885146891537496827662833100528017227665389981029343292300046810818405365654036077736840441998035246725871251441850888156599157918464958298687345935718381692435296710966990641308020311855468319347673601738870959691237655821235866013147091429703360836501994351235089159479880871553449517648548268583010097391523001562021742700345626655859405908931423985891668279406395611648085948843469469444782823697816206511307193361381180079031524669092502051429028444913620001980065776850939760546232092888062469963533663181279942446852419630907479965403279377601228118361480855081705141394403367566093233609976657336982060297031716757163066873011055763216958495720376707283811999253851914602251570402611970777892967618090678467776238783365694174279820586280724234020893613830154270220000816566953382477118914861559198526115973452102141251586459616361859342066249346743962750861233717681228524030733689294342951847623981375627852971223896635813383373690629809155252384424272282776668611213967676902422478028398755935412886271406320728848913369437012401463141200870742349644756926571189340819929162517543659949006671301004956620825235923651086321663943846496222071958589705675286155509572664848119211448892711883812450028920656444770153740638985585623385129177155668723358443284980385958226935570272096731911865850970651625255937993556219336081420298434640483031226070217651921939714130306649537090352175305468796034645457716875083189381046329413522575730754730480585975804627709033832559456767504804676326970256635854425847159063701452552703116460798680507117968370985378431787195575253351677797409222128675551215188834767694834889858546205964081875474918176231693459095497550074161494929615502425505863398058219087223797497188067285321570880160140998061494555062141518161278583208272292150997622442696602334774826904665758576065643286359442116430480582774349891739595854618494994531853811335186129067589754752644197262612033888067700227154406092549223117257856666618872420566304311656895641928557210710144950661451834211218259478377766286471539348397387050135832163366342445682507033564317167324395074031446405102079517722178542274275603088387249850619728415757469527663317965861039417658866490048965456642694654227563384046942811705725972817224843356610997575952102493888529318798226532142762004925762253317359735537849869609798032221898664723743176901041485967662246111821884590637327213187486143566258140583500054326019930640876109585624769560591664497133816016112090786047539407975430137696199231867255573272840769995490949862485813331035886022283315935803891759470864238098796055203532356583121780665150264832326152531253169326071762307669771937627865784632215161831727159018090097479358999854201745783674442036269277059982954832806351825886330428080102439631021177338309879611778239438090011164404846792448007218094033708916599639585376822222944151213732991791210819117970977886677382695229586385948616348035588488306214847261976779659551144030373864071969089797555848835720661678687302195322769165322978914936613851202566288359931595900995464850630190819464354671992240685497716400904980810813778240415481505577568137837567814454826715545859064928975206831456220330992873006117342373300525999628999896661927753105214643376555037376790991491835646181243287548384870547860874509267190059423629579503966996603300944541545804040046239309184249283777932899738095977463841785376348667175697238119147016418963835069824478473349736958229137836977034773212295225148828150976527988955237896356250394068606155730376189074941838017237009042956466364172020283648659601396226812885211368821671787554633698623284881043337188887728027351322490331455927161040380882537491811240969124265308612763944628593025455862060875696697600530116244974843173543692368117310178714813049684998571793890394708778291785269287211032313056255047406277679693215167347274778609464279522156757709499647983720512425818290853518311344344267242120297888847240842949556540898837192462513453731961474267986483496225708311055914823654271194398822571296685977800783281435937263344965345184926123638114781475989211122877047731688036780464115549062078062459216800161720096957182105766475208595202105798637317203786102173344584675473393622961271032831478910506777209388814531592188002824610281777174519453881913484460926618682942527894873462603473203045423402546521282923592866531780042160397853006656773365514476956073062800857958268145377971902359103025096234298645978250663613623028478587105702953706595731602854339570711052653452412801669610896997811257390631617197389667518582733169342532475348982449414939153345169196917752485561335232924205168533043572064574576541736928769136034708975184563998907225249598499954493853518397100091956006840735635606326794846576293462504332457537771609311554269670541204171616810229996525311533615700739718703665232436850637956419020204136836528670858582701971199978984271469095396859653669293873754681854286885660168966984692702481211960306503813970411303988713536004277199646513113512796722722847921215244249437983111614004200711178564459480790602109100504223825593603032957624196200400353648221060879336988970306861690151125748051819308031284837695551764965502208324351911227793453471368229183465494405815999985679368619150357047104731723332760152214534522706523900524837130842939991793347588504162500933094608015571314324177914795379482478597295702449705806466144504562671190499271147247625098832660856298360066227302064044371446272021180572315958046909103141920768467760405932333068991555765559488486882695196437172915025803437667639387029792565355850717852415530270318875445862067764631354017410098815135398364924919534474466838266698372315440433981514058870295142222872320867066755627410176834259602647100457594091824298271254234774547954368640605876944222557139076880890103291064452681163385481993204212553675369149236922964400238415883138185411350069150288810145858173309408069007593539799877868767852158596452840976955452438041341281810900659822739556594591370898353321295793022045378356035421511602816322844036709264289238867338279320500208219035012215156230130377541548808762806368640592801544272987369598688213734410266061744461249691238686881879865654553122277680103521719341607267919951341845877640824970989168687020432372893528237422028874038913978316281898356819684873781137259939134199750667674765530032089373363738521886197734085846031694675012734786642613035884541964796870287379540912720682968424327041232198051409663530591909603472110475491244901553754482726915529539186119311973815538027710522332477160641195756517724426357400927414766828265862673729064898794835983833786523697773959968548588052251256913980150203296031946522161288979387807468975047726697104670582976136839729642910886647413639652702692254352041404393557392254717540656111658831407619520135330065451565672270194900468696498103674736996390503703751908774064666031487200292580144245284879441731799073205195396249586690831277367426165594962976844190228618830575675790027563013843377782687882747766431795951939468059454903521489891400474764962520549374821544532676913732880162403201282569839425318115606550927646898767145992650241273304890651038739076837447157828619158737115473394204030735159332729844589439170044048170772398819331328967246115055654720319005353206536844204856404363792330645332051454452820142792174593166109402719030997961415869132520275230114553486380782310573758549711009246974884301464285317440072310833054611247224210815818644768006347780584486601614550376924057510035177972013260780771126699454135620020490128349535953964758657468067041198611723498968238881819021001407358353966383603161578284737817016042508109260977983712790892323585430059295779740455028239134791901148321326743367341222089775734025757942847722089983403873641339779623133146692256833483280105582955563037531302504925653009410519332062138679313019412832990366616983257867802197855691033520244081469644162097965428359938066859827669577005287975174540322267930697627612939582808385867206667821797277706728920046886733847743047304035123028676839215013418695260755691092300750479443023515231163100257748339277969660183527764573105992187911598188546074899442884372070833885025996914124561694389723370718390149264139299454939668501493212511732362911375275416016270226710700248005885998962062442298566484674558270222373420396047261871760309482332762407506194672163492344000256037744668514294417151595793988831613286699609772366078848256973491707626876743872534256363005297596248674802259289310006647116687022627272603114951352384796877723175444262156749864755818879620503973430185036278187754765904583452248259535363637306868933507453428299542514604263721821018528930796221097423815695449514417693464154993855257018661210904278764171564042000971777024465070753633636843320134411892467946881826552200883711533399154207057240508317220338865875989907788376719560047291790397585450732586130764403180386742313894984107197303665839995465794894209696043107193725486207811477105316282989282834854089255863198846742172673105515381543917953211125464239460279141506922545210456040826728381205304629370904987567006298796797033027623592511110646959151797121899557334986788001074180562363477213005715766751991570155166524453219528613174847979836244627647974340871391485505054354436707901116148214212411762321495776107170524413376744286095123828177287806635798311463500874440075843929717910453618334478748811584928288953792428104173811180906972710306860193371950458067612757940708043543098022840466258619541092328321986001858271483538952321549611161139945350480924273833257437864707098581237112734395654395478429201276109345677990649996820897781622219205374109032059556247826194657566618207105649000933784918963441997789123887968766524026185151192490586729028578756465692710869790464069939425707082648671961348698290713337035747597926626435999127658810979545207057344326045375410343481374204718402587009561892966670992481750691870564139443885255740944634093264973853620293073036359148233334431047600835869688196522738210504664891225040855113588038921012877892403337648715605261687594159361109980497374146409562035968394905026002634560726317086134430543100665215468640113411044304817395895784911982651351690393403346385810584385652257744038443657323738563011666677831480557055599109583467204151742103173552742511197030067287497457378061140718292925984414855256098847936683895585477142833123012696827383443191591280953685812729028957503254146637907775582341027386649446280874298567460432993294190766027363109885169401725214804882076731400996630542789876012514288515632559954871289037907739198095389141788390849946273015902789473700119732361786905955142544038804255440791726541538977799599537033646407069415332540354342092151626290042866269372966061231939793247600633787451684881024430493698126388816240540102754559994965132884939396348686638037967618481903903650991942447523113836025324084321223766512903204094334314546089323994283852662888138787012495918355930383723334690713524233208748618267988520357577895396664792028797232387438132406214252003788863249980229999545710448143373336679773452091454637606885901487113253839312330076210417128200587740626576573124979539586976987092023284335175029900467924481056936433770995392788850610029737813519734250513287624074346267236653254994532696747213348881449363075946390238121532071747083199027102096100583842450822003376940332421557617342406330775228258560811498066356846603214712682003162468480034405509434162215136831808745491554566250506376622892161523133718258319465214329933125051239908030766496603436088652490246521069421672470687461860072658593206067944574120564721440640245058834995447700718670780788036560423130038180534682421906490620948159483437901143768551373244957749029455277071863700534812302558652707856794233578293708574277507172058970759096483027506749137192651415872416497689352658009767283676609376958637782389103387091714401890125715629739066484947224222976303598854528668701533065786202294386437530737240338907418995275563733169866937077550238602489551431835860941175466420204395835333035558120151316243023309713734635332200673656609946786929825152115184770459211341108328294386290024033009972574817633042116706235350169340431119121222930815468138287244925944755550807452968978413198842908620224892037144287549274544420600271154341689339440524277011549706735634578992932289212854652532516092894465388366285206118529387030608881829977434258020459943253898214115597105104162929156914452277661990937734787887325790055763982298211683452652847351523712502955996926272401189858944509284292472701952285272450328737205332199159785054953913061811540284697096224792583112341056540445266413865997211100761130645052584334671123627152278833378574545113427502403295558033096747034169320792594957789701691006676572210470839745005959263953941546606999226314674386919103111158881704888114804501038439840918894122065437266521336097317671991466862412329792002111910686906175064114665802161476647686289291482121894491868103583048388743569248516808898975923682900891705188742234222746305806672096281955042620714716102400063468687453400534866739798995095638442990382700029847229531841180991486038095294233673517227045605461231565962016138236223283520151336754610044324692385032415008238566563146131480504431210660465420613858802073542288142996571548485843358870985799530377912595317311389569741965759719976447024858200660422745894389885473046042192427660747807777400745213761405031935037215089467810957262717052158893521865573234861790628084052735990394048038417418662561268783470062299097706768149913278924224529817677479876265551898906441253963544673339987112890143616549424358576959716770610900330478096485450074020557095519642512986233023577085759769633374444213372465734513502780855669248347199015313279659501733522127139338684023364162811583189575635383275208441061505259774120380235533349124552147124687030311809205301709363949389525717017428875313247096249539654153280019161393141674046652618074928504144189813540723537028237631623685733905994498789155318579473145417641582916292916821416579624159777083472421411498008239858334038781463770792202585404537335863106827357161453151234919882052075243409911944272849430725048989863911232357665037332076995088434044538008271311685777878989392041025124653907572872648470922656156866661021229690143321477471849568804774993195797825137264131867384996434348520919388053053463638564500043748382415795951435451685831240838613495000184016397150448064021315615338061143314752682477214064662630254356289859970058492004766314237063198217718203808876070521618522726517918006544627818308226176852452380017069073568562407069815091459357838210991283216455275266508952191971062382081428431458426631405486840239579496759977371234634489434943725000207596601228915988333222498059295671279933083595855348801323460262612557544184433568829252580580692902510774601894206163993039481012984271372025762712618590062409007993497473668476474411592012220619081173267505271770735524101155378951787712868956031350283033186839054235798780654741934309721887730660186446364903012723584300384734049041920879823694888472365280578366589745738497881031705564557977214393942170501263180765769872230378422893260210340675796609058237483461373662802297403590072768063811145778313813243464490831419537062775962468506402234184928651571361382835825213092395819941715964291778170272099610049396601462558940682995574425954723969481480737001207989584800458147327572025446279132617683416980827299000478057609075089979437204816202369784833055518098449605118121832631446433973061714217793828915470432175541599099226111655764485757462416319729262221667075175314251017496430289830551674050169197639947578518288801028206245957460234698704214140069692548704030237300741627760424859361607891245965487982565502075841068579038746146239605990209364732600271923272635324577679098233394663457212576152481504942733809607876776903434484581072193561949960833285389231496045723980267446982083561959138103545962574110244582813141323703166475370806875391086069042545870245613577997085335511325742418562381772929949984160187235846683230741780210400071696605059877160879912179892871409948413561123181415502270415356807943208751222571010865998806354536331447829643937331369414560769972009884192880500784846388189615409076732157819226694807683179123441562789199811684913107743041762500962530915981044535220291701225911466993252181811813256820527447139612158080847548278270959550523708023919581957304024126581014203900569134082589194594468306492146781479132860278065808757053219490351368419716101959378682373862612247249208479819259277972162823610198600057742046061321495655667190784501356590890772383456005921960262487465441248037539828768121273318422608939043971197947539218222653824001994174976546811796646825213405845210183640599616386628571880449659977258944647414166419810085301912035468157329907871184791394474932436091962867377547439100630788824960062226464495652439463186431848354165220272180262188313393065120104501327379677203959597834379647982311416714863087076702718645620701420396768591881724710986818716747462965903086694737809080704878853864649837251570456445865516668176177540704233237771177609171114528682296059443283378733218209165295700547227872859629524889830308551896254328183876999737423501939742561887475599140755165600735723147234446371222645631047512561230988624171200418354775163443507251386153772279094796040362629408235611812579244243122343986609165182958054481723978429114172962924904770343662061171624227993382299884043926466061312369156445711879232384728534758998478909968453998086636933704618890310498109884117680508994339469410677096319092782789367467649548955072155383663501408741325970369497626327137311646238254672604702727861082185016656709736874868735820252225547793133055997956237540518678076918177551675383645931107002873982302624441295301623706628312068595291083140361912095212981966295732231905387552723862696057745233623888384071630988761544219775125118990100389799120967081674687261566057386357251110068468079334901647756285268907622395662436958155290644825997059429413578147358365413422378774247858811707737081574047379307062057725234267924403908156908884841004989556736016386668149546216296645160730702862146447974358959262423036409554028724258186912472712274345514103727499591600149886450362198210362034454819668756612145255299250349490274491503653409027398849790538809736451358258142803875558841789452237289314437158500462853660474280414645506301650912600563671429544929234857824088509468554657480424077459553308939169445846481723264090920659491955573387055189879762408871747117677835470717234850974225588476020624887071915799144625023505771716591684125195274678616109982186286131052076542100448410403888598485417937164207160972990149273887239987285060482234800022299060559299499898553177176254036647281147301085320404077147892672799740455179666023850126241615823756995605643850573970840220554075936826513416763210430695642372413827434364033285157509020130941598414861415232942198358323216772476951911090444695576121042240785832836489563795735893652196728169910405664328132808780602926684724029353369169005459449512158060881101919915271580215874322743934162551888184379831614434506026373249758446632638920969847623070573497139517348595977792252534783663721848336931584154650278664607990040656657088927100368051949232848587544596527734548541781956266657736416673881163167259100190084225774783159974903948428962357089369916080134596550406537493391776316937874931122492168820362195648422794237596560691314470000012137367320961908365283173928804315836897068347343011405558491616686737206968527743862805634312446693067554454652157654106596345763251366053226076263746471184535539299275210424395302426130439258923274441143952890976791128685369379667290613439700054907164017355364901556121860470788991579424743467216445230021079841314882374054758623507781725567408317540655967102663774068236712074235495798491946122519772137754336456118560506609789253631397487919551125470004515418638482444355108930894799329965183027830222638701816323455666764316661470147978379814628368432510758528150971495444020209566299823674226209696897170533786247013134797386951684375151504927886273901254730834887966590106902012315332591483500866131827613243627090928393900644911619299696343466395415826986191481276735953826966227420093128675769896363549479049172022462661153613480224694448162134639122224639824928140943161562598627151905686784645250301626073469021572268910889201483482701412486416515264637513296923586494797124606102148871706274946189372408160299392714459218814826332242492931893003032733331177160692904940134974961989489556879045567452491839855478949586437401970077438215218666097871304016345715170262627703769437554261617751548687064593510398281290512533425057299067756222106120809518528954871970228678158938014840345522793446918534281637002344280593114134907809741641060699740162249046281364455801746635214796155379511275515292401892985737096112729267603854815001423688706846702764051886832823594553811725517980505755729666581474283749643369402919231522313464832998718888497387547705206824405845684722552895687055603821257674225754158079158458568186041488333297560526812529312597930075693107448062817874340535058524868797661312391080278477395521001964335313126149286126084143594489869082048823389689174676800297520345738534067276082600948390185553825123589232440758821497098894481701475458393945981298388484440247134980357023852802172590255691289962735688786027920164092673362519298767176645341602616834796844924052832611143412929922257037286268702771484507983843583763506973029111787877317354773032781970097906379395696580328521299568668672756454846481505154869117589526916565081792442688383472750532978392997649192925808536444682863281740660314464694778409341166258349995574231093356354453473162911059989082916940251671716701160507572393806060687510176017952776010494045406763412170878054298456654660656821864601217928056982923376866308806780851205750234146283383534515679018537675391977081136249031864504270367136729023596210587225023754329684145458064891367135758016871047879925553157490830121125959912035782932669685500438057556559620040026048906153795313462158223058887243748855000179579256720634409106581726120823226082609746396795601044216156861234380290109201831435697973531561736056095037074541230465995077244617777356126747802728396812011706493081776398411552334549462853532059797680934776021210933882935586098802035736607967256671916697577205266704694990543633512995553440217229831175795786186312679564583055092328428665988159177364584714481287598939541582735399619028031680137595122557751339781151479931827848198014776124102982786020783696520202688551323239817725000979459712896780772428845325062320714296827454074793350649612285877400144455264756922331996688616492252781397954164117016943749913457707820182663129041022460400571508729555647044333564840029811884129050298657199017569749633355165621360254165395848406368603497027308807034915234286755788278770832487295583398376437689604576887686527350735885565520164362975283817777362620431932633830447566720862205213618199343222671147937807581757132880884895568417073707071083378264270967767591936770728612664697958470309988352732708024531574777349930993944389040672297541159279556067542496032890152116381346301871875549157872389904231730022666013100651092679891241946918552934552090541044754048834808110519704883261906858058907472336871437510000217497124291596832803283370437885638386407042682636296409241849305439787570035145066696831989286795602512447662295647305824857058712377324036015103154637297989441183263452451573464287087000192127095961085555589129285742598102270808910961617784574595464236845466132131737445422437858510599741801417621208251622839370216920914737830469066540118026587683478240509789110248718545641256419857146107347793502922401636674295474952317572807476905181851287701748687506580224615055499084207440542445309819485965322223605606687159779065687138915414757092428906183461420878125152899960790104107504028239592973959808334073888245615688730644031992538076920617099823433344380670762833930953405632034940399731615864872959764223232597139188273910446672250420544487543080601191288997476304602102193889440364987149969516279984089814809185568730602437274521080209251083461978274835933787963494639760181903525243147945271044011513881995950553513846382387765232716890793806781937940470739167426018482928224499974508810332157128342269564073273368540389461577752598678566578435304249502705881901244860538341373225688027234197094627626863374832282866708298439956041688413943432854080134053155464967996993771753997644278851526492861699249972413929230948420811547863637875819818207044094081647143037232762474816182864474607026941883735123556506767222048485293827539772432435112109741076199629007596558235522029580230935613817851823604861539521269100919347193658100328162834008521838806030813756989610787701999433307273240482584390395241209195079706618225705513695147255866124126386675106641151974314509435661235170990593407113948671701503549820782731935058375910091765084460530513160904169967127660989783831096131747794037039554906793790547194163649106377256224388738043746549918093940119240138860177978810808176342188669659936405788690971413870133017265535426373920597447967601604769887727479802677862734094974229081254159153276820136427769353393904902704934119548497126439579827303422764159990048390127919714909997790692772481949399121455593996431268450075706163738373170744850113214825453295058484679273388048965188615267289819554527511744226695439458843051429665869052826986282970935876441206298945446839981913537100706007730924048810948393093971591278060995474568797525050409056766555125755396101965605587842303914256908322895742126431023068422027495036761776166370878234020949802451308044926762098938412621382403460524705061884167594492552453358735919650809686178258158635785143131801032182453970304551949251716007165916022037748098771288382785842873656724246542419369201228421304223302134012597981294708735992862080418153038855798867480122712794833035948050257640470078881268522880618645028474887759157805580464425135555503325993330459133702725497079059918928019799374654672749987786215788033070308034326212909374816584788284363916282380440450740482724616268006343276610508608236629123635058201757426167586566782488066525788051113339314870826134104889201345969887483958080120304934866056594941316575578564386478606690718344975660019691639647816803851491826617539435842129706969421586535012222754300102545090139016601887550281585978934965048201287659296075989957656239883690421405226777396801150745338940265833737843016672516622721747067897734897914150695202099570941281707008614365500042043806269024458217305085221007567302244955706108427974640308838106437497502338068941865296558845346719097141134823406150051484583973060065073766088063642472516393013181790934157266627178935401950424372843550338597788781998504214892929984392336279863775648903219637024923725459514295538900387557101673849443236898376080286221395728720504170284788400145175415888541149205128576630510391928279335653329729369961061401049787628083391591736457939204332999592080510823685048006784473805209852208773077625265700799574756910962641846149096976319240842583773531450930687275485368336892233552771780384681750753104509230166555823963240508367606173064302452741225492670232529615708225654517323910672521899651642827020279547312994908404082585418552571075715652772206589418097547754297640527412977335297663678681813487733790051065427621006817917553143573291704637309093553292268427176001624896098742211320845246199675459243802223404614347239593047578605722939479737715491415309329171004790883094195546108006759883118145499092426477100186322451179032296852847706461096021728209276861341448629510725231344295949264595510476571650806861859560504924280574120459565737127293831595628467831179604095607090978613136764150683598055093764975876165323915508887801363979282268967551446116082816259510297274578264856769893049632960386527258507071218134585847786922642635671319136683760550888078826822026225020955449114823813156156313624572846541919623788469443174345770501767921424094517529101186669267137148458669263006641106641580901456718690670377272262597359212371133381584618505468045421561160625477287679517364938447469771492772106307641392065228047496473627759957120251844786007273620700580049477413404998597370370558107686168749790269783147236117071940274815067576794889766399937716862100793494884413896314501530913203048439351631235780085919444766527868178994670394584576694943135054417586246379217619432323214296657058295737554558082901822929261576151203274927541589697182297222692132181568019087068681938165805381765933824114271389298072039037797118893757233158256091724558579482076261701811031998572804091042674498649096388518190845404529823798748076313472630606212932516616631643968690315876862710132962883747132445810698347388341980177949811617001176976273496570758585768652876919575043982022620125556418840367672491384076674926061497325155636524143587985196397080419169023378443846851662370100153099401308170657809553262726133875164246584615494318230533868109148897685890653546552610741702003345315706207966656420024396552518644558030814892372470255282045595394150047305659327060105767681197348533742744869525054247919642662537518410837400519042956120651214873699744454749601667219176859889224429330988585203155081383284686625825025848068356648909833079243573446861014035844424266411182060586836730949219235626483842427171534942702198423477656220187706466108101482559687274114935378914926996651241921402889787126147797089426731415830286732538080679456759736282368412890502090336268197829263747232167601694529016757592175298870951130951685908830903227902387141232039149970263092754230558061832162442705420358215382418730553848050332564539614684559565549726562824679073809903243090008914436692588721245868429577235934770413893916365069856088916201732131702903504248546559395107142764532891350613901504281513388796554713971262376998274827892568407132801898179321430949733060286246480763603550296426057610739918929930425135740071202836644720572046379628725588678164077501788770464907190880016714775993217872446547548259786120428706930548036969712803019732256611362454335134154529189105384621034263068345883838387543851465986478930635663586185011043585944009321713269062996470672466081595687113856451205680270007822608736555041004131729210692123927980719460016775875863078472397537174091393894460957888407196175359714568631673472182742083139998218096608057758573994156901076803313800992147115487687782775971777889030852448264915334702888967853511231462348260019507477305905767497942311651890179126104126118384852183415906201543384401542286732729334516705881355254062618357462509591151507075053409671496226206975770726815758180233664539603337031237694976645091211328672757664160362647143675576123652293873712768128449723624232561737128569796446683523635328026222315143596125331983105733696044775387044709449563431397183795209951218247782456379077046525291243279657123315495786510207547258256217355407833569541830872751148237955887828902501548292764255852458926518535046382320722460013432259611347817823004599258223862467953963518387412267969230616421032184950482817761164674247043282511769206736087017246885830110533037152679439756595156768286802627508515056230959971914504246844237243754471391275897527010802313339415753738069121584383564001966533253610754264108360233985862617207516327585304151644828567370213684900178643927992187451072091047894809079128754057612332892314596507130564509848979296256328338004981866701028117179885750324999616838629826032035608125193056644393835627644072629798509456406089005406224094042202421844590527566696624789903052752504569741792852499744397699142429071056902492802718787976054001488136770091145157725854051851865595573141615747348135327879962578508651156751335461342693234685241272028237125732747474325983775796725292944058100352343502416454069922884551496147884704770163406782422319321347268480379235262235791020658856679225052297558085951611918511230700729062153994222866180954080785046598116369144871550632624278593613137646220659395189837534939306638060838558462843019734876948139527806477936547472386318336585487424094826380450745676070532425276674757682851588186312361680007571172235103070492539157012839423309090295846841813987645571145514663967228869991863264285619776889119289351605935757238688354962141761554746905821199703455764068427955680821729911460266261169797752625306591366996786879116672003620640977493477455682929477763409912261021717035215780344355696148563007280962769751762202674906461276678879382135658990061298551625771536071568797743250579499854516918915527034093912103637595295116206344922554456894668687113846712654940300020950553813047647541111134926834383501778047370947604130631980438255048941428204979875411374064709509774153474803996880185291371178796346032720508933139424482558371144866606537089464200852181339346520478212905145026709306179970816654582750408444574547496428456885642334851880666188881181175241100819876517757187875861174014873445953141102759153162676387699456056246973740123396902343264394566564129213224461979468379876843951584974507786595931834552020390819543025332824025303277887418430395538133115594673227303485963255743671173714260849957248705331039143608739732047873100167065020347001564407464554401688343272866702102915989252514589269246443911629042626177417075532650062683676943748002366600517305596540015854165630591494809866045057240901273533561371071681949550616090395813875649107847759299948361136695574286294601175611479285662740329602737384557462419505507304324019157177637550275032689915803574593917575428049409005669897325583822527301082226930878483313155515428008575272232911481281080358157569312800874616676985200279536147722852071842629158454077486962487288438968470321733137816557963055530838334639118085952782564870962802132381372103905937632366067150889434446254598653402645467049851641280888018340751284398958493397429348105729195330678151118646756551671615230596285506490873443620934988025905010092294718230285125162014663015460918735321721745506282591313403426888628985782467833638422674964019609321494884305240339669270925690494675781704769763215384921389488137981400861066800333305962651777465036727398697994978444480717142438302698958746836621210323548344684436060108083905547900613827717575893533236453217826989942709339731301766421530933028272998246960103832430183761384919302139217613790090923922434582221345649253103392921373965389309916195601109566478729583728579705282712678261308760500941021893324680066146605985749438799570091738541452957722956178306061798682436672051096497689785641367889938242615621371363065260150402929224625688739831590874607522788331341720423254741546642470782480126154490848873880383160496529502657342612449175505482532216076100158728696795813265399172410463768694762429254781899580802396805622232701828656972324696249392885990855023365863768820080216157249179339163009746455305741400129758558041035468634620642100953608319234889215889855970212571176490768363908313214801096570834800921820423214324709776610311290607509985813016199024644770898866869813294294803554597755248865512013527293847332687788629553954764297066187317267531006084419079412329512921950056515108210771641928926305248349830481474340774584795114973441918270675860614439759132552394210523633978318876902015843763474822213442024154540180299450005042309398853982809399953767727293637124277152492178650865644098935502988351056242867963780828549698906889382815855168964187911689837830747927568717234957015436703662816736172351527190017785709248569942551323068689453951147929035400820710406576592223690479155165908841396996623373515854279048393766352308369734517767463761905854459500437631927797876834707500370596667572046882510653884560341328155376875541063536993546244700076920024219269310425821146442590060412544703080126141035927504441997943921060486565470501646424062817876609008115307915297013014604060236819895269019115608343996804210261289703797473041816201961306411676566961308653490357511485944776312256898743718791021774208058057313051385531644758246118115298762310094687160126481320421364120963679077983631828472858658741250376329467999756524001687734086319272268864809673016040500566037762582778222299118193997536051311601741206265888386558536595386375492512244034633424323233643395487176788604664909963583155784281882303315820232819692719811227115614396388557410966523499946767024632330223819617905458111112892161488098513780658168296884242320400249481566392303858297580832156161153406691891432404109432327797676421943029493507950204459875475444374202158101737384012649737878163332011163081780379117874998101857382815793851458510884624709948082241670855438688281029833457980590296031496158019602518481472596354152449398704962717615887615416064305919653650836701621070032167473540341126329694622416734289491419550377771718667780113842534945513623967533137188746651412949439655386682885731295491590717488998964254894117460247650345596613827051122130415169156892043969406645375695522252913583420349837695118852835358007522191269228278428401070237301057106299275189822972984439958629639523605943046901323565988731289327967672215058999020400282008541023571820967800822138401633042432591027276299073848807510228126991607058133518994249146789266905222319620917793301452227859375165180256462895053857977312652665764617291003180209425428974478090536963495711396880129973704840939709114826862610632800063652217661026794262358039458110336622799914939919217578981062096456818780242562145665737993440276290144188484874648364838750493191239113267478772005641084310459179451874883756326767195560311635903551350400119063342355178545855776958944884263721879251511377431172931495828092793197270720989706646650421227420777434328243368647526808862945652348033128222973907553804571320716969138120839797609613192740996995639466920574422195261664569360711129898155675125978892072598113766865142441595557648076583637004661854995180102645772241513592760832619619331180940040936674528711661862379946770030368497465347721601711841778662087367641591796763546561359724581951742475873200828672218456292314551291641693566636093638358243172397430264701974730358975290009688113183720968197235636964506161334614504479486280047771162940320432997028834923296442075328943224025227952970209713301133077149629840544046459260708783584379151646783581491325122125680393273711813637639686465025412024804641768150757004208700450191268774837559054721604804578577130628170572772465128023739039353129132519656160812488074879450770474721536052358295853134051533380470756789149858497572940398082841876156609961999147291459577937536801282259002632369276270975112837774930543585826981696558193727550100914900134193270979952277916356588557407987573877688895853120166555304418250119370928984823754736696507842854601501856051173719987477526007082040672120796315763644119858751179098611362304829458652984995054177422188377593941633590372103568651834386922577543232000768565582729557963393849318385986975207748096614283224587456150170648811804738714766194443427590936455453605570075730316134002089858325351690089216567138201569312546971925336031314643719164055658930983210546419162736687687832419626289034717293590086430299892903213465281626625841635278611068396902478715111838971136433799521857444432826903352721984585969881328640133184330138075029614156258099059888079102836433044542784048962998615676252411512630258342857878750467954243925839591882847479912392568551157661760104397360426089700295762088603779335146325211148056320358997248596104214370749421048573806599120721787145927866526562025519368537801369831996093290845257752882375175486814101856670753131514202727319794298321307450131005097419415742499036966028156121573286295776067559115336181647640729100924491161819152432355845432712349803089263509044392612137209967370133142174774860660551094379858443766042155140200291438966640156765679873647935342959590355784504408065798997745463584989276307902884347848076256431001663482876281072771961190660267849489295884812742489272957327732004548281684186602517714348164835766532097284049725839345535717029002866513745295513237074030589287674852191687292757452773098947812246244371005596175795653588554376425883119993331769357662917525952617285892420264479720327832308132395286904502499897357510769411598832214140625868808567203564964338676866751504236971715743184162126398285610750754726618034522999227507955537855337539114776902126043538958584354986105639587267993919833177066593428719663793687614628030234574468755647714355375926708800624245843747959601937880639461186278564256458531193352714664205251216017980702692889273519371058801557288901565364259723194752676176770026061378749892318229104509233627957150480823571891998274637319830194080583663778717962343307528528740624797822413246771918815599177194564946475057864306425283098500059429060255853229248515586159847510615419523549085018798727388201795694969673285246937547876556713564786787494372482165441406141112666919795844979300754148994336553134628975347115236606201788434155440084247622431069617338794806959504591275978530052652194810169114799662509453974738966215342955598106277488684977375133739138774672597091003131450895592028823612047249728637196020613095068495562420948584659290795503393132080897365034850657047762864706711320006594592182003206859091232661234539508176654248443971515100176747416556163954994482733014068394251425677250819944153771441859734716591465229767568765419911525654372121963551129283044217833052168711610111383302840107255554558907821256945584681038685084721239907414928131898781149617379274226137522221150774776732478859249823340502850949946242772576288361700007099838383160214823288621584889926099782180448350647839924047638191187766508820965399663482911544319122231956698204367012837181252793361221086659505920166219145261641261928689154874996049019643034152772910632902772231067628341613807431670186897757763357537595226041958192754495119230232640367018683176489315474101874178606138284931685906598184392443436017097424729567571713216273044996992591859393264019287921696400674255065250934007113713755273693566340167926174368759575212762938191773059742373512864974613578373892976582397694466252539180484959403935557367161313355992711381081125021195316906834422346184432957628933314485264805677974914686529280497989574408408451131607477119255079379797775286976805151335984037722046798349703570033489501809200427631988311563323755128042058692033600428415532066996925269496178364229423700010265402069024738269116869435383553839453242332476389176823566574853705624706037634800382588309124581640774847444183767119084526743430428719865146597773154748668247771755575958031982924462971234794827278956254426595828757574547738404375859170541136252095164285395973030946709111584956024465382175382012746639472464870201830718055652604612095957957416323176434677421723029839620043015329820807515617101606718299454320939465470845626540616738455252668237569988952667048915986479856797756815506524674874717693388881701615698192613973573764203455519705005240801308737359637912587825981990741012262160838745641835351580261092631841709858417925906423867376287638952022495220588194831369840360073816925355548533745834787515235074433779326818474664387887144799799406966407296063717665805907059626156082438600960930916961581786232949204291291708749722356636871196403548892260664983048370401474137127265581109989532621565896321516366969949501749464611455545621240411157447335680319166516514401045769077438989986852404157104171455344609561808163972307784262565379390020320701243593607839044629924272809349382868401482066668968679322692602974605937102368651091192174010388352145285524256458744631082630474973667313441811122954132133718651558472425112499398710390175262825193604669227042664212512267215221338864033206096952071899009881151044669681729329928924487199157975096058348177511925328519493453591526882647826530747537418339635377205379409594254859371015293478868613195436530077081168314882419268216826607126780567456905202675845009907652837328757663244805603377417119798696704462698454836956720034104284655197681639315264637045114549529728444699489182142767491881484846148911105801915256098532833849654913372143655161682830288906122628806129219319964739919889985235891626606763359729226455368043590001131664736075946213085390901683290178846179196551755886312790599583911384083114368813487842697338337657907782967847296830360949301710712690593521571759155174647718796806776332229154492548645203523139647857180619577881243456476459858214819808926627925599242223350311000687601385007842178858515730976440191153280449471688162588368804017976208655970790912467918530537050367495367357585485493019202122639224990264524392381268142470793279969935310703490733296550111276430025309777528723623820303728839046456483562135901197064358510336067495965858845968699391326648003013552659732812245374809739077858118666910487654813619339026452251359079710269120297163528805990706144942161157184143341219225652249064410544912977605210074264692761139164435325306525023384674646252642268385076783856045223021275329228783077435734599564075105286945421200462631369547046517279524235198531144348860228398348060440189092470805784064968350692397609129233877168246472120191748637458980508764324513288329256684292346532155610103831376878384522992746595260087187849933328387039673110789104544498708711879965219566560229697613235843232027929812442900931915374897652813854718806275425266363248869104690267208598266077228680735207156021340867067107325761477771334879930046425344445423083304454783617430719124436559103998853949050043517021150899757954912625179747890248375129982548349411377513802241136429695596238895453525411009840727966882992595133000537797229880546344686715218966313860365069879814382242202153108489410646922156949124637517489266435044775116798018743050825661363830365528775272641515915442393770242554050201507954794278517409584733310291327175537158725302710402606956007023368989951461486556546323462783478627864237463084000412242708854979476354355819698371255843309399739480320037155987474678023518496062382507360201724880824205007252520368847794526667969031396544098289791683988931043934462977284244125470883880940977751650094111309784859000618545576021529506337151222435728408074930771816743062175003349860008566251833555185906554572342769334136940869491286799835426299126301151122383668475970600849369386214717408757202151317923403298214190847545518160853598182628364468831396098594133370451837358242467578349762835666103879601611445251455601583975156672174238629219974465501823370813041295113284277845357464424451252237133415480501836134923864606910362060337337676192493554300328745870588011893336732700829821301309241714466614778552012891877751263017645181214574575840501063552674680990204532576605763580498345083370016812728935367216521964164904936532572120282068494165423060136346516819304048156205108606639047336764171474045783156751595365092186399833275897839402855278868266949991263141975150567007579113299943560049486982794562885841450732096070788175481602145595054373895431724336869631496062217873636614402231811617986907264620644024527443308317787692234221376318707225363486028233500540671362147296262022948643027646955732903788812645161926948974335269388298703676840396296462787617154710770224597323882169740201359955814076910044279589255410715581091086793504562028719893644712786881148859808789784929520461871934878906767473665180096111365075150896253483115476815557910119210457976182996362970949628732386566503378317805362717878042549118179090323140962046052910324929970168300550861294165933755105131482449552777913577038303313094643263761290534241378187224500009659071959061753990800012518186718968696137764403661272446440970912760267897697486900166728934610517408591930898999590363422673465952400881527786503912438794699398657763691264537550922793213924521070975943581170396234021678921478837979341364891757324416467818652878341556300765167546007691772550360035663463511199471544836574416515869763346120451291762885184122124240764800308415461228681815232229247473142140597849766105919347045706596241698836827743882893054751760815984742976670727581614123785486433966072148429724450388489897269791548459021812364841499128740466351356379680556725634444700800911135656196063377323333179445741703235976504290930277042688199365415118796337900560009830424490665873326238217108419674519173478572133785858732404819770017373805865948235301052333763738994005677275986258492677507436584196727659475599270067517281109105572757509121480494339407229130536911782814916006737022352171155957034178454244410566731711618527039453573218279095256584651602460447541060803320959371798793162660411459054196061125668703042549719542164535715398165492823408469170842012664634566229217517233496275554338579839589649502785421175081953935563659743137567917217310560102706499400958240146559675251294725427572715492585033774886084608502366377334642661087514834318303221543207234480121913890753330890796448272685278520865084055581430443363500441962306754384262521816624971959553987715705580428438358559382931181067698601160070559066948920269350435823452777878173690311917434153646634985884410013745283780220696439490980762067460188837368871691940187104668119108483984404933372049742335006329823970363516940695249970002217465374640123796804902020175229479693696930186012273807525533590628549751895345224745151220045624671045212067056411032335691544078238000277257615062110292415779918408810267781114382404666107491296856548710868886137173488780422013979845005018222074811758477586667856769533380236943655490762906532770893390599165345371910246759269416335969666321314642900745445018467141735566171147181009544871214282350176073148297513877330421187358489469508815837523230588408166699639641123068418432419190025430832300701380101511222094313063923695600708792157378563823998081310176077102208914458010822831412831148793907024308220448111761179758553911669100843041886109983487357132087999819839637071779786920861822813516472977903101300958478817616101689040463904637970702957263291531092284030265712528736867185959752336278260428533015436955567515940950804864186701425264256991226140596943433752353743445759156301801094305081160542778129970888079142078865523792493538831218043060133133867608875189074320386922069030961980916483170311957396020037991577810049140539763954198681073411534573027518044716714018426039872545923694140079817088112265724790128069908001102438456272694264386513918780991313709480257504154932605561459050406302502160588054090543425191377643032570163583698630352713054766306847520766901568615045483675104165757007550649382821768560686386651374822398219544710280586415039845447442057468370106721420511538112613606399563990777588919723229599600823808981546462048598769403278916199700953043180863069171501143215461135302772759550215280901549456498416471411448868413949866875865228101877670673108978439843312121535476466645467513754537416608632903988695928681130893472229478402805665684779636813889407818115398463267543648928378318284695482218236596091609950768066739685105640371109142175682513650532352706063928462623255357075027563758478893709775641646737897126550511913096711411948515280365713456878983969983253072488905304275934272791977418521135890984967280187984574886114731901027019271881886949638470212295771025665899284135025941265408887412581975781296368150770728709323342547780606630541206726792262757145664341323289104339399768595678714963080270378976168810981076702466256290019447191195456967126154357457092471195147294772313762646559406915120375575871116756987898004552015489698633596166879845361240852195038169805732138896636744003535426160631208614108444993960584066881991310165178112240516242472810308521327040222447621548570760913425069771668093502985584942402693685148112548638618514278150773579800683469182727696093911576726751063279674868073936521080270099392577162798795904964371887560614081196642182873871733673304459238328551826967041890707132538313931824469740420459055476518373697843690793924882633940347667823430170716340007113443250221980109471768411704586225865311135273915582045285585071018939660230885725221882609402545798514333233413256118897892978918139492636928406692417643677956603737089338114678661022179591839158456034795958434376544242052899081418187581304921406199539972878497285092127554065894281224636924371867131014796537842169223289948657469991075188551612249790955107195352631367227468298245147079176926966199729918879643743197923374086536221670924000068989716044138581120561803430278922527106167426820006184133163204821891828834583147520737277263953928531723504213275139698120943229517450305747861141863751645100676567674217913677339239773902847696230351421010721707660650121656565273201717838479007527046989782536197534819745761245821448029050348894965937498010285628755174403665289025899555305796383913102451954593471581691712959478126569639476729675171000079927505160258448528877305068784303110553485860297161762471625227954953425341373313275524648989538589491401411703148459624282251563153553868400643002224980735187055465799419202708772476007304563501730973405791501393594935607393109138831332665861737872762295743655110728854301117117922648533380650125192825532415057838433791767100666108519609872600045671866231226142853108318613730447955178396384338912288339779071967741443824334258068715748203152245984450996329820669986719828016398625590353550596128422647323921749493700862320948558321011973181622589051844212557299185442924631735592266535872686916748819130583598600770086702893820229135482807395813376901654228279158922289793549369103265697537329259406539950254028973905224940525434987133259733630761094018722620073566579266530196018291278623481817368070432732003290785169742091085525100120239360103912203386834954357640381870642781708774922489772604090310180732699480055387598892315245654838226545750174601776541303470384082617013314141929478293058444820897913975928521494045282191018682551086865840153232729348808463197668686233200675206220473077234832769409563828980670654953397349394347832463798512671042274038788511809476452859982156431893918819140211519259729010857884071570848288933442543688814675399632796271368720231655216291236985755417532740325902958025683259779643202413581353459458824112465977011238142482310548093796839164148506484849225793092347371948603736250302823125765428215100372422275204135534290608152382157427041536030612480906216626328431864570809073892427601391230737077014629681977981639331251661288618681467460603069786673224293789562470210140975718447756173152578590868159477045317855365757985580757699147066812759649105489500259306032095311861149064953610487001405501475761513709890573403271477232285526892379638479975230524445214795231540539308214606964888491270744819956950072052378660438226582856886066333375641538952886298734756761260829914021528567574964797522449369524570429109694672017610416972165037401133938173604844000133464937992170004674324660913192975146010789008764360293248399210403165227225979187954790663881007536338064695752286150102209548028094691161126073203260806688836493682164342200308533886878575816672931017298598829917853373070793874141200889443410237466543925941408501908702678425802736086816041349365905567061556515930288811749987181606576171919043195075302730412381109077692173102524056328089910408313362963803354585483407260700101010367773200449488086558364852104008921945398380535891565601904362458360372371844372650866647286498745507861518517458621990150661229761752551697421081016282774323675487901200181361720919743934485318291122853300929104748001577977878034707894160075435517890620109040715984558785600036906402361935005180832539517536952344503127251432958306299289875707868080407491059489658693935107617908833020963118956596258562576736200641465361686970128009195434725105496304037921696333389416055485441346141540229930568050958248923033292370505884097608201257125994016399264160408318747841288904218329633286649951903623199839719309586373126649598298112251941636114387870584689999222166846857784182694836632850815870767526486319108570433339808670281734163683464248174967595942339621413552878923890725299661422247476478378189312938090856291342376436371686014150987713603327628363014932605537360057381355258632933022160807461229925848441202291376694356991036754201031627999879071494834915490188751027571270328902487674153837196187542028511241860556872984925009042987367139027590736593086027159967073235190671292367921030900955054246358775892555157527995748943119855977816528894420432838528918171020441944446534234708402031409368854857891318345737566239886360965021573295887702593616004713917597014423936646738670840325169073242455111711004402671095005186460830680678675105052524233576190504247335704802051665085846737517958793086071834996421201343261080920815415707486318409155493771671794336588938240979560943730267726471633880232623242932195478129306604303542004672141646293088162062356323670984267435930025008610633551765077184124582828570449045217393993646291461409265034697226243907679807807950731266789788933400554107706200271319713372183540463064475644992151021807292211472509846981900837583457925263204420451014104803069142804712399244015011040693663180957254766612017200496189828866800068167076702903006067493928761146168274794631747912637719352271357927236545726687966550667037691212970229207097185445480312920439102341185351821570896273223882009960589703344943051767232489991119100774132960612470919249392550119230777085895306691752819100990980230974215852487449646443971558454243633803858503876862272621491622865379514400549412745561186284439928022198738252849056362460373792939316896125997533089109305912416053117521085931054580406659563124617100375932851487158684891234674458070978044676963760614778049841288642219532011112610559232721428061934341665436931420760242319830285644288518751808992422156523449956080965004645946340840666031667969123401236654578457377141876439871218975765601447565504901650586303976494519874395283851516483257347405526782457107837418610770620866358351503811335457655240325052982112794132231970141767980293517317112560736128725398197450361314783725592449615801111190738259311364517454996399399627878635962138890749761265068373152023020378601850628273450184634939419883752276172719582981056986884170681110170685439498250757140660151886741865928374876327108330757979892539956195556388256988952368844811170135926578712203285944779793209582399194263186647876269725665065973261526211084866784563686479007634501885288154915253674900343712514397309295538241293836287084958002930458005595922980108699914052394754540539353593531909021898476568081916960235381203031665284529199786473616955727664786575833340057649986393212765466609732742416020588868835177617886049857412410970361543394782116086088466971208348242515246710784966202471424368628501957609171665607663478591921706385568909870000430863049790107806079688968716423248885812245712976539488550981961667881037942839801365107732099846305131738660825108539373937294946388466795568875113483082621462016634539580204585605097955973659076407013420585359790748151896051181783238851822095912910659780861716126742166380479885808368620350224524501687477103521655901551976614618436403341587486805831302161628370063343156194462214619793968850718316253596103547724849538986488588378479115080619804051801428021110643217862789432595812236637644661790574190024866893005961883619783883481872372640967818611176269372427064719572869034242253735251937292001860379653876627102190130257865245150801005162615602514221181937970049703849372536106413883729670337565221751386750800853145476123655573249882905897292959597323504514963379444855559928404117519908951195871702522854176258871915999780157615605033160832084731740543248847907085046206957736879051610006995021616603861535076579092150577245576417038092040968335066459395054929371952109241662041934084721061626874339614439273113981744169117210499480665418122363493131682452912841726317565570280113742567605520700449246739841649677162831570975245626634416670717267427190510794117866777333019433146080000686449042362273369408601910275567219418543257383119489196530314305069409017312004786655690314082785709509784863842987272628839602765016972419986180576470940599267295660736285149782572877868654281783654310035427759430845100840622440623727325627931792109775011316147343080765772999400766378135675001131500496156176368047302725453541216758356412006460851662167703681434015200022798212229789979599834338040166170802001268778888937555441350605199641014180013563969237697204104996019381048445203377787776854595061221961641493196736186515380309431020886880376963181533286132833987097789401063075665752405414279121776975354667880231660547880370258164959719040487504084170901993646953672028763373649474021369557734529449454809729857703203315845982111748873237935492466821162580578736217313428506196273300896993741351350966579199680170816910585560942554118070818600304817748475386088181094267440083104030438960705772654224906290358524970463987377600982777504074330682928455955373642125743841204376783779597663492060368137640804932732158897502745624874740061597111515221160946178119242976599072117474253135719169874179248552227407213027864451982976736687865605998215768437995729483652314239012403834388750465126248229691030641466767224035796322817856342084800954451433285835801890120574385409647968055769751474781378173836631828826205428690694439713052603843673366881367394941746210526844062414340096705786005635505430033618133947660785171067627900561816895374437491393647330190176663484993886557823992433633704311787252606241485402074614148016751261294304361455946245577773478267743355021172032719954584468763944947003760462726094048022113354296286841781086747673203460996778007649757358904217838924229551707961740214444820633560621183627706606158234433750726678611950710820424369751678165211343828292055278814973373217699456154567620154041293650364929030341249548990565941095176781660297853259084356607159148605473794156973642387995044851681591616402620179260805356651262732116777452286269480315711405821217270010641571079942631443740061246530940661353237961074224813788923759268281287878432523783741798909619541909144162228290335491060465407066569181992375592455564683491490073507191657352974653854628552877326956732405037373008135825044073152361421156399235210779960987756292994682422192665000562358340533266783518234043315351243808485037486629459322170743130183285023710661872765400671827348812850788753130434040610090867293864275247385219697332024988900794927353971129832904996169840401433658917914636681782856368948139757895598452515729367205269273887480053375352808740162593826879340662714636723325173595590554444102608367448549617046357812017554859178725983846333329582760669956377790798528537155615650023759159918134886139883436341003676265333462776380833669905008487832413284420653765558032001000306814662234407659151964893442874464919183832937357101445108646218040638136486728365345082113268253226864095720442820465452418985380335168987187091913163124560154957683944456503100689161138163056928886821514004532786942963597270256811821825247644824843394993303585699607005987337484939342707144277004557899079751032442067192722974137086697427447659001580931876408443174128089655068563409506867067226955724185066329229750071543389332569486845908105592734117035511972885229112176123814384068597524480045774499468329849071952988314656201730796556411665024842593075907878140968651857248673203316659193872107746550085562444333079940483545371531195408581873044010371802324044610100206524024462857125749485748133784233324546502774462051842775737497560174880580267091128727138418327720651208831377649852568114028830262682825733552367309721202860940201379963769470128090347024805517692773116405623108061597753455912622861455732941636623519811659882934890760238927788909730034777974112804155894773604061025740284564055314034802681110333374812415877559209014492851484306377446815087938627001822721544005396485308671774863829612222588405454119764553966227539003130630111595952332419799602312524106212205163400433433495378840293700375749893576712188878961444459757655048332978960951621288277748484058665087764373084869369026630242207627891494480509452661742161384425307833212682437689335916340991049165301318630444966795893311515331831158956852426669670509404443985609005365513581733845830130956935971962277082462771449126735670224781053394895788136417058579592666167124326425968082684231872942924455503120364114702377136604795381404078316332474502537596812508332470331293780844075116788483709030661785976338779805816433020580745433077232130709952167263557620328819041208348622516024078101341678906850710240971772887234501588577758798129739779335571715626876567813308926464417300043766730770843848978785909222493459710368056646636185287773176067113168334190475799735835855552712602559749610839572268050249602926641064575102209476168029653377279670148671630071473507964944705433380531882471975163331123868411742377452757427265618867318299884844400197413094713480725477791977601630304162352704679401902496046229576819688942516087541257620879548899943122424963815222303360011950326391329901359445317530708666163612609745771993067952088589688380765521985252476353266798115546877622584530395702058847590492994514978782401603999563067311881846489671840016462024120602485413561562599197031716941349539342631376582137085134353267553508238131459469458669636043643050001527417911836317893545466734486212005091542148659419452964173356939178342905816492505816500684958405450076799203628967554891430249762353033046547353237822817125248261057005536064622128120796023043034292424299465779811218058796452673280489704457009145022434528975959634338786398886947093884600230634359268646892750896646782163471591473600408377725716214567054920200290047026980984452939109787146329569551300770259994377675689976523896005125324733799560597085978915233604788648791577915738711167714162590209201433525173501258412805067377182610255569408269327147238204333106372586313809653679450017145454082362141477191034941878394138273997192625051217242816443245881108916827404531536002478558340727845147833992049753477060867374874723309277948428435033397962322887484497365212479778351676446091334997195819497079787177671871534271323460901897436721432087043267233474635276255504134924788450349263662940213957405020105782886922162066502792041874906118505360308543693362675405106748454495470763769748856529827980585971410790278941313572676611984800560951540010605237357401075134235786137560509574525219003751733443363015160723183390449264807755614094076869099771670566876230033980963260079993511155567161443661182249808351128761882680531762771932335459487771299004160859206026078277599348939881867854664798387480168996973613714352934253652877694495537819023040012188093751139292028416685752909585996495522878029995163070483292158568685737083957863725778549563392655171284124204009913591000991102480714722092261013142757023493911916577272023017359608106353031903619816126995828534475436575545620952627566409960733159563911451407264392591206025715329490389686300302275143842693533098075259348367343064590859549739266506814879470529586266229886971675704709191773595891549459386958952259349854400012633610690534819670328079054138482387048741453865181843612748584616221179214156234594013988035475069781532776350301335997640715150064027477220576309485503543605189072397119937831065994927748279831567287749559933350058749311922295132700698610785015374906386832893610833671332692710406740159664608887479412766838598198974787538357565427696766683049598205448623635679395930136608142749969037390248015153362111789296548649842609195957197010158908661132465096689390356091490606987172865467567647149502649075109774054424426647186542975128259046807309329696841847671396681327435368308578112068444467000499846218394053145639344983294059465646069991020879167301454410076685608493723255399694325829626691197707853144883631780348953082720624474906945442822891453913453803121479275972444588207736045291735390640274887755986227552451730455790797578585369466991673515651453852255211065217946950782976918638490992808532810731268168904561295243936872607991624465828691290125248051072671177772042439316287981313140349802471778197471321697003329418720385250954186859717649652689758752443819960174513912333124261267158540651776608523509167048926439563953362721545341600943085436352316496255276898288134673958170892767801370737642892940220032937886654583030945623896410100822070248178758676657647981075950657329732547932039207695271560191575376259673488477179135785361515819215237743224758557675712811053242779201983998221072201445963221813041165793018785454101108618619044033901562842091297594971338203729467106015998615428590346703432658042777331472834914966527548246984516828154003870026933207798427201825917521525372088362129360536503533404663812882698150974542446843551793542589881232313232408256902117315019903702290072694995158377789683230963750796211393011344224947274026420109601442104590813928097283402093743439822804871800027134463719463606408905353837376275226191872384899578389418063878218929826440396002398672681889080143544114958443540397248684189810802484281381056977490787000065948776041094614645910454692959917818009594871060875691376700472254237107321852727865056949239189271693644822565267202490697954915690577899210532435690072639070569299656426207759760318577888113357975226183805307076588244787446923575163706648084523673545159589084519697718207827284636757817818147120738820632664463930911609597444332647482301092983146146715692073424045205001394347382737044560492036624988775626373493610181524247309990971863808052912544696796445938625583065131496041215924146027978692579137213224051992267425314908162090947123873246790862941004956472191192211951291055091921134538653501262389102367487421691631594247274967699195757987327070320481835269484921225325488338219991349179786009684784602388928040876314850125545826082195592677611512621474899978798768144772566285631081165884021301621891630591458878112445588947958578195215278039236910308021740089819350754660908464592601936822198747052108791932313985398870116371704503118616115986907147225224505639052668590250348310481908077950134792080273741815596953742761302520756938758923867912872383381943442328971531716319602679642725048211227172418454484875907917715755338590034004785461579533754137342493059560963599094502535313590213885957525651859813910001159835711261133437262191927572884737419984707506135148456980625046340948260384894477877239477352236079332898253184154538401653262908524116651763932860146213585842076840094330323733501598205328673067197812174317631899217509640918308930054616212551868453742322117629772937962998567104262372532859819014729566004814517403904292863916984830121134395599960826382644235148963615584165594692629713294546588902669346705844109223504221294085836506403043967197926636507926728872706547612941404663281776822752347426349486179025933772214650360094783408547776127278644597229979027024942190643892254281372235214553608187215995288936296871255105553819503666048405210809094245008962803134019730406214304678798395549344466804895354804632349803932760575321770470174948033997620377983132371906950606748259134524670154928888430354434915636001685713990970029481022553799013353344778846492816374266979443969567666464402617540478220967308246382327274273290476550310388075759541151296223167282630973857243665628457519656012426192474469705950488063535614896833095604893023940915903512806986198532539725920327729309510339637021911541331611337293080343552005103002934667287978583806374993645118670679364764128787541549624982554322743835003827287585240985908188638583843685444943826211581985455939401465269602058211032834536837514211919465716626494476375068179938726007547384211284854827454684800469700649500626682132298365111130783290426793611679917694585261271978349405088449388081937048769598505931839986078337599066573794119037621477475730279584986532841859323027092105696992245941324656088972106971385848631845448742092641084355248678516393418835153963229699878480007380560215485200802766792156538568204800797432733756819092759410629333643972853949470774994638784571915148620508561580331690854782724610542848059212914859114848049740503570150058892302932054337741063967795426069379909953527920357613113834112143865316511563110600610595395948719316770816011530379843136852376041385298777643692765731224805734682449086749735264788178781770708951942828548304134226971583842589610594844494582989110828477298363068188013573809962350401115438797946595129777069753917296091996788595798569596337618854448358070269395432083171629377737461466463581359913675261492836546796033154990046880215803392233452212868488174482517550275074647437827302941799055452575420590808309104648951497455436668199186041073255236308105325380605511942999515537417828155008720577121767545067998564196064928371747861696711780320100967187909182957644305354556269334755213136185813287740811898645415857489079525932090920573982745857270807020105603940022136056790045750333292798425721445034626128893343755619954663240307839432075137725013718015272427637747787319868136679173130454844270409241615349552306790759796164967265010107918181311835105288612353220832788303316402217431425423265383828125462311729906895437873134905076146209036359126023430503041265090551228654589877886484936530918344604372762023107088527223882557619403772371437845754008982046182253754310934985764388581752689062245569413017889601244753583262787586531340233255677668890488887784329793996332937674435531614008994027983229259230406288646344383313301441460513037566162930073959005046374153112471790739040964571477553260304850910111405416699586360854615494346767853913285067902763983698348220255142032575201279788880551473741035962522249311854421730281171578004430444359360288546021227088563556621865033007630112712747034916508745901090842752668489226799253646989873348688648243336309247766446422725207246816787173512864675928022237539752194996431518022762236300621125651923229864374244665112632403114470129605749688412756107491883088844968757673277557973719375639690629629262859005433215147815968862837953517538525097072249481435932815694383138053383474214610847140141045068774543354440737105629934910401073928864642727360973686351383722422039158074149523344668667255421130208809255644304756256299124551316186853681870654077037461211182530273718838145945476463640658438876979538864485232540194118063508296586806172892566184238952175832574113342390192306661539025023548319434185462221684522037467298398041331817145642920075301475292007194509023338392608888570483525034122516461090699104771401866098955436737920171696385002787073538702769962570943388290068397267663099006404386910030221229547985017991438651148874468986966190900580746462034268175487742593696341371206428409426532976403330210977685177572159654192033973988009989418818185815503343260955501715090930081501454003274373160203669288880714990946771846194218903324786118735223845184321189346971778676942514611081786519262326811279998915087529869825696540358595617866866981866266581272742279831780004763182206596172941868306251914058092562832770020827534126379795256194275349334475094218502991604003916473848358315467256781706803009009328919899187286571227797326406716234041538650185228446582177035571575655076307403192973777681694063313225988342192169755723654667358347371405079174844042643146552392018956572051475493359514175499441610953374242461171695355060589834983564256967206591145870851436094944557793530250743685013643200141871733817304051859114220012522890251241868626833922439262004364258270836049307804426765476187353858348028911604978662711026085114478098741574547938532757494081754246802450756437202729805454578928205704349406804305642715752300035124351796455938157800527639912183195903835832714270199510216627419097285813873621441160615272055686547231156788007012037114539465494558702123207814649528634757544120614546283595219125401380112357807091029857846370457520913421149420150992723217570213742709671480276382848266046680181384116950790081857032463248825936706360281265064456814156193175806983556687810836206115753391816048084907698658489899764640057712430170759236708732305967307878876792046835651070102927947486587290655178883222373859422256904910209247506059834129432844014389366705941948053194176979869538564117049438620576748931000317617906879798146198332394613838262050444568412816168581864780359062072019755176408143296797264354320036219551363344303043926499747534764784904034767367738169020471526112469441065307846850668756670250627629652331762499161018247944528008023189135848767984799466761644056118864881270795351285054568629750404824562802322399641766986554615695092935945483402459310084425024967120382830627176143616361049568848098277271557096060373097541817481371782627951923882531089337995923022006005095099893595417536193581082344633365569516566394532269055658899875332716167928353785297647303405046813211952808430378472460627923607032647600309683969509115237484548150842375992255537914917226734635350679112944275796309289045967205617301397891157488688584178029825231668144683906162766534398798095650932993430881837301945905004266491362256864524902649656245752039337725584180100556629591873994300091954645915431682354448018017864643124461735614367814306812037958980538884928026729572210733902722188025711586554145987892137766149847686686302075709777126223754161821927886257038544583206334529910820689629850153923213675692618827393549851237035091746164343350797758633217461598478791067286147592525463540652995005456087595861598289069330279344249985805423408016016222999833374604357974506322270639328670437525362447721392803031250348861005502995692102900293667934074577689904343564607702713816866404487700466672138988094706862170950452644143166810618327493950323037488045817016517017007823528420302631208516120234050054924869717537550838694580128573498524878548390517203307147476056369889642682010086518121635328240259206614215375738696253162571565500095656335760204472013258705263838752730887870191715925518763343165841430081792573557832224202414496722659485002155412380499582375000420533381380096767118152062752197824989832599171519811764145396729505029004605653960354908429601015622655446470535212637753711429619636521423128514569781912698533626022728786313733565295959718765863125675813372988431945821430462482804580665535696297247401109258021302874744623122073820344468421046573661629843870434011303843865417946114963018018559530623755696932677812590089327114277121628453866967662393836156480780691358610655559241610071567367164163595009062944261182390621319375355501143596675547476426132852873542913438241328186651310544960743252846263526683304004492199434201968489641369980985041087345557993556264171170509876699926661799362963063540458848020253600739691834129427696076120787312743976481876755884310194964253623278681262317047593804760965536345893359366869134434200017527447384013539090171778627976891492309087497987696577183566230169266464179172020719700643242037744555812124462491631139858036218504708590748862146125786099422012429328383851463478955538693330395742582828625661764796883620033860495268747617024603446729631828816398673300960730243970137568265604320839355842840255499132273504408239526996957626690764272351610121594098840520481855862450298159765882147036371738358542553836449360505025872810857481148186748436873988476228336653518427561869022986225245004759209876351860553025420703844059236222810979822948038123264112577699313067691912060264754427543726991216975056731107397794407329873497676730976033743655584238049770018958094432399748047133762640806568697807733044282175810069341567048201741237629834327049787547792971437556269586678782977079333378816000198605341617935348891818583934686123664410166695556790058668149996723178347808555170430492778743211003745391491310070231068386029574852331527824873219304592830241072404499950068698321842642027965267309188866791301012867707137898824887601161374402573473576425950072812789241030684561978985383404151778694579298819841691265412135975033066276619040295223068443912129587676557333142916117685960481637733284936115002472307853830382675417838728806281893834714757460384499235649901570667297457594868273221412973171623265170017119543536572052442913716919853586601336939117336081044860552306680287902041526642414313078419383036146344500137056981089436234415550705021525731428037488400130674369943022391324992373079047178751162724801398626109861320315398043049161308056119478402986269178625415251097395618985198211102198236134827024258501025478994207187115393064026039066310973308764368445644012327145419281219060602383816317545362839172763752552261357008012742607931039003969634566297877871349420387162762503366955354430892919525860902016676065397396545782271933160117217822048419452698838153858872227002715146041388014847889980447568565004533963163428980345028194398702306897183455521252181567636785273011238301331520715614951658376961697438625948169839797503267321869475689677651567937848447539238665026188159892961980140290678725785998940022681486200921434802313546374523872275784806100192775959026864161875403530635381960427830618641112627001066063031669267096892339178500052514382062063831943031124175040769081751903767875115562612437495338282403264740612107755813528816197808352859138642532345569527319928779684771382053730962333446707108739949797349675166243978518448331133213342616189355738012053351693786605354728959068841197943755905026537394793587705126849804653033942937781045934560072129590409883712872864048759788699553988144178734298038090143224654178320047061607356198217894153935425162815692354076525811970700845643703657261100830162233479979335139995376721563649279419554302666922931752211849655019601060400985567200014862120319636904087464147151969862141638209930846262041583196389163158421349874248984750272280724230399636326971072978517283720179030241940003660323061998382565068324384795263644210452944011650123109791107145679774438415339667980276937270062409811803141696141166764813742657481748857857822082311579281289005477466641719913761672981038108145505236967276734480755103922189072247414017893872779592593783732199093571144938025920669159626383730376459177343922929057027160257813491738683804032287157192478372536435600197114594042742511203833104602653622757892744118944735535679283791644514630486180247892130291829619402285505295926566556187065951919251307285736686386858123672835813057879348594596047398748317429400491667940448494919228978297997036001779351472188846885094505604354335879562816432217825538499471477460804981457015691818721667354150580434607153914986102635622746832635587284480508188451083579022779019434516188918445205528608993920466744518974410173211198507228507355295689165709326124547190668191833200195717620554913163484445920705536906513743136368168629945412736153430170298878469828288692539489086715760006228095052965775146045698541304997725733249498238038575052508819645303061022427531221654641324290532226378926586112919906728768696058215023556770519878903984670407871589981092344076697160176257674436868683324600544220349725009746633590030194041349214806219349639664913938284577672090437432578525854720667350783796574832574426712041442217522333325144054988015755411237694745717609741738433435027108415611491030681352097693643763967373153289206625207699753589946657443931054038968750311883551660825429223729710631111797185900028323489930531104934565879704491454321873539603874051934922618076458139787747432676595721619116383089181244506928250492201940791763472237579352543337437244703685598447947097293266062568565047865274783076931585598736934037744477353203388436179613960591009544113333336401629193197428580381171803256793280872794655464762828214126461937497046818440434905206153227194458837771549226271446580092174315158119464057423328225507752637133956154197017718099346921835871389698953541661630370869975146828549459281111425086333722280227913501825236899978908874285656482829499059669154164564480890839669981588926915205999014784914558065741304968692121199091532803300142598719727489861873152196933313059960347339880784995108812365096842311443254069235570216792345882016790982140220419371220682561831356157932884193863115688667000857391915706655148488087212328714395900707105262806297065257005759939662692487125445104507600333613322799412551172010283906942502411897731966278108173704342371314602987084292501445569402661093698252571324287088277515304584307378893363025147114340067605678615684480649658790380503516822831182942405532177409460563063733650092971076963244692599940329609021850451146862628212118468554838581027939833410921124131700985959092678113211440666899862321078365967508340502927589308550444870767716560625902505947550014984172495053531370371036223826080709459660201565985267929724550152511387230358468867796041928756435175062915511076217874306951652134015066068947762328548655371432342531992553485687310786570241205909787621186997373028464951533963541428101674106819104414327183378057445603041314399421913111488765105083225143861948149887250882303794981264450624647798105528559399764643371942703593675601463003161164730318105948656608788917577148131669382678438645892935475617710776650377043229589128798801436795578519693529692191993050656896606725920533626109552193478162993170895869530940138466343128729690185122374479406464095878305983528898034172492342811678616405266868431638977296982609503653845576735238115282470344541794601350544757663632645379761620709433246218005341270527290301304459994893182779218824841750192038801435545470605994381695125827899477747981348289655950396274894499520577057957300343538773591453395590143707281407032951411758632834006355005789245469574420375294022942111263672404578682313234457485473273542316287774847103960840782388179635783737118553698351732844016052314695218485109158302474836020480965829964449603344948074952905891465255556592557636887707624728303983366503162022711589345420934760576210093340360353087764033693712637773792968854082484368943535587650669793146196496305526939287021840194895747116995817831475661478431081333184514773883544843417354866635680754243116465274138786911931240322837577093515500316488644731840821222757783037363655734317301241901847116000038298545817107736556998052839415058133872866998370080696732059692207641549614820306648186324879037234942337120879041998814328424055484742594168539453076907741013726731722297342551308333307450134018804845004340059140645509133397852172811105934357187362638272377925878810984167324396436868903479363175998230698345720015545423883442884962067575679165081162993412340336513900914993660731621834768586440527286836370529552660141544784025439330378916579458730998993750175890183987771586576082896888982718668154896659346389379208670877226193217770174021593728657124887262793265863323919457402555864387278097058562225841305946482882341113546332424461483240309826680838129925054037392386377226630493284946368637917188236796966695662324447385044042928263882588157936647369459961617363017367218969471381607347244110442562151516808389920761088050826877599237622414049270658329619360194923245553619078980580522699786232132506201765996933842686018844354878469978359289040699064220505651665424695736177758953237717683341494483113833802497032498779571628164961689272978367526526431065657232274555349696222535733723786672931194228464111619083302166493569689944038958125538363741103128058386189118928530553454046018578166386133043050050562842877266983469768078577742185140289369214924943941974452118294920683031561345937915650187185566305613705051089393512795519948405461074417435000663386223066303476421072214789172202516062244828192547589088369913907857788814821210898281684851134370667129126278022617913762123336373268319314227890268688746049017271207514344064769960111333258322096702845017740915064466117802031220794629054039019507577298768515311147780218263415194537248394307436006459850323095741116316898791924948058488684439465001693357713542054922624627221817898522321535974955267881206396298113625966704079086521731624263085642553934790574865820226895739222291760620575256007990184160040537269979580468647513774628546160256542892059020658944241454990503111990530951240202187244184392431224619070205381810959802831100193098779820635009600692089817143420772071010228597556495032025275752809031566278360266884714303513730391535379828073610033923602329250886276115645763326145645711332465577556652389614627107345957701817732251896386629722440136365407192624961472532302605019030790111392046417963921821099391583063678655248760640594209453375403480782731871622202350698200885924749972213934651019926585141629536835589733101460356812704483941505627893261447768893660436469780833929050170456786841619701647619818606149065136973194145282106198576541561289906259670476913188669443270563267568379319678141006421974938539952165223516875583396933167819166669864541778924810591402537785927451298368137480599482222345096696744631276751706115316789186511283109007938259138484347787860917219025582320852688402947056010881989945022009169495395197214046626704726822778090492392252081094777998233261088952325194632753697072298170922341735252207582742277217040776742406200757613237757959529498196468180524034049608077930554886036006197196114900998249722136253391656914328889814115956324513533932235536179017840186589816230704856102998433407036235401992990474506953143917648853410407646003976236386130561383931497724543660154911007764650329332099390403702194847878148718961024480269465662915018756672903634865482488324226730860445079924281559598621587748227068786458881110852088518560780924849124449793308639140688748444438333612986589028240444070274676475938277946133728958364983579364677756607353304159292407047652269431038231388777249420499544162163661425474380189172341350337748095804957393400130661170446508673252727712091416212188944473670558327035235379447829514687635510014374463479422882689943679295321112819517259421843118533593837931064274231702757628799437710455969877732712630559051686242281498558541669466549973281459087261300083568146193989328388050347247203769019952140338786039402726891302496303368719476596059918319003880879534149694847617306204397333162618550784657883858969073698417112031358452688673267854492475478991646137662594186838527422164299128229146542980190662856278694058209241798139993684319034935280973413647528190398786331544238696049177333730838554269800676009063326327366210966656150065358401060541122710118208230183914050252798258363519621904328696948859196153985983857075524463937749891963297074966622220731878668339227982578443487670688494643053670868830683001995345378567189801468803336472391804084495455221684388141190991129925367337275667978230814798855280913770514591240272863652877147955763571725939241056090726756266034573265971420168856524894318843608734981334115183422610725870567201622520410694934181867523916735090508100337407412335168266773595770749976341922954734720541629342394578216850862241528923953536677124418838487899518618179766734785077908208257789227571870060336341356294815463073656818236254137693342245703166128022297946313487993236994899794113856076769662709853204584882783151066003048215780166597432369492587069293577114469742910225155504251928428633617854167797385743091675306141739027879744112798951045987401741559377306323481126596553327320314400424168547940202973386147187967701341626086336960908553791097066654174217907696326186896078837334376136645915254055579786859586512092536272689049691159228154078429190829356820182228936924340458261279246917497119588879437639917228975970401071242720626696605274637511795378770892224374330430265593151228784624083136802362845648457806884445814851248628059296027419094929463309781030620012735310451504847765800894568850027058914383325833520261627428458868056043890660811408835216086042134320884868741474711915696372497178418968471396798872051835871550615024856249391556998895722423136089669570191996344822475558262055617936184388345430076226985555746044070436146789460891531646419515726915259374430363811262928522617394266414331338411063580512528407456649578997513358909589028371167033607986285479002483028771432482041981247342822707124696331567322847770563490841285633525539428153152180554884057921765964962048001921169420611715079881577409863997624700316521391964612544380653298252066850759069953322801951541308046536383586535504794261844283449108879933467769679241588123910877554885102514717305532723899899142846917107766605961435370183976846209304313605601955617766472789600644473203602937509836212912880467955437321092035005502108412284307200413279836269913155935697521654610265354311169861650644408672557100041106355691837384182399794205596263726828011524967947007949470381053428048932234504342757645600603982106758414378717944556851836049876335380446157257696605045076831693152321720811561081654617399397183105110606919429371454216011111005586527796427613651891730364630120204842044822278029874185918156532155751249430232165271673760298028833023176735580062933509250389150321370130734674129730508651270263233402550477401503194495795993534356446028467479042495607855329774321925792604759769937239769481826761064660707170664849734474857727971765713897821795560901718753967595083226131790009885529588004447248831006351985349509142371788148775979152804168073054366262652375393387519888613971694811733441429470703325079745776870703351204997019794154467974586638874601414168049490166741982049183152006230444454737874780872233631361996083967478831101533056435597268451112890676894884471645356680277788144463862908138580309343390999468394844440005406412657818913001038471530418181881080638998849796737406427336139886213659526273969333876093785242518739906458596199376235051110956392375638367740890553311576239094489565882962452552585894015673366271111133521462975295725411179391355833966243440604974587464334883152345058519146962829408079451211106435035391441840521429905879245348093700173596552633397746407340174736197156144018536609230609277723028162685179634118428009545868780608308540927537313412712555954462225882801473155072145948599722069348421354474124198456173982187463822168556029900735229120822254959187606881181768255367661902834487124314770138478074426329390997703797505267596853257779861043149544129247018541953128552175187931255456628323032815248206834755477501666298265319378182111267181965420999625584200861869085296096813032345255772850965871807870303907153801520122832976635562388113684839108448441534828907808630619954056811829507891320622802174048752641216252851659752411076549083145925553420114263715748057189753157248832862976251678844022346346053638250857148347789317082735576125839623484568465897031779887650485118822818979826871214583783025166992587814972414728539306769149579689899170591326551505730578266473352272811843299188153875766503056620215643878601728995906465252554901702722062778237477056973863842911678660365424105792929369920859445870897467051693115394234566358404731997960675840870530154264135652117250267699347214416726447309489084775361788023562302995388529145032071132889472228772786835501555396205279657008188578799479294168245440311053097448226778344433698780733523613631983219542774609723501959339639253940548610689433718854672997617060310088839987363547684905011031989447277962710313994850897577830760171274535350671585783244119119636838820282971481828615246567015138227145219955434444024861578872057549758859243745897883830276253904924730945547900033922250096277748390252772050294668157888560658133567433514205943724039284960512278578605672061320155101272651291465488735932036706022348030915761240138218943667134566110647587830995862927250244272913098460936933439757972157423488019223596389599299628220226020272210993426132923414829266209848262224352823649833501798089486021520870079102897706005695853261577071801624249621482723618429946647050207673950347941390222936700954761820801204230923775439419446958606988754474619798151381420054981224299048907504368019630963353561251255804882008101154789774006972610574656262361437834183824072328070990760716110655755381501435795676502917014828792223251396251572730846620323948320526904539713034591417851139438027465500196045320004850249784730491199652731062575536014410172702820644665757126707796723175396362901938072614008224609904520569554581318104381461471971893390074047410286727246283692698034606357312069924035873239304909160524713842419814459302625128511616602212773350770440199473610337545595775542786012913033949232854944340673461276448137419672241912377613001936284770894111939288381791139444681873294151594149883301657220485369413971671288008366856132830032039504906050771420055400205542632638839592788386496650275975843699280746044655515120298365713280159963524806137555222411920464908338284609050630718159634073222129444492593746322729211705346114620653454153192999856415081931140232857861447556291955762603792768692103988420435547253182415726025588862254832678911501143451613135880565881346053634577449562327818568292962700652286292924601255177702526514321512708709615118420067761692717408729640978103761695829808902831771419216689108455442676307257957092111267599601395887184730103245541835965376240963617161547505120647088751292721433527205761268201172399424972257806769152056587469237939656873250016830839685230646467064027652824743046862653321440272603675061566852917004320689850207652364442280345364788302886165653524612707452844394559838204399415035680658966916259487816157890781615142107112883888921475259870231613581384567957707647830168765148934079415510752432108869272011535902728692423432621250816621408897035134507657022506636760148816818147883513366412884500892772684505110935580581161042621842946727701802902375676832734194109318625182247145785925875566719537584464037004013171653649991847074530747788248588925062327835314038754103300076841442864853077531651620626340131056203648889030244717630450921382336004248032880367467505124761344503531342058471648181290179298327137599185952981674979336632228174275160790439290416410440630071698228818763295518027863149580808016909925755280640945542341946289210873029514351915046933772760438595219536805976575097945455687450680797544583947731194916920237118571418380822260310660372878839785371667599468351454475844331742673565941983144573678279437470873435110799502731052340894016894376957701879949558912801458168656118197016036593291706602341443702353630524836918940689688603661256037937112678335096055691948639220436478208284690977771734186116048093934368242481561156159514331141331207950528848131933005261140234437489285139996325143222399347587231582881134654396698623048690405568060188109016691585529478810352739629337438412411701423890168299118078213997389980166280664834691857010721239448443914040448836890899623918702146783935315749076345923862530637285809440611143930000635986877639253872098374534947585056909261000745924481867547080308588422718495101605417874678798354760493547416127500558200870170470996395113252545949891545704725814273085943095166689391686122966817725104052795543417849785016755087630366350432752195748856044233470768998463708498955491893112854105116710063568176673655218972010742763170537065827632912174603387763380766359645800973285844130945483025386206983544397673621039896806377201196999382185688124733813031135754213881656919107546164323585971367766261015487159593896138280367528837944713926316694749806377731310581241290619383340079591272674887525693568196588067414444427940749579839276313601334612678710928610245590624859268832831107786436281339102786496321421079843470812647145570955134677152988023775270501184768166275439213982627817936076122800188701978793295824858779195941504764291296579918539535172563332164831701976057420565010491849382040719480837696361561952578614437311179400765849761919946664355841631422703952647802739993387992747287540371423527073840447938806159918163167184932426680812638093554085282950831260539687673020674017873753054372305036104510612202289398700816768447801853157912589693150616646206846376124026226147197116105828283490732103496117009197514160564555403159475446004288905318998640597394383796808065712569121919083147808237676449579142466361699919193455897762552660596656603148275109158844305648360564998873034785502260356274874983842003536472629096005608783773689170778646720099137414526539943339586838999268570981026611445443783319656441698527829393010097086682167254877210570651849822465202887501959021385806239252457069628568291565485773171845916653440534122298939516853398195295478932868179220947374733999637447447961050211041716979896253298223385587254163529718636406119701696504248953511501846450735696300030525778280626899092102454079273796375626949423112852967307510809582415923782940723721154463796338906651665098306857739816480757823325883433506637680436712939000383044442412363578047636705995044843713434875687358490678786884165053078376284057760079424632405525683565377534836242875445971373027387916281551252254814724146803156016512436036862616046076258810560852853988210198840290692998790667166087535920326452700435732109239475833187970164342446114612608899243331244104868530617430632141760759686323316342560902948200802311721594002424147377011584830637660793962729620759901357396773254314043696579345504889927793018336193175961381272009734741277100401715109573344033030140454215716582021817365780789419667919748018832382394353424797341287679995785690537905589784335170181989364187566337497728974655983803704200234501905987114873203085190039758209216200450810167111811034108491250518077816922406694976608053526056022273672881637426437988510714951939452836040069088943364200325383038591088246128835334144146365685347737762388104979222471518962596960343332539968381424134565747821204729592137833682664066342069867517913162779408483531044070985776058622832301167616640821486095622719802823304785563283982651956118956679594231655282416803257356056786261249506017620270558438346878357984297434345380279808536287651350054902636033552387414823305262297828479568459164311543223026156769282746236487293187214852263334931127988061403953687455089548622765314864939743529804356822405040653158692273154817328029899288432849288236212442672013187184961271878393256525022190857353454060809286621995986113068268782407477009201782116112900000196122495037912689646497585069241810365178654055753345806298511453898187872824711802665740749754284295270826649039331824327956817776831908059240964634811909919563016831315225594080315375049311790227596744420772805936461673541047099941790669506132171952207040308354593104838315271866499487190879459159051851104747601556460808900737375309172426888529366422244406206364145652120290359170676185393128308482283133905411386586505240783367089431029049890197777324817994796576537835246881982000649687194198032313081967963182647190193805404508255922173204238139080917339894151233385657880869079314570273203339777336049571319951953469805896152969650302065940315920944833689418589144047187975484651359019698465420152872969253014426070211864608181956254848957835546130156975953625367618149132340120527468948572546573934196296837649882023936692474637557025942828309739759158163140640884228261084426528957273944120676252301678098519586554234984024062276309334148529465488716418134511402900911279506536064285196647536031131919337552805921513506348661812453065211200288180400205308096309064845082249325352830881840842317818779036239736039893829723544254539995878084846447714845629372767340459595136440483082668894117697409062727924845334264958752886588260873679611622572617135394704351797027874107206526055843526804552932337127989140848865026996405499525101397513215972488404594569631771236832196693601212138491801282109284983797738098615579329360295348013717984679551735727317947730447532146096054414852067678687594595720563696379597928469434870123960859756820598064756049008751259036205140470214860099816891388252879958190239093950435797914092877396883866058429467600059878091925371441407864870931071703869648843955499732922379538834544496605260504760961983203926910348022492904178325733648087514450691844967515676154086225127453369752496350665963811022384750903697167426272815329138186718023709851297646910159821536541594946140681256158960065676192685371950821471832575537281298477587442631636007746044923877450859992055872602255583177177181118210795811398506702653441430195108197572742957823371607316612677098923430926670849984547049737479950809090763740476932503773734103497817617537257726831403472398100739856553642485473419438411247230115645203617001793364971934375555301996941560716134454336790913840902211770816883250085810400065485921730562760304449162702963203226667017932812683492972183804019598453111957039274987584312246525799795107393857856389762329829887521477328721578888902127837978358820823235903986406538361642720184875548858235485812205171903321194478314440603033649180904982868571062820814270988859086464533797287939299266502099488660756733626399064208640379492254219396706397120042530209623880782867455147021105302123323009593378669218887788292236494504688176527880182335266830796844775806881742762817340568188369213111194101778419311574761135328167061699560304603170764311902622042530792336873723442060942948041393526484299492381670552156133066686575666666978693958448664429831195214790081197366547005938070570265009758710584635235555258590098905207432026947599501296828812140650677490676279366102318011619901041120885360149267505860269959365342712063632403287110767508823678565960231790259452775095331696847886763024033453097422452357283429822401698684425134524688931733702950246072679026714192404268056349837329590514971506075195892594120803871795868295264973454870718533500862399533771877536991929982872701248000087703518340702622605316118619846698456293766351629229560828756370442205397622451283046158281269283272395684529150197901314416848305801165722958465050900724978441533436975569437712665118282991894992850750699815247028003190473216926483665142282247906784795913950939592766743549392852904611976047218692640723081919911727703085688886628818334594691916335366380478167347682064567779971749285522399826489327649167948704935659103991554842663117127194221234832493228068097342625632376098385451770822202955084429595864660760473732313462927627062485744153637654577811273407223056293873355912966952736833268915516075910026916247266927488661377648747565198445827911179984300435738955818172925921941980334460338841515564613483922262370756504740247355588579296825160781369202389139560997460386484167053458752555651204649291216334807779976113872159322873375382697447411523447246503512639089425970611993223702410763333648879282063190997265808833106801813941954700137899411252195800604142718265965244689189934516635617231950230648311076412540057131818117721281035811031346576490196717911617552332639509137916312938132009891592432723275433368816257307567916168820891118953700836527814206399672194762036091007199217410158378016712904069227423782109348786500471784008943798478419141353990264375499898982633407637687126972004977889561551985694353594349656565731282805131573980968950110823116632412773712657506289296989679507680690661898334140886456025910177067869434439352943153273262986427459718668459281338048766270267018897599830757672002509713476240391795849555665999474450901290436797408605586199713212928152479974851250773820071509181055190320493670053817640621388350130372214697456165495936661557589631494446798642078718399593242011040750773074561631853638217927269734524666985114199305751445985574978811611432254909215684623701512643983342460333949974416681084584685455436966479165168655790926178876242751106256565954015114163521300730384157440642397025335069301051585792147144194120955312940194024090967879011185409464313695910998772893099008679238648946136865763203984843531832203287847608555655764252773658255720430736760688537161508514359991985865797864378104302317518802974800500428368948092535587060389857756437845254071959684954600129808366946856341850548944578153870012960251104694070158199439008583505125351390273435197606619872612873601038352319411029466306772797941460328276305258457842198331668011965142586559311853233853800634790739309018376621570250998673705498570492728109804530914445951885461661459746146788620859309197018076831581455892431219073776744204669562344264874798458753360200938767708177277909167665370763844046032786735726000163970432285063911750781180196293828349775696532048019152044852819272173949172959772928309846405722001202382167552851069802532572713363650633942640587014702339282302317977515415027397573698527334915660836902228995303430345267452776635809590607264071428496318589773382990729374455836191826858735518040703347247258661580537101512760902063348927740643045940436245192196668974813727707150437957140347695940365759898072671632494420859351235180485099555803994470587067441368005932784812686921528901615964475485013482334742334957991710553225521692274152118671351905601687792055396739520225925454610594865419240582144814416038914678517144543964651377242494405299928474099644353237140230042965277678344724413929675687443684884748600183756953059435695336190102348657910344995697175651578968994495866849420321025733790569040133637311182072651198340263796974698460026972408437243922837186524486679188136754067474607319596827337980125570435734357852896408682975415360132282876443862847759956098862177239971369528740787357667110611295306632640465577169597689538534477659761250236531178597483443688937009952496601124746920552986545289915035325899876772218392490085467097398868226996859952156912153065596224399783143520840495447148083593758720034876179755295650301279810485323040936091317311429804112831264073118020448252329168371699430171173061624049594326272239554289063904623863301630219793232485077063965035711867281784437585533739355855678914185504186379960862278263236407038172560061520717783247783141174155161523333037667475787557367820823172795450442809196308816856778351425124067471510914371833075878345561635271115122069889006813728607195534097704661757436175778464582089402596683323458872217495559901730531748690924366732023328900813327832438746699381383334897483390957467930562556233193072335051577988764750028790248544990794118074475566566213250807975245747923386445467132389020258234333897740430069430809611750386863748066942028500823056550319255183431668910603812258729290693256819231235594183635891222574423522038340307583637128193822583547119581708703830888580098906345450184058828177986051755919032380830067848676523475089646979862322980306387540484618833408294394761956212689449460967476832857951582480959478272329223055186088507914879838777427572973676587525185130021075790434945069486957004841040340645326882789552901591226024135774295013083548533843204052784373073086037995840849077194243863604567248622703396205477504314521300933898342357027458086358441154035001468052165353028603505640606735034649516232978084610162965140081010741832414090001556712256996518492601504896498181884709524786619752904746236559580104601493391125348569890076200058076102116998476978605972044818561809657369167845094969722065215319334327231163720837017189376717069491257308295745990300047114339706564339942910236641088140532763627373092854000731611383741236413445274857312600186431379914258211716052527603935035891065172910232261633766835734672888513176219798157013753623431485554235447727476203756375077293575301852401039735607974847273177875409714664843933734975846259799420591532749781822928235181702965825957425441144969268639388978120198255559207709700913569749210005099884355609919365175460660818554348851599858276738901090793600143854132646486415769635234721227713042042512626246262309283022867032688248151510646615993714475620831781220147515467540736256057879917974915968768959632585989149326463044761929885840770776804323760894184796830465230788700783937482651374653831958209007641028323364251740854054431354594972441595750466460532694773021873372557860261358896904347424097826007644792095140646063634656147111449814748206544048915400781252129905718532485856279341099362803443431015168168799032031045559558351558076072648658643410106177444704612678981947362815121735090898071656231198422980265751576975985910884983685691488060889992930969460623244369741557594060647956180033397474223676320426867644340962420756646960191553831452960787766099911542605763018522939928663683563725187559610342205726418069701307805669292573666644579543129470197398119188525067831543656042094311074874351375862664675671619163386601751354000212956204553323973090782572051327509926507634554648457350254833554999830025831330444941625096752414183006030010216560876844384036505955760373237121926087508632972601288016246602091514384862842489991976713670300441618175685806434254299161627329949544942220475120877407631972506169803565173431712287559779503413321497831864566415004616630273327521721986093968524334439808354850575697783155179055450200993524310603020171371967595105039642459806904199677251986574421651031747384418451436741971218928230212927558339179974885953973994243392702367151502192785816555029203874940014507041314972937167229159924733665081156194538241091896945467783137292339521859160086069293261052147180705566849379585484908640206328244185030596047762551014861728061308374928273126823102695260796797784172123036819839835965335363982499318806277869923129716949952367093713035754226600445051717243228999841885799816133194102093081845101182412281221463536438958772809665587643076354176923287007960450380777082739962435529747323690967706898693716683840541774053333804238507475149794606802017550905303766084810089407679609008357026029980921304476786572370226232818946857643491660352806772481439686759098407591967374491565101499238769336781372417698991660464341201684221672378221370333742943073907867864543485447355764804350068968863927057510092027901755976058856359006263711250329228815300662927677622037360072141568520012106608327656143056914350389216153347487734873794719421615596400052278687351381714230547976263216712369786231651051446299122123726363131421772475648770241864648424109194653983149728323644550563738850497209561935824053544224296181793620382771808805020107147978955611986383973487994714113200880399560772920093498859031629206175451027080492897804830391085879526728256220788757091545711261624711897596675996782405290733034026777217591637771759532226658319471963541395800661511676535988181104811170928785129681223727351330064209040344771171307500522634649995761457433363470391515516655635842581533562637096490502793173769105654791765746629600561372103235703134898875292315857341729735526011190147697161927871939562725031042616902664615947332531759844529890339891265342000961400748932687551257762917905020473667798235203023777568468830831780971576410450767722391112537525432055118487800654732375806939998596613910839564103498970540098326359321816728438781186259802515916176419449508960546010796506053398937520238017946955382106879208948984006726482183371213648695668265526012498000117614064087751498714120158145957777886985613378737705028983507721408098046311494503599566368463444532598736747891457502086024109354209018265087218031687655652201949435367812878168529168781284792630455815812630801417218555565913469713595393874058061661922229089949503928144968741843564767080717521692549460858570895356693725404719205357223327653353292438608149403182305457883644657639093087895123363339463026892843943247041670499451035821353148118807874383602058280644703343142204266523439978963508330996056566231205263176927356524714379222860479061833467109308527997968888716774584260990503882540178127927993330276848810969589983236106778533098285709561734596762031548423682916516765521015197156853929307822055377192332316438366215741756816531888475896001891047518524550097872016397975546152971307660504752266561028575179204803890975550461064005796331416201116384773471238270143775781551705211552997955375902740135311180723859886788415790026108842354449454818343277042191209438596975221311989719042000202749598615131571341702160467837474494633422706407133875675382381917951658334414894427199958035655043155735375866780813967818900775667583384800373369077884035904797846626467890329106544091964481831127946127918950955832588617305118015792014873166598830373184120313366082590239334258182337271358524974768985058100755880036887515749881841107127341856441934752908631391054320819707699217262272331776959340165531869353306711558031048433759896348992247595959686542848979329117728745133623226075660560729178211005880499960935288407851233842166624900109362293416226760825345800199066212537834739363841845696818648523229126821289945600251145760625719285509256643015308920398202316273878624123315338638023840512304261782956400435898498629150068218773783742196908614501011955523806626456255571329265359043625337814136434577186856353685027976925929229527030801365269002522542013610364241972298038285240806175889542185539540897579510630744764617782552261437192129190822315496819205294535371007351348428722412536981911039474006319066857456796187779350935309110602953572795677272001206191502556267411895405688592890455962335679766617933601947412619638054398980254233296701051376610313724348690332145359199316826258566330324370761312294634888088633246436831973369843739911998395686266892368182935521971485264303601013583047722155649166452600590022341873220860728208220340909980856136935260219137702720356107737624120980271726264775218279719529674183627631673371196395812054020116780314453903310597033887107656806377061118707256873087740071677455564835896326542062269869224927881828708207356483131549713683315929427740355867678946326561706592431024965753747902389252473601401356930869647126339490264049768449370784131204945174704311365960616221367007609284102274111879534623110846791664735217190232769595913112199848893957862534197869218718014653344900852471027123049036576811327452457969447817588564312597319064979341399776846984915205239728652402034218337291551665273682928585288625578403753837239528674536994852708700945135476653419711863587442167846189024914248137884203144171304691002045029771571084413600462714397556525665823226525491552944108594431403187893635321387344439557777026161856156067116573390563951753795557893963203445670363613714278590607502638799714982528946177735232597792363280724212683331826835853642538807265018938756690246433239641202761686075314898424318683834826422328545692325158374577496843445524913274169642759427961685171700455889121881609221905320742650398355683487380936811387401187274898040919553575787440278899290202910436173509134355612963426444996931109377528411892110972105702621992479559219913394037658149228441287202988134537144541978570991217278352104666627625158530446510180212909051411165532314326991049788214668019892832388047990463363947671728939624819279296629961357579601393303321955412631188188720262948227549860803372319497098922321467448229022858632576073329641151474696017778613333637204634629081180985146437318564162792561054105664415304236683150829237939068364288556928573812785721542369519016172388621929522229281590499813592120078172410108315137565796407561141476183723222658447352267367374799999581275510956989246288241471351227938556775965636602886105422595465406430612659957963191397383545569901285422392279831969146309981846478076032667767101692760752759245153590377493663996692601337722351366765029012433545952037842724190993057170737222544642777780657411622398371144930138631789584218783592707878819059659297543586233348791420175989246726647934421090279964567761482346815382699890667167198553896336947125010767895246570021823802469878649950428974581838298906816481230735979870382562246521571103212465586383051062084354256447135445049857303044840235844457550576212649085494842322012592270014746134687843938813996954252813626489828889084094301514318460164580761468988989598957503817051959130809214658981993040594997050672129920301931894596414620973992559647153871169410547171490442357696777898663740553977193589571182298502692573268359743276968048312954862840424998395368129760682488906372724770281152223513848647403889368578487056799155718811358326094248144715545524927222127669548429085275374632782632447516728922292670615387499031092145638749458131999259684800279873318767428075364252967463692266827576509316936526372958847182705195370277220428574718705205422580312362844383028178412856118304920838565638531913113409613403675925672255404800534942272610982750843954910574795800004426115484475978970294705814381441079014513473679132338775670081745398686242129962894000151875570901334933431358557462298041254540076402600957188142482136725794341599979594809760796964968097825804043634960321524188749771837129645605764510834265445219959862465944189749053852155533938586812694904652502145032580552938629221809137774471608670230360580951739991688795787428072125271198285552229618807217187262150054466270206895359572487831886683987265065927977744574282562988189936985335026537423543087085819783958361724279928777229880904090964424617165591900991574593893685964586681912904939156999806318213807795248343320552009324793856949852940913758081112830834979650143033773224917145194150317471988365502280343412624757798781910697787767736084569106254928018138963796592489288237243421728219943773847048456625434094061387046397771448601845233382842559218475901242738190845591173649515177873808453098279011584491537034031451123621126801360983155232157072174114247785556105102525622831379732113088346344715951813215176370790042473120905283650873584767754246299332790785885324092613132965588189821911459903139201916208863915932827852353754452303187567734170025201998769741739902626684027634643486673956043233385559385553607540154542950357344245250723334185657341861886253250484964917188863402712760432643126109065538864169290600813292236719527935055177543757729775966568086372373944363822329910195285923863035429701582155369232204795239193672234137218223508688531689364853090332827532457386605371418978654911670142092571077074572144115097983794502382828524002925407826236914573874629989099582944320196122146936271260696823144169618315943761232212060258024815409196909498892940022685010030470508569920744625718565589084994385627974739143203321984345217984588937322542245704583438967077185986199259005508574097380926748136161047901605992827971883797822197014492355342288912603504543871226676718128264961910063391105085779158439386437406375871127830774002808390814144994261782508362095790114780623561271685029158774466061495888451336557918205267888773348720559043574614759266926967825680188033734763639095335391704824742812150646302829595017543791592657825152500395061045646579340625668785318096229733688983367340930870966984273348403924843266690337361029991702714245555034963896005832018552239365807031990108082106353058902825560958430145815754686314579296837527794044377185148644253442564971493218482666985296379953713800350396968059561419397577223910650384633216462824249981440014144101160374570620283404809159193010957347750138010822806225226746795053356040704925382018356053863680561773223389153851934508573258960093662251147909949547538398760828491869054800509212744635456572797132337938301107200067992399454245481977716950367033797752589667878067389156332481624562230270431106472837936296916747343237044340820020457271329716712661182598278025679870456829069302400309786911374816288592865593078646551200552237354921645311724063596243991824365642961749180536703982298293855969759499337475857590530745033729900969771673249433662097588300466412115146187995293497135422451225499012614639600315586883675789975850074585907983317591827730822075552437481938972032443221066500883966595238484730101256399458140963486604074640586432789032786752034511431795611381177581738119454682026475832014249158310054229285778446263768148952585960895853918265231758383545983595676988538410603831782087786516229809717104345333013521219254314951244127080023841338754802154895496909364964707621268299234625159823659123144259725843168008998225075563994839381254979150497171927862752159312908397452853795450300178183306814702511980295471731568750092501085140698103561660332237055561983140694307162863709879116736436539357037826141288989351762759603060897796706829971404465712173821310759323128252518851322295465225031563599975616202466442226086271107592667171855740798080350914920835325654800492727557180715336100024173233255967574540818776503539929972950478261719394977019000089841853955847320094463866958053049816138815689152926900690446226898340761312845006561742417063438755921398981590119491035913592399769717049043044376472852423854107157813349943970854550670948589226497353340655686905772223870807981842542954172148826310544157271102733814122683904132789438763246303920882613263411824462263787063322363474845567011591171724184130298222722522514031991958550153484539528443221164683514186645592150613060925242714680896424740748539216004111014442347084529431420015467124705458438556659418780793326586090591205678847850771635039290618755078028960021450789669645032760258106114260580019906412506623145992376781811027199218830178850516014121730976191469035962566508550262915818653363861977024706426978397332432426858676351916807087603828763808622178897129135626353108269313914541535775416102123974067879016326017156345930170149214159526224068326298729747560657560089185108901078590166851267646840951438257907211912244552638675445621190213558379331634722604171615319413613491472294865885754319067301744282805560255003746437859441555709923985268726644069180789925402110757885433485899401291511336287466344823272598765048283186578851562664167771996442048658619371855462612994625201513492413584994222604416881593827866290646092114272101625377775904597038625832905928925001081591376608290663400976071208410170284167452416244112504428376272393198132035635254661702866919307901555385881087753666010271242258911717766000073637554794422601473801807966666744302910073836607669116872813782627504219095232323408188601848656946627776645776957805575875486527702819817165378869507515742493925709936044408983840660180356501150807190425702808724537618789094539089663348007898554596652341390042647231370547456602717172500511347879749507046050055411006468591715538293282785235627287703718622902440572781080423301809310448185127731563341051669802609765242791580619360480201829743391222428324367038135078687541745518141244563381982073349657350761220381927901478850476724214923662644729994579308195522223452502868764964901076539253438223476707775989871605560188605308242378581858080583756113502838996254102232551580341415599931400017871169909233193377694176916825668174321427816039616745023262838628298841122455073541392513261812181424921591810508731389190471835344681571510519584039570416529609990138113503984454593009535115882725665773042504859120052437418306183971157630971289490887853368356230050416138576956161469522329855318439957909281026917458627772580870646357725502062228759397523083783193556827761194386694520869381213318316066916586523425036190327593711258406469984485064388274781934728018338801047915350507671850110755491319137046389335972940299983664478803875402936979118825345998065568528227747645544264319877269507716633819344385920233446684727540511788302603339854036184146795278711157625752477905290619362808135281117843613232061379615441160264347582352067248728820022528049070559338832966511010821072170252640772711223492483281850603352761464230984831064905011742851232194497777000338463227458801736870666970216400157153895993861833067776161278469323866668117449347883101565863327048373452525949124090724531356813397086278865501231648041489373646216483592619731218808328749640766776424636836845590153177876569835306954911508023043490045771277864393635856204721848170860470309212843966226940114737399681016804489794046199720248417993955837975199782084743092972288704739083110534164818592360086493749152154436350860454133408681166001711094749318758982856826696569648104786323974238827452865357825946598147390620254488982176207653790149389663754571789561876990273555958159260596033612401451532395484609020619457353963310458734825677046160117517740289111566823467710784654830008326358267862741836259143366430120710309155691095395612828874002754494502879429384715307436955911755859196243425411071999886792468437817563232747204422155692626551175562493601457461321779911031092219619076146185746834230341236952800921523824816163817789150969079812217856247799054450408215199496791953133014532552580773100808669363975558601119354654556024571001409698573341230988563485754253126347320991049285633103526601097035308128629946976924635124991356181804070541423286021720527727317147036032145362868423992673851974759812638802276655601557126651224048733704489020930445960811244894540302591224226573145523769541486155200476617432817886469271027172150939703893385035605508794960432147885659006574254169765732468987877884074095808866846921945711418680967915445461258225723203181347047595216365473485404346437809226792266103323582086102579744310790905624769347498562666881277733570948806376054638340810496768824559442894100462500370365430910897290506438081674518695218975948312815754210318885441955076399551007441129860874264432967384955697521804461398845902747561802078678088343020793774573391848615797286235166582859799308508634493631917587048591157956047489330126717131032492196808645935696337700341242762404799616901246212386187234661056442484489632420628848000626553965955963114334195152326729889014892724745504758061162719915308805597391820020252255660493801964332689817012793287947117965340145553580696020468022007963929537222124334797299379346939668378942902021490419055124649333031217190130926970688712932981884987103828900192452269720443397789769375397866171983618698623779385710794284047250855515013254651398304795825975083896374713685938413345395833866878876880222638343791137051303096994018438994509259176968590063524920836358343523040162431914731818030517875079924726100170519267515860766050367505408351716707505091843142662374778974871720462865248313963525943659506642367782002978578519756523521635912097103946499886676590008441517651111856958513458196424536101337916097091446914377453268427165734767994619481382406489748539578311584007212124481955025422976592532828461289614186303619419965808009445925241595484670790947802145166633229217679420878632680611852035848575876747553267916032765010216294998355643268894446891941915267911819644206792248923664787611333200019578219941696202744286944726370892934286537675514204928352281076183756054303936408677662792701897246397145737408214195808136991187179606601036187368480363242188875062607512729986692566007054548285828843037973458485559044693540589932931044279239004945652071381678375164127366025761218756166073574155626447176903949179276875988831169601494688649985654567893648812500682273319662966345952789168221779919083534539202790379294422361389743443293538635793780255516511813785705708081612551716568036388318728951217690728630987592342147016598975022441190144266778704403508572832613859604271471983552994072860767570956311177444892699111713932567467572810316064856426981673823959163958207667302718287433769145361926336769151185390214172994863589867636039127677232991165439356751269860821268507901749530381165872782118886050729994291994478742981444919842610028930418998056917591076944401540362972163710165944911124046331715908779584004738836014972490421501982196954858028214309010220622564723541308815715291622926653120071363701921486717992389126621207687317144165247083651091164231994854043431583333198321727823606064023790268388458224752110752320362270639188993332548877229512154063231247040660621706681661482473842570465179492194398852696770064250615916340974702797713165506024810326839672027595193507412047653144557045458093818587630694610802835391100556809482889537183735730844701948078454792831377797778747807403916445865524528760772479572380733383228521701492819515064873322890843357255819145214118263470256451436377487173644600141019197136664567046289849856854699022844847061593395267367116708984546770473511069230290438090823947885876083231914492150829428873052359046949150126006835926587983900658784013579199261269573912223080070550407724073556686202301496991862587677265221757983999659152315621131451934832537763157559777914669405181912808810485779487932165848528338960379510043885939067083770802158053208468467695395913857881099794159611734688932078460818899582238464949833285535488994811108630857545132308627819814058612901352816799587955602200593908245915437269212739508921714681618540862735659214581486007916573811744818021168246245401661331357981521989894170444361644587913039467056363325311937560597549270186566852429527543474380024942457332393915042303893156582315232394411088735693125432337312584771973203736111737795865550504939494172428740797624914044254455495200533618220892312976956807911082547875498068711297589825206838702027752090982040903945867885511477655186146837955906013807012545766588858879860266648760704890582247225322100151740003561698698031185242107249580844240613331693260923350285481883131747500311029596357623277846239493161432771994672655390495614556914640408133744821741591457645871665353603577273861196935117913177143507036255284951451741792408244427432656113442974485079863705034870428487267745995695660483307710719676859979377976934491295537798069109731288694534021066831019046855778373220488681757572726549258447225685542198685604528335213171388895462463442782238347478081102900329151742896011929635505084419807708371371078204939065323179224310381306810103990689245754383833739389270572390698296468058628766151033156354489280139069743504706907358600606656611614062145596616811053259694207257407910030505857778379894134505457369283640068329998506632002297767201521424808761320961296984742272243911828048830288234260398105129397892975250640088205701538543677353835168335688488384026977246733883646692073796610505436896714942436571203586783201060986400240384125635633201101570554337958124871326511229072467211582840774832878334685858931374587865985209995441263730301073133476768055886368152309443611977216524343747999612315937368509430939831514137516534640239634747948952823639143058313747897492790690740878309104683172856651294145859737793950900087409340012564283751627481211727092150840851335868119649618245365718252940070012553613771358505766075418911595413338725600376033278276279473295727477189328768175729976722343617705753402147304240446178290199063927055910534739475427027991714993572768258285140040951076642405450990489983266166475608236011788037059893717327690285887514658965113779901463815585803302156490044052919455425006776408375946740520219513664812059609117910928299161658124362654280945414170635253655074488721501781375315823499449058486287348992235608503489535732987777552748192844317695605827923696501100857502734092026145536828295517560358045456112497037304918206384416636308399844680493042873948474703450116322847319609820665338300915454661328925933436822855249759974334117135629131652207894508701313059174126757633430357623649233363671565010733955641377475007546744747181908911758855021016741988969886032311808655864676399580440450593863620791939341164177227314325279508670752944674386526212254507986001120934546927240384056441148864743322011942272433708068077730292732921716569407454726977306728496975175069147185898693979425764900800976074579294854386627090928546909371782438598402267937620350170125204815870139757189523171411822546326189674028167164158953811616356954761237979406822079771736405965448084601387559639627378933167904928100430653368286004972316117264358179953103145571919700748742106191087056596266978578056694994755160133296673031193594856567205510422967686036427488559417191136237950670990497273283890533064911776035125956109302024594394162592812285392226896056560014074072106911514497216836323473718768340364588238594024420055902832354664062231367489102389543285009176410424956913731037943205571759252239560479293839032061517268689081688448122275375374990799707485360672002162479877193939722615689943419678439745809036431152210410482993919679613756845687361501470080852240235403921085345167991948196406009352007913971907454113232181000573658940289094375238355686211247509679247763630019953642582142807892751226309193622289294691278578493912501415463496573391527576748187317713780553509745092878289461462407929461863664646306880697878909122877920784548519862753576070497424644800278882770152734829229917463855533884445689954787257097723419052322713097004879947726623323011802893156604778358717745632495722171482204199578656850204337888744810256156539434466192385567412968119369516145594598458902012671250748721787258977456346022894899322940423802639582489040493619849917399698828487268560800574732240084469261920681121442009093440225324772004271963823791684541606277171273291787695359072549297689636806264565931020791404548961253831646924643343848919488178344381813672518087716707332514456341687060107645197846096872581253998984818001068286595418983223703707537597814123751611601812476739542164041233579277568290358315866927883175218773459276354267972385289084871504680176749462963145170555724624755688107042831701405958823199976640644066505039610812431418340677099331014223884211788139673351313196415770462140896070132393409726104164751013515950378260739692096113963264573713430409556895801237190232720275992362427179501143177987154940228225127243355643031443642066215979564181768231469989995179599352133943647444722638564131410867550608230904736192053479697553638295672805969505311981293926980418608348100896981783466747111906623818746983560249270593894855816994212326967742950724371256244352735758222077888769830937587242038195981491020728870824037412350131312755562460805610535327405045033016123012054864464486017175168978571451517823445113345554022495026403694416876498284085669325310382231078358405078421014201083809963800638787011040264702930138113443221483275726814988521086011742634199760452933893920160405455591626371563331374050623193239039688173082303708637347820096865812034406608438924960944913729794022675323045852567841315978499549296242314873250279977582110602938945394204879387625828130294500259366036903277480505959959082577029388619119115081097189009349723151870415643808783118397428221221265593921957004030999007245382676478094097477142446314019155744773346512230410349317446900620651151314340769094485499038873035942985116165376804192143135148664365242025613709190782532938797138607019316447305308272246387572731321745214711391682439260100660529135876562947712097897176033898649551356634674263992315184821724546855482602520158123175193290171582111897980054479824045425148866730090524025751392066931123182606793722334813467605309948835040805632080918001308764234940344206325772906554320224363560835590848271969530985124279958551348869324257436855620489350723661372402708983751005558181450615304151169655402608458964922150610468139657082341385170914219377743511186444584601033097213248359013678573950982475347607725752332777092736685396640445789812707286907087629280922240935546513700843441346734596321430962033360761395355807309563393011458812424192151555968416946520785590238735297657723828510490698011520047263740057041853703778018033193363719662098758515500822749543200464279093649246634755123288400486623306655142940355975255485972340000661826809715342451619141876019385581306042036952770920553623316261901003411984076542352398142989872584042075164112998157503400164851147677585101843187094075815689731825084038329104058783727971667146424524689137725973582870012656029131025736218623981657367072040231093627540554089120251221887847345905216031869907440012440240062915363866860977066841866302416502849822082567078147112162626519944456270616483613127597408065227277158116946107563723894231481265245264144469582804765034622964302810944252075733012620624115198967831896393368530577943887936857026689008433257419318446479157199936274926550932929686298161666132760962893953669055805635447064273941739682858617320799978636242935549535996726521074886302049514748263507118081527019380919955933743368901397032852630256465720544959737061249828256306730879472093179896483247413282418205541746598712873340948327364469753125739700853999005622606929652611773849742050531767169644132652503171403746789325281862077012596961197725455460019364457956591133190626747953454036488094780007872075949246319637258227484093349133760089723789873930767689636993759217470477948421302179583542822971213424804691617658944973180472240748944536546214005557918231082008576544265519362652938007581333605421130306873660580382738549393508746252497381687779534082296744310995601946841941025598293123638479054568984253766036547335042688543908276822547655018484662393833106489256841064457039045027652043584440763756628802189088683451716257817457769599105209975044714087280661239537481696699821924142352967584089981497402528722501638863089539023151864306525445285152223653887114007213270799545287686850675513345657715033728481538806000743651879900793055276368959281211320151294988992846808234446159993259632819021432010270257790866735191860839815618394135337262853928668780796140354190027554716903483327510178957654838068778668419562027636526960618450325056838854252089259618027494764277907327579496395223693048089762039433537026986381234569712818009048875113943589712838077790116074421953525998068394463612109129353299735220392032582801545980522222832440777884795419329395121194512162291016030168094608229947452985074844017242173250631804138335832699098116660128637367279950799549298335767905922400716406995062880030388326072603284613000423695206050115575299985995204275554287761268507404954790073365742288024865833294274470816744361461896725068263155701351470728094418778381678103827749777452817051246516099208343552062631979778357917947160331642778477100185804806210796533916839740891243742679304104041123393802222858018664886470782982719011801383563465955294426254052647781730175192902716010449022442404955384108405954213221094711672486101492477221914918316013596985500914920970973809936193495877626688970928354135631838319562077842059692663514303770435591423949309164912688213619330745267655675045631259412846755399017024245316609137998854889194979787472655420249243987165723915660590954458829044722691542424647666312486198102136957816233373792733602900810395997720134999956210329720075747649635773350967076079200198752825819089976604994701352523875330550186060587252330353661873581316618115639961463055376469663438058046674444827054571929723723695070846055791209244837187756290355878768843694731705464266845900258880372261928668975600164041316585506190979252306318559115030797199886113235646816099763496437712250538079407531051116812222761950071171174997409786336617429470863388982540199876152972526244868825357075203569755131664837636432893375861581198947471222637381174994475429802120014417455755579906463532162337038897144206953315533792052343917209440477634693641291617454486176219143242891028939319630854684574516606248322868618153554004026194052919871631291249643597189302726484874050708482717512662669084775112250796021771301424813709318810064398111006287703387533299738325649128759184992875812987644949253322716270158316902544135050191510290036165118546372606592477342338570111462030698921009249625641052349120704369798459600440539168291836174930969717287425128764971903841370376083940723797558940208471418047178266612143666288134555878619248015633731960042553701601872324181223720565383988418918855311103239081180900211312423379467361553363096810075236068069181624472076958323703256498418966573041736322673755075377632350877606261387395227395160057778509111597868528314969087366435998464548285499689028642181490881374938342314634985215178459416665683778743444596716818440378528037334810645371589596452866997041355134100400954620888245716669389833810969238731142112995498172773629524123079460630320073189123903835337415788779351533808247588766667118613058134008973461353961931444048635440514842403484217738619940986974193045438251382088276479504192421291142955148334827751277265552187471761646341728021907290216811644846829046606720232405422378410188547786266433000832808135017803119930239597772643698218615116594332130572356476005960523271667469028883024965406176158568607919310324852085511954932962960913546142273102235780439034618117454462130186656382743677700662353410948361038640472040405208273619193673416877470733541887585151279915839057905698947940864604463240596601161797657471298235799669527621207671199867115051269401827409058668102282046932371099526697571756597248062362202208053605064842627137640050037062406814131279474301800048306109436753143873025222292886077108245525534468094294958440886125005221680814132750894811395277858617818278920304801835346313950764718032636599850651045423722947257639503896282658265188300896031254167825871094652587927366750091372400269859248177453174827013700829603676518065924526430640586659364722908088820109090533044123850703760664708655818112227482142195868725740649715055988888074492029003482872554748554555180213582313359715636068009562747216100658209945788522898019123578134346363995925462774152525795257252862643398884085992945350496373135020214402643597241583157067051888729002406996469792892235617094005196002113761158708386684103447271103507387942751260638948583380854950001654124308745398857308802551768547905146247825165454139549812900187006132250824250128105328891330772478274961628038912631180689732786863065082120667861115066605984875703841103715324609042143742094688742756150466843494776176202804893443305523219551454613419429986171488969298864327583912156454812597895012351739938944379761964782687246993896924204261607722737807731241554611401998158798377571466103143315586312233209509248291678440141134323987798523479194551780500775658043059744585134884601469353997494683709910457044485111884645038000890124431240184350284878864302067275835845699164557281098791869134711652503914014389940634715329273896058381945944189916879399375629558830396154928194995010526504063892015464654213412651278043653620060862015270314443840827249163280383738147846351457591510177009001819237792919768032201389171023164202817632250969052276854148270182186995829241311107502288351905136447920431967296140031198394730640238444794343246560358112675062393806009505206687760778369237168578409949741201183170145169176133373523297058901859774955300113693015235606216253076620339011874391829888366185718580634175613184373266315429206939627854164676343020546609915117484670561617634714366227409255366143437896219807273129617706021632042200719722525179774280549206410537577986471821349282774734109940601830201810206538118665261667433365352726345477466445693671927069367975371929967161167453742064837719178304522252130452017492401381743015542259571143761265735054258590311078465561049529941227292297742566818914388892611729433934777374189582546720940377286037118591464142435838094795665827017326424921917101149329422584464667067811716374205899814532878668537546754943926781721614374049481831349793790177051924499555275557655152554368790808420986702799424232644697418370217023425036710137690409842655466247115170364281513056530649542298582230130080769625788490156881326097938212861354555704072686076198465791793288868805222736128315585872992757709085760238068734739513935398145044509400565806922652604316280934838423284586012400263997210812541546432919072926664025217835197460713887516731405243156769468292296737018857636742643647635864372108354906648301862480440241727040718575840746051495581775583070908742806896552503350823357920238429112878050361239011890164384924739112211097954297846615876102304370902282071438313173928884561482570510645537495975762240498772627138518277332631677658554342618611245485105736701592917116713065466848992031620053418153932344187263633215820186819516692158292831796725883799593783424092857020296352773327678106471787348938414738827869403899974382064182809992440784824847225700951290158958953622658761524282860237569035782147848021904178154602380809165109592653082445328297670390614232578043613007032743784772990227387477242726730143236902118547868708264321213480792265050983152500349526553670055581172668297741920835812805069133452145299796807356753258445467727039422230006622057824452345425398653185523931517572272525538100450079878299672576100092806853347914394907540862958341569275125380264033402575717904401513247504845211011896066092910923082134144177663795736803576864276895176615371252178141623222439063761589566921928399992029262557837641369538914183096436745804771071803638041364007687049349744022648667756792449794703727224143563169972420963017552002232422284432843342063574489997491772452693937880991076941808910555518874944276759120995775488263060509565420050588612439068321655020051632021605479481175782854909539956765741788810583441337387315968099679224760745663359984433673307922684497509013762213587897157539642447796461185496007570520982482106367713621038361115180755714020136389870253572369549080097210073822096217781521760702629446155593967501069557742822490713424629443739801164000494719881950846279175555686770850123942981562265241434033504666363481917611690558544323057547037605966462472486224958721123978323625825318921580595936062041884331606529673292917001929825238700679452917696296255468287089506646329329284838453288676976396791647833049110705468726971960882196443816747908532468741341536676163715612307860372399235151365683279429657021021977698032787308972749289513962579502654138731037574085297209347347947135834449454287316494201054995212281021254427390071251261357578536381601935613000795960823112200169474902852796438640816332799486386742146842808720817939561592527722066608743501299346493481998366033647468884094554479791550595026181412775930229230861452711798869979251843848897327686110479872349082386612462808994640148936342524271073164932668404743917772043130851499637764932603965665981327412151007911048087355970197365456004481838569047136425532549858649301443726139246679535454073175137345494775130128429203102435258528528591887616105816247305874408502008746940648176031946015282784402892339266851452023399325971481147860528387079928863324238006577835808205064327119952688991337711731539889080961857424115907150224503157589813488059133924970554357067962689539808339018755856597993242961105953808651272190316317207528783960075361763559129980108576624958227156751266457524572190493081171002087266251479412717595218043738383319795250702425757241201032268964471770567879139321485501387129344658113371326730397226127042913911433649261997030651048531470548716992525389183862211376105849857630524115180273261235384895474428014390440162320794227645594909019110458440479604918759574769896721262278570528756450951063688018382157239995366766006373089279680812619491326564479826895881520704656219192479577283644921921563548684367162346902267526253512273678245511521436070075185077589342868640132053147037338984779197891987427718534337696951231726316007364623778543746327230243406715076624663692195875090636183583053534559891552321120127026228137604237354731852333892635323668148081442844761716270190672300713971014154091320578424244515460152369925530193045104484808286641694577007560790807499813528116981459245175192816561767500320186016012195559739474697223377276880900441262181717536370781907910933279902079285954808799401524560525114565328454208028091683964672796853944374413576457371501500801832495358012016512899581039714974617829213219238761726240307564874182475563733460879924301785580246965592111233485603748674642202610815175507516993604508490793264780206804598286637094327111462196859498303409679790468597665382431062769310198663468144050659099905768290549912820416012100239928088985945937407581259361856326449262557518886617531771255346813411350445172660767008179692194333189573521807236541884550027596795674632270665084005651994317333310490140551478149634686233370702910380550358643086568353091476660362911965777006798521267004057542613318483528700386902447902968897700208957321167890696134437999820126771783086777357407296622395971737311708401071526685262047951061772294943831522262276406230090522704668502153884296860792448195410899444840488085730499288954316860852661458968131006557427774128545983126056458828573400184750282201660683870452428060054360100987874780466125680257879576125944943133528026993149669914398844392068009176015291522447507220365085106643977196671707306936216307143304272611556339709380590310915940703305384915349012019693939871752351053369713574109738834304609278393404250852293027191687850751538425462926202093687568147931703992967908069300543024753008889581064599402847249130732531930062702591753691910446237635845784399049608099908834467079980924553171904160637171078817612244933474994315006659382440161873942457004804776440176017643037673381920441320763909728109592287248292554000261953426005816530047394463612520800939657284467724595534831686515274070307930121532377974895196902598694107174623101568415661500637886518240929857931129708161278804625605267974817172484957840983995006971230877313387419477184480473344026318304975939171159959236881051551496967988028597056197004979351854171335623066905204316647132484589837230816296654795501060158753273489526533694167631884401771076316585144513395224581528968753151143943662810496000172080762131525933923516538280095947782269454746712282231099089895686977643021785464501583237542713367346328487706487961923642335143735754823014671622584114432382619708595657803542631251443450871654682568135343056602611630975683870396432804609757592380329277940594550878231934204460301978074432898780196107453467529824054696963627270284877363205704345651463209045430281272282930486071822215999839358660905406393739326284550465088447743675274239431580983367002845581009196827222041213527512514382128608164968513072150865902704998841766401066714833771206273277622596261610456901146903503207597228252795097202334980736589729921561116003931189986666180363522760945253078272294851806035815561631285152597775597520432972372734820268825340576072940583935689627081612310025061549108866118728887965528421816268210642780954643335658075100517498452477477761644676914724173893968882446741968871360800585343626658141800539544976692986984807238041047136851539216136680705682333649420781997884079924265142562159929336464478838620098898684147437766956168941355412308342108270758148621774783467161386680061347081654935713314147121141246105947761885081962861720318836290080022278814128007132717564358039631106957027538997770786550793257580142531727787691075290750482587234553412746003002034470375034247238065660327850965719028746675294804558736006976733304285951983211852986122072838957566366333833636600982804120728308990096776475921358678754114014427804073959777465197697031793574450777036127009805695134927220501821171906101727356800420957412888844007716392268067711109346794210675856595248155708954605970840311124928236761029253674260672759967477168814286644925931460324514934274356516160721487628706688450563968949092873426148991338402348398186447016213447573570077996643415039991828981390854518819066230879867085386046153388438851549599267852263064662657046673991018904218083520141034542311211301351526487865600627914151814564460158337754189951554184371809830377176340842175064223651269370759394659788602307431376562615274835795702190701309551598153582326647048927603769570482419088034516774582928957571632986931031715056615465182217040266052757585477533788552573828847248422215413232313818124618265180500661852359764762464586361825304616599093977304478794201611959513779647549960277652263144624190913048930456485830679588887960031323157859211038681628376450059754083474883049283976669199039391133883124891373840902272219258457762081115117327811543852804975004936741779719897733928165443559884245959162720040805944304454459900582155532384050682493009890242521376325447036366954703048859927770763605208405450797547052968247141145033034427371628731200119410160072400372517586209298368547454766853345605136337313271471254148243081950090445511492011293549517003286471115838038773779789713847189144959889448045308023794336924436949214335253523243194669961720861757454890056559444354715965621060849797000501165459632821387967895477776484660534366833504707462721417184514248226698062490443027440294179479905977899868739657063400133272047439456837778470884621994714336304575126405073204666571755742284291279378284118963074827906552837233626493968167260400296637858291463765803813214121446178635643970943124883728336383312338979386957129023697366787343074200703621226718010345145105222982251462940027970833450344748509486148397554271574213267343357421868308688042344315352576201327542892328972608417036799027561020595129705814850246674045757649448189738957113651418442065435361167787389249906416866669625370319236908081923272214714710695968182752817991518231707276245897650974762778335633464577861292798694765440413068875509826624767776506150291495812024364055548026451226072706280104724898990895742780212666538710096457439456546479721065349274918179788336629292114513801100771648739973918454499688643100242085628779826879458101465705836545647605324979054285878010547611759026905664818315641549752902366258044099913728517171845014066249625355024481215549455213229186196812957097044508167823831145812964256722668726118117158533367719242786478728757231508657877766390258852766251911665598893480576453889659699857875860047208024348919597824989843050372099556107002576415104113915463344117613099897758600504662062493273016256001460961593435447449659630014350138901249984765808204240560656874201035788037483020892198599566703484074262596830489296364971713735787004415659329062565261112580263683183552839555136324607567089788439121091736748907549757450818948862882818520617851332184802798285591542086908823789733276856314453969816441964080740376957790790571376613470757869376229110262279130551037879524490654659570730459724034244758524689612000271591905568556377372718514466169253291075280607075520873044708081536232839260158114489670461115073806755246759119928257395111225878015842536430644927341335235757422643460325162917618445364239317125435538947193052650020160186978378902800142917779840892432245126334266078193264416611366434388013572277494099604029733568480141551553907509995466352932119420876266334674923311713175714234267701665461716978371854350410780031243384292406125118681248951537409267903226789077860841401188170101229038905553890719661716486957070037641804263293246691201307853030254442975483150602276350181473985214389365700152559164734310057996867711420667382859443111421966969152747946175130811143497177572024482518877688135067799569563665082614043835710556466894381513260944023754441326535595840357616068221474597828208764346038388197099815956974255216991158037604931129049383096645191352640089330588783971705282887218500888430799075901441387443730049036498672905897652536357246850111438274227884595751901825195562329266973116396374992653764387566465464156298870501812220996055279099569273111038196264387217971810945198783667720005909136829087271873953279295770409006292289684362381804493869183306544636403131710239833100719980896892853263718564137364562634195448929078523362723816820838026414157844889137566982537689059174136536212542646608353165329242548881080607516842448446822245668209670860852235986141740324774355524769230774367535472768191525533255665761599202475340574043777687959456274372120140165966558558297566097741788888886410568660418091614491362308768281285532703519750319457277376108244980509331322530859585207396922649536542825118916065160309188040785289939186921600956192503874108052337614628778041282682454083704264156391582338736147683991409761787027896605899313629161950292286652598124605066594620760228561629191280190187014585256487193341923119535313015910022676175540821197621160289337774885340514359370973578954085996159347620566870556322042668594711442852961821628702029942408056854592228021326555607540557837456505108835473738188984950630915818363138991397094060118294119180061639976550606356453279680320338979908479320027740676785909122134038115290442334983405720521980662506281745584388596167990954414602461911041655283042311657223472005588437942663259818972885863566452252344582744007158205442477460097760668134708532191309380287847897329812986584679333862351306168692894644657860303647540730708056037321302594199597976857936968067788036865360452580721002042301242821667751878625647913141270521503013420483078373469761971568104760835011352755566450057514654447291935006009477532384165175536210101353786758273085327134790601909939929712826140358143166665270904039612999569516746191130086986144825996278606215072024723761680644208259755219110131038143888626277180709327614005025849675963389015810813312191555117823393191692015154919407558825463134450773249189505010277610185930540656988975167482080461075661524658502011497073567785646158326450201054535887371999962005485503291617545860181045106511330563079566622028172702306813348719262354860911255756223124913002644217929570433790470430484882008315594367539644448926892703857554388252864666932866006106753608147271408745417400339429411380505992196186590015836312232943957843894712995467610297035107845580213003642127798608178773460783945075380647954209361669466027084804708635964969706423114744882295777094730589445078579056710331638492361878561383302089647320097788354948401674029002483181584612778660543818915199097399392647710270895913648557491436166457143018328353679521205093642324552299489755756058994278814432201288945731512291455161820940572114788468340716783799355331725467590313555731756254097101587909260768967632950348173203325459730571474801986638861950456870840769342765760078231864368865923798461810567684486808050495834656613708062629417277144652321449191397324223342324407543193079378458457941284745134406535832746186770138920069858890471985099799600558243167410778559735326412304533929229929767405300314600305203627617598576641895533862529040715203892727758010186068087734194119408539969863032816989384140203797219935518585055487533037195557941754409968727182879768889446584955311590429395453916281685248499057160554581415589918286609129577197998634991934992469196557321661373887106505318558868429425388798446259230588068293571602866159875950670455365764149175830491797086063309306653782711677034094979861415112379354370844310915594429123305778951559949983728295992053038767279732336001998494977580194266626212506324558932595175180287450306160966478049203109016321958822447379619453426135211824597033476200416617766851483111996423295769332722721380985568325131979124794543622788849340583277206084821597985263182746125837705418735868322127482405891027880242443604557232035595683669145744385985527849757703742302392443407939651707962392327803909511390978695587731547988660517055153089098381198904885293099380607294204996577844282665265504537048750213978045066141699116738025797281793585081106117971813150348213226292883894185656651546900622427403450181921946294393986154341597367653514541686112701576208486173393855316811081726828087724588972381936872548515198644697684089715668068990078922656286688495871834005389625096464973932355087815792597872294104921229101210157316635266715237818510842824214490958458064921118092992035072696425635451802421491398504413335842305645982639933699638178459525563658878205866477753141312844036752065750845342940088958395873442626070791671267600026770060835366922103039330437251432297583762112444089903952325128445753877332057024334684564093228075222594062671609118282620056687798144512874022994141796385580665334766761065836461310185948004586241119843784122084632593026781308338882006556301205744385494740768915721462797263586684405368467145988899668485373171729248256872536666249351066141405738231337145130362359919532736857329533843150220247616184779485185346561864715049804971872313749719874194018653760044064629786717124447159398367156249683921938725211891336831516690947952945021424056574423368612145072425532168218274634442345720355199121407156146202858664887656043533867629917485842639994007130395953174794050651528027798043339163905163953306534501816143286841137584663839223701737644376178151175915581895008793660698982090792802745877871048632765653752049774461612021607605196905992231920955089270428659258808992445007690600144530696709379242339245591012351624008420375508344873467151859479979552712849439328394202286574377884503479281238410186521081683551546651197030547385712901402162948731990477936961240768454469301034774439198709029393764677133826575436036147965651526823078383314982190330814627542714979600164263739809885315336126894341188830425460303337184158045119805226226158975779235318102487595405113583368753045639180502439043306860843106490271060303118088528570100665535926681179919010739767540126848808817565726994844754577233238523306702527597203908968019988896859962405159201246483384594566280491528814583745503121313799763808039182727832558265625662460422051653933174856448017950861235296418837142324753914695816239286319340271613083375331955009740079109232099604427468415809922620690888182279908415635137976206063175149100600415034554255007284940950632742650069056476592165163690906065903391574960854347683529645467425568428409529617121024911874746535745491059738357147176492436807096488951040318604440828477279228630010348345263243310923780109464455799567021700177650009535622872771900412714249133651393475815056348270370345812360012215016580101306878311760265393947739283931050857871498574120829497268261310840110155556974592741256377663956479496898534759874599251594315111466266317377590231198321068765521789985958781646586302469264808104328803877737569288424698459167337001793421538567334691472483506988820687634242203444469947768961439003181796042491300805870818216721410041678018734924610763833664943517513917559889313524230123363574954747791148428263508176400568786436664389401302552081533595731042669037159861134008906847554681721836718079132252116791942326339430072537014199998278712971771468423370511524777616361946856856694348544727871261534223786466647669629731577125633658976581605373534375666690957142136651800185898700059085363298691068084747567704224844707226152335085973159120994579966498650847396249458715882546318519648694137569475821419287508151741536949651713231195722301115568727574913752531428741053450624004045900869045228349884502767469026153114275934721989825068482383901259206806078357371981926719681186509685907428737841415996841744660014538667564657761602969012397216430834542279399202166140004380692947483020451259160620884033100391065289226736040966998781092397948259817792940727389701962465496854584463103633989753176370580156205475572208051323296606837631373075341338295615002948649019013716085450796124499048194360925043586151264479784531931243458160450207549680847135921105462386726988860652513128374109296485341796426696322631375891391646977964928407733339288044564195387227970146492736024530071800350493500157972736468366489998783103460653905744284671400438369503856931842108080366979864145069710829174366360533796104687946696638901756620548694312014126966747744951765141693869267304600051830360710788163687182032556626545080126671602113514282020887131666500127866484480407970150713769333480393393817305147988658004586943300149326924185869060179359186255330633003064194853715373785668437323383658308936299481272006753240695854791138686579720128947628825832861411156640957191686056645455201179427345311519015073258203407284688623545497812551586719878177144151345875465412161807748409984958994223243723457805836836927763452806592155517056059321163717783783742291363444664816395199661489131581381338241155304670301457232672931443196569410787049826356969962932098647112950640584678398076854925414650163426392119827284729211467789898103813261728653732962872486640969530538923458497641940089290794238333097233247072077537978375631860603891132745584108277551438692274542704330249869607182645556446316984080779112666879009742628902202497196566626425310917626741799576932091593921856700351679264222102839590913173867576060996308182216648582814078449547817389707372416775459050518342952546400180127298930784968739003139721152897433124900212740944571615284778797460046289325024990300088075916831114092405861610473481598935084027371506564749315349977738331157661912204981676746264201241252844071756658827198586339323294817409561908723716549428994923780985049243365730723393931055816411942964827576625232272177364878135405617257075055697736221697011479651554020900586733274074257221023868958854141452182312081943810044019967801329400963112719903945550145767107171597771520058425133845356189944267815252921791775048948893220388339428962496703645404355000122346654113101036078792718219455563511826892463911704983358448033536790766081452264879285566206949494940088174951865655644842995174528880857676606665594055020861112443233971290815917584570785836576432011382808148793549471532909691000223467463380150718657816268895936515725187265241964732341676219064062516659108166641804267124802250319246429022138207270695925559783923797094800970313611932008832278436337899271135965572705639518760157097821926176965889758681844043056409201979608108886340792011395582424191707369009888854451326029328769923420035665352729512635964557750982186941425563713506652703168645144333325794021594449162634846004052860270442188305062760758483508903446557188440839255578972457419207666997009094563802205859537829220401093688962841183286945167232402774313360300591466728827871297911841050637491643855590583404410698810953358157531924975307883811691462537412569721415112970780501732795601565414201120428697911751141926662938042873938851164477797900006078625332224400575965454422378930734935171972750213577407500010216068547575970835836089082048578459803812665213076686786154673787024858845414892862296770813401339087842897052482809308737867661058380535681225892100784551629154828351656038813398659947896049472615251595453949343676540148963514074837513126809232134863229184524445795646450399414303849160414989233959095722613033789442028052570087595273501870372518368132048544946556983323401546004333811710360422788794054972834099400882083748614585385156701894474668713356656141483245151602445826874750242376128017275530796807472261189979256350560198333767571256552895626535839823923521388241772291310265531061603320316785313052977355066034484893948129631689496991895739620861433523266557558924421990036084500266307046798941601652469394251402596056216907456291927706408020119198138156171766766599361118680129483697240677801098668349583654461663988855397538705727778061774846334953941144939015191476535920548786252616729115303988427355570658640260764206335788730403831042949414819031177000146907584246097963546843141132531398625811829886307281696780520609921201282415641171403741906942156043450321124868054589519590901193833561411839339844272270731500904093391138112425871829088587629477985680488602313917024738197478365972952416521301761862589797648484676545622290394592732574837828914193993914490967650418593801677003970994801842248338444662376282620660152741395632184459117231410402052742667848717453028136938686417005813125140461282920402884212733875665732148608221260853824488408139354150603921285544908629788747230384777639445128300826720528999056928879712939788870913707809521431043486823869198736633419896553159392786062444148969319685973934216650109208177778785326524290566010080741926716109784124426422858285799394445607160233657873084232738031092648135629276601320510353329970202850965242762918504345744735529126915815943741146603753348354144708889297035171287785897007287693163227382432283746031781643386509602430171344700690846444558695456487370153325656326670748684561217422362319678390234095512629409557375754481127012835513630931529322494434177464836181901527625180084896589902613733874657046245491053081142443740342082327761046536886628261455577962278807531039045863831515040107425168142940948971753776432756661094067062284056944913430863611317098414262576652107732739791394716236551763328037670032851546578605439101198989680148269971970664883779784797661996333831336927185967578145136239080209483382946769263909236752535159225151551974025678436265067328350091398805510246913240448529198642533429529505401206970073679167853799707041818794711525250767657048660819249207228769911330317246658014216810627481129506305765522920323345276335983973545054599667012594594032021308682312158873654973729044689581678843810253202491832580032062019632143177431964881393344280673132161680053533622905329047993320258775773795109945409063799673042729486636841299627561898367964281711494319796291782059831013626065556512646718637477510039576744457347411426362264093696242019388677070950940278221731919450158329748212464963411253714102713266295974296900856321695683552135478125170509009513600518221803757666000881600776671967760180052391654906056707452267759610706340603430175839850799753991867112563092438258358105128453469203359423019413189631705170784014762116219573306339791015536706171445743263483272778639485062396763667364338224229036648468559526786747601865830425728783988832480505657880718483073390070494367923526270741896687684580887331624123279081916847331697994413130148571973866237447391968880224664410647229936593471351162572312704371902368132713363084977605669828006103008707646285206336766260818701496043317933031232056792510004485932058245630426729976822144424381644373344715043144921456601487409170084122757727033229944043991020034564873565905363224857006272661145832602963894190614278375601166434717106160193631961837171829368595483720900201930591337256552586057857974367018282358015955566021015946682267498125718821614557319391454219443971469787091524368726637547247222189571587505781082073047504263649275818094798090636731736901656933368307935632120449647981306447832485307302500864144937773712585758312633875970724606725092972384467297272856439077031656794278004409383975566272934866123400811164576050640192792005323777346229958964457469762544593443216506173835327534023181868010482835143758923224713078954205590430750905649175008193709387579247933838930617575810452915002047126039677424015043769623333377753355454614817532027961348338627740719565782354485692034707488599247205282613526801117317878780746802504707814670162980039910734033599804544591687593395289392480026792935344313231362541996947622029456662722233726601918305705263082599684788761435640084387907449563259225974473136726945569819418567899459296691570455911440416592884005338373157231454483226169751060607140247668951288737022926774705516673199803666806299993329182697268113088052249576574657517854275769017108971146197517595803443520770501115120780845359306326373445683266519614082457592130954319034901023823169178391232551482316100875156142133396029708780137866154575689828372854512090394848276844415207442678923902333958138788956804385012135520567963407842929948370661735775831385244446917785675536619411763669917905690498443898925948237191339688951578115717176752308650891812912009559089342994460860839810382856183409910022107723370315709473380248030901230733593907965257244907970511276260012247061837661492573848326921775555776091475463683811694031559104471224908065859132038874008870161942530541167333965737260968234346165943609024707756736016554918677221273423877219377350803419123454458329852249027843557523674277973023350885340980247418208510299881306181449446797610813352711513272052615800970473904410353646200084671736381612295808134262224339711982614604391775581542795381581023035032124149600005511279894747433401515290680983285575623444344032170921411021371860390541641757009248094078689815612703839405863089285077622084905041151450324636046599141826103255571675036909984363112941931465771577133178956011868481081392757623416877795441103405785452869316014144918366728677894469931596555712794260583111524933903340921315312631095936152396673647043460657899958652136794241362027218159594594191644410778267470902510252781335295122157038087034857907459579294507431227862308166195745688300120495178582366205561661022112303387878211367522867567478883754814403730062258583087396209987024025974354053917445425700706591849783871784149235607809774418653242462570207325392877551230288115717997192448384379380825848741347482376911685145722475366712410264229088351702894297129185463700899844742930148218097148030033215587334281347924031380102368283883492535392618991008057709647591753042272625345274900329388945848589059539398136023113100911970511207412196423203578861899519494286980226812612541145152736244638128490203646931225353843146198353182464827599399317946025097661501316600421829406335001322356468211993604499049907116556594056662248854345198070151149266010256900039577983413645805973034804830769372264109506203677786766252625433953297448281115549878738184686574034643622902043415621201802568236564606387666308429606697711535302339096321538692491992715401411055453850612576147260070057712568711736176304364288702094049483635079889222112730687114072809545469869713654945923285644485128742966674676953081355408667539164029945622165719791538835585346903736403610636761821762980341200553429267543984097890606306488684865488963752264770382633439892565283459187342235814516465802873101758434003504947421526021445630819275724260454812830719257211821279220144791588357840905152903314272958689205459394909223008952865589050741966788578805616520117381120573317751215997849407439198982355120772648732225039237440084445551247251408682540651650103349784465818482603674494672203002393225464888920022452300303919669729676503082444553545915920148695238816458036734463712887735473677008228564404837512290118837694221995372064572517557722872413328495080992069684881611364401143247974538470094610929978506227702275053727777752157782955718800003399070441846507149431733888341711814804598981308194709549189513429928016968753799296810131573885058310451396180697807402849188502408933933504552173292895430949051760727976280038946904296314455859267019206434074916520873202327448509254516767456974517937002706962817854409793968378908986070411467675935897496581000227683607224665513951460976918358622917710979628392090651830810784822968113468692680682635397001942127248698048041622407621442136659798181203755305008429165476621604418783419085762163895679885386055610689106533237048012010417099416428118791195718164553448744098963294534837830627288370687839649894719444184966301711175468750474346216494093188346635173530101317191176841294703358644684709272670253107562391637939315987397831873957462467144823506992117744704077132525523175836949988703346964380024811173921788551667765659940531119807458195110430715953781921807063820371185007719659700507515277850271572790561154311025529284624197910935861003932606718608602634736678920209852406758375262444340720210005126953238844563095651215466300320733818543883196703437644653071550756444140517873915250526169583645786700966070587857908522034408402209994399808116443969916531233173467659213215796795280030420456390738743642774926118430777247581058554044892166964723519607747313005000047591026118867248779812839490763115936747182238137521004195373830911986093060235652437981973385811970279711493481573592485486864676174507733776598500574643821628709225950504487444485059640353362209233996546703992613045250908512276896148890321841844569174391108392872571322888302454321417130991547105811839155315592931079711852818592925360072847813175775174399809489497081690033246184765064621006065641128049918954840896816735739429298727724566106286607236796868380810976252480831299228404405310606964460986128986750202954888119042168067394085443761208804458601315854525051309115285710961321632574796462480930535622125069649752294556221830764289981040434967766441957423564097967623312832294965108143959815715732413429230072236326671923063206050300518284536216978843858408897974670266112762630479167881389754973496064570925721687634132282217090764884668332880458185096271808717923754264664593772004604432513109718877389067406125187578520686453704598945164103445598967496912180556416019041241209048308598842213235353580313831634748912763939860829421550945539972924869733655660626521879650300972969095803610627989598536506898674008366028639115478260284161639464542141145362830505062062853067184496787563288086064890456979780983829587332341544941277218383168357044545951683864866099845444978897121135319400255528927436100203024462573721722337949105480014315388832727484515792390571064226242469617169268452188222257399276959388621745512647826173807074226141930728261762857757024233462784266373467310099160867245065663925676776140096261374495428655595324108817812851979458983590491888430573232351577880901664127578797939082085492105647842950475273479195496122474286334032453328355722000307811086205308874117735951839803993033231838936447989002055345751629821764374457191602938816401657291369652287437508629905453273388840089676467153061243094482174368159641925872163805451591812475997149550382239338387511514014188274961580328577399345489599965171146776307629956176888828059156239491321081874878838900631522195980731250544331107523806811580987012445042982871906059967775201473671593923607485530690333943609109679507366155300221748121524364045591928757773163754440879101372598646915596387167475751011024817959203694563009405418314541885877015186907454113244145911035878340751455789010860343625069287021736249929985312250373812016653163791623727072416367916870678460522688800441197188332879226032744238005699950152088664975055835239801447577577500002663017585863643808808845623942711107753012313723699139438060264515690691125676702608232512738702992072212147134592070278440531845959395101227823366091300874881162749154048348699177311092430626200365326678597133449035842182325796981123216997299362349502410094416253372062465877736176774904504198615713500242275497995583469898776527047567301796466131366590086574188390113377175174474704691388283380432675180163101445183599745280859416899648613354573417447955614143955760137908440850738919506069452603990999446011214512624671310038041461257701491822771173615748372651024102113078438464269872029532858265372022949942467558918597031936731821457135395635812376548906363890066369622764009808955503396964337673018870967238824654928807056046055023779658099004297553298691540249076983073379492262259603022577534151049937924967784312093725489932494521111761354334926042478280460309755655880077361686719898478262608325720831025963542872966344546734809762597386527507050403554877998027612281655000439921151395844127460899294177924175817618520828019993437164979060409312821410757404105747631320254931460435361977206786438670915705465660333691923860001372966529636309417683245092160430522808727604941375101896882532479341434066877143561316880897434302647028517716710382664630190285301572698070748043916293215829480364610292047243314894098072679122451457878309206267846843867394647625570971842341347768156340408656322295140162588596065793935902399137023970452123756946589727171763371201797209696449770431754820839057146710629295502579451998599501557978194577396147337363331016352667005148827722295789330021794120223303024522508819191211998727171841421038693042707375023335577578508868678905725104439073371536859648883290659620237046137353033266714192198980619637449651649351117767076798670237155032399327789181596297967640192902552072008737108564628728859092956480338114852005292538807981153536266784594035838512249407021756212546010371335843591437135789408186139839798773698203940611659390932640789997282466833547495295539086736757528880085629252689763704389311907317856984466129766749436462429428996952106796980876206520248321949438676529224823933989955642778910032849331708008719219556336658711105685958883691908075471019184048001749172767654638925385406205899016245706944083324401342887133473788023796983968312313395480508447235287487101643723240105051718278938533019990997815294600550254384673914946530653438534749649140698415714233303976511175904372174978234304549509868669007384896278234506984577885670298649275776092960963890646897224190042265757838078303201424634504958797551606645902821382973875784019288512809568027896744678572787319261135480430054445669327882766773344702595970840064387119770365969899820327411077757746624233714912627632304674898360339913002009113195307874657068773172976756456106951305842110041337744813900385546285818218386664058021361610508046106725419389231671730680300164216754926123581126834421087931217155885667453154106578714213050511765685688969527230228544627116139579134604989101602038318926462571183117858361428437349693444749914323410820074761270023871068977383836599317615221886282493673266017801558962158341381195309059528847462514229026425684228581739652806869550845284885225888482551779781802616134285158900893687848462504173806456634976630848051334120061688520704291163370307395189063446483087026886460512349993801624119384403447085961060157597818356534311142854375678417929403139107680763436460097277103782556411779327555575731752527786233868335352634807781980798303263343924487868464379275003103212065208914397268056337136591623237699873915714017545302654264275108187941089638561243334422341584752496414288157567819703480869193845834267007497978562199751834091218047895773172461547594558173523337913774237156885729215164539694790822943354258483924988078025738619434709278246797331559260253323179726805719983369430438049330796475411534464583214473485560249735466430400398323888272112243872073475567944403983503662880232628490286153284752256534588422570477301733997129888987304095938371095781347561173896432142227436765004407594740916717912139853842604196547800527189542013710698566468720427731788674022706409065126915052001987757970569575256389229825126859515854184130944305038330466182740214310377482462970819690575673005814746770396458065432413680403525495831179441058778737454006301918318588059283875805475293246956323563060174358277008787678021734737934599290745741598197459679492216673535847438431948164284902602287467204404662102134451588919853332350191695629617342824809228470148394344780100119531760390848514237011089308229869172778570763411135050924899246251470830771169022656471362588689092215159420846815923300548711996601889196018830774641912527804034828893004493104677672988491400294521311957379039387100477469063873573365033516673365622347198728218777325811887340092266222621489950982121010119877684475132154653214049360344580471069470693663752653303246033040892371813468105054355433377819110967495176678403299558125391148954920649513593559955962588540987853714735711164327068614122907351211048614555155749014109399252343861720623697108354656085849592542507922508361697330078457478791509075956137785518948506902650111606455363300358118473020347168808690652380323979621478375710029183540973397284224958696136532518163437509028722488300201157988931872619684744193420707486865865687262997468558706010012342972807248083371822293069510072009093882862359646454403220275923391450797331409637911648167180166959440244005483795220789031166553052605061912513973230018265927500096307401477849291226129536551567496066475445664349471232522476268232124777395120761079798732053714387260237896532763839709429176067927794154735699434779432667939274577182076292190522633283692182378569911738382925256963946729448857625859936140954687833031331605184054419848847250840728533235933558835811002397281203175283350392593338886790414188464860422468568785519047067191582310495437114740229507288671138610872136990466633289144111412394865835661994445610568223066240890790173665049603380813996890963747367180353977902054138160554959559496937398121204019493133222342678118829903576145178113488441422576697286586299238850422263131212600545869085176320701443397308075248759779698767294621301180521361978707865311903410954646930578886825416176388817371558179034227817679891613713205909817262039337770700788540722242998013023571490817597408520552538213031583796801244012958314660253357082091385467312060443251493189455252084137594943305939063504221671312091593505764131323073016691137757168722876675803503250480002411888984832398730207606013909467162750972493164477739133488087713706072052907731332720338002436575011357584484019540829514935958726751824215976141745803595700650698106169444092556263992311840193926688327955267385858538471750317472840737476455266220821162559501484343244437401296253437172570413184962944611361556172958861671807215468125248650572599411224428007825327988491759853238182162536640979321484561387771522894203660910368474528709970538651617625426167608785844523161088065858524975237457744303339307769626008606256376595150545659456555853360929481905277622899050303922565122059693820423977483253709297612297305243202949006011634725295882634868857872327689208595965247746189220473499604249420180470035497081527551326208701964534578901259191882465687353775133157309552159730784972783208443767949495213700370064298655312942274079028462220255825459352736260055486892828344737441596421750624583627307209415151440798770122940170165869083240528807067227142202442507700174838849671342618126123478831101951308054724654859846793338487804329397109769102482860503899411072415192559549416955266292722637207019276936200274737606271171891707945717068691432192919620438392449690265382142167304118030828540136866897761117252151086678382959317623247165429697000211329678332446632570766912950424037985514941111642069483351554658558212734919654294310251308805860017006016894630284674399366376970414155605648088407300891080405938704474837968587086988381321946972537147841800478134229967598805385665078370239620778632018662483480734497571535698923177165742650086656804290545275898638282109963641595832458336910880058759227894527743247636773095473028584306279090181976604114772983150306670089358139282521816118327734471182680305730818733837355417128134232713170441719686922600191294750616321893923691238303982228402078920297186713586274742891136275092718993185726048940768257779533480113468386815708053594657275968158207645724711352082781936998817191862685319433237254947758439421531594301439338955919927323973575070213326884175150672162632787472262536828272631816322038713777502103595513503486153020467415556144044809868030300780754881550739078158112859256496323556161505478273155320572449939553835938358854699584982601097755365161083419602055933230832990426643386024027282775023236934272794714149686981671880514473436493569064650550609190655669616794034475385492919017345003682903875611858208168809753843904835103283212947922272139264538040316568705205306886318480094719790877401124232980220844258860189662875808445386784133572389190163944830487217924183893164853508236941575312071416593689476528646343923302992248994241473149306775014475252636519323642312854783069725977322587882754233273037349370537337668973928173163224491216944175275079059736966377993554974710041757764874825953437935647822292225825547555907582080059174842444017454261190270114895145938625550607562244104205117151780469896563776181474680393164195002017113767846199708018809562724580989423095610856745528442711478098429157902674972420768039887512440914997206378883410362804738797495181849154470949811655636479981232017684222916149908575020966393573966301915879627542797627832990290848935501473690092529163621458844250723633254928601570641235977940061977488717046309248066868240390178620910515080755892148149943535392192551402230944245888068177574646993700540629755488468922495963799141168130848156269608034058407306257641398170558139315111457644341128974616169556835057316962163335182046693192091138038396508742430985018371549822577675810236739156525431377233815806769499394385117482997377545304784396055973427310045907051503376753694108825847212651611330913546961369334238305112838138396021898353991777350896417447966554376952893177121335310923370350265217086914570046618176859084156719188064361148061192030491059373871896698383867059283326386768247988923287568224161031277207653492166544221234142632956869655024312234448282561949619358640811697041529878275181381051446368685511582193406411053032327508086913230576321275388538336534807658209619171279793235567611135030882606544192712791136303791694706152766613966793842111300744729671760805507292534571555244992888493172445944328895280391196136648774651173078321381069110590285196536369438061043156080180283616148339960366786024740286082474341983994632905297718028288549002640550994636963062454989376298281847525574548601144788284103879983853779975155545430696884451096422675134359784239116803081051844290164484415796286176217809443450577251260116354610503794292391715851973646649638217710558902613259811011640900414819667305900068141985179789234232467294660001958022365912818104344938700917853986782262044613143290944203795327943888058859301564566801461380234211409979140301925512196927420066648988483271828354282676668274780185749908550288291065599510369842878002431629274866368895810398674875413303223471414586604938522287305605897346273490124169745836488034579427736651958178992857199863420295854552256301250117689421565666881986238316063910878584932226727659472298018214605288502059239482974875227879904201939927211823336878199112067196809701698755394696154724473713702648780948503796156781723933957202568902112412542319653928434149909291160448624475302695999543226355608163134090338870521073588244562792484730785461126461259784587326629613383877138443551215867545707933555042914337375025014076068020282645075729094212025251298696606208914348593985188502387419607678288352100722982680348503314047904763133175033574898902824672525297485855726013149808354704041671980351629599967464656083976182712839200015910911110752373424892357119126800456385811137898240000388976010287506138186612236532574179476040160529111848338136378256379142763837879452151989975853612424587894277218917097563450838697745814853526959564938060738453140900507350712968957385883236779521105630946599415456479340226701680949361850378106667952464934087174026426577855312160150369762840384502811710369604750622612526225895656916904898094297651300189468349514912761570707938882424899141913321263612159678455303463899487779496193810022046602228266854086375359982545433748990966038327212126655527127903570892000588426276325878848480218167027638757495911873810879067176898374418501232112888878457911907158641434536594299450803667115116162781894380998624553054367202945256200227244635094214735369379493870075308488219419151075735463687058382632034001501132044504936045342515940565582035890930614830921134489416791188651336497205278369546450383208434192576133978767060480152324706608787763187518229141081733900239085591908174166168159462997992089005538213407815647711183595180168460647012419568465884259285119102616940512423578726911652567184954243397006857125408505227155100399398841233859673294601732050246709392975499698677619513986978593758816832906044151879806569362640807566223442630700741175921631448876974436391938882994648085480849991152096447224433308506363886179558863460123141723186412491230900875218167599659331093763281843308594428283177912061471448376635535226436527336009121073673056961468388264515284937646750975498818167469732578464832112605771042893376897633728714354795196176673257444555494324312722290482401466576333883574593896331870364171408940739882177602190001652125493793610843328800932588540188909368479807098073506361176165693909803421132086894109997472871082062267688905953994295272011538648228681297370562843029245004859631570719523581752913805313395948101256837857007657180181972004270841697321189432523580967370000603386939367731626192842239228780812143371327021463062891655074329424378559616133172350656591805505559156577408835370398736735007691621453275603621981409012678937778221698693264221762462419126964610540211961452777458846704051650941599876000336380971787563596249898818159330090590813539546922703246313574503319976035299759290306238182529727203160044731532441097485265601044753361102714953012182015573536371813820074778556852930102903378563365124917880568006589439467499926616016451170102668266445376531039512267347884304047231233324300950036871744229080975942586013304071147599830202243923763972955620482377600710696398163285751559373145095186136803944846031327621000765074789685666887482673236643145040134896501589444626676892419627479877327060230218759419931221061912911024430818907560377085959631941128033865164102444155817750569371519959321453513731047320423545564322833961738601672967200086981676349610181428982487627624932282845832586567694472437603523026892450320024928870036605574786343630054997255719292560029084993425251340870927444046437214395850311414708900074480390091984556325237937338958629746295821835645796890935802338462227841022632503039447845961891375581947220544264516468068162633792891111050414020075793607240690508920564525011086669428634802845194485445269024134589113340212955178378276841187808655027178394746899859559197824933284725858559890646751298056220813253054489241342127725578878064479845454821028072654721055164718663337597978674814242958272976957947805458153023549200806722405304890171722772642445563420105683744336774206051989877688710892754729674128075605540199723025540199478896675068166918791976924182270176628414886823447744549338857284321578802441225614190310788087120232584051327651280837136495333934020573475543580867986616979330115266625136365571060398515602401754194126602383925277802780839177433564940708371074790991371924717397265537986142659751399822272583636831883838452193252238229437075731688511127498541092591395990676868902212570242912753687373743819313070036242031313066726213091358549406442578862878998422066335157560734446839883264904532314749283680859629809737050066265589873195914177060480055039395600265046036364793914654358394753923975136824381872599217506820390495461348368469884001388682675229283495163649893920487710969640484467527832251988102245731012820993479846348226723485096146708051461742869220588155698850486020006661958905472698478159140342069418504316963221884994341847068510288414707177326795921962196999516452890142222694950403988646519408033524908846811947485988812577953755787448439687863539908504883840172906062645408163276850017621901058597210925327717816784328661607047385376494730101631917753553102131779954334536189016208473483003136359675398711236636348254852473910577425198681613088164861488420600847735834065773723574582234434306001958244316095639375637246763998250217745898573373452381495145215357973550620860807867098355059852309899546912301651470817719125608976516863675974401548428921166552333701980399983987363080150612802802971390488797063853962667471281061999710962709255190066674883570396958744323253049759314112148535889472039649424429137692012705160902485452498255779327870328350077916917801162355216714004752986883754546405180701595012088141661563082439868805687187680983626985752932792084702297431681346745796213679263615410667820787688736639319355889130036110439281083756123625318047502422554037278710642287707814240064245030647365471274831345360530199500561508085041845737986935848341820153306488129250133884070901232730754518124539031896812226995166045201936097097047329702495574978899728822647268993493872556083025201270245347168515777112283835487375148647833389631487856403959424634004427400890981266895658708368426992326685792431377046138249942498724129510779304374461628092073482034414373727749677225636035594059408371866671074587100520369365052327278675804864676987127370019437364729211369339948498082987145049161863726707226557566185119810302944569975923567475206938658191509450162253209846540177846108904329554937254848009756744755359081989016218055091833948489762718971020508942733699374144417514731151211974585055098520234024647946050918207927518131554196130711738259167301380750534090697439922828954074079163152157766761525916184774208695722959129958311296107895821684963097257143588054054470763682799131595583591562722273822713806829265725757832121573000020521456692866465099204633227838323368787342676264548729015372623313265113468431385516957793430924240208263346398846072888437460389553560927707192797888691894687005973067406351028550036795886829089955762849058718770978951135161029636241097827805657957621565281938430909961187482909501985207124390115390614965706326786535574201568127431185477526902757758452541189430745100871268887533799353052912796645026002292655327036148515437891590027829478257043282897849946791588288394118981744491013869185925271461536863354291874755087217946480017739925142144945317124100067221796588948079661328128858376930641916814378752176171025771466845739868024969493331148310648253006760528595052364899338571427851548128786988581287831808709735810000285551369368918300815967520662234220743980030017573244627466371401335917446418333114299424997289306432138778420725472105765423761859785382705722068846209041743719481093949202525899303775636311027161130945669380662398533071316173485789560242758594394767127807274432555730922144490707389696784732967241738287494222203407500135701901603973135526958940267410881280266709762998099508788100496573103755847056013419960865252072145769289084236402216194336608555129501308977925042999975278471880619507541526554351353403975974956827637244517139280829445344116035150496344936975874725566855057950677127486992388041727359576623542139464494817182806938757394632951103028248749095219606511513064832492412634737011416466596487416079213185476275691459367233368984893204906987403143725968761096915118185688311855536220919128439876592143730817726118710836375214086389936872992176329745465960052029612361048048019456991743058783722291149797494646858148420302070199397424282102359640365791562119858595907637261393483642937125888616218340011384060184408559829621461665559294827030666064961482368510884873007292702064581363243170234305571396301815831183819593672833756266734261084321587795112256818057634713637513277414817774244831234251654530542690880875605629570602592999714738351518257021875399983050720388128480654402167160807573747472330634859886828057567188207973869743618419377618863434741235140822829572685829016461499608230791548644218770720354919231845070109676214354210079400884493410149089132781578547097970368486327904667344803855268505945008867949214407595793964999579258862083417172345039009874621041058449361851434800178699981274896360040247377179176840743746443584758138413134334078859081559810127093966778505695944238743813819025852044427089634282064119544215971189859602558268401945305208588426053200276750960252007609509758814790943627366111177065628829229007924415376296174299247404874638867092607479588527270188768882675271699333079052283369877188851103830109015479113622860953044419291586992892295911216601969392839169959333046659635254825443633461724002516523866194312325863160689861010911981140221561929165521605830567145366250188207703296652421512949805118789091795526558724641465061057621474928947349187829264914069308988971937679855182789872343507217996684733383330207649804033325750130944360743850159988417611850050943095094252593521956439170249827888638294751151631737096551359700179344559329053732059782972609616512063273928226331571167509001245112971038497760219915167253384932689406866169775501068376131315380685565905523726171891989650634474393405192486344408241956431014304276910535091981188676713525032548853628298067150684361180029197313462722986913958398283862052811364403661858459583596846793636143382185334504702524466221455954346832606171252351518219598658824233928618413017654365739213408036448200900889624339244456744256499492725681174373914405147392866674737994841112513024383152776886375692323183382607779876411866508672527056700557067109968770500391933506257073677550593653264286269372803543657776670258269129960487727006439672825424469596919393665201455633801044115144786843953680602730169398439086235040357107393906570482066746797998101467907712444507811399728195416967581872925050231097844228340929087941406932124494182940130005955671545995153179973297972522899108075142788542790551298492590882903541112261602077212645937775413270344807628793460672424110264194863275545787200915037274077876361981014313558492095569853820564178385723814044224931381145081128355627752739105211702362017092535572527294702687118331391393656581776835236087511154532477580825028469023642775064245759229770197497624113036069132271004029141713192939193920443019264389787558014033126341579143610335627147833995801266525876576083808255999504623158013263878447714712845634598772090227699753849328659928890453239335287308415538600633462287428972697037571943863663364407997074268936011550996033328671697558569352924557831511599967386211844832106612880470358152163410377498573068608324006900280924082174965819920156552200083286399916103061433100426545807871709771088864619407592074401469945234451337364336735212583787678822554923301821087976898093891894537796814962661068721614035707077707541841035671224953312682163172649330313346768538188390494064234257708591599190015334788522135223120112195922840736884420692563800194730445517004407342237010825891617617129011322818884872241852928513722078633116894093351732896099335312225878828276932956772774282736688941740526302135854961044483330704872995623358449389692915983605368483414938602146167135248062303704467338370872440900286130753569733961041835812133880016991962688406604968737578846646289537957697085939182953624288414592077422296397955237584441543980760604805390033416163687873339562525143742018752258120447543073763653789140653608689255365949055896129005128611480976068856810479652134555259134631302108864055903405444479218553166423607042800287100277662117838318384610353145105641837083557556466004494043321055941147297131134390826683280347858733903554307257944018652844735283729732470224882677196446840579877093163307712267946561283236587291846188644496982263977139667069325972147200281343047108235770055138973791616928254139914538804412567345248127685136339105494245867128297083764864149475936700335107910046384233285070544050076568070664841753613021052047663572094577163549239950128882603062615359270934974721394344084163600907675861135830113980353095370289976027185836504257672091554527577344425297237829595885156753149714907185559121315810569755249603827900184697924688954852950170157949353600886037892303624074453465626747465148931966460729434347536047397627811081759486242828912876580997510186707685377523708640783883142230156394849770779463621312204250309160164725433950273848135963492103544202162387070871872193791255396661800538306900941481674110247990032462804520976408564797165569844532606057199906471351479406758601622739573382946376143021359829436212610916636935787593508707819714638748496092794988698046091169478902148710582316650540433104102948428362488057524245927517516317562260153841000295911128731437429377527142152201407866159157555373460196953268646686100806046143109500202900931265513820695885932819260231155976578742931596909557560076922518347573141825784056475892465785818009166868062493290508048889059412272979430763809363593476432871488614758979406864808601770636260096894030226008391455078036114073978446633793674136575932238690348648383806291742261520110605566967604419069313775842578336962978522047659009738784299976128934982422185638002228010906884262305599820272860286806313104367285404305417974985298656062146329652005298242457559338756272694388389025593210015527359197269135018714614136152557225297312108194122280586959521226196271734628811837436015594913912654899426521981373406639274492060097460396325228453643108153542572989225988331269269304179340324605648844050533958663853446388213658348120404985482993783570568332314081839038609553399539777061261790551416987809220537214671722601714475206095409473741903578373722694270160002862803629615506846690451656718237927060186548174753342408034565125969637219195686911380167778590319968703226536121739193101311771274108238954943020896465900925190102989634583596441259039412240252368141645349722121628027053237042870832756820174981713355016263055075349243475751326028190375987664410201652741380361233008410685240544644348490074359443554320446207633694918610361178029552271129567173874754921767462883921084239478195277361042444788972873951041781142485535850887052305651802963890566269613576288653568530951932990930799347903247892582362892135259317285454763222176432272155479312042648325149518571250837062080476501061411830037691277817333262241769310188510846374874441956189760253435657085192027230558681692539911705396482068836519650082191755446546002932887882520322531551587889416009550132975329774862028459397054404918759530301678716375817900003788834622019275254719438550258859319797865787102088680606906389984889377239198220888885815923747481339225732094163670299865910961674071897277058801869197233463730882451411978002827807835428416272140523822980382996379007640755205655281682873040114166023238379860565745262024192130649422695958703727224590310842234032181910725809587787544059141711453135821590742909615634955210547398454994890911184577667044508102485755319229667068557063452146816259498416374908543664543321365846723444306521395229946276123934070559428784586223172620161271942457106839450359908465628217303096019884768576390786665131104027293776904752754068218055356509950713249625679753915000774812643288821682437732781836843784435388861303385244243325419109642609261579560285361643923026645733559581854699078847910812632059670376692177105854323353226970914777118018557859378331365389630092448182795756615922720293303855302094801440554132253860217943286013751341301523345149121702203855235369546578213793771421092444156845689280138590442387060576308277177603099905177409634621166847823547683823777818144618612150118945596258591336045970596385827313307757343576369371041773890219068502254261412368480823360012714237570000384524220419504853249653571848843635055190823131257863052880193207683800940968807140393783348507449296753509858635901743818157920708378758674184705113191705535176787693180039455637092269068169437112154017242785199420633773539144826791952197080267541536692716864210902197342341788347962371951175974594945669885423394115752758589540350940479711063716004295406396702932189836556560874123885216744802102637181834672246007316077695772967030118679752532266764909736418462013359643079397976090095015385316636234792813484757232758297516491590203696681895460521398141429375968806058093503927954156106840644713976942516547772485676168890667982843497544345732687808769923593287111059874664891603895126404730561391029389269961496930755841090638296363723038436712637381197670551565356769747509320187410959218048028758009607002524267174242349851542703126737676571504244190043026227704436849466051757343634866528449890326327765951840735295116738551107583187119859416016448724755984666279368410234669868716855889331687168657876795935766178467493065386977238719224584854894430372469336546273115257376760577151189072078383341178585472348395794352082669171044886002685035158785297936746843309764125597127558342790509002225529043448686144055280011948012728879185199200758713005589644922927730505851732121309111064806479731035307743979787840396391723336904869101156003157229773003672908178042011448289661241001646784293487069132423435452033497563863563361957057101706235205803947580990413127711467556738367766113114973478395457466186914705018436287668724561763712292796093565197864518854904272198022459856465928378706258523497644081608952981914043265011541381205165897114555857383623695110051941998573180656383588802742026757656218580671009064618697587755625376120574054093978733245841722750542185684811273379121227939337153266511154833768968686293200514934800806585364362447921000996116348837745036948930588386084111922899899605457667556833619615221957479842403375523563691258311979587640218678679848763603320500019528522049870610131650409887056202005446440299100578104767347272230731281127962104942562277284528916925674263504995127430008001404960488030149343983973305409781222418448130241976332660061254634610556263179638436074186250568558721392415912909857624224979292167330999104406611243010409698028791358368132977626406259265996651247557473067278121808042687679051474818476666451685073643436536893638424703807355201218537305224411072457636226159790922109188353432235004106772857277409076180386477671902428335899199948717098434324963116381739342386952376886433124508075736180697161624611841876406020600812464475615103085749714869410989861536834338107430174128725546817633586422530733061960075606408176380552722695030496619320104254140546747490155356379018799211214385745362218160669401471758038224721866697509446313262968901974121148366082495842209963391919463900839729750372306740289517454724700945007932197245761776676522654242496353960342247251971856791269801702969656311016039729622502220419781315452029217678590543897803397150394744741001638634613567019859054451619661045991106142589887447007729338586069211409185942483949257940173013628113654852132955857590440015086514006379997273780518819163194953819330745952280488547200084589105708012734971512369018219426500600139302860690344183279577980816433950416324927265523018443456287142388382986111170520937160186461294488310674031764924173011792228184931108401073747461703113062250368529345703794180011366867074716028342489364609971765550353601210976632701367632573907560773759055545515909704218837621626121944775681169232179200803337032236168482038409948927389762600208425190354426465274072265082472784755858380127783386774768086646735526211888460035599397004892072958946658992253599090130462218859406716741889764144017224387058169082827977120261198142472628944161990623341491917579888688433455278641125765527408631831894266272606853562345585785065238332651255876560504676701731259937863346239807286037905005936978022495271450345803939788770779115987519780093645967683304517083598744250190263096501720233758398918712963194969491917462869147319914141716963073850991524106907834194868216720109425874954044265972611973402817032714483555553255957488044329726454931144741370327802110562959540664530196177820471860231669296136279101037616557285777434430060260946952591401709569504831962730894362206104327144169589589211486442059050219539196044450694313385826682795938980277280388975214916926736105367237104526110920040762069780839516116949373113396918118449413888416379775581336745518246493638231131215884809648141115215948483315013289687407425148197353378045709321107495376193519881746637702708652786884843685130917345594432175828077428882066456163237094399447874659853243762316636534314067295621875283759121270298355878500274330018652240042429538582618304017253868967570173148505037117381201398478195382150471853087280178780029359689033871905999101186999872081710464438514010452416198269898022396408188182372098436831943917160976203322680656147972944809694087602237743007495646319177997012513919055562822473128356481775110622531949132957543507389717339455702409327443508584085633415529912926598310069210175781139711852618687445814706344061823062024203654242506594745641074287963602159321457208521012875827495395297969530098437546349566046415727881262236936542762796625869878824209898733168992692502333064436794558903460653481666883467525432867550554271345226907601560210377634382805426140943066649668450692736164042945849079304095628411680468114704422220905960659759225191321900385342343687340162964822908839733204569087740462707733557104232313776324246033502305160496898933408538491280233909284577069207101693198662399121106754714832839865051682767718721052076573532653177469877153592311522359462934266838660960336726668060036837659190938424111208808223209262099580683169208115128948250747640172127221661281300238386754639045373268404427730135153617494046134458979707521194681265040903898620154090999573906828053689246630244143906149304716458079063979058037262387989361346134233968227543794242797114791544667777297618864453935296198854380244809853912938825771273793008046688261847283086622684566256916460228884364757586271315443281003479149242038864825425464744038789104394613201454778722332232051850847229313319033096669370868996264186495544826381545781072010256543343258311099298682411384970185414701905606707421057462725696019898203058310259376116573903341377230656928148681947403193145107523218536457743644145955971381114095747345973688672970742506468989948040891944137828569708115071208791430207476890899011589040907666131049292355476096525867632060260094455402263773217977884702132568112320385240736844818753113059427068309697852073344717151469820197428579309635015959671437367455550223771425573434461933053435384611945033752658020237920006314301747035557559468731036271909253547589158009180405185780185533961002764908658265439926538409736162473247313072766406857194022206290410320184766834641009226856546281329139224101959859339335219149064659217401612960164031070745118563439360679559114180425159998645211548286274570321746747496623400663711797920242776036858689022681739116859769071210159422096317079652950672187889679971162633852570996236744552757029231017108301875117071711977516009937603745815040974849565356696183908082482357510946816781018233351869859041938965539355304652383271958475416712404566215908646202715708240574966042342088977171719131952022260824452789234282197417974402889424984957262905472529672908775329240203350642119367132265999931248572261589140774183476678867021528528957215082730758798648584870303505966699292966794961879815859028341278499239724592128442230563794116677485659410566856357850666297782516577841848619801467055455220566583154176028473761296484932714675297779105636894416004900975003281410691965269041355377343043751083996117739542958776818726994007707667775399472308971724649689640210024429180208603893147196511933041789570821792486135500023590898966223633600633946912770823175703332717952624593376878935035600065080536410877539444905136867116199251972140061464015624837856303766411278241089703955412756975393012026555448861414166762386690405470710839039731588081274654213342649254694046077187786134498600438934989432094894707615554125156479819512887517230139236244739686272599621558306624746852238300550750091870891954315223660222753085485502933097244973972983390154211375206393505451788827342318547942600380020564956249138291672913259493950692482515457166608109275778222770586040964918342168179110203159277346192593103225397436468624549775177853701114826973909734633464994162729123866378375355457490494295394391146358321176242579585536378410495646541100726690412678997885492418665474866744212995534885352296395431088845578655445626644267208812224402618022912246179188728635509269956237961371710823841849283677220894424955038944163415316243282324314681624925471423699315775099194900700087460984933491798395006550290643715790124711592035009840433869033916644907452294888357554511986396515734268644398571767997397235872139740345284768834862334974746782270694100728546630315060507761634287783249502567339999565707611035651304934644459216684042042758120916287957835738965783927221662465684212414755089212845757165184196050985912329183265520294850275081591701501260875288273884155161331951862751364339605498716770386162246428849974881481453205015520212897455914177547799263663601823323460966978075783460775694615388873014088039552882636858055407375675181065161440250210835784399734120495834827384159747240436843432051426494723150853240820541882914453171896258237318043671402015789104093786007225095819571970758862937354570237616867724617353668219026572722412634332455292012873478761596310437538809804037758192893127869722788944846026841728719714386567477431663286651677188619550242565255063875095767242461124033880057803132362227540969502805704099147073990389551861165598205201610400710237366832809734059919601673884054056893394981540435456703987028318390902251123850599517886167908245890946500479492764512449079780384069615125959523911171310998733452197573687144656113559993731309347630380235526762553994641119378891808214502476423056182644594315155575067980379146167098863640370891806127169329925270038875306374869883348757712945847983677104017799930521899895601734300115881188343737661670650000225657765854722482147232294709515376922468086876903676143113921396981082567473307153097422924179083724589057514933594947751801572544973965089409577181684329643097451780862920182731489286631645124512761953590581821919998248223310407826715754492937462464323360311318972241199159094204019035017932886114630596734914222647222368089613210892856880152519068339583252579845327812923055528131913155616371460222222911159212911727421050328118425729361158385270395005393430229322999949227946003752554763344675249753726515486988319745793907855597136046038576001575717457415393034426021857841515464710564566357439923284845127613682708161583720916934963947882432729413676957439659120202743593448746934696820124753501013610442633827402678584591042082861952910584011045485050785199252654230260780732088934151255597219162293166282967967968914671504382311156843200799691596258217367704180151812517270754001921350872406507335960348005980387441614419472158838679142398061645441200736397057795850016342633699506831466853338865895401460621772399466886224141892950049167176810530402987416958117361008497945311005881482076984840315197144508052084586156205593591177022695190047594189752677966643430237185809317713536642743329200841572657442636589242057376985326249988121410841026512149527706324692100300793697022879321840920888207623941604267746321927041777259571225036235066112422985724682020992351345816298595690358436217974993394427658304832056197143503134073014479723629145461042470226551883384039427253774337710232686595990967658932551552068766053977009463182689356549392591960641415712564353651792567007174506291736612490579803451890506491464971791999755834862516471258959542546195853743402415913559156356248272925945309191765409986776818775474462223513753846523481942978193804585273796004532115047881179178859069702119114565012753767755516282279913889035725640792103546325372695343818696510203315024686218024957498998046274693591263954056724575136826262449234327200356790224514368124352486357946389530256254039604789962030710133535979070898637593342589452492018064351680292329481533828480182044065792877780071880652366598548544352950082123596111436896338942402164141920736267782188227541403521290647822991819194609112449441045196410957303306725723262439501296202426855054165997766775842904910660327735240908744847332044609115570292242537933558389494827166664260313088044348768737993581282358429576648512108123329261234380939482789037871738361399874583675043066846197351889379313313863280431747983217568606855024098005448040657691524929210289907957445715087503801363675316260770807822870682696625542067178426009176888562413284668190790768890588161733340546095944800481398071633647758935008828234806510319129228238789948053918302765680547073012818035422157671930967376679542014659923894505976424646570055327334003967167266320297829551271531400089755468815294717951799814601231789243994185056412520772281172868477253649954713274484508293456561084674145045088405198029857507264554398892011815458926664909352035196510914893565153352095687623088441858186246283041640942420209003096368615521720896029594362148372046335721209872639478149238279360290023007080144660450358067205407114233046067114659954529118044536147981513226284009528753938972812595028460192354850794167040557733889237087698898010047024602558603913146051486401859029019602127052359339923954345338216061546587320612058043289315109933998689664188517158429545787371328050397847374239464257591469849496389176949933366169704066662617932039399199164125046799141000689809821137996745681794639896543605151589838047293511877519844631728912711309827086482647782271807648494250677351469017393050094243072717238794597800240876840242808904882345468783255189968371046743326576204055390115205724957933243735104349382142295502085505975013707809944300506714947972113970963476679937064103011385868534666440103422368617789310297073139018857764035180708907961901363857734775969337331406762195354520506585056744512404173569570114845990013446302253666358079536007292188680913863651698537239785202286026071524685580184030944077619566051151425254553136633838606735800521783999747126812453143350180425391534702744171536765661908683972696127106014066670376791265834853543396032677243285197719795488614343883796515373115107806556198770197303130804084242319516618850422618812354923145377973894191624660168855793622015508060268356644274243066286705303166667367622833345639595225747801792124245750172235931796668742940874604960624266007039901938923473228968469628629408443126223475512152964672241093970406304844175097398402441267356939013138022373271434793615696620501888960410810468449529079237854354574580818221755642154430854481188076427518267103005351163426563134446272067974628525898201063203220486245520228941631549965106544189798280466571389077659285094617852160728278846239320589809482865706507036867398721592778918105030644580076655019924506840246673536163999761336348588336854861716835600235489201090572520551468465701828571740251531929611595509344826569407907405647299748137106672700835763597592551854650039935117945368959832537594253702269790555886327798130018647476038857911889344125714685390289038379229536501363861848753693708445443042680573922940844996546963178972678050249482059203090892525623053559426567154793917167945408923698767684359644660491293162893692760029982747233346244683932186002524290500675874765397483318127315813548354711080794529536998349598116456260147882568553190440219915003290378230823131891551815426216309899453875357073663988357186166411909816749277798590810650145391090442716776829926734578467355213028772706708218995475872281510142351248521030106778746355175798395330793177718969962187072784255250582478395832691620170393745357731702123807033422447750047315368928162597942690360157070932722731758357326017719030820493120546621657871479397054182142098858713532593378290605980674756423179436606157541821918556842580523747177100561632447011064937878209110805188974570708903315563400639047587160072081205631273395055290556011605037242024753819867158862460412651081818416598813817336350309617346498896307097759278683512380415256699246964316726875389970500184791841821983588310502347668252884833374974299799378298656842389379105281245181271468630168715172805116445974852419059309900606319582034184557729562260178278062589041446857019063045036306384018913932538564675338687717882931223383382380001905776144480577595126511712136153912857366011467949307281847085898437239384659196630226358161933231112512467934482178293528226039854780529715230495743313865672463770815918351171031760792967424418070447863785503540264512824820228805709742723543148537162273099128563742104549524790589038429135909038080078621984476859437287511804484438661184217044805815214678763338669964340421095004153069441450712245769535964560599404557487148596570403668326779750081297073372184588205093320804935468224481195759221334091915343382849548491669252063868662405890837444721514362690432167707896410212342131681610974923493567434945501262347832732706090164066164538601145456815994638445845798589953118256040355604495649841288903264630048699498042107757704267874214958269301523527663547983710925886551558762349536635617398283788618569834449997837376962308181986099151508967262073781174035734489154471562303735402724415114276862252581231832438332142633077588884190418357272525134759876606428865346262546661568241680496393679472244381046627917568883225898864514312524701472887936982037614879613986401835636172962867303380755941486422109144608713038484454613721086174555253727270325568197967418670181057488163035151881642107845203189231072085868598343891347289924647503515865160144244279846906656434480601706527139746893371366098045328479076840510559645250994062258808715979384502906446949344889306387229203335949426436694580582181022078752224311740655159848540313641042924390232743604978219418900554220794868949909310222044578944885705127184544419542322957439479921989140524300885656433275836599670612921936867545268942747415745216507672723255465820327450913091891639537230029821665945056046701342212914698317431607245673739863521228905009573878739658117127006753897879872491720393008911523584092227005310807331033726638495197087311528784427299916043522120982316677738291521482850209129032112913006000291413614214701071658141938826587650224717411243604581732590081031336784131630986515739088039476874221229719197840114685032406373485348247226520509243950222993704616835635860158758205439012190023602385824835515280371879398319374045748407605753262275252867277213147124790737415438864685051348429622278359454135338286680258753508513541023201134317603848640917429817394161916077210436632419550355182233394710050799063182749369636982331936465332203015954872331684857410679714921836387477946016739099692235708289922832247043818512213094927916181855006899194304252176695789236560383559563378684459617960897385203174649818561184392474719997124188335630668662544577030520291873922574739121716946652378956073290457313830262601200453328522236815990130462716423241169852237611852498113249959262116286421972401420394317653753348828083462049722624350343623441510724949278513798818283926700324230783182180020200773594303723682040722249178896659587165072463390595079559696840930961577570671175377621839984392218953570121730945126028561052111776114293028866857002343396538830328836680355728796399135679386373525125812532275824338436791703399377215225698037111801396934707902905176108301919144879109482567996234446530936757867044947037729612760600238869485275011418771756839328853696303946434013484449354524370335210050463383901353702481716990490144490827662687715580865971294346828174133656403614979612477813057862045393884820566827525867994313094147111309935861402490220732107050035717975484662060013097484156607795605855798758985477878313427156740410979185728782396826114215221083458993370304129890393927684512285998948911893532599392351396893096052640803090130267396730113664031240562710688280348857333462623279134236616364858770898354162796161384598558961407599035884333267750727255738172825387867051499337359940122880797351751090864334110663764700382735370714166433917711014096577621142239186244956512181752314051877503773949042718806101203044512443484239413013899052778759347678613314955977291604950923986204542394241549686270095735454573588737861583268693549196246943591297734297485575305807904833667971762201178828255915858632151409269103473152245828713384354616198400438981621768032835581899770046254080710561713986011819241541992020360519884366390528168114205532448946444462558513970655409549514828154207835984227608984854316853258302323297482411531898269993729184694010677711785619826176132527629290886838739806725318465539278727756981399557430872946978155343001944556974318846636363702791758271972803591405049714059354668977178513511777058512022352156227099534429639150534670198872783708859478120046061394812918366630839342861140552380699145090234995460074362677979866364104233892062169854507073417813705324311107703418922446564978266418048345563823274283731912720050945366025862641260255107995849173662675558356052677648996316100228305599980137656255430442321775536900642030495941076102708308987545032852533662213020365381363360174254602517852914091294708302859468397799062820034345319702417619282012472315245830022527776080843018969721240468352248836531513191238372193245455363614581990644726868431791572486456134544417184615071848992463792481792192897201786552817162390439930823849647744996516625375474101144277200661075129016152898353110771295901975044062036213213054029796906233401375097456709091211063744218609106439899825904551188739165541215245447456867757335923229472220498416023979317358485689280994919696146683278322751317527795527473213043259930212302735298772900147596166740381167659825410036216888276861783450942554872293426787296826769860530726577655197698640837525497475089684876552121232185617750988662990798031902740978490158618452314351862870550940333847496925216298647524217641801250256323978694462707595526177948453442042229231719479926475870155796265745176715883072902225604531627991046083231782652338529243126892134498758275053866149855366259156097997071293264501235882062107370519430342927417105464881896346654928195131624845921373285408592351818668125477953932999615536487399217242074901377579825623900685286995033552298948107528628920103806453990301121112628647180893784909587763821626187875594025930099550098339894802558050148004125524426048978203522839725110745561420441197690180293505257758308852706968155932609085369204871955443838246630702180834106012413174566625258940857618455571821761298797668999630478284641129815529681870708656371458969838095243298453216958123113574950904704458123808519435325519977019761445983456049140109786386851686143756326771416022435351734678351352142660279831548117392834397495357585965840441011452181543367384211477804243677074250685483628451915962630334987866750451118460710838217817992510431289828788729710140584690177807672081542266628107877569473807218791830318086953010366789864792402628030224181910765541157297929891919507382313409212372582185675382678026470981777780542459312953469472464027506354210434118829698513051062262505698039574957285490436098256941106722641166101543050694874582615806248808268986325937690678675868805169250396909861160806125836535204630830962959094281618422529408098738180754602456916583769394057384304702650331524177105189943326810236423016248203481985901261214214459077324451679516886451525143673253859968135737294889272298501072775149810183468561021769452182534806225647421084264559996689378007173587770649888306077126332794600758979164188954850851826173992954362764819917126180862033693375670271572645948865790262872044564495224203953548737236085880724360235959026855086607392294668068230380038118571585343002115049865343862338518055267252954818193784989748224131591606464888922689504498929561843750754039223760330583499611703383823548024799773366141623548219897174261222232138363498086496947566265042020949389477120976340837494097425020095763907964055565683744717118346351775053822634351379979436569585874399466579560637935074472975731084246780668838942571868070675595729095352153803339255897574828502348881805398850286942692364144831810441004860510584332138448648513196860194234426756535388175316459316053456915251344330480613876787079830579909013070052559481725903003268207346993454081298533643550278338594563991926601532380332701179533669488956721475015309391153725483074152364386680160709579461427916378307793400351498172418494151308402578368632537698261785847777891246229538306335920025025587617970607248802417482649333813401104093547008075452255428127756593755485962126780786767834856438797428736284226922511646223890158308957679945301703499777926027391867755988417485990110291850458517341523890453790367693148739790752788603532141940867971134821550966036132705893943726228007550498670429756011665547369948557463639831385597751211759117371606398058458519763172688970182203557779440820666194647388444043737926086048855042209523963093621365713055578679575152655964739979293810035423423723304355892306451731284972944558949172186374106482061469208129979594922294485330494779217925024218603490765158576052009428938983015408034640211652060247773102920382439982544424633925564477702232885841236211718202917384150249072694788165154635951106818745289353114889863509649254908067201567045995640921348342851073683005021142358316326266081815725780504549579518055233753415618570852499462696033232612109454955147392645987696547865877421169511581165240821036483997584757366273352022351277932931768690043208110471010981720663015999824957434080814003029046935752733799723671254970727743310311831088805530867028978699495500231160015030729328337407751442274652654008164483301522166609411915831747170032555171541519410169699908457127298011185324806271618136619423909287078575135138387129890479396403163094828161085630188304074162480415838904505926426357857918681966416731453524254041672539022183732793553190426224795089101519250966295100347539780506820814089832767199969549817794944648893816373884486345383917917313502861827416925439551710088038340175382782724697324326957125672347850870002340628783059047789652558249675750803422945091802531916062425939384145426374248847431362266910291868771975492268015871984110829932098581333586206318961231620007252430562169375755424324974062310197860106215194812285320737670746351352208635346771026947658136918431979982976992284319264799303126874194473153593845660362108661326977225019441338100030320428034436038871204074294481805695578883525703000429208731389259659795163912112490824819387761949151631959716718395933226165720026879516233561319626476496799023141768365537399605399380532908965690671918224279758588475297478694191954467854620768724371598665537301019483405329909313097323821599181409786360206205856286270856554146420894837017589236277738272679211716554211546097947467849172552921081536797571771435376063510408277878157923033787544732487725621527485789295667762425822683988507713533520373971842166628748286529613975318953323253042089004933963663035520178242743118756139614829420297226789508673528604246701815103660589761741955623390552820470706770970418614743347556225425503565064502333630799319348938399712618893931823573244036886881646095169923713563275855228449762520599326466759938106220187153156419998424637451572691996636154408481978974262044381632755742985001794090020707967750200156364620197655905489395876763574460505806480252114363817963823653105872659755951519181604224202359930772888388979072641937627952996900602310234061428859376055255888564390589100587238000038696105118549258954648435990114513750713578430055029218062401859619202557265141386930606242771674674820196772775753323207014461236624070788800876019705985125789970821495955634973235349935037336963369349537943399837371417153922753552907000827960627597192733342356170845853143033583631318007895713477337302338799617769122605897275151481980754660419985056523257178226388727134277782451703837519873409883739143175770564188765589202420535657668592631563028182422336958292137116271105573277364057967099833158378927348617598331741689660730216567105602875094043753604890831717220833450312762305621446297366376647425905194105906861066650288802353363262528917595801730765064309803272348235839177887553987298697459542767109946411451323008395229898169360363530684415267766886273332860462126595600373521446842284912341169335915862542490489322711280547651881171059435724853116374745606911238499425023808264755667017122504001778900870624414262768779932883830331668398963500915241522206803491169059146985151674640865427954132461636622155124528635991602840844158943552312359840662559324381657547746329616748810537941023495506783028065335208599686662804836958042863089895356360599374296679066062052137420789327259574105939444010692824159182935299800056889302477167227405526945186514988909843885623522224685885758417212465622086548554133750410333561035979143237967734287808761113211502549033560540220681545364515214730486783454593640793860221659485551722263531401765651301643159435720011150162588768700012583662160261403026043974377215829969821887067683124339845346594331308032864183824670877967209537537822225679595519582661830708946378566289985307076158150068814954126314010639239944807981545690285050686981719049114550226992205052622371480026962140770045859524589817905728612299111723577220351468162108725909466533190382047312593825150097809173198252521396097707652367230111384159914447388904517296997423466044382306665331900278973320424199116304731245321800087025999745471826202386290037950802885360408868004414427433406958066079735702761013945514889394318375894282075861029156600877758245398210161991622506530875451269467445999158025469599516518069033285947401689214307888613437137110443331586683495819536152379215430730710851556022159587924892485177022701499559716404355914953132194392547887320886771819106917008783030193611751831077340992030765814725807792882813722626612752847221216692311700974016217266048614992367008713609794025549979495551899378025958471688924870400732764739359585819514115577204878922534580576716471907361550370783290783535275293261767329037127082738819964194232328014352224654002798941765981543145297398138312137354047685420995839997787314265805399574427727507537504017686988744316355120317219314386607739627366974425730707347815763572383769115548851391610783909817651101887924998010797670966674792081681184654673492782880804543772404940470702867908629457329499497088134025463509433358240054202639701727043452381427325315946043340348586385824235552986835830046676813611209613207903094918919198502611793742785087745139407683754785212339598323849748381861733459039865537644897211246518351812664382995536337669956147305368591055160387604867602635444867192585512764837952023340891048069736661405871930131356989297332124430424654050300332202928464721739770283801973018000802738683457290802539085619258531688867093561338957641294793234431538428777919763860536687554189932999400847190897806876061760835231494380689060405161465216803499336230209856787851617401282576901751296213995248539089186248403092199299823420604479735766118995426096641027604931860561836435981910568839968692680156626735403704818595318629467990767834290017642190443751768056101300050830160371511610451225950782640986913418091405257058450413811318616604653610836937029778788263235500836694246597662175583572980139070176081820149321650953620408472154701997455978313290045487500305428191245202428230573320795337721497648918694859691717055441140949463127218303222454640882281942989008808642533688973161250243274774043867659688790165591990212160021458054820084688794043543635281295849274213054130081155784955136295477751123659917086292762617641555592769035045421272960292359679451014536074340123774465376829670544770821878013650035085822527937860177113735422184575408479731169290508831682385983272998477678974861355445467729664544610272549832299415632146251167430917771181808783855138764691464637370284451157455244690589256070181089235941610542798093065570205501787650409366614556124908971698983544294928789839566139795222488665754600238078113536764146094090153863846525754490638578828088091078182447716968649856956043588430260384324398721265873836853298630868960100089738469014222648691284164108313425319822145379209867055169068849751321362970502409330207044521607097621749227470316961690999285020648769297861399708151335784203846404896529770877858744293390278741557538649358594315503547937823994334220279088066071022910350731938749002956571871170307847657996592671772473908836921449333378372687513478013813894818432052949336728273234330550745214981627399326346401658556247121403317057301861253489557257374811429653519032999520845587972276809142739915033286351194403152228115288559256325904896096260405202388792810257590980961852718792318439199635838067597046168872540265103647145971189225029905441283719271267228403999030784220025416150547723272429514005461441062521833681340407036406616775511379402180057372849109275006162676009539977631087456025480461458963921001989226973806968421058364388906119838365026194866438431946060730164835725067597320228719991433816156388984597642727706376340420425596242276671694815727311353264688345854058697267102959278361848203176728754453339102250232665129233602747771969338617044066089010797855513185718896489108046999981776795030858625861845898597768472078517349272157493298821958817444335498004573875157239437531014486001610934552537989296380906331195834537644092404839512648106938144564856750615325405519093967139300010409441010766760414265359087401678889118233384258046246274406988712604661263042557409239948930577649541511494357522682367145469031207444859086127350476353198113751501942211776249509355564240419959567590808539648332190736257320650686542404120979356208664923911214001283628793190367704069118460514949775377505556924119636218498480095310188516641641196225990443366235477984560994568951481449972283397197560843762718881072005551830953404576844783793938902712040903044014284989258771303602664439922799558452979008827728125490970950452647280203188683865378467183723645917177458769347098293467267460637369001586428072491990972235175053262656979483374069179465091534779688048841145275277295032804407550138213556418335273564117108242404923771102816581727828711367965120391809763481462160818848563128304595028151825151548483388544718707056811389978629879061751722743657028378305321142872496172347090663296008114808853664003053295803391522158507181442219737098240256449991943890630573953346810662120427523110680160730867318145264473850658200186517655775290176927649382504259074682466571683038144815936974205096045695912583394461743487045456966807148585715638889309408907989348929705869840584171279903206047626361667017282284511293862832124238643673015811832990651686588667888015411019667761961585319582701477038100131411950146439888371199355346627301103706604937668838876862155770734922167222431110921817689558094242312431304797860935360402117956409589126205643152455785133174693304703708001789563058349862418933538496421150320794552853295898474219324464951627551508955517021147613149753909119228658007739654240731031072001738115282430554043391814646024953108418777816010697164676423231899361111263786719181010967663714778777464694514708146650247350690923027737942776445944402249902696618763513372991574881102206463300001307236410536749145181333654610589222784558338062983673778119039983341801992890679468603635989737490318921455117743641512721005695436674280156395726463803155430085852979833680679630002811412064985609561040576300157797265040568083571266191033856774854206195990037349370482369564374081226848774771640847171834780765375163170378475567223466798307261360151856026604770189298645057652047941047583790019750150820362737456647200292095094626213374593550987652234003387271275133810151965628240018909983286960001895533752999479117937566397183961907443829855406920187674424862499972527048202143944643376106487008269056903564361238987821812776063374668409815934666688080745398541764769590406032529784031998662559064537784106641376238482503282552928770567948020890644713238056162765385598626187762367077504173872504367085983184743628379169479422003464798382746882286737599024608066641852682481043949654036588616203382301962974181725420735134329956343510565028299294952847320724411479130426508469507550353537227908706482494487652398589398481265071529927270858156555274371041890302736856910181875015872858442961874326976399773803166288581423658580625997246948961258614651828211941774145942026260544996560375946107778379381069709912707589116275540329873614633464664833655926932577183155602712653848752543097412279114008662864533411009332849237691833070118864674285734022986276339873376846527595431020250975231132899800111904646481873249175730466354883647031237425025739769282057731891739152819372602802237781663311869583233440061503471386196628512701115220679783205811936847434219454610784436484741414578361992239456947189365078601767851311152708856001519202507981723184962950554934846502291917970971995631391124796367657388788468071334574507678536109797766260351886072536585601162356067956409317448418032662865319658862285854406390872616575678923379732727520793244408566620501395952405610642123408820436894536094846036088240897480713366797838097229064092018098143801717160883701101260342605118875258009311932400135427546206275529835432016906334778150779324443000879933193346627895143163594771758522366405264639873480187939680015092198690803601223654241426931440889169051810057908800918692029586419325180089425832829052454184134182092654392729302342070398122888417770810540018767616153729342109749351674206502215932705848188808219190824564394471511722933785775162726653302947531274577085733202243496377422835245136012194566010834096452150167536332997137604284091495364856738415104390291950276921183606506053311358682851683722764805559169352165436188263455209723274686211007997753207520588440691613687318959253909610862504311544670744816717852211849461511752962855765970948522043966462739317735217370249219976227058432967482494517663451495634048998356078320786727341266020206248108268422698554243583517204702834371646626882698573547557919197796128085891299371095841732200349336958170444760933662794986980908896504119193396592740497876647828527746517957825715719497715250117420737249790865395346167360913996605979318765375452593542553612481003394484804671018421719921588797337322348126040273607263187395063518770456649371683285988486189859570012414465393485373376605883418711223660532295170039356818252473576271410203088595747357887095721988529556064255312208089261661779845832950476557800926781375812333967911987656377088201560416944415378118329157315032595925972438121778021110599739997913308559267275336343049084466104851130474444483512060560335594497728399864193169108207844588182418133499290309331321549466639648806671068894166184743977081497795045598023009681854241500175126013930639971768416874045245654510883559700077007180473757250294110528987816754164458497716689977223724756683825130854095102031664612656406373630885256034938598690586435817445712171964630030787797809190677557320668181432311397944738804388080001059912048019174045514474311524784206413455437815483671809003350126377360600278505353691870543376213878341725950970794301734687713764215714078098224153267146458950874110236461363528021152557585309179035604631018120811977711670390165105294302503247901406502333576340752374358150585393458144695325368129712812301801469412562840729402788207570419829365390423523915061876395581671051663020096630828577955614988420968252256033985428983497523031098340795327650025815139984976489153121883997647089932938005365783680750773233651155339697744373306372479726953809814159713225290768263609148066925704400920625790246714911503480725288132292711318133724996903052922982264911502039420024086459358137937349890648331869366532643353402370359448861258211275536314499309729266050724970864255923509072084214377023906307004932310936770288987962343745964005139669579219316400378091346976669394114880471516261906954245270504733885227929883493711095468628715554650769104259812929301362023850004395335375804298556310726278727984574654734737325518656605921447224529294759967284297022924243655776599617630820355014927836825492688935640644843486761960119870034345279398909888104041726976215014295518107575805553336174451375308073870845132227312820033689938409769076859112514315510087825353646297877862408859298280433477525599599062988962060777460341690492492432006668870696052848686932439801611284450450639361973368530347985389331985752414131162969658356915215539143941665502767030911891207206955647575751920459573073823148427595363806641918649524557278418893994143662696757162756366903561407500641195964871427438013674747725790430022910848141236928816126091363006403310562025107586154421465873710754160205685865388718004891599658969552979302629300953401975517335502657721831129517162463674059136385700381923037102447125792890448451727268824335235451699351528126216233694279763038073728188576022143986420201462744476540159445287395441215860987254745433902561190840223021561354767794399058684851020087119261370832231292612005127600483570263633214362759691678347313986414957388120112715612463277167102489550416236047000314977630543311247978703799728224670834915347938724882618961175357425464581894619747730044611475489696144907440287838314103210118516302474763716316233218355595090410594736675869525235603332012058028757946456385053225025534335848214642538326253679179873992249693886798381225280009034689224911206038566202536921901690012758476343181715502701753276832577049242908104858967085242150432555120415423297732412902804345223999371964480476026380369888883401454714199078601755051758534534152201449061037238605898994781569435781019592574864741649433798175295875126224816922166258839106036914274121380891766244777142838690410798195095545141703850762987571775996246987949363689013400965698942430558511896327634104539218785924450131420642466308579811413974420599094326496874582504572794149497600246458317216239930848620410247268695147221304439161163555400955294727717223889042901125555604008472910404829005638572304848827205504539830319885756548085131339375880247126497211220561617817576617937128830076353985492872328205518517929867838653414889255336069784502091632248533652887670524376442675505067953328029974154749697303499984762197123009647487819901821676005370798278279915075586221597635877237113917739826497590754733782452582865238661830612044013670010886830430849732972624787295204795085167108562906030414263133215229375463366905260810971354418285338835907589834679225741718552584245123558763167735083741971094273151224423682032323403912571568390524573492407162862328079036316226667093465101193211197789417847578833121358206120905659759198149790399457556540575018954971232405060169224397207739264855330838210854779121656067878073304429400995218742611036989168838962453058398236107750956074425210174041954374888452116009383425703590928947556580528237603015260591180435135382036803474001784604016716309314035398282133995778210093298376695554416949859892819468132791885318859334956348625000553922831132260391382244845604863141039535346294267920540966229490527938335085574389150526299036134860329041693150845038406744848253572934293512660012859148319619099851659074879434681511571978669089454666178174562663167022456071009819639267931185999266301116658833547000703621319398800514773255953517990626322416608948531770140292774279495423035979155475123355189399472458812793523222173735505225281500043689175111649676376018360885779383061910221423558455964840738927669378229709785950833059889865234645109047495908983777832361971302640357552652928557465317342163417834009393679794478721860151908241427920292407082291440754877350875919013565534872767502361303139598578859313852365093316675661983157559391743267396920716104678589411573891243170172441297486730567314340740702007874888412331521694171892927623356140226932300257897740141033389918763576424632255136282273880884660622603458876198673327486329043475717914254744312283012369949098752614759079252493733840210504362484898725988981020844972142046947433719043893800430662890265949693782777427616359037861064772782184282595034668583959471508646042986887221758356099464132524792520793582217121600521454626750466744255540125012934968180259705237821122664106274808231593057310204088368342910184262294893999459000691558776253945791715406943832750962648875577567001697308374338085541230255847217672456671071264204713319629397250494089954536355365004878557529205376487780254401626932553521699128039298023771859139056196175107704248646520566489575399214820674216718948105136212798650450086313183526018456463694727731039786714826629935030599724691500053030851382146670076028257339109838231743967398466121705181457956289133593045617185575225090555091412581950537051978631246061996101660980132262361041783438440351727783565965621677069409591007430467433971498240895993462433910543402809016720384972301209273236838035636186229882701418761303011182618694008516541035470329385118145307898958095176452416144891747036220888477636450671888709335894011917150650847553222677826760942468341925274995826994352635476787389646262085349258696091707655492676326581220775756405477150933251962510667598333239039529813027617644765456839927758878596806681607534768749155134134063748177628386414689585916099771078473035652527748334755760849929540028160686515527802088554717568244765914984113753908705206957567913690359748127934399598719598554293769106455461937983917122334600530212362141082625075828160173968810407339823057485023356424424552110892585134503624162598525900291738569040207158985880192971398616366929022617674986153064333094723859079431091510676712980092082059508382610963420411736478746345165767059094370541360080728528693022524376093465703151484564989550317375756153803631756641051107003169591692339410618757581204949207254745267715599412427258484212919494110500717843912015040818462015623983087876172079371125873010212232028695194253241065716816958680874977329996622626350121187883856898767902322945192434631915008274848300428298851122599031315542640257469548188170631876108006503188649685802933729673334395430518888132230653788961887444791298020461811577766095362641943361176645163568916869422094094472265479885500336536318620840647745402986154185056313959487113120992504190944282283136754062603445927701260846460423346634030833499402689227413675776456848234533081735577202314600807414566017962141919071079998087140156993867020920369899628416432054381874450821114979877207889913507824560484993053093315811221078659261121216788003586413872848791766852153551370382574841523846185799739407088441258914716302608536104612149945916343930058546575704756088975920212534026299884371614884949110801219270103171709169641701648711673372672975044270467233676718705430459995271309334881776462687500857880836075982770307206538774714098600642924482977197847750113467954955378589628772713424174353179536676271171440642908788248693965127762468377526008833668481316939698442571084515402644242320594357203033333129882739317229144767798293084235650098873802212120814117827929819834579773427616638623988268344810790341141103503892179234705470802631916566798940253381242999517563053961349513244214788592985939228435688058167994983771164139567972219116877297664283720386344404564727919039248858296089024848944721829869185198270413442376549054954824744852551043179224974259442915177036126608949187602178754138243077166267245939028472647887578303523087009848523002628094648366425501588129919665176011592762605519865679527273839782492468199428157976151968641017737052141693169052299362186811692608645559686416193218483222491535761790284062976278106519933035333972841917536119556221808784760349567085730702066525678176211319397700646412388888997674194724038438994050333747572896696147651778669281497511537971008388194193559240053320118353071903648407443416523299065009815319190367060420652282167329294571426266978655634987653561422576721477597898524725691191002696613943241760350689048136227757902080365025939807928599783710635105891631990369675329090122043807813768677409621551411768379430469114015627494462858828298356089423016512127051052835965369391859472530133938793140054766364491310685490250781617621838579171198267962214596852948183607010593847565045202309691944048718947102090110529897322232577961269746749057783898202949192056389782290348099930861215744837044217875771072970343516519371167019853127831733511398415713901484154149583523672312175832539476812409830287451474527683612430580366929487647322950624403202910938130480387556250373375276160668398119709626467634342586250151915387120359638373222177691878758404470387349712892500623921720425999390918226496246445964263262881221864856366488963300195021896676686849470548170355226256410677277717764667825096363936344391534180534663424711536576333773598383279548495040461347826844589573854636691058221272248534078617083274677889322639427119564923556880312273764415645750940100966695480648822429379950015183776601926167070837440764878491211828425442939589142877068865055057722148556852841563856978333422082518559873078053316485509615572328068526853720483702675665006640531824688047206474387496475946474342540461610917357387663429584736900030107985639137061902762520552207560269268672904750197439148344550794070786991231542591609078643601337602567938687080001892413983523363125055331545111061501984350574808236915551703502393520551439581599111736395925020528002853693863839882279266088129921687853090968471043729414196172391451954374996806999358807486573034155560350309732535508351706398487489954964371159074095964912410482286725175785690239432044540578974959217746133070005037090583101196920671387315066095655459206431114581052424253159916354371721786207731578421672755453018470004132191553609887303598765387015278562740094027325775938112250347597512998325239767347130808237615249456534188045774371363023206187611644642491890093423791342721687879105534526871571079304915550015424259666802269367463255071854863162014358470867021514506703463398861618903326077728916584034828442809789455697918882232230025273546098222038615532757249046368235365340601486190306739801094750749257036592105994591251992048503202805716264304732613702288468157124232979112500589196689395086025340176881687159561714625025715074623061451691143993243408107967604705937230085296902152914452337075548804009409632738303252984341088905756599450860817244938328143174505438875785447383690382098382478222834378566203691695747645840107619948357301188953060164147204175253360249960192669541352466763437911821938248501112636437977521044341131830078618170046156079803756541155377840850140297082586183385017531905790046371275798700460791227345345840513429772054788140545467598179984893019433964131971312940773696124342375461717777413231380451057393619798374948024757773905768502251555041086914061626855001832159042339943418741991743904165220048318330700114719927937103292746869346326913187893775580517087584759387722873761259964300514449424262373929063857296444782798481155692504450803731019769783614121416969677609167471834794254646894138727904279679410313641851190478164635937409962357141252711663683328638654709017562236784457384986054403525671154199686923830888526204815375178811778011477670442641409944515867779465420398835234407806727388001446822952243940235464219302589018012377024080127521997441922667231041230363665331767782124411229676819762589124429632244264098963271780316665094936267036906251032225617602676740794827445339097360811739437982884481137125438284232186222417588963767900320798899309339735817572921121117223094572787299685787566110289534443914729939189972956091865985925311703405720337268622236858702427572858823544703234563167520123843277630936465832351119398859976743717782007077934060852747407636132343961495595052886693593514492000186291860455654368395897779720045380754786852569426477587049057918677630890838081660317064574257966872460779611113430529742936021887218379270499544817097478706893650469199944973630980432384288649007072897190626426492782534106026002214135641504974368034777583439342116230419065376287238073120443336371221956923756952943530341600588284269914816231302528814413545719901179605862655894654720736858342971457348334447862609772105039530451877105895720992346127705238197717809683442758073518066330622938700237595526559111176526486261566496318025764533344979957223042195327762566390428323883191788770821312302319631598786246088998527456744979265791165550926981016461613445341040855177138273914783441639911390692308610644795335512328574248712166528414779475283449674229009733949864455529321084339319175087651830758943994619491213057813916821314702548236723079226714970552151801573394166657855587032628337329011195176749732969867250124838962496635496798306262613348462452150987987178134234298623789676386652125663010827154720072024265916259474068660080822311636023228084113448721218139496348733457171540534103562104148163406853993477415532411646744361779005737509707669466945362161621683756954851586107003667339089659452869163219096431716658294615874784178353330907707675536256275725202939760021287442212330586300774614740254042754288567134249611459983612671666809267316609101990569923685794966587079230774911385257430332889695393026317691955413300674034912969491829989532559473229774415369431017998769120956952386411459042685738667980687489050764568067738796900229109651473991419496713112423344436889788707725220557684323073060713791306174521087828779214053704236091640781473966319361439099217437126253260250641116393278439612236275712513168263066854736488463003045667646930873602667791174647565840572883733574644484686523146587341301272833315531167934781714268705111413237819617810834414136121199807594713639433421201749504221724367362323136030803548264031067725499769812827905490447592560103855518239985896075430604595468580547326225672233692014981523179461068344368836184560136240545507519833481775031866305222974431069565281206208637585519109334824751487348705337284429197981909836333521997169997118215289669363287269941959137614469428633822932394046088233639603486446957523163394576770231615065253783266188663802544962541508065414298432652685411593325396007069666907128475835684302947555183892523421209523516990013994603166557268570655057973962559298799985455477560927664121777699738213089003656573702781421226040008342590636777590161239505513990948988255933679398738267867732774722697207034136450194863479721153409301291852714163994318339362507187271806008352437406781327716116050859137832848791697713787910847426530872171760859296932271645327566263312942479261939457518206283192151885834583769289146512740673015707749239521702962934301924575928181406732913838701008419931961685692988508447832058425457841141032973755538836332464716044956890626715354775005604272827729088617000370882940686301115783532487828614967191458879197687688812945394656559178389221249401842691915131403419071748490971202000638898096788850971719422579621778411052584116523189516151510831252818273745085468272927263352858372085461706301308338646564518235853453287353099057909490731432145588144745227795930072868338442459153677211866336278408112914783889158277707318496180731788571788405117503874721280814510169283645994909230705750567989836293621956097150516420942967715977563516909267825615438808988869318050542218822891675017423584211314362172116177717597950017928852706595058355614797702641390644723113761511808165048257390286635606096196941273263326381179863278407420348200397349021396992793417775607045580935161251211910392869204785758329969989602141476740096840231223834435187789588404720777582279924686479288694947808641083538685266586955269741599857674146068705303373160109440988977391525299875893745407093582176842207945683527125545480763485001677985576320950208145745734342025338426719373586069397351065586321034399402815649587089141774687337246404920697071980121992863664713417624574030519677668074940441835898457188302064887931087471996546732339314076027613839345599544718576510941997591903097981498318753764329325566329959341158722897330997125881915037210100670916500472911352459356593471186717337222482206783135927703840084210326855340266655572440174060341601374712129934787248564504227491614083223164839118805837131875446495666206426256405231578453260032387092099162829908406880801985960264820158174515388589388860874778311635286498860231990369231787952285580458490545792340076901116632670676758637496900913742285302621881361658590486119659961916708365817119615916364203207159420627371106483333263629364335960537740471554041829104265599309439375072524168259722002394011069188426926966292162137034345029055911268581293527503938454367607045930264389125141470605835762757476348865709278002950868536036820486087545432187082551877402526559159890972356613821983769852699357307802393832704163768072598017657234700119506189298995941570585932643866881409864440215403828319452067847022237676673527518806505561219680880777290532781175442029959067558955000297080457428182199800841878782818601968699725560605173952294685454672974246582438322191728552742585519799584894043452210597312137220663548109436272670802140304579288534677467792390252246810098816766008147364545001323444220352216947555589972253142845310709351780767342213800714761337630992778276638799349017509675904885709024067153422504721208349263982198777930511413917336413637775937328919814729294694607997215085735732753129982701424264423627490411042131575182899467449646359373503602358811049347793966067085163044026087684342723023925832326297364907285209890321243055909176526512815399358497227545663288278116930918169305777259585976635809542947962877076942798777192236399070954654717032402939873745715989226193217584290721207879576021149752884843983539820768630361850198508777477918931302574823580883762968377105734138443671831735843669598781935279194582963000732044625692906822860308810695089501403068207715700956640760193144411665541878486165472456093329608701572297581061645650263887473327297223801628703322603710259781279731478806370197860745532580646738682671083273138881986730510484752360365455057878951223684384161770290512655389009918471794239934202649839845101278711870969003555071528100431023378863661243665039390007696610272691641841512978498422121329406229190948633740502017972637063325793384961884311504341893758797958364750377508778654157241732790767709411976254703521644995235878425121528971951128306715828619260908087078501205512959180351301201670983817461724431017164507886576581534037257312517525364961721424721663713115098492907151625702223547759067184476543002142576353431011879185186940580445817236977279299844404847701097488750641933083116437992741898894621644023638082110018642075370614698669416664577133570229244012121316233450238319732583248680466856725209905834457509505684158365833849795426190259279665094203867866102472921743778944468695576493427816564668232400284259801763491968345088690009652276201532182677081990810039942780547633964543449640260536491126984148946811535915138368779545247149397212855572894049913754946248464129596426063584353565412689224702204102826545591381240609690630156193076436813676626102002193611871734548211037110834775699592941086177087744714503271953387811024360627208601832134480175510790874064634358457227299657320408086799320386338495465381613014680552915636000628987803651912748870269834006222972532020266597742461380459268958529353175512932755909380475838264977984603313199353909283234383160611184694371295941602617966377151086089172411849690518332719455777161830247807960584527836820327646301314268607001885552424727735140932956255227285035628141702259158656771724582447184326367371013095813050196587585541443800811453664130583220194813756647904718143386863867331243509125090907957365753618591063534636616516480753198163004094440871615536368807851452949863725333145221372815837091021866544898839767355740826726669062122683514381547793563456585866794198742429927540318162625929051615513956096757001586519338695884246136090475429992146686484936165921539773995311187533997552287302689989247411727896147073841637037203488775575479891135979238624235100442733623082963877578332799506486745344595960083466032431499879572118436705069778758486147534113540068188375623071577162774167967830188589122554797981224688033137082894019429016332647599172689663143803822208272976584091000946425679574637246853700504773428150797034610170370979320423725651439663531689713318553773251560488449850589202189057949902264115038711049812723416247549294560670072376547353100305172086628980113401936072705094923491524256500711359450795701657965095589434486404309937701569690913794644387988024709203275492280886068545874947721920248191135580695156779206356848565812018824010218749093103946145879655031052405468334983240422433313053391788598787579321839704804412220067789618679147763365697533973881049790930221945179395744142859455554325319052850840531874183744998022584381471652792259250979042011204526232917719545153280437673114446539684655293991028188779585730344394957210571382727798635753751193687389752318869682134481227034500911755655181442134365943633719232799384338650887924362763314250802587801288230884961064674648639169598254503285401928611711637729064530375874580339034366403361854405953834790818296561596462970291340356767179877206331559164175030023915717407212016810858253382632010548383422496795300111781286099687214776020055039808200039624499123493961538633917383494505684581908796484636721009145710779705378860180781510504526458596508614026291038341637445243100505335285776421602056913714101317981779665949504788749341341288618178400027399099540308856471111025422308360346262703087694928413644490431773996305609262880758952121545900644876158259000525706202177580966927729954811163534409310511192580005553024341477175131974089771837472568848388402798260138630020925227354954479495178541486658366971849874704417253852840388402257306237760245560135358066756314659028234049017615416197635132687459876645691651021001808298810054684348477057454532930840274900957694625910427312638211440457196990761906915578344002295887706167803852073368242228429516718300197410744800023291255898225232361430973151551808618712638363255967729415285133105055813198345912307457236530525498454360754205768856396917547827020701540856728858366066081126003339339947582796614465107911034974154968656689223796589134522279768987200585203709035484592530174384188122351642390371928760606051378636178124160112480308666174270430171821868299893282375352104215203905301574353349129131803977873068472199206679524524406915043874806384332549473343668420959044896552075675347350087238882654306596611054206877071115669295971289353065170103751222989562505214376238109763661540790016399981821875767889456332843451335584097957250132810601815979718530313889706772932472403250315645611977831166810757939982192069117029966615665524576379131623357703595129884039979574634071885388563806449994763253602381892962247494559795301724209176107951801288212121416139365010368777836885627623660461814207630747100638086702595998814742520404312179966851021831112984824486995140415546630552130873637756209920968048083669278843048485532328089288921650249764627146252432559473724168211765640948876320289414778285549927797531794759494118593792648854588406565311384031453497927732480260175214969757801200474496834210046110135981698628826053912584762617438883343040429062178707003022820965301207219185032484348353503212344809937990538525832783693742850014748982977619512914830191079688788597481708412767407038622761583556736150946040191840419515071722340574612712300174715172195706875362401850340933565628569408269190869524779808805842511927497674514570732109134945613121877065866418699756208290776557866113128806815397081734319425202136624444421744450249829140395239931482245450640886660123881321545849317024728709921836445246438218705329845170356968457056265454490362606945709775411953284338452324739713295167884875832911759850398974612384649305277002541863842316340546721482425920306656980073090342819769759350860964835274351750926880216318987161155698299504080662107039512512579224305526957583226885636566764536583233523228964885708537140913011260268776692936829344038602524375128858513553102928159803840300014955277529985768882728746074739922081930847990676325186857379041155660951588557814738097119601860258223892586462147052538682912844548078891327870779115404224841795825142910533833040634869980376196370016282030919296368961912053074275955848789963110786988258040825369072328844410676335253455257540458332386776033753488012765950429959583935511104698956405501788272270197759111811561008329518656222413414627650345785776747780711404363410893758686688376358832294403025251897354360010572262846851024688553388849394932591144682478599763330240713620809594004856340018850622525099315308174007908221537275242963986401421600345905086456318750879193233876028101701455590446638195141794532652476515659262055514856428414332886258952022673483142883349008175275114246498492860709748929702999052272801701800448755801645062409359431882880710273413982303808978433093125206390726660491682947173596130503825950873550073725687597496896231766909687158884223215605623343142155994996050994470167421187465548326109899665221890356520553855710251286728525803347499172835877473533221206146078543362131469703762443214066573194968870566492530102653999582473755638029107911955775765470703050414819406361664465809433504715646961115780877656377549117195653944589976844994249584588953696013968576539932692734507141320925367434917812137418346750165930907093414792854770166011587488901536187096389997519151302499330783642739327606102914660936830150631929748638097095118409098313261947065382629247711002225985740323771727559479524828230652549227680196273477210877231424946342973278272244547780938527964048463745627202624606017676605162195069838690455046965270060570993029080762809821865382486291651004217716388273814815389900298330425462974728070404046344745624501943515394169175282323242486862153060674232502362024977752871208622132641724497026769670192987772184771160921162274212243317701861377657931156254819236650469937082515253348961536865329013295904051246175627850267679538632652895161253933426905687750124831278482990024189629022939004843675186915934084491681634126603952975013823569397279076169378471207057334531273671893281477020796909280922188031830250601758942294146930558217598463069089700943546634026199007524999336754692595233666237558475372482552138307170728222310474575409886038882430599002321460962143380919951869850333155836242764953751847498273423876284951466513103948014604988622716122208435856580902995796391911689677155627584027567554225038361592438853503117500130182693328044321759539493395302446823752821903360588656544676306685097733243938173432209204676640847007486684855465684374289694729289220365505051047470214297806554503777428784699287189675200109667232735491930089797698342362404020687972664239067681100405333646105828489187266590734412009028070730336261783489038149749401998559259614516091767320410070765593114878959849930239354032322720229674405567018668098157409958778679964882579811939370631596737160794942806687340905732749044164191927265691162462657794782321905875336811232075258840568304283108882487854535332061616629637279349648861070166143951269714568415725198860436120471465596850047928868079263248616472264339880764125112709511769992807015723317537883977397540317552618966329066680822483247677371801963124565887806853400407064314199080246830007389055555024458535514903793475437977775716705872352021759001501509660965571847049168754557044800001695826359947622074925232136756266226652973514645555023978300398298726207043780160436402024066512760868081174169522535991809534651538511301359785504991168486694508734486336321628769495000833151784928579543047235033828825189814937033795112451529355641055061388426676473971662550898021475002732938791621156478416816930828302299150282796336417877472554198926655107953786840552755942455618028797638313555898520908062501385296266625309002295351401957115379584151385701278712359407968221927483191212348602637518109458346853085165776780022272899777727678127608248633409021948484941648904889587131519259798107075766711583239122895928398556520501549410677403399281873678001208285886950392335221480689216629049951651494310821958318757278443688069549173804526567699384300690469599229292565564382377490051470059468035930961239968238285435034533849673071951569580273103530117898695929981516307599500913195508233336216763213644168823058792628363841734610514574096979616279394110884373155728291381750725576774691947967991049447697376832025537002644997718863895628731671103067802903833213559370437029566015422700472058945160618895249727742525059026452820903706733104155900007604509336123846207913955643433810739957048786931182647762668055132492348997271341155674777939962004000842010647582933234195774794314666712483348088951211576112327900955851664800163356472160348538958264640040728114739506800627793722819670666197041389265791105332101458628030754307895429128730873318767687468783383829262242572694949056177927100172404245148901325626531440561189702585301100438000381902190702660201259974743927525756726657850699363437533132258284516255515943784747866684970792116437738970281795045482628561356518583788593192888788188063936897156295621354934753880502771538256067219299068296224433188124704106334348568858620073131301070469777322636088938465545370608429102361381297845271795034933177299912279574835390267994069812047577399580479602434159917707108921447581355557186542444057338185881813643547526728701924675076032601193904133631328433560581714599145263393438312949716148796362766522727614204889502764265287839467762383276557246910646263540592816368776895282528664993433994933807636967317832569393045561391026936332779912252115079849893111543183012841911861494823553953276444313553174254177215172123588912191463452731963499097884228695241630343774584187193633898523892199338185617379611764172889722529285226455906441463330482701663306819023765305353908383816833083079159955826820615653920744137687701291410351994697424286736284696857819008888222849556827826240488230074349718836017174924271038075396483328332229449068222762133512286277303803398259615489454805023872638952916319145783942401076637155428879025281487408834861827713836156443504629795082776885244607700166940697189076143952886146711103533572759655603552027795826259153606613390297179079994862746769128133570734817907665902233624125293328956194117625616996890678081797091830461837492975094999340808904662934955129334215740818132349708272331949247569218191646094792194161207368739275752554290486237202755055747277496497675267704788988206897326433061362948828915289107018588031090680612234329463462539714640584177863851609255010973409204891793305140856941088581703509351876690872130423270350181995564748988845043205811010792602771464311010741475341691180311859064126875612845841331759764684491227012897826489079227639677261750450835502122442937174133839537625511786679989432064647042831671267103311300732696329963408890292845134184408292960259822790985085342725172696824362832602978662177076498695061664200562645833375698289110535839901769297778886387666739159395316557715248389315275516122276980837154958282364267516817887965428824179685020042636670199981162006269673916831922746031708265747826217186614134800712713731475542912612339448910421167641570823938995767467703450915404903377329937641557477765806969026402745104970979698498930409702869895026138935866513898558778553608028290838585188616535274577629860969733813877555545656183582922470655237437712309996402339476941214002047584093257249402863000681899857133414056089430527440173954477823739445433981152862099754662569994604290510660982052897180613568988652734086141077607375309069061836767706208877991096361293733794933575897749156365471224521023939338091581929918068234086328382852633769702902885885314414446012941746244646672781740439993677479423124974524083004203371586077555409219360832611702332473190754233287878131778926116457910461013674613503983030623816337451204650203973341246345919036486300193745493507716998470273013244186351364291214379311130880411733577005966955618789594702695787511144844154275512936401949928947894696187327604233790493764577265678497322395661494660533910885338689830750689526211042800982741704011499559795010936708002668890624384432998014922209594347513270116852656506049028028250281837993980350623429013353819074877510481028922716733217181142066031920388024904394300251253900031370344657841192814076717248450979224459408682750853104166460629017455523184669304014689527855943695589529121314879418868361262033140690425793279656824356546550009657909557129683507572379555160570973451247121878946992324429920706466147461153693737546592342403574637982104862181922404207516679078991397425900325017315355991645075916544793433547010001861206897458727881326098671711000352882502831719085712748791256697825652553538109840667295579197405839814915193670512652995842672821229892140663127082299441573237350026272712715125975559536975681936817730097452722181136684988228823892264567395469829335419435122814500190536468142401754216826158907719926568084826122843873762305255484709726267187868532966724204290752387540333425601720692099966641490541693432349581021623304584577481454442497068962294346184414317388529021319270680246362701472710804834947436042544780524401338011275072068669965266743265750168941522967703574509613755213603300474861859318546761242548073403401003802565213966625346526624780549358994310764345888665687131592089823646329514140916967183105840708135342431994963639929889254837018909023248598526760235940896047954516481482991608511253741920385126222057273649201652628251965113411355727081506058952413518780787407002683397865475664644420598739015295428922288666157324243711034459952295838152385669964815508950863407624147066890903474682387011607733643052982128661643633615640117025495478847974640398930601132139171591557652355410284079849538338668628906331435273722169788122403835453015232751925969199771193530681382983124766843866318837803332961619218582694907006398027770612248462916895766424114864994871111557285366396242722898907190367194829692826044607621036830801243328624748816173277075850079934118419558776856686759539516415704738708956990085783341336087468984049469966340788499198127396315268766258278569584156286340021836869528720350803027475026611238928130987221264121610943213501519536955856133022888480958283467824298596794135245432927552501112820054963415446601216222968265248046518683183864287236039429411658057882544176748593699292631434746380747793493299661094783420421722130834081488510950656841242128339198647923157376377145809462169139879844100894516370444544762150413638267180156033540858065898772997150476026800002348813071468222873866488101280188068206080845652906648442311527578120671704363345875206363608515280231738746340618751807239019252615464893654652643860459147653625368312913053014528510568789425557426428277671012246547369905072932684427983919433804992488059179515968142351723271720327127909626631439057415778962533689211270852075679709486775943402608354360157958099099312061272642311873308960382167181828723850781484261589459401956161972591069216466040325558137818728678553610745198599342745623137964229070919157898337679430265177440096463725988171629828313801166922154985217348493138075245514776242300470346793119678039885392433173023503808858667719333887629439271639023030545109773694179776885201901496175510810962324374809407446938985253493528809722495909683746419783629159590708743631674367609591455601365413867969021733224862786804800180700323291426194814436233538253034026900313399758080501791994622390143465465341527712712095616800645202480377177918877701198432772689229343761814515638487621107859172667673720478731819702682230726776056922580771869797976376489600597356711277683166918981754479554982406508041430568001400501500225776053892692478958442526021915613408752400726312961470908420625568575176327414831094589101058073402494409611002531192063333139535785985511967199692230294882626264103460440902229570412449958478988484349865623369141945708991804590587598945708548283072424243752119519458345782305071714731165974990018510527964877330493771825601872342692978657209267526766619559088979373700750530061717457964042197595946082279738325801515752603579716284699437260168382504243095356739769847191774084544388272808830195463845689878454456361643047160622803013846062016919804439730338080043195297154434599861627261121179033549445736526408421424206362666114657075728813031030416954061598436348556453010021315270224762298989784561556677294149876586635517456122515879653945957218972596690378708112561559566233331047403181543583806146194428642294677184090174757872104952043037875131229937669055445046884127439741287981988007560858494795464580304460557451649610308534475117601673703958515024382307457159337059136396650661715104332302412467681770519671599970150569249333240996760678056844865141918894117117022257487194967955419209695103113803550793540615106913950843673349412374288392445818944291367684149148993066147269839887060196092588071091599651126126266875623596991974172353830920214791906553615507835894074651155219174922400976214986106393573046478454399899245836554490805299722449670182002149537620316033301518112493651113737450210707365315715135854567861831670121712259020212065430466643125366511781742962805991906953180479713085744362166032198280852925533340705963081039212523389338789745209044207666708289306903556581370152001340756819822853437617860167418470281548072339270353506678694914282637720022324709919632648402633724896656823938141553534132060920610335135335634257881884823458873409343794226566178263834661731922274122693298020487264325469861092535640762435822716252691886194156994886102383941358986072278066363113950655291015939464898567142510641559441974899534644221386213459232437442807004273160719984796603591931357014163259449111906470063741961887863283350084080286691727059221736247247127770894087191346246608420486722010332848703417000703931271551642962348109597302886460934698929720032768449936788079289151599398885680156091841820101243768217765506050759639047484362677509366656375698585426759726008638400907394549348361334442408990779347572307215736339526058755486834420218285630938370010812367702789064664590427587053604817251435081249992404852840748361204346489921394789294630389377759582683561326164714888373404011571098366715379022457808559287632539893869509266235184207333614747761163740009466665715015570744840413412366083659920246764382076574795785919641842819382136287320110425496138287184345578252956804204243592766756369087312094080435376671077073579485616506297801332844070018492606990374335445802293465322090189883464515566008436691649332642246367075840646365399828958901107258464064068235277454269008091618999618560680558998790892193421378398116894369769045960530868863479219780465785732991266744415777848585356029672888722144956489886353417563475895503482968261132266657005426780934999749681711677527715518145887945930794697087427161271423809084716918284230399136229299110608354541446228232143768000916845216854336149990782184749642466008466210498239345760500353699408447685729310632849523618633031564303648674027816686285314111133180551217460388633927677663253982551008578116833821710591654907430021812916619646480944637495151945758609087819190630822284752131157201630527791349442332297330501394979937281756711264691086028002696756231058781972411372495444699136498244245996530608934137805817024486174221293962430166557748624751894941143068986498530480740870382569197367927038154593401341035737134960206739754684268366844209982250184851856871890116017901117012369769791759324258425544847125618711662701235366112394598025843900568649842009006906737138466662449511998703993427231672800134618021484200516288634424407841565831309499725995758271852605409142533910961866306549849245919931999514953344650813996438033636894994739954124325549956977303333029421763501808099241330746746333864498301281047902954225291044104581377159145315840567908580134807487352095128772152256948014541069227433377711771295114461655720316732329953555065376256141147481475015072834412213846117517411866858343323976060121065974650225231340379857214496508235892742056039459631977212069975498634832134937395854102384339247804978646848792796928626151921885849742610987719183632511473984757675728585627251160939788465745742067518563862895285296125102035379617593763959614652469231553365132617964603349497902428463903601184342983698762295280147636052661873587563002231502574948564554236344831862161758186538128326977675542272311191908469625876146354163377177585767340051600055262002968981908662715939554884425907566784048174959226286128869419500139777395040038280144966228459845924604056221624205764546231903999406895548592365978703058597958164841244957847449773523027741678543128991634986735815873937436922080886490148608676240703179324087616437674667270196798675566949477192686165881771038085424988775559675185220819004140892296846727015202055294114788177906472915522514359338149110966612937443251378470927603989926703725942065602031955666351894143807942491040099821569635439752821429437617163250084682806275364856717667099239259872874954040654979541595864787171931879049548891430402037133969796614668526008530257824244396701598596656020647953927018747938607199095970599855570909884558363759594496793822059960573818278942676107290235869604979441828736339851167635756454978414493626892867990478756547604634222658803201266162668840032905765592545177370229448994048120473758519286119126819190916039302939934134927353970966669737591630844092257826568982807461893851032799810769204188454669326969584664041774073456416166967458638302273982352026154450199775664118432928449518194353291046362804856885749869406541192342500161223211512787125991120710322689545590941400693231520138436285515053061020523515745786267226727192699470765523711646623441842968997358755127242467445165541921528230831390952902621504705596979696145441642768157079643369625332765336334061576777407332195683786732435702514382336668580194172224220590377784723783615442952125419139847048022823306361876269178144767700745849091013369773562179551635663925377544553940910541572733275530282476579928260260316761941205550386446287600445057650438607401367056749075162081066092539860120186649252807150466283357138812386125295010203957594932682915525907379304521393939638104725851583547215581037419577657347282638712311868316052529430332189205131299123548608687205057620810640424835055314496345175121434827730643484449981401949724631497481408841936304632785148872953389280947530691777553750860516487050826634355076472419623546611028886981113880464954729855930993106304130601724134680670222887403689720463721853301117919592477331234605111172236840619271141076233361644547446821118787009778793201878685475559856155821521977509994513405404056773965153683269684473926732817671396906629066409010833203807725489356979280028126133574034744576044824924080459811445274052040883552704622972426761176739735745746400564117155134122980641416021152449057775371018602075288172846304863341831517693255058310165119423819699695191354899404319701484237788189838277291597099396634407509802514111369901152060401564855686976836787718668045682193630149950365318083630222533820900493805069936825262822116561153180380245782734077832173091055172535186883323743313467367923131608373363735712682724533353536875891467475040225606820231104793858496153962264604889753880909843218019671313665341296594703971050654115153374467860676447921270121154869012165472403902914824968035410335893546451454706729808260125014858718119110621351088256012779576327161276435200633462324408658921087117570735797193502209825961127684105804054679292363631035048631256159277766425281110904972085412311101994028603227740191605831467999732731021267805747150368643272080964691887835561685264784185383265196232999531741449764445294498375703883488712504008108696435790850263757693785326090659554047138427396679880504912047629918731813743326211517104250032465067910983827561778996343825112487270170370970705711816523839766000347180983977556708934417518690018839785297933998499093314720884761465635524725077209726432891582666408144264270305456287832123361470619384331242318369008539360452626917711751304653312338246220879739113305872454646693956213543291512495098183868324620477692724866266878958934402112604148541480478943908226099288478586702340523706591144224608874516869209547274754861908426266245384070050263381488763944835812054992802161465951454323695870783969670562274824257003467028704528823955839892147273709155149093049386424731516119267577458120861920883337997096207535331575844576561840375988824752681650564011513362924594406841431609905747748066480554242335357657679608676621408782362671113124583601509901133986546964985881834622003785831663784942296915902295021510411047213099153264711240769525721420265207657014697431280613923735485432114168070035549205370327018395934607835092263276561280380327926063695975695786886887106413882937439067704133941385538566226011700103185604557580074115275043517577851544349332295274835608284112309757159971080175894741817945678668366998975497759849714012071297787268201620964729249851159528944498384792404772393151172335912749860263696528303703234973505085808900489630155555144337162723517182136013853940116550552566181037378097067219988261487753396769109836744417105809786549797085032353602700051406896363585878735662375998232258939884136073033546970510321229478025416104283837594743552336757037202716725620414281447408794694124082889426851786413028468918216134684904239633861904783608511253712823840374123876010424238075460309377969104369893121593230095120119619322561215169156281224791689756444644122295238548946475671449792291209789330935583474274661759497034812465679232446373455417943688807788025876264864182617875958348719909364134638527746427048071976707212488906951686135535937344802892004405262090146464962441569413484475062867680541621952657223776062580820696387573742267538093100635980902400435047384682070317596126179556528934522675359141447710121824379297266691795723535848019761838226293247058890517586153212099484596973779082273303182985135384631203983015042942583377900151138887430078546135225535822360519053978273834580240506444452314788711452680332446237320430782407150155108881635094003131176349271101295650119452613611476936747006005593178217201088016174073542040128988058141843174383210678544219936101419555258842520813505322943396716653197673277253738020126655427561476315571911153140721075658734419243554690283994728003271598815716310719240190549944756911600652961959809795236886387492478620562671416725936604654742578310713896116146841323480166378798658893887570312085690726286773694737623593332613953128559735152103913569101969557613738779397584104942058736966224044223195166144252036527869122473435405783407459820946104905696312878278978088180019450632100405783124714276676105919994759514187400191358011400584934582125866102211997206936854542410128277758132427751553943049879889049594367184631353447022556074937401553859471382058452603911292921327492737077709466985753891089091119640149137625277080270013531622857081013297879215535410102961583439560458434216414907439793547689015064055871964905606694973444626959859437900698380140696683167403192032231866208148042792286664463974461288794237845575304689476965759082761178735478798684625251042599897160031148933601816134208636192194988760647167802275564000355593583681969662293561777551182358655607731658360522243974079530335851984104728512536425520338747268824616677454612176108331429077133197940079444095320651547870338439450255165373405803411369582094869411040034629980187939995309058685127317431443108012100433065482775042087507069237329380671235325314760752500852318243773173757712638807856927028428337954788116089302358155632789782898644754378117838366639154141787200831727219354532509601308438273929967881216480192069549156143292192421756957009966343904843602178695922206111490904658469702008188722068198904493683496898607257053163520752360083305723989351383184455806234685035623307086411002387302032759673444627166029829379155930103009995009966486642888515717409384445876868537833122655712280133424356345514472199155754087419700487885013745516800001676636512718299568821918275719160151972090989162291592424935506120815060809921734139139852795463335265350412507872649932868796155401751495586280223119008265630068902846077689002762983405013280179562167273081510083756427245966051726631590317784239531963016581161493675395912874825623368686569743300141664224059909723944105311843455640834016289662136290597176823022094456620923472769270353628236981592022783246352492719642307192342287933683061200233570567460300705951373519840669220985329728077030660446297297069512025171409430062725053707493416513721373828454618696648949836445878378618609650365555247237610174677868549970155262056999586435882623046412298391556246939196247680628304881143098529607478543727737235381585349891567800813661215178194321697559421125037145928355200176909017807918925210629480218501699495667242992666069000560629413348728092765288589823072169003576665934263240355742932262183465947758037219389300272581648082359961353721136133492656675301609380703973733617249764081726167069619843025720682814409295434936905008393557624370634695672582898277307577466879970637563123800134522568984850200917175896556257787567793276394809514346898333078197381559104545453665679391788922576871788613245855374813935020224142363372187986355272962902713981313003754489641400629167856642560288806873142694140558750970694067685625529745345173140799187378243943010966121625340454830613243309789451502744771292915570524399023864804705696157728671535596882931308131543265242132298668798104402299384890045611676309530968907977892912567082232267481931727739408122648633704828858452672300663260387741623772122486079639171644051594911337749218771250763636324551284687701931671641422183313671091601915992181006870192330331445262486045724903283319742845993332401250668345388983470813608443677889588699972470371039869329251826116830724745824956394265063755571700698367675608742781761708144213193542164096801318581259460150310151684677867249581603394577003836557252667652764644171843453494303032215531412298763108789652999220740519959294004026001478131403400539416835455087742488554346449048536125424480022310470106316258511315208922738205540603509681290169158712518626797817683422911301467427969254752929098126433666644701475902164318854144131636581665064563284607250968798951518921798016866601126766047612480887785825962099915387051671985837657101254137189108117339930475710728008665346853299921834526473840024145410761434553882042076159986668440999648925622396246051861378599946275850842557894444771910890158544033877799932887807019421565242629595497626157720353635705281070841274267929953289233719708719944915857280377866597292431502506276291713381077685654384269749971692935485596293453551341457246832075176683660259359570126866841443577106631707613667320679529262920272787008932432850447283543590231241484447683693529214950868707144874441491424705357889172083718290252235551202174952524168455865974489683863904415921655736431759777773760300417210950368946443346028260328100858858464651134921486374499852781495309178459596115172029028670464294175685494589999386706162228273215392158995181798497646220874210245039252846554114760435400897599443408410337443829427633127613556654032759432754552590967125810207759989714163574624289405388208404688561298775015073087441204838486348832835454216867448548057672695057982674822287396217343753292577034913051095291998505691573740254634321204004659100255443607670450028336718077881463457020888619551685919059672510909476999848438437990441352379845805250535038039118332842306249609411195628210911469560402889926704801611770008051888459799659088557933577597083299887757837949812803564509768935301100102788168593648033531768800485524236406189458271577132530950524007704903141136648769273169657965240639369639111771569358891626568721405544080417075462963904716014784761939967422646775384486460008106760715174912716172287706169125944366812160389172621342828755450120595592260836609118969072084176845482093383495513591166998295775046917596589894168346776087049018097832641611010467446840730972213033155070866883540997471795216258317189199956469246675395382743284812735348871904587482751297803469637769474151902229435440426883646898597174523916576063121310954973800310293656687375278789605215981153369109988694702025930927954209616758233872410489455657189737906614348190663505433004884361443241016400949147962289173411634400503036196876948909853901530181203892139739713287692174602924362533506909540170083102496528468264141647787997687733699770361917971185258334543426705596457325424843546639907033402847517804888206649780921863561920691831371172850565694098287398352503726227976065293250138173375859700083187011826125224865267204160265120925451843549265718631523810474788093024765736672523208647619652074572718012474113605974184989197848269909673116177966109726862544790019156891563955081082810395584522581272790482663186612096394297136427573828199812613488616107984663150296870459134232509284130463406606131728759716934130294616343052475790980867066851150360090957986041923970887852190225789213874646165382785461524258940605686128307413905342458439330198979478708303185167465654270457437394462947807214503978256148835977975499645999995714041540102274797747553901161416138869430434183905345037868923119871893548078083137017326417810899340035121979687703342583497228081825309032202845648937752303364488300620276949301540193829989945691434561012268503140181083311495424996733357519892902397896580839626311264429300062723646523562177184118538039822921982262764652174348120916735067404046409760774152108471790065824545100722140045533951815573101882641730534455333127631809628805406139014457210640208155083744251387807149592769924946403146435887630854031726864936613385073269457861100789364822009629746245647160496076656820362611878923225171473578207992186190512077471045356238839109607887977402965542328529182285819627774589104985864583907975818151519084366948765311154348127246789922196104615539115201625155804370625877767604461953711372268692828698782805220804872822752089765761698049272766507044636752555865575388303564193762273439702312755805287475682303236014086146132157149336989670798116499510485354608803142700369339480139677209496893663183228272339731790255923554067398817797410213109172051019268321603102914511345995880494895034920795014250271866030909535578698854879337688930132112456119674703417234376726580439049380812392156389443110550191858869104545600017786556751305317488532503962001435204604118447027467146500643370191511045466022517054410734851536222421531425165329563478814865631208645257213016660532650508832461625277589836729251936315144811949964282836664215814593258040093497993813304880695656594903038887182082883611063576048497299675471248610434085323898585002333518253229051707241502861768932106364605193902758457507393136065226794438476046527297817852106212774853848266197388164147200324549503476081564245844659910955088114162829168104788290007585688708365666306892604347970998867913305554667861549804347380891765104641212128616424818461878696514392852216316052768599857046934808367143509539091796768994873036266291502824597537213055080723486276037788085818237899641848490221736655732611394726929905957350339322839317725772122677698588146126057437681336182506370674816916729774277025449764734649924098147257578920608734201548756542941857494194540725194538369634181517743683264908090085216645554938223736343786102292415481361199152362428447981495021760247606221164003356006587485597642671800082661473028939783468839498713270265907762099690718371958691103125822780062938474793776830930240769279229073817361889409042706799008438638198384212320250534587829967978320817161558125356718245981097709100446776673500443338574223082367485587938233038292819551739504560232866742968840681035131291931234936466735628611639512992207996266061888418074515636027436710024815435989467307937592959511393799296953755428500772161854522746079373042923443387930878315891679356980876728450414206034031217817216777129647945138975097650525709281474802584268827738575813500952346605512349289370942332433956571227027834043261745999909644420437960789977270328190614283445667825680458406728868594485284362891881961139227685848151607421352649947823172731827414583956354868268312208074934961915306854106525592276328754108447939531780293008653198453846381524294761571843466440399348131198266492494269939726870143312786088044317887143812450457482050476108030151582954284692470415895584628497206400839322462428766042721188791995686870886821074184108543202335757123230019805792431324207937134247243465099500561780316810664055224575542493848198872885214885982707728143003548724726247432001887280782649375644299346473015698937319299129072150981148946015466269662298580248864619395530919660263618501750113086495544126076374132220119013864456395126655727532840372503098196188603325265148309123511361524590944508970942688840179398816446988643495460571946836451396656517578392377716907075384119238015617121424082086800238588596710006644991058600761554921564334413217875841361251545980205028212963534357241517279098199792953339982693447819824351768386805098722473086444668152531269766229202442729599352400212417591727822988147946659762236217740324672231506301939758311691760004146868096857283892877375903007918714457144985001158926803873125322700221798777976262504566918782938159159695539777565742448102693125195040498772504014547016419500863418606210716921810878432280352935330425145046126154116993105439076408654425093668414138608964983830616967575568378876733690099070118804669692730020787936287856575462436451293710912854871805282277495755630821041256428997129447647479552416612199702103626594345810360951305045291472982683167975969750219546264424094919544385136452305822233831211247130803643139296124762577917498307633481545680914111218519332403847611753835926790557873928376622682159860162136984355020885989617987465891775453402052703642948060361826877708395128726940481250839085836791984827725345214420448868003962158292030924729428426868149202410828348904888204564213097071616547684195450567661430587174521480532102822538058216354864397792095328207014480558514482500838710264260393788244427834698156679501337825526340391543442817196613048560976074196514134767601296213680077834172460687114584410869880603343032756792433839300877574231173480500636336169045324368702243555501482326152904892214974337762821300256510369849040198763871722028584505110433010411111562369917478569301357427135475708331222494754480016326475425448907807677036883053827275997751810086420221065647994315745711756836297943093691310404007641242587479287823420541354030487818548137121674254806185769740684337261318963252885565016884045656999041825713215168875901497679975545071643611053550482423873853005403405218986889697245181341820603017315864192966276723379720742395129405104643160557862723939677592996844379744647218511281296176120370444599328102337102054929260422097108847961120657942297967799514397472390715779290254303953627853160877170736952783114759321651516867615664706738733392447851787348268757499397294921071877070369285850120851716556154884703709855374917524077630412263103307968929541470155310949723736278332956419129110376224470255040922842149662059667705131736255317382371400781265446205600922890772702870058666584147585969160150291078529679920869823865617203193058656945081716993347260096721294843397349486726072350185101355055139333461747688012604628197406343617045527722283882503329994383313604191327940105154529274690273731770055845356196135192041880796956570375695413241755693777746711679213178511355892856965108710517942273749496213060360217564146504166206565589976037769991982805225921921912234447400380228670925666731523022867339830894425454039057445448849200529736010074663165049970341528877982053809887630980783299790067257703864337829267312304675376737972929737391608104894520179504153671916094924697754270866759955047683726797171233296182318843806121584550354855985536791502496434203783872642201461088086259825379595705068324034822087643062421607110021446307065468135889619109854000685383495142590265602973080959509919430266561527144195063853686764208772838390341745166236256773967519789197101546064424650069046373766692770351597573176296630394293178487554829182653227789703119894897723918518243150189586793747139514833545259416085989397760526713352301516401375202317476554440345533117918698832968930576689821739535551816020845742287180522643099005569080246180357122971239652010471427413540098364886848062588497085609246749977805306707053133554515385276607888899471059843051626311233675614042769465204214699429101531993967950667222605003514604445634843875252013507794703826117977844699957796238798497896731442997921487922671311510209363080033991072580529234307616740117098896455399602365094692677484006876859480890798798684659206459215910808232606932159509901821383883125423911974845538406992730114740808357042602241540975954899081855139940440694278776495935543878339908717221662288540484938004135634040153427446467798348703946049635634665655692574174549981255694811769452328179974981789101706733989566334176780559800222446574596087003954120929960489222078080003165854251829381699439554381856750996906786044235342726184914953599816122140717311128171657014829384140915490308347868705974595890704652580024193528577885380713381747388644758049276574358372765228131548643378611923215759446465950047612276392377204200482048424478180100754021842356563904288495682024717357577905558360503401564883355222797050762397963501449506410712586522762835805469852207525421088222460099640956426603019009086757965758875243026663455269094252620613154179867895169811205458559705949900392211291622503948192852482321557876057130632975501129790329708031003381262909072789863312258461050914589515052752905195884284684921972509721706717216479336511098493930318516573100838221399717222814346074989771146892262147394106435651317603486428111641022090479730521150290214148746412240429748187940578929481214470756354403956159721329147661058555639267319584326439475714179004925664449287364148631268224684179431817118684035939025888671530853137969147824602450082483814184448750934913780011794286050259293553826183897528567445767991595717935493197358178733842471788674764800627698632818504280791885864616183990851516928785075957610889139603371039152736129928224744482987315961853775806965345245404964333088668643972751652459335701445792770732166990944926588275012426428752703416315162930313047167121067843411037488156230827804417075895134806338363557994256858841432537913910817420128248573854009010783154564212554072183619782286645251801620841164177200019521780154499003363540594951074186165787506656746004129892674577221651104247680926786560708596852710276062347290987546009832131464773912536983382481382221580039412953603903223744977533423143889270876989985777930195702350747635932808759735687000369117460040217810063210105877158112631136950809699402862534088772092377511182492324130432592027882371942426332351375904218220914207789968783593229267381899771147877748385574684322566724016110024981587535247580086524002441739153847421584617706001953616295829751838687416428747219394592420231484542764954323960809642475723374291706643129152521981301045837653733568761470100373169162972152160694259437948456696509265117150837212111121708894557594169765946845216484810682061709113087859257565238858871175442740172969539573263110643972911226522695566978717958427657371809518935096823118491778710751274841907926437887741031969059875084164580498805250099733195023806486054449202004924696565445917568055858807216448354295574563700749142527394602069752003583594119793134732577615846106802319479799290650706457780397381876378745157870113822957379487585194771578341910458692411941012713117845845825928812955430491407366939605378781924040259331386079871256675895926526800212293959635307956963222371996704608558060648220994905845151962488365533269071996558767750392250124348240231891892921010131714199980431589729196639806442080915086219786560469173091121940259552375838670439270223530517244634917489212802749140587036363546194313274167680349193882118686579740320597803777962430010492369319246269893721713517296611777835023264431294334553277875472167563822872731318839145231004018900624828933586115356861693714552694177206811203337811880212682637849278406152918930419607435738593258319623320249853302656267349140978117284027854020882432120412835207024030779781539624762100151089287398218515901063637148713296344400307567660698713926996947430271915788780642579636832625922211206554559021779186093855306684943077836693207835782702524760191431509500243518358936825557656781022335431496116052048722391892266938306156230913312802936164155040973262808055717628027895288192190171790835924138894242129635855262977273558688201481195921255681128205145141637735929212473722162359775407996844390256702458577166125379877236016558257387832876382376809537288370366185240379229205598903962348335697727598133524963452358459064807812119544006550139817220431295451956174644716227162950703074662045962682074344083498600529459339557382357494580885288484004812180408931646885410608283225879161371540851210669882501802400707408368112199545085211815133400252228524667535757686934626695964569324851864253693937441216808151428064436680507935985133058371132271792137231841245477929038349476219605030427790380441508237352150809468761895104740264845037865949354862571665135806647136596334574656171388811327820494961591764169846216852939964767395119948561223446953586196532535370587980273285871696837413105198464803287095176541693814466101115112338167448020609480170663992818525406481269219833271546251750996119526800107444916000455564700719873172128066997617107614396160255539027395705824802408767062109328985067597870362421981941631472884983140768683735897891958116834575814782524404052654175819948855722325375460812520350146246842756368211931233217063252327050006566044811900074417595158561643056783787577634073305117081125415101393770813384926690282263704419655846959999992202056021128643279261799309109512842735477634824127176937023807513093936025857677375268831329691007868115588765632987434055831683289776716249180419567557550256001404521217729773920210226486806114357085460155161501249499133551090375380466606058865130146523345196561022795619634193399121500071699705119900060136455854892924101821648733772311560225747160462672484650084132442988855869522026056895047416590505053920757068054671064766166000333425191360551568043215528110178680540210444484477451430193625633707990019451107005493347648261357856740517813058695907897077470629514394822530751211122116645958582792736673409951577089020836035459557914199419055841165078777358004336469805473625959568518490635933142585115537936779173387787443337232396184931197462455582208620212912951813909042066776242593288608833818300410832574703933659255389408218113778815524720464641781568250629202516849675045389232000268817711775998752994628844494289732336047332956978010414079512060614779776297136620223437539299952687384349821954173552103752233787217854007751023848352314449400064196025462569687131427872138273146506542048414417355448616063288494568661263888940223781341062163512854089087557314127433004679549760659017612229379696207881153757521520858788902967989348917374269594334281748810806365069811596594644457994853138253742420647273070610292333575786199825432656721774797530848003942918927116154509433814286159943725984345227531861367234185155327314916751551627850156889812448100928265068090323931117912408451353748854801229491907582414447911576580316549317600708494304404434970195334824797314672939264894314650767752737295802928865525893157994645821168717888248511864346012386234415503973796881105268834093586721661136881410327441517022132892929695367225384208506014511911636659417667095803081650306006430005950882331939746540898584292956524592847715306418226241288898614500815100436305100736869955178138497447253554894027188389219432001447995641781306189939454468962014584787316642843743015087010034845735370585150785823528847068000493006599139730295632869067089256619533743530543408744518337101898343882833723909835704543741160832126234489260748054440784468934589762346427590439512981557897130091192704969201897398125989801160409799916596375535140950443607254184357311581675136544696262396727725670564643354102960739333807494138059621347318442425054053060244559161834033261560982680670821377203563954219508351344737215644309061721908884149320634764976282694674780854079542434305930518427009415181674644859508665590064757476293733295912170411392770836502964007532822954639949753510611244910880190661982741232936035507762279470200735769593524920741490373880176046535955377104164899327139663269309806212424659710457282692073527174235127085922126908111506894325086444733575916327485844923094005923684154048128699705993347132936017939572870372153823333654867494483374104245890464270235576797185290097323845668781854972099050810496962374117140089075510673855526518758400476081780805543823393970771670995232205392126858331836514438509426268035171979047108845710894601973404823605702878935329870514229435743278577947296263789484299859278442283451723037767838773984315756925367855691940814958089990684871648764620150864085828615754874507480178841772606350378474433089178816394897524939982574781344978417641821290532175682240611029366820547477339497843593726289399285661964157268165532177486518987221360415718855063226220922400164038932083752364993515655939081895784413042609675106551757775549779110070099840183313574293330337837246653138142096601235464373558705616025988140951342444445202410270897264127929350978411651640923224632598107190585230331333246824782394355598327228150073019027820134065188666418261656620257809769130881517579793885366846775808809252435288613273598035812689914925955794753740557584097554626751571471252548885679330177013941295690969177961325541732437282497021779787983940853697092631070454586114023697959594940164384337853744946172364785800277504095079522726431449115991838773757129212248501683814378549774392443799670545931953690942343303850812704821287574515075565245821924578404585381649370852936144411937001052018535869078751551460030528083906062043071167544019673441949168795789977503610948721657116015883357296636223264159440981536990664791182606146110884874170846521143839891979794067385684094669210756992339020544240568701373442574811558467872702271462294583024945958195915297572203933616442608582823173557395708352476325387853390665622719733474612185822678658035967175031364649233508203085841643562059933582842489370953486012629413294516391147739559131873025578535132994493500809564388982375857684987833933040140260961373808175212242429543978365175198092361633639213628641053374334941986950910726959409710842912082974691235885047855636087555496518960075910615240876428188166417825249207033676920679147616342242864641191593698507039152532724064706804913644059682269887205036181760836438455131838893398153833226876663237747688108718683589240186010106344541669318026307324916736742643120080885118669406965875875439543121729947685863012437674213420659422742372536484674601715248675974543177948602587314901691557782201226989498389754491587752929253312920794671609745171553837332937122492536001654554940667698138146615434409662782763185178865962393565936688406225406369440563246357507685831665263456832866257611898268188257779238790352137597594289346023855070627596180923186002519702859767156007934547236233406939429218933936075855542948967435261304413969315447797659019421755741124726836567271519760633458905074322385196509005676243379087288120634773332167704299185621348063430138696018577919142758453072083389153536666758599614289462859348214587870243777889807415335897746730706574640949812243396079894205182152387316445297726880169370668508594530497466461589182489843242858878271264400653374412561302312644801207101316088836124615204542869413981908028309653843129722045566822084516388554089665174037007185041907934593435234474609652909028715926937302877348611479921300073871556569058692935494087590492199155356983177617547141166177256030149266474034259055869373561011050430231590099916183307038842243380210323780168000084969665809703878323353099282205743545683250135675197978180669028492647019930331074520093978008223849959519897859641855419061874164130851147131692755210726620730218178517225641171543999952236981848572135189776141998907362275616960653817834376529045792327871680925265973362312577060264287263818007112515934585653300943907158949470171855616500960919476089302752253796301432969479588911027609320925356155310140880850916911108221217691851600467432052914820196501839676667281750609958623301823797850275675629964273802874316294614863980886489477020513702956599935927843358018234741118443720083146878323800190161268114295835760457628495831730218251378572131781184363310771628723522913678538424766364511816862097802435837052965854904197426248738122456842178926000710821381146531052509252524611468551414576971713824066571217722307542159217902138913473652007951578938487119515888001673461601957596965988503847704383041069926730255688490132410460576524162787221216705967889454871166881129818581824034400667126412348947037148336424439107642197706026896315527843420416581501623180225063814521343481745174162559425942463196693902652793678294884127560941614346455396976780981446834111832955622574527904558744622397292958268995856326137397899239937737984746311628463697568887079108467137565765663362664367578845727887068673581635053135463494954654289603501423886902507584805820407224088110862126003840064342914888018734657615012246938502561088794921919460338382052551516118160895065343915196228431586627412235900685594070925900834032857324578758813352259625800100967839082067722921367804456361186701218216544425586871683979873167603093796608972346661941186946275593451432428661856267499897865674435117742282503568477267863124939732787833044514583071078981148240575678832639439494816907308524856959904918275705242799929610437558443716966734654674476656801414882450579858901358587124588066826609035857297475313906289058962337342506816483483157061453783078642348469472501799319785225733442542975582158790486783242547798189484672324202954162793545519775436435624067140489704438818413703082743724972359507060099198690403437646890272812707196984441829410584685237334923231711232653243656650996391060522465445527528796196584185235200876145832194338067674173404156853991071348098099467669342326406000074007866015908916942312568483979741920023345265344282839257776889169233733084956873641932406875938768852541013982847413182083438610092964138214579945812919378006769377669484551439784581186718193717612981446284494262244307849861326975934766965717929486460565556571247471960942726679232697797266152511581912800419994495104110635359083869378511048681346096501043077388928439064892149738725496094501444921114090886028749166588913968213812941305545642387274373717199521438412367953202680215088965780584751075597332294628914212483867111729332506767526682983227660606672239062890200924744148687875148322129128754329229273081390032310942060142587940861550638768951968533826089725725847966127788609583480666035813029087898998779081319054275071961843865446885455225429031578958272365835575571909813898508209684621133041575815297169254969314429222794560208297389019731605683901883665590767166589708180649649179492361708881383973629844225734412122445865289998404849167646240839832084258211228953518785310373683475061074549750554103270318734312048170737954637968866209123079532948645985794525678397272402821058026101269950742142843379496583537666721151718467171189455222227055792908136859210619513372449652243621857970243660401221082149599225917519690654442697200927302580769486377568144470719943585359437744453932583832522820493243453970085798243421137708656642600545237830623643262526834363529196075455253537507891303841333465304621593450177212353229989784710746434559670742289015727258863773030838735753519033587880182770056663353685551041862890632879980094665916645914156900626703093448175495733310671868728856864335128516655124564201357059596810976523908836813552481583262044647440720768764681084794174956751336184587220730967815716590829641396846298281475443152181520431635713987907123125081152658529537237270560626877854840860324841825795454825594758269908976337265787521817365136926057814561044872296607749044359440255751837228494124252560294619470207843078039472848042015119630417154883219711206911876206440877250272011516168832614095724460004186916087083425597266011978114293833643008790348734467160272930221477832210609536512040297653092940868830608257647353523556052494699770172227991630975404304590442875041442384458791153096023538105097591039725059237165143205012755609967429476603009936337908432063328490683132858823812086328347026483058209065129018793295756899968764726492576322722077158528168183448995038775654010941335910963198705013314778698338522893025790354004942137022078544937814523347100707533628179652095427661611067028044289259848989876108518943296172664763184418396719336913254743858436965394408618431729810032835780378851054725237813876770095516245392568268445743802316601906728858095577020369257419310602699776023111843784214368537080316619290032632959877090486712193172564413251026448123030883126500100099996928948335481390717008240756067748219875434110893417027643542497408301934668636790346543020769821912384439464024971190222642056523795091597698265314029281511275881300488203694379496438862699878366681183171006142561747728364161549014262640042711413816763195751681831287620027755234772197828748907227170850252988802795655065305208106990978279851281853333270323985090721253989984400563971619755677397845472905643174492671608430950916395404239367427408088286838043400223225133659421368207630572187871182946776064936930279984825894246700411056098252785462556722961169215475229733058844943132355480865932107659100445690977303565521727903494849443490739677188922483148152318597053083782754063179872153684614680097537618917738754011820243648191545724589866946742648846483199342598296913336876839556612123937283461200672898670746141598186452114999175446086460559418042338298165313125650078210734107267988159141092341039968041009598099717511287608038864648800612762798906348735257278419695142182453822080787688003215572127807720794278052419846515802977980633850350729084098124400522797081287661857170515718746097624946894860090147322208356194462648712960845943704580081728998625944275989836890524748589253025929694440153666605838658120530811305005342530704149121053596241305689957531073631137418686577585932984648261068232991422441011738683487438842586538802593683593433244034396595005853523459951418766110428817353128813698200623602862670418188290420365017600968437736414959605944282021716129811862800691797640930310646638089340207795065532850593011100792733853420562764468133320779672686504957200178308084979243138489217319158293330969757806537545822014005863038779951048806110826199972852974319942207139239589213193899258814646227360373556098753480669961082601227240572543477879134954878326896663748139348363677238983867931264464949173581757647709959970193656209842649114919550416050536274843987129584758467871237074337381232442691410803275091808410838439049559528629104359107199781494184737091333974155850254861673979267409324436170192329360026379482016338359345714587869075515150462562554077338055330536940441301515091856741131093859184358480245208475085537975674658832636322292971126838560817780346204693672505417651839782690714054020930409225422388297336172235686280844637305244419332612957141900061823170799789819117629286013082931473441576040418306832894824063650049196625002843834010459939360504666486597796920971946210442719992077263699734720796470994543679413447425842549150909663501481563923192288339922013162921529406535290184178407709254852219485229305542249547874706048165447934353571827483185625162041624655192015897801938195930346459370194829996896969996491332239535767369058313845539418545641115512573499456686958568550355668109611513122435345172639128951449083271470541581232902992832780578814336965346281337386812560273331935438925900365809635975801172395962699518007334997787870541597362121659686465329457884430705526717526415375369183433887989166049067190681586502077071062787540657072329445201148160024837831672571792600068833343990126584015042779562041427859263629579651783670301652485538096254490812219091104499307944624488809653755741716842505509659898257864966486799047194514145349032145335511524696650207828812714643410025970903375897749721842491375901169577582858107135883763969414475887717880489253796861213040463333431421167436867365874975455541003317186284849394982227350472898689236073447335630669801775950849996632877090493730842090147079540887262663311888634324048727917152869223996080897116516563170375903625171370200058883918403130045850652439780045495035831011098625774394396236662379813578037287816519690815122377367190158454134821725167033388170992341018836708481854428141806063316576897830904483176441675962147821892979303312964437854403397053646356239264098935979074435126446102969961377793571812258336680403199305915525277399774638788109985988109973365646459161081469649791242118675227584081193824953036512092740785173878352153772201458975228295851996036081983710410783641971895206361914391335334746211420807451583054935738279974355497994298980239378916824827985536768909160497680789846147364906667721246053758822856553275787145801148056509674945874480894831314386420113058049977933399914410702545561895037063858396876940594812694008223703432975318019762512568430520454176195191978078242347807745931472691722852138757120038948287118033575318096899002381898305439762541637993553447356371226388903713561884611490291490594868555734550002440313088707356620979216444486437619326820888939501160659723451718605173652878656065891797593953177730827934835983356568903636388974516475266882259216539446396987963930085655727013277346793287936465178162141566191339405440551715282627158490401073729663713845595059575173722216203682019447377619587625429811099387493389768423990414459079303256383220694657743797092187766748871343074444770438110976242393780347384950960884785726368833952628665510007503716346961299005357396187386631352199174016612089662973153407518521635119161144831963332192876542852854853366859147921288604101030140651466838456622439281386762751537308126794607926359450056204743228382273142872301255595467497892648612716609268251369731791914373030842112652724594873386848509077363155185118619401864169760907250829534860965952184541497555474328685932143736658996928105821643458829559315144773940778849191508417521285610755171831852436140611146396179605806267986239968201150081068665716758418852208671990120776722185725455988561332512020065692463896412749475882768928521913948458878460037112777107311717725579242526834479858770477410084394534655705044510378391827532010402462551863847216905171925090521801150975091544520391897541735622054746293111134219545747361641845166997129825471221738486160297297015829723066596625439918134619769085306153962615441491280891298607311152723960983983228160206793545278716885328406069509148070090838669089868651816548271243265269875084948430789550067006317954677817125466065260610070296566649547972196670677239928007541144615616878817689777475436807834319819861595405726753552352733007003465466888429780569850744580518117145049429646138997737178533230998280539045085961667262522247770568286695631849289072555572653185948079920715571393914543134436638012911241999819219768312776371229779663429011839185151181695208892497095697011222666825413283781175013749045028777530733650293788502587899667295678975568783966365370557550928984876592336394508388463908565816632772217326478451113067640935523940437297352573525155078527279214494949095285106282462044245584571774262923736521521441205957936083405036813236637283668602737315788277682250548696864447060251126772632749400916196370887319443827888414179258433178100665481989644401864599333126541143932522667063932111370680968500365880258757046563680642071401615283686715165601603061934275582774962074768023363974475263586502647954915380336773100513000820642243010564877043002381232470342886747317640507075266768430971373752435875012916647579145041444944615479672011844063029859285407387665447828488828967953000067417720471282731228551254934891142035110534583032368680356019127004452516564676336405607483885595777638979660985690169893838641025431702846372904400405115112605899107365855315655121497780674218945735628657783391246435490924053696303701786040680618401977847325620910665652998956801503373024364696090127156271882895153185858001839151452327396568874044772458822638507946245039718551077390151494635961475384463317201022403685615330264456991434052812882146798992808204141964919740225406335833456750686748897654774393694217927465830375106330092480313471063382962443096029218081356611483529915307997712753094169624646349365702902311295075369247024341394389856167921273646940014442629141386946345795919613164013576094136175104433510527856996877075540823204560920504549781337475237861415378856989298148834399343919307237806772351892431329901136613395024847008374437105369475745870341678956797863215882276766106756079616694616991498747305133541090104113356543987169682842229647427232947499850287132047533637119883386794421204628325304254621861476500743335936299571678856361856502940992690707778326931354278472944552288983130369952219263490993064637045506350262732365186901335725345990700130657017313171889980774515255079573719614484922704762853955306274745676732250223377982106515855627737911815423598696503563213215603867509095715786290823340418991522768196449507400508397649731026737231449494458761096103455724990501850568879946112362602467939672958355007303477439702395140915594660906486537145973873108005105937440353509286862276717563845677490166952745987182044770313887519632869796776588593956505795770511116706292284280356349626153338800405395202935622778976008837573125840218248374333196139570350922716330299034656331225960221560383270084449342839842694501402468375088607154845469214650372862430237184355725334059619616190284292529175135501434805295851319789658219073033271210137934303653241927207315709534414925659675770048907092800057492068016625623455090465058150376607766871420355508318215584581862419551965586010607733737591513696246752489328660463674818443556868198938736205698309555792460700957178292267855833465882797014842976375923670633238011563503946470600761121812913498832497626552774056744386093670932486301966325063612709405051629612588378041022998640612261385559338928584361734922372028474519279301382549936887411470756228114900838625056593988575868272208819356663352990711019504392305124995215541394694135506073549187996212998399532065407525806670863728187431419118840552377170146134031547167724215180925812234121671898530744513251939432619820520413681422075093180702170780914631518258708326989101087005005173538563576884625314715609504952789012681818371142136658031026793189258219798130799916872743676448008036618724149171792090643258648954890914000049104900881041105353551861410847199345734561167616670682578124253807235956913054972533715509109430874511330576537520935241191969810319571310440192877218454694944077677218410703772638814752438807093549537378800713022979817815644934876266151271684824481584358694067217911577621396244029070650669509838232083322988718241903435685883171318935914543708779734329767906474258895027265730665693269556826902771654421315451867228266361861797420977183813459486152795635910113853654991890697788232931760557933340427107626411303974030429589264307278973169719433186260083765392910904831445116376579532641704039244951026010812442483560503309988092553465679975837051495664057434207516377653425599826228985450371837000840656594994423927744803228778788918910474173971351850939786823912800203197348798949760382324288705845730128854711999837492076799529597339460774509868296356696097514077346037173960756568559353790461721399696999584111724380641882451728157430660289059101900409959777256243713788031916451137979607338708109754166714263352007224289495340845453340729743953082039105040510340888810015919264967953050446213315081021732003711555657675330773325618700644726127392128654879211077909599691442437873910237577750622519492032682967003961786031933470102904188800831169710009512334743380922895648169309835340842670135609055256722450313945635327033023774804512000880526948369063479528724968596152713136437044881858194762643321673592302471021484319775269580706815276972190197456485756279497370115079581420542024570486683840065897610845690564378195914488035541305477634615587423018340280667240893875284123776783285227827355126017580512324728418847941292701890690576841793748609081473545372992035218624264443858227966872859450685790609919951854196714348574385366494743741435624678602571086479095751019005939090401994784351633671603568151235041097675252980534592937154218916142086809621225743408129998699885604034049718802597470929379436911064268648921375323148738685222131139536401965956904693130931564461072274867005942795907685831955127071206622488803005698406217001824687621814971661677361136987466026418727796266082932784025910212783446055566539220919932400160965063733092015177034938377513788405450410984845510621914399110168021638996699141923976276439942463274077471962012992797777957816859722005616003487385751412485355123926715207062153580664772575435566579174190128387602493000511607991585783606602513226639342808672260992719760146111598192474481752990082436610039290460722591400546071546241267411364470057992815335442853084334926025072251587331589689310673247291452568474414592204677203195805632067560275137278954249376840025279529410061252345565845754596663943711760242332044903160090524228604688545898623897611726560563967959977446625319774567127291911447235464688788865228279401514011588925884358583927507203551323582725328541735720202551819464114499087954433601070918603464765704921786160253433426955492398449886524345778437799318098237469728281127428514992361803276014098108493323575252203422869884947821363834212027194212353382550430996187962890333930248125018173684845800998167378589093001096708393614325566439474701014309821368029899243624634202486776086093299000803376069215795454446060133455060817185341175687702414245509201557290810416188712414807342618179644604112997702587323844149677203347065669963907811702762362662061196774948108952962865272934372611487087234503005825540765569237504256993726793628423495945577274285638050285436397921234063032498592737247532002180788717173552995595429815178494800038772782019498409496487552891343408839455196361337189641148070990624434154110657493932204418025728255276369060964930312556295385637284688100700730535659508245266377515478678750547270412790873161967800848834452305453517069079004819458767552068074600786642896660237510043597597980377984287044296391747530440345836754810642022828294902241952231233252763219843987429544811845829465383125836033258403320795221290012015909209105760972547660374365624441715115450052906236577345510750218170604004026823631138938497780142342827582585166858101029281142752459569163767256661031156301824506790595783618915568535554964222570559948364837895841810415456972247430096456244830772111584294327404694516581394991988389072029841904228874752034937866798208676067063712272960365396344195764626209112976768123732395048151286228365216313786947339008556460235918561492585670582072516030854126636972633307339649714787365154045547514316308546896084963402942559470131007394596741895152044083920828334125487268231522762415304935974771967374275445418084239201189951810239860409674338899605050102556802570984665312406692723773254830231104229995580077144185410616373797089868041109624821875761592996291606441471715180808759326955117035657767968172598436658016108171429213129329797170141482061355921275064893332678089600213842346200329483026282713482136734507987282110705939836054405018417586145873830866940755000863862597176017729940423449639156107253094139006394459146898899455027736979133734217150065052475520895375528703766072495769744870301901041464958484231728206690552760068000382252948357840525530886202480624794646702498429033819092328914871430512887927638868226018142310252446885280366536519733563580018640687023376811006272273677135770292563990036868929521226871394388652141067265420908801444172575401057093153028843590649442584404656086203328510038548117815605130073941027187745447565627046938307538861667553889522637693442894892481195607906775422699002422709210102129439654375308603057224481250072905379062390768477470675797694292420723408827159915365201308238097076052022221039377527595749422219359258772116643405809694924261041106515113515233877013369896358647059069164170802353250167689588175587150749021997012567252863453154506674933890504852997041277997677840080586305059823002371852465175525287229001158961777010290306515983337580293505398890680749098495079742684654630853012551851710877872298817201919974952193276905522595352455452297523834693956860130891721964125684641373259123952774258098407359141027902476463795262266039986293069944661927018191301967281308297453131153637641508945874680694573385869808426512611089441922322407421778452188168554145023559152496745282229552025411426548831744728154623147672931052708816262171683298959541617409771103242301498975127803591454611513271651469998261522634772481780472597215640796002991039885771367001350713509853054672689652139771175996167938559203175018200374055302065326470701240932566124969687461769723887959610368792208477184458269550419244867498280477664686307619391293668358055938912730896162340717624332118273159630510735350509260152358109003824698295787336572813434851092837522436684094861691379175781020777225204743274677020326688356043471681845108778236668033039912941184179152811505072556581450416285485035469803446366253268191016110170532591929322437153330903916075390252367593036134939769128453416110915515750350499244627769518511911514989268575941729076853773449479989625308270679983427009518165450266073648496087687854721669925264331394765032113182477553370466942974644171165700955040208342429919290264404118299193550814999727741927427115418717027026013150800151471219369528742992813752148892679786713019112443652750429072136929288387716753531140536593471923373630348042840917182499540124324542253395419912293299836920102882393203348107993035730571899455978200998557462790830200493168910781539132400518974801321219669523037271077204074142722959655653834452303513539347487977770009968106449800713315647882518703297270501601971787637065936557127774049948400675872133617217688407241338207303120660208284831521762661908412728544739569603554801148718483609919495568029148102885999535847519093360852846514297614158236296644600801896677465969774339428947414976031306162755456077186978516675315233451836586831772153767091470456182243353404676368607051668360409266307093192071005206794831364199163581704415798271503200614115967991732434162157976960878992052331420381521594825936054502533221445899838543672802207871897350558406383913737368350473445430815993609261678453101680475640904174776889918458684737773487659310664214170838006151241143971387338632097874685238278499093387922134970058567626050127427744159492212210350550707688038755591039861285250376886297780207925821814978159937699728879846005369940024660389984466768806092564486299165081872300256234636993589613683222125565381929181137984126859925872003946472412874234130690927683871361643799702768991706274493443875701852104264610361126831004711894229788641424688161923579864982271744667701428503475794561782801519338411628582438017708759030201682067134073368936442239073863941435879408556741340832435082576836324383861672903769639450653564362367653352942511473763307182250860697672508814802524960522776095522239893293159444310487916869558572602996822982734736877913958245590623247502419935480861382369068158723330698850869733623731277688498353990871137759690935431499117919806147762610039649611426084610193964533225985230625806468122212035922368144014120319465982465878318528604890803441638282552301894479743603704352651225295675564633302790115768867402300978421997753828577286184348018147266774114852125096033521635021933157268016456031853605898670464501168048229881358975796474224991786549246058992015997584322910931399825438744593635260638325610619388074146632029043267732380979990344476987600174551150983839707881884125155229127272527638541744337901152272646268435369759053865115704012431106627163691707507567355234807450679589389875524403433692326567704219966632433888431342472741304618222667076728273248656060147626848688566191920458340796854125870836262264299232407348903682800055035334978507739825910785069315032829068742680232780378447330631620109407337064107329290560373404828509328639636680716112563956792995174380256385059951818122752858218851011617869172194107317437590498795255390789265701638684348103794309174779675793204782599024472528044541895592214137440517218731015423447292678911482392977886224445359322886769099317586931180382617593076077352226529754254432486870880746658520657972882751963808611532855320114983900314153166855001131212021573002199038716806890544196937882431880863012940868156153926174632451510368108188561999773114246350610975554224623437621683738890434401696057486031463737877264891829262275495049584088729881818615286452626411105735280959763784167632145961154417643127974175632746055714482624731865867312476978686251103354200619872866790705540701253660024761607076254562904222251322751131674183212498272671472467530217253276399918913700202812747664140839751555929489800628268152084526415826739465844512069792453970771336198750870732631058803309715354231288089258740536536964665812684547801477018346378525692066813117734679609021944813170157163393848883064623617106053236298987655300500916416862154404957831448819522659914872708500853019673595328603166980457294816313022418591892068479863599653732564093788780803341659345875103848515382410330082758984582982040316081128930674419494935293435340532652834843944244884768628198775673765158385378846696259358520014731469266416954247827399581299789200439358066380777218377175931492136582756217593841649240262020567715317295094986367717418147833465935816720058268810287316476957276085840841111063710301159196140192929012531704139411332284312466330364174446177951061700934855105480104340256379322136902203846939280928876919464681037939867654845076317035724308865203735336171635976641877555017857759659994948649661758584509552136189703168490447162304613432342926408382961494880913066443890585601673684757835613725096354802762129587467108697641854716463892461174180747638892619620422716645428223283544372268419470187273996588255713253455480379623234340929422120625100330258876952553174530411921485136413204432807941435483253446527082782374095267256481679411635754761496844832540500031041343230030285099405726379767948393084682636018838211043936867030248199226100741651001297750891224225638955058937523714141647861495788775455550176489125194069224034291648599612643992918421851041346328288224297872958764416976627462676951166637815241117270715081138689589869980369330561946510202892683041448499330567007297148720775965446511867341111431950602599881157303756500964359000030968683237127735379236070397893592844181353882990887114134556317397154624490312149175773532584773620782498018502618011896800359059728953325736938939129463361801100059023981544184911901442866398168710299022763757868848061969860529544690467636470869924725961443257771666479243354763979930575595161370180731201602868338497526890101236196121296235197496738098901218883633259128404994738354028913023892356443859906489803053442275689333116992546782385661372429876681854541739568764374804751222196487168217605280855459770152132251215310705728598122505958923869446473390571196264651902832505392258709792626966966423453830834045150670442727330107557302463472244802992582234492906647923282012036966125582123144024097331173712469044128081427088297408110753056275038530825421057040647534307311655630351766271297279923735756868475145870563341095138066707319812464135977814647268416567759612662455613422840543853189957499682213953562552246001310868805402721770918238344858084169898305153848702953404977328142905302371566507626988988100483800448747192288908038765390535538322586439352916023812669586566834816251302216944815955554085023011593065284655228842868800608539452903758474499245560613010415958061630235763256134366473966471902603203496668373911530327486531246646689570976188269017438791206071751943355645274470763773847030387000153552594096911401835899870196233878559922219496315916735676552792957250474715581813388202544203049325656741719489294000575780926079728627720937332494447394656003323249875443954480462708423783355833440442392208314716946113353754344705789120927679403935570483012361367588815426149885632590432283821491376085872501345661054492811018921530707955146853913680685572940639758579211179400084116137029924005395672190486994743017728180876872678398864224622164243287869008267259207881911351384140314925988713694045175523848422674771955953617316975462340570230086270032387392427253490235849340588573969640821930452767636630254279691531950412827165130770612584825196129317943553315384595439275036911380033037850200223934586977366191244146310646860157259087328613403196330564062545810086782300163904783206327955410658513799706919088321746169747954582656173423971217261113881629757381040803212103123061730134401792246633322416123069474820226541897339616434465755965781721986108833534248478109705900291887389567903062736249191479832151781716208859212649811080832746965914858918722587596505024151248588181616034221002863586045720577569673562020262334130147473571717719780640763051479225528037538460801181713198179598388733237487182500884816958558362012852122996447113523297853824532875294001272037175300981471998377892911456122657845875071667730695354838793826319341727461443435995126306572910930746768744762349538663915786742910573386009839167103550094877428407950327487332249890947218866362880920369025081400740600246737184752346366719010528589758520839960966189770407023571527908855589956832751721067392992326674856052478406318325817796025641466170656071247147341731647317050291169564834910742854312315548086143766065737693602161060451106559951735281250228645326989078694753664319075463218489159831841255258686112784251133106135517551767269968725893273888888805602155697942745707608012017869377622868983423649163617695534892390632619941709710161204732329174862725759086094206365951075899450574693949335452056389403410745293988890649287872830288637894574073627328691617427876962080867272137506243167943676453901365431095366237585820315867975680352101220168055060413219563255742914077597742351292508340880113931690182227682534201981717593657796526089959353647617238704172128504554624567869049512592938937577455868922494591107286491593165073710421459273138554868575483239936209109222509517524302403952497960293810071070927011268904905876312506477093024674635879128702354211069685712256202679478786553468214452971918074223822261243138300782979251357248093925686490531458583699737715597194684954221168219814841498193841010660302980901960376854161131982226112958913158083848836411862710663845052316804353251223527872962384623351148475289771689143640948231428376352777195645189292002819790628342237130661676797481857218668561802155311346217980535046980272668455224450371357960478912002250177368474089590461677122894110966023817506111151549072005274914880447076926758855761554065590266324794743302662836228365558643839021997738194073483805523778344778643329086089567418896046398364436904210205325481441614160771822847469744605092098307868065829545121521223061317100932798996092073743954569294976365733676880865368266273957342000847839902704975769874008628126341615623696474837474471097609859298916277043207624639171967315970505166774012630949444042149728684139411833051921347325512605228261005340273205468704061195834301109225202944016689331218485913580652694939820608990358058250036670080751973816086838837667378687168533786340342109622731781379388563246462353895727988016740839014138258120015864397009073444730338673002720116452765197847763962160903289889953727365576191297299709256318941178016502368265637715282612770752201917966244577404582117419744109242577007058293375389097457673504165576309777484627593514092751631872750318184620541592456162136744843713313308637799943113179643479983565982385531533189745930812111205131545214123610503980761083873456725156615267350661457831353038575430935179648830936443400166708329729410210001711446061202678984123068848434336069299431680979032205676947403710711692882167290722008419442898958148065901443978646794449177245769940552140981469325978274783480775025305854196981252078889170965893016783783829807025567617564117943769706551568689517007162296317715422136409533615262064201669647951027632957382501392732092727632586778046270814994621899766267950572285973493828488753035481241668168799568976411186889293003977038159158125702673628109192877386591806034610487422790696552882170349638193226902474122160929843471079114086763686220068784712709998849646766642871809872130947777924062323599262660608407224896762863146472721102677220555378075396328729841377416843270186741038826500999623694067314429119652476221201070704813583259439996939818639887386993545537489424782788284434208439736216160531564630055669822956764458991882096257531202527117090227403737868549788813084700145131433928865331189140212734716036816988478241426502191168183685960101537819041261283142675771044282816452668773520037019154755398679896931545039365085589328714116141135240893871199125120630476839184651795620335328305795220048821668249980868767249955322357735385302998531568437895162688431975875301410314382912312467890841457105068629978701146334900140524416504158822954516444939529158817538708094001683495000671155431251705243207309293223715538169174152474058016209664289434622180916307551769198574561907000160840375578168584978551155890135883166334047117911261043964299148725153960748136932106632930349593145298326123007183086156556748599080674596973707763685296531069917950617980959877391732690608270105291312076305716815831719128286214422839404310601521727812910837403240938388195711958884095929012640755461051807160515723464773093093729655756579445450416891412387934057117336550080643243857060789609394083154020542939179358298432024702802085954207790825104830066537033280623815081307351702580738264421835072608474173362471121055951714465960388314974045872551509582333259516709465518417630760522801697723022474746077551138410990190783959692315306571879613266266102056668780415099566650400858957481298625755464008106073560857167380664596284332221441542110374489764546485881280077784784867692614162234214182698762219916913174168800443104398744545321039224433815757757512753184565944264169538064135530831081536614807851670180396012347368976303535348281620196026023227424884541292567486535026500505899644823325853064117259756936147353200121347462850969294483170454879246627208007881435101265353878277911049000678476736700679077850017924203042740836624133049475982042512794984502213042709387450080317292684272630194872736632456124157213437557732238165266418861538723934719628705412468703303845505268054968574023338436852058442014494274710260947099899154669314082264162698252178105951931218896612191209871485962825190181608776160165976442204553551334785108391155018206304570329784084495350708230876196857857284387985174673063011868964355168826587326012257768539751189098454375718891015714197071054207376265557356391207576333917234214286279511566691801372695772790459500435781825889031973403024539943224339974823630841532134507313378103271509976009722322990580706224891786743598748326963453571741292035375461780691754552920371919561555802657084106043762086316214401428463756801687468354573252426979401399941845811107349383159678159065071488535308295742007071745389849321359330896972420059930173900224790550183918013997711593950573738735537030637403989079775783013510820189246760181803442173252373374280050745126869424189656954195673081293909205618119102796455621684240796891704566229672288018414465426553021651779295854402324090000975038224851697505938444806976484687383002219650135456149838714708884798540037253799351803238305909817131654066519752180506257583900288484722418486745958656927476062437331181424500200194531665169988242003327709244440522142865396782414606175496185758179992737370216167052183929510449876686868290909371847227300807382620907651060646218084734576228427013907835369992436729116010630411883351416349802688449972119971680302335345149365085384572803871532625360128794103508901733417106486085270135425880796083882840654100992786885184713737016930551959355871328128989815317710426317345644234174814025633562479738440143226506041818482568807559245825148009997548395134394523201842964415424850869102466047154350810725930349522756526338069275282977724939950552955461823206445710968609179043427766729469563140741799667887198581287569049362450867702829404058388072467279208237300930699093279453492125059706091127471348205059463634220893249862342240616797481798986760573504721657699455634057953653703016111486568197614880127640649082095534405550041503324904827659173913995021744741469739390816669118193568302612252440780644257721336725549278769435175348615865160080384205180061387210879542593921807786279792045857761745738070587547324362329904316327548599530838371321159404153931262311323691755731066451693864927190068382615589066993986565088610599546791308201971039538994514098195415101590378273268926317437203703288254554402138522857053187776534375039154389995057362019395947818865129685349305745521631195152011011551988059115841594547078994742622480016643283615336304325073790423224428143269845073097647555665078065063257452050237604949766602390527915000273249322623377237408770669689750387359414186048973963417879797162827504322752055634413861775329537532964904146662201915249203264394197047984929415296291317041385055343396966038371367536050374878253246687151192789489742733295220331354006962587250217647367491972733093604404541366549225354288942219820344012709465282741203274328338882303872099429957613791819047097637024636997468515832241428796617974620481331247802992570246974811479692955415507222794679179753894932768669386462856679254575595781794423041460148012068861341354613400762578474358225436717091348438733017249615149004347979568235923677019268246240526537072173740092391121275137655222022295561098662474792466732604251931383531519891031347218354287567683891354893104971279039334986811832559700408829001606984459022906637660797320387392792973395158326216170024237085288521064584773379800132023558307499834620664376094947285375544086066890105312964604155242540018775388900462052813566060160268906151509648132420867078152783838113175374593176136543991344837827603220458061797271595165300914526423383074336509140826282320711765622158668392743512460438630267282685922000072849586782055935619854730660282324497112043665317753678225172521325464872461637140431063728087890497781588180363341487493944619629817750887413909117281991130847392057447983883903780254406169126234579258231135828085857572627287661808565017958366850003329285533944839786029619879183967247978144778322282491780077733834455143012832706685420043248552384470241630558510431406613669616318832565082447071961106888449740036337871649748788749187913311460177388461555361318129071053899130766146392095749983455710853844913888458122873752026134472758387775827114413498816360382073749081788520396291125097881922207884382761958052700111460186786393176093569126369183604650439640011140971319668779443783655488309922995260688882645126417837273942329901423580069417278741919005891928584931545624135532565135380864254778926872133542930591560351752031253066282146307253713309448833330035266950403077269623507756783153167270191511556502762072449488869900897684498206840464710343154971492938713045503507671292624647627150934262171247507676799464928361991168181846620432126983363719898762069820228213537793071147202182823876358485438549200685898106871127208197667554534264681798495256060100076318980010341333623317579229937000652999850741529506703395645564570816632949877153518822240566564880650811725938265453424373851340870143458464137968932010663873428710250133722101089932644099553389011034340261764164531488244377529362847138590481459395080287939471606762468874557674503656102836275519085671309314945184276818510621125399899185670940688430686544641837755404798360791216518254337578249401630107571289224877449382655012928850615933278552161213872913402850544064132411863392822122787358553229549401928991137822089726126666829513923234806491220424490342193446454557281199667126571374488102988377384839525589578156123040717183748382818519102045107729043067230364855930880171776439626734935333942314393808234512155290809503674589243130900943127705138226397929602248644167659469614773416676583381740940577655122667505314709130240455786119003503663445434852494300880897641145310103361087325214105185855803990694958513857803468401060279794056885830071110236637740731302993636145268420578074981244095399891859690340600317736376104793379908185410266207848329016651292910570701483314274039459449644210336903699806360934511821905981602106861018722630179246725081350376297123679272056213562844274542823935941615707333360554055993239086517180678227073750207907937359544203411312445340124151135969970769419082340100604659713390667536599865995474770027076073004375098039534290635666724403569727768508448448577995045003487305537953061779637639950038604582195445386720647072713345672766907301711684101166597490849758808057697431379386303814581062083845764242993043169382933146761442540940943474570525036506353997005310190278731925490770980548269057721419247407191663607168297636919525324960103258259362078404105961813988767916537363369223499125533103964401392403402682801791617724490264637269858510883653788442535391438146581603328381749756988327814218772225741758567223319519948571987617281956086987778445723063246514649722995585488032929733280279896502663910562467301821190282957356231309863372269709965491781867054325823881260629547839727202394985714954429069432191435951824045438313850778810680532939440741414338895935308062007621534935897198099831659085798229069050513053165888193234465845285896832124783055872731623462295740090448897659834927318531628091822140817366913326930259423059765815870144422059432337029341836419641623489608530056493277510254241609463237461358321146846769852482953161244277403595248060429259198503617460027333808237564302541040514430322791780610038271178541238209251158638451095989269142205568340232738931054135257027648638985280193152057473779066117614695344558109556295672690330709028763920091653156659789123081191063406318355748189120885051039283884352371385078459375271761000254062962528074258703517538074152282341863932420222774396592564378318382067965449720968957266044452187074004679556628208612540104050362526814279320980490484532112602154293845027708475471957422002724577147219167395073357515678573880480373858174191093375843522242540965483152332658267316909556703843083204009373091247696981288688275322692050966882651321424623087517657232576479717823802848239674216854058413523752852098083718977589904428082379868323493855857888272150465882623834409305194846104474366431282374106796873947826297582583581917383989974067668036867923156594905375204873107011177791632349467434379956024198455413862986228264802029586914333545801491330321142208260921419287418013373557627415379262571347711890268385844651993320913679658331894934042988444392554190838797184329095578750290416378037918909228290862147415089837209918038397792212777909402570849459263899551975369073133865393063212131054033266684834850971393416942017394690528970628437608070541871277674446839123628903179263097671321992156912128321573941453264023899347534222338963686916001339763649056212211700699093608605065221169545908218523103872614029042813047717804180935745168642719036979476073255591965685363056693543718593601640320065488462018443642125203442592040078818474723000538466597118030097761341096030583041971059048162195749018682290581656425097453781990112363778125121164916003520859501938051043952363276625167723450518680808125120772539829095890172943568584366803427537169916563866688168391914529618680934350223685186317096192629182223778095437552976880568379671779020008717282263418244017872920315445121369841511504148076359143886161927245962768218355600813146375568668553025776193107178374335125871216136618279167959510565914954906793647872406230027622255445569148165925695049018442941110905715922916131051813952454229336269546325185320252117795969415540467382230709926741173667099647138571797091726317722623181866523643327008360371075740947768936824299293021835111264383600282114966462252110874933856011093909572882603090989060234210275161306142362628461909145203325387116925495887117543948919520951532399334266526010872286786573484111476376506844207590435024971544598389606821574352658810371524681421856099520353517480099080964569389082806593172291233234287683105776111546220184037808703934957350882502761886334869134224008660077107351497714497281212553602397904444953854130670639327186846454258281713560068042430411582194157716583322259237831387956958307046822702210847903657627621704784345651275299167056473810488485810956820204567848122953043651023088013521391325934565667048104544648917045909563794351313916806123642695009682278416222682884625123191825745503724730200883046077960674730437348441445567656633140115552521915161422490638755193903113121484099709326581287309361933059662133536128136820385703718681105991647675402176838033471490896548514936406042534530349957142837264664806093349497821649827506350647686475521839237422717889275977542386378290623648807491926032857686433455320312438918386458115640791147235535137596064785198040967928215649917999063935305876708332706891201794430218348336635479250454799177885623767172852014566783304789022295125095136938410421084984286735350315420438013784622544882041456294023560465053636722393366878834456815388444551594854805425429125553512695002695879837429700913391692244862519711125908693116553872787812314261646137222924897342086495477052190806973502700240806807237107054479782734710455504384739216563143500334645497149882764570541318114252551274355843736660204800930010191892262187425505242312754723597424684129575405259999777790993767650486775226934650657830289993274951013077429459826501125402207031200193496446999376849780857822189165447700281942414784277200609575596845472084346574123821330365799080521554518672140251624932481962099657974937246396091637276182170751840624426196012189149360820018392409684981988497588908197080511965041034426262035286668159643057624809994276570826384830769713078508648340395826604926848649263548865549947774580429117840138845019254874727912628072151089947086253601161467952322683285420332957613327705565663318925900102189148672515173067849311987592521011600676839707566415454702850692234150323556796323147299184147533386217489450172296097510873692963317550017019037315770820988400236255264993322779537752795912393913139448663094602062196961092330830065630518535962836107403001963352862389956878526405485067191719484210102277858227303126590189710532396255976953294754758518179667827598991001288710579078472014892742815977564877419017860593843150798544434251701626809667066444413441967775601198986237663232554922092425722569402729647300320634639224264197248393242963779175264612669387572761183784685377065049799750874395240072387919380322757442274745808566473866136156606315515421680442981391072314044665845484918814217002239539868656249721776101925824243391887980732413931101193490811794653766839603414296915857087426411790494088326121557145395894543440565999835343459155393649562820753625597543144772102255018418489140446020864484296876118133191028790655860742050023891767660313024800607978678969803751419835147678986663880310794396521557411920713160616348118458879371158382193170887340401223406294741399032753446513623913544695077772117880666406953002388911775706158594371886224277462427045560998395914508088613835080632073342226188124223496649786641057580336459223113013754273324564028786459847088655174593605829108409238514587656101532410542676991563032840523078210717620470174512813097304201335680547055548127178355370838866058686934266478267875032490838620934933522454419006759749237701595826831970368612369624538773540951256636476677103938190607568160302155821958173032317889386142374717679890578866987436351646617328531439132435382986695246115598967244568154615194696552772195166218218306653797493852599349048944212221999771365691157526512671938039464644519821730288970029258624649125395866290659712283142287254929479553470336544802880721463885742219352697017771777726230280804866503822441807937262229061317016386544772736565222229547010731440684034668324229243969435536251260757476888042584861146394094948147838069210597115090348016751446288194546972274111928526164933340761829323471464704193068963088901122265386009227735718855655509572367219591538731444479795464760688899473422182736270234250145265499428285915048938134502324638824268746148999550643070926983630566306208729932801825550186799588914729570009146814598098285760313074042364741456258566533357721804380309039723406140579665813610763755455246427963963805570787173592550830104585616340953012797494603867834486256432349113379593065145526996419199343786833753454514847067446172071728739102480167968999893839037528361010531662349318069630426276660320036260427214742494197949209961794798265936147721349295114634288926644482599192801278509381910526865085710738356699545441576339461135662276117658106345350749513387562003945128766710958545609791909059683016338920268423894674572371048654238337201342638344427073252332735061991909573592865101122423319370094189447829859819140855834440930045982262712045524202394530359659957282624762094375398821251573691046628741503512996965143725201164428393983719176278226340367902548146539091555955136155154343617752093244065527806056729778251755335564460105476045539280708713066703829324299792983417378440671389710220220323509747423748597093579180671916914272693161858564784572613310634191407451815774981460231691139438556616397449239258184333398481028312113993762671434015387214347917609360804634920234141358734626705104783690990215237187613747750040379071666038679177761933765713058096791381846838139854926555121843338229618740056508676230851241209004404747489071682619238321746640080410080075017262271378569526288643410131817223151272916904767860812801020505453992106014259958702592889626335161915790947315322669966050720261884576040624232659925054660278217792552033000176123903111313389662323891087105354821391403663231501546826583388496091144722399190553409569395178515514599680935257321217782341236452296142517973401152158016164224266485364945333202989855211047520179111994886422808540641522089224697576030867877574491099055981708781653508456212920431656004147547578347590287005906123833798659020159102585418309158380097389108547305575004619942382540955793036807544504446352209839651265688737353686973466204645295877846373090435639050155601611291902394703892137657353255311113150717957061741531487934280441328620522694767619762338808793121358238211867348847595119853069879532409147566397944478769657302526274921580887837154337721477981367608921017076763124712422788846920723584421012188522917625587169309101533901709975203609632477333252042662064585154077198476068018358811388012355670730084758034003561043202617342267862750106562883848413546253064276334971577399428267979589167491951094677421371289491957925635309228039862879613857295886713623382572295514329747776740395739607177514946014816654207026053870640877857413706542174070492489157589367121738224627200299837572645724694970171671127137808270263698656628355857087339691209215736686889280623283095061845179842970111375519102361316091000179463845056959437097687899376778004891813211525191697387182140631218181247477126102101109068965025389874927034740592909565168206799102200078472388972156499481983130962208049855145039924667018523780667739812523040797748365011479608626795022615731919102077649602837023524316914448714588025444461074655384309493790085116713802919907376934471989617519361646783934534881792253417806871110807960260825799565240005036177039069070416749842067615654079115832653270940995714370821716153953673107619492796664222172308443649742883785136819087811615858273227774895165400104328827020255373715867016814475407875325004222122758731373484420158854303751910809844496584770544002148468032054221521801558028540816949508102161437316383336637699811358700812917644384729908722436337316920316500792563685523910469241844189306320759353592463072421217194960077001412631697527306233543277661724548074821047293000332226233245221092569210112136991207341306763980626874610240813059589957805048542075032320763814214734158173880243808024343056205595632099600422631544744033410488724780224606555110022370365642436735937632623602332905391053964755071819223268510113317502411302673660947428025347146464155975379266344181017274380140023519524611284742552420498231116745267403230252942336162407688981057944633842052793392318039766956522300209886090238347938196663089620206962469956404229400628884065339784918841721258488361577936998878127172674787795352242733209848128370018052249011357985837048307329513598412484420355448411982066745023086178221359834617368520124871814433957323022878888058348953104315569261756047134848691295091529840939925765179370589485654867413579842287606441410703257834847480857532446643483780409940984212392325915783580447518088210127448793586799221143970936385369788970054825452871908478926378709891837935337311787724374030915818415927188386853958882450405356151763072935768037722836795786315087796613311321675624876432977612829087434961458705740032408514153147507107774940121314655670050011246463735031334359714849413862326267677459207028805201668706383291970624267660222327121185683751970585298141398673644964859367978881158752948793040331268732354639120354461024641228702374358814147327110535740309253855832910997810827065011562053662355308781956407679443905470575239185961046715139555076889306877103541251183638257795123532506943864503367856712064234203545368288185291735506794589396375731985937836184654756175431766888207408142683608905043694089728898886456251277339645118242076474922101968380389399172646973956033970756675846588110048460234515587843024399377906908208306429624873620459141671931316285036823016721082734654713780758342253965567724659299512690280893830449818339360395063961253777268646409985140118597128692811373060384375617508162987751697195398253698950866907833985348865431711175532554989945581924571853429575280478623745576838804535744622972173224929678288306263020835933844977851953384513886868966630387706967163328151486469121960553819063129872334339950389358417121756589066759216477924855469195701747586028960697064436701486672789310086506741056473610749872953154703835949673389516786828327553750101390996384134171982001436317082290503858377034536919058808522494482448816340861169225572300520632440863600899174709135790156787687483984575172659320598456602024309740128322488052060746025892355556512471455282801428569927370395300686864098916666313653723754571603669195310000421951321107286361670990796830798832118919504608786491701376323790142804756302226490597266526412825077319997926335233182274732636216959221301043555408716267464568117225342915473583807767440816309086518789211204332215498474186465215343578004431570984740301435431021581774888339717773845302145939812471768843883137590940548796053155791344145534458319335574526382352418866750347961407224061356556056271227184725840721998999457822907476720039572161174995298759004088596789926537847849468294335307055086545759034628478546213556303794233614899598031269112095811798830679600762009423680655544767726769686975435217465032533760690945863907071960480260079618670177429623018913062299049846800385631733290422843762445638556521346874586570018398430852451857543501522029614246258555856378870546021861207795076005799972254137785514929551593472252381845889100795340008890202955892638795578835897944981598228449488361582956029752059857034611757640852513923340571507712144136650779619615910298499247429532176489044657012975016340645238891222765166534066503520015573838309188715321322854299021029886329607262298394884460117245851586731826243826819952546116635970096810145383821865719438474009918789888430739320531525793310171672288355473521947519935072621813473210230206646431394881135004614602250808697093481407624866552005822051249954455238082664955533415991427303585596073895527642765948030819610439061875843840252271443552169078285743530637263834030870901708536261564588523079238283852646465107464146896431943913783229855394750898306804695583265725451808884816326322464102244779270987775733452813636403753379077309347588196061573488180264494266213310951178538188782319842462669464115176418106819432080058776762478082486432132001032767819697443836074024982068805941317104126739112639624916844686244688964052150157667828980723206018479620155972074701611932917623074453531141767029648670446792342003141692294362791868846153829945960942232630429002641410879291531423395634275564591916692569734230164681957815438547527744804343099054786104028636443590279957101199896834124355915738540948487769510400983972591330100620449995133114277921302479319305536652362699506927081219863502333172141296015338248152254228712428524219936062036286165576536019799944883831653680103483493479472459825605883352028402373192986567406402562712105755970516480458903326511299527113742272500846723799936068464470281702026172997172055100969039530966214948165105850029742139881167372675052799493832494600260812971136220872643909600073241836538282045412072031733778551341279001151948228018265375437739553769037716566524491636791842480652201528392481120983769513612477249702807470218578074850734704861283164403578651300161698161507167233156217586951192464882641185052492635856652844486265059744384545188200858554881050266324813407776767229303297454584946780871407201569670037003085024242440463281981913622772242529630114222612442966248503587181605543084772173924281459281335980437458437905945665602780362623050077663807837866662195023264048123519657699456340112844730190074300761866635367067895147402634020836786741780415374461488607441484239501789153701479081695106358325454022941669305399955306219273748742432817090035151514461773670336723154711328914670286635772608927588965136190827782106531309542072770354858780257162343966308395122697920074362011401003408143427398342749715681660326089529388262392234572760606641137191857955590320699096271254320584691345006042214798844236178962748775382037144159027037471868306151340263149603167819540889150892431284720386186083370716854092858827528192791795630247784540068439256726694152100330190352905425408843610796398014079728429146011396963413720599658014875353571643012195591949497458752211245262892841925360723128449577924310087741985097511365171541584786850666399736983551945616044679025263059971185684090388473392952527211672380794101449817127462140890761825236833087129379513263051540321178061847724423659250350930812547092593878409949362849512519942496065431476439436910006178682933764925120981431960346747722694787572570057039949224834834892657584278296587532076038380419608558911482655224240069313355159072732862203028240435359295597982286353349510950605603067238607402228358968493725389406431143566925080109697604967916544757860425624080905585152560423864885727261895082625408195370883166323224303098887715009816787876394382905722985678229567600208062783679141141184922004109555345544017239138466756449710246771716578040228985364401706780762664334238639553279691315178544350728793297489121995005337859291093870736584516443435171366098184121711116827369569647027018175943670315041672822741711712855255880122904744607297409981140556786510696101237318825016382433437679439757984616340297167519363075478996439226418857678892101641053775929286728757538061290747664059735718456465697477874565504017381545765362948000270030821818740534797306751628447567839608851786403592031484467011225422114386947937624619317606803249900311863208485186752885152901903092801848519923824113965244853351454662851012217382278462808292480832189131318994939775914194558433787004433663195563987009165927976224111049511413597296774670280577161664235529848474301471729568163314109972014584281559050703341483796949905636972621468477552159625268454217683717390475287644890862201392825062459703312587444350245297639026268119882921708091337143634723319444159213462244235298459678170751277726899555841295554715009978124333910126902407497021816859507840262228996941784272543279592112972957916085256018635064124704657210052190652369353150348228893213248787827742778775549229564172431286951371751802306701012836901659521583985261465251442221519958062289249680161637214184575760512183065423918552128200430768010718708817608277800177019737719437300565427840008152796102469800571067974280614018870306763749096285260907169790689638145052761528160526113671841831604085408963329227217751959957042300578063450398834525240294633479697196814371336199385459394367018914048051426016080055122943905316943958464940721009174172708908143175105052772471708615694070566230702497912302581968956958953877864153982649989934662545939261026390629904333402514685190222133568078473203012344423265766541829953842469955016001861855532478139755906158369804760674088596818459411387703764425004702336321311674217237643654045484741789011748196728813130102349393728874491804793483099794245167349829722283020313893197312735323086040154400449402479546319864858927741610890297058002815302142934056408597802477975026777389057658044652225493693892602868296353110936350718413298831547069310277375686776122726898399142476979643960191056475763592417699072700138835209006389798963371794550017721392457146970614342604520101237739177507937983544256983466012960100948741763332082403020596022491893486976757181929967601287413206970813020247145533626845264124689627410628300808556334106923945787592853565604156900828590148836151128111404259480799111402673093863623019329782287773461271661652687042128219229890263058477102401908302032708792498118237113297418759219748766633108750508150712933567937828274737622037964295756953702229265221120211513225608352093554853924977056505550920265699606149299431812116925277648753143627396795733794108546471840546029077551408674523166403150753444273851176411125666501086730078968867474335523601039435442377577141644185801000796134769435143692759206875131391383146800750238585531971987432472258015591007012027774911380360344881611184664569724258218696439562820081487615695454046940582244703470562015158076364243366114437302531623794490544309359854000732487711632704848044596193916469153079495568581767110454835726657295471837058652146403578992798983224367170053862510135251791393281748477319358343729634211008697345624071684170722573076652357385408206339336390493389614150258459623182564692709460984401923695409465689751743025011871162972106918395500872973669657222377963793248040910297365395085035219288418800977803217390994904094947002317079379256151117364173403249575521561302116584877110002175929545152694394220718169709750906070115070711799442906076227977639337224421644235962383257939814634534788364891231317228368300383104138752827084553200523725483765504449035626532093338215396950094959991357672416980407885840212741416255597284885362311458791719189070256651799132899044328417440070152396820524881232027481975851539153002868015897314537961096694815312264979090085228780012047918372154997308997227769407809524552024067176128706544239872733586044060695005253513573311261989497781858876088963323831563091876158900711730706798635195430755922667670918941156513109989866738752896057533389837988185311618173259038392467607211922188794757690247469229711438781334883150602724265609345174117311479343764125548818682410808789098213298821650843271204669914629861440657287677653390797332507107539134877216009299783687580207904142546146163517040134412507886395182361712988154733742835488364590934940252834317846005743913600808880206518079747436614638897208836821270224165079914586029572475920168226903724919471765213678606343069246613353155767618874041519283144586946846365078368308659429389349507181202379107276144912531230393036112229618339940533746949545497428381957712136323482471400927749857949935330319579039877631847064111771202045191300011580400908320588707053603432388674364298843546008273167708229358058174397472613264826802653653495913219842676617368408135749809364903895667712389256488940650561712004197815321821316741333824392824994351296146267565860211513990923803268694250788812281972620419114003175756092597242826971280961667352221057116310136924171655684337511258659601608154636322396213621184531926262001106969855868572940782074572452911525756665738543786850773144834402565096029509465655846395020673373677043079092194312875528600204665516851363421814414385867385947787617617323457453632267136159547258259002835362552391387216108157150454533962648641193988294973940848238612943315904554776604701331140254268398344531817761599185144615309290592952160323029247000006611914756578471104503800655884803728485267558164884496571750866909533128972882160312170251266608435533074186918026157411314456249219854754354154122506804610884773112798075088647135393884805694633266176509742046985306569971640675367786445272393492118795623074617451327356813638888038258060541558824010057039221289852888294645187205417044803567699865439523065422006349130189940835285660487042582885157164998732615043969468567475736912920821772542293355639407959077387522552081325755668026800595999894881155877481930808179894910525222761325786149031534587885924035633522947910541368500001322373642809468040447724546080752627918512805855283627419881421513832544636512507277700007445449726030123274801293547135056907040544604897926912598865534783362007191088397461272128634105505487291804893517372720676446425089946270251763553378490927781277652341460626680809366987085075956180884270679127393274616244464575356938773385207866318740449654360965502127714843190937831884721425930764268439175074956532161852921597054199378016087358803026356608382727857720037472989856963871364002048078852702750776246128815456387269066701680589586200945961256106626385910678179954327330727582189964820437141453592522458248716531824049228753017370417576080362727210018696683544388365120225396570934759840294128948279648793496698110797018194556937742588606678723996655867325039952372540588685914864150138033512495233017637505867116074337925180664271877276899588342719559353971816135538281964591069793678317569654171981966201860196178474525625466797403906424162736571968870854606371342592841494819961512511783343221480853977944250533440575904842721452867149774619239294438054998894997278382336950203117501481883632954969142915973352073395680269319784263135911624918826001407862670992488797109059325125078136300861229142078001358834296806468665448563389749597003937985755613058822058954393328105466010442484466011986971672068578524507915287911566803377138251792425035735030471115663906991245182733080652665941849990139146847850573017263358051472859798053626213146601749453061346011791251340599577548866902316409811453447432832096668483344720949461561417183175493194877952963716472688593481103277447561734387947373201080579700982129443028932273636701012891084351227866753694652465012359660523304559064534340519064459540866825492446830427052546019377014412645071043092241141962813206906020525604276619766041544373716228652525267629099015721153678392890886912680917918351125697576389824073022960870204664221229629807720982043212925248930828802838725433661517006298439189924760100347142350850681688725893528796483495930334321489609736952581054550381720279004438568146499159676042481934098741353456620628657730470135890642145724093413003330400473015024161751986627195838089532549833207677900840218266686527252784958867607194854585677667595542506232515542408643928180880698919949374512191872055972766320898111092581688283735644648215795215204539588576759246418378927446799436949872587019658308627629503853465837913465155990635027028514765205725146262192869152749422907573868917747583094459860363910284519225119897100193873521074333213082941195582663297352657872961493920723383660092189654496764340922969315825076404567189529286590196514879187099531629590651873234098763441820263865096018847176489665012527475891534519801183518789549105462037865550344006946036989326310752956793189385198682361461996138662828477626428156760585810749810582676110212215333590217518281258050644483531804006878361257822497540837231470534036789044978781979679194723331659385854596389382004339942625100346448516279579788357249387674824362503323017218575294529489369721676339927841349359591582912257887916705621369233705800297860321510388574809999329519791355020015503257555619912190808670857015193121569911640433522579729709248771234554312684949305254405505166679461205499178410122561923610166668335956047064882408409687716923040311986733527448529182078195357173317201551237017614515414716126165939162656609370017657557622223296863279922970891007526144416908607384024496228550378464010967498133374773126062451479683124147278434451805964577337118090129975217648239553143630527005457771750310867974287770059675841384782227917588101707782558817510104727605618916747687494849647369273517558264110426458571433076527987883575187763910456302929735122286264897838459390454356959961353685973148226702151687794787629970456925825048226056271019049474264729971668746974780475881411060948917292478092181934287902375825379342682695226461428115941481049494259226715578941255229553702299863186922012683878869622597885777171576308821250367752709697735905794425983176182028855242797139246767282244953100867781668414546217078132100506113393998622285023626994168587866941789102881981511268591974245784412028409685225556172265772187894085618236535985530673924046008979123384318012000551078245435784561091254107577018934805470026156668596830561379315240575786022123621059912820995033593776845548283231596301722375512784315150860007062303004130528127108833151825009147104581162556152369850869240996524092410308724202431827972317036355902280379730894672308767319558098728388894152858756382072929628399999223488975370438763361553572673187384012117132257011271869180964559519875930156511830953756743319426868309976289308266421860220306042270000489987620947514577573005036718289480464460939042683586282767476478138333958343531701685189166865807636624455734810552267253647955340108202479512376150962023092560592264998169450238535200699365615369717971260192904826022776309576459879085013569909762135157684828343053234259980834626249062801934796617013959944036272606435174832432009728004896075111097485039490847629969246476991516380398004730181604295802934243072738000291038646748226870692473774780699911619564489345372433282023691942069568696888797334238193442406130569800677940714469007487329882422045091532717807276296569559112711741464149714548599700145727560795716549682586604953827484899886614524840000967144433559031182934164899940109160274945600015571923244070558387967501312091435503896403383184736952930851459825637612870139733872800895619414534046770028961845396501402183048553044851300883544725205441774257901346821487837084710539896970407184121194898526814374561016584179976744340586616115778292264608903272463412457730828508097982552906175388488059732253371265376590907547957764280238996303423731903552702936278745694983827152767219438445191198641458863340319589607695124585288405721038482970727772489188543373887371066998252538583611731295603161090799440640472046588462277817536779059616036083629934777070493771744177538112745737893055174967641265343846836858400185751781581947792666396125626693324316904663225526793173529405629570012946168153235154235394846771142301541369461528387532992210622646123472486999341140200344671860181434894342356595496920776622605167843002483431293379156487039011937335744470400382139293184596159502827676828143464498419584727417662173996816731411647598743894498117004708105518577047890476402279043954805242429074706989231620435719379063717762384753729595774163807437369874094997608223766789301793128416556260674574852824207202617787821048543037510908259857195746992181016038132526789334343104459385118186359095571538592159792039845465644447003513795324163605002308254934588378455851469833564158045707249713944185508216350673328693292952401725751020459706978479644615716925353192429016363132564227280728188693899514207467313507228308713285951706665309041492995997137411727772616177435936502711986631181561950414299624013492586810499081280806707933595813148525567520502107990092065216749606656132460621842376658150310603363076152080501130771633925146944478125218823289639766260273189597673703075852673085067248571588841209045083968645231537629755309791103917694658454784425275745549670231954045142606326232530988964040326010314529829922201237251567493117213043725868621006114780365026374440732658482325564691895396756441274276500818760991379987393969909637574484297263489605570062464933861273430192741595399569189808048273453559504162749152031039649139775294192744223192869661452423372242704829207347371004216172862795169340368746529889462275930262986869962085286787027341926488265981113016394110378204645658827219107863019968207061051094591948734384278151287853897426527178713409453964903753827991601603226241859223804779601855022593334581054412047053351665466289695264381663274271833774756287763649482564690682905443039517319739080148621288451410400903485902170450828965595424194995209572801175120486915607566875547383376206209012900709429401986183121043008997711005074865121289120319695803364107896364240603735881519401228567850267485928360216392412653903418487923786451727790763369965748183225474859258316716800147989420794835202403942750894021799529720656739823671082554179624172404881622000629369893364086840598826106141001572094872176373953872743433572524637139876495800069379966974219833861528362962041856319745962296135148253115248311958377641403389887592126856248351806893522307435980905711412723021173055150889116619243610984329667703245556408954124080074076794476926260267678852258818413695162897183169334674219309792096289799342270845459677582608035083094064977383688062712813701374933260309759980618573439153397458847160847764958312780408355282498088998867348018197222779192078099292239928171898255976177691485946239464772682677720050840708268587244732115937411520710378032866211350935124620531348400389543143889478102733384335447911905254144256887838556121583547191476787029106769076833201334688825509848992140391913886660092774246364160152209311042741658392543603631633293925694195142736959013114437238127765708857868383951183999973250840809192355603488038080233354648534439032564871478893034592912726052988203037674908761235413273310267366476460495082768831561305604450109238017259416987673992785068198296265947774777767152425173311776697594392501489656206000099980004737857567322675077241989818095129833250783073948212841553315634669597844805303566949582494746311984793173305748359970449148251561629108990688761103306944672560639715982133389083034360644513669371604069802902835647469419050506193669831927934304599679003703405618415783477831520917374684146851204705559510811465897984090185071348116281253193696737579126673765461681615192764860127320320172689177171303173959505441026535729341337964591795688639709708263690751207577715766010351666616155956794027107211756752538035777880419189685502058877132902928482052235558226676813450907745920367906033027138569265029472778847326210076847654208336430223154890099559820785835109812584776735044973372159082338408321734664503306989239805160732130255370076202030535160552842060000933201460536295051265832590420778982662378259043734769674868077872570958716019980152418116263899518660318540659435365534625633909309399846347267993247214640781516954347550233198711425898021150696406674556520574366597873281744186109467768495181467226727992314312910856607840073657037538021809986332740393745391584769713467814658824406079386039638753688094999852851466627944455478622175552358296749573643907032993967593270127590671330992268005940619012227310679253339921374885124089050161501479808128840184237085349995811117186684287514494837223278670586918199274171763951725988584234744051085535290011560994760112885306796234532388862475664646051750047929043071550725250334556359056292100372683914697294269685729454787786103795906555151032863650878857386564786426183270266942668331409486393277988990876019521691299647105652028560943891767420781050605550624093356641903480705502587498939752433345117202849045468490770344531642816945859504118194106821756323694737641268935239763149516209096576024562065952385501088265542869646966499416472394976541089428446891442178263654262405576362891884268782908070554871468749742602415570603269007317977421396544156868827907813626417326576777903837348558958202624003179890052245206516840500601356811133090522055492030607016834993336199056837806659537922097461242725791529898821707244799822402129161842305752365160691146280437306062031207811699405258389720763167835243773524857426944774006015757111851665677139714374820571779985994371600251007866593131601458554085836008790054847979537755313354555177543426522771480375541075858302668343563329451817341782975686034589450865238597067616037087053300489524179319344084139789884084913257559515289066650061395348472748540939552519354640443330064096224019232464112415667855583664040379521156050090898536362150379495195881479025233136518922518086566578434582264125212420966725809962248365286017214944490719748042104658975891237769819798998340849057914797110046337404842378488045555055772245628500613268836086709431566947434172566555667397110152138047184867687976130452697442515629032158804756956046427086335599144980996195934316779871306522069326374884772279208790867135152479922690120194572272874501480577365122488610824702018564110902199832925830778802857090261155048588446684794207061579350583899053664184627900020372807440939467110745813037026965901239275952014329612468419886406969187878341765561487457852677386793837082030775361878173831237465591376008119639373426952440919227163526282344101843671090901392979854165780166550275348383361940656926071980416472494885259006920112034843342441204620013688383615226423909829009374105066460221584822667285935413663044007641515921621910294287643669006170471354311573787185903858477141273760887617294933116036958164462381697179666346503940437968928234438995296759977133632536744325785753770132252204074202343529322088972505248139566783114879464679346392740996042011973987027779176741452564680256639503714877396349819487829224267551172043510241042739423104698672726835570501339346761494356187166381224007116538242528862692850281725351947326628384968408694654060007789056331139155123491331215532476707075462771530866781806510993664448510265538745606831172199012066653383317589610446982604998001410242256953229348293373706601179218339988091729516145349461618503820418914616984194751409557243360883812661655111428773490833951694035579965505407773383065924160191015510357176629209035908839006260497944948481047473460988395056021694155029509461572320654195127860464876721546830954233450954902856467030707079570214626816439163641696691804692928867061567543083617098759850475823036615166846981543637738625610899351419249730769024001845208691130879366302233980824135410094312798229644047345735503274956725732755156409121391218049762994259080726138304706823488881532313841097917120468590509181529932748432073914089438221677428550153170240129950450637978928200169899365015542213767577672267981402126089281313647602773599455138080196283860724369594305370810158771601817984622379691268022876225943464534108298083510770319566836503464312275179240567674576114619459439645371584018767774409367238110995765225829136066234638200367312317848039717132653926318874937410733449061939919230799834305273272475018602520588359586924116272206686772838791728072984372640153354341677559099293259149410300518879914638124525582116883379953297272027356618245628125905860942830240134154935267723636578341451154607633232976104120135690279255372028446349699018210749390091788374467658052409161312166729705960895050063494996307213214453298596146092749678836314066443598971178411831978376389372360051901803124760821025295987060235507416267186477838060370237630644578309410825796443372022670943454791912641257696922694059443307770282899734351465173949058475683522446210915153156923376495963652196097837185087698010558095181701036774583091232680178041737054969369456216417472827305551052664732004537750273750010300681838298077061822749166792797375449435339001827120480577790003707545868014491718266848036929023591508515712109096040034763349324415636416333067144890516047961017331718730401868893898673778854702935491213547266856032736317522703256749924391131418577476925144489553986854336157449670518883141566847672065903493562343704317660874805231516155677965924749203131435771053370483226827823063912231597095831707571425304582643556602832294834337053655243593842315707518500264568706182868324833354031399021349616986331314994717789011949461013320494991336563561099226500363781472399179784695870913672193980842147802826218942820784272268553122667621073066558298473527891468307874653298726774881432999550523799422178222333781551003863036284454865537853800650833260052934993577390837238115881884244487211957033527487038384950146478182227607454121641666672589884957790957278651241833404917824548156017720811205792854568144317954010501810760011306653905648172230372268091487483871924420338799774268883228546742150083106792196367042349358773693111914013718240709245475918044774472079656820889052305784259706866391329260251120363851628818304060582314979575143089502736817255616836305649461074516232390680394915279652743087130096551817055817939957855179682787912953745534311357027952719559765369473365317772446040917874829378850267344764843170820937555139290162491224665962985673098027388967156547862596550105231329009658810921052813797909941260431927913944904404201566676605174357457960732299457207811394732939670922978442076045577848223944948329565129450464231300655046712627857921460917934275836910497354094432329363841475322860691540945431579458567113285011122106693387177209231210836992675552212672339622317051755429156208719190284618825813710755035626796049717809152147590771460410362577733966354879183437641218621317738752657381138964034485306278326272454857894290140547631920811189402631324499784090559779512273075211327206252802086967182337321935703619375988589633630932564981484208999457704043554509461023296708597531820956507058720805650682498019745851307442942125936100716926697810005762646490784375075961783270457864629859533843220424696883004186201033395284403579530434299762889722043522864223727149341324916644756552190441986051641784000104407945964585897992971207139893058090675625063992886279772123120752266886158311197278496873487167426185603166065382628874655577345899850886390130764250866237831372751672091226080716086162602596858112060139995137956421363694617867186566752168646756520496977877160613580722598081523533933717280271941060879023570102996930340039462553134888285661536954328572072425700062846023293036051892306023571713001838885305369958003830788250084901515343295418076165276726617828990528023710931062450399511961904106726088787413195972048484022120207689584401243850779595476819797353250342801442239466718111427642257568749556518719843138038660094703862504099859333704216107283412471477560286217415549582661063372069829227297641023166037049735671610202973744182401957597138246751835813877786698251380753105242004312847248379503269257784372822690052806359534755657728529634222138868568410830459156562371261908866926772531566124275414103470337927536455438717448013307153886830629176443373473790898554908030183929861496278228162929789985489733057300823173288836862158139706713532915176088227687836483675484196359405777495520863356177498188200162665513987474844042293646306241871987610816397048396975389759154311009563777375660663942629031850802625743589228523040264407331395228690376510271415906973693923163065546963417328598420911373891377815729822021046866118039230293205871489332135712886862504959918561759846476273474068465774996649230611084350740191329097034684630662280526765445985326960804481217377189302082115010858618065958917048334613641513006089569587646384597615518004873216083206292044932528791466128053573108602309819264097066592453347462261641683340139533440644113990948521258507775176334681955607453606502342484727723956512333209537125384541444316775233752201922285723067492579544863378036502827311217012924787147138204546448920931438862253500481065285955875102829472820912114672804430939387711948348941589603355265389764144271292584093346554308606231100001253509633701703753433751858913932252812160050622871795488455397023083611400373070292052640662253747941550838659283226608592404135705123164962263417057730036536197247599049490661519667135034135644480159795153432514692649867281054352744698616154619225672124993334031343649279356044767495345020666346740453383346499922147491988267508172352222364765037476702699838750956731280664304476600888310192723752034660054455016086569655787991093167764276200009980013873263499793288408489163580432053006981440866378363857501580965611212303129064446634873731386955421188338747040302978123992190618103693898548747702464054955533609183620745128312681003451956028086695741572904066733652568325423059702019106562994435559623315643980663763438254082251657127259593262868222126809166028623813417071219347851350797786174744403200717438902869660461888570926926687497501236650823218036203216820768718672898533199072179322883862395381370903948569640583795081148416697589324133170738409326847260306287865674757721171009683985797018660646094744136255130119957403207942949162795757740101036732755903908540924463661619135477003440861665774266767131977320142849859825480559587100375765096091784226543584487241322047967207858620041725677805638999961217586071495011042095558736240675878901879882484402603179711091731026647697511553843787492569523873384065845139357990788545155158471670581473377803490617311137614765401157158846227247577463589456509274653320184165225424613514514384432992835815339835321318068260303752371094147743988488886950213665853772147232810379577170704011187005806232844261545131586198130125547466036510686746143042167449105055798288239848614371482551372315091220416701890542356927116265012515992314588355058419703899525049000101169437892449832329707735220840178406868893471677627734201530464316904383580161203327416588588810129766144588196329228891101340137842577927746361024555181163285844299126649266128502149603435369600044377300689329972273653287105786732413271740802925580361862767391351979333530719350440061539899494367921149607433751073668959201698950266661724655013956312442356319704740226905181372833405725737044407853044258947389879480609045706605272290810937735272558574048555641513497410734632474787395726123826363762120481563442868023270598661874350185012790681235622402898842899023451593985316555763377526552348633868648219826619908218631386965115714948229338456422842487593192752364324020537008651716356531398681537840192063814402151969579647356659585235084918575727103894581021535968337052781393520732262575592688303675070891793969348557542380879832164334546500761272437646649238582455386199776067797052814623004583315741566821985514889018838361510782761668938478956155271785648817568521516860234184209965441986618818867083942777335289144608253929205835611800836334147232895627733380985002008391209544013738701801542347043916749505440712069291760732431123415598642493723559950781368002636001503756254952611377892363548276481277876089508470201362660612315909545649571216543355577002073632490481193073646960997207939534607669153163206548436753688066908729068323957520568794782288115296452636641110634521746005600048084340234703925084301487494589038834126362165084874643313065377369577137150324350918585346431156335521259475191337540293738742243859113075773535387711623830512296709841806590770248949749290261388934238126573246889045517795478856032713213525070632455069104539470458875620006013403612868705784120566233367470810760124965537778641845955273519979419844399861480379434206650091275095627439185648452667857343532857927635751404288832476693132076618526600327615641286661349749223145552197877664762715724252822661095017243955983742449864140710969732821116502688698423519530951727950795065936001231310933855932647462324716015157166414970745787356707410843515282866498672518584327131505259080211263198734517712038652020806399357957845919880871335715805274686565223551019071899069820528338850551834416298304072845889292524209689039236619405621035192481215603813443666900093272992145268146948484656198385839553729247560409630280017475884767851929767330564622611015353149552761855828842839925547675093182217957094615930132049984680233427465444358481172351445976188544521298341747621744389088987244032106198079188202704497220506719873039056165997312989655219613017745608204522238775311992678310167079093073334889882444127874104588392408572165641566091091998238849868029101043369051529991723855356732174828602673490383704569006083269221550199099915329594781100902672026616263996357987673075912680517036587903171302170542294125803844297632299719314347322564352375925625818270071352030198222625104637316298552653472155734129158902679889388314999368358369697904796095617890061957876052723740992511891771063605061863200097046959532501999174224218144164264802745648956719452818511956080608506652418398813180938703277174871387820001275735222832719724564947397924447231210752668134408365983024705100367357224397423620962620902302015731221657550128565884514194422969951855885674464215582300060314038599043055558051036090752509634408567871922322754234582549553078670308162434709544347030674141242146475908417991089447355959850844133342956387213973121443024761144170385795947310810965928821760077815962852531325958940613787391423675624609274469200296334012684825118860964724796731733529935962060539097351822606968083464422422335793771746141160959410074820065073084477978114282579967009352496066447428890881542774112278649306273829376233688719699378720690754464660721596749197326923642121831186525163451119463360743093524526015315037162654403243563794889286518337549542296508844737709849791515936693934445439062671217289870338182850818499069861292007174844975282912682980316552425250605224156849697018166828222070769651466796968786887286113817735830769914444514098097719167663350714896976694501831342127224062509529199148675871806851862403906319955252910750863906996360090845960008719566491637450417795138819919553715551884799638431693066052564127456185935000304176760739167999341188810823499025307686368823981124710739938264458507609543896299231111109582527478290021231761158697995561713529455949528327177081755913705054943648293571861252298135554596097626760109423364970687612856748232437748273711465660050496537514636327675037982347609651664369353920847160796564826457468821342710285076421980992918341238112055663303370196264896380943706413513978022808075228042004598422492063635016776193420990971922262316438487211169979655138291675043737720868043264475237395784808108217013861731271414745215139521910552650587575300493618404385199144725853689588510457331674133403133739502361332985018538416995721173199229553141070736841154044707752972406556758436115916750829677128072915603543410958760256988656624498351265273912269054343991497804991137925706871291272851505502808148137468661610511474041450934476053160077940232197015617594921927699564546191457766608222064376527709034122791786192343182223269829745041521020150100918107989456849312424547761238051131240315006605161615551451264339002859753496113439247237051727382572588231443096847997788081689297528118510235692115746208870112324166486551020100017370353864934013066786859507686696908845982261846224439865744111767188860488212713074776105662891976647054738455747433215985244924254514196155521234952685623679555227760666731121471888145589213342813506329158091641589629192785666162440498507006056061467656196067288455492828351627412130255100365723951986444143862532662768266466959133507691970454941946533421718268671662529236311150073235556897032622686855331836125665932968604683980183144223343221747600959889108117971486423810507193337824669189599979463543580768714241621934501800208736723804631695040441884848845394273685150462159922631916703953666897988425954413474272476505234199499352874061164980824322682433148111594552902170664724848278485375096176050131530464244556239929327003910479329992130844839478999903487140690613730137641752295246841171457464684319959793030483188292889867632066586423032781597139369268058061767713518501624109848546709524584838840743150346528424526419616982165864354927643384577907007721407068997839277764547410421701637148414665983732619621260781224553037478236105852727256131104574892669930451193588246090681199592623457092652108785566562801647503503816530288163029005739121464801605439531793601466386823060845493554241776198485672419045853186268782359484679461023776452843044842234732977118977232457903808049581681212005597155634226446352257875931158037261550770742331712756127083552091324052704809932129837128978114026544769979516962701566452362697136008405796902257166409696189176567977335264738682174068769249927393813470163518475473153042826066542723558487379286115083054817677905217062983536347648843621572652637522027824137974289001487813921867344404717802607815189553388946590842348448624767287450513014225559513803026115597266273278517426599127895028236457251437679918949626707175886862294409401701348427260816558193982998632444715198031289634628559486358525973369507135815601897144756229206666627731537188826221621162289183935916625678729343959263964956044518065567861239685070316452449052172259818472667530775899178596007098014230556936245991401527628040424556578653471613678685776141034344208055444918401433874242104092771558028637281215685695364657589194922500603803742794169229482250871327587461189183247885829525311281791971003731001536036869383031569671176315224772743002849584095373039313274447137684610507617635414429125616067129172455922532840184103703458022755547088125252311433432579348070785579506974705010512132353019456190035641393919676617485356803084496313498709969322132771853662368981624245962260994336920907355485328590014837380808962052088766469109039148258756216826763616130156261530507274142306122559262473413367667079327599910850857900612106857659309403552454587779952222208877507314406450915770512463265133246591278164346995431979400744810888838552626942137951434034546069562591094522410810596644925323580228614359207510187994960595007816296098750601695965529750587489149540697525819179663692492224733994164110700704695035312513138268601886452861187730443137876385895037731672966892651116441817772238110010193577776855501644939278416918273482690450650092428775168150473097824265377904866692943931244355262095735647003553913436379569220723592748993070373011132598597783629840317340530298046628905755972052381444459320169033500912812031438763017075769287202566569205187903629624920271929998391710461767680578501500146744590523071539202181148989071269406874500129696561523787711094383319772194302122965123969697935568733405740583783027660407954337535282170337623087398419252270470376634823017263470658391047092067824929193754126986626297283726757067474545908192590499260216513191550785892861656596543855575857334045534447770735978767033382279146733066834810263843338697260578622156444266729538377851204354175330961269193788280309134640580771672779974771555509674214308185935243136061422049092638239556262971901654513796814729429892927537913209882270872167770734041653974849847893757827021196131798967344609433929896277592113281961343062418822666785947624175186354863992423153206268668593902042464409142880162612840511606413348361017578837485842016619509680330012851068849044228597540262522025377690859813973101390557762047093803720067633791074368905761693538826949038210031063930310966823383749007584175230741565572389326489325106553489746119042430866574936208825754995751017976835571385316980846692180606824203130596551607398246345977160259649092205509163986778074447178510252691964624657026781271428661718903668360786058432331420238187202399155016439969832843042324597001300071872445425212509687652329614917922115798364542377545152932432223188383423743778818921006204666779694902059422104838844221563615601745555281125398212464708425984385548811886925145121660123168910259118259483262124105364277223522421469137167377463752980869169524383944917282679685963098268225749351939961452875838053575706410257756967196989150911795501755572940142244714984996475988407597634117475822844546233397938858899769857869246445696186613987634386900126912562877500314909992877983000246636204103709603166730063705444981420996045131585649319778873840934604746633737950057784679683651501071527283432141038703926005235202185366902671877125155536483496563383938988843077460042000658384828275044121479707506156786178753803964000031784533495651251585296487948157752970868411536752215486686571017468704964772566517167382248148683492701796352295007451399185189417694162051142088405571133386436925679416675775003882798472689028947348819547711035344402540697610747278603473503639838460467712517254747624978913813271674592411258602714817878782445973328974339700277493221107221228892441193590921592936341900364364158476675467594720972755628658574326252884139262770011190747663388648446541197556983267575897479430788029324429142471991462957268490126778170394800838295813911815152962904567316561202128195098906044567549686425068375513087677864512382152331415794573177875031343067019893793931842829473621113440967170257049309502453333505244127839811180595636999408705700086019595445442997730591469128893562167039217916980714939234391081886685313364727506907785236468868061581268682303100523827229146285224087384931016311512149420633253359924553318266458635796569055963105113162943022637312703278286978612835754574376154596851869654519826064994942930507222604858545244589060720755314393042185029278290001154995103116139599764030337064895012435065659901744945219446563405870970649921609760414822357032039883844356522314110744181300396642148799543002418399252604332267343268062734421050796269522755396448291111993048114399830601207597496621531572127877943596546286394956410049218593404385649336266954538078340567272340222054708816886741297126036123415135738800807939407092355721740895870679726401170449956029413462269702740421188037248651031126779256502374715052048633517509747753298758614479070974227178110580113588416783007816939426577648745344589880319058593078380147486107419478918123363388262788588178096310122614107540685709422317992875461057483456577935069359324046399866656213669117259896919564500110610357768921195094463695636455361293899903343579699299369006532401236427083803683066186392366920810545456183586209398724188593092637477284508699316272574796657798264126868109074638905485856802215236847436322518052526984146192609449441949288916372166181945736854676474973771024545591165001885332358478603134603607413241636667146791397045086674238160744875161434790629169664448110049623503631692582765088255206889614223944981826393224724899657471220611119393426390649647866176715858963262871608007635345084015861869385193529299151988198463297296322615835365508485702346591953607270606844397747557498382558075204133487772178156041518426076696755853169289169857656822928967005426600658299822548548094460099651736868490010182713127559392525913510713857320003615527105359131254587357599454466822441205872305685765516523730974609408351682469012526071457344940726208602797294525560381574321031676818778726356488958482406677252823054960572065065439459232255104210472321461440786252505648828810600922613767346446303245543537734301332728309871200646322209659507210996317696190919419062614360135336359613443456970718338580187972240450742927692086768777702415611144663436120773105411335144317387129754859823501112415128046915313355186348166805545138056172423900052968484649830919341865082045330070428239031184364832173088867769669791845492547968607861189358129715841267514232303240314681351610416439130135635067790104404955278535704269358887525848934669130896819013942964069150915317222179869273891050316757118830989272652271046974752083026034271863058610948026254570088011805439374486162631134607365825157672735296830924371267612632635861875568802179134104574003350635571059864759145970744513801056120394950078671458518302508310984801211372880703630540161821786890048540540598055976017560664733294698358131598978260135610928623204260755434676978106371765266584692967561465489739876792600985551428452301968752043487192971007070820256735275404709132070372377746561595586354942678641409866874628777559614159637546908215529855196763918993133497017293681097495623851714873876278776636560051084779630715865938438200542764246054840132581705598339178858613229795283901252598639170936335856818891840274555868220598365175631269556937315613732561309339281042733901194599843252734105533554094950306401855136045846224351875375591297469835830629336510981277362841764273040618377986084864043168911329895304596513369544431666445945741683669645011244476748740930543910939887352275678485412921805802997425739509566091629433526802115259520298540612091006814401666374380365388875860258692243323800140525293355759435394828364390029092287673011063636131975644047541064246100052890913881715691314506581390409560114001733190483810317151498850624212330416568944803269187970082845565996831268568038120075240344949573203743875383545118019739264373987459057471843080594368341149036294127561363498205650533515048923481995181113709794237266456208970483246262804327793837498526831337129733586712654662697890949021923592277834542832910148688295471115242928509547270083640864350844434985846909026578980199352476646910848578573274080723642898444394034988359657336483807977535599723452028028596618725819466236548448228981370720645434306421560415731120357964900823635142995380991408666440935442113608065760333167653142321322927017117456304397443194485541126776440129886532777964312576902486615451415096633393478953301764709294747887107198850898561765045440105517418289404442534966870742908085567679692296775679434144556721832891155761024914965709685046087678129907640186532572705071159359229210342885693633062647939659230373471949783090127910611999571590983090396532265546803672188553247838211800632590424514159669387377129409268364022103131440371430992058250687342695367010870663838134665382494181297621045979845822110700952927657509671674476589562564126547421785387692978840688073488844470787414594581509767208293099972195641829078550512797447320776846181886145627982683599751949189383081348831445173195874086816275483692960021665560997035100698043192470040081484208016835624125807580422842861540452232096834750204131572189080556399700300038105022635577626971916779704501377606728799126776829997179986628343805935357971891636735385067747633419067703651197524397817151698221047594376890703462192850408114727181536301401448084949319435661637428798304471675955998317651402692099988076591657567583278748666863407448343228452960603322425438328552148347512013254284777013271570827342861907032874903212621146838625832555766337842640572169185138425497430781137396342971333127855545570348975475550121556562315313751757643170057575681466153376187734700392182608321266354190442062940713295045967320117921886449712855420894776040257794174491307398779584639687557306387558269180715327970420717646568668345666060935843361833042146250597796035406104597605978391615517702446147536595724099362438218626649723290878589688347939986669915507682788191978890945567468480861733482588428744194155781785490587907802635832532433867798506812988660305904520100528226954955657254420876671570019074367410672069934215079105342307773593268082925812516951324788517032514198148042274476330641052673264141153038888247486102449241225368675249598057212003281804918645958049213003272213411255965490443214636528210795907827359753159431329854463873323794716117512645771525027982257123206561236391253338568513153455154299842866486290242961872807923041787043430853525616683171784648289326734658662443968037322175932164200199050151517871929889637791412906665453699104270607262451283234828679691575770188558746604943442757883361354926081862406325848681199532146006375693491795625946905929455169141332120315523156877686377646579068883614587461777304637730889755437275180839820578644129941579576610801777958155520634638910275567072579364458607573349228907478547722777549066369130709932145900098759698545668991191607822882581176068809235376846017998184078768963159186483511906303863312942108826748311878973002192026398178416815765655318337795560260653529100157728452785077151405510639410380568871756339755299691316648889784138521751708306592780041477993426260484908654824522635328974876866265132139105238826922206262836475273134532935009382002746165648340367122668550785636807271530514359990431688331321693301141374405066429546339816113299518597093596625608216799163923873429164436790169379260960530059768997998216065855003600186584371220506798177798380209700726819456641388949395738793120444101489615643151043035920518126646117753594701514498017637927016126817964208974505136254439851354728529118822644030363426103024304428246507352183946048952256451699323694262955526086000093338820829242713662299683760842174685635138265980796995967996268616338846859532124968319243331667435076231010927165957648899613409902829020623740978693599513053832644688073799977400534726016157471145603922388470685007064448056259930472324784560079852929281939566114116437191387583344378967500293554422642879171669060021708385058429374722513980145811343240246118896310102267437441804246505662081416294450794194186434762890213103565092136837308840580374326675242848090808854491909155075517934930235256501794652063512933069861204005089933471716272503557244395243254406897247166564360675298337038385350553827669243794407618796189852266015142049077433946428190956463950557332381043909758957655254723346859249471797989139898944480616332555275209149431080415205061379063038808118743428610897968002671906165226994550806899732077920219041412336804206398389598109214375265441236372901438192250806663631911690784154724552165162622505234843388049405066363401975092271494198135348330935384029447558148581032081610480571644035236584046722037444528435219269278014518716104713082986573633838811736632301766202457403373610154518618907884935449025839161037381569189110330062540911634767364072042324383817298733299099069446953899812783778324323256679269143551144728306355941405219855282488594923957767874086686448754130659408154375331204400834437092384529638259533790033912142537977205538054675353553334816076509769797043187997579945276325037186809955584367878291130207694623901209912479502466809957006893214020406307099929083912653102288354422365299471439029550043133669785219503862752024899545123882322231519971406634981851558851265925943468155880797396757326551240832872828907525218175558135561820092398183391095268495011092742438678575775507634265354767684799608140277289266299277732743598644749819489988289153032810341236517286940477445940452371654146981342370324371832759592783844678569699565566476462547231951406888589186435627604523802827164141433161681850119710352923283398288691738618815104698374658484309292910591245879984745243384297102703328193172166461582403909933683248537207143210392312084813802060339507671866113680829574714895352094295334584935299146637713460786789520267084837507809218362654873514229756891180410314171678764695070880221518479374894420751932595463426407356924936384152508123289173235028087703618858732258872331495604945824876466489900151135496003265370064147962337578730270965848219958555292596326274137126974376951459297335980741164969372444457681635600949913669777047194235157767143605504593573140807555145424751249972752753435857266657661267104751815857126636320371420054445357782096184310144213695887748138467227407267051665303453595798724141407859766992672878271632724522486976707509588840982519317289870589088546689149586552877893582777639432491432622916673845289637994947418993635114202032884667754915957819764635164108920342313773429044258716539344284508840851447318815784606946186006404031252907234798159591209155062611935248837610997736582066703418131588922911509963501352114538612780907988067055006977069715545825375698486529192672786724095876830425467707439088577873414262072808662175295486651713632863169171705458491782795248159297688606045385983431849086939141844640355336036354768331397426653366100806663835312066012831348207622991413791025751918411588826225333358916832354721329999983524488466836081799930611361271073860051651675850054826254525397455216792501132725735631816520824345107330396474214431253153612923627761678317717172350406817966491557962006893846430853701000743528762530829347906425562322224989593585218352196759116619932335260479905871741893522468885374134237774851464864737459846198101582284698822807853744981235486514319378478218487474477652882563372574125713420015071508385249916674287241261225693917679729629045210777610664146498198808378772196629946339796989683735344367834425859660223845311143081347625879110933013313982032583242069078295549838320999591455035850960159247559051387622078860695089300237771180564208369973149403775855008523336334694134530451841183645554462452244012937178435323315830281244983544599533947450147492760596666021213550067960868590880265807334886165590654756398876356121625134735811658896584419778688847658635829067095125289678583309692768080121493959147520124700541722892433345691972843067492660490795525845533362622612743936077481676782522081452657561915074472082605831295528757696292319603873573389523537752796880131297412740074155489279060071816831801501930904561072609674406064590591002398292490087607657451185267119139834926087621737188264755763471584284552903472369905264570950411637997931064647186316929205017072206603509923207904386609513961428354121035016183707178782785954381368681786976670916447540367520808792202385153535024001218947646609889644161366722244706847237127905551859109025606250451487101130209638569147699825906239762118403578367830167878184115076365030415009661925911373546645862030483402968907221593341909179616503572357448922714924338892133461898566259823989046034239877943243901531895240817043276149582695890924035592031444712482310113551733116531887123125414452485409486980138486245566503044185930437933898170658920138299578704705912868314416883493133475436637904136191201857338607670073341542382798785734246394504204574050351432204178007127803813837903218643175648498554202481934160615725088309056301285797628033495283418632344919491586341040378876154209154289667298018452227930804489276061326832763884584791921093826788630365833713868341032548069004983221562824547565402237027042741045050288551133711779629698566748944870491430416399084907812866820682151830335112289209550573151881056565203035404572157205501269628082191054575925428892935239893161144263019085481991567960690806372761156794970378068280306518733814188746169541829771178635953491763882165033975250073776774157621724464721458636280245302980230437467126559016181498086025052569684524725588711644492166776456155192012754046713072354751427294518691280211598397807425591617674563793395228302998521994951199934335375807088005249251179065988237478465413503570199398389026532479478125558583219274510512650617643696122251697955938847495531388266342134539853915833449781733244303150323339332746664174188211438216027081891751247373010514555654202842273284427910303805785890224585729144539992458196212667776004388870775017738384660758966264914153650604890109768260882340276502378604251122496224216775192358128766645437097475478614292272098575825287632943572684067655937408774321662629349233528857827389638045895704287770890251417708960576430514908688552386368647686173801376587087126719447516062522556422504340033730030499066040671251048225274873991972016328827577564913256261689893623944196765538086185597292962334093134523982548370194169282052541398692827930356040051589819087363852975296472636774926744785191589391042544305837467964066954147690174382705180016691230167398493552861428428942853644632215634020662603986545230354318524880211585087755243867063564518455211440746631053168972844130384953384350551627611160213930866295203511647286481680916702700839098662841004738701161862347872002689448542852143918743465174513499195121031365942223601776326954391523973394818441582324605135026688388924041179203684483055835715984541432716010155805634982801097005153391084135888615014387887689816774821965608890534885292540559583617300380478625505742882510934077006799072305971181854584711276448306529906899345887718596606110472968110025232476059064866550975795536291488008231306387993571927035249859146609738827215749665639471790434266385212182424615136351157961130445637873319616113889022113201605261913166582188131656939939515569733471103286910221408376091517846390066941117695481222241457902401280113074834460663449119934116957250297314863419357535683043765377453306116023217562190085117731283104902034580064779097133453896006204491198064839171436692886294354250793987076580751311081091009677057419290500532148046551595804042293410940463875207123604894274249062555102175656264857641075202989393954026004252640954566815404457478080692980576843233120143143923264696089978245789565956041153959555264161457094592639893202265994267855690953970806084930259895749999985659576540216838912617385835876004721366397152085837128919513245402050142352737843195940239038331284258824601694950605234763759510591393392028172359228962155903504518802562951318211965760128092951379868769181694022173024525412275806907477118475165724617149437709779677234024177550311922649824682511414196059595159469698768729742978267038510675691753846072187901283706534058749504048039874636202925578459092796809417353981052899354248346303746561351588765009467691347963531005749400704917016311455943012125730583258558257988980411989181511304446465159313186482787226102406677883047988837973813506565219965884287763665099806121998644007822773837131161556484489112830776559776247910931331318461987270715884205620488565068978852247889646450077338389183429906388879595368473120284832663338075557483647617065733101176081156424268888424961987389013091710774290634190435100109055532567743353851469483416857033808746645803119315360161121235149757336179118315013604807262411276263688599828191162344610593016194395307387372946766632694578049873989129269410540340872479626308474923956182997795334247909374231768982532092698599098092351577831618216730980949766966521902590727523169520135145327646756702208259064219794305893648757768060092503900467940708408138419717428590556273417906082205557827162715671526534366831402700508650482019277821711513927826452972639635404405824059146392990340282145233087712033473640175848621513968430454987807622292083658194044986296119179571175776421399326782834067561548801992002652931911820188417171814145901891476597944172068247767682588955203770246790324685103128731789445897332322198413915019263666243095244444672655292549398133287420866334412470878316392948058740787554328997387031263519114450883566493208067362381199570633199546899173231471412612319153947557604891419616107562973536467126891805918316574483929755768290633232232922140198229621927127372584636265554042457390095013570914478770879950765399523842678361267451414911691648549882274411588287901733767097178348193780659520998520405977630605476045067610820135828454254835372260364857381868346804296661868345947716364099314198845954946304838443024054144271390029472012697845436270278417374853431956522380605875159579818842519358151328396134685372993006229353590339662862558699779696550486398494605053094557750568255853638954953810511969190290450469104976368909758480807322167361366184508016431893242880844651448254701018023353615580809938915350667600548092987088521004785526633107035220873954021709471297214324387501688291019584611176593451353082147980038083552524771873515220556695152658967148823825715893034452386237674532142438067806475948257478296061733438840371104459724946527899073441535838223276255669722827329393758528736141664409400295941404233734779424712951168865881954267952924450916982374163433422966198649679075651650303158417423534543353033875424684891713447518875488971719495241310473066193237606987729560916060492994029565544035912000495999420637455686682208256877949146728005401402329239942776785641716242662068552148609120880175734755356915055485270327897918259042514769084681916054658873240121324914653755158672321050581420316786667865652920123187714954775645301950182255123328046182710673771236073873517101166256879683871059484371292729505234463825415261647552742554204831613712063350285470227181801016087748332547683377675560119492023914042626779804416300485324512524149219592336321357593406953415507140618972151841585191090281483281470326875342205761892883660294103749161629134806462976011885425220381451075832533268949498251773681195510936081432230390768066679323891241235543308173409398953856235455741180513165309662723910471067964900277994326325415219393782807168152776394954957936491392727250767858119757240181608292269252410630957463536273921041480835378414266301237578821291170546059924084002594557053334238446648897083740810237298375186429035979155586642490959472995626988995528743403903864926965771995269034441313360499274272771284310596544076129487350600064453323583957408680411080819932815161893863945658404201077943498606976517487260330078701026337953963773754043909342811143880369447824780939804086618731395783663886049693904543165924584129539730883085430980186409180673159730438350362099627685940975569419317702084884833827033627111572857096387055429701023984130422433229858846345756857354759470704764117273017220525009508337880014064742043041326425329090177598435174540233818709444852951692520631156583186960385186665256333403077490001377354128252753517998823085629955136430084013882253871824450334953952158043702919230036769465354460357386584188895910358270983939190992997273506442492802841500239203941785335039880560821722515025443276190838579403703290650309850975629501983214924710409181293536155290691815993944645653368558165185104042976572314397565020979519537019484644094268898843609234613839379486350117200530672227692709944345612392473826579743948721413567426353466330239422829738616789666674360709549016925811428476307955280591963113396813901204034344599435963779488472096713964902729477020343414900477246104003423987237524695334319607606628230495200057664251099462704173312573739510594031720616124419528313929402680931397726405183669931467369863955933164594806690199599585366496261424822717253823790471251581487054818822893540825382665103778757735220288380510757168150065944436056965844245955782395431012657324450040948063126405969102978799160365483836258725957595806492665430878692943429352445385699319664902328717153559129667924811585452925204308973548574655698729706695359603928079526491337357524702625993245994600140991849593858648561111634689098310259356555379590798713651217453278330450944200068908089907974160440102770451663961322061401895866416925479004747454694967978109898666945795047563228228311235530865852210889374762737884761146928210411028132686807884311560710971500576211472969228776054993822728606681744316582466432564378722513384863387713481336827591037172196178527517650535877415452682958363360620336150402787035176614513359499178330134374244268086399004169437279931063085334274605587393733883238278879614243262737753404102522682347454438723071377443605574339124185736447016080984562768701584452792738133541495403995585675300421014403531588080507534883651135926344002462279871989771017589751461666471806870223389915054530913542535319163304299544129308890791543264905972041945376321385708718977150174055972681396015578275287335681937900853837805349326050658180456985267379245374756835718445485346052816660023757526213856942306077332885713405210181400124380546492665339993923862320861881945646188267320358411846607253014826882882105776895453517604866891597532697564169051183298059570867335454979893977932771728319697045434286737328560189312121604394154850559713808665058901887542085682063746006961178778839117153480094144172873679273687776156675299126026521145602628452897574663231603753669753200565817777022390453435530372171435711357878857641488597949868679082963602839408927713743857877448752405208772693078150195852863488343598824078195045686623956048246606940812157238269180123664592740414173236432283386761846463108657685163936130483091675497274230241288352119510907005755769218302174234320205719717527379475271351295835638844010395778053020696019814014988643004028112829859832314022012168214681553595557206742651093985438441556818086565828535550387990619564295185958455116150854822577638465695726031256569178836755584727773752348813169974475551516873108280776682380090623836471147466975390782023520837836504185260888554345826769456706859114752496767009412495777929713980660697921425579848420837124789776014128148713265386945052430350139772244757555639808178790082359939677917486363376527713015038696791902091658036982545617642812042728618251222665358223047451347365469901670007883517705390393680193931299847231497742332248286956528021132437308706053010984138605121327456076199044053536733174923090820979829053937136961782297404307560892672898364951840507384731425685415013843137422654411082797222317558914899142972602210598162260649127848041569482713762967643752648474708992679988571700402555164875958137910103198532021541297086722430630963371183132782164642126833310768838386082203603471401436618477731062692521006402480555243497372786104895788646808085602759276124106914847880005033963127242562939933420596454457320336898115252788190402320077436481164514481464713501851050771501680005144232616979177060079306885773591670353790894487373022904739757461402636995423104621146658750866017630345782700766630983222872980385949677547030366296684184320253488038095125706502151410488990125979928953188547147641427743741869988878166971931004783579752617864809218736545065829339068103607396985662713133187550395875113667557736529766464138731717232946619027822355987012936383470089694027575217642040401615646820761754426697936303074146262853324198693833304550284979233469224833629922683347992021843607916254477562221271063982501277798625677758232340345920815678298737202491674825058602014904908838902240586043327447535591268602728813908321589030734207736174758905550919598989540364939146088298169792393433100449147493013878289992357383652897610533001726808420146215842600341549974247659112817884656644013561866418903545958327220474426662049423913499194926034544755930683586615825972734424890410436169366670612065106749072868858193367635277900515994243347128606693144931086480734424782961098104415989323557939706360176543858633868451536396494091472091841743863275165103594001611590737999940909101414411147550223133063646133937013359778402743288240932311855797441884231951056942514965549649594316822537573694702903429540632391084279551088648464981488054918371913531042664425671440764401356844248823441839477130123912528213186170559286495339682513692594365677803611011860808302817699589963387460278977011964264825515529354680575030964732943713469084583445623512350123148082346650197873424718441415143157023052519983363900010838013754281983816641600687288531716253879997280012040313586827134596802091771443467435837766742992828368624710019639304853071149711374182051257698851014425585155999873273618112871004654099047841503461383713849666836515734091616815363563971503961774477484637803793809307012312499505641861794957395846705087120013792867400121286915905818134187926662088348091347875578006069535982763234003609999259177617129575459526686809968896737248654927517886942715892967864454408395255904688046916951992340330134894570838264505114713580809670460933073191798917991641521682404182648464998493643576760077514062272900459514623406657832999866782963360487693372828979627517185188059156278459665386672965399213528464992581021681948735495880983270955952494534566724085256148806747245743061143232330330216584099301506270210043877671619447492493221011285489051100584567619747849263022998745782655438958747997170616601640441493856960953144486310121310182498233806752972063704415993767097052743549886822900860436621141618109544660821437532548637642686115161895602214017328100192676867457899850767996262426758187545258615303696966663579737014229439041958061639889228496097741534366627343850950181371240475411524799020436463426057404613394833143181023925234846151089820655405616918841874732522315601162829314620846021176332113010887499512672273823166066301385465408908588167869487627333728575139101998469444079316228287955694587630396266503607081429224825248993210974394797151011503625418729164026297229720033450532318205319366968518014570906138949859430202798356777649938539880768192682964098037449148708132285386087830516990685686439109887615317893016038977620759951516276560907837537899523393459812271959132015301870320778711590232888618585884535829504413866277240264211337491106619825357332812528240125823335944699346039306063553435185469412205083996698835869115090460737624526995174260193624905839671320254471171198626611071484646702818421760469284858174057643095880637068221350014508877557198006961113030765719115756836237277816264081374701870926781513170540762511649591369387726385800259633086985408727361804545444447446362752251268139971940642052707826685788629350274227322156798469363435617443712076051139833359578438047821960633991937989970344554396995675879331702538379742298213247036557988551324197615046854583561053855014352189007114268690017296143327991732882638113325383565036039788356065471129504367782526040656655189582843082280295383117870608512678250387898179345608888082023884611771956014257783374523890258782583124717941539155275072624996477835546047587487661972995008327281758806353933281884773453091825222625986433688926014127980234990487964301867219869302570824017682680972392054202758929561004024833079919919482549535582136456800479206005362582944926422794509264489339979726767273190629443307924703550339993397691841573075859689144781321054306751970086193683026482272181151179685464002085387640192080830880905161437271593930946636463286252200067141407513975807474159106697829582674591035535512988669937112641830145830674329618423241551501837906704617802099890207401892473834103314879341596528737591197346690083641718039492612122960570777749551728668557068186674677172836920737210307573855187240796862759347575993317414146438093217270772284898459118844048806172654722015137098307589023685394876755114386488432147016959466421629882620817166883839100053781336047652842493186680840344252807739588261459664090984948776606484137086826766956812069951764266893107493303099559827740210963150120600203119191221492599563001657427931357423299195863627869741707779997038533424947906832386769520886187095394177490146482523984615548079746603177303414069225059699380775347541684843013212607626326821780208958637801503488750065715755541305258994332688946280431422693659319288328830109805688393961163238881546892720368635812946763123747629053770571596460409939055599381758066097756305081192111752242094765166729687251371031720243551913174847386822470066115617425725233996638217177462685625749204548597570212884525799288045493142651082849337615712306216544925766035957100521499417470163579411894566099839768450788002377069667492859636830718200028362859371403968025784949426201222317416514537766535632344399616255470018154097642856605039867309753684520555351433003629312756789177080736424124366849806027244501369755725789634079056559314085107632850966201406566637374026483997342967625870537938493924547176668488583755171562678023662192170916119960730011328860804194399148702632733220644315495116840592176345231598523318509045265810749067759788111230327918977119971977358807754156913103105421870563477504339959639563364284791965632663406910513377615785241734464157480689951908171356067996697875359841407960918642385770420924450408690552948258950443899704449372038736578167495065482322292973589463498744423502288979627350834036870542009473462122151392290668490002593252865128191723692540814722436309714366115178232362609819650418626978781795705948480614402260149876151144719545183704765444840029500258733080481262913235395304330364559389140278794255413138709686940555835545126783069598281416353302138916225091125240167651935564669014903824701676418512448749962342484860000230874945830338303407998921469331085983806562914346258435858869796683339781542087779246071421183032732069672017010714555946960801074586688753564344305849900294098134185749240690147679233623220462729692997417619831289328672157708460329351216119913525394006705066627685817708553231133173300085119397285417913790954254533295666470882644321109409003772435551985986178020317525775310242765983040918509017393036124490428906645934809629870757200168231891104786103315629985009524799258980239230331837057414708173104653002152788618014829340996530534508153839997120972526374394074358907339467441910729779385731986162833483404475257534341677709420288450328600598789029665693490161539038117754945327480946912226279828615319865798488963684457548404392675653757603530938680763611651520613579526499032608783551825802311863944499189762854201905958289560674705253166115746687452244790340678082944148862519060058430771308745282212999303036932500183166557537941084492874060333409268012971121157104121862261246196989229210810570709560526470782541489177897357993562218168005118797219265361702955260653067964843016243655818170426547849888355180114775539774461846249206706404775178506798931286418571369741709084349805114349504592764299294567683999997036944432357529182845414575206204740251048185354773017875045112860052975312512587648226456173217572199346733017245714492781957105483103248498236364074534317558923662675512622806314507071632504621066637546417434252412295151808613700455763327569916360866232484534258527973759837768540102047060028080053530117043513256940062471721147688614584935366676102292588576559844263881184253261720415519788848039411319422243989046914928341494648421665277125103849378870722130616040040893227114388623138562134316573031648060065212103558943501553955874562827743418336975408557929759610677921909483916721681412372328919257656194530796989619973602172012382599908657596363010162495448904480600427863907442475396984267432292523825491436321910268255555528416520448957525065486097119873140607597242561080480091775255127509524887075733496307250112530097728687082615980353290387538781715965026341770004410113544663814156600559003224158036082413029551626641011165591636213744553632313665824148756764801603147746961591710184674043551344440925610809635988826272226743076946086186696967834384684360267684537090696847126775579888926868279999333652168577584823588057174742870034978162122815170767609868739076802853338790529934231627661901631756286026192424675948989034789542888248443219127450746736332950893758289514102572774041568059624476048855875265409820038573315850127940685980695033544960783088789096670246577467148350392770689710677381381192303169655830660043548772121969069842044523591635405738481990586367684217095310667264560521960597644492398100752197221968418180691000780147793673215801793972782031577641122021544872067261255926095381501880372835496840826804757830766815348716633206740550742871979415790464803685729196682165467014375176582343307990345901261161706194693803740880102483362901743845159944036136854278977506521263982368413570179220035059222022004912265993119008796105186513138176687546483540389562738418403640465948515425857291110711976213177514902688839362516279206835491763173059571936746542692492109011065503978344100024090501118217980386539576194425532475460024237237081626744337517575075321106969472541271917375858655403233788070182495299477759535600143771177242279592558285145521529393547826799737453497613935478497762796695672271758952640623100834838829209077063189637012953056481847737242743129315123115890314433064724512516838457455197671876759153316509036882835103260830877648917474620484799116468004035577537255370046946137613135774941539380745019782838948000808629207549295809027931625988746204806636425244012249484896526107550355118756471386422948100535007186065991729239179152468924871040587108414320310309213615728348427068768832738589486493169357548122868566469071231081565619266201339428615185412418135480855461337357656055614397197379865705483593459314528071685677506565447420847536683504061214504872250135901886605283672977029536691261734188916469645525390120278858796751894424779918643033316266559155982812009855595522555446757506325971674248430343321024474733747423026890271357999024405128614250707782077934161583514904636016583178139610788626477788591617413792095952344051709585952514450104446717440658271202713635008297127186178798085471753204120199821634685763648875009979580565350095883925267836158722996946675604448791980760161037717553595473898025665127246448830157489659030123702259849708612061893706521860038416025032047785885660013335225464485286883392721081287370551155813202144807562703693880259941845854867978264589082890864589099759425818233410791103764515702365772541007236578632135842110229928193963179160321575678218518666929716655362498947871685411049634783111353756124928019995143056919892938482914898438990658552372588858320364436204400681413622721782630575849033913866123198479268732258348415249629134691771281693571006323935096745413387753102548895469971614293435028134664920802667919290223700635041136735281393089496499911322695189380340620355865633395553177450145707678028695070698967669768893326995728709389209034578247984137566401933711661276704829769945179751801257250120228061841957890126962418856269759832777996369662000029012520243164103613729172733778261904239793257748867329003087121680024807064353841655182044933935272724782121003105282317184688217629110345665195838985850716248875572878322614677060566494106806865856919353201404176120752069872558288149127397860463960794046446808267415091827895825518909324560913855016324217047197788091479337769787182535451582592856627579148575944834278774519224628895417930749043079102879725336553557359937252134694439598523203092204341136646434747148089164507062282154620315274611140522023494686111935418387210130830718931275951468718698027457485420592228180226321874926066846880562333594277976604211057912113355179823338632746055293790716893235412479056820968125688542465956389171030335649814181726583884475032742223614614131899776522770474335253431771228458151927008022011162207925049646209970469441527984458467157277895150974903241222640851186124384655118748402142013791259997481596022188408076354468180433826143145932028401807116356767499846800903816884159600670402878408142228027492175127582875730746075712713041939298905203101236366596606152732718759806543864755473813016208369166099640001487010637030530276097072803527816139694040831729144284524106233465852786462391304310157321750692319091697484489350413718411267038547784279335032240071490344533519331129769201048649200968114163014623069797365271956298298691485486230537283569876009301137768763360410002207589784734582223832251686137767637796320817101852085351578319634042523121868734346585666315744536628399330214953984797815139449273596549734917435099229369295253929908510149372213271439546069965449782227587932762658269145387461367408943327289398090206858091868805817305075353729591502764460821595302036880654104300409225614640345698918241278186607806305945809437215117203692730501966252582130551510160599603703979110939144802991546914229804414492233097704665488546734351712999136611950911856303635140024295077614104010809131615468115840985315321766947384246407429406597681561795677156081876995933430145763087759846819624328503984503983153908844637400035899760867325894666336872191969653896321525360237537921928032195528514855838999721029378154067347289633288753253746967471619408114628873357231663570982253224924785103301496930750974931559942757203258704389975660399389623102692334780639689218672157188166156381891208111543616593607045954078579700298730328201115401789755976113990303282430794743359405943521662356185818027491147736235565259586944313324534141560512396641897491100342140958770469658483458925272853196346680479751695281207832141365988218504323196800785191114048512818746402642825876966308921235228368876026400502512164909964920969340611278567861476614045858509700433110701227915930037674345249680230982884871537785733518857260592334568954954328785285689228678596626970972205475224831880482335482307087970090797950943171741234236523888650443514918800956189139683099879327657746769046873278748624685449830357552013162214551536792063521535178380753428067536702285632381905808346075624986264752420654302321981405540515658993584365238053119233638064315491745062107462556567083365578714591180460107072061431071927236821716067399562158206434016940723144931247001476515314651746036576891257176315419486292020805977117421237649816380660655710768118982503872574939630803820926371072563434112417690580445123842892458909279713321664607901009732239636381470503706943629996330234016489724603315922595716447886401008611465428303135739272340278181764172869391747423671381823117263829554839269036333590747352943646750463224100214786845979192775019172302624869276285159876404232093408346416339351544750660430758020756749018134244674142779152501240012741213615558079938243555240018574176875478923130112342470795431461249874590431819591796330406303483280025616851424924882961303684424310469747001424603472810225130627049908272780954503177924249740862785458986094357170818257050053582324115483949800729281491604093757907717868889932858265238084565234700534849918468002917083988509998058946683756221405391878769941404988387806679833961009568215396010302400178751665934886562774630688620823614581798615774109550940210248903346455728771622671989830419804277762034651060250407156809462553746435778055073222980670058848975798222939406630432566345607682787662486169930858778289397958783442752380284293375185969947040737867253706349378138182347976540352434160414917332173168518095207347926404856237941827084552215513019134688679075603675614215576021514956984905782577833099754545264701952176168691952145918448872455000941926862852711440541986478251126926941162875496147799590712493428711821766232017960587342083175483974573160886564465019845621687064767983664065921667672174975354493260995855304433540214312512944879908661173006417347166744067859229138871065461613046163690251472831457555465531095713436948313528116134497583776129352664726973885728187123810431436803030500362747234198050886034842366934122779117199812515063103484408249910705221247102689398341051731781904186927546688975879231090144718047001353579597093237356217339563733633335740653513744046616553329265708089542201973726068412071781693383746108937028314184991704227907837518531973465457636300204055271392567440906747263482553378264269175426554537189915513333801864574280512324962498480672026021385385331771344085176426296065899597809267961869902325312963554536719084782577383439022067839634683479025922190195554199354665405096587583017891028312984605823354630301325991675349922102092074449993009608945503300764785617169469631602941186620796111114918168336019373708322826830375903394032819701017615417750346982991528260124760704933707141739605590175118648491018148805741723820244231756153538410620544389538342622350125493648951515037955467447276706129961092589159428824958352352343923203442911523186213395069511447995941003957766359208460342343666653905465142645812593930808569672650915691477750826413810237620540519206202956102897084659628843649367121597111777086844245431765252792608326519705349694813618848563151345400816799631699466351938017750447968999273929763997524155368116833659065487055035531388656253450771595934431017424369829380860967858724587190848198449351367397719233424613023544317847136903485928231226087442074565265657041758435230643700796643755500740168324864841446582808939534999193861048016226598992354282208826260130366853874117365432848558994642220761088543224341358068983494432470863137774568490329924598343982408168211633991998425985863766272791937636186603098890043347694865745033819052512162789250922422427111610125912719711040561246905114429306855917890379579042500171754669459634329338129835322932740987164851361014642935623571068793581358140970806995735889885439093049786202985611986844092765635319237327464557667315724958643266541328319282308259192769628454288730171158971705381093063471148547493057464098041594994624800886671156703427110031467946324984438198209909236221020830838024932067162127134984397751772783468598124175567778860371381777149276291627534477801942430766350300487569284827788282896879044439270284864076216050431950192948193811083645736600489682882330417689064697403865427405777895972891129198596927103849239420045626133197210305738702975264590776629199668061577602755352931811036393161387401659401404981454807336129488776720974522537671784409191154761240514653037026996461530925876901058917051637718643634230433976958781299359558064625304611050267053945493536352496055461709620245320625590535290068945630937858458958741902783010096899659372866898900635261807792728246518152195888156489449622981993017146642461039287127141521635810286581095777227877940334592723071201198612661955091978126534201902070298830184009052451405354071786100109560719899771601799080278790656792924595745248947930612537641927436486194779886738444952685694757997794673680067476110673419064490222370601385509242558595623525008086571590362894618575527440774881650798808749756438350227479846504742780632028711648946911113776902080597139557964588208424436792948451251447954742860954112438813266859646479885127008420116354667834369193730771717178262114901292425449151628856200013729015623248522421412377722816451564656527630859460083170380786105316791427566189541901909092891905465522004575847848541224659158719363499593028416229387446486906818384234051972131108861415020619464726771423238928794228032940522247766799455069430788054951206890978842332450274437721508063992764737585557554869626902669916268867086916508482455482009521361834921393465190603379498273569764904318768092805538005123125913071605495325186459456325983974512924988306840610059978000519489276636401251445881671981872029870069225350417840196804649417218284056726112298254340635689912871913693631918508345985977651015549772347819052183152581804795272118227149930934889508042354642279983902217900189670587239310777511362839859140099179517335128004063055258120205426883474758891425933374462618554374248804166383757040247052574167797170882499074565354689531511923551868694468041519081108767760039294320779436750458316158948656916583311819734536298245139680147075648178929620792883174781535974762013730139009525516837875340508110249836604110701066397302070128292596278811218224114606616029100205103822500204098391248127718948297229333366113920544616426944547885420625366304696187143624031038981226019000630855685491445552471665546111316958701874910844686848623797241136539981450180194094738566422178844002544191889508816324286897033734348659199905623179014624764788937278237983356951718820169410776386247524382558801425816155938812446611714234665407302476642573289393339587858019313983899159142991196145597930137682511189453740316748749041133469066470879022163335093585812920854016501100279187184124306803074799034583243218448938598137421028980912883045342303457039220464764514274403719998579126480414574130214999094676832926145104315224287602934945913699514243093370596449206270826985179769316894577262882415626797523771299103753494058757441325688591558615142938646721585471542062404652732586346115341356684572682020947281805064282383879937653761092371331095155716872590517099294164577194336292562875809328667325100101614945607910489104699366530438188797413859011756564827840045147436457462780516909405602326936615766206752998004882346208643482366504785520493877598731820279666618877469433607891052366984578139940362482203274579920369874044396288855088179938947214095747244556388069329043842366705251248875627307340428323544042999953116714215592040400962700178535015404558892459398242194884442060430568427633282638774054138981764954399332710184455619316170551315250570718012394784693445143764966158253051414345270661252610498461278838314436931487957908750856632929434701789158830683490537692514832438765922104403669048247925836473143735183973832697168524655368200904511229926318683476698154613724513313564411994609378943552471767982971101955603671426115664697856965062627596038243300739883143136411569916707741999585208358616248938977377759988949253334336537141809532128577301483440778298559443438525856413858821813844229000980519951819060745349023661089083339347130102623248549704437941787745486062015831059696977322381225724144001973430945253697577433590660002281481685730321117435373946733596307744357081471988253420731424956170719652678276187008863253890277881567969864907388205813007570851052495222382035510993139951578518919039782017428694429869173982835498417028717397887807915112428917875761208900658751406688762829249957923616152784186415748001633777495551813913017260459555891466470436275903322522659397813363245010565984478348966009115932625986908949795169103949961478282978396142629024695104696048733920001562597934516235956255658344100517976441449054239434313046905142737766211108357937805889996736609482614809096517476375015377913267261645236152453626058105107827751600646589469633465945878954777505141259804497321817192333636760350786483091324315723192063918852882675297245699716671427368235758752898141738035361264885776925411019399069479340961338242372564901559631268081210519212933655761394726911185189553565954031610536542777001274846560219116047722187559171253880832771460348603968639145626541266001680485495013364739812496415325688765724822661680084370142750430069137214478338703704063680517997684795949772302126600089035592568969891147042689894923475414440595268145412556119040405825491379685223348710118432119196632863326516432469118736650606819277771098897411744059544259864523508231925584888628104801934552524561832211496744861236412727969514992537296252585724343888300971637281906449792323931763625292754843907322483867213540001531444643992197549044790998436345575668186447672903644772733612563091359685326832946667860043170531160064419555790876742329278819310288280207826162511150255397014849511242916962513239408430166864951336785781694672657077185283854368239157296491849182718407953283172202786366322692299945797529887051977938156776423163200029506159609540139075323491118648552715334040381671602538923579505730180754792281291135406513603855739847586621083385388809002983123088354283913642004638733593819774457662113168506627013756302360167771112499424727317651705503603699813686998878417342873084715211166838740431138815110318940576366556430809143150105207885455839583790871757167293366714852851036947163921197245321485042064177872741458555332733154112633948941132110389179730373501978024821098840949751831350954294972563310721495861789972614605461310365703583945800888148172799348536035746794675152898679525997918223834191609477664993927577650408727807387128387393782426605070675696105451697498035121073918879135161114274306261623650353007422692777702984911033355979779914689147832408222429376595842840229657289723105460376874118219401738188411294710561506270137266804873726844290609620137984487575433650016840330740046386884287635661742663301437673125689085133303120856794715797552392652879600865486896896738399636068821769914124976907217224798623699782368861860399140252315579547892110499875294558725567076102579652283717384715423265145557158826648896411635242576308390919886403885751110984498415143962603550214739614477425156334769571920184868112292729925259438354914031057503069984970816937136454555340402277025176234384008311891689301631150997637425785250098590428880643394410499300700877480633380129884174564258202850021487335735054430655840155288638418060402946135035849230438666220354333197685980872610841272382574375945190301909991879095757198620301344183024208668845313878505011654792633070243809302052971120130006232107159952881219935735005471524958727613625092243416760423471525004581137731577289265308224193549802481072813434822411320023492223298868668784944900780646863330845640157771878671428450549280220706686727927566689604179970784914546916575888831901726397522628155270565648745079312090640607488543259795672420752303075366780734949643055245150276352661488879479298324461177149228450606334343887065978119727238645355172391173457330256625069150513860854821236074053615103193778652757355950145330069688791817856327161246957965038783051041834982834489278594584677861182005266851262946236460767266111474512976902562130902056041072728225064735251522235401952173470323648518086176108804772126936702145175682654326778117780924876885097870634194267052476304151518971119242774099713102428464541339753245700045185567994223839035942752195028802759417815844906966870156099262934843006872415404674101728837325841932403017880143323797663190048970743642839276781222900430454608799882782565135046018010448201515670187536192841122291148360169372396511929045193945895710792935342450763433723659744683491888356168870339243929159654414315274755125005251593571405000340770164467309713723103573360234987229459442547126747993246062924983640183474241838589594189180628824473055608902761323852246699505143055590271089529888288408462662302197539447039580749597102102814884448767243557226784083207503720133581447962137570567648700612632622167808635472794320615874282245822894903427761841061312131435776734407470924286644439437464337559926426583185300213340069912804173535842128807539058523625391879084484312064074392804791664121767121223617983603503234027350726600185447280012635355396486916695719471637447738049029715730351882173137809571498117794883801675073868457531508213831345961859777927519730399731470289703606097781046028272532715564919395220111748152772910179474478319093944441659414700836962773425781107701882469300121273109690524635991419743255659307850125923431670020358071912132458921003950232758549857800925532290708498196388747988232662263140967906234512503751474694868396359152397238670333914162546484893178947021667277626298487986981405165595557289150571466148204114203187478380494135392064662856154403909617026035384520174509346586426349446243213829595066295865021619752281445043937804081192607992805363144078242531462351444540364435753219658144864990465767123947441732420859546764841159733812443739655068672064618506113405149047730988204152464179904325762421456721180895959216429683498342480779159964946950957081020444093717842469200002298191499624317153837851754380044551205713203542112391622668572850455933742952745899732838591680799436735215805940343204765075284857458701608144328788385633193528714990776102372771264755708158566212286805538345473341642090826011398486128108217156406194181795209116460286375835143243764981164552499347417273007543441371758177981180889363471660277015774383967219884637583024031141231909446158780472083146391450993032782960443755909732318641242784408926034610617863497096761246062747345321631045577679708245897628583779474582110004308288986436507711463637185365391637260781500867957958162820036384621704785842243120712380681372849878728215318995160861438903138998800425283151149573400077650358116528858922285452469268179147591318985562713552035767378851980453345522373828972107903759959239173082272872606369983217156394678569466371375014117193417468509125490496516460043293337513022414586991955155533502469171916126461016886015061503507565424794447967863284860004841801011818255416385487182380450827184060334335777190709926042862416150936370382403960916580903016505288113589331429887666876442312491043073475235430410603555412719153581834395648391200100135940083862450681009252773059029104736153195207767228431500057347208351578553932660762771599077643442914055236785693218698038553648852836867876238337450436515107292017477534198714625532143095458160013749750471552635367355083879772528293054815207345191284242669145997348442830306949459646701128672779594451874324325669498175986912661126277765021790327903071736149272629230784187281265150466602037110903949260284232968834332310067815279066157873672270368659970827784764126248806726215908700427825012113866116174664454456601039332116727191970656027010092359089590235258227094508094692936800867254553830265228962673934240596318372591092031340929395185892673525425486475069613898858922468335109467604256735517363747833396741877015017964502793378148493039747928508243364117142449306978841693845804761706600502500405831069464488849106694227635322815781617858108244972346563181839779230525557086712363632248859733368310065840099282598990968991963885193824833997264672134406380410075106886012544914714171034635028873501265945034737976920926019567543614263892427641860057693069257202185427691154188109478289317218531799040054931768983124775531113599845193873840515785612863895202638944489372387786792896151281545044844434370615201001354138509698502976904410271662658672203681421062482372338988836968325846607208048859519405075112393628517232272873927734906549125566607157010370787776232833498018570759861645685327876112859049933191585695219466689255093520113644715242304497198604687345711761533940027605960054638068499053002145530414692717358123941425987470097717808482360962468848389648418094872671344515253001759022669019720995372140456220803908685619849116744913855129781005697742939990192554253221805260063451974372511797382250150848926620357793817149113535008393230934424946432349234462914631361128510543266485882791510900495165242624459480994971398206774216742249061476395104582054944226280471221991105882411112864004715996291163673059418285628703182215233640142133696982942308759774311610718908883054828354900875467269842450944331500872231324516687618802252737605235518949594767367239977447737228232705274707100495864257240616003178579597983884649972814115434772845099168200397052151547762876166609154046286235297475924330780286348554280977078758195615905890172608644484673696378894566975001416493753220907032889820371017390942096558849780713415753018701854397858152807656344074968358698179141489235484525403612224454914721027971115467566853818758273400927584309359377154921640212523316288031283430451523726745997435856375241951254329604510410807035530224744158963507665369627335450353217278632763550123733179623823480496295089137020200335917336574938177956981028399514821274564884698386264779345089199407875804290993071419981744834727149366992879810423545147839042424140225367693794564656519862793241050418374804941957585011984270715979317119363407768745365008297465800691512958628390699351124782099337423783038579747112542788491497566713284653185921807340693306563226682076784482506861398337594881763167997300289883243509719801263366493635014254061389878947153595952546038555160484748392888874457017788622136300558503688497856883518010496761786898739892011776889049113292256092509961182072020395299039066243995975375434955429178116545152136619951826124958435910902626969451609789468336844767344425223205152246720917945460921416036525158399346316353843099459064332354506920432063312006280426483626081239980842307085740263174269976988303948413815151068553069159342558586084702256536689908378137506589355470982128778053118579839328057573185248357034177987914793615984076771590405823606630540172959041775130827033694029528633692132257107676121552371211703492787113110063721679887970774620583216057111931262210333328731029631781844094457604350535208554051243814150382276730955680528817013100270378244995493472086272578269638166086242673685898317831794754516978249162927043889528874661071643296179230498367146466810017745744254087699222866437235410246966643645724182103580585813763707062843227458644452291947046870625297834378072759331908063922975128332311442592505000819906658185581422153604589998675896871563907943845645390979735826867379111343917523737378318083638981035508247903458296892584256424365084331517387915741049187099588367825981864546649369080834944157823126881004176905463751392318588877296348671787810315952315467554203010447888302704292628309835213465830907669596727476041508462310959442173160727409650635928631466002461218710939576441512318461961493068794300668808890205909750259068915809919943035908350006536055185258448124471030318101688652222435687101912067949722108489309189926254484851557001621633914339006343030093704802142205640670048464558486041507240985345444476407522500498300669852364464387877179805307112684812872320437333674402979087563356312676651592198434495423408768522133586174127413573781885336065176820640866226862859630462192467493075052672495478506958341538949639339975628032458104230299597803759108812837397770762627061528387870999317281298240581675125010234904153750447062708192988757793107424747318573205072422104006546012327096505329001106452529028112974437704605381641080722761122748958416374388737438583515812154062178183219638952662737958543419951218270312101029180546356964490161754277085720971708062430378085884623493277911328453836729243235429734518788641836142464032638751390198629620217755834744974458269042571517280307802911400562530106789135260637376810895704615288985985582778796945912198741597090531978813511969730536403717073083941472912542047041198685278827482218072528313540971943464531315057471059798392672545220464155870317309348314840260707869037649142311789795827123624670419602591190986301023929644255780823257232520470811773600261894208529267604223646650386858582291094368533006801320339347261487313499844730138767149040954920015754023506535671518711755977361113781520701033582364254625310068585158917845166121155933588250036727962270236961740778234753526361182615010976146546049611209158119123173635541289583151427733040369406462085876632774687142852270982402021490420060657924921667224255671898942763298722596401771857404989253833159473427014963979551247505731992589623692881692519016577778192703109152866808119811102058789503368148810531975287157531397198913757189817228250063452186402487586601605967562922539548999875866290462775239497676457240718280136110728421551643628027333143075483286253175565580561209311882794081004379488038275635474782665031285431996286555693337564140552923945279448657003672038831827431996714256519252742053856620092514066106743170245026556339142987174414356185116698674211932185910125305548038988941735974084714218211456155810816179374053344522285885864316616138965736575026307241205102970793907493427200998897792545347557597498031696236527592341427811941904528654744049206444063757716415469916507677554212971807386468338073922501197083513610338809215749491719229096126315131641544936344789928469017241000950185729211826355404119922372667800734027897423774476080116206524707801514567498348605932985928559645784638110459201804343687022745367040180707953124400909273973534809172432447423067956233536818107096590878189379561009689417779349803635414211462786573124497414601680551034154450059485228555944206526218440885125346852120825528955082830209817952308609336868070840596830726134500508552205117479787192307559848961392886910716476504433678071725524550390359315321389826573997673770581354879304010987899019686904564247423275116398573431878682588198599211157276963750124140055974150430052766205844188615724653133202731474729926117243466518952672587835998742176991798661472621763036828941747877974842626626982470844239549616996883238499081665660628138725331674241071227366238496120434230176978825802307549782840610910271754191857751755888481242697452484771069165742721407524402127059227194897087057671986030710356389687264435474328643341552684161258195860614121547654360049781216797562518426084010345307920218762055046003605694797720176920393168158185656373931959640972323114807707597912898235024361217316634791428162848742701432177751865990268615988950568997849698744645369884366260472539988141161711048758217532942144932479775999341558879177673597259626593478682146274112339595159795898205301207216261243159092616102008382972888317352900284819393449189496377077386841697161693184241038993227466694381142436584138726597584899248666249071738666950004069360406685185716443807562988292723552320071433723675316073211717048422985473445598144908863057945601388440635542804483967469288701457843825517412289458774149171779675517567289813887522166360552255122670444719320425378569803534527762368068529462819172767041269732966233510884982665983044306874707894013743650037273193026092719710805150290362553044931139407398073110829977204174404301574644879390995497006409813789908170725604855000075091844836704044727127406019284956121347714364918263796092333089650112433047494232984749174895013171469569335742443103243293422119291468928101277505140776414594353472832678328673681218232759098565633596832340543236562224894025276680658712109521556385066838349565010128564840872698553488075160874505416838971758048007045742475831567298386492184923567669750081869064721227551949150213330094253581008007473847387654866970543004454193094524195263256815896309373593251319917255645393258554902799563341744702645384029965226109440405725158246405691638806691930519929918295258277331964578738945264294686362266227771428049203663113129515993447908087395503607829242217170530491475749089568494154016936113433296022714092437085445217079575329646452203429667571747554047933978295883787284215403896334115821854420481345914393425626121676803770099278858664282840472979631309972213109748726474081911412348232169295088743973439686183248585955355272216406153756646071472223956865109476352208114400670603954049008692858123135842594234653756230329437782477211275740235667150824943684111729056464563155018120325425191855765976009000116107049172381206337692570257888818998796730906458636959304741030541620575240077379884255964859626256953524145123246360004252513010339111139090648962679799640744732389260554945664312352447950544192168822579103236351581040830087530256194152944590849751291292371035783742513537122298837822928715935493304233525329274243054994908712647170107852412867925096428589278576878587794904994693276598088228934932702323022593561950070349470890614393983476376474166442624221440429574667086919695730920802781854614036605434574707438046385999110631776478855791210963765953185727032612322716180774194323106511773021285322921829637008096118295136816057895188042378250347341937985181365170630772314113321673855321225545116898219721775901686987420427389242553756085117725602705513571698442646734218944071716662144308141570409704531801357969341709468955168406594578404847764957829215202538536769444409006540833588410180889896830995223651991952529252420295554190598073772944497898906711577127724881982264288575151159114956811627040441948474081246770142445253335921623596477701000142688437975344939482626393261973235686404709434866544726111349827364049390815139465128310364460867718194671870398426598976247492442676228601353515224468916012819557650592450244395176297928624156271023551056865860135792793117703295093913139385424937544981777563593009424144215240171439383130994111992003839227162382094470100184481080529192357390158236975795868886959868875468002775481688668088198244442919244589194663224388656627150162145783187361358419686584675581353958931417193552537455541611745458228620535000631174066335896227439149304995486922877325106216985261841035713418520611346210347274536945327816131418015826643579416893300809171733649204432181040484037661265627427183765954152729178173065201528688069417477801762308830896167607189439305422700083357530281083089435686104051098843277033725854944701750528888345217232851923073915071579452724369736496629715405537557581555144586345848667765729878320998045433597028179029883043578955401594081292377987887683022678407597979924586477242967783795383501502672252449651747784819339309297274296574692192468101428878290072231453544070366970141900008472873355895503323217557376185579513005715030641692320505809636088620470823249479165923176020873163975201813224806841943440509011917033851188533663545843556105021525154725181189387568167525899154141654011727491546083860242995263841374378772960246691991682179984913824123944169379523221023367623111706590789399191713294692549180038568795377918976721282592273437195495612010355721642657511564446446242260026898089317931699427297364179521027835763389037381469696443917714276156561169387626800486150064556499986131546005855269826935410905695623735877577165475942969835387415054558843048156353299031907291193486242268669042954305166090473438536829484614278425292334793439095568021410265403049696218123122806895487357486718095479612051101618225173230766313451569106515619750937512637784572816551906732891908772761640209554673191018084585997143004929638462203151055862460340303877911289856912996981811062869885000160594356926726207754709326241690776178589953818429227477747952387873306366216722307263417916740392099331974021576283335568815793851331619909597533153298714551147876320026647099654064791295402482922409327281300009899874198273871012081702582781241887344546537155929297777278484323134479439488823925012828594340362314823325784910980087912568240063858826142654568203879334540892994343327273960905880318185076564974189987211994201186038602300331188501759018914467969022574446572628037780235824290688071444790985269582081866776170960267486263255162152687448445887440893748189213495052999008391148755927470878129551199330665451977996921863020218566286591581061582611600569123832919559337876841579766520922515223983354494627753532570181842873624337853492972054519294102880014112668978985720014939104633001058556069477148274072446958482532758285773178296575575957347151000102939583720612938609667242279652295097447064097149019752496670373873471856019516882476464016437260333482441119879375290582454187020359812002135840146326418352543238286175407305829185513248207898285449545810192929449308874814786983143034864353442040599252281095251704318851648974710059364264841016750566759842037332237840143732969183795750356771681908747312653291366356935817124217326343046311911887749013012306415078118594307895866084490625503756924475114588540849405841964617556064204216447609544039471658046427894398941332204004918547149870649601047677709186285293951925971391309170896471249805776714629304967993480789862854852346942324716103134501939039059062627971424362085830524936445681969244857981372358626626397796961721233543808855288519786431591052932555840562960365533068362368226215620702424902530097942703785298059685964978987671162144862173630961346834715314527279015868625500525409263312744266649783834059567706475369715561408523942381107576834901739133361801741845093002162613219671108727036943296372390903173686770026140487242937735553935589782775727750689165892164453147589614033205741523514215055412079602255390869043678682275764399232135063135660630113944396317083941530447983666053313628960477182085823862758971032224189988463312999997465658658944122443778573947436646275105466422847274360873253658573595751486292406576007458817352837033382194669971699165531105009237009701628371874212641188616314118141398176256161082732762588192830215794961491608168252146988324804114093219640580206475771644210377560029270011006351917958193367472842084906620923643850534879268879610448511555878967550399282732588257712617753237833701625514833559092296892839677060608036689306448670382114607269064007379759652182845492015388378568217780728883899087459151172827402349812290889626307744528761765781008537424789692433081279408877083627888970423015165513422554888054432112164999267745099160171854742543969971691139758813665171472424722843684148457067307082034629925444939737704379972025992495932607224285540115090736599763184716664988982145609100200227539583329585007233756358100816190925762604884063916919783592639872089092117332311520438332443426939574964356015942686109843741842616749814481603027385785418606556181844522674656637249982311355799162945642613854746562886601096373505835755417423979434961582572539854486433694214119526933252014693743519245098169488373763568985448210508136439652633671702354101499468881061378552572136088349300926423859136556717966268292119126732480091720484665330386137778839246493109848953319373123619758260247179347343483616135430049984808864496759826857410970133812924222414553286676717474176907734042441088455967071776300046429876234714181133864922437026813945253223556668203436484007446950397471532219758851414237571178153428059879126685745779580138661954656679269019440370388006994483091371378389330300812384328386247704745610955787968578697011670189532186544117541279722550710327334230415048761156907738999913470140393477904372655187822001465600723836335999740839098045124695638812020942038902646661217857302208964093561220530004568226758928268380819490087758787306612753140277779387084817658354398405701891933001514604853622784264642212130272328703072879806393247202471695088590106911066052973883432950466418834396115543986341634795385588290603291216612694047242097783817161571723589031080096624944585538645159027004338652190772313465827515385332897902354869466986941817824625779218577300848980086109734179922883030517855905015295584066073619037530278089635974566493590603743395945809905036385646211764508416269614048998448700834263890498948043279718024550074473592997035248680784801036374065125894432649092726446071788609381863014367367439687750777434635334374326507195581491016744392163686563972635735403559115006406349122809211000116793211376111502166126343171208554430590657459237223759515583947315578539932434613908892081677502239469783181964383171256658681735692804389436554629318643504542266187330911616734238890326368842131816200715554180119157247709550415617952977033710393094422534738120576541885509657703093154264836510001092500022375857353414649304393494458020403102648586403534328928684711783017577748203792337794478022170753240637813741491971471692671779701760899657016707579473457343154833626458919849296774828643124685314717634275044234903321537208542371680294059837909546345515722567868444582441011023471099240474247585388220571423465916548763065603895260400860829665496031790594580726401318009544725820238953833317530918544217553875559524267581464983619085895672553926684146723292356916346290957973980569057357427899901075078661616006086028371240682434289733478389170042637225917579152482419483934303183740443515085577319527055366477296438808302789221144905334226572453106311054909462461388765173098264258969038379341618500980247237060753624561045157484654235980423338785854218873285071766153229521723926051311703709431086490928174217016893979431764195392152058046477705491744549818357318026161886550195679316107388359776922895175957911571388181344314976055032862544579377689763857479548722271822173306886586247420809838377419127264240843583439011830280806037876227488313037364245851410241239592461385199599975057311559571644588015181425192033952222887548591554945111815153343911922288921034071473446734593002493244010431265287858461699466141742106410005077906898726204489795139928002893258077583264651893997330140717341261626172438784407124237600260518063969430386740310608227249473272542248270659374019393601242528055895802637561860267424015101846504473669448901618642051384490935224953591791829723634908550202110741234034589238373889996733098924377106734449970912493588921544954560770913199137179106744482493082017275418011984108878201222528206892813652316623498536161034295475878366391409757976953380637437647001346660262785517434077201809342283764299953212778833284928635827313940494061395974986958673939684447371237223200532666100751105240274751862536131706747979539576919430437679509370516627668312976078841172716994161165876596686158090229183160986657107084213958349895779952863453375414767542899068593755859470979329148164811124639187068347929374338797305324273126041987761339404382206086155744504166893084843911473447509460518326047482363853806065422852192470509437388747975419453500952039767502582683735572996981384410304755844725409457110750283488235650376876913631616650914115307235735327954369621176978949340126633054077083451672892369743671203353534056291648355922713920888892506331031841291177204481564774448201969797487095487489388060201170169725399444015351184038849933620169906366216334241975651874354654403022009791857702139242836692373261221345636942058290751082788116531977649468479820923956717075965260598124033735106376289209266196495125501799675110366065506823820452281438900938133713254982289525832099253324676514695657613083486026514437084283244006740584927268297184919544579795901765642338406585217844726960808368504297894995670275762278345555540743035404908898305219341343795663586366966738188428141439156395467773510402692812079334543792349143206830001953887740107290477801063426001770022889177747995513421104061393300191199741402603517988775913470846581551112903185641755144634075939729146341981175207145838999148315989168275024631999613085187065263319127286586823468905510410948853315702934728539146058550387088765500889368596734472599669204585264171541007320813723022946741458333863338581310221556110589180257075446771542624243688723049594365210097092745898414456463571950150926903735125010212434564263781382984530839646803760725580896571147720981112682112369405072963190166280049581457824114995362177318365795356682344351894555846246312548036682788273758689202041507741491761026803865591701794404963976646294727197084072593772311492760737488146400373619714394779281242263740403351688473455091962213729976665074427221829792240857197706644273720440894036093903410559025757578125609267413582228356711082101510139991655144235839682462056249367862729840732778537565002052286745780437388156289482341005541073406841143689737874920620090678510072874906429833534765353533218857122079891109348138568075686366695107688812068735520438415713782687075641853032579268010737358168498741611812317951073586817336837421037960460357217668857123507172523847569340393941018344283530572000870869611724207874335265268099960204711828148303778690241233971433994596992034101131503059710049712914318190024836602344614630782628088089232818329091271188205544328173813254682304324537616438694967054653543109949029126485472625344065523585917555270255541111950498955546511754984195132918169288817317215402579057205504709018416547328467880481889010681712738226246750795508563288192542654504245282667003753776944728153461108345973655877302041722946903967296669807421018538349010931315875872753326125568672357287418395654025175012663628157206479206793358688822581197347505251789549147385725426122807213535305636734247077735629713929631010372612606617735724609263187438908933507127417345864617833213491845548213762410683189514650884806519641375954548559882277730971662657987809870909547082719223072214757634228844313306708221015760252812151700284796911765867911773532187350736831007804107192842847757385179066760231225092182690627190291634674463865439301566263186231053112053786733391606498698157821242730666693798697516658874621616956111753352442716975050213909089877563349747310264584803183256646601250089592509717251533702783471848337293260538085616706346947117868192495916213715670617903470953122879934014830314782958346311719304487592167128467434637911844261925830795127558222070661806500050300551954324665930245857780446295118369176908999536516401209198380120254266832817570171892040509097753160268754552983252714529021830312140714073762011466642615233773588349235159607183867420085862416205100639791468054028475165535337270240902583638999529177100310639876247473520765724455391670848125662589189232589045454576286011442159555796868762513215339518338100297484230765321858533329612607245034827234404455917862191190841064196585974886463228548983187881054996539548538586423238430535297520573968231587788163733690500377228649891338040049008361270751156118409313201279292912399592599311154264470031930945364323405011922656495827881419812027173887267206727447148380878823390467324309327367467453233485776013734961498430860946344806475209552062119971248062662969222862230775883394300337251960614782359837475558258549249145252577953597085165328077411297517501547776648163341984667723529251989868599843849295491671925121449018401527577151525781331874437278507043787111481295118650751579370048525505654352447972434989945125681151049977712362908234416443752680240144355976093856039396802668711672932053552401821879774086491440076502752781763163191646042617664996768787437090139396350007884779086799229372412458754711150968718504359704964026676423225243015519535271946680455386726847301089010793886734421069224627628502016070126132356965185405974058630345822748766212754740011551116510842597020118791992575445517399697446986413076440891542356768092017207869998991046959973552603513154261024684423150718340083968211148795110273604464535928146760078100637989652314126475118353641919140092112553325823948137236442008697170716800697445775063181872312868364467009640964055374758251241503296677731437875181743641890084139941195786917808718550486985748858124581426195055198957943251544539154902468647019543665993622318911830301224193433523289054544782991356131294116197814386779260808543788705216719197744077749625288991549936669014983679390842073067459317081281137346162790488998251667317394912698250156712139993869777542575276370008564848209376664204665058197837200826408771050590374638767973736258767609431312821223830786669100904945214375138627210787302369117054959845664200994224285119444881889776613432882837077902767593205928602057191389766152100471266712309302589240813472629402473857837532812542781626202568194327995976518571594729285444036289706621602619771305020114992945616073272439229307196538385781752063571141033241193324863381463841859454616127674918313342145166486754534434256334759703203433550542344640822169005388406597349226503972076762260484398316764470587632340540043850211317270367230999112003936062276491869693211964909838635530288385997987752276873116911743835324564796270773591910704588325167983451625982077989899889747206886115860657151044495638870326880842802414115987990809937889860545698610403802862848937445430814380092249535142437671984783503362765359369777569769200426628514265768016957061375905212203831355032450114122414908854345122777499774381718195870023390579854921414450790371968096287158362925718917372653362660858138674061668230331962608963046502378725696561396562759894987015897692522197358561528044734883881967635086994972410053643790623957910391155844815927456730073316875970684002891695229455914052276710343307471569386187357709376014024183953627753697636345176075317602194479490490160499447045817237535774783664359458902974677462205189297464147653214782556393496919271849590650583097712862443402063746588115446002635297060967265664198099950319254063599108536216377746391838915754285199370140744788912997045123057636428988415065688947792563158135198445489377394391989975554116908650706416753720835758199613054778690152233919916777808828286303061849408668241121966041224268497115011434221939265769191582203331725549961953076209182450088838891962970635700641810309461407948016066697689859826868863999838314023895460060727062012669078515202113128907271690899656560150632537757102154327228093672987425188779985063330931016367642527224557621861614852778168929195388714854273321953233003928816242091835757299258658427214149397076921670614582779025436067856775289958667011303506603707427234918915136961898438873323708055388114502943691243734469285758991904458374356939583882775903318474495630449090765035659013349778766554140381530543321710711266556361005599684123263814998951531552865908771659928230656806182356368508910909251014434325563625010485546047628409661771657726266312197506706219659835629006377542981210639553761667161062859285496503876768285458850550209367587748491995962698181278251069921530375539920589497354747109330957960082704336197436305799682194933019550150701785167428206163028800416414590600461240065889292091306771021255213195152467998653280156604916760325542143572975029998627352049208002226392163077859294512123455230739809372625105566304086729255596044035615507508839617915283933014649306656773593517836361766506957742460988552363589329113114462977956252226555901194054751624655495631693790859723370334419337162463650012670391148845710998883950723078698441545663626162034146381712018203072588977747413648250840012516094833605309740404789655930264822121098716470994490933112655027489463132621953285925885815351792126380414155289806629181808683927919371860042594213956322033227824336967611194461773876753055604726007340470049516140836504557128451011776108573414866757907459374934804520064140614533546027609649590503488725512912263422636819831830655552856576568270742614559823741933768034540910145339052578619462937729226353479187944055346753930846422439839193612711761217033592443802166945125331545016003893587648673795453580356498921402389015900009080587605433444964985543128124470942307308340187963125711322498578966396106274525664253738057146906027709698265399056450092777416105581610236833367260318657014603424230936166638330132437493017373626264928892379655702011013608847097077230982229518259254401372857195989859183622779855615917341495815993728926816925858151651916488603272605043440182583130916512862775805063107800286694204831035164284925689551963363211141826639814770318978984487066022175886743936161815926403085720272350638551333655993186002467518446719076611032692700549368578095633258445436207314052787828833386139279381390684293622400190472711137217066415780639058612827250972413572194871296116008483923498631569585060464950063487115361128557183588702952287563784172089900384271298000601681061302107421522474666688177073814556073155814416683706139812586772901244145479044556642558465346040784622385969193577955641670168173632840380450712738652001745240954348955182473539932448709176745329690626606906502200999289378459444258422936575314573223836688258823593545018583307856460409527279901108857909207297420905207940491662148316331540120591391961869512942425379407808231623196967524094487781320463889325285648685246338465063180299537648308561797045261265919140312663802047643430710695532172063622900071742570722657152575254085415667360519056700619998581862694204064857531134566620773920187098743570670902294287004737841634563568187309052668813577721253807078962926258538096046385757037121434498865486068511561182415889486086279902905125078268136527481792639517365116448848592509528900149382562594465489257085292132425125913323483932984006391800896699316288732184088258518816931125900285948740426475784693723817649576839989956538434173946556515318243993500394672004454200117432763179105865668229320219389487953813102741129457134102602634391568659002987425842641163601158982234278405383436796846229959085772767195289446138843274528539281067825436117624758211043627151374522832164693649088048086577084068420011211585752904613535410073822263941351864782970328192683683901307590092899045541960932623720303742866979218541236133892105795051691255787823743092662938325310657066003450077494699345569522634046210588181098398103914960285631608615942063641214061214308453704811622948142975313432787827166951258525271465179944750222407146872408264130835474307928596663116465475766112768193460541802891906616142720892763837767387571382382512269032503688960803722811115856747004186496722559154302539278119628815537745577454055802565071844842333546923213027366441910170027680383105406170965778057115722731338156249334305422529187688204535520364437496593364726715480088977339644611467783633274374043056225773064188008366802951293834521334019188237851543172693694199578499114138641633335717467795144430949682654644261889339451955925198647477709487806409694497269969812810931396665652509587031662229894202212901696651543564963781194059634849252974726524304001557762857222095265955968568748332117028887677302837470764730489682704787226867994711626395031459425690471009515265716872028995754290450181463560886295318682042398329588966209464491915042231244859213212382312680921783076066735980419899149787428497618998523431802327258267200991657009242690864529276051427673906941816873303329059971231726037277487072581634816352351796989504474327760916759302868235372399943316988765483216927590161871336466926679485996445253937038329669140227809676921947170278696085703229721936677385557003517935843906109375316624078720847773780653720073308170731717064249606531169752443803804049663451720362528106004004858657906597463899270218638069248021751327822886908051420883516639088507395271322516194404583433948001584680053217093852728663877607669511007965576590985202973917533694103723305388042056627399958814875275802554567724442908344365267788862233643562075852892179547786973231365367938474907908592970479424985133783746949149605413292560834503570747223329042515692227719782206456031236958395157860976044788163856212895339833495682964704621196850832789494568800747166911492286076471251104263905145848459556642581372918526513811287925685803751990927385560442215088523002962752929359270093377888574848415720684728803572702125887634121801070476198009703940462470792452934181349796306966323381476133927329270913030361609374557005798740900394742222637863589590553022125306828734736214455902935798333795983770069239655283452921214469970708935144534393802773910442060231507812077357009501155584395517296547146697061427399955065912636595511249477272680744584432322227135371198427998984432430737181425665339297081174678186802113312092601822705480513675913849274028075430493998500049834738049348606399350394577073781758687604401656342716911016261897647323033012470327737973383223820667439640954410055497049844784148197443250918515900105830008192497388561835865475493587808879854115320706053849442570295954902397593563969810262810257096908737446744122147119300985302793859500639956227925655971977778374013245517300104704259432694399563428107970277495320448460511477889124324712056979761583230616790030441730846429194542009848151517945226401898003002932152613713822539559754241885301595879295896115672404993925923039396653222482353361918652363038493251661216762254176198189538219531277339705494103159664862913587175949741776905311790914190918149559360493693145637070279134160841654409413374276055781469703668595813614112733557972224131799116880733281889400592685474438714376767016534200183255749186138072096902153872459475513309457632365269960242235525803749455436584990163223474851993366101766744065846108389084502699097901950781143096894717934892135796361217747657458048643385772212403551306660270592285921076907615705153131418246182701012541879335685191267206512538998803200315708723575398574688121893423623394684550696756299341872812559776854351769437432554716228544767628718743291844520156820994668148354215994944273114830618832562695210175856529085190559149509781989878326864676377580178795547694935304830049373713737690620021478071933357004812282695655700052769001234811141538346349809560143892352982961186852434087764555361757617778143078917060553840083950722922609424466885501588191331780642088214410198861936826698147773978293585457521851653436084934580925251237249897300547545895552720219214118946515806405272183223678990386306400386290926157723490476046829077111403821756872666079886151585499629937263547782973855647721911554275841203058811943263286693738060787139184072343905025012983015095402116776641635077283140275565926625413549743331402071332015149269273890839516418570584602079727042660042076401735249134908549089402514164344714361124311725231616183538662669997011668765964362366879926871481419103005628006152392818913057313625885286550091731490884453538936993918171904913945121492669954827615006983606419445119338357298675146074327061630931919663678214185350066093871047463801436157469788149203852005704152867690209167465235801225190255962431983870307614885446422040349348266077260780640560430923331085795440404510422227593468386333400467935417467603416696676971375134051548681516954556778866712442517113983182451389659976290945320916474677313820864596865798775362234046630904773694572274216456200239405185654288755858388428267303856376825881793971744052773767777887604648951583379206434920290600440874360480831263630954082517161383852236647150366135688596966204127947500201869871211126112996213981687381428226235408102578593180314735335379704862208225913960816240827302233402373231040287480592647222808223042706658928545349056666335583187813755782789822312478461212627067355216362855081572479455862233645251906724552165803587821657496448260553507318361796160544631923304733165060724888935576672555935350744541697957950543884082451677372025061984110976592579865641947333203903017000989653928686146398514581046550043428878960657699785965480477580722055376598657880605794572724113950850447501501157051201247179362971171790400394409954313403756919168591912258084627631383558725152095360989478731613065692648631486587033010513975165317917863182075703413004533478316598526695101839457864711405270586756881877322180188315407882378180253309766108990715975811405213127504826723426130805725778289264664938692958382274119326294301751858804308642442238466248901569266554799256043782009212844509146317420798691239898640136969725394776436879576012475681686665716042621666261619760590177270326231014100249471272712078558926651438464705717566945212141760696169347255869030610158154184898054233449515747012120146827682288207863154586258655601920988587258605423945434502032547803242154931903418105494076077529034612453573016782336699075493318704969855844858621100387210684651273465980879561501630618582573987107786215822998424556184932443678832230910496408317268459612120137824006913206291086355135133618791059054292043124621112582992163491419156067806631550487031849591868671525177915168909693494686645368544755736568375450681694222178266844507550620188933461605503680633741784866292778488247227834388491696560766220701480390858654196677847085411331478064804087906505256943696242179791447820651848816756299933351155280142408926945872539502900033635858446746405311698103677152519154403524734252569624674004000307223439819523204195343744458290311641096845429465324398559036648608390248182239530763266559211275108364284581985712820482145086799136452912561884826547483662093910503207852446390238653630666413561475798595318370547566410967609305553998083337985170316338845973561474643802123482887024835491225088395843210468414952194154713293151648273635635308498296238322521908354259633791856658179439768949480008824307085119280618431113592520788115256498165707962336059272389872100317553545458437549203516532916854908288151521356720226679929349929348529028766056795275352766417351636617746663743062593329764583190164355180662077309500789872528977186704880795353397423343975989637742373363185645612865621622580491257604131583083120469587018651658456706808247262197289258261466010088513560065198356283097486682087560518712842936391991928205910661753820507044537251449970700101139364388104013508037774217288062502071788414999161956295877260679509251343874617912041387914395125380120387285191884071832345743877922755375846781264032254225544594259264951482717691536180974887544053735857441218551274694518571354986162175061181391108843897958344035755058588978083249002621282905481685849421464519398727150785457003481586856984225913962961623673588988536279567705694298989794618227273923895822451129738184022445370295545686273836589657848628986771674231882140028707457778039849758467975703828827998966062922352062223671107459647326968252002503180060920072802332836932993415035939078304542905749496763549811803371289858569765586715327110889688599590786132243137189910284573159153298815439383363622256628306207755424187790184142842233804206843670053540527205148969419889086507678493051313447822099390726974271269202805103475613022761494647965919450892910864332633787466850505026489055506154638859056752057497523022429614300368569854583858431157242219680762988840762514054239872766052765404767445343222078494937879352985676636520382224445195094035719149400629273640930287772170701311284848419619945249932086808950123615612803395044720413840353726360693730975830411401549288420436327401358298298184978943990928864271674987908480626425276991913071621528675186784302648727154306361189535362417659537573244595212234476317595057022597342677766572098965084117876036235556961633231006981592705171241411744650700990497122052002456138898665422153247878588560538513776306798051739242022989958179245212656414409406017377802559907723705606495474577459340513269943786268873724661413755184181500815055581481469619451805953096876417103252411978316138250124951131454859570881423718459191400565961358337397817399137600131161976063350121730675238567047054516406390655561411088330084071415439993350798418097949632135209449585237559211337731795340839241097272272345406994418274752837866120774786718541816266717358666917208535693761808745366235074638543073531448866601855276557897014445914943783705318859467735374272092297253965319776548093804836007213738481454425364469127254323704472295311159304237417765720938443441448055156036022412549629771956123503322488965646121943361647568365670717057493186277802473955285364245169695418501570121516677512885818000617824110873443842005992255918683035654707392182144206822253591657469258269617721607822563208886802449210877288599781251006903574279558620814833719419615262357765417680817704638663253323125405024225957491562385732329935863650896405297868663623008031105004472901377137113531431128698424330988695528244215964586594521932121548715319367150546662017324693434137363101175594239435441174695446169520257338704356375435333136546193351431115539663318785280790422619418324535973221900714250111557858674674150101151143464719143769396714418668059491113191730315496993025215693407255188252642627504822972875446276632306775433970518430624070262079526813567842658408314892671571545448274905586506939456191965569905026185200733978521275092141191199422359451486125863287065207702534286317570223207475595532571480143362811134466029939421008154085063255168331842891377172618271677979221869166201144425090135633670217877765394951393815900953299745567612198424644070414058960373987594017142358383180941089510196687430071805964709656147955647553549509842592016092365020442985941247775403709106939199575073207931557242439702497293475661741461278013382975436012279733694275435057448892080773952836907175471710247698416262178358472186893854963729241313961922052633297015630523795560975980408506480694290094735335100460801124874943674292216139712695193105853461677361331735497729467614222875197274278154325332800816323605140810120028721584000968757141128215399379155711146148398146064591977533666834563750180076410424106748187740290540715551513794664587345650588858713071578633619777962994901074212407781935788165009902327430935448787405472052789011735652711795796607017116598967721422050707222918735596155783226695047633036370157564849508184146454282837292382758088832816130718469046381573530235656578870671786273042742371016182921205819540004534282333613059220959106759999042337239555798020576742425711399208018303865304306614547651162633531593812845148830676869725497320240504773422565724338078554030335056027033554067153640076496773860531721592288197654435397239177854088929959158486877083554237622738920548137474475593789793129280072486264098686365443107061168664649430734730726922824994931697663237115101825042747616587998129142831403224774875870561644212535649777147205487162557745082066493648643946954357925681999991728410290681065393849120614872196896060939656046372034965819392248985474422206133920108635795208626426802973974570525715022960217831975546324934363696258999192251152388342632175737966652291026018610436227325703335653952819343587510367342831390121994595169927597952444056800568713938869165930179382247689204576311344198526833609073032202716064296556020431309209749278507191188765110166858763966452637364334027967567256443651758957790236015091639292488729773090318547217378523591600479760504197989378632664606269172291954241149269580003074364153686677845236765162750588510713571443545538893209510096792699272433670116510680480773898600082018236062032734947623172779315115026408949368814390758609016980685074347850014167711629391656540264276597553515337900067222149988865248633801673275731046192212926068553246875626469529400668385161616053142508395813157140399942894953340567030150336837055697875591483665636005237274484363548112529184854491799992942675393279088437244407651264189052010570607324785617980702893099180587564665342000442555558100761035922882438956441641079726943764446741413720917136204490437407395675601713755875916113603057761241397625731603988455619246645315862804386313615762706423129908925233583063380808532396253050557096725145132598951465494122952616344109695174598636764338660575423941697005902628199114377599920107123417628590522975352058064820425024560901783322635458132519301560948982143092177698619009465592543291607164605065827459269533186333597890079290736175285222886696153904906894660973905071079449002056147673784542732016099266453461162819535939979406809700681116612638759775299900943393809173335488059896418844180261381620812187136681012962237719444275119818609690959866358428531310382857722753704542716644791352607765199384521369804249866339050090546199981641163802021548814533829924602288094049284015382156965967318491814971895976702288760220129441040238298007015842036841632527714686140958425800714139357035312742434082636555324416100889543123308893549634975913846833096690662759361999935939444749031886071298314021847940064294283962834613773426194546527045007938054438711458849438537133887808570203492866048692960366397891785774263218108327798100797419129466618434650011168502656051019386396855203443174444382851939260917896648392422626474239369313392798109027928708586229675932509405979368327963940786207007355431874734594542727896108353656941840267392249394280786507692122635150339133943090985585772585483403357459651816493601557660646954577498828364207703654304627629796552999364805944644376505934010131729938282564720669465411361258512129340343693303764196695371130572853540416770528860952776552531308755965294426629366030165326818896726130744027031058631807182285813106691862977478088445578784973100948328521963139494725555282956844738940210074512414584436679818863560655593049276723630129565132187901584621967755675274614603744951209978067188636260443644706900544391672440293955666919920922019898702897761943263397184456419478940033724995114289258170120815137009319471936492443194361155539045399285573747266191791162663983672834978283298578842926918016786020561568117294537159529293729424259601651419466411892186826678589191193948208808177394317486134135954081609240756059445079718115603814719602290080534604037124742401221080017806845580974131407509132970930698829638795348112608358728668202290266571430564891253345936480359529337117737284820886405909331584792825154029167753432257978086586349043219207176892579698761176306099481683913360226705348081409111729919192767721040936960093257149330284714099147236331998666030585702986096883453096902480728532746806216404259940324163890780662866176402890503714187369916374893851976478507048255323863134346185956211166979625065658758595034220776813998920486599933474347458831163499869510168110114076291930430068982194266771152519924705710285980676285401053329013405818642630862005874077778357593548456843287566539519819369879818070475268051348712157244738315279039335033096450524515321766993748739629660340032874205392911524171980498141067183596823451393221426784941456366045993080789897178663586586086941869238448438397045326680582858381863112957155606744688723413240497869735930722889637840894205325683934536856957056303100617898007394055376992059959418002291580659635978684358600697228469346423966790176374734930428850048025875902807366773738928213558879209057682970645363360110877743276772627987317650820037009813421213601690895604599278950599739756897496959160491836974737047027005385063799267845285759278550906060453924735650575614447147857486065617307473358882594339151212284604074453866059675442653500920474387125471361674409058824303044058936279998356727017242885110208683236232863969942813696248384911287051126633467525775273579286548256858789827347881522916951429905839558333241401266790248302754668670201807271982399996712387105377622988132036153253212481761190420370117390309085460768565250604062403122755134243134829854733759280487149280373234337892055413905735678162506345455430722081946587164686242268334275796834171135542322340652355643635212470311383020599117826959976463878342728805636931286781797149135858135312364721712114398266704918401570489848232868302255664318568555321874411763488801906066386900944977308109450235527900145877822744711046232370435721431917801872589500981131001690646541241976157618914104224133403694122705551418881526794871511959913592204070359443397671397162034558906179657632858160399173355741167682522734621870457857852476063465350274002956739592065098751528868040483624361679101830299331850106503552987434890618474902538938764155029451221121790287072679531551278959860370872025203593406484087490297214512595595382420348870431768731038861333109729703399387278963421554408656185898263840178242150979396859429351736609002741273003283267172602846835007846571736341251180070271070546929785032472801150172184513729932201923517915706029664857011608043380022283921150826416760064393100800117768399391700009163968944624686177097552643104086001720675341114184309693547536101243670576968755816569653722361151026630576665912558062445608602058462621070719372993364152749705190184967950034177584320336194258968551524869583171643485128554976980642501180354734788531557384331069643735771730100808703422161225938295944258784635118950187291290310687269418196020393354024357803000628652191950764051179215365281761873672354371526848612478095867077367480761992436839640799708252368874001667030489989942950263490578316826712091249479357016898639222417114190862687369738125220501140302810327563495199469149627831615103623586502846965134442438908301588576724604479534348551929162962259893920497369057444088745226504820105365660968795711173264978500809540242829442913354384226937563967944635298535126757710438447479357701987028872602228650736387298206174340268803003031507132122869652939269175828446172229204849280093865580102780599464366447912379724019523066425916790908401850238052350108127286802845188605132940910501839176689730817311825100644098019971458832162479411161324215163743980162938900000986868061691264449459063752471438262806308984995653906109804443646778056451803216519248118609121850067678912414579682961243395274380602021658015591773258565005589561610431483221018697519771806371679695612291981035848993616185381740711673433217303967951951377291264702758320196430540552474441410581808305077852268144468554537956446644694501383676455637441029592999650736982955301609445555721043282483198243864662724891048344623247939082422439476527276080793997076757370010082392111162184441570703279135269775759348676121527770852572694871045879092247264774596063502297408140495798317613439288950752062033722747889136165535865039107536574600430453014341679498896436925813863622716370072500678227767264915271278217927784399145561472608379507541411791273775175774321417694075466640366250699752979339428739487115972074348341605621686028215256999900866124027988694835208406516026790475105072448144151172262564267499273023763212143082573780335328187021759739655152532715398866569789267575277567784907225338963192394826867419098214107264794102828786350637193890392893742626644252399930771456891717180147783673870913847717923899990815347993447410144550528010874537777191300976594817130235122297792164913116586570308751558639798872554020755949766543932624100779164626085521265477632590308408364772494553526599736969744185740839893271735047182420693404160544948044961777010339887264105911230631802749006440052603340416205538239506366192035149769290541564545268190685307228216321958332104985189488321262610117078936876312193389825584595827122913162959756196597185669560900127577553579792473474007641486396154323929392063367912809176633846294916882074379524371906463160007414658616447702093824229624100310657944859072168755548794812974573890724655298350284836770504401785023834408405141161511498608580925952786425127619858603732486759963739839542076222758388802116860066018160057946381121590166221298746541273244066200217861769111040947158434396293309593756103205582693917552160990622589004898223650347958978397150124915618406676318390482665176841915125834482601973212824820943788734802909867912209142324222303873788208300919942370293975953962978937611206923968085445578605061326660309750893213971470768841536889384088833761727906192597028519733833466369806341892752690126933895663607964917960229472491091345359683014376516536545556567517720171812652165678224927980821712026223255759336329811619840023910596340961896334784447035949060753771320875493483908858139755350014743318244763416166155946111394231644874980524815111839967863063515148915906343312159205441156461834765738823585980278668227702149199788713190719241041930939865739778564370514688676781736246198363685005272893715018705149850299316716092436604262562436496621053411987116044309560574229795699301877440332633573213241761351200933993130349516570369225677570031587327305297972606772970758534706273615920774219975284133295409413146966813762937310838715240197756915545356912431167575562245806571766672831331545610379380283524481202264505031444099993218097195491688423780841080558917132227675025428026152961211073131092346361074182916605360883643508831331600998618500335804201476092009980545059524353616943271528366829667062706782621700619996692024454525742476955441129563289912724800119926197344210264041740881510327397397974087624913618393189332766444728993147407800254204637021384395037378585317938726301137018945341444425174714524247681537823388532053538285599763518397878291622894326105906331841762270136513713583448532406947481314549977395613533878501981505166697681426746905408623962089826703718717659276807636572107376326094968292512146702615588026749656056754932526073527733678031912035614919159409017303659311669426455033862758745303874228295576807809996739862848749254834423651400985537725735304334600629007429705769720021249931466963325248749740678334926518761659588503666439579670190856801274553875327117897152182920397574112870448735494362490962278902185550654625578935389711606053052815792582404899262237630437513455027767021871808195460862624475893821782339574704011588565178473150522005911981347077545308581133347513390287720272358313909601887575671838521971459481264344165519151237867018888345901503109059935069666083493478346418127971341623567690890428137759824278078916152507634247517997607976232816956606497853507092853509885509624969184257226995715808961974210446283793815287635739171638034339580020938644251816465174125989284398976347519899296258200747599209877728989109958596044676816751131849077838778394247194469867243410691657737569343074934146905937831302543168440689447183907712480534779474512699859330969295319462830937911302859632292844681842273613194629263055545352318763969966025518454898549048581565345089331543057675457908334337489151075579970225789383698811343494621259221257324567640768850875504264952220583195579477227541788803645457663156870675876103236279665279505070611536267051980515607328516801008008477604140946621194325818699135113151219616837143531188107615861188394463560682416088090224317082518986953480908837990930065863949909279647835857916805807339863513218528879543713893926946680630408927960044147390644389047579214985215302390099131109530169359317069564330383083817024608156635447529802659731564051276183328363718909776938433597904463012865725784521528220837063586661227176224670931669974418358796342256356030438570195606369870868102968747966588785273895682116852175419617569607341479966727723380580921389059343252168610620042778485437315696633732382445238415449623368692828545292962775500289543625351465615447948879484164777470705521260132345509830518836203225800203475087252241749494948017246972836110112847458895788906640278177136325207052010657294634109256976368911232501229776832173683851725972337907565473757614306234115684961886246650076943087005788856012655353108309681191156704139985020253276293022747305486839222220303736572309770272178149344191089911314528445449573499411536846095465526543435153233850546488322607199355852140040118354027886352142478240413688051197332413925123632666252453718276202577413435953904914300362227437190532058065168535232090402272776077038778148571199113219042109014633692306790344278638936167943889792935655831490602871069352576418729888181253874698298764910151756741743946404994410430727054081195943306370035507827780293578557467949117945013400050631143261690698524396528809913909445976331846025571538027453902073837190266226572018018966051981269541927323342143335225712784387091172734060204128807560867786804849912957822500099470514240104789402754981344087847754000892171671789944086756453829356558278681203609651903044629435041198372711484888309897244898991763194311706522979844575220409448154666120090525572233896849710863688771463303030418740646311530307058841140551460398883206942190914850850376164490920122643062201292924723187690660029168911843429639268994690666605052784590101444130102458524114272349903683171228078282553723419640127865072887857463442910542355884690271905837894132604718792854652058808841113900379160680510725085936629928676854619658710826739959024125424785296853185498572834507544293359896459447284942549363704901533589923124338560654094686233524613092897105768310915802796330318077397988822226113478211487360819388040211190366245656390044581750291811504294898222962647394117498446504632566541999838916637772698005988111357659444776525142911024854965606012332638413685321626006799722927498711069344674651864779864321140857083303932615449109158241034335825676461610979666142031379012807886210149543596862472472251327898662723849436340046260240544420347040169039133355075336976125003404711325446765286557957547155650683638695697963919637055308512515404597059078431073243442695047114305831049589187250110810863888725824657752048865611568201034198175593308320284305864192249215782603669839717728226178064284128848696368617826062446566643306851654097554060405764436250443314258617878180984314179907566965352161326632991001661663632428471289448634134417548967903433251346415477286537566784312340044674114615707574627891561518542277337447240993407086113498250852569690528203476783760690563164098336548260011698759943733131071621601896446440509299852246640419872022401085095517888915014172524697471405996352525297589707240711196455419854988485419573414447471456662054546124574497513740868350540787494574867016304784634218085266309440574092676200007193729495880977806479790436657681215208408925847239869681342246281516712584566030233782701539946642264110388729945062660565614230384719404900950012799203936551278645039687133932618410560899047910857772849075096074439526008430133137698601926421123416865663820074814453046886831817844957004931098254353113175668788172992397407757774513072355356620473896020677647652753318753626871946160476851639890123034107114898940844689478690947245005367526508102097940688884864169179468592002444614538457344348806849590270100378089973405729244562031269831765459176625857366879624103875640535791810545325048343827015596302509085638686395148917071443539312098838031985516803195014567585642619744065686524988667417790473020608962259975802914052865078306219131639865903668496446995878588027000287899778788910926299419235929838137018257621287674497058163190110633617377878771400576420683418175333362678151093360153958106677366457129260268448533460944839509179845764661967964354937685391806421384952036844854665035947608989055059154980367433555522311767170173442468967353218653430805314354317072919202444019713292860376828992005651859038401902519792896875522636017704375207645050478239755876566516386993830179437310941291792826799884721584143314754693796595527225094608573342101480801437074705789660344781049813978507370256243041953769446667694530487941637547470249149895157193174621120600243366511864856188336862458625309441423328569221517666583179558720461117137215457915952370825047609160531616380212651271664965507313108326280664237788444469869321526079031443893949127899493051629682081516675865821723605124676520954839347293952764708612099499433383060666535708012677867013837440398367877224203244627917825497405209502253400742623736005577549523686980027399159171381130243659890821565599240929924570770746851272078786782338880224803705744097975429056142242893674812700072503954929481116119443573301403909904452962491817318258546333709508507325017167891275592028610649037278338962199423214838997978537550280165481970957541713184403259082674398123716009968984602810121209485455084811620801427581972340730427005424741047347409990953453583812575286551619620887525950945293021444194878905672399029403949761644290647752005265266283621066577330438852250989280634280984201559484948135982891744324338961469878733912289345861838857835124129598652805162624180063592193980755328182397044746426972503978756923484144619476410889956753052059535571037184575494956554533723175872209804991504080757226069087551852922386151281538982124815956853288632622236944486500394075026922798357935847417422744400456621995373319914920644457062456913917440539730642421571882678693145175767198376948773130442544896465064710840695499388572909683795564399812219872808110214106557133800048066748869105758511697239975693999662940710360098475336203402162281510238901411775450241473403431700322734184801975090105587647955664513520352888304419793083483481442742302169839715623853542961577096233731950433703399734543409939690441830387401142699155204930146480689924571978948021552977132199160140934347005125961514442214115801028216491729194554104985982838995420225876408204220138500703667718546654689305612245021948802339717703141431155724098665721087755216958338254677354120928321007386446586738539005203234279932483778342059773654229389447150477894873569714714927359730885070228950817131260598911004956524394879943792076937849128883001715280836435507889845688401541322993607141996154713751689784246840567126704066243086166328963484419476270173684842308883332663902801834686711018114786794278608854111740024317756440684425303701390218504045592150182290235391568361569296797215075727947967752932739917517049477104054451895656518419844345267745771067603283302322588154027121424183278316552168310905312171536489722915154239604674005373567956756035795542812572287014847846577950527389896126827515347511413314566128482853641814695068181512716867503694516928585745141876574703191930677080272677970099110487446495807860744296595472154485690023986178923869839894989724289142815426084963477077422280880519466231391250556423543107669264980207194668674007461831999230319848652113620680674062804440847540405238024889941152049286172589347349600500085778400093432562837587744866375115047551168392827975693058708251623261848348097280052491879534487538276116594344900813993549284219910205967564857423257564631254936262974998213149726376513565314053795775014361276468124464038141117482094536975971221057860410743633595598093006332824184081889386989634919510527191014537249223887222279921061191924157904942298472692466066703409324419792104101070169416409707617834089322258357884126799412504074813567827212187404742038458668509768574190219522153978508586412531677094363633050089907361705874807509042280866957174897924140103282498294125516681903033434338467006560420824771872607162193909541937225540962757865685596405487292011884434965587779924584041363132210596107059991144555105949433483396973021687222083118446398948692364635502185689212436740422697797931582405023474311956378590208731367598690359679104364504375351548452728804753876785685391086443155533071998354199678690193282788072111442498260404072795179882312371480985195685678424358872301251310338563433517477964922243938724532297556717833488243030988060864223523267184136892919974985119116144414370975006044859698850913825354398850624875058295789453387937860253270628065422916456808160227279820450537384801259020030417561204336501428247400695076970612770177550102949841178848167779316006038156976335572563650907295091377013850449576235629683443540051518992916758803447610381772172013975222288694807800142093478610518096428329271166409849126977971481254597602381638715380965880398003458875586005648258865683124224882219956235946460232536892020962790911618687791052661697669043436038129099903120135648260832328377546177381067999169092644217399045549006231611138843953681703577213675332462184727625458060975941340651907061470971053800062343304595127160215885883556712213835046522263781611649858834466322452355996843164165836395984784777090052366433542227754429180009129853166506172318344164206495064181973833698072973287543674585652586115253017241422025185197152241792244175417060163044364796100610157620672492067289571580215753741205587073612739560497234596004114895512597380873084253125653602728069369090378680103382758041077186498419372201856536755611486625035300310826750758937612701693582172813972641432083493236624759580921249139396101120557344479508543775328592335806208999981047658466877597314977335012339629011861265637916229899710317359497402302662279350107455795525707438286733799830374992833937979993080046721461326982588993359443517918768489341936995351206041633403465909788481701543801227812822108738769450910114500412465076593082120089137419739913368060626734895730830989318421310457334680403106762137106705754006393595103606831594854080418398824643851398931002396798896134976998209609859418526334457611799814098932168714902805067076926670779074857214996180697325895477894093973259644159233371044366834485703154770510543776679606655918390939107189384763845641663582156651061085328839153708243157044496130686399125677474345460588874525562063487164747084199691851732093537611298901987345107629012694202895309073999373976290311583892776881985182348124571691542507700450850902164194962100047727931121936492949118993919539266708243834341503239936656849138082237183981827072010829691891570278824909550191090864169511323394363609782604543321110846362417023173946970049237126943014202173930647358734051257853369246050364482567070637946562988481209186353165517860767215309243388205383463396183246894211274612449292567666172157984905734088350840705328800915406750417651102352624251382557479394019592424056444583563971700173225899040376304549187279643881658825714806474573509769911394043418811992116568231262205234925060505375288964340758273245987246040686777009995790683527698367467189053983666077354596371618137311975408371417627235470749593362607156815427071650187041354316204050853767391497406517383017404654725639044821813963043807885918619531556482129754385698728084640206311708645495395289173651018737374048010192673553631468366520912468349225913928347030652597500105293106918687619604060380493900524613709124634929505047286343322127283810201944032974787332208957750383614489831587752076483932673741873178636846073655302674467943515490567142955305077924814029564188024995261367189562009628808459209387164473295084250663615381276606834285804431314347550148105205787554916008547107321293565333454200851078104207415459901466061012620434686215274639565921717329273076369194786448143942535707324325905265457829044790585974995939647510311668330184003123216545340947451951188677403915747848063340402380815613379124365272285806477783798060640251031419457351800640181990419306373947920916294322501764208600908803313522248576345457059207356964498853532536362908792616188008620452058566791043994052503342560950658802566563960513856306682705200766016373930238856931895461304377730687417713624918758320522295762792779063883960424921770200662613958572381083862609151830396186704935003387996805212321061837906537991337256875155502407457461854718083582983435211193834124267719001685279753633128299341022387131386247980600319434407017508458841852369499241975157026063113954533377569894803280618820359027800082728427239364698012911018735065690250935739697292031246834278584927646791216840045392671664251632359801422555976056853516500064145033511761918456266397499247448961576085825237431902606395072452255736391846150733852125167053307813290101030494636568665900773420833260904280024563074619485378349206367490154293652097065065613319330955010596292561850464011308682537068678246393699732133941912990794518634064825833739968438186011022942382401169295165067081384418841538657746745187287477685952930065168387914314485740222508035089724405844413325188185293349004468772813253501824144703603630396943855719412851119068684696316405193428497458225826641634062448307968307382854502333199929346840733180393049846242609029963464760838262469484849691927315741427777656186291808578599731155579227384758428272731412618002973949697819095655299324403486744576585391547938564330162763563727830525415645210810038179233834525885038092083298319835681028309128471820417115119224798133657197771643705337544657786178658561227808329691741486411338869725115075920921429311361810615851164814827199263801740695505102550101306562555099403657825851128736311615546451418130605338242385596490278018290383084728607863561569119659895305614751969978289179994382184722601132667210392326730057153094062123495568627291143588875107809549058641075493369354693139487241728569793986087730782072587270745724236569802038642725694649642799376754285757934445640598565783626136962263928824294605403998564890597199717741882871712709199750756327251221294630172381735474129830077208999153256506049044880038544727605099873722449411068377311463031347709944745140074258899999757586013149076516268301876222679563799584469934143782673942034208342039075823028417769953220545829372411263011905239010321974873688309172506041100449775247561374930981382704925108011814460998325885423128728506867587312963589710484560872933756905683657662906924395891955607111420671832465713535489268987636287886202650955398774677640928971207058800525642440029649058431851640960500557813484266875238740554479123314120597505442740504339650451339304980478614114558133871426355715125610919782738703091515192443150848896540853506238708712932120382568946588746774776984557807622253409500681940087393671099239554220530693790551108683659493337526003385396574843164861934715470826656174697864073286393745120774080616515690411118363649650055790024838700503689417806191812607465081355083265246993329188081794372201261591887274788916559518037793279386035219552051178086925974865191022277658149907462093780634117796532557273934471369646109254838776312157681062670916938300731702139719278374430369667997062039998348690841215449127348641942252605895211439554628197559621344259450631367917996551369360303042601380786008441854072768508439799724267444944032366281478226180248625846504727468708720521319390524756031210668192910200002420458793956720475784216729559219391150242546754655119635595673638974772961251068964724358553550379190751850662549856714457917875598234120232361860169312213797372555116821784728051772877838743833401716565323010057899852762893856742084378312710829525876700989950515593279292151468451550629667405919682084887347838596396538876411945750116507829151316647438436181316352225632355234924611373580937545225635112917342715965121516516330396996284481995664529100948040839578853008706038384395879011086947545894893436708137698852703000142635942277280633024512469324078140379463907893952031031173404201211678694140944171934529008955439870483640604452557970131406722381886287400417118744375783164413006575079448436087906181365654262997675775925361020198332543391554231269577038249406144725154687717903331479852821536625727496146230504835175568949037292688203682725646266094357113152378601572922943223333715130443230030202148697565827008102118989160056968463794647313257705455657781916451723171808993544893465152613118527240072009445221200769824359989666205086551313504221073863964965387334743857552372465861085306051086433188279402926490330681017550255957446573637780090764439812523178602906380571884824382496155763333457462773507239515678549910466189893829943969800879897510093252796446991990270965740963436840051463713144799834369912258048583844240570854376329590677278000870404702486509207832704393540498589995549813692830368298542946377830639770993640770408504576140728946344447422228513084212500196916414464321622303725273473037365391507421164996382958779637334101406446136586233463211985767001430194481540281839486342275764430012384515714869486505634410449903218426255536121493651774542050722053833290308511641674908152610213044223056066901780074711193768769281712255500766622825901576964122458313968513951533324770574817521843285796878841608304222792167553066254694083859729074214061161765625888775917057325386882151674536217391441339477003075764462783224474917805461873219139263076791224435348493362165479481912583675727506589549094765087192500391477583478322846548086382559807801030598416678177779378657807923197549194483163057016646405304718003179151038601201806942380039169361700894634927357256469865369073272796957054817730428022788578255379850561295933076708809213229882589917273346226560585449788066754524143069644235799555714856791961899597008729642892877123611843793831273970910058702797234552622428140861618354327750337249587500593500804238927322005301749716253980493048995751374804288640045389932902865761243000167310626771445788995763430394841140803270634653331957999637862910844728231169413992960268854555466218151941171190820410587336372667524998552655037656201244598551110858846004936210540272012023730882370760772286197881399467638390858022567430062277764855320571998184156137289391115740422840303681814722994781923596322216360301799529885589920035138286858402100415993510442769450388866928866938093681690247778654498062461919522837278625745277662540742261817024738678456706936350211051150877902606174765009613450537332486465536117814078945804145001184733021266236566482367346903101928819679518780864003373719252684889358500736968826765310910920239104451111601442142338024223759244948499043136360285485969398507237477869770063577565957688981733569678470051320929529843639997107474307268655803638719736220663726739953064584297932051726650801911462762592845835331991790513845946487327599238772602854404070229542232954596041620597428837213154914326184338128371441270740623860134276694797673092318621500362762250289033074352345051778338397595267916276100245503544037783300843476097156257991188065953636796766653332603064895877722043721037700047105541707524414576950759186115982346092052352785467065165134440231595684740065652051694441482894709528575807779746909468323259057028740490583275362709434612426486039270231722026621009847058012093894642177866003543168079043445053244035131677207840355219275686203199468009896402870757096727726900570803868829471888828877171078251182546856424856071528058684953677141326450976331173061176706957778285748447433322899525465523675510236661974445249560051767819601725646525321857194867234200892377614884627643089443175195880941059942463049616243367504404418364695845569278865164478894033834321212412428175072364694635994345148739399395321298212866453695013109055485839399379691421960004915919957988367363339773772224959014633699061896310874710658517063332543999918359190217264552161994166903778477812159783022355721306593831273131283080961824200860005921730366070213859714203580498514060800957575608068392308858194603614187175532580760504306077242440924780537874125680282134662222125678872505643690613226025102328332343388345641130061349328369695756099137589709960584902313674490114557735317017443969869743609845632352594796612094909243040836890064281334034686651972860414592840098502460615134445531705602641697649176896157734262623379802191382466542693256817017694022964004634958461223068968687087994456253681161643350585214987823084957447697335570490795580142474187728732584069825190650443496063546015691940729282056172311433218548728418254228107017017339245405827047879683544939683235471035292679156311605975501868006142880856816025775482694424522290996313586107402888511525228854331942527266821637313859828079266252848896164321269617533825196735396899117875334573999022941447082368036889245867972460681360018545616687726968709762478121813905894997284696662378055422803289432453837387878285838816140888481194539211531633114015487551730051235706520507218522974089994943285661458654398761678953468789768742217194742233556483853335006197359380426858611779831493203166926928587833522408081788003084197402845661584141352359495177698278378972609456978624268367867481734662083230996501975060813191485315484364406973437432740319770750710284821391196586491133679452398232105989209911940049272470383330023396584463302810207671342247891721813402208464349529536349893333036987981406580377299066440824784152235729449165460556899759183133265521152275034325102247847546000170064787193362924307253858102381744494986474106006246674645436761001903955722051414803113451114570924832166498621480765585476694023925717740453916873373377026429311090096375948650150050435775575023619629770031759254208307364454091667555974307018343297670736961028928186187266338589475000622987179390956622795608864461934160265301704261638407666228733246888769627454734679818378007022968780093524194127771553425770866332598413260850897214693829883422353805365657972480644584204582976844307415032313143273531494914780769118449211232039074934685764801865135843916880781459682102633849316971806091077816618687006301423138194184979681828614082731433415432426362072404706334225056210855052087363717095508979535410533807317913525607667414269355874813898364421787927319586656262363365239865851810520971791506952681665248919427762018312649907540483562646881086746384541819988792164475361465513670457266641254908344846452378567599726619841964136576503714075115692310235012020944700280803511182786505597266543947968486038833492852851430489083185638338232470211650871799746757149140379981234708654999423352307711596403798907528481934710179361670705272182455893996643997935304464120674236879817645332334956021902755331035190005279606307654303656500673323061745319859348541490387333480926850325181140170719831467327692205717780239373081248243206216258844057397574246667635338237271834759323721376424368066851638652906785145009287361456529542681923384111334253328608568725758695075396667633806347859426464662761024104641569981141346230168616260173318281360397385498840924277035963959854534811370576313126874791617333075888479978177869164923779067958581025886785521292369670235741267444642179082498503387598679956463624756032397137189449455999564848239322759532231346530651751035135320628092878923493340856937540438969673783664947624907601532871723638632921893558559914403368850573314935805158666074659377568299704496247652717202825769434852675096043891881123062206969894441182108323981154602821156389533172531491722472960546833727124479319465088987489161904935022172234257229764449724004518954307664349085784525688882017067262774317792989821734066590282101532714037977419186230345292678706117032578765714111333028567399022861798026867286235704847991434570642547162561738368958509500393322923542193552239797438791302126305869196350983484262141185507022324306089446385567465562598490059405649554868683377937026767201387993589629006847549175499417458270564901771562669028963432792282118329362986719383861105744763188268649665913404067441473147544989903332761387737152578597498615961295421816422375992618392497710039195305286420864748195372470945257180002068623287656704472878781634459237872217096271652524643256822428051966929541438701024265572284941819241746914132371719050008182413482256534276792345232416499822791300192139368775957752752473331709657501872543675492387174508313553059832315663694394470770636321771144796104983240481648751183447034321791940075673953755250978007906022869788269287544431892445141034502874775985843544634118829393002887911311152311383228446217397384748522015174948001773634506358301618080586621053495493821524001482193299235476385447731707821409472702000601579975978045187243646729005530605428768097548738767731169558126890658544691881725341089040399138798643129439496807275889114845929635316123713572031264031129407276519520167299684326302429989973800150948499746511135946823540760336960409842571285430658919444147278708243002351524085536851126274418330062998939477936805272209739539754800284996264058777150050132690642792874765504099178927514454997636235426384008371853767320129323970479554452679073262131892406156373798550968833763846897958353349084741112590458388050674950622066741730848110158463496188399546309163906018814933922166329367078144177510665515057526074747125842025199826059773650679681039974101850148643019337082447153819388616342462976713346684024041537708840007264270635218333383290420539666760663127434161593957322869846551173310906584993200959322485129173515832940934885277171155590343405840710979750624818503584149669809393543908902644146111583488136302023590675312051983288990385294885669701475371451398833607993358142298271064655879045470038720760769258049312014663446572417373227716708604213945886691947628541561077377861094696248212865224620112651819586573174483738354818354596769594653707605187323093451590582155835600566523652478721127562892712687468228287999130239592369353450713295137104185493660601112113682595212979165591209223705904257039467751466399768900132813756228763295426102707119726770059337161386509538733495670832850221629405350634976829960831912493543189235665369205045349519032884842969545180950443092226557957548218730453219653969601860535623466448222240122197398569145070276561040716379859477793730236024100005305644091862370697390895944044221229659699290076951434269799105523556047984494095936979734968708852131935628930912376030289530234360634071595356195301173903672402033656373830654435556320385011361372716522551851784262380250039234806480718290485123451016733921230810882395630236072932849821718572733370701842743420704187431365089454639222706873159965994483176397008638253252770395920661226456652439403518650352617900384135711319491694177623371882909029743227058603987702866844919393381288617680302714287017670137381342356077814600376646290702419276290699246265240646530188597458209745337469944570597984066633068661072080848646934695175233671553088799772514379905383477426899071348191943272286572811940020636307185086421686888761143722059704986541850459450032213839141389824810244487129988342905965963028909281472221310901258658079061577652956624559265491334376145785219782267176486121389138579623350357117689822356062679333840816852906207064216369593956087128193323713279446964894017893138830404634086601853649885623339978862413367909101377013572415539630872857087645798592472359322608921059834253421290577277284553547134395174275953949241211225842928416955060282106780005126223211575665627913424838744316123944088397983733316280185133089698832001421188525480092159405660148188188064195618299582437466446792775091442862190932247452857892609992558941524980859699193076757119371917325434267252763248778723466336063685596849514300379887432894587386450050213875489894033027477989824999112520280351920579708029376771555446181310082732565907060904955242583963636905957592456589599110984723147930704535526426162775531985971105295798248708585541283528249761574473911532849297989551741596774383134015710670303174033492974880308715504876348494043239364894482976541299005430117092987119173815541513612347876775489319053561756731232245025765751337932404939596851520628901233684032080797798649492298295930620187924170987950748933913371364409842778054880398744149473510064414791585797350800555753131288683113205402769276507713618828503772207659471705795835267636051515465126938410231538254621708937163107065092345071428256602142182901932334306890631006793157349428861926853131405701445907698104114892454813099929142612562710408544082152125259104659493672287495269968738094799360918035638944712473795390813128511880445846184738571141589591068933864245997210872366109024597346180249885079463691254858217471306676317089498395153908085232183159168586841463570906565752780558584086279338217730679264924927286276870347201504914412461362112672465623605153510659510711233340000505655139428396918125857282248038146741629650413817589203325498829767594462645346796892510037876257366233379164067604644211901883399868014048462336915912385875017575778411712562760569217540242817104921652817023128327091882581486504330621142559483986468062739784334811495898912615611440943181379157109666619296770694994188978779284372650282690846408151640965868671053040217047141889953430772420803134397891710883085810266045450506644306246544508121053064881874403046815686478964734802714064656089733281781559285849476850841600824803089195880469782727676649192039653003792952420253906065435327331103569035806639750172137410392682615489082604084797522778784028928700008649518295828283003444429548284125176267683063740560936571533445340643435012212628296290175009804627352612871425712896974740559340516268841653999428341443690071633609297986586709269131578514227661589034943964505830578341903263020630513380878337518342782877261645863855898609609223004454884897340048756402917290929606441673275561743516307935608337556519395150917627034425614854493648135035621210276743690688506543064177875921749574547240719087835324170260755918670875075318404332328630374934639132352617630197081133006283625002300752348743115378941703357716347992581084350438472187732538659700439652055197836840897670187555131092927273391571933872340412712493705522819052381102821739791112691183190579985218636762444279862398578941054728984665561711661273402492941592852909030683924500099495467204417174979153290821769716144181550685375724714178308095550540002300494525106328214352406727748452272481039048092578209688081711562670661598558981921801722582109089707371380793758838096851245241211203856689864591222527845567170999047942274099370784797318173465053096703071501437998796897933817166860079735599520439761799771885003625259894980462860843477393477870977923375368640655243526356035946677295205727814233877254667541330922384545513826439493737269528576409860905281776314350741099931203629481183221187790800974475006312555454604422447205445427915574986315944759210849125508784879479943660394080190204497034646780147409953434018816589379249449203610385679957569107082093161024978381984856606176085632439514413473706323219674945166721239175141808242810439804581387518767190553826226363289342184330896941469728653411582963664473216819887491028669256902798618067915513924349843790550478082927606315117671137474402423268208915976325003367391716624410645961895729759890835652909588215534628938866418335105467365531305976203827572760654811757833282026828804727030138136334097955265012068064531183836972470740968492934001995319017317962952782863411900828753142918195353954715303890184743490467498056340426325728613179169867861021410493796900671875588835590323746427649070729704331053471256836101479235074116339218067690535306803935762268701349047180365009815287145106810799452544365606170405442805207885531204123425744875045026959394895976907300126927040820638953690834448240897530234196888367597049678654672509300680674960001697737038472757382984221078101868136203453860444016209370744438140631650028850551309114190303531263833077288324319261115079166378108536287900859103165252484156629129713116992738558656721218170918798382928168751220935445472830268022861833726509412358675871183997486892841512326524846175240809678198940309917941773471906498844897439099391304803090352327717988673981057419417659702899667213634101450191173029349820301130053902800137687906651455431586515304996772813662425995906354692459073662852151820356781347708412669384811842425984844122357001154871631770381727286619206789473310728690311068495735555197065761965751546502042992183813363531124144393114007494239170261848546030093761394579999820655331268633482362170313178914246999119832091272835401954203781176505008590048941929340880726590430476554769001861205930934319050538739194128539706969755818712274273424544474621255547218145054052097922331451476877816939961282361920471092903619770814713202669756802281025599008196191357174249802687547056708520231513076503799986235565815368233241113477174249151752303334671159188658181970075753780740138272399447298855784703557952161927465333498035179924956820992830064513527139003760615845470365614167389293780524392514510051487631017396668918059461145660736463956793828965346113988358182906934767721589394783438309033015006745938125007773357380734652990723949292989459418425794262670728032990234759822626688120392922958781959418777778537347050412975189897241096019559655865492754192131662998011499099749918282384513654027053699728207045794650892959639556409062118360661738021169806335955446682590072706694298063439041746000061196000392138048794620781525082783856449395327099413814890640844699801354833174882451208928515571246495142679517808672993593439085115869971558767639659973357792975024618012304388407366405199951358815156882295827453851366324311376624460902093982068112482645606783805933279637993353321133434460450873231264542394235269863775495649544320104061859029677135031961620072144843264908442600104584116619671673385684538482173589455135499096754912874263780934541714017084206826534637333760933061909953588681445825331920498786804557925848444349321817508062683581605879962185836845237798441609992738564708126730247625843400570490216182730628009512328872200774022024723668502911016023617603165094897061011113156172993422314091898352268142241763224109665541088819799703276028254006587117703179588196621487598612792405999014024403820743069794647426726785312627583934879869749040099007623652045746841120666163977031265744696592502401448443319909618396216990527774877653602525457541403290545470403547421885275368835861226316766903238334025938918214269830423269713145185071498019418493305278944072093599533137668004173314891912920815432045853514235669381290495437217431699888383975226907288182093462220604842743049867585707856799690685057283689311645995709678809443920423394602467280946418013928550934262235437949592867510646074747104830699866871256695272080532559052998188912970644046036855037085338046143071944685392845139961911844514766764754536781064414533352420677002774693708615650146525489288391768722229261079753290391825705486302966692104918076743835800687145178035743656529582205557208723128650108974434008125893013225016451117289373878830572180057358464585273579868016516055939916821342217668455781524377129406737876997226316711372424431348489776927741926864160863673739041872115417620896044825870594172964448855762304702311877549587443676042994243944679349290780411187884935241988539420803948079948995480491407484972209745570871287634021242074542001515676016711796927035060743002833796215627743722740962542927608933996246171598175781691705232443096974981380156044595536403456692143247499331992841753573488281779597045845477699319241072535829699558101911422245247947829721432234549540472732285801472320580695927664546365471057063823686036814017767906126397251490703915497442402378256174779758611507263769861147970412986547522539416461369588441689191449871835491563891369920818563204331759205973427483284824261177870055644411056017311719060985657395191003481589483760281519392640089236442464253484797638955574911829437988618571730509571452045314348984666592284768467802903947307255031876770085821725351808081964183303548731416853270972209837233496192648621453817146815250603174898309671947245808653517753291914301044537860544848172440880076403493483910854505024329012365025638551510355295810571715592665023882554564750415422236465310538997068589558561276524828417927616690634311666838788366659287325330268462788275356667566583627830391480893335615350699070799478463857597462564195916042858887226854271692028505634935470778089836235213985070168633032050661736371322712365522992812721518791724402338102916727246342188059248068048931348758411239931311420863973702739083002014566634028115144232722891471152893368636418355389025819888464735419359011853241214009825281680131989223317260543779388785398969191053686904137888220469947860305778520324527919267149140668954884295112599275009862496975427493895455125808900987815735561553841240093732431228183760647687258115199380839735866733915636229150003555669758421557984158584563661847492511803144050315647580663378343103063893107425426973784388615689823312890635500295829526279561241708749672123746773936226345233425793480083860925958996414668047509565817858140691657654892686569243367333151325744970799601714200703244488916773909534116514142052953667405847659453095882930624125750836637368376066136998304415096650839365566728222402344662094688019286263506872413264568573294212613304452092285224641931555781459241702305742684562760465874064875121073202478399064215407269887243348548391063180905909280233507924492731103823929606691018728160110118777573633290117989194561869340258000232330829991994587613241820513025436431783241380705408492380922367602079952640921288117075836322207992767195287011869629098378703538127914162865048087323674057228379527914499693070322444148091202263774214272976480894828041288826023552085776150297485378547385573447702532939288851439469248205352869113983212641282329454770604940098768802021222266067561942676653226600268935782178201707441348986962123783025152494019932763469187187454054077468293694576321786044798341855264350325728014427792153971814129851280263559518979756637781625257944335327699415262675904848814960690657360334771773463037507270897699184760792776507734356290561203260676230388607687560097216840499432795659837645642629281086614175806283381458149091870278135038355748157033399234970326511625458950215806668945811409056246330939620197824245695747793593859077023839235369912043329920202223849394325018836005116057757404122131632716287101368797684215405927560417933991537856302986452490500596399922423284601681365721452152211271729340720218331434192953543084694283057206361182427684806242291301665810588160904370498736378818570288688387463318918464340276396345826916330601301488633103677812961288473891607106363272442071321671902650673328916664145754643530188382890983104164067696211221320857058322906258984931673024124828377532357418600842191273868132376470832459612596289849290516384192171350160149034109366117424453718724495497808406268929729954259661726918493637848748774789000145380049042597969341058996473250891118172811158888874543093646878978063074267297643049778747591870531242828220719175900045713648560991231925059562067246422562629161164761364809814464621305324421722631068317405130822843134050462670091273983958112994613542938749709991890975041666342848443824156750218266514751056977270220709953040921080535591402099103181255790789448375058815780522625046009671220639404663235591675405011554306173808835761701133743928755747977422355968110407366133260839895100954280251073942323151837896244939346792383740260086162484588536106347304704538601209413386968443522786719080136299259182137764398084983244490840593640491303365381672876935792797959655118231292440498082737377302406133616658151750196142118038750900898407373037756464486704969112285572723519295110366442625955928232377783056728262701726902572613708562530955465724875530776222612531189420023615665659977898932199944298505772085274716315069729798415578882758442743252232584000088486225680767510720990971844088207554141671387439391900403152512287577931202066375892332932620722706378205710686615071053498467953760437355150998771963455828419643558357032181110029459788496938350404714883247450949572678013720820771050852018667173019022525777921533293601919167024498217044393481450460062904016511850461945531523788445093332612416389202254957157095146377269270994145393916206045932548662670231807838266715994527001773911927696543402667685636220563740247271445447364710791582015216325370997416726011925750421953638432141114478981377760932367578298139871498247627725208864755499216317564042639247840682154701492836857631454009449414824033448702771055800022373786709118752105002133338566154536597423280284071837528484684703806198241244304587107065434643838336894514520102068161495917306456704106081601008195464059742856811566799515385458367103887222165562267448907685880982354601380233603602586643711440464833512316228279646368357901771274187154185651385210260163215829639482063638640873976646494979088964776948077167479706974098480345995957574308148387935536965801282044418482846542474284517107436327860659964943131488374487193473437737141037566512883627432727627542999943341299634118413857936382571317938981185680758983652834033016398095407485043562383022211637063398497733416847512163336497247883263201980564688008222166909442206453093460043716775427975150926855711912189004980742524086429189086465632588414256743839204593355700421437035212490529945258489347166197840166316578334907591509470287468397352935462296046240830747835704984463341759244236360274905280083300136674520996950050181025716323170735772084797426407731012164498236991176905683671632535426213664410622988735604544181335998580432278644126208405847416649468963254638696222903754095513232087424495403754169792620208610506525152825742541387533505075477525026697004124133058137368177218498101205348611887319270980415622314013448040957412156655004457322455903885127906106316712114615863612381367557923424256066003041543926442605550855308999117215580468938748125143417820133198557300936010384897564476549421318916368834739531245910160579348728890898595586872566569996123339552069097475758333274583487517329473548838434749558771062493311746600673718061528109735007956180824353259580950643317973477122475795567700075011654772637439528362808276342841280624518085386997315887503064293148717314011482399325714356370510441417558641808617581494233549011955701099712076832745109202613921104037085167017021093372696540427713097746165464134152201922590006411205667728805198340808653409912715871493211338714191342581875334913950132054842317347677894907253871489689055514704678667989352733673648445150711716943707106052147113005933381546059962459643855716267605368932553962576471849157810480792564308932465282504670525883793571627932529534184757393311152086340059083555477051773949302919458375767370236781407439680003179756156916879925605301308750438196672434219725902595592348055714519346435218864042695368935632838172367895228736688362959495984350244701378837664957911478287837176468381808502910574580651278884105971469580255683681706101138518818261134020707362488805490596827761778682927063823228860368445736929117425564824389031307551355485133266880112373056040645873029414233193989626521158395765619505093756282161294038701047362596952109265890919737828036757146767488917312256245872832255964027071845018728116188114723764736354663156360642420635955457205289907340029894041930273799364656673441387114116009077753052808756679663922026240599738644817945266986244515175369094934642898689363743676861970242846769927215596879625215160176483584133254379107246653186351501113219206839278956544313624782209939796533270474157268458660370349069560060059997204523865670681991266172846488161312138109106815809899323704772279947174999923088108186533798708166839610717948071801464075558514204094042928505989652149888025142420242096877809202211397120225796520307171173332765488171592278492205049323220609459620947367499763677177828722004181077787743453366746240621911363772005954521224016960531167012729578368936361730262186026331664350105693597015589857960888757173971626813776219782164627134654149186662972466374321908730437885958892780177694289205099444647916328080536382269164192754828339559627032322299759717497317087040575803668959831841943320113262341424165632171949095826180000825605584617967115524948766139392830336896334445556459725123487412245366847395746432612413391949323065663566142639248223877255469179242603262894388427226566586058380898537417082495076499105220811767071329572240435043859488072875412052363679362313686159995219399844237600330534774827878576300299141942506628067942323279499454667487875042245174452432732518938282445431449176597870269167743125480307067231984070616952162006768292194827578035696191753091647910817608723573997682442728455211439586586141729248572331025771385314666574617598731331646863134338645258348513229726449519836193428391174216515367488428260077296073113909176132970571056342088501410893945610371630551487381110796376295087022983441544608917329473880261646744547145821660789470497378190044844253228114784585097259046128887568849322739353728498881413095034189056940802018333452613167663391705248318869060511252487289120917824783452682119500791427244691837334994075549302860907345490706752173956791180620539038282084270438174826936904236914564189903636976324282723076919897548054841002783472859809485680712177053978688490362148774339575411564059077479910075754564994361228942348556872416827773667132846933987996164849337717833309094663647145869545195899088493688950955731524024137343849631736727992845775714876571963488976086990587663474814793662198653247913717607229433941087347964740967207272745245547347882030358949977567727213153074080220771746251501983439537207769638960904106482987602422904880138622625354468694984846170579235266600565281678245341906886010944551528390415112977477275067324613926884347820736229665913919576202579000019725174814112998254294464276225327351826774598347064308077495229007552806333488932416988117090019946684142878356102627550720515458049631801712258439808651687639113511416066258625565865464776482780320083115899117340884570736128354814029484578562304030952416726536357331907100260206252463562199426960156723585406162515622154848107504696760460004585455007805926361071799987498739121596291605442466484549360175250875508915844832410324508542262717721456784293116813838411494291247869733724163683105264011487523704894030930156646679598837280358928373541360966332486805929021923688902314437656417300361867784303908738196216004902901327204928642735562614507124506865953988135809803998246425078028060427510856285471078485876321947418820173608791735052036044367891647898728970753959561041927811893856458473732818531349444385728510849318054878431277398078755960079407210800664941621771555415945999971370623325137630901007027548054442542072135149571214758719273819289979557541718604229269487444682328781662447257276968855934722221886614483459977741971268068237106006368198936622985475859988244522241257540505969878404945722112865446667463512751963957437855131008674751554774883303007122326760329761446779512376928422614765568748948952768455773339122360093509732774958051833393195476529674126002585152461615751269104029423482562489268126618565006254708412663216017920665811832362385294234862835931270528381290715871026122456188730712942436324393657433899030256784089371082072358622355519228257906908787618648215681234240668588485974249071681567730577319618050241805477490200302889153618400702861988149321335846483822983082863171241473228578938919857607325164219724122793113827456343620288608358221285488439080673583481521838269352690013929288333384746398692918783589732106809747726100383835888082610626739460433835481658065790900886200410380522302256828899573750028363270466831232851367664922355703519889336369098483251362453283247736347992909176910405988730343991124782075774951932504599185088736076337140388170144711778894331589714527535844451232396506370937985645474266902041797977557144702448685945763905838851495755048913180258500153014141527561451554562752307508189033534249992392230481227960510422172209359663751326264461003454312988063723405577601735384709682404845409686071733624489459816929129885480854175391888038496588515823922558415874856855725795770513794363280292331466555003047397034134836288478597048686521232728752344536500609464269765456587480167165539803419921660194537022540427610276331818532239457099568577697319438286919473124793333389574671430225471390620218552344965823002357446412448735414654882033241437008631282573378804811184783179362281667432231736373950167454615443560523117713780239538158243685045374525252042034929188431717075933697559094151117985016832959934856806037476197342163274410697570045950159670862545043401045080288374127918653764106463412218462228367367790339944218033080797202517737826158180496098646204754341163129354122801253053028861816287195217971032730398639798418255564062531075158161492024234087526657189296788837170594208068919603525849009146207450466210732245698753044033606332557732081738462201660888159320655034673633459891064271334768570747769543293833657503386576976808344931494933721804004627715795934613969299537566551931382287072724738458456870694312044777827381065568081553872908064319929778196711701549876951351899740173013609414255159327757729555861561720081411409753800912584922740021741917756353249473214355613611444360904749478340732976901392113198837932681340491770334679289645062111235140900407896577076829675501876676825703026192485264809876649922437765435166507257637163052034284356855681757561825315467685690769271477724044009740215215882354617847696756631169679486108560146702010167855119191323558826556566434257345597513445301697783477441557757835417729808181550712352640370793297927461402985784246566652800134013745566393642351068340060789782728267363725923502246138679570556248615420572977747273423509140050636499916617447976847844387667718890363697448663470850037513976944319938790764669432116243113908381944118206161490622982355611087709723620500891544649685653670296724981380300615059821141184485275450336840943704043030305949934605099317210322047982583025080464948229493165644769543831234687632293433343333857641864304769852571637789463279006345012341276555184144665636507591230208679077338768484043155094030292048412306973612420956416817850776057862906936409606470890844754521627491633022141850838575616427458839352366994632490326779505143620862969494460656972316906497713154450048258513839602756926103003134427545106668522670479592126059853621570729935451389667847883146057776084235203240426432381568313309624209028106240172608669149668358596039736474099022143495728070742547815751082920716309331155834820780008206713629241199151842574355467598107995009545038638950112588875785677038289558774003985274684278550820708204934120958505196703564232294163000304011722469335401453175198888639298217900276388527047050095497151078923712798042409672648711649804499193897878528467553233173930258207974989507133188708366155326816349872323590343505348538639754965997842823533016060882814780433097568071903933270561383200201296147193638253931108950043126009769858794243369247034085249961862234916001851612782931522886416405276802288516551635616533173849108731730956212919543738616592171838507492909621025495978566879731297514454313919663075636495022924579354362922618794931136631989041774955540606767229934781552715724070197778019129499920191966960414007750247663098768842267454990513166867003293356790984520479515617884963673255324563802133013608343064179563124519488651205820014638016490259321053301132100539814120849994996963719030528029413081607860102154434616433638171912764398444851307716148809412525021359441583930686968740809226309138818297127579376653371555677551469613531174523941958592273026781815968133041192421102278391357501571192033081105145114641570642317295812389980374409674652300225976112382660728570427941379542706016534021258881363829170275638104799168303362389731206486896951454283354954039600168438911885999349312230942822781881752262238792727233859763877657648012768632647654615550463261768924562225663076877409096084947365876040190060395427071858248740060831652204231877064534862735189278570523381079529678654790393321415614522047094272061250619057740495667161532482866503361023669130714557528679826096096391309053646743661246030159458118029110978558759090447681103819299934082248395606264598793615850292575910789384131455771855430315815128840465939433119663022274479948500886444771745183001439967242394231963115254827045901549425441448804787902347244411456447711126242177452912448761565315536165830741188458207453380438357802423952199830007776490216709266556683939726887295339975716540432943182081946699012271063474489173528211517821534464654971966099981438754699436562249069643717070143292685129048230060326160360272261728646214263807984027291599589130775710687064691016175768028958222461604492569412684390280661360859757665242785167409836717961240241433318763251836554469201508857621733184636080709184290625677732298556663857754517895465399192498833394499206964757333129703779844382299947468261429411079590380321574333398486398867614188048550660823869946403311141571342775605439692824943167691219591992580323554687664759764632818869729845955092543929275815678611404006786057743179388447518624261138489827833815585071979790708640149873243799024824643909953248131366796572645653001181364074918035730823449775143506632216065672288261737055785250297102184689071463643159241770695228671951112222810004854406632325462029017464625929304440717150836894292703726738415120762459294716824803925490894686895428350505704138077480721030845233985639320436665286592510594161837846871940395158276959012219374887480919897252158348871399255270018507667290697754239103746816661955368982775159993872626196911310900383760698938223281504231087293268280061463562030202086728593506175289452110897749784812317296957800556634484885313288492302869816076068761713427445952194463365443094765806689423301215221863225066367389767738534814063016706005421617327653558751861040567923826776772173827760788879329878744117758688411128554108475419617353036330397821320442588322058803270215270261160642836113266321944383602938330629169977258439615310293145917798361127715615616816626789820595591124586374307019614976244136443795146195501664687624014637697462927843569687139333669617437435602262115364156762208590259526024223845559798944843936402540488590408742830441078146062863143172425455520877850602908700653266325600930013890037319736888629128553748627672581167492897431002229500098507687045800282132542790355047336911151229935696746601192707150477480988518758289132294253045049909622706082603458192086128345123573015543563909828229966682218298821609329046450016709940044166970562677671102856460183740490363559030079697491652596063531702940465507827298474634029369952092952591278561329389059038920347959264111956427677106890892754757792608620038784531142603621289955760179668595715191450161401433711446499873465017861649945070847229640375315805257358937989692363656119920804951629653783942985109232136737222076297199255581806017629251588332692985228478117287508522157336897265048642774855782683882562845714894336064819873369205608281600372639270827010181500867458839077282204239799508204404825729542431133975119169250465113109096425414430481704774693980611127783921791358774012690800291813357701303212854443996364800285555658080578074150713577877050249234080383950493880654082138249904960041720843498936271116743642934179501957001920563254474598894914955580864066654158990006089485273019595646625744767492099781610536593461523553545898551433405925881365550965614010710879116065965624812033820332531046981344363691461528730291600434253715480256590704636775373602663597664223834665020896401343403492697437380460531488347671114654820780592035859004387017940165202031958763130262557456296374577199004094763035575994705254671434278013636307157226219334640732868901114558013015857802352627230609424736099495773072759607278393065406287057083725427397962392398563829553974069283214599443813765592494447501750889289736633430284453322264642669576986530459102887645186656861859273984987825828862634425912793273275961048776610540336953040106450537673929435242026826123044862178772361780420793750292684788677459317584404588308763009882661918875103847535372748433876322717837926548087012717794244881972511953982934637486540799904122775008501681455391338758368742208972862442061137624593735454229516986152176594275008267204818309723967637793167395645407039858583621896183181724795710701693141756514028224889769129510824644162013195033164399598314845268304000379708500679174491176903611335979987874879996161809962126673000431479307957844719305790762566341280631826078559900761287531371949970470650306273598398058903544376826414741840837758849207764923724472620293893446143936975974913875973850857864969673404083758368712011763542921631573288988388302569344601542974637065710339606079376233575939262192753719193083893678263570251002286096357447951443747622724133075473443323913168822427173479951872322292846508965228858447716546868817685141638424717511644279038573439943003592909321604460888945838775822321626163990006408305040999820122681844981783023829249217434790964231369774709665046364246652337817921631805070561948954032070144674799314014707487253618942270881501640591936775153872026865926203528770927290213986504157871419953983867021143559559444313453877850795990265748381675294223800729828718159840545684986173680143326652494710606624489589970222048438324252197505756719480617892242881096015175034002923916091428404331765627512043239424128854991505235178153750629483740407988719773293721396283762169484488973556943181357188923325448317363699568078934497216717186356762922817107576970379391728050712357806716562008805633564805868484026107661479013939688750097001584648592198953465423549649462356602015178445718357059246102009740073984870288777773492234942285478817984231834552480285351843061455869213256229217797945869273723137094500486942411553839154555039895437916988094939725080158659184224679425073622342899140915523801043111497146992870398125460726963005326083346699976864345321447786752277313004312265474162594035566901877938411905429933960041500295918506155937198852522222509995877789854657824554746512032333235434863656095332800723706471999939359844715708350757624750649945891768474217712827522801693488292751952358987958404629067085479251438185384631381660565967059975773377711060973481586667742020290196593192789422242665047961766972846603916428397035188455870289320895677301312852815678312503088554976136946566345209349437118852798919934102430071470399176201962102217387791122110897613291132047181186027915586905914492734104590904340689335401767662195883346470697248604221916008479459603966328819622033776713032732692271825674104093366955266274327006850768539614113294772514625261806755874386628285294648815074621445381564688774239644393912766112120272989324809281701321447494773083302536772038364814974201702646837546525019248675597152885717853859309574417913316323926267624255974946598903851240842629559979456257269395712881583373011455098707141902499499381728148046981413648102038483621689650532508094105725865674643736726787395821572102575796702350897993561353446218113857351484320351317175238977541961430516285636403159850962293967894461553055267463959451180946380489037647789485719715321413514956262897868080318568042266908282831185362264586663317271801191220494712202853974761193893720941261583265677424152064684887676646618142199105524104421219430539693626263133030048480564909039385979069694430497479808087484488480786340683032941516978533010646778394622921020501000165244022109831455624511150932990478516135314382021752177790584510871951977413536204681919546143441130257601418194795925435785766210547212722184749971944088264367738047213154848767295889291467990541591256612273489564229479565972066291568600283856446187663663397010079572930474318590921502457449731101996150366524737226971128992040151942427549958470782309742618383022165235032374949088678338912936971451510471910261133778519124576701198660937445086566427416482029063096359511162605644595129036556956579093508413231028820389404383282104048642094071118531177784508890477985764322539449806413745195751395846665529532463477420207783505148518554097840571264929849975684445069648866042949550922640898669499232068765195423098724835501339178462608674214696256855199221019462934066087825842245164263900429724599575354895424389876820419470917203607752385644511635991592344908980490594774894878840428446775752492825011948487980137576122106292395325658864876082381087432420692767430801167779349358419690673916404661448737856208465533800474970325508147089869573435991102931442880286256025702115360847796128950256877694017612436307019657539216447538782809476810449386678071576567867836065049707018832501440781397502130764677762991694795087600917569946924963554896370385614483660467813279964333534651699873882249864098457727236721759517316864028392461342412131269559357365017188988143179035725987329012243387552919119356222065349521503349269574204016374363478010115558343567082446886028050513212905281811978161674873833834767552590181806177304419182479508631541185831535755091877512929772916069589060260159891656726354681317182046867568571079653507170163711583182628155288077189946950079759006372050604039965681696797302859824997303952404596295388705017928183903814502331201668359962212523351721519188720348225761456772391314766876331202108302463660977053492269566732340379045520760020823213239402988283376918768091658992065057223451890972700679531344084722091976265311312201491621475713082271480221497281877541142443588525443241876857259206162183857532565800476707100376134624259505125007919814665752327919502334872048801495393634019316588095482641149038848830935986544409161271843659440643909651656738187127303958671153010089339827261635479571971699588049516631192919288312448294367414867179872461744163574462979903781253112170086419983870506357035610336896215491749051744884352839702129288336772241163515923917238925961176365650743898540909915937977325627252570599144015451927957197842678437625040729000263643268824118021367070478712084439706667504652365964013563580790897074104724685703495124613587581752217110907929456243113232345529702251940599899743054160033866430622989008090236250075159349769499116387728796427236578612659854475910246358005373787239531553577711930372171248580793516677435471557856413654244039031198099661652390549157320306565140569723783087559948012318987698592716238472388969757313891819273081681827486173189228473588356574542370397011319150397816355672553297716892655826089099111719468300314550466683357269867982609826601599381676587325384133514215104278774779579508149087834816301994630208325375234194815174392951045452458887955045620155322252119094291565358598630781834362276011959713554834552265260043140494546881162534817771565842283883851138831177411349553321719696828720144733009702171054282371183096795309808541166535633334379059835280718526028556669447542629572473268901785761783420098836067779637356728063013437966848345093855484558956631248846601210135885715406908874289976619095109233111529899096154643124582119048029367705955307746167907084246469598811556945181241175329906932567256063913631024674012271941605787722373118839843858110559938154152408404497555820215148186624826150107398710063970847529275528465351634652141094248773581452660369782389204279427105162403042437327838661816043667808858069075282091411870347319876749107558319844510923088084808656175767239410911807682185244064815225781312964339337780687339398581937413984918796431957835652887908834995073792146084141121535984476713776579477144813022284170859936809283699055294320854227340162386981047793285529469945139448567312160490297727671696496171568161638534858077502325663525205350401576998387463592634092199742500964448854789332910341850318620364408647671824608691833712374376407549379864116245372495741260026182816638131300861977274979578919599760806441671781724249352847134427653726360426405375251026973301230546450913395103692637890056505785692848403641624114727777721545816151910537697486275263264061695883799883848669816320872636311682998524247687031533909232835371111962184543576213964472017831776903858098332079478732955303750466553039868097373828166038127875630762013425126098559274451841391569293712043526020612972065711202457850404211667223263008556389744945804546285287834824201219739523514087644555093303063530118304930706764109710236784423509900011464052493587916346759326450599877153306416440604275338519066104925991796587252542870101135969276484413167056018545737933735318963118103056067851854204951292186141410593163983832174898915137108083505559408857188780669845131792275443837728423629275058397590472635521929205496192044469235630843459975132713943423349031141339026536966976754791435907032882604938566597834673162233833549028433698908593281506347106979547924894860994906675998293939587714346908004188519553950381537566643014505196495165542113483884615988138978848433077750541666271338762511055648553616852346633149465389940244141986540678214102315835696624397048401270768473876676053473339449646344582193620557671531957202654024393684220130353675133023239184225082490913813954347988677927976585897607574135379414534070038585277800273926528747605690308780265202067816905945842249189686395886947606023968733571336001109479889332940518410646297855640810730070314476683929152897285957129893726069383403272973786897078757759175591625242628384727881932457049320607111668769412833496618301242700097588628646372656135401261824693634507344514372054964967511642354976198555436685605096108021934980932272091219112794956669237488356392099631491258993929990420080666678553094940612452379670955733416481372505345431327692701584411738832998451367382000772694467873304259712647509366388192197250163680478816449327059348523441955014154598143561220024263246352589174877396012814001586481871403255921704838651259221598863289319679329862720241717921878056831603859834166193607565778874785602918339717349152272014717533117475051149915666799262834049088006481342109986526803521009477119383867134736222228100145045075948738980191692309833908375478420799280659046137380664060556088485673672133258655772099432090825071020300638125981443758526294579311479442859325165922256012577244432195524569001789870777259778537239909405736155247065206329976033703787815214818570768156101354442173702103036836039577943026346971740960195844997779835319326847040865983224033714309568313560475459546301370284979055611890165998691758953124124224059775429775030575809831219171076886034533818387599668696698891329635528679887103314616717882403495230147271037336221824860501906230278237702189974266668466347442017920298912096270114259244838565235742690457767794380708351233552276651739208282793093984141824553051548534716863914458550718408871626538303503866454869558505071362866778319249849783964638268494944720189770665881083536405622742132666729210330628422794765573415194855671994737134581743529242934032458888245284196990817650766110889023262787121248227058562221174607215894095923678782918658278078409302947262878532518446159476823882150135937972016146383413483182371701484840915297943994251643915039763094860354716083101907860067932994600439575615188606486335653061740170073060705972973760056196662845487089591415887660445442077350973483313706536086417883159422858980659285022816102501200456800742313399829462233066786764348604494891249090119316318620739322747513824850685017083639167032892392434236672393526581786170563513581551100500642780916752819786433619711951489891899145656167481547605816045078718057106986082865657322409010825327546990008819024367911239900218409971541252837874512970403142938869438818852549762289229803144268930657318239318550913503353776654879483073131994130616878053808412081788843412544533925993551688736085878824134103360997463762170376808467605534492058261206432503510584616437494557819517161085086692487747465608792944000003828874906526260430178097874642850364862919047423573853626651882229158078104721884364917528705181603199983378855706278674757188176793717227059447448016740313777669058941345955900200359270965295406847273039474139750108488102142161118558938742788965286788913712848772532546547521110583000136349287456415229977349793250512204196945450646698223181636135501299242108920970803281299105903777901807280807845729947888523074043710999904862992338795137259094459478626695825344064649020851038009914750210113847164557447590268969539859296024836611195913762365517442905028631365208296355167519810556119784206954480652842953389666272992437809169103291573432068506857018599600588905610518535604142851512987848072360074530762672667244481700774371530119113208478318812157940770842940870178331790811225794993309604802529822217649276653644177876930249972866075830600822171793815768127643211031929197860257474427429219150813888134263267951482595312525644232120995702103749001891215546596208710687070731584585048499957909675141535948394100246078504387271521446239054835646824906721385547561850707662346900355718916741812207121655643071006920562535345940660739982838683788414798858605402221874885711211012585136553370606031982424518903851871287970189384333395219954275701500973560629677509422753897090248050570711147280508009506950608296794154501178779926730130640707958861855156914611090634498918314343169502416826201400599612385742802653711767120958771922465805764556793464016971164674492743313882890681608706169892806228180205389609904247654315981362385037039463004283538120211751913184492071379108479063287681486679142098578270472800314493241691514971924169233859243618294640608226212357542979437616108941942431965071499073428896202213348863537960089544678885888221768619530559054814439158463598929733737077527472843204462892407696038108347512146210164659444639010509969539295801060668854488382930055822927389891819309519890920985498511710148707292966375857902680256682489009570809908222478859397219276802198274256735953469487422464317965957389675763574180059052898909234697663546689270584568142182775382629666350210102157349926262172241212052683765644291913302654181232947496542876919793110954436894794589664823593790871488110386779471331142595164498326608471356335741849525880215371036343637530769395373805565155608612236303715084092698530839351983322981415470144115043672016272750577678393100141315771738710069812875529136570892230929004164692642265131697950879959268953553286743261357353134036111467361158612991647859627210604940330312270626169063517393014260471011855991102254501365189080487810859859906928236496625292127409739210460020246798607489209598394778590623778285924679312922288693111518124373219528058285283406146606248983228831184391996434670645308432270027472301555007448669883761037777158496616252059789307343010661015112711087769043746967918743565555161747051743623967899129720018996339139096077639109339113324836421516792034471963681897131570242578284672352435761522007795982069417302126256812050507054706412648803814117118722155895924595306855366848435357064394007144249402916396479719291329184476035338608899997354215437566793078945201264953777515770883852040813106039496594514141239339076543108558133021841696741091448370968879533586561369857140455411944724502360841254359615474126022363382958852968977003717909294958557676214761813160936683704926981287618023153355981408344209815915640072427034914508268749550925198720953002711602063308619309136221287807272503990619938358712224002815926666849931062997554071991327139602517661800630621151552567783271110927273326684063328199377881083758345407737426558906758030319623631906985947224659832150633530394476870682109103850365234628014794060371577727770990750768517197585259297571007888327308261348215797700259295239075471776449261444040121212515149500759390500543579331853415173477809625243747944796057769367017878928823838767108706830379577054018873125759111872386457122770987866372901982750098913708409268760608769010111473553288437736618987909742029615977041449392952586457763070853866270137797248646603347290741954206888946488709460404721665483993119805473702246642007025346412344146910454545279008420283530747573728420574773542811182098415433469048495136114456443519646465633110312486074438095169135174192291873046292980745352451202126241529863073716195213631781341642900148069632975936688206829669473710313348484151441903092716315746607741941114519315428657624314851900761857818406182314718972017527462578874092331338705369804139182018243342753073762435704285528104334800323474321973016101593458286940042563532512547595024973080172931620914265331221040690225668878984746051600830144860677692517561858398069587954489924520510032206342299085504451893921577464958441934511957321537215113978478778203601166672792884990969193345149931074258994002471733882737453544533758213978496706225568828629267930161746639397927390979365910886700653504217131462690071596304443644393076527202138125190142710656464448080925935661949998891306334736034984631839024973619827813737207689858695786526518543768441940902271397083098869490382371543259536221359131577042640023842376207699379295423875479670549926131207453309109845357190554094660071311923247261784343914994448596664117731102293095514927315554676164202937341591844946068426142033152553237864373514264127197969765573838387140355838245722188082779647806548943882940876321117562517228974150034574496189338662310122432189330860835591846564825602327160946035451375437485131698951935749832684041132838825039064693211582788234600740865947051902377994586267189380341824965145391023397594560239656989607950766866604386673534483265013391945274638762824020151342129101377929316809160321989173686710748585050352337155818701823677708072524085916391762124889263226971282781619204495873185625301724913167914401323428255258355285147438092161910512984286656630150209575462910888207160227150472821415675408581996610457944915627018265761728256006709270395911639647978567151057889870688354150478776638226484390669995266493118284135539096874291126360929550383215388539613565418809686996250954796686405996894740442022921653024443790324823766430415485093467560735519198196859249138888471772126507757835938409857366766284812476600376429539148483722382372426478513156214116116690086004222657792196174327582731797012064886607028229912781065358139742496672973419118308763613273577294277106762190571438851577932729115563775387513332073802896310918504992142989321620792402477202623334367831651935255131883060466342458682861472891752306510967683082951930889307898680068656484089915721781262663639652010918195678174796912944859229920104090475460857345329051301808457497830420856876735772209674146185964708585279393504363783042872981132150713692465718469882396442860428252121100636135727813968730496868267049471252702948029402245866454670363380298190464263976462421580695017641923285315259305122519305451966728982974156519436966424263964368331860988027093126065132261807883647210078687835898692996141308664243907302786198284901285849875605156144230877654755831178273962688437257428286408423999982599446391831132482147817443393567358996495536964295541944683213981154529290004365990309561331012194483102731947538640423333442643216851415752110540239460904272222697010896210050687598235393705539791687276517107197600845315162717182022973281672068291237572088553727998622965222516480915899700049776686053733812733345221487044196513981938552721781756328221122593840861677312456359577678634938072063477032825671607126555276172709252644680982681522447090549585581304613800979891096562953622067316588117851854416580777174330217994033976089588040126529571762565795541685674257823175902803385849901326237383852504107591473901557255893610499290221268124986365809480059107836362230046222172176802403032740854745221098955455096651611601047303470237321052310770230012955574368796531797900214707514957061294248345368347672894277365865071888314229564460013479954426990235885077738729057416848776466211822940539872222451637283500415160131380916618795804207817561013420855341275883252535248673464516776526942328456036762246619158746508961769621847291047761196409697019088165775460205085970922999857516231355705301375609396772763722037294115788856606416918109864592515170981406142364464780587997865942647401977733635852151521122810112083879802679362369454196277100442534544937280126496005461123416398870373240688147421188742886063888947131323914392929296037718047000050688617121133247214346704892083621940692820867043876598148986309050430364481998438280919048123747278794637538233891946200976133451274015187208084062024210618890370743305024298897777918141622044688523251525793597686163519909402857428265089666403649894827515781975887746191925913176981308506457345336926542297946785519318869885518831095846222290993112461998329029304667394041579724566381600782993485185685990744578162710941907070339201244614065387727613610250252862270384858543077433041895474611687477423482904492921287782307849752357980198441142271153469873301931689568030653213387636949534666579317312086952351878120443763816415470870544678408656316573864877464008877288330050167857120339078428105561067153177101488865156879225193502667051430286221846314990242248483336766485664905092526974631503931700502753575193530022675374863226761670302621659603417565838406252052129651006773611322758022920498087294209221663716571012956279745862595068711040298752198405544926354261489231465893594335150809847995335962235468227063494483662469336819437043882368094424184340791976749977029210582726687296993814445424142248048347208366127340737525599301121647353611031812011254632213654027363458692067695744265115531971475098243983437576099332357255794655785741386922499498233998194346809379968378773581513391813787869742153192721410249923480223302891535050655474593521698126380377443722350568021238617286607887759295792570852783838308311674098068430444501807296542117167230648177533775423575316659080036433108295256121003086776883270769153509969778585899507494778500776362071429876709866999839836441962313833000880520320740491168464607888578258221615040035968568301021515350576256131635025365999670251116088442312008223357018950450022405519901881989734941897516672535643387770108946732481969541785419863101112562570084830332212934296574679538692875518233831401813672166881787055619997848307815345086769146346280997231176529563975880832155709013967544382441794909078771513929592698515266661353190273882040498983737862946507205897445153751805747976976361164541607085406737413973737583718703823168126865737249776261470549814864685521102801423310707207367574090313334672666782370791041294464132705518700013728356679749988459506787424597193444100529096481263054132048502188642118047004931274488450568316942442686804477885322269178481158879267431783415350984118443985138003370877498376215412438906020997320097662287837375702401614644190429772836164064003566704085003552702683830467075902791974935841158770350147453716050559931729655780191704097087414962474691408372442197417387905043599385921851332729450428852957150288946990617778346441608594699980105862765946516732546921243409493495503926211069643662602386239471630039275234179072439412475251614957604968759311636468133773211007193998329176931762637385215284797411472142962758049564274364556373538353091085233059407117584178735485500397545998495098951430916155470013549238378692201761439835103625998682459067254442961803345787608808988715220957868616652335985956060198686298333618535434432845862676105326506662908002560579567756563891611364287928614849524752472504256095572603193638678211959987063933017210482259109765496485182281075491679005570968504421959200641067206434115995122137546132038687443934431940296034297597053111058949924914135341074523370889140797012383209833070668411947152750293023609314395339764862927776283663175000036058394110055549655922202697527034187251913571030717916039404771317981948603916339059790349111646980334440454241461735982506923968739265268580664584819260994512897851982338863081012808251646217340217678147471680157250283477115323243033604577354921029228285204589164266583328489005828531041686749439040770391199665106527021335920756200380647272483368717509622403480475122028997388901067186831094220497577722634583922902783073297616290983954697212046888992457302639722442001951566254647117130677786017332527320402329944536076583009634495805461182427704903248360821209007115665067590937109623571107332308607868425625420102496848831168253635096673404682448541897638463414485069725582650367176344026568306476622509595530623429122888299570644408853663445231795636263994295554589081530693132710132544724180690895606489245435236923157197057557381013702358450021746461037041476878091162047302219432519544527949608414422376450225567406685181006318077230547637953591448161667516190614938803526803984851674114127411675143830615908246293359503302798438240024878411062827638648779397387104248363180339596935800411014044460266557918028168912724372911048876670642545336582132512411460381287645995136287415840941204484544015937855959645008041745525064160785489596084997573637836956143632702231247839348370880538763773079332259436999227174150414184444822012929302190513052834178132802166765975085188295176221576235750827153997076087672581215451843859080609733287751393733038767716414501665742354246289437341292385289214461030791441083991825992228432524055469798458311990558620832259393402517488646028877932165755809228151175050788345579569643182030809933631938298397888800157316746254816426438996640832532723289114109037102133974016265055015068479894860640482518145277367476360487594133732061605546536668661391872850831211952078897679012526880761966641668524971206919480431053206913140276471998687796199098811835127689052124099003492920521295930197099867891998973974059381012639611406326047908563724119094158653346350024389844517710860331040147532245039285286062086696842512948478532098501749963834658186057086432135437172751318684700633664217282370912224946256697766853357597573967855317091422495626057090722681424422753247805911684528068244132447528487228659060074420542723319492884032841809827547053217089501946620417466209790922746665947174949951711881770020106554501259808418150661940499973123766255086439681719219805459763453932835517470710827574511578155367785742650961610045907391267697593265672583810610444785153404997115241737048694163337092907066449923564646280353667796590625725806088558676428665501734115870637373738186265324150876493522215879727558465039101038725336109296269102591954855195148818461631090540571259350195536382484489041888640780022970884724572088101844492348591093232138194335836071226272083111501908935162152315233212901134205792597326859007367373899612476989420084515575895784323914119826174450363784967311096918379110094706101483883580545989333373836374020303960019390808832487030537521743151430944268960096615215839891964121563651611365221671934074555394180719934871636221790020745345335202231707984022631545596785989119562484266197573538894508237195757307751978466539004373278779137042063035214228922238902711467386786433855358674426254087391409697735052879347212569654546076165877743922462940384453638542208574900618125880386811030906012309141133930708618212278892766232044655332809299367633648453830322197037869626734010839792427916564811984838253419713409983206856476809836234693363091904257328158771493090646141575621801810245377033778495666644644178143582292811779958641418599761025593002646374268279953150843581246881910892811119060227670377914149655240324307785226789001815423170168343919775208405826055402411096139864334661104538502590989551556511498397865821338709051278989579878642127629543031805319944345006649322974392197844457477483164664435496122246969641940592481157668917966336586224823061207770526191730019543900332515984558076724145401099571451361548949160544613785412990345448487235684979920251635266095194888041110197599458630852401949918071444062109830737342633931578108757667722864876533649491937374862404912794046973569394317684222232734000586324658083288243122503051603023427825846830020073524059949507192394931255338068991212994064336373769935945529810107235675789687991967228064774388461771098653200951410218403335542530054088914723886803818420979940317925194683468795798014035810634125519455612290211719952109693655729224709124120276985814992934815487557204083308360053240638694254677425607649260704808564520072191764120722953419468631866997322759313821848098826145201589443445110403037455649818815504418796644036993327355479947055950096673818631686987363143964706422980441415475959815021755217949520409855176368881050665237071189629768556875520311593797153367894663674823106169468684143453580454942039821757565803605106995121568158274107200057591839077724761236617709264843652091675200116306945362475061419625983748882552265874972137889137790783248425386728355308308376717725121017924211660546002848861610791752523054548916435765686165131112694985827969013697157046483562306193675495933024157234144312467482909158867521044003210099185668734128551626888155028818004886791177879150190326784698920361502620454765204866270994816822877207996983581036601185275125421318459936990112140923425603513862155580589668190297079393769416935110039180310547548068831018680247952309728406872571602670694789748584463842583253201914216054433622272376211466750565713519355130427516654774780775922177949831436732428624191419229648337672254181366499130792496213174516105785492356934322881724147415820723739292058503383650253219309981674413347276744195404296252546416689628951116170461248549650890643201082721492246948960995393415297431245624695556226576203721411606199752410879884116398213081163467251174726127748772833377492925384503613687044102492624763780835096657331509360522625520600930727910048282908933985346256641231687228475135620566502518966964422959193383327202253142107469452781250963476194577240390489191360484294073363602678188099660952335647646461498009859717938740958291120734732749948425458164305889260653914473848030662734878719563638146782676411880940744697375409445752423455541749566584363539633965518464892856837046676987237983378310080470156983421066944286468695587467457045859542170108385617259006137009293598356438006343073905977384376563081140336945727721426426028302555415910329400500460427491972928038186401920200445993019211853079803093735293074615175001566235804400928791524890427639259857945439030614214471593592094546846914451312069735005079333308185444142071401827123643397445573149657536462318419873692998264687977586930687584971405898762046716994114418586086689315252438662608365114461226950383150247463031583677488785713630011546753357156534814845468668161544942934759746869552471730666874428522752781754094841807342014967431671922165936315106945178979545808656590666415536733243270986771531547247322840604863314301575033554992033655954938786013644789021440166401315489932617248579331622320297037083530175713861609943884401015936479787508139958115145823171768660626570054724704968706379035674411796810703596524754996122820434872760118395942354336870745586020901988919647078901871840009752270923810024122414009303749822951961519871507520017089398242560927407798763863570677817093450509469403670411036419062806798384870362682496134856907641630304547520567926073944654015320453566849349763445886279396225424506807953170218743267308168896850216002327642685704453214451572113095954652536918936594020164511407007788945972433345974544864159873346513763840441349079469486801064906612535531587107037299505907788440843981929717359816584795834835124773636256568179744518139044133880308360356525393014889206737845970951133139759692693907608324473606542228417753818292410017246673061413514922807104968569373094071122852119223617682236779130666300310392037607129244033781869236139633814406056069704944073785734055838492221338452760311463755106008692915120110804706013349968911264689009153565709587799250927533347964407867340728185906038751023641340710805901827604107944237940957673810417648131676437026438336977539555848608246656673430172429628037878026069841405769766843068055086748910931671603894300975355485982072479695583827346969506305541422347172650362821420175780171713150703563609162279045630922310991069884853043485856991063605950012109111470990323971795274626172192632667753013963375220618308746068783541511480771120387774669434630861863256109125567341584667735185217354802599135272131437360508934502538956547638547376482324133542456292135257913232034571807312211405570428701626226544065537777845032993057312340103641245813696225421551689338294740705544741327965415685962937600684187132199820187243401717771859241821834622555779814574065179253013239101205467097467500030895589314238283524499490871245665359375590791442953447426272299866963541098068539652376424791553116585721802071767546742480194827549981458244962629037746345949922894427153253747068518594967427547636855667606389601336210305185259060596479951897757540265108608235612468970822069638147350167244615865133650858666287209047732735359001165108981728036427903364739962416271862979575260692307509404419965502939346575738321659720638631447574457580150019481381310211826867385108016908238072882504945995368085094012011682462184349302756209099657386900230044150982890439401152599457434192443100026265048231099148691868595502002746956042123567184875180520382701388100330004181120377353232679152511440845490895911018381075958717480489237678881277672511143101048403016583184225214634155115701649869015701247701377482790157061272922985907008347097488850987462644727277138815164078539468165794369596009510186811167076607967993427497365618020918270611689116081709305178120145384930943934479509981324512735199690049158651485474319272819535718403824425750885721408543072213007917184116572195863635272459058152673765286669245230016181760919729034084218012215345545454270652283540325577051832457354248851713326170817394184456064317492112726566343042589425574016005639205406494070758454314751265617384216651892275080398162364810939572572484418075689030332691155687765109127032746986824728178538020578639001313002116263434787574309484496975664698721606070697164406993419649645093857863547500606792056661622595603596250241214635891633278453646926493219007177582018600480739714774659864597800718632661278881320479425407835748634445039905714186377676010687082377518586552422880863326880259605066789974336144085784937903240466225599286296572595326161254371763197467349174171565138324183681400803311739198969506952025439839556355722206761379542922656828111365011003831867163153888296500961908007617490184349007661585940280188817946107710079793753870771554912488591847693494024387793515755810943869746600111338412348154734950516380170661544673320120001063940301703426704328449043245517037299381050452706547641983929080594044868392428685744268716897591496016947010556554005052013122738582213372262507404720449842643304755319661195194374787522167898516603174967058645086479828684425095649308983022593701244761733301807598865855450623685777579325620716847622131086259869804566097723188252697202337183185490702981112318550982368985312394196726707457949512668114769176989647449443484831396026374188946996297051411148873307470276256651251977503327635625190799839257085401669567744237732372698032140334380709201534122409918878794283454289242675714040158885291822225408283092370344271476906201905086406892015837909727715979150959140701601876470258313263242543116987891731065617840356418423333528417603406986195362797046597947658819770382695933048096497496977930074005077363945024006029292174783180319916920182892113342200923116463747877784774554215147849796767772273210506854261389997120612353958902340460450667199587777161352036286670195628723841523048935298364115762210926946672388996677507218608560983691901820357146326731414474977525246871952673290963709217214083851230904203618406966385931295316889258165257909531169526804723280087660696652497616065224746045089621302122432024636033006823243674002242820569558238563114091445326965809095787326414460615912081232975227986342410980948482449367902133632636965892303212949511393388716620363739595408014814797400499712991077412112607918475368818493303293566165885329987562782288568159166442916961456008941600958521466890440936921671544783530767840501199307852484443052982151453244359476343647389660289374222027480331072479817674923025822071331008019109117851003941731765057654455732731493523780016973269312627687458250771307389883418725941382999164798923634787244642039668246816245358682965443128825436032886590431113285712364501741619599402314250103238037679368672016033972527492494284941624598707152540335104462365916030850656517768660500837033432297277305069288184943170515321458753461789224570016782774874693180220049301994456544796967252057376019549694879281734151665309587251725976742307142162469799172638998994703724449605160889919082875217973738537059858599329040238345182942710089869424237830547585511938502188569094345539964211018364655140455342588753190720382559063349704401581620806823841623392584515633640382930015238502357869640613540011607550242737141042801745793266348909642820967853268962624373507122898701690880835627026325402796915006894978522761318725582266063621093783648304988875282248632482146043166500660735792920555260414651834466567493346101034615849754372319210528796273364366987669746193715763233420477173067069189109838681346818677929232314855301452665007381797245069637411426289511009454690952536124107012122864676312258122914431888322093685185172343348971916775789234439606834890571215778852468426792903284322529977231393272230467976620463327453806602245075677749237251801031790279895547244221998424829449273105621306187126987970605818963948665776699663546325822521915550380913784520516632677595125104776529715270944944217253586777954052451861445361603135104988765618678256796298421455967508634738265835644238131899989570737444777501806349463294406851696597314736305944728840737581390615495540557635563762550863854669323386174834753758804858860984640807278536793043431067673172166689910707356583002451081931567358404272786510463926282552670344587687102034853133666856718437854365269944912393921128090208287761703278037444643184322262168506649437505714872476351957728519605812883376142188051990117881603068391197917360145743088702855112014821301510410608836782159375757589302235384333289292156164713969686398966101296740810369823877299786400928496414049819886812701855318680808254493058223020186448731262049665332657676899897905230144368024863138860643218777303543353385541463031725579069822915496058007858896382625952045231412008556540115538662127002102132294512914251397092219348351872595607222869332028089656842332160945011313074122443662893384908252907240131244355161256356593802280400389918184110766558445174428476516661220675603669779910070997463089775389974539638713718412019446138872354427837196528180477426707716058399438068648809286009605787971341390680245087223003033789989115245029108092259791392465247868645441643183133947766319613412749251698437021098577199610362817169823520364552389286889267999485736236807681130344116600257322164722566620809180630651011962749786537522927634158623776654344412823486820616098568096482143043554180322754162090876432259333047188321091991804386080384248421972886433304921682855754533777340100714637785545763826931544541196505387661677322276061947587356888073518690285651907115030960439854231487985435311448853424606610388031766356273431500744062831373175242262051628619090294892927609023588756311440978494839673676886612382033225612653200859033518684123175787049581877449261029448505401340945858724896523354275666251054371033434870963296413203704357907407474473118486417365365579705925131823989343689397410915805759224045420894602957850797957810109464038693677933847244576635004576000484030297571697497610057998002398503717413016711327953606637826002918793934102998815056899281759305308838929163940685754330486850595079324048282641559792027546565074473393638705186503401518267755581116642938846325123121165855429303884765391404732738428988376047489294495846168805569064403408789845643139022616155315991442774347657628682692858389356653273768237655645324573919264692159098517852641619243131648340098537777543965567268715438355639577573880699232121299694290177302364688267489008186906768567002204970452341963068951117116070654038270198943411740877768453355647436404045976364953955214333703657904661147159222155955981841628190234821137736261642150573756226922286480689009467463804180899795925977798533327144824298361268008035520731431248829133589482939011120887599785180046576137640834229274262405508624032967076931193005416898392268872405507411526376464377719291583648607192255609712007158377949680306759887935150136484047381371446039810427018454145057022555586405503143634837216609002185079647891320824148155763417658376763802420641037855526381603552224215916184179138492463401050840003730293005262349582319547919648231265338028887314981779615119619394435891907294395638337305332757192003459728815377934095742580886234772646054845921609395373019433335151983202791253615371350649245704846510584892048101392018110710216373140504443425584357504642752980923979230626060957261677995091468115679629348013463299248951082153796827436168676281621025346306034695484019275760967911386974030261673695489944337891468129128058332986285703618723395738266065510078245826280957888887673182579211554552708292695580887387792255822731185228189030739570004747829745259456626954005502555786427239986310544281439747398444514049805343170090408046885349356778437167942375835268567622137203445035009186616293101381537243518158764324046544184921404062433034242013609324671519001794781390042225401120914951824411150832266883163408913170742279931837170452362804931731856289866794920459201826700872212349391869335133124709779070354806440528977258089498761642888903745885615541880696471564183831438881817165311957215023168442280568621337048984190544765415197370304025035456296663246271261735093112590813114845492237790515955345973604362844684182599402254574268995699015309427853112827573774120452948065044642346530520040282635365115308018013206888100334581278903921158921101271169902645123498640825831059031586186933291382969785572286913561608632749773486025823324140691566761511844836067869133218167507517486463445112891488577054072053988655719406433268070257233082004972325064825499099744464840084493005114332135582771433990700371469075345362223669877720753048039801880827716830531682654636916941613947489263731668708944332551140006430648928728992252829922103950418100236040480907401089136090614463870778709381736263809707400725019091429125845487171441164531155663740219039691930900076047013825280573641068088236304420047737329795998451000716703747170134692590304818542205817210842250885307561288735607148249668854986109186957240273845829706342926855392742289887459014278990569195762896222464876829897058599122559146098522200325694500972132667186797743748771914598619071955532634556534030116001062767162145438439006094210413913552168769738220683234847566852047308221745620550893175556425982188195411246789744898346973526835341334512862887067018323997552217147434151094111931567857803512053252167022820188340321785802874094303981515686497669215614589311051112806810249341175794209997814672723775682268675337649544437509705188713437385306844441538107778541095031806854979015264684123471835656556158574410243185577941461314529329750471200717348440069276903381847437655553438559640266938239302644189578593181988086214193349392282495669444425259914491950128420925189167861899992664088192437363360815951524028338700503589691417371702473276347321645943711576502947618524126488958835018951459071124535156185763553955479171432898239337769472731619582122137773841199639391879495125788823708343985304257267241522285072507001276923349125921404543065110803002700296405450764505508018304439848583546049469536348864131533859634368029851602591023823820466273857349569030510997016843867528295892012744915384819155714088470590535073846373321094962129737398209968824104047432371036804500456917705574619586748595636869158290283635685465017293640356909655235044221697521604279392745963562236318528073689548511082197604681368026040972965388316223080905139553274168473371673089855660508262199714081106783293326280127000317124276649168303235785912686050469715110359166551962324100723275818240463278823042122574823944593291069136531943023770837603722291336595702923885125559268695158455665665431993089958834549848672130021047173509886606736693315267828301664255305395429622064142085707879142803553775321412700271114939161566806179409868834570703120731975564232826430799474645782286818898364684548051778711239413934720449182573290884529885816476143801347297484229531107431610591610586383971558764147245529667414521122266397030115314263187155920639237584715506134307462736616946145152587000298770925282097910783440410398922159013937933370145148277255747849549869682126835566032928477956017332915586851816105505130463705481199864358881750363414252507858181713649916418923373872047241449679607014623059006646026193546993456487162771999738575338680582422941045749079684908991831746342910340416478705399752076510447361737059853099725999625258810909250338392320277559485647032963905121920962186179414198966603232737240691095929692727195641718704081367563533579507071423502487385778410155469033771159440483692537327679256032120731053266952863379735772809939402504602717981916954878030890477687697106656844633240366845163306669564982462168087911592257963111917288447795902804703893824449887577859363556017589577871701209333630013165592729513329327944842348743384535192572021028979313436368996965627458938042134984775778429966385981176964959167841114116744759001473253372062052902523053924071937693544081533240825129830810204386654259073795519547180933261613441231773508021448886124465663049990195447393760784059062812963584534751527042623252191137138472757625937940343531362957847885301880141930159377559659790526572809868073874693090860973029141583216075365568335393855254912976303800229238294680242260431386676553813194384316928043471634166554769809234862217562480620157422805224183542813047705682017770452784664556175201714946162345574264509407497335748793885206324574984053478663020265414344627865688812873659983219080337422118794158226932265374470282619603889186440440392428456630432301600370117755373431431841655762274070055801593252300160349246455900212292017871619216453126301246380466065789460893080288858871071926102854388163737414925897908027791471912782317136571794816975507945066628834754690265912580383794262649033697193418098679489172707238232238396260869019838397539097545620045719208796030384077880451512003349226697844301113568633369998453691850669041960566847195130884917343093292292196883769075912088441405632404878476307715608021791465036427410691809446365981866845749395527716233230893856662549267299598320546012384017740231401958788749377173852540550722066921037908267601867431976181733018469055878398605218659177406981222463285832559018212680832583926975170085617651144373014818773120832481553127333359997157789608638546070923361392761908319800831106255669600160847216894082566142361379069394325963100679066880327356462773125060246092236928300986588388505792491730488566893092368597335305218173467596394144901095575859929871304957387535364437189236425634217347655486704137532530383741756428431642517596843628115719387731312804722491999517601298575580612535494070030390711201269584019963346423517244610516225352229603487642458211357847533131084594134477679462114836159673005096496903101790127562653569932760279632829110422560741124233975956614184423943573030337877197722833541700306961479821114560215418139717885728581494930377414330891680914413329336093487717755426572877840990058242741743326861926927077518226916303871816927774232475642300722794606497335877998205581339086915747935412263389475740755603971655214607511023078708995459559653272346964161814547104641213468068646752277564295926073994960413158049180498880182496611134201466515887404652480868660229356716347920807640015653701437511148561301663662737490759829271765328944388803181639713905102711315371028388324768680561546305723004233251782738033779119770435176951969255347544211419208928987877938082515613865074684939543075971995116840430365417225001289177913339225058450987844576027763315689425733755975535051928500824379987161064809393935536854184818373119100877700295752440945031370557324848025819345413121296112932557775080786812120523473923256729767237983357003228935953663733990134674159149018841043427607244206494797946333361820590347422982523259576833929748283108139185887159090337277041577551455863734248886303022285740110882215229072133818441841673208679283561443680474977220010466901696695735483487175780232017976085951055917045434333100908119042359697159909643521311609840103583668060205507559116277500457880265978558418420773086527900568694019131678422111566678633216676493227245564183060442020172111223412118555596720764620655570384518671208126168605720132017246301893514150223089058474643366736983273981856429970503260394826035982949321130487543758681982044372767501421236540814396322349905575909816477895456671643686810093811939896196753610259100494954962957559810340229788644347721781690008292639293727961938410511981871702116149022459991544784550466366689326563354612450539654811795671783662515449955404200626148827176752832909629723585694062129931446873955259685386365706399140583295759779840474549995459452503388693147198516290510343385266486464100875296136782751768818504448389649601830888394546092396171353392729165281237301519359998688210177482924169088372543303940171407210243437701606148626542222155667628087551538984645551754792193670135469111712578583885854612355721421424911635434106969448586764724949741942460028909363792870186787758908965750580687694429421058222221891565138090869119653956230470223239445741479619977905344909067813345751561375592132487330388941648876687367596055404494666489231053451380756463304530863036208329435541961348247008931435937815219726596732970216539551442415495897625531478952199383956918262514377521986297524447895411939533988121155121603616859224801294947833302578432555077662529874201281678243724825174214351025766543092490813919645713539111101202733792204913917048101848733466972705515887441771748341521908694725757765730356525536875766569728613043054704491418364904771607327111778358022957501369137266107019521374954057198763252350837572480191118467509819805821051719955161217558232536208144855592560135695612223838784191478560173830003034023629840254991443191097467852029669723657910001043832940189928712593737371896883061356528664431534561743756615910977908827120111657314746010745305801957089327114679275764096761891894192326269605536129476087237627014641214078821709899761674938890886600872460772091408571269397823012419419483166465907608589396569326474209055336434671260012646327639288256337236430569806440780823190195585922752614480199765532149158536572419582556571910217021165255999602608974706746297433861896642846619422110639759178555552567522049287269875454133774368300297387596408190992116852557718847896872736991535053981909523438382252270299554822299845166312083680707732868686164148663072828429180628935808987034636172152508252590152595739191239897205150181519557180285610037004082670006317012451858366481804866181477785189846202675695673208169326923784808594393732399862449129350155398483266820868230330285925790748656218630970847194762168724036780913675811409019510228400019101682218801704611227320988070663529600162004159285102371249318747725234478790995082420072411896082869286590939989731568073201973846663462316651942596568596552001331136429645852024991912640445293723927089535662056131521019129556488933910331657613160812774214234969265460857143003677171990137396036028036166682562875836835330248811380337000592469878546405815438545484160384726509575852970420269412153824284752393650557487945133434916257527460498919791864681158462188634394894961253719270097112172219704415819185963380615038678905522709362448229165007864356293127300656285813769323493466839790844347057850840671743554461409466525993124579617938322609858478109786455659319744523873411312057176435806120826121581254957355845691973249330090933037453924201236551589816731600072350618805881852702376277467106790002559054179925169378463965240457182597844861509799565440738303866151317222410117271630719484800064612989013421897326939653934544853514105539683268651694573904648894071862757773061143607578296865577588896954963033646647646678460574657403679998038507654226167667357154583820181808973878734721517582866732921282966054590440934485758661129861393771446681672776666215687000843235698608696819058353179274540951412690446841514824578826899335910816592229931246512430721681362184867395044134180710613983283699079958203083731014998168150516175483705236017635253573644619418185295757763581499826365366023525864028037113077246789442671546371856687488530301395825916622774650979968948257543911713287649137803027339738854079006847287177473683959969325630591286283308834121638595202562879025818258947209101419303843260258205108368444152940745147463186136557173166162367980406047353692356492738648627573784075888471211724414012746117221185042032523873906932171473674159099437216638650117343724312503607701846585964652243730251134325461038350552052094159098337541547242820034538933126818355700725878576619160800693171213322133356824887265660668524549384308222191613889877297356508117864036221903200418878846520017234283417069030242477112655814220601616479182119460801399631249648942506604315977756387501085543062765584467047021305032394421952181248895916937002819754486809508354565544873472026849750753547717449389626714564628047211191279735549083152598023097814783309170936600644944412165489071727656347023961777391928335867533433082223941390591909948331374660610116659126349596755320437683230381605311009904618503098282078441811975654480293845867227601401540368708261003476349158815801679372190277188733355557276828651567033898373295328285849764273580645140357980587836622132924889553086772785660630264011621265461126928877064868013240327733518977466666432751489956988378422710190286620425815299382020547231668755397829482782164426854722489478883466060095796264794505247377561266505637717063938428696732276092713673103420632319909709207126298539839498407205862923581421523930698804949635795325071832621067848109133930735644173502655004930733751070660912847101206159616483286163635217573957447336828273367085363203264101752434523951881484818053127220498386036315755175021771970840774011439769722449339327658315379632209654676020524408528709858467504774300250253632905850763821168302337639873840889938856783652174125896523435028937243794750184252989943099456913105395740055567902992012581904136201430815546974585704774052745138675652427019220572774105895802487866521476166548652882349826476338922771971890691880504121587033172110652443626939139669675802184136597873479712457428728401282680268560836048438043431539033087843158398095432830169653044692971192561698269745398822152229278425436554447347702824906629404122192506052173263723180345099284327418762141658892253487844738034134795301741216327353772083965699192582810123627955823701659204167825645378306421499275783087477738640211570379944484435168146353861575998376789906457471191621802156758014504174687267268795256387100207971576305927813175218174657931157935477441468952452297194357568697922401349489307104047739642481188271903707887255383744538209327759343537547977899689700185224467447856809543489604215790638015723491406139169522580632833818034233498879276794931342575482914824393813434069174430785146554326280412585732798663666708656772869197620918301207598060854471775983591787785867150068747732456745033083705933526048815857046824135463904355194379983176241277510491526945858453145431823323119551283368226516681318352469286514011820727767916140407823183303589350738377673793131636238066459925788180065121819338665077106509409702688381783691016743315042086664003792978908179922624142491080582086538653542345181820744619370867357732336408802725150368839169496638283441480721292784643723848817075258701922838953777333993214241301530529183867706424923941507290997489757162647658670629912284929463367045014525464320365104690657733880801028188514814679602385223435910039976221566415206653778927997053841354875306265592551658486596753496775113564217508137198734581893910979110682497589430647171396608016996226393101636410296978366546829127081944271433919866983510460042808745892628819162743886365516641995161208674199725931228750629717661958755566671808230699352910106689540745857718593543867955190000241070424873848138947300284010060308605948958620409646442228337926404825925639078255564182687297407109608127917522297067466241672058014923992852634652152248259925040837012317653175023527464359908882422817512408046459190011284015411688721961629328064507193511330848738411760360796125469266697361751366150821558972570278698745723912687935383075011360489800637271826950607396473557931267854073938247799070137769770399243358062873983812115535460729010440287667003378782737914856627086607821936996040017013015981723568136524212550762705475055752880266102196948924303227489796255698131566546739040226148683235309741010482711261830387738186090293752984686835646411098390039251322362433505042559023550387765245338276556761224265323349780989442848274822775726525852896583003198753149451661429353989222851605309789684325012138446055130008482592295792514160629834416829716341490411052935031701239715570369735149581980239757825917454059344794203745710943995902788235292222090841231992152633648827070240098095450132400513649604327537375621476233371721742525195927877107608153806811135768103991857048165054388453569324710565079910362941281039611422323826007674379776277420328851251421840651918432591553224279123829632960717027319547320231172985225510471849985708838891474676975495946003242536434913115103659219231825336323147212157654492703069381529379542847492816027963814593916122101821327446148564311904463187412472681346435063938273171334248836021409960122951594253981146316783108292804214454320603972929131142529992245560748974415506087348173069905103571203556725112554494906061068284385108697313717122405007776556211479471588274885659077951109723013639654765751576657026035059162455119060037286531441338617581964854862511904969494311104638087888640066614019107453090155387666234996897641518778718537948417446117778465152254350893029894773465337416571030468937783747995410098132239724738907724210588144088530821597997577047768807861961149650240874177090189204473154673718872321599423074214201794547247545181793402061688264637523199484794253480716529568320695569654305304599374219329574024801661073796706877831154520037259828838137689448079018364731491200022553025476867085715310296234507233247629318543247730687069909762285920464830252541696309028033919560343256598995845286519319747961499380481007742666145000648559826013284831349803578619164042568097194185124922555125445984212079165790898805407712470860359660565098433899840268625942267862616758516284036197170875307125015443501808225702048941163368480379339862752676916622541903897293704944348625543348967497570844810360520927165114375512045739913810048901145524535875857481641829515599708621722947775356212537166173174065957001843766507350921974168170977756427720877482485448532142596563769906611463360295701684187498868512920582964503583712722031905419119291081169049510921462573820766088019271290581952173806785971428118004285234761223534989947651672161955321643370390365947591387453487726191117322506844256335353281195523466591476665794655245621781139893592276701753924372236775303592672916584476282292756668529573638515762583881489139006457225265497558366091514857070807526018181126748562733557867393514475463823249965494462909769861453508240648130981216686227630262969240536936254467467092531363937155065781615738672692707226322602802070239402398937091590815587903143867687636505369690414074015752016794003843671707778829401086464613425335207421101075142398840520219097705164930028993268338113358983927942208976198851382465332554181992543990136465319587396842986535313394615763680257086013328377672530609547761291206081140612578166655544669945447441313349034627711122707186762562462594749453877491418472369633142232743195150557342524250466638234480296812775084660789547062913236921604677426060648082354753000922776397858444077472798363765891385259959958563420392380705742742019927791284257008661579283997111104856655277889057506649796084816838040097795449177064551705068245269140651087221023753649845358952447438741194271718564310596590911638588266687347238573909656226289495099461369535956183981037892905280196739506387613610584792667018083555978279408094113815232328333885638340123593094141912511132617462609416891917599182863571867629730473718545964984580599356603848405887754625662420040489368771692240610560450712154222078461387406183676857969364101907460209907859537315419916851637878895104815259111816789871223662771729852039761452684439118801173014900989676473100754095067808551049622913151626413633394434195191095949926533046874365174937603988925939387481501937808870230746992621647768212916372648439422853894169518522465108932805821144313560941292472946187538770840308000894342234426492299672069780111359803031790865077621354738497345854393521475879469910344880516997865771137924661854233201515870543092850800904866567456881278846384932368809865684472135271886154636909054787164709841966871263436597731415463695835124340538215105936873681765019408544456915139755664516387146144059400824950231703538362613425484183006384504324436275348180215841483977641123855862411696253304348426620899592580996998994630074925890888076187020183198201015300833485643477804559151789189401820457950601139604401181239283925222032142431900846852303847301451810004052155748125943861194316159391983527366458185045885502669893996438305474793076555373998949687763679461413637694702637514136977078241809572008431938402982977341466933031286925831926215403297483454809975515538730909417217592870951145706452678167181143438316002512144982853030665328868137137961728314836381343147643273901838971823444411375874929925780233309634520065638229125043321598588754759186109078527887133755302493191417318843453210171140603852564397809659766847973501900415585889760769165194769081435136089932718199858970379994885188363812430013159345812531665841799199876208487981450370937450989224887693594549616154416327605141625319031667741327625887491279677877951764379457812520666440178009456516035380590810329558188904414307797322905724870410969270639190571626149876537961476718535150579092070676100756558288937231772030508505238491387271860279387775318173774882302947307318073486409494754659763018367895125020224090204062026512538424160882348510252773157281236327370438560424783003355956111741448256458519785215930722564845158488111512878972205730572637055852919222736236453069354752111231171039979610209741205197422089993033275301585428405548211004004333727923968871659475503198823011350429478217591140076611454175298018336507137171065531937343782689202478585182957739816344607546921285969455567373515089724779277046929508018953770625448281213778014347343345686048865766326962838239634353828897661190823517151411353110546528811399933123266808204985635285946887088079003248544068989068895313676083730715488974347536990130327107747099261402931880839482387423724877798116749521618307581300860063040243983307400296180708333319207198315191220687868971047377693207929968828074089019627501202395641668122893660499219840485810282595285951669908891920318166127739220466128681927412886896441733474076426149289894559750781798586473598025560315381727850232308430924669918296388394069766095921208336932776940761837980060475176099302064919769005945868861316033431254645650801501909226466281953739673362746480612377189878373479410382486944341314549233504858440976976414500622312667266545361570506879523760015791126355403373597133786497661488324083682791481331161345844028029261013925247522421412157086837853859828400751470781254327038707855744940167754091535229976509315993241180597859180876115351695626518051462793417645112638327210361417898060134362216897332253718943355273485449134205458734586776740109989669415554390174217789272234637817365478078902018746146395791141868303144517015454332238085089437981359818821089671518997339098778981408497813990226404303285397874279964489637106435731091871917966892721993399871838332856734001709386573384857075559383741721179599205277835050846134246290191562899272416290690256217048961945006571902028804130433407345715820562788725015204545456503091729129357575683263665002668830670065235824087190537259241007629923780105905884153060561512337374428241879010809044802342530763629358902533036579138463246420645418225701645112489185419241004446801832594803806621959569482320272032725254429633287060805158352339697292754450212881691302506664837920840706276755382697535775921721811135409426246710383352001916860100867660699900456590024764087044456007598661088994953953530188455459267660552583050428052690839958513956732573913737581868061411443595775004698110348618314988149420934633718188108135934766768082536064410029756737171769300774363857016570832054961871217279666513386833123760710003730226871037140024319112892373062841979688374212585609637444675568149014730636087193762381783820078571070770924341498498858365578216398322089289812876552005640852875277902334089554286751312781268396328186959700981804629338196137966915418867516494421801971994207405853027217242493565536641493664402072051372824912216189432441098045300613040374315147574122084502483143439316470977813323538484720718787859053750028832599578248162607785640108004467469231929527868896973633119072457877604980452406122307670139094301091869521093009034597056489773704945334517763387917520678951121890513614351585752692849896655270206576254236189370834359624514018727256726768197907999760659191638256292662819333541160586697172999137533979754927191179031458359408906188135503596850108380101429962831543927279378151167559945204476354113851488410077098721304235594075509242691085501052162140437626836124093932805477319975183705368594915983517469040464788001083240334004668759880229551016592856270664401811802768973094624306715541161210963331582477129425583349356433780096270045231707668625835113763503272811298691180516435483381483917655980725249255241608749884767587951770266341704225838271130351621426060736458341949349589091274269853625353580487577187972272789150643675364397250849534311316981661318003623093177271601113886448013772572721376497999461838442000545009011324206936967851175669291838655150617771075028258015935221235116543125168540356315510278107975675046815048239473271417283974536448444076269196802510712703499382523523094367328506080024725952690754901260351267614624466349731494654346129964737255774828441938106496725536931498587044393988827508281778001890777056070547042667864309225872757216229388420210364997701667910260044262242801564629413684731023324821636446574776194213835655249476840607167359719709699203035106845945608183865223772878981460159283410055771236033255545368941697315744199485118515107752757213741257841764032370682195235887001671967248252286652612551413452627806747646556773704728367075062731705186049952885255588952367673123855536583197886606420760103398168277071370533456290822145779170011604850494072808867304315862317581120498821185838794297898480027522210797563933041896328748389565523787960794634140184419717860335657693342426830430801916052438467596142530832842840375057572342274166198049467595427500332083799064747078347197693858621854870921166818856138877709042328982265210328296832860885224438544119266529762756674869118910839667074036866728192722260819201891596755066633989333338299368573446385921864113761946061250538822428262583340500367390247049898050695718989846454017671992100257308495436979540772258177856707072928768703891469570061550142339936158901989595781195916665190251378894228503082012445248037469650972638087645460578233423799500675693322392769963105397701254561353945783664453473794039871793482112172839081356994213008342960740148354471110964575987145509378922386110953541629497829688995935868903907583950348765132160228363099420401309949960298396498692750950142949396820349574632940219168815749427247135130202239541758276228157662485332357002560553635445916412494529564543501481571646739228696877618197653529414125833416651803238139418513452069637021655106662821750066371993914807995602327764716032710627005014064828658047115672968976353015907261343372814415206813458167245119234781875122575505672298009368075365755818179693081399367846261911467242152775640346308440698898701338587207198207161639579881344361114410479533094017666487307972582815026651133065543456608314645693368000454902258116570268858095661639877193723040377824949541878889531000456693414621051631606422268323357285869139513435831564364968377484588866672907385714640907170927618775206011606057324377302684141910606086537983734348692819083834386356301093663882212004583311543809950922129007414477692401103140349384716641884604512896578413712869963761252982248979294605046434839766212354647888637088940887813675796699223044874722489120358465012434362735461096323359540780179238554160242001554417595378123785327123289094114907058198819959637412658907548700748958165864221333526869786985169439799353063007952685218384442640802399826495342139234458494992216999922845235203255689626107911644363513417122506922995222586190015738814298483091095833959327115778051720045888776892912494734623756238860428119206881521415833376840190023968278608878660202492035263290460404004086580268519503438791277896970332227491449750208746140537590898046395152643182806311468669743963237621861412878621750883689755958689834348129674947730573201978107426514126438700650547231363938130171742603107308419417253230436932532286020069625008127430622661199349723236189067152405432211569318686144417946430537255053454486940018881449976698524403153973714627214600513696872135984158900897069694036497745973737685081203521992615464001929226911220456577624643340335768244373260508394450199047360190057777702057353038730285127053705812164969073078684685419833198369626541459385009236377133861045995107407326010576261871392274468453498557586563583960916346317992334687945305439146902253985621809878237556807712868702322096261945745299089577439298430235095288169403967020367368008843307660807926448956056728991704128766645930634227294752144650716348353494827409852964937233508292242831341234642697398352687087670303127464603157310715744670699238774363265000947636592562499883658493767650032972458942978870307944944920016837089836324659484301132361904571221725050498391700876813048932505886569904765157286089491202383086386067499005127592497420701031339967660290281012198233333855968778027899776542503440983245887671643064824473427055922897493217470571588555045973447313329822619671940670020552596385977843411048457764639105635150816409172495033898060818381796808019314596597828093182194711769123915537097762282745228169524630079282678196361784215567924329960395516527626908826745260633039854796563592677272033060946503345260261409230220923451578765002868612033320355990464196050624915934907219575165666320986783262461981042812626146795376991936127038161449022385243237920801435412627439997495238049307018768776964834426979204513369864801860786397014501244303286587398987598804491308284389092624223203792081052232360680861007652149442655116449814370262044511849646843125488450659426394138349816756075027447508014079822069094180474882209674067189283428897347085212064294032868105903436089833219121923257621084136827710669432517363239298930406090541628019621607369449910114822528060181966086929656841490191831237698410891905824207796076966784959007631456442057163767206163568974162004061429013490745019880480483595967857806345090248151991285654817263560615317365475374799429290414055902244618021251415112182758946727559422472986785408744191006205846763152001558317511197242226723843642390449104988229086680332722438630469578565873883297115838084426947273075880488863709289592490077715269954431328379427279485706012310173169186460419569144494551344164273156252439660853204375907504534371519569959641588456097184591148301484262705495346787785411247551275811780375871920519757843261511396658453403537323420923034859480890854256977670443775658718439818469563015349081223902394071404756998746082617126720685148438269074093128237777176116492006299366564544685727359017192826302343528139005125816398298723814671985893518567369427767510406632022704602004808305927550162962999313351764944008535622892006445185977571752438734825421301766762435470392018161953952186169247722818272772581308562134016719842695156592006498629318216131696714103517771018938548144750119777215788770960672286197930214067888566741280014868167543641927209806924192336306999882789967529789274354063034206067534569701077573984678104446279282313987329062760024979271708778254391102426757195753428377808279072701069863518836762762984118639348326156288233442182061239157830680934942563369989616893103528560804767434513316850590603996874879842366950399875456312383908067786366171970246375546060110619275708665368570188652998295793958914001485571410166406856299634622328729908191795217288501190159301759116611193470987049362552877359787872579679195875941952649989550587571869444146646516450986733937344687525713519744614198222510493250004709098761102749126718087393317302618352187219675574874955577916966160231218546619380352344682015155333716997458873618354380682786169702467053522527058727267050242061140043048154346947718770632292266478570338218988159041588265116425933099399965394216427209604770886439046778798232920310133461429183372857703143359555314975566084197318496089275823906378686208938631524470438464764060470463442377990205185194251164630487977910973770642235557405330996303949630887662074390244998553310221158085771598464788282832159788106703714965385382171545954053317983065871651068312563589384996911146774003464521810243493182698042656105893111512859575636730631164918731054927629591134808628817213497984502819761440223046347321275684906502456645613119099977051044187150693344586415450648707935060414917225319208316822176684347164501411210803997831865423341763850551974142320166203234393974671622997007058482228257178715717661604493656025369334664141643989515531329917052724707984049442289731023349879969505333771477584533678516816261117911630019098357362850033733950693264093860687931106621892169409702061311715050841022700360702330367774251059386687881975126577360587150589586628531483449874204456554285652450232541521642162550327979308193706234841370474376925659080547813875326616965897008323536857984135462203589779497947668347002022292133585482843520781133665464205940699559469011097129212947324270070371926026192670642347518572679734468482295203901575008814529565798278745895645340362981530907222385471327491615301234705129165673094901328036392388861380072619243791776845315656748926206243463607769771628174597786930720728993360746483668175597545547802035477215615598449944491933241664154911507073307262450658853470016509255100597008075278194411132816457157383994332453767241679753010155660505697686903324040183898061024239593076741872401166349363451096398213413461013577813046394649119648471150769439298453877878021609683929857317804401157457027653456383738565070647104086321135185213600263352260360298623202956736230098108510877738567936255671203196908738919365648932716216457480462222929899158870222786792704636558128062100662073985715464698853525393624608384487530817540874503047317951434013143646431826837122692894549536608956484162579745955773665146990377942063693682850923092635602084932475042212899000474470431800343269315729575375872587142432620731148747134025384033824159301393694156485345983387343519681866320515030642206299684138231811993909919042061132922564654213217719466311866666382018072519875675243756206384154779289087626320251892555650720435624793598518301998668618568620798040204883499798704995922023089139637270856426885141164076336812154506473290072588013851876301483487816283414345316432560057451510643273349198314961741283594160676583913588677124692713747604620143634840345354585072618742338054541825683315162074658543909563490276299234481177729546018449961841160318924830747867282893071900056634628060636905898642406909576990227041026868339927937034600673232194531855962012804162363394640378007654402739843389378268993550813284921758631558758861823879894766984725149433588534820311959493891466918722525398332348193953662872870296096365151651000682007352540089291182286945758264051121160637939057739156295517057634163128384485026932445737929200295344724824440255204390861766862401037964082312900693819132848775579201621294406444611380666003934859463259082435971565849205689389550091473690689146630599323425096811420293838661071096069780486396467894020495273206182887988811657221960850136958957925867110605905639841281537324948023693943476939525217765463845046392092875994523390574686535789548814426344069419987582666841242994222143700563922078211393548538500196367799556339723395074062582057565024486716985131383200058077679745275559601799956399853041505046337738127456020801859639479640530223234859780495129082853245259176020281095015458852737707010649336566634579143623413331666341708302494631670880691880347351805913010756431598710395172203557293700364745883430557748305304118972971286031400220087907105783888755774321918180345199874460109247365190307870181564987086911616963472070039340660257544057053645621531217419745352098827274527697060945578503556621694720187427856319331918843887783480703269871534352534675385789374326576523186277167054287184136655463586629001672637718456456405384979514345124361861476062361016839239943225267376795202722438592373909694327660631550971674525149923334566991546751528726935862519273644598915317644413438526471233092449531087457163541884519444083480957454469723600566130095746277551744869227093146784100270587832932970904213330021628225055483898871608019792210922785251573598340892521715865991460568140004239423545319685307937635048407578844139141948928129825013049380007409160010260255857269219951060887069843081743924716462050978898052174820772935349724291005477767853465716172014858174140143674238983904800036852264476130943953043491560089995649166134189474733100998350208370157936848628287304957522295396713739009013654387203180267402365742187316940174293884678384055047676454754873242636968654970021281765202929220642996958784641317267901713391808244067920659873351190143450993888959414158815721849653781248868712839687415600799550348658277761243640492296779922904855835852188676603715973627559158217507432294313619854710744435642154105544486687964753243232429469367443683049882449784854451734957340976116856359384670570280603963662645336432927715894416080680720793058552490621030037310534803276387660117788959173465761784786910621973750284775133461347371570529274076552666563047729528370605645197730257322708607603357929419162796829317457544221135501928986390680073467998025610916894718309940459227437379077807460587635745123338239671320499736295548894875024517493198916539919070044240142254223879860687663210705312759698160321115829374241438492064954666612500463367111871282030631777730037109696028055936158473568993133414326031353139887064706466295199588551985465619621141681902972778363374281570384823444067631766932835256727131315854634035665232573277651435519929256526221754914555448229953530121685001472809470909782402150819659704302097016169466711285339727540069348285507836938666604903991267337722059479867350057488340193201956784830427119746449829081243697591137011970490102057294480481493185502719739635450032845999424132545752079442909796186374634181775808787047558510699505895730629006238079080774907770447388985487853265837595315711490336764221305062859563094967515940841492332196595643284146000435819835935522409950640055767959482373444155794530526101934717177843177783957995316143534502028841380147434032742572899293720849860086019313095314583680573612008050011432478184769350236374867508305139831445551842056540938349086242025187676229220748630622296260616920494624516385215063249513744713237721497371126617932220504570917520197242389851739708737243475418395240850184509653870013743900410191229361544200810791569518540761241969106194798093080084982132337911650689072788197231788594785143434929515654685408700986006045635522383878021033442689357236959681653007607835715640430063806046419323230829939197382459452631507263478487936528407542382023720578293833665157096076397285070740799637364078199828979418212788273938108891884651794224098192521503387403179896931182359854814695097036462576695414479278610135207406921530781683787320765038724055205746340911868284142300302362335986706604374658251994387097239324683475368318527096769088628530864397664592500906348635580895403894355151393430895184506417268903920990399254911274152179567378807339792869399869563964528816931994696863975652057013724508371913843032538236136279453643852401800659478668877899247165113438790930100366901312628355330973584252722036450522050294996204574196151146721081195281403808524136939669658506709622354393520629494377005054122360188716513271094390968721772294283670783265000990855915323881483043085926550258807212626526755717447724505461851244241730649600192805073835206046791801552680054995222853459413437517788106445366356998101145176585581199968849476184917370811067591899956691448779574910132759640137075646591308583060493893186973994869349909999859919251997413329351562096471082438994809752742423562279084989778546735509558456491258297388372644212527959019438875095019473950820869390501353720042983007310828948921581223870227949928933287058482936783487288422138229139530852007732752754146883567756775834346873344930772913413356151308694492885180436388432436008395894888719308160038325092873238554814914587240899201289952415038918540704643610911434943494188221935804891218367198913698497430149931585343449102773714393256129142597765749839054793283211310866958379223724027686608731080336569814547270923119881839232838971786500012835807481965350203308138455306323162562779584237213277746091511206823982748680153027413477783672703953535443988859894187567191299703391393073979112457421746765351840411669735580501962004954901381438856064345803938233774815804709317974434287737008950352901436035492266637969995016105614426572986741063437166732041211600148564011598848634534943186086003300326821543283810125354153692537522288276034755172849447870628242670098258364341975631278390062931492514086931368300123113711483799641783864602796642618186518051566444861085355717346095969970379034088755677986393434239357841238276977845551164550875278758491241803178775587106558309424239476057489659078521666074522228411364544750369415811123932009186677767909575200352995838603564063760446854250930816168893030064427423909341841071421499764303807200779588478543986617821245534347224484607574797294098515959111921529166419078576341075798806714581178441937251040444622005685935295673976963558986172184396201689141794864708073708601412525738088019248625071235098246804018815947997378799685253383223318947388703023854463816055513599092159790469337022018282252277391190003412654976235227307537450519597803013748449285909956796469373635932093306434420056341794760383442958380533521713653085693150841419732165900656566994353013429323468687706835597999179183421762243243193632696365983039125542727663856633401529996768447212191593817139140845881958190085426602285717951369321601100314371998857193652102758049714945430464753357630645588493906249016809577033369713565556800431759084330310465749419089289202465524858969035863117189657108291294804123765459778091908166337772055401682829678719776326666797631044456139106053591323343706085548652760098777012991499404688499985028365270685441628652920755127542391172950591753793671002734441322842400128934679586864123729275268790487157460035872991703841833717643633757069521742171199519932602220321672527180204626795026474947359999968605620579504041400978486580228128103533449912743012032349791032026656996568355553625287609767855130722501052278151742036129555633190844190350195916944628365477417485423780341534963284053209257692543005877136204183709055726460000805702542537853865926358470613427677189336748849996479515035064192718641248420087646941727584598726143890688575157357022993091255380495650869378840194079749551925547191918290884362046614415995247228309893438042130015157776721418192889316194560406892496826845842397677578688583261435163430692892253909385196072487500675876696925862124066853201276442518629088739237063159136639597083438354715227099476278049344787806752386942269385389656642163561729999901774021350473589332091987207880744227701262855611909806549526018048317778998726919544206953005689634310152983865576510241152573954088983045499833411771940195904591129727408622202289067430367785164130315838867627495441037080324994627889522272325609708549973493684010160648552532294997437307459089468319874125676009547191311853325996263526265002672347433847416748111106660517111601859076062187815397048857551415272760187984156920685408996978389352516001482028961786854772840825155678050379480365496289460959872562362011564104041166522078092613067735495040039654157004898790194989982160496110563243892594552598293087353475057279709486991662357755292397441668115215136207277255976681426821125240669599250929857023767629811005986954338302537829590518468331726143531733141442629509367708339083452302000735735434638200780147521499279230438977767705763253588767472433933200014668042908941758546534828441780068358191549611131311178908945215947994905491256531139239209753646399253908106334505765405774674935626739433847151776444081043806210105296125734298094658217379656418761179126857295253784550801195802570408843443013786530482575504301034486268820672296287541418503971377992886842201141296394055282987269714357024067154668333979900591951668959595098029581173070025659303585075167246484103350717417825307404284888539538287082897331878730319128580258670392610545393754159836646800303256948317433190237922259310564993060592562815923697851402379939335536860854622633419668857909429093281157454514343122236523509574253036930849764112345990686987092852171343732525262233822920036669203105374147521352093340669164115698166990040633079569514147939224619140324935499376707132109100223186240075829901026756125872490877546399316741546655327282523338082003132964280635845559443834280275061270987440057276188874871406279870673999031281150443918884101268442196304880428117678204598643500052146103610315183287509025546550343017522922114022598995512837366935672427454178325573389851696770608449985241718292977937432896148855371114872555570812143155978849903477016506098223718832070417582498994098629523182845497599706332937919415563772861727548504500258943593316442724530326456129438010044412502000668399871291275332153932394248712006493426085411518560344974640165206089569300961317821295327124796942990515877240932559492526178471017585505413853157451002561464348766211811724769845858569626628291561551115393064011981786205059653911566589477290388555738061138538855100797599508982889275502974161980914570150128310600665301998498158542890000255426063941894204327431634106678696056623740070574268280753887347215015525661573758714718709454868099171394821399140901673742659429771581552301542033449470929529575850771255268611404844900215824915417683306381382923413947494259063023695637380245864007135818955534157443507812447850339822441367897269040100729865318083179236914034442286047774669248592547794405130856671339723441386012349381618132993440380868531115683892717124578794804005777053795057150440351550860423402577050985819074255898274723831032001068028315021611401353161650585464251684043210800876609532476339802998045313800994483878763373119293059806758847574639624919104199714369125567902115130234825640848242920154237719540910952181942872657733253450305817370090403584649335191592738541537936109341023690305656818502586311011401405307259327576436792371281048770533178739036268352348249424873101015236847959477340327815340924816281389340027098343777520514504984060896159671541583249225147890382808071429202131457747701769582068596203311799619731644940389221148685771348378263265573071519752199925768190758065842391325684875536688086649039913731058748503923343280552494363060276300577240923407235131930283611392193988768790965678879882221943556820877394042760462641708459036875262736384866232921580781983034186855640421223822066851308358172896796855819450782141418230773245636904481371508216846637379027043374790089409666610827254028504526583470722256320791480672478127557798429010583534161264462209908488479225482571822904733412376143353559503181405608509219852904062965508986067779363250392939423443711273043108010454246992801359759319954000059712210009039317198806092482143912487369086114627270971272982907130499422544507243897674325052211521199554105508156859275140928842502429453683401730953511083856494405760324136603359847271871259017657559776295704068644227700003603975553239069421273998735341454687160301626726079389185045180783024058361347870013269160961262414463088622542088396009127611277922349241749212143779113301903107265666110646393531423542059610710469041747576388978918414068539671999059898368426877006177012265639221206647874696230143231604985844566838131014065298121508927017595462442533198832909467050290166363832383168671456052191881738604441766619069032841944507124714114517117875903103223113616722074159050618471529736323308634621445607826136202645477359065233314145941784846101562469004303870866925840618953522883001870061059554376438534942314460541860585785660256744216827819120964096363105780422724447618626105084796232086160554749274176931455737882607906234484791981898678566211528656660965055087401992783260553768622425343282918666309022079959430788688513852131143965408608268095896508866477559389788744137867231404910574861218645354357161083524575014517124717133004742973510828519854483291367975250069071112866887683724108824761529435969217800432331932461446919243237369551887440274390853175711383720198480669873013741688168863791835258195121400782506917332686937129699667014325450738336222978054139305577588995229314465182488149164346893448883536064929735220003847866886290848856791982654644796890499657161757012397225639266250205469144452585307411400097090960273969484149823480358159453317726478199170966777540385360981534439642832877676935253833728865685362754107304314426937789047634175967969618078465218899507959841639238419786097215538099356707521015737155839200419393595369609326246862578466867017338074523378568470537338628242956176619347729188843474671422258106826201557699051911911692301850927307374602245702753303259397800240569279993381208422604838573218601688354067586842936524118105460263757875670046466272888267240686343664052800991034474018039101141010791358432790243459676602638723208215828619929297514997352920940113975169716808243889597961200005575738945891847349716090951796332436471850014950659326676922440999520774503626136824571826663637378382630672221199999522646009372111247763283941320728597426917101989162648655975024444808571454219096144715551045049325867843195878653345623706263729939401917097488769637158061442887891962750999028847694045643111115379206545914279166021879666948397729201045846961070912232478424533024140669258280592873476722276753001850515842899308909351619529421803614856806729096379876582896407445722584343900543490144218136115110672324214790626329088277170685570720851054551232318311739520370316387068712362052673650196472032470984372751401112149548911864167651380165071959602174924163666511826750464768467001062497402267704637417775557579677527025499468691815460120588597055424479631939520465588277904104173162373307903536296988068816423904832761817521567260250953666774902124584761882608417803308536244609425698546693953205732841953695302862148823736328630483993172796908981323602747147102530529235044978229909142732670122336248772442337110099047078034515472791092458947360084836480979957545586087975316976789325268191354720815456874417290112553544550910350840796533037269524116345448228528181720107172330551469191566017009318150884271718788451081198977740708787882996871282275765053418394330752971584686692224358160877285685145479558076327040924232283469105779382195398077223129700729579581900035437812916560548089630444094099042806414656910549806685293524879997490927394405719565817876525987721661277640994445923374359857571123183023955739833840888365426536000533756655214846782302593186356608291530081579105544460168179336032105430223671698818677011666756874694162783197355091386448141831534139909878521139110792231511792882721197647968021522782653711013457643688683472991366782288321076555991161310147600054648849366535353873569949177321453837863426059358965534529697821444555736931112360918044738777348239711695013001606828549358438412609756581056380880948012130208250660632041734433682746410268593519259259202441395689941599956809410681682787369208003182699561531308558327895678182152793767824807145881327599868613818125126323221422920823432534476882154549686562898155874157838096491364854302459092565459179147087032434139858937004479670091629059141620806192852629792301070934191875093820381502701074532582517349456277773765440005381467211786075361743994120211674460098883163978856007238421051902478143060353618492674922916698515074334486031474114306136092349842937101882958895931979232949901993715963041157336502469080437200393478193459244646157051277245212233157730176697894963786197833289782508796900035420503105054547465238150609671349073989254277510308524552586439842376959453083090693497345377916673844126362084540854394837011382088171869618430770370701339598646167220268585714052624245397727498314757404939435434015308812044769506781757113790271826496243849453207694260260117906040598764296839003824763157276139554001063337026486608228430857828147612600665996278704904649205459233001966073304661847968257376880837987660458651934543627587285398549816880969956035648278008232261264758269665474727539553125349279108420165269398081958967802087726978265808577759512870097854151818471859126151181667803299088624483537564343041821869662455426331468237963570977720869619982008510969384283040466940211689593229161876061745260516445901431711254500109264944174982823176550996495413458262796094883241589005607163881857114573302592980880272405992312197420752771843064690628136523059365528274697782589519956482681356102999209331658167277462458826835067928718566516036621270149924461475054657742182005968783389474271387199640880261477487666020532740837948714345660271281212651977790760321311941257534695172682232330348406941711544595933006707120471743237264593892142503831289621606390710978511216261208692727938207819547193395558681967240620205141177590024480867700623602280877247253555667249453944217175319436899716416991109410334899983670893560210845606755221567767973205231553946267437481688426699733485938072925190031271595206243674928656200753748741069291865744499055932717171509936126019953603107759098712499853294969532180012780483215208721753181022455626650626269465974195235451520985877892019505407238106169164800288561471523000459703757390670357928615303892927392172483171411734439911303012085230950467007957941728353483869181858892013951748526859887363627979199291871564728657300262622545008812903297770206636220736694064889079147247047112254189453728571384949530061244355644844335680382237508414005327370357407375716290348043225145637454563449889295376730445170954799796447188354557085935507699361850516224002123380433315806769672008036516901819724655249979936887244981102759748486155802561094950091458995481221211263317401501747761077513794896811673074996561302218901736667852505410698377108507547122376079331372810723570619624897642121037291591149292856105833525693192343759731518022719503641850996114600155817025238845784483530661620121902306674971049059312059319349563094314089944755368937212189448265762350095900054318472597058582306747718147865627369115120215002780232622365266043691855518186506614367617578633323348419282425146422513811989164517090078634554440591560180494523093836001765580678479207620793298399968744218539196112532159353006853612956448548146654803007822699035227823158207338845516039131480827938768613977639843439639287096421685990298993059052488629763963710416168339682411223267068101751818033526528506185515702150493104556400695955326487593800493999722226296540876618108984569739177317982083352191824157041364319162302910639739275826649569652766195858153186824027823703074607281994375444078695244716619671565358341069497314246667341476200187622759851470992958738916122977824949881677536734871018560361071378552475495915219272459690181898153973266276902112133399414712367683613017860310000254643858442000355987127238835649556628121728138839981873196640049221010396234047231391018941011194666931321777222220854589689997142829579003700582193964368937941587152031852942858656945727468599003746412936173236160673438679271313561366870105391846388267062606025863478655504370928254797219981668199147074722183394666466156425191589282455492724378144614277896251619094813451436169492219245143114925601772588624048964829530142650545176386846388154543275407747259781452114309029810597703710694960748331100978345519634526204786875348975318800714468735143639788878364085388618531801680775564619483683549922961927388967286484867086026233019934377531291388135833926029562299911651752325689236823848135133700302510391993773964916366329719809057122231723404090891999122949526239549504595252601913215051379162054701308039354261712186430009723676178612663942952500629172121735170523267427574072350170376669149999563715437326743931807534065096870386775348659682146124504659259059451234144115191167014854525659039118465495229380644476294712425964682007767767335417974847350316201951836997010727972501549378361911915585479210658600845403113952727740141618083911357640326604150414137481536436181880405391509973396193867141400000364300867008087812920619662751819009677094583647068899599619449373065151733957440548214745669808375926651432407788869260106817208103195013129085510224699316106257967110233266659112668819078488393101089848740064212603134235967088011489997251206233379982319700803818204702155675942491049895481513754074450774204838511042368177591161123486815163764546504198752363588561508401456027167360642661603646714102908116190402289933378110537298783141472129580554818511707064517155367670628952406690624389497494015127110810882115240700630446746989620001636243335063509609924019138437337686082964429728879677220042246918682208800285974009067930539173899144816997205354343145908106511476751976100513654891152804633370710545529276437460433200612473564764235327903520702285857978415842995361142005729728280427088703282878372753953817319175802121445776155123570656781311085179588063150471121071919075311651575956995137973405724050325577881182655140098835254342858263259631644651574102337089294222632416242925012792210578600397346345009085641875623713915708192101773731253026256538233031675687849176440566759556560287043226247876270204079153647162469563719707142464465475905235346135642054459949629810809071304446466801146823734188168347459640916481788751058596210987256467656190620935481836789715895819295956434263223313142638204180054871066562581599023847890793497791147549429711694877634092869840167337145967839990973893140983161035940921804313155266023499584508777709856276282451794943930375090187276163445626909534098438548923871158575912597557717466332693311460328653214276114075335966725636696498211285053176362383207144496013647680658677964309221280866965967851412042935785096363906989182922741832150856425378332385097779690770293046328125722285227977950499718745898781563964308759752122817542468603768677982853625462195985518995799080912275169947931335421732751736817132456081186775852197044005956661907626709003584832896825942048412377876756402833144028254796727733475548661460042768405731928538832608693500598161596960624584249536849283779589534787799117068035530555758250000196722045504647506743613085646321042472157213746082624310660632391997978245963926820588372851128316825706829813966457959802493873994047386978188022510195725814194201434838851959479463423153019761402440288719607958226229673594830217964638189305643193863889328482961378052639478006648754307688415955333420279332553665927352557811669036411729116661366857684146666322822828226209837435365387322105495910995848643202977167238582957038958970955857026110478152852410341670916466764781464885661387165983527627159904916376042146194473743562005022470215067596592634084844322461835551958820679060525743557430678383958856771367654594822934642395068917090368306543737513910942112562269667118579315818022513272939092654853885048816982743461249956292760483035721744558153829829638719445047595224731638055304406351641839956586242571087468587872134905446109737130376141474182459769223052711011860143459131767469904167157567696996013004828390148751432007811061524020229117705798267249454389660317152708876942746013327258872861794746169959379183489874179403977365803921763983654761239868165745048467903574428743760939532803831567548349043110793617570104136020425766671603343882290842237182017821148503283387886665256967000159933206215578598403917211948923997579063538759341328497182347200807120531811666813885086582836065375556653513740720234325888746867421342228080205999224400599731012943245431481794480564174303481079846625988879964930194339915243227769806042720659048217083663656496762829273471406909170500991846563230547980498921750766473990457584888085093022990015473779330697656553674961511113377255314610794151391586791857769710820894961409911920876042719391258043452841825728315737540614082122854949098536200928144494011576748490330478452141081266559814555289101954141011920472659893286574733888066641927938666742744778266993602950367845445620719138797577718936170118921174347662303981279323529491189511174866267196923862265291817108890089205512705202597723567232420288545359801050270155812662186131868412713601112467642287797024499266838275264163517293890613917388385444028796906425882122006328309231612798945693574896439032412943086265789651600163423554942240100560770675303275550257194311649109030424010153493448145408009321041040452359482001710356925526417568400356881647991269788106390586534937117407746687433015724228037332577216091710043353304403586097879432205491777017788473953605678160120760825423345159514969121264225420011406124227446736883607226110373127776838761947757577333564013581456844000770404857532279707493190093527447146053544169403015651952287566685636954933150232100198243611120051074489896816422097425273933670672509630877779071892727323300043178727768517712786593651393340739518203318110307745799817322517493477150216763153520170270490728358707657352468708929341384159220083242094370429916387779655632678362363531545380687813604636815474854108752186772310678018094697592355158788709397125452273748631561476228728687055361136881420001194472149666552034626361119597651478733508191341922169890298425770449954209475625398065478454718577371432588059207562488529616416621873514774053271030110325916075175817692578522726994042845874801577908918103521926444490724875829140520714745508276766248341070714328693748878590043171378471011807976483105503147728654388069541181461029580084039491808154669594383953891916228990166750819266516795119246716600834160904062248769842198254439143679481093995816673524093661606886266437326499440886174825668892991632347979014021156692209250587767722792789558525895180132741419393337388410064160489692849709508842084459206860979359030017522846015019191295630714321283264391017457616958832581438744785513961464168628077759836884788083056765687055285659924374774510219847690570491435762642627351594155941701237900366576102780328816492536205024096369191224314908501552396656040934750219855930168508780003969974559195763526471532460044627535891297382293344515852717892343155132454964509044419803685710789465501621602943329228126621858017413026214691323484711415159666141715819554585461157022780195395562033596682188986685370037815871409146428188062635918303080014261391550415304491885242587712128143089757992703564483983509381290897400036372367188545039678723269934776820250529127115996416958834822427455887314585966334171610253356551964020330629036095800768214961943426516248928994593705987790186103715330991587741760382806779497215130100745256125792739799611447524748397907152605898945979971572694260595666846561300642948512146492126120783962980683499211462195995864045681823838929658565138334801908944907971865976148649640849982894315571327828121360241008316095866662608165993914119481696534508683390701550689606120929570746837577542170770026104398266309046502674703829204856857211457449770252548133287061535984680295639395643780854465032566401763022769498584184068925973143075673279506041484368975865746987579405308744802493850675241801725595855909213883241645716606413618629747696780667894431549766173054889872606718593165057670340971274602462075205940378000122792265612572823155121368125119317342176723275536024003330941657309270434550257565380992534399730804174968975769767494380401919433675046743749422714586885151462855802363524870546196406547317403790333438666895821123523109997855780545057537213153674995776702014610537432507904225549378238373038036419075929929573125668629336285557090842791191117673438235413025310583486065138426847291623674406342502168797147074679576934962829582657505313683245779766827284786601709975480510341902061157399991146697778486919183414514895880076531392730419930682432535430109575603000059715640716192927568836714915273643937502332445963607824976408972918774660373724402281641631040928996534109483241280922634897187360929245583034500117565079537483195177956070137551438803408224733444798120946677791868473003766669945979881065560861236904806887952907097254146007907827755064850184110777939713539137888821069017060474685074375545083519881124821903379067459520075986946257676994848303328814099894347034501597445397298495555376275646062337991253876244198701141653804573374910322821015676440492759719205557898082793131171393221907988592864609474124483122339679229559937087375892318714539798326078023372121601584306830516133261335594434155486379145165032499832785900895347412565689702402259845259562480869192852563639417134238307927396634309486477075734174450510358623334125224006057094750738829623121366233896289720040054828740233921235002545077495525205250886874284642722950738591158164553305513965742462931886776905629851325323609695710017903655688734599883738492709296138621912857964979858144706618611655034397987871960349390602361899614642098371538635372938404054783095709173644261630054260839558925959275619515347765369654419810564396032556835783489468512519025578073510608468042984569710455261203605533002710547604394272860409093453562895236027580063382246808418128181314907856908015456585296502159012862416838352078850396612907022754965495466760754431927168249247674544837790552340503123181237300909541075867759830058510461446882122599898728553579778587688553976042248247729847650037780387349901364708989427303035592384128246954253158542988980550590183075613014006876394069595968652586838316971877964571778571904063297039020627637096469878539580629551433986551925060413121633202802028763521334732088340649937346820921671256540701511204172180712749463475496056899203527308082290927717326038896059358782562127132329636218131661329186742117051016245254578115160856778381586353904253548762686546586514888693483141208117185771117355540204356973849301433202022969733860987843787786744645724727219133167349284054758186305984583742347355150867965840372952693135932261968460152527837949664440741247919401116255631858164217127821832644011487654057449985551039390556492833668013631227304490096477314008871136055725821938466442654002826938891921455525266845272834778198397496364693639459924736001920380976758200769876271508919784056064590625206035621904892231603570460670853514563776305019934627109538298648312469526161345419005719240367795588320185033759031718876842148288293550731931971343000558062105846566009050279134631808997511378080687107644021033416903424192065105810169755349737143319390047654627432036716525308858883584398929508728258617398830774652667402779212207911750138757012006173845364984870685238708803672126516905114308602282025342361737381614023820841691400354684629118192826826338956511808321215903553733747506825620835399666719456585698075150086824149155382743912594486740623353652592043634878542234583212512070037818623560518361016909242037153366620327257412162978586307991491123230114305527672012900254494267190720528162443936531578426812576416699540481318968830364415169237456854407369293463951601362415881007657360439226642868981341755330146584017409482354629497632030062396515752193092454777082972404788661979389577402284331020303519841101857864902137453708591370790771952010467825550555389225342581891760429580128602341854103401716051406767105058870319936753647417432579613595133762845696846248632724683454541611251772399093679607719195307250448491555025023011282640845754287556068990011164308917981966588085394340444656054246082468048552738062318734913862889768888025176418167628886687129679208926685442586976972109617739917413683061659480479777137529010166857455129874362043386418536427862109127152075006344223559047681444132067281797160820589938399507975067254199600113459654193645774765373763572833691986581619863951977692989325852842587399802630901051317229603288110941256326718216009595162254452878282209291007987258892385811173208165991277347540446714702692225753980708863685852869200697505830449609848107149565725649834387390377884546019829349579656017829192020214797698690280434591775948016124089354255448680356159417634243669177697664406444208355023105026207742833235280177170606080384236768931326288646106381813791588626258916893642764947021719319597662249708593329944144149543280171998964367745266909728210462884478014873560969824582720675145736401631548513431822257785624200266908632620626576050329214329954702587462614964386732194994175098081111033683865289289949910283664418644804587865421104819961043349649463926669570965434389382450481795662482895978750445849770135061940138607414349425159527756781599225126165411806863815155948609269937255849450584286672343400520672211166819880296484626304679412315378101297264582206795571971358461303091254838822504852787149292136503885043025236525710630201637041736207352343757992444953093338606091423844079625417891005146065958261825576919841122732493487328828385911315737299635393372713210481091527374143809576868825518694425646815301011708900843172117683390801570160269208570624492376099718776026592510312791721924611852075063929856181740893211845340639784426720061983115147541937343161336398155410302879585655419387465364629052241043704368624881252384291586487453446609251001679850000155649059189418567046665753552695667490834066763746344040762565015517747735164584540581372695253259190984372839898607367857035528537489893018469893744851125398158257081872285897221265423011804336097678762452057238861631601975250439947080314557418172033018375822548788005680693888400857309523730154494231025366183609140155535857384024989546158680286834919568702533905216876074662346585088986185396458299928372682163407872622823335014803528617877608513378175459643997084226124435969699790242426198995365322180587285598883399240241480614080118373842520173512870153093243638564993971312604269018524381469226508085102666832755429397822069606094640134452013200761974033638940877489310052929755939726602141577217436186365599957670058720881722927677336850815347670164817235348697377142206081680625376407149429556058492828884276702255776577074264889959892247080064491325754478902506799644772683970315573889701255032897108658840481584413001029851416173116184073988542511466397539643195937771910132648869793899313827547737982014355144239132013255741332646188067467374168184900632230789829851394161801676515906138824104544045768414817369291726019162768520728500146119744970716516002472801766586890646985998737646455104940008126637621900312566706155497260988462670245949665873783914884540029085997203883347320716470872022444495851329267702094622171531394155488846989116262433261905064883537873483773418395924065922547754680662834464775439655597655299228616066300075924611903934238019494362690076994603484970538595818656831110229810974234212079716968324607527653224757432150350434616523974052533546643076797692449921633779439576519800679495918409207279110206967615918848777865745049133787710226138782811046976204996329493625522761796859980830895443397543357044508271146399913619980081804044112339225577058315578620948141622206547512202122532153419764058870975471230278431693405570079067096486957845710287956757035309801980166128960388169634997786715970519329671179838025748204946681271917281627003664930365000663995897475941578816196269206398282872300276426509378479749799678282335973898030662085316992459549051657908221055574266781721232191404297591241303715022975660721517687769189177710802669983463530851287766540750950739883113844745642880441153933524722257761049340041527946267975971196132407198958249644269165623455810655314191860684227247075440890289079288317593725918248260735876966941927301829822571417387398767612580045446464064298382346301652126487690697500074267326659051073688926585918356770251360721909115769193421152484938628415890569038117116580139168494240152069919839304568177681466174537541166037203775894104966500342463001046825584153887828670502370085796088236043502385458218285335975481082399065115790708361162885479213487821939146813926828442695373225286980328864920613373414640129490673381817009398668827150600016571656298670617265306130319017855426847808024111485294487472092466482196634694275986990415388960999094496393625019552758897238779118268714999313762203731499168646177120707584648284420659136676081471121266439632273021711228303822487223889234425095872660634664600132731776340184490195577946351506162479966134152197492945457851293440487476355746300356779200373480644158425182201285025625044455182361261982743976698516325443163754925185256683719856517362140920678838284047677893763744158446133389805352569071675456412979451752881146061631542460750159624931794853573463833893275941454917048666867679250546685418056670170041033519321084742940429473680106395881882160983550281309361063718640628527427762578244680071387465466876406465630684664982593257762303184558522309032468380117811878129669228980095916886778958000551586743156318261724917623831357402519063115647574763152790689202971284632677009902234320586346275949004148582591530657509250647630649915269378867600565098715325789737327872769196516395764839828094574900761793379881331115745841316977324920157116373453480749860453060765986247750753380724094302566085309139012578152053758716983279758549574687335546843540959686370937059118550877223756169384570243600773617103422781640557184590250103882445990180427137145000060506205876516894391387942100804719716400610609193145695451865243905548335590187194555823449677685977682516512737161649475089101389034197999618712340675240332537751612693379014911876743988174509258385600813672572290928113620267896047691978441774657755262914010360233685943161138573546476448868736016938565597851320597305564734856762485151308508411702728057557311140172071278612860518041327681600083818206384212132578254595935289011116669979758052298115343122474278977852173830985706314808147290856772551647519723035398811092299192480824051241724635696411642625962394773925355852084818548875928492785953559280448609013520098496974762920994861764918081148238848009416742807648660473711642866947157735794453513364219447563028548857344428279812259375290417373024151439635115489831407956621918085590478879976069235829363715965101703302479917128688288016938755603029887247384967370732148790556728408388235323834795985638166776947124268209843990439014346184618633800614392130279022407548261508782741656502021860962003335668463384362133097503482224558859024670836465046536790441216086458633712484856644445049582768091726742646508254277419780002927222207539398499890755017895702895595495735670335078806070822537604661234808953631727811220655711862245117973429546331173358338701056074697968380131482112240165615466359321083914695399020338107970298919700203603349718117433762838108179584131332501949555456230776166898120739762322796011142036483150108439570575069448618484748098369629193241213840805384993335731008135445501101223425897407643709933985326834857033550431032561788811099063486171749016783439359305323081220781691654720952087005158526941543058365474060104140823324895155321014170160564469313339601423836461076748819679036088968912323529287329671166754816558348457205939829350323952358464018045318789926490215018255305303570417620976496924191853801378619675739747513954629142214518293877669444164453074061292560335771282122930247940748472637946408575888224418652732719115205315578990166196737288944501037981187566037062732969237363145008689038308259660060139337768384382940444286020738593671518403765097359128718612754785274337683212858562329142871415854660080409752279126227595700494227870254744299109352781656174213013277688355974669939319986142137240706284460958777715752407878357762697562146700947045389028405049398702610676117292360421618166483096872785814043667146746556786236341554936203250176024241073791240777668854690111062001091885690581245039802885102696007017092738517366933072064850926248140597796987896128539550448608222565930637840492775131055770472494361211542845021230558233740989878413475628514745632268122428868877854772101059064401706598384845033039887640151453110748086967105537021341552060578234591758679196859288999447229651474999810471537131122177423790399141997803480288788081743735055315616761095499248444428398332979820757319231217187069843372294804493962837059952711856893808812619375234604843029216268767622463819245663259009621802414131850063967644316924121224224311062347809467791646633904252306879693260278894814819949676498535623789216056067026857760824489854871747697691587962396031065637989971881235586385544169634792099014131838408340014965354556274867402535354372295397561393730488059694194853709287113166206303409975907462418699083975349199432670021726021307502616903896744538645128725794799756513446280342946646207173815876399493624941799045293126770039388752805934542720197755635427638913152842343212145500069935856584135535101438520112768463365841292513751187432025435928488511875862644878331863690464161116268679358139203914116757090826496599742691588071179762636179781208616226322809487736326007247199022514295734082545256649670132765143650465013738581185213969947328900163035948412178478013554396091019964969401529422449945041982442789058714042114700792204647354411096911358441485510615042999176222464574315707152557103154430670686885665590283518960173593908780936598868175265134296312909207831451997274967399341389929539768112891855588775192143215555931892581979379541810763093185874145925991105362206511998073125038984803074202826084366257914079529440053644263587845279028860691099095262033855647035178039097769933853329607036800075295637802843852210827258377155560027706371833659969009410247462038187238783898203922243528986247685483663925969624680409988278233923525156217434168539225952349311327892997796683039455807207281084826284323367805454876468287739921100306339957829660117154015195215364229435774839247905512070434691110995785618318442793660679472437559734085132104564771955907702505626757994876071490161221554220481081766284549558506406827761269909102595334229130257406224041635364453557556293786087278495490687922580948170879293229535681434486961033292656706513743016438684480019337442443446729424525780243233379732165829682760007135585561143335674685394362529846694835293299658419760818518974631291219729463157950385248897988833642915893496692826051688624018174961998015895058476827351126055389824981622278949819020096596253904550181509332194808933771759891916528730890537163682558285078045407822899361540761882854578869402828903655477836044943986265585801021103483738982436691137034631642008552297026879153894893828077057525338060750447264498902592127966430244950562766100870754280007310527107716991624231244274035507835880600234165220060715288270128654657634494358205010250515143395490815246736637040931356611916519196495158536429006327460788912271096276730311819651760002044123543321714809011966864546586277037117870216830020500308454046844686839096111204603231873960854128047797235186890725126214918695036655010075107556209925639793789644661128126169335921017635139460193516624066684238131004378127975736898314279002139866137712154894982062588654301001204806661757520124761338359587102043159319980267072623892201073943130370971532759402763042762719863436695886886123427302781167209965908330903426811940001917032649398666274106111483800864608237832863581596686320658765774299470842046849972827263151468319994945201334194666463739695993904690577350410778792829352267805626129148984783698216434290683421571769134874783425696250242264799238728374336805680241890853342162200594739279483964919384351710516528959539522191931582374943514421419912211332856374920452725569245546958099852373787736645103824076103196300214479862797139760331275548911996936517430482521935286666053786939746093526298066821091268844251944897064531750612253259936451223289047164536502987428159909469535641375714986033489483250390617447591500458144034936762805776615925249951015461999278336272116588729826447467999967342285932887016965975407450703332478738949820082179994094896674847120297282384854872484592593895207858368366931139076953734750921829556666961856198122153591505424039498200882439623889753492706583647428260259139354093089126897897568289068626592751623049201351782076617955326930034109863442232075428997282653966579045930855277595033963873842857305643794496998799992256929676465777686270082534460178489781241429520496281299365928527335786745841197294766056667213586821175625400515456476587662041710266964404511311653190915218705905464272907884897440218673152760058678103928058518459806716346479234129979210286934196663571704393331732150014199710978734340065804645451910292108565464273632420606454538592847839019794283389548268304245353362070938354422598794935669113893961161756783700004951275794479168891271056483949518397649036612119892358549587474566731266631905218709732659520221234221663045228278621484037394756301338883542769311539500392133127452855441197834162286479190998081035114649508558799086623214504015493867057631456200171517519451533690516530241644728209759508196780593983563397250060159283717662651055061578339767637336205579763802804355529960525267814026101059800364018176122080023626027827442042711786216555466830517873655687017791896312739525568220675752549479879690808531306500665768892836798573576106930985283964113507717737207493857085659512588131063981257555763984992881825462421435823807838310391996176956629920203482477306284390735137486517665033208993427175344991024469979550613179017808731130700871306793858675254838711776614490386846802442573602556576385427283325549682530869986667410448399876911892473996050361181342398114364761843781199044311898574130808821446379094106255200159333416471297364919038938209377020536869351279641437057369219654641896257439745955629537315590673790131577542966419463992832325225966657104521476640774719265456364795862175348803211333947682174298372658642995836996032681454390693879927697573772972232416629244449727410670267751318818266232638279622502467290431877202851871729176459809538100901351040384234962891592390752563341111467178211082031804515300484039780516143808016273114730433947107163590484132815802776098150856478748294484661671313641914592657468314404664313996126379477709930094952791409885404948649976084564718556878946747123284810415534678669607029713468418777119568510514476617150814497347914465680594725810460310740417631778144122444074374553770578532539814391084027347279249543756221705431278288365220862636342378494697982712482684317014036932238390101567211525310303942103235962922821197847113180756609731329739725127514103404257504155187188894998985029885098550556646264411133028443220611293618758625708125399323386054446645759111292825550000714169832252635319144937700885492165327198921340672566375761598660114374350622425886177284368648815377475137708710807155973453782499883924822712529676003767963197922636970751538225719161886574349186026830541812545076952953525444051680668391441314310256483301560412311689504209152906067956284716788423651778553732867781164891968291387568166850658857441463682017204641406704997952195010747582912859251441648660645187595533880744972673185834237655778855644003788253492146800229855446489100359075676298067662496754040085887444759252778915797752314924840663487141161752061380403715500371178450309495373487678284603936069076345363939324902508928883577633993448866213562112527422505927858451361785667979378504607980482836782017788660420124964978104061354511011652986764961599175633311003403574830408125864724941816587562798311486176681665062303816754370377090505575690493456749037410913364425490316919781370550637993276928152630156162333598456025161133265977337256702640067737884259193277875003185155096674670333391942812978732050889806314014088811538447330321737213583643730267403703443900492365614881714231885134802548714510271366013655460010039669580079155702150255409646231187756246476315492206312884944161819753806025012470024215512702356888863163595645898119634361312489709560812536292164488325267943715225579082057959889381204360440016749263768882325529644055697723025690645086610659170903107483798087574784685877615255736682282494090417248575515840102031647738061959398950646672736434059385415628943371784154188459968832489609671620236484060090393528578780719531808877262756587314638111039058288379117448006377205048138497974522738455721369602203158490208582158926824566484460866536015798870867911175489321730479420800492999152227045966779267269403800257530089374527524845841801899935740232667973299299243889650758745981341460742051399133415888120548650835899956317561495252994117794443229094675208943330789569057503453522495135264809650925938761408374333338040677329432948114080358941212768644875349010892037809593222396334952082299965986183416892256831673133116192164561877155352117820867406988553903551188344387245125403070578905532784476066273565073068648413006873020606690469503949578909477237273052134117618307327536566730612392942532042531480918109947596801798281199464771330162441034465867331649312253698565297266120595632108073224721027296119282736731600615718582408840585342117126483296748861931881122315610317397122213094400777439803500607427485337239192561496886530248198422830171055798756213154748084075522066839222340798459341825704652795420295580257479285297492321318755404956328712542722352723875539155009738245812136136787036421027799354403237666096756403101969743304196167971411479290084670014713263766009710011439708365155680738284612448490438050333243312073858154064955047585022695678172511046499564146446690037709126838247299817051301988223338537397370439460329172529641084237608420228676841225020699151803870426900989039174249294114442142056245069418256571985490991239228241121419940903495694037870343090185140862094428729515866174140912207280679896210032055342548311999886326006820046592275805820971382578005892109471411613324393644266409058835988917654428352526659195258512752726412146318649983935032609479454677315892398793791599794022014865372793345443568022257037952817707294885214220515289647020660036905209700536366637928800484712316570504034819790367046982248057429333150037292367156416451606487433227305632059852393091141697698343200864399875964152221906441888036671801000407625529644520442221564981161520222039244732820356019495718256779854975849722697270009431401454274279227980161635720083733309316053279326568628387064030472576112483370854679319613102852887193105670548903977936853083608648992139249517716627521186478190032362719780367116349960871983088431361090242620428877866602349290889584328054064217458915030775289932721571104002437579432510496694901207757518881130193763952893600432622302220121457315350766723319524414028344294118603614224695870148917413488606091074639513465209620514699317313977421370723380763283045042374451452889372769387134400773415060850058248633649834767074294645344261036909447392153616186478966833684533054497486143489232112122783480929929708705328383841107679746530283152350404393862902018204049844693785564409517252869014447868332974199427049733407949525161757536027367843623616568058234823606759647447276459491088145158621187079297783406713827784671524335622663254131933313297580117603586153959728004245711746579266312573259559009651794966860838651725545518048801125209689915737639272972099172168633918113603026704067356878312412322146654399872509953190193556035464065050431562073741865916745259930517445855315969459454559273819550784792381894983973050952902101149896483126183860958296504857438122960758026482047634090661375156260244068861322345279715563854012329612923777756712223480128143094366938620888881596561438733342711481960545575231513381215861542223970159878782731986014342575451075554650983976067607069655949409196774130256754176351717733888234396203244848741721702335731964651512026356389447092419120162954400817435307192006916126318295520496090005023319721176301804555391162953054979920621751422709096062000677308555813478476861495035328334335573278837023549559990551413702223740194677589623623657818208785838712963307260724419809080283215915367240478982809997002780082390036301930982415724948780177414202350575241759433848976052379479133126492965996771289484855370690920813967195268441721199922705122742772056178302491121565662777687181273185184609042840917913186395823848912671548561783650544227761642886906189392485110175162707626769231430568165098372711379453335418741291701807287955473175188171885657585540882943671627291018565728674502415736919643712087339063247003282588407386577111630583771775816199879736546791720596541738118613563260570822146735278553238309217621306979074171874284917520790319531253955426260651895896055613251181026559492309080288181707844604540221163239818075881513344526168309229595556882174005088670596073969150116634057353737103676498225748924368330374936405693562624152700147487022995481518131740096949569684869999644887901903355321847888307128327970006282325904996554292814665354426399183739715608241405854784627308549243398432157134563052172183972718062719160386771123490342348029137111301556335280584511918973199740101498377953431482993133590714678940943048084240840149662246062993230904315397027734790482268483899298638632515721745697182691605446651061776973652857714773652518130882581048405959941666065685622936077980976328242767150165803961202276451149986539557584882154530810438518172852110573817283408067454577843528968683654966915773057776758335897591394643120537315666869034532147737204779624970832177800124647656030135044603899263117520835007621908597759132688821568178384806160096615402257380213624186083738227893382972684753426039409571548822186027826962611319997880435790000569535562075313442947476777343488559598515974391875003280242886084004319169429688888751443399512779784204236581589454363258599147023325985828322284679185152307781574226515801471461012577685803071942623163403687609785716450630651333186112504651341438826876643048466951876731199618294965822016836699149640940104530447872978256659533715411928519870751189100351126808118846178265335792615198254801597841418177850558571160536916218945900965808469082345775887058998107684201422086480883136017145864343272770271053492116123531870409670642827184270727611122716294960999582941367113184511701091730404870195103363832808047500374936524170135529539020674038014393557527923895410727107194875504931330353906534994982501260240518434768643366118192457727361915278548157794842541579877708234798858088660419378035250155701672484052870311771554545533297948665665661513649288061673025917367762605536197973227693885431903158563622851338452488460406812436008365430278463248053348795893624826763701331142939130363218398940084567616319519578441455934609593059020785319689235223049471829636709426183196366667471752315641189032022022381473335943326813303453339250553046058436157560526638760024250753451061525118213062064460220894616040833971643035422997911367854852626365684813502413952370639475605115156670266034458615209021999497103770503152356354450211630358115609935151551007077718837470895890438966812669626539128762835054349766369067105433718140585315714889952782348355867101221987865470798958710270548621886697896821709184225094647086170063422540164453729288718628924477479677612601321712523810970040415044711539900233441090275220110031134281605968664682736370433865794832880699329310913095187211902120432325498206258552707489671293104944023333878464671208174390489745498637329636549117107044777873645160629246505039986573263081026063267174096227618946981367501137810241736513906636164976081233821568995484488836987071415928536302511282042727252632890642377129122172798616582650552705594975367977385201899619573706737580755732525987032319137877192927041381241531129585228521411516016350932698269603364535355650555598501360180809027005324400883385609189341345629926253251055435114839245218654799665642524954393448124619813095337031699538534265423221665537572300326807618127593073175161670419945631331698822709432834854196531512275474566923884228535514759215803153833250401708109565752687282862740145246320320782302346832000612220316273488633666799867850444725479920817497989848506204241460675817329468589190150105955199657842120904771538934155360978935174253900058890484228758534092098003802996529198926214541518583842780803053158442494012271348221386390110643143585580648734864013618016269574933006641480817079084893971667021650700880469786341007940229429494267442102328677697480248470406627725734825651523121861704531463839710424648646899758030882305809169781112186426167579951817858438294921624650517621183642114368077092672099777791544234076653923143322899750223498613426510423703150921733499984646642578753694834663491386195518065554213135724533098715394317070625828210883725683842639510728299965290726750996809598091432914170588499838771634015482132589687628716304507359181295889358128561409292686715350730968565705204014797954106527103347668759842741685477710812415068446463563942244795640206053954685453957991931232683156039236420825732667056619672112274187343515708564094207900972598318212858146134434860576826155455158960228953983249968110279796247964908774534809012516932911496921798416677119420998831687847545866109109998574739545692288959437488491812763524185921449049779323294528227901151231143614422286423678001924357085178677339253041676350523038834821278407699688828475383668530421875476426297793418394916379782526221864217744873706739121120465383363697781734223633931980418542441797140139378757947825693928595782798821010417286794067842098946341110741066862866456710419696403643279481136243180813916209680078833330190086103364241958829708530811667186336046406799121003659421886130792828029852760961114691695903811979599268159935848014319050501973017866760497352220383922243504781922451624602445058669467226409755187623921552406969806534005904496219179033368814607206542008533347287498040626825614617635472890528134706958029835684183137109173641504886848265535691942420013273618950710293081712605854557655625761566420970433598595735173293441348665803565796025848994823324392000032722499896559991178617272643120655641107907744107594378936738205913750565867266701198228811988537216407403511673988820363681679466404178077604352995729654431374474047686060912526754137988245226945228912471446597462430640276206028924330491745165278677596316423895405309320329701722599748843504165606992835135618698403811268106905340097916969640409093227900659236832518170414912190359710391602664161647013512634807923318443580119095774403170779270237145634302418399148739668616460918551501670045736709637298966067294836270127735976037571484858101300039488786465886677795088876374532275541238742488674752779329028147809515557130315240088985212925884941140425583703318918383392707039500632552024224841925937469338369620726590509759525811252340576790786447856311968571671299990283071860944634168701799360484267446905040372013361969176830314919132427573152086075557836814252524889678301807050970454811202655701811033419986677075343536078840830444320485891417836121581041874926330949134637930244542215347514596166836580190112013906338061503418253359217774279477069117849351241137066182416887579026442437446429287964011787863835661751848702261605663472756862968103701257574591884788601488548238614408116054096158772815209396302148576168662021818038715732798200477431910118982517831983131499768393792640357366549799737002318327681788100303204859288861286271545224364633353197010823205966046274102476298911513677576882293823183093687981631149143976293642420663123677670007450038153875855524109235588262702850153572378588003284786129757165284028690649414884484102833770005812513396709997974516649803695227165288484178717099164557252701615371204410870291654637978676980747070241543140577866262950640806989252980825610720639068947014265669776183549077268150517231337701105243250633786342742919283998084166561022402387394125309865527420420731087892201894594487819123130465942886307076213228257994606525745221491419891479437833491083728010931046760357721621093646605822618743400596401872632615456981124996703876261185489511881711956228918925526715272437042445867095550975582339884705616298293673808792676778357441296049271034398982523799454111822292946723535036514066148078978800324386730117065906856056749800790384762255597339084179425925004102583581348152871187229555514550823033153610120356139980142176228430532865069586905178808203206043581704647316772882372610726183645072927646614903225749338162232669687062551415899039105157330487459058229708073505036003221652060545482957663986381381341041394582541767309578827272383322305372236094014465697464155660075159796135871400635559881553308299664841009681756754962918870700396866541118975421411770419419245137353544813872394749058649829690956210251864181256141459534634821700682194593645143525021550841743995179291218892366447105526219949081103113307872415377338812126198768381550268046414434818748283440476696809096665565361283548773834077149670464471776963748499030238588330381473495502746773105367037179247064478028243678050036490258536020133771770023264752081004844122339895184164247512371246740222704036012144926326254010977272210055283778020535435409781432816393677088105705812062196257498897676989802784093829000765076755685211833995953475747782144060287594491427915921371350578588283648210485697141503644632492014102373305734236351434002215316110358636752084917989997012452955098424979598225393726369933289900418926327017147897601710041075101233516180464274596706942806491505425021764942656723604065637429195211145398256585758048457873256847392707575132715670620091057658753564458286785283717305716003922143216253909031389127938771089899659527165913557112183193325436701564360647657261517658873108649061449029648346887829293053078576968874551541965087653641388475360382526577987096987536599155652558432448329013552300091387012087515529183279927540577579893339600414622107081868143975219034862382137575947750102977706231128319101832575756062547717521749806882442130647967148239097909481821211194355823181408477494047055796383616536445992818047106147114601176802973001579172408712331829101006818347178991584923750577288672074669401018653412298570886801867223662669588624895595703962613434389004778060304823703380326090236710102893146615707681631416437480886769688668865441914335936531313582763855775706537991832993568873746208905352002606011382490936385454700280603427219245023578655107135287690838129308541592389545898695040840769169056163415370276186201697605733940314900390365251745508676133945643849448563047220651486514159534418498923043479867579861705142491380771217626005217600377914231413941314058386635547336067681607642339334206792218092445983963198240426216524457573239879511362061854344237886999154817521045228224323717600114583735003995582450600053021050213314625985307120432576984256677309517110058322946623961777470779167251089143448652688702944465179414166795904132392491962068408056356390362293085348194736199017436295170293579917943859022385989210599746415890888457421809036542970193802392391464796493071368491307793015149262415545536106467523978779653880525982107629467803175113750155266221506722481559824721856295892621186818307077301344262576484578196456507157993345762489633749143677863972631259901344524017992967831763927762061152334681562282936273463418796773785680129650437931498195288990964611925319486722128173764684576893474112718037502658503861761284743247503793561050685081698544958926203002059909777282626763356429521683470595426994926541076966907237834107566485567392075495853955461226694525149805871586440617026544881569796579641286313970013457094872808868529242751819701700010967557835738606482145478802675664274005080335269842466008847242437907680211091711665348081694944030149579883492998145822497425360782079953863183554622240530014759891184214144615195925546222798370258096468258176750673296961318994855322730004913476286153498092405686702357851821234168967505339932140680946626443937051106025298785590503235120438525447365809079382120454470409333499263245696982389062498789419756636521434631574434906821729406168306601508621464210635301348677238714517155924502021521553125100867116354387334879625574273411930500629010776437024841232040898434236287919828581099593271676730813613736891575499213867123553180371965064165400665363836817343590482260997386235565543543243895848030216433583672842284205002991389112571403604649405847610592528307132051773289890206448402763632947582034245642225963919814939852130566571178640879634432023229251762963217514748112537308401614749078522449952483821241255229153803005704381182737568218053612517550300552084817571358574216402099142533435150972284514656431672005447437748192581356302794245044351637900875273243933447496563229365229939178550407752593006601157265061717159022877206072171696987126134892557163343396475268819926760489054382683053401327026383135213598490204196062816749001804278158877142890529428139377330439044821827854844335327461224868263788230435974506277135858766856584392097333393308615596074916435790249978077148392981113866689950399495930914089962034158229604485594444915530413251810212780019561667500749688099798194871757634204779737475927753490644177560418108126747604572509401912217340370676382720138308942304602074279330881495484761546315253941763485357392804236463345620577392870304616185934929946040621275418151980793397495253712225703926418436171439771802617305634873316064934404024028055978484996173450296090183381755452718038560936281745875914824348454040729817719122955666155322647179200572205575416237794612739670134565632294382672468128297530642359528977427661852518727798505563829993739101104228641809455342471137310179779622774733515895574904555784907205628672880227848754859104674747924075811791462624767000116682545063829027691137302488816818231796474858588149402083191984860343786175336159604396609579186449982291425353320366157678564443465077118300464450970272186798567325018821339953067748469619584705705055272596667091041058249077865606910929543837304026211967537345875462528588077305902424263955428731641349432363810010708080854025397710989508294513184083671045738438818014684204957547574914209651790015405508531074717841977942969145489793385338959109554939480813432483695867104233713511259283017612896076316411553531842056378575934075425792138830731965676190746888576743350235598569730300337156415751967619270218888610750794583920906262017636087478164030327238231908910846658870675622571248516297465935108020478523829396612024488035668949845451962448466729521568128551051006518223089593014998479069377364059757421985604591787354098543111623894183600380584086705176165154053537114763354429054423868494043778361307022215229064349022850452090063297163786727271593323502651683074934919512006712000120616306390833159347753378312780758156643022164137506454539110344649249342872090467710545836374636673408078228667615251224295137493112451974690946346675193956194690355143007737723691545612072329083664208111411060736918798796072536062756900096222531643023663646106726784389430947588599249176107641398289068812277166443490084855756594995735049330532581530285766236084948858612778437579284136411671505676461910791278813428149785030534073911679199605560948254521412071656497639949129599624707110177502721529777974088940711888381030877156447924878431485725778131820366921346634683059849575058243529637967948701428117134372412528620071080566545625399186101614910289666686056888279950996403458461319663858688537696105632120154092467396797958953419737991431776608672230755346403575532887452934772415210589842241230439415813889602902675562604245355766119172344535204879339229314480955678107325410448933382470721747348376965609262553871369187122795347351988865436598908961475956684219922294120704135734122633934122598262583985754394809354160317025647743463294465531135847226398937896664135626449674593414087229009007509925748631190805255870958228367697245578002409773979062031787962840681107721019253934758287164493926081057267691526688758477125382572959368984219078020186766040320306112938864866355865524110064796790535248248342622609665853337204819163415237206342342630714606943066776558348658583676997336388474387325440764557803625934269399190348773645124712698449325846333029928227475891685966802547153661226166825353409548086795815629307274346694846924133607989607612119838911153852441955748420885142364364424524256502910279057542929217277326917750620194746389144048107078622089226504795741630493557993381405406695768958715979533735395308724586015467642147133646760182127418790068813364495881410325952005474149359519112455557149575905067408315320332665995229076609156979193386051560825106660089178607122647343769262079122153100655593881231792617334226668957697853410999009055056130132289928250789784443900435216352367491750633762326719904874905710616440677425113442087707562431624235473809350524179279767911554728409150717239416513519271554101549693704932988642994233371242196310032190905588546707191466850736069710251274982488056770816839704610851693615992382995863796115971283570762797334238476905427412854615736201212423412091545613537127781147355559469553888816877904976331176912906802084394924858308666419077628054839627723858407082836520652917339200895478694461851152508050597455777836934436055521248495384090232077833043212664981769896408884694878008720201233951561268738066282581919474044510230055194131074157984633676120464561599676559457386968971425623162859627844606089375907813780373936741568696960684553041475412949540107415694465316364586940488423793778610256015334787821941991184217963732469541781874396017715607429562668383171363144758289721828347789168309337146192577895472084177143459992320773348824678348644121936258546746157254328087420400179368765534531286159859206498876795075478265296117027614149701017611397176276648371080433957295135789756639409718950936363560156043116344225348894411272268852467293120799415791385929074949469599377863369812053866576361129949187568481977765709210691743909493867840370651103400122547753417078645452720721177127651946479845697367642097319402203444340268900479994029791969184220785642834252274163755968244713885356743964024826851103011708336877319824704400572407545963090110500782164396797576346728969529191330118651714470575894947918717865698450115824027041968049136221237374567445243736648607168267094611337695284333838901900532386108130542184357007829479987821039830491597926246598659136703071290804171181424844585359205311675061985264244523742518841128654612511661052165215303762344761819811909327143195420931937036302585276513951738679901521425699207204679940527025335272774252786161279550811933314178609205942645245572684373936601759495556440736593734782159187458773642245067137631045515630483666091720857879613645786159835950771306183025082071393102025561728330210950186293430804117007048896165006079311318856734874722673114811687112418554641286868392878637153399787323613574298620744784434068155529751064365557209488778168175317799830048235246283734456770773529499449982281396790815681852645052632461198191575379892570449787233403013636580906112387666180944878549327646176568032927511644737107159578894096934602399343228387759251539715070251187511534029965297209187249495999718827493525487351546030923278173583553420713283821892016088369732942795322560753008780609873000570323680447168019871319847128246440120905559166274763710429381465666896731148203274883502373344686520620937446761618168191399629543963144341694839192334095247010512402838967766101284258276118662086647724817420868302849630989042273028912731256402057864403516729809339122036413660015809350603840412780056007555394225871377120819383549385655952128602750200689238878693008608180591898127677067850936590814302737794053279779786418638404995621259900235455668713098454457768541212767158991887997467564948380258148175586088980902328577004353831445800122786763688989266979953916683164491982920082072511298815359117395111767781463757632320875333022607534216721351458177804091925937886474632617641239156996703627119267246693944253106691862036648009419533326254614346558910671287515608830264435646630852760729136572129452446881671432779069268296969889757562061608234311131214041347138986018056050929850708509374557682941263431753799454486890078826422511339742123691416107691676484002024809073971839527700848483271704165431947160778610786348572660105994069235615753772065402372118346334505070612966821205493642195304944966861095488738150792580463986404495909137313596330516141144318470685782184756655571553599249110577158898240890985592557417836136209490069861880745919542765544958061316332545026683956161581955972461244272087833499416342543200447070716438892843349849377250454867789266121028364839013049138354163011247518163092060861566662424603840202035467448388824709322191198063719020014171391862312392206712793338154956606906803701580530071748408629511229863599181124041575092137478405912581731212275098092450518726002187657494580065096421494070296055212569466349191085579554978350136896469431616729241121930865935576638357481025782748693721592764819920373105164554723653277374108249191557736200762537181348296560861808168111588166863705222249279447910314731031234664717526843757660605091021770703464832165713012278086441555730640346383084262838303195146515048672854625255834613171184886230081186138786674392337368303195175191033502437960464323610894932340023698805969357844962838178157699663894700765051636337380684589916769287705662984961703677657906985963737103052101012959417696152103427652482672704155973851380566104207141706838859661287489425199386261120746573526222474753956817426326951504849889669620375698358507304714168104490661693741544917269945694592001491294587976579133614862095861187034488258903672776625397397472534268301020045212408477297669266452851314762914678093913135126349734519454657919942116071862370976915013438657236868262111789230844278383082740228969314211790402755145831506424086261918212833222055253565064855292931668831981778479516079025051500414231224062149481331885430786842434589929309162595682781850069404545551373716133261188311907512896675227301850761094763920276243099232108630077054621207825906099634351524322305782500242310572886698613012893963381555459427305021655708498523322703914606857924648277950360210728949223523807495382194012882767457057057962505064083561582483617909226746714367820516894466503606078730175843801420437038098905416874763963533995735927418111994927674233248623485360462105947211891360834713355095997245436985859710605246711771700970372968020717481014256146089091399527569768720434802893954017177211477201030014394201185194826151759665298405291950481484340789142305981344821706402741994751822641545368182657237474381533383217097416275340818231119516328650710755574878649253278253400801179264355366827276038581490223384473145659232389116538429553072422224425716553414696555841381549845936284174865166551361070085728677028880228248784078303094857612245635989405941247610505207920825095227049411786950885842311113800255901302080362122878980566324825959671058150558713812306366712986494931982166178573437726085622802194904270985306787361649878426013141367429862659851135671500080039128285503656638228975090530226128100514328287025340698154286679777550201790583907180996655049673144279524842218634781002283254352655656322013157039618749459202158194073293262300711900770755053895357622823038140081181935722967252660592186285516383651068357457465269848434801744980821168381023452214102769646395968234056047619268140042716781793279188892986016640274854659878767281819435696745441087466265399974325957281202261262378845596613844121662956989229794133971430072387365513064878973287879353069657290902923138974830810246046766438129157553855410124156969558135953131504251183092041903937691056444685588359827930284407354415726272240720587669628173242619221569758923915610531174261922733206607236479823464537809766138519839343500041391498971883541476407756560933362027396869922239832438957724441893548513890454435227268061809752771417478929324613218876927925986634650587187384443826446820876264131539434810546739302388350424796075184164453525966228326017783740168228588437040518692149226208062932437738948503005195907031127642710085683000245282087370323907413544378558333554349151174320897582028631216932824781430351186665127724632865390282824639817050537876900386386976115156428237801138184650975666114327515109107452277666313303601364670328260946393375704661980953554304510003894926147704691452901220505406524801839443200462144183205203685383785814153545154874127452106239802478209469977208299407725318229854712189527257254988421662555790076703668175602166101752936059799990401884981889184334723924318962771674765083761556940374143290764248588034266777314989489204692922456983577211297461078438439441598709924305149288809833952602366045729269014502674839951438033572294282719060709428607386855311608645902401775151042223308738363154988258927713124190333880171885849409381385237220518224290105148960532706454145657724895069618554881401042573648508660544288105598064684283146833070533530196402982653479042512120246034809737522046987184488940064290172532645505129858146654004797882405093180432209627290176407382154796269577846973219245922741670014511451155437372736636796756976599231368001399924996225645313129976381070564682041629445025149740735829409951008415151442456406273028943520579380593009632811478973795448678988522482354143994947442291193754776717787033107319567052181536675350636645315538938122781163243201696111140653618441633508367479348180962338331190829076913119557551409489615684704102789267629208341784333408576150657299306948692339133033836515854747453354364650176694654228606049891072137759925101511216188172457194532660671131433407299182863279321896797669910523138127865679463289006403733510907023314296202018972453023779780742846271666511174811598869260382147232542174186337919510848693775242804197780318036078595141575369690730854260394610096456162538110517686125463383654234067985730971180190413282605846695854729760118067138113638584532272946046224553365463262296539631788706036026668353251597271638002645729130193132851835666123592789382821186280956604723159640269599412026095515187430273832119294271599348004977283143323896203527556392024994482194589065281581259347689245284181019568530589178978238669723835899379778078271432044043737498932583876931261752038444646660207564805404494794975762077904404765321107519162067243063674745702321515059623490738741949930902703462438248173669371718881714046172008541687478020994969015895630207188717992563926573773928538076359076402776130035252125670837189801992115462762996442267618789983981275574776826532245020517051607684769451775999869465792763164304025569047826862357644242902959215410329994720338648561514304527892501181406733536540116823677268419067100258118505712614727703474600402467011452056642233962931151823157869846786619819420526638479183895462900367577920198407526567858124782170877170136393815495103570967102097113197579390652267365587211229228935858928439862328099914651131665585733766781594124918981351436872345997728833859459526285485838068851581706203013624750830169674590216954016821634909062594526513358067551011763232005811599944760542363091766165246477458347812025724147042640416146415179760501157960987413075128043564877303156728836910025525784592623641816425682459900994839788300130640882954603680615031791674709974605538357621744878676580394170529030374328942645804628210087801851848883398874030201162436682978602825006854281362805800084216333121166557672555318391482076301349136525145740868297684277946914082061541254105605048378164425362449507566852746579382230873927160095995127210131962801121659181393200467566280529209035432905470774210283770603385380875894356480261311457052169189092308757315929785035424918642265429093271733231796195957382222469691356566456027214873723169718384782312054976727464276438188887213984619818325013668264676073778792637140873625622195512550133106524584284149338979305451584661529377216119146125205492821246937872415103352293474155975197193791430696038082175828569882247878566890897573446546005555596452071409638843152100702717054709869281125310119410221279302098107819710144623716174812145643924000073527106834055047953640973412497505215928036895977955884525836865225695189104145891867221946637857171574325936459139844768968912039614626888432446807104522970538158674682357863751991062659771619374778527428750997336233775449483383661831723442561556530053961679321323780358614374078631648587950848173492307913797040698856095889721794456553303422593702718625207890207670069120024882773296605440821576601268331646730627122397273365304264421685972829622172151101600207920534173440115099207065812416196850778222718850957086992272597338339659312415416179405008145929825667194294058267584916443749590794042529341659557745901733644543806332377528411600789715358360628434701495967685090693056394926038320633796773553081063371730938417620454093662013464963929724457262618870500428697927169894382080251216672266565340372430278264773016803013402004222010515940479994535053209974214964900417148955563293991891960196694915832017429212331336300367850108400943004708681498013538297368715656308006977644241633976132173272683405649599645444104237533017963841055535298463772966268413908397984297221183023308092309832313491400861836360235566057792527910857192280537904009644445078430393831010702694944941140726646866565573489944713539080905277162115674411465225093643415559426426663058569586480815727040215795565304582427795112596360394123121738145475170930016524534906368266572760154969129839386821615595920890659423426187704587723874553884142012107833323542717942914491986461102588828034166795870360230103987777913133802415251279375406288647006422437374614393165835586070229627604945599759518799613056194821454228846428398644486622442534450581574677950902923158600899739664423629318261759535432033425028688255867112174773793792983631557194652072620129706790069756799618420992649203447009239770311099944819851198256395243014899647033768632037613505044325559002879460768689142560488324859183935011785283876990171552005378897944363019511844087438425500314402868159905855598321982171271510249402940619683557200238537617312707255739805654909617112487360081786821029359365474010019279038793836577420916619234568814944905027662018162742810140297733973769093309351017160086818598995873384285826915121871541781343723263052825125994753757844518501191090070050959173290060402386911777355633295120506102610143316705534998457415126351498354885066718490118819238810475596155057189765586757959818679333090807840304676071951400711200734021946789610701760936172843691819363600736885464078355290644168168397646404057141879922254640691420863426156416426727131156220909462806222573630372082119538871705972317395840193799696207712827935515568399938688606732215284336841190382432470484970905465503785381710886495353599971300058876406354635731602968807929267260652378644310801200030128107055947948824744988259181597581561773920672310711278460774709169982342388289873998561329047402263680050129505403903784011411527696688495983818991468029366155159428020137358077700659418146861239167253208545404893882815750303859252865922256581049240143319636878440851094739736697826207369209108957299463670679286297737360407886612119947105553022308951042107971680784957044415299901042881892871536968008963678754089529975123899931294330054499029777939070246651165340122733741920980409080517290964358189252674863763598160116794087913484474678553920955113003605617152054936401602730810907216780128679254540647463638829158023443860145144640598900323601521944727124425364332066453903991485331039277420679470236073683585811200589660303065082317560128929463096968906004376102757880980980035309239742104570013598705548705393656901293880031676138179733797959231440057588706635673924472271361803015574726730360179370392128675167224719641010199877255988772510872059868310508646022757641154741117509433764367238196237447403610759412788233079651547585272177821863194141136333954426389310608318143984743375083847598507163650469720384167474282027025892875301879379200937673809964185675360053844367505787118840654222409952746303396227707171851861903698638597836826981793524962413986742901451338334004372468288263233742007981834618128115564558697253693527406568986812335325933398516233377511597468109136245568938179786313289388385414600950611142698488347446929160582741563559056072611462125289722421920362977950007696655826332463675339119291512302565956081130558438605925931088426502437606858470093395363119196404999067651805377957486811221136316410132653553314526578941083831143017818417124758832974814749837342574504099557548610480326625360522851515699085644630798939485998673647790975290313073756032182246426059732810878362831183466358312169886473868211456849203909297282889772771639034098943211485072749353696451558322891861744249313200912934338050087604795623852917570902666977010803483728731072724094505303516424754857443742183009110370489982032643565242045093457112485237737350194870765860996092775065700676455928690634514709925514487470461173101400264245107112841071826754547788657449528240141189024619180650288688748114282565431780970786525589608270369767454018964212100207377918704221639398699662653642833391712675649148857326738185562299540394200841347283692633352071333420526984020258790042644392426238557349351365241903883457480530054510098062102692861670043351414951818966163866158071489015728590238567350935239208710461002583781913181971089952356327527370244627012671830055961716927071869124218322754654037533007150081238081211930871065918686894230619218879483558764018758700657179471736663048945695251311253830424629548591811439979904191071764008645788721649835320610333957591201348979526286672231657366363555514381700811632647011195529245756309775150196653051434511677175899158185062558494464485585553616463472709012856710774302765418256548513909391420591133556738696648850718699637173652045746366643884962669427153838320161450673459521856567439627562581403506151968094622153195611128080994867920554845892736389320769711037864061710881857534490485317540639864188371654076178629761608597326048679092844020733198131405101215013756180367259479763821017755568313645835519430258198964229088365515720969839434849384912941232340846728406187341970412779580594571932284820708228823586536488831869024935909543515362932525861271175078764941748568135113372562526592498236455757120440180147938139749484755156678359215257493241653312408683883041470769316638541771211640761929382600757383468635125647258551183405103339750525399584136102245615271858755522159182281028772612099023297949983554637016550700305984648320451846274697439476065241415014611517615552069997238964917238551121475969869174552018621036411528021402365633936211407260471204070979599632445833251475430995387706575917326835884530110983148115382782518876979810200109120003681943322180686887383092558298791959019856614904628335924631270165312763116722179523773744980898651564522085157740149450782870278946311991679482929804855974930719032078666899840762687800192953593170219067985347642695931514071497182073067779523483004141291158216753545166893246645475587315214961548144673129929098538051401453345278240345468742320883713266841716305168305813187136190036455883762620585886861853870042776711894330899386388576003200306326569555755234012586079310427485726167988780227515296726720712250558931616591796139073172981939893313225827056445419360624398887944116784510756155709467302668886656978703072333815869029709871756975705317571323967997422921126667792420933979015910265031977567877784054879353212284951328468321061797342172849106393442887989080628326515447663394296218962289875099565344971577137967204058727591573092568968560187461634282224413738577189229064955599837898419530961256446507814267380805745183066459781190903235784512163480569214260663937103062050462437325306652846420542132252104346601878558132434206114363800823121437943295398342217979702678145967447134323348036384525839986816387902416007118893846014623908093862764523605986607811141148363741104057701991959835668589378064353639925887129096667534035818671295555225524009460758689823779951740211498651205459527964805494920516306144801336417658868395470345224020183804213126644183188261538242348213066814628284418734085916295223435242533852748969207653419033334041730453132662908741958970722676812367521855352154792012437701136744130284715048793549987237211258707828144383857740356171678525783238538227044305503767422177946875573215160264601907097204334921720619692867309738873813551330093615527452264153845298049523687689685982551736185294526392160660715056893595812957751518277662237416333663723460886106781552692835227286112893739009218938469152860055301305389259681370457455498903929225769793239253537901510157109129213824929770864664233311719053663003121955467872074256886478841149782138982448078647795599862941472381070432859167065217568246000966182670698303156413234917522055287986912040627785420898777817154529931897780591175496564224584364242049022193394749667752469605749573028510978074116747536478262203246003106706360852657672316157722059941935973272581258020104449863418015132776625718652353363943585802046913885070344981681805285863369630858068570376859526340805100259077921071201143060665479654935234479149427250324413748492868338910652234487791132150743588544716902141274621265103951887663510092258853752962468112335222226653583180123608167295112856496707156961848700246590897105681637688188124073045019055868512782786014048328310968579816873454810282284975423668691264541147224085798298813275858833132513082286029832041523242316309370313318667785507866003659990482419611093244421949822797786726502086676200133422577290476495761047710780850805855143660189398743411947394312999018477803549742455829063066525469436480577256493762039889968076871448123423163596362814294183048500230462613457793533532193525877447638785045987707413695781245846777261022044336404848386450233423323939794524228650235710558473794996740315207956055037365462942400833333669772775257845278337599929518174660251799858479162038677867630157025820335012999776225254990380951977666765092544163577181095162023399205376776603509480963939206479463704241812442788646816685240981855429278249253870417246419274100261131400284609549181050812516192221410695893713056076952055439705344227699391645027746875070693902630353454828228652728916555372824677923469602668549430315028394106300545834496550285484359812168734802971696231830802001510752540266380452536863732078426204492555632358153849514806976339485785582110558904790577474249078701030465342430001496179132989372572287193782968162556231024232139642798219300792226286666673747160120246513928199039473379370440855360772098006462588844170801015006523221675517250013031896776889235624602948102664033493946148411631636942221112488296214228079974173011742991578829680296887047021471230449419201476760322833179581924593892490579156173768858643785866753290202107530755216184743968013647785098050389385920000789870138167279948483950938687833327870813279584556470276266683947469918310414200353399365067189196510930816719619104950219692974987796046487571709322200210586080437964910796394270548646915145245165750549849200470484875342912387746395017555598153819203808282908688795977736839991493837480686085863341022389268089583579203816323067956050078925414302550170388805587666606345892542167900019537688386159427813426669856757471487896232063687503084279003696551080636938164483360806267783608191899906590447606554284878037142340874109595663544634500310783190679497742383957204737885402932262599004671581909778609459658449342310190110143377208501547291634869090115697662347390617439298361221360679646375246817728644603212609014406453753637462560286829523522434953308020831263472081091985689521501777324699647266897614418822248704554997991023358902866948094329207260121925262808604178203673141232813722419755905595395947930637322852018955623489393599574323722103958232558450213960047656137089928552690236127630522189792900916776251657664095285462223187138411730447492680116229003865948817751743296930190217839458117135976046211086273229297233332278173576812167971233717717852690125963691871509234694438408622245642680857317828716705495431762510873313226545603789028136614456640000031226286167543630793363581211846607990314990484147384087818044279797499880642064629977542314761812824899455998010765933463249460500437953357421286615182294928191932134070107069692223674256060716674492155282565142970353230099327650050884632933052632248144546376073672098052470233304850581150983750414672048018991469084524523760273704295082664721117951297375931829435304414484158496919303592615543675478712595628631643362179981906466938100311365334101328300117444271454441705174666905605511463703967978265934323806719564369246137243818088754230151006217232441887087685180667788276553167588365083538897641543486612928469841736956819645090044432369348287587618574356851444822809320764244325607473372420503836253602404964676995388682834306338717726225117380033601464309262924434404990272192284880459226154888228181720961791365359761715431449794485960194736775926839670436817640406210553624658920891553402795104659772389253641010367792531803093627062656851578219328447119444118298108396461476978483256814534190823029936251202701651487117866274944010214943391198737574181284871333396332741412457938630965605641983863109924424069492816765067531249984839685265164116374699683831487702662698855816819092404223328059494159948108342421572378480661775810774300865462030813235138789687924826264210957672427787782724029765069387652275434308449979084201261912756296273529632622517448097318007079981893137473361965267904384180812335884566516172057091709326291114724888282145025148101998270577428404710447256191138665310328192945843855991860562326094577615604354476294877773919046980610114906358139031322196275846305008818628384467068458802755170841218129674512915315465751505283516325040275502941934087123194306371489959132060830976136714608455443535755149405331882617620680149664841817294401366390317775193500451389505755841907585667919933490116713176929237734668125784329923828089370553386905176409509281934990685503004521314553971271047893847401741276773149464680359202093647003563062992401686389960032595167116272476702026014531274297774008010580247492356685342111544887048089423126328389425589815802830187152189896556224283386631699551829703719845371242977502668561099311540273013264633671387944263257936120955684912662250692149181519522230276658335059481099100759510799373505852853186768437871586623806139285340553311740729509037453530970577816567352273972553054785525148348304824129080845481062536680353940348739524232066048634548625083718177246209239015910436083905624264882933040812826293922146125505505617371377558077635934795448581356492132309518271370522292584216762655812472552888247724001696645240522614050396847846592368180772476524361181639410086773084879964074266124868978891474405394684080206864165643920787828313307733589435658527026318569894490424371494949216198001076990969607442453793678722935027194857174689719294705750451767630030626087656785259873860539063308035067534124634894873198027255891190485284051913129582848131504337696338036201435026509650103979630180695587935965816113045417957708415536862239715968887012972167491717895341911732923065162403017194999842293713318130777230322242881910588201826194658232002965465886459858983882240338081110645641467015551297272398634118728722408562944919665016065166372082046141860833872217211669793469024521295880951590239427676079273715976625667067547357628415158604521041325344397317998002390257613486328740666444324947910910527863327614575305474161819345914430013295210672248910636751135556826337404568358552354884022309065567567658075270128410915939424166837229904173734344611524402650157241935608381256740777451406854568237122930391181285925069307061582655703760158493225049052887220172750371725868489009570044324557441291769951617434454868430871688912064865169490195623438307966283436015468250968708204741950489794976757299192473297285467407760520807878128469035342004477150320611442125152435176142070951899792124490789208008767870335877988889053310921044608790300641622403497240598175286666268912020922405025449903723712253904466956055636982288558094974335991568925392159705156198230906664292164847374534593194025795882219168416740702866048828938093713543172084842504062499689006854115443524730624942468549421460509478683271407837989746616248834524397683898779220764936355337623939674638978960318583749651884522348363770666665682225873027836502207145177161721427513955288517683821323957413706750065470665061055375167275122642990133663314649123026115830376416964393530313062978007373240285440924540486064001148596731370109254427789126020760049491299578888061786538850375913558340017869906598691355610328014778067387588890493183227636536307726786481562935866806696618444708064651680244162304426413363920385212324753302124993292512294248304730980782620329539073851410161719968803637316924109949358726621562196471173424002851543600236466557380394454703964826883530083081858777820303482429179467705718319631437519033719244224476178029182690473593393696293324421766734075242933969414140636482038173211302277483095917335595418546629108228540686115288338091456106000800109510156757744299877719884652395373591237174892226838074061314279484618483705209374977686079566595135669719891477336671642789262301727604618751051903156453152015410698947734475587067683797624287037700692238368470622491424799425341032887936610065564143556442265363439745032430577832055266127814025525350331349583028904430986425180856132364532578232508347907416650006031775405200846015377426858918832258089697008657592572443809112200113427293692262654460451827170419734472109115220337910311622439774171453729308595073103322497099909614431238031302654023572252601221396426426566556987971570179411050548396244175801230224146861080680394279281634471927260131556922609379319750398256292201390107589195372369556180346299307852417375612603638106189091061105928461134031241404451766623966250029655819583219918990314684914974399376176064449565873847335950535267358484074033339168627344467960813774166104196002964528587623720013314937470629445916274456798830238267687306024334497093007317879070179233955705642081173983294763951277240878560683218370476794899734178100203551349590587402921776536609840874868491709485341381150304610128347449196059650665819969718522500603001686949357414591950305534288045139048202262491687743276981771099704540538145536050844436603278670274208777728634913420030335288360266142383750168578051294744532453327380245334203429353108447499700795470089422304137441123165573086031573684329601490399325463045113326814931522537282595443594320647919235484017102177231495722593463945207020072951775442399483553659427891315306959084692543551596596603692332127881762781464930954687194327051514248238262564832514183078221437512746509933110575376261457385886835711615146013682834068415950495649234911072997108781547790884611322922860076827664675709370986741121194432187879151270677192255276401920889968430291119360690547616882702237004778092927081061707328792479573907573998695447374202844276500072774086199429116159266411042875557154035235866844393187833411068129897162415034752492134347080450393000178785934985331401466258003647682462694496805691529743356076531847958795108690531688066736754256214640384534918073315555308855535430854404938999503695011158354143150024954532287976454938956640756305615572686159301139713723339619444249464606981657925563230744399311572039900225639368617296594410868027267536942509902821262269065495763253565199332828843210625210695856912339777693337416556730425557170225583967361672205483619365357750451987954194570764504704279301482927747049121298921316782674855945771736553111395361948796470409305478153618327457752799376967743078099140002879256439093282367614008967340688163586990998815237213105187709436466088806315071930877760483274480020663339577210715795547921871530439672317226445662335399827140443985782987134690899222318299041523002600696601666233690152297049424200169800203899632185932797762168854848161877075747809118534107766354691406126736825007262605350397918209693847272145856728901629364680663734936644483630784278897141954359543534921446359197568049268977532011056835231568152215653484810571962543516357398825995871236107220919698390346831663749673463762020009031348613647662361279510130056445118815969598025709310873934736758629327635494651809494364274317309383607758717621961828491303102146906788493503997917069375614946476300344393798865511655430825972185830885161450924338986836115663510353912228931645799194538790410492959018444167474491633507489638510533265562697987619052483090135075183718297172188244843992945156194006401038436506907038283138072758340207731799859823444545703818672596328160926055092881062476043275176841612274596191920250273997882227782580331925370008864730233212362605302327108525585406710896776163400201565190124694127298735656335933924507821015448715995636598143849775510593285786454128696818216618413066035530031384110807111299115158920902372412751445931213275910138263127635671114280638590028653782035340537140330754225228014835194478756685595879022753761396677243849230986384382319207911879593153991776525349449190773215436704823222867881614850149159309440896892273561158085116600788940287454243189950945489229082341559573159084028612711123203980259202128837271075278451655097931025239749018942738703280016211273829732637036062069190398435830368960901723381522861470814815773791248754094305550968843428849455093274902598444995170804393686284718942653259356614507548102665532490690305563594682735903335435810607821324727521690947300387882772172425820588248191455069355097432494395067027089120448558730516039660293289069903202904837631266229710059438023582120022970676348057129526975301180533931821662239098829951901732640950632495086765785831241247226976461330660424021540734200347931643358132191695402115403620899195319065913103928166757615090284785960380312228979517670227243916840438544078370057519895640275140905416492624934692445225842646714252984082022574657202582728823500293358842525976760395843870005707249964169591604348398682052142485109226818223607762356447907797590826541352202757864173497376415433144320653932447879338347879941808452882420112844306539968376037573049980372320439483959583294473266725915649640504444365416242310292492150291165960825425747451352819250301736703407796774600595743252135168238884852020569393535162810600254616403419246163554230339850034886707443198928034109430693018485423749978200982495448800128208888414618746447439746290899570727239131394580290682155217928018024370146686022675939862413231173534975890163251676713028086886917964148507937903733614778927330498131022113240957978974637596677937754904409930143064418791208380452455840660699800563744716167857686810410998840725168140412626662102028564739006996207250025669052870892355109080423876214773339924405259450178793631830349957613753219480472128818556439057691601825621043326172468200751602842363200340671332067633997135313144795340574946505440076119409321847288377861819694510611109681734976615672189008075745758380557782370378844467079228694850919068160703321827473917133687253644513912291758170134436497488006444129819365526403871629634192712501310283917429158223702403373540733192439928740826311764988932748308396541590050219675339889578224884435060649640585804015857075663394224635228962947229836167077438752477613919882331024093466757164428618385389713003172311563586016543826836895578969004775092991572398536863884369712861570408914754398723020695733697309685447627336847350984566505311066295564573527866413781869616843327397572581878611494178057291366352038556396437868825691277405203612605393767130943980968803661819358675500522662928474698180356221053852883918946477102730294874652650059261462242257229269907696694557352427308061912957456026768875489418278432606746812399811250492389296611156874592851172399541275944436537102776730908044884279837957881385662869329810251639666484730223202421222517072175628832397026194700885738846736827528692867309946580297100486532628061796403698537666259344952529979658970435273795081084074854519917973253633792458838035810948408616430465428360536454753442932085415344962899972462653580480102830946606953843906565758779055987196790789446656863433525439737427392793777590596691757524607962901963276782148782521951268149619900595940968268689114526330428857083296250421335093127019145043327324795803104689734546665719526970440094820589998152894397941794679565382240606582571838256422371108159802328193889806751287934871118182628789605555376674396422200004501431671759471669861172256972839124036362877043417462109135397035332384236030649848611482496975629236659404547818679387340594133441720518242668119648901968814323104556657996591172578394339121560966766927871230788340668827187671457643944037860094410290238371419469949231199391036462162993261509021732570743699148796492272549972734482822490833510873820891869735213499398104446040814472379842394442014535651225017406368962093012603019749921990721567685597882298870202219918764601906036872523131325450164715831681255248091469502457302114480395117072917580963875582775736684781310414209671349703328977128223495599364404140789959112433820557173885862786182334542029654732745026714519953755832218278909040436653737384796380447642619768165808763608966234908177241490671101023185540925392626562944410675777937935248459353231745459707622287530268381031403339622892381127998453897229649841962879768811591396675266652024714691396815259974331496338841570706097577051975302513330359876149635241229552287945548180426717799350230666796003059518083182110362543708544410922088475148585900836104025931240051436003023592660470556571137055616953509141490712245893567761769346068088936698331535912548754903562101171254491513330992549807169546874279740095167868622929565667787482824895351684804199123924252871977290703696739986410518209883675122680374491653616205464866045593527366349284628789617201876663114455629983670267415473827659491074158324926712319152051461411778915201355541731197448247582656773334190064471649896004212228110164169451405482191851657710971622471525888973446721542146861597422337008712871482618342216543920492700317952279243355249444843774478815196938310641886035398094995492745907416671059461851005410678508172471769397456133547535410975672185360631301409815494400872314698901247505031381804064190234045711964925261642081830945351784870595773262560036891976967947767841890414656159998364048378196465671600974197177445218731802307736964502365777966964240295690162419221406965703166052527922264854972714482634537657606890308598367476599461831643092795303048340933293311744687298876489419151855726254014672351774186273308948976984495531283714273825299259406641580787340963107319266935934399463925125069111116602740127999022761450421977247664793534486743339757638703542666767926399823893295762290012574283741950896270628681858466389666645557359561792704506004707396062264078741889794424156695190697229231001755089707965565847477943417084468875879304182787729748579408257840070684530655053903496594236055876890334253450156508452287634161305333920615642805567720415978522400929809800504836140198406341620281304853295766216902833018637977260131451175210250760652220044442908215129639628009631655623848208050662890626870822738035340842791752829795767830179984082488374421768586944071967329401460053933294663628341487513783759649770207495266393748979555749804501256940635956009581461609112929983716990748300109299349415305712266118972060295601257438748392621263149882099032156312995772981923825186853372768912971135478845829762564960126246863004921428796779515508628761411140763223763959605001850950601212600118170386191234754780731479733593663478732652937532165560433137942382254869041444199326857693899242400272907815375121314898744106221188698965060703105068133783566234951895825259498522522291597046693115595233762004345602029475568161590113464034660885822810668018296265128189775234361256641650814183156285443443885514920103339299762946783248227271943162293575258336387197982615283062953815349838343405001823456942266177947249872478059196157150565868141834041206127092566200068829076201384472938272673180206862847158356420672936619061483863440235594535475008403860674408215278324331439042358454668873530575050300259776528176677424570501703739870111884951240504391424987524199160500167803534899034757856209191382795755885522887844586274776434047335837997548749240211536544722823889686461507463030418420178504485243380310604661043406257293425557815270257482868219366563532480064106837715107237471701834763722356913937963866534023762968679325324727495098260486004064150189897352459236024203259128400682064641224814194740844469611321499903720676150796479925757788104504219202604686594303455592676003622200960035415105155973950399770400986825147496966179763703955733071214302730767884023176230768694801130814683445696205927364306110896596128347028402427661783128736623911755325661287147032694316382439579916889882348117733996713462222489114540816277198248401078033586707211239583083731880839989207605132831760829792515587842236611555170585561125579339517180745498070736920019936921480375821399121643256162671419640868322886844870951685347688153219556788991101445659589391088675886243397269930511066412936885272828117530848060911967926471784094807658367650405266619601099614451993250201582328312552739699565614956149054081395778299850521542735203123232355600984992766802068517836976156652645965352472098895403200073433056059831708942501077503559647441534351127807813400975389824908377722133917327688754019598126948489075849809695756191074344127764941094967419673576439534261682335045332280643005985311226271427484813672914194162078425158149686785242092746486183639654706818739140939629385604754075341013813672154188759903675491528049060180503371755523933023448680909051563456186870601188517944487916212337356464268368235816246216102219315281185016301971498411963568137620510721287891342262449448212836663538727597555221777519603548530131793654601394774688132814188741301996513068872144038185398351907970859405584145928902397656578601735723968463462187822071524078197816270234102662148694222643945468246221520924400750589600377421465471381813035421721711647619954951674901762728952744855349216889461524113940663491718034160407260010447875237379258567741155655177066475973269311582842725685763483097050252437461361520635137134068359551668089875092917396185452859111898831924930300150689235528445685223163930501056547118611123258003643326630361569146148279032593883387863783212436558310660467109758197543981773711321177636614161700929423583970195743015311802704113047367423100497306634139861134542212762530205878637701461476394428081703541610596313905968953355326636641038141355759872937491519133300073899547396456754932433170092267139469984765475589400755161085738272015644287308765885435976416630152500374932538562380859324739459694958556668186937548579203840610140346325491370151954053825309136391633545537087794510982077076862998811411319228641724827828964001754318849031283821108976561083983845952706310805798207615987273053485293217735162274175759726134451426062803575956087813285848596334595669011713627794538237318649191269037562250532765413548045259498983024806935620823583207539040182530952699468779989227873849642495347279343744653805890639212767528412918808760548389054267543902319940438141337324420820274901565482079286076482881659430249691424259530687136619092520080219417319437858549937309388273263740219587188434607975070953878117158271855462039805602376899255323021445418204971458450467787714758016022314748929736251063020215394631474801544157702418940665061332865177386055638301628496317335105603525761877714895338889205494441542155193607816734798904961639541058088111670969947587970603156167488782978972279478332363497616745670113810098708237486682679755614583735996531940829580998843546914427628921063567924853403736851382177598570870985452761808827733006255769187526061898403059551722692058300116291156946596379103736658759345732520431371682826338955621847868964125134988403388656718980938805410293704627322487798929493355056188691633838098301838088120975974157127873325171704473451932712085737402134967480411082745901712446057890756106150234500663147422055110263546503732755555870974141163450408069094942248392536016593486160462735748065136950604318584902626996922914634352707718169002431186448437840168095328862218587220557634410935555316981930497357663573574581266721075417192428192863709224797277691173031533041713687060848462559655065653689790103632764061797756746400600100898829215171723403328475137546974083355254037505786906792945213235026957468710419875684514795988294738754228204867380834909495909962858326623235103442789155712566900380987190617494311808714899978220375377654325803613368814435981410669330845112980781004742111748496416166901547375614862586247935467557936878558201465984532192355103312962173146824918399452281316544026497225560280758737248540584148082139510645614775299175408865567220192336487354017212119795001160899454673415058284837420899207642051675052148937310663664043048766593768500225218586588691530373600506643379514708129506656744198354082731585841886939179007017127541578767133337875914545300945890341015641152461298370130144605772886074022423310549922487112447608384791785478835628466958866735146019545488654699531037537560606824697007130181470997689382060851210296651144342136152898731825013261335995227172574074905006957476957875474446750591296931181539821918595824532195116941066501252180674902165589667514610759903201073143098066928963911900396658505574468606459637607504259794356478185866042181449745432075902671583527511066071096418601080476932507332309263680175477127002934927945331587731354283625043315925904983396575563582955473425906076809231679833604733854602153450430489539775938254879258727277866360849115744803571183175804357577369721862551063345550672472032925714397474754183570884853433649740063667774362404841779528952609931700932960839377404093907388993021910112568609912586305529116764509432441683400696845285709436009111753922467354500986164232047717109047392379362215934887433123024935215504910322423453612406700791380238912189426454385993428234863174324111271550886911608517020563265540025731668886749021208603750643131990398433292595791896169447462950028459695538088534673954702991636159173060736961242907549616780798326504907076596805024705137161250494459338350766643636397370940035712336474818914404723461158790400991229542326181250377522373992521598461074283379695116261333425345267720325099007165238443242327595613620477849534543977166420221788371963590817338254240031156626521603607279423653473786965806201891794990497339979628735793868600690262074935449032881741367072025767107505043739717237911891043024558487541722007427143573309096109220140754149877211024996669975464011614679627749177220553232841802956823309627711302334384740949416168258367116017592774890116403541608656832628562878398344044032442180089653970005831480866265729844229079197258970565826961486936834949958504937063541159385466896502440213267547914105183051184929658619287792920993002297413178373984907203072061107346088936403752238116195133454494044829062727216041536183967428056429175686886822391911642416144921590235830111589569404778284386913841102036381352151321975092572531056838156558072013602221054810545812632315911029869577003639307448051732421291444497633479315794249366754013800221880196513424493734235059693448993299206063757000807517236512535482648747768123664834463299551099726940832912277094805425364487143303170916931518939359800535897474693969563880262048671516876662999907985318197308799351200285641262893983732604087795512104516810110380176168450426891280643848764078382694899760808578358814912557107307487854818456529768394292532565659738508625626605106358533574605317536451662905675650267648966899967934029207121885735245751713250391952865188177252267426937341810807695211576593362848167304879233917098052794563191841290448562094299534761590830679531484964676173496297621819934792365009063216064978745786899498192730428288978973144852815123564146275710191460037014965755809581211091482116002887677880811091343718210687844991385468752067476285547325229621607478935070968605997618083585076459394602491014189966253314654747184222294761029979494222601156849360257289564088422414507572367346578593023112896293949944003065153929243585259612894384876539655900845854022856097245467057465710628339719726442649258287576932631157488886673067310740037445697158412861503523810920542928206083417539287696499240389799004597302925855812671930458108043036095881235962213870157028895112883198864094877918539940285696678460245222312452031390882420869727545586829001243131233279918851290833326753631638026067742469501815707734051147758954116972905999981648748856099265238312585968652572819723449305622267112409311711677951991876681694015094474235617678456669884883197707319338726983423798849303666083945866093065800771667238075994176649847196617128974055930160940392204756856049873739688649614906157584633504950554275709133236927099891856765851254506796299175925013583869423568973244676202901531900334517525329104711187150163972275537401349424797957588333743585225662229399836993767787066082009246421702140291213732670125311183347839457317566324125441179818500524850140538466280057342618771198616627649673373566601022813043428152488421417559750518783620329410776523782879670974583408338430766641466535463042678910901037937318029471871946586115539929332030794705389190712870127448861835311577477857304991322076390485730013608368189861659230914770370544433780290367018568413007566291898080489923425170390532458037265019616611955203734868870665030359479118866911877414015710249778731398153454424938158666324592148082199291056448757491691618763598484634793733141210783565666104500676437122259721026429764235652370090898015168085352488975142359427361338167145251813317963518597343777504917250390346331981990298336655075145591228035289353561144844831484840437620891794109541979707628936208603079388416618035723868951221335657693093267717364814319067891361112941724511639811971517340744358864961633867839664433859087548840766618490381539578348329116532754270007820452912161031435629958471671400382095785958342473545817774164315508739452811155258982421579064818877840580119873744077477299631308097840079488590916305921781945784175376927368066041279730605779427087974087782649910082909564927546483770736351209788257781325310679833784321961402111214830927451423928278976754812182377105557847286261100723281290708454877487402661328151872326174845183338061009947287682574426343191704312424992169965420012604328232555892696372504557159931829573523786586476692846025207551217724679146490204718066042714564108891728658239436444249547639743295990805287946280488391770127374896423759714077699558679769997466836960305040860318050782297600569098631853766666287144816955064726421587801633331169231965556000099787647375704355045025904913572270283546361178645638910959598144725789042198167731181974510320341414597570078463961412245352200055270613570882318258067327652506356377230006466638969477632764054288648896842793899172778912052685893657797846450460674137224483542478170898239838391227594477528724810965709702732453626966510752931636098506757156831259767718226070762982235790768557694788532561037485782581316365315933773774453926076143295969629542561987569854611696295388019868085570353333577169566432376414523419061133276484415733070081246762028489492131455674229619208932641832837275835738282107780304734589157810703386439461651662039412363862303680027391914237240757710608961777285480608950710802442323018346293860056223425016931489755976031371454761011269921085218438120375411804983504587657235228597793831120846217840543532463586935203583913782453197257293238961849033495914756064916261492005575387320780355904898962925812966951823835684589993218485252494760621212788026210181056977964792113354602218099920448301147927163016045769284492588292469303518777113293219035992959327273787724459979486282297005915184828544950054520840207261754010276285063573374983982961622190873311190184739142660580401873303814103161956999907015527018872428942083642391295482395272720344193145049971505524087689636618890297300562927321941175719586638140515262041210930183030163270069518505630897497005852848407153923211900344500465418713513379213095999938723898858196660456553951381783984845607739745078080714535337015734327097444264497277029628543046569075327833600020564095476832949638665734893622686627566366764454786046764272122221108680712888364527065072464231767503672553240065463247862116785450261685098192434591523158531420941271743909946338612722118999111527521657680194716793292916007078033384879009798685185029716483266563593516244943959581562659429542849900807029572942038447724826682160463258201260973998155552078069390566317970577861727823205076954338166064710054655848646135548556785501725286569246519349654082256866852414634881579475419174812707810009346579223115470354412131700458436761931114954880596480558668110523731483350668419945646028570157132533072906725495633578305888496087943839082050440124702881683571348165694503596413951520373811740391871206160154188685615184068053457132386199955178043379607661177260350712335047105530662268401502583523689830505205072815019513893714640428786393189426371671381001467853686067850634689389105339299174595396308248964027767676962338023012818165077068199270280667895515930261510801944607192669991429268419704925843925001441482865362941695202406516975200716523818359954667806972807674777327341814072673157055888478414023770482035542132623522119318126827568614199136558802111713537834304290398517795396455718147273221113086345091732872771065252715007153938580017524854010552347675019359988676497053405291100064652162532629543061291988943932612161621404524227212976211089499841913651276198311669342907864122139700667283055502810079537209198310784399763073620230546848455657442800274575308389121043286868920117707129942606196051726329110740230608489138903326971494268774051492463911016088805518132403452801121283000387963882415800682450065576833374659851227039418732507274221231362109997002080851289840866378494779055966683752672827283013531512088156889397347441813667081727659269576987039178149113066704554456109294052529021854744321611486306357576019363564675673357753539873608156276722450400908870163391784089206237884862431659392784685707962951837549308898242217326988493301212586042178431422017743950528630186612561819836375991592661733102958607774530120271666794824771956629314766950691330969717492174402367713386351549326537692023621466650698284413883048331518736406446418403244372215927991301695383797283514721157924439064667845564809937417978776653109701697261550356464417520877351787570431231281825601643429377008890842313538480284459845602039404361829793844364610134825799410112773564183950788462902968641156223003672637880642651981279888190092071355091684435356137801285010367164321097646211390567103306678141574370984498457593742805386264312915641879606958611910150084932489956878196788895643576997276702815115238643916811692108794539034829462032362048536988944236298488487817475356867181946148792019504796083399727033998962542497610269906751784795093630280982440286105558462214457470835259668044427502107497563252501946112229884624377216755946932710650506658969318122946870550235382679512517129015326384612997070601364175240110248840678353624670200580096023667278605377153001489691572230575474986933164278331070960706475136496234108357309657889489711751422812953160124598677960320524191455238042666702684037926334349318795953474635906216815883343089287584557317981887811230952624965260078132114212205800126168744967413970680488256179445520855080316195718266886063797214988186292289972739215129339561804457868655664676336683998829972104785205446536963679567544296260813631684012330436099582650040621521719782077992372645458462299361707379673786249742791525924545003340779753256411866765090936892643455098237298806405262429698800022169148078546399768498875754635635606246750648829815596727595284338396107115804385371628376495937175546411414047139459768870179493374079804503058288159022195207517285732901608314381168433123533386928949119978144096086589735806182448698863294589333126500267885883453872200582548932066176613062327055287079414999472623287598469741470512160350480372014997731704530542965940790020804857194656042612643579585420506460641199467659675454508467174649915057338610028294560954048357406870085172275185661980042347109394498105655902400919253573065562352100523715614725036473742250292625035044153444701854384726451024977629415172823963115203434078942918728706732650491029377666501864959536939871023030543343325996924684495081845310908618312862346284250601644058094998005320282995893793816074563860379262093683328910000192337124172561472944016101029613919560104108845346166626174235799893211337450389555485390702019476221222204536729635320977602510997322935056666618555022072561576957478195320116481994370398853259624222170893883155457595353798715291691558385104682335488744146368578223219190321889043982216066880114228627994193555402168278072902284687160112628731323216557432185833112833172338707276124138826635587332651775663242629017300447652565495137120945182970041580049841784286024408295878330293380854954599322154986787264921913724609638301214273871022643659253336867542285087477534918526035486474370049258085932832160525439913703999940661183398358245471163899325325025373116925013442646847102337866062414053290043386803650367553721472525829503007400018805826354982967677682610099342585257915796004960131623697895061370594432735746169661367208838553098561052061527784838487898494145833751959677005793306881521855238079274302998417777408475313593409645203584684735824722177391746521180817219061992135159298368659987473789993903752621303101511448349140577337088680596567809527514193566285587844697869600401663776576939462453436490734614449883632545800680609541927397668851708110000739632335517894302550120861613702831138616763289818828588168378599368541679242745277572274832002118256202785105652213782124369153071285603625812191841202971521204880005298888058854067719066124032693888654477068739555313594129358649133488520747133642727751251074080983392528900856985660202763789803683203595541045361623708256357859073502363389353003981219334474910195061144167033673603046805441086030574378525519418385290070113555398260044358160656634463592810959211354065274024457089841741938177966164241414907547375483836941966830362996146017590386273539472209970342908973491840525760443931698782258297926705738560992804887161444351796805751561248950124448700508163556903988654648091604900851434038099518307159030808734176106659001843314205672157796604865532390046835844123563496474569524518024131114890950373186499677168928002903828977101626610686557181237092459594410058897485141674806806811126267933980483626344281567470948121236281116762512923182307387613529114794149586443589010830798773749404118938308559520237444606494403402274515331186422558795489601519905558277100685016821671636934794689792685073149718327505659099895075706331294024871251166909676776652579579738577708673860364230287340128239609852151660011556991788530570312766735384235084023279312420542004996454836506968319603679770909215560122181084251912095003510136165849473201797443080196974706082789360956880930525071092168529783557575779448434187374081320716243877135791334078375720616136866339512793876116163208980473762721624105162092468555905507636365369304703007873780642489383384753385726630911076595147746895973626067075188497183021446477241800802195045713734177331271329602560573685271214435818848543600173703361135298276484513840415801055242398075155065950679870728640672716402005338745597380583417932935977653286091695289470505797961318614911288329105576436455667668153404703781355703335036327264219980832385436634015731047415141223741333103649071404451324459139587390848173014138154189666811413522287181828849989237431397823965156566327860910919687024106575971559858361267593512097065772277402970203790132301909958220886102709355386636594442409332352723596987189407681743413874085262822602230850785302452844240334937764204171621282043766988199207675245366611650839349039041902150192729086709428521592014356444087541398443388569158314900956598197909539133235676957262387361984681308637723897368383113042120478954318902811757864326139076997578389648085267420626255102630568648373192831032370579881115801610220440552274037418109295302989258826452548608362569119603997927205731102794970311485105801091509715282787126832433799247386886768937376356465513228977732133618614312376184240069463311404095246172841510902928985487180306806159839173384036993112131773216768013745639523571631306402016031168676367063891775352568233496150412798163111543210402468550747022931115274580067832727803282960707113502074332724090613056464167692518762050221243160718462854310319202194275506568409167447202833430951778656716632433351794606302590909446537905563870519497245361172246598024717068499876386298553091142894295417043826826330550099178014414830441834861419979362611381730157212073509751543372527580019691028139366752020564549553178088954260349320834733631765369518578970868991678450415522189283764983600480709899389833702198675862896966778255391832517845490451099741325551778766102690494998244707928827451920719467898265126683063416975017175500628122975315115011143396584432578462536179094397126604415244172620796136274421733709970038538178267474749971149167718583522275567626622969429605424052456523585980271540086351437231691938701826457084982742819927291581701465079918043830627027367391317712544950688378116544757866854149640728645646866440878646311762004183241065603859725544517135599796922336996362077285241113092103873422214638986394443902223822185480489636733628114184973831163491396239056497422583760404363100740381255139047575774916494985454065208089337056599778347302013099797648646377962595020708727453780703921883116284994123707749736137331437532848397043039121089300260032909919075056036673589008982821275884351927228589599408443268154244519261924083541928780408514091633707820088388583873661361691453784174194681739800608712784727219484918681584997736884370718607887515002988371244741196944722509759316783661016269066134219489434041093394972909602047473626500106334131294503981116397476436019117567473736936945792510198550462013559951630035252472805629451396110126193462275689768637178683566508014663928548613440798924393052612987938607993077729541111984493389208307032973430435871620011266319331189956624468330295328988996173467328640241204729476004072387310966869277353731365227653411720786979747705925324487989181659185549469849250292021528265994804618432288986218091181361189794200870057680502429929375016125398200380819876536505240173697820844950226282628490493932714150181670168191726457098662742824599916837011342480803958371498309574908955914849308128495220967514909553929457007227029582547858072901121323774431829225958313594989496377202175781002755776006458784073886478833256476168813847767099988766400255203366478282367855363919152968548499967496097524019948489066270392128001198608785364956392599183833144787645472799804544075152976796054931156415095067201481828165768958182498385930799258177081386281410709686601166110128866226301500852037796911029975009668114420520842198052784340746894472698212030673176941275769402315494959641429813609955764394755435705297466702619250121459781706201823960848684642279963047811007605141669237495859942707028325204822928363084824602098953449645313066087972841241427890593664153716032734594228776060707656829521245779978890118696438212693214114379088139605137885143137155540609089334976469442424376105522583378267974035567715777389466239209161477110490189313349915289786622957822839117505767877173094631285159004606803830149300963407936927403764229559617682106758851913044912620705071491973556723033587038991009429695641468792201321780925040311525871353610650782041494283401288623912481916650938168610366463618209023293127713796365049569866119313176453609234590684296941567778582720456937474605554394122681687506113934405010322359029787664698652564232090683599507730026331141696897842411900603954150958291329929090974900707939602109096890896725680153116765297542139565468472172635401767097781269648668268250910878230268962952200282172067390864484356244557022449942965347775035068101039814011480582887321980758578238143683849550131772486035074211097663413744004897491843110503261214756235468884084329290065675133027214533082032151882442284747982364322927026328066332044892933788988666211068782961820862721870875960049813069550459764205003333523176701321255388299342432996322697676894643379108105756556244056430905186839716868567025174399324765955694047053441682477261676238682848432839628319392526383357605433269693166155551581712131803560758372638375772524444413812525022666344012484241398674915349098855695429550161918161512579213488774062237980133664298224850362407449507136472122164993276429180567093170742242275313395286315573730082982339057195373596272490099484503312044938606864301658481084626081194874854667729500346383581744869238589308160264879753873490944137249851159153235648275969470685348975291509044225065482809299543407235716212797560478460840612103946613925748506725648055718982652106297365491995266270457323625932952520382558648375773169113269021928729601911337846062728604437845474912221495474381156740363762899896872868621192795440181171110342342187910749281610174543907759013128303576187403022650387337064282009947367118434946965822460180155097283354351546409192307982410621969239602382358327141863429640281064403309668879589729682786351169277895091240863031615640074752514681026120743748236056630389678515702789136091975332797887153684503115661395915502735443273463697459177020672987779861880442545037932735051405528877138271824562022931633738736037647966604853920247876547112159846685332392980209792387343029338324668097949002625865177993024858904282766623913759945252713851789971270199640615005008658192760599707197794072547580052890788584389096950231401497031428030273778475717311311299568213683778097521592354349520625361716601688103564178228313682866961222336844515165285857156026094625512914516278367538236176382989779079320113437714055880534236033582339427093242274323979379881844764026385049896836995493664799081265200852009529115575770455251165310105414359727289940516080089362122162714070509367738148063556314388682959452834702680123283888127256265946016326418876827210027560427365611040515797399694055766328559744248873152195441981437294143707184187729532272898742438890444741459267842346939918116019325842188188918711176250996825370773981023081723168092708868094104397178279930140859895967216541039836524662618089673104583638334516930465348347192841094184257492164863202423326269177681652439783710896516546187653233383093435379287069856329613514489625009301255431426817913665796331961776829757729473821004746583062190165621298561062085380079949395464048699898956554560155239369082943113216478825365172298564832404070717438869357145333864441297509592584301995824124650995132779496411974196579652375736599017680435933472720440413340733421289985247424075818569196933348484223228975421590883573978576460107565660589908440086467109621829293092642538534394218787751610712759808278032099585596373738408730995758035212664415541823273262733388574290874906434566347983908165781033424428782830621056328408849010668510618469555225042942767947967454561430156937022462995423390080108017535992947993013353433661247187282660607481427725085812163700852663733634240471507674441729743594270015516900201569558226819768579116601138643467809584414443379990973995026969627698323359695058687880587241105277277312963419923753897832739972658489968917713923225663564475341788731732043357993163925155116690171200088344371228135211673382740684986315998772069981976619304635087766272927050759990685495516757687746461517734445477293622707455909738011428681465129933514441698638577875236747202770063864566926159979422123462150429414064006202736057519071666162405117538725325982477582249606029544692698454094778184577722417938290286801894626590220995574663203210298928885524064487688294033648585307706910432823482642879470866149448321543873853275797341207698941883495951094034007381133677089063066181730186861355082489541545751809197958393540671788731421783673794016133539538026273055229593224390086615554013295869914768587027666390740334599975330419073176536007335084050528048292185324946263691076972248982577592899409158130203503510703465022226837169887293912577209719315329077337590060335459530814187856939864506404126590129251856315908873576859868126603737141795904257274558089403503974831053743174344251114245277067138414796283131655651196857254164613957151313368291801202927925258482491107960557178839669790844910215890083346532343551057507318281137656694894604282224339780476499176877368654951569744668230355357447395097984420292344420250332428458101818671201216954632498263304470822950372236927073336570447430506619124981318408548373542155904283230828726287766872705642291531131795999797119494342710201208720689938487388394138777975716159736179246135223307201527089413578375946478245965934325141498936659671951474814712272662163650574874138129998980866907756896323530976653861029719023521151871635695446216500737617440080568739877489608657265381296102663284585247380045591239727552982318468344249284821204843375192733659734353998936141264920931830958437867079003816703299726393488930269187590065348911967870486423391730562524888693347347787537954212948674879331533340790052141263593121346106284257991481636997673181132704080034906806344856004407320260165831147616074949915866101213771482111776799046215603692030790345959664898424047225000710156707084161963841961312277909347303383329366918701186908482613533504504958365394087232831101633903265858898420096056809911866238021304594989011470928065602419754047662593109090455787743073262671112871928125887879493141502072629386945948269458894300117235755539974541421610577203782776209258643097163213700250818543635872930308820304084103150947441883720854994509454433071584518467044667289823275596834879513954345320889403048703813652235582478690302748622668687712224532740430290227902911676838968889531259454846497955956998508790907826188106968366664002382814466255237674063744799216435261806223146810678913695033756819220893423241106432916419221729759417461915360048509871285637232963137663806321498140972908352005456482318739413486235057968394433258143054170832248014831755560353745213393659066192339430473966795310520104849904778888116653508355778536282252446032498510657201158132803743870172646538070392813419023936495284150707633041511847666819448484653062308540638652272977463237328969361856732068641846090010061083839022426018303275568069220600615376028395350953645479302621902530904780062538217955031325137209768185573006045436951683139271981010456977044945371026195951649590459417545809316107521368045472469969428971453508710391466742476156929321826621802223555599475037107552958196686309483313101263338128853960977607412085405920561302507379089503374328492998123886591265383998458404119190719358538719563908887584419178117556710827604754484634556952613608542569168091103679655761149450461092057571592346153607231121463340817285314265545555148896484137656259007158125379263517306371207456142429986257914196919881799664946973114294868258040256071562408555566254200685891451023735249993320578317114485518843976680738587284639462047453445254169146129475283015146300069086923824138159917300877439141622670946545227956252075316549481547627469442428919060785205038982642922458221306414566131928095279129315522063655803423755003899166734150581670694899237209368191510860123164387739266861986777334684410239141844813008592802516212371184520462347893009172805881173987467911141826984953918548008579947930635988115613273435084991081922207012871608069603618138872847033128050255324135042256846056189757592495215204752106855689930566688363031417978909404505802162007936529920987912726214162248893168697145657843634394702247885845500923009383400542186300073948559182043406582201649189195464696439562431942576139146146393521636375363993347007314197076420382057366210202819850036733215387299409859750235137253550266064280088514750394569750855216845029176056887479158268529315323079592140338019402691960370174753730201549573548099942471075208739069736476589524523788346691931570860726474327600565887908546128715747144192063674494065469742657041627749004223341810832171110042806474720512517829544339368797762672533838844252955562964898937269619247763805513754340633802857859710331121374015765725661195437204041279027665221597419566599283448528273656156385647500124194261953347555862906807303953665296469835962095752188451555222240873650465490764146848970020787772932096545302907969926692857637056195000794756203279897868280479463678228811566218530953550737929266784248783847840087796757800653962333176393749183778116343129580632669388506122682049204662268906451458434565914976745935933255514856064591998939545110237791672536229255348255635478564378972329754392643055435644517489599244260756587932946006364999856682793660954761554153923615775390298906232965571489295257527530603072626813238676336000274294297973311044985630712323171092932248301516179894712076029833453806443776538365055846596073276111045914469266736727393046354966617302356743783932278820320006261701500409120880927302103860432961962255145673986297646549307498255274774568507122433102432621393107620415172709573177231585173899489067487707660301898942221200606761644534131320672697926692682999234560448937443548374651468993628721821141318525782764698981956836122424007035598259726501940460767145760514703483898124142026688392187823315860815795562627893695202898896396556555592946994762449315528449486646356455587766973327054186575182717874474367894434029602574777156227366309062629820024069621900065157368177129991535646088132393628253376451278380966123983797765697390957734967760096689756901698265274264055580141258696024040424713998486115111303650247594866089948974334814759698427435409996306375430548867020125147632835062859335177667644613136239592949111334930630484693090912462048407826336279974096951446821161188792329009456070671386627055059611362898425129018470075145979150135004360272979405150109641808097954507184101783929398635303928301514999907322300578201047698504838935422466647450605883682479118999900948890055796203241801643762804573889272285875973737771235414085267951333273277663539322061264135815056945331993757785450434708188416522832980928775671378337741609165960721575957489752812873591604243471221381198739201091116414140954348999800887079095688491028117517908643185218059131911565247286716702153537822338903672040076270360133982655365487969904482206254323312673656438097926176611917613393854426306654054789126675725655284274604069821675966624065424714036819611081634828820479735494173972496706397163416296353248374075471584318807163705526508270125971869385021690289708638049480200043831195633235870509275380579213006739539886411496380852977328860150005767102461377742050398124372169459776298854756221022641273857338831404121689510783829599736657257475086363722846647601225481195973632220705394896212553610158624126066534508928586638935588502080682557994427034312504818963575072354247605742098647122038731357903001546990423155482218736684338091259914159570045677999361566798212680887921085547550076877148989897697418285692336393672996181454078277552328436020389334925903784203054802666608252158832080555095942163519334362700567155397109107142908285725885548582495359392821712727496138955222209718820127505833415140818698180540976495660303861661268976928290584182470264307816853638017566212342846710699106760737090801503904540789233617521562630713618777884698967144049208310449614205418839602233394914118745368279629425804492895661321126445132434455163034433869133068800610791450884204377782680747511525378329335034665009193407590295808423484022804701802496579329905606822593196505979710503352214557708560965416173736101942540741274710694020834624838076862739300079889288380862225112055029279686646968570251866303120425820820068886909732636018114195075652359700613427739819827387062286217329678430586082917851967647158900659870187810790532791480525263230087015353262229887105397146174835612124043215924904940127648715441164610433725982785848665276282788902733953366435835645947450643374113066350220143064489905084853527803981391039989758434492742333968514379105025963172196519618501844774247257688685035500580214435791916454096400166050487477631990272881257088903089644965031288181552009094252868544942857966206749312762524125550069878300212075486383997263897125310801200350822065481069480875996428662012964078711961096374489521802900183230928021706299791182979871040341618417501527853785308160118829448795378780792111426207382366841193783872409533224477436152083729535864087077314080601920829354234910917661070991158334025004804743768899949390221600970515616661431338657389226132301269846421994606147958908865219073941906019364642852084107630126122556431572467709791809918240199837093724147097596744981327535075600498532602457544304042724883493429722803746692696966378347016172597460869418749292855426602707429092587927984259415713957295993239573563966374918949879821191408576324756761641320387653213775056077964166744537622983774783805019078020667699604549573882815411088874322439523727637538923622105707223565711174837824724860222846973367916753200196786512294528607445049776813772811111758153071839803398470880945561530356613457943458343616703461924210550469584007238719637428141610839017208895812987378529723619900560428919561207694491682588031085872458453701530662619809697978038288110692637543931290286634269652856817973583836626210216517010486333567508204778102392534789651427568028612436545651083663293435853455921585814051045779105212985882448928903802092002322496692883457249341266797104787636321603238718288001651559695853703563251491579130981279531705669332865592135959523754083305155405643112114329449132468728424154455915304038393184251804198187434663233382524225643475699629325512045399115384110710274809415928198306666823357430580017921089698243700985577166514808412583384787439207414015501222497239823988728654945228510041957289113987616289293959632919161214357243629849216375616030967618455400152394799398000884410889978914622190495425800248121801487737273396417015298763944858834552973423829573456740545584246218723336600561224088220431788823038830652440892535128056041901893333862820970518398115120112058297169721375692979275123164183547632794201745862706658300794386504853895806961221932386570617748647346230144964381212163986885062201544319876656811889043985670117590708876339036483032757533135973898189379072896043512323489357711205450035802954034222612603903513271199585298923094303028612702556361143151617907925695519437845510842824701586660822910934138569626592773949318130988919294446380078647993610769311823795811762114117718903793102396209049010783284698739084538062675494202161058733607883045985944666659657397069524331090456498392211743034494535966566487105799085705156444107725834442017616928849172397427318504738930162280488221943812762706849818841559743622520428553337427287011537997730221176887832740953588319207439759650340820253820890720446778496608279267951718824559614306463796161812733532616489347983633753236757303988334414163442277637646562613534664825335728327290384993826171203436231957709872739563949183781506042214259861543478653773016971679723213217029247031853985950669436258460274959901700503349101559749978105450222994165663629473120459792654182965204939058265536799770486529432175105298370788837068201016757482830215432521827940540902847131060250740116515601468991010775272039555256672518876986876429789281455860468119751721521099209298193594438413053314840998441708703975359210267489131044039566056156905072444961253297162468180906851940256880206173109405081321483825218192404671703520047744740929351704466858437574070653170132007871590414461724866623786513872252766939940398451238756822171222585619711633703569257129424217809373996817128327924442963351341812001316765620635467259695307974424407872333041424672075565709148757478349211479110210531341278860955948259258049749528677040680228247133089020081451014814558241819942500939886972132817686086730920720125501279981007252374569369869874991598770093172221771062810456809403091146870994465814740489632653991475433246827250552063316149963191673379843050121030449369358631722462745928443262112498458856203978860749838532084751047277564087079807601591296204772389589428134127406711077514125847254965470363841992064837968777267685633476453788008647242473839076344773199096230662282543929466667627620620926390296338582118842094415289469561598488291600347441692512292630941165200954265943875167446443493424214965096242773195518796734861980827955203419832339997411417430215236748438344586759375345773051367892172412005655667094270228637291865984973378460215906823198158903175366075928220477609985978910385075307517621339979268773521979262143363005339357593818927718740023447934138581691446753596984556103939433123375473860463979823079977072154832823090920080269649814506575301646146883341857895931371663773841035542115307813306531334234341605602740282397250522856862614115611394819912303777359664864946141863803442895506623411049386394116850178146297710898474282779326838510231311044975557280107207281951859867928366147358322745837556545089545573669589468732720976655320394828711842626645872161323233393112958769588470346638552164440498197256360557212824445290876701970268876194362948391350881938282148217125694064081773913096740458707813973947400049828533848813325540255144600386079629257022930290578822689909615535216508775895363181371716325945478109650181336816578580683800221624247367510286402318188598853819753485043931323939107019881606188952584497992306275781042783972319244453452003245532292214715324839433757408703962569722315722551070984956539892209015750908615476967586552060005930375961458600416114522175732329074717559560086262316164480530416073282264584147258950971239680528674288337357675729655364785475265698674358628424304414822149101864857786385315597970609105002076855019779928626182356729082782238641696865909550977370597022686261681399095995198027830070072992632336525672048613388393052078173480485622232936001433272986994698331804788373176100049105988484015038354387809962504166757963511991387340877468207342870705031476077896268359288575298552103106626600876115191783831022092753053647438667569451308272899222024355247591608684138533991909146280181218180110756115165911930125989407170762384762116355048131073721351117876165844604912824243157479007509026214987508970156879091847333977680386805866856137620765885004720525578973752054021094918064732206153257782954482676065213808361368398276977875525709164237916162630998118713528897417884813648294846686278651762187016133375031606823721949524262923849185580785781108136848311651419389268591784980100831519079900207141784757582021436428609889566689018657655294938913641210525233244442527643277918624172808929315856859099709849325348789079105708683073223524077265881128023968477175596905021356683230732842673322618529526658718886786497146507187310338374480365896404413876710677804226537893747867017946825090741867075067718231654354667124143902305419998839946614543781615757949224818729619343513306214166629976199493011133054467972920179218837533962317784238834109274254600105199481405143928304174711373071774136071312979762694833807937077031932975044500000769717203780488966037070029831681944850642812212144068041810765289534864871551028574599217565198023993685395932195451032578147241352517303857643105249049096798555281217081164619246808445739722505141871739233107622753938350992636053624884150760547531363243507814661964351593351196824009387193913249307425492589162484710958763150203453075920659005721886160179079878395851291962972860846807499866209652465908184931669679639987853216095953569097504219297185774920446176370698923803023915741051391677560412552742300676651713368013403948740078971845683409900030600900607084709284805823000843438049924573226090734309946348292483910833608693758169781852063720066172992581949350955592396068413459235633314615493478589627076747535404214756504599224615665128766189601334250550278055695339453122667167387490555910487010490335284352431857927341774945762481239408129441321010074211236965823500895967891519030294977920461849174177621136018079184390100441538327154492701213983032754230191309608404215153858445088385472227617346093838787119271559329182947240566047298931895260187070809573541340894695559801203014407411144432790987062826072191432949895460001727103241371374155754352154973237507258366501936614987572627617391064335337804581187534409039307545009291042314481122471279468362693449165203744798046381916678844657709017989184665054798736876273001115480024231646254259626514695595322427757273896094534040821574420386523587193849816467139506321160268540128366582757524476842021494003006694399055799571133866245835665670018011249574841613314424318243894293529941817347305832454753273793273731298684536093440445448789906885464218239525155218680410900236189009261235453064796703079283635797378935582456043243367187024908087864172690831077404054573759543724481257038771196709646712805732871763196959329134479786927472174049254385403817610902255520155022097952522622790448679210249783256475924991078991908140702872893660902794792590253708577023205069605336111261113590813505796689772879275673658156430414503033103555509088346170604773259730461718427097057750410561254817428675904571736963051008219611014690937330664691195634251013813667351364342784422573757437520170195639818139465360836322645260004883411344305296929653228631741825148512339692287095898451513090951847914733156931459960544241958915693927743000315288536682703403728351072681598786943795899385793208375857729652161877743803582118120496577772487584454367773519874385717525183853787854233117216200562228814084984526879448906809994307546202637567021131212851166882920385082909594405708017635106780647930871873900353544595937169983275991245134260070666665495587360824148227465728910912278780693088570267075410140197851338550059513271156168355924780898840024106240599623969740222392561204642357111409765134389945703395368556916349947970623704265464117728580951368207994053658101420768189711073497542244115266740711902272525775595769233065285515294718720584850500418130195066407415318518001666453486873816934060182982079738918249131237847540818451548377475142498712974083183601266077313276390543315059903270320533713546396415450283590320562497712342851420162995735299158674423568892143894565902625724325861659991966392926682611359363411443723072189246581369677722630583767139360424976928917401548066392929933937485182130298716827929667785075816225284329267099960682553446827351669448934101438985563853925224741100489498588738514347882624090455131150573280705729187797274078940999534936663019467703786182044174984926316333656998438418395705942217812964411913047802977664571226208439791186321536048926374399854349627986448716601430940710033255653533279854836442053846392267481621361513758958771367805695974490265145744784754487945452557135370572576481263157507954245121082227194903081291361595259072301544957493550062903826870143804977909595488596077533787973893106087175610058555870056781692886771858347982371195985230253012733405570607405097627953891858795002682322773506145800141516657083609127601350418439875115953097043529447343528593346505644080861989807831373421818660716973653162349788976687018595329511255579062933404863274293985823489779220084573100352102472209816207234648436999810065823802866243994070764409648278653445275025135820656581939085783636495398840960315414149561475581052615190286300636017394215276180820748369954466963767656695615088007089217768289516679047849332642064468010343117421300837112936918542486987978848051088481561887543973238361746312210934004323050091498490939129637559752024232355753992028694009357023709978024781716913170294062576193548189005095342070825830306377067794423162732820662171287877744821232506575704952681976746991185007797757620433411352562661340144675716071634517103816478296732805100298068249324689523812516711547944956746698823559238227641375051611419111024334425971703098557986029970634288725242338094806553093694491368646289794844508775368562047267436128276705059892021310650354457575510354928490868040117523063674128347677097719153970402342282592222770136117163721089158916065535918274165189900725785413892551125536236787407697840360756722193161559186153496761510565349705323811316626264720753958566773313784493883460514945609274241584958769059963691580182929079908435892863803755350401586417086732082388692590011659091878805235450045158870094190469398588259227018162118058301320960519414957613521440886633342944538280234072699860262901397083876210496145229089592903224860256888929353285572001769850214730337609207829152124702526507741056260597022813292291015072202324896938321986258600240286757404722560599618500062016302116571586001742596010426564888679686780464402426563454704062407351819779127896983405068889703706097114724086623103157891374709915074968071434411081481027441982246397092617464032386655689449003091475272053974332105453068837454455986719559129252611375647683890176492763511191816374406240567846733745890751443672139593883623278448487566654749655093034135748021378486464983308780612425306118002253628535141660853769108294244895945737568498190808060371204836871243917423537080343463634127022087376903618416985622206374815379666628127350439122343438620629054856646083561771541719472468302552414161829780415107900851355883593926110111660003879932149952105471296586291869759127892893831086496840373034071930716509884374244764159467574568428363702297537201360994859786543461359040676749481897976393244719403863301806294939790996170602700939251208387476916063035215951398625592971523624591081493093506009224275550695629342978289369744185604428216645769742342612642645723344220173169719051484632364192207171576284303877563027763671709143085455977511280949842702649397293529980999985635999249529373587234713406851313387223516660221416816841974944525940014714453683194547280130921806227186526336192492151369869534791211812284175478286269798704516081806631208150998197897967050960771452715516702552351262411669633419479494559855903242520572013967095713172052847554154662071744304949383116572816929336965535901216716478122690258765124019358907014804440509188143102515462385117881306650492285017413713115776910165914415734890513456912489208574469906626240904491132674204094957294792630761765985683052261354967783873441020810100297133302572600618690719005451969482488134092096510515575690054896305583262981389069424233352235511480035933629425710359723638806524761459049706426010920087686685168286481261179248061268651952459845718104530823195046009699576428355094301151488438051882571332480604312669978664593779105852393338782847637465913854075205125210804542787762555705524096699994715711584360540700320362629932022762859766760079192139100030511614081702826406104474042415663876862674150678700976918835281191018793697781638558980805011526458502543378919864273783111182113486192071693898211924789719272327275268382688667587305302885449277241286384099988200049400694114116290067908532870015363924265810632343915779887756171990166115177708241163570728367001190505978824861384171665808960348981589411565452064422663526009469858572817384703536481015937991089963497260013232413359725662489136176075771003365999974895310344588569156834060033995737301547177852835689065962934819813841498566358886849729521813148509098729075689318500356192393561768044690399663378136541832321775316683792332153946405870068828979035044391227201253155219850439522939750265167348217732052191486643890466641333496719681751573635072059351841340741897653047303996732224072245262746422261262655229914861016843503306244871239581015553952197499367290412603109038907212980935255364745668442348712970944205217525497475512157784694083206154161209175589747866718208180165675241884876189728480086877902156932252662016882852528914116875792282104426142752463689466708636787707703492855352940648588170251675350363035779682091208083530037530844636300007149544777967623340378949750550988758622333650113832498932090459648637882892401756146597356566340819563634015713359915204433999121727454052303703666995244149153947294550090996220822565749170008886804731917057282505442821108265980508380182371143006998448413968416856183281719926432141704323675975206481837985576073565637001453184864834077781621693980503870344283812515669450361777384058001730442052910757282801975399624297524080121327078715531619977476751060657807931306114965749231909235103863346673528581758440193665312675416444065828794930092380400240612477682129017067519136800043209741303899782803467426532488028019206356753667501656986425091591245559460416887156019668954603180457646695803346552980641940961504557091828923315054654518619929294039171606394443050793081910661231728478329121049364941841448789369473694813867361036453819564737511171390050525265633637121782773703760698088359834044320004779479754791308122567978942801890439247859872878029911376589232854732590358672597876290701297783622159523012216605049167928327537424636224726243547965389450580968404466947861277267160230590952494452978371322401404354797015670679845570790236813050507941083562257147968407052433844520350506105033687709308058242824946347284617675108395188989808459800612907359586727348170034386711355860237329484736312299313891403355641430302657078842848688749115091592679786435932074373981760251867504007503066560727101739152524222242854452278092182745304992338019941868058611591426299521488409767150276333560234563359206776905671569570379346318872146458464338905958632763124429667633192240452629056484607326345449279691931964449952247385933644764192734064915562235562983970265713218579909647690380201392229749891272048321545981817449640986047754260775626593011427266109703194132150834955927453267363804138098071659894639862603433160362591370753725421481970574755366333833602224298646296296964653381641790927058667757154562616257092054976420037291410999363072012752671574045497897779216461657480417387904550055600605443591740875973959934458408846905468304989515685945373570607565535718915979862416457520248166437659158861954302290869048805985018550552836431528067649225539817564546543359394448358290267166476717567094121371785392543718212881949880194171006222847742185647549236991573877940090827804014354571076276266681413732546488547816386772614352878186124848827455775739026719538137371462683326290443234143436066633493301968682014458476168373441734945936227188380202647832838087858462693799348795510237444561109410215722261444363871018955881022119043731471416987036620648205655817470752665687290329076338475038370414800024994571204346236721666725883789854845421966533777114959663455649871133216554235180120013159735301799441213020277766479340852262397623271508830709758719745689832328480784823759629242266025506609302781494864789316479370580222350508393339378300585941811303168020034594109630727543680690478452150043333021686978600367448692807945872420997280081531601099434483246873821145186100653334250390463025899624347011789723801978451619432878295979435243074918214520112626417786990303311420820709719828518352399339543337669865346300978173230453416660247616118684429774418440107732878523378228597959358049700666803090050540165214598455331538973101955528997216181004473899388284611601719450313979786886205756767479772512330616052463263367486927283826642359727283265725802273410927001274784571698053253583254353153185155493073771832302300826820972127100542798892532003413303054802594101016541807412254930640467951803668026359874819740525650856980866795237833942302217482682462397249724845408252851888597426791091149782976136231208397235915031315207626371706225530322849166246564226605861506913921620861123546918784522181040551201177716479243733827332473030405705744082615120283651058108270080095412323040703226751370458964357553643573742171078698493473145703855121938924965930847470528189497103595563778584866468942695654138603260938384109757365008283248773030604842743500022581683680258327366959902789188980126980228143893909836118961776121848277979060058169421046239562517876351452518547957718970848914029726276283083571797000194065435777575610854976758823983473662626793226899944788695188977288214004531651232838091041955928401496501375189120921629584894033799812563665925665430277437739791654768626213312784245501717933446556717200660327032409052920223038644196465329682560018418584537032957709845589786354982244682203161310628411127798201438970128966158310716185168389089128889633109244834343276485779525267913678522189745305528161746113622231394581347887430963877426944676782922934849401091171095505815344619774182181912382835473865950866157166944036898550092288033249149830041531891700470065374314694256006765155353419144485551701909771450427314047776299673952438461248599501139093860579620117984936084764439174602423309981104407524693576562556346551443429167470466956799828787688300210697826476000208923757511909256272799277628924660012609541995310472797617851733662206605739382724202432168816644972266098550516877045028740233450822729641384428234192702072478248814765246721504153780274182834557112763938743707005817023991076880052301762996410852812425831997015050968295885288606681524747434112544156880501150611171013723152326144446989571323559923706463849837439621486934400152818806950685668697577610885499827170591698951942462272493387831441868237208677053033153692205820703346957989687785064455547352766886223079502639127892188321304659362654456842034805314255443012583284209627006615633795315301404772272799011654304925798660051602683935899888088409606139147964279689209954529058547478426576550298953579490844488358511134480790242052112745062702550919351018337832527981795616445700061893727672959670704487110460976578416817322676935814519490266313583863629130664369536978995472184884880725946328398645237670682011993933890033911077815022048112003021795963516373906094352388407330786841404939833770725266312398270698441688395235702188402712332630639087411309784006263977440616568843317794357805826353846382610380763872246862134620671858998340504142185166721232536870813961640578855274960805696380782679964379323096995552707782092333482030052960487300350207445775648820751189043405270993734618408719773363293149975317756922435334674987672747303669908297474057532859500633326665672333017161442770339484847538074761848991267062188236734157656771534757796112083820397329182937329297662287223810077830987133193457569817198310867414542785025277737880553146097646290871916397274156547671510163047473206459171767732359511202548030859368874032228709971445630704479519451291478671468312205030946358437201974705026639698996819886918586729520284953971441205620205145350305142666212108677890849962393282790393842806311622058733808394621614636835884942941204503476288040307617509992810326477016959522670176643219432843734074073265461065515557335182717955480584448594681074975048194531567818345205135998748019296090791014047440611418935031579154772000216302331453440478143000337940735543013983258391827033484118245020034849813264983083140318167166562391556690664014969346799101593303682076113905266028775036323084334882593357900271556456922179410711103004692107753954639345395958910364304520128331891941121275305390414183913217717117078496370674112308248017153878417794163123711787056239956403761357867736735816247456449353464766911399238163344210338920156591047639088149139784287691422607326925107993580136117119057493331431737494991653162783347096860862634095467607500312845149403648825981489209120584497713748530387286656577795486155832753190240049498577770341962038597547496054786651750753977329699997291667615437936462649995804130306109601077009608404129420481802735871049370941430581902731295441529913585035159872450905355237233483859307743599124924849564328098803095480107886176266660163340317418731940202401502285173621177775263996520584140682112322569157093126699818679926813066770603443762553907148047248358758842421197717676585631984451465104446982434684432339762870234830565028183189256802430744883774748015689674352306405418591571080381599098140968348128993088508613530926465104917695502600139320347457835985520187391305731434020344437269287323790616301960496413829366129937625199073372398612316435534549776955549306569741848753386179324759376231971357548336427046435605673438501612918132353320418270096474617663270743931366994236703434804170867927974325217997694634478813143052553922268643813285326266802932872473582197367425767909881678398268781836846274034710337811712585964286945120116710408938972995620397669456026649008530569060926720996784625969705786936458704351676305778391381863310374476270972032177140121235017057539415110158233044129222445086752442855812228341540367706152508482095058936589609130443732139696038647440580394206850303421949241207279388196933779686586716098904832519735939971634917076858462004955798223811391477442190814189890610448807132511989574199267803255636043776231893002890621596192920222472564182170272642743673823317641403394445411190036585911669178813351477597826241652551906788974230738928742675900594828170595211782890247821855057283019200774072385963934042038592323842287043038415683524631346380200004903650008096998526216249138636254694883128114239269631273669035154181413664369142268701084223631736554976237969507708489506832141724845531726937172140469480201205532669082656548696918332292755950204970282408437457681423398666909261855723800463190586497076792709552949175270422729229207000525904519643601017088419135445374211082726920426442938031166238321702276785998720445786309404289705163319410616461580556703765614546306439630050213160614578421783150266330182074127647594646275148751210468762981861435265859894041195763366954839709693014206650561022736439068523319242377633500672296855857603629332315289232117891467519334563413782192591778896075299251219590473646801968489009674838725519369195833547913703752741080684505518417184395612795475652295820104482647398924951038055883154869363121324679930737868938881545947256512198604987520257902220901363720528928886308412580060087954144752186652163022005307132292479226925533447010368308824611696985055455455298213248493779557418375630740047345864822889672081402048627909652107815513996187908374170054255209785105672892290985602400094311190702973464771501312691222404661918474203108143893834654393578917551084524505581933742662920960567458635648294399410806627158941718280588268037741228559319975876985156177332800629624805999985628023989915668121463067748440545140070559742886779384859662418092292788844724777723055440349393965872670452708116843665162121169806981073789946564181768392878634970548937486553611234010482540734239606877381418023967903945718470493804675076424452937609764120587787424102593418753761806117706135139743578462245419604259446870496057332526780016479624536119966853034656877773188269085426241016961885888346033532702437411888028722980208187440829917006369432231266453463756041718530074453894910947061533023117868760885302036596866905246873582925061398711201225332132310545718214047433119588112222386549807902575678969158595881047895745427675163941213091784852311030694458254398100133897524424436973394873210177548119589833474763608830027429437256013639181671254394408166026861988412076951516435869089005242926800067912156632135387831926219213288812141890362279006959299894299742339043956984318497060213317863289436028108972725073996286113912105656926977739722941656969266079185549195987916006658676362120596910840611091231661659403422554724277642745940781204985163425534192957170536099996372549947135318368373601164323526921026854546146832792577422587796984886670603911008748675000154230804913034974911186811510656569581332861767400189935497774291383659982865116898413868878812563615384171231177541338932288438550143340185590558882964331705472812145027728338446755852316309440642774256281799405687353266476888230943801898734258212114238188373921319978736591138612696913063934235284654797341757278900803805289382212703264240679378546016145318807535999285624449274595207750224858083190021072332341997419328475464656236616527553070264556022963467780791947305917278055719811780315765565295320406926622110398589796553268291733696296573371461335616355194130406371554088968941139220289088794063250557445675041185681227194966765589037703755970380535196950115259950867961210094515599852378455445835037106848116413239156377398278200675646403782115681523563018835981151886847899751634445363080676013381359474867939135190481427595421461223727867777870210828676527819533324989176738959133158879640538835555227824999024521057203014705065814539012980968181060941602050282752999890145618407399997041487440579039542283442297214230869025137110189397169276501955906353630406850334458126524807890903832288277983322011048935509856599976601002304933801380072044845317602762543259896822400615942682354344272459797955801662381179963833345620422027281591532712298912374846623643468518104383431681075919075531482948060964650998756723495610948638106238064113499836572066876635166841421008577053879913716164127738188035844361338842374566886173025639581280123268344788036944415002825395705589554747282906616591401263652643064561524330792615462818625835596344567443296451844495080534471924671995819761569281414007719266473304915887695437833394156383246164643934376462689363159249986436371739575472280067356217886648759728952686275809064029750451412274366941186651520448549619856721521106303869591358812315090109839556049157666998068526050887426394974359073267122516191205401147550037167113988238725881494432652158778464669664976013408726650145316175649139468976682233585052035132219449666634217783651133870705456535472872185428574326307120776252008638216770918406613664217588293016840680686886012327312314573582540006368343725155575280072405747871062002002837703981172049472712190581329480642622666589034988161437484490887489753488419688124899857636393959832825206847525252712493966858835409677476521920828660232451855797050028059777129513297166380124711701167557585725018885100143444385216423364338042969700334236835025211642725332573047721782033108517324337110730608912059113009489346026243687957404410094746174181376964720967362962086982793398445036692191551050925571716908541771723476108769897530563768314725193372005597608251766919265207499528529138291929655249498681511052868609189056761691064819091098325741276603103997100822551381227608914588172655043899649478867263711764581549185576032905885424678797239256828186137792648467911378419919043036819771371078594102996329898051440025526939278065372005822316587619675944487844274589640690280182581957903967453534610907641667241415908762457475009559611918161712542849459014055804960037409328424985599257781607329916325545754837781385472404506717244595937705688040832726818410107618305223094380915906847737253852260332159577765190621288114321627243503114454239478082918142752251593137287444149851872824426377441918495937452256667478017350964959116671270715867597126042514126707254976698248114386488550827667848349672831069488244860827545061596614380922226317092795710123065925817290067084138129622806596136017140833082254207877990241457409993964365184521058910447285842664718865125583401595092884061296763540167116382921124844702488912464168685773699581847415554712458885496314371275578028516110336139906462038036119168956365981758222975185914776400368462501120604968722353914497052631612452093871501885854627223197771973594128745839053258703914444145971065977345246855703116566458349133868094176055368963588056791437028041834953694440949198526032942290788151422279358809344826478842688769811918637449439249871154226822094165865978785525530305299903728927859332624476317213996792689144599264718074727836469603657703438294005510132681774075069084344927499788416468486998801008859785202931773348759103049775273959675628418050982567394133017471983659037504992926313893989163478912870345003073635277321864068030814158088325375252525765975569185957705794558318064350883396458254817517419282979302909697214742471211411004031957631015104693521844913980886435435279949354276637825166242474588776775689510021783036082485509279178725404742671613415916817993103919780959516531941952646077709032492142870215075432642681276904275580123277889135228652668085630044053075097987853149817654625866767802114341722338518166179901788681868513324633140701717110022717099136725972273979721420954540126602218047728761210458766525865842392424216159700577433055719704224767793504825982326768948656420259014658618725663726548695296161344900916535334488968377592465734227458730344043346393834852614207384822017931218525406172700994526949762837325214285387750405429528233253129385800961055352683860369774110846290958327096316917575068436615808076720801021497573100850603283422374452738858516311421295518743837336479860678873356031029398153529005865374735980213077125169048621877505719703584807189613336221701782535604132590567136079589563286005072067634033096316591978612102271561819826067374473721059392303649335514663621954303106559197582360453121921757605033370275450391884088170365773029214549008443216295855788211555668626490913694478725357294270625022254069405509290628422822767243619540403608902719962237736874753162963477189645807821941636989722308035761796816048327985080780926447913302272905717597045285367248908148462405490278267288135006683357123295064159265763864626273731833407659528231324243063234785155713666643374864235612998819204304267068314056319894239944578468577144088992391665563978063197308573009932182396204416088765771571794277465203331332526002852713851414868656471007050696607571500396439379221987201529554215836083758589515306811598753457647613366535986043838403185851540498306269411125066198105946264505406079992017675466118562697978299184797532644168864055926360353595008043221283487903493402288798873614481141531143813685822801628461676212054603258350646827286817251063213670090453790839761169013752046230365298783142439146138422648148021363497616962449195286720899522006840836675115549650259680021556122522851588858718299730315369603150972547819827305497222432828562659815874411634991469284310885454429640752632527784070770107273396448569426104204881568575769512159636697453722758909959620043381429635715357314939730570972741658197318575373501415680425476229939185489248438878558865554472868732131832472963574424426902330828884559355902459613616219315044839313683907982568549271175819823236484326426459678515508796770299339845410190403530135381708550882728563042025939640991073241956425192485068694792328539921610666591766845470279394132642356363362535728564514489963751778823651092399714529402652701799521196624470368046358939475825694632615901176233108665709093954511187395618540966734126595455149111545777205963702416996639355408997180250421950333379046348242206116834485512332244975419111982819311588802155314198400561953078462986248217207562547475167320165783310260372750719141079868299303891360176315298666875843617271460961502137133405309643076290741979381381901266588287614147599330931704705635240463305369081416249855177868885035908402327691952369645671094589816558229679670632191986812606775197341331271939257593154376219939436949596998169356417668589328761272033710864594514502396342290360864159520790794923953908354464248692269685741466200982658491770612722176696093916996673395179178299967686369118839181874072823063905318060739698107071641960138680644253257454503344610357049536394028443005385965584613191601348449172594739118123938771264193990546170001093086892105357484989565222680655754246097648515638260855475625544395485541488349371815766166370735484504920146583339112710125214902628757540017171371981489579437431273444318945491626415215050332717405584034043670140826689053246389998509187039804728978823044916895306797695501434615960456067731259973851655292063562560578099847511057784712593192506439189078642754491148901929236455737012019885031236322091868109570175813528861474186929144757240705277706274099809259692884504708540403064637792407637107328287683835411130910556745249354897660465834138528929232419227260452609870753195528673029929096375152626381793483427963715763431109534834811397953933583403107955410640408155576378447578760350014700978021358489730324698562805046274238755578675989584871531282318376487376101382303800982012748129000770273708989013852757633362373850494647739134099248501922661810502942415952654557211498079496796078370086387123570521856113349182488452737971489595825556220353782095701476490707927452854714861605253640196103316229504619796443836397052348214557421543468845909325570141953026438670957939283155986034250119810904604648748104566895850164515559316286303942015320427208426010346651038995429631682160940515762028540044615369772088996297842788582937646884071108934410791492659658255065649833495426125439877484859036908419862897493941494923299335992352528353372303202170310541298784707145178793066394793357531040324103994142664008022821422774113821904486968286696526133582738468934359884003967690579973697533236143005874624073897045480498860070115943088272676525703578081926056010386447346229655902157596905350427431091438424406214089673547973720443416091809192788650325299508495194659699940402899479869869631087682827963631758492714204627657253278728956978410696542801539073985878974175078443667722601513492206944481424313736898435721047804455724720591317392527949338028930169184324967595763951864075058054373616380282814602956855693270856947714641180028761633371912142548619544085597469582924262492822391755635823020304488076751995617418165044822013893046865418119816207424655379636712623848993271250117640932328327982137632354281945556600466527279684205736482018911521605158396453853136705640191044958290490829480085819050933190222336994969210771449430017344438851144866694066398687419691843907996597247707692316583373765475299200842711852067966234086956901948738630214272149273629067388802546946400282340125431340142433711231466300613262502970982562064903876317544456068435063833749691486651878640383645073653593036371139520277068423583148123767631917412729016337905540386765011860021850508743590485044086576496534092031612692607591560304928747924014061407638765953050116687556021131198524547122988133098129773945553096462789203136977126404859936107940397853264584496726177421131505269286975946314494084524973345515011925770342376473523297609943819194364807846324339023000780709487528561973502743576904240424576533548910059133402043714182896908572719599351823116823864732859853899892747154928954898216636154981614805971745546045476002059028510406554466136510665803271661219692789667655840878215931864157341258978906771996358078604936513307398982295788562315252796083049092102683059737113368166988341134881245893514847836332697845210199640238423113559936846951384680765067950382772134861016227645955853105673930422278127099124304693321822839580080100710631716132522269174837713352704271750343525743403977575322225754787975706938122562606422679409715776354764623793447775490128673852505267918092026902941964258473781238776155846012264825488521060734311848336033516419095419966159944428117505862786968432933170315133767870725117735081149142389198820082448946557211360289532985467318974524166789304678795662492832510521531383696445082962757540269968581202373093062832357635400846244051170753696293804319746385969671357791901905997727808527259816782719975854338881666295161289292623395397749761701266258543747610894360848149098445015717549801931987826845000588248246048638259525326500795435255112469308309600243055348726825611167895913149640433152472163082282472172625657469144019422377368237470941356040099612146957898108833056592373655208709218895141118441602489914872462578466833632324440669696773618407642724321555877809383216920986118658134403929487041213551451769051889638439038179797652620791524114590752469177728170528535605287860317096813371007531691081295367819655942724202481401867757654060870162818874358893408590165807204492344214636960196402182142838354170213112987687431243503479568029374323804611884448924018867029846732770845480670401977627388843705869929560956692459569778665338137179007175235686402792247465193909138887174656934597589380212142103940242380199756896907429399614051608769871100735054558133671378766728656548342051777136852312115696091633833314557803124987656781216186579189633886816784453566625785419098557972393913165209592380423497125521095319243854487403675045850702400540224325829570353216553838684344327887923613610079191920584797847851606361586636713125975808308562167573389484598764222514572781417091270683786709541018397721629835481081909299856108009838919089416371570153493185189866353463243764613664595258309152518938968174230636313347880532184594182049496849080941409748221652161485109377663679246432690827967136065732378995041746685517280441948066105408468892516514916321669889980672883530589207952075916966704234996617795410984489580448253916425246769496279111736580701114463988372266120648522699967389507213230687016885827101203323618784010958174057836047860709486978544496931372199188766025036151556833667495651202332708437962638228124047500475317678781896279182811879219039858169700498993713682520295042545054599982645790965665962027406062112980428068207887841216142912291856483962679053293489954460146957690813879112361541234875126313756655805657440438225346573781145222603035483727782731131286034056832574949092105231486299041542681960681386569083422082965953320373650791535154055651713506100674826035333868574103103338625542670032780159164507517233019221209653186209477243971339393917119601779881256437431419193154065223924579684911003196279026631273723705675881413371076657305660582271846183534911710846763598550299101230280499091714418198151892750956956862913215942769859948135765122528855617832260164468903537796089939301207770137534919597965566089801533004118860820484666721063520518904697297037536855878916204929706955416041808981489279734945847680153222321432565916695041844477625772916833216230643869136447039568735099764988456325130362199988514752316778494350480444972570221164562406445824799891584454876774762259423555881996359796267916719995457765218990472043832661458141398078929596533364090662521829084264186000976073065823370440554621149880662841316843240346862233676663347444115945714598146420552529521462435521134845253700688725064400363089613722601541336360261507233446862720752911179601868371989540488608702021972241552431132421216221985737988549922503304147870887290465925581316042584197482839594230873001353871765236886933577980864349610503529610767325023902581657429456366047401713063791554278470427984413847803543477355608311037144884362861134819611653128581138192752429792699192923930461557256396456391193772917510994668293178481681888736346222023259021530251779382677907817690721632891487854119660142139024184254729550403706879946746144548238534145528686045601806832306296318724197339036513756085787166851025580425246098644123688185253877342570078417912595581129242619031073756619964637111023772442564568300682644856625209648681952827819878570539547632040577651656335471389175122358743075386069310934783226605957990862160257622912724416635651012614597115043531222401719894061428349671836925132333571527215023151363323729485438159989493341603208191407590053842161755764383427197662634076045245358578980809491097588464411822207972039647250490965805082054376639415129747345349414158387981540300173556266571777198593894869083915858583473827685277926355416031689329606879927682089793609008775255268200420306710334992892770936268727044708434501746132257245780858421744358774478541426218280050374838244841501838286620556355869441542805093085396025056396928510764747260082350225847983005514851987889607451030329370663997600757112063252404506492010384042815051150574903571398699503274486420206668239263653742642208358767692626376141888691006452484604145350336121565992248485728058528667657215369329635607268544753666923359209332707459492573246372915039368105866150408682504931421331664122384690765764492391272058451070250234638666653690473106326251554766252159236956110725014299558817461207116149531109638678049044707617265277294073640248061390899854177826822234370261304211726146773858190831114331054141134267029489873314109584615048060973409528080022985504203476754496469470978732001689675391216541058522974100214245630330344402091956468019167314807415175561468747119228193695669079038872682349110130990992611395727032418285305872964428808932699996253723420439561589950303531720713548295858762410588047106641889723560496760612622078673652491663634075100821021070339328045254517965257884813628890810218370384182269445301691172942438790544479891956653767194694968402289305270953350425261834274535493155449800347777034247054987474601601179513810283867539752934277173643739368801426094965984555634914998683128436993738485647681549364820272193032995120484858065506711757267270106412018968670023063800731150435287836632140299191265886938558175616426158002627131935452644066984325816243915554582346478455729363029814417720451270560987298911424028490213462609542309386789558242780929908759187346892667748959359602875123413343308789929665402161164706823372893933243358385870313872077123441901509814025452238191288125109717125188827797523520662318824440247532160821881749639736189425910776932424669467208838188282481637972799306121149842478531747308213007833431131151988535943344059554156773766135445353667539652238965634604677235036888316491052429614188434164449604659405999384624248973900740088147264241925947429476598830620244746033127279192861233629109568522533442307211541424131335053081918200257208911646252980399304823625063842248930724161020842558649333911507130503183864028345837074983904862930855820820661116830830087909194450029703755726050298518048614024326338091101125190460556012610929112811668525442306344962352012285514456089986096384234901356489610408656338197658529265060788246448741755176042695171553360173683226527420936792662135821412986607439348935609130290934450667480130732747765259101740389940505010955839260673211017863433586984776421331648008704630972291174096875779797395347915875707074983732571767109210605279303000427284301097646118421030123146700761761637623756967378898297542498093499255784432815402190287899841886825629310827259616538206795702354675131825751865177281332116254119695786268079579664042071123509072861053482047788382855932959914188024268322334117256868276610737340040530508635906513726291385240824773035993352397106664897689246607429958942083904141461963441535521573246884833301499537749254006737603020245317294043665063291323301014241035992747428766527146820441953286295599250603589500696197951970903628903253184094244537438153117261208396485269236400776733449699896731078779111669206724972169044628793450982163337509428176920344386724056278783429030852060273288036424878390847861864568317146046919374119448874490165878361925654757689521482895954676160289406758361224242129615433387530194304104657059916348450528532972915126494313115270472554138459538167171390057489182328715256855219936035067356578574346255277278236034060286903610406926988533425780142198072077089689046082474580361635735521760038707236963444447317952874605971858387309329641351891355621964788725322353768127364800666575476060033509056710543957424729589686759955360156305102959887421881764872602690976848737575523903093102011289933626426152888270162136241275293498641274895546610559988637517826940190267443063109716655528645439321318669483300742005065912348364759653240071006396327229312372109674342719840865495250988744635673952066243979428702363467944034294909400649953398204553818617368200770499088163290180436125212612041843528495711802512777983812890581777502529547257011693390245217711191984407944168627949913420980179064791117710363885548639499938790073300768070848961122686803968247500481094874345233192900259235278898666376242331566335532334393081943648375492245062295117236372543721491847809458889436343605522127781065796689035916420780160211343084839436443346175402536418369591717538312292597630232329697087309264878720714897664429912044060898616602917017377743057667994152328813454335678957307518000036833252263720308410144057994934036023184579906678850382546516927181750917556857622658344439157689690121850731463072020651914967077989887305438052761588460459203863802395013992148437596085833873925358949234769425358335255202716017436441458598123329989060763177388834967230374866980090630621709650337583481491902934611736809367719957655543074500682641113536776522991547309073681567361296132478801917929973057911684178900662762417396583762684668516101327970523396926895535149575605429206293859634713012146945798201214377866961939579238736536386408693097554363245380368159844803240652481340316238612264695924728393795998165279640895787156267862211819302936638944813917311439074933407023667067855464269933430970703365511392355846237412243981155919722223651240529831367696614815018296503917054817793341401268677255485539375048712925777417664814692585977090032162936928570041506083371070477477566335844933272978724900751701884416143643593844034568157069315467165368431598639779682700108044443159023893566326976519494973814458109058203107456184092490030869460975511317698173100489122070038842357003773222220004393395041327275601945493330842848698171331670675850215000182955463469764261874491219343366795925971347366241542376998358017280320625411425767850135270627545429232107080155942168855016995943332460610108693156166041359232853153402120523992098860398656840308949906058561833749508168339100748634627272942595520850344165626503247746572860020766129202428277606990129253928727189008935630891577124098403011590391407458692545972815809166506902051488458989432148328728242062390719612028273660255051262689201406374437436544371017039052347462556968012535609100940201608154976216555471284852575086756969950194819780870371166570735943054140974576317207569386677254371122146073835845347078349038614074163090994805642179595765912113367431680149566195129172603601545288710216618320754667459344548708006377911829499071631926582889335344395701508406032035914067696296095839660786739776894450065723543246346067104534779969536894440974869196079647311397705492390988058240120776573438244906529829722875538222519311131087131082248051890679004150832425906090044785847212592058105732396019413853330424162836986586350551398665616771193613357518021293368787113639147942932018521794643649135411559117972800434098363680435356063930387070217004217545395117553011573780484160813891858562753544628687827135434286772386596003244873858336628866017659334043841374928246754073698096000159601693093544610218540963707327713804687202723450711822347834928698131503383712599749138262295657655071091024710971646412419020157800930832903104618541044193131884306707042073328389753618197455210414759436453362678084246650527316284230861347980299862985922962167299690435621267326492056338091958007048001783988457940838357748075261769389924417524040525200960177413030725314660950914151731146332775308230748718089060002693999384406187418549061950353280871449727515079364042527826152506667482261606731043005659198216720623097394858033581527439161182302088416231265407792359935170584904058282340235713916319215420697308109057411498219147324476361122737742363954073303900682394747426108125448394576776136813704627278730161777482314691284362465696509601668035671931425950446351530110080385247405897048082207250715275462883508084821062701804885180351325749627090679625382561816627500202807748942975308557706313753358010763177011337463801414861661811226845181360727170747025555781619772155625878344418196720094693272773084393760299986670255397093794234524430886072017488212955506459061999339542930928886149615181133207240744688423869314456402351677391241126741681992558214728786998002448540634956611158638285375657761650031444093170153033438792473351705436720022175940947249639039482387408271150000413070365282050466408289145026796219422228447815087244186215682022708521127199464722326118690311284791696876184140956983016028998152480048796467757685548622930972655184306058002828670409261017894530039781196227999584735885721817131879747600607192583212027271438048019185013514557658110954630091026459569409785423012832999922770400633842923335018780459832768117486032303475781086991951148621617831930951398413276797802517314462078831152642070292840025073303145991751687563250597636570544629311007543574419665128486409025111665891594882370342434820911264697656532783777502563997832842323532729458951661824442890586423885451641241325525538474330099708629940414036158411688063370177123301875908992985313268739641508351960791587497402295033135525496249830437452938363022070308219539333923824413007861703571407057209054891294532463349964767970266081874477080034250004986554473244021573579991022751546409086826576061270237455213395605581594387308993661297710914783913254364408268542459241513671281445808689200567144146807422722283668594030111186181028900819753801536484245953965483856000955560461369135317343135927100783819538492090290566595394584623565465054468548459803482371965949276565631972978082079100710964675893677426925085086605182912746685697848801149899699337162379558615102348756416285309480640854905746587687972678480112145496005488298750684179909690444737513892151476387751290751650809063944167643580665449302852254189246842041530879895807764813682082889457907321701002646279972403004850313272508596683610288773936891080815304632991858006833035438835741966946740864353451551090367192202530257335044647765899259503499064006281633980187861007134493798784388673083842247889683244261559345251463368715171284954549243011420001628274072426090673130008439213523255401891422753895570070555743874326160498140262054903855052992581670002089394067691269689759617778378714137242474624380323045930483431555200711865393991847189241088472344432949512507851905646799868236512337700128667332405680010809122842881049887498622397054521392370093307475762968535587552618541105274892669061242386205731214874618702797333623989103635388752880086804649871451499743418688887960157453354544043051929460783937643442291461251845440870561423491362878477334596864996661246390085916091664876137184293409745096443881313526634364628677712685470908764271879549207784360199138110595707688519485149687612053020429247925954790591921982359140295034898687143891899858990450780161689622518664393658292953822429776509934235041876273498568283435150287984951911065910658137629126476671929979018126323595830190725601201077259079242725805534336917519658721771095739403927337335049634698448716253631827077066531345893068149787733824615595750544411971715356708136904579181656803717648145872953890138007392557217407717317112807188178519127735085898282619830141624812759981465308882828631767450020116246539879222226351892670743218873443686624900167704948918063106004314962431333125174104904614279305049108689120508513130700941526210088860002473476818089697507458732551530461173467479663666713261669844557279032900785689083012564086645277718205992001437300064818840154414050262853676128522536306801779659590332371224687100485165484188434551424353533504796022395314109182735446148840159417663707360030029420429346892093061715620940479894116704083727909125890531824738206235648135206908899171455525976481495444694050505286231111976747539209991384675739412864184218685559516203934441195845279838709873633030222024081880739631754270839685268019309394809368746079647795889995389164310993548154645778873362886622088387586531520425092260136335341448311773235497075027498643713329944621486596228296931314333062162730667450057632621312703550858687521224414844581080282323078253958248101920449979112646919050693423404048026649981866286889494812728050479171514684194539837621695598805354370325407527392713877056704580582897005367630807486753667601290525168264316875904405907685188791721109732861725384972871923719965750979900804461946990371976326945925290877901001552626496720951729379029496095820255940341399035967761451925141885349544741191635016113768328400174860834616522991513783887792090570924836750127126241037381490694757779748505212446360978762296422633220734553395801251263120248704104007719651511724122014021943628988567914434828801633509777021918302737775235639410366216979462059996484934501684989275755160996183733501141533120946870776770108534506046518816682302525903647053757588585404246395291303632281687858264328418154568065592187931561312533341801790430546721647360426335606570278489921481259024550893864052141969851273610536081707844153850064458917532956285675875552588114410445441194900826272418623724081925251854947815473708042794038382049587839053291118862137924051332649511609995514994488882412020754978130181987354761190609320628930524516761475513162536151254266911800817654446796196447470432959315624411668485968928839350943024447445411739021247064188575956601235688419478535071189209184763233119127979218079937345283775357062224865174144939699105018793786218071980844915672590084359078383223371010837432434938399926271935000021073987529560847745055382524920497583715030410773088332562860812702521220769537495130510622632078743749421502000405765013605599768377131397137500140957785986566097363571806334464970392908052680657793664748435222170798934892001777789168538816253793207701576393228471215962806765596537359795001767542441302456707707813617982523048205765578135610822221516319373928724676717601062101019272826857310490485285040808832228770540600083514618892675391644322360668858274134467873421430620627555712049744202607674563323475335561078753951290571942668785765575534467674281702544900050118118013878396992560274211348180773231721812122853541004513156346285587114804043790517501905472053725745015470493980729283088198522668777064481403903237842251038039883940938065736339058738386143286218565718967859740351646915719043773177646684937460910919262698620770599246256867697340546313299452364649594560431120422795980312097899037277897574715253812556832356656453311226768584468474911810081669682973478943996997432985042941375028411978163618532826257818927624254860677834636325244861093426319998867276158365701025627219083374425920831591533225770476604321849319056445401108920958823545695279656936644430941000962740825574785593625496056008745811002790605682823736384399488525514108603944962568795458303239319999197538617443444090487036585650478000520440723570772126131142316360796359296479389080956749430952337137007939988536725340942880232156800598872229663911167848256828228988219372944091140429932053921417871916803680871235731413486655476481945882876514942827296600822718986473165703087129997245946847244963985398182421866478236366094376303397821729522759902818604434098962799628524211319958633860728744672909528059425579783869431513126504271166272723358326326122021028346671657256175370935973961025469978328776834815675659074591562708004502640802351619689977010222419358777266470581559908050982325878000502745482650463281527374005698962207304318858163303324106681485048616471926209245193981645498901325905766355521753862749653018798062187444525513221224744434129556217428889352165822873031443917645533321854748566459927326236316637807072174485390149880699377810109722600843230750675597494361786107335126873190326932730217003805550345172528238243613693359225573667049744574743763679717441752282328493820402737972743571927945488006067699581311544859891965153645310525465289876453441749873126218686339253329179129342351848607615430881808688885053563064913177108506357194747001132924924107598975731086532400618800879201928378731035216873239978161487417661077222367889638110678921752524905682814990943254395163060727914720193639184020650589181504569979011209314219499559935026586049764987763883560947604424080836168585097163977670155346924940484053132221508936407225540607884633510492330000329793577656655501019924146028047072709726607832031843452863445852394180615109389484833173670562937131554674884039605736946510143288489986279751726572507482816355630484618450530830009463726022998957397476381829681564097262714206607669552074373390031733797843334367187010789401528135743928885983488340023000018298672126430795595245489942990023466758013467004358757099576019479893200260823978043499222672814386143307135759719879532562653835163680015302013380769872557511332371348650698289944037474267722772397865860198057151198203614422082933723227460893578462345778071595596987600370687381121646857105656573323714942281021791154411536285232398518837514984992967918870360237018720840398370757613792562785876124619000172930067646927087356123958703192810032599732398330329506421103246838534784404275031301293166463425228389336676144159794335520575277025417876962252361995468206960994554548870032544001704685212328033532936424273924439088378359323528679294131701305646214278981575582181122537532035285157320168427119729653608790937572000605099550734007482021370270766790051483572127268550374326820375333817145473598046316891528913323166833689691455990614552834972840701817785445465480397184834102211354690693859513851771175688130281300937837129281965294851671609418304336303391487228104355724666072547529399804022339068344509362787693554680773371274297014897987702381168479588224816597373452138030609211516576988806196146320230028219857538017444907674345898572275990230545235994933389571687630808590306195265793677082133935703797118731280983230142600203984980519945867386187423804529909687762090442700632100982433523443359090541821460232510075096616353468417509243507634641427132603563894069191354095064009658610971049043049422310919015608237974853963816108986657132998184395033108393432758804941297770358110332003824469747462820466216571385424434903253875581374608116031813646257129094458456489376824103355408836754795427081732783275472876516575386960143772958243439736586553074743007518892928994163609227563275320369834365939077280864941914759211718300367531452134727876190473402950208031971155335260353537370261089642948360946552816519337782760157919152990065796657103178272610313066497797190418247603369042531870850120188430444437484302560955887318335312954585245763434573403886638652565325143490585437371626766403106514262516372212901143927284917400127105219524516390814022994367526764501151480188378229528037961289523525204158159592522376015929816052609416957351755838620798627349278147253795463270012731614827674458101053430111364392730493036927463589702436065797900739849106126952029478306546630573467810415970355678584579703020073960293560741935561244740889074278751883775354710609496115308885124307098761859115136951657227926774656652827503336171426387162041170699807048914041513072566829658810392914136430071756503293544028523873968701499027201249485083948740995284170879723724543226849697426253577905351921177247331569912232107755954099708285064194227558616772482520891567922907967626978311252053048318948623374146352010160901615777482479478945056865995002195116581854864183062880491244695412102479442896685910170258572222148703446480389444444048750334698389839171710974786289713667498513799856018438305853467764894452664306810912699842740042938700637839668267164337538072659726294664524724780401522639183397118866758486040142761514387414480894048856200762724679006080662970410831757074988999259494439626513601449242979374503091172889317112630286216871384345110435717762452013903682519055209134952146885946451138455589381748297480974595129209692779998056179168165988503474926413594241288783483683810968180937722073946854615374208281887751678311000274117963555471287112669623306268672219209772667471405958406724683235594215584080409091440228218253529631259874874214886834522574229816835076365398125293638263524121128751412068727796952232159817723124023351817785139877843519262695275711823867295229694926374833542790336107297505165544737285426635105749584386331336404661029964908839337731936622507755779706060232494470606071709977215609878585572019404897883311696163278992883568267322328555035360225372036179655325597008625842953443752109723003465633679670703667248909924112099862482056567376966484536847219976070489679955271555085805535805245393775666763545680979972302091615672144872157170408335024624797139489442828539571575495219630780150396037708800821281744800893653671294647878028398309962849100169427539713073571668377295583151346969151952883422326849547104295776817985068194043901564366753176707946816384771783663589929492565165941283965381491080187755456555264438042452575978736567059572854466416056638713811094488843334202927041498669171379689479813236689995374329737121592980211165270382064229269308597632640888670656438278909601627293047995416229893902331093858849018301987598646374255762789497723657124076469879400376336103544749296493725558114755493722382110298482398145657906738897153267177254327921622770180417215136364140790813174642386751711933204654746635916153069030521093436385735889365910625964400092320178985013062386186456147985504020714978216990073549075109786107491498500130745198721973521304763030140575715719376826056133523097013068971072268089094349991947923602195306886388509886294560647012906257955691408467586892487525429197677342053246949978397325090988207010521429834596281780967346529463945921314479207563395737064778796164916785603317745867916504973151210992470809778435697921878885960851484536391868268839144059544574187213877254902747199896054618079515054937311423989094383163485419574610871037071634106009150149027122315862981476183456647999772467693327240413272370779753020171948239265017354497873824359923722536734541825343407017676471552201531998247415175286809288607847094475456518190492935906055574271311711329098066374254008600580374456409217066175870805651097922334142315319673144065082770727251566987857473739846053500868146600503450500885440468991500778748238815359069406998282181829647359831746514076245692590718407817993593486417970714066351501130910854885376833375542470268844326900549935496068848156342724337734795550282367657984586192168978561688496307168681320487924839744171130380816779182519994569001197869572908966983344730883075876239196477344081951910471009781039627692944176114814862939255982823856768449104086399265160992364730246393475703593887898702280873229295023795330516340958265715134124851581015730517054056948634629282574739028725556704093814872709369365926793990763433064958746837236604271964856570174615228130776174353862778167310677253348068422493728116312100614894504574274519678196279678403682928291551739980846132256891177827225105576747259801110014825096974551997387097864285594117661404358098678899509145892398069527522493251140216593663573541084792439680083998129889296162293785781715445381984673289182241694106086900059199038410257143570837431058670276822523025635794242193054128235892573204511556331287016029854175545845156995118884879724810242324658076807728910739977635397655201648604137037521569549678857868994859071743730028055779571670815503609379812210277153673489333792059395031107930326834550373219472540456651123710333780463674175681443775074747383345614398228007192011363773247538574640245280239776163201277571627084568969380663612775094503353009529415676191127110884758292523518883341968552666097413991992903297147375259306859052371224675846617966793825689189932623083782766971935241152719630585338181427647164741003661613407951647775149952008953812727181783282832048623821970805626979637581518196877672329808456173505773672669287239873798772075894648146088513811525400407853254887190289117058230659458836251146078314664988477082100798683255499239816595902734926445628968937615703700550565663808008554324958020241257760682764999755840749527297726661289510887649222186814330797544014401565342670167090609129491852104624551873795018825940653759195897901389765911980781233346868657604219943352165038954450114653086130769263515624488094477283859691417230076066187798649341121073263170994502314010965513965689236445126867266687572866167583542163989624165932833273735631967976009918727212919017870058546314885097837546444014786714876577956955003621547810556353235794966437942432605261659781571292091618721184047480106765284879196704577353107195107434830158857548382517145917785583461713859272065301486874853355816883358242019143994803320741974722015370054107295943826979700000702585854416649894075625511416707343551498215976126905421445912654398027730097900702100394716957314418507142916871855964239133617610724781813954342816394203220019561494209224362382209673386752643330366911763596391815047436383476746062927432411607686155482298386438355525327282802111462186444819858134670817026940950430691731587838829276289379058956337037427445942242546922383692502493855067055748565423399560731844212928839860421338056916434753216522249136495691104966466240598396206270778524662450397941771749474482779487070483062423340686044849542477110191212650425286330074809169576011095325456321377160673865691840946018939635468106460671433119463009150614219342627885776241216489092360865216284239387546371640611767310236298024792236231270136002422237914467931051755541627426060810122475705235453206409487164468366745601132393270997522871749232357505742302954101592795043721874485683744217834343560699590309457360843572529880419083830245711232343041663986196231106585824177881845602533728531232253534091101621055717532534744035165430338880179668115646460546843060261169359273928076724179417543833507082909863326466724302733342622710208624472599248337626643819063656729622779462910253013513500092462473862906844594556232699467125778502041701403167591626100313922352506921810849410245647178224401368747010829008628686720476284612029242180037125071334362990521930957185943007247511648291126962534490250331434152749666319091280921462393915419409388575361060983161697579301168778387808999503944198823238919314285593686776717890241034892751660656312202798117483491983062725409670106094767343356157047909135988059698391825893668973343769270806264527615359068322313976349519414082116710053963905311832776086203635561198311551330148461797589626007407423577088905121672930810500896763191546367517694337967793511176944282551617671508536176794261722504172526470343954703142716760134030844705814984337835163998227744860569064377581671903748119961287834239938243826798448818713833152235967197428724186703049582258523059488555956186203249423800366366281623488909584642283923866478477985905868534366821917117190193082934028952602980314739054259619290883038610731751530038924490967070050624261152892016125700153853679576524799192502719225754288300678019483150318232793351634809942474515292315371061122527249879005034304990960168207225481162736005518117434458401773097961628726301552007999631994646990362226267039289976403028019255263687072210507965719955742665535050867065732671589978686844364081271940690690985999794675836765185476512066681715979569295084503830881777479479709996922687661092904005017693652077063349443874041863906756281324676128045579003201969034531410431499120235814805759054352853868387764399319730260828540998903588221755115903488543183804906830571488346786639776290406626268966387380087485205993514750768747854638400106769773199612430453895012713302941049020489379347146363813504044821596695279359861621465383864477872271113947509577627892926313870115150993488779455670947227605902741092549164993043244968097216819552491583393449643292885251084268379760334138174564853654149875122048279220396056189426724537384324261125889871792911481626001138421961811584832672292901274555439642037729244807345727759505945374507698452105324749773723859321817962777568575064526272803801892362961720644885355931250067220515861684695735756622231315834812824923427247720654946411346838792712545648130473862860388342039799705276228519354643116169838063727988911084395052081791893071191363437983735387508774659601200996220532138290567324360536794171678615368613036918157127785346521975507378408436885055939215761411310257241940439693600226115957470106815730408190855111784982137328614755025253580373541054436290965782513857925110002087996064284161869410906082655212278316957541522148727808340216718546473178684039843265958696261794493355426432125346019871583282549318296813681842789429750627218145884217993601975726489004407430849817450683065494289714297984667137127152963350630086247991136741294998582108750385420976345554104886802877392833059738812687941883575681404209743884634767341351825398823003648136380064887441533929502434625464724823866234333753553083566429904534533800515388658556446544821010204468184249701198726434298152531921420557172797752251830813782670189338379483923494166429409739602510440088489458470833937961394808249966425858845738184651504934610927495435116125193675076716967897675019136040557601979600811123855459208532324018015430153505299019751517465592505081819902221890726050890511695434240255284310331135354301882201837082302254949884773883262569784107876052392479599602343130056585309627293744582135022109767063626456187785831285917499701185198343709837298217563058418055157954935970825871862769260235808652893368198988932196075023165729651763292559996492682419021040914253088557986852671995576830054165937808849816257146953156510685995896422793390965710318638959111645207373462156063204078851729090350363129745687431166312953610725546294764042930460989017808900047729731247598732718991346589800270251032385166125524396803288895058329458203213831031696857435165542853438882853242183565343749107266887189119831596387778417360924659590704412639043555303219858801739178424888126768021483925386870464009702961149752083037130240114419445565798214982427876649361601414501013434061190192934473424658205189185687918932573047312935627168428554931802516035552481714200960001297260409943191384910007969282244178546361309207145281435653417655426866904447786867785777120024544207539599703549031083725080484953736571910667426560539537517989855968566121161764455115653354574400987357104105699267042214917756837431695097355895526876492113435794776344188066556006390602918997917486064870099616830301098281087122463798154397528948442412233657630245546032596424789804151877499238731346122755788185656451918634248839654347393385375547942408009730628010521541626406246756471613739905397418055703366688197490878078582614206546178122976147372519556799561263313979651456014086067882126268481260136957922699561154501448381995506202955887515807884600967433557821618509167072428798904967802452105053600318072766193299819348628587334269100146812450048547753693481554937903431094210803457514831685221796301395881974021699185910071238966194531649744152278333884603495261650440962182027506581944914404554141886232722586642598841339633123236481868029179666835467599352191806925527950594070195446016704425234808066329469230005052599229259154122544045235371859954739856762372938069906527407712745735821155354645524028355610865507963821811795204295712209906874945882226129216118793299152987204255429851694673138860172205256559930543996782056839770279401565643140491201140965018543067825679078856983230219598722041614172000150190692965378512167160713103678587830011763130857939811714741046445233001818009940975360353009433052128286126019324641564376046647312903371882324328591906311304008429570513612008846627899903874256519020247205483980841386391260221600681227108292654444626462441679575670351392224019215755268487183630703626864511741333690205002261901073696979732091594530639711686393805280440838472974713480480861230205689317671837150286265893735770816435582270854978799845569149683641348308804336708803276238476808469564565298991284657162707494031491281040141274712545439058091121299104025137590478142195455904100391986578139093156250457456483802478402485167514192601195188364031881910102286147835371708379519040143643119518636603053201654822673060427338907353952241007392654763772222520572543328280927410475521269637764059477625666400544188036712989889404501000335146416767194213127324203608480334039015278845083352346963374700846386585871110373437109089506639716873371662327222170743859347488898740969134627583414384965187080258256908630680298936609357028159524813808175404146613080305428155003310794132763435658253642746845619673317381549752875273967939387025681188512899273233435409927191137854326991743272911401869226761584598871365586051866062798284752031214648978860146943914781192725607761540851308229817329388125733115445058869706943742159782052528630387477821802796727970331315889645263965618508830822876869340434906686275257217465986263376404344318741819059377721861708060920788638509864615153193128440348797266144234453123545445410214059535286700358463007129989555801046607228034515242455176046492562660258365223572110756451843655725247742820215785411508148595254540321544800638141159982841622415779453952067569503321111205080887316137408256407949747176431694400856097709258298327136245506330877000412902010889088043954228404930168266098477350013320239663936537722557611418679106786045570136373055777787670102695740348679273406893710300915638855359282973566247772985901788806220014466597508430919453995865411580309826987627450460391620212053602690436383311635543316714139264365507374482945071542244543065954418132125488237677827316178435897823515985837027697476054450033423346748239859768434230864989678218065760823398964877517309617887938795550942672739101030022766625048453082114139078340206709820134410418371457248175176224928390214473767565986945011857248225318424056080680788601439211911754973751911625541320115916743944802488567625566121928813568331182869457665111610059582623589892480451651750491465534301522871253712392235227979369751108726170003266024936158240688833850849444901363706338147393554683968516578512141933606453823573452593084319632247120026757174125682387709030527898055750799023990348694629193301052409625463533955535131884102395404973580747266083243498521482455798166595639124475818165755000560016570125237535178723714526495311222666334979776881840597226503933325277793197705097463367584316850142592662267127946359618645872757517062794869413825353510840732806441562628114978737420319695094649167351586213445305611278321347075744576099023588809385380120561673630731509122490240476299129044159178906279435695688802193805527904596946769486141379317814590807013759448628514466353620153042245729795237924331375988195444622905269960655547818485592853934933092244224659387370305003505283953902921490720916663984122553405703167724026514887129069960858935742618428294616331700933858356799663433565878279302567561744034115984745778329023714154256132015666531141271134962281101034601410152468259871206711621121488509457610215583894581089623578069110043930843460506858048182308546601384995178547422438325860161577823690802202720364998260591621791979743155287591970307031461355512122509151192422420816345490498792256862064549397878466650524906068100512769687638396870157155216883624836776021981057021965578534005937996770430910112605395536680602962597008693750775267507246868842282972998462058881145514822597670494695702917767444430264130650296921048729405738774161591625409770644959558510038248781465037772546671934130752991349431616929806564083462940353114661742771818383456981452985398951811782506315450574331559274147074140856940640754856452904439681689901498319933425250557377790456969316483042363896761701130626454490806741791119359320460766880391722147289634439935874425530972789462589026110220978289210376450328536026162918765354845998834997682293975097882365776161831830865889296606098897359840621414569088976839856341324963054944356972556018161406584387913588304239748017204050513791579306662966425712181169517459730245043166009777053826958392459272604485498285806085012295527759773077302817516349300813046222568405183646967872903246795059373654546388335914166652345856391333721649327919350078067196694475934267625802052055669376876515333126863002582217845423601040611752423719681100574377985703555244893438766268278406243804236157308309701993086433001755987061504163195515652710293461175190310175126171018570664946333524740360043990183738085989085527926538663444927273245022154935521732113482674289590463020610279712623528138695565325902122117022311028646636664748153733216617403722417640858602035334401243382780585750374010726697660759046830234125594506330608659303697060430774797047912993277979159685130413955845754405539608987549212911561997941434636780168800606536712931911397262710632254371171278008178109464192515153061142869180458051607240325486102916776508172417646345574784896227857246754351856824034945512851992994729242713901138506180804402304500756813721703571846971877180344133634905046452236072803642007598737779382307634352039171761918940446456205751943555979947297398435600183495304526368547951484577585475800077796500322647602156807562869480611953068965149277815341378318438249452395165936758256999926550414717532987386752332162074110899751136269184155884323378600652520755813496398343655645936928076997879985915165383096294869242215288446800134992463424847932066833293335704588890225414556495206506164228206919326208130845639660216626911735398606475708912702301991380364979700653613693491617421560248734383592226566415888778919779724548292260789303434569768156652873489574364666330201644704770054519034554018634217323358223741392765270187937755395559345175003587831074123168093981723842502229689038305756888685993337077477348538392196424777664454987190641633368025048933492609487907842796638413720241105884442320587939610519753863546962480175578987092534595243006095329863054494326515514536797973505062756285475471839452576018366954572667680990833214559513223046040743218082701737515437688634153468472380280514561052036553590355348781026032928938075350295784160773231101205223627891845694189033797211755657389608878702506800167266514738397550753270216693755135462341951201851509515551721370465620472700144589567320341799194013009492560843873103001412429937736299120637278350147870641312145231479744049232641840105572631214415717749016498419773179651512561160603749534768616641576650854556688128269428407069939898710831500342311907275735958650569332192857774624115304809224235550992418824932580793375531829495578235647346410038659154484489270422764822728527992558283393154487177234804776328551904830777255092644709132814752289338833485233642043696581992681556401806210097411332804837283508109282150449860143161654307289729306735966569940667173909953565385133217688832466600597230916916076349255438828596637612892384522216716984076209876315105809151735983029912561205652365163425444224121726602280277248188798866665142654563478921049948508755489926095816804901471286838201796239787219547003224820179768043110965126459248119430537828455621581780470653943069771567443819962871086968280777955831213807596245920113460915833201667715850854713024661218922050285966437116433849835173048481046790450106688734651159346615841873096857164404299360909723175655953129923643161296105899989612434444210122252563602386401196995016793788331977629181824851124696776294426623885582039304534408370863343026275873547257216160189759819094484525903127375481693880200360228941443120948226118150951590568201676352444594555767637491528448261702839429099268423035592238657994840118981914376922368058986260947088541697726382603455286788856584169677438296442395191141389687726127460686596291790077232423645423787052204058135522847494451398845435904999075419543206419753486057555019506004305523546142251067854443395084600568289710186002158407973794953868094137791973264953258171252696515598591333037117697743119974293987405390501326105633694135880505810954825151980702480723736969693445725062894972788060834307985682970765031103719116320214686083223319898113063978808860781176848829965682867076954116438043660753640402682432227822334926779740486752163532212566934671969565751894418773154521820233641516141324935069455906514826427432851183387215948414401796482615900187402224644421286129311950055448405049841569883849711643710794707638475793742436175827978867634163675666278029547368004501673457549807505303751303410208785350455540940600835285928592311199412639878632165294672417196836446771229371591589478633455814209182665149601861455922328749685678214634699243761005810416597378323026192662112316765843730881689158207329233572976042827667707809906754637475906709369478669184120786395513249554238338302312814680053475197158054779127657762541874127565991960430526425281547704039979259038165598839662343283783898148414384515369742248680499025327089459228727934592016937426389389793565566832783227357173270104038436175884574424097285396599409828532329863979558616466525493795203998488650773350128560258647034053158180439004152111389540874911064226789714166501036526809024118453631707179480714174860639161095923424453630954025248835723859023513841946395741745844068391419851731726258169286276568500710322004226789623568169286418010315322163268677621579046661807335994911600754925628468267413478069223946686646544944948669054547680598499612563566709865863627261935399184830531344608757092485000694453927371775766338495441929821432926171933049772082788143175301417803991340142158892394895558053516322435112280141285938478306538712705199787177746643313177235287379294488852394183488575684454804662307048284897753645415596818768178038286336304767138776385738325464234175371323655518933533034088661836828670735769831136087779963762021342267961055562091208252350223471168686052728055339128438881733524164554030138167593573986222909575440409518756212797538382339349769825134129062430325721680010794808654736758795926703835620706764470880563268732648701555945376764223232829525623402432597433422484625528663612801251239302108255495910482287692319817490385753859060704420529387580801137179952544214045647417909087206015809127035059511486851428817422833286253231878469558180807609145315387538764743838701968911411227059188079358598371832826777076095964820529442531513759100073582041888512389459821030397444080592918420010635156849222182473639501828136192091295665805827456907423464084155764146842579957568887224148474760561445559601744003216769053531600761567549809121702696331749760592368877380339079067939971172411576553548049331140742020801185718218902617296532631119604123937224178456860265973793243938500727175258255541991861640726810078283680810292340144439719628369889681038127933887841565569204926440697074219054226959838839511803861797102112123432800508068182279274126693095858212925548267062828367062592046922860367881200699455117727502515632493076343341657495704046113718877918184161277462005347686000297993562169402312524151019498214349259748899040056495089918366274971001255836231170933387045852952533460159299089550924226771730619741464610789308712738754389922347999177957327814937979074331184192175261367857864583310598273468845887379169344607426748893566522329808561136316777092004114265986973195886154658673196292664446879858887475249889983435072286266471718562198036076106027346315401115033871077245725856602148514986696114991554711859034047420628077689278125163504621530308422445741295760472352009977033158995657660740525156218915229350903178814259185486783340305937876384754179767321172283675951491940104427915741535873465500856857133764745389456570046670735521944331428600319168776679764425339421065368789355159436579844067733228205751629829962084072472386550966017316238878527786911665519066284407368855837958810674947556813759552226490477354493993059686952158561337170911731961627410676537956421399471575971067143478963459964944883796242583371050657842327497108316002959641042133691378749689034521343084407853945961616136087968633971763851080377498701732407005849420779114156193516714969763673987604206192281004859914359927003753344621574127472702234001699288174257624834345251795650621365971544055255449736813017154600668126569428861308431582949048736154908830346563222695602448384571009771844226106403912925826384774525477397664670868668934603884500777599561681512193361941291969472846746124848104771487003547431886877561157167375630746036207279240390727989070409985478504347837551453171855611323273647198841658930593266405874834601858363868107573116115342647596629768174332823792254985618791154910259002370984578505796508094334750212389455529443357444860777900632949787646651882363394974119095014578405983329375427144442923044597294026453074080375781852753683629627171305770522905141014509505456967929511387286545832143497595969595496329122363244032551615965071945818267857152218768998038072295582386160150533360927056462330738913030209528365947184490628265265122402537397977550642116623323143430360118678458424208507055286187875041183768667866515031006169634949514013610528009643132580331220972693025370286925332996056556938975005581553887152735357545563117544396176015045720613421155367549790198812806392778082563519311956915515987502672081749888014529535966907174022312475019082674948847179170111985491818107981403833474015168722660807988429122118507011713933715594359098287023252879088102190949386901829027154908578943712546971894266857817320541646043139679080259225011818051145674389847652307741811035724755906550978869069147357690959640827160046817569111413534990066893948961420665970792782236025962923427745712057842140415536809456493957989791804361059952173819999425781207732241698532555805204429615666438642343404783929472871947790074548373327669149685111093014596365346265357696842383988818060164817407589938930542643788744812010933208084315804950376923831873419644617992260545305988627635521493600605433271116284805478591460653942165125237932794636815508627586267516952240727942403078728266448073061092489077440291016256108171957465859663852537648157985643541975727008676418036013078944153910008574568405890031224136530331589706689146135743786197439121869470267521930359894331982429643796546387660949821859578082005329133925625593039583673610406257286862528552435109796367768026375291206065385101113748573128995217593494917190083682596335206823996624437064660065465936506279243566409406105642869341022806472022943804532556944483635605457031178247653909335350490014976890628516867999986400142225546145452368542838255257513479565044230966841700173210895085110550603036775122551139498273087392721708659348247998887395115159341662112223975167726111693934148940583294466597271558462699945110372907198361474297627015275428844861373011342215199315218759598889263338269987763701065108823645246658240886771890585336734229945116168396290372178037866933923176208949245092750693159356188318800163021181283271497638349156366876638519049922635146563143716218065796944799094472349743981216523953765157816543187313469453212557578333047598805756789901617470885208469890026985385924420138888874949968223224580526821322985409734390057465538814326239864610162763270628942870084286086749740746865780340817768139685181365947121771752508406264725003141717340780556616116494111112754752847303848845826967361302775898260357201913730383900146752887867786751205654371258435349241764814160837793344986372665625009095167720205795148300420104567773879189415294017644512273097608541870391937397473398602133827655955494795845779948890497656002627421721131351435889184831731931787992266124143915555584713652221210798040297057301521441114262046144724167299299854837522859598150290946413163675953991722741105002145687705253028697276190277953091028379269338601265040836518983164162064817920194326405549309032743735544353952636730570613497794323811339092523813579001581363050062114345776798431885734236245183321245686010726402919283966756101020774968645147772602778708751026136551768576557635462108824224915723194206871541528924985923512821705852770542515503649206527396630982668887360348389244635905979471398208475485187820748535415655565311370864642578935742803873688996767634836587622321768759042465815702917971006384332959192937554278633102180056118238086709320464509233893473321606329007989526402898430995540464457201033734063732368745367619847257429657673834829317992278665411729457818965003010460500823769409144878724911529620275772860558484384811408716349357700179376526257599670666854887793594881405737892467685843759684473414167796229769112765098537410860618297317376622058047301487560349564328812848225317842913103454539420883719564078987524935675102730620253035519203655002867823212425288196216650617182614571489023510159843322804771005522469416124258557321806071710339566365007815608783542811797507785845876121790776307606945216732635740874118965670503967926811050141611984822992953383113718749348174174329834626003586324312810322087564796279700222320803156753648207039698954684223375802601646065758872403972624486582984816061034947859838239032447103007833333307104824777339691014857596838368650992122097848624321751176386666170132847104452787369501772612863149495610913532612662680153880654436971300702283140497623213111675068263779786184729365047647403493720299680347685578350648638868353304946085166896268167429667224560762500859361429353552252835814040645310139109140461177548225210877137155603653320302945260199941647221921201414253055485026342018113720399751716529110061812665035235754879136953250346675480667205260427336960325156446055411359353730870609903910552758597669800950830672531326485235984485769850384609665542874285297872498403781449844517990078962580968702579412624695011043705381136404389822868043783675547845415382936493082841336612550687154560913309720848649451436405834166020549128977109362186919813910670876069294316958305318392825600253438947254409536795759978632892175046624713869838983795864821371817184938756449623408982365375779189122562287957892687275509722236658478390400958084735880753725608326670866928628437344342418533638000936424707913193054772109740522412044116211384235029530143945389667292917261677671297073726593669138002498908356382393281808310838769523829795921665113725162831467988267464747346818754845359925395465187884504781702673854078810254919814096256011919711491577248441865442053287586039269605313034344418263156853793657418255406736840015853190569665045764009143704724918630711266999787363610549517336122531142400159148257755422830308644904050401474827496076297256934555076100513568833547470829284553444708009554264475824933933751583767814162063555440671765677919831194186270528746686690505942302957977939857412835040323034747553172469635840920048869332174282119819521485396173416599991414987009991371143972145055635305078700707477174652218720061630382724495202274252415297425158126290501172284240617826096372070360460369327943896586505022121849031318395358512336417723203714211307046435286225930099735285903049491064157822235247852135969729651726325634132835617615663361040039395897289115212253344596703799421278974187404408582861948144290287750878099610092990090822481301962050585208378228440757094013374054011767453882345287237655719253478023193917298438706769143734025516869026595182612581752858319993692260346732748118325371979930031614528564464881359373121667552727379066165414651358217765699212227873136891793574415561812331682596889289778314638558298128046919844717419404809163249285750572018006360305771329399580617823339395696403204000349110281171078918429790198755851825712642334156048978942491358649537929195787214303668391895272418909211594987229956198825032043518687921211438018337280880704148619040880686653036058378017070833307136802707045438408735350851479793415551697088730223548751317628323680292879744378725835886970927434304654342688289840218764714292807863713878742184991011952992919332662984644396609949020297378288548272282033806866889489486715445480570599396644251794530975755915200384316164037210956087827621058055810342988966908354549332293103148146167722756788935152641646451672364935251965952665513714404433148974258321754090508758395781362005917112972724830618381432932227630841371051101725399934183669545597993518417165389044251248540738842104237829473862584022626612319986152650976049518976049526723771935786082904954185159560457047010553065719953772823735587951744660250620238769463385188441528876992738277377777608275018346015401619816602932291126090367125208941489594537930674280949987033593101303324185620851385872892590579558674165259659606305242742342890328859620704948911065281106833007144318114783054129387762689855727419977897082579836847080700793583773043499170511017639102459252856680928325094798641859805144029546078568108244193740538608827692353788997975445672146281223852915568036663709953522049875115720352546791430833709345797049036411165652944590011314344433836904458696006537067391029530296867110510427778707746824806725640731039111319391768169989994207844695850020648278795151303873096587138439151541441131953830549985640557242178246432407682248282824240411467774005611826182724234430656228926974407844282864607401724534602028230479595172750471823079055724387476977474670481135065895709263237232806438628397969032744300039907926751547554668365126800893159961715389556168290749819676034546000349409182355373080609270999717321870685204903470065179073132640873985973928586759858130084809726913460362245259286459573201857830785563835635000846190766480372847243191847046585737541179801086495603292012637161112811961313032207428308193637138351318314612340910154199034504093126179179407469505926762924806150856586157572861216840397843055567109870039970836705197273847533232770756694563234423084403895387633899558620394798606796896328285185484422911519945326364323837125272103943463874376735077138301437297503710335518356164257078638481024370348302433448817702031951365363071385668596329700960514665160247911136021856992127165999291117125654027704594198163722021095673898567903739711650043532612914594047256802081925274021257449396368749479320498946921177952083301043831232274818205298959792189917777189280159170221835845116997879941160653750911681690844734792828230281798064083209808907803293925353953718558554034073029335141420424453278234525271865386987715509008634078373876984809298154086924669637394261063800047354027231085007502690600862998084274018147725389589788188111217468812118765184343769850215101376683392510069590466560974519639934524766714981147856756459176149849367177755831095255480512921822696511876534449684891230561693334667921897620370426276307456093796929034111085252197684954467862817832554365670730778947749928612708499679290923318800327882371114495294238801320087996203682698229803169949321240516283807653505064248905048445403535959601957373124491983463533376037055200334366720499606182418803914837586000473711431261904733163313410835695215185511816386808533026561121917338543823114894354776953804601613450664485600314510756596979824767542535247209035292311762562433940086296905499658727005214094408336259133998510196945205085507081201255303139030644879883357477832555622574976192730270883219132052572268002769100914121091631450559637843991769920980185687342389262737471380404553289608383286166746111282186720972138590303374678132113096198671953036797407911115102394939679504069283774238592083372814453489452248393045521377640359293846055374944525247061975265689050497860395920892805560971151983823530935174836808086887134255899955705392992207314148799131828057452069548549030126173620916338213779812301429898641754870892289932803897363924806545683826911391846787365587317611955500926312505472886232760729854126943545950187354951910106800559221121985534376151070501863191794168315363000426966851169912469866316811303536127449193018912962663731808964760844392780705185874745736640111195473872174569023327366578889880065707959307704738236553412331108361957925280656051276626923027353362677757952883617149460613236863816873831499030036604514402745109222963010395625345956657674601976615175865971623841834545336648752166993561442312587953797722142311402343534681774046272000741681529315049917353819810914261628749647458444619980597661725741074932768790652853581730624425931306615650926892030211283797555729711641023124009340306203271057079201625008414238906677429235211726744227352025422864331091933453552649894197211769348680174498464900927473678009080690952440160499291914883013236011632895040331578958468548724186500222096594527055290291422814495751877688548597122472884831548773803433571465029683170362864746276319649890864081370154410581238386888339704372740408473391629271285861351701805526152283654621998479361489662592067590239935554473085459202067721688846498921486039459405782729210730617437454236745741394585501122403189489550177920852355180939098827091053622592794912214693691777130892984324462676333157491859107640990096916077759729081470933422846104035446995912608474614271067804905812994929570089981839441568259297793410658041729222565224409418860345367983929031744564438780867032199978999123584842135863110267216935828327524950665994892838309385734209802810680014215904274882293391169614847723583899926781049899100737747093230801280071037984883683196530051949367853242719391915909498381808054155737871313951047510392523735144206051098416242267170812374525585841037238999295094819429631416414285214084240721904164012858338100506731762744123963204593813282138767477958537048672743798733480188322393164143084358900714817235939908933896951177281357718288633829491430235728871412392555605826566744722026763821020589436181547120557503481092689606128981424525689115753279116693432646555724685852259237111675644293268535250415134880209067878953676605595258801370524034351762993529280951462372164083251086303421736916985514533837520346398014022436241525614509661546950771082528673219081030580076811254147586806621023912541317597275713924500120451158050117904753252627499340320725459476250923145427957595015369165498621168680399158361227787609143700169869262536539680887038056439121266937560940685827429122114188321952125140769262482666401011381822186217993794993781026104467048837801349904029786216060494972486799080152938067127767441849849599354745022343431609752647347675521115327693235802862640587540493724848888674930089886819692453787256386728260160042606064049045052158057783919549503205324339843375151168541334255192354428653754590877172955742294301831688876664946015015529085486206474804578205910533709321023220799884506443051568580541454325623640299394884217001021135136620973858373601833659148159014688998986276329136270926735364221424813451133557220208017024602479369966555024473054685773550357727685807628909417093134393549643418082957240339408111364804091597666465198558146540892710709043268440825832916412955828200292950937139079040717241703778422966052916740664550236190371362291272175822377459352588996037366689972517914787048847904179202921361655299860994976868593296137677303871207126228890548447266799913996745791827618151411797061157945741446015240548643388657434637917924374309401779963453896867834459811311824005154379499674348257223430065349039442888973920867138394481983757847723536525695688947675010280494076115667727516368352024489857326267989180944611070974711104874503585210354374340335546963087056788662416632996100092069446315314293545148498292099603861378230211930981304086626689958654673172859219563862362889302732555111598267393723075382180182509894335221868823637987123483330897916523126811688731604848898159493756432038145379803020074692703354799028421122912004622574613900983834984020697908942663857762756124253712165489322941872828023266499348553582783333198066867051394388403350918463277452282644823823335228134654119430060300514190379193639506574870875744506933430528468419249918898610027484825653265593302149514529199415969125335251982884198137728614734229656570993196643398478228034517765932249333105502091946314877401584771142665059492188963806169398528607555304912137204826983804040070577968506207013505691960272519425037403035411106009533958426239254293287629415862198412604062649780149375409186416521237595285262781574518257463067795176563191341491833547626578630159908134420247086702619017627585675320910382500190532793176028700766976004095014361777817613827161352157441708151218564340611405876827358108884547071878397377240491241473487779846753997777349588372226664283926315786515614085899612539929004234423794654017056377522146930267959382703615964873803837730425418865608853330630759577515857188056023278650428304036109656167172971354435357087284950037607930910954782380554029905249871038808818759445766015119676561631454413499208922507542055838575973064859105672279768198694794889859504334938433089278106248538239631802721407432300997581348744947951151123962787562165207800920240118576892457282294122216293540822605503028661626982614690289466815781170428372738393899028345924632478077726526449800076566530124702621356691081500211898218475595468473465970077471451932499080037218258054894725205332344261851006341764786683899812336505609999984743429354142638415911484188833815563012856641392653199546876483470594350350427525588940671443951817026670735024904014928772346730586795462529006250876984926035390866231520462498359746888747691630134003363628539923905890331591309557687971322057315974977465888719995959624754684439658333581167012691126405236382478246347777519020751958420686374703898966658280058578695864621727838905467004333144491741706324038219986995173497296617632613070822886659222911366783974650498766159381699062301091253322679624287966892928776361391475045711382698194163806987752305925524645297941457643629456227781170027344822565941668522807183204311358505437403257920427258400449831303981838192845772141018050244329106105656374695245574880284931706425793093980789618183363774425905716939639385751275110598005066912759119795160184727835889799104172954474067439008513395439637737904876752151622454868865339107542613152876361144731575054246303331698726776379324581992689593463372367498281753488255970173453733003010393439808460422777408896492310439629851543681470636029417107271862457847518584657637337245999617501636927514258553495532519894382540773720505588087201704241866259437963684351953627191079252540047731461144903419881047668798481199016362560644739431814463556992752348300419299002035940106931704247980202160524471309067819666107525968912603149074912539465993373333928539742454416172138349566775025717177122345191936266520329841335748543814227319066132213104074427645421822986197042391427106546484876478286800666239856273078027468958586450109068295727511899462859951460163969184418494110568299554636957373002262325781144980399270468150528611315736343075678609945405263045799114310848380114381771724307487611125906440274603277061962091825744380481713699329211157481722560192034359973077479539401420935148555088575936206569074062682101770400789448573767073731682374424427118987987968828434791263523885887662854473994399358384616125840060539747095013650350647809540213839025443020854983345046722502616148980985931305836759245857452268565886510009268633119732439760486589253970724023167161000500631789833868240975031852898921407791484921139292473167543609251300830301251877406384368068543564042303026856736646727570771143207521610928306734868000381128581222540960074470732579631870799454323285984727692285886064896123860946057847654463715832277332060869983268419245042990595852301140299358526460894562515777965956717153624731558885882553739096444678894710987223410766018704319945592618567698473877743606650519604728670907828375304400618434936654796675411001174304360886260579979753245689367239799150869386219072533144747415381034036569849879468262458866099119543200536731845900937070363616815380136934814122133595098723902701066985097483171657116388985542140106313960427652229226304996495925859063530604494533464929853303069714696433854398484519820681578809713834163008306602750472817233286817134949819711613210682268023003722927449286865645538600304149610886274918870333150195488483767921574650552083163030096009637321836379404613355636216172991658952511693920173496419407338939160633729568722125533389268707346334466920903460209770053185527934460842999180173359568962188595936458681805454641595343018635039444166362057801968911804913867182032701826265695495911901651642358092681554641289730398735335427410299376898873340594870846611975206634079521144832697222124510924034882729035024201191667206715985274812205239946691734355739778679688274196348301907938375019782230682172024557829938992113952528567350902537896322075239585004347652890513323792433129067905131337865654101966570876857665992564137358466768125848918106593599150742265401204078462677047034149899252339950387894248196784960177611424876875888835263112933342734666953788646002027569555742669741741086876549285265330629829198022671653207819846399921683726380389241899473464186469722665576535578412849113063676996430184119122670443446476849387096933958923775643752602689258489374977986898777582098124906919802350557588943223705459315344509270574293359572597216257969599902243941520011631799590574909599866417316594080036628330070349655893039609944940424501627972387787132224787412445538399721629611008989139550188792280436301407958084960377214058097264841104032989619482553262392608817522449950747301318301709207415033081635984968843529075742315490517039908733190763599240906135847585859218830854256950793356922482490068193284172052745206996903806507115661044259416098398053646550037721952380007540899309418719730211365147709798204233783060265453426479140579587407701400719113098089448093109560789431282233733079592470557552871053432716750670168175536686141355040344716070345960267671809705150003053478807642111673837251517823693622734028080300472886863915665912447745103929883411285519200133324241831719045014623029123842099048468137707762266075252706544730619683101228700715678499865465644176210190214016541377117299321942466316715174880040108001922647678000694144058059716826683423748279058045746922154925197295274789855844552205383822688673349584911374011512067140236998321271496721078907150793593697420266984707314836816228715787184931772277919828233427543518540049502735221631506697537097597328955602381424737356434620627524919200644551918156176620119729201210693769175785374493715044716374335598963963661202008928590869945093830837803043592388474878900169016155528291426769394019003696884938365465017558032743830664914045137389598312902717626914131607337311414547782208509218973658072608509253049072490954010141388073384880006750282808021779068514624023496091023870924693456097570986843671951539276843728710861273420311959168184742605148081476932173908413875319185921634825960319985727615946026845422972019749852600887167174600556794085857823461826432637030812716989216750921531054963085936993115580776721319960811082641567935746856934052483295360791175851496760067255890938412060165671384128314529094742186209656788842530116823991494141442796662484005593486076961061912517014592036957344414665269647308647537100780987764613330519434229249524247361972131756687893501971536830495170458801045672573792786497768625478376301994224759687084066683150575104301574505970128100148417371569485167229018128912963199183116784037580629222509758384497926548577117563089190163084625321329481839189783434670508743420535176021429089295009079890857783830396150457801235603422820823772256244108227724747735964258165704970953355311480890044815893345779712105431601433040505194415786676843915685724171007583513729461858800827138142779337865066546754604442293533924452022097981871151422570682829289306674342107507276754731351930721855136560338604231359143868586596411518518909638870643621145211603733925064034435522078085964855326370673685923898483665074670473369403574227774089548520635268101220517777857863719406127598672012016411092855501532678775349328870662153655555310985507689491991108482902649803378926196063819125704493829816426333237441431619457122038827422519153787171465681300387458557939406545869303013085811745257338327701456233369422004177265789499383038675876649056506694078907880924610839314333701830542303218000629822298494363507089941590519226663204323644877595498094832901831348838675564621788460435345312559753432509773794911936533992323892773052037571452286619137560139508240329184595635737258748824892625010144368821159694628813081651931847640093491399623097165496114924157036804102773204425707657265943112529588959518656526273408990822715633770727116647740007136029937464484573730094170971656275571718175996044560901410336051065209291092985292491926741950049873662099094052754055243778708542488927887573341892596258817855565813352512931185913736739294799832753500733270918348961696100841090480250352924154635402064780549104696460593661732226850929043843894440219603369888489551732141510408727062485599132350636509700548214787095945927132078899540742528096373539596445931635017136143384532992768766636418401739875611382618523980639570693804703683620421773753980465510997529716382418381229740238321858267875478410923444145070772524064458464410606505717696447547406777935198243768726906162533802309268140512930761296719234569647531199399046634977176156355349836735383540306054676741907250977512865556538436629228221677076063594941002316263252652631663915635322399023485544121900234421529599683014901296809659538796329693874262876168108471188751121781361843643431534922934846218671595027261231392307118914828978854347761314473852804533467578850805173259132607738954738240290296740359158630750389279517047015511986433495746683287147307225641667949775925352696269774446031190475234028023094845583553961649669620454105492367632653778693243634746031974758801473435624425915756893978103482058037659211974261050549497636522674178826751546880499418860139517752247688061419932462489920888159582958920233852922608900035123632714276839705471453212829879972312678711307560181642584637989946989112373998363424268958126249108858706662666462966649079625692572405383860118457043884705387227801599432291465121634503809189503845700046919453816203924909289827648037141969368340694794410213611891995687539850931283437696205805286342926828030055679883802093586843976487341369025605998785645561727266297604675869897562939787324281196724101970742913500026536382490473376143504545645450666291164401483680672610994960128538679006528262415366299448640968480266872191656329355509811031720174890398586903124360389471955332971212220305144074681731646187041880686243937291675652689849084062859692352930979633855366149171795690014235641877615901406102692165368645841540809693861531389453593008001627047145564058106237860177475689904411963214586004782523602321448501002414490406687586829303599078331537258930159473670868774198189266798134184711033124118580433664133759162185745317664671517495149760211470937997184133701927824887703543824880374338738167416846871811184216120734216820750598276050230430738874387361425670039063949935689580892346147094897062051529053051103878012371804176917592984588656821978450406538516270248019493589061918107861831196051991166682994584867752914934527982892042085325459200347880110404699691007139131217992486047162931921954248006268780768153893902814938356777281933665950101469978494140810957081072201962427808856447055502873555914408933210824170792553900240184884623548741686857962269801000633198301786355267588583083691913397841569049950836138741041831142611464475423357006864485119905608881099176023215916815008372400857351487668007956215820477259399951243396823813865982184968097857557532381271545246601005494660784355418124429603819774589350816393887959436737444834679914759106066871682718222128292991985432131233955074343809162630653391195376348546213609292602179458567351156002531564252029734297075423481164818360018574362656825938187037282740776616956798625300732457629606693072393340248488667086573780092791030477303727212482743601837120239478363340152084848237381531265357783602444499822107053822709637733818626212433896208770714503740584779179543939189808722816108776081268329484628097093453285374255921495941261131015842368122932883797102535709023250449437720523529397283692581224671118583028691627555891082981941909985893072924252530137707366441599251201685646136565368732082384468253750044135728743996429034690138478471803794534975082156732852815223300576765865410754349854617134542019301349397963293182194086633990628345541422015946519105121888288077165118539563802677997042749540767318327486204928708130090921760489387768647454360084684186334322732584305225564003132502993593594455751319496649162392479546406261159764465275586691021212950164060599651823078635862784821467297878117299192586775157958308362476836332349933604739058983678036358921651490415869283664557363832905657041049071091163193896195180525309771532779919688782667977294198153364615673576693504523622932253955515833284401969118506649960378127341012254069238565678690641872515234579349080836463193075545973529227967142177986474139481835521423181323975862490908518677750110231906814384140546281434015391316347460908287211156921666546198764309315550776728017934510133015507527724727880069716744005850687037889227003170440376943612373166005524392019526109049809959796023120184095868005995347223050304422107371746821117386026348664022769795618304204609084847955986538406557631566860472364323916456411739898163683909543720702105330159768128985455181799235186440723719869624315562608531086423446143557271680430319814650452297390900577634566171254286715673499979991520973938169993510876145353749272791617076445721351676835926628203390089365001673439862042988392452443318888845802954267573160399139712430639516842869367737570970506024746685390572704493114637782314321482990358366036793243702251159105061902626917969409371035336098677834458878627161719965372907274398331036126520142588512068455200820151447468202188684236336694795718190437839669071543269614901330085917895729886905626767394215272118394871362215390173675363427007281845820833750445263055103697097719524417390147270151037605832400526626432724021064353346931663748359731403044783998779371204138643507724565862064889390997367563205825812280521842424292065585070746933062293371337084124938807121826733579152689885140741105576283778512522782667013234149472076931934185780229058573615947748606829213628983732484008796346670613897805539870645549009799658268349374402946865905706533818874545717177225924045344375493991772801247893277146500635566189396656870250943558662347698247027414975922046932818201565391163538071508979540619832626885929975199759292308076025959959944291833979296250596617541170843105616680371955380491941423681573511548411811206092998714287578726781837959570755061411088423519252059934191375386053750514122072382533449774047166433775530707596638802031833319516639107862040684850771287678515138364886663582194482997278607180357932887757932401723664463406080070016982301831323904391705476108260358124940820489474207298075149468192182929611570666328672216588253487410944952973591504237315339872630819065226934360687696860987088104729230097761711179869603328448152590894357591054020785970269598483717273247818739686395675070151878856187417219499234582470381522604504785417530872015898177730456451635238916534331187033786480963374552328812601541338950458135943397121504022646378260236882067329252204521641218107666916074701170342329861173807178546680523061973012410332418746142762081737831756521164850121014837667086843151936067633404524465372768801713158653009920868768873704592559853695738282740448971697581759278034140899793528190480753767626680129857949353172829846750843202499941034815681802664780524521686342012059386569730963468483089441609737053860216785943601427648815239086491620560759129363049687561589277226198510099844291600560276350144010181028061528444586058103269646166597876463237838087346959343698956884338011975911009023487000795565671000826662461805100776103997407873924901099046977891672673238465630349344108834312211382782577959165878859206075531022687791316442260317260378031027742706549891335498425847726190147374935923931980283516321147329047949559897190897862434575691802915388209604202987150134570576876116398505913965236659680829486683215476365409551876959461958830693846581435030035880151320304098790890581668908635164446735678768602780107957525472933262266230342484030730444090740724310727515962755018363469233055261909150677532665998551511508284744905576288473785487926877778478933973754176883711724932234308407236438490257571517805774844767386077748044110695062127417596738509267516160402039245178126840982439631177602071063368109569727635257137896397025148654908518372787550623488205068726111735771547755832820804953030731836576640969149476815339004258806415499749640464508614121882925233995910666377389692915449487327128829697192033441487154320398574781175731126921061613120361616057388011353680720118046567029447376520400268461861669080392866143336504152232158631437851504029868094137617672339623024543726983734552942024925497746121485400616562611546039996522076876425580769943639783622695118271018536353446366386140145000128398066776039729497553413047985369072428857686501154482541180925180614335025095587166805759508379248846814146345475498989285964272831126491393561692269210367482793673996239431939518091791548866968390444725088877024197318662687698570866050680805708468908886959058082758258893399488335637272096625029910444600696874545817110847475948699953215685705723351056526688273340841613446538516520477567810109799770209169399153889603695834617859272250098102499824486294095761529149618649165613331802212572528018990606656886408444131251787096320891507530801395331594226063755888208884559645465362734006723763152729005393802367110056870310552490794955093748860762618467308596493782727154042579128909355960155553079213955591709019464548385234862679411198919280262964552476356898638993203355000977779746996317466627802106832591666645317467989629613206845363871581249740180078142566976569964070444571977812917870502503582084972362039647743101316404955192496055451647895235953490365035420455563615372854026040534906471919438961590232236578108040368899762168193693769252192524712994713068913750883716236669490618151222904909497487592961842017692722391321929006611025534000043647188054819609671632851699366228374388166509833316556894564135192617417300743820105080039151800403576371476526282700789310583430833778975947453977554371297473850693236715741941561086421324090774892765292483784249092581797511110788930205867175314631627951407185125865490401247680173251073502043769834514354127358764503960643726752363038788107232346622552981247337738017243545697736992737849774229816884512816350745768659610114786071638651244292539603986730497969883966941218064749310755700727312230425583283802870711801637305868131057403542869163955021003638572264708918816088431750594147193469358595672436954330262610068836735642278984515996874635019449136503320058054032093712896454040507480670792534930151789128809849801974200427413347217294360587872265093181710184868821362589300606288907118471471026719876853303539865896162035908711721508211157325246526112811840297679985512360910081599617854161659780317963216965278037270743506476859075833678026709024999109433729786245308450222612748151118526257475962412910239494126369940655432664687622489971557829497251607944990002620128786614230349103976368382308691378697456239565001530754317655542024083623811780562973358012764504338635126337081907340725107876598966497786990113519634040388950327400741360938487832930819683215734513768796488591183928787694036723143238879277916137065267340782309872508614780431533810195450473393312505377181691510300607098596137043106829551130568630016670205820889562935772002064210843993347939711384400663814995389431439379779462152176409097650756342310183573742453622046513791126814516071977406793555846850268411443070079297258311161308084525091309440424926229066589346363841476961230008283365408086502134584819955816661066234119771661989766294348039293746747644161729814361692178892434715815603945433888103380999370446980647456763646627500638524113600897470214030692195371614919401348912326639205066103123292006231205652389271317564070449138463981922243425042362303554877258483687815544345226059691242890864654568988998390551045635884902076501015378847313717488614542713353306026165771135688121833772697794989989762601756863643243616345493965331410972206957476684545423795697589741647140264376756797330027290949202219049346699525781076834481635041211902736108523458634575715841565974927808573716743957473781083514548725739092740859607826703163869129612004638566253332066028961427771027582097517108120244477896370291901630029147517259458389728951740547519144894329415016569959177595136069868843148858796694727321612336548471545922206242203540144340424535854271766333367567965652756140594588190498574484415872440402188168089124960098510825823510313479697365291238772934359889070820932684307038548773339342328259988280179499192484091824354075607285235306734390375547216447068650854803022916159103787054985858558599044906042911601170150814773393523146275964079698302486681906840532008822486454410526810944413902889784404468132099666892725780862154147415334261592203456342411566046441902816020098148877698991603898345079047819143910684991262567299337966071642630268861531478794416861352288974663606751615313471078472716266137157246366623675356391032592563337733119814758814086752144515227653257071938209799631843065015537440318801723765972348946749689439748211077840793512894402269992488211863247028796870782009169808669646844599187642323413871525664810255718701217611887953278544427095439216490545907714519910129141295157946223832184679503761199353213613891071097326264543760231050961375233022722260846283650311430901408584409339209149464224201221574595092022643686268980703258241079616408438081886237065514303038515273306205376575216065065332870405010738102668867355904148229981969704821808269897483013403635643360312520083782345555784675212133724310880776851371578298079744739292467778466966346712976832038952537758585731753887488577543304171217385442539840427475038265909216197073958678846559062205821148359006087182977482337120896323114176051942969257399930425766169529138254673860648301463788518304745291617280578661470546381223722570252004934595706458824483932721057955176405611555602607558132905034878671406046615167719908880286433582580685690914531869325735417912208038797668689370224008038678942069832293423289821713822431216670146439602757244159592057914867523409866967780366509311834191287814387498062168553059976111549357302297341934480247619636182177443388218161976889428911076960335653690986821230205104368322252319964358925406474029164805125676955907770607375835700979054746287112907898237328185468450240411549548274583019090345299970169582886457822333504474594430508203781378373164750433156556123183258823761626066988702534332738920647907753456584216853408393389301837493134402048852255908447004791561148078049978047557319227333551889673411382805092494159489146411239864037040220438727666248972314247779227101780990537380294952102852367869161855821737374906992205439098786060795773192278853100951711630873463693650957440973166499671638035465944919988452938129885579419332151464960739464060839294009663317020904362959615716154240322881784346591004143135988858595521021043105113132712048920373653405464547113103774333262024990586679725647584747578007362958761235329499964192620921163371936090147151405609322883872879131749692721300938025326539926989502770725350338507575206069515309096351044165433428721483344013681937439118088927807968290053124150050955345121804428548959966142919920144954458432728592825267419669066322498070785763098174771933816287545579878256276917176354136054961661014757076158919882118940958684102907036882242881247710567066304574272446385127172402997178262663635895689262518308123531524061545076671906365344786554361437449444234398324060994732409952326881694296858173885928128063354603322014133893836466690863028595763105302004613188148915864876014659478898922238176930051593830471941646638429017517655524905449394652763552707110901387455946385018638750208700924811591351102973592580244024163928992182452983840358037368606963156505116997108154244924179569068365534253898173757190302854355935652173696342284639130449789397134932660644095153119221133683642452893333483495995861786297307998148056020003991914406188037328222615620357391590097976641441246002695307342000807358687475810095992958999630200137343035341819586283287706661614931852317186912499438138150831639288894897517099087014013033515250760825947286413034039086511883652727027717851631856519973933430883594313851780432609650985698136370410458917856019718952751966751996108708830795914934399636909103773625453850806448002878155368812519446317320016982595135835982466770166949263588677938721650497268258286648306855334169859624706487318480780785433607153184908449636937400067084209168405177103187594081601074261897650805716754875231848611495228527457060975551279147320698430356013267487123614149345676308577588224412300160661665912162806310542377083949035035209095373320584410816348342961759370797932645674056960601642463680330229061887912763637869399072419976716149325015858097508307296683497969456618730157233048023290612740949714932892150847517830067461140575392481025828920780744078005010621632970103147306674541657293741711485556275950806417276757311163149231005092005612956303384482710919292604406152277731711782119954420445800515268159332046038236051703549051084736297362827100994281219081144281453779689468778406813200260317330036166216231593522753589008265627362591566483127418977879671619642754203276680228020629453432016785789042713104059431833522165520376717272399051278903657347966476799875891172445775836684166772427148001439981672733317032048809007902219158968001768683986759537588486310592833202705440904814281131461169444118367444361433023422422010930386172042672063545559011576450742765149472138456026884413335006705465085000048175882823819238935555494828851919737929283678068221730550626739522740694865431453940742345776960432659929530222532372326062390938839186743451762846353443454493267865086773882441742246244355390380487389415698509548441637038628823376274423253243236059075824169892566836737820647854765872680478759586198501889217910264447660938317255555564877227780411086586977975482283434527518857023948472406766111672118085300211172104043912580794889175441546275996031502772348445611223013944046279179953955388375791871378033755193233158845446277090072726975347143410821383689576762845439997545960134327821752831389872033785028182947697486621959835728441601822534971515748059002593522736704405621425000253115820239631226454387689108683567031882895994257386383473411331584052942511455962794405537398162055651673445957377329588575989013546165868010215502286967589580291740868643613383835429942657690804323792283705055103506360336155494276245807014524892032723239314028965193635458333122838725169694517548710843248575110683716816857459209666556573590274335072956534433798835772280268208021949560346687304563286739040748249998795421695714585880546305716380604804659416271454625042353384072529417294750295369585047602087323993193702480885088355675031208814668365632426792227210281241376576892414850115049964992635068520403067631407722146653623908730851591799184052500538888719429901308138239752022270592447892020675558798224329184874975690588064473304908689606340259398181791496202010652342215940985318094186931715809500914341173060127487872555563361392736947835742842243969854801981008233404125041959474523231468548079900683258014440595077482146985669499779098724408024187812174464941757760215868299002180363387303444618560269115671610835669587646914888973942126612153896920386501055515538224277849786879178891923978280201856724638213534413197807152526864207240246101924357137952980106518755193586631697780748718465752736083289023270358882415918772511181052798666504777835750828453274260982223716827454117087100335781953649963825818040010321564287153624818146704794499172743722783372123889179696068103234507305147024374538854437851683014813127950863164230919621615937278144450796884195615375162185858010064648775003880015987299480146280751980721338393191559623050404201545042971816837487562382151133910270035434100023146772405971524057462083240035513997690945592911088572749184048528020130298737895582579588790006591466890895146721477247432044230230050343604433171687817497016479103999381509751685589751650982086564430410791814430340226952388852852819264086037006870272991385732159301706426051661440993284328074115841985023657355308816840767983896110028195686978925319974351748697853828436395418030368029944326389005899720534995912384563733978614784524144154460704054877142657450179683109454481767401385057238353376181755912254070288639623436460922719259262331811964785934684619426944143741687090827139405878871991790387760952045975206915338520463383870901736684586534838761770385766101627369805257328065286258106814680145745529707421169984522949884732752002502486011189454695684666433891307135207173730687765502044920457417406431833558383149757139012904860163038396894944635005539085182103420318687775701167165351579248929796974456825419247035429896473093483614536629526049846203020898313466058557058756724779923101478782228707643211762608932387686476450261136608092673670319227740983913340203743733064854889699746004160037441610231324754092947144247346726497415846658981162391761649534024374259506181293015762210979258394229339499189082102353850488815345100412778655710995444683540359544362306200765881335934511452553228507875128416559859191585946483738837470176404624410040814332464698215711727418860849800021851212158305976729256002937465414752772800988923704665883040312304843977472184267225467101834765482192395886636696038566233214479929832759671453292351458980274743406287905701618722309646743438960858304236896044267216989671016685618379481896449494174205831003236990432948160087492755230759722899282561045714191344494316954606768047938943644239795652410913463460545431693020086108727399834446453737536351208216587309094822863609468770421066579360388267667489201345383940604161283496488366823476868034457328613338828251624819941462487375424734641863163231976189236021074695160106576694647531045420601136537563121194178464365036443743372162549091153534715441471803183198106705033170813230661079432331280057499711609049333167985106630228769680953401366416451622844060808556084417287146295160103303460439554242636053433056495662539602080492003471772537749358030244686695694190803538212387744681694960673517606589502029453377394729780073698820988342770149930735674572494377277998878818352398419133703469157111811931232377601790089958741056069630465188668452028308412572005344745546898500307444499081763725058539228950780815377066485209202568838879862704071439922624634806037669547518622532328739423377680434328891965011909291701554611557651388269762748138782835843034801006756498197450799775972731828334362426224335841611644284713853879806532697915859658123987175895770858002971449445050665243346250965936026755681833966588818918616422595710786433465084765472545862407845303573675018336298591271767856578118160751987306533539689276114733375717922156236263555053860799200432617922828058185359932817888695791597129276886862357280322967441527368713135539810129707921586819096447140067894305173969211839934353800367200114208270337850498497692365650147991271590031589260356881217473988607284272130946054827620197913745475546029104332434062273996747501880578010996443688478785168197544220009674052346146531408843828719930076556442061515302968400856052566643801557909289626260491628038005538771552476463164189381558414709935648482786746488757649302237776515576481286987656204238789304887106767591758300017662031864423767663107312560196816107460617516980405882345350897387529133045779392492837527865578882225279051077186852216250176795702794847131582440288521266270134851309493136373267824436769646104980125045324626691441159381576027571872854147185559726549905465583966683898688650585542873904212641682559247002247109422547641662162464125898731498868427199073892530871472933359958284961159803184587773851871268520639732279089663300908661996530224540809442095835385735752109896410057287780621331174570578853558438172632264330821210947959577640920032333447769440178510427166946602047802256645855104222423592348262140544695491817615897112992702765310781093025273594357500234449934743352027906481655915505719366353351356246846501015170682588578103924406364391502784597454247759971964605603088850930001763585707068020375203530226884734374022108709593245532944279366370775132948433165600132206475043198727545947016438330511054785836140698908740093701488922474147701080791811168911553952000279593229971811350827135876166255198288711199488064974177704197106153668660157063348004052177482199020964299497069944170379826222287569543685645637876044801058877614792383093463542764550475723338022910181432367150591040367767498589733357646525788721035369412386442572031679418858021492546966072021686715261158384777474132297877695925894119077293963874127379450508512562785526890171108671814601666254393719348272426144478756940128703955926849629666285537510971050011889219790162360118477957997870686561532812450563593682414178129476253193560331753822311138558523106770445936942442240045462090255929259422170290520601804897374398545656258512489032194664966513291576138834811665929862666463742433484685693104665736567432591938928033534356952029534951629106152094785088717197535840534566951686420037509783164087802515922401321825261464817707977319127967154135140185453905323324917462139679149153243017126751332244095612596151558829330258993142104823490218458490518445011779817663943752906512193245056354464200564872685618645465665869210818692304025317604145006570311641624814850708878064367963711234301508314556971552653376838135161333148313912067364609528877645818302969855100994019325276572547216156286288097346463907806599900490325577011641611341147446993697944292775469037672901921600407226960379137361672845716321956340082529355926301308691582541902458256977074287373718085860924612427249820690373052888229229764949384137465005938714674275649972823405333700797517056944413205107835298333544507224128744972928260111284457489279372653146116918740822296642354807537536493079788170452530743147953040928365291128617339704838274290797347879977527339408695468599144202151009811066377378818647825096099712562091477278579961049632213390436645072704659937302718242341267603539938747502970137926746322912469165344900887316182697629194709254218627821233767347307801199859492925987278665183433325911086709924894969341173812616987304017032178545571002294868364646834270527947504873735386485165524885336738945109596986243121707594806970697323411638104702110499775484616217545070259804382868660115854933850443197001721101893156433055699895633936243638095245905315652786124662967631074712612665211575820798033810128819655601438426670336214504037773133104742598462000639975777871332902031157695179506697438344020203275087669686060966423380626280630481535795612719233236355507505986128527536028649174415808174602027334921373726548641565025078884055875199912657979169571834819631750711307484483499197661348616067362153691446277694885776778764301805250525598105418258489411169094120984712149313429132909802630435822400096078729256319497455211169488827740049650380049356283743255967121697421796258255862806507089514188268812181012853749502111671096580473968682708675534302023710773513652770087355812867918340889966501636804892103797239175842029280175974056355664622465665201411182817448513728290529406936362852757841314281009222203769151174599271092601386567434716878916120484188006719295516565361638626172978434903517862659987092905320281436952502198245831679288077429676418030526791891411324049599162188392772534130031728101090102879755648562185696603708901526111077597081912379238784563280122754661749822812813292192514604687875221025262195898866631065138225051109806857988618603577313755757343802991319443465660477906010308994996127102732578844545478208425653026355359262256932733740765878894210599251755577704200636034221815751581064265927478023825907796766673460371843521684635891659770942028944274644745423518985574005708380418326608518661353264629934162040575197140088524513585077609615395374733475858647202424996958543935687285602074215575450656421444132314236526105559788581935068263298227325569926249363585256644425355718120383495016472480173448894359033305614692526416196315087073556303386744897925344037365701880912915353191588133284327643746249913907420782245055515860035494993175171238649461198420652254237064814317118425574123607563333706632083852333173497639957759933470647826678396934497282664415818879373081604858871911548009118856384349773392032872458605121170563449644265271429232746317307422928253157503064108653876074550867946479924483811700126188103147818994162602725935189550058813670906531578544489633925305448032497954892846202973022275838086162216714728143232301989785700500395713180019612396357880332242050315781019390381390800263080281190231107434985344008150996570999253654111701317926365091474576527767767969332989860029343561265693028022174917388077005964981820957966836734752014270539110677074059758426896965690416346596325229507845633354315117908489191237714583932284462900109799924499206900662247459227957119935999578829487735548482897524093318912348010656506414144076927235345896459559981114210627410564677501327817454529589505120245958773972077033325577457206009424077145777884366463702424762104941847483300382588139891894611217479409722867420039612907216645882795820653304755082387393335596723975174007067549048732572082815756833023447071135654333279835753622373733665697197925807419755797109010029901376636289675738386240069927987443189789896732758633614962870463280383109083122684899983769927193294745167945053850298978995249243772668303006952137130779625307008308023712479394727003993851269566491078594956462420001024784982013271531287314605884826534989545496528303816072780369466370076428402687965764768218512694351909901392198085316112386524877580538425988920843256297439479610030284627941968354000046713058593259099569332091005024237849893700758417291506770623874459752370126954258682700426976520449998185376325303833169485897690648717303123947189662559251223536350817163999245442217110753557590277672709704124736597815019696731363145491220196192142551366493538418760452731786722573166506327714319065988502331238489620217131775526482170715268494339380029657199688585875162548457392445234651350983667103813913091539142215903335958834109038036323102417153557355466061630369682185987390347390150214306849966352528784391134909170424328935400101070007639263287110506414157192375038968069866112768518996708077969267486524932594439382153899365125070981045903761715991697532914670359417737813943968405272015029228281416041706987511472680894981173581360939071368251119449085359695201113171921700608181317877696266535479913272303012298492587951566369110571767366580223738874959780383736600832664362416664616366714565000501835067747809823711560808694973426667710370065884117325790664969622500605974761377189199531228460796758017503307126865840920871869258294699999771180791544531389725743995298513465031482513610697061131371683873763132236532944108447529920005732799645019926376631213831351039601265508511830572604205932702948016787096034169993039721002123327933249215383140061623566619436880941620346868123705307009568745763740704027657412211979663804901328727793793496398487247302685162467193723310973933119022054065562484609940726962228049207652344947480203079181962770008670137155250380784949915554624469477976330686279015085600788454167222822245194047900161159225748365550904085267391410497166349299975411413127456390894153505651480899929607992393236469449111946341626791493283193581783254014133427778108966973643412351129664816404581036893082603100231311716505313107339771117847665305548340581319128032990734638080663685240312011042960696147642685205890767840460001980592482204651147839920428551373999014937251736741282203032174643545397026171100858534454034629504423321040899116566489000920088139747900314930507839127733243685739760377100375241522903099394972421722126572736853421413798095043681997245384323119344357202826475707472451409108406408713214674996078975812691753125345770431805052913493941811708798823230670389749344238343729351185781946380747182415554739434074724700369745735867181172187192997556009630309991378951962485103686557366160629356947643432314566476054179638492382709090456311684954874018522043764244601907839626240421268211780014543658665133584411881848810033093214042219861982202831151655162488328109855386877494346442210609686515154198503664311999632361983253769702760362323563917910396866512272300841040048112841540414544377350918900849087844306675731665776919188149206853583550301571223075891639357244883337538333658418244053140404818826988315729072303818455541461871094949684542027755705104059255304921433849285007078667818920110177493674407502902444212707187772386285939152578006467474968716561117885952786840306708794343690852715971111492171378084056625082211569960812831728542143574522887538377868728305581512222402671256794757646635180985250876441733737282220951814613699309735236517352228245676451560793912437539537783386817440684747087342550411173007016543222564494553016112767847502752542240995964386319344099950413572451122241801670310683383619166319522405664884234277600166763930924459766121698994008984522107555827878105280683478341451625041048102744572061816769642819901666362931989616878871294368100461510403354447156759087496941780412017970740651217346932521694031289246698115418303512083698456573694091449944472295272812506988202183679531369331878835723010888367292509818109154085691641316041730000979213938478190323885193196163328791989895822698448785559127821728218354320734983561982119974358860763803080766560924055835031913478379622945486095122464232596215039311290028492769753718692516986712230456679456023840811800290971922121017967145991457609411088061897553049758643575872278583464554855976246641653907200036514076862811951701266991842863193845772226896885810885470373463199963343748285224951638151115056718088861123837477809776671939553262251711155011558158713111102577018595277703641435208961883846319867960531653793715673240004601968505675535865613007243374468345165152702203702310232293408976344865250930205353163240212517099400294552116827389111110938651308453494311840356650295371858732432242957574246647412872747147640023487384148089889512661177013856782134933551270414429065021572320218308757750924361587753759549479083047501374975913267810540387138524826858153495881477815887843284377024524868826117610801120653467931447118600717967535647655639321891476541145455251396881243717537235226009332784284898922194059592796847068973954007755358002720275763875234151237663622387566695708366383332362704603417353186826641720129902240079268790911676320164366659455758795990300095041132179257889002239358547183142623357061682412176642720510748975362879354625411311947122050898321540488518881099917959718093217237862538590566445307255927020256940897225933423329715934882827009911103620254242618539993612298230717238312804696621249621670316158337153660531505759546910813023728129318318743575726019340004375671677885040695968565947810721900408138916724962128025404263849347720361392247842886698074298266795434121850171955137811096123482887410994494608634925140610639415025592085241758529270641503490858059365178516586363711371253004250994448577469717802443067323517069570866292080519219211757921032657542409931742952897629197873582830952825993258822526846161265077560743473527524788903849190739401812641942533062895309824463498779271491683351031547875739704593427041549699016422547432145767164683858345678800531165901699336239323912554904014656001892166810797705135843919374142891015752951022995378338300082419868143950833544952761411194117661604690277000242241927760478466390230364580372154958931955906494842724911136743861839455805041829001450023612677529411601473539672611383314075624675419742252728790880956369513000507467424350985576059289350137412526210534383042852484129826575436093444514646469367829059353391409879276091267086678627102011109618731225316896966500412212040030271712542561036375760750098904676030504074285659713338348411942131108333366241631532515064771815457296220383427096644056216173354688277873303443988923870911545860198336062205622740641057572685001612797289993823509824998144241116178917751594959801558579792825961534736021547921195018071010979732333266202553584989562085504892912884110517314343138673645068456104385777993326960668253223094427051795795380782295859164660373880921624980120317052465081422390282819596778038608944935522407656110618515239778763710775270167227805755276988116036064220520480203379976629504193759967957884045851077991974576508312001800517753610303767642576396424621947331825067286135373723117677063568472992894563342843896163471323693001067301602708283115441613938057795195618079501857238311468101338103077910865685678353551992791213847473682581473280839186138004818661584142458798037691907894514684136429285151430417775038203513543115932375704353707927143356650502919770672405621634437221324684541721695252200722143526026989947019100608032274610568934378623193615299091525675626834138949987527018600578991396139811424204451122143019721800736581455094386001434799523909738638736291740823530317532778169354578499384003315306469346329787411461166998635353106655655583335282881625401839823362386437650922637262316533693747469026663642051664331958426795716583099398670144505017837311022193022526427326407319157026123161419108112871864130283065019312123628392511775491820355885332901970227232305843262089808190150276706543539430483020121106711312273403732304393029254655591062689320166154439482930504514959818199263159540561789174842249430038771250501151042286326686787909025064358292639835408533271451243237816343465911681653321535768394011543777965179810945766115989607286724236618464779098864250209457251193075474013437922135503862715494318242018710346813772513300901582226915816287056449048666181711288922760410221714714619591246061900306386541987494582973794111263392369656246183967262759845114739544868712094174378104206888400286242098459477089998026956692167622344921368348140714313406352598923608894926698453027296096867448455435400443604509269676552678321444479799136451367881920719431385243951810017956883056137886334066939873581783755503928598159811735905750920685925110447146343590813189072341632639522337322204928700801150477577459430413443743741097034060452848699614068448961199693281853012298787818999335406328890585198919699825566848603425184245134232814700154879779246331061255809581249649815279087573492556418293880168395305776360887968296607791185186271917632273738965866443676376049546815402870256472650233038384031462561787057596793999425230371950900212840691000307389173484820579439658817482139127656478640409406082701755818661354784415235867047367012039201217569481821802575037391171578458993236621017226223118440185049584169096653920176564849768490161734843628684140741599133925799458234994268489106054296661064835939720638010990099515294399163858885074323349638409889086489588734988439777025382536304405570076984069090564595291708731029450969512531793001800983234663128314403237899990489617749355106970475308174953081524233544146780380716836650571615496228420891778987225813063945571532466930259067031984329349701940361161683715972237058843296884996625304287338673753950489693819547456321836832304354676665935019233244857363481400742440382435230439692173111204618647725224027680130700187358930661159542840783184097699777543259621730950662099900828301017779607889095027906099701528139894907622814845195070790280418756136533770343276774931920814865662217065133997328422697257611297521115511961748817720854553087361840743540666119318167955394754742639738708029822622747562985212421356544681263839175826259506089068591029784559762367717205907753887764689323867708608278216428605862110897331700224933365697314079800655580390349489989596061232975808565399116208220237074584961948320571374432523813369853799979716849508627203183740197302254398907417631440241950424308151135970777039117544761724554902335747516536373990267962860676101642836903531142144893663256544062233956546506856646276361639623434604421199810984478203439141296840086916354635076893113287287355082450608827053377260391940897190432360184668001573529939328598198813442791639850275540858668383445115259044094369500558006101536225766007292448988651861462661946991049847136511163982806668595904132500886306435437270629651758433938039233718016328758882283273652630530478926877462729064439199738443491625631682088617098369647053365458734564189088803443131268102049064048844001458604708024542118275442028310476490101601135691538386998733833630796905576994451512188257215370517337881143326054539724995357601250117434786711094022203427808714544390004950830147884141532917770028566223467203312592260702869120792960992628122039150642880959314168798374062648070586683791414428510127141626819841683836658064910440966175783591320285629410553032891359166554582808861244434860440438519343419294067454315741841242405050944709683964315677361839224685987756576815870036994884439992288211637096322123187919612865794665504116999336446808855483172502626426690057715657662949992468554143851456494933756969564919411227586090900151535809357476456275724763573646155847511570667809691959296347908587701419200868326570120243381611490981600929199705209904979919862876492687233777350381637774826405245756932100101798690933293029355063462035394092607666368650924403508686537962236497021892965798567872699624116782859165338529538127337525153566415727729636711596730492746731215927001313109240074401268711012505627907067976220667659575574937217022263485942321206633760129949419462334511951498510734030843683093258701543254273626197833521562941982243502750550055237943583458153878940919620870932555666291385649360231949294480043084232177243564650518406443980165032907870336142327366808148288536665698528508685598282359684858694085587369725318099577751248751019360198994317089116546217734216583614875167665905333162816739143993322898004218993880527619861167569969987857449085809051775522993927039766675105710023678453367922238731150629662071570539633509169532420044922891481000914182795548271835107957208115572041508072723253011139077415382314475943905750208426778435573112486144467327377672784154821388927886314756682927327844820901364880357907434412555356121863063709838132877126205116885685383948771516506730627997681013677965494549408480371970584647762265595438942205110157509266953025413708849752245022597468553247520889231434318748941156095701516230070578632481513740511730770928787491629966455208407784698943176172284708922947516247381198137213469664491317916101622392732105650475719342920343349627328546211917500419102367752391265664184325301868317901466919225712300091062208488230270308010588365820077170343467198051758084239277018360059006012121001588410146346748250924114377507742617122473449573682810952401729180330367293829888970842568821843464502950125326825575879050064377470548128953826139801993812324165012052788637407816720388967519882475380233285624878301322726698304727174672873826417138224072570292475850230454922606838316610893194308307779215295606963823384610359833765441570894450021154173249576116524384028975753007827635189474517927323007260798147535099993365582348101744013904376521116180924736530264623891024203624838991642427161819524206684251291323043189080601888282808490920399795369588576709366395233325119516722922799594311565440338179231975661405846407375738196341836561662609272467343745559323450982650224761490048420803368620990344000879223247724818573416660827003261866704757789300800780123036843203351932510317557283301663112642673027409225441395497603042641469397280480931221232851882189989673596812802184761125070353899159256827554448719607288184038700135750010100329908842359844563249245668173093880140535627900700273596683411050382564621621409810617792974152667932163338590122707647027299519935354302523454355851300149123744950786806214644549789436952218023842664555691581303174165977255830257435073393029635060317813914804175860249090557784344315779006066567994401698251165382315286134999369212057847471081953434917335910280796153450136514022102193408335552163038971345289685247899842593740727788392459661634931348440406454088943319388004320693000025943309247779064101282087353645834502465055787425674828473900813078851246647640117667319840977996090662142157474251973970067257886111283775972973066318938327572694824269096926391973705027212805794402861477623223310768725392688079019693967807249552460683333199340329447488408684775088705462819091251406839480796395671247101942140416608733229480215510377039737718587355390781051845603053365733911321497636033754727704445047083161892822963051699187033759798585235149663714335183032052882628370088185041330419409496092324365074357061894459120742684418989999786415120882204488848846090837844195935908226995639315962221968998192596697246586113347733200630306226275957420418891113817153085981051081137469671477907737863640144373066520314990179985411600508016439910590682174583916688328280156287991321624794407905226296199182435410987700874291989957643397752171664679875628175104629449563889408353684071166051510062054947402262054710438149031424774095784361665625925496744993397166770905217125084899886261331715509860488223722384843289862304372638652711817901225726408660116290131063541474702177396346044941832519876837159034714413603404824792754576645771534224487375090924959992625269745985887140395314742879900730888636617289278621586844686528079414712339952196897476498671706209631368943579067204191848189781999886556474458101103715807720230867668404792356581808646416401897531309665683324682081599945163750528140582948397898374573782676779984431369117346207933108022613188925218869174465286154709571365424602160117378648859786860982926001962624545624494085336539963526263544649519622078634060678215530320597465787780726410214802438029539578988967933982957826447404438828506085375826586143382332228232185590744749076043456161207998670115716455552393526263436790590741330805432345277498850077112761898582775044879079030274947312341111884226431834578134723105923394864689823376105112542794068664096282895900411258298749695144227022687994258552453663402466219683322427694725894724327032180700410942435579491104001636375226057486701910565867363015010818263396466676195525811425329147179551250460359334307859839490691716604460763926094212666682545387222612239844627457387819405049308496805838883772962029850856550156799562292431586009657445369252257915188403922166020942159191365161533997818995709134497823214297386837112964077366445601215286245116308493040880562888937916076575458536551942408925310652951699347636449870709154939829596268416426958030779200580447753074981419557220100431629592975904349264878870377606523346400612051665010844483776946200870212561942782464854274109133572038246714461741880552786526219604057559943728765415195113396324385905075341782096309771294658018456506524818986166380245792514052480816536344111607534106615309505245402773758501339295814591366769305430254496277701155202817942930455672000523551933889906709935736118569604263387656275840057280937069561154433986621893964137154367908482510659392619545292076550014938866287891057346451059313867317919683919482433932452645931708509035632921360426909900234784872231384653237881884779043181921497829614033786463723014775420952843507375069104759260423781766298312810565647293492514676156615925337701064750864207935211403087506617202526906975778304855869683767994706225330439033095722129779197406692401174321796153069525388834615562906988358134658078993390511157787338393991963772476111839354160800743461731570254054572934939052677726041567826093809578519714624677669667615535720001042474936889359998276332039084878786484181296501638309703721495313609444180810539904977730223054384050044679326759781514703346291863894097213583989210901692383425928109976832291589630946992030640325064283492593026358950843932447426309568879157487802344457480528916295454667355326760577296235722477276256169101767971512599397337322078890457039643614168058670277281431249778771116624798484035062738615548141415249159346203761538104810863183501591648773717500213141933256546998655227186592295117017191337500833403416400537196617176360450833417938200265507643136155662327292187734989252676966706728402992324064061487289226969095256017054671569971550511652059008804990572034044003275970683197518010859875125523910682748813967714995739635208261333348236465135509146737735695765367668424232586484687827987491660777641835564107251050291717153125042052573030837502019577334985068747560188845711493636421930706728609215874325632713859388166074928257632653954364300851838988696114986938698296450338039662881921123928448532135134863047793282838613861386293600202309440022559251225416062645862388985945320056203598342493843102585099246664429296612179287303340024153394921183101883628517485765083559345361952931005854060081983203656291433550947376599861834294886665120306266516334158820676812748071558683742782940272398300473150493524162040679949947382250499540146827707159707088394595826613495898988120030284579240981620563788358182416048290180092961113397067797106346362486763614602323334926125183976760237215918425653817896371340724020896705089335539913728691182765623286779122210552823047707429751502837341010841952575831154031537300998347318894746471367131245248614393079704685398755797850347824873656418294286423259634107874445074494326874934017679696200937679596784135954433872603813327988561031209329086244065906363866501712624347942033554046738979969111741903193303962556936475401761634627089050117222380351131846180598944977764168319383398943763783761252526304924808539775973620605044028350236006539508768472371751291989282124102166704335756791798738231175701526730188517829187280664641265681224194226346244282437101381215338188721649129836014427139525514501196135706312783196586394685517973594786184499004382868884255574888566538169198369642972593243288138846763855513386218656796144139367604207724217592669570555843519165816205208783174678845134132897535111731494360225703061333986136866375538969080713476705263985780249273704448203373798852305511162735803039076922247889197539026724093019717033797693556749608576838400918878040966878284407415769159086607385909990458751844461296164310902954146796665179544863119121623944217816006508548507966931212130470787454234179450251867692124430225132843471466863842068982142005649435284685564870524128752348240174957243403460061089088858243022071391328897767278970468172422738769977138153758720980201895054786918740194053079591531134624351616604785298304238074768813076713467068974484580628566228037254940490520404467588103778981593817457875445940259270022876681343289696662193835633479590757849406590022938386113299614587194798422032480818108895429750149651745778198619626186616109556982647399814834462689984158896103930512637201305401104567129396858275873355513669812280969759491113039180354064619024180371050893507024575091576371476042615105033081758943182335268754105602799444588099557337245038420284590670997664596494264144960819336682962239291569507842316271706632761942759819350327969782649751437323141285710301965571796301745734973248857686626590651249176358846908729829546113188054369200921327887836998491172740589096064331180300143346589525831816567087775849565684059538022304484529359261463887008789229264525974428188394549351713141736917691951142262192196637263264456674662236810738182906744511375133495801115897410241723028031215035498415139207836275220752097039486416016146565158705876113322487680419228245973822904099975448866565205171262507244419510068164102826673374751828535597406226188484570777872483119419597024795022347919922552782591809686174854197077826749448629188073563063341589795821832655230190049859785207168182056691835452314463384693137344828763138101826858633099620954720737170879380788725896726953718637274356159110807042243735763024381777779919210237830971208917828546674697840364884201275999958271123174697824910515083252488868578200187252253990235485736269476818372203114430447332626941917353989960377315523275291588872840823594949719685060399636835954512939799807608986619789686005796796027858511435485022338144572124297381304497236368559879262347380273458087932343093476864808986021647490192294453618455563455906273492461918508684548688983739196436539408740938163186039824489783714353619928605433055313945799618834814023538235816353322436726127424324243892280051369483117462193814405843222329980420507943585713494343299147925614967537612041351707821642326857553133914783247367296293179694672486398412971777755533865151416396542906233727122970036934813743738941091389690103969758178487415074879065604159587623488822224678201090521933496428416929768674736953463744357465290416542886088399209313174351100563629869923384030203313646047075768675468533535615330544154354731205392192937495465715588639309914365782236501075685589644571769917947685030804086443938664509880547860255029396947595562455736994945430466999807380546906590952551936525452527313734569410723410486031232904893063724507262203611736354083171383896763373041007353688009608676479911153015678937251358013660004149660218505840035442565416621907318506893709106370278915296276968726006514268557852465660738753925841051480364108341309203482868015619754764387371846929605669761882056910589213646635964089310841092693331765024301421374851117216836724316871513735440931694902176923817362284385827424940595490881598314859923403621277808001144199734776780081243508278691857992308023818496851659629262872035390426312194838468658369827667159411669864532030456813569061126390526149137673116088493950425203428916850524643946206826276185915919671978227801437058713010717260963807593626625341494903437656237634239892285747177545851116990329761256593605312677714677625544016201476109293633079025566155918164010665081541577107743864560471400723237832491322843167462672402110413314208722837234562361336543692584046167608517794165764061118804699821083285570280046322220359246400798197605748586414663190257577160629887992190932054757689178796021283579134858378838795396056688673604788380289225509035398424910367158876132534813406226467944030186872530887832188874697477927968020692970011251917199375285936874340042928353392954415077927968179515247712949110544640412878570433037243339063107752783224494508860923362232300364816866331485014687184777470830965210446225627750935652244621302624631766589483636991353066761308765493561931859059096181509882263470587302193555849905890772836980785632602276678429600100392339658542177330526659857823209462459736587531497895564733987166395396455011657157747676789742082326976982549911217517205173515347934420521888286414294975201138911631859046990208902363152822992535234811471242649752613814270113245467490468373796940591664902261809644635464520895478451201765818161233975701681295949196861684534787646676736976249795479423093656376068222259667636523733933280075628136765462057616461936935131945563362829339660875581654302268900791355822314178439577969892004408478758025688360064218344809715983470242049821774836501809815077027342953678693055411975411485013923023965735169402526205669780153972593560991237469878744177879945029878690181395172716770106021500788456088804292235991114630464795556333298005821169742831675593830316315745282266338886293745333490150920192225713313965990257272268216512534292228212213772405085342627246139066571844624581828790303596691056913888241860501027466242949239121622960504796383246667455815158772652721868268154382615674751751881529374805710842085885598610936862909190178589071607232342101451278614707835025493245326707048169611283277076207964258916953400652804780977288644500979509420098553241686642968605236690482476034194487860616397948838597988035113406892401325613028457547347859714560177188862386986126703813366485640828877797318302840380476643399927358496775972219916377671825290274216652273345096812259836319713059667693106280156197260286242026244849070506092055151390362719284090026039181247424575985005438347409836814352627615484433497265198937874940453490468196107082889937386150463037300275777127963799726828516117434143633001193132123606105108906797024975689422353545061488582760125736256238132532436976067260360758089189804964057676187587707203637302599872100914944823306782648112566382041569250335418403384874721269083885872246046957818697615049180325185933409689220943083831711164079652714555526535881916452882051938513760881025828519834150745003394682356039586151816535635867456436804534547303046323742442509364216153941566148423439414878380014773190653826504472071883766869824496017494286164763317848958607640218888684941960826268460353428294426782529256169972215822192187343691833048450627759823578856416769006571792743265725734070132029471021238335013349896871097514969014873346551626518225233911019995768777236172033776033198780839513553634052588972723448186188784032877842827216186933919943712048310756079823805213925039446093602087749773499241615183093287804672907956356937734825642986756156977966070741805124381280991256272119051974935463286110269710056741993797378706352403965179168821219094268296330266379287194373799876824093332997159640445295511983756709122291303031316260193136155984485497694691073836548574214725729831152542101047081341973519728375535152002985310985361745140612622405463418299208342359913232528523462026997555655492582170030108792905857582282507432869312579493291165800355858554756164310740543819294402662394785474824542567655276826500716490986499057475853194220797498857448634411596343428441736050259289108288196451799441634512113526128392873053380213606975457254615302958498406406804993136500710508413335787571343298508754763596300030437916708853110541491404620159891382013805779221285527354426189480430654224872831814771807051542142760816143867768562140008820364403704966368625771117699439483178364508237455375970035363578947349591929631495310841227039538073816118285331680651820963156385450667105499842723687151092552647222011576856889315345521438737264485476558227148886764401116414665084157188690468070639576534155641447124562116404710230050836246434443012243356449551781861002939041552153394556755264138432047841924357643767152866861950917321394728287445361515448610979284499222457071140370790457262272625553243793794613408824721315437952869495891499484660249785855447481696201284723712378120293422340174247276328422053694591862433365814330896543501785761437964945350517781649474321128142965595348797913004080139882462360722697491146986249465880575393179004443515055128436570724514472608319812490540656237188299373904722368865578940685140215481120087938999768107366386771308300602621216643938451849079941540386491510023710537513387065923871015766483786836281678596377322122298324080114225760457160582196599973500648971167234697436158280444742538674446915542395203352600871657233945146318871112541428901100645117346706389707071464993150705368571309987899100783995822279047519189237411644752522942778182985721031666741468370009693957370832160316913647766793750807407649634989130033987462490063123039847727413419135161768410168304442882146604492882419239813572618755755023383227473124505707423023477244548528257172786429375240356486414969266825495019692504863101172996364714728802414344070870544771081477206055369605203629748946794580984888577635975117569752952407654106853286307638222196696033015364891715068517078950693956962915831778117257104541372237590726840831532448047694845237128280673433602771661746276604490420225242452199262393581008764762792057119702876585983417637875068712818017746307610872205497274548444693871953534830943108617848720277970306074395364747752166825693260264580621696975281794182992124856183196085447414217921782547167955772025666559429364937622331959048096203668773592873294431424927995002321076892904937609988572011531468049723469458652465540463544145796830779713753425615210045602687443729547979091149356602601268197447509599282761980482849102806593752935870199482071073728717283063276924290631838116281840032948106112210305983361533158835125242458618860325985532173158346522845522793373384721466989231692478109364113809208809764426727331160920882223410238376052861173338970488085003282829657064893802872231162142241624232645913400951475560133867137871983932271521878207126386502149090044698337876760059324584031082736487583472820449316663906977556220820386732088195146170101571708970903564272217148772701471987086051842653938561634822499489919315551629616148860211079245029738800702606056409282049714968761008926853789409576613219946328781781711586479834688908977228938485516720086875466703051202841490086872456124066154641376225150674841130187721315610037879745427968921276902324937649724692842179355958702246011319834928131415805402822287585909057877224490701199113378040460168552938246761188044531388677351850605366653629893990280069922412898252738266119223730739367296603929648217622605653258949459295513223717886867703450427786662387438689420971976969573219447628527067350155793914692061763917173219072970647291412680045906994069967149853381615281013949585945597109634380336520641820683823551709360553946253151108992196377517612003156670757135557846126037643687285620167072673110557407978304498497290758918780195860829283872014024277779591604242418773749523640617126723771561972659997818941399205508637071946746476674818395406143201803490991424662941326584052144236001973683773776128004428659606118447569664010671542140060328905317909476227207445045805772043339342168064770351150306289938273375753294456465339983226288601347045695288137592434186433047307135648184954842414927819401426503111156862750708555623128371783135089404709596607439059127968725119065358952818785879345894533489421377252352104824433716078936014773705403981862420310912755633990645308667016892455545903790567394139807504037172273260115506088949844919997469831873677406507303408998751670618301688109302563038168443432928952536492020454734749292638613829071279507456294866266966283422275723825035222997003458032567114418750169604889962025798877359948232630746201529809171356645286698653471074874528876855715526483129673259461186253857881789164261465100261962727776224560252902792120712722655392091398034443112839696155485538006079344141748309530355435480379704301145889151131706819508127993910684641089661108590216365829574983682060236802613026113327287839932769123926347848399072372591915449001490121655203847921061041399833398851176849353349816033077736050585925961410551805471401056015624821564483254006290602969788543788429354780534654905677268507513969061520364102667103533378353237361776914298716762292318541999821202562727835547055398019037496360856331716779655316945772847421180141139115713649980666815917924774715947217627502175795232730643248715037142737178482162759839284221400033892024509101976790132928936276046146438717266806178577470504282817107143786347726840820443329612032360140100477477284963044985759198416271250963726266733149510203683244537909094183935605097616854092954426802505958085015923206562385657964326729394841040100627929266531479933291757715049369219189626870198421860538111892158013304644927742048401897878181640446018976686438500659841926559568991166505184418155133260990184476819832577992115500585325983406705884275429939598269758771476089195411398199612886495233188204644848851738957777823465659365317720729244404511164780752939262450319061624020437759184565696375822108338807733929558319281360482137201183774907349884128230212166255056942234989492554962671727981081316281988028471565546907503019859434750482645762656758678428573126873546917508986235955197796064656048996720815230154732560514860168892352857044936345852997084870101072326778413080568671445861949360815690638413351218294242850602896242386529829367821317512604943403619791133487648985764598272175383877698036535506650203616323554254003815990447247778864534058886381093904115483072218637307332595650278902051489764673487136192839024564514746478633434894659934749832399196628426441012281701454507876416674178807789500865960164182702201157392133317733394803185205661028079379133311732050194296631948833815648874903755525642517551129102105146302160991640296673048420747084978056226494722673429230647020086109487095709381104057268030110681928089463775751034570711057112644349997056522330535189156963169748901936418893585003153959125076975998806970729776594165614833464212581215417589620663578137197309211770571438321352307576491545732656787354677019073569806154849874504889394061451648261561783356973501542169894721103202621299185264636349633199833753045315051452889412417784044644605137680113092861112486899584144799723703560742979051632714879225045338158701389570846921876163179651203762972679515020707214549616357539961128472831336376964419355888912256765653525937845310696322265713446200759933750034497365982908307245465690543240873255359792945507309936223905852087228625565558493321662579564378564078653588628656602574084123225332740068633833319483296864522922700111628021173499366234508732992963608414748995301963525066625526075395284374825245727353658296853402099928448651130965247030575078956328991272466417901548078087643618974452153426059031481527730955949399129385445899419431637424010508470614128521818678424438862174700969220920764924721898069153717157811597437128283638040162588129711967583429690907718668683165452220507476226086301398229358169183590699703749856015595511852508925200222906753461412796758292844325268569008171595709942211093105224778204777703457041459167057611123548294467804615893728742273156792320187803975822698038396974430617581688166295752130553830081352303540385684491844309663824368618245417972288169170362246828348875222449471434507538683363742134643306176648406660961608301566505083564222009241382724381995723427081543510586053697762002395532342123141081815898946983825832061183368031735782760070469407671893409676381621871860120658209987853577456176942434416307374997063243015419056447041249330222187539790772743695880271433527630294788170927367838899372700488635188483984215394908833718699556927439563959138621776154974201150080578932239534893486753252911541461186987720667336307736061665588072629194778244654631590427317117130126878542904488166713453681117451544826000282082044620540960726087769513488386722445104642583282684543856866197502312513763528073191534368616861177723991012300985702674864867114956151521396251918671122517423979272078597893521336755733875696382175343300800076552050136879077515149161418935752361782495494325925266971823854286095333020201020373010692147749767388653556546751891942537144783240875322845648843730891528953416207576713129295725080686172374989980385627653166498422563114748764783341113900792917046953419683008200396361627650399438787910288032334024298320609898498330717521229377261365643066416500360275455422303189186669017293975369181047015920189540256971791503635894044009633610534225454830740230387506324282699714033892752700470071223047941230130251609693376048646951736425474687894486863351467821782013609322818491910182669559264185370625261567836875336300985521954239149838078100835379943377100486100665386572883468941391505411062461073166706670746555764017331550289155399859191558975563838923685827777742385210587842393730994114009248429237227697627482659090316103502140845496700124746692816552359840100278964626575839082690131302374073265388701487456500147471892157173122470064438432602485121320417640364050218088573901047927140828639537812826490963562214385425399702286182550402293243707194897427486699905788779570829341164367995702356839885970972269748790947339062637658092362376180736568902158754264032881426135986005525624878331706904439886585701740118683949466446565008641897055149633721091788919922895113733762777755002501278725141495782906328973785941480428462366823474516830162137350291374966304372552585713741703062035595159370351544404724688914404441299282438077418863315032850839841315420342947446654430768207444650869461774320275209197562585405505370772467614175735862379260800676224491255407846440669691935452292618189237685554388930879038447939897006080241709717430545903646453633852209453514459110669836550808552746254313297410132065031816643767476400529167302121312341474776447902854272169475361597506916508488992495740447129050616520927762642395288748965159254799247226525304431567677992846091561925791896981875766695117461696615851518359230476428447279917604491843043982015659938452412676029391615406139649022462137082230143065835796102316002791902805895698669147694637375168158879880811994560334361484368860460792630607428312909694222471859254350788692200965269756137278341053485771992280341688408210380836685022225933404747292379188008568481455292151484904212553646025571406789253830625507245425101975957171647589347397083908324952945763419023556055583166989917872884539400116342032852937706920280979515865812201777399860647683297370012520337749828046123826134785786467547801411847077073769305121497101683516571732373168612875872149678143135219604434522075592962664322436356001510435791648288604253719563818230024000828972001200569144348195311583758527169100965498007062786251820579179478202889168907807886307284772092260852823575624486130313856128327777186415386875717892616485432431971979380126941279440470930328906037316224028307396542445754793914951682902891100284126162192174390189353855218981088930069021911060785262962065333409646684710336015995763271347636154079580577930680959728994321037694620287392992240539525352312065032722124832731406404067522592958183738144223967151983317464742356552216176312342193124900956202255732934587567396789755935206741579757004881876023674865822004730707948888336914666379560307050711607149179550517284370054704575688968243954616556067281403246636987043700666118246566938005573540633590291497275174627517056060314596719556696567270405918075938606962703540166879835949221412079455900174667152256386646659744444248587137496189884957403213658963293764203105499210376662414252340008882426527740178459960219202549489470906327046098070342544981540504295197099091702314343813921059358423630444959836570159763261317293187497248895000042079664671312745187828699512903577120963596876863503025290850827095397083620469955368060218520860461838044254233043025651237757723128573335531511382025779107630343899632242633795827331158147169625078223703161274175096818539375274403153956637068246899460103032297725979500349293982301056935674736141253408695259078146392723831108243985055058326960918824804359339076494994056679292738129209340458580353658427028069022468089170422580834504850240620459380378699071557861317186691636146311093485476996014520016429390748493308239402364558415750115849456376169219780843410238775006540642074886549618878764451582125311209835847031621374343851954992634061256720194001918320195026243998365281126160519118385035042512934290476022988153209393956912232250657650654834232283661599118602056436747776828825135964594810270299151517865460959325043561759683497867384342000126769988751408913044849828548372900675552444909137382566001181753470865787148166283274964336973811207369063451717253230540699066662938637221695281394831386767648582387221290835768139805526646971862302678854360697089879804084576814633752877264082690698578338523290717790855459650039008135634382698892762905254802798807846735753412704283540172698067504207642075086360524763286037537712165151455932832886367278702847865970065258973765484346469508547650091225717697056806449151449613297184482451307641908306263556251737241814570970656622002099080055063551233978980542615554362342796517350646412390195506886684047172961844606287767831956245761852023400083302902280646408723275958509906026244521525078385223961896637778097142747420738165272574139146483410593093056149891183194322458601615999333623403095263671897144293586077679335029294715265459507240165240792995093102137009704013117814760147655048737390665383728930350851303260142791440833050412970136551181011087625399615679262873953252740050051342446520152068764630379955214528325470416069780731182988594567298050107732347316383255411426978011338419163662466765770245404170305573009844904646117889448377169586238518839947562177090850825483395571309181680685616903892979513338002578603263287053867892074384691522145922993467356761838634826356515553302902216824835529194121676848663363535261500296968590439071969025642177041040068966635729045367636441100986739473574330788206648783958996039010100327930775658374753178009343637496233521335626806667950153916170977725200362322435405990353315182381996321158338530712602393808103753002211948874297021561555006041466167985083308442581838585720310551595939336217627783091067894415484675225202876461238909204339903199511458393542501574870786857578726733037316863739236986843472574220670762542387157322294312130206675799292282203396357068417916443873124126775860247575402875503330649763647784139713417398756205089771528200461384856810616586050558770182638093043906285368884392623440166785747728510364189693428030475568991015610048196802101006971133915134080833197725468072184068628977701769011156191961692861101514688776195993060516625831610216602993010748865919115207220139263323882168875801647362578519908975147785087582915689923863958544495263024026151782872251177109978680174789883741370195350676776872796254002212230349984119047655965459044832232690072455395282502917547104800344516617404044587792697215961737281930424774008386979022796222212940050064572057955774471785886396325194455306135393236318330947800914479677804603675293956311518837768863520166528089414147872925597909137379229228325037523727982434919084102026027282552539037459904960441940961172675384695652892591203093196540110197787156407171301478226427659398900364897351032773386221373764862450896424190122642852954793330211190570321562661586652158766338823217423965299349040716858671588762390315415011842998269379347072650094258998594726078794642793893687331381847052799786008713038836859054334208707311719994336084793603957942056958776182488072964258737800347026139913463634630488180382855024921033947127314259640692946976246142495069699398147421633115500866339857527672216463356177967891784738728839526957474742324407125281438300577355173532121154567254459256587845075158820746164734436294754766803038888945614442855112101894670920526096915852256493899397513297159664043707103889322809673827010085393798941701629430778129610617016537520432749049348747781984962788798366865258240150008464435327284878300168409894379498068925632944266979780207710513091927797776104149790574516726012596976608140309294456456346153459702433997532928318051125242761338857548495665328034008508302617717258483392121569585863430538869899967420135768122020125849327854636529691668011215862296022998118009089867987405118355137637539599792690460016639845143781919833518783776848672896850471169384384998627433855064199987137692994006340260406327388568076477585434715642788674204547954362403470448519870103868154481172473541150133968820210579581542354925416465104118832924503817459186393061160128713669595191193016354083373419946943386814517573792394555714736253239213916695069532311965591907458237395712443097604965373352506040848238677361605895691024114274426237570172568378795791924240906311887534021788743919064822961439376147038538007152580753588920886169845440518816943510311063165054018184176221189948578870724613669440889407395446642619454590866624091954213564481717113578907699216252909155330719552277638562905594691774829766640060899754271913201828480013546310771673468804209001410403441319000517113675487247511622419998407989932188159932351299853320649734153612704573006126432526469332174129897752216686393019260770783896659963744880376546478522179849236380676113176017674761117052496581674942781984938057526568458707797643378616531901389326645126011456634123648588536319707303433869558762020187041150187475043339665086847690020467384524694428042835624599892422096110042019673129001847513438384845995524471602359012118071556442779707305162154177686505779910671375084961069829069472872314923065744037188559443592797513893865535200015674869634748572436154389183987310754340268617288852406467734667915356066670280516305662572005237829812525899349390760468183431362801440474042923830285786446358823253963615718056169230167045401142394364056134883464802266058185529644393651207948323801534447893157799526133145117731566173901067310660494077322052253824489356361336252440296514740104784500537477663863865302361811616236017647789431010372146857977579749337201275015408286840538328967345844442995433150363870388624690569260677810883018779822537772402317734953691165832877478896471056830314393246843243144904509918004768384050411678015042109204906192610930040062477340694160328396729467288745511359706649892730761150161697584311236979596213880343301135660859826952409594946775812808376637487982329299604388329818203452623331541551851827623174700438594662491384604904053973237783291130529623002967925117867641023264202174404677351960051130788956301295360760732904381012018872367888677928586123837859344421423743374389200360137067448202633578739378593517194102869163323499948203530678277307480387563382165207062272913045371367823782242348711393351372023963756999189194943727222095797763459173436722283393006353400683506038338843273113722423184840626966496731072283046719618317017880491418046392791963903306556231134301939520017988283662511316670887113211969864855061991764767117418798564022438220343503683301358479512562582696291339759825028360314465363481222703870234254109929733416134966907756387641885271864914518410209477947356854702565781828202472051664594220137611182874731686969065159614500561077268308222934486677303668703628566770001527889206575815073463196304562423116656279245179504181126796994972455334878005318626367614470900353269367131791013373510581477985344455635754583432307650143771458457930084021491539556202897838616306512114456186102454925939158138530829798560016996908106492205950322488707670169960737408964832924869537019218163847739007249527537917421891258951968545443351865519707852218681531813828721623581284006228427562852719963337261365761723792146923524705185817896315380961110025858805359656905550362457260655636018674151809553230124143725223673252305355337037002301745614594989636175831360580519781096840788314989700709353008256103041885376260208560752363134161605675406390496905829223021445750049637197128689680316670882004384790176008287614227702867196510959268526144061123884626533296094041969384650651334175161526214784774731510442728387204050049237845892303185416734094494906739723787938324673660256069583524973990209153643988298395920296900757303059168015732102347769670382719456501141568573537903082815789685083306212225313668617711805236399981231714228795392269916849675230598819520150429506349788157514960357907887008997971029067851600446058988819818902996427517334874032561188346847064406408862807978335059125913127773980265544857885974833133787756271568657244205381990845070138166611797825131708977754114340827740671623442972303578179125398144938570819528623398402219044236384393529223205198393154050100757361962200335290602620928395856840552477522047008539848062181113326922676008716197861840042669278046565465786102323853471902254409772514908556087141100013958864875070709050093337590108039844065824611789846545481442093796555161125377483751388474935414959740094996469013859008468575079393503950790403151895236249330671911514741028411982728384474997911002197492770646528807766078317987342993537434849477152796238903640842804502307376278258145973979724444459231712039688824864759999006917650230303071775414160605855444206036784835230059512050131905181059607705769509452832570572122694891962478307144832398577447445847608121077497492424730045313881755678210125571728196565372191365230561053269116307433412314450144025913728964179047619263081784384978089920522803902341040332720205628032783104025561847461912740096399217634951678925650423437772256433031596464871897554956220151754839603107240071040340847462849745371597635891159709951253224648409585567058292292738423852468241140571254031356515667046525363284143808538664366003589118174936443791273025443033448519570885548506401722586279251542348949925417134095064937344212116996486758760278114736959439774162536988104276598371159991306380081788423280211924044965656495201257184139678985218044957913650619943152130291251559133078461832869129035782982850404957829828056645290110747746007832234197916032628547667125229027541325350159003698154554150979019692964162968584023050838929432910720614787650581225308173257226072727281215010951383327561984480676093741008776334060704593543093705515244034487742200217315849094628902607813073597283485292263505470783071970544955133389208589971901081134894746612168176524285992689515056001509092240253971335177240276614970320448751567059457094747271936724457612562526436798248616611307063358541719499458756951215669936731741594394769147017056683409920982393756645748688607104741757354826159349596528697491534074726709397196148818147871861930969999510068010491173614406932106300663781472021392570351186133507622055197560421763745948160792046841610115429390075425993759479638734940781476044890640674826608692812457506165217716111268389127443070721459605483201345696322403682861920999773387812163090237240792989923854292077776534714191264406283391781993805555398624053254756993225987759225674749855973801122394749468599579035185282165472579281662304833068858679725056941747234797376381135168349264863542462632963292783341177857307018372636751578664781886797677149690929194715552150588855534226279834295667078715937953524277405385788441862351940188838416118316361975679013368708134424965038966427011184381175028821231068639893600794400658085982147162605917674086977944701766086225748568431532133804964325144140790556102763099152962907402294574419373871720282941441984258615824785513023572743705380085545266552573488859104730748177959633423866225173004470765994521730078395401632644236591313145064995542291308156825353804158758778723434122272865574337761687010583767824771036865622608523413416205525975745517895176861867325249103369543093000565263952711223050689126438464134393282331510725764401846234874983847670950574030532626580579459239961812328389831731880270279141540023023654910445640510439412613244072892560746078277084962449957801264483670608746694283880652485595784188791502922933657557361794473448233324886454586743417820600942915896236907932018125327360894897021718108594008696439363952387966842260270589115481315177652102749904374172252787740337562161648449992510546168091826419039177616104017743898897467646424374776584228695461045047125334155046511254378234018345502110590953378339809607093600154267321151762081810197482365282036710957149471655724492731591160120732648299517921284687824905030228885913014049201649534685446784825473894695152940213973226646002417288113553942191690445078308550366518496469752414148433622232686533755275268862973821146302596159715863518250610373367409691811852174394478410788701587701147864301684496222861221307538907076773682990921695008093002677562806720443688019396402837009164882309101798044405350025839917628997471964856702658483154805897473450619931378993188352326015965043985575802103142782378175790837652724764645946228063535426878413232217599554406355047967214319907835928226824323938654503700122137566328939133880155321342119318088812825267235225241106530741616171616413884486376873448438703267354175041314803347927487108972336224062751891089000943672425587270693163115853621891679049229005829278132165039175972935513232783658707579438283231524690160076665477849479959941346624277995893122086669057941145043841290112397490678965924567633161912538860818436699001856870890155527189750383092217872331825962574033255045157442213365668297465150870517929440806296914567126421017531696565060333685910619335400593271216751887178375770024130754681495333406084744109778507500545872149834448840303363061628211063946421281395891012151335388494229177683830563324536278445325691444188645740590992676076999112604756559101572164263475069820284715216821099471294277025949971862433118132744630284760343124071296397099399658135283455371346714163416861575396487189016462693781603334384784447296208670125567315040274494431225153015163068400868154831305084097990686991110267895706193754688367432724111788176538353170239235233202074963931199685991960433685893805867532226711400767322895536406078015496190660811303216048061547034426799227285131234807119401529009477080694169098427079031267889328481374219295971873874581413663341021331144284187319986651708090771720925886959695525137747133867504309656487801768934766097967236765992226884497884865621279998043445868060227558097470878206523721761829212444211352294777494071064901187550691553919044569408925639856741452271248935764000445580594260556132339352452768352680227325497651101157631452400250868108215135412195911348146603817575972053002781179437900142639805554061031601202948469448233630580360001244786025542199083432180724896124096182146512260613593885842249468476389603576485665018561738809024431973450167384546958242549018881990765601398051742272035597033475290302461162953301605067092000710854646793828779127435909204034927194963647727193173933648664574072657836220003746078125170299092303149452848463510202916691077002352692399596806273383251065321590508846313059618923012614588329089694554493375706578260854012823990518111826163261977752000540230807165158262280638451336836985133731033851211790463584962134644856540738051377871948568464819373226684652334894880936783358105927802323316432196913109696159123004302887554537117182691710620512207231544066455390120326522219229964925956116998621815924556020313331134240775163813665626428898961861197344016102627548529490555220001567361204477033001573144568427766589026167828079046845197930857691428326379389257177238238073664611938069580946676513212392046553517592445488954862276805682489381263428456406996587860550394754020705604286299287283246656422274902999199439518603736159973492586645511980203153912988099772320436702955327997510680836632094140879329662264583378679639636454235019080662994282036725362043156597867354597936332418230104474135575033934178756174788684476780882740033575096499774798275849702833839846674107767097011577641908749988053855924463257519924929066562301767419144226363698368150490474312928164042074851569452012465318668209511780560197835848851529523351410470162537523143115929166906377412509953934486216550981234216205833112267145992649978836119895956197134990144816337971637146682833312220098475522788494187600482112926798075810802975591895610483243353737964461007898240960412237623402304809830386985282559786568141902603396194291365345808636843087467986281189756184681005644735368203000778724599593926747482120039715784720894048666457998074909713259090236239389406923105989024626195710873554697715883283201383731622529698930939112869980454519348410203035881214360692609791659363409324210167653173393708999772595613229267260091425522273601583578621993979821874610096705782952545061803423778763624069321784468942577618944268683721671551490291546491984630774935915646018502501114943056838368151493775747946325278936038308692223799647024753552331191601474041446313248610404350495375686352776302424873642936667661559691275712820848261654668023196988141526135673389085854889376485689109708829588291868105073961529677034131410408246115478381792894107592975926610931930726660907501320002771319797508992717861518023018988736424194303099819258002681131958080474819247424912826569388493591769176522136884181629167618983868188341411624822130380292196077283989350011239600403182693777927517231771497125991710761547282460276505532913539990521255619489939789001979624520321825731680234959337869182064357036461119403600953404237487197320757532839356978722818281286208625058540501038546347518836434603531309396020557554358883712870352316592257031659413920878345827127984130300847531894350027566744272558207489186135400860869232166418861511553355064852122028462238910569274695866749802905255675436199090197729499447169541735572201203943893741043648657310209570928400345901844298227334473596717692182536778589993848974111670355792738187758827741138356105377809565612679190389279969791907313823236179138583394625521845727495339030224909002887457926458069422527683739784703234984718529465367984447284560430716814859187617625345741881007444960648111711478491348343615072037914702725459778260625998228261970498899907440356220925849650399646947825053946222912685026150881625171733117816180133461876331387979383942031185610171259435237596656401647698484400777849614851228898467588084269255913008492126524433483677954989995059510258106319482045797559219539426177464754252228916695151289260917767348150407799945306016882539440076644555231322886460193356023050112145567748370790071746941914307453388332677194819095086684401815106482661267526329941219925270600178672895971523130905300924106433035044604342722606314146443657658384470832689850930769761033054270874905325202388910909908526457738578445393793816165452498302024359702871011812389485234201332714140833222166398001761622169143085622694896685265087150499415253860528845785815813988500333607850379143424943308156502459405889534373491486404818235161349506235970872268643488043901160594565666463551520724523086376755493303344018454121945912307525184594946497909498890668900907776839636659682825739138737638097987598036748245617244446286186566159058677732985802254181409409394310259051811065089054939276888253027059333828160684887856158361172701293485982728737524827193388431190624393183187797057259844332997624290788741516983360856135616501783300063894826557194650376497709788048955590343610348079124695179241296330181278318300789975274528853425111676850184536662850485295367380737734429322451435978469975448334264342485573144848637562468079210153885669647216410178346360910027172130679117890123026438964338399633103959919216755958855155564203997056914903943042198781587317593657570002888123133873511163910566809701008531774945186224775982390652329840387350566091459737531054654531505400135497013204309687520323486277945371129176859155948770835819521794667962152429524939503739171085121648539280023497680341384179766152890867291823589304612214495669378535807672355632133263515492957040678953522786131468896427686564161549854146283396380425012021170128843883519393842775920022930851744161391123074541152272538517677536594628708431333489273906708792830913568410801273961918622383733199913808381874936543057987727243203562658747935817891926450956375191693412941887946806662415744664359717319007845031595112147985996642900170384098956538924667689205880723760505946918573081091191427851665943859763357396278266857041691708757586392603040767529279125956441028270675258538806252819522771880563116876877341713121707620420618301788995758875174032067883900914443430550954363723604377476263342354169307779963338697086854481630043621169730494627164495639781961001437208739665389675796983002024775272028915678973624692795986602040418178815591374135820243987239540778042188037831780444819253234610555070660734259403514266283120665287075646726460041054995398806051271074760817396886429091938176808654495764460187933198169564227765052894582149995747900205928522880079517782805341092153386474776144346072830467946751099766911929064071093320636900341706201709320973700491233969343789059653592525240229526324912857496504938966850900706924417385308236228233877531886156587033820804265116540130084638933743931427087692790959566691822794264311100116963484747100936097216980633809680056130180082322992895219746451622767511984563216416433892853675722369616312657133462681919143574281123984854360377074517807625836080127603662717078193480401545177708139714776971698870477694044077745411486654560734843456611173252078344786336035423796021016065248113744462092276257316917370362514652990187848689123934637596418778693353456056455183563193779452983850369564451970877168929362618703421022028719648783198808614424342611330865235137587139147978771220487876427105356932893241703247903283782569913807649323601726509532735261474397088156985283164177536248906092351289886286789675695295483211334678365603996055441069922645253674320337372549963057766963580853627794010489738061479973715169714609427383480390055227483668762061604699848225463886504772441460022235458512169003715234526339513101973690562554952666318636102927781633620342868432628293032815026138460495710506692967189876763984759163089879061689695483305841571558707838731212576940380111200780499127507658805037265048208247583218555307364276363223484738356100172006408779132487198901323767362966666269597595580593440238704004096084280754197365546603857254587554926360134487869578456162089358409275927550322208717695539079311985102272938175203391333571875278916862340038023945759382983795446196710072990367335402449803825264784680214061718318809504658161662439867529053888137130309455886050704604812476929615514905231468115494471933853479391816314114403137994486995488787382893482372534800708200757323185354735863610321860235501544846983825204822938901954001575946772895464305916234785011785912442567664597760524966862937299552922697480392335865612540432096086032903354067388691519154318212368966418286237890235159482756489240463041655157061437573734740786041851739841103487611446153284235589465080859639624938758941764449632237649649951595456699208687942570302128616588210799423176628759337105384098421655671044422506680173666469641721744589257861479004184720960815251524244398490388627221920215756994233676291778996415159400717523872240623619933182118493549535962234812857852702934232437655703916632858069610881350113285038337851080763019186365026907582799448354259788780974620637023290872999133568617325443197933047572661747371131900867463001835332837864240356867926053233407297406274224195250858119365705617829572038154429049273051331639258542587363228231822102134567106112992239943453821678574476551437833733446578201602281033731873555397412513881045371900873047773404934549416287710627566945442393501879181497267775011609241863174544093238681657895472430036626229037952157552687425512853594856443780947154634048315480017925350402468331982864848819199498407175558035491047048266254421948270304900634207854023447415276812872795486828974502715700822913395090654631846399478104632239380170672025571868463473515810003248528477059956858368596617735755340303671177142106678106212215319435159025376083696093061323332813894565150639579377368886144605582038778468576496724505787585197870674601201741331421158056054852348808226146822013621902105186400810563457617084095019456502972605501619140832482139435983206495474886303178399376006216132237105263598564320915003754807466486351311154680300379474069510620460786882762165217753377722175792374402255035103792751521132524408845382493459223195860559586531668977076709967383982881953285493674315839836827194077199153760812140749800425716423505697182563641183620707153078956039855389467476636074084802695926718955330548067509539902576024896385398767567382451901685296690187703328762636157165110019564227699239821050336067252774976342517420360958351876692819658569891250084622293304260452823417342891072218350643168242539792753510395461694094246364381442444422945689542024100065038198593276853977382235270324687962068259902097494499620684364271618073644258484695206552712614670424165997180603867278525232242850014746131855379585793241445531443946445125289121666497326817169931773089014057359312901641213214142318623521520184634159853254836740087573152861749845527508951068258128952915194940556677250296143680239123860015498895462371958305939518819343553143266493649671208014006258888442206098117284895453464350716578616228759539968931394111028923900871599405879749421943781670035885055412473136492416128507063995742376994532933334428154674216282544499128759682620075430513739204285988158313324024274877791636610055364003126997906110955848520851472662791967696847931589988179149140057923436551619912205002858644601124554965068278085633119000385870022698845014112489587008860177490517147445670946296426828724785003251642702838154374210957964413979040197766247307734522140249732352860044495685390288373069926765818162134108120667133031625376401794057412479705540821460884234082436106774473528028492336149962349831565240795145943265170010903864835162678962775198217252152135978548789415327821156934698176983170684168473716148016336216270708538460181969484070940123818388301541122587946061473740276699547733091244936607000004390941357116464493858378921361045014216663469251492911625268668519822699586776061090769027630154221809456152624528720113937950595789471593415523448796554927504612898840329456286893330139262216470531545602452048277221830638764471923811046001139825501926134019030497627478531217952469683907260843149146969497812857758555073476994830142136350425597057363904314853629529404100937625936848926571646215956970604857752268559346726316611841960518326145766876877863546248717986583534134037113163308650713692494356925651589041482056715137378606270326439859413199340621143570382499279523059957044082934758488840773985731528371734187200528676667763108532924736005204623880643566750388572596848174373848343026932788600475146494665239017401220020544063893739675392699521381085578721868791834241192002066468626605558714986997012430831140662352028202194658645694100973254135007077074455642261164535530552498898718288654458913211761233136302555977142743227144134263674271406511404700825486273745031074657932427391620178573169503195065817902808465838509739822899947355818669365212321063837144149717194636205707295682415500610981039554746909217269575553262217166982107566980880063745479568332572394008302144753143717331028612162849026972618075026832713963872227308557771409173931689016566554416634788777646263053347351462614295808213444761434429682446864623677774905926756940942731635355448453356388858619328692778963620620071541931981699125845469209276924733532101987898078241697511615499023929593437608026897333738121210709171087917840644837201284569818048572369665063251475666177153638940341093794758952613657321649061086509050345566356764095166965292291942859854870986841416739933331404832965176991348652934153080257790631954304443522209083656406462383192566252754898027945169153080318947744259172851597784988757158995612734995441305834572696405422828474347211564043243994293435419092723528361668794815750149141350370990509054099903301467060715684072209045007860684445563917490052197925344518666988334121268527923634983025295312923875269772474011528318199340705927630621286772499401614366211300950829829685533229170700028053861499150137603320987639543208456633146827885012623085176889908820810857273606418084858821761234431358678479847673865566256886695472159786493796926359044292923053284131992905727981254834401287710228982138952062832960881339311183423471908890803857898235276111783149767509557987725878372333694008126724590826435258069562160552271992997140390783246200694196620819550745593462032234152409597869512333994856749940037643185303510191183080966294073541071619387530749048764983097975993234535166869180215273145055742540211019408733911767533545577574555252909942404274945898545131592020997707826462094233750622149152123488646685133032176331758060955564893287916883823297996729321234368090978362515557284972825793054651991410130112155819517312439279510131714215358816473608932232942697483526510035707738427740368797079703556184890777750755107621873832546968421283599830198154011940084341192230563020716365004696185866424269598226927446973577468219466638306412952926713965745263566708060728836888144828665619631833296029443533980820542701259568469440858768687859126790909672110490652028811693314339954427764268591266084059759252888078991727726861822695552821460783917733939881209043875689730734831104649162038517215688700880795576366618068798900247871600947907842791631639232603323107011898944983791477549553339177261221242527785182840028201635771682457284289719573003949688044443586691439873455235438704849851522340252410621358461103023859997575158091545968312977031445715688506494004784922530495691224564458585423460969862082722197614036673894168885380716806733888627652927272256588611721347861550296855197745673490398744836424014022019908240952494124042300140913807618975749396729221788746518829988518876196470001292638910835168690963759259854749213733572193576756958877798978886024224897855053381453738207421419567391375356810529244199254981534569389470861036533204094047258446283311740085250178456570979622542907898370428635108253117536222528862268404937128833727049929540764404080088939368064815187185369032322670815743028317287000909990681301648905636731931127818225456407505211245861310980624459362316491995546625770567308291958508144058520163812930045977787512743435219987824724116210413119288503376580515266507308909139608115641020712912282557506214323454088953765368753831523249011688808418720767982254271956467170323476038205028946194221060250010441824813492955013307169825193827021957335395857679722081693064481400277506048488716354145626166934279840226377904606944836716425324030383153062401807246938754924746498916431994686519703335341007582055836797169032182750734060985137847794329948221303752210007514680917357584719250496597111216510184503459599538087616206244825583697912028296036328979663974417559070673719970596255310968889882678084487815982240999617225584528107975132362486263363533058311758852553527715380798251389162475111861012099836813727738886107787780164784008220538828125021276943604655963275805819489054357304403555382808653355200558836022069173367692151857264289136501480147267620259965353490573648576705997602319839277990506131581325578158045531101545166846608702199635887083207872325635694296005377402217270535331272405300037590832965593481539659705973586365252889517309183861457034803659370095741406691699521152247176005445760072491498391768780220107856989733522406114777712196750286800478982832759025242991232501114075716005727226189461384161814726275757025730633911672285263921033542527746632348256131438899309030292346933158975251532752856806979251480222277645519442742686550312429574460851747327682056975180516396301950670382837813972134362879718734926057414812987731594613272954488984157897707370844004282450661761516938500650225868913543095137466734426600759070850202071387265024797272801632812265572984658770528198964161366983608386718275568812730005573322234502214632487641887365145403048945715820978908074550430200805961582751375347093750053111517186960412791468274007110619690023089301281385288405613934365569970219759969049303171849068347938559013768969143726592902080864496732831117925487260955670444038224418898948736948062229177055254557973014977903013732904921640250232940666067082742361249124942690178922886976328190050224658093556124262623036437073031193464316905712798844057353273155018752974730520718981801068282335107710330633487823737338686777448555859601505045613881249074654750613700719528993709253979013918151124870713580242486033816347695307436571424582592308529776507262138577987374326443563892943957003671994160077483469424020216535964597797382724323644103059540517371793762985565945863343044687211324618857547207775177190243678830254653710734638258535596927789880716337033727712210543263597392588314341745209100069564301909295674212622312440272407643377080214504256993635246476877553492475339357294232520332426543354355666209532446273015665103336757362289063418581195600340573845803070370178382719478161728384696597950787396676592695531820348286060637329945370094062838937128987120140106887014193988307477489743198511238614861747913941116385149762717839254391862528970241596304690152842405983650033636876579735298441337044099008723925716290811606698077001590803105036970710142266488031308271128527670831786063723845108708444920309192815375912272996846622967369228326225280406712823716151181859199123882316450188297563275651670385230700316559679014792272340261004381487157823571528396552193374523706944675443206711132456268306200015257164164730007950824916770474549998890823000187570574581107173221053133609222054449971989888728437361400186500033441449364754293828539406906003381584130451768999658527907821274670744068289630953714672727859167572539026558546489691954639039905405329188265148539059019837968369699281368658301304860379608060010737313797561520716501287643724163940923724383754452522788501813560096678574728174203054170637206264071338219961774070315657107150105413161745209379614437229517218585145546294905154591399304890184955199940715901415199478982902913702874791878832126741559192917815903245295888795371669768756706268975158928989093499665647728384244999696554411468017092234355953666475819155003351672573072329207563388803912818230821841541047851722500843295893137580722215779710305960993837464216072852537851084931794525774072495480486452643391725008025172466634782770807711272095487772305688739741041837194043317949725086012294807830691792340770202833127164675502742950939910036288065173629819973310923602120211867618455370508622032479927336551093328196363761124309783155285743854162223100522652284317368474217007172002209680463117510696878442286187664659082006680771784217358006631944845607526848914150584358805000472955440031725800189586836651842411562521874067302700403145681325779744240244140780367349554251172981202675183975115182509584816036901206512205254321195620036397147928875305778303145830953445032095122437051685854389017338463652588921072363813062346953509747287759352803887074531570923113194071000986028749147810503008587637414272252940601977323482410392389934424559340535159788423054431816319269749025666364560598126332253994882333498963459220921220265782871203129911478663386440392088888423779759077357347555265672978452195014888635906318266159272703064535819839786064679445799465729767438135999184511221387624719989873769899639134107560904134480323868115526867972748042786633898890500411611628072736370726222972609323493006304631520509416181758095651184678533251801330608678040115417080587240688300529000002532052026347711683811010957101141693696302415426768231862950306648648111641163012471170298213032469890367636401193826296383652408670161794469044279769166100172919758433504451714680036745358743726125887482269306823923410881236681025246022698612020509058308430172133460806414073551999936578695661436064590908513786105094839302737293576625294057463105480783871508279288840082816036982892132564033190770178891783586310059537981922602992949841023555737796742792483711746629702610877526989961899411255434298893211447785921225770426225425718045085243410222671541517242244842397425365575468407857144006230944157691077066083110980427737716534626932489028891079624636614922394919981750337561832207719686753812751757200897382318566848955102755217572466117889413994583577933340587146276729480274387186293940638919860060821444989375646612566820813414078364747673053480427226672948963389564939025365454963220767090752979933399504327773857896064980975575163757420093696902034106997086582435350601567420318506723423864874150099883158479560194310776674089404519044543186999091279269371301756019217825933375499799468144969972606673955060486158209540433150458837870454302492886146824301026955856041113786016690279599634184268738186347067063740795880020143471296065189572294527607516976198053638369217315818403590766037897645847431457474253949619498790066495763057258676558823962749767851761183251106414033628373483348188853126741217319294878547455290017658760202033328495431083277828881101427748432247376859761079869199074383182821081882366499562509020318889401218528348012657364605299417149358305350056575435073943895943864696099632815051089957095042512225517253333024798067536452596832813966553041311357771028965353323987086288953966577661980724515758634162587807180575738233870978047516725062156813859904876302821575401252523626206895512334358916626295086720403857605608018680531208064807812617880991075085356046237087982957211902898815248313206253888179938455847843164125200276916938072199839419776337462764095708672122536627820955518049256050569091125298789439150490011908086259393089914730017377921076336393380966516810256709212370911219531099342133479062120945691466843282131771226277612600422234587803812640473452185868974009538889899642450052602766014075097821737803855079910366720113503321987903914045269519909834753550937713503042603720784296057601197054015962255232449089528985396275598579278812804908992277016403656193266130203298571593087178064621409228580861091406782461142353579667189496266672766657627402646082023185433102337035849217985434804919653425548381586230681964238774259068533024081184331599474960018379567100016453702660751706196349092577004439726291874558913858027891500925120518353660742367047359989418013463910648554631767757421729312042435602709139643133153438863033273223345714612297432720752002146981836357361182303465687270618464915916671097229979577705589880768239788009688020970164303011757776850659349137853803205009448211120797409075597047435106086632409804574546704225203868959104995588097977706231150620343759070518040660821784060141434792025296878916722247192985780645038080664788405762646866234433142758376570232401728928204645631255531892350851000104817228394915322002926113425336408746120209819387511518814867438653358893029500948102878755467150094740822858051825295292469053823957922393259149359212466162711504436793875937001704940788095608746963601787621688491098912456866390746068956927658984455266242348940627234053128634920247361732074981141389330868758961067295486509791303064796959508471992865756926053354865272267843432812932170170040015887101369581340844738857877322861764506131812155549084830652675559420363281855776443325173171995692770901776591442465384852705796748444325720139400916660510884325465066073538648455942793946748620015195138948617091101259870647910332626820634757283619040750448733589973611106394598307731599615574502611238487093142870892708371522118322512721090704656017366666495700678433250169551247688253969685905212028147358361349945081144350499595823419036513431570198223005669495933697974223972104038516249349498168058171905057910389194011134947530177524857831120583950948350412522449018909993419426211442358631536731724934613306592489411372498122237828137686039776266453862798917062340192655153823815150333440338554705765803037169918633925509244466375593700715457302731234953731658817046964607825449418090622017115555880971498934541046018504309957800742185896097086974586435291039711854356964433904818491375181006149879837135174087830271609769160638820022027003869916160350306588765323247565343369171513577648315594922278158892862843207191170291366163637372133424065245037014176172521661671497047128906810665520397024780184735148498385306297554223489563597961504107169604173707153841309725089105187727909633245345156076502756452279962045236955691258102264036217891540703442277720464064032039383090804446364103969268168329621267195346745632354620898952808014037641333438888661365324501095919904328835845066423317831470025661390160860659962916375649751557162738037380010170559076746130942947722128048344453712615561183090760875831774211163291170577858475493023727172756319614327545786143569951268010411104883617599991405032573460172308729438735479720030928493052627682249145465054197859002026581759192579231797242985177740930511531515132422939254593766149204358148319543355815933762315244029128692286084620937787482684846990080039841617905678639843143352027931052036641077581536860442348613188751281889493677623034641258901558542095130027428625715911245769906735422709530931929674841164417259203617002089555999939639125520745323336447945982963534957577096925682932309961606475193650993426621303723226327400656364141917432956267895386407255230824376033767307911432821367580332524640474372870699171031473862533642780399311838727795619115760556463505823455199598753244785932534516525494032894785708061503917534986513094539996681758097770443500621611152452448689023403729491936102371692478551472995245391875175006784834482094667083361380385276738602169587321826516355286124991237780211062386379454718657291039064798134240568590162493030165655964801624832601591297951088279755728635101880249823369631464813472811882471791596250897955993793265556619169821199773019139321843633679899703417731263912921553864779382272967653276160343258586059071580003747113886092594193163618674940516736229162441342729613213626929371315902794056681212005824731592509696565201307186944153790330952950879209802035456550171639667305654373997778568090154228340726960155610223300685925056924944492338309442580423886974093190161767310170621988141920201905924266709329565747299295727330422881493942297840354616777217823230182287024172867477261281524955132927282962212613860269746879367787879817098450759893355133531095119303875647863829040473627516906879895939591014922078677755645535192132161720921371119916661244564894710125933951288980459325887516763558116915889038241074760137003211634308524201176912030901581103261157811046606194191663357958284935545780044061325391976910709141482821706364391755385873999700323434178821253998354784158795469322756976610508959912779874441686402088287410299132031014802764668551258431849644518863888917569856410491784232161530702387893895380536807624276976778453187883222174061313160100653026007690660332089129945942762983006585981478337505597209462721321170704030216715739848318208501748766032449638497043965103410929757456011866033225079649747886426267178492404278239921651787002574686005106995973717524083616446737596054949043687726066788943068442130262926248585391338502286008764255591468178264481334199611065922783034075927006072464974720573784717900081963306985714731770729823687682954303848633041403163916431034411092638518640511997399379063520507446135542832331892609411566973868753154173573227587639629977667741874753276786470349096003153394231973038745349777263907518843094485997964745661225492817575692397910320913502281780880890635500693598198147350573990738002671493109736884837387890710414802538149336786060955212843189046053730754159896949010661085021838673750783429374197819295255091113551709038781264372841239866893612847328328896277831016170099364290927299013403906076819373310951751932341519545755763647938374493060285623501464106739229536499334585603114585065159310332936887304919630539336711861827454895688669709898206762656605927522897052051018136597154910202071356298544426264807305832107267949969668479543571748501383004448265456208669600787977912598369815949595292857081027372596198247947933828563710512740777712904114261696387206502378451434440427787423641063906294265923858032845828730935596570640998767423583644725951088878182170578236152807213281466113177620271951452466786874694299757840705357102814784186875225084110976354693852660295477791490001858375586093202162867406416772694704028486664698475180116565409208354333414335310469937522951967958988709214016249853668766036810438799423645741031294750826652371061758589099392332789854662089171378781643774280268629685513787225166130799852138734576128687756968380986133621388758950077842340734749819884386557965881921504340957747336750809629495838856745004196727207661249231817725354603442387890120934253558744579638445883747997020330554094885080731049958092804973950804453376970639652660655693759773522154929178965683797033739094098301101411847749045887718780320916961934212864806381349003867545359522399257556822342009305153931943126450051632018623683143079501048369260240479438570135968753128992766525611088555746276636468003196441764646700000891794918656406000337030873242955391122934992730199778887418651405709642175617125067629321273354674583773649630882362912467167503744105448772286233000391350153359473145043032203223612780777004751973598232819729219162166667781013069954795266151884178683394237020263800354633023184230015491549947330626581992193227956704512729592848300153388907122835861928359994938072227069240154276335832479482114969941962587632708019745007671283270237874461039104766730996091969400436836994350131118651462317185757104366345077767663510586037552808806613412161142898320296907619957208080691035445566590487860879469169806954286519999329234062108554149651877875255552072591491493061843849579942631338551496622931341914776829584408937416937378459581275876454964387847896143680990788184972883152963478837721499662020783008158624477396139537373969599744841284388547562511183183828857274121721910647597554991395235962681509873468297067083022734756474198612949745797843286909453836276200319102043139452372887877237170331091087142310266157248819127090333279976473919432300894251495908297483315651032740488965195872958443454125641603912387000430291256415232707062364341724548341914355066319250212236781859587885758318742033676091853406652519921573313231797610354532108950613546884466961317648380801715254553285235593781535182306256975484886562696635410308825660493329621643162078905015433184950388811813285025765473799105267727180789955060389635932294200297099414758478506471066202686159599349508487617279210250375020115887836353920902905684701725836002619270055139398410175044586211045314578646319839915931925847937848890829383733220195515096290232887869478927459314497481021629313821591711018610366401700465374754820299801890047612098604919251026251696780383292997809143659378698903150320469349115123815188485019345817232099927378177626887004963441492102828801927401417135754473203292152456986552061753373769582644066315804813722321507188853655398805135654968026922441389895334384176423200124352644842936650399994272118239144127081506818144901827469693984801386750865010659595729955675661630904248718151967144183346589684717523100014047613095177782617495088797510508377319091096439558341781897337117591550126893510469112936253771404048299103856695933915293495731233863101378355889873808436210556747318386357887752723761895177725082937124629201936157603781166147234473736813924616323719446088349432424108649849866161454953057937252129356201534085369469818185497706984348785335566618002307137912128116208025769152523539006208557466281912753755634103974625700815665499080591397096741043182538513737396256175028391922173841367326951106410975097725462179334346295445886111950539402920549751950291657663243932448028442023667920747382909005583782085122222177719050705583965634059334172689773444903655728907240423344849885631741344341147356733284584029330149469960026756880333830745810158785612389667146479098217226332521885933970196708708593649318341219424681863724214823382226995606625417355857462663433545938131117002792977515041009661124149931329842549387114017247288513644561386267532386643174897094966479145666405580026991504534991850662450861993393602538047104334840137028738628731536373758122313283589041926914744611834017388145211852927340811903471048548006243665980990128901085971499187936314910026117482206397900087185495952476647123367943675117026090136346708523114659482634552401086883037141411161614079848980100819097239181483803096430246287259780239133312125568082221990990559527965885152603393958699868410047013369177937089569401945613641979819539342699681505567525086923415881017148121709003080287684664110544134493493804765718297194814603839962304138435480792642196623930807464136809922989160156611156038863900055921602599416675489601765740683020855172990554707685461770006506002316278484353056385619845648919897248274768236792656600890628883433957189456237761524707047053120790099837640921100726520024073972513485826473906702787233100443769347048047513111105562169544175194248736134260563957039574954750084703080870043817718262650011614875564384420973533365339026541589775639306261364105186820751859305890321691623087214103702794252815663165438532580861747128796519577929553645471085002434802207006282960827714247761431865344542605184934592374271076336526911521736575363938519200867897675851146721387418585280600692556748116958528718406094396629156486841508332964773575590056721898573576646935980424242662935727048748025804619433084231224932345212254593858224099946688925497520772877048599124719176308803346270918372480653421022701204825650685831996696602885250145277671913038445646032898199870052150185601975303728692508567751222312477949666669254698931356131746962581717272529729747541327001935130680378937707648986124326494625114393959790165237477450614731523628924964417328978452013633691888642410279510810658971853232483514321716721833367200235592589171252245817167279087100656611630371725316696000864797883717253447229528856585539060730467636677850004074456861359133427914051647700469136949013782089795892531284966903022460297381402278993531265922036174779812817754865396796569804157506939539662854061229923566903922466498472939890245138542459526879529599707803568966613608759624096387106840940011653493108881165636659888452279852831489385386140038893659409640351955784643263719984517050426215451030206057133837491059227595013751811447693466141767039999317311718813340721473954834439104887252669357775412415427788016794317150265412917269001104888422135257580563576566655986042022411918398812115657432053536251855403894276820185621320345038711073980481814885583372108887060473635712910238847524773929366706117499837399398881140523006836495052214688066612318193360043670478623619816091982726512036857709962797079552010877907736924994517527453086534790725073955419563643783110543560534969704949051599941154440332153285572443241423885386454528687156168360661646699878772432363042350583340950400510889595742791663885712863285870012630168405249073358025394830014757364121621558844135910103802031631348859825261213646497248864573801987847802001426733414996810413974792068448896880428116592721287938621544438825737024146699764280382032607312024310510398498962347718091804618654345383479786352152480675825312948421335398754913175117471073262504774176083886090078176792511937715567305743631063687343223802725922113872343744244733697002608397469394490427461189062243119158980705718328175403780490904223034832529846166827952500833753230154690369976604858108419719613169191062818779984680618520400590096469856457179333703574784033654625915074692101310783520439017000045111620918414772041261044797964149959109795945693010588054972025776492246032098512665695766011878482945029291334182353375321143477865060959841928066535159692642987023507967859145354905088799200812038957997489608286419585131672214336391640909409471164112028025941152305653833804245258972449598017230407134520529531623121876563706231238618356351989021661842961328708764113280644364002516839901419555449087027046147041604258554305388315835998778724981886847577755185928005848931954886529763826688765669046302652949430426949259899762149401296142493764571221743454958441833266501263239295021623724697753541068272288200258794977062372775865251095343241805741645349082925240239907944142797781719916754417516627027558079748168026930524626059886483570428122374209238600728569249160970780872740829122156892090392340266182530244079844354127833127331727775979458219667126293856257642690036160949292857364109407238198203575133841944271706511468768451036200520606750581462952837882197748636993379889835588660500899536530910800487301366176661422082346034653336956044720805999710917025892349148049873367057555124383573872885043557066102050451159880314813792691688842527540786370171948178885342606303585236128301871449120597772817114014800125950212324436412485128895898862670580351600984748002851075327265427323939853600910183216656775790328688972017891157766235046371830490177674085672721558931494999822637474042280321335072491976638630429298619614374143369592890430909036648447424971475997837009956428540811363741331242871776684199718080203271158264824468971388525907190424407015183141266578257721256995690707187386932123025038217235950169055000116664520976102161995078373101792239758040436442013253090306486926812982036592094035475584458250224187222295354713766067800876215977053651570556090026471694731658628907923892954113842750440339354161665201109475281545106772120115940824835300936719595611398355787714696338027921176389859464190706103700014920811001501497923097278376421443979647203341670229535146029691160302066745732567375388020571051074818979865307875928046515728106267739673877599355539362287922173515305964411581995638719119803491268272670338749037786215321195896930803579066411917209651350903964550985375343701452269629635647599524828505770744776417552124459679015360022767904471020001886433683229811838584222207053603429235289883881045738437360608929509733088680470204659411202040688152001742670311552670354378370184527948436272848093807827141526437051683562238196757973064194827910379285329809974258075706981620128482600748637964022379516689526812261978851423235647761061390588058961439483154907715656635180786531913596547618272306131660873991115406927939034264278516650875422869213386760875117721493371582311206385080745725916923656161773748405278834887596067125001741039835523882082484968681146967720356394428541291821612390670428133164329360718511096625059141526295315068317624520108198665716134986784481722501728035211639457577998583443306166059037299261536865704292033821052280345148661179669291994411026037624886609198554692312152299599541677249208099954440825218706050994506718918529811569079481178594063314332776668299821757703103427929648812321004744434732042589423358303280191016046079244705132461054331593268754958842652272632704892683710728472403642168323820183281797884825591812888741871001794366487548785529986319374072813526875453500562096572029511479602822024208758447460175376454396834347491288850032302566220968268104843627116810051801722412279859589637774879630159594139921295355915740843449679373864944565725588917707934606387337598060868197277583890266889601156414137115407041611398130718902577437898306931825706566393814584567955666812741477151372564917476424107882156310934586855577723638435801517526156016253684199601341686319735215470200798805513859550474365793861730841808458832320752786072306059544203228804815749097325074577112130450291086146419680757905195475926413259358066561020781222351549315410577955041925231408866873866862721175139314531695928630276846527193141526996161915322243959724902258950914407822432947363082586629633173251882573490296831679292705972664728661002435284453508059506730872607761008581039799132312847122324799038135664757480588563699356663521747812985160574760934215729923106769467135566666826782336859603864587042850969726211647651540864887928028650767250269081471522223596152261840938365731454854213992971667783972583684960987753379311789802607585668753106155927839119604746814787974366951733499480830724222086856531631054397359422160786866234788554669443890022845269312387384351545426223981390146747252838235302595476076248437216954151138541658906288142777645037987157267028838682823400206402425637705605980003124046639861872095104111870053465007112516507741948596130748092770386335413337393664052654061493166323392757991304473020132340175118447034893868590767517544302619646312576470025161246612786125187911814271526829256690926981851648869898377719692018192170578111148694350084277775838413593561691491016487116451198866387229105935699440155477185610015759048352536787778993259367615591488663735036974916360284021980899438955060200677597195508007471359881970224919050931798902195980636499847052443871632280009687464564064727064862286767766387414706111483562206343693264620909661613183455334711052951663415147196941904797658865660762709535573091531439407036433969380468624102998298356993064746669551686625794532282976634084455586109797653482957198482073900011940439401172151943566216490505194502632422854989311780131602523176532860542906609190979187967241527724769830848868467172374820154560134694093722980862662894617672856251516108120340480402952594577680543507019374202373308337348513367543524078107896795950213823188098881612004205342787763952560705100100173659680712480326112056164123720354250965866015621952348128256669482981220877346500491423304656919246155377856467696309988743246948706306814831103594919120257781995377649842353487732638734404083506034001782430670010042908876313846948015449614666965287076112111702888918766610855720342190466642739278646234797229999117378015020532022710473239348468047665049470246808007345990513550176266025633725908539091882173368868817072176950445034508609115777944559962978817196792260264638376764076099769823541906956073605356403831772020428452778389225428446397350456088046589359800753871672420650930022437086693476766140048069617308743056264949489173035908916935652671514169739470144870994691417421472442017897022058247989613056317990696177517193400195450474427381167807902219329965319993740772183841950338076151469125995100637811942273112076256079037536566162268079186198103435270814974679085995305130618363743869652062440790282179904291719479075523984388752171023843605731144786148221356145455315872437979448055194861864371953839816837371071085391813377122337503314865052033742527548066241797135375080723944950054581070105548977141985499374069212635421771177209864501748433757439685548518195122443451341977336917707268383574379692587996271816204895577410942599040684592476820620174263324200813242463508987351894232717180047145631674464404033224808695542082067996996403441796850464167780177278322401647535382478303560905955730097722572573550237572245284490260865666515311661594957669015053343021892166035490957322583156499061339919501863024707695840516469065345569554928300739330748655331726365117745257514363953636115088583227538199319969965783313356173370597565004431232210661362475287674699747145516650186956130278694847368164936289601395753551491547326583574663304954499627019644028514394361983686483237243211989189652443045880647747661028650212418576784734032132717659551536019842257455044891012510947290816741200794136614545641455430752619443566088853737066299135211312171735503527459936596398397524813674780994363905171588234485719573659294904581048916233104614824463894232760444834606107027540822261727259221743690231091891028267993584716996611356189583913370042802228972845843488923875149669599137416146716861972871565260709591828203203082427940331997787868636342497435985619732573110199195600672311989030867640321148840962614493155950193595116206123042131877146320372783120435687106795221959954439646395612331027004732172380999422117655626674930321022436417831955055965141799880607861617259608314446914160725068286294612907936421228013956045382647226522715371369072242067101392056957092914514863752472606074623225258764595620592573603947630174769055904199312990431250000116855567412545729323469413519598091335770855818505501618486314328374981481148106725760867657968927178369781089931729991291514598279136346600979982514838382173062140325014669581701038934204115096526472347314425701049488023693299242683285379057717762871854230479151981300685476948715297275682730317391661722046586668486014052294271616384135178110185753230004170282180229214259010755675431476390856226831128059187801894735693798830797670230136304758173995431984287493514091771315183752953543882645268855676163926167811546034961388905056648794285078312001887912983538745211371205827962448920470578303411973447662154084578936335342849505518004934147013037324881675654209788889423607891413154999361294936510265921471806732475467363247603433354579812824612607340923842678017413617349460170048987079885354696778730459567495912984881886060127493249388493840784186637227432734299326822447865637557211234912411215474495163235753424813070209893351660465636726471313465461102974973633339742099831196398675463941333658582268277368931039126723046015150686828986632760399084342202167481348363203963036832093847937943241983857020771776744886442397980185445909740915170355101068091711629786897770594394603668813638970118707823565441012644426337971379856796576002555197998243300546069219474145858608959694063423845003853145043126379528998900179600206740974617939762371044898736627489851091432235734020367421271878896702632809720099140767157623970052979287611028876952306590762484183667623553571286663047227441616803530912831265158230445109135559046890881415796369889554743412008133332058669572170287489490255017910564555153253674459007073723688679088114539744210309543299470837307434585239684815675016151997711817054852951463464389526772255322862763680205721811427668682915569878698394519335523240964690838131300577494435471064128512052078675686905451697448101701997716151882469510113894152673614257287627065035704239263604302655480736308760914666300406665730745260453921653563000397123180084656449528098521855808064988915539154520186192599770955403775372169346039446705708563813094759320632003662631765217592530669504578266862502737779316574258621584453052402395708382305784046877515229034932326695808982188189980147939984560607748802808727902096606999041948631597937063623990107579796755257042780543404552224794824416385127904642912772800623626398580765132277119348036878270920040494531624864363856894088400242240471337590449775656104008159999916257343601381790249260227896758353081094589441716962068085833082840803442963408041057777170213263089500106051411174671439619012777514261460840677844080164968502618624597689166362936544705088195090772719272782976382107188988678576780926979463845448838367898007285586953937386411621101291975347621843762584159487156878965025762476536009202196992267849851048696812871064932329749480331511070207945391399934928225968724296475129576077415681077260179065551408375629895138788515618666805185896084146578515841144796765103109420641055824290872534690063759748832355253385841037593410941214863326979928404768340708591086951637061563668656475357348637981217014817063402235884452230635338949768585145568684921834534503709811576435269845913603364947845114521731005408128979218419200170640821516495302479423383295984503524425785994555974652219541222581850897083162741017766505792504016929209376706706905681504379841939268573426904188315406774699588571962716898729605166562784356178401060819710852664400655669955366245492905445918512284769278711655727627669488239473912190825582641404513904726405752360599001074878521070919206292249316575668558991549935335958407614901284317067029290005787492418301122356568241623366942771189763537126880764238557135543348815487615286442643123321782912145449005107955264833047787814879249573381224117279623494525792792392353395488925625987574240373824109563899673354149827353340956404582778360954205525127902526276395583683272899474176190848429161351111569219507090968834236877119202860468051819500974849191292425079953094264379288394343634159688106475105334902476848554390592734268231761208875551991403212252457991724496660036185602505229238593480725696594451089232578528944010679285730081366790521757581477716352684887010996738302064691920352938220976985824910443584178493573755717942885468242392390872547027708977815251043229330320046478509094406634864628472870113919784085960818670539608982715164857099521457148870351061997552189940095324181529015201624199736688899088689936372801260900389433211910824502756839824558888918930917204969948679886704781684127199571120268620998536787120586772057490749191843213238361339125569369852213035184401218998103977589348168202808005985648799325177386581001277399560011093848710789215385956806608932242890447906473332090494374101480324123597301995071395673304384059160571854698186974425082676679621645991933513566109369965079518182864783835720681041235375935830576138695683438813058323632613468543515131674326006482837988004890929077503366768455047774029378574920396760260823222383291268796165949569084214475726601109623302317840096637726285746514964062603487158307252177520342407737125346306941954440111408496470654391178582160867061221618962340356890842019984633503915015872454480422460971763040848188373479675664733785998720981900961873828068432488702586922781685865319288773147848210359488799870820816831260148450272692164113080331351585287253586243074138676393014380414044997878418525803186056804181417411015760369066230679530390729004242404129202604845645596441039771047714014802910156303536550153250907271039568147380287481358821958527048437255506828518853712730441346546933453934756108909735128843741781097657537659302377015841983452872401229138658772854020150671187968738271384898206442235732493360220163045288829690456508488098252284062955490212375309890307014156651787474276731548116731971567105085427217393090558067494122614734989978854740508977449927887256041658596949164743126906597307890688042409601763242958143649799436165410359802754215723488446491048602806592939333234395440442361428241927627877655423515456571582261535413947450969730163481967823343907752509563366877031081297150798517916088055651414770250940766420771435669993019318394767856836958592778913142875736452834670460401979218553629061880113532213143384557022746780704604875238097897913815427306345217490341172639069978466421508830230834191565650230791326723139910009266860960613216341962006949546838732462939743219116588353541996188557763561464024870224974767092503919915111353744558522135451729997248546637196677846407728034090245559531081254699771595060218084826270769230752587932658749718712437626799915496237084896809775977620805213474563917868074464813315472561226181881551224075943472384614033930847359729858411807503687915141496750574769422103594716777599203141415101718867581541035671948339515254449379144649963301572539321548126316755080817420190375441783811613872469568659867619693091449659177154873564021933430867844869907108808160958330351159584813883999256883278100754326520684298926382614656680845914962172686045706291222811475041884639021319473515311365250141651543638850181299667495082064732625293210380104913590305232014113620705238428023961711870925557397678135351292196133321577355207124540731438732377300388740162032266705913964770337626636364137932091985686458895082068801124396903894976411561896380510557242739526885872740930962355392494280162581073451318277247895651255742046402281428314195936300274484248806693023159156813202212032842897142969100779546515905232217407056522071053893557011297295692011044566290586524964874246067863316442818190705433066779291480384904595150874690969185134568491591888878486659249941991691737492913286899316124641867574420178007380400083953956475728997047207608629059093066222578793360080369882022038896627789576949115781699528244080518394955271342077429868620059452357269132445890196896303847511851240840852701450830716826895937590337714232370235519344003422856533793136353628140556981425524734647655629398304610202267589790818670082797011049340520497368591011798550750958733292095060361949823814929850114334078441742262608892639095187192326630823836874357955839291339212994300831627186741698064417613135695121793242346100512081723627607273982567772829287254679708904073304519425771614826825674714923002868132381891610467636343116661503216115705852593147842503354623883899099720352720607047797042626123620530703225573054313726264602993103684599076005913301525670737255103893124996566845661648222545115133118092530993143246845368023754557697563594673919351192563829571662503575344560710504601597688728011269777683257791107353242669565730723445569583379424657456767023723584945020156901464209260066907958315352698711692709690821394455298943864380867654552606636641845692036898073343908673086351257504546529815512577631099774492405501761076809855344938706191412042977495384205914974832448978196270958464323527440482880582108181202896064177769643127601735123734909266988533799323283878529221591221443077539764231766853410195707944920092588024864336682567757202106825750588928867866648224090013690765473534391811181734047691181768387175101440632781385423067039570412252447437757102220207366376773212585281411305440845877445220520621157836336267951923339869037236706774745755237775080794876084565136816950840518068318098576131761982359353171044783268032650132203609525513085383336927421738766807541805559471211623147646928131383089187739859328907211198185265578323861557091208535878653526201241271371127687307920751122479034421777715579399886293401939845144352792231212286078731783263723286862197149319443247671077103347781625677569460875547284696295987175373471080166817918401779951122375781741837206499189523392774378033670828403278803150343570959672358238094516554045029558789957548970890306842219156836895833792402370992613771201048270403722611559331725987890972774485351788386162945148080474987039788992896223753111061098091512864776690041258197777154450338598204695068565447131855885506265640941357322816942881183136989032890953445691610893291629945033704332334661459316961216473015998517912541159488886464969694885557905011104839890902686332456292145319073340843182203039902118371450720725531493525572817502191966659050156175597172561342311999554955074737249349871839095558130562596588609054619054945628630192667652616123278896468941055365475512947309348561757317955105751527005386236619893882046200662167735208705137391709319444951896581081474390574339058323231487697216910164679934281156806015280438612380372970726193683155050437371772333741605025954820206044383020280598772932500753714402540362194324788851996722948382352761977618106174666986699057460243854539602996696889398869733174716150681959565500319948455907623942547077547415475165096164796587270821103273606573533287216158567842792450863930310712486884589452839549335550121202759597183980242722048632774267683588449045021751253216392372867489030386083873778446412273307204898650343358302853079630014195371912100638331636571917491789349729039029306796945188747275925057480756769743783009837829552880809582949932291730433157497114549610857223583707744290998689729839542453515864290080168320328763025619252211317513474799627773100965023731971595837590671645131102447949435157050183838830150218304719734086304460690106802571959371121136108234511152629349591612140836921918894438618712594360802807002026039939547653813055686895445918568743531102478291705190160665356431014671901358943056901078287362159802803723035244272475259901971208959158634313023310190120393521872702268048758936024924449434274905942309760201502085480074470570978681566157924643834544098877892561486928648036887688411353505725825504416164494472656127342549273256715296417402319069558269440068345356909874737604596750296229612553949083283340088123638890677315990133468939975852827551613422052915830606805277945671282272898741563133001894951052859219428693440237986675176379251880545090547357790851559781190070231853975452987458107082019811048708468582015538524265029887673984127001040707606144688798296493386368779947814853040647263674123139050732459540977723094298339547245248630404679961169582951210979904696917813301488938954800898701943856953886950482994509423454415009912241372784017784491124152764213169765278331880766360837887532609805589429956325536409596204925555034653299009367808135138240948297623174849435047636245213145641066809199373866064231406029675465722713785823465857439591393895537407897410824597926657130472663555011939209614419912865264963214831622309272386390432806306085110885166179872388399461407336581113878872271653286770311510140667623110071744496602220756565550100252195362989371182426558357146162972455862688534470985457072909222160574839030231229556544570309085012427689735535703406952440928015866555323392473570643774522477153819536191812091509648187782705206367652904675028496583203964353609253984056589509147753034776936671256722777537492072840786926975151096852462641216518915698900570290050322073627901293447610961012478598649641885653930664563078991499519479846332926852937556678600188321375464847100994275482592938754922975318691773885769802122235666015231116723877284384508342315821094421120722022504949254242444914097732641591650825437926709026758782995698811529932694129774430578207668289518251323554507590038157712299543219610823534970023665191309753638434006105498628410996726676746903311469377998200863469583994850943667121480971907789682898843595790234514208515475178815006320191461905796037091467659610065610536817105776588088242456450025576470917278403867537585638608505716399897976821820202613459457056371346450668379807522797360240211845132817764249147274031082991098816188121605251879659489871841186942492323392704234231143443641612647095732620789289085066032227495174508839260706109016251629250662574662013954102170107739406350035953305789243713971332694477383524720705447894915739228297708206306292778899503831365249863079401486686033262446857508401334076578850293686220593644702220957934501859717751881506270729375831509308839456817484644828479563928049750584894511311212573927448551004962397715761185073685112167709507823445295436357999079635983258301963072947530758017544552564010112803350618918806196852768166782615927140972306744481169801726482891164611739142043592695565329679352230726997748848643582207790407479343001965064128245394302135182919944821154049281335828271554755141427803086766160160311846497550765453943866487272815176954915414700791400570158276326296967727524066857311863532621098946781032044006029903456219744052107817237708815516273669533277256839250483118298997179605826873643900281786781517026429333096558442220067809056264663005883865838681227718356363611586763138484791117619128217115463737481497687562198349943993026099546080656343005579569572214741215183065548326211273321954544787992322822743092240573326394398812984013724120099783282573360220597041058938414299472224815188957859013704402830405101582117889426436970021997826157889008183454059350590131466281353521887612973214977005753709857266546932123615789425740378616059965828934015626056253008123643013638150707506093154295837786225677167122850829558375357319818281680926134450298385649354861736797336137498910372585436239658745870886398959057581482468578968413100325762210164570718456298146640072651895475793522488355315878578126472727964938851294075197290140342892395823144764519051478697168982555344412689195716983623621384500805224150914359295313410540149120950783961089013676977561668612764542253181057797523851979638769456530916621616485981730192069370608013238706022564429898882438389586382755773291312003023844051832762857245261903379744221955417474635097295137768671199398017258127285752666800533944224264421578133838085317852595306796057970698978822414675135568342130148633168651078669834301649182227412407927818048577974036159082373894829691469363022635154173095923042400774821684831053578006737732825999020978053474781879991242932723955950472684239142818877128836673629578329701392650998346409222908074859844366230205174683828514473934110560005083879978945651537866749838566618960694115585585457186024723626036446313999193261861809770127551250726877785510181776519730372962482569479181975837610554481653791442427314170093434793367174894917948524420135014882940067259501981986640393353379467099405605682592381218101643624474735801040114565197903120451314650452199112143124106589127691619279552207837516004280431881479848365003645129765080314987343200869241806338731499549289873781113432424212269206176710534702578957336232537030279560582485767856561148828850467788458400782463831841978895562698101263910958180557044427675807689523336086702498399308563187774254085819457087613119314895302607626848064012127151118730702139347185694722859474240562692308998332701117832864809635855720521098294465846592487568629959158233246568053376509981747421385246661633287210756522463930976021051110944761089022229878147494858686389908056316004755844676308225275065147415812591875207959874145134139449756419260188326348710059209115103776941849898352969333943299462238051078052615625817669171952703569037341557243131941080755454312711225890862184216734519504059769872118343549662964301138118439996527354076664771751824741502957006033917707174014050423344919241519542016098596144548982596718627013115613303184349789160732554055884207105803043128398867332455558873138098753610073049809475875358156624674360092808274333524552880463596202303475474597028243060034433790043766160953949897001841700662455951687443957900676408520870238299274525525983276547978942292282269142248345005574428863708889136744156875601733212663742879543211562816222815565855503933808375931705295208012524962108092421428316798123553767125563296652387502072060299213470397330887678646656355854281889285786330723731517257427080324056505750965664126125356933278930727245372630561822026868616288852785142746151038518127009067598838860953175766156374505420564217939435127108863695456674148237836149678100630964450297599161836007473711817074373222432484679151408152680864280584550298032990521494469556479964073055236057592693112142798348643047912799689980983469465092436055879057275694104938679306083005661462008703322090553405136715376040836876890131603740832198035278937780804610689539283586819079708051916750672070394457589911835403459877835067074855131460971152642272200868732354212877030738364541095746551756823189599910583770649644850075431203582597175561490525679673002057421830867404643071977874767499034037291209185676039922032438325987731442395958310672453228193778180079355317172843411792855306945866904756017663629903575411691565110885440884710928235977895965964713890751502174633605460040658347170557111053245624405761324832991210178975580349521284810412513215662146142436321407924967403353955335722091126553950663186863765900646046268607962641667102675594311623161077881415089415319481761701619980513120313928939741820002900799645611736345560005123606700388680564605769091338896975830930888688262990939215316602281617223457235790824396559197741232718152965027534620172156398276277499059464431291849724759171560007315386773937154683136180544752010227390804848461129183291008656695529140476955617518557673210227937739421159582342766650726907883156680777697426177886672809369215240211534378546970401474866695054546111982986627067422609274535053049171818623143276084034539860540635717678373927002820466546738633281852307704907100097324843897672496781836724243961708482932724719167323735867905962174539087142610800985751068572761440258403933838877976199325813197247284291778885112168677861907284796437315198985860372768017413300921124220554204122748323984713698363856118403555422979424886080492528949260456138886546059819284415123888081835502864269322698198908222376907263741888737585062724875560609502368433380017617542368033457014058275311307846774494858521169710895970079545520524040815236211446033711863460827464700044118609862209363759944575293821270090882755383942350902293503146714848047481284330172123984989491407744110684848159662547903003050959321719242820352137712819288389264493413283523741556773256336997484399212222800590931047588504570721774280514131425454842835061245626333224319304330022723533594039924248610782491868278599873277983119974019734494740818748786046300238831594296564714203620405879458373156478117204288759772990616112818793510133098806191860888225609398177366614571822384524826509319578781232604511501881211599523671116154472686345740376828721831135599611407489202311434680950483730553955514763819161150721679304477176684505373316576718991753311899204178852294313703870681975606144759157623360937323115404354114205694430676772117782043076148427168048958011819201971278904456453798757583347367269896289242766929702338451852005045671700909242409737093579549518154091988126554102711866714352080036443046334803865518885905526608686602422757929024289880091065035570933948524533590925327225060987558346290706853631135340029429463350890480821684495986579232604183026839855949359034742137364508473117452955155724431931421439629621714708782346507027099746859121963968866457942283012918276428755844715507172713882931257627038498160804860378058101578854555068253480790537460443727350978261335403514644305837343749787845623040862822051236684727390396381939909649661896119722734787029718887317943990726971106482956796905777765959886724545616167281479990351050176341961958104145632843271820887536632763821850354188388013513602492044267237192461881605272134180670353627285537448069880912887931549473125489028028531412284455049669271117470373636125869018869036177438774609328666667677717870794904947163635324710096330497846323569550514413943458398871491909453330090812794655652738282317321295559411338404300802163841303434393166228946738414073439980829837316934429105332262175951484796183104607240951531859039231216718024768048010936858420593719462424207397169292039656168998989290781605058364415090582069409017953923890547750181515791051549336396821334714940162271608361521784320659279936414985136075373512702958711709909073385262157571174689900487649444714209224849616877738171692172865655243053231941521352432610898707928960378687279512872383358827184376767459175511764065544303164988075320105449552546437910965557900449658499394299656577752345498825617336943283273227848465007310662197475443752735791059500715702703923468324691419045669075272122530050082178379662837348278587128553758891871372391374565373288620911243556807072893952335943268737810582721772089224388651883661390617705520704530731722094877967665386133902528189162979531168773296865098942291972648130470131672646777893247136465647660953226964135442424859137018011489948059305166428875078391102731515221955761920114391712654713848966353318078547546368860390480763779966040766472751824576240711056360198146004375591386424183474688870164705580340014098720728393763686740563185052966414217116974011458527601730515382049822702063167480367538519746709544711631874531241648495926597914567432284375611346865478911349883020640292203597150563220861489739026732996572118712260230302301891369181668053959542127022620236929415559464388815435990888516782842229153089036358867127860597034099407557835819624452948242450836920420719325346324614983861025197301199728807480452372877361320341899683179459726166594823273352730351662160565318894025286756894605015515317855341640094806988032370350540705386779942523247150449116585820689113069424932758421604449884903625837072203746967085036234617475321721011139268706574952495581845654391032843681729166401280368402599251508768530299301043102458413488770509907106286724193090988140961819236318410250621778623795174550992953879049768070185036575032204706102549925696890344931914219357200334698904715706801155422340332278411402239087893862639851657827089029162612995737721422948138289802447505705304918408466394146154628391534549336935852816290006970075747805726836478713628242528436877408371452511641605223033162713538353553737944146786443979854605395434477810211064386027475196223330025946786578034307169855543806790293843154532531746138219425196978284141576915761732633904719000482361092218704116358840025130345970529217816061253789772583201549490380613907202905666631386668897620964809849547855554596105509845919687594453445487893218882405623413781467815032347530223933726683032010691322685729868251684154965224924456180755990041834468049971487878656142101826593560058387360718330708992561644267200368699569215072120839682528947279273662530978507124123426231364064594497835207645787806503549947919812777369625897618249667945713966298568815938250950036598894849857200802024072257882945234687346429072761654179472538353493984715608078979859340309220220682811114714308564215148234723658127494014545411662669985897480824937084647516012423011081663864373101192457060139378344211082911372701292717137561893868160441669079935330109506536195694435826525607220045784844929507824768354943537524908825380636939243867224763200365349455240793702367364258304344030270217312780642067080525223303224379781709331994636954399861110298606530305901772214294411853043855022860566189216689363045460763062630819565520880393595194807761890962853110740649751670216372905958074832395294413005058885415228579202783733344101317326224126135847019900767029966484093336971774205339027434414865918353099002024012233754617339750217137577322310694935414675366483102520698754353980711453769396555111653143017020869799260048761564235852743224309310176032767374142688323075070802483684059871046138674060410617921714965732134394475378339361352972210290830863342637475151310448053252704994593873961493870334658498038915625546643997840168051906651589274636204727781199831659281008882462281751340549036164317818287776101373017293553757543039730291896167741527304564169265749571450062909393424623995387759340307930517275072512806663487246429101442801515592423584217834597239206302455700089429829966669017393979928333343388390985916464964605903202223312447943322231743383996894503903335223715600349691350578183053070860575416409582113502381282864992798773762468762183528001913060343345245501804103066564366930688919349483535817718441064727455353411997742750975485102268214041459916897866464025764849260631927420113718981858327114237252193350111292899210393166959604416319558398296098830739012997621354803860918181934770252022613948182102284778903832464355084728587597204018206852780020573837968412229370244151582788314615692753420705535257209201110639881750215797972552884896854944951739591479451637710805614554633066337866054260168938850731611334718555327524491131322809347595983542183906993354887020498091995350408638758407023602312225969932625680518452202399382404514963171817901298781399146190415649020627473783729817036701521281725036507174599649012273477596291172572756384401855209255464823539030973333481331770273803426689417911407394486101426882412219922574578444461713567273290542325635096594742606966987702392686797968740499905036049410026240446549054472024236463167062013757307146929124911742696189865162333462616214667646064190719253966122209352776726355547145175513030007170495409906788566185445956142597595381436550850693185626722171965891555221398149737321386397258171633059571774731135483595436157359833951588502542529626889736722459805862040916667518033024570151307211744151729974202098655627929177380906584197507604291499692650176943910312608364993024306992769916058708980840865951698244417029865201095820022703784582545466906130182376997783542946939078541218597385265622345737615007933538586829083585431826662268620301536963326485643713364589211769568824534894269786270653569051775794123629999149644644556466285824908856824366738053562922598224337500064947477566685572448144703700026424016093304418812596008746671558735340346248484216261606423142640358211196419085170307352946569384463294968977767820658135162898226531891240033094448045819398161261972855260193077918016768471917729061189721685858774683152762394332897495647933884942772067618209605045581870897938519231846538674625161791404933834524436502723887472208956355996287445405745199254687746157508740723134154499467896253324810735268314110226182543824539142517676370075166378874264497875180491927464767829401544737251765142654157775827761797692669630441110389304105535481682833812409014676678066875270637910328149449260757539414051932667263675470817824955780460715353907313452192551576566350713554541666865973071878361975695164391522007820892591554990729757143097490211164345979807220900745929369888655496663452484815455807671065263267186946214151684726284987852179273607571489732983230561524001148648954966608417732640445361730894525916906868512649800646865780886046322471110179984220392959673790434985107439635274763914067378136052356494895229999445353198868877499393288016193599405687669032030532838346581502682389589550739498602842949514763141851813351738384598513419897789094492160234408181701821640409283887442294152264453069125705723513150399281976727862361394907881839693057248887316457336953032746322713611336319133903408685552798851960278148506086756073047778108794496964772303038927596187515426619922243582448693872233680663072372980203377002109590197069628131215233592182342302619762602223171051076212640216114104152492383081376958894248472493581223116085819101325810817436654769021118629692685009724014580226373727495565962094713996241222573067865933791961654436083247230681334434789992673319883676335744603658946624928925897131537050006326142851991419145908867410660593951591819915395626087403420285220316348609000512836894349557876894590747360179876849406111999477504677143589392603081147455155719647419560565282694760451646595047455680297168875122997086222106780313226066544862501796954296471928515241996480567418675310306772865827373972234971035850015548045880111578257745973152801330400146675570078193656263739229127266899073764575120752638747119970884321024991065873924224588157566238490725546388990891451869694765681211655104976573637274858852528008445158149366584462462460866524336169360338198942001939000707119199082210169247340266086877910469033005981713452054262345332441361689117273070395792155743027917671589847436717002125898173598496148248100114642633242057179247518531566114058649203302910589533207559235611951065570637508589255907176993606208520615357527519660507154260857246768416432734215796789022962848003360844219466531708710544208957298849781873396187814130587396594849845614645461729700282120610788953965230057347689459741308673027130483612891401106715633664702689238488105509043499637276924970198425695338882581419620579529116136876122538752175822295923262990515059479916603790912974116996712542915193189107557885137865529718220689931425315999065385294771180912306754571804634463027561289256989625062576991246351331267757248397424249381295176258606586788764274091801134734691025835526221417774580935268078283760205331756726675506601745828024490198067995125439614752080940155809055627875574709150569813513106815910053598822888211974207492674768703326112076046645958888321259635403162821853226697905322581651636996514980986879889286406865935810326119776154563403438594176922055877427178804650524421330565796339113988030053107860177992854700464289822078571682599292766121181154815918196503346490107343882601523571768642177517112760507666564975934308066590909053334533350601132731803121712738981852823155046361208410497015148376893657187911681767953243618919349128674550175881820906577542943286082164763421397813205192442095649959863819596979538509024310209616876081458173219751181054679835940466912205731698301370956519080386311714976165433977674003754385056453729057985619881996889036976550739418495924099494429898543289588327786658172796821483850573699931266379409933823318696721244156063826324056822234701623191284987823553244692469312153657522859398069832116046235788434812789637032065953072963459699064956376296750985763500487236123698625865598421490974670900010333541484685941125656033332176944138690585138256220023089437971273019390944018026013527047588563192589796542674477302307730512985590179202777965460427005775101079290443650834483554656794116574549543752127831816149401218475804259117307527904241578814299187830787251708200319118951196182131617932004631896386181853260911978588213833464745621760591376081907472934045104717757403458525426740675471683190216697793771716163929521837755612357870542199738156493353715757274126083017863121453122977503254073036938790954426938794642284544443339349684446745018560605860114733488733531450404585090424800468134556377588839656081448751992714265599585675795720795490858576284654619839900746572638727682784557706387137258422682112127707979676731433198121708956534258559276172719130373179981529764572452923679063205051426698993002830376388298528041839393027854021399401863884020751038007965955500057247992561297537559591271009251614569132061358125312313618961390829740084050883136942594436572842718961607773442387230147035739455306928006242524293804526602613713817877236053012876205847316535797896930621958236116819230339459493480885474658549072515979042971202718734540851644856524433289330243339138516070363290830992168275924399418814510992174386736190670453904402759038234222219203354074764926028717422456956376972892122456963267593540417600219687984228763021107335029553625729282036673331868995126333368122604507910092922490873850163782923727117728293693645764393373758812572836875932748171149483011020687994300649113804486059253680680023196772374852644925944361217815147044613705972916232639605319296295828192968933087338313212605603877653365688962856566680020972617306957131432302593520886467487500243880073099405387794402294236745645936863338997895610437172438176035185765724846771936813436917325604998244477632313675392303161068671404388080077272699915450909230834000571643552260351576041673387621294422373287223099294153526958391096064946315711445535319656453066786370803315667742358286656160549228627921590206893712162914826833509162054644657585450178539281845878689573538976625237154812808981040947095105068895857144020942862441728589985691964586752932449583909468376597492435285472855988018423944949517261504226581503669575484148840331309414976145167769405522713013557194412098376117663418339202124908059346720084117302018249429293502355943999445080106466258060166964143172244603558067942351250394971551947559687451858249599200274538026803314771256378605561659963676041261383502171983060309333866464414744810210665292060032606411753941402605047747269850796246031650439955748829996503796363628500359672506233197016183695793481150919188189569052312855895926902056597020075084827373474300875152687980446449545121454213870066106354216811342945364610962593042539363843716990777910641193999806888330464049673120678475182009431987553941944119744094810155255281341421658650684336983817086032867688782648685843756423290317706120149681323538596450811645906721352025349061115089469240274704607882895982721806343785474264091293022785816963730897172279367862168458915656943273062488787551037978940513309114320306867289397290305845106545119404778137394692052590767010011753714957565859499960465060026697158082917806203786007408402050753699281200548461506471905392514437670828792458076216387234774847125354237830111425920306971473275142280462724411335033256652207345237413112547978896290602285343115670392961320762578663906612989596988543181050389076010607053232600367183957031913322771067937434779078314724739147872567983653675488505239741672405750712344008543791338897738884803631586627331324221996966477491048056233478015257629325140307344325637301668300503258535586422710297107315859736036357161656356758054642080233137193915207798440514805009168336185628092299060001451129187394040682838805469201134164529423438353402611357672848253373081666315561164672459166123514616658138855965859050126555044596230444041205780515025179918841514908652153401971141333296459494926547368156647448149620496442902763363576593798116547617723166360424481046121116284507595432518418073393672632046082079053030922617786255710160881930215659343495294515574753496245764241131463723526889807235993672459030562176293124443733189706467306444503205927323795425066603301012630049363974585734415270803756475921767435738676035342610682620234038087745467229680959173099876879262866685654709591770254608120678424985042027725551134066282228780951744141552467604465759479823424712403032683864989433683770829583175057447846348721011276963272767193555496323393079369257595660058279181302785642560000949662418379433473180238092532203342646268507102594371948849396462794421025302542583505460337845987281841158487547021626095948722615021350665671471009854931290555335667912790097908057259514666824072888991426817197969902379721598823916184422103530984579929596114106511321646459656960820628426732888999800824746246817032976413153014004995424168282886446317809711869459794646349859024053896700210282957221196121054469577232100890596567777497690060121448882645658603636765072707142738136178052470713049645050677781387734105379269882109009674771669594823773504006634636462434500315764904711215150563916506238818469361000117989025151366206540660541478416651623945567119057933188596380432540271495318844616981028986327124604931631371278961214405525696671923114125467628418803625189413434911844957341318784585464862856246538857829668817766701514143757432370994697786544205111427286282449098417246409641285959178381854146901367898753898144002105522459593231526220264556540760464934562044533188481614455955232155070000375983943026295707606727093600974417089052548164911672907298325090197560331468979002913551224954525231122064936949332209774849888363847407011665802617358214909337440425987024804627066696725267123835776663170447951490024593855651601960659456072103701775626003975906207978361022615966861633551515714817597556251429592230538483211517792478281417153946289239949663394718950208689899819538674917684320465876679161771675274880498661871995806160438540066412158237731824129583483917358503025286008259130845407309854293773118939937307813571458024688195098675754964268955251593226728439346547598475155315583816988463967694690751139196968759066281168178190853001318892907066973798752564708719083795889102861666727241840538736944390287837266912543791607329357794637437699991547247182710850098686290361810554992346687326266838475807160799299210031933428344849905667702978939509303200687339891421106807184609383495591782904856831435401034374896657811904052918847239841803362228675977310449354981078949521236937285541629930880830732776093936199952422406206518655887382457810386324487929513707040160420357409584778966678604452308761039964973903419113049793647998732094070788203732389123309751809783314899294481756353596372809447776826405860784191289811417972506483749496645873076965845433959936994312133193159478723604003722472686836689228267654046148542995647958538615976123660784176023931168234803476958995247615213596479259844453930022576684413354486648930007384436494387455654151108016557946205571036388467727733764582769418290719138039951767298166371840112445481251403359418699994740562876790695130289105427309830711611686547632230336940429862923226059023160026936173552440226741818104480099670483377065264789208921742732344557771991727249000200380653770448864819123523693709112380454540571318782334444770817470699965211464675073831015157611135248133043923132505168461195389750215752307678738809615532959581559915337648647879433160867125311203265210802615555668120508276431769064744166321638490520314079828774157748409842713777296019782872185593336524213744078390992337384768371180097382818618997341089039116718110854353520971035223822240747322253983975278804447450628036169553027014201954100730318925464712426170482664535869441243843064325690221568692415875625419575943662207502451393897150932489055809652038115959592412425421342455597580517614002271995251040894377646963386818293190794871374002656005201434260034626720832711667077303620539722392677971095273563660529888049354938433808621059626690417438081234985702330556181730161603377080571146518881252016708207565115256932756167206608283943280320839137773529446976934345469334147701403598081807893386943473289749171830985152010084920387227738500357976379032800571162641009649447515103754115191427018993519806978022857519864536772646071294711109660533285912580975892505814055732228633285802467744565526692947154838701398025476262267226169864444895519567340989524373192009691267254846141086464561757006593190249786882799094605329262684427760520186336136477405607707159437892276385834373690088696798276951693615815545445785290020135466419802117377845286957118784771109012575847830393698235168594074042599698623697798715331238224027592586690420537116602561590440698072073147187998978544603013207881221952588635678005319312642204137670338947489478777337685434282655614513134473992587597825820477447864032267484488955158179846837067190971432072935853826574190783822860841340807884734765401123817565951676164065903148968741398893619650796976044071655196867609354079292837410841482335784897273318658351882229331056286876524279064791210971083683506352661890070312156836234560397179481658960794866276658806088208602800992962826402048299581039706721824854868721866051033727891915716380529709652057096642062763395892732994923941661391729618477494432959697022722638372028255772841645361811426436906900464331782459785228938808870137255668087225098852156870570254098064401358633450182575878324876130674363232340192990118651558407802138179395033763804350123869605070366744897033383124137368353454932002037382770912375784742519134880901003366374784572336162615781545447661276396413505780083071793656742484053591361409084074751401921226710210713620182010260497039232774599788479497161556594302665904224600030526587901125598065013189473826988853101291919942433847651922056329371345941675350776950026165812113264182563594682670714717887071730133272725950876475515913239329507599133291712207551935160807712495412493894403853849808003546869253025876522969599184531124159709110352228022289668219905267708380059171216850647180834386630801087675619345820056029630449634856488362957486285460475623475749987228093283669346647049192328630956298022211108502388973519083606731778431377107339976035632197038095593021356231684353568402217899183290224425559087468346758159628673923785929339691220682921724260264566209083017586533520266914780547572145426348145199956409345040383485057620451544479427771593114619282698255966702591304243858929394368025495669693136612635136328686926881260434573911898403690527177040992899342914126977313152036555238116961460446583111850686692856848411996204857303722741247061036279026010272280082020373676311814538258086552681379607352968734049671244936519213716263143910481037846021021642272838106545509871008787035772840316154385056892661337346158202361303229519486917208555992849331623369161181592974397958279094225004010735591998042790314832644427657465134982929871812157245064051612246027817833876343574458464463302636532163599931972566328629467474500669146633702686838816687514142276461916074931745907870305283821826370579174823759379706918380807404194521674259411154794311403072979780197288081833630921381877023037162824505419778304396790264219568848905398971864180223666342681452496511292547715527750803271881450562431937817105587002930967113311999401193879748316427843632191096594701125904563794260554758483131376034812846484582178069114775150646107957552114468209934774037333370853708354759722751130359409780259879216216278326780071771663210017885259137669411274677718895809397855701405756490038397394403619585336875944396119162723792454499419706309986424709214149690852174826232232458031867475904561820136118200989830464382474039782993481316831088116687365083425206354133872338219330507243615588396826531858304954067222562617104102783654045630662952497233103899309760142578447029612016702025120513667955216315989630364368922364791605743481410854114436430266264657504980053825259394656224946722046544938289619004794187448209258648565347769741246399432546408096708520323286592794514808190450596474432435040598587659893303745425530062346069655890879897593669851194885623786962693860706703508706325375836736513562522835175882544164465363257348429946068754566696071981949199766392553703589310972812763482338563528452337422829731046008765119058169795965623923490061637451099274480220009052335080866185721739838462353062298303631052055221212820982098583820348218479507221036243309327471431351013475375685722289847628329044460629488659321532837318669692279616872539309522538426310527758931684564417652800348005606428139467953847324246664150019146968459481126440307892614980175168428118153832984055960563459220811944856457773861120119767450213973535318579996526243358653341116375819409264460116861417866336212506634281476156100815490895894098861189830017660052329652130157592746869457337652957465728225602623454802311272632575082080792545932550839891825227429435727562912672499913805484567633845049338110575611461196295036375509945550135751477654609698234336525281990290526271873857799725653105008617681049603324602916363694097637221858605897775662562777087420339561352654920667509838491431475556367041805888923046174980522704959716983788022289444633438192153778746912096241931245596815197820115087983914329453725456999676568912601519280738228324719071283393502190699591617801371934730712119429011254648886823917002996291758229673074463712147227687695095563092479000222765449401436121724469735479985768217477673904188533311561380775643066904907524405934350598460974986719155083542291273095793370685683439600118085787521455601181464500632731582515664716634319280475660484643406082280209482220130678440976052274276532018046546229852652299844226742826126116231973840527235460219877739227530265720510452326235177380467699252380785447795564744287280850242944954263934341819601748050849767292287009265909357384987830336365020342279443851919039125323690059247229724552326585094622017247602553324299653008200120696908354397530967758132875947065202469253983058156009042781237208340925029099438206440341044861372515980906222771079795973785855797908938025574518980097319754860514743201497978825447121915054187776458419658740638553121776116659950968189234425746626557940905230071412485909170583751717811767952357306888830605333659106345128676280649524488693475127989423348607937879103188436270780710457100969043885565425663102875007289003093727484612469543899983656885389494288504742823389185568190799232311639617303392964273554512162386008967742987922265944350621523987134406521680354126430858591327963465084542758426986786947307453409062279510262571855242939502652897902355253818458258781945939624727959193142463564142621008981113687172337080835541839291067488007118490287806436247473373163312615338583931974087156561783707788307528338515452949056929962416108435823773074470682819712117722886890758596231536961397917787490361677399183349341130677684756404886771910738331429840292399246464168265181863534080112056741661237729252086801804774914573631776671110335258593059800292290640138496002905954712701312147723130044153675870707561697701236803156840648332285028294475407877100605532894597155681156650876348186243797030343146954639362283820684272635609474390692449627202448392012498089063867715507054625797874933318544737886710995736741894892774705367186414586695846601786119193399869055432707779359596577162393579400162748203745415497041347842591005199434284189852803688778005583741490106767224397006603632896188164320740369365700391803569496739662286628909148763261499415143190433018938878522469206094129975525000350314608097634895629377321592718234216711876648610542882921536516093543899188112509659444327346879600298902852390303648634856575237443992272291108020603634375815865541406053163324197583260318912890970984720137662802672682837489449162449724603293954742781106536607141908295531671172680915954165184420994182391725574366016738857133833152661700810469214552647436648289988340641620357486546035328826450159349955044383948133094213034395275058435623842338853680978006853350721900830033231653870882111572861221852306897962395166713899061560775258846810793542437914293918354466068716306592111989951294109091938241117157946662775089823212184762823153083780040062706195547264284424707725918699921746274493090961855172963437466403851867033049448190632441210056843572658395198115932386385653429618081950944866769079245437842478931763997923199108533322985121999829757904198608323911694396122019208690638261199568325509343815000020806560795960906991277140201740560649973814013990707647171269540448481498598849584396596480092547479776672473288716158064038100155299091542790069002294138780217759637852610259657421397223425783920999975465720476894765067209119382611666803064535229388185923207195704406151603999707024475120156488654788714400116988940862890768579257847091093272915375597614842191808158742266502603689600251607445196427612330784836942631057121224355212873581754713573971136115695983703382404959465262037337214153484698859184035217805598762508235539732282025690481975283739758521878573124682879142496061006030413549646139519485830791979789382718763635409563181822109466934210241376711488454094091903766003724584164348229242728008306106295932064564893059962540213468301021571491231644423311745058870430294257038969698985652968893530191851067292813532101758546824497484790134988894082503055917413768191986741996421796188164756652086658523442318626454178842710834262181830392867026717630612349145811347410377766849776473000947420358009380044286872057004079533603536874103514315856381101193115151821065338781100489584773495520567194601601172459166325031620319393508202023473095592479511929501436124401587326286880815160523813665610560720034947476257711228248235537166309918105165228132236105998169641767530047173474739886305129203814053261531960140294165104507001449839410319007639379767833792623328649855052315964710363771800499306632154533011942162346571540375933291307293391341099312276541403619464631711385696673865541404121454413569970222113254817581444205357804062527826935139558328738212867946761202222817353739117711826465944870970039004850075302872463518845127908750572139231373707647141738117752104608079678623380829672205718439891991765512659667455477670186264978594114208812985536600342050881302395530970027078211923595016317383257503691701291205442397412823238244190350064727032913358245419148290883826633024558692028634884112485620709868981114519098454757089794574432186343927559894559998078975959273821723857590030489598537257075586052005476914549591977607938595690274699370110501590705681372796509959548927379851709451266731967179087156146406888591287392420208768546577402710523909432604979904262915258343731770517964963225298755860406417028182547263021641880738566055180826456134544581132673296421454743370115120154190542141030474512939868058236074030385423199318652823606416340704827064639565864296123251393905599313170498340055516173045739472081998683971253839743438288647441914472047385305126806425393964379860541044293615052202591582737132017902753397892930673384829261585887964569120499854962220714422725389094298808071000771074199283699433674235878917204178305344927955727257963727268360355842694445469028911105075564972670775652420686219325960300703850028624411589881979005866183871260638548277546383478492364456576589271391403561757923988545359049676059446250352935343010384954183495803054783314644323120800628554032267730155813406220600950798895126909902902293688221271991545876480632680262850020274087702396560980486759680469745018103578691863245067661513394765921934902298875518413513744823486035810449909876632243884244748961480100045378561082036189725591596486952422732930052130632260740865439682368292652523545972194456561252328343106841948040016545319989841981440863045105648836415733428361510060221631199031177816517007859425248062894135484152822069876133489976372068440529943317500025775960844723708842045649550886585080919107249319670012667022860763102980747015683626951736871690715434336947067603905375748379272410523945750219853141970085966072184495019392545545146226067496918213947640599590158479997675479867838897912033363049001254791794703891780692610495552603421910036268579202777796279164359584081813069684719570280420587893480074235991475261307633179461010661219625920115616478745710822825939852343296925814946418284497553871970174865767046908313435573996506498930887055579704367466313031228755657999258679650127977432998532809184972401675769568524235873875809189858855059836642415276714811130280356020510643967268685417491514794930185506936633958733031151863950298963828483839347111764063934784357496837496569416794632315656995639426238564012552127703204922239061265508746895452113630583085236343596760454595437351932153901333741333463773216620499583879630178745203437772942377221082416509178912428623250669843233088420159724853151237808497095859508418168051012176071041022867675690662597711036263098951909538941402636699886862796303770687841199377464470067808063170285078130009452981089514677173826246539776718025201422568218731667485079662803513327116686355347008752330518637314890627841633336279421645036827654126268844022539997676409443241722078707257697950418169365822480260566916348089697864788571643131855046473416644079895874346463316610170177336532979836953521076389927850359297616769338349879571145185075268564207624651703549714796528859546673773030695555618464344993628085059687146673818975613048949534778366371393365578540622509874388642646750571596605352446609951467151860517006332964825972466566594960272058960124350169730521822220550009205564416180818699283988424263211551423838415385275791539047631452371141039035971683596646531971450332923970449704897714459280148733888003439577136389290577734997901311859279579845245174843170577908003889579914165979636534876651679093232293683368019434937186523621533382705835257375284202169726416839384836816917532629027191881462973606865713444246265100586725195808581768209748074984770199955776549047140802468720824163484708003256779181614672458710541825652047448434324586442149158584530622947827479710353800849755384520485083383973520545014573380322050704335579885733367432180288706932708090654648430548042671198395878525259857031284918593477988950988100453322170263932664246905707848978551945463321522317308823912361629705935695208262050215213152285774080259688306945405205667677411305046756144660770121379010064314999072708951729122395923208028147321556600199734118012840460956946651358055258451160712896199668201354478652686339182238854722007476939657183921929512746748780355049395530660031064818186307545666572823457379572732076602541676107521738571758579909714948943160245749028887717052981635031847710295746237079096088425369240569585690457124845375643279186666204356176800884305293996899445725471426742967791711060952483273717712782854607812442896811232420558181737078296175376049879509398130783195069044381882191627053214470108352203398129276902846285375431048178799575614815677581392547382063213150407053899872003500446195332184244062650853200911027608416400355922599945826103030272567578829950047259523794099366681599173157032493580321232479961092543735415718333866611272639422411235122133774689402582829237569233179594135006190697832649160221032208351457892024371155324119923003454875570545424865825906019458639250892191949076769527780783353962865986134720948305430327668372838377389757231701662101697758379372058277386940350495367095490633162711144674965185373004217684842636154673502916280860937533771779947641314522176712196369252111534111636938695324012073228516427572219019745246419790569493714400963369180588416511794064024002822259449317471504248291007463053996204410511865242141655260992038596253288943059053037507667469411681205272944920496028360846706923070377196946697555230593571440257837720914192360278589120174649657432189737423047972917798437966393769633756480235911579073579177733040634096601517498066696444894019349712271107322771035135380983884982620844688752988891336644229319812921091323815349473507932247023732711518150705213899372689988211314913188863793500246867370153566578739654871610907340943673718526357043248873805246096262093882530918317363866019846093912067427892437790832540407429363376869797440079743109001673091412062897251854302101216948985172288669837736583382962598784944609383237893610278818789015547540486265536168705941072337987570731354005570491857648237228210364860515503701091012040513680160634820832799164994868436205839796988126860856064380172156225460221697941646564820843635053689155169848748098836644008487143237746073402537345287115487819517848605898990331126540327578180854657221688124015480358112045319720005569426539784891159070816101385683668649251144536847313721104286599090211837887995752660518271904955646453689923951710564239506253659290870912888185199937454228084629637692023557171217546388764479738638382682881878791954490100095584819587579122860090826335031381048086099737485969579393348232631606507490264041221102749150799143289787307753944078823444357492001668018767756069922859557633765664060939898378807642356249198915997275639627887447106661003204526621372782619437833831464931757600371859649791075860237885635883210164984755152418201034874721216958236412879200077593430629130634168668574415434065996694767908489716697043808208007090130221854788154199084680770063379248669597075512086067185661933707258613667837453996563278392319685668946648524715281038914047905903246520460814942791543102203086276429647041785897377275645453080338771642204619065628598896150047663802448656237883213282406234546970629371188088952046371690210786705525261484507371990216298186212515484358219674140620795212473360797020166296838356738684052394816888057482374477272704799380268557031952069283443564453448186955629730431466434548632504808044259211324031387572825568710372346017187732396432912930791023568360966912966433747942200375097858772632709434853195893834361636694354211558791336010362302197181282253029179293366389670745514616096436103727625857138016044256750645631536376239269966007438958328785512028729795217439653655026256622380198546370304688596281393996436969931734143737860033457756119033566613814404734658659175511943255576618907635106366778704447562177004746016098978612365703475485572654049701379924857976570310316943464477414576083040217027116169816642785089184304169780685942458907682085178112595487923080074599993504581313248543376919371244067737395669699744522901790345145906893877325864214517111645708454691250127871002224744288754071200049238868630932898630251467225452550204428591163888104312502854589459993723675644967704464521837295338674676316410095977526759617128889703828032699753023923078834571643997058075627859565897945238552838733169251561571732488642963031755329677962851248176121491361698770395896366807422544406340111329882055382314447844820820182135736753799070782328826176107074776423892116001072901617103325055155117307207970396982451425295128786239464545901644054921499564558454773660386584528192643967055860036459708792952028399383637528990418390395399175167108330481502559895635016552023540047365497337262109448614185934638809340518737954539382527490293223158617611613411144437062762340873415248911023203695759584410148887522108428092668076932011686105920889198763589723801718167865100762077201033424727198133182547910322687934953463592835507997460709703186861003821327756328728911641921060611873423461306120391383671176490644752483914520152245843519227401915660461316112892202867820603490425658401001814110987734421169765766136678512038049321183972480210212779961226148790774028993920059625250084551564912204916469643682648185388089308746519009591777601690255079444785949353746966026789636158187468877952973462534130951127741584456400016307486511057790257374807061546509147560102800649220488986832534832309002275660188768275812710874530546969727135739362794986910304032720067839090471650796840341826068864644167600782104080074971519991313183549167987447462853982633840229266837090066418147003471606233948658399580015858855650832766170866644026102358230427626954864162790467010339545200314200370449617516864598542821428484392058887437696823735800960433459241198025627552586842464726009082450247838549331384154492751532605959977278930118332045330653530077509346734081839235891689065401854886212210830584047792111779065286314271666536621058310764052448843127600626598458108629111855035889006135797827159023685797750652100557586965058078486376036577193848864993795907594360317398875930499495480191015443268043434056008243671053265862517192360004761603309046632791516823444646905584922836843271534490172056464155617051923903364276230927559120213814182660494524620589532213648395610816563538833034457555004939600409128083879342771275297517885799433936546279073754808729308075455412317789519756097700313772270331642816102924046133772172721370206663033637770498655750769199563794093633986408934972933838066485539586162308918994424969445150318611889065720735724696987242093840533025360472324018614216262898506988638066802378373233672416813453503181772692522819365580933262425982683627112227918046455622373362788029006515769471198225607374436459264517412865161717934091669211989606015668278803486284227273609309696729766135293447037670026873511467613011325173453362110589812709015147309225403500995479577881159803966803186824244854898748441432781806638226719905052126581380458306252995533751798417506930213656558187932369495048298459772302947853352073545950748430037562889858159887482168620782456822060653042672384291167707620265417569906838126204114239673305444714021722067301414829371705717629316964028105151476972772132556653613958623590696817094522562642455832060275106370994143081983059835821924881391505514084866126148119569243121621954906650111064011927236295981582225667118585156824107390124730848062288147946847101303499053384013200877081816417503752697676661911213790657584108078978401749475411652319283601000129688882024467840995887570280292114295570691994924353945701578948637511829354914892910131119090545631750195014525910986466302285587979479391963160901220991106824566678955065980144278086719365912280981274450494265343855935119809683153019883911651664368629845098322363984129165040174493738445206647670351383961602608975619268926316168493682763139308925053917346412247658738051730468094671797365607739383733381170768338734483567780592879152941014799059204508457710073943763312997543325173716876198115845621798010667900944099829604462127872715062491238770499383017543334539481909096715461714735465281359608655743337925524630555117977267887641887242278721112924031581225628217734948535711157545068322950828715414904802028571247997387344814937277404207334799485575334457785957536456414047245151241499657474635172129210597443120842997742568755712101482029426740024476558458215573057118280593083498771852806746750351682317520777917852218197997680281736291746458883720913063612589337607312193154604849402323341753842142088776683941893105195076981006971886144321906674818243641812138829271638332436106533315509199946048285857425783797419838490092495000521438591360420028650805842836269220191800777316393974468872186097662354441347828310945039293598384825802041435558663696510098419861582616023482369744711441803424391043656491292960979056478107655205742575822846103038528245422135100879213923311068835699554776972010435931294012276097761355449258177786496778208144061942846137262525172464651768739709470988064713330430277668056026461315987736790177299753531915415941116640174965585741791175544915287391943540357263822515377752154130694526373969073431134905990279582983722529071220956728135793294154955065106789205218063621799622102557336112294182249034677739529948987113676359634600299083404121645804618679033461259481051246980061028250258489922584854137711428297451853643745845808692411631238902409161176730750169051494702452378691750355390570762213669714021630330102277170221641271829145133725637467220871825119074029306299640742297855551967519344263398881134431718997183927985798754033453998965366922096999270195499468306677327904279269382020132909549905042278445041446574651343350948719802553164030119916164645817295141555550907994279130218966936498521673013674198767677706728500774040416262722521386285618736406484295306417366843878519337497909106429318147955742806529264176658885706373374985003052445546074625805045911400173588123487008605064078981258966007913397763467706596739916519795787194341322220684884621844803343438816251567175402401537528096731185057734646000875525697388549242451115779376322252444911245839589606729003377866521629322343850422272671124812583331775616764134034149956838853413986546191182125468330324345970177086880835692983479343740086673753771106944097179080876439170954217139843291911924472311925741044766799530110134573936096459550693978208979165665530695496544072432246778258945462419981092821829251052961215606676634966045842525617167436140904059083621395500805353999332821050707338985889983173436931543358862223587456324590817267030031450842782188415040976122581362700506949935121620083361768710462440838546251297643023885906082829915618923739178369250441585097684855196134075006987120547805715973378697214294357503430256372322946139212461192562914535335453748885798798018216352731384702108591648988687660793178926658649730620903966678045046777778934186304558241739601323293411644360940925244384796055982133743076504098276425893324448608240600529354585897464127662653424723442653241323004809772907093488902988616249914266187566815419677028530147114186792644964187791038828327246388825253284963639487591050732926338047153797392577530173126241344413057456255080311409303985881684738307789552920018659210528099838072470237969359197639516594636555420495731283077668617608637975165721472062818548374571018408517577825009143495831909852787969987972947169671011274524453101538071255530820819882774253431325123941135658059545526623048039916782668064704930159910289555570787127728199287020819961164845867918313900905623012596664038571073279575546649147273378919770162366168466008413033279896380463822028926910465590422182962956346016158178098081881915100642563885868262191028951962772519685912168495022904895524223374107170985791288908039258426782959111863504550399430922722410303413988110399161223382423823240861313853837444010438437883476381524809816687750862065761733519413100512814781937261937203454956814352950691421342963450206302217459623123797378161087435074403829098314473870465120840716642681522173025814050457051307909439626161267410347111361590658761574400044627586096945889831052220071273429676824824170620639910878495497571991848040472055965132496110783763697172742709037555382616501736052520108015377366114770953124718273677956977963574136146976275233026099542550708824595629043826655493513264861723422643626575938609739795037899682468632710611749118055433829981952757507617900884656830154107567344815380299470834565789248894917315583684434613253823676956543381524416891835610529380325404873307465533850471425145857062513154834251404711484841529309364890486388450856808105051858314705569078722483250456303912616211548315188608618554492664487007694385178911546618583887819569358163172412746575597342133626912415230192614500025244153317818130579650721177135516435577910242361375017634731328846933636289149267999109741203670067581716682435493905386792954878155654516086640259963362952862720488999052524757540632053315488745598511575467964714660261653951544852778467391592670187242719682494058013189374243747763681392546694063395042002901238611547086820386317289003151119906501049414412919470068468978377116657856089256864795894389235529455290994996098511248418449750621118333937877292751645590471547622567019258806751516627160198140928814027320814939136988879947270565860372082792744986421295077826313034515631247055299566601453219807695629397620495387342671386061967305459514167623422241604570086328618742475146833181702287447081629049788989980531572544189948952632875948767417416373919045823299235185751903150529221614437785513983123425113322046293570548090351092919912908325623808925981835220143670824873947049660030990717471585887225715550960088116563424865151129981025243012003424105854016401817222378784621816432418055686702092973721230281565174974090178438382225719207912300366427838357793062398175173920833869146906010682345495146883833696515886613574413384678855472102561247354042244182634817714487876918160348620348989206243232542210575015493811160589412970796760051338429653009652683767584387066976933598436307801755870365064326810297884455203454194643653641998001132817382336298256554894711537228338335819224402142079536454782429334487888711022868254298013582447843671568215710548980844029918070635493984681847968682129324898359528915123053583297742920196793250145378789210049722515515220643151782612360053795768071596160966404392776948385777575646981130477969743487490435570634304060533229786862196414189763800248047358341901439408425111738547400232468976307630419546620394654471512174472650087340023947463087320865219842849488338586000239382083598657555590010710802050946295936205666518319383713385919767597761856412695167912693492186977978802705159163894686680472300285715538653667388373804297843376301909522394636958152674084396230780709681652799024426056891350970892800414855327842075547115607759206274669803468655672613147299269654264847906491685782011270366228187880346258098432355923690680614815686084406836238894748358950148663731009755455671759117878660642607656848631359490014519205340179691924553237873751519940161508307364515674858233442735197125175891741730441334721646316696052228912834840382335963125409084411926819269540014746627720783385024860227837225227141965099211423783526863429862177035947124709582866928139470462778886391765777394297676718808802489567550870451958391319080315511127613535227325708039722045774856935051603347077859326792466466071077014693782022195981212723939280160397246094504380097448114378237862304019396338560621107099117701122828968908193980637888279410163768272743941999361195947354595340244099028075772278717108881685776413195894605076582402796862707940794911818275988187157973573324751408330034104169207032192347884511704889988951336958511914585447936283537737613960555251136673263482378975572534709864924008878721241026520330560744426684599529115077158642916260921739950899415084321044827693679026320760503443270524591096251105157482182751767421902299925839213972176467770759715117938900320697671197220625611098861853378823821706161479430922572919999548846855968884685906766118398839506985354457950504451333053774136204589178138428188544033249507795526362760190559556651451476401333151798508745330512519122644135920625721189458859269808335706850358531919316381264042758578692244755941511004737145168514087390059605542678706498738274863979196631498848111317610184235218226114773595389670055679798468059313739296354526717356415351733344828663443927083041512408265246717662090557612346459184335784202672479731246401158732653789905433058912747808793657661561058391101123689443565615877443939124556100858207598024207213027766204921995870977810240202262769846447558241573592532477922692268526217125615260350974546925927901856937991301686350721943864800389874705451629798813831051340899903787892445115031953529415354929106816261064945722941289344023064465284727615640982708039697942526753649625925054365321766416468269653443573849656261708233307893480791930247743591897600588540946959810368648438237162915316757028615956972562389595269819542584453404074865188216042884218688537484052639531885025410553304341648922669251058172476258654608900897041343756523306139906648343913809357848904001873492519455470712033343076218345733685945989158278200769977786958810013788142186100906023564288317254392752299784422638847500382326440028831887267790937533494574536685920648029531524834731822257527532339760281868627432717644456222302625236170952693200381386649169610424637751617606831266178939013232704337427732682615694961779521922875034173192501863216537480051608749580062159597657438006389746710344279071060379769471567406002068211784291811625071508600827360969210061346535894499974998820811907125478655920607577688091969149419570515175953472173412217433333944949871964302924449661739706913068279394891988420333034560325822379955900651570936377428222746018457840293084173601661668698357599509704630436670117790773631665248272275433092958438764456312608087067189405271836534026285652664448160751185331637333435079156607859302464595973512797626366670679706755388300008485254975617334575808667427306090544373965731040692107275220934075893673326874605284960408171807430147861033691029929524029890444975912571949206041709526076463468170904349963818528906751408625148385955755239383624922346927184052618868168570775337002228558975505256214540400526940583446190083608342972047150019597931876128002045764142806420351534406421718988347217830527998904525299133159830803829939184486624008756405165766121133782202630720059986184758355911055637880002621341871854026896744195654568916676841088194887158829435264984066106604624874777442590617875766352286987079020758699429928532843203926203363539218869483446723259642673907310051810351009795644433396032737142112736731070660270941414523535631928403109674205864837813542260692303957769959599101671161469956315022365244728780418498053305577623245481097482532590926961067864867815307634081827618032107000181089418869215030927313815004220196282575200761342988751177412068150731868083339638285046206262644663653460346701226917539294525991112640276883612872357222407697840937772953307699907857762483796866232930464944010760315399808861150051332864850850324204286674470695752310817962366363857674902031672050370110908985266059370408028433339943225056488643558884265105163910140532500099574186001700808493733481070681387325025298344537046593757060542043986532215130616269723634288386173268772932701349633119688953822264217181048699922684777259931925442941837587286734572841937998985789349241097193342590616690088285180649928408055408757121375176620790585977011305064576143581830346705526273562145544319620784797543329001495620115377385487123641878563694442794022806511396620071396572424684058440186224533435663273191177238710844217423689807038238265726216209537971427576424621519593828331504471316421592987339119606690084929008813101810447526897062587755436663956572490323449726722678312220390424847182030264121238315636535234228160156099188005295563109844728499890283186491475933630677477806660595231616419480093586105653789530278900143000155856448905927022959428184747402990926810412815276277917436315625418125200021462133901681074539073157217911059868168190394425271416747607432260922324127241591428960008936906727873000485017963163846311871342355751599052918969475354126597547804161116685073302018847369708757110626520125238066103422772738293008680684813952162357876253261356475728378121806179579160452463957384698912944305563876058232155579434169413342016165221202554798209646162987322686148957814016201701251733836552745822067944864009657136946624858879393938158339353086661879553514654786478910751609847644511724935000436740257530211201918438372559678357570040667455980095954888871439723324292682964731502061439129063494738111698070402194647916097592532638597652452765461477518068002599012345225978389144467776950083823584881347311427597031257881270380990144199980954241422075704556775995234923037976452493117926108374312541282352314907548046017635175363389495297678875242710937562849755935252088043014988204191648994233947047324261702245058091597741408847716496732531236676073618676263046288257133387209138161260136202104106684926524480434059009818787677571034531008852319119574087395374994648367093570862753657574905523338783677675700019563176691654168896376234758079926445761489009291712571687096091208904480444443249578894197225765620492964332406087577315237337563021966410394638487973185075153667730846469419171791210941273458747622859762350115497533087588872166045097229429453083804252358423485433432939522587997010922937392875189737371453959301038585413673791111928996201309489089361906586124345475923908807098449462741293895937812494211563919036026701087340988214703281457768144860863767106107150433952371719438879283227741399372100291403297825819451787216782016608902333404943347457258148411425960672856553701255002497552575997817906389833367643127487885751267246281428903603533256580925350310227163519941594143464780928053103519832153876046504346950879686222569165866426327191432399507300134918296507025682165213414208018402385564206068406832965272726595824874671070674564598025847303849417807995921026531943914949092093939561903815310984114833994501530015030600986856071549103338599868186151471674199300214264867584636956721055702673958296534077092306828744522922412864178989667321492853484988472613850181550540529126972285057107617100807964567588454590901663190774581872687350203223506703522883974178743907611330011779270289726449111594005038090504394561951820694828765843683358716842556453344091245062453693741513950757833775782561662607525494603981661430032906702485306847392586860966587449158580275841573054509967096917907099075754752550170893808313078318778350086938802941128674087967648610375565949241654886305858934370156360287805489855135029702843832272627357893250561001891041932528434366361007521800680171477847753411208758880484285126417770268135075778924244450350792558247855918401765825408294812936288615786950084163942677130744853783746209170812427338937712231546486110674012033420798290338431282194175418330861050076414492889767898164145807514910550591325344331258126482157736906054702262268055908805278734503019691498907786532615978390213515028279515679313635708168264353383359966554939511497793601814803751184824522991300314358016180740365060508216890784230348177071715231394183604652449294102339361589620201786315904459002238260257885211758557891751574815013884054769444046067335016074136932934678335142274692694389888144396534463443647445097771082798864609033712674554759821363495996372557134822494729828933884652585332542379487490362621603545498475600516940671335550691284261701718448063000934579876702032722958547402347567869232568415794766436178726139551234930096791899859660381929734839225259141846674121803577255298600520099894703206856949772917036962037862196184296830240597304740947063248043126374985690034126178844073047818593308769358250157566969021964324967390247140814506960195340557234720551231890247311259443628585867078689024443599193164566535667771150348504869355030748318934530846402595599768649878034098062247944502663840509478629660622359016892644951911842888312741094167529761855273704963488126079359084625603408663302793627700563873263592141056827215651265274367841776237594303060769400301807590183979676852708915596156867614074915559602786404008082845061175758584766896806818845793528645643311546350673530993564032722367440500646050289118337314517548236294307275238240886174861695456808905102261922587203751690509013431203711667745708908248953042539182394647827521562664418065158699280587810259410769618604581027377311365128315277651279501735166190138657883823443747561649192133663532010241716649880169381553525649491638615391061625126613690795573043996615004893618292858349765349747292641614616493903359796930629988496661595573439507349263740078566966627664893753981675307390182370654735079945782984260447034783719893123439919870872066581315186134549427392772635517617393735336144557253323704942700365638424794059825090871727740258517894920973504390069422562354454809260512242880835604508588752531622541166361888080441169323929893658664625377355922593383678587197085783821238169592004618465488923571107485830692997585808797683555440954061355770241355506290026339413130796132955930158158399130790551476886087167692336037426795842240315253565839460721978013869147495896643625681041702806089345319461873160555606639791344443955651009764534852802800240244360920796911585807835129076327191834639007365458315484489430670213842623381546170071002546035674005895463198500874011145925687552279317594209566864872541812901158307302207542457983583996732616836629330435815447928544860055577105891304599559649758313567786085602522344152080667119266901183037197557133464079220213568168626577517859472531659338701891915712084210205344099184232891090871925373817016307439041622679008943369178433492880178090460406176132419855908930738303602824354056371247641079379279899852545975750220161845100813829722908469373175383334753607033308466108211260739022532373251979137284929389550131916091571770916615032502882179389042962789447880395837733879539677516666630477328131245996539594396712149534442730653651436077619312083832480911038385612966529103756329068417567555359118297299840299774253562361818083844878149611335538995998604403097686756052474104984749131462937454146349473985646100896935978498430121271812200225591427930798902667009864547442611168611784046693678023998509502465962258924739664168958363306241370788596478831207874059047466645355147667478916987746828835342148125142604085789353224734080756682681172442632488459587376149298175112272216244331072799875226140274801059635737405366369477025950707678112840481964518983599903819646171722057039575175570751047544588558726924056876786791037323858106059372454811074653625376618500663647776590734366596029482878229674349150651634272180436751959648332959658026865756502358144654938711188135001818829649371912513463836717959076070174091138785734714593244571836257145891670634758030496099476917967717380419462336548121538568876520959365857032042101505491910010601051889206109600597960745477158186275005156437978879381935625988448794149611294931097616222929341722287317720900179911605805994679515514450678969733937856916639276633394279309204900267555423801834816804467735423177854401351780291913190056269450171423293413780146381132273225168462603509497191750139189210169092940659052875256212146145583877402474558330377291422384615869089970124574363224059124605422269899540757525367770763902636829944124957638737382633797707012572010546244014278602492301517914756070664122638864232640246980088197862234958483475010135858424638031773968226574812009507184308467074824048049297051276639653112719948005678902470583058009271064305752178925162331876803916146903865410238959704943063171466659475297478008204659667955471662406194265044664897121551926965909670615079470290493882672890880931102203674864409965772795157740408510159578691961431869858214865787097273556165142549730225472342854814954080344244499193494781117755062944250014519403014471823994410392564972497374674964108468953290887427125039758258539442911298179420725202005490900138142003817605016572481318765050265892874489524545390028549909687172736801747942947296550565159278289886640862700142854250109746005875226227049690013692783280405715906923301072784946240326082250324210980688520374186536703102893759801084331659254947637374475356881875739773640585312731749552761306017525997270266416112450561525994770014648755304623095252551703008804911771621946352330282047249751630595222208835105448175668360067667923411181355513890487451910799578678207219841374491123087607669823108018920309517918920596421190861129969269930479616075299996559517638134426631030809413505715635721958588450840960746652943174980581688774796403759715372333307496013740654773817892822251924066526254645708387117353962206778827461950501837097522073761666130088032242081843236300709821445403856783830691248524883837920228943630981992915312638547294468796219145537202535643545383816310504746616300978085179708506884450695791946048547911812475545444222965389087480577337408103326994804856023725977286583609723929137798426142152947597709130635318731439512044442820418546707855069606951919014991300813990657481374135523226232639758247793669746885265878559074035128666067043497120963644291810396035275211067480102769032168400471711956750044045544918186548648019642860000625779591488853924744181258007975293588229376048200861122574411278142932543131237069036696027255230814618749847237967518607393217625246969028482765555958158107065859398735761978018392233683601358684519519165518232734382378321315684482552044637355930692816026824069251534792894811818594458600852595152448813426844171188552956838322888602233626690858996544219384165421027206698219679882364174848136297832566203801999544651493234973805623878325127739723158494724841432709242723644041830741575522574983380010733596351098672682305779102052930502971228416228633214104681157864723905124048812875490093996185953682816270764861622966267148782271442268965546489895502962848899163773649173240056484645151586099582083805981724861029099644061587958813858002551173670420431213384639010493615495948014085431800429833250358091211958313447723871705506583289295166271463599401442297406876959543872201651947979706157688362257270297525820144871915699517602633106738269505635404055916532109463107331131757710429044872429064233594155810913602275762078745612860046323171512527046998093274863481885096216977648774989072534014713703708451673151873870092663812868335699292000127183597478744480174527276024357971672303196334678674856701709714574366504424323009286756139454997085198472079504038027811647533424890947157507449843354696700606228572461475382348110487153311381869293533543527759132068279188258529153296365306732591735542465028254857161249426895468562966639573178981539470153137086364015436200201429014013235591614390468821066656209518927585701526621895821558427701741941362612126243901805130561736190774140721567045379669710492959933555178472145627940987937827931052626532732485510585102286899048763600081730359635698301852207616429052852985006684849854904878781003000967040951623531689554962683574184427157674867268044091171006364050617831288810150636201729296252602624689019586424146897578148818143423478131442665942824645981574869541032844456445999971449451765400307988563910643736083825224433341928177007806323809003126352917591928177747271837577695537189124683201279304342528654959024557232311656533246891244256810977033049583646993813357633665590588102120235373266041153106889273124287743227725365328803194101606748753723733646532526645889359392962765492909432112267562062748468849496973798687272366106156182412786231750698093000278722998584430751635204075899349003219393518423962435219358361767102678334862296798551466904585593520252180028396973816134110333450417047788945289406022366139577827775773857009479057954229783982843257119261061395701709279577223531858183211111903988757298256898994135024282456395131369924195781540061104344898657705963948014278665015000143071153087081074359184803081306109310902819535718364310370694065705443789093445848223260884082886411140418109585449515253970299874293378430467450173878703921656339341222648544718106673563981482766525092676110336535737133573272157236084433144478774305102434235161360318557834709895821355617738672173275571101517387474300265974643278491615387675720594989281056429863777770352850585188662110596267540824638496487069932026398902465869810210751783358010261727718822879812888111287220147766994396696444316068280166048760999140416749692476376045757004211689760774730393279491288522851089399348144219870372515071431802463940147836748092774801497261285067853308227257054956740715468189430024752425423491859157585674987829127564177449424048701590676736949777185251655220566504789813022277296722832572830711676891605931891634631113819658898837931801940599594806482541320059711265825301329095252811974554566389198382243743696033297941495871185507659101700488679409666609359743384168203545015285126143783188334814468683710316301854846457141872900530064311248843989934878468249697087905071711229783122827608738655651534118607800265045240102555834879402609082127017021903792975696621913006404706426548255740067687916225234533453736095264259162088610835191332595421205422189744587673498818946641840654734023411660582279383078274704709102208401140683943368082688989875298085012567522657320723060979976389228760195187885232674436654480530166512640696178423591946394182889519195198595492263838325855463360996130271856312490402568682973861323830794200861663310957387196270704075737533524771780045684431360372071745079727229178088537815600491086521310848347397760622957403231203657282511937843928640665478230776711928858427268661305731123250945333022465931441555002332729291115609272980672005838210588732051260252431066780458430659559810646254425147997032549202421398479452322699347901269719385194589016598790457127574263657056136169754138627570196654823032448329263021614102723111470176177610279098772594411440490275799190374605348777738225599365595388021574342904524012874264981700627743542271492569847965012380984138602888117978638843653581497850018732218836533401670516806281066685629001155338921452706924000769393534022447904952337059041845886079401707546363322886082901342213008618778610983331553321985405491444977099831614317356417712840565282921805579452051758459825700996841745971978555249814757050375712395553561232628600139453981052240269362381867576812429693032764649525500623402159939612313745168795473176746502428704345193302718610254746851124084696076134556047697735388645207381825141634673893384031673001864929472483767771823778920488547130301098413375244565128891242867979986464339880459280638555861899634540404369820374384455281235985145091019820725318672138142683253073349973477839996427877410480664894053877429898787902016139276186757722030425365072427865437633017451288599626301430154722078887686597812236362904532401873795379698617685375288882303000243423523003522436804439055910092424354722854543337418129440420268066020050979965563023837496699328931888023419386589581945255435269165747262482143568814776510425987928568348343891809856526918165806876598480557065340764683455172566188629315830879145225688408510490196297231388792336345057762212346487917814068420661779006093374220764763896826431090215158944817358527886394070015156145271969540486623266333170058458801558991182930197279855046725234206841047271590332579113286474002061486012778648068610516187599992642970435064346892156857592316050761918566492320405862772423946353044664714523022175163251258386383054673290009509781854668352426346642935525987251175858816341031619267361536967066529755839924229509704707486592437527251437629210346897593494487137834931557248033245824029874075073490115074044120155958142330614188416881986196028531911383947119521171796507053547990838303772372172840240891895017447814518777213300110379536874117220762718347343049609871777315855077571581171460393160069050191308637224184430814532002506994824935708516250439116495363404861102819254987307357632453737969545494511991017485907789549356160647624902761452795719831579984465563257373502945200398248770103227374777686323925353765927740510471655177897205268087676741197199862160654248496767758365092667689892246851857329038863824151992946341551821908761448637960488101486458155538305417321306694930453068695242633975416174894456056800325612907541802507751248009714128902479564387600876066619712936782426735643384302218541190173606819476759828739875711681657536927367893843301800630807881838504947972357689341237698008948305289092368785096937776460090341261378946223537631442182069564964110948830476811197692439895243901390111333275243024586803917572303488543825972050987791841494406922919459572419240480064801884316454271413259506847259684402724170963374722031220722333985149769890238638555720416307387352616525925383139690536502322339832257653959547075712324582915712313513585006155888583432009720326811611373607117650923480857730311349991063479118032779220056924150312510135714736356306611884869221367788343126808529782333860773424561896235078675640833671064014419656719193532642714625852022310746182494631008008843439630281255307065132708398439989385140398862171936420164877061210110521328721257763613160284228230775746604975346833017416118596566684888771739701783436764246114832041316361807147827988100589807485728663142916241290921461589946868228627221992915131507345613930218670195795823155686754102858184774610460404382788101395779859383257202581291531761138858872276041447566141115568717179336033877094003972805414758050582432322888825063068853145072323402540012092847024685766674441505312100350326352293366016696719487986297485308947168551445346182483100953442616704747278947153296009876258755121701570504355039816571908328681110495166846537551894046252683922492718893026221956947958216460503180971519262992679672364935369984320821369931402528777780250130183821846137891049062357940195366966161891155344550561751665172840123823622954575857919855573025326695752837517209641481788496461747013464621547606041965186932912176882710029165914800665975346562789038626289549647129129545500897832954557764981061567461661273791889888673157028502180982979055151892911326930626810774777035575320316253709084402797982435119821956615712234493794128839261455291110577817381578494295399426914364919833128347271290698011617620810829234296814957995307247969349913491976148065867616712718801689230917673475533255645909135740486812734834391346364624014374743033529708368536600703279065113700641175542004951894306823315039411037314335078736957545528561236681358004434481097786339180054147243263394257904619002353147803104515661114159650742925196480279076946314470972934731071759649458689992056030668335439362573408579663468511564875771026932880303218450219558316755588718469365952420521747735954895232457069940146441008533258853673586134430917352685512952659189709269812281591269805647440101098986954375695841029507949134166844737259731553904450147820057516479531962778829212288301117126628509642560566083878315675222861698837256308165546324436891348614461567549528405020876254968871138083249861497327802298858374896252130411595510489723564638998707446428718659182007709362612762568141429918830072221552575034946748359237723042068870691361604494188113054817617305615388626138942338954639341962316456237569509143960081353278999039056645609900463572079352716249046074173340223222783235170991098925815568347369842772281541454411485193174658078478081196219857263462089530641511066688929740176952824012661022060275657760662222982144793874147048455739009540373521807047103948039513632325703848591584755185239641002913043786930448402450792005814023635332163287323218599877762313909629874381594722834171890566311117554309222935035432502891452542231894051261130366628353894641554674387475118273721595174357791702434281785677790563370906067390217936759494602216229536040397584201622769313227786603257241210489118415621063564944230768884203309741033760145738707421883692415867489081391319113186942246687015921228142146966373979974288004793839507955161914904741759919620878381777040555392114880432598611418826068638916973475647389942179664726713098077673614681325842576460131452683752974993144002889802498318298616079761064914745754217954365662618196646652543743219262950511540110094599841613356490925842082278050266670463835847661004968550310646692126281302982383225786815611881852472683321395412715040749490931480086577744804719542211536650243663578157183181247689287556256638380713886121070347860613049324192033857705389688294099442020024167554433547680089905604741070926306059655352763652646725440414487733887297394542805505050553978296605044690828707015262122576763167928542937811830879794990991377496028629666421387046916586309429815597078861366872801523349204815842738409837236552224982793936937498965053234696691647059877441202082900784565141624771763421721719656235630630944104759896377834625897938716583390540847906478207328725708322702852132968020237317919432328327257509549130468602066458771791948830704207879578990402526181897456992093095274213462361738236243939661368235908192920556348779885998121574635091326133050813468717002976398076989277262889250155111318576352284876396386040564045667570875580929157717753772135541007972503408103554476611348773453010985921959970855374977838608895591007238864032127225297061180370672467933554628561071798179716016927450293818353589791502316351345376804793608539441944757216186555094232903943609561676640946662132642961697674965988893439125587113742022437178494402653989607276400835646196497682203063703905324142748685426607345744731327082833375236309149519708816328666729922259520351826209082895593553021214887592037651804965143501386114022280347989309925808847856083382406948728364841000830590118965436426615616402556343630578878528096942346031106156860171023583301389469401981123549788292835287463546699067973850915439726988389848879996045978587844169208098156933429864664056524164428211681745539957204309080918687605081484153796838464854227314438004415010117422308421761435603486969035578584314138420664458242059363423083608762524534287783090939167622791336965940706349950563492951893612563622005341434231804299116199801513909516688351876034034923867478522064831202770889885065174190614926104428675619836007901485510578350565454781244557745540496927919262484786574155138327188155362520128501264682959655702850053919628617270144209531765732674481553209593665086539678125682322785153396902963554254027683364413067787265702904422698328587758885909847378835548662393675790340667763108288568172892086856482925164912423595042683345735669698091752595966940164173570641442420954236697712706533956113052612052809882057549716080172098444749614080592768526195291236383060921309027629780092532373948307706767658683844165755030740136338017788379655909355122790415454977705589418293046737041931467913038291401337660547563695166784886533784331476785022718431294881076322344140445064392222355928267208827837846616778973444129610034224183245783199913702528928332452108986130943751651957409552171908332478317210057025877713727577197081375283958319001830213018631047349186130829084378778643869699317258327348864263893551517603214446406713955373641972682788868600574401297112460577494263426275253852991197316965474004881749040303897539483396985676727005840607465601736095016993674520066578988716853026093561723784943709790271122708572336830720542911598218339300953219540149606458725656452353261454814161186735765627254410781395721191787607535009158834518794182949170632499959789985778270778573717737612110963048516781904156521699411041447699605458275665890160312131864277513549933628933972333105066014814130532524824822441676499760065408482822362787156813579822524832988124642441451479056517615201939004458496352013762656255812828819391515217284767461447147360303153432918870115672217334642379220578576271709710346215797312569587309158258737388120928644453283941853210459375692139483224950831841766166660364069656859770024818694515355634921905196411269372986665546057898145744483455946224179858278922613503460382331370295593791000764782139018890152326945464058794586537045065020395178885084448583754742344306143137216558128530398867528838652953827325054141702829898825061515645898454408145307396880904900776998488000478094361067107529326265041442456772249350058224596728644348073925409060446167838831998462460264219003211866506291041151938087930885024693077032070951263774459780884474381794254133242605610319470123639868932642909648708895650382000948383433787278298708574911359092889356400300601949154136931064553133583872657590582384398318685904627584743701641574206488570073516052866498839561248763304451132750110936243753998172486508611066608722137656675743639020873879760969997736090901161979490551836571822334092022948458712393397238542860679850400317309908708171113237984791546477320571467797684234553285399416712301327006409555841119927230459994012588304452106996600088702158626516270827535468000190461579984927851839486942559485600253096936189213600418536672417257582054993551104219132553123930227120301292179229840199919660563042163283470185065445955098823843432582532290711782446431062515902283530784267783049311641759327441861942751838544246546657513874945443270671043273739370350449528764756062498314549163741613054298791275799296561251331377327362586539670333268205095533226698415500125528328242992471743092865092650832859072976861041162773401572691684823535927852580455318849065089174028155787738998928928566411407767412282579209816922133181823659225561950407213357170801949377094665706734383112122650394807966536387006575081582815452899678122974039140109565260780076862608337292331297459321514620653471047767186396997011952364090304595435853015630325601108848742954642421954953336128153145112482006716222594835775839039126721919419201138808713200233722644906506140449169472671690487880262231746329475900094916186575535204830119289202143040822002316052081826314573436677851720595230913009118308564257938798317728540942842080523966592044119188187381578864191225970833843211974757570224775559589324482605539724876778840692107707099972376435124227784476142497020647412976798211812352807291843455758189936961330858045742754540937236213241560254174731068477831284311571491559391265029793500485711189930366311564764051599130479809975701212648965752367995471479066343171443802335201926789189815684272136411688227858712747544729019179173530256709692645087418106572904490611020854259953839104350020590755084524790986621426591715030837352786170138746637540146719070303644123860957175641419495565742955227882304118401890946511988059613453565720107999680173301231782089704721895027945766098356487444226189701779932099223857292739609281240680907602758362165157810006965209611643440197679352499201656911836235944026705032444862098085118816248453368243919206347508378385240109197616985676839671655993874402393525311292739246004032840947030591697756229252049777308696666927708529751313729067561340544437540217120227333881096530996334029643292095542607263927158565066943659119161339012060184997910919071550734030854562198611402014457971219728933704272829532178744853482833751783615648071600496073627094927474958548417141536336774320620425063817787034561021940870520808622376356098986902596170325268555150091144695790729761045562898141504189710351522112080619013108128394148731903452418369438256700980052828515200308867788362853045942634718184357518314569983416465390886903956558767508304596579684797317335706265774835261930862655527087625593475721753970591037660405198632110030115627734579006614487510084715777621124141615356250682384078081124549909221109173619695650454153117848667966892760563911211915466450017029173361293772048808471164855413683780582700989032893851171239471262725298470214031066122545018997117415644615781481556133800464124008891315293319522105517697712224083311037600878432747452284810922650202796862357862570177520726282926693344097523581519889694766201794146494929636819242131959833078801928480649037761042892845346717849616617526985242628042757794150687073791233607917635143680935994496704662692191035698980385209998945752816658195459480578416813658154250623089355809727791114259267301905235657712660079344836348760951093187262685221575373400574406441779318109484855758204166102460405057653215938804291596373999198265148171397176556864413949573037721992956698853194887228229874222249232873880756656388129050359753287043419148744735661416757356196237480285636253826291432315424112415334466534752913241765468267995190670113929411815895400727966714590544549245134641499086623602624827698918746122589269179037015398913823173608278634007418641392001529329693982445362988121538793907992885192751084362511410137848005025958378536288727299653620472164507819642572577780404213816313813783857430160586383819299725677114270715249754935154348549184087043086428940926719091891582490643724098783410743748202474907890473890071713890014866713835111279875851786095363947919910874637694280952782016549279069869312661279142921507996020275248760221916386302785700510123445520970574428528291909872500243698636292279219727797860584316175190789196093405281951262330103096022397702578430447322130083421605141240468533058693201387208557331601631418449595519975481678952181225324259427953303499056310278931733465608049111026998139282457082485641042856666189974224344003307197308198704284286481076592142883959046826608598430201180963884521366880874013852940919486675718018723012279906860995875884939077992778155776203910653756572849721231375365793509134522642353099227966906472371695124106192284316400390284800683730234934366637232371410505818810264818663019052244587769345084899942021506594267822618825103832243579184626251347682479924144886845588279785923752013561209025552686037050472012261983468865336433819434262130007181863728065175922656515791987839903206609059636896383736287942282411365603732627191284092188936452960331106868810010535254132928383498671328175025928429071948610934027401394143750745513154028720486904133014745921756857109683151252823106295958371770574671314807162471647010053964161939830391805163160549455440529588609988259310433898794035098774701578593873673358762179905687336491436789059650734223015124557072410525777931106319873285330009393655302230622169354828949321929523279900281301754225837444197478174951025999726787511377169016348131311250833060770197686611527491380907604684575395898244300819075662675683599822919566361898965776341064409700662962045644499440541766173072220607183541534597613964874632184821933017852194835643700203339385113543608077802291936712069492858251099267616801977399000501645708974467001736597670085457834471409791193728539823239898916188897633545808350140974914724209989461361750515453832071580452836549063861818057270510100140075845415172435085700755357000796102688014593194357578077616465059866902768969959090713083167409062128382753918000934410471681239234623727721053286247349318134215874155405795826792522459931243708916066074393527994228582740231372527789356355681265965684703770720059485477272570634730711770060382096373905443910676028917199623239929005003650936534437578588910498486824277496142831800361080157398279778616329474531584299767661080923625563004870392056195299641143116758227426993567015170638255803968577881240661604847388207390155892502482442519486425364070380933049734073014800702992761950633895699843578943195004241508859990763987005019798801101884201322368874526496613136338738634683909262709881511169504547127811319748815199266886355478030478759457798377971983603822141363152003066732730163653691626486688864218654481747819514747532372524896183553723462118679904681825196200340894774212327151966971439390840955566410667854650139435789270985053369349486433744652212014351233834887504536937146871138433104799802724487867132804015806500790661555813784417881151213003858121722012725387161136576703757866761288964590394018000013781956743869414190730610959776299204861478329637610899278747319610192706289273862597115433300293351298213100267095921842843223253461002676423944545961798717914161921687909185472097338533615184190251031960465291761290793447699906206092188770787477207000632172951191980489217875092245704590308702379143074120447197874698455126234111121764831448656721093981510397018747374586416578127140184388089217118106403419655438016587102114539386797085767256385558193722420951111319873718070315309349066040526290518218853121495749642862143586740418107646928562918287044111221463183907584272875166750309515067466785600259742438822737373575002649323853998478653596852792515649789140367495120774128702767974832020968311556155841552016123282639155800673276252494624621676699785925355908175921441204021386555978694965956930278659627334063038636743821534621325466331556356958108783126723477471710571968156459957717372135661883499773052525506206951118733798213789563539160552018793148638610504662658703339691436026899907069331903918969758508967094071971601730503022553349067362751159489825744376769074493261107935204865800106492557583361391496303912177051098277386777058311045858042421639180459764002970029896559028922584701171672346701577880421968908967688441016656330741856837407504472284463431378071090039280119575067019840734903531241917748776981827733819090654724961260508836950561011651139819010392014873912093892148920340803517184105502479484415809795215628923606744819100069234353642940161296543677214858767727404353576089958103022090810083570104494944619380563292754609834423547444117357458114278690770171002428771960310941133274632847483541920177790419254284573252494417350433373783521037453989463971914026108328972199220126867801125466910000458034792768716755264973892906648066953031801660293396043648210456438828286641415344077213001147278603288096670208436973304685153443483464922044944520575516803631220087471637226065355350996005342887234415039563378183575952072395736011313945842272225728485582783562831490937651215216142357424498931929654869771987745367571016797339191230654401069917654150663281018828173709411542251453381053587703711734763284153650059740571456838580930093422931935947565993540707510777440157505469414984894280285127462735412112309343024713980262367913404019327403397908344717774849027763351742655062671811714214316806388341896662965254468368912435576199031649830190233240619944321311061421891786343180133234537060417945458754857550451123000018487838879600589658695894535354475194684656283605144219235693343969478567772393496450943282393796686695845682551577749747239156735308706243331950870867189640823353329657886443184217191423672220805382632368973469827722175759871752918914316918648762552361229392476278826264806343127497529952887991489589979539980219218768356885205134237633034124675448262409352406827495426381157832706433470785245329259272585757250272691207379513310988436840668709612542722258280349132342834733903264581584481660345059311221778955781596061834666181695247154534951437475183968330996351135980143665708482123954230329904955161910287039810982282777510628387106938855719071290036190124486515479375620183368287971352674826893315866597769700923041892885881692926694689406148196476296714167095261181359298525509479215035705867650689038010138768112003741029878747617193130515003904919246075426048248597148743240586868306825597723098882768654870476141623227064378780821292684410540000348506761988544021195478274677627592008805666881713633908504672427410536812400665178892544991585087076528797394281335213151711752399050180619309547920440451219880840233080186977600457298055503107181808248784550575832222157787879246883746888749572041738608506396335334875357010111000589474323714905001953863560741553238706550392679404240718280275170929525104425095351293634463021354671842863785074990983985616697031917181179225009983629911756771989099822018827952040806791005892547453870029288456529072474856530426917885118840907363076459015859306665567281984139003151519248161952337190991708299933622486646150696746661280520009735327872638761033562688869505149708612659722523663019761078208439270405033128949773455557310568616221458866398168118650837293449793522740287848043657487459687568851040118715998636105483806997757518193910090647154556487693870473773880560120230981957765741165048671978893059133913230546541461265868644671419733598516541059134514072136960412056838814692443156774199831546617037173555787359245215723691710970113696697873034560441423648597549846189997197745134100869921550030365374026420668799186563425121337156269412461926562739893037944673890153753358683893390152867485356346443426715961477183354044056607077539587064984895293838163802615794646697497613719288643553989565048471239956450683956664163833894022576636682088382455928709963087286427589069388399540399893435548978337691964520311760867141215131558550029084711698490693558158866466895715478034185662101356499647029974035587205706174920310084223592060938340294860146025813369874310536476401033464378263709045823974687122029355262349630492690753715948254545616316884037839044606825640983167212579457954243123468151087561600818104554593385582837500870573049541412616836843973439689353410377108002612914692127527857572665380028552768685093079016435143791192142573770978008490549192881950100828536189760454034220485229079048387788878979656654511619361490901648411835875449225394012729507346076993329013667095039661449859085007851488327508185699154019401847538136282832455487225720347519941738722997481865734484602800236296328715829446868183660667405642478321289589020835274459426276057000877930263971633261486611022001267380334872861344971397439037248233968649081592094042132367961178642081109940651065872980804840421327495746100712200050259748886482752939199984005987312631364420333600904093348269907928273464666277361423561504520470936112725059122829821395868294042993018806730350980327713528671063629489667612781888638925182579587717653835563210347256782438231145180956637276712544417118779836672249079327431725063105609588725820230373427091501764783712280873857625753522596571921820118769395170803180057184259915652470193156351771548461237200245819678337085633744989444172116359992449505490299886193190555017158591951576216953810714847672125534969514092389021348934511761484100962960864805237899214405349483360874707018511736421186806946877927359728458063682171737794023736743238740111832450895854928909891697501858218692939401895994804425293274479275885549909669262356868484591544647317101355127998081520121102393320997225306684692134940896852978419305408516367076697722741414100189966099899167471384949900794736877404848648157950154735039950237585007323687227569514257730057439017582802376832284798943894389263493592459133836423627221163188076887890056027231108086601661759659343052704541159808484401574905431041959630246770375037685583676645228884707350738152478783770705310317672983738778981540256067860377563899533726038229272495914316920680851634492981451406767041271192742107259382719174026884385074870587021734395843632446230973184900126573594951243065226963728975294598692445046341038427220301683168755027341357888146218378659836836979481230207855928363605396886333818243380645592362006195407884722438827525746133362595672460005420325976787070647110979911013887108876301522266403386046325460351432741165866537808908876300459506550465887751488443246125285678517114227612928327613314779869646228547324571254014311473314888678456474964704830078224770299877486206298551708125002128564023815664830002633723403856563564507701791141513933101590949365231232988995186182562025380356490914675597919467030502010546120895836477896057867230688959521192771002400392243720908952833035222717061602089274497407007675875668616167754666135560877346236142658886790201482903476678164759608887819594189130949695394856715695357192673482452026832753173835856181027719337614003387878174132710919801439191785911025055787490930438666288314176965910704558521999861797505328073879448361281883954327472982763837750238926980393658276664113586565119700545217621302539738748883718699015499228656716942367054062540131006238175684979851105307692985731154684114075493125701321721997664219630600537305739090900225231163850484296678806564101937253065288497393886310246785482919292116330062913341389105805292273843545113963681641107136936669427920567785144389750157597397223287321116326767724338933219973443633851191220688448713526758579803192935239480467230534896051013577501642079291301564396350279471902560604450559470768601419224095947374479258239546286298101820085271813100469300386227942647687953455166944415178409254730288266806976320108604805233689907870435671410320844835394974216197094215738285398355021563211457853199805217039225272567654970721727502585245078838725103303393115765435698011901693442653081281939517226289603348183468258077028064172374511276340343320459162108077671000248938422614043385996926426862096414579445541684739693250223248364456424949159064267301826896239580001040856067232609328565378395007424360101509441187844027104044077582146630631317007881443634494145438765109632666299890728413156733154395176645251545328798569452494956383288300381957598883221580603976078924573938856846283270173934212288094615300217882009467866833976338099586964714204424119523295895800224012326686224483376790222145260683874331667076876348567165162484002033577151032217092236806601865800633303572445983366974950144710178119873290383697645443730574537232197876166603546723554468685146161477772934856360601249337909952124312242646662467720801629093737009073270436188059812226877993988840211762519976655047772858909695871509156143629691956648720279961532638182538230393217971493311115791631521294775647912411952270218437899992421469999272847740415136491691019879717557916965004307303515056141250333070978426360669666717610444431525854579388503949419364012565552204058258542261290866710152902547543782312795047481897548845785892565478811091087138821346968385425935739625986776916795329746529802980335444893899865792053553921424273017697982868686096852415025516907396094239422188039882463813635207403562296378177652705060743830161697730511553910151738517789835649942077441524616301976027543646568301278119504866368840928058069999946447747653493627916168493757229455844818940794064159125334461775496486342765181578068765498575427127458823447739122763155744637283808169834699823747740850029981288022602563541440690243194933269482512801845684593180008382032007711834295911794910831166435426231639008505835625790050443504229070577356904226360197131401001833603776005077115431105175572356374967950744876603564247068350338808301981217457026169710954785693976972910834824187532216237740056439143850579248497885047190628225958863589856802900044153875675246515603903053421567914751871171459805173100540838799872137376729323565145547078041472604307077668905171110734671477070678019842853130624646353383760125232567846248281724924057279156976192163454585464104783182569130652004032523185481759094777846256485046616142809614750395649314039344270606135975936893206018659104639064039002017769128163306954357750572577901466056729820177637616211468305243390390063778374733322502514513297757242222040603417809975635746315854197233747285515737834337477265856312602391255221712666839685854148582447794240973324658103541337282806815997666457820036265625454217687837878042538017268119513229718114159036440421218704444869333568153804308981844414380056036247961605735599346340176848050332481673797420008095205584926609394430111048322670253816594310377816503513691423031658130658441399125417683046074564773799191649999940904165078284760214464546740204007967540715247160913429693636072111644184848465408100819630013048055164224064937998699553179011761847042885704639258484944382154619207030758042630143699922739118527723025631982136487301003389075186657836374451249982443529722539464059015894169295407572482249471023106646378507763654456142643836278984975548804306495014458462491450347656600524592901530554889328398468805095238944449606882742678500724497620613461557246369633466015466762041364144683709526114942899893456738080471506313512187446006934988126036320757680245537152368970855079113400512940941028104021922802160953878765204137428530276974206034315402950833352600605169616733519717865890729863623788004710429299536211999865036919531110219725874019261780834697673791581806846446402081305495645034366870360798825710349002950044918751129540586607259356903445987131444758203355035321259342565024561915185188507037935249974024110151987467203542024198239631148203321457570653622753667412987657214255096740962115021300577862784420546151315987983129635006803992370650247123743741574241404961219894498760016940300628213376500024823732817859163434932234113381829753766157102917286712743512826956587871801041506734492503187716338934337447988040346845889906910026240934900133670249360014796451021371762610058690887922868787111358458498320141241679114182894743617700066800214137520377848314598434296929864283255380914050378979610992025179454228336903798267784993481683738395900178914460910673540552272451005265013154691543928074461801992945568091824483112065913669186151049055379949041708803442601272069934556037904011640684828948977780801095136877376898013664138990278464108271482620003730109807587022315516931124892808034742143771502949332655768943591714720342897468800939844416836569191040693968748936082674377633981117712896829991561865792476993359453151014258424756834592788034783544771583215093739813126952344460877979232961699162162938719688778378147748069943906916412373897665577303929223646785747512322142557903694010593227562879498816178354133802632330624173800620798085434909115741019692408292708387046355024175932211457131944791862040641767747033668278839636857786611955160592952559521656479914887178548029143880551291902913748984722518348498441232501738548479706625158482636056452742447761804735975854444288136449004176103860361623747171934433231096313870755064633444984040426062092850205428307306557595375036212971269308790741415660877998989539371537622048588975406225684676861123332483770399800887091475504559182904426301958520770476020728998781930905555427888066400182723461321211255780427122285534887941824525362547541722492636797808914073166591974307570367786789559609056498128620112910438786473454737097181359752735616319037201771604787844298113995313964848358602325811507799931184536043871017017471479301031482647181476195617252979286542962792815344679778829110815236794397456222584035124464615048012389832824363420882741336457626931513207630024085626318283824209352703380205603165526109515348049915346352602633141684896382009963446280378938594433560041696493254039321202104709820692708873554976563913119838832264910618865763159878312082294742293363945230533900135086718846342459604301640399697517130492403340155183214177098349952549588752763128593724448779209810101005743658909946620997162188233331455596765762089851347315723415996670413542712129775233795526556562679089622792429900028515501213549644879602110801688460688676475635483942060320480057126749483587112376404362985642591713310607230867714898947608740329351486612851418865678767586077280631468607890152510951418701778852173432469459125405471037690542644229733195416645374747173451564466730471468470214870339228892113275940883327074259513977897727816425074141302358788251319320491179119239308794451136508746774539541362064446606264899744869166358694693782386544563793363224005152401332637737158366060741850173257740622953914081980060300231974385859005150486218179725889382484170224430610037411915986232503064296193382086950098730289762478019362671454980756810790370402425402186960941394940945337734716304188366786540542584435091070100455103318779313481045300146386485800981035201284002471435293980956756999799531733827969138885835791837290672682060797608901273998728058335998593886585079147449882783426350157027700833164194543291156587611538440549332422508975468908025405688348090648779933973120623660114181430260406539834858295859742297447977110156873915402600652561442215145039698449579637265893921818083361964994757573204552686280411953703622412055438669111393825141667609717810151106285264561340767282847222436325301443043439093829698354654847310948196958843911994665891998449478165860882832169021032921565315162461347033073951225427209501137063131680141342466229925080555047668599662241639488465453324321496319313895270434446779135050310012805175435920299324478741493097265799069672629685649318840143185751129654139262937267485948941039691475012628059716959746340447000981438241250002204478699535427413577587475939284295774906201712669610316762786925315884561516877158120448069386841625384941996486180368207360513543322349869383956227046021236753921821155812835978306995324559735741102032849095447535416892694729771256306864209167082860446639148602643555492405723435165562262378845441825751009758178069740911715353288755402612466256615843941099429221538174016453522626396030874668898872556406596346640986511815761486556208406508004264269404890883734198868592206916380647791856408794189870787328780549558453894934988321331728426892168587412112404614380258614614725957720947943051115398624337805608126410823198847329463457378766622369133458939741254099896038684461124593418911933125397422200409905688445173925678232564745246971206261145374085717747360493141666554192820089993314922667140180419660584672623476191414430645187452705757624467386220472493822563172645780068166664437968861449163650095782116846864022155916894962314633072320646431588722802449835706659699743803474813909115664680583246385374774581044329430865084508103233003465175810833823700747502630190721963955664694638521639905326868163386250619599832195462449738729022145562485187119403694775819393552964981610711314279005485606241623612333300120378175362336653833994072310484116256624118453984327450720038721064588581441551601994221487692305810215775160417749966531265186748195123813195025475901715297990245921215821997668672303245909246354201139131571138624127083148005048701953929355222574162267765662705671109475719888693221875293985333413617793864703869591625873497682005759082058593339271938962103809955969723100227253914797819218433711294340806520449056023735365672332326773636622822225627381853428489488238983952887048251493028516682632312254169088231747116475876197098042052805507926262548041976740721974158742875311730691816588170170369175224328913866704289721785808529999519064241709774301554291153914192043318751278842271109522249142663304320305619585912604388129396094323560446260727019998129703758964511794767741113617253157359751884145743820871774528125903111625511715756255416844784568391314856745614385760856032871973764164935749478978381576657757191199548808223886618094449318692695413529098404151488489693541381143516840793882763147505613295019840860974892583942625360761908612628861335867556118664246587106698836739438690341164034649851675584548705042784098427340688928927680757616888847403776424316770499629373986781400616927090490277644792798150064456184391143139812774787150616149702285757798801776921867899059316063705165141129527900430863124919714124516848038044235152694730225514691602643790758893901272572176320775827293434518443038721936036720145659067285025128415562087945170193706212560157299678635300755893327998563215704650345993269657996754503916536250088238869655899274681829582347608574614903595954059495192820727884677372813575889432463850156217700351123672029887340077887122409540804713994821240675945087477889320446295357814964896078216562093370751686652598404075901971706920556695834842503378774670538820192383359814464449607353452214225346106850855857209075096529423734374548993843312195827582773372092418939917775038948600975622587637827555782469318784394942779053905876762405719558456459255445767020760145438263008473717484347625655560998360264565287371585964924058590855453622768806861466307652057569633918231804361700093661967854531192770346438673840391720119853052553146228328010255985594552705007332004152337526397590036645701726595113480778361283653911609132178567727287988238884507179136743885230227450013833357265808710898710661063215978583237930185593802219944383466858356814469164862273249690160535665771834393148074829598393086607368932676221228145921645781366047517867269097808033622984502367259868043699683939269267223323490963909520578581052615513150574785597766921958400787554844942216003698626986463924862023184622280055436089875000172230027516287457861760183803172445737873268940865052970591070417755084710512942186655862761719433517443909305654241182621368646696414808454569256936645582459169233576694083934000366218021446861063108324111506178777134697234497427881730555030792111502736286993618507080216649915740651555756701559112335592598944644077236704561587789538694658773741026935053492891174978212889492323843464682875635905987321622056114546594791747989677068272619863947220214380437034417741146115829697601427125172780267766195788111961447461557413834312776916172295953610392905475653192121681214656612188063613288065697382457139988992783041687884345364596618126309974793368361371849945051877706812114566735068938993011984073033857504148110957160215590382808011947247303468209437256627557823866583522433852182199930178521717633002165283891617509806879454301187337016992633197008666404590883453850878011312310646438710231205863977335512381300851460695611451866500442908763263441438985900646651326630059677215549563809010381050550987342252140547757759582524756288191986445545146105459887091230097811794378425136778158280350446070209301882938258257717326491663304646541641920776955992508781872138853810521135753966242079972094441910572886743456045228502886551448439907940067099518098105861072463925987156681793351789172160068124907384956823856442597176902201301051210167317111320179702872344427319573908587397165646979856372486215959317625652166293603605383604226266325646572278577720352359215862218732277423232474924359832578501137648762929287966370366173239916252162993448986134814165087392414990176415301795908177612590094044847313495490643492962865642266712929220929480781317897297500563645365677753050457740632350654208789029961391471584300556752929196532238915078959502499123570309662957823010266768841491522849124835497684158205091656165180041656280205253456974767644869348806489764879875655925237163328306185985309551486243575212025539627894338355753728479288276620541638875134812986930891515373096525046393563992068248862511726965116946582973037015750370315050526640367378054146543107875921632960316791214537525857543713431564346755345984832985552938271790326042045919816290103186991100461788735800139400436331338589352175584560366625635688615678017385513965347472360677206324052152568135846319678982383122822948080104684423292226824165369727122868229530252244422512505486288413691149662945919604247058164924423054461818616300535681710705299933491255440942859250109796701016886016937821091389716651610819650348193828185218642526661250545929152311713288461467442420530096498943430028016903773066849644091212048442299904748928888201203235649704662231949955860503520737329349587172469906771605905800214466477661934308206195365670771849443511760961271754889280901895187809223816193536442005009989695871333937566978881362102007111190502732260549940229159931088605543315441102419959851759046643518125903542318998854705088017906592979087891491893166113653848104054837871415091310145645004921341443388629697003719594035759032548836224891907259774268242490511932286987138282882268718267132667078725482370007316685221094540155546587260261260338394718395152460215055766394121081914046884002648688351278945948610770814011821963748798293175201958734925420206152501992078601730206163431794327637030062546214552314764415554974051392399398121865389140245485708140226329646499738107764162762330186349335126517399310714356098951959085413545830055199799405942688116354454365658480689547788339370623093858766481092698361545526387238865116022980027593786314783202025224036352612483053915795243059275732362317050176806921904500174486908601971070013267915600239676419423804540461990430394269295952079361653519375656058868891934784328691159870028483890694791493760653742277150761955535093893448786028086391941763857597804530257226748635689209678351449930839955766173286641477375908752077798232521948173762931580715552917944983809897076316515249336747729034800342555209984506482414236178286670211597605982176084210154542549757230493660085140173844018310615311164772335572554211169372612825541659295804846519832387321617513267599788423475883946651116776890931146714699263113871517020739184716195531711450400104261791002162069849723087206458274995908755829732007818070818766240813704364397374418691439164996019832912505026691137325515634050036771150124286145777189222830051945726723635411493989688905787516395329407799821281562370433033761423125153883137296653375652124436482985887606722067112840075148731812721748000317594365331533961244318391095801703147473087788129355374681203902503017188453673378571309764867688063279078101253520407740516813085733666152040122654334983710266186569060849716758544028745707269123326294409508219125446629485092457876916240166939779443485275427982371509407300851868536847351021794690061028689506128358841709780062858793769100479408080392460924509656200325353658079403932997597149937477098366989561945187627921797016682268901763248544127761399397675914068839487171998008223272096137266746364060142303559008718588372503160690030657320137260744172934522067534129262386911206244345893377190070471536031803151111849272031859982646381412239399877139478503672407439270845465836583126813368055887143020843873592488000437824188896947861359846829167483373684485166900913283056574538667374662702887673995303182266332323612652899967700563833070585054590350035039822280787465466376427994347337710322534002048883402258283564278911366397788186339437491657473689356955480451712031473740041968090705795385644407218048856830791730998643115462585154591433561127226802703728296169482524566756363620189710900587299301314005457996265794140388589689448994935007666954352776027328562766887015591532238173911772232384131046880461986350794867277310118257742448969897313810014298600902328464891066071396750304694219450404895949520778366014011134615842540762750623651278982536104705140716991313008520716637641449106198664123655687713968008502789836681750804943150223229160726611557900471410041649731361760610611888795207817900788647501545997571312608302245002967822614036586164397878412382619962583920588265221160123615390770637634909990515688763275318244584892219351505212119119643041699703420588231703309883850868695873297634295156457319482000735267689495819449006607950894472979022181147565277457837957608718782111813792108513872211105785955044938308386467600035962118283073551728144162369027225363714900205395466316822587837972689783871276922223008343496078850208558933395427547988061700939346278484173773314559533242353971168592267494894448852086720026803197346739439889263351112088804647418930422514706738256914110495152150027631382702093191733869169450971939473484870382434616883130747443388570494006157125696388402230375739611651920613979062199968044262393439176314535321334723865755017893742120429699779940429137198164030647184986283465626631333124324541865884685760497132691548930202274501759208867866012807020517606837153453344273641376757217607899581243533175528167999187468745368508778636761482708082405761282833602938463032965826364047452472567166754231961032732779683194127722075622109110480619815239549525181368453105611056915506114865150713166840959058283998254561017867117847776116007642312848251149389231434339671423253527144253376264017744350137100889037083022796774674576268584794950043784002344709392634903372884085166680602791523846464764654012203146721298029250610412906006857346837448380872023147143645626183483720038112864156647137764843339574020241645635088143858105550556297391195802417040488190102391096043759055016300394711092879132573029283691857911561774699884018366938042426726724003699541650275385949920832139655457915804421781102689061705066588893522647263298450602069214701629531518963042018957508824616692392709490594832634443022349396916087532030705642739885458676870965454525424771879428784791062917341268340611510392308790989644444694562831507396595451064433270457056344790054460580172916938905733530985811405798498208341300067819520138414057010521849130903831417311132600227370341140083296663199110176940198317963467335695121130634213231559366867988427150787244065593133277125911951836163811782688813032096257114553834745215451838121832523807752138861451216165773222754648795141941809325239676293478448600039231447206578172486756367612708102185537686722951172019167268092102857484647586357788834692625451950514685043201687638624501262661772430373208464488736879993597786934073557946282978304410467641982499778938404765944742427562619746989777076857162499558019652799863636666172524651205668302342143551367894968206093168959004912820715574994840654971623664437057693102677483728602433476546128301666744818135323861267634754152498999345176081282008044394960759013218535179481955290423328371928882268904992101196899977588633865237336037082363764720079564126827486482823029627828492965529782211526966649448847963337130371564045076995375412424893211044982889260806754613786572827119764257011456080875931304577823665000385324818539753754837420160292903950358046426347080981071359154642001974475290580533074151731043781715891801525277794834458863509945845115448567150856751568566476673613482001229494996742194020917545796506047952730959073223487892747336558404262170468930384657755599642961120055568796009663041887914054751046535958535241625967055345129810380701294288132172252755770591464483084620944313500057973165474127433998448325051462218061776038195745092882096218264865652211686420006804932175495626926331731540059169542510451882659062587249059859040808688478720887360795920904026039365526264091215097187017657113431792932959892304121794670124411036764605353154538679405632237449416042439067400907449969368876542669606550314628359458953878498015703055086502189323571271328579627603883329398868155660032320284735033602616436946565427396968923551603244760838772017934552711879060499419023058448506896790326052509849708676880087065543373834595874226785045780182064737589822370716429695186184064595500363602134701471990554530570768095312057068064874082498307657111216663301988650390506883326666299995231574541401989601703851551565318184582772304138739048989056332792562558499562902790216130757204336826617539887565453793401651910000848989185616433925503149714764814452523212957652704421341265445685637401893563087618630318490975917045145859897469362236127563642250361101728532528427440818143303029268889796431432531586707261368943562729775435765390394139520292818083108865843862825340566604109382232760294274487675884987232051290873156854197512135174160509702953493192407705719028023623241511934578831379783536168652914422132051476923837007566903760106443720873851405744170104527255819102693845941488587493328348879650733786254842280950457057161317320930598863425093075329731709978888351016227588826600994303973506308350532418632448030466785794553616364127896285451020776041233421971617258009924678901065059916581191067361972292335672929267694352795986401208762171941914858856976441527364476453468644049141670986463480486042727129228618586031528019998850912232611701894595527190881482325182976925864336045868114163917686741479152633291839297973814587238956917509296864290596083074699304201527113824406245604303206524947157648706283190174477589598517671112444894450811884240211974794834084536503510903966069062572392146979241853679529875682244551963813616270437470680188498923862596542477459405795271750860973264035621059433384879378668340754650537267562483650028487434508340960053077611658990826295650765307892925277488724629667073435034681050208146722382297130233114552389752541531414722933697277353093052166052683607639692439064668182777086167564434769531886265615577107930460312386396026479022805053035025389810912538674775661438623529500862615069049429151848657298672207241725126943310521763540972851177036495831191322255731858083248545400992996132280456842802882386443071197798977136691924293152665141987492973640197111326030457061497114486188211259374141265586270387428530757374814602455014187471373435816109837191124091298616592705073829307658594695856326783476668814970707869588219635801394743201819012044567810352224820375969065442779181403892800406576765139818297557880959943986210823873932624846014364103184404381617990827526322592445780383919963893638545088779215371560671195439217507964828036170024287933375196911636740378776831598096082838721377412110522955294076330958072034529004551771532323234511506815807214586670199047326132470142314959535786009195126542237922854029628202886855007979914501229556323412097118574463590068393626655071662616377531378031640613662906779166358973267866514989569087049352462698852091792821103333953361189983406723010256329625808195148588786179762890579329103938863357440991302237208193612371277076843709255470476046915503943725496728639406634741924964827390321456922922060680921594285458777845381094810838613039749552088204857185910257236437216751440143323711561122973853952253762661912362505153693822210153763326137245416669928013155008515369450898107334104914863253825452784867900599662739204570078654449433870489106343633267528487043795164276032523942595918328511605461669101369393970951860671975226142256205564162281299677322589243122307956817499006771465957082646996394004857570981223136989427745573725099596329266780099729866045442865973522775676515127617579084517589582842462760357558730772007475526668349956840903450234809132386150416037178063098480060535612867248664547708606622221200599898015251246111685451638042748580107174164182348356199417124957936781129521695890775507950767525683315698770100684125412605848297509694647841855583656374953487281942266394344239249030243512117070410961624424423558091772741645715289401709810471511903412222460765444222146033659752235564289529796131291024173572063947184052459973977657227519207870444096749499821063830779191857651220082054382212243299651485454257333425068569771385530308830625435298766721982434158529425556216354872416865926936058392171947888260017772286007504557090353200474087064177958966995311414010860815833253304603423681363590970858704948020515091469131657131367528517546398191377804838084242812177478646830722554726405090277808966301322789558526029900369030237523487046660507478235313184029771310310476829075245218892695081566541448804466301680332861932336039044397322894354772057549299625531726130301578795524554732165396806131010156177031599368597041759244177593980956573472540946200924995603452362252294850244625023421687949653253807196124134248795191282308905933556429479780359736577682477639319964126125346678747192683364405472388109957065008564180759492995957991648176857515119717696344348804295215296983535042969156160966747618940187713048959451018312776463622386057506243507735422350847384982609839841258520092799102943039881080375067820113711863817926919577844883619590476613579457309373214723140300386436701846993728077593443717804493549306064880140561792958917415022661351864263682448091015109444153689245765744278098742689774663144098033989399344056981785796195605034674833193749562019398091987948543976731604213223226479522184323439786454306573760931083326731011173503099564380200834475289728315907926047202843156560141160877242719622208797317631461524515650632607353276073363358411800302383208643595107634441468028596398895879425069206725792925563561010684968324174582395226182337970890908278182617852234196360256089867337280166556518889129739620625422432624962582906572683640680561400326668672326108768142518085761284244596591091390302260527287967546308467176656474970023777840703877401394795938427411891080324071927676252998652467700224728622850250418728343745063236008084986329197687295355279075639756778346410351518205581885235612438973406892612271118956168366306520826322540981880333643421234445799193673781830157056684552013201702321364808781719153913318314789277848229792352841734771127736576760137571759479145836799592996299909870495754892412789239295194283594702189648821736461566722768288509149894852226064722746404733471517228725502454252895679125624641007162791720688729514782646264373079214613176411855372941016416738576253807479434397162066217446372692275281136377595366714874419010802739447815765516073416700986795110459651451442314256141028894094549907111456433954083047359068280943990672694104458941575862077511660349299275345442790090574803005967410079272221454369441489402435993689459807353298199993896888127531923068546990349274968383937546690927108658398713541738081087989637586695842859500976621476490237217034583752880020199479589073289320118576275479512353072147238197856971152757348377347497577657563031610823689565782692078894808180098330909695779984889623645918130235528165330079294885255150249644341847691407361799311436344196489290838301988104616498883656280007283803570313503302069646815798084888452893801022888449797371199016034326120434616491522541377985265579682251531734876966522254850041879760811309314177033206559162700196114133465393463472606349311375403256501602565824467531303860930980070205663628249280249863561021003933549995678602776138023519542264770507430062212078265049207393412067964888492925195826109041196889640274211634650375920580888920533304034780471193541157236313672873810343864255994648245649594414709074660048104729332771128269030675433844866539930167103257950128039281998913508340130778571980100138563781219512360540334319462708463177395103162906237130735342574077747852960559630814974864932449168970888782630142731842263396516816011016610264749866709903737225308042460724902237052611891296559648952024719833510679913930738873892776168049140577426971761323143093913392740538659768492903694547366278912918382247567737321904906382521948724421710601908222683096658970531075315846281202676824939762280259744899738263442877307714951544658182572951808742779751502963438652862847222167291482590124352899972023872192107401513800044764683317817481016255380385575254255200803367864500671639742866935406136690168259091868575916705723808284955194870064004220155581403720321385920062812631552230595921737886837353026810861696498722121725746154483494827680225782018633665245852413216583184736286594876814834366258671039318737869023291237664920622635720232887388754981052769119275058088192589005955364198993457006348055824198763660733561550866677825993011009581654335723555939809187897181598746806333034504710890780828769341309883020535151578116092306020702195728606758334287729608969051536121734349383038934160521309813319769803478487950744152925870584561956548173200271199864730678541332048930555252142018362711007634949862416075679077428930736008699471704594567516232915683624198657896966075865293196744854843836366873517438276438292475785742007645787291903346759067699667581169419829274722748380611508883919412153477519893691465130925666763264238527788084095227563394167741472426551571994031038303387561078514129757946908922216448675073110926708531989438114907126074393039473043442987969237971279013047398025001931319084171177332627307357709919944271098911000303913721963414769667356405701868538320292539020368399016598092578818554849387503215507561871744693800165275027831365386208501847276387193167964249889776692439523731080041795229423959709649828624785532417307260547795189516525728845172370100128339814138459423484062113584878804393782871960973098645301674683495689066355712941159030501600236962615717500304555471846261033461301589041861542149641903934574900426486945209437243397012527081855043221176464887545800942946732795205522246975357771008913879241889873809414486454395775247450894047630106963834646412265358922337816534580333097060345908020088873831492838360491643618483128203446257775460877017904108203486240789064578636252940754639417508599739691844771674279510019993570006992642740822349669805062153031982058928522359503630520555634053088099912523076504079031663354430013284708945904825035128312218179424621357559754890391851600455851108975747492988051090458503501554097107583463129238432359216188607143063032187607356686627069792814209152289543041341375000365594797595929736176923248789044368682363042643955559199804957860303848166056626518223268350407745313645052115143868009983664121119591192583895542293228552664827589244791167802917557994279127019281724228581294356525569281550713548600647152503431436932170203688512752676471992172814033139692729494688851755752935861418086704540715383873567691065523538563875131146961976358931716926531226799352250897575369831426694536708428620822702073791773502557371094475190867706209190525792256108880941267906727946594622199936011356770419187490521936823693206469870948819103356430973116371105407777854466054193083679568058130660171604311815380565280622199685875614803816754941666313231786387203302960825479786580903576560245790314141906276223040670535332929322134413123272748168380762673567295027546146350789726631707833390246779796516371746172076523935077015334601745656535832040384186628550324904782859997477146542257215182019824315061005623899830344955316941212307097052999399750365833205917602349807289275423481966921458426734177273058159238113958170394635929780527047095346728409968965291973115312846890985974055522111562911181626997946467256502112810832732078236469365618174184610903611269857050497000728816544266116200251953885907947989922565157236052839823189578677198221045003548482588193238191278552072302497436877499250663489391152011843463500054619481691427698102667157551453195150624350915883243576703152599559848564089269983111852342386002933372899191097455541597666035246068556931718290196896394938042390054429202517075485371046293331766494698254095438114351270939429142039135915998684255356155865977737153825918101787851318027325727589700822939430754943276348221816297150564633416918394072771446474391756254376556755803323947431344839806805619074736952592440279511342651087558517385754308067424167823158600745519197367027327039216201308685403404456074612836013955372214027154874327454746642759935490600487998759384058292646428060978341744133776571865469523586961465241843303143473301034898967468869876629380450584483162236777467419334080913175202075219495678359595845826066777642214620059446897982005288297410826119330628801765334033638478854601064507458103565977731229261886699524483717080628118268673174138039878229947954014115209587226594107254565607081673443209317731328666054945266034042712462904524476784648664466077982501225469032239149470771409551594434227260949432338197980161555162108912512221045439937236013264865052367259364599720467391127007864931357801593142769023327483005349175707616365023742798048602200885020310155909076361985611455688988487135275676968513247353591632029937594567011126248051350184106618418271895015176495816725543156553400749687731124371373691429282868320054138550281971638197872609000173809231415212697046978191960508477870324288425143319441441555467265787886000197247208460792136658946772069831370276285416890597360201209330371121236455229279928602288393033516293718776336629135749850315551796414278258873921866181509364621130759240446874068230905316207333462896804023581174984366351493002018422989165278366462780138586214784607590846878359094649681289435737706147375346499509603694119116071563884052915755752191990488303157325888246359105714813258398586137657590293339609762413829417215444073018773124792445091791364699963076134849780395636046274330755494693698936691466341803437639297359424050579544178248316513650316594452614420909691166932874189452268823760345572270472230258409314184346145335483199218320133542077528355896263588644334272407448498811478846029099338297365071768533317471628291143149907793302330434799037486263729096840607630561541045228753028358315564371040178765451027402452398509357711878869926439484207909245561182727179668990492916732302016312852788624921076763083990616932420848873223985649675044021431362294788777922355153201651338103957660833244658468774314116615159107876108857663498547183695594209721685585461485062328043570425315443028606705183277485234076923822053316117994028048834342053524322933802276130270223723278270334704886031335455863112736552563531839720541605215655475852462900548903099694921340750515311581668321822470157402968191264998708630334143462032854098591438773152020914538289052569452052231411625996117347053835080953249020633002246164951169533587726912238627679305309575728896938549005861797111776695097939553807496678371548174857515870846919887068018861864326432569640361312667116297636356227986891558860833149594773690431259337852076004089177363007596133959376982229323146989489875270412157467842035024567435775615880227177937275109825423435088384852254572842854466103686873314964443428228982288330816477806521342568156892281449976477585937168103314007142970296479027662202630791377859122324064941099861899033273384158357200669249832297465588241433966881944227005540523992453759010046465231849828915083837956168152788119983981069907856925631355730671578387608979372877584022492131201732590312083840080717864232217917698356761523763605124201032708342543966746257637563668429562325070494956825855297367831305077273246265826541626332589439574888674366662782876376617756220292281426061655797450858477354744679457316813395466142964970196788047349696037342960542985336552495328810786892699240651428189518441641355947390825463907210770986421797918487044150020523233004073365889405627570204829546919539435577978256531200814280316222595382356438131153794300733935007390455172318991445038878999871403610447307964345154992425357882594040810613054914804977748617517866168306312348584619943823037114787203492186030278415178558667701022300306864826709678681814526902450765462166556607250575237790800328526512222274751769959125714143209845935761851791126598756337325244030271703351041050798483007470529138983687186358861580033459546770377940581996560271781060496669680189157526427538840819038726043589404905521828617313922075253653100954169128222830419314371257026566092919537375766957286545938810332477246166239034641966621244583246506314395759897287681097637303849813094929989166886847432839866351273710110255775816041509480810842823412303779899639302734597706683848370283296025564877756567065150001985899127003981014143757994570369352519206474434314344508845295250367988565845639783047331947634495326634440132946921660843086302413087173324136919428476791703868354548854304783379977015848095240155700672189446090866629448456180915917813608826358482486533368862318332565855549619594912720571741022033220011299654697461056057960387981427738503951323563151276008423309011841145236784904842013843411402744156114166980121033533601933150757164516186983125537163110173084969130887430259139642338067803743426777263561845248672272112015984174590370377720675957642381415994704541652427928194010256355282692819846623333061195134090716146953758605480513942540675749261114580229365417731291774644466862855912703447521314777627032805359088049780127950937732093743254734667792056446567063407766608327798588729183746049478066368193289087976798375766585349409553591216844174998490151840191142719519635889560292340652168219275056225660779767683977086151673577711494239621934764532557851408427153596411797335391828465807100004913980154852158400469338553796865190932953978781636326054503280126189802331180858644117882817692969566616197313022674242863746065344087234198401423663116245395744004695568635050465887397806876970457440260872835963335593336876852530138382228587215132854939215759233239947934509697088288311101774607861563752189038760163032678876048538995421719374852931370530435275441871909547479193208015592174419154909714316563732906904318705064569327409580119420551368438310114052699658294744338309966997788375315424003032383847785398068697162909087833109859389798551114430641666099304034912799697986250219071068184116415329890789879756910873514419773602531824518162730279481145295213098176687521123230591890578846300599298660677069886504872313162486584529956482963291099690389895703804963322476127071559034272745221743702725246409512216722424246837074557722908422476950422887097177588264102886169199898409264493810394001789222011642461535759809201486011632429550302549259279707365879433448149071773922952711525111854491495986561492220876856442967998274005729337832611973385237155838210686515686458939601857577495774266211534394701876218397986113153344942127491102875394219013916517370588129864528829742852211678552716410532749405633738598699696199821915208449568269396225186713226402068797503282686708053166603160237402285081433981763301113576253016829903178223265218154323757843179848489198587139073760281992773201937411444663586898030868405615181282087918361450758336063873320045672149767385367186859127485256979147283886038173761614580670460979902888147527186133822901643476230503901393796439443674852884135487161905597412081917479400605133365158751489027804652493509515466432829275325613923132911340706944163495190189819841278785833463513726845111473197823250360422487637623760901444399236364462612858425289902139683925224470295719833575508774083976847121213767980755699439876564281909899630184015988057749219321309103727925798437626012151812861023626859927813771856783779274816772241283274333605471695802412956775572671122498902489838883252840449303492772665631944632767514817064577211002972518045185962547645090766078483321463773433937631691623542343074624528625894956613288599533311872144402463586831861311771142701729301502625058794471105924303754548133317411577717611430534881793623430599697758200502890399186133223341794301858100960045008476027685788041043827481268141616986684744148451937706762091585611472096866635401630245731765168057098821998041718900612032037397743647625543484059992687052143239412723955113956854460631197596843478502572877010837210380378615797846105528043223097538468851002887015301868032432773493686608509780050517254377139182431480472043970712415326607491327452738175145114350333650510540004872993428396026679097851219109937355350100634798316468965781587021402249568685849436506500226236840805070487484486482344621113361333895831553841098215697946090067867524619785646594242196614670713224202014956264843576819924385096250269958061024671781473997942063391124087054555147434930310289824918317642115020931599453380510632092987212523435430949239101530202537970269133645600025441599919652885558106123589874182151487064203709726003630766134988480773092455623751757395486371258770418092131856931645011976992992103836534803875524948181273588261336617191528687757302860143808948006960634907391189114868538676194547524636529039552540464092537107122320401687553911607807473402250962364563914526215313312253733592903910677992591741745665718542611169649900415487532538520604920882312608024236728076182404807100578543501278038001289334858649351039366716830495410217142823937068490607528306149857541191885160959131154190932894567033449173121169912073257682559986162997824653602690417931146005615946026886555272489840381197806441562912027111538594023303425597385266059446144128794690070912203494583964496830382279584664585028376926681623135514789895226102037815058609931474631280840188176911892856750470308526741701134570996309728024978728695550602405925616826916391926021543433798272603065481944300895017278505082948120921121272484730533664546895003973050863183843629677975148001018396604277785760580070180588499208843263632833345008530258865982731102237302156045753491054056661138948876247899033133464856174895923119283172816044967531427448186601016692058243619801811293240473039746125899158724333844924552717156765007687318284035676076202755903764951340545052611449043789302813972104958869754517308475337434609076752403194992724169908664347820741444487327681180455799524624029668230535065498189752346414491332678712021434472814467234792494065320165685292490547405732972963261363938716828202907028939604722947553349816582866910424794368518056943368465519441869000308366204516055136033038433658682620499058189712878504596693534474103238073422523105926164370789250324890186897600216186784044990175060754243614436068070538680627980235526186036874571604960684556588008751785083541545992494649942395401894649704839979968103761940794101800056956175774677322386795349607136556194875715712828235864613973344193448696767958178143990397875893490046021672880686570126590112929124106819966728018485078748415261876908212359745699687112805077956293523766610316482208053991886038253348780996545578483900812365611203486241487247015426017527829843959054553957024913083440850876130820815464730249584051998233831285949973737698657613286726233318911651144644513590198911830616624655471936177855721925149012535299592380547025393584937963026054150962656365547189832296412465698482735849685229932393601901739451312355532476272724742188648675929896030077408267972840525646764242744584507287499703893507675535618066138470011844348738314970259295018220731088374477594269241702455427857710582905148364974557855143582095921279794087519406561148792941329698077883259818380344397951372389549029928559697012203518239453666596780102381278973295483101068090593763583499589561391052525443501282666768551921880846517579202799213096725890063931123135672491518568965678187504088053607762764514488561808194805552182385325697788684342419519923526094378563235823607479606730433010669612020714779540330117223000719032880974656324054804520960800306901748335975939089242963380668141586600791780343513507512541086015228817982974496900259923810738917243985920242895771586314798638487630229807347862190662016501166299515074420401713962182309094463455091749287256663946651755040760676463244236326261411479901334792607741860258947565704092129826197246938123410607037851414744513929348614182565250985853977853666867967658235746335933905660251873504669753402392275323812700086507995002032927707555589083375014422872729421088316074628329373931944082128114809739268974717707690945704736976562482329718028232889918353427404526435707083400175936748062177720824880004158836665386555076899807310153973481715131236396085659649273740239991260483285676022948050911268178786206813190486098546021598702245624944412382738422681965413564048448012694587693881633016299260345157689278290830724321586242357072322399385350322382166514974202551077833440637873908864930632176313167177497418700656546363622198876863816831739524113210243321964673888468468993663223322443730228146474353134142740419217283634494115666666078518207683816717014568001094536368885523557199701747936512246566313783384412555661408818255586881885555946245076785699855295754806866576342555671434970445821841111612254930924014912092456999484747220194794333872933963167617105430660728137247047323773608402376419979569603495698625078847612969750088610212352967841683183644380185195248450954231790033577621467183309750617844254837112854752165974796325403170474507529761939995749447834377316727212916774484460161123404717031180163133893086385954412551914554813060554973025273974603732604823138960899179659617546334893485840675493045715283375880681569992067752080467983807900258534969359252024207623628722054234596755710094885022719685335060900417581375474369737810867593156776478859060211808468518392643275042995391817907276773074933452756715940655379418025301719367578997057915391808974829291897293822768762923701905665919562246256757430673935564853818069047723357571759114710121303362731395541080794708790991557323269172469333265046947068722463452442458125832468352404118395169006320344224428769289505660383461933959331248325712381063838037184744467464006204661447676289427621071819693857905379037843776240180136973362444991130659509799623776874597696551867377247708419281758219326326863126691934505703138888844985704166278911010922299910684978199182965036095952165760588774104256697430767838957472239339588393345678158905838130228418676654268508979398253907560398701343494710285144432072394015499612282731102812198828229712963795476206521045875258304920115174047152187977730469972102053174542895615841445333298812178528915013170599464157894117059692576629848041479060315995024817583555775853897365735640252056745573475676457243622864573318386251143482522067873446470760428614296980538363130594187385988892739432440605983807636167800586823842859278532204398850063581017056664051663214298569399890429550119171810490592569915519023157830332918334243698545614127061731181936574068457911501220573713557290297457541706141095809354770413282799812890304879339252808346940614755418507295668925440203592884285598323041345074636905202883255703687448353369384152452030061647301441396856525935981252305432052718014559225449236686465389332258140946772698678290180968399954725242355581864122429182736375159312834536166741020766124940136872679371984081920775784899987025750726576551366334473678258647118163640637265024844549514303094979660910562828080724750066721504167178120464386419746424077989135001558710316855481547209558925115995523891279315981322985457769852212632651384761033627747031653959033574498389389081810007772418382162736333304882780851163031454242119503289813446381535016629227188613364373074027864411913969448191096167141300304201786417396112186685814461278697894164511845912570398730284654770828473025049160156244786995057580286406782024789373671464398827122850862447170636185202955106611830161041187244818785692204760342667339593362453457450624476651735754920356530710843199587187474122922081812820060413920963653764509933399293578889849401220301849797007411504119595843006319688174028370864158000618909941311243110267867720993385797302513769730035538620020888988597477844363508597915506229996584883149301044971391389944910847009886742249297094323654670203913454914242260833460654785899893007381500361089449387688819996612279802804380385427200713234013578748370012583137598448786373182949408259358535137446337530787118241664437547239292020312842084326482163221864448253750721996705599143049035019150427076316615677772356777624637201651587859914772590334585707107305543477179640690716773267410563402225290254139555387717121544069132882308014207625092673691850977791974550469835580997665597029647143183334467605256629261507097752019099828404200229410159391126656204980253521943731213170966610628557431089252436461611355206835321271025958649741678803227507645932778085291223708277950935374373448662903607236626253380438095916347429779070797778390225796133553967713466708326269484444338664456970353434191458287227426874920235538150265867315153101934634584923348766457080177148984274068408843721142232426730778600618578190217888203009741088579251775603571738922721961362329173096079364459966926281172907646941118115389610723316113276191896265552850587248628194838256675640948350909936291837889912686591117232455622122101439647276869499245967586385866126549920710695142119961736185440287258927048892161069767091650719908836502347030246766653207987576914005300079311604251460712089490307269899630607322295290649779218045580040133853395789839195087813067003313768749328168189172473357387233312693225088192915861467220074134746339408131947557773996266729136598850282948165199750842529025373353392072118637156535992718103603729218946571699510667645645815404410734358410814754738089062242989033617429990804100667218123124287884535702454978813434492777772399098919518133287773940093010405017647932528349280686241426622267010662078102656478169136615792155969291001845878124265356929882155925286977877606033634917150283373966772232622246413798151514530420011681972372422648646287098203905166724451000679504344584865941898119484792688112829440150860439394143894411275800546609437382578160692938366449021218972431197996299745706296326153811523458679597275054555958513101997234172030786532662213763051531985404359062872776894821530374035820726771543511583197910255218802273499997136314788161238297460177926216136216919647106103748877029450913441334735354914615157176456168590463912370780550113723530735153411220879079714851572170933334828051168835667860287531942426921188143574155725428764767049824402042991725142932273134143472965444424652207585867550669418248730527038944728660842157166148877219427063138845605187036822426948158535435597764245500393471853178203762118941302487566724715103913062325260720732599433203181015483692959187475422274144986673692125209497457678740414269911081057225455687034724927991873116333520575166718803479190747654052246654242631512262184715640697945981505974631096183533075344902019096021434347074825701163072932594673225893648258288755432433053719442433995234145235575219320923954057062111326269253611189555588832829041929275697214973746939493529411806708679114577085076878105827025117347261792643299570259134562848596682519587877561928909435735606922389407704193485199224180820991251573090631619972890003864543805191630096154372468780916520804060846417801372037427849845829197932956762261090839498933340677605964749863828111172090626618395777826199324007237556660925673781241582981185884271509284050430219920157647154275740297475957288021844218990059156296950128558300293328836747894143676971815305840568303045965586491799170840739198615676707293742190807702454279471879852934339115580914268843789443586980454740332718791044662116863717674092021886286677685285418847618222198322331459902288822936044317921649299424932524207021578842747825257162112681232683767239912752172555713072390564737270642036907281942229895565839253699472742394059727863366372655977039287228572788450771947939570944506430995580794072338608708207410273845201423265376969870613642658500860441813737264958125128689606966984545971131951577249351213608293262903963510186601618017002733557457799295630413321477663884083169050089245087751233328017048670227443818984688181622831345318239190905192940149492726809029662396824270168365027302387033677381153713365445899212906353127761892869633569123195989290396567656639193409932019531046906984567829513608011333605069219111334626245735500275769296067846709878076515788920487317437144111702009171110730338194381865103898190190139466218414980083337012195202760682933789509632475264304528932177437420272188329067317579502454115224408744467229466894311587323434161734731198089436178688789232639780483884618870428444214935637811311489882085371669500104828750237224437812442397636180680678095639687918224605168253802975348845665970857165744176526189288087844106365381220910553171712936592632130028143814078027850726667632356030634010136220149596492759270628896727188286959756733433732249048659129528791066736035181479787453456059578055691688145114620810370927923763437244131650345023268356950577993999760284732229569449361394570611996011435421871178259410723116254031290185456171249657143238403336069460485878067705762053270187472597882793048872749274400029941034567545989199374167238426342954032214960168222852575190304740659165417124482898072498338380830593120118231927698353648967955517080523305590490116800268020086460770359387026834249097393557051427690182199577296021159784083641276400418216760230834129723142411910235536093463119625493396320134161989326820292561202727371271665813246495258255000792388010310733479438760291635682713859255588731254641882226957565053134539185100662392854386765763036077297656507870573740951827267101028378238031456878192434814527226655453076667826309853388498848439192380066770837479193669918350240369249076619937721362574602568126248822592221632599276959659187234438639489299716950104254260501972890002393521044513291185535551352305051294270390312849393720970618067107566293500326558709513843948340968534700856111261521678322021773956903210286530248845687945131145881295321707686056192593047398297243080168838096197237263544998860887643341371020195208397864734893940682443469819370818584480944708034805788286408303399662005347906734224885532159785098216113592604968025240156283051979855033692813385197423270638105481699912047133457431754501653793407152755852126848903390210751806371083333748997138556068258064787681503789111938179786910650776464043210197399659422190533953877148375450934449519892633859843539908731748074975122356676715063102283243166431095893538769379634478721515938723504079640011659004376615919159943280215924811599095554008291010804305779283468786919174932203255747696372748816913284878487019921643023909555223082104069331114683196517461705679073933833969087254200202713989093932055096640254459040233756399246812876447380435566490685823147297729760332613500245418348873704995669867185327912938985650040093784285047652940574304831912729339742155427420034253856560720902249012482446842635514679858240407903230409922942384501245015227430933912859430615067811890392908682648787362727418214489824645627495604756566264662709513997535994558277173756165989350964095606580116707551252054099814254895199821143237252239003247721542135554317942159902355602019950619636310503088562047243489838686649973828827719777940225931713214869390984783761819918949641791251870685220832399837298854981552046910834544447280770072657460932191128836601173718268195875277603534260874650786560426829906122780402625910052585775096278028132434721764492315315852808208579599842719708631337825097293911814579679307478670801126229545916066475909534961571229990717510066159139134417171955536222547584118529949027581906877129282927579721613276587280587323954581193235251828054041786992007123347642205863755887442867372437108948354444009813735725891198422696788274986037561628340130843112007705981639722279501038109860990220967075588412613942481927333504184725427897471780243294160873018881649276997257660986244790474858258179435895658014084517475754136674799925001604351190166724124531650045235466437298369518676806313393656441318603455338796665773462591659495210000850165945395383295751473124614601310275719971419988606782386774553363765427248374053116001655111782169519273315168358293982959146553367081069170426628655805150670021984051378041074188615075450934446796625383695780456879230467566653767735360631549884927019516291878161409528307369108651830753013584472063933963967245410925963591848213805925317034926416996703604331899535416739774034373824270542693808099813013981991551208221710642729521905434216025345853351021532151368499338149206476119650350310493217176200146815010971629287055839704642457493370614921605412688694842019456545214846678438442292953692162489065326014054412998455961929115033624273081631986664574053492517608695846081738696142550733875162820618113078481398762446723835776069168094436878543124798563705458771641391390393355762541407898838746549880708133577603347498762693683275554129939563171829185277122394821158633799961987924030041289755814853768075379248020850414627085309826845358048213382214537558708864432395237865750320460639175704922712269395055521674279811598763096771655114327484800021167695578170174430735612539480572745555528937338388069088255867386026768736797007963621633018058967390641032584084767168918071722752725745089329125179807735150088578938920930591462500630486800597436507607324075339290643057508740640589531218496198143144849961222913007672068088248726131401140907673915897909502208523020755522468861536522149782962410463562894950147027234403315434735058867402973955962453448294010916710120511575233897283022634950475759840316961126006175248691266228503389552162092058950968966227563724053753144182949925530693902201461069576784591769386312114792097689774620020016993793439302891343234180403908844556823044276449274050974147844343606406061061377959526564691477123187650092806486305392372809937012845220049874931495860955380598550739963537820394343317499378984781120302881984193337163793171273207782598766220832301964642259033367813365601921065740783333126466245445167650039898626995387610279506173354304555958920053993712470793339802477442895440765711861346168678772614065135376162177974330832087730775066683445020926771308188255946489327348022302710718385188631534675237039605857198941886517401509086816969087060572642165060254919838130851983796725810419280718760269230906001205995420663460660429749158378192477597907670439330337101226555235774872873269415153671610498293113109852231511839094400588503751154747397818751702012197441085260470369132898364915835144592684939815427711828703756946859234751045231330390316830311017111591499704443742084522943888632426276546529501479520110298914370195990217234968700321455236618850721063933704845591543177651173951267265008802374273246544984396809299650273749356753761486491205869490184973923599803027247267278006705557011164981357044060272326311941294380726124624663860831164102559533324260169259846720399171108545544776519585505439312633124541024857548531818940629080481642605999537210700681976833588713272943783402946165978783200087463991886017836959059548494723569963785942714137747295898992728266312367038632260327165082289336740453045911700119642393620541483736143328216576566126048491099184364752402664217685694272828386759044367328799413399946978243839928725037797036456459150866709766458171613592178644286977867968609560727957952684971152945752608895367594874563547637771719789492911565221377397394746070413585812202338280213358185364423004167206279281517396903113880321079367997383387094763692783186773378706958397373709345708680443560843889084781674467507455058798016968295705359629912471016877636251293296725571501419441264568557367148348239132905954037675915277991239110267788164498100470309476619633976228397632268689360742577825655224855602367383379240163231925630925652149425895630124012222177342600023443049277864685812477434187702789911145650149193264499205450455520009705627139809207827387885969158542728909441689604798205396562397945792025951752606413390862631130770705164899041547079895154741087019202062351940621235014992239027737359819753190772714284826245765134793440999368279063221794727303625865535957101916230692601503671246966240958438997749767433488306378996827234970079431867911441365432373354057986498462513180605048365458574784842718444183389361417032531167976138229272583925209187223311499515378970283431769958457245518963640977708797795896441776393891812190601649508935021606770797660983479249314032378248237589718072386891128782013634887439358923335286997305316927967469894051558375362329213783577108163725521496962639918060749569240052341933964154434620025409526601526892858718794291107223438178354003142485848086573991871743520146880695263653903268135870082863157232536669964268068431222440525980732547283572116709182043112973539777962789454599822781607857699552288943099268568974850770739237376768902839328043276505322392355471039284691647161419417748477959091676310745527440841965736073454744951945868791383286292290357803407132656912786911703552985086869008807580513691958864445924537646026045867946936149984599443196528427355949478111449212418142537667729884154254278243149954220378787505723842713532124915532014050828913779857498559566454646769467139586895937050455772811608093778235686094889169085429679349801009728207568182867774734413169935687062557573095376906998391564178342104439005401838484733996963265369310575785872892101134474207198967778726701848435482816565256307593840087120843862431778741838819020752072708377754347571351339308076677939808472552174777598299264425183357446761522202347835901858803136604636963576270631220999215542225472472870225161267985195005923855233935850665307580733308951455011006575215093724338166282529939243263379025926213099069523111640301782559351272398992899731805492029773525365167728401587877371200615282544140305508313757747601393854246290713847868799318816948308372220623713558383752908445365619711825782213384684372494196756764604697391289842301796523595844602793273355935701123869463425312091120171970902819548356030566881809681786077931893487492126091724791916903809656449997163034610087237410751601156300003995913388736991525328597072182332535674996757977746068764461844038960536486948651199727866685512353541355609432106680955238242836881453784208823038456078638672546952238635848998608052798916829806391423320624867404366012070150036808568898533036676122766478173043029307991934693132378379978995561119087164243989361033364568123219517024891821703279597051362285463080074174529003117586864371756556498916733388310365327318320707867280580695899324056258039226368796203994067952016188749178834122556506972842694543697636668385986147570460870855573287435134272851942020757071504885685852085431637355103523176790391247047698494805991885344605911509208678369949968587299159263760327738701671631171163025686994699190912476948579091793346566941809534362085231016221310606890866053016100737047454405976331267323121460466098251696560275190418672166300921004383518077698423747612888211380355129151640949638157044803532343440951755819449873285517056001141874397581112325805752001708088865884318323503191291930376178637386546859631633329616603862634749686866669328778545444343677767509814187130183035026583451166912854136963286478128598932347585323410440517300595568543674358126911601463562586622452992069100224412950530552649436961199376718544526390741400672933694948949305039708840910666941029913970096584038071257648498919512127459107968033426980418625530715456743447575537473178540235835605639584895923013735225778309104112010296374399439039966786182721674407287558938185002988899224250293089734804658126155177890676797428689807041248202038270997928939157719959065589333407946401393548583330255350576844851964764076983444539368850964507338657787799880700483111151782417096768899766294512213333878310133401985712659427974417932470480353033772610910740209184528595846472782917003160528212664520348008856932743231678566946396276863239487913685460325090977729621860287834332007320537151296935265612913661732524229245239765359669636772695272496684935185531856499627916156414975272341501962636525283937660218464687468023254521896178000217318534711815585836735320394242309258779298355212186909718119504221083779548878560955045743249331114657427632610148259593035746895751258954358998749939031632822945126508968154324908126428054740252698589775589972486137025829965765204276695051788125417395844566267535458578403409152834702052078104409164781100990943181324801742628028076435616616650995515425343172280818349761492925485074391172003195137186785508819807398855642153826777662357774522075141376866665523909318853239090429129390209404172201224370867150444374513092098751100127458586168888171781988765585643349169894592363289785780046635389989523619129913105335657539814365212657788863084442129074458947525281367210301046383512043477847550578555042179241898406340058703878907774332432789400634272748360534357813491526138973404560833491662129723763120933482472867372510661362136221937181795189529549211165203228784135544055188010572498484112902889384552970040317285086360710988996392874588364907674273985433313011956829379720983597917194048963795641187402648788461198396038129647429486806276522547925016119074435717198517717830351255984002731465269525700684870057918366441181922925700452026822118640734779922565613607210400855629154843328061447861296292232596869431721044377621176938858264372387640003458620205764739027278812516435603594411185632283361960428266386189661591483584058830961798582187364369071570423480380525344401951758972426913834504208348669106271936722993207012792832735688638057797821282437818431391325259617100745534489389203588159916326795706191499799387087974939031351668958081252211218924082620458608608075232790041870484821296101615087768088172247969321291086247790538839111442243657062429786203247102713277800232419781438159623732913820357584252524852620793906503994483766569037488975514765864222311824886640232605613805693797059036554830044311440575339708835431594265789013407995622867401327568200215960100207233455809806139799135043954004070543524990184565749275963272306453821543861666925373627588658451858613781085021154257415222257216952979977632151755366417443648094613764170821869779567004882906871728662145284294284381123545117811920367120416492046821197743228494381905294094627691477455032238850922247184481513016364574070434231246718369799732709875612377692169119501186682691139329058485755082279012770786294935955341231538545581062281381466225787562793158215211024330208830275724094586780857852465791848301056305462317147937787840364197012887601669624165375173186374236736705962532612451787558433274204987998804820734190519772634143516210198025387172590823024685277543923698363471324549598843802703926604116595696106098610892308828960406774719325772891276451431399757737261980732673502260774855609306919641652984737591054443352310496781199623206308780316385079878351841123196785336257529232950221218698997561647014667369302580234921613906994829155861230852839777463273040090604904757857150935901379494454892092285874697047701998626981463860371229724424631280969689427061612141257030132658495473036316361212110662228142060512562125252298807237167789627761684654395225362658581811758919834059951045593132546548114318808314001356177441191422396151059186080790342038556346885395788537873166356726116460126268416932031860614495394491663946451227073731796570158566954971072008811581424682863868902532117044877446344289446423504446392007824351369237749031708145703172176054045849125396427315426789251530387041168224368752504233783781332246218281598437359630196018715186948674354373018929871708033765394285458038943681547107917183581166424415176384854644601832728546353188683061128353124639858475664792555365570270306319657708453167410818305737927193338579384280773937216905891485917989050097063399410042908508669983509246752194070767435264078860821043080984635335220957173259499941543612345747425642078322136697632867014501223052965716135116368570531231155834517243696005874668639505688952559009157158144446180841974498778521653454350221223183828910095010240776027246315187484083057062025200690357397485868443886457738658001128655940742571852132723965580137641050471184437689816666423079650803553354420332846972660553805035361838182461068515007437211633358542452635975924364549136451651425687494747682013796451175091292573434372164103172337029109731946986101705190867357479404552248832134191834693001023539244131995616679217059551760612501845876884543471647694822392806911523195375035017921354912915122820900220736634305181626955339151403804880838094957495582584905179172765202874216428531602387780236590475154099276705917100148184397464130826458978044898376528062662321893960279646870568917400736842657356209447602568559217374738254899037445815990959395097172710241475630372162828449661340029770247674195833919424859379658658053695678796819017933299951330282599223481297547945485507027568952612437783950382769846067068103162497570990241488933424133714588783671897330517103946610250040031140865444354557382403479851876819348747857821147753340323313351623858134803489971282975076908116283863868698382429395880970356831060936407687710702759160784593385171061216123753618144959557083426138720065576268732052816808761903316349899640426930715398337963581229142004187321702397566590637485591597292949028011487555326711701875205970846430266401943495297956660703864304866610320885947993007517514914169170058696107207725768896957920484129102708333823205936630471973051390109884878069826340450298216700598196672267238445770236049365358608799912918581220254508499319049206123334591169980162203198029117083651993888403252657456000724290947803040400223092169501768128548692811922419407723708837751337260460741696488858680168178853468437533773972289523471824547275132500935525416989928199092862336017970932674887508853654619830871124652318958311826399478456020387983217928116742100792374577564593566248280596590097981326879443762466010155801214791348055355039625585676131073075365846912697299226177245987086416031822468134156200148430873451641448880903432579594511801029997072058206487379931831519360443311090996182534716926454168653637264131903108345739698161525788103572808721348054562904211227128668744807457191553902775996383781537131841160728883041605474734880832392508492901016727366466405834942404273083266286950057581318011797861851170158535642425757263033914213192488518246788361415429598881394653750006255287839669568786845670390095614170454589622939760203692934152655995036680838078576442524104729782021838819848236335547145853366716457463575646861886906056247703334745575578498188150913040121130431758650843033170754857517001691128163119450860956238313482032151708260923187969837451942730310179183950410291887803722077799757920718003720396652720861496960026626034567653975826050893294780372938484825490731954427641105415763598496153657337403942477920262425863370711270979388976588626560540548153717062094250990162894796112033418022717491001416456957486087382580400793386598963018032466989425914586892352124989600481776554245757580366698521673707638068905780851290689179749731751559559615618843906069882819762538330761738143396738748098575560327186027721190120188085739742723931884464685664547957511587487871018942784014131533168788273445818056005234113220280120019518750575823158814676190933781329141824860390727206120793850966750813341026389269922685526488338038085522191093485869153365187267454746637509574829257809270193043220805648546030320195850797967629065759149401980993981092515076553686329674398591813997273425688765060135065410730843061130220237833439375727508341333083512801668199101016922486690684360997335781661154358092112183777633109310820877935329784368252208560338140529142155516593920820237287135999327779902644296788391202023817056350620719411809890082497504065530149046349916607113228589942223848093494011287903723566998042756182025266526004848430444972428793272788521532784251184700236345990349875984409883676980438316967446721579738443316566029314093810390010131635783038548423175477461188094639969003514269200639546511509091442762761442952018091586847701643255314286036092417714005855966935119650471830320674991430220049856008883913335131852569536759406869385025561020850185434615458991409994873217594465523412126675798552188351514152751453597932981915790050035166860575568065380414700303848950703737475404772744612061667327069567967779314565924718827535132153122386388889105840424769085670329260272612488076189987041287971706742887535504908225259239352087022055422247144064034272602447168165449723832411003649406803712500065274989407358574579950897510865447369159623402416209472805280802209393733783213695783677568555146973798193969976852190593427605577403617683370255975515971492104154081172355898258029613883956517522582662643996304611841044522837518001878415006334842781266738879195396374938712873897336039983857520756285722864629175415231111365723611061174100083596124250305308580135469811893619199829783507080389598966936610996538135718395391847327915353804646092342202234248253548495543305709692298020156983850552239439904119873712472909597701585893146926694774024907017861760140650362403150994053473628305331526762195913338839367092570063086231209333424679857001563743023027339873432788597969820363209901209932172153178217683725338629330462832454397171925361633188831745415317321765357483643076069342613290766918272266577124521639537452401246613895653365352857412163828382001041551946511695025037188131342365727989891175227435045955838312325960134046989602641795554299780669300055028649916657857962521558264470959528485244452183470223670766129620344420088029008744656663898651137133270566215480653930465836173143314655833329643497973075516122438414776888389799072130526887067825746792733276560934015982453104718037621878744400982499233202691648281565991646881583938073456747243768567868892180138220261019259815760953527355568012106995012156020205820073474093154531268697821706342287089138069480584123745153557420715107374903149707287337168273342474897495502488434836306823716404490247857367826694013444814382594311805637477494745129195191417779437983645004870963746979308197440693601686480858847282328031022574872645580369333922823136941539525710034044826219403629199120981474568327027619396707436100737218103808176358829540550344229493077161993174727879012783154665692187399895813507917745304537451619251948441436451451528450692361747526735011746269084957121728178055993501111011661300361109539312062761003280047540173911554511845777355592236646161523106256365981343654682475922445791057834154302173882163660431957965411492522028142845465077719566669425710164928097445146240403214515131186501046082042755991546413443054818703606975735471440993878311653190928413488401748438896132749802049672698775695424927545448347927835379965002988702559470307451619930900445437458794350081090537903974003991237737025160806543970870671774280509320092542244390963163154616829087932176409893782317369354822354312293963411951810537076453900854972916211778147869053620358178012570160440579539883603826060266914262563765002471421615875567078737416083952219659892951711715650402683681726075596793025734076592380445181415354109715455832907441047946872177670195458916519002984841931834731430366437963089814055959772086669576070787686651095841722401828084208721865087504090892773217424877226796933202507388038266413591239159194685493660783544985678396912023185715360449199896555087185549561152134682327950021046872199089769238439176186737679685147221978709832940704433344490368486882665833786051672620457777436845958303936298655157188927748759392683955344697582118900496125789000159767597163034773286854697180785699846367923510708705984509242483012811956486298053584847868029446300195303642739472962704928370645652392802045823486602845131416150313164691611200460058692722950570248095380476749869018392601587086740753782507894774295001691423666503920546177073614779755728987959749611851940954468526189575101799814202647078002333882623979874010027950417743517649546209003652802386451774268659964450732312113742722346346095391157517807666017673712675534489690816432577851478120985269574633845548762455678213149332794883799775051331493242547873600509333898459894690315354096740465027793381655090685830562509992445838662396927690125193678177622590291594261584518568546156602029373916758708145461188988923017235671872405784446479664830909941995781182526824180791910108101705475637734887602886999526012635436113643057665492250590572863124991581658564376451057077495387734108557524224160026242847489956795876239955647814954062432424617782948035620864310459103844629560260145192512598990013257733182389058506095410101115572651235628706768551282272775949725610000774335056390873669167987928237796143199322084134354237740867010574848604253036394185561432424352012638881654643994651831807157613961745504190148951408794955553360500183123220764427027037042376759119130367655649817709366381777332549036100631717879611439312994977478719165321903327989160308881813902746776927746164412047383398630920775546200168120203044622977865028956919924313124933419221185353319832884406961982603812824251612831010987239671298371094331787232516732823074611215425440601298026253103439512531664369366852857044345922063970329913595878762108371025628719290430640897514588587539938468004425196612311272599981745524369585047194624167407492276832205701013051000429312691994538189364701181610920698897034494305355267541566759829646561809687991002772744200101417615103229936958879427942397708065843492234728331947475816179485835548599591647681521607835051092273809014465306606277249873028797074584812873251217130279169070752407016521065053730690243972796133378377787384716520715735063919787435469310365570502552158944053076230997271147875096724454766571045080940095519912120050446491429708966020906582555784161577219602778514266869295280761452785825297676113323733590931188525119124127175933814659264012672835626650690744463891406222035360346321953653620910230926950243457700618967689692239621837667478744427834264459419414210945543851207057403721728699037919654281950797884906519403870259998444777257558021965769770363023914380052306040933252288368734112646435754349618551290985054308697783693191775027257308677616643068189221753970968577415435525310327612136862748242720841399643956084923017680714795192267373247455773859032117928922907090965897948378257876639746349515556258929368475190781580935647416260477301516861063854476053535500198260921880640681563652660786658572858860848712762456795984542249396966001536349742662938581185548798302647492996879575153682405321141007352422137805507463958958879007798800460863661899212712684579087231945189815682726770309782448430574275174132538712684293084739501855966268778568417318163458848605868522826441089286601688308912692355919249719647902458917010776915746864845978620959259545277548126928603920326757123761759864118849332636085869973473316669137274854282457315992733970136545368084141428577324926910927171838744815271387637272186557454219993238757102150642653238489630647152428387164731052301244781470911268906387547149307907720301572664669988302751224057307721774520991028136889857645071975280824718755702283128271760950211754287712413728729011917777136789035533538845460501194309292638281031476502296449685709918288398983050598845728774094172954650324759601340257429087166124538475641268426524637653652304652114652600832624596884790466946378762945327227135018102441350712804628243276576463014898103075296349716765823998849492269052169776458067847854134390558194532398686305130900563203730753404265194296400936856231425904509397745127590821147936418800116059341619106913825137546818750633065068153738960323825759012367266366224882856450486267527214928840684748284177341218218342301878676482568287550881400875288178432722727743042528858394129893770231740556276352174401851756174022310030553574381307275042011557175227490602270018950664963588835288041134439540806815900745530635216693256788627199171352332743830725358289349388280558081280222631316617030407887193954651181374093317111742903189854775617898825093652361381097865251062649791740945491098992284111673542121612560792419302153979004200721689526031214178564722188565408322487135671108851192228740875558724241171662587437692545844973816873512176696533802669270015785237947722838640895851215805638083407944594812020587559345886293638077135167448420405728725060478986878722376894604778673516651581694761298292345431776258357894775636450104269626779807816467358507941119721557762189337602427284198995003425253238998038237473416661345227816954655825907039941300784726112309722400010040808505260865393154761163805687350575068390399452490940111503304150497061322516500061297068048779812355137845006559106521126562804243157042143473538577296838225373003684912987476369419765489305832335489652036506532552325899537330400494079474893806880319613679507219533949852003364482292175646079236605319059055657166121124562394613910908903533896413414886150104981324247800131347340346426010037607463440671676326980584767008031631091753409245406977454335080028132282085361251817175066159423517933276149732802586939975028624047227871603997082510302837376203018461375390648890086298068233467212800501600259176010172363682449530400951982621803384545794706898277065188450633867445997691509623984069835904548913627254629651930844605084834408078588641698547277074917024016079054439864460908584556981172798493990687117205752152526733876848279924919595395502622063792055183639983763635395630576814032097372155013743789880309604664259938476639525349975496510040343848776121034956065344131285120361744645947895829556625016988979532576649799897581829469949684759171971306572225623281539529519570603144972556495984390356478641220981521431785191419476803391080884290549191033856261103428799099658543372618470750774854558690583928563419604591658892622252838309566412557398404796636853145291214161105230360894179243986427011390718427298229078811573661348014416780324963749882962353988958970626928427269147492525963703248071691193336142527202046485672271702759495194069252592041287447095805221287994213869751556698569391573189975001224834599871316815941183197802653095299133771755224247654250833452510357345749656394605101990546775901059349688805321267521687151050984894523688348698012050518053404399892256464090784824107848272680169375048858320434840986013555168713210095158607361369649253669972483130219006268393657084237027438044626719949183611935716647064027223623222782251194283235201950119041385993361505528645603539998099461432037484643165874615043126676283963862649946916851881749345455913185112934373651760167875139641255768011026052029384793565940254436727510897845489961475999673610939719005882056645191498495296058448557084340749275916187665430783188765575321520399987419213083978031006028185537174247317670237570698694388053149299777682358844747683478264027286317346278976333912533109502847173110711501321383347198397893175771175670480250356635648834762447008636575932303850649574434958783135813569424385117412545651506749287289314729133251834536957980644238107472166889703891509737059375560863482386602463486911849301257055698295049124597824474225587954660241520964498981650906107705796189803885073270309007225943077982367865062717701672066339024486261209659561935330909845568495646347489704178846092872911628688115901492418219627892364735712473782686215850639650604864165124450979048071736144852888394998280093770756589372198401426348066112261953921174862874081603759084410223961555117346939814442244584909146314521868299882744941017620186159934481543499366737582347410689997215607912242821336300205648778005212620377092166988180753762674383368319638351170647454729321628686566386487710653741395300094700987506659202031027380776922615052886261288218192890185734501529308029805989950870384967382126483954973021677001725179039133891256167046283299281410534125138402526750861888583468019951223010721953410308381716552180859407821164172853666005784750496904474181657395454058001239109819620195415599775593292065845772650902788963378669717588068718908233993755160122015366627133078269704662502845044897039490649023402167536602587804834779072582556511929919777737308385744025613903921409825066369671436899835301161699589021771347284754128989422588802298310834997350411247991758108753131273865321712619174421459718663350981786959699148034162128168952035931507962137158308170577582420228579112423682483809096496212033163857542440450062107733703077329136217964080564359234586279488380948692326804271066162524529546422606680111935617422241052694047517885276500104007667579650175327057514839731007845729693764712175314102049714887303971971954872114138838628797252164267648835270971888575572241791376940608186175436700748790348005297540664265795959247200418696794992775155614592968681085655240166080931906871045682460491672136662996397391614214250373209119481188540901212171494047867850842023749685412551296839183790117730723685420307726674598512295150479569653654975924582338725443554554824848541772722644604178060452961264075910156508216008066906912575564766836617435721843808531901591826318759293628729677279334138371642126799315999493583377385726122470469489244130523811659775726326425528574421117041302445209008543598344344996512954636134261982293192977817430616312958684779811094862230068228887431075872556477368057331908978891080132127307918453797801249597080330487946489487422725030818493910658521007184189463064304189342169610097246012782770235828608305789405295227548292026333268027467537300303304829539831072145302241160030813308777121902435201126000230534450290761394938934304065127370028922571627046724651995805243246589924345693975085871236498999961308798205256097719339106049766348673366282221599145059004193346311421867849350427113062671755857055853523668436501514065445214389845732788788930991255970075458813843127529103130535768730651895110999063410334131130869725604256124844056266260170041012420743082766294878343544558086663927809041748160111532764702127829910069256174973114898688851228456236763854396316955750515162034183358104869241231535432730195781597796500556819125233605946068921679826671970927806790312808165534004028595885873947871803365434488395187778295006381982074447729020893057515721962553233332528114422144944095939246873180651355571087591197486548828621614440608401506089525125794532915966904827949459373672690864844371820847511089879370979937377663808675487291402119257134291543307828356495909871604261775850964647809887814382304187620526154965996677096683425580401636852586560633293597454051451799612711642852998471494979536092772878099941188515174551578596711819932384962588745068594659324331284701849618533176862191112545637483317262552055468822186975893322841024278158740627656912692126983898470363542099299798089187755482613876964551294613339389284967199670525544760864122923780770382488637738469003812792076924017618448589630628388043538060179050063289558559746131907499012476766802782356014694142076131403281150639617236740930614117371131267550810469275625818845429716767038630810662217929653945379325117367366777566571928792504280588852801726091795375269770763732593508967630388154439089470356583118399506756166244905346504297360445591398904674251967922684112175757320136216813691908091007156798142857882953888173631180309748551781385560675068354886479667893557234253791237880096223088874431491344608571282149425639388677454179869365920086677763498953037533016451975542240145493819026629475897221542274372322815225027163193013221682537147794944332301906765573636600701479112760796334435880197297168610957289858994963567380612705946813440721047440452285796553545875661539481469456347127782344410691865153892976237343341066088477920027437179538948266490758422536671115180085764332127813625318241190996990937566061955555577417332177023258390086475471705697690992780557049848928039327545877768658863400739618209047505753303250343069664412130289826324201955157933889301743810531290262605293801602940526815940658825960843842461564948172398272949088537280541338346486200943637206474057524378011168440817718728174976422798062706717707558578555078307809530255582296770508646417417249721871068895702425194239724142157691473467099226803310397877030274466022834989472907270722970095112463546892309303384062144845486736202757071504988020502534393177825542044031377538486587834011148396503574481926986457933378313677723277056179545148642935458296410352554369819445079932864302561501776410433159113055437568763289085684876737549226277468809857224992623526389799463785358276572541386938420103779283052211245331866375438345736409818089015994303367399577248582275837715740974947283654348969481627807382084793783539572390306262057221905575006537406877382712486495031553151362557086580673696066610259234814727841973307055572388503916225988594094225320088887180416974479967798218913410039734635855724286626229634754945397269208662413744350370112287116721694937039221498792901465789044246230874625251734753567818912104691637934904155077738828174319080457822279108932849782276279401855450277582413156554466343964921721078317370732347952496587496011551541642582924381791774148590885456836105947694560255233256087502043256494687578603921104838562019575645792303164628411965013713472904841631300051812308569595777173787965042494802010576761178159641937978771514576775077832993014414022819149923817976617054130574774739633195532427435053363327530515642270396609767784652937253287347634234531692428787831256176528818900848807065782900161604174572628936156624389100005637943520667524192654957305869994860429923705407814947049999360744015715212176306906788413184884869030284390276683100844784147772297061681154592160561312148232043390859491002050607011879530205793472150781513396693954790189493729547405128349846392266885597373637262613887430843294578476823070911755596315036354753402443838358049652254703509832058196055817937712549056065998304307610394887067458555517307084463392781556716692616803440375991041308647120609661791494794221695654375978301580448817987442067369524520961503602582894007779759512772642665608112086845113449629543284301112567019074008607525710060155447268671601988414206951287686633978684057755944177246143219163074927964119619030403696813805183459099605252595728021973534360438574350613299721750502824360328726023190538024114692195941319531064021081563752478683669947362777455786300816131427172402951465981382986180453801477579243123278326664056383763475664569753993909137914854465490338291387677188712456705995540779102091238396245881227394984189840862227501626264620914703353235518434622158726212928255315970796082590220207559190297039704439860100086258035803624573384059129234168416047957137087484540322344934191684817377134616678503121082856505393177314766071028759253139498879798668164214971440239985396677627560699577777896496461660224479866962962206838956052625407711716333250970223575690716814640711626312802911000218433988507228269798786102678533928408893128378279963820346028004848020414641664675968402940752427981109332357899735299681599248904042298431572583829510533181139914426083109989904164288865459893064493087295171560490886581461335263429394513000665514585680024482740751110088136878342960894657814215918179241554231416688420428466202909818730073451079651025018073980195025874340066631308087463499350585113286292942352182887519474240013605989419157695782443700130911229543919237773242237692722125085520938392092755110095341528244351901066853971222636306724150255529814787372613649577058406982322160658978707838218897929175214055372399819927787826749087643060756166971870749104774269519863349666276531847550202050574541479515221837980781804081886495522601176482741452454237475745837746152563348682282833386498141940307408914917072779131332088527127412312410495994246435390590662941681221282236862805890577196196332624174087604368905452205225466800126353949797461180018252771688471420561994079951944668300861571310576863503959981575073462697768503065941566997707867140399761268958840629872315431226696792161352562396864724619851652919075920996963999082566722863000545586001848535143898413048793951233637297129197143061882815374933740962999597925014246304625004115286966758510707860547880838548571292679555623780485953214883840515202093100213654028425475342228604504359080830443465966521787012844925364657380839345341853948818713585165985701906521524095465442325347289755278566506988993936416969671352537150925363581807944529569818896010643658436404022433542030691192179431677013895439978449552124112560815965020678390458504546264391646095509245359440653481730907275307927054799637175310574609522929305305076273015217871175626851868838139924044638707482836331830971087382749058609425084946537072376738016265839039078798701369265303439958367013438220667091385637398804976442284604275952449045498670663565489951550295839426319455006334812351537214644136594001426368593946009314173310718346767928502555034166342088826016770933832555855010539938165944598924350668715500512276576468789833979525275772799154743519328567858772043928234520671879578137751793721300841970324877720477943707908488111890212376426663551175314897755198768617981812134636324570625579433740731570421181668433171712590703092562028316120991100809818668860819578973987132112036134070549063739474642351109584573053082944206932285360074122461400845160113864301177902140852268686052239034656993654534560175606102473850825053516380302994484662789209412775615519912978077985492765283377374519320897742609107793746130875159821987846044919607728845874048175548860252703817587332659866707043598856458901325508118863549623434977043821521968014851077101945757368432847855688657539013672604527865988002715221809032681552029449034650060085353325768181931283743591211310413767006496109625636452671977739656492113741249982602368895599974994867502597612397542014865086190845721429247971931908141033591604353371177662425718951194176839619402380907825336466954025808093623828770820200757079384017949917842677823772542483853356524949643625897989958502834885329239646308028606038712383089392128897400213219368083429684984532410151892899627743366169654801071069707115700607555520583118553785855714317106411278517313135855018042770439325674756301294545296138450104820753629684932748209416304087943588658061880729150144712527886042202160445518756665086168289028207653845050300420861350144839999607351412258350701418225710354175852896694891942828741715129583732629087691402386090243104661944883183614830150618676102346612939747768170739317304643102579794547329566670125673249638637813900994445491021972599310407438328585796820401370371376312598199858079835950086846743659399586579724960584245618671675768887231176062935426006863803450614396370938069359086666709985848423925830935629586940949374911720596808599314852178964962750981704748292158433992135813863116688539213930424773413701760693296682402931389333569844523214302824516685177665830648048488932456542939860530192068681325381412372927836906268385253829719949914767890925785777160836227502302070992437400449966710513519690766287211170938785894000622279341342278640224490211515294127332345931116360043846533916365262066097889713423571006616221383009398111491930377564003752568225995173521706968252792185754487291631374919556932939990435296753448687752804389725646120903924481273821909226972234361593933878342739983496197019871813678730460110994538582571712752892060755797490410017753436071095491512392823997635345093175096533504926416903894872250371094074229333641099260509197251123319720581411571712736218966432992583304981147447012415332856330148801989199795140920462142052241878870845789585092130837019365574029337742896492974283800187213112150268741309193672574537890627010375901732386065997293683063736991733610216790878911305664847320806829868662861843435076988249097350051389503840546268136012342367812115867744280753269926729847685218905655444403146617210610384290487321808635266994210304685454705979722448915281456387784609634644245250567519836891643348140586107806704258361287252389767775871727751970188626208491536722128626415698273072647902476902158028955390412446372039561852934644510528088279870361545732622456831006437640717323811948458312384570511882155450117956053365871054423692325729057213995216057932486248380018481870791860299092932059902353652661586156110277693889578129514338512436572606268011129522847359974711755694701580529606568246171991580321094694842267142282026062510624012742018242808138838650241662876564456942767883014271613438965344936940106194300342443768773886011215597186469686820797404502615594479612318095530857786812962592122111646567038482748465121717482723399159260265475415056368529336300640693564379269573652395236289341455358552762648524144373511665432227876710641300859867349587378566017075309636047822888652288060238688742357119416246637007109915826610553922709871081986978654809078642719568930648814999820475672985674057251781038277500680238111563087017252679290138386500492132842070488900205767015039730834092961999368389425626871275167659267167911618848296560954469659294407468023526864977257128786822420993747911741622066838120308752260576168289720042873798032091200411151256893813224683403259150714809367245171178912167524342657691615919321935478558316967204319581171995722982603862207622154413061829092081158773871082494859699089140801031894759498846381660386728345495109389665210028660750956443805290520220196630235837299091698120794997730292754737121976847533128692317770317333510343166077329104251283286374614892911728861370198406155056505195756880605472173985027740456518242712265360811918203584685170376138993776297555054202720625450787307706205224783056930777299049139690307999303886265630900025009796545414266609111176589065716299492461992570210002685949877129734200196691560499568126287386192303318204994889395198083319113011095223487695305271747208552570938723766203460949205228091718784274080408921724671477646412724078656379318475114767941963487273994107081915704195156414819295908772939715857639002113492045618554512654727987844633164436967336399089560428031491192817756541091554718572883005692732662677477754968174773545382031463626582477650928020409409688221482886068928449738942849147159074911381137267596325372948221147628039626527189282811373497376653007214601784455242668623506503052254678537019247493751815978510014909553825109940304093287539803872415366902966349031456507660141915101883129142437220630474848620759291076039546189503942771280462501557821371597746053838862351336411994004136131872016435694571887568805343856083603164365617469392901324293004842431854442751105859586694829311706735520034541058223283409086418131380363270112335224182280572938078377718654631491228551352357923824069312229101379373380848671443294133494398271684116209426541206003405411087571250003787545680941457643974811519320758976194782306989142519145160338424202291406458669516026602418556291944523998247615340583865919911437843437655001294313558457183931776582698421370380264634424211890452149393174903379283593765875012102424246469401031362445137640979323142435501088680601964526595886974397681134243135331920481821747271637551315198844441555589768295221150125065181904983934914758560863365913651754636578421423649176575480301910169359804174358555002288920223361550331794749214684127136694122222119779078386223676210224204136352346878261560449272125301484016593849906221109409033542738252055774601831169613963968924744969737780154007898903376160458645143975788661454524721778940212572085422267275394744984076381120096691806618807025577293749557133766710254821569393076919135635748496131097249681394589186433059890501410303329456653092341210261610984996897914867510317609888842112873593566390955457890299554371775907555445626059922128841595632166451538021802730802592222084769041968570835712484498624765217618791811648892299348963375667553758943032373720049467843943155478239497994680293406621485427989111112741261448216083852263855165715593473450120515284927094246131785213995133171651592093063782783154203422538741810838778311269791054137359311985300848178090730200747912416066205761534903796144327866551109053310867057269213140444686284445838506338035629113084459963400407122732773855535069655728666910325839392825568236378124018831643361006781631308253918950405840365713820940158079266626213351352985569906638966348410901873053455313822449208939909161514367710078095151393061985225444640000111913888402757935136399103061481629875416515720199898831445830162829008783345537423309102888012827127093507462770374435129493696230106028756504314109143416772954223951175561752780722827177079601382454777176738805446017272477085400580093667458628410486345060977410691024393885469065523548572266502112878435908599435949542927606307742632209998056946221182371395621572170749422406837250846666602960390957585061908457105742314235348825459122636926457603112994406776707319842022519690402684049445007540873820913080520797346461205112657586644157057785231864584703762954000468868284266277146560017391384120895433656988066197654381590134922566445709995358877515792996960225933422334759843153128018875238340502793882624650235147397520848384263385911117712381915031049103369746781191832453561795448604754544603702389535852243437373400253880368208197822708991868386158299087234191365052945933593584526690692852913398286305078645404777560507428797599970771724760131726951925225260877477048859411415975031530467850651297515030435909981922478668415873153203641068109697315847279138826340565611652596063890886016283936043134171460122861993782970684024583456876453460249422189625774698916527691712530281624273563691979517215435690018138904858848824394531180483809093972263907720332099571873197376689734830819872482813733321147768786826412436505427854464134060130653314632956007154474324154825712637449369649325774385379234858782131832061016121043087553470071045353789824381509552041116002697952285020980128857381388981468215176882956914372610112147386345925061836599230202233563185839011757997527025380278926291689911263897039323042088826543515398275692223586531434386600323127503798717867576696440701690510931480176673838563343066886071825953847425472742091863426036946096448026520348364923348034237210456192123014100780739260370526727594631158239226704141741817100510159743206096237001333763176519951978437825724007299209768930095747271500614109251822365272870195953639697413558979286401101179417637331459915798866695252101913315499195807348276183101918695632144229015255405506256910418553302823174498817224077254647021706250453837501710564076492266198356255613456274361015754918562975718501049363058758457776594326785231374943500893424321413554650778674569149731239843231356197455108787692031975106797325645430147829160120215692172409399375729406582150494866470591529985889795820967289021774637269744411452112902713109768537517370826289816295466002913466597825746277787771751484369176379633394759414373876762176794011916230039811651842093891052999711836236911347193457303209597348381574083195870042428748210382789669676899051966253759532235135000420038623650133262763113001531129140785262366414057929631146964468146300181396276578173909363731802482974585617573574343214511627872911467812121478704511465407009254542297975054442340315459389408769499338867367457187757227953367199437461297396905634145415042919189329357792323645187404722680673805765183561725782924621783781732437636290679805345354599830805770713469450469377910150574263293679548412620016540050173437114757167611009638134216265691112185856243699783275217090769478037510679246931711117907928763895511770987712411005158848598409902534219248451769449796771707131339447104813462647407905029989613917223432798051057809579849618045819490705279862033308313204488803022215768627247399044636405191541998412499151707805344708375812512078283997686249448827814672618823617892743861695401516612932855032091747184248433347797448235523104809738791793282481962934938350821539164554043594987941055116672793955304662995691649158298693314731770038652846323993849293976866377836710289609578034651107783172763404889289905353000540214329732095988642405347611542042744473855876981430725207627615491238912894591973241794246256321135908099200097377674534126833952854081782022636065305161144555167899382018201150011118318851692178086569299768976169481474923867812306216800272289368884176927044339662718811346275041939054663298587536421267396980838496539712832300269500437175351220085050983852455156532988658399338554370702925649031557233159227395932933680746522034825800421232113648545789834349514846351574762444579823060422037044960757363345694911526848835003316806625980013909604131569078427425063462715552955761691602264305660685513227594878787270237822401328465574825504977222754435644633817823711709124682473474119493186945601847345982885730916755972595430057548649770855715994592540440781472828440502054007733348338558502756596195090781463728743508461608533119743426785989105462217597927051905139588820153221989537755992116558001691025830358180402156722922024853225319976803578987012921319250992986383414898188682630191644654047379452344119899588439356984702036179482521639420615526476317989749198453288774896587995991577343579994404090738422463082871280760921115128318506633667805410549127873559550263950361911306602193160330116511487813550058639707200763697884627972555246004416474947617377020750560880240925563910627905794982449639306640271005989197223968863517452895896026731573072910966095269380343500828764683193657189751080435821777651531643297850599128511157304294119900610072089828342230932084716929435609266412955555798582959101438533251877165555516823373432233474867188506686695678666371204269505779965156749099849091551461476944183442929001282854377890434477762916499841365227322716014417898502607178898832598121894760152072598268807687745680792725209417244213516638798989607678498966653854175663188134072105378846321972692761242446494207006345307442550388768757331756446657684066630355399351173599648557956040839350278546549705072115479160894612845847834978034913140642995984524405649582006029140976709874815465856235791338310809851479046802326780413804638460674168334056102456107412984566756701224390383256618162310562937473059538178772477663936896199178956899611431310890182886119124082789347561114625136558886307254872985264604197647914327476505644841990905393748408548821848012166158163733495314142843005321436008600851332871622260272945603866619918839516205612372285533516337760950844443257558705850683727806165282673474106456731678249507125544949343783185339196407975548426790212386467027376576921695271975626014327502941932129551296600477977293357214821703184575226102028458350702836963955854010457962167708508878324308033045011527158654359530015252484847612997657610486078590551341280570943709338664133826623225570541303996359299383575023386954627279654048569714589577529693653940153997464452170120466312195428749850695538725225914606821135368507421283886826355146361621268705187284433002735971936737380091273606734967278638602013455639645765856673817415088596989930082507772327096476539100668183977505878832021679720583276112560393928070488153577985009227088186375388033910791746996334542654421842407644359934896222125622291159835851320992341989615790856913116404643127942164134351813404998767346810971131420524191771652458729499502340821581855264701309788171470342146604544677320470330170627294274746099781831609220704623885626832267237339060369509531559457696378914330480933829995905337836868476972338182952782055244212565763042099343170041964361297383624158157636104116009972301269321525901897945285815687125328193192821742304176072790267882819877514637313969262438813420506926783889133412250215569225832338435470933824542192334860559511462799902198346520074391257368588004907782864066459402724727943541818114750766918930875893193987499546219359643916186969076280309792923368035015578690858129929463273865492297551740620857976844873478747278128923365098371114984516323052769997392132141787191811009133780541623978663441328429123376514065495252488761183158884650343317781306873093992634542290850038294517174677416702102273279644155431882182550757420048538287299322772806530109920945578481333298518738801342437681866885968499876510428491659809031160346452067422421056395784161206966403218478025330029935349263076769752447821180575267376665448716450996860710436817509503189925452370711063732968482243317969503611362531416931341254594827983226323988561402331683713921732844383700095591982749623916444079692666630247309953087691335251542471702606087915895778042400824260896031202814110018760556901891082577734293860616866299989667021565002151395691310581182662930089802113173189975741586271839372562411052269451545535444830860437418461968956501456016864083649133504659004270547729830099614041985997244198501001062833050108514108122249790296443178212476250980079614452784576728428623643220522229712344167581510643522879209885267123367924133512865285524858014745426215412788713050502139262689394608576470509706150343379024113976476147433563974178719034339612980704625175727759967825911481910307492742283855137171797501872674510340128926599715978053730920824252184199972649240729847063637637652325296737698349365355011963221276582095582340809205509900007116845149363123677996891403671316102227267365557934893528159659536747168356704685448419157600961879835102928233793787612232177147577245095156261820196799602858142376541043757813023257708167143004758268650446551548941365919066167103307289943112475847113615220969280858255332994299012464597463921128079847568524703574080774407306159717260324310261436688775870303508901887524059287844489477147048736721985574742750590838203131566247782330828760935893533019363426825365396502353165120861130301930522289626488192498368928832975567255818400820159995631174114446885114701231372141688268703754130406564819775160859767555305905677146960533383636293141273840679559517529107270405846355609131398938048971965834191348311654022463737654013711407282060718389426978492914360632999447437593347772785739737900179784784407582947756124468034909481164845012124476118817782730883590556281875762054890464207588397495762128520026973274327774458839786722807918209487692958617650342337675044257551713622830941483996079899764854948524679791742348015795391471502445756350689299457830787069103330402768949110560865251859290498287802082655606103188933663667250784531311273163570479252033045437927098748290607472389418160922292541614674212595850822469842794146195055361881130679113673909353540719897355317633705802084885826185024986042134657450708812618842964835840549057437592680791869787687279667736519592845238747503539029038254068850177969748584142545597420778474858248286905485623296521285234467098243296823623009960518972038179245587834855682008648777628802371632615542054327986689703970109850042093760620654703230984035365034365407398366469811504394131220863192850877909358711953389389829115886252027025013953444799734688990494798073306602396419735626367071402799012765175372488971294704596799652732775208582894768462883831765338353199989582873543546487944654361132797503782395199759974808033338592656026764483897593948013866078986744042571278069831348857412273956880243344174683559593033810367712153651077034297852288004253328840321336341225714710359329836232910998963809232302242411945699298339767874850127209975464322827514091899257166650754072910963669571594613285521165068865362183372993437918827403138875974222093916836360919671558404038902024259116055942244863903308150380842775327544293180326912702883017822439277500846410990253399477690173654346492187022424907796292397664814588699127376819503331062492813420448931814154419100440598326618918872078569037710971852402635705965248052124475931483404502590196037080790569230671292241106057855286298907619862399333189520022968212323587647724952606570075953774621909018427265651243121333526496760649402961967413354858628961176277451759049202126283268611214179051629690291245794379718507819853930745295739064431474936675357957163622115429269742693188938673999524795869159178811997533223581137554401302302542758489270548005193179903073604466922366979234225814193098089922066194608208733246737484219689013336193204395431860986786879972788643842943179782468995571086042385017174789035613746773893182191692266830737595481328579802069749713232734599495065028507702893467038552788848497759930163984224951019328319580065055448268385053414795330887114028101424017376280238681860255216741338760206822205813255964353813572846498343514920346701770207261637843213061666059703590782853539276271267528074054644546773273042665361239366920993406023728055336642809819203324425777102194063359706870065982388546612470714615878304202795930836030637883615967404471066345595778888608834691684806845759255612454259734195433113744475650627968929316104442706956129317579496996438290817971424191896417659886332988200577615697976696684533738072628463458351651932200225336824970335927434927283655802539381159431180114180847501932193535139347488972483654663446982577230467084914741816879972239551972792077295268052020989505527267863684817698959565227362309855477457855385445603550402738561989403864997695360099408032686056254351763191869563463437665958980395490245038212721743556937151056520946651382039784290089755319747062910305329863019221408359124180643759164400082793119850981184820526654765216163357541476689857586376653614914205760641333416233388460380408625291309324478412779469314737971128518201743617946111103909951492154179086078141549540674330841270890258038065908887489915935118390082893361078587280851430762899938659716609032748898740853439659906891337827704883269831490083418097811146918856874943842463329673791800318216477586692624965110139333949544465851290120954528675821686612366703461458630602340205092113083714817595285024118481485849993950340309868208193645630771738985458931145331991416046746432161762327238015895499863633135970558946669382108961023701849543904640112701103114899713300212923622902115879140344398931206525287668559974262787102597633793096284779164949660846917990957514393572978440504605204279211098543272138203992072730469545134805273227845753998174314586020647646321069595385752005374656190281967554420801521139957279307937834277023818192705143878525000947316126830361494904744461073403056082951110987767385153627341311874144502706327112004780013147331403757032578595944423098464884977290831948461228484448465273778975955262323457422664034952758848620758147783478090521198970803198788142365931971372791381022468853176458273988355195383180744417063673715207764274952675407217257390886357592118586322721349953941044178065194953315677962683960171201286388705987482075172549751114747617707917325570728541046653661526019287086790831932161859000840693455036714266015450525740130330913017581666220454957470872094594522125865990242273275799876786052331281479039304991997575613048512433210986379519756504318320608191612813030119319508838308690933393874619221936565491410480992670517460114157621482049022996217791040368601360185373135003873818174798141102336322275326637602091303391617333390985475200861892153197906273378030633790434094444399011776836527638011779247687807653970561601693622772733728829629961004416477313085718501025972086303733569815407866478504096463248174899748362811334190937726659172645851259334307904083968095240556343211483017212262959288073950589102624065830915098849161790252374849380506755955655584047202883047487612644884164451471809041833623523029978530316515741048875496332899412636311097918554412858622606779594305039857094155348532040063495406434630959344688304483872947520498272017753160815026540791938686529032007199634263416718119866407578506257050209510048136179610293156007409580329192137101383885181671908461672963896724290318663663601044006526257976434029087650780662274917433010858067460869186900964687075252955865254771748961662624028805126264856941807923750479845259720312927433116235891002841158760749183426795083679619456914415059007623499291301557914301116099522182709202041137631233007193382263091200201897400172761401058666628185424974361562758616175043581880243678683831051584646881686731456839344062906916322606052148149339021436223406763787338325738068176077145612937162596517775933738727665096066805473027667305171745781332557307863814409926697499053944188780870324207796430675561272608634148805296086884089742499948619086057129634772506407079768171822726313553114507865069221116555687258756965724512249788651935830511195073561124257523369710480518752957984216768971550823535653753582041054531186882577840542049000090504551299480083765990779661176716533645340068695605069458131394562760597662992053102332503718572447987601640102539294170827829150431516174938582839907080739804882786860136365511389521340109267799855414031789255243340092666718750898540939717701795961238826560283159275408080310921792615593986427180243026854830055125716686655233956742999552915552830099684888241578630009586396975543455678872331663480179418216305352731862639381983474053145633545123931809758634382219297659720922048884428302357316833835348172869579857567191543561031446590349693427991347309476387204913486221536376709304143305895259003057883542593046826115473393982720035178587096823690865047805487298632673864469154923336115246051293602767618721085788758084401927605441665229511051267523101810025651093585107801634946021480675115568120160484531297797819498286346586409906216246066455643241503373636332586330058949384843716976775259158049899425207090933957735622183533474237818894940452302084573491770720961447567996430534274721040612641548250162067817692908305957085406501868742885438644237439820729909920557162417148620798177880105402196178678221072960458205955570247968520812701733902615876322674348154817933613612993439246694255231671983588052376380811343449543429267318947680866191594635084083468982687712161550190648218242792934361767297950215132562809904622193524983689582755301399723381423145297710344911297866284222378311783250336447355047775593037296536703032353773468603185294557724176028436404936307434674736801508954176091595109205177111991184535507630333436499276876296326161217439880974642734613656190038162807706720055995780710034376506839628694113076676508196169652472241111067951568490534110161571441098689965143501271548240893831252221732900215562864893153622003549399909608378833349674517709622284759987673662021127781464399050749625131475278973713789887100283130576081535556722175236616873736644496875778202842939902900828207576947958641861057995212015934099744259376084051536104043236215331492163756913329605266079528769378933887827948332783260926722661436302900562042086587838769343269651804395124825056835684280869967994924390852671637027937882698066324905718631112203168872945009779696137672149707615982119990377813811308994918336417770794689439222997659711747971290434055569212342040092017271110600684736733745519560273348877217376279325192518465551841961714415298855367076625039499337475563793148696402394811808298525636461020385661992181348490336093307501781179549389847435924760713831252713371440829066003856073122870354587766439478453224403574582255481695280760038570886008233263819246815781408446979196774421106396144090704366130018161583735643404977216968768561066422402672236425496027475013502572298022181020716992595329337208065984711639853509833919137147273860648356508245556672639098463072175495392130856832154509456554862849486224603593420930127423437716476995834969521844752586817557751480034864958290504728230478569552699069212862691069040517469411885223222994570594284851626378655172086412929299435380071745454458035441786358073118997552033162740720649145838110421104081174716214609731758542344746512814630976193562073204013170611171740345062353814949987737547780796387889310709722314122699696909770025040864267447947074587640304347498371170758573142989312159814518275530263387337031382942928770756990077617990301930269009868579233604938054383194758719110145209697817977956405085472162461964723458411459649674983106905012353416432222344090181944586294553861406813866425945794797300475713981683470732715342340589900374973467074234714871010825399083752414467580158712314194226309567437428205243541554086357709708935168864070058986286671469615951517884787760858892216830555163741656137834230715253063880920436921282552400457297239773136184119444101882716397598650670548890019558061672047812345636085908746313497058263801377352070106509133039542452580612370748195425086082953780511297779657677122435624808055925593538137230241231602133858255349219822171208263892721124008009076661224122497648313929911575950217163490346069018556919684242331110336971509435449341874233976432716224493952821098754769579190899429894725320290602132371552199955451275330864767712093645305932186946909030151720679032594531229533591496361861457881179941925900014844781417954396939933470958504148996422418915495227881566223245125727179920225664462913671237906574603439891351309763811319668288422146942695594730249639652081904725000526020742777321536088407687284946081544017572354105730067100067323874604294646449402042951710592448624826161772665521921926207552701301954360698471453486072444244808757719578976455176761650415146708804975905900423090592653532776912463889247864877830231797147363695806080464800955818814233635564604011031081791432666488965875048154983212108133575256955674390613259815857181413095528545265875771608463667884780253303860869569372551021819455436104416926604419894366621406065736982954117408477145090986779328702956799641426606881163015350884049254190676561424621859602194916447986894292819868143182454290050363440295100993531764171604324928266460572331693754483219671129472336954597175934004510168935336766856678053086764887028685608801514756784223898480539942774311289188409611310530648280521062069632503805973424141843593423680048793838639545749950809190204313271396894680036890370174716595967540153036934927214910881938586420527753803206261114330463249910960519657776177518108756990176777559009952464653144879292000746395132117245436607405608006006916613164001170591612124739747405097435850571748304592117450023079979005534411672542508530665240416507561641175093128511246158027194913847268648103121004009489073742869814177104930260090604013473574634570309089919952227311271391950141348765382230269187219709000596759982785066831392711263624808614155365673716895347167512552848505460754713777001099925085181044825167112986721465168163208716125636335310089670159673528456838355582635637491218277123452070582537199673745120843217927871996165523451365562727186345312825620515063785669880088162536873467915217602406481812176074919651664436063306180753344611065863668649670525753212418238258794359948501232525818143838700882629120755787133865319999469080662349714232009741041355095141578509406475416294896254288513304486011756913154465869027810360708448174695210046526788372504893003943630436404694679881294802447533086403454503638410212569691146426580848485656678795996058980791708631287108368010704748049212610123664234329206870965553617979545643912627429601035315323194721734929637358886525132891527329908020478738590248934420652784531522104730787411956287364932111027610734703668580818286154074205390545945705035142518456668654017886875941698683529423713710892945892597922525886465884180581339786139384112812643508465459563418872318764141749154460984794856091216164058380601118490803696393750810126164585291637796330215413840152508428208693929944654230283080004783765345289477960297987967398974668493688152377369948527872289334262813834937866465176408706063307269801854420960738945870966918920069580185859023274098125900649445521165964265052066702847624950228451796012240177889141190294845638361553142136979794834457356255564049997643999711469057616513521511806159697483779863534292338953923640663994852459711446506928775248199709823497098035786121696854387314443894094357300834879736118381012009927156207060844755152700134279271738523348148838665003981692032252056501725545637094071585846298653948763761764768599632762417575460951313492691678310891372654012815997719465297635303746186525691649068489116200762344164156761012529817024637752399446115976941021143404801884871994208487632106556833129180387474334117166047562238606079706674800687743006747782776473513644689268550495726360588096059431986841002432006630865305906691341749064035465151957595930792243299725960549023665975797316800135638545636371728021015744228732465593290333352061125399340560600147176918541454623259911289048641568411464085200682504613117768767590190533049369583657633011516405308504301258813059260136320142897617805016341620313182683439833332419877853093071140319759344679141501908543351604480904683321779963188850189548142713630220979991408081478426995121201280849110363780403510635481262966155815479640980640621566534022697723387888232693106587373079036315522244366791942638021654067346751907815730857267285788529968768388001771296170640880394145945352884597499395463138099318945921721691224965251172913586096079125796273493737617827672965784571104594986051396818524833459496605599571186628970233902585931349778273968682066181582638715427348437270663106918739226801703716627520381112366100541008729023436262783304477207104262600303119326233848418434526605874394725567204681685094992013494065395672680439455691800683143542057088129935902071777548470818360550489612269313604909851215068478062601013415682693555379435369843644927769786845390983290041258550737939683869783731603745687095586320370543055618728804990209034097648551415814086429971457299360558347758279736375039434245545963776941707853759109590183936830139498598988374618288190537045994356731234905918119820681313901014291702562062871913126006847910993300662965852544880672822234719032846440332600393258384799947035030025011343177856419580409945487212320027695665986839880348332722592616394836425472138350717108925862539019572164923257776002865686175021354684659119079410772641705471036803004022837898306700659973130348778830801494177862803693251396502469594728883994220616615411545098348029222457986141238136086890873812067974187649568089377651855597496785023659168832211071889462294789088834944171513285019032703975873997320145400787411130403326237374228937827465613833840021631493872525434557761523423856385301616768344807491340951503341794756619306697995544190033970631316164260441562949005353744191664051344877978708158580523414525415943355393373572096571038904861972186994899266041903931761466865339004970321588508816976705468462735773008158029372292530584132312525576408976687342190695294935852634844030494913022114491972999899208235699107930772469239384470976084733840322419954457475864163329861431158386446513687689092101724105794887711758531722678763552657060282068245749701185278681571317063352037274116851370411442296803269084473481201980504522121409488707701877976865599951442024099612044810636880817922884039967594101872647287909957272838485832917974849952609389565791106770269664343348418467878172495305857354155676315184457307286115090845814048880971687443192621691291986087238056792918382518195540606884058986956009746725646734797682485572669216572343277218296947096260438722817833083584894108720363789457986612767202673315170270855184945308061894854715186754149143974576232607591581919800998605115309979028048906204461535397337441405937936819610514126449061083243346210118934875623905439284703611575741294463868701034661749799151978848083240904260296772254469687638097008292407813081375235384999770445599985141630597252138218625793901673300844697608487925825810392232148983312199181785397194035552803700826259378501051164152011732336047370805990689526635028833931169070375215016531919123179246881393812236766121626702577416075353203007743325474431993239421522333401476977105593299594324738635025592367704718487604044691663051421798531037799050066636709789720851797898246607451912373039149255788508619496069312937092801999161451206295291231531734694016166666044720713254082681265125141433485696260531869646799839061836206796178706335726064586922853781043233038419211010552576545282061235571202701616861975624602916184228442695586252545289796372549803094992668976268772727067644553850750401776145022151196461168717190863718310071046633030727683343900240506912928203639577972586466455752451019903810611513112656215149057271087069641009685394095857376027834489765669410774610055860113006204338757688711580223511858201747281595024790410559232020344504952189532336396814189008960956383850637006509794534946044193992669570135415815011875958994780759220396687203818249347060857074483476682335756047343959336260726169676817650464721223577486602371432700107538252105828508478627819474457292423070645367323540061684678318037428627883117937722437935006022604429733305802249684240933745937817750074036184663795230657367517194271019077667020888234774726427367400370770022325583011363293159268937312087398474569298450608285141501596239927449016986931753456861285058879878034938937605525619931350125102608755966820298512269493952750304336838830674764403403661571702994626915591760896274992612329086187179386746665701467112636021300431635809352746182184517575857608974771597025038427827887903334220765138505098589844908401289931672462570924516228782739546334179213418115834989413037650099554390840276731710302920370186889067612981286498771470794156230055564098473244333577487611734857069628642609641228392566328604400692268926870586405994404217817558515109289285800804836895988094655287918189487542679834420051238714256521779790528684002375964640603392092860351024518914107791666451644504967746468705660429914048699349172917344809379117606607939814889065334354108507650118002784792588078540020910529508226053334161496241254990034947412215299899305328345409921803460578953624016295207477013372545071110507166445821324707407201561430174590088295626184612673739075213120970341707396809380028006793599043901446559075267390888776971169463066919453622946427930464686565171133848114854985811034958068243750620475697904353873127416582827992013575004456353499116271802698829177106390185150907528899282276885176037501939369780482032783695553661953391617808430575248736412716074124759955058544682561181681154666591733368287386323877336836543841555529993568898893964273699564036567911262098910300829345382837528104179470874014947732302143685304786308001628257721691359624457808243454981071384692128731080744785805195347289536890985739653020817180523108068051263422114580624095747258969964085451714948419662680789682722795910822792587467287235438861185963922578478200424328602226252741431031991885145214326465695319762153303689612297382308296497967183862467582672918832104830153610369652839279443330114503797805802004861440625880673801148874244059884270846959430737143642570232310382560214101352720072290554429575593572046625319984505866568520120182063979279496136891246278260263179447975729797036974552991980308975452908947194721121807189599468438285448524431395358837388486127611581225730250699027266548300561979483926144783299781694523134667786399549075508369341819040869096026446307517859753422519249907150500769668253123417625645965206697130218381133967771994231689763321529224931815143604256061001908437944763975435726034467895936662791732033146459914920904529827241830584840139630880560944859775581556971626352019807781804637271385486252271806942765562446615575340123692816228489295206446021848935074505859356256622466823869348451292626121069698942212901876342577533782185797597264794388284301974965208339240089286614439277674641540791035467087372203076018925804772066160735763295413089649498178210088581612475173161798027985327726954393729570996507939430994241237971111498497980468211523863792943737928663952874878945849553716391671600151424039198081915598010394642011518876755960192825057654555281875174680304838550511096205880820010695139941809651421062367107434666841375942505315819127451981867313596015809250265462169505354531748473627978026046203153438325342586458581212555694027307908709241110558333528062733144364740731695123010317157164531202741727908947302439393864976062670835161258700209260345987927070674927758027801723805721522744750524431046017778963694856469361246021090055807615467851467258438549321668874310980051873437601993220627969445568345283344341832801587087994686843810765061386523117933192340889632433320570733578449833464421094402470563432460362020628283396151494422294909926077353068594830912659495991322154337945462934144368084789515080704150736865331594434611894444982671348991858725040777132596230862256415157344418440274859129457296826937950398196455284117537224506143197327676816575887831379255007638895015132320648904459883208964176311034512111496345316616750653976840657451406277286692260372119375620489090473855509829970345962927447618790828847025968929391647783543658791109668280873118291886660723906038991464915738524451412981124404650303131748348370993932000643750986402549540198705294887531013436269314048124373328437834156302992427282328426466739566482964575948789252416121395443451059350020686597748417109288398689690728820310707925680333634821799856990567694086988592780129179384905501785775035429041343496995405566632145610669977331925259819346058861925753884371919280221804476587848310782223638560064582803855879835538250277055817159500636374362335988437568348123073137833976275770025461778071599956355209654399264366737249794666077727220970066934337047941189645294756648208144068617225739288707591085206450288813878529370616120360938964051395544418451414662743549280027673396720845794535591766068855549353773812451460862722951651051233447469347318318067038746891877163701271186183821972782031212997060557589201459914189732226259385890212383023913741273487267867246466796327809811452935711610959831855763817452037475193887160752374050534345705033423912249140478822899332918205816371360552753563055546585382099087649793715627838338092553537920963220597076263928619894631888207012397168783660812557782771145999470594184028846978928507912481738827416564173798225404646237479751536494401483476148827752741217389138682332055674090792211193720582273712450000330369477454442605865977048031079955887172637181989392062903125205175743678910064190349660350132262616018348386433389378649390158083238203460783886843183807525911919941439451698164098550560639156186565490304245002266790847717337235222147816200700218748092369196692735549518686187044059998358068631120199681600972044790291452087503677347805752075777114160210442328399000742013422959583420728605811840350814495973604717676917775703584247041439062968822048934352647193556767334213773272126752082785455556844565143899659286810745144538292310255242780985814496912875803093880776984121161527932616816976911433365298151706548085429206049924675511129803976305703211183116808015816915118516556235200474393311744712273212128106746897536418786884878702276950568792646959496949847367019440638917093813206418760417899958550230187241524412997742730703803861809427359868172155063170600072333842615142844192135729468263243492729630807471379021633567527136623905437373986865508081864976405750736755449966643825421910966387245919281649817244989499069530955374768322581813116281804465945203031480861211865910691792065797350572159064441263080753612931188307148585264157953107156138625950707234608892814024562416394204318946746142001341338643759449493422351367444717562856168410097047697240870934892615485996493613227804110006428865646591399630752312138955626815679913576185357444485778476795576402939479733145781227537777506350641153676688145056433611507151784734157473260050495954610345696202432168845914669011084477878197263082840282257200644484286958913448463093154367214408640491209025330839711935153946568970449667787473275903635465458079646719602486893782912737868854667136899224964444961340064371411514240513392649863037832774964277140938651818206245047200798615806592449575204131624508306390289489547725791367248551746620488738975078806310586602768175163468548188085571484618891860305281441681225532997343779220194821177533322226554046369403084552262560015753001349579625706435895386809599327890622589741895143617630775217816978406551175272189877640339032695808316332555975885503140891316029335999430925908298887429408774306948288476167509434412799245345022005115813663037116470666686802905840623987481348155932168276935953275763197475076204297038169617588904103499758114668877266553054295863735922941363968345778007457937581030058153546906405729947929868020247415809807082640258242061733125622233949270894597586669950392887913913962966586809556795188494809645921767746073816957393206289010512229120697577851550809247122779957576080870286221211500941045547459480335472369201215525026892150009223632456664706476976278159175929957729167621116865358560338987855176100941129481741464096151806943596006142755485519493043187469112787449817308981695851920657252109982871632794946006714905506424794260835741580084006700097806905464115404482757140562737794394069682514019996135694377836957638279771575906915049245666877019355673888067076567145182792919438219991304691711512653789677202890612727061467310639930441011144811886872556819181470054608460606361473680942726604443305593958890188387318587931360570837993399268191565145759445152859127348075578967367854698559217033005494146773681074336914360000645792539183242120880271294338757777848793086758712822229077109467640300801128083386292611689905504358829383365608379078133407298867244411475038404818493030465316993792936098173474431174195383041584122413835317648906939790195841012059067551439382420903459440502140122928589544466060060121495874178262418963375572003030317919382725704493829477130073460524956940942122315980929868659170495895370348629863654596158970128993108004211097761230734499374317518830488647927468135506994376116371978903676445440587408278286404015214003360075356113425515085141138024003145586750363043574009389787370595988974669565134521362771139327944189940992446777240719738926154417509459290820079589369829609834217095587924501319046133919171110007921437220507639010756539570507902809727357975424460164826003694775407021197322433249709487863247611625618327870839576283840010644277544097228284144822553030932973112965995737329954961459413922838095744367746000780252755594365400087913149773123903476011797455685111936135026676599193297327411031377283273230539633403841568609313741819917743091183064576175012392096839973418026423084382213148477857913580528467609257593992447472350056558562840195988362720022934411664805515944568180388876914843791531129299195663603055085556069548734628627400400547947736579079290604848497492085140482216747553469881588928978135060240345603348899171234254760562865978394587562147010461361236622601049996308043683741503120697410877478576522118996472073222848038023340677594367354493981389953972326549931644094432402488054663215276735089602402697343369296650004502896167785806446242406521396872093793133893434390449112258241450091186770989042682517040825759772405436156904239993572030934692711319159485643569951403132428169450587498787484002029389916551919508236261804873363401612861968759001782995043768907203433499602545332523153290378226760724364730961575965708650923792737302955674855163676947368927325811237988382578996669852606946414953367564830444067195223711940409820936013177656297918369475319424762335646059050004336520516318410901363915182205954871851468656710895089002706557141698182640316366972285368335437275225071651756989648318515872571237294708505881820706111653992212275626580026051563988723960851840088233374420184329248609767172602345715150356457863259442400253378405084142460841060863328131868655763662141408059036529658430360898100786331308529398600172922227950750751309408299884130028927832183801474842037408750854725408357069909389056292276093776337604805014507639080706820686378692142600925128447445533574436362725911277063232316353149102560703120694140659880587690922845342172167698617987316571876015419767767888612525442961098769020874547242717562033127704468141642245971502763529574396761713552779162268334594071874699011052872757378043793104802761520587098137014991973579110186597974626877609253829940976795879989062244080371390377313324014604345857772969717884243181119812760202888499725924583418606228205829736936718874979342862252127996721308416580045519218185920272489980405009102497354796377262430728400171692099718851454847630271307255455579942099216320983774631324467082351920242666457887375229395259110091514013939899356306744386885192443942056207585822578787944979702666278784728862728325840490714245276465688900508587070642489802505404142529328863562999818063176650204867221710676494166958397928760060889922366255932402547893893412009896405854793036474119852063265541261798118188433227722521475814658078179371208387968926343313825578993151290552571960908182920945346366545084981757939144781246064541355952251251071773522608228408888173767164160558557779969913546639696484186067904591099363935168693498557779481343437464018538967180405310584303322816107355766450389982033893575286509482447519049900322938862710655719708357180816667183332922400865684136022846018908452839539729797564753608259738591651831697986804536671844346725140782792362440626165832839043381653977264906690958530202976620941890524805753850106834369182480832742896928993518427938751187754611657990813633706197949857872638195620413888336814651177557990469105490934278320489157759470160278954312613942308911416732517511280899500864383197775087135720641227205964437385246917449199211672779596838366125821395061482165221936182448260296412757647204677335970731890195853908576046476165382517740083166940142919909426720421575297526924427096280189152324007010885756979543833679190152955112626841267940366363777309663714420199847710217660620327567089862315321028336857054112417507764215501837700444875837018808827750651522658542652322175189312266590900373811308861563634530675974614079654887089142013773873669668436784541598094563265974485682648186175716634183670533505000498981775756426035680852863294098472016030395758696085622820362056554962716788381200808577504022969745100035766867555368692346081764893270915348516756529785811362241170153355493438967602203417809373133877067936783667771988354790421716729512326355896642101708710348197910088724804642995446110918457931724132865490132643339885848848676273844119339137610380949593703191106212245069399023301184684611768456216498416166814439217368446619656005604978958660852749120226811805487527392550690950551125454919412395009034213989388883822730022744938280685694710287524792098248045817439322277575908162754393303668747429680124037607577825408835561883323810123436465912143379404198703615541674775901308087602211890133955719617578582623749485436166592221007240927080224023258766889107103905246604016805118689876069027931182347146946116475689734611469359055187439719604865258236210682705141432618861745635438468875171485150597634094573434436288642716884171473006624748958592544466527384167967199644578255781087159121767352495492115185627071979180921151569643965961678994485740586256768206107678559174337235213784508058894805556855376064477545888675400139005821477116310275707036543322531844976196304821899431944268647893952135153304774009823846804101137716853485307550015775159202216047961471276075289731919667270301973300515800508120902095734730133324877247071878910620633712997341674853056126868273067266465095787983944287288298686858983418934203720938273782571657466299878478832124159010036266754627358160066116616235986850885150334033692989945982680808328377086796191832611309371456870917741991433956738578676472078694308651893427855868793654418979548972797328447837950155465079943471461388451029013669788107499138490314565657766636803407819131524814548715000854773107047857154505737419297076733450800560587963811538893765648255801692212298952755307061738059508181249629397342111981096726073847031490339580113712132649374020901495002036663203350932203217556519949710927865064008652762341519096067697482288441730396690425198554419222199011189942067039224964164100487961072359430497070199175266970187652457273018439589000763275502234434146672840391326198339299000178293200313903469987708226725230481718269157696753261661040534046784676824634028858291411238968896569137392974720344117591776871048977058676872467777692228557049389213140138496324361322910141071182956381755369540447284405498035193479360721446425347803829635116395739583895212012511184505523719403475373353788186982630648204914086886418506387847285586447717593109763657531604816065096330567669868566937513641767456947291558986233539159316627504244986411688079889857277637566719762252985017991514821653443223655104758483080697986211106734671733728310164282062963398535546223609452967064721553512363535597412973632555757951091167692266680043127410242938399477029421527955397972037801662003219310781323775440397398840393124848122518198154677901249870951320887489664504995794058337183831372997801016161994004087871896489642187663373631094734744207896318588710455159782505208928916432270112430044567950070688306149531137928243605199223660839434983499952083815458257790843228358692916181496508097302999932401907152486150730847360039466704709670067018655696227463690678339810543989986257373674529535635751749069705834462381877102689817456617890047223863637408773508363363745490089383838310293118162452917727407249108971445518708536772194244560972339797985359040449182400805128186177987901298154888365848972710573094844261958358900744273816945590749283521705789580215647158630321333844637697809580858693012484755538992035247402379938647763840579070943446734978320710586496055165610994261632258843004794541987509377674048203195348747362682232133652004514806728128456890969407930508964840733648831448047330414883998077369238831454522034547973211213171974805166426710202451995281304043476433908857929458754843424566953371459764541935710072951683958780254283571105531801611672132782058989291348549483761210782720441236380483535971559747353033721524443877565467527789116742318281300332789283618964420056397699894098548851890396033097042701131848318190598025214641508690981063243482375564754860922799145281922745123392757341616434029140758286236863573451952358983397292595643394503244974778640374730345431261422661739211195861961727077874527238971582361252776694863228550717841942214060069970928645546608194924763811158382727611182224593570642069219317670315893081868163636654465857640592893860087307570688429825433921916549302600516251286717397845816355309080172312066459163323066413991231665745565082949420083293559990369010367827176528535622652669381296033008934892288561762424482421604465687097135382444563032190708586697185997946623367569020833370882555510581251732456592667757723544705403000340991956978448166480629804669589991940376208653687848238216609241194243406192985006165653533283933847732627311166167797050257170709244593968434679449226627924856636835288562754743896967194440380287569514324949703094012507865336483677257424524979238268287623142789322972437617742366677454966490345023773878436588426178325403129585002104529008089137670358902724337865446825832097939364822736045377813133031048758060092252606302068209677981566689120703249158380184199833261679402805072273615567735074862848123970445411332056753784605481209808303375990219196165961183245084572400733193232029584499737034116510866698043337938686305902560073738832482692679861197627152438718424321730671995467896319915075238655523074347642812211564463189830364714692063610563382192814308346286496042085905764891939690123755610891535648289209047696877263282447921140711718608409445153966357072613523761390574932624807760640600820637123841346183272655440403157836351797206554884578477113967939105454601517570221045835771108829249863605820318100857612380263169725087681113310031317971221661245930974859362070821018186666851725150623147916217514068584209254086360828797346545899203941934015142329761728333952596936577053974899042034858393583171053063242694361654792049472885877702096767320357460170597714664762866983927188471099504454763346769623677120480206596375451347381510842385046132413185371057459263814920507065951639025136395499420891199831144085942228798296260229782671658298390311084000493275856092347500324646858250267966987714789766758175360040830800635721874796297551768707546850310773873716245650270749035248033222443478055766438914390788158504899675971701663848338157519092754481379071924862671588704653582098272167454999344055789796569807886592356685157686540683086606061850168934396570117063798325268505342173940045693149881261211218424569138656597831555281985088438709239546736329491661254071654449194048573831434979337040386926451897623509289506280756969198626703403143417178068413099600501733869680324743549971269782395752836125445032017040249022702977605912960329797618474100013302501680961211279530994542631747098804748865526493777701249085627948135705015487997758596205118761082228549297943095714975895762667632605474016084366521288787779551221357674994432087515687193819506831735747479009296335229191281411722164376291666345494065559058482572234031582750668423453470239282055320231273500870634899944284399072363407201650900158980122967274655447716210090372186650375965208571272274963043521622894073834315952638699803407585912026401702802638798709004078167174950351686872074963045559088454221935098928757084329430688560320653163419581096895742905239346183669121654242037956528669181697060042435697477450960512004264971598208487819497696457995559754585248002434298091493762548794322278021038514576201597768365341342462280362147198608037270868081006151457977124433066189730928078230179893351171062141325729846293028858341609449821793494519302370939284839452360340405049241293109389401363556782119434254398167179476674989407384996219134041873831454615484805792788478051017206047443642510050628008235534166922573198520051964460670154849033924546188117356702789480531935167417291795506751401688528834508195919536351560217661721187661753928549575141751388946041314171390174173871647144809561295263545490595329290318457126675787015816681456856336884928297151836782800785398159006142183525157843103113057083233761579412628563403676832247166536696141479281971549001493692557027381230352019513774716812962844800123407235423517262059923420972536026168076639677848770798220997747749625023366998148665987708008712312403064529684282412125581221915916856024818140997143401039914434959618801558860087136438886239395821241354810593062584884158002002601214399197907006360350165190536123346976146110844587515191526821035713623797118734700449535234579628771896384109378302618947011293463013912430441008386564490635714485208610393029306357396075299566298578699067722390888611924182005670435627975701856842237970177362204919667332153942374444166481238678249721048474919980607702073549673433480956274511064683480264928287433003882740341350347707409768618357347512238714973770196132306777040345418811569972766667137473615682118583379498339353191492428407129014412988159125483107255166666463048295568207325636528496593828585745654051246074963099661357317072253671047023218926885512072804495809997726691116467613219207586731306727609594852344722406511714109659735015334632267779553231491058211279639130832653383687653900812229720685871517285571006185235285927516266174383026397250089557164987300154643035824058772912181393046192999210607076343804031360565666330966058161747695331139566189820022847777328633339466967252312184130689922479502534132775240272069639003278972277684689735726752698615652391588878200697763932652884647598175150203497175702995020345480717180654116693381528551170109662573711937717369491861669920572268855592517644397696243403898057329778076299552908034136026001509655605056950755387373983104354716449786038183414439652783744589017676001266330532643040256498516174069616697973353720361594703370514352027067446883751898858605436671247760891655573999752630326699541413310684727472816019844989173371596605853662572302011798678562545810390263932609967704077179248319579053258535340522508787717236357933709682609834867653164541958151746803126738943511522720617504073286195197339461087726184801477510909046449913137495305425286792178942776685174564953832844706421130374888319945398023305247352975571127511913488677137938532473105234551735657291140512311231742976000525048936533578964780738528970845526648085042948666646771619424279061427906295795472474107645959909962558872552441971288013548241833734232056037613355473187989204869654047397268135113635348476873889461618486357846984673271707151489448305721935318646486835327890085048908971500634126332095135708573740260483950347986848111156896280395127688174510381301147416996145794536769806405497460835492025058671479898772667069298440430341838571876128682582798730364719632395152024752613877743450960941905657659343201124772035732935570622196745784326718138661122352873985767981855455069723629164859880175893844770635676512665469892051469644912190964497851804101072743673922797355618502626109218273854283681882392849027027451620517589834703331181616371255063130764893986888017306248956757865157988717734338100390853620615552491404460676133902529701922373566089753558392133663968775894696044785763903811219131013708443208377248528724903277979258718399143520971347456337682515652715394407830688757277797119376871389730895086029285099746960765589561362778761991118897965721269130823869927906497255190646230743756780304202750069040716062460611445889737901174462245028135083604927659198675107286346229180146252215077780778050410474586174728122975726016789780168364875726941529958832282549728458171424354291176612608533748349442234793875698642073338711086579920265641799726083500989987887623671297306682728779265295390498072474504665085390534954127384682452056744795089028458493136473748636728268957152208623461921795242757419992214617916244005908840605822113629752471559651718882293743259671371181966130573690493737861816162841223044772432904199486330979151323264239237465663259581139356251391858044080052889790500527143213672682167802139663975513745592692014741609465235428835656104653728210895989046967432045096845685438172809381639772224496664423020466774349408937004355494510377711031456594003788256705811596977279888053311754811225856497188412463741705810275237574302932258955421813884989626126470596777165590998307089570517918614464876333074252519646761178550631192426153694787770727445855747106938701372881108175635480644608283742374782854801959903929723808167236453471941643128487853944136633782053407365045333876932506603078803297328029002515319555157665780057422958426614021824312494911194171796209124360074625618982958980657772472044178122638106558688993805410287484195994541424923339439537243562641637288388591357221028994577831643439881525781546107842680374327103878775500937971262770847065417056810391792610841466381701927388985595359584132973941758036605888377110540122336855660697122550477177648454652630374090002269675443092476709821711515820454887901253767287934074703411541348300317690136234867875167317736932471359270189501768939624589201243210945279579513282475306516823217754356753710715240136633858087407003366530842297735710336144226615100042208121515646979930421330248047376707276957105346101397929885600208401877581212286370565700210329594868957666501868642153811642106129936366910421770198111724988551975334086853762768379433153433246966389452752859317344465319048010063375227510405697736575624630553472266135733098539374815801526707127088406443657694216619103427571994636294073159581856475711932404696657986099547957677660406255775329077924955536566213767203083370343903667759995907753237907327922689527655242175394005662218793916241793986375608088358141049137054541281605617708802892227824775383957329884870514050818449344466480880917740292269098858963977689764979116745837614311417769830942615735363412659429168202444129195290435870301761889323088178874573697791965303023331147998726545081088277192243819200542311772034876603680948597859444597294438047019332479367332897038173439113772684025935452201249692536521854640962768764697627536895786119996057064350249137312918871913236825821864124573841373308893897295658074663780626263029434017977554480303483680460448554225745063241254303332043470733435285603739792635799206139653295117818309883820300356463345654942430596458337194517397489525470679227604947691922761924412133332110161258481501577474017112289379019353990511429005110700100563935824991842388565806553911633211676931321642140357113279550348968623807255722059081625828816016590461252980933691119045728587314060065259000919823548105661738279274777006966562267469011115613117343531715608475822310252079225570190456835229724443123716408194592229173354709321120139601354956217685675753649831650595389538178894112604200962949638923653131009315252043613810614072525764031574891142972613331131240190518474095079972849545488323737098626344019463642681360102695235166336189124477287782172346753808636930746944675824479904671748929747912317264975826211661737651609207837439983860614935909813461107897009044249838808665756499662582968190930768646174828375483987008278341779836943197980204563306764054072462999735174652251402292813444077767487549097567902435545032342469548507866752871316349927069838154933466955809925252400762875491285479394965467341550036316359482930226103687863451507192349204568955679777271422562570608467840089295877680078742040505482096763574349839142649862479480373026634936991371569961316339226215046633698499501010761310575343981323706823926202403493882643775684562099509716953995279511407972684369873907163305864498022861171959288911140432775539787872378331654048476483106460058885658994099919174831484943130971800235404936828281151566885228852664713404928981816041716738998020454361269848322937713789662266739941495451812314467581957287771269791518322223451960599133655300194544860780762878583664006220235231992134632919882543171574683014957750548180511646323868812998682363048632447170005239803565342449379091334388097101047916640414238470681130349887949625764712812362341096217006052987848347340568496100646142941275873536970608010215496587449668611720389551022861237044711384160628367952057383035852110750326900226957609606390660149793653245099540734718850881904370031555934828971961386547227018079621575618063542849050290421195827751385222300035485902931049189008595672464361669165773682019838502612644122136190172019279918171532066010948058073285030204454980869563918035286465807504952518004469147105224069226088438185040338596665969982200058807925804341591373803396711371718076597936829513090215742162550986447890923725154672150004992329871707951105297877732194360733275575866819793174563146794958077018504935871512241904780048406835786705541813919119710721730698474711090631194884941491453930715535152300684854179112321969158343301073109321803268988838100103998973735125337665186868251015183813423303991143155972083705957040349538592625757290395988810675421882809316475329114160332258401298651084336292464884764343246670325547692078496270562707241220110111022258514680933999779154007801604333566779665029675147560628327198589198424024095207577015004620610400920669260606081736256764680610613154969712235632054508342477304890160613193099942807270315003300844841013139656812550261105764179080440083953664612379237452611934757546806165531681509215232647843519903060580017183472049189431255402954456258464132126212832409339284216841218820796264960928222304509398732621442329521705185732138162244347995471370488927147028538073455375415372871931064648557463294453441326907788789987129593036357947085176260128002887275549375415054126915966884596880325344138556723212840489463474570181617950795859560093026988270812669641766187964314700007537989138093635594757257536902252963193295114113336306855146670227178491347420717200586627476311022532409305364460393258645545126422684508488688038089067298177973688260897836418697147188263441363975264979058962797350582785832085577108894565581872039688695876378553462525276944620368467102691402461332391871331521039760484912380895213977488877109456749571436583520149495211391337700082078104533690605618399090704944803701950194048747209260542547781743061278976623999013492298741229900089629394482877762855589495687919051676148065579375053979356421495568465292649208245926689454487560663613068124273187693464922039433769740508992458252045023731991763132324170106514797029093865149325816005736787780035218927456197515591290583630317740751385046193200621278285619973188636230057942403679685884208468687556968140798609644591254164924720688305893725516466074828747200554452138472352911604768599247353987420288628623336603277839346625280262917300532520331189310684470752088040993688653003430769757910487035370570645585600474089053948417050025395700116581530448611752628942683177930386247867893043907900138229466589614315142777284531534840630628264505561356502005511074330651380680429170929551206156710791576986904506801963374090233269588306991139586127374619496634910081431965137243892802150810406660292799029330525810489975077582268817508123720354142855021380633249725289684501262456106935764364220180328295634502059393670137352673327131079517696270113896048395537847896470220653528892050016544615217257646003140871637492236161243578272259792616322878743705159242583652983962284778152318162393711091627981232300279661171941893731885310338967639157626875837404471596777081575995158899534474655877214992498582232270975883884997537039099193261874178754052495165070252121817263143689323861803379753508868456578958585036074532112700762144450959385642218077244291383098242285387523251741103343575793914349752160751717742815808013708387557765417978923901935012796279918389015572088116966074303722599282564446103311354949502969098237001755365344266109070337196643523589230921505834372277212516747842585462117170693683518001339614086882257253585140975257948664811346343831200864625833134620606767382419995953851346829703425908708351946677038031856991337037912195597539231078023662633869644761104917693949961684116889643564744959973658179105991914996358756168865419659361791871127272640931704203716875252796286684040012140176218448799179915828554547845789758721203392047695096410787510169268160681179189009277188776658633491502137349160736735677945260390775128410741797015727700662289819379004259950451619851307170146082540473463446800121191925883756988590025586287896668133722166767320516537059071988218649428458387631677222302377192984056355924158691117533251084690707305793710738608155157769435600842152935531743372197986923713146760750111278780669939098123342867701731727193563744435644154196472077886640284867824097297896954568587756401632553854888481538069069480224928752415410482040796610321510007156948333082033996058549592468740567958011102643476065797193119965794904592865081106185119611895941576471225686988922900554864406924744615248114425104153437034603311199842246827833179769498452768586684943564498265328695925575984464036264361968268428541227262347189847890070734425775757704532677069189042968777407147337033308818449856815910666034436017091418499069643289338345357398456112039585503071647459641770370438657114727327898546506454944266379115315105423079753129061593247315487470690274840965971368429148841587423221093011300454027661925496440385714012244296143303364398659224639474237823557646335779750781032952889428969227982860690946539737477773461574566949643046087432186886931508057446704347557956762970789155022619385739569554898482447280873344437899746296970473413933168220471079775246241036234940030812937556633222994175049221244061567186719115989536937288717675053830595406421787392406518959522080161343872603899677532940289999224670630896201249668598609009987761012141885962880240552115862419840090715986886100863867026310799457950277446606118744582068418530406250166621889972718620826007710667766840818964165415580418463853696075489251388001596261640521147308240435370858496644244864527181062288784264385794700475669054929785687712587646279961850680077428308352062301635672524344421107742717280668659213792648974201833384307876120106448081945892732067131736874224113643006313314814957383967054832336017878495821638892126098735755651718776123509332193492626233848255852444241184715617103806961354599231777120638264342554063260544175899484225457861833550220317309265923114375558962470018162520524314820113918609939995806540135254738291199213050591475128356172707117923181976819293119251389506774056146432224305594720160789899723269999142306485413370183180037937431798052153641328929669104114564099617782691495684249573446656311739309561135948232023198909241647232932475545479399053998417543274052533210978038721707902987625046835487755184112041903729859358935648470081627050674667561422133638195711903808860375328117333887067022626558847989148244050025587799112793250380372796967178654138136588983735124893912026352744500095450574259107340928630915372401873128564659915578668600341670645476492839856888713719675251140741352596426105143374172526644964239221981445992397042525476603177322702683111558497203540354349837461847111679754728244305265677658050598027625720405125161076668756579397703763854771037810649679066384499824920346439989809228523369416695191304981953246765985187700617221987798606060593435439983454883369572076728926735085799370292550496569764397613156584841750066899158419523722781466286148330532499081318299846193116703318201996304972732482131596159328874914429684727520700956166240755701234152165815851433082576257772760449209643011543566327589916637835361780825000660280090154808841446450144316933830474774297211921305234818918815165297413139389706311258008372440738337964419865553252968336831970792521957760259102450939416542092870400199671332193634075122905797825139324895678793319286046565954533890996867028876855468903764167335071920396939132782193790403789692793522500608869923788736017185878942509332610833610776127253373163623650335001840791836397665179647175894458023427121605030056864195761531223893684209569718699011519859401288266342870157095109514454964386670009269318363851199527033051118097538760609932319585413661274826487695123172855515874713716225440755244622217787243054819043567899080363323033673724218509521938970059951388346203539918428818176190533053872428558803367767439633331302255137930553006359681480441473764789019903997300883392070422897293259062775464946660376362552997060495557207793972614344038021422026089340388437027227837713422758386921314215823467154198525922196456085844340248872973743695709237085850103202986143620271032592628664627512903708660330525431480806067571308614462441616004547779273000944558739781073771538900050016332941298692250295445442214953301262286751666507822656506056176284211958098113694759013008153604670000685054219546357922446440700608415436249625252733034178452381176658096076727255467118162215413976830082254202453463525635222731085578903595856994394382110738921302035962461337750346874985628819332919573914646088189187374064898311339393421730656416006924551955420104708290643448553883481492730431758899299080461329649570901350949737282910397468685641467800877099941540194368351826755237057266753127562651354343756067388016377681097674257816040729072740323304770776468841354011463105379673888158796090452614799812602546301476208400955569928181017188106224723056855221664198628407224312704143485638067667554273902319754150553756309747947661425173994594222412267221286188653930584433428562686309655897762575730411118614126618281788480160722634469473042987423512056620979761508373382049338240786821335372915423276131645050338390967232713173540103658084827789136206261324663798346393689085056723238743600525938527966569841988804837728771256152281908860065922116560576416598043802380929202217415931844750598604398210431251191828036129705703688848000036834155140047870135381427930615954070121302551082994179041642764103741464411170363300010085910311523191203973172611331734722165081841975760833043670392639649088628098044912546351367110816628790688223844990714185636224192758075228186893495184184233691927586692497981159529371209426870804356286985965418012575976061863279036332983519360035966926939945635874218492407571693133803892949554018757448526802372646765478804270866595474983286142818586316167953679727505790725097596544793767314816709185345438280399588436420722376028137361233444338094833274383385796419400694200308973382703277732289686130285361580183063471257707939959104361864089313010662907263255731035315981335845137339149863436427974253609125913904615319370622363669447419141806543085395026986181570610191124254302079450855427251648818320638795056605821109233320134143306790002153019434071553301914989783442270115654674813437292687334582567648117254896019643209350366468460074960544137848090960603918356401887025258552640249344328666577891961027648995237730439665602437337881021501096736647706776203451812095003279137936292212990910095084561151100912650692939811784061789544503538749959971519418429342342134342535383142698446258773135963212769251391024622743738116939191027988589195713842165976801373275341928478449023053506454435525046276120782273661226022804390958112513359190027647437536740910141749612079103244198725003408057612426637041317177634635067464668384279659190603138554884094017109006105910791190677715863005560260358712829538674031666975810468919993556091265811577784320487128314058854556465157725408351848892981214078557429150320019682179965081107251986974483433166280694991245706170070415103487316950067981627682378142294129441630616087983910093278826970007371499538949443360542076588516689366035762146543413552507628334496590803720710100879778253780025589800404488505844746590845479842221066392351722389856682209663245518813869081186391721646398028416807456440465069561178858089177320692633126633169847584999010807248185649564970921585841303543480034918971103947738241705318995481013521419166330066902479378393167962547078240712321799761352682630812382593885527914845811123406160683050028489655170471430455666152281350512736422268824580089997414056285131783564087026249956432622001986774698720086858475199369538273894454589852947176245173047579071690082105098929639658937507594185557096348405890142482818984377776964931855342466651325286566576878441781092957578207887992139116009079908443892110859058484185857749707135936616836199864350706426507335493968153827104726541311086374816594021969460150275954894753148939862207750953392327737206889836690310992802078036436407435635486176357907429883761270246605936733227781004019213199553991248921747367845562470883068732410970435841912863791669911883849901149276988926144239214800046833580428399443626569082371042704064409083506506534557605997962465589121738927303865363102403780639420680662462356594390616336067179990920738812706197889096177122982784082305866617046310985289065642274650376102545897887986215006880727258618307258902328423701619317485050683409773264079345744367703502330534573205114411124306015332618447196050553346228203482380923057843952629762939956925266540746384491216446217235690083893171938381072140977539528212745070581984862848903008567740652609153955467347041192352908110050927295372415323535404942803551578507279933633513320619889811544416370637617041278089365900604999549109244414380689967609418663856931537838933631390055130763801791981744751046285096092533171145796787579936635866559319450712658858883049477900452787320812770898390596790745381129003908491655226429086247837286793930687110419021088517198784754393271738202026115426072732307845958880858575505373222003295434811789645705949545434980973645942691099047018184583792738162228406173185800597866756671827629651438906802422948445878662584983349999733052711960453003322060887845354344323060520727433012391982140752447590067757742094028529686773319114284744984156850253974193659842892989822122635204361412349609656799882294757980904471872352408155775097665432929312032350799250408051277611795806696272803956697293738136157021512960401871186304157835329226780443973469187410267448202628670867338460944016664648222978421280811213663490247316054656849848588192265604824822368330996016551076141527190873858504535942209605816472926176843337098696821113579246122082924485930898241580800509326720677187649406965594355497685298317342126682705818468831183751243075682436171572872498095493788411056389403156303864296982925981154185279412535346951856118401912371112254256362083755584270165446897567558604736409508248857819984494641784454336988743093868160930006135536428618804223511578968128278265636310170357902968440574348822422077606582046040278184559896843977155445686969311577322774821750859343088545990940630984578382113265488008112397117415054941769077189660732968115813521961736071609155476195534472349135256505785278976177909837897209540895276822656100279939543104376777162578871402710349297264072150119112078221171392353630951144926772044159181394415298072399865322117824145388052129330290183857194220174741851560317270346075314121869062570682533529820506265029033432518164475951871847455337488379537538724922510001972148639686425068640153498838368214927980854276142260528600655611863920545664113956790913566359650486314630010868088173685395137960450671268968078853662065937522925754479132957926363848332465812039712787326012551812478341648348895287831577979469565099793775565456646085815648475706578781325138400230937296639384089264294663665318167188201546025856257157630347529865751238364792066670784887074956928909017527838679509281608577523318462824015922627833411422284021629521710867496413742247017541754788140120462949743870220272859535535575651237540870333425554438498950589989499491955759530247984754874793793302558609256756033798014836767475576035534918029518997847907997918496945764274455859154353285301374949071489875070230242582542984255338848459417956241132940650933539157376306051697366072424397244010389902600377859066054263608550431067342788507982391777714586390295612982044842584304767492084262875384013191807880100631003837628699841801841751177574907072866567442589948323138318118398688550446374734627914124372696864732218685919436583051172215849068553040645348953394697292749749977691754759730301000896530030502157137465811115414227363118040442350777408995633551004656437132114010394489056901274903965855500438414669220586124051626564644166089137156806240283893144408130863708522228021543689866798578038608336285701578591739726990901934605238019648376331616103812833019079989258711550720845994359283461439873646962836376929540590409011648748119026765578873960885417770435323045160942989895312729983040335435569778255741699964777366297738305465410227882096096154329548012432833316326046901783550644274552616162306118866242997600188316539226003370125658059713975291520860348970487523328927288995969814874145769328846036364431735761628205655268440380325217365449738311365252098197548899403090369637407114196493290983197989621381293906042999738222698699750634602158997813123194848223259380658100990659379755008202409431464575012236795529841725606763430519764815692033938160281125154598952759497807105003882652852078637323395875825936038000410690537592918203828028248854965152917310192664824602556385746863560975697918155804147290004314036071370153382728400081251874786895676117411300029740389118931344964991294238255917990971173280418299805770688093948595074195793239958197434052158383229093533577955503879294888280932676135633213511797691210267238659117642163953447051592434777555523000501577806728359903317202328181751185515476575406949781608832500321554654415791198895710703641029283818888454825538877819528145322772274984284886710686545631364748644298552377032790861919527636252157099785230680783684045558049775439997133098380184674229814253445710693540612655930528688310412242711921739967311471831525666210003227620546488518893120941555787858419426453964385308523639761959590892392920992616819292218657865430391586576668690052317624087779187756975138252170080107925831366932818374197601378644322582407730736349268607214998748070516448792794686766517314191937835650674230785775957879946317169383358881527978041800194176275264154837124517461559612587070223401932704368165091371994878563958003290440741849690769085370333549126875314312083488695063512401181875398271064688251015656698857529507082908731817408196237780324399465749561392188227987767788793019926397341393700095169674570533231373096086993225830822968044951250832262510483349557169042342088188194757327260165191569867545297350290084232398147823340629186169147299920287686388034928034756633386481004791003435463294207568544757414233636774872690985437068224331034327263294220247650219776058220291746416782084794417955760263672825541820194445559586226378744671408822509014828416462289701471168762685418481250423090172398497606120148790832114925462731475984015427053145355455646540884944593382194099501087666107250547228263282050669764650411233099981866012225065217958855038763262211526466531402194474737105354176506241781365518809537195291793255230369350952464519841907127056183869389528947023505514533744890378085501444821221335886284158376729618057769743023678807293687637149455402633991563952022837219913100471557986878543498839372053609088967420535777828212507073631790602061073971518935449642441088779774620574196563284771647429386780848159006756939092947335997445103512948873530825147087378448096007307715014267680554642803896338955932791926217713551675335181404987983377083035176516469139549797609286488446359228218938682674075664217891704698868591391791297326516520546031674783911549718850697563872186594938851715265585367437055218982897408504754512221072780620354409589486942446433453666607977251933373913889028357572490944868146804672867470839397604030592170474300968313145146864227194609077006372371343615137806801268557875864513084445350922107227498844878167274196421116386470446946120007995067052318041151783656751242284601304759981450775457550820061305865438516208258230027247789790151985739455187000818171359357377430438855862947037722460751175946653242866419266347111543334700326568591070014741994435190851064928853304563664109969016351543296313332005239846996323525213022251254805372554919176122622355056412348360059299792463135204356512683169393970775875736758738807518037625289472848063781131551835190303477212535704828491354935470533889198586057441389614904820978463667935253269931368753815228853861946309258519342164071616598892964569022233265938768932173506223894016509202268583294065122238420086210431435326395725481054724764322705814112217525840277411086249278613649151626693989007106868005075179533132096572646989271175648927405502092690655488524312798893361780952745917772383557283377857879683668099503458872846628832836708763654421905450461667546044939726242921961686906442619257585947424140045782930291894906082718369659408463975549475134202385133054406816637534840625619176449106025711282006815589013674238585830921994236576384062082927640795543534262166844664366461504368915252694942310768663413493842949916633876601397554957519219623191546847529897903698545366234440046562984773507372810165950180388227484885887635957411247620914975921945051520013449528698619394873057192306093990872587212232262773336605461527228510676430326541723109307614309995224266107554002294819452865459829991273793435708852301287336370810463076625343138167683703325635935139163099409071618396815928157371669871648717245877480158191204891618221077381931587758894316040614583261726473291313702362731829389924729555735470424781724024357325484243603923384503057834097419126084317103390427158572240547204243179460619666488299361317340510392256801073466477754090021661350652044478804158137503843664390022709926497337464138718569725733688417561790957228676666029343682427568144832427902280003155903346573401649066639576032991739749548179613461809639882164748244154818988954384412023493488910016236159472748029795450430615406157629332523113448065095273577934375886673925269743266368656116881904445039157399278597340819501970892014945476688661886922846743154201770307890317143867315191101522709724071778478700829988595359096522601759000200918530562884260104978567372504133929767727114320726576631347601721625617446015499680849397270813912658722790427954994394835313967694545334321931736428723108585140203025975514399457274671456752431481844751696662597160051461884436968672230042207516617798866231108481945390289549940042832394925348969805593345263914626567715738892813607413471865656107011287545963664368563570576305074431298042839824430932201067189191417288243273149578327367223646947247512206030337967582375172234425797700821290238232938246198816613386081177523988535956198183027792784498287865492072728954053445971752114242731948546354250341083291918378044753618765012044420657084848672840222687579946824878575436695846819746620405125302798160272641249808488298353479273909290094650609420727867791881358838708697474267515893486523608128814772268620129983769230208284098704926860928552830314797163660627479019558398679720424057413958305906619247459729537843507034762229239414499529505205000114329915538585472882244442747585408265518220254855165781993574449710888299285355783788369143381425865969835315653568587133845481006856830704221238999011633110395949659085969484491319094145935903663794755899308987535985034405354113692585938100089243380394242736757033705482039334502195996892211954595803713228774969590685167006351706291734476771688220710686567592604181272987050277569975886710506592068985220749269098704633233710898263793342179789763967790874571296544719820787231456011261440059018372970904897153495847529739425335537640485531395958873424799879003917762591312449027171088082137356197023070257521432415841986245174290108021402102153416957050020493582968211797707178104584317719434352486420859909460542117280219122733104907089187955557258150127665451989623615199952713520651877472080791967618098509331101425482986189312276454420400464482397032220758578107813644982566973352824679500284709423192282977294910187838127018813985733962970791039172917231862584156510178484058930101865257616235453047702284265660628450423850575111710383980213503752440488109129346389279792976468550855905172631576473555421198273263476241494871109516696520130040129617040244160623283702043535901771830291806768287770110268440921150310053061677828162172769860887799178769898793989623085754802091685602818066104266450805428717476503434070234471173564990009573926027525598650855605520512661791962021461623535979858551875910170536325564943070053016983721458525493208146198001251697663001340963367514137031454691401655840513068605854191156247178189142747571474734039410108832994389504972039010848222482814662153521622361638361244510931789443709954313746855839328056560316676510302623730574196627156145634085770813014902997274248003655353315673764398559466842646800834008467065966953530909791816322935599785976348281831153896814065221288808702305217012266639377264887157601493511886617013619494521584665209782501228843171503034658922801649825934580112532995822103637951270127752530903550136183766907259684867265512666979610628592085497444210525230605366576752425222306002158213825847768366640921542394172564795804624274970173956448962757204778854765542106804977511325393201537212919805948386447920419478862907037300538146365212993932101456439406096836941586487826188739900853588638643570576300734829715654582393866995159243602290112864623636265573295450234421091891485034850451199082022884150102708781980568816442845349062394735334877610809212886997198535966579206923443018942303217072772435404563533782037955994466257875669538130723810153192183541940943550918983367485592561607245834778421459586630921042048334161614857352974146497239727485380319960758152754012841265072108575747718979113023805100629592994162185619974097923486058155150708135341296776960795535606958465486903042416743085677370254615104094672258399274572625452474553597515865910388628150525537129324050029033708426955504344463188197921106499723031511790707158363102963698942465075929221588051043257826046286295267284251363695690218084965066226555213285468978444266297748114111340851237001517401948017741756898512251678807506902780770170238843963601403372940071918836931025388704103552289866716814204181518225836414776279090712615131376510246453489881846857265003852725039268737806069317998514771883485230454647484670122782614257606883253970832653725783513084476885964217461924193355944945798246769034609295598120465731383519645504160218655339502083039696034436139887376205480318539081620428400580326413498715446631503982641581436716126351267533029993528062281541103383588384662099742735659768383450081395355262761313297670665256666290014852333412210443747550174240535116923670594036815701141749923344389901068448046131868751460267283751053303854952595997993060404495929212696644355487657863681113070041563803445756607290553728611840226537082863798863781808898834977992539330131984946996411016633485340268889992214620113655428318905502626456137830763635642218954259766904104501752961966539489163371636123956596193712740076365686747798739446203435996009299310505409661240865301579460532665786136707038579035302715153472142385945359594284556837223721014625484654421040511600216257801736866062604787412351014495142623072558354566329388388568329404666326771461281232222440514613661968620057625959748015271190855900246594285004308144816399041947718161446779110296721734870285051924761089369787208838036123708056897513149348374880925427953678259114955542989992559299005345729505223817855605534281949637361742165617273510232671548158034772906796863903480227988274333097541232179749605791885928826915018679297737658397149689566813651400819775039716788461018749423877744642274376471006535261734589795680744419180093902150663163565147705135631495193610209056021977019437605235237105439083016669616750321475905439908182923627421660176973210545767590873090198506680393089355964578425393343688602686347734932950974520470896342037351727868571118428442851144393613349710439397977387526905878448420315649440502716668930439600780644450845113513077381845793031802997051258181955716575227318742494864412272184415740452301734371586470914323979832984123892401545190529936917120695995097009339009695789278607502862562096701309335395432752464151162935368994075286335927498326249686558104692938940225359968188055983634139464049298808137970694560944288236602506693385200071555741182467533406632939778244561763200740795893589348345209119973230794190060203927077501819593528337618273335753536266121295072375833478070347555066487374612831099266268914931938832568678866429082660375339431669989744312314769496851659072023174613797294929443067822166598964483223200191262084756318007241883590620859520667826242497161086441968904820213211046267310678821050933974635152485925508591962183800100045226561586304011306897004663992761327067830779024773606479857935108598320134846343041632782932474464595856258459691836044691927808719022325610488794257738361161628693678505695078120020315372356230092738512248883374888844734411090958346934762086012063691410950129227537997429802236662799519852032463903224048912299261329606748689512974195300102386032804251673965550085148023353782042431759456657104152658643728828592921978014553093726387341203581503607344544684913426797019141203190044580925013220473485998578161035468121717092232166956793379323116211284737086378174660887693999659174482091737223902230394936864845072782020624695590575709842266601800666900240933001719562799535422996044558015154381397206694256889956916462365036653248675435050133219984562244383813344811927491721076488079561156784718676258144814375720331835651137082480225221908235681365890216560583456450894971658251078732553553319370822869512768379626694775248497031136307531587882895315524812521667472286119241990441757755691335759525094686486628788823009027322399244367162374398015752070723703525893030456038582199200320028963739899055961262531883935962780396633060817457962634402138550314382556555998594597559520867247464796456900628026582329022620162603455752611780961868763293214255769803637260720909303486538792192231461102840431663627022667381789885779285624889904359795309958897372866051618068140887515669408939261987063964308501723233516366971422469635964556608234995355692900879378773381139510428282450915175408039047783254463259344084758793370771529097055536279791594277736809673554373214911007418498762197970375628669342732684917052193965813472621897573867989339261898408748041323498944123423567498895534092427951715918016830062573256363271828267451206196640268713681662948598872794332276696449073536862408220121956193252382677192177070253904926052386350894639876774624312009479803749050141826168828942356457677944833149294228028903066738691806188153081476715442410623852488283470947652701714204448803555700393169528831766581939575191607367016770125558192504230091596590546710360835396531345006017636336240918790545788907645357707032859253062407265377771604615079044583615903228686510386110434006145587922517154242198971431494565692553254668855748990550445713361447621574030493947545564496242790709166745796442418178257539430084481820569027943616149436046949963554153949195266635066444260864868643746799923320205227221502753409797657576396558461296571823832863252874219818986015892180274487896454749472980668662792894355330856944473627870462219725338369814762264442107137105893036824638331529443796003977295152944557961583664316597121474930309996214559836384051761729677449401864031282067495732995016793265875122450298102116991197517317573854289268192616690123066191784279645965135780470581915286298496795894452448450417010286620081735754132490403240521053636575616062325749618954997090407821905967067426919064878634726236658746771043679127534532741151148782518490949099079800554186155903652324549773752770830296848605801239404449617397372332697332778320945414130587179844596862643279943782626650596073648386745249542981611915140295207236823777345728008113357724113186664985762014576416971714278695293343636840415946014484260404915529458681016044591003270291629984301683736104663071146484334315439983993766848545655452899341073548373831656522017999646532912002289924182674102837254040921332189776144090583473914277575648957895644353789202681560110556906503791706177581212888421591055744947555826550907251177605704910170792314050306667862360463823345074108560269372541679839371176685086124877577464347859942466989567297301227800400617165082331919248377457510461687137077749537223938006742052773955912371303687510180223478753015485269358529292158364141174833062438948452604315112564305106212432082844788190515343250423551974505178159563974439329654836049154811325419777860281225061974866196606205015184205426848224615621210239922023990504513781956475458050345664935220382004245253020055728292658348632699161548405869024715290163788255564123776724568255143620918881625530460282577071606596005656866107245580151801259070638657086511225391831986902847596347477307835435325522472837782079114210652252280815802564639834210859633189305061300898618205038256796153157575624654470316614563355321593666536321403615161390044417662204319795359880306165959970653806528218758733921880568598766080254759065130725880619965510592030008983979985172261088837474103490334369498196490584850285482936574465876305075605998411003953933289338986662743307901590853178844602154726942437037843694559252586731292633589134901861548705141144161100254877977782677987319924302849107148608858510208986701311714710680633503935971137440575743786358259565881305415341607465307062947240479212406053447267057994504859389226928761792440571204731712249073780655410090801369706181157406363211974283222686180387746683048414596013512160097077587057297825994212805361783587811445021024037571536365916926007670598194053697421834183763248046738295434424357995359275827017280883929432938798042542411297236716288845460515789449293393847153706247713664203452613114249096754156309682999439990382000873104795636094585356088290545409972672178380343319320518016219148020012837486406973814128070761997985172003700207087552375837279964733836196107042043627078943989559455469363248459759192765319673131049763892081395616806260130914098906932271288519919017728310180326677861893622183519384366861755330409190419405240740122970273163882418617783764729403491202452797335747829930914579869735610103836671623190420012855228789672401364145153653440857351604290398378686855148623107874762385180996384616148452006573255719343506431950806965836436277713358747562828432191339357469053269855174544618230393829204691579548274071390824423704211189511972383319057739531006660755778762346099556671664652608569308755335596038789218161461426544330830713967853348100334758693479000579076276928927033659817236493075838425818340755791424735567810738521981081363958642263233969252334667550497735021491849995331275594422737654351233711006644005746004088950543926724792706317679568952774982181402953368253177944775750654625976828198413507339191428138109328361998135614876700108503245965681227526333553416410799736349594231761123007572682311546602613372328620090644400721577937393982461647988960102787008403372449252043316721908582534122110127742724631800935363175909579905561051202906345650647903753496775978193079385554080593279670026353020015380312726574862607993383688507314907632682201574250074762809059243492352856032380996167344228204146253388821991915002779211051258634144276195918011802548580023077412549510397854181400903078743563669513354801245957907459843507636765318260143259199848902712660818842402159663375889555714659687361016968521371883747982114333837375227111354298258172359159669941537611200914530771850356125519094557378466251805717109286346901864790007579050433993531764553884136787003477886437015915765299185395291400817359838722203039553232158275144998400864959144672368984282855288903150890708691682966422481908199038589481069119305767372527420138102074288845374201675339640749259218287758310905700604395128953795621973123844663515608289792508178009114553757113592702648616474185812705196734360914104676762236078001919803430225241718666557690610317755016162953607497856762668842564180694816783662528849221487246457663152858388205554668692700625295736155127356373329867288283761137741438633472015599041918399191002135720952279424476508838114111502543215933894299058567264148921057132427571687676425468429144214722828811847281363358214329155568951119345455324100617353032900025008481447130613090743354261391524750969495463169097091747073728586205861090803065303693831437256624592699582598617970828008268030200393987424472312955779275468328029071248201447263134078014216630229447152672816543329303733140149960983623804107355078155295263812153117367411542710588268190765656284751563921385235756305330998069270211352432956558399929494314110215251717153993010127200404776596122600208532580792009624637220837285063049339755287880375238040167052735754317951878711699680547239423494548048785571245164449163129541362522526947827131072049293388045190000710893140978438945123733393044115525744501998105937081250001891311538639949874422352071891798582536697589811779423961642439006877674523362156902823628858397532248654559482877973407361918102778833111511999005154548773139792729703708729310628964781818878750064378204169029010535308575403606201348177972774701836506141554100914645720290771133327547414387236695986338622393199911808469277728119255861073807576262744365467161002033518643831170583927460993030614320839072295535563332758867045799765996160734725550724004474124982970553960087384667214667139303639882004961261555118569434326727035807718708017400615359258982059894524505115388672741877722866299011796355663687134947110174929666757124550899989820012488283002796742774551678431714809722265352185117251435385024544577077272145449222026473054808735967851443082333500675244291010828542727527227070228746634750834973606101650601594044326497911414257766713776252865432017339447694623752013698045921939696577035868634832812121869856082149016837327980097941086598078616753435913960982797180499851052893305870989732519007637052007200444556747613208417244662577519468966000670961041002473972104212052026714261640953014743262494710976283116265228352069867118087420267872086687216050804756260131109496699250366885391273042222663700730728844143220737771386566445377722768815834360888644893118866197735922251650506951529773926403559538265282814671993795865312179702346717524031306232065919526878346202885616713902724852610212513728600222682946813527843026501568879968047724392278397194687755303364702327846716443251026603946384013731514625205060455934802901241710938965965546103876228241649153885342366888228593259437572204903829111846315680316503456157504307811787158669082901523987525401802656538501520798761238465735718582804926074571747627876864845518992381700529582797482778213535415942488415450252775647597989399508933636967431960270599642433643601252263893740134265886161116715645046676049938449565909794239343595171392417002806890792735986066624506246806187589537594037426516401536894789151389617196013284001318566036199310522102165440943657798039932418407322605130280571097716044073268885350768447374268582396826568961123804803389515009953247618021228588003452553020972070084256284746950524736558558464462820962389587237797049312107699117315647542272581807204071180859188156260523798985243401644471681719089415205680210616484513672172611437330418876077039102177407245379316310318272523286842474769564909984658359048385044688278975160809904483538118536299313639116239270945952047562556924678986817156617646653233891216711104727348954732775197182289621981485047714434040768278520835421760105965205889474672915153483876109524758055984164348782985946638097746987733428478487957136689716243522937333045041670510904010258535453768641501581668963817296317077403187968244146596061794443969719551104597088134295309387705759388758410874900062030876553551506098402322145627688601853154810580807109281810773029776897820050546719028064829372896785362911866840403809177559422541007463844787601776566847090301966847767487496291050603166471635572804659624818471766219085774382620145953432397711976586815024141960259505573743703474608716377151428175128596751037986151727296861296979606556959855815269831062883389645775033546616606357679591726990111649071723510141402328732987563496836299156458553574963881180351969775077058420829753778959228415715143266245349118777610862985525495518484513060012466968554325564855118954896330245027666658842343283950953944688920646330291412584720001940458402827823700311330785875845950176720117618139533866263894721759617918701934338727100458028097727589489368853995803815866906491680702926963127616195573291472099475551829197421756122832809530219702317368627824634457535041297753903666492095117529184716693224361642717121844366415495279663974700989484420786907462196848348940072162449505341674642288290989849452263750560228358107159005629983941311102862355647207955170150095306322589438858469386365862326981048505062393527836139760788249785992768065127799648154161460080274430535334173652404104914968115175707601982963452205198037745202247500932429465573451983650179640136620481563056811254301892123306036320193198587420480242682092992588345887589638151095429062524460874576463351378320990794315317203108913004016122456219418863433851558841170090025393816550202901605828329771325557949930084756362934856712532013916536431651507827694860028118899296172934973707139286861794515368260092137483171454361754081661604638067506397434217936287198094902299112466007236265020496530223953467329376847535918609933584784680175311437918393486605001978700952811197980250599441006614455435506534529723282573645887389681788218799210777776229971836728705195724308231846692385201828896236029330533206592516351328040324179528074960390271696344684565275205388287591697240906256973093927491501883175704383584506999989417004135657009743070439229704918882999867693871466317938146171160396959639646531192938721814244767507309514723550764830203173905474012954811503430220402256383173172963175240641795573991832588198544881175961317335921988918906261369565391339724352158059658446989972553626115736966445083952547062447964626270395801380446697306479261880348005153677141156334279187028512096129303838981482157283909950844706025383991376238726318230598380556653581858318276700924308654530254074295040911020939735486076644207030223089479241580216880384070632135250404998983510355700476567843121739857310452694201489589741202227341793332354103465174735249164157053834880966256472317540012727211593943484960734954056219277892994335375681691869647103479611490140764374454842784612546870463452181820807067451898287208790018032715366690218057661983905227392743246201851345998875119671896146355725171959054311764469511005393214188435319538092878665038983428340706494571722398852041164294635716850408091231259221300667451833436919818797336002235015131618971410597884834519273934584863032010633439628352998099028063411248782333784565818171133850010575770699307919686802521943473922514421415447935370241619962486932902192644397629038494083583047606040362943985803284067819003805692640924874223837958132077639510512723226441070624083649209317580481834561389479908682170441885395261490183075817105691157117729748178934838635294753973473305509430583830045975600875841324814336500931097410644697222204842693203259065701483846949403617863694621224463842138015345252597603774829578184790839058933546158397188847251607086184245068749858021449124650786934733113835528186820517962188896638863972255897908810018482558305407657009119417632192706243127729504349016022899089805726153829153790245420805375435435763240568013920723405462900403856990601085059955078551829221851181932111690324130247555659462496292058009778278107048302359794539180028816801684933685866550567502672183128855200155746043400743060085020099591923690457752072554617120932220417861777464996074313348268548640817050102641818474466293955989616687113233210525229317987399817991950822278988420473151194986854329076411221079112834634691571575950566645077503745774571041639700011238091218702246355358739950638428078877777914856026663395816331323777348302530980387720371961674316583877537572476249543730719063973100114035663778040788340751026257630047969278261394143495772021041791126954708475629529965302999842633303106916663575714574262548129942030523457705436202582390634048248982761040356949209317317831502785891085092861493887309594831132718746307809006891062053163586466089249427276153830455001877485008805148015147069274936877216952451936871321703672041948297134622208623960775228030962681791819879249504501179641671563511229632785716686446200717079598115467139168944000459533460062813333085970446012946627875817604624900885092268870816592345843388064637533871415351482727694817582326855897694339081376261326005156511808102800549248545363212416131165078082377644113477236016252537900060555968438631722132885806054405094894726900809510256308295130787833531831804516846429651978691892757857698524624000482305361159736539011260769420600247238001754692403476842437646518903194779866082873788642219971601133151970593280983346161817538974440696576315488184400147873483099658241425454691206543700581760413193394904034067128792587195934211928705926831766337186333177801410462437589117757139585702066256720811255116081244435443100716587580162664019348830920966860937660857071249452073235499482712677469508879272719576215327775514272401172353471119196240343498184113162325209614280559199017784360023753041532039571524469780960339078526570597450432053295159738572496420941368043463875591723785087290626039624156405257029139542701397453769537629376061299784601490090393841621279801115622587383352528298379114461273673032299428342984362921567740757371477773542576973394964530675509773360412194547190684922857786774669192421015738615229617637753225000295109272764454618739379884235399673201243274927325508722751132645015124520793046352054123576240399166718691511282655013236497099059674821527132248997112137442009231615896117625270138872681935454985264591622595648815238374240785698707670441547993810641968427741329844689672645451081049144437306431268120321521004790834174916458123039122449383079033468037334973265997782778876757245044596497897207316163181195342125669854742128466387674624807311490004288414582752949389425614966087137084288994724282877660595655493169732781324230439950482868263267307992529952751526789359766396858242403338739918625660110370957036890191246802021578670203347973108434718941267632502053053449638574395649641777343746423598380011159316796814848152536593301596685603603040254073231070191992827454536586629491747065022844669750702104121063315712336527329696251531475300502199639377747794442043906585207420931717571759700503598620596278488734858038924607869262399138332092517392040764690846336864431550064948395886861819644499163677505395182360923612067377019325990884179912639956379626635787408123026052563976325258069040730703511556282662567834925613284870091408737977117786790237152836099711597576852379629293272454317402361403037917001145235170992497531294550606569764224791766324837090496382183525972850007519229758726437096294235790560500442981690792722836159778795700976650441141634399506348703882136894640739569094649943383366958549065725818749114152905709161040322241961712359117751862246759822572602620152537341251201633375036030159659125153306173418116192084420320960592400438881184476680608925656813909950656589175010117515523255292616664816772541802442589687507551641055136402767228289256112700050967390322776643502896700475747698511704214798892406843581891019911151927253938338947338992609283153641420985409514802291319024764892731997346910008221006452484584316758585000839229724352258685434916791272706559092604308992741104206359808687168445353023157502540844408201537711857778421226020236313082164256247517067278561248645658570909466349876896152991001288030739428067247231276600542445531958492429756876439778418897160638396048851467951789506246962762197623665894512011110231899892741972196269882110819560329449270496027096612833674284797441305662819579979027468183298438890754324390968210470689423398858610779973643630103427233674742744119745856954707641642005939293866105761549811821254362931189248459766420826036524297287271333603284500058833974752603362139546613922757819997056992457776357181321850030320349857524366338206170881357910676921204535893784862128747290051981329385979143157523663394339608648408621713200807038464690596717139901474574041749450359252288270471026271733686418628043730686569629510365136416698363674850264218996320317133217811331777562825243315212427595286632054974085514393581568942745529427534940634611345575240987304794659322558179709407004289506100078364954193014763825075873996551644560660138508669607669161552736602837966675022165930729562985966546090778300313749610489370976929823638455176781469075953998071178599369289310449659577463592143741603174521451358226414813910133237631292628813280887146847156562880729622438160370299265833016835097324513706626506002913323815618812444855885987236060410952734194197226658743439210588689347241894123308921998183499106877518942533083522011036496012152467081394544497131349267050903572323875333644779944757764771303261817388940649084327560684726562476406324537041733128645285273164956776583010956636817849185071823897894383434770763483085055588285740037338838205969715042293583252232022847233970114825586713464981161605598839446473634900058951106283377943151884476499927907281010700423050452527286926793917883393073608070116456601888306859057741389833379881992767483253759433189893592428921952456770789238983307830799911849685395291905191218683896829317984665339148806702691253775292653825712925626650977579113958632990193874453325525012541910838886790032016035313474352833531143544807782051876951564500841046056537515508922065593130151628287753524264100748457259992824508347551597030576492236091873926888983958958287035106450901092800003589352108908787388602342704129642273694640874212324660390024843715210235275982399154341072130380299854241856452979127456334647568044700074545498022141036193640164776924923354279826270395104823075601869856963690014589815510925917713516571977913984479396165671670582837293489921935376149307144024521105971360042364754776898068313737852105397331278645916817206109463677299301807717648698558714430417386125434503659316479551093733208637214698800566483078113802162415847348716252093904087472398794509319618190019283231376384450840578029017175654405723565819126533926769997978831582049272619966542650264206150843565364687648137019084350668972452181366342764394048872791008727767312818685550051890574679520967961638878044413969261180016814349683175211976545377476721904439867325069888110386316082865168508244232824813583888902914657693276741240823072992419984961109359518067119537793381161362582946507391843426518426635554013804266296616069092117155313713849918270026487480048941976878412777940829179392347128119475381874568675314438260527761541022850350582486739375148903539857250807592545102916052496555920341190744187214550342922987168622552188639987622869145281017352650152466821040713916993972764110714507756463076575224084367865289009151260181269203201206403895596146411465920631389885191649478941362139693340063620334152320695524100815350790416819816845737370658533950948097851139870424954996445775770131764307129052367686517150414085699440582014274980595298027333944392993834907895658433602709544194533582517290079054392556052039361028955425268712252794635062482143570431533480638723563889537300821350787438055559948089205414000573061592802654306523449719915735439335412800496466256886984501655770307222295906684432237463179643278230334420354057213008168194288901152255393234151332163475466093068186975475683862715897982984908243892756808956409553059678315378822770745065001710810386247119128647782706091069216410811430975446745514707456650277363736057766479900777948822484652266378894506200669726609337882112139252462330615398800310113893352758782056579089219774473768219698471327802798054662403614890739731203581919030618097125517482760641630834018045931914901551716668735059907968583761044934036800220617188077413861050925832346173759514453631877165319417876434824267155701792337432962455540137817522306837446692331158427161311334258420981304818039166509524869697832260678719926101670195028560837356718214397509582692580160406526716397176743485753863552519695051276010622928032599790673463835119905680545148211811399385895050636093250618723364470829234926578234414727108155498441367662117395455440705617381014987957929889612837890048337931516543929198476005046857576223052428081106868220933576410358941669055743276049877162218906451961613830403827659087926417812896063539658103731910481856044980827092550660349401786555924090257260115501159017319980094510764579656504389471652239770636822636604434402210870869802896941705502627476497756519336483285748957445614896195580373228316393717898542712370167794854987647280432460854855104901320984094159711158354629650921051154722180081385708942609423860480460015738071016808921556266219554833784630842664229031513336900949785209400662839805179611781669920206624951353209582295262661300363943780108234395243154279829466892381275911229142760570629265619743931811159436983878374260189037665896442726489792222525820059914903280962329477672143811508397891740123113414395535864427775182577165534041313905116819701204056466487752846645011958764345423397243977630070302208983568087753920297026022420501837194046130567225382680931628241502731542615357180861462488370463487986548990769356899002941569831002393347199359126677757420672695501606039627982451420598468179684345937974100714636655889585796051353379766828707211347892466818151746741927303960653725289250707163473755789366231058898288105799764209536729226943361015549325615317042367363508349282898904523881772805106549193771746699020912654803834569363599716293186401244167973774734191005712942568976599035302248502572696786370817627980494644231998792623510318249657898517942415515075470967292710566804641330900782831489617176502140314031425465541661743670628354332419120794404441317233566458312548654956761760693457379866679809299099120130752590938113899650597995343904579548536795328616033189181468567883721530696472778600495752952022887071940725118369703020730267453107243695393605920103532648897047385904114560226727012402573685162568335824449995105410747658586197085797462699514487426458205089060716273974079445628505616886992331348086667914396996476474793340484178496381832146702424489834203820874052801469113863631352861304508582504884629914132854285341221424345675498994023324279787410661410564477705224822268428338443736258758315619152293036694428985969240273020944245317025258370498748198208428058603156122114905634270049575710567417472695615979704494660316009864248710376720760267402899078587070672594717487659592664652656337830327707331463990512460119467869223624473366074612304880265381265352605205546901975383471640123321998172104982986054551156931687227698491804246019873073840094355394312811384137811461901863283329464772322756453654582248576114788346243794361275082339733801451688236151203680299180158375571667458809079442174746318025573770601869362787141784966196482712462265041653999434768956841202522003412244767161399728636131039604006443612740921171012153870040133540072684027208545401197381471681686893329238312620134170962221550499799802012621785084196640991151217212705889628005466436386738436855712042771995620540635576307122354657395480880068450456932706266144824800533510016992420729458803835611190834540286052710085206342648655003939357181280750403617957203034695125830199245935682818675569030832080530628754563678497759211593960884492256817974052259028131434457130127458340102895581117758119374420173675159730260396092358865111328249216557292228777569113063413313846678142688149989967578524988267292607745857630433401879553955574037827720809595918198284742144030958210315568318987369141759410970195368485768447686181573600238631856602551580027322031331430152096226375376633689418153889088145284834171431464520494827554039577675165886804078491969937706861579460586247782805898930662650701849097538402136594721563547110622591460563214511392712110131218576427753451480466497137912862221026627137996719113880177574988438243846911566790351718765233599847903557141403292602033234505263519062879228473936785554051459952913712275044243411629770730919749075237019027461592604407231082089801372995816579427031685180473175492684507408489799355417429984648252322418331398219401654232519965754610262592318514603515177105705071886131025859535759007749744416241217822247769931258173008737689340457181771128549723363515275189810574993758412281495861064561284324478673680431600093645451775333814821974158609929502718339209232520436282292568990436849976191116647481531157712468857039357919651753197638813234917209640985183524191676282553099587283594641980386163585372101830895153042929498688804561810193243264866992776467034555624046354577966463303633521475211177985767059029083999974961464955378462494565733613641539746217845305169975318032592324665709486791782936818169092756386731242712280540211818316298656703357318342035809216126070504490996302704064572065238365336271822510329046213075755651066252170952250317873335326195624187292765431946313318267204245351532835822290932337723882677230382590039282950991401760863731640871819408707331569690231986365334953591841052556939808233911256948840513954912309364092412595933369976025362886830559681857191924188736214080427567544599948627738398256136109784067126679811812989917585301780542162881816025129494353015046557132545205673678264983494142158481512265309109528296425221140192388944259508146845195987968837389117569944923215045827592319494784148066712212473217047057510874312004002960048355472906760101383047778858582646319242645836491693002941969983448382680684080954283044147218865560149040267694949483499827391902215075216528221962976276340959755434362379868036540826337890944057044619132336715358865351311295901586163742042128234945931247406839928359244635593321691574272001555480733553849691472818242502513623989689235276153125654381140828876082445290691921632391722391086206715211797598330967482778116087167949537201480223141943877605084076593876677280586386847437211119594569168990945953379834154767264914207522417411330145028701514984510310828231110731007682233970690350773037938289135564737406998471750035945731318848565775156501949827205589997982650468794812403736583650731586880569608900550755875475079870305599682477771871707465165455299657055775074901543989593995406911955903771798801581927657112899268878183011850798838899830417929257304758750551675108851058775284287592769253689061479742368854350451452187001642972991504695960629444431252397104243019360508643688457770448407295570506642199431446779155680163326359777446152883387809502898064420795692807617762230644120632662392609021286240909224439496605495398378721311670341529868612840073819368047123646060997903016285256399737240284474844378588717681324130589906476711633515562099230539404607738310259292190812329408436628800870631511622561690082295034650228990658073490285720726070240479319629318989878633559648471749332158173425551193935716090663587367306033441849889969188989110414376172563578393585460907486320682712647850873802756769068805664290113252102338172293075524849723095884490068679117842862669806588283989738378853827393725108270057290693615175951699534162468069527214727079964494411767329496209580364830883929810293459203947733195839673866360825161440702699290617540991562754362850434860622525192633992594277010579469430226273898502653850607165538291638328973122048403247573305176142433134843551133119815619684183669229797133305058544038514822205806250129278296552974206002967815487100605903381125873995191649681509511698901777331954908563259005509665467130548768806377576743280112977043506754672408086837152902425668785438945013876311869538522817081352792276564802735689052917301929727178126620220772497818631265839971586346571273343402697979606937132838408290281251145556177122969588655822479194605992026799215011307174764180511456599647723814451662114117804828490119150060499055298557312274899409480608311734695001256213749292550194014689094089031758447574955513877397368607550811892582381477674555555745838990518697435289659278181720786618927903412340626438305416884498355660295886957038136163310638126808097281554077167243662470220606240271943103538922739392065101040311751234878463223807273745794595618809221257109862644276176181339042543060211478228727735138829435469094880153887550217129544696739082154565996739115724934818963832181109840651698517095379592655567395821176964574082526720201943320141997456779879059862404108337120903114383296404623273023072636859001179627494055519657704080845143862548879109180193843363473472431667236134610383864026467562612316086325735751210630343460809806819755453240135463522384896104270356159930555548095746814569653564890113106754474109618457649954575250114933268495364126817067645572197438661678791400938072091163152808271110894117807994681663899356908261242450531791355005401430816972681309273321605512237779838536270307875207011636522938702844041292138766054961006543572895715011018168056492474785746754853911472748329912278079590466663253715705920717518747930702400434537930139786108975036544134980580057861391773298987432289014430211843292691353844711060907695078390518472240059174066213665563032954580848486941376649223893890641149609544317403139200858868077415410286200309790668930645898214474287595090179593412735793364194055613848551915378916225509856169655798832545831157978932351384811813191413548072043002776766503990752416200330487618599085714253664075347557016081816089735739563314180938770909992375010509524169974501591409515775984588840383743960181395938245795705231913269644475481830217117111811396828728530532681711172347349752001589439317631227351639583922806012081140764575140090846670093515670603305930991074135586110937270605748924477493101571042445301316444053349924475247954135770269007086312802923927307137074632266011104685297930351305590943648556043465971659938977220564286562548438257751150291067719320493774980891588224928691813738944758381573250819674984735437734757451262641635689894294582461840362639202399935416147803762754436996305402616177948437231255174115826634420728366958637290732843871794250079519229899814208638574200110054373426174385902902186790135379998381487636849280560825909245346398035721747071032298508921995984136033148657735084426681403194747218627093068513610098611323766267833973216094095371399810145255377609621546222710617202165713404458492390561453171114460963644962663097580749992846216037241557907840339381600213858259354515329911188686713325612474758693088903460429960599035652990371762733192122263242963261208254241587654546111733530772261260685491825132386510490238994948414663115116469756761153662130788073862614050582573150728833902610012648893763708981525409117779443363235627734299947369346401365087167272301298146629687431895041926237856037116655510667359536698957247493106659603487667715651006418294131598867848947483988163855124995124607041402066157841153282494651130558974215922529579590655244124176987321415149894142815855087162478768323967370997627803868596331793914455025417330030523058630871192284120562955678191661835773745702583091722639199011447990397774127564592094502873229565635209780904570638633002269547674271398754390229999203846056134192386934583410633226181219078744140654961391497893302370958898588933140501103484849458867353065660666024018705751765757372378452092623517695304514952368752842751051389228002978624370625749982464372674617104898546125726855093127536460417330304065999619192529249347839039046497360599227418750422247097957570255979366766321555563287722128063883128792563275900103604114351061215353087506662896799464111651808889500253072173448652477009560713506386767612487380260630527361138679304443195579635222682992281972111361522360724049458947908942973126825945342299035580658886088412406749414600155593697976716385531538309843901950644207787215742992660678147828310511758986387392019612705221331856569437406573506911654884260660808189214827462874755746367339707017085257799557822897267829497729808354928901119372222486998005336047404637667623308318546564769177690163983046427293628099799399433847388656573509550685355869972979486526931370705731292948703829516655714119237761739968728105939480814020974329263576021489204283124049746160360548876741030832863275112997226999064503883056288693826741145764821211222995105677285772952651098397593317750673653551988867062832564461480809033608841074575674515151723458124661047857705156564471015366033690110492064221658074290395516810403440150415790059067011737467012703416929967793604989745154116426352102991657276013576162601891781294020781076781294409354188792448995631042429688707032964394888240912478969029297130063550198887760972375769817853898769217521898572888104210174727047705848821400454534722204118275341843954260888012308115936740601534660115244770471901940461030720873711985133096841100702295352768330701139748208269684223074488578086797950562326342785927840532691036856036030208948066975075276124239325852091749006808979362398957201783107224357473233923064055446124791648783018172831527752041900171458898389321820675517122752457296234106718438288380196182890552530341664985960480801659642038423003851429982501720078642970772144791014463108515582916051067173955975351945367164177886705287998675837085243890706858609480949220558690383310188061622011457249431994783370879752852391609474370977351821489781783652992378375618505253740822033534506912139585304880997451754464007624598684877156031260293911362395849387440463769197674527840239496468361158610364109394540465675941841732043830298469667467729281917627086035615790348497283926754328425494992841322783458901079241297680168531050386820705692753638982631361918590551374764620314141252725361197640731844234159192931111690033238266116658327418096704239248392984416138166693549072390732169299389941880625853398595000290812723668751081286134745916106159433936538956465190551612436652680859256637845156566643993164303944249355941011765051812775934179234791953618004269558301692926600161893549499919654424157113632442467587706111135734491490915826271515779422630720811027066482172381037218766209574468837731105401340239318122742453370733983332287270730097451182325747950590986151683319376398477968730377296620104789161545373643395710874457828502280159299891047236407227141160054474524800829029264178641332043957034465153685993670586597583618356609992234172407819420478726244165346775871932021814106318398345620030119611428266947850736173075092154185920221321252448367064820443895089145501440979009076718016014580476888894459307457305973503320675521558549213197637368238268339889022251766727281094278801719039186324166549411884519638348042768035356346590112736822958040811990824898648792227985078832476577975414542902869553563952925942697124056388277398431248770859027872443155019651160803330870295829137607730079835746365404610227695832218869948463979780433123537321081866091332506126411532668554045468475025716548673949120752747075517523606725470387800093079528034437278937657376692994596977940871977076175538658555191136856310518131971578476374933463581261807594477545471581159462216563228802539929024084734418707414028513794391453809883737201545051841860272840216930150136490357697685406758604267903208290006529984085305824908480930619537130241271835332728908949119767063969689403234133890285932270793141852083621955539442752547596003589587420989895758845432261489495831778337137575096539346854337370294822408686840230529991495126388821593206788664553847763825718789597069986915782534989621972771209784149284010997324690921490799106245353117428943368387000417426404414618202610734097811286839523897410990809924684624224752638466827302750794577639535901548391331462260564374607679455229720743290251931151862947100554179168589214334064789293017185838173336313527166395256874885866981608549673999940541014259777514634016337481481728269503800415578604355695001291259192175430240158551636199168211992739866474696551430252461505253070716159089171846409869950525914466705752548406698046919397041433721839046495221818638749405536997307624297518092181408559211780182291288968998558239635543222600243586024702211695796069923842876432933216254498783896037770100871517325189822735552902966906530187017343296137409439069765145052056447220302760310459493692758895535052554087843467214463832401210275998342198782958889829087735016717699847636819114896194435358761150071170725424155182460157590886329431420742777042710740226570467953028550043962735690709650325470958543820318481483322067091463746498674964993418695130624522473856547503984263363866808171702643580959006522141071124207298123413915929034259446565498176891328388366958881818522947573930449563830358671181970040900552592331777450678888924493825706620519516172403149648669029787053706622550079708497136721857919773908372228116728001427509627623953542574068050787764284499783494265706483663027980564947150894684656494717475825018172453295189160281237316941410699167640194710957204382491088747109087185447095688146747874202135861857645142892455726982087626140930070013921867180505837046586821313722028689383224989992614849538173302045559945662199798569434156299326415178734745873653647458920147154940215944252117534132951851276423169999268334201968532081824492064523710959009684040081229672698410323477512769470293348930629226670798789197179752005029203590115652850842326494988012755932601957545980273843610811601748677349389454623069496882936788148480149866511187361891378411613809640010968069207735263545379242357747427470090653065989117943047321858330386237721211582317339325430560829377328410147581392838251038062036936596171643363973912724612329159640080509997014052311844752642096235192691257187924654183307981564139754226159479895414897051315379088523463082729411764169217409230797734342201935837942481535430043565243277062516496709995959127640376027385321101856961720845109108411420036654591339902884219098625186846979194162618844201665714114639512128613893073233073395487611027536258745362435384280323114280738316769655284666036389314546172878938994875843287315780674907313936021682679494119165125695816050620046343880563644358504022087275147211870471663043602186504795890509442045666006360816723021229157361329387029663424804674049398787037908356044759149390086419502314864277500393842167535620002415938737940919539572618807148531517733828022559588095142286048332385964414102001093667395972910218526677804447505507204654203093273339614607911520914120770764164255210916931753878118805401649988736506824377137041783147640537580834694616748930448394512627930932168610354922954336446431723006618476822498498219943991189215203856140925128984142565781062662457558680609707436327113332818376291088303649735807786058883269374151764486616489489994661924335943653802222056502711075916350972869264723698063418872670427059980144140759810034965998678335501321983267592679196318467090680161017383582066478013987715519098239783139482320601174497431712365238198939731318597142777237248225019855730467052689476385542751838152458011393083658601886831444590816730514439030551865811656816642059299050434328632447455251085834282849575513984913659410328329627058410830394738731331428411493007048095520737942502189291027678541585748500139421802801968218029112583603936657728137458333984764780573416029650536970812571305655047547619728260817231228162850340868647145393629204800529524949552807819923145020079010236810987364838566846233604284261609692648169551256883321629072136226076564230982991322653804491122620431908610192464533444168233071302547888497413309947844056288736148109400291848181622710002606749040316496866051917347197757645162862743199813361453626384776137556661591750291672598418284852407098006202628550431608240280861196531365500245509607103526135243682739056184321811250052791717824926256394603350204531364358137278280631689642956049134834448257321010125118996217148055840395977088128432521791121441772967382384834533067072862261536338322345430798938039823702490870294149652573918878120972640854146364485844409540683358737330349579436996596845610761589921255300692442636337843264921117533102527782545245675787498604134756066923817727459327299825519382536345560028024808383838490227461565588202376758885203456101288727123888484009819385080382310938602980158024608147637045620137006829858202756666728404739659689953440926256057998514107379201402883497238384530042741488562744564560898370580911177273825660590161439544916705230526037166625622164342367149229631051748088574268735818494762408009473597115464555532005728505601152855320523263229314118441965088114479434445138808074492093817951444277196480137377896865096790668836216200692641127980815307525015107230313632082912008808485557212644236308068227165014369842440950275113592158255678963102551922298380475305219587033810302118337491455510676708527573080169724841812108731833648126225022078004371889728721887328984238330791910017797942101613824578046185756874931502078731228634016099818569276075805849471810428808905258835857960743087622088271848983498789180441720208053222845210452741986409295561273703834910735864831201129436341838857393586545413374882932619732429921631742857905063991320929908848298804440305220326781385771873564957478042574064647780691098740824374319475186165233031671498149147006128424382968840566544876092142590770323889172086315273027903971463766523197123112591332946233681669512952935702895919739327543483414751847738121174423791920437364081262527570722104005035499094824016936929844509110827238220226956871850566249669305390580198662945906971213681138591232951824150496566335773141638862075113977914265992357819249059700518965564171163880081458084857111625468416941281635216450046363902799454379112185794841369237824701615471484123091782775970802764337216862757953498201564617503136137094427660393243850875284703880233901391775275492116058234508172381943066919437606397823592696065826697460294786317232158318430119528303564366395575793181664257658914133183336850767020207579692868097847026337009479232768272753596386232289192839769753239801945141416922199553321628034804167919422595703139184760984048764489461703252894487614762752799721672781525080836537600146555771040942966241474709820394608669728183060698636665739673759135271673187672258873777367813023048729885076189237362278800088127781808378200008768655894281357139446584448690911714632174929659923170475676551774228124756211823556904241957539018658713243870261182218057713626894266097709217893489703101495264584161109552286008160279941762773539220672584500629629116062383181570730861009694516474059918900601149321736419207481720053083928048458386255026549603058153067892942765040058292097639631038632627342059847467683771304763578178490701279843551358223801790139415745936408730931033315485242909561170610864465614630360555534590374692732714113481121750383595585731665494891954650472825738982162693904278733569517742433281680917557641205823226004513954098867013489541278471182980229824364609642036247151549438015610313412006297031481328593193032698019054830012744561346006408431131731280717427504667450414394447302843209651363752800409230388948365044116878313058532323323975910013550793798989217371304801825111560393747109510424931218382847758099990788097542473888052497497832880934703986760535182917082871391162453643314394013249853385031891945344191931647621317140836601653936482122301152720981229365372383854300754127255661718490686418639376488011384646433610308151995386296937002246146747391069781593947017841591366099510178416623511943002181702278225012255466497121742075910014585881233445563119214262967743919772088406745870452268616016095273833957504172739256675056590317546770162897762114982631984251989963867901617715401584554962516135513193336856801847114255941962870341468136142065535730063142176206824958048255115410981674685455600888808021800110378567745297692698974956482594256634845589816839142678031076758691874903819392269082193250892357308564383990988221097730722171615412991220305650220627081032240663118553888873162660049578377204201682840279604690765320358770642886644416079310021731154829859291565003378899585957837711932087608283498902785682684135123358861747604701867470729639631118966431446650174117452347868612552192546225420254338400511518239380928461738654534805135674919176145601852243463624529609747153050938311443107909223356224764984152378723834115169409694895161054768486664926167031273427292523979400077258712248376915738243774475243340865294776853889757898241106251460381774261525598606203452876409691317720564551980988399209473724800656645679300704916467884169847926974721435913748696652814395081600713903167476878669275528543684832294978934499007495490537320738568205778613230451692610420165168965768281218390432261753661005309058532050334476030203728396554087144803545059596554166962496583106528082341889098005840353021727317361434678728662285110630010324646996283613512583836783834601315650771593448764598283363374335156710783991340826635230322361210579631212935875230451355366434321008292576747035948124506520812455194292965127682454361749153028890340825132445371845376369163705779100328134021608656967929933620277766531561464506913174048867109815267070600442288354978463177277458592225268037843984437986541594490856744457041986417481899906238138920718392419929009888416299635233425265208026617492006053307301880138154987202533146555413014621268056196451397481487725356776571270576512184927295481188152769407118775208167767908686975279969340742021471460091357432967448346100217805487867337441905557746781544216604897792174432893216425209257474133718043940583370849245119210232608983548372650700023699317396892886517815704850113875534216173789446567692096935535795203461235528739538636583286039931244560524029668479174179932306865065795116954324405071795086454620060966719928826645455295869698660849572961247741950992937956360074711079956458928432758184110012502939241723466296447889415006900289627275816747966108269787411858082303646074640619288706104481110316532960729389323433797796517376496570130157168820547309936806080254825819094577396389942257289687569434855717218888393557876185896960620140118496192982538673228291540379670314890106177679518260910910466426679899552452271343454181965125344171714758354974366994330822699297003833576436490469045821879926627198873345806677374546935239813388435958904570332069570740028928784963580358922714136035296537508640290944808491735827553195138604431119581542258353338363936647684633961893426328275178557691788676220029657433661136894504854221089321340227753325320613670286223627710149908064595651491994791892542102374424521386036766422463070617732046086201281893976854868608535677550749233127021273848499897498221295972813157232881142482690784093815116635609719161664509818961259320265890066982849450118965175132825840703669365232073734534586615932604468535639497869777453429609869410955402723520915828961265452383915257287779489930468243549453506854519953230125096313835578260104453786568403071756335792464485520408054540854852067328043565262732224174366166879390304359833340324183308173278376362234619106889299154437843339697970277101243895418507217698558397467687818795202944410264052522407604582293392428949617621995938317964307586490819867885391366440768880190182293060995358076717993866301264995946480596196246940787839718625175099214480358089102843492534806544327706097168884960493388064491363310387206012744846683807102612849517692169995778286110029968231310609945449218610239639669035517438384621269511536078717148466504280248846607242211718097939606480307081632436468778248750002618751736023917461932603711824788677218473574350068150401764003759626349608609221329935800103054506057994084412622356839969114339906758393963371033441652804988528559482583803325900716757063885778418879901213973157988016986328552812761949273689221968769307129878965349441676800937815662622630127000037218993374921807691203840130121704152382406217223403443434916826312486887470267412284406812293322871795870659906719709855473377441096540120825116691554174572878642884207342392109474704181936115644135451268043221156691374330959585636338351549103995009269572363588414810094539824904268085351991593837081002129670257958823677417023823309711379997554129959933544473052281005730608535755166266413467507052479393295011458806242857701002746213967553277753117975455368128572927905584100371938490612102229645287227952148629634134906564276973724793856057077826299514121390025129369847217101065278437397918255549295793953280756479623664949435728102173724083174992919776963109248272904921915127879142991480215549096847291018414236017641917895343262697898169299264107414516323080451283124866846098457558366349643310181858176609224490201606584543226352864167716640478525513649726850755881803530954335490192192069492680336404317165109482421265166709563711559570327550380017839627023632962654244899525392795965343172098202230272843528252263065568821016118492200754795782795270288841801649054930846271106687901641412641191702030556861373236369406721521287307803395605632099390496680740015317718841368765867202610596008393389534771594810377890479372783653309564953581877945281187467498851853954250303640569129492721790142696719813017564915360741912302072786923643185193707210604222506921242164338660545364202069638495901496098151492350698424265288942674134999149181478861967719015310702101620955504071029838635046288082778127440930688923187039729424422655630831902330136989656337239147184842991180550421888544219447780732409490503927467751323819283453362921470884317030382921884687059471351265341688999253572058936678543552682750958025680314292704229272969611040903842607078098029191258511359352512714398815635459383872545557198079169737323661707991736233915681508370577267677457351045277895834522292533545841148285483732889704291723254051095768674582787674997512438854695348968504692999860170862487342638440969294454618709226895524096570684149349061050213230458144269045195001280463693281298828480046799615468681994801970443287377428665768229328793202748203903912444218791128914653149167872771237511126513770369933454904018509425730585163280484966776737602936783757400804664365551377550361659391926727163394555211193892004109071289848378165304365954781466352487146178388213493792692287929101927563115400634110516928603608646590108862987065515875841791208362965000197944707882008940066835633545260458662659722965823443444908909621954610128175613268848375079453384320379158363428134622238830664161956855814067504145023060427047560619383693674591883620466505815235536037962196231614439419410662554956024292586479394395156560029232868087251666118213516748035222340357829628306741466276414326980742860466147417659383208922806720505546749249138806746303668981127151115618200728169890458880487414554085271366007149247057569251343674220797281333583052217411463479291000924579747256983867268878991183980398762888264918233443299618501709758155138310305569810922105665042508140675936150433909490514069142026547789106277443671464625089168527411072339835585856521313933710307307866367605785772213444590526932154821686437869558678960244366126629421904044311446626076097508744724462775585602960792539493938427922379889320199114933572690577303786919311757605360745247477867089220815487299780532520282138125843046264565685376729841342853622362480090324068826465942016317742982399176989640171630548490717374976441120330711957785082608415656815615489681215727199050443201040793918437120641714553714363874374469473887002498637001264742250278660344145256481252054723857826715970134147978543268406760825324688103223965513167249555840693240335269750499153213235114531638119229803560541706048745190887739926926865575205126384646160366178929956215121803567498378338587682216481136721137978297877940337638386402613582494144789050343051420478185167910021530266758365267173213985837954988962309215828836674816816600483255783996087831710214667056485524936869564550674704284854738681724085809071556027556876449639546816029844302317309479598899563745946768472602656713709985957644166384290310607987014498054742890700584782030208141979118524547725476956655221567235220423754827918715898588197295404046179282957392859190559477439580561298295101378118145150465941337270459704741668713391953547525029696263799411159806236140778882970417539488654168322689488043076043771835665230369522935617964860995053735767540758350921117250797972079583563627104487045608431989126760424061350010866070227544203244503672172089324864348124676937806181212281395959901509152692515352459860603271201158778486391950719248732727888299324149831511858399009748431674505781523510938579577292482804697538463429751860424179272147665737122741198331382080604769476558346269054074410295738695968964399644225131341556279182286823791125264399928692302602176338230583037372454154777449741260817374865666381651983507536599080336520886052794547448682441637112388697942422306725736211635821358384208321032471670761353717790255514630400209893028899452024553697686314710674045469263890022527995367308184779238074049780474128822926179081541837888972712147793010663670200287957456476853994054146774873562871497571344375808961542566099007186398507926937629725645534862922901826314790762696358638576834461482707465002722583598085127151943784250446398322762627851937425967380264149431005703510491805586618680882319645209429487077786353176559757753241841647305707965582509775407883981402295103760528203808697028403027375190815035839121577080712592080780087060681801596236012422609108401686429114519114738347022546475095104009492673049266625924311774408639985483337766053720746375661522708228680862986871049418701915953717256779403226198444913819629188864562780289036886916900502919834812086995878335598130174774076952766139438279448282966150769946447784708072117842858545711584804202575581982833162843273922896986541340309898204967152568860169272396685663720251109004446321846225914621767138788279740246143664981110474692325837152033369101047271903093144857766758918791376671928229522699197711366261332014795228459970935615124151326110261878798274939332407250054301643000529495910930987560366452162060072620596160185336061228802695878723044617925017333598684415915637226843266308513376993324165633284594086503229659984067411715724202536523083909474159140124023524447246180449518032387275195533407379228241801964252099426607926202681495878329971401842147079230419222208929493817699513121772234373441079928161852655267615853363750451612843027373447007254584784060659825035190033128805448741992294655113945584827875848855081445723658702182180876249937541572369947609276154115808083141717774619099477193768421787116057060675595156882710042569778248338947965020590220964392841874480192976041816757007085978134814281754038055375125116075011329295145844210677823033810510477389561773928895877087909136988700446792446921089875402283591908101632582384016252090035895097111050048205148049297054573424761062991002525975520049547776777031321966236879990977721370620140207880232162406058412615100553063773023905946943906783840949823917921859227906936590523032665368903903042119680670373315980383392963642501593060007442488718135558564279169213303904135485321430907753755991592433528141830527749904361239561051707300866087419811992282364538286746931192030725979562911601203298095607410667721820502503361718210276237016257323637889391921680981990775332050599565436542848709953339156819782724378382757906803943996375059498718483900409574825500738044724570048675951468927966362371855297231009654689570059366516488804294134845176725422179171057824871424925868572442808734540252930202361600914791408711972784775318107527858499014974932318564286908604486116218725785910196922555582962951561183058239068280521556703302375304459251970971502741741433778617003252914408660861774131781048594433501305926975999962806621473774736295091712015128879512279622292784212765927559703663709029097752136578318114766119271841129213251708692714694047415293696836936503672202461828044180232683109019715555292206880956111599669595835148261191163608065790710757692075551414786460599372047803227708536348960122668224957614295055117277583295358311172370550679153277694832808465605733923566880296445265817686006163202836234113392637250678926001499343784569328502059945857034948860280176795072695147647553897003284865004034371952422720583343110425193757366643367463351992549774391597086043599679815752292651646186611210303023807228195898671968470192503822617715078104313784988463316305884617099012416838487433116197189686217522131787105530710946805428067891303459319950324073958832308478980358871668133328856677330149147058243005719625895041751100726938942616453113358607477714393904549335180148365606079886215737024865235906632168580914546392404348145875970599312479162783898360095546193432091164018218888932454872546984864803190467397980564542694371164973650211602335425758760071045494784524091417274716492017373637518716019485721313983224788224443101532276983253205596707038018176499071825560832345069717787288447072379532116346342160368623067536274933721619609537774822418370268289488789477603704012547254000976293768981117461585184866175577048930067904189774690433047885004036820554343265014364075721132439638415293188041516327552030288090227148741238690394797784141785972804174069926559870217364367235653359879172642300242871975482255880129970928032778580562361483943499108313181808891485799364381234801105762305536679886555719908829655718087114158381777015567987017987968711195093942385456755363850779336341378899499229334835657225898790604560466021694980562561791743202606556504545225929827855056221336503671060677567976808359396672011076565002252617870341556565700635829558633873588159756422901242691000445849370342657545055002124770747958589936796584763993463030423753755664011679107424421395447072106003135884954544128871717604092379920639225400795710282203435774168533349349192547279097087896257810862307436328389955350431087969575291922443083247496578615921003688595567151209409115439265169435843550220007995293762053875596436399706693764201412231020345451227463666785436000551995734549666025919581197554761674625017881499998378901542273633164497952712654766306468322809012063452159784243009228038017932475109937418047854988424355382372451139037430997324356452969561800959303613037387743384810038136234083064747506404818859070733168624355189510585783696066154793068451055347221040152612624908196793529437528057423556489751470316124248585806293178167943227931875887339793000480582790812205571471797826648791989352922635928233369522035495289024578462304958433122872220571695274215912188211204671825189113839817775826396663440218446011852480703128560729366198547841313469538894696225840098400127650462093041171539590308874981497022138810611311404141645169898591352652188352092967374168324480314206752976068863262768885474134282566182755748837659534015838298029628531496221656395876371296202084509612964455436074193489199038858428383360278030237798027846167488865801126327424895090726857721961304326245857053490868632565851105194364716035802658691519972305280891165262071249314790543765615219904318596449304599622735815089473316852398241166507846302384924182811799076580270803939913120914662425139986176476476338114732826117486825345049971267182923586559992928179262355527843063623797850153438184692233745518312116252431036830097551586973329100464905834689076012976646409669896042271124600745004383635924767015995679131311031979979223406200029976067343751763928675695259110965419188659203013788580008420317357529693997108029571905179482423914643006950395672401983980425780583943377983584516101158257236188093799198535398916000424351808030200274804600022258592729802741281985486616330245834249205045525946055572915119691774670669065158741126105120702207187030596092121395580050834282533735968988357067164990177970312054839032167294472192280894998197888427569150367988292204832575477199242467475703021195392445145091861359834991262771588474436923498533886536792668461658507327110165482565561513578448544670052618628299938703719400947111130644749062724072782861328924374057013843525464097779148035382370322147549133575547361851083937915518397353799117898860253316484354097436385667920643216599858599789814219899773248776423116003584407963407313812632222035416838063654542922352931863303487027270256844478002502643679383836558836052462347507727444025114777069872681824299323561662906604805774407335687618948905016704626760398129402820708239420949132853286078192531335903836361945434553614372741629611755142864562438813952349268288286039896714419400489583796715966343085958817534012869301653240501792117484509422726174000238464781753334327623798391095367103184364305297949501510322193232703577251894480891077782945591109099772979800477090926134971870128692961325545477232435209509620431952354915345463881358515644163577689747010020503293718928116094757931699299882138296580783869323654138547047028850523562489331662045760195253280669611355176961576184999868143550103801533643785825635318575010352255530882707683507048255911306740811862536902398754142546714296405771781690818590366147807125757707400572847049057709237297804433080341639108086858446454806671718914067313138649545953086762576379882043765792269988169787573623558675533997061867203722003989755242358188791097434392081503391484355610488758020318458393769682339232634925748721176358054535271396916593867343936249671995174499437875906412519549606756223957809202051390789021887140379794177675878057639669426371426519391261365335437996473275120761746372886817816553337958205630039570740735577070907735053019860071449066417977463899003659174503562996045051795866315492918711906579098678259110952074946554138498201540861081564884570701873640297773004347195825287842209123523808210344073085441003531765102473673508757203576864572521821971464944948437532871525026501499836900429558552781849170381383699298870502895696951752279771297148729699796295063674767488454715001288137761130837116117447362650390565291609173237843350592330672427761838416126837126659401812428742340959529362319515154321290273195396860081142315053300249519773856838438727156722041386023491430078878318892828749264717376712341091457220798101502358103479516940529955720828859805980785404418832585969804912752441432451397787592018119562394227895132094890401166678067318685146106036326096230086338163341270957770860250200082237169264373663961433970762424953411977837212312216179419408963082019887858152820574049868602338603008570793703692063716743084750324394419028187266874860937376792822554785160455298238453054235021128471575188440316492891943969685825742929519504762047837566818887980180927723048760851918544125384642211587832075754653947276536092589333381090497645505208427742229976356936157601897584272802647419901270212370493055976328850895697837800792833243207195666021704601998413101627516812825194960456257693764221527832734176531453516304186897919177988435577672642482688093110945578008994537944031130967861785911565100674212078495149160977898884875453459112139675145833350798034202052754942252192750411398200486028211611579998186028518393369887778387190016033820839481562852216878363304402772547118437555982799631161261960281583706349963069975770453938164043158292296022360816045541148701860791874341801859595626359582528458566111094337592234401501191849833274220106731951349377540461927981623256477926218409645489612934524241126975359211014716237591385927809431714736740138542332265485384699438489456768430022858232795507770253929703808483911647391396847920099933880095394733463695939128218692971667774702599201351456968622609228476722042087572265222540993087590243567707249926575713310927291217523081564809905742574171301622279782339442260894828664508663104518805810437765770214832868258275646340711640245619008922134877440065779238069617165064955120783075649621777707386330991003088672392713595063207944482879638650019918734257837390699352088738454931146914208964673296751123781901103995246236480910338245789433309050043665433042972187657618055518747283661744644503071331367229368680911782759049220831892171161473903744007385887279371237956768523297029778778818674391009121920547177702151137488582470094550029335633221368844422561287669602395149144079277823847336010741863135662485480124519350863130970707331848515823950545190257142520004877221675328152300981548739672313160341845662126978108764649593558647274158177354488827904538226053010666462967174688112179461615050832072656223224668684295895155189571081493471134622375350784131902040763564724302281421611948054695395886623826917176917442877004671462962464030315961301763736953833796722049878554348629421023371057490993976418178205615453347136017725587322972558898367410677675696324624343283009572837347262143670589412823536106921251795329198085589867647128677061451316110892086357471426235619674871421868629113934916934726063683622212374854159650754669128929279291376809460875379790118709837105223085015150885768734407616790691710071896241551698976256038950660085590095004672958513291847252001283089265845375561737261460604128302767618450829808957746435058579523059406486390258450318741151477645762120052286422145893136071872029199246953906487528470497543017519346776283282008572908264525010443093088771812719948623978526889173563315717770406529537169044256879973170231694296313638760503396338883410681332799413090479608088740964713754171850183261564493524341397583313623106166512442669250364453580272434121472560498923144521844565478333159840755301907117793400725958136034742803062856647930380944092410476564894149219333223254681442986505703628532560699231102562162669005331971655926081305634518963623054114981100270981553549723179771667053187180749392944888164309697320493762796826397282318618178158265155591715245086757584434764573525889524491449180550981612639205615753929193307986034195821111659691756807239547834109315779631343421047305825827255539769635036899191047959335383187365760884327561765143062568073728417172301453801000533314960909608493232431769826608955078160509019873020937999899724403229712292767167999572562205308708277041551344901173091270884470487515812310443597138272457628540305753169424831929150550269563490547801355394695221889569868217700824163023203144188748359125328767134339092215924930335464642576928228409084739878479404303003156537965934590971126030249724668700923768712114443589531946388800630837217444519016020419676446973386494058448984908840432591075993924877851838199942569302005873279392601896123843840207307543338147977842341193646402303139751400887580405557802823584177866997136099140691065395218846061923018117205292181208929568137939818916649988177232550463242242230462154618784372932360242523314290206528828664838117606359936403056925838443387970927691076229700880332509215160640101925548162119108351358007375762770715325243595114356456456555737457578235954566551253607848737915881977782537256092907344667988450864359127757375809192579176934018386752447825297007848848620955864391771793217167694116824928702998432933805110182968724193270811075228793872107617466455420659640120379606885927126959724471651310344450350266403638144275330864230280895467131286473741191179449375046532575998408176522604474309113459924950519256282116953904871459498994241912720229369815623474466771143315060973367435060988578438246178909047093613179318013972891445448771546106540929025597354711083043226050432730888935210263866993985372400178049935210315538503303682707099199505523015417555113005672976695179546411521504103738637047139780291304748972314749609562067055800927501121318073817515344810481458037175212080842926282363704645137988825991371944571023622279427651169133398318771885328743201004605026649422791072308971906024239490171727416038437415355444096525295149973945200133385648687713518950404686370063256422804087213621273171167035021428677644090102465329292495534095369933518081824701555862235194799648197003320834870865189942426071301072941163396254351187976296544343837849614540239453931763021871067501179737703238597720933775169268932233636462677523764212444466364146737578158769049073383440498067065169151083250798375158131607831204063523595770778377403333846375705188164129524135965655664698109801796841271782032686458692485242463106994892509745768757196010580582098590843605712869617034135445944815897575924340313479828456503845602573566223072957230042259720918958386370251651034819507523269990493775592405400388052828094145498192475324445256433040240104208568935853888228246137380703672842266926718436728459744847988367959143426507168779578138867545053175886083176736495344449505102800144179636243324727421950820237149225026490461704165789804120721721649673224830508487456789297544245342401184151566884758967717429946189067795156734213149232284760709117578710525154440209731590562338733500117742071657544979536531446821279937247003440886457972038482490733122441206213111318965456718892515301958504479345757029145240413178909866592052511652879417355451661692908373423175005386953904786872135974982489385533044179062106499715732284980567694105139238750889025121849635785133307077440422322830288645109917650072684121705978409471774306769760971171814715243133046041605567100731819045485515607688478503746176601813342029904886009824135023835745316527288467340060606973129499677137750150300484712141926966371973345390357739965569221627498310141597024110455661856592570555045315908598317809807367591326900242348322213224740246117376169695513166302379782324846802330812574900073381043846184546229530990796683603731681538467043800262161392337468518638165590311119079408150158234361757716343645658450029062842332931533651393258647452256667462243479841979016713269921632547929131734760765008257928500528176830891716225788600286550623352764208306915292563449435069187679765834498688837389068017503817213941078165073917210694849433000824460407262941690837301731051366095491577067350028707944135475361916489707600859132492319618397265285556504369655681970466056667215704011993174610507127594180336940562174437305674820208556238720394315955033822115685027636220769842445747961441718949594827327185805784331866965821379387911347958108734873912739054872126434699638980153163615594058928010065176658264005445206969229043058622382728334452835198843364727442160440299177317479484394719540774987806824505164290033118431308982102670176735653002631584167109052533472748625684693923100131894136836159971673669777969124418909437814804952663482364274744021036770602520641767279045232600361848814852505523980295493185957384918230441271623481231621932744759687856565172259482767998853550694028876022979722418501011036113625856004503107374701447977205117975497748887193441909647365863747945731570313253356262931703004081355688959596636330498219580409156707464602399952101574758787335385989914125177166830038215736062048969316420142568690980940609785405275521516686004364512429130378948867992084859083015825557172924766909796608290439297763594427812924682056088512993805889794289708812548518259616566363871287452793854116086196390734622812453926632925303565397410117872755665486901843163504992239685832369812509962534327624291346660777473309174090385042328306658435170484028864048267490060242324024758006462457289896890669518756758062614343723101079431066289324294742681548935029406009316036072781935769445006189931896372789364605880918128264047671912241356605260776822687374424958876796143255792290972007060952247661812174699729147924674020025660571860953489212583927924880445228857574519540040871602143863202090447064029758126398488723015794641515014590352002340985815610745897032316214477669411836421474978318704330762192513831772087185995077664103676199917962790530943385993885157370455864188247195728076995046062752850576266408570455028794113737127989497945513024705793964059305916857383647482620756744594606756313433388489702122187495450748107549195627431911101325355738500935832782757153311307494227165546686947081438555007763512184975523641319515210904440229603042312227880513969560543552063611468856893400379415216008780390455026842251978276105448839917089789842184178690002204677722832699330385475135259558575492626699783532831693497467852736505452894541191131721880186840954144777162532849812054291273148328358699649167495189870949591075339590299506628674403589933152112078139203824435606406737482590141101049121993932194637467374858411120955537276113188976990878337923779301066405168267271444119275296046722009044999662624651002651906573149376947298808534886534931709179370514404984011998358863900948252402500295194651430564873516575991130708991507643851440896108760466057990282154920297249800316240538582097107397303755186290578110805609130832587665765519488247726903256067054819076607248175875358785539588718789461320693807014418780940255268325703231724803447438830895181944084110272619982671952456656280313711647494788345559980900394371694673008905482958365119429230631606782241410412199964037989717249972411095978732776160133052931158014256889814286832651698648752516963532900485415252429646718084290383223824989049479949447076408473802967229396157469326243820446813987841405149507874901349827560517331264722880644392774813639198931516582216262926241482959826152011666875303615452876020748475339279274901702074142588614280690128697745899232695231501462124130842738305959182093332576852009956026976825083893298429479796394980914208557267771895090932529843685404971568176571701597700922970544172276617995803486383451216112604120847972605303553768798547857608878251973965977474438666736137217384305712404258220605024001036268584787786140398395100705872985427695705275461391882674262176518457773593716225556081564274244817158061412537467221248903257516092618026602967677864633331522846940531784576764849529252782460332136287992680990065335331195326855453656366174527421237280633213138238041955647356823049344404881979579840077177560826358289756550208510195782562039423942105229159610719716972527960550947902183965596648035686369828225286271890776533123591651427802944241392765827029262701154776586156071970368139725874433961321598327108604959494401244061773222839647168046657554798679062995017175725818636442030544871253356090210489404697680488841524296684365706175895698964296810976012460527373402420541083899475409701057134870846041713172611096863618733887078840974392931092643590367096190783900238816967507006344972661414510190918020871023452759543426596168147969715588266365626402811081589763213904483269624675801627063455841011476793319918135663695049355860017034243807421468257528315403262242106841133570273066482248890525366142961909574544301853044112542905095607682100030773729551198270888938876241861676578155735745785713851611423689849076181729392071503351481574438261378221669057016134017634024896037664316909190135211184183997267922583058215789065267187047208035389247054597305821351536665147701575899795153691889058638624593435072023462054585135221632586883423541767181245302966916309758864590462527780808143260229512721159706863098083068627203464708451285147924548419022067834791413054038301223206530111405465290112585631518375058133870484534694250459611923552128506784119793637384025675385619863197620191333747272575795165362916906580685860635326330955889594447267639037907660661573174313605701252295306053729530391137992237374335859443457101137064969512225863566436742282648898268334103821883565382253231579259009949776830018886297138082100598682840172588229244268739513154155519188566003166319996715834307085528603437845144404758698020216808407149467821473832087922286876054555340669679617939905040437570407042223089719192271137983694427754857503636671604350418314215301193044244711999446022507179640746194349657739205305596853991695225655667468575023296183899118450640196415983599381266835518929079592635214034304698133203770542282929420050653120283470410949359206743311680327038632957631639578178349745977768132646156519280391992079857025759899600604392341121187443382881748470976570066249768676940611660920064513507307873910636188744709631900869843944484000404978684333053037794622523635185232871845143594417847789780893095516295142607432693805001852593055160647874508793496896018262697446755343792275305219949142949753365975793866260165818921211592002591909969138691210110127025467187019890011060125596243853057577779752133038229923212323247692234479817784317997520719433436831620367511193702535700068694957029504267225751701263690302222932026215156187587538804187772197698644458147318425916851803043320553615739754214426599250444476150490153155912400381801063793764681029771899569684562050990656677111570750365887959307398103538609278207987984120513796809804132299612527599603111433975190209512983808104634416863966070227434175633504611434003358643028737506224058054827460167158853292840697021041384755247414738241896463407774822850985864660280555657014432857303143451578446242912229439094929173157291959551920617692453367873275350892314385452087994899776920855573403436475098561829755379461181080883738591141841505154848825292957521393493110179922220415698163817902933148550259192747134986218511392454903448175817176342188329229761264590013459288381727257959729598469994458755674770062113128385666630158943234587710632322310019936179604564007343574902076833208149385685359797251237513409919438907291421080633105011407553478834225389445897521602336937900700437098509361188607342599443072818278074728860296223323698014686789812048439806453401333830175097708532718218495115811307600906902075785946382354375023661413894000371680092363491334535156409984712585089643049270834802425299512219793919453878835339902764063414258492388587786591461722515067590695491367021507432597256253134949400230941723144714504826825245168317941464263716696838107905484476244851086762840962147698592583518422674728651375547652737295305118289095082453683451873948639340440093805282334678867010857026493426023481901137668937980417812640583223068139825042885034417477174309599265712710108343780893619270495180045753103092212764679998408341541710135810818565328072945904320588999567190150173142232637618278041466185783903711010373489195459180512571109422961709196929186437840819996999551818244064547465968683130078027016630246290157272455926689634154631685805976007276247468561943765907149790933223337924863612422330410866193667490531409971292019485196078317435349257115267465739664936985797144702504471712915250396533078859439099401998557057495262337621875828629988551420870128158908739681568644861966606103439257650669352218406668603560392378179479419045010940898964121659227557293777195562888348050119722541424237616605185407480938099579400649278524723972857349349255517390580016410316788924075266322916252522137347234383563333862297286129511929694113332245695309830303417627078862063164625297294593383220638682547800040541485513234925693295932489386129440750843551453378352910564548942976457606177537524748655693947276877235732604432150269881193405449372491981205683503082709735644641751096106716011195838249768021860013900884615698781756746379039422574311647683143535070454328822487933926466036293857132033513413559789010793508284368156848977608133244384235754281998228614452856847494170646912719602164751167338993847839234562297404654954437491058653889734521112950859962616501403232188153615186817856348989027941398609244675893370580365656670853979551105673411752140641109997079467769229040656070394377441793087748022702915123261475557091109315957142733156929665073224338419320979607950803666255187110175111411769354399846688100484315204350726830347704967135969851220906030805037513375690515504105493800766749844937579826617797253651308914382239044347675279779059608161489495567893098660269612288940279712156643306018369229583345453840401085427309145554602464462242324729142042322537901252694595305377771822866060622031804424689558370628961249417741312826449874120350230215551434020332919324104880987747999438147265060232619920034165555379492015428050293700791261428087309496263667376465654628004067171009923992954317417422514799557076840236245445825194829167985161093365198826756452293700385972467918370239389084510521646561835909066054985591334352969559833576555046246914771289512591081288964027856016006771329732400293102048874479973764587497970447100196128337558490990261750045751411284627880027265642450029817605167430925745917561581536149420324375495591745905892056519309444178712784081757952717049237076167952810624186101554192803450653031928898606142481417262707543051319289541287111348395371774463849346826387041867262304401817051496448813613439286313484692594128546528288528365698297714461459280033201748400806107450225677949857432385826733642469998439374150357217157254333667230998687430450901887740933968958987452168609793320229358790944393723526507691204154395348226980379077032917620285145171994142453068423845249206808627370358135039094056938824924819791393096913057684360264035759530396523779098374466484684355133925495640485727799836219870313821923031328830342460250405792169503623884839665462389353295003731242768918226108329714236160182267177337442508235104144475641021190149311591221558720840947347961425338585058139795537396643740316841729803545528133792606680557154868753498392781395121966766261327698189888828865548836295852598436743261943492597254483163079512192405874155233930040449487177706808423795990286023194970246180830695646588901962724394001562683752726160599143196948121100188421673726244804134845955843181690103149074815159586674170845999029449072692063736842815593078779947726154203193421074367405088883498701229835132582923221112004915621724970347422536751385317041036759343037569656084616730628064422083668801673462242651931107129310303800278689821029240531111775784654181594641175810076173258629092738560078222011838710337326097758700366160668696540872123585669277419306819670521957355525289034630194567680047318949166340437986164904430755613912316210308919164267311447803932289923943848678726505787448457616403436096431568202725832901891860731881230215436648368461307395555467330811541076007830408735279583237385940184573305948586561674639634113940032631943809708701998038008231639553933161118525822536533223565625873498676360550256001125957604368135809753700914787043821047638767651049636674633309824294148668331901632405267215664785172430605641648009710616716254265774494483545257682956356757395192896405175141018511861816522727111690998721667704742169125341617703346516296951464471690478043029635383752785058702170459090276908431147981949405084077150184104533533968667254739369769893755621738072928483492758344281441838988283363298089039862709682918008357807998976202242607136904589327601098002710090970875189495367446532116675336474814047727048752957967235019338915435012736830003507937220825951595104317599771890717409990438729624580056308895189151018534675878824558191888305236637930677693748402711290199826430751776717653034791810751779370124830029414307379177393291678753497376536547896280848622704071838993102536410006601604207301763304206579600497160500011411027890831966015302938790681562253851830923783996209964902253505241812058118365796627066629847978584381116846729939657855287501107215314396337622349944030776103677983024419992314424108864729008203730502557313571045109339155876533173327107797314197964278084824562722474243158299477297221425540090825611286632832782876671548603575307136524506734626610547530037074909144784544013058107477465423609227281008587038076326920762622266624289450638074347937639071948795655310447950578703889026070861430982144977683763713577541298303856046070340241997238007141116160834140160694516799539893601176157514336299290341657741652830109977317114147844332446208011256270339233708803958254476791595303491876171344631226440479646179089085625042731372845533024028241958450267209805282359112103531630091899295941095031397618723141814902315833006554500909601854583814911438649981725849235587551817599478566794235264993658298694804056169781949073217510821737939967131520670390013465751538664037824105171405843061516629319446300669302225681323387704162831265093897816531833043540500432927346530619976297879807988625204964878101292194746594664624291149533335457329366922184562910613782359080946159618490964826768490154067736433893770097206182406211518617470146571992710774275808357522140374489087273086870338344354346372855084008524694185998666805762572103778364419502058643614683515782164363332630539423096343134816429529477913100198932969392708585965722622900168403214227565680983674281309665240404089060792703144328944538602370656170820927595349592557342732638085315507107905420908172837982344057864518318681758066471098345091454183553086398817736962114217034066806260146431393922070462396129984785693750353296664964401213456419245130828989913768884464502520560721697923961652830864196390767237942780099980668093213480302451689930575163741592391912421264478145133553139202996441638972208854429284013029798124980525649177340064040853932711660734830782154263837139423495080063865069965188878291210509208969298980867683801797974909450672915728684095916580831417153784106455257019371371622277180338276391556135210206794002342064019516816746169179081213806007240132104062857391866831389031594790410691799858152353561063833435126918956371689412287692811177940872368147342716985950773357984441845477289623980574503619391442249037451853052185686711424901001057663905292175008794177339609409640833516619154366536573420069070705817045366721797265551513520947104875390595864622065300058337597306837534774946086231533512353411651811184979808945150418182992934066719362318650301224742129663373203816926576657410847254067395234865991534913282171374209567447767402167309727975746067051174775312892206864039976465472588534738312460977097182877207760335365082698910908454198990983241239218012246246660890230570303404534179917672661968434934561264291255749248198541224480629834202459677532931572065967880030604522865409239648981237582508339841881118320931554634600728497147503948984082932959087363348459906587302577607628146087842964872791844208401788153471461812531428829583568755728957412764546918558658835014899339466057412575866601181056392018946358938909758842686253461813330320498501334281474442630127523575143010576589879630719421642117790267934542076122090541044225926063495352657706189309989588248989315537459156479562759060260080847787496342509943265732214770366455254032663121405895768002305975951963543618349475648766994438650884597877742741081757193503079429385952476490872476321681546316390474360046689288621982090836595928351887575400279591649773111739634195601350915323554078076902619728101607999001505354343262196034116126717335211991859630865025246032861316376962503206085509616816140301992254131182555929731338229335968278422295274265021860780399223392839257240532713450187505046264332470424229021937865583121273923092440051882599899574767993521461893801271596273662884592752840333759286376445569483459677030772193384735711830777655524836284189663357293670516538221171562192041126267722058182387893770741525730899092536848300829138887512608023257804365274770507907534312491952028941472378732360167985050904500962219566370043077420163524793959656122889795039310999805890387029557047631561490879853512453758151659371318305124158042288176563202970410441954728084167874608046310884021132608787704181515654434393798064997885147003122576814818324723608399578903629151819912280466442168568030667317978179133276131937928868768507264083504556347232669928902941288584911954773659491325793148736962565197281265408400948065195757946376681765187197412675458495942022182760891273206168751286145445025494634342604580031218895488319982353765055028850395769202507012670898087427919797658764228718312206933979333332155746520252312242230751255034723542606603076339197137853323264422914360172226258921815559636289798502098920160447542388718914266030681187454902564711827323984091269674355860318071288020520661111706900885805329620537433359902780732431781738408544634667854704318926556991172602528828929254470048216292256692715890280599430662203298887097273592573718958189933382070758605099090272007970889951293336812728609626273052973753413496989125505937666004200795722519329184198938931403105954351677607365312192971826340003974678063375582563194473599591989752276614969801226254284580025246367038266200706738507420183880987192581356131248359234551300342601945254045421322101204575211347426757669393840604522357286411194464344932860835612706495981447516586815285586191060118766249715930397925295792035035635547940977591125674981367432247056554281933419315700668185483295034351409137707931758352457859996979200098216396372175635359688547499048222884138562185970024576386541648448094621443091336552050413179806675248022248215403626074754173085868262047415895058289022586127110434862475936838116048076483565828673724338086661319094791796061940335976946276953798565529088590594254489551974164349884205907059622738306275468240164206500477740765055952546939285635138062508254256702736193650962151242812859305136082048174833877496487116547707990227334459273811621330863430147667130165740823827288279319731121794990485062463323244566016305083576244419077044038985959643350682642056991002296873827255039124718012648312590503706377672982399985952907377207259468375854862144140317375745277565632516031186779120573940201115867500135471134868360985856779489900489477160531088043529416579230033042102093250585566514597381667915997848660683236019951568519314939918030320941138608207810009628890999789606886466653062806494652154663083276038375351705918920627410134707458590580697285760715353084147009518902285381462166561192614472518601477802616682031387813267273584510086247480288552567026208574923267878436175130849543635267715380033094469943309491364341524493542581475572329210257768944392011297269227701514810777232848642307212789493593744254545132285997005899849834960912074503437720384709272044935055380701596405773955499031367304245422458288222959543789870762894093296972010770091546233164377337225902461694000819841561484193529398687410894395187878871792146976868637500942787539890289181956124578309555930217506394607746185081922673301311196620401885659664037078661596597393627683086345683445861161259668924378230459139177747530229897887014821885682768993329491497735880025565753279974849147012829518836957228349888119978205098331953895140925420597839412390694923949253717641506949647286120998871772669692641079148908597663779376646168591252975824447769424731842425030749758082293154940145536546150034181163849942354008392395705087598037732382629751745080071096082516657246278501385804398317217514470778145926171777552659955939463114630623129023425836053851916881354677454758760307982850640926530651642015930818392147751579249663917770816876136332578705872548211580063301233958962986712148587749060280187529292093453194132377704329600296116299134544255658923166817065846137601730756075829771316124486343584903873109896908497759269452322731006765536706920738917009742082795653613243635136803530256297344004496127238881113952369262786863740905347589092350703155725966078284861017117542500633716348463650117263405643147541052271460835566518197137661554490194565221027940283515795757236864957533953796038296581705223461453238090805182653928304407836744468054845070208656694472630965051321845914257083745005710385129894543227637604473781320117114348637704589616917373092088767338123960042609914965053042460768639103005554142854557864395717169634074037623416168185696503436885372511730147600717197335769745101574906444829892473867764936631977750441811299023784300166194038044828152943219038525092138594081672990361690938625229841792970707644860103385551079566849316922689467958199117471048890672208710320013402235795873009934212154696673208438530863482315144865289186017796650946858286636818804373582060049460209143802210930218398198061969800232067968844195374068020634464800230249996744840696121297055573215211383665401112744642039116253571117714660201318368030026943949414597563005555823349359933037378189269927858692431202723537318215625634836181800743513897388627603842660025410196432392984487710308337762149549303808717370474841571886365884303470137928768645993663170631605877607557047459589507654736384228034052897048687424596417090071327846367528695798694066265248250965314120086525723475072311962927783627964099661713127107814988820551746680471511665306901463077135562688978756735502639851807582831089762991629719148674532284966974110099097199002622226231743105893500427304762710147343770616912014503355875736994715467316391829457015747218589485899698717526313709462200116917698737142012914602296926880034851072121974226523489586044653364969165357517121833475658045611873792875184095828523657168459071814773588394604813429578863039534368661869885200651743687561962477183643187241699144651216782853198183087135401067768480526588903377649354836522204024944982183253596193778443764670817640095349122788858776398277660606655062564952660122429681210870516806973602616763563054106655803857697106711653957164679607259319645673334592329315961010205722686276464124191135397989929009332189448336142262792258862368068045450709494430039500203921319985227609291856773140310942339013516069292402070317792166708718191032629772702737025275254701249612200383496500469028331134702015526719438554775232283362852119065429483990254880956014162375139258683451267878413207806509766273715417749794570354308023371284755022019330990480211243829623393265229645310908650201108910342951941570567610405658433680547319159272416636258364534560957999826298002587431429026970644386391294566585070760562749640740796922777299619888520893790534964523462275354071534045383697870648536536539261364364403033832890145795909679596732377594866686371184712175839647467767378475862864339247462336787938748074789579385422411197025988540835056349680050403985440877873670428891981598560188819494082345870502139817594279662892469647613334750090820726267049483057210393544163876676376339961253518739414781410348630931450106127664178406908434876028896138056700839096631680603518668673128905267147457698876885358885748152599912169146344468549554482414750477963090710782814116898184972964692593991306489405920807411933204110117289120661901643391431687467768566416986230152649235622946066743216170193426111581306181074845627578481777477997064477544288961991791161005762405981508434144689067541683191206922808995671237793029752888434416947511872750661268404754885308161360615653835150758051159279835895441206483099858586124394225726862050255450348574820085425409190475996578600279094645929216692344700969720122903063641287971547795597555587360786799840806797197033044182831161846667604612321216586404947072035242293216415411895823315406665464835404305834278090803707988335379006888607313568764001771590472299041158675760514588037362658597604492729868706075373708125854646382791377682213308471859598101167646286157311007896128036638089406660320767366200260432544193493745422075077667226571149538642007958321698684109733125254798843357867077727567367558824184971174427399405047442821682038740834486585389453486591607778820095150759223484986595879305646575774888285667101986430367620645311095100143157336802071510205943221946190589894773624609844941177247875903338453806002459483471200643329875682604605511650959806447989864139284734375722479377697550074096056707076759164641223129964563892890617548415775251529464735984272574787124637034826134451750201041195450341094428515016683782778305875036617759360434853803730189007932967804088295468711591395311398336035084062417991307211852790837930750828287859663777655360492588574220802773478189764107348545723382724539814904308819993362955155435294604240334420044641310079368622666319125281561548622827430939991063570333902716240360449766699323705500420995368612524023549798173891405085037501471775425732218608178449860712678323851370394803676617170944245508710117412586591838069043166922075717657985670478088862190842872350677797260512278341491524400426237922344814763238846715544465078258989258015138900784564364730038781574091775669886687977665018551616980901203636067318904797905405631893606521630970829415137045918313783186109830019274941207516442596264033833465709545655912764253465501610572165183057955394329965612566132601916824663280187981226555516796734567717851716707450592082281723850618616865631082189614017940245396304108455155840158653457552420854878258563981253354107968100599364073575051700962313924422653131617852872541079947762228604858669823037149606309802321134145969541910256094629674506717459686651417630792854779533005386668990994884344381929025960801127731551512637999959906431851970869339732795760271229955285724800504080053554530589011282127181515453451136156881626742039795235396944614948005936550499190076845745603822629406906492762508198921452418877227848382671173621324862608490598706837330659864793132617224008145353723104043054665452081723555774022196034250246803961349252006395212808423634456124496008566666088487459823758041824168514198436481598853974650242890022598181927736377359408162538120219853771594497882622224331265765961363373591020373934422349410886147929996569138216901665966518322011480287665659884282475750779287931302157025371351349998382045837030561798856155001028482430597077233122469731083958399479160234136704017149162598422999719490733504416797590668702916550109045431319966811377024615855062656246777504235745391337484937446738224382422679523684541780895768846348372626505147506956215310080360718863539212958126815674626721523029500757218865566170384196427590034844137454596527515621094885858947976309020921823049163057768065720885995601342665553914527978793044178948401160551629427505655806242317887021624842843817350429170691014295489766874412447660444832176838146205131927081184020297621216648761794109756466128213390479718588538008478279234791469039697555835117032892422577866101426189155644620560643114061899701653169304941159828197471197929234541923762623438623003386209553514035046104545482499608947968251861500602611595764804274074643315111492337452630123729677690478563191505640070210632623066409228583902581619166040728382261411495573618099512171233198532954928408078038900180346736366550050468152315035885171702269046439342950685604341495461515228250787160157527615591219085315293347440136025689385506714722937592875589751171433169525022729868847211422012219094639987140866099872674349658810614996160462993047836495373193297018292463267399958351222442300559923173117020229753184731019591029957818288305421996001108964057673533388610186161492267689888576529915467981084565187464650678580310225303701010704123305616459133673053775611377767780545972466285797347692649054749798929944116672747337843951314423480730959061726238990175834839150056406908285155908018913595003936731095504374675987240958967065381951001075227015439014298823049738225564570766986923479970163702646971834063348540687787180228574806215406228928808243010835825709784670895645385187681767024622432875906892754421911995931304468224141372354482915550146962627922879060246979720055763677815918972056985276623815332368136697801464321394261327806864844715915407201215778739835651827949729909135588154211052666545098070487314440347840233574316328352093525740297677470590331843450463832384791359028570061692821298871824405503046837906529114383262634246145888925456498741334852026204244028725352051050659070047809098878592953407313300071632515689350434787990946117046216726022250037544194606938323680096333390103813783885477699571926007682291782397452423089984477971079660054786954762884059933661216744612722248403429591776436576629754138261862734843850202485211006767328277248290704094856745350392153255630559430776760020857998894652421732264322381286893411599551657382954921738942906487552462964335570969179903791378746313623652569730601174369865725699380768879937741159825366584993290337784684781201408962641246546542282808464223271295647951628770386941636919602845850505459034755617475107793630233947860699889385149104799804248228146353322023257479856498784503332365965300516338558806596734832875932131376397180483652431761179737345802460693400257329538613016003332506702874389305622072590800038453480855427492335558100170967075600827108261464489590015514331755260768751206304645973661693244737339667496071344845027805498830352162564708037657148898159229434460287952859755881089571393020276924915504277956186072332620125172302062395339100772861006461433236406730874262418933518503391169682452219068000232338227925127844715916877275029097188898287772690571395921378325906305784965338730988403651021364805693129813190564251272438137324542664630698136021118562730029099437072597572157706731167206732503997063981914943884893535580753210728295838245006359442145016596735329961779055076682457827947892378500515671091003245086328758338070735737133323690528169227679617754907863004547560788746640455766148575530514020101170909225697261523131921686897684320418016670859223186949213274960567982773015666543983359845825146777166126209578800711952530788994739892156022167232831094735847249081523653161598127814533189028302762618312395803135660541680953388087623070205989385768160528871031773583280622729961732339975029394022005939603277449376472244596576189249381005068039778160023212032542646101871844704207460920669172633662756229659560180826908905454109436290830825646461567048356895221860604386550533153932842287925766859088672251844873197505767266583270879057461835686934111472934173120567640887225722378007481417255788111738516428195539106078355565808811863860494429447155961824043206539551584363879915172501391948435832922714655742465796702069768332217814997915232365178658331074259524385611585220801224376819977485869031697338958527487008811101689112928661125831041737361489222166779813656266948775915944148011495813586654984098491658681735845926517429009208890323091795201764888119254170263681998727832428988438901445119503554038456181875244073801557021556388472844630610266206212158510921384775427886694761942153623408175609893541818469141701865331629666760212874169558652287617813933687720230848419162060506321995315509927991005935252293367052090281093261681174060071253539426642699202553459857184027283992590693119903428618321175999917064226709673135116746505198187496463878997142483114847046364058436010206906888590510550168532861089861921388026714691469639862898173335355879713096375659045450742653124011266155182653455219778528338026072573557390395506185819279096771227216616834869508737644497240887329483820522424619215536342287596135726588209594082097833519654667155649503780517405110185348560066364604586165420552669886353666548090767861274889344783306007531770363935274001743824027649193683643174873510539880688448541958419916449360308283987500172064994223000910670767311074781517625893974343797596520088089675128649486041247015220013587614749329903898941642659215209271300722188307597718119413245363521329330682662231919115646679666994933260223360151065211379874221830095582877444131318368455990535516979738847494118139909056541275132534793033500920249345525063813320067039498706270928076791601838803459201757770754456908072158670917564235720620859810919402116258180804890636647106047384273284503179390469439324907372603744631056498443367328657641541770978750759447521787331468463500204256819453952943727210329539200630837633509557380534657406521991671643884199896359968374226962746813406402404914970075648139761407546574135003859639846444709693214229557898709391258046747440828419293926480212611899939696757232331644856308520389892585562956069301033462688663928615115009467106101284645745910462672504038772602094268390138017357527310186535332378604374795653286204281136329747378812558921915566323993794592228501895598854663846180198515897564349344407497692585179098612201305835510383101473689031550698146496642409641697443401737354900751158591414788912510730756300988667922502984481961060126137795251782218495050903658325276049987355087720470182206543886861237237068968434570399934700797549464306671472920467105599132572480152640791897115379245575162950129192863562706203322646794150520207637755513808478955642127728724745240852972740584534821750577647939482166302542522121127282485682892716378765096342137536293335080103378969762743742203122414899013648111177480612612266555003201019877312716293888721267477367297148803483687078170227625145029098230640015713227090556919572190402780732202360227251155378903249480198183708492195830834472084622303901813795272277899311758761306153876130737530326629706862420804739149181149456236763611741360462343950051866548782269177208126770423998255275262054390122082815702581147696298061818539277896270222242388539753213840413030095303436504115852009775067525092942196361610381123572380203169653977072515410371556223714617917988189731001836487838958748249366090976321586965956368347035658387219500873800104097237431104883690376188578544755307576057871087357607464884498785525843504673760477817647197098966937001219031585154434408718458415213912378590968511824014687314513829951938356709563231666013337150985828883555272134022295808113440172449820749006543743248873559836788106952477636455544884313967639434981869103969538015176165237170226388735023950495343399405319862358228066710574183281627824474188271035611702890443527349255528344586980870411515853162962247559164535568180657443677938892851293319989199193833247871386656836373469310581507068599484046853289171574010706501878040674559901864514045115285633353154761981178410745705063798756961759716599263430342119936837708759057063733360644148158753518092102825985950061963617931572017159487158434801762075003406948940850011186313167857567597582683130058314412342932912280011879747494551194627862860069086534929145276378828599976831070894235645346277160600155505812781867465484370513934214281281416404439537700315539472360389723689718004132682863352681798780960727607672435931649893714936730093400445953479668473654488713585156101761937676057138390270416617060172138096677488406528662278275894534117399793334511017753291328224154106338251156448948625594334657505845768160147244582405642809140106043971194511231322257398615398251586483250481590973183762383314249514852682356505447260904209159956194503441758320055373891178268157440444035308788687130656357476680138573587700996657969097697794207663453443431052391973130573207200332145725276311554306417760112085981188870095370532817028191159141183401764100469256995038437200723786372673760194959063209655992176293191470056535823041804518745522041276066435580559208801866056994098894851573485238232894237467565308275174987662233724669203782692504149677768098236420333086395815602764859499344432213543183117992731474078051839288973742398898736081619253619830865498700505796811400669780322604512910466162482429493176417599228491852425226135059832997122385298275410719260418308756479244322790066660825606281031930795526935372516820131910235905991162965956959663819972211002461256641093259561721333628810695086963814460224909985701169466309315549292483153181341813284523509018000087369914247664174399826099562045729821874526361090019141156716386153192666536650484042000249953592539693579039706054941483029714526057577110104488831204369407647106283797523099860816522374151151630012509465861656741633196814798437184535045743741249684209590364186095307577643112789673252144064965682557390134531793310449836766745500880420661449114266631458572751558848801114066111662350349033125803750856424255292174285667073396742200524047442323885030093075648041258220094502284985342097912372734726149127689180022730939645057295728328952524532156685645015243810070719894193515504659212286835805713862118585300196655091413126668362698900875631240964017157590844739433640789842425828901786432042269422808246577419768149255092700147561881415525383376354094031713334060960146285840875491582957645678403551533810496368209807297162451182449633763057713314944696447863219524613583481394202873489346077379041606508255062939518659926982944801145310069713387605227413292533527047940497774870538672984016407877769091214898874601608302676622728291280554566159141609770797823042151960741045537735173607318361755339670990031043816000350383493252289130913396144700669641948520787768461453550268764027138707187418190444369154536780387926457720399795779812671422450977344952098998330782712336235927985753205558229483683677798727710899352589021743892295750582932212469601896313047684336810238734851921625898121479031575229372281722064340921856636474626954845240659436821014257667094246934819313435450498367598553907491248798176151684832393052388011979441690153461474264731136477541172216069232509869539103213044560448713256393528009899376297487040699717253494375887613654886791676331686081947545616483618909325525039128472928806579912370942154442131319601532333801229473425714695037745221092866844969870568069270847107834114643524035583929069431299200005565328482738203860915016727384686912416306261568250623248865569037632410547746766709244597263116652663438742186722489909848052569870078625505630779824783141361003787483455140065803776254545927317513545034006976245474533978688215466369549037004497862655680026144634038784022195685582558744546469253476598177585037162211809136403695650889717262147880469311806320696909141998119586248875821710731170580047733649028079463357985523012399791135092936633727155819899259384014208861402071259272675881273236799722994599230999686908887249205685694357777120215939591671837792460046989754020285049924887255854844005243680174560011913310393687363770495693065149544172409030922457464899253726046864814897323217630321562953007451388723842755824659708242092631952879080838237218827872810695587242715151876275800710056261068673293779682759763791538442042402893147455319394757336706238396579452637893931796753357145857098141143319945624761815516658283100287306412838306016039109992110293448239188943238990113160039976752195578741312592314456840586629783818780135076432184869373007663405814998142688921787763735777608827553121475558340025639870263106520864836577260736345536704396112421335167449921038604442681738319886530651553092153487472156989933667567142285613592843092662666623829842890283268524378273032358981917396800867272988056019455834962976485741800987230899493832604687747926175961294116542122451158616428632431812905132411326546960497811229838729386094344457499906183770920491779517247400837974218910863548517158525854792084691577660577086772572042177457878114039597651094169337548623240592533243733159903221769646601190504757185347179069951171415666030744576337653055353283952447509786411673236690909859204722516956815667730063222849979214021303256517191949865243098930127379045652921060018349612540187804322450236447797292790284398413954826565005946304130072668343472458520716288049276145762813700223443558156683616697122252334433027890671307289045643538553946203788477305566425759527871007732734493889456242222385562152447921721952721776147679403244622639535208655613893465391704399310280302083249610592077922404566814777432292808702744617241354341158197189736212235120013913940978409173680867792051355392327517336951535264060321175963067908605382690387311997702205806048822949084738222996367398628742181758197908831297642771794523392282194489385674279853981805802494690887681887794749687317030169847429887558357392728198223722310412736064326225895239812735707798185018838820077968414516670222154983065783156413291267824851203624554258749493385433114080259469256999729834096629323794731418295673949591983126471127681909929462716956909052591475367474235154326608339442806813815616341935283785148701463477892240149231097306517302746548722437431488833747499946938115415677965332463364154798034963551134861628725716504173772379659363578007084634495728105809927142915405424424158508142476735998254040405457585018999593182460715332138160964555903235961554038397128313164697099525865273598644580118830151326921122311012797868064337520832685977932108817651639838995371307685629737892945345252692175647693850729401985736422555316974377161363514785505701428572133112676873451293963927602836761837226579980063588112463097232681468998464585759181497683083343269028751771432766360336792248941748722569568644213879100428835922679503341725957161306299086174670369025034169042215278345114426307807363262181503056222985933023598570312395675463070120288795012829172229364309496472126657661540105756331683096437948606572958805375450125003449992053350230206045614196880034477678238103905995715234954215972787968137416107472361330339392744542482941387346877528708830544948394560212831292969369598584588730390009224586747830247767067863678849558488264304897079651512328407751872937856939500943794292639867656171832264774118008454406023896864422113693058505788722961447023528011890212258993901229065295656747825295104986721745698004206508388757710969162035727855901700239525913012829640438093089421909275365005279132220833235449683995432990860402611634734194106893637889145187052259361172942339613400085201327180858067734105448084200074043358653996593662391174052976117304676391915875819390319422514952541383633356671883167528284763900792859384592805478320138061716690074309436002746208397433207610014672072563282773892278831134371316378952396331565008866637252972750337096071424514840518922913929387929099102915882372138253916597059350163219465857638815646618692765754209756834852762862831673824915870076435544633827668644756618330554581141204801374456162058442364349707302304697493158294696637043600697776180560012679863433855311757119119099887938301008207318455877414201906219554228142866675216786379162369388661284417252016874455169689653197666817534118853186350700216302430059289725237228370710334070389133233519562089589756319174911243826745794387259883507532271710815326936106714839120390655982093811693137995787966470488079521186445146868718970343198103780647043529584559144635821523201260500226836515628693375621882804842072227410720367552439625471121110679269907097129258481167126473477764568166539820130293704225288540548000632901889460678551822117907154958177317817488301437640716911173611550845205332918968990075665122610078900083882130828340739206182001049420844874648015367188348725293245588821736069004457214923132565839073761251708319115214462379656907277442295311807730038693929236759679452287716878990660344543592556050877392717249330834388870942089195873400421073918393692842565571077696334100053227685296663429979432904662188370722025288492610848646770963247642737717266884105793702035273757103161590290920883129238078084922221152159379480956144961428963023263842187963607986450781860768123214429309810738531876339608377292514566147294503123205349709683801199775739566759054834803397464663474192202051616543042451646286870672588233628035356256860348707882029127957014260991109797820491531176750453055105894362052929647580559063962735084347997661798339682281935582502680870361483372079726850459774832741733644575071708697606525600864530700584873783951714552775515698744814563845580665743253270107095239557192675937725071459761592642066820971308569828460985498848957273942913142420274051584888127396214376644925778934381500710198633270702896050326398133869984634481063508991479627787094192909129654609009631367791487497400605127693142701864619288202346038413630177968294994430610769846254735474634990201572815482000861300943572486985774298544731267618082407824364222110979542974264717959094478778412062032174533629539378238797306884068458813764161868614493248545211824562936874172246934370969702264976528996021246816780244675821915286294870860951423872403900991949703647234150813260146588538309740154563891234161764556380391440406626317523461248738412934874617315050936047425274836477760336331702506054042991890114406575911466383216740513900951302044149821551342475029839382842886884018978459763991985595086325466807383276977510136250620596294504037315028155394884136028002346374616008196718764941640438849635803525081121703032794998544109823177293598474843615200762959156670868139388670765309251388774294096976298574936340432120815773009730076952053263410161587927559679208488502085142988910209721919276315704862602476180504880936225858936038473494957525220068155172390428043814666177016577338308341137725770878098606095210136245952001613228260117712279616475289335498722048743018349761579045580558155496674010543223694463756494372332703060746495812039820968949397211466166368832083644840060208446176675513064149232222992949661278070047961238689082267089225603894287115397967824496113100661607334735620958485376758525750254300106569487482209706288712014430436166672225916721239101709068693311493681194639904611095154840263536704866434595053652209421326571395945845834514537043241928655709567347534945234130425028877886009171423406450132049886132747140286312880882967381668157730016178246459162138931433387543535724484133296750841651510253456005751374903384881223164349192704136271708717942573212863601214168659095613049925333826417109425298180545801063591078734390794517619894509845011920561486506730450926642451090195542271933784755590428671691611135190977765178968684878922981156533129289055207570333710803909743336908865548579821554654462248669699474960249358257112336215731766024513717924170096630485538822666757541983659080308862025310294165191118171379177321794863102206250503523968127805564061434088427857972899186531077419071173024578297815089763925091994923990738476988412760239413981130524822027221207974782512187010154305135299715183530414557128377385682957481968348320653665240590024943966045101570045383888747813400810763191779291478687814226843781650240460072429721071049322344358570221146402178119594288591643421409527723045764217015738723801851326965224025665012585974296100445395124875329058278921394746404453591049907062020529359370483418275165307669923007470852200087680824905993684872309898308156184733590169927198764352480920219334242839597544769864692170463286836728209474005181589996897722957330536198092516697078848965125291130954670287317490845730364253018406635131707845278938436579642964044319199182817354402596835658036167190913945502095025886478589846974929045303107301093651615721799817549336161023058970424716119374496509052684502955058540996402861750696275887280692486859352695505588289608153575333353363441713042951509590143717979500684238899690695769742116129875597034953702419543074951792732193697233678979555603123771898550248456781507677551771738189676818727098524279268547099148688407608936127902729372442023976890116169295745499738605754082568492285823917791230606590077909426344047209979416271776447156968624565966775703056733690713444220760759229467127034621811523688510900326601510487827626839802941636243568728086632456620833153791939841431735422147903889364000300045394840032954380467724152013705292572670807964200947125304306918398380424966735875017920195305679492004427316820460571166086708815734964404375518386163536076720773048996916791386946259917157578270787488953913820343878669028584570480192931105376465991632273460705476118029204000549522337784603253874547129065438118615457012595267296166684108777311744516656008139594435814283444335962776577146782700269328883357916221779571712722408360557722163674387312460252826201054997811851042517961454010747913054321343465620100583815502216749921212263926650359142782061327036451676674306996029540581218883434758015967789662539055144664055605468334694632731812950019938536050041973510910049578202644781277144049840852458298046520508682114502965630602600202553386524242216480015568656539083850487195643624678333131667132527050698771433888681843341280160497545301352000969579592063115979192164641844238858989985276475790359908027966482745853088974314290524691592221393940617780162325623334115203164241795714795236609669641041495465748136134797655972229299851996887723583123023966376008856076372443826057768238748502826555298063048028148765722355655065961999895124034387342989894775126679852700649705334914227499475750218357797329989647309670820596268747363267425085261104602273820017167608935123086436207407503841712540861700945427175550501790097973883639268582728124354443957826711006165691761997132991587419251138680253706982016574825243912546563624545401748818032885222666336297463877006621911319236438181037467825766915295328321925633472892991894923408411690445550835686903880271130940412267191297599855806655052994938056534811997923607911811658620425254644829426366429580317311245624643621901223918904170193402788944940832074031755289886587180621015064009805262364472664964387618313349598221718842004483222125758733064547089737434732417606727198055582350520249402721031653103767584456715670478144058069417639146617653019293924942413895065138429007895926013736088382363390479657672031880379960573579344690858997276293612617770731216139004292733164832755373483029006322169021802969906700167611966497088250647490301638158442684627050705271519761728861765239714400147600619723495286400137930047811295261566376646235387421409774373518276213118653840749699686327108252242114415485659465926722940866102891519228169501064416771416224368956604698788617400650735440372798094491846813374110567708513822927424327253055397163632366639025489148053054439670753652826618720023741614666668195315612212954800037722371338687681664076342865451593754412351970573350173418413112108232044135422639447884165295400260008993397235439419235175256638776624189249302943144878929868557071876071289813382123939286023620448204455812005885846630848042731468078913439314075964865139853863794198086843383183809978135088008572379628185014431937661386762041212292213760602229190000340004493257999772311958298372494833607028277263475707212754548173427669567839614512151778230509506036168045646477264357693430154801534015201661566001091179024057964057167636629895074750462354699894800348010226914387391564449191025415947437601370091501915000400327888292785428262474663664681440111517303690437843931667416229210743737162298673761874513436180246381055159341426296905588190711818171972817704928786525048932768362090069186504627938295347475807197684666523414332532233414774875803653967011663652520503459079080749533296495546106879962667357011777344379738396523334392919509008390388964499972563126962371625869396243665878954104876443387242662826037854757149464173633481702977379478405149790451294984083370871827695451011025174973404490564235026001891989542784412328640721043751574981029829539617693186374098582128460639963207723923023045255377448009237920309912006196013606565013244103568941490120283075255887617566157705812307320039642763675908223259377561175034363504088172602001633335341796476100431120681656962901333205686804906469473655663834897828925832081253824999542752962996735466936729628321926834771210575859353964702096844520482072712693215523534544872228034001256711959561039170041297766808931208906265466109166242493515183453112134184334520497319510311470291800779865418909622995934089297776115169656876808545030371793893109684988150821478843014138128369043069100996081268075024268497376369168009428946754797949146722364871924372002618870393742685817330837193572237719175703023002074628370984266920946971445608853815088149995831543330563273992531338504567053182487890779776806629277629058992789396418118213747988286658347674549085378957604625769061745050108315820730805871058663459803166287334944613384042485730384419800391192420150071181476020479957911699747247226424543931295049893016703086057103899671852161377091239537663736864847567326021304992964233095102217482259894410899060215336852457972059880284306286333984082883906221783521550270283935225345022084417293290698435736051324756431228313703638290062699879385159815825907101810860854642405171706686710052512293624069763353064236420978683844921210288066943492934668436484718798001221075020044365902487717353628100480789444781254986876660954256532243755794082310386990292002728003431259357041872664400075553041983005882269461460276122010908181576941482323213648779435875910283372113309681670726765830095849970874127931894616160333319974492734077088957770395089561378872577417535804568762610095511689232130521364226174359061183164736737176306872723703854473546670726350004362862675479443526030280227809697971487024852268854313390810437119371252686877959749994225785665135985068113272494755160937078223726751285280739844354105984628089066384160141010393011940323728490480965572005764134334112918764833012046833458771264354465561729592625829984131501893233741555785137837398387567452855344983489529907172489207951019958326175039360632965671704684450573115016300585977804687313072658776032534308474698707492470919646814906397501619467671694612210460850463983995101946700398529718643727100282444119302104551018069121487909701784329038796150681168815976548110112805672032955803171402529261719259310405414706299231514624220945855353765636262990679120363500586566585807913091343313609501709119265388716445598384267870291683892021711460645697689684319425768357800693375275998504382492771869758619759386877042898012509930383168811767969728901658853822848339040364123810630179534224643583637545442610741719109990126396958603928207327969926972559599562362730061641924032414530793438097056363886173112235115965528901442491315147234173809175819775427103276060918394153490890224106822256142296348058349630076429493869884010450562589790438718141628558679916524466180611853336054434071040021661176622199384857134117192417189018674864323417416878078114092643702348633988673833170738803494488178500341248361773509847207761515801970391441801097162365402777467567498701854254131487111533842835833089837969375244294095848878981575516835803189139086281877478733408675616858823788310626724584800921579609655906886005300000355032513986789517558558875112607556480583472232788752044123329652401692102485761504964735751557369296482064708217567897884685137096621503155264962685446173433045679532980453558227015837901742042441118139664186423234718756583365824172949189790191835138286701264214405172825038539220729894942779746271917826389318361801531552298939493898991487384076471762854361698411866672484906634494892441234231258519722007957653142404296664452063213171503206159837865867859198070217170147158761098021939348847175769977546591127982845990702888490632807810849602967935850052897397313798324161380113932008588918502196270215198544426807123582186313093578225077017932178809005375599150539531013743933715499082750561559389854134539787625649856201688585016336848472964242256507916980385334963319281133341120532906344816350724219960906857202352875179572579088997841534255877649030669473834738721525874511120298577756702018967219147337311804875983022897358949560364152701844189464135915277614392451685955272701970337984414961790448524800404064154274051902393035579724635170672952305376230057085233451150343160293912638192943045122259201089959657761254254465599104650110995545561361008341811475153844147443511667925242238527076377268657684383229455809259154384245148873456859911281259244303785458548235175508769862622381906332740874918050946229045089134184365421828750906252249529144039510760722894616862108939580164238824823487468071109275526942351703972226257358136743818775450718799028151854795499299975452568558354953252849106482986113491165418169169272468597008026424358565211298651790389965834555228808001396119450889974036789372887179533472524641901197929723689271024482245482596150843821907126320345861369039030564117668961097748217101942303705905217232382991494803808504745965549080740674366544951944394848677990032315099909720242538522149692260109203087985367448497506448921294109073688904453885864851346706553469800492308389215445224203839649458997998111804166760533986065074595724656493277680063247534037505832735243265035330997445086193969191810690594100636221624514470836548899717027324354870141163411955838907313078594975282003527222870118166000834155207399969001469602196388273624291952808518266128080955999503301068311605277784079718582062007067484587029220898025063479426671592439988273532699676701145200888141267590280461434036460779877882238238095548696996934462464034502453033317423919118720291775927851341065294295556631607439213176657683815564541682091690021765218124974484749193904841483543923652171566839649951243331834227331290310035070994323388390427884289704534188760907867319099402293524008354505089731167055518376141634985518889705607522900125606251797284779100323108838823523965331579605729549029794013540404664417638587267112721984833356213143840083027226929018259441171351987664110227005223008916144226322862034184976856883607700772571340060900929132372545060267271986478372897600892881789844015863898933403519840021641926002065630994163757326551614314911637005560887068778513075015943204673432733626142940636017045985461618368525814959755448343107503175860039843627353682123223321458886017733221176874711382443088455396047740528815824712129864810063329069881428193962928371222794263316923393661300458003688268995234190372240420025668330976084137244644487416244576315874919468982062233526153298001252701862333135881392991677533353633097274748770261906753640331460451389191736844083635052578132976152583805257655511568121428540579814734718070053470570434736377293646883714532128617339129014386098061900120822564153301759510206580589543813812740196552263148558942164879426829352777227448112857250321751866978389461404726568225741595967211335046932109918345975896424236922847614450245248649486334928691285254932127847161342730118459203828520165537394068659591529809556167174686205921963307685770720009214769375937878916386452687314150639168862491028261992515388835213464604123225116491458978929123604959906350601902868233594571387848228282987774755229010678880452784352775980162710913846762708510507728998890490744537528233819819724571581336864622981215993536898961798481428903156128459970693156121568981084833592678577291135932407231214911580078744910885065575985531248485196453906182798059756473287364154831630237756044652918877786608825741333731851359703988328746535263442278234926146936519641921726381382014344805966050102386900506793291048443078874496089710320965023049671984340832480104525226519780381029348680169659878721279434447395575313496560996731034683275904715073596660322845844078389812698496521278412809234460550582819388755104801609943596249346989488688392475242427721333890563597904541315511452112343686339206605592906263251883359810457399999264782776212508134827112225695979802995127357050864543618488913469751368528503099874613104359652986838193288145966032058172203024919088684199626868149474566347862550646760409388960008062341181879649342985142740566026998609291306322310175846432351535490148087288002949402394220965827918101809086491299468460788710372880244047874880450996272696740184409155639490581176565692936275420060678022217728120839551726430061829493513027823880453960661665834111639075525328817976003645275456982336988519203165877593262391040109287441248032437700021211490289749002893271124620843440580029617979710303202795710558038020767236016272775007167007563312339810473503601517000340264455926935364892338923909540525835803057704254857068114258209741964702198924454930339935868625470962645056886694601273819956854267048412678946978389009089198177295964724531345613890541675808895133603514898719585517777120262990808057996465104771511131378379667195362276920345631237995080138576185459920479751164052092405638534519136869633724617470203689441666073350983670592488943253170110477268807398552644707804187848058412570758574120490260310444840925442082539612262624434513255466679197476962250172357765084533227130755990132729464282341443468643810934589205001000180755706340420557431513073193081105861402162718194374877139809435721357668711719040222058575098764467175534826043783856587326670993770773814688722320868379487357644490076765545744926755177753120724882095066464483169739938863861650124742123139686307894264360756710804205273995445128538616073985939621808734339727883040689116666493528951848654801143233681796987078078050272535141839842956932943215373127133190866355448633165641077338254903807703948020956828979381105660572806852590498825428128929408984564949930558384976258611200677074997862331820758123053296573509122193348028566430437274517519266463263028937984373557120739641168731894060818662460541654942247641124342131025532677959808178049639826604174993780534763132346228165505399542674003424440508635366411648731874386756064292093064829725515057129115498326201587731797815533361042358915211246005281197962508339415667952479137101620372975176508534063678078486902286155967293231873245924166559058808243335120312077549132699726734915704277624864802036763141586264976963527428476268700187780664700433695411001692344148896820845800260797531873697825579381634474768693395667664821130420422504354324126404962481396723262460413019833311039698809495663806292834183732880583282355957337339964581012083136667444085607462206072090911417182849895761681423752329130976145905964468823485379067463622388629407618726393331872257270946377555167364823476235616800983046890386810533035048629645141150210008955318100047725818571367810892400311981503211172259482196739116755981001508859567645918598768437432893546267643064223086392956343005437984062995907365323816144856607897774580515416298294896759482885869682164062892181967894339618520386447333511695151044304135535060674076922993831467323544360517622503282879106346815670010199068499065976844392897345757828140571562009549339110442460876682693640950894485670634429104436260769836012165998590244463308284032076629264121609378392678365308688172710296696772652162087940899033227456504300530893529212101785279674577389069163705300865882969233526153649608485482303971015597466294752028723104482491798928797255964338619045163257451016800393859284278651326455970063580495606628001501360802060882596936708608612993013123862468210031044237799591041729064224973594931784364013210215086742144185985830122930221946266573591354582690001695260391810751721711937096278204641869189099493891002399421718967308612551555791137449806067254138798461726286462397731845741033188422054897920782784843991484706951488505177249916590651266081524376815864882389206238078581493417746092108204022693221361468114487162230369055175261066635486642088294785000314696939879824538757416796352672054715326417079826450736146857524886815926007250353683510963100911033205879103092975532315481696572961784343133623485216187383753594568496382148505905440221224839642056388731956000359966286000652763414493326078246373363787993177096647508754548691499366558341786044122201863971047159919933599000118868181321563233519377923277746736833688741963706952458880419139559059785820822492367642221357525176078798532706285213062983836172762120266043842040345038869704302067168258371659081203694743202124196674109273553557294260828710879806710649594854451603343961746809397659224928176537681550485570221990361832560306785482396019938922449628903228183668255490268334024476019167981301325278445256326796037113774649921576721410342185292839099614475766632969513050086590054876184337271370287826785244962137077095608679320115128552633070109119610078356819077306487032731133584481862179290221684458983071755460084247623787113595057039317190273847429949425141300344841754389906224870852961895874917211998184772005892075980947448337399816786307194322343503344105471293412906431475922967666654259460114983927492004120485389596167290230154401060395728243279749338280011004301514718703545585610262243576974778074254354236933106320696014729320370768242681258086086208368224635273393659560547656954751161560528387648503094135062733917115499652852549615221264949218194931125691946106575280330149807278245905677200530442812998690111442972132472929811242815547915886192494254517358853603887784459147915890021713000036140595028871609921175382720058413799649074835044333260202860200497491187527483866692222422162495039335457318258113239991895114079254163080409657083943379270205363157220749882795439215807460024842456159566745082241608881186555531547063881178371827730653581909465618610652209723109898391948802904529226714189629867605371830746639332634376479005232853547926767444796576105194580433206831885967629371210699222214470550593091898912016818903392773385631180063238077031330809391441601242455002192474272243751396529290965146476339649915037626616503108412514720044986245490351109089306077027081023060434285031247407982807891658618266836838981077342037364382034549628132618627240559641937732061033040885328687290345167121084011253933729794500222980511631051549679621345439510555877337195645838736895126524450552729240326272404971113239367733920325654220808099220783718774200466767515730636707496222140767299040603050096292947286035430642136537961529824558868512439233142063304823505359296299022987786251693862133573548890174554516067841740269816739980761889643813764951198062672074139374213511515410404734122508634495247631705550000614251795629718114606181906347157957716176583854903716188795348654212542156137132859792028422824377610114153578491882715099963838129262372028971158473948497836093804461909199706002206590775607157125861636173016307903771819331716998391929547788518070836850266441271970227254319291673223114870645640296560106502919579842951417389499842436291090611464410239886507179596128634079386199542144182929362570150098935451093637268495818638498878947157649022773232283264036562486094249068818762967254659142453029464388047243523134677943770871545192217607243587417959000496971467086773802070514550385683237408740085057719695535370945833175431344264901938382015400019689111856122886326000300844493120040194327825568289692655986674191371147750777971168389126957233987591044403276133378777620970244207056135034618371756789540302341830148139219558865377674015832353727448360102155890328609434064211714398746358742642156368232602761756643409504619171021075150903575423983696264468916330808556315710904496710256913750561412435303568855419233650988948376195279591958076659151316168664170038548390533888679151927181826770933836395386020774404012908428041621179748713777748512036336363457295323602434547415873912572796326178171583264908056547160254430644386486312710938925990232581324736305648611560489253066684153148185579218339826215241488918234557444083636445135193900245033609811368878153918391551461295976099417078894502225024653094121628465070904602528455230474711870020324346161494572479850479092107539334446655471865772409468137644506066112232544101724644258494744180498326128412968531786610152650794522831631348444605089624143827632289250151066360627030074806809952593375738293011857707652047745028509018298263245148691273767771280164028207174014603703063175456615047787554505769419724369125035284121913980056005525570506164696719978491961589946693868505926456130703647011254139075062282446076490341951620479775569532742321332538273582149817115865974204987242363148966457241327061883546188496679021960452998909515468725590962528580523794032277695897523937516031282423561308179807516467301210510516067167353372118149278354003699569343653615010760481837123367139614931038923803702771296611104512030622564601276766271797937240969535266528616272402755968018547029819344945703370458819626823916867974547902915596313537219994343149382695132571402714843754352469842106488188664810649227591047459914657260341173058272772074794700647968506788218824671068231634244734995513449705780959815246150918209285368285098588679685779869479063380181372284375204790676955695080657054000219609504420373950229112025991889189617274583127931952656667890887954819035656868831869736200458135453282638271392243347128243700250430117279755875697815543957472154502779726745320218997661118832020248094711388022548826613958622444463252581369321863822722231158428481641366411486406849530681024470135480181775127559608773025282013257408892777006453635556214019788273798892082801250952309414306911947564007565273534665664182575480721711681014048391698075465099294734111931903800515596932965651876732951134462549635933737581980021518130650750972699542340865959067947454248687632667147282045040489539035277445933523573074196649822516919473285338712037134743681608141106144062372124899358467532243585135456272399360532911374564964218825390385875586295256455858920170339661199661799636574180953927656805516906053514084028571191872021091889109204944563503916719692480704063601773842348587543136512458074708964694193888938436607740398284985456014394015401600900688972675190760875559882817040109874196549716750597990238292034324753068876248384503630320142682326348895777309246867045735295937928402258642688785779624865911418257281604677516145324318688165408675093450636331656130770418064332605568799411544580820259446796579772022152157787233733583414510781742026894652753080481979460588195387693941937697275274743472531202648191472352857161648561668135343808723832199613334312273408305698644704394875420272757193116381607662178681067556154524323710251636569590977167246566689398835328976592047149293924752085844626233314857539190542619345723696692707015457592856952360657697815515356786806206705257714218082924568757835334898928821345630737384138694321483111693531764155525988029441462131611479882650072976830510936080449052689595948388641371277339289576224671062744429484932362485781901345600429563362213156180206030211085241706400828790181650473006715992156559486176561511927767965356613878813496887912521256977654878804057196005056169629576495447574203878624678001448513856049604560141495304700924331189882539754444188250375222819031741752662407923075104983342905535815949177799427332778333218369542136667987642951177465004580948925959067493749669183004408546928203864692178361113553443501622647097368524463899299827927778278737959427987701242791343616126651690405161853348978460782000512952105757532462589262079187220310033267899573735966986808163945010868634245294730411438919011958494079472419508873905655957251215922210840800040328762158129467207748117541386331633086609358651615749017482210758399137965267858066753461085676875077847914040037879910022419701593158528274357182401238120012620483170945018565641040104616048955865116744363335225864577133863950338202814234302230629822059499159366335799049113813230927384052611663175220573755319703157334398144960920283159888695390333880584095397076709782998873993438215964102557195568936544780004975534481938740916811729411384901563474987935845660229845016617199817609834463513796918134500689060549127100915575439137350306013987159808188013505562222788595557853755563787212423174298059843187955308201350946427771268343107890198398520777465180863762572988535176817644785352444217241418735974437106008825301205645786136490301063248460454725173082341904654501007404202296242109485450741011840180425339353955393124848717798718013290281028719948888288155360791644565553238330726825808884796684059714669008862598457577346560849257625658789218767798958503493767594556896445536321223466690904747024111187577800275823403562000946353684560991042799440665783956674160606189105686929383548132183990194390113064365723669122984255947631553761088739957183170726812729378070764407552594848213729225090682174683242910839432646316816274614802339928441261982830875367310310285658493519741236390305366260535476580778021268884074519470590908267927328441650143109539549405755920745112084703180134931739664455560786334715639560169711768372586775634538543185489182753909544802135630314221992289154571241755011200912403429078426991708884207430095112745255220757830669460013063126943122848258497004298115446067029346611309260101089783688925837013084855521784283734827416838558132869803324930151616676349803586903075877942722520788833117828435336108190831003990008864942000599109379046544722852442610396286152705532200110761138223369307990199612097864048280992743531509669869879087101093188875574280818036495439561060769961310124577777130012425052042461568738472136586954868925525530278511110218680750870786535628901776852288454855243760366994080714506749748006088522261452098907030581221724678046990326305551616566874066120030866317856291192520620058385611479893148064069590156215165096588331778131176790962991911555544103195561441269165077273708357546122391722669950793546224676515211710461759127453926829139562659758920789913405892409056520934524170009174210192601505192567465846370170461047243514360116928965863096976326248414186429718175862080704513858699279999414592410982426447045477914688731055151211406120294700955272369320793126037364410092173310180238079436196121325905371960315479523066943016223020208425791081199565812115877295814478772670938518285697530952131045274595200484215310730178072915556539188296301233995173535646923041209432768293180314905223812298391445966612793939307586401565149000159695258803972342922028956198403147551665169643988173199936095093251803828182402113359512418099229310738114452968364628104692892044659694265471525854461074705555946399454127141201954403067916888499393708969636217298000262885621810977569310424102504824721937149461024076924926800501105819553462711414040202250179552395730587870058892456362336933441755148288483955239809900061376413294502204193553437157924227426641672766298071633919535466711553743194737216415888260400456899445866783842280205225234251996139573131546239564983935364538283379922199389307720133415841074773655250064221037734498857903343121006179988935109956628713859013169672964427531380526058427379217126681650972442314662766112385569115090352188318297921488893759605677805486719908329962057619826816218674249421376532220889400945785318757995117045453057323049682975771962253920260532424866251345705799977625138901951753189064973282863252527467025088303553503367462326586084249674478108839845467814541551916225621580193578863866870171745975474553260103669965298146348789095331700328008217698355066094901741751661876062029249887979074041642096442709369631717305899328404715735482099699862203250994259432788831833319989609592119247441359656089910645387332968431148025520043024971600074251737737595545692076984897008778215431156462661204454289717667453545983941453116671358592378797191090061440652966735106249091740503466990751572477561276139729488817766157981291318132408531563752889855137839073217630453710461485804118373175896710198780429051635096465496947447516857494036669670315226081888684469623834906189981083362053576969214215075440615651457413260874914828231516575993816250384318343294195474807541199126083807247957408958686179426811914413396880378678897880802000762408121719792020001681129693176549683764557530157094856672534091355939756613894444249407339633983643181328437596183896939497383959130818109651730884117603951132293858443146473418355971933451579239065489683288896217593504691129411190631165414745268686636487300236152487088747807839001437393252180417472055715238277591887937930235746777100896379654456835975236817153904523849857665684948785056052029981051033518282088827030613885643693291411931726529582902035205226348391821299383628447803562417851298155687401905085028896091736790386002827963724404297778130079307162426395367107223705076234718487983566936639724008856490532196354524925875816846068785784106682934352241148952820509725008721162434849458558614611581991109724852564569236467725423204046572934666801583232398123910933698649652943945290524260529155715255147866154028708853793264686188296268231863657203343715115474620558215108445011460228667960007445098254802094650714471049479866084085443610792572363924629219236795298791875383914013449267532825565580727428557102010929823001797631137828752229344470173443121326291099357267341112830296987543787556578720986937187204563561363564614847909146955571406702053437438121383581554875861989621054339599694279925221785192662110610206488799381615261084956624955601304196454365464394224334541221341801396275432715424011632232849531218838543702715263095153581662300895904991130430730672399715871781298840054876797636799910524071201165983840400369182379781594165655611026451620577343963889548952693577931493216695612875069122655990957090006834150096057153580045085851045713088894187818571583777827966226105878840954783126581353741599868075129418099644005503030307705481910829871599279768894022508396248196674987169369262394224377907691151393344819303523275623503487397951316440725055001959330668014964933320927517540423259060589411559350625696193913216335036285331188536562070476369827031325816928360424944902295844371618379466789915902859517770070459888950700966087278232476771941413702544146159397033647138992248837280953605757707400998937386031282610668330008416154961207594996608472874245519687689617116381802114847620620677267359243387193331867919688636596640791671845321312654351707627509877911556713145293295994311718887649312052875080237807130460840065046840145454591253961803572687111612775561809782027187844175574046552601444136116413404558264992225341616991438939360949248460604735493328647090507012416265409097081012890679842841648576670148275241886668994559777907164721215505657318952245157861150891201891234748932658769427237776058063993165091560959347323546494635412396012381237503450717523510015957393783297723448475160680265371545872333842895534700613859566408492764342356765670836858888222863855414567930491201274569679474060749111260053295130692296952222604247948960714007405346932904394382364831863785339028951065341579235100958892378677831450895727500044224339247276333278348542484240559728408100229557034469089899277626901588145620703187683838105119848001871835984326441092243556838444917626177068484271429052696206697087270592990553426223363652540696552535603351386869029781063432277470862414013647214332378533958479769220889723105482862210974771283631760424615472294754909147901923094464237247652752415253549511148454206605935966631798641682172708413973300445510329086204140246380040611111370789608469475864074795894046281619292380266143265403282175723186636176615914277502784674313412140826917868197133973847576332865839240754310479693669550043636464725800850599302178503887558758209798215351425381610101423357086280110242911977002464249858963564978425416772136214691784993279271080305906530762375347815437228774005629984635114668446141990357242717981517993276772546861794813468387844719288285015291773259936670990618629156375138919370610985890197870910659693762158437351150319659016085347088958134705336787108388195184907617380749892997648661116629658164021118273335063917169414037904450549860208130521943661289834854818786066243486718059125547381838532149942051153396410825738892823476081037163722794753655098033009366252206212944703292152769274344289508491383933945039519044652189743188960148742402011780382264491678137991473685112958009228329931679690751222052220928816278141124623185261215145592497386612858419082844337057026183584252118005553937338202648019810751524277417736163410602133767504203193179654054625799165496706989603117395673433652793085312582212514194761018089512491270229945913997004953516995837826966199114066335548965121772945793634851355696627348577828770556244393188720921210227911371418382627733854611279364142750490151649996554734084176352855687420445512150958656590666739432973147761590712330842604997049458505484214054673933632461319164102185561139512713060686412591617846576546841668373273032626700819041218049458112542717234867834437204928445612743533697656208388993404922896399960612336230553217962448918172152134337408966266555573785100032145657652972204126655131043394641339306517056923718697301449673503119617811889558015159417009703357696610093134955571453694561778949396979387832758292054342762268719920088266721696710957055955413903186112982983236638402585645101597329606303966715287195266655477309474256281722219074262095510009671031396064001681173168943264693277813909648771475044626215919068442245556410640488812385501949891620683918547990973523262311433054058917438945881967927079773551271250619872083720288466352035751717143233070013527609499279343828347999235268046501413430603670163846238223197821192151362988991451071167229022480960399686021273291037293609200187468421542923581430194794072283144368527083871229883274564383735358809946980363425806025468428554841102492104788075770954941658591157882991441468750769932477300251272169006315223708377602512856699376504424983417522460759527902651890985059287372599129537961206656548193755610144723029756460341362875795665025145591412411378558610390692630183891357550238959727343879189299166066778779631844435174570337035209521361146464705376559286194391969270160033951205978270703211719372219142663340333638359381892821775572189927229439213899746578300495170883846571998473881211550897408428191351235062857293027996654491652678649090258144762868777350445714891530485151836810841412927152980418559912614228177820412529565212154355253303786267240639614588909910844523729096715758586838222012717491420796542948556376457042162783763393049363803867496345277708232126894716329054430994497482172344435567168888286195304557051443806737339631502992992086439859977542480552793932474971975202357284048211152673225181705337230861235451263518047061014202036984698207403010707337504348622404901402298903083632320305772978703908237836346035353579963750773371824809110371009903348801188156253395353400602862095396726972841376636195217166675549885833583988912444833207079728550207710010052745932855093331547938849156662156315019812431377829291094455298328644999657737057687896903327621162956745919390179913177535031959441716612617712652709149931292676229067387596623885449831016467629100326634525146984052578461930159034569569904979614219245380771146929989915882171904296516968622009194619300421469008155726319423693638494564881637851543555730833666271335094255472986988698257485036442461582260719426450759699096945776228230770115333100351491357548217110587579002444328944064486006502828723795627073114591352420866399855564444141202751664942519775254696448993616067300041755619942169893750354669776719976043444655716457591047124338092565307075285799934463881543754403037349734828813385490487683877076293255538345222129239885454355159537127656164498141524048614896071760879476075192348952749501759115724381992267683819327699845953456313455720394763270619385339314817318774747955995144584188451934105096733319010887307630125965793894159341951772546872372964038366013539633224021903484948246286962079643557693374605622431176196093486000974394514580603777886300878735684555753251977675608420054574523544992696784304956374499689548342376823845547887199778192791582221986541808036030187643138392691181087668436933726262510405195528200526382999084904812483221090555775435245527238119395257983997800812079647745530692329425093214629011050471574111213015365402651195590871509454575806074404384512386619653539054589898544276064150247420244404484977288387695965098642924053535610256743849639069781977691547129430625925147925667993029386886895847125416874726722998220013805184730545066781741805057243513101454205567340943061178898991858923877930107948283288817338101677294936261868177496714510752306335267343659459528668867402533312134201618038533184068556553565645214019798516092437164436988169108070919614316434549518826356841087466933730969242010039665792854312951615535681336292632726670037193708645985800979954071465974749140416686389655062779648361201752554087247805181789038930044178028791161334971958649739731366304153971420564202645946080459928754386433293101220186789784448987045547990003250313294905230742856807548285617982283597818916365219473027618970618342206172180909417024423168156021377245032457485130749047427003249613186161597466612724463775512908021425409504492997300890520440911636718269129510774922708687732637249076559823324059672439627682915643914109243059088419674952320538677371403926404965718083448472130473631709090100462203483613545582131702669483324557370834614718738072681204644781552095751226141696392663345043468991984806688362046018762851213124182157407821767748424459131924601536449039187504353449574863966885154205818858025467192101960753944140209463650569204580370676883577984570832749922830657217456379320272617765694695627506218200526692557097922408892880199465965915130797414868403809064701059383719475522729266193251613711839379243173827660963401344335565339500576991585373867665853231175612945005259243342259454728620270375537429637145579923046933786829359772175250409362838943080079491016723580800637119653250388616264977173506607210709655234619543404969193469073245264708658937356018174940032525295915813853674413774228002366384313400452566275790765036299200601587326045019697737121151169189759067250269306021148646396416698629688304304009348363603067170325710638191221606374429820593199730232467727379348384745098265470236213747748965930922269982577361347013929746689894869255545237033395864243387360065956227599640415134003244104548798803776987150170646088400730741735891397400737933752348270858794075841052037860617191383113499213411979437724344147675906847040689499058661478309855675371249264230653057530662663194813812357132508353988644896918491237335759799997249519743639294948114427196649634586747936267016613877937004439746456605225350367839499033712159603761928175920678324579261000648123105400623688951299072093339963667092454370082598376147069354865683898239812991792059860779312665854179728451536427160301358206237857828792486722538001663841490657547919234193283657286470070606505294650664736013798506902566888822663982882274951282251517898981388267547461115648560728753472935712631962925995879774574827489795695101821450389258179933426503793803614219847502572369666045475971534565786655981438456169464548998426323343130520718914291794862733952928696410546191446211044348732713738527922521451635092737973896831581635912748336410011811413782171357628093497845049600690114382287674069064043869714176135355175997606785749325956060767567558361442660160951198815887481925534529671404388010087958962607581640947066185223270136926035986736589425709134546854140873800100313901902990038816063548145529452875561539587747700657835977802800876427041505152041776801022283307701833570351056528966886979212887417229755608752750073639141131384562417197329951917576621916514271581466477309688553572552974089514570378321088005589922132111601985037125254784082823136949728979615141852867617979740863477161954765860030306092355990578682808335400856604903083515118137440698320741946987820698467923255427712064160094778651710579666826325211398635307165278119713679425376672630002768620905484362079185580338032783705709201283999846079561719204633529847686842255010865515688127706376485761936310362660415031892067213000672262557347870623932398753228425826481734685961364494929585852009686004263075101657712226563646687041511733993537620300081488906153732003963643633446722274045348838833156366815294488209286611237276676008449767718468651214584780954148466217161915944393846163613943054502166183965798254075877091963110815182484353053261556870126853252766518511377223257362388991173934920930017233289675791097519689637625080837825346665622259095546707202706919159573153387943153345473217737510003444508024977222899738878878876221178056625969045045118437261747893138186801211830622562502039423382577475998254806463999801796111206542607274497428166331191797259543764582035885939217853443590472830336881651819220791829089658415700898246993265337424313111062817569418987752357424160006813302698843612840296690246077482291859197361633314732890888917317729871528414244029866919791342639882605831953680659417894689618091733828585569102055477223694757327978094203024582662692279493300003927500049818457221937029326483310636233018065183757988892566682930961281488318569277766222720365704770272996623357970228371493029916116196148766195525473864898749872902551377932868790767910318399538147756360977383829443514269672132426547292326986038860422286607126036209236012461297356218914999433833673814925386089839770458901287667493370156030455567970448171323521300574668287014125904718561605982606256767447296420846025507623490146846142025845491278839947693388757375230358935987659349434149620514322325346021761549421449235288326436727638034752199854220135625990663007957240803590307192851599144841803744277874203985106403619098724364366913546717363896562424274514836806166975835622110561170095531052975836619256326385914199858330825452239341075572052436295854001675226013203075892748839059605490245489430726889824765951184663123714381739364494558750194299723117625183268894893518975925719430973956302431247291645302412313891570730085402732167811084874552607745944491496051562267693015155159820439181656147153053086505239505014797405730923902915005037531050873231544377148365248282379928129624184859515420526335621224089239635233816447481285117163121406773137931307636580906410979520691899725789409267127859687164626942900187228739384443335482593528012452276613166633032148424017708675220248564863844138386580832723067447456783408348043318177200897495997055616747745345183976276174833560845221993391939496499130838314078664949608633529563422506379945205490190677742159200913265097854004672768370896508391704859095792098840304357550348881683195384899161536755007233957247983197413311523137815609779404207159833157407925530311405743602965277637431088359154479246429964521382586435674498402863807692196746211999131363458528118090138070828388406029775624311875113783060427069129662741541455019138255099104832270660986767258957694771764660741776233610070727837166441497052017424780005418405511517428793182046534708246408699253963950847596381638089955609145575711638784027298499066491933628410639335659210578142323471428295397899122630876544163812370209981212885941904169507651609265338830312712415565471866344622818073049011586251823877405349136529602391000567562232702379033148497378491991938484154450178436449031189414989347480604625926694642687768196667226456396420040334379010884127403572023896269850802258700978449679699721840015123044872865428600416142158694724310996881531540639677132382898129682352343878877618489715348742161245975238398012397832254606868206625160025632148959036559939561919738924417735183991306874194464340031647856058705967232834376352065125598652314006410042286464319395961830709651939947291544896649121447837466253968144711892057580595666881089489638516232601261422923537250812057997197803356902604981296273012145084005613783270124351865834564993242534082808994789884078463558848715053050995969753462076645291998906694194710752992654001969066577426329019991646576633257780490042181911211542929073462018285077921101918181518262198468032181463807827815311971241911927859180191179342459671094579964003229739723353137487617794186719904632206959590878771899446478355539358966636705598762117763660843749249988514879468762097504709327878770535052095803862224351878214553463777892537734979296589559757231602157004834903437620899361591467172014598394899495124166525949081184944978955435023981031527490146553597745731480663452317207475459910863161860281618470038195749943540473695606535994620192201775801464957911440027128517127872564973415076160101873119337409235176500091697890564458695954108349459543988032508891969051237402763541466755720944003702407819263222528902545347772760689358901613476287739437809970035977146385626141268188865565888224594862642146414017438667213385111911527552070122453083342749567624494078355362764608371912972787002099069202796983680990164492773206716067338540781587977270455976220319467600621985869593776727121328368272369052291957078703605791356852607527302844123390278618939438289263059119913976586997080413220664960013665829168739665780981493859375747698899792008673227794607775153698933969889981548588649423490552275415883135797300464298499673722364211431394998197390324503315041635757546706508039520833576392790001990653981843678204262499364003416098635156590395122856664658168826488849548121350528023904940471418426053038944328475080459883778076088464489650821475006215898704261996810530025880884940090271136684108978674956685781276195020866438668055051823300342836545703557313219518415997946149317594989731805300054126416601856946512624106123282295973389280416555145177906801685139013531018804025625334627570307210586053843204939299307563842749160135828860398619113683665499209289311975900844787398555551760638529887844917991714345321947847064524531774280618820961108381830962971727912794610823918054202603401110153458668848641351097334820885117360254258603942201973408208304331857661669132787555535549967570945420203272792728752612796588075442876028481685339674274951062854682575964636931324759734643953521974873053019109627023787346662492282841037910222666476215003434752938126451070126655007299369161092966668201470584928433347625297046922799182513654469679583739503258507712184885612155884375312619492287770440057428044536368327669230641920650492747932280312411786098325545313780129347775309650064471773321883080180941489390627242367269767577519817554433280462170805272459869919710969068468053397400577156910921045983604720125591009997100330792359166580359674883440887009199861769560600953168531941814419588175286568481899232135205366391514705395525237521860740176591092494564696117423908066999425763795382527198707982706024934242046630292103772207160301173395643173213517264010285439735513809556341290771655629053580160121722037523270656962540025157192370426935893243368774378005328336204235528959283651884334786026639839301648518287462223084094665993896408610682952440488997708918904478432547062393625322856442122431637871180845683646436811019300476143876953655025139427962174460020137137319774782112080532294733420881711615426948677266875752337190785936472642926337342919035207729553652028188944553499983208067845124686783904735990624131482215517076775427022217039900196484838319934065285437419244576674824991871654606219271168849475620164821782052964411188259176165228649121791208024968763916685100898042684016816578302620586331697983757390578249035732613259152652534002586672146734041442661200959835388176259972613210304946719669534981665206225363644316656339863693058400793508387252384758882413960414756609188134374987271646193641847222616269080247740274247978037559695337032799467111233029982190062206825555940117481362534834062821655234985851888187560759392664830867429726578354773425627072543189682682455285293917634574594727675216433741222227074845608726890084890469866614315996974498413961310592303612738841064164053126126440396326561144294916306185920908870920262008331559635897763603859215931936759570681184699025624093429570523841363433268260663645955186836139439460004541696751595064353578568841283705379647890699462838520249026172518174721751625965018232014523547861642707657806383351240004571429117020316361342909691817379671060634520208520035501464314141390990436564595850568957004422965068369354536739493627948797420208011040797363636101397176168784919723603579023362207577978504711118203263389710878209244012519587337731711533798747903209839833847722673659552993444893445755819157056766457746124948645934541208007734898965721678305846234740540514633372884267013163543388904549695278477765343471877339265927734727278240457289295437200257817200726215459659548980813315670500558905948102880049766703367235827451707625816293710945127746480876429917707244797873727903014784302452625630724341050553360603806194634479243930440678872744957078031776548036298321166232325282468721966152360896743466703426617242411465205093446225356818155417660221044649005240466392677205388587714473755150679713533315814529676246246096841247281589699831791566516491552302318009097786840973483476737249092760180334389737325451872313497552267494219744399872692299092585147859960324121779910568967052524829551421389977619182724181261034886594758807945622752800821018622979149704917721733710740163982578635834755525372700646865834160222231037858592293528689909467137375735099598961848997709038956569176964337495745989145838189438620338085144077795551836412407467601127041346614076663172479195833974538764734111133636715729573826133675890766976239837509302253511188509584650399170904170607200544697202105774932924490434958199489977389397410863753696653361590248186890943733090811367104833232257145934157803657193277612430160791715389525564633113550203889991136047022922984245172799384485805918561413464139934315874113826169361029934515759551325951220382539839539424051655462542266619275085635935266126668314703236397883332424930004091770131992958692827828148194247890121063546669213225103111694225508682759177898113406643783307357995297037647525897404441929410468384490469607405713814674457494348591497079731116953671839906914538342142016898016829893538503814023771008462425379284772306335014526270013581296197726711559260996839028387087131326770494426707874216793968865011196485530895381928374103248906222080553812215213838992076793084477017125762166169014345269607972918375402815515954925066863697893101761942143715686890253989480866495429025670314434843316957065170181582153185198638402802511699447177591218450669762112847028347102065524656201559097117498558743425422275715614640129063779534393153909557542384296613460193827729679899592107618343562476511460224385894722315271589584348084832653460732270018018996930466957039366927349142104697727360833499122248742576198932867959280954303673642332969133414655794708885665988404358701081239091456940085714727778044086357947858673287179455870965883409916460675652939574840829325527716433921774507779909751598266557449579753390660995276853936756309392962370445026114525884770391391494875970675971522633410990661181184998722865638772626564591720131508065251257544991569718348415431645923750728202952713756919193147701649006858525516756806020961578166136339576955927175780301480652719305158815451322199003657296907700622691290663736535991979930564907895365284178544487105995623834747543555445145249259131930773693018221981157081241328322755140704513831279129317211907366713427411012285545752924300302056860480420420415419823558634226845307490541801869074639152909427063573408024593358821351712096294944092322646078887105226635646234664774500994662987925348091669286494968152093149410376107676286074140583083272255291291684727797549249711332567499731863833176311309856091556750541700540640907345675251366256026344563036406262266459812999043273825748380963371652868221713379189033225794407833803103770638673409447157307183050622737548892875542275866205757554037187262125560497373966916321647553776881636101940943430607713194331395903303046965029926784369255232223335949577110644373974373622820281176532123073559282941316556227304873892206913019059460065815988918011709279073896621382846578936472036439104796158857588354320055054484010085142051795988863835386459139257748634330531435022711960201729427597227124706120670983718184782895875227473225146549028076537169747132873049695880785001270468845640685685264765087043440595226806027491164060210893163316702579830981667928479776665344467239792800591325744779816507081253458553807505477096520977663421952978186824574731966920534055583865441170449477741460084764789847063312194500452932888733476276570611302448145837132406550849254030690518676128346312074610900395546269432808970499027787249271315720505439131853139898482631693258359073958312188264699933957696231122672297936869842791542683947776761460060810972038045141824396802069017884117269469136757263938263089460341688456057246713036735797024185926215533414831669627807177341242390535899018271289737380361903552374618472109934373998902068660945420577933105830450870207346290629753011027482212288941224361844711035788850278252832899670516673190592613495767367575915671092657620651162668044416071464857621161875445167515619962462050391237864110211509456324577326775328947018784269016970199444428424641057944654319145105916585350581611374579445287542845856308059086949518936091124190656455779243614463541006849160544086129739169595727917919761602086422764200205075139406689098354302539995943334870654627511016862275732180443203590045409710898430500331448606781105311883552479771071870039499575352033049671590489371529852308768009029699797871727557766134227496790177575815085542612063982166252833926037716575106232270484198393079475207960434263463707315070184893882424703943647815379083503037040018418676054410260360758001774249237160292435927463454798890771617317502617227581853394310928847354957495431812093670516162027175706341658618324817806870258989752876043909209708831307356476216579401634504772780930929162296916398460161620203609228787199332739890381629946513732479412649383539813162163515109695327694193199811447630785771119811783966348789937761016825199649123902959240840587061225884414753467362707601204854236728960716802282012200560087063977472031373355325700914345184492850740295357467237451691257195603060577752085437505599389816068523701006967568990999278408921694113965221908777981846940742264789834875018219135289751264071837654711475512118258653212651983733022766484425873496436743245212210477032379075619422422749698127425664460760552489447656855924525430097003673678180838729125630146753362813407759340071615257282336723537876205399787696500775629103158348152063069336885134548916851877715606476122795457511943176000625934944046874005931542729257289972707203259430899420955649947677166164380197189841515668577874562097823486701862487218579771138143999821184237510447305797888663523391108480222585966198471057348465661798542585970436628087183254646981706854627869564027865247999318933779440592438017109263547279308042687108192412426672397612410877793529956365980882403201242176730717531192063822867063888260950504440814404980447690406046610817971644439409773735942878336611462289288093442256288206805024360727246327445961559002455803702294519949903300622878114070529767946971431633849461138645580087871715248318784225853320130867992652642380515428649331083327283987511343176437299634624309890521899128968563119757011717491941917299688961015241470944171526967350434121273096541580860408722287833549699783066091201721193774866904021929151597004265629659435420371236351878958875071546727358687288041177700148971447573644898381869473138085034318934539658028803217019733202593852552110185751850433166982456208290298189016182878459171813908551464103722220949612570466322567155214631015821147983509920986123783030036641975497872430643292588459806643449083881830108585464813733972529242491440349022065631924800221232969000642746463350451111413610565862449495845241731172665574220735366265160910660794220720892472339620401055142046002138080239679447502750177815992769291369067228928216056767785184333426589257054183481907501015595005070448243461303265454300339696538617215823719657400733542729866425182558844689600903335844148275905745799091116412710366741852139070038615461950739876068178837972335908238702177247799169181582963035987015499764642726806210364795129069988739697350570220949041250371798016372699690608240478269110920421219458735367744866504105516430219294697120602092508183852835131602884350682487763893747514679070050424978249799107011969165011600945124340065631587890691183074837294551828557043841816098101025948866430458117788025379635524974995590793940607912165882056871790784807270314619672660062250781286019235065594536366258115596675432744605956807259678609296504896683635798937039752025305001978544358329156452743299849430890056093870789084932461784215567209024117790112854234024481956411117277691720265391659354822536901845162602885108612394120398021522664891112570398533720724474047749601732491312183144893253900177048446007146845082845556787175285343520701550233595509115350634800382888544529760261732920363745545240811310062314979371430354685322430636285061241093143232214845524610213990357004295984775014901902486117947709619992321827213564815771719329178152139689100412092438483215505498289478155276975706684527128551744678468512321794526009100255004703370109924412739543289212926220238492253479272409468735275841866806265466269187448408194944334638997935456594922487008504446674046364278026714996635520204049663167363368784270156251350698123345306319189698042568960409255163503048110665245503709820572610284248018006356670534980877862087066423483740353771788779194024072131892937477783368881194808345998635137892807357236079644782360542789554534514467059735932511591007892496819435855673523600384453614874144653705919505514066700330859100540830786571697038020868630733415609537571695077277090015324566839468123228764349611996928523720343331331165242656050814017105701853698650325037877775115630167718461660360350281164176289359772066204325960043090269046536748635420750707026034703274986453029687826584282730546629700902052648335695171961572994366395973907650616896263825527631587341243554431473493468991006426664718584510756742818500924911202750488740694145816924062086085871451614366846163506145032645804507519455502706365302017562664001273364134398877130930366167093532414695045219505681808282817700933384298985435384623455050625822359203588977351668346183080430424448946463986383466548510268791437666914906375036283981623399820723180990241518075802764920305988295166482055851723424717925987516894149380775788348623984597159072930888463122131723250764450434868621634290617727485871976797663774957976837413369001754952717956750000007380660893767918441864061267807351447188233410854448947219880655338615848559761122512247062307628560166229397171200597171441756399209963074967230541846328980769965162278697685436703750447784232868308470077169211687287435198113006841497823884232484263308373444865441536482323316234414960455974030420939476624181095732990741177039585401435797212172427212296096196314405191414759279577480863130848228964485347792565829627270809033355982469285081598421442126473510662989655701236295636548233433389862355955935509078469464132780983029731503393351057213563202030266575086647554753040236353999101083787752620387062948512111976671492505055991552142741241634205295217851509622836432596758232839735268635626456135860511612889146879287049708129942980212267525126928656711295413783225627780047851511172483735949128456546432745173458992220338625466289049125458315802242619445479200538521756882168508418167641241037697193882633529054586285140286353839467107989903948513393714042703712477544729054935006549004143890329364424296118330906824740977226247794434743737748707716269956270207506402303860649592482449323560286119853890285819346398208321219488808842098673956209697684109282776900810383520321716960642649765139858986698739281001462530510251012587786663988273387026461705048075819022972387486888138689151513041638921283107748996150388406383434798256675507363685427394607035491379357775854727488295048973223214540587120403349324495337718216895718424580654882766848953075243318340755694646529788546513319757177038506197588892712939350258919492883204215367716024980252801085841415186932992334188720444407759599035331583700954488674009352310243906009616691197627955814179256309198464604078886403182187271713203660577967113337083369323659952796274071817776698933150412223433632141290522819196279231638936334291390906460129314820872697215159613763935712245949455934036353502405949526482127990174962804378058864840869998927662444167232523715446796210104988656999900021864459674647854466673337914614166121850960064055163651221791351836965402919111386377010868934912102900605853033852786994493514423631396560700742384411556575219699794691850840830895896073048634813655213037661839069053593347680056512907860047033027482895028237164077115939661488629584055613097899278950663520168026132069893842674942253722619823527974301776133122754677416187825509604965766514489460046363437067449592194674908963342368388461263033955449915097714529220726775654220847639405904498277862744607107994375348066410224001550746882531959169397598703975883317972784016429384143528825944918342114900137267036122643858944338375757335350616007620838314231842307176621905180967894726726285779841302574032794634085138088900820394298990621695614839144304046048881067139031207192100531196442555058175814495992489595361166722053997276657978912181872209608234442723951341572062828652948590973118158707610552313729350870005030709826222797778279128237518647614252678401009237054273808811385532110945893791625401159922067752140574268022340477850534509718209968401327641506987825774227350066331009501310925021839354150631759514509461883397329344947207415268076910774172706285844236286756838121267154896154469037269021285847221114609817854980687133309862415758028024903526947663893281550065180457250380536394265533693027530559696436918907680953107581210633516539703319024224646645388925128424761293820584972353426827272444872924241616313815959799280225888871731741268901459347669890404218905902728969064321088980849526611295997977288269978388671820928252912847186277961880297210180640867913701674981145068174520260411484216790054915212625915470096573863290759618807043141760235650205298752720527371926619314015409116290565450709036514688551788551659146063349204029039915835013175726601535583280886681544812497251265980199283594516910372590944305580426756788425954679092693111968066924513727827404180677327793585883754921921446605836932072306498582710678829034413612168978345517858654405855367864498589998314960645129317734350224148918618635439670042227295386051585267958817523172455494829819639322688461917312782657674183194826389829521828668352120069402375879712044919631581899258447787730147074067812314795661597675996961757012970201697695469928012362631653161407990351022257235289650126517000327119121233388362944936374449100112742150010580510017686035534605756489040393145495604526643502973462307335532588162528525571683336712011635014987345421950423960823018460589131831496643753338294053348973453031149108386391734275143452968499783644096047418163862102456599375205668269427509392728741864213009571158966729392524507214641066014239552209126734375669027675601564320072325390292144167634938280894506007630980614145888346777072197097641233457439156563059989509380227425954805606744089301949203503566692088778991024736444635856879446489854023709614062972977595551831000859205710624471188625748606560939649022209710717581854340316364817918162114816576122837418777871477651979838661920817391469750807994901056425250383499432530937395252205847287092340241759871476779087256632993112471805396630716054922895967819746402035823746547429146451825129283386539201120780091216286302209756503655178787008935244463813303354784271439232171336157594721971121855385026997259272239450503386225818323003892912902602247737007473413569042559802212962800505289709213709040030295127845002177393538725024588833274215074616028394256363779119509808187801449511845942089205065446591774787511403826933783308169757879167942172775894048795823835112811191372370107599297555581504667015440053869775208290120285930595268211970391020464692376072229841050660724765894644573465354352336940388019073897098526996887929907397074254266309003981286207143329091201843402964541370796526170025010445614659227714401022362128359658784861463583569995988920977958547463896657635028186917391758532431950177047570902158486121323826411756239073297616870038683339157109748766855602220478056122874214587053206451009567010660854256719997715363010491538409703825911730128826852682854319257658285933671275970627915650837084941461961471265380357913558744624352054225123361497853575968600095549750810706937943987509088076724292181935878462468377271171514426828372926768380503331142894081714755299810453215642126648767662398952457023628461053168205319816704412471334028577261590570212772283321689522678521788599601051750593454368868400425750606259509929956334554942964926104352283703520874281115888613138200121065085741824604127930707612495210542596262141323882335829125237124415911811935001830070673066466657374465475683019116023479057380747256634542009298970847768578715116801569862529246817867433378690893294098679630901343845696152859700497456414353837898188797628469885521310150841112361522759739378115637889835759612833742268837508019706090572969750988443933977885070488921909054435629233336784154358407566601346221595338077940639874239024160027315048181773677612392107700841748725541744985974622465053143538936356584345869992055430481942753511601805468885136728811621861655600433010549149605298880570985232234645603331651067019971596222034669650633485175791811972354840547479765710653988698150195311824722377182425996458981788190612668005835575205437985101961945389553765188362182638020678984199546652042983388777828779863443297943047884520968914289188150469458337144896404712625056446368333822224824943294340018004743327759810890850555926085729234281196843489769114239714008600819153648815972589154007475005681227584971824505673240774881491437273811411024687897819422296821957767912265764362587629090466234154896621906188399366800676892265076273534738129046777746786577122542767157501943983959843353454762055932293756000347782799872935135466062218881842883237322418417570350702219553036293985838779214389939994832140767731200526485582677659984980466042700055090863580901905316798608206767451237093678880916786795943839203152832145109052017135029556078559194335163141670706237069146865371737619695359707707076842883775540311205700996238729240853725773863921077335057870707711659148247823675220936571041879344994986676531686975216236979582338760300715824235375770722067346677496912815005517509290584261619166949395431307981310848338338737164673393846725240369014759864570858401654583019163320745543348972635333147015627832142071076030962044100120675092394425612314700015476824970004804200439803197428381991535526736446337860888853088040373705320084480666503398446776332321130309385930048243044098667780913215387907993816334640209434626849858110950851869574907258702489117051433475994448731790766068919354749058977755144709897063009658506834863758703336918173147303055732240247401012918168322740370934074047914881683172268741807481667461323484242502395229719917463809422602244878547165791767444255564334441322562182218048291305465976661999353024109338693677502419172309794096358309613843700608273080469756310420229614978325405339671881668728842700770541537845280725300298203824010708168686757181842752232527866525207880619230068784427046906781970462648789540072756015645982225240040831144504330445030086153123724616454089409318651296100929067506032416888946584254045460886258982311880219143729591510494985515904963178396081810222086911343320241309013212425723032714868662889310500434431747114459878849784178205595615317099514746268956476155229856305884897329014829404877936196266491786247415628236720115986875730370198981158190796841319489531692856660628724691037206137438764934468487244651445817035608314104449966232144863678002624124092196310482018127850636730463093213222741477105206509757018868698236800491986053323181806567871152355110720988634763331993658675805803029911460338973050746337569052676911083113121381100120899778120308199704979026166472592096156179651703916319425540658477389422772495148190721855614507873734388701766281697377686370444762340525827642292690932703557234236997402288506918677761880250259371328771371934425399347261169297503694898557816959468835333167438603953314784082137087422523323310900296366672359197862107713187396560926550661616034276270018892909301540167845479969302110295523135171335120602623944143322400711845206725120824318183641163487997617154710344705053030975690972810618043332828677781509308894528408212445811847835099739207192829750414823764826313953078966613219079839032348949342474041555077345151256374774510186388512678838102857154218546325801002673403496735490337389467969394644993760998535407394424794457541744498694714296505078253159387513227979552051951107661388775527465302814688827883458849289436003535756885691017109642454262391726521408579974409145088342806328774853293978534932182734378724888236233471887887765723062747723933786195782307311661204682661298723432977473585651015913954150444239725225004971597285444804552833196684529969488140972162401361588836898792620854858176733745308356320244573973307335147114132043353544472460786611688777330746061392986214370696938099461899397139272133626993655131519606220436930113035313773144244764073214879668672833387395718423548379027141251137332029337981324744529373761491411376369464132769151241982416420253970675072501143982028828706028632713245088393605265658601589561007342089154854738419829730773198380638270401400916338097833614224000911406152904111409321133852196972684297865328257153797930542952604013665818667335769028207450824092799045527969290367335207950783390681773859359087193638686786707470017507827871463110638490735723105621765474464465220448199081121492693567657678425896645586793707799667980313729304512002431966673054612806433373799032993803561477363930694189953012420919431191877986009107767653966589222670047009936519997336917768356234363285387847575647682318421943725862668009928083296285276343192478130835011328779267585617997040370854943786553025561051477713031232910707699582652011918586450936041440738615281828636879065854382623417361859084448506354409137081896403730458756379015755201608845448802614478152927078849652205761861742142869391160732542880473772664714310335465085622358920102003657737688909475460397247402034846862832203087153990091193823642881962241963016774334713923996061530378041512178253132267335942283426472251566334338242889490921592699165329213808732034160236333975218054700698706182120245790172104743373609472149527586790836002976034962497420395993765251912397978213743133530198482780182053634419871822431650495669140402541967729472035112419323561142448183829661752595229597733780528814774402096289701382924663012350809105270620034614019827571723012413526444311783672707104851815500340559290447069615741693342832738020251572491128974064385929357107939323494827841017227558667859885319612124019362921893031017702589257620793881069411760242602194423143064658515476025255817831323974886436353681754517423321121957084945664116700601952225861429510132269797399640863627618164679498287203275115108466741447868271667851518768047937872749266206014307587937835881095769414183064389712088247483055008315913127641266763475922823416313006632922050771636704215223953432802762350101063583196888387040092070637739457311694279548470968151776162398341042818618757922065243582761159971433951631679097399193081334775738124842127867328387122155008094902301903488707873766333296430784965087284332915761782866829547031437429984180723029037822085512988615179469351128036247205713081630514334954404216164287053008122496938451291816625627701572582288002449233943166743967515968008083930698844742605218655889501429355418122588475968358868431217052583563883378724813814122883392720826497860304910148211344965998586693248342558693835258460754206186235913014318305677155190605473245680569206887375125610422439323331453936460288965153110733440780014372278403226659220271095553052016507463523827806775327652944741851185354095268487969802251703925384479594535350184654686847859189052105377734776660185834675117289237203438608212051918532644435401866691712780512219354450490211354198499601311821821239394960272735200796991923827006765435879430093858313879849216504100405257787716157355870695975209237006578883427136026399594135129282293811666626541385511649783890417542232639578570794886920887310884145517165522521821633498884964090484866829317103855922583066954645640149413710019975398952188280785084956186251305183832008459917156046751928707541252433457543998945060729355655355955297611361361657448388684227555017310340783914844455669564183855070689920487968058790072467507197287741121339895329249555179099649527886370327254674973355791809055437458653445213609670744284037197390518949576581357541231420243936510007874815037700261594612556698791781421130581834585534172346687449190400932397053595397045429379744358014224008179708884732228437172099709031703327832936739301343955755662825261264396495190592430472608212713576697625020606300902949813208574537735862064961945421082570913923639183151453515078262990480371772714110679353402972178754345467848376023329634844953101288509079047562261812147030531323923895505473547900675841075024117432385491685828978863067984169290402328654492605967717145382624337463108092785387067840006556022593485521498383689688845580339703319125206990491337650051295652784739555432434034293362864961197494667877294330563659126897867585980376427956549915456926039193928567101496941872799192506510754493914171535064863555224657600649914585745440258018363723662107485720516717640944250419712654547105513501050489822089396619925768788380551704289913749061452943687246868391772447610212151305962279957118440841576854820921678762842640716489561544484829380926454340101444681415636362318397275716356756768557192221318546431766192203055286240408750348476535782033136291464505721353016207937056959007219682651508142108126681078612862504499968963097603973922973241313778184272629017489605634570866498988865894786644972906099711446379170356575203623060927787770257087858680329396760949932883969091605301678020046894995992971913244966493149786231584830244865135625459812517162417385901535305050863206755323426620067193930420945961659168565590559986819528684167773970358060326275700504245764264670972423611883407790974494359473437899223485841913506401497805701046498862741308814820366016641898209175088836015006667955679981990125181377139445326413757324315456024268469560484795185998037989841310464200664394935987454079028365508834544836978065044782462715746206434502769493562589492637126257339613158000805109617942663809970005890744430082688784950244395809142341710620577629675760821031362626309205383851274242447434323723482683129779270707949861703538466308603565842802881354191209204241608124024571155563150620024189941111487788324532741354268133199729367242758057881353348445149892246519722264803102207196467149302183367991526220875670679021177475661666998692745602211859822736788731656713022744714861718717709585096328676464306569464974156114625357734364307789159421104145059417543252316388501081137503919037964149856460227207867465024454324015650839718121472254544090642834153003311366583090822926701072035937466486152641172976989076929324062818746152306717991746493710554747502385840286828627470089752137344833215655125077016260421629872184780489780425472516966498312745362775801870604004201948666459990808590983042171729085962321315902861929853832874244337467627110635646783346382460384356081820061513170596994315210150233821252032681202301600904549003781218189739717658687727905596296100723352270460675266557526512921412951888149226130498244223137243072503537252870559044469641276385723676689922956649204893201143315217288182223313038454972384661238521558146463853947709162416550004772243625978149222124787098085507428715254879050063495277594689902782605997853142363064843344540911409134834071921588212173484545545664690042685388256033258659447745898910845769973906812780424219039552151467231764266321886204598633003581250169683380729946733722699799867176671032653292137889674049195805620629670906181444369261947686895191537710439348990416595994479624074607298054552726451848487369305420848706882551862833833804375365278788925852040190883312606918657499044864041010097842339912946967401859157602170526563863048687982167450436660500355855668130790602864090716379089759742951108474761839177164646270648050607908167142069730896493086161834387834761745064658357975167592951353097555551446186794073310710614199535169612082703722141264152198737588095730409803663916472695425491180882890270444568550608724406924420695704587473199900295533293761856925409282495263728216945718683270451610120916473565166824622838780311792811156977676057708395753992853315119651418576178997721183134012382725479242072084019144818936297750493457461753681379508675468167728534887549499227825380377503497849465695819837030503645711042618738532976205992401019711133958569115373816793343022312868352874513159954120724496011746645800369551740636801157952283666604164715175425842264139643853399746354187779385009705423997532691024523432260644476905858064039158608760356374797977264168696485776683566369458366809058943752724943208556535848027914911318956304142584778372692526629490600461179677583121772260846846589999001824394106169535271348531600175392939801365598330612460505580081897314299611733132504713970060824840173759902304090097605398099722882376734380998616032224009634845822663125213319791953992658365489924197610676425073397213215622359768357885769447047473093185415352627019216063045867132869852159406665082728767066945023601812932762227050711825745867774993281209547026935115915957886980168031398508416186447654254796564821053480564327491519943185277755258723671906732429841563833868528077919557105413411942278025172084146362534830428807929909094201602742269564599618956866471785150689368561454618228682729515400566508259029676919694357428815546047931774056264244627566636526884349390095147542591060399013834763451338634817769733305927537928853955742567346853687775490740226699390279563696050712680311406033909896250309674839294952335009189961283590835616688182924441670174042062962740758447938087913048064678062201369051280191354903025003296205418764260048698019054407798918853701466927290517422159181448287106382878699969227017611839220377269557910960825816442904359497638167665643410878866834609302266865787584892897742159343358658954505456409065529324544161171995775971436630614862318676266161924357703940117867713736961136162447795889047181020231508860685774927124823587817516863385410633629700487247710937833128844506622046164138417177141210474138108912209560924215809117030104599608031140671638404652719155589445732539740242880194291197374559822898768953778093475721281559800267674847537167886689232831921880024573312737333201355325468649204858425675103416932979017426388332269798990382756808298062378241571571970680028947012718292530567309230674945352314916634038633253883196974228477232182634980961652591465687224260062728766672488054028157976338980770213953744616896857019149719296251915366000239843525702678153726433911785766438302691905545589181519323376055253313634773117588031328782934522739905555149062148241930907083288878198135825995310659221981962218503896707460115699868362632027070932362752410108985548684082384141228108144916079717964228438223879733270321094536286537250693465073136756925710488230492577083822178681507648255767561599341711887035855033312180410535686650210913435677056597689220780047027102650586531316331338137961241227765107067570338668789473014370194962897480725276490838573289133615537377752612292530749834037944570220639969801797480163594045329929375344107605409447985403663427754902386468867029736291802746704424038234239353574480520768123471531386413722006652038269010281488828445607514442180548916225133729759570945878653836411286424821510888075952891395981697428652952269495755424804177822113328491008934094743195720545792105995353488943858022063362934433655320945153575499202294073451528384371244298917585285904031586533421809083931782527520865730965471430461619169211540594145149288954122033998028453719627167081800988502553008955143018914440347915488859595194540329769291411242282720217344507862218275409018580092374506602876774927154330525359209165171908220693696328428991960669493843989603085309464073076972268816823514137141155023549171105655141867146589006063348286639247973458221992955205071725858681710574420654751825697795279612495702846514653918138684149075453390989744217937925242396892311682167794289976233231530008996551205501403875154519707827128867293726823682003019707042090997209787558380110880075332432726427557988385934927900778425062683080862659039528194124874039560426790947199807535425046877530141813859191587851358224188214163269411204825461032536014436650086147520860060698830521913072957941256464535055953805940935716699240830232415736331585243996805622023836054329630112765092671320724649535080897503314450310858036182715197651650722252272939383784964400092986202349968652818173237689992265587407532559921397825477974734874868901258932715085386536544516362901989711101513453155420716587689869850266111701432477975737671444642572434413406867213721185074560426168409204560465351594425053257538176787828282823864527193718944334674311007538038284950375798585686743496231667476255526391258946041721951386457678366405310761113553492061773528697607113446834772045066160097345289068667792361316110560430193474334749596523936784952439047592571366370783682978530337884493569575052251822731111309339030836501494379303281145598692745398471395504484171925919365403350557455467868140623417248622975537574973645819486090141106583860476629455911125765917069746343935822635261051525397490126210973891911216071413358632757420158365669010065474215011381103663845225896779275029481930177142439209720486338974792792261226937165442461192039634578747340302807083599007947019017162098129829456964133275150481385547454063067003846307375811957007588835716652800596642696400849115602011022880583089058734792190389159155971370905131890780278984212563026224024640429346967046254533700151589341538617858334408328934812455062325989859124004984308246801844193538861447679840665207970831582305359052788624760850527952126870239722065893263994305186685097338391755979908397540852928043840887135554658594992333506162819243756407011638922309230512341168600042032044100441810803174389437940049524235404436272577389578539880106348029063967038462825280970422041666174704182628095154488069963839148444000216217488516687918656658214461059734081306688564596152149810881515136774677015901862340393838962142073790512999275891424902105360872704838157269822365144257417758731015480007856640110975508303234971659997507339621015991383699253004627883222005135898606730779729022409465158635207701855872983549107030111892398093369478829221886488159196298930710785457282849238321442612603753165304696486287086799796536383153323840722379513442863486810110429624385969822892301153435252780969748784749279955169251368372509632276898864771140008153426202923817650049470569363958273189337314868332964213419489398574397262308703813652732167145433362224842016368119916083306661605284059076848584182807102883347390073952411685945880968175094280895231141337872191197575038592323265842266894488886622402008571379003250794093973544139237335067620488533506972390518564800341867379191537912132649674175372791413621630183181432230414469545751095859703042273693663649299983525591808658529618287897147564681021769412572618450158321074909680356324828711289691765244367922378544653800607063018346864738062851739759244515307598042169514229066716348022501837197299752138834466311379877019897603632441357763700909028649818109020639381616736043902614743372625162464910235429794810494290835416290996747648600206519030352695364983995677905416131434720938712627708397840354207735195763369394402693256555276197073407337950653968034239421894452124413360948764228259558535407177069410844261693101704343992539412507280090265630662621427401379015834076857047083257576027502965284882275363740920912512085854941157133002659072983467943536520722217384114178522057373981874481583742379731066106194882627578801143177578905296766937106212081396298084066618681885661765906036118003194758261573454632871489401594630767166009522528766441108573855663071909889528878832629610687820878052804147031219128105453800488759586491344677180398864462151081458999940580135967485964898538695593294703606964327421677273579633826411524837506940449399250134678106865387251177019757801884481330386403261639193369376407367855362844435349161680782115847781917715323882147664154027130152510766754340900682571404607651849522861096693670913694418610385016702492035170350159188124785455651635844801258347608577777472308427257524765869807760727448706524064239948824627864384252735101399355058038400498423991318962884545131027174588345992354450724679342143000593425528885015003906941922172886532573312117881866060138301652862986082785236045660142567148997179818347190010106633631365171204198901694498797138452243824341728273196648064229725999666177260390141812110165155329030586777631883614717163386386243222718129232416851598808409634674922128900206694298005662581775208040090453469368002212919033273355914281114617885225955425405193588036769570969235459817234795329136852293079011518911421541594251512995384089533891563702330983867926502781047355467482096177347731766986133968551659007836009551796160508943332870890304109369542993011921224027813366528774083571651921248270806006216253380818199221047950756959189112051105171105796488026570029206979328096539921502550680806201648841095249143654189584215009521457262905775441776311216109637700927727081199097183557374336527798365555770069176140788875634564972704187492352010623707506949173688880051247923002213533204949003769080910032892707110517750418545884667730559482251866849488721036515896660308197367832277408616633869031743775565059924423071558699700015560172723999732397256919972524189586827436704043273772043782160935677451035742931462779228060572862439936761851480625125011862499685157220494949027927843648292510527314428008640622013795498065114772127254064135078499923066494972605999043641432058842933640753341189271359862100707260365189667157212767587876331193668128145897527414292312485159750056876205349748141047412495074979059082358884706930771179729096326766427911614115273493928345596168433369299269615227495115698300053367166381168960081797388489634241778232717944981518378927851598184180138746610811350822798864758989965684459128112291568074732082713920697122494130345471558708237060685074787387269789277252179545117684002236622556075707180363919548004270973079758696338759514728262057514554568025481680628135380438866734479169340229800958882782624099946048037828931618087919988326602590680514532254000460137561064394717620686457174540731761388754906004423112221007421706058684515732448506828228293154288904847561085994643872148423929381528337254104872037853596869670454796647966447376011025451512603331849898905808335924660365241071423489357581052368503893587349560400126493104562514523923093307492464215284856526956031670016623943205915757239791993431641108824809754758991483378343008785995458915382442068483242327846497778152518767903884899209452590676055783806845968092748240306831930664602213474567102385106172806755175091586887355708575538939075921610839774711503802141776361046814376707950313658609360242272167473811504714507010308140713742668431433714629797717034150725519180222437425234856809772517508923211191516413101453581346274561422128717530237384507110727145496429581459987594208663547690523167377929319625038600668909260989615815223693106019508451331550461306733297519137842979707787919198503823478638340689452781235702628085839142364972598227825127234957288120123673259670012598659322067700473734659464690332183254910167469537993690090390977574086160880715742108895640492604782382773419953286085917533505447204919138364783104923792149785457220032578432759612462121622387782939991836616073059701399469802474361339361235253369341349039124301901179657550569119299831869304646217438073006709059176633515308948208515342277292617960286461092392018307960985176918442624296881909454942363455499502659554032043483299571414636971902823829474220846243976563264106007459700644568740495932392875608496406975078641022502607630481010311681963638566886217180358170140096404702953885477926117770277866886365509436257858799672507881508690521311629754803392544393793578863675209396953290568775856225218800202254439560317239574670311857618318850780584078946723601150099114488321043089138740906235545783037062087795148238395492030007579813240074988932594631640278031224648345114039943733943593516358870819226604135748243465133548592678190223752382034598028627517461412672551778648328413712410304851877046046552182892450136522590817512033086317005919797823667501720259930522108941879590939383157913771505505574730650982060053354096758739702699491288572978361050841504557181331338002399980977070179131703899928079703978995070933154695252313870242974078067596016869279896764215014383296101661949278459252391311773186752727194321737461017410140297719135722975133344890924575796524477042793202320494157595877787135619684640447583838245719349353211994258185807660349592356050497693140779289849088704493372932273802113898309475877547364445517207252575152724398417131567712504023156539029644357158789485653541936644751690586798751464136833082563936292501913967407814026053084307286415140982817450940922876468629726543171470123854837959517120572489583604451109899952991142411082461707480576955648374899952568350954330536475825387872618356621189561133814082475807656813139847813131696276315824713548318684700875276094857369760117923216421487118459001033394925645941217879239550229366316626888142734422296536533678426502214872000948469786724745726567471160164787944697394337163018862667922466712876318954962143191341707970868012518523891048698832268153617353871957652737730843845951048903884290627241510557713337744725558890153085222022861433506754712652796224412984995632358934790606219962995808842227772662268674113508534000228833937245597175067926045109027777933492499339465504411722316601245785361660239463016901943169978109300265168492755778565739573016883529398838937277170885665606270380840512438573914243489213160888732962096880137075262897868573455156788696766625401346133459206421513006093993865147606163838010312846995435516667698670961529548650181261845373254842933882255388907554215915699201321260817696652154196485451699809230402896587314707893589125993640668019123745235491036228975525592851826483756221449833854065819974464167239859924735657849643994813319279826844555177958435160592910117488156575890175839538147192046836024432477695427315157146919085333269134324076055127507796919828552865702727202866403342108996845692120395433198419565318363950998034410847548537269020255522553298812949808706626586890233461158307220920002955442153169231692725043011695407721357002562873002702011556161276319472704940456618463425751729840682278499956930234549009792611082711375887634847701147929561790189349759496061811799236508337609614426222913915937788017814738799459984029927222849743024826646225021561598237599050023897524393453633906782150185349940884820362634186844352722010034865994210318926980411468128767469088133291027265232450664287532750167017679646233199496585611547864684552012933382206590650682422405178755547274934568905722518408719562993028299568895009135865736723362079841355427310418755122639436248698078578221536424939529712666452098625086899107560402684584902462790862072574249301702767574751247135705101177897128258214695475829659952620404171839583783446964479012684351264964371184677403972357524743145669095190415596800238294409294859982734541075597773637228466431026365307979406307624469199810404491003287753524722635660612165502644459687732836557058944153527553187220918266236951439944704387332015847014218182748533238342982269136594673622807995329954782940762135645666212251262796874211517753163607537414465323702523195041091939130770365682498643027958461413031812219403690672128950871235622638191838435404480998447108067600054099062656157049057019308779989016381469745926207295609482279957293019770205331825610543742970324271573615280670760795752676277455668811220868912970713660360591965699712762407025577733603174809834633526127980603954143988563915206274783680878443585937246578072865215267965273976853540272641497586294926202735639804529752250328081911229975641329823613865538510119878566356620049341867644018775390501993703038438508824047495737650182912887579284646785766081661975742200065896065485185295345828837445876529222437709190320175081725541281079044257324307590758148372345158702314934673265762090792215966641121151938753178878867704253368699550015131559195019314806001508862171378443407495190612244966614715844467711610858282206076024214878646219524523109141332662541163435878942375645986695837924094110113798087130997965492702691001655949351317193340899191053219252407096291158144799316574164577467039667455320937419710801079800770496203862012091105358604112896575798284822591762999104729989953263073209490826127127040346426015872698519476945245120807362062042981329794661829453279551486238634289340457329495196578485252974601951689961691376102553519082058809126095045662763067438635550892645825179019835437521086436081427970358714276500240166333392259873990875274651146875991382693328158344833516867694470251167385466334808629698700268915619319133509425273081285278565050289648158306582390869479003482562446897018681276642008068271655260561640195159893754540392128299770487467233245052595598829367493634581943397461500356500760971944716156950873395494052406326114247008464072979407027255366137957035298620760941503667240291614385293229834851511536636929426068975275252502418253173618238297464594388172272540713237532404639037144573204172954244470057029144882845552574083148429957223719376035956044186106246806139523231262399814224801866660234932128197132433139518152347479958822280589325095343864224181952893085600552777461322648770462733699514261319844651662217153538282338154018082252848218263344809693123200690898944341863676089665172415486936500532380849772293137563888997236235884746687897355826575968539810117669864649134490299600943245818535857909320788739820226273177275034561836636844601204011904206389344675364592997225953275311021075161532007432547109244155985737887523265859283258070532892714600559389150450243652450600009605763363515373251822620740260911753030023926104747186754289877202972989017329461499335610040074477474237392278330853388181411721622072906434776403130510670604176185396732790167381520479728776428558763709537839189080027393301267376788009066544844385734944880952863509752096697013288759586880612605763407445054457802546480604491466189807589400973954264777548928169134729198630563267158185386392550943079976830575605090155708289848024836573233253915269296067704487418422982718281163072402226251864043017431561062864196268554730662566692471814368010352079965646894799539321401101193479006838744636156939037171275314363823678929333252495144395777702255889552400205791802302541307664995567927431814385546934356996818680541128780074080217692446746674552337110750669502099917023561841387481963364001376204837335319275878001583054875800842358458008224279769950547792480597265657147543713162714311789154036606567231605294342774809712732703995201405752312885414375983990743630903804269766166341918200240224864523995590414964483251340241815950740678690592940115802193817564553556445452293267094118433553972224381933617297991434947714900147268009366453732827480978763248339456328178098807016865174035999511150873582790742681310748905543843507906560194055435954644705978619938931042277909577248621407281121747669326833005443337968440732861280589692207142310679142106153747747195136122056105376736798174861190223231107651304991929850554101732788008422350403970816478580033164435779203956488444099905004822936889894964987895796612532572234412796889949055922120534815698694446055860232330895035186710910008283449617410762642897107598695007735402443475957520672456039293032255033076210425618683262468811393910286904768752841623898233429603700273745772210722042885740607685907003314475038220297661917770203950844132013165432556816164692071171016801982074242744397206328889892879663623290869205601988379978330471174916560558380373073765429540366715524878892727451815402872795015928120813148224573737893573742613209206389747547853408424827093509053369186340566793680181569016921920340890854606906196618747144873560907962269238424973243482687233758390932116203155418586910624376834952554707330188253459164825952831178617415151060903833480256292823298590491595413575303138143722088938894622420296232954741246332844530248743525047297539314213312912873563308507935306074780005444193265685241359820562790936498675991421023201589705559583602078042251744917224509788299853971548443269426662326448906629633715089790995743563654342423268124463109555645751140385309235090267430872320604220940490106078668813416889660198057046264135031398675030017440873115824622334527176632572717699819372430686036407254305109684300168643331947034027897824032887114183672063236710033098588564861326555690902878094430076014859242000333508958287615600130998508386024424593605931600780612920370856345163722213484706549697420547720307378552690423124141019091616633694279676606445874451851909656355132368946945324509861652493253819451563180755594574357388196111717147920934408123988358271066639823943676323432006869941475061729034998340065137024764132434977705048857400393997156494301358834638850506335611176212153344828942632662548136642817079368044513666250680111387341984862931043937371224484400928428982995374362299108557726386279226353951797461786325321293547544466296628846117711291487488515467894074899611931439216836717421587059665742343989789410462773867426702442144055155449088174113726157461116536968199196181906901701522755681082775828295338616530754768258103494535844643107521945474029006651907107679219454173028349888204134878087540807868196751812539586314653051236734188547252430403270844645066722464844346692562316053111588552266541692156791141186750923267666743042859119865196354354316277730005036893521237311818519133809486654571862881090612037132675785883565710134862505657523576298863415728647252924639863463259810579207860858641818771796704823211239896149994470288317129906782139016131829902746315935513514821163190734733400575154351887152660199933007203849567645137726126342024923295610349041301615092247990017484000258715571691247833111883577824712062337897634573674669735354313585702272584403787743783181340787275112602537763277830900166450700328990291204199870259872620677684067819814012542674833073648737654831418687131109220021341280003595668463481746379035646406761667229010384023813073592414556773870312320364030428028758861711997648413984380860698054954210438542328900938000559202617389600109584629299258154855284097727224402852844615178797435863044378802120615842649266010301557987229975857972813646219162730408220170009173295004062527252815827783790506014293296697854392862282705520321954469887495553440598043519421201089725653525510573884462505192041286378284867683441015948098555584217703531013519900359661394157696479904303166775366536478399546447804167168299907155931832659564941359733876285589274998412637675552054592642625902217855519883979994965283948851423264717738689830401886272216898210343106135124158592169311254968560014127788293864854348885373565900625035948291621395628898047123054270497090426717787226885680635509585299466663036910672336688158041169025303342614494788721311295223742271784366376196380003169041014326272208846810162072329929959564641298383281933543702872007809113068576977166951442362670891171808799848160756939848287439091950837106163906797558615032844349788185533977124244213422744984148131036809701348506804244008571605111675319019835245763072843260595403613248580534360484547628618561460372432371946829751488259441558831133891473787659955682208935000576605626303463662552638003822719306302127758207796427996839183366658241863832532024613226369154296599396486550978010859003231328525421017343272847631211606906114336770827701413512331673224437264461967192041598431852173420144664808360056532274589918271329516133214093573303784112106033706593981234869071449514299737070102372528335871660618027552318779543770059599490142360234311327685524982413557373114438224303277538534033993811171273352567345118680840129705167116188938575657594972968298484348533326965094586392365884395110397163339111129517746588476653167477803357499196935323448263511676978360911787986449730067005310284833823405095926264415339234089633259558433285338153907427051065645772547834378019500177501864794341181730777148942999780097104468098171798495796443452699996036337861414289775408852792505387921986316139909053315552288427158114491684143513735908710810281597883297824284223675683390243822385168149712574792984579988381546070089756760003083649139460277435130184776443584548377053194745341172235415645331296745304219137804676646970943604516317167008682224243604545711617331641932818689262083968619217479398250268027533258250699426635706243788683008852061081210800236973405326053485400676686374234600505393321131025566763074228233862203780768773733486263770571961862257173501908101690496081514230995953715004136966400288500427028489942556208137625227047648444395612269139575514826239922959330148855505948621970367055878265225654606723037789133196336241514016406454181291878711278903772270520124696352951500576617381156681127105304377250643735986854251417886613003058366210697580596784400264427597037274428511584023963834995627146839328299212861770465313586856755718406856646653866951001922683605988093172130680238030732996163802493660752221346260826429830292067721139887024713839432178058817147431238997549159684103251014702135648232188071136613482300665488074961470282195837322600672902984891726247659561120927914215409924678653984450759471186046760195815290733293091043674617872122212403906606967186805894809806596500066759953176334580403294550417366325410310757014449143117425534840999612914395011544718057133371280866719554390726117875331961133252107284633728667057797968474971013044159957544712609469403645641640028238222210630064176328982244754664629929764386127843869646707854675065585099840408177721733307107494105492444665806224755851877698388266748954449871534846485776172318493733742651832931960889660845447289869252058371335324987812810379323560427507070768471384270201792791754185994531855022890772228670407327244131156919987766233877470089313230247649944861748906411040738652347266979814121724607341423354501811182752835156809196827922315600970647453321323123661942472029882464202072899159540892698381487373029513116308383238888711553859959391898847993316964039049837284462940422289978839765131026192454072113278770150717693882542918169256197274334860816765624566153069090317175054969706978656954986974906722002242662937815820593189086293109003649143284401835609466186851370303562829414614993328554899426549215949036669938046178381411820353357759411996627772254279208579358849034741643319311668936587899945977927464862081526316518937341684771779955568194635000731442208411530690464685493192175226346624823629416550566760049396901716577806437238715343472887484512451767721834694015084501597289530447553180714272076945950104837472867755524486229454678543117618772838319097569716362859968809556302742054983373695578393781496654562774657473370802015637119050424370130604700407438142178613149606333507026521710229152063125057343224726668077211651096494510228735419246650257189775643886013347129342975826360611796855127502495648734214312798737946936269110211829242359488546542039066868147989786817951782223560169069267236433412280769327758824624468492348306496475118900104468134605700784221134684324107113730499349828575160892954908078892546924945825331960303487930044851923956902199478223774697616792269312054985840259900887063271855110429763807821661496420373309014650918146305168901722639041468491192921152629630514643452002770803638981405378025885898641085019121727857873530016980814690341002455747570320161358804814875372250666298081848582415351678772737514441929422914269467090466393752632480097466506452262785820766405687920193547358489923600155917893853651273821441052116392230365726806392687277705367930037242219513844822115165313554544659383833983715096162978568775987442696023992867202051574895869396160645068363360651177303260187948898365906619781151876575941338435694677063960077365293276755116487450077420186677210087375208937425461072868572124614472814305240292244959286304946577552238834691662818414596330861963546788308118567065011034574376368222663984384926934760587254827993428941537140697000622842799905486836911098825070087557745128398355966145372374993394371946372602472649996949797902157939382848281249959684919939135398518931212643305754610384755205900895653694994358148307057583041692535279422364948212006964905982198414775923982550268165495322273162699922989566121652684551975630134359001726116911019778105774612810261270784033656252879168622186807414246892852942420593464524990373678992555369200153858956986316849908748149349656522474196899509023775634268552366358678149768799367065560258185905645734276889967058737339570505171560639950146306596401489483835695037111156301956912272331035296728621293632776792381805429980363777486217482038306653439798530070222577649337823979580149034032962900649608877195807347138675406940489416658013335699766268038914341364679687264725594716617084491365493800886803722254128623969262438584429932776600627520545602363408696935665523597474349190485003526935997773849636803120886048216133258483140190203800812974594816557856753862332143102822668053984200557536973254216361000462474941136189639542904213814872974864679425885665802712630299837619325953318570394720803061447599144270570070476405078901598207966622270848379240834088220563199149073178246914222015466934716792667536903973314884944436098262271112719346773067137176198200616490886115366177430252505732683239511379020290519480326461233301770628907934576957045424817753172082881952718568383135067500269567221434368727746276493994352721239514222042430037716471361691267679681317619883440899478641623709447846017658575769204293867902918115257312887101093591977924398069468028977328149734917094486297665304851549850706684042234191184334584645647427436736178864226271320775283560345234770299363413736904872606443041265340026254333126695802127004699800586773471210457025937240359293113365280000874631570622116056835702534615781396358991057320673050749711790171659320943831158422548642338622460930407077789641537852745135873696293623142830178175186028742662669912286518579773101781056041107734417849132232848656927690123189838651810519674562948748596702449533520150326038839309522474121641981039517774944824247617448247899721902251405698307889446874913628706688939205233354190462949210619455439500667729917079900279003259982881674121556703130569056093788209305778780181060698725037018793838535699338277931456432660783997435023694947125613098956929517148243396887379951170569950337829986992993231763475072472032260565940846142040720831785208293109668147816027066221972459462873402816447899128705516482129141726596925243103978320321331509603624894678688213724462727375474701310521078895922306114839792719518694882212085600590232792683973214193155345226594848805341457234121040679582936362398991225214165857507057905702444530791722206726579541733299161644648130392519237420123912154087656224195612386545302557995710608562561468010348487095163632527765705905768673176205846222413317324965116884909090774214646189079472303571995795053786026992093822191369848663866108232799779006116538764962826146477033491874840196784100239189472446307107052665628279890647134947050122903744106526210707560285542509773879782189295643320280753012262986412433220396767286249211113197538618346190586902149565750688495320594358471628775850965070948602558222939699045831649982553785425927178508667392161645138260079988683380166569161883438785351505609665673280629015910526210770402629973052025817605638405802810924356294708635612884784764994973749909010273022510745850449496004684207377680554692945421820628425883132600988501101265442827806649851481150386373526591340292675949926374163572547960774706375166839072251440258514783468192015964372536656724398088083028046458513432223226563900416762841301534020451066397517487232358909902497966454438216168008620659411215122209998961729255087309259471136486339787881267171910671083325877214443199408503225614027095579359210058540601986657038233429217753397825916111731530195321944615710304498876132893165650408813457479539816219659437693275056594929512176530379971950316775588774600079289287907419774108347591356620145229299545664013038159519515905477219656507506142729103186488052537837269027938592906561434397888055321242996039247820809040846039698008899992247297750308629953064865229236507537441931478956795071738046898914247652867433568665293064882301212464677141902200615259162707215079922033994560732094269716043026575753343931838737037887579620709643969258666197664891603633618743144845895859024264759915982963956156255212223686412608514323381091461788654641364414679563413835966435342583385095244495375442527440013513859205187910154116776127497754643598691593564382694510915422745079347385025890868086645232674606680787322195397634888737969139324427082208929998037057756674992146619631815915036657092944491227766585357804325054966437883127925203369970558192602232132878360260227248505769348594888339775141847165135065097616173721059310649582645357596496448081205928420040947301021351519062568957895377293062833246920322700569309224011768518312524228798887114753735830358343217278340859136492857331432685917022671417974752136968179137735921239610467343754545680536242579641665371229846732628336544268937700926824640935678534369918202939786040879462060902929335141400672747906433728657405534984676841165515134312801594756005398472524949981764086697665890304870084394661290702048069719902229668890695079937798685118914726983732700787669300085304049528486867056955582596505658151415186127300375789949260483450194032481290282197894353348948726872275031261934150646421943640843344239940049052085474244317123301499680025590543985844690230330547375024472057408179738171520727267087933486378840099679793629642538560441567091311157350582861674232198532001704753563621360486334681487234518565267099151536909436191490452902364476725257983278140374085598745926393479740628102577231883882426995169623280087571809730543861781947832953715347423495879110590077931386111031576591415399034939143709502254807613778221287264269196009779541519070642677713659638198903247662434634455080412833721905982945230525397413796293635761226313066435273191202471417770158472340334740450792993219009082774213937359661976061499392193037036092878020333287335509199320585568807396360608546559743330481623488832940248488456765712357493552007153802931208686982856957377307950247364221157753739161711621227256134975894005295632404996653436836886228826229343309075647196506322018831606458513855641887410420230412299674805213949508784356402413285334546125111791246746694555025465711615940354263997695407338541919847447560987803993296896044575040716010077690811176653291993718808971413853718278868395861696614304753784984505212399499986582759796833784519312297186668024155243633839971472542290161349570630782718708306646682927522829679474858817416854414041470455233678324589755368527001314532456583591026298406518601151656107999919862409930215263185538302144784122555144915923386975374700178894803706088640973363445136819430530030580698860309129945145591693547620997585858195196563522253202099301808023625201749056258406469077849825217831246690082060528510833302739617946659161796332087042885304525082689931901421644382029964199612544133812197358588966130765396253887861241984432186336666144322333867666775464870512552569997179117302995814358056192460272944679652044622400478460808906786526994558933142961466745180377343273713057384777636447569438459190072174308785954862667995078240264281497394853852035179991224057455915919999708514118425202112241937816983676438225890682783811904143469500329714944646051668309296991535069521308463955764725567582540854233620040947653082083101805774165647508460629319831358186773924485786871912224970079085178814270659566045712752443258692661974176383417698643067747949311791909951678149588613628912163003381293981963356650840427854602989263229381885383453421334538861439761475309046865989471803052696925291428347873432177421818718334183364618446437678091621470132963882742388657204678614350755007946370626413794077009074514014227056787631483010028362422891212374791301576641678669069067827788241974091002572731254113692993476326145640930384191735602928031244536848238922416538136703323332381279901939013419929245438630702496323234172474235866997920626077520794452973974086843411188851833913452015233114129350830713072787991274110417325971501430498138433606843033507204779782514895598407797377625885279356785731692598056907161077599364334323049828480465256527205876548183476073802480614930943582790954853623071345771699221374342958620270493370531766850825972638736599624243028837278014911917121156458187771729691702248214774862422347432798975791886791839488767945455468113255440026008852835393894716154662701165516838507483360463963000404373574510037024190540278110077026310492120455841877767652851980150431213124575762309169859688718041196650680765241343209277206719988976785692849838698415134481171147637898232899624094669139421838867066648179272504561990950835959507874444010652081382765233152078529238354704238285372867051973341797199219819480701306628973536342738293343291887895151198136240828026083528048302212275673472541766835026826489395005340027160894938342234509743084290790511314401340838045193357102472173959797773441680669633499328710545686678669963093735212688471580057007968587394817872062595996538288131359029577586148379132878508102769797410324945622572001825944939600153514121807453181102198436524214526843770567694091552153405339994778942149565416916588035429434132724945111110974235267481892197451083180686129417426462641186240335565669646409640626734052974141998205859213911721425093160107200443512807952406569800594187535932446732830270109298751922690482290472634436851479779727058895618681083028632200686113148333327413338849215942143947772745805294094941596497624009980287778724841973967697073361302360942590620432161879910589226138467234305681936782678494665543127769397186183454387920614578192216758586974171760669957221420783162862945964766302695159891361878208506617573748041865446230476577972011092791999503270497350382855661020676719009712376603274388308771641416671085547668019655802767710633109146685788183652738338145674626624104434533815919290950084955687761548989364654161404370411890600300398889939010551295749421993585164456960297804092941752886357143671520141516049537350558883505632735643438973118104634486795312348914335665579331872521854034565119827048086204109929341190078711600481425219702790131757485366013447687014926211044820029045962954373483986541601917483615953024969768882929061877098462557463832720408343439095957553052346139944913930799458545943698586972984857847795601125264649666304215166361589821688112456777561172823054107976827392719925389367910232219605235730279032398875646702841795502048981917504863696385413131927915283452750182765317683631886543352391347770892654496144921467697615693195306266093865004041865626462232445137107494406492843380599938613632239820465486191888507952088240514099635959281814079106375050753829770510277636799932118923647187638708685838637178189190344354012093284485310231894209520148206356436886843549314569344691084319572582503122850513585121160297046714308304206932070260138121003440072615207980748474987661872865320956476338467588897050430258891824345167643969742284094538858501990705031844178771479864881912142278815118010898466216335353477332130270907681445606637648196672166968997437886661262354836754321684516760194797087257196536391883150227541595063944178689589627538658465417001658748395863731264683464506140707431592934438239750702437688566898309961109063656337706760603241716105933424099247734264207284743883558848684620268829509417517149317763074243232791269312681751874039242770627516710350246117116715702377876924512891995814008624234828985024728023184423511731163338964810025645387279430647616199958617590928437620277886327775470941614158849319793934956425064867171846141346748197845715068433780275179608108322537988976033811675250339219901093658707985409060209060123108806351464405006272908474303371194476086528632718459175366326943314752114196681975550489708627808288164340500343459161178860508892385920812060700060711587293154085966097642670908252031355673667056464520645746120663124021275081382429303610516829907820136951464763642542429113635860043189166970379099273819708771994669401129305190917667175097613855459328842790898537175868534432317023394727776650995612418192593267031329559887524392793549604766967545688943362397339140859827334542337885093288471662828148668624062241761965878955560639826693559167864373762952241131362896638403599593550670727717064618155000803222065678736173341157310019755911251770055603667260595172609534345584598438819067773781909752831191214957972942210416112078685745358378732248931817614073653714721438397629204348785505633185108568337368146520654204261480614174686437983422456358581280184432370380184211018371123245377864617491500910293071789839555619700666957576602092175420757826858355141952849543467392771329011781104457291349573414690312252378122989762583713519188465132540721703109151473660491855228769498145626295269444441859775973309891079767109220440593944202910658276850128989568597495739389194778539331245714343936585771764513150122764069598676384132035793976521747406081388957887930043105339654735819648631214060793052892775930848606271021051531117621967092356910988533689991152542542505685476216532869536824507974889175136331150627986474912422347443899401415122948692601932799326696683046949326573316380495866543590439767447552130896985773970544711506354045024842781060444300244216797826450315065216086001044643997882183134410811651659165167175682019562282349034697444283439526090870613996234464427775640412639534610524541070243677072560129923063688882092063012451945954544560884224528756803362177661570429107875643470601734747310263758304613224978632252422935164478008124926272474094723044678250999052772325857636218851206113144433877678788144880197698397413598547208514591161399661040201051399938951722491783025411878224713329731685690653970003746033651983798535496092098818345384437611787806768210985131466779654992393519881661151824585586332672534957207674237756148597677731927880328856117702059303949840839075554584749327035564173381655015934237297731706255570797076948866782908263598608708955658744707655565867425882127822701762564891293125370467729354300978176711939294837475081853399605567794621411691370241541679364095355484397130178900773091900730790726631322614431489480004941576925323508856785021723290542531422956266469746321368093677210266626123755214007197457640306832993586225990134666660590446353945868270842912309692377151781404910638557208831291905942907710922109396354478042975063697798486197528494919797836958797898941562302609350670017341862310115544975587882226721363602366301200148539384958378181194721006024370964288448103683991371200291906396068175614268703425575302898179001955905206192314842095630718337891377027741771724848663446103689003147626925324470328655083513590509412134681380669463056062540159277687517135246352981324638536142900902289421761396145449376959046590662410983764037100686033907182900124202402278382724361947241898817886107232866779077167882784572124615071461400657653775604551880125110293220327537947890517266166071464304021462542256535643024969463766624777154474582989143650399464610641793492029084531327322383203281054772471478859367551647073680618982410132354615016389454362949883776732616998922162156422274096466505390177277483737923348334185163248192474853337319697279960435179003814017028682910915590790575991217476395043206258680077599386778800715721708011598429694686155698829669242396975041632173730262191682068227060063673761170219453651945087358671858375286761578483673705695875201654499054755847020669737749966727531310877898781055854521891800026304246836923795252437464955287598541035211900331381816722904572858401987383343557095664303011761232784374077469635781966230112675288173239618396767880278752767915306533432873122026980967355474951705064319175043942574874505472937153992101441739848646354486196761745723020251212094765519125613742924552365520526519386727122833250239033158873065812228728554085791436002653979974216450269612249902726165750128899899716712682234481671973496973289648425421602152356189276004253060309201093277636103302314139105143468748243532624536211920941446339573070691546497269660485306780965022688892333559348541172834674999556698667984090324050768781307469192797144980250581166149029197922860837418933054934882914538282444976594346552809197650102317699432006238723765746894217045537126616409160489549691080279418781609498557462890445078904060666912956497273688972765754778479445330917904744214410666266985123338189945271437674792238026508591968842281396519224859533707083644639378480701143997887562201842396841129550510894596661274826810364494337338231476023782116692860815574909256204925511006600011709419639141239292235451529758658728779242696527537186435543002204319057091706000158376569737074181376891373512911869291792082064075320374245193938130096946496814284644566025301330688805953742873637092258973892266714895679794641972429458811862281199313064369069254044372536854032403955935934597847003687487902248106456229080902379605880080119622672234459551852755495934838972141897684843574540996403004089706353919691028428062380120024598051757472204439328297074286245099572139968359377976899417660003276186884258256884669912728782011527969138286037862546905061894676143054608483307237182511381471851844201405881040311454952702570538514273676739278398572961323777393412658593544465548642894045504909877456291618106745605901072785769172489787545739377279305114866075429051184191203571419551408514791899457155249916163140225157857830321288871394067844233665271872010207237684234934703981289352805270619705596048618326398827960004424134778501282417828219418479403040662707299439011886021330902125648516894057492569889023445241998823814871676344943795690893147632819014359940351991578925698001138769372752669623076241257769474016084301314975598243131069222183741151991393445020050127319250350789336134755842517035040300915234218067613964965989498625445955684677954604281430637876386574854485568679201356560456920333586076680228717848422700146061392335637323545131905366470428295298307182097991231762872180410179938400793652785801222651306474933972947954894095417232605320102795365031731488193066894894262665418458944544864395244501723709338126503207713128702417059323272962524687038328198524831404426635456618473483022995395010965046413827733828949905884007590564504469465764368754405680045497218818196872673311138497158145193019737629832506004731202818589552041017941099477756344643267441782517468366350226731609605514192520141462894774345977252224311818807391785146001144352929459503498568860421811173106603640655877596689665472757784198733375185832022309874134800411487104072980420089364437500851532269239802793087148413584977821736167995506678414986543567243924123944652527368676258734843813241140441009970557465961449850446323658081235448437388345441282788978664161275403578141546150500954262188855317621628943506317158185907128001813844833891103462001590753272823784897472623994140524315698893966730786911519338561928153035836536737570936285415671144504950074799177543028203848355605808583951123293044028078023789441051086433000208792499483555667942423476244106757636197327274583535025945432743003951705158917482872936184059257120008041698923277648061832823219536360060052948550659496118537462850120225898428711268145962704480229728135477610327162913831126767871428473588555161267168824646418465275808391131397282768902544916682227989682888759267008031739894403095067145521881358451385566045684543144606927164931022057403279334242274089087024602581962107573371256132134195460049003282234196809120216501278235743273406082414847043140257714338152487600561093084549523902628702200111390981060816628739109934675309739629443545912915175228285080016214927332940215194370588021278061104616346290638325481389302459002599071655716363672752920115016202045728993652104664486727459727129118640607035300865702770554904757199603846984133239299152658458297440734321269319471734276362487108228537513902254732035053410623074715083195962024704694243008382315006508957002229732938199767978568656059474804246070884277442134749024877664254702502536197845112535837661886520161790435527683022736598626777958715347262225227094911847447381414163130129179455821818398121760843101376353038303104289153741546685387982231235682802436232081467247401272164567539409860189533383717877029061304445479193859377439728009304630960297136738790066118969178480933023436358917005945587025218520914944616730020065731737823245996781947383897372437679032079532018506069162143715033631803707329252404885606723981838193274171083205478453058325779234427831124798755556763654357742646660880957502310920024059754272290864933636848834881436148772733631646771405256535510261129115035461568956386168084150500561189022573265669528641773677857509563670512293324537532316383620496796458586641852512026325234918056520053993477308556193931589032335705830573174118746002726260585084516179180811035028900887302070885415387265395367320376738154208909284458800320497068121584874319230309671229536154212180175985964058996619117924491005281175042420412116641874346378150961917640215911205712213405579811865480142740266780639296445233568654889827962313012244937663848633941016118912182662309248860236147552999990889443435426672198026194608854277225321647563751934127859397494186837433822616964658387739709894689193244490279087663371524994741992833004188878588913851730359336016236231787215820965395365046690272672972163991244166257569495703866469715019463602184773255070655183388151573567331634470111256062812729592999613814720464700001097352215578501855284176902140677617926087730374738976974914942443625885022773522653102316780636598245250534268407416266318777753727312747250851242663769908978594305829147802121439774718081305924806984002683266757521642432765876544754954238143894289634653362973050496300293390058856458377269371362049443104382712886803995005672134623280366433477191560651451576394754209844510499364817534511846415737676605857229163242754181143537465547188701196660421187596328619002433977158397686260390821687681631973019672218184158987013008335741696636622830289252299446043106804790506194212037363858144936175177782294589372437742085191493289542628149616617582357690029912072653452291529779833019908240902996117628750978402348586315262467457385460106122445076773552414404972050233754711098672562459321102377691913725808166143590503407093075836113332683743342421624257421239628676562739541708637024127065042259518305436988810089843627194233232109747375281002705377524764986158810332983444435273869220425935579943917890602744330894450079969005688764732099719680591367945201114136891952725152787294155861733328799680661088127454958999955414806891277070059247426210370498513191593609313332203241829373962475367047074405778924782536905121369151029671318374101608859103427056729246225536177420720731141714130087230157177225905491850565256277211862220187267654544380379300086713389577760196999326121826761997257295274983169520997726418170086595177415107986802006157670460710406315361741481217211670806946929036387065622609207682959462376063431606472084712674889489959469696262011741690300573599102305343743430879362625371109819598646748997892671679670081658373893327834386354581935027154772733341308324571501205635749429894250802252939358267542830047201418247388892713031785796689518726873382192146320352293423752636508960803697134033390123875879433835677244734994939278208978056940556372471454283653161543077200026638809806667232896904980569571917767445323329176091064231108454797544649759275305243670241054006735251643802429839631668090082092923506779778816362996741103759563270891025951084511049340981614895067198613676873248822993614481590647282901476656022694064247844483869687584373089168394135456386219751041246714567408671632838747316485203854565791094909048903101205493536375215673536166050941172654516374719272346816696682773867240302577275290949944352053876380921968154401593309434347475143530033101332122183740295889382556679975620784582687490335383948066678584064790461804392157924878184619400165849772146300985267306061403747442491583436782802411023693734258240234208387878525920832537544267389770329278216327905308355432307485642714984684760279097494531459197073393036106121053761797690760690046477017278731304257328342409529812703143336523009029044394195853451878270034987158980733314410688358031550013593609797611304781434266206185890329199604521559792048537304542407837863829822448204975895212547548305500252496810175414228702497924014511498166946829455474530884455228607463069357260809520779634504698017336582914258358348043301068892486120887499115488982134907290165230419394078799292722514126546706061780218304407748109941462331479316991007222322588540266547885811298584700930888124536669813675280557727586822557169472628055516856821467317242585120427745937144665002481668778582167503681264577831178721381001387683380574868210728564822571964224510536560832314085577881381359915415076832378558415874414321474742130566953604728295302358828136809789680596420192583239386284749563004155479645237071776160034154624697709410972108778075290872359503983199998074368745674802765039786320153013504101947370463956374479389397221479556261664202151390375099672017269910131795336347670327529107510298283736516796898879147306326271337983233855819605348275451052460526972596083835960594243740605806747992717333657368954750104981581576030424713794528165819548890144612935390043283931823533070214312308641247949437175489863126312945532336046702855435828563509526112340118151775137276039117558215106496266708351023011745838747135056958500913886468928224644852650146626375818672546567905478754439988332003879949782434950103187224887658236237130473919621996344168775526517458896265408230917040654326882346593961143078140788402853120851180436102991902277443473036218577105517701742553561174379848077868775474127432056348863032328998567840287940447480694621857671557895406399529767358204537428082040774316704393357042001449716276896710799230526989706987348862340313421403595384638795231038247927676382436702961493250080536245300059549613809498462573154715713425729671301334826576972038920937459297157760090441478158416450260105042121013954954836158368973738206381655458701021029695364196415862383244963614801623438989179471652245632984626566756412104721680280612438484912115878838457796335047530866368453742366024154203431701929002762318534269337723582825938070238076872761689084807638901684330934588859395878819078641704669247364948708897942429772873837666610312867861996668985048938811379570378521828250458367209656509261197706379975305909300460589920759235917538467575831015586064424190631514825670711176219425339989148279542609015261956192867169718571973192740630152740664499871136637920519867816006596601427916022316646409674787737535273432744404907007142709863385547506621896744427567234218545795865713217211126845357965682122283877073727316758442284369183905365984427835251052624621087351577552344241891533829016244113139090033079769114380566817337356909128097637596829845602546083533411760000426319435611873567969959900948991169039542316751764010580931893155960753084342751508366580686339963650771882445459374627286347415640089986538636410610306370940296177398771982193151266141143376284799958528038854476462385637402087630276687263850963113749986376129243079822222802197594075577160599271756773324931601798904280687491317759730966562969464074326211089402694162141173717007676508328156374453264999922650073074771215676587305225710019695007401912700975183584266953104484784116685110414536712704180790504507520798609298033514714453416568151092591979717843710621329284778457123810226356839940375605447393511494262647791313381390794444239515196722154791225995687231366283527414878442756838249541460705579989755281105426743523137564490807122839051563392742169203869105914974399302532250675496416403032719276688878842606639533543757720684480643281273353184886545358914821739560148489229691710654905562968051334774756153863923880721638169455220029370568365052040501109031357969996772909947006816115872194688585940305991877492734532096101028313547552769086082784785572702188307852097074188692649122255250820792116445066713961269884294975298424899965520751556085781488510328298171894400497434367693677030811124562820348669843321293497892048587152479904751147245491717573073400088364777728866541527409800669126001099289729742018777703989448754881733871317124647234294858824403938578518123679577670612230357151392671061512431209256284926749417717638521293594977479069729660439071673320440346472400043680175697395904134291251082449617209868033172991573321713745668533369035379635408379342708407513755282561219961163719014741403546892643778788187779799666810819356937151658175918535345449580744835591512635361766735562041471776262402762603117782711639549823377443744603273973697210340179698596926210394530207005091076107376336869350570207973481423566989415466946434503663499574040169204244000369629815683248488881464206628413613702691009758540146760573595539233867551045020205098199063180696038789748263111649590539601434570180184864327624412858250993892751966927751563369886936768763690505033137340555187370118088560046131665025172929369099361070256082335461199422745347398336609472551702962821557353749731732729612079449466229323292003076993155558857987384006745986094915376786459579905629163470498075897290502894617319392284948263190795759200195530584132031767821257530775788987848592205802796510608835014319392517034771512930294108631818138111690815322797468874473502595419189741008037150049498872129392043069294080688120453060318224814711235969742836707610478985639513319426200892183046896158492320926587683260522834795199550334325654921317499553592817591291147851267832355482386271006433802797015648705403139212570323427703671786769927896006930942091812062167415059943136877286280742148867349543528439603010506776278699758354921825040185057241256177018327392764896848970511478246922230774858156470427258664990504679762283048059894933519866826700065267531085193740338205299866940736241025274364616733058253165885792615316957849337744985844606171397197273530578727310064620484373954276526224538641538379647017236080720157682758250868694666842293658045689459248889895253187669327254231973131369271716442860679287305407857939511218457842635998128553664994488606803265995966357678565515732664512719003373208602216855914670168816752394478173441340908491172145417067387947176313974501244317019807349984184396926348675285739182794672423312936118234285657716515109034780128915150070767840129562862881339092535104787153740750139368487262678446152277812483976345016377725290599685316003534558231058328347885600085547578614957299002742092463739803498249911007539219293580584919129757549271317336252279023229045814353324390091411439013335415074869009562067418595725995365272943749512703302797269367158421382693310209726058463404626201442843130279365359004006028955252832224446037071462869177718937449896482600071020752026243807185794819818662356450366475089728037662995207241986165096211125238698540109504505109361345023639026667509273590389393243526475161018160569890466469438939359146238739608469131359061929101695891262029187061159397777688812726429847248723589238028876967791379730582403445083677656461438316862959188702799650931512969511372939138436294765918032300276056265929218567378204574532455806971722660503876957892093342857137394628815845277084823617958463677458959564963049383276090650364554364154040693864327632566131646075189061553240131043374764651723811564691112797437540658953959110248432673669864519587538179562525581491692283397734391517031750425156861722348578112727471017953492219777419080403137806810577105810809717398761643587879507997314596618342509433347304859700619522267042432101971501755861831451476826596034267407548521512109430520257769961868703458148121367055125164635702807153770585977808867657421741763695493222883330641469032706017077678800157847055804506100510872090371400147623954633624096425009022096911160342933100480655816924312244797248980025862714590543746669906530911972236676443223255260552296505392823500604905248936170290062228778389374946896252067807941200251199888343487577237596522138035213257663981578702463772381747537120327889625442336820983645611348536023905779692372370809751948693210202963184334045285003313391607659392335146034597939986963302494335364802497659384580745973121208739189806977847711816376389658838529968620814369153020389028081131831058205784027402113397208363931696818126910430905018632067205341740077078830661681457857997042732125278514173916020306687149224332025171330323898016776177065345795952807849275465084849852742340333984321571350142950757223672023863247873395817157711425710674102792434439915631790632177121958151009125598683503325122794767427012590946268989588689176551749737348369598187397585707483076280137185655676603370355507815380086451000883573010092372723354407024316534614973836142143665360324181744915703416243532721303608767737737614048162041516543763675242475407531460249180599685662221424490266184814706349977477851324683469013908276745618364259364982435158987454090831966711402293606487222407517347858055074346880591170796831568385036165353303487602796592200799909033251552472873647433628531582170406248622062672834757331744599863869892652241438471978827337947165505931155773072612182134679516634368881603771395782091516791021927556365782621659864036795224316115643680171017163165178589701451145507961318627221515025164342162295603024686500598776956580852299221826781381822282622627011081566293819789261270082907931320309835772639449871033832970588594551010457831612964086296912980037979547898570787167008085357903171590781117435499512369234311605498087011989945375248063080727454223497859303974913881008667380707328563445325415057615235497329248199783374253665739552871405245708375112099289886984087626063736040665438568100607481880724551840386939923096179591058957837630723269780225868271972656827576311507428863558337997537105060460811121158367295496784679436124073456940867920026659536635074700597934551442208218012419645380114843663435595654304874431040656173900629594015610564279596309656854598204833474831606066082365475420088377179059351020405947534312453274848670373820997625794658953436597764429682792079017674342383279182599763023550700148039457565221413976050569019608091928533859937656206248098730470040025843094853258432267971741922952080196579739507177723324930662054410345748551952258788122017820598603995046367694137885574850312918991995020440466611493214220171582592855400015817346041996019946580420567454289118548015312493405463594121059579153336466832076150704144246991880009671404060697411786450370497121475700508859704541638874468373878297824716309252678879801446661688642286756273795844493578824018378061678831246214551160411460022514423674872279862074739251359931942893458786915648721002755866797820104560132285455416422187319665399652561573494271614071192483569255080037119780097973540876937696686769177386561146911707414188663767453509447558047881072068519207647702252018575793230869939217188870695919133341644063030510734230644724338423054327429643683644622140181894921667147097355643779575795061687092019461137898736055774065779572289300196466503188954531163206271653380314098149697279403478847419680803818797432072750471866318465224757133854432517718132053960368416837473727067072129648311591281470540157705751455090633461226746704737062989003092061459270481780856386301397240687021523892091190575039560839952332055242770535475884637078952464927606377978607829483235813762035377164626522103303186730743554756500369157999901203672250549304025835914983187299565683545350724076385566684577640386658309201446916183438579081015554521295015879879621032256624031655697403398934403739546441498323396676389604149789122268080102662041773791216492141018026226116623910003440926288718088887678817179017725011802093460206348786613327517813660399422939341276286575765310790245641568252663072095438654620516983967359960889690802576020546448601775153287263455130630133172648784694710285060290589774801087775831400036441611335582647360822021539378588963040708059790759515296499104879653861135760962488697505913605222983697296968315918740836094313997955175301127621662375024525749763885221516790011984533353431057885400998346874520754558601300197288632355030768738774927190754646920847020014576962869232744898988782620226673205238259216441599770797139242482677543936905191904860456210123442882294984738880222970645980186441849005429515282980022116452380337126449932473662982533612907188428297981844959597945903607352605023192433565449331185011070337624006929222961837406764132729621396056662169259221292734067608583615952521351902601323993831211514667074690770988211049702869463025063627504139314332869687115477010376911765204657892664741500155181486049544030567421396359228643012892630527410502899260928632878546828203776692730377715868534087358821481307251139636380977556430942622348414699286767901570255836191400922096136372335859813188966295849569458785428396019048997090340480674186523382423450007368728258219068413806731387753777262810676712269668594301032517462975792947366501493269919839926489338200355373111048192465442320317685539866652176375246787926822629381320913608108708303757708491963333411729536876839521536304927636013858704492708005482786333876763653076703793734984502915677397842405460771004200539483076833656465922882000890462959907396603948375359387170946092289473498384313371689094033059357791207980212855742131577667043367611067251462929559070209157171886203248182945113915064506311630211097303460863100555819727549875055129231251242045283646138896645724468766170113330004723877138793395357952780346188195321804096471426765357753664714535096219991932180068335383109492914238878545815843766599418196505976663329278508007025541900645088588873037536352451025908389545733680283063018413346878921678505196053715498270347217310604122385198484242886458319472661223488188292830420236037311107358942365547986846701621100297757648967763055294178245382974304659285111532127992155339287703497250820715882557893080725369051608907651588361158999393617564152214057015794774836028456842204180748788284662638811907414236926833839559199616310859810581947401440634253053396903871621609847599222643022538592670963187418298476829579638667717058800760722325627920819943782368198388689105678608037552472852775252923639833432020768989156282300140251223377173865488301171330501661204662556333390479854896724283844787036063571200325290832989321516506953668783524442875269104179217669617149482678871373778650205297615197687087416231161782138150558548436642812229046361030819392811033448338795342742345509106499287962973405881668485311523935887136299922772847069163209451507303021185300987904959710260186228217343527770266012905082061326202480969902584596868002413889602774799524934225114829698294892273006419079361155334967060626844685646682913008587755438313418818682463650104043584897852113689319347587518759738099420925204389660336257735652397500908554038936417825015109019333126009461487252594044840057730487025501086366208341619004213377248855448076321205664862119098176947766649744884988533909186172109482522499790396493621147402458782446876626722105039481841802280115849602631231201772060883627606382434172113653370218146271265556516195187839750409090141862160763174303825489033340532652538026726692608773898376483245372017101964355071345486952767949289910268790776111968464891557280641046290317523367871589228059035231840982631217188725888192389390396601890048826584857292422382787612200311011748977804633314173089983469679373739857763788101920401907038892320741240739231850731571791508701161489343725885628224567866400680832583583707793130487817915946235021338174161836018665797926442090910866682206681470988333475261282624010765544188774623568735391298008848396689231474802629177317390973240852080734773179903224217576238497128379286530664208576413053238950535911584294535711723540126011220507195179323253398829106443429898283976007158902631273778870273148220488928454892470240624087713666109486090965528842799629293737044338052415288673353399163464126102815394507316199711946698949566185461517840759458879817386164977394482678301690177965487878412928786967397263817177762548047053343165183333176329914175011307088209155003576728994990173432063489524598143316728434053151123675035296166951868321097955736693279571219981216365295375722249982735797975204386521024835280492678334317883886491268907831513533635087373799081522911651982473710515073183590842703168018909806702590801429747671227521264472629064197900488512218079177515441047475506796998618303002752585773400092429824520226423054437029583141057797275705746445174399413663518365634955559723302862887356829285675985668089856800761495485947937824882285131554784937180114388091466848087111084785501631388150152815621496387356816774504536170906503274865534287927620100815398292477552098005348955791875129112448077748341216659213554235299191613054308114934151034650408678118858193556354912157316115893375913786940031189299191075284406874828137787086186900334780631856382754753385630900043530205468965885856891582352129089518538706676902184031879376130489041396100067419391080567102965829854029494470807622996739175869620187074039723174886774419854933725890677451270716277662160823447299561349026836136714128159142323128456314135880314539049102287333302234962452961687184160720380522681330813964223861340546091579642889259603079433463092719196260720195269051762621392516065384588947903560348327411344704964363287322952190605829191295743360765640223855174285200385232185188478381625823497995443156748057344605520937267928968668816082016008983197671424876638359245126994677599817452403716886633288398993979405020580652726382955626792517693766100663159978753586699291960944919811451376752733628268041649319630059895898192308476713095381229937191363913432224940259799449899223581467729503034122931756750317319381412480810060434548398808813661865586138879741957101744160661120607418937859175988113631488609107164455839663763626726817376685448908620644265498797424853460624747503906225273761232090993283778573229964796304864133167026737339672623589674283964636228789180641660142422201898509221776881572681990004168308291263526653253009900021985771660756345326783353925715587957841571910947462502857991656649559606601394181142854275212463532357946528894721693637171266902688691239849282186039685609610681211611755364191062764390330966691842463678079286193871608928780743370585223758334345486289623523412564828046574362916808836997115788317869983466033519514503000711972728043515676286908284661143747552833758776304470291947624342050037392301240958170113164051822955774703109088539695865272044878778551151893654886565357719999988543966058993302794969667674784000050915583003317407407947918328228755443346645318052816368850177446739528424134481681817935970814016362361168131947167683908421260336333330916668425702360140038080548501305825547115806277161681177096480285955035225698975638967905065294340784684310272144110986049568673661041104390603298488477674273588669602109147059032050317056926798406718316806812130664375593777370485843068181208100644178877725853759476350659086233166879583075080843135492626901438378386320158974602535096553443644933145452204763026976178513505996362242497068797662850797141715635901334061165012725808678048316335874076690776088689074384776755017303256754310448242151856131155703974886590384802427301574529918991501405926510105353137727552791339252319526643009396019710794067320814321835793168954247991738795996039812295067448157505876818549402775480772982764179485612565897971521167945494748489397731113441858049589329665538526061710619588513264483534831941945498298440731459860593422542814065445164485375941118534046934141254096028507470605548607837701667378006238361975767950889401841606741046922625671120622709254840186982573402791710211849133837700404620811483197429653122257322916570409876908150927692201557047621779198464341414263446277109531877888383383245924911646852419707616280719546606074150071961486368871608313642439771795362879621333033124043238056636958850907119779124807170809874722469512223856658514413666945953016872020427764945929470777425891853205442124266946724785690644794511554533610565301757286467714104345199626592793943113474444240306064598364289094484803851574870382524163688465876303842279763232467267355997975728838212660198301546102651220807002189954589073823099654198061884968060963604895757737231463011724667565440803872063878469689782688870719810731281836583812133620042646807141913374479548718345786256152215880222798764491748046562485980064707175942818275501947963211937386996659210521101434420886361488571616165403788550479148475882373607679002562050191338567284076770150784207351038696276167171455402768086529127761799071696987040110494704197191605967612284334898661899519626898837593747116579198375632748340917375430922525510760523621045967321465809572612549929298061072930570937942512670017461199944660423790186911656308956717226629421690390942699851627473652148162571816800551000677684542408386122778538328459114584190592888523944620662979612605138470003244847368170272337511060869909073086245202957131631174494588150344511024486014996751234718126887911464336803661721194290446846287327696328624506931334816741367280379598130428618341500935935468063729391858972434671383964304945975906329429615058392875995626007309827345639678125301520155212232659756084855790678882502599438698223588790918789239373749141325654521249924649698285001546697819529757060508834774027937561416722109531235814110307327564958835122326284728288238353523915951539309051909148008916476579737294681124961652033480291948713794302550126980067439779099441797309630823458597517815457985497216002369434403622041665301324989940737687494798798923349347791764669217866660503389124721648204084389029933443808403200486536257249318042188831292741328682482674926015517447183119450869606199827273561521039223069477677231624917231533705072914584441084803240676283750919665897195889287405471276843798949291473899837475215132141845806889917866883992864405223819691020398517579744649471334419865216528810883939995510655208752273724273858091819602582942239218876024103604398797243315025754718982884184183916385010713221778118409518741084428567592934929965846037583711556253351113919470783575146675054615427324529973950421931276972786896913695075526877760384078474302936005667626931361749428895684040929748969437617316037616966137118104729020040863342353904452697615650135046531360512054743822595141580217612038395094468464361462712043277541209261894943124214050423062138296632873776067703984963115339724972029619224947437022412535511238640147700015800148262185507612330160167151135063426967316426157718449285624944031057178247268907197770060003612527071821594499230710408843375198778565931159119057628259585233830939076758592021988435910926338636100806631473012428654098965894794557123845871081129262514603812705635862042089736552658068627344949342690034907548633302086868201283489820110122041091650790373112108085702700510663493418295868590152941501995928600165361088173485404851780638273884938781022737769114129928360976230705715376841087365228911782714874027948780219785736823239631729312863842818797769277145205437659458922224156769917032654272199109118407907499568582251524810375543119361530517853252231953623053996012752037131205441340902551540563478675637003991955687899272722721598903177335390354423104333599527251617150887015457139234430570427009769348573773116471125612204421663787490988199392775440509174036049550560733573789335086083721972655039087890430563324433300126876125429693604382408250768987059159629816125810765874762309903557430684386546363994995346052719450118412998060649731766024610835862032428163405081768884008154327749823878573755781506920652113088210623924122131408620431857314488357953409174006275523300272182221741795423814035748612796166275663426554102285485979779744007257639617648565303016729062292499363908294757673179705501149333708030909831396519957379776104149085602986174574022364525029067200418966489585155240469171802187281240261653486199936329980923774858799024994602155319148889759497016543960763687829028602140941599046750459438566929585366374294667610992420592969438186898496565753309881925923439836893900875444694073703444844729392087159172211970133589706981277230508056554833180647187773100924848612339082070665815170362773491450496912279801724205455041193518634942052345610924778741651016319371700227988067716870609457442757006938073458893864165233801281141986917397032644069442994928822672728314952153312389981864399617828319092389181443709777719939559038720118516589037702652961344701520541833729873586214398099120485039078545209401248621263275247534455963431314449754665250250498090231950820323490084537941453531952871528517982206921222640258827650956270281255157179075689850645315153136879966531693412024984427184601867273174346960757082790938976265015116177974272846042591959424137346324277863247602967425719817039359611582499826703461437898119850745720254619863168247894170284926871444470738155268731262478529683484676176454526840246613648552718871855963481551138048347430619247189758379454620272213148260496460206939010664908861789696533674991221889634898407524704221539686730292924029966173504847636550675242241551547296579284891945942622860887720142524254114328260161492167445215377920398762733222445241940720982723051936082535446299766616942273024637246671434370978920812545300981434102350803514431861600010282378153636845851595667532513923462001869291592621213251505640548561499243531159761699462536509058094402788522302996895464107223142314993407137369288177108135517142969085058933775418958646947364043284467882968511696286743018241448528638459025794545577982255563860457041426906967382172195052999889793522386016457116636921603680643724317255466807632358356327957874477755805721104402603056777308211742437584856046915180063902743827717058235057737876838169137658259059317921812198746300720748488216515502821948075957166698550990476480372336004682870767845655717406308789303051378739224277765403560987316111298705617819147041591915219641345615993529352461297780936174897263677957875255541325106879317596782743940721932291517232173733339013428889080352347055600331961372844827376752367690049125316669179650805059501131720331694330970780426071987098594233057441902824640965630661962389294326299162291016463912034572856014113034198953158699861171727288482067566589602317929136226133716933710190855384801197003694332192196622503411859035769268350876281746868501922007454216958266823787894153467370570463413057301761846811721351589623851730923309649566215853171587927873069996879029415550112208293039910419982418031399404187883535394537156422162654242319545177597239924123053370810129022942341085563589619848283135187597829992587302503145669663716199998599379340529085034984770107539640992106889502806730117849058050763933986705062474059709806019342935335917002518887724853847205631010063312805344588249422648707781820182610766083657216374043645426702247773571469814082747829313354911032360720101931006319907123031552619874858264599195708181900301774536921411357122808768996300121837239757364972231830800268004544739116644053625744249465171238695582156726540862586537594490049016863077762672686107774289318710318413326563616973943730149483414760721610519731312905429943969164832441851498523632923361459915428170859086963150851402411857411015506811441402188977605371122794622822784620386142791278986416312574989698648515385667057147190687812965684615082271584090582142897014645304811978689994444746082217063878988540539832032661201519180987276915540817192259738876552054931201487061959213255000892596721388993753702422642387596066293664659630745530419399747458526267970163899259063159883002730843613959682354609201363957104343775248531364513199865054930520719878606234483079560373507215349430015368224021350583948564590254980250099152046890459607329220912896247393125222330297543926114621389105778274139602481846749691124589979968711918584896276516695017992485493921972241066256537217230896801165017624897521739830102301827603032272467836774748436805573235635281810500487117896469475367638497652300695096519008309316819500657440856145398619419228093064806445604315280139689551133880855346378728777736782957101580006769733456179017504686997975480324195081116064414009861303298299303704738750446612727175654053897603535731242865116996450250443647312053859484959512669421102692783789059198957829083915405871045278492016902769290281235718531219838986508205418221374206246873989516280233319796601800994060914478960654686014167286891358305417641439399367630652199513234181111434071628945801786294217451190599223734791090341739518182123548133329736267514882313055110268683062823997375783431742916786900575842520658884577972610416924242870453889911268242542529785615821343141525817536561072272523290168498175940057624538480874794307483286785367047423222903823615607123408908250812094783182024327479144872836852718329519636265402815123148568676165809976450073622304751613403728383917179499849456219929798176975648622700949523568775750835561528285595292408640687349405754751183903660538023213031555110897953850059538333081804634352467695077466675548775506766164063256326901677558459462935548354452868042528055719816944971345990174438802717032210296045456702793377757887014920697051564438405797421021141439541790158854948513516145363410099291033618644590341252177396554194320412230785785661757891872976500496979320423132762167904255096208960121957429063941911127555031523561876605495901170797442976589251497381136941433792522550948652966314139146664544556936220182690202274607892525276063734284228597038722661876192655210291894288765777330247725493765474535927390634360307052709609968034800460871002092536472552479905227149801756104353125198043229682475194279825865916229456659618115880909480320222281377336587064922400765850511046819024433000092970378177240113463898827624724127387147685635444145643371002758184137593967960684922824134813564910927454746303108992222541111917913602791559821510050338544154367578255734309345302932303412129373265654201135566810676760109436938418784071918195089359701189832384746411149954702532600279067712972435756947288584296732630662198101997718471857436807956099378250320659553195939704429204074565349984981670266284603380099725794514897924559341556158784746709547180581543516264624112479109749526401271087244172928218995691622209987344016777885238294807954109717520353766274518140095335603214755336695725746430148517549424972619529464511824377433536306984490920644892691731384595471317357293200311717211854808022366630835208695454440459631742348528513327339599521656292576492691318374448822490060803471964441362999451390497670253743256534632497546054145083732440204111610235498252504152734641109124673091455982966905226490945770249697853593687879372392048287791604328506872279344803869205981144426219264874109565761671180486393242016303433445317263988562357252105101108042140719069493765102419473879509257638557570515838184778484212792377848050945543673602124878519272427225789152828332365813246950002617676542344286531622694708628029741984082110867236573504317062094507989553262236269004308059738130433874502005304297442708857716906166394333812038012009157989227993451925523823069356950033185606125884075174653679346240099051726967518299360778091579116982848109035010264483833517298720575910784346373131865148485491084349402715051814178472946993585886834162530843260926285075501913366313884065390656772993881743864680557063669778445919436475816849633536621048373773370762585921089234061779696683662427696949196366503548975241559072206051439908028434544901275436799478450114976112780189641854903703943340844243761492642477951991135918093547918498561034016059783365818293264724401319621550603109774946395831638559657617502463188263858869826733152148037526425094407399247388682046223808745412921709648126055835152732963978873438146104807500846471843843799485439873829624984768293563490975176052786953780969415001784159865614202420763408914324374337178721346588212878465252595679784757275838063023416585797915068431309029271934623825072171977057949379023982235773075412467974477462941167948001318097820452254377093155564961816824038919355626051239936025286030156032554663486093745206201722701684413218427121123816213889907577166551800428371173335239956682517182322130056470098848071066576891921409353948027486204153729748551573830677185159995277289527394576815330666900227065211315056130063659760218285085904782564703485056701455617303785906718440718730485141258916903831051322295486785671371626832128127867321639378980827378675716956709617830215445322869022305130729051493008601269924829623651036119890603101880744776225891063161929859596588447318075369590468400022132989688787764492864667941864169997528390172820253074508202361169670763611603557325764575632239984959032940294824643148865974460671063737201613191458406930732283750491600956313137768253673940715315136629378703241897959856241519982518824243650260788559910546082203897709871664614679111013837970374824838205903251485248599843963404820822348517354475872060196057495358188707828816477860401825877397916539832982806629384542189232938013024536974755348094908873066608344459625929849553916890417129498250101631694991503856964583989787444810050128793402573175256431278449170280948088720462145655183316464299823815479160358394339279439572242906235722577150973112312950623788266357824904317592178455026477335252520856896214721887663222124678236968413877064810058704314817359994022338438309326212660519209754448457928530878216120721966095414556657042739352681308461618324046462260240682484587853831013253708349231182012613700232282577829655848855636291738677684437578922582926541637253256454456896483865091781684025371945195632671533118080871539368549793798833139187819939096275662922549204102242051103033509323547690249343708823598287287680617544433083466374657866335950561562389427786286290864932513380429607043616868551452042695963922852454690489289936862321151094544614143447176174503728462906808122091954788939219882651846240093301759306360516264389187705761833466512488577146076819446330136633568939808874050070673406187686458240219175131774679313489543225686145428392883637282474596701478348743483741355525704709771078396669421087638055675702624527986552011158199367128560203487403495067700051343566629883601113386825088327424235722553977374209831484009954829680816227607285978763500550143805089964280963316435029837781681038074171258368230862335746114831233271547004788466277863507218460252925607611807969788455047633114952154491120794478444414645390178071136482932619440787638276516097174143683460263649709014001790223785420697513542601711652939686405058311243912673021962111736655432024439498101664904228404179623571489926431088006541912259275024005586354265426752369322596025068155379845256948184051530876624063345094503075006117255398784380757807437364951541717233489409255707057994186102318752254253530406087007619322207442815187367858382674298253325207082703221994053553448385387062610729388590881016431229704341060082600875366352109111925037709370426825556041347741099653081533710848692474819992201200486145569523633636781473275615513677002321397755916758378959292542419723860141010343311952168024632546164078686170950878821782659446088868850394701176424752369811335991949562153711331906009410785842918832086061887546378662494009539035753373003954171703735145075801597735135257264067872829234918562511577638546811092183543182828958365786713839532954047548204428985275284682452955333922271625271052405486896803719649590874291886320791417018545519588112780520572004524545732321481081590098865248241810858496225770323788480355698013292409320435186595112099011105018744695068871682621319772515711802106373408004695078640675547104634543515032949704108226926902215483453659608761488418682472264372472147160045626941490395794853853915924112751442516320249848947295691791984160527718784799930131540746526037877603901782112671975050502263091816450142869032208680861146310567530387341451961955428430430309988543073438320307415704291845017812168106968564470948167357819890521114855669825171603621349837616044794614685511960852466868481194809504899008745976459330252284444993261812310446922739720486543564680650062532189420205634634561531372467799025358165936298115846609359229411348059906258392236009390690109260114261287583337341018364741760050655341169601597237572953202689294808280340576504974529161513930690581764478824105954056540628831817501682717559955160563286742819770501599794256943969407229952473250067935689564291547844862941655982349091373008788707146211223350383084494944029422550101588680191035906443726874067735313064692071952705312039545514822193320653776678523652664468694285445683439762987673986759525091638092652373576993552196910775415158987982952660412276893006350729746877286821768360195043065450483821000686547609681360576385696330488007726791697389547693937155642540506586567584254512582559395220631401532378332657977518919438215670352339553696386811388280287581021014804977479598091437160798365332489536257550897777362123761749615672149227760457843360468265408828000536563750290461941698972886648311718270116324836139239520123675821290820483402220732931292523355356984291960831825754243541133216961721849347260019432605490299871430761169652875394667984399064881562114857875417103343397856224675579134938288348095078559108058436528504180571736264666604201131814795804196697516809951830573302483403804817669370549106808996850269173707418454233684244626636462159164292324997397180410606107836476655870747888847022828702266447355095535154174626395458237226735965970283190048461138425416746718299410029492946190508319476013288836527165503355956122235126689124752446500784508369143209641543082430337653290488835684086682798765536540512049028835666227586004409429668518342989018019234594526814920243102141986491391462781274725218404551130785296548766214583961996864107748205264142925897558249866736141276865836587475362184609507519965581501081175676198994811786265500135606140022647596145231470464611477429079957671392202750109881300681572296150825988535005283255190377258100800639962674175869189156334069832644556243036998802995177771721750562809140736452506044043719216774478835628168029908689573288475346705009485942482705764342282134011076034428782315141856906878432455073700582010583559660381299080308050753911020806321522599730978778443083919409119783495335612645882432845033884884965410333478277783456593275382865386406044861436089920738935941194059047734018258658089652772537662105044098839432705266397737287557259067029798588222843129016722010706642583789806571901698618298854214067406072724232001945760518438502251128541339003206959807451304981153676656538569720171477158714398721209230744898173458669762775151136292123690068079281654534029872888848360277879434093161106570586016682633481367062159536438710089190229775245549052537763329143012855377549561984708960893582361494536635124632704101271921899276329511961661568571257805678087673970964357295822529726241711050175187480870864068300110324306548260494129468583916630180332826160338810846943988585563165723232338561676463276233077552458446124190948186586854173843546672446536518503269278894556933753484030573857273426849269929899517459568451390496017176497493871191392434323432463642576887341296951856929295638811885657531076643446922276350506294819115731777845051522143031090859039509249530617635786633398528389325205534011996512207640208199111230931036475735312257822880458184066575363834787725722250774006791068505518056084717743552837558714848651522317947624680138499963566026963415982673382868013575787905964464194527937139197310595703757145622716253328843283037735940323757272397002274510257684218352060669204488388747132058720455240556842676546913272899784806132244176149963058886224076017388537726128130267159254635188453005189422274348230670620733643818387620222745920379491970655560503848159601086595422812584869085778484250968389220455884175571776970170366341943788229965813738018699286689970753228386353175727469928252832615314585316285434462096686059822938496322598229504179043520961516745130448155830637535060428488864957096959395100285466760653899834464707335294030777085061226413613287375449380230368605577923796717853860432064137204164917497370181099628151849417755820008981136689891143586974398567078046721090667605857175503230767907257587147233368094304152670968903841355418261119352207435453953145235598090284154909766818612584233030230548043523226953566175803477188210917011648218128161739108000657169647317287794774291506808028375452073732699037697418870990664092610363283590768923091410250683891741121296932061849742852798895133328471772018955030449287556026820659834385125223842536959866839454878061389517552342799421174509246653412917169373893045593751444541546723687780425479170198648744085308115254981033888317608297080434229975110100649881156695880582591034000737736633266465433631248506123925324082315380363881515048934764516875143398738746664973472603368846409418761395007615201689162055380790956802355119191413930491157628248386438592435077871469663495040929860803505947380493417528144064862290067388477678204309189263558775616515700961080830955735767413596400642299267415454716139647893643026716950168910347017787938595773890569640901763799118581571939409836496014304363918694731881938727657321115538103845919508894516880591624171776838139302503789931974511540953887162634510341536764175668294474156885504922162280888345056533846177774864844582052896204061425917123136926318503802996018369796881178338219802442905262835911789135160069528609312282992516965627562582328624737550480331599532199182976371749699360805332065762955839102388020402923404481841723065412943517523745484656403710733300374062070404467311795562820566111442141353829969821186469252558227392369302393036716505321267209294910748604101216306516899982864102443483010301815481985381102399102596695697072730302906309943019491871036898707959706864858297756528148254975239860375681640011705851434391495267353081896683081095154573774410509305466874619041701123407019136003132238654663671672345773050463947266949358737243082114374377676970021955030119320640355993576769610357889838278366700343888511177028614164746890524964028147724572304342197586539123315228791774389814700652494518223576420302005565370752380326887775897538021394147143566031371883286344519434077044354437222660488284261841229912952956510867641697890186154329662094305217624302919049177908369944054796726488608831133485305034477875837457765739995321610793272143503993281124945194579133975685580650832249692361751932754962646112032559875047193282131696377807480997836817913020489589217763183953772944876778374479802567388733202103816181213100257174786973884551360848743297924762104353422036356669447330955648368117078523756928151147156034820892119221727747528971086331680183796152001448491430517129417160357086282554961703976585508074413022413780570361279239787727314710533780237322581069590276853716196864639252168722359659042268166393209057631647308314298566259766042375638031350615979337518755753721740761279620244890007145011291289679651185442113961902592133370520989755063018732202706805962970653029920975363212828803796678747721501681346305638105654597515351406545791628890289546267377651010002509928128105425307914005332961933143573628560845023840794841600191843130811912678539194966393573140459847822139695224166622492904482060360786413454760329746335191882402202030540555576361838299281957616332404961720493366720148926082491569479874989170493876758235805793025349793378483896910229232634953484486784251957012874578983296679677139464206163771331813642589560270029371662488600966458202180498358248795452889113795707157373127005904227935705557027597628347731912337087393522256815188719798868244212787797040099191554842990581545129912775407803972516303355818445397252508254337933730321323470768936596144655797695902667969470852887427578509756948213211343029658938760130085047968037177055982914138939779245244451313741818882945769165095527352017906091271902963533843278590708545369388417677154075311895214562870930964630739911016505947981863321009176550059060048720153367286006955229188510425919470081836587326518985862224744555230213247721401635141640080228874362405174052014354882586767297314595981334041653228646594348339213681123028079295770266454749931168959655720270112539376356505804302460251041604216852641447819780270837043627232881253269698677676809204903074767791479380478175113370184062017069943283883810441673649083580547771055242164273389529055704707218625544296292426202988157139707643574377503755183499572882818922175001450007946922805185175180092703679175354124305303085476230289399098924036681401891662831983382800262349983605796169578901139395487343580342004798033899913350477576775980614151785852718862369300725675432923069919634120875189377474459514029076190361006381052331558301850742488482649764815134805776944699136642152089804813463800132268840157676359723370295280465288993480411289210190242833452830855655698778257233832697908504121572639748443879896714549737887773850972853515794033784001544543378692707340928307132557891033380482045519184141288281496814136175479452341964932084142128787283149771362950690572802294870159790846154324181738608469069106842219264520075091697487920905933303360220690453186553009147020470049856881888816979463072182151989341306685066530153128028956923099701010971255666209572333602485676671458615428181418665164730304932490227882526278124948928808740338975455839463034625809713024030382299180112619266408687445941167133538114056076078728844416102445960787387296764989210319829920717737973280862313465584494747785953976831831939414431209813859954986623596761943004469523148659658105886717487802009798142219056507342276603359392220788798493208949319022668854044475412503155116212844729594356661012146656107537819026022016302972080690423856721652557841746227387887682943885201493573264751248147049261926911383926068243684815740621737810667052121706833497871625349014039122293093717679230583451132005094949784237885239381289542482134428628538476686486460504108530127820949070451639239816214838444717177910026911177404767344228728669487491650887498157977422703806710891828592953347311851825565831255689896593858732913498052880436042515729353504764253451629031722203752795094877209913747088748803736853165932204673518472722312940691638663290640890293835695392774097644490431380666274111157966812556697385957715551757049129957792570324714499421618033038171657489672974747020787026638510942442676498139118175608204500229095269897098754966080872670836677179845124563861177766709448235410563469967353216685724923255677418861564450407624751625866655987388200024415595915382252205045052183549286850002248402715544180115856744497848512115633689367217680920325913139532771363924066397951274203753677939709300449462429562046110993713905319242941808814553275166087804493020698623987282690046382617800931180557229063104960824793304044363499576937353950645729098077059679465879730665525185224218126644055526128837168727224617263617596941875744239774825312846807284396098569111336864762648748207220648286035812275224871813857799948369350545547636640744526335402432131878683310477895455963092401555529572747592654649920834129725859616580711938491543305691308943022980379132788884001940117169368700359502294022126484427122882057190123142046511784397349108581543959185015899559763867319113057139044950421318973228213289764275335541407803336814837657257313839332339302328958269701016673643141166960139807069664986937224997425015396538573740680853575747444576797406862192629984251653949381246338591039445189421714278877345118729306185709222047818362245469169701992089582766778317124205809423551936822355406820496044579665492960599560853322828180585040173494116774300130800824501189660280988276211033843612185770185193277650802267253730226521831838220272225416570990799224610192246775486043733130688587190618660891698104031346789248965580529229746915069759503973913270074051238497536312343325314441357187501424236041003675132003504643820118604119103445169083939650942980171444638707902292185039010340303609823265824037656629702480541943685235262779200362665713664022483648138819530746690635715101828970209066946896930852281353545919073579133445233660256979880153471326271618830481342236313466506785403456606333382776516886842258971021154110348875371639633238456360274156530599404385246633977535264102234041479842025834969850644936768747827592397391797174353933151554959887236226410988511717009083236539790436777377519051311501881544404854919418471231857242113443274836017453501385538424006095202304549834912830823877006617921625976520997080692952779064292626842672979637960125338503637126876759479702668441732400252176829810228881328050191922411249892386791527597327700681244140626940384185478426702884478217832693986350607281495333072156298782520760308805226371967165560965974327510617331984974590653759871996219411279481141820830456515796032325127517898541624968166216579009965206037608220815785615778127456415661577102761159215987793537669364443118555257399340859994783663282074542732042493443693326761296330295214150898701984783888607943170279661577906985982592580442024381240451137650340503154958746049623617932517313431234558582165470285723338496887364426335123729801417534077163606899625164035079667172573437560431032731357569907645978935894735367617168400951520191939210534399812760206846385780200340200381647778813555344680751793419306073345741457553457077456382772560173920273494674903107958534615023997753210409687617296624913806046268803015780505730138867266136532777978464786578454526777502299489631680158268325451893547397509500618303547778432948447677240730415792872871290104179676636139504558665604268845707469490779461305265707880448633277195842579986136456382770534162576787005585967985468925555003254333512935318355905227551853437593186400713071536184185196953887595388492301858873837862903402866867564477597937101768672842726443367436719376702552689357559503818302913509116602298902110226318117196389699999575431620718115045626612307163699309490931627306125856203186643503537553253973772276374140225485291615727463096038563515812216425021290232914801433145934024355526107494322036968479091375286604910776731905461144179902729750171310379917978322805865839179016649970604782001301901047846558666163369266108415266727881395547161619562722062502750907488561213061690418937953400406673429304905252630598828077096782253732492627942426617543226675127114049356198309981311929003872692765238436996530602490975360809011357339559176025211125196800123879864796026477615014157354439996015595198506819646982021702205074882647498109426237124937961034029132190117122082474387265370976095094898818565294103831275341872202396470580774538357710347759701319479614695045383979568276475326987524985705017485769919300785351181604388820823711932602426135499142422773110043484365519241599714504463393962944488799997761890302227417545997957449503585069321294414542819259353593345501000292450173222772898193441456172943808513792185194392142048211255271052553577944354408927005337423671960467892479772994857518619639571113352262587850787589485828841738159481328727050529558133774913801029368715516988808586799161220372576021481127749768175026090214354816822142530028104560637670131740753706698205199126377364827909214615494393163911886648749015078056501746831211752942059151706222183216780623843163011003975624005900558606553782564676259924200236010908813354189167001818670096125181570472099885409466844813772499107694560111622233668424356758216074785776286837514325115254937478339993030330336687515862366325528253007049516810970408075180277903042739282481540106059066051124672579602583907977298300114501966213024535928010804337647915137841942435847391345510431831217134696150203122991423105577156387109090984024221388390461828410673738168692397722812764683664518484227269969070194302299081821433085714441655436049819888682903100990962456359051181484961349078682593617859215351350397561265900621032065625115365672599139311558317246542358706117975059201920901683310422274348970639016777313094340356572884883052519699124644941685312291530974317436080026235192161445367802267065797674044290979638455206016086612898237885623989439939970999485714062421123954815109517424662700605719486089276652779345885547850356267466404854110053745252986005960728292333687841937732840404970335442320348057085878110126204644209647772884183744608889643340668277360545370364034017998340663989167821410501938879213465604022809772673309338374035403432931245764711803380484051217481569506507757049108107688931832648921570234888803051968251667556103046733805674504301345969337328432234258170036977747316301695738208021451454572073678913367554502039830744891417417134028627599605760630093634493939511881749719328709944192085340246424348775796885391414791067498169092733630275518967287143467795027253122771990567888245533289320912363658646968210704418009901669430951970060105173887337207493179419210719276900077458690965234148589271996115736210485879303164054780559406793812740798409660131392251317508456587982505271652286987985375472378732664076221082587157483168855168796296593523247900841287375718809229522802260121794498235668983408914580791813188623648719040064179075549364663674720842100519217380513351273954909118078306658420917735211179076632365490859927421264135086703854247847004245589380398992810178197217602799703729562418355275827884892569621914913495822419713739486328832830889089218891343402040421212219180423591117311867744408009662841713145276958137813636988514725501894883177268295468070920098043890462303827053790576960171665123408155280630160083133602099822484995846238695069838685581788205237793745993556694973813111016611649323970171021368839735279811457417292354214983234374863840459988630844287084251360462954103049632899423608660006746221335918044977471351244067903224894896311065829613188955550305828323940666023621607659582863249934674635089676389418045507673026457204794780665022649409004374874856363762889645083886435785144925911972369400244658256092678514137305004059487221781182482288770094907002205815821296370353251307551608435383938123770737696335746806783708829943200062084952192954637078361624584642620639172440462667542198358920601662090547786707786280216765078484223671534418081575599236930144303822928384871941480470697690613001011245315538825946661614505671102933096237989830138994420121015266031359158979143459890065893011538491753067181196461956031492583992449686302540812244294527955680856266097183182091673418220612023936467319642486185114046402390410057117893432252070195418181450272219828348958132458725359742030921806255700109546576211321990069769507266092860499186138320523044107833293570465808794290445907799204195003512377900942872825394928860879287700535089077260304693948173827838375153433140392111028796802924327320503397100239019517225527926181198618968950593008181412414601517972923691522764309971304570534972566483939886547084064988070563926985409327376469737339654017766403593228319915830736824453702040162138528293847569066754413344225747729111551993884505365286458793748857856855637174942888092140222185963854483716917723600183859635069586714331799151115043955668228437509210752964867865058557120243101439310692380814495787144645006746684422732396455874312391959978649009188921125610687155645285708723864765614048099516822321936648789931716835496739950699071142265788330864055073640563165347790645070469657869727925570817464092640726640916250635210449660728206598945318617363120435846341083569269886541958079102378381746662574275660116497724293628187364199833551913483922163896877475462165751026691246556437795627860294611582037597174941379895595536423499230414885026486507403847501787782917255664344454868104061474112027791287015204854150312147526819467272767981199087045204046635540706548173920343302336810756086547072996980826715616798317794790764022373517333075760764223588109799206581621538024202785208543007292435773166709523661729963777958160582580170296116655548796863108493233111005833721335596123887005988393009076548431460248617214155752012530866896086850140353868590133407617028859013352477766558723710278984679836905564300765705149735826726982393229588978082621035090252661003867081583380344928843267071040086070258513407452314719750309334231246660475543965138699470407912417313602640820686355674049599060804281529475187190132311551277226157597566622521543955997671479595233076379796921640224817340947651239535219294758562227034342287299156965299996275951991478849805474956421700402959063751065317964112705798491051821521420456370756441396650397083290460195546429284144094480603259179937476608869689410717761268345281707525797068398852701108222672096598965574204769768863086405760804767305907388576604744816808626698268267185350279553572056334573247167814763424569206315857180407855780287030110184850747387632250738271852952604570593239683545706269773531258362700874559684417581949786285777027957592531926395425301116445588525981695682872868379811147132982465821992067820168823219419585805022226791793130034178777977851437049419593664175015696058562533274479994017147470838373295671084961791261121186917691067771144063775292475786754821412328413080447648031369413813906240591464183087344071574218223153452080236711028113243180243375897442122953811371987966967725169682547358881724593536688462012440509542094636320837287064550967678538409739131475038498276263216702377040222485781558508765170880104618246178383063296771934186238273527813515609785541185991574060932348846292193218000794498250298007255682174499326433852874968424756946186462060238235014512502367629222196818186037908665608798396319750455413314607597309296905623242981606820431437121074188534088358292652560632412214965621338890620858243274967578779464367023212081509100926752800842099953785095057114965504662901221845235702581970521220775406753208764061762983083579118633850467609284899323502432688224679325384521734999825897263709329535943947103667628269376037301751066765262833558420303747307551806388894921192759867876718595086409254678467329830831826565750776089445550730209136663680120413741655781497451036590356930013538690281100869836932531712663973680475818423715539306061693889415590825619437663332324336628622669939680517985995498677761086632384414937426067639036582300740705748831217560022724145971463031566947993478778177450409742215716785829120500813574264434163691141617143708138332795249786708219424970729649810566314806188404617907471435059176434782602420844999995483654016453229452711661057942285277699815476271694466533040314230925158126868240482572761457642632015601293939235512198419984535318183454548011716880936913778413233508496813015497289728739619093854273677127831162199299810665681406750858877030792639559899871176470262167037846333412735887796850947902521035448444624374037262755215985031754734404394474993327042502423906905293981957739247746294341240318391683614497340596149948936870270301387110883674694701224406283806603600806663378737375116856296827411656288461638887647683342348262085583192029409871605239590555437654477094730479596466256192899302796294721003308347492796986123243027575525304702160726724411135788508117993787926014938536006397713102144978484513127749553985794808986172930158378132755153571044408205702812459708732580163306241278199337366679588099337215072472416048858439411098003058516394947079224436282308281243634493543580447395032140456527547118109384734658477582316948395989153719432342867790446971209114401243419704404128397817917748378694691301616762720711779722727552902668500243945361315690354835334638148432913979480950533089358381234655338588663018421480776711204054172468027395681765058147564785325300922685421571781591599964994269685398333076179505793591353031321168799560751033698630304794649930467960254093905627507743650149747460791076384762626253879619625953672568078903078632818599585219979125205439648011241556159019910171381903752985943996885408672010545302675304464535284979673986274787094001503536296602191683611562140520990238667043816110962130536808146255137674546906868669759293934989033386027456340754959155557810489987602136218260063456231715930985919793993093779221036096720633334547751337489753634633010889162739859090809529172032046792240698188998221743712675223794119745954558607987141428041766661664165585997243144271996359867384520164953849824793808738362368564314880845234297060956188676939690150209059375762600514899404255328711183408805952088334917588024836954540668494759229134452751331014356730345529578137424456974970699148670151132019534566513340909360691155718962351749642635232085553972435806642222806289421312839282781974470729571881168084008398677363174000434358458905000909301820789301102973179963885613410159882809168647057148552434250346083112700261451915687592632377667327094113163290179627784191600060801801071635717497096444106826558623033145869147635191630366842914051304198639813353185576606575587596455875125413303525902734650524940660828152190510831386440122957393314743829817062496777938391171965555974650577009044424470238283435398917831291000034667989155637832921234139987159736441572861163482814472443726918701309016926311157329769562247844349138842646533305740387625329407753407800543073200513628159523201470399830781286400909497567580207169045875018347320020778397382453169563251664137132092778234533757567132375741451736883894998992004680392824872937230177620650146345458741872932331479773255681429365299882282934351423044994910460005039925917348000688473295958444494078935407871447118580930174018842402917910100129256682044259174809932936777882734659605032638602092673478262766264924096558877086885319146190841924568557318478756615236877635105240255251444218752080320408676975605534759979408967198111360529283086568238487630556995916916129579045553950487866459303178147998260470727787793120748761059815916057857396525025757891612450438639056721369932511711260422823942128025728241887145417868488446513389849826666157371444956285454133023897547320309437156415733275751232599053194801880228033715119653552791808154673193683849627648535174109976350031181215303330607907495630196667449464020381532288931920209115932842207736981489604474885794334339441187918511894429333414813154242312228452781728531191173794600984225919415430691015105261500034996594542010663576854228568566269715332265083182292785910476388634228096434218916733376032240349386529956720446614301818526724441046406646728157563932363924394961078847946251796473781733370210441478737119951477658227139959537825659001779475404656342716734841867483157683426129031456347350805329019951165034839323865005851459512601107245382903628773370446906740379325876727045388703615707338954763872951712001226086867055469886825176873167430087086132511412355943087865907502743263911795753630145873000584743574513864137668808267245286932734098297636275263492122035096506438601278255315758865167732963805602552357650579964995897876109417820505436973444439977834377616917167837911915007056071028617644559775928706133238680084296414743685569740831272222964342237242628861977832910420822337295555505698339552691192568505802164033932623414745405369043727150926999726790079441615167386006920039845197888730946113616693571889214430046842746079127506344182062667719321113412907539541339114590408329682570305029472841756792702561939437025998134015424485261827421716946211611924046089082225268144985645793205202442676239872483694870753251454578425816919093866116129094832840216333764384898918538252363133634676614547587651634617214927215596302204775991448009072901135523827860960632910118673464482497360233267912801812090296050398443518850619609589051600362981635465909547536252327072770486701071178538589042786735796722939029617602481670520733668746968387120859338343415173088349886675518726036951574167269754683321977289863397348956750828799857470003547397109268228800328865398555430222303381243780389470234107574479569675266512089423429358809094875547597636415049588251188448533360592653188516256821147532015096161179372162935991407232740793967253317848686307780928363569463273962544412821782266333996623240416340021046620147194942851755278466638045786050414959195629391711533221713874418509180018559693932688985788932044537473799788084444574763755507001439660228175146619511535321467854941386661984526710676834323832827016628508579984846735132362035706257357823351942054754124984380317361424742564052065567896242490887576656653339648749959395265887607705090592942734250184799142880638488236318753628083473116248548333962791407344669690777235432523199222166539643377250291671939769645645805746689286217334402565588832037465915964993281554153660190317816456686123260518354844743975946835448273563957368903103328081585827961362156882622613386208297331689601050660712259485138363675822483375081918157740841022944515576223388647201964565447792225939202534201464579361256427466986181714916073594845245731107711562448344854777513815188654188153024642633213433506440554094202779803942327683306276793571417976280690542666510446923362675292479665199536181064479110240887456465199377809821022341693710706539202142933240710111703020657134028500591560302030352418295074689921034439943003307812534324314544424455079404144015994653431018503351414258364973257540124210808877460418576325720482870667411891607778146952731331341800897719135475673131025437876985259501339361947053871789428075476969144365646398368724661289573077168043640180598956211661822424315464934215883884713667588653237242680720400311971217174257144050697446685469043416425174639511791398866937044140987439698738591655329088896116521334861456710613019335141774635770654827200711847077714756223594766372985928515591840106026570504357887455038118269380510932880729155626043460902377915720262585585628599115531599183927982202342338143078814414022183496914838948448705418745946351960486965520813525056888223125274146983208124109600131206994997649269686025118787200000431258106886508032602970670301590979146106617382118380417322497863135515496540279446801177583122828812115620770337531279320213046971438038934468947089728541584424658529802513094083667407020363239454803414273946336714276555033851985809503409643283309345963670461369947011758456310031023370368433161211399645883329843477422307376678194594159721571082469006866674431844398350869015195278024028571963639534789913947332591802892292973356723911489654947899766641066315539780162772866069408755252957042903835946185720493441462885248362760630107125798121562994554705266565534262385173442605653146206241936227535914382272223892970555336877062094907395547158770041223174014614066282064881019689142228340523416405925830660549472287239259128519937079985049880005387895900622364151279671336034485405369560693445495664333152659212546378664530370837735383507191242984425588225610133267893503721084859003573441866072158278659825223555906949233633755063688817655637057296508056222673306413373314423852357885894053879003255418975183535845378153607061404458493062635495910898263151392658089875581269242977279201873234330804362425261083591739513010163412908936983486906076125358107453433952026632265109122976699813053715618779949910942750948179098617746116148858417380504780853072221458696036338136231281340355732657655465325490833800688129564821394229440594776230616943470093615257089660052272801905666025538707378827515816956508699424951688788634368440595770335689490741530509148319902647403174281953369672010164033946753487265754353247262905281304869293625637141803538767006162463742761076279596487147708386792652841038723489488545186340795331023168569506061549216583959480948610322910821716987776658340564981388036526394386947621053865074122356605896595565195556571298729006736165792003499277988738055141664868253801173134801207604614032472268980734937905416913412899528954316801071904106358307997760722781177329762972756999088454785822389200692170391586098313238009951358463383764640506293422415519485081575411026398571854784154462252406057357518967780811563848373137709528673428433552753560874634271642787187492099069612828073532198349144469791212712298905403410242705392656873310235670944928082830619367774700208825996310171266811158303724485611672931229644447800935543560406559712170836435827700667588740511389492231013160322161529182430968442099254447426704390485592721705502776443632552235723404370532755045568961802141906662337216977029132516748305605057292055646790204364714356663190854674181379401258516264163829570426617775284167992571916795573721658622347016457655857562538298378574906276548571497275433040417719970357314513896145853201006354129008143941903293525241174235866901848926061786881899146413730827405393063619307480389756739442021289144666498051922387797804539299386005014019233751892190577926224227823251625692713065304088823614628778816115668724555390400254108033650304478987990842993525046304186741840552705072690975028800354549031163665022848461802945057534354055786819904468989401818409651761908744759584948465431121080746055838364762848788993373526964562396331689032361471499596754243527793039290577785828774567066821446568876517631674719542004657792267170738850528921486644987877163899689279513256901925100718824095021951523986995685471856275605163916338146838560528520769900423805848251170727697542769443674381392579234669810924167686975582134864542442091209860403216150372023531074436758576904994881703462704111937583903415701809331208382719116583629511785304352379689512244530507977042925134465816702049320954907392195493535072529017876222836429039351055273986748906905328501999141476253639562551639868981020075780795924323688150429514690926889192789655579608168848400018465419363052009467042464047823822629322144478193881365727227132637680184826108988003284832728462555303895962661109812991902630461476267168482898108273903577459940774571446541914090233326980079809185247063626833907185181346668156918522136769988590380890032586291335163101387983954573230232732452228889331921795188023576587639968786753200047744653141439104570457621470601541176596480593903059919191845621951763159798408072573443306023112511525913651157444641641998477559382663394625834785143650205683744111907801900145351193147312647470738221146306410486137978608489152327210226464059637759336426397439375671780280805645751565228447821995727598009925440235072068309730845445910009299716586551284592602746859914147624781840725497924908464009122087527133214997492541245809594527399748623079414666349283761049374499998335666733775241761450487200057212761281458520431963740368988667239009026736533685793271366704912307078260652276139404105831082055139348725332654550908982080937152890864103223786281938761531788315405359629479049177350982876984623545340060847441962158946727298469836505205834591399524621074015885967309254761799699931998979514811380811556491961941836432211051624808363813860369657217908647787010422519052769085414101169480338774842616175538622094775685130253970397900529548394836633680258748914654999284597170134151783405203670727319487315657592538969257465116470657664983143509105186963826744033664334735363253362358773041644339121004911755114829963975356048245254853052977194098031824670862997886341065735296377313235053896022861985498721447946005566588702060597503925192621268619017901283876705470278492957779530771207205825819472897038130714999442521866292590482578166150341224753493050318987743793475747183844667924543665494490370130789273414253697328995032259780418675655412086437580614329692666706661344384521260548821052417614233880129357362819326947558055767494575873889697000917227792626402465070375999327882676321333431973752303137829946463308922280676288213968012755195861599065872223721853571187390015674568603697075226759448141327069414166549143783204314956156288490987208942854997310346745412147298299701285638899563299204053275674644938996008670759392608278446371454881832445716840830037033066907479785004229757072857146084262226059255052361886837015890203342445351515087992943744849155345409098495593230085995633731379456210716574607915437199968945274187490964774989483445945763738907151089906237033726406545125847736662990580993497248472558777775906815921820633140633924587028695842405244652700702605491223883773515403233952691615997940064681721931563533493413437280822154497745426294157878079517608588794016035687576269785595966070697181006208652886072109958530031164117200259693274939070735035999286209423958395070081432040375608118745455868540690841368539568780801771664493749901608481424854135338340056264382941932887673636281787379499929783481177914432727806031818324900871448392321873062722503317076797549762064677923257680418568294333241309285527695011478889529299153012812807738655137063377084130528899927174000405287356811065521125759183488882561656353344607883426290097010342270506528668008719054598410181882030276190944267699627961587754249052453008215491048732587330738216040735319525437750159878619660170556914320005725491394928332408107414439515875155850957444233403111599190585761775779353766685331230058040990081283381550490202590786692382935451365487278941034285354295462855566783674563517927843672120121934272804882090229440805112834370705841694075986716342644170634453539772087774898340787588692477782773877485067207361837750911897374217421759575254103328450603073224150415959123668213036403204322423880692384637661882144662149561399182057157805062551638565183561516167585029756382814849438417760274881796003273671681693576037774027094516895568471141570529626485318793970806385566656520339095138299627275110006003344009541540331354216489719278018840849441077134986070601678747055101395979038369441281737905522274133687844147369975086226569484921482971473873810187709653754314626166564033255925485956704325227666678754826671093177529143157652888400214770090327032415341049372680892066118684025085624371467112624186786897917259572457168838537717712040579316572689108758632678545039052077310530928248209715756670968711056139997173064321044563799017327647935060324864535321499541295293464900221434066471885708029188642256281089682868880632477327466265901454251128073684132601477969764371058186776773103207097562868618582481613119600378898801604506430651139778938451665968388544929165177872428228494969585173413772125807142621578784029570028457225450110057714528585595150009591091209655193746649398692826158699965533278017450429682698985090356131056821264827723651279620280549205568247936215174485029724887291786424143212713208918632165105301009651924962684486107301036582264524501108103218152304236602647274659145945633446409304004580802336098751073755230369341073308480009082201104267374352036742517758727331559262175338912337228857239741476060787531281283999778455516953955905220111247779629968595205800816958012418761549906585638972812008612737326530390543425767426722202414286892798646142397527857829761843847272945546852936895050689256617639283239669797229903327634297969030918131438606969704857428258387474526700349937260677258261264652187673247478398340986479404304478866710026858108398101762862256878415136003188587607685954713203752138273352978174461745382690907738042118257929198542889744149921344734221261068302189330437319506203630787431620786546842945307754035647649208078908612622697687648419613756297093052567852684612546715544809460093202745518322149333805909340006633987174596380024741403039566715890407683516876525619798515253201336700513794147707588241373566510381422827684375209574463551829447447073651700399139101681519406127901972466807169746778499139446782395399365221774047982723769165380359937200737300096269369474034052824562310805016969605410592686572758650287335046258715962591353843248731107218923277040158324045736665786014253956707866194569136068197758626403504585724684911374788408062641671262494066002689169589319833068221903717303930108714947545953147050851989536643379946357736652430495921541440350966064225611437602662580606422862365189239333322235650392236080988793876245182455042397351294613823350018458257195444587397813494261660346866815075344346274677260261149264426674815209333625370444578355830653814947753422283403923829820418811476465939176259828738266321939999994939261921073755217810724957963606558692139689949556816059629829883784287922801043166815858797556137502681816005600032590149993362997554995049850884620099458829272893474558103714923516118200509021166529195461772935488552409522489514962489690582979611809840553288301868794721547521959526599178817244249302899635476049238353736651221966331412285970855835906631233754638558865133948264081675720331114021979049127861636174789754287759250481294229757767066105306437584143258645047167933376213505886151458415962355400845838513518723231339871711439358572883851705758630530785313306840409955202133935378275676458738944170329497912839919998959369666737752673635405076797767513052316172053173185292100451316599837081187175407518226874887486830386273644810840424216165975311325019662230173570211135560346418241178849955882529728300514235360350495244002040219945378564793603533520861338158255441856470121338071416249036844857156909321256587889222859035834350500063370631121151709635359267855934616606396255765511555037021621343906832567730331371449218177772663503893593557260310085331334920773557449102679534595011339853006524465118235539976034124771237424081457385013453800827921814367215941749032808640959399803775435272459520218598905163485661955091064992785438937518043583287166802153504589476885424610513618842525827078661554473089886790664955888317989934895960160986166990500652892850471049680902766241565859214363831357405212475892829646292151720600735676846578177460633211064803608275003202492447060675346712822848785417386806470806543826393510813606332878941406038274841672639586441504182868404263597979534178792052741258668638032460857175287924755616296220587330258019211209164939149899333434843431925303044802080052394077257519001876771216485599901059474302998418702270046554425011356474011678486522547940837155462289802690961347069015831748764558625825777279952170750888848803271620021251745813605403418134290461383499780695975149282842420753506292657061846499119177949922136572675129119794549884319988059206654339210289669085437334925815404701699167170321666001429041643593101015600348136322842594008335972960446275235245020392160990119487216639997043221675987214220169999368644399468946717229378968812116200215129488310870441877805557107809920423861923268250986241830161941523973345290487188476805875727282398694632493114773791238714514372265652995111697299819713342832573070247645798237068170731236826777303824075867070267829942795553240068089365665937668254143699489287339027191747258339755475988554015539939033026023551781492754168018441820884336669763853104093078114256421890670295449014541913388211372411943693531550719435986727687307390190158822270290875778207126522665948834601547998688013285168444934891232339158903626030434410417108449997530029548543048601809274582750156609864227554513982386151281086920646905613463300792584138111377541238487115428898621020862175403540738027890631277029996747222387710587633397265248024062116887948086169798030936149006552879809597899478467917600069894399739140743167476613981898714789622628160447571659517256621891642333321818587534014339642071575968378165218913424223029392518308736609150101031948366399218444147197189168018480566690671420355344993523340051376654977474979200654810184061644659279717984990212491495912693236095992825403416468297054147875849280475196300246745370541390323201842340381670519399629635549349425760729887769241607550002058743948589988516128158987272868131850525161993075887770194257471878926305643099306936481514593976619759193389147903878712971149106138870865481503175530372200819638413614580298299906077380369899372223971317030892862053746892467683603063871347409474172532218640125411871631785214998248740353994032426419959010061976497819520851107091975244496566349018951178654011803812542181755762886555266416271194727550035520555537319246470144169298976941838303613630393117379260493982048287995128284784757419766645069671550292566449844854366064417801365713121084815630589676239778959242853067643211730154706403131524553764039876881823848900079825680077932011703294216721788223650889902905382725250764461197868814791797560909640936126227747118855611202182541948711160215147636158616044548402201289777866114155297962381339367071772401142638562586183343063472265812317542964028081380068875946257360348945960576083277992115240345680706308897728085830084774055284340256187707750420521500950908783185325519649571482924791001601011025827682857851942556539890841684088029364571999558845915524281345595966516585888339379402122832644343548099351449896708341818841980601201058711414063984111738767469106491427326478267175863128911718621951696696308709640993372294346632144140329026345361318307756498003241410479687021506818208371718854306573723393580353474226625937793026573949301508803049157638307954231721954185041115493104097150349677774730148910228636417178278437336394802735069145264063382321251991215726597462411155460902520477799985328043985825329060772825533324976440710674026365874452786674388607466950311628573890750899056303438502555068171925861404572807604890053743665515580464162966722029784578539695482659161805092066479983282678096404271310725139076726902289383596595306888548071727543575646482263005797535022478983681917795631633318908292138874683654694222726928053875708370438339883060653060754385468515857723096737606230414145812345235849290953876698428033059599954692971328551264566268976321215987408252227696160678490808675822095088361211967584250825333137342657981526610432083919530649497019589292045380137866304350411509808548013521692429756164973849308689786893913392259777318763055370782892645919552037626138942114996589804202969410085292346642374761084990879287069283846733606978819175908340036935915723770388076258157655783917910014419645032745949966028294188224586505099523687227506578882570284233957518005666882169952873070881547419109521651256728654455617299794650861277837049842871344542310979280824975889500801455930942693985335364743210458595787922318006374872301473976979701041946540398103286478930885259839288466080818477469530695013615189555308587387561921424608436143105761707593368502850524062404749540833578091261049071817154273049744530369050558245891853117716715159788866491477262750813838908588466689929421057769306680203178245160132207058850416071822986337481841401763569319676998224118397548507990212855415620670219837795286670690196156820747026455950319230726597514693703922001895933833690882127464073356146214398394098089506834245422360403312085762539089226786205220640271878021074764071066197775779109498863119416247197653039123889200250339677400602334903925936011251584515812402192509367738314151408714458955928217991673280951950385309813685643789759391250581686123261106966315412061143471757837173338190903240230632156396664235595730379460316399067472829740174257377098906031760144554791635740578130994600266524714141335711346058991724208529270549592324683309528781201675659693116659882106412215705954435590253371138075337002900867797806309813721861824734638737049976820660931504247579130626369858770987499916678467349696501464590740560867804509454484012302410889534750524899648906947288594627614216783022375958896859897742747327779186856319993736877545814943883224230117682221824422811885490183703307355309985724407108946783678801625963996542778727731981961895383821295119020663356249864640143178333676323774855792250471398588360541772586817359629390300003760798501014921166983143041507757495725205814346136799662811675115501917860390591522103550439400985001445762579493275396528668698934522587228272272460030246277029118024472143925546296482163614830217419779404051934171991447989065875123389280095433711826837943152450152388612710310018556074769789892445180258988757241756486711264326384527249134136118335753699932873956207221004956750958010835064947834995627794953685387390258925913696903130006505955768470171366383593071718347162982403203733379661616247966668513398477796915874725907545224456291113402019997171811480059366758157229562715533823704624188882419231688801459802828767121346832770135249918624597832728848232521000708570287674637286557602342608972964984396051308030122699221986756865076687146771547951493951848858136220455386141149706277484194843249118701862702192435999461906316166495401167692285960742249289489759663212230008947832786493105924478119617422630486760453848921196377040571450328646577115403571291468824754188647012543541852775538064483596170989983922323372026801947490017511804764420117069007821631316736787753221024093687090436188594438685183267510970021624118770011572638665734419647388253118357861980163458049876278856284006335043269889017315285328117503590957621798929919111153832998160230769462700070736140153275816848559636563198235954149108241541684491260037105173185593271864441491647693376195955687475092062728758966317905625206785613462427383982551551933182548898721833993544316033654197134369533413476274364993511442802987577305398199427093950477960243427776694404342663193898537978623963378506969710550750381972062663896109937778717391375282174235407483272642726576043399906965048675045183694840974980058749178847541292595830641436135917335691933095214448793494912573416523485422965537730064023825591653276145462993963642958668684029468990110383804088699658466639648599391860219949145266177891373191667987854968389364876042788810131329724221730406762863025938590107922917677148053387842043477907998738155132805364901367389813210537624499732620477954122263370153029124730765626931955618652967741067423749925651036187529764907356349311463522976064877877433745097171257595061165106193226527301795549891003539502048910366950226026533963347036318933772649904719407216700403604212470380123110323024084608630195976461584302050815639970203005311996436354728065793175507827105190980498232625649672472600265486117889982164983574108894513024433576766149050441455344950451496122162705332686497080136732610503682339401681017621068860350778561929609484864271444698618175259459145195830866488139106601040828976411112600966373924771472444692235343422321627871720894776466878952642764769988927949711071719008831161140035160584693606157848508492958471085610012992048669114879073273196563264201523639334384114330872620352689420135416436869277944294660959440907264083608052679300769651060227065385872662213280326717981964109048448577302887522717031051293744285568291589442222291623775807520051441495869629348239107722025090523832100070079880847556228100194236962935899701304188434478294116991778555867098973527347345423847845393136957980666457967751695151676411292680430501207835543336841912712489208806749719459962277981553257455755225191591782543161544822337387186048670317921598201869932078010132767176298464255395874241920688727184716917954065911730333035374356428183008657494462356709463489868121879000174678342259528193315143099652237145576743601741558288914501903015153972938824745095118012168476360528405158712425307340745589492574904159144240829371681768023238077387528272098375654633543558577662744913408546643096621760202063646985370414406790018123583097239194422521123556720246411594840398641608025755707562896918213405798952826695865221848992073451180201854491167563528554169140881845209115528827699523196381478135367166803235453017333973852519720333549517638489428482953026729371006547398774533433273411908854625807562615306519951665892803655900540504622244756687542010411536910286284315566446262100757575851912530138639158365359277251598936172408861412793200921743170100644523336394619825346206741989046216445250202473728678854853941102219116753778154984637195246659234637035662138723578329095350525600966954151556298886005126224234589293253334776299029371994199161022822593377053280248122725743448782917248707059189078831992270582872133985931489583564204067106660311775475912183219879515199582717942587311984691633846825727498249562146706269240893347946010961995436233576980306641658424777805845190563422690399398393300503740795100729633789516051671524248217159723905973086566673264143349889729304077909307989172527914064308137044066729087738864979795049359975122348944846438741763238883682214328807418389126357575992534111043750273768409028430260810972318262630759591039409547130726840677182727501879375842365740094193873001031143431475153818109864454867583619321824990991658438948638458700469347813851017593200366165770131117799565449962212572492434275049933989546682982549178748090952479175244519252665423479978934264110951486901628992804518982702521453813726916457435565075641899833836841093258886145504456318024343328506552432669263061681253837940388189583192598424405113164058464187462261698249761612146380092504153698186608621600650619687336006585512939012167500016804489248954718296452738210250235206225532051623570141665758797394002813626044872931890335662186811682327501299959534740967050803344764174432373738689416979552760433129755594779019359243511289323715264683750227736382296421689012951140930350196698362777198066752745602845980845049689550740926642973346075636062315001964048177743133262402595154421910430754310912920639605265486813416471084002293875875001069927356154429825995029103673382700367144723681408182151564646385910112931211569675807746993324225813899961613002075576434995390635050232509583391576344959462347575528264418858160803119845991620950136821067443747705402400347932393315969812816789527340414157445927342999212110129662457123671473579904285524311705599153791534739055739805918780377990661085378177954484688492072203267412174797733953192265297491648513417906600271030223109148844371061932776272225490533251382872679326064544714328407005866795629455905303348871919635877521289178732440736923173618463961545743166310271291420983338328777012355402840717099330578793413439793234795629688649959758215124862866610739008035779687483542651080704796649767622549118212873434280571511992011749830377708597075352887188615278041209871104538501217399328255062136033112201997184187991288674198100736607916167409401434231982225333207898772981801268843956703793118495652312562971384401707876478139781287212565864305310142227141779765600818484324225016701334419863682209462523823616149098626971736787690760697624856859220441953299602581509741341358898621833085522744212077503916231095836506271777222357431573436719066198856606882785052084098142837490394680372882832091169382973794087143114998570967916673145460485608753786592074807922812730684731516159547119610281173019160179834422176845224066589771686797703539142481479164076778344755335159245628378509205835811921536381626810510570951410420288625207599727414530618226042028752118135451479335653910080943176258936642495145597306382566249281107745324366798434388466839458884147588001660726291842133774672888803021458097742776577306555100534841689706333015690353830851839336834821674744867468260738895690450490290020093672914471078658580023771085258174218769105043687184822344006009289551491180261841449983299922268500454212200875935543893613802222417504038992094842703117496532383545879058688262144699449799857414514427799598648102495884855929826808972069459557289986324637281073572642368910031497883899136654808806519037361581727682594086590063106284639246584117477096274373994991557770525404617670239684265987044437978923274029730242424447210784247497638953666730515816774496976517842627838792997437802454247011645787872056741125246875666488015224291042497647039298494435852687133185233431768662263055574777334074790842335792684526530667744190026399713741751173513517650299188343962650211437423146254627046592227891223333222518736852753669143441193101019324268598345880723625008009659935519573185040539770289545006151772498497720512221744356478161239161601808299411753078716935746451632358358123975912670378077118829238080394420295014585378915116159758165584097055874809494065319347030791732808013328693061964190622360138676796926967744650148889022713207597208231452336009617928652717415253121736356441583992208937630638710607105098712356577621622076636108633926989526735090275309542371171364137498559423535662515966587438836367045647662718964467002189228674869283945353464672851927008962678576164218431885952507355675182884834309522797214776305295104561248271440294718948457557339321740489746318411808620872474029982605580713329804627721953648500023048148802688358097792885125919440128649664467801167452426415087361088416936568621851236189143419866610939379409493604841857521752436779595043065790251289402482123071984865960612881162821201019042497023742856211360713448298967841756829095335792524790923154408000650309173297783991186460534695947084059609321380670392838486601471571095180372518450918745254905069419554518852746621895698254729713335259076425006434496931280770186261230336501367131434975340227352150122012072896255266398993984833141178052564895931897189892411900648961964946281913774374417284826726141090322004485327970425681173224728378133014294311389679835640801434886656879265400538788413705606445937359748548657009620066898454943368763537257288456251764843359339173686506724199177092402435873686917863404966725014019471179310840271453310283147004352067795697704191462026154296468652454983406527822004129478204440235960384092227777873698994776366368441724171761255058076316794843691007196513675992732987028950907844201520698321241747320487524786871969989721447842377592879510377269974070230457719824151657124374103454558392830552005235586046481314354612662288658615884950985627187719640758107312294303939105497160558898818560539033899304182568752879860016280568880326496767657642660708797766005265733202940374407834060919882042372426025178215177113307235237897356401583863068414110488076212973378081167031087676334760917272881319390496411237013255638020464900219003793388956724245048305000370105058961863286371723939148510093450641908369479021008572655275563048285222366558447908151479035510342485469810806147322353979128984221903340163810749233528263336227418615566668860799753155455777288597264069548217843506421673704323515463266463392902247691728371452673107215561143562753021819437070734264323985287450112032603666749096322312583591315122992071705553418039618060541244837514653920164137709997708536573910756386207712844871427447394994808411665653145543233836250402991730675815202072298677396414283740245904737969386992312943879776523067432521563959730071319399412258623596711403785000015187452332980821159928156366741502555731300208528376612253305774802223266967766311741329677834574510547351747642888024417846982993275086613979840356629416110494926505492292338597493404439638304361005134127816913656596629969388579781260811031932078391208221694994896382912297350797985518420744309494588378827167377405255201676214215360743205673662827885032995281335973675233773601664547920296352013811725239461864979597766464336215542888263378478704692688825337146256547327353835323100135398827530757142653613414815197631686849489342482728059890208981921092405301632097882988305277678860158930240307396542250005546580257929739323223410277219697278239978519208984290824446916513735675446773911704565577057141183527647584163114966878638940758671038274821944060978052981911727857422238929420469463990881113397862514940166000021212443143949250670750046696247118535810285248538779195636137656212398904574873859057095253557385230997104071592353178689332017594903742605799818264069215024303196797667400671327726752950677915223731969961097038033577897422038713298511381434032236658453330533737377741403030051358304471706852357932498904602248740669454933225198296782908006219805131511099196940056185765103910668229596930919134265588417107375053574370626834749173175990980699696973283691130597913445517645809700128345402986355388308659038197515114658943897212629635621898946842096241033662669193119797013669029604562846991945427699448951223468603756293221162759651705372421165429812447130471853481020371011773450799623394064141017788270151895211093476903153710938325252735978146788790581244666204045089233070916076692320518396480898956207579931755794370389397100429971788047450220747968976431199470993417613629241545373206929280907505260143079774820223352374982067781339105438187253171719243635431422343763262678897682237033784972545600579186390141161419439487665796454792877356397194147844406125192900108014598738551499583976659598779602226482921966737655760441679433319342887377382572251119050174607120211710057065009678477720628851407721960219625748383498345015940612534987260448880916183165559078352434934953236294931525290967430672019871167566888678163674368786807575982341967703501221266219716382978343287787762211152702407747997433438318673547500097996756197508535092837863614503398287403167210089751735933221802331342632411669389533074596057862663864382543062030506971004415059865162216799636511266497803844413709945195033741386911481729550721058153551714087880941725142164660378524054609614535343279154882169253448734962715708930501817974144475209748814811689714375286140461401586458312252202171278175752284597365765790332046007085354178970878731463004033504469768198274606349690253424518721621001348508275648380703022389418320036518906116736229994126661663452325989739773309113616154549688781503758533614063022973186227927771015586135270974224759720461264944104932134263430699689615193904933022182562231455355961515047080476991061907040819775988716640760783933717736895813875530859528648793208591509274822733870267706052081947306138707990749446164301207343834915877499366478465388442870140174830878500603096942678980361000410825429581421989640514293209118911366172160589657613443317199102271603914979630754377540254171349063234528517941160869807938651023791142868899879062486439023174869164026971297657058863882741133152981121436372136678686573892822832072283068916857107481275689793453998317496642382204064975986952145765673449962278299179546782547035284256274603879820313379163470389780140594427995473527718363546969902871404389786176256687020602398758406606585708105736666552022000398733992803504754610216701504656841023921895606641908712873364137176188007157129233184243755682397670368981273223925799381150085137586877359548051889157483775366966526526586500244451977208420311514837334441234543468858221928615747156441472456317946524329685746972623310790702750017206830424579690237530331752338023672509583356691797558488096391266263926115026277491093544746897882036947473460903254214428077349823506758921524515457050876864164640513585670772933914854908052221699572558856279061865370926873406422347115577069027241840725567163311704241010313878387353974473500772186734816184531209541067420681979522081808795702321247463218082302116924339008170745845881718015551047244920979640593586073404664594242822441786769391961155098875947849238020561970832453620657919167026153777705581401394150521412916950164437000065464202420593645125966225189406717999487699995133799201082372153518067751035377042747424218199217302531803594810235212306490160043696915137689446599555064241672842624455957269354441475475362794839319439867644908128248753707215412615832064603657338487097526290228200088737081951993509502481169417516960274089416610272185253422714415940559207843706952875983480152265097087638118472210474395673310620778638160496285647975923016057800091921791713833864741357495839561449118774194813846840132653017409681869463802948474016421196610882242601520139130820236040091037270777943798755137921448426650521271674874492724858162428638504269437364235270330894126911785396678717586333053788925842371680779086236422058450919445999436285194318952156992252611388299971676768959802451627774413535864321461674236692292560414285338297507209414769279030163586465617909322133156409032265677246513942303080325622261149563991913766340872382820563000587457911169512774547266587175378935533380878340357824596273644491408037808868461320287389166490358891223041779859923415053542011691910852325623449931371916800695150843874019818643686898493157632473007323697560649843292249767213620454245005268102304831540828491250788516777572490765200702394286720790906620135484302970393087941442305511634814176870045951349743585672429404244238151932715584789554849509183965559708492004920328951589390121316977287644547440857488972378314449883237615546049619237999520035227976550376751303359537523609849466799688099216363100680780212538861923844279963998355505568900328702310573767110356645299010198698331327076045094986139584363699516738575919996319967233432740456162563191206739721712243522131288236142723938527406225453418114049586195939823264276584781283440763151705409000533637122662868370723722799841261607422770865935137188215162676859685438138233979550666326150003647740758503514915212375859084054993133069032201398604732876684376706101457042223744268205924791737133808515895963214017131755690712828286218737807416404962327461595140494193803412032583733354036885489270014944291171739230149726910937787330907421567352501404393526199702098677307467219903155299009352106120159642428623973759782260892036068343127270506463851296453282553479695008538812286628273107245078272460288161103762340691372468969451894110736330999816949705823618094120855693773147076935453021508651044473286861892609632407808851135009291409792040453013916608517508583625097700973366968963737780284177760019861078941779195053591413758870119077336340771079943233224546447638711262615687221438453426116220483244369348977702606239233469869443519030170146310754578190593699283683028826183359505777113309681467814847034837113045634019674112876723860743643467682974490014972579149896235854693724425527589257761029381782364956774949011543446422019126532090862636951201642735760929774501376803201735157661204742615034581936627264525135537577601826517072576770202527281865349409124221939771530904120997588258339511669524229333494113645912441632300317622416783298944764334148995354496194782719076282298084066981102686761645430654771546502960876234876502844802302472401570428322540588466122903096976291273443109254097498131123943691740160562233269207437588263587898499184725376937655035770518530284432728194043468544432901768567799059755242535428675557843687283308545344338098657991320526101959366478370078578798291187590471529274517408058451610503505795007391806884252439599130337522689399587777212677370288209711410403701147033290090615584564822287439530151380137078314236093656992424508523201145168499132415091981924795028998134064042040180178107064840911422806685994555274407589849477393538373377976375872462042605727906654588489191706386172041026376780321513984311883263146722688511515682975877838881576111864148497221982282219133593588850333940649694397343355230665995154252285765773784454622103217447710091464470651515838402201144525271868998951941346193016996557806456272336131191714396884673847530989352018900549251661067543706114274026646247208798046146125060412006134382418204685378939074292187145464059009544027937042172577703205489682801334168609945794929015305894728403234932206185772423194403312684214418783665879872656405740424231390391570296658545502548751046854547835960904699838272939688361674100222279277578863402108510847075124562972142165739725977778279105642479593464743594983226303295291905546045435670952023156451638659734928813670812125948027037382441572316534563612907878936384636129733788014286375333651127847697367626338984110195507216714954913097779779001074795294791960168887348938365477669630286380867662820435725802428414324656532341396884379290810949687837612290489841046004519800411881994105693432238308904183012874158937694161037638870461273740132244101617976746995334508224517119556174069994506662132084582605606959440766081265770803609291036402832311758539600577466157109513728891803947839145860129368690276696219912109386948840994714808844724168980985213778507434739472385597593194280947485354337662323217279907840815358947977270059422831601278602388814268886004785420106133835597903955797732291523706279042649699038796745147262024427805420082810002966180948021873940858934043589181638440178925356506100498616195501013811294362983749546786559352714768884674713473947458842160514345818676059617261650240484402267822748734415600057018248077327927005652854646754112457476285647882931379268427205451425300078747465080175226124778347198612017521422250901516571206217887547822465645081430507967481514690956705116212455705546029113565319580872663744349135075169136779110345310723306027655584839566320143846957179053613896473239574911248322974498214297076193353027431107412074081491497057876376908181639940723413299604852363936066445291837234929070194444630838331301772213039480886062386042678516033955367868271818827358659594401615481127457296071441274989462542406218308892911566535012111483395637186433243490661678537985643435217067761453071200529122555703192968671971402959630929764947108012566147713221842113826315019260252873293754618815880380456141310260705772368167221184217759586862761762937210691578522390822221992633854325468451992784593269715343737099187403953291058652606565989299584028648366210981274051307595046409321675845783794622924335705635305199195207746736394497827959578241986404820620425329580500850115212878517384608278589128454485096384798348918105979151176403987854979166837495150027627724118895802003694984948660389596789484230513337683752492783006428048908070149416665655157234077409838379485934508951408212477187316071113133219991572413375705742860873426270486525972909643231990593425685292386175270374490757906745065165285413082781402503756498024616474936220436769257656294078204315321514213868396173330555164652857717666196396528075925115885282057683906854094304082264062934537350256718196770979810317199371405492568636041578901065305845159329339127559047068198989860655500119044942101413642639571769832010585017049497039875772559228655630966692606165537909778007197061899253338780361149935202848655486303836581006683934171722570754114520006124021013297664040474717551770675457102080530310449395727409516326676610240304150675217132941983415061497036012117439977616225683422705629770341954155092038083231726151771797139719392536631619440495997586653574779242074018603565800652349200330341575794212689627086566150996392482062218065814063491982612290842908229791489391842061306370761765839057592788469312322572651347356362933810886994252276530475351954513515820089368871458942400493608331931285034493357788117049710518619772761493862144931862621523625217668277440001603777010094203148022474324800744178507406964685355090020108945051341588788027492270171846353816505023609079201358598091399739936748765817688306933079681580544130195805854465286385828113574500343206827610503248490595422487766307349501471696499938187676483811934175313385391048601073572683203187100707940076298236767230956681009775764638681133329042492653832784132588254689782330774688005878660275696005411234212059027367924772506085908966932539890116914660368965430842419900136080578134916526081448301017862214512585920356686127297357832250504752652614430247458556657804982159401744167024322058872332866110239400780487212920006173345096057635359370897366381300118835262929013490793033890658852745852055998790813414922904816802789249562263141125208337984710935366235445776307005568356491225132259346683226030198599147315157701653111755590176975699920447205247829869336683890352723418766199451095589612497393465146265633361787537418538155963520879674677146136216160434896542682355268136910143535916544141388957808790629693231958272536403319373394294149648641710307197628897515580084600142526156184502344860260098048063732246251255886748955041379601327117674980567976749222993549326082019492389778762182499039674577412003404321857147637803410805641984237341745417739080444649503875202155112343532435476390910154345135115642063782090274204687954949425282144113140866950734263669390902481541056611952675378198421503391787886261968987503093096896638147372054329874814894086042694918394041270000871493365636417581392310847990875886072398620351351946966488171905310995069288099004265115450538179792476404657158057197926156498981565411660061672992839066108556020960433316512286044430259466795457331613613342583516821838440887941888369984385555211221397193665094712415004541616914935131440808258671435952281060391033335268141415545552280926401888033175170419991935978692643164437935192159643653457850261506430228699632936634990307564212643593895587134156264802521770334359271727046664424445962897718430966711671474614457922594948695648755577834987776988649945165997265113112235565564982571648799140979854102708355449650113826405191977224549562321971754102467926843034413492414472484477976257265501681536055377869685576972194955148477367594664555167796536766776192941215467404341356770303537862556016174860470104623159112890657791833226684565004241365957970817333516204126301966127788156588941745969961271561845306663947214858405522274786056281316103331151149605200661137167463594366084917397564208599686913432389850790191019757093969255060279063078673530865511518359856679446140184393386192263164390725286829102304864128610292669188133980571521473683621283522716611082784820267706442055817717977536196124840819978471391792719231128232970933517934801038865056922409876043198116367155675344232071535653580935900853057697152265333891330626357479972796905327722198630288943960923402598454869490651720879074623487709665437339823108609367886354463297223709062416704964515636875234960459839855302643907114273249655073733787773105254378108485457792867435635528170442545006150167281176681440468810279325711253684686365185172651457945291376006641113198994797474759187098605830016265786170741792947346423257255528234397074289620921629472995900469909992924202311048421585152896580985596827280613842184344247058830575418280670894368029583292797498078114619818596449098977013087928966390758983318551154408741660458175585789564847206138186347407603630662582023032543849174985631124386605567906894452251426867120612742904457433990520978040749593937763918756690575383978440658139479870644841193060242042570623965447345248205486037709889744452291746656975242640046484242908269603064775429053884611642921928758151512378701273084538458802641950952095963036904521629610330698616240695504001900440544512439682080034366459905054194217707829552079538331323428404154283658683189327251699871704985436869299809043881627167480051694710518584866419122267710302867234894331820235802089632157325218986084066435532899188846846984425695593904891346379923675506124584320509294648637958862418629748797794811854266782461213241302234918250973847551528782779230741212374887273370258438060481879761288694395576996154556895645404312818505806846303951955092378485961439908147501450105054478868057426011144231427303390320788355244391882770965671346903977674744274601518302384564189847160295971915913708252542245926417853335055063948882764600352902380912749062324995364074282133869882575527769807160976547478729279158813876990576165926705809164637078298286068453666987458125333420983250108433382694913452190234926214862693599516459834471610034809101409659924444441680528130449041553957155286945079673120383876632827447080577724057070741553104334353209888797838223834561662955125028970696515218385895642967100883404881651144429106681712582634375586533251778673597220636106190377395753783411885900418944973288202825979286783470098866713691492977657983297455525734355597260909461760794597388664362010854593991818837092162893508837890643011771583206576148535202839299974244591674516017945582697229562932199953148134232471454537554647783444045814189655825100705009117283225612090558069522893333897182959983260027535745243383611056966529598825581822146501603508706672679207636601216563329607661088224721125211733959166218535475809586434085476149321791672581358300215881783737507193443991762582342968561954268805921581271135337488434962954852821381712727964694302695709858907905750699462772966965593079577276708982806825800557927001003312990627237151008576727144312701044795623415648883513883077995538605035926994079538912672917418592441137531569260216737653124098544729136026634612060184669746630428871326911703197911275675688810733848134103663677117955748707781990395070801025875409876948298767269205998884140430384233589814886342368688288453357299954671643497117331990124743267404733745973633983074379068365725719786832483188966574275735565026954381273426253888461535135642591058690953765860296910055967152369131901294911119832201161259508663052368793427329266557974208996599292397942707638684027028949323894108217651004687468299417137962335506227837681282834022813960951670701971327991169264492616020229579151060964796650936993302778727354245628886566892707812405483039518451111396784843451328284933878206372195412185961506868797411063127356255012927279475532011231616495282724135421637888399586956505064264502088464377342773430587721417433781627495189955376858940664644418388310174881518203649852282841150223506452237268194361933544944069353510946178302940901521123419041285789955620443986414974222479111760543170736698788056609336771975119085394498638059698226088015769911683533017352441912869273103923367205443258393656049911916986053104851156411702202150210663931847627858334701558147804391488745026348360122205319961805719942182309502278406855865446267263788365602702118932346770221869039397256395390964259099615454014569690408589885225694766468318042181193834709814200795170353722813767582525327103046869762151739472758436041362591200675068739401294178642183923532013209716550419308317947346090228357775952125668572007811001075711751221310819327167549567563149714895450216552528205678794634807217482280305412771579605784777001577433313291892947671817880925227463980992407776946701948883556678149579954138482137621726387397644028372117605211133975684974351813585607355730504171619383385639085627455054859642531712181243719980535197762061696046732844143824049791310433745627942812495887192385294770561498389831282220338989861597625883325095608684584029664519166163576903269523842001497755030194472334486225358933157579142291262448010654102909984932628088805771622500066545785832615091323521412981953175243229751404999353364207439800138466755983908108078471019508496231567677722717352995109523826696642876562499806176828929786545156768441120797148468214321797539008007499289418491103897115480292379030688700418121184899713073562846315538941585512453226616721746512422159308636206191576089837834608684390573148331711729574573535053167922301025950587714926718144989371564051306099583689203393656743139835918636457761918824990061343068699577565990356145069507333842555999731490379235230545284286898166320163963196977601681519274587796271868644695942607508857770452668669439452837235062818287666766499526610177936567842555207929631651561890299727130441266213873015206949600773708922280005035894714964508142958046014194385326117163554576490845907639512417371862378846957781454537913860865139600486136008502289076088140547049475369213253411298880411781445259478430983128206909427396117119799863570769843916719484500735608540689889991991653820280242669957865930357447410006186236235919325097596836955845178297108332377191981387695984241109613717709416194986708670726074481228174002148920754318361474168190792566926826346345594537445641124813404223578872507917849545420182471383923216308524350771096008028738836650924935449089656806057221243314388228895706836607609519824657905328674561612962065827884851178022873851281803075663207909875696569491303464481429314648714756487724602128861779069774271614881886991602341285282130118014021468138817907367214579611808785123644289939514084484888818628891631868901515862192493943231925400428325659251656255497592938893706241119401332415607870178292760777059839341232351219602011416809600648001810846967765857671411859047801915620834337833083486674281216617297475115174804029267955762541487488621234595252780538824106422514590313518372935881142733133388829663321924352957767793047481997087655514148182677860712129106894179734610906012634351433131044950500120153506861621826804278391318302305561985288244694131409215214585579558114091792689868510033523675734782102179455134230897706654474629656629659088972499009899672975465640910998986383736280676611147104108515822685242851988869673481488816650357013811763660160094788511251876633791144583386972159275543373070510731805823070363051057114678024592571418450219989969403154082758568336375465905470246342709080971094340738888262444344747945733565131801911999810794433081041083771864923843816666023238375967274972815544710417539129365501677820069085765923001214133600284107472300558431136643967138268179998769654680486686208055428709868925871695158697510431593899431671529097576561767913660508885478062571096154628759946833087713765594062788763037451489115140210574290544961843562984996559616093417550296081148438930243013359214435962741874123728544227257782058019107304407347302422351287914058996202376960845250346322472468070319433997500440712944142743170831682907619447208599954748795333592506155873545604218604605580542662654642440151348409418163817738612963113144453960441696194614383392779477873891507600857801705689388875440331362776546040847875873237009451109658222629581289380459889547061737155470874528096550705597906450044138643533448393350183901873499846930300979287764479138030711149800322902446162147216864033664831201976061956389345472643179656453605163007146862317119042425025290463641381849052704632515370315221441595434564347669212127908267871113906628126824553131487816627521014058269191455573877865436680885764205967471070571326359393741737681103982236540870022179437491116131214115317997968003800544987696768163275538739863123984792961338715591466377130677789675202633460153389192925571492548021744388359551936858310353109634811322660792120404178325825913908046178705582758495009723164887417552977993082980799479231681457798644594715492856312777257791828293432761135975151907788998833738277446170281376280123155173252396333259020084046367672141333591585303125036346608801774471393801851562528628285247180842572779233947614024530153393440831576534026953902179417400678051128931778559610210653935041505591796053378752644978300146485234812349890427285450035594759741181228610365193961698131706880527560405945339090714236022231854529570556388990337049454445493857501649153714047856607308486618750271152064407383045528370550571179094303351452316094737339740956816701831861018586371834054475662574419479711015264700682698476850615478341668588033159086720015922834514714407963094140999172008388398313446238180057214749931581563875155714019522384593126032329609260715315682825876102438875846674119279615507275190836714394898814255042590792342954728443856492359558723673534284385722917966972078163049760494482325122890426084889300773369819639193246447238535523228473930500240330064583447667204232726983350496023488537452411557440319382990751453235461221732537369852208534640968798141452447672611740173143349823451090300964011152769122443772341670792066891481601828510093068860131144808472041253067578199993779531073280788320080805096495740474650276850710115869392996663086454795846015305969869008337253967321961431143842432957692457496319386998984009151496257489265857974481159512258193426303890166385206116279466273013232717348125500654510191579572721202188916618122782182543393638877750982592532068444987062787608197781655271297616620075827308902043867953261336134963193982215268357998931991989231622094366059682455350427355700310908388204192198994088529908297622142827657730789439576218585144294454517686180417834722903724010038651837686258999788274521315270949429902673522120981985487570529849023387270217613925249445950719245500255751415774939240400525329935628738094918644894389439501638591723378219056216098061282020521668300548610557943389196988912995437794546858024969792977380984450822167882197181529915137477101782914322705658928131943064175826688770020268289864721990886960208121031975769177568588152608875939746943085759796818341574059078575248010799104193145822675723884496267191217731722516448014644072825906595961888253517416395544489154115614707559139949295386472301623955936021451992267050684252520761914973586298805331671708855396390130056998040907240618041899182798750627504720477593909940752806560081557277137077380507430921174480974053907190225132508313630330092911720800692648522728179945299727508916268639927168669058753877425104426227333837475846020262503373775836746016559082908205179044909597963439017481728342338303117342441515639353901628252854796123744178477655428903886021594519869703766529355158403184519852248868646651129063193714664209154570235658507935339863514889973118234969257004765780981140354869516603887858561006431926519790794026582179516791259294673842402363277612269651109841098007084946445446734683846153848040863257104406295557492624424169335935021270276796250816977702374741088094126407349659588351024567261166029764970511552697216487635092275278688038113158118576081707121285094860439182289463225495404108211679720616937505626300043281966555612674624463617162872006236736919987063531675422167988159771606502849146287231375843829156258782513583037965008022778487905699958497007898716284947216840113936753531068407232292419956585328699030610439537149392947451508467310872881344845244740345458792553905685767908299124263603892940528526765934339446236870496229231462727917356814310278812828092266806460843644845689567480343480905355463209927781355511225120293978537555156689086114165153208066155847312149143551580182550945014274173641342226174314486832913510543168510828925434317299519603243048725343498077623357075513107629223923607193129496313880476562032385966843050436621807698903415111138260438418840289456298475752130073141456434586897602725846335266561642769127186960114121693906761118683758562620234068614513211781314862132296712095389164940145804246228268449984789206346258897974164141740082855507009931037669590195165999227428701563464453743033867417864805188807669974690782854554886868407100938778984817849671254163523284228212454930034669772390895132887615808496969675754959602873625931829700541445864911290026305477321558530038819561547482364626982652290141335029836234883692352132275016155753023225535269532328480675331924079351569951127688315628764554203962182593100217859690542363257438428689862964580910549866294770371176309168591163511810807422164994678956202721480253083488659170916909745064496649844671779995217162565143946868564413550658633878453855203084087211205465755628816493343121044065572573039702544650438491707628458027431926014803979723383681402650298780720344857709966524737668122786275452029807614562945180714429220727919513195607270299895267041379159199214971572214446837300338165431696682145019472346945264873475455673587767678371302719214826965786789123160622468988497791710748553031309379114723950335034795440671990133137225878766498906925168165474744782894166009315095927163392267506893302721288249075500672686329821113818267331032467233060216069577615060204230422781546226803790140842612516358895318149763064201823181015450726061647438770094726708387706835914046451956546955161458938441102317877724090438347974011382899684944212547845838267782872986488564082382915337348585922677469436201276963390744213076599638296326738230286784628022156519582570149151580772042877320185697576352145385920253523474235761783819130723202132485497179512135134673270140270143647313928644324086484089380410350313443256770497065217601406785000759658122710732132310641146323296160192843617424947026014314457630671410816784274575754063984441334933779130765057614424820953630884192621248128442055150679680799690019473857991534608819691764503545525813389044913221185876405687112201988250683155363056707161663654858619571947401299596811087921694419245318309836261417954265674636474170651999968240822162578405521309777832962867787778841000242184065477675502156373741427385395111820729783388266820552760652671631574830648848201120225954539160702749923691993294944134203414691913019523702378414391476701901842272063160434900262680660635879940416671096601323195537683744240550095990627992521800221300576775112817988400304232938135917509775087957023628765301021523294820444139568859624420704868952233854085661547006123346531121471766051082455704600140149189977152282849318991053700642295585595217261266509252124660583851213610287727468760328733287301284418764981943817109062041082227283167651934200228503135151472543090190361763814449714176314362098231598341578159300602005401392395365587001249875273735180273917721694679237051455849659540779570364249712057331287496962801755775929455806273949526123681680796619902624889852089702843197689075412579345251433928105764616719769897795956004015679987202324956729107064888168806148920728962065964978499457997501989923794370088240166821087313685598960391269033663203727580751560963487782215268420334326611760089663754870311535507597961760676651617499709844813971244636434791159599329945132978469014231889912417293649228628623430154686413775208075161743271239340674971079275645892757636363560167202918465809906095493155474795481722074358199342071748931017146552117582655310049896707141647701182379532203525087449972454627430580218361466350738349309990163222950219273624251201193192071184924826749176050360295290875847464807004398625713258872791057053327192416171148583504611173884360778972569235769761036877003546444178844163902671378419136093760143812922902668444033376789010293503942173394885128280984006795208260895039868463523266337193545868827239384114025342824556068956572936956427683164201780885702998283848767184377260152836766785220313537415179881505367709715334283728068996031367159064743003789906551025986483505885661340328721408043444013889779686210050042618045550464975819222388152854204239010837845754754878260856075628421665064680347200202962777344619111905217721627160489415297224979668694544394964476486915651203650954370572548654650479426913129192848519740351222277021257005193529523874597633630726721234809418448455263436589514276351514756448103027432616379260132193970834991565379663004553390644137822401122443830929391075679421113244550227731033268828794085328049739104490124086843120441744109797916937664668744256947171609043713750420712149204289154673458609738798946125426177252988002077583799911542316681089160302745065110698447586152659521888141540202485068141021247978191899311380755324886865710649380811518960846811788839962924165953853640869901270398562711450474704406453289348414203304479457969321150498524624358876844669304926563487634697025766356190515118760975897881729562832309698113214848108588229765214268855246725101228520454993443859175570634209862143947067745249584280289097356803340621413419286792542031825068133652492419590285501350038802960087172028992359517626033848839641674698578401195976122759869575452639204387556809171120098068669517907610244928634705827185113562928369211410273295641552749864590547768545506824435345834775261223503423890674972070958372776489608575952982601433395068961819701041325024037604364937888144669081438565411654080218577314721461687574599299402522518438328980445058432291731745473221015449031135773811990354188917718748760292756267854456404986132978899963203051934542520513826245702664644027777615622517360093810934432648969407082873365405688673181210104191815841458056960979769166706631391797062258521952831936063086047641979022893387233152774447234560264922082760131864127925267230169952152007239928048778313965141751502293474025584468345653985249415367883586700948881542792225725231894817344737572088156664975779306976812737907429044512623777563368114438327064243859311682108596803080949371079528644726293272999051086265576005225473488443068582570934328173292038845889736560418260229089059333375900834951168918628436686178776043988818235178835772560622148004592095622027505044081558270330136823952431109528829088314779481377535297612232440590502790597984480192990422077209972936022534397985573454973312536910279277805119601623968747477745624882741220540995637089485374605125029829746176233803304307357403593403459795152645312812739228035442333705848360319532925411460118787796733573379970858385721157856800618054162852628391290368661585602466828146868552900931006783513444412799753623253786039220764654198651561396285221098170428797966142843948441135626494947662817572184086809960540293450765167463503274278929913367334546280431400514427253688842754482928469352506560926294191304655162574125635304358051682803011303236272795349442963236864972433921615431765891619073963896532333984400131751450628964326388790648495356750348222946559439230768676619520907943511276955382077658662616413643757047922176545699354772857072574105292938753982775856626724873090225441421311558688915918341465363728668280870424587251725274520976392682789432076297630334898848055570241635443271617730570124535928173434134756399387758048641014309113563575300125745167781058214923082024574312195352433048829643424486185571746114075936351125733485854631817094949917422564639947692154921414736559241339790619811366005484058216788720751804073293892510714403505238388362412049376622038886816987332747781892783125258984283463819511231702043945319091394660445985404805714977039016687910767030529105502966685030509512654199675183265539082121097030714156745525238754994638039031109810228478403738116967642940788296648205478173427717889371883270330044856744585055727317781504519630109459504951921137714641700620952200359847735958832926146220668571646212004114066544657505681371100086327419162270118880673420412991122158254328235467655786799830370051294124069579508998759290150583531048934233980467188066138359285781711155518448033443668706379924941189993942757787399233423764229433173512743060155247973850181683277630382633006227058113061838929094485213133465306857453535752042165617841792698030210059120819336238070548198372554423363762220253597437458336444589912061490950507706348459485113302771955854898345657525272265715878843655147716612541509576100206698865158100255827426413828376266372961075308561408694582428907703626046503762847396964686439811277288749556979803560619040390526331987468021055248152026018076693012883958135772411046581535582558380011022763196519884007116962609922691402909422802903970388367648599711217365487553209548368697466676824186039762819714030244468892020302544533681281998627717611596314450860037540276620037253561795563858609318611805662344573526612108372356120214275283664172363307697851337855672543706384973681688639601972505823543001700273601256176104979094986690057916247327311568918913875873873625218868202828781063296863132704636614053406036461553047698389644315893150793303521468900760831569536361747006198015203021009430213680226866109665300445237523547457923297368552582728718193427904497561415422326099586253582789622982772669682681289184825045032420126977207566177857146526282598051085980916225553703738749514085332808913631930069500366222672274690356541261775165456785296967518427826662482549544305658265031735746430069355831687387262098953383560766008642152424307605449133607220812617753191319223081635162978092684233828241009325564492638808584787557912209372774287647773023100728009617921748310219674367482591579353849660326660777564177061016305690720840343858853071056640960337059893023704885410156009040522106393007902916701814371691673040193547046555044182461455862298347028409011730785359048285525062739454284659412032606946353579435310885617184340883324635593723899861850140469513215806798213793732590342847332814900372536667491205696006769054933902908770908344275839242284918680086268081434259963693548825171572598220640886224114111988956873026405232057458381744046341938587927720936840766756117042757332807423528223929730916132441341460642794103183725843428348923771536569486924109746539386388323210665434176645589503580875012584628147673982298752115873325007671127704487269497666564300625732740565853849221764839277820395393400767101480337919170737490142962162742667731915465242227000008538594065503107988891454724721848276836892406577474659704636631560747703310824763356895660662088299017604447154735536866170103095521185021885371143152853463727643333574490249918055282748906267513818722924781143163347519404909504290203059142574343828515678716904587523009744084988269116127060190897920873343252580297101017062973071115431348928720770277315474269728316520167274299715383666483700090820404309590340229782035895577852270718476186074423358153008488039943487803440540277611093021961150517626811663728354537089192699598525411586554616661558434846850024003772757440188087560086673245191723090948303081096884045936079114055626473491754005383356456401382972852216074256027125799807291279897129011869211847566850659349572328816090539196539950126444348642063707737662292167155998650413186159205759507391118916783376109881832467230757494185692686455796091788011011127973251349975883812220078526827342760664664914258782399908985809169633828543093059487322208590547869497326819739886749857970390595434427113230941358780287476648595341543614352886316612160638413190689759836021207389221884565240068500770387598445289884432958111927163437865517570608744617640898123648225132734412294939396787031159835912880135585052823280265455838528309275833713897133117042722710305475499298015230768513581756710617654396084662049685573220256006061820652514571343325383526668012757178553287920789803146486174355598818209904790365965856628740226562380073998556267487248282284513731891121156194868472413050492192178931708422617457036066683546037201927171245768803308579065178951754766166547265027548508672462088660571548174647916320152433936421467693018080555139857718804339827948532228375366565813191398404758783372106106401014417898584210342778425269879937590282970983391256798234714300319201668061513708783000737860320465948863612132992297794193267516055746742035228066456933918084298260596234035813888368829975337138592935502471667463657225039977279695842230840046187907127409717857468248575655215136755404205956460934726609236345581775263571507396812465165763402047077119903006018606617230303771944688462663758653800092578223561643069911889943486718187629200006493445802465394086798768017557725352151828592311386432277761089387515626131322101956173741636842982545676711956181113893490566274091355091615960381964659168217282564639886645355807991905754751195125205831733731136795825087859034153431561297004191821951562812547607888377966111810053209856878706812429382747086827022332575641416529699698819794326029591415833898375977347227426364786393532106876936683094978464496087215228365921505066808514813663769527412111416822507058000669521695455759042431544476512693000955420099828044545160040027200435371982659377113689576799595147909753606292399043558341152463551661342480799754024227287923454424308778593131354197063526690287208808091224177699033482039526959243493361556890263449729360618601696067496766951464367953508736660095803409360918180533320909428594897130783731003107930621233378171162102284927184802432139470658557873969786282927155009941601839695297893128024827452169599827058427981371749539606852905220035812336643570775093346031284670824918589327351792677653015100256444377449300988432898871341998660519916516968139701507565253186895819345305874806836235138952667940645484470594143894153120161743659201781244457006569353018571579026235670024618261090440743147314163290500941977889293795614459169248369415832675396825383265762980684028163024259160198067646996872054193265136832583438989108200256593475983801369396498642259509558121656768157226753219682558910534547664982754891040322581265710479261539690392639213135631905591609036428595945570723676646276733947075018221175241132949792986831894472358915426507233167588846777731935948320500122271949266628628235340488279694967956578790972480820385368804605443660468042666496372535266804188325742786022870320542838277833879749078140865577352912037593220342845512976507349375841061141710140648620927449502681262284652725764048685777302797149715559536715143350807375540398335375672509407345767712292558630524721125582439537756324209614694251954066799911339050628590940226599441980659348177496823811146855898901771104653787524457449122892816393773076909368532353896258753980179925814507934398309410925669695376677867066891386458063642967468631231218659120445178044994040698042107242288085613896117479503038731188052638447280679834340989031519234962237513226037767789846165026377995831109876494844224832472046904126891826482027800993168332774974760448191709226565915522970726550964105658665640542929482848100957483109363590104450778844531977028603951600593466350263058459807765104811940713050153038303887212178338043810957266071687955204976888180765435699949462317093975271758470091453443402185459126724061885435704988161580564741774012686028986492451924925091729504548895217608798578506233858204096983478276063943326972505441121142336187005349484658905875336237951917758958530382477136754068366737936823761708528553915950681239854514839201682056255263963321375854114887547249968433048894049869371960838183516562653924497579604914570220182153937202836485354961202577002985641979597591196486644588168614676955263271444156917890878223463237621220579190779789533990367488207121499854303694027374755090534472833774684083604498731826441596680528204450524757148567633810647103028897440754958123087129883573697848390759399947900844091482269117059430744194214244646010524124962317082522161670234825402783336012897261556792746054111193561752929972792595016789648500198427570684513746263355963237920927467408788279912573332296800617323623418434487140152451279119004779555650034790524311126271172380314393463698931222076734684661205948739321670899301406803991004906423597777895373571782117517415913043585675711189157762587420547691826179343110983723132097132243270755081650328252582017654653209003114591011557394100992417075468169991578166199539198951716416082317311786815878212598508678695507577043608054792210305093669222644542418864352954175495536694897714917336689161517389394848437815218273455290106618965098273493104302462144849581075468031203237209713287976807678733525081333099206268134242022475846152306586598232575759984989758334185781585356573330742777324183367023075677863165660003664795872487315936946331249463276976958874970121200498572605410154126691113162422107018228300552219562201394947731055705415028525084071751157685208904240369215338601702826504811955234668611815449674177213504701056324955593532717855776359692721520175672851373329861512458847555332528767598734150313049245537512815894041051740995612401702908101980093134449517207526507312104833095627697994843339290477219631424013282258086545509400505174505370510953616377990259910898917628274714393796493361646696165087404923274333058986318352340898380785950971027572118178607121519124275324147683104786676467687508348674696026175567387824114796050219238936617746352352048612990259721373160384511230189581588773882722962549233393852407905060819427042737326467133331613164597041898302143964904531304499587595173530193111043001974898057575150587927590802688276743720361856967328921910988102356033700892706570281957476119679353027810602066453081272903789863295047072183341985107709216392269773181171087701133880543136468226732159780890045766683631046362559407195754944504737852054572551369466783309827157844519275292201020415096542460913554959201400966245485947616362359256269355223293846965044321011362555956962754024194266281279001152058980520936849659334555103223605225638434893770456622190969288313525586809653830714541465702857540081163575347997840205521712405178511061697953402451905265730259114064767028945875061777620234859173576224104598822563501003092392653161717530602017245843186572116547196583948142566524515308979804135736130035597059987401649142644618609769473594512930164577817895932721948762385164771606466963384047377095952345291925529522375608594049109174581015093339922493415581994542477356224317795617904951308722714719884239867858660864765537242957686019074395283876761612278352732002660381790767439101976683140463700389024413107804460425618033241103867882446517384266778885875749289784408339795308278431335842655230931005646608472879408651338337251224277821413634218098465825112307690954652283110549357909872198408758643713808223316562344567841801872115738559614460513525732540615097497797412857384320668293470688755309785847924695690074799645066428908683983255836568984892137201467180615080545160406405526471243257476185913411726907778455478005325201135011818892233147799856601804166552624312233794251954000296021365906689054658834943791000467385451634820928793744319552961828699548466564336790124865293216362405616805106905546047359691000927281488204060680553263777994327311882473008385418542082189103736350659993627693304620896225504639381691251563199592538155199334462930479268252633752613534480341306574685083396077884959887166947348245906802044670946205168327791463367339035136611855706726043853392820399009752994456972296958511446219080497247763962961539982054160864062619453443209104992038233088957769659114027383087084596572149232480803299651897975777817557270649805429592327171160659117166486952922846764930286934275114904526370266444323602402537357920897961552332974679862456202690738972263154876106166494543233671920533854245463429850904132777266359758035998638687545705258090653039877406325024221414071121489384259099064509140953102732326009747684643447878925615785305195703315328191823629386452482390571888794944621594520456850565273588226420564196781886014046297194892955677826392834126155472400176678559463113144931547026844247462786106674021588979556526848900299482474279545276005988776396097684973505873648451527535513464395669588758842553444083739020397107967462962436968088223674240460948347463883269289338726483544337099748768582187034721011480514283352590409636578320857375564992075627041929083905927058914263976935604849061583133851067830424588695104308223325582366010659071917693217423300559463613858943039475582679474743821343759742593335016785013661515817529345399942947054479561998372468630076164730954883362626770536444340003562805175128087345062990986565311958064566089758290302089420888865685679643939288196825382485215749736382541955763025625324494270724539064322547553215577601416143223019698184410187255000074374416121529620904590183348714444822089868226463878454930130488498282943163505131377479144372729975149729340586659516953379251368590226362250152975789818039610407780586539296911430153833409675364764825272900367734686036071601493114828922661829990243772641867572778295529892468485548221487081526014835656811846743084735511851852877898743937071687789089086681888960439757657349928315900784503242027439732827160009552470224898837417917652385761268874269277088496005035109191667273038456457436877823039783513103738433389538169909693073299644089738744192493570558628336560923343434059407708872343012923338727478524529065944186302862701683114282979268327984826518988368589049100382324399111833522462195405258020186461913240492834431673059716806358763074513647957203972272485570074101087093808587180801620029252856332754451540233810647518843005641206149273943469747926802041488802188287915850011501017195129230638129136928965812386918388191759726039840336960287586370542823060599374462333251252384614111465292324139848967311852820756656565648328555681915227275356480754617409276387755325216758284066313472076987932509945076842769293582779000775944760307641984205094659525133700452063438102072888486805394380229003953529350791737500125082601179294882457236820389287362659507419596461087194103069760959094078721115709382311244348999141352645575981077272321326858185851027264086504302265807600286229007772599595755372733156048577007300578683596964374263608050147503529005289035141256940963293714313059485999509769676062101201418951033082981484911660425180839440179640160751200430212478806160268715713628276503616376980064849180159549489732708047327141087359084816748410237898436751418760253804360011084576563566613845789693110958825548250574190320079512791579537351015318622112366737735902348311018850424736395591056621481958601458286346991088493388943485038960465619189308654245903404590565469772295918766214931575890753089213599567901688206212995423348497413056639380568946107924811777386502823639947379246332301444535990345214963177713382395329461498960241360290161318068609762256012268446961728368995749557003506205317550376531847016196423127288453912431914556419554705268803804606586430447465849949754846390384523967744334019603305362084372773037939655878741465533208550090820315653406698106371694442098336112472211346101270006451038544807616738205295971084804170712682098659022049559319524781790061197099776515979273050609601389026050798790605675705459549231626027472213756775147691233928007785936062318583385337039727047197183274907124010652048207418174374315642114195472991739752038632432933233783200800139528369397555259271456305976806813962314443134344606414011458145017951188386754778125054476339143521206222652020371353391404372404624280241588005996593146520463330486592880064347675718127909648200115896401683316155753855313127245255620891594345189503003447341592986378031305783594129160718120501614519300256589032104256018566105511574681936422224348353290077637372162892579211856686905960715004940930081762078762176509399855170944321704338770533527289837677149676630986021113783602091128814274390111719458917285804346868596314997757448406114564353063851092632816557305799839178080396758903137807103544957412846514276861727651184523157925513742127652397445113617209475549811982711681614846878283098137152061771433331652566010187715518958279048754413978385932408469232934303257239212173801889094797569138296899904273599455427631591833481573764056474040238527240252297578909369721445038318715931354122236588376289163648289784002931342811290160781652341764563555273655678497982842371333397304702041642905805532518614102351504081064003216140589694615832878752406005671204503752254725990649775759286124551695446034551931251580193082600306800549463330692570758772460384252996003315767292334210681970373051428848008900478366674337565380149382515533129813701744990102381826277061352293187228114530553296673923403553010527393076006919365863620344243406752869997039892939026470084463240687134631955216904875824793316331428441718409773961221707610345762287206959078883713529389878341145179296463477251942325026728555899532069854994958847832833372479395486437028549521635529140126192383888999878803788378488470830322670533891736002374646766835864201651174929258582837630125706209371115411538308349942980672819694037088964191439994874961550119337341662836525776212415822643611449444204009891652330035896558083592579608375808669475260528992597329805000404646963726234157805561602090495095451004106561456042960375206975653379607316647205278793023028711730728767410122638132050966599006972285289010611723543022563276694076239918374056649433312162933729365386246078571715429819492949317797230989859874922005261008738818082406406030438622699809508262855821567474548978293482708073302520646499358168325806470731484073581341106000238801651322708721570715543395685017086152674425405785831717280437047065145584747832736105147393208647205550970685065985958066341893385686434027496307189631540625322896430857031167841752364593284607464232192764247573447499915746528510999493702651837382384860640766429326260556746255625028254014691951427318957913522015392191305201034644258301154393769083684155520986595177283762751682717452854057035738495926298251872554023968745836829541010186014594181330547451451981967324368537684253242386070747174218810167153591484926915970303427157852296840155430456561398205061100020958335915581022225330122316548203559216461151076314229287536775262441992607004018138932162794282062402551650124766466185628786381289504121344106233206548971438681134633907909748462890944126097696530723110798514075831948798348631390222921077275781485612584918388228035804396619589693673974331388999739805787483100412748125001221930531868554361529171723338655754100014432013691940286268489205737571207525236720094626273655427537613788737133705616375393236245091050516676315782109367010005413977498878329396772601496266273252877303437313277043778299844686626786124972894738593224199584583756596737977753476841263374071390046798725624765505955165420748582164594974442578305811406427623928198873795244008081743604333778641351014408332069830884463928111142487883534378908561211601639352981502075555029546636665772609723420973854197119849662137423872862666658650673836813184144534020695402500755289965930532874674885859787406514420455042590203209706213652902927077265033325103778598547997771991833575230440418542318505046128272235529888634333307621632404108326647439652112893681415558093556339213943539947312240430194739193740659262700172138886581038146090357280822533212138136217205220763334472356283054703946755165419617794006740347417752443497609762335202260024735212106770080806736750407103736733095141552691243609277585799624241694614719171366472446593655647379439741514318318148074296387190134797742465064197065894758518900149184869093683708830946609884901635245615056150025924079894466848042712844215283110659901731198649758127309370527377256759579784023185137568641365970782116852290887744556666095691442844293308269899846602112256253553501047596542452305955433226263518120789532570494847481048973027375817491075259217277199767626707808709193552188310267947080124779602613449583610928597922862164585890087188157047806995544695299033203710690518851874777123227122515324862568443468398588091642992133810279401379901346148143745779814283873210453101038459175091476446158556916644354035736188877424592317283521589591479298202049600902811362718707061010056391689570043942261657689849379650701817241285721555956617574470404721682040798596336112871862258893041769173333994919668164150337846153465246444741873379257050474896516586623651358199953256977926584704743935011524669091578249073113588031404010780763634219675078569072763515317021097005669791768066518271530182299703394506545535440425548178076690257588977756077780441102060984301833015690692896008044252048461151015563648021822656170639851119612135168378569796646924607279796309764169107961899016166698804197588098834969079612314341031479627821653192459939672076516413661367603304786566378042624972920364116302179964198476914199015210683248121635616431377705372027223520285983799025014611440052892296071023832611518831909392371965411561240739720042358157586239556453887437981871165332040650965980736521068983792978430681920794313715001571410909221831775682470037168303227212836798496428194367046573606963151610153902734744282118959782669473026300189895245035513408903390034426638281990833576752306806891448672073757381096748336708894690636908277890138981191295262713387908816041987174771889251582877677968270957461430528392859638652719913299486074502608849836115530737666330367512863859032446221693003624483915313222151732491815653680499277112529723072341596731207005026452634172700008872469298268278744334536530385905433977332578191037905640331409383277874146613688254051127306215355594077538025922295243025850794051906579443930638523297322163826915370293524271612190970265886313424219689373757942464841313308188193130932397740710360181118609785825195618656080606295998181593840095597465495495422706840730332074480587823062017411090716600578142796033651233131327390457818717318193726068189166707691865228589778290588875964023327027934268546351214402198113455475798353795721948578662985775298421940397630108622797959893529093361721375362004506310713773840980641772094410646133968140401088077283138063479029771418024482046021786459014601107529929641099463427581691010883024461832441049063063866897665061021114882543886724541170124963667689997224445354661028088182603637544897190152660771773105849454532834905038010545116857066852066991984932466362605185042228976577227231040726881557190663191198577646752305472764451794225325311654319474170262854350172431034642938680736669949925103668834582982789691325198155408560311540939273112029181985748947025267438462651057854083737059147779185448408489178821531442431080283356895143304915685049237035753081784933660721853492688363650249943987210089991383787611901739249757545665675262924357104848402994621572727716216069925301811121875603158161518469309052220276570738533873998591958179425601258407350595516122860715087976231754360569121154620231934869038218722837855250034668308168361601749732155800727135958714335096398990552089149222424083376753039984744064869357387232565098648793051773499231785062858600034308610295870172166560589350183328370868283306794182636877238350765948855628614329428435379862989577528428110557328560938090924879079379837534432733183209333325173741134854770144421198336837949074299243585796674463063418479625776225440566150776543957584325284411355771056873092967860348866396476740475224786450466319869029754721042408870855112375711441287679957275992403836502285756245288363765054648489754123508163585972706421707836866612051109656344724366589607631942646481660283997175811418621491240651150888506088352531004561405655196772956404152679016070693502161745426111968196578005483625199775675475470812212981570881216253586659859697487913601345014225541044168972173070928559764920027353267644366796734652858643002491884081900247646166512006042615024854797064778227552825981044777642405781184517747264734450698976004453594101021398221196985810882311147799526685385129409278286942064602208847038453102996832046670828646629111514990046950366159723748657387522696559285046032570960896292634753432855003154647807920517654280627699846105321081754644835837469829306945942156266074983790068069089076215107519716674313512506204143978977898215417501230358805091678816334096783478900162803016005771709108767591196269032939575170214968731653746730925392203244262232274377336937581774704658956895035622282022423856940101523463456777708207887402303779610288478140260031138385170649687011421362478457430279180432282438783441359626176294666751017043661048558092049856447412248026655201351409925252597812378335632516491881348435278046863059938642875589606395622822132151926102841371480497890850012460049254846078840948339372052049700617953555714726365485940004791794619022005306386868174822467014763440593311932828191637494084219529766254740535376005988260084622720508301395190602521468792874631439058869572281216324598270448836162634274809678319715408666727596434739706139196791972018247298834388561514674054646708743091793317265878463525502391822209454870374906540753380013350168527722693557437966971915089446612684016105978775377887105828201980559112750298245383306579749394189036532924791259234644973411818526094669235735726625697095899915341792533126511516306565915990219354949853510675634797253415783197559254774976599494799373062362621352254776545306042661423791122757064654561535777621457661663291303131935031967014003217752276555774460032565021397951832248722068598495124795057714800762874138195749131923142639259954778055553231140605537409636099747382753153952088414258406434676097292891851227665062885722745840087985924560831941769404585505473392586261009200101172787872178587958728806610745802667665108940898779466666357736878015225016318102664061768830343630463155383786670864523391896464588521269360967036074547670402126466503831082104067468168622944960426170476275603619392206028897442274116352629572777533332782984544530326390449491279752809173953862884848334850045702175579386919981643675048802071239404388973804914362001409547487269813093545850142147071685471806480542302531732623829350496503845392262952267632472945306836070856143321513969155161610615212555258443353924103175357414052839408457983712282530130557913675890402113537712557907576429834140771104884968861029579452166581638728741243301588236181085595709701363208437307022393730414963680024798114542157860159075637740629315625017909348602083978193290012814791585347635604141302511958380464653562555449297061919035234310680973920983074712593535871854921961133213284763127258507244731050191143297741045115284523235723161349173056720691024150215817449093471110849988392561099302237651686835868548865483195460537534160063659942714934670758982989671337399086873811129701833634438326743364561117923186443771790697956028020061588299435875106296824813509556701689546781622991865664824417194881758188621154690167047899062367850816749857808064470863018864665646520785244482596617972263199253970741736625700217634217752993536708951277114512089406507055239233740900655260764418275040982657171671859000642077370969362759342425524874280970661068059441721055239574816136603622263343143618171249145576060372602562137587094032970804068736533354808498139486971999239844204567061177791971583982002928836801026500687191881610954646068607506453553472418274915249568556932460159649658370212249773526514398232191649726356593400966340587760138990953910918180091420476208555803549582007715446233208652545883196252782616160690491817436179825482445951421272599583900441636836338959482301280776389819177557282552032978185774322549330377209344231158667750061018044687692767433606533863264626683758442464268133634195638601088155703880082360875832055820651858320446257574820825965028286865160691661300775216462784250254850052925816027067596468212676935584060782488904325921879106847464485989523442064454101418790629885276695944241389501762809672331475683806698172820333372277542601322180774097878939404289427324577805281650839342666701304904479749563379419961688459031792392009431523882245715283944877250587830832646577972819201470286873095641433288254957355241254836997430030890515717037331419418639971080433958002559441205133718383934686069743642489454588553142236157175886994053077232081013340393251796385665548553158182498562071008672530835308927012901100005218839361533701852532104849255158341792058717745589312588071121748845608613385631281462437147969429983603383574807912701232676959180013404309220296980053120625997935299556299297973068104984840005857169966176271328577058152093789691116367655855665490979690828298486965390621991372675803844508126093610798482918695002139096488502035957613990623671566387516101367653418363371228594503419837659910485910945745343193293739010087876100403034073466437552526325273393586716094823057131921027918521757383965550281155764695262274404455730394019989065328951907839593619608222703006432155490387508595475154310377340391780678560590078201287233017421331048121642891513602902646161335909972205386472659119224469928409304970455497216046745254086458692171500117202306993955195665451625664107760284808111880360197424195885001505903289311730833282292383283113244071622478244230559179486114025122961439944817354470767225960638780830650029370414925865921431881943359457199918876370332274478021622785503028879829552545584653665251866670138700340567735379481440675643631754894546874356426750161108118172537739952070407308689512908089333253253419059632726543729784742044669026618042320883424440056600448335729502034643371529138660670290328709590467502342100060153886210669436947837547336630740415700033049658751161945882144986973774660761215800355402786170769751603892945940816557885207603819229304139642524240200883678873119705420319005376855746728321515163820929535228784241736435573366306053189648196513719796735789010727937547121950961446247022524641301192237755755679720456116175052427680487348282493797363118490626168295313824561845568059075430602646414450678260805276007954588640519836413647102854026781519121468740096765500407006689022056990411715326644246724201376369111789059141951871735231891048661989276246928187972851632057725812389204435584840209424324896856829809920269514568310738415883083895583963889666778657453043681930059359996600603777243071957379313465365020473485906904081813021142562987055261430018057512859163570431061190862472584218246128158438994729812467832391615276804381587971760173619852196943180375778406119010465974711205933883302495513920344885518160255166945302586268495390428041299608306209257127832303655526139435805223918317254950254156752967356646757322989368349456175946034307904107727618611786009960934832020435941463819107423570266644728417219649706487641746232618798547178486651270306405046743796580947827739372929827287696139318690763509194488674733503879777927091899099108611062699997208278539832873641599003859726444011612329178852009636682024509192686084673854488200268451949146142137098774252211140372065498360107531279654212944671566512916501465745193175157015301114167181956231776497359450232599752506333629028426347696080754907908233873254811889815900672403158827592049692715166482396242207416524198643435228030773202930176880312057752927576752333749009196679728569038396926005855229444379726283642257751087680903834478021393904032071728251258462313930598566111736628179595798097807766429712119137984885180371072589885517250479881720087804651421413954144134901313638846004458274871598153103481794821282646971463815014661808981730885084636762715751223844920058042643501111694466699514633403095075219560657720135023386197232842467447870145968923048251627776516878196139552261499130849703786339197674528776948410230702385566885152460686739836058057292407648760164193121947548126382495427181285451400065384140560257044909925186068972026268024114440797863259825099193483801998242414666247817093075253245237721212407769592696047890266754091194727891522207849599074406623930948351800818360510083609642049529323942369625826804576465921662715404108849992322105610695885231861645331500060567100223681902068446317786797447318472132168449402707543762836902834244638701824436097377389934409227192609803495255851870246998900110058081652298144135756685179950429349319881655042574132244798479661175489477812550715848483354655918001168995213040435960678238791385803498321992599800756748747486206566289753941119101474713464251490734856821351861542122623023835309484097080076470428918480640473983350030162584475778959826384587410491667077161183799887997932249633140924852202182568521038922387064428065074203062158116053414504342349466043067795508961813976026398922160898783142116759905177927392021421245142514175592607324083137659099356509330415862992420747634470639871585286680789233113365729504454269415163972774130184543970260507908739925491557996404398504939757641634918324952638462442779200494771125876467252470042475227534172538438839523821010750612567972134685965888842457565081774273305535480217763524892996566951054788465297684366412761513296301480395168732503224171450843438295547033487168888690068554693811238526168786742997315059607217310267104278978312473077512525456003632032962272554068140151295075904088713875899237281505582186196140601864304919247421127254813405315061478503599813806811351462318152067233709930835530176835823266219121240273928140672490775643067249524053582714794844512084408347565072499131625115059581116724992689157480835780819801821276551023583762684496700451188455435409284931027106391078897152316193482363692812101553126456482888904691060772062619406883204036721409481270077480430639053615318344593554371598755472518223228739061334746791866367148221929716852651246749847808540652083061534455352971314302929489031120157355257700089163937679900643081570117206678436745356723534242331277203800797962144184722360700977924914356358199480432076321915296626504874643378821622957828592583688711246153875537759268254024876326505926877181186489439548019841061591566641453908696107645863421871932803564643288394258184096555932410713156107922294667496041999477479420383230805659216361547838919927461543573231678927726666324017533423786716913526697674887859199525101770349324168839472475923721336228344179801806519507103154903835004162561301255695899176947957515231130332838977327542753008775826188237209696852186805602420101177870177998812114125794040306630006878647825852716239119085409759979050824889139256708121592457030169441835818617073793691914541467759342840586975013839723652635439380814911876068557841449567884632971504416505974314293114036634750334561660379817115691262598248815265643477382036403928921371450406635732598717311095371794103210301179643555093212328643575172742317909319185290826089322451137203352765140076107790688778211635265800535681543696902399686869398330197189988991867157214767607807156905365646062827110099214786097607394715539164169128403451496032853740120965576425059840857269192027312201661104399211758287269364287588945871187004942093902734465231200689667954517909788626260116058291596046541640413392426357154852570041926800369103241693251077332453237235592682484664726467377238194717399196722913625972850693512016253607880544238518222222397545875655438606122009577638342867941992033729471031204680746095729466046845939439823213672565374631736742690212932670201281856352482002878590700820052566676818988308882593572165137961355317270432137550815320827510727589212525575348575033334760264059794635730822018214854526128479885247563601585125824962085320096852718053970749238990840012540148007020633821511148801998745377698439091283514906975149508032609164540578630822261666488558787550131222796051555725247213751609835605632246716749957490914502466519574503941783689498288460369725680178128915038249461885049275872186476886809122578520691421571317017064655726852343006596420302289578694224119703216098532291879759277743887537596876320225247353765750920877862712743029324772515462604743006147895138863719148832944599806531408869285644277295797627603573973734734026305326363982681452061726017039042826408350098169312529902705985986840347035530575708004437325279559204955844509521473851900517187400621219257913433008816190701855483518617217562138362624715178625351391816363838545925571395971369615351481788363513764511566397268338781069764452053178982480152100696220071870104315174756244752697357984848860645402651753682149497071528053338045174660917438157052765020509507409697145793462660981701911596849407362231594822801479095104214168501022134936386092793404490081834210163197264187930790461010370224564265235963918203553773388773946758948176293314520244399414580245850825988518090595275883502191421200863971401266727556607914619423426954346255311326490004039879726796519529415282707841652202428429345559520740012060876253712747388475595849174714587709825639556949736871404848371432434103622662153226846420359955362981958405840091997201494018533134666205157785043621721861682756482056646413549497596961983437852243732427194789224456604518179862877463455239382626812656720833809248904181626306283732689711910274067528391749727551673710646317363869035434988083170134779777034977336949129480214098499616525638031444829545458635787077364619322731653390143881259839951531841867911573700961735998487247435457320692947284515988582985769056997956625285123828503081693321678226184938554219429077746772452127695450155247418927372768221833956451097095060541865265815150074759918323944731952118844895433833343580361817589693372543749690699244615639009744694039709279880237603550148171074684821912601651933220220521921705844121642779154580717955300312476573851340179071466782362844486196044645590194790788191630915283781254895264441022910370673291655232146717778781468770143854209978231455903329762031565288716268949166783848499072658176729270136319745941936218438920241565503573742351592444828933104540159234655347962767354063703839979568471934759220103758013571356345724285118400014560296909952681789774803803673655632245581554419851521693032453464308327025171435480163548314626092365972871853767683057315702503022234412675864310277875912337194620417327589437311513594169325889867561254901022763567666066846930244648206067968479491494634126230806606085784080365784054152723224612498503236671142985125923952395194772162172565817942613012815374783633797486916689403922617438232581154947874662211316286202284215465439118373072540173536847594833634013067372728593912634674826539233229537776473880909996087674534628991660642036851722790465557577332323472722409216801214659382515337307364990435729654512019632063886857600961742588834330286501354208540836028749281171363356030426999651464272447835550172851403490436664618992190820258201707869287416955705930640268041036892022543042790444199762779306612033278392507932128386096205645235982005547780108103758069206729057892756407890754849512251949201497194601693509104398444491469661707042200159099218205043436560897208918624031023326604303361897132335094841579828728449997875614961457705035606329129083070589833314311486603087109784988785690409530288654498221666010249488321957430924797557843743768188754674505448952940154734111274245833892644984671744269637321355988759302647113191133131763135141592969753741044828334647298924814747119603384282923001874090554851830361285542390214491306110971683867438931934300212748378604860941870094515874252535925162509570640213717194824278878383377527111363141319319769925764432391188280269058247048890613697532012653539115705256553672895741898482336003050104464808682443171721334432025554971950969862151068768055255014467397189919039566538488356926748437164024638697543670272581059931094901530176667721204428911932767112321401622621440939512177755109059396443568405778879356723615615165133982393266469489797224379234044517839567598433680974068376333707630678706351554216671374814435527566813563229174297352105673977101232247095740710938140795255250482755905275563803706372482708287458383856183104145399828059917670227607825909067700771395770602349295180112949810227582292956285443726749052270177344695770407224055465949858471372042662381907848393393548728072134575283416761717561158845848998131016755685077234716696234775716738422002831274004158483533810493385901759438479869409691824030217635539047248571914454090748955333487756911399628717820590630067444597727906031060975067587119360996533095945289036385741094876591297408312471543201738262967331065991887205067838120419239577671792241843537653409621254608218074999797977192728627398390448426671515020949149265396602882670139535153179927507789301904028521774938395255710809121081000405326544428420161346920520802845550961436648348806679699271205768797671887455479346236336702269784782466496858151158039970952702280479471514046013850555102745295451387943155014735533282057788087350638670511094304371331822512089451169131409024551859789399582351598922063441298743974710419311083828008855725121943319293899517302058391012988517824489521794968658581016215402295720147196212859300846394586946372342846488168277983562644354873148588067736574517272183327168794523108453785100147002907213048160912261110848952225049089320319685507039395762046823811359760739825933211467938698651808576875820887522496720876950209962096702795709745575891958072222167474836879393188455798184466247703819132232424681968039960388370810258537799493618214334350904703346692742744800992568762612903427893629994518414218199996914586199799032935043689016249180547605944104489282143257155876608475384379817469400712134917206488693088230295382730806765765157041717213189345852056175613777845245980555511678263954127906495744513497215979535804703498075717729123121375220872380171358762618005734068100184488003596515664226627654193249204468691935716618164474964701952869449173940593175102166729560000983948216033771782217954767834729318531249748106897799441265961745564761543347351351861431156370711878587871285931780014961438950187587556819764644749287769448512131146891537357864001774169047161127234864701256542063887929361099109993217210662312191150698932651244979518906522717625630753986759677681367961468139912246478876809802765166008422960199313199372827061257294741457699669447739324918245621772235915272816516532963629867189673921732835087993708441888657935261643950108574497171421011904415926357466655570817317673616543537385171920597593650822047861916790633315522942127145896350032451658981847958073391496589095076545515720466943494092998017746794625307283365902675897431862091044709448844683139824038043938334545400191549987527332993415984169835236816263353051700148413706243114818788044855284186655577569944540180535609084048268510940346218055449860652435132513167153706545455118641340169859166603820224884557352298206999038381532444626177864494703633212178335341587250287166624376731583459017224417312013517095418755011919682330008067968541724532607753906664633838435230258736109277374084855786047702874977057922500336931865154145065580536178679759982276326897120768988001585393305453207267849393669842154151102827004939773490614921777697375580452681836504708895031368703645146611313001903237923110562193241821491384253223388735610173909105882229484732914299043614320006306638136873323951383381819264710111902362765193180560337631893290562119847984709039607141802669020566686653884526326732951014251022971110032762138532134277248865904952436705755368797594244109135566013385317340802652321499421575643581241250321382027720016998505528493290132495451257018825203603904125314711690344661753364221104973473233020372329175485170937691196128840395984820631934695080949137173101426186214849299543611856925540705032895187380387563848560961772427896938747625781469319647380172372776396629922040151751722948643122585317180267319093605767833087400441090564426755836916044130751681349787340926084219586763669468463772003711514008500779373463110048572520971579011841893620143525994630616622700372890750225952551646061029142968660880279458171291706793311141475820348284515552501749369350660910770572286237400114236359934821020348277234292864583939775405712059086314337494315048924896946106391300488024300614483989710871629484284214980384397643845588616685869738533545157781096263018621952890217675919298507230880117806073213571352336901690634759112155255028769880665579525029814828479209040951311551530510759641122734448816681085298550898212595283157875141845002950595086145122507933043101055723125861510795203072753251935993704359878601098474351344052134967435081812894618020217785581656979430463612137561911965296009203962232065118749708749472761512946498372705772643386911486641056439993832618417894000086410353390423927141275952775982385958373231994810215998640698151242300877138004584439351351248987016421077496603258650370886229785227986249318445087599328567553579353988340147862127121282756435895850456192522226472173135423135481718669721589967441275930441346506189526596644932932027962978360728143839865116255608122914498432201573020833814458492972630312611984373963275970744905091891352926608802381116921833882987359585728364940138368824359662247516281860164114172970600691355985070609773738779051130873096576093295880789884440238962613092731359381664901666875913581263464963708557560492561068503915050352848135518960070369217107076275105155016545559765154148281877374560549545900450525322455822127507939045836637955222867925786932679508838332590252553822513747399063776499994345649272255983472664032257438303065287603285057393755930106908498022723507961834113490896266680416383606672763943191495368898168642842501696578836456666080924411646214158623954309103016908023699420844191280742907274673827206581993262170159704067827024033334145455068329827104289263715546541749997954579034928181977569613007093928297474233173724011387138538504716024272192585330486590954781476389528032038206848387397515317698929857470589941550596133229026931183838643940824809942544668145666652367656149517117087793486330833952469767637931739100645275617236869711398462679339967317772457500780439843987993293133053740439940380699320936727792279882223607922625516303221259288996835075118441882848675681342077975771060485676494487623846045541600997459445538423277483886192378096751732184672670924593907196560536579140968447757412721087528943000602420927190898626127015120735231387397956639112350963114493160960149459505340277524603922343701394091618666668821928843225510003785726812372889537016590708445586217499141541168194166563856120904337686207923789338050892721107221142865526489390959311572915623707442437306820624315430555618410351179743752728408473416770389718009189746662748594138683406067485294422774860391957482932013150849444782741371988833464995541265433161798613754804389930955404556399417078276116147436287386186055562589093489848888288084104402744094198296166921352756383300955858335440856363754833379117674489391444135600844234599708982290007197125678688540814062794733868530441459672448214900124324963672163502821563638310623148314415016116930882361009789043871124880548429504692549984622768115477895122408594886494791927854147685438439718033500506068649931806170130564745284184031875321892043226745811593816673627236561165302090894333438144961294268833474710526453452425087981769388813699928335118255183555257446688233886753568667287152445900378532115622301749368335520649996974599134601348068774330407847115615520243668185203703919199413945795131541006774750792162693671589823845058706746723341351500411589948796815436519959009108450045201935054348418854435912991773837968986301032840039380951902116564696359892219006449045431963511506350663003270676345256519500364859769674385130613140125167129144856610559164336789684948757793776503467890582363270042538987719454083212349067946099870200046903198796644098384424331464949936531750503942703356810731418713438692143264133055761434852887252661538368323405953610762905533535230455580554350642490050293449642959923754234377140251222556190748219483846397244160332030144793265751881299196969160919277883607510818168603193188177882812641700060056020552824277226396272741238922459834492897602480698317327131623001462762225841475546768801128300276607161420848505096792126404188811105483457799137002733278727724054639661877553032909710703111834314705247102203045130180657453950022767171283952785730443423393409599906302811889320942316534256523501257418977665019392309906812153216195174144702095490249771720692217020014590447542084084446338309712995635587981014509305120997039186745079232605637147253092534409841559184842078326221548029314048792862272055729804852456451168333996862473366552546947175416749504653225507262809686901934568018673986959293439058693063707700895919853314939434264844911950525699330704138663536832278485732050596508773640706773535376927676454104665864940211632938320724022847470509588138845553608638863161248128024759322770150644160331603681845054267802504672388265802846085413091847879425209809017604180923438436912281477336133588571453605452363032963205863757146865411007420958150776114968704382236422172055287199768160520667315283590311159988785993345500451653528405703934754938080922214459389637142311868815674809052298027616536773096126559866114330467415031088488124367751840943948622467315217606371686302523975828102751386826568626464488763305631566345032912679095360562091117882639350588831450912989421975264625481551585431079844838020321107616184750299041208121979018101639482341050944969925124767209585081985525305836547323027752550262113270399381407612181879562393771723379391132944221419758893596021009403245751415095660439604152255201659769198137885209486898951574475942219872103226153621667464796357518609166886930373798900315182291660874149901802617011471320198489824041285961093773608113182190570462713715183520651658983476407117439138274985162299396604801479279798891651508625412787315987622330965972073269032625823235057662729958663323806952094777903114497383379920991780943563640962430132816934467091844819612216349232225530677875453108172236293857053293598462427808552702923395076097666501837991006473991123724095482611647479065182636353713634618726871907293811388860390382401452748068497397312667302577961846108969710431320296052201642298239151908454918270132428681617224684802098538560042485648735415333970777681406773493817610973264573024634315841118395395922226176501648251359291268798749015091782754513298659232977948510700260829913753328946722424389383256802830604087483047639070878510080926760481070959714540239188768796040329268984559762111624785465858491459728421319346579205391008830595013844578150966840043165244217378098219604272288682524502817063370425759268859616574738534943901608242837172473569757988002895991447411467397212131088410840082816865159776103629355093385680880418451659180430066932861229653453480264866582875337930736620886307076210924195788834418877379415852430064331173085202397622641345768081691981940052986863228869817296163911363301064984670521892802689459072925801480985211364573074429632588553830157141364146236379613519131851210130290067455039525069964203294591866157484494981569073919585774706778528220706537635253611625331133839230568026141602545950092041707362313558922897658177491441751849064935887933490093390527447909953601489472756218582743082183089784016128742102840174400316091604229125032902798168406303045387557507382563593921964083705321408657613549659600354081972308329303050322821352140420321033901792650076282101044997646666478248153856176946821885422852180967020641026296574498759470603562111002715904274939024299071311041269798139129555850471179757263898341646076930843370066821837947772975260176290767818813628541097339587154239942561394463395048986256221024125535348439369316687876964460521285143442998069412532964916318729373896439132383577665849145701056858143413642703205560192849792948684551110645719986083322226689520320631493783798204405279083800782745665573835626873979447839191256788777137204361748381954343948178942396413771966420556028346352825693388584461701084956880163777246357301330339411474902589409870387977978068559949736230040585895555430460024992312900582682948214530837378476720069450688405930159776080139385950927936563748294371392780445081140935723834204407044029598170886132873557361388829542976671179231110599019348219538999816117276822060312798572402689239401254874023099957883876765336010171832544048502641536609590320758343556529718077433415821682036274739345768229754987818860354944992283404025066447986927930049744690900283763332821936492718536613003562860731695817419862915153966200544031133393579288319302177150064723435773161278486279198608277883286046088592033663114639913824598273747086314802758396338277898627320403014668014834423318098333579002416654164119302778521422682087437734792008590292557232970829104548207535315219287080698351332410925052478731975088794843092154547148673735618805339709315309573692380009252139212152761008983595974585039611879905903610135528438965707724601717740142289819116567877731792548417224562620928161874623832584894337062583395675672467897087579529424221108288874442421027543108263278443696466334817272799613181689170752274227017571408136849877811468322550042023528453352388691937446297754835711441404863878275140502785578059950457949657630123076883797051478685839889996503084644821371681766339981716672727220333924300933117442495783780915881745849691322512764673914878503846635139857462149179782914659124397999443286240732711331709822713535837197909612832507769356237184678168643236202775303271430337746261774965446797825955525804447330337675169396112541944346301402092225603217443581256806196560344692979742631186336213389178066901625610378995488698988357249571078473278032813991340279130410122791150551869312293132498608600025450095762798218733678190030505522637097340998789844325539135967586387404973027368797841324118039753034584973581100176241431654002430295217959299547808888797737253643052405304544544606940388036610470755927817468795620198749058609816104427338195247695720870227711326006109189300438756275898993541973601232301139400221792468417197925345682506376486377935810775509608723707872148051018483823595630298795499357719502849145907267231942898740284333950399470409033772211201776189453815787389460405904267827378157161523901519140855885474348002338006756711386498197321606210046530894591156247250063387001597186678903478193418033478748524731531681588836475344380125231813188271704077631027736509898136282888763480086634473136382740796989444458424277344736066992866184863884170272258567756616852901988236008846062866867046968814117429082918617936782950948052005450086693713084838940881347377404292380287709129884236290971149043420284660568976553848759441009627490882295746524638042217103039775536143949376687041390903802696170836298185991817294875370171141385714935665225263400995700639765289426569056558892543598769998852498165042665637719341627383697874751476979956129202311857463364066356843230911585754895662823483550497616271592015141388873731475057267433904805266443699639500976427835592945256298684953945174171596984173579670292207874855332882444611822550983152626183670934262776245873613021129215407773497795737551839968947556644011605404766395940546639080390288605528284476115706702816337582004254881045652841440700371447196168587470100026370767777723804082341461086746269854633523946681774695260364057175553337451879237123100152909863948327112395291268367892581791047080052921624069129450632792871873450499282310452927909844777777700728402816008132433378214552289874308229124586226964016489304857337870649124121749548263701851262816619143830478323801230812839858508835362997179556014613761514514023734194105364814884560806401818255112863250723985216956637511947143379958151641073844136778733029684077220209918377055205731375159808920130279201570591995803217701218847132813341191261676351871108741492476593338123333836158636057173602351037501409334948474414496887340104449597541484191517268755604690779002326101561001225957689420979525357516199017273632143789420693742747648572637396853788975893558283986481430924965960559460921970945017301412160502415572679081291656784247441580747345446203092328891481448703661306102401542643520846769848278084931421594564857860975522876384725494842336162153363584689088092316281385933866939145436856074063092587705845216777889857164845332145110053182502739061116643180447927671602033128811494717016606168619686312986728527149167529176140839012266356438047543774090830882191603949604066877207679680558222204896345243283272721991835692091344926337768107068806074571405794895033079875489046753649225354654291081488790871932640676991276698145147678998421363930750274581663684884374660325203426182327790556218842335895427786324075371768577248024056764602428013068382164974238218898994253252922978175250731237969941251305196329468828656195638244019611972378187426429674276950040636759857391503891715059128670443058965095809552257671622030222485332752497598426637945580789902350560447664639234236821271652899814008199405310197494500046678110838763163010917290079769701892443623711116999717944920346130641096375964098743590113381117808805898965369438859227886366026073210787200697997334536179439259344941438680159105229227285456503986638211222761901715072519586539153640263395727750081028049560350126769902581048764830687720498473847962330255329569772373980618771498421174528489460636614372129511883983912781019979913306821254421831072226597703155644688536830407839736939143391654554340370206356519934928741617109552311599523138718421182276494178686118410307570314304025959292171180600077173558703927381349945158255610068985150327272337241635465553086108972189047179275357564762023706600257131141834257120311753331998382340905123045733324238012345259946753316155838673815977941267583690832392078527218925119920873358105478329891611573704818299202766076384710210579599613648108361699037030474957364459839817962114191087396882417233502192553262537394047629680394372228902861200274347011150296543560326085310143593052191458060711028346382467029249373324020666156244527780184422521773739235453480051127813601311651937984846921021518558416648106052662112062972023842537491300773184827293133712868586183830424125371833810662104804356281777396736137080382194111402800399472196324859187923625277249405949522906564373064211876230038337980776935215587882914530482932632999444292166403990398710278558811267921010762702976410147496419003180824752173111052005376821105350784035841529140044899017177197323391419194974971647863304812107716792514368846871897184772135709017558631376814475036499867676411990517960342321201151206716207643821215088119892782774524505225231402495221903806447996757055935000058226731021706969396697242390284008667919231525213421346965159996754170323411465787678511817168857352823731660961788957938127716372247583336839515283328745442113991291714215982676785712073467265070040813016761731696330620551174774977160935527598598876182606319154373861849311580216219357648960050768227604399094043592412787556008346759302305585113911841989324696926283926414140927976229813976711041933375832234231612954371607433924666997389202258379668971316437446302314986997419860339545584055977311212220124149656950944028095239081976999427306254160962606179003657782081465928841077923501368452946512707391272553748985084960891911897735338503569669713225349860924922379821114989400654369991198143842209588828506025334125745475142889812352578384760104455688805871598600437481337222100566748359210495905420050303761188622758897388809226373290735365871490997620167238364352354077817596960152317163100589277708297482175472467595956960811067089119472844161438303796447587868480156094357525649590158804198113961725691086045104779002259365606038229882650506224185062317423222605623940416883585139822045521501153911770071606496207230958756590101870665928826496833224597774906069524862214620628418933379400596119683468134013319709623402236563090345401265460646786355557515727439472478802256188144848369939011134064202529054165882762372975009110991380917923229553592578912180424577566343555766929256031428978075342834757030272699822119977953366236581614033563078674314010078260949999780299323751101044561031172272558884404750381717056074489140525306762203856712704082820957959104171005839009770372348429065023487513796975792054569454275769700530875096576566547350559923143874250163195924406050074668862380505226620759881496658532302836057402806927575578155878837146666246029876860440229777488825897654128399201703924760625150412957591721480557145922073085172473416831363883869079667980146668459271242711406932754026145679088035208590268968365113403080385382135460340300382794164078899946196251839102347461558866071004834210676491746828873990366064907860096971975976054663259159030429821922203287407721556152035688914755737933979493601911169131460271651580177453781413844493935079684181422631525908900639162895220718725543622271919543983372483247660009232029360292749148296420399174825532577745805215882260191684907670216974649375268393263814758456407907928473150794561729115590594669765762238395007444421143711067250821318709936285471540357152742555486059341238534922618728445828596538934830041903026662716472135141591198871682966609640002357052564290735338997473494469602086934526553247995722557526273138872644607055649391750579354838332341973910684143270049718212292292822990669656636758685714272506913409522449997065572995412242046559646433962623805214488186257165343122054009677749419100628193187024252784488041144373395573643309051115793979132654953070673985990323586983383505902707110321854148047753020651227823099326995671117483674953008205214114418384017867355157408973343142823728302799596017201100902314422214458416551209844988979828136089938804451701980761665939509773840054233894465057153715164380805200545042378686728067848093756129201282476558827231136978007706064882456547702036159671603321240311045925640510503794615203031001335959098309727426555579920119128052469129707447703943817811116905308272980881403198629560080975956706248758273402719755842587762885006913857300092009778198331051948519308039861547064393858242087202831009722213563475169939397626224311142290126246418324255096634336188773824365034774382461962069549528971452596725774665876989151478246054682342472831491209749970143540275532654535061799400920704095574027307634274567762640072875752553001591246084076328457156195823866358152936191646093944348144513086479118331746854430166517698020631655814921956118153265559342301309544207532003815583914495485042433553247588143088186974398964505447209706243699150714097781343007847381731222314383705682511783904602839721677856566633812791628193639738917376674437623869121710421953691724731749537758334951794451074324016815359358498681310181258610112768707088394843609826782055903644446023024090395019188914443493935024433109846920922306080503783294994864191048158351771569864340655172860325159844131901077643541361161124404099002084372032209407594379953838728846167078356830674798485724194387082614430742140885403241025151411126700924614863158283606643682733878107778445125932957211328342307898840501359930973820026943143230673721667525263992825964803672507173315183574878834290790043078315149288933368550865396984755526982514627728264252348526430721193616549858094317376428096052624116045421415618252717617786647296087434579200836288389605493969087342511607395478803831927596388372833940615510128161272389750959226927279840797130198479305317696140051171769252278782407857989580357266877786609377684655014846517906921408998560158162921165203930459622050416699710582247415428107813547652323230539043088548001672076851416602026929565643770694995199720986414628190039142736611429727361577576778315554895564085099178797171081176213636089759887427748398120896930391850605721472993415872437317235021662430678275163069049638460657320542160757368036580764507762421910396519009113845506034795913929111736171788658698819467066700351519235047133765987974341039466595718454137503418444096184473713113289097053627281907627194528022039916493952526220130135307927939372705402297229102668170506612620776958386856501104511163960135984078748125491428236947120955202519614202737423799370362187030341674370478149511501782976398018957283326392769662315000565044392014604361571778644205227499842842017195793287880039119830508056909548705515745255742783882261350673336924951830362434882857317360914866622418756076694447511634757374482184125613230196312884178557917389712607898873362369463688828258395213158530233005966369350434834657505847506363384804723689045295564551147233512901808487420998061618019032782335266232662925244023602197663217487577745834477027254807411726176910537754818456113946190093466672821859343972521519896944328442087665186695108406776957870577863281912172825945180959739636381715783478285420732430988394600665496650781268250240019599091711243762021146741037677851422809332616408423587602514490856478645633817765071110229166125026663994047960439783089206281761264024728531588708853903685460368668183251198681302155550525492685100780647063156748311919346694188575968469422473104862167249988172161929472704414963329020819068948998176227886180890791490542487064993654547488233236099977586313205297521993732543263445754563639229886438907359793518084214010640002535289472937631473428353666009033514703490820898753272522955190173971698222574233357240643345887424467344341872601338685450403223405065818711061390416087833929857706575338941378298624716817136415950883845003625640940082492536779894277143738838431819904848100710273078753115925849555245451881221455977068042821867901939409492204501376263680549733061954886158744804139404346481426038999360085368302867100812658953639251807999690221533226920433367450122391129037410747771673805664192261416113209797325244133889968334514857473523053445325356049730619061304078022813516456209418926944743514381025117238772930365144905791960126919117108015792253195788948581129475140166401500859796483970465633072263777257480526227500834949214111892955052311195795345715149642517626599896027393674962409662175349716577488492133341924664431558942466116131073176025358668271464607793563036867110921595012267234494024802026252914705003584063648257531938683794858313353718239723200345863681113574356954832610043360083816392121232949359004409583484938241693855024703315569922358614631126978481675840430025949889935680073082949176906645313543775171923298174500720919763064872081430391777937404474279395864754487195237758310557803425787705264919466825890744144395599090085047679031875729670529426530753558498721900076238116577330080176096230030825025772803844563562630422416551513046155279239856855187191350333851621614418440688930593226057945035970713184919924637617309018596680373846463712948537155498555426508623974842189957047114543649734236426572079637856343802998050919085519540277052653792820238563672473823172710183943917639692671017609814654247755260550687746170124897660518453080939885981665791610900407559104086788937188184497613991394847093798652830175887116054443267410217937415912936300527385683291415973324560866869911551466496189997919641608278096444957205914567437358100717069405672503491793455110044390840250551809718809685299253809275767385705041105056598515561774558218393802483059722590852735058909330236805280258894533412066984101860186597019408435399261739217779498422072834342648866022838387827942298829838198289802912225945608918211716248734626412102867933652116312696541054862014057388179227476469624775056233518103253724865193444155237643676400127228836464553330370367179178534869442600259641267195549211837507712748532642137135736388369196959417687102784421543242450539288451516686409161516311176991935703154913529975214063771221133480363210009201998677946546956371134214515502739421677994072562259343887711479359239329969045674814102886399190732007128711251500196296023865068345760964334985275084449333866303802731188172234842931120101054760118871716029092944743852342150968344909014186013793471469234165620746015195654441999074226019168864426931646329422382059849116628279648948047936522798497231611127500999194295452570902523354924730635675280269827596205162247528914048483344152282305404752541130015245551634972597014482221729514863497286733590781884783141366665556086228083627219277844263409029764356599352198208696849815000055682422979219663376677334399417492553839429131161978698598731108041810839111826971031671100563150734781544751651757190293599346344876670749393025630141314594310105313944576216814084185582090306288657370859800101063912459401945379633510217272073506312870692199659225681593379793382541516545566606585902813034968956757153181081891490003760063533498145338222839264788154933612723281014608407884022222399138662301369380987136438161172516201109710957784272337527398753128043213728819695580949510155428940575624825034943603302307714238083801540859740909662352754707814622338790006130485191133111121212571205303958914172913947095961100890443466131028635593960301849945252960517058185022822535094465354385454205354160105437290116425160282071493103991854885595175200138606525352425036184741646997464346553648482722559716638042013363108607055809723872545828082007869054804546426720051522535501716099484689285874814250270761495278521639494130897026926370174066973926691644504848840800819252822710606145309949607330405448756672241881786215015188829522084948387166089852513933085379513175891011110680807172756123868576226973001025188812718049269299305197659457777155083227036979259836944699421494033072682358374368096951529064490147167903102766459802835955654185030071456738132091932070173080723732275942090733585474602100369284637149637087755610253707761404011340979884928488516005469024863977672220212182600846503286571302839920542053358373928001253181124231668153319180230348384375709756113629346903638916334841275949961672679643782456607290188088846183628103494667691366820432489924376193272396205492910499648297590561070900400078667936612645729836536815960244134586325259189433787095070305365171854104561272657826602863940151815457927372298975130360962287107684331820834598783301842108823597210572200115923145010417026668494222583101372647907005298423838226703186007990568267395995535868222744755502118605013306208635751445512811145895768748855829355974633682473007428827118000321035167170464862180312362229555897137768959261624637618078220941275044308637980355199214133740708585998780715683144253993930811613785048864357628440678659615702167880434221445948601984079941589405164061231673579593368377662428100641995448186349867632278650478360560095443861908491898577884139052083348488261610644868261142473151295909517936988560984817740106402266724591467216422598164210252633804588039799707590720528134972790327511618854483650699496729195824247665327236752526383145133285531146082388525576377597609177438549313439321120936326612308655992240587591288519705102971816212346306527780071554325338931671629316267249906093129590723798207332725448628804405934240697929116188054623563283666271249164670785909043504191802080997772487310754403271217927650822011193861333144860125663433326736524581604359130488793286317781684405206685646197364792630254493122842593468446717471507427573187251987544877563237963878757331536839700071241455823641664241463265623321564230385119343072673852905578023534116291666685311221212785433735926913756003340035280696779057464721528310068680975840858951062636348614611680979540818983280055369336183753605909622292328364954108394698532229427064168772142976766916109505410754428336522073924457044135677385114360007537128789939324548569745390402003020074896000893121133734728156265487984525274269567431647990820577071007952116597917215445413608401461588416191682428639907082882245120130250827784187365545773053450057851692198860479236024949634963405159074981204888963052043252718005408657461996140071110481177862862127312082105435870009100764108237099393818870515936943293587234532087436181392381400042289273347362423129132248361026211351568055476712238888335342425202339696628313969535256614885267077042005778098302317378881302170758869786741028494677235463411762098864113520665624546774081617915034331466839404315048494653514825803149617557089650509609798392590830724890833652446107046267156517201262820681149338062423453378006915467069008487491474715641903535564147187731820147447019543819593509866999861977364758191261538644099893380667645391772253035033641360874554265311732520453685533402495732011867707182186538158094379129485141004185835500156289838269543061560625617444830455283570664362248752607288103111159585401639473792070986701552560961012624346286409618773944716838989081283912051927884117873025623046401103078488669184424712376275107838353736372353810472390683025301262744955229527676909362463905650584116299627380494012401746476541578881303648066844830405591108447244689040822890925485911102284530912302214366586308690719901663720384531018863068304581308182829082015782038500012084543926490827995193190807419672832075470149418079171689441958952382068314440704991901230935132622867866197475216709839792851829578060255563793030888759127929770251476902855948010063017018927921550329505735854567398031206632856634378213637032831787703246847325843065148829743626141049077046992727617773638606913329548719983533561007814898151920518590514051342455414574022120617648256860752497197913407153184694441404261253984258774858749605459028771328278388000266108114816790530571745205458610440848322378664163274021736385887464115352290472986394492939793199709726782162067922860073969071333592717723527041268550739641359025257274756348542308553895895748409670979864810939599279806273396638461003757837439395306991209998983852835702503655730813661077657392035076581495876761383272771802599505357419850827181295919977116968164695138035890921524826954335196546277286622261679906547434854545491678496809306003620245694893106382355523019517801159808764830781608858766511001557099398230329857781551930423533820767645707346517774738237934872615509979259998049567370985259212957660889447264732709203318157343333014449294595739956369002020053871112355871450269911885055603561874835739672813840966194546804148178178930689937334299257879052952751792795191825795375659345696349739877408082525958915812752110115047412388621267322728471501432681586344435402567865416558333430257131661469510897085211002263197445760227258723282571796709267320285598922903361072340690853100560646903404628318000320335570323303537367570334892837112141553541595773075442991636955109699864442214925485979804130142746541286284286799392705269196459703168571007569674091718835971765471394264629913604576850741340075064064776451202711655750766492434371300014649565805315144481301556018557507039353472899263298671295431143583544001075766529250851098469295854233429415647822811755375623903346720998004766574977910223891368867388647987207023374132639173497196833504856928835178508902721661962643747803104674155976469141733762720815920410732953780316237941879964698243175741175924732917992901670907358278946069816342219480681815158762417553057709121204730391603131497179552331641205296004811937684737294461577313799640858325241132078718472842163185892885817925721207179370337086698897052615206237477573818486994460950721995137741626723178897169872796609721535472855856423742239329818397369450041188691146813601307412842953023422183745704711503461106899857925784956463595063125013196427158212635564092004605785250729181066677358652633217007091731159441416792770130097277704806569495742451087639084336155692641001742092385261641018908827415531288370548190678373391590210360146236252821840547501590119284082995028229405709015260632436864333388790412668176182172166561739570206953953340052671800216053923399368816047737243275656519956631565705761730443795235388784707463450244953617267174478283233763294525917641496088613479768620834013144707079616084300253273281486292502726808513418963330661789857626752439938202718797377042118822236542756057087709227447919105812713880600902590447360589073458691196022287922849231118009587949326305599352873902900196205588749276990734025294140246645096487851779296403932913889331781523077576982827123101086117320070263725153117816934166158515616371971743343480465139245584383643174244779180960382796325865564296176380562022968082589846589385854627827949250961632267649905933671889179565019109900877289306574965832699659387988599907366518267605468072516335662676791512375095831080627184621110162062488574944531694069002630646973237727179585917989537208545123169866894775820670571386837119222520943415097497803315151508488030107859061280601503349746993439162906912892703677970792087665245338682651783721088245018667272149609018388129878127617639761633314016542161370764571989888208341723516316756853260443503183647337556348665500275318932110008862372457949163886511546405922306027087752953096449034136610506654498755774313604083137618717171218236305188595639837724848560515072643083241854524271083740131084458779923425646907698079300198696309541547871465481894012542981082757504944759428196984429998388412087369026651384204744363469807331628266543295932282414464558576969271252004422130870886894563355678902432624338867270375275816555822024564922157808923377145395926553927997983446564074629098563971866121452416315871286766223743349913887900871466351655472576806574383425113032030138565850189654882051274171606979484590083478419075538386203155174863492340713458815800758954493464293665003435557066749274568488763173981061085738947159161769979502069751621919703310878629758360842181212378530154594911004745598870868713317679632131271428592214601911183934265729353353597690325370282137905391095330497892276481151810964789231948398107747042546984630175100023687947746362687500185715324577831482366062603762245354905939288471851724437556490387342174721787031257577554376830291091156389923245173347888965176429851743348145905227073052939393898456906630327811853127833635671330344637496753394798580845007119965316250192326875582056215659099148664618903666462170156192718556630406445580558170099510552805214068721196376836231620068137134274531421126076007921647960787325940075617467364227979024544144737795449216875507067832210843748262279770198757036529112591600907860002274739726786769621975674002457126330637180515379793648562566795749658887901352543865522671889148734755957137561962776581198340101396060412629260825138141509057193095143730044096170105976160669669719606907467393398403712068223101690194994055695773753170996473055460757053348590480107360649085649374819784612451811870100665328122434763034255335729910246305510078965297656759937051512268069777723474555368049431031907771553700752574328212300871918589336478135266415241291351091166991847967189997013691118069390728011070354617339260847271391519612242611101412431549360019685303888929153550200133611262713985611954185429651091140949327575216638410612396630152687828942264449068352899999329114840298056192056372425430441850725206563693326260184499333651335784926572895104152204164015016467440905630662011616499074254861931593359620800006266029167904964112782441646378842847156739451112770050479088834468099965562164243918827376097132374780161130677279586316846650581484967533854658239227823852189131007983491974016952781341954188967043126156003617746332007957868897253248581308497959774914730218113330804903825752037361807908381089557950042441621249297112570882639356734808535047888556749073831456586392696643016629856693104929949297772850700300215530814643546317563638769234903316412150547970967567763342722928628013110096743238762316960940151963442286313727435581175859028464228027302430538488953311608009037493055889703151521798712226928816827063556310307894675733380586051948452422921648666912776247698476315803164666673367465870321011700710639018440161431184262644740142211949187910469131860093641632911575472253560565523889655726732320705002900054674399200183448358997593300103561189390673315060245780896258993855801299609690538674219586864177295264152502663478376492901842389697711654606003974450115373750358945508719118493865927072618560418523408333958951002321019951199508372675235687886485192298228201749190268956819475812939339593473274660040744316605322377769593403427186120699635876453205126132892323734975454476673859290586582721791142295895398285775351950837552118492870889493027915330813737854161891156190871135327231504036848673460218331371995335370671798228377617495839134636713384250112082339392638513103639793006164039121893616746644106529477376637306073934491615148731745140883566762942576114185933166186374695362968520316721475710579668950411280142708406366614484526348187464704328315269371755707181622049906403962434714598079499114418308816858045140519325997918599539063289600098555775596527658198901538804387324758190883630250823682091965703933719520602482420916108909943053609466012889038362120753424905390873722300219764751220693110135119120668121651982344508009662725729751014452522311387879501480302848012409900884735843782076059343086824339475427880585699596319462050187409638795066474281515026838687193612381688943821772041715917791786782243672513094035164095783008036187155969666585342709712302885623933247082152328780146891452131732282917469193058807684212425886513873925679811863742114784532022495274577801565420097210407066154755442547302276947543006203065185261791147666719026075342095272367331754971348575698574632911832717146013471481805252591851484893622843511870207839860110647514870288556539928179503057162612954097282886045128187914389520390263300930220547775313500179436482230701985679861590489111883980425871365948356524939386046865861760673848837717126681042733379163869408328352600754124550936889961676654749438574358760290701896193649772495638906057164602093485785331144132065318456580758929852767130113916523389943899569158801254434980035965721685118317974343285573309593064904233498962468343859611408743319554528391959274510340441189818242959973469494785956604391060283954492223826565361253366361743729190760937750069880224410706928102791461844572509964997265172439505581172248154120386414928424009407269248408243025009973588096987481682903884063797869132779704087604127694864773014510510480876581252966713744018955688129382715838697241080608750142650957586676774026470521891076397723237728354550891803178215427765254235404655945445587415756167009119310021949172932603457723314529704424986942069812311947313198620035868651782487708569918182353792014551912122847692524606753166595069989419165559426545955080249864665938821321064162483588067879208421263339709002998734761373453206276998992677157835283711913444317003358879361699577979793644489316808302043535788073942653646788925118031674295577444335750024537135603000391154020535779829608313425531258812157836534527870611772179219802284053300779377279286735109754836464606724187295618464485640138058752738693984936243534406619619411133555215410122009972448050739944476767414736479011881946704840115392356297638425137242991651653105572779887854273061528409041772353027464968020006798744742988730281545735590061620836012663084190025302269326222579846271057441617444189303900495239656106957126298180572204710145389901513387747862875343519280749577508333847461890737197421270993666642287887196354815072835698396813221886371965266291095383869741758068406118304338626583742108739530166239771898242794469960920884129840517070322644430696811033416035173826917744947188818304825869236411397293215506907348626889879748139307571631495390636409640066992100656661013284219889881546236686452294295428132011626053056836907487679711181048880191237294812374328055753221475899730757370451215271349338938838275968286085915499697658743304161893385230909810080233520985669180139692693825060964425117349143995077381299847481203946068707577502511728602552291471260316646978377317691315858862140924636174353501714965074422591176172138706534593657627744559899022914154757170723820749678266016460194511566464109714291365109177702151951245617539164321114045126294716744626041542660560610212865870732879233372982719458421276062480187276497203663282286355312246376310320792583084295016672658408386462923698029811241340341590869889158505909738161408161137049717762108772498743765259237779201741609290082983096573172578775001115156365316552535410945885400589045898899969572232750065474448338839852380531867684673294513385172407445306539994689381431971587985906315122181872141733054113066909955101905846394770473608725915925866408651758145881909140361592386160112267732716485616602316081035329681029255594334815877049633583179159403923924471664455302031854703281372565988615034362618976559388630865587544901166307743846542386055928708877908598222222179447689382085612932879651650351694514887597611620314659951929595668802535334485696672462824778255542872727802568525032222468675955007138768457183495580518301078967433559033836212460626962983562143822314120280239082167175757807496241183880947539691722868172884363601241587526767513692622304408224491066248632296017434942642217873007913658367384931199996397263077316538112574045501511030555801138672340657653124932389486787503054806364105768854174230284732652975477789892050521763554692331089271542942271879444906584163247836210477933949159755254304713153338373261196063339217651188341960314259849765717534932959646154550507297537638356739442016433164390688973054596450537664843088598491654211072475914837584172704719500671580218917525414462861303593187452422975096269913250198509314137369575657380805697160966540295665029148750072584075201227165335861703260249867638551830317124594483157949261294575338647038536792845457562396628262894111597982223141764191017029413069048526227073351474088154277866117571747269130438323745671608566517129460258309839492793402797118953318235596384832468539404213115396798549402153100038584626784415138763755075509415264655240319840446973621069200056075298863015719469863785661577077136714458728331238627000972900179016205297714303349848611947696333596152709578116760567474280139111518882041103971584030576832787457199617108735784137924487345661768633098861527438979993615612674211270737756149143397873492708764511441348926480590442045451487491502039770554534246515418593144193140188971784418070328692763681170968495768745902833323748545845420690635804832177657524740297655683947052514085509021059833953038439791764309003927277686950061556455118973877977515048574313906697041736320833050811321779176551143985366986360178361592948883204990164233196811923389768051522641479938485032256710431963186745336818951571462196904868654136605937300781340551122903883075803013770331571291721874768122696701297695833898071677897411566917351202752565386383436823494139392306169089938919362459705588213172396429137442148419781695872116160600973621687054072285460465592985968051498361185947566942984154469372223831725577242919172169906821391994277603337570975405034562969996372310702915478524393068655328916885900906314234556256944659351332535480910025401455717398922584337276978196958868216048447767051402275844419218534013483224554559660852103722229509536018931912151219030022176038539748112444485641819554311967638714420456100621033614369897761360807342235645720346390953678188932309356369360109581081843189008681486175239600130587228382693178090806944844124889273944818794557530741640877973912772885748152449939857833504837994498307439252351364432011690205874222135342662638003140417587066226045795082853491698125055419417877409138096874326693691242190561604636874377916457987301682312068097289813932586766555873278376703566903732407585788309660245659354223120657411815354250212460861454577648388514853543452564448952928518253090544150145680671785700752181846619518019011498046731474603854160706226425451047623163111862775179338253956687547863729156361326626698076626876491390514426334537167243657393922872336074207075934490408181954413390514567261741228699624129500223207393274053849523243190392340042606854709508851702189917388115713029600936952012171326187958186718956472057862105934264106243488632802262800926823003120970317030762836667208821725181747936937032166115510941583390019955482428823592387977910841781920696871445852880873510671228488114913774118654986595172268700883339798493881703921546385187324232170300336596663020645357405422207154155119284258604427493234736162313150350051722695645573244744440071343733810544002520428877155992352887236125965026281755399827587895724953168733254369023795059073608965295255285497658532799583221199376570371244959581769190684102968999776498712196068729587535389137147010674595608713458027525287261457905376156790949401652777916072893735886078439500134284628561948080438737017363302852912481921720559385139957216512250389197584116985123306462569117914827990863257167515868963184439746728354973989682862293464024141004099139586201865875809288671224654235473115177435259111722861271279440068446260756636679372306757746054075625526774759078698344636472561496146841746318271217466229132800930245768702466273935982460327871424579151315976071053317832835795537648554746846630970707180312451591792052165820077851059668850088227093157958813448479999572170393854793214682607604084731330912651189428399455080202848957829873829387429768492923508704771082722730634821323477228176368448291547676874770000688265187360377128107136082693680663654688253084404044589958851672396994983610365585650619084038247264291019639338776883922327301666570559656531686275853134228264895113024962425694155253097745427072936752406766761328824359479404756956321203505226685684485775899430738280030594501109112596167712882844391371643643676702786079562313179898881353739432070998397585139748614487107740832170778593494258094237009131419950456089819304881042240419385253771938533581076287534622388380435226912905324486190187885989415628645822942566758391168720085969647820426274180312348241013462464030857644229126043537527490699457804952031305654682462501358792871393372356633858730478171592812705856869635090136932306186328419546916856445877561854017152765340485067293838902915439614884664403537026916103659617693805879366710293559481015480801497973372774169133462869830845609759887629368083029091049785936983109519070409277427817390370364734787842895308800627521763437160493942666360096812184169593259996152197382692998161223540081632115790852182480216381996368869132868019715763116947253241769477868611756904718108504874546729631336605803666371827546621048743163289920013541703259837957349540149366180331176002686771709849380950301382204583042390708116705973005467466768574519781882270144580951988760708562466615936262436062173224398589849994682289784752631884457830408381027935782858729495735416934668413040351688568885386333894749432477398318892693131680175707725286347950732987048617273692289382826441789886154800661217457835178792563989779566631939632969855693478926162391620790780599722943098109142039686054960624551576537000357134302963961770661314702337667776370985219390981198513805939416370654134983111226217617301639701801589913858431779252610622498980634787620024826409452082629391935545172313834033646766404107742123249577739106088090262483604355586176683952719554682264032947486212582282550049376705672553773745939513862348543419357126792680002775966156679536437886502231998679084774832946685880218137868853276163231437841513285056923240763469665775158627875906406295457828921987883734396758722791476916092472047478475304580864717582444492316436344925252433846561347962613429697161087697955881542191516575271268209211198860497729565287301739322497667037698660644111816981360786369049494971053744280137453852219855353889040354506955423489532725246037058599807729537911083122259548089808452504351057728613807675942433955392751642351119947601785150457331227402010928291415796155766206587538724296661861985314830167461481757740953958419935074510957663264079250074364814262711752936149621094393634378423978952063498679664525802814463577855032114486195630290383837975978630927186112178540382911195191877494273000930228692845054755149367360132654437968473077585055629704189745019647296590803372337089369737231970225709781492253844553323993966084610195182290707323300672868983933864485414211707009929488133834355545013062065173794026743871709468225156053169629739546883608721419064756895991154352621752300088564873984554530823640490007902559185455222143304868168655218498180380331159787043265790890323696209596937343137230522820956460939484392035038655885844731602564820423817210760551544910984116281883447090863315107397087889458016991649984505001691674444407032889490163157432435954346001022054348187054529869635317403182568872867035989811593810263856013394998303442976246289162385624307372376502075154564430940855989054272757115754469775447933103695463912113216266118601859545366129397567375128412313749558433805381726582030576837187859099068013040133062968639647980070929157038538250858299444289974703732284724271068588773652102689106054915074130734391079008495023598458934552973166177689051714487944662097856291999074401239998422943249047513723759611082135199439736181817192604912586476919374549590484158496508642201598919369859059635990849537875786654701020702802835344345227758596869809217175315135885844954331058875141348619891264289333475025603999203511808582342394355475283308675327097499390078494396564119408291157823128797410215788944531282095762752562995651074883263210914445325099477208771059706666288545584338755088927084719194192933815083324920530947930641372655722975889667364432358875982421103877513015118432069760131160874656058748428743122889003600947333440330116247763652569091276824038124996552977932562503465793277004763486845055050098517802187567542670185290939333479471666808921583534900350207386780652867279965770044335462176525259705233433092948762525958640753601269308489809813599460376890808328003094158375427742454213705184982128931860499335804459384786549082454382381142058692915478507439896130462632377633077479385406114524988950952520015474974332479600115268910944310730948031762077932567183950742740851193943279819568132826043651209959698633300085302043022698277213245437136400420813216292228581359827233163101078657318238896939886447083900362927628783330072783534223648521323201694203806507135318413812788131842073998630376113411858512707848621900080569719360270640830752623205044340923211722762141501637267538828919471943299807463560996957015216239550634270105370540349474236983273372522030234978343719939783063258022066794293037585523382125884178828889322155022051186028662395362992719529716079404630885836679960223449941817198309781348307814950728586801100038198318901311854601312933892349318966870624205198765371208444534172379544681554132409143364093344108295736882785081855577044420144215204523825483049711498595429367512375457189252385101457098471167546478718420454282015429311331774708760402008594379970642335186106540770882496805571170018057350786789494481542593864055913679629538152061178824069257828218958950658612864983936112829939941548292721513859181440365295369667791247194290967493014643034939110423352252657926190164442883160893904866090421006644799875664341563728053487542106177496350529644998401475869767910136790838804532965871931866764015958657973144086823926201741845124723019449791764210236247866582624686193320208562702513574987625247537647857119642513482823927465608548752181506815032788708338826447717094908422947223651881873749874303481317689345207307688874819555695204480579550830125306693775545016332620640518328049681357782289050665142907665955172916393756196101727103431675005174147844887005779276137490501452438031194862101343285823282661480711370205707361502729736800142094700532581673199109120770946886966386384198577324493348337998062924304790901430907555488651421245966962083957556367151498763039560689075672163865337281468338971769587084952759109971811838863507804306275507061634566450878030285193417182403283982045311864608795990537378790889257170374408084178847616383717262266725383758822848116304422555567575221826592996480295212589747452443448406392369451608973794903011336337666782186986622095878976174680034667086193647524118838915372108566443197929436012050583605203877650619444439132938728557075084362647597077095088995525064703365135567338445516411979611102930566080762152763203328644554270663679120433629791298624535935329868142953110127797197316508362510702297883011519310533185749656256675852825576796383834496183082389598327021740312118353535166060249168938024691730424443036239469791607798480315756828142429738663314363325141741309559767370847996085406762643335497500911836330747311557957827093409682499985299228936501344096157363822206161372714263694249687407115094141241867161259021560676648971614081042068359251435765038326728173907600782381043457042952836462839378561788585576698731410783042558661419814833970216444494860962319366458549526207936888370120242201733588898014763529273894663576742024657507504393599347864477203099359668695494170931165786875740245553361179969331238391482918920848864693459393282137823503553621999179235322486149999202467855115534774413217509188461282527504663901322602616844535499691740074568504221270732635544147778798565992668907510310347118719932224051998594208022587886275740399517249006627721150204889850797837453287634676629336979053301781237843297074282109073023587024649018165292960613153154075929313145319499583610022600230329383610900209882980544033170904537583019653314697215503126458606175823150647271516719147112392259704660256226276305885620131601381046767965533924481393843033285349926628413817512736488685315504055937731702652635098058602228962480969525788771428839676094463556893094499685705395273225676814590616508463919895150850009842103001500746037055750299407485787166976442057529042321048005409590502114756878037917985175374275270604150379437736316522841695695019219046120210759607101671732890944731526798833993395441782461689479252969507169584903865986633518583889515199431034119060694796096537185851143650737968226584364165706628219184210658510032713260166240395013786015605229239162074218178485527608731077201088027981399723046801711976829423940320739078646657293233175369946200944049340261870623711530656421128263874942301037791182769289981381736357881027274461150629460215338237574481765518377596887818899517570745667385055982022905042831327964126749555984822836418561561474079101942206040256896390839766665211212179209369766944525840140523999589646511517569643906143306463285161076363531859554687860853391882877191731637085976508366677852856742173562749661486811198280492417168756516212362744589367575226760767960110746929097120233788537348026439995093110107961559965757973260922809791166075664645227411594495790788955687923091779631941840574480598104308344121377585817816786398975258208946451803849017103073896012760131844429394034390115275914793501132450423053760806635866424727447838204595391628019841763767635331103515688324679214892436342719811292426444980339420071966045452105595309624056415185352501798066720635926024001486841949912851943796905927056183623783408513939826993064032175300324101641659928699916966689886252536773198506403861943483513603580834284287438032868338762552936551783981281435552175076013097971793304412547114640749146124622172647583770132513841441490172026893936487957795246961092716508901267071309556708172352575127257780687583567478948281977180670280135681170339059652170783390280045790498190752518050738278254047002140847798883110774490825104324687124478989768082603180409582282887841990110776814455940741015053724670459979132792163487664815319637315099480007539590422944845686922361430393453229347957402599947613967988865532193602434153222824643346221877667187691070632076446201150705161587608123281326996193506769403988401460473461492365027402570168522340408603568376008307051563103402568830382500519303407234232665030370165920761156403164712755211663747150254494559088174859796794345829711441459688357043642764801949363306071429641787888205727624780226214262968018863405818179014838753713817486946551332111836741517168458599236200104936256097199914595007865028546451133558438590637423561160174548598585373835455625705700966388248958850518992372938421576678112075980246787095438529586433957459017700838589936618793733196592983612064159233526869039605906314576211987502363519238038824098075437787445993713124045980825061559477507321826565605328918158173955401841365678470582742975900005395815528564602714611920438260539980614875198367931070751679884529005235211574932827305788381793257689018034861446088266105039106454944627590979594711645649753169611304760493350018963131145036455488708445433179031264897438256517279839849630912179665285652749253134559788623818483076451042481330158176949831040987126002647778507148841089307341422814732660856456343738244593510164514463216896447676552373616214898940461324504501129177924903598941201077826414044251517574510365113833666319390968568117399453536221959412006382320962054479669621255324315217296326977580187835822193473533037656587275218509038090778606341851583740419666982914299051169189658576839133180454528817354070648576163825653285302662485956436776336794668689288348157044796389183607543902322617291652456543508334151404374820649381189290467989839168254691485679161691438013687278286764444746213180097577541399290875418452358108889286258623162871258212772458265667843010820347746224929130105513825645371494062950536434225785802278754446681352894932031594932223959116327142392867699322629619519547609308441954644524301194268309801233436322989999585273486195132266339891436530168010306841837630360961856397229486705432101528852430024910019310351488567122001562197071159416808428851391402558937548281557144075912624755225221056205389811886162655857324389965956786028542868532106689599132458062011466324422901260010581434358453475239051685213218726346770612730184169171302038993949567511321207564831043392300843624968809965171768456943991701046591121070598621707329542967733198943891857374170042100425670186423198781657342272972276585261879835965831588695993260878508585688280757797078064678237637727939452355943797300179640193002813176438997129928945513954589655447832958369164251928629504917114148456916943986019400803713792117138950188897082374002451410215579392055700590747178002581973902376526199290207204715475506830106012946204472968802017634761690870331472960450083157899529420086554120867743493411309763626628852438710529524620846603092768971965605883184583960905605791172802483196625006864772778414139651230900049688983109651923142475751910979101329071586061295649450278757919312708534281274437765825983824572554848411816213000385786991068120577631179960615929149276751954226109457687765389186973827591182179104183791121327293919317139722391763136638485509543076367045715210857425412744816186256573371971425824821371050425248361882600978500805172704115754931232774344564835836184699156241272926773938405607863382399428741764121370761592726011449204464626958466668894705779516476449603111070882955962718230048965528454932102262114255667711192996290461979702844442001764159874781814870292315759646123842229867061353351581570641023052456620334995591576359607922544622118765091263778015685202000152336684315649942157179706113846847231986059465669342722442000486265709741801067923151601230263239173756562281506059353584996656555969264055229618507201219237174176198010090286669316001329344224561714118469277085513485626415456199953154731769620970343597829036322679939027999504968670754871303138405449195598786050970970149026596167512324907097964953942482432099520556909976696422939728022961828142276330611319249831900404365894500248973848481502423577393900994265694589056091932884911553317886215357387659732086139330671693613798709953757961558919110324334469005459950536297260550157572422959783723019469693253381579113251691620091422240957106771415746174604362077352146919028975500224716017305758993321513300093414884133852337547440920288629732590841379366179477096566915780368005460458482407977413283457659454790313149614753914684345369361736770266428288563355820114397153669861438494187745263832503135638547710740844495009036625857754640176038462773264015872684258728473082891860206471812542549137569620197335489641160981665166007896785397858966538693347406422673602340443496374599364237846849217990343868853574564239627099217337936196938296387291038188527550196336916503151809248058405393025157609579394252142073172646442476281663663084991197885025632370776113606283312851324365845474110173422080852343049262272875375971628085634628530837428506656863296230617615230087083438343677067897803109377492352025916999956622910388480742090665198717538656598170165535834646309602070680949297334191154799596018455925664843752786030763742736711859154773483745151458612616677034908482726197251457592732175042988181776356614935045816418459583060202972900624999518887865501782751930717753529692846263362047693841874454504639467321967789375856386142403095703330665982455736724090585768783259486584144336455602115818244697370446561495047389362038137615622248506023024346955583611818245899018357987499029375764102890558266357126022600000608796401186465346743567703573092893147919697992338251312511138827237074521930388540602861533138989248149202186965628890579157832830150670845142346147697526303689152420662824702264711351053930274199737748264494041539728519715999584646574421907029717314224474722181266383929469842814683239162765812729211456685272985659959541438525959510884304287883519116207119830922660083242274453091584559536976987884070539314027995853638871542676504080706980768304989090995198546406994497706273641135577894599915440930471958937187426810791370740867889152397996659340429060612593073520571417413131345384281677794715432051086440350862170348644574591636816363754072556152827300095722356917498516110697876697282107635261138177944292544869948559318283749666912963369520565845946050532247554459699421374260497100540596324598561742893613883383285987633211164808354809727686137944939192713290969291256180185312267967573233657830409845164914978485126697972278134923313938578807879160644356426753914565644448064560058205616754165302910095218247754807866510845312643915146001924209415320127630349763720940295437585316273985386354213196110709454795658892572266909885666809086321204315634282198746832013703312350839170719549321387155739233560271236289157202306627800361326339718483747212300843998064172233744965650522865587373915452975214692949311553349801799909018527448969913313527816638430846962293171479990037140636918320635788071801396093438292176978757488251236012916285797961618553063731732732829881224418536448644784879109712454211281201641972992136535027704742112587128233675765706812860229040780169690542134031435316069657157480990158285579910844529514912017987696566966885876453642864051142421260278814925172115444050277546333859222069923589443098669874587982441321754473320342998902019746681582586969785420931975634087969002714090392254917294251648059330255976792886044815385756105163212461053566759752055543271449426279224014917437558256334886499394249605913699291870077194336497759094224840235683310785596564654288512429488380754464744005120255634241311810523965654119532346857272791525012661702102587113247052186190356964256419184995144075113767608865613990644033724559903925369895715219592661302815923627048411122166029841243277920039633200316338523692598672384884987654961308072446858215105991778678357002681403459874010843843677223887845336924860074526995452725953509859162996609928507016744477058455846370936434208717570973352942308646018377413824705090812015373967971198478736274811461545185617519048840800165351460647586369627501188924320037074840116043618268131410174858305489599375003568602658735588675615053141697038442117811894367857929894079862988452009105063730566324296061288519229742050207776964776742928987703023123862856875850573964866222254519988247931197733257922671246432686738041502070059337429295915517065294852991831766299994266713084212945205804215821997730769722185951576744703616352360511388665509511222911541686614239696309678337675938347904114627706078670950864242042270449131152070690754241916426515009084780660397015707590605069223272159404638268992017706664699771462279025921179551265445618649327104372150484826846210836568339570607655613844519275254366327957109527805647407961648814560282751487604308491247902449956932641568809898886541974696040163293995483049560099698707516262175717069123823429022144884540774884820432416171006983342774256430662575587040644427370632441970296661832988790223044196333628748487845070994694399957934324628412553210763570210732396641145015114563426478425335106603964988077332834574741647561685137635891839358997797802837928193181660324004968308346236451193922893073839836849269269350801521810782065811871211004077806934023208696104149800436039649396397058485855071795693295440855136475150315424980366928750993062468824054856408868324408122512629431607863818281732584461848266455309890782101928576935764369709381545278104685696942350842157090077515722389888449202281595452476814419757341886919175857540001162713342439660931163965647897186330904411629152875942808486465539556756152504927803672160928514944306550648581808711673422043492080232638181207196361847091579254312368216711798594500942594008124956309275469619537312470711521703385042034786283284924585805120427117869021942342782030190234514319433918473617763336985306104423488823058996800646946214096143562276299534523530690212489673491798598732032270055777661725524460809456843624456551519476722377378457279672548699008708133724986928449648430665634856558589061222085274532257982006277499174429352378802370992543718034209580306217873070057299687105103056785071150729165466152487914890243851533632554927694556807542953960837374025554577734215483771514092618770954141771034665877868674844517354612375681752874148934312621318048740119230905535384907084754129947098544383979824626457017201875022442665484147811603938688206817104573210490810605493906826920287338095923516399525829427071688086011470319463991038771040048895371991266058091572089121726867508846772119438910502796408440264183060373736130033496359685056334202366270607184374034607281167597701286756213025068319188832194900561577670566994616561784162723232832959688136449391833377515746899273079802848569128194900935773138192938598885725129263365509349683796152587615221032747028502729286238643567945905382998726219473883404533373960887162353913128235038489830618555752869377227675074179909199094948730715621110725500175204823566694817887659507294759522205257100646401158813438842709831057230143645826319075625970693085305161268906758586889755007358402350181838695901494358567864583484886936894663513769445539128939988655983225291873070638315502103394702238282378740874175022303455883347799332410318432959227815547727466613016871375961450594117771300774191938061954417305590712949034723526769970375203208969663545435384159766703401491905405176770838110165064444609175709220187505339069844561168558153483582714326241473870667613980240711737912093826242079339271923586610832964080303861955605537882290266354475454477482297935285838356569928703258405425352835397462983945435409243866487395589057792223209856022174396540635322735089221392079910737163751552353336161665780466928581822909176594607317373127835643538543440827371188851125848053534681382041182448971455299294360435260769379049040399650509124644370148829871525745091236492404573823413230922624507942245536200821129655969825460246199099393824943266266294684014985030604199709248896718788567443755890851333653221000273385148344224270744515922883233597876111666836031514679300028323417880229211137960252861481410313854426503674533874609560088825367782252438664188331843484896634283124834026971459276436040290333512559055233509776804779003291912133594004815338286839120534481284817999196453087230409552217514712603653015858297985268804495958663615320436569947995917829511352855540494371608943886603957244138254411668475031005416524564721118998280203502979534348357532136635718455341948087324377892123389512811385663833309552383970307187376573566146052896001702278238736570761047370131174964697832232472570539778975028627654310934056111662594200819804676623394529329653791572431225111266823968626253017861159006711186448060175743025462023002683796769471251857485627303538453317852663338265834450519950939150636747396840780039113258674344251311652135695972672568475730449498446356468077109351033932706561501359812241556110843335747079450043464471195193404803338087003014422815030169139164721705935015120839180895161340788655724991149551540529948335919962486707681134688351533310833197585533925697670559555500941799065115609808238692374635308791757438482829626151839029874702225190730973379825202851113285967171226048216306032002959396558759204473555207603933423699968247940484575291330351531851877452234493343327120414845490032266760957136564460828230951572595341110829677914185369567916472161476167549546288517252057876737746339096359933566084560552414026343936991315240710423930472442444043793266228054427584952409981932446025944954442001502804145433055050860340211221418636656565719260131803645086268721266131015467272913267449115755012465782379765991405490188378090768861324147425790491767143265115250213343114130163677850492476134578430185308584840547233740301282115754069238159427597972101792119994045397435290010334774217984462266378540042301960858294644558991904491198963641880764526875920619592788487662894475909390155751473605202375459235400953168417568379137642635462559547653626392947412534605951280224409069623802988002307823924139226867454523446901592072383516077808545696099519819246618674220703012140976169788500929569273702435132632084991577553169833702532987593442671090192629836207885197492548384379362645694054601513312611521713348021103334147542315043817971621222970921421397067956526484708454118337418450573661504519048339117830891795523102357498002058592117470640885142199013851592877163840678427444828831187248677567022217020456948179398964822773455957930242030653269338354818146571529648407309589850939091891512921025041107372867355636436315836368831378332486170987882725607436956400220598033444398168757292229306036408407623481111933880693552715108355663509604724900685513353610101383838825033257964846180361223837700870510687445259701013291146312425331097360553101306935377180194430205855357120159895201315835214474361409638799504907425764453366815961234891509623060952610833262453250275130422497811458317859447365897493105540274557899861663127336016432218393507070599898599422440433074175398364245037965797291232641216816670320019601285908096262145814832114694813309574416143129829868872211981075976619838397917360365662715579934193901507126085275710196336859653820668601374722115848162195173329994450363202872609083076057642165426255327167475546286239622601610855897833284113416292549792691772588454423954076352347436493900082655324034323317596662725086509050091472333840311103934810717699018181040256018347524292081350927124901238349055462898118629940665906155258643830049376348284866010262575910107040675509941843246163228670605890953760663669690078996264385144372537059746364148605724724450856283579219602831701580529233794914816492077046384898900649055031782921017211966507540061221586613299619846724610079652116854713007339116706219849045978783391587216949973946305682174351743942365301734812180620200825107404020795167948173041971222778698595040345678499727122213702261828498116548563384512792722387072467845914520852662195146424303548092814948036198623921536071126505213592007467144206024985251494758993520424262879742285982825242057828196293197543799958956678264438132265260849785004411934134934515261746567667139460795741412955708506172740334252825358546618359211431354585508699593286372106774783543780596652941889806964828798139218530582589571196034771586730731900721111300720272817646273990432128217427193124509042276457117356875979680164230014883158674660355155375966108613473309038426810867972576869594150210911758802463212901396753108160259338499871968558556415108571551537583281640873419083755624077807909828243461451649122671822635283598645231406666835619618938965369577974553865382773552816244069715907865825103863139978093298658850016110670058064525000145461325612408833078746704748198377444709861907851268102337147275956408123668345968769817728482377730074867932084520311279581487204823679059047041497163826922078614582824875696492430596461750939939349538417487671041810342266772843155728796656751813005159104352615765239218139174208960567676720068418304404690204956046361622769824148629334358138356359448321382842385880718663932302130349902863008725827643005837293778914604462970820414133053500939548265277430682156969740894961334555284839058496623870522742808224131596717874263376295549554564806990357232759731354429368397845501220054233458376189288357275015168023125974799212581905506061792275837387256147821659902435712923270124977601445111911335087225626577461890686891585375404533336077902638486006605864580266117626611416931782909524113339881061139229975183567998918920529066120121248615079218310172148535920603791441854041487662337076543803064884703339830583316351724090035344803557782040034827941974926660992219535398521659859171260428863900013961574982012225516948807206947655716915435053329460247013327081501328783063518786373966900637546309449834923983272198302991063906615479366452247156689286384188181857488605085305984467251132137628513114405411141122474792692135672310747344374934057521064940716253170193740296230513976893393220266347720508180690614859255809997596346385772529172101929095658506699023131087435734769922739824061989827801266616577790774250147064186473535087827987739198287389056019585853654002711216777615125829641494567184056283657525269479204366499127629753846919185285693968623337623185751297094768621456125760078777822567298539726565529957309457893041543768854762712474627100046432336923372158074483693387699012967557054742274878359369459745536559676940719964793742506271227740905096478490758743941239762070177194067256884191803792036055041774717895454344619802328696184731092986353090756052603171599209192516846052963694756867371464992104920922537161146228506871807574010017703845193309792640369198186140217884722519937060986029821440810388272255613399626996504338904102005554582271422542601703131472510865349412754191686503749561956567566432745198758741337013548622711490748807902106333939387552094715799806988924876576015959534595774279402764411908197111080668812478011782629051378641443929965409539746067527521079588936034522603901911500229871582820461547002289492148515728853515248657248860795888207165354038211703586239516273357509976352112555318580475165520176601716375373850314834197423905790390926836599450150315870681627932108405317082973255264243256106596520268086344031814239448916012675990533538839085014336774568021463951800210045923565402777444901333287354270391531636497163641597002734578285941050663426977964140745586229692807558467351163316220215849738204233423515960144962515971524166592188929645808247463009599915214961904283870103809004001748636253585718197560619976189356609833356072649142421695884621969953513183805681697611732002116924142613217564437164031990221136269618236720147308961272846659677485963784767572271452701205603309493957468541557706552308209250615604900732592877793169470774182019273557676619331238922231968412544808848447635790378756443100423675563191481720349095687414282157433701450071659366532828393292734390909983194072986738639331269886309275501406474675868794907251956854658681955655583571998378489407400926037620763427539143027095155288251042111826076554383246731978896442676674002121649399033740466533848385661631560988710629250835195454613943437521339889143956878700800296645768332197345577960393077430840156379027125119521668753528165555327074930349495375508434680071324546522105313300668129396186974213922376683211100195171193202360740302620468916573792997847177398747016674720091895350893691665779999839515378626153528068202275801414760953191703813924272411448597507596902997380348721316470970460349521496409421134122922036296966011861038340067432678540267926341079646923931731178965642746117197510580829025771098987777490081218657377684093043827625490071971230747170888034009273699138354858298706340554617133799705477993944194161144434858513267938101598444042103393105417051354736519742421860560055121193319527746793030595916331637451820154951306812838430872206171143607344630458957021782139115594516095188653441540485565881398662611097917918230225385363614060276493418378909673628241800666250104365099977420834114491808877203070536112430000836176533395461039016079013617117914126125982340780178435809528820668215511824895255098196220629745323293295256696255597336187184900515701216285242070119172573354680068556152484842587978212776943065717842458628208778128223639674690488868310055798771779312958463993123342442823225239406656916205514851701802394377553600605862691480009118947876677279888368923039670176941013853631188439814789575590483884845240971747477387200569479486935597813875906104881324299026608983512025124060759090126133893221221151289911420869596830645754016964708657792747760612191099378386733611454323415585840120211640383726786828248542593893565529327228569648371031934793425212571086949448935768937808080673325303935928198988313163753111533679157420102449146803557504500146468277378758486885889014332982634428408559447556250963448298103229037103444419227212383899119991154845857561245450728430030624121006438124227501346223447577743545736694860203181325660768324411411877929415331509775322015250706857380268881285834763294170938704882909235133965152261663441055694866003676741088544325710490235036503005831361292966936417483511867084165776987650957450283374141357614884732827555975320328170723439708898160719947423502143222297628672399979261736798458491681502669359757748420616038019689053144631848550132788828566637088547198310626370714116743665665117475011279039382506082545927048329203601964216100640826299691639419394773326876454346589044680259726845239417723084416501895468421995832499638389894637910132927841907752816222902229978392231581535286873068148522305819103662876962226588052779827104954302017401200531421074926768037696727053940775538233703657413468138904926650878537612280535391279803578977917394920061234895389164646957001481742325005420373016585607750271353514573021856292583422948399917280457844209628109926042300771952894062519197897487268400184286899018770895738723668098846975112383603826130263741924446145456210121435866910417145415162387597696109126764384365259275946104857789155036268277709101337978354653112181525310120473649578385561797026398288723795675556452907508297696980519170104997502140274383092744431346953588101644972203421138506530112605341121422931823368739294614164275251641668746812904358187774667020906505636226706436537125143320316067088925637795049029225681393770589378341305935012652690841421705124987790584546186711495260738073624726387703779571619294420938367604824465494647467639425909630947605347648128756487866075361056495400092928549386660689393938964023107953622748384143652321339770665187476832095623441988125406838428223911491618890921541924378321398312726266226963512939322961583755823060214437350538757722614705784858975352165269054139474703399506658943008678022151432465539392984270792076073928881608833440589098205126405189806802469081849623928190879178707305138160429076789929485310283481450071043415753617207941501929597202327358099542241363635624186976141197692266008610176441223139691867795858898625063232341401973921752189943025632592718160942840327458371227760062857095687435999753317966449638318923315535816945573791833278650616630004908709252092650230344536755531604220581299866889319422883770330084272791633507945855929558502519542948200217009710250927808818694319504647179953436571842282734078708629163203780511168144883062907142213924380905082226621041670207096378590924627755296506137861170785562104087257026557435441821144615871599643614448014824028810268052958223053719492131715865978701387786124977574305531577035233151892146864664677737206076389992383606005476197472742757172539833762133519378625802388772241545293277366897760153363420639480568146565536742259500135012351380142263572246936772383362532819657926521358355665672085456554281558927348196500521796917003458192864553664456197750189364595736442274979508906026899487618387859190219021128893558430632319150877697637395911308182632421188271098829022935057023210088588262021793959946981691162283733959654931759853908507332292476183293173695065044882225866219641528938181758396031509574460830161937756924345787978585191777263348134939972715245825858669368798044200956670335468325589518131039539310552305332964665672925130731015082364569634630934781923021809956255936434489419543158745903639895890196238915655221850311152147827163829534026108179444685139397331319628710824200770724799035692047955860114825571804971642655582125785974565977705602179212204002640149945814329927502425082864688650631151804233025826647082468175432456087671348303611059136421699861717431761410152468671015720364733552097765660159509811344075931952786843564752299149774793080356153531362352947102150959511591013991190182828150066021221115345132982745232494088197365094739367902060873773427204456208535591326303449731137409862101005330756035895481774713659368911401609114891281032361135220486666368233392840571899207877841900170877362622448450287720015116938122183235863433917384200615939360479953949587852360150400038749751151915343419597612532736348211063050287852791515802872167713547297592833299367029997757990451266032969926974099500341666809629728372866970154163499560751017400844485425625094314316973660549429451260511983962932551825770841769892455846738796273934906771233004856494862591127967256555495187166532149286078032678869577461707089568333637917228833085767678152554326602137510652087918484961986414766512951560553603861646114292283107992153244783841516766419030236903489467179315557488045667017374724804828543457158893211695955151986661539858783628356544571824061552813217971431509760234311245312641135181439900697865973082659422834875985208489479458440899187848326239201335398026892605019015173713215360393469247303895654717331897942807077757066728030315892301216815646375605889227503745881611084466553994929515156906100208502805064743303543073870580320851889931248245116152044601934516474307907886649707698480729991284660857433429867554289358469891964993966295350466993109728777429696635925598301873679409659759519470251624315803818303010621568176698316168190724969759495821382322415326874721373302388226681716014506143449871176525876986856209398379326690148849465840595899536032928173840803694053908941975176473716800675184914061948509505962149716581041109865179828724961497316541449491163157271115470757471434798358591062571335786447011885193935186977468724234859643757033990401614248675655850119998288183404106629079075523443879510241034073364418451613201280886490378402246825204156554084074621383654844632574308664923325107700134330027772880900699376593117451001296330508546657481576194787415790864085523077657299564393212804836836965085088696191263526586738740644746266674966350313520367628556825749564909394142490962617120341712069173864882296002063321226222848016714362240592820049350512394128909255036776811778721282202643044714028785640134092702976778316249222445447675852424209489746343470039514002636019092615993734110549365334794829188478346482045145275686262617513293750431966129588702272202185642130580448337978438847718338080794647304241075065882653122708012331589049712784606842284300653221507945472547320219696333260609214847727245811285385483477220858345548044285254626543658816155982688163969516820629132673501939750824575276325284595473988377568689085868002464188584823565374128540947304191446867255022947749338740495828111408858545875301893244197857817633707138733492115408511467296770496539785362670812209206249938332477256233064713607398090998897825023673435642343224345103140854862724466096904656489890853714920752028659037669579599527123157803183119312988725580422118821175210579127032660853747349737774794765956441797195210667146395076705235252541776443517767610545558383347914788560941850541129358729163655695138557995011836237609815628463593389691461844288258754260066526871095396251851942156784299006520499418247099443765138409902372758901898761408119134453924827971669323944492265628249530246691863392017776710987900252453914276710055422506774037868384263286414169474574523232672589415089803365880590720173487590637167264900926552880917880325749579531622728057689355728936629447733521418992701739304890400165072174711058013547632005102140314862755601681061108918241578597845153614902974309032081414812931769120665285991835850221353413756806362591465175470673017039461977240479676290192549641648324840095270847488389637875675430856232979825343224531017479085622364973466791872988139272883822833398457758865238897535970126496608059108324335879635061962621975781269319918726414348849766759891883685826866400635522078994512256430818243006669099695334583407008251743947561772305505452908589649636919426642418892125543020873902009787026430310613151777264374256026668960727536925445050807085631305490724310227692498957189631658890433025365503928398988846109072119207322986722733886767226937997159237296027403881126199920794134778547666245212082875943943759507721223419929721043773651726039771108085127226108359499717348737925151147349644111780049765513444349653124408364399025142314575505738281299022286372312540789323497089777076447152035877974688377150872181323110103745957450300305366096486993294207714911751006920753240055283796440011783884313677443432204373947161409039314208304543892700652812471385721385565866744205388424029860856994504374411651487698315374517853147411383252176557103387970216631416280707834173469934957331261611172942091043458648501949084958033872002742721319296801002197286919862295830704346542097688573536026071604279950373088294433588238438229380479833370642913581406838261554664613889875546937476142308302548996665677881464370405403754828149014695101453718714675243353973461705606058447674116761536738245747350656087536739805039761698929268306894804614298056678672955340733641738214165579604342453417351328797778431181214758595168996425259947553369357743355311848869587591664848064138894276755030245266539435610583012979679563086409506809184430736668794412334781727161103525440584323596331174902432250128882877494631927118062515129204996371382033900234136576925345713282702442739763885357600801113733890952196667793600033975334665694010820881768173979237280846186798028111655851916061368765448491738234715544946765697499528592409661283659910308186324237200515550703868805493683789836233376442599609896648835081699404769468393258001092307509149989972501010825886026230728799338752666144301490044743264736963591516553130090901897627656041288314911004083892982848386111876072747922684830729810619194107879309576762869899523636725478103489671990438728264876524415928165535373657274117964741330900600975872476930636332558293391701723979227045992164298708817211639950704768959767782762254705678666689741548814723176298333720362425319020619626440255261731841182110178998002770383430273391667779143216529115608406424517587630253800287743777855710343735269913670008033522552087931798026124361771600342502065686772007808300869769351697423195681215638650133047354524470482284778376810399117770720100842016182413102502646323338345687600125413172623245519859972988107871137630020933966336372848128135555404736842210396484949750437636889410696801732194299989909623900490073555999069813669212702852671926270682506513352133569203401710090624510229624944705304820808928229674492291417785329762706328656160688249668455160911538847198157609086730491469434477062894437068416267542667038051347869523404979384794940540885987316407450581211123473658468976661064183118549806610830853691478875559763871369204773663333923771694732134758281319408060729598755699901184947878566715516309708006686511925208784084045224829200698257013268077555425641176669187353374982347568322742211200624165294029611963263911661135513318782038728159204688208743679989535949905845954901811113453939807491690419313300186721223290011425538806890985370424115088647613623449871006267070008751216578859572120932485142912937256125698193862875814052870674671136063578583569237597656397548044351351398829687340322995425109923882270274989560484981807317771904540807794009209553979043089044262982725687087524906804014560603161351283037018568300405667832680170040680670554928803686607336336865224806655020821093457672814043438383602631217101140010677108384791744229784522343695898160695128366597508134087424072576800452424538786816337246122540447892332684509835969544468519563805080397090268631798449611229638392886748998257403011532306588924992160211464421575271761843130595648476850868136448516687932895242002611069619499978118409306475887666986220228089489033138751379521027708555285317891602704437645954231977301680215554886161070663504971130829707323438806938227103169943595320057911146106481231048963098451260034859746289889067065107738021635538916066715552824456276239029022420887739714409315097748432420775682408418297484792733739630275749369903758922734509124122774475525384619084481939349741395343300384925238180192572960084081626731830092559595734483271511358126183084612312995608911951513128903442871649563070452650445547243733883386197077575557328559933596655081008919603395465822162151926657434886636220460258919093212921287690107574712632942678555830884141716162369392468794738213896017822088672525033050137971907495338909950463796342973140028487992425801991850310213040862865741384331798760086733655598090251364633089724929773053453469044410857461180864440584272779923458333807385379305399366800759454983737954623912342739033727228527886677257240094900807694776985543943833289439812876460310271384089852914458919625644156974347642740739424802288348149628415634770968494524439379348929606425333940007427914332673394228068344408248014033582328209317645468512278152580027687121349020931140757666610145462684731051840094879304525397755242714913001263210723205523975464703997974120566727851156453109691873368997949952885694703897019064715539704727160217954163238945409794752450119817523436593125234342385534302471607882942133046694665768888828870122911859137695135165435376142271688880143574588543527595332783221422616201733395309290519260129221847684287990480428178788313464528698285589509488113017307105528694276624969941522410874092775333370742988720877046790054544672928476586974267180629936565882367063926670649616945646973174532713905187082157548966046497526544448844742201780818818456636336527203135718340164434095923952761863406626645767062965759554022972989118130941500326359172376815186346691498076767392172208406445286863289207082953865453007825634382499999533262641738347705022523322749141114435059305046382314109381051973354648369598337319662795186600081304919543427096383963963035946238129257449234289044443489961051155264679826010437704232908368524770610131917502486372673583900132611689744349996570301983225857622993974787728264204886014037821455878202331138264790376968035744805862457947253284860575566492911677038931587812953612155050767714879977604847344200767035679893045166668866632654869672160496541159932108192218483301559878014797800314025758277600645328791827566411442875392967051474804778606595461601548881028682192156458580607506338016219975594280782292471115393834253295026717936545736126330797061920817833019802181627513371723926804567502230909121994190045595108801636603847329758077388089246804868059733894113928527584925375646718954118206617576107393078365556879249789493913001405122968874973696581163696999929649219028024674342624958544507360074948417464265784079913074554331399819106577061492252437672471608947318585261044481998643918941430206835170570484926313599244953998852851421779105815684881300975105300763227664359108516871737359250872576374826847853947491620740869853061338694527256089634630875567132949685264467905155705425648539601119811272099120991131656276053678913105274048828267345835032325287698514277530395330748211956967280440525720430795156891473816985214280336388854146473726014180127687074965908567898322598843924562731265714299732136773529502224005610744021019715522854886393176463664413747034079816750939637708043279499592561491005414670646650147899724384450912847142131505042378289376434406566697955640088471602269402472325991049606528175435978920422637478340996018924130101215341845574818184712278606705002978284777104096618049048931251002458331679245597015529506465507698780412620303354502703951295165222547256854980298005615081104035572663835928785935406674468402100397767773579626392516551160766931557383742617594447251679747357287085687581935409189594063537817518329278826298583364417687486366019710696563752744156816731281266590558583569704766219408965117081291341180642974331904687703578586988914726690515690621678117442703256779557581928072042095511222015066908184960818798430192934926899656879189414602197377831748759441333974913684430591037797532448359902019926170154022323955873856555397208147006770598542185682269133169347458768522411749124737145439438451687311097833642219006005686584281955798197544669821697101803089155399002390892548776893117058065652270781178735059794403620977067506010189162754835808414019847513096269951465165655594789458699197762097263211972252260486845837374872466158815800586371316462498434644431223855359288032960362260264159402703225063265095427224567091817373047769250782738128803449211493610869212068812126573228253872255791865292130550702191703176682977202882894844435944967343624947341318925206130497748899781438543524071468390606059269471284563011897299843086972556632081856074380199904344170043352431009774843573477112396666046751349019458927270061355542279166742015562132586443532695026002793182900741070836366025948490362765216797511894612340171313460446236533434599573236572293155165621127530499905403877017088431012454695469249802616250880387569712710651334286410937049902255509082268820118300963006964144928512470114677450976591784144698679830538559771928359984385635870446491330417696245791905126497151837273582092499594268936403287601412647764459098933780210246827493013574068953057731516102487948424242630296374250195775200407752336189912331541142184375390491749012770764698571927106458983841084785008654611042520067570645870891683610438121792020316726040721559111417399599848287937425699375962585226754408294826153420683902440198439181607128319180802611514819520913784813037090011617712180972125847702643940074993710894418995982147394121198605003740970822668575575271335337665050717196601467073135852330036092189974316769451406061946801324404444984411160605666016578509627489208105636209549571572737438170075417684090687751673695124692643297353920453779538727769946026452494925660867060754874102437881325871110569928279762088573687037093310505837302168186348832873534752064402882169743407792723235673373000308008394559136575437165196948488914947043971917119681536712623839947871173471712810378279471344475331902515246214741972712015933841035667133862640038114495920442072670130531758808173155862309849519690836105917087091333785461309037170836527544406755902537394234209929179057328914961475626734190673379934021225453340224264621826743124115581981469470363317671934894649876837044084640861403986728489188852042158691511923939079089009143715572704012213209809173719362012425067540883998928031907785207887188162192195732398509939347916857899446776212276483532955802742790290440272536799119310108736946797577964512939880995077996555751247193062750030201582699269485731152145980007388246657983021809669175016162702527881389203900760983173718259719614076603596163039462633703138836098454793158905599714066458188696096160489010747655359539302311803903545728153317044201355348204079146647501424944206971634077043784414527892905186642895908519366428553874708380591912460568094187116155787667443582946945631967305593503613293009100816119385472603618203841595093664058380911501551572094275027358901921283378142557281333683524539038378865966274239057612873898003602765396918935262907794612925559119389419619315155758553997982098370066858072949094769058618029519288209249206007277857193819722864445825864259454325429800684089642461166666084234914695091556884867004373951117010889504292652176474062247614818474052617195308826632213730132308039041509710828947004850707530403607034912177657311145719541885555376507632600938552551090832166612353868475966408027438002832815987543736664036411659614463216502845988770532311117060598688896430524453447333270344443290690052561726430625912971333976997106606747910462973706501830888843557874641029249670780141355198251983925094861004301753182767028379202226274098629985788085081278002593358869652804044326131859165697363152486173697023500082272474218641313158222705973831207234079186337091830862572975344926070255349505927502533519973827327408810186566405716306446906136477854158300141734878584402208063297681717774485112255616645736507164762280532952488267833391945321255927722248737766247563478699103032702188390372777677523061973629169795593499633096820292942634216451638991595525009072018792311877592470577141439353739037706311596095797465021214290782144349301501588390076382656625716158854738272602053226961542599152987013402441047147544071562774796098523633860228794879348966374698724131674668988432906264522282497365041072424870153525466942554043822673613220324269086168710995673267538482245569081615747435750779179991859897555070039187940373824852444430014771760392930949223003899417108592385096125601909801543487285845357166149790382511339486371088144447283353163361642392176787907006787594812234722540033080439554095142507537813928297695025135624182788835733822717106821046167319725229967164387387853444351376120549624082309200925016048701185683820798144949499815710096207945220584350093274374229332239042711439033915102514035311695886317769858923618026480142904230853529188285289613897161628036219633708571510373818742082617445217595359748317894472678034989558108362092417091267334959087320876898949237285035569625859119890569384598749456998618321567778446884846456730123020976771171509594357701500449442011044130093938231351415549174200788502683770826081641965731251383608501422525045092224471235579223020108876166855056642075479172561395831622339487718769166158685082970237738912561402248779725985956155370956192670012930668940268285484664097002653267292696865130245682312070455073826065707916066963393443035182406635343574400766737628156370599671166182301457761785724537646702343815089735687617111820216447242950755248822371258366069880438783414832939784463324723395531953153544927188057370382464704504543993255276255103869137058799568518235927499053523121174794090145325180721167507445479355015259453648171780580830097314417982495818486487012957658232133295503408118184400940742285235404546801626732352257860312741571779875220546329478629648811128689163570031840645467463688372267635311715266760655752491679795866173977008458720938568325803158122656321718154328326747491141579651661335563476843959856491872260211629128504161292880846074737968241988336302794280660380395597595899763533502875888779237049017788223780191723670580189127892687842552551177336204454408051142797725997087246177785026536985542750653447011608590946200343854655796453509519977281374842375427777425570098724815053229655043077889678439901107478876889110717392003594149796453573734342085165616418037993138442227954527242726388719972292370746551661329315168299760370506517209971730125302004502565980730404750288615382960245286444253758382403814810659501780203307352158533330151631635167549298173295686278119307070706945963447618345526462014194036991333366638831671509897865805093320158194134239133721857993596212548848520854558502593628198840465138706407752907557746971599474994763768887202755681720044469453849727944206111917733463816723629104891730512825309548450168945606496278305775739165487370091896739753982611472276978879662132426052710847633909381013291890620537080950327615648047172502422698376740769542466040550635429731633548166972591030104933534881894258939523585136230834472251647798904053279609437456654440270556470613978083864305096040162738686024886528633247437382341597947121291945920831337825301304510971645143972855370808492535329897790296521967344213873196598363686929340863454183865883714064925845091367650664073261906628117090957894521706282367428510545837300529587107133609412481106494253521382508220884708270716722961892656167826363007876555692722463092271965029859461800444212171248863782915946018565184079000094352910483936214905060398531394127252126448436615795623201498563347383930824348355816351737330734548235529623409710403924302659723332724650445681057600551492818549432507867248923758379356482967902548198118983099032592821721083565914928360413953278016757567699171807693893823221471029143546095050277610675437296339925046277105592341355303624723010704024282995282232507493913869449694375424785674052396460249079393032496462726074161092921584504686241062821635974503393731816871081985126713474600011734719383356552937070526809753929904980349071090362788307724270066373458746101822661336648129594392276781639232474967328647798837523464415688414792233730874399781106982160914944964377447555600488287280811747303393360449496258894169175057231256183985630435941622971984492507489728006179611728658255519244726936922944179745417391043676064746367598956035138143912540894370068563899524999290584216370836127367684179651512746781314480539087398540882389739815035194402882259645646683966855095525479509857770136441116630930151276553858472374656640310142088075284727549326267710286018890286828392756297378735296630662318820416213730656829695695559464344507415323841639909955015093094040289387442828176449821725103467467745173390089027855097057942064137792142695294161862469038264583524882688005326160649543037791032195937324168023682374473344315847696630970790869890704804655270595889628427727585089743907545548326031710999537164698427297549705444318311609123361190975756717395856441682219995153743741630662413581533243484054265789813392558455602476893231745619171216383160321600861944461327065882039076111866712904782964700448879250711916677080339258021098678241204518917429481808628878883746361255555699599439086821590988871436969444649382382721838407720257257716528664851730055240047072305451993498662777541035614791630157361387526115464627994330810283164092087326718938960656284447889019376116522633349503296825853408247562647687471400432432988416706289639262975873463042753445270840971290426428170351743351952528721036646307749399023492896285810799714711342890456163945531828293694844225799074889861664094876502715784567283648503810647980835707430326044395671265337240383016014095009512102423438711975575453016955161129187632867701756668508141154380515798364602706288392954856268121927713440644448915948665375053926488205898384528250615018886228278645941338384872182861295219378001405490483110695172916453727996214196037232358219498655092003413079203280131935501914111338053305029738911841802266464847362938754097251637265520654746417537290605623184684006966765723446140074386282662421314170420052692113077632848694013019203346122074450761307099430273638076570937039063775053593494074125822739414622555586872159251194493659806036939229858012153020429228476619763463732057975988533709914453782119523708376611606878509791669511480924637300451214854711143676080600982236609507472300069404554384446059385763347632112701793177396874240829067912934691810770364952086166187467390557730323091388117152960383727964913243852301591709280575020260233432850397283709563780548093796013395812169420903305176384831380355726290640426657144883989457974825383858034769974764911430181128814315228359077494179806711937747487663253720263666274268579930144249522295814174096428345875932093310252865913842763560042187948242489657314505683504093598326365246622067893127808882099862553431342427998509438738390424473349619232836481335272549114453177769485449153036339421047898660843812328353308127134538354158908800017948839193097348618526018999387905116824032972186604934282737226934539806851474396428720276405885015806812859805328832958868183165938762003727178390535869010333798973593076790253630111294677976439345182236654785246861767849292037821776786725607577927493093791580598466207908844555229335016326409648232036631608964636343544479100391665383469473825423401698690475685861589505143080047851908694260710962937830582393052779695287677099630754954433829398472070317403078073768668890433923305577983125193697542573659966365002934874122464369100981266532710617722596665755632019104365644340170129854344779387457481573554554455129095993940156854518556845862266131120428510766550236598305623510624174223202390678523212201725399064304285764408394803995026135242740314371344626110043612394402926912668978649882239577554932827473005840677550713521130637670016811824226608966206431667127739664520241520757405683703191090355737059295216766959596233509579977092377086573881349118807608974727493023718872926332756586805770413425288830968859159533520990554242280778137296395103624553829796349077400892504679680207328379603280885221579135766339064793148403348026421939689230323802088152113684642583294986897774455093644305770885750902080984059150125194404280147075899285527880206179234796359757509191993242013482082350530341143598308090451527066987157886409601188466944919895925199306486955266323918612289506346210186315157279406188851719958755460935292870392527854005831310628851778873713431889226064078457965426470429592171523639167458536767274288610027783825606184963442375192080805038899338500457893637548953302801082925390870557923039639613020170109313387716068481747552094260860951031704598511010496738190212400909984290875669583700590632917363318674332498716809944958035226111380897726473500838162062027662977725682602745193249523687641766394347587932715980099322960073414358679731788801500368805905139901896757136850952599406596927339780266860330938236495205047127323598772124095052182905476294527346256859492755199287825474121851149618916237754225982448444669235838096738573005488143439436621408846246264870917909830561920027476467602637266965551842596622566766745855969798219431289725449641771161918179634358871736909613901639746093589970076908365147620414398189008175596531334451280446190217912975309794520671660606945146162528993873743423550791235932626888792388153931026440918267525869312500732330081978004939439915563838964818791638218800171665539416634467228122775474567029683406731056081237963771563587583546473785305386893214590382347170066289361669887521571618288979044316143157342685931838637001897143773043438441483065784004244591160447085931149565491482665682820642681048390623422882824318956861199109025517882920516733148793889736974574820517849196883407730509892704273927410051988959371155056071228674280171707940270350771567488353732261409788371565924800019501727827204251360400959545187345000571994387491911553171307190855761725375992066942594092215963596757610049107969119051595390554964635261494245584338279317377255146894679431267040785170833812465447263851568640579777956250858995007051560609286244568285790566389588065635600917394522069967650757956895765667010201831982427869318784076848576721720261216326626174748061383164521952355363597275917667091387861329092502557582351145455807871527026833929175035894030444324366663754378175711289867912901390486331803127703663317569004994043381077306934683642179811813461008628950492277199518243266461692635526208762459162534190005111704149617698357911534785412526269380331538092077659412939079515576244239950885705331826855250466873552162320328615764151482515510050376008167417054503559909620171777953323347877404844261688604014021626845295203340990233129185278807445361616025478616471522744907381356294127820388474841867898158873735408330559464890076982034936994148645765565366530895319353240878645747168428016645737248513056481877049776051442098231350086229229536770393460017494221272667513315025677276570156052483553527527684767436536886039788305615429614484443533917848174453472020844969840860717106023480858695770805356051250122820359088941434940317405351849229372383130481820863214291534301757773415154147564292254436434643898822157474332684090951706083827216814561401472578330995653413870180624357272893392538759305821024955053654033009167708743586101863671082741398867538248171747421569939917770897589722866850271126422586299527188742903358714193838445028903881021228228634704219095250452789421142108392497870076767768847256950228760850577314564327984952617397123378744361933133322322116800976465883760909345368814089195995273249738342434708923221359385454261792732028956545197605290078047935648647605660750530151882645443085214055501905198127065265679466429263947849017650331750131692116747987778193860097598844641229008107194912643329250253423477455307249088724661385392320130991741101896002800962584204744708482229403915326647617454016442045190876755542492263859340519402474783567452669085759275025341513964566419172570062118419293103363224562951990015895194817441250319051552845008249558021267256744379934224493739292624030447277208929471035421295210358481871888529967678385730255801172089755662009353992994198012033606048874532386053127613105958333251352616205053445269230630425605273775172431743007000286958385492433371795987085467975116424730317374150796957989081059716374339043837300577211175741816846247916323088887958047394651147754276789101398471888973532622768302302970763691600206773625022269672129383636347053313814529269462453496571441058719067820497271912318275649602770314026763727453536030324868723548956234276664981020965070025291589139218515568376804293313826424061158498758999314929636516429738675845744779778848751196872058469058368739103562166939247719041124237650786589084965833703560636432876321644342790851529506312820257486039453085906572158674449485592394395123474431656993850690825125886823584928087634492141031598776836939625640551022373207804281246095185018925839905077702824355664174956389630815139765324553733111165290588503614103484959268735627465404281225974629406903865304550056261760465537309312392033578534788220263596314382100331410601890486681883745813695186821960125462741773731704629645568945436082585283950728177002204157983482035669645732189147881311331451954256370305590928577316472079335258704236051545845381039528526617170446392126283661211630038794664078826798387175474262753350775060626847648928347871095280133475972086113829450229416679290198299300231959785127333324384366704564705572019512729849729431091004880511315732799106911902628855885807659222120538488129630578665972323890439416057549219513527468984296245339461515111408180219810061917677064722377819513678423109684160589372109212033614475148656664467804829147760958437763365053651265160535809678460045778498107043467764593328562508860109892537475973291807189419116011846337997083023190751508410832017525931179650770867391626272599745420364515784865662400811168119305557785823845778967339469815196055961030189860895307093210201978430134743636880820957494787100107423723099372723162829114247551462865431044785106933187633896071656141851647537721095807423577035178337661666481126321901160380178796098206964489114937545788013814836297620203267423062354462179687520556059812359154650271021673127863346372753223096052895195474293924437540028449875128590365656064487127579852577419629230525217272293129310484432465524877094121978560341597107924215711104691316824069911997687119653824895338200877944989137985053892995171366868405279925863736007228561090078768956608133818507957157114927174476028891870401294659862149480184880619167971119952589439536632847491270295574212867367125522844994628316348112170372220576176535470610145861393337801212241131176440131580132852329434003869015255323572422762329086501631546972684716835489783916479166313150274261860426667527203511190124947067753874071236002515237853814278245347492287624873225744686533609460543512403817736637434773998364942129081400675866096941189676761435255555137803614386215269053964885089773723634844811073113253320818665433860424416770710755223609798045400768985663504149525944175165220623309554443453430148552984818334935912112439319105687498651082684682785337949833727075802002321150479950226279175758207707526223836456693128722313184931089736500501322729772939360223548522087636295284257364048251485125277796849520477021556281589655167510008166252898670170919900285285306004633159552558592646796251077830965665446665191551136603246757789866382468417662911147678441363908494358688797779638322952099764705722590396817619282433775127187739065097054478784579890686208722571946616892869610979760468383382658026278929720999078926396413704094733489834446380608613090928100268860930988137070381118615640295751119881765782090405192981233933085427258177468786472572974510524822936887877887083794847049001268636413645393628390041726458578666330208223250911773177528767475331935011582412374779404993382965851399099701120951285262707448637690178445080127871122078964317165146763962906560866836830127360952461696565729700402178479109830533014155037556650950218859254233320683835299912946671163122558969374893985664822616849972433574368056321988759591369138106935605890919374441420183412633820841460496479082452313827096616736605088261230026125415189766463052102047575773966431472280985054647718416197415421366667169086402082780173613321004177855079913280065311100597726023049337235720465180535999602881318517466135590015517596944521711857101014480292816576720796490649979447167314343721470211690770508770586568726125529451376372658077683689123054020380814008230257779136331315282321360466495602401435932974968297647965433471654594084278213753268166908865627113731509671951464903373252354016317673740813495760119466156428816036504846398013901800967229278023763959389878101148978609470644031144470373501641698172603900504556090657970442064571651524097186222594567820108007274754316541010002249445111649422939427316529861802661772996905286320264343987771019604632084358902677103336762374085140969009805913440594659337900688374630826398060368184036508066151111316278449772489429520809175602912717848441837526236299467157515694961150105720020729332417843341115865570815182036581778256522436005258525643521335715570365172677117974519532446313977966606353292302526673749644825916706537588096736520274508688993598433419365046727309744734868430509936222439164237272550659840338203707477405766190422690757306486931740274451420044624225942414346759467734069646236704553390809498979239604749824287753915300020285765160081616463599846768423121906357484207296917839438741032888176484520229392549355151511178119331426356858854186211834994471390221413682810600729302490667042410442551493836529023720739110665654179604779559496386278584577861091993158452182336365625280978563831655835281308999323269590067630083749926993854925380407631173633059056139244502895755804187823627903431647055035944703997337724656270769552657278641611121525289928244627639120771454395760838505314621937499377037920010253121873288699653490925999087737060741009004982580982458232053652506500774656316989862016175175351233120607504245803080754504116710255216460149269812610536667229316802526531324595288905628049561546148641801210101145955821782910562673218052046373918608386895162535628167573716293864145073810994019691163008086528317400371858520340886557498874045188019892566225560760525503326179259344827828360368179614625119333169429022223098981709102871470687193746597744063825306790209388326850192567828817165163166032328789076130061354610468224140775016258295609100242661996998666791565696826185908083196139649833223718440007853475372402991346248822041733597771308353158558331962868438200198591730690439621841924130335740389110718439694741869456352012899685634160786232696148610054002691058852707895513147995678111937456499507686574583146453945848188449193462310006718696144331841180714536946606453794197445236561193228706969323657461376715611428256084714821900384376580873272828159274365068025310124056116802047973636334973356474908804385565526501992542662863550659294794538100170822098173383535165943088230045954583041625771252960011310843607343444552420044271490457413377001191185765879468339088084760525184720190283051784971820495792146823579037716491525171068695794208785407837326125528545821874846021092433592792431789492118567040169319942514464918108340738483870173096126207749835291229353889130958262869796199943759958050215847482270716364505501792610575911436228793436900685880624076516764952758376177528321945586571863771946052612642628777310940879324622339729201015287198184343818046837973497749337879951528299027440349699446918219231928772317044316313427305248335968252990100976171300968681470108438655027012673982503250592391478346601202069323408089749521044468826925899626645584457831228654797151344324139469718656862927545878724304622269804865546812290278925463792873499860177063609083094619796125297009408046162328093907536273130863295638354829547312495378786180760875935166610059939825725457860356302934043160825028003465392976808055677459399503256891879899709130019325345625158848015962122356077876774760524170701495863690476831003605281752979671194289477203110219892827583681469562706659082813515001934513275426462654663839538422610228785144337756707764641366107007215235244050981563892329276075754245635277338573818047785313527036766471732694679940850889026191147040796231617066952843327356784684663699869516768171521276164180925222498080777083934796605628713826118016295829064424115959340052008757545665570095905076054448299461228995540170502592841866885620474248610158267662444623565620670760858452361420906102439373696968048658339009485806114088536789659926716640720891203948013191876973396772559901174570915599140687790620465298582239237734655838216494521348477955914960748545453960168980201013466322579812455742701965525982987372583788178671869612445490350224963133291252237680331553289103355633009689333975649767501736658441574167681136238524308691513379518219166932713960783934356028798486532057200413615610802816398380826914630402720507313518220345644718998557776418533183689279875552448910427461055034392540728309448233413553680726879950491496822399699070319975268422762618348740485810834898885531646742856954158940814797921711506180551393002130084871663694485679458141232705227579110216167921333708700760363786825237682177305270198823513996164867303010666078113531608770107774647823119361275424911552210281833221768807170661696110079023430397833353374174722720119753228265218945829872707940553511484434159408949459496458086084765491240407720631933814073807171322839090914209282776638529203978498475426479279914935951117350810623134517224888776267177849862197819765970519415267002472786592816208992519120214344995481776698489332908236827606617204960336396733160837840412758207121619990760016334622173675744140510539416384569432034525005057317886114036807825363477097684470435398731163205567917304283362722971368963842492174946967495364456255127045271889537817091238427023689792266204305022794104325845136911363722646102483980372366198420268771773542706903750580252263051114117553485994198442221275711882859064221916696270266220700119184321009493798024102706220767730054593686444185780407268444975265757847047835890890597414366211961691624269015456382640027071562031504161189075531962193204636759853234071763569214752855944266254059528595694478897058770889795555277067150784963832068162366289396124882050413650159277588729002114418363471211049351983304118781534476572663379987623621534421260214911772856510904549305264961455039602719988556695279081786750182046656720239659571821715844159358651866241775641054863285579304340790570117275618729104267441901110333560385520571238388908710121105911791535668165259501070852266398360691330277306906803217262072427241858216744427273312082876540000976280448940453005156211912120236776694519324361564353585991055952732468415365100738801915826679412462835596330341093809991100531373626532046121482262073986118703274039030150917038020715677953121019875014345435252608785593995472552382300849307796997459149851615075225218582752813224108815419873277813874788874147502591706193095267935491080381267767936830682800789063858527170051176529505611433243535119570765661970366193881895140533007450054224446392896107151250687017605376228172256480629180268464287388648956921011878416185199352292352963149013974807077127516255885490967651290966849598163086935083153206357494939868646869954423515437545022202153890031809731508688626838872032081938979959875006435163023745129022837871823377430972003239876313378999635449834242494361945804096083035081580715821081596107661907106724180827952835323243592099087420784507565641889013194157272123989707171801636739385366728317572777928656037712120398212582663306037093577699372467218627881923306626112206088202011096410891223075836357753002964262447024095940000165333269713240967111632961273789515001334205719510124867176991137108233239803085635172417198116550561641889776177774084996999389772613648327200346655009247805745857574675234477892745973216777309362346146462984586390283293438926332860262060550210373040465605479860174706889315350571696849912581811961493340218044345251786975799873821109434073654252130270801879474901303493187872762876916600353178292063783341393525431958317639862576407940858162040924006959208841579959962484252482521757332616712487478583505178480218745102703873969562570170855738666712116097628395584513467412262405715572879378420461296485629458497867651124877085459904899174866184543566049923570419955499514550217158724518561113813384363066766265627166937303951892317380363592684017954111462784951172839970878372187756633582294955238625585105236694167161446007477919193943139826781986327389914271284749693981407037431873022550162304205365086007224267335313629662847946419515525625434650359595406543329559097455413336123432719562034359521060536984422196150242320219813399737829328761487915143022748340691650466646091724218056282627256226940924275344816473685086486397727725489503484722761220798163735962031046670764275291307503628429658735669795133724984670360248287137097268327118079359229574786136791924082221755849216944918074822031088706449631913012073711928695199519071459858633599685346191420880641125879016356230934460286446107292256128262330164842768957437370206056368103333829906103881446896834767552403900576587173349909256305645328483368838816516019382591392447227443492621619182914147357934196743707930749407457876522492538203446869437634342165911765230586213245897369137404627965077439990641504199446980590838308284886445771421573319823434730502365776064118164558997167297912510708978422560405765937370010920953985710056665107184075016660698906819659354582421332357522017244688214493333010885763361127471239563600714035618744022175511032297610143653369077618420842824662261712198695679529107733232128274436081892014950594922466673244031731973690805876211494165716853526171245841165733656839981190122170577911303015346209266360467315901785885129798901920635781234060005876130303274908676987661572490062209452411622498112871957574847526294710464947034058809817887446338102135835242361399244721884558971629122620192092708477754751995974002206677499691142914370642015267678942919572454859510071134563860903521266218217302367101793457064350816569546297872642442316879049456513862859644279620727849054748290620811252439134389771150632934120875636527767139698250507331823567021692837763831223150595159208118874725877850989281608289201652869728167168912940543114367637191965599157941964812636886524859518339352179842236831198015757821379109958462118354130064024051698311882489424623767510657596553373747064485054406032815152058496000678954999798311426929491218605831125082338912145750991998450211229136279973814179561365802702726435528531252082136345045048824236266741330084987882678504903212502642018549312567307669171569744009982053654840531862975940733745224227182884390384120993050355069469908537278407188095568311480866359687767720856902324712328561758128660135647078394764780995430445066486488043451669922156278546443394108365189826384231872184615859302217469265777723654960776561050469870160544393263814269763792994311711630691575852869662712845949283601292725893389540188595742539045323986817379972156004450456019736683043194515034629450142464991940724480867147800336200313957174442204269328534262632343951789332543361026080554815085283260077434436933093710613014437701430167666871772708557098608432890494904849655575086801436923421334100315515548546439571260103171947383634624816429167254382566634124692529652836978608227364004183818765115667979319026904165412687115189139441464661392960277199392946010784562121748876879384999384148378656363329162523865310479615817867264536108788361324485251375792100607172817964586019021057647630107254178509094710570637286059489959823994338968855728481227033825291382619546131817894431112880028385779024465831985935621411824744406348545083800636806790348395257442635718876686425111603227609225963138094712911577370620787220774487087114286249249950776045155106576628648565149340350942520714601977701071153113290843625862357558313203848277096975579002338469977120455311953549011707318616605284819883853616875509185169451710430230874120824328963240692074753766182904978532370794030285001193033812673807850671373133814759395965820714673959483826528936760388258097958787629686507511063906504500458878001629323595107686171376359130132064341803521476233769622581048897958142912788970043008758603259727671498331579039196313587306129042795959102112470238531414878572759900564622430235740251124882039700014598549330027527593211153421543623292972627951316277632114808919673505454887391755636262335501413460806419895806376074407327076541323777587185937007102784962909562540971185767935925394186707635104974636508301366730006703404503214523778998845615194901562628851928733916961535508333519815911230949482831126518481349620099231257112594147288039203605546702957131032834959568814692148455796112173669928997194867530741907668575661472368993161073102938612703395358364457157331239400708247422047853174653050966943367170635586570068837005025331495704630081985437231888475638548821915802543468359470567399548533562398612556929964087582174827673368571948431318703793526373796656674508507303263422278946700280303847416387166450160394583626922226981752923707695616493216322336102290862123979901730326661239866554797235317582762771532047690713542081749662980006152395299241749618877666785259099923949665830995256321129140121637906856378710976077452819695243648914492907020163659668601953238599722425158606989074610854149819919108683737387221050434161622084673476798738370262261021457384867539490152382285938053786384938524695377563415788379081873891631149520217007213069006934412078262004485898404678226897083378658666881914839087775565891797272560393254645016955478965420305957271029159877861382979984899893985854427928335971010142839367522332220366976876460244503315787567302105408782912232946888073706359847713563871054263167455746852117440770976604148801766195172251777553808142546953251850555928448644699659894204984513951068622001583602705559138096879714344963228325803934451814757214937449793922429775858597988997587305057264670527570403184830539454292154017987763045685019834355314915152681804249258439038120479489363896149529259554773104725446609515989248730076991739034268569138444012306777785178959572130291775893395603751192714456375311117486659271638521818214839341958306532007939332376568693384332866202557255263836187603176800895013717755585349542811773435866011034789006113410926845027976781362524328248387990345936293840740118078038810763233090755756066478625126837601395764688433032351125488936480292166238944776843477560045749703981123205789151295428504778900990228943353302599882721615587187103307025276727162868193226947627773454038500900851785615796738041489674079397721904417521236372634160779639287069273742590825392333490919898643495979872318810494635000035604744834881351553893259646660731647676129758963208003723028982421511975208824303855058163853762522783039875861675981617257653747234788296536195538907274776378369573681155369291843127582348957858569932850948601105873506753525349078671544497912034083215426160074987443222807593928872617281954144918806274251444531739411131888796525563008534800447766781085795486257728727318401069826292306055625119823122057604283678393937786456714909290154396771462991944769416122523854561907933529368425458580560927291553688647397461967187354769221374625455708726637114311301995587607349424551782519226645163156416283571790552808956611734241305325627181048639938689930294690332532254021185601655723001346197229315333933847743417496615984546101331971591176672693459998149751859627725856475735932094473412204081695103132558403153922430262563443658116324656933605740400405372643748435316804842778291016290143565915686596087066619681471744175100578897403970317355432955500295489174150193359485973679126752793641071983914240092629315376260321007278879102925278684698936858513759627150117674672993920739329156517626650832454048009787434186580237306737172361420810974455796004614695151553730593245928546689263676251851711590862125771884150989238497357378086456317428831730962334922749437325038113580266527566163845358934734041173249098431769343368261409803010181570927556704378803458362438147949861903538838699515622457260159961685854968408402326338499251863805480940753529044578954509765435296845365378116530510123392354729178135694446003906051392902293012292194866184557311393264613645713204982731864059554373513406628869306094378530153742925916599118340316016817495286007860411518318474008983595908182639733493250601520492201837295996587097601161140780107439680689813011136727134431349673625116795454263896350414534557808951476545078971433917860793568082008972356281698264058879162884394278835088553032331280229682776523349272133377290274717209777593485402722771435369443146849683043667126384836288163330476578861615939394793020520364238671112934638251547830571598274449538416490965452707619824664394498548930514823671779280414814040808971940566083693214990692685627883684985400549727561019631417628386513889880276995958590544770406902556768323642250846170726144484883567739723623103631940281522024099320347543947750534130146083912721799972264520753749921312639753592930008479068650698605102782824349436788801373164772982091271174940230740549152873986470132018956997767340341899506984088124663549176495429892614050439556060085489746470469606841048086625123301980020547364236904649026751925550055754688340423176694009739194194637950098525417834182836471857431543238621929546743865516395598194801588302284824053601081852987432786498994852885716160777636298512913951056409956206170780501213072632643159184897935537603830832130855391421455991092892430855358154481703491742133379879364330486640779762509206924937539760468896222623159749161828354498728441727416625882786159122343685678164151529568902535556938184743674170388887429228312527132942745934250761508584196892172484772143270796662309244647362096316137401361188801082715070130710053601508988677746433274166697536258443852589497932367590765460428722011848864576819671200480008720411693872916678808396311655182326546603772594403857011167332300276986693586577995586343981144043391163443718745354027910519106894858751172520028974829750787967787540283982381978080209637831237084962852218634114299948779960400406821121639515601079511850681088154436056849378222127131316959075381786472055535718978521097913953694587981024611024918517516858603051930934791055838217882305991783676332942985642281942263709442645466091906837162311165652568065898136697988693344570590881866711325470002609701165654030939868282916572326257403991385101159753416522605332200744171481309240984581982030080368734523856183015945676079271886005355450195080232833186892452490650807954578441835773373420542755620511592929332531089429253117237478892737622691790699475708359049047018699775317612211197919987525111313493461202352143010577023562057661684620999859306134228760671296352950812667746930508946620041826484007615677470788423156807344046323378339514874146133543147461325535219811672483746145545486292372021268489148273827784141639555811422287929116488667251535103721073555628938692451220450142479061900175655688564117251175803987223197570296898128699671641581856488785949002952804121010433752052170273280807006305107501618878181761413638715885161124066214602770378551905476374176642027305340042519172710650364278163793995084547478536240231686912107296820877012852837857605940361131853297979133298754746251514148010630239911202836850092741864067078981699980173823264722567019841164708507517857151052915236913974409248086268580860028299084098046120987566400805493118634081509703269735630634006109446473565450837157631731146588537812213002560190259465057532888137611504896870227697316002466793756840606324282463508143747960995118095389246401157310901314051790042868266583165639835302324244140786345266892555909318892293849276171984499804301635348398536531969126926013144712180954740615342626014051605131737619829132728313169556088046540614080244605289715461465044796977706189739013017692061013332630908842815859714225125185817975470234503530293726881573385426877270506642145147405464566483844866583985212664692115790885712898270321626067378731250148222561399725159785066924657506960623785165426647650639022798535887438470343708751262761808995328925368070091015887093728757806770944266029895974370319327824283870859199841469034284392521913184265807546039484176585160931845202848446465581131786335084574936800251852497241672337395862959868318723256082617577269911875460969320336960267952810812570835570514305829453896841258364345242047279642805869632222860147606265842394444256344516948989794476396329648172885152703077649353581152167485334591006795309727818913844841653253241425136476739462976232743016544193228198455389151903414795868011228423293929155616533286716006539212406793961371186902873507461404559118398369030096870955300311808164848250796289778730785060354181058053574764312883302243991270099113351317064042607468232697998794393544954709940603139843561866721152784369293267879023307377134040728671749321357806592975904987112757323666885704805427673540220391341925844905405184311518999266954233664138749612389175253252620845876524865000249494416381314527247984103716632561903188909463586709966451573549523699827252345707655055173387655758388829473400222488501045048692493425824252189424858369617949088408487180764001351552248158807165985592479472739305261139252236256146345596391212317634421736859686217870665840882853667389874601119453777398917864357535583453798439066386921077884215127039426193889641676637891579335975803048967775537223388612606559547382067850541778525924952595386770724839166433789744692039134447121879246858667986446157771298999504255553901710138200315334622728558918812033186176291035758835935782594184223249556492442889563065374513878709180171963009786021276059272344035063397627792928027233622051669566243823289263742876387135715179557422784908980693419728016790529491156085886232319747959828484471324329269990272705076193901151910214094114931671704403205045770854550841685423395977634137079870357051730143742510426116003175624723507942261390662175685642438871104752196157735140850954814122887416259253396080001211686214721153085538125197106238471480543093392917716392878915914972052899959558461127064409980242007255142767752725760542728033904758589464884740051141038448073220251759100046962997979659807527875736527698401057293575542259554813122938830819361509071813130762637700945159496161654266926201403016433926808407553519658527902910212696160723096946349762512487161497033875604920866349469738994136687226189691037140033365834905952044744881486059747382840173657052494251494313246071196768239609622388503835682014897846914916161574414043525072199645067271591554406324846394499756890172001054126090137260154897576487636174339062913505129124731334958569816900565993545082676065457217412186100082870646448591236069079083232077444799225497186974457213426052094816790178165150166977671610220460732877892310744757693343588230869605524955303579180294094922533753593318066431794373817092629395070483726689894289519223224836812496220578361775050107380679422843671600639240500007945688778198312095794554860722592190430261936315633097048122451376097397363815439844594507479407666928661382318345662831102976393036536490456361940306379451266872505847851495830786549101821875339196380174695665852767426890402891981313421817278047188752995076837748269619657025686871142389902328047280311196877125659176186039642221441001606283463443888500765030723988553577285672799647288050528871800111309160444582566938401414439354578457538564871470545763434461457136773316589267526199756536748883935973226831861075963529755903995135476841094342162741486158555911294429131571546199056852006540004735989794478127920325186795650161579872156594839079784948309781944787684579604950110647476488382772652847712825794426167224599266797839924714581223232971859663540759954851389939240098352777180370529593738575730117532005370724260023782239525424744515550824318483213316262974106175256486089569420176831363523475392024264906526297910021049354501794834124369072246167343366414828765033258914895458049003770166886859744227858971952217635570935703532013189184643520275229122033222062276476556327967398957495213232958784009365253272079576504097209222729897326579811867990254978668394959717437877463992279970601158196775677573810050854474292435220732286378196137742281358927006795082135089972228917512187883542459629215562788234878890943313129470046705864752998081350445011827235833465522506684747002021835751875507061179466534602242585225474338645614240456736704472214141663276227797606684190542322849322089523680945142309705756345656270234734796716974761725236819055517171569481790171202519906125144443223142553651606300906787447590264056188110488365038860827378168115683257456818810817816635359843873045560578722014157002384031856734978146723352398903783612251627982194198478026110380246193483077567579914824180931805119542521489700381340254749748750064256681897514877454749825077215181164994346389819434996672755969130621768369434374521913693044848539776375896706847541354575333082015188824100642670343683401934151347485571783499835261402525577227513149265713561264184228512196553858800066989375457435058433134511490851159558384838322157876351976978325803257682476854349296042534006081962705280889651612827335697084666820196754771709827399436778188282543940808246251401559664422899529783645721389791224065178649993021284689631597184395751033513876516147381912512572336554083851615293661876187449417079038419037037408412541778845798778485210666706627119771495841037551257382613653065297443743015571024552721376145354410832810352592326000816538354988999072889543304674350752144387584268438031910517378545166585989407818024949194266217696661528791509165633691655730119412359929043252044381106016278333480688123419657117026906852650457515019963605850469335053037161757864976910667529417482348704020836298238936518765067481570816623425082785285750792404927322630289581121213710199301300579684627403791696123716369522553831337895176533197484876731006845036074253949501930544920701894892971026880161259625641722601867267285073338291321166897491894765801473198862017579217785306096460456923668388538239338688388406494170473477224984723136217188898095530997067722782758031442557615328491618531583611410069761931917429916338387319319330134075348276178432723742893575533940124669822546903427504051550548955834752185522080253355308451608268900767548907165559257507557604170764974440286033774934969208436181912084233982685862815760710906094535296149523256179724161350662498069864182643579145465157638977085641137402961423011902054064901323607196229633519194147570206857098445382537937857312732079594128438035286736598297709403276571621492093570801505145181326248541759479277647849547479536854734859949378522959211392688076145738828891505344848461239829315712123682982081879112063444313440583994819014645622850781389879358320031966198470020270114815124394793163630842971025458123033205794197930641358797898644198122144464898580584405360510374705661564672920191812149736544133890327530692132614432171134608075175368849895853306408523663176855571924106742451411787745259046057601476638523260043130341830404432941365197242139157676907166756575405043930407824770676708911969936737011280500787992102982656631061973448277931799645462822834294440301495147073360352474824693743139489013643652172769554167852722253915815124102744439736134913548634532879297263557823770384614094729096935871701050302566971631669163536928302839764155970737893343181569718776467680091180886104616133789305784704946052816932127736874160516651338187390328049544017058033848836102659603244123201456094652548222096717851011849471957390452296565705515024816931402060658071643397042402482239912039417325145056360864290673331484703455008101131274817769436129132328650651629285405176931310881618693375324570029826899839959279320949259065431747281185978291495301499984151327605083404030953736740122364437171140343905246306402636726596741106462009249683993430733339877415592091909588574706293968006770041485322378615898984267947166606578163409404137235761855991832278793237227345053237587858266113785557019564961057185449989910828747881270693815165994719327178879861704807572351982378136945578992897811498976186670871221405176233971536745593856145917970862145615977548119070442035156397356803049460603488850124742881764258627859537188293708545073569887496306793177925374438413511692080320777809874285690316887600723410425828745255704669936082772800290478266354338567109775252860893632292114413661150712615542642979341991138011954188580893972954172625805660962936864592924768334807349807163277819744873503587501093471614131826152775724834461809192506618276537920191033285086946960176924625519286392600237285124207594460402634589056684797437017043966483059566180503227878269419059589546243950867627816328261011796997160509401817362143543480492197550498248652510638876252326477293934783598353889613208308696503132650807699410407273711111068960775535966858538902360801403484778375840077227672830722457157832462554619112844194919665809337439924200140678513194747260713319218312093947752182210583477863530231207432323849152168287966684656011244507986429025753243784349627828350152421273078812261497353649983499170584553340307416862028639120009950904288556527982117076097495297127068227021015227029976668134302832683737999064181298009961470045406079819392303610307762619343631116285816168509674047814241056257909630932626193843668586594751397780293744394637900295131021494835160093252520842543650397637433482847287311022523728511475811023542926112124268394388087704834978681860973066860033869602549646113990942211022253185083827873709366920319326770426707737648601033535483719942970398146148113251879567353218501360660388716176038897384603122554673819698185158682358775577095788351964827392466609709471678392982504715166603601553109804180682784939933501790495383272898244009798057119226775813141122923379716806404593102834976190766426493990543946720584925625793783876533883503261057825695654646300911970567205431020510187687438635939036414567118793763186829879633983997509567587917612857023025179055250856078696000825931507110014928724178151444622095879602319220091673362362785733585287784959528364424468684286771777588974015287424696569574756444024904000293363557327905575629656898929162545867048972274888391449995293718297551645568785091178930788576925126735718256999722354437379350651036155758790630468235725067748219466160997769215602787297121205277482146325793434226247905475169353943134195544155342202709806850089537655469863071334213097004105472442752868350040392936520200884397559736237659734418858468280421855705706976882498674447674389349878786123614746275325951485170688197109043572913189976941306007562198228389594668815836358872950379173024825393688574409594829049245494982350095725130749726871842322434938367021429500110011024257549475165765186343746654057301114777380723129434672698823955382390027246580378711785202545014607784914281256263224273412600817133926806042323321017694873276725517795908324758471543016440880047767689477457447857510170380086227786799120264745915109370184141873286614225653273970619892533872439462203531591558008682472030226847939831937973558891289388645331571158442865709285749569777318004196063302703176808162541253058073652348498623195478621105041550110545925495811062441444478203256500139026033958688511372810725223889641943518704210667270256441261016711693060844389903064720864587819781702327011570940375172143369078606797932692257885011336168489312241206744664039740558036503378926268962409132045519623915217588765997006178553705950149211047829578668958762018967511431922398403454205350868083740391483065571806816891065667097062138580089866730271162712326619297607934276966555225474171929105227524377753421576768283450359446614848693636166275695573286638134606352281248107401772500691447446171907428221479575808646998275551145274402837035586735191717138893166590555888436187717419164112205441397808714059502248363608768589995893861549549518273060905795975258144160903079143143428179102880822230765190397432706318811380323533099648933282967041297997414754908132425518524666846985535203053724159340124041379098434697407375950052079451912366067204270185659974330734829392519045429305268200117865264841811148050390355836073431355964784066900556021114871022601576949546472170950054614175265189036191600782258162503456381116394594438029665803894968554094637606631913094976871979894669848324162605220487202906624709379793213093494125010803073082876584125541309163433780896691169121467327399783883917170991669770068142192043235059390334360271800098263229691270618260350097067821366291472282317517164399351627288519102770404093797765097405364463756332186276210964144310957386333093910180537238079435934788522604498421028514365966660664576899857719013100073695607847042507537566157695904704441718773895414276960223098493656982338877734456796375315648715795746443545164015003054726360084823448304197124698142622801993612610057904862055266875828858211080378098823037044949052227155615146724589272446412782847217016199862798213490588264149202501146826483971917053281055467711997039691780408256702998416479556762050089061979223000282377977390926071203852441042183809697870728436388932109523181334195900453861051053551799051430434021207935419158439663107753231834306465784987722255108268593960870287413864519277946496643077788881996824986595909286068016828086926342434005945306181328691117374608933811785402174907507634549323293609508519319805294715013785428439745327398733579953645094548393854281321123225234490444341483732065706833507819362082784864064251580662232741846678217490799554280179620297423458641516035220329058949853604743103358088140387702239452983603552672990055797786623291809597819203583729672266003826021270873186254493234668911248604158204844539445873501062947767605830036364512035137325312828953608224375973694940005872321220272678955744886299884272445202304545491340511348830259303774794702583092597679222206266910760084037665206384064094662214796207649372400566545190026616604976228201228107062692775924537896824891560807180094492639476830058843537498716503239793819494397409934648892963575859005258875495960200773656151261911162997714891389144974905034921170060307164511003163316517852743966170240282799206587769790245974279652418468044645613426449328909749062576154523307793745952353704926696403929052445273476565438898239218673977603638051593640868330575906103800340969210814421485173314357641713546757809962975725706416785325060608185673638515363893827063299610014832726968325346198642008386973369969698501897982710906122286325805170566834560270219491848300530871545193354674684347069296856216110296356136743520804031883662045857711881059603636896980298319410841988881058382494262314003548076218657280299499148003564356767630183951142425259655654161593669386095813778337997182497291860261373787694678298653828839015015388364672924244914329820204664977651998512552549908434610160855603908801602940547189182444650384766711102511929393039814639027308123400428669318445922701507742472570437094679079695730930322767461878064056578033781535045240771929691524309389433041836372305350273731335974443828628514991457967899364782232266379165303617154417241599580053825940861577018501474891625579466695213009648050694149619097169986065509950507682712690532399714078177996401175865793332166260962050492855551764999157830683873848498805753513141255542334183764335633909502146424131768104294565252555786901578964444483515186264053189142815074705333938635126094063574298266396784983610328573539195398590898650680862885146318948877939464449727128020500727574050461803525846460333824727136182507049044945180371832785841749907387821206880879837178062840941804494425809243483336797236892547941705507209444478741017441703808765162651811918088062393365939886576135294522247030292570314986238506462635359406857057710879150333355609450833912602844137662572856763643096186087665097480408197396908504022116272942272099904666228934020984929143639020052231840500039944653336273826442222317035053889109304314359947537762330100391592358750648931874071598444868442471813330861112285427777129696206898490521749421202874023799214466784952526183800745518138943050544254908799977395912838500416007847193704531291770084864546705781884700054569406730048584198245769026402720422785819462370901640321376269081585320799075589963534216066291437134525687698967594373010150512230921858728984871190782711592293123535658699514734554323477977776395250096490629141424923500445867080577175711612341434832021502889631256335393091969083205073861740750680152698548674082952165805818826743917696976239341491624652375974763902504796818470851171555145218835516676187869200898728824743622335308239131397795973634007072216418947466655723518062007447768638533635726867227173364049979699079503818167011282370395866494564596471499028556930498693394563214590062591632157461718636435165366338910059471209625239155181866811081550288190671147138943920625505362067002515461676089357421970174066701935852824856146729188672006463595897043232054402290275946337829070274112348248847042946466230656129054599058583189504474739913840711351315186250376340179170722141744268496788297017448533177766631297430475515163356902082021686103280528721967625786026164330162196074099174417679443177131934933204493582925591800636810567685954965566354592434711020198168086981075236583944239659174991865433357999091444069778024604619699103825369839325788223581466633113077174155366831568523171783838235815300521510535506474028084967249566095515982429777922455119405162430305667190016614741982383223314867198466135659862247910780516568379067881878219200776160266564862678546743419725670407972022379609340929001212757421439030449320183582083438050054916777817669540734609410107644909161345089046090589407665118324466373168243678800802223184093211377094445689571412957678431495551386453633948374831179481380074304623673176307143835267678404211004637159651309041276655915976121601962624172845052513039617192851750711919460868416071046928338960068408325292919811995248202357895077820455437798488621800304836434829798485850559792413519163924388332474041362160778314533935810110504891343739396450858320198933847475832950186381856843730177999808361481951585068532159659670267310115596571985998390600633716222671574584485232276267569708198148013206267246129371649265565349201565487307616867392048872163614234131691376329124157687043940552721316206085695047432273823764957756225576378959878377349399830207754001086164764968239074791615192928604650574143487237698539258909545576660794158367280080274751015436168244012502205432472692700069021098282985156768014139910499461540792408951710367496512678805127037875044123286208805622356283217490579046817415878802114318381206605097844866868995516096753081913544557850795127421547658198545194158122813192978552951799822963176301273284864721207886781296598991269409640418008324874466927954644041671720444117806823916189367120310311824579183214286403578635777653322707715745931998794519534719393919666482876691309220849733211961014669841251584811311561436979257171907894454539653708180354895359447743610030817137267468671692674611112386517015675388609331009373739679609454767390184016625479354326506018334484457968082226381026551020326529911932724754587852931237513281625945726862934311550019571379605548883622125834552264734919299879517598957066295990005704352590978121466024493687353025166335947230358330816340799600891737686884254223929578322063665512836869872930706885610386405013477511872469307637269236391029918456511071957469037433385150289306738172948008479636523011432839865421919511116924818852232646173344343184057121432442639976457335780958482634515132804526778748360798347378883792039560805761939139788778018016585857680861963851317000661555124019023317692188815403345817345563111397874193300454300782827089777042461575289727901136909657661613601502394144539211540786332775779739468218080247482776112890940071006839128505640007257047332872202132366567461387256409912937640405543623622173099910059992159358193814104866613614259952926066239678206898810241137568474582198174933887199102549556352628664488423414319756453824775368656755740201227472207811067902741474019526016908112820740190442716357924523614688780190666833293406301746579234447386482872854436130512622637412426228056635656606201810123249100247634499450191169019470634484137319322029458825042532878380404724689678830380475135049894758015969215954708388984414809761569929899747568830773209430988162379586233388222537192011623531458323672976714473297567902106525509511229192393416802001503153887783412470540017809467906544720248257142743794049412136615450414400936115523818911886406191154546918725259345347606451071584173789845400138034220734545721335370277876425439908116186867416867837164929092157026883921423994978470238122640527654229754207770088498031292802138935581522927655262466998726042980441246797308315717948044493978278256415265402000723249014912528433490992667637524050294710071966826233673860022573316363647669362242774350878722009342612077377694635642288916241411957951608749345800946026678337187055625046355203282901453749514105980788206296785600333788211117662409465143911781672033906473148503635104429025712285643484337653833470014671024604484636391572983316514030221616765902497039869759749872562798311609604181975619918465450368890196040642275355395854198945984863024760742067274385603939779509810821517643408244768617122166871099845225738472716363991750438632646851893797003468162129458414029567456128074433615701559705764510316056130437463731352942180169721496136544606432552469636626624211183489442192592154150859668668299761574667040151211344085932169018508873309055529152677209202129019310460226527695387268342529043888318214813858319691809807134669095322626191054118241202813301893148116923986783676006246103735743487054118196628905456482923617289606196965813125027879486298849584545270690979838421473804717248108921966990505924823534894818401564225426377518194280173101530449836345021813524562072675950919715226975229342930613244728010144590087040141432289007801162171409804798737670247346366147266854789998075395405743993588422691767930049135088808580992710962109794397600774928011331255241426665314516360078319841393610075962111614924689662042903450903239647440596595448719336937969848386061225973481842014168942186915150898963904699661521541596689824469321266128181718315537636253227815786844495036952469349297400984373762776944093416325805397478130144895141423809791909101175511679271590513747327050115865934358430113976458169873735146001567625320654949973621063409298870868644661834302633651635902276813942911946761495397992185406468853885821680285618431677243325604490211899770554209460737099163786535934532552179069867623970356840478337964222212797457980790682130473665428576144626271264347531656000917487883215694670075043503672629192494813085774416132543598769418239116808395819156179403418602554122192842968163768699501394933067603566449565455811817761439569486381510351121786553021413051024076975127998317254307327906899526323019508160485706978331998082329977590154757205354912509677182526728590098408683320768408635543657757812643818054036195516871186285812134238412895719814450171201145874537648553667539412213741105757233106772570796446551683228423910467602776502027988667472347869869613763624047738719004219445861515159184650852587891637443005439351589627792675731840184534912920782303482814582564719503562557130827903972948365166760107937013905915582990951798588867496841789241702206625895672064024025275222039559634220394668031595901498489030252774017162102691986192192450291423034331548330216897736424921351232771563740996662563794099899303175945463534330586575051418140643602188176051218323303767062251579648530634346737797367620335787296432073464534018249876386292263724192338232313915127939532478704402864233022425165445304748061387420798033144798341900380842798314925095958957143779272597181148087614764692450404342305093756524976103654758115705496346453558781850748053954462273019000545842254596650894513209162470017741131152243197498692231894273460481409773389109001858739171185060986247278677498066628195729978074270990625030122908667936692718942363593091005297492230194081031687131090708054447781555254997331098386521024352598262566385103204610553162332089631109763013286218600429135997800288817553980347574179339587698161456015035378438422446689042778245166557074546684166928663140452959713799092438610775618266716878010708825185621941192081996454025137350309180136006706545049315619660531433420987239156700826025576830601147187669781886342035792510285636457044203644434272867396590855959350507928712151243992358532575047371061889397047886004977847245707194579582797468630440129484658056046913868139392558052363844657942671597171828421767868776086945646845763691130820238904101484587025817466106605106579176071560822844594458303238431448288499348167916353608763685704733394896110414305157406925066365634657732925457730700086081836834513300428875676537995229342087859821363576184038296183469069879835300914099334072600088097264828764898065575390879061695929912625035708419678909833908189717574520230448050911080981770148077564697349222695036601133130599656997488965769693189011952426380584020896855095211363228405193588738574844978771413883006420752064028732439382437169136860385487722073391909542500430296371872958469578900495408613040676127059993190178601511565813323113997540485871433608424133482365641881498271128379910335751061632648773886213356937593438881377406354211495636496455181432043817841463716868866700593917942617627486640665165270029831132087834991608524868797580912611791836552869376035111254165084033512322520427156445327752788370590981605055185764382556145576944722278219764307895867911274460250021606019949217722377999967766397249267956652745633189372908892887211797568828398349109754616833569629062591514141795310527789743309054359132467472215132858215805061715291536245113893666152724654916849244406039041293544198169729993860240274599864526680410217152037704585460616749434216753759660120664022494231006771905650203610212200173245224666910446440806375915361923737942401680806938095876328658613640843634066453616940694652959966975666034918558121897311653393120476421244938123179892065916689814762646806889628285820894732361944390618502803178916220654250896714042230599621699326162412380770883984615980480557961954954696401679815461587492815535959695455724925870220292915163813083942810823962091522824810885419808603536905249590702163634836806686033474847951062439230305552207809767144688868002443754849469751149980605279254403332925390783502438727174140517698548042670432782196600773359152538285389502562176553549597119278284477541509053807036998842473791101661645580040596922711731867892688941301490033214255638685113228533091188470320049623961050357935872020931752294466309615638005860209319036999335495756540353627640376005095297079040814338244267510834949080277800454167677614168344896546563093877256706434363503847033027101047220604849730571665596461142133154484544223419793933161894094586193116678534360837824143103614290554789892514117172420448716476429748615320620907768846001823677402228107423501734243670200078284903586800238732259069739086187713381384022412410759931553587822488874789667739003385311850181959306815913339495788918390181722104511488075382172781770870685581746685573111571149169302679656979854560786141729365157706244993736068570940408199354281360743883801536323032268127159696232386893148041094465962038804078630433376159365550409619985029653687387438700101833611964396174334224436992919246457654193363536923079393812551402317143446051956499839668480262174747067160669483280852812174500582978389028328750844531141925293356330753581180413096825268678785578860326952133390736195888936647850902530101436382784246423339346016849622977281407466300904998532582727977844754410311161201657600947884201388592293768550659066547651089454172576841522038035820022014314989055751417093359150150705198682716696220151292737815739233032301992568117549168673525644236934721464842245954848792438889796992256125835227678847676435668661345448612004336738287369256034622447249562983266143193756007317299096396138829345387463072558730335291707922981685322782753300187932641381597136625066341019084158380261363795398438006215326986083404604408311779416650362733513170091595181043946454335548405437138627191410156458179272680727953359063132448046003329142117402891945381464213249037784169483702267771915687615752918294244380237855803468344072555855759351469936615805601102786764301209458058467070921479872833775849361871580693367191813843206868776389741817173532234856495458951617969647841621528083730609880526524603310066847545954705635664275500014075311641894914913286999374344329669235487513685783503858443478122223869883941216962752437257540529085626235264745409688676815126730059148136158912568523073605406617519178357012121443713081756382363099963923149389386560419412307576819592130042100425050268264531945237545263469750290484148374943043794737307045792402372032239287869917893311281767423833337876468695021528191746173606549669448195374862092425386836836237865840476400267484808515123876576303328070954914649278206343608924631795760151010707932769399848960093350037669707392983037082842434303287712429066944747634302757593991823088333584928886996163841524647505623654905670787173584533669795647801076339759411101555853315785663511270055635659268852031192173644505303190216453347745835374179208120334907013815738844857228328246246074107169058181429389324232962876355543579628142002446783898869365442781102906495153907784287827752413198461307839170087212220409760103807340839225276966085693364681275829106566310333024977689969973921778038062319338624160775872564341070058063542881090663910873439942244337946206661265589790876777251443731148874299208614608373283896209801606522807116934065595719460432477048729910153803076716160045828072769752601432942915569674703630306130183543842310293786435638662906957150223307464741762412900137892692702957396752771187325085558267287764033530262394431480410454902382317708382174758761632861194368633698649616523640192275763589524792532820549512479882105488031217792150308896160545572195523620247821272248189226847659396433385757434128553152796068608477576169866781528177720704096886883595842382747605465251704740183684518898493703997611903350198019579274416833341658226732824807922368346640223968665321664101806554284329947208980851488107864757510945606074919611541835094375281227023557221182383797605256156645967997887328357408672509101219890746276718067941595140257972173815794005697951181344316412055719245912533779938098094132972546878074306166546434956312636781161667896305311730940432948312356420299152199703355078153303030115846787324229918764198816176978691794387765081782584185729567750092527531188792119212551477295422232527058716106995868545886815602644915391365419506832042388581066268519421402654001262592824959337811761284298424792502229903494229314993317445716885608618202276884593687134659603185475129843338715729723790070115495129637471206073974862755542760777198123339827619422822905155286743308112275930507108217359173369748908927843661228189147868366908656530275052363687310796927186455302355373319011000362805818031236657999673138585844889561919982872591789723935770024112991100882131667406873744016742423079614796451785172132047421703555987040081100204196041489581003005683469186260285909582819154454017177486068956825128394662545793737323670579739840129927039725403005004903913709209616091104380906804144353927523674264415409795610392268667007039253746033785267206473298590575374852550199217140213372442194180497844937225820769114630825182598304694826942256047800104330760561676074143843765722743950135789487426536186479188849632568188778623906803172192754647514873687098096981313790718843722194286940291234101461820362206747752263517500964296261235816724793437232623649549545597290664329847451755968164905777943786429477496547135153360042136472353457017793437148841562519094485915741213847398996515021658780392853537571951668645691174217822847421610087055577177814406803324451985379718943108307828635191363491908061591157183264244862911862902996633154201394201982037115389599336990843960341587206006671230478480138779137449268310717779385397899189898819256639883081547294089460484874356297979245203846778887073931634001420919997059869857432176165071939262131122009699321019081933196602288291722611327588249873109807157388873622527535511088077796925990977233955582264367775081777190517418607424531351809839833626556887670520448976123844533149529524805549484077648158549666928225148600383918766807954296259092228020932450925720289622650083846869421931915315850150376409365346269378719737135988162041255178041093590429968325566282627532427761496887930914917014186125570516306163171751970333515447636009629974729977800632776322504953631679237466939784360586634794960809477870504347720157187533196533919890217919888177840907362480125696172959788153688535671569618171020776573531169861196011536365930210496412811012653546438890585485406334263983164312695516602110486284089886305342868593451398951220558832892017093759628246523862129123048842930944504251038821832241955128852512713145103180113237934565925614921431308767000398244261182849306820075761342584301295456665513817830872746070794352521592125052217489128992397430250828600498120157031659338979318079515921710632558191215909611335879910657219338554097253799989619600917543255624403938410186125341307474047382040890054203701981080494679919660083230702704976944720417831179057790483635149051197927119741618868555539954762148569027015219958279024336539391252299277303209003483376802839465098186244019846344857431676421546659721398437865029914928307610103907227415994402047518434346631480038242430079403016380187993246543745735271527864194479978859640464771654487246439533939547700667612004049298779715311474984904751220577705959335008817367387157457825432473981650264453608780579396766469655282800315159297341939849620363710343513616951468568683135384701766965633876829144585464312264993443224158058289351465958844182105633257817327409758411430510569690378729504982734473821612581672821029842618685531503366228244628240780414341572517559158373289114835654533479574010457231678675921263547372268735586458894534795282356073531146792677568342113799701650462553167572008065239366494146571594301254529557774962860782461268272073722086363619668752739998605599473945885803563330455817446976433419218359771873291548235389059293050353511863729509504635358348336363789018384814149599109160535901177860790231009968257278733674361985076148323017533930062868562004569957253951703137730956272657992952688252487170786875960888138331998843773345141685090697141895862648410042459842832727111483152905366657099841697025360647733807050361065716234027459199050269526570251010673558017476183708294542269407016024294596589980226269234009311853663690264806118754496565101604854965967352959117199570988177174131830008987724487331313149330016892496997786251369323407099073163378317113378688548277312637245247515524881686772621733733083847416508220364495705120424969852213933072751211916639493997510096739741834920181310926818794643817290641621666180728704251511983718578361500259467056727775768674794237055990099496586196063148168704451194111300417190157372791264021183433883803669708401025892238174533722250710768511238924991382755498386896595075481522985328079496446482379413054324961747060258877946450562137433219997292587743011619738411303464693810230503960462126336372723829174488538698501426825222914123951469196261592689283315032616034420336867987100019750118349503552476911449320038823227380663634219596995839865991640618809257872720268343357159298173472243460800460830165630655937951515475951620689952451090985846283803246081571696152905012378502514362339746802132950688449920610921048077772750788387021387162076392919578372298660029226841891505712147347742795211363821854165784156455423696052231877785619112968701328728786756234167509877421571724840375737180359134499216870276997836581439080669876035805624127327121737653955742324647900942308773380801453630414145706351479698815989336871939011469568711091629785145096868619000600458657568633836825748257186650930655563747532412274779503917322427996847013220456699572275538726378984466084869310747645477552007374639906459780284780187149822548834504279677409631952954410205638823953115943632270135977151153945707734332534143190825134177327736287981751598135849139284601807712425404257468367285381207090027932113206637230599338737517633040785794711960434269384974379163157950659760270097624942432650280936591584622801204882270500494932110602541354969931181800549774064215082870768168504006605439845692825011096787537421294297083610047521604492512045105100098031019042434251753063894552414200272224940830143837259385288172546722984581848102136144258431351336441874960405748043583357724434912086122867418018459548901708503470419472279941337388037320815395391394354343799745804079057636087976577050466409837757567620180710875263466060339057552160048850667097808717541036368520865150138679069882669909359438588773538370851421491911321836578731391894621504096232723344851852539418381564839427711634895965194198644120122420992200388623503141305750005808289064473237606076198686354909003727168750853384496529383865071511163119610341438713759132497982432174355666328088745898750872095554940602934398440369624857765816423107162519208529204680587161167144771434794224031382946434600828194972969723157581083371638816629307445297460395354890993498410969070385104301996053103585806126467385000966502253837598989922286180126709628727641031694542210423310149440434383190592358600671846414063543830040657641534184633759740960129766616516196204884306458971295132705241900191735269318392929496262559886381466671154057612889216208999942096932877171906269809825885296149757996975000571234220211519699943807902909723315047498663788118892715803698356711833507789243704344075766481186838537384258053759043739678299206694045692328617600309854166032466738284696848291708132310593598503987356933623455614807073447449177055314929732371963839153419460690807601088503089079496525079803641052628284383891894013848379032573527848719375421709172566726782585611690138749863027837881453247069762053046528133485864620370337670678536584360611788425210550422683999206528500521420436131681052216491757254401339600219361420480730908389643897817556003768208548917589319424342911375556217789848149763242604760236171948036880370476745410478747743828825514065093016182159058934039618824405380939230559402310899957511004123384475055898548412499028426442472928032458555146771467847471340924534289450103327254040554833639102737423919147443105922588968726284858084387366378278814707895188467890631299210052390744436823562831179251089640088566509619412709139545682742355591726374739736636194494858648828055864466970843075402485764217760828477193615778240586386549675186522956289922021382670982241365505806389130621721979520978443583948392960584668123167748636038564322563935916095774698292273593720972294687291823966593584507865541771087518509941341412220423194713936051231217459733616501178334792224970011504905153121160735637468064569977273761568198578259763584133937080505761678903573921028039948448253379671176992263272827457646165188563476729512636044571280424717663915380497831008644298757836559352601646846895843610889648853911790144927837108191047548852634621852620759803533489721814729950954031197377364597569665739272394642249984571842842852477389138615141049771767961973794951554403320851916472306706370462691721001132959824675614431943648571411691545558618061535805033044130790606256543759376641218703387029338979574209752001233812228807911613786310876989879698480970102760373134138204067535568027252660174697921559665278569388346577186873984740459514414455610284340708839143487476255502285641170567086581937959753060840421332452001218586159992198267650430656736918364347433334401486583388179359572580920865672392457264767222226938781353775415765917449265824708995502897915346621535150917035335150513779169834233916296491127412770714581808480113941663921243721046481556209216337680949836627672950875587154894924916407340275365335369159238634466004928547831385586733838691499995550544848224460471670855067166026551879356703600931570659714258008566368383122456889705936479666962504843886371311549649055313963470588853155228557617807831503510971365585696234301323491678502795803226287343685181430831176477101784166304215426047799771339831070960814637207481896895035901632580193777107868499533328859488137660934482683860745018636716306578368899538358349778056231079503510555356197118575837252303094276373778323705777452539061675275620533248862464927815229738834621956927746434453860468868979874679471046403047930817950575810635710357565869873416018225246457329412766020448258249406650908584756980014267027032515284155387508123163814265276326942972475811565955863087046003161670937334896005845265167614994562829943971479057390409491635246332359921631175003078516904641710132332997691596477266920272003287609209398989715067053050747214453322592178547831967205359788601051084109539363255395422665941003766496635637214540576751835480984348246948958389279464475635829773344184617889619163475824735806200787072099844960577109736092873603164152499093793086823969623295602791593199492782415434335628513495876559882165342131627199429366215207964419347376249308941346033427786778014565988543943644433487744244110991817743916849732882006399289605033860469165370305464499387277762126714892041839192235820433621259063045574633335940455535649168376053288368224181271518041997393009368557816565072175719097257037833054655057821818494272580717830905102465955359073813505523138619360274523597098472899573209310031875770600344350517671704459265630814690944173224701577545009285771225899458150827173815382338100093886705616118164552867603711046386568964813862190647893242690689666467129949303244777763948715484288618993170699043564058982902442210132561175063938154169377914849137948139767108076866429712128739594949107215296682711636433441715265630552078149157020422468181200420695838648719288462146234471196965682228416379574978719296024583143082946356614964047072204463526671806050602320037015171293129059687224753655687177679597398297508595342643354440609908855027557683744488322423235658420032453310885346317769848422358435101208519159449744321424812870382795470358130915346051768454034047513854394327960483169224503205120175110915910666495435386880103888602643242342143646657372779693932646381758647322809994361578146728018923368447990054654542621165167604007695876240184952516657055157029295151986579891726449129793449580605982488501663664213459597858295649150634306945135914674713903518482363582473244009770140162728088178628431963135208561452734457126932986408463368260143521468848803366977054259852314119095698938619345838121267108974314808479268650243169604113725647368903521728392177146343007549256728802149317391077176586716942770006708075482827174614825731839809453896815336469320801883914459080080353987276595090127976602645419105971925288406999212169019155277243362558587580119576846093431583699234652644255819090773564202981650111351332654427627119291690490418264553442268833233092685448205511366778978967834516946429892683026655865704585118616496787847245362891274174357511526702340642919056387266277136458421328479155404553656325450137173618818273919528105100468577855957258681263545211197754121423022002795375664223398357717686451355877723403233354736319015778019999488632249623523059559331835663123958456757890319004575876334606151458610434277109161141131623431782155187019720687775109940549805996319327322665663103660333686235872948341264900484956917718080428242665114814554429545096078127907622185604737782839451351357727138230882551127412050104273729422937561529994344740971488191134041857454284939320428126960337521540491769810241937436284494799708318678605938232298459706733395203082943434188133230574029403328748223210566507342270600934991952900956756476987663526135812388566056834115229191845453334960186549089803929803279102796896953625487782156853524777858970398869130806478201319214372481570618441229418274799202124502951557149991610437894811159908028125371198441602771006408599434745849756126659784484953733833896572046858765914206240244746074156635626741872240896072530855558129418975686522284889437476019826785437639387764698947504517408633021924544074829237844797126160823277483941402841391852837461834404138359558535911676562951450121191089875081507814219512516931075694919731031264450387350549669761908434988916462915144580848668056379798406776848794988108351692541695608838260724015727114111773399237075561776300052171089995329964081878520175506698920694956817978649181972292432634053991430660488821515248479384964544699172614309720545094854580958934343091361543610411266139584042389626834447016266638339202684160541753623462479927282269660998151238967718249615282965093477247886004412641621282794905374046190408320799626491724294319183971391556835441878708424089735853176158013940205004477696556453330566232018845568743539119948000938347973012298436518222256694588896305888676335760822451753149220531996584648726081923139525287432101950732981858722993200781126801079106018097518019272983750789970259642074152324277455484960346125295790067844247761621541422645708858459183847007538714529262763452967571216402484447661556121310420266753751506876614266412348307001475029841814478708482211810609154860369608044471295267951639222370669996642584881472359430288229803876472866715988547087715647213540950560893342141283425596195137376796574236161879092503923505628048880827543793479173665705056663321100633689473988681660903124708173968089970540430706672164324368560088817157285782219045059767023557652186913058658049956390409710791583207065255170625970774100432935918764482199881211891985132866077591914703637439986311566440520182754466150080737801233740027100371647583308558178663503205329141783769914654243416354496133808888226830865828697486372476379175808720507020319931520569946227941736671360605312775467155829640324181120146805538019365078372347754693474776603507807624899039443352385922046237571011308278720510067292089984865338333442846831213304828676540517705735188081875318683907160347640008140511257751810344360597412530024402636199962976564649728101314459015656445031357173674433833281634479411479022656895648328181230019136867164547568505685185357475074871743156126175995650500776820195964343616710257114970686110019199577604437584680847556412599919979538446004462907319079385910619904125136008353098468943528629275774581866323329659091253855210303212093929826643638672198047526242789369038453430664828905403839270746512660969140092071121296446317072166382726036512037610554570675855920681785131374732082532107730878783816598078024592178310101972076005223922326297086692739656732379723549862588464036607952398558488888146676194980180259763404521468360531350666088978323005563209267567421749505169840749564015858482897737624330350595238055303314600989483788132575022775362746424970334078041378951035341248074907146674472420373007372608320107528634681121884232066344942694805150311865103388777100038014707618279102665505406931991973375608696719475248472363502862309542382127745755039272901909756077328792479622696799246966501445812241508095698259442771672765173249322745165180947520460935223501399075280079952368874789960094857931659390482932131630078218978031192878719007974150682156523268477091554828502591672634246249063843248151009885244792034191909134824295105219026589407003821646016669251006625737205409893491341316702216253680733980427456272716250044616302593364518091675368349820869813974818018528029881787499700919631712229758799205413068013647371032877114484040983206517347311742586434429267637956015566568278670674057945911702322500210184597668927296732092034014926040705800395042439031007331816100024107233641017894715632360501901613980956284391885127713422001801242613487484794727593429645498912099480920715390182594948704557152967016451026973068087029212453973598149684663749337916381902573801063378725739951881990267821447610776185012052965226667925586676417865228252350524537194232271598501986064936776189939251070183546633471543248890101706182043243724951309371205287804135354179398778616323396315470098437881495831454174054858267211770278730811840135091611849860143646399366014705619663581901305767646789440115378561618525271821702405434414937477464341551290574454523072440203438426705803690858265456323793839978590763384254913351698748723140370583097807448689156997792716442036995859567923820298581595799311860793053451178224704029605864643385158052733394823047352006318222139467544827629029623635103322305055625661981145120212330231852248730642650759509608043328304257377055615330234645414725677627328736528561935375437594062739373200982253481742863505450613425340693547506060678367468679451907376408334153724931859534196547553331743059074836708160112869472380932382960278544643437874305323313198193463177455360203019754235552629479587178556638370028085590334223826463062882086531830885136123111596949863293686181060719190552613292864515392548336323648314743268300099694018391280188558086562511622865793159326565257377033617368163060333611466324251846138064970334069598705941354275465073687787383444945590485975156588739683639967774054359151114614335733278392778299384042563033083422888422254223919448650887755599389888365895907524738187287892384517401672955197064748996584259265966113626047443413393377439494016792383193227734183009332127871299813956880785161683637894336482323395519896123102855214866302004849629200147277777964092955153257455874893887388795060725039493070510686191330719454457136774624368449296552382014763980086237579271303243594893641369626147419910968444504341210338317988682313327050391721760637942410938073789915550350558975092604480974569699505017071843026915888739296972883111930356703778341050839519156181145337220475994932907884572846600666937568311046399711856310290646359961842862299316624842261461516172667596191335227275073455601158353188666641324427152598654836354377703831934733300496809662525645590486344811888579857399454112013320857347365018604102120602263742581503721213672173660191081870698514234490085341422497514895263251017244204248134493253766239588566860794508296068837892505972872627083353310069725617902451552913341048606806580592190616080412261257155295022808277389252132865909155471500494023596603125654759398732737351132360713846354486689123926656267949477747237102097612861449721302940077060844695295943151499713264283335486783558238292444871402833847923699999911899094287337693565800615084620450179481000330444044506710806857896210969817615671697116587519591820429834400495324320496697488152185054769770287464927075034256350050582113194914359575743400459746347444287211713342198376256165849420016749226404706694100686514616773124101114081368296921795029388061431529124665644100909235558346974929600913247553925551545904477709511182231233349724175197665128081673692224193155692416021989556010738102357337631572805148528244117942135086581527473366161602691098364785470685849113456318070604051117056192179363528024720587205479936521445417262529641199623455906717768971605608466749265243727546036581656211314079930281349219468950054883867865402516533456657765023195132908488895114790102993380974684561298355727790694802848382321919779638593811521958522798177680721381444617879759074411120047184267907230379131319084005186847178197147417809985483048969365262585159473038049882468527582552947334916014576612294157427375610811372639607739688808373767124497854390908604320488188599822651443610220289955944167772250311122777895420750936804194314945882811418061008847228696558136474235912420873773211967122452869717571591820046796155612464611527123972838011804199790494024427208734164769127439223623855115858001405515665834428254373560181504747514149635194084102586667465580509904402293471493003231547264339685198263615359483591124512197354373854072242138774698655627143480487425295415786036487444115648716624421701514872335229605717413128289590372391878621640994515601037947967527750374847039348577335326450233902215446915649455119559326894886396867452772077530559827838103331166214693800256878380674028740230192307079878783505248137492075639165447262303180675058887123235967461045657397865069189764224717307685672239431520097412273791387732714751224745931682322440450982394011585865391099098984034267345259581140346587428858787195016843256868171795457930849021745183191332876862266696600106164926188584869226785015606175225408196857206893190356417261734771468736327447728472871751003550514589031375312459229959902481506388160718061789270618758494778757438584586645772680014986674217368235773915909159007129017272519798695346810404003430393319622380186856281067945083736980156162004649743581168321739291905126390716480656099769728125023682440992758426303925513364081027491384079027998193226837065712421758570680698943723502413823681894379385435159591357367338755008066245145670197976494602978997729231405745998389775643607444028195165419824843382837697612120132657634887785117552986793965011711867571235737286024617002762384688650775741194919168977521909483256473541445888016699719707595720341120395724865927338670662220892034973863211658110173262377366421284711483775098340831618993572606467974630243989130731829233415364710897229434503665241850536543917493387876121923918549682389246914159554555393311390947487069342775740940775462243757678546361726547619997843653333686798099626935612494479496023940205539232444578215106182899524401820264166388191238947018755733637057996911965272735451096400899516067210610610803361841241558328621779491377522968916861097372912251464782801592829525405208558570011357664173988546691419391580545648454093491508047403601032496230626405226369523237228702848431112777789673450367399089484060338095412525284025196522988550997672888552945412885442539758547820268711213539436547902180495772642007517999851239371067996788436447982586755903003592412855349120104006744098543682450831677324346512214942107182017107464472180076512096379058479047515141964886104595054342644255256560049958837794383973828528040311915100969691915945259822239281622781469868728589020232291571906994710127964180652412173594703007593443409296200498227698532399132114662036122473983386487272446563872138961587309689062195929049069570545150470914981102019025861991686536812864257065464478496415312250037582649079637369276184062830121161790741908770209603185818251870450196192550980451248869375919871091451556478608668279025645423111587390149647298134251068669770865469012013846263884868719432925947465739935423905103437391610538398842246840844351036346590870140132180098581041129165833090709919668640364885590976409352931833634735937579312068717212123612060555326109533357404625139577853637352007900219407535364098317837396487150946071079925057726565924658161517936523707491199046810662121905117741721384750459672062935700903954832235432597186596544947940829904300273636851641731069921900890844384082461030812749172868458126539910765639022022276614736451962243825914841595969565188983116065374173826152405031281266312712166212155362023131482616447768690102387351362389938717616076696113269104464327637194596827993791156151279771016349225340231964453354019262356624610712832644647284236142163516715065713699354650545232326534472079832824479082439562265092588168849522357187445234099621969180956033575919106925899330161462852803235754729164432032126980634360352948817213821339545958482142109764382612845288967554885686400844359704214884955859084920548749106616083639826780345536687477822462122516399919132261220862318054025436268306939665876166914625513556098114912388921588815228315263969353371961630570104974299233660692803837718540227854503899920113635640639425520476751769665432574509837240502179868883656221067569548239923316480153409359830502265426043303211781143300831268488475789088886255504943349765617019746113243380382396482596770833679115675595877255252588529848902144796600758504385905933092781141469860826434968516853325667418507084243384397821118404502141684539225652952111181189445977214330247860608498001098183990000171703030373969315597664626291698063333958271602996888820898132099725885975954598313912782101156381185037032563028737370748525932670046318099637220307763720287432392512500338255730131646196420675962042590035733176955502448912089086678249630987742879563479632773870796448471509576130468353334914029280459195904849221598592789084263538380271982678447964669112981944682397577552218928764338004751540740425789899378218971803406426101226091207942782515937225819678582856337777317553884104427160623144504847549327252452429188805484284881527993683913087948417845723472429739943702947371787541820422795482947009964319048791747553491968272824428747199699308666102151946088411545091141152912121705156225581234085362580469575635532969543821053639312455411878895508842533014994276313312846423076243720732698201758573121097397015711538816239318837079355903232747927146370953167786090468057384559391523780709663756338779688547923618536257177968154233698454950817043948897651601097226913344815727046396919956762785774912746069764447042825678545656417687421016149809170626810700141554795766166721010199822677151512015747704253804809710962586134745975001576754751354812983982741370734905288441201950190710669994761180377834947450053437990331529339413322202895090990196141018713497138291277549534878841926636166074388381363954995685776554999010770219754772809875183783917281547683828458111728272377631915840374092994546756324278026999906398740453804857342535949823927387187940143849905089042199531515045456424017096468483925133891720900763781715485583302335415202921466484039571354735279500452282676773142890212007225234675726086720079499099531529108838650833837353396445679440462379276765222559987704711131804015870057359955809901874818514279589429974334282900519624730386744485359684103383953068289202126108999547716362432817126375735633365901010144704622705611023668446357658415817347139964781601116527604978024250415810184959158630133466247210750060814703670541902892037324985998408135611046198767152093699093809429607960037338380292040211677672673990232033583591858572557760891145434933810429317359899206225829103282489324615690126994968565253075450687767214298029424243201711747581201367101622969614792383641553332915264921727917608468949996629434436538406418739574559021290389080939914106035939912201775699249105153110611628443259121113778648134702166745705146922419042305559780918922373136394342135930665201115667278694482801817247745318488729764778827008132421385297511998052938420237747006631521833013173332714548064730149439831257514447102899314531680542694552058959088921387511739074925862103411250629467322057383710634879786151135107793055113316578138127734428969050504281972003857704557006211441018593628336155889925641307725280329679638151419497118553667805362193685701590297937408904343798580119240682451953612400671589461846348023211357299942453955060419345778457930354287097227672908928467690464658022448798732644615587467438856667599378818197863430256027264936266194343666678235083054341039137123735686561742560352805686973686158092428608802802156907939907967754223408625398258562546776191037793239352791994272980501861465387141633639487618353342351342553138215414077727707166169693249153458637866545279655385512989976603372218473922922840555540539823110160049761436548377467713892158067161942842115795618412398474917873278897284343687365978596557752130128761614636932548240047712911075977861706873381376327320301075410586602118144548947253151438909573589957450585488508237815039064060397846209866367316972639287707297686180092147182208271952476571797897399498339826771646425969469244538517295399115687671128359797680469103387404932759402343976354113707254133016839777311921227296806743398876282455843676944841317267110612278353051389269800131925410867881931258752303754384326162310726136545401532550609604878189985042918222246235024834742702756575449423732749400996420048496708624666293827429690066212933502057029894149737370713097807703729951073714363170416573102008407261511124907102455535087885497193191262323212810021207648437552508290895846594327360058292297406807999758112720493089002975374850387679095514435697692157647867869443579568737956279801653897485740617014687788564872507401618937627223989250686083377553566323954942343569705020397056249810055700426496298771900379152199858443254932284852048247697677612603792731724795524088511924539142074565232757677191543116519694651833776955824130500692186843028737778554957862102762668205653102873758090629868165881374447366358905921515220381583637729877977517068599636159633616036105014176297383378339808231211100192776194776045352074016156325181171957227843733539645111504776880230743951410235262660366276959539377061876437910043925916904371917091337385411833772422555485967342956211751652939461169711565763986350434888674837389751338420444345651991922526588177143212331650696623509837113400089005947060527132607613500283357609666840686744973132875204555644886804793983119328661368990025395206946302224682724483709920564278848436481576760155803822468147431871491439345351185313549855166775508950768547947279379756719344416159833412689735450100807525618841972129493543911431383435478830824931026558553994786541961005740433445898377015369533098212695599759972676708820464069297195735702080206547661227357932968477821382348414931689979161598571663234173609381310123236885272618211955185599109533968354706909680420528870422196788425666201073886883143377850923169205393444628456462146146519851436264996890549272309473894648063060599988520749308207665500426993080115763986498227321963755794145461681960876415271306504535100978179505945178415613226028103276104103227771904024760305707701538249551485545349262601506550510301469280860926983206340421011932936107157956684758750716437491456183376941961516052518947455815056140807782793227746806178438831966319369450031500121611095731277956211154746199292934307545968203132435958559899325772338626716602624339973401883692688138068726227361258742084083010276326618869436495928304827518609733542253491659689464891971605980725724023787380512215383809392189451552286777339510177452070294110240938302911554344442981696650847549652843474050936266179538529823813656625775124136984521687063415079734729834956128249069114383935968469736833030388527256168970343447160489324213256017966227213415623280139987305395221289271334663122106032845640244564090694049143428603484237644796037961733676504416965955805961010546575581703181945072276522987687228282805613029870568066618641276896691539167443727417592359117285435805382417073427312252865179464932089235821501648620977971943757332004290822311691709401121660323480383361116147867243750358707500330492975879285484636553788640808814000052454693080808402367113263598319216716383257312037330472816753217038776149148675364178081210135861461406813883892542551782238076725360749322031277976338019677402593988870373964523629976225866371723914815920523522112888826537572875137479457793335802605141781821760464479168903093106357759813859669412061033446633147064329900905723009089203033328375530567644104209891015431948350253914512212285917905927670179275380455251563461308105458857832643252317073957688616173475432536731938225846224307463998235101953637677979919987307303945254263593540126230051114418893487501014846646544620188151006019190866429638836235142092217097000563016341504274372045282588745516616824668131586178962482676819407931989424786554803244123003192602343937841399630406667800211349527436195081042468961239717909337052210663200267886009351218662609287541835011472085243204214808114111540860229393642961877913335579799406942129126471199890651849409581676527866768381457831678247218823920325712232235284261707798859815517317608131203502338287803918057110921278216436882622848113930877305064535866821013399076608478409259494544118969482573884904481916237206339995260353039221492477372584359991892310233100759951670236018764854279629977445573054542408837576406091446224826195579680548094137652669762985681252639037357931811201185221605437059939598513789896119913190182129341948388743978148018461023000217639299433496402739525647648991961580127538283062342204296116819146725225051459911054792381978283277965535824793567864495706205346572915666316031493212329572097599796154595876495737449003947527196384933817268103438805143499481488725264272849405389112333258902018833456023817591461464613013322708941555103072545885752346395842602696135291533538348926777147119242966549485967530564206891324329059696812135792154337200590723108247827664540697615940050604803284550772426227292569026242781845206934907248488087892659128293024212288605458980016415032339682828304447393992537228663468249098286600119911627299186271777866816384417390846019136339213240116456083422781054404928430345379215449506298702172636889032768028840076993030930875666717333621876280807048258521392429477728476855936228058931670857159607909160452198950996815468339928165909382760457462919235919820434871006279261118788628706454567403209653924334654736946805260401090355078944575729076386967515805214458539336445609679068865016529912948833182276919233864534457602940603575141208792428287074801026894437870566370926269827161405629496812268675572483991234927324126785673723896270101095939951287066755689790286194914038614804979372574678434084560413209363368464491468185059404397400537544881324324284141288734066509629243272142892875351801839428351143678370529990856579223546400489611171189522973888417474495194569283255584421953937682061229669578609583209429919245878130305711706766507951065920194375887064050276682969640242744194091872682805473918730050070861370176431293475306658948127652071199183683534224596660262044973673819378344504163676750539568633989169912633531964041986686709513421552349964154083318169219824329902350975042379237987295022537856292434383612679389401905912969592658109938223703081432305708215829587129061324226406191482640021394958276772006461341257462001175199239850050871245595709681731661076863752214166603143730009089912415791329701247128505998615008897236299505143547471920911455508009648870205701517458827942647842988601321557122004908807968685634992747426994324708729638246366567814576349528530484358307128223131411175885675873965894562808689316252497906173199564821247550041199453620769904046115575060539674478025735870460618722218605362810649261372171204094804663550370964989291750142737518002535293075029119222530442654991878705517789262629503029540352212574564608990832545272154504059377564208424660649311029751117585793620265609530259914804610978213687183118530157763628110161441754078585891596865938118915620295172199452387563167411051634585606965098534914351790676032638542657195466229126029134164749478551531014037417520403760010345408153903960415605558754923093667653262920907995277572754520490798081034261682934753824043592566635190854905587490074924248971903925910643377559844850573760284889641233120287741447673891235434168292207279156062042946880448735763143277747367674259006321702328352733749525705751732566355183141274495376387888069643270094312426467485956038122194106472926578439292962994636540425979837486796040140719955946995297544057900472228655710733765272829380506254537443863744170871781922500076961642180756219693864101678857388746639332053251996984374020006529329307176047392994659254842707373821862870023971336899980062541764023059853617649038148268998917244062561597058454755142376287618243051835170735368850441333865093567337436941450723790857336658116450222645101269366325518618083376819142987445571972056217200553357524455288635742732123918882650687112576421262057976244595643676791289785846992495144622548077507444181907071964435694435788074922632294884160576681999463387332706756054709549870902912674661497124173978655703154572978551430851183215030097538711282227758510727106303088946298808862350272190103458109083683864325404370832230816280205393271574472054564355147408613673784279480485438031707906640538004520110102404180697573266825693573786598970051948907419207913302016070530325553259427298927524507185357669784376822264167638946376245417332333698297267993673040400177241599547613509741227608114425256448853522582161488826487190548113529239461070804046393901922226870432599200238939300986415301964932082613601632796331753402326164188067844707648230082082862304706971873635352570254052083227274671802223289839436288657391812243276011343425677378754762864595035216721475054405933580546165455533888771553942920602885250427680656209705540156648466140209045845813345648539246481470825535384243682667675939823679699749367000398509709499098554812762629867337931838995961691048703577619135159809940286000671291166447162484215089594953187685318868710596793973846788424442630659691591195190820361058537135106957751868622898695787398407796716083259611819244791753372370906295470986676650787413689006358774942054837945270601488543639648732670492813642736780294433995018176909085943829388487685744787568147733112680921403255725505296756013174908303746890055382600544226951838991517045989374999328586124478927252561816717143615450508059861034638854451017263810010489142080714770503073276798704629080415091642591199978875216739680510108631744638908910588669929600612785799162454130193402462336164405362785937070542458163964887089735690871703010399113667629258364816481703761766022914493529670330449764330780269696642129453532999186843178832843427366360476843242409920563660475855334349287326420006271596633434873024805063478260600577559001039527924384833406023522961989201708349930689367418627506661512986775112758326484972971863517179224623268270112007894977874803380877588997054309613840048030160505553814656034900432061588774414803209393590143539260378691874052971840520233227784351983233426697956813724082187909463054352312558023211543782532994340669388819975242528094584672562342578087820279152391750436489332295684842400749720100670084469027361539581906265521137776508486380946152660207267995458092478314448264228413514137475753684540666461416263428207735324248492763993349605313462218643273406113923400706489656765880061414155457863254897260977537186180914124060620316596008216705338929219189972179401613208599784804330818725216504702455387376834969647170135799344811658890655080933647668518090690177063605824065043657438083086490585677488474697966372709790646162978845011604882679181305438627906851478294249003710931243132697561126805675376632278949497932754731025971910660953662160532238150154168629088829984942696360876468136222433190713048582899857640532363057128032632498406547644148814504730763791858632952313275451780138166357105317249661229533545057995763963343727558490587684952873256029681515527391694211242386204279030164010307137211335333996881343275679447066261630698890884658328968278558259695580621885380550191178849950974466844260396320532636076877923790642470260096676492405942407136414792043925672590051223477457244710195146225820547406844627850532837295442002818267866671494007630197316937281047579214866315251247895544451188224414339236627132001772101387408377437949846051522406061732368875501305218957619399144951356505779230478418557132701729398500736010921977106833167873868899755071343159564485759331984264664290873136138824236247219551808728567995850701894203054237677726543507379145204694755807232440093967908232119371946670737191872724267299610976456405141718707811216728396578003200160312165252750292613137201714329473737628774659276540325337353412194201335681328115487160030359783162220474276974723671815197652746766201836421211475351455928935924703896216086438482635866560803665575399503197639228936159181106672111924828782104810897917231016756160741689975735033929079702749320204332165275933232875155038384033004234451572409487002640781329287072006519718123157030144008358830611131270156202356061096141371347227043713964828378052407685440835837519082387766951015136991803482386503787119158135155367342508855759721005388167999470397239893117631834697413631813182906557671014032857701633982571843833690401923033877398084211131436805633477268624004980545226286836897609574359712554698904101040354664589253566439078230340789420724669428725420212123653114371759551591812591762086262797389120999974941910872435110679408520857980144157011613156255423225067341450276738738427413621722455269553387271256033366140694378845268676719321473126565858075873715747241399965974476041348808580314660469379890263258965836997271000049329407074369210461670714130006761625342042168953144566551319172240169192912480964912357178310675330948281728368898622861020530908558390890420883795740008544661121322422377711786396291328621193942097803750645526862506986900964937078717339525316168769524095459721809528377390180118403702643768117936912509476654248088734825721456162893510914416161319722456496803747879326081640118557395745825960926416454238582513180394278093838173207761925509582016123457179212947801703083209761350339281216704323053211610607160037227592504815171446871391028498871571104817160502113608497167443389808545631999772643533056160628279447457551272622758188985861174966550896449251259682743386850941183529608644639439797930903460510426929586153014242858835273808702766525949405973326606560711201687747576773029063343857741050640613279801051175332289479318207211491898568934433658966999474028084824521642576072526806084512074127004545006601118984135557489667713630610004538222669639911092246573897963191693429082080097506766730657899458847058417116031254314200103360618373459530270842758859289201944446455407633330839785728521925503546890709458555844167007664340963989643003522217773832591494109557393417536343812031355298269974088532067174101413630297212542719136751545472980208802879100227112292617284985832256468306051202944048335954867878615394713435170453465726203538660890102809355800536762359488256814021200111008035481889039027439717583479178972760233666305700463116473661907263997405693072426311352882535783129306051306602990497830356860007686981507304556744276062052179667199657815659127606812031674942728781915262357651132897752401806256716144565098271026871911766548587721009966276727469736454952590222458732193190048992890638551855715000019664288219804468458288111253300239202549906163236331712301921537499582811664484369614127515007377676200513042254463328701187219977636621676500906849440685434328728038903017720701201253731018032127978947963654829051238058591073824726401871321737973344084254043181998597221683714763589504788379295353210428773376343119778306096682875913236887207057870223790609687130281661170096720218169824197491048169141654339512571945662883588944901748323446603740189381182104415871626433170303621861702848297968435167752317951435095002536031961235211096145588153187851872651878509168497756544312686765753019875603163532690053632454965024083434475879091565684235367379952613410137092875165823889186311591445792518550227920133789362142937009512953496657560221993207053496889925526448216013158886281843186453479043794595586455911644012848941025105521933739230387852822555130098394483353610889892233240780024224054309247174315563234776778753372313318333137896894233212688113661118711448854375933221114934588999862827307487550165157239022230693874508945838954082777776791419172719675327771737903592625799436888542581814274411028249209952545187902180462959019505439209521417042689814949809760238648365182445668646179992404223556980078162688794468533859238813983864557272122575594602855561439865969176444922634145730043429631244282359126725686223820248517419004237212603055406770837451465332139385228240098715091136228632507004062614826320003700294356146375581329712111985696188430715182588241724055169064172787262743377966047089396980059563578073991644375649365144981397885766731511878989315382004543435651196279657559526575951075662842459208996668950429476027007865174066799463805543733386247536178641217484657445056842352085082626803654739006342760382967474615849501465224335147233119744344075205486992436053558116587646864394854461425083411850489313790101420958444630150648665725112288030703385209305171678390866124786957333315193604262850366515173920731035963229147048216643158182417974712501639253825085980003112622440772268125889021243081871788137997245615678311922812271048447669428247285239021679704228300225311674955612652424824768563628604319001191841354310362857644067693636921774424893172180616591451217178903193180641183694102074198544010334509032671617348670438868616099464961623541785025368616131540750638098449130919654192819128562127440905347076323866370607843852492345896787887458862792828489263881966643592314580920545404973236372914088013716669823594486433534870820258250990356257460737855269652795247820671263762852162247953395924946542017161381658342819946139621990325539540951673595671522841354529779883788460983296879865654825177433265406388449879747643361682367031624584313132772601486069192553325602962176494402890030359289386080700386971505579112045241750319140331357421913244107453185649200243608421282802031239233427354770083725625975984008175061347302123165048082836840451212357198938125603248848795389862744774187921264912536926647997832344805240012939667752078009053733387326066147738806274102126358521128883100014394698842031052500598920801667979673136725341064467697157562263888671783904960735233857815696031454276309618621047870395755607966956661339440034407106821402809691699662214967093542464903152869323743087815198525077920856203931226053107973433862350091970557319368633048787410959660066588935378702236367523692600303054722032409166351990717554410787005534090923786882325700485858969927256918415986455828667958335429341239481133066124190187158261160068410810722230091135885972708336103768578537997647902920217098482926745945521531238125029111638785794724227124260344317597569565902616829379820058052495290124701302707872734113105879935772165410987531428126886227664822573145607047954018984216055034543638453375629107742069291402128800526740164534479319641854611439229520163988481821127613449071810129178723617633174429698554251958601557645627463892879537865707440420887843272078401508721473441040688040775464013682571591904582116462122818911224777111372584248964935900402217972187259448179214555534409126226607566546322161182209430525639332528936911291176456782516959069337673729610960528129626366719316403687851143991731476808752132971634396151180592815255752780118985815359823490097186416278465855235325825927859110474702600922137888699884293220315356939617190842034316540475971734616555695537262525518995439956004432895305707615701055158655713996469485031283591506360430055468174311018516031364463907637118922701024610792483382110044452835825398004174102212090487368945140610534408703994997929302831893233276075424901868677086258125581498758752378330474678551013666461597085160172410975210230744587488265980686071559132757405906857683937761704594564954308212016187774587952527506432322338381322410329460974238927314939123070824772230944368738522919739255132775736771925908076986395802074739821508954370659444991321918676014556523751084128343161436902469179845055051709228763748736530741146548465189786143388397069810837148953108371536422717998204254372571108101320620603146435644879960047712797227286273273923791005609701916717367567997332136842463924396652051709377123061151625653029557318506484958881142038393653395873492530930425439318728355455967972116578470611075057143065848251755237765820507104251033934011781713297308119054901457232965056572971026524248136900376872886434603171331409968388555408799980481843183406293160303319012827428352184863816229519473916739919775551457578197958333625971160115192999878751469183318960217654216009240894783917879581790618051665067103030646661540906313042966163885819739456738449454176256530011046655150364214272256827383249134722702776086910543026664698705871190841777174871967487302763296017174156177918217648762045982324407354544211407373260855466744151224448276152065306967025670228369121239991388576715743719706391063407072733819676484802880244115070221403875459001204409178541245791802346989943300041653217152718443354324440289312862456551108632574036119142028794058703275429350339670373357773389560991002965211205646507764504875489799326892213722003714480189178840150661526848089422812871133649837165339424715634670722772414681025787727554067683480984777460784033350611846046928081655144972903062922170876480271982332824421838377303281994926960069999551581172723852366400942511091639877094766675091184614161220824779827978684408690958812231215127977941742427041383117416660210360098659700172128846499071049452865506400045624311357794730695113317948071686771056337833840068442128107216588293487612369270020412019199475040531014214965894368771612330898523203316467547934194588122537095907765255082994663292510351771891125637983676621479633490111924303907145773035075338437268219185829886656475916813234398171822172448947758018384902371922122113978286719553358885015922553713051223090784171860271559643657859303486599937672427196455040644421880265311096048821345762599245916718940895268149876219371850373974070850569426581306649517579579833639714998170969283888068394909711633125203715592417254278231694077677202767263153037082354586460565207469918598319106719822793659496319057379855144829367661845319199877645016442396891891251170937365182307430440144795142272155618775103998907936382758090362952793144914221319567934305547683849361585122342519295755770788486347337796720140827337618724358859665834082572729358695294835154482979407419813117704233462934193595336584269249465811175690652739564585266246098912324087162930072066867898636379925987437630390636895928180653329717392130609387851191210357021352684367497887007256751919598121641718835518907143804367528211027067097576290912785277979621174344092687704910170063692145748240060508375951933926697349806193045957775455011389198686775699327890822394320002575338116041492750934472049000588937199752058072979906169123107360617555348541083848106300384328658709526783915169146335419035854707205598472462161182704108649913768611192793725743877702578596523228093362467905114982040757288786516964193755214996155533762642357567442923723949163346719701906030540253282294831883837449543101616894432820589781122048052349713870337257453128925980151075085684682264431109577477704373105084957616409122048201355888325128744375767845095631752944694115957607052660521885055614788999164653438119242356309471162001514040284339690386842061073261888045690350621383255229153686348638393907277141687265499849776182216183765310435821662149690477156470021172780742329252817593556075392553704247051206719524896851239734505360174581303489360778757931273018230526996708354859313729548841111496092408660678302291460635112483033261646031979920973309642853566994091211732488952505526953741869004814025955084611716763724848669683009773115266418746888059794732275575924708583232687220475794991903543549043542822681985775479216865693931207450351272596060660037230392224182392165399045928506053658120551124787163208536999581409639653238251096669535616340380698716445051481382832612918826435284854024590486666932739097540264889042803640654830389025529458155857394324246348651360162366705635163105782899441924868327799299967715968125852393250468930290862192918096200107874090868107363865378127638983827623581217007186051865523890416554959891749774324485987463836580294225680500587053805021613014559598132570843753721058635796925612788608521451572970517920431920883882641343604119001447002500875958216847656260627463326018044836279206961444660370042317757223165589812622380401416633364096880315717654959880256284381282937005926529254398890556013813368471764877747767284942676269442824180323661197607827982799994854565911421422264886207778156393260678876804543364021092387668272588405673718494673524764800646650179150056010828977661356586083671850285489196075518084713683950426647266424388362926217587792305421563031256566088439279686767592203056355955561047796780819326086564539238001222072751085290751323151921540364036995168409184469225981300292913954141852837187564234494195877349922054113404714740076851461091870640262214436071325279406289877504261762762837375184858817932092236018571969416723501533631801734327637592575088526288260109107524398765029431212972288052043403660631118361375319075193592002510396735041475047621724676895187311481420614980346194486243209871432528134912795380650608748832333314947851762069719457702826097738958861815839453038361751107767971083095276836759917122274045029076758233997281779024760277335963205083687411657386090010651108391653759483390477463069929868479588877604163595311138055480831599135727777985878434997262246192512149393719740441418399031914698370325023542507095491310209976730444251644786747721685126482643477044582564873035835233261961712864852896973984109372306230653099065817595050239936013949263218117318554326828055976106184373084782816735254996295088635793066213302706273753182243782719830429553659600754086247591167401533979964894313968589437143288604949306367587126087397862980824182377747550438842054459296026637701512786724830828676580193356052386999275771615962586849439296615137912878541675287895174638133703369033123967360528268590084046963739162783976560622957779736046686370336066776570496215214623281841927904553740428031329521613692823831300237353783741493355512299277063698428900734010466815854659181462003515728358425519885746508151992118309503596734654348608573503920136843976677038933230568330634595972309307785870001843578486593914286812892755681531004635745732719663738763579728498322297195247754000718040518914172960940004841866768819781083799954344135272500961291847714338977208370009532941822797361714061964357564770535479793856980735031043145794990328743202337553213526006617630180992345796422663508064310213981320640100763847031653836779973297338726324953750182301857468292435656791985149227952595795222018476228826365732973111123864793083505259501162711144606902812331239611110179760427567840381186575190882364478166899749463714627371852113636460591783652102119918236982139245726558823943018358102490718635781580379829103071500821633427862397481088872017671854262705222721025842802010166497105879872084834090679055682197592227208882002725897941307122054129154159822789295178823763708422737118352837439816199731874574907109747726919724955088551935401660909676941330651462973490368181170422509423151905076684915511954560468940969267001811695567658064491636689803136467667726376747084870703667836719831768228901821423411918345866413029655008648998930028292557630009711803586824459202976415469544927106568848944073561802433177205221835933377956349449997166079121587772011060297624002265288860373118495375640495760023343560101553230380715450419826182673889755973970675296793194936958405478219733133784389540503213397005103430598339442762293915215065706210239594306996727792701597743809392837605690631760024219203611034732887934982041601879250701590391856262529883126411855387352005893742632032069616591988631633065159898193145082605178334171962655730231548608554441530536987952845470256529759240834274451520757241317633078577121041566453080735824634615636614136757890786736432314157596201850667788698939761413557814942677912927918984211979272698385742475311792175318635485216638188256880304368508735256949174054608937222716970923783768727203152355446112281629179888148611771192061813932452369686518561851259413568072953708769587162756367237083538728778831637367909656872210720479819881235043519743397002721584172774239017761541053272450239717654642992503457027627693498100538375304123254817000971406629763382438777544356641264607612263375534342254630533627632754065056285099881730255403157358410906022976388201829786946005059263779965292866974592049606589610696674489064358236564813378902962764316147869163885806522636037560667676878116686649127208444893412657172775025739576119226197108970687251556517130060276680121118431488462399086697009676337968452330337531053427034406128047628656509809588516954049100599309029200060121893080420287641028941588511632058879197625596577540439208978961241664780793289270621857200621770030729939602251847690300309888400755114237922652143859470730827496883065440988752645247765506537040833429234747554644343415698760788672626340597463260740429378759017515927297221343432891131397096445926099966367053536580972181621181829874461229616895597470899462584939139324769215511668229114939914575461195125106683375402677859833167763104358791086043187286963082938807765681897539179541022745327967388941696516527079093195219201979202446864479758981846043888473506360457618659901178379120159381257859033124271201042320064584700336766279232876209542021758865639316218241763276620383187105891792815409312384159159531396559999040656244464753131855317942459801063750735299228239916942210843298630663660703159564748222663350580775204630482677835657227814418128482185171109153224573199018845818754410446951451030021277030626273594551563906636707012733064338835966320925462545540097470810255800032127382449542675138552935628035346086860409077550828334055474396110636025540968365285903426051874565688419871021235605840982293162611979308960639673117962613167386024504681117903824477295501210237144106317319393164416749674302070222739207646755243938659603422425765685323129296138699688189368876888528190026390267063842186940880426847349827468384454627869660311411599680615444118532261344161593405067810120071089523707005629953288712240356116538290513816302079522300656273765775018415673584658259209962192771151603537093604667606188095843343577295354946796827165497300712696963277878880506315867922492056262851220806526995670697882488271005832613020823958456085193456746807071004363706285699674016992694970578791420533314334039551421392095490118934532939233239182701263588234685138334585840626402667875882580218047906466173600829770249089560511122719266791353246833546100694438522870253674130667568113547329223431354641926520844836253855769724661327670175419225763352913400720357711177320639734633670759478603896356270868122361573388659805519677407153209938659202531360897045491460049822774163267081004743934121515387866440656287960671968001244062837213683836679336331183841981159070633493454997978482348914264656727776706251102861669253518943166924483339491744347734450189907931633299746752941913625623876752003411158631812505809132946751758226314218026100960269538997203470891578831000184892377281603950258570583111812222008579900427877975904325073602653205624286872444581317837701890383872972899785205526933877393470785475431178991390155899554014907308184925211917084453686318525977860533510859739645936197821382311164104214365998924546177156031033581727402127018372198930101684914104542400241779005878119799620360179058185859356491461228166847891825808941836712106332526038028795553846780696615400638457031049896946806176982349685169778483413306785902817547222303460340150065628575292944179357898687580465147050153560196049638306274555265788849616048600252132721568881217671085469377062140190277688541280268390934746829850782094255982624102357379602746661085237631914316445839016017534495727835143271349236655741739053368033809427275834904863041255874989735912626229198633718369598440697532670733511491810363781441169571809587279687152780370690063516068437225602066334142974107487270143327098144566932328346825345364892904809759637878822150684096632556024208145903445869229911946935417976863614017332390021407025510126784415687157975002793647692137483377000585483967536567062484272876390388075075238957751946607797953000226325444503666540812342061991586290232455810671053616309807754842484272122890203611697387491928875801754755014174375929459483281023976791339356109557962698965382785756383100699332284823020680223419908266027453845978287541828556230787335910613957031368184442015338284688896033932009822308719695620599968775577466418300154260176614744307574004601558712339507274646556035442948671792985395495973801666861366126400965657782120340181315121861497211864140605565505055379240120633495128112825287032015296922201889371777606938745909755362549819520855485086139057588488022408253385067684673876173336018812222858595156379905774657137513867452013051782184335384825895499336499550264296508742613570064962533420761236369265227976321463791930749253191541579704736409509721405830046907556148587693731538320002402619970890983617890780539309997547807179926656504643769332409373351205800830436998971808423052138957461008687450965128190236631693044506411135018820456626239091224784862682643208102680146182164527608498617905543889127890210912303346596668157542330075609821234216430131923116650717438692213383754803568557528036451376033055225863116488825273328126692184350388510302435831132582448823023074946729786686232611453674697379181295020480043140777826688910526454607298693312119685188461149498395144025443718297665036551671488591071439301812900194347866699578611035507069674465067395580108348908532745875852829424936819409993647121206810327509260228475634029393878890059837654278962157775368188959685529191631895220955672664376364590739178833176704376415800171717240953617983722601251735855234070658194884096416150334453289520116244063957156676991178052421194313212949732115806357494157273350956683502732111658102215026829190592039960634564303433935556812874723449277327681091826901021321048369634061370444240470658054863828088352223678355385759180967585620171453666979672262649245441485838876889037485619323848975083751626725854251677698271516310297770593936825319158877342180384870443880803713552414200027762875707482802803245364491776924878853481878696567874511881620008670694692177888166691930985269712956128898316933038442091849911231420118856267681031385486885781870248158512837080143831399443624550053768802534268733292744667717769225202895175342691233387990586734119870774274036962177220397540328675056365700100871228491974913144200845135717905007073715796713972114823429860118236157063011078489885108267810913567180356095166544891934312227619658072861228450504056373355935313130818613043311731449014312447825497937077201865978567287662609481293431289653723220713378373791739801985617823408515342638826444842830734663590017671421738462316855047450308162042655470310009136199848889975187024719792061148158698515298928200476236082906706037108410712528314884117130800101996152603341555068648146461330312911595569602756643885447093233823375828962119383721751323817193172102510458391307797158566915246014471442308201518943106468366345998984621550425113526904092917912523978497342213916494384438117396414280337984399145367175499747477147270041838630261962286723116079236513106682174486588632518017958970528538229137251735970669270289233272227913791506719992450175647987506224039720442036217623669233657075336056879402086058839926011002584334208030594444226508020413637996319824565957185678984774225022198337918155569038392230475435557149556270404960522776380138666306188720241780890794127318369614162444714824006133682725429979688113745713394961865047875028044351491318622384865343079955081563182664699152386199533147877541201709220854517951396407246911172692733263124020168268009845864489200416587968775111421952979701031855946317731723963335439210887636195116942165302686370672288251679465917638076631474803494604543881954441597549038685968576467409006964973915904232582668325190178694847666078806745177146171105479576279964394351053232581012108387775293271384619505517105084267290002482121906527024437779312130367726881193689365362779647022972007849591838328954397280638282370856300241696817193288054993777182849218958071474551280040286238338931810202277570871938080777137763330103165660856884772446450491730239394361826123712154072844894352292185878682212114217812687620092194474554621398317788539000008743387517643509388534936485359681918532324085299264097562511697883420540099953789363833822627102829575347185185600148459845212879993792453272192122775606847306869639534900632542546912799660794070873972203673772463527512881888967073131228948753129348775734310574782245444874387980799072631078976389755073642814836324590224454908383877049834303258143394515411476294435689757909110224069417204101622731788570705695638906682386809506411398534756646983994787010939284344761422618493544810464921827054364565902075209276304512774565824991849707779969051060526036413139296197828587609874834447062378235667621040044850656452086574939944108071105547799540414156234510287245479269805096510370452216348885946219674423363215901364189840411096964925521208429024181247839150831593374814595059891467851012387019367398788714503644003146653665988143301700602811994941026782090767336928655362702312546093330159235069755003568449272785016321314402327179231249622631612877832934308992157842262984921804284689999013092767202783379343536846461977996074860481079479402747554619618798053004570028726567923230962964671826300719216587225474911195500340649138991383609264568659644627899540268078606484172984125568460441275559769670630503067299757211289839829284132916100282328132504190576181406301775246632991423090304470115232140383005041626721480482006677969179363175021581307615865374722812866259437092611833930632208420917917622996867261913848186131660265555373242157489045436094365934724483868566233462062216234761895574355669347533788420997665798316004393064868349942813271584005134527602676375836523404689263703509620881824394757064263531110650443625598364549035546438147234993651230912422146658514063992873517329280758366539829105022034672957269531669291372230207653192555069561025435209335551132876220530033669010724720237113659588002970561781626893242078119415871782672238899899551867295954666177514432644567097619462567394552165407070473216204827349566051761280273363981349148230279424732052766101791121396653975301194967626267917515753804973676477703588561485936111818594683780507057409364572904684797001180672471701113255500997066128752232614003352033792140826269543511280585560549678637506125405291951949014244030639533775109298395120567048946161403758363973301864759457009391840339717957683748746799631623226648094313158566542470150045724745144057565605654846031528960708820876449645187708469710573936398359927274703793752593987703594526894797558866178616268910537751712020346918211444780201045153005493504590922534346679294865061071386160148017164662276016722739171037798980827590018523492761166761317227480235677565520096011403082617794580306155364555758277683294872396425927981839146641124428726546266165926643661231929033271922263845816354918419634220578321568929694762523721084385283708760101350969092639899825028591007756960359152036989723284329207603137065266952581393135900172130560724650043561528293803512787103559198885510970832807615895713024649403896991454482622048053826438365254032909642080406747227013613061862878895297489774274130675794489105107687953742727564979195427536028231183481651025047758899218187864987875279205167916424159297669766257082811433678600813581015366762275357276575686892475672903260853704266349769159152780031480038818222892792483504228153888888382279572967520526040721552175669112065553617408015305093111389924656815724619654517743859763729694951196112422142517865460488477318639071188803718898445974040603934888438199245528046108975420060327627382701544624049554416191569336869917013695355093184250344389623348837053424307834328848441691191754810992084837984230731044526756030748922198363853785546139745363247038071516984034525469369949478998354416833425131053801593393151541416033750747435068960302039635297251910268619955381607532689730717320726770603681925588464344902600759925947530428658642859692094855562751925138613331835629763314400602589712408862739431429473074880214191939727678157549931009698328628514422234857817632238083326564712084003026429664198177899046142018855006789492150603986435223686082865398169757119846266683342850123337151589470669852033721112763866287974122413779274076438549013471150989289301156088747273452230024081570040014088350713834198781957438895506664203210114568221191140268561046437562085330397131890514073721198151589815253047389505060551588764829879027432534839029422217027052809494975916654132100158481529796089823582222167559412702599286878350162188898986914135777970964670582233855398224527180507281020492077824308811699607780195224913040028641850815928512868331935858025642452802385386519826649718640148570967473171245884993522307661838168750822929762659975496055035134460504118852970511831803899042767772658795841732493905962517599518303205409698980968131162672714748407855900836811615660295411268757336822223204105736096773906345743001347288650793272242834999733754471968085940919338613807730830786149472472751282925372608002738316647015096711150976524869698201057776754221936527758983280873927970030168989613702890388114429621745872166369682982951029493150979332394226677554451221263094610972001561068100538601057254603800020440373951543631973490490189714642311572865872828854911694968325719789113736041938115903208666257140671667196450398975483830259283303874733510598727139948535080265217902676355305760198922383061725245747246789567894313003631113632559779865815873297821026679899925873554353391365874131011834117715523336582817016575437110505929148865767928472476631840671948281677938014539453487555573871247020257205476177993726561019770611958331163062312216558101337247063109283361050899664088784742515100991971081440761161312887801490983467920701148930609658428265020680345616148260284194653280010938909608890388955688729415439664241814538570171240371411027935783237904305679596243154298657894469817588705832744265393532800266052996742910962555877005847852005045597860153107517033105957457122856899172951868976980591847390036107996483752993927826170642932981511468877772161640290723416484836323851758927808545593467494502248513233877110213181868621600549269408951768755601173994797095252626431706632613705042766749327046600919126728615739657508616771490950587791759152785737515001478149976391394660344542196258460814565348004862230633869637430336357336638122469254407288233120598571005049892284653673340325884064104757195213049332751007449926840872665481877217524341189455605544587469149876908534189781605980504230011781278870851930694073448500387342491857945979800772881800467252241698023023011844942722749349998296825152110779634484330970866963258459329421969594435144616312968421898040178755633530706897541594587394174200658976831317132601323337078476933626669730952356572642185589767345005535997151646596231688226771350643179414102482634734254951852947921400465463560618667386075212044834433189947775262133270936077835570041796465971103197809325312071548018761437949241436410198117140041056335889855402530417065574308717409187307881112136328776974864735654735418483958694543615170383088783956583007172131522529660484678279227681154020269896259067185686951351513063599104575892939119862152209110472162408290158019206367742020625487378200526260406236348811756002271868287798346985635884742645176915616282734439756809225604781339878713523638986849660773111481823492958991273973774215714355930916533808015640489480189340869454734633254778634814231691861558378560474477825384290865599714020437887216042137086394268417548932107604368765428916857165704530628873235203239024521886712100034630026187195397164281381467173528679157230934860797833162919128817486707901547088522201106066253397388126409956462266439542723361973826587416267650960094357359099276933633519904637238622805588955093544692166316677292603275639522883071124045002722676593809449911617481895398121217675456862162997458118163265757370643183735425120939606383892647981327117814233187453482415477112618678419602443297996702889783029028068913032784315986866705230742375663494951296032562201291218994784923449070017288006174956364149765115216119967146469397831450086635695415197867023163250449105791421354729805514980794153460948629707546203724677661759537650372853112983943432671765801429739582621269801840967936607787720758828632892753900656307036115057437399467394485143924047085676970080418106792062607891393535038700461026194257755830203546750403768790248829078239060654081857977223375789911175685789778585082716594311726546778583575283993692882309622994723585423184726195430294850424991528959107932650986813865692712504213321948060091360436827732207812422155595231471697162003651310266202202908019212225178517744679099301474458872534752670971193176864237821741358132532346370529852430653488461554509990797965519426364242918795208264582867520375318968017894753060541661220907997773264555189129692621090476220956731555820403486805879250735228031766202417696444683355802731426382134610929558452115835456440582571747108685335170130968749615996204068914340676808578676804736029747705611154732532168350935277668237226411515853516888307200641923562646672745913185302974194134116389065267977159128248488351177528292716808558524390097501693443252832949841791844085853319620864753675295144516417501855994175059743343699994721667744768848562065365776907344493877995659606723278821748865482333486330851892953644098588117413631267600924712581293299478190738074636458612810790921683964332490893655706123754123179376881496042786268178761844759191519676468305544334227594694704529062540594783142528598081723343809709115568346160145087568018984095509909895412840710180533831477001090764433200186013354023387733102815929153408768804170610874458812762081773962045578442982498419287890905631323843652325751419187048312881026943614672002791737338109349805809053047801604949261352864572226169133568250655744305260598265560316026216626528524917957929554545691944444027462403687098585859578833690890302705160621489909074547550141522828181011246173646018851419819676242989473922085511294777507998313142411160501352750010518059314015580760973377199308994097752468485772949316149097285807857263077424592566034976832055119176630732701344955451739124983838065484678446181596214106253307359946654946856081748650701444837226378219704683857198446720981962956364173195943663411949393947147416682969266949359222154975051059956872546600102862331853031891808995669556144081964726452175373570309285943302674658969961335862857504093005956562290877849813239450072367838960012426388514676783431579210568696891429025341156559002156391258605223146261317995472370932409826159715180708709646672148160933590915826345445237496158121958274128398393754754166597321420639202909313318796363761582515525167551517965269181656594405054069837447630239088819603916171536237754101903608267353420094771469631076591187203110266319698888684179115758388897490033639558141130678934392934851997155019520329390757137119353548682196765324098244302837045096304777003682777855942938766842315362521118622797357750788181063200900202235860758897406017375406390023968895309018461357718367190143967548981873973131191982341474118738956868137300007290323079432513746553703504676037356400567867699294361169960531710299696074924644322405760406550139185652594969313966737645432455953675468376072413049308395708348079834919814456123118790589837767927021171939233777088803748326419343158764002627331109005574202758261134156949764301800855341027256010915208802922137373693308621758005362766926378347355279426809434879270071083331397719680742506627152187513875826922984531219856192677130146064261760648363140894741025922703904243602993958222451052177096723331000860081071325771765438052123413630201522017104056825522058235366528673986291998397720088024498919695259255593599361856733960228692201538752208214536287204543225297730175841102246139300481438796191181894744681963192489029466570739591122555915494465046620717929998541683800025553456720321969375853721138029662812680217477537453553198507017560553768632164124079345512410402948478039328134951432352173725340519344118469185994766652048456155427486140070811718561541924742451643258158233984546968707344989763165626873510962142189669841287092117781178908126852492173994723215527961685315856004202078379639273881421446515350793419694835264046698795175427744645905859845807048748301064019405148123566146314206468623464189060482575047861660438332724166044100231474174394446072785037818164723532385329172666880587086489718791135641310133120978084325033697132802980952563778312492773194602234580551360679807398791317013629958775859980430872241610692898771201465160079331479833805765026607319949829179109547240400037342435895662391939224207707490128604826779386480206114256162588925141076110848282662462813730656734893165055567333857704610360569542478883405241430247107950333388738718875436375085789077218378833681645199001765333401334331000100116420465491304569024791570572780754046741272764766602883185010623464223300994805825438208409187923768443487317273732719126459579262685598537518287645206487479920284611882451568821781108262927013530597132921891234548758907340254861084106155590521291896124723428006758437569089271696404624209191812625160323457905790736836533869397103040485613946355143296829897771409735432578694088781450850714740142160997043879621415062807099274013420781907983164194842884086750902789001975592679692257483141521456901551260935925212173950121240603375689037746742845955887218584187495550743273189904230870973031546376878496673449447077597135971377768623147831880874393047662510324140292082184887326690144587873408838016480983965199609012009729048042114612713448615854816621921034752920034900211915234925244742271165884109498254198243104172893877274804402214973301697468405107350377560766112410864393231523572424683853399811388137073619655250148911773822820534833160743262526968266691566120129433012734069517084644551318164684478817227608804150928761819329353126556904941086910941651643722254355700609735083244276109300296315068835473798446853793503098003803868815451898171418620579342546999116425216294973102200712545470398996426685116265480799145746828914248196766662760013561987254492281164607067346269697578588739331504255027450547426257697760177256249464903985420170939782704881422853120812130114206243385448755595551568759495731282731836670378217481561346240803349596293831104089157117801866570973581017235966896424292480197811303092126401369824123785559491832707074747937465554575123358952304993762949817136631098814137174627686632021878763218832579162988168284220836565417009203478311348711709393072651525005830026811052548306458454631364437524908810447051330517556141755900361304912354653028746515001836591704607018660440405195935426797671963364143556505483092019533757510315727689578380698309803977810292401364891467775035837034074366338388608297768711151486946437236918722233797420108618262674338304466874601352387756505705453159386978913287990105977634427618892110823558793657236939820740035014073434061693028074972682391994987715354131850221092225465904406519387593214150946333744741008214599695652337298125942672278242440607220479802421871097729298126133135661365748254989379863397469083992637112975171448356519679688120484170835316755189650344123655753992156577401444274779572955148355778526318326687580115372123732929175027668481422987654457018224831070620394251290267123427522906545895402048949652508173253365598484070246944312035391892183654853557034784538046637953192701242595125058877796858086104835486914746059499599909701603704805852971205714902938938315906188386366127916798585367377977078241524375980653921620906965646838930886801615155186989645967212172464761860288218522890076961500530994136979722157388929062391419952325532276917501002024511287162807689856347384370816280432424309651301206941130751672559558794304820853994932402906027703733291274553848822945585269075372071963666654313973782239065636492186846458605354585172397945357100996772873607911965734394584174486383416120859439144977873392825868491324866813655228921794802767451064735613589832801489608514383211615310020552586348743136300726860018023906449644740169981455474762956223320776844094005352076549159759022731636397336427583436985938302100006152674318390373915488679841872905233351570129358775979591144090728384791526914322774435540219852094359195954213348661502459245054443371518564018916260050480680486443470080295255981073319693013162353433595773479357469932477889985042786576629746543491001060000971191816599486049725110190380624177659059841816840001218830410090637348504491457710827811445158089738502099337341205512658762711450487044601416813461574127500849003991037811060503508916889124992089012409724716509615330568806776221833935104985857140167496715187146517765626329277759416545718758912442482915053546513040474404671972309498326010280912561578325535895604041928584050771897784490930112341523248712869328403671208459159196292213427284043811169754674774921656097965243576722508159897863082082423727689805291917864560355412794208124400616766759354186854609592637539079134786872140504764635157144404412094727513839961622897549907496168745361752292535931404663098807466503601605452976241910136560126027078082652543045934364483060951853884149935937664115526875903634982101067409948676248354173770840563951765799425188083262055907734917319075417668153749585447788346332682268125777890571330225615485050368767618842096331622243653619437404414867214955240663357435897735875492302322671455538322681655980515889817992153310399293533924492109047377474663505305911589332549737224622700138685364093445795615347981927926039934298390522395033442582633891915404258209575814544881958565326020499815431045354491660154275613951386579670556362993177768464182652216821347662961374707154715541317062790590946760457879650063125809123664437692381258777501382033390046587852733361473047892668389651907242387508641390869646017575926422194667756845001503826500038051456083061917258504142176517911658270228434585152761767582433798634769121305053637793379570190322470734894512100464424881082560395022575880781343168182423203988778662585937826799674874216846787604837242178986676799908954647344561546548115498825046702463764380387421534712647248954081709897077126104701852161804717759529081905546300261100899977542477749332371508828882391183963074677846534716461785701444260273850087711452029101493261530246330985312932242687339894708607155808762079973745743193678674487576783681141760401059428677911206674152377216652474978607883631512419054458272855572335608163796057600306187384538799563709543615272084134714047134924541675164534909711630808617269373226480487905585716935013308744955268560876349405816252168417598641387019162825886989931275837508976404208645824540681365922301886700853441551631526494663519274672817338329101426213140481284317631484957433426148340445096316358554801882839000648811200137833628503024743833900736547130252568168469472376077649369330982445828071306304426639632391636110864301208086225038267654396103165530378982127770014879383945927648344951067635012368580698301738477834007317739587750206097842767473935625005006273762635367705379811718837135798923185337552839508059848912599104111571954944914551880475840545138496345009910767217953699602352817444901678677180923010691838876185271011377764396842359125525636442163612470966421264212604414778329516409667887462219066919612780367816287339751261232615902850281889306331326923385183496885568247848377574989278936523650970590023313519081736887840768164861360201651547501301163519749287632488039619530578471695255079036927403821340447681193180758880601900564977720573578939319626200298052892817891992325985722652897854734291374290761315137794480932721102225933503909999838347297441607822546357288294743409587522338622054365658543953270707762935837175061788678702759180172638919839388276037543510055256971790520031605323657891466854198914598113770119033393101111746107776448805677158728790555581767089986439111918526671934727467237464483566295838858100971698872891866726063711967025245780304005667580909875215735765191091423566268868051621885925948582904142870427109234267045412757108545035029203459922390055547063975880095266705368333841839411942347211068491559406943200991623291138410989513740167668119638394887055110815289047748651391184148624360273109982685106070980247172011210895409371726224294090960075882740155124933125817009799209724863719843177628120056478660965653186230507096944438690842935217038384730497106674767433265681192178520538503832092877658420143580515875362512824876116542120367071246919472467354002751195652300944089449083480221166980560707241181946854842989672823669255755437580757898873333641307470506528550448522192570144280849676638228455587545466439029694499830442498280542529526091158643073831773822627406010206064080784134064888534646207026300087566803165908471982926560320614077021684974994741482862257232964926586615571623997665085858946239499198229386058843085204385809650708281169906603497575044515764713410240556829733736059469159361943489862232481726797891296037406920228044071933041984763896047299976756186943804859057210229586919230169119282909543777280473550067248770791997318685197214081079406563755175770634403470290729221894307985980441077089702317224673558028288434840940337235256920828113797248777582868762942691261116744526675803108509860707824954768707484073227276268077289910862321196942330541744866408958826134580734929448222560373943261003001246886471014693392623104127124482679134875774259874045933721280463453303853870246892244018611094469402086320135352890813004266688286887562526426223543576579078963079965299541021552423025535114159561619688768303920202188001847146545385109504856770755416717111892014118046511666164897973126658925573811493534575058116077606836961906785568707165855955239678820454566977541125966588266218868251556564322339660040517101941168783589036700219914794593638260626274283394255505660932237011376066429596768857033203750460275126231360887786606905406405152495228932260786516258384919011997126440575992569072781854307500604376573396630895176500859867547394021178675233928903935410524486793682529952027902723314571348959685102386565567103265872006965666404950104966645486836624519119041894195551950702328333010494369167655822758115260786057792243361394010888420108857861850183935254477207134165528226698759409439433527890730574588738869455601609245381755054909480835306096902766094130967605242998850365707962274921776363513558535493312778985155134282253905999588637767759280581009704741533792224414363384539125081029488922430227006050484502457849823787934749783531421679919667883473229126283873418540319265430707838265138716169485606650239893131752910965037583821161903969094325896368270243811844583105333577836677288293820331672263394004801146584584802756224203163611294895356811591814459540216213704787212200783030956722056988551782850081774919148531654924950666080858426910142592000757696972603693929018975503726922234013248707359117094251244545464528538377715355850852717030954919692668732732466683795842219786797480693005594656016497505601575774936688393059351219414615649858462109334390015901634379360003480459554715291820830211289748441156797137344337731215300041519841741371047319363030726780319718131759095294324100453737783352178504464781556668419848358199923169076081717081214473879327104363862142733302970952017651370653412149497892014106101857574246527799418924136889886066861008847314440182893563415424811398294414100273261881395408464147986423396442302547846416561811024342431493711300356050604601886520385574832525808003303236770241205314422074210417582915390668549800445095036440425464854053108987935315295942353506956250764369120680319625339613303347513013291400672469351975388002877340317767212564608350162180367493946169783379762938256859566367306959050222529784104116033720068839279265952073223209903912351711250972746859631371485197276373890768603584515908756064208461262951554547765157548356710211302789928390924329838304280201058196451089613711259702126167685317177573475099140558373610892305849701460644489476714937906813089522386204282324483540303250262420117195136383542831712367707643144909845031780295979351752562408394779372252438613251497643535448473198196369736899210154618111430826149532827227529854881469128931934625722018604996769872162613820859209859905917783674642804249173703287490523866319884445104159973353640329905275896215728395980591619458432280548325375309702709750670161934119034303648547905947696650040755593518638637955664340942337139905668658825058354681671513409337098841428835173813291914315252422922106767510448670863605595298129093588443183860537909407880226787732456684071006535902132072164758259214742738209390711675144964150530499297833999476375834583151166902100261902969575715931476134800944177289626711672934221996540783162781216780080546425374777498344261360762435656834951133339190934588863857479687318539050181958291809547689857084247971082042852561226357086625704155493760284228388906688322586162567703905202869932248277564907983034012233729381832215645688998201381472127957810359962228887503613975412594318612125767088396408280019551089423812123942972209086997551771272610488343629522817502436730798893561151109401067455942516170708012842509718183824285062057820616100519881930561446023541414163473691977429608234212233572888859558038375964777296017071460840924900288039639857113411224632930614829776965210080104966270008944111430455561816552387216936428237694606547964194810925360122382734817685699560873202415939863175954020739028462138380955300434276773500449049719439847337832790589173717059582649298670538851928494336794165435271315319872326211111431141366183750428150670238179886791005638912006866337981215257483174079514303036981128860336348296801025932628888326287507392415071109686112111290643890392432930536629292847239463641444438841956502416721743095423111946467094461608294341083916039072351866908700796506551262645878253890014971710853837507567028866587644418692565142994628442282213016809443511814821003898584182862872259380925631347422761961748140555277075639546838192326767514483731976810598164388800248760543338565358952312646536864496653820382853546245329325770782544030485814984871184963723271197347253212152064806311443147043338460246043614066377080094291914918905352665582362025320223690284216427036031078179291384942064168582374900595163689026015142981821533020344949828559832457246918685537449231379957957030132033442666215609977798054484087367875272100241659863968723878525708765832721442215904120430063288857483915654252950408684604913046609900807709302829546712527212084498653502308922227880698673795112666145290420322406023066082260032866441843284072479325319341708382308199187796233855512308107653093785056664493469570415256520628859124221379805710785640554592175269680518739127894917022197912434247872995863864916347950680376573272842556516387997327882183112351577339895177979766351470897040356917853301286719658360348522803292011578319685363793886590222705451725437165804379288439424277478035417153707985436461815611508248308067405038188967596313122342035052907612787110397316236606310092122239173052955323038471612941195090605209927143797429363581171622455232936701713288144718084179254282071663187575946058777810419564246943713110746667009191886309445662605566272151945152043845601582573786025820076266116999757194371930403938719674931735859950969493659233207352701995564311118097940670055378607480880009586935835504280500732254758268166167703278945539205319986527298069730018346873082898592720773491194383054548850901407587104770512351663519557273788988968912077469873089998755366909147063035629352819892799226477262334274354966218132705201307871906287380286070965840362860505611627530823581707522365955611766746274691895430336501745658915341120735172528027473403631937140196465675915513308647932322394649210378710759428865132634210502617091432985171550882296529065092206034848105916379943815098189188356492763134128053736503951566342883792520066355507146693557051034859527095479389222512963966186332873268294418274216993285215763857483922967895209337302354230088996482280047280977496984860819307368388457990781988437803159998500897258658608908654564521328588948949045362783603021977361661720467455213775802427462845670217897709702601320573002538154175967080920871255199610182468599583691359143040503374300540385994152951636513000721501252239643726923183690078524364220162952401367783403498509569285290725492592222644468469589288339580171243471130319413088102712288947817017469305098651013475937724942735509181112405564466082898273058721903629596327295184028705683253662908493114384016682164777952732727283402470512605603163922196117096253728582598210709167357054746458260303763659186873615990020371689333785862910629404535076884420940670278814283210786063143964659125107911900886699231677469716539150461484618580397055243535948683432157452047328033453763377484270848579007968403857722785364627863899610377195517723190447533218828748807033314221344696629334242002979592408349238035941688918701821023844795039909595582004926939094472689132854635628511033954610067278051405546823100922022368779655800799834979944763630638189230503627061889824266551807317394168662973323994755536926242612487726102751878917948424101404237604663322076567287164115870428435839583169983342432242495272779861493312368857395977566754619843038204192610182321571726837062681310434289559728584179715435647140292339993337932542113002445630656942949156393935710287860516834713159739178628881022067644907713956979021750368703848636833362696727030278836870653114404279388956509763626955478374049636954532441178717975824649854874275711075951990389801336355404034517557845807387796709993906853300657525281727769168230063290445206060752777726631423953144435772988970658829174943441546136965107296117136414463307862814229219105090075391791441025996652717966154656410677545915419936101888241747471879029989034903378162859777231479638424840449626507102703778403299653460457887978767511524388160118377652582818884300830344935960800075531836989223973758403021599241742712717455630945212383046736902562453894551665518023429115754777112379922483958895596070992347317187771260441580799008916353877655684495942701667866767254411412505458769233339946402848722296756521234279255528407896419423347921433615434489841189606631882178416939129098877559344277386178518293466660802420153266184283721522642814044730817706493431621754135676227177553810682986027195651909138399512508840675235576995145233269376491818181958097318630384276533641773966540468081771683866698934954646523299079132949396911696714354173211312130640067977889879200387650101989312946810367940804691017913400780176450991918075284330166441067673378523634803733129421997754532609904930965797180720278715965448609579355546502851839702168153465627086505652508229247742523457618719007281032596387491328405701010465574185334216702672841013059332099114997070026386492168540404997662102272660008531493117193745438238902731965162835766955693471743673489209739567146279917299412168738720662771174971160819982177270065454323551484471589316758905745387321305546059880707375031210925948475793695025197113589882244615981782725222578534786532055096277853978214389103949070004952041767639579667427655126057101496734900675155909313017869717027664236860378201946178662773925127156071649280424136856591959458827680691436083856675780876032667343526318786461202565551994884740880390758746578998012499909870761967019236952002361414478080678947404761312072831308997027289149353301321956921594039148684111924978751300063048329016258063757025830172292706845814818588841258427749123340625462236203964560021242832501876537158997737369575669944100015809282777030294982618919599853734993297080360787219395653294861326933853449678765818786985972163883548143268286972262419312392156145192417611647398765308581234109105141446570703006972282784782563631151821721209456378646094863540805864162851693907095886004711759993734875027925489614996206862911743724985896690887299576109774664744777060201974662410239546295160406750568810851537266103741264021599202105980227990353406351643674939859100804360296761919766398411600447001954745876897815568257598257690598953834832080444699844802237818032251486818406020904756302247828609664232266357135512433461116261817990399386817757059590585848118076968676641623959463768163797153522267015195317428891282642655774604148295197830294469383548178641472541233156338752620256478274739823617191258465683837339076150900691552999016306623118998471689600895784340286866648973671228341207587368678733734788171159560031760560882154106012667649337899281803614029716686663354548872189397974798304479336332747069003026397781369390674383003448814332766804397000436814816880324074546465421201881569707170183088057429543753785949708805444478987206605705174529372288280254137500658075994377318797944690347270668246091194996312817621050410804931043066943531199896650577906960100600701047715600070875765993570651522531159052219013272610203813354146927331746042576771791341082980086598411228757426305544182699308054150011859878082675772092518755991226538150946061943137527233172420242320968819024151093773119286203969316790845101045530633485841289765009710424505032200814534217316221223572631176198399794315601375138539125268249430256548163158991005418380361548861683860996057645590481884778654485730386276824751132219782292875208110481469727079405537914916705054920699067920911908406946551177102536521932345138334962145217295603146723042513062808865091042086473049625432498970783045440614828462835360233462190687084738039298972513669153051740240472908365285042264721705649063739658390751609184901357216908502831132279510927595077272240299565117265035917336166433609579991237246552180302453971427622435318522628383535113442366746260433733531408028899626419217583784957965084960574890117696459282706960528520114875673069494017418399172264543271564631565191913064356892384652132360634291473757314524953206646768411963212924405858851443348093641111751643569431001336070683084376621338152669556180191978403506120604417391435476544422242551444983598084834191419351937634503664202031602859428902099894835390889419508190098726656661658631685739536231532431371931825735328003232549560417058886393538650755758876104364881911667148040018165103618954934815115255203053805305694676916080298660030782112583158082771611919562512482656466558846321712199447628983576076915863121267793391210849266283190682840014842724106189136627851904054630211243656417997790920824331955294463450794232781938380879322775621766102802723007430520620175464279130124665121385466524113633844259558214983777294692621434794973675058813174501943455642413944352009634844892240916327954899939049141352845519201989277971159137029278143615290412137900596408019427245835328928887612346008014862018064672195377167044541726257955592100359488713295496256840904748374609415470854189041686365646857741892286491157412529437161572091205099834768532738299199530048056230197898229074249620778239961765841633732749514949759110261934365250502355910152925455307119080050896728318251820031285403620653292314888033658115952310035212437624301804577082454982046003217355119361256538371111414242656361854020742289425954927801018829691156880752523422771157254420681361568023506903786719885675672717190912924391282452179769975755650025281590804883604666092838242868032328272810362238123293954366065550602291692778454748027960590721308818771773052806931318210398379053056182324347232363000750287230459541752252532028452502642884739312516381710256832116717893392330328609804424930921271338278606675897402597359434953885292250209194529704958283472304130164048622065441312097223413511183292367363484802486813241299934681175622929578577395564668356859160940652572582804299485299554062039269196893878128186851866711341240959373552852790209162301991615599200464611176844251468781398598645955309501622553598191958753595944520244868267623130545905490086014758846854766839913217855820505773834266999269273004147208233361370059671882130313902731876212280106505275697729133761221426066235208139337195337662737366368264453720564776473530138139386331744254976017529970382556912470454402393535032519875855307335662209654944088236619322447472439612786827219742894514217143807478579310534130736318772937084314684252291701548873637674145596453298942490514951349424722173460537456531547113964764079189683134854903573487120878645792602580324324832032709311327073181819744360807216330638734484294840369937858961715461762868354985254544248323578668799542944412698717427951701544423020147044528683856350138140506652331258267039634452368269873783577548953751997382278813357027891061929713908249473619268920418302465971876169279557288584667589570098704485395047073281771157483912480998940832907638803498948023297980962937865379569367351091605244499037253709113258535872753862959961174398832263808606466320656228719590365515961707142193115244785559880770053476037766923261704853304849487847477364126464342204428701673974827094103954523019998959872348525474660023085884224898415096065045476831259950809121437062550221131900941353999281241104139196765753602017192312169810383763741999202775183964082814739726125047752223631491192324185768723338501928890682830964462071310841330994130075530757935055139474991018052724565154427074643598920190083053093689296505030731054214936172079534711660248642150995521504680981804423966101480048431993795566329950790066821084129007751877928778024526225435523555087966006780332197843219108448514148069703769514055485015018967558242708633242729179723404565259374831471230242936672771324314526374159983384843531509826966844196049405551767287324964120111922476261840572996159939137739558903473011352114902034002379667019014774422365291287317568258472362945460795417183315227132049335189351095962637291418698903260183130706388196625257049673880242665466668036078826175278589643361069803689086966846562786670976968080321951255119525600111003911184881018690256018887536010056754538647318819483409749422376159575954594858061118671440731785141157381648854303057267381501164728486425329421586378279988334449871043809769209492491464040360806121872476212829934885933343334645361344063845219723138396098287508086168218184773832892474220246728485599791235965812752978057109665222534006629799835431190468291351952560154194524999344971360470463195319257094957706495371199927453892376620767279910212377247610158898713001559886780491149560138644667925771646592764991898269913057425924240870493761974933005042342393281543997267524755510665154402428569790302678234516303894695496899460686126707302979877247920084786644940198874809079346384316882300755265299245236757733889430595682689239738858168258304316622076358100333041865400058765249844937383468576474454737816021546140290737357033175518490643168613388621233542460723008320664110245149351225604715942145690809547917312254222353350459289887936142109051982490782262734405645396542583386374540020858031776798418650053831928006011711655178040431214281620939472353817567666589534522785316858593839816144976432771656844415855863654253387404455078095769406039639389961507661114773666261854921050615861049171886429678552238296360118869333319002090556122670448132990977076277120014251997303963715934050546527129506809798471476422747906652327085995247428568353359306180714218665894628241229253336357606651177220591937924450019625037250515954002835414017092234543601193508070519911768934914348448425550016674954647092769816088676448867007823289024634576554104979310268766056977556407395250216138082824176179078247480777185315084219136357820868006582481654784713925033276563187750555877760000539634892921040022732760515304210332125070156776122860497076095359936431020050951572009918945635264637721859210207720991697671999190948414159396162703289131651688847666569957360160299248767850133156374757369891716462713984634743186114850337066690671936469998018118491710056838797792191740900870953980054292448899159617022000057534985257492885103549231700619264490612041945798022712985791442849368547817057164252968177658011292534506825558208827848108764673954306163809283238882777711686460805565586078522533140258157018354721669058920333437613341963762950295564527697726009841350157910282046121517171243304517721955226149636080791856471667139938841341512382515694302612639162194716934279666147594553818875245124415296171925795311165270237960103897652392370104767422267842214967719819746759878143126491202386939160898207485305876475938919278038830494396515012173639558488547075130122509940309105059880877238855737385272484860724872717655524734715306828656615878106386535009945531653747227932284570466776465473350940256035682598146999018578741689962848743054337810123987942910642378091870997001805041481998319990911491766760055751517769580440495243744723399414062870783795247505034165170365344105152259498741553163865008717131782423142127229995507669490701489250288898317191884021083081975124043185109377720642815541194760768593162889870869845694899118638377379602607985406195982085754224126947249523073509014885341123322494539513005266649301538364239056968869265304800380494624057552493352577446397178412602315871631076565489801909410011401195713244156732789726360419351576160879304320140769382673436811946818834680347528049359339828541900342974534379157782985782537044341982050984123557460857155979184337710385421609834937031584600249721607722762100335000721487129799735234040936248894007617670105731418296315203272708015789371914457514306250346152392595466133130252838924078623670336611366548343589061423437222265972657646368986039939385005412392533166404200255855389367664087319195081056696429787806868005244756202069113780420296869407573830472518272345903205431869197031311699311700021973367382769046011451230557959471221331995351310505032966422896786020525195914829610271425221389146027266602924132271694477303864326585641447255325520709555686585493687516638898534091874544962967229777992675445806376308418053207587702534129764725792929071497550194688551707536208902639090352419946267993437169167760609739465327524548474085292485969498765958903595549728016829556605093132144959113286337345316809839596207496283729100600903052249351319951387237763209945338599351677934175297147168705695879980307230936992800513251167413343695335164493331157150141224359930357385578746825151204020847767423599012725088192589160718652838811294763618249964283056446406141451060859674488364184526793640996090595546369567609116100778846842743149787047349853801145205391322060590110317669041104761270305602438205660823333373657981070709830931447425032846414427831401182303613681496785442799066555082835577893856199042085512575669398283164124619173324392727467447571777808092329016653092452901833859739912262217163502410270158185701821003772830269711902270392033673047131754951586160268651477826000163041908903289641253994855834135494932377463939662531115055930497378496457853978994258721062716701649548671837283493465133642241169403131699045634270718502643223664687870227205804876141081262192720256054942311163266414030204419183657271742163828043768771280928044044947461871533878491675725955501680804936543988922219123581706642441705297892641777532396832457149136025535946774764612836306213697128675064690856846083947518509483788597941395567121286646577969589824426282842867947669618072778029296148577323717866737498994655347505120591103244689431760296994628332069709414478256961896643347325348698770780784002033860871861636162389027436544997065195637419914364738741952831118684036986270242334381179992764577997400056085542974660156542462594225222847489740380532004843008888615541432830233959783638850688335311883042908000247509945938217560577910675820322254876090559398236768095741218564089445267743512202274105105166335280044251977303252108848036240056765024915173836796838632093468298600877045478387109621188525005200851562398282521633710630219205358570380236151902462209416482466473140921623914201163415457287317424898088626448655633732424638206079560485833074860471040237826952954504841362553276950318282972326200195640655919190780735060800227281265773889524914187373150753536624548563641583310370585260982599109710558244780011016306984193352067066004857056192970311295145728746007450685584274896204664324156011263536635766130096742757332878836735008536173301187113865742731313340444002881849018461286897459859684906903307148744569407223239394186442289984815145985340406535312104679227622156909167047267167560896319679227529559813017290188105035192808950603469526736219548216248769075216849026573834591653925429104486964895577906782781965550848229712490642100935326882019997487105468458028465757358590850255778512143311432891943890133172149939320459246919716586758876890566602199394067612274244003879939682877796503906818872875085853392548389272467544880638624702742392741806926692924548523141316331267158477760989502620260864818854506588044054751907791704207451553520567436509205615672423776900091179612011958704892981872346026570249485484566193916087238311876288776050382908320011219395985865418486434707350109736741972176920633734166420762831161172933128969979678031981510801410260151856150588135990803747777205144665823673441827793308655890916047486011567286961392993345073479877463229089815239204775501819914420988508555346685411846229639967146055045954549781539792251918945576202552179605651418557294593335374678395137156049944268604238581080776143738427519069891753529051688214026055912950500660286001498695913999914687437435148024425229358743667011964467451604591547637784138821737761005314126656356791961254211231412142165851697422769305756150591695000494983401157250663934038144649818525259164534492369974762738085469432061065306512538383662770328475298528055100305391959512697999428021603361704327223701879719712444264233610342599901569124839518494649838105269958822404628772497609761859142952203954681795428326579266222350610830658650321696775388554428396143960270886044641710193435574448356888207276560622054064868465369141949102872674618608655107033314922372313403073880186742208951821306114060120797962734295456024610509975224734162534318055972226951470612809410924631896619493111152912438048172272501371353369489576203986593620784733160023694865901350220757478573306497346165522365701537347708466509068580477754775689035864701174612729917138425516555763896849423059851979526678821317145441856949142424333412893164811003043076316888717397072498979404376657548189981705403854808911932074211987086936404911320679542553786997266934311639531518571911765248954264041427790972714896680215968602420782475579873638131854812876532615054678939458072698794971318254539243168854497156609157880637838776162654420062975363349608843870073713210203194427917478679219081420046044674341451190002471589456037083276487912559445442198580142521920914902755619029736682775019468970404335392276941644776229824709662908397781148146568484576615939206850483229570394829350168016750438508697520011279150806120908983539906879786715245777929943801203946844611152104686342845832436523362283919259893584598582590151746393200088938746395958005891751392055425613458078310193386421770326917055275795908059915800204789179757353267029021109057667993478068383856264750421949849251970789146267023006965384333357520490732107927732028320405835957502306225712893232421590654087207181630878193823730536174350560283548973003076409108951081841022626432840753289718854663108762821932311374080313167538932470709425389081344849559141450783813788126922066468474720791992439061576278265669903395528240270439038979605772567249824962792507288957483529827699542325000379969262146819059378634712859472385415695464991228877694988456429141921838704999683039827978726978879907516334673776421475791961746589751586831965586116734180013236348283402277254991421938616062482599438638885454122679258669670289646108910457276566044101891849664461556030182766881272746596457644344317391652683616795654144825621923313556887866937245158346313454164378885448964817160669354129917195362702141307523361686642992145653541188144698948846248902550157039645587028315655036071918542731060571651658059558079028149415157493429703907298783382333162580325104392794669024991362703265301608691895678370330860183516719528051146620113309445807552779795325251679021033824029197855015259450118623691050374753580979523723286340871690516249771908773913435288019271270692010675222484051807192600101887429444895733843733878227374506755468793592277052266834842424169546539070040601993369682460836710197079731673542884474737901191200488436961907797320151893533106180885880397372302836487229724477350374252128501471136945536152926027017279999946818298637472837891694165194020819428540098587056043230797565383662008676024158215197907406721006128627361208461461634182420392524273745642582484477780327960371358156650490451270285454132742443706884108942317449576274330278764231750918349287284514626666564661629173362783527400554053658448247703125092354824446056453498315255954263541956186477421914828759480439926443990106880536092403370219343347334109934900026961879267999573525069725772528804251877006081112938160632306081821112517267880182292217002626530958652649562117669758589709457320453443060668372126580754223690527420022972858474701664405917461167210419362723952010993113070171632677458135157031063693940659486755281725402251059186216022622146989723613230038997641735977674519545186472914384541203623497347044212499720815387330467909219935775454763283592162403707269381896433100553683564811021185992395375608314702064537723361571125879223403536047827060806600169374584415733887530568264500498236026721496630859787153458746669382245740145009240244678918788398104884507807333261816204294440070405620863975358999447610452350493209263983485719126586263343356123546177083133569549353122534970225033162834498873432147938446969849013873606789527260482154819755507391953366094264461545304184475156643283391147379540780113820554791782574728393280958855917384647853743420544772986531683617216605849080427507720559793691871463359549668083631636234380306478446010282765153682612058438465777329182401975353944319011138403054191195298169378886911519317024307783812290080522784565536496403299273374366977829670627045805877339289365164343176969853368743890982678629545576563824585720895915431052859739905204660620130614182666317634446110399749093707533339434726364120413037375204386350862850452367383416877386859508698138149987631537028271457895764471432868879456640525852204311511333802314066693287178805738522228649677099371640582780990910090810946135050203651022128882744002541975735619891758869523607711222056660834784899956607462059959262624930685036231987504037800823359745071750369958536810440616223384465375515811831426272390623462734797899337348141242008230347165516478889550113404390868607163631429160186299939820313455959337105884378444086572118169280657507403877070540850234594183379143563924596173793191152938354751234797523911367226206396124831043498725030003584422784928524260798327525307443804571771328865934658771040351991357695290135982797514619911322072652626655814335342688591748697913964163805614570081944158833167013255374855196941898092679842570951219019879039112458066353129505391809632413036934713093080136460512902626656561170848106213364563282751357143305089674917582309152820679967134048106603477604294380128600731335648503910709843447203757753633053318625765040317320656617741924897633391384760591820314745746914688286371251037611967113712955011486612341845845800546895177461396966445776876354963089678808421084021922027928589767685604683247364381931373321869284089797920129571508385759242410494932333254239290019341409784647568710349922127314616030267885410861963095853949517404174763403721203736336007276743284551818380342790257175734364611045510178433731359568852754718503278575590447632506447632504141963737712021151751423140273033238066076043826645493794179498273208917727160087893657792717833911377840119380225703798427167457236912833929138267767199337022696233824101165934915033025391614423732734016973622318220999179097226938379239370517604777331344373246185517607528737713469158741212337081974251445822610473263622730767257273048197771108258388786636812284479300643147771324091870537231988487422613845752152682253969017727483515763144553001305034468958323011663377776051496421339960543785468545053309206105301014685430112690472455332978952772204443102832467791141951840552385764404528642052652671441874945253497324825548251540069006290575468544906133374197859522450601965498243450967642204904397308800876780151486303368189772843490005431148898542304550984995901059501703665831627310517991859223783686061565723937857039314281515239410080535923173970443653934909642128544141986651722475380488177471532831402407007057267967109304559319920927308871791342273277912983506069409520536184647535972963790408097874065455801874125790304047378088594114606434881266095759355737005105622757517556397331984105500902035086505047341944064425971727419706151395331875336330845092070936833546777158908589411156522021761176740897620975034155594529548049184361967579143844633369788002813770598133669073949725332770116633448787821409281937326347097818672187657420986621220219896106586450740505357799033201074302135946793061446062445223380488718520540672285124866470621238100888249466435757259808357548924727928501551638749067899425129321966247678305574548424517337679317391846895755183254235830444629181410100244494575312485467498876360614049577049923440391470907163308216651642969435293970296414514710700171036870912687108570261578749965390465642370543269423875301438308927357530286492904646996599508283759886011433335677821742573585192797728592894621307212488684984444662865515485032048993814404532899482578710059489339345158862814982214230945654100856627150638896576089290317235026460361535219413148713136171200576099330135779408049658153440057984118731584175076825963887172069544012842020068600373266980868147003200767890273842083865157619249916032461038879126082718644259898293117740846400452209071795364637377932528366529141893395376825328778116158889754189990484471461531127805543619153515378472198286314259122373790308206181796850332381283565226626898768431981198411265192384896912227632108849844800713657754453139595536117684805922848803018708626635551093638146850137080446032384192815093497264857863259882924565127417868193845995055636749855397570581931605484043067721609765437851296571274832040733444188638564564440068364545575804793719007328809228609016917117988397962512165273184469816762983613219150694029290786821341662689905354710444116561734764450718618006614362106637548025976221088846726159330842296476847004868917747084196720055393308618639645607229711885534559706333211226616644762218056443639949824642966565599368351926135380795362082720305252200762028068703144483588540474072504008220615029128125369943460080173785308177439947442182128851395217399320798328043412513883416711139985022015730036371148625346115061799521150483662013633924795063270166521995433872378985716537333797678960522762951258807302698014793223360296163326615178864936547062232953935798994696062999368141413046153916163380601669872774688336373674089261326084261767366025508274797042771237837280910247929191771833805805391628443868528480365862099672521653219784057840988378776974377878853682323042507391038496062849630737518661735706963426872058054052591825927559298669366068616816747788201623172388780572817600891114140212756937117678693582910682655386416882061050345183875834097360556113370398221927254121598753515421703184807679851283180314580448053166709773445573553140315014664830451863744247893755096207517016592915783526518527886346557216315320512989393380174491197482646198825948493759782218924559520364448643834424760959940411389209504058492427548369526512886351769590199218894502942539020107672189750010467241590581397952929089987997989574028858812751563219277910589124071965655771448760321846877384709507980295072919611147102523185635060674528847513593203290853890321504954145482374919430497520877216305444708837723877179660348478798452612718050568732775910494874050671463601201885085235393181099923140695914038484715842317459800860846284109617905366689745301921396238625820357460069264277965361329993274755469395011945229796161813440158259859579341150642275080570563589943481051862745156831487690322009446135570037113046718157018634496363635206103815184114599738161312301330455625031234639377531564500469693638319647411032925551098505160656653527332176507633954180694014804081397941793225765302927709918012023595434776214404246887901679673169695899544381527454557363049077816965183680570694712869926896200196644169190374457758890790952745734267283798299734154246549552268745626805613423835042707954988367833274115400948254243113697734509657598112738326865886205682665115593499547772609481335633993704869003834199952211928432476005638956462942646278739039317938934863474004748868358137418673020562625866678465633214907179518117695382803100532583479358557406778804863711743331918004662233230153484468754635974134206810491446502232751338526542233058521424171283986142432049709450307312016762313715222720678762386253607425872972178370787861208268826332361000184343979190257482089710905398800638686685562921137545518539349240867927705362015708635460056415785316958816790889247610199685049636139385442207997106326365052278123762292570176622806502559463549276002713153551783959794645713562229853467229083477812230912079833193349304287252447905434880934899911821002062804490991036562517183439024484495894409827498940268469464967873397565116668498887166114425140661404961125883400739691226069153855069226322821411084030089562907205402636153596618760042381898288699500245166368608804625655211746910893516689149569059831187985965982060684051127466541450722874211451467191490897782389662354219930472072255296992752450478507989593944901446224444315115062660990618747406807980224532139121334694300981232437367849445231642348832659775626456700203313456898893660363120926806364289618420842475017667128544391770514393068096018986403809508685582446025032271782195374250981997773956241004218306911233833283065213416383871457712242831177005626008630877145172763626701356717572497730404676673285203277915424657100512779654877368755087472188417064751509469424741829568063723592250826086755022183244698364773064311747058067741486998502671967876317448075195632005826819269160516098988789807744143531490355234764434529990037031282412797788537851407470067694663893616125359638226879225361203120933366854197459733740748494580849414206745053069424932133855692302636552195240841994896015315388012376883525583611851174888833328197113330528601258377067104689397182311301306610234819197063259566612486563330348665987145267623015036617023721694539449375661081000111893751058977597932078486349607874210460733574040053280434030000678929396490115171177874903297679648266909509564179449641039319334670986868438159934637505019998523412664153382121583309811522141784634084166014792644288740060718675416318563523624556888752414434290003526372387108673149882285442946796292619527209657120917241826468785837212857546707527291932210332638822158911950641981497986823632032794341240486781149018806678427209860707594952495277428049564282633118333438437678447531635023018125833517628940057758122518244133521029033994421196586004645877201693531213879466792834640632528193167385333541839629471514648689474875808833827623861840726393831030232381312755022991852378824606545973186766779086115379898494586829010445684389292359096278293185984019263922225400513135202405227161848348276127616063409513241976034609532784008259641356830248750815091983295360371938545225602940779473299249909396843339968771147949935105225492651001716533328284864082919414156958837114728757646824258710566394074973363009312299718788022986401126651391750668106939457487411672762454433386208702305687351612698059634509814714788464553877236464204510706585479591811590649473068742236248401541847430870701848570683411124649740670105769836756801317905710874468852019567614432126299619766148594254955754880464389186260580118539628779383131791710571511521283017942354200585711208422746041623570783703251695968104125225911947525154510270480069774117996464783780599774528749356185027561008087470421724527808407614008844944810063149032415971989680864015542856184082160240498580929858087348000604700774627911715571849239514576911214390872657604910146852143961425192100282480161595621338804712450042126842366253753166712375108987042511229226517470441816300942241884842988287882665729090783510962296980411628406670123074468324297876289297268694458830238393400751033281090146880480152606551055523202665127193610254631050551490129225829003473855963694121053667906896848064099619277286782669001524318075425391906154092690190293922528254207219457786080700110459230707320101575661994825324134606895295925053417525878923714435650172614671515369987254343383045327341170701338061286351085017166257837204485088130097219084220204626842515160468380661185574244677152089104884906351606265946254529872797459390369291658244341385576529837218237605387043941968685203912579561902781923333458073439926322750668893486822121640428162120912831661832330477497383743465341971902267225329118587494379495829849270743059597270383751409009887253071830138050625673896893884564789996057909793837672865437600096573981912598923665171926279746448247821727542696304335120449893155642970709527906416982768589171492154448395426011938985200499514426517345927714019517046878868360879289805737003569729392470430918506611869070135743647741445396727610342721055001563307526334626563816672082231163040972778145499808166033187657597928934813247173054669976506727701355190436147223915466631960730133773795398417327680458203074680394559296082683366748244751718558891502544837007355409695733294084277832308838940799416529191276766405160455418858857321334742613019483665164265041208210248445884497616506626384753495195799824992548919859745704440686959445741212285972769274229949559950573469983981957616354455838116402321564736816301758251720885007941895626867436497752547699934330347396160802516304582053037246252120862919945527225167765671912790996627337032415734929068431366411913835510055476922973372005796277942335023140314072505230162755660014202565624342663993899693612855681197054059956657165192285148553501870498409505486032100687674386268628026584959116068947447936905443125475547738152081953652913950034057667711399253457585640698290144354163956688842424579172021467690159446526438133398267692447292182787263642793498753736787764410099300878600959939409176134472131680006720580753721328361430094401402328909389617801734321943375696464850953434030067893196819225794529565249371829145098597167050232797272609710259334544281368380022116324426971355418482646905193987187796413107608895218961114218571991056468886591636371096131306138418845909989742983466579652511853293057454251401239411854367809386864962277170334476699492406558397316544935262059248661826747231718665431495971773633284673111516598365361196201808771448922768787964214631101678597232048783611364781378427533764746924859118838313646988182903151481037876669569589675108466511454507483571201520701756585522911232761173646743304910120649043601208683518187978089542540997956975520836195013583484683295695947890844356419252447958886986347670619823862500532270489738198223712128235414047488423623235719619952686553649216111950045323775657849758640194381788827373538071860868650722549479276754918221033674862640882553685696815800301065812821526193467440009041715261359070133577617552895685187826085133662185609212526314847376496528993472362813543087042362248437351345252756083401665810879367074777747676294893966778332393508130143807705806063934654749050321558004781923103722431163529994881044573569249823907227258240016258092105276423239939451245266978107538385754711908903839407599456425761580180423705843666061191865426745412755071793091377111324823180821920675723108425310918189058840666109152956326285085509545377860697226461890622504238734527097305576338830800820665848445414179585545716511213427809186505037767106212486423840183645353570502252279129573687614334585302951588909839851745789882584494243125403481704737795419227522694223909697299591016185642203284527694023706492483806964870981976074894739610384423783257811004063332545192365133742246276254194701949990354726460300650222957951573814605175431548893374451797022699756271588914916123343063085099278461616326988324834567081344271340107513084538058929181118778660540442068569359567158670983339418477561055778240418483551849397254710259187350735971529621225764014157050432573123201834599923889549527508606355303914187228590846015945442073845607042859756991174240434526425071863975066334331100200136672344390208413909934085730141003368016260751253012952454955231761932430000700523670016174822972650018849030145135547163901726227317778864998363227236262867811436972213062574914798623563166580838054563996139699451901074968877657071794155654970490745693886415477648059126730120878334849870737720368680369260694974803509888298123483077664815609237266456768477363493545616852883021158051122402651823962732871840541995713193083164456680287687391583004917851966772032812034944284208474017671496079776185150754587746341762607907387548859244373106732262008356814209828829315500856855316579674570470849598385492515738686184555612209460067441650945758734551120614430305143545484849192326027896905392469152885504609092605392957569331796757856544500366267291870225880906738215649318645453331204369761109930475015417733128810462144226969367508533729822031213185480791744088018242588787745982477151871402089787813992298230931960145776850254906700126478186353723799186111067995094024492659672055279287139072062827223230583690886082864111676346152532832276582270603177900847679079711331197516943955895416193513071449548705467478903056505016345157200452328107467596628322066204822896686582375973359412720847146365785502490864840696734464198530851482835134363841324441856196601767554939855707102055954810044019639288228034229210569428054332042860444890123128366609394183303009750513304803886579584967835848195944227539867423794587533045847671652183072056133630492086837370585998710497735601777579747575211193447245860968599193107353644598697142944819606505237906808640345092130840052444990948225754906528185829619004523191056206610011377629060780299676264177974634524332855052984794611630269290027661437989128453766316880599858425672572688664639845522052207777038342885349968201516540234323584601708735526748286637882021882216625686685603689403710506627795504708815762406417202326823017742732005503933847041775276770884607950132697704558443646350563357300148695091393670595945171037992903279172915781533340690808408737749522335851977885954937347017985655906224488142402860674594064512913977074568178288915487915798317295328497415601511751322079900469899992826920060814496672211401856994432749550226118498258881142799866498955771489729073326028021972366883866834187831180940557257761073447338660941415966215331094498566257824674711500596218225130046986947944679386302903878971640746000290537953287817790017334012749600249259596078003005572676925963629185188676187092720951470160896630955585625748642239985780297704509642670152718324417466402457161602404544211099990195292528595355730047570623663739295813934569597032120132199261743820401467448192721538669934704097561235510238108483418909273727556463008501825889812149638216653688840747723581828646561107079283362455883490194387196015193840367030063234579173412931155010046013078384684498458867667277952268316799938145466190126938455477270188855616568450640582777655891272788931176244019458009332675787070309782820422152967617889171471936205126323230836711873114415808713013601696203733707845080825002004274899522971042200436560083327336781586938622189413276455117834339148049865347826758326065423705678816465520592008208507964958188590594831964821553121903304655036983455966347645060671825363998820738558813025141246517872815252686197534099352334999780005044101872328048424889862454501521789979781510885631443921780356540823159902970226061971972767313978877952289346957126104907721596463461136263440098683655660653466210940120329824647732242533200575035399943498241275116137038925766757032148163616359539866671492611931791775120108459921848297191710515132862916425101489983815583709626782791604569662643859132012720475054204147268550792747730850204566448248886385647748589012783285538883543403467801154957752058619517364787742577890661752073427889426904267673415639306283826120710354609560273888444435049145509236718075736154601387150147113429811453449856771315810228176895199743416643786795444510354017973291425072235177408053499978353993534103126095027447121044935084623483392183164000681524118701303340964130825570011898829028266425658619589877945873110412059699140126122498929593375154793947077438811625311744569814018635286358068193830295639987654660504755336369540624736198553610062650723681144944955693913645592010641107253882922453648501543693527595344657061433338759291106535635013700877543138188450201799610740612719094734477782913391942824381471614233655143141418830097675783741412772452492711037642445856213238426909447120887426933127751210366344937167887886496684823363165276129637670164971505129513035883624385237132796638929730235097704098595304865273794244386818210654524082996463042226257303630606367411163847075269038402452414610320402304199333058852201859315163584505758454961315811278466042993028551565105808732929229130353774791687020319600734948725503221880721103936788553232767446373769585138281458282307433258250807724327144688016274843250489390951831718522230973138517435967855185985782232842029873392184521351894257077658292397435131750782430222121296646106470708660737782541152413709908255983739868703431394393192669691754777654173844107627872908952666098323887432233737406025748423709893573511869165004000756750764825525591688476567993705088113105640376012267562990049958571129098164250073808893377248677860548144923598319748211007044324193075117048896410372164255226939098685671357322813898898839823719108799563865109970356534835776773025374996138951242729938588428957508575244040406250884710943018415656139322660556050981132380251106972800908884031799916808000770450446952393630651303470681933538649458526712248283626243571630572788722451806127300621974065689889218742006668732705542715922247096509975011120692965182202357247866993270130707677065046067154963322962454473497719548889460826950864575137643018178547804187161195632322846614628894153661874277937385109786479122418791612003548836343265853347612231914104281839428149589279253773264370768615681245580898014631388465038873797654471491724050951298669846025236785817892353796613021852091519427877452434405470212045644231449912761211014907297222278246029725337938326553520244024823305860271016292722908120303208280289371351710739487475064766336954131257171421751704208338859170827730563267073588431538298953440720676162022881447404780667175431356860425464489333111683383123770214016347224988802319304419932010171707666729880143496832085669992962605316617236331695223811077182617321680195066858246389567684109231373217414345687517770449535783422665974897410594998523083674934654374077013520089472307900250171430425341925316414748020937879719276978573358983540706916633129408626846372927060535205916504762154075148230106234470398173123970835907761679113003835075898522118875797551396263937112278870357499359828131375688776802326212793164699838580330733738854001198061789494016150912152547232928906599892808462456608826628938386589130843924952975087577048657622686836509691211257737454689761063946088126488852568104790299503982495059490943490215370172163048192522072527217330725230088976357829759612510729319808810353900569808260103031177930110045634666532013096665607253880847943360045685898457866890508467909780091587579119634691562954648544177380730968156243062291803200151227258300727013782307622255881270757825533229820240175914345612906239943792924737992847550186627255900600277075876840939204860528525970671399179515396445988660661500674967387100367563003354564365623952551189766302297302585497058588663554988680482354908649766828932043351633733255900175237243540652772938405409157888989911634032585731570621042058334044415017724338709074941275267871094390486202994959277083291312297098399383514464415014641952196531603735858793562894960282027495400401898505155242892793069780774452323864579862846227929435782592012312862220577236435838229256562371943366729437823497172305307249215349025925509689278509644279825681815707840904777992944892460156672060788384157034809678548239899038598776073430186239020765683881745490092197069095723564209944065157012543853953544081114185942423579125927498318333414820748760565644458908895217960099629156995445949818396796879040655427799877694181981473027926711588663063713606329458593426632619976341119978780771370037416071746479706085160971590150421073875577724586119548070297010053722698005398201643528352251435834998535799095607410838361157830366795178956922929414259319657555460931858852059798412934102887450253649083224951696981164952584910294366683285111734349041002914935700570003089148018176631325489067110487988454779214415513213502807973407255474902540098283856593361809852192542770790756343999775739643556644390260094159839621317679445436791347154240058827685415727375281070600165666705162381341284150387424001533314053680207184688613019979273059104755362456119945344470459456772243242324716431103572038857548066065867981342676006882479251343217451159990382900534117030289834976658226535243694166940191201984925820512350754051803708566284554278480780153486620183984151870299740604774043299901081646380134896288870415053206215458806816619423461504920648537093528123592464718847504675508473847117530733651704377549661338367406086969251699954062709847160047923338976008845142484768617895385538742961572079150151390321435179639991963123130814155787151234726703421054056038963675606231882484732784258217899919932992199581289244348697635822737920601747378895990966692004406843414308985169490055923754725599800811960141574918124145508537194981599860815458413555057453186122388816232759430032314408033842660541544843213214974198557833474461314130885967492919100237414536080022090109960932790599411269240900275005235979471194434991727303090727986798122499479348892477012742783685755163861108820240830991449225700130272807851725989293541725496552716607994643576273365373412614052171115889861339754374590383812740922034918500545499879217553834720672118408410285522813663834339778688208356026871120470579916550753784981418823585869108528589371034736504942405657295235706488669046871208142425376690582218763793729357997018392215951545406733305566093678766625785947987383748718840511807115378842294046301074489036982370804762326169983024249525651807676304667803772255468373008683278310312688834887073866153878902303232416089051504425429903778063395309110196970217773732237629974921586435907876191797332753393525441161875446311496090689840935539513611384722882137955575980453369046078357197526482098555203933362154335517881455765970397331593597544921228653134263138506706502921835351074647368861252436757965698035260664912480046003468536336016098715321438052825757462971343003751867633398792409602448835468375261885710135813799166737182677049558549750227377117909713214617743076569747808799919999714124114508810646195554255344814383823016704259089500499737307896624596623954208805181801086479666402331487895821954604732294870962329120172498189107657073151400305986825993965508099336847946176618937808259362033650024446792503010531909934303953035015753323810069147796113727618474849252372446983201337964485225616645187909759643477669493047034133652227371095300552038558327668184594168113191883083442529783284734451948890673632735511947703156906626063449281960661631917170154394815428037545448881330458513558436708135646183393368220690818536699483981385395461417852246154800332819094480529458143581954809962996420426424979980140402748475085755423155205381357005095094993118837249757615038859227731077099776191468677112059873585525398361789943649948896418282104600635789246824194343628159646863288567981861444046275718107240752448045005349194210828772532574127821326006592055946304071673504328310387310905551432591725741001724577331230208104734128554882335747233692994220716721053772272055439815462715841399779416790084899606826873988236861661353813281480342987203861662352680784520499168481567193042559509530581662491754360136071165031189996101487680972793444136221803184023548673524941316573808663790303352619108699153158776254495311063908997707727158818180868026412292487390115048537483144444419672865732202579837727187876305426247822905390502520030128859655182687649784757139982400469438253941049677350876082900421934524040354992454787186747600458491752525027322946644335642363439625009427812578907456388910561032783973503821456761228785992000809357545767303328086827062266630195779719185434689577989141901963525879831347857705553194284490544613319888126637325119059586669788648699151059679094816947079126697236691290625567459305619043448783918864750046965653532031785368523996102157168420864940952744233705105013349814804141372308245246917646059469432606570823179191010207681069006401575808624569546932676391709787532555635925758880341062209452502448898836902356115239412325347079544172368507887045377455238962678135325705886753681785955754198713477324275370623606612133100810587694146016129478881297685827509796718175931662878293139376463693002218013491347335073701560186997381900236405437321592389730239517547599936751355741969533563971927755074540004702653068442342018030166555131396095186922200817755068545250427763762388080428401961978326393152761591209418041647998122202115551708168481004131136928495955440080975496322449807840353156509503810444174969869186572357307201539291789307678939979418097056480325987947306117077222652748736579179908688300168762130946598385350330315527680372183894332979346254386728807952250649509320505570266725381290468166218207821931160954183029251607716733329536269139792268165619678735655840606329449917491104889579514773396017255617609379603759970583551646747832028292051165021577994151784182374021593938948748411930163626311526396333804039522958608715931006540851396053716227134722951300817678490181682738729968966842442237882515111849955243179348839329259448782238647847992902366749068609318115582352959469691938045714067368976998215122643808647619446979883228518242054874830953299754746635354958092537368840812524941802998613591973868189060096085104857567180694454456029736805142939603541172709759576752163247980846694197387017598437529469864639267770000703474749217122478053786696832308670689569266509765047204327078694519035569801922624589631223309907549496685444041144087174172736201349298189712591431083323937670650030264361494534216150844440782637658387396882990727564253989729609149994063286203812873997874943770321093150303006643145407795099820910967300755268317075052417143913866451079521087412868109652821271818048191663629613478670933457675476098617632718926826605285534382010342184007215075148727585959472700741891153999375433826150050400263733936974882215266834109080102532134512305241324253037975909140746102793540630624870439942120107707323052874704836459438619469592121457308737832189919597178748914359166750330206600238588301279434881440910079775187669280891520931187429036338468804197162525637508696287116683174584657004884926462385292589416093836174242426506192275528272354144944977351468116200054574447377710341847280742843325911454239991273788421447622345654040158217098192448889357899702245310126724562994403206600616409247461822670624342004076663346497951482951194155222999860836507183175167079217286909164110674518824427600500445445589209863114013134199563791054222678588285692852025341680022164793347613460955036983894613207983889388306775646304077283274812343539384046869523807758707879044777311804377174330738841851779674149095718524702683777835807054693880614893276051537638117064252931243221401807128347809277131598503930451377680800532054246773448247491409578131161664088763157650205997406920723735127198653874749534915150363296343795553875644842306155447535866232981701657026705381774323520618051173185337292575413467676873501531617427829652976933984333750962548216077606954685577702189364101191988562206529872608876491773807869425042627525573034432408904208986013694495512950526324984621719335025058946290754603045310107905884578834743890581033602123826192423902921258431827365064644301211655217266881947566871094188806250484528679386935872085930688862851901934387927088511358150505074236717721567918583808110933254538730424520193547202138237920244564128155049639843395466250894678475095424485494008775503043554335803226958515048151684327252205067996623993158735496978431951150851323329789315990496036850358182822244841806880054807304986295768321910754773904722772147662976735465018169615801383912759750155728869025862093873372879271977907346500161548720646138277447615034777819017818626944561593091241112726143822518671438383768042582152594718054811469585615507621168580880649307032459909539385800245814016189407854062452863892467373900852050805975135532616756283105813438077143287476718724042866344432939133249599162024743338563169871057987098191029040147947972329926874118611511046815204590891513825288978308602135662106996501683217855365070599454095775034554360609400213881465733357612805704949919865852582395746208471490216537338572582303065531161468485596616029892389370161579102968384837875917521933494453789615485993249894696250863019717878166809233086743490323565842172428809686221906287516050555439803964750296253973798726952021421964234428615616693526752184990419519013973891766184730213045639143090014913900973861226026948439211044002805269846938420578342549254783614964312486274658490533861725964865424819445519624259956325264255792831219568229143182876621213394815371120825683320292310827373331302924356807051249827375182858655684509626937058596360491993101845832926012604388002022366929510254614941258757893153259470998631740517665905122962610370752516996781515267771703894949955084252022137818342902728705151416561480054150696454662052672816175324947509354989619919084116230013394441446619366605017333674664050417388306925962775826460602407896542616476521742204111859348619147739490545144501784503828312563971179268168383347724988749921329846694565828793432808695100273178084464624299659860458650884672345186717771437804643153611195240330895911445544737586967903109282625249440919988171411116047192681622233788226614946248788453584962677411594757895726023974274191363758040633264592770011745970738753072638284406809933955613371387003919465724795584766645167698620995589937465308732761435180445861653358540948189194729925383754723093581128797124793730426457076916710942956039437099568002724438966808177882295258443178409065364805289105510594346047037963688828704977770905851405566511000128360380607904583112191932632975988161364929690910741500355350256534440833606700949778855092299507410805628055324301337551408153546036326007246944413750611117218455214558864784705301361895257207934134441795904523755041141872079276601467067241937864560997090501736543979816301484475495707832584552618756270929966555408881902809229938576448161776315118827809127415451909271538686298120457734897462237533334624463806525130737777165251681114633409351155712121639837092584846945426730164041079028654109808500768360305520789087583851318937485361934429351526236797203129232647226704031132256265479097313901216033821199323548521203357669504919979515234878466721901526817090707021976632569095686588215596495910365068431637015504692493845642135714448599212005377695700517860531182721393006123107265310555057916719260462646548874844601376782556076042051055494517811490459602597743303157945356726215521286284976882865995461647198922174173290625761552948897526100361073735187689571876946700239087675923094159836490786927450520959769472602718160370680136514385828193932482880162244450883696927816336213276842311249857756712679538871069168517246942601858062326592518102946656459747505209572383258119120095985429232968490334404706758938740943466711174746217199114306002975064664409050591480467433288331617911904228235130506083752588280148787886499437689773503068204496873244529390925054181206965094436965075413957187705099219237799750839327379758001315951272004383300628232519917848498170621757825321840515579265206739150422628295844996843999121085273763848861813299046823810752131215001307869089067246708799169194728058046924636093606649406534454237647801325297739155082918187598273608709504175724559889516373591593367836147321344692961719039208252613422721263866731919183413964116319938829131488832552078716568761434137124255489496064900356158366731400421857863611933322898760348191880545906388953083746500779972657413113391653157377663966956690657411948370384621063811652477431811445879783042636083601187153366061359036131629221744509885710657191774225993119764515420232639539513981088111968012611156997200332362829470390973612168467880907638363549280641951174308425419229629614850157084136633634934597774744770614532860724215768860849985529052670195889032284910870667613415268490315782057037529593496369576400439661004729399441720476887146047723585406159441292393919759076395199263958385317779188647336075293450501837208162206983755325902236773612303616788435666997775755264208511107992078437865289535574475376286670374764960127855333710390206282004027949944580398650570643336340388765137921527573782720277427864047147273470020688592466107722371388623476976663833872041692953697367218282411714975577155333745927900812125761701242972900194010523856562908520128391372318211978505557131853160176636613002485142392348441339231129400983437988496439216172761457590063843180457834842354986845567479702751971024608582169472856652606744218378458275386837491075118508755476828325502495473760939411138867123139020880160069624078905929441526326131644115388844278513305907492754149889782015102917540036717612655353575966035526730039424864807392848637473742026106034807766632581163495918977110197969376858752420879026684606891185714338508899352111002560493616154517319515047325574568494530471697372502158639185482809208486535645295694699533698171026477204969221556648806278502028330977087054949273832512187831888377900122501734054132898081843912142929476655062548072774971034059774425247242910663952892619992204837939791258693127384214839771566648001902160391422992186427461760862534574830074523941030544758093402643923804811533793820743334709428185460407188043667658819499748275870949708317471323985246056692638330201118013461270890330935850071001672313642063332408557899857883063250876589350543113256910375388403989960451655473154257956041443545848306199637604604319328545286224594919831441671772257391378482695270043714030656913948577553808754861261953030789124442429271691768045483240547895874094333858456781634403184439500944748450937641334621161259126908684709996683386762495250800732574624402565203787043530540927789030969445880677772437089936760186205006245403328838438707840437714111603596713358494445306854445963078240114054074765562975266526546044222340781040586917669794773810606525345767687379458874518559449803612205276478839543998558926888335608806532573665584736477689912156700719943566361889032002944724897316449843273533538935525909613522952733269135293485732558419980657774746139692067537683005049969460888781941688207788377203011107490553295957704176743465734080830663746761299217029731375851560552242633917826162593132709429940284855740174740062517220523311073751600603358595452070875274121728371562992916252296087981340857604579395412436809857307641371912105953233517882271737852722268884503399003028188500059447851357634494414685330928032265391952227760658717069368546374634238830826645685057328708104920040951167783452041350592475401586076711947059134006165374976619727168678086044057095417053404589699716439118299044072738516321487574008084579325105224666563244149542571729740456777665544922989051887719869516964048158974841236170734156020018840110401856612511310467524494714822883324211448595104469084827705075799135166374647561608798170965312875922190017751261796284712520092076014054978601115959326801250719790026798817349293619901030123346894398773607913229217112849744864896851696792450229980633674743965757998188508315516069579092630648850203775148923992035645521646634161202883990859812122232750102042788630203065731383248127697795091064130398167039445143175687244864988527288499217277018917776763503714602453770221988696233358690581973785799551760315314366109563614725658508399496857480019297189994161771187295198492028076131154603874399461913367698630217003628769178858550539655858661300630096592731465783770893344859782648465980056069807651823877604244376556089501495327948441233707094899343323493495716288380628593186113964846418865311127643292923952320571820001267886747299685445154302025215226752862104454807048453192086535479848398109176640742834495812504378539584648056592808238346811760047084639814901324607230871170465942293988251124027974209265749162863000920506488498638321793893120439730614591948175365066539567416943433080199198098524607957825416075953655689135417800425716988448407026329529835698217937137530890181257347849798524510933768395049120569793046506847273153858297151132382051257912761462609285696972181036740164388020700881697056993420197093838224124752074812507109299985376700523733532317257519956788643444360348916993012739651975775910836986815745164292844156801633081089568443529323500514200964962670944089998014774481887341982538396938851482090475893599704067925606010554977540775501226623763811676254879342377154631653340709540238572743654490605464123081442712235859421691440106161047570482812099474190465468760032029014340013596098648925451066247917346553440190451400603705611175626589639166932772227086120881103756003582833651757980042782251109557597621168161277767736807737034027378789188020523673203310040648197283266185939611864556330094586409464785864520590366924039917337663743719044253538256252216648854376132813913899401337557323078023039299007943433768343032279641040238670129403188964098538629962074285030480907152008942139269561476922969308685154756128857794693959406504288159983982941450268668096066088103210832113184077025263993436463342759318272290305006524717754538583786893986854705436860853379241216377325099210412753784239179118352953276722473391163552330380037791007830480570251803285477635224110537132427514898152378471805554630173020933534489958357932587467735524703437448820102262586227113431327490009135730526384646766059181277200879774994248523131098958791013695719377406456939419635966853363915892791015378735284620147920559598734666326668856673459093759674571174997100982075925956237202875067944866253044851552456543916305794627149155597160016590277315554860810841242770895258310420805552026137043893986503936241253068416248351087338070412102240900235821630403795666345606863549893276396068590030737559699875119870815401623681929194349026273177412581857260185725456340858426318657866439027882028375359387621814544196006392104892571646711368538526307659382728583478466955777839571856838509236928655886969218784536342922015474848455631098078029074621168844230118394621018975975368414572582278657162679293599160879519743786629533789631497000246381897084440371907614089031455903884165631923534734217614467318046213319810131912719604459799962467451218764693446605917538880898633331483969612059578255936466857835077294694272168567126868793166009673490587090931690307396257956174525045698605262003413240850149304799189896306927909033008149701077833581446338399469469080872498213374116013037764970933366178526690477321734568184311990710114748500772292659347408301495952667935750671398093073706945765519258453321896149469347493431581003390828818542813693537014621056811663305683746026797495897942407337362826073562519527812573770656401178098574721522019987428548473134141968905780316260219962220251351212165873663954332547886468704701980116381478081924704760982719929128657875369360775678701576593731030888454108774867741879935668568742519161923212380526305065343280243607473316549418947606076523913677764337308776869589906146347891118537460525486505846929562341802959550092013694551217509535840482413348981084790801048149638106430954470936878918797350952913611294264180726978858188296195445257608218138228370050752365718258614581493044064970932766339322605104734463713561040703166886457757945937231510721122373182812908734185787528949415139069436526681319472917023678175880207264545596192262506847564689501222604899055552600195009256058953849782838958076684774254925039731674937742187434174619494276826775079943637089032152690493695531417926394349102046644370121977172105181193665352751398765328686892854974509116095924359670882441939479304258483496269926230567962540630205239973345485094210933884164682838516581602281202884054775033201167139681505462798721920049853953060513548451785233135984038926502561150794889284406894408025661882123249457009276788369784145873144214925775778443488991528911120175366750533768078617024375752500507985479277496791312857153015277854978489818712474153994027763634979154586657025905160103976553541532762428428608721566555101177726281236697321635704149053283793576721338589281342779838878896422798082980449681059556271496434439375404281562566422424604156576486010119733503305802005958369296706733511711908171233887162976199889247361592482574736885536080180002861444293585897911451420762597580599036723277811105827683953539288649393195221338833164202369498175734888309292348951480358159967127236376066232241900685109253293064356146428320040972988803507542907140485156303081363897049872772486895829182833591348872071643145942192889446529032765376923103063932810895855782613494588725164506803680199554321694119575824193768679284839259389302391693209863046097922336156833061514723668526792153648252962901686962723684438967140863078832595107868038328804291929707365317655587651742157401016722432385649446918822252084404391709785964570630064773201255976062892383874776574213340299993553278196734245676976961185441361582889572199484192068282743098389886858511445438447661960872213659949582086337848633982911548138091444682716752818545326033914202642240170824651973397788235880129797168698707561186690277033620814648837813532541968285355777520565249218823610767980278990328841486625043456119617733349383684089165966415413283310055635120257878238045767414495243739501241631350325559545853814220558331051091592487631162320472958480178398798399580423974486182527183887901232303292855945717543147313367261714058269021821003244210871810367437542815447978807827126825957186431221916742048040460847100790364650248591186966121066575612319051968116741237378874238499914967867324346522217562025345803375270176943900097258103744523870733013237436643070900804684756228151808045732286273028915444295005047110319480375953990722791800718863603213445719250207180405631640399096358765721556772531354432488280805066964587762880756326331340977733418073570164243951796721746385382722990353514480368988062473541251827495452479777547026359575708931053925282731423693209606746025829060574633591949975692527763130131812298397830519418415927722693914108849494821828406265262019341692193820842121906345751788542710212885536639669682468671132498773330058169747315514282050744969696156491117295350865702938384091330193126602310033938384025731761683159142418171664923822519491588775254769657468675456931456814827514217932511279412324415351512386787714956438884403887117479977903649793600247562370843951005312765480611397319319704810466672388196866851376945845697459353205502861212399447290060411578470871937871162660552230023778958608152203481553539648618936237154922896687130876327051270180263092152237992240188882889446441505065440912114578157833201062565742354097083120442364525431695188935445397668597763077471105981833981107509219347383299602340466606276552074478764816058816957118566835701336038811094831442707657941618671130767557355074507608197343640818181174038199608960618998987949901895918694536631294211739335436180328829243496631767458315120959322699608833083499393743431618894964295197529024152852083739964341643137274834065241739578419817916808574210346225497807311246036377288602464733977993943529826716695763480949378130051972554635049732621279282920184109578307222878667635267737965586207126136211536881792189160307686818027806541647739536469253290938444881934497654813618525392589129215934584633429079509871254614729155221139918824455300942663876527466555163275214983027023420074249148330591976649845825870365755284910428843109838080734098629465500384248279815034863598458540653478150469597885424545312686509845797197958959059222209723644706680709409109275942048900222226306575303960506124129085102005421191410774479427615043549596030330675582722623532969381275268980192170310144162968246045945491417072360788884157583678479250197130215912347614198887283189674766031069450276809110638320333260523069771549038585370323930723999118116696704917686167933919681062077250767845993218585063988158030665932490195038216356542651603762436428662717250690723415512994345850783856140797215063132719368431892342834890454222249530458488548962985034278073193721498764483756652803656276325848473197545344258285067065312557080814713691069270721595814609909544778579274088212771319420389022306057125898711753608282732426947641955061579714014915883826567450777147649217234453441000107113540534752385035566479009978446211926465468430882014927320226277379261400066769983232849066499867022178939346617931889062563411318326264113913439317374138882289593086441969466147064633127909753705143893330537048336423678083552328655640039642810156820356860290838489707849217813672368120921006795523620333669445717013841733220257879778263814446012169882015051092802619873573693557645752217173895544446214191296528421811757023031309163453333154778362650111861300466713064611591230069691488032533852866626134750031047320901955454058887794272239290947235058604995444439447608395697053315571195524820807967859770891310296086913855158364046471933922204487000304079801095274136914603186547260943202747192759338953680759596009046494222084688683715873797741331369376850452646245473356001636812260557606747166868432628487826815708360704568271888327713842549516923577806041135149534167397721839708267295744976088106190694006224090118972150279571277820714690364824686944705011984953079767366902731392534736980500468541649252059742158879919033748832865007397762467888650614858026102690044377480142270525142236712350368532454804732863999605120349525873564623809492504215318286994903286523417987777170309726981217380598629043103793495812497010707865266540085398242333909628909966895268006093389971236147769579706210288803768859962309931391046392082863941262302077299133695937834526004841855287847604568882012260369047166444264087730568677142604696984171737811858773387468716119867810657351744020970679276114413022183796525503719507617311203931790806005089377763199115290903119512583122471432623067181068949702053330601275992709133519045849190518934274366465736153893983307804313459402396755929424800513424147071883210616558478966606294762402961247559906365015755933642136054059729237489328485115128531474708480621037560030619347629250075055126584983451041023995451167103390931861022026874536109577160038671202500014755501024561395696876981780960329639909105475094228012035360757208047589055308598814512403136519590663399719995632995102027274563342316410758602298290646528091934622777005436889688315369766646252754092036736468158896988431653488491604430756646396350057727596847354574673016932148876943493936501691823309812775531643409661761481433377727139802107440615773687679021758206059468617975752741172932647468173189226338411904481430712435033422160883053136632353126342256470078723993770828344958153930939410095249362229478035193148970253642154937967301561759322625276342426154781033671369142174744406647745922070265875014132176295393227883831090924049119697499355305016083445955930366472250654385239718993334018788416140538529486413716707447156074717663437842738888398069761108074591410547117097500949078408313467528137557242130049549764203333739922696425886498613348218080251332298268772787514708782520871046004535253328973692206681740484812133914978093878078450774930200706244944771015064032294942609556838060216036856344928162153719601778901922223210930739432583447211374586162831268011311652516220459846065522322130371525003559410315039738350347411599670580029480021436658229735048083917642567520401350216299671953699724347477194310117522318634136244630711725845185666214400257321892351623792277792900840221755718123427764939810016887967472124193361654845446082326719088308790864079265503396047851546579804956009083698193987891126232748797991988336114690671267237447826056437082045933444299689551064726576300144401921269775573509496325246776108592328823043396673470623565922378077223254260454531835223240027256746672087460551889036068706154890939226250019582862884269333015085935024403449764119383741090453470326490698798250293705056421203436757608115980105287123550228843350524825729692042136813790923206263383962907919488534429278457606205301246155351861782961510778684724870917413512606463325414803961287729299206846944569969212265302592912169531791201847539458642266404336312255124499439733984670495972329225104900388844162013358466253306703560131899087480727310939294219424865584384461932682059981851455177242354016917644703882422917116214273486657426692946799634982614029053732387192016385051056604218741313383356212918641107922289950475639407924947767273683801509403150979005346163993522196507418106676220329655368492532051216130664120281646788510838685109862743126373369541399098295028116762596664273203173881600672218726155490287239565153693978621973167986948391256905835215226948766648685585010344978908872623532493402682012397490001766315944379527889245974542147719930250284552508306781822018897366112922020491589548094336857102456850793318317795070303909842387323414360684470022399054952331805622169842449272797680860917588060389468105728823396760562699107031678941080527700351990986179885677261675624542401217057224792035879569746644724278306899201771265058858163810472176882110594567391563091373965898736582511437481013824437212919976406285020094962810752808971658649905174532216905441427644588449946697682331081825813186179843866326804102456806938628255792274455982869089202281116871279810211238126295322229194987446829666859586989335411593236467981425708648250858871735889524346406916711689273143883455988411844584628624711415585551372111757277195514395439594277139501406145950740521202776887994400493866694778149771576313338667840034420993822596484025767607244371389081035843471825307778546532431108607763503372816937122809588659980985112418297504964468174919650317413545738869500764423057242808161132755909554587784295922349267308115798599646477011056554065975502512154724724993218458773854290006963487289551903525117590872522861241946755096605413148785915197340738504050787470170438197206552935577248057265294760778230036197274750191115015610485032246163714795955715609161123293056239094947857202236092909614862649411181660525380307780729736896531190819251415130369502442358061456283392597673066271239999018219098315549690807537820702287279745474300420799887460381341652037757195595464864042532619547853397608626513133371243004113620897503295296597067980001296589133836148835990187610571354001846529428706692187019144627972921968326104713993624746086624111165251245401952549272711948864900572427771293749632960010509144036849968193462132162275593346229460187515621083588080061835606454681353870353409261801338536158312595353793912157165685408899562538383401252875330702812579528635586680844630984716266161641313579405049357827573065210717996550317510842466990717004698521170622401811146328344844616193235782783264675320366361509350507684109896422660715937918368096941675454995336365996628846168597783139722454259224707055303034829806193983057832682671683257126203299688267466669516145242742497493236031116772233522065193243656202642228886902411089050588018076850765766451393158062730907423555758629938523864384308147296276063943495286660357088356751116545087008452258054951181165080828758259290608196047522614060517617789288755472033453710269727523540471800875893944754226954624944359239674815781535857151890030097884134703308322464045010087664138216944295738320941444751580511375168653976382676630442531097025447719087157518719273828383737616406073975726267136817236528364460023768581719527361362313601939679183574432257885192618133055315813873491313425497369814610378849770626473041583747111715773846739171789047668955388546939177520627257774022850072795225288181603967026869578192064622809406545132538815753810731228591386346858240025151551799970066406350906030791842851187695874035217280104999951212887066180564289553207560239874223017697184918804710713453446819519498204352465802187823065451937446624955404448892429747334157788376808386513691848585711080202053199808381079896034683119112126549579797238457076988745815527866975693659227563239733521989137070525016581509378048978551559686994738545709993588240091134953927703187825068353683885136167789073846725507820633414427265740794236413350698549145711842719340493048943736462275933275372039653677408740904618192723901169592886008579063965148343360529820786908813549580012773908232622191793590738335511239391750770958258969918071678991776538290375822084851057349758428674883174460314547605548616931744342409430626655726569442957622470690349469055365117456757364855237542751650406244219928093720324194139196282143091142699251860702860729018743282607382593214073650281987857565200929732473078182818084223418054227414597478329277729354622118750741874958963681572117190335629348864217399376086377775735401881342114371444309096172532632573984381913112502751819994814823323228767919247969389493815179280930875296954641387858825779558843118345488901329489485322885701463666705891664233624535565215284317005467922977783071069729452643555262281174596118107993591271838411212683992195770573093966398103131320330293757423309488613432391939780028765372118958818468549273007634449281394329433018153058827136027798156255519165499431249082312603824016379654392318722563818201910797062273281364248419600856547730779397296419305310333630980356405447319907391863010358650580218042559759543949403450761304918001632487882200562509261329120806248752696188575993370988632567847408300468679253793771482500041623984745832293770016572745681157643764572208820720853895786576575164766450986917191717780850646980930249914510201348941202093232143312310569754390982360519434302063345835524055504531152764440843948985334217478885216954408101920697666044146205485687356160346481231090143705606810235783164479631112775636425069487219807161064702482980595658802876325218165322306413939685174022682423177978752239657355100310826891835424487346230273448218300951484621878498143596362854836898102604514134655469841625431749036910851759372667429958510955417194332437909528553055651555631432462688367185901059487446821028908978214640381937354175412283114162920477921234127575368077990599357442095769973852292861831911426639204690399392095523292251864613138483165526733895934374197823256562338580683220817332473859188351834991307976909104714580575377358208348536073777468856385068067107432223868803517422631271633510028254134310498171865273292815407640731412656918913250638261844292719378487408760246103259907863357796540418773350928493120664388278305774143787939775691649164837321900483038833907544403133155978370606907181304522627102014355218013188703435028161345274028133971651501859326344649080634540468730550672621063230178099794845204342714160638448949313157911770020958158337886742495621677886348673050767998789979447390745725020432259167443231121092049490798716552429122726791183660373605704898172299230470423465929365236153393579801414065922569674569139765944579357672450795379568023735892296221642724788134123397745203548056031400270324286333070693577628161052043125812354235467869824370635823248876458399888932154553112726643374285491481864258028177719348472313836995268904192294500698374661607048111999665010682934808455895210431708357853261307258880419865725373484485872853674429912797768516345545332721322883562352928428038648636856337221989075538198725778480684069280035157080244186166256751474606007114984592672037239343826901222668775611165573473431172108977339121892726066389949142591251105564533642202409136940715834767216410702627364473083680089245975731284145934339110897003087778034933458604279215032749060127334889908761532406800847406341162573918559225787266867871702152397432068533311414516412063812998030571530037595083192220282520782098867151576429652821063882324137764946699677566942149679475333887219781139222669206465780010289280382733423275585821183719408645279330460280361596887872961381669464461134697564948745259524585772652409613343702332311740333565137566528526063121683771268993292082885422257209986194205727179542592056678697208878863959321748296073719289282627541206155165736858846098631076758225916327260400920558251241067547031149740508012733879222971028706569129899876493622552344544341883639714459238474477504288676999697352442951098703011130579722444190444229248139958500505649027687795443519466999971662056701969911092163809263227816729604065308879526707197310372536114679838852233626964848461108743229670039775019346731382690908894471977492762531445285182057991662133839184853998099956508456182835467030073245614660207000870831198606707139802629511760186645825292982331974409463829772137660334287502288499453585959148971138802545051320735698461823069671623125879703771876957241145744734161386681285136076207387616678695768968261515598959963102749431035309832664391501903437809583925770574584396039425352818445288511226103723034710933088974279119234756717165685558002667571997448065341801356318296428953731559139412277087432699900756561251920453594550942917050215804079065695871857712749040672195789499029901145024781459050748047082184713076581232776550289082940201593247084140590512617595474722160997653027075652839513775893345125653873058575170341482658028983715474895938823359261484009999681800415390219358105475833260148136119668881880789219341165312269159839217372020525763290625728366614206937761530661827192609522807921108638117015851557878035585264944384922806779931653216787527613034664464176239035457528189439507059956803532848271127700683743871956294658917394863265204754749625576965184091309166956581479621010392217152718790236560079294730927293479992757431278384589118558919452101459550741077219443097861218445470557017011405971752432583309772905983650605521423985583950806951881441943834309158708727414162802352070875481651034408384086993962198794231828437534080299986230227910897256973618149422426772548448865657362434268611387761062187978349069575993260598178537294824562688597219122874177837242904108914344451476128877032542734640960576262508270382427308580983360224732886876764983618079642946814683979624660482632287465270558388229411788300528000436951563647800184669033843038164136858964147473149508873136942675212261412698672987217270305163734219262376733362670725546849026441644179989140397219485886500905378989853598848166292837809097592614136296656606538401320986420265457606199037131304843450001148561517290034908790331395201978739001761030448783891236049568740191773131568270303734528922435825531139773996820747885805012987125313278003140916443483437857289306861595148919274628745767288543826734259351589007155292075096694096043059443421342032623050566290667427222964697577668419471615413160726686093290732301349038764367888888849197155183279909925743255415043633650078883370437932689263086831291084760396907741073196123342282487182082523761517856232638390778690880971845181060919717023185615587264480080694793963288104577218988816850939844958805334900349994981587425879647097905535278630374318798321382815314159853409382805630046510367227693169541193962628609045806194839683376164095570853478491738699606279716056787966425616674514184506055240766902960245045816522685141250523513081358737880319238882664951758114343537592648413634333253275513595495630121019212586795591584611114817710392333725140813393128975828867858992812885321046164771502549327056495882029723311204362115379645609514777218616523410344934776654230643521498425876133751809209526404733941690478762631304281339323010557775276168582722482438600823389289552636737508066975566792791709618205514692512632093530354130671488150546766496237740124921017393914664376501715456999550226454173931209723381541566105813849624969109090756441126667838220295401701046340087600204660385305944275338051221133751080455929467262281409251320376697209147533096896611475344558457740667265927823901805138758373782403839726569512182860814001989408327993863780980364200281413671491509092735472214958116028338322592448559581194325293368382055829125003855960361038509525109503159823406010968736435321381050459958898626884049936123502736500487354830100851582160411894316757018751918003068277276286081318846961565599423279473594310389749213941927484324819911296442113140916751220373541210634342809100941950590414512866371667526225423041433729368934769042578410092974748101582927766183756200765652723356472738771628775182452254101658156387747737838106434835016642602069339081131131406362508900320940982010066145760307623068262515941942437842054690551384846965753227864703447692428357139145851927319700845742417628584585358846075522952161224824143857146644637223550884993138235067853028718009182478137990414651930446530457862594254244656222561337948117502954356155726246799818595626224261597259811960196523146022355667472127536321051341995258863481699239124415105714679629501464321177001523996001457882399014620989226457157707915132291381884108973006140017785192613114619059529064876068990579193321514438237287187979114305143414752593207765718551719339346400292532086118256990312876486094200141924745655222566923940121159907406774938826924864680690020697706145626820792299954720775894222610422689286740525783596284786762008161221503771882928267250843143983576954839210782148744709886726392880925674376371771068030651483581079653620609661297955681594407309092926188593805909113263160244004591421676046902229313568585754649821726797310412090698266553120748388411427215572339452166342421621829659437343429087559294557770153885421120975550526068821144427005175616453785871142945045993787816130012313216892626877129576484034746972472299616971663306668864038451833408207613727012077887568241842801169483933790835878460132455928004448197505046201583788055492063182447684129475410736883371010992176676503910021338183781473945343092935118895607727541276609473986552920349052477894097632698853844362633884628252476914013203917697382360724474387000724131422747780957341898006855988221762650385990374960706194770370019552278705612518047995349911644155788811288691832438024671011590328462694012336746566368873778909535622289896233431139774704995955547903629417405521591323349725866595373194395811684405103109092088076272127700357514153769424550895664993172206499520654912406990698415893235209311465376230945829168430714092743959252164096548884775029907749985040840488053877798513395021111442187037400573527116847644118074974262190218246348581477633038866319025757323230251071880151017998006520166159944053736046621435011704632401908749026474963761807293477963346244420683896081467290649250291455654896193043115167572952391888756329997413355440742929434969516264874334879676798235162361203813006908934998190230584264438756944769504620639748925931616533136554613158363709531682523264385080034004271885413249541449872162804974964209969728411984800409938875462875747065777293070430470361522928099709841583021175112024667518196014190670519221215339650084111093799415081177792816261259281744652287755325866521962211712225675079279881807865570833500617944023298942054811179801022082158413140879951109997978875589035236745006503303034769934041835807514093525434071762860138426174219097353662534924074453075435943265982135593020055048402331960964278355986121748060464131215917425792864134480943274138952995023695639449230630269482802943610196438389200431215962144704120965596093231533022751512384398498618659710086880185695734717748877211340320360094711085205861914224297793600765313130427879676057544518034783405630542039569323758277073749773021513297144654766647940312161279640614660249172082007800511548905581635017342871133429386045451848233835081585458917881032976736220314541443255644977536167945920437349943618138722441688666421682362629786360533444175838122609191184803570089331268361453955259328570973993799041912770698235590267668452926442690302938184106463533541402485073746796878582227413705083483794203528292904660212114775899124292763845799936254832651757086438386096795280376346548076201997405066043507883090413654391408577755545684553495393598462163038508869152277284294700052074075578355599790819157158546423173588081687955088243433438868937922758161779704702150495857875601550549523123574795876056676031874597331500461214673141738898152293980963686043474964172726965628017810895618609852834256118948533398334219324649960801083677073195562397692745456768205112442708426578166559889763866545347375085785431201102496718691318671625307563604594418227288483041295078895742276465627828854292913517922151753540968279226651097053382503208123491233586467043731763188368761298627004045471403253778018521141466896530387272662901597376474069378277246039400719316969143461277812457013870582449346368051512426082973847101547437739891512373525533659903084023305382441487532333719721686345019895526033882270081259281849229394553503030668280476363747692555318449365789052725916369450576166800718857422646597312171726885301304313028066565215207698359019548040021670678259735159408266857462850928413068857505724757750514306285841911747050683900100612869186697954681939342196170931412337468083752457961883107052225247099054974104504236296842915771883321715123417790768697841273907325697118780797449916367165745826964948437790376081300339320877042671031014275356138041637686684006492016290253883325333416308684648241631190772044169281417854553466437866105201845790881770621249321320409279884909257283906471555539136388139592350360795327382018104232964080835915853157085333576229614701713968138071213964171986143192650911191350592239947646308405728985530771956889081165105452473360092788235825181965770861060880536183179755157730413673632995880087528285827733275387750232810274912259558327653093342367560268832697797608470113855068294372355279577150481304273447371675642509230335374757051125851735030690465798934124040764576547007712061329136115207599384993042149119601018052484647431555874005344170447398399941831020055446506313810457937543614495963486078375195157162769459551770201942824271861670808185046262504095794248386883045853345372498802078454108345493398731132794157837347754848981973305318550569962565151477994948717274441060519740768943303814256297003597498330338929649541918947625710514629597799968064864170304537609867358777938205729909448710687098134888076127478472087254682175455380361818472448621531982730783709014609302375356929767593411395073330909798792037321088840814124800736021248096822137361802318525923509854782322639834442626040055876625685837836626703378161487752340920967248133123557239601206646045195247266035607732944402036241768312902937564890629747562351215723013879208124483884650345881155411635948782272913355704292816043497047954754090230183653168320838980759557957449005022531174544283081539373468087525199975594836823547423495306894201762700643757201164863009502735703299041365125461076563075272638161559775950014742571387584905623433476827070691050540744867433656561701799665956309651595102291535742682523436939978879049965402995488269233218844459455187344586697274998806939269492899768164573205808052736110318229830801910279770798598893898531068067938005426976512477015913927763105660390501842351337667961016776803451778799028435840485693510365003621582916957994007096323581862044657528851235834583927153201637353901765879019364646758205664346934586411576563058952169371769338907689680934827638422929676756151902017203864151681575041869573728404435628170292364982457050954996364557430901711300188415843555925840800377542983417628029163450012278897156180655641162582335054755765089744430284276800221530485301186124814726494528984382947459139188181859343052805438662557816973567711252137746999018455101405029754761205199354011238134336383748971998966647514268232790545206711048509268967881313804915081639426140174707476978280586706243311540029769965016400690163841011257228221725983199312609627375971396531180232358127567165596856355404830392031664035747322934713448469542726946719527306123490342117188993719254504209011652246593434067396869808594385370662777213908411805499711452044918097905461319377180435243865209614196233693559510085764969761963715787891998463303708034426211311035622940389212316374530320898951009443109017185172546706329892627892407416973278929969089674255199951534034174879357882517032007885466211349603997114687262735624482963071537512189566790149956871703962512435046591510052613739004876483758151995900723612090869260885158965141788092033678432559545403371484890640588751811378472508713265628801586319640262522694368360405702787217762552826279865864029092822739009943756944501550384265028353410154583300784143086100562924119153312177222235751876506912076154867270692183864116047349586871495385411687377822561887647585533489966660164719398551621994843694675132440927280902240474354811513199807298477998287399798980957728942527431468372537512288130073084657978210815351488883027658650792014018880555873046078381006282195163614592074635804990025645266935977212420149826101437721556036096765958523412594492660454249849251026171630264852464391389173851102370001030184857858738489969279948105918315822957314887362726185834285259548123624930203669046538493005284325345647075546325959859071307176369700391437822539322827336492132834650413177556332995922779861304966142419572858928197415998084729098034155296260462189192740458718968342244151291784281097003045823537187705354730019552504475732776387852080186055198375477781926566804171463292272990845420056607415566170053023558297673881925426950376500497162546374889591884844695476626844043988207910426785680510440470676069656101349301348757882317736025371064544375140178580814648881473922557147333277881689642839084178029522150908635049481551202555380096830892318703402864767422962817229849020345619714993771105427852009183586387150226098008773648029563447078833761899256812841008807465129923184873609402960007202826525201957747820499703721468653660978135281525351869920323885674201516335947807048505160003974634852086083732145803133359126252524978295732429663384359432491093499965214466955134005871137212443797704947082083073895204681798884831444692387509049973191099084199202253664587267752083387813524910356604803505500720710989406105509037914166364469039844696435310294799383177114541670726124657274297162968633656171653875340847034038884575597450546994395361751937571204723436053848077314915092500708477103310089965293601387317529496474727850006633655220515141782649391826034343507592948080144427612256959179187879559186236938704887884090433437826664908284895054919235484155291891832869477908566123591725217931722863979268409043200773216239914773686475992146800437745273743941618114814725635816061559396851983133678754786442805625784981362935895345470851336931665589095151824612363348094795559567208169967983655666516120381824452701370126183239569447023571728552657147997550674678606039534392517850065070435356593330940500215896854087282430077621721798482994273699484323743372838062828986794763594391006971706970315668468760885592546862608205476993425158276851757050773025990094484056433663770208570719447923286432763875566430368684143674768191887736656308591491400600884947158511852987419599748457069930791766207609137259030709355197908997571723437855944147380634599548799951197884441922210665055696505487189822066941440425342871790740503173549654464257712438254603833592001914877465074820782724249646070623838231881934145185397539688882174492425502984678338324438950008701848496731674894628394908658844249720983171668943965425968703507490815868010080298842727361337757168281774637342510847957884684421857528806252721136208796885686116636215220794201501518162158745740108084319433894164302930805703009428235491310846485349507401678534230054782047590971769760346715260847581224682932635312629914329832943864185217107884709183808921104625072804267668034105228958499115935087334944352709698265656727754188566776380517494452724928476084496306628125210192154054682589612184837712677225002098946369182915046147390689631504143635368985063036649059108577272039987807434470641012970239014301427753290631561467993559848522643060154753438195124585469251398068751258445130238322304549317412513866131325497390358018336174794222969391684561709528931601023963488168423882644167688513845550495772611364972978226845930759819601309023906957297341756067673773064577520831153707345450965833833475306449049356536803876805336540650713358178863264446657476639592343902229066292110842774341834751914909806423400586752563633819057388480075997199349588716749446420302995156061544041681961914703776097420814382327837142464584552610612197599200969274285295359287471787240357981576780368307370235530597250596083717080428532426767179793424670815135870844783142733727944837131156746052909133870699755700699242567063721654484408474617560545715231632145810300920956842878909745668644200340202861375478726428024035291898644043642095493675835441779942358686728514110157707551996241805601009359658724965738825602715268756967796211612261341460389070430939314214778221887873201664077902773951405248476271726395730643168569076729086030199238348632356409283451985555893145067053476696406748450326594630582570508199242089286903327286895555869612441706699816107757649555833750742418075121236779281959857425674796898095404743073190307240830584845503435006499485470110340308407800543245542325087312607310248415611371096997352953133154749718787421535544243708622450906824092087793080088996144637269391428316255346288750212751922846251675100573933931416974643187871423460867183673606610556076644562640416314234680097981320399749049068471389225546889794873455540636645319766611424752910337150906944638031380416977660963381807463720079748988777652081625511396993582819802461631242217904517095926237383919186648847663648715846384853833908944697583753639331426913359298734867582890110769208164655153856712783897639689954831450128809023650753426855746779456932954185537194956210723045413788102341640748249795386711019385496228300232339969558700762558393917022415180925426295327324420984643790557774321653493781852164018945481872324240839797538926136712751908144727154657066900336921209056982856398422330523541268500202524219949964456579757127394712873128337809459905822895060458599086288071968040921048621659900024785621537096687768300435053290248914543747909756960907845307884982379211519211928053636414648463467600164698464744358292762046140011906218777976963669697888377011390565782295606880292918315860477354510576186374181771800814762996596255444023309666927693189449987239242235504156439951729261036419727257244243838362227674913431669882495372072771370130136885673556367023447952151128412449690904987204874993010617230800413785975002530190481123803315903965598917318509276404483217073519201005033004663158986802910905315917509360071739807041927515779856708492740405152581542550666158372436747579978284704612862721759310506232175590502995007444202634522040675275902635187130167400271340859141814050136180741953720197464833593583477259132577581242858681225282944958325062126142937009886516263277703184719872593292997006238623031280200885448079381210108622503016072170037103031419845089610610730498903826839491209898363058665973691943931079841271850645569696807259919568944225321830855414920895621580831236778077995022737788883081291344959576724223949555353441528867923943153406401447968080107169171977690438990134785579817321855223484644180785030473421535815425696465258077565667249701736844181686591132268553499805254222168997912345173423335075697333128092026215285107215874651776377209396981832835542256598023684354729965543993013914322867019297926376345969654498105545396621272989840723342704576513785500245642336676997789788991588229635515114861643932502626013776202688226980821741682992028087254685207140722405527708118395774752526620329581737745811126620046659285283846868780037452665966079478581660869410281193742322593187434402428139696433537733961331605582436167840428451967463903684497353442369211121411187794323601383683421311251889097124893554236703387707408134115320640141512868799347790333295078960700249011723028271845263630567018590842104309813656400992496709924185926643229767501000206644934700774730363582727013502145515878854778341873025275468334343992591173465996951974802677239198692424363669593653657589839946728459050545399171221824201811504596259155991081947940424746266921084199168372207519793011306056133911508715480807406360898180896968359108706827429559296327720872715196506834280251835088816305346964111092398350660418763139523116246135930394356024181675845965558456890916076006733953890834418319116053569722531810853790104502318395427746288399421146647934461794898575221521538809784282594132032913438582791359925962026108807675170248996411667945675280716770747233563273913328368242148859588946079142609782555952641115545087072307023942438481673900333539327892626375338777953897031904906636501084377016238196061436004441908445147220840769599447361663184003010393684502352678691428148654844574117634943980814042430852577788344826506847337612565309841949626728699904662515001593282451612703010513551166982440684799860442210954770815882317282197055504832768344802361745998021909854023530475436785826925385219224173353531360845384810160214698897987905637354663169845027767191024206806345023374490654428617230801098384851020833315197233703650307842056485741892640713070767766124820086980363258158565972934789014239892009988585152237252043283959441733363463018262722109245942498101145708667727894118634371221275207414475326036252655219759934169361391190698295495265654679240888273232785491260563218868146046802328954469483665648926239551055620010120097212156456354606549604610523194620510659539195540386138831096400371050619616198717248181696466414419946784221776380000852833543392934204006693829473612815703360921715627058718099618904183246536817700751178720912273539806129829273683886963233290066417314341811476351586884369845689361301493083148656422068358482335744430112079277535658363786322670891811436823558334609188428892463485021035677186507429271344474600871259332599999103909566697478134912499898947020613798371899877712798853143997065694727812132724243687836684189440010336328343403979897362549546012492908788574909694441622799284203004134608143938509352020270784072156108062922414190575106797066620785655333369151340370711576837877811768453859855314369579304081966464103282643829783650061501763750026386290993817651665622694781869865690355360091690360181203221228228694022167725616202007306681197787121392314402845060062690985546213475001825741634777029758584293400065032323646852311370382596281367974353707468206649002982304644394743764469714151194806126064846749860249084434397814849663483804925554507498155434930407697548303573670854445145125968600037717574482644421802105126408032584843006450169835167656847064361130406189431886202568515600003639842223139923601272771609628488631591918115846944064041801590205878969019995405505318530753825578515290467973429731180320724054220725240827208199751525672136214702484026933609933196284506098620505842837992329103770775136726403308310219088128934008078010967170628209315303372630198237250026632616029053445384813502166855438633910163964753489046225354634312620975615927933055189387065196369481711259969350706632574980074284683242994457730738505088931159238595636873227810166972029223980445728505830208610511869413083109900166785337319686269022886873723300456539559120068762946972791301228308448574239794696915357192725586508466403864192909728691781826089859790925245733486500331044334325188618016715785775432884693857503661550833624881531515114491296930502545509590373357240253853559406088671890045556847409795642965047754747339320224701490681435792889460594919393333499367381835120201621637126417013252175396052156015952628893336155129433868372439350223615912449421818383314697905897852050408672517454640247285544237582124493431632117329004472042234473134400365181247130133179794218756591983291070948578771319869699275498365324144393429048849947549609057957707472509708343638645562493487615293711196447983743008623357886999979614310933893301011513152884340251248147006351561129459880170253590047879147186324091126419318638002074748499308335101569406518439270969163302418969264720929764634558971097253594664963209564795664965098429891188767989058618856890283021416963659117525446389373003692159179439320494790533675272520887446525701184633091392488721601467277379791184866695476641590055175290464524890155121950261657339116753494054826837235130256077300114087529287358532980268754719845552280978180222384959649083055437908723962028002489692460872863898835322332897139047052921736047842118824521812737733994557935457121059890538265772090317172171435554496649699095750424311320902880090391471953417056506877793211106808469743978049551775305879383916613984283312599153647395129554763710280756423866851413809239379799908607302130275573492666245396361685413770648803230627146590774068019072759517994912113601448652916953185067455065893686987534966342155956781548382166273257662010436918024999813073041885934352117579063793431136210323470426744721271577840068938035486246830890216085308269135822812742399588680137562989599307668226171736472919241737223325453475845875418228602063604928665018095485663811183290877033026361764954570937224759299350914626757762000442880747920179159526867188299679517511042051730816482904806681430145276947664520327149460045866180806265248940109851251246505579163815899106629679473836596944877961440777810193822306594013469973705170047799099931081928463722480239558038399293031299445427677716531875757924741729586859447572202842945728320919240058199988273140035251061953945279261251603663439666559003647561344014612618888645511019637941574992738733640532097328783760744786248793625347438423129043108244784495685619947523730071575350787495284472066792764160872150553005969802991679880286111995314573604834955044861179897452749797910746463932139902323576830286791090816839663776057169994013173845271217480508997197871126556366950114375518656286079789237460666541691902814943785255818148625687962448512486647764642590672473901642568723330310744859215745937604477886256754260137988114566004043087727324333832271064905051241562061902466274173468813982071324573114697714351791740349357061662844048118325700991026258123975777956501641313221510636326951960379835361027045195678602720891440203866147637081909624322502931543788040926206543342453010673632103722251009968555342483686727972770684948113750909459597335759991834768830840201921241420275066915886161941320652175050264063414013639926664126892592856521420923875506406775670057214518009185878322361826248624855362379075239229198664000428355405252144547776208499844557301990428758042438288136190352528171878245443965651872444586195680716402487848939162062549325840884839187274442731253117583790092337258561258991219686760881110272163840146528255506256621692413306139944708469410400266458190679381065932289474547047239611296890758639275817748557675435453860491670298806508454766274829446366726448077152472339062286365823201945661426385922163807911117219827813408914188389532546330800825721415904217870942171835306383388713640427775216322752972154471184040770811283278960701001791475180442591130329399430634371715601193767521536383501560398182091584465239551939614689441787745750198406822763033650870202481345499852936468738762029152411122307505115624582039617538873141830162803966246917598807631591896731178448805864067097334866658600857688306280931063121391458334398235452793537446428463227430362839863132936921502448949115286611518975052709624544106224148336448636903268759903037750656326833692201738312587657621970535277327475013183960439716393974237568285088108492720793448679772774522996749878009129482422485822888616887190122172186191368158099036777082171152691649292152625622374392007910704178370752912650064850505623879509011753438692645343569560469388896041458038968446386211725401302279957865681982711393100696143559594887479353415888552948115444078568700931705663817580815539558875816130250375434409489763130337541884923594569536130354033732181449519057672620043626415870020860632371305796306439805285868725113534424987515126847415580271458446285914758447897115266172756567767696342570285394946856765852135824238075404102641880313395857432376067435453497964818536591133770964038347745639453523640697733218549977711280618779376702531057231007836080100243403864957449587263558880500267803052021350994518771124587603915026358161376041006944505310006997646135055519551450721556900906076610263823612414551770587833079359114196706174341535731454697767970024020905299893924876558317999299598979250377681194357630894912385240738301144262924072552743523728396638179489784824834579382450858269182796545082035591219215046829719927368408525769436530595755464341998852309351373757633888150352229806034547051834118453854897811253666402043195903516130718857607495330832904310618365968441088670032768724826005871048930312485381739240711317025327012132586626068367182722875081300116329861167537443340142620028377210731611853785093061165825182905667244834759111332016320738966496753244785384503014072980828089449740510352889313747880486190319358211337212731345335317134108786664481036102674705338206818404638278987412104529662523073720641090892457225614675919509099511292812532239346631968274270056589958259426896476447335085858238336192371358728683333534839290312691788317075484167349583325555978194459453241028336627541572616865583070951707134242366443146790519273766934993411785153617786601025815162359774947683445147095827015257000419390205190291356277456499284389265843049001457595411764903035247691658451699505327131945902057453817829839353269521434262752786151317707486506349859095085516091273934128405364339876693728588072997576934257153658691890608471134960808294445569117277319660322815359142007116558077316908861680706298985085554170486096915990059337360100817472522361113073064137225493448989837510218182796516980105008984907541305966473401326970698205262881272008136038740267606491319867590254712218679717071374618057943572524200994306130669460463156525905735677556556357689636801450775079954973543378738475047401520069000873181248845304488387416274669301366065273407738276791310245700450254391795373735438316852983083553227371970561723226901431370017309977623675606449780420948438293191037075741105143878038764942540438596760224553691235601433374316976917067493999750289371176044540734683552781988421114708273388749424018657779200588105003687491896805300005829982365242667081258943364113131999096765645132120599366744314358455008688665644814532534448845364779172598410871410540885419745852059631897598688812232310193639397833309349170188354263625091631987818094584934715739570219641469207154197312485982935036725390287336191895236065835988055744354379712068852617789036005635589624364941072461291889865013699262558960261824277269959124977427841793695478677942195082327461857954199862026801610206469279666932264385346920611220086649797756546714669850520940436115617380254486518347825530413867734523424518164989447006537043835446432571761103677217770153551859956509155813063301747904416440406995441871625850714835068472688101954676392543853447712808263795644226042560590359885505534258641693037092221077494488055008938176891334159184593618395283626617872540464750602813200396935359476286669426578516975264138542715105578153550443948057229598142498347422793946348775370465274158592431065832052691932157910380934195810238360213578016321938726437495236549961051833225026510993089052881976659678012208166278236804466178084423990891481276184764515955207652898647130255940637551764068164221900632914179910858199993927038816288987003096139062682808714156120711174756469159446299416994927871465884875968735080517698785530218350936480241041116090587951122510733326249948415939637101906228418834913992405484032236418408392877744785876652415690239588543843461083561660512671738389187729393478762670820944330308036757267083247782625006386575325688118574939344495174223127687436020940558599992192943902915692761841851457540552479684732640409269508290903849480703757158630076972800968560488924578664144061231273382053062498555754357855170311987119768841239938435650368396768771654615784182830074121703233043929007054614521838741259921360777597776342822937104189312330796752101520176143080742200511127696325567226519166184298069313217219062045232608972981153771338837878049342403987944265757537069191765913686369537904203992564735399777693705538813638587493289879812213506036056212600695849015614474212189662466702828017920979603820460948727127382603691126883455495369747934184135230589738057622791602955004298330776653142620691058121677712325825022053007509949924867555800380090497575307885366986740113343634406434071383981566034415352038957750251078065299219853652441626033636371600674707816230512677351738075342080471294380205746182272176375872532703173906386721838573488378526152830965845357239639750321865750684161585403787917965946074100745868442398274847446152404014157759865608950793675078860455035310096482954021376946264975067025254044691084283832131427814836680469869127168734492866309334080496307465269279211824423421986171800405047759075336589316215340367549351638267292654200946190061811425189955508372351278085684761357684490440287770709936832865605116911320389980502535282260622498619263347213464790430933460465181549167254086277837065202511113663740366857984535474592679341417139431471685736390776063193090802073105138665958564935311559354069664798376087894786299904437777437143392065358220961144478152330008785566555321486260963021892380269173891864296932272713935389917260537182927774007952208206279109233150431543362119257735621217490295792349650276515497736643725169253165401432286574523679850405172617005403909680822072718535600052883461019128016886381997181668925633364252033519902693313537881809581892018729503370522786838897675487659108533153324397456353599556365065855232169983239758653364256585188443317923610308776208736805707406690050323490573734449345027078361118044106161639297129749993915744951410371101810449158036572720136179055071751030022382697810149902915624075709130416984362605125991908033925164682494166662688248252222706627831170680841881708016978604617446515464719365127642976835346131834593615306044047318866628543320569871180849252392646303644892029829091930896591949524452599163346433720544643727125777142518581913451438367971257583419546246667391764194008240994889419556978596749005575888866583074423951803460773391202214560752269931846713484573866038585352713566350738797821204262539662774419552941559629444362353307743489598894248908783187648198379710467090644487361947558495185050114284090980370007606030292707732386336166736667886930751757605837936739841508596821612200483120283684788751935928438620782404557911379247749220809643782081737190646208668542726358063403638241409826573489612376386009338789345509797859448006991420203639665884870401908560677372654207023789643535051321610455502129462637954198832548848550057091635005683758121830822663434466982968568487101507973892689029604206196515882016680587938193957693704724247793392206232486120689081462875354995460978992071273292745281476182532355171201881074205003492602805817886313803982339100314805927008060828555836702547736737013538927385784052601722385623249695093364492682404796622584188250831015839455550709568952306644634101912545543865836325558205548517635377841186393150289774338345896227988453627558839100034059097002071081029108757535808361481937806810832967745055637263418314755370364207233447977086864345821548819918507333161527584307881739060694685308992009865985405879909172498750648416173844178328179357029227904345761311716951346260824732488285880936228170504763418835262587545699055057956034497102044067691823300826039885533964525654627495721397894736130178518240960639580289421969650854664301368152456879553458987520015812597267651451597600922568360120183026901726927641351652257546210790531803667286316590590279387591282305727992189185825013313849788541226594084319948435928403256454737893170801869918429889043496174815761626916782455578144898615003216162978925298450422625088262109327590229592886231551842077671937032060464163048663761960440842446567380549274737457659521424212102974219030199785792102928845769362075839487476242707140106077714535650581592747803446431592331989905382266756860894413449560896374908765130233775322243983531519947993715535632633870477432877387646759070882230048993298264908541912660648381399855597988617360972205152608693998374327021185927442104039796218764406971098077121942151392920803735852426765940520803469630637131719934867397727552992494187489863162700793230785088926263619788780311954225287624254701932024795910382618213966868161880871020793512655406418327118839027865489213005310805757651042605167107897446466234225473453313361982736685460766508032457843896452202978343634580047992327782373727136380665534832612633160035520856007649364098347903533069895109702247964437067963992378893298215393792312620010996945501636012492217084280363065946302413391085172498443514851695876968841536116744541772781650131522052934538570608062302978815321771747834920948206277621300147160801209868352794806884460771764943782006571129031153718281554428263579441526870758571596166276645996836287978938137341483356237459714327061612843483228867444400953324919136700159871822019923253674247313528087997235205569135653312282837550478373721059099250352449645396139546359452729882148311332256482462761461378075218176527274168542181943051826870658040536560390023954002527422063083379623126420781443403614743738024832998120985346045152415993869338222496583634029956298540297089377061345617646689064635793975995796967047238652313523248138518143795775343466251722051451051199171677240205312007688300505703152725342004377787554397378933976632429964220450893899948567152028968613426643281536615119525177501367697223479129310544539153116637544704834379671266385611400269070356210568952066126871533559458047819772627136717093263239130527837040806687316492308574962932379352766104963412255834539093922403790886716598875951800547332876073493371946489256604271393455445855341179911984172927353781817637500066596559145270591317098496347788794177344153368352312744944382188012825953455314011457363887274579710190935174193032864163296704920951906900159584068832938749317796656163829466306060251081117794165572133330491362002191706927524722319082586287869555527090731921424409585963293576894679492385567037535266621563956785890225665840648363492723485562737225202266908858419413647869208306979059782316596407631580457449312671112726445210058094433789171690792813806797591356138153731189470890254629000175335351353371713745029844820122868932291133824969101493432582777625015615094993621189268380496871537339127323487424506260177463308935190971607921590326254008464486600474247249522201016008693810203955474065814470813896952992181744788277067513753937281951014235534404822447808008875469281129406465271068598271916241683405994710533080125486838050207752790906924878473428993446909357688826920158397753276635709223681891139908022928800265867769642401951086569309284817563018175288111947592669023378186966798003364076305373792407473526764915105273715071031641135196181100957100058226713721063808376534138914294788800471908823827769582524967121944025079219934749312952180311829923853136484287425939085800677627110229654636422536008315629927682025885105008793325718819048382156256637039020742498354660543412439053560681492893078433335778633730823159314678341764595756483955818614598992259521087550794974752248401703662271436848150417133537030894183421549143384600190036768245863608772570156827406053581531483421753006363228546876399791680477312612787457835833176646195205985913378613319916920656726902092118939011176116394113166349486853389757434658780965075523185580839179493480755520278686950068230256804382125277616004115828927734546896582052852190095728368529644698324605826758295381567663004709141963916226362411301880494115773152562528759035879667732038255647888135061319979277108394023731584201704614901804467350541678864332842386769656442963106203366522768679470112285922885790153688673038550951238627656364975072312664227015195676948885815600143032003814805005766828680703330868255937649360593704170144776345406949133310870334448671405320878679466828894677733580661719645939773549165605953770680635070009427997937715284950044880677109382118286427718153726979100378550436412693595852566389204589159638544097903031356513956110741142313340432038679632799857835220742090850839720202344343590555419607533249177056601115376345966559662424209164417117852036039106304377833677109672899527045596876323781693453272589208788820944919500837941426310915573706249884170908657611276052190709269491106174901784297363998084710952559166026907777145668498374955288358767361290063194060658609618711430545043643271585220721870787008327942412342692929396130796327913389957847362654770864114169359623070403298626070765131780562213871380617493246495142806011665156221561975785432087896814372429129312488814113330956666448945904255611495808752092392613981540295041296219448309188436431648841101427912950681455566076973867353516669236655000330905480314938659015816412980311975120745045986801231451674623805865852674878542651921955154877203848015004535042730136589027601584930522665386549087553318381419395723006532998885691538725010942254537831885760752659444018314066362119110903020597353218588864404040997231719009402420099858220289109050532238329876395911430600332963582226096537723751311881845153846885885128188475794890292023012727107424474491586534648246751976075585762443091020023632176147158339302372405926738821473361797759906677881501510081480109948133034055450647918671565908490711110388757337931455209509171342972619395350384243061676189134095605476736894329427223372957640157507839771033910126225077556719326079624215116905372490007726404758693162484400408357068826269857112503010798424074444894742350438163184981442873502429123284579437204198146602881919582172675661966607948924148849879554338224712935025106788131454194249185558759243835486285290517704934156441897940034090691437661628522414396125432446200545384128374606615807979185581876965526183402824469967490710732696219793152140485788031461047295941835229266381152512684731118266675986851881818064144604557042680881326900118174849654524904719250241786827869281690067813054264343818914512632563482295119932472770126484987013769979295363716750065728508137300105218734381069865895641983116251666768035801886936930045133806054198957950818848173010938169034705263720646376934820549662945612811516799458975286369922803418620355139004734245374071488221752279038189512752095094663545395222249140675854974092708541062117764239494403587026807876737616878684119118445237678482165612655374111579696197284218003583889330239383639420058263160293162457883227313540916958327356136013290695235723164837185267175483881823538173950429244043318907057591909868448278232555150454498419888811596380874012380784173796947195920971256297763851091265420351585425492131992255233471332658502973214063422581774499143769851654363384253792076109538026740213799347405078096412288522685267212484462741263584393547334363025448230589124533508636497013096796863910937772024654374448842463356620883511416321330462340583040306373010848846690045845700806040623779787080991903201908596026665624162399088722085382747736577237337807171059029337616333850142411847712845673313696905008099502994923640328581182213554859901608557610066833786050321324690742692342337362790828753766900437352581337831155868261822955903972655684318227853265381354832612150131157695188300450640642249419811744231664894065214270187845276382997656557348676827183664676046484939628414425448656656797825959902987023402702147347172176020205065879145625259643970781609480122657374875988211537422030614728509948746479137697001584180586506966930298155471609961831926318458379428881979709594686088578833136356004034860935289481259767605804913934309488559156280543713438305799594320025108493031508808091776857568248787114736637592236009338195926625076923357591537662831320872462427746154049414248573020096956188041035653055870784704896789769465952375569769556176903348092441225275181010695863863266220339108157826388593266094048116232664743933783459305308751647058404194627398477363266829901814467745707762957307033564947946687383480441637219648606782582306934836800700212670339889399273320249797191999793737573583140315465842036329414852477430967809114437854331343857046542009689766700068371938217858900961224838065218729103450124048617219574625575562688574212411232637948137603428163679716240221688223389355540884547046644250357140569993650973809394033712728730355998732933562854079979135478547090399205380535556592961664847331280991097135515895842467156567269268468979701659081611169480837982716903114369926531180626849881723402403443470581820612812275112688217375724070891493155826672161074111381820533002061868071630174005787207330887399393591368000192375609611933671656448011216238487531258752379569837762646122173561378397451375259367820576449938827553902130264720776371697937694303072034492628199418206768448893247074613016470555037224983767986706835946946659612141264834559937213151254492669566258030041793955991307073671278787023776393802210701069044254402365594105017309535631178777470845603598968302256003237089256637141183330545951000262699073794296614189919018154039519058819150474755429473014014528796835253361415711240554783175956290679249382591966493148619464785489457320113813286684302501105518242981315058890499664636495338129739708687735102922281115467730454312260149659689509615355127938076677772280644735872073013887647796329171931777281840634469599513659558278266073709803187294643443224814061513593323106262082878856065024146047079103639843491851932029641252342090859290347174941449424149328531322436577106878231274039596106121838808263383246468664590278143981538906735780942201782577888723937640743501776166403994234074793334768491285473244804391488190012128378127796491825854521847688381819302845385765205604143426273821527193527529341178563678844799813719285426305919986205661023504749574403700001415657272800744727616743840805878863817335977557931383208754263554293731267439107908221085174483741560589283840822619499104497184353209852131939303142449903605618679354746163450368345507463717457389447280352315992149797194040417068210344107294725158100621627599325640368096143517635085811425318437329134152389204184383039416751579661584857335336257738457022754646616538947921458976636221142858905829735053595974795038433641887468595229871689902211773355308440192521058255416874968214646784303282432163457063543204289254244450156880090673090160000978847328825836614562599623941281227534195185949750141331859341256109995224613169620203664207836524020599439097592068160920059585056528545286507806066778895304930426768908765253863223142507380664420404471147845137594547429542230917117418212843269959020028246343911804084182399635206429944455133139902586147984168907491500175926833625093500224541250128953596220710111170747966457908597262870882301104028478585489292566257642049943457542129055555410552090068881944130382512184327078503669243988465590442475538416345250906317211913152213689616273001430698640093532146563205165722112292152965146334779421469468138159485742542705675244845378475661657429377112319334185720223384202547295470482697061418398399607794293908856136403730599684942933833258434037724748700937737794345422259562384700581792810711195003746114686620451877824185120212312957962324328429429953428345245657542282062885981121944357884987864899323974877756857263523142126690419470456507714017725626809902174059876689123956695440278989561921076131116317784161127061201660066243628739155388665782600352298392656665166276716653597608508495706005967432017297787295120145048934094261625868354932077844963454710924278062449498689749230469666467944100043024210919146376056295501738734247985066413630783847303735112343279175464056641544676645974537770152989029937557148719905741017870682702787907180188620374064456762669368111511985464257056637237510996420214382909848435410532839861004435649230131190385058522569120252185479654807028360372728244189890326986703643514836011667788005940794416242744982502350603250999307877438927371154389083811733213301578396331490093597229841684442099349349531841593890978072210134607719219349470214283371142784035173644770205292728623716147257891372520757153305454019280829059085218182590703895195671970766737324938731784883496277798731732139008783876866058760041569166758028588156457153596014663284571670575352304257439949340691778263274802042145254618568075183890402968333923721611785652184524068825426267669181171875749020444854208310741162055982429380765557014837791992053982773188328602483874755597840478376359024174689547668694055596220196426470022291597607443299265040328395512035443010656887350053548676313043574144297206518757440625533014620864071839687814743518946506951926950459935301223698397154574159628076295045652669963408966667569713713997201018761009956963310511428088283910935663738359872473039252043435594904827222943431704756728107782437589378533857357656525519055906553399380621832322526324727659831686553424748934304046973153020786329333653822006000615828866176119985218583118188985730225689047447135852536316809991502469812409211372571871327043760689041563372997426266600726613639675599951885924439228250131203266627086186522340445709799201577422730311468124845900000026827087155984253264650963887491917104293466590050720029447220850039646998360023160768703326972034123649959655080191172720872501695674235440441678988426906904030921418879245291428811758933019347151915918077835722783760168908694888597970085610307476316392172378944084275272964573229218725485657732368749768413959208137825659983158795700997551598417516036089024757758167249287409350510627985661700305756325031075502813442050281005606043288734880364993093932549496960241358645780695042320263272154774623841303497388263461348964379328928375484465696819536881594305660963080716398838508198575412139403799598728283396317276077252959444389084790621205045806318621634636995726607889168387902481258751935690067769314345749035075896108313876513175653351519545049456387261252642109139718496813793970474367359883602556704185406854339216126317242515778684505405025302632125544856833395590722848041742078270708571429461130562030335256703499301921327800811812214679233751532533294011262936788743959644470751223896189516964871866884530683175505814068365896029392624684199941535581761917939512675745833284731476368504515436719813208735519222259314347043941537913656965299523550404835717376964645739261512392130667832368740660422731758246853897590822233672102251061949256656759014792340633720607965726622712926190171774597934161427834324394597514001439009052092200364571565694910643035038495509692033412067868210352032326052877464881145309490005472996054360284636968229055537699209248545888027797700247522770013607772966170225244779138596103994121331670250501853877287949165036476919649969711520822652941342084051308773987481106407004443388140593977341516919435228171380711445837209239807268370563802698162915459383098554598774337958804339313670096239414531978100459143039597399970212402948065987362018702726679964337957968153284967509370939983728972067088418248774321014763879127043860476725011690334522657572689371964462638961098605536930178507574979161305680569025720750642290279331930484660022627320330959186547843737045101366566666425234196195819461930362159555235873256858892229555848315898384429160447072631405185388220054194716074585370385411547965471677956976519242037538139552365526667738860699971094902686575843140515745797978569522406373403590853045380064578893198712355023174108440861668494579316704527254799950350333517183285654208476891412198614583979417379234906271944409600594866509173188444507557220636942238791022946296452879042711751319912590884450660107103358587659060459072013011380098974180593276115859171610520028269629513439790144270192220736343611137071777496912347185017377019602314926448843056826831743068604413923313798090903053375200675960032759355691066758196684887472080266508624569385616256144617163120476442900441043820603505888815372564792725832971667623235059145226700776733037813782490487223865262677217432885463389633262160008388011619358063363809585967526269599704315288245071989406978578913098456944304930707710019856412189585332000204730031100444842766212758944544615000699359314775822118409231891897957881069263118668178808477773617495288144737838181485389457148646430032204224726957180232910157414133243569599359562712861365013398982754650737944392763448873311116306368186219026586450284977400887058334427044093765939098472276681774895822385970554615300183089664597802244680966733250034639954083119560991854248972507016903069190280514416896686291983620601314150314474438425306174755281402857183452366920778311220717620956425645209164602718744520915782910616861525179277319750618468776094780722361787105713135258000798053939036582351024674127604996039420805022750912580453076569999898857331616004206592627441011338947383029805149481685390187528724936168016405131132585157144457272213051943562677962233487489375521436670002002321465299306281444995736997866400256506494733004856272708645000293178615705623103542204077643925891629674757262316915013587954419719837513700844205078096492931134207837174444206584720747462002190296056755810117777914766614745831792123849380152160055574974883173587811763689486762204397368651736980095979150882936808219938524807760476184379255541725889993068394545229746687368822020427478927069908733535151121578108107508053376703735666080217256832465340938581291114199958860089757207796857350497756972212711052008547403432942064801332781788174011406780045218247542156005994153517779819139320172711660121352331498745703611361999261996521792916326741657359915093386081599206206334493789209650639669723716482643974516520988336228820120242932042244952244359222934121137771151336014396738479536802016575987182155168846428649457706017999302016667519616763142843208353466485565875815240971077651227582205377741192267524008653977832850948592326531959700185069411856480536661390367238713791790881037509479013862924923187758017085578441835185734051739194426335607704161086085516977373610349244299947860703936066795346133790394149145582407558946386393619209510913680150149775018457918341614757637260349687950715409972213131806227731250308605147530574088808675112779219727694023613086739036460504062686239882005775928179451299179420299171569101353192982650247885648457577984985760300146839778053473096971909246026601451739124482569665248114086639003170601424516799120766189428655759651385816436096131425078084554659854062026815305911474353209377509145348448037519008663981345053582838759127009279465502112943165564907290852283581421897301140117376034728345954339544709669436237210189499679171211514150694247159368573276642002625548706847004799846839843372163113156586963614104295867660980653007624418637359120459481975840351248973115083823154184779218434674952001108978260496941393182120785464576958553790493927604892025130795655786151644053044613676265569886668804300426275683816647326792425894880920488974610299557658360862806364910446623043397602854174796620620039504477393546538049169138743015155149689702251376730381050791537842325675659053325307968898995633523595616023973276847989288286378644298602082991672644822767312742812274240189128379959454251127797350335661930835909587563315664210623594742616737753746814152042691436515423505342654913689975793579538244342612124865618551761840126219423860743056779209731102213245407055356482474422168099333706103644529040211977147434974020201086459967176883731407734310369072495300215234328990876624206135124443045599830732472771110167314134875618375984688758280803351809848085758565534790988163565963222944383923049042209003888930266342589272285185639254015035062620924780738329380547210792206330421372685015113745146475904218548222229131580617027204145239286380662171477490690664602779520563713841212489338179559398217145478764701505779477107635173658644285116779275211101967020488245799780733454576017110079602244464294207820688673162987312835150090554351196032169542937257153617527915069156481709144296998694916377978982058876385219426401152126541536538088290867343428165829489438469446634199556617440816427247053623418166498057797064100060198634156944933909715363856084301097669925779019814323063812834063103864234083019143475337361226963280983154283834238237485246196721552741115670173735228589451657151489388734042338539188119404622361410196599302175429363728084427430510629140583163887898842537747479340198614898366805377702206080126565247831105674560864797575223009861124756495968997380865132541527686421150229525294056454549948559966686003659792767716455292001096986327758734724451310362113696413115401296233350128609795047719147099833890869121314469837608677396073867493871748626912860948110913396287593778027023499480902862663246518774034659884146041800394847324724325311326761804751839685151108340319481990244173126648373746810759589421948734914041594063503972826488946246758131823073519985355208090834275691954850697100770155898928290586413846749705990465829100512302413149716343746404567607240453736650577855841526397113717998541470299271759201391851560399139105215402858157082833026169905861693207311385811260944776398906353359390958612900559124324815318591499024030656695891790743197245297483783888264331845249222976177372114978869973512360287604894624588211757925858147782669170126526546252145114860200628481207774491535264662017389001732731396606299211172132218099389434965952808346549985378750260327259864566854087217712146234977028156915359784105505292486758634592249518791257802631242663269154313851546749418106412133522043592806883426836853321264170644051548450948667170950392974582652593134562939212400594381629713214678585747574563031145736459799446601294537943574966291378351342098925078360734877238001936210093700083078842245622066891427693522815231452181051695683767352743514694267049403460601790151339100707121782781428766500709076536279909833542974655205572961166281542629026613566506809995587197810483252740670899568470722804474846513301199312701049337151146682806014607902593716759318717095532643579628242512740810911481613642439292665717438319695771957709995158083071632532452632119305145548688035147311110516141633262047997657978935800519783722624220907675232429464932155621522344602173187760220709673290163965361749208770199839151696138360719094986749289918530081035535886609959092388605941681216052130294058883574709058733643867718526653829425876579352147753765063575384195873275948844799271824862155960719778607860194414862804091811728528477594528896672529136035896877432562292686891629066604291513978169279802470017450988267679519062600994524769231333875708554645485069981395616817339396530944157323309619624466137524411850117926989141743623062217098910517914844576955762784504586422779927367194441421450405645247955364290048690580962134742641261374720858394056670773117609761017793165014068659056404537204048310309565734588812386085914128579954224768341738329180946220820592793268379961553241359296936159363596929373535873737262838115948110407235831086882450187566516944117853812988828843664301549987997424866528915101614358338286788894850348259032636680722064734049468488227668699661349577768410312316487514649436742467186642664060936605423234075838838989596140693373231180090262549580835960328827859618125190658939276963022234673159995227792733276706646254324573880529333802634502676558080729223610373949675463659502111647472001434470351648610914129394541206246054458829773356864022039234798224153087730925650609086083732308251995433778217347235593962724176172350385059893344363248099216790415530763277218250066734462207527185636426451460591650616206449371824104509255534896785626418755934027363515046745897415110474667490111207926846865154481957992029461839848965772674846662011276702556600182411100501798203063998952127015875079815001310467809438297914791820065478533783822349588936684817870367288001082595122125470163754763588896811993527613429903186675978530830196539437300763238594463322944925994742125888437224386363004338608726747204907795845101565298408835388090971612478457639406213028076201638088030493551010412591762003173226320591586308444032108331291534532349269350586592909745013398178290798785509235088055528313895166253947779219720028316923989170320261557981575558916045549844682530191767069072789005593425977016359364654411540981303522804199736612860905491291553731246640938954630535541641551931370227209986907116101906184453605346415570140200899893461101325445863106919788198284723429775800625577769141789411223106559062223017951881280918969506589401136948162089867957853485953632545742790109285020761446066870307547708574715760042404375700266215636109380970753116773144652534804938016148850270622247916134594220576968635507678012806260499750359985315685380195389584644005538587000523189501808717357864355309051883500409018791758626004368678489112390393194677612106764001987413454472234611105954195723494989461737116340837448577422076988249623939065147517889950365852777192192263782077479221062052322468284854321562625696056375751977383452596610709227143985499301293380969177608316606571755667655361030833784261130323619522904803795834346457648433614533125061994304959995847097691468638742725099294022201062435839741581618749933818361499292975455476087429737234108754325895328245448765021365315434461673161201707150557847039971693797746717490991229505087650136072218647408277562057824770136768208890453312043023076701041733365486388923972243393691568085767202972151185403845760983054207872087148995132163345819535839522871502325587911749481579030358004816193239598239177009492640907339370422543986354565310109960424277338568715555398115797954691532372055460274081322741284414711082028808237560963263676725405125265217998407976667994229675028211612882279949993672851688886004102037574135046764345050002876716429925619974648422544123740219543445486373922538958808350560046019056921659941945564886572609228512656655856964026470430192847340844755075994901383212336780102219005309492260026739546659728791114649895471591793756412224246578263038676093379875706416546423360405806108147486975442649426274415806622722954146074229440426933354069739431535245301268731457870776979655893979296372665057075066976005794496358848802021939220871652283889009038352579426412687468136910800481212725547198040807876107757534841419487850869135832520565174421645822139800792394782776906885011572338390615917661445093447346240810890510143052630669888513163072662889137907094381712312239327977670463769261251314333218991223645557856847053859751134685131761378920620021062894598707181797560754603120560923037453692723162722877536559098187908005018684039831821298252060726313417536211856963883614248541933493156696843181140263654535287748923773342858929646009458875661885574173640612152508063622089002933437017470249547912188709612302768575064369198423397134501645640221985794107656570231186850138813976803486988376532186174605515520414763975519525854092366599075644760370066366992795319551226177383024513495011426608308504227736036354627954133878437818488408039627277638365983334974791444620983034160031633468181503950752447046783623099854081180751895829089703973392092817691766687749795291295232035058395034914484516734103937884998479119141670830907089934577645219448488705225878752426029867299480236802819995980993344717156450107002422396987544989870433134906819976806510301832798085190710031763860826795947176327812184698121963166608283851484370018538115637690974026665924955692307248955529577598199114057911175097957813714905385646035025752470404254816195850524771550106324176900027662397666440118604985071606367013554976716247173145021612781061631978213052347530100495715026029552301315619316347572194026514618928348880112565241343476954531871103389274629074725359161975269337659353681890677018558393559399279597437659794164576414790405033282486016721250713102524992052126842106295302703933980057194620462418408048903026140782831029426569914052639342393830118256149718010118858023656061850483757837517247367857660526609396909595972929564427167559069367900767757264280898315529118628110214009283017359038662006244686518998249582707702632905461125091923631209145616875102223011288420439370524804827586623052137171327173314178752444427550295657673298471162277058054682576636505625698551512850990909187208445995996905641824589683942380209592405494247676706532101036909649132157425147686474084933877985885776088376606027658288177617243496009665261379793618134319767809942639144401277573878260827341371956839752873703577549709085055992555250214821271216840961968105311706293129170931420765035909225845954684056840328203283850953027416029568218913338746598486582974535482823512907128398728357018835051736798698162540485720572461045954788453297420350241506101852826433947015395262027843951963661498572171115932380810363466213347687068153826565653703288026434302542165150492141107912500442040198824827829958709459743931248058883797173223548277610314066542304181939905997351134492764753976740571847548427208767736751118265549729271651065400333876604172649660159145062846567265013517461628921917301606187277424265373874758938440293030243915185892315235746888247887974275156019729035103374536533006228820472133300974537431212683114969103460500388178696373584000357327058171233508203003472148594162116761660143526156661540780373819361324552350391138489960099163332236217539027210284032150157020964401609315001817854819035439043461115953740539420555818537398674276230014678336172920482881858799799285350475525654329241212851322075593157512121162866183419981371752313020904833531496410332867643877519838195685530790798086954422145888087279187254139019276766293150383456762964230093651045759742314524571049630942084601940138358847754191269521322518070893113631247101618394238958909684376153162700744268245474241635942049649891711077461633136577187220412206366504448489343595189413200263426111993255834910168395403726193273062451149198016285886937768111772415469944574775325304640644220836287506686017276963303367725341066440730451532389479176738461816988451124235173314316255974904836649703713072509817215793554912145675236860716239149565012862018147580666386225665614126225880402486443854050522906862950500492580326333678965451769197967423588882047352983581757122016324923656979548418568651018848002443034537856702409912786186513396251672746304378693980308239679383836944068485348750438759715752088833692978416088999751303808534194413088693791884493277497520622201139665839541153668577898605147671725977486393822638274978717133771805942592462660023727748601691443738938204671483758235264640111817291395303934649566797069570351076901306917630491502901303926104721563598588638671848118156297923321892925480846999786422423993139727740873258317548739312796933826483753688321075036788636524109459812106461396772749664354437553237191541734397353879526386532409359312759045040175759504615406419902180581309529690042166524995730521597031039932040573726429376690848659861958158415375727696700852019247197246829661173252676757428913361355551281878008525021609776479236991773664737201886754050367709934593485444868600372902115831147518061931285495611086540715576577649598559949475840912756393173816313257367288799294698558072309473311544721646598111188258741188992091230775547331570438678794063260480957867842196494742652653227262785116430871729157059747493532268339739838181181688957264003020965106251279487284259442089820666021430785022171969369921767398865353188086271323094012718812208529723017177425526306919799853366682626746600253150099166122918580866839744239879193613728596975886178687554162609516452014924231755360402292779079956365690843779373516965068719509796069103124548789526395473703934472278087169244935468331675061679385337509916615454270883783468247250336961656112479122365952372698903461799888724528586636978671319769698364947908115363868056624209234247213111226410596541014806271264220662665336256919036118335283479780080485486362201247938172036104218298577305867511667907086029743120336718989698275523739934496438957298209643569406100233270926387347483114529780516951354331080786899373323191169847622507417166345680655789432794615342213639510227128903942625761615374803168574550112597756382828095209480062797646143984995727063499925481299538245489669316542961474879921892114930750980101426046687737127497189261617886790098711086488425027392959735428121683191227281666309201928487091487091891693471754035802062333790360626834984385274237751067204546883484398329560468694166430584236222840201370742332318913482777646742111951099372570717671203432562707119687874854613139794338594989126713065779681449564695095964183474363719030563624324748007190135548833454558235006802783511701358881974329714382031054723797327660000155698627765985516069776287614549722406573420393743997050448682981754097897901107134079045185934306326498185405475850000362849919428566373017447335541656662919406069491969801924049027625377882089954120097376149409041928103064652985745954503441913331382804910835200377489045953428189775230354639169996070125383620529984293242793075027402254690600771352621506961940267807570655579010560374237181389608696370217262834876858582715890279068557092227963759705824583335441048584575061218413718677292322698062716650201003424951397160101563312840633746520040080856487664808964783021686235097147744516823373664549357786188225251753792786554767487125448959655717334118319490370934181528808138191720275615098230135953126896147121180667044003562737656668610728091860003943522238925986734814817131254984124396619249436472390287931002513734077553490314430024472091062915617299831805043775116042366868205661909455182376922765989002518688322144779917482357176010842292941684621862896402755246698307002296244259807618336967418381720533971907761163224969781339057613059343135272078916595152840631169069414958631817709783337756655473959269406837745584382339602398956326393449518586431987616195589311442506541068862834868079686628555261289793053857312650643225869583846560394101392219433722776416517542704268502510896609921137302591858373849943152785761719188503881643869292912631311733738758407059067948664155793414643593176354429487025915219736668214531296208139259537852786438472004983663524591526235233304031228605345767155646634767126836268038565857672966139305077293993366888987374090469616097449375822925030288304518581930004664913111028490055524863905009125380871531261198416638877992892299366085634913695145327076581978168795883946401414302073965568851091798658322106745368397315008421327806434278939550773209816646436506653331166647985094721354598237618783496050306217651461601865644986982639769505843079610006496078530969482230898951926116019019238932237460271838361051030622713046873886632091491358645676150775897901511627262261968738029410665542189686143236651776226660552335286731586739120294967837505619496424079280076684541608792580486474473177781492628141030635852285637049484804526297940929119139947243444051723213939267494232298404196546511300180281785742118790121427665036575083855736246922656599687247403914724023558628752010389967475539586797301921115983157986285103272763599354124147095411029810009795371197259252214098411656935986551120164666939256085238819934929232384477780408766268087525879602559511699294388600669078871443738775892730061684185209826597653842076685645696234295422411738022278366897121098022901246069871128382749702489193541049144124375883221633573979184540425957497923638804038944456708521029407900874110886199180918054204116060906806349752448522513762131662998829704062745798822953969851634229409067941527383853551570812016089282937592006912760761156423946206682709729249429599041399058575415504672304515009584114900041920304396989336574868613875719567542835727434864976647915090677097904800800052276437470684339679944590483488507215246474973077024823850098986726997670488459210639622131068861882723262414423388592277212496140485245135452647648923719509694713057777443717868081370704328931921675514029762371509802343185856235600359335122200201134052078072264790580000893577401021258383150188686255304466144328557717516023607522460759901530253884971314855043504463856919690339921070724789404348846759121311458869547494339572255245152111445985713983211847974396627798816262795953252464468724893448927727241736403234772114968579375527037900059268260992706600667203207506136310565753892970959012898136939305755939329773362558104171426210058436578012230551712635152627812232602388239478711804605861968364046323211195405549456369064523278915058361776468394863975350740917140057810207500567944490648704206999815706293798042933524938265186564782966856883773525330935116527513394306367768412392355570874254055821631145649532236195165946885235438345043249349914035155022547222954631940240394340767985748079884495935025034267226164406472875070810042418043873041285464139910279796700018969107094088407913764180823043003583517618883933069180135472866373776068226997204092639865218892599688649291648855392853775424101785830022357198377909015564933213141159090296719547737249097351070660302976192960422239515341784432923319564884198699820371703203929037772676721846248734308085903206647400456283647977862278340585935635511068803924490566295679499052018177443761513931588704161983748337939612149236800814399142607941069185402591661168824350585383995010703155169655126208069183675342618585526448258276776690755213641385098996824162605761773227249743977466910509546847708238378261240527779228538496600141446881741952454329537219009454109634944200198191250843089304881177875023116470045690146887031650557880192369882511562835832200442457619306676392869747554820214235517254125338770494531705618857493990943590115987183586656443164108982742805180875311510547789003640340017929729104889089136860860811487576800806970992455239391809030713290553575233069411047794434304161105699682593511516502761317238916540838964324387545019524365351939019915420006365746322715807420926139630877895607231697011791648196537518704435525634948702288479701738771051559908067918835706010803096386306492092941214348092829152203202095269646701243617758469162367053178587986825784209867135805231937104815508594902423006002480697918982168851991233401212510357767992143289666885152399628409232132939386835705198338805796120620511330600096402428964946715747903185033519944123669653798918363559185822614909426069722589558529912683403398292063325464171636283652484929988828428199665466498944346556492224157002493367464945319742809580058535635222768228432901982529016515649429256232047204607938305580790684753479092690261499856739481847900675774612411645945979761445031025360373763947824936538319315260615343377637158131651589898638769678347000970576403152326139152140244879201627731059078385922414602319807426951069172685613045343484476939440676030422808060759948115935382294880418146891866935680956474299528545072046048545930123872609724811416378617595442173903415562509740347727856564979064807235988700504858503678543802918037337580216312281365089787004575483225484027982479303627724195449832997361680565423343248736888840177144975334065534740082968617609096231808624071226880710313326402634530078241092377137994867522107812342964214734160337877909098615071015534766826419428510887995727696328338834265756713706093955926415643949973845976391720075701917320512782204549880452579746057644440047839012202995265124877459240517773858680170114726808715991508337434038314281324209738268962502169744324992401649337369827659796526773227170726515884047738024979629556341226724630522025152534955747127509873894074501220987507213912559774037317851985577844798198366702995298300100605529240101848965896613922652639080414529724326934750101740908582056555229878917122948909339484711141699682274008999570177918655790020687199956188977649341722107177169523212916286454212645971015932566845018537461433824197819886555551876248209394789690635631532791858448658519391026355641414572404515035749143209024539174386690259658966916301145517723229745420121624712225478480242862471587049186192347597962703791294861760131624992979331071212872752879012456479534573600728947234888075506688537712811778607257802314010967885829244845722211355324333627151317276219651997232168898488295915679345014745517302498721960115007308195411934819445547611397016833648612036784969947627388901535406317665842540761800655439993991491361952451119049658091454239616370817821175176162841176714189595936282351420536799250581429396296193220244715479814501555826576350242452016709970421913151333045642592622115293143917275510278274794686758310611413782824699817131078276367663411631929396905884867803293073765334005375120567641011063579858516233970084427819639316605744321926639102088497009122508171457776897975097965111047678159334371340440326435788253994258328571531985563293836049850925600193527070583488429290550135961332326225434985412129213753684140285171568637629170147071940864454003490144643919417578861479089812401292277424206668004831624183631001411198296179651479561642020312017729767529728232862733934088593988058998065084198079366813638085305835567073071695399256827421803225043794360501856838976647854372541525852956715714206265388371788651952305898768623389360387694200463838096181075611394046478824897386809980448596772270322788707167477631800464001112980561152787896003899506334656584015209504323172895972564886939663318908979629656255612409008749950574098572552823963304845958360374594698584806920094794394643285939735173599566067759064566242051844720287059036455475921129606738762257271288174096374538615031112420492558948110820872331128454375963205787277349833888383075302204431186035763245495498265212778595659684144804234679987396088455119569925412810166024684475426356004483979591368464871694035913196142118264725983298015332710371243946938137264075942147297617711434567140750781098257344553807692154610247114558249135571814203350695711765470356637919133808008670279874477399136571126725275570313440500981562316759620403018752238721503833134496092661203691515331530231644662742700146372554298333841368136695960056080122573500590441797829630708293314554525937048287068999435478505675164250426485735306972707656718628763604233631912497139992537070878401902289275216347457975846870300365457499233139625716668988588358037514366238351082664303615159515296055392406663341675448072193080772610312418811268163959040248683161285539876960369528797864192680917868633510260794196839780580553828300514890273723446034983668542481933086291631805095108645449779394933921361827043947513778570761424416329654867496026053167503992800063670797982234346974346036575471387859001537030600192435426398398161686290721612813325385114278954820271470935683768559922400844623201398778469029988681443404491956108773846258973441466335916630656977575052702494923476497578145107232005746731773325541870326816800606758884859781101777450973893325560212905329623154892462511846693237693606659572057528401838454659846802160872542637917587589100575439544010822397699720486820436088196578104787974424442358456275720640634422723758889783821980623581988206088118448300443488949945419061522320893808389176195369705011613993474152463593575475242914561914928765175037939225220610135780560648909118093140340277425277652810889848721615594513717783935733792157716587753549394280269412274424377185352745914016948464114354875421521040434022791767972946401156586181667355787348011394082001770246208167561659880897603844070742701721047665944827682180252405688110707909674928751475458873448667921949495461119911330391286406862839793058684647832771805655936031307196284422852892345424200312705164506695200141270335123857523628491378884600837342830539691138869135324722815124754361987543486252082746921978762355718008959093694208869660407132504585703647165093862916337528014053588752813431866192903185592608972123133577170371974412102312293433897855305214673156600431768327400338622586885516317262558826960411898957042643461182032301318640936745825675061757982883633772586084657753769592282475909571436717016940516136069609841001311542096461846629514056180061328125912035867231715782123782544491041402880472398007325813754698016816365189348683111912425385808354351174836454571952332654700628568240735681939845763176025524737954905085429504215769960158709774466077638835081152690236981210849436451032830786526068550556633400468287622001991790911187501747948334001385275988288576702863095635351968542778856736221418681210417195112394468738231197860564862620986089407236077073436771243368232491608927159082777379671820397256277113201566277943033231483910393800070851669456276873277291187833262665919380586464992329309851603908344939986458901235679171289169544418115286841826739159130862264532672752581328393425160965954640812965601750810594732917810658630352287826423018382964786744748472699807055207893319265761620115923314151854392009697653742150601620130242488546789227719851232882953395367638902337613444004248202841581170262878713393285653090290862349135722968909858139531854043813150518976542136933573601473471933091578583825307310234965084266288329231956552159281755338379017295493084415580508108378701714891438013241622805433265595155073834575432017978579460077643289168326458096343724327041082916082418498877356020285606737409512570223766616989054111291857361870293792833077903051008329369128442274135061227633672994174744576366852764915005412621251889717701671039686847563224424801053070669737107065241683711912446406763892248746831929477844348273207841910737056285785320156657860451185062221336058159084757683543654934313161349720442153294100092714538064995326448193809020266042561481827879261355716575879758780871536265065567354394749027589639340736102854157261807774130231847865233667164317254384938809823191195943806024189648152026369408296873171860229243645895184669345229798780827039472007143813257462960739805026929022166355751350747620172525788529957088451723824913495573164053950116453106250887229839641955868914298305234245032662536479029617260315626451943853890985919690826908487832777508127510092260379377697722558251873203990662089817144840493490136246608789121138863543056187273918207929017032894609402958071864248988536260998157697888710424593240997955083623468527344757456523778516471996788645410032478919599170826617559661020639803278240026816994526017256971824614307598886447788265791076875920754690413305709583787045992827401166243475312270510635586908728362408695706657355435272334736231200854808300283579558800117664694703007285959260073838901811613292418939336853494547464872702157744911131406032307994999409134334403926306091861560077709693068566403025290578538934772941036125727450100986191840003985471745408962691564883991030812693703146819948644453602052047171970437746303396725114096051927276066971814504136597227501461071082259020237226641781839430831353147399636171612789352464892299400328710424807929595094488139647388339735212429809810427324554706468958524565176113257528221910674986173123284471741724499212743400722548543597636979216500570457289793478034450242900869155121930067999322124430389595584441284795316574515100093863094133980655693745686210232281444691259364370991083235781210619927462332286451615466832490148572283004415934934438727465556936406376803830875959813257134018792830048653213893578096887570523664310432086240075921852447549290887549569860837481391634744789546223915910365817590832549032599471281514440940890750081212788229433424783613994901818929538043608702161594375882287116899273417296691970478739902874797543821128992186207959443177412989945786400824100817802035198664165779539428376469646885471281701846459795274434979524924947966976836203839060016603661954242832212421889622110365572869084849866679449744827225481506375892247091323719395634285549945477022374901487051024427704072473788992848522793865846025268890119121083772472003591211171177072444870733495410644395893135261986228227774866729105515390758416115697807994182229230364441954460631696885929556291103742233547503569214935847261755751929968299093719651008244076526098266607297562539222947319376906481982938677811354494541686319277147292323347720907087326266870564956184840502665503685996370383032649115933335475083544312824595350812698509597069967280212538407118454341567907562951661788236593117613103372853139695093707735213940955685829473269668968021713346251839486120042782301270060162618591320167174560230589165289891818703680916301176996174742802956416170297538899182547361165246828893897454537225723999214458002237915440913558083805471269139536101500445726145521544826964058266883641804633884356790831236977785563199196500699097460598202880579798904842960512646635508510203075470960581994002107565626471443327000927826206421573129251658298356464899054799668154398274995153547064324080914054720888144997124799968117074258520514907114595506172177343679671701003332157813314510651299672492016823913067835094674753799583330853804182383521875974074143824603832682199363961013486201225927795661631254973084172182919705502768144537561426559555303896989158993824526332361648193572848413300334852806643511469473943727371998229741175352015429223499815750783162526193277467821709275655169178043376213595853514016400675578729545667270840075678972190603803616842724492058360173795813037036144574463860471818856794092204938309204548198271332841559574226162091530742283691704993509540879671451983348413896911320382137819035377053646238748470445269275892742890436284052898545747868663542457696735298302086869026962393336321470440737832828511844721767124093761274202643330067210458325321470695365511684581786225750772173498691329671240361201058263805259620511099349784022843696347793594409176389241777496331075772414442686822054664955556333735650830779392004971929135162226717413013965591794471800066470904985584715211006779714897351473054201895508699798690124879297021997331865522529385429574838818093489607931195305533610376635871850968273142159566653242567167364453615245816932681106625692549517516319707656564280950594220700195884533600147066380246783439254716925966106978301046019562487553190035394566766980107720169124939782931300807682778066647095752974837521158853829058399846274826517033743734210938700735280878540274374794178016336925807147900964214230969117298779263906757196485128924744156519769473525677869331723753715733209054559735711091794471742940351473990494125363966368972321737015749829382806926694497406311828976141883680735165066170013626533846694323765707051196329098204847997339115325081507301971071645387631090509944216959307967683148166904941692626485664091685524568910016258687564777945440260758148782116252748766294491163027491967544401346395075514022013988642922038621713303490492426486576319637699231100654936243087719951396702098562789600988003310242348189938850832555802897301831165662234544729782748725663829561725995010692928872873442730072252797001258741434683594265513046204929545032553820237457757582023358978790597363009537424473515893970942811982760932245352836757962720966082091531322687966047619835284541016183961001212729437148370277567091079890835782121114788763623686260522117197522574718109663636198518469989666649462986254205435646274611259431767136094747141902327840552280803538997905433650584831780204807273360673903849340308862002028787879599387339302351288296290438036962558692041429133231523855885504899049104304989221844879645693870780902867607200386235770372086958008086421061781968783456980384278778633114823000530224561649880629342947529245471056303265581397469135466708597870434164340750622436224551999168080957747078538352057557948967863320720951330647121047238671781772294364925688752672414978286744180341447600358374494849362556741261899031658668264251681992113574682585416209610544954615442799978647126924717806609699112646684735329195496879745724225870151018831500810984681212374051408086087578527367599133863984933625099884974782964418902309727130858657703526039614705219521767231272976772164891683155342353363213673928304863192221863578637545335617407772904386784150737464466862334150506349367744527659588179513074274215535228892516631656058558962051698768005412951860398002472441472855571599054617199156807006102889888050946390870732952556867474432316176342742477039221030258437049455024681735357512890422685952237373411734943274607890558302566580227691654089941588615035604833802164446357385987736581954460693357849112684714744744188511678729783443663242699906995017148408463485594233408394811248433429560254504022468252544532531287531787907073939130538410627564154247340651223723963897855976878733419849617341672132649748671080599909026704209500234036956824275409522594916899881389101416846669116659490194205692533024158078978580032935976348183364217200247787473013677902685725813753725041734717867648506910690665120938679534467186703188095504597659900664698351299914131994998617865635148588757651618889164956850924047576117103628397029942225500640986623136563886567905056868327432955738461207863019096461755520902992413025183435548426316040781594213732828217411215506453748619564648001965513227055432271440070393002340605931153322978325934634066621191048680289908768382619795811771844742510347793220127608779539048715629490339305456616705250840154974899778448021645985480038714789003324995676427370401011797990998819959089604742454647795239872191249640235010442995113608073297015895785531616935742796932717780671396707547203526319322172206247725187468434667184762632756527551671857710545563626269681430939655289472013138414147804362992250506597957555779187281897105252194854886453813475569368944383568616734578040422183436241554130818722619665157370223702025213152728605834800976523822030477032713666476926474304037579643002079846704034338100607174612484839826365319496486025346375268881614339360427347102098482612230703101936697395547614428221280502889799226908154913100899078212215717000995417239443055705588108189105741201419705063098130166644733791100683853018990412159286329685900979903550002876373343014158366750826131313437857723990224984519343066443890940957390061352730430573810248645819263064923782113774076300549993779240314525410313138231841972311475478112611734460689662289005931264635172302060837682840916267539268585314472344498537855574902614657805475505993007046816145435673209923659383001020439931291919578746262863883816798621379672888650573392436355809634362219834190138334727832198167772978985084696441978741022968703793486053134494799178436054620256611146036103669022581233418212113020657021840173117589370933777477534460584209352524466412667824587418559602811845589550611002852659957354513197926349094202153691026320167722536131989122218945528986351548538448187661729048767243226509812794545811582920132211578627385917642866435913617202819570298893312965173102364854048648051648584455037683082318455919309354108662003572151645826162752995312711795258048735491972786675868813946294386409165596289014910421561148954649092679075956436622670922635030742277867636852319479826649830437465327597235927665051473214696402002514043027309298397162222383110800261854796632099165405140586986877207410664407590633267613469364345915143810863482442071869568992598687431627778018057356232104118787224819784390853811796550330743563920227894489693008519467695124440877781955497260452298730616774213386816285891741732005168278298572642892797445976462132202344334312090957336868494192635394769298379773358892687455808892091833931036347927882230529509332676228934471786327341227632499673467887489978031095702394799951587653889504022596041065519346199701081183604011331259354741354098608360743395110100967823712532178300294405811962574678268346000287504732646040834074722545086602517321908150988260724302081177979649990152375554990556854422260141909239290849289425987089022242826709467886758111923691846659725864163254131725253382548761749201982553544805327020079221227228001323049749645681766257991164907365542065266092804717914542172697394227966974436525002620315425376158896885310004106843918653476169651488813890130976414789597731143965665957904300785821851602486250793802037101894666420359322965584555648635340441344303983930190540699906736838208540909218393386498344374191341300967839035691919061343381518925586669732391372301551230259113221672684235172366903638361112632669911316573908435522577471048206484501916038535965380072255953109869456500779594742152058118023010613364765101761408782853481218109212580614767596885751915128967924635488704995285433518764626268359529860293293734313638687311562487802517610083466274566609767185185969403910105212915851884904508818612311584969269978720843797237694591598490012074012205894553296865961153077808568463946075586134211835792281601908835551099600116420459489074987193827407083221192669246517370065263100133629404371844386625335895445140627831027306656452337865460212789796517052043507732797203617516984049032961914150913236801727843839081141324672553772973329158761634181760623459337733513535616737531391540964879960450748159581122568207265010225962708981996141136588536937346272272498821270706502555958566638092675530484257535266238039413221439132057426534337206367110359574655036099553398032833550183629824661650455627423595946128467795513060357399238645422197742676065234740119733494978558778474628116086739236716566763585156316653736576626122260561635321549928081443067263300974240273654339406399816560761103636545613827115591389812505032643082318058854422786909507678829028193554019624726502780251137789894327264173184068057493113339057017099895802236084694918816742739899293619075050045823519679885983498640122782122162059678524084894599016247569792569401386119152018669266671777562395566274253523951270641963181384058625539269075151175061697575622584838657569022510760800224563046662922844612361323470854255977187137504149033672600021951345609682419029917554314640300305093709357611232224490056340383344398720144053978084701315379120501852215980692988608314286377895220115073704524052517412728485992121694699333929104273679901810109221499984151638006734403819650311970519304677851669923480786175673662069611433397636525756669758472748533697487327294353590368927489975587250607856658967952733809981792315783594408553686119101021641933592127401347718426264830308058265035641361652325332332886939574597681114012339240592042471198510773442861360792526383265237563987167248784610435477879892146627276493602042351717554891472408257285523649004392221837762673094981849255261471158960805067886178947255421178242828950045294923337590374290658286638954333426732528607272985993182470841279637042722710337994503806801815839668742035892582472183095673986744044721119562914657538944801703775460625409065510186015711476778396369852111493265454322900796157368965809963066987334021064775367508002357609503230513258980208590386048396474828375094491804042398512636342041025386832035620545737618868456500357446213930203815194466848218903400843583116131696723689276524599095045081427834546631170973624138074331716941972597328655613626432908412193999092691049197586062666398061843249410932716263643439615666674206792234939961141276779074252654022244445343966921990907974824281107960376035578255676181366114174556550096676750600448853412047060562578276742492272252946472643930112954905904935293080272411429763879931492155611779145893758941586425984752548758850218134185914364758149158356641147745161521660098446236255835451783729117218348776825148877731442768162369051969121544884263194795173570651290364936379953228836081142596529030694539355172045602464221572966269461732150211258326331826681014192752383898615832648479942173616384096272372868506206246352268646762022664939787188375206098452192501122756016792231783740557995768474985657159520635271191582809947100461120836039778476543685246682603750825847791133782323039543948602323675437077285704655129681014039773861486101937240086133907907290614587625372435037249858085935694986346683249415761257169461024089209163242108936540018225444410486818312634604712301916663651598741899447963791104459650595464596387130214573326022446071821271956832240103360860304369675180475286295818918718382434693766454585972496128885422137411967192789252916786809703920163166742734939277638703954200426950845134447228662816252166241665247176667256035300850632752222778920785012026850480878506006264068722022801241513597114757291745732273869304644778278890739061748483083648114233860939617745233080174563879171122309899765823098942677260968873925046409354997367122227092181313961683315873947875344573176110111214693449778051058461763295725836814538179874528082209931178612880938114145591804089088576680347946324111501007933913794158815249984908211693432797396582108392142728358446282354702010330165563951331748402988234953712234260048967649333314622486962094286746635019580943443824055470344534235658512308618757744500955838501443293501419609520128326040851925888253267851555258467127604246548633714476292689440094593801043399026999969224551346537225894092775837391826244212793607675672749257942132571960621870417757467616142331507937541698014215304418125357771054158780681767061387944542204616983291632480645354790818003630795917370319313214304348521134364252391259367453948424753222928925563280895429537751212609659515955639396497504147814728453435734777125631369484211059047910356892197214980480491616688141726033539249274569884881524659128280203449035503313372137234175538685150309973091825050408858718753914806098019319903502251022826956026726497357740465802876047002597235912363116648815616896602883684359689279299424786219114355604641840092080491533607136516653906516668822112914838071066298063547018495099346210678504130345256543426023171038137985140237206126685375754086385290347470181552101513671838034388835418247392595734238532473581643584274269775152367216523371819002238795498734433409930455676718344849508246056499494477301942243492155612196813831517742682007238418038472568425234690639874506946834928495798708435450467131811715658780650764967129128884217680998075110987570386040687580601349028838493344181379511644885572283329780772358105208464122752352155463426095273384053810520046059304831568802262745017383237993112187903557555260205736165858672231969466126733066603814317397200921964027922546597172603051516488912607847912918047671503281866234046167372108155551816324332782103307372558731299197728096354269709908457935338121474772542005446231122301942405559988870511091238898982895421839769513785188286194220876819065549442198216981069141282844555460376505406752069702555734620445863149921835895615323163537206267611740759042315795981330893009424874497533135748469879741975280681691101314888447066362598077521158244434811686793688415785822362906198909685505653258999513724504353825518638723025784016021528716228804743468529044481375976340062718990411281335817145128780652159906250913429054033917463381909008182111044918348149420977088857845033902163737155568735041657732178222974291307800061550130257011226759544454555872232674549598426898033473110987262634636638259599280999173748797755904390133480934222139749292615944848918309361892781283894530908019605898492072437649504055251601436330045337276474946015870456509751895718808213659650537833678869880642543161443977393483919180454017762398350216214354634445942202051503559693149204917528080176959066684580781511176751822957830213423104856400733505958021068466291665524152136827354611246652703957247803237797663531215136055902894388619626964229511485085664912614745234211476648562274692927919744222829260914856204117872544548650320310241600926608329345937011783809099202427632869220825860735640433224075016840936565530009429656491787387154918539277932883892176263427603871555335219107241045058178640106595219099729340748987311502259494312768655669840271649623617981546393860211346176219831969140836423411528861136195334567057016330576523197482623862473317997409498471401313890607471105251758259082005064447328218896828041486653660184492915534311449095801093766472931879551524178395544759940784251687159956264803085627482511421637206175157588689532409847606904986388383015469344691117995990605998897867676829742997170191575717635135794101151517649204115548425317760649840474783993237745045649733452223192979261394817003911793516968302473277395834744330240265173499567227968731831249282300894330539080047189543604255325476273468818877373169411379329084628070174246691276604598102067578677443343066333729677601621060812515154791207414308754596098098245403083866261976917126647812372275185922530478618706585170199642209684279132569253864256971506814664569468975833745958891207436154026342512687705214086137616273846815577001417529281582475194976321194216385496056014676197815970062896811106260039539079136267767127215785820548038934191709782173758091691053178695460679506683612513655554693931140661915031972467284815365757747808363962562645964577785339129550891563438909664115059745705333336741608240415365691318366018296285460205781950270333523112286221733800751994579367324433519658289400938971801371561709247265258255547014247740374190728433611736375834807432348874426550740945514823769913558710847354313797455480436553230968236380161089485645530498911915730406731192321885118242583017041317613605597401549010451182791551684375544932057776076930090082306659750602693256749551819235943125518227564701133773215684070720451256180046780389193683084666253823826123365929957196685453568773839457937591797802227310003981224291636393609486175992910712638034450093631710157280697838672943658044536299462721250687942523901891818626392782757943133672126438147931484021596181449466975088237271589989087035696152869534079060026390282363287093398153998981227408396748991990792948178328686302184313458797212965971188378975425430842543498028885916239174219693697957672171475026701284091892018876784061050212073476637478814057206008030580786751545769666476688925177638735583099196419389708782219667696959070472310097455898501166252786994599185570002808832545753207424584939553123097113659481561817824149677199372065942224210323070075657748249257805203965926357775241206852952120132896203189131680740154473885633833039807518941908128123141622487542001973966220593875634405073138216530774452388036473311041398043777230178799943637407741657450576339385203905641353276189128032602174845830289764412646998256125294863745270294762889885918463704444964340268781568293223532884870195344738433857123862092695711281077363252248889848108685109060561879754559154065743376905846430068190950605370195054951706686342449159137001353747171336874844459342268644967965939207847228466608921603117671159169207825956551993286013956992873755845081821281724563673170310259585403077742525561946419405892092733778781587433295790187738317414410842879895899237727124142826765940636346242896946207366978607310696084672108554966653614245931877435172693074201429661157964484005932131704705477598687449683225126078660445687527253302136174068787090822097772104124540139714565352597495714410285197803376280659644160097002003232334001422858163357765944484729852182190621297544865157376601640806088242445924808335415182342864810543644222486370963553305043565060872341154669837326867658895763554658429139537398466842588270952595238940363531969456903210421861570271789018316064607276694359572743970820796731260573258529606744982565723151218399047167208068369662701801671286074086619230222798318266493908796659928984243085664222985862196294279402325898225678526482536476556121152570047037313600997653742055026589258208353213530472760174516956581075319448311449625409065584323758267713880361645583289251979782437604465896318319178826355058368555733121857406476407573234725143734434103855197849095247251372199513006541827455166573712497451236466857028621059385586239471866826099110338018112991530252545794274102791363827298723513892123401544288557483561901822072126117280403695700154462992401463178008901760705831995445840158070789753795013768370296935770117706818800405388531218266822618366553476759849590241227751600333089800911891988916822440597452045614443082114798308008297711232785245184931231573978480065859834594987963981589341545341198134014044004348564242913254039000473850720208087582676862314729442609544389825084547749203497811833543685706144021764606984427049537980565368723656921502574438936260552229751043512012154881825864480273024768957227505995348058153345385033495582136442793406110362623242873140772527787197598896753647869777014133253144112066701316415106897340131036797496850059770585474836299826464928929737857107812001662623517787403087408870813713096396861204257946215886766805884305658155997850211720103670865864171164831101872694191960610070044057173253217454219981940515566090451511706043634605412283653742707267827237509864267964200751547820026427654608585933332144038988499537259206061360013380734957867678641215586833620852265744438626115907236000857057837027773086683005409151996608343013283513377467837437099605935061136037481510755755480516551209941628914117016301828637936433426545569731227847651960044062276339855361413236597144720986495300506855255897984788697426083698791066564966676502955289650485766854768568368723098703093202871838038372090955061502231550022225664614856171447481962875912997389836000826978780252157961290062500454335065259062915054659249566885836111842355403009621629448111812911451286871951372522243531106067095185557165374279102476933138760962084924101733689513086939359532045149471318888828575391894569346335708189295440431134293068774266882241948114354171814493506921964326427880582262243199781835110388887133166594776162452842930568311854772369608366967166961118235707639873660839698580179441038445688585271857701947944081267608382117151899392545533235662793865341708521045300727610175888695347190983081497571437381571231856282788664007575560734078752050073623075596285339510426561443838799845658213892024649724799041227653669451276499395062641025578597039558669841362139573064412641690456871686990090600333065033807657345507691479800777094253273257434861683057242970788747675065542387353214932905200029295180226286699737933787189688614732850018367597321131710908373973144995246456973169431390929556843152290559442800633745633088483617558515836459604689084745961637644155902141845268237305704504418902227121205071308409657870662091012048483607938972637142304306307933661346891965935089121867422574326996314804165204391212332046958863636536871590241484699841024928256755738955208586043985960641210376171017740275193504128891089782809339818318001319347949448430972272759217141497778197537485803140225872906844031557281482167072267125981043078159086522596948021832928800992444858062797649743015031522871905183527136110122111226509617223121906270599096610131973414389682374834836111832176320429439671391436516377820409613359638437164256570057271481241408764034972088589967493474724365502034225171941506509165926152482784372136808166908382310276289090229802142990589706912276080571899678232007866559875631287311439298525801296848853547250111270706404118156958358377230333387787802508507259361413087598009477794838212683187341618697051130075881333931124581083283745002287506924026454138046433740745981323921460463122285390075603506652491338025049112783250024403261716171405143528178560598631237983655736567673064144486127668637489207672770725065325799443414974488273923210643439747889437013277263070861288432491657559721778219576084559652327155962788862375854452812682090105156435984651172832890765546567865550482678661972322658711666717705730726496727153857184864559830159307430137907545980890477378106593425784114080752574786241971379585634162237378995766699211540446993857292130322782130122251488615310190085817372106856728099818503566028471279908714068884399363154511249257692510722672237908970580026501707834305219843149655864385505904705180843507563357595207714288093715310442834072981326925122462269482112926839569595462882976741248678065040454358569633827380063451792458334677271472740044883510216076144843545308382772898868034411045638380860849611635349371084234476724599126679385568520482131685949964490052813937961490042578852691891791678985990386112564836039635868213623600627096337301001356682661096266311746257213780156942370233990670469878619161362030643318359249049208448840635434821139385110686212874612850533413446017542007918557990851969043402229613945475785129108041438463991018691598164607825192216584653820364632793139213098053346147124970081778802427887554624539291331181062917683670737204559761988866497541253848040276687890450994582002318268159577845593406565276489313894256683032135141542906520604699248532682264672303746217502544331930350386817449899870117850562383408850648611717275507886269661597398265827287476092248970029962381407853370369903613497639110140782218481080016067451344822422452286735011657403974052040251517732154841149396068693518207015773674096026278190168144127690179208419244860903044124864475554179153993455335551699074911124391334447180939342522231876615898412068394089303508319931434871134925186627469218985143972148379552351973468949185677952471105430328941943500860828658200483927987697969372028791908968549029557004462052714068267990169331671404530264126491714674623143830885101302435659321548769321384536314099503878819495858442981713647234497043067819301272753114317284054336048300660685359481571837439392448094938845751125864379983632142563619705197020372757418247736702991702280635659592676784696473209048185162455751859591240983123019126496231339252951330893250916958624345471605215808437011394565526859761210968905331781179764859579701678676606268954116444357356344388501906412981446538716841912675330090609490816207307473333501865106907000986325639399689892465047048713311696600618529267067874290434537623371947933511331668534751106826307275544171703058328765747719430953820946357485060751339853582169430193693113594121568566620409715577183539570331021533823854187968435197659705889739824633046822219451048037711052308435876788026550817626721556202967722347997666904123727082322460654666778515576258659189390160404088485161017862750640770291625090272885243285544182838177990762314523577351168819918199993668083391083282040049563454339347155159128670664363921857607144419494713699850003680140170472950274679092853180675179338001111986296625900531570587441757017631596074066088212547445797097777961031678746733392595944776295216601399979677381603239707268569335508711978965410068931079097548163077153695877481003206266225899129644575004494733850248789295688752625180075118119938187688469449086361148134916741235694738336536621194607521012138624854053793155223033366139276377089725162717597478155418913052557774569144973079306451101226896331628386591564420600804701368006960491237347596146558645344076565003711111491396169987282050144768696861040520220084627546229729396878496038536085341165499203021560278691417116339446067629465412356445419362569045684061286989736806460221958042011964402479997836603048649766436269335841505931869910595621591867495855080088832968345941710271632588935144658299750613966404314458510650699477640265198657677736482845273539329521015401976651830284587488925503726354457290601260730239373372633639156689061423665069961488931859193592216990592144009000647084451300930976821498882216018893901087684023019191811162482302994535151339243676578278540300809936146449124523075398038840227518879716044042063537169417413419735373097031901304012837668709979137562219509596931545338468983108054502938880859946206418385470901460161510290535867619930802051859819650718504197824482943104883596891716527318017853730712094946885278363233470304940147681426773468922641658155359309396521318767035573579886635157790056637828695778908191815270799719213113796253873345553904456731035752296433249508352847857663932114599231434682502175891111304591329454346041961453553778808866906946044191388931606530965782668032483749113090053784313560959855708464156138066391505527270394952203064973258488226585841857975354177809478562538887159413514933950325473014657816545977463728464443777693013831286817572403953305578448794558922258796860452255281876215879498862287799595190814640475090426028472047201837645952727150118073259087264201897287013264227403510899633502985847647156268557854026607268050891931540934908573272228673111422240739598385389055145609447415462821169553061069352648828698567468769884896626707977987063541964693572237530913637823736411368028870107529812556835629326814240556563489345689867063349548968467420971809142516687807211330181410684646019914839055558730540249393119106287017333469065951830990523015549125568288835746018624376800832715207322204717307467553856434167341104065301736814115081687154536509045380332016053535963272382560176519319636066664087547239259928294386584419518354204156976532799269417823795198064873555569024991033209856454811333181118045240388049101453686105256523778554052461159204184636532444732941507520421986028366217932069731839789285414759268869084487866356187713749618256731303628374019776469658537750370138235496516335681828972049045071269519782144766207106098880744777350652614243030385794418105283322637076963853212294350127473639394943305550210661761019168291725361556629744322761994381452958409573348569821951233185161713431085548302248750025156795677842068252835262353339732905249811228692657531583736119796824676419919419070710095727277495558589759414098938353855501737600498798239263249752101019818507456252187036517153234816832857424210685934921501860733874160966438167908793271515067895302506200895891904099722267593235278582319380793350422927031097008186146639390873303733977590486088756867906823567242488308084591823709134174900524945747749695335224053400254580020983291552968579494805914780662871497439464875657096131585972378367598886121950593783674022805824237061457277849135962666989706161848831734232204747497091289662835274242217837567438147788215087062705241215665500245259722191840977274675092193512939205348714742373496722196685020591583678631685529202080563750566130694533723874905586643379943795826871940213204066535087840677459267456165383841193126013774965846488238252165645473518248977801865162172656073812690011521863485223011696800124396744535752964704253425826859515691986512255308685765150171754873802247920514986012096304065808427029699518591875888819253360515531940813030537142127229036404712321117383828680522861446350362723304850892255368061445087089564953170752869234358438524783402589213480871180611910708749284922479058254192262498057483810342030751028917328846230770180453175141916054814955913235734202829845243759846296120309520851862075867561421387859282446156488123446508134143055683946582095888461359062435390614019787976722242095186487071068713528626802016918558760787374950837476916540714068846379652247496719982551221119308429270871361395563495237211485577042964189240998715984683147382244346667184326497157167887330436419019648803780215903585737287182297640081929937864857694466840377067040429706384808940818060300150064800870017768801788281101607338089397666086019348751323241113603394082257969454992119917315055949246873516872628206027488619689051885204455911589938561086087983453186163496252555412679185089667032114802498306088229610610406584623894352713502575521085857715389114522485831445107560766942643141288440714941198996895683893822454394136843590453602523682161900309008807665267472042410392932779117326973652374232871985277207902083903894348087660842102146057902636673352238220425261095863799353530306648931777803917287792608021906163924109208130992712483692963229332848172155045269909087701178961397020543227696330649907542741392390266356236708424194535485343645369384874123118151139431444826782277004104096492837276765991573247290365802326027344123513665661900928926420089696238852965175440890101682051973649146365667925834460066194493797387398908040528616734530986986911064878687112518230513702500647646439523997024299630612803162508515551259047860287868855088434817744502005170623550530406244812845999153969393632909565915640192525156345213704273272342065134151157629169575286290355507303663356686132290579299126856262214546645304076982369827318201008554631197136718367127252532682585470986564107117857878843667286885074724518210787499203783296836449375599410817129795945985624544180912106507303277447850542465649059297786238098944469299156418823021298934704482856594061968492205618853571737501672585435337324372167955919790605378424764678834026429925276329678302751421472124112944947333127303589464580977328624762909047610112569255315215560615762734906427382252713964302659791586467725762088105780112645797929844487835257677110432324383243372196362667894268050672699062601319471915456290359486815281167663211249057632517161983874043295657117783558681743674696407623135745623798369203283241972877689114585001909736937191731518204219484078926672033742015795022641277691452570465143087910360157948007572749007629570663729944173028190143898355801915939331767292176005909369249394130487588862623964316457576693912879404145209862025475045208737202186435517403415705359189359966167581342889605622267832290076151818798634401934276367607144496982250251713817182693853132645338066826844038283731135827356795459800320369741386462364001590278728605413536573363387074021482449437745552117178863317364026118128117096676592633084290506396665889063433785014210102608386419435806090530456801457920476193981791546690693301084919446183708388280096339012625855126305479428645199147386917975306611321740746797189490766058825871065015954342147690276818651863246357834028953024179584780672769006725650410424011894767081728558487857960988867602081669770264886657482350313155145244049184056126806632526417497046510922615145601092959349687488988312667111524026267551800488282627467293720283231873702051975094066137561617548208848604598809175436683730514807571163974156925264943928598216337018127288446797216196229084956457186742893282931898905947365030091507078465514093734983070880336762691718276571609802930258034678744519986982554295557596232578731376630771869867744779454254788061478088930880285329206155989177274696064738085325867427308941638814334584967560212039599032578608258499583389641766444966489176638693316175934226575410423868086163234626689229272036149701058713305430499080940325588445532938696610553739831282500746982843231014141272953778689822068093921921258839622205262826088210885410577807829921699153737800127078210935649822575101461522180448769072749536822087347296567463491562064528238329895794475351343001904189729693414877827892770949776192340474579089567981491540909454495049514276710425830395171865087913161674098015642367034235556465600318032702125051077739455831452333735174267424609157669803621752339006489588744619981419459062503377988295629451281556542548515577547680862039891871098546286746459731763374458334496550773653896507967626391238928005065620679780602964727388700503443245933946723930887066313642721274251804464942815191931537583467264145950608024787527827645703408633626344252481509370949333169626308387074928521231646764530504329749448008038307200165857093310757673284208602271754808925268265956924799549660835934207508861519639078566385304783651779223468509461582082595800610251560604709015235522637765765264880610698893793458854934544592419227682511046232270464581232844781969525865651235718131723449910457999924325642832030544700237808161638289513884991568398838214115077129450192057349392677431544808655603693310535216337644162419335198663936240655092450219367790218548168945095406790537358004770197729927243389605321604779954949677462206104772881885312127082617746034403905303719763461777134922599723936968372387554170208727209900658628681449633707999166890315796829642865757848254304583228125828062614732215878118700221978990569141655646907486719123248612606267612982374869707551622904721592426499794750023365939147942940823074083277516642278880472193355367356813912063771965500902886654793955079558173267290712343312642186716397258219530485134095093391524963165244849610233327738558291243608918400586878854925571717102813391527265828102215965305137877839215430673816758568845897213365824951366557578272742353137922149912300921061417702484434829515285862441698617546292626483445601816888706665911723250927568493712987022949421761736999187532900641843421835062918734968102394216244367931825582569156278833085882759940752210369781050161167582266836522030993772890933252342714455081655359356628708582651199578530375024502951611870803976239425679648015824022808335125358570980033050613552493954621370723276547568198525402391434748807045765313530154971786868501007333775314626851261718230435158723685331281780049299137988550827426557755041712366967303772056087078624555417729432948377899721266207300111924413914392070679276987788741869298208147571457591075893775826450162074067202556561628648358808971897020709053626486792496528438154715738533833329300529134869477611868111333221600789761048009540170462055295948974931936777833248141574203220857570341079714512393441149239717001263760649346820277932070197349591496298520489757641339237798441064582886679238996960434429696634701308182274353623424505845131097618823535844996480512856732933113729769697562503179621813834524721844824573821226877809543266585149521292756245706959602353678192514739857551057478475244779579604827106830224557111217477492297269419901955658950623052867777823682552054058052838727932096192489948885063356260585642634325965450892211306422374471485316502604733898963440887418906187710303400683757360947946424464200432600723503338271479696107650494773775248242742631880823386626611960185589687948833089617150804822188700653464621721481339929246620046602594402973921762640082405604962437139010623738018754464608932747255384826964283262116702477238867670817370153218616923246145116093901593869497934194948720148495821326506359821404321213837587188301522761870553916658660683011130743533109008870046011085309794287255680171102624928919213645092236733231393737929730846926479221924793730503749842145018929190804316410865518138427132760505551705965495338435049720738564910465202662547279756167641512951980755515231701043060029540025879512352774860500699201167664864479668510347911458707005631583337756514597637603352268938668615701013232810192190970672874409966683805092053119460455291818982829919385524453629786902367541091085142403777646015579963691249756793100306108504598799689096817730126730850341575628068077631521421800059793877636322811547999391377859627236964916675174245612326949741981301759562287222121645893341015374741063733986522242060900482212299435987498361101380114446178200126992249513494647596512973352083306270595793810511928123530641775408339900264634655844316225693405298087406343242275992981402812595575877987243679378955802383311002748730486891514241847221225288418504808062609794835558454976303429888704865352121268342876681584097778825949845593606678841136073376174557357962875067808606546738312749354085695123010696181760596615216281797159989843268122150135696048769988474066334078046626558472891084898335494191772471995092529076785971822189746367124298758876637439915353259523405214618119007872915919218399887743476335438618954033124600246780981372791102133130285993899793792786273674107028865841163330307830710386915567958136898197691491997637003212929902130494992112553867671297868653166581060096720865436044732102576748471391036552904150482079588100277316113769654978530889386575257895465202127722678770156463385648095097856626480460871287474326099339109264195745703666513724226020577380852109765668869990133757450591757911958328839930186344102642565348892793098301056506237494501022890570093363596262053592970139003702757180859930303059694049580382823636141673110992159152714494907049984875769968554972215282141383871262730557072876163583811660405753968949332811926540176125826705752116382975349721052335239363412733854873413495217721568069649648671452893966119000622964908342583563764838643548906685372282172508287196677163880601664024387417685869313827308164232457792584345862240227283074581991849275987979118224260951356832147979680807374565355669832659006788017005432119910442579966026500346311060203912229764174201318151430108070831686914245534795662524803041085893659654251553725933158460491913798711432994361044752430736246629760310766537314942396489036898267496380227631801216008747360582301124392123130095122978647045319468414385090699714823323410338927848753351108586089720708627387891552094978701360779178480803388599944878623627164699436146846742237108197151502037418333863341503240054483013766204955625723286678989085696390855414893798677289979823802006681396577021441815033578837555947933990424619449824382838615389884044240718549279721773618184792259796668320970458177368538569522640317121342524691515205966907392008556995944439645572354895302487096122474867496799595804939691458133575462404912733179072297747094688464728635174152765725035914213665363011813472521285423032251742240801381306982592782056708415431158728172907105194778698429608224942921112520341653860511565264572997827011159606558751334185344839810062837644109917077730465817583307937894527561889680355842855468541565757156385650817237281414895116309530798476729310397636806254657577726016703237318455950044750813114833303027836974231005098475216323311051200902513349231256663088082847088528873913990753720365988486640535938057710545030011967090920540000653484883899231682104001107183666319948914944910634380321770471425184444427099515474051697831052214656771989537246348170216871933321977662994950460117836937468570735525510061085507592617949198650852107798188666858843315472144471063581049103759980226315553656747784430118131121704635313484769291860100718841791735237744706928562816103818576506272675035145488619934017502067869968994146891601974844030407556596486479247830630309903084632143078262389481353396643241830427826084357599952823776150470292445655825308292542914698464480244904723159494135445891052818265718335195712875729106221585429633250009545903416112917105316264931428471276886493327997496571080450971499308231608634551104499516136700268368925022113861616662943363882370385330135098369563856340244186645102792892478566945781504968376457712405985267291908734883682737109712368627658082536943808836355990748147522563777422857626690641838525445568946976911374527968646819535733227247182994025622470801537869965762163256488341820971423906584026227697965825530501949293154364935635090879205089662234914864158095987523170788133314495044887199858921515541385237560042590561955830484872352464265384817929473480378459498379338237230340550385103846789836997805833456371072784823519156689158643959628909216375253055104229431108643381639958987589872259066977236805086278197356648605919312514158844610551656119051681523505811758743578912852253208818497471513190591690899052706408715034830264403743516991307403035581256296018883932829091342015116960005376082122543473597977303964158502097186806262414069526458770230158325577297954475810234938454549503664684202414299959932407382896665425882327569556563490207998692757571933263211601711498359909688960002830461710492064152796123664776553777309305207149789282417513091856482333302394115195577988330875699281029053970333241560417463105695620971862957130316451320823616346339043842759474277003298049564704128734717933018649437823572877269174237368025208849758008973471891855235807058377195573732792519486616851986428066253580426306534840452077472122641562452315910797366366594380446548889922839420352653067014473260341115853635100622741940035565885384993691473559334518385866594235308854113147743114155338126885374186689388393097464945842811923860397665348305439168741992389836688545830404348146725523874742034623379343039090272703705177828599373859407377469314877481554610194908494014569559007311354216210510564308615428314698569231559193215093391069318092509774199668311080404362252512946370823031834368201370000201784908682506865942162806751479486927519115694184766622418675099596502798105800590521898931665358716054585034880802849851791918663111174030271725549178992420435310433432373775817820578003164710918199006190982338525794623211552202451824866510261466251027111238878589142352662570201988546580626667690214070419308286642924321838661923986613032514498673698688030650410878744465230661558301908785323800623249333095790832400044671926772670217823545487404972626696095261494979164994093637536887087018362187354737760893566127747128826339188388008414154325788327574456410524139476984909629067415382469815685535802360551823778227270604511953349748898038020104388071486665408171028407837558061847984940499712249823427277263818723070369679654689098729133666614727945676696676565650891483364671899915736093224177328322720728972867950127642934414776004818365358427752092092038524784103010316559208627885941701409998773272081310448826129982524350658127359492631548381448979104439151869859956801969219334716021292698427922631588758792155660986171118078406473682126393319781106646110929500303349542003883023426728541378704774484461735358424313630376321567242689638571305353060626134051697718210012032012591755980370543161930452906481836241139597399336508494053738206593808644659027586812253019691215086064433351280662269962021784215804924739141173381325021198543836379607127532264675354111753986197817356380243823184678820563230863140023624247096380045877170395337865948903892336487561542702350116007290585961349635875761522143921381648727995864080983023543621317496770419037130000816596788352965700762421546761858686653595978567814037396964337476450433116102089511965127014259105373325858910027520005468408357138414360582909563964619624338418965890850545906982889046201140913066698595592900422116753344885353247537314133990945200368000967018500532968905925986810932691174358411574067577079528642931707364717083600477332363239514224755169455488507807813384154658170452201041335945738472301840652129007344424054772746993392364863082076600492598481004625014742993185299116656208301247800810549095765424877166044079073562769403259685443550465825648813530718835745333646804759190853297596737083958833675474201413932100232865996176053710975780516799287969042339406206367006134686224568422160656896179887693966668844930671920324486235437856916943089700233239053256692777450711174390467522746092913820782425372581603595554280389452714200676741961550076953024553515485149581405020429983013476052859386148295714771991697945047244848558227195549430892417597530628803690450619076835463022356359287473693448314662391621132358152256288011282654068337564221403278311779628557517533378638869533942572084469581633033460377426437051848969704831410832687426216784401589227909551536779789346541709836104263288052452505002265389551164878284125010180693204750756127588059378479177048965592507431530680611712842663651118509846382418404173324793531751450413349855619128095293255590655404021289643513134391631596441763905725337530974209324468882943563154683119071698887100515423304126931097922344867563495142808849351728279468335116907611332325725289939617439757223313941070303912704328271710932612160451045911383712619872100536360585498149437229674569353006615305747959219434876811052925407054544402005585080481593323309510431890818362563314665186835021767104403727168341444831868174379148079330264638885587267625528626685835681083434529944553458369452202749482307860383292626824274545240744655868376255663822421921192592454800227476404896658214734212514336608491838160482092638083129853222029361040059837024308762952099744481762343235523006358240654338357160663589116660723968249885333033610699898929483352520848302926153424315800382240317623494063890795732870482841708889192494244560468684045005342016139599026632304815867956146603718097099392281441986337362114235404375411233131809281738780255540501973116599898615932102547694738885254178661891423656005788144415676775726050313169767938816086714115256624149124633771097215594122207034369443905722752515771074135816436474257289549002199555137415873063322652746193518125201857112813623585611688216509942607288654213403231993269514527138595363667192899150241429122220399858869422832935741424166506273968608837665124930022463335750260183857035398416664761119444358539828048150391818693924467828933717671175918177008074538980310088401334070298111877126779668304479623026537762378248694794547933092422519340322012244489803175741625072737738997540242604454921055835946643295349331916702375195929742731656022979926051582007505157181867136375206771264869079895279112852468252222394191304460119868589396965102464044380017689823137714433660846124037110137483593033782074525116586513102005733787733116937196521435810879755544207318341112021728378250842702521458635361622693335190983877608380090667706963609619296653076918376016200489331046929642021731011046031801635418155463882130113105994694455098508710291801235426525280274697002215410185818837700688410256917110761915339958371345417662849218562649949484869726856573097630383774543926800089961257654166019869190876494577583330799429669771115955804368192731585326141914497873508715019149125459692596591550009486142555868303444407904868587707922600989810400321614447596740763581533382228343302854937961633199865399159183795788379572374514308510556673192613352160123322162266585660152462246579981779695993748807532531142356086444026774811477230371710619316243404073150948660678627378454945885647758295660970817728764068168590133983031309219492600774440101528228028423352879673174923730468427592404054503258977454311582191781654789632059669677578124385812424427286326831356966903702246307190205857395962791347500351923692920664424620793952681566688219385046187070736699386051904408214646094080906716228619817738458322026727018406863593057533813373772667542980460077138013547549763810659147734552998983491317022587299378866647310485537829360618007171270671155851618098943982395805289993555486161605038543916288126062962587799252197419050514656234718059348189932837958497729898175292885024232263020308847139278931364807032013813153307691540458546113001964860293414329372901042412329869636556900600878130789129489897587893214985966117651711139785736897650793459565331152521735592341749941663863131367602604601075146336257044545580922852863297675950911853557372860269013762607981932916164470007281905466890983262513448160451901271726674206849170211102353009127104200807061979795282914880984280136945230222586988635192036844156889238685944630252902855349540430316935287149486870387791260542202692018265213301004874216390910071287265445098524806985759381698114454357617606193333360306681248692675469918434904926544546627488044271180502848882744244808283251129348341116357644816536827286858008152664277026574273262937949196230588933368913022107526405661200736323372592465375079114208280794766687994274362357192173459181803622424755528773086205877330960130859643637990640889277738164186519448323718659656087642561185153844124382752102856294369215665039596108261599765975915134924021441788984194694933261632925752886032752045387197352452318369786757715742616097505670811258953972576805371700511251542043793868435833892805936919028466022743490439167498211178445710287462465640736365998648762718433511576753103571725205177622018698575118043362771215730857644557282324082196785844012263967612428283650344355132947755374733582066680067772674855168662975058307045845819174475209314851744927555175586049808091869561618348305434449968347925613017807515585675383933759199052104577886871714243467770900414246805438186053436868345152791886766280141387718039014289239695019570115915145577023516715645384949283691601987516329796789453599122899240748013834539456964773102528416956052581128377884053482686389256651319289631181161065452645430895818116537622885528765535218523728388746459255638031984341191987036664959137202919999617361814904984119010245888467558744236596268359482911294583640110169143837285325297624313358440478869041465617174235855877733300168526674043805875649559086629203854275127831262766295577209187211631268878863846250467782717211241630349442683352087873816114309848111413560949912694056842292453870306025717556283281454351115292343261658948560868995635043726697198028733514209658915429016305190344453166851876765102040305598300974081316639372792692625093216804395116117910097146024436690650955543975754909107597329641892000930282928306236534229300917683274315028514449589848545177852799869005165953826517117614430486053832616980176367633656971811409245573250672546313744406744797732549067912239979341855016841499407232668157936643254558509742166689286078519519158956058366112862404664991439878349703404318071002441059431746298549072389815806824123890009622885993817979601791044360581551608696698635224938090291131613514415003164048702232758390382880127295608745072839897181858598299372257026546422634012755824161881241166576977583838530868716913252337924385626602943922810592727109945040102537756459099653109216307601583454300880713278161717481118122734775657803724086093675889278849339225526477608927585593288234631616381229455714884979885815375971154220322736845982273768216547568373949100324808732462762428227907074176423641878052461001440620520909322874134549873882106175491339261575674155430889177448909900406235351401054054880151842569664446737536528624809244512606085721724043291112634686244295857207204168373425270851760233064538729452383491914210594380255835968739337120879284128838365013599495624878322887507456978290223144366718974989877701362013846505125113853975568680197776187766638428231073253714382149622315100265362862958808254918530543225200227050523658082517173358828252827326871098324512922818171087791828367584069835526587488550825682036875300600732354662307856374856274605826355069967121211081489545049436458289975723236541964128123286379236120272017222823936641480485296917897058959065672375877680460560047557005731289189072000519533496337389181256581752037566843593113226762331040893754973275646743395188554162369512308368371237013355056838325923431179784221595550414205857198209052024196943004659642820079573294853573627891047824825068687051738583599372039047779939768302231340405003840713276154161260720741001754349892504336007349319621596715249602249350038211104768798739063471512613121918124612830286530351962671685304396785801466322709964566718480757314908724221105824554776653972793499181967773486637609359779782679348327008896234318864784594139704006847094040979805562973535720981498402201678525264544368532721676719812219870187165445151715667651101319618879358640885801572204279900950257322798822266250726977853252820600222960699566455874682675972197404256934308643499159512718083693330991102806340396815211662410002362113809947417682323682532921063982065832620327904192648094634596129155686314801059098623859746407810824551893319111640331097783316938938036061980376480899970042558003273004456162931995116738651950964571762778781310355734633898144239449696301595759203945735181601797156550734039016037984336109001910512891363755347854491165882783210038114891755207673641926606179194010421190445260319935297081554214893519210257441255225390972771224652127839458467907027848678630782413056567631254593337986034999600731718582318146554989353691461395953667331382516941191628561073047510541003601838478258710137544369721590408641457514020256939026169039532708782980208730725245860932159413810442119162021204599650945940442071279374643904550486993547694125338904707443183731935110732996692884142999916999369224350022990181129445504574627188202179890188582779631917881026307419803994829590800403649169851861989607425939439190791138281696698374273986213997722043249032690706092099069758804249340562060230853386739249840387169625116391269909644396322722854656067417951116054496365134689475419695298342869561407981772085217121720045122282239829959204347537670380309679065251446249503899429274075081376358344567866477507278234151272447580447316148302264229257373355514336710388831403404764843139882376976714220534322621754660897804973368115971122572506698174117967446647085222263510885869591123971493456550616164766555159161438605936608214737793922579133325596514292485300632868813885723063510381206966589765729688996595037674650466687088790170693653258406518084038412559322067559644043625310861051012530991455596901925772893293695112608986396249274443468850553639408063977587680104770584321600475633110752844052205028421366203085293624233251409896740496314457457756801817448214693134738891864990473301753014972509103866646632157128192811520575379696741950559495602015611564828492394464882981442634811192625436818361042788396997586217487611925869589046528935511819775950541871484466289994246987617921093987814678775227794680432848655190403489335355561246533668347232269764539346868548051982182566692467205754258062084495976567701419043940127545172947680472372851478614617916536453998736741080433949543038690009657950951834422022170915828346853476048601002170940808287756283911041493554551300365144980644896747826371917740252275815944297587600317296508415754500919661892353139469260706962122620234399237863574356847411885017842838334962825740450183609192590942525727175062571778842725733706533914018882591095921570054686247393596178268540510821870260058140749065863150530866589740828441473962953974958149257547632853747131930381256557619138485181808159312032580946003659835740436949790481865124512984999455730625343843657524879443887726460653610932526794565285689482442259423315161839555487905202877870805026836226938445434406875997119277447598851363459470326676358896035092577166051263477611397813645623581594139669094062594514907135976921314029438813782682727519899855688802052676183559891072016350758398397181319399613038821100146609018155839257974282353730002314220396051229408451010299314636777945353085782842950070076556063749605883409780779901240051702668448183707034053046772295115282446562592409021928618240693405989031712494871517619715538080204785853971053277845613744056211873916078283434595311863806266870171560480302593614859392760766398765743915231528072097854269738186253799884785735390030805360256930124089801639787309067501413463295401741001021556027647827181207866120900279147375319315843792240920503958784445413049544344152544078003300488600303527260043822219379839619019218281741891475520007074980001492786351077199992789285260824754127506865083864951334099613413586172980316149384639130252958214482523432630341169955307167955601953817746309886069767443301283170912382220430920702478818460643522780845775700911543859300305016835779520262657901975326129976674070636894184331606960200325198591112180473072114402572782913754615845573912378785378481849062871761947584779430138696079848805274044422424584813743635107403790049480812331973143801883158894930689853425562145123109275749943679401993752405401028647712858967578685749285330118299900953499782786301897312499265451562137274806764536423863933871501147423441585279874397372494284357771235528857239465916337232643618197813331916817646395209507881605448867648825625301972586180947449431792460937881080282787705410085608625845443521605299802083749376423281504309118309014952028069587165740388472828591718909979559661894601054903067899844934079812740734277214007744300099534929678356860741081256148416647502994337634215133574493276209829403822110116969517173852396382637921240111513768775036395093046899318568706928169101448785085081652871340769580051126273438989398015531419439483605593263613413158961685707223339957616032837029537170053570440177051972630469790085408539912476676266075720967899268137937491758092704921927721302571001664614673061329554961213199234557985700482702391881030497267224659645198999080909261496005684975800325882462691668962449479099126684259026733823235102806381577677624075854660522655745699222849749293428662762831828468584112890649048148579139866107471373022397014150176745659076215483035871318706513460702541733718994546394884024968335992903289333552574691935935051294307091009848869152925887271079133837063684546402849740046161508943546799215809464561983303816457975088606086007160252341871622961153331746367307347171365554084379955367168195797151394310735583878353876217025878267337309491207670322443750591022512198978272310642183148114148590673515641067610051251707398588026619464216981339072199465952341459524011177427502524512727031544122081049610634415711818875996250717579654508911392610031920032031631443381168306656763559780652142004662316065274387421225673970818191472312282767497587587045832585996152147359180486174901879790976996405151395141743818708173525194668848768384656931514622255228813902448384425255799118178971609152587020879008511960563031229237901390989759888469119531219515481541532361315533579103323473485408066565098841763769074735348787185115663383859547717988492963813264176520611239168944593937201738458834059171823195625636068283890894062549114776063857710929060440536967410013139399755056260873153978072238699074544911698665940093795857805673214537580005924008205747476949729747508367989459886474694626137676264266121644280270202820884801053672418314702460132188375319675256243075146998195251675475523677340833164988905433230787646483296689225609271109176998571005581701040099601498576797559122888909127911445878512381068718085892910045211220266392427833961687037534030814328999681793379976924339144327214778375367579457495922591962908995663947381841667897658427481532854057050676654774650175494496547891860600971153932389680068302102282931033549384892605625905099993609306459264670020770759427618312938151966947998761741562717753223429533981801734909350076808813984724674765339857704737455048964228072115796821728894627937115882141752762534643729018719810357126124626779684428463952279571500854790407240112273716329084607050655291522449483685954649587396539820407319549939339216967684400968661478784672785935925047380116035495508950204874335110443743021574842584392572713173191177088481566282453926761077218400178610742034406344909380355232126686690862956699580622272224589938868842158373448643364474803101925741160143571929033629247424687417563970852239938133029206245706875046906624776515326974581165064489310412208227199927141096288852653543101972174026248851880866254839341777560384168747507438604858064585220445834352146501952008053748945224781603160988127970046459328359349185379987930908137270385571552789878080781691266206404932798347037161867334127599229895848657793316516847248668020234035374410042032519477742267355937477395200485348703423677636726961383735293741187117308142916261882638157572714211907095594022581259885779132763995007046646772485761440575566964684195379188966452741919689086179864133875348978703565205789610096206452758461807251802493690967099449937584845835624631691647335246839067412947955905342004772108271501525050043474892990361507409526251790684767678686856268333031614591609971500049841989362114799426199281303590432849523423009295011084591607309202887910319921457285883201662626373996077434264943188814529006172834299271155888768323160968139389904706287855691330537050664570635772676232919768857568564370724318497689337795299588308890480798651445403123428143266120191865889832851371127802140713941985587955828674082950921322978479223294255969066925627080964140410919029456572208984834808265110783516257282416524121408954093547205763714158858313861143128283044728088631828372945019151316195232602318986506678152233544377402951432569826380728038822036084929877129358799750752269788872957559212047207072268074638977634740637396036200076976477888943406219991147299854586913072618498278280282603635618338412911809534829407271585815853677209918047292626262238926212942521790186645706500522620582135518110702624538614339911341202994319092549347246989273751247530858021895410753164392274943618411437951496572385004879264330029294486860813846904000942944823669217382546212430714553432847972149485064236929264912602632345255461866754047661390171467526474182662629302090122493963131001906993762043021930280628841178001574988382930447034874168219265525271277849012054696912439048141573467927548524589038281771624202185116245773861057854955069871804299495294722991078243737229047212758599327025149243331917534512707448033207998345936737064526239835371643145196226842398204838639527413903274242497620311621750536892792721517672818476116407872569033376715781886074766237276377148155253199143206291865821702297590590475214963053623990342152500045830159758581506240065264420601688657734432171927345657506819461682181405938865060596206298457638948260612409893869789153208734326430127343122119128826263060559484218793846157438889120881692974598834683622257308417779611723692937480001333342493739488537847067545755343572169785085008565916367958207299373856604459901217698167999361821559718151486713645813029721087934648640171192931271787350365803559142815834481998189886997070710838893597270057020709114359851264797366223631724672203602532602115076018666116013829656417692679232224528053489523028185157314965592336345403737856470614132153071531381160351971233947780750972194802981553062736349404939627233285110832514090066774643230628968481469081433380304905034225253651372259689300848187998427749964092529127629590705275241248021261689206237616028459454244523050027575859422081736794714573545422900681261816591952327815367810755768031548895579054999807801543503524993643987555259746985398725579952648721118179875723549553494057318292677869024999956965653328942689097192476460510300188573494557800880862647577549833545579320029891076330852978399837237280156571897017248861641928570323367223894987477050666299648256473006096159458176438188280676850902991984948281206378826335695515198914729740881176688268377194331982482767867439362008112515382161347846169486523996631606321587270930212560992101781409341812328764356926103837355951860153739568433454133673855886444236420236204878800102859381392031828812399597669937427827530336451597542450140786879497084182103675757581508652876018102372455763029146490520569330720521152098141025107604736823042204957739421921346146022960600991718050207657355898819237083843007377169397387999626926243280092199253637632145972131602339621846369963449877492554907093907988712830126642214311747528959735563317789475143208002457175612495941625690750804674595600391762244544323265107667143920446393547651703539391621814026404678911402146310508983858067995036668453788321511200268850329991023317664366737270958794527396944012419739248784775372596569714525079575922177380078724445566194848445745652881625251968872988120331881679574775164097227804784177655156243646555819241981004544235058955039940563662670759986859542317749438450470939465644555163721612385047012544993776854027239701083579941720612466244694547509539989388679176670463344404337591489891430703477012568144026260952118315443432208320286096729222659072012234394238643672683680079390423437300462212347311055116495268365168794616798484893787579012859915451733949021525109587133006535308757685160096649423143611298466408715059510699913068475531664337290583565691940014934322352963796722963063128311693136703990504366065310575583182211820783929517413890641515746934090486096549889461224477883029252612539904876438665783074419539908554977474037612266338812276008552829161615230548765514314275547524169554311117574717565925860262435439957655466819104151185651430191842513969236325302240522733283715239682449050137367538779506644997174748643633020303479296990670071097669508655843446192565738266107632374061994140369510651676712931590360561015553845731706225383384816228271416145691924910236082121947799000621881390920192381678144857719677384756374643502691048458934602391967005076023452281526534462211333813426902711287307447772313041364107836594231583130116155171838642230894051020453519779161601567063286469175751686201417081513238113651507745758426689300150381177447660878869830669870210103373302920541017315904381996005642282587589926931366973714246373202766885452734103384166901717406700404337164712776311846558919626566501907590939016835118724204519176874889695663669290245606707268510059713061880485755806547354623830318652751412369811775883317836830321012280306155346514356251805772502211800177956836806133994666165354845158740612624547449212700563071654187340722456299643903506039928294495492005699348329466184339506381065158205045410865266533401933785697883286602157820848664524439292154535975806712698615665648792383384463604053186411308344171441697245489703405018968169298033242954454976657311659767130033516867670478709987997704245448552564115966754067096177762155357777161352443585762850283482381789263110004665279147131166716049244115989342333093824818505051182777455123329009486467877495220150056591973803670118310871336516493134101692972423389243765220716584477919585057983588364423535266955801836244907214267237053854424583055953015191002472875723042445635214783618948448937505039113167867935200958738007801122745261438219825485424551194008735141390345964527881066911941329723263187992171805163027904123171507701674132050885591852544982172144728038914463840329559899058215606401829868545493013480768219173638819969239736386739214931172688681552141198928477440050904804842779871180428341717724154096549738101520605298486462980442267326886330680117845682941254591482545183335638349683994188589743661027396519647922649727103142159781148328405751357394960780063426895866686065951116965821326386140449989359935453617594125233084797729847257470527291296195901589440012544602156423858288792942982657340973276922597256846764415477232576696896859012884632483943180657909000724313494578071504109582023091198754499784950020505376434528341328516600035747460646141564891636172662544737271232216094582509241070258950526698147301389906816156519251997738605156486152284191664473707958642585071856997405487483845632733679372107909841176637406262523035371824359328990941442794426635357105477064340794628141440337666661786669161787133253233521509534364807391368934345903362298333287637756100751177452962852793922536557167025505244426764744024832995156952434542691118464708752369805465682878042263322726408805914316455244596593734978752537856883755791976521291203251320591624957468921413077443283592845633837573309641207982438438286947563125461022586422935939667052862045289199376767713223119391293265918492534743619072455107896052772641091426208782755697197115893526368308421804579330950313237876210990456685455547961655605995899615424378750361781072724072965648244172404883749717655645272860683012894947006756135060453835738596304436989052624484512719923204433628752963087780952284647369521554360892003043990134977142887268615477809193755714184109065461272280020441692508849903540828529567145979540263217315111493424144575363820281887837664384815433328341173158823098163521021229619578866829846742426607530144033798300426036145103093293588404132342994501118859013941315779991677880918482343719973747256307629927845393847669534722486011799079271459091655214217741972859670171428314922233943481072672586040762254842792370051185310375108993292331451111336367419228488260391852308521370821085812055990605355542980247685457204696215594126372831256757282293012342225807597612087927257631644941324802154111081351278948220433372620967190423794384684897463531405603742670968919698784576368224556886983812671633560192556018253372162434225490736169886174752528498769093109741635960158392445772218013092248362186253747901561572933397219436413875048819168630876029199796863855761380241999918859567900567987075475801477521987179280579819325208915259980434005282076203469761319443841999967275939269972213452954834913421769026821682298293166978613994800714660382225375602036691895570638161848798958111665166851402319632067069489137679531295457821159980887611517579155092944566707457140633100282368694786770554220037076170281018370550119936349216939702567054075642808403893635244949746245043773917866382959106024041939585430911968302335621235215306868868608396449072152325318838349045618682917469362137376099962989709251340147015774688972077570703925996870546215687765661607940767730952781969924498464980544485098373329043576696433522463221794373831928005428935196992290118004106176497695386336708028131244132291324524946390002163027875630477765428707467384386688576314148347272055532815465891520856857790390501672102875294831991820858463128621718236898006377498094224560075092068764372429296047564923838089441635191735823328017999488572001612489497982877803674954371664634844102071576163900476054730048053613162421625671547448406759692383813130635212646506533567299000520526838513204328662518456457925514747989225892078764971858590482456773756214637515893425279197766475318560783578871299754094956675356457698002900756210526191237767852100151521603252282702033510493418673652483307487539600395181690721554045921352321420499698695862383904394932104160104955284003589212808819481927985206209137307411589041405633283747791093252664105371282976727622348885897644161975711878229709563027071554413140411904502475314506164793532752470150467136259551324225491219513732885174722027224704631555964028117482516548285516643857006382577262971832554534072364821770211650050468010084892427018944514196373183296309154749911237255391434573944665564280910191843056850259385717177730249724690299843858348070906546440561807834967096721009287198948835042759910635624213973013551103827272690523431559346723948254862081281325773227696943728814457784348715243076434910023585308459585321134500997434685663563432420731823352533348340319817038420167373847999126285082801546202765113422535483572170572590629585381746753327766677030895224897805243222567650099822394573308872476957061497017776942155846432502278693144615076500144453144376219641993821400985999837443098859450410731713312612716114025842095725498706849319485760848808170221813450788462215333371738753130996554623943617824175498755732426980143157360720014074490336450998862230268383244936788004116178245223025149944476869726986660064478123658572964537273336639079861696469738167151623434240577208297206411105416827797484940642480739021802865746194063234542213871097812780859124229959017834608157540340696216078940167192796272410626250707173191494785713361112728259414021079977055700305080418594978824580489067476583337937897291749120678813108106469081602114749369406916731850629548549274394460535435827850712060913616418449524579528286965640094262817651186202712112614425680222803889524725459849832155349702811040262075137799879124674817207455525845112986802865585550236415844083724740655184733730898726427509896659247969529583534535331535318932598799145293162780660330784329752821143309437015249672049924951565490776885255066867170134800050948799531842341256146978726861105102266044850092087814019898312105663923294098433987177673647409570391781538142988127607255152122213164027274128195269500344627954632694487628991018855946712283764487134735103657991189925499063750753963234864440101963146050615059800710022785018541054820653836989463787945222579135097609501617300859492643998916911586109422622360785330342708355641180962169856379698256352090166419662465555260149673928544920873972150483577760245599269545542303254532076123976050985158244664257744504626238487435959642733506908021124017115734894334071028435328941220458002494032620849622342189183556807453070506859493886286182064055266108689126348380972459592473897059475799703409851063882486405250492538790234662350078180560914116770035833182529540416379623624932456704703721808054668913745812464838334045068550713555485480568672647309065561766812236602198395702174189294980388659289993277441328532945770861532071770759180438008963769505739594776363057284840521542061493857362107669331053644849394446619604274946058750343740975705255786544490489235526802771401967050057587211547199923242600616415267588384803728428074572392247180909877170940246054797965729639163504835882379234221242275232660434485046429858716476335714479021569506483423851994388253437527799056166385224386716762489083587398752812360196243705048333802316510939381955157368458900525087007689326416958752605818962143517801859084756780313996187940251275996683064207043862342566723848826126263235446512636277632641691268882178865804586093111929495164154914801533182444890642944732695520909115795051312801617494469694078105403740341123477077973053081128921373314717820229891382778250369512951092079954017177575423212569834467342107325090891661830198510913588813959096359028029414577889809157234848194394222257347694919854461010423768027944262197395880753554484920039532115310171997814946344894019188844347421970691965019583577167165947807246127841397305852546472393003046280369271421500886076503224605366164480605838560058934335054241627779661348076221638752816654556295014334089606936714280178120952461956431719918833346127664997661274955642353762307066726577193056300869961977379058836433134468275859972930991354924770998636191114191407753043661078839073945480259059927710314768614234974850448263573240183987623520614957223843531738163933674276318421445114145900936812188444135821869080155649254502674896271072359638923816582448568930280733232375800253587454569901945925083923065697696459271230087751281583148574127432778725989880886020116521174156994081660017461415921698708545008487562315966150600053113382284329683172511408655519112271917004188377877180142586541149100485560634778672432059998646016630964912757727691818558692686300049087802254622602022497587384658121446506089130645203249659845148817861358014822692533805924456620631207802387563595727287909671341498260224477510711908070848602620689511037531177958689031072327630126127623849008103515227346803293567969027793315132303622546643530596232873349048592746888353078735757945719691712135590924796409625805363896755376571505899655914868177760757312024151607327418002719299863280217791627821677319032167043514655114135459824724889628597784624180854171938146635810703085525006243642515663760789696961742997937037691490252444356629883412118657597793012509308484870394590230892593218307660901511597877122198010868846430921216727138002777408601338188758418005878708815895990359196553084004631545925761853763914877650183716290250177535290379074311216141041975056990650981729610419889983781063848251882703028235966801723344954819789138644903712523494160036126654579210216363421786181546982031287673944066527569880609235013059735200255638962963297031001165982496071489309673260838729079782163025324500673658072480052716627941709531825968187436439358154580729650904438730743743954464845013777040704272873684738828939554166249600875674150110063749479484561112504284903634708273336723244912155097513180146818551353219168393044212217538348162213794740586103891686549804572360312315078350209745537402180096593470636691798302779435790721812739286438747848189644696499747860372963506584375459197500531522644552261339702706511651762775153001945064904352531474309270985711914374175489988613656115245277914357468903902690757329173709693187442841326963649740839835309434999451140046304537852410605091904307343329477276782263707121716258082329785374357225756326030025170220878042637568342265223509517147961029092912643634572821938080533803849768190901814448903340533452201152540222471370065562317957110074429418807018107237925411706804178035852042875000654656363212890918467595890209650476797260541604862553889492953309826670436755400130240734392076027632763795282104360933914209213930061034592847305021822121634707803467061021844962712601744117889095543165418156181655082862332333962544564864512891510106135265045541857400279918022208492432644840901026921352464017776834610223418934077450901515776352920214701402730260212461280848728993662015119363162191498340305207223058065578519739424646399339202352004633108029207733693712994431981739342726124059962695635788400312174616461486262983185850867088375537496910516371381896622175000290860145174151263222934057474963413299265796802557960134272685512169645867314393612054200339471332521364828124516894904392858038293986473938384494059468167215304183694789496130572912393659805431238881886791955300500096225001704694663827357403287814981311628363316981980212041021473654295710010722379716815975304610560048520984750417485363606473217457915769101948219280118310210403286282614764351347126773705036807799437164233622109228086981653193553328600514863475401501581650929468016605613191449694681867540785908465026801856963789149151515433638396269086875103553626011457689322892106089573472066136099206942905797026439862049127512504441457908721510047239259632549151075390645674719140171281149708196433086635273631639366871452644058365542555601104552033000725232943347038936911219739628390505098655038006792505914692607377734995770064166080192496951113476591623756223923861634345355675082982696647117004225721632864372812689684955353838241715856471735721327313561063469375191849682857616345624546808290334263779251292268096408659352015785307305755813123548714267146402462792366215712676556174164225007820033704086253360435250410603992665514804398324947506997973366123979508404928356957895947648738276183320942020414878166377292352326532440537613824898354795889925102790310103304852878116981163103905177450865181360501845892985196655907693649700424000520464788601280158825612446523698249404362055023567233796675833277371906946256993288883033824350842654479536190083453013890928476792386723267874561869721123445921296184194004203765689848432928748878157971816126293789057472504828135162207637500938936240931984652089117295036292778712261043355647130881647830083362023645820021353340836239711827693685568758457797958168919024474682293185965710378584311200710917460694110132968607594683508090796276434382625833683280938024356455535190090101658233155389163127177123482374739416803023016632755945645594511117688061450201238029705108991367553541555426299582121885886063975669258765272384813239100855930900284159468546953646874544937184006035376696390213983026952927753702984487806900749890289809548999658380055439369336422190880266833726112391466450720834470795767059054330741235678308564527127378762761794472493407441966977514538014023144762903273595722105950750243047842080584299148384658208490302527740764168816335040208490979512928890544096343588965926797342644096231916897279979144574818110140019784106859599222089132957759221869588758957692697270868187446212671670753013077973050265695150110821738694361393728232665865772743827393660724701535393085900758873755084044929472902099819402480431829063477862685898645168087019480936124612848147681281029864374149688991775923227566061794679899333371608843822919574886427220539778530763083532487662512140096251248369383928898548907157651145476897036434538319224447411002343087641918184438357086091227918115881200862982060647344867281682545453809439693608556976892558249941782730719305426306309067264330547243138375278237398958765191264998088863077293404867068789217465435726191081475869657342661000420578096135019916206720331043126638873459641959287734054324100310861176125787463636602357236210567692934210754452027152899176565357096274133173024125388331633528011400082648841560079961294622076060474129652199903440504418369800641218785844105601622279563393890054101602983652329822617901378677045644714350968010658363115381484997422158167256620592636391224080128708834768682161649317170457053894699312128353069970130039202478917326506938797100200686424264799809161022336717581868273391385847257848719570266347482835771451085623701726458287257171740147858197946479566420065146364586312094521107233072136560763809383905226648848057086151953239208935418895574278532693782035621724124544917728748361706398736629163178282910434667770066204074340376928397333995353936316197931518592326047191845272364017878855809574426378875997471173099910353872668571594623884794818867395613301029577782349034484500057979342259762806114698392834076024044201741494592838544283266124173387085472740807388101247629419096667376909916122527560444286058165610096340591082129980198599123564205397667473486518363789920993456021508899309080211831371277820125516802294283062993188414081707359388304598446890706383867765530064400883371353842398478332102570110480764873268241359345537950890650934057626303098930880219433523685777724458026871995854854451166918652300541890912778955058020856661262979448478802390330802937085362179526078265261205509726229744413080182912953516416701921382046332661813323886806349402107196763839105966674352136052586749072304896464980291964443335723455163273066052323338248925511046534024392757077466447922565701690381532174873605040317231915772534404472669304745821432501479490893265010928355588103779610037103570795664189503705140676962643005586399548082513477820794392566564053714070011167236949460726831662003181105234782641059708013443412267524233170432165278633327448645256731637499484548122877534732453450101734494756778437597414149151482614227720861713747266330514794628602667176277995506439271141168404091707547820016994323653784371509763496904547491984832975428162357887554850605362423931884834719218172029851181089365462908512429952534791706295814483048940559769122932738190920357209762668590045546155707486561833750905599124439911783398208550691946402504853151968188220509429942368663318260355458396511983427083578127346223232562035516365575451940043061681025418864655966401430441880275345773969735872251310223566491826866306531285063105459955668335972746994077600959326003843735839745362217984449501154919556543711924912636911294046489780649970708903454721866786033950951644325892682921013598239850076696178454729324075962182993296246089868416697968855109793805708676367469498298428027294293285521461385351601817235231815731034087064144775202123311284515017548321525378464874225705170646579585618386886509120446142482333343769032948667749683902589686953590720674722212046989348965947455195349282520554870600258795245372601723166527727380588962031554500932219725448297295678007842845056193074617225715479442180611660835752664446141088070274521315628746802666499595850913829639487571887992272381421265696426587227037560257057164837408622059191707571418177441884754416325824837894324177156066272172913069134290141345191364208437548316807179233901414579896802220537657135684839064754059831780102351808826398862726572670697380742822946500437233337861454654347784455471180428052414539257281958442019805546206229242439098053765030807683611336446302033449798448788496458288820371983115728208634706488466736897186430143643646194355687287197924526616456830906706116014788319045501195689303670214692082538594014897574006559054698662921796947220259292019241155071702178424249989534642307109108150825092409752620260140885645034649932212555872019640324448639555780246555659859336854861590457389211712915018831247201955390863290723377560154200359161170980911752542250488605846953465958010241888630443312986933167560237474734788478119608549910099998796480414396348848330999521189657323195895664370371686445008171381975403597059517242945453969465135130578809028400903069971557238887672730236970967966461714258739138961594127361310602127359295824036534500202812761886379810621276840761556390475523679187214696743385817510536154066891480863875107259718664552361528727874759211635057557358811370244643079191991693053398386961449517815005680761523062861052373119111069806078009641603587456930806572646528282922988855299648597140246319271746873387788123931228680819595268207391247878355100053813234506323738961731815128815388749965232919185367841857463212913713278297757150798289368516001173643474685063822313283699408602282946557399525218756722461876352346990852298678911337769740298424315841446363035288444951954057103122665052353013867891751113903420289604293586913248432045969119534109031028509913539430605663137501099232222648320866741153999701202018870587519373140311653724905506697947733748835389203327283809589557402214462749034943828217386780508586734848515294443591384693717821045737963064494874597326640832272614757515883232129718295674179322317682646455750464658941903705395098465322698915034705464900204956612315580435966698253253430463739690539700823360444002511427674094308161081185474061796468744915832103573869947864175932153853675207857409871207740468615794725799798766223812813542987430161939214686111862344242788281647366523029838455524790082077745550232147588148650219452061006089857764033217274222132886463916577744582654411348419356367432247907613859859013953730967282682089886850048977237039835470850615524663776481773427497972956424436512712845640297778564668888761558137583061970183788188151041214703442219652959579646033740328444140754651906442916090273554839455003108993720112200199660760168864816388289798719944646237879302876215964761424505649109568464416334056810367723219371455065884904485021318554771478787666886982951496668837303239109653606870341061773708178881530863680117610180879272093742127582869720756158401787324280587089714438591254462729372938359515754213526346428809150185393440492562716084434110197713602535648451050697366523073028284680149282952371458346991722488385328533448563055767106409357875509412641494924832357353142096136222526939877193494888258030246201417466342657744987556919459291609071877206753828769738292638295254250668398544387338065374469423181593789319367658003572217926766435395343463413974113760640437339944863690039070056751762467783372659636919940704957418248142134272347514601187153798307652442643556639887727413103262098951986007504039830376916372058258082791574059663197110087576013291362612350402336580119667914370680699507924333038695650422973887223861278510117950572869413965304997410703521575742876600808152455525468806221573470169818983270892544874928601787321776496108849962810211292144144098179379910236094409541831318206723350473912439983719006862358848069978962031259647609844599537793046501898297144304802034634376670630125413866488021848186522978420951582816469810786786040292119381701961839094570056061408707759786001363858698838566941932501340324564704606575146256693810835217973038970043602009799116984086059754563787328456994950889708534548041412736391585302801812412985253234760780833846201610902418449250286777601574810523537289646882742439370141157144313901978481304551965527097906207129604455084803440508676262457104254126028299073727009184320959085241021152572440518893220232555862684237136387837606013308593274655261369386700822897234076904602966531199424976762233460113523230513323787328927429717865029556321844321877202732046983583628091834495615341650622328026568735859447677376746482724074744567645119253994371253827536926326910684764524489400266278918267933300688941917790871118243914480051358514822127470151182481487174347120808842375876721732944552635691960588762080906580618836069456069989553534089786466532131655893372859559488224393617388771709383273089309162299025511846939519650119459269037888367123823612698871516659077118233934089247914945573528222983758352185446546526963851502480809679869882582473960866353524040647458933115300857132205741037459510176779881737518405785536222398497743313403388154824593621341584917366609037156981241632990874692714023851092562571552736053841088712079187892888751249311986336000822585627802090050584036024106765821267424310751334572880295517156414582184160423674409499528142436544051032431319216051448568214535234523867974577795730199307625969454889989398404236276012853927118754530765472575124818534075980530925440046874141439266665308410616184546665576947750197498645623933370323305865182543492389887934151769010301843502116501883326151149849597845602303404891905346417111195309956714953776170359064034160333848834950815406218793814944624360504943251124465272948087923415154241652652830979160139986821787207929176355545880405861365022767334117176778077719962985406580783638004504851528089174941535376473769713909857024670805591499939983415022411339408153519709296967950418392769637764619840007213078020427720283716807780284550464486616027959156651032894122120555819448984938036262300040340622191343705412242376137695082851809419780569230113157835951557967163449136380898369492389077258550336263156987274099043390987400213429622659040696710708922306655114860136815850038524753108444149336627090518648188770325586936998259159893567823909487416733067057303456114782563705668397410066565071182742386367216319770350532506024901579093898517972064468938373757395748849363770622576092243056160661188851322989485448359943959155446780685027797507278291063599234434151336098296783641418116210493413807501448349489759063727885328602602143767376713796685283373098804032808025851247079964910079798461024164768597924558630973129554500521535206756682916864547887761602388388630086881981309887743864501959660428952689264470470713386431150763632677670862710573245827526658030214636119285375361196762901860788859139532486433513022470424847485405261766176687291666949704572843669146153933415955660668109596061453739919246674677643103912247043835216183591428831069510770156638355018990300247205086184426694706189387458662037757368570151865810704260396614443919848734146774142309619455826080318546754879154586047158672647987230427324670184838857040721151392034898314536650800380578157709931804315544531007142207254193817852385460250732107290125981281796785194081634093985016680159725967485858387948226073755555592829704655740806656910155285124360264159291546387414603694335638580352474361970741152372694533665088826756421734733211614343694830318156226115514431550568716151093410876011625629901897482985815938638209338047885529545973819590998435025786098061510127518290071463291184831251356669528968727159741032051771601058655422163981943935644239312814806774203742153050056995462115158191220733034598286314848057701297107631078468221364337397806153046553764335587670738575625192746224435042392696281876936466279135727969960153897240189501083630226384912630666348597474566120392624458441182291904499679730917610824542150800860361449191543481283819586348785386245664581715784025967041355360565336440073871535888178765985997208812300329076047401326393411220785459485749184605261213857032504118453609281484097351699905261454446418693753658776382870614465314409042690752402183932836866445838161939086357555132553489007788192694876742028253266311036920633367660749878216521380679464581190061525544108662248310091974548953481976534041538474529230074000740522680324240091302700995765353992352728889059807937727314822634261723002226157663512685342014316974756652755189858475812621429921529013365291539899304920223086221999724325392458595719831039080223098596287585938991098800774293393768603124802363171569696347601921468660012361766867055533462932698442788113978918213405294116262130080400983071351657071737398655802486082091503220143725022797356774914379352406187382053082321227503081060917312120637150568880681559435111910456254390567346177803300503596185404177581033190007337560238034358373142580441509980046904015565661192832826736615395656670024959512738006576264502404283640200564669218404361420352760973446773080163996214092654032107413361407757753003498250649696913020390137644491388919647227527761810746824124330741729755720280965169752579489072501576952353502721963678212909081208699708590320715277626147718168724182477599427983821961435152406404002654122378307165172524974691745860612571106192986126486045932899731012366349002155190407457128606705670646185248163898508116284375200720982616720631585836881298829582325726596843402177080912626279262223396296306260484110431487727021196247662073782669963685091263659167631875363391575889789344981270834761599846693952897043926544963665056601949697672215507116430752605300267197618388261637141213814090136928410427470944009553699811284116301067060256337748944202390754799966674200343667894798654331643528158862302417644251813047303010593710185060697615647778827939649295931926390940459571012025102264816887574813016308720879219145037630183992267253660131326896777272784660262578217198343826224353770538468611079681871820745153415050915226948453327379970569763956884237570301257769827889234839596792016171779848164207055984082040339789508938383782959711066783544870491295053282396431587398963775271227278132246258909360728553302986041705395053821745980444135225396590076919737422276161166996025817630910692713502986811638805695240305896612392933285440024440215320017162992199989552943410015911655508284820525540639806110502147528094162146498787262252440453928935269146714989015470664492420444249170751497734716363956710800180408841870854884152003442935986661413076544751526055120362517161796519492884704687083192891015671739559546004742273618720307160188674961238479399546951001499235530097288676132844276015317395447058557503457821608715252802530549722343683090305274463284664607692511310568011212835713102564588067990993018002005693925641274598513162375516510663806877910374470984208148515094640128209594580170897516948145754869479662096959035252140128237411269219397452897160956229335864276577671067990191744344381234823065690599719440569824418854483463236323722546039535628183944358855280621419657904448979684300371417238836039609294772164781491696710467994740715201936080317700774985468737328912802057893441983639387478722522576546127141654858298398237979597512093141081174792365268881220489985180619630231093381609574341678180703149131305987880619993392714367672945618251821506891299651440292262913338329400122568639485461277928753503922177508242365159265894862059122452940802250591092782196506500592978955687200037073876107140553542106660389003713733813506547334500284755269302144925185128809342522796669784832593301110958064877038074062704199649530309667439740542299228060620246973069324838177642325601441580595057484319525342969095855325124971976701848495365417572719341654576916056155298455950627124288859866767026738437894075002966929594302651162950696093768931462502873285010339513252575421638364035250058076545067513513858537510678810070974678103097650117526767341157817571326470005441419428209110693810992305758366133492254235840143896239430129379964648606881168902173364358243480688428421199282367374680915741814078453166829038180040411221823267203094376979865238210885938675106635739961727723519605261545752224248928515253779777501442536251430821228688509035877953340939379498861919546993087921795980474809998066674117051638734581499469078709477436774090439075110618623952236021095671204111647652811621877783176945507334222306943974674964186709020531562822776411001860368252394583274873040342471205349508130507079424420061950326398224464443850732668599985883882431386500396195614066411092597008796699722877896336072364959403718806394040131950860974521700343348680530008996536658441148454970469306855483728426237207101608924333158640451851750710704798174787147999781658298810478296824789311639259975186000774089775907056089873052739507533075533032713249568468238666990800027824297763782583832811517709262983793439100604918735249386298352012391862330946520758158931386388700502024314335891131612731094005438123029954417318639336727141409496487664037816596703535637860588433952807927706860440521265154510032409523365794942218400669849263690992328698113726064420358472204674189816334860783435062062335579413722104927895707679887558169603459176678971462235028388037445405887446889805487386481109401403614591516066200738670095718159743356690074602620809942520480879530028321143603351134312183468418505231949472168183765075238197238646284579231058643762322244731254203085881950901886062353943364509643972909648172806746850046079571657323838627561823405594517839915545066563398879742479637767228631387447365495453773944958261582523695176684115110545799334826342823112731529698135250739727820287546994975576882159196357663414237112559861259800878477521503565911544342239088663792321277357342963926479647991929343167675767477272858775968010823269727150506793413936103102943787820523802357448002738638728723255503959488252242540187424547013123594758682837092497332925692041624806840887020807366141511217027789182680821231153220935010275269381850873412552979676651126938317374630427565473639676304329724050063001124195680274295094087378781805270635972586385438635644276649104296827218008591738111683625123424823445574834060292558309225475710772077840571120127562139128420920401809921361410276726780200188385071141176430065620109643903241700492972798329827759409798276971073534450100864192130868182741515296377528198519557939604471394492806192464394871462168513199459493898414564378550128391663149759236571515813270000151233961935427118477992945621749840325568797910537905816206642530034136946009986542979009651803218810266582788973338713501526394167784435911386254272824156194854478256917233926980224356341206147142600522668047659823478739616737334702275272702296403949157347841660458043504920077405455225021925159358208055477645027077076641112150611674256094245874189877431368942838074403156511394020178494653565194435134171076635384021799349796234044631735428169884752563883228630660092395414985603466717616108342000940360449602422503499883640447299451025842398448812446376149081406482852685346601235708477637034768356532446173865162626162615445485299133867697520361334995873139803603808635283198118174608089370646357208072115770464484360291448454505390425290791382229313518035751182340362635912696968658424500598400634120962157997788428472904788906796514264867495202984236332978186824320266093008733048476327299294113703297100345053568238399248432204864655485524322021874112132500347862705642585565530041287517647856748994344310514828762611981411105763349884185857938346959746362846394097949380980033202789606906900047960080565908268676855808560813389315084082337670463978427385732811968206995680596019186767273116205657205280766690083150080241483058214857112688490016746225829498424158600046769747256002427154527316033257579224491180164528404829465144302627396334551190774192239037694455148072509933704986106284477398608730498996243895423089358755484086501799811483635503259714406245625535622656061819002493106543576153638125398614523530623093405330314997903976391734711211917789888652930656660728763559464567637930668120375624869626420261909249826668047658444006298713941134432959319537650938235623248760601088129403588252374911914891316756125814875809329498713544397397469880734318514360213701150118537874882017422417444893197623511252730502584961852492843665158561191873502626363359110268935926145013063986864859255329075311033658825949814673786942409303594678586904449854740613986057139551599939592889062696833736601172199008570695321129760639371299853248417612917229224468727490936363039973882903951028690286559183210721475456863516950671656166631537966447504586212588729333337474217660900950402441848861306565897249226088207495768703179207200032268528445415389227746824679890867849671381503562383475421352324860220983578243534702286176573264524008441642239066820746400327201934417619720858596114661237819591747913393944206718540647829727731642987394240703531447520472971111661581440440648419212440895790425510471149278571917158108114519164827504585529878809957365248766301019225526136964553870626493697749256384433224318413439866918719839524223386574044584648418162194029778901645034915360412434396358381901401457074779960751177723681801884540967853479865877548339967822823165883721230552988781152426928414568690719889733535411334463608874506137966144425703535570537151979711440270177087975788213778350664007006897290021430415058510337181736060929684859135825908638069032259040985449492492126535665088594831244293402152113849111436158505360084069168503435896763007206092525404079869832851325163197616707493654525386456647812866152515873921829813039468747386750895437315914173852169531165856393384112671822752310141222173023638275086617056849109181553486226750151473510817938316599670761144143000730243255959015616825955800447235635725253089533486960880123541571288490242129855057208106070022705777542476923989981250092428899043463960508762922923772139526337399876644591609314263058312504962340031658153205965114482909521000688776670908458035735323825107253170129483607406592897635339731813867356707752867207318321126883178430529227589825384940050896392119412527750982077383507990706000593950125002534670355150222136170527434118359497080485048501163173339161370407359187570506649055944458466355125114029192531817501540198833820789377881579402573332095420274424534937486419094515312778973947831129037907564509209748832595196068015903427055159784903916416074582365097790568473092135514068771245014851491944176895887316619075530305978953456577815453011908908753926482997004581721270718633148384282808676441449023585878911713495322949838068037108118560790007333912222098370758648924822007356882240064608292535373170271136105588964074136543345702423365312595579572467969198692877507377445213966685073774731207213038543213200540099209733145639699246071033297994382561495422367891637886177680040616632559829891139780793144609362296944032996399023146860020604034455824786291500657003608459964361825440139680598589296974317210811332524930581977766047428193554384579700453360694584864103804955672823598568737459108081294351844475870409196515084728288033961768695050094787440623704989391478798546900068090012944161398307719548582913317333539645293591221056364949842374161225986362233345534596148847417440012554091500485103798035952151518404482692724104326222315930796448336918909987195677786029197727627418787153815609993017167072630139915675534477241092305940329406606557146296918774610466484759590833985259258067454634917906929464921668871964771780421545266413339712975272739585653460966523994679734505787988126849558224368046431945303224650401851510372519257994369239684319589788513860975243613366954102173166746968803581904181461252748474722219043868063702306524235140553596364760723091584945813510717720220691198459057266656416681718893519182603599973648815662514879391048462326302862780449233862469431861295347638878296224381340206139145728359621280147041525423613753902273136326096681200952164929074191434748228524381109027530968829173490874408142271703458521829798915166687192496689505612867868051779496954227229642115886034319751294616173852256635023310997986545139299234238866105701372184348195025151577636077481361196171474731443272325626154176741218190057549437642128607755050179138755705796940170255470062003444867605721434810995194482640773245039641476581607540075131223438919470863335148721598412160907110978813192664580726590873377193214432314972730987951629911856674776737532571242729619155200789390275695877112162020836503676532472931695511526961405534802437262611089166348334002303111007014477081501556105207727437002925338271486969930308158933782001392839609395578300708511712516870109305978771709170728281818923295088560900586040350677172311730644645320218470316968705415644815428048187432048468928784829978589514417440191640820157215991843100571089389050064269015085418457555633943027497169340674568595162101472424184623769061210148288405388295836833467487005671429292357928472716027391264259343558761503676071066667373110164315957242538703342107857522767195092998449689248500818481569414680282393971916725588491553081659926854700472081588683108343983464243473846721503398062660554178823367201876277982334217237372928483527984791626642616088374538255661124055808006368883224250907956774512703260308242743427130871248916940457484230875383389581561964951164881862636983612354112373821433282820973711783234369216971169307355970892439945800088187808889454790467431421820491595357603975256171074927675458976866531595054302567360385784624663598374024020002415529397791583184819563511527519679980688818140342758142857757288766285077161332095090510609604309676246552881999804367935693257146476199957135812797695806896081545381568708104707129978935491632141853783249943251552599211984799311053535376134121861152409429982892540180693553468101118768167690807867364070677567438609290978898258554777577107989570531833913811335138293065282454134888894817638578799274034644437250713369281266760472417907625265204404979198658925145428468443460199286559233457152163221829682075216043628924425750687841971270474028131489704671038945256018867744318401415851899636086683853938945952079177414836404121334784670888498479466626383362398540037434481019750970879518030273136280158713940140352808542858347475468440616869971715606602985944599195717083489444607531829036566691644939235993589540644388869817628635117355204003194934085019604712877167636024519540800051473745094532855630527109543508094552622230418456008063324720154824421036216239432982379580353685668675868446943461553963720273724797970593662314347215078882395711576257302352885324157817939831857375400590205988168353782381566273668243708178145217133018596937324517252959585088829613159144080078354596329523561319258538416586976951496903193274980597981730014185021196102708852456631309911312785172180792705481100203809357379046360774699646085668462645696401527734883470948849149704182951693571938110290213294997750898103014949779557423766270868638083048865080359139832512286399055248894583300004144110151204479508079686373401096519295056389073059109247521166985404932863827489650346036336462092318762829973442052217284951243737484269039056075450756985813386516636233066253013434566535735652943486572534940944995070335768793661975002011319231662714644223685006517277510655055993003113446380427834780748899266755983937053405465255212771595825926039385642271739073483486551551795715626701027621248565548962163386477939782868635872255635641446517420011191266759095266613553855067071426896741204778424395494159130804977263817248540237060079797608326329564093006532327044854160375487940876548171066174320839222419891246427534275258953437376459319758323510680824105831581176176890049921457436988971218619016645238266454721190957232432249394783601889777329987742226330095581234533945421820380925505429784099353364872126304470833680501898521021975727101659619353567550612863862251244318596906675672374109817828031082212592128801663499013333966845556468584434722778161545616869163575843198335630186526987131172915535076867314302215986421974327785599327619312623010622122005956813670872756980869783328632278242290352037132024173538725330529152332885913298868380904989868648114494139904858025473850441345364160964803109440446421068034676122813707314132971582557120346398573031200003938042668676389238161513273982450138326288817142960148652485115185806380986160824666832060571247364330136803931117223211583434540079055586235847572935106029435588837930209386824590655285267868449188664596774987193881365860729658364257714358325287530080360625918864075520203056298406675727680614886116265041494274740220772716709493324184716551113013100498643642765992350726269757620527885246067326332960943952939283143856383578271603009460159196242935689048660828147200299647429654588861340228002343887653425444168831803003216971343425959659368048747216435074113602129219363900850920711823468736350371038795268538987848715338437215483642647564381345705591737322345636291034589452199399043221707325102177040768220437065126069234222952534032889312814071439083031986529720308497850075490965094218265504982024640041188534209471225131093930684920214444496251505735875146766204259115135967561266126660367050496317489293958399196929875077999552383195109198256572618547042783506624530142194585456321977670550906294591229411850327755852689064625611639468900515535747518494084007983583080205992801267986817242490565240120607551310984415442307419703938170902478496683140761325657573126757337445032617797187980974762860199581286451785986910647227730276532275979476594311542813137945046910587339447980523345467534555425229943254016993049260598762404910743822905720849723432890123664570949556549936039938771325737954825474544098512770064721723892905554055440561558428810331694729762249048898032165054703244156590825104682691120063637013533204850422958510620299682544423951151797479962154239552652706620283533748893980726147576960587963952886047043610984486685494336287439624352406621492895620931854726878797478184662582012634639106361052088889711314112155548497529540521790570689148593954642195962609698505354991149574510119841797922098615320955830956234829570581824457732043181926635481321570235447216566065437423125384218853264665566697464849171877253810266649501557907442017159308380044832719216803952232468406659259960997464875467609598299081136569053933226248181455491658673512541034757145011823934461262458529079147308058113474627010184145310284049520141857912316260321180997461745637615822003900564905748897525795265901010686151866644363515778214941158471573233577583685510076593973760999572154369618148859293402012168740814104160404192575660643130256707124144014404691338132919772669355911231651373641874036898207369667201583920559815816809534381874935957121496712429292672827903648835682252086067929645325360975312590943598231060753269399337028025770171871205519858626495729288231666796547319759772226371861384927800386205711299345312051519794130797267640786853409851223053627743940654000944826594458716867184985375744534843178120414543471069940076669467321724475398509095659879925154966745274200997975363209777032230193156558260867430273888087610079448402540064574977345988090965554320541687108590160715311704929912834688376760253914708571430510868328814547076724299606398568864944802341455553219189725842105820449548614582311510971873881729013369115019460713724835796141259397281589834636392112392698373946272651786899597797284693419285221041815171353481293027563236856979339735813415153246525573045036296590269211994231461498341677294113093251063634531793487431863833015919238311317798318743053683634522424292240409132472246750705259491229005318885220819789532188132243153173726857649928705580782898797503769668569644687043510452911654952864762328864002383670867794397567259171186578810331815583061578653200726711120679373085657352570640552207330288029923907492689615245408547651305879460527114574741190578072769465840858809842009461935055369218070374745372917298712465363240716381357897223762398609934923766834853988030006253566342308546310845548407773577574146404168948980671304295153517146080921416355147643407504426716514715741699658842870157713308095176531640420011056737507958977208335715111905615679963457610366522944235839833045974432412998684422531533995013164129947301738813401568773439905998538854552323151670869611610092164241887725261843092776891450408986399654582379699477421422044177789538638495408114144357051032493459588287850368420308252436857851468400000008980213607471933888467945131945852842119863178124345898488419005540787960193697055150200345132531298929315463876466329220398774413212769779631964110282319160192891572063604986691314399401412550631785438481316653928457419781303282203678373439189839447721589955689850950478568840940497745512966527533909604923336122938793394354961143365863789647730019436283801536419360243114943560857989565985797004423296142744615199476644166866590537981204021432203823125295162559763366553080588152595209674580721658205745072049744512273489129157550381185799080703864964537750347811985661500156807093673185087592714872405657204593098854446686367134150481972134586101222328495304241885214370992174546560748150102794814397315605504023023366757704372754617831077855304860519096681705250014334046428203570258757663731575007085974163746795329948489487604004195758830073943044287453207964351320388418789093367025999439654871500127943271683640961997324267679163334805684845228106295123144829565324720409861610514901952808400683996372240577022479628641992525058844245212894408159001006876733093562167470797176235964936060406062123314249417072424058972865636446122959328112793790187466419899376228558630613765353194970086473474995044103562494023669638519125086406858715835129195418430244489607385301364735906625145190739153351291565466661428421041228647143668702320048946023664121414558660819325389182319748278546024234630804921029142853758621233126337572627115000535742343667647021901356322579243284736837283119805688438258224058918896138049449781815209313240301698003461401941378365879388590631944128500596298267815684725088448121895087384967381652985729540612248430244041268895063597796761369084646106161330105459313646309796690516073937347457269570486232247326307135428810161496414232928797913420837384216866532563605436051609878824531190254644125602096255727459479593842530766184304607789499528641873242002686706033732732113522367319401894119235331527999565277226666072830033244214622714916354056379480373728790926882014556090394087412559937826827085598630835962073975754686093908443884370200313085724758718520722760541439080403104345315458264324882276073291071935897726808095613371120784219950321039588936668146470902861217038467252927697546448391086992151629679721814880625010217076304941973897589203803272899801748030162595738391206846478045277203394008422804122010459999152211524279769077076969729715928306237871099704937662185101509294727341141037420861600539368503981410014107813651049426629857086369577404200628064294897745081170276514290315199931893523253478580753984234074292883630259082976071462587879335758487107911818451961280318802441339142298751555033874060014018996091902547552163455436675314939866506014684476333130261122136664227462923501106669843636511199791974937671078291751200251680244118548612783305891317615231511421321609161583854235517281555040872721953504272924246509887367939142223989104555937508504648363821950330671089063177611981554337296016943550379402327923010678788585084432769399895347407206682129156354012862284045501804380499438095263687628675654905461287043466475330710917369699938178401466713340684788448603701311496592105841503093986331318705988082759637567932089483629802669751998525113555221519425412187985352046471671855135614265447747961316442865825774828922615996268812461251398445976115984744611542422920165487927575462270963330295310278497590600923273216554139582752350919428593888101865981468746362132586206393098004624617321180620663034232215548924330755224204407842102491162044389111844921449500402809958329009060130427466108277198074208254583428279459552420270498864891214577639857247432197682850722335825018510293098807186734999546685447542101641150133551840051305724838281145146583307736139248933607650456261003165614643614331567264754566020596899375498898045689055108304830409402019605574509349861446417758011565930856118611632282580674850746893620506768208360750387368742649304806934833547020048512143537523219181352116118753952483226905986930696778945751065195717611744068312248604852362504202062056138000767511306296686406872538461604304459356369944095261890671985569607660678954468274284417226583959820267784043677904329793425365023654519913267465709968206651259863795406314422573299595534010244440358190452407493920074525289184153629141532686127317533931704065391535199476694716803776563615170428861411680756202145056296736454858787698575739735789637872700875643294889433873862229781723545383008753095387552725312025664230844978410430304329519784656876806249441123912596340019148097367308111698758107394077032395368539602454356904889087555800637361084668092207358520843966708464998126080924050337792807530839933902479144144912646133591830755347891865666031001531832908206098710817847301703613952196403867859414671071021013646608390398306316010559696479462865441275019875222777957038247505184428870173696405762359229796665125600342320880550389145469867153382961877541781434738415896997509119279126203981548765892849591242278026592638532266915525722899460239320079093370198787043156604374601925373739831648174890664495331738874818575677517494764438969533295006659014201361204867151781201889369774303154204633630923153146993764129372640088599387104411843245892084651444275224422133586979812996052844480568968294867133298293230988522787904369440115978974946148318691815679401851350193304629774917760491296683292662157131532489283901035884063764609123549263024413437950512562924447224630320014554023433077115271174306494587116558616478562961270214654858112381559407640387103818084083009810769799943476209117235519001206822059472625713785231706906798027236972816375232391292933349122465915605803601576116731182948171131971637526154744392351339185007568431775618858809135763346774199924904657328017797197628056914016540384362601705886711538890133565542376906092121951690306232196817292737599134135285765089035051718477164217906337326626939989710233668992909182954976268375851542267407158447226995320591925624083893169244322252371016397895119010810003979944246682578198475797263240678169784109088156789402410191023034229115160373698457427194654061318109576828855764010331338814477539110903907011584864683777925915715416462332999161278786879204592768546470024657074716591945952082582049971052369425584360829069444531622222433531293461785695109916084655160279033192363342534452149827277216119722242959715839035028689164934173717609162411939904607716908166308209263891937413260604143767658956953053582000039240983098323644602616167850699071206831575355244446658798321802506722902017945012247251123064130599126729578134248360886787980697551940438228703575810387074314449226437528213481260445078001766051360627971843455870802390093099739009115267739905227168482626113209029677993047656297870892362456490915150991480930538553236348178578578337310194316036798326537844188847346515502510290349058195416038768090105714138099414698064413975617908851467710679503990443061377472595527919651237895603547912932023381939790015602929383714159479846368956527528321533077482511433478630410254473630741384355572918597436962351217633749594410118539707677855284202090676133744153663951292481919447434534172665962390816456241823550165039454982676215320382186386244021486011747973286567017454024070002486893323222849053166526844420788684547439233585442125718632678341265224730754461339496846626202037981927145209017013604127076681624191754882405628990859453669781910990255177765193316033412300531218662760129909637020882826457388236837695588143492814841683948294301071181415687005291380983155086274564090618145252001480968570549033938600122162115244383139229374518593042582006333023941446585340737026304796562852012112681315366153626491176162202186178013051716171838996626269613151597699722701206111848577196419728384221564268097519004665015171936777439698003722537316463582782101117422694409604708047638096491596804737663327766528138313042316268065505484001808875296623727189221394189101117310858635415989138625989460484258727888613677474111985529314937450149070786365590766768624411375419537849797747645886446934074279682905382776225988637515567734448137202453579692716570336133532837156999638583382461650070368504027449869897645183010825850637668013993306133155668768745093835189191103311800291367631336525050779411899084760678279094086841420557303211891698134666826355696370475152473699378816730440860836946969716047610779741801719018976471789670599419674526412954150389634349679558017983496578757848579567220746783064460415042130132984002220732130018390796644446973643135664749334243032978165879613610793755586162311316166699656307538022385010738972558079251475028173495276360729013411614317103730726347823776184420822231481113678197185908567207104021361211363075207795431953454697897921154040790471554665419006437605164172577944316888099963454298037876656149329297266457063876319610102305814600042008936184537576994678830571113380584452449601020194552592422979518178857292010122051877188236311233149660038688354051216050016712769388510546249689468018902332840062910750146088538076720607565982756760824775932523646321229443567386221190026104399026056658647415690077959009598447230383880146311253589186091582817757832949134950869401502287296111044743699467486608323540389996396977362542693176071937218024088394053313933036273803402952688012104691241778890162778535939353663687813792962862825490880044117557328064037225787843636052139205117189206254641213318331558186148755090382854419305530086259000156125925543779283064781229484392051819105887192882087321104414138598979512689423743650666513017307988713495603503355370020409752354020232275525209492653518513141243296004359759982542126821173618092267359005584130884999903018940017129107032340055366894996046401075513757426756920500007385637348530558071185815080408593594593495949796898342921698430758171525014446915403821408462718082460770237141172001316873726336445583764963641719906603938920188889462001240494010495856951164670279048017563844575429245705192983550978384344656797447900990358618416362154289320404971319666649506974374123651821384299315642492475906218079404335398236861353260894001623328015653640757404962910786803051638405456957596120172925991945752655347359227283782817688639775405454864426157765592444566329324636771668056121944665989986163192369387622991805307380608759269427802261090465905356314969714932465479829386561229727017524675835393193748359435993989073688591701840749859518450537751897692383814229904782643356933549322070084520621637169658349330770120397810918523249073251919255537506005042006418271115980534034855981606881313339360840112181719117854508768934998998158379472521003690985854371313373924336011550958401064679650846384051904002638483213237655908201175961460566872182952100480433104007585140601897808692559193696757684868341044465592089539153915653416916734205611889916315299035920046856563852690757677980439328599164851515553873467703099401314138932103727639679904390576141886413378574006186254835782243878606510148704726805844303620307051740969091620343728737065888557836695047159599946995690596474707392199736735647405008567532714234795753957917352886677544893020221042203071034057552412253714713079603863335877853934659306157368491713597238725774188269788673991292258299537405857780447759653542887703352468286849930730763233635639295024920720368039634552928923283758807282554773319780420835878539945171107934290226087537308802250012723763807658027735913725941555047302061969966971364273614842666687623463971620099779708077709394105452952451456107474055798918429881814650769137087432013181780312237805754886080176218822914639045669181635367732861732293400821426670935063045438325975611907016170700256889583749756156834942502318880802441734440251596317154793346366722291760013990611313350542050016076252643731800735742823425041012136054650014372128965817845702144916791120699002298873229230141600436226092029529988828193224104731397439983536119616338646806511248889102326062788561851257997620504827907204765513969681721280127032127290933498477538633955034691874603424978281377879240753853667193290783204622238451810175633243509113189973006549386156380468467176064254824240157540033510367614706303726984858384002600652123443864567023349256458392603871605043644262453963133059337132396267891294496767687425292093991884102357078011409064760086003174329505296037896881318171602206040122812844079815578902002610511594911014723430217236797340521523941289375359876060917169966729720162252002879868970326371943196331034324046489373224736557334383684244452641530989086697260693425427165761246143070798751882045846418418971051729014165219770661219884897657364856916002982014629608047418251918842020246665660947063411260666510453255428804272810638266800064070410630570951169958970137532442753336681820221846347969013512441134127193927768917087175558378738586300933856291246977681931676092116207675307770560969050645721733342418606238170335929490078324269830072971104871722946947808798164710551479308553646195395137259300000830310425894416658377941654400952421744236255745313875634226032176053327322678179842352316748240597281583252393868946973175618807929627549338470351377237279524587209993917826213597775384689886982330280993033524314535390185026359733097094902258859349076473398076469382781448107423191364377187025063391580014650995168562764157453789205673920397330295861851223525808433131210797257617278810802074824838808011902962784397163171070962227077027998001502625808550351278721021887912858972989002978306849068670828046826375470154146319363319163060128031513082713510277448208260609266633799273272631131211854235106457589738452720159814302132280564040692792859490016075642201536724027859299858712252221117512642448760666682965077493688237456645868276322251758587806624413581652478299155887352870121650574499954235167394409865601939704982330503702075895780366986793090608612447259551744712308603788101697107440271411494416824866175638026221565314388043339301962223499677812564477410943971155861660051185609985136048146319012768905308486234490506394501635486483120999980094638822106179204523873492118146271391104282539825466407168905275503256522574447938686606500374057564835858911190388607890625964759435325181572541276939215463556115921789295150295919866080885179576788841055172668364785135731414343305720930569861154816509099503959556634834062699872502718905890672596022082880985019447495459596165212971695910794295847197370177950311656340769933757022807054278209641884616880849096929454233247006688488512831920513514522512206178355508480177706425833492250062440480608850976298053977044003493550064615615755849812117049559507945073329876970552058127502594682994287193638952986959905296906323244427243448739890754891193758746796488858296473110765983070153864522035425846181473309855613087152491934325914841607190025394728947542467211470979176811743199296850195677508170204772454785187742938685047267147906236347016874538333837413508357351714501741959012120971812639850493569958835414922692898804705591185482513166774291886935511563032870226384427525481373094952982312927129697168367077687312748891450419946087832956731589665860138025893596183795665004276519980788610820286041895309978318012700709608070165632301932793269580455264183468370746893510171973294180404890570239412815678555539265199657216052556291504092029417652573489326493537507167136728876896292426766197985872856086229047028345680670921342495652264680077955249251985583591693022198373174308336183390349339198140924378851804901663931276653036557520563555157787713592379601375026176106696810032530755159944808360857794205147092378269052645824629190227987168257591205629385099440504375682398154120668209632731806467696458449483993938084642693855409331527781009469091054264211546344472782949571976031038161886852766716425463974607894212251618738325861972218543750133692705895737161242521084160527676741177117862486558658202689202634892172382839676195271778140299901400870211377360501484567961978496276014628159871843349217353371001888163885221154395609221403606430805986480284368459941195020792544252489292119393624115836648438771661692536700408062158974397140938827617185579113081624354137508778459952973721297038960117664767636994581447560463868930980070934755785900840907802904629197629119901130695613893144698987961627667379796461680072668853161794524547199938769424528219635423352815582102153661981139289917439351498914571088158156255469047648446458961909639380977316086280016760584231769826836250543380601233384236351800033445496568699581868416679243708471427689457736524088409519086909457064027734927415392063477018460904204278404849340778821032935338613877253074170104690320148182970744777195328234729327242985971115124740627231858648451073732698648318537596892794155691859871554423254109937839349801946329645486772617083218600860164022085613007525136033679239720451300464591056814366856304135475964044480597156229686686704102500293618994860163865101117121956753593242813992351782354590495614495781314413010931590802930652358638348891305395400295975753840288164046628969078775508169564955553899662200051855449775125574511494460224133887310423471091853666102937610331948303203874314763625923896110200544906632924939652543130974403426360394764695517180106591460027881722129995606624011221986314986917658239557327617594809870042921242820226915830316161868241264666052655003014936449765579384608378065516173936077260897827178976283182731804495222622144087296492707107946460281410102437563965184231197784140873243889402505582850482679174389276378485361916128554803761133911648358449193538763276742838001014185348741040335093833440090836053815119323788658296229420100613542457055787035497614426450185494819781990149607792034400485750157780514076995313379666355989846768026380639272091411376192206795597791500859504022158968690195130428088465146723310774998556844402444871463602500743190881331891179149907059705069067278858779712948487321990786611497377803973250681542830061054478379535508550516366356313547799479403469250216072696118546056279861685965281055995551696811423437153920733093026366102288834066609692777625824753345033882957423013982927655649100684080703007982362230814246448363271080071976929255905808813098206686588941249347839017153457136733749474313528804981587328608127782773488887338396238516144554489451120510015035417514716098043195505998228298149691542448693140078580520053038406395238536019445937938164612012295217767033357182330327235192500313064130766180269008948944853906778223546196904231855455923905383425343958665800100994204480526771957416051666725392932971023954111658139638011726014261665021363668690839857884043249095093124081677327964479968458313220208547316123524553636367617246749668517289623737926630767724122112834490794610909351115843222880834817213816574576673215572239216733286233879286163769811296533613139810971975967462640341624645605244744503625676864113028653961892940861355036433415062696790897227933453894102540061398698191240611699933175539100390468188302842873956030330055246003184702537839013074927327401089396065036202779055243058529285060696855132792447139893605290316456512418019111527030794639194570534442278560384622397066220643510161279173616845766788811152717495428415463805129144310933586277607022195251087305882243152089166695071063889257508203764751817181260986002566425044308944768837463088208373164022225440485696885490369070101184708965204233907311266271904871320073122757012902100031371606364780514477506190004971751230013334721139591692755735933416808738914962473674782410028648306159254094437550105538248490734195293823880809027489285439328884955414584562158884062670312493380704209322284566792067842544051490342430677238690570688438295844007102735300270910898833252212824617567312536187172874507420090294314856473248903405685243167262957662268251820447231506438581850683846419731154999028815497728838440808623776458725095945442646294885714282820718821079042505201526815943213291527825214208814149969277258761029735126092173279157692527677075180186613109052737976103415200608214307764674187574724292205807861973350254398217937886880517601867798134642801670070425649902232926893392906161229060668228721241620878144441871112570184948981590766466494363018597749528901587875411394790669511249983422291659693963216132512094245748142582421783819733573741315907973587291754716162617389761563725281768111314600115745849711534117903965375065681794816791412326077772635124668882836832989834105774581325946301643955437973979263649014404652907609636822684949621062500431741005389194764944468062604536386720851310172550344101846992724673458472312874629819315544714035895495169067834924528980026132355100651107192605811040800748801555774907806465652509448609473149498197498822650596727959293691193694600117218398159522638804786030221793857662513972596122837536994127028479718131795622848637590729791067822537858675808153489761843807077080226726952043911168937487348396043594865678214290441623222905897034516349713372334542806206987906183316378592788281952196251302177439231950528319044277411410390683006030925133132804918467250958022948514210734154501480093871013869812466025958449742463713961492514919221815024831368913580090983451235134053733075783379866836595959718736468301071322310772486972492056339082145798280135474044084017547612780006838775938990913936369871647613141202662053349051314313829014228042513252236463376653369209736505367315331944123645783151439379522706517308579954097253015753563731795116951973817062354458601800613918190259076291985426812834296307077641689182036569384336842508017630164129241884981304627036912565558749064961804183060831289285410433027578800940785995795499476527732631247631136636625290804410402465492904995386697937055265894143525302396896168436046824264715443044347810179262145795680238421003816469150449121657573510877204381757086588233480350459907131832382340642704558383371454953502931169856531295403092721725924641806198164347460373855458408020844170987090420549425934323323173955793728869253394059447809060890682073821647023679884779431410089832068114562559439996024907846437035311734385633003233774474008215009443519813792469911276398302761091390797433372151288604315624870136178610300578760235632553909372911341271004683371230929586564638980117716053875216094569710300767411705384884280851172004904043444867593504284662287778365342243434848393090288433603601945868523168861464963704728439772388170785185462102616662576780008711647437526145592181369160117402065940981951507882234229718950549062763042995356467433179386686046822515634130043733385347721690369988266051321177082156203034353201451646133532104539143185346278636932978273435503037668242008291462648756265731966752192938017646721939018280979355238956508564311021634058717320307607356255956492926484955283730754111023180306146800432642766898180563484601717414317425517894214754836485167231936358798121629278702730193110519072366023627388427381728521320322743946738160378252676322665700367883247176841588812026162845324354533152611750469007719748084566263676350972061521467796135368875357158117654307827012555514301682119231343541600580348333001876433639072850133436549034194434104590353987694601924541030451990435687676199072082711712471792186057923312536585580573597524587733785462628107660437148795907617138441018045113475390093957716085399515869233755639077070992947483537659105787019533128114857964197721120717147933631230677126131172332019148460316157212998030323729043884651433533093599985840856229446882098509920210780946204765599325950685282484119334103175360071654822076340606513409958545719186706839087162393176648462663738967229429348500122001409369517850926444557699270721114242115712948889601100554002827834672540929670171548459284278012277921868649777414074732978503995606560083212567662763701771896631524846817191234831231491406214140654203476894708382046123733953992322355442877595893834289755992749342450880435294020057611559628859961244824215009953895790648954910583132610521554691061826294614815004212707458353569353285803089611991807432191965582578900654968356279071795385136606411669662099420336517210519544178267540410516902394704840783940205934906051526416760537884300716021317492233216195156861889026229920673094615883184933057649738914722394534982563252684200287927423844250441588777927938592505488172518500741029558933439677730081537606266354878160351193580217678933780504983273407376075427735799852337439237604817550717459633345562422475063784312861018726201438322638263405520847618362754205834697724397347220764697296732941147057760684006353601507203181350003849424897365480996484886039670268137767071665599108833143926685035541671208809226227655327363106657861496614734467141718117565989520372605079275906992836353091219096265125600318886912983435226780770006739007719522703833086103378077973688918013322099653979302799339708376380519253140538404263925398186842295724442826142772826588695226596988292048117577320959860747867764327645961362023757896442633609005199732098047456851977330747975085618328175068142959544244400090518918435022979826733974912605566879631664590105341019793413808943862547048410942373082282555211201277176168288094069606294340488095477680239520633306890789049670067333943455314392270070121800888204185133080626274783850416368284571960649418574545623768463616063572916971826773102421463566464951145145990214003507231079422605095953401109275328426084155347804836451261089802100783433436568465676544632936575674794521985216960697869383959396089548996036696352778855434072832546304085399222559495671370076089950477935563140499886058112802332170683396833474193788029070640086939730023998301435500793222419439185423250017354977598061341185058953610215978304514771062326729922107748387656208264029095413860879648828144050443333479228041994452546660672082043075346341407671144531394930111329014251082040496071638281487710360753489683531123669474860558483895338571719626441359545310029910186316929187162169377680168321110829571169454458303322188176368872144457953933991267396309715789581588808230566139127463876896968764844107516872171415218569440329012560788807124548081492005842346634471895036055161817471757268789040635545013771116817079800887449686560577713954891742545107087053474940601978632576375664221255360704421675225131799539547864304117873928023315211486132217324373443945792223541746837913261352636388919088326474344665167008224690931166375322791310921891536698937517691789136021666758823817038008398389962202634136831878001323793785131492287382255225322187935205868395476851412651640068886492446143142231726211950625448215071432781060770566549754870869478781370960248921419115898731361116380749439071683388476156070509765263443785353052070753882504416486743855098031769940545974567680073325406131220343267831653062787383723334586179578009351895675599708039010228387669560584814180321721009900686978776769583934872992851045095245598457477539529878207817139351480422493434458226177673405534038892059797137168200878332821347111740475116376899695814112048634744337541554195091117349422223717547135103037422432528944192850283000597579057873156064336069341991525822076914628877000269130479593812934197649598531232986252352833227927359917614000620635015292057304944364491615864355253668997123234878154960168819461739869975760653163865600982496826930304167903160435330208767164623289271108071156269586960230189112098839826040778312568875383277467618939102090374478730319839520370294423904672168823301335559023048454641297621700788251571695554021110723316062432623745338367251381553769371705860686802699907754889556580377784228104988937991516154359020087874674430031755302392185052667910182974880962524842978484696075963613259046201824836626503449833396267724389370959307140467042281965943905475904391759040677777089292259756872522444283364842493540079470027262290691201858958058600927336833673111590075751601846053420257295143010098676734602642900471155667688985192633552336179193899025641078676507787458690468480852655520432341462078188050031674203425747812449819036188016042509544979564325115723904917501753869501119225810467233634272468205786445218047220206753543181219540794268429477030942703081167075657226795241416211744869503479574305881713422701818248656196957437004810522344306470719595029116092657134338196479215701135394107908316576887652930089938394351371261218506222880684373739676326684478262662557817379212712778620266905332329870361258729915958538534502554733294704443478918246821622833163827822146858586482737781502996948892723954540598823280483138637287174893618624502912489309950323599546573415650587826369090435514270606564678952612308671415329468719154878300373328585212211526602548147311512012976156846206708604044469403493027254105974346959880728644574045548023391639014235220664411650109310268954957661494906730106810762766357285379680858385826118764627954438195991519524759154123982661896672402020312299767623727597536921502249063144658705982435211247418598281570966319322375331072896093475223220782132898503474610168227695472330724928150764972928622444966964753420052099012383498830008589360383085230444159425051205089042903375721542414034245085442227712009117205737896279188881806687448715917031741298971484692245299084614501125184777055614388784198405933811783780325291218342870599914432210912576251353609244741173873545945368770813865836208170525172839967187624229987608708440542902715078802898914858555964991955156648526115600485470457268764516691484521029168845793840022224905335714007406638388887566951311887710173820390594264835434239228374505860528681637275848547744305693606410619136424556418907058911853286048933472009150849535694892125861160914808610477174163946254145571174332795770827234046952090285183866662469290559878013073968647428236931737519871084451022414292886054648025350632513390751790040534295512345178705145028443103183546544872736971396292816544128288693079726625209157334679877443593808024229434981428232604769490679397838955050918380488930752532722502306622825686375098298342961548744578520123523027899961188193379626873549408460435346258376418642653373679706876824985987650545574423329138384644821245164557685530405388801631090022264703533758412949215144564792577709675846408229319829407402798464346805581041340444007332018458790740352891994236193383247936163186081340487807740910984835441378087853417988092662588545667198104874008952836246519761050944861986063138287429796510476372966649509304653130813800837271709591614352806713158821139650133276360603501061267832625688867662715770888149478172197702567806145022401385967083319711962263591897522696157491611424327571602559169274403109632109685937326875801599356802760446443708587016988208689883921915096639086412095055948486108139250720370639840333074253515236998263331154281789940717238707396848774946414930410274886873447632489898215255321233246839611240961851124668056128034193093571067225988999259789347616966112444707665029272098222737834285995143238412068529623503460458235175451034868130213350463597764349521552174001932278426634266824765608426544838103243167956648591483611110063093083658158096744836847317251591791891820234921254227303896898293557446104192318198079181707410254924523620199055116844891924176594115171749354581180027985764582226504261695846055532060367076947775429884828198636735086151895593076954945788817529715499890012443922944975842648614735562345082181627536970517460469336563654575067865749805987852526507911515888302147997890480515343631520138317591792867799197999525709615400377680836533927801470450524305567978027464105393891492971132384789101395805308282096245387522568762381611189080395839172290184778551359069569195311687562450774569155489718706219905028739767955659936016838895740019887703676889324058480955082189496774268641821617470985848423431798311712389002788158413092156115959950094607494077339295804141239752823193563227681381340298943975264356472830919303633754448714104988280923355591331125318040851305219047236770547278571722954656058942515562298386863054447245235481962289320361797531869536419489712244419304944274802461778058215871239050211940456318638513124179178037325230112154400531012077352755935702836655186614129358117505688709904028793111230293884647453930428568906569243087157535559508817271619196815069760175780122720380894296748812349278183198180343906346909888840898992284687490872926895230991829010320151955191643370098914544330902584420963268652492631756313665955568700032148899759725686226066410051327196492461626633214050510163781686444792458759409934173959170510486685311195470085265252254872219606536281408312509859689355262824275394657254944029072874395972867306868993119822154418886921382160228980220960676059539870725901806645059364882599766157507587974250062802908884240627835012058758357543020544597773055799153108043543965369887119786120738080490069494491088113662872857688993701245834515992073141134052468175268914638040845269348859059533143320065611402091396368400284797737599513776249852512485222190181875709744330087662346291649361566919029476427923197180529288073950023195014899555200775210921139901276731821546155015927601114530937335173383618739061173064297414247795817402291359830482672338421217821896358737467650024186045655737817311017840324110831537304653000398985268570164669456533502723785928158568553966317891491400809449284380658731506900038316088730391761686668216001907706562179005435320549724545885863820156994155233771011818624582086756161487079769635823855998443265707336937263870789919298968740457228895910306956333816849313974188089539041142636731687542583809910520405499162071225943457665495110921598201471594846798509821792376731333382718292935811518542661432613785637453399073443215500891494782038041715189664576927161308859501799172290946668448051987713557471704434850814136333275260715923759687981734750435665875865237720797764850724565609848604275559184262192757420315331326785184840593603579137904634961188109955885218971340205321580307231133636282086831407894226790656252503940978622751161851465903383815560316857401411924508873909576739916694224779209564694412348622509700172417913385361753737920402054650260342762322772183648470072420424101771792512941324159711909187731765621005780160778868568573062033473434689088194728171148447438686341313278924751675247277752088755876968042058533946413355581184952495280591633838882205953438001707946814894803741214614723274274894340652920895169865113627269240018241152809091649657146754365152266002014509332631554257336936654481542157818668729878477694602120900403357052795494795356714770629056645274408479378925473934846273518803814080389296980696000082408787853476729205082395497995881915094977446161013759940536699306911356509035243895609545599825217822487590155424866647292316932314553692380265437398089932047405217485914361308335712104536103733285002637261790648952792041966278195120420439359898778691606812783039719136840926396848880498806564941138685925699996465120014136890340650086629467316309387487457110132247507972788196054907410439725585315884628487734294550505280047616010661210903600619085478844014923248620776550106447214766864685213701315499704178464539540532497725249878382984429026374650831408732425325054209911998940962761368646861463211346508434953148795577544779811668469041870929654077342258716170659937643528430473972903543163427147517015521506757164698970563088425569637379965360637714879385850548946045353411568828354597148292687022128543157147620262454028346361274385728044784332435413298252480694699711047183909280147115763260897914914252718498326070123418280861852544275260163155484126803914489928224380420875042806497043795184187837806807812145953555916797391297382273552648764739934544670496146191593394623214529343225513762527419267924882663408383836045738872703820309125580696560645048461940291618511758792004543263779120584454242021115826660597381135969259949610371010489450419127437687680215004793283667358068451116617149688413578195043690761888147828516044697689331064210433039217209085913810968442470264979543007218072495655415329227434933735177377335267491818242529940508753153779342469750936742899529066520531678777532013273213196201060796888834424515014264707546662348158003159108672128164925137269327407056418564739813687088023238558286889891498965335407003362268583384749145662032963244377544304629166545868478132957323628658488165874695128340222630512897098367981434194285702682084405375825572616594184480094542376591301348920491603967296916871299353483807157824473850112276316341255807130695125341384607090029706083318168341457735669031196674790196934016015621165994702228250039613878105791529906013344655455642744383942264474870895246946385813698839553612793100749330207013886641208636272553733786596258905798115411840942891650785144727225949499587123143447546700093398339839120756356223050899624420413044889916973601245687299142903898229955749246335198747792712777393518762416531759182068393611892793145615657333398038676017183249475541874446362681960791890513988365101873878111706947031745815024413755042684173447504734334701170149455948045085521094360366366442403793617782409430852051428619604240107618496233846305866726417781843283675057146020815709976989793688522999081452465323363471930922871754236292009365459796748172721552959369081979504450890962845965872521659081430946162910184950085091985390827649794282425938131440506315451401066744614172786972982611654351729157587842337324769024129218518256653214235411210901515184326774093061172528260920637553710635983390913071019137427235841623146321997974681707063106253007456251171466837533936781864740068620683787640315963770019377871830439062551564385957803959782813213566403698120527885038276305285616457222397703234030254790283579695952746341504957887864586552672944407037996676158787919642285740487679039362586886364797652137961134192780994237993515266831165256683886280926506132550546650567738124199353020602465885503737534911400275976580704607420606027761276694833644076618980681600188705744593881669194709430856378571188706687516269162644917370817548926359017520084292379358259715144942384113032456600617425039231613870955751919563841168995787785607386741749543852012044455588564004620770627745525087544551125032353611412288013753781863394734606316792862111583753019483243730424365512489074912886833178399345225498030602272810699678039379789989649901889503018730178439188346597667907681284224144513251811976916397418259857712923425367430244736048523183453744125086226098079902140963010704981156673066170285342918221706573081731884237510963193576692135022733918996790298681013385170961838262842690265902717874761319341933134221442544214543806819438821401564495093076524053506096743741764381485722779453058993628882559098901958349574335035913571763404006336444081477298894935901024934958818277488966760691376697060844846549825575843833945443620848500340202162496215742383345830492486525575364480333073609111679150468029024657724068878275345382731813453580067318483984010538675548836547160610556439892118542590557119342303554981620310372100605767105398147719620727050198104475854701063564395590324636114341490149666015929338717660021412312264237623103078989806104058170374470363546937981396761706165476227353646241877675408761307369001479463738437193562842457768948155532808118920358360308092953762750706970560117274216465227834547762742090448919223103384926396245675821417233736065090807209872477856238468788618579783167315176366910362332298846184819791698830975145844479473449020195421973568861343297712097035082777080455488624336284195221254555674800053757313765545442555618153325056161105210331104520728049651474561036819750079706938521364240166274433255149022952115513022638375654218610634813103568717896259509968471390148962488855038671861927219697585603187533530089065088848638913092773835087242840450057672363642122148405512412977902584461054339336183394159222090133348159356519567066289418350539150517386328040494417189696123679535160461391340945917788125744902886415172272592354205088259890166403327803974824386941154733714963289104107304361130584342479994965492508643268779017547194729413078515756561700858211519345292883117803405934963893121824389206757057029351776894080853560347822016107600957803426652999039789379970169115897152345772536441602639680175804932888204979670198281900933537232728229443723511646395509527580467688257879467402884039044329855506484671148880369572986722047896410020152395291593317054335974092270788480598189456826789899035742544459846565286457209962442276203948824162466382352761419431875092218454203767049770667633649599259948861224521491806640727947535245790628509878507466294629486986994455075245805077676793011484210824119191965012656924109443605868073085486149454331583210844610852491354764687043191760149475968856453542575540111805792221074840479182525752020089668147400051203156556474316031134010542162661785392395796135685645782592088333208467638616567721337631151293418771377143331300905119106419829508506088843631924926064929750489018469032371080917198381473036952882931267429700164539097446225147032363377413724181697108685246629284141331933351036538805314206898181637803076554078763570076937406799630455282890848420721645317063462911013313287189093656546134117424054327815150082682641689779675546839741977288414644517725921112418520670656038551066622969976950491512155976386521022501564825444764798865075985728008179064793375953514045879529366135067295090700776800081300635773071252801335728252700213100765856221086273071189656755964712459087233629405984328157438262308946432240780050528451528324128758032430126654507020897657751679726154782718077260769055328397912590266165432337834890477944277432751197020449139452012695916092921256859755362414058431345983580521487211593942893451326414825181723687283721287523035595892186180547052535283374478418231309262103660757588733108540773731451645339980490180696023809235938848750618743869879303857208276633849603559768147047654194885170797749148361784157901607993956900588860789064755691627138207987771479869034907202761139599417785590905288330914428209804613085848945380688280116377077158532040642671654819542159094708291868178331515748672849769255762308788144011322478679362425514574669288852992261693425969292152990056884789049499362125796354584772952856279537333930710519963105691729868229811624108482502023560861959100624084147020739386095377176021349509293466839021730724345256852944563691561795149256956989558169987272778551235957983264470166135522589926568438274185509812114330324475936843169139165238573069979148821425057469715214336906360483249537701561382323691524351102737767524514191986172602190782817568112956941753056697059532121796018046923210763203139862436877211161463863086969017533837580197521440157401415835714933167947586746856412197586251254578184487751779240238701196704339749906634100483934743737897546699293726950134248395849243292297251710546153976482827155891874895058180605991357933994117428236167620917718787236878901369196443404514344950171849100726785102176839625112627523425391275489421116678775790277018918604433290212080342252602328715154032028608957963972992584143863172874955428858209725215497952187240043738005118226121645700914292615507063303776815994249997270519644098327674501726208225342772074851580175295325871903558473664091206197216787333211991441368388795104665879809667826509204095176595493629586171427522198578603033965906622585620159328801639496125066580871518903490934150949232052951313310757855389665611942461045748145751009727974450194805074939109319809266828138159805488933251773628475730385897042729335065604904962518966712011948484447683962885882278078880891105438547188111767706157112259954008035828055931577431522165638239974260694859928403723606083491954899082244363407136212686434758554896707230055207718978548744759256868492485700477970436053337135066716758449008594118744631774878730355423968455594753381615295459451475025136881655582220877168750703889981038628339827833005823969120024112007650598915334854933532714287734693873433840807487088904113009724601486611225710200037154355571047215816386593456757055125036964568759433199360365609600278848002393185764288007350641237591473891631957433530834479692652433761977229707016097371054601593809624997178282619533030618319697548148437757483447089444337388027695697483425749032281076802984733706198704043038426039168405382601743641249351774326125772453945648724224269909942734053097985569095828440330607735129392138204126207019542795592215708739878681306229185288753112033543375963585237299034979542674618496930583277931867754203404605567620544221538741550753316954273505764667390597004724335365443183028989993105995911384163477257987667882721548196351144771900511893265873391365691494427777176825243193383662318957143073620442877398348903297122107511900493199193943596743000633101072712596054163084338967436609574805301128571184597525313104833674322773997955476287200425673593791363643596431371887912763384877827073749269199743225350633607940188653674986346782820006389266467948819626509795279279612891663265149143245427215204103323864867982472166882967039272823393067053020826339562705127454391281293180330242973279652540127998308951606359325483746294861435010684545089908207823436511664081212738950026185458718571951799859946050185101389517252851363251773070631057687431333708016986608535562509402744440124626429501289675519549093052070631423750711344057022061941600678007370437708647007706626857760603305717392165169983375889356384516721785586385319739450817131851385101477744481146777069851120344741075691345890917080985504494230562024135414539896490481042447883441407731784550625926472910023860647593857481853565519191061897030216156544034263270448710691548385954825533741315978412350248947501418141910780355790151302425640601253170582776121957095687025780295171045724592138459679543334056516149447759833219879840744927077341599583843693997559265967174827151202474076653219971272070376859761005819553737415242594687652761791358620203561795751558577961786176768528963819727264356516625967646018513418652939700812451555343602177210248171073302855991600895090493695104828351932381118838704434187309728802195181362504724440571210041698476778987902809520632097327767726632871726927323977016163036246786239332642558228424177146016292221050188053769759180326210902189390955116489488721143154098337527748853738110434959291595497067624701419339702899429628589688693457495875782999232433963650814731800151842135921731379977985381170972561815078772535292793438421893103949066425356566019487260865910317640077533255464394188346382149177367286249512839707048453580394777040604139010049200447003855461341606102116948303462207387691477357085793435973054220082256934128506834385587143375013954372291668961577658596224577022287608244940701744701637819943306398570844650648582830278500293572075417226333552753226650963109267054556864311204267818618248849088884924998447125485081277999756473114045392288077250105337566251797447802621159980645182530772130150800993399362344898668513538076451793725009361884164714473122326193410107114955120599571575289726878155748571450643799434432330370917557744727025686184069931166591900761557999431865944961229187941580771758142711883886725240136039455538339665943774017001247506211689073294803619213803976532339491487857138784447298728305395960731766723823824098659694533804201810838698147901602708458910831794582292783046207415810285294758111006136017125106923641861476606533810659149368612010026077054958823116514177942814640104447972795247706558483455967357424161265917773951130610547436739143948397305194349176657695047793095097355927282916168419215331663018602867619882618136601348813079239888982232745170702909653499137560138730804064969367644470374523410264784037982511545066999548965106255438391703232562146256575621193683959467379406402917034899607888105403113554590817751667753381464912103161368729199794982344716913041261287584732553355620936917612685183705558193842039071265290855030896550109444313584192542385651273709233625424597237767562473210787619297917773855869421420261467943440487876059013212506592659203129913821168638570944257402034089191411948880265207909706011265954586225593319938895956810670358350915120445510865174404598086951649472385790736018948853146967739124247091691060852488996086483687874091067413491711439442817856045912093084941566177863576928635974038932779195716366164606886251871430115385018377846529152941094738222631671754575785787277144188280118173000243538732832252805756577996164176259190119955327401979846017425124416526588603029724144461558619880699438895439580614671340328503409081522299638048610464753655035916977502201925001118206571765742341933709949922853079975608673929411094051421720803135528592182647964176471611068806170737875746461874691242206668258920603756985905877181712350338123524005417151970443830742559264903846147574316848606650203738349764316288097806039622107213945749705850353084217541110918836301693687999930539303763406934668386080290016565705345584757692887366102263923817220670378689499497677016842660057898061921635972415317739688850516187411461360379922023491947848458056503457841853591585966901484275306723178181390146269634097229939081002511497606805454673943360113737596485529031876423550676032274757128390528511478007976757496347625598216304214502589982184294937053576738507640204322147383676350759566945336828970133633061842425038285672799939140130842769522139620510349295232745686892098202051392692905687959606041953823708275664164083257605602304664319460752957123785232060646537258735191822812185673948578129991688776995723957673191318181859825719311127688915161646724791856610975127859211818636450787828489540789943537258422477367607775987381061670348959149532136163359787688441769794043292283707819759087594802712689797571390245627963492811260919411393376919970107742461903960389705848065145540300410358070620165976111015840486469103995610859736973419012115129199398928300945116682524985869840962890548558560033465643095260105102473255429951044095191123104953560772526080674904856569517449525882851829838246068782937698053618328850793531767512880539675136066437935944694400776748760675451347334937161533456810731334518888020701751863215546622701827206863440383748530118167250441759290943675889143414512941065186236575234020593181348857586136429902809544130554182083222282833273334219376572054680394533448970707774157844014506548808457836347360994761470237075072878484244892665353332455960486018425730361355964010996758508837513277430647290622479235146672445411456521266269163329655410230302663448861969750940829083200502322727361326526242090989739108919898520372325136399831160243467837448364917503342670608408367974178865822498734572791372847498083332511280137853401302764946758070729986304008980040909348250667869590739612767202638576094572314786123898646831294404702716793865481285155649608245047650748170812831518324530100881646722858219582788508694560473056721068327321712902718058027857382619979718933639373382331287342059047528940955687779103159016482818370344548016364625516248925726484302579680978489896123899427392720913453270437467802811221662147046840555986999596556911398369879068388763846398318755989643726549780864421041867211441096173689159386742515698344345285186264915259007699629763662888964716153223973309729921448349771279424987725236770061811372084131870592574623730315823544375131708573320786621598274305063430235747766226677692677388811819679192672766552607315253411385301135790930014583558394619305419528763486448289207937683355571682702276502269857516132983256049651279646473567151842591476028296851017627816725946726433538413636493594568544301970018112833347422074229965166801943547507899785164311450057916778961866863924873246850738839159314922531408704890870904343621430680344330271421996339665692537799942167699540581158583835458266764337356441370162466055711472315758291123023331486158550721486021482137376863468626237167637275825591967029822669842669797653592734270605467228411854174394785209194452648658587763205330365778279803779742463854569602592859241092959761296400589239657732558529083433154518040326896674604411705279818253265702249606076171230600175507554448809988622692898016231821689500401951275103808898549957067111477299721277925527080300615167565874440283235869381003410800041291524626022679588563993850928100950659539967570719884069992259181327801369274636441818163252787629342008656911653640093250316330392842101582053422471016616717011297113679565408973668374621189384063618006653977812786258468847900314712164601152307904303210548743075649028323937713645848183191949555618681486690249466181819478814047709444615299948056009577731764664745818530684854560690366376444037866073892792158916648224349859343664273609590675915653505717166712314063171082405349686746793458632536826341073940829597383960872027270178107401122729721534587345775469794067483845409456988159623960667138769505404708678117001335308796817138491739889665604056343796821307695473959211441737087652157409656598881398733122916661841737439854792098252429241843428542158228874236711677017735417984152013380931677075559298293538070070139357455393888362749853206030201084254788993441487763835874499458985584659075682204484079400344019321930480717948423490554186102099656494536511374067880207045799219358391789795163319830712387070039711915735466706880102953160384240026574528696096774290136249953282135426292940130369498978563115299479979244888083862216654887278828211577819355872263386019133786650374868820266106935842428087765585258580569200333628661959105896247335917826722576218495882646933798469953590014964286089797672646826352655197829662586448639486979555701156027224877606340785250625284926425656573253539748425553690037763262487587689464595903392141697441740424575685608939678060366086763879823223840146686525866903222011199630956937356924248090676673505765898254597210730297692293438621725436439405760489210542652345069227598687120259769043327833088348266603940551054103399802556404305457517186240927508409254069323879306958986034898237621660622306740104431817662056822708809818093131556460636784853714850848783324263646532679192987887177257828879134766525319746431188398643213321248076262028985813234728310520837718274701797178029325029745192683200674462673860667825459858892846050196558915955210933725661866328250493821565951169105883968583548794405703518707866642710230767981471754927578218005723757803106782787934152988352920599319529141470162430559286108918306133452203278835603193918952521142999569472368768921398342394494899633210140765028388219788132072066199806495440559318672165460728544397648224328646786790485146121609470925184421808525574409857795444690915200176033315131615741723236609505234132909579444737657171127039901368389481789369149452351684024935818040695708199241314698623455306197336679479022406474402380509481984289138721977535742614945439751300643006978275109489123870732064960752187937193362571666550083635843797952084379240514675863261471009872391359578676449856938206276743519164118373658880598359908814484824609788699551240941878003100198014947338766883381086487425750558685868913413187890434779928845475048613319562787176921808483589145705186512542424301051353318598128957343873162894869970846134284272841631429385572121996902660192266770938222969713193754345692420073061414868011079113979465952995869158468326351966557419033436153588479787505776695441938382256500270178192186326445064743887934483383384494582093974288992478129776511227440213941580545515319488134350403512472334708853637623754606014040719557743193711085269668679584002858851935622659319411348756441380218210094060520107402279432091650278915236693232750530894473895315206484607348777077257247748207119580269164707538997742899061715785909584423789792858890605304696204613236240794289379956084594328935243835038926294280905984477232158270841524416675773630785044057068658102006295907645064054646341736237234362053736540310108855518840479500983492691455237300579709462346221103519548550768859395481583606336568357113902058475826101905937803899016151182752506126934738133835804417508514987447238254372165049183931793683452494666422265195907254067924610824858614573560823918608606058387236117422910076695967944325401674067655983181445974024184154592230373317119332659357787312561107726640594479030452683593489690242114081032501220048186372658582450349507119163653004101345431735733087837615787595203050528963279980849668094361317554443691708035744585440808136187981934027536262012308589731041149208940374190251816413857478204710326755213796809095086872302325078129697077653577667075754027380104493515044411170557809961467524693103950870014979919169532727965493143263964251516690045421945211124642543034869933310274574066337132659267405277851325271153685296152740413552593775435669396869427320701590735874268912952559702156875113856311494074777304501727631009455668462989859193572551115513205759557861790894960715306929662657252837175296458837214244340438553301470750518246466408438070612230256569164066065412882936812704359616815587238564681825282598745488920447881687688811078594645048320732720438135712996971298185621794925613149135389862812580452412402381888727756363947848374581584868498346972404711394276966106029402905451510389851346482888632180668565474341290506330056790290995286866432052201986886867836400288653492155761695372790193129104261300675754478179600919163097486831513152816545136402493342257116410267325381360853730078510740435526557248902605132128710069829900552934350517528925089364886237433698131130603543023023914597350447507137237493865706242697811511678420521064349637966344940731898189385516253545991155528802332700113573430010455940962424475338337518363398342767417934084783576580955863282285887560879608864864853676702790861582789495746120677664692872792079465631178575372777547149767336785015997298553845265071311989201676780921297860189776169379961546262742004825962351500434741336679003463304939489279877722144024304597837941926016001414477539891774526307849399137941846780262698769747179018947846692014538671500001445003242321803921537256406406446411476248517858500229423470052867741123216810843582555853698458207142713842480243176577769282273948653457163412281881829892689515784089338447824741609022688964658447312172206831043554270842473227940640642521916928100913736626518731127103593019586968014448112138326187449513023261750593659318744652377566211110368564074754388490463722846612616190822457861369194335445192484262986677524077502951769724042591333321057705717177829570928445647976655274352446037276553795104811933448790617447225267756139854228283272393252371372800712668239257095913450907182024122056482583030660999162992345598119757385760102434813731967780827009728025784307072723740558454708396688415551319668615453657001901240686803388238134670855259517345366169103545721983578614525759520611532751885042496326545040634094968256374264270927380585466194417311187696553990767523780811624776746373146824077557289707077594022751345626388946194969831736453885027055708340070174249992852035568629390480433664782096689958065980845337832005590509860269622828393894729679410728050646889032185282926408166910246064318101138011503961779700423418453744889312706944595869704218662409108766662040716139540156577606216699114463367211172240670850196583233899438100782577132843201210958327885271782364155179113037032920768109442842264512592441475339116604161986556838772636633391857161302799169936623721439746330963647520468171321461995145836673294247553396196744729337159775938616619913250250692861118062264724193539870566605238856017936951937198568349577766167671772312125714095517892119316356778026524271826627983590276306819569255530710975632117247185209203846286805136188958543073174266160783942403982198401822847647204657052296485630383202960068559647350266580894804526746535460801706407496602127904982006252567090626841335035636547981667810601473287789429868651674577408477468795865494911880893397786078397055123257077341781746547431194967784340738080490608014377085191116204566356606434449151699899096665961643391672576963054097470898407184608598882327670353605884432985275786002501805200131410760257368372672840614351807535338244760004151764364340936695894456573110214281746938013211357537217193087601531617491023337890272003066592406282166101251619977930214269660108403067586158425386914829528371003550067643033894485194818658676645910373032171717119781516322859654162889987330274348732678760686588880010884949797584625509202002406365152330411660206821563092452910423622366785312538736572888164708284912220316278289174219362338896172226465124886284554466623064242545966499129053240720601036846568422339254233339847153966303325977838301350332104773465163222492924660801821787054585467288321152828397658939257147653521278811062143108497318787456244200166291478945272511818806709889089577755480286532613829177558242741839906276380778635194416210372986390283205013077924802226335005608015730114370372521910688253391300123300792342796946065534234897257289852076373571584468996423376271187972601059505338844588938733058300174900027121778881643196842573155344704509987599176875401997470284561557046225838146352539497714383342077031689391989417095086039878031524403347565234325604390543865184928822775647734100309038796921608449455862464982930906277509939135035174552081393997945500049302781298534292684705770679685465019961003906121657266075344131832100843092929596200967963975327522658042242046088236189026981215740300416561307751964323096660045999857066114641954336200457552687881221584618609355745132057878234447434086363069692124313170880053502185125232573282765856982260496288186339358668772996857385365778039714623320140230525759092029137271305137442252573527428179618690471370157085288697713336581969906322611295392403785359100682775719109825710079803947770296689141574991983025645140547432859202609952255085175975025090295193119253191050067819153742432475348859186233369672481934478270484694143302476435914746717186662482713394553729947985779234211731119561215517105165680342481010129648429410318293612344904800625833792121838699214486593544415736225752255442686799357825376009067309199603038308563946287244119668616074637855610478729148160333105849177046409566073416734473858066631781052387368856521299411901205801420046298570979090236768993045377860028783780028010905963567757113269699472814436484154737750906895378437403395735407422520387245186244154287396149109271715163218867374510176233999793290442826530702816961411903279624073575701640127053423598830244093325087354755938279504015858433068668215261148479535968058165720469144707343665949371383969722551926395386627503485776707802588183073824342962619098642005335388628538391582513261271144206801919290779719073051530655199309199125786450364654346513779895925009916237272945758447831301041100089426764825955852351006528837339190884955262000559268774475889183737593800366039467836026042927804907913224609287474994821007676346887097024595981573614189533153147083910744071667048182758870813612989332495877559375950044246130953548656014153142013231071993273233284889088678188433475934926842815542300771765248014419350326515352062294761391719894976350420113916317163402478543356339464903064502469341374429972443264070486603477642168472882088441199386776637739589442841639214122968784012667162494808140113503845968284109120768182347920322711903474902994112554497720184958300561707652325865514506860861380568678346981632209954443341403373942494720578255602766517339885914531001931557963145163007334779663721349247942779148148352217540496405220592131302992565365523503727165295543270978254280614883128788376781012172554199279438203972755068258224015263613755196345982081745767470993749096866872735860769037093562949065946397474247255570628754451560544891648502095713893272866648297129823238393629035767217518549572184754365664297455914102845060439286659705942826110588064651466730010188711801488654497910421327694973688389498080042518612827578087419078328638342467251325873396583135532749995987766154098011892790443771090343827872001082120750257913221948619111969434224247077775106860146601667353638947996551933471232056051189847989260817768833681269378404493685411053467254978882830869872465150907275150473290029604628300928151902683551560662342679477661952106745638312351535054752224111899922737954503844944427071261284371460305165549498828617192943216292546888154752217959099765499900553101609867753395350738378403481659032692130558855022506054976852912983279150039005545328170174780410215929034792656886775252323181681317997599733538135381361618005923686003219976422622570354445906112579605291438692329974389025907577241152724961595818524326345772188147280953305741013340232282249966631264545987278362170090659226218705399864515985125348032549946908903597831857399135262445087052685834923509326465853077138864070618254708947124816303151967124910490156270733397141603041446502676487232050388143829706055450776003924154399179491085225277101588015093293001427191743728813474495731288334332819482511899541861707030393429626859257008345164007054372497728433019713174123102656524952213124530075208110524586164323648243089292130407012463809693136259665687273761874925828174108478566542880454055574422128747930350200078553883288335766124559515110546329976330939976002583544575578947674640525658875460774423551111914019314710802308871982989669973727812177531818573688065621141447527457709971562297743743591285168387622026720724249570540423271788546662658897805903881352719859033582751754953936598831513677574561708482220606227073386682128677171910305603642809769443314323323299007509746905286341089724440427508988351426894967811326251238456152504443917583486439932835484547355726192865543941123080077738277862186652466268732256807275397142261775185006111192393283350531645740673899658284522623716169707070810087113908868524495390002804070991441359152259556809496148817863314118796561545422721547677309067647963046345035548784508531081111787734549489184895290699336698233162842245889511284214036785779376145295803368430102039176373567956431717023389651728099412140063120864554983386802339819224443744657021110163771737215362924177885719925124674482722071172468193714144116518883276474271082795668159926293844845501433271385855560012325849948147646760029554363993459772599818018022072097891700850529550004364592820959904956981199491957618704242331428541990377879522710645192465107124026325431447825581047574730964847393420650241672713932487551022155001186345802693332352957005315037517349071576087681672035402703993365432196787664987482393673041109112312079859514094177070051352855211200541678500214658724773753762074241702640607034473211230981345089643119639151825516015153584355065138330274862421359133307421239131802127990331449886101831941888377605914335465034554340720845548770229209769123730191481948389115231910853228721530198638374444224088354378626735903068736460454872203643012003132594433785634817768866228592121414987934222225891539329161791961837958891407319902847696604457558027245593145843030282381920161012629199570736179997901948864618612338128221724327698198123579076771236963815799924285866795164095464681329574868737384792939164674653391235817088072151264827486675477822623826117247996463137718018885078764280185882012317455402936094777484255008548778747383405195359562082757297645759788116598716685628335188774132632074352415790347899570869543105472453115736099565433744758363199948246358785040169554089088765282220793759365703771594064320048297000037493973615059080620741175326797804134990448082748595046173271708990229364357930734856797476348548754202396873477744643642021110262679707550761044305920933840190405945163601701360187513819193955688797375412655272067216014755637466161282424711748579606655705997228668994295489574075913268346696522608373884234994383072132584543437698477383552433116289427891699337304941248047508512434304511628835079630799813155091603639030280320434661323473165784813997450657451531385085613368464048024705585187095232087233605096297091788076572483664659315704986279195378480637578065636052200854247366509517245763829918793598780668051308391045806879112128372335317632649973439073828684358708523321616390762093999940313090521153837476621709108646342096559019314201306790247755172701942926510735490119513998444085358856273453047901192421018822301243317565925578519681588089281386776164363013704836260532807914394124155709045834185591926597095252031701838283037686433306019375664296703646875423749135581680872464156094386018292004288047816937940316226773262132222935416171743400120000241738934066613026247676645646313078919173482534710265532526002079588823850007766856455621295624493803221477364270824086704470063558300552188750698644146486958737149464245819344078046812459561346816089418734848361251221279445464230759768706906214669451825009840675790586573905743799715691675902943579887024482402109899388652675172711518059946847903953356856490736548801298833755626134863397956338448753647827315060536244965184201656785113256902583309218432807158198843585597057934364849636498195646072456081674577612013393579978291937288909332908039707171568702596336717176906040222395504916593063470470794977306068242598332196691137804108346768929683626651021588667631651818149469742035094982091056409457041288980950094738402996917761345870604845056168109989264363881612750869719115829023508487275639649702304637975703006681117959611258868555886614170541326090103924193998172147842919849846050424186214764268868511031898641613927088580501395676478643911980271815111594806006282904342432898525081137805602042570823311921336227166898701254637024871820711332705399135977664566542212871319069062522061654212099706729722004642900647913800686593904064969615488236904670646326717725697557014363295716756676758394834643925713734436853373126262922186056635423968121837275149790975921374462691560709617266823885224191167388824340328663281628775519291343872104470383895277067858435122830808672444760388797977777274499068976936294000945416261653698035631719567720255720131676598576620832256053485609190360754934659049812521415220912737575627978645076103717301875789661718331711398508306203206389711395297935194199854197892443843847964723305753101863042435205324415782634487705103499227733654295743548145327216559488695748354072659606418008662778013389848373082384723885814264114532066586855081714264808103074669142560748240475135194820434700819164588309979788428835461103365902797066006922372675137179196005431692428522618683126347086309900695353616703183663304569726881505380580011007531109060688966269494769336417380190188395710495871059141582529673204025581048601794326759575425551891794208947131367812502216546299074523803330332098368780608991522062048978710641174593426894753771039247514516180476983904831508562360140316423914517109928516906293461340707060693499870462330655347784837877987363893051800290448512562543971235773531679665827023795056253403263437697019220085284211647781190182056176374655642035277413381831211207714684457396894861269109981791787225029685211706816142269950139936935787824904639530333146076906907768385580035206656010164211991426708390811472096087498859156180275740729861000353314510955654609900418816187763567534984201929709351723299316758302041548969566287323692935421918853576597683070900077930157716027885470394396084132765537024052558160684001734394975286203758958958886843729034846894202241245198704651039322295675227409234760696040250158750033493899938166365642384868954168898917243485149888392205650785987616368350050629432985132344809906121290385308365822804418231800489031920332644915075103038946885946470298803931542585595050550971135317711751773735108307722547593596149538607016016915273460679028427617492499325580099682568518572937398073269896475030129200390575408290195922649777196987511548124595156110247736532304109112738694723311126218512668629471944480423599312072636710973809380662053126672825164159732298262941990227364057143645137732022604531168721048315455570394521594969670240288248982794061723551089517313378228178907384354118956647760193293131381118360154819335050717483559687747656643870480423338365499552080324313983147099735332554709769558687769273891600220131855574566800909376343708527465004526443424485188856018119288127873997726439255996812499456735420684084909043461274422778214121252923907807276792582668090960612313040459546330278166832767969189022904657213932726865602792696299953233340859831410177619331123090735412603253007705475848709788502562879681362658403316376763524332820431533746757341753413762162177096826619653632193483645240528563351765038701085948699260687348916603635998723046703556701928126635052543470255637641485584052894937888094157728160119811782313014890084063483440918987440475572964482061352867960257128004924807381772965973782912743196352505305110606117905574195621478420824148326929153268887155794955031934137675137717301040882698257092661910122592569448484986989055445236642695890334363195231373363080150629278174207020766136366106764522160047019661803247040596991970057236136238016465434924560809228995573238705639636956411600351909655103875108333962032858472545561917474841443293650173613380423438459682547490874493191674625679554462309529427664901138092550911968445880492012202285021109099816436470687028332941511558052982747559228528466548036855275292789365255468990045191055666305317318838194259175462485583499165480294135416543082146936143703613116960876307937446854553886208462745025270547521554128972525989727477876232318709242899753217894096766986301777382464263959161433274470254325184692255495207499428733172204524490282571527912089764787545293655598513597284810107031637167735879354073301105036215031919057641957978817342818560674112672817351849869690449604362265159410579942028614862796916519736382808364757479840124820888668603444255901523373319068635452042973114135800627165935095163614949603385406960049940984380403240058275243536896779801841473917450418621573675584387850581682871462931751406836800623900899047623804969129180939822933760473410440112519877521079977664544704455739378730864514263797395977768428827335678915163322458287954686524428189706581395789321632914674768942074575574086858999515841668056711477571665176636095521026734642779445512363710206787422516221574858730705648342059422792009907454860067719558753903462883813400293752442181173033523762561656478292122822324410400181303572138031501650243608873422404786231167000171590822745577264599079216434653893077855295467624406650577833170152487848959342757168483530906389047983135610218312722106016789978428827085241139804405385795596546761319470194840981176919925986373368863716168160050749667801005522949012148257793858092787164135622233743398819351201145405037680495830329186276317497439492769870946409882308420870057927017528888238441967937874591465303829881355555025663432228266281230395017342938594980240158266653962912581915266103601546715251081843067101968652976342547680412466265916928981219916792737103667603029669744127016180270938380018896378121636986115150962044399557662976073213563065984922518301402447074316820008675216156590650572742265485445359117025647516458518609760034515619315335407822684008838376841506931147215020798388211486326328393767776218867349022331861776580858963873189826108850221739895513749712158793232158571519013998738881543433170935274975060470043863731526691706087340969963358018036928163573487167306389013355031853103707945874654906344991904403221587705955708624781885312050753394119343883460136778752814166420940608505143053136313675338909032733483781907240466759185434971630794160041570201401736259342952531709614043502863261262057472137331231340587035732390339749599670420277260671863711426942646512387905404056093084138531295633366593528597787971987124091305814857412964012827733836478388365026447417173347770728009553530552385839169843109489443276106995002983948975384050294753801154401948925577005186773387760350179517585775232441220732459544678392185569089725229922107874822092863438976712347656180134418625313132383468983080280316794948228686619773107145743175521759558399784590430300241904998844367332249841809433765408003934352907842426851805663215552348901816179288804847410750525594745471266318958234969388598083148529425762209345772407088311782648417640001734232017473448895879690803912160268431926999676168983415247574416966036360395988573490706852765685310891755231013439139761694616969812519635216988272729477973818117323208640808445113136351137262218694486852757528630183428271048194607539464203973293970199835364752694925926628659389404143023919197966873022600056195129820755463043785662268858538972267166815325039007508940663269239424277604130685341226732358533055900125078522083894372110783749520305053918829093404428735357235675041571789410330227419404415783588659558675635515819352234590619809808635162800907705538517099736638685349817954180497133885191462565138930025615695562134472223010712951963524186449698633470363244597324137543555329341564195898788906248930155886412496911557598461186369761149640006557853759571430741638311247358858150324312932908347436621595163444367493877711791739952326991863415692644036729096482355008964104243732160972659338474931056721804428854533251359031968841266048334545670489679272367517484001323743635320005914189912654724834949752850914228185639673751846771482123307616905578549757946391719517039356096598648689253390749396103224471067054656491209665838968472706618179813750834191079607559345688218790500118805659288695338239226308785651227454487786573777080138300713892917425405397727230799830157559449876141351629722716828723070972152893334344665605970837278086084760757401356324405991672863852074644976732511912272231533238135231976558708709262129101239481117094552931682427724894586112980462912922302333264290196444580841474507459255009072147016335229175718557176104230138277550041785401788574025401935759487202673929698852651811703567365129837236151441710026579363285026517093506454472577591338959028693184394759263293306285845797445734397216996720189279235865605881756778810420052465646285294237123222880540219750550425724964938253468531300800314575692143308406657937826342961369146814425166959231885633425443653849895057269481356913363901177687676988481477748045066186033702593843470476796434219956175988996469449708848146400260143832624137215686203816880441112081894799670735605936545457107484520320258363804208177314683473527380218554460821059981104463598321525026268995427198918549122197362987878262448055551435079326154687775919644662041507071060456580818152490583148593220300892428183056106943147356289905720613047394447526129671321494615891660447195131531062637205449150344177299529942145559363743485544216978986736692309660566358798182096331252832456923427585996988805826596994946376144071205896273273150774230128208277489784761319301229654962851267699978131247471356091988101191791796727829042515956857464113078619369830511067857897843333407140621329445939499231469423458418343998959373858997963157078639437038897079092785949479986663068157774786780889470421939710174032063774431923006553651320241562894292833520358744203817439747664580099774442444021495227253006151346837470253653756466339825079542572762464962477956702843064210803814047562478621114186588038729212359568824778893775086172009489158197819212543285585918792682021608960859345663578810049083728611101521752198714287958063716728523560704238641756458626701131936836046487189296992527859877715500434440228316023312291929114976860410400273770012180696953937598754716096553084619043631943926809611241237639866539843882984442032020630949788915513214272944287539055481994098782577069232567047917019650146340269952616476011307324200852704719957453841802301261997168985388661379065097944985994194185507208029558547282192598606749605918660004650674334101702148322228735082150410583245589957973660720755684348806684231939057518930173560897401091556116954303072545269395820039716888452166727636139706698809809894822476725654010027778552594614507710496193603350980904072940500247302481322754354470460987307417215402253944471563997904723399606618855225601639623525806360655354148330524000628040829493812760923353481419042876252424407919447183981625260096998332183316238298569315418620690139249706305382503136626544397236604997320535732370719002290688610129771770489972162516872764036696955839033353833740299744539207145934392770204784959881721522980226248363719565691362045057395000903115859117627946299687200548667074666055102672995643033048697018384299242020187087598749797865636212588242984472407109361735061020478616551967906838938453250353662714929336236819573761254860454150132313771583071465161564444278856218159213283018181124302688628789088691275800650104886195668003966340833802894903985332896757201720614787933844865662163199962208892555553514919852666078148163783960126027152043893178663085977740583127638332945719845458763620099707059931650720269977318546127216073253876400454571224611108654919267744330735461935633123134358703841863826555232533223537342768220077739929206540103081755341681897676775506315047619841912659522397720241420438771372935076556733494826332413201264764104684292332387911967132790594848215900192191063695976966506193350290681041306658180675975081367055921993196229240103824581984180583110005824734327120205990198237087020507816530688670211766651516052303056768692111370120150776905917644790584351294663453391123256443009358367319487399144019465559290882698897004479147417799023823512575977192571011226064435846544932300656266929904655852476220895470641304047864202622598884376252669901757912105408983820900338804387203656094841000457375795288186586431902556787676520415798630524416035728803610688607498436973647598965165684187932348266770861972311799451628017289435314381272514126211177337681147811595085763804371703233094122529098972749829959801273600567363311864028075911041622333013877131797990953191015135182904204683210132998639626995083952769881718607854516839804776849925375253314886219333868592239451574457133096281175549085780180922178880107759107888423723681548242484820436016344841553601545829180658364603163738037894051359448781789433939276203968670272402624731857781262326744702118444693897584349546613012082417110039149983277888486862573007357477189994324080445596200256708414469203124421139075304830401794685590822515640168667933185049487015996942040997658614994355579538627323227678794408314478644568042474561723322514666136045935442321886163420942518444946478596331241827504595221102769920542319173140281279630365393204935820606967125940988705543975913059940959325198113868489956037906669871011399132520660639945751520512475565242355896889388347453511447127853120784430102769600909732707529221290895116010631795644758010605339924631722094757869865436197782645876929207264422808629193681460788122560878771846400580465739505674678333956638378394345084993824892188271486960621007299312926074654041346556374430600522326101615606129840959595985895038295627573583231447637110830552686944974331993034782068736329240963709728563950561852765735838908039541747640772594183962238890777543415526123462190108793886551213755759588667021911121450829559847444421062229893467798053711945529162971954191174381505891356004800008627156426551927797692696168958025305137009110868238007344943883792723650289411483714210200056046920109854560450710544765933110197217491875103201354536909392688943590818572583471402051538776515396748224331933697520710498695417385529389866473505053502892081800101851586207102263596097580890894172198192085744121854708397041476769195101620667055800868213349026133616714289322367521351758337372354573001902174658400494716108919421203250866910733628116398831227433653324275902136867782959166936602596349140033087286688962315768188989624216697853991826332171218864989158825222502652522303523199286253180877233396558791531746969821176754332591602123269833490074443199656201178335240075556168157711183676083671227477673803007928376166119796128602205085307644066477065606722163243750887547275249478834975625766272284549181126302012720988827316726490764973353640037865392255767823783099544092349129920217916009662093873164106459606296895126388012856992521995491624369536104990925334374444335082457642105604263799103069349002441650992655700614529887554538217262563480659308027357554477794090190787460929166978585230120819715976789946394552983200847363362525521307590950702723425005325797925711103966205875646036219562764213258136939731267776726782217562690404781531069274212180647506029274174930471662169861347823709667833946371251330149929316829825240133201187485019304766508257317592605560970892952506637709718317369208743399942465426697589602658798876467783449019173068832847841974976726912492403687753192836396843584923281479199421858736298547269726755536479603979314196454009480796806866331510869915721330738736622826606270803153713886625722835335993406476850639944059221381332668749307824382049105625606390118361406482991802104772266460616487441201855927843240385948169522437992719369232052572810664600084887487888404384554368536272776835193436686313520666056070193856208912588376492872961825107701142953178540193689615421988615758603295593997190501602039348669643617922073543716444821657718388693037872475234919804227159845991698426947831843897584838683862958555751200898505698562946623239139722349801588842535205920585417675854353400058905399789626440752324829384863433691402412642916410706067834750019656478781267177955438692462526617192285228479210367971056265569658441043159697094760446674313038822853497825497878167668859440892152447291270884739303605933039934722559498873757406513685707663590535851824447196735767496626290708696742759868349792184255551642994589991449421216997455419216249805615922201010771770008347191180252246006000612931386391419943831511985781442406612019334411619510345589348858554964780456785350806254070373603681234880204223505777734558868268217650785499666476992930189138210514236882269735892411049823932456804459561562428897018447160750947557439792806318298531515224050502749051902712237297601599106475566917039590653078766969159568140743174461258712746251153593698079047073268662149893860293389899298377331564652792910932208634232457353284149698244459195019788397283164926377845781349117924201102619883524436169029526151145233745220639301228044085952215719269670057707778821613644300076102674383674199086359236813002390191316548137804204395262820039271560876192128036456603623305437110226840908670092362034205207901585900219962539289297137474820508172982072955869838967115570576292674695257307935127355526634686160197825403774790099148696873231683873158888017714761840196394409653088591739810703019801113253736710885472039996908456557566126498277062720710851563578114034018911102167544326411866876740235391209882604105296161427711439384769165228874023142991151774138946805466080617192224202906132120869994392907427709282415448331939173692729977771086128721836452109791415621227302095747510573506181759381013106604689165508521614447776482331270859386345414561782686060870617114699400603358889918279574474486670219316780942843535604439172455631485962095825772130766265783173878330319957919052426437521395136427571637766224637486528268324425732755006035886408592437470890025447961657788339040653704725959788088480091449864827827976998191318751850101513976458998924374022418151329794968244397685755774475677933995095728101359684783584364977725197866570357054531364377762667332496737715958694672007017724275338139830835040779395830606703106876860986478860690827818064024061056003397777026138155426504293048731233721860594954994911471513530982348757653983479403040606640439024991866703235705083962584489275784582755715233860487985904319741692131725424421479012988998734172756031725618170291780654187999230004429985642788770201027597253742070903004567359766172155160647178935355537077787431559791539100256811440800071262926194534762533206325486130281925338078474675512563297379676625211333842447213657100466544575900635499939028646963745701279238514407751278471647296958145577702310087780342218674604702252251382358573427756683815516260762473506281699481052402010483755297388612055569243291327831885645303514904146791922036260358543611793343892420652095458625384426632449514273532269398676663840415408212560158355815415210745806145840596866213307865248116541564600301785636039718325166849531629857842919054800634496629651896569620719349270335762995838523468587223058308969087717856689913177053305855947038574377155940670922481496476753098355674475868205597246540016316824099023213816730523750916765782378692196892214225206371392079475679064718870932392062194572036832234551361465707297701607409829642897245999479704470055850793460952983710693791725879963993688044439634348716457821155836635515144614084956608589863442127944721480700416455333704819768593198345287832201078677971337575743218776950971503502065673181770366088767040993544189820795376131190448217899647726087978762201323607957245295100471884201915543763795412015201733566142264183332531463242092497140230036298255063254690975334205157206511201860178378675487462685280459300097887286182093307947659019839323050616294675890644754907251182947200113741888133703294916702364006272266995732880732798209988459060400137405871550390745651157273898509560029872794547971017266542880946864245535707924299153035090993521332016614423239434695823114499100467927562477311722813897461069881577008506892415919270420103997806608387669973469846118955530090110235252430452140883254719958708048665939543141325975766169167535415788710096226316172777923184822029405359701600915395983812976299626537050016468771077363231849736265934152111684395368261327101239386450827518940272881818777913310196887628296874645480757411563438577055772127441325445085695467667524271427004303289959981118117802678648220297058744724793891391720232649626724566535864756326817051927746279258714362388811473588321421386664616730195252242018441198793901977135362297419468658780961653307969084368910781264031059956987930579148343502557387695658642438992652540185982710897204529423840934952122577157856019306281718487926823595248388378830430543665893945554137563602788290567479123341585322960793864632212850909878797560951513898821845500621572445602277096718382308308947777818966828508980059240973082372041247595252694110845956307855163519250560953418996626915173907349597141805026990180744655752177947495670943282866598403805039236958605726375695368387256889958505701364990949804757527220655415903647883859368857983760459615550821896887242282134876869540664643309368953135439625297935475997930098105126597632059341552672475012406165398920026540902225348767451265074848918893187054967248353163588695455310833294020371322936391427206054025591371584853470034199077490757761762607094654645553701931869106067916102944068795525142705679227864172682151238074375781044933618802048947363034015881635035596646023666095369243548131392647702124140753332297398314768108651103600006781316047087703624617100352633705754405734941039870031799053373361195834848692554687758252005801783457985852242738242604126369386843720492812597344278710208999498151134027800681335759347497865865624745191472725646718657396996009102257889554775395653911098304982042541373371408684439887991810279272458743561852706279599889686064774439853179017902622359155485130646470889913270683236433027286530600215477263984066004130522580050694547990956449020725526553723069289089944425728361277391696999116497962691767780913441919502848345664296884591037583132142230194409110763080623276948175258631870546420406749780434168374353076420305005543076888559571239561152900194934174973839337495485127245938827683750346160290356573487433644953417842599827414067157972507781718467387734980781318024270800968913938319405822696707177741934103768191622242514926589483233334386307726711002116037483115078426528483825814015176737095697079102534199245753598300175037958555379899389450580692652975917922410114610068386274119084211995944892901316924873436266886673487300334942861366809513103498744040749571527638488922786135376274612507284580848048412231057878430131536346103430907567773036424814702436129729064765586297530305830906959393562687405951571188781827862611555935503703169145084721367649010125951512268049727375944764841860467540440613221644489545369007772218516391990228236094902112735046854526743817258662315562016356695766008360417496656440119916448393193866320645882118296434910458560739865437916550296694818537084043555326162489221887186842152930872136960179421529245865659115789047761840687813395296548168167705640850458467879435706580937603104613482647584434087796894332192311646085858728213916386148915253182461985103115570850641220070933839903811209011791821749688596666222842979308068044185943128843291777149320216863696612555836625729136826837970641493689538011256878129529981505465083407830868572827291907536677703018190866883832771022052775559207784076203432379322942355120830997212628524013444730790423389088390211642209551742947471874657494396956793804488191148297280989956948311974340448948068875087197094853110093882459377917786931405933003302971048962642891044687574631515770903034359047884154989086750785169706426921873588267755729624050371987078949808243766863991919461281199538252514352366165243818964564936561687441130724633494956901261279454694380695082763075743600818748143196268899786348532416179281763759213874256166605472335411231339186404044878224542231455536340663188738702005919227355444946962709441021338015131837996371744715368800199584088808052239573506165340475082508530921434450230912394142453419061991674194748315119805763526568832719435696374018917576198316789932004417942857167019374755185241674190575693125092598494740171838869104917716797379109917146658448390856015372908231333304694740903388060254886839147014215776599363581413388333325807968184048314262937418110896507523272968465848781727812680956915958659642075609482006229885970602170573656182547994178497169643727251183444055675632397399215648230610904673339581667195363010449101574002226650624300873166775909425009416145538026827379391046755172456989046679112167759385169351686217366965362677657661734002570176147782361189214552831501402843440981825329560479081650613762003352720085442066462877535055751238109085339864234546518667850227098400858394351020158768551431638412111698602430511839970228948831939580816469496324503894429182987207078785916898842765635169963869426738379089804555947872815628539348522576201945294331456549241571630421654058391486256887982434275527698806184420822292908610938037667947689089697086515292498826947194765128410237227712456945624399331722213723207236751544531013049834857938350845641430345170500115297643290287548534656910906373744888120748973281900724209963151094591588776247719379349020207237344806397213858052057888421436647798350979532983200050065062727871748009731836061427472818317268146007611231543429158452300880746311611842713301220015507121561825188903709250943504857657026828779354098155226053298150579351101542448670459597782263524383397765637693941639470384436092922238578153379447574034349395481793605794627795607137981733901607812664258195925471206393959086241316413657616994316369060200151926033919689323596610396436395041731712429612125574286837279842781453829548370990888146294860001558429140291796803540829035305673489299433427779905437545153700086376298740669247181096174658835443219985748795472988253399510079431315680682464020655767265310998326408136847588042998424964519540599895239739652419389565794120190220988680135719042322308829944865418161760782799715743264767212874671884996453489692665741317052548970206991929306589209853310460561900000011397622172083953816791271513035765114121234335289022384187250605682152022299105718838334346049498954670250338685244361789614383024277174964850352566533442210178550274492779798384164970628723592093786147287790817956346973777065149739624071941462892199702573365688362534724440602373661094744560257672853544124634320298741659538624226184367615651618310194349402613609461111139032139222875826148688534084611674394458218673721343183131448730310075672028091173771583618378868988349562686203232211397528571405778274429137934938650964745110553316834666376224517314080896257969434129973141972272008571635805647628454148721678042892374325275647465558016104046382721769530211670795980836472287534700511859408044933718729510238169411102711759627270768940608549763430716641683417662157740316404585793679251807242550254982610862316377198426600346037874044411913167598790219178603742190644089681147654582016550350591393976628193352497992953567217618944803996201568572847860343316699128970940312625325611435014838268300955613051802655193911659171535140803091399638753405758173292846805494426083254859191866661952948486607368096156247028822742491635293864573880245957107682431328336508380729342128502967161227014232576063770937562617154144615357321279554423543892015703812735216487693689179982253721127055672562634266268931990458827824996253949203696481188726552897081711016526279067287290564788473058559589083002662729836568950162506425798558291755754860321508365535304604221922988540960339699216929420787971812390597696902634923416920274813736747317906118357485864048791004215984015313826181185428754901096551939050457200875002305551162176827265981285278281205896394242959272608587920001421169594694729763111441118030388112029263320461867085250595035310996731682129672429154599420255014646909157313304807538339511914366627889428561158761304733317071979968979985950194879244567244375768707937341242435506632138474708373272663891586801616756409999864266552607802290796609551855413790059708168179914369226737644605657514364040313467038584147802341282883379084987073215583646713741362996234583840029483721226289271500231824822329506534849140048194365257151099676845273546785898658705666655294962087203369679403210060785815137279506788170129458250370841524166951146488198996946188827484772544408628581249216829721049530916582231114816060429694544275192659663442484359842039959606115112600022198821592590947276748065313222782991850713206834599177794175349664664623957388202802099084266552525539831507836552609410864333867229673561613223861160725553999285180886525138870126208670035420052776831551004342008499403574057382199066094068146719817764337804728374716531943229777525004188532185047537706290758031352834614460791310180937442372012766118592759325874427589226251663684144321149552721164066351559772737535327389345508477334052624540743867508832122086707114962066587639363688466533642111633155476708037913966195148401154166045674224653506460379441260323462906742708280932692585229132983298587824685175195053249650681612233377781538175117512723933145418640200558885672042135046235910907287687941178261693407751077645132300824356241326930205910420212605091730304892643582466717421093257715223567907427396749023683303201096629977418947927972812473051908507404497225919521903171947690022033101126250717484128128425831820370142103072975579209254111603344176413883519374934105044879319269411414530315631791039468816551726604978876516352944001142056012228912101071865245878809552099212950927324698087356496319116127476305936800861900371034744068188929987941034851526275154178546846962755008351182674159367916839144431455121221824931978611429310986973647467465968458731414189993428235895006829655021573065449508871570273274118186457498325744093681120980632571432235531952068958135336829293636928340634772787577588138805569534303855027136264120395385638006327742225658554954810862543189867424293873591273733106228185148176220240946991414550631855219117466327270603228587011115227790186759584701206882461148875673038700554726324447838460286265225073344594419873812495430692826344216529137350886821606861793509407607178962485001363198304844262087418651204724303693728025230241268334735986910695041496353323581603415877723529303438193011433284925583031047701360623173172530077669488141767988765958218811218087129083291951760471729040932767900392436483430383104854060399615957849195440204104981269924636654245543116057199782199442883140347333545779559099759626924541829828986245185596903214217382654040667396345480788065248463831137577674149927367249200577458297871104128953086042611885009128899812756154134383146167364874941313788922167219038927960567062256981580043957115190946541248430310539862783986488912145951199373364372097359759014581210461362036821494962823127224091508055273895231763112576027884455041450942180984441714867786645966537405134157376320345333448642605364120081123456987846787542471813332293054767011521319837887884227130579467229851154528354213553588797659675695021875728669786631683174754893512785869823410795125614341692968485684935915093844791548475838151395462404892249898569777439449861169558049368277162134986991492876134149899602009535329897967964507890186953183981468265135184448282553025711525335375281515346762413536993251272357202211565691476446607766597221369828060162487849072900723509103723048739743334680475989433613549970327144820913663427377584731425349869523186128976843284929104244373804101463916707671131486798649664078432567045969019668846722010698006511225763813404109592226141517332039480965308388765052924105605407365659552431780730248405643031364113507026366086644752912936566616047236152255224023079990861896316329634568131734229840362464163753507583182915843403860920843011086326977937733629947911455459395262036259973445480333961192221420751622907917231220228008925888067309560823537827361550458436312801209875234470329515167560431670676103532882060642275935466155874017551432917634403289889831808351574283505582170408928122849255375848280468379879321253050142762001453903526007569841784126456175774794201407696611788501232655733040375740208529424636049165360406082582985502331401195888969201966320025247840123105935620447678846387142735301765597295807767295601550054614051469339149933784055023964496176108900909927240945571660517473374839772311117240208779838321644424556645017930606936173280115296769594323462217814582722113075337789751290439734898738676460187254198209424984347154855312064902626866075427732899873952630399558945767009792614402385386821238037563336524662998288282487432671110618872421295756248768808254392699652934563569630000658312922043642044231992607454929025250769050503536628549901246027746379664569236502179197763065974854002864746654668462186089808502567702134299941252981608022257638416406197253429640513419296553675976828500033114754539999496988457741130733536222268303065605776320781934883682048805668091473076303362310305188123759995898039180339049422761326106759516793042045849923484551490244836018366679835449446693351640439941191683568540714467440438505007460306684145856707948485255106986100021493006403035563582465334685098772764156109124790459953912632728155208931433595418347297133985151051953592575785846745963312618318943322468630285115622987621221858702234595944408200329604405732545276369661289179118934707040978384796785213020213945465623184653522879286336579737036218238141730146337336403442773648987767727529484605756512156817825053974516149748837169931960543511832128915668432425467546549844992995590028060355512205847379491119656099926583521644701158841871253178555147818146769960472493497543564054148362852935331860289557306985816553021654269149798763374307621986553394442857698207946782097503847962279482262081902234471122589140955651478944622531551327490849554735796246458998358490848890737617374020773029480576485232493794107689086329578312033838643124294957771791602013838782678579792782649696799207301757323937232460633197107582838855719275115309924431256956515986301186798230355709514514665513370933739973677031963324388490510449438654980239569196327164119917928252132157441177523823791125420033827554462486080818926949712186016144488715620676961253778201244854693064674249997120138598590696567524240742015836011045390443983009465354016414736811426443701764298286891355829044642709994748150538684400116392749074693942067635735714987198518278352417493301170488048922608405235363641768336999419804524930171311917055262354720632242571367630457711672443618340575297664761099458002141430998650879518338094438719125219743306322434356243045826132990103684989446467358128919841654025684502782717539200559480534121037498745204797534967617555978177429183442807989995777108593956129502477846237448008899378897280635429007228939835460386976818475209019438987271017909956458452408730895371212693219037725283331483357993310209280118931639107378449820375209660056038525398400466889725490178655702781383222684349830709276458239298987446122179748159406418439718901147555900124875860455085371122831793707423520232772186856730302791651280796693424119744831755804631542020929463569239594094279416300234660131097826666921189334694237269337605575803723716921680425052636794961564414468193951975873699556438113175778655022365248658953258250214144057508847805577256319696951389224609742754882692434276234101703284737206987101963273736431683536509976401234931509843190414579495673003155645906975085880466930945206535213893641128342205968441375655290758648716782686675356833936069896473070970621067911368765400163618091168644406017441624870456286097723005828701276627437627947804037895977877694211320859542248386624463119697153811494431121784623979969841573447874015954544487409439173302308822815082939300311561947130562866782203291207474481555624137259620627704080956042403232447568426203897009049473415491490335619258851398670836828564633064767874013522338309261592359368733928393913019987262045865423576272022288926949339652919404397799615474706231586678789758654998259437947282480772841871557251531322129569526002095591736608324820643657175625547549822479671062816298768960954010000517325413050052142596170717788432461061610977409209592772758294987266922240877684987895521789520648765723955916771513577773190208246264053714486991515295734369190293587063146463961997222232866216910230595081132082540323484761251702268557321809048512940913372262659435736914377502758887540369218377051679124050880972409774587465466773417756396290538575378697266667817895055106187915056774864354185403210016793718131792817138051465404204124052449647514343575450203014129014479364806358965047115015336413888689095160038162584181192706523882381904806097947798839557010375838239628235648755351009276319588899079233791886129663370871262779423978404902490378910755381422811657186401709767421450254743475781972797723024915305580203229460165251668388228018694289918429275231771949411406322421687565008450102635314754007492504955346535728178504269263629748107395194529564697980722863475437558820875478855361218475460454424436631893132780125750509083768131206537625093580665725276284015960499975838731647938778096261730226545239240349008049886949009409199027221350069964647751918229170643058467610133540870630364871390212985959024139562121831842232258221223990849725159713991991096647077271786489643378081880908978970428785386258063276805341530868215019326652400694596497207888468962639023964710691271592272183295476419482390248929278879228617098444680024733572405482520156805833537485585171502529121020157544902666794279009996506526196058500667740064057523175111944692175879460898995755440950554635195811357133696432748847626139005756970209611062810730044592529285792338196547516866121398057057321265380103872396181997196882246249138908652710124113744148444570864538445460730833785136524828605022499195592940927915951749676324956269912995176620895977543627151379195781275317456882830574723954083137273166693865742622815095207581113784886608613717161531398971951001280586449890765991651926272674230661028962816106767161748997202979891253965929143392746959307297199513694883810724927579066551520144819302645635912293549035692394576335617039469193552362603674961252549972804278977493231925244344541043300572321038376641629133268347055519185879331998036757754380997208555388145691585498059262870378975700474056508251381026064488138315620542373340779801529153200743504680245725221338919921149648922188822728219940660982180278919429340924033942081993678316772301880124224909566251265473244421549386584163416919584733221970851761268732221487376971443432877031782012591472233081742890688822418925571001706092949923471421459954515547920883653477783310903023888035106408623380998564223491964129481314186461211101215004955661965601701531610372911398211392555706709926582822318697692688900836582906475297203729043997713106689840320686903581063258289177980660286891600372467936804925376980980277083439363818563567665465271295228750481538449363979386964181864681574924645637964205860346712882131775975709431741631403642524135942050451087181360435364882631605577870824963757911966766100732882255679866707015294204656219600078508321955133363412879916980136350282715576724702985573224181716573652271294814822226108531338918812038736460414829047475604729417606375551886640350435763170178880799050631117913733005311475317377318617337791980138518183680992616266786248722708154750373354570144667647538563001526579496856587183441567103404134603517161522849185114410419393707380906521515574400964783710703967380366481364655561401357129294564445380056948039813763290369251391477122299287374660454047670852940827988712451637713583374190762968648403044926731390252458121093416807576655379074504415716027879413322183116808982074724401913573737431717937997587483097908458086506775410259914755616527327219626130834111462175165243471429519425074517540160204118815410369258104093671315367938858732859717890007218209088622828065137127340584934929542237133715387566415954086067441427809963872709642425283301082204759431018279753538252023488207463083719424170289602145324787912345859569293949790623879382568750785806276111022878932354626714313859796682664714051468503085758684832494639900698616160171814540235603993561164891812394559874197223287903857971626892589790719775868582824012719292140203105172454344313703047195816630883740579402459762659422540035437446339291382060887631125231237758123617847070268900243226295762181784838379534998286539578502373667151993709683398846793914482616388380183082611057269401701850094513073510527612763161201321639019738370829045149909228552797564837107969718016763515117778221096360158636269329238635890767744367271379127367978199637125020490077924972419069879038557446591937078278640308727428334324975689973187841279435227680588183419959934066184148107479946746130345660993435328894268477076617024204629293914575073626973238060013290762503619239102632971412802317756101778823451601821841171772973590615929935528937742665261316331916225923023578920092608604517473094906514960110519131034731029765487349858253127232561258079560639444639800260809227211855728520286015860174756537491014862975812185780327872030697049921570348307602710523417260661258896911289033343265951562155179412818776139996568886114950063518770608491193327297392394460741861380812146622979613551736082137664692565494652744648473234554079759368721725068158884746785196592096992068646554359408709026892642953371285481418080095800495670220197759147161684075936901799994397261046158118806223781841815786237016617385317127613972080511823261656598266981912961978176631850104752345617933417831365976962039394968827444587931238248555237973802221143377690745039627675598711592075808464633002847975662010640046599024810951005883043261344073822602944690559708140444678255484244850081522147598550977324682310770254751515569987284351971653676199724982353631553748528910981189111645119452362360726177283064505052239858270100149523629544411381281578046901114213720401115343983672008408334264230983918347720332880116239168993106207301476420251392331032351527368967455208677155674854982787671516542626286224893687730280001554112776538881483995731333950860366023321543081147061111158663352454245551337858598175439704906723588571618661202195921302116506883119060213501673977425721731640803861496521696317208579139276082890236767856501251318580946182247006704635393711649434724036583928733385069986102840920112360715877800595845910501741669597603633648220483213097915457670331983094476060353897850168129341621345735047558629318417974847393315788344121242495214151181543494232203916017216472556681871477278355743478225652733494914732221621777503336685453116419482628471339145350737663839498864955956438343425595904198674342381594902722835940904018228481063240988037329435841800405629596003505776451415043026409653047332840917557624534026455863624261158129514333753178662615390944871927671219831039118051604398367115304825562580336238627391745797889404594942355067700227821516423303464459049436601018412026542236448329087500538305875731397699164657301924109488428496867802589608711440252383926898579242281418725780495055606892828130584683872811510250085013001510599153517278391592813006988737414530317514274841421461119414533935148567975514267656036620632810206298886596718085700420880793298009909017901826351914248521367269465623136923433550412441448628313366694869613937249898937585613630365772343182787814439668471066015211859928306784845645556279405452235967655903376658285823659050311837962416284836570465843362583278990186296835303457945263511776705777685528801471732005727113560407361455766485368358510064767675720046062217015815117009486643643278069627944860632334275636396475094811028938513980775909336402346260201175296787012191756364553022884332107413306591080499304533073837340089941665062964375213232491878241433661343160293749982087216493717337376797186362165968147809106356953163420923071368134503620006062507458749258634174389264505699518608333949392174534764544309322786009203442763867334542993231840564043825339406717102996768269915874181925168206618008853504535022857025504417065337046427605676776196998935714915350252233554148946761501188176123837189569000821082789831167273206340044873962818929040209260025839465512810704870788248185124123011447435044094637777280262370251395858404831827449003376856239711430572425309794744335533671005720514008448105202849348437406062509262287893586089395277155551763755784566034249666346415693327828258411076905652756213328045393413194402596802124128865952973210595347990710491289295501297360424357282915110237815284063432459720380362024544682066412201648243782160756496524668236331574843901752797281757344279121262009555730654372877441304096012944641897943980363132172718132100745799048722999627404037765925508996874137704249353877077465075944184064483194516794083511896021541237285693219489621181359900387590173966565727676660877722134176558768442545004587258645934959014485768864346836709054701795958882979184238584106470576793185967280307655786782824932461264881503020883914952189951939912889217012341264886742072459092637199489818753270091705682908341789262219415431536518596756487530824481993626659782728447180081128944025468643495085570877267451541862097977081794278633808560284697633903439630394171997291809012423177405396464771054904733638505435896835864944069027497661406147226148702983042988311924879749140821646237121015747391592379745833171519099247714145250522315960643370052620770956834648664461086506623378276684259636976604455060604482609836619632457360686645586519735891986218278833868588370611454332520246796429473902493902711828971452440797319339804740314470522722392685071085026289503747281947028113182280964182582385901783560207856623625038400586343890618466735389502878381013847033554603038510939779265637834374534738723312537239585748295779682510388422552520235720693660568440696944277523261408114531105372870682280440651168341747720575789692455078848496176561030020062919401723634640553960759199788859382428044814157565355689587784163879034949519652724634571922294643386238665858314962744696337910103833084958141137745545375012463428673291259521759321037983583783342064940291114367478396401840859631744415454174502063658579642250651420344223540945101848897849136161731040494228555693898855555069757905699670935651883274136693773699088003414934189074627133753963227546901031709616050093818755945076294782324142900333882585478211846824466844923465446026778737995471903406107483895102579579498329741678627585348073640112145955757794066889217770452871906834704201071428668387217288121810230963154797027901807248085884067489621410276310453033264642895524383252383777619070829122730768757994244704707206808671316104537898531088356873083465029541876692757108060861087099959702537676443619436825018827868543938739725848169991602793872175057733035381796228246988304135236108217962654656468812677454816385417316746441763944288955724202360414723803870275322991351684959213619326231676937776039914436868431134204630844776399436782804963254728806419182550972581630998686126936656614509651167805041871316491206982587148677897308653434078871399207736898341200111405717540930469193239026035341448211464008707930505606951218257659312616273707456690722843972118414055066939910608678973716260794880178506057749521369341176122557513992492723044615033510672019473412275972637434384350045261317435781806760540441836687774065454935564478063234746877084500897189523884132012741614519780873875118244095105765985415952130292821212023238980373915993567361873462147112787684545127019104322675661083543310018445735329386057643020107756125631357295585205611019656608021372797951701880923724999256170121448414540753441730867685222278582817808863836962666182484554433300960266921699072592173913155299875980941288469467155798719514044704712711881510632822669977565396145910316391968505706012650765997413876879153928582921705083753624469504911428444520794660899653912873046378853132665283131517359158377475977525200235602163864670806571856681980440819970785382255466036891514978839189331863658432789815377057784981264341845989977911737532460103090122422718979071293659473201170136997693918357685010961498681725969011579368404194411414731567961750452449364881082804892842024252133649203124719624416460338545778533187493251136483056157482463572115998804136538442641771758148274257067836363164131887282621233415079074517543155725502443093950765623883455498209220400077501268373167659896373541063560621097493722846902372080186159124164988420652332204870632432610704113957532134528779772521654209864624476554628092656893790129961655726686710249134239517553090145030272389129570443232538055481774865451116287825158341111824783294426854120529693128058850473682129407727718014726749415893444627557833688464694518583065756954801129385739612275214602092767893695532089513000292740685470124568473033331509571967120781072147255162475706226798231673328818657411214008946837133573450041994063972472833439789305014079460296942307339590886118532481725099506353021443515441157634134374095406092656575955447175807077267150377996492671613307479795478733529219162116944903915381966775386307300083755121479981065226372776420932760503672565361270906570744501800629165473323018950377835147078397112760813369664599649027663115535805589228820710363725391831887623495544925621044229967488371684435821671956156636999396151399252212228348134280838422333374432333363130978405834261939193944515295939958080942734936913248366500568013284544494858342301776539435964241984920641060049950965855613726344679152815559067353514948268945652344363522328440722234078244883095455546696388254069120464515776673179977283006823423732745094322219878183492206522849881714547504002074361143153156510190779909770957945774954519535349615770556777192002959250090972371579732262642254925553282392320738067281001585004149362071308592872841410417460291756236234625855486005401372995819254760165816948725019040051299464888623126953070474850926396008555210639684954024832857688095180385523510166378195013799230620513345818485213946649742009010479558220575640572663931055340027329201123245963902690288253019462865634631720133717138465288397115973268529114598983819615691821232656631725841354345243288803768511671377840579059925258701584576404693674065360739188071398397580717744475363428245246375488665809161335801114494945089454485820458363362984490914072003755997695978358279230007898396305841868434280446825202373386963862598984991112770957896312592002882769839090447964853500567520737512821480227937024776021161170563990464375844364374323190456524890278466093059421245232633231700581924190830676901560238542048168828334256322592284662872461308802470013989249769907469025680931712406565672591631816813994905699943195687496884246801284433563531543840563823020306798526109765344698154904738709889072542456332658127807989511227139726176697156152154166520328678039081521349245305232009870173376847908045658175749755741543984390281523889591513442246413157238646240348935386514814750152279871014941294149747671658833470413665085312984240002517746132141609501312595181859982751537570288132463622635931069710941594830115012989977674446029266905240921497568677273026675389439940737431260885297350329770141730987719980496721513299583835451087851205689714780127003478948069050748757753053186730929179144984925561208786032016404306797398315534373376414871126657988425119105612535802340695977843355859299754495867536455684858347558391580238146030914904508109686099261517836218193655036065687847765195582241610264229630002171750625380205796660910515444835963370811676549075309446875626589864306758881691448109364172575297074674363422088590653245681848033896450240996571340453559955286742293338310111102833548988728712730834757465850773369390405576645224691372240252366237311745018901753158064015735238244908145293171725612719397354360538929401285332937148999055828535987551382107099618061171218270597065986954305600899532380881886264020466639113832612966137953869453587938069181543494674505859305933064550198337938601004345416732335385866537412376455455502087724254149180088581879094196680518766522653458058830987846571296131836367937800758026436867460378377536137390436377237680535401817274840372139376750903469873293550238729183742900341133608516863073445200607963171134042285203897072423642869571628773747946763545238306667506871668508805937274338732938533266825572917647470128433311688369446289394847477457194560396891271203091995716156262551552810459235530554409361831606802237495441730696925211264986137597088499823348055946069306539141101889257429067337210005218181933447128167032383670823653927402299508591578699773008944079402426384344806535811278317920741598860504412730098815278075648290044012678467327934819477196842137616842967172578101128539333680568238702241132358336171025884868945330188784239778427187227654762290047535842880139324767626214115473708411757566418350918958414075820225545648157856993750607868125395925833741005339460973137499389072964524074983843009993275770638336788892230318029992842889833457390863798510678185640698337461174301115919011703492862502821250742623946061787881029593396769177037577832386927125043547414205479653628103330900190969714611597486094524352584805928624977610571352121084693666099822283212138226966100667500466597772678804830248120420986651513757453987826965383042763181179965973027605238637468029757188205751117979659318418366850606965595182371526602890705088407771120842406979802350760878012233852513932274720947273446754448557325157541574003230645993021671673852878068680128207804252030090856992683181727378740957531656825284690760081419546639685346426779034833550029977434313949110897676130071534390876618994869056908231601866444163908900523415049865465915038882989505391203886632400525995053992849762532951148336296654357358326572624820684961126834029509159837317306435687311862049953451041839711653442027239337641376371020337822248996130395195949671612749305708151523866747802280581074898939226980616023552519520903744372115046214769498243927242888776171950651405062807139304896537459869753263395901587997462481503369169593987455751928608989580449823676120952759717412156732552753843858856015283553073698744263417685172042648415557783131741436124202319318251509628452038803047619324563741346313303145849315020610732144735926871227888515363107816950932355930472862983095795991425110231361164571776830956145683361034234062356913859474403660471993491138145692212396846766175422488749520939966979544937099260932506929799123943064063413736183338373354672685828975598483694737887185666281326635457401881149627171692702867811158031532013060995710179023501632077148564806268824736150637115731597513581607518265397545035425851715372520778406784303824757024032540367053620635418990035241647695843590825376704693120964030992872015079326641799491972183911654554605772953655794824241466616873277524325457260592930359629273262051458670923117629099313246321511184658514431935315375096721406700308143289750770921910536144347309236100342581427586432944372634235037696197940229139063512296171244817713492289596981848787404885092006956272504190406894785309404041102626410066273881259588053407753179158494589981894195429795965508504812099887000491503075478307286048066359106727688226302556228317437608079073043675228921335143400090509605311825175597292690532532909312199430903709160933120490445502989466164355524547235727860953331502419223249062420927557727888812758312278696614261719798853414848775820190070236939654015531871961775146389800537598360340736995035419571989178428724629496012526085265298066783774662737278655406819939374016971669516102284784062702296578369092156432788519443955852633987961018265064572531287532027634338579770162764465979925203471121435396351371517391549223636827470066694729057493652356665501752319236061894889038845192116175364015782881097800227029312219214321337404724393999760251113645624377912654276041149926758547159656469164001613179717457577208252214222134817437187494103107488727215498619413586234173983193623664130863185767617542533186196824738490710843960098425361986654270076874500149226126421125828266558567104368069636340898660890065206263527516415431923422535689952965967229909729206244015461656679063343799685209629367943685169213760599770824554742832793863451347906554516626025658312336692209504348094848979961240464021223010741885210609671916208396065835918402297461452619746285102483253915978194027402744535600893961475951624833203947757937202339455229460213025679213189264329892868610065819246435930037816613535376637361319211418095341414603174947858673806893888208915315884765343468883413804148040462468556925287310893136379268712915263606713005925199595789952338682146195398527451177410126629874670655412878303413687177805400873842993482570384243864183696161300263816040298183847392634048825066232222473535621138098804812297696302428011344310180828761588834038198210184532347019389183473605171541667851458973869461935174481969612007850641594462068059603577220552529857802971018759826991243779695144928818744754456884071365200792824825393697156330411465214984360743619320308208249674913473290377124702650848233018496147884613651842306235668988912925250308422765379949415279671568062894762078781476491297240701503751821579986782219361399195287644388818788855215872172185181878033077190723798746274380769646499087017135771056205600283726725045176086376902472963419980259078338839513860205896761883926645417012231820028392474073142814449437871951153297654183278361108693065863370873546354124844105317515871972794510227153923360551496998061236747129912037885655839962823075034441076219141005192752018019557998177675139569906084195106928007998427626494531683716367036270282224199532243944727802565293421393985920084502407302711535727950396304824906939581774875293030366723312929978681732431829110716005638049770056607658040416521770231888666616149956656974577883784815624060079822153817979879773506439726598462919164124524072585677064019225445063727402414221594329962821956460542637261407097534583029389337960845151700994724896945829475524924812933005279022700785688068884000396155520120538269712245031146288020160678060199910386604748181153511407921234195978899406100454483162410316513603012459478086364063402828934298981874250658976744602244206918694331419601278092594616172143807822111108574521212245077483403875167296343209898483366786435433375049620606264453657556226087910144889932021175448533791529478882609971152262541196174990415200487990167166967122452051093787479081373206365108273947218794281325902789397627828388371120151490512106826930642916114476082085278506742998476330146433937768952807416445972272083040616406019139501703945763657010564271733267357520429191048849121339522883818063029462237595265298297973313518077567973865473799905362056032074187775040778448271273503642639768219937387957065932756774830380886339642091370697173463758722677611738993560891300572151151818296009332270630045607606099509687495891202098671174129369516135805383268084805991191642006592799036269671322861909866515656663398314309727952221914444419191713060448784053798852367469854589071703730486373518906605767787431934386734697532582193848142537567833430439260013242290232669045786057581126001367395987706799590955723217257122717670933901810838240544039728252829957257861410288360800269644262526660892067512111211648901669955620211847450388791003983282229028089331316702750331899848438104384646494917670673932655031788691072897735745622248789949341675232292676115171926706319905128348623667852654306824702433687767836999294238847078870028909813916940531654841972671587035267306601272364940210495243509920203761105700274319130725465108858172627163801395722868957927101322811360074484701107773805576224811480058429566273270328892811194929274220660040762974304428112289822699331178945197668202128990692066106769593748561399598216000656363792365312922039431915949538704562365301657111919080181237631764630506848306476726377212787676683365560196226396623494415033035642826682727398156708359807110475735432072958508918201569163823873618428464327478034068042766632994824001095466242112912712262601570462382954193699921708329841396378538933583960107470699635668398005888406480452155973441033706388939432128182735485577189962191630369316007563145380741263008172976304507908528122680396188139530039183498437366212612425325694040076026849239922293359165744454737468929137574368853388309042270649949492389207247787756713580286738056107293174287509465214072394282543538562310328029388413963402150123944661131250179027725354256172746625205094317641180512909058424159436255935956872736913395176488576208765125675948143244719859616853261627645970340013106662099348244876549880549405603563783208871825731306036681962018062619144000485559980700898264889328522776624333273779919676329741933961093781260966839724510653845813078961906186847938660901825141170149764690650560128443081844906743048130752011286962737028643540853784556723452625678619404540250497520131685987389215189589628053887835819167141669512236931458428446182526225143838822480202340527607087522920182654716677750900470658818023691365213059131352083647981298053454321459127061035112991000669266285093860868713508515915255884240755225692664557115919190950143388431739338893175920320727180752102814282449410716080168033477866291717853739977071933091315874931458378705284203347332810376369889434684564036130594809440033034065926656158700100479081542257898237868806793632869499620787641503394250495260399499555088689988100287580391525192968383930709746178627634054394892522679031827180225159407913626550027696562852411204770620014039955503920914031499312494269873451833506907412886044872669308206447814192703006180938528830476583251931772506260841483943158367795587768390397394813913721942753999425546995749232284208488051729857394847547840581377268545490703797271400168518626583027462404844458631440624289940679272584802162473911844308163051771047838807270784418786105105325775946018488000785649455208620051228946864761308172860021019779850760314800146379943280117285254035223802466221724178510732308195209851825405985044806244037959833381756063559840472648360302515122963689723537232079013367318365438554047923664468273844304571300588857991510059880680762145968802157568547261434265906684883962937856391711795026368245904923959239469019085894262949252714909832466397994266415578299219661079176027616652447408366293814881462058294698658096671160705626455351525637816128560429462340368289366780453928603841218863322712542892753269823078012135860174029026865438544333541113695367338748980076055662212807655678768228642778859457801596569684874967181930161774307529419058512007867452154249234328532509810252009886092524120344598221131773625835614130316989993648515385967165703654987899037205107471380608221265395623654933084633364717209630282006828766908310507364535103649412662065258075982804374221204390643078067558370741278728709063539451204739063980902163906914472134651134140725698485082857476362079761089042193556364422495557925054145886545194775386532948189916572212952353780249961590990620405160532291362523721421277407769829849678155091483952011570581644450653852105859883144517536149064750613197887791442516492144553134621876471862019155489178873072909973423190868077791271619718503493032501148723175369003928672987489450397494832153513560296727912498761043417891422751608923198303552200289658322806996331609791248877484895343538434237911111746688318292982331301601116975337977996433863477318284727335275542982394862407719573742576893850177253121285604264710121908734029411929514075112667456414202841313981418605006818870281729475077009488944973390881970280133820499237016387631850991591784442209674480440681333804618170292302046269341587359481236918768805001895371967782925087218000380750545531608783419866031722944414229681148225615502341222812838771258604687198346581340447274589301372356499606223605840315881850110513108158160636812744805958999432672041962665500471180272849763376448864416172193993876016084597465605392200041558117997096801385094668895803365619927737810142505718579003037845351113578521362199668896911747356483398098496028743527918051459595874544575871966251701299534907819547055191584090022438417602206579555176559265480492320306882813972921089247489750659782887060870138064058215467518797441277721078619471161127663397662318749821203146939499202103945160951396684276820008153010880472179854648198532587755256637638590952384063267087013942972070579342116048700404117883213270164601641721438394063694225917024049346086099831706508139353174499270423854377940173811812348132986684554126908420287750123258750265795602041434435305507175934877863427501424978983730529189701085083501056903507500081083262964364253658522350790561594740635994235918621663667089278422356137560863614830219284273505538768244879835332514504510647521954464545668713777121815980147577992481429780024634892197190698736811750279246153189862336953218381976829105909323308404483759683800753247138098887082700536975447537212890893101738748098468146400791703078654572222967052674742653725665381821040316335004483004599281007090607956752902983558712875922599485362748584254625070716120876804314088473214514935045559485466587381903872665132854777377987952063677236151228147057211343133857870935296067009556664159763637107487667687902308707878902178666351249149243674794740179376608092150721796707384766317912275267662200039562690982201072673641818703078918460382818602783225853535984840608143029058106837312565150929843566967001003787769323059173872065896833699344855487398781170966507694304069623112297441226045776731358827890285332917562720168813138731219585625388931571377686703506262367652701817020273987098405270614296769350326365210493244730919031284152204875262064145229349261034729671089427572473887183071326573606276516044523172554427736837870175024903309070540489297594339111350241181420416051439349349952474164002368155228713296154562139911407800436565717065662906585781950890520732906962591139282833082165061708264512830441868005221750664522619958353380512192659646774901478712007485655916191278728490250785984613458760111013842191381523416859771605000325156337959180622170116798686025031298413198455780363051850652752632554413346786164537889227447888099805131194024866770797278863125840795773040611401458408169578958297409776203282581027147689721544432622075417474197753396782429255321106315168396513855327698724735308803838902028742337442555075989453779575990686635563725580918144038514248852400665146909543846770932217952427196117790796022506182604464874840656306883881748267264680756725459014907588961078002276975399205642276038697811190513380057153646626617277835441657456618782854012421260631155431062623311316746636989088674896723330242813241777446252626311837944374392301973905193191493212187743044837903538139627358006436652768910383556886693922177828852872538157132393769826454975985110189509161692091928451778705631404697450509243203107907360404239986629444028505639454126456031041329482260491765726209040607690735654245555866925879138531773002990716131267052684361384967942185294487626652563164265802072200436790421086549502386139182711936527342295822606082305175539240667604176872767188128738035470488720403033219982885719018707440557817303379775464398176190208034489663670362387103565708439666979133838083863594607954820015500664004557980735351911923515173589852149575575631365140880518727962277905285022854804374708802674216911018184552494247449264311531469707212222533378619663150609447593260970948188077808947690770672181649018954002621917606686555512865769094549312460787068437178601843069073235109595379980794427391699580531272129764605213719209599613313978538674454174447589327531771401882657605001906703292659632711715724152346236279075605720658643127901901398952960901106065255544804085624160325827004938010785119021406383171330613078942572173730108479283294462601071269931354097608952275907533002563253575739461849184744854030142075858585761127851395020698096360267586214778356640908257081819044727597296798161528961031218929299842536140630831204518710093023517542904682191312253030958450100152026041432174233137635329710592252360421182660172481501161500123669738521307512005714657702573756058163069404119630837031369810426893584599078469021110175305383202902349966720310195045662479839284287465649784658730329912661776904009468636946346551119890901476138411669975652663264289307452524651071741094550870230114995167148187739280869938541682033211674905494471826726327847157516053474921814380031031931334011687263428726350326128588577515308524505485857627743905848858696504620099775281690306305794628843652321615741596956741772863639778470230584078236077051369118191170030596023216114176871032295333589900275577894191661014137431404994334866124512967123995851475017106350447067041414398709916381737165394217988693099299978506816614932730300221343120416148149361828359802354339588282555287293376212682965609870543587847242168837650821048239591071723902433615198008663953271040957904392445978494733013019425669861431487184360930315442311810425914354363533586654491371038926107706234488984741504490735885809397318232320502822027840512740478096686856361005303357410385390654276293499727252031633144829636937264924262901218146910035581372144685685637597530332263422939627311925667590842077550499089334495933723295298725789307921661375538952499468332065006997800076793676219355417322620921716986590004890274692558996899774264322702685119976222887290153336686900834690807180546252619732335609531819627868039926078525379703228854440571289665513950119239207403324586200789425397132946949460019449435461233725091628768999530892541024351695968608877814661576247858163258255544129712596717665864687602972331293863224819369760894830366747364302235820115098887764454791128385302229925890654899639782106914235455148341848501469201618748851011797300830674828048377670628805165764774413593241215140424308985642903762856593632113651439671553033810304027092600224879617483428442381151983516121530787855946151772615420935075680292101398424944285948755252713541033535090318580383879890626792701985770276539561867404778182320400677534099693473274531314171517466194168004633789087441961687621102628493785569241216177217794322805626661527620259007003098594470774023481560513989306099919435856185699374912794014727968184763225330790946658005529535727786019269371299098273108925115237377801568702159174183019939576285508488001127145677931961060462473285937930101909776622854855583883443770477189110517890829998354241648260803871420112081461238563608276867021097030049206287636327381105787849992082506876208627687472177191874119796798993535284240825643578331273408461076076457834799488077759232985105270175169096996177005852895564268367875401434421932417275528071912435307671432533095828037390580706582752679779774832256533653342447748874663130202032127771383304466622226924513911580201699531672351615390033911685010637116303728641861945819974308321203570397946627035758055872629692632728573687974416477611187819728636729666140681435470149632454585854383397364854876154138112305112953888416953221706959071049430755382945477702883356973601447365871385765822423713858799845005841765920205313947091165602388708752008179840551670116883267646200253712420140155149287099252926976382085754964675382338021891490334769099670927118530829470496438195294605837951373230025829911378655907915423085041181130765326530945661710533989305243071420619826396863713675523840626283756566577338479722782205902236391541957396137917533434822614659827878754217653995532537574202471687527745241787224295950401479432217085907234856094607964592056788283942184666614418651554959262254705548889364699717441784322434629777995542220542078890185004968978444028334291582752025297230238385462008210978788919799979856114199772139795243652465452114358083810232642503249954626355535022257796774161190752078332129903032938965759383535314107334182772337942158430616392398846551323942676354226933557783988652942581678734332796119828605029835953707352820733640527966077386142298212116947921549703568579760343553102304374188306535728458618562941289194845766088218265284528782646328188401091921817576966956962372991756325894916723947301868565429395987113524871977555634658289347405898708184946826576800915291492220151305948632202618646538794890208901492887731236232525799664766676110873039683395909427802030721709731252479232412509366517320778405547537707955455885386567288036364804689061946839278167056022917671340583574735618778238612755964645723367916889527501698822997802373460552340235723041852751993726294040570984257734655462722433304735088532299079925828517787696591259980808854984066645509839587389294456311888453428981571609072990006860934742664740086795895675016336888550938534158307595700856396355643601984336998494660323494590680593147672598505783115472285256088199487768354269035115017557253740461312891548347943618181819809645859543165701768622551564552181723206626291280677726142326044106754020880710218348335938213658955953491419043513699352789867478214952874026726615471092815466955906816983602129199123991056868647731143439584034831268325650245018982161341480825514761257464588976926208134692270909090012108270845813799799545687269224049927048151036750551071605930757601183259878418074879544225538198472092600169612176326376737291722914181881165655257529175372946460508172545836050230062105098311686628953903634705957346533925762093199748541788489562973430807394661266663017200981318377901036441667228213378305774670364963128556127611966959187721532165398916911970742435801265005557831692685076894692355540020150132478535447727086989692998451203762709678624716743401053437562834688012580472550666944597511343003113668818762926498357640431862741313421889081913835305371515433135761227523443853873073681876937447225348091381758884172070223255468357567823129254715299171697155092187702831194215095580299761720602921551791372202936099483904385593988320731021555413173838613422243609649254281829452358282375917421225003756199331740788749994592697464960306180010258123026760321136340819210482916445954233710949183613096357782550168325006603243419008581598262216582396592049131940602668735092421117210522114954615218582371367396498499699259743153716049636607285584957677145830176297845094750173786279006787186897233526607155174380268482604528587422032018946708073702318979422069238513065545612788790950703338061450944160172150029565600627640095780201135446767540761776251287073605084188788750805189230003127731711626799923643461591885402952482801220327549651024702191630303767897088757578194931071429684665879192130098391996022357786678606889511802949601984672176489381886088454597571539053385594765276267165960840902833898056915201613256554350675975415736618947085315946691681386446978354509250007662481570628863039727631727923453264936061577597873528443887423061155202980619620066760774418178169369075849754525103069994175987700526405740172580454481199487055073737509646100741566374941636072956404545580074018274514794294338226965774186326930941501616801607030270899652273677902064193705041134978261257345864954676190421384330259465875991511022030273162596983736899446117686171042661104414815111237268966101523490705424638466772746211956575265540813268264894958394589940914230136543219455012503863173158973465952104208074289968847823266595904691957518597892191986277444187437496138134146100047872262837556014164378241444681475417288023832067378381557162026307093198429289759676556961920873899846388286769339739463981940091981660314262847224362210128090067564184465750010833146355152850769319676613158410257265374515111436571862431436853495063213417590582286058017990311588594821582470130072252620905684274378445135210742643365796560862372469728609669662025482229245968847051105615636591587772984251373948718995376996875689185358928509198937974820377562325849068725176642119056583124417933899568564857154016096959624603248419868831900239400228548943473101714203627219959642788081313718340061114496951343886646253610707340912678773741506180792249617858813045058185143837844682509943156534206313437091713898743359624309959490062424932943836351902063817541462823715015774712942175243960501823231101984497945493825356297940357876033950642468607726858530875488635457940503801705652222823074712521593489552624954920345344283102870022824942427570700387826715438077797797958425068259162645866617744616094072124537858378276452932423889431012456855897816895235939912739601773577567587599796163310645863688640423559402242662232392413024003678556125030602609130101718537504853134671159259003592500529860855266439344816106357527938145466926073334537837529165330260305751281623297911828344533886841025665085535927782220741480402434456683038467925359246513365281554189260410004663049795477811531772906385557487228361113666293342042142747935681891342986021665618741704189327667527266723967762664189792725599790531388004511764516815500941791804455634951292024039971240913798680966691558363385368525303744025932916937513187703029278596527649705434433040416561760850097204236394367759518162352496888819028975132744482286903887014912885331544549636694644859051179813327502497879018855741834072449204711547338538017891073908335596300663130263199123115625236646716066819310485765693511197609300987106349673545334923001332807653913744818677006505791789746618373452517979508038793440753579342453035406124310663688339396768897813739613090759533229429353449975929021048953586492410307089573474167011631100294321755270206388000027291664271476951972863232066391717087484933448800561785662172624070751908828000488378436439386187605332942123984297072874485921571165024580896662252594891565379156075418316710155063321487995759297290286598801897454062470492535661488806504734134706731987567826458639520102976820670983515608344534645429503141929311397598985322098434426219724742421264196240790305450727774237635317063873032871963252310572792186889563573315098440239322973406915061691742767765308269051290440730028144787815559896854345249798087342145564805272163634849827976236476105595375250598773540851402733961013609479405674953056045399652060627561231710486722427188313307118481496585393398388073308750795942565239112163086567275469993862163317372147179891286928012421067441961415444024228940840569522208584428368940712626416552233179752983080316760514967455470442370455186019978932656710945228029288711027380499774847278459962052291434551340498916454501534588178179874874066802420889902595028396662611174468099396170443352874781227863845098836551192495876266595815641075544179751800632824702859358041748390864663142723082275791198179352805529408830335090653682083273646452854870925540626009982499635612056074035445235265361863739288539522314550581847266929855124474968584196440422002877632167428358241506085961140511206956402620339399152489428427234400300585873929649191285112251263683048190583884824510593886700600661117979074668982672452035274499860094452791494438030571852261529051020488843983886676366878775753040484809383100995567269698191342410862447927278549012509318607729640567896616459111209850907002297751825432382428550216361323843375706509066865877772754824781268235012073830630387759675275153936999935031261301072228821089499537395439819956886947326883950142527883189486709183654298159285393072026574047916838183533875812787590202485155919528358734252582667404558546208647223304013248525440813126136844767026684113691251639351441307115816320249355650477843206057633941845675556778643097344807076733756873611667810748968698742730230437953432921891902921419148931926356067706554963621866864368871332295350204226080347848417223261531541036800597211922675365697316379490938370913541347527782648709771979235119585546030746334024138135884212310399128253845551017905707220857820625698209088745335305685869128225139001446715757203703774400050605100100400010535027327352072336173154948702834747522379400293032580788126209981801530731698258919027652762986918063520497525776603809968477340910023260284142592211690173453659598391733000319490258427951794138139631725233618649798176602015887446958403154559820277924387628971168778004778171603747513762664192059669606513766095864905118494928326741059917337231937243991385083783604323106397162371781793308595559599584328686502662865408510474521303573167207443039046441049231353205603615942627037204654973711100348840764244238158967124272858625381797064490264643755004824524322728250238088325313919801249711391408517224538126275352853381418691130711938761493964281657397973420039382008699347663141174355883684739220122834620448882088893209571060070142804397326540172167711726424815811440532709766350913515528049878031947709260147356990347714221528947623999167516210897582588236993688657039247051747738887491831942457993953740328594830508203754436888710170130714311307651237827586248701411399579140987804015230313627233318831540627263901399359341363976358275903128628704744076923272639724833766559331413819406681338944466229695115422255298387228049770331821175939572748842924170564441418398783414216814681792198512254741346904398531636825314236725884835002006306256189167042425731935771367231921806064065139949133601432602384729987429283162012120286235502650545407807149042098474671892138056041544650690360564186139191121193086042153864848117775626765318525759647748243918586036910827943600085651674653774988072765805986073680295286068189229796283829795591182151098375855274886237537264228647797524146386861956173288665170960002908931218123985805623852264068099784955790983065212949130913758217608859670460844819024794060207995292572551228006847909125537263497564549536378608088434872530295086032878651190021077001118657853327950392086862450062982001507377164154848887159059519560404893299117904415279496694778452481916023009862915856938100557718842305104223359796212269914785869623151503265149978218030670380748579450544379535284012245729783497103659339919620085766977845622455269169928135949458814641143323502263922707251381261428664788860045352248318793472647761729757202348234743347070740133833512565830612942823681348293978590275246573365901102177248826886714791968007638293282519867088687129204020793925709679598577561448951701837465495417228705337082083693942632238252001502169977652278584411057941317865649749869357109230643621873013580286637163476542330395516276875881206251999654459539399496120106990399413411179838824696696349156744086055876633417285798696824676714613030635972739437106116552584405063402086199807440380181992999613845665679805881761034340702993319057942749567765073443069789272833862384547865561100448122571172052109583122433997512317347662057246600698914703972106397829673416647608500748099041502920921498637476463544331946027331272955091791689135381678472170116797568179687970334122526042486870973677008877532795149034804053228294387505624497238916312816099501695929922110364897609508419604558438314633958031240974224667320106548353268343520134978229953082882389098241610776669333015773250377591829562286354262142829149738220796335707768652686683683974912766489471961260874185118540324715664090666417099066466145490622556328983106059291566433601954426565671851234682423560441555527179465945822317872974260472484577604943751785779293109402281648222678220245753568514934128368982867580990191851256947099500697749639466078424618616427355086365665225228675982613054498926497633397518660275628034381349732185951223246699350867919346535752979297237958936783682814857783501096168673603920421776815218017663336041997437645109036171148169731098162451986255976163198051190679507227875425812349065219269627458238532770876255864044142883187773555763390211564643058952801802518290215371017294968351472943287456638930941066156502523403952032674274661266641148657072434608248848441069382387776303460485185354435558541242729098472638258340490208757158001356352985891920717390844567117551461656940303263111095323618806404460749429603040095295637110436296013594399943966102535836563619934000608890864705841470651708327447312872620099054348076945710936995637156007891098884648108492743613887254070689233845482110579710843151266348245750318086402497570382678098105190356049919319240779755043667492558075547521173031691858877642067244819151177685983729324238425239663243047216814814102138284101477420179445061144712690583596554420058499260895934875526616802582765976691397701023816098842105172563057222448255825272624842113082489252841481957016852045269036739927087839281392266604623407618177730589695887918914576602813491439034587452568224212632689394678796096672669657643300277759115336556558270693071317002640420466807349368622846988849768663336726980178207371437660857382856570073499586004888561879470504179995369921652644401993905290932601259517775796030783540475473216086396006675447265127332121015765850490977360513928151355756348996817787575553915404161994333426155344737513339816535218529649881590526793268245368454926457268904298001248177851523913381613731360094371523914400454060776732049826791363219699812924685696405417196209037788330502984838479343742298859620925160027942259459747863748716457858479157891202632085516021355240628614641354230424313445473571556421535981800452158614101913317871103586653858947735514985094524195525632208715438947593567926832071079243631399508948892479001758195824928874028518743588804665146484294728120131354361374946686690043021309622164387979504149492876865426703698752049680523059090463348399149277798035930577555632730641381815264727385041994477929482234140080772478495608028271517592920319989671227349965117780910709652815581359121843683147162195407838557410470736508184967975494147450737114940689568091926263301625596365984016345460247422998492544897558741111109884196618177677053128585671412219876480830432126804042889807397377435371274377349628085005013315379199653018825649154906798141412257547258095791278923261542702310648840541780909433149560794197186420209004378529548696748964886383117188024239598859510068005677583478602986879165923368297639434246311623153486985553281499899540529471249846400881489628374898120257867142838227932165020704064605876388388351689681637830254046758463589157738577931230434178341477957921515388047709635842448984076517419671011723730257117432579903417379961664301668765804279724032526136879683890132104288015558325902284025760566618056102390157635192445729380739095375930257139410415588047176480884406504159695264181708264379886154951549163900266857287745437899872596156890262775497375294034149052001942237274296533113022393044843338558931375592316229124900997066597627448321120653952602660600426580026799121489805322395829002591289413818330998358212600423697888558151160221599244922407461102740972095279345678812695300492403100035622823542126591905159438650359424290249029346210934427257662050099284490357583486605290947202304138373447390451435451158526444871538985868591955315409760413642920965227706901414851255052157990793924217996363961298999121981662030054636242305394703637862256223956686129869701205783466684849921168648264410037754896341347821193877835722057774291541733618252144984656250604843454603471335149040584995750814575173157193870163649189750584088501673529579051863803537305378363156909916144947994699659611055832193772593821308167673728965898656147139168449976466889389947611009790875874492483972919850968467674410732446460187848977226872149008277697946181584579384545752550278071306580750293285565546446255685497440025387078242523116107723460408425204459614295114884790245114421888022343231995162643940172332266546695606892257276829863551845678568066922927891071581694697699900238545010896395217606176391002187411500113320424449716284866735213589933185276812648315461708439105960810514828699801872423245770918211245255350873826278664907449458170792538766303354415590055466090515276723082756048456510408166434372980526284951369773865185088536086784414134160782724295893273654470833048232470497297297577993881789992305082037870494730721022350185230416215102278581885247860099875859158328939336319649835073605931852431995670836055097183339125261781330017776735069304094474943375604391571069050130967642137173881171904625719723031696793660839960160012493866666342022076794376210815711863760868434462273401001876085678380269297279337475067915440197240645198739126561110990983201730229558428139557607015628047689491839564745448904170172895292969548890949773176206414297163235016069724912127148951004956874650511591068479220757641774108564975860384139688334438969817312776024474498647949175326281122152569473160175826859727155933440273681890143092142129186970798406907598696077367148665231439469589969968222459786314663264157800572074431149593380749630347332285926607561903329864587486007562631037536583123655556240078367014572706003115656638796772500050579523801076316842855874571878376744884584368024445094253356607695812000530993906120475219980420408174905097617193120727056015228389701530547487921342288280313764775528871461314324393736791241012023210959831844380285397311150680030846077786187709974449848432962631687596777323260883930437960529547060385083575693660982775508431208015968078335968499349839383119403035018729913148529283561347283103223097040097073122309446185186378642278925515319924425525923378692554174776234774888394087941117157768289833115362312396806119720751078458849998624609766908973162668254940465305375395459083873428696701713616378207203599641131642763134328492937059140511774703888265558359763337220105134139508457014618433907844981063065882856725536397480229377062455500704584757889066364644640500803745817126837574100487803585915970141261013184143003413205857379271183398111561019230841183756499266066895649228284546925749293087056694291734936126575541308712338774368560359485003069310806613717531911527538285579830612397749471946706798265295815611353820680661487218756014828113833567133174856339459433137641793281850174822274424493543240480651981085742057178424074658680371918094277444208427063586421867122465976215823655673075239526148244267263391024354620363905839079215589497590936839762630131820496025291583405507558852076689657883400139560379793868225316498312093587008867156713545633483204859960132570568299231896241600022718060543233198324499460680571138503125859346438656325702524062800558973079923762248455107248377080764044051879343346597364827302909454263270671922700763221921167406551442480076075340342763212952970833062507217412235078588957365912913482246402476025550237029334913149008828209103330826275095994235716008069178287124580927433668017546551374054243050464277527589423770276344311933398701647295241692327338986828281091350420164883606662597342506235870220922944793748975072800616449781930788146554238190524626829325408587739237144987850327055120818436391270358722433191706707707148846909914117667167345209464763219368953701730498754132959873653430225988802630627618866701429240696867084927777045584702488822804908008000393772536637079425200787689914691594445488075361777258888041117610090874310957081058565947841145399344332483552926074874248044291919579440910365198339441229587994359808445770531709118445269475443263746975907364989755570301736069620042224385228813360797398102882160620565973727633095877797434255407034982654233975040279117989209323204544528741299065116066402038599893326306979400322082671003607168519548250016389124778950731617580826653950972939596089140105788006166575995214164776386354868227567267136075005419212954480789924494245845813487454689804364266505249901848228802231247314034061538862009766439708824475204684880646600322688189033724937927793768084283756559907958825008352254739948237669491830616683550884102873480547893133058863081072412804279848623840536063366857906507166080522733869969232400774946005716829441138476078972848332995314346063280782499635147451594015135718416978387363897299815697454745147813273296675155149765828783681233686411280232749482100997863467605724188317138550824866329217665890077961600712581922511924677665403899769448648439337805607672691192704388530764618122593753941457502822894636106975394057715390913999674344757975898173702972728302178629907414525621029126325294882402952819832551942356551501518164219956701576760728420914112681410148829943956613620660658845933930206389120568948233201588377014903037710130667721017764489918965816197472537900922312970361910586659389455712669882636312066118764784115023957621009406811958098267623129461148808222593368309248715057879321605110969769987791913514470300969426673645496426336456503029781664563422896981731351719344014529065280339054805852711581609250713587676977238827008887164465677723719405896624998547386697784036541376291397742636794356166378448913566169077631127588730988309723737751575844144609966868395814516215566088752174595914815722528508093443703646127932497641445951819819566796930696315735901794777302421261073866904810172337150213005428733170708748213845908574257270235391178187399519514729033134455542377442575931790254768484981802341064928697008484700406326680053219895993964572213346524139812657838608549803451812910247068005472973605455590208060408117416556793637648531593084921042820758387275084009430945256042422924115238642936308133977839919089055833076311824904672753252833883004801614703530940900319233957874266603572536831101752024334970389715800458275032394075412711831497030258979107573941027414882172707457271017273352013256955421378657836001486036012351475714422800967644596011423261579639665021035287512055570721392870718797162355683784792487362127183248565516308600253829785622039205154666162950936645595982308936240893811625842928859456700834392415852101206043812236649399856406048345902980514067224826689120291698327523551991950887546751552168860614441201273837497467241456763728947331913502190057767219592177652234121774647855352734227344623651409671438957596739123580408376019384452646885197863789249829340787352708411395980801165930919962044181302697718980225242650651177206382717151853710650795042177414118223375652037875049537690333604538455975120114933012038484797732718826901346836314563005882032693362218220941809135013833069686387293209098306594050708953677439821298204225802047283729122391037436167536635703908044343238068963246783508069676384588575025797603410507387235180623162568358727399297779532621620503582911103201136523376359037966735491821066286397779951856486761294545877371577631326628385434793580844765796418363623074093786411720957067892019733035940173585375479891439660457312290825098169647883978712300800451331330536185136355704490349026094196055402829554144407244784086479551298496920314970214622746529923440586971372257922611266471287582665296035528461899342973243102442167304247181334695573367028656832817900555811934590815611574303518159738093249358791012717941446537075636082525669053983499631964470910401502531893322334853092197339845267379297956728414980058620412538213624879008866922926808202034643721906800226487838193322611991591283215446804665700465813148486299719420736330195506320572509370944266916945418023560246958437884290106698908456699271491738986981086002558500613806668147495065121573737700337188297235739870786578214268822747251052680018228492240469416961683599397144948875543951496643521494062393545344771931397578147876132740396997595579525938811403954462739971881503755174766458458949724065529645081896505690783932965444843813352757288829067522449944081703160183100201457483610354758847468135120798523822835215504731730052113118525892647436021673226968859532519137711579011180231105926330531339728911562864852679207440023464254256380147516651364690241229891421867794462442896614721340897766453596269980260786450631994579900541083629989558122873707125144755605189019133804676709627077545516139742919074516770141017234472165615298996497419810167326178862503106128180701621443498009488014311102866730824865034674976516838595883245763847750782213858349391934033511535160642262924029855848730644977956619305596851707580343681864361200469730186285586578865875824315826778558969899302228143945446789466937709868810991099406296191651693112109722622213376615410038501343851496400810560513773921101801667028428137440444600849625721251452549422332756500650716925567666470879448619167253791702533617559152007101104976930950156375144896104195000401501370280388071539940780917415329648067224250128593278233292538796576462734403546527048878301729474820556225715135391860927549180176781554493380771618607438598693884531035358049059199278803291784178095182227088659472726304886420726603130868855544790687549641650003200589640986729374240563075700729528957787555274578461042413117941828785600056187022813707797176089844829913176759293798557351218423083005784033456767243907390803527643834514514034702077441123185369846650490757636887457588733491438417878010852819184557655199357625573921292441207019667780787916080928207299188224067073250630367000189976155604279826472797351974838734136609124663119215188481443717156179122242046587492791633095641785574341235966803898694176022042181415751102148197995284484374445764088395438209103447232936362729451391260764978325329560122929922473529848853538625198894443407694220078559463275410915675249746545587837727261101524272235472431121221593202811904300628615237255038599434956214046217313893453851630743401368009760231172380875233941638510060940677129395597803687994132468036764393525326413631050183992990962415575268769426803979131340031608910821952555948120838262287249878910123007630203091425421174483263339873333346884707597596430039877615845081083075807791523769731104087844511064481125957084217700921953663792455535696473135351084594401559646253066429860144588461622350728172101905311390529166443877022261856599722736943724892885335536597040857455461300066025153828208367023148538080256342791590054082523137702856420116377511656927284968871141271225017906357472549984358659979907876239267176612166849146235892676661206991687129385236210619759271465295484141184169220185609416134835420503047379881160932093574577292589924629171648899389349940589862927405011420290831502417176096181621764705990573880771615859803436314035814832730050911016129050307364089646669017247603083136952770592763470870980169253170166648377407655497909729332859747059668432402491923188088410336517932809695019815634821029837556087883236194147019652475515100825698456132015724687309215187486871600934652536299291365553852530660162848954081754739715478822577025147477454190160137617160278904931446729299330407618081414233114169601929265047737680569817289129078847348362395263491423172666955722802994828291642572986527487806020841156063202966432949943000884393157487768683895909318472729028864451864419936613144055401540412475898086825033511935940224912859462436617223872621273733387523266604887009943287878103045214876373071174164184265735515873713344979055104378965582765384545669439024633019616676534012822611307721633138623144697340959270328720806332480327319130361830068845763144312942871049471514953314933609684065360957473001522117460034172180900275800412955409185530057001459750795099114214636834804944731884686836299296843304761155711157812491732511314023184951509754870727174459738420095391902496842543452008268329351730967823326405227371658520285967278267667211394610620509335548002002252015147462304088991706508313553513017715949438364148146991269804857797064629566327147077317495572065296446200623957344663827325436749025121933317539663475511719436084340242143452449077753167027372661876014775309458145655545753383003292934483453933011487438415548349137923599046696801427844004577852401518151401078819355721627642221737014934146977178269002564153682778936194882334348057194990771779718045128125409591890737241863184620221917202943003674906658965297441038181645489558534699294276284185559055705179075771778372304502285275524135532572031802323707090547387016936060828452817954935586892392344649323836879452675449020444594020151880235899121653999300654069066192304235582558227399099526834530062289479255946792953534447705666796087674368059670023350114907424251404039317142034152333029460770354699664311859960530651660905085658761254730511463883933259727156009584711586194361846365752773277972192643405836064339146320698137275913494543702632241859719191359275528949286149799264179400958554176058759988404638905438274152076075499860264116449241310588726145954503464907741551862721423802158153153153418792741073230383511624362259577941206952396351225549922469696081867241901905939633477274664323279213393107000615286251864754784374065863557360400949532186028659920897056574875187602969918563188658575583546349024088627067394665677223704463237180081035090670022028048922708397957847253589465917176159340248305999019445098426828092968037936808391211502471803395997615831411149032333951006318782072622913171956115545914629052030995940210786893704484174148804280529034148722909686378330331689842507548213470575362942884057550608557039131616367655579555908085523846219083005138045233040787634168458571727419668326072426934480595612152014509449230947142601262220480368705269158227683366612294965633772686746197269143408320701930084909006790318483094862242902808664868292485799194569940844811816020694964225115374968698902654276913125884129157525147923729399366592913115121990100642357750339535467565831323580805803177951430263204703982772488407929094826674205126878875359405260461289123980777674179550779642272518054426295820605298737492564075172950482630060641944265578084571105807183104852058502631597521850877081996321652142240033835558513099949068595593467027417700304046586194884903257044691999357873355241482249262612207752472157753422576566850232347167270771350614499736483542215649015870942323550379394476630596736518565105469278108669130278187389617501912661330651821686082133831425816028172504498819644640820758784696186866988857833822604025176365326157473060735094945607158213373582030063596362965958149367061846854774676282472282004105209062272333468908149665428706950070326628197900720704177140858676681874348135725191295853977138511058278140629451106509156010643905451858832241537724890362733285072807293761822523024084676749086359371151532942121518040195513438650142539949953655002748467293197070612217402855602579251335003647848407224009641109193498667413439564382898395722700762800026009910357544794715088367369572191351603982573361185778733245439112836461608603838382864539954663642866564033743577578763456739568576850868260453992749951962572222613690066957161115846364883585921960865076587991295019958867783931286299821880880232880315331219906532261800812393972983933673984793666921385632908545047453464754304768948449755939601538631218396069060878084641757775623174835577796505048804335809467336163718816836863278394025115639052810125739038672126683243135587975105225521271503018409440571819870552845061438642232506010220641360670862748201867169471302140143349458285943080948955587854829190128120154903529859332324976715856150969149493392484616966673722263889946879384100313509292148622473272278148803464081896922083668869549802932637769285188712963308616326707597661876560127467759865958980355061521301442896146425757284701091612918617301200320366842223924402990820505440801513907312809647315839557199243536731972513600956462635238715621522982112237032395629954165054241378245616097111462370870011774371332053366316894131266314920021024961626035455318814819048061246584662336636990276267694281701462587541806414006625378171947722915247222710141399772957315892133435584867197244461495760292430135090338272631668347319801611359148567092974565240762467338135756334779826986324109397244418818241472791163332574118350373917380866243369512684138772766179150453454511650836106474228862123161603068719193282735994077512590662181375942458642350011972810016011218193200354020856523255152988536101536450767999281384688868972998476611284956152140299968586695100813799915261606172781510880007778122859842397347874898429800358635733558977133807250514880865798161325687469563002762893550169019279230561394663632437666506242810029300541846581996759677033274705697297545298312394668743059797527907784011901602892522923592709777982799359070115552434609627443134746346341207534655182864983141455452117047492552052162194360564561777362333454949276656139895844567231822594142246220790125930144039315213856209200216154353946823504153237566258225289702821036047625978964360536603403632869028064243201818106591960906461432062412866518412624038232955482910306899190925064710780789213815292616724518531741040532882348810041864671004191512160420014321458948070403714069510515290514626861631878454281097956998056771052792858802756790290318609896765917360268065720614477373820997186483488816985579201061885688127159450544228673676265432228750544090466059350866326520552133306845305950253772457208526123634967083749953358592475387536369355855706868538984179280091137769369744576857474933764088505128537347399971020971504617441593431603914941544875333362609822037745274497995015546827950689656577091066960027962354891196552417779577973802704359773048199885804371823852873270344312695232588750596790946680573649975235115990682494657914244938876879339473625071669485334830786518096884229908304657574950159052979022172697924666112035917245422554537374530231932421165680583738529695074345920787467514566285360888029951285648088622969694809735359480968605424540668404363787763586535013412407211456857757132578304866661822670512212412293190426177269411886714095772562241935016369384144812792046184170151409611151650161038274524584049034216162953441967465571422209857601443639488423718809049998201868752566512003083900646408377843777079773397827217396553608616144381924747614438556872881761623141580783138468565301609197661260968853990061926845757911771158043237956086930540788406147451498924337272294351769999062807315441627084737779828961736406313358075400144548431580282829565102912483384487323199020735071936882299089661071288895879588527327789023806213063935984418023407119029701758998857767430951188863605972530191946639675287849529765677922402353375298228722701553976002371614503855143986909936348450273214236749679782224517360181992679384240037518814182404590201339178376976626948710451407204316254166089090056938176548614409895331727688952224174702076149336807504441854816599136603045345047837373257858038165501618220913322307717896547998531135890709929923092388254598404121090607153276456771648976537435716990186987610318578807476585362101710022028068583630032523980953130498957042361804429532791152326355228544387296474173967966745074704820272497585967777333160554926149835978553086331881799174840888089672727733115323876784561364935722666669890211124211417306803971304113541017841232097415782097908141544693831848066676378850912907919432322400519520787632840508390376480339234611399627225693516620508321507732237811835867787807944947798042680671910620399080993831897223634183182112460918534535293541914610734441770390195102795187914668202928486334593780079473559577427456154017611017720392102696225023132521600770848319673327243392715877960565990147295473196053749452452494510840687858305516475072724777620936450862094296890407213612985196136683330403278930591175030453818476295068462396051174656768299706443719054530926417784110498684619906824928593916445021613257486067174330231425919169129551480104652656499832294793029346850676848231452222717031575095672918281715345246966908711579040916361347552910781795719023748520476483365181323114795405003308141401279985305073136293036804276050255628199599644032651265118193850488422458052019689099488914401669622565010937473744225738379551998291706892282959659982453209625433083153236835054957142756143081026666032666249445512620502531334172066207016910671410620157728994688055674552656056384524570086579723545303964012166239939140546459986066906764439910695632932688804306286202200200736361869835243229323894746447973066967357142463877522054784568098403929357568989957317625157989745658631731883263908972691536720139763972863533707088626072062507742149776737269096991276419184010796489251003494522132214910672156734452397623290543469447715987659497823238949144753540880552937859216736197987599061825632034766642922882033931221949192364839889103269590250021610460747176794516542768895824310784529211312146416708772256080890765966910859593979303267901933951836222971468243526361816129135514339165372045564373360008741801269364006141302229004962132966812587727834759574025420680636157500666497795588980179006856505684932210171227313245443335223690454001971917797525202372231515091693735081843525977153557101436696296055453013183665226932794588293478675950891461901925469661372364492805584717494293303817359859079765824633161742687057428592730576012342528396686370331091326818357131631170083507136519542266911070500443692910666655805685372065724358384191937122691784947021055817620176732803373823410771076715553553918403829433294288376029042324480383665908694882868066444240413506220914509813273501254659702332169737643622566669891031680876922069908327063034967451248209404940819944387335199316115141814622081273968801559430827850905510567369889940829684006812942858895145241351431201911278009211771160888474217189927127587737383607094625706183216893504641072961843226905288522058969007552911753107648893785503506408974123236478026540360458716820045617787378778533784535368229425174697266655833437848064753503477335482837328854480548271756748086447803072642674114072015610962521959857761126228821832137120508947450728901807067412740390132666517480214830728243773714389107962463665502514564265718244000666233063557499538714995535945057307659406349169540024488778021369693648074252595671278398303732620345986181682507914117812206546429781558643234674999228233248639789986764354028633261088455566602466378001028650500217860584269102132919193380150691997181556641092932112828978141771278323334326757698813791767224937888192605017945417294865382060400164530113697912707021036953123930976750504389055831534223043996425645302916662933678923378082570023900541293308383585940168618235302666238846373042864340469276551710380906184689480274495520990150356520895502633019832484685856297880637948537316724099178956905436474094211340227927971998091702662811975322781562941103256486134687051350606274188345692226289005141990266118108374310873522077102554014779662462950441591895708137451044874723453978146711383935142694310721256157317222532853585349254083714793541913966521262441377528312459338358794033358483750031112473267641571660872740165396270046938950316446415483329326263687054920201631876849441235740452364485730283212346962304883836442020569223939311316623169026775119127379115801416215050605001618404589453908382423032226552273469928448346527930064374167242060200021905887674341909884442174267144330391841737905576748427381274059128425747536243865285769066511932025454240410844814886745508081066232696934353098854898519237304807863335699144666153876950067990942242005683843639882346717405718918102134228750622534739397621444946421326116883003454235649480148022317818292187131363170359711292435421317449266513252546421623845090291328298531770264117728994434706434940461011721528658645160967190093068412422126934739604207307835383540806413164464570041515630539863270646001877964988309533080730924511256490190015654755327058408062241066839478189724860134999036807977135113665818912626505921401070164601049277730824730790437412995940093372096726555247455367098016253535637048711352023611533487677275605236139315544831912321230185559016053485934177361056948990876817549389009206262249221738929119937064182233978380838238165943524069136219022570399418493355677781032306631945490329702789008044214927346203869315121557347413237419935219741477431963185066571374249214422037261549640684235404991399231327361109902545678227645049228362728027081341747173286683626717666985546759209073411591313032929091126705431431192790406627277064881390205302144287981589732295001116642951614667122289252762257445440425183853465724130678853745412078682961861194402682161003288018846260947576159439411084198719593012067046764171259930533875395459318245486512266096603164546091002587387676515969131073964943879750688744972370880329446240115597208086093618702417855845674978107790952073846300556862507458811572240472786097192723887088982696744171532693653795200089062291474401771143885908992276566851578096283245636271094706156538227790405530392269264018864138729763246708978001045853061530495115051914138827136874985742479336913015224218978384271402115080118478598781084669663016257049026338806529503969686762466264236641396865076937651733564518261018806005889834444166435677196166709482242326655731887863704914018651161665418726226711851521231901740633346350606765545861472394894152953841939869778682252595912655477938894894197017439673665996001861260086462335156373926549871288816960571664713039603652016290366929810987420628185344528914013061413999774132393131613142371620610971997184830138837624842585418329624790262217455296228073274533703120159261029118493442663622334491122593286122168397909222605245107550625204971593023927868509805850997352296478508177856465911088992151501936195285792871740924734341403899710727463148790527619285304956598926020849803794828360585570931300358842625736464522823063222805736622639737750513925733283212879660094361981777160913455391150382554426997391188173390301556348068539027818678044267910977895820765945506276650287874136842334605745632877548874517653494851454521373150153792840919803483461650734702349193047160519067670293068086486892297733322567093129473826927660081349788022075555565725735907879138020933566171388986778231912125885106623301040592602948575057906495546232384493066983763438055558206475001532511427815919039045698800741498994098127309081737636449803897681794052674558706933595561965995264761945436200841260280414779137480107703585641135354617389185680380840877501620524602225001432422112013260621847874545426484679430497797827130716150478506029165673974325285985552814718303998813416843558349608801153580575973822083326366991415959050988707859294628150652214759488893363262313210124721863698192854013273872653589520225398780083122305360054847955106210633248292653992179331471809729394698189345777830209318374652696915696452717126483097300640056875374294959340020809213921773447404649558578090492184082185184484075001053688109120395069034588759280987838635343989320806062715957262235216618020561254298341661151843638011201523903835997868314796228616526609737511725965674704411443185047482237435454572108954672294766729965810762315880166975673259947941137979435917264819132121593772730351305303235789173254756532355721125735726706761854571445701482212135960680469341188490645234453010541676211760457950464224824298131426965318051310288702513011523084673343035625877189005938333355780420588014025191988726090373180013478967385810446919360405870812982974310768270821581129755767915357058550572540574394928207920462803954094941658785338504621738519271763758732103038284501916086221247503536837648818097077937669967761984275961809928248771681181861072904737150566103222256973353061694548604182607976260417332688605880043336195747767721066436909912577391797311374997689567913714159155074304908795119354322323472088075830584342795615681869672414394279017831730090979182483591561066076433168633133037953465381791014323920017140957217569929997997264574800936072115136132906859848602754648241895764652452422634947068358314808228286024542237745751496201737843542922959909852487976090344479628697309847165391977249609279846922986125418153986649724013603751742752524228097263102183827347700908989998802265394030750563408448732320035783407872050543467465824149622171007229489166679183907254514967294263498269483709009335903543611353489479004866191846151676313355056382791405552906802726066205268311498120019206158102749120866994430731153974246966072614726180219488042899057643613630299649159062655967592797389874984187915475247139801404302457219933703406732520395676931108485318343303988652038832975854539703388573301423030986327997980479685996386562580150146385342792240038060650401413725128585140754943516196351841210666693456479094725084408729673959474988761629852607129264575789600923533736852855849952555134645604189412465727503728610979366652411421434460554210432447352463439684285517027476645234366578025424182159895048988694361546545041362222155777186834717537709408514278499813952509887477835483516464620085529116681315538383781983894112177316866372310632180587164791695978765272745989593407694456670980397009054531020957604934301338677461291677554534680137299492087743582355382571264902237265776444813824478923140823829556564864776436532821776728050457702763541671019692387386872522880835089459786538051704882323368513512797929128322096534848636577454413637394575992695918794189319406604138882625916476926107732409612304678237182182056896403654674524495185408581740051949283426289073399107836758488230357234433828462334553200748432126795978690380655980134607478248194666512202245863109442419823254319054870216493045167265578005792493174279424959753297651124641835120947003810753471711331247292236383862007187491389089183056793120649224870226929297077608093786712732582414281035132778018431016088037491493252359614566592983025838036738388247051126141064279397408161423975795498665222683090081546439994366565259891443463468511820527718787659785261078238494256352418601438500801580020574259688684156963377340618854141279396263979111178769820355841835785506381938091435204993937945549705797774846073877108735023614659340900073665218445096308098674926719161281286088466001191595311872372263115469927195831003948955393969964463048973649338306154146254306935862420749609429191460796007089992766028278608935670102969491764189025322131175017973641097109920102630475348614622363720901827093286556305231490139882693449988216671255016516858235898109101261862661958479469171234245849008792337605475440233819746349463499909999008915681428563105049012645422251438748602388805183791269328102384908723324276627954218607380975482263416963413821197343617045183861177788696558909621940730454174643190514664985582169575328137798993069499411773850421452940203370104558247829258415135853026408939514036367501509717329196108415912970803959405330308708680601015300805466173062523100756063107385104323958785102802332087484962127146955181816491573981156611056499122789204571209598320927152537784296989397240556529521966825152656085522723161794275424008828759270693272049408663640605162997106835496424508315857805595003031163832385622566784396374012788199866743253136256898430786537356139745196630083944120838159686016391317559646175784457707547557362907335697868510529682898405026728280683962817991792787164505447844447884401636160813107077142639511822946332843345282232907264739790002124813644763126062101008044462014633255227962679565812141949865801493730032697665688434215806173402459227109764037191898499320926102057790037112978093335222405309471833117489064020834885059900758370597514952839511194986614567848312725799328269029655254685785363778290993032029895605640394919632859459290272958203932068137267295517649484177628461594654871440178917025266541942008895597679323172007419550087761012696148257233683390809799536944258193126993781195643341553546031256021726004533787648384173756034802457727026812902890677268542086448320144859243834379644178815223272023947364402194522557045355688531864185817964833001203241864902565009050444722107769903305125406428465601419109422292170688621687155770382838450302343333415422061722443341171337451535996580262869050060729906180959567471721096734775913512529834107910944660987277361152516409220490478724017780003758471894918595482263214167100728181940628071746407974020002206450270937027927104947265297002679457477594389378223143813050118775991184245981472474542603080151702949251009612651400125420462876607528124284375156899597809493415981573864389573396969017631066371153731773457851569146336176970196621687758316171106974867151630402040161570207047093381325737432502885693735501318147989788888733555550086973395287359943581355437090081811898897992615901400751261458475725401211697267676810712915509365171299225083299523868939921781092347936600080466312271392763073357009322577823362679586462483575544029591347794253687111605810633986093269418093975914263140038341882918779083458387493120386011476641494006816680646744240202168758869763052684640240177607254386560800981941389210598530183589523040285110360200964293132952021799587150808216303758415854942310412508383603584644209129787463570676778535337691811413929903968275850839007449094776945195377921184212016886599404967354049473444075376716412778549879539339381585611156709303844543285967044538103383309858274761418435570169192335250257943717021723485022345751220697212877717205248440488671156686238370221078380415313065822488983444936217638547333672379141873630462936514927601333896716557943140720125717048263665844337194720817667684688234099194682117576790024265523996239984819732751733045249698773372160467981783475131662910108190764081298671088368099072123189726347860083543387536506346632727414058658448256358546719233160370998900817744556578516208255741530188632084631817887134832348846952756432937159347915948830503226173044376849377888757138454355041470343024363150971151857596091807629917993611067326931836407189845655903306648402642243339671125498567307900173847574636402872885760096927854937196457061592272391075991335112496224101965910088577665252961755604561815735304043774486867366147898569707204941913606080333850336055275346179071023046185669711061728566441917506142129369192728196214537885787071906244631600883845670063519033071488864012607818315306303791791668412222915623191604129268893698621756958888942586612422532591147668148684493759482667501046561810100322535742396201709458322496298395011272123885710850407678557099371041270557495670515198829601306584553369444978528535862469585050553121445138861562990351489029326772481230284781827755651675689133273739665881799616585562674932063921280831164543248975773670633166609615533619907988790935854527513350459095426774810085206434974894131896956960012737709550508188320711103637030123730221539869595380598216609590747451025492687430376422368748982517969090625632704192582314090624646124673277855670872603887806931223293203733253820329639956454885247330098703337520284234541871547981373273119496633454795708339129424346365193647943321281108254512203782482173886787323904783468674926295117894206351080460288713951377669054074729326431091404722281664534961661702904948493926332414144724196938705740819277113452452584881973409612732823784109018238190179377908657526606377333545179261965873220922570738912430792112623509615257834191854854238002509927900463951181249798201570970791621984460329268838145563921268027461319522522350772148336433682966801684160858155859975686767873669255220954351246761855731689216968100307071738637768388390262641144194608038468260112207209296191958621999853886251427466749988794242352415893562043523198512884272404002911452002344889833351913382696431163316250520537524448937607298437640361059721560821189493092601486747605855436053641431316483150248876175213002337284112705789166841741298308163423942822517960860865235666801833930353076613459315124429160242602434062849951368324086441317224381319635931802314418267407427947189449113844501018590709238676095034190631829073683196142227918948579146239488792185276226019552951046592164185628629422154700388932254635075463296377836100897552805890461142557071741371189487482812733337263159430359415053126490455701822712301903341868163856303414000284428695193458768369520371846035805996242225086551753328326036708276703476609558178563061024294355330725729966627332186768327363399673984942572816999585382078106949407200898362603623520533342638604051216804382192710599011443039735678451322274223622640891192837346511268091942370093664570082433761205597801529590060936609249618933685416286694356403951326357655781244284696708934074680549334977500794388281667208465507739195831354602749608242450084445562382037221318238696873772713263588123354032695988897002220410589476503848688384604914487173394834531653062162021992397594894309629844451363406311874460506320748500935014672961172286882113181500026926396950463754096054014032224322854053671010022492855105219098180870107449866061971189366381902728781109056323118421324663963493473188871001710047976969420173383196638030339703722086938635528340756249336815025871532389069017889370818580078107900209855348109454520761259061457652631700663776497802472584250252847001938817766359596942448789185165169884297377468623835872923531768962387941852017121254892412917284436702026367713142742171650319537620884302470070871611274345180522306787392073013455350837450884582604486359331689831811742275147290092327100187214961686253427290623703880563735160973687326681280224651234956215664598730557467142104406535709756952357375776582541293127828140396590152363314253479927203750836401616299202391161056964954026816904474871583099996960395105025969889473474460674130976692370349698949970629240699764744172763373245926107759705807297957908542891991646714016626087705890097566629397448600184082944420539532158889329934157099581126716557882973920329053127263293909534424912731901936908436907275403629297581078928680647487223967866176977828894048489279673871745301352417485598807535231276914286611540585073727456022436809344792171099438025370165389048801304896934385555974713278058757382434610109398459488262181320442305265068537957687336999342101180413655358449532614753171741459072706055839564795596528448894589696408311832990574314307306713957843960894170238256804493256468249011052902705671956502871181713404483494686314249307845662128954580917397849161730308449365592913518813506514565706440913270923637472796912769006143326895774449877653256158737400775028286848709550369427531210751980958663152685557398438396345931197922968112093865359961528450482795601728726651874595451759304417589033155307052323319928280413997796983876229155151942345336134393156250695688838980336630079701349452145897333308830338176110416355363074919088251688777359360158360112369070636148927397704698138611817371975207447083594361789710967956855855482209977414145881318555078395956778369862600337976517426438562886829348703072534226313119553512995011522149187769181942709268050536746342043916584790397678292195247192868257118760306634616869898890452576693376598123329112906659117254308482322776410669131549102986181610072931631061740277208537225212016860905901425032437520075180240540617792495382186957185099117340065281939121043125337912871948489362013194146743461703432226784174701597707006069106299814140436772621488956348191667772615548125608646185490040414517552290519732596992025643260357442039677419026360985599308749687259552178734861868300398052077902745386019472442526138222028147270936334815240800244378079962489257266956957723493098384893536992776385793460905659539078178589015317876836085359492947543301840170343268179891101611876648599559393809671604252295535408053462498308076051852622793694968755359036780887917604189513466422118623171167501853145850935235528775513690437079167809933825409372519392417854722989189069784235313452890271884972825670475065616797706560296995276300259599440837939095581823499724583947819270723941031244651543288904766587203673454218329915260251934984568765423957298083156933655318536885662219334323860931774542438153400285209089455345590936934983458479910029801836437462417214685068594789754436500983646807612108952515206095574763471365349217569471540985037182707803348844965776447412740065672164525635422031528532307292314108227513629629914280918138745777528459133141325196786461203210476128905274269968012498916555027969486030825805169594562862587689528435267795025013806298759155845495324552953321760568829830300479995470686977268523345601317892431708584801206575165265161042672171741074793875278075245980006517249010104957441225747144320950615486631770175852353189680791221987000483331691979480649074053508750701459681514023323612853909745015446576584242033799055256878144643509467113814516252632716328345678701830943118452716974877491314873203369245272636715417309007383106814494415450334163018444738051646892067043380920411472946279456894758680663602375687383656112394787855462176757884166271483815565618971163086638646996191116806594234223736289384447532101510210704908072842117475600369663168692292210890127929666790398955126276541120996767412499584011630460665902540990234904203292674302701083567849959869578246411876385583500647058361344308388922623975646665652756614615482966945275020356289599942162858963231959060696651305934002868121484856527883068793240638809815358752608633895413448432680123320678378577141940254043826241728453571153097017733540718456397124301845436624465671617155383512790066202428669269619012059923108754544481612689661311928042380975648335866939919980195794466867240517997716695220489085156257107130475764028392211660998869114815857246293193586237022603139038703148441045561988792935548288341547759361376552426451023193439972627884448425426797588292481489511880219866892689718747580082155997664779823228728865591226987509385925618948120402515880965757311127572858965653947707353723766189692112527564950720912606222622413671867783391055617039947594388480355587162737090536807002050792543090789146251087627514715403787097444863938738315657921857573865226366625373717468559991380965418524567055509361904208040191218232665712911890497072813301265740767035600413767232750726213522616003828029599623932680024155452548759549670431310583972530000416270894404549255181365120471457400181826830610669709019008193787272242614796790757336868745363153865827580441267496173763685202565169472626271680053015070048386815540994458308041970178114800710231982747237484521046117003096482370696466678661272908935703361048401507239996186657319909758619348930767895557601754851676379512700446620715516778444991155375966809100032367480491599677813265691902999511828595640056858946208992372439567375777986319844596005864915162982190457446082268214415549770123188446255045919303800071856627735432897364577224726438905682949979229455625125134175416264121306995917038695908964835830461618644954553295580729497020334757470561182804285522907675670221989830470522662696036037360110134887366651026246768044126332870161197905338912379987588766358712917919467228089706658217333996621197816248360646040765187765688095315493479039274413522639943499808816191519874456842792089236417489006245812994445694008594312362699609808698310113735172769487625046344683048330194417185562868637567772103779056202075262534808845369654636946454292458115961630065096259514368339842926108404197485455038535848964787187933293271946542051575364227219610920686150199857955205280515659244440170094427477032172297638759698163741622027292243768741777147639771160408681160711394714496157767894694828547296912038179914552770011944505411277734991813286190508364296698603630539678128536722728513625005775775947633620482401915903767606139525223811262140341482427678423692052665444325869091612229539346044956685534089494710742265610345664359762166874396923830363339195626335541245761559561792129780277467729027849446923671270069897587631105501088276945129154647264404776717219375498512232717540278173367186172966089456254702695922606157623492184897121969038694921465022106861098400225292949207606953610801375775037224058398066559910881175807509166969418196183000446177961284588703732654914916312372276340149476611033302421165241408122383567442044578270675699613876726039224426900546207671669280206866380109547619268500040894871587407116657426536470765556658039544032056463923072056636835288777777035044538195377492087404113688937819853912257829644366444892032682384563441327439828861745022349899038101539024990533215438366436360523705019347584831461495609507924472697243284829972421810343185096988461653530627820871804889805272588417558238538776134732597449289002692637564698893716590674211570240197429734007314955109672694568375154034274932429831725135266808148378081635014431239282457050148274189359652245635770686383333748042457200823094457138753998041020691611512823705795803234035379322426030397185860502466884381899036575282010817822214997739996021739486541549534559647844851542031682909592119284857138689551711262125465544042683163894233135423459802011162394342154540500272147210978506799085496655080762716871166767567361789707220568294809642233986397770406565234584793654536079818424212673917241066140842697309333761545578894534369368046218616228607857528176571663572013474781791513898105203779158993435139047998983756315222255322099708971961620036864347593615847703002558192285449262647906610926766917234250046824685411252574040043167530189586890665250037114160990495337956038794734023124067212588941805079829003427444675799194758675519171043693308017038755583800687913975253620769084160502175072329390477193132108427547467773027378365046745215074888302514750015377840673509264856110146315527778689775166984733387885158421471889564422022506698638297382865422647636089257415303003042496172811064163909476284121634662775280176117056404184512573583428900725317674396593373647449704933136962947299894803822039816176807333406496895500909574032066925584113712172415938768239438242066891512083509581385617627293519296515948927098065617353529005494417819741989450230204436690486963436954269415403270652375117039144354811448059939398086041227258006279307084336829993084863602727890364008555358008167966468782209879377709645217740424037525854262422603113908065483131085809492599319526358611001042030009905897231430308674688687478584028196920605668153438899973026217554197730022086298453029356756086648038335595871619579427079850269534480344857728027844418096179118870819433648680811469646792900267333885717565766236092381324628518356647891151384714335922156878068499437057761938356566965000185206523084785168686172667827856238851328557148842228094143939703687048070305098306368155605051339063847914658258753111107585035439792807453576614553366204198131850956925687717500735037768070511590764154934391874872366330471442882063269435923616356271160102623446540456264240060367122470334135649600909558779710459116696391507157659803656750641552836608501310255484107498106668754600082912726595035965510723192212457294000265256368268000335526443853506017447724756179817716226343820259897998529343619139596476352762882193386852082801465761543898899527943618210862160636184588371750793456794483691039615883404827152837584739470880329104625748789417273882347878486861669653681050828566387430766581118305731921171547837989327180869618315570680713038770967246851126486782349746703983438420748963234967283386643692612020223213269215952634559439209725124627438501782975796106824199004105950894550543090434917358992047854480543660002883002387694473131259786534143083311310106475353641851273490930306480367557686684222909881536148167513502397619418911646748444512349338019504494287822439540204057623571085450728597424948715580179769354686193746726716892348728581168013678148334195110568517692283304474645573793838136002330506593507673624069372385958056129907294740804051027477538410001249945608018934735424377954129432954559423555275374475785249562572788201273393131996621026658106802029327205930898314034134699025362611400830453763159399292641025033274470622031997131172326718206659882015506622602292443321399341668358122333602857412319286837761476235135161063919144251665931860546854210741879993883838415662903216429841324291787335954389228019681350890764932745559414165488728796451033096469412083247843977907242702136514646569574777068765575435009157516097418387433980840242306890245559726770614288697982343099206350610636578769619743921809767295457640946401234083353419285745480040437310712011609338132669078965925132996990650538337888233436570296077448979391340756115589819163287850968236059718573718312845568744194953855104416533449199847677393721454181368612547436412363077826724966762946240620889956102423336057401136087916678840932699198616235864098979295349686178361161872036608954182040332299914237580776407989391214353542245924492727375851960237422993691475560006569086438239583109953482062264947165705736651122807540797461190313643905384196626992071566812385329538857931303623500980850958857950090691649674325029340693180400761523194577683488598016868483379741195499677816139991591491601338582205245205628650831953420342435897612655873622333894740950278413505115588875611491453219935196998457352586665923883260129556606134339300687056550427508974755548654530292493970128837594901770173081171693012951162112446690070663042584657924766552196626027228348571159109055678651548091998940933837391209329726958993440898565815000570080271050882149495370520113293162158567494489585461234757442865475756549291820581860203952121023855979267182342771929771005064955625046074111735260839727677830933810920683016291565385388408375016517519727751664084858566660130454386449041826513924988539216669467862823927669962336211509170477592387177490018068273137702841356610554752132137473868773809879427858216380571649859857170919097380812303558073946267752835090371421611848858173053430714839871127024519315454459735551807591845584388849682600559041713713351529665118282639682092543914781787280175738451691803641573088598688844635091167796793083742723478497242406362447325632036255559001951757129335385656477965710889761329525606771799247304683489915729632165198600627821279704415212210599678538202757048766830635074733692545514236963568693180648874472827289798144609694902708685890491738746981720685383519082167952311837149432813370674732391404157877005420973907387797003985612793013341065741223219344957493833137588907567451010710365581329673482231220715041279422484107286417672024345569427405994375142399263356795636376140482648446458676715412102360003117825166329262065059602185384092588304233066343281606044113465610394568807991523144687876649172493706461376793190769176163544151487215491959731047318995588310632524276338132596302676081376384080564831608217066584382682669082376761763351242456705493757244800826965377024304699312626777385756426646369948368785536929874745242937667724196761903196739668989338551087705792084385081859436978591409402085782529974172540499816718972580614991556509067236783396019628331989922813161416678725969947152995704641096262433929757008632718337333880825639252908290786694099711269779934829175180912355388667835917262630879014890526261800983410301218669420855389007778774490788335452043787269824079207944305713362610130004977410617858757816805113890128251056779264978358997589986703004092723807261167454080022737052425665564624978781268875901564709651315928156494835283913697264952190069118146873385411055670180688665608811918156617004418047660732554152396367351904032768977494461940649331040796139784062361697415554502035129028450266242155672053012609833876028003800848181221681421742970098695147368914991849459205419823344786292242969685540183479996603989812021616971157600621905012802198832538197760541619606759722754764979049176939971907589482715498308751581997418620789844355704192754864451172838376722812747126682848979206082761518884770523864910259036631918767468874963542587625089425688255860776818419431693410302133399225552097376715692726099887360859828156351531027524173982080288709564306361645428186601518199003931511040163821522136081511272431417806888515843406373121732861202178832176670457356192721813684846866297662383032450816972418566804664471275123668173819739423946045170605736384972481013994570441710633008400404173382643764992943065068198669092053336564481566554670875274298264597755157881039939527582233842955551391762231896631155409566050878797587881780759101658709045568061747610434481986410984183314909768018721482795657275636476378497112286475370752458932846080378441430269356770541656935240135850089722813054407569167520035078844068182084110627439416104299531743635433918994585769436840027077055863704313980322684660670120646248636511734865488983864408211660765987848964135214288196297600908211354409446791027030820142200530376304114303081565615781178990771665618351792713614772375797185753990769393518663595897099440578450684620915667536413013253059409688297306728091419063762373264767711310761122863666613229523640258447754726275476014260824618249863036729995545297761356168767822515983774725991493981818771007341159089835848173432425983306929761746895825884566662888059110181546568771003995624731921448847813529544694924007819076164981697694592085672778782880153042750862704071948575130546083393369951351909193708137479526321446353024835158355095749342088700932843958976338240081975230169016860246808203636891143339521479610007228866805875860683683265937025459318943922962904789037898531309981917833810152811957509344460228546402060620903660180624572087083937035691866797735846345633959150868691542930758266261245110536462326912002241402066588078706053331112263445401532884931991208289875800522652993523207377388034827254163237099130593927081411769687847897307489556104449999573983306042945073349100789738133309022032114926865660448542159869180079195570951197018170749882354241312842856367847046683954071758093506679258940509263210351247460219607365530820611876910192554048940574562965932522648496421184301373886475508499805787133213435768444844267026931584911032824772146856920947329309422035141407792261403426050036383161128903145750224546341103050746929432941899931770326747038457549544631921174790398871047201505019459212273489634637057068179917443658571892141342747305973345000878616249653086862858100439399082832910908565910354757595875591529831780782101214646084170242196596547361437490711096298643322849443191141610215551217246703200721644543764507416892542678859270702642843292486780630246842700873781182193283823965524913838363837689357412679201753844515839742587175548963139341885879452141917772576302047238644864073895271611052178187735417034656956260949683483346030581131252682698347650644646194641199262363576990097819622835464319430534784659671577234579280220271433031155580446795083851588911040708525562089139181344349781775800388570447130256777504223223910109446351902912619410786075841090121183051467990346162187586692065398463862412915936880420694096996284026983242947497798476578122713872091188495040985127391766242594367564928123325348721679520997350618783825022775642004185540306616701080634087314465773802423804496508258113406093962336173032972744029284941032834595887084732489227815351201960470130163173959299744319431238782958353946744759278035339481694169063318363146149914054460815960592778001342069958861074880076071905299893409936865024628809426236510627600277670120466924737842906640989054692881881308161070553842254366360831636165750036587489618503060276609488106895504482385046169880151266476104570342216790270146217518575541488425900545374872855055622707209341183009962971183210880615080483209241425147421576470074232297074190038610324371357577977857603548279782920711088599131865176197449459374460341414723266423559369820458496975488565417522678262178951049733198015836294573170363249277591874018775120991258394692281594577444511232174287849038156171967343075085340821846661138608209430852677012330368388332580002338068736845092854339808373531895136547635313010289492583321171920939314046651909088644966978775652984841150340412492916463419708187635215315184803376074003766859503386997081883146946682589348817914944096694316124589003457650156111069989218216392777051564826788310774215835132076777828959315153955983165255721497957602853055419723315378683635583515129309834194143258265924722667744740957394091087184331968564894458883453226392446996071353676096720642369218172238460580615664647499982655544791879820515419827701064308880874679398019892446760583516056038238151778501894661969983710005469686990465001867859709372331309309346409747395989419465536741352686528736092482232835597284719931813338091410046190561051857758077211359933148736442483028523670503073832247988364835968626225194888564921387702501563209235721561067040790350417211520270027468831024808913869355150290820806397228131895162399259868675433441230307097796278639630052291388562474198257744466110170190962945707579173127361193183603100382052610742695368727501360140694265970730031051988814777134584059827629487215415713399934672535151415573373927471850748315015328012083020548296354811918354851690516298691034505618065995211105148283270707330223321491059522206138632114593214920961899012208089777189486532527056954568148135033555103159468090677755477474274029887183885529633585926224562141469971928535495067691432168478285793421304314424404722664918634609903255757166556856394248211305319365329196629004052340028015648326406170451884129196307423478550493503849194647236729340636858716002486625231349012897230202871545462067964482610922082573599647781150012667240228605227126945939277633354769687624115724690940832373229685592370105691941870256243674046642196734986201312870025279192029958230142714510891377108017789681544878678877165295220170628631890114042946424753608706560436511873315720088137423179667923078423817597028766162985557348857584777844976148789157523560592234404096480450371917795912632764773900674485990544778003932154686743134280254793646461562268824448184255841894699033558271146232076305603484480274454424865365156060155669530696833353683477011956974703834850989793277288365431009324993588496936483124695241404621166391062821563251964349089486830230024937598196083261557110065147815056240682465013297608080536111507711771936021420324914970895713824322549164838424912664708016423835466959298592995366605074947540169494844196313242999429900654627016360742458401867443889617062707928698818438062864320409451054849175267805491723432437338426408142309977527750267627816520752543622358476673855358158658502238988178305827424039104403563737819680117584775564820253850322047435967290837309614112968685574244851496013945848257483238207849419487926803721177785103186244908205102695564558263371179398196203645501548166105187860581366503209298815953837957978025671553976693081415096587911990628166510239723375023161788112634513124490254108988079402217459050812247677727023904541781596464857304982838485488683323568686612377650975321690464246390184239684490631606513908900053592400801881611152839148378287365228878534979253864805028960611428631134237324457568546000216205184361683274515574779844145222615442608179182035232868429421525685840624532674067913621761717279918717231528265384570937741373299952960081410046443312285690759485869751240718014408609398549995341043116804781510623911118399134469591947654671359933237635468393678587020300736719440683041124316917538714270412042389517523846047736769978356496332141524894631466174039926692817911828435068705820982998097268767579936809192810672268425908091031025187969858049859216167065878178912235361686128807498286854699174983877135474376066965464456298395592261562092977460828813892119862214455891092914108135682964883874465241060946273483695177044457097660460965715874226916503916985879986442328130850952886954486296217174949167663454630116368641154964997063025175443659047790387799136832223646775719332323960588939795423043665684234015575628044731801951570728519418548681395579038046073691399224305243940681143110375788408396609341640320082462996960193555136347273846137054788314073743781383715758714300622477862721772688023701755950620013114665605487628400790614118743355784483714995945806219347719474761251831465013194771237779909761521731347884523527619050889727063246693978078520799061200050062822788403033135028319805194558748607840405844442650198051070543453304065423776860666875807436831617883977939993956940206543673145668850446857487456029157908184939733728710674729630605599496806695920835446708998855111154292738024173003246559136053291132723812322168397503716284373412077141277421734399334389713824595881347202808291994701067474239127006858676781662062403320814833885183154003789017223880298793900186584357739917213306392608977369241364914427295378008333855396846216218648348096792535886261736407535979315179029876927990412691138213511964653141416556200761722026524303883170074681453792977166474565985435784422418885899325582632666802233690232372877923708221070030726426747436929210410700420400552847923275430346397406689049416431020922920250216665650053678064793964341981278762665043162853680235310299875367456095093448491784095970102995743240066085245939728014218232055257139327520197636640373109081946170427416799377195251465891047309144487772965031611197983833163597136680341585441850731263701248856335664359537247721622862884626980640688639786021423769448881839216887684698473846329319566906641864081148218878309256348329820910897903111117667608932611335495779926788285164048465955920446754640670524015351450744509202139059268222312881972978923870218636579567252455634464510730700082828851542299367899634512595147231847765068844740796608261016185365990380250852106075155745452990849545052952380959400960392574917608154329932565551905275630793075778214028662912662604721374262367921076008890901054499895281189627839269443276369172260909622075222971832252474085612048778993951373904594005855298801918332829050979852772745909365939431981875176305790654453250732466315666387824171650451865018384499266822254282608353748703061214553787954438771982805914383354356204182274283026420055355236654312232606038989960947530936651754522768052237017251204170964967559085888034575608622143960008234532674330744401537408454540083012096099797398797062795645982261252548334734286522299824899661418855658199060449578706631440859041508087050652684436701173307873724717341893067638699431112524998976463798595637092368159516634322877989000931128410455476627641532395673292809427864138902954084035356401672021146590128829685957760967872623382977814987728149868020624715123989999868492695155976099988070389858147599618777113547106774120332595452978551702754040551768711416301639456941571299414871548748961675104732707625119590722748098324518950796604943790336243819815440192233139301085119653044748879177540267121837207503477106786664127939036905172069260689631892626080930262487212407752803309420855051874008621766947351582376704590292129481783099747963901363405334881120542886516391651672920813639691517831413500332894231685490899582848204426767727357096948995734189279984432308249047529520427104613072562509058779624170549304227102527222443309065956293658861742876419704075027961986288472461710006405254680250235170035455300980253505788832185036224625487226787738964039551539979116576769545548740387786161047188604800484675130849988118259839936605281142402056751056468523538021079186830287245463808261294055213795825274247994593592306080574009738191171953343615153713053302090657961658533699846093447559352017576238490177625567489835140930577388716599897519328301065265924605212430383339985519785748521299797899190997159456854673335638057996938136300195530316677949924474431109794053501955221169595449506180607953702926258218640454056073942460890962307637391686553956761675320298097675286144589121390395076949852846056024216304494632373114396212856066939303398002434415200386760122257505867662579890003996118541705420000834991163088099631883439132699735282570031309786891366419173861823977859678653988359991457631273114104806567551047065560064185089330554136136653906700100485511988667434373981550115949343895488132896493767792169500752736827516664312581600252364574925400226353430037790234185826007702494731336191057435053032034637832634295090060344928917127232371541615995900200119183483058383280056833592958871006516626003070951998011572910461165967545618770377828158407821350917199964885326552314715234550446548127616911101873314526234540426888460252982057039359700396991846907827001688214938294156032347221200904656828739754913821006795090071829331457126225421894056041743182796811592742243034466454665054809392619721695133190589182737436069559681179427934535056028688464457844067235984219097858843710225216750463467163469123262674973785005063910919652708082263504766424912117951431437355792241484484383217699323631285484680600470855904049555996225092400681113278291746080022853184541263367443260723803616706940829744172308117856735550036664460306354743447427776647203085642580656710607529998873139255046899860463678839015482600128856173764874099204556093125918245730455752741239689956100774794057941336544902405634997164047154120458210861433856942430038102902211796916946497812664100537602647738401820929527224958644106929195514055126425018849656946541196947103745918597206038788040255112579292321983521758580666430577539122552175480241670249011978184781457101429791797711252213225134149717926991209811586376938993787140570361853667106777297539461326346215230652009377708682990458889090548977758006380437318463536968930566193800693050473858313577592584527551944338076515939931205225424489766684915925097566732960357124597829364486712468536688430055465587235546672462284733864733299938102908130455036696211817348782326181365742051098167602712519735313505824968588102619385555534902358378279325930732690115585005309222320369135841349792113654674743391455114093755480753843145218515191910264562726740432807807806435943785638583346765368709381570553655054457274148562440544074178659091722190372505143823801800422099890416388201020868660340947868214212896614074674963503151958012271807247810933778056026851159549560151299566532290859692654130327228703322387143351928018318425767407981404920285034002583506695694130894526125852349203235785074028119496014479305747505838340130029568183176716141995265912878794919115798099901112380968714250516405362527143422467171866678532768859277550788438522662788987488782085457682061851083169816401563997960468967923806159932630498544102259730309296407950172570881297133588756927258715631625565307854307364806593019643181954197093366850551763507263900625998657921135321537588572073910943779409271056344016783711021282927725963232230458100504708479926274910389172520224454190205043574148598557945475061959618065601298041335412978519133922822952419168868763174183866974125111036795772030261535037996299349639479053531696215422451610951576161614349427556374345882752992696050548524052456086764756532531363106130588769783753984305123366148168087978492268566314647753361593818999160823478015476769979182761659750571587817418768801678435672083530685082370783946681980483618393851808571600731886649838568241518258752706537781407196013585869371630685199829462684182133596435788973718697439822900874432032914237011192705939493465735074927211903923302184628973714026836645469100096211314182213274608181328157273238959437324550070254065251692555962385453098755093905000883168288612554906553144637215405441795712611232248829149307157314507060915131946534586272304289343923167841285444328391465841230790865845153570486301157088128706799762597406174386458579146940808964596796776130620995350674261466601623973212575493482943401188610380432585894461602107803702065816418147728979809675699719191202417162844860327183889961078521446338746051497793049412684681152399516737111491531579498323587688636349287187401687550007114919604461555488726907583460034990259020265936526590311673151477309343003530632506601498019702967527670936610256652684155275772903712927277938681676700789022383727114438913947655709674209435414327861554975122401646538754528138127441779730520633393023202480865621825799242714904657922906283927183096997100643280532334600988562777414516172241337749245267339196458522176600002287195916700187298465033800615179133221810816739457037101966211783592043840583789850042209702198598775861505582849885065610810488116288245770560877435383392837655222068336208487621018976747572756310010203542451002421056043073320380523836392426616298550613223911840075375424214285551610052584037199745518249538279851599256334310818970709283296682348268951546556409559279595907697857347061335307465721092914453976535320223586609474222912713061542545571113517519037053830042270477223611098469890992335000628604448117256542233122543255547702228821491610220697372235727187948148863790504692215988514607535734299828793339974701455252288856638565201338764285655134624068732914219245889854030506422436336113331716360384281111180629380021770322431897979438444788627568870586535805307750915112438469334040943062233159967329730787425155291416206075658795731025275649152566054049482156549732241641448905559315242740404340511289414723921647340516653888982809210055701318462994240875934062596940943665824597957623768905918596644066661415969139285328289829726522789902078269376530453082259280664434965925298019797685549625415330936251837301751362172857910634718687066485368137646769290996156093189847268657441121687257448996110264036894554899097132044705314027003444894478934978624493333161315642602747979501168708772106915705307616444092947344098490400569126336702455772346522110595545989137810753627954247880958991406065231218366096497366211060162239269515855908440051776272240704479341953640295231261561093141030084972171989214094887606928992832933445578809785379030242482785197777998753091558293828632150136700307256559356281524670524934618805793382327829741571826248003952029563621337581458667721446254367005979212051861103067584294921166748853848440095881190414632743599457886424100708877719855654706733677398946352548645937064303825432493406218167247356524063224948235383276705400709487171781910258632912645147930034848220436898986411148135808301905251681032762221215772232236525210224798623899174092474339662339324391209544518161208592553600796599886204672135206282330252264858957468876422988279163922226954344767297536578969704103215057629472757995995634960074925215784122602656530250176925247062212616169437692263103235965246410270646389456322893110787621242052682572442654491196469216977945977540152888683433146960817633862409598722513682438913039773077477426108079055343600522395188191596430789155146650347584009684912964633662065134187519478917638058695487447939477571008179014436156063872436593164071073643276210362527638835289418644258597565925362265711808281364886779448369440412209884442042938246716569404071396460102401330670731634795546363797122781965332215136454503301025928894142460341839920260321566036507068884854265198330896419378533016653525064916044721735411742378973509839954949365853472040252422748269103169236897206108408163531046105426751675222934303987156528641774259795392670865163807374856133392572967746416880986177433979940883403574985232922452009174463072293833204414740706924840684495918561755439766845988692801668194423012191952751844308748436496917919061330185577318288376033831722344307923626310356327894041605815912352373724634889201049916561869888343771836459183786247048167761358490319978857548223617489921156016810584150470465053712550562929134287000085970470096971896315804075064654680345013406061578985830459660510417974250333585532053802724873231598440176507094957619931044097005965679703938400490548065129969226420347749275852612086330552262201178364051505679318352743435333385617064920324322884156269170542122236148718700180916780347525844696753822160080606996952262516081235436972151215132414633744531996180714472563456684295637127067183354538305588636512233922620495440491928497489465232717072016885791099619826663860161034210943811925053134120863022278338563637581748000052133463175752439826725480522366917239649660370243001116118829796560005261488683358057621157187610326976237501286309561521784722251882804482770434700476005219890321359760270356191865302659255426245295451632516189246003865576027583319509575559306256691584766851375930898364362156385326016125009280668134499743964757624214705096782992172980596224738201563725506847896515930095866484069626041345572642754862369464060994397129849865209481295754332155093713925483907864328643255747308779741531623168254854902044771186690871796708155643921451289357140617038804168259960679183393416042585760436223797971880035570541528485205483955484339379136473516684587025450701606280393105238021018778709109628054575268729005039678462798762261810332460862089838581182681629700396117696071449918602897073948585652305882368249803241938824649001404522145114358332404748368020502148198357856338519171839062871121554412897328986720806580081919415873611212091126918996129096143338701986993577561483209958232778298785603986033559040174732338501702820017205603034519269528920968708120436398088416740568197327990223169769443179138259109808797029108997521066764784330758938285503801886597543045718426306974465081380240741193048448719296632019409348881250495936965118149696625831154687004804625190690185502354106110100208265266306104060055907349531344762077049945068086232305246003750620008060594599298078061900552101879125545474192791151035685318963585004967832442713173369631704514011493905917139410669597515112697165647119188973760938769086141089817094008552454985221005954517954027122319844709835237695085201831181355781094363253846987830803608770930906680044257870086294398295066124711959202658703939033371990378185133960563495927496483168492877622306279745692102513657782077455276751396751016876912365475110375064450339070088817576932915402993070496001491774256369356805947277117460143100954862185739877701342712690889232617251913692011388018356794348278335601132140550316380860372256829509862806493223990535737002800484004329671233974293494232070109838617119907841315839234117751687271879355603375261006117059231003262622511966536888218926984643393480680593495798274143462464266343331770087350186792287436703954238482786876411984897715835307943710398293885461238709639865259084414203541336675181708221245921311375161184073447821443208562911685473345839839021535596428849539141812884566729959056297985735998673617564200154524247850883039995736797291195859862692493594165541493703593207472650954184550711993497647275276126715584710035352629089641420663208958759851101798543863132199272446554532851691940002653751159166687206343605423688935535311920790963322453460291917524553226989505801510347417231774092851069032247843077294789724948325827204552888792560039423046101381642162847558065994159203460697487193273986938298876783439260236045840923614672991896167753703834483403862463507471411698518696768279984118112145215130824017879063586873518016318382344371316081768405408402217489286407761448304079904824173017774289482809415270934616560521478548078420774891296306141837209945158911731326626545880730308595015109686881063387595797883805534555642351219091916162633099049151854351679885191287922761887122124647633110553281970280495396530466123703722951685741741781944819501599322240099386452311860056997009636588410687632332023638106197678597711589807035159597382681443422298966643858209529517273515170507597869608181922840666395591200722750604189686287921231820657790682416632572698646274768897675482033064692724256728601546929607010426124988890224963083885763274091178323712915431617703729355589799617355208164648716117938937837852310388719982567026187300146984313101693146206870768784030851803126214651203969015208938687076864110087787656041728713065952825329464452126951306440895830921860607031545976643051271327096691698259146335687655007390246663114933884833049190234179550309351049326125614978378718630635643278693097346011901064062720183153314611822225492692549426451744980376285243010154717617993414377965473263031295551008971136672654250682107611085822226444051374852185062605708405910827699216830656815220068520932748198074839086026814704213659687171502247569887088524372541247229267746920236842546011639313043252888543325911822451896921392349314717053774125473063246445647130191540939002325042812866010640857278269398300997010129752173973263744822537529402304643613212558674793117194213451767004032043373777245907608809836538344704625098946674295801034105814478475465765026636685388052992983679521209810336337812907550322008699211207518124484825635476696208366820637067938639122238509792905507289266254755664900252258154573952466383433156284675910812008379100345009864160013382944441815742545969801102779423320476921661983032901126358062467093688960621043639713188221059365133779275459204176451225397972897125624766500224432473027373699779538083551371061903571693730426316009033924646160432376158660942724587120949408147952156755981002318918942264970767116679658370705497655253237524648291617742230445065845606000580502066084401368534273623140911836872507697974790292319539883971255205060879791440278610054338001406377821051912334481589524432146583458449331776318570877579631586716552499192618514851276553732229612509612511890740700806587365147072789644364918022776741781921636619001787974129740011812120324570804019826126750780653029713011517115820249406811562390000271180052272422355578499953560072507151362585490129519777487066398494842993277767213345138613293569680605434739079508159717882186810900472842908604840878271484397550516412002230065634256837514619560081036136595713038176530056705064803003894005628615006094034913269020785644871186540857849393331249873725702422070970161695474151641624127322013376557629749488767235550580787290182400603201985920215540734289526259637762279642463971998854608249711420522565662729321865216038776191512309658758712635333174214251736955178435524469430256593628330735777878970160606907917657259107490091601872089196594202696675137770993609216728036007458159850795865674518755493661551012660532180006734782031180255134161473232043924343934270340232467555796293320767948974421263852460467806241355920052088782173174882608569355453873778649652201861237032683331129660465521349346305614083828249966665433939557883048687108346596874245629176427141335452444445575467109898842042578296617013769959097313954078351656003129429201992582937966894644345262141948821849852763976112005590716877635241358241844789823282838418791493292510214012270875431624227291781454511009398899517336538636750101276858059229858980834886533718608376697323964137070715106774772590885721597544610465371289046893582774106806392731816993476247466533303095084105482247568536638399294694292025241477381980729731191263720427509662295522761386884320487206894865507447612180825698044635928739297750028985963712375316615930388753375248918435530372529924738361226867808698154698110710042986378029880539523464294330128347087704576848809302699589501459271237343266501890075336214524797683206838760541987268384313641009208253206205523271790726245410889673958213579710106035757279129714395371221291478780696756873636681336095345932511078320017143043008820772429302323335207831784219390853591312326904597094671363676579373213508171449135675466875248514137074722961676749065444372049646843867967807723228050306563411095509994660002549742541472594762327966310428280385136926098158209189086935252224917772396420503282161743641221445624969727237837754723692713480647650932434927365783706085431705340770991979432225714923909121907999171635279472547245221818103974535563661640881118577677534423000892383627986673580878445327373487757436745849955331454971241140348291928617207235986489653789963946760374364688049081575824617595598463279924432934512400676816323753443785350338134583030839012780000950512587428790092247523658908462855529323513141825575882370950056769595779500914344423472780408853552153220357903100460813788258952934303391894406159433192591192939078716102748660826925699562982984204850152133211970842649644029528972997028761791666159139963626233717987705013999283910057434639883247598719957934377219918763069051285850053392667866182694092705933954615958779207537390178014198160449874657033535769397765038140390144154697557224900593781702893725878691779376767159707598294590237357519362834726130177570974367550299817889855915247368564963192240633627597813715089899322075412106717818818414482666395236224052481826867394528375190550802384485852588094410215732564071217406827113280337844835827490981374227194651702189484043413186236086914137448835606182516457394179604222218758061912622219603369463632543844254356931302107985382875773223537955269809906352950578828198955685351315004507828832987278611647339447261956940687542353554540693375689086574895263510377277071808065367690868535527671309762477113178231433178507057207391044770431721177457395205146976037402082460621642733441996926088709053021860560591157008664882972108623390503411289655777722330534786629217228729412444620404699515929129523363863346039570761036206374290890365615026674311936774963494731941291785555029693487410536247058832795640207589337246013402918589141799977495115374011178920359211954720635637750896052748492951742960016785167626082764862828122256204383880212250283354997545157463869286291361536458257248968737526124839641061171720872818350323442890851203081892793450582942514999506138490532432239390026319224715712662874075658182673518005924818926970322444438483169621730526641517951747916793549269565372018374837135748550716144529299777849490694846297196503360184678630518584949226421457583824869699380457276633635585861851281647084049733140573442585867868879554864647230357043978672119135659696141217946402692593021769971774683829659620954037657763333830263046771175431859983495260302255103141774115167521604727987236051370858829724473561967094770760597090431239901822507701228899271391027502843547695792199421813775987349252645207084454765322603963021227180563453369681353695867279073514443568601835904490685034754447190296427193943421838268122752180064118289588131985906514235418836877283650079953970695445495951203811267317336570140000655056562614784352806275323787546740378155143265494981038159157235650564757742720245481271419545237063213579028936408115749031091736760177072053283568830980109859374844427820626443955709422882386038025007802343513149399433780157282974201291122976933895770640343905307554238701891917625570791987643733539626949776368155115221337645894853868281958774897551388852268021042149060549083774367394734973671845363910733996892167751840775055644319270987999227222530279062664096041370886513098001254252813303147399021377318643176551947000009503431776111750071556262166674011098936893112883977409564593876165867440587477836568256338917513564359187033462014955520104803339154212024752351748874579061383841923825359253130814299292540148166364480495233844693827198072211315633736375126521247175609807344504530972844333843190774701529396898511789403533733533883052733061515577437384246338079753589636390690233177438766421035521280058674824498751490577529937311619623779528237419039695184828398934610878625512773857662038929595572091646789722673942460432639584933541823242509495994610165263793083045259717173142093084023823082365731820431621230164427295277260589202602879499730591966366734387712408956561083187560158696249044563760597816061109180864003639009222899842571232989193093455670266349162690797746324967080325829291311492816580602814902020051780034715750481534806653279939040697009285105108254295420751065745906924054928255681602825629067806897465304825920081360441293335109968137067417776015629278244737309820980476159965701522359856797523740144655240229980405302043791175527768859265821890620456460150625964358365438685349863307631606699812384393879050725040701428650868974350731299095738559899510658092463171031493822862169642030539699282287191400204425902443446815754217894487446666989745191910238244605614046329271341508525544619647946528828682581712927896903617750461748677924248368301670359180306953152748135209829733632969987900836600488207762225504690899450654441220118594237441447150826085320890289960121243748430626423386775929025718585814335162044443132748121049205548059202484431188153379330692556953516321218062169117583421979380280263767751010752776602449905649590410424423657574893599642239789607791109152599603257065816633274912760800653181252866086185330315485487301051496352943405881438310134415731357530115410068260398268209637502592283636320904442201200273317153625399943835217293206225477279400441482188983286516192722832289746364451906375998537936541857382303007057442379675002284813516826543761589472578263728367299562876109526347733786990344507762041640345359512150138649287441854780717097518600142896108655133318705762941271984725403241599921337200744792378007602415584041280393573739572621392473082174473274782729734881766395193231204046301892869279210853098222486212573805084080892128411381900374253442663154700056186957697923584153424188589123866573654518055260638284144033818725180276787309400926052603964393728932449798283552371996826229769400968344949270619926613501643732108854327977095452908875143292771183641925880600337524360721281685018593622483647776043679083492434511577752205392141906040628035447566100979970652835402052251033842467026692261785092039986458971015453273049549814674801109688892204044742007722617700686361094730925646861869438319829418232915968212033611112692300123603175970732901216370197270259116069164703615757299308601528976861434423584369360266856023669158830999374858890632890371329261169672935397881645200635897722607637126423575793841652605367122882700686026386051750337190206698819834914791654993821530195121668866941443363699196866972517365710112451480803968880900261310823322851690538498495840732477848159729413894595464949329235936304245967428916417916369509229832563851490595884198288651910865374959145897419411655610378066185088234016629324661689357013946854078719223226311028643084796480130258040544628114299114074661997741427718674392627196505980088350921700619151898858121851693349824212756940484300044919128162671971312026878012579601411543502368051085383223004283643168661259879143670222091742372388860399549451370993783407567711431458031606757272093241146573922389391381676473252103473632486882476964570499464643756958783208155947286102389936690391624501386557171180221519811602687675120222048135283581575567700076293052393331304494946779438399576304019695006345449688616016165589025250127176797790421297065230841948670016767716313948347610502390569882279980984686876295818440021744477070898817460891348280235437174412278400778362351491124207588149744831023663353751298713036878105873374630584271285502200898431231298211466898038820134034747110662696583107282459068903287237599590995748471950921274599585297790154514260262650933570515977914729786629120713095248100486263659169592439000302011814098395160751208961722155379186677747730088698734009937870912597609189382049674923685270092719460905476679828381622698495611643706155021111690319645480186915617006231423106557573000141684298680280395496148081017712297654201917093052670724230203461917422641838826681554577661194046276299737036244359960126759249836547285840062497715012551678820057258966601846517977672571804490066003164137258086359694982599587623645273330108007652525160844170087821423954221073855578278766384230379127477739160228706346689544870602656233056392136600192357129980314715118982351082876312009075786707109074436894082393955388583685692886027421596814681580484454927587640417005022891641231819951570859752013986420332538744455677864609303605953121707188124497217461112806267376065242326566418519306077446393606222074403757591827348339235622037021385375892429783675486886233774716944741102080816010034101264100554141300777265612166679051125729997289930813207482397068922287285845835823600002375639390789676332385511586448969852451335208060994578123259697137180824372619354679441584324815949751033647894123255198335226331155180543799284168604351699213158989206790697501281200171512614481490082005415619500611912823114884752609953728113608992700808304779499147619522240260580588945571237962658084044588463794075825176457486172314841730476884088852184867875392069364674505630649922343527714624505275921935088375817120943691526628251543228503891325439379766619065270335591678099318450477802952479441671677345304990609663004087339925819472960828124990220372250802589664318097189100728669594963947702989673125735115706609856668898209731009064729694631720661063473975901557189175177663586950640796559596257736202204662197603138311979319218517347950379294928881102904845182361208431935015315986065749148768653324520403240144025833157948193115338999702584617719996861635976388095765125884545888909130756380697072718188725704087968259245455617901705382446536414069614177816882205930963507354335992209044151729295819669329258491547667368638995770340669491700161590547726691705529033066590498386470962402434911041425208103606925495063087828745759785662139030119877353408627238795098582585579199731889247778550038782805100313130631761146227721721539752381320953587354227126773546798618739012615049880377505510887231090788766580040840864045456511547893273713588570462567733280912786083840728568287685224727675537320859405100272580450749811577653454917351911217027157980362040334280699475787815239709524605357173951680159860435101458906213608072709874741430662136355430654824500112252531241105030420263261947112256957859225876609981633353014572957677190045733575991686436060805554902772425548499573879724804347146200688371775233757702124467089235385123343673913761492685270773150895749704571635641186461098010740693051028889516795586124787674138124507156901001527388597264195392124540690312677571858645613567741168494421440756034697446638098969927049096631983362064782756077180844355466675992395780496029106072211678302289284380061860211729022081768363595258818449853014092524870105597319236137508067433503587614461124012888734412538706016731037552024313862170654233214147281378516287443180224250666871159236088515846121997100304516601610599752423624646976041624288990226969331848375600725770199187215276967992362703453267662202972526528078124002754634105442245819169522809121694016002513966303466018900447948451794004082914307842024794382689719309163671489289470188371678624992663661082863323988690759411313973376006685546509671179612420718283793256236565301109181437847914545504543081088667052975056107082701186999587488752382925485366619000179747600557838494381596571187623154390097189899962491702481955910344701753432058965832502205100164126240595724176957028768992901519841467300221285537853908197976033563513171297737575789086623721808386602161555154132866003904765652098750944766639610015165885697937378328190549069384889351102289585346822739383071891551657989890746277808469541286487524489569632552849439374218984458366488002645998446136395487562573851637042675729261762426330118980004775930448820553283651073416525676294469745157734734224717578785553395505769610613778035372142489491233887898951805578141441591067783479773021278030240213283164933389075097545987406295715290087281937731667203035425073154498276082954628649356036163770164341628904501943039897696317175330722573368735667197362548137673538422603823932908689132467344406039480603700189556240554389358513018422218016084959367636014804486691430937077473041993459355778096325868497368954148410159136545792176524888568061998445735208955822358422453412001386442488888839147978705964060948179526349015515395943988928075236573934669550894158190556924461445482396484186349241048399071953149069527410588127738281148698174162652640139204634843303689928521190292944823109777248276764234794888772980516666944576694356528761306063283365676754069469845983399872214352251349195465888740444625797478583582127027361969803400250195022112073695335870730615851848428349270830308313807261085161864633422960787981863161885064098961791007340843985884786061215231410958063871506968420392722897966715798345616671562312776770928344658337257524437329249226437810697109042113200643606739396449714907185506857864339845234601698447893082215415025747225550243407274385438256408955779938671939672398255095988733614425981632640389510638351228284759105052326512257765741322910480510322621097752220567611411468107999367058346000905011898547475778956266823923811745854612156847523353939187298695714781806454109579083098691907165855102792710862934342707533875926210608865049058155715174889406211082301717084998204245118854744038840352700069340083797524194009328473650269027524410535327239578974591238949877754802460164163452904779168267929927172446622392761243252268499473416232933841954910666198733937434915030403037362492390624294369759881632906967842181672158689857751268660822015627641283754538159605426821808227017427486770403185861975585409016273144576326487438743290579720732595915174426491876077181333615643031129327445657259529644558846224203608046288311890149019366231417518319845606437462206977047902313279324266307729874094750499334985791433318471928513810266678094095509001840602830619747914425686174919491434083048074884708700301748730903147685588024398809177722777840480930884565419564585496256019105729982038606014788578910604621982257279799235889089119057990119223310644416320713863381454059973238414045055379845603476290387570679728350716296325558382361365140404631311441677949159482964678384039943650103814573479904912088446067349887296747454936395346334287174366292710540193268278158282419082972989745304834692821903069420413164740798126231382879261812786342904181834275064898015274893631860308444093046718981875954247043891604014421282332093980018607344639460481342302203680554400639698891520212512277896276771285791848253255069573738519676537142577648647781476354994466585527948679100221063815533657379612318912534743605525096174452601183617911807560812892177336571560885674487156842224347926955328813877799457235456473264787668696928872029351794701690929557397371729862953251089641346893317173059923542196627509032964796532721374912342863004860415609000922751726260847915456194911438544537720196970787736574128022560710370668107281001983740987905093140759857576269284878140372435435664811258812164576447290080581825355394872400965423935817569956802275209075995946960248841614342111035385482898545984111356410373466446592137711849428496694752147799053293679165439807806720189200847860167173327181578913370113438165201206207868425663662416883830218104797615920127036638878096361117416478011618400538091550358954687918738629100349572612025412197551443265082331439021172680375830760396105833623065097212558172886629571532938621532095219174269804309310077552065542638432085089092672336759052580260477274415876535022125379363537991012557439864085158091808393353481145308756930193765718207673343712876856624138895302596441609861676401463557059546097330608669656661867847249134664809386096354316055926413275211903608332266318003678716657328103050384356979331651493015167376174649434939072047824272674906190421176895690496990840174616710061749157953599754645053658224137282178404555641605659849837638952663340715580035948751455249196012811778896643919121031213683170384978049273922743471227126582422557166402690293598940490496069790764694862743402680448181673704394189714070840353609734921624486930880593125988505639284752100279576831370664640373858209875349254328711426129387055507650860981920757849965074327903364262498366907880365200775621334452903760229194253455192308551240458810342881059866670471731814986806892798141162975273179887474490075513605402912433050945904778898362599172302762628320903429838581385010490803412268011055556716419997899284691337153709942353869165430619983226132761550710431287748678965467604474791422269987034811998184339458136049182790478386231018364928765357427596531299818331475833687387564246524051554396377965649603498907665110636974843146119979097888141519249261855880214449735899896714217617315606534561437181056030355467534269448668738663516034485096367210153282220415704107279851261419764977275836637506494543398243575008454538219638017642760489865551883923550087752103675412861388612987313330954105734156547831362031269019674252348507163839887821248131181792845815911684500737018768684694312572581126591486847384545216006012819916647555888679916707185630937728373574539323314116400279566251052009547869198808094070097700250700760222973668254413998689458920063982986099130406641745145221968411712025452300981026040918114957579927770598307347249111415640446256402562187231182360264448201469225504294648421201392452262979000236883236177935820384160530414162575688160440150066207885807813955736161323034862008400483818538286566299360947337677262278804626014151869415532179137832758089592161034663957288213105390817303430131441314104928308494241470449530684413310767819385473196373060311351650098685075945450836186158876343752458968213805109618673308614433718701900955689318003532261052343585059358915790633412123275833053045289678245267456851602679594646561121159497427336518346802796185872189642234792151435702718614429025128746380208724465465760936817265339620790229625112763878473961282480760676222545950895289908723860612744918630313662526579942159552441570726588218391693181477881739522085217510497298988989039955752961764589568943865564397120452537589407292634193596562404426561141630611675695575279243869293696809273219993652901884189418093532320611738121394281565346550945968429530461480624806485659228552332252740113002703906575173970528818643458978999845600368614419832727230807263163330768665844138390021630204517280725883386043864966183942341482588697136189608814061145583019783497334536474057075906951639685053547675102334308874077904244649226740773609920929151798276255206231126176255267631483963358018352733227432551163502062354914024116308227081037980010716759711061895461744882629722942411730697439397474802189603919333982992739816311168365341418788639362359723529095912030475924544983650922515016833102267125762395941117700553198379014611398679916417739419605409823660338737821416272422923011558250109638863461307670209662851618532275663869995435721717068591947117225395302469191374362519844548861031707863725796679503594407090022624182935025545355745943284968939170850183776022011367907889880507809532647238675030862079948066230642155410496423752625434688163972029247705083345836978900692283704937199110801494682371900216915549560472673142888683971709063649167616071776257013716736424287897763959580318623876624872241538473266980790406956021000173401947624703234963968319625631275462749667477481944471266357076897275608306537618946116170161932962724947213277250641209396822650858926526656261360436418028110382760610993346373195075957055269702580746374044206681022495441089117452198473239891339497186115130199407067330784974557169918549736795541535060570071490746309123192675128516198437256547765116232922670432894469314007190680652352035984058029083245674064019001489466622503254351760087682176068370260496037030573198240905697537599245240581103357528187171312861183496625588211089682048629040617958981751548148318815572564101243978577426470571813355788104061572871511430723077787004218459731232475558526653976722910857840771335741520304796134678610095306879061899876895191971244582483721519214604161783175924485982710083979208350000566194127554668956012511981190286063896138908499251087785347639813937666990321139380238572676438460627017510945110373853943201390143524388430620365668805701399910929410375947304371024011146860856777926569558629043146490994772042807346484399039323728089669701575504639820246157387186928923102208339261839126788825175649664052810267200254020671979535797315180431139530309509579740143498365804191514885349089460186306727836624125041293969578411252867744193846113163706809243666136296958040707239505933366338065029089000342971269046626053156215939220106834333135619923218688340857633719220328725444725390634451536093706169058327525038977640028398929495541169475588120340816502729928971394040108105728064858011396334100487372544114886729332488057301979723112278512333230721098392918209639892849208859781722013797477728356117955321751493919041100315410729986176826173539689826883150125206842720571154106097939222067400268547029108326493984619921043810180648563868872947581025322442790579438406608319223175006050146259552702728147971669754296350602662701655145016426549516950314398365899360371338406899293730887874324922296985251650039012994808273605670237313654681048420281901720785064282587957992493542006598105478233548271374115574348027736814551610322249999135319170789380080204211845538127633820869251964176227180944476999438375152645583863309564490398231633946103782991595892556382324721932575733073750572405211142579237452113478152458854228364631025657244528048098556826241899147431170600734259665553647757857761770310943102058551898147147603893217583178292654686509886408299710764454173120596744346384185687491539094531054341206197964879983297633770163083963187384093331008841874497189155078193492415968253839769489004343439055410068746568327875960270896906756575001350492425945855915068876965275266602332902414431232700504827411115169519042826890040984994732413525457895527566875995817143215816552517947671824785106196224857281041488469100168431053411381983206762905904862187318315203351117772445130785762610577107818793262459577977442346186996144667915003454555940891100789285139539969841987392040280470537641725695420479638003976822607000610695088508758649539227667559818207659920659139695222086879388822915260083398960767798321580644966529009188932961238056026284105161840316636434385616552713762919018183071574585832122648267079803781138545202503926816292538091244802474903691521193689316173342741496540852633853414369993874746542638192791018563367251008460107911709787433810744344920739140249355595156185903389165097946024466002726433374339468322698636528566426844168107334591508194751357804806398019539834021923145450298776827694465584729554894331795334164859883929169408083612767959540817364274541745582093788242350549521643695137416979244849374122944875647239372856723707602015251156729060634431611658086889737008818187252830393635881013906682549850895385722492684020756396414519323894932831906325530936056757158930132460270361774030820210871033883247952439587410487391070946661327028417789456019311421745726737168822057603102136017509737851124321823478356080330855705368922806691467835645749622430110486258301661621203850465495440613027768786827597059945206632403720291579864758222289148419147769974277426563202248985238445475303212525136662981328116061837336955638479109604757466448995093521228595988056266896276044198208805183443795534294458258782272793377207970689330131134112525060630512814166478447855108005859488547202525340750647228944320298819106381818129710147183000328263755378274256236453310150773969531120451886187545694737021315058758406552629997691634208978615664627222645732904317685802883377667715768229644631491447416709948784400055229903468731876086283942033305661845477103763444139280945121260743772297411810466261498993942541105776655084909820964715248128891222213499985032021984661099893354271644322195209111972050091550293587128055750703043382324654949911495568732152852928924250908797006855776625965097534138435455558044704694772716391305327731360373151449537644755453109960840252503041387632769446497332205420698394762496339056475652409941115431161466176767618976397088503327705076542786099650437675187495387029961800221573751414673026760468137260398579637913471807847483309822214426779347734992983359145771323561767506599929817705362932710711818796591272651750848477300777200898924029701125622885155899887505603979105346816451169412206412757314864397661769531523163230804677415918168381810186047273869741528699278025475758805737030054110227660320996723107666751509160174386689112844160480894560168869723344888772934617992834992148788407714367205623835935491603879094474196569233316485797013367064282941382297627069158133793341639730032669902873083991747257403037525386090710838685370184189724930347039532746270147298788759596654872653352462805414125834150025402458061070284242813360119700070619528910095366055446844708272112164217620166625397378284454143283132984405866272213336694664590245147734211049838643192303471551345075817771286217257451572155722047660712064582898537672431902858060743476664625269043142103752086458649808543993969658530348687504294663085556178555732244914273963863675845663863223885869322289004385406369042603624709086101828817528238884261749960030195960702294805480388848973912444649928985082142545023716048574972403120558664639399496152204489061486505518433288085058402865649193421492760164400298398272513420509363642296387762328655751712250230569827602548993531685899630235087711421162947066077013033063526582666652563712206018086133709183235325353207903636282666641033658486214976615162965508857487237840987453018743218339513221736964359228552833318352445028941096588217428152534211871649124596114204992773736034603918848501123861371774701148019895112963547749391463287857423269598160445598901460932981687415834545481690805302253842845091066539515591592027583179027315444592577369046409726944022092731798825456018597406183423479742480113840504187499502354065465522902451198286472191136996926054469992994679333401641428228510374887960213386122475747901734167144116378570309664273574916081484735792227606495902059236455596480216235120314221596426395385802576122052085597270228871230861224859943431388698858239043828553337443502323246303966546249461406530488604432007297615957248350576260614529070859058039167097643812690687057705309061743420009595813373678454349079951566607984189517849301887367978187793949268932381178037671599976113407370387225194573404621943236392428116416502839840955589161073050310916082545256321820750211053606805766387471604189548811485061606786789610998790594249100400061414365042595092212733031949153984339061990208060390542688776241661576892670191843119780616412188044303005877560256336354543884150116438044084209977660986264511894908546029674091574308655637781574749245216137951451698396504848322031407459538661703582367023568884668054242993959323072918926618581386133511819217950711949931286581660107748522051458187702078261431442567764515246958217538925584556153501222997671864389013041811083878597617420159641501072634521160300830763446132840304815380055912650277433810579331169273580359076468311823244506950936014840277517970807627902310771922547323149390986603975051191814273484470978111221886649478110893035541311721810563119061472952165191531278037989993775308866885845735182137068410959716904575246671266716931532461633731318316719224370154590042584800634499512922269598325360673493670279441266311543253895991911739005802143900995799399657096401980296683204236027126381754892056883968422661441541625377626574772719750573105713298071204829484964283509639803517158529100163177435929049738464505193878880200589038204822150490959051800077372530992825004741644576384701705018194776110685406980123703950768765746838463371194768263419907491877754303082579513669956547062360499395425539148621237871324702909699647955255355110410895834978307024387885986605846053067216121654870261968907822522695093185190607643699771369739088288558910372266365226210056090930501000409914977821317600698614760655500212935203319269783863601234237294223837355255272013085312564257418202134608473122741167400372083335988902711197362581139711366598150644219103675566226148356935011549785575841090325976461704289693680041546143875669019169513666439601680782431737850132786055077564909409584278937185496159854684680416388440657811029653978072413791965349264389338939358317496500803785970626766228773850479457042972513312454256591479461331441284116106647804392458917762700553648369849366538463222052543628148429759401837467714368135359562929196754578051462864049050720472946911236814746661099849454887134664826389212806287790878174864571338178882038510585641827453904221632220623013793545227836480855604609417862153063495359348596574160639471275225610993894550667144729937905869948636406960653624085815560136836103756469061302832800602642433766829777436197282464998244715897157079697690255866383685406747270312519826216295875647500360329815998055834577416557876924167808409668280657216100119418515498506030352559836952588819056597150141900751663385178375173359192924611300103309097013173924884561691904341581173687333885163237263649231042360127047586411521316197634562618423921065113560723332045570682506619503865398891338462329480824008112759465867616646972810949011066178097692320258592570122475900278489290459788661549709545609255360189176118408921906185833694532948771705709463081970043126553500465734055517106526041266340011810560479724728934506633562241172174350360889806179458004718260396065527879359764981233802247166390314582526501398538008473336208414460980315326522281963303517774846707989243230042718152408194379757093872783673724069624216434878527464574577606358379539205999723593769250280557751361778835596404707356227321058791650420582297585727436649334075012593681701385241337274763371042037900130161613367813087870307330298488937446994536069793890730904800906366442844176475113185693699416388230572322169220899538415213163278640633495017999589044847081174793486458108709309511067603476856497648847983191304993596875426228241661920715700428420528990520106016531053620390432754397429096796148416180438909612455986359057415396392299683503101420091117139138699481158651724551778340589391611819426603023981511211989107820270315193927451354255454890339659282789410392257430252535755513664128433069682310051323700073074685302135860353185129051930714949094452550479817487239666870785101621772385222081655979485213656712601975419550444290249321010937682591660319845848076171485694955544148406241595373293074362973321614190014441720460184018607888021055626889101533620996180982416139094119131723726377638923406945146009840847737034993871791146475777166052010345754186098327595160386201446469226748328059316016757868610561386371414125678362824104009101095967811187567941537051540764028641196218965600921531152969621443129196492967386942370504263007051045953730037510948037249396956111856103078308559638584756633836200379881372918754919077892854257723942865400449904458881158091138003296445083645288420263254745023019987973904923648226737642038302230540571467832481401255579964628510982422671307775410672015137634163353104878341685175632751126085672057009867132092196369232343853988952263210381491844186240014145981867121496447919536012491774700107380667458577849897604648684958831778676739217776591158602221100657189408226278008068913322654821038086870479369261396115797832162448166154029624177604887263623073123203147794529634057606452290937892919406737952879353332197177817181153295145080566846195766442266426245578947978892121803302784541313672692202486103325575636944207445532210651633346700961679331004837288493833880661743234590616870312077487661572230882749603104939700158789513528288886204791206978760854523632463544998406217884087831116046497969109807297985769974113381840869629021186695076183039321587074091193405574294806096514482221607427121413137602085054943418401392289001600383419593330998212751338109665870088977275569942481660854599331960602318797216428611339036135481832417194269398090245697074102867086904844422468433948398741499182099061056723321266343798199324951848582719167091703635528578891681338066839230811564618332519965499530501505939939558017680214298050810436951265476909425119055681396242680483181949265785531385935408659117275253841740170660373834933972202470805440935104991430321842552843990015804505680587633825896444815035940282895942172536569507576044918362580290205145806370552916498481741755068071034265362029752897259417675458251299946464974728990605126067944672323689519274703894047853869630345733153790693124260422160380120017473412183819031836188367645260589371643529098490120961639558821347780256611123254005078762606752908641993863532753303962714700283403996662295922056872723004322556264256204737357448158811321317019770707160322896341686167472888229523508281002870923172078664778996869439493445875704879201243011170104906762174343323745809461455444705541606690098925710364317812510349338198270433568409650630724078410621145599839317608860176046375835936114443470138127019772506984777276820327087892802082644226343388720186259491431808789318401121939156446786333737344868424822403937037577147429356686584850135630160280207291680478528408963300097940598001134018891106809943640883835882624352155531429504505076229094042639042230713938798058456264303084728100556251496027571905107086900567381393440429957639165285745375622411092411515866482807404946866569825997294594952041360349086559856618396586372835240021108018495055861536357167743208151928078930291685670269664715847027557426498924104376453359659783611523377625055208907465393591448026208368660124861939931968069828195851898336540838429617793240685028110466041178749266994384844816667310637406119125510002102336381732105945809530641970078445012199149470718328095838601370031020928209621021095187572730641109073152338919055861921630995647837516346348730632305670442484058137008174928718736446347857391709090749132785787426145398746484967887692460849210250747069293568018278454463074111397494261220588981905557809906527554325870031336314178701450054970544496836369643737929846247933158383516144813173527435415866856284303937776933244241893494089812564229225382479633991307059967637766457544614490403885297428780361392726553935297151821582281271830705736222112755728298265013710594911812222407935477833310978319700962584436229353707377297034888645738767381318399481188841385917454547098327532437106752429379397053717537159854911228929453084349134988443702692183635970640030735110655791039424847757432648959377048170132550758942544181808871897551621977314257261483337988123684801993937345076594512286287385799938046842434670645210119295389358054308747957530674991612966047897840253680767181768338510448743760767338837591097193429678801983970480178893098333672783116604388130011262237240420365668622666604482511834589885785826768223413599959495477072938544566347601400899223674220555454550271948483069178100479047917335598211499917428065733814770325174184931522820233164247319538989928893966912920569595433404970820681997624994843301009702663008032935330214548087609409054681185172568310412676256010189207825710368080098027434780814988402308378292440365669189353389587222433458706260536712609033520842802597071786943131484092081880924536485141023915556498512315210899226970461132741212094568223417804363338769842809573255989811111532988589455826416380903825385831280407477647390396304636418953400287567978924673097771486421223252814966442453509748653503469781639248371565439187379180771344013575614709194204002634911672301920101650447993493855683157487815719348742325282295797708328221195231788086695987425313318760604430999211843233471968600154695635169625810041190214609810940044590495327263663770297619547006815967089261382931501808239722056077171171645038373207887068082372506967123483366157783413955844284666503258269608610021849110509147078071731978879230043951655359435436105566638403576234210180463516988048750698404583424859879456550279913125262235109567075898937108116861721529514762360082763611363667143578269639299721457099547488263445257999588072249172557522814823222902438676947222762455920290480996008699424321355364069077468727496498437103639674745960705366891647457067554760560346070358036477979912457896573967256011744130076370030356158970654634408966771464064181841165228412810583354375324849059439003811792917218261072387090745645932602871206573462817823360797028693980086864279291190610484658073654906290310450168111008282241603824279925778627265350963904799034295231119064498961705699968422587205863521036702340034500613203713299483602413452798430758167337190370731420749201625079258852383466325056908670698734097641621232437574016586126578799039459715542780817713325659767098842180309735865382568514141328256780473834256264043413074132948319509429917684430519683784019503807611746966097232006285287041136239510387818771437287192341406287917930027808258252041092850137038469933738913960279654159372603980310220689712611013114800495841503796606021259079799049281767350283790812922630649707302495068105452600162241308483097291451116453832292455421389989806027218040579299824097849662622731039313868275644697545751672529069265940644754994768902079765478476527220261365762461211981850755332243141615240934479858970830119798111844339084940564583619240695360786647430431853772842179053269117828171276215421998542185527807627549845504227861679259390170714667072013773376742996074153869491897003333806650838865542866507909771597881572041892582533423480854420146601680076869687954781000792966740363789265361192321095275814746784268091636118910709993848050827476736746389685724132137098813755358223518728390250181624071294911352187485756432834953961556577348345718865679544932006544447219587927115108024542266617923591275755085433226640886543638394351868817470876714429738486429724599151220163877376082568406391228977641951496974378986875384158130260107714606525894116880580681909817878458825475144513240647064034453109096730288308617568517984589542162603944370275345753003712233709042575961053135862385403674104450593730509631462989788285625336005159984822661130372474940380348937149816660498115467758154339662018204780904222753494697560776300731167736489495292488787061837740906583591475393728263092544837916691985269591933430171482390254130147456379862230997180089281488018127210812813676714550684701043325904483030792178853709954128860528893373883411567882325034179238206855353996573446838121789898329342984864452996288853331429747493025203382408896164414207504916068819920899622189845442307547398739339069246273476142034062947348778807278283273728141443907567483023469709330311194641463770858633575844605149234159277334141431613354430544527021909854588440464374610025770373686713930848463337163571884342805144305012570183231080422329771321634009279578961374775747352723663240271893462604338837788647707476366944936252806372062593156210828679761591567179146843062663418401063280977762783220913756929431228698863671858216220139648037124674298105031698183650005432097149998662913954575526721346974357167789866733906745653541080977531933618325203314704012515906888311611804481517802302534753889155576009734786719585063995362770787472672978140992854762758079971054369126044943772127701640736540715425637394215781779897514635359135886810736538494321406618537411164028212733422673526235456695805825151973571200596107767640198696651829498722042769783964356830699741920469131696190989063885776584493899422192274477621425854219259128134529951323106971679219237587435280103654132383415892543752704572779318352083010940529976604490789299385287710303103499517846369330365669796750509919270182688191224246813632137691578434007841483219209719244575760614880194071402846705677637819447529359787863368755592061501299235622406630016138254966550745303952835566143760513303545999466151722600711764437117258932491194880741324956138168049962297787584534231356242896612873075742080728571058823578745107373787223993692200330668672229502417509795069155911631239124163348229534105469715557893005871778666257432254778741631458885678342954996552132974664324131580291879134847924138184327999057813004598603931093794445501809199500498257711348596125365021512631260531161243744020130780575626813978308932404873183120242673897641404362109756750877157901366816955982995470026324406947593238347308948007221073723853042436139588459398018879593714583907498936999136558897361632531098966271826023844179523599838201212708648371626321321691781560841890328978928346428600767679861430199098861840764460931591408123579844225260204604250939367399388983248201989931368297853277118644851867319875534643123171266551330762339437324945885369045239711790204183221944352800018403467421829210614753593593293728989013249870707486788261500646124292850366844599016186165313444617897292888162967787894887781775577875188412760449741833704230164020225682959807472058951954119401908466030136848399173489930095491035599370838107941837727419663749840955718559204540869520027653786702776881736025486355706319965028546747140361133884689608988809658631025577596466031300332886926620671200756461823840092057556587373832606018616912534021362344951844795438043793017616388076266659629899311083006197202551771239994175646748908122093388909204748369908044242303300411397326178064465434229918706486756240176267449662182500950964043820705460964019524272694670598455538989851302270716138307786854392362397049852510261201696186383567719490424627351482192163436053765028185276658530982956682462296732731713080461636828290298608676700326563938120549235469823127911915721603535904320886848120406091650851115043288943613203265016993499484721160936894491129948943576157927150272755103410043531480503469727449010720435657647046498467904967079099329543743721098547066598816530734178571709653255877105485493178326573868884865251581618672510939752884008208171677589060133539687660918342163095162804882414470004083216874252568281614355595704989517760467751086900882858051154069538000005050621864334431066002646725717611892751015964920469184885706382614452828108742713620203838001717664102578308846710804077418979800500396729862615643798299967005333055553170497395703833479167749399948432695315089137199468384170139479180116488692565299515647199182251970043723829174481666534167626217193998078696105062316207869340022864837614981100862843108744938481659164341788586084154114406423818983818320234812586678934896715912209369742545141268986868974830960256288645983133082520720589215604162065561698186980515262781261568236564827136225808967469361551662251231702108219288069013992351599761114229533304282876621753075712560376729062164727070596169232228646174453736894403171722160030099321216296811109759815572413927987004903853252868376857960409172795769518738593373274178009596167813508819473927199981168346084386969009535739263052366430781383295383809760188107878354112286540985641208269662891415905645654375206541385826328861696892860985150660505854347509908261996318778453197036498279242229680254616673813658290340924934234938726745379898711431942498279697103190445744423275992234468925005412117707914615182501652485858709444258331767630198678143085848786406243418101606849153504869387155062757485791814264559066729690808405244600030224826679950017956413946672677329173235345870611751074670961857633894537170127049385868622100263929194814882120729805770742027539859706150124055096829284615233908200918758273610422787106971736833798304791664839227764895877558585759706271084262338612790104205750043523703775730188761693370815404245434596178022493297481926779211419758230618063567021616815414297650721773665227117232756495934863644600114919310170876010762737127613966628756572558388895541677762494660894701034144946038550035295005619102512141615106378195152179739139304995145134425914182380057825940364908425449559159055432357170029159615109713319806809383631392181677049400665522095480238172742306155768024998391616217127677744749724287332942526439660734857153211972609273504041079067362496001197022740769052418714411657501640724083796462733448409394694656705590553297601350194247169661473614655225271124993418393078403790806162564154877262677522550841269393802703370146021666801599020599837616535250499864955468140616723600707158228047761661543076819110662070738990670905145017936315929368874986656046859246085206875256528950074370575050301476475626493723493156310827059830828219648291460593746128556810686884487211418366410329471031399661205286045891288067518862496905402949144570763311666347623741524221812144795159076075685588404470041255733810067222675136953082355635616388393719071583001407301776939130162660979778650766899598306697131004121431801266295088360634477531114512451261657327989270898208906468962446498035969847401331149883131290321106474469331221845809794628786821969888754525175118937820831946855227946456511605351446881580943260078745676666305654379076580865073374926081664430512274169260592120112095134139563888087067606811007599793289916307107069926916876748623475693403802718554250167687335284935699757109547188791538784644145858313158142676745877748831964895027950718605467978046279501747963342035959434604012417805950384103815557808222957613399423602538740153683094250528002845919745631641996339192725590063232123690557547382604466096345997846964826969412656529884920712263103754923167103626649207788584354006421804431696907353342469016879264950392864792251329740774377178453403616631409143549136771955993552126314545580732712423700748424526973504763623095020492155408871612257902956586196205101250753780436257173537993206628621094887399955103087511427359480807929435460414923916351667604255713087104735144020723463818394814813295702206405170841339337384092730148734752218274450916809236693410898620205694826001606393085911951073853006983843693197860727676794965353606450248999425942449760480751965689256489386013564756853980509536307783228794375445626884489712465471676555342610406619150080859080440411126235409802721805316573604412490803487448416383430428308785782745183543512834306953247465317101593900412349294353972427375001714173109506538259267393349416507462951535151870881235775841934639762776807501003998850752657660918132420107241534819286847602880133850950519330864366762331935110358526661956778433691748384667969624423733570646158157755835871524102047148681797727705598762540581749935886665848225186255981816622520966010522582903401876928003501780476439729972413171019480690340070271816637124443461699373855138905187065263694582017458214257131260793605734961401874282631272984950555154312086755069531133532287508056512100209470337243493180612733344645492451913884501919132674841858198914110381167257462444311714708754383124752199054560440317816713266411618812343237362048828617331898305163555573145267143146533948045739825753425620666018940675046670441585409403487770608743969931177082728541115850998025385871184243200578115481888227283349213438898792538850637512012931791939854185527457479233489097598114862702117241439830538865550843062797619137131030468598813254904084880189468605417505073829286178830675711699174282758246758228561423264901631436179764947046466985941823947265973963098979862308521120903206699731594320926034409838755760789176659508484607235101239165370520053337960265073142272706974245156124708074400611521158909197552587655566850324188071037721360314559442860692686660178314695743180068374786659714867531628583858585892456645478703027019885544897555621422607259376684328267582571175355885183217017877092998126960338048767492138009302985732339397502538232938280373773519707066316552601890904217868726114888295999549827293098590090616787484912723340811932591787961820521998115967226482011439078569896319781386807647350858855825076021538700664981188557810077740635386038566083278652786467123030205945909782957927766111320321256754609349085225228582193105713231379239234316449326460145026130384733018686957832957333786274870390787207934609256042424532152517381157639987101346481594953977770129491307837715896002988174534016352592480344313252804695476082399273592450630616675177144671939519275594313878608458000768405958285452549231983006436379690719276845826853553077112323478979303938013327307758027816770115743408981502801094742659304638959609766534589725974445435579905416186234807548028065017099489851704346443245966614448246500512130682015146912585536855558547911374656167423382944458342457905211600688857381117797357080416412772826400064024336512477859274579136568535489849553073693487334081066935278790562145710685130432709579168394558084044191957937836790666295988414887022479962183566300000485026887925396231237581565266875307690028687660083632029227373607271231999914581589595525248620232949340773548205500765432935933719139415957849062460955491819040537290460696888108086680782057899050415382271632518341939220707007108874672800197684301537760714683555360557760899758232785657976411597168977477636822420510449859307122507954875146179610808379815012166334227328536552646008979699835876004351371945974429912546662946775111908782426171242856263670188562337774876289303901555007967210709980611956777014930944721025708807111252719470754433856387376859596010661991089650336901790458050960043041049367225778121143111886295422426800875456081943670438391103251810310596869248037583624772291067142586653174919184570965328707672537792596110276696574782518067210449297670177659876513519762299571007203046733804486661132986645315381106604762801730106720571142987146859841407749989904890104229509877994074558163498462609178091338042974739209873841796115724429894010003743105634164074261212267169611006579006783495802038649178231115018143684920831779922327428775139355511183338874738254293520949434371316297219901156015385006003898730431353782278626832034690719485414098001412251948822301093366378046181200063596523515787909155366004531245177580958304105235674868024477967236856460818414776358503615802124061089224189480348800093843932775074536407748697481856586001532849281538570325184387254930712095428654372785175228099409364028545934323345212429381942677308820954931944191034356254786690962736129366214243889075324108430018224557513897609854799729030434758666028329508962311519443091029014753671798037177901160271166898085682062650525025887654674698720853778127947241421788887606536367974370638508032418537436642771407230148149300939483637050702574401028047122446905923993538827774233794130591329181075110426349375606474156664552644157340993410912085033799030500356182625235738336213374856336485149558190962497647988028970857538704486693153120724642074401192600748508669095138852775585692329138417907465845248647076685149333580429430315634737187592796645660580401820667522592897225937735846639077722638117104875198236774975529922919589459349390241515109681118623299296223898676695906247732129886941876641952920330308068310697548241061407408756682962806190526379296361841746624315265312903823789564631625332128983041235864386058360905855329219317230501309407624110635521889402128740941232521720997311902214690860742261682307630050329031791476152030425676900241339391796339737455629142553506029412870141232549738907462749957211121227014780025252505332395811275034496325150690948604452733862656935938998024780696682178369242710411681708248020844954638733948975966271736996271766191674142522700552431227480924882651242087773589301866731564520789781889562534242566674733025789406707724940234091700363148283714788465130707450581424906566862004018815454775464740071337410581833799952920872026723870914645543633642948484470292521946660218705561231805861180174844650492892148524906565737433176250816954207778248541780677518153033500818781822092092239009874817633188159259167037634373716352330128365298114798223173205733532075134897298814165383320502993985724176218287545909942155570200427126226446973755204901126860152603589308905782615697741828079454373312137991761287366736395994296905811243578706673149721368816020814851461217664300400486496740036765185037869556510328077910416159270245972345672875567665532922245081163482729834087348227062684011438206015562062582675231073882637508256523553207938387551944855859609270026660654224620351853966414003719737741556641506088386238255776499126860249715295661256564998327469208844897373318203620194011561802939227838494126291521774127504797354955311137774705086772177141501020465157975178522722747148306704177518318398965709566484611223665436404088735046317633889815791611147350109899865164762425077714869941685081994810164372473974275955960056778151621021901613102821192158968704893732615231361876530407841209604551465448540422351727013167386896257763595520360652875510932653025634087916282438085425721297319899596328295213363427321522230347839123704148303834053160480638628541712874329489950879449341586289345066220698604686623156977032767148947543828059107516929365987350114838233235229931802644121243809297031323325070582839284398536629555082248844020972691974319281157215976305714507616148839644767373161750955868251369470920116201144405873291696038487217720289473172305100463211889882573114513074848424441217525439812227674905067870718699868953567192229635836666799849859918200491814313806593201063578384052605676293622990623172633175327073346276550754715977328676715857678696003604067188912022396774643496155447507143900999567279732137450464312417501073497782353914202702363700064354546444089711431796907406611424963309306323096890140615246174606874515211060904770893804652789958261195886469633223322325941643332918018382577554307287129070659650874765575016929865202715768615359224145598003187398990606049394147178347284175824886489655119832229518767564208331721787478262978672149782087621027212635724940742290124136770166196078130562295399138369421105439977495234661930012139993791423551541004237443730538658798699016097718558302460549283595505876269949039078228848960590813669224922528384837843633888461122165230936349407877111734867757884031725144621270212781758262914488466410417288171131882563931544110553553938656408033222885338336612408626692312002613612206155061517784910404345612658727526248109457272032162719786821068141496072951137844049118299918517570198626981705084636806595518258391143077930696659894042754229022228817776324716175688461505493301108042175186638557142610159310533825778557641211405523268368741611680447424304221773125635251679788123654099066159635779025578148514910240648458302212697234178689696968925715678466458908320905359593413335891986923279151688612560730354567902343961804758337815463469938927567404051518415236126103212645832426144577612480321663258558832979102639413183584421029714079021349947148267683730604797084072740715636831286543575449207385853144744998942349282517742602278805347227039713702853599792953089895949390417531528336918752347948791899634701852591525501084819997352998139458834642052501191336860914088337189705749637734713603528653533666001457984214115456441200351528755291366991725250781192760492384594401799501947998285483728456218997863215514280690571868465537498648046679343158185486689895630327188665284844126147127973283328245906007049797011368840176500431639325598473301472133638002699875457596395353350939410714452151262381784322403012935217879618462188263328836681139002955370284024459766936126894854852029425806591759882655806957852492229633106276766331064756755525299781217406548449212206789803974286793856230462834005036625645432346094715391114048892449704751198348319610281316813827916447426651124421274911642398629887082568397578988833358942092015963965304559409311663743802067412121844393056625915926407282563052633663983760470061043967508726702388422756364423329625640726911482929169573166251095636255271078903641131635516424500004400858453341225932913977718401716123222145372708966953528210042468387366623995691060337356306848045453234792795046501461451236671902093469096250489625312900604290009830691558991726620460613795034338656695232443102157594993099684041373772515647774316593981437007826081478653434513820390152483634773869355680267822733295989176208373666148062306649665101481998544368368349903609526754631767230095781084941497828037414750300397236931524201057283054856404314703434733900193233683987465520768465581863879322039607369223366345951008966724751829471807082086735025659060237547067824071549055273520361995238213645084547548120516316361534480040596915142003403664183973084821067335692935507442134990092369173345717031144384184316105001674453757585554729461699232875246448844730663196312341366304643688026142103658890357496315834276465531458016769745654354771815799003707853442529796397308317986206730836888547473346033974569050245002383697577629661715277388115164813566863755757513249936507543071081844513896404222083225130711845007334738609708059947064523191580305878257089199395528840287625363100755196829311068029287775090170165310271661957813403274521407756217835167432478878296739368706912105652169555147115902868948951360712640612110182240375172159446680176284625647970597530313624895952815578058000870108673375600719136684137101208466325544532206316855517374065408833003620244767616360821809446110566703564594563463069582894183301401488725160799936649910682901918125474512935003456353548216138428655713076795737441057971076986657708719796693626737761887934158276726280443385180320972011807641664561707141504209645231537978289620351721285783205834330630564257814061995591845280308092720002154701902800699513200850008672115149295666910805435190669818348294814647551648098327314121367232522547537762368671611908121499940885611425424944095817760591035372439904412766296588340346541238360857264630797442176795159398134671416737578730444738264686760417202817829966907135976139983310721989488523426757690314900510640034562952499589189704184420517554166249755895249606064979290716736453086653071624288409887340739724300535681717248596214509459905866686937172100533127679043221641681697391090188003427410416582927529272822773777913687076438654392928840868138580205327352257790056455143878429730539453936455537142210385326693355265917850200516896896165157731407693926228223138068854513351503585379533577671001028141442768707729306911135295027698959745017944864306362647141211160931967349637412917572309483443020809570740957179514657812922428617702407368757237113924745504997075119375121515182288789942183676730977052215153713445834649192982535446153239015180586683597844369694226580467569822501859229007774455336052181856580247718451098885065677750252924717343199765852212633555931424872448281712434822482901676305403544984767696204147438470503149918110657763667637735085102562790511735060486657274327796144027755979349128217762856701952075760179966788967099534652838828552060376168143056053393008880798349510321274779446497366586911131242728752268961838778990186322126413101362816959558282913810070763328073920430953988052614127258098414295571154701934420279621008268727936620192464895843919621448861298335206352184481771292141151148169643439013950835505242084410520785825870772607077547593552705706270423059833344081938422500456915424932968652451112623274487456430274524728026127869326277136946453579096777209630355293336564814748332698172203446610765322160315102697065853521505442054913387171842055832245549235370851304845355085797332927019690462274060209962076047070617157221387905826902115445149080964429568891064154537359407491637442239132368176456668602417812833285191181808923205315729398411737065489496933904484320659871602797528289791245402462402083964763845490683336590940704026752340934991684673315786588280557207096412942845807056295752536383833207864896128207207255575115957098162990011497850503433551417799086531746178747465072913265429900487659556478567206928528535763780155953346627856843603318229863347187297715305027964064916913923145545756800221676279609050750401986237500792873013180752735811778688857408717138978961848150519479155997544613504641904525277583450010353219929700264196830271296906187959685047035067712426278692762898728740078627380207657362113556359090277395359912243935017000687930777979598152439733867482582961837863863695985340648173021909689076515319744322739941704591431947878544752518389391143345147684507140222495259858222149393108212375864407392377999933949643271613962676995553588177897371045864367326477528236681348858069465940474597357256332538465586942316945653413214394132436983571642475334050807031736904563905903969452828575690496870023949203229513175259441423927419384886291052358612587064272458182560523304701468463315989756057196116435859308881759461927169688167476594668338035368044817714404021791629875796972381778987377918217430882795266691373500666156117790644362666815581998480642221450139437665253865306980015474169896464052201942189921508280062302764742381831391184483506672160799380054245676822383990003466761335293991124036393916735812480209579070452550260133998807905885351349552094153760264119363887550288121140433966223414488752873399188517653006020753892206216252366216772269763572619938363035772012413211853552407664920632631283334224003176670797581423262641349652879951102736991907643308487677022272050234201770908218885432814551279797855424571968876077209281809358099486415155463910620051471525993315194493601507410958476644249839597299185258563078673435270393594205206143579409908440373304053210648154990693408792024883516850195335548112535070982033455363284717935782356701700855807325858230817005135720509226818023587530609628951121841586003979320317760285567976472973163035572724727921604436397614690061422756403729601873358349571590419670039002367471014077901420179354968371466794148131625943045061853486709727081284887987233733507590617402865088855200863216286723486997764067187089500943896026539030036482114700106395824377026894275939001931212439749391098413877100165103253682976476076514967873630809407910933301660995432071610961481995840907494105461959565557235183127017415123300250573682538599330868771251266389689053918577134653113417709761195528444758601892853003300812066916227801255853080470468856851324919113695113890955224318943312106784065827852817714730670854727615613057845103661285772104221825832614194154941757266228184389356096931393030279262760798887081984477315808937690338806829240540806371813881191769607554538867064336818928685409416708983438731751992967927605555139331736992066377307875325187679994905383130934934706556421359706408907792139565492888884206710471152175311996672015344001531439878092011500976731769836138302318438606521921106607847634801117384381292431679150236519629310814076349323953780887122495955106598117100131160501029702624772206904425417345465735120380914935865518483083826541334107203225794545756332309197930066065311453210739012382115157168653108562380644568106111620066960819490565194706829039308955902012979451633519556649689264792649453192028417482070754102094892258490656996859592128992201134043937192016544713987465853406026072759220304599675550751267628082075211304185142567915851886033528652921076258703215884802895270392983313048718158090872612334074911975750446399192155231812991062646765937570298399867657870252649125898954454907334744608288954686117339244374815294422666400144849195390030136795141252420659114955902340497634438929734649948268053776014571147984103072820587458448664001334556626111673009043499067557945139955271382452620165065979406327198755442625023297230546088639418205408541750115426749836071740868009751824614438966918661807715121141073554889320593733727500968763923812363954793311132552300539479816157482977360343808853654688607211817454720122223669241506509154080960877934252193308094280743235628540837147929685232364975065668042934300219323316464706025833525364937807039122104379211096279209305249352615078594702736612142018645166696644137195539243392741047370381151726584509514709948699241458434871623852902117834510261122080275959542212403941141933592097660287493012816521777307860923145865928326761514522734455902577863266915056397588243702437005250499537835030109328994385445290095897416516287470504758243985787547550012108285985410482354105057892763325247637296381860760543686029864488524147884451848691308431818016401652308217385511265159598576383316105988662577020860847294338775827600890454307142976484229998234155060539577157860921221958945061072097936334766968000820013566880527036544431340841007348186473057806451296122462793993802412452235736285298554374923086952394326108514221358572769882165692090321827665752863398691540405357076588138430451117491356169915117286235681390002815749640075655378477482500445750871875185257725148299009744526788134014536010151380560625461169693930499387644070919170735238057394750960213116812670577169733374405874228554003174072660694365191920042339169168467692552452060795168728507401822517831254221725198729598265066794222394817499057624565239431555821061320861297329085596837638667449729486317029945438314264339283858062265078444962565088469759432190691504581211830866808713037073705384204427488995766102479889597381318924687779515748170825113849691897167112094164604817914649239114897460644732509185643880538143635539876313587733877479938996185828677313967703157511492514092054896860191270455923218677935589257351006360078980816987064521401034345185395190311703397773161984542144321571822350945344281171650559447686086697228233122101369963496255376517961527597148083840903534752776060192100247800443135722925274453591704266879665851778055843070740125591898988847556845870514665603296823528239165681711615281445605606843961145439225216803523832545985297167609149286265345276165796657605685277745964485905921446390415111398047057768748998324495084327721685840949745904610883558570166061523136351412538278500156463371613186819861737041392535836200051649813452458818458513462420237593016074131226788407779100962435622147129053343313147549303219881379538642788556052968488120638028808258465785006196990902277547224276909076907996179560228452668256920765193356144235419485371034525966390515863665661756293070477921632166969382226769250575062631302802535450141028338400247200104089550704680904295880037471368470712024701674152045426129838430814767522728196631066122714500414678187295467532290726949305523077953587009190894273462579517188386327991192594162975419522791848950261307510600194170211157944771698632966163557706651089914013135146902994583183091185288148767940279107011887788826438728616214937098692641964712474728735294419264787779143469717558854723216292229803044344907048555161961557567676514791764052156145704080654151140718363116682277726401987509596165540490697374399567831880521207287078054512970979546936512597479570165679497669677830415248429920852156385149750304653710569791161984925165827908427365510752153050616944645292973337362997140677071210674624196931944488045949314883884615852478996578288301092142596931513566749406577847122610724902336170834575865504206652057747796089469028624199555600564590887692381977552967435864715384454082745118974951631839200616390122161726072391421909867737808712856267372905771359669870493222563437383723069447301930441280745740387698273840040852513839872964897633383310963191245135476999863034918329733960991575957240475998782485699403286430259124267894970967030997877805285419148636306548928021801327983778935759946792838964690158823363386715818923879849186419927845351875858549164993616160437142750201049626425832430413639617523869256475980565489830193260705074929071777730739790964745967717122672213127476484138833162485819927801185672600585784075188811353879148823946258877111806767483439145183061991026037142819843172401759712494375656789590409120684276291602451222168525298296260496785117246346768352098696690628652322141582159007440378398093364956936150543288789983715570697982368399297397960364946709048670461178725117359345670815124302856812735595753563774299314744316240246875106640771405824814689052387540570148363466672066160770752157966986345426537257011013176713218128120725134983369690440225284336937352863382442467019282828042214750505916844504205513943084114364340571170035081647876294254222652275411626451460507171062153266741495233821825279768554650028975696836988980819735341924376875239109183768659409464809280268629045806816352406772349136299756332107683391322402315177709395194305927271989420604952868568527165470593945564130526859707468673230106818189748519426691993494317551097237949890783732939300096894403440262747804616064886460247608585217907871507249091854048874467039550257389781633806684983478479178771044383889643190745927411812160367290301252504381639030672240130555711995579008892726560525599773336419621825801312569404254397975369228171514809449077479293319115710440722562817101157955655489738337775691778502569739495596130192582760857458486713707507322779114699619407478167101622987259057316268833539634250010302083883840141491073527668187906106385263010864666946563326596540275888190860260317671128386397687399730693727467824286579437291943632670578859613333384777882075224170488491189402021173492100092735253803463099059162452838734100653896584668239157275063591377703990831692558925277094225494463631277869375687277131410915489072265048795477474541969459743515135733251827420302067212301676332797419427703523016569104539358970018294676227815656828555606594072462850538265008730824119234933137637129089407664197971733772367815995172731114040032103453384345910330519468636167600057560873653186408052858144514646100959552911424759156219807812971781070156230882573954554079337915250252096160851174267031954613421257726055616647869018563718016296501982622674902468101704260236231327962102572818539314402086335508159481076829301045609057676368357543569450520568720054469532103218457987563199432512674880066472000720196889212930769268943315072132197213558262190823481048331171495121999448872423395950635471458351854085904793929311598194319429993072802796587244581401502136490089876378979817136994898799033611244950118643307649525473170333680811015312183769246817823796476447631328558057127017998360738924614719809743931368833657864094781948347273387170857945762658610937053854637865895277924673785144277665158312544171461002255870678837354932657584884499919583717233010339996181043504399321411858458240083173455635964049587453792477304611502416289329202535962952421869259182232593439459412807892372444632000024909396200702428426327035352705794313319474620223694755196014922694315755943451563794326325734134967996796678209218700430724495435794364666847770288845277894163492140306019818994523591297835583239436813897623851241055327135773693613513000622628800474650490507703771461625143204558964537027130679599546133170390733210452892031495589488038372565583898337404074871257188380409893011790491891338618554476750602201748684600574774004575027139813308450879515517512331284640560285947108587723841205409760205667325691038194714085097430583794032987165276057965090557466058853621300652784215126565574870559833930639128113401181890522504519763602213985485272137622279538445502059639923879243196513896245046141755752395305881224606880704167672862345690456849065218340707535176290508665078702377287402209632313062844599194260209134888201321876304599611388285412033422329021886098448019386196439880473413060929690305288911716043315706084596350584671515884528575864829166734865611453108251388101374303920960246562992987851437891846995940781096332021877819570331104236277543663949938587875103486699807233019086802707934259495369171051827918275326799739416991535880892084292247576053427723894067926412168053451615740714223981928489294754589086912163499468245889622499100894754301095274784238941757433206975092686670162111901856350793629346814619388887064221327964374236339235423763218687106722722984215746858370592717131359505401231470054001197850528584994526924583014345263376165959606820395941584497551466711510604226137320839589186193321765950205253102481143507244936631167845212934686573352937535637669487132305090531630921122620780940674468185206848129870369022805883473684672616710399880087830978339287746325628677239033866608617084414934747434638179964785680356383698103180137252001182514964202143141935808630262674277293480537260457358491892301654983578557883954401246222045322060926985113439033587813807551373495462397479901820838831989659204633982964099295945157511236895133243072052116677003842114985070313795091893915313992982149541954536194069184747923383546039889775840777456289486258553283112039883572436482075856625709005785473698982036052736366255291249539623814773271720233102919120600968402991958925387635634693531392433325483727205998559548678062240273541279487688543330060890366325905284272549169152103433866318776235348923575549268365429575245010279469663945611953323765723651244355171020328056053909641180805404809610512163095058326750972538354612538407390223038613962665262537264267198451760544350944951420463823747278294190688456903976786048481864030689469380525272554255005197910486340327134229958990627695151564478500261578230714331400477115815715933894714773485369759201619961913064522490146423398456338112455156669191544230059569252822093989217480285068033521190014210921898609469294634593333095234945807982597730423704060691968580997001413521396259507143570927263571990681939508755512535575138410239947217837555601801397398058217449159855223910781266171371717830033958079515155402894576145734133369996945034356303841346153355891955086533119158444290278271688547814229093109531645675492656444590759303613554165356209815094699999292256710936483611358025220580964594062873088209535318224320439934553462908343297954350001832114491961451060482404307333249949131321569008160057432097715277184484296057021072970320471041196614103945154307170873950434240729519577917846041083417612384947524927329430867809990712105945695733068737724157122765939418073235944629006785021746005067444671937479067169261453889038655143290683401526808605102354519776696597294905082787882175827325937224494558459110908875986731187379895268600927995077563451184617640556072138572814155082863897148965547962514310479584997234090985373949214372907127555778202741785141821944836417748075194864050118665280322379374671490994965644764839419448091485385195483261764700568008242593191009624454728829958650616994926259244379976967119394037142021546016636543354969893879548959833576998441098393856244627135253760333592625405775661488516110617428007875055766291944883448263693387851919586926253382563663556405659886153123974700249096278239046082937463527674660004640767775334178803184827658989221789847269118659204862597277229317470392736324087830283877142958339340851321966275129198277263226986160920055218192197761125680329507875678664505657444770754770505820045269306825770482913646569359910428965465675609412637532811202060225227397402298413968852678497996199045741596624646726429599950300408310449696140592695048142783873713623037157681534136679197701884563485256600289786131808352478141246250526493472796691453650878742551694407521932909895349834735189552411674877937005483605546910104132199910055243432402240147612202000384313984493547680638994871942022598564549336750247724250490543828233752971236020163179095836793680397484414295282541636261431309820269882161028311050983073721098353929965060460532639809566669590688017261225860196484979034397963699282110174864903143560870677416544535803331029356857565330793822763902595458095232604692579759128114108409817081624611703660691129621806897644261819213112562906806432545439095529439251208084617971785950151607831367422788314599262521339643890968012096754616623612518487969105460220049280295948326574149285552521065799662019404614509104385062199042967461391987584766278036806215286333502128512388101467240941244593669085487044027733412557413463127431509505148388517895109129857629768014615618321199880006036559168497591345763680118301980369876061494370774137546029049323074465166525248862740912468618713583646831930294362118648133032288021034645313703557580715218528235345095588062592982677626233502620097240564971750885984033969028511568592502993974079386782690022595893294670690893431436386805102689783413553596645415726667888220293303131254931956098647198117521927541888032482723046257239737044068998445217204669023278511474711869464395980460049431128612497665178263658938365203181488795765598873137332573613737361440717589885206488001174509360074836283624118722668369274010013839514479936409472202804750313186250920029769610947989055896694623003073151491430749908408382344660134807091277834271119372631650139516663236474028360023671490404683369864004850221856927575504472487942422576403638684573662537837951092704724437771631766401857517051000468217345685474481414947897394457023036265507280416985915827350774485448426047268631294663382000218499677218056260996793139915089458772906820586253222594733192984696680641386988394185795947029445724876714798536511989909244209285648187110745923159372112035869413731491136546748371571193748527569357090634809036561239411293031158255107245688017865653569572025618313196722907416930213331742803842390915305152057049841796137383845620720514234886828187944728281199136804762063369731716223195728069771024919224974023160421886058168562337145678388522259823689408399780599355474212285363891693066340928059330819247662908286182868798011108402315671945486383333090374319610634623991473271166671554151789035966084876054301000948585779144541893091534104538617456291256086784107771363914967296208040113201794226142162344964427645953331739197492010366555324008920428820780182256138619428650675122975262638351948851260531413326588583353172104369920342831268245603853802265885077393309507103604335881573308200067490991793507628083646069569637192671832232272949142405746047234835648969785179778046138297456773018786238109862970709484542591536913050551145276303130698795633708680121181509559959527830865508654895616059732863751754211790881845538417117018771772982324109997680074130171107363803395711451813569755315657719702223925799114896347130753542221373703176021355727106794017014816222061205694168638890045197402697243724605100017854428947326866630315690024761480096162130073360790813573350673306188261733254085080860181547983545489212077255081919816399201891092522362886597626817954657238811564119934168562914484650717373624391931855046569540463384822710605850951148546473662911677458073159310674100685904359861695585575652973455406929899775620783605033795885735024543817292567993463703394324340991907287349261724149850171404513194880938538596537737924469326725777812004259271473460735795502937128855478800220268684182172486874398442266362158120096977046589029232915880505830041227316155799629140664499895695953833693431586949840985460031371839058553801522940561836803350240799547394544338006661546066986186298600075800186415848264366465827064933178315987742734085973721508353446733513623703360156221223307734888101764809642616353339612450252698424481880037990253216268350244095975987459885309441243666081816413585701349503039480878586910811654090426681878666604817118424500862055353642918498053712401097541092167061730024286702265882673423928166551084215764103799593852443161697585543571535196711536550224420556332681968446652460764916658440971129082236431996278337587043680433582209897706004145811685324978287072509331517654249174985217788732589606721802330908649035183636939047678631781603712689110279126994751893033362676006344055288119759492810455741210339591292711249415141956632357569449000088988831768559795394198969713758892625633907684576848078757989112489651874073747791501717671743559378924867537998647379930036121452944652935260032259183123093295927488363048621478084711158524971276439617905456366814972169663956549572262861593922220115818388346488093955046679932043156306087329806108942256253448981981765738779375206508894323265898847970780234476350993278799822562326082888599473388793179548327682356944497177318702874810557776765521932637078898712045289051018501932711244098487487742423554176586599273953544506178553669792997226455093709883219832942057800161788189900146706343502006177803663203217034033067828317937497462394353655185301079603871421273957663852600689968274932761454477305641380495878028887124736743065565284552057933424099187403143338386331793605037992011407748086785611344980314853578241728364045132181924417319491718690250352592995768771510922209525214011189528598810548701049045440158821629882488696110302778089449568181515550094781366131336983845007802023655522481246496816362392208156170175696189132108869095142592006276422495645752076545940982807862097261848128939370673853861706354457716445923548067256289874801349136237985954796068023205776235196964229322468599761835898182725110839774386583297611578791515119957786817278280209129173039893478893248155313021562038383311045205997813052151790121626151393374311109589717680195253036741165413001176438087986642982850367529378099216067877426273707788334434181527528105583982394765120857068993815571047831092847741213569834205765681379530797882197732212497901030240326448821327186085119559400339232518731398660766045067731349522677827373370766994544979244876173517781218779572792270233842984566996453646390141050934272484405900847384146235650762137715747987538550644730300128162736213494062016100184970817390829848825858213887996516455599964431067409177514027655187718651783931004704914202769092248998684354428289060277940266518700811330191092689317641422060074803068264602816263774371798412574096402625372483673211234404713902252413970086989184115183149746379793429457810651640839149232761907469107245180511268872155008647563020765281308003623737594321616293133244944725161941015059948814450589420206240260249145403325235144418984579304950888799748076798234310246785278608551580777519183264169383250677999638507205647631509100469774986933427504036730466465742225983699369260788792171859753763372134534749545266893066098728557695860405616272067540410712189744426159472722064192738651826993982972381208290450640065526322534087674089043709062277526804836448182289795853245343737239373980140542790942123043780076772475656245363965064630375680191182236049110840282485320984712880206631653870781977978922178271833764019416758047706282560957142723085806495478166573982106998347037897612220591548499737525053302175879573477368990846336984569588457010715888712315611275594205907350902568404637902107086206706165817501538760453692780647855155341316587646909339507179151728183728822825836560410056961177521990678752708328465244425151014093655363790261109864134199159573806237261825614310315853114212683218329640580035643495864547025007315103348161194828515272675072515148017649361193095786371296164205699207981858354580955714962060722799341263495986682000249398745482133441646308086677992058001744615349401787141179659804131288989713396055139858679070609145446807700025735582550041496047427056785275185057523844818478190513728448240408422701438159839654567679461577281764229215939427001468427916263926006725745416472744666771832647157123314982723912430641759477897031661974019641619172239803327747791352831586936053966692907483948436323123872470966244508012128749506232634213520843217273524147387521252863377167258522665433415749497785409150317135245418235884029472880491852826585865450832162996370175434032538352527701991421261024186046684905960731882834393678018792352792126298501619615589746979013598093071857679011249971993398936115795100838348467696815293522734225707275455818015120525132036756162802667602356725688664066043608696637295064508126172671828923270592172063470842357989409835662208312040119335961342643505933273747446929626439283424649465225879491525242188788926953155145901403551026125386528969748331714439322935303141007281029502835957948933882297352466838308380448576615204058875319551185534305905117173137590762359269537712858146175543492048029256597340897316950772798496299388091410644727054782183308838523523636740893521192453343718580805259219807526762103758611314873978934905383835144992915277422772843828116919837278923729385184852579945092983403752755296193596724680362036401506006448146856928931957503616813690935739726636255484081023901706629116277228064693706828262516361395228569904453144466104762257268928373261415480175319886424493042580255634658752258494177366683160257181806792172274289628269775755385448346131977811894054430340572085126675877286400661079153855419446699309069841434700339955696088093592751614805364658701254510655434894269069858525144157931984413705494033054725042848226046639496948102933640698846517975202481296894978756951844667425472917468905883141763277417481645327671753251807347898734518553020782199033885789340692550319053973766120140349807675576434963911775278880348473097194139005955221376750897629250304447145082850997922673731302088110894029884400683340313252862891167838722614162484652720414476393751734143900450887578397668207920884738283246505167309961018367122905843609565356607778893196111674314499490653052982162169739411347549398662870600157123841080610737731848018579916622570977132190284376592565820962816209750317129479380136823864661401713588850170988887892101871000703611174536074599973766281600297408340730353001830738638319026228554725221342682574663857098217224166952285254131869026242247579091244281920718680011674134528598833954183122371540963528856588240310695313039644657847278872458435601627390406077081043189697775011286448124427991957818530049479603516867207070970433570924116742134201075528008647658752111757077492816615819445723604772011645183805762132267589088691613714400570217067112105588709150865162189243400625091161227207301753560234476062788014932318467111678832622053202219989955558458323751417721348334121706678454802830803460637730738523580604706964160982862733965836586622817999782615686824113933429884928472816493052887416723089364073365597446724173834316066547969741642862107436602086795519176575606092271493631981774044800653884207587152366749754659863278879008992580309292724085343869051073422013949735008136490961447293590986558405969104789510992536612531870701889434507527878850672820058807837937687238042684334213365165725644465358526164883532042762879101885024668196609481394391346110570182783974758773535713774225659141069658873325388582916712464515844671148743947010170527457796495776096083963778839190976946266821678271910779668300709484798976998364070702521921680916074547737283028330492525175083348863053421724173441735931275554605885761922057006039714977495883829078835669607486488857167232833272497184587474948887267312405072173811600100867644740596757537386441414036523395665234972137610090900456289441345026707354664121199935527694776025426174388916402598198950915469842573495868718520176244059615162971696527573116057792205472032437130325448201210714907513349951366435307501524935087324971769862086840066287918156429804942090265896154264171228360892093788213338189734723749254319692162866380383435003285413338024177806832633508697855585223223920819781716354883791590814327412146540920094341317924847725418833188457196642751357460034678691989786866328195963272388792761007374593413358856322511525673985646937929473013978673129146629959988531698108925553219275589054157169175512730842779107833754405116883155115697621850640343933587391190122720316226640876655590835226354447226445570550631080397909644989060157933725131309238770493715999622054326810074022599204558582233253309375024809073153836902923679361217413911312280045274779988503098521807659217155115251764061854627488959338435913754510540895892551453203501011352597264967237386749512690734371954460574869638701562107058027590729829155207576808171140375493479496342314778552222879321916521336945723266608484012312120817633686732816108573950761215285368520098369683713363253248776968232208912515110974972536984050200446543338375155306925162038772069761396604010555401894032151077093460592468282260585598479475072567891972698047887343524784232716183134141554432553830362818072700816591009531987487620642963386369998682997220767092747622282965896637789131206176525708159808885755532151110067140399202100132557721383859735109286105102290697801664790026254427132252310880357659408436187522113722257468529252337947087929436003357650665364813272301850965989401353472905920758047481126058593604589529568618239608607061735031700237643791697974351068780854167399699283772398820215086669818699976596710885741482748801035760616556750987319597723045606405489270486028157403372551935351512093975662234002347331254746651055726443257229658469980106097735347539765046120339859316324827613589266549762651192791835623008933483418584512271514356882985204454868839034288945564938884710543033133254464349615566010549970565904833101902737546757119299500662206357712134988467702673503556679415425623156459003152211213931961138521572907063127361407541319443599428816336742928398290312024711322235026741097319231133024358227035205645925758264893813187482295119429154443870834773234049810555214905591228277400560726773133069111857221263854225973840946845523791577403582556049935772248085478543973997454378670171243140959933902119392543928616034860503847318807060659224036424749240028243211503404161549510739744065423640475681266231346520500822490759802289421574179456681915415957345889433602031446326797460497803649683977378724572338517130582497592324062680184151812459923747740220597466887091170816629805653163178047038224242035320058930112367685100252971719175993762943559294141974388992558889583328050659589920669524656584140682821949471023782048765887544901754623967768967138990291157313986372087891410708675266143259563093825227412123701866126512911785145370122583679624249966313389672539884880382733538374948793336405554365831961268014658723655903125989905184988194752407355314891000167565133454089671790737176681442811590634243847267179182423747324987393368154174872700186632446974163773183621322282061908454877666822409993127275493431032764369405655569137500057126162416449726940488162254822596107161994701063174946494400961223867664298252868120742064478312082745025856976898625489681776456365601313657522425688240514513042052346352683820349378128717517516395703870968792217120249350957977873914020628833460807475656083236482125213566775628480439375136410088174572581528484975583100492461927612989855626833213988425952788063169631870783199329633953993801960314392873834419731327853353967115193845679425644311071140016142847611315064854015912057610607101502887002815797183882953841197511533168713250037232578947886524041498594249464094872663839537479874319829387421858023064993913020059860746560207287011635746845286943090125968862512343350043762258045802508498374050139879109048979792407998034741202484464286368031096114031080560935770007780615499769398856294228660543245054570889533850377164991999170053924938668559768555265160801578792534069697734036797691661893591185907688235238906009763593668091467773160600684398028046582655056529551359911123164739391904188306576120082790639352466447740841096907100706722977367299921887768232123543595118160900779304909420272539814850250582727682087110955100690342861154112091374757469311248650451377651276451164114652846502936978401649217205228268637487839286314428824643757275844977278050376463368003553507079479411446158555895436617681297231523574381407931177901348782835899671870755374845178696306922774899753390428257475241753352945642228444905398168957457451895455111556380457746134515637508382837027129617485099063699994992405019148006407830549731735044480368270672838741789064164316035757317753519162713039950313384046449309330789758228650271400549099309850880647635306593504541248969300272925345174640360693505981636241749182097915037192134317852775460908169440147196995557889097350184972979220376823397468767514303217368468632609587495786207114218586222958303928416301172236131023751000935695053409818209365717030152804477471705550393245006031599922537411152432466268024458228999335912256095189239190939912784831078043329943345966826747051876666438762691829795304997687498175795732047034391426572645197439352645493182470443722078312275042513592527144084139738512489399774232810425525945961797369385872677001767608779856419797344777153878747315084360371726599188915649984877098518769478159535695516637649118178276531905102695576397623928259704454584505034229436623388227606008686902356327872034995657724704678893379757759168512118463680831766964016673870286058548184677973074439737708696880689851989355654522828067607297154817274203459178396194590507547941603636306867740618203828190602949322392010766598805252694461752639705256222465651781193873099525819171513459874802650077955423316457867903233266516192033423040517770634769142541335911443284907035499504737574209190687951025359144392000541201804051901969877737185974473110322124412316333503673373097255723417473976156164449940376707684256340720079075120322842097858285633994944358861119467944520229305047888083957666650510219815177634522785652933476183876810255855749049407851121106804895552820148115670367183540545503087040041619440641292460945302720201815648537423931068578205820733368804828622394076853702850107005991751501279541565272807399843054525684833338058754571185262728033109204839033649087327807115122308073383098432760543734649395580097389774346191917906158382067558852918602122060320682364714097576324880122965299625959001889092816650627737726754686156225641907050390231570222622290573911922116881902802753477186449182034085952147375335865519044401407766794353460625858179106049836668652308732236575911862565886117082447456964211162792283544900118331445568126645533463328230334698694081800170203102600366877070404109599635813624450272659972255020823892876758424332403955978331616010760639474984089548901618154050722563934554463013579823683390562058152282471099853493176579575843095615062418204533967437878721237717979907645679298276054798242912773837437964387434969568414848397759960591660573820718735605266868427152049384138827633594643852013137240034687487281599450445122146963174082908947750668702845013881500099238529576239077612463435745210536717544082880155317051663259193693363158304604611162517147465349868255038102237763901948290570157057164782537605228821516851469911248470399080814699301013556592049170957372701139807219932838421218681986753917340928570889302211038203729719243048450428796801123706180036313834823612603882844160994581699251501961936264360534365825075100569187855835557599240415488409639730524892309695301053501208714297472063374653588132531469004875425940781550565374289412202098307918586477924089614807746584922708618207537480228197617034463607600887585779203699425629859749824318859080751294485907561084803701677582083021323796422774379925206690594884615634676726258995599554262897188234899712909948687515743264871551449351001955504720262709209508464233629457358928742502493235888900276154495044213773838318537663880664406745249857347874071750874062189060703983033857861811954119135355096163624914400403418593768021475005293160023679842140460202738654381014975684435355834595264358050626952097050954531150765584765695108152434872946266526084983269716415903023011928743129622979348567547687350379150238915386229612640619129236944460728142950654640618234947663177292692051166924674620945951220608679303181201474691936602554412209872573754419745654505725383855463562518150630778998041162987563210745232005791567278269361225655460543075310206533780536687606931924665813743300734399052263929214447025551525266157620232738607022422012988199208458777153191682961935997095181714245835934052769080584359041822493934509032368570869935494765873153804789341223623248487058089232044789338007865956667519693207587178565123509420317156646669362369144351862225779893365192008314122498939875579155095033239405553021154675196655859715332733170780537453075934352467201552465298089014786954417791016282965284966810442429577815787622831323786087229775494157905637750034848337647268595803466718872471877311205874333853079746073431300713783543424665088018296745105869532661427166904516559192972533709182853297409849872829209736713593692030193553715185276742460263401722938428677434244440723429272405602508030219111764416485812421216843593794336057012849375634779713745682488424624056473326044365932869092134755599108610343930862173650550948133288310594138513765993854009757607638577478425274882722275675394687890458829995479024411434136802319042238090522454524180810372540101140907079414231679035603463032464765774089622519098687454413835161271326526912468404174588656436324381681985134250584423564300549174080117061073601741921259720805934735777712202718360243243114440729379774019122403179145903506898844603186259792118767377556447688918406826466843017219704307818209920424166751956563113364825403686869897215524895865565194395242540325369049557810390829374617093318026686235155114831084722912087070637962339040167117368716361611267599630235631493217320660057680957009776480145039364343325654571112343265687772640027083557636844544307881387729285839435853549688082444050938892300778504142485997863379029521257725305566028833049868099092101900796540892194934762756806181718268794279229516436787269202502278068299168205707257751049446498860092131478824014364449854957559919974330332942940254092231423956313746825254085975302849075267145350185731100139768939340673134689642822826306958622007060224214355237796224070225434395372877532372065629338591977996023906485281877889994313862352279371889620822778783476770550881850988751577940241190876646597723399229396527889816739067448736483424979541104762756667281435837654348451584701434945767073522427009647329025018899644508747237687234840686086095585532636893975084544001223086744182197060546089694484291132891934927268063577060519385935995962425670107831130823537864853462271235545402914722903022287136679101138882137392568647020501102282789901524256901013348444815292662884970197849485944751977938730047991217801058148505145203742090032415735757068401029392648703509153680359737726547180928241798936694399199230391880975355990166168281732739274834883513196825458790416261527620739834912087338527853672348516038241543431830402325389851549736640175935985385492983602240173286580412862896695271935265453666070672781738072729870933848107531784866617810816479714322869671728179529205301594504428648633475217290495445196431386767202771792961580914846866803417714852601474037987259336544016924608729523499459761879489278783390117554719061525890667667165753878555542778124196564829921031143918264011462297570781203357286532366772952761152636921088331705543273917310274813279468135068358356438574259009758008887367039715266275285372367889924617233739292113273628479359869499626202015721266855948186942269207009013327575100557840913021709422252725153079114750820207151037116754099941173626216870565830631299788036601613191053313159319407911260335344058584812901121050046845826730629193648750175659897828574538184284601989436803122125544960726100692263869081253171442051447865826907985145323030300683672711657718115085898156845029815212335840885822790879351669577360010351228358769264674198754571578682711132402231225498405135298167720979857022558750563957823067144245642324616033946594740829882308330853689279031102409086756908162710666646484241130070545853650892393357087734267189163391210455755550235734246834993168936180382806012129664741643462441568413963521068490693361620485405821399351097436006779401181579141154337988154957462718200278460424786493628947639073388406082409428473430025654958252243182720894793585081302423954107803796245254735608720276440650675297452936547996922073063070830245617243080816639381198993534568181725867578871816986913806711833067370069588056089286681488620209730027495912227384540668326876640319612309482724463880005890263892327896953862531291097531379176268521356280185952283462761859600508364674777664422283398018798658654989898870091930576364388378695804750712238494473672217423331469569261813725389374283795745876118633817732730379808830188693596413594369795816252861347748346989938581185169130232988642734820746360569703252168131862384454287323012890789923734370279779455805278363732412203915549331864365324087250868288683656934929589770782656944322615929465535098509910337605173871210854352048542760031299854418991163220227270362251312323918909640924055226069619694948302512024168448258360410644507961507687713967390357351824214428421025170872763146128351833719962596088769439973708967030754761147249470951068223635644996826126124599182430290312826689267434436891672516092751696250226366748758822816131111832138285085967662557640148756797637715148418575077057401160067138414000019175203131775601663085125175074998038567345622982362218312309362507403055448790247428055930492809708490436317207335695261078733638873855791159556739132811273875922176771558367093434965919715011517736339051085354484076558693625533094528676645950190733392846573769198344477581634570083545100775856780492310506740178501625205721657555063262603074522011156888512666796427761386520358874024105782335175289653222961652047266944094698253732174880496380822754293446861568731609511754118578135369727147551611551160473379348995742575040509804880175141609000595547403947724692269418775971995886075461647401211695273835171588524806941420273109319757361624339713802692671021654944441889316813931969281194073511806907603170444198118522057981016439632826432918501853396871811243634477540074422509539081411078522255170673416715288762638459136834037325340895269638818469451937471773539890915165749609677140950023819942625654359711185779419436363265672887425119136482098061472081489235489093629315630319085662965377973891649493085596498568906007101254220942596620266560460577443607878551040298179627448999064652564580308812824383097731786719048244651677922121301385620908812141468276752355628912368885617958803971484780921933976194816459989425249247039921853104776983156751237386531789326057724385769154151147021247747919056117705356317683579074701081538866012507802850807698503041118696238218231395663380333925566018082120258212908669419668761877751693004182742938319295584568707895577992461924011375418062492366988303272012174759327701672437876848587154721738120975457918942182306889304030345945455374820989474760814537223620444391956967309675589578938138628649291234822328932368864483523963490510411841981248283246306288241102786543021867828307906222829641671935357995170598471284549486651460043295216659155940848701492389460331209364938028842748061756574596838017978687327111735611299113464565869556051250416669970501175254769562779817205262216739070246767935385517673442943553035870310321963325039007892353333452196966189848824551779231275680229272573325222868753579852695720352188471893689929263280336632880299891456315102966591935912267994820945340030510977525115755612103395699089683906921208685251288705996155304160192525915932243884427488499855510673593531871902866640872225201078143912526594906761577986872057067165881076971004083755542164612791046062044050191710118738460440123424732490202234644872126313691019424055356835733748717187714366931015386377592544027726142698437069428989585403922833043025386510624689762387270108761521962672330351052300445161921333501643063186583115046968098493682408896587271623746278999217828923130762615761750873918877467430587854102342216027059368417652410321287179435566771166351487031183195708796570958100648806503924675215522483330791372167078502908117590905951696853803221740556329991880489821642713731995368554389794461369448529224930699818883956181842753998296704930513526578479021430862395507394591763007842831350553644922502896233063526088505392576488826130586829845808673929613439191532703112553679594993828664726929417220603264990018920767759538766930074912472227180365396881910399988662871773342339239071294425578351790891075957353535872198925948699943913951632393637952181611372911752349518955277599910746173309070683558123453639007700321335274450945220946747548040721722410247088965450975963001831869738906336023405914994030208303527784829097229066146060727150350602119646503557077838622772147506728249753226662343086203003415716428995862980350781258909566192058302530980300663454110581075389198452709105680215526005707429090544080279252411830655509250603315752511091913918906387476382965587269784498444629045276560833627017610178384508153792216344113208331017475111896496720396893727317503202379403271120318216412088335772506303945882951277586515785320848612824581657316556850661926534703614804023503566588146503112610489234109370192814775761064346922873529017065396796490097515765246008639762823271285809895949189973265018398049316552017421430310466302249852543033759513935226624944395728677384870086601844911892394607214316918726418738479126937537564698723143900100457020393374837879018479858798415831707183155527119264515894516809333047971180585023230414456631349401292374156419296229420778323023376631140310175083136127636699868426021033415414285028557851232812161156497290303562103712836143264393587099262991543719032146504734071437749318954321149149605919360593178258076740223038930697442697197948236271113199080397351305523812527723745152103175827349737077192716581849937362665197055531439096129548598193091278890283483218603891069451110458430102473196083700140069844997300596208394829417829500293029318914765575336018602544890251747441664162621205243446433554054096480468977621713027122486870725609413536855219451187196578837442364693104991571546501773974484813505473725508193849405948150535870457447964076619007706967732410168415055984560755520344663478845036162990084453469161682878889340615259110160108260340735627781903695884644930698689094080780151202008364916241291875902945450391236379000796521599456804356371028097466788538816216120078573518623470859818535800001651366541887270526921435776697153848809136169716137241045001087203756153877491953227505884324636380197602595976651913962588349957034828529665797903145134572051433879011999404626495227674244049514469647236005113997935718010685158187450940235031163175459513904256456701350549342569720296280323057810425192879209546346750328360431649306529091279102882750595823342658673315414977223765466337467665513866110746671172565018080256682274838017004045546314297334088242475571587716027921828848404138424402242250785603723223873559583232263396792360392699400493586080550619722633253603077743456438214107400859480931776718752328061630651521535396673321052730329282486686839820236596568781347912653292309665337803598645911957749661808650789091715233528674206842729553588599579653811285367645254967151025245590721764162802045076817484633107733325444762055867930457306291109083255233817629856388945668143887866219880201096998320478071734188147111969574529703192837905558744760534168325162980035086665786451115934499502823553743704183700893829807068713078484111792544901551436825628096857491425052097128149282945912190728761485153230366852677785138490085404459276234767030106594322879776651100206112689215178103616367042097127568668311499829988322550717174626708345827499660306874196634408040617026899936468223777855885535273232760148352177948128479860286657989973467491843167512264443287870573366942870564058588502049631996051781246210167782011371810013272528713810243284522433512739547953225127439472301395854874510826511367423147228971358225291050735801963430295053058227585897727237556550707333952435024452150518734427490750651251513088313301739796532017942695963390312585743592905219772390388865829821846504138289725340466388628233028185082506750367467477192197680893207253848562157850318213854331847409586452305834776600319032522709811528184610291687397103005999601747445425958429230096397434279547894469276974314539136421280837978447287109491520640291165235106277791051457837814147529281816379109709885683122793417233035855346664300407172406803511729119199233352687259659404396474672967640074718267825698301586365549344880350775164865816001476262110016456056082632951713898047056986687520329984947629318487651413377701997617345595684770638178299085202556163003217475777686439660902697191774181551376627395894431943513977850131184184523277679824921607548458057350687088517921465551697853335105700349730027079751712292848739722833354827357679641418154244378666981908811414552711713661910240697894724651060450624514768859335350469714031599522723954172136119335701251121083899769877350486064535656165314849233228436078643291966483856745919887682237730889793493340277621534269182192191079689241245357787759709871845390658372728487464421511337599265754785898717506315230672469573157062353414165985090444921840018816468018074966858903464677989820122118034325871603804775365449181460638431608662828966475434842145015159098328866023602877292477193208777320325133934949726195594841367541154004612381713881109689313555947358981688261439417437593231923003689277319803544310309594028530685625913015277948210772454195236267080738221708415660836909610563684646344003473696167696111818534009789751507322336459802880646823408859137635950805446622631427970339276357594943135635069683799854721511205216861588468034291568791020337625217058508652835341570106210494897761535089517465294368542517929783908954043958365044227623329868811904315909943264163317802364096703867823944755276654669368201386212927999137478904030925551835728219646391789495885836923788192657434602589943593460766425118445797851187188188337524085332131217924558417483740109195202665789310811238264398251928395116431837522816772207865786378265705879546657335303319492823605046523424914555136631216481243718809315999655714237091496030818252760500114411158736096736636801899545579316911707888384863003240147672085678457693899397733392934873038850417683206870188445249368230197392342042274441307765301488458818608176387774291676994136298780946907556915928708456666678520608931686587784693825554112166098375222447732555889262881643565716307636503650503314301307724750655773465642967836844847729199550825623009874247915774585382770112308293561366489242847538812014842326516406328019714086337831304895583071927529245543847933140111728913624389457785479997366438177654622888551568855644652405481154644544676265964854703062164409831408188925371724016106294914490457213384595188505867127839482788732235570513591039990849470248416002609987314741962595381976680678492468634492541729500451692285532245719025261162980470929459889903201603143749964900640305231252425148691741365558165290303212180148670253749755771973439621238551232187743020682245549339413773957015830078924414613169136849699344304568108790899250659949118642985219110993978281068051272363039484548690711661553423134809734099308679595254584069808001122163446144167081554201759728323073057502244745164257495715788248786458745918873138237767811352094303050590623929868082244940524339905696349540667205109878810984552559106676353344262739040600371045127014478232301791871005612079602861670309898992585430816376196630342193682490910508152577524633079430252475398165277004440446750382847841478913783458172824092725165120255164102848368484295693430202337172242929656922112529228189881627873402513795641165577277910014666235142195646192649547153639776998211767951833241065970559586377068555048988540684496778921358685848623813631422097628270459119833689705199729398792080726491549521734970808839340726622581608100820080317625780681131486912422624545720407756944388335437260472771400558092567097095961637264296184914426245315169701650485613559135758408335281668867845562970679829831471132643521231441948336060005769057955049283571713751885340682610285991371350190753549293422810577905933735956870182716961071629478586080031024523730386603037335164888643675926744760420673916151594947112435887680073179583309657716469392473084078621782895017256381052150279983229837882750078139899070328356899434606260494412499880623573618775657440473651226303375572536832635429503488251148073058126099105784651569259584188593629693328429162427961684570763117912586459341150155923337016375647740160097437998767596338467786217423531449025632991842352396921795237534634205979277816426720112185100106616703301360808944443176453239760115163871550072203570874469193339438279328564451526952115948008147166554059858891430430910502484818041414217102411086955143843682962466559406514474991402419582160480967964207791350953478815911702414562205793532669766621614426574534951721178058102458252768190112347519396904176332310980250687133967830295322448836541093763689054534819104806022106572771767267685317908220208321251595102607992321597166747317812703228600587726640337370846324072219104468727419116993084176567002039452643396070722074934561255941545065833782267945529010879975012163037116661539221708779327492524717659580889249931071053790388958284215376717557087096842447939691665925644701023803425874426327914152317862688682093295177023750288640585216463914380507480217482284117456807322032924783579405278159183215958031593698401919830140245567029391442276351624673681162037519857690011208889312952083988085606024483643857303005432676805989838369234223738610421746191690797219946613486094782385925631378128199817290268921866652139767713646491609164509313125052589114207594717382569545969804373213668577403946175050541215547635357275326083083002814194187591595477768003282145023208450484326139173386890749689303522971991989884928729375463273950511128751219643925990386078165224582114215490915125577791219148482871893366458157529984471063037170472553058345629714662296333639551224927365009356156863953691889072064550364657394250158694249163803527353891886240784987413027062885668444064825641465615253049645999320876847410773108820651637019827434721920691774319781380264919963974803015234621042025933110605340379829105049766039395678021543374016560653005168042943181456026661896125351666573079031600377140795450600368742889736299176327327244633382660576722595498118167817812661825159843714552495377579543306459274447655312086373772681774318022106158129700488521891532123753995524726515772081300729814190618213461231766681958512819880104228877138627062597070822825396099058123314927299826817145432558577581821260009838589837555441167409696763579921735097416047184414875779296806593957717415692398362640603402521450559940496604224685689175999443756508850123759394695255292009090653072183149641720919505603386789553242413575522543846047577284430046032876328747849332556903744217898371596540930770689987225242229512906559051522382323140910247314748789916529413262211539314787175226403317018584007800309002571594907122676894650160421073589623702158064696859433829994824726781127559699341509218481191982866036440547472787863396084982659344700613885012709169781999802926004248276660772813589893247414960586204274974978919867843673255513254268152625217495579658129669086477446044036617630276796378713539522586847345834342736346293997515701285436084277236861809788514819798477735153429480888902813261515208473457077841299538390851857935357637733263005230323378392865827759467270683497984779594887641893136958570198507492105984720475469239423719477408913832170421033976334635975216350723115487469530817997442122523992014880275014399402047044668494242716487119535032817379663263861402993047307765282995620324168227026475929469685631176758682055345002611940353961227692137726690057390425502337164009538551323652293405051658303241454200194029156309758053943056153415161198720094579105282282479933073606643797252827278325102385030625527917045111699115964635551038558055922898208229382008499710440031836604452236684650876930481503034234896556890760441258633799306721582994837628989907726133147608011507546398993654632662269123789553907449191940058345969501664442852929026438111568103346115198682193064691497607964019419999781680917898226021722634648497815622404313969821859747860588051356711962064642151564859865122101876129814083897715830952650987353822233796531601842853096584481674238877635668601361502346676123303884710300253622843487440250993360480547513098001672015632673178413466409344094858124428102168942311240058193454873558426714683234675211929640928176358429325428639002434768413578000642621301814868538498411025039968279423231522865425487499175441390759388525250889927223165722671290188351113641269375371715435014195328423460096386246248129734389325323514303514669941969212468401667682789542670186209794080011693622813644585849711160625872833946932588925762311619462420411669677640558912070647342824974598470682843713065348193134131667095168900506260069675819424071449858871746964832435323855084666544661867499229663850716196628506067595952123001823776710187639617576449865133835686295036111156333358637581960906415928934259303612429461735248210318830166575537317553065867331103552635065177460586440138399857304028962108940272265123348821536781798943668012654552611534956574460554881897914502835706419066986345410963069001962779490136503429274335080649720345017881587205320716919979600622875185822184815355628909802231000196500649009421685848876241491231642741071801974408977111407242415544589291127703116702618918930171539409008313122998747277482955324527057734467679104573532232514103723376485949397144721344793052550530771611944752741903774553548710383281180666587342568573802869289629488127897435048099797611225555810347523366468915437244581955606281311458031573567080465648280310754277291869830782669923191150061329319758375551483700602777282723880313222913283820218299230646182665163207939990566926306765669109522500555822553185802481620388616827681248297444513854355817450743170842908166710746397171754143455906413383669674118533826210142254286896911885498333935653220812207709663768232939728336032403097470644357569212886263915315802574457172396150956976585511964548406754505009142006744026924010213063810425729962262849843319343209805010857391562210845754786193521939286536591421163558043863576533253492039262546091092734927903488914357411733031961944972901504578790815138390885209019350469263991377813047140568332137141595834711019338270958588159837500189588020267416885840891848053218173874049796819677027285479314030663159741054356389490315864607810118995237604986177792916913538569980007762499012460972200690370740156095247134988541173996693690916926655954391591084619582221335377961238268412205420079678601457393441759192627196805456881593339532217009447365947874941469682191228950782377666659235692394971149885390390703263905354909072395230682474331336428852680454103797838935937298586909083539989385590486182713476346155810044517568886055229982863484656770701581826162147405806080286774978779240998613950204273698198884244168418223904151635752271054920652286157636389542644174861147887832718978122150521288815939454270049026903145913884045328533041857883863830030357262263430353288040109121523645467380633302328322369384310907449633405969481543078379156917458647703619991420915745887438138994978812182377734431150856810382245574688310177898923148317932677490515893073455013593509736780923930156641132207599192883952500085295511296335878417322681343939882385833628801994771921610972397577070053946707845410948104544566945092032057354114087623998729298955744002104818031815110826696639311477763512179199448081076831904911320790061670449937711988961415606638309431978282063571169295361185419801815967583260081089423652246493538679095408416469114091198487154551552576001953515183714864096292531682033953674974661739130387741227318010188608141897677691535590505597722897493465403692442986592027262613534231370404545024564646094037795836376904013431527196109228256669445975051598854421830437475862654290845378060546205574737049559968768130013177899301616175398537454629006225725722494309961070572810271171699226888496265533618678020219210646831723870914497220101275950767100539642162127307772323850376026617010430208922213237450209173778127428218155541225892537956852942887485968588501891155368132683666993101028884844442617665111543572228374168060927869318742698834090109817829568324905747650939454616523733213877475955085945096726389317903832463012543401932843320338748705965076223263958438936180415109166566770748035204741546718011877090890119056034467507887948217119237333960127092872521403527686614407282201612879085941133415227684225661727496575798695298548366292968506698455000081263578260989473518512246707868731417623058111415530886926341787844415444819358661149373334203870419613902439096409765511287189450331005548507197059270993929305659468345804283770348959325866990320150624742261026799586189261259939236623532117869469532821790841457902777538423205473239628671028943149902769388037384423914757665480865650296301423747379441382856201018809788227828042112058502394423298129463965296416083833893372533798343975305051381815066315974101839805727190386505925157847399510488546600520843046142910640186040562081967401352115741271730473220437546651812110167607437140977913144380572886930327022533642132284118521737558597865085082738517343053707753111275555937568810171702635734990631297404759862224367267794067015959383685928479313928012612504114768477982103329644547756048693188686502237367002955686331752815503937013579260094885039450850042272821554571943909383456613857738396606189631287844756169317231030936125299686506260443549932728298714718219317283200611347465542318487528403820339438385951597571278464272789912911015259858834262211923522331033123586932514917472862698826983230881863850129555935849673643842466363772252909004430398622002319631450999945575533683532738385974439348543392456453948967241774521865237780030670549387094202161702970775058706150914945718789793236560725692596216926892013017839365066148423327674538747183018998168433000928738604807938710785875390849554586278405959557176256898053025461921446553309317806659338831395174698516794210914045023070524520187948776993519173777716989747012619053171433895536657754476686772208152357098930190944023383469401359457783926146052703466938974241215941174920159350507508182763301440631689399117775609609288391449691266685219101217934779435340795851940820384582346271615852502318310670490576104233762490019705406007520611974820446507771285193212082653070408444671895249875343622234301550333499115344722500115289411006563099348421535413719227421431012660987405698458720475064780389470055628101818378461885031111707335718590009883317862297650058893340484108054349374648080798372212105955386937470697056600553701533507444271112816939271278803648583266465619299573657634447142664734809447965333675597808263547872910978491515610658113235812464067787421619192480984089391537053626451465424607605544267634792478391950278931529962768496517796155556983154166695004889592123462263767342657715737732868050135812943305809465991647430978508758148294116770134815647111838691472662477377146064906364609257606309768403769122262472469947599502920693407326361332786802509947323523902663738535535085018399810032945387807649215937670923519585791232828671170615167382745867301515016304086428997318706572912011123693976327947971859963978298522559535006714741319169069240520699294227640182670987646710869474283454064267634540759979760397939903160490348431599143833516902845146405278341313488540133997582814601579603511964960454803881995823651256784723267470113578119456978482021231862530832152249777143238355165695716277344262723516040718285090497035745099298091461931877175455799550245987710697569152923910498117088536464136707156448559530808508923411515368284885152774759963181212263560102760620764810281811827123508880117001391669999526753444978790124385641758774390192885731496744933501915688274990435991395268433238334475837922935704464192968173082461280637169922985383946496393751421588701494539610358446593099668196818568716095292883725072721188430042519781970378622739098471150852442782962159171261396825781536982242925997852288551505528870590775980683560793171008990485305080073237192002894559667641075075384140468983037784790575945463560266325028964021428180867840588578448863014259045541234950125997365361002154056488884664925795996318152089237844892325069260915695670389932011661359377373084720535607759184319575254377994056414551660012398850427922850081157990149817018738660873404855911604991228534084413064125015393676922178273225515997672403160700228748703531381305578077060206769901782521457257811874146264477664502939432581091072887438179241350659934838188175667400761305745961986371367930249908251424155157652441380713062114708796087959919251522525263214063429741166911496432999035734082399043898525876482085755265033385981037213275995819200671745975195762415388432779093436009090216117968546627591490615894354790991307368433653279636014430971875571366508193576113822294424158980176797357315201316500964200763661224282489915834254649147342320593939389632431885652900474256049724434675829380280579785939124137418282850558500488271127206564511633186632417394504744224894521303914365682233915685195179203709878180998888232166646310616165846764738004736844968018991298646905767572310959390533502136151198832121987947495504791764389630630131275416351786006608958609968281078746352524393896838108339002238795880089006480802630620210511042808190554525428606092150023756329427912117856122106723355218294862128468302194518487637680207725254872630479661466414800313582691393034062083441259105413813231503159243845648991491546638002503618132015276784535429459597661117909542809241934847491039365251371690761677387550088602876112164188149142511738607126846958869833897020640678818439743575009074747141110529455184808056031787108414513457334419914335430383121377568609760648837627702867443331699079033151382674965748519408531360267747605689906174927928873953240708873210652050661749152658533968220885405873853430665038958757562672652707861826689858805816003872268605721659696005525176978812455539421809462239965272180617102481553117891771286354158201327498374796645058568683146824220549829325052771489991978631921268233547955383626105563166885249468900299985559509554946009177760854417104426485416718785990379185033569906711401757007838042669085072203736911216004125227807702447431178180540053294032629812422298034007708898272640490515749007244354062572267384445743629093936648917438289969365906145101699835860546557971433503415381027059435463069993355203250263635331941511217181818055468049328616166538083122361793754669259039947224996142590753076553670126858673180873898339863476462116962163812874060124413608495534450581175549337088880725030362367117475364071779213415640067414296823136522129145086195035386746998160146523677311109158174257256708403988687220636235804271146529652291392467018823150746121350816422538679665144506723082441687460513229624593349454917892177378585764477708624131411780189272181362085192118678165121000910630031385692466262679768780610416930835191244201948002280040086196011534945746409214794965031610920611548486845800392762185098759113731796222323495515884517433527370765857998737021011374216539919978325917803398845652619388002970539768965220306504193447010493933053848169180584506337671425206728516683309560835225597160420034913461627139052499427163653859622471772234818318009871110557980099436833116430893390304765231012193356990910407515978188448532737632447879932597199228131789322602701193488712469968174261096147441478517757910322874580664428585740624197952555038547648312112575520082123905511431124623791441833141550248984419353240527091663383587477999388217555608674577513360090427376758092144525523586582126430045807945200025582439432699873708606632556267234896269813853164535749968272216002751426222745605851112180531915790482508484114210535681648003736238541770034236997993750074665438483771697857687263099623133257193214698971573468855022095938392081926407051847424235566424820373779549158850235833873764400317854353034507023902103229263730678687676148762137980593521266766183195405365227133383291019559391522610702166655565584871494695161204354736124996708605804461236762687463673381326101771295905987297686246509394406968484728847048310272077706423403007456621345617920171842546931463058848787213942438377756121581694538720151429681770855498757710985140028391543007710887077992729287472832993071284284328522975600236081555207247845345746493764452674077615527744548911044376883260904134761633581551071922418099006763097701267918934870869908820807092093031335995164540300732764927976763641778674326158365881173170936907900884521517657041152038498638741856605548609875239238061266752670945048744497881894878040932131257492283931203091443107932589283940905812392015966885042600498177006377761175394770551958566226879956082009232834593610042991543194792887759113777034339051528609573442596583559599115398854671313654306154223847015371311796769877060066825943860491972867589898476710112883342659741470427701242675040437431837372983438181540524871704681842967226207083316915905086152661855325521240171660358684565640114979956495699955694168288980593521770872311254278104718315548248570477780476281728140280292113626666743266634507260906032230679986424698779973467821272936164397868834493079966685723376119904986931589878914284086554594046987393859579708611143420427302932653197099506651549459399139854788914960861214569641719700828057129069333295507089056776864403567139247142897036807157515470390235321592544592189890810593716950837227089013777589016753216902041527389280067087899986321150749347006881346927383475757807126647604959442581480675980710843584426178874109388101269376451180112218502763057880619609075526077773185607052102169168861439434273758674834360684339290012003759324234802491991661053381137815137194256592131980425654589295148543231916221542399901765070415449191156127831901474818517633351896668217434693202100872629243740159294009703071315912073357938153954485777992561745951846966810235050458996024637429077558837631017301332900429980152852845943525888409372290125495406658232621926578050509064296588577747591474753165257686840170972495267325322150072678991711370805507292052421056524474492653833160153657255005539356364788077931346955227160265538484791017871206264625567899384097920642894192932812223046177129881865688023907349717974016546857899117596757771227409248403911448514566194740396951467552902686298396388290305760687545905985172147482251271869201719079792646818313196749532365662491210328732953757027618197982747847410828578838503875149912369575571545110416760216748371361339276362107540450377365662534225884129684001460676255631954305914003656168971176561442125498298358372445932951120305257513136996161972989419794974428371664295655282952213337587205978429874835981174383432613012773307111588667974655230298415467574903751646847437875470963205884239024837015183132352898813179651753959973843657021602453889060339961552138091087857616210436549151678141144610932965152799644580077686302727868981593951639620224239579092341557760943983545005225197831471064075322808458744778761904789432817115048656463997716570259383624747854978258191839156874674042775690913044895933565344209840212300507704102114968634657657914017933402201937944736537438802543680376940139579136643671814271802609546392734442151288237876845650706211212934779755670039384180506598090503313554083675395411792937684735533822963830658212985643120557008988404385269092057353328000017663353964698996818001278279479598667317735227300954595501338576634022810067035491933727258947875072021121300776614205566762456996408184842361294533618411539523042314068865702878605533155919701404088525283563256779020067174600391476480235609098156577190133315551589928183427532593677347908410405248324827717364880113357142183876143452663784488622217386074411520075720002562474211570180243509232338522420558669727646241448233322927055482673632929799957947077486541413390488798213511325494483393573411067013118890836549207749043514176358593199436782187450567102799098015871961861322642456229058844601742954947838005809181509108584007447056509615240985558128634416368375631025049775454890725027600285021893777368931341336926103456790348390749591375785401576993246635721102586981589704711128878619960128416462070769276426526569492136986761872791000832066036854724715443101230868612503553303518670042367833939380431902077674950564281953863346165925962202102547487836416676145256761337292853364334870284427568920016541301186639050837162504936147511432859349237450130377928509478783218427613537477519033024446351278923120747526346010657907168753479702019631278145283056379937234593716078590832954524491808663915501785171722931929547150209345027569977749501759306178622085093165944559373390660463722872355370255503719662720919086620706484999566303043924847101128196177805262039589329721605864952796412821740790824363649140306870876432587374961417324047507152026796947622632289531064544474338078896630683039246981784219809811487311885734380300602509266162005173291613897100529282176491450258041411672449758503775259892584054077300446474569048764507742243158654705450943755405652405231600218529046868126037529582766029288383830146803620074427477310446288178277429664446590316772170457093302928311686478283397609471888082996169248841278739880320104029916559798908718071097805238081149944282529938703320597506307101861826244894616246370681793180720915215696878269395614011720765341128783555632069978442979867933780395683847124666459726062820616906515565854033224255500522361335410864664230182025277024075657181535805823018119071885171293955896509521421804086629296375322551118508490376463519828490011004963185093757644048034537878246024723669766173999818440177915068149528638945122470683645515609497488825745265312928114679288032411079798483415571411666183194855486023589651269881150395475358741819462967996218776710320904358859159866960640432138420060923715301699428044738498964495317107311846212330348243163532035442612567289728549339444446684846658547209216766667520645821757803331211985406727512549842112904266648738922146423928390341460673201897606208034984633331693898043818680586075432631507190752373687228475543676071285180084967129478248722647352189031596731299333374192044443039112636541479719346657966183335193283689636687886957787473127364557532413147289243362623182645104730626691603770611668837489322888407350853517021910132569852147957216433621304459164910864987864541448196173551674495102394962746723875085660062739486355952085817346156751080354416347799998062446355760501167296489729530353763006646215141882128205535906166949282314998803693780935106524277792815132746396215467529927274705494704348676069828527140771310137494804779331872485603044111307941809116725626977563844512743476729153981210598014830835552298919272345584327089808021096571850293496575709184513731513448802528967499355257111307138576854121545923133194088148722328549130974473746431630899914322594426489063178043852864900948020288189128740805311584678222492512143699102104148986861437683797524342232812906000149521809392213734290795734610715237900769554597918512772152699921390060939078090879664701149189803332125570152761808113043413175513405040704950833508422041180890165719276384140228257787923372780231284202016406998253642100885088217932854833616482301016601168189277731423552607785338323151544734747816217759375344102159439757889903784512140836225780268177577678386386167930971291034891732981294571893606328221785520306893512543209416060522859850334281241338305640199115637976055800602390287949970106998150240506351983322953247626830792318367159592897748950133827486466468126567189021536039666712189752408656074345918984434078100596741270919554045693969738821855625064017131315575080603009100235205827022968159490119207433590711399035274183770341941604656467696393381429243966692502640517809200560196336430692882751278586213384255850425192623432089407315434376963121476770167782072928750251745549227881898752947386693404003893420469102379118050817515055154614274113562495091092310721858927289939797901894085207270226679394965731269884824839300639223031015390752935401094094898047595467571385385168736872643410748001776602145311493492484623575585045503110772914578511849508439473089240086908937594267406609426175853302428937928101369157722452516200902946675495407634162045564602305611892212494529101122083297996500212533078751117141750825667842275243165124854915609863314696980710011953013476359186349435714880039712376043561600665807877403233030394756357530682296341385548153365289179115632173660830106418070691994036347535651454992217369500797410107647239256140046509132723256329382870350108283920678235909699364562916931629970988143418335826425947330525078303157550274575608932961154600511893346080324667646918195447896172192376820087911033321207259967796162844283417231489326612300482729897462157205967118391218802150787988623037999846716496762196436774764740552664778593056875108854186466142365190593372216925386173234152398819100573075243604705434747375377372496540418441020670891302405821883687829043107424051353628398575502158040102327342245889401029497028409025570026114630435934055405312531321788009953008374970736853461393786970326480165071953980868689203476852999809700720816762863989102581074094468933315432487538651952993188273565277384565710482315421896461015218201566480889568073429462462752981837772143537366606954338133789531472180395444077240725205392352265196793927053684711544937907269431699933577308295137065047158264226651094430145085547323132266548312223305260382751819188396385461880884418854876762781399808877256907818786240776303877739187289393224622312869095212758475270490740564117552323838297893049679319147637041606135948085946169029277925098845155466670192692985239856713340134775507647627111104923413123263226359144221700369997530830555395350101861823980030167388064952366457091101429295968110202633241039921294840793045162122575541191551055051450213831710272984256829786062740364377767659558931099093719065679382410931066493549014807641809329142306960241150209405094093318925487051862700762733323119126474403195459414387629518561241922229052913291370658506604638825604467514577953581395197007844721377278479041026763628587252577046258859830569351041415402087445516253017659528951013396501701925241699319096799045709714011535779429864700362333424421644157870730385465558366533647776117922594289925088612933060350025445070995392353531495603055438700491809872491495372345757827828935952372300053550830739138890548436126201547287618296756640823170962923618178657048952137392459708869494190197026350072804583819373701219617887369564567552798854471305666770734225639420191259833218757577564246176245171357614047246458996881555256474286296407072056215453978418890979041782578017713650237531261572216250268638507355192289960919758697057559437098643287841433015404626791625593113867484158649098565265821066380855118586812975870962390595220437034784297493696832618869134742336304400621161825282718688412328578156103708422631581448058289279949479875431522034694951327566269786558627708550363492436773826581182378931793840776488287068896834679336988417741257326840870151293208294782081674278054341995007167166666648226989606888919138532538039707542785593740618372758025873467124113519960277259437601815485592852565584736387476620279615434667130423836865156366919505728314377737953632851906736123208568731426835814102899796844599925600060382646422794865619417068337247802161610076557123920033209327717303515733402420797410369689299068166707874474021081347737572106134300778354722691253961534632823512966592264634825702067739704325112179896650783073417483609492597534895795787678893743894504195929479616397034780360214471943298081328545054147937099403614280165463965115188942022227357839843300462105620363204011422893598012744690280266038623201949536508055535397338454234310894445627572802447513427166027619787725434421395130720817421379101747487301042445038960124162417560202480187088659833901262957621243013945992526148268915265922704145843775120355720493065942856577376610361608352347193879020267886542077455206445886822760143570835237712887692107956683687791470618511694985563674003897258141782498322650765861153216524638076287893664901921886493191759565462984213365741344549646988789818421260924177900195565305827579392785581977284763176119241874139538239234727569779185930103976224646927538820494022404506889555440469711688625620812858310467118812841277056917625023077768958504065770409524821441100617828242026034254667941989665255543784206194875031134769976995998852741928861856015583486426872205461932255182314422436683644096483291420809454449800889356133625353233413230244018918619647496295519809865652229938381190774030038095488210499998021431229395517101816125272885806162959811248519538337855847325508790191688173360727099157023736553363888614796688543543236315296766731556573081666117311645218742868232789668719684952167731503367223166654484153095404322509375912314595045292997719987643503755910702321998695630758374292105198524413309118736666921023356712820897565479381230611529442097839783457183899369537566907872934219558969820761172192051838597915398280593181960001491017477986750240438433000438569694861337544533241344587957291953640085171127892033734138025725327453439196322149805193065920204276225762018599099490320353896009957220891828655648171317794206556727885684958824808943823962445040874695402425343738431167556362179952401771797353189549064170959865577394447243260726841298994109831647364308286647306315809539569426862848445138964504031951967337274594712380585996474930055418404274492616590180732507842643591922865362446778497691107573393188086511305008965312530892795979752355142208737430439426982388430390871137045793017535326144438257911958764111074826081322578304026234780075107782679923556246536490800360463372846509748829073963092079235159984575176274393347663325959592996075798414576675421674971255921799359239384992615620513665648472644380792042083877348438026476752579979987302540705432953748310994424134452776208941721326234571224840522646570358473606860268400029837467137616065580932951304903793240936356356169644208427509367610325690637407501087487025217153670730107281669395831476044865169489301696770742521753205634878153341158922669687799660500384457829906364922969797909836017192488891726341422110581362431805371831794910233040317861151703410692185984928084697475258631512961491199524850582922764557923731448857743295086169577701746367772926079532754413780850299605208630781079536897025908351338606826528818833607316300790840114032903068840155185416603643253662950952511549009707167179209917420106544134803040853883099848626718213150413882498930532279223025734115809750849591957133595055408499554300428613988965038406344141167925337185989844164804214852399555814882580259093520484670186928253579141715499740562665234776776676293917496781132816128011676939635794360417735659970791559148440898284069231535760692163602827846740309452289839765960681489593045274847373894467595998042480822051451660338446858631465647621624201798374021951540949001765967998260038446421697899098374178318611102673251068849840124409014660888885898477260758021362874341564322605004762246469116244656920514635870834400554568899945373032561596321180964654545774238726952804001164796142106366932394649729510494766901443851991702045869984690441192254969256729560619300328180266101514995864012666325560364507000168964363610287773955819933683911709937242945455707180310984661907360797217098125084582690220075014285722016906618987503654391979245845216067309734212585513277038143691509197981100599547069027601328531590311994843200646230711662636969580339863486935765645816316988679262436250082272886695025143497387053356014984793041879520818456777652728489334795895659674698576363207486289293770009953092462915498436658459550463698793880443967150046225714588784369179853052617163176910011750459977690694376260719648157838049288066671871862533029771518169178793399518857789752733855930753539062422232964098097404341610056390834870820027405249635531045010326041745960766225587388297126645334132906857596985717912845278151396389285077573978632393502121589759660933265276305393274606208865478268237219493410835493096926478288100077271766659171670124517092333726805032115800685833094587833392633595442371467808494148271849578119650890489711885990062743173157303976623074110591903739642760277243410507045153324684310576899800855025307303562862482508860586544526498129819478514753763697043016154782141943614430953873106732759792889429927635930907005566855465666139683495483572445790472658659434751097024151950244688321063950605416373867015361126713562444148452208902785685934970197120685194940793262488871798435729358174893946359243410218554684061523293787942083594616365040638634961308666787180359543479822522094755358160346415920612199654629569046730400359805481187829426772225693385314971298117628714091520915608732184583319299870240901175130427217331281265486263728606967531968034391290468794913238718679584626409480982387916410577184233308230134487546607464990403326565778958159101148652786567970286507818853008986885151418456527876365363135923242970853833680609332298062943259796022895638844533960432045620089221270964557568830895989286213299986068500182998965196661254107569944834866051350181274512774671477537246729882082444454047364837052631989217121165728473941416883709804425242553264418587902226416279515979996909293954417323930194305717320794136414040361357248676909876165695516554517061789852340240495267016868249898361640797403108237678446489115277991739958855686924798593174915791908770945290903828511814400766291962699589500878949308396436005286596426621976353344003603816603650952570339133952580667289388795551376808461876436454736207120586197872001996271146452421704977988928186268398285606791596839558632489042146390953349232876807498598954693724670422342008314256325532805653350059224524041028805214269476144683976166236082450723855800528507361508707943565946280240375560287743419990160611121041899258381633066896964275624578158870836338370553751387420157452125025024008805987980334728307780748597804246286232748603067523094618353142114899736938892802920285568190337779240733649350971057605520341643304680899687588058176575650979384047890397567664042143995190608069304044137189927259063668866506026858016617802301102771836845259064461094788477533123462109950621717215806066030740715130709557165023091677397761902237588648485242142891355488187433239227696313435390061442825014288946197322477420437346010068935918393650795802591510897127310752651815370867000588773599573578210454456255001746392943918480613949674701489701989034207753086669229863638162963526266123231272527398460524891680213913013866105864441970339345671615287907425405063165049064340208512357793568541550758656978755658095893190956906160467804408843085205062360822303532745624716512018045113860102092944798830051784685725602764028606346049798133475887276027030642755261841666411587595786340179271252941291227897871058977009634608915305232339469597675526784364977849473247827317721608043560432236402671074573894548893117808314441080122270696627071784847548513100612948667650306091155249262456625269534195467423584055570168146025290318689635985186917387909472131509199768729292498867607537130964295807248620352315758335865064175250197572280508571316070004455670876618851682970977368401458375741889233443816029569365458963205372180371309440438554184750631577638820907196965702587591616007617972856913648395593331014289396105839725495947034702122735208905197549934628160187287857201165496374062084816297341588324622983021071831288621749848451649370924759884200865325974178107893633965933534658526685341488956120080344478901726344574848825792029791071729410593980845673923218454093581490767420052071871979040482259484782709859608376598332431354524592925658523533641962744236619383194882941554766194798410572505835009832305384485221386823441071558061967916155287240213411551309285652712462999560068264468051769656833616496947814336182996498026571962296095131921767656612154800705890954927066070838607294916699536370852168497525710909389546741469460403941908510343534829317690980770290736275426809328385241901310416404737657177367698457064202218632191678312543244532261486964857271356752803220188852703545899361949411057515793947984830369835463286716612480240752759777765338866946111059728817109804803005881230366992727896974868810910361501824300692809054922464803614538456836579524431464210647641894480329841382913318930112466150015598381057164306586512498272781908989370106314222811619707984402749143593571269979225710966462605127037324888985660656459946114220839491698343783532045482944304906795901906640561489861830098181536268427817849224450115150729269013062156747530239538741412961529773345294867096155327176237486783588591593001204016123676613964303440746391596700811726899272904050846817009410468507093893252699837266400660786485597219490907278055407998516673473970314451397608229996995276032641663126156031275387898089931254909258508739003067656732159597259498679881476606560582762670364612932671821047863471618291002963207133780859430456262753244348249950623140429654192090594853508454019306498603676397854185796750922542806447860592300553444642232627361545872270813358218623092845285746518360471046257993572495544003944069847551409352832291433453814011942055791802623785696198459351854677535100070759376347664131559409651647043848733975545262042149573487951031090281119436239381224820526672184473172945056797570243561306594008486156009390907922120507787746375176784496882031151359539566829693490156443625411361338077546730249264690433522497400558411615623237490576078936478310334254009510661073408724492352316553696342221922088988422810612462743855371192010090807117789010647652969785399434034508064809598510918646067301975954527434255348468171244981809749516423197227938292518186003538811673664279966280690000695174296636924240695322887181484303205108426393253370894852749625819906976789496835845707013668672243593585401829809071547750353889698168393906587430846607290931322651008408985696085850361796961975423240242676944412492229407954152054024512686510391897589361680874795644429449962407123727694014619389906183249627815601825796646800750360117078276836747879001062009644652664142356287840069746524020419871621016551139526466379727912876420080507584377361715236078166696867541828646611783171649133559119499365726992316563284467927614335263964933233130325431626165122558198995967041394908415767149373289460607758837973610951549090528489183095141091574974797865859625817771806142525231922461466916648617512594744529830021013093003613276143544073080532867976550910701304871277387383933749734086464552227699382800767064585642910663067714259864132380189481337231586899811583049741985426448438886186670492568519145149958679295852303705421248111280031411715275121474317496049117565092369598874746111244690986888456465806212204893724145633692782297873950979696132414955847230225345197572684854690917188656199090018815674666076635393446035914078228151983926633446984828366171413375446502327110895095692132291060476294347149257271337377184283406435225453677915844321687198354637661412266472070086569701677367936888065686042475773630686166785788799278105844484859421355448883767574850463543548692835737396878253910150413828265217883045384534578426857862519514604844367436702944402060974604382760716261658715607181577697127684784731701209710756209857882322126261558746950414086152316079154923874809899590081746557565223784953414856313582335369426799024630673772255311042618639979259008904011073740238405304783296352436769633552821746402526993092864530447984113432245367855792900588157172624897033057955038358190162484856203974505047304153463802368983994957787825201404693750214891787203872227719807432585141196604825126482949609671833314444837764564326112776099270592031704670002105659706595398094346088994395585076758728537959144265396947386662802314579646695945893314680427322911820368175014279195931131086669036390376104083296527509958926875111642507366933902968049855344167550634193507929518825801157582741284515168230138615651208293632939191793357844195513946320349667610315531868166466209928420821740417569724463661091818755971855983035009758740517660969486074471282534471429185673919590962506912671370545069995143780358586876305939787704942261140414860153792248398683293520658969894950869582192327256640011592162101195949050743172312089363264134490335290323868033360101557352083424638075752477788405906032974153704003626739602940807032254189785607828455581337026902775284094151123156763100367490022187482407040463454027927747024209473644563648669606019301093432405927930380837776423823507843214204262410255415958418868590103752525528420100069366335896773098690884980747962248325680321065978013847176779247134461947727156243097778336667185605082028464473840685560078314025029377298725187521890963674289293462910885001371125143454759904350748576938422273829289082644217029191964705417152638377805506362745915806717236225329093786455831908167944348849757968217738332741883414007799982375210764270092508730436060591232318816953321494003124379292402760077024824440205513165748115639685576972433214268135119403343589158847835939503423814780071610320967173525965024655755197153655879323874941049537263084618422144788298242777377420889715957808680045691633442836805799971241807857719601179950751358061907461459481716789620270187344980012874295148534849388636087027776609330842926996811284921313322396198274605735701700178519055958982266177117773482840581504343342794961545607586484916447583486562135402208109548058500572534776959529867054634074471887278325751403084287881538199133083595568754905592459670232440671241922669715581827816277111431927852970311475542033402905601517601697801391163116873558576322254757975777567844464537105843826429067415881778514555736705119855909167726357511792127094297711693008779834747104273487085356935403615468543551125327932880730408904468868110148628843760088850985036688259607381538579317931996534060494990751977719004048631810534326258945312222422417477900523085064798238144264129211912445592807386757037712539990101818719247777328306275875853115543299714565974203547700474287717547959963293698129557648528814626661766984710620294623141014775395759255675136998958997403275612748120600759132450198648022722195925871962920251183712667586951340201571719197990872819932568907619543613604494356865238516913319594532006063697420252152509913533057089821147640143055194336828708972432015829567264508954078343489295362626547678915631922284051934891297588128048793853705195730357840544935061262519897505531065525034288711103669703063467094441974107863413872090216611092134691011297809273322559745534266205234180857627079630232020771398676278411356435651642050517015962035883740625208168679323304023372591280298544681242563218058783302648214603352007823394810622333579165537708950357293282199720326457493790863523654858607662327194661088080107600827751685675011171558953227839346563624122841979683173458487532107527923399209254082680565532794505908011383467364844427969907884556318796842773834536227438200900465062557144882209153278675754786483082088591143947497021673581158445889269939927188055564148961302017620514685264451183316218594950446687929879955220507557753059986838656362897233617205814458945391911406900513482317895662077373818522788733653855625725148006500743708081925241190024801478637238893876831316922070490377560167075975898786612644380043585297379203798506152030542715849339767875097959393671892753655576967755414973094681236563757662149315000480373903648667019620356182877654582319752184966486824732034847867370728185321994416289242959408656938636754221427879358555705992137093546375866988564639097149409365269673210366565821464037159392482873576670737374886502242787747226392122437680726791158977768431977558611457843401598891921284205298617586548621645421629281564141911166812059616364497267602311226035564508839178936164574715458150010811432267439369049338941755377291653201414761458204153234434754088702815002010915743741509967644320904810751175282748547233043828553091985641509160491141905119745843952948602392958887700702403470260616996528480686107713625210998505458431324723608926980086400445327610398995160816939797769533686839173714977214026073499458413347259446193463644750101826380278438541282401235631021760694841635448952903463559971475634866140870670420630110526952092758070372924380422298684526125527191476347576377004103015476568220797776305088599347195833012844847978057420577002025446930692133298260234892980936828074650933005830142754147051799815142153396872060196245105436434686089807728149134225697175324142715275695278462527500383881426366132445360270861347165706072071280817786503068194735764464016184333368260907451032255937116620288831838490419002337048019930703548170656361706391048154033137501639051232906505427340360543790328719828087405225383173315778216279578879607705725858926502136246497456394712672339719373742166617616706095793019685930301520219704256073211463132696493556600554567524334436065339665154457010217711180105779340320919610534836248733477155777540162008739793584665600939190030125594509698501932566109838911150152498635830671206491670391231895841004399452177541812501347213420471035673518056291229865343193357323310059387139460593109971521769420334937366801032061773826851422433426392955187867459055675269008711097107730351138988920222207031304267549887554467034967805023903124780587805109673631376026906917855697490036481528224158926419240531583519991087513506147170226853408822837673911265779076604579825178634915453391773730829114055843753104173691305382607999074239436296172705330127534287310739753095660827653089391228962720106319348169388127269698890918078360368952296450932000726980230131241631168075454880688510121864794751921399418021037027817351710232907190081746253496023241450134586522918277905851780710355798801405503872075318786482203464715869133445684297139897895979681888720403398029188666151720466366078735152118485323146222254756470913594789102634473300849898171370805648973612942787872268392797423731870302544372017359118871148033702088136450968259095175408014081993393494748207362158015622423490458786948290828897618397611759799739186170729386850022999094932485540634135357278200391905353005070775961979931065085860785832174923109804930694847526134423419117969760989667397977053726710189701665457228096940829468036758013263519482055537719526654786087172617429596775696221559579166198624781237769015270876464724344208238511909587311495536316013503872863733302993085343993843978181335489461711330912579292289488745907812244402645402057754483105303176656110032522316572329925895851444396225736896872905536297849862688457045526960179803450385282661912925848553576176431638240239803769246791148328792738602102903810659308439863545799311596384164189604953199599666630362836244369775918417825494861571970081542811826579291774496046084403373704954846356578059365869280352506327570493964663586831103860534212424777134111472262742785553899414572946432203233509448723543614238097605686276088867411286751486377721083129602704649604851623688399697492744805565520290838026742965670040959743228644410564206967474077235998569591580688387955333015065912633606976185616776757398931201909689895802057251984562238204197564212396261515443499468281970656778688416920984474453655626743782103611359322178239869458657499862801587112186123489497221762489233867670811399616147256047778471195697587879621507774150065892724847836944410597337273752914307098838024271351545168726087475078561295823269659566541377422189425203117382796937191351456495861758792287592039609583147717690035038371762751210243534784653248162953870896464270862755650387594162176550123724766151717275337382762747381225274316207250141943154532422440167206791469365906467769927447819781184166174460760160520174375964792756286655118408068869876316619142285177377285422862368475930563490865952952037791143917067060481759019161458022567410462791302802306755532506147793296966818794025958126440939936827985878569050471091844830012855574610621616911066112983052926991515380016552110737733836627886364160366134701636460415524840791649804420275203288352168960170501429282569390452604091052782562617064780948268470962535838029981670711178758906501319768403143227534235072937637584729574097085312137126374808075350899624796179821198323050440083155739379628119013068800416672308232674082739937819133844062351979839901607498352145078627773629977128438659058817745338805328838837323658403829712844152252123184881460667820968184231794103325076740287694098069753968924683375316348664437832157454612071528477517502665636992559587323389915778113921775940181881620660638854753721458768081388731112471160874202098668165886453988205432892041580106147346270321710869917703809153314815689954533528433302927258535238038791829885086273971500942930533155711649688926340369701414376945970154926310552093578032518167217710396847640397352347381788809330073763866282339283126192533630359582395840164301942492962296145173399399844511534672685825414563504852449279321466556853175105623878796408915515226198970149762993435807045711095900862865032830155368939912045139284597295026646661159154235863774277134157853833459092161392715407661455236730648291947257076637895378934717958707508551364605961971084562768929181894210144339903158386179261003062007504658495808554140526092831122893328814250577795386974614523949783452912896092711777945211769506276246129909778384638126962725259258406539992664643475247676236524696991387480971881222760715299288970540915636908758461738271437369213080818362585686254152224825329269236298270317359553547132145584131677605646657120831669506077745887927034506302744801038880689252815576015476891954910414333370657811206773310315770668692569234912870329016915252505735746958866282814238842278147449248954364072607788093998952984809169943692572486045873342479132556463656526481259358591057487255245660046503190766719001753089621906067825018463801233595228094027113327252662106079946916280087135905008737489175930020847472925260360129190045174339470006363062750888148822044565097383230981259748412154539909404341002215665293530568398422653490226860326194554608187382508887653301345678070262394176905141364718031035139554274847560536929013689186948210945508124758454637644550787516452906341594684758218829226916207805203451453040022771893331507133205176218270014682745474436614111500669081554175703902235727370557518583698787150633243031383980306743770070450268821717553124573849867297280390038294253729604265022268865479466428381043576876805952409329199751090288277445264252647537065636073799266050612209953789688070678876305355630855050039164714045904787185985300743074140719979858782246378345832065334206756552353653996520647802816373847357639346090910325927164061457812054611547075082140301873822549573129546669580915352854477226551510067544730305771838668987111752831824750200309607425518937037840465924591936910541883639724190829848573467726901371316766714704807510793466930247585112389928400480007968722246039613846253345532238286628920405928859975459989598124518767187389607870166816202081923854893759605294980427000233817623654822154134944970435300392428591637359310007978720112867999334550594750118847142388196450164668204977490315507476242657382269830029429647065954586923960089516474922381440411410999040042704777934221840137158704462572895790776860965370848264416822039336313517885084706983539877280202027408108260109947765948279956266735530926718123297751351179692450757937802551474293461809598995060521898577134026423845105409966565727235083693002018100671549443272684016159932338406300430602133575411267110510718674488685842629755110304292516130647680367883995778089690220755261889195481311544829429615699831082100465832445122484574160825749364392097209113158606813888131152411982402247048289572610201878824098079633391199883316054580746008698593242068502527948554531069958273599500875819087060783205608079478326690643146349618085823847111747298675865294572960077032615509699074686313295711405224029696714627401040967470133528836168653569872437245837213964153832554660675061098363954952638787146899436287175895776708934582772969383823679752574466792133940374554938979868259968302251162022810862845305953304223345486865546177334176375810213332744562969453754266206173837095098605461893018947081070393953019515958869764392330724937913528530891233574384531142174125759377962136174432221506759096389074509989638487594776767211391779043057417609821898353580050667261385970760779938673390352108266030444422237117558916135124735825056617541925670641585087322877123835957728918679714959821613886930286147883925855427361806211565849606686804832189497441926940564977950797201350378349481375787712396207252937392615097565884308567851932549919638487587174830632224640619231504082451117595726113346423425204600087249903496883590630877878687928126792478913239970724951818864156210124105755959324192809195052062902260504160430999361856977621188992496417900173231507732998786840001928256472567129504622778283444617089591723820688528992796874769960264620410012465384202131755100742982799801814873918275535509218031661342281073105799613788446790369863652446185675504700770671516898797029974264404149843867837729319545389011663414135711221066694662162449028155434715731316077937086482620628322953078725624944918512494935324523725220236917209343932281242724646518765218547957558695713541120233178379977273105536409467255696018388842441636584966516401601755624270162335341268834126922752936149983310993504058234750799354271995219306382721227505549911736122398398842541612946673951382535186975428074404101911766226967769504215421531082784961515187964870668894685371040796608340210384481442902968138731512218099597350974499838090411342652718009130088444506504342831293149645503935077243193121679670159905585212155037426191272451274887865146884039811976360270897737724083734786691161412052397211076596602285455304283456007465414210717416774621292549791651321483954108979510379624185434021799554324736265571216735921466469143713176356363217965806046388693435132683042015714353216088784434376682339247074263862540388046665041957777918327321038471580321748147848207863587378830045532175710463241584855198734228465360096818980323889438764531899341835475636962998616089373653345996721021940978265594363288468488594945535169695893905035612757847586251384475814904019485103347332615145821493914945761551221963808021431244227824439362843746045903657594242946623718740777521411904722179311174176194505331262912077493860066853431661067244185118779567731848602320593842286917002657949773802484965841739421477989322747948043042397670935911929440787036487962115319014083620041959422576409448506932979469872710789085052284947072430071427519171765320463413970031831272670096290465968640427729057549268691150109480422722085631991653072717135072960109211326492713620804004429581380991396143770283782253442833216102297267491014956739985762075335555210040933029900289363414841836688776329920470941947467902368121748744528813532695764124813448258583502586806847942960631266821140551986392945758992451945855739109641628631189930342269960209037349661167159153002746937145056042340711833522543032294435313929789309682078340577376735476540848978689529621892769009436165847990496581531183850992661952129216359775333656821901605881033728734336296760162491969931244880744897838016888149139901377195447397284033073587286522715953986513555432959841052192440454849359605400130937145649221018083160942769814241739859826054581000348780692537868496064327195374123839028414071076653468818229974607843173811168157207258025272696642983566046351584898684428863075749169803827001416557562276870167509894071342976795508413731671289276782254868953864278867432902416026334458127979212759179655993756793324947673978792201553784950273864888778721138101380633309198260715096549428951977277095283748661358556062283799991812002168121475178659292665106878405064229816295491939327880400632789758978368827168551095557841194219200003646632514588966402835224853221448666430123376557272036429803021742511616123587501108802369425918618677910645505942651298411307051385990730504629352904197261603020965975109083359627540662060676697357084875645055697811899235455793275435856751912781953295866468830009342572884147605439094565362810678933023805127574125531837391602915598817677156980199282065432059447743262753783182121828183389750748811825632366006172931820184366772686870372738432540339238365046517541832822943955816900357262095694269037470803329087301050451698822448332435760008933570345398737541759254987361048045706676674081893099732281131618198503475256026865955671646635710791586998503582758463374710603430614182875680933016732492770267573443847591381557438135276959545133961789280439285610597913177708050392092424571673551115069634276081317906036007049252541846807958512122815662656432401088317626114100159647703011474960748396979034149833757514008083040644863975449113979814631988731858809860809492682170983317789135104791846670053176495773716700446591415597932981389501584905784161319142366857552495497697573437576830065501497383812869928297844990283881458265249870687148070847366880388300755642665791959151917124292491103263542005017680124899594691584637601927991696554950662266507934644938022387732658192290036232891266822960993614304771047963846163515310020502700783683881924672319233293702724677049134585305370355557673884352949858265739739888742622155444110658864175218429373367974463869480091380119961691622455372473774179004538229748517153611144817914418350535725626759171251730734151562771286739435789083446693582355203071144113317348611708130025836322792712876540190616935644596405354748994885742895167167582501267082161740437454318361128147508239512641408352015994999348349418054547706886728969914046441912028105693054695923038328955718564927879467800646616233166717779652888325348017904998888849859978095941287709369115839084815749677783036213359474562652163231076435775498959148615046309044841374678011680999719592449934748335850915562473348324517961510996929726273658627930187401618617725676182965092510538453662286553223638907193631494735692816421066242710550034606920292459204044543688031417660859046316678284057323064064842482062511525427566559695824550973748868867096937547939518815955001254073287964684651897923427175077114961147595482305009384766174205889140369159834639999310127709747197014877052405822614210763401040722859986121863397205076547841585445386233520322012932072255784225551393789951250909422126766545162582684547264489456643944079961645285978782746800134025963811287875712404043900765806602936719492688949925744555394074449338551549361268927168394708203418702485266427858983613095819076586971997327655600669469793282128765410341950662095157072329344940700234100637476626491354568873191939519608062573981485542900157254130150737550463087634978500933813945149489549983712555920583426526168733695843361516364328046626314317543623487319239780273113615244145765643296111464433460583570512188790154059469393249476739747966355499135763237438134288784439185022607560073766989664605350413376695938548390371661719071533775620029602790301043539054114910300193252781377256976405444227555737647286866527764326958676430147902399627426222876648019652586065177498690937521387025118680431115736557752188094907959146610479440328396813208761091463688631582233707750353289372166568737485968671769227178400892814124539874572152563492800080042791146001942988404942170293605998393471435793299740648541905996220354018004025294479925607341074583063200112899615471586106311839470274952589338363117002772585144457492161628773578387819626466842640220242142442519031826299854749817173045684244775096956063055595427585003612152344807807616170436778045895696661055621710741823412663327729107020275211906398855399071651546981783744528708213661716885950640514844216665025910604680208063422309902280657085536819398784295780246498328585786215192454755284224635221005979028368776257019043015584490349522927487079268738448344322823278906698854044209936948872115709453277455629848321141415555567284623992232697745149377406950691388464334907634955054346953996311220004652031057952111802254519873222817498937828656120827952515777686443384928289246827465517820257126381999750929089399956407584533279751879369309596557725307384996874421275146425998909057433832739267350217318712530861111190586125988781922856033089570635713345059746164807372575631682288081983625591592912157594037749796676885537255104527348640005066384422764202205510452944538862546191916443224021263848031074059360096666344676541949923265516702798304699619042376929686295422103255645538933752557622565872188395935756204745572696375200178169041204598379852403315502263403348314906746083792361146393415881454302449299357043774899239919438209339406413077323718679695815101311084688064728212509150786147669170295498698916026485003371280170661835605585074956139484857545724802639153543595175697111015684764027523470416014773485393391926938430660671488686682144138660811158947496825590004785449111454306257703852816206858731291432110093288547136831493687227802532883136472370069537606638390902547318524825349370571949378600567085543687765085746751030744697231439867463522868729263999139373221260449861147330533278028646491897902724701426992029566335168627334329582875885948590853647133579263171176559874271132145299124911245799432636406963652966045311077500930245861990838331740106753039348161448706034791223518364353085806503929816968844024135110414591710814035740512374420901508882081556299816524528877764927189426100948827846219400797831033756893292202118297495975723542113672473983036531064569550756724921072357303238606309815851675601730831028963794650313653902652367180948318264282643956297296777909019863021862582624661896156671035129526483120560315204880186830755363499949897735698228390382056689846932448696390237287320220295227861171360313120980540740798690870132032344576012119596859859196852475077367211981244521692649884252027602069285123335571928737305033596496551242004843138976675750673508750042736791986942305870375552027163166964686985964233201122581762031471983033768917006380093832702173317070634010197329944264112117216985475935416416275871661585192847451490082089276579431329641691787180719572231489796790102299204045518791724939823137949835073329648071228780451620576606790451107002407704733066881032955146007537494627110292820197728484797821979120355948633681985042494600610031704517124767288457734786252896245408757896418734990593231154540227553019308934559245190838362869787182061361120371963339697101168949531460141560835263567051018639375765928742061608437038627295945181191966184352298977466287863129434641537801020566288204593305805517402457038812988760124330223481241885738486156141016824179032581494761791207455112652870769582178385567165976432041614276329706841321426584574141037589799854006642864133689846506559105328666146908093233874343882703146619385704063683008756823469900880044117433209235139924006801283668593042526773802355561371884389785408632399671926839323530329704742404477308457473840894096538236361933526383137489245235388918531422641622445639848409855167528460940585626873765290720289580391410008242673899932200341742958359564798064765904346453130560010565245147551336989496768682245829967971099366196988893700879002720748368300957834889675232893383819945026319870919969657023238868583591326640039302787391114390380124186626028084677218643089175453996502985465962347352100824329190392502679804796300970536702831448165792389687487705486076876366028472083001567580132214383542958706176844465232107692710571108509869826708394646381909230864641836180076353703211805065064257067333640964190893489273334058903712794836401597811355485933841250215891923154498694926189116038216496554482544663342350074157458236999328902818556533274273134316011240950345607663570211170415179005535891002065102288491830630487169826464881070588879120826220269133500823266430566944848254852101789290475420606089493777723389257285824734292217122145503354783524551381669238763270115170208945374449764302550727276917177151004919697278879981983695716061282467516189037786799470046238332222635092847701905258404267015431554807997014026200568802941058605904988661354470486623670711783076254041044227913821872385075323705624892814137288380777462392001737325581575449826874849113459989723549867203076326912277053351216382058341130591131047352900899397934767665073197487335068926489283040639916254039969987001094214347812588770832144711412419548428533169237135873421448511420686641545275377754498712995424632596543925844502891447304811042104096167194821476186108340165897291574095336901959591138526993877565555015156457679543625127431417386325284949933459295067732555354139983190626025297248600423068357764165988586622524934157611439980134364637527021887731391060852193288820881259056841202953731577444951860462354314230623984609375510845985602621893302135238391006382231026657662963841171863306772494595271728652448526051346335170148679596270852556845603996134324020561892052845309365057396815541988839926480633168282119260607273515819451317329809876793347489700696048300352288244085832022913880622858636557388020467740398440878699735853820433714206750862864929447447619303675686260475978265424213122908238866726478126388256220214073506636774949239066167421715565990323546190840808049553845991351310497393418466957467308707582699721303243006994499117052730865293841330317286882488107468323660447121134862834754333491763595916300225363728621854904042121902688207267727883300768069744270222916937267652349015531047162367653281658702514341029721549444356811275432609566881954850236748388345685915730122952016893614895993836154295311455799905721283432926243975333993068893696012619384824657384151062491276361151463093004819782325909922195106654692824727362333205343069952199579059471264492962411630458669946206040322921587861061625164343952140604312886498598028728858425996051271540470377020316038720333027895300160449673437484601207698710066272985093053699023196828290317043289906118931406196343590504202439082571504670684137524914825179150523819326138005093464600727202219240410351340454955359036294122385507356267164090759889559126566103529739274766019431581084021932301690386265798641196191041045057180693523174569489142448316726861027021433698549885655683231474670361760811849655845132877882277546371002324864498685862343674117649986605611260752271052957839217530213691034067127640692942774645034862244911435159621180795516852684069832341860646395418117352051540082385800886763319466522198798452495674368580186855756888322945685949295927264718938687713961903967054536663410124103809115694377824972385093237760075000328898637546338617220388808983000399800051959891796142875486190824631044753955080851882903443824067119052170742665151458393109154099040412104937770503812065805137673606341017376475455481313719695081278208625628201927776077545003732898789963578610447585144688191776839243229684243351857570683862708587293421194213139232214496616742457967295552946781134830076004195590876973528157813834872030841292346334520295051203831071001966351752615215202019148409942795274163827212148622777328898466451511689132338611328430919155312229141140889847919247281617623330695914088251784370245547373331906205491811120690156325722783344379519412431150915905312002163519966044550946142165788834157461084514668562126233828715935165145522847169486423992760156989372220919290235210480235757254459691773488053297295688104045563940905250956010601572915125480787187776898243384842951527504012063242370386341567666930433778596669848629600658238072080708727561198388003032782968934794159668151124925093432193560666595099698569481348986679456580586457539281153737568020618175729149679997666116366125348802264065233363108648715468482470220984135275174234892430731829492710128419735787158416436194480650780447927106901612437888334464195055314316621928331324541555999451094345801258730205967571739227545354619445638569713981819225397080762114490357647536408085641652145251863724115084476525546592471614894555923386678377682263570391548875887131978864934564210651088817593421149006263794452921851585123558463238792037127255311295707812709140891734487703039464278184758006905879940700289681003279963361423436814797184487553233841128701302214252015682930363124370313647017045365043290501907113187513498298867121478108083825310942076119778942015570966101191626404197367986777773924898106320953761074105723887803672648964988024060266367507125323146351040770945359192747823403136635374369910127351991980156937495887268069052966897835783603154042610621887976412867849438992054741105570702768333905696959619140312468668524950574716000723527237927144450992157234089895401758488106345656538765508399751658755578363412876710574403265435515518802968267403846662779925862508090102985376364376595983026240318697049805328266966897600694592884630199531684788393512311113624410927668106770425655495873725290941646742808868245257820330580557993008672693160698998470540940130889303283591950721231585696507979576894083580158859685293965164894249367676113680227609774461590123972998172880378583891177505747360402703405897862656796663305941205871066448865475537531408858266973384755053129246177929845954263779466267809014760461272979020078627061893239876803809569840073643889286886665237238268346630858269499236976567129982032028422027585143068041873844593367086873085863645107046673637692393021224669134222780631625495482970282479444634363510936845680985464176343100642893146911572294279650766138087854607736970702509371821556702044509479269935848772096794686352917139193350973762317200354984572341302477576269639527693033343654901015388552193023573525361490215983619774639319056018889433791216172354970066349485505515856642407851641663059255694236586904957612242551607257453498542389079834092011220846126977391036939460758760598964763791256764184629911984910421430974832325012043944719275487477337643138263578161451676375974817040077424073491901139985284494824386012033441106090895294033318477643361334860684771591447675857003670579811761168988342409958765663971906237976313042085954662199576027136174579485349804181325279382989377657925727354091544357089633803369798135723862284900588242246239528349965879921288304639244168671238856213389069272586180832834941707531693562362588495650165581338392020619697739929327354174239959483802429519999400186505227495551575883969613958342246775148691516839524599225412659909590095829367559887404857096900512113138988422440192751330290303269840091648661780942889619124265066250935179342470049015225704205916357023537177673846971122160643994633600858160826025008114128859946321503319257580689755011569846958513800919082990451645606640009984428434236392756303548050325211539214843383973978682407547281173542434188024015480047189513986887114850560306897214456482575013725439512913507734529101366727156310961568219574094856307040730448471960875381525484760522939698239184483193364473583956545924509357131455484627559763755779074302701470864711197380421055843960326355171292686630601283978810664599292260225086233844025862511817391991375713855990758175483317489651246824933145802642855323923076970063627832260945522291483634456402701558639883797690631698359416235121115913503734952942761755908563900286416176569032130016599583245085315894031273288451168693808511267288249229883489236685752569998273108893838459096532119212644188842878806169321631736965856257016404206377187217805717981556563936926675789953227163390982319135531993417900606645753244600991101455193946331901196786939007548936771351250971440644032600186969729722474789356525487573770249796943885993408313967704870182701707816012659646082779437348338346015085336822736133917114902834278178857248868226622740828377243132242747436040631048778178223124516821564894642939526528457696571052996199194770567184615275579600629580403153089826398561378755045093746782563204169177795198701399865466287817023681650877330082298587785041586890766958281653797191878703902264488607915199421168657995472154107933492288598852015773922732061789975135123582074617581539525246847422546701712974670776722155946439057564576556602519371442184778429004579106502541629632485760555958031182684489910322899729676163803511584662350068827009201610887710409343849836532032525541683658897113117411540964212617312107105167188071484253865454353997429993325021931214901709086000203982813004516636744453655537021836280750200988946118357166047010097441462544105514930988532302913060128440013880253671713452438719641545014462161076033569343064379094388483217867708921815908586285492921049796137531061617304165336470737912942332256000036000036519137779303243856860164325827078639026310883414511540614233248516902201469823029882586595333199175957775126285151437854635986057580251960815778005708762040681798196532248364025813043273778733708973536057360644310491086066680714691712923152151457303389461627595699304562696186287961189523522158841748387839489241793391120431254861167155846893890400082551347627854333871850065154299054679057911708338403170563179657100310014980400293934073133074094670703595872696183976261546771172503193126889993132622332638560376263883842565783778946012727923932876551192711898485004269916021365092608460203489523122235648383924738397534776108385933107723379394501899598963602390119185050383301021347529969782129097081861489475852048006052526578158103421317828210682178394918747622034637725183282448047356300280799810246743083452545579019265390308203783227738512713289067603051791290434657313456531718197487562120220158319897305230935517008207380488486269511802526718377971313957975341628767763845778106918721385752321079706621109743269856797928565444944699761422070812024835462659331955731421198440871088631721730886366820772642203130830216143088882925350855186095938377918385126026625105631099285783942817874798157968242521037390211958738384521079425393941728090710078021196472445796488037013649095508117037934269637317271464774747380860717652716129222123010940785423190242862187734442076775749710349545245630394517359890562231879585992857862119852935660479305441962962741089407278318236364834911062895935119940554418108431837044209782441957079862701700174636784356377657914314328288161789633129399137623761604061010503685990537758906223092618959616422630279280139653015552851292231370243553209615513979693679775604579069513714499463703774327004807543627729384728072144225610930447405848148442330081767363125860265154539596101325417129472607249756464656107652324247363681733247799718562027161316350476075228170155765339229246352148822329980331204805852371982189878952655885035053651039835841211594603566316589277781851460607017841927201747538723030576771420774566456552434736578302481233383083267456898066921604320402317672091791540253734966591986482655694878857940909769874591606326020017561910608735535810491915638993522576962052874553934389290556732474837640043131343077898477181362428126729748080357828656340688215088665896553845024770332670361189242938820388092601770432903077289346337021053755003664228748920534423166359164635308276491008621763625060972626799777100793415165586295436205231074072251081885292600434160336952580189043336157811255609940106707257154252329604615955197029042739936636089982618802599438060868444805615050878364484137220799774860880987929402221742962914516675792776513054791170056946721906517864386887945205039714834138380491308350837013269380536468179238428606539764123229428525399537291032357616757644694664366759404667309949354562185575266478542137158984506861007761969547124683366915623869615664317003033286292016394512552057339988212000800216356169969176458372123867569393822100553024692630429390706157727311704806703326238151617013853165844621833479906270782462784779116071818187225843443231106601616595606183609938311729342040818323250501180378877470031332210662134402105291150389763043369378998795195092504891036442991144627453794304415364009778096963156871604939367966065315290415247285025312373056217433706113974990625397325320947846048705078309165564906219246918102913319689603188921415285620460208577166756739674024245950165204911254383854508845223708546050810534358123302785373128754070268646184105749968775611442788385481671278440961328527811838071021705128131815444732308481003119664897078944361786889918660987534749948480820563216926833610296031021492561687910961381984961380684238061157634848613418948394551672760312272288638813852219734867081809185888823691723527171810261736261346123150852217714149220820590258365664096264376954921182582785334111814074968046286155605928959943740621649011855729612904898744305710670342861999547307948528528164505041862786742324071195576835016458344285621823932553843014123410908346555516482981726115566977046452198365608601478909463855229748596248839148268439744720109965969148832628715612941739123292247557561765594065781011224433347861763375276874766715902934848883017950211950342544129648073797907789047010717832030949288042085664007103652099045920207267930639643953343256647771954290494766058094152310710557766526759495119403404519072739411397994865965410671597286919879513374975920385610183847765474235428751635870433581491059327551631724503787952019873667574031980755726209109241920280293547119000268343145335471427542345182497263106200505490701693457112193749422242776956163074617271079440409296498519995047097767209309091866310374401485100904719452927596010947542940008712510352961952426481003194896596648286530464362479613759785536114036786400530805132963114976307696249810996254231808301379892233895631575260716680129547041012746950601332932452630997472655742927898814799174365735153651744386474841783989539472645871799571194866537075753213577163834055416469503153989480885649533927025564358869052551576925946582939908943189439427850699938002512634628132674582654236925450586647160618196320708372238968093973356109005712970765885572250402342128835280235779560375588150831399470313015936247744137470616408368563081678536792890792706298335720926269287458665881965947215517290724275795587920369126531474135161286225516898160126711045107480640055128437727076109444212058187695092554654926937054901857594249680900485524995543518592251923864795406502488056579219138039080190178064757498233891321569435727071734826194715584405412346471651856218460267072577250386529905290386455104252701271851557445549775734139282280851906360376915005238032520252956445679540504945366108241970102597178849027754136881190530809452794258342193937179204331340737777342726835092360681443238113755377724762281659238229299284979956577011744642610820850204819932994190597969420397552702617769273586010372121032340874150214588985613079009000501969968184463004211206993718821820690181627237891846356329380712108883992397811783971012581138283963537785304034282970075579492362948536288823397711841558891490660645648016154902873832523016488537436467965751750802401548665262650966210678587048145781731151257686264224057483419044630815880053193126354770656259227059425272079015684410920735258195750513510720962962930541668046858675861350369374941401974555638708272596588584711489494859793167049617491310072139591394638114408793802417870775238929929582341642784730877838632440359927088882526524267229013740873700396551065062086448093643631589293130928237875079025155730692429957396603387442603464849346055577997836792628969401400026237010792744284442197166709279464221229630544772603401558258116699584451837242535186718169534998275035838458727464163610621259290206612225779421652249158421810982068657721863361557178441526822559013568412161669605378889388027265312653081085988720894230636046195984341069115297826662967849486818983171077759921791979809222382528197796328637356322470784222024433856508345469572758661680421436009748540034500960452054875342282743502132531680940416489388794128333209610787276600482863030654508601525196777263961117541949054083895977022902188300416052961894430045778270629680724857152172520928254951943855105629168801436984534807267348254518808126932535210776042130496674767088604472889074558499046883836000214350268395776343626235010165743284710732071735058824409482843994394871624293079585407069785103047204716246945199136885407181937083508113432838431961598390642703769778606967846646921773574699005709765601315696496725733581285194849029786842127967212636821857390764963170854144110052421306569307857328712425372376399866792037749206241574510843596841342700224837495598959181061319315631941257890615994036757719303988898354189692332894289177523186820411243629080215115512849973081016737642707305563800645789994316516558263468716351107220137419984753830523332190365645595297952599617674860848737834960879021571862008235770269602980245995912608809149924083791191066528837617966176848283163149519035551903365839323541876087922342480706604745323034461941943202105106418632614889158214848178391406084162499260119734173172692823399783445285984178227809396205928429301948606653542200412476447755272679987496797066328084484284219265838554363367260672427375895707764040745440296459573479499655409062003696532958543679027663654201504750409275511492458900980127268862691854776780769475676288782704398554716245758281874117293577532656730940456537749622532668870470130447627192604394784535482382648520553450696128287579399372976842432695025297339055106004050774813740078990533514138625133159263397532059302104282233314648416054697821549108603662451021674111896022230227969763314007297328101778652091548294393415879289953099498062833841420776623351638031021048687889985173255446143386395778883544479550388442300012533113086876369599712771696094706804295097741262447948443944570344074216952178733762874357814998893233049915223623709102570811908767298058850349302961162639673417463826795291341896291861421696308530430200925808030111604792730295563607223241348431616748267707504494204949493033483679822029769438850307044360479229794603317572624775149907517162505059088243314654853295013205426977566035264548814463774327554394593054901468112907018700965502402740444664272194203609103386287480677186914619383417027833953589938007746550734466313645075929979676770216181945184970779261692393819855511228049281210748492481694027785700828762265078434240639056422810252432573973355552475985408000849691181654428798130718208690774535861680194485383354328766631284191776280713126846800060790553902705597665087594976122258400833153411271884583182952537561946246135760187300172228580139975906748011906333693175277711103968207637593324604584959918628707965487924496570144941541459828753466237288803948312950842857542008432344447652103548287647877739977438224704356108602897701243665475749558798245683205295559584831189919105408138334130282903106415234218169376198138342383174738113791137600727045650103033321570702767227996929352924814585096506736415748440361045305859356601054644087634545898729091770480550545227637228079488925855250176289545335343801468819478114074916868923821678945063333380815041191823602247348375164727230483263004648142966545320187703734325055064647038599967299736777705151114104468171531129844096402610491690262130447358864756063711690247990433616574548240713757020966127922346387862879005228534537022364152173461883041513815172462483799183827610814170022199005098729833271179246336066089185418228258265091426325083499810079240160382050970965275157230086779192756649024309478382861059623008452844458155829528688046944637354309395426861349057634678618754681268119758680461624189934138198223820183831975567700189967538611394996947457588873807093770870657065394078017432312659232631122240770938607246780138366369800899310019591232237459308215961845874859917160541400216503682271112182938775655029077361054504975988795410032968609746248958190918790549210496490088271005410256204498208190793488380130892391169188265907405672505632788225703744843136414458030513815317765388917210453350139212942856607907479158293856655238205346279332081332366295386049334425982019358650228554749367553116909652194680932858784843801925671557661372711597215589200572060048067337357766025140267533948571204982214400479860852863690315086800839599557937246495423924130910463123682795778016505712682169865406597024478306079387076247652279749738980055541759722530022801312350152564763557467826418355853743040714100114877802952791596454962911819912567376947305535228950031445209498885998844122630542400407715077253421065519241261094629890418611557182798843221832940510030912034435055654506348353536965429426413104252333864601821569889181503118274072722641127834309207094572224830369480289158017567399156162889661271293876290966232041799922417710002957393220685148244562751337229938607177899215662715056450787491646856696312679095580058516856733737495432731318373354466781892513019359076220506843834567694208271129931070813010349387055874944360549631596210667537763030131362655168628137399278730270394658011828420200363861738805992957552248873760207178032003829041671445838376908855158299480521757306969336988518935050372493569994594963048183483723721208679161465208950213711167985901602902917950500945587863357412446779568959118277238264800216735043750345868686239980017651918437312493262957882331421066040512933992834029389601230901511504262740342136386593936209268062347110757680020508299748956916204956352724616990514995594762074911844102508620372025346603805729889859096316391145738773397850589921485719879224604590026401938370548488139833853486871474046976025107204376467353311311147548327679266782594135087489174166007155005318947889777068198744974601495995470000835627664841308986613280686516771763378298096734788820548697497468492286240197924198546088020265412393301858317239532622252646921786918642299750338335222392315892640680117358403280170412042935470741471487029095248683109090385376807809545550875308647896552450369264876085553881503716014310025898416937561240730341445092392434152686091287431411522750437790908643011914075324840834489960730764144400414387492526125814754253502012528843800354049113173107604699704828389446968146945997577486250214381160009813932200858632343076945894865658394744334676396312131766279546541636077791491876052368764144778497445328948187423313328863004877955949076097773284385087542886258561674870535344775776295445457173000494685266973567289325758435665797669480841609995154839152472626443142991374578775594561613904733406660478901924988127627357725928775841023606633524646500701216692270053342464897961274584082338588121637697801182014760926833041217765154830767313025365834869577014487674892312142081968899136365650954538325532306648934802529284828202479637816257039479785119301145872120535343353347401573914723044358584689757579571674798898070482272487772807444855710733423293259917797509476005957820978642586144446251727458006590306068343999519625880134702760046089407989852779662157078797615724188150879868353298355751176283080480527227706525306729763748344852282322706032174997868079254605452262250557784068082725466605028412703978088740094432240785560398551708792636149067512996054487250388955127136613369545958109394612204221838100074398384146828973162059910180579753116870796020151630336002211589253769619985824441291036303612594395237874758071282571936898814835612669994706466831500646869978474877611194017998308788567819282145546069401181350372194494152638680302855923022457212287232091988491675234231038779000056157110891206974915539198502701906880936299920954262725612191712113796631125082024624307334087260921787324246804863941178901341495906631442967388024002190729890357062399053845618502584474806912879376224442860833839053751672758150023453255896148647100788870611338291799263923391387706946243340619800285084021557378839152579207985679464391504305353879737042150330097587577672822829429473685599348783662216416082920838855649936106010509495335056201303961875078583842935289237734421780277814246104639529838737490114148495569011303059816880747012789294585763106189900668432476521152431925154574735027229299078532137713484729298758327801571109386835760634171069793045998801224927915245926190936441733424180201119682967885824919536310979317437235208692049685286812078641216367241533480749982882342569643278843521700218359537971056880612223768296176930074906722345588756890615230043382145280120114852828012008319113183266243228676617212901522802687134513615907437209858280565691690824079756663270164295364463237415676839817951957791399514250521669372482469409654815438277035913787904679966926638969084565660182653198828634307111048781868532968930268525474602624197796153357275539378293940396191795589104370215258370313707324672453008761155877182824289722661010713680794358037521540117868716799975747935702970073112317964913576114374713132660619698262451609260302575743627556260020011827080869156964602521533356154196226175382360176190876304909704697748535580542118367528686523114362721977099070434932713314203827928853005812047493365815747526820475523088446748174736019777283460501330434267544968610967302489231364127890082460105220990843541090770453107316198576664103344284726952103630918234402257553412594929268910450107982829428746658028622181015500416591862735621949483229559802496115605325580044128131847710600973853138099596530233960327777867953875777604018494869213673424022145618756157897437187211190864342899325689557243134495975985211771686570837040332331920976347045288391042375966454856478562742886199743161490569080028113365757932965110608712668498141516405283047504980016102327511477776258098788176915790435363514420317165270791604612041287110496312840511816288031505509925897325886144084613763206964768102868768917097468512305697734403762299042191153886436013609852155401804060524152775469781183159838632969668226873295360332100505919316893364949539827145712670696368528437574890549953888572864449685835784664933122755884344441912792125806470034752849724742370778552664970080840489332136366456596587323473443689810631483899707771691004824698112337116246677524840079346890887127462973029617226291484380392591304606583284360626221212819062911417479426472845099692388638083027656988574110659990609001654042133613474628756157045626003180835633451798208869014401830502298766520151724530997882571767705093570559158768390429487106444533712219222711037755882479341385138250446164319389393944028849686022425764159731026946607561009906229910572227959695620227734268041223229590963566736897105203072517570246618606662750465377983675604918634419001514019122649419195436475555451394353824374620449043765143529905855543411776070849117680973862503237224037441840931395204889903922440293024788304134887312534434405744851407557158186143121391514205616300909495552059863429964539580484246230674729298853617890338930230671036434160916138797766156980757587984786870286086304130571351811439501064073782724839779362046896390609944981117086579417871637490034493369714148066855143375867480201096956075190755839855156098066744025295335493989542091149065610523082966255549637220068732536123507260800071608690579723635675052479132504795825546326919952786719717634538297758940264667414378751533068879463673438706707396084609591007374693871820569980756482438058331300055101269969254099977278479490469342244727995976713166093213938145912355309696127704664171416384983178220886832477360338544596270238422024004996928934674830931803340017933736751801295575852112956246981912441764877648674380649783550168326721738825220767168305864754943523883408521114376353217066362249662713577151791903138091431330120376354959624644556844032346738684283491696129300858103151740251678941879825655932337993095119953886429618614485312449074681163925365728951793923634909190375257709672799295948587345175143698011650420304933734402735128655538760603171852428271988296214106442114433728528029161955032955000737584403758442906793990895925374458353999071886066025337180517355557471373998450245895902066089109807357019688667685231653399670010052127434362054585676429162446491987440468559693135775897730806842193070545749726513934776053606999755088167878543623199156250624534122272222210889394279205908815068078548557185850008953501714533058821927258450997633826552956873881038022727404940339310296552831098812061585380545164972724179922729068217914505807862693276433174352479701043459511247252811721257134200624847367807749513455086390978222725019481739845428765163405834216802210663888083896268691157745425623618083276960653854801058062823780836558416886269730451910515598948333694574589447896642841619612925134285734049545697430818471891971154135110064403288510971862204831528019187595416202900328580889725593620795155180640608558945042005115199321975941949870966492143431537689951411091164421736507116230680973819635050369647374518413825277131961416721369574041327183519288858480433297415070807918616418157842899572902131942491718526016620999415247384539696013245281784841895800948460206518069225311579479913581616590716032020525622449961715872339837488169501992308454845682448717313109636213348380026699015152458285362173909646642703969862585018147648093922314852929811249523311966887002929384619300834390520614644168910181264129862068560405426239015564485758128576257074627828198651669686920037087971610290225510036187247602447145979183208790166641953735805677436840516542375056773777672397319675288034419566813289104384671792514110748822041451312095377336308465859544879830465762155014017302224151617829013500353369744161048051867613363095937157239572035013735070976602484767864298175117298451867118842359463053361877704467660350125607281703809809387720443694528782047452141526539390702949574030279395240691277282026367764775108528612727159236242449302254037426281282956824914955938088398993062130750680287654900389085636739413760423322918814233187269415765780655372065375047215498510837989359712685447352348441363254516448177009974934015006617514835683479247952890784635035642072347668624608391478631958684888885498744139757092517348306665009261116594717974628078646285667797653208576600127511448741001564789620461953401014447357027802404890248741299976296749174714858746086043638621993680461656267378375062514033733235130702670949753674863350702060595016400281486546671703658135700443385445472220319849395523300961633316877121092235269464092268252548286561410200615095197402131136319477763145593251576732460301065479306752111241959137001142880629671692609122066153443692389107502263906079419727981232052118031779493803481025382632398509502528545320753776488055417624147280489833463709784867339642138239653238941943714836744435161133592039684447446222131147631271730757576492923652480784831702224194743305856643700918307324593117881774287778675727280374258317470562939975260570029491024312214862644699616491670056205003631109018126171442724212724834262105207111968545012350487905624403296296084770230857498706367765278400174309418866141113631953723338603192126077924056931193433466621142352097669407341761389602119836316100910006189429644254039202422658859590264161056213821834841874971074151688322127711606616097737966402474125881281718784386460137927924556946392013855821713904351356086517739018453070742650453832456181162110806627933870974028989069642538080561292489470157192434790225807065381104630807396003644284133162611825045650184707653760871024028728618913764360155059638973818247207880875626728210486231219098359021042752352062197467052062902974703808539076084933125078920578845772339406824028051883407725324469858379976663661185858569465626014037115193653658573799457425194146188054775867660035277078709423335241517195101874892314165087574743526905721876934248709085919135602007624895584942590787655128882663770268829102178749774355023888554276023970092810238681838010425959269977606433404794641925965337443500672660622424433647760211977034649089853557903797215608283223010257420096633201778437166089244660730466235054868845528836217129150199862286015291713014132845295413063649513835704318996121983555272298386753990407842206541839652304466511981008080343061549732476046123935921124574248591093143124168815498600959994643438764258786322918823199347873574594316941920780385281358237851744906809943587125096822669478134857509924124768609448283343392525863053406350839358728480331503175128879261795563794095150809367835357672406249218138368027810147354210157261383672580809333527824962545055160721072065294358697729678293856160663686360443326913493896768297850218403786521721639125651791541091258736449587301851170083281348314831953280882371206912547697948802533824031579326205952081374911890649754225966253099425625575956160429606471520363156623153385191087832283981665280456579413965924686707101562826628858986648115833328520788354635012001360926605048010547057824298128658298394088598810957271542958570583480796788163441307884600371144210066209436505650127285440203605465356403623531709489208854225835939228996155886880581560681462479290716689176504185332326810671516404496098734057423899699100810303498697293721297308673357698177027115574687318123035156429639926330361140640477241408796961447844072023904358089374116902696655199350570400433843832647366271550593202273896651567158894863730814894143452733382291904466146752521899621294954581149923203891057152664950624729350208069866899113425707666101503004389172034655621601989668673556372599668372396764940143791755819829933451634683997958729620362699597032190993456568900973185304509101523705617824875711084523998779824359797545536632366627304948924943345277046111376914679992980845752649432195725700599325998073006143228773923250520623083868878214239678497708116925734455654340302325814553480028225299349182423342330829007122475437327177463586416066261768279739338420413766563673071662180601103782854481091022449034481215946030815740722049477780483712823640587147293977874338115359912705822175091376159254879119231163999515252736384254392041738696511582838056447577944650835824339242220876564253075921664511706513778494188058560890537557124938397489423430004451444250220707369705406228286197269280330749063536703553249814076027463308401849037870490680552621730350628377926539085821110815149057914597141360597644553514540273208947887084642208789639501247455759599550612653577791422708797688485318666872520850509115425642559247705239186643103941445821991666415809459395307540994382430382777668427809090448894728497917643700020921769984952866229038468113238079901440084072487936995838943383188092122930819899117245680190056855380865434631416217860325464400302469757424080599729472307422764112782168597988153117915490084852809137955251181815498968081829985984177672614916082373929550787487400235539710548954430585487080881132599770637997569130481029945798727386333878348035614495378981836384460538819383900255690946112082067148138178289851538248904392715353349098247899256430333022911791126072848304334694787936449508392469382149588617464744414966888005045606674067411431800666366490315857262075371881937229460898520554512166401750283671838174811237611587930883984055085068623128239658874057205378767379174038478429858606786513346143620183234866840092962973924870874952423447996835626301065497286427503979680316363070575536019062188947134970530006265895096447088932704492789465698801271707295675875942373527500796802110614116099650580025891644086947405325127228116561480069620215812603469892705326265855966455337682203658828118325109766645589471062484961957703788894367009124293384793869493279056692745404591003215834960315223135823793539538535975692200785722250736600475594281780079545972433730240833520038951504757964574297384223313714507248541145348860221479410088740683978066616221005193622304167367940208058391962549050144049397578169477783414174902415682457280153103117868036511461540355832016828677928094795280522144356721737907260508061624084329049441703518818210977159098497810792009833737455478973578993304340315215109656969472420312343361974705257143124122119583785612657270932061250813160943806939298608677399833937012986414045912433328240579941877367133965479191661202884204611743724997123660952968367639152563482054149565453461598938125235357679763202958761976496699608467107062240048288303971045494373188712485940035001256242370153581328629912531810049078844050633402362014621814973680223203342614572336295206788456601297323554665209230121001128922438644204866259648892121454029882751355620191887977897839423022591088151341771796769786751870955975395769674540588956995932937370780491623521545463242734955943917128487621303210311641213840038859217810676855678359494412065046298573245698131375177321566473033049620146297846953385164959521997206418163770659480447832848080514769107043666878336730331143566055191000756173176162883896974621868791241752926964117713618414299031745759662409721206395416326716228325754560885305694783844998066760362749112056768278182365563097484022582611703180551415747337787837255610205334286848919014690533225491498067852762379793023517266527755378827217040270675577813736912000182283140235689270234022139740605996318919591986995925285865931776130172854945268626276889950211303382270120803909015856636532097239076157662633366808567750202147363719925872785039923066142647494819750371986561724678516611565733223238201839292698350426262615926164587928308230362264534887904740234403396708534087932903633123829378619617639544589621799130288617068069556762167270640248237026969899754400756720156830666581809619143206410325486126697599826994314008360797150845719726752352521950828521589348785250740551485566427096464916473885509664460247006299656008776782781768767592905664905790097841731215337200538602119890849332808089615110563390929450863700664561155991751406904942960318819227191947869069463018907585008709718904031035716143878233284865844957924063955180139692413571519085345971302307968629633210365551375296081194082864119929894479174770603821324471679236090631183143205663329070499703000037857264591896411788130815475995676164139370771436088330579968543163103466239347242625452812015763584578171857692752191728405420369977677034518414667644082308710206537340351521840812781430021512474120345065105337847984852721135471269689779219198664143522414899597867250897657193074085562547968932931909526140103103458648302032035230383901132099904179800847731524928224432767260181275698205255057512848004571136132927429637930336446270993037801212688480676636005612352810385526078148409430715772655482027372566645921123923506032331606587370841566963463825766547795351866550897277799932534456120749286195539478677949089014361769770081799441855043618485191327473201782744490371079412089472934851785447670973631199271964526856142653632423234557859166704581975641781775699741674877897812701455521905486667463512504430043872122954174050406292243740465143161865879573364478360235241333340285313775231827244116531160430306869589808712078889114285229141950184738593711252057883974063212812210249728068737615138261701076176620663471196290086064907855971020837214385409118949061391314050310106595430888517238729878612910360869392976208503431467330601066157809737825462804269209698135902174150812353362665332443910392026463348949706245727134510810651843737881510405909283656183821559930369498650232615223615922574047067112949388499659432566387673029657219832847672976667820128681737390804082389840844064079576745519115055695563117609621033621124006063617716605895630229319013928238246195391112322232230450370664613228377327531125907362685656349906263739092741421907601811040745272097217836284617925777392180447527537412910381961226839716723771628734874135900942125094822049634752086977776952448517471800883190963066080591983087072258808890270277866720558078339004309007389736297511711344862206423665928551109144984387182949317997027440277119366977327681198503296956325926694009715192305957246110503968381343778218708795452558814505862756859602999151487668360147491173333632436518591955614079526669527225441649706291586203778424007749516876514203033491646077193032196870740304029713715195543841617851666831258948794453003098140839512420733384251419983524535925774292694619639019441906097082636573985334446613330668823653826847839364506033475596984679641495759688727202361770134826936024237531429619011204955971750298229603658949635697901033213337270910855423627851516792767792292563821637926318398618248148891096350312382364269630033133255899639030767250582417841091237676950524158618701390793568740261458857175197546168845061446748243453359496994503968941621981498528920922020177026094674840688650058959921156132994727652398436104876590321570323360975124635417106290403402180539501633164583848812429843701342605111887131358027311555886835407748792087892796564652175197969197661184374601379955783451310007976399207002867125135185055291416875107171764481329008354106913812116309093641470885300967944778023223490125723639716249644356925695537745712905775701272317263366023259591720433630402301795311018729327858366226440699016770125033625372907692717408756897855730336916304332666675769169956187431369502445666141965751765904616713832807079097632159081522911385604354771220606124306719959213197497053215230031371402502104934800869308961453574741292858881667190714457767763138042167106958682025574830392133072145375824583167726882368656972179874423917352861401865155170216558457440857477752795965427373337203964319889156454121809091068844011542153472624483755799887693552347276586732976112174612614087796503956634164547796676584190220554021169024106297942806572308266270483830935050824152338102819126897973881148244297046185647504479283712100722077161360264521162941054808512406593412366435991001216001159747939531919207982202915760930274552029191502441598353958147479442725349952272915406849181516992704486722369250164279831657090006828287611964914023235856827441144775256986463840137385578690770268873201382925002681762151033555272631212101167426876401528675198245809533901444921146109764233727939464885128357887372996470487606693061142093057224832766430663794713195860579860814384066983505876223598737650256711424601594136659344573328537518529949697536266745203256512628476739037860484753678890523303747813111023420135300468900389846301555845727464408003141438121319447284107293084028863203760224580135348360279221290449709737040035244616044290597029689186960683154799767674649946350134524186606661672078762478155275687765684997921490270125235382651441986300188118636041188414123094497306839518405786351599419799088574253097643305713523431863884422584958614187337569756042264577160518191628365933446932291943574352200810384585373625595920864954181646226570465373914537917654077977945609832635105539205545709879183616016878475109427438807006497249370250135644317891671724717474019219295274673328221536683122806748104624685026454751346298800880905942578735998684069347172207337576560821766946557392190466774244346902915824643665502852745841752778314931824113683774735038036541995440361125175958765175541308278390645321472174890201008542793959176586135703753305483506851815670953826618153733915443123500462699246389620659814092721730867795632212621613500642538580010255322282606105872535376099148437856106817476735962835921090840475646298274381901512612386923163836073808678437168068443336724583216565553145907271291860106927640879260112082075230382247876589616346987397088916726364163704063651638961431846207545504588536438109384545015795315614461629008512141244281946820030233720122896635448147675023418422055359786167423174787120294104891732459205124877421822263717444718358794129856185651426798405234972999328064852990133492937171500217538297394421005377911513403871900773190198903410382037713422085628474857295196715344703129581086671950284327556361008305035150903382712023841181104803776957610012307424078804610749548045011512725775258240907743985102814806855150302819831082382379381813745935275841580668794397382008839078812079299582383296361151455809618198392047982590092402337965729622956589529285659265494107335544632154163837605988585894595984874949386101874597031580359231783639153109991033627935217678880851748980362847304471862245854513829065483519032107021565606190708593421413969249696408369010116831028792787992973143988180872443430707807628405545097608485910951893620751234367227776562304704223964096597713236987817472330578031686735750764743572535364792892782454979175304313636213095181051901517359614325023523051611463422752654053126201672488766452720008168246923508874862063795627478180687361077768107069156351539553441578471722685245772883135626491312926293673900358158033461557209183428124011800759320987046220012362620714880969692231588260053489124048679306906967486707919437925842942710565573991196833172566556267310062655592352848748742850042781523981257813815911088354481728932779294507880112077623880708343259489921908651218158767336977059371548353495127351208513011526388639662903341718060398384145848327815820786352284921271444844598414640263840779985565055432181605426614314409322522593189015491919882866994291118930626029462643347722816448674537349492305294222200052979190491941052947889217355545696499427881823275482918993982590043083798388264087600390209283198834817528433426012997027625474809672732498763112195262081896163992603836133864208208702816287447135837061462034693121326373730283682907809346898022480684483282080423894884882983564943651344180987871572148932210980338094494880107236792068766706017028365436336643407876216007265706987843824779285111256172676607303737366547472598470004188033087209164602138460062610878116324908497925884789288702024024073630124985329918378683702191202580090136474663052655965085477327069858997585817577638640546847919577483989515360275072518449317977135302969796428366703758743485111330610962723403873324549241835517635384302425838098442905592907966619253948231377023436647634649852146179870079712800802086906387178795790316192550550707451432193988458064898906084126119463103494329440940865526052128695147061283069284617562792264382366586577407865801733485032635259811490880186142649260206063011384639064552764387815121214055330907846978539770642351000331965075973758100517837876120166745959468931550587583434310950522204976203680965995630289079925235958228847918865195539807364079458856248113649058552765998222060439211517834067079209446315038049899277691475020291071297515559380792698206400334513893832163896341969516142069935956775493883125237069237260710035334107302278592009474231298970206867310152513186104175784911748333839481750049198038835657473141368792807503106515815546685758618781450956957460452484081073463383699232729720370841143155382809285510194365062646807159187662291748269212241100783011368455167697737542411226472305305080633680563483466843508077459582812226601633252532389987887097978887380626486377640142059964448239662231350265081396083375999482329428314213736674797802192591562392110699668386726700059992716497775783919773944634078337606167245639141453355139452827477832836700286338189977658991826897489130788690845551251164913368762680246301594337240069551652896251330654549842587788632906607686026159608454113541794386269351492450641437928521687406059826036397079676240131585417702868533640334948347160038433489864167190258168557902799243232852770095747146869281803437753698939230512319130189809591006769719382313554204079977973315891308328272342981720408788070188670413128462106886893444121686786924420076577491379391410737744689574752303587737108893183981571366529561861581619866246574189726977741462229941672006906656414111405552775956808923234555404299141025793359513958720066478307260007897096892791690905496222000770173650147856150099866208530413559962880179992146130181888086818442269130436591069151959909122252148094335272301193235770644116713850784862253780808158429684466214056669176767972301561487066135522085755802657756048673153579346283125121120180697271630034324390511269349887473849903524737710695853604956487692133181113424175527953544464293978274274716551153730378262553348291429205452507217165250735647748488823050750681206390745338771442326336373476091276143778524584655536445526642373601930733204942099980651355726188586446068627292979181339368445283480562115924729542948401935412012100311725213399464686937081398309389486896367249771367163542348439727927558446393378020383863084314264338727135084941523968342302400250751236516046695561525916864079934696384788149197369938144751356096381289855400400744875067595742398201851917018050663135315509136980132486039814330278455168080069508407902045081218925688726969437244375438605835216676391703880380785302989304980505949481629925019810601982121363895178355220439426107124142893166804451343863606534838934414755262664925526707121143987597474911634321089041073606897301497762122789048554796456146668913529723300446901941223962391119929686241478605203725874676856862326140781663208858979038105627858118392744361526111287218722057757078422529187833836852771548078437853754829565014868211127870564945246568039616913694551570594234532882517545062751260584450267944238720893543504182958822970305143244839028764831762738044574519033635175846877167278205115661721993680995017571045243256857321855863907052071266628819004896772224841697607809848722640974641492665701802871189780028823755328982882244531476289562049839754053742090499098052412974747190948652771122876324624097987658281087379971777293966166728078819696983307667748599359819455081760163873109665234218049348566133217585710721624977704332923231158175948322856737953908641296363587306824161001661177457460856267767013381728698019303395173004100807337714484566270809545959843164050839718432176686840574435672155610655678917881257152272781913903197366644441680595026893735449423926242698824676553139006288993848857144232884361288565142193026884533612223167060485332101588308611120996334823528681477836999657906395392956817775006061750658442759636977339156764740534400541707182882655382907004708049914436173517578276366544008930612668673907690998021390758881635793679565574282984675364662788684419145817982990937402013838238806360701517405838576971125289190596271462761549000661853227509986180826138178330811235393348210605971954167784828925664797702072625346217387367187918291952546616216659625867946824361132228202171864550624810060010474316780078014853625965574734037826659827088954649069783698858426649016636315088242560314168102195905382160997104808281495403061264016420560199745415623572702437788990224708590638692200386162589515316470829100589599939003144803554898357814165001587998196793529327608260910449340285554817473524092194235575869097514108597365287650901512985930577831194559435183040083263363802087907518139340000417328329362266437909902027262181348306890897834549135443250992351856102462970400209730699343589233064598185866528277008712630326004879415315172416426476681882306699782043194311395567642329710385667579192621767969929416206389940840516903343658283652062932199964381506527421033644122132384250107741606623580377772563696142943633935682127184480708125751839468435774802058839690874929018264585633644332600317560391108033199799519428119211962114931386492437369479967784740845427644813579130333416802130298715693918876088321790445703332894298518640061181213248691056738385784868849636188102478892300758194519605987926373891838839942792853344420391153297996645063222862521487261520597585577081375289981041556645235053454295917469323065198821294612784003654714451066120869078782241362206342053657782269684807549757211869463446674772193954836518548044456481959801986759273854428010471550512669766178468497024322641193917200904081133291624921844593009305853519545836383997627923555326859794251668858450547459311056263307983249434654687095618724643496283871966717919031425306012468807861687861840376326862781835745148656986390808940824304877118946780890474227928152181419290154222506559966658219076774760020310256008904414885388277621524457115500041377824490508627774806734385161221779275329084200485942811070944574207130518179982285194921094068038947877666431639079810039219982010784045001885229159113163278044183452500934063807922096462324188440316934573196208584704339954315303887050350482575544935797128131925464427708246804133331140710377215840168179129845064935818533272629974860743853225104363114775937864735808343276849365246314476351326609895483567040322182770583227227411667754804557565114959684350638820746818660986614704869545306544278199453922173792302485321036666246770440620734636196616765162221434923321822150185592579590922926891282681240469794559765799590906460210662743217302144044037668107563424346898988351300493129833220100719373391137051276721771205712105732543138664341749916905864547209148641731536339375624323351397280991016404182943022114320555288865660458473468020484775999745381945521585039940073933190977126240414078733488790355480483460230913576907979097097530486391127372078886743507840551394086390553480997848316672307911459002267554288445429734863276304946803718387412548474037557132322423976898061205561031501194201318397598669792454553076221480886319748291788979421844634080101128168351613439378017997597278013818517457323061223813438149853569673682363123529088995662915495927253011620048657310934712095409923841836103201296633094218883570681693467006353771673497036746480010924242833858263135693494743825838849271882914473906569007562848009997314961718884963413763155378288715123259166012870366826728387324249656246616843316840553490192411549700152207628460426253635716608564962347190340098193653805207223450199686109274799678139240252286458376792282660979549802042080547837054114945263320323289969645391036353367354367148213406538447420307721011123095225539251653558221792050359613715870438785341438963012564050649021109126495741311796734287265713744641172134996828000662457745200825234037018992645639679877444922220807600363763999635579217297797496928802044892408886813913441175153232611587636480797716324225078393385906374477098340871834599739542798587962075033073864321859842570641258069364554664908960398889481507370710578852374407416967670342434356008174740951601604892079974619149576617730976872160694618844861188409098423770706121864151453935267266814582007726832382616034752775735722253027914533557785986398591282467163267367603038647755759957123554451031981011289428250671672034765558463700051553904531697212030716882436725581553960831478296427462407904552573574025271404966726335723975971227560480866893405414408829146246276164612164890257753307232897829816613722417794748825511724319822574771722983304377707468098486159997881410153548687787494781469071883118315277135317981772182755607559718347718571479509986298325959633528820785627146866944389295339494396981884720520454906708219947045153713133987123334561657786594287967598302386623742658421435368599929761142191781980343933934879645112584737373868651511177860527087463042973737438880803577305888320494198462290404534539403658161719174995230800353894019715187473087963337377131363923317344336785443030921619258224446758309325056766858332605704480247011278337535920696955836151248623495730634828539970364351825914880233806080827584556098017662562256539511868928795607293729668649460273274437025768331850696146281218794094836365772954781001846404372292649485929879635803290208262846824808803424874883989007223268156349127756912385254483492428938781160774629220505449024523469185744376722182949539478595182397883648703850596091767857980448550475030481033222096286197416403153010632620049391354209262534991893194674858958871583868483834179671703619500824977492060880910458105013326797359186916264398423256032501628655010852708225921616992398782309470064962087231694627752000892874085222812395297749329603039519476774447295003693445944792852502857902780746298585631740295077274638784529463581596796095677653540599700272496414872212185900588002517053861405522612354222289395420607073990530497758739545804351402866045005439654745666214121035407371223941686717581458715822419403176426066039826299179858007956828936600211352962751838192842237653374986960111524752308552505960676738360190463271836973607701688812122736195196256320193013529223501886395759929926597982394327581390339194726208537695346505180563328103030218625821845668947741757792609972389327316789279548598315825138093133103604113658523621212969091336654970539760448477030811982968676905506348058020987108206591205094099297410616743846549709920186273319109627724399257717159756612157256379688880356110329751576858615400694974331118580702659930022174742194974433973597565872617671444975224749455081701464233645958952170813077634906793433870418955973200086039908021443449237234556382888844930127768130085265752054902455098403846043557068748169458588471006949337603274931008337292316591432651588590349449600449671195729027490596431369095151873135863674731079980887952523559985637018101018515837773731326040615102430554039305062761615062069987187930589657668150318257913090496940559839179050360871488858105248499365234433136017463020972784695676268900051610359543497110925892775631943290915765590684122109852623008603494290015193494440477258213254180329655708272158206218446877626047478171757289637512596298713551374982817720648489810355057271661324748929014310624823314070207503803434556137227715177419572403495750856920571500509075256157251249109558151159770833372724136913274407728684787758882155667074786653938854709378398719376531198046194529681997144475605382475566529491660541546619204892161027905562631619911642603023995290791887849546398019037538051777433993670333614810004491720604076870372966900830850383023922396218517858662509942630379649579992470472136424610953326225918326773501581485802322886765589949381210615536092626179107519357798488023643609772742464013142640890148955377723706983963635993499622691813678159315922538695616705153526533347403773421807546543139514324983666812525519841429195562111144227861207686274362853864322031005876424530479860257652271175293231029310606514029238079058206183908862084585776967243104826804371326004123705628045407704114485085255962645319888246021119380246745314243902893485298680199199587676333379860005783539385048479574218805396186561481795468868516188408500193688650421039788475161911920453566906610422612224850944457838472899419220114495548347885095673650188015990645435840926108445115785420055485156583736087357060278442407768622583460531082038220211442338067494837185650770097027100623145426840309569497785000655275907083368090770628851963735067532892375895739745282185806224175709617903587972901387785706468057649354626099531020905728479902179935350664742167681287983100289490675692347979269420524647320755004090524141848600193184839926902050806115376576727630867527980046373255261241793930315525166521274400192062300637430403374665648267956997235771306939972061508088853611536287972505705135231855036817784827094769510219770623491313473276196972116850120284641696882627880469147726602798527012377018123636851620480577513832108282035756935695905814529816698587424826071211981775045930158318373559272481980453003323814240608805306768151891716886306302831999022534794327082290369244720148409187198656301992318903694508639659043937226488439176590922243516232619243424283584828459040118336639758203101126921014716773323246195282975512021987818494229233008491239832552881187986986196403895748553355350796375221991989713072443454616453726343815508460895656477336027631205882743163985365637940286088117439647062690587803657706014022832697796609464025573476363625716248198657867940604160659059495104175370699522568824739162476261098449429092947136762259253992128156337469493834717851979000443305877072502053039957433108565356172048196377873042528818846878298210915337296356877299929287570780880221011484604573410918287331923032578712627531868511791524816519296329855348298279649855706432983667250649446562949179113056432930533365522696414320431064295343577796027775726533355778041647233726243905369242884768640284927283678995620865605967041890992229911503446809937841944519916628994708817074514181070986123829542495870062892159135750923095281368039000278375531745405729584565772108108644798229984229255877908483010451742741571060447596415539450506189295413185751655261532396071110552137757919686647167459467810449110440883715365781171591047831476113262341004014073056035649969338970984442280361622765777036093091825241876799307159566082992470158729028073879710194230791683380747860694430916005195036789055669059540098047450728306224808888034141137855316389371980688531661494435294175786295156546456938219980579850584384503387592632364927329679972576124148456546845424686006564276431534476125543132303746142901431296334294081161428393786070014041820343584107371044573870532234723621690880859067020498460807395757105564764675392438114932530801102462323534120831017218926212999180579595311898061067598350620673836290003033612430607501551020051746578479466784165759527980505000078385551538180724758095180419925840109809829233921207876230935250333497425468342612712897845935120795230294134028305373065768883958349989918332324023903630302103573030303891366982879540814615471432343366155635714203817364664885247083390360012247245063505744052559844774389048943614305796143767152818889857451686793134575596043637909363331182479215900785039794126510835781581892252102254035530983907257215933089736446201444943436295907587359473928265650074676066721111846954618464064236334413008279231550105429205082652493452557348723640615143412585882734205509839719713312888614460064885870292815250505103277261284069851316624713628430637520065149704051888652809552657541903376870806047327256612266063728333115847267253270762486008369704991295506586035601892941972787911121697715722634360284580317692425250907058850806670711472682055078895035186250724132085053549191407125019321871554311365081773165053420818363161147775313715185312866028749124696004175651086009142597524193998416845607693131061914655273854224529723129540387367024157081074600477785134303056126304508959818294964027990181398033455543082588233499214166517306391191830753067779133665740762552306798872204823793354102378150238993834837964719745918464106000474763391661579045575161488451971348548876284477929051558495071370765416614552097711728061564177944734976084096837472947438850713947543865513046158200900646620153289424380372674141672396018080510719219452383412118172379277573502842662999601916121385273130693905464460903040038240507804411781527058073811868475213093793233268556686004922257262666740201348964999113318900167126641711268281776202222774321893773097803191918927870618985296439547224136333238345770411415202828098302346041583230778302908689095785640317362968533355399268290943178678077421449939432309535412764450012793639299957744963233950623667662961711975274136351197141073446961665228603818672601329896977890350627077911864762411609103512299619077185896900622269754530661075205566706638341717543154097042987634179635797162571567420109125477961406046851539477006065353894098415540481005933346243026748760515629646026867699198965932735503544331700929861776592889075358062388076801833888509837510346007930633265539155135724430907201563358265466389285937234676709483349486594181549321617415489977052974441268620744041300587078364679374980406296545425509744306038483630292381877890683657390172397655673943554843133966278852358284002766861363860466526003638370029380733678523101412147265945627294387309249278892464554430747299324850691896527052289725814092178942145421612361731289278173087095022028203940985803336537899593904220158485299426930686452911600954759593814890011464485687329861974869953655822624482701086893610131570535698066997521544504294492760380228506472311712446097245563011383995154023981375281456542377434729319228994685048531729596726787805991622989923243436053463734414169590528415770768649394850219575071806160860094665565097739370994049515432994369569799128956353496889602912323452228482208659702644025896867999297109078875085830779265386926679668890922184628274692389368978335621869671255835467988370069847497529990523871950735216714276579734141168778807180145375615011302368027946138732969475727743881526010511307859354329218850453231159271189385322054377854705924629441308780530168200432138759398617910861289092087710392680645231744571626880289948170645340137097332045476728818589101984910048749615565001541819721758301414447935926487066170017680337180852809934930772188297200655769043181988541634596760923099631984611611172135218867114230443324454532413038553452116806225178712585031639681217930896018806103029914998851924882940262678395509418891775730724521718010453855204014614690066612651052692051980643353211553570541990154011968141055120801621037436041946856815630290895398994924906211499087059379150887077502195440619186532095289026242071126779096821690609130239996303340957933694371792055239452228832574006331759180749169286258429110209735125751735623973065293078371059310925016195906473977345380023239418139739631812986395525854056759577464065139706062546446692680080847326349147443465846673871108297374324426653003613420235688569416231160862758208457380158921527588957551185649179995899884281054722439381789735737969574918560867392374500380083128979623342375993147532538852808811981169701690334530020081396947517460846258395040307393624501400759059394506931352926969866997913108347171731196127426242656143839021707542135514012155338773922781904442205973523634072471378639596299161783712014158199587073486086891841126460575057482095065393963444185689147983122234451174766835944154684178987784605688437256166279268374769060952025598514033952524661106694754706778015044854301761606921113436053493180827762210330690297375851388112690365782638402186883605924783383689074488660295327385653883873773027339721537729235331329308111556617012993948962405990924087370612687679563423250298006169383716650397581802615907425215275570535326845744856015489028687301457274460079151493831959033630696855088770367915943270293071262802715817074093532154672233849087432609405433058338867642607441330324775378768692459874568588983685636612979445438547340464328664838673456541329759848621451952099149771630618514468238621235791449682211729786402279192634675158324330116076737110297896382515456160893691736596029469387107410293962179590995721789665539482784234236324762591178713171774275285204140397317433067954993536449139884318115900677179213026065864532180667914993710253686648722211175692454668709661407549327220787146706374652977688124302554236558612032877223910604848001584746453492398385054978153099428326770572650656930559343002927941202878099680323622660894853475829208796454293698743236795276738724237938953127412105382010119716961863383192283332569537920022577926018225248427885027359574748582562338592524421300089443397771757698659201800530909435567533293534415529938212493386823307473334659409814793263058877078862345965323573204567043598306949617477278604989508616992477891568155140958144692804120057581499548909762559787887319285877581667053262487242748824742502263939139201878410727634582029915091565047621495822319508808561878290857597542193879360213789425339657988700440249969067218270875946105532309809203930007350924596095288206096555991310431597622026085587074495232625025420992263987181604560365545153361622543927013779843153051008862530286976315365149615024037087552886599185453584147523251483093975579621698157906043768247115968116874846046524292754522558225938445236157195231290910526674673399688508024289330443921459298961179204887005019946114356550231221244434547380856822272194725862345121932103044829268168322430044407336534968754573953484701668050042151909356883286194454344938365508755045971664461292231723975531532764467056841609095051229014655590429422607515241076921535233153772439602802038540698599974714705151048026512192638882228599782501535435892265573527695752913539587317510081031967519467643905327230104263272086142167190585455160512543729405190260989274568868067541479245969120992263912399189091125004580495164050270006884896441504853353211042264599148498914762649877845489195776963532006220101502124875458263093433412634045279032702801304883671530578978673994985002605713314464573028248314986707023673987124722671171168742976041908687921368350386775648748403742184757147813649030343477538853394327748563713886467540465437630820886804237548102197207889644554043341000762364720274231524237907227660842206345242273729519056172803610844179639930557277004801943436463499400882346284088586483686542350911508381691725636616904387268620856803261318711879559897400508723435022165468164368396159163979364457750789800707795610067909114409589376277522618836688986222569809269792504179661683502928550174233320726619200406615211073305403321548313213579813421719680850509381837837749645861043764692288345019725776884808646534224080662458612722920012575172152248889630741956652954644422641961280177744294209897553524374547125893520352336947309017420130405949303878503756657280948511928346048210671557011652131298614827135257167981983235707495910412769477811341556494703280960462231782032726495970735090431932117128061730616300183237827767391658269610452657406698471768676671992991965247056759598880862225629471511459356424631248108600387525718010048154116902425682031014626097804892844604582534094046994791795209492096994908176898413115486340590255299913586811195001829401063411266057663463569861083709415091606463205281333315159254134134249255966766277701787636365823239624391960573787076987806519504319693156866386491740867724685566512397808121773580230081376509676088167685511573905135229906725030167557841371464419690825820695715205377424356194732454507485551873862408259735818262117102280506737326865691825238923292752436765085219665451158715377164978169773391035824727245288532851972547369934227106855134583572053242807610241813760371118337887773967967473957804401081104354285340899927939822850966612046065184363562734505888737868396578646275943717442738237283778949066627827634996264195958292479344489480288404400078268016625876030995498097148203848864353637828021785448641259213683876381026899316570660519576256588569026528010011035282464891381660247919054440346217576191048184068813495424547593342599271512043858411794085810685239528580671355110915429662728920613247036869653121172933975460053188675672702019773582717700332256376066899256757012899336075134421729062394387985877906550525541289519931161103214958209062960670463288215307344236036300034025807105641464647983622846176785065188010273936897255714443829195086591865698986687293138623621821537558909509428249350027215368841012253752214490701035737559309739988984299603259638216925893758202191158608437172173373304238009464050385382294648337884737552462770436290034294749040928397780962554698953687546047719780732752403133960061154699623465450417055336195783715649546610849796009280804601839805603408305474955440983994564276295838133147037182636649308307588622986424078613148934552978358771873089994824455273094149411166424177296476095135801463858591305185408678341518241502348374583653626033663919740060649629621442219892021021857760065823669625920790719698860617130333691671812407986796131970383355966299701045780123524713964824319225230640549682554764470974797630848339989992529669850470248553315737558625574914305406161891690600118725396631621573041947274768506238017185585258399039418323404249120811626832154748887559880074558109263096421892808856725411425938489262120385158954616929864458428377971483233023624636437018459631208481046992354184371178162247508258159470545160814618322560025465496852493940140242866211681316238693718150756537135569745572287661044124814839317503692921499779775534833783989089400051908855471398778829428589616359082664482965741236641471583796284266712005828962828385425412932421861597310690362735799512252114116711993326723351296402676006950273921750895345669537081164367523448955097934708455257668963472715809114347460188350207052428697463821927047668776658555187494826398951890742882308113678880049254163940063991768064363965953417011884297277026404595429305100140610547756727073931804619134123331959981171785386513422229004661003496382559581348585520365878933458637527717167716118212970988590107915614972011376397464444979255516066257631365155549675544753445024766041614841987657272124910549709262503670776320190215042402391041411023657813814080594686919465930823950904293979917977261074284525878831057853721775318643899865896656977729232187320507933472328229089904461403090090580814296024893325242726862172440840471555813337536621926877852666495151966771843809301976982075758910551311222917851919916511858738519097611857759202292500397946335462458875517594563913692658942064955267002389121139400067580726794548223172504597265695745589864997296168870100411656986823854866548592277064153141023317874844697931030914816176401740644175961983736263552963023069378348438726523094915396197260697644774720719975584940922409972458022513675097302858063754411199518279008386156036017751365567624633545812466812334352463243235582484876663502143980161812663082841004465391015210179941051466168734767200754418446011401702025009524256424281106671957692418657800550879368741227953701082619655057956866918615312044516600949505114051167005892348592493208707600971934200946050713223774976219914434668518234553703003470421594003333632022422815363677595661831965099916873127507470035932928090236182773605114981505928554597393502075031511189456207537571709790920048265425848196582224180356007142089151526440165410744191246570249214668269670075146813712986535471779679568419236937779687137325872352122373092044295622949700846799992767612808396147038735565795323307330398464257775760057486940814264159574103831414028538119161706801519742299632326139828799025989091985875382886519397483989396616263413895681542188960053174001420320631563413206818970564032664214745232264320041873642634080653840367323712370864668004015035678248640670751875081274166856999369099697905732914924976263624007002770222635466493737101082394855396736147392241005487338456766589460304157187444689770185303139488693556559071961529119547933433453124862530473091480810210030641820496572624740864219942086755108689842651628868774979328142884303286054307190360400527011026210120470100884808426852694963224478896999081032336378661457723316372021000019570897376596973786391902244682998904986915450705125977427743202976869450651458876821412624320612763927551325618825991337194079434614881706425351548158123206205986062423515734042274924754661770387691285677646556923842712636375974414694341012747917139274036428485008858360367682293964057192948815503903739956746427904752836685569923543432523730545992849069701203736146348010473200138314188461339909788469478528306580493541503801070511554953040122130727960094057259782987445686978949270640516730651728289920019454445414301167184201508305295816562108747142189986209264448127707010141545006954531420890954021988767798071988043900402090935008161425564333041632975460973252649343828386310933058963058784813553718934352563898227798038021953687479811779153633752210343682695014543464255066025663619264031553674388560646674270093580416614648320421907124473525243231114630806278535162062593952690189220019003488056692146281470142811141211768149444033964558188387024133424463923299086372307569069314929524424517813702156961203098849191229559105415267390431691964310913425683603861245514703455445364715581488888346948710491942084950455456142712184293813339563885510373217691442265262496160461156478498233378801634719564286425023745045264566135917648779398369931346476090002596891831100946263091173529889776250058209515746528624573442455513895272476255868595740319861282747554588955808260717537385017041592164578047005148716784340971123562309101408578735444897473265585752593238391315912329340984436272567260444657112290212070875102301714340420796648264050947777939357067951115564336997647986252005008197949225351434052996470987815636208345722129768278249800249767133503631709452426807877462685673098777127044288164860506164126898236179254232006200921217958555103597449694820589516037634599383778996812845947167322923672810967679377689857741264476619073885266036106441491450330975469063019836168053901233018891869667470130364613222400599467729569368975154239110672574214569088629199936360680018023151810076553613349125004816181587911605518515654791287987397228735731989029988547799323871099984100918093149743133179348983039978775655850484143014899155350908966061728199002599356315429899668319463676583041170028917151780337138707883416263680397158014514964328563199535838654978694390356834569400701806353575429400686921657006191678263278713807286722835264239282993146553564911185296781585079648975005594365689138808262795369480495655466188718900978198917709921717088560086654660696061729684586536188735828601534989622024530350743982259797444282193771024910466004254873228326850937437814766968292065449085906324200670298286614421042644269120979183433465824612378201702327918976837601774653182592285533678875125899014872605187632540879422849572785201631021875796016054131461074822109061102985472051643864981654902438999279030922189312750375096293046200820536359304757262024117739127138326997400282227787264881376376281131820173969814500360000464435968326359956495461264579162485280740398517142851581046942040207545588715647786311553497444664203045249211354797473831484162162514479887908125045013059739251633647065414543942434076600688173224614664917349410204362977412241637996119633056929024194522972916384178106307805821616155628336647094615097167679384451592344455136589294447069234169475917370341754105394164247140045734397769551370278072639291442757823122548599107714403384950946439539508736442574840338161089128485848607531661091224634448207037123920389934128565939324360269083687426891901023898551016952786486870261490925223149541922624999765467024845793171217458525660840197533634093864086208496306995660311600828036159662330959934816321408314182491060304930484161884561151269058284462339943088831518673057859746204614339695616675677505361844802413256073918311516741206697232284120048278094761739896572240236123536476112208260360936722763535057512330268298394811105147726102534544897133340392322680765720032953722221684655102457535833720371405289407995754408485044330577113705787074456699931600503973915333816129266097923353557374758157440548449788072976744005638864960441400654425436945651973200948786295849506533483722703005203004455036126313553013979380487274545105306427216945404515762793797920589260790531797077205903673561739924111601771264078238494853520835863210014796151444303942599959655249226787380392414360557671260175866754460160313206325388900871826886708313232502033115941464766955117414702973674059550918296186308450513010736330888257049113795973437882828986800181065798302278334028247663559648008257791488591554963418095554254489028045414872316270636883724634862859150028842177704073941833038735623361166207476788744672448129955745491520788591210284352421288906804383829409803634257401616157099296588649599951084952610436466847246388677637078458038295502978503149669249551176140668953103317912217580132353418488512064696141480098807107969651359791502584978787552138264636058271221050409958208589498454429217372305398953940667363935543712288837427404864954717776663104862677408633942027815214169176131797442585695952677644501729899387432140112141015357460128448445797948575918024529077854185292391037916429010447145713389511594335737048613671051513021356857604042687603889598833534473061478139641890718258380870748711444536941706745175288475257237282142253690773510485277160397928468039398639429994261082277605651281888231062653063432717675079070860879477767088573091330071834672514674610378124458461912121893734940047829281715594485594173801953183851864748534656065956754775564432168517950195947623290059423019753587721675410909724856276933218176917866468489207246486178355754423388321257108751797197334960641406602947628219068617242724142478961836994322626983362245661595672240995780616080571272024703123335317642343704185063692594794753208827884345093196152879194298790928559163787964220516299314764914251705517704294938365884626941567441663844987711821239895588025629431087023197050429008103088493640505198677082172847029554653262646726241608434914593305968927841333578999110340594703531395124190352470272404803432120528620670454199499578927116943612332516260585294896209158429578383821892948644293033467340586472190207828930469877525344903029790823321316796910024786140232557069968060260744760005918724489449761552838414384662648459029848719774255472228207412753116374248526747677017847967006402518153956773851915115640642727489300616936132369192534151291625400692051473432024297215675510940274995153601136726782774915878759210471625497625565540418935178805681038196080406913901603812069472439091408514752757278251320332173506305876661545512660627633051779074485634405143056225500036912618163192518475808887104469873018239903894473264173902600485840996661809199285048049467411905060073856640561696175588587182611118478612984451181041610603940350453641523391618541349026200288320526807828556069639708778929519582091690894505620796201725799473257743513956417568100825607514954430388323127871255657270454852551084396877923757628042620884189600623505475380920384702313006506826431819804950964298484592936231784355914207472490024246761691401128611048699117951328630169480585866516788328181060590252275553640818158864982948563109306960144924964179669579753381027963889459826331893143566849236126858816204844620303927863759985428008326168242157876370399103514797828943167063464663307934157084866357773895858840134319892819628690887205378192703135564076225483568603144124062351710356133643616951219103978372242094871799842489158873046051152783169205366280310844267093099890000638032411862342603318164101909374289174746214257443464677640270612145729111414469969161591327401446771463995734842489191534063535801392132675737080643144170446850425461288619993455905163479256943074856450388870567843993976201050611895133155026841625121039273566072562576937380559186931594228954709985078871741122464339938642806500514725699801058789376298510018362184291170201332561832643864643559568244502974696100280003381802794660855662523314080850431660000512568395048569093880943028115850999085866759724149906686449742091476388847350256383893474676487883299843442783679183848746401342283202777150814924983188243700130142285793564733282133165740562612351854044256424734062738599434017194412302605254744155888261516933468114573987786275939989402139808117368112382961406610417652827083734599076491094323497983900246882520358826191555941428009234655923513472004897285814682922175357557999525750212093605019239974872021882774592247359487548364455962444974211565615356987995306380113265969827817619681301673462942636456256441959949343442619933167894017995701628750706150372902518234070792215379913678512082335224084900986320760819577419707603473429782087403947430564696804189108822640207259565434344125745912890228947332574061099711492386296534549426717042012881836904227501353265094748081492209396970927179588185422712482696014582803452962499081714463006818477197051082133649060462847312286367335233619664771507614346671421395001020127982811496579721414392680406710571577975464033572273996651616018491890862576131304176325873180418331946037295845807503661014056513081456228042438714556996794172250642117691267324309053511421257437736710514927072706693660720613386169548916107650526282877301369776236590658542487874962160639573158719108334683034164953683890187523834818264785993665782736730475993870383827706413078240850943498662452667870228546603681105036091965642647562877995049384197862164847416444030717590093527874425867190955407297935701339528095359087491473693461871320898091367613498839316394223246806820420649092754113582983248549985922391910534783316614924419993469532351759179197392649238422448919866012454992900405818705856953668772000106392850632478279639937143121616208945387529002685846306111580377913644492918040007451614528667001365851172001406691133068601139452093521343675388521377148438621243022972637132943092365427404482996451917414005294973541639783651398808119919673993576875757587680623058338729025620606954169531352097340021822037718756055105620960423745984772546778351747518111601530043666779493008695673187408891403021348938656661295101440513503950073127170554343006705789482097309631365340455259401909242280249019487054754394638424300859733847829067729070498775067135453969614121536422951327505137389987251094648311275229462017716263947561277602235417221336787786214295455241573147392037092045516954760827488543343283056448548030112620465876494311431134153680067460908629958135091653092731898696618219856306265229016909477415572274535356770228572059862632557727905819959326508801777816497435572136737317154349773112238467462860233630515955601882898880303241941115587297743170845598068681885068273307696393304686667973320707567343334962872440835018236074626301536783652329510252378502007159276769254496509018350079111184247633253015061844717682933766343447779864218746004778635963234420313161958500801874604702065852034499171466917827704371212599193812137635772392468160342888150338576380981522703313957182322814860130147186757787589202151742466164282707190638036559102562133980804926861927631313238121665145781624824827451674767049503630278379150025807384289321389555718625239491420850858465202487591812023313387565134104654150685935337762035654767233899223593335477697238473360219812044997073427004494160001021621343691393249981851983726116452016897792675286537164724200348482604623140848814151445615909268516707469678536036613406870326668326189535569686099283403309626852196657496759356720267608567796342320998258027824456201658788791349623738891387279965702780673349925405433363603929227403621087055418370066327723821732066879239147401535294852180057780786113125738413217619664509480663619982286176022489620531755554589875631006059629725330068632681774561589778452057627846068712310685745731405325429420066621312559147021303438176548920539381301175506008754412228622577541427221365525570479641674985058385757987965814825934796075018154348563199336974618889319289404783872308942148083727841675977171195722139706621030184074253852622834874981258490677944985447055116055022359445337674465617400061297197953346731067604002380306886217203447408622679050513430518181647262644386741494962325497021512515420028568250399177833635166452079570991177140462699731077217364444178075061504876691206335985430356657830105119719293398851504790490820231827349778388457588429687380512549216490302264366996852233205186345193863361883218286094992466531973815328936882188545890630960060190241142504013374062502477642492386741290263060886109111360120241856240000426917039133669424597841542968212558532625644822414153125844708424027312524050636795495631903385731127027917797980414160391323661006387052976052364191884517314680164913633781026954228632688395831976796362263812077786682051526343419225857599775436823892889380129844427461192880884074279623748996646462190816591838614035170600601755544626189633222617914712883997209829918381879536179345197544539101215109056365062980886065320628543183307144546763195184568574218212347871770997354586633768950432841030282015837724615012309651955976698760724869943334466110447271171458032419549581054624586900658549117911811876402757415339646239263482818899935696689587872189808801431256126474998605224447759300585729185234344802183783876458918591031715396413627123810472468627950643196195192679032879785783162739551935455913713787556205180245357172211020211745372716442883704523821310096644422747633234421483857736227395096320900528457370927495862873581853245835396253653096911287121814383883116575609797080291744173730622292185723237504850997469652168442454618630066165503977833689853521007944116732886369503959428958286383229344691679816090810357730616110015308446684343259323106706610506209154377502110332052846937159244865158949790251334247359660216042503839190471548271444060605111231891568766369106216360035424321463391588437136946292135129433064258710352144530394826850815192123605245308590844715473879789490952195353907834892666467952332992816806302794164124554877379283399358137976396099556818062661584210350291495498518726869423043553679534228412854468415923490054358650861386837327103525166574482344399715329786189256469792823843147245059882778889426823957730217998639451095775318079307385467441608158128848327134860042665038651065120071409658143616747169504573506814660482635300763108465459689047910435441769135839196691282215406689004591696493991304118806064790450289554771218531817601402114634870046542506200050954919174750506982913670682153968947688693477302380684724747394103024882087485080117854807334230467424971218129752314356116665036270500553760345649254052719879367354523908781741862175500620575658214389295808038593229352791734868770896696411146165864136393130177903203282131273678362691648140184040652547995554280944789046805460769857965552233520632611425415832883096870819816084237274831942622319061855787204952687637669419986952893451866022683156056314907688214989166009785388069418972864883607311732318719372967519025133114287709566720449223901340729858218609356056303495413359784221330743729049748007598528758825663135229408096010072047554300300271980040253724847135088102525795605971437574306483168334768534627423035006203796193287666352713204748072496290522425158240737088131904557160267237273647810139638644930641329746277720673210976067437306027682997946835937478403726200112394840473842604049663505111757622153955557337092423856634699881841068040595453916347917093422622749694640793120150707419925175290035033958821934991154115600191305324074507857623092820080652864516626763680365077695911929652971518204229899024042994210780630536800684562895636380880492846720465910806450557844438947380414441006175826394720780929226543100090334243693561726880556045785878403443119803775791656331566776222970750625783297468629953551840185635909620469465502036563792612325591073409720355327912630679983568627613414376569616438422320106275132619791879534256348330877373618889545607929613732622799441758587331585585171942322059674871278827096334856327873200579037295362026675786822859635738345537513540743972985761722766561448355619153552303931264432269327632503386292145771777974632426000799636806919847654385969488840891557362413841150424517528672282456557689526159396481794284128183918183813195141114934990909253654070024795220063437068224329181161968373696718953188631995291032774577628467058107127867136178626176500088335468800099664827879774824912596061403642251862235092551741683749407577849248039398437620610875310195068177769105930239921816722390553569177049682311644002453436398412164134244401806429494163702804199441317864940160903920632054197885718261497333707275350780208089240436274134697875017443640287058185681952071577791907995647245791499446333591225521409252694475270996267627052340370860998508147052521168876353255388633210282429507891443447795635168860320198740683444875016501739703745408832879036256728936218036327929577605573121434230109406587270905284153109493627158107980329298212946546402166799461632962367246109841120674648980797822925808794748990025361767289165912387669418426062959874974877985145296577942394083277177352325707055607472539850957026847059801060678130158667047814423422563925892092432659575182177900604820976393778741541137351516021792428622167439026738853004007404289851540575307864941779009165551745169547170336348121489854624630306059864964087121846952214751414176995461691108094414119395385085277127194011303389489066468499248759846286048170363827779092797916903324809131918519079110425587815794453289828442391262804442075198377557515200137449725598850288119443921828141120176992978095358008853586056023138537987116068850444637341216987734749174606047879773585674101502583602920958455055091982885963581764492525040895549810738832280789585898136124906112328362281125410357938402881352286457913911693301063134002650988150851343121459485734761720738931614854037083904153581251865612410090780810869676807214671485292149922713238959537941239077924029914995733235069144446434282441357546088942667099976554787671626737959509633708516887195015979433550695150800345876370829409154343635818072009634868303854001012252284379467465367610158056391527265741573452890193839529559291399542384478595474929412526333770204158838658820117015985164208460827871380765248208628555348887583522243960278073505423473273372000232623973887134079789750229288352917685862034077659795061925878441105725909300001749606061721957799948115192684292280924581561710906208665278195409740918322936218274594476687541074294774330881415306286039491103841617348140218097193766265603950774377451699692816959058608496560043754976873893662371213535685070717954365294353931595270929879310942306090505164866272682607734942318471076967782245468107619917197372810376491495280331235709179567205693601092953299946783334543566291168052368672740899401022384094579347807589866448120901869762073334389758898762852117910594975855371921759060702759322371471770108866936138700882749205955226969310294405610730598034033027343776378855900640302399574473406711943803675089930109814019949252027692111458643801321247332195113189805488648182869017020647142629627745461789558117169701680985702820139469531107858706975130666138039784346304497042614140668649064135759402610459889826191706182965684593807185803165069610611436880271394654127438097416047391658502178149796778015914429006893886559059806926707782870841452516343033836482653213067677864997256915587598913758767332029397980524756074797451302902173440096924621794676327607482481343424382960844350503570699675153891866192324720079124171990294905481789761467555884360334379829164858325301321470073264709886729575268968554739476984297561312101781080359879694146896485410882405485474659248218520331446122323141633575704892351436603696325797206864170725746962247782717190045816574995875223050533953510729516751593732320059323522261966257797637059475122896993177546743751094042932196598401855280843415713573930780976003991115785312043736124366710100977606726384809943082531049833502374615745921598887438862645217151921091242057118809986505904066807055635478310042071955435864342262906460968293904801740323550304347235163947699930773204237044895494020426652221576945254644754168641015305149439114054857536678985157458730766979285841715613840144953376286573591471690586950592987405501478210486970677012518791972133559005633541168882512919012210078939808138683238372099832161440283824633437261630084210735698353332026905262442976354046631567675034205280034886951842779898903135835331951836172430067181183787565434394692024027034602556802813155925313732468107543454606559426675762012301026397682641408349267298057652565269163222142013516629553852425936473148963173000020349899273578732474848420664970887541268447972410987861475395582670340681974500617116130415709197590144634137288006072634276234357966436124280688894157797687516656834980150294843057917358391180510652720402933097992392571764868807958633279094708361160941782152498370793881866536682214228923167947316380812080596618470495798619825815834428479887126006555187585762890662665123283616327802131326614693242209063773932962786250069002338590586752815064491867783473183285759690208905957863611646617552376776459053169046959636947404411225820026159186251683214722545594121145673787085676302276215591390708941713398611273265359144144047479964781667791436996999100764635785786175735762077320931596775062793152261060110479364192467170282432894313261453407454698797766627831883751205414590112833573867312491945692948937646105080845488902887681378165073237477367286058799034666657119702824573272693376894057255334808177691743028815164546090243586244431826362890027601266060232504434402759049038121264397972412805657738436650002496354685864850098377947666456431466810796985463606815937000546513379627028364418040752769698212592313417252983907754268183594573404513805659181349934804702016650882581362454843553880326257370911878878719068207622581310905193960435648265064166459141041200665299404284138470266723958077642196731933593316399230033627894278574050674052394636396389704512284147735853897510177658118323999571789123310532147656896676159924034950055418517464366513139413837768644380967445573422068064478042465126481012838874898464656245682736446678931184907226152382189697741480097790598558280836074754328481603242988928790326562296268636174623416274874683750949850452297022257850734500449645311867415415014810857004622290279331679101617986247029966866225924748867200162541828524411692307221966217376946336042719406132804673776701903181891044761828447058242105671775563281571140679688712453802412741014494565125585603528647081194628963712780763988631026421600463924821609742402260887696235646729565815721903245277930895150004297195520823842476630165152693664247271235387018203927430926180867064467571481760909045973027480228223190044650569419977812290896832526653314548318381398868515349596762225789716505731625559318686288368059083281318950556531840051553729570824462526460934884352618323530137393999031050939993624544266346067546896518344693460890484463646856447097113114699110997604877722345054274892186812278249065521818586203261259887376637173210289973407654652383435834561178276315399994914944875930923386606627346401494755759774788830084234262710385398352866043397700657702694463443016181686067143878378041680085541075948050999126156647459531148216037974502602397889122730386323536006494646669649854127233130036006000391469147045296971807757128509818655571557965665299691674961599126983762402415379427603566553427084171942102430930434978742598028279722167915570290758098689585995175783114834028969931931117613260749734787265021316640891467343145487290754889678860519909568691047620116422266785070542324603698785276193321388641709220154928028650448319570973351336087924560358254623821093503563625407433472743396873089138546116295929470168417530363272943973465339435415728524947732040202154973247709235018052564749069531345246324988912559336525968565939770142713414500851376861858476352670489759982195252638279236540914965825210004563539189540256887927884775673752455399281016700517263670110210653913974540116791569324174013036599745757099268882464027978729204026396727148966864435428250787386618975547298875773419720669671949833657313645555496877005518485544970821910388767536395778607064273781344096274014481627623757581936870858886534960447140127230895505957664811453355370705268120869129633006386758583130906902348113269965759864606845329856253882623619632495398422700959919311786211508949447632508905338179812644171439418986681159997268514408099750635086633625382452852067883923563019198049846654185441202352178737734165934757313013205116568452762323731278470354890044783354684259679842372340291286716256320881571253592225827217679723596871733853918480703185981437198421004456315941927805299285752291072637728782839576358004323714165018656985368962277751806970169182972917165216543879983671094700614391656221828856383320889267218268201488631239076842532548311510384781798502633548703377625795839612243212859695221946362777373197266458949162896318260918099453085370562198601269011039244620869921422341950033845203548287710816746721239604474681577387116055544803556854925162927580094483198149449704355223044830713343021788654965450185048940471758868569560757767803741148839469932072445741437908152481266936406866692124014960984431572842726113241815620355036957930750884880126726225734945193163668695401126047962072017964847492575911500453688470376522787420340748937302476003406014054523784635458654494924965481276676427175124744085271501501566100605148989471426960015239050105868504183802357935047021590973305639478605807537691933087730161160599487017770078621142879466885240184309949817583236761245598820951941663820846340678892868338083736433421700133014926902267244559753247352964101594841026603427572016128493685805042128459478226422903091814561551496467836233276867077899517776539608154540545596041374841309817563761442396197831066326338414638296662905531577693103325374540946947588454911161373412254576293709386868950420834344566221504990197967677635564403807132374642691148703655285170730398633000778682609671636529077051515901511969456058491225814481998312616619710572912895495353822057337978705549050540029941971132837302356736269264467671465652472450850744647683985205729181519642223031697258285162420426146411899475417223139033098177103018092294983200768799159962469307958228507282746441990438959138053129522861726705221712915650183846121681480997917052539712555649439998571800111931174946502926026745852995140810756779074044028448628614124329110118485195368032580073669585858791072949030546711971902305118462717046060755805637138223707841335895918726961586484139592972135733373576760198589969291908842200870832359806196965977275646041454092687366129316952900030392326542096399981358298841215252434619460624432840691485519366510869382782195695570510090731083084267792834551865732222612517729912328812117835933374052475562625724154797543040755594172885722012109026010688508189786645109820168245502169227775648198193843855815813608751239478403256275327612337712754703865389113189352839408349540946263132084815034543748505670014535552802922835038338292344236341079973082167468302840246800528179615040890353325935669124351085205639444509890021989518630635384751806848363671583865247645954470136161043107328664398859410957701641757039591074523562903548329925948004567199646360267033568265435724732452739817593427951872381317395447619408706170352090213645414978348519366605171376879845730855348093282707011791545527401930042826842342788640765484413339936904385206811321731441431498631830883498760895246138750423471282062350209106376230934269779810268519906098766865093648715322911364917089042278998319802220543363784029164350127747562905644912403179064469035171350244012825462342168853081823976123037764317272048704416855811267911841786082456737484414165715513961589990798716706823243264592450470046600073141544383520779315387422584263886647437078803389975839222190816960880158076325119212228642206641963188876314689815428544457150605790137463054452946639835381532078053686498421743952233840587173296600827648348474823617069304868771471362033318546106792732364803963470033755197438347516850649943372109836790574352704105533999391399859689628162604973328671214321395312781508143086856522498848567947399445315803315322345470359318192964546286990246500252036388508009467528539230681931833093470021689519244334236412182730937964016811294437419590975031126855971906775747635579624191834318364930051675931797899903793361104536541862011858966875975874511267229675071380901693259897377912470599745244923324106256085731408105131293726833351272658474203550014068791872335507144729957198667458060195906780531885008959958653107664740917852642424602449748180066487742457048511937145800303153743884010418697825061654633509822870395614314322685992241877903609272751777035858811087708116018396561692628284177542619995850986742920032651538348598020871581569943360166064950878669947504167981107956725113239013862062642379564309552796312075435676999334128158049228809268741521839611877736997503176486001391242280459147903195037691226922453789340198376387318030018441632162582298668770045089950224535161436317699980187918494118686550699465351016724348225886184630275867439848287311315435469569402924276233721289237282784490785837441440951309412126699123955509277173449448960634101854747823787935908819616559525982158680091294546559618201534521378141897939892264420557494908248257996484451571837087978745116610358866107878229316076983538657068659279894787733171301515956105310010055935334968003517095206272821133268942099758368200569670313816849569203807944407564144239245511486061909487755597470667043515337473380895940525241306673568802200642381860991901468916356692974479414606189859450225456402291133911637894887335810991742294283745637269856565410464082537911499398510973446135127836801305083524695774771692863138042427316087564942767480229981590448006856377680790888927500170825636051693091946052379605354162665510414599629531881822239477707915431168242715078125942848236614943874790571239094869993683319142576901001092918384052572794009900980375037587227608404351473619068443642439171481882284932979725363905392283739443270948949344336162383085428318556118530680107237679984667926470887480659741145374404194590370363330830153868191251739933458341605116554924166075260687416415484715151690193716486304166434959756495934266528762656525990810543446269599048240874425775534544390295336174387410270337847616656849825079062699190995701644107380390187193766537832942023986955174663009774500044193288164788543608982039971924615011829412993499610947956265961783430963924942334596451905333323975851419704715529569260090126371168621566698417134850202509347886197174863946241736720313423163490260110886266629240224668666811190510779734522402938802894054748491603542778615339188183249465077853712596171149703276763899645601192899351801357555430958152996413561966102711231834386242204787229472075857335078647504364583031481426977474528176871575799506764700160873245288478336175561841564687785943101542902386166843615392610513132714387538350454632518672753225562551085200174501155292380023002763897925844992719595394290684829951236396177053534204349954699218282871266106069072349851959681829456930752542927245696077295423446259354355972792062522907617036909417431599378006445442506850900647676353605319608864380617756441168211534042112572254295860511597962436701261497310505307512649622494204915175319894745534985852559949138688430095170948807481580066739796147096965861259081248619503483129253219645563405951533230501870957622502081552578077136414899005157301418335487798322501053771883045967638818700112805303741239464578900504258988579611811542382597422700990202869480849848794810987465265792937216083523479545700482751677098385888006386617656559950412329376681627033158641880031498244180422384633507391476383561692635065547754844595503239731046950270541843878070302972000428406337779258242350454371239069978205111573712844133886593552616283860066957675115355733929975693481358516223464964526460281084431701333257932725723686157301423116804429237211436612692654487109752497903285812287956036644714291212683214651578547212458318172520023293026576091264443932076505279901016505233978520047007072129010998550805379361067511349046737556415370005733063642269873129365607137827318784300803037911622699207607947921610018973775011111895069005588840248298689094029846823239230728046893623094454510175795342234389149701153744192026659833118186130912655422042142055562783786372034025161648606118011716251894395878179498188085154971271523025208628094108891571847990792429549035655027420194934779862541046170658737415627363636997281063197479547235536963611500555411857754710921484635500194082748973359858097894812311352486694881177831875057443742478655085739472013734014530775348189786591102682485798564014875414372680966196408757156469415774070823926231455018006012693120751144374834606188036375749632549273630760170802145622311928943690281422196369111640058075609352035551477349703739909752071467143137298543724602158073249525996060536614685560559864188017956670063590577330836852216151707044032075544942360621613654885756840400560278447607732255353368429949600615757967801952338671152170816026643245854785825865875451194989967984962792293338539447334219576965421099519074069486629436000294452634903357548278902951910596716379893520950860897287319027471510107639297995702156199798115999646991465607408053546193130504396725957569501079908707442505947518587541722118436907803478096417300087572113318982450425696344829840296527836373483545796280115577510505447155170825369867235287104486110131133563135002104497397830886204942274855348851333199230584856624840389320927763000069475482342102171975738449357158357833682635545509455307260485584825758892850402980544263222968057144851527634013508351534295112771125256386926302574168672217744605648508930174707650814469623309615439810406335523679017391075527389760592710421159415183198061247921630303372112294810690664253051737701412187408223672536024024121924617188251313681635232932557261699038703236876338226857202224545387538684990623827501285430868679855618856524422695285832311258060264100746184467155865844726423625940353380270715158245741436889867911412327602520858963781746126891330925767686938805857461086777527582721859003108361775648819036405856882320151079391973322638495395842765147980389371665046887184819037383234654870702140447513346513684392101144829139317967249077284262125301165859432351345559648900594890032776116961797446178403867233063031516247642734665707972867076136507058030236063828089654211562333137883711759089661247013925699365280651177440244831538958452669487909427072663682986215500067463179868815123797840777096082112158234535831597896543257461423261896640108393242462711740401238935590609957062469987089760195573044624850989601546735820216876062560214013238707904887943637079448990764938472737014511903780628532381733211601990414270209401663777057611890341980363669421155455560138789972444760588160748211249323369706124252593758813713794415958307013597673348872952473954962406794037614168084318924432066948661626636101107720366804823085647859986690432249232744991346034996116288578444259523571894337794832423458585108422694462762173359838649200882918993216332645075006748635635624959861684903367853038012712887908115936105513772145347804728826537081949145744551370411909617448441275179104420996852154829449080048711187585389062750856942209282389968311411194541096113469538671889669081077301943103150175918517871683073250636958476861185071206332900907781145147824151954655960608702516452134706014113833572206653867860166017384702482816190262740312061633080246953318143717640216687492987963903079204508536722331564344036364847260319494724103924035419793755331282804187156027777598205925755006841169089114663540272725561182312893582927362003547694541887440024167179017916892655097558129219453299153204602193343132052577770860128329196369840635654811431876878303140598366538230831672378119755812010901904512080108307823506301893860700905494935285896061434099924051683199732203519708352242491484391187489663063128008173322957426977815766307778050012147169005942454362818357626250971736932396879366189167781393237046949582622577651790184217406621580316414700362859692975873489288439676430664493003327422351638709253325381436357481749764965190177269043884571182101790827037535628990764884679503555279210118789965708800601401621589086345944662154211280657892373363907428782056191403644450690761005662454741478631469751272589289547687695009533959683752447587691729082059430979379120832981452628914718161057688276773456834416197564114611609226284029630541754726047750210623877966102126590695514945619170060455053178302412817516850640988444963996819242840228145996184278210687111110063947968855942002599816381382913727206348966821428105620104326566414289905999327170634099511748719030638667164475653340560387997789326801821708357414891735352165788459674309366329224182824295256699898880747837959973867683655694867449785626552936585902872303803710077236659047777678247997581486143170352023450694040358171506804987777304664819421605942225674315342173230769830073230375930962041568415990783876184262763653904713873786230623262367433629637927469699998202041549281911451977340850874898055186369955754126854565285340365816177842399350713030759657745104780837007136233783168886825353119335769362501784411641821472996834595098048502483538754076152764391252041499606793734421734601191476536482958123660249990249188676824812122713557581472525800080426172516873838794517155671058665315536902738320314442135172157365362442570035551480576643434481867879816969572913747044052164637819831953441542115373330218317405540005139227052462050495999387264435705714468066375709539064892781577665843676477374030677125256688378118439798362230549519636547786507486305600947421612876338527635390180376939712946693346901448883982286173670722335446117779622616853271588753401341157914079487490006811173548416858191927245361237294645211415844946998738427565462922908083522849203740651683107670734195222068998802303540436570006269370421155852271484654627299122257243045145989355156304060290091552753327594149846637064882201624738646247668669125051739834623281837722345352183928440476926009234917478455018685241335324415421289251735108775705669239536492702899947318340812456423108880736857205196145880811585047056665806126596566011002727219576814846634245195555669238877814252292470199965748611987362058660743295728887866750381150101959176615931107268971181684461299807665241031643784667786279487176321412850447466900308198621203818485926436506651665154384230706711275864336938973938112955158998230344700820564680016832266417462335526588131633612099090880535329674131423411196705826533302193852626383372492273692147732648575633290062839933663027637222731450185877996838236982919478967889293341412379285817953019942849309168040806956113093745765041140379881807347089639096369925489096283063725743882108233509294912258988690570342687087936126010844030196295136832065812385309334360754329241854020037322702525126087290550405459423653893733104848238430700116386985505181234801385656287269072758913160866917024350609776850893185456709278612975550199997732411017042254305890238168630281592585024625634401320004680908592812152152785698079318071794684665208321167721407927799719771921009929804409155131145532496265512443553815721279148235561782711123927513789642511808674074045925692508307849544218622802641190993766451250624297448790124308454630403034029695737434300548017524556549998192352071787228729571072620469941097855138954511009423663087806275937135963446176683748052082759682364958830544663546785800200800702648941272157569789667214847123695627339376741219922130849494305607046354041869124068843596640292895174202495085207982843387274086372299734180721578968620257029559891139178144899684811171154747144506114693891269959332905607682846427963608574023399339323775234642915128508925182177406082789305184531117115402687898298042764930922789463374544174117306661290397258180394461670675887585581633832266658047215865786087752438389086433429945954757306919147675305787131560795820566730489661717200493141065502514120862564330804966867892545070388746055334230183148889350413484550716049313095079602122629167407030636329100990827491269443613491193276721922018731732435286336468217785768120431861123926791694906229756612911836734790985503986758677175798096179927943856254960154712152550080218212017537329791260328022571654072881178874760169672660956303302849770569612208556844812398765819449047778160009012160183001796270358297892755328912859275693991698823884706760315701007992872012438638988345669336898238448549085407208947699842075797342219277516434976140284006839800066615795912544598997393457409048492607272946701952751277261864729218819586278033514299723430648376337939309403177892618793200145354274874777305085431499902086764805052666309178443768196671571778247698973042178183440953417009651905080904084124779557735683481985068889117878548552265637717628800185928871947194446268074467864838430010539125646279037332838709906962810694922824504732743218811518810238925785652823969401644562985364830551103145033206673589202660422822196806014152989810743074945439258144399286959019689149691365193204470261953344431984213350258006575232395344854423203900505744108854881809560219583478523668922505443969510871035899963802077413377642591355114287075997654542124324111858312666426247328465161065981970990319345171168822476901793267190144538053871061600268732423904748108934802857897914853942053492326857210121867880618220975035224864974601155186398598208599964548863652540291694249498772778659595093946388262816110562197116363107362252182673639131367979871506319252393031209307495677312463578694522878099323287168864722480263713314197265324632760854313849075480901614014200431291603372327100967343472314232228438733585220203651148860263085714611996912935402544141248760757187541656066783550846539597093482530623639965616446181082512720357287078891200535530146824683006834532579047144957319433433108165690435456521111993075870883441021472847045234035258747665184168753008495231316956761399741851719378987019613148735383098631179670268014756596551207686002064660656005827996985875537791021566843663054281021912728644421355095240395756337465703520512836358928973059914200715733973502703426986294708691172497441527151815307226453236864595423832309782088935045704886219406935558113345340984499891636582637550727121877725164034765521341843985300864625568471393642807962176929011300333820962358004520720586716108725751745520848716012840060968943778750525956962499870112595710600319168268214961644424612888366995895118733559875395045117269935198959044123872773769512036364649773359657307025346269829967578233630021521788334135365086394778397307263917042578480807862328901407972370918324813035803770294082930645981612527588500841173848394551522981398602150270180244055260460760375070605700209561033011698504386160383477344486547223511062102256510011929350476136476204741225862651056966631152648639979350853398627042369274941387020630555677577258591407986742391439123609613931493545128595310005438507091945337579587178157944223563751734352309308998831610590574312124313964233180350882320595977280452526920728412483570625514813149429294144931390530972697336655710933506513094735886258876246531288337747151069326049693490586210403664265073547050006371499219194930346332415400677216344128157620591618798652272239821634082994915926534906956282406268917598361017073616536584764760576333091370632211099821416545213030785248203286117660814888846374755781910211371037835680264146383636365822631422562958211187316076234814531244480142987044738146307591894752023938066782023687237430012527965537475583800694206532111468240042026483744336271323581056472691323437924822596999048386642305892058483560731588164928053636304258461817762225895872691966837773258044966606506852576047506583936304475762716746155438808551731621161357275395864618598249804803339800236302556469608230014964615358470048442115677061702834329265189609070932014435513010262823052599110305226318169858296414987229036761450759104967748745544792790587517650761609156502660840175329263422244530386974300243042769504071238417204964124503270840926261435385521111161031629877911174470993901981300963318047732954694375477176403128030901375563438849615029458059717171827573730488529379708268937765037240060983104521173508205702372461144021060079264994361509475120330136285076995581279726111267480247168764537910720915812543945827740746729056499810086586630405412843302464944770038884989234523112581578815191124744460497212498134873126292508055848503262018215989648554585521712768721107225286795208936734064970851691147767545931101621285460341207809365061236426083343771950652025120503297642235904865384414180315784238188083617022888117773282490196755523684825145816611237917384875940214912848755786910565736543780288915456775536598357758511895634043853912656661977173519066954873090560272452105871690135459157686165980953479133579146801576117108389142965883686140624584811295710337019174640228595799951291711655705491499234664707666941255259266624240701697504163411186115710548412090552755811747905453592130507850417127329634096844711857194579003474626938307259999536845270540335301342246972092195331957480811181623179836711392251197915868635465328288772046041093023169538911779987515756333591179122739916671856803307834792447581911293619503434519209597887612247704335963835790680375224429000986582074288629644254875882706759782084086480371932513391111254981440771849617569105382994076674319189569167428368499380988603116315848646968275497006471254522989715988653155601523091838280637692916221118658698067706550072954613945823692793969029192944561607004453331290258631491751655127233755096019207788163406584630868468144029813757848503745211665522559374376927191996416698485828113418760528617647707225377130571404760613650752832610291287541136576933744683721220330927755953816554517552916710391778258327246449587505155977608338436614674241766779398125582211542003711752772813049281412203066898802831034880398659482934749363897480230022984265292107766667087830675809389583720010004435543514873151899215080157195715972422206629505880924238992073094194344125428332199190454984073485100987868726431005315873168131587239302390847158727200248921832961460095306669139519229608603113459537882228599171455733245754067697491550285842762860290796292884630064687852599892318890455180280764584993192285200325473657434209641371101749894912244483005953658472656623438988610464809908871159529047548333096185167078155197333180360863262630523788949227294023040295335885001285803837690067228123093201497181371265672875248759512394883512852256628313101783222952347586649410490007704594000339796863149549320102742073757719105212252397711209702217418063893771159688105284918853865290966985081087369989532590952828136184472023384549598308901823424395281763220153477468382902835593353382653699263602255998637267553368183382426721483753533301276960846452363776965664616201807200051755728414876028785296102945245819369040284338410089727293357444170274325077064235646052885029321672421881505754417312076446912859636345164984698960133046694547878820561642987030505374851527530351512742166120428290079207232602634366664915658120611111186750037450237447905648593522148971606878633718383610921907263736426580321112755166794675691319754413223891957480553853998057140602526855651490660061306797906016222344496657248868146748955787425496141222900220486913972021909640474669864048955489074504127450986733468536446932696198612258310732180656230770152688989828424578889664896823589840093825661674924692604512359656445262046353980951647495063274564002741840898429961861930361256099904803816522405407341696026433730475082908460916052948167673979821234393080315555158294902446943777854841714000847161559429065098285299279720644046622020693895909177419658871941179856122084699787464280502684791693802129918702372731743968152931658083535597250436137311279028776711838385294865039501348074571885362208882860824490008029471412598484077406337931395258235133278292075477201051210834341739908206005894474441174891597659273260417750589281860592149779896279484496316165915112770006485768213799842886836359858193993159358245990066680335357620399378131230849743587390901495578166762994647249850881965991234092369863201978659411061498612138025866859398806975406094576316666883254881301797631085353945749680241706776013469293534817889729031368238233823568687231931829889376097161382405217910996148689924475499896373073561259901939588341680040064892956342742141665699726478872093035319502032137935533578547075177549934189987641527450812928949681466849423826876997982585541089708803353959458231456957022718562368138236406082352240979821926644525203555032347017589459589061508316610090224354296035929314769378674427746600809471525051031918595777802596228297385705476749718500304543704350172342005446530018495021554995370804020486613371353548831206464020004154875159334476571486405636625402848903876612050439822021328822650648311516472440695675635214023550327637044175939984347339894703026782633646642970226056712405249682132358801285484678540737255600490084060025549513066412269861329126650124988459839845998387815679006731983733347677451859398822741326760458791338907504644562234473490325854190036694689406684395830673198840167811320428386656455701911939068801248950058769116842010646754241155344146476244795731353651492068805997786221113170541919886374451649532647323812395192877280448553159574174229350207247804197781583056674631271362458638569165682522939184035945942579575252725639822283021893443773215784316966965157651076938783947614094114858886725202026546822804076329619158009833096031723804461580773210771664781079654274291472943847414543872744639877762674485923902272927629212223087436941773361254230397033965513811569734424437334747028053912036835877624091583743618963301357472671114114868118848419836074455234881971236319010575478300706135995619287506864861436280301883622159286378575765731858011759387702285406192460848980514046440839274582773599104377684021100782487849257475160819144695002617595562386183762146018387397946268749479823494240588273473730698816145742680813000282182152411985795258155621904202263133124085787254804133952644891429315316047464386907000149340192300310283930372096034680192860080427596947937879488619768466055784641820102183060522152625977562083570891957895981008546869055369847082786287149868556775866719455003452356472652145715652521426264839464744875258041577647637929235821786203448974659989072014148431816511060448427295426209931908707819145611440672974500334872310111396894965788109515782834442982069065555432555997203891714986210740613074441344688253099433961708701783382345079477116765832508566073242381058426780116456654182895097673595015092848583943207325655281523059818316635282775685606775172950434521479433977642131009455998211071661029126842348922708460255760527885191539154090153942576975244393764270269724760347367776566220662709444807783389601513024148342606724724362755109574236963346375862209337864284966810809931591704157681294875791896566178545198046120467873141427989710453737104064963668082318473805465891143309053183249145603931848596496254186710897253275684703760764069473852451546348955996002874927597293816313098304295638983293282810179332660193191150840907862211174888359778557475329264849028175983007934147407087897885935951233831650244700632360614835699877219921111340463466201398304537625045537058672336194674781656778018550345218739583893542315400921910036257130342535916607019836636237594222347436791336670813696940268228946603380091358061556009330422051728960546835287347913690244814391673011982062257511513571924417381610828538900212715703826591509550969247681746027271557595718796060914747751416261071627170963421608842249762150717477317581230482747861408167998473877168649692868484504201556918280648815417757868119186535014225764948679056295999802030466016697589259138981010676074221284917250814872943144107073219413596389229181168488965330887145403314212674814918889871887326238735783559598364441886771382513006256883136917757938496200549773271530227301154965288274318899851460825191111348322006793505877544399257240501054557397628454948145052139995437657993644852917399493718400302777202884163482018045716350707887118231057590034367052902741736706987879014127421874725508258310084907591666415390667844184261395983620214111325506035692782752967226499182785503752825324629491693960703683845894724473449395633612220274694518929988849389618325049628203749587613040906873350306395265819231835777562011265428523359557741608658491180286903707091728686463758000946186186676467418481950685301919002120632202391399565575894515776425664214085587491447924969388925008628892082736578044929818704996892636592379232843832690919730840991817209858725028449451339290068586121948441469481801437438070449714972694252799629428428022827223985763798287476604111318417175522461751637231178105305399697637327334518603980117905289189646893647165222391542349910562325871675361787429865913454323564083908343113478400710198899122981372232600363954234659237045717565010686281642975363658523193394519178819720878082637858651336978238796382505823075651142085865029950200312708446100967547324711395264690571237833029539215754146475888140625775731705946170316052311749391423652768762881899749336378003076290584658520093563058953987632938771226685464630626884482594672959167995588179574978585674666030279196058683354352125166765660781766013930782524518944171474508598204909273370897458390411304037844669291476668533964972591214375592529401950181345944742128561512354355792675407649093855230102312510298893865166154393521090464089020082746672523674568353114823720870566912201078632958601657865637523945820290018676533261401752320062810483012545096388738562543864550941999375550116187019625295530490625609852701936824238703732032550638833531628757418151063339852842719113061589312589104459515133874916693074152311685724723616726584463029822859688309989517648344106321013488448972877808422022867633036712511009599299855357974291842779105716602740825739475645690350376905864802687503796507932985293473597644753587186478664940316617051067565089937830072851561198241705074924211800543618801981885695122946383283103050878503721228510558875220475575186980350663092066197606771437795913494089944738689395084558746974036919702025361905380801130765620677440034396679440872470422627601336702400481467881803927925442777111403164811447652431574824833909406085919205519631981926196552279590563346887995061353522647332738835670806691176422176959917423607210318374154441570031802896899146872199895505383669007738772269546829001693170821405510096660992595105851120443073914560411269596803539560162845589609785185212647760234015590832819847406451324647342403934516957642227450937020361111107305118275040476678847492342760810223991774237825587131570504171342381582653407464275970737798583124328412262378093250623488581919999206025682216139651190237134451975916590458837277286108132611837871887544281214012828805200975448209242902058397698018663398820835689709052373058953261229904877998128396956703212397472370801445095085358866723888510202622192457856632620881279614645680081375735304507498232983631566373691819526840753280223953895969714116265697936761301282323563893972617098926151448879402063416300938234383450535915017226990916833039755189964616383546951140604267890816699414311840195542052991084834621224678804106705896757370341064260049216467534354928169093835902689947044213441114509815565984993093583682072783383560507362999857569757456764276832677249009882220710462194293164343646860009448756361880888870395225237696956035042786154041339301792005720640096366732177473520010693031779061681672615029213920453783227789069943328692862731771315065248074914515156301722709772353766700790483671302001424231790346778625214009541259050546133370811924674036378110528642272324605382685541458824766257929849382061631233608757608246081404192986797551903193184888674579833712904897543267179112460973086944536116956011162229471102888081979568302101674606988553443159384672899853155784434580794640080543385277055606471017318877310324637579080178410532558846583662330768417952340933490466859258258025250795139891824638786968733404950738447612893920246713134612549775705780268930824019618062292988064694691711878848176879216276274669349364470196502881581775274551444048760726416945670100959406592408601890705135744065221258718614079362974072976832403445842456403593955708450932733730657721268168539888642638473497069259636579117824520589616765100535604587456951096757845508591696856163296934566387842923799775638481836070772547949007556307104987007207724495019324561721595760019149705320768719291561808242351648333979048897189770826767038049005091313330751844853299292159585009564148180295641215339859006030808656280399940777712659395033028785602508963733931139660540756383654902903701209463184756583978854412715487030328828855447450963115782102786413544835326320084158087180205701355203517825656745013447778563954398384426054749854896695973129810732911068092256758365784344784077144573070551415510738569060241242652911463875236884156674302824759763863988428510680638550290058053317912800125750850361450435484128935346136416676706000222074262055182004685079600832117383856707558503221451671350156602991630084102149964165910454835095351185120292692119038450274821243631106325181089707943627061206117237368817339116906235260696614788467561392261734814369827274159573379311758850732001528842167586710133826941498911976504266984254460891474645433851361208300400960193278453790347502147948645310299393704718806610503528913072528634590599548241099874114273943680676968792761806354209878618661505570710574458577782588194581670895645972980078071884769507713781842573818056512827010879913057890507978157579664042489503901806829559667910066091610878207117365998228707728449252865260288408284490172783765849694788178668361009077342629156764491322046721712038551147256216784581648319387119794521392415789356074734265159925515477094382229938407541199398010582079908575615440072761342647348719937724297316264431804515870055498408009625968571207068218056437506998043244458725982066856571627981801528369191164686677644688109768847296489579111255983047289245836099745665324323882549011436099607171057599729702656652536455817304564549517503854615722298555433824050906822673246508832221629484418592104316677918620887609651456874555457714669628193092030090792188136345023555885284501958117732682445573797275811320459142021401208826772797443147302794209687847449988373597848094142790199976764332117356271063271593909176581711012256555882372293612081351872075727171926193614408323236920358409082311038200708840186804342853999407151886958783543653706620340820684068702788986552963684804633129700290281539521808572282087970054734715484779703476650274073188615024730772866751466890880588226360892147863448317026044808753291246416545498216105946086526723731348938602703849916125598811143026362286181321062759087690847164240548209909383967546115736334465916875382733345339668792449397363911469866008725302575653036931223001237589674654794662713792750239850242840809686915065313396294258187210500060588995234791967403886071189456518428066691797202254813265694496963173013516849676165520523461695801833448585165790650989518345304013511629336540729610436822272327564921028014269168561107940128724853321514464595703267225055988946787480385982274256306657799401512019705282840792807713510326757605716685897162023980864962742977108734400562851730940324464253515343526462268236610930402588787204186093610056031342088513953991743434356132090461863440321217625288942535300567465105658378052958933997552735166468005173533658686685025233212403247958966462328174614208746443167918753831701546014080685889245271129153239012917054411178625311703351022359464724066701933979427866121627282666796927504088866124739842479577042360216685802159072827973274605428845117942154659337109143322083062384114196378166631856958914179451744368306979066332788752926639837105975673401103533623550093732278079369536134291474339505260487825672327018764655539423874594730173444686216015485128548696347440036524581361909978198919592831503157572628840048450233813936079586376758983132008689615219892202193851204804285484135962506202879434417548022613111797162911951162397525994405173988891357248263262350368181467935273994232843723442414138876415030079824625649942649818638599942345237637989005789735646565114235584760231334587934267978103802641116351729488053252242374216671252507917277333210292373775024408330714115814640266519154297857189569052220743701531155745012883505914589677739301097356428764817662872440795852334260117490448153138582112559854225915484322525157912338567912524931452173636510225860415685941259533661503473611928295077384288146408432786506248139366714962760417453369198783563957159083425641931078314508572744763489321453277024293096208198888526084275577678752099772719487352117913258997917641061703014373851732000868981034203219905924601731285238903463465961071101743675882070961520951974234474011427478253004550494828283613556134242085798307245213813676885132351582942672313455313431429092827158607021685996958682413811967816550647964416016585483735503211727596907127623616031622617471491826110341075110070638567698140673550515194256206950892751162443780625536056725746436544250114542396545311733161186027020253791236382136074354455809839335926393406358368529431619338715826879492425739784738341168839329064017378304785518837260989993378100588293533383962665908419710263526810456288394133511869059470942007208643321941527978109800510709912497208070511272810540000621594476492382220662749473466742928186989942843422853717833900961195425277880548023541530710441814736694217274739047020310815690149711238324904780050840466828530121116809845635938534945584450716278399224404255678473838238919191389990915844062957738309519251091978225465268298952744501838879995993941988298811227668651971932205012286718099875128124606471479342220363915605510714560796748796477439926944690593148690853243005659042910499658940238525981235966230537586295504825868389915089776053094008155059450705678753335957449678146782326014356110240283506913748160273761403172450566553265066312316983962601529453025405896828334986222402729587215558408121767203616870713719943448788625689494373423791727533406831244527089836279682669722894261237758712474054812715378300560340976817378041724134409970669718944687905733530699691127802004105377642942995127487248997664411675066812767607648521471919292811080032188510929145516132031449816351430029926719952848433767309757139652718835244441169651108978537714843936409392801740800019713749952654130162039874346862852283496433476629286251292859335522751338181052365357126515288167752437208939072960620732066686945063958529004111591659425496685199625460800561238415427940563528602930529934405971377819861776995517427743472503270222908244626261915458302229097637354265535659684234265462749309785338471203605332808442418087996191484509788821636222621090319550732038269009144955397325671709387531701169944231212468466063628998241855280937817666519151926056761180871118643956360776575691212138160095619532903058383999352875857438680201410208166421067378974686530248263133468462610034777405462428949051892651267055205981205153526973706823945112195057335849944976227411289287659194522539511274479270982822488012178260387048036216418140504387362991018576224181818433036531686654710243510466135692320628078765655806308569123815058892038977746495619261006970452923878506510234389309946830480605688312794582235408712408665859774488021725592592978655524844899800302058570846313090144551512238085825481911547578130883616834754832568582278647715957879053341541586504684151975486191200375473363245393211500952747870890275675233593382041380923800707639841736016459370946997027818218853347786877009176331981177012025977042062054216340075350784159695263462388967994954477922085695700297861354839074299454510943804973351150255978682076441263462593415094781919650204355155139519603767151440318533962772609120307944002858145422463760257591403232450437908407122762122449276381461059991911153317021288759228324863770765759393726231645549360989643467358747573854127043215227896534885455571588222157847677763262820126015220136927778716619979392636380090882521445053843608747088926775868062981376352522760441020215896991554176575999558507560220408923910436152241897306367568394330651840925625227198707060954929556047858636059854672973707791791446386160634859161045843539580300025799213661467165505573162520213479444985970534399110400529001809816525116089998498042456914572099663286599236902313607101216805798628495253876098960480541530050279966087385898613242072983446390167533552515661570788471300872374820717507134962145994253350266342232550309553906222186782331038467220351726879893052262232768395039002840281920560065280319231338471639217435578531815636152240792013842748830192214368626947847040382254223257699409656826105116932878526502122601485905710495199534989710713221094937227003828227544367855942917415623453926505094481528874220376650492943544144021181636401839174561190563298641048307481549267750596374661482739340485698285085370769863319900366570207023074899035796726883505233080504294249463869482984425913464221927271155500170535531042113730170266512997396645722563851500913085618671350783966658996362220391771341307046471869289122710065478788489308279642281414155838472655965184935851695955812623391130944185947419260666347962437143200768611201682003252572132074945316002848786085728502208174638061439997497134158034312197497187435617436837225917367536488252699444800427010687225607882684450216090151111235412351899843798120056285216025541708125487632069970879350252190960287558313290612962416468598094980107240964372902913818084462509412308655080224719632692830363543345775936344155180177980182085604376967882080126786440355472382318941239788853171363265175287933905273045686296694288266090371305275201050810644304683057255066637892923430205186141481589692965522488485816176379042551296326960048310704092726305495848536888606964273440671641423455164155039322867414099718949555172784369898077927217150326625508988234743330787790411243019500465446225349277142652962900715635659492925304941891299282114511495583926230243402841232968918611441302724639155747856493276513775636567593403333652025234086302771459174177909374063122356301282869182647203880014934261271311940963631181401335095688230708463875264680539934082067736577000442103218485290731855790255634424403514430915116864231724931589174165709758942007807652154081483435035598785856785207218673590655486980220631615449143157382176897130260951627212078970889229835720569853899021015702215279519131883373768368709136238053496103776339964090605195411025777928744906233422595519353057617017366353303991579546174320859483907586296428654518461790517693284202737448908636853442163516165401161984453177424598717704372760419380740403932979518100905225226815500880615952257378556900477190853641817364512502562975132569906203060378507355333457820338850191697817781827364535151598994848367673436237132693281012695940070938354149582712745876936015726661753039887562528828972383615013116435335289884409384455989971521085655262307897976899024974272879365381136805283740916960025447654664282989495958720052969960668734272395992842629734706397026352600980371078290938450945804685522826339509486165458308262862181143801591989000936983444667261606727929606627000524636582610374361711297665669286820976777169821667500294933902833465432746101328711968763204383021038679129841732349981093215212856918520225392223666776646758609141837112108347233114175304527607794010999801362061471268324480375270404640651067424019973113406915294951239936071574151739983740342584014921886352975562680744534044524769032729646336899465365087218149532764569760584288450276391260856621494324640783666564776166909398272769728658862644471985282880608674808213544460239030202495548694042377415517702765168571753970444611039334482361009941458694807421132689160049463948158765606451568039861834472830792697067314343355978678506424972050570077239641219058197286084864477971104320235415360567677199491067105845445705302338884884665736889093695349346140324887185936382330029229620668084150461725526116061117641497856857476671664325123177689362860698640887789503270596948548331437438735545012468841718810509241033356861376605335949154529062806385480303200216526946283990105877585376034770726299862526221704041028422958109454148017271086972083849459846109680578164641007875458690101930987502234403909634571972450002392553363616841344217911540889766336041992936025992575164184526287425970991258661127199622795353395745561614993655824276267810723559164085940106935256261617545364946434574101607863383538552034479915937759134960592773338461128930242358187408321544328828520238374982167470404339843756750402918703037827325376020727627508609170598677329686697701518243165588256062619614554492144512968309357948446152091153964037527357077113362668696134430768581803539844275442823417155986513075307457508346556861071678048857680546777038150359973785496750422530970850597475290681604321535497867561879236445646412615465153154516994866113403278645384028253278550072045556555747199952691055494743540855405095690584088984625907943848903716063575407395832065835693189444250564202753313425994220825863344697829158495112263381192777224665200782720985179894044997163722734236044960878242222352964445295552281154867927833794913659867762606068488615892263273861744335710282249077514826407162628261241166431488118519916633943600467159964836924515713381263805880476861925173126046904617607829294123529769622791071003222621845658029062556542090149200019972605330821091238518575895180989444818058795328777363597302587958960626456143928472299767932535645620171648050875003211925450145760784289664166018346645144573493022781309183265231154777358764749607649932389573432812873728821141200943988727128492943877069516985084923821955790738449240376733223556116047929473121520006003019901798935293098906687658785574982299089834215227364044631393166287813475696991884813952381143037551688385382205809398820051737041227544777563170093541595540559457993304711598475785162656896578457625537957534649591468537731962549658593948717819248112758028982171193701251129912539939232001043042914846491570635856075020306531600069188366598588770357989612505283144454018457586618138615542893869636576865268479726032456048303716986855643378533627485463354206029544194338981392990966923806510304070604877772932215575135015332775677848679378199437583232656295045932944089936540627949810084991647046083371486944617682527445937169450373492366615123569763779160454537127792270296769557312941149799059599783096080409139102463211347475728044827124123054574968527489521066526309221475992086700547417986105351907541410718045373662698937632146670186880497984692626086950056439030000979987803571590150176053260574665208110097689120032218199055874821138888399168055331120734217348718569611424535692903921419219359034062106928451762318290812358503333457157615516793034730964433643946033695846998013369325548504514551206716148564125200419525582701532743980011309483396449058582634699546836777037731433265231634236631740209376158506175905091615340508001036089023949611764865430274739357487918389779228674839340069445494760649105500001304530233825089670103144931963833461366094545849383884785363146913837611401119697895995562260520199684166152148758971872726279464685511043521728513506396698124416535159300792531474325701018431607078476222329598886897133963714470878452780620787679160855883487598063072134281394092719184639339507454145503892624499999768600967581699703353783849087042254493989814494850526259493734064585517736251591987165974120063860073295723115132992355314502096150645185946200549074002836902900415439082660247753747302691930481466205737279683692801077100640539404347834844026593422714089327154189394151084321703476216654346171483133067827820800182794553376091873099372901400274336531763720960756436355326202789822824829418406290781051500388384531246574944932955664053539868671242154303275710938819327589094684051087627454617563502423399448474171500998537746917267088925448987006424178916447038957094658742954341785059602733327850822672464715229865170024965964964414402693112906500907878297740451002921858763102558246593616278900373745886541973334795881279534726426696945168759929342848317490736757799041384532887049419005248480526149705406434564145218781805021256302155456845417876454957055672661436787603329265115304008995587399319838491067737352255317222047092822962633978574710855958250471413610276189419811748444969832864893023838879467452033472131955458651454119408178745249379308754514251154883031762755336472021685227643358875101826100548077244320631065062772798743063344203797375094395770706201689645193692075605142242736799911690948724424973805871988172504780610045695158755254738420373876572973512942425519461504957995990323722094352964991427950702351412390807358688761127307895099283086863252676786498748358563495569566661004787903775097556763543837329177891375456352533427225702179326474810388122696194552413704337392954305201741355254552037662355522217209792848396725005064204930016854726576720734881841336029247712635791315227391467334545781621226301723819318473311761965966641616755364358349839333907071581235871291247128362990081977462025839554740031840209165841221927601722661472201402013849110026343758887484256754742518471252220487386547303021758473306541884155446128508459303641549118709584001105856119355034086414615099486648560120733905042527162481208820064672172032255837183823171230039351849355422123650196600385369609489810673049330319469461070092837131932729511653645790166011847431503344039024581938911486985008391741055082315558547982844801025534620610633275420940671169024584265617392558715256802261059737056538329230044983947504350798186620077590273013601220177935161314765351179768372123768187089314224045875604888684579884629471753085286472540814507697114501184442678271238693640673715424790242358971291557441917586529964609840611274839423950591190848826729879439736327204353546198048777932060306866045547798591586192678201486393867008623354146504907995982832251805073594371018307305772471362738096402261404007770862858064579427301687272447204647003052578537070702830583866096918739175071622353656363123108792962386135254505927329064135971822111332954510367873225973425040143444919996817463181145558445003761718032283966482648986526888798425019374934361481002378108604209771091649876191106128120158008708336049762021431403778307451005560660707438803642705278113791779343288675256067523728935593891372172154043984639014389413374931127820398276642370504895490769243317648952548503539682897354382162058022344856258406705864372699337732028506249273148196223981430052694996301131645006988443892645356666999411194521793991231296251715984883605119188352573073619289289275962605134490268261617715012523803850069111827184063525605056411278733736855569168946749688445059436777475723596615185465627418841177116828259941428234371986946424798832680100727504250117037642346662282963653581475736961456249211878821992765235920919538062893493706803704503890466239672195084893553580917217070111672906245120751138621493570603547615425977540960542006785976983681622342267902120796730507472037538890599205874208707171422545227935348911970056529758683838716638340109487947433434385311774837047304020661431398470950720104354162051227847675552918166257226400504617686765846614068916697160171333252242788589353143741990148948089555774901098560522299942040792560083839852413852200845610728280023811122505271121049932866172881892805403187539438248105453569048591087980367931792455565595770539910447612433296653081857272194901289017811044465166295206804566610625182533939598906876414790699263724852367766941449135007948450001138629228884736556255688484320945131625679715641266191562299413484518190439992624655949605930478571217632965611324676968896319969465726528048509360368097426624203974592995652668712735556794626920528817694798356185939396296319416205324401954223924188526131584612948970460350953631992272846958764089881058472446309888803317903803257365188717354008114604249467993251564031628273405068036132685562087696140114624555635132901161840146815811912107857696517444037019032343715544651745366018647104716735862609969286942874243474880751167922227760587061418572668678269170987248441902230931249720773020028262525173394838698860455937922971914446831504126834465090682699943425511524748619774973502211685737953917966313340758428746467166993534433973451296603450879394786839441923671831025094855785036958571318937720520359504159824798743030293486967593136097753705122466802695657288809281490029387033088493479170538666731447621671151070227088970194075726900810861648038898274938646915690957919962764120278418942455371870786650169972210431717587792774004256962332718692053651694109346317054736401265015451025640986675486286276392361783920283421458398746134901751266071780012398658400997896351356685396868616561381763171005361283360164803817068103710707191757973091985253257404645146833066200280314924640312768586142471224466363939815932599429029761751107453386588405029229585507307752201420980346389730804979753219687023441697928119307268500872207690222714728846969872941742670880528306978917874361278998831549505901534844019170259219365057060978558308013896343554951589543583254469713960136393298739145700399891165095539759824095145599435898095362659305975922932353111243338275572654707487615719266742407846989949564553319131686449879812069210455854278413000336272389495192190603197739600565286216623429371132136612014235211704238446904708119078935601033044909332090425735039451948210740942238035533589896188921650026920504443365340418252669556352497075985953670039770793036328974794044678135682660686297422082800057512186042050416468359123843408024634632510169032382356112609535393346154377484622063322238151411518018335773608920607254032881017427556969485383656340673740387446129888386897200752551752039173224102009861108191655051888701149899082855471559807814048580000878879512273366994869179522524464217608506160854325890142538809183329643803362379874750153898041317683926137668421430513104967689113159614622078941859824467492398879302003168062674007207054382399852363989239727405285027314508604266895080682959514411794738165826286738866006799649505035145159146032153551645017573704045205867030453172818008361236100694960391786680895996016674363517835820172799295501553811111772868054030622739930689015821591187696939442808821184866170640109477825991515642128328929265498604600957686393238041783816637317210697330653797393033632874240931123848536998472552116028606130808468153321387252599550434723062473523378185786591901713168977447235118925395124219530262653896562624135299784445839599105400655280626438095766406893042503450319692653472742650041825474206085841022575129508152096033861644696316983620811821453771929030426169912769517794695041612281491584898336959368483782745964713989468758285065540171906993653357833474357041854637428077212839238792403046890990244690361679568844969147965703652482616380609556899235266130030577058166940147917180323805304824116837183771947416614521938658050900745418465936229687195833076578403471011643673671310208575762823957367034866952066734208086187956576551288242744390138902325315507017513459304200789970775257623188239636592647347878001475849737838611858239830682657730691439402504847642255792436004037166004537787489311176272823807673990710440711538321488067151830324384834170188257313633010292987788613189575197118141080072922344570164196538543983682335653416440769294546248596836780253592851921712949354451534666111183151293389750035127154575615418539861131952019720336647447135026823215661190682500763695355980746402127953623222226829445449437367690466899450437062698526821860419182673645943596476533646067676518535230747824008337820727292642314605976652815940347628199993344137413073684815723556859978886828753054435111836679026573079595219128973074567523600377745516831699976103552587658465386721400444819048317663885539845135923525219937558781030954733764740383744858754405447022165154879068330895883666363475869193703262561737145886454201119819336883049629864222950991739087498809675984100032948545095860581152530976373353961441751630363316973868288373588314134583574536176478338214570484998434739043688796960801149723436589142494757685806263086751116592883660065207102555900524343261723996061019393658124079183523912477495087925188188943804341673159915538371371772267958931297221467063662686129318184842327906660365093025855567085131788971248996285005607258490469285799135300377080965730880940334055801680149848308372428995996532136026438068653813188016702971114778519028061135105536735663694569475815713623631607479106049652323925539478293420835250239467225443769694414258286519836593684022038200387510313866847167967658560404697992012294472236316479892339857094089628457666272304810675842007715907359847651111382558561806588675025072239400492489691386211096471458867980221458675561219354881822167863543953707700490897219505209336780341639604191829006651671374789399423205976354826405364918338703051428875468362258350228418319909872305512201616771303674262866005906527031205801248945732776754234240332130363620681730157616286659466910212713156922505728319715912828187054426582555761139064753322913585809804629814066519001116747659499251901782338615635457711955323917791996880656052405751154224368252811768730312437210190417309302293965573459367152595972826132892476703396218196336120916389715978404777665399189441127920766604692665395535688813648790782273239610801826467508274325126711100225845036713931612739219623755175333106979249662461392695861283237379684335479449667374013125880961920869303153633384187851316224587221984171266672598764175244866197616976664907480192060672730551337380840637516717698537627250977979324445645745055055556432412426648024047133342272329847737727311420149445803304294607771738650826752983193521079197436912465237368013134751606484638036646594736398950312614653288984696931771331287887073914088653347418496525034273035207377065594944482143193439695636394448788580722714452826518118960073663665529416020933659080932969541779568228317385378207845832888347541712834646028239589767495755246995138825244762740154558786405439145548755492581067174425659676751332969882757262089869932047885428154326203782150869101732670920815171240639358719765528918306288168081438376328233947558027386264524368272312520532064254290261855022730109452974436618410882076832216295293026507745780849810693965649250525210847492517171003062928695362290240977828826977446768252454571911327853154086588246786868319758814115623368225218558737696482815654639020806537614726223998267428196211325602868792949006065260418386629865519447513510481672657982442289635578704470984795530021904258529097098317077408034885908877421434832902606998792115719008573976041351090444340777106341646645684969007461681239042191393179981800833850448236109357555717356725134907287621727788316092481716731634761264807287049266206695499074896275602227019547078376654287792760776817255156676422868472521078896395111972950723962145282922632712234726735992110345641126236183932164362502540504411233231889386075553662723809418654341444915389373033389725713827182852775632285855228461972543893448650202902157992141234369834923440616686625583765117767173131971675796441534387346554497927582638827168913835014351441268826753096785257224905169208645457943817204221071612812763792826722708932721864498600759564891267670965857099480292161811676355412295152710587382766773940586805396286762969300335272772082595027069235290064630503314438024436377394181500093990557635653050642299187817382518598892762349175525699886720534052299279197346876551561447723579534017632909774777086445480037630950467712443796187437272865072136348537171072830353509523711200977524997704582279607816705669998404847682331864634098090829399177845706293950975759810807619416372497564227226017511716313608948968342618321389443293441505327770010760955848039141649860331790914682948423514449751879966657638452260738881812947020202894862132477180258749322407757616340263849481701065691787758667973867140960992643004956753920044198968259442760901564495774792565319409947356977786987707704936246218192459510696495652467835366823845417212481331879890586683490026500378396608064900918539271739239889931673525829323165536480669966374294074206693832294393974330917942096386459437113217022620143678404892754973832455257891420728081450372983369787065263887990879007887900676815233839377825474188544877132239466506306834241092780065903780315161874787083045457619940065977852332394337848543822758570835621438282864558060692468704430752076803873915296022989031388491373571459251771671250960765538155826572314399784962696890718949659471429972098327069180778738217633990935820045112641666928228062172503445755015619919913359005254592367085351521847407114765866846565290019894562972715622417626885942510568619726792825671336138163806140225471501927386352457129121382104507835787111648777517200597725956716333340114270447926258242122974162951003481428626615203110976411621266931748784190618056478354207231841216742377210102518131786424891421174413772796989291813285118602207321837328857638793696331432741415133712005079177089870939566839741679767052676084264926694522944590552560186871581068170241697684522973279375302709754496980445479601814635020297968170865224163087716946877057916020533030437962786977588917179617079394080242192702451628878281574188278717888972463363691148169411137284927449626995721742519788219236526446136470953785863495297491367067405218483369602401945922987435255973390394756173641092810433065630235327182137674507807471049550761993925517918629606372324444168978596496208908731662652301449715963244582459480360909132325288642109617464414471800405664769368737625567024006682919504324964062592479184679886835545918217777034208630942345975489519495721521883352263825568825087147970157251607388110259199685102939857466882770463156393615073602526286121994043503279688109860135370363054598716308843911935135076185108972297750938568250083837608824797798590384918378332830903479741587217244407204495897831538916023115904810566137687531192555275921236460696493926183716074665957066851544989275705359787748826392499579848463001834840468994611720397821596179696126296562473347832187795160104369324150043979092966191347799222011309043572817240310833845252778079856840223692476863395606233977865195925039017332694259604831816751037427441773718939693370924996190735142209085663228060587401451404299880740503365977239082866783975843048521658681039735474465267050952708356729341114023599382270935621699914655844357494939433232347638047201395592558751469700803839608473135931383551591275721063970385832711381800869016452933856628141751503450312913633383095690607810869771068735300208572302064808653860173753626182978261668021764850606561917588617366224093205604238336782461610127352938573016117555662833144198580563627823970473039671837048421859523322591153751885927745818678119659609511300372540083513005728052353051198575864584374683646234777631536004935012021902091404178232386232863295671862716685793986091580905448164817270799538799923296398147269997481352486383680371556967460647107540371120268362513904884935719606268481942279136172670002656270279428611706936571081294335437275993983966062953755238663587336214940379168056528431360238935025430609027966824481369130522444421205430128579701030389192616461099575030544592770023060667499548027031260093446803147053765556954082255104404744279151529728172574220419460486573153131210566518814539708091676640613352643596806960211264162727328058903180457737784485524918488471837892436477689148073994904091947746864411473519837097089706194044841028716012014999323259731129877869657001337331473203683327911942400882181096328565879038671751754373229307813624833135531967084185877533391825741034063721674875812088182024984343439846474986521281997015014333034206558500707038670245921529245291329125572855476932885901917768671555134548934719253021074906792447967961547485177401656748009670029950919145184136267823491412234045334358099441239960327722040299957080793330084691223001900441077640013018661257056932937778635727286348465562599628978116645368841391365244144622368831431894802306538903006739367939503120200202294230994328340162026961400682495103368470794428792017363648201991105920771507193506111635519154013177455309678445511547427779151405805879078921367024408436167932302062261648908515936337673767121567207542281465364933448778660657335543669720233561026667651456029040775821999750092060966825651144857745150964965083530264036207822524335399724076424150207341244311948456832156038869216029041383644298867607190740155247159055760543355907991658356845264807574111981527951295586204875802222033695937256029626754831618279339179995548607437887788425856198854895535633267888799028569450613816143548449305638474856629604016495975002183189900553764196437469289599197312692127801714039880246792089236788885992753631030889902651431292516938504174873997217691092708627235661197554688694594800758625896708725703705771616621102232220182601112579878194465221646683468334676508535187258954895710644018970581240037776818658983181940366174860141366902120285557202807496492063540404425499449185128270221851220333214746142913259737379813705586647908659680859351101148579143810507094355912043606397885093605153816758564632035445561144742063041085041963922350295229113908683548456991443806389618341797622216546573110078952204222294716207823189945563754275215153240238081939713799795198523345262310206249495358963992907680850516977134785356064682450335268714678382792435729967335278783522569242119696331610973396235924807439840062330399267207130389890003346529889903551797400721731694460726157419166376805186854200677215355866346720529333095969553656849181577644921239923671261911134771335434999615634309000980807483613519548306244229205325846358921396092141720030551420540715392526155504674128891146210299391616092766470452986978060491749263139842219230783300499342867683851175769149509898254300867579210155753215020463428864347560590736644197982382406833927319314448050727662741947799482465450087309070593421063123553144106396182436969736194930437652616246089958727918159598740954481574309726847038707391880390998884372587358895278453951214971361342389154248733642002825074680178982544996143486332046144995287010949660703870780968203852642291205080841994429801253945069505631050550684386884484136374637262523303886507669829936057213208391020807545061996639347740843123854845325820918943443278864320926860132513014940386306419898671016848156956064518602665090679816600642109892061688597654879566523649804001991970357194912076054181920836522220065618220235102336293892371871401509083667079478012793647169060146609390545690672248584490476978754872104641257645216710360836589366651935172780787443107556914295571723500182812790522297450078649827822940698650675010622689507769978324434770680112299836843152012120633182294231115747821730217031609679593478578249539804398057430164725421514846639772191766988621341985804406594412953711918832371472966268610779161992855077624594386363058325186252231348500386245505789022142134142139341440623352846821237284280435915845850463955606748567375019941277504899397938612956665674852296791311852515404429895751642028030856035561115563005687082953833167133601591763705537994116830417881794439733697414724052591514357721379340809539010411821375667098889434525088427375373705824171942889904110818702912670159083932469861014567544879003488431606116740769048825650423156168430846739816625396073809071539060800808915099825002842286031241662387027579337173390813164349816337561400969412731357579000680907876825137703886135944737357742452284970275712637693069498756265624587505982321102353979516778486642732969570303421599469476527738133270700572242634989122357542326629433425854440558435479589792218138826590944749757875617713259016506592580518479086692205685125181202673748926323341208676790241062400062723650603664253618229658104028142569103672818858843633044686135935602548145780305158564539569158957308566597235990696548853144426801477634788335220377898212802908895507734409132325049396971037926165322008720537964643445844726271214136680338203279100450273097824941574494471813846623559549441102573441486299954355184067974283116376547191520244135939876085144644373587834828493937214795856769241118531834151807832573121751188368709788272007618645997584266972747744668389597813227775301952298200043312375330407649690226653617551626926141919933614222177248906541030407163462355844393094399313371741235817221103547610459239223647701018316516387928997149230531228272129100941533600099883658498369927579172252149351204745113375312877942428706694609729209614691830633706858426644326677921541662995111027175709320914981151592590769188886279454333177633284937683902540458256936274258252821649927178916570594869072432405981233023383007436214914160332198212623854854613958250154086782548850448655930605251123368399325901521364040224096598696044600650697920957746875753125602007283448511314474347725483751903591103160229966372313385499843479653082965310495748284465637371133952521276387794691519025694896398413060998806317896370766801182220747018096229711105583965155288962949403529760110424658842952100608365589567936518089118227577984466262214445936824305223927434226933569234466604400758967591130497021779262008913800042602631778454861716144062545804415242949692012951211692090829749583034670838705768257374140733048956216479346549289655715331899216590086263580876237754460084026099676877849866830616756504344807415327301900442108694211124719798538258693896242058659246474554633676120255297163384925477746824070832649627263260090062348200054463865371624479889102609918961673142271248869539900983663416725423484631898650479315419016584720710339999843778795999373063756142210962933518232801008897719184359171667424085747393994744319600489230561662297680624023513520682365655573841107976742208830606394206256596522441013694041809096682746816837049872344587709780192735762844485075733438328779278436160245853019817952486963293636903618778517604788605336997807436675936121560343096987452037901913227730303593428987400981577783085293946929841192265858238959235082376617111976059791532160311273599723336913486332202625586677154587457355996863205342220033841621501354284411254703933342276568049643920215676525485088012812660064162206271958121536903078565409738496582172465630774051867006523627787493285807193421961691534074381551463121319373997603154382913056523753678439736944589131805950464265347193548882556386372276908851593127962964260218867403825211782901140556262380518588408326794810542632997973545291619576292097048415711294855307819788009580470066183388087644185943041137269420950813402522558567990380163188177816428421555578119661498731084147455541891027675734327909199833949156779685199639610721088825785366325091972512574684121599073387326812593679159241226126161203702890591223140593995847319628886108357616990112247179492252452965842210157209717749760287441630070553418504139758061015619775825004337794064306982787879871700354060409971727456520432001147596876689091112764964280086172908484647794773510669957633640698118337495710662092481456247340415635355891275143871065334515253944636115495591332321731835536642120108102069014453133118609833315521546193480197906918161259782070408160222151955782339347676435344385351321382107362795500116066917105807106495679773833259586421645629996351658262211394231959911694597320475465659322309888980124905031852159962450004789988816249211015831579321174668568467596704408084770397505947394396394246077497362253188596544890208941270628088088094913278458789521984666064360453402279313189884605432025818091669978630152876566648460133621783696256359153698632231937996312748885212738926593906905113420072918603707207042161118493657650749648871517178153470279615835039126155354836868775450888357169844156521872501602045027621377649038712846822480541204758478212929475940011298310330362831333853841081045868119479299277490660676091074448596876441829061950153943161939418243838328358919869731941183435084357499707213949529070845021071504006909498194595874438565316863968729166293405491991555405910988519843470220633317075005160751269388131216503467222000843694567584848740228174896948980195019955996939032710678268640913069801561676868700239634798452591652833793412624633502229913358128569371524069289849659802976195953201026264686143625374023060198087111270503851871617180238621031537490226095420782631262115238029360485402415602076283478148810718842783008346804348674241809065087481291523100932027039693552161135679667790408589442878184817953022888612732440899176646356757545298576468919771759217876990610037799731296644305687522526447485338516626606589674669457990892157580615460164764763421391210000016007621247732124046024960370891299664725221329589943520344310934104884617556177550177507479757529622499409039551143737753794614418800292523225057304833715783126630028209096952075761201669909293845773327866509004120904883158544086331576942391828282165609703917543973781341758549189148918055124110449839895748340384208955132620914635990966646735294490332795300631566744303936812759078278078820667666894717765075855755646680968037465421190040016116287631987607372365313215922123702474140530518190469367511412289846290652886873106918812356432777517628197642420591964957837847961038682947689821259483548137867939820295068272182959374825510586478671965802554976025157342752094175033836049994203951987490969420537578624430875193915150293431405500146763457812673306985459731378165615657856130664869047852200037022584721090962932291298125966128021327722310606847956065281789112679985528376126082039755799648015916328822304011352817733319276603103105319330826574859208773461645167133338734192858190136991014743608717894000655850658953719964342519512602888776445854683133987784726906170729591612139071794754309828303994825599955759085633556809029036742811651365050446544861188275897168404536714709324029838991575820001768596115906743469785554982246360410744357257593927917747431752152745200970489849123798409936915864626667893712824537898828725439431138039812484614880462761839062840963698402453307225631036184559623190171396035415981928476531394370617391850798435663462951263207270386596815136849834453255119695992972612138255206357036072976511765590499681948812210516163835736483576434892893424167915747591182796103873576760966644714094456527261018306330460696555939657308064504687353604045625597242218378467300527737171973105183303394921240250821846061176100411310887424842098448759564462154954368595913645800812938503189255658951078544839579907394527243408363367171240428837423187944040438004970028808052125373462098618969094012576421838994293468310668701452482187743681178480100344925893562839271011641482200252572768146887426574349564231188349815055905303760504729714002033835889308637815880169745220929120277908223682832840815899129806684941813599878484261345165668213091109899347128659757543659169053134838149215154537174907382153148981562742499420355914875588341511059271415944469337718630214151827297869492857069431441284988958382143951782596787185034621101156419108159513442315482617686002472828010949607520909330531520181453107240383543404106215747052751078195043740981394417552586465319992280139483588627889007957616318253458351906777418920039388739554738191858507583259361100983061313978077662965489960379973795673913570599693167431184404978326643856094023621069785167628445842575877918189673870609506415070129523025246251566100140789163621651365799861099698357727258520751150979946833452857048653038668263889153923534672816935181482503355246881309700723963938260041677398057587434415564900227036409014652121045024089044369014405194584345596379147032458374273105482456166930722179678944483116952100341480906508141687039653699315936018940743937243953482180789630538906476262983300872396502661482602836660948215066753689903398364825755835139126263993296545256394331685258833450347277749204508494291638180929484559013033198922134188138295931907625732581642609748205407915094874475195129928350587712579399713869745082208197494285831570113192060898355300658713903600252600056560445702269104447707773569541339999080111194339116741860940853423306612100086179670406317377013523483297823654048965568669881202788406723815853463577553157101722392939454751731918304289771278710626285685402445308454360759403736779604241097048788705091979637768366467131321230322859000265044793674808452028532600237506700301084504126415239289219374716094359237457923615827860135649190340124613106291305936878333535343551969847045922428781033472789289638837295427296611940065165132107984322688549832378647121236594816174206476220574558245623637336635872124681720767449848988732817860287416673971019017588243520618798002027075747029495466248621649525786806292648087556360196092059175880997846512844080634403155880836467427664489824248821505201250859224129378830426128413024818085937368128566277157260847812548533817383284358503358810234503403816904402689619621018815950064564916834369571531299840628488241775911379933103406063640133848152411995816365555306173878502718798607450363440311227270109013215732639618559496230667841451981155790436634764500563430635446386050225866729792594831829034128515963759869331930138022614059876318511178900447273852290700977337674915215596317336891576077655469278429183309597313326618878045403015427018276584734482893538566610918757947002198751412670055195719479401157718979874437351654426150606485474056808850230540014377740215478923544261805494688958495624010259863691280807234183737615252847718421364926060508337152624978885312279448644202572363201323551216692821979772868265535143671254228368958627613828448789883101425802401974088331471034147581598867789838974065208063444285600868431272721940817425042462531683214500335584146269931305531661815015925713237468469317569768331551642252412546693155297380089274236405401089339496475431329691694329150196907592311491784583974780963654063114970145095876389693596905365755216271506839376440887551195064424344910222178334678367406094336523070727707427411782532876987606693915558309611426603103186557272253069180721162583866075985996885316514715381917076669442719586927630860145120899271094389138084405530491647009991692814800705212981537157202492046771513829307754545018475108887413979848436324511892531950973691594812887187825182829593127797972113631801008080410657159147763455995438874064422223520254499139438433770907257627384114057910344527853893165603393419629597377433389281801390143442639314697421906171318758512640864458161495734395983019553654219448110865599921712503067533876029541881395617397930239099340521082159518797220814244396586188687107551121840976693774076878415707270684272453603537897282148723080440465611171516276605262675168306130060694158717143583913253809083707322162547716253766496125370118856645867196362683258226531122395122322180252324407625280185164213661248088511239577560468755815116968394370164673359537876292876007525228458269472588100507406991841011063867874188593102203855914558420340331349401995925479267905304319889137932170852626810272216164749421961227620637888589513222461165002549986887671340586445291214519074266427411700557756909925021104533323341674751537789705518054455000403934639077471062591291418886660567510696204566496597362100031070892968401201827389432643362420486839045547033922499865376733444173164704559016645306449199682719207216101111247465357196227044749514767630422084303724147816562474722470111232003111793957896194786247412804405577881798080997826362727303787912877575008146007875043477375024750478795468224718458192597253303654858399439462509615221916821178642805540952187557779508950783382578439529197941782511266047933451262767193316317855955206660082586505589755005295641601580490416036745825726776572651480036515953850225441757852614449003236708305647925204267821359455795306739607016582252100629693818614367496163537406202917167812648653552146328764731635583317139382394554566337791678495572091268170844997397767946883793754742682507558392183730876689550235143759658719053653851649172467244716138746079173620896509225618699242941760649090609232597911160266407269213221289798053375493944990823244786692304499460061102010937512064843529028016548367825048044091681956157250360583864053816034112252869181184145761898344637621683125496229968312415640328657955292007445843356673173618271114717921197038738364911693587424439181441488345729488552774325215467527995337609651894390832210544764952008235660931483031780666552460561740266236000476156465911685500239845470170821140329786301442710722376551619308150441352122989653971504187065594595672218504087173671197343072228558935538449379217075839514071400491915290974849306979315329958035356172836960426513989886078196968296291927867115112405117404972105240319734556499732757202470706141256306451870471332394284851323752304735040261860093494428169926998795994720210846380672506324158847098052165437503696653645761353326690742815960852382397960567316021003716723295564114035359294214227717558843166915270403595810760403099066412145209024602486356900234573379209859451480287940326794403933257564497376243972869602640351580531500177775434788796603664478667006457507860199289173190641597648813922328692391629977835081923008175871149702187215317508432861194714836585549987551306688054769536227208303598659728035999482836112651074829681334460118655719785220405011331332754125655493556827468436806648315501736740598063083697298130369783645056814158923319701056434600810857780215978946719328762057072384832071009365425525987747457891097457953150977861389557256241933923799995284373133795266694647006639743171575117912748225336475094099960385100180613966575025246996471224730417546370725102295140470080583144256795282157078954715831085759170377646113633953964528104817725636242705664022618242527840797985716447189326089991757666618566610101062779590652299548025207933778074591829883005814892994814156076578838892345045205595119553493261561682999815962035401083037906440478830307905146292417905935186754981660829872725813082863700304507901136936001214572142839280665423169106299155084682715054123695419766951414419172890701190183080664079397753290766317149548639453210338088544363944273922293836164845390324441895927839854749863163250104761625138360916766145153718351844948510353420519317203978100821041025774174911956195581316950333440086141058263436713591730613261110349595377394069165874380825348869680453699853093758997187296911245440785926921333984337407342285268259118335679942536155349724001872225483618286604448248311255742056595092908945579331487920312109002473271998163336882500709490152578035308862635369726232651625595047391706796952291942221187974378400167644390278357033819301881426599972681241769158132929941682088279651420342491051270102491674028177271663711399314199311479618010184087250850116095785592434867428869363603720521026872604355466825943900838802555863263969607409793831366094739370650054505492553976100804880180056034560479064565163117150469355769408360044293940390439787955229421006257827159341933030687605598857521540426995348715422711288577639015943930533905292474150807379401783826136580075948231526675141038169810168457982555888485650672919817276867727112561160449189009637943984383664157427463023199688595151145254838276035154828416168506168494978131831278638784919391932756735319756335771913599744448434065314383437010182262509276280121449583679326171261520931216549249495610593609219386423313127283808969913006697250496194743599431232458880592944437152776008121478495396246214759992926546860548400399008177379664444892091057589747794647286310597562982932783707690762567028570442941184163474527835637561815909892292842027370387240301199342812315561902062253873487976614712870530322268597861952058702905817943872077874660300723026795440564489466404281895482747963110980934228758125249595821394721053095152362892453827434865805755715878045220348286238305907864572262439209849018793567519326793997213058871035296099921039708595089179970979607903380452885979873087386955839206771140066798496381838344157804471795823789274558330027172321424013506871410541581461667532340453779959372140402452121550247526753474401904919609517585007466189510410498255651796262772813498848460446049838348758993406102412617566826272661932477096101284531302512412605464857408860632630255961554240381301649615462899222066452632774426332380446483302891013797679366461067743225591917099101099729859706022360085023944549827219187168973481067662423768551224836090286121734993464200303370036864269510233952364093291334142119593488191862213736013561450223067754396145859130722375044646144353791056329505860970456516034442129636204691701178030363329028801670308230119776464718272982496431228857198123317330920437941706343983928504813524128104704114689934595017037663432014915931938338577291518206137941166597802293438885215536814314486920698476031454528225941894785075272289785925089443853856288897782208453238579919635507731748800579151395863543124048855299771726361504371826368843545059517231547377494729074899663528085911350741347322552745661138478396006354685851060016534374667869817239058792127943658619220230088146258594646963266729418800665780668301796894573545629910278292591947128006329643247551542417675677573156810501497847103591965615164978770812179667840282092358576665641034764034981975565722759173860947929884728918428829815428278071433125897730750291516943771479107198046940673089263163743620135191286697169813470335677011654044725024235790470957926332525424549007108172631096784488298001604602484775751334907264508144697770792079067912795156214597079845013586804367069370520295280333213229154696533234935261400375493894734191495655323163988954524613255458804978369364741943810703079127865745805553449219444948716101179782116153304936698399799324963445695769638666688838518718418996311593458977315250382504162910944256771109525939023489913071333391622445206950737482887243696664535563573297268308906784347002695287818418880347834317706674819269561265894139149609892083400681777474905818705075087893704190807077872425032204392904099131518012784618025318279461581183821219185126766215642632061124700292078569060955439065226765810983018931452824230922451179881767176709259728804187277252063763798060031160311828672219811209120992771691125232842927674155900650984835354362093264385399905984843923073089994688660159491296174173183909355687487884340950059964969650063880116683327316855826635034505832794563394131553040047670952318292292498444190782573572853763517719552189858478729903608574018461071804156962048376746351313520562262530830412084470112034714924164007528603246524389865504085490148887790840351896178157543748950227827729206267050885077082595277322945918731054762466665322551184768172503828047390162489951345107146326509634093695295608734661621647883154663076835422832796588036669158225554979793407578498386004285088117676825325886988213335567303072751990021307205697421071958751605814382417121500817307347907690498760392721344953506814400153794867470137442178535234327490963034755287402471730820567531964751979564716239698554203546857888434667657745299400734301910145840967657864664217111957169480912560161134324482307162398619132869150557508271726582089262545747747981100705972067891021770583515245138705625746994727419820002293011509280022871302553511871443983757446501273662965504628294763207057517368463664195349193003246986743701184053116246854799110751610458373059645549078546114278293701911574193550271131032632387648977712213037400740367965145527723925623413562925185739660207864803022351124619183704995114738155851468023923434154517312913319534250951771334830094516006646174542829328059281375776569666064202420303834211779537877833978103426705700366473276973031957595023025686509054026705293425195146084454466699927124562018202395115679289348172258719605154715494067100525707603707773713861327328667551518455155845941338476236162919870726391948419258586888300661452869756999902399497584534951070353731890647425425442875604185696159372479537875884582056948926456211898587684785758097577846475503327967567847215956248355352958108742250380450450465165712095340529112358543912883366339637722162354444311047754919386448602148315690355989432234975648183558489946006663048659031384378968205715995275880706666170044907641421752470439018929526135295104433434014905997410629504554114893645360332339036062310842275358863781419545966447038679475549337717399880228221372421968609843053207983599760570893351343395710338203032290076918024388745254660548818651931566924029292147334058874450831687486438346367888388809785806348972296911521008865710703671426262756312007761120649597590952391923120935741354958881386155750316473568265848953194594024714193017265035705048589779048520072888712711354291723697172309764284814622657074274931207861292117077324593402125656520858033906076005818012286678498047054758486593844689552674049927565263478840713460891664121627369390124061996718401337797807402162980030340187087771626927995073822382035188680604276329121204498482512356804258053360765236093860760665035360378096832299995434328954184255623364934999511319549034994800970955985374440010451053390085853818147689847487922548987597257835575844143760231021315779678116915522636998558510988141875663042983816583079366582804248344525610099351701153319515377749494555616499072220766466833297814804834728671051824723698410163704113145631500591529450063151793200543598727348048335616629677889557582416883831604548957426040769288836930540299612561853337921922073250665452599488518195777939221304428784242085830186884315245016008693278539445664591235833665624511630493563106734510307252757895546635162283107048952547226597041751649119604463624285836645012665876593582774062291586550117277532072974358654584078795054354236356907223162063386767022201095720794530932357541066345210103917036833802196580270992336647394794360145656600014179370203627802427712444364890150422649628265296412847049926067514564064435864156508372414640522371207251832714215052414423766333849576697903341681119362511227973758647643172307780458044551930556166442400813546125889927120904505045189086955871502668905758548323065256776663705923500552043991779571460359007581388186747263885724070557547993606672096868870749633490037402128335198035515326823946835188750828753095318555417575734301150674586817708858245505935459526453670795985814834706778685773487325699991969638285761188374655574201138559669641183724088280112510623046361760625081510253426733254801062524386526636114969326811643589599504020766297654773266765276574292737213748114954082257990813013225144068163679590331103371583702471719254649045618042250820062826646240188382413281250209784651563597051100814512033303683512889720651512556150835931303574890204687330480124571122413112128288921106058702996572883095581445936782564024936220781505075794977768550012382496760145141219997708390719077576976808026833631801830806478150361433158004346449848514028245731286486361252999594478804696172362968676058287801697479631888564847519902173535872696121162595263172010071845194543492728637139805030356760395448418651181139131313912461191005641588211417154438989325004249166455219042975672899212015954692735823596694448762986001202575605276966313514398903195858729078575835493240453205049304256579291114247041241261131337406417496953760538098520666433039944200522057460069658645961366868255419926905658270773394980289275444679457480657188068285142545389823477842944611995143425966302297555805898151062845203694188399788874976138909920057173024368834768054302107265970806037359870546880336288978085045420215585521532577320122572731159475000322968236518004635554161757804163946576188795636714767890396097442751399023634191981043067382174097006839685762095506094356500832265847122083938200292777511321793186933122002982534565491362508025515990517240057645595069369102500138460900370962258929415263745251626522703736069365223726051715665072086995494502131958037991995026138922392648758562140963839220667958230800374743441558159105802091712778343112009857763050750094361231877340319644821079780024952394057121084567980949088433313473049654597130238258889653969256331346008721329917087824462753600955991512504861299558916270810635364232900939452582283016380496241344425742126054380353859583507888950797285879861662434562629198894291519995150185366789651758896671197886288937384097829684112819555376109563325282121866164000341459309562468018342816206800411977894180181216122193202000070585142554357912631745279819324370772496256248223817146292472031182919214566660093064253247750159195460964259291620329397906709223413492132760070971801047728564066548496357404813713500418243014862533994698122515724698065255463280753696202547987566460297054717537060170183191547320895879753575471762857128809018288596969528412988501589615906334477354208552522272574881546812816208172166039644786379367609752379196609199732419036749210582918433676377026640063492910336454825907563101189608776617729820671292247634943966923875926529927347309903803504141881567069768230427095954693862539759621408485544009995083998096983047292104793180262445811491931813321536865915406527187553175493133439660069672111883281019394104890222305045139715302835550807521500715315873286332313213242057831101349652438338392287959612664597605171879083381656045533040266207556325498049896888479816541711954760747120077521151151065069029317221752710594938341154852281187786527565897402085683636264202777161858765979710995559511527105949501316925940466976849511219625682065032221740277777303558896035723545857443560395367950272414054715812467903392429849960751538130408951867688521792467403693822452249331122118131937772595571817203387785170394769697166389538725550621597309120131714585396702864741539038439983891284554622855535015140811546587243132149991781107458460852264446150638405169860695080737229876763918343623676684810119591185392898022525263251761700662839063072562674853090941604241372127802530573228440329210115063274608098610205298526723195471127230257656285669286599011563345643790357971982320280053929991686066232713243744574198831157519036083859206166087518832911466829952322110851196770882605563522293829423973345360814022246621930488197876198206153735809300969497508567848305563935873581137841410800151529390718060075011828427948903950274843596861215284798178116122049467748703295708852214558582622394320610498724706469065338615009764569336047210111958372065875356374550600479441921829672277155879756337089727770430785388661568524609566304893474275820561127622352960141301329645008211255083705957677453068178409845011540650656671225361676286986577636011108621299495641314837632633785094211972621570356018868059559114549337471820787467987391316090780411493535360686004715040831343103908854936565869664146823164585958300869453858011506030374105076272614676654206895312073334056072505565587807309722900516896373914434975175981651421689738121545192011569733926125113827424254066047386573735702717380047963764837122676757894985452647201780228459947770863223318617548345568180321276442913121978333220703425624883423131856519491977244926350158842790004497620545685407025225599429667958057884115870803733879974638095598010340683622131293858151264955538667871814360175664281311127915775982824178799151599134989092439957449161897021707700292879093773410542965813130716080217797241421332134000636480089755567890549681894518462976897521503611957452207482862628414326141331892596052154740380838342067721900989230204455292500560345929980648694282734889063280602993033280813980720148694446999906150591589027254499706825825032293907800309544747583747158152056897737606852562187879176928613416449880339298032455802494462098241747443525630169461563905927794825413730862462238388874399883150221855611908154316090334845169844018561075736730477352951455545859435968533176627665465404920812014781296325661824620932313638659700440915260455450646079384100479980582418254173081500439236751198538025608615647104863342844589547148937978642254686476695454469606131376355268416248439755370389358560245188666009172888271176957060793482147204026229280390409548041564549168965869850132174846981468497352155579811725073068126437479871951645337166883630465364266197966178273145341337720664615291943113328201673857178349912954522485501557945607933450674359495970955896418432584001851384319826502848614606408744581948429321286004042482858223000809062091855673756729047194035768017839350926839436262422181646424500748367536100595533735614561661018789424061908469429913905968952961473093836041355257674367883006020019917865129581593691912457092279980298159035977097187507407261569356776436629460125055611275751097088596196273334102884076690290119666558200869439349916634956140425351991534235668914287012262359703714023269490947102526180081939862087605039033841048185937291941054846875654464725810916728379393363400987971730843947880952152011138249858491783915660486672546015483395777346181703605677346896983275184050945541803867185525191954629758370497535886300453248896988333382627757533191508226229443991075161248961634426469076477862846804102705326427474350991673119999779827279232958776362157494699216379532012883833710847932188133171546801247911294355285641192460367338228658756704344763613199951035555016363419176921312073706152834778348841934952915691898492744016559762732947888009251051849659770664640234967242851326322599111801301236219815078917267768670178522995589896890814874714925877520682909161363062875864725680773078574322571796036562949254405843872460681794158260271469325525195958742529932302431211675648371251242121343889868943088451029278894496900567327027457311094549275696445138753988311550782009783530264038519599174857205887856149592814319821433107308320730188815831363514279419880352498988711807180099302073734828587670837619331279199217360829437538525848040894733401507081303320011613850747175681648579785606863154225385175827618819975359005425859231204409157771383882533342765662734589478652951566581449060955801154276115018154733378170689826325875864033373739965026394220764872022162679104612304978586163461540456411565622952961296609370524479911731509602302314701548404939162490565227811911284036067552157920219864633600589768968245012459058606099757584700696260530521872738172278456113748599824436787859534335680973982193831973427949349764105164957247717213129959143450984446467598885436403744280705657512040243248858146068181673460837248079967418671552284162949020096062826946630042393017623939115679815500289559625835267104763861425751662457298041020223719827786703948830276198195983904114022516438230758436559939578921304225360521429819041509289595826894692997723035276107114797243145124213342077055358481989552309566642181913716568824864490492638142198855149204326775754412423156350203482701630873657805330612505117453925521255814354489384078076279673252471819321170919010719308402026099528448095071533083968197032383592683718573615348945551017240196108154482055855378936683074270147394867741388672509222591092517955993627205106168036500002946567720671642497845568642255920012534809091814818110415733923030594434672353794741997774969225656759908883883981994788408745573474076068560276508473752555990209307585923231299138735427633426587857127388973630511156656512805800962236212624953855705990864384359665936863972891525140801661333294569904888903764651599594045420274292837777780445124601132208088452603335855308109011687880052131285892493988745179994519008742973876185223536036942383691880512894521903444179859704624679845329707212351251876533096002364629862313193554167160200634934016773005871493943616346304821487048160767525953994934746536148769413380885535205182842159388920163433221182329258377193199424235322331913899768626543516534115440532959569252929849738915800911291053358207385283476660895219178695564696452255110486770469791167645110315042996197608210061464293570783769466379283318066806636028277462312571788965571283027427945628794844203496945231938329087379818868648847063388664544044278538272379106051008855243439735538300486070032725267671375412714534588825890818005312962536158893322051211172968718683522301212482037173332716859176209540678457242631472671532271984462676446313591065224015167472430909476689576520857477519776915765223264551046353097562238267237940154810727369757592580399723861450595959267522473646188409713067913322848156230033692693193709841716863565654482355899024940673871375287941030150454464118188282390501186134552248571241685379378744672487999918769133258694334658354121592737853997075287916483778935833220596197095054266306219941305800956734884559449978827966072260810588139622883975086953418206841345231545896533076739439254978771928967632163698085417076674385823785953485816219483491999501106577197925019464732082965038865051361976670197248941046624038445628007046972642104909903996675410927315455359766695368061418185514105245581171439689481967635596280950428968394254908534624503441819382431008032660272149457893784124219467311566411462206378693053859032015678654952157691687129939982996701025802946465899053427089437436937069467628086936855124395492702596619408895159662259714067464338812268349893349495440549799057817393349618183449167457325617459357024565951941076717272340501433775275585437004028727243623261323095121956884273391939785090592784008912177161931550120679003686860957109407105981448052309752674980091705082788431534391774678511370680081583736001095389677734313717120575441672897153143547215001128761443500169193177465618334145409170722203492242581010353844414592884305343801269741817183640534973670458665752722489918429173100450962176295670394255913436605220901982487727278606865139678195349723237672198519052558553569949295809518283519816255241112079312777027985574162678821605705644115298804199761990914039323912298322199235718342412507469077291092613738156932252665706928752449074129506115303493968390806504822487328407296332027215281880099957485557422338555100681352581489796206673284832613415646188207558210093224027729561946407525006459549938737371498868887868445139332334870090557101248407331550752234827878576303205734575456891428497760847842524808423169750641165954780137112797636369068294293885692267938619354091841766311940696337032581335709959334321782600895972006173105450784685926103693243814923526808034118480250143416309022164361212569852064440268892365640513309908010093710480310977349559060047771387965551788301008130041933287308269223164391573307522567047979471012074165761434732179184780316675962167003520024527088720820883206459049863445170355268611151463075426880701603175561717760961132313339911975076221687279256414017879531795902697612134577870559623928776138354472484234656710711750066565110678985477285834954016086798593261797189171644811230086100556768728266063935047318754750335135554267951943804743324557713255406420873149961246899243401747309149153770523775832036118651320412313847394142225084600988169098805811177779167509453665684997490076879288672291794827139817292920081703391728822218701844626261037244008011054169475173974341411562120260797174953048793947513737540289432773253317638390444535448474726392739750469801240349175410539696823729013509184227778413076958183114834119324624407044444708233398899041719946318960253679521969330045483832808317620770023359248082000627303046784614511483435144302670301664721148769429747031710486947934321127827775757544749652189031583512702570628068307607929023651110007729916604217597591951591156994987204647861174429562600177033435721208910530504088633665839879087840909360421831948521718480135886806398545843287229237556696533752479889750577542205715230893155884067635328615690578366062401755852410051821038144180705938779658926201666258996946295262314916595594126342031920784834620725688684882683867602591475750785796500599343791944544854146355018366981253865483943451858953606097190345139583173171146291131383543837955713525818027134653984326490055373118699194178208644961071476498480721163167184849322907246507569836102517960444782332644330617865695091673204493450302730687281234235427957463191904635833665452978744181906479396225909858005309866328126973057826882872214763030939150093511204737888709158707861215802589163606405210296958464431120934013020678080634958598140103138274880447949254225183163446676458716848748174642963864358095334068350189941149310273607372836360496260753863130054182892363358914695149807936998547569063750822644457434096544496620907444430101795314702483489028925292772469840557843939926769558863362830356846330160837824861214182984745923977114406065969910449470189863591858092808637641016670119912136786532386514315239000958050862751605119625969247125822198075302371283201770298595452593825592376818337344174373738601855237305300211901171359175932365669754388897072770725958130619920192989329116197215942555872264448523756328695841946017227342430089654566911891250180181922706368892986595365281962483525678307651231034673841551797399218099675176184244904331132870480802421817869249843772443569989212734425902242907727474196176315547612223857094191260952002734528586361706103132459754975094491485424547595199246879009083273946890320651349263849966532395570949531723943515868560794262227588855302107392911116537327702567531615704187444103262497035865491011139472943227688627204073909900267384708980507255727556887805456816038954311236424417826791275379287538169771660015109841829072092289621739968943529241770358307626593085948186120874965994339769028879391156922543283682623543846479866068506548505634976015894461035115303148098433043348054086042941991458935649757051544691264069218432487104211046578490249983125390950076492449219444952050901819616006105048717084437526736832522973453034414562657483493222462180457667371507583854479587974652500849977247454240052150561671566101961813944000448214667714562397540633993649953744814385560691360708904107770760841313765697042689265088707609278449099778543987729494674074996129272213222121659998684737045363836790309536620288482447537717163314630008246076344500278983585818207675771144086573872668817430432077847250606047258644658028647629217707314407424460031641661248968588032892607317533476542076056603852725150591552143926280240211819240442402034393543769931093267959056381586445963777457834686407148381334379984938965334626741635977287210157028453287796465950223711583543466649631516574256083282798055752843098262545631886656346257583959120910659383542143247468146568452825448273989403430103348343840191061954636894557396610792130673550104249195899948985267344852110698935551320276585024400631436720820947059164613902414212148353759313391956495451028689347511912130554509911992171459958876731460819228776780743825543816410253604072030543019739233996914148308705694301965118546318623654319170510834351789536907549094127865125992665872013845226294451011781343041890436027795709696061233414551473874541437138948573799598983043181686642012457221278688163958588533511949640318704407857293555052023055477138656805906842742869466740170802245206172618815442474756272081549117027687842109823934503593227067628002426586610403425831948518461422073576252868482907451836117020117934793666166859188757994001198420020125009545409834395309144588882575870383784352337725818383975334470593058766086695430349807399682386098258011372396537501272604947418705641513736604675905140348277427838295378193028517623756477751328259351138865619213254585071792432900684503119476967427824066809523201149075346088966802390690242564453204255735584482910881419930185243146905253645348737361741566629511660341635442163200757705528261315815279822298476411863725129060974132687623090899382296241222300591941897298708795549852482639179809651617146708810702448240953417796553189527958685140738821637184072048829379831815896125923291064365929946360453691013849197937385898723305164875104632005173102365669031458254303558586089779765824207232463701628515466054515083969147179140565469631437493268519273827174672126789248973661289360661031360372681803720683001065027827234887459005542713884561472398973480876736665294062341339996722681497206690860639555218970831102218188201957149708111068172702293619554356372475976412722483015923835932408816875709870862671548658831059513983048434902210596213820082274076571824190252830208580173195791230681597052852040994085320665283648515103988488879609969857847368062476114292556191347946982005771400692887097567416142015556522712730726900647187939026592707402454825324027990548453283646193705480349217230587515551894604539648020486720785713681740463932130741627618623710772182161594188258497161022623631792671479990378854422556754375426742219593474507573196813100278399980300400593050149399193291388774899000888386401111145622334524341798609013735527262511806905632171600205509286837782093958829733079030962821862299225084775801396053833287893752224782007679916127229613093190254309502717760729490903686189225417925582919311441630575559343962686884503708471057490569224831095194636072167020121355156357068982660275250760764207854015048126147251266223860783851172002639439581214919694845476715011374556997334456332195446374007294282230330887171473612035679282482940253901543120512448294379399516854460078999255922662161108588733611294850656065679044409769244490652758606430501264324567629895455932483131259992723508577410225515141364959525334384303742591432167341850397963014141895135581063021230670827483354948240514790379165910067760735479133061538506517882716781641104784205624096377719264607726024343663165486605679043169139520913934104997626588429253758509478420079440095925940688419458434615836246548799016051748858167026857866623650654327750925552335951652358807150136286873880272944408084577357389964271725664676337926699216734824657227523161844134840433375160215292742784730227816014790057257965400299310364672184061966435767900616583922244677328687008810273075523929045209712519958716853175135542301629857863752650175311157679652942595454422857427364166911157696458964004142203847494911420742686654513074866712883898308799707514596668256660705304925599779689486119760092548180203046382017276406529267942241360355264865848781429000522893218099949050269329096307135392901782116572576258372312903095589614491197345614081256113261499810815369377570832405957265753982927817080526520933189747451641368116532325145899481278218624326165028635971472105817557388850738497520643879110365602691756007524991515046135551736280521034770808924761181648823955960061435069320357629695418295382226952356708882110359160285320614452657259575396545451368845835458948912239339209983441251242056039247061171002296867251079519907835285570194426874852281233775287787053383043473742200008546464012077972570874476098040669416035354649549506153529742844190599822956573480566523250995027590872822012146359832236024862122309825235449286693056909052717205822257449587858260723279415743809323097993839124850347026533122851957275489049877258136114744766778757282412674931492314167118255237965866763610687576083982998691551674615798020445041214927372494446587564777301238272798254991865775035062262971849510286990751393185237534103631153320825078267389788170415249872019265363876055636805637595118739404618244974252615898419304001044355325925003050429905012740076210338991156591337926203307519075522172741616026873028443818042200746235801365362484092859555577437741335867350301432068726138019890272300814309159483552070128239008300744184503438368651360736830937260199168058987775262056407373019859171287789224371563733275780274374664203055793200301116842414565924680279302771182659650616804543417386566100045968496888148268909760267304632168881380411614804762017855064455413875856447537235035031517695070321354612504996495113050410219456686176613711813635415087093663337888280783755686579623833078494661813327451866656498543757967662886768526470302867656058863111341437938281931136047559177679803624809714932312032537573069991790783354498193631155367921475138520989529442025419403006881130541287754328475620978185667258975138389064200316855183295748688807485929551207370370306220212625765416893745860700108209908641070255486692823818028353679570168859194443654128115150182695541617974892096218079762175213593446126423163327318959849720802513188454339975246381398221399322039415016326875374604506672626431498485643320533286504321209336398315153422004568893922588429275274624579701839819367627738236563103330864982041202780568063932565769874082854555695980485406080534837304797457470764476365246477943980427304828236230936370114649557240481752692538478206671027798601885186613930141185197956484805393002221624539914045768822273564885462782453559950700567737940934669517178527872534873260950798971917987302566176541995461831867637587095915284322494216553555430977574366249792358111908778339704185506752293031624124092135012734989596275840141672038148909228903630290354671026122339190418718085108588174529387042274377367698062020116777833531960439111437636971859127328485403343902509092167837670842037789328574615487201608739424295263182425643777621113612802701081034398525366312731555958414037038691990285471940100237218423856604378423392921567777184285149012946273606176422334230563719014795700902623291106164966208049601449430887799041466809247723332073018244861268561191739023171689875834105646194381896144935833581423467347244506485856141086744849323861953491910380465692304563439013604979300155859249490707641717733636737304199767868143791572372508806946859471524652968145849982014378869456773409171246667162857989233629715244071136388973635777831790316000966067687863356040838358450797760667105789871489182448437555378246835653339810521264307964908027718025213639830523593636651423463845506952167433223949835006946805347356448159049539320735955677560732507526311892024766343126607335535811943245950133004869018922125237664059511165040139488841702440546707681574445642911860705250525797768053574602951275358129190086838047917135750860165276107794718369425261654107670868255975549793124161595770033564694601469920944789259389414737827996314674039543168871823226135997583955579094122231666825167000212786331062317467775127211316073352643611001004614232676257577241456799515441683334572515314326959573341207921580163669038188507334289298899856597929947596713049250677973302008602079391722549677146638640931888485108401214786448821930934379227734631499549214067435136762411348338643170701232679280877027516648806808949104758615368093147706653737991475728648586639301299898233721068610398731173583149058830315764581692433667942790173320518691663142034663505797978765742838636377513376868988028024696361048156819058941832778065699730877398837031099740061504252397115870523576347035590148155472596807511357912670772832753942205801818926608942408076337976933928130707641353895050289991483755691446529923557384688659117099540517037574295316745624849813246466010646061899866083754885463325639035373248572848051745183749331934729138765001872572452374203527904761469933642776597386233173904287066624376391152975751664514197264077789059838050688993336868204922256165518792783005569898559939558041926486283079667964410345514300838291660485379191000441647430022714422073589607000509374277807899603244681708766429302098864827450906023048286323135053507295306810817499686896406553310965338353070034909622974308409282644686514282282796110738244192400279000995424918013005973257726557205921604560601089481346438000203508476569898539262243944486225660704799279240531195876617074415976024778543718909594603099936546858921776224496154109220701044016050337499963452977178293526615269100988874482643295598055832900389158606917993315350496079278354081613719348274442095351744076243135343292900719936032782613709526614184521534070371657270214001598513242066858368789803133277617405637669555377141208996087191409427949412717240320844551647042283218757663739823821575769467212108487151194771638297301279136699927821306255668583527751795338921456157918139037902974693185813072689675656861370475490352547127093029120755783844323513793627691323440165628151264564325867502284697990262939190469895911224686906773041815239867484097733426011729632296768308957275678475944847383469872699876619250275635641632947987491690103886047538853463633299718563741208704817313789224951449812993524245160398876230578891977225585662639260957404894694554139257936094949872958351957827124520572594574980462672590995803561205230044290806203901557869774960085080763298767050168361324498832057819402343979704514544975918243629508252565024788510100255340929152308530266012685754915274838601371599599831727807143825469679160247010446236688424418584025951410527735608256851860648189388360815507079556138107216973236486442870658509914000131407854809960497279928575415312818249186796956899130322843025553711460777245225234394871382531339648942761026582399422480661381173576600920118073223799068445349135794554678807788065357010535662526990566066836742192159920646635421547509683996694391097687262564689873782706050867805559822347834010739897346760719101416339938129700956208775024276071214500480168723450496258826077698330861264369278881721720988082527364779186924517971553177994243987473833088806421854151976667453302613562829042289251024283588835197503123663651804839024005471052668665728045842444410816647806948335463279425342114083572341507939477954810598840375603923549823640447083085088768189022389643436982117166554217318074339041089085323367322326217350882874934672401740930155058940751902278221313086001868202075457239085786700240462473298636228920999748934759264582152499543105855716560415889376246880529761743622099701071954200220774468987837113337176448922730838792489108540912425613226510234311890245268323406355728589848391573044740740348960155532013777661152738793946470318484026415042417009367735848362443204856876698079627950264796473887362019442899903109024944444088046359976580417616417805053705988013723443954608562909976973041889505759098690779978914943144090625174516281102062444084022776118058446413392152803490103586554945194691736224883414268719778336400294298506199537038563643561821600720200143155260426573827140192059036366757462542848253012058929662399731293351992117303190834111662651378689727372424286738911912719009141492488235021560027109180189040400983786422996813698515274456909031525140494509332564029664614685192227270463005715430802657330271894824442181464374542064160213423664950830846333610954621767818280244031199520570991349107095281393156616422607588905553018881164068212662971767864319090101591914884274522665290513064988064819805928082448119178522244587688617586805244591462578699013553590952003087166561129458128250992617858419030896959878388730763458784745324470267735024487284949170862766056138447966378918170851106060947296336263046035492518528921462000279222144881513278843846315946233651393962067147725182819049626222712528589957378275684590209264526656103102642427141704085888641039788357825541474896991443270946884219186147017024560099930844057289795349601472784290255321202660387609115266929323934628738758814837958863979571538550117704038112164740730055355091820855050506054585737574467242161120093797355781014833506976189001294943784771228106120480660024854693239868839519729617576124453938350923124254722586197434820434790242724510953298095349339438505061586735363638958920054164968982673522787877250009341360049896227509166258818762201767114420902410674766903884080763420326408906012789608871733633804438641454587424952189037905443757400267857734975673928368088981804192438010482784753505433589562922067568141679869612538281365866694666348284768949902653090307495737447898971045346369156249365035037551155105080999075212626244549215354712835038840505921677758724258334079579105539473203730425837845107471462697913092159791373442226634414547903668938423603730653797329438969499450431025502458970037201780115242898390984526469464763520817104198119835823231571132088521570600703567874751951492309314871522446568533734468138962180635547216603358824743017058352728677568351797076576878481541203131296774852603862787946399897752720710437277900381460817886503523665051139691247955308550441205493409146013015822882123152578641327381560102311198419510892642020566322673198975767896310221800337779846023864912933163715234861756728811735886612949614999640275312055109755786553556607880224251709070611846620912016502886420333133280695684608174035409033599409420255828714139356149169987833152808207506015102295386724899378808434845153144552721357803727557294346084943584555796777382558028926739335751801624750861538599820931167154070578232753542195610717420007464611164474489989998213617966082092765918991641795385371540617188484510158080402114725833462025306009660210092260454808575744895245145971137383145618028113468632346305866050647567025305518598994661796605506675047099288544274726273718525336059139810329150705140952168157313943058298692965593596060409010154767059488697299443555640519551120596697325456323199056212244433145892323560958384847378154403194447264856224812118909963063555463079280739580260754947487388123529042458352896535110713228143858678580090561581489762063971311137030468967577714122046678174403719931935509657429811066534826696532743149042944833990811239930043129602965837328009659427527996634852349249383060826999566856320160675637302036877551531909745099607905738007878883608605593299087390734549430123220903749221202318403301755513370988181254038632054291978253828656279570469076160821213343604539792427198174080093336354185557312978305217291034154795885429845037763299130000309785154218436612125393814051754369693469438907966191269904396153537531833715885895441631323317370950269044956303459553752112273776186391582440975002511933348845043575610206163878247021210726743761021045039000110597277184433437810059751893921517138016116365787607719893284544630052279666279201894015678268442570831874965279938269303894729252731799677562479009326383366328469396349761740039082591681362523263973892696207919465685272216828411253940500137544216752768083870987761595389552989036470016061335451165707709408082926773422843465547383139888727623040082800303441877324770342035985142446998616950088423025387994698076041506654160609319576510405077391723348768243380384174865893267966772188205276414324588431916502332469740330223901489270367377753691624028099864204149708133414130405952703588814651767661474714186670953767924925736111033552571472644457331055196920988815004218440464485404111063530305252642422791415659937822696304661260974410100072549634772352668360054174500607600814556517473735100235883131023715631547758519262783669916668382951274213724596601955766021131207067572041663744796390204594071570431699520496814903693295339744293930763603414060785249382603990196683425322080802476829420026292645539301924037352425201167533286220122207382326690494346942684650896920564193591420942159771008246515632102774397595566607511505737871569530902949583057915402594336698457958585833607414235843978008605211086500320706984157165435068787490941165100167813676727349678234956159244374095759295978991467195013821528846546609671013503601070823869342936476189374236263976591121293532259282804342884877309742554497348504050771283450249736316629502424454910559058324441217409242485927035516560308139020055136712606380372904643357709845538631136257962483091854746471249497461424528437954530230246618090450414465216590510515585925904898253223082138593158298539135423911984106365413202400063553735515967087443445669133264018080964343455381199671901233443649645036320135258520754643374938212772101413834755735342219620493740980520034909862168012742090843061155915549554962861602137867948589396728075085726321138354970790603453537697138099139383101006848832581361524591244230052601173614055091110760732299868510119045390191678884204550584323581901479448943661930201848969769857087966982811441738280773464284196209401337814023397713955141650090853348693306155403272601314526415618275971528311531482754044341429264645742307761597483153892552235806568906641627765483301877935001987159229058903289096612024825982016463262659306221160754249241142394193943375630404695871909112459470625775488564063294254128880011904173842894815320141654206069880811898810031275037240177983932285804076822623705633839650283286149669484315499136753082808691878118841915954747929894225437106256751292964974060667489351505752842607967386830046236995430000965949285241319492552435832494803071038091826376510665501759965968417244136954451005705029078898764418417598440067982459714939882677948636782807501312947870136480795440572512089744664613053199594398949426975599110784846458270164113011084322678116330116813386897281770309768874464067206752117893832208420625848241836868533804691647737915603418195262219336365599042416666695108538049134391106871810650251914671267639111481198076312665507421794039114245512967119913762890473643896812262553625493851670631492485040920987329394608752174941940466583284981363995493171772912616603712650948213031461676817282888076450709556908237516656611056531116675549257064794761753135506158235834910394159365423152582910080901265264658069053907821998511907158687738412771803307659549582177441473851027124514287980021976905133872169195957969432341578061802913678446009179720826721576038917877464520205198417151046477958487535244543618101655685750992859468581381936884499416015787479229289621217946100084075689964903488332016562942575434292350228808272874067715831249860556611399350852844799643357447005949811730543999283361882515659061502344446000793400256085124117155331937382898336097248352625421373434858054922972996070630196788586998879385636879755756667602870948495605473948025661537983001850534484630074454601211792147643018536527621682558931405876107713875721635926516226721261179184545952164741603987944981471083186050709192412230715714607279047920559910148678250026471696644160195896162775624261330210519651064843259885941427600763994191814122244833679114725334075372599388948855963532884872288486252122115174198088409575893561040151092805248211493490071900774246211167080962222841947677845468746124419991081195524436259675071880517015032115100032203988377443349794405485585866010990648125265603384373230472831523300096747730789123278476388324183287591222636847466584938109462078134921489467214952978209147352188277893150799856015278721925184663621632336413839985379196348205499630371389086099594413919161255857574650337157278725087050315118269104574622571073288655403549985574388076675983533844493019827075822534603917702401209984379502646974062918392820417484332573935039536074425479154062609032135969010812215404119235215299396442160906613987770647156840701957262620388101070688301639234138596639298226433107338251821249414342586444813102204508966938949562100758212506397237846594475635208602968705100685638488808127097463106476929254121976926429450714966675747435893457642502417877894870966718780192752788579205840534300827410651459930599796960585825476925067389474789776316900418278798398692611237234619721398926118410190820138330772109477543629131819565125718908347839770686345528536958440517995526824972766015789509646381167639793796020942984005884220333900625420670999949301688193273180803385035313247657284439403565246680288374587046261922533019712904960816281750992832702213500633727138035823769282214939684767673925367058699702720112883776425721453394875478603052598151019375665305141264428408490077972756366921497468307877256563438267751351853380360859289982642171500137260073780844993617774419723879971087676777895236422789889164953309838138325847871570919707264486991223797057138155485786944408891622204775331128491199532300102167233280024561625480872593852594176946404949182719543686502357067243904035770358027530737221918058199499463950749434164544791475112722746659385084983807011552324963452848460587368792366708065552342042816151405740186294930214213568957215405582512020650955683049732753226880425585621232211985329226878791103704835318995641794644048672382380737320209512843293695982491284665644270387757687115196512118460108526282167403035540598642209717036037136399528729042165842455559763682784998058876800231731040141339850699365256366188922418045966430271178904841988865959752405272291673615759945658421858918784879987973302625367118668577535870802714861378053568881508504417663415744563255072316519024431065601615708002258477005139302386286093916830456402289162130052247397939052733740685456750645263863527300314776941911675142440556003245327181912926353363622804016491010652026960914920408243174830967924455397497365771084289786977857055213524819816186884569066018273496506684833220129295948607884346851328405656713760418331619307425075112479372036037625580644121869036977317066871562693369701186474019879664747978223754977900290495942415285929778141000376061080847030615111754592584418815298334830717985196425352925131595365347824182755212870992620103268564536236746758111727012315505860878679362482644172773791383563628847517864465627430232403202552505459671464786561975145124306318391787747524963870965548076578920406487222132454421239291748368147561953971579586918013849607499641440419706420324684242811023729831085223172523296440318170622192998472798911658739961003455109951031658147570775095623394694294896545799238284454996377565115420971148992134644289245355936708570982537845814053789655279792701162898654413964916751980622003923466528439148808781142696902208332051777395468793049461872441649253155081225144130499640801662159514338756650852605427269142760280772892948262566687421281133661077652256774946116554626292459728114192633172146724174473811831176909655995752884723614025763545259746597302575174787198735024198551560547237056460232771109520943509053179107609007819884277823607253592019210057865144851278868586400036527076712910643230995446108257087274332577581146761954142568755791122206888610318030432601896921475846052577473164179545234237227545763238930158648144738248470024404511376019274200533642826150236460442676342271908512249228842700933042411559831915295368435654174527878772019330284492807151034818272262280997729596484511767351451794959153145281773800464803923288815370601460579626042555347461059860638802217986349794400375762537470944320938565379402008231508592940178778870400016761490787520239729273403115029866290572351714367438078701742161815275298733816978607554829890793488124425643264869467082942775948797874594496205362751518838410401933554750991079980907898250207870376138483196574747124043196390673635668987521385308572387853104183399007525396278287255237065031920796264314059084716437768022884235326430389358417030230577932683768512600048605870410920755300124376043994671582131268084146845852563144505138075818837550661992474703373845572417300176528843546612242022334968705786890881415465363081084759343525822918137633139367971622646881156957707704661621566056241454656406382568335421564448913100920423461547867469234983268824585425584996604989065698704397002498168274306571175207286944387388550409232147545082107568561190448072003131680297480495800835136548961837417070763323372417725218241341437224098432775553542799905033392725053036471861325679755520909708112136410096383342046557887565126405687673925713206476889052356331649130909660925886323338407606128744377343133667865413361207342319251233337443117594269026943895713259302765179331923697318238409879522133811675135536048188156802092974634619519348149986422316164063369940729022375636253205585079548018899108989994892625816190879714305656399607026313435818264490718800945804759954248545070204654820496757203730594655125931247210813276060444203254863685150550396270351458690060878215505779141725828650318404091125847370784079062411535095152260337630332483166578490866212449295859835920505813715643207703300319000292514624898706819656271154978671608686434560995812313407383580784773621319243778780710822282815128576969224367445685150631281238473737612365323319204979160530220004379622226274220496698050174866395112921445295011151226447266235955590881324987704627552603037865764440158469186475301583747830460487549356124207798413998852827726432673372243078661015883897553092424073305202303250564105707364542762725666713042775590094762123125555555658570801349332915703782581620535677375851089231250829332107971361527067831319802279505861414153408019897553850040466208948540996460167050022179349610019492209732369290349108149502911042093220541987258061157395287731697309615680387270289170549312982946133292803052703416689023157190094653803652069329660150065961063777016596844951693941415055970068452224415893460863415563732368777172540191623359384724214449197792684986724856072512690996443961299161280607651666890023071139882029797667141635229024522665967373823748356007839030461519854745301743853247827921740690333603822921504579403027935363206510808966355917585656564542132408541296921780181329535636134235987912132027397490937010892044775182895463487389395003631790476839402563011279042434362255623310415195384812840591912334948307365766241443470397933012144252532684765149391397498049660647884105427224159033143689004675732321084534303785411063075610055828806928592665628968363070037188737292446721950264344706083056159908435375616590196276764387887964753054797538936113973383015754048825318941422941653511816599377677528115956954134534346129848717624485923402468544112406151130846667079162326815847587004484021837339552772818369532102110069489940973007814434110639953785469952835480180268786927360149786899792262081102646876331283751252709746992243810962694040299868675763659157315606076903712975550861387509800052691898109599062487707426932469811232056288305814380569954697682286148603247204741158448406466830189315344962630828736370103868286455555326194046356093882260536220084647676637755337120633214965280663324255477898112467764215050795348463409252496395119913624851782842803260502586119468628906491402900618182639285673407131966829575673068360122029093568873216161529265198356188328517450320762830457971097029806794737547190654198031314542412165423975372501819482805183034195858167778965637284057812852282974705401294043838438298118899078749246141728373174700182223253053435913986443834442902257959841324238107551188143599555104830503938763738767782257846650315434550047723436273332574537812252087573025029631000476762447959949869312245214193199292777262367123261779927323934663849507167392784366320079976641057340449295035809176337676021706209883695708012852900058066331909389542859641277307416337565974155647305101907703204753483350664893403440075369755006909053582924479736924673339990073950095701031169095030355664110340465894204898027092832637169959820486473459396868290708002851216091059493324622578504675303499005502932731773607407409829927722366414742046638655926278385703289704695791448716135993862881621987462846685213015438262022818473091371268973813270323008533961024863772759833076482453076842009517649475256014609003206837646655282431714460780744235348905942721369266770805838658170255723415386414619201997165584423475722542845734453367823374736526298542362769569032521303828374142012636991412668539900566773610451278125618341082637876676886516990332897613208518081714744346719190861367540560967632629043720601087500321420536267163249514982535648042751206111738379474258617175080997207575028892417605961402155083271866731605976510057560736219052224305239042669893454452105225800464646704510024332405010171758701077603947435895022887657957232521584738310183136748520783067322846252374005626022445503652600612291674557042888174730664806460652452352389675106185509600529804010565270464019048771287360058084467931084338832524215502413954977367090966874497577265156823924436406018489189325036166187377886912828519171994700758282313642519731724439558866862333001508760540262809771000683042922161148582199414562170564088142675118737772510250922023142577816277459368846664896247750370153979648922184109699675041164513689252522899953107717460110075667835471670231873818871136398029506117849255911134717718958140052898322774813254926796038394255896847318312995353742229544967074974633029065172992095158236793793159472727425541886091858336320573163996782261393397124741009248267890445183154571186233713698207203088445057675702021439840158783723672959203858716369744497267501992272137454054493036283835065552441903031887386353669372446235348078282221617850455629613761816460369628817518659154642088082614903145948553455672143149886336292111451391599802534844059011733829820142865716353779001311073115656790348916665120672728151437095081556063086383346124135686108207141921208771488522509676939539976366089515972756549031081904972938357577672575951611557474101343828530983494111488403828386836617278163317156601548342847002553650246571449761163745037927379997222504444699095398361528505468985460527328806381865804045613376524896292285209224059457421882430885016862595598163257766885077809142227492787743725703118767920832595617773512792413333891794823126939579149071775093988928188852987560412879389059831320840839154313181609985362083038417522202412129073755463351947684164722169543870863031502396413346662318776388578954595852195170420246087712103411531194751134849484816320690359853115870573857813125754450707350467534912200024845733878223820364941312065617528814848677944732361491161724915872127289509122505687167422911436588026983892409615086432402011945377806463917339923795622861784930570515883761058860896743314894292932216348453596849653988355913947061273360940071812239879352771347005946331543755791246274891003583167648828352526510623640158142602047073059698671232714990598076339182796733701275385241686498529907981981619011242021767449840505340305156122564274698356427173317771904945756764291089945324287446603488986430733401307830734843880265854928288753825197168354831453511945334363136011688833865828448446622444298634835080228045631172757984016162874000862652170283004643027477158798023195413064799961983862054754738635130713245328851486434620270084777665546229069616062704102955997285068869710640759114703870597752004988364081830399753460880249946335172576793558482361676541904398867086725972499149111844713663794411951314982154712761159314457754149633209711133031571833653592780689891860371773967453838234207918178219902093978350031822806301335187558049999565938076933707764232306132711327808990281508670926298310767987681475129506007858896350284737881826129635208066133155031957908772870527008623700085885702990643613528767765527094830401462748994500051167253265359138415592058604952829264434953177377274289114376675894943963267069411287942886962993518276603582833330990905876314841701816280046402570816582849134766630697392813679598179273416026486129220641996696792065862992551713460580873878641316932918155874408676964514304986798858078362629120326244414421416427185002962595778127540264064018949899444759654334964163544229500269519961009169475552074511544655040276765927374232647503411391304017868999929667288583865729108082890327171096955273386427813227858965444618074876362648166434129873606675723542253028538015213090545468335724416577079646911432218129249416853723711284675027181983850383519202037132835080979036465613444884300519283993282738081806601686530359161780309187247250606519309545588554851114634290217368654238280383672082736447070532362382601067379281611353884999504710615878397049306596992285802347749070785017005523787942628481971900464414900607945685865893138357638149927062243145438569236858932531015415107753331561203435616655351758025790845027437486002777332230166539701243769048098728020822263754296994188357207429635365849081113640587770689381861416060486304702307419910410247212476707503247864745840305577462166661446878859892093853754975097128010408830201818397922996370322662464252700514444086784385167263922890453068245768736323517406543150174698347049134637258908513381204863368458856786827219247807712640130875609627571431547303112352142423786952707262166517635353837991049783826056357268987184606153617836497338711783567946682993565966259475527838262552058567035872166649272093405844118205930941494572559166017381793492798821320877078268567632945931530960322409750587508976270241711684149269851784943719123749820365009830152758014985342993540425990456034042322901104666115648714433708965503021744310349114085097261925570844303048365968004483553364872536853735464226634797944915904636081503157348354507812292164044260259939716813346005584944883151701229843221211427885815345119185204753649155051075070702176877166891857877160251148861115306100535330459498861665866665644331534283054394908031863993195315322416402726627924569165643966473570088349129448202793139205938893657157439994984059563763086868499617198595555846626182259492051193964173153189281817528727693083847379554595996707415492191665815781228210158084337606749391631009952982350170496848403605870755126841385596128328090462897740903310529997779631234873786191301635248392765905399015824918389323409651913004774736371095927800358801809833374947487807853984003951094762853861660678945115259336599192723620465763990084457045451629275821366577746033058202508840287556587625292738670655818291271441608637664707931180806053803285398237588046555370802258325951008623712479546330462066160782007669333254287590731418766360635699074566264252444393846128502277522067451014029294925961225819461863569594393098399862807307073258424301380827821528430162284777040813218562529777722437237990404321741301858566927596196616054357760135887484050940134231954777473425849557840278920284192254743350590191679709641382212782618204178808237848039356759993833050520185868542520313914274403580369080190584573050999650907506106702608334088829634105407642074250715500512100090964265929228459476763731473878538232848893774930655986870722621310165997449863784313834517672899577315196686415769176498421177395512762805996760208036732559732251103940194214253769363150624393157040266698503824210830928366577441143756469993560614801601948557865987264346628443090294502675795226070704533706276177897427526808676793639710854053778116441477634159586475790782860882903784545949032885762911788148602252819613304105229304158066323449076647919369001723176186905837852756578977562728654382116364669725536230131882681004227048588276793714719485826033207496887801194065855776158021287480495168726461479344429557155033522926778580093141432135369912087067928887096206240807291174367699132261022396028504346951474621571038478677831296598982456279614334121941301383569020495559101610395297867706079496472944937516619553242828435718902025823715598834438919596440787663381328704509445622198611258126032500322863302893121557378713826911433777550217274594717330282972017260480429894588055097701580209269066872861633837645031795039228207698998122298101678308829996567997582851252478618260523322770955132278738554086441249832286769722547248198844033009022272087184007377232198249624699952316239630141234133824723996492913257526744693600812672385816919485399854970480976067921250450558887447860492934039156914739608800945333961749728079585236357148414695243269293209611853150072247181596561728930976264993529427624629109699117111745279558317642308111442125903398743022540930259677122720801326586707735742498897440680768101382340545273786122837284968812553672976825829007881452633368725391063753902761329431639693709157645722901529390960568722240264777304691421536784524684933869987446449794387184220041575019222294923570988772528912885175850230916355871928229602888371711715546060022882008899903653557809234892253277147444610740816093727248388810741603301854518796837030058205962188099776635019198944776168375740635453184249392850912090253696874944887369300785834846010566779511497965375818824997760399453426901997410175646417167702905785765418261853237874059270360723348721409087783469020956450286870422805951664716198372044802786033876808183011385189557227364976162834506913921414609791408434226565368366442905820760214771806975132803751146117994577465686056996039648280896296283794016179982755446521249608164712593388864333296784335106253753761173134763498646171770726806583228134841298963377772539592901862994784881490043139277320874020987457869653341807435166728393560216124386574765452599548727294925455782317938165852677274373987241882778731130758271036515538969570037693826098823170255453696909760363694480014967379011499372548258815219074836908840458894354484093079023680697923650622275106165329736136003587114867428367604978449626102683496651370248758061652041348817018470094410501109805143949189077461068192444208151224484841051442267825568146802508581324501030562268431627481170009113249886017462955068270743151697113284665601112413233882496267700599816354139298193497610472010302580836139587603364111233255720927298338538298608035065017093677326875685310447748988826442800839174456677746840214472901882547683085797057129662377486791417130696778192988970094547048504364181626836938337057103331765158717276869672582198685625054689790385497246385165250623444688335432781075052678670952615642230038665181960300368452886228641922453615480653836759397225415193571698479782239325853806336714286793034670306771615848594460943855529040009524347852110464003857893314487902699882204254541734807251479241150459041278707624459391286039441023360575212751493531741627864266468952070997728838690877521367314113852995753894120749362180801903323552718432315102177890998971763873956237381255368986081564854476251953914591055605837925828543998911056022363422939481345161505905675235044552261296524933619168845663599425138714151650796362806385512516161489221245419254854072759539678359577850230792212990118035602813735736886759331885125068237164732479689658109874428569273340036569789627530567242655406838585481940802856543261636233738499725149428678654794804551451803801831612066973239484712038577606193140742890365352297277147061138667811629447712452903172815937115740920016086151764489714444744401739169790233462636128736603324531890197719141768294878110648649012010207608449181272642425509579579909711852131289213425635838399868868417356685550228787587874292850435617004099889556768857942244371114979929595730312550955972535789077232283014093644621413787387331862696418452255106241772284756910477106401094775390415211854130218290545454565576394421425386236456414245004705295882657119481180730700504724270023939886193906910734229470192625662877010090971450651939904477541511124689520727934422627202725658246705015085816323446277872531456787384752859802464208806750073439264378376045791712201313302605757416427235962782999794965340236690442392132398485581077070949686244026566873540665244829665504470425616418274463812832501544964173120499605376387241986217844428563786469820850438015353993784216086350721823719318311198498283605901045392228207003663688696576866955402110844024826815883857018270170582737566837529027019256145667638554537491793454214336762973644409147849740027669465635426750642409799369010301564463457737555648192805331105800648279978117084805387870484908721818322072695965166866489554862505839971843582849653693426255852065604354020107086360909235002986793579869820296824152088364386016605764208345433226042568374133431442563628789888249736457380655131896086079459528538395257627576356294016775367756152231028977044094947046511729026465964710331483913418145104149838348113602484000496447507318914030939008046633892812382671886445165402453626474389871464747889790942812110851570968461698469535927602831772629244972367927803062572274520629315203964330558289482680675244424873810618939301358848801421035891810151292526714961983243776030171638777548563141298214033969262882165155177900614695271102282526211418641281096058411184480457853285322493229818260813080405608356821251510576436470982243304292329681912925654062856254359586477382585093186156855628495982362803355565779481176045388428666139966029306364966226662884902196335074456538295010922372382735584836711231749268184131326097759574763397240976471681604724579488997425439112532303052792294602742392315265167657547869191883193233946573938337446825573229099890625593842360310416826562067339460202507600156763069795831981237598851920316174927483750508582265213055686226756120593144166351670026074717987770416394260110318343908431500737978441367957219277562750994583277412225560831880879224147440873611308169893002206130416838398860990564154163840303239756672413824205009157102141143001764220751112256141661342325690773513838909780976746352587466790102466798769392280190624875987142229483026093660830327522968202338463895732734787944697743332284429792312671069572833483180001884473251105629554625647007842132363111240077429146831858469275906364196698402285452553432864088310640389925063517478925107136288838344771372556167054289623213417687281175543529307700346710298336202714876454255644781734985386756663385744814972375538911431105948272074188333618247509202687786922450967615726706298046160802567681034184033405486682627336757606096393858791573239357476373080482400753569281628675475475481712187134936534354770473448275747065466795246438305985355620190425125661670181258596165109573506797362637370015683201302251079375268089812276785284196844457616758170584809269207818548491100763265510438076008257079114337741472796771441128525411705193647385157237811383757177483930425560893458126941945025338280376608498863476652875905784575138253456247926833446691448401910458640526309150098372558411810498591184577206701662671234785124888901961723688596972005611542213265545816956585756809151045783877629823543653817782820818479887219375658225513218497806425153217452886887772680380344389582797295222484273799358527827186955499314009205163005446546617181830452354649263940361388042322674885426634173839080665779156341215195683996502988422599391215953028179610120450451532748895317864274798599101915230979307647081821890783351962687799309929858288881918075923418611268133611793116633625257331297095478525609925588300388315215414352974562166075368926560601690927256452491761292471362484909675397315827225191694106410889600715052747853485268742642760900513970279427393651015435619176714397208046233798973424760171220718751950347600524410832533402393836754403920714785380654425713692044110396094144208453377307354211303168622330118087205146959023568858758445648152720466371738386929226797750361090060957101910075422198780210444016233216668023333807953046806933015407030079744453578519289419763741615145754119294170065673363013473630741534335005397596278522323636745997774038603370011722368443228247383223488660766986204668499038119564130729889308593443800378138971540335177570489273979423100979074053526565643623761205901756137379369845159074233914016189301403424980140888435088373229349761269954504905214699751864882380197690287910987778140359901592325774471806150438015167838062371530809768007634660049526237306518202864803278950573573423326499709995675750497331384137335759222199862948081419515741827815392384820269143473119653135530952521486961257538495392800516713641496482667013816340932166626889213221394973652164639085602505441053144623002340588970075427636622860338921752127552391390473518568708717557384475807255994396447143509540275353580345051328000409422533567476400702124484800739838106950887126164989740141445745027032961505410320464256645592723589373513113718989937038932641269986004792089125347507650877225354048893069246532891698485814349423380619360467113633239707518481428354378457419258192214938445658866127894347973793521045730926274580108853301694872224305365103271759620406366001226678509491605422401991579573838039467502001936826353473240147750440193084642558762433535544730575419398354882767119652664696342266072068639304601771398293526388681763676520480830853726457761834013063726636554652540313772296641188013714601480695472891858348490560131250517843077158312768238392729432141491859069548038720782364091920636557473995161529074287732845136307281024671343939025360624821194712723725103803360705022863357175903553427018187476583806494458652359590354584886826653030341360349338425059793172836939110007842424733344184966688875988533804627108124009284178997859193077648089226142189789598361398984860778752200948825931938122315983059808838944013784759685278408283650993156165912556311178534404834961649442037109466261496241279435229363229758142084972406851079801798865029221044664535395311498504824474801909301904962309022108027499895230197351193511181939706563690021655227544859413248611079342704551214924513026323480556832861837776613196058738900717602131667949670872015631336595789591474144006325202585869058269872088259503903628063392549507644522921507943049104466196202680865419768040349419174376534408034975183077526823475955811686883502806119246483364415876414945856978212894801232501885903739989117179095210650274357304288427669113362813933238999686131066036003298818260493977704764732782704963482721946063940515880194821432293971560660712098361223304425703017681589405399976911853856541868886445214510665623089214585538276783935849814069137899363745572466097442545387059547880169478360156729822971838826063389543162965467754429828895758163345199839029760986607691043229054653554234042182223414121803129227495669034551928688519585593111371834474638217814524117109923862010379096425531755275249007921452652567809734498239512397701930418554875317162860439482712238413842210545985985155875327101261898782689964633190780054094937547707761737469948670517944607686093551846341917618649400158806602515847806842842717967239898656116613430392294257110717215454741226389079771795197263750832262152092667032654374200348980642146455164687151586367375825231489744555003660449300224887420469484581283300700812241392527460297920480563562915032428167443681980428786065579177531018968028375749569919253495817385287987458137190478342172582614927710812550201995411547373203237651453888571050657951962095439924780571544795075432872284241032390169641905262582486776435724181390661055208526710731115990371747630200600420929112763121342157291733823653690425224849950380125758602434898587172681114151291268100115967261725543384186501972963007973583946662925903350189921863238685504286317898359106811372521261622469758243314754414056216741849835224658123011502934093724944818144488946230567541301792859882989632275265120739468333431809594134405294520735078044436712004945329002244553449747417230844652416002150618032837610328857723936848751441529010530345455651982490768306472159398652847702581201031612813779723310593381234763833588730652062747140529335931252609189007237220685614382649150797014067372541279269678126454609476247865596036585781873187216372312168069281843821410902973313339284786583615832693939431933293786127120453863525974875624980741927908903583481792052912122292181885160684161004870708468153520642429768275998288197801405788909929146945166988785686321593434643890574155771187600091198520031155708833676980257397922602754853693610934354043321547693576529219245058017729025391298147781718235769978296246358381415181579200217756799717146704514457476677184566961161131059291442922886568023017143335578880455130133130510591812302698484928377536974969545744616642294133921647367576799791857434454856826260490851453879211960338050929655836763185249976582066859825880204049760056814032219173995550285416393801667815966368179889190049048482043178280339110672947681682194044858869427857500797100719408706189791774041553489532111039180418629469089421516085765802991915103071118043243709564446877324656374134662469969525817167661730275530887525544752097693649409567831982037693601728396146019248942165593640645079178922369498540627435293565067031802398500395439828144178427737774006953072593120954172913327142509266792108903415140082914513291262400075975084442491578555077938091921973851367323855553132741036584336913761394262563634687831514836328463315658529867412339072954287278747893128842681437883113305628190932405133290026456728975694349724948196403000361408204798445004908100899281217388426234221463230000042731250157110985369144896203113116483413447947603823550642964095103716260625775493879440955812332418002240872968631948227791065206772525185704155365905580580918217021073727402109846379238252568625684193522887720975485285700531954680332952083925366792276231738797377411163454262990153383725411304615645580465652477006495032602125571998075912654364445831718468834107807768075702712519530576743838682542536905134517008272727956167792571691878315168115779079515369734413189649213192580342835844121300283521331944233632821838300709685398664507298645472748157475472618523597745475780233709935040896456472351020755045480461543504490919861645220424994508327110823837994729721320981526562549257210573982280745320626422745554029176989648461275465738074113278024636719199925041447683891963760190305591261641007998546409468679879814574658141465378088974529026300033631181751823246449073357364884083870182217055369114175486038991443905111574958002428844883674711791152315955620587495796053995543083695217651293656159862503708357787357829804098744221441038168373226264521342521666490644538026343078295204477172625325040535897711182363400755673389478438872436662559820473648255714116611411688482667140668882994627816504202767562141096022672624694559998620866161338573160314593408608386805807691506775054120605484385643909316527911266347082190558572959799781446649248949003561301247169561320156211894206920861240622779540902297868035890532260073243880713447493437550182860944271331514636182058950401242922733333986072848333442394782732537810121568427787596111542395658580165451318271349036078697080638951918176555166446346550308963700609543710635790872386466432041165713395913048065750434399398374817797755819350185017854414905395975556174117238981607808709543497424695015124421808334398223429575417433575207584750762892998867666200696115018907782336926493053180150519096773930198284984410833220757661579575388917413110548270548987572029935240156245398618762732553797565597434676232106073472117652648939151341870664137256638997785385845806868996609058469085568433747790586850961225271805519097588157495680330931178753467284004678168370371821640459919257942223826257131846003619441461660356433193789468217556434201172082914246168408783011615608560672833151252480022070051591603458963830306904902667339249269644453825877144778158201725105136654264274938411407750939131584316049901888953379577260685232137706073679004950941077459733396160550783639259861189333822374391591166723945427390082538951336986037217770413815342359145806084013962908913638767453633242253687157041870505497983466108537358215374540036228684671044021064321983923075821749214279539340425197929445186875989923130877059832243842633253126060775629363699299330595937919885478405146903224591281977633217971373557248891089527858439221345120240155829561707307962370196668566321452305823274809883752323669845660910477056280539330508130440739550966654992411511230734288473309391593265450730787948057104229379064841121494972560939121440713527259457070018042588341357970313865213058633397648966368459435547157906700018010660288572832303147449592880141773945668659639928444287472434588167646215395709090389124667388012322414032674547902321209494886285660595254358110393286492328967926131011550371563972613167646005472563064807869166046688012002877265690110549198650011957216608129394538029862949040557787330022332311815242880522949241631582478082980277358625117195454046224683946500786296573633290259330758381128009168578061710979237959417343354833814936041730060443178356940837109024783116750021082980218188785916585496101399866299480910788138426595955400557691916377208512735921435312125627976491430573420864298703049165423294052061214012711007888458487341007383125229475278256826004913429886999863370070153504902517948618138336822676846468770150458913939080716455459494467583690665785896482379297686634764849589116489588999760846143591780901256260563592603570968140810837481684892502990727543860091636232144084703706752346544843738094398181554990074002648282101420379855143224249486823366359119581252696505567473818328792583995782289206405041517162557759044484085063660664970673778190027600835662911431297435307570709969279604164037099547947774844795495965659086885433803535191778901804625884608909420215178749955479760717232210158497872513190976348710528856414710546640784728433047416409323046433128605226152084428880117268302859387228112310940535392103788296197030435259285033706303296745559332304584642410517781467955948426938816245120979782887632588255220383268283321430343523153116999379881567035459439397527769469245168294355435097637162977946819993931048951348783610457703325003801087612323052189119967904906649857945577190798331505980231924647384899212904845149324443006026950020451072776337932428678982192896756609115354733010888641090887414285388820388809496208547777457479883412476481123343694485497902876177660929273161688097489723645369418999190974223705231543632916064988557058132938566768407979302472015830510101243443160457139942582649178300640186379945175109695781462631895977115148236984696121080240888290677350275465763197029302825627570294761849297074528007170514696483706397700754708049899257124625986223121080101347027996099710443741093158741839313171617778141333010132698537199134868531076272977735717378921471596357127587124210862471754287809440449873919677767051675328009256679349797932513265137040984617003156373217887012029097453028610748434577494566939666201453390916245282725801137217150493963474010353150193395360882164628330698716348472841691040283617739965805586202508719062022473262512406736918805651632961574690243572365183396272031170136443292033735535453843855295033659496778587554022172132863533584253631160958904295794236086976955521191166344499255689526807932275106094287287451377958207195702631029743971177917481372966347297924122575959388907096374306267530336715039131976406303628587003555641948882580110637532639963666231904242601862559802852189818414275008442543173042808909156152603898741525478334981437563002956448844289759401845479595305478197936843616352550286959107353180898078735061113134525352212568135587697534514568079960111838250695188061263773765127784597701193963544975071385614820324826319353511110142878524283904398092457267450651941330601593570752551894392545948183378190874590445433654051092713283641415498607105102033085029698932309085425598745776644237023352749287241945690616926950494185387765912248342797543067033871128345017711378647976346169668516047944500764448314736397686553052286668929423159650237529926401418529109873138879420805984427779257581774498660298033521181853012661912800404595347047625223047349578154138066315177011783308878821824071115323442097423990728161315625712900179432718524111487895545462853959583525392010155194872247351793373719180874180296583411586353566217662018803006246750732094143755216982791797507364210138627443451739703644441863218143035960958633109308784439853855873345863436604836373587747785871228492912091563266651773084396904830885748694751548095278919662594277156419780444399051817077422072818353247187579158714131245984143656409920494155267566864780452020511078815335836877429495200459942067107349090562630824773528515144835380426977957329928840776697822733533001413298159464743892917351101646323793582015114972884403500270714419710961585396892595025415205726454833679010835187048071842806606874411007451026445425596451853764424563785624775310247205637744857662102909947350547319210156550377808463417713272228802209483373023801300174322758584995143777884798215898634998976053195812183830144421546007810590281216101689437089483005645474864017932326583096081291813751882815020691189416499685629039014110567944259151011523237220008629769186521645046956874248866173313551472832136107796981064387897716368037068712245391308759112285433827770132351570507002201458686140559448344895788003670767413584833740019964486541895387822364186085347092233619668810117500556234319468570315322531932909594426840388630139926978100235067126938250109651309159285447272899830841750037700155160893189172895051158345192164997417721837858763852707040403573980641802674960511152846456388585189376391924592122040916928437197460992336619927521922536150795304624020400342708263448936612590802523608753263494490785592866778674647066888323972712358426899520605220478111509915415116688867168548729792191924374151497151864511173713820470676182736203040610426654354133877490408670663559285105678286350336517500224897643457641458355998117669230685947593495275610603603048263984300453971650644666083743918601195250612393555111959788428787943990326765615346749698455677644422457978095372202244860788932788058521291698215079967200220524106073362605655799012204034352638025710874490521710261954114458367255905382602560943529899298725304146795643834080006222386569788667933251971957256329832292033337991519807840526911737529607537338848775369847002353855383016110178790117900669578202100153757777182787866021582130104644837034403283183356926503082297051056426400894532801651253495747706254322882905608073113860640582458249962796604449078485901280627981330733196500480343529424262535524840952933333222261788230313407017960295839893800155404158657962783388418371627186651573305279150397141659418151680889946558702303195093544850651682887326583239388525129152601023166170726254772244985101974806755311417730114816391023419913142041298128415745489581322908232131269524665016313896665026157832660578594906132802910371980828635315246856071870985323499509645461313500823860582893838781387152538413536582781750448936974501024130789248735759801934886242031152319670662980232425305701484673564363328371166894204648244278417905859448391655114840529745773735735914908382678188876404373446879022800812095874269498650207741339099818311156970373052330556060406306815531167526663368151864736558703770228190241470269024533905171321661478449848420497125319986186930518912173480153185087325496197095066875632635188212344642577339024559205637754772483651544837289326415488085707110339036267671360763946858006850954108610109010285089345097563339703226845236560901688052454231559630502400181028990117280588618393180918236953529670670929233640189660322070587532985468433015172145533209567061650697555326608478061827805380104482853862516235853842902716691087690783067774024046782940694294983385519987448615988634803824154844335255139489264482933930712875141425108786891375058543511573011203446686504839120416570185331016589405731241841342765349914692517451945565562139429637712458747373813272632567623995021273355360653485503901366273648255672513863323752806741402625906187522816815616679719814470035682828056174842756118454932491028111945839746587360121500389146986400480914710852658294586733646452712705979169795498547116512862517060975396953118353245802955755655754677399656793350303882364919759075491792672205138435071760318794219293384292968375488907472439592278627353803798917471620776544082059065514324888644085573385623345695852467284324522701410645668579506145537083564392029349275616989407547212007173014534954685746006211702815664963448825137194565921102695798496489354059340265456550337361374821483125794058289245643626008979295981634993894481761066460446921789836820038368198160197334966847423056624204092158664264902676177934583708398280607958334939997724089084978521725186120251659013009395837195969556059714478774876681321700447933317004240160304081740584593904925325537933429165455515994167501270847444430490217225300192106070974978244303461938687193094442165724080911022665120875311534906563178042980302022825530725402794218421980935845225427329912638708638011890294983549315810005858600055142884764793493997104658814299059413586281338673338951749378412200938579312579611150955661849562961308055453680269780962357354027788543852279380366654764776717044395688033765109422403914186111122507958714652219363338915547413086242468993461554895758119619574408462865958100508383334666771428256380286401673829414293509559220438940975773260208960942860074306335129935910724790466357012317175261987185594781801960255077337969693817169075551533500827525184169953240964331634014136368403041704985861281813375663647829168997894829008516211074440863454313902025362052845731883214904575060931320285059454011115904969938412899037693896827963954948527965685557349202580877566918284174358836556448898026394700172681591391552177098548709606939317503203705181617295450321656949166973833373666354608463618796786907950937011479729741805300242999796662735455254863818929999499902213085784990897424387900915974810329420253592135812066539078349584203226166575867116656634302078819052776900517253107293874459747398844201553648960590974036139018746801857917738590394643707202793156317961392905076177876859174300974533088224501937443590724963179472695432999545634092597339301870045526859140463561026547150018514773951399951505890478209050196707806970858840198395361979828856175631979039505155911184822103163906055911972141044113646232568023442059777997776149360476768294600799944514694265471080827664239864053347899714535625258285522470552213122474240623100895241795106555325233186688766875389963178382840926702407646336189854036169247883221085008726567195913749175762320554357591548993167310858488519424625139087644550227421577487808994336935813006390052804360483729764873817262844673685885170941713962711438519696547062354194652747334208053170979210347676316325678521843606451746221242519072283438328751156999767544545543246565398274267578243492325517951367374940654770329190908379733471608775709628518354095208921830793891521172737740027488824008347780273360554817986354094919682572379379376631077274925690313255710285409719311982146551229734109493890152578452523714631395115706552182735474554815196004949621120461997904625989934096376416646457890830652433539778405465102516873397289194393848253954891056553884318481605627600532741957332641982309107798876362410410880663561284083227894270545970837344585199190524549952587158850510835448966423801179883568325232206385581824705008051068827117099273032036369489162234906485663004354198485827118360401999360431309103030018372920077035742998816742661878284943076018024747209012026219517337683829593021783971458102754017273146014767236121842068590994851764345536174128861215816709295512108845916986661347254909163275762183585245922199652684295117260828560563489892484801209766434945027228734423549514017556321056579368834515400821529590997074894745991369632331129660858037868854659486126408926208247785635888060665331614431265658674044720278559742419462285838923820050614218019786642058142161534954416853704531643898205577134856004521563697969394559888583516859255498175991329186209544333625584229214459281233360867793333700962195911403381177332991230941711342365062986755047041953532981549107279881162381798938899087056173494730744111004946533134254357443835631416626485515266808523826372263198266423818501461191852504416072999036532774125205989323828906319179185019576492475971865750982914752363430910125682268300963017960140783116727553486270959536307116360944124773188009825930212451994091037635529417565381301560811036291988877322837382096196060449377715178227953859062287635436652144256072898307835734608125560527002320242643293656992542291996814786659805717362991503020424982449596172600579225318431688367393607715799364523402115531809909620989867403680762254942134944443102283453216500543863235329050601099439591912428458976582361116999592853404603573101253573155028015352079135752203697054450566157184525595824649981492712033958519919694743971012993170688403461983229191746750336810329157066439736561818687344264418521576424080881853469026076043911244373945764566701018943842056550280010419705450536065758517924856420129124793702752634540073102442588772700159861154274355768832060538609447578587296294376450709367057025811026053959583758110381252032624682030659727743127400105129354579686918651001396871328055485102106965963845604031895731635166888087414559363788265102159287829937461294506611401419352573809844214275744007064551324986791758836707437471587994994367438015247434015333191135389384701721441529592739453139009884664759570674546519614077947960997724109689603800179790907647876763891703874109152757919400209531606031994838357277011049599871621278780714889404165428771351651025418529480963457473284701532252919811620463237626490551780178023439920539827505391200842189831256689467750005935757816273141708076835997887682175270340342998093399728733845816380423072260195547551852874572813429296623474415396914980703113260315131542272601955708635789797651570728599459325516011879037002302884983605458376639242971024502201663935549641334891294652061750445980154045425657764368996561369477800297417833418511911957572070820074166102092967188364461713136185707782956507281626073442747002263500955110773603510996307440595320676177496791810058475080038060852901769421631208567458760265215690234769811460629460511477598762322967098094195030638068495489640770525397485413465954003316737836084878245402485505581365873740674804221434223947506710151532541514592335932468317168887688776424007379735987912177032161074884395034738575405872849950110487230572376037387098870312332356339582198380124982173181343840691800154723633899187823348294397593683779568397808889302421767902617435586818012708219257513872601506406712007049452788325257476393670883167115125917147733810486660193948100443383782986764664771958194270125714738922338610922004859035082984866172744322248576997214681588760704345825187157305693799290014427582428320304903531200384385342887408976887404986565891397611274729352163065540578441358402225739016796625596959523678912182978745181594319287115077264893287633241145865882972631632121234121329318416575893647984458846688391284739759779235515691081116054631447583179788324691021479133479494623770267638739372044806868081959138637759738142600112752358143250449712468572086191845505459082668689577840451776190432944197708985264348549686116122647968196077547529053548389971580489612719532364970040683640133997438429844695649138269743026051475762140120358122301129765782312394607259161956077056960563639290457860218772845033702969433966147493071425782899936888491116170237423657787527831161704975273298457363530970470213874313329721207222223786975094701239774430700087348911198350181704984603551759138218328428237157789962823871416930528533382355249081282535871215987000710037864531136891681812591189627990593973659974108895931074320195442890907386989129374589529555871504126987919541115358709571148211882259541254768583451885563135040618889513697507838489471536519610358249927680047389005912353228945286635185150407234780538632159291433402630350126934810918038939212195079487923583972008093979382169800613013157996762713405494135473492277068429816535174416838014396593162695823142241647708628180804539238998834345671391250550341105845891513285386017072815816315301435255118725569878423979617508856718818018172119951467798029036550114430925819273835492574303040176672305322930837515245776984494589838107944067294558887617147917797776661464166014188644446616434869432481456019993037099041714198197932464763280973299130291895779427234631161343691598174394513130617517085094677445937358686961825970507271185148307032055061482996607279855135229397687205620041309830155814856049405176162805322261090703383481416438631019463632913272615715030760614466389437560253535541480164917771629485757378667968017537244182983924946366678766990424147139411289101505821496072721422798763390869653592661447957268653692975917393192893593911589710112627817442072040349822485151355123632667178412496256228121131434040792702135869662064611834364741841886442889622150604737074058034709645554992020201319793322316632199641421879416546930194322921235529973223264155589730307178962739865300316577031511848379399013976784968890558701969579554725019145768941969802359261645532154883688855042381169673352168002852091929933399045429260687259760009227444428534525273399082088601173975428443585788508559137327690255247828422221698997051165484445940861617527227523709647717664461208277442410314067959198188511609806025228495584773725945420616291570877320936594569516369371431272292717571814966205388106798631754261585323841978249681261431383252824134333441288111109929720824867972290512748494276500083722363667665434929899003036107515005696235415570886147353253188560988246383717546774191080973327183958356432783014915334039547845979611533101997706597052225400063145097038423592116737776595773665973634223825169280736004534945416190844934884032158612348530661677993390651577581457202424539931537162993485784623654592889754944544568417026708802415964611437602314704215045931641037773883883927824355815828647821702053680196071897816814266577166325755302390351483555711927595241027025438561259604510416871314955569599126805752922382772022450563086399757609796968979090167822933338665373158587203966911066366622851958059632224335782976408292403321055989672930436511580502153506400648283729911708997704614846183845773526023820851775117619121215126339300654521004661362683605853493566125186963014243894515935735338077311094664088483242215362758734239964766832016020229513082441743658719628950477864115521272631193185674518563624782353553549599470165182095135822551756839838763747485818112273200684786716305515508435150252209434830444964781808863999138644358709569652335296628136345378591507423218686697247802073634558118566825342932542185300104072222690057693809044470411773048875238809100945330497341953904884144623352319819658765330786874120509901364948737610170576423950790751113177515577034642994016324029938272946902182000589512317747703991627370625024610672919468523010289876421705821637717055718995322762294724901617550967161179272308030652483477583873320618698440701349154475026470065823638391021312837053283214810769381878012281489990808348149636142258776846302526477198276340169616532111345540248282482849751781511512345015674243634859428678421349319507952491777997347394442748826284166867244620290822669394811523750489849187960169444219974892250357559289690300723774094255535992574826077105074560285294536395207836563643676473547687068681292194652328884646469276557293602212738930662927589866180010175535397581108340706856518811561005858450371238969793504738698822123966166532891804120677024543307393804003667484966190047027977933816752142399215135846506208606842785763074259024123844199523394553424564234343599820324329028714865435594931396098262144705489125474755856234390709557462704536226476449154569904927713849553029340015069377068063471391282393635985770513911077962781190158308528050094031352853754646076745647839772324944712336127386187662289782822354371789532351619050463945316265231283771292512012051607815980339979778296830837326307862244033225446845589153475964144078094636619113582927390906485280593159095643666555246991693382546940881508777275562842915939535974861410588709008263421142704113199722743660626292816692240613924390146372203286400336063277638368712969200531449353127829000372327906599220504922447104822182682352120743391037306596531984749704892757788789185028813908733828394522742245808693436215030749175246508108961860971479548339678171995245334527856251957759213673430779789541784253701425734753013771214000186796237677168357315623980674814058929757207994779134415455516578193144231765699147893660485011213361594670533091831160096948386776131420814569325744276610996209331583564410095356136090565599076121006190892958321062455499102272867427629166019812176270692585532833591491083143238401925581640777789510292220418143510381720258175930149716165560173075412754565174390766621786845891007079422761811576930501308813806150100916003958651820623278083655253645755229692160084086796858907023699005995324401004689724351090490570627863540169622892827866671172206030879388378506092391297641364104689284104849455960119657181966825845339394129922240633725806550893373642140867037515380480463458889685831970944442395049928971782137752449610143206396686749884130303906551812721827355922968714652736414636918208783887984333810206203300130723402520930360470883175456412967373311789961790543097603476611070094797047992257380169527219981593848065084307416715235421947804893076157505733014289743530114660631020752275742790957079173167635792099973758408917829414534686572818202565522655565770638143952212513873206534784338709364046184617320796283578498400871643938238041741581983826688943370928943470716767853834205361655208960895743153565685703171418243091445365704515541498781180181311083227245564525586256853997079640348267494016391740997662289296234437057235149128152658772614678572749370408702011410179222389962623671385469352304924333569143577738620607250281230753605157158540467484909455398535664007922338122305002815840465792378987562488827103290485048415737252630799750726763006341893180184091572773623252576564095219023360930673792026097113552932978842350243906075713538377252577526691899074015337268334915936247882626546204033928557904693999319887690089051148903818003474637274443773171810182964394958851939876488566508381258001916196390689655560523836410777773136707298166556391790024738392449433419545033051722098868080522818868992141594870362107331711891020147280608411802416831710992142430514083869884342711862063488946670567913877906797640423024163797848556770266868831971374960774190780550424665435618953786456464960829749864233280216833436463401820659875277885096135925720762220003563721169652087656876447918287172736791046647462394477484459829472132225817896332279909464861249946528606501822270168139296286364315290132309597550787660561957601055440983446919592427983544633090167594112676983297857514719161932347028564049446049235869728986256882708567949370131093221447661944979604939127633927545250406688946849505954144587709484637584250803668628296306090412001082869156336844395734899228398852979743870093446498254486751290203322842242948329144703423092944936058403968039812354168298063205209764730551901290998557585722766429669962416137450458939402920244800383160899668743331443689679525311027946864846763561161452966372218904657020140049250896447149276991480911340904152308354844664410778664697967748578163876580027273690395490322233939998475434534440625180940821668759531588195061094028967799904076895548035872412754862915707573193693891396314862599188399322978341647677463355084514715490150389061260402376752191261924629825802186469637115876831348301592876397535912443870004962203276369910302972709090282819420308910234158912430462007458804501274399425258192033975941220479909254764816820758545514285245734873225434933480818733780378963195201154667119073025747619737376770227532281963678638747843154545209140814681237378989976030426568753272912468636021200790186036100480872900142387906824137702224354288251581956628494657402406771131611480725624689750734984461981247604494224545322169819571508755315089281952934094294511917952212495664583055529331786281300908684216802509879061238172254237610543230316446492466580946863542982147198032494829421274447987742876363842065040459812722031744747957906727200984556418790546051069681191692358109470568777061799821861653977385912639640506222138533031166454773278981520536214152730961570212344095613333654769318904421095050019003016143711126010499299717839638712998674604352216679591999171785625845985333107917146314758441514148633459319975735169942317244079414534790697904947475242683799012539280537199360504455467990660648515853445932547986116750598193713066943954752807327622147348834992548560605535664713455016302739052015829092000246724470656678944087925743599568531427547887080356956717638932637098752354908336259884568545362810393756125277461235421915360291914711025997296470903646130699736190368930859710550331136186348021660054176313619084238034076911197151520757617379792539565066186998332514295372704843561837787537367994939133042843856965665042287622982671632446751903818598243844737760742903352475143604312494924406226408855525902385736425622548257877519064177702675549592472856146348818236771207344231090542493689140117304482480391696792388422846233082264828577684539232006668298900829771792383130093155638851148093367602960188601664356437619288471339376651121960261121457141472361095768387932005958749771873990170353074520581168823057458195876997938395185084866860700896816098817836170295647735980556153653820668760413783676132614897313094564728956131456999338472451687671064537712194638929814453202232377720981082641489539591218298593771055131920066518367320309109489082217072394777669355740266028557291150207311283884809794437206819926597018927254459397249975787725841600388627484569132672260885698173889913791665299618291924999110303636046349557462187127135502907593135676887236424488364704260226449687351232173412925039955401902638013536701729835625701088787599723659599819656445981119536268117482287617546795911873370346436612811316798389926137494770279803319648722515265155514218425128529294503638595699605490030274762692946157395255200775087256731405503519352250839173563689725331043756661786044707376785182941307543351445481143578078083391369877547030167409781238804059558163357866122752293023361491922559313790897871149736932459184029524698253676551182214244906740235072618393336123007839965249589850663904597893730808150477006600971410929149403897206823660382560682272345999552786916966741609725945145638068721696872980464054245551177980108750882384109410335755033877063577382960246977641746395185168023481818545005492539471800797451921453506383306360291699655519215409139869150038719645688844517622345373553282173597266249340208203178305157586472546469158176151318922743277596036901767517416559481878743205383682334484933651264881706580853647190799165953451160501518767902129737971242120711731812771212627386707793184907294436516776684606363129639330341045739630214730646871494626961814183273266937849290424121811461214487894922987500034627112422950872753772322801851427360693261915714586886599069318082835722975234815177685081879669939416341943900847326001658787595071072245202193959254220004722274851229475649662754261306709408945410623717219830746279639950695249816522116125704124897819493469315511279226736526075282110762278513089058751391263700101618433497501119910934100240123415752691088727526820425345122508618040887762663823899789110832240580667638774536774926919082378643860330656228551573553644848323599849663805823130318806888682849536855355096949601513526585734039204861695608579599746731139274916432547946124843116152872094388369146420019621733006703569136862931382904397115904350174766289181766064787539635986533753548452748310937663460630248767496221494859410315411798586443190222616189570942353588860796908634754464237420636229334804955641190531714178730521682311364829502713489012941015250617280272030064309033393090506062075565765450087413046493623145448641945785416091280387228753244682773064438208028805068532398656121680609712355452747552417177450999544246024793277259518315968673335792472553203607411252925142507697781998064582923814213842164946545532709023986149965045445709441115649066908064764846721702503373139567949244683136263552820557669614191586756026693089961083528171988647710712690660667287519363438367633315833561719932627147692320765532902158920369254629967259655691560779345037609286987972416468815284767300366762438553343923378713725106169275537066598299155705181559211975086108434498758999073541382620503443152593538155175039541597836070272516098203512187063225704602865889115970749673868303575143170228781247733613571233255388055664066688530450233479107686043433798515922577564629826259617179901732374869387883736875810296851164526783683483008185123059907995276906694794741675848393787553721210770910128412030204822814176218355015032615105834527123462954066977414101165062674469053207671706895291237453348250484904134735124283378237505177323388548854218419918539703904264613105312824084454250054564129158525780967255734775794144197268001737117547809984433257711451880849237730001142959709666008324583046372185086412216648336735525279652984264068687794237889285505626410747026623367755199937097784839851468710537495911930364614074826914728170487142675059099825368418292733396459680096229238875377642962397463822519523630649283460114897581894204438512733903796931783333472980996318702135794591395029090371828402588203878686859154838412509567762225814474472161877112592119859396881648590920786758760418289766094034069385755247470771211159118673982995333489427559943313020077586429269414226035836524439173030804796899120449903192757892461653770809225451269813496568128167268843953733909484918075267303642276039435568434809493630790040391370672194370378652234996254352115909725502115743341668214808248872277922879896870398626417757103255262767259498746494942621887967086783419499344587291026039989648506441970034142541767135727854711903701493036555014543470219445962405982177743707253481498103466835059939438207632787058014705286965427319217846761604682724263200096232417799824524951227081044838967328707215259233373630774609598594397813367779484835368331797157028487917210000804147311935517582601413393792983749600473648096009346023752624139033843178265937510306912544039467297835512157369546343718324913640871170935077114232363176911478136614866954618875371348833467298645751472618322762695128643825311666175115701966645839367614479483700989659214198532817389754221828042304287825936203634361746723191618256897152499886214200846622615386268647688053226197196280168907185303376305177380957306453501627323910944710527493817813403223726889560503336026653361964998363514868583359611778008086483458656990466914629143007580384901559795758309359574323844690341482808260100222087444513280082617301442411468577583574201347459720185476892309065844722561619074493580800308025541991138338156502620999265381087246968947971812227451302943406930242491173756114346313373674133167848853683408933173400484988310021560783692693217810932290329969915203967935404716358994262710312878850694899928377867162067561548849778139372380017066694334879835884993322075792988858450638373535081620952733279619036582594827641201216946231329690491608308469061224321776882282074776353619087913701394733699587620680336686860156141770725618032371024355074553231923874049407292958518425689522225729112999261936647175107894701020346043732001055651261662631701993549271097628438177631290349745124865428356906641445048175525714838491536898298036170400014133971799126662231709889927084893693133262308810381253023161918820487816444516287816497359648195882942903061057199533485748406320290733008530012295378786270799916017710537646593415183653971801058596415140507380499771498085342111062442979721869121667798268411394028535797630180060567056965926896333353005907369030804609333109515360553893351639137189555358839746129834758793446789668462112414963655578245221130388011821891197910080235469126587536663023548219459433659534676479588977598000199784448797932185627047436040347719202263942436051511701992291200602621060660257407956166101437216056660844029240379829034662372547520349868349419649946007217037037112494151656851563207856276322495305137350919838596307528459478472477684421375129509159863083379032353153153053388140675852340622120811287915432218713356824355719290294864608099709254385733243811790709758232302617710439361173262801104810272163926939491708160337545887541848098948288688966850956487649140237826238810101978679714222170364653615176676436316351105703783105767297489454340210440672722626553743357106664268573494580259007941693315927368644906859809545656126676945478524026869142195439122343912720812059307458238044529564498697623335032241372495537067787685629875034623418273295978252770072830970036204970261888199203966204124567101382011087886324106024478744975759116853672643941004240937093879707280807697979432742869766586479153500558228994929839056672844391734676590411894191568032989286895230123412207526338792494119714099338331152941361799249857020260367977388329799318127129456942830649228145892302766202201895100344954984252447603591782361272349359680203690534609285317892587995861957075298683324682941447181075498734543675766779925364135935872980088401521552039128079664124345042808376060286835513088578982041203188686526672529072018106815146019266589726906673628066218305371389091253912912622566762454824197802328628040575559362445988511858034974164527481005024260743151543463486018497609624074421721523822512023117679066979203592893751365829346088626927785107765551182419549042218484584037383247492921862507998370532875772124715293540114557174786796236336646390166527955825195330382380125930407463449049378163033771809048517017231230637662721589941587172491257806395182027464209047879818779375277572902396454697950917574344494928323360361409954107165350074710027825892583315826731438471715704622528170101783047298853706082194146486459085645422094870372118585356328617221800722846922159430454981782324573736968237120849599672757341111994198770119813666229681603340609533491271367996376492591425603904863905563276976936376347383063298356282444189306863547081907119690828204736292776315583294325425478244952194161350149239303503285053552626756557043565258237281940696379370705629245006978055275356608565237942421292168970546417793585153244502930024825098526808905803537334989914029735092715949586700874413967256730513241793866564552367379070801537860525346898282519185067814926531488177580525664071654611699917381662843197643978539529844498759719300374939742232951179277198902614535149906359918378787979939056279402091535595756377236852847551763395626977701642880207189996278213104080743721797585442596313132480379257139381243868562515395051565737168156004000480280664456695796136852856573089460369046301348859645432394243319638862238399991499263211464878742175469358112133307630114565233858307750769769694759219664335746522693692479957670375515477413026139271556771835311391010256063108637085042143361169348437874689830020864023732165018523069004296030528214383144013439505222709457387160623222337024644504790561287819595959293716010279959391480432871609967965917455738850780458824258554555902945996050509933601030726360691786256997680305864132059456990984080559328679033994440824656067123618331665484380673079903489198649579231488373714828367391336598615274337842745850704200982635497972287323908902533971906942232383867979897951090443473567936299221499565346424831198450176496628075372960079472913543381912532297366527253124611029140363974506777379752231055140996337077233612170155038413242171413763693041648662790412566589844395735847223783666001105716442395679418689184435748364993425130455288289062752051176794200787344461740479177067518559466725739086041498149873765523346050135048649228656935657641528150149547681588702103660005380152217053546859114265547044859765377519606853136399946986639303575520164989934876731179465701987799570469159060873473807788377900620685634998779001281032562130890234614311403158819302762972338768568805275680487797810205014085688601109855533336003276068217871390370215237063550160624657083115112785697029708787145250726785110040314373415739277807267363533591853776628807161810862568908773615845580881940334292329495330698932911741603995673297745522374268917272024359289322533379016155603930650294551226616194990895651805038320616936953111004867340459185113328898174445618843687762584488488950135938752022927723611055270251699231843122134910462081045714635698527960257033248448183782972499517042872670239982058513335002213742299577108290287690936137951571211983375302439083596745985512154485197217645860902873464986215118712813322310721607145548158655171357052586429856895301082984606994103369663820183282488430435347446670280126909473099530025155692407735730471610512238822121387743149480060981387540297450529201233746308272805952750328512801172035846861095507648957504707219679390754947206405498728349483644731229631297893316212253636153648623584839323522543999846141759086681288570273115472755767870611262341599685805989736477814944450669422665461107101985819527987472974513707887352965076196552314007630120498363197424306667690996023973574802478768988147768207651231055882971079488831649913873706733124740311061312253165115686723744383758682972758817786844235539970458375185006391424236625595112310548898436231740650363223693212603020662564363980072422125492569620233793107430577115199503392647724848581010435575557747057852156028508110407995333918018253751301425878907099140745984946615587450517111732109348562579875866915744054354962597650795279170499859807162169662326185574798102572409924157463304875454314339242752750221224305789448451158279966981749667421712966547756190595528529244163648744294391953979357251397799736175860366279602633006722009986570731603528666517759000493618019922097586607235641780405769402647116069285188630942104169109912259867676580401025330974179281022646562110329114290440584556694512375150715193401621041910631555956144987314413892915874606128729928399528744294327993366400929992958508830705195178900299014596703106370788995634704941893059605938285136584254853531018926508166571812268489235972318346109288241951632416872898060228871020572985728189922621648541325010643640567025646857907545412026952461434413023271679606185145179531803696065729918422266846096560207974621798020492810468750548044133649385457937060493420596388196819502196350264582674209698239688662128416839656407421698967929096275084430595123553219592706539516504503851095027907564487896323693652722424843938019637995397168246549365227152511022501381567033144139671440602597357301651771160325976351428819429150001923495550718650809191645197926648912680523022442571072269045812537418650188797118703264638792458825759161123419401034319556876540641965727377843912454531438787624714906624287822851015637877127588641015673278310663100478890791546518351791908696701646022117161113356291737711556507965528548405957831305757565608418225074655985739338304765592949161365374634138576740031237501387721615394552263655939411168483625989431948182055269815632220878780936988012764406063521660857938682909925715418600220220040871000751259874882415118640668775504099999880473526617828552740997162792308969998074590715765875305180956567424021234917292582651567789306653365301684099673745359524824367242485752568708222286596040096884696086117202234302083427712279491621626214850342089149857062142523736724804295674675120029763150182825554040828985168367630091682534111675951483480125312421355886198592660892564862860788853426318514560187484369399895609709979576444284229275896887539366545545932769263814160978414252755755174945970236255651938230975820011103909479674161881613600441356171987198209735700720263620066621628335258943364287754189431382588065092554814673233264858056957409059738747263434184677604861643686279537379131678877033537285217827797338095269482151050562202716501012939766603026094677891708777066880207692392209617083964615928284012692713986802211004049893290130474764829438361802433954850060393694993557256221283548663729346473692690016335086592826441802107551060072732475622233711584035996440002166267165854765587282683491036309713877702011757904683091286233940932091419459012987862253053127191152169619591234902373062696489727022304421826245471328453729204663814702383682187313421230483677949334418916902710579293100714873010666638210588412699223782760883315883379848442743926041446562936347896125823011167161517357625067537820260924004388126357062058149743821774040360551912850392319101596383394632637674200616093105676128490275330827626764622155499309213899382446998508054564383237418750872381828153768267383019326318442427258862660459223166157402630411585562434884476875620101629633247371993287319215889957020810468579690834271791067781302830156758055411346166322394086360726101459914103740247113083949211808343776168729968838543878892788357500188566390589822768339536138678865407110565250144310419172193178377709037159308312648633031495039730807889224296883733040044013526300756311114921051210702102396118330085211077662868792289408627778506670885920698046943283944129444690200980614767710050206775757477566997908913055169540703091586862897423605666205132556669019544801307754211840684671916754283267563706527127275550917996306917303863271819043227478988061535518326564940126191184067349481572970638711055065063361195796469454764107726427775344609816060251584578713185607233803337678897008166725202015958400128735393467831368439669963093280163949887838971215613247624792541351566893925112758697463389019505339082058711998979580877124311696329388119629634192925447614910402665016239234898888679207342734398470624352176571364641291147990329286515509614746596005860868731773885733863907106855349753607369417055100260176636424935428073121079301423409750022875062581469423441532786501484086167494871408699714884445869314854554036797378192648644156881578499094189623992630386897851372737828742061515869462120707749893342815430953547608161903165297038639348364156987289637875615333822004238896262645290841002920708534336665192804123508435707558171175162558228989140255281233642330814278572456936460099007245274170287423732360684323702926400165210674724836842465278426421721179509445688548733562686866709280932634970588056088608342982965210236062030483526933357569427184051728415253501980967098858341443780500770246326856658286398164685957086980154757316411651510457639612995726443001930982951775838683744106576499894416275665881302826499757471949344989810386857758120015734188390583786681306009752500691869229033453035653801973286239728725364751679924093535063595282056816195540343585528487479551041552851712485283416024712439747936355177632026974274275974933027970533049155701343046432357425312903012739048696878545212800109629594328010051183549328541123304939616078789439464494915537438172044507601403076961361731812782468881404814038149839123800345108540729506627284953134306456106195155122171860467756139352462670668191492121034767732095583921195680018030254007512099199974052776012615975014636846421194566285850294490352993292464746003027249499894978043553715594788509553329355443475825671409517644313639516813622590253666649695831758950832093850507736508314916493411287810424273125566765182818624869909448654140972087094552694455682936404223724480349627522424070902600949564549279664838363630875043154339807724395742592356910477310462823700978352062402197641783612688602120247837959021369445359999727148283040915271704589009925316579969361283922026805950449233030821744708423356068125261368676958266584956243105407381636491798368715738706560349684369345848325541598951334208872837913255143647199785790005086700888712146067105828614739158383644016260741961325426091460403057433005695049246625316816795561660474184382971336273510530394841445856536287934886333782936118422679921855779515854701049660102481723936038628929382488872948543693634219717761183415640615655529634652882823438290710695153135241043777453847326948571405947490154298855085847030478708934560791038239308281832068401170336956476663024543704635525759119916748948366287062673701739340229336214485645962664188460747904209311013106174076418069966435593721908214889224912326668052137514935724060943963772163826792551588819858470752992103327993579843002882636210262319578925025265771080420163408685100383254889021616761883843945437045391533192008570463918418298682637789187338138959312834549610224281156485739619748924410974423266773669301381876977458035707974833852837853810436165284616783607721853871251820153152281966817698376053824569201998587767656071909077498890200679762482057578142916015301153462711141075647138819229033259095071582771660467190214277165889829759049430342230662683308868413367327636450632620150516567160570337927626047553940126721513030943139194663882955074932986727557520427970562185735262148207547824572862167811608825635388780172417039543600143562305937357610470324667545527273598098751434284646239523451718915502510677454082862549928057939194412753584801148237359304045577854259988362663220968839161285286474546744216970647834168904945538496088894910628452212372354623131106346886368779313533412110690202779108117638000771293134986648948637586307085971828221608710773333506673740687771293426727642596675580075291250475863830481148976353298476016608202147069374429241746046122775308180263468221018688938935558703192023875086135124300634855601898756583783317277443567706776765101732221376509239011353608826497346350276614283688860655875412611371110313971110182452063466230754169871458028008012904760407832056905686757712291145076035201362840706276380012097091114291478976393944118578867652585124763090328974632281915322542316409117990126260120720864561101934535106116684748057956829395749061953212793660562524628412368782634432987632705099417664208189887696111914533582078308481139098190131982737380854881073395987377553387140257245762672730494682964383956886545196429025837045227469636363438058955672872053614521833502385674069496663031308858107859333433899504875869909132544535774973269655646402617212440819079834489778428915101821327499180935090144597616359630101083973453958919869940632569499102131008924618127103376618187556435526397195705990590127653463628144603815696191014791998256877098574890195758160464204575741770556362800610259459805889987707232928615436995921277677964578103282127147277997945113285813516388974481271639514658389572468467822669288117875078409156187491658989580359146575434887215806430241212360718057771657175767842364828321830972782184858555556053747588138523459718890264437770321027580711578623057828607302125427349012157412715627835274658467577696502543360413885872359310776156813229672038690640718298458064706707790776519555517993379826317403444322496448991059106622990252359714849849534418035569414515984318525035141078070755856152535148429043973891676410063532145029306000178446982580339000956577065557271217994028305903784908810937121884865496601165691472878759057858178755049072761540325355360192188165610514477624525214940801617343511853396601629019929297016853974369361028379053705926262002496526910202116735390174374247477819453346208951887769775403788922797230056519076428530177349048692034230036531247371014271386365855963114006382937248696327168007731656298590562195652518330210731697876502779717467030809960969668815854658107882037443271732794150701359603624876108126974147915802324265378531209323087252127376473852567736047168440716603496822452418051235401662860144495610840914261827127834176893927635805422612618669412878316495397127121336244241626156318188796511522335424779846060187405581943651836818015408195583836337483343786050482890971739229904625667769409176654138416912189620348302177823727908010672191373624813212167094677656533262963793536047783520199568848887726590305325180214255056474943848291714447879459666614218480894969853975254725517172902776172978763799904964883718246146436569871469409748132194274613229624164262812253840494030648981260845626836221815608030235698851590265863738334196383260118118849196801659079330704450760827080140904848563370249124184152666667753258139723066389174582379179291377577156040897419437255724946003451325803150726001165998259128477435681253765265974989273677462673256564053968437827347741584640733592985574604645029627325448856661504501162932656852737843577821654018656433759995374839533307063195164880844036691116280407628537932917444629380188725872367517768639168787106952657871973979483211626502261346286750856075171638434003400107622125562606364009376651801120486178468728202407715095594503784952105274644158881154695867947036848235021926822718823331374777891984955336295500411514307794594222929208306962094713619182116475956130803924712932402066393322913310591060740443117738592480794467215783551389682232286552395420543731719542899489763073333076115782555874279023187544322553341376024943102407699707980847157586337287847142993337220417675946354402048682848526597506790954931836708160390149383893188779893783986169084121324521463454019641143222096999278236641399106563512488161762281675798515617540877061209238660572551125994374714463393844026808795492684610754554066377069501575400880563619814923700781474063246170302977730993729823806731494843576722803656193571991168498658886923918899070717503927090104431806829030334582921049408593966664664943634300733431229375836872929826438484375347800466424281916017673107174822211061462174115886814987220531785497959549947784004356027630106847733932715670269366241406196777621039233860345131045021926852456119319077181714065504283353566770410591343044167592496491349789674753737595214713995505271797244526429578032113525328622112313535764950133597303553493540217752619183389820308218064152391567401900897110020982422255299213088141655753118952280560830749482306282928311489100813400496305626023129286276517448595174391307926616702044703099589164109406679336139627239353475952226830059829020972527651911444644422852909864516718763251984547834460011045783098350922558009435194921786851139605676814748758440541870531662815625686844796802446172929370904307168042328661175903497493947488915018334131953655786718947075868333951184070776551964783778502036802298827964381221812324530777800409023890419117030914904982189387645239702620375678437609017979847664789010500495269520647112111463397411150942556997580489540218462655280540123568521396522559062045661246763626410420872793288157306386550129478074025224696483133501337865201108636874018024702037210927504986062738661610969097839344408710777899908087595290142892254222395869254905297676589823447328039675177910427960990489016573841200792468210883081558173254042090533039483984104967841079187387228209445311384344528949281956108306559415103658863944425911007092623909235310046660491843548987742736015750127694777961622917956585250224886085456733410146224865043941645758703349258576377088476509340342964787526895805410014281575354050539893758537000357415242356335549177905547540734812180682793057939032148069785687106808013858811422091579996290666435028712974625341809094500975535178869662936704555131069836595418677449116654962080613719211691954965761764137271858226388118688535809088471981326885863659234348485161766131716248924527334478003536303457386207551403506440835361185988595410931466687418659372611796606995714320374613755186598946284205361938175703974702147953459593033881064063692356313251593532132578707040947378248671259773351644840879819813629796160509556939439413364877087959050368034327330142696583902151123612658059313526554613565076722511628430701717845412123421739364067547934721700648659375591875368287196929656667579455646516582618029555665811183845051092280681963413157019780344896178364208488054771954030513215140063682742772060923471040191887793732841248117737316022668295056866247488261116442977611099879116437264381253854902949077446015206273279344754925992028374379916656288155903281049691022591844188987318323497197110437067897252012606254006322145483099566573920907774310394320929092708099887981309851211475739712827829779259620645913930435357041398715193081066485123276002409416841680713291827402602429754663007550575620485477138812321493041997516075095553330328883805109220842047304439680663161870627757961487656191448541762803255383837362642313000088649188319405788642978317537696890600234884865385038488794196488318973350591627970968849863811173815392756027151810707862296583346794220472965663416337005370321726155780097854933590130299754458375240808530114198402066716002592644824066226761026912587619852438591465248218349645574330503454849135160894786027165100224133849307822512764796847638330080080295685650444728440464705742144076917961891002213708872863395841102864872437207036128284399361807308843690649139722292489697891410386322327136013645065308906800649964939885362754494041368971341701652551651394905768373707412574066841382730865500717331538631941791687605903165927526259477464585602507093434445993079245640157309709075125662032026858876265279918596317379137005607982347822655071535394243524483979036300844904265870221668190352317474643780759017866470679342141957917320009474154744714115833387284785405960209493818507696849360134527359438744915685440451098109976386483750677929852020721863208115356026084629683701465669832111316088286916042523642382641006146587840728985970557109141476690577433109336552250167776172429760161418766161196074422221802870622196419085567988065134657340957758434734106860464798581538527596499427117884599581975645307869427775230134135269532296821976318860694980244077702436549565730820077519204207035590410863121765173806191484274071897766272799151899753087966452813383618112775713479563784111144351822922499587627149375878512831444813332589631868056881870712832873077225147786405060134944938551742327883948586527964617557328725513512868504698265815808704761929616650479985685620307825451137491116733638936772486944390203822491176850772789183624522544783098344448763245815782854395765928283579106043450288951779272727622056090685631103253368803149085732998321460579523523342155718972848269282468584774691129058305652283609636585364877178744768519590220432814596985078222554379962665617509101990572262244963836456125705674259871337618270909417273330916222483987629128757663077794359747111511472342614042321085503308658927798346177246383751402181847340607153613480064309526387865863988940795897751802068947404372318249442695094631553605457764144075633937558814353577163935319378275919967998422861063221004861295956179072069852112531038612178322699306177767767248662704473129866698925926676256570257401566579433153137294173759120893128352399258049203782076629881992646058234878409610026105538888963129276986583875979463108262811860317245265236612472615734865533293958568937906997139741122542559627858827589495538665268487394708506125691159868043694365028581594752826476088480722922960277391088573515445272236469730924695940476273538612228114500931718095453324629219831752223404311699835483344775102632342382082887088249826145721235689995160589758120203441208316025344288047634134608141845467842983246373569457845271210568756746691751146951855313476201920793233240359121748701964607512902357013630321242768080467881875794390290452406877657208117627961142395278502045939090156154239345439857168128228630581263039700968689439948687861656721403662827766954497509809290500474964372178950949178894856501591062695207294572411180742658429864678580434359043584267620187108912934054385047691127531553932277587791099969929598847579574986714732464479794725141778171599089612922489104559205450448000567659351037788544275723732837604825192113869647523080697495714710940518111878599404665190077971846769176781105885316998812214033332556719906230151762588055884053866537192064704554495189543431316988520232545937124808071408450233117705630801395713121827672856988156305588729441165753743850477398903220385639738296493333622226830036102150803713936566176289328604232646527489263792092010244269938740138270328756521999564812796454498921455874228424163546542086857640366976313774580139690092509048544271511739274017089643898611039711573814869227994980852392958830449893020048947089736618772903857644381281425562870782920278303512340453413235955992266399028714888008485836765923157294285038895129235549139115517162852916727459191959489232189114425378337392916005796501269074525081263078764573203894602415393062435785278881971011223399828523472664516823412308276780914877130603494637046436297463258575232802464821778015677529503358607546345915735734855105179715391655501731175942672067221110645565663266226475371434058758582128329579619707225466290444298553134717041287229862648041586370286906953607534500414278809498943049675132986379051852526686006104219563253032485643756963059443148972061122578313954996199132208765646304751977169659571758838058245328666452279113518495018006183323316056867536000753961188473223911619843695277934505003626863449545474072030783887729783733738000246185602002865111914928371518381199459325710999230782155117847811554988036337203824072275681611205041265922387315816131362873735158883297119179511418168691130236907038283004233662384409658828159258912154546029703136422042323060747111471623232765282564453387806159508546554110808031164650918414252518400464581551750925391441549056503372140988614330786991547732285129738602968792268339209506249129277013973483851887478374048102622310687986155252620189278901779120781395772889476156172797469871734979285758362027174617224012248784234806119423771054946924739378087988865752597082583548201642193803178100741699411151239654631969100811439260964161127455295219954649593012715904436140158593953082630122406996449151554784823236388176163363611765209255144847496754123655280900254401278527375564511279107394225005472822914474804631783406010742522207357013842717773621567070745876935424707504816296357521628844855530202039149047692710560838751398293818664610917193596231551339464273707821152266977703032464871136663230681664859947371067096284238238138667065292154368741960417347063664518239830476633755590581262114203571067518265505244861726739419592398833172092794597606573622231936040094508867790431630953227368536247782596126492225205812933467248277139250540147130098648889237032664272287835736290112669053953612045383496728207129241889788523347802940928649873925273980174795886746059669925665474757584989487034945092966925618411155435302046790959534712052657600125772159223036370730781332182701394244255524629401240369413999333039977878573861369950964121397086435489610673592020291483407639775506635774445783617287461765381093772092737288590016146573339136632373248180686981618783379534996510634996835751979601957242214510756017919664898342243121158496598209750559522607023989090038022684121666680615923027761740306545868276958249718035173982178372477719393604137052067670601103993515541584500437057915723522746917152462995948826509945773877933901658765869116671448545760021875698415220694503553866607314997981104573692648005817291561970696539281713993774440416870642615953264731082885458727115830226383890789862815556621804207275006258836292016681782213768214361993179119872261247301617631946499676046585530387204284270930046296131966802644316080711855790569401446244184213712963129998572021176145625603534594534554806054437043007970272152058375943917195153503849677454121185488919735971232213180587758438176218523502894108486928636211256773811251137553656838114596893949384597831642063924647945834006953822666532570574475021625795246236615096272368506703779331244028712629843643605500373306881751389870215272295750950758829722991374791031537560375254219119635969995143762698020024282364592685603093012735692938464864355830040706982029888461521406975753709974538309767025430861291065306916468103149237344084543894590671461867205391924563764093725058603849032978921141198815411396189126270542942895143243475346951736761518755899977714710373962808002975928228043659418179689166889482416136006398051248422650345394590606860157538792707315483380225807802368196724141862745833220052655654262352137075308943730918962304652166397782226363119295994491708105197467986312687156746962122216489627889221681157187617584271484798276496903523094702485801807449867043461905444849965767189875239950085060772172249764978408413564666476755670627107579525863886075563353884633541144622445259458880726828351119069456457048976938968460369665025348435015643332835579056534933544293546212374825719634169523903541556467170529209277583116014149877724985891799630705676050480889865442653851772052420506581452832491404590378778178476156599044258124222034543299658506861465563207345826729554396248189440343450250616632840272098555572359535959514223978047045064369324495703528410633969638851230444406711113772536247138153756325716807615985960993073687066218230256204086744718096061299362324268554391298724315280679989069004207577699160047657409393491891094928507091880629003160411571551970172987080650676553037297935349292157172432967046543758480105519511155948769384271427704579934706165557575702009504346908209156866399993347446018380887247602749684651273784409613988114773270589797104205464516371738680911641782598863387055866768935144824862327477948235970982500127736347390087973943162295301705560174295581501220854429691877096987579273972983353324876419532792122684696496341143684670908414094350853143248978418400149955382933921575251570928953596790371809240693819165264472961831132858886847188419207589796625484922766719382210331914858351406312037179310503408460910169241477686946523928122398036799705360445539039048623835438682326427129061026935758535128193315165405621428200983287543451438079813554536959612639498756459742227704096903220706420350122624970269182598370852319106328501031003586546475576384494044407300143141902049974667514827264603079515048123337195969905500244427143561081188478060194097892423940679905876039160089625444512050260691125602487178565240420768155159812941334046179110734246931909396382543115358622580320733870474893999600626525701790532336680501213337484715876012659673807476878371775762626819605044883739367770317367182384442600288140760255543065170191037235885275729240101657161469864369886724093174815148731836437317297466835802215362061203497165586077983668649940051470285591069377803580722879471861152553195143650786434550365826063425135759654885476367536716001998166805975840783501869541068525808065056342041497591176785252087938423521872538123025213350974762348091834736993525115818746740471049616050117462342085996988855288688793552338260507279163851242495217580288317153868590107437455469408246653677266239335473792626255827947393588994069599229569482675184048596188637959682330276762796203916244871997122871576176327892948269589536926520707132849130505652886710092672442885768286069689926724396739198751027301524272350282088471373819653818175843238347229927123373595434618239480110014620999954084449880566361195935455856007388168277714610247008552289853980806030562824719237483630682085911611586199165638809064954778106116144370091534953865442755467799922356858540167345340305073526591640854499785069949570530941810214830788248031887484171934813248158668959462417207163968022733493019755980492429298289696121510350643516182916173445526091057495161067941296239992802224314157850128472760839963665634733889522339787320547569319105288114404898619358032877399587756453190338591962889826082284844841147789827284929255248503865273380432049189677336947927378877062933185260041937565383531796866968309608167013875620388671248902798610987898626879302828507895836387769251942622414809904148072456746763761051657168403796250757406147416377712819395116281348664208631403319807555987185525021620828629731946546201523182215715398386462854520188595437296157741981083764650921629453564195815197921919989042192981466109401752144439725560614026813653851396139354506833324392929554528477056310975676957730797796852297102334905338443465333767705694938955671842844597030781076634857705170467160526832369746621703692094856277251978214136386017488739947745448884557006791232169732286680857549186791680430569401711274603779820408018171727419014337030629857248967390025560919826401883679915123709287789006999005782096687921165622900273332802558498506627214997084150789656966407915100520966188725316961582703073569165277761828898309477563543287937473229409997423710575723329883690853853739392523853513542962482819429229565177418705541655408042539806161794332284590909537332858344445687603752558564120224223201042218401090881856364332031679995963926535680023520636306740563802798499953446970440540321958094482977035937581453438146252190133783124895587938702608065976198656080375767322285688434185614407041335064380521313730718612828919931165785172739884141845102573483132551870890721400549104126011034364508987501794468421086094672210557563005536639382761661115863330205320377277722918072178099712355774642366224363903242820084177509384511570765826616503613709905935440423765904879057075578848735483604599334239274241033299707903563066990962488486357637780822064650126866476353904753293302875443760799878401170405929075584398578277282611626087617073774471139876775208031022167757781305296810498785706633630505318870778154434269982892612891031395415530933278657234602541686159989998281466633571960439276222148549251484952689983879419521394507291930555660318767084082061203543528920313555130013958846761019373027273755195164965413143039152150206304544422382558398451661150175457573801488747607388708890710516352952326479691188174100775139163126345097877966938294739627990076264590027483732339936869977136153959106126126899802420398647714158665550040754806673754369449758760639319643337437894794996784821523310939675863930634073101005236059943918572953781331891128196476008201389004634529318648946895001058533091503689768807595779933079122643873158211714366572963702440483382120955028759681066615421977456150747606124056694437381857974851266519475710305205783540687039989682753821288081231594558499468716374223831749116864288684874434837348732339864551995051158510235098225408669454715196547503447304936108395122174461835770122662737468041312704431584430045317481683358131443215288378262421614724474357380261009181046599827284797265323756536815881421676464821924931148456199213841452339094166134631240583343808164591203108455167386989675956458883826511058257690749097445581828817501518840022761904186461100922691379283059523901671473024414045320193498510462276746871971720267205851963478835606833216591930999349461170946525467560892259698769134290736484037543410493523910832556141860955943979887812142085894588095089340824312675676287165856240781634810196814455260949978383556092331127687065171492635483973036852679194715816343652814951723487815214911960595193396077680690787754496967356825820501092956005213584919629192083307445641597003461441546703476259103596953978739868128522801040388086387981321988709156195210560807166481355973285519120319637726915162099248868819407916679661107892065247709816751284342487189456133766862902907351224330121602621008393353720954031172149938837864248397458858570025392991965582793284941756777325920834726058602946713579738523072960306507116374594618711554099557773257749270023647853637741994383922459708840035010649450403271702587538703710209857465894274576676793643660162165601681746822637286170400419092175399435513443629120658925721303453727508068989182456505051864758645716046786660903084235546832812457659018220756021640839951472433738894873270430992488747119750012055905377310682141294520310227951678604160696256027964918478767121520708072396647267866096562916889687259182717550513923177760994652649167022551075737492484532719486003724433377959885719433563512739002332813532346110449937131519258271689649951495049945926379492906501630316398301445483731566474352252885857943109957932374347108609769595587328386949836756229211923854240536888905771818724694996157352515451765115823887976989546978305307395432307814923589169362059177999232735726916896352857549118091177192128115237991263874611418368441522720037933071185726784179565165711273427232537072133660847349233098711858600238693406586693035938149706248397326721046821051589764151872989791909901501913546282983356339464832987674658181949450443194778555894831451852604657561807527758437504320605466556030666280052550563197390591838693134565555584213696676500567159498422731434350404304732715111156960424614962031392177938405632493861472910276017646564844035776413398311163397653344635932457475070323976271774371516586487972935948361147342241028820182811220393421737997322591594759519202111485257997398348222166147858005336098242038722745181171802295199577587978368138327215579512132440932808390979843228128228054316370638415936797936863714243967979636433587606729049871814691239259265456360113704053951171645485135199898425257567339151930923757790316035711875471193003199560887069555410982597916114708004838327634523313626597305190234123575299501281997809257240019726724681449173180192101362761213216435132037480324904318738253606488524535887140036943111547204788140465769795557026591485767064478975703850511245767488153681971198579004760393723447830429328037568431812331712122879845185421060449499920799221288522496571125955568283796371870232995642809530128346715627703376716733461753884944468946548443649096468944943098386103724068323674928830632365705134825799185339229537781553813614750125518219693216737847429562343522827705945966546049581459526541875018112175166472683889316203304784773394195685952344540162102004192456964205321166449249558521008573731760332375610399934539280097343295009376890213385262201243750381746740897795473040563930250662356188251149331364228329223681683151048355269179988194903315420678643735962734077245748425176017184018024826055687795401134111900210214168843592502420686354037032069712826140309453711137270388792985102550402953064506722260060116789113611788649992274878056984906817669070243986345936507099311947198466083002980098567602416411300799195036652890016210506511487699587115986068365794855714733958876285558016571229148157669889898408534705798810430975073329878448828768798091892196592408190442218151571347631104915331507206556496288955541375582061028663905265644177877471463603962218584186690221035768883301433957274501968098295826957989373686249691089363627096528231275824025469172389523092092460474790112420350082998815257144178045621445706823577251883622572878432628344551588547874389316753704195743476561722950089464242262734211779778505707678685422248907182646362500826506644426674829341275284981114065909474486340389963968596837998560557327316486849259006597475501880373129883937324165929868483909426700113619317263673711585168763556968421475413688717414225859313549548820698976064677491923991607322086904535290483072025212373310996144508273772376411610288568479438782188943485415187411489080592822133544459945990798197422783879600093803538423799501676316749101727307537095549144605278994454062804263423112561681318612759692603457070427229744830194549200301737791925646525097253406545092228742601952996587177076797698875036003114014565956927909998378167524589016191721550295945241562505003328455702941504539188570468189964004194456402756562416537452913545973970909323803535448208586401375433161496939601111894916359859471107132178182032272516610912192204887951782736683562066239490580436156745050101068992467589999539817409942723221706398587561761062993277091834253717544860873348320475852284842068063312449916215100977695163252890071440821119934760772095109229810268903810890349781518495839655275071831093188786036370566223851512417430037031387510224301009269776271139376719254065421667974029574915206017799340615222989916833077024537491197107005290278826873326834845428995181015529407311493469826812554416900824770876712683132600922786242509205957189078254197273915871447785914512113266702750979228858708185011039882737822978257508989187838373272917659671331953787839302123468908487523770072076548150921764068329325328998506412103345512500000414788516268360237723355730912607004723069826939974281337655475403141029444068395587375464177495544635193345879843093310877646851389253277881863579493778077213742504293642566150382592862435838820292545833592361964992324373710478943530168231419979915125113992620797462854030524922911447070515434396350086031406484933533978050460614578083160816836773354998694209587657567261280812302936178133322245693803262414215596964689747100080848239872928434644278878681266592774904424492028951021935194463466333520673042338024562729640445623205175415395932607469265144920988254359332898070943255064206666164004643601928219225748549778938167115947354799494591884805682738638778817797519432363430256684255784450268903426278314158721760024356017946907622258426077732734279752859539105268625466303008540748552502734694543273934315136863871738880424216762253081266019279955005259156130809140753705453439580071192634116884837789873127305871633175447346134949898824207185679133087601810588153510061479800825796951800560760434972813682138946289955131628989123728983564110234218743703381555098089290876292071711133611553970757885480764310363816455526670793796494948682128908882338713101931682332890928432042282855198585244053737593930987693012690649386059887270063666229482911759367469475839183702403901723886444063521193380861308204900228045468049332456732815069112172241297635925784148906774534690655381026894853943723430278590201310348799009305613985144810561842518069903584465601710546055737146118334366465302394010037235165763076081534731227551816335148101754895166500203311139399951490121365050562205749123367315960349319208319310753941085730228094950772531608229270907594821906062290004837892351871355241638264974069066108125186341475667163970492035648215993610969211113961190226176400109592955577575313880595122638015256149129185869843187435876342882860134539481950156178548705061453883020585145801537048685312665164892539309026606317260699659863979912667631284096230238520265168536130901497873181796986764627940573836328762327030548681180709942807169374948995568918139298891397841437608891356997382872662296642551507198379186703223471942362955208463720217818225580758408575736755748133422989961697004873951745403739223744351265033296959404117329334063849494340171028205828573940955157500000904268739824424309214695130540514925088506909166666706578627565927086763495998190346234978874467809423150554753742234274962171974517449179572159112895132744967874462315229812486883666616442572517774421909447307388064614546287689848660617765056052061522944503435495143477010121640519354322901451021650866841572823696771248457425926137182974162229176651328273429089348528179167040248061392789771449385298526182678716946875785314811101763036357720389869982360225296117244217714925304671183538866156888289324614267901179060903561841975367004131206603800888080233116012552367131281600470888072172391401035057612658827303985953538607034242131872590769210656774095933326116795379877541535797661503052967455535763752043849450561152720005800095701888939466852059848091211058851340591799922081519291517524174355858144290808739841270042710939942359276332787508509779117692127068377892208347080732918825662439701168963571665389755959453739995982541804040213473010316177967292453762453655944276364233632612221591314284394594249751534939607014228469509770899578786683906747820331273329231741891229058308449033936818178769988489692041228195424701110997756028943210302833180909433886334201681318233580333969128453919950507837698549411898602484913523569400059839538833109762169259788689613599940547608599646153764600723704301735764153760672738973468316868584591007319941841800756321876941755223923782437201757002533902356929451440718261982423261527678721034038716353341493749419978787208208057508567957028907418942085485235424389866601084032737711034956567134504783325749251834890336106820891275230918534849185584629230611169815494348930399954856168752897277078445233483555743521208580311945803937677390747999527257871056716737236725473545438737670577294125027105192567381010484742534434220057099174549694950912437522472167308096639588816360957999331834586508868926386007049423098755375107663737950228698162127672000657295250453197363136774957915340545488418036899739002876083560169296187433657397445533152008597787854574014638057841253069929871008428043752033053209438469232903782507439549661913334683919818330303458345141075351654056684717057092892231762602883831111951118481356361630560882788712868485789992301873405362540687753410596442140791333220921984278527052777821107201958375424902239831467900279522824990745613735541518500245374164871032314550197527871574388989155774748599508109408253626346377456092043481128441571935934475841235517212085238364344671480952716894483953904918186660579612277544923330223306479199605290050654148866863654901586853883870360371012731488426373809844765428439069942621598617535152887038263135085087506381082759850060981704730282268044432332730339287858818456161294374192589222472715987437300635165612536441363799644821415566951784903307181218173215763310104213954907445788848761130388647161865800211071366211285328017062992263841818132885279320349966643378323184973367826688531068283091653864506861819769001089891671075534703643892605103479290379298542376186834071596337448428711616870928269030824584561317421984399592919154371277222599256746011878839854808890675496810921946271100468347148133484524479269182305369194211475654670659089419035628413935282444188175651590297942836179161960655815673441779705629835016281014557172364691243063397264061109934315978619326106765305964296176594771531173322864714206805813844845465904732002900937354512513534571758088406008981785876755083375508342745350593644644187804301914718248926209376796897275138910081182436362148569278063633815346976525607444786246114843854978087161414524375855263373408412226495385468990261579918101533985629420526372580877710873648919224528898097331227195549106355187000960596267114751329186084940244233104628066728910149334766244681172907038609020037244631945649014386374887989267087194856535805320495112889228349209422741509685035989024642007344098339090636968276542889087882392715431000062457563010893175081017895835911780343562817384983121238793933470880139444903226448926725806879248435255891749764421431371269816355129679467098921867165025195710753277912931102976292185722167505646058359189789584230221349065523844880000460878513621553745680633891706259981205298932966443133413789002691632449025416458996203110369918132618059208120558730008318318151857374605362047853033947328806127477331922066143324791896239974633084765025079099603178960784564637578328152071978682492832751641445766691261604053353432999207769364068096379664738927505919729997493292386164545484628281784690833275773600563629792397160208271054684295594420720014229974941448825793269847081372719371557260161367012472256114995399871780027371621226190050931470452520853108805105145332595703412951813962666606120160654475720262805850498235784287473623549247911269409863008430490730498607278518038123656315640259832827098275904960430797063321782853915361797418733265889259066159909832500955271830474107798421749417253256610056074029047260143583948850337405061596589693694229102471678060970604740535162304865351857897813986196540385313036029079713635109713091900237121429775033440650304705871411695020062628237675022752258299856055485140212012166713542471661339362744454059218437447110048724202189017763353337358076672431778463826229618402378914116522447517023201413382739306054975674016940578046044358310983164992608230894881914224834722675888186162074797204701670310722886658400409524178403755639033625793609790620762909977005904735430715600428093362864503671598925425746836481736592593541825223635893123923733002317845156336901173838982469174312800643332229384661590686740273073190364313695274347498044246583557617642494908016529089763186535193199325602386399156098368518454228330649345174320507762249865160112669534111039377529389772134274866054370599743376235451412924743208899709517473385863371362527546241544285034256483674135934827486093219194734961225416963452774083818295441884171469861280196397402894551326327347662453254049110190080396860698913009131203695017325241261791684097538296250134771453771108472920487156645702186426619407667920177008703240067337860047876619278246470074552359570454952892478278785848602206820589889580578472086530130633821175904483792934732755702511216665410359696820288722421714225793335517665750728852105006912794424226409269922717177623129697001345340391731268614291264836069343118841804109739252222367519337829971797751430030155757804094056817939350330888297782084366072386346493366139336013285667292081555997029487229933440204248138478904176028208706804665372836518809373806487301490327795162568893407820649684449734121451920525655532948342821672612871347645601867287704043270680038211131885333940684713471074290883202317041171737836291483034242364055168358156515810891306875694451178733588852265703253682653508065088734830727400139962373523626565392589805122994441385636848577835399294226645445008885059781982124734692154243181611053542293048074931134683319987994225611817526976180219889005762337627531560515112748055176531819351131074628867908954569116215786202494229667452087987381906929210592900202195057926382893986479595776982764265263185915638895402655925979473474071894181475784145414816056186969154293700917898438625076930821255656706240809506671885834739080417880626586807423176110041098350149832956002539148986387955449082246226515101332692134535582795950758249879231395362101570916416023405967781278842528780382607021556208583269739411542311378717080839449213944568983817625219764188724880282206389117824263233884088629825584314611251726143479804735377727769913596525299171364777818694557041713677425866658930959098329302180485642070910571755439957977138331640822520202814309975191797409518696778737179574476282618834529076134137846983768469752037626994180670889262829268342945602229809170859950661119950196874194536586916622152848911522431944923136808865080372919688261158026072140166512863950009748621388510268068207584409109827883550814549172000776352429681162900989030615251448160580782702989676863724787915996349179484796544469585928938101093087640462765444526344411397408889616702751627438295942898478969100779186151049285966224719592126469093785357214112945826026051946906809113682287015577501640194888961429885522834537978798257281068241368208942986425764239765858736568506608370550557321988936317677634677278005819679268071618264688895568734294671891993860866333655040724613201968281580620021275302863641597847321335446693193363234791822604004696525314128648717929872936186865081880814943229236841852924551184562789824564467985167907891330707957486719248671323557486397197355760954363911054471491860469516215455534360259905624705093410899003403727847086879234292072481988803091915641070524651851836698243927570009904169097319233230398802268820195639098010085436184347930665636244682082646640222973306309795255731238684045700937330982536813277112833379732841194282010168735209882538787236716170826040533428346756380690963677750403385458324236052798321803050791157901729172674855935142113553023277718536612656437903689842182094070020195321531650025984576235618671073589214686273821031246377667176858055149178840736866842411717486856417562646612140003580718602028440309068798310239418501067084785633798773719258349279444118856590858601308744316162895033632831067034363491678136928134622649179177680531790661694489172843407964559911380394953916316389450397171686243476482721075359039061252640662640808577411864239781635708610297428394349634549592509014078902129216902159469740237727637226552087014069676792706053355909030370202579326480178345278998821759425399559385531481128479572065447851576137509788585221930731970930385680379054870440901515939877299316154730173083439927070020500052109109480327798733887675415429625687415947022318748059878491388999139899596110374962503948155049242476226690279962320428102670221230987995147185638074084486977325343565167028707912483056268356314687046564826553098572276389049762264530078736816094429511402345069489456306493739330710197019777650617764628569339364336562371618552982478911720098199643417947349740145801548184600966870396668023070191690836264351214646405351438893820019882777035617333557820151623192845527697602546507314356780864397246796520309470006925959416338252968963439016617993371687343659422398209986887000873281180290621080696372733342881357686308927582180724713193187785952790383034710855586290022432391329991630818124534473422785756744336879033651992189030562932365662495315178699569867958060287257504648314908981215381842915046854870338793344813175516115428538593778035146588817308400783128019608285923939249794886233623026293059040681528419785999901909454587954164580101590434862847051446648301316784219660446283992477574373222133577409033040598631081315934923314808667812471195760111756924109937528095207113753592680358530307393363698957043215033155143189375364302935458044597025054316469196756260697856904097830891735339924579707572053898480281518500554940751591860787829964213699530040931395545477663948345443521093136781043660971867418307191742303703834834404456958170703086783076401334323456711950884191853941282494235485009367136894680305261205380261300990170904627931613094968486865041387018368182047537810133613568700705936596131022010800250360773033669822033939044325153947539131919048671449827856312525859799724418850251210705598139338747963686189984502262084863111219666985125830741742757254202682366640350478731912855905730930557582497093575863708251564003967083692764552397786691594946517956467733084968356384739973726562411484407433632024855868002309572911813340879962833335718221062420551740995973096524821982377992027948711074150779409619161698240711674165779870493228285760836819360631290519941903257418717727754014543031709860687149982449586391351816453624483468994666087854575569730888625536762495317888233463394489047726930423689549448638734244464346349771270324154972118853380453779184603964554822165228704596166082007257166591219250951860286037892113208274676554722931931845929489405284415226535175596207472031701064481917810397870605118965354013739583765836969800387836574574388288193416268270822112340808701706789655730882974912662769209941254748725171104545277779224308496869164586226664197545636825693126230516517001730211141163604879083894931513389472365973229453946028934487642482540431459690669084063744524069192625505890557865057707750504998186306170521840433006214683026326174132833289799284614033803673619725721804106626831347508600420493702543776465402465964914978563553973283008096892289734718925032958034111206189063978490283790188639015246393556935237708627159497422810377922490665092643097014522759882882576338680526130832036981881437542344357034928373377693168605747875877965557513190778494621511958948430464825814392103379535255928936264977004926531898103834198348877284491894912677830762394622862121697304223588082212373315120914669916482904024864456813985991477858073585952549135480235186315526005477825739038976412570487906851897320199967170649972754971433824762439754277252496350861791169428105123731262994676629174050957324213003515649110833080273795386190265757155075124079660378691207110397929282363144235076623722714372261510499684764084351397606504605355106262573504203645873519892138115097042391814549763676162750537916887227924955629029094016465047208408985120213411361634072517301533773929681949235314175677179537796535965676306501302801980417547243583821714031583964400872969903344071939865566273487568591742691822109192188741760843356577448483899628109949040354969588410041582483388983349677962242429180564718503739692363989430337659371034437414392504712989188026209196826586557574857372011393052324827706825078735725973734059615834642554682786460399434596355003209660314951829538558600788083538733179114334765035838956633987683733741051796222774731221432220888779651971634309304826795667543119233275280387756206071679636654407426868051511370844766076728946689603641475812507481848550317448072359660668317130338295880490069375218447613205817476803171634524019576573073778149179823149594534716821994204279223111294785569601821731577723096708203189053138772130061392576327044892894309634983599558400835346634043616122668419598317487194949752962007845777813835107422459741075174625126739247694804497984789555567653980644810036759683432557889991320359627544741231768993240279824354102066425686400694004178249331435487669704363322299800315593201819172296350951831931714557943296832163528969519589493092367198853481360550196734376381436321747189039252926190745274342634206541936429572380365852823361784899787059565194648793396321525981031925072210139013229729117986396813120254444284153444726538857625743014778989701577855723975821258613053269522235723923783704786569799654519488829504143130786135269341146567281182002591750147020586076375035107976669626508207306160758707601153923443352623984271053430447094943132158689277003670946556374689282483122105027360531398431692773723227628289709645485253323516358953470546530919319281148678407640043969674174153433053727640636741514114933273575188640572600279867401157998656494254380113514385279229054443669821922699798439618924020039443490191233393787924200513423201044013785034687075943422408710482722602402697580483714725824747391242098422754948394588676895298065045271852606715213635699934737618466990840937226031122869975743577815982114204854191154318655183792381059117137228407540125205302595616303894104397556635536099388684159846081749222790513268936646728577768270694809145101490322587520210626305481243981972161453019215987050280816624343568260457352216033994040344804275581228007164995082325591057554143251292893637931413608572829825311384894518233420979046960988699517042322519133156429086545660055077198317213633655436850613595155625057828223309648302111835506336247372277853068892179042867480008517568041248139589830971482798281798333999327456886692877516311809395181680711271255826366856156414243548167096730614859399360403614483210938595257820273391333174153426516009908757147302513607920422383337050133146867832443352793951336258074101451125264916471727284489116818748438807089233383971520971775331176514518012924861034916623404913831181011098949368985224347116040955007715865055040675543290798828199673441627852475206742534677677743446628896347350184728345514007969080838350867514248781910380749359988308898589415949225711292411848846260496125209067487435617137115722978143913700116408176284885611303925023476207311085790290879464411776549003387769174671194901192204001004780897756063014540653713952411195829750188427625203757245774390431748492245017010597880332414559711874161135860459188546224692342995913286198776738954867576633909200076571217808675832938543884406210739739601013250596282293039940603654865168994931400925903099150271762006153949553884512537003470123999438669396986361242972490209212222295204756959891137995148703717802077486605061892586521584515296176076033619329857347713518226401610847878839572416712985804503490313161395808026013836463063674642624307263623985391605279110146820245912415216919974348024196618428618593987507859163253597694068788930014055181880261075200668027564925750764157302276856258284800533485443093808204375481217877508504145299113819028502211935593950563598639044726257838038488994182016821124620582811093797143114686718177936051369250395126198976069913969555398801297606058386317867814102211618716631098904331178838704101107100000500964351053733072587328167212212584755844023444809847276327615655454641437499629595713505108982123029522586748419580672694089432686430956095885196908374413753538712621739756389822523765469511776662616711306036115834045481228733499547404461726023852022522659670466216122821337043766340266118970410047126211404015273637390679854573982220394729127759921913605108857010963482051285777298587996353420204343516724568278717827975634774295416726543049743000081744576456401976896728425694459909776036529890765735222553062701460194281941789390911182696879279859385597249734464223648099279009159794849607340781202405869021967875063764754740108718816474921320333636612710880784855184004280390080325990695465927219291485923287742927444445816595898492412613479954273541623174731579583475765830004406097551946693967580601444348859096503576268088732540934328835339671460468532328099340243348107686337350422462150464984163854348775938818849046701670399206505858291005760972968224887538740526241002616923329422712973700450206557776821888993287819722457223372050455225450432830664826126005653961172472928989076847224215390548675133993598909749058423078303381242853576072065083189345835322601148979351754907974036482886678177869817634555548950760928515059662791952214156294800053767083531928759903072495956231384508559472354122540187996554417294533030804120422612206910289825919624589059986257250971683574902965909085419097682333950961876179805590464538911708061429108983998701563072816752415329328907148193952205435888365395848670644986549892486278227011667081025643249536579575240140487407544043203058990355308149427214799764553981442349385608499760382666005038371216084458138541854069381013964608461514743019165203289823602121330169783525396120222338995795817570953230547900116146762832380966279295938462149064529857769722174282753089983816506767736548532387081892335214159918455360144394534073221105566022913317548685022323719270391174740415932568414738723935279681220209067981984586660565570293147721195414303556321436093324287356546432998838213493990108449082844759779763825858031835625262788792732115467827875791919441434620827889555637826335428524623869082841625048775697521054799205563394300299395814359270545099251943968311274214513575123921935244899086985283997443348871421191609573485337218780365580429542255038106613525157637610779224233245114507015742866812746052265966455709797159011977504609207508430049899679565824713919420987836135754120061335827061186828654384628709549578288728301801931428531574985540372220773799364384810909143302656857412251552880723350681610601753317670394229008086978392787436104360724783776752197843111004449747628739164904613692768289743285217794376552361373909172583380444390150225588090399781311654475327871280836874504464193573290682625879401616444544617314319185302445679213632043720303374583846447498925559116469396055456826889765897236789484250182131756101642208445739344915898704777898978613217889073936682096463254667214440249826363360065363194732497796944662163513369668967091186979271213450663431090709852856452106465306237834288580786375330774947742675290611693252337687345264581071264963322463076446032020411389123008488314057768134182326200200360329376127396977611850878526113352810136206592104519506107154129666176186312960061680061500539238041797072084243669862591186316207643519419143702423949125044512997370914370298845374140266561477382940672495655170074955114656191476880925876223016904884522989444508023937177092630645274205278138616871562618287961233641381019448950650844586543677197229299835924402721047319159738653523481099987039349592326588241197332658369407454007058579580724004656208146790731140359736883110372380524912461235795101755815464940016258159796843900366792420384153932815033033475491856446274774364840925862390263934873091413228299684215984791944614103436326040985961996201605405848045395776848535064508134133158603445812437691283035571467155287950487906001391455302873207657959383100072407604345918022541127389203557550103596141935691909701468018618992374776986639045160112325447613975881510488519314076528222480436865180258205479989865888854002438091483319478304562531052425131591488680613718030545787452321762849958022734885615834123713641284151296406071750589196164909507570890821649977050148913883815971668975994961267525412474669429931068199315002213743607805368540021953193228223124139931377278528175392832420730037292951871912909987538862784407065278350642068533808740407589025440466514196573717125633888383883703514961874382417384597690208369515563319599109831497221667426604466672430264179714186796113703414454561452735831126079389822904471632368366428214090147008257115892683561568742434450061886503756582879184099552840584361757168268547138323074197389971111958852431590488470197186679033110833692979437640664915634050753881276431806067099293051929110811549864929804459853558735853893903244113591155821628984907049223689883904558021902946642110810502800156205876440717701942780220424496306442364000711040736099046257752417434986636980162582106906118873155406053046865486851571496600704880773078234701590503678018008438638229954847442291191917839541826134479826305802844309465009687212529009435920840243853732663101164684013818906483367706648575337434201494136479323565583880447426877956166192522098092458068328619444213524528755791135938453978249909048510328039488215289430304076898078110536801433701707215450862507615479124488423741709627139765018438449671162705219002206773688575424178674994569525847684109258082943956501659921202379211365070430784049991290626967439162728163566597718557289245166061916341858097342288330687589176071535616794793818883406409931185203765634862332715958478856381943758821891936235365142442652798612633075365354715132641730956750087756899652803018284187893675408343062642682733818332603612493957311662564939139034009198264561974165589798338777989651783884106128510059010337066759438538765693699883495567256316060022024217230250653843109263671340191348675442234053189348471532346558095783426850405848334509573021669185634661700484378915072131593428243114683663704460083860050059039729702647679956533539856651844526418377360395465633604476086031864846151561691617477160534438624698314230249757628427118055724383809149169546031246950177030912274588687483993166583341298100784956132441728984843508071598614712258166818122215085579667701775926679923580775013350470507124297278332194488755479481754202730644259126619421051416799038646317464379487412346431670906283805128962015518231561817761755894298920328591335572314676233859216001883883363236457638686016423261728779089691966447660302232781684508546386868183629715613211966415384998946482694645812536752617802396492118072475975831038794002910321939047829993103377034941733516787648994533297223310473286924719601339437755944590449960316949555233443805188331451153756396439081917622012160635684499035790639922102294775776830689705180312251249900008871041368896732024059168204132837710047008605348091023943130653677846590541431280389174095216005997370160241455300264070490319854933907754033206571937595641465488430615118495393226797687821516550965270533646951430947775695045991826383510211260384620480122411290797429356855201865947447602492087500457832758648375036623877217309350158987459833766135267246858582897344275148471722960707621054280833263890087467427570247849976370226983507097501194767835676762555599547709581882742315907284394628408709459243805411561793637659266703522946591651336710842236049718309475608592504564704385736593864208088077221060875723649626707083578072019044427412485846495051207894175985763753897250542986153509185054221637614842791336412946316260669998586078993247109073798934023313106421460209476293318170185299177311095077027823151502149337884657407325516314345717805129087860724851970247569694428718555695854520609866658594208270046583707186040518872946174184415602201740170122220420428647689682938561037022871930189094575532900365819314405977415384278976563275378423711708593407478649005768794102644312573184611843368161846345822185392793308042210932453027702723431810135928084668175012671441990298377916985275214414335406684563852561868163724507981517228840421968955695169541401027826857728588048439620855621089696203191938698017758273328525443320578955212174109367236533653591167203839030930229463652876163346188434141880134544371741081425760553644183942757120916490227260429685969941111532620200793165646924488077729816385661558121289602081936322674132913717756802309492525727340982220849832054555403742636467647889863242983434061922963209675097676059635437502414583752459333052702640371170964267354627405832622952079256723172572612645249708510993234664314938423953257246702135111182562248704423663726118637643847125476828357023271976767893873858904433132165554680154700452548876937591652623430393147025504635019686248195888845367557442501072503499752805933990646983936067472144305997137283985283905319538900889220239770141775839056718178311862751677170335006922032837511810639250265193996765332516550292315608508689132303187887987793498054491719124572534127616121132503271752967790568113281536617538422650098476090047858874147669895989591864989764918152004956599943038525539650392357013763157727897900023872884313463529682855006517996360083544513419725932473216028130438569833728559635650791416817608250522228754105754948117422165193702713883929170992243916429275865696978365329959867240436182219425327522403244644622941116240393734426024142684406372874988749059116024971754387812212569670018706758932915216677737807137635382520685069952084156471238996803534342311253414538413913069033233517977822059013514149425688425787364195089532613528556070940790237454089264541716313867533331561627836901177485975108243657843421431758598352293341610666529825267856785246490747225836886425243550032371712172261763524073884826061319661861235690593228092440887375630413721715391780088311783686305546922968669248094565073462407008144409773795282058618787492284354072376159430327457729775602650709324795091945066429437114774632290822279291393180054202727957219066567070029575873703603871558169757187114389111684113127870413171082734789744660843490879528496069765257965061384012314274248083889431442966480496448835282526239077951478640805294057263493081250243274906572137062664003438560643119851971817121511417350954035700144980470688678007617256096169261077969528532590880375856501974125161230380288757397822859067542268737264683705834034313679584055598105643792626001901007007785601907250137328792650095332005505154635126718817794239847837418288787902702314443882131984926380667706479317467305079150889956885022285017206931838188274538500382224912652903919542301843157684002805992604937216944784413065399685457329112394303051877275312774397595524317957536159249476236458628003632972909134507924931324062280798046364171695218161402499141081673657226896859846781761517443095676077056099858122711753340296765456069028713854880974403880419230301295267518165909860067806952582848287539610927596435136341856168515729650582793984187344489691908707876544764174273832759365017211075813706203752625492997286758791738544743348050161963843878043048662028859642965001796371557063196794830527221775681088611957022567327927967741837075413281943552794999975788096267992742857218867969017059704031002345860898830073366174279110050591026246254353381008914316391098724585253266172731380994927686330854659674440915884197836136138922624635098626383703420307558778660964834252521583778874846765536612041548180948573348922078369407731541062837986496094516862451278505127533603029706307477030763370379958871476996954703748406243604227029371621822768396161520689877224090020222476272467678518855427861048421512628524646385976237629828192135452466310871979149128632202348496012753745113713864691492148016758821806495915362446784673329897437379067105959112265208305165857632927360992365746632141772627194994447151494483104551584220563619547907891379468832805813179970047973219621584427055874092706896063375176100878043918582112634016816058652985491206805356031787288791144851434980654651304940942658694964518108469975925345742189353409336727177859047034386097633508175127172237317406880696227871162379179367711514798385963754465952363538153790099497818216375816560052389862329708621180787988586280661782265484312810694794673553160416160686327440383622084398891926880675565285393877862086649668952468484695445858923039211941603026630871013637019044117206964426394757851128879514466828465442187435939240486057677237195411195903959388331148106047477323181093280773386139927913296044373699011376265776253765092759984270242299286010604565828134837830106794045583400237933838671614945559074623871431030586152974867227280846672408013040961698671074311818780470372020474866855350630547243909239253844912259302405826491212357781635906161835489103395284044539044637021955454165080114588507001385417745558169916140898077981881667822235159216846003261933544146256035490067224736735300032485526469268723860223064301916094504514807533443092021737179720416624814151149329768300016776556122414534990536120044347756752617973204432714313512209795663668779343894274458290201338294192510197546115094266900454126636980603532039472893739169162473975809957614293456195743273937369949906648861265629970414767123467163538559000645606849956687439845050293083222064190571224134797201563282110897297382547600382648957751029774994192934157713103517179346598431271956542431224005061164887850724052222844340167157140091900099717110923378117323196114913497284024328356564792303357025848488762379182351250868461924496982009028120192616151999362864789502897103096571393028524692598291269189021743736043166086018246191369975723989902770913470387110445026863139525936084807182000783463650725920281911471247201237209433289889813808674732722955751572370476494549946881658471921592117614650928439897221539974111558602055324709474951271400751306674899558622390616133715024938599702822074877337070577516330341468502064198438325271861555138281281583017553846649449978000795214406327550769022298355292014006915638245121081558461239510024320716037383670184399504543600030256900369588853648553105327425742047145450608983955855570792100210199773862503696146834339666750286474107218563992807524918095787805393039427451084757355614814980124141492077337668507910592638460000797799798517767702002452335166551043117465845743711854390357721052890475013798822945336404721904633705007408600771229692835495336865291686385510213231826355393077017506865798638726260639512168393210024161382509542166708134333382893554521222313895994222148165726817998464457749870148615629906450007801325053902183111559736510189481126003005593897688672532522945957643975476414025922871355290895297986547271218027799368772212969209001825411988716555267725007488722876578654746411577065844988557760945959422444251360225431753305013884560720674018545221056053006820648217176013996916781758221429870619745607693616770859605350016695207488666812746563765888660845540724692773292304216014318301257119295611411029629965220171351420490603042702025561856576530814761324605256415664743011389847270049813625469467087398546402179680752191014062910264510147681485077771087494468257467263661172301358639668439985715415386708699798629969175915294300307905283907333431655047975927336582379154730717138740481458067022161126584771944804082587274718078363435499012621164428710393799350813512713442728220059188810609581237898955344640364824471410340552861125319364566563934337708107177735435845230514565210018399207606225052783666612419800680861961449678689874092750055094981417509262682517465011962691811732629083324948204045825312023118776538076363463601768496792760115750978552563137769229550846089939511425274930145756490491069524784530631374510393107064780233065453064987575672380691079671510877348796614832347369910137800156084138714469798091416771077219422948488473117572516239743187999907797059187643850678826632151452875300092329534733736724707235521895304339194201224787189218178780140450171490184705916924656556087229086290031895246385374741210140844835874669404841513730707190617432527908354949407395587752091653818615865770341933377380395428453625930374630765669028590901843348485522926346582663288356131231651343660213330765455547578149458754907489955602578534477053047830929689997762198844977020244635680524841545572621584579454717311443019049453371137690677334405384054081956758199884208964552060745045666719273815282850599062005693422476140770839929202442880331646233054215930722511124801051768428414283405171208285852311907416215403649349353704792966657851706109701779521802941459442494139509646301860974637408398144111163658700198955980084304032193300665182411012286925956956316029413535199208849889899894590795285278009210581282003365125815835431595920828499778028558050775191769076348698050961695403085758314488266774750560556912054677057924587085340841298933540450777892781635551816485347164151197961772556792678756227691373253177914077420132984678498089384175873487612112158417833284611420238062149817996025840328135168249072468889707906884147601960842219353429629265526940599040560504543474444979716744770706929329839695965230374576032198523602676016920679678126703137611791477597876943531923956744737827770148866754144875267186427144615505359498822021277042039122144902748651989755363723637705229351279209702107606764726607014076477264523281496460373327400652730022891269356498210406296968656931225475524681564134276628355829947250214935395017751927591942221681042924818465926217315111845541980484198879075251497573267070981926173390092381128425860440064970284342135954019455477224453195908615125523121074569987937997627537517834122843007761087118071038527176957382675983892852009840206222533051491321315248766322296540057670756828642950836618651046467908073103546476975342285513286728529827687914347472063625905837289522677131760494472997325794428075276984991770825211024206012200571512228962898131668426363011574564275754139774823926796902310274750984766440476856002411634582449438137408642845622582295835127078972766422724642644339625886368985537480791827295620771277001231795565339162217885584537384163076608097823460111115305130300814457871489228224838335175178037517488140898796747620801494428219369205311600521692733126112502238190922803827616575336857648081306223046726294351642338758240326127153347343406211228938523500966332220020726011590088819037056181947215691769829429758400607073235714023218525114263030609773951713883583254434465549726894693688073409228052693133432614768692365615539138134685369106000505209948712277561609933551928166318641033400189797648159843359427121084848513548072733573423999831537542785807398866411565263955279494089558566464871212006208524408356115300657935381443357618600723583024908891433400771862075255694347922104209373830181984015742214524674793001678929515607642024721094249179594062238252988466081079044650407931612558025223379489767238721114317107043362683674910478769031203870892841939617738056256537267793662176718956076976168924400396012020392156890686128649015251162249821438702246545194647903523221185008136168798756909630500211265346076029396309892348707016690612095815895714627543172335573632585691746903453883058791336278479529244809682480368223695967229782346575554776387883286002829985137520468708853488051519658672776313206374435572675088392082780104406722834841120675828894175329812276520008918315986472457629418613573988361718830812908868365389183805969308457953115459857784080132482448990383366813553504705753552074171581426379517168449060913082726448083141827549890149051793507368722043563611903287662050788376897995330315249959507491782885666101320420953549307565210461982515928397784352265917284645854474264729337724484048101230199896656331204932100316204136812636660577201649252093273185055536140005294519192010193047596254744878587599248401062164956513431739045617715578610097666606521989439301630062164076355250269313938272069620197433928985753616808184777589588769982634857822515829838764607072153345354175397592799289248629885972868782055820804907598919190834465350052581412870941273687499135868427636022093046473722866446075902824017768503235059721973507989196825166406967454378417799910957035979009910323697862534606251886977194299843487265293450897560278891838438376009177188137296801351568437524009721516723311921746670249960591356023245000901402527477337303578758087924103768069968964094891319941530302832939358794475205193182406044269701566328107267126940338384310188478783128328301222575699151838288608161424821093088495241766387257331785065933681770666600036311652260368515435315446886562347411826272258998187318800585563707556258471149017274898294004344494746399236814213886733723200298643895028831787726571676791716042296775907480462177227431050908905812980861161242068630198638059483043829472393476420255949958901227195819457015619487970337764151233852987308238056320241973836041066659746326239667560513216845984974030072817775946988674460194249188607148406436966799610317534335338065111936685434224690548656821411678452990988004655168845518900335198773797503739518337095438344688489137329075386862532905929771446234024584670052305687299088062110788578057604855043040562158963832846809894711846245273163417621785717391641135468115724130342241356427884058297736179079966525501123259608189926399045291065861175455103639571738593916527015326726033320752308555433931094642330963060798937788368778261029610841752433108797699043918282922045495319906278861090695332717095783082829544105566776672395843479805782946123710643490066048004432434143347735338409036856761777389233012769736169308228868464931754220639328595746594662528832808907917768390708929073463728562704955700111404031406096373016087856202626105803526655936619080799240760331608346739877960481322299121283920407137397816720484064089925758591425783427888049490866762635733002965459677229653629697850796530245882924760293848378163488023552209687601791365487166403319120619693449365907421026238744759159389359836996781278848620148953817851369629007409711925597647944575603740948808176732048075081947897375235518879781813042499745712718220412849157209990763439121642542362091094333230376430319130971519056590011922142481556553037745605156519935059851484662682521093509403959964190579273496555604524039711552903666031720048012253988778902895214722532939620316306418373478745946881195629640123273207513288156877353888520683947406939270767388045413137721740094177737919814252435381465365209821828936453445097285671168341421049540456094885682430426016611073870510523205510376120779126458363449288455331087978030774733878669886535816480170506038998321443810840754693577047128579543956751290405932236915402589377138781956333073893120463370044070645954380126360833039925228769372997341260080266783098425779315905387299115128529239693493954591608263769086612015511538958940911065392682181408810335855940728900630733210325769049652625600929670763019736239006270190659282678789519946936895379923811723767698995185541415142783551828845824111906511215825183354733251834969527036074390359538016889567497155938539741970466781637283022239693473996630803452922470240463657542395722016779305501562643920501381031998512021374141663781258224830591505160009487652563922237756487653022754024265046265568823828161219169904307053312576002521576540593646001181040913393034017734469608711807862089937966462432496264144721536612452422416315142264876311102402241756963708593688483001956532864521537600881045490739346360798463165546109868014037414995082266388609187716913697444944527662977045015796350179793262113422421803014132278604783899442708570761329808034859216162412817435342438439875032155925627430270187209961658897326938970609279713833615880440801478136591992518933444210762934068357646841082547391376915412148090564350775670423471138520840927740655831447419906507015424873988103594464213375805568404525910059321040240817411178216023595010407147273885679312421867535682258196330831092922608434737054702376266126994258322112120579877146134301095129213731205620633087442154510147035052505762411348839161259221424747963610808890732894691979718591334690637367726594990304813682358216049669462900390987398238818807897190657014984477559070034848864575858846839196051607672676978105895094708863586497333598935736176290813830571764490852915783903003401880608320892633341902780651415099559974716573419545774042851409403381257871973904773145496668251312412363537943048691931858887992340045569685992866786647099341999090709532309781440827169800030896958307486890850962464046256736186059851446200139620207459717974232447501041643619539494567332458615034887877644971550297957519716677160299907578551571220731163694203544037350158157180338349428810277613965828663481544443806533370212672095927618149646388936757901160182829591025140827810768349880101133691417994980705066813935330371466887798486925867914772720051261906471910052449929041960731588882281743456278555142024122668735799028031396674479334285537076614925595476222296045833023733691208861148629163308480007560843867651937780115530543282028317304961218215390975571847624475930804684387179062239970055622853364342069234279491121287077049991771640297832624690978559800239423339068389181196964766983830350041343558975985398129017812533579622757417722292901262098494051454773303958782303778465960732536203680655127015562414825251855223663463860822704399084546121875346561197791688553942815400216082707652734881825594481688807231126195614497030616011445508366338743158908070214377472039161030107138537761927351298151557899441850209823600466146985573192058045727759245433451521861157638508896364258698820140722412853977334583649252850366238349833204273468136924679354049173416770213729126562611340470820713311206392530062986018709774613566579667028325883956577711912932112579391442497625204319503584964235577067899753227544308090832014788615042369079489519306192443826962234989373909788244772481264645677418669865782326767933630633004269797880179613423673898236612368718192422304795287867739328567176326335045303810094772769118357036985117416039603131172418090125710896399361433051283718819463129368995105121349975201438268781565187931890270697298938690065770002680427398663448657889166530346586747379173110520681846739849988062106033520087062793878813207398869961832720012893431087408781927784439612742140884693581454816236288247016796163104701494714982276344922382259569884517883985565286253277666130123754548884777159689880263086292775978815604850644419478789857928783765697005925935319546763456589059719678441318670380914582133545866015602697909942489768753710722340939658192321240642694010565419438529289367302178843643490662916778094650823209814901606900934653830607249330182442014656195834543132379564869180597184740795658092120082044801345253702828704518889564330387518211608265247956607382317967242255319381451199588195652881068652481295886565709943891873538522738888149778892968804761805298290197164741241543047495600302383455757404404326422304170214263944789762030237648916127056276693795738870283105139234054072647538537175908352735602472611224336087284621466668601686309784929222460878875854183170377312108769105746328020652952529797730793531927550786757845749285932527341473571238618816039821454755239304060563200266923058614068800355767169605822636816671638095054134072498045261249117693685446175963949379800585183896274282817463480565095628360538442375719848290512086205259122594030954738165412280157110060126083369684468588467545903998202665781009169219423575644049944230501158193713375465039518665933412470447095112639859230108550480507672572261960936879327233980968569368634914382488084586411106394571774319054145179892436546535065859409969697867720247776910550098304905990176464855907732502615874964487005727410073791021530378183347211354164131614579604450303969896701855901199135343695753407735760082249352572939330696117490042774907557304860023848328568650910802676917966929169012561634365415608309026151758238992822526778855571332814353350586834979739750025367665141730452585096294220483553245457514110841868644725300461508077869437374650856194288561721341600496334564902664579942173966671610495984692815271450882919699317538164533941048730040482336782925738982252595634518233959380657791826080153185201489540602023084083525031452005168045117335907212049476683387547221510178889377052731399815156305631868683699071311359655692540060747965487520036575540040201944982620237391982768632249813759870102691384293423992968442183539416090502957227934947259924334747021792318801965064872108376733145568381887602845734433104638694763830814321811274195134688059586738295218368257245614590997291721710963329461952866220065128080155469523605784335699635295636672017676242863878206180567535228151418866401420908464121336034268597047858403569546598622873746730650323031879987422609853132844357742168096273484563503459039120618477122327355089323709333020914219946352576140098362860711271879749935355281278590590792621976147347070809838735743959042805941640200843348245940799392421944521416828908691462465831960256523898768904423682565935751741047620937775750300568705820515657508457893477893741828913247924623895311958047375706438055249865276000064289550955762894103129244709923064870566244310240688715926637931770760850253742963269250183598961688318933407444459999773940248308737773531707442741681560740105077598456156163819853528136383062011501343006164593904428493434478206035070406047195852969226529979352584372089012338213337612378505271210359876081864527209631945793035024515101591545201227917194826657700516001866791837308131663157752418044214915800003219817892269316285349191271364138098807398661702428555173030650541054772854444553999085456597011629604572683434209003071846096164067828905710737060598622608356721489857279535658229727139445509815380283534340113240576959034132928007527222912198038555506034935529206560211222484288221034303718598191615511478180246863316220372278722750988664786492244185076470095053635396374834320116073960969663753297369988199856970703895283349144994825331985268470404006197065359476999906392124226188210846433855364143839053173425804018268447509953402162444229595022932407905918939225772759744689830552858607412838592162105150079310016497294693015976472448744643886578478363831853188300594260530637211033511811312141080287262767654974417019752701553153178886555966000758997541410931541186639841168625430639363715333303430849219099071087018711535897500908236087492348669597765226780326186830421165897800968365225835634440796740272670924771992979347822228284576527104168442474613638539733712939892531486471931204777380749795836564693803193063859263570277168495150066414676059710562941944167567682419777258948182249623707986661870093425551917699170788543714418023840036279127158849759402089797398878866452629337235423294177804491976749039176911249675702980894548881427494117909097502861117691153477502823030242173573184514306637774865415690953293398049649244035584041625478377580968174544620073040864373164714239463793014839139033446569922200825986519361058270303422762014574935831257371613062810578392009437596724713938475041642718788780491833815102094979583823402009390116341760716474451000913091931034124973155843523696628208354500547662940759632440420502755812472347449707583492014059063698951651048352575262817717145594302725836802359808495873854207936567553225832519806305240238516608897736337591547338478868507917752434222545821657764654665788444706482294178975510747103424357460222755246040513657537532888662923583241796073469123328327762880981594236706002210476032411070792671873210573716689491013139062000397336443203207846766182748524420588283441581455011704160136661602435389619295997459861259554904250126384607710612052522881806839715903659707210185776876728906263445384104962291394098791262777333715471511797840124739288466960255230957949584879869400674679659246861709805890115585075769319786320307960963899641413970680688531573568611929605876575968348373412947008170470065039657319208448926628067555189653134968369237813938597915241226701141366054791282766827228992857896613309984536856522491856402573213261876395400160828230622496043607901067800579756400071997237651122615136805378848416234548682429038877502005206930327148989357557966639279319329791599243384344172717013597130072915093912064749988442234232196564147007137279851829123838601216256345277755511099437582802484548118092938367033926717325081601539240952824563515520029177815799562756703110508946591252210213281467162565271641057575600929441372687455287104967725202898075356808179460386418953479191447428216168526081008033599151193485996255579881878364065184384161761088950039973927843582219827494403225366370571894482314165466643199470244982865606456259276689252336225450813432769002606862858453565852295942284525103912360632071571246862169166913490360833824692855613881222230605250147425634655955305259022650340722303865143229326813061199770416197485733860339624509943340568706711732930194264040563170491440401360398018764916046766601050737832344155092790793209857470043193250489933224758351138587376225988426332405868927139763827867910111354017081672250515460314203040216262333989061487610255846560389999830402538371545253339668902450409917024957033693153883081064290165815634555110645505434384293128548617452471206301574185180510515692949761969626714416385864986101050593298486231428046988366074490403369330015992409789296257146396118324486506147084660863118337648750867433573794688486914849408745893254546793132580697783696205884390124702655535025779091931524173152297647888196884352551188021318092835336119389905662786627699795941088755518457749218384076468649622815136440121511431738399298649894853380013660516204572909514561021314986265270470133276727988152033352291557930516049450912774281825608439339984500415270709616580272546999159365655954305584920536290926379182731798161661972723145419577470755074129688178622950619754150931659546232164732878327724308020351630246049210896904371294986444504697555387121144094451331834460445513070035119726550631668423042422792434224462816997667431693649956029719309699893761978208398717655136523263652415487678689170707383966556499646336200550012667248644061969233923334525253293330311647631968766566648962805973116624774769802113482786649826864133900494169047643369244148419059183999852549298059381871970594546852874779757061887318277857094978058566009867367223930341777408440375231090586771881234513978706517061705697240552952568257903095603314737436364686720289436970549642820308578047013928265686435457779860376108276927791600738246629988684535346715990477048735230583438660761088398076414542540051628165529733119613429562880784223557694853460969217099326889547121652495118701596181208480445498934165475953742248407693220193543911466086892303779158826288153794081046513398499584835301766766070690693515648764196815646351654443268299015020762783252178846231108254008571571337934381986391609931467974393975510852993138112572406663560494547501217166738021687564206553260747695132150903355562023889313625535519046874176607462057088587543614553216858128325215735102795255273940130556603663945274221245568635740785717263970103762080965556000825928948123983670214679361907325867817780964272775942577796285933462888343365819622453659648240915770262625399979232064248100069061786895015110522565417591650098166198671560084182104288169982656161206009750169744896174735309036611643908261005930190958017725376720594836167175933291961746440084568510406521624590954957185919643298045673206455504045659802422307651358573490750371021758861025362602261017035591171947593445243500273697466532076266511295977271762682621017965236158429223899794058758771411742542123763724769823119712567618225752028617630147407000530986385453552647337237853111195613975807591116256211992964905845574885528925582797331911528578089226875886151814632853541102960696386608716783885491002631902995808394238954072274393821004464717548280131413411546826684633760322763454148520082459022869992651934611924934116337198500168549543889460785959251337416723383371745932407617710525099670936005665522715360672431018837446138603805877548265647854445960668747855143221339066726836680557023572810584276088763181408968916784897409620156569202265264563661822155403427195382894706385764242515341724065232948316128060391328922956386256579774661640261163255299817602825538001532687596492574322615720145306504396469500911208752981649465621042243330290465984464807840859933191897479862148810288277593951655216374279102057473343490098654834358717216245206016913611089102772365283523938337816928933064417839083139570111026020783485666343633853783287699027118770573777285646739083805821198453504656529364816794924757839889065935881816728915583287906484321411658037433298616661953975272446010409940350481172388676981963140322561437547126427122556270496754286409772364759182139437633633368410300186663636439012220559859486135352720922630012174082358033400314210349075761459381371666129061410780376254990232085812417682446640033012997357717219851516124031269297056831598975630749823416341525110958043606195036846062995112284537460090083166399046567390713464320622702673361672708300050410561347582508748802190889537884389046705029810723298308278096476272460192087514496740915586910617292077613387249303555321498685435847963704141688026599051420316423259617657842194272147443526968115722296155844502170889607910048687410330897906419730954723243791813281724107579948205810591987223316756319566748170591191785932452784339663015480669381938054904821747648495999249214127916496668047392492327064828889934883801446667962357688583306362467943782917553869935365625964920828424029989189919227408093665125778457905237974647876770624303936132519838263223258700459301758131659198752295147708562180227501234976876634501414299217403682642089895863533596382854793142639935574194132420288393758639767432138684466067353022557592721391918139503750758716424984255621527316581505284926608625700359355349683935440813388943023572099269263652406045194712108216179562517176464534991122527505978515431925598126540217932271493128288174888573440182422901854538389903733132822652864036979200749546281945416830558437469414654503641096237059760674466798298614610035544880030687822369955615377591104899434121237967050429356502377111491171788993115265407605548288940944369045204325176203724931716270415682440671113475641236976423180091114714151520588413186791753080734683928082009990030910687426319074105415417605945211384692943022863661030359459925828350558078658536084774762175380697668271431797706162857103136590857877858198187605189572849953710581671403263693828077494029521820373976782384362667915167593423649507834077915199643107121461463323298083716885894344192711407168966762759666969406127301363390725503577686368138754754115322772910370872936423050347765429908464572960720652082794401901741774862937878440597409719542757729975596506732556647601977609203057441800566400562783187518111010428916654779078999446274942809782292763214289633113225205581427246466363700027529816563751257201567377431821829091576383020864554009485347505742941247135661502259301551577209009329383428009049898072735015231986027424474000231893174326200174829475607333593674756232366327216131261538923175273024624855037094877207061912450194173200938904469525998820782384608553485598438647192358097232393542198014250956883312991852233593103943965467104358360076351388934026714489474823394788682551363197492016560771780667772487677688358347782193419885184943903780039054840732618444619587352638022661678081483691807997342424701797259889919629013878756789313350827536169325046839360389314753105340396629189911140320679276608867014100208060441717689536681869361156974537159324100173516775312781130261106194753300234679288477025040926949448536054944558468340659784993460719354533241719337257774842688291939725491395228555882151891371178875065927604940409398190510017279848787864676546454222181073938536277399368831797279641033082485878368043244537073968215367411274126266887995808186755814201507399282091133977141161296004177295645424394754855793876794493394389941901738601921332299701477199397943764301014125264516908260359385430126043852887171428516140472679078861347938144995979105046994315486677704433183872359647471513178198179055197745763398512676329530194998418471255247396335651169461645293068047192701190672400125499518455565285521752540955644901600658645000838964903756711106635636720720056516318899476093322736851548026412518301319590773504635289287351571140984485462123892725407467364828897203074374076402252216547345236703261923699248826994424795507726428211023393113220780118063962469885991917258111148172064777297943131808412009972440937879083130663851588415476954156608190257758009792143280153192358652623411391934611586572744377805350099493329906319056270478126492029380229850731995475946018304237158891158548627445568784627052086021594664313627322115853237646723037062821937522440551450153670546273898282509878637524758908482348496761591805694448126557949680730126169615996030830257511965205693188036016253356598983164285265949930744473779006969073628117206337777324177055865574123877383206560619131290401083745935219093051658663233938790613633398768387860391053124653590339598092657512374010333779730311144623172647137308248276785580809119853085577107545772738897023383878879867533960635666124983663971808533836724450708309549757794662039686188941708734985263179399266039001131225564262506607195122000028336239872814531660081898594795749622476945977371674403537474041237425462248483403980547519265717746145864114104548374216744847269905603280803365292440505737281915393431715982766503651383257479522284023965217720539240114102755589234511817607897934896491320585806973351505432489608518189617813596706913000861058073320799245796919018434289388210813552037211527346636697804181878939458793004599442358706161325969617357059517289851560028451294358430239540805200138798301457311615312470207644880000847875694790610860864504587771783225584658344071565304764964704275276686522872804614329529906652159520449105840283479347579856164836126987897568704394862293860888159443105096525485949206316745042264677590514896981071958874074686538102321576167069334514247358667441606795325945291625160041983298339524962889058120430028028848517313450808522621694436093355256774450981642003930229005781579812673417114497862076607992608676339544176811307208120286656656224539645699120559529891727858233031345432901781217955992399540640114685821717095768050919550635975783969327519445138408803022806861558072686480062905318004066626933603643327465458856781068558983715612622538049730731037314561856811472605774037488418342225765936630347120327456554924208326755073380867135066754311556961023383395619021813792259035590114790888969211422476564124817426390530121005171113379238524540925250466400871272842668493756989884799850035649742645344058408176139045077279432425207513975298453621941376219332045032122852504898447768279441407693624680671827988277678378973836516663393371696489591082347514576855656443193461969679414694671200978359125245101087597081588634709032013600862614681601157897706737895755943881832759649548897803092527044027425319226335423819974095708276177680703094523831867500972891449763001806676625918947311807008510082526387896335008702781255992469071171994236931173658549733702625680666138789624001622564197481150401657043079375699369657961112709227214109753539503867931912688113584501287849794736259524909573221316149451216867927397654309438152983466474891127614985733737538550004336573595590103579938101362149089174101522080595361394140658716402712843573088397995620334452319928473530323680186839692819272778655847152965839401577338156659441520653693712139235954269852095491354902414761940312107744114794282050489207652001080188701024288177541094956115621030748054463397613192236366321293089188626856267567844989153028115108305199344844410593252542975506089546703526448449482154073671441099243538999610180092813955771566322937086515849679921042162091828833700574605995139030463655303736646406123758414689489615025248959562106084443879686210821968360346606235721922062132324258714098174346132085104431006665000305173372011437092455908958932797976178670395699906931351332075208688164711425396367394069425079135995333010013160806659110808090374868182271508955174930204101387931385791611859271535450830087503730130238353003463707831703018423980840143739705781472454802236078466560619010449909613729194581067369555638157749159881077811354460144345354810263469087856757768329497672412955298026958299084755322614915738855056402452836096278798727226095202687506853344103704796855540627504024257115550766393451778203157272291746735579215057401477905650156542892765048078097123265849175845936578151136115160425346490801138531052993310164444452695001531347229368225267624536802702322139821193770377775622072879179554630236778561876641573247629662589340829372472270813090612214494220592195451839410045739957709413226269984447497767842315586429307430179000978081987638784266269674350877956779360326837173153604074855926436746178074894082803212814622536358863515037813502117814663801898404842887366627229126013851257198211873825149604880958403464787616763563084572562886568743984795415672103152411165566874791858729452985218105944288876629213663766316517365634950693089726378006383415137529537371675158210618984755386499264393121563164903682533095819865160209401618283037596546552211961312172141272265102462777223961490235428919714399033529461489951666786992132936428464039273196185431446136627802726160363839068499234181389609319477431551742854718375337496584734177702891014808499398869004573928971955601424120078836907502882233582315010998150867374336921154090207639857455225565881856388563599269407993728850552158788053555870018264657963401626710936733015140629839763390766345067730297349612727758106858693437168003903544251227724579665860877761080416094176275175834151335588062994117941273241287725477994150143399929775240302718306975858914735655430180272660425862786892360533304974813423072876433312852469991852731524561682138014727526345829780141749462530451947799915974173196784333477342246809407684690670952759834982994011180497096261563600069493936995349807808564461772005082630665800508250437668371225814565670302439246140015557167327959880324096099490726869791971709603412130223922036172576638462589056459293164025405016475694393389891925109397686293553944381267023465272863213953973397771867845647482380037578364300586916266757914793630362386495987440647538816924079288575465951269272034661466728386111746698208472177234816718963112924079678248424489788018608195126692804122848016184170056192126236648041221875748531642772397441285165195654328149513021693879368115982093043249684331290658438122931444120314415188208631413493344714158897444707018630169497790415002948131787032848736727121167308071646221359959544259634883671143986151153916495090161412758823883327563363353157077773387161334321394345092069261044101628689984599103262563999147695469455956446520845827032786336972291319325258562431421533670929003940912251987028421032771859762728285448833373193007049045808164432932956391102587939770933254396681742158890424981858536061183635947748779877063457119330755807890665375099755265677894979423085838045571568671319342992178750812715567843673056041573715270350336862799459373605007019769395430308427677169133084461224222454456122439515529613248305012313000462736334149319891708408253204331488974410254254845679230505080556917903750401876902628493392665477744455858939990551647833132962129914159356671893550188413295045351251354029439704708987319468515749337984217308668946848970213066889554888105519896778778286159571371594646294634657168422574812568233492245326968441191897944039088995100254699411493925446254158622590039481657325875924744637319981548172342119382600538526814034983783573451267992644314781567631537663524624603529033298241095008314161321349083265151681781615043782200721203578419277546803799502751792706246377987075842007306535772154504385595151323998747303495851505932428179020475089795710796716094835045214904365577948186436184383730280053148227009553361016232335600763999267065235789528391217659244221673912881572339821227637118459526550910297125053522218595021514981858095158095550861336618662927931435201453534407581016823731190988819557472807199981898684113358342549287079227217635594356659741161435632551991748155189246911937716213370987531401604499535882725275750087427860793793470248830659061491207075809744748907644973062328093908910139108821689992251729019698863097794799307582625444686565429141464800568966082128621558432010135730646420683895057845422312744117796215926405414590787909593185551399242415267267850719306349181388152760540603147036982564609554695867080891395810240017398471682700727359745207414218003099711284781842891733380137938777352797086044758352695487669178212730576392215368991643437136415924330278380359258442178978599721960803933049128825611373224459418875592801324854472516576287028111401152086193505861597746272547501170794266480628621730197332890360846634908499542999302461899974996544197862417128661956053750746230335370349019707032059246462331637033734410127801464926313810298370753564630505203591864064638511810072586189992965129301932994795202290421375029893919979958839490411975071387073817805318845914239976824578029539575697939466872698363574542548975536750721662688087431383199563969002599376661839292894589164982304316637658307731764749513638233595023128761620254156691311248651913176024552818698181396549184898507562567632455030686656119680529903623384452477101472735454982980804365249919298736793179556403319694618736680154385654281204543256372602226628311221612738945749582580003758333468376594382513861342862082402480134533028753885242520002748507038631893859278162034779264765395390238637707035383157312652997043118651009411795946830981230024284300383104197041568675185116165545620569319286578101048250964526955775488004009269252738057155145740070581177048822450356589471753197312741963967820926574815892725565841335950189607321809174524618464675658422505284679617011867053751068181470650243406351394592601566474180339113845842116381091226525398508292785728740211586389478990985961985642661143736751554012879120707035230995327551965752784348423817688287414819138528790977785352742645066296488907918013856933428958789812583473270147344393048387973196342370753249535827842546555548013880097616883302640756071605600351471321279544118895859246255841041098592676187410410224099475724724516163474587425064858566804318419924727152343925605109038976807037405421745015545434730644089975837596518318162017075883331114522764009498970415341319854654372754429496413970933867045596174373183220270259261149684112467150697663564119471018050277184396297388234368772972149775361156919828501321612019247673613362174188923453168368559301924812901664935715827828565987032268598406834173714100960990232325701750159880525305212656844498345756863153032447016906380200498579123813737638610600865561827780725243672730226295251970948690206701260003167091216592113643240812110877190193030917212917373377760621866616013888842027757131609282666614382997197992757269593190662708389606970550362930784625305288694748109203043071328369171759059448302488209804907508442316431360611700501931293808792469054530060024513338850354223660457686242759776122002073955150264679332773456302657326651686509009937332354421332599931207067523132309128577525378812377146867101763542959027352077597308642445795071603649463632484027899268575862999348034387145263235492276773876457255538450955533360843933362549929902358534180613537931132209216605719334001082049550388568334171080205283969446166419920334285512748608469243213317457365999004415090789702752544500003082062185803835274140546828009630378981832456134706454955930888799266795567772466097332084726040656665419517245710820014495698438417897836668307560987590770394443663605627032616018240899966474692262618314734408777730992744658583700452950679281581138869459887640272216532168566109850293196120100622269634170889010636323219683740572437790217623295154747576509156944157137525910089818475095691738320725497630856265351691980203118082008084814463235189392711738874835469351785386649323158537862693186761772916404076814119959537583584306752807957017176622177900817009773655294319381076092140314309826451093900770372359927094875647585653942900301693361051264360231041148559529303846467952047902020792323634471320477758162655384080816476809789796435305199306732623737680806485074431105476228750932385200593329535682017914267414950310400560708965826096810254735403308298343769627882424259138048672812187443180286822833542605317418762608352610707773023001905008120468809809941350286994542726523371245636115477401369387863362393005418331383267209627740486547750846067606627478187652304163153922470030357870956268987755844944741040792490884303656993305667179797333631577660685563254246021572895350200330259836402682849463587813692879369194046510032075358289441020248290080286682089487083302966721031785061160814164010879820394129869943507654350035888003257836257868859795064343468789584822092727299947568642774066263221855274324606621033483706504565361868783625255228887754221395632665470836333652497553624427373350778490108079536928818836593880448828048181459095594580300785251471997740836167764222803420959001768383420583939563274504102955969723579102235107210136571461421437777251735147599153439455065529138422667541355427300997615266267735861693967453766564208660659785418628219852704903441322707917496140965832434231397690851917159810333890161584393393122239789678548927192287372770305407528904773060988922293921545250521065861564741425271495353102766476409701758823266224026860269160332042055544988301726684334571577555005107975960634617531664876625037288204421446774190042893791617591087010674122374885292597614529314553877797316055249309659886858455983244396096798751115166498392257081198200003718143929596552858596469170566682266843325561891676452778111261141258237841364461788047245770949089492518473285106003983506575432071716718693067537295524712032253329105896862029586003855317557500079583292852104651284468230921013967268117081032104857961343012622940960661815875097279940292388155268163819088957104796071808654939838274680096242446109469754548872153252095095336037180931464318693179159094759750475562087560676480857588690188126565671338299280251253561494843047197107937430049588723255469473334235184292040090186343797779781312351989322533548843584516882479140518159648178960402899890835783162011707503198494046195434275651804859858619010893961428196828522370199056727611604383324954422407324460792963005036831398051167741276097308084145635156690492936101466501313944244527931518630072806684779591928139421535559647538553774310060734495625936533604160291327705222424689304085592874435822348571737258317106523704154560622610930826261743313561293484947600872386671338261370267748206299886694379925404672155341840827133464497783888485673242025588613651636084649231216820064320429975982332656353742712760724145470326475624981658852747175999650574287546083905011301066718235693136398373541453813856100574920757334028012077759274772809341747827093335662199931586374040369105647312672937907225531496840302387295386919763780746263596108314163586242093876968512559227085675146345900761534857198327620334755966099586340999878044825486034274330646013213875534519925394756884283526903752522516888474450589865564139721779783755729781768942147606572451791680715308696713288779862892940484238417670609726497683705596968019727296377096335336666928884370670245757811017352755076710340135265618731644361302563988274622925034488225651666790978244505671726552783128079540289784156575176389511167093794538898038027661948837565253026686694986026540995594020994568232317777678348854724313793400315029019536852562056268611138569742152835905732548508146030878370472570846167470363377680048047872294448684482370723702392988042323133504135478518264722325601742015062013101414602234497480645141500389064990926541622957832428990637312315883981195339096193773440099620841488042676790845916915405410257591864209929695788857376507056511414252103964300592258766978173342984716819056723123497740261924782561506450688624064306623695259407869888120306918010606298182197456381451845817084928180596851217752742053571203499931509250017443116444321167930056087780981504411185557842266495756559873662098201347055276017926823692859990775382068908795147081607815556199154088668758463937600138272225191527373374110149899725594195392615460748106088822493951169369449156261596876620173862847320410012721592632742900469172778333382707045275490340386782991609901048343582499189263728948457201660985646954238390820789280164464597823515730353581187127387824518195967645154313955855111349979363974095202854387223734836145741663508591556700831066768772096813517662078039257288710136232805457495288867003030689033394000368128143591391046197175860815967878553355344744111008313689857536274637691321719656541225008391279426085114018263576945080949969731520921355240104544730958895041720054693172280300491215609587286062425923679887178434315735530260934805292958908558225167144568755930103254139577090138424056959899504276658258499911559737243856070253757471630944436826027324939286009775069081349926558615809767075352742223259976070148967481666346895059324870451566440797179015220686878387955002250017130022682982832457682830720169093001316551418504004109245471977572829661958892901841258629078533739527955495322377051862404106486231813221799794159189753300603594500546857187727291410778166080480188416428415380698788799229433420344075197248065927856225426240084031393878957588760780990961145765795449237339803345226711118048684035984623001738526826784954261547896858907622372151158492506616845736212068575823326243604823532292654177917047841234615508345106754249017502527936338004663800837535898497785147293008292274460685825123946831555158916480393980798923351866197435944161706054984899165267035335905925173337682740531468366743195244508167351952120594726425418731042487268547632923392326833907288212234390683393039772149315236734356269061743923846022431072936610931788273428636029194123106790400200516531601171690866310145095838122334002296414250578892632078905805335075569961070765718048463804655668624118191614717935837206197143263019628139901861277281023371903710767155950629630410822367414119403975376931863750345696756231632530319514680005829606546874114045073486519020816105429208497955592644864032934027217485676086869486757516488427879820237542275857631961205882221908133487624400501179131106532585831740189263538449506659190706327571421111758040866135359449621564638987514392641346132511658598197598681300396765407321948596105849972471890151225010639379003730009585231077186521256627934613813235832805912227648590522435879227780489207791819531324986577220488305973491763118830349507454792598196643371829902144181362543167294578333632934009472015277376575782014856654691195506169168304681728358346997150207358628579341904502591269788687679912575127352213941765357186866399832231630419802391857989947901522313448820297546952629732576307592126268944567436673249550067777505925457392834279889789738805196379008209570975600575792935438554769457831299131896300632166613250437706998149660195622240333389640895123034688971252959162704606660389472660647067925789913684649874331309731812376134733449780116458391244789779384667318366904692441616754190466940642361660729445030600703715512447243103550641515617714130312706229198840340019379877339352399994277562554574218436083555565008921065687960060367212125421734278530762373965654773625396922558149769786766454837844514401291873523769311867291201675192711258828255588063512464698121416502816563739332233349580987308203708180078365310408578146707289650367128600895872478566981368197793173390964115126683833521615615403877603631771945984863415433051960892054584325971102240615377169163653474861532884204538101483915357459215951213468117480592841334186641379534486951347545459745118594595406953410301131245079289614651471750399581223741697158911561075681819125147688511470137621729159776932730957694808650045496155213313708507610240798248512142380377907903528689753521767038184216758080711574316605969768985067888709920380222936230416898096257145782700521720005354721119063117765049652913734651533334013870587191498188923212996392104605536647402216432049690727976916754333607217268495315275222676866694836590963640928837178646388380954125421495475320581750487147461450229965358114675600419339862343470834833454869735918800623476884850867115966037937914381016152831015262696962119182986407354157234795382823765098124591042607778938631243643704595013979884859915424970422211100636370368278221072888377541646370490123023423812590829436912282990509712676020841786128618707582040492354026893704738702731674156350325306095361138383102394648713059269976060282913083924413929780867975244081512824261379925331981745574701222516459555348468834471669982080049265876243806085280510706338422274587284845315058074829832602971647478353718559103331438580913215296350474601746684742387757695528561570339675749000176721890299100073486601935773625580618338635179508866396666889497744764752673658014671989349198227152808552573428602756650248151230487892447074724187007650503395886940416887971908587005387456710134389229396921276004495106171529314103314640362055936348429758502607171899059921874617385286612066110574616745042530961009707646173157621217700691138192729028013289383331842144919515896619777562951637007180518966814643008321563195814378602693830904180005294127863000431899294397554059926969899283052818166638081008650347768278358233660806870842507177664345880612937901515975824697346456761119546819304492687132186132073597593505055168869996460815537874422480038863085290282636889198918659327019586866409279590134464746929256641511501594131703275704793077914704732214837618884343369217382535949171866026440782982181775764020232747603800000050950963271990765558203643051420512404851256695403359929726730661449558792167714790087809950756037133438393219357740333444510190216021087301286955500004425197150645103478637000830973241886328187157155289649785663380766579179704318397169000669439569973983277933393084395393770844971483513984019892119312874609578294827218266761625523910902174481791225876995413216577556817595034710050755028237503272872595579284425448000311252761342497451225801976631590201733208911850303078121332640921420053342725683128721114579443559490044865664840783503448509759694526697903739469490219839434189872020527145098678666467748421536646257883962875852645888568823747117971762315950522384727364907385614253452557575566133935221732354325830801917471103005358487354787953052564641974002016550131701977771168391788150802249648943352783919368590799833005032920422085982035629085817007461610273484676866173221255393700021578922407007744906846600667417978910994214841561068668652441016294479251682170729836118655038588536758055753300770116294338045470198900060802551452893341224459230558952022544421569061215748137451309420964224005392760230229892907115711158889318306976042401861356333973326395053284952892633119747111920366413559551255583743479007759655856689419639594709968002754474709850405172997243754361073843528063422737298865895965131879920650458085909183880953226725025765970406502989398894659255626217701509616356594854413636680982721453645395373765241202765037688751046947714909682661201882384217707558769841513093303404242351947629925634964014354599442235881583408617335801647422255294198722915287517181260954299726908255739253899278811547215956171265886235975119628658102297727988984861234048316796875519777429936000318844834354432989111072201773841554486657149259038560792317189262917027846798343353798251663925460054436143051979919096148295312329284552601832700477448130658436665809182197510612084639254159527275869555868721176572722871219661907827811401227392062255922287857081168732431509451076480537095190858702257894833336220064554860331102771423330854403599474028146647891423071230426332843157369716771426689441831856830178881183383173027852393869359590415571165142928021510092168779026617378276847433722822506866571632986200011034834898404541710348959695681012739183543241018351578587337811748487728894218523790346169141401332910486776201261640662165956593231907737515532152363260965173720949532235609929761790842974379121177286877741121277712529086623211864588378007867356324241443035329268155169302180486302772091107494697597594879625305846683377777748914766979241180072477696155467515929295539927367226390141303381098602075467556750521639820700084744621201746929752185895109996127228132992850543958172847690383075751385218728282150582639546503767215167863321692337170912490498982656117152961731113923840094491151181398982633780164081035902095202115032863396500071965983932559014364385755271035402116261982482257096005197557771755879785478756499063287222194151824439398393235799683390068045602173614207770064053746688349290226220585555077543828803127900569204794797696613621249701081391733008078149195177067488574955281918471569745479433881353679330549866568746479410199071240961097023301676472005569393156739215568879383747708300441037884263431875284572414980499917166354319895029485774345179494594581020707973830508472072222548241729165209112920183945656147184926137656018465921007988051278504505771628493409553878286545838510970281226145076241903727205667549139311161289313606339965602529281354728507750269724951876023626205873563162966449249149869226235990846931475491932880931911412284280780059665051210963808588262062863788377745188723153968865761796672480907336076621969027217674924961076746790053072708092792371030134104954973758750494101939685756681038863163193583861643889839311369473692306843479439624346151581047758580232126988167821752119811010154764119951877556783877273011010322316204829641814450034315466785493220224404395625986612786417166903661298857951527946172269831066448716627322545319403271151348994981199613286144998976857867896674272578014913100645123347426428008803248491002235417815979649983994204045705293794237110365454622120981050656209092645919764277878569392085833688435606956351507411708800729902574126686115601218747983913624672165548153105585135394224910718438397557945816262296639562967297924366393567500611955412750953079295990559136950320445933080826947298389445985739715504707866692087808055445008157769664063891531378023606318900678814754349239481582793564970015562837603591859222281180818218022186732238594877263180890585450784519287495398918565250529624949072762815092174637485467649559860259694516735795101907548742847780966380586233362741591054014816131952227582187081762695666731133205208706838573974705091446092311703127915231094043598689670547575439304495471608504844129606351008043309538371014048314935834201924736571828824577304442841743009154259346516705436228379031923538484126081333391645386200209617788870892426460515874659930964319403686813508987427102503609491016211305368792911586731728671010518859256953720964047009358728562999196209589957322490876837803741345458016172816069323433037821052817124786562727475160903797097923744517681066127399187259793702296034242006909590655209824035886307129362321033767655692601569711258073335007916001858575416075361752475147699561152757513786736454784193243398778823426176827763826665033185817464941947895390177481719223332823213161413679336645883424570540754180764360557992432737182190398007667904080457196557693591044824537204742706460328592947856614374861675792943456807644486054366756759883365721540935270777993734008881431422631995180826591104269101908285365302868271696575945510869766577408637398974385046249567263100589970079958466879303386651607013962669333212665470418300468322154404429496384646305158155261343914427491005317885370902145208393365515244158908757531213567517343876596631030930363427959321480843427104731338219870054068249576334944668218995472911230558600865131762145090680450450014482928499637730282309520689245405003480340003038493226999418378373745861281075338344442026231832306986255881089092696230214481316349794975682872670491875256335473741975024118820080479231957171153623863249673144321691872830393843637854581577560039283579992949700101831798286800881801868660703210833844713826716665085765119190680763928600238182944442865010080839364499554649223965329682709238843838655896653673347079551576149985767843531254862951257488138227420665298520449385494553051586317941441784404881745252382057646312041509919713192628380492928663907078611341732351963752931856740900801075719926425787943270019683769636674574806984310490300650358523556201238331045644891119337550269564374187159362745601860811881276394382334339858516028432910665487882736438934864299369224074520372239361481420639399850291683603403220451198232790870615819079882326972099915997182124422951132179551623076892001852657738679718034759576759652582871399390889670761842901324517576811005637399916143270731788330692196819359507337714770895173713286628929043672646197276482327666301278618148665128479794749241606156012968382832461085425562404311938872385288954722384441561218054961959467848543422152426499120240787568802201660262589898881555299450930779600906742312100844656084279534618940903088508401400830615870936120849709305372456680613047042457271627279423106141245414293378646242082422063904339921731431556541933872839612491875234517698533647249143721794780926949918378896366896624293106596834138817812902267571441610580761019992474151589748767812764305784745498399181366880814294920137264333352289151125347840929096654462983309624575846226172802016178149047730130510118679739671713151277727139442561185976043653028421717966583661533658937621058144916011855647771355811666324158410448144568048861849414702269291851332704882271697067046508233251290631243594225555482631505284275680505659307394443920356066823762981276249054967747125943626294540964965423351434171159927224446374384192427545935736422901538945662885510875439239770778952393943607652504598345535317171835360997900987244485886853112975023079915280409133888510993622073993602293110769193467771550510871022528579859994856450234627147075498045957031089042803626514826637955632215719444678640010662225412720050838501178340464742764404536740383187339917497716576619497759264223215445489840100534225015305745585293017464432562383989142819179782011160063428015648507393509469927937298673690485178587331671396689789027579261765029377117198240879371765889632614268780142804264450601595091957052629292143609175960532299600310717268334636557531606201166340586557127248335517922984138141596277052712717098010144808195631781557650118814984348733877742725875338443692142971224746218443700750244002005407883017324050973876930298757797940515195257814894463896243914773689196751390629089145754509950571046655450492599968691753266479879856958888712664633803931653921161061546281846630143369634395241264839773902218563498107537774851700882136531740075505738702146287635779073681460217575409324624054371005512504053884429560662183613823409423017507989712685906503038369469969913421941107524683220365816026642590070101877933336299776951363270288409072731899106271135754652899668559364370286406992044675275184088876882730198880420647967754105946067184597177721846275036393039283029905981323353354804747435109717427626308154022748335056808166520602083263162342872567510797337637093628476748261494272837005676193377569208090585868701066176247733232872009031531982336337807051211129107783714322310454501866996433417473817397034906053698245524936098209238824825902083907670443292015335054610307454107232440473530591438072774796410961921013882820612236102232931141487686805524915251913899413135339749872675566649412785336824233279434386470727328261497837785194799873135744012934133700470433117144963823552375928949293393128087545582416534777859299075598396852927961742964116493278648792347689284403429504544599807642471303093008763030201503864674368253967637857311158019380274657777420294003016835210224272103114615220755863016939753709054428234784901508393896760097343077467593744419406870313077775955989954080410939407444476257321199114875064477924593989953330178740392389871228763398854872529547949807684461651224737617086368671329702320650398034306094657267655336353060045549908449818187160275155851022210961162023183616603488919036198687773585348840823832031948261966772708427716701614931827906332356466564097445291717279497023594687654734199465605681916300089456351743955144850563416440672179701534826162123822149422813084990905813726268681931238121815949920851970868773523464287156246228605409212645956914085494971707023077926290926717282128240523944944187173230715679442717700356752145952892627512925822934667332342782145341968814341902123323112730982675916045915079183337821821554249838827429821538985444719125329134592683031491994124984638313553948523282613372722055317217360203613371908400904560442460361367115394444547787836624642595001014336898850125160711753775760559903781797795612031458180425226328054136577677761375885472346386064352009256878306204978339987306429182470573233972407569837377276687597289394561187823300933789410758444927482800703194313936227979037843867817299516040979377268447370704322662181988308047537883390528418078204289523433736958104159156384149242293887749506155790771789654457752493215162890850710589571993998859519781330887346093631387812294218113203284369525087487234695987243558284946139110393067243684432975334215285601576282707029909089019760556059668527144929807944011296315351262781706043594969745553821134450507641931525508814633353354315041668255661124264333283544102899945767966269833305187870041576982253135152304752900819944657591734420538226850978905394090902573679880104721454982943804173843750419114205031671332421165432194593216579129546732673970897677279743184121219470779771041525974325573218361338977273535712814238252892556532448503491134570847679574049379962584738508164990501130038281419127120705089812994189685562820248015376496697685129151504221840660085479054107283045092765020230966219201734259788895787325035062958459742542938853970240710400458706008072378836070328714242859412242416601158679953089039165501345209696284359935885597417547633242138775599263228850703574448560357907314677157689232947987473891341548791678341366774985192135964483430546078043145864447236971446337589098213108443911479158904226490708664240231779992503848048149388145650430093881319047132886445451623026788196472390494564730472814121309089245420504064419199437522091732815662802778175064502485056540343852157607854535729275509511524286462775868412637705916606299673028283694838892054439378188651823494502745637800808061906076085594936083535554101102293893700319883561025685402441060831906604919492747288192491774063446611783696472988945307167369793073982025242113756772973520742230525525252842155932498236680713775907780667348578971578049150955077711639560083341934203502705835608902163259491916934679078466201201605456951090223189906028614436205394436187963819632528703951593417132449204491819312761043600601542035546317445956248447753562518940517918900198319321012188745272950979438434110279932815001456407841263698875094867753475951346707732457922211588032088868423867311206493041089386745544443087307577073389596580972770771989821911775419883616764261273488426781348491034613636232667142672366294536854255948183319569524010032736309695725692422013517686124976919960946479467833828740424316956247223141269206921378048701813902594639238247289568568513355043772480997996106878488859136957591248167883966472187953448963978492322491568107766592516641623852805512852300560489411219881807125759455437635153871118255019378253644338299581767974680364038484406419888852902364831087696728616625062465894391645541156629384108128818162773001552008120401619817767888474957931212953529524103308199285162693834679387214251860298695025605244380191906506786315329446674688422029508956758782517436261255730559853295534241521756295877773344900131557883941778364661677852053963494506977990027768403113557063097021448402811141769133800106083110073365629953149426446295263599179568119026594993938054019121289977344432504885136511453495453964480489309350102655844407560346988052886901990724518317990419878552165917108322999593131938541610089223371352421300600433551877313279213787581474797941030049554346444622871545438141205229257901580832502267572913883550453606172910941067086899376418828755300529827435800378572269367975278581795796807002461237095995191680328364729439283857455806914160562473636131505234065843698436865968567915443376969052990719584983519491301210499439973481908849678157375772567303201532834458499617763934646324879997712763984474220916412987993543593188304289970024032830366874790538400580340358856436419708226582143689360915303311554391489139322095668402837875066891456033643746273537634320695053366764062817198129231358883344192739153091358536596396568259089483507620236349003888636361814330906564957319591300685534161074547801521827808170740332152959682713041030501916220347962055005161741558267151073947839365515607675110739614015401499940179344478723767745962049001207630697220883704544488303752155275966846934543550661930242636303519714675001235203239261777380110163620842171883395572561663224652135623606527467806901466176348693700393861165128697968215731953020841037161390215583684679610088845886270805688533015492162573537263456514591954047991776385273322320546889685116290135712503661525273308237612755519998373639025017110718268302523143098299199254299686297147168434159761386536650920821490389959921184698569845933516353952817915416344272616323999677486254003477980628349281420272929700538482328013831192026352507751954017036222188635036186339562507602947342731710529951350541072657017835502624567389573370937546380083677073429651198271898524968809344928424109993970100568921993749264890571294953917734497132759964572028857099527222946730218544682576478272221752001815156686208764799986334318995304167094689109113715198212971916981862096399758837641350450532636791489839402922949276027247782508675689942741237820714521471801652526223680726193019656153791298215359186572790884081466010039702051515626953681799316228660317473837041413925726941821298295496633302357037505709929754535657695378887336497204494634666429784874022389510722704338964864309885418809833590440394982120919002269333196161444866325352585440497357665488132957896570843185391452801809538456011735219418018404573850063575414131728597592926067027650160368386644030501751971213480543452244684471303885419197902921570609767510642963358638174151609836530684996604987693023565941048646969631458994596482698662488636855646485437876398662053174292054723825704524729755836152590113653481106348119300062691949580045014573256738761179997986466764161564363879860302348550414791842974195692695926390408501113475813006665100135158649487924693102981228847129285087617626109893188425627808121756454302409537007660658376192109832142092032682445536089931273575783935431266112698980934223074734961487860042565244895964416961211068787689671149460879783194450215808548408492233071130900036995985776898783329517822092862092399906969629667343893405523446704071393689242666853174607325795378623977731852944645690669449994623822823217129756845791858309861698970791757830433200373670872621267742259889581861239883276834452089432943855353205772374063434828533910937409934487144005828458739655774287585048263528454848608602329138152731332353331175900712258788776695721388527618505221793453082750256540248667311113421106248988123504573107136691318629139618578034573404140533212220715743430524928696777723936553762778610977654195724717011400040811418140925774869061687626536903835010739838376129668400723836237941359761962721674417697434421669283964914047626229228638283280971665630144482689332619189377303980760971294077523811675727746599592966421185661095158770086100020166445750373930759827077795731047158605168042035252018605486158881986596046211721352207015898006458011323588930713201362484362865842416252417093237475238661429765395042764033950564582283718650456371012685870080481343088078268730450834215387521180424350865397010362618931121169339646485940057614617003118291998675460556945024046737921740287257585246582731659767353551075300262029742498749774772070133541713958805306389206643011327149462286145646455010783958855152150824341109117066411014939113900764289446182861629768845282920345080329115075156914279290382918575484244802887983945970530513913090668898502517433494045406413327975346387193131583631059554215889056357713931566033440739883598458237990369769541008726772057314074707499345784574670898965701764374632048258154875719859030914994381392746798459481628679393299736580802661692666349729836618027409220911538563292980604612479737178892759950378045452566740913241206468375560198777875781175186212884532764058580265690417382389558034363388937225761677620559451843851130712294392465482860341362890786106182889446287954789302060583264078400056297699649756401724761756279801277686744046367506877285617961721574963810569811259904233860381525122637320930281272783122900907487619623660946256807828346993589840736286251745275837655374900481412372186405510617525827788886973913579221047554373868278342599580291255253966163140956493571234693034407770309989933365584584185011683964380302812356192605241967283344450346039876176241156963227142054435105380493987273003247189636704164884071244012073719955230930423710871348787539764649535928007771267181246751585494157359644140358204658800415478059874820134209987030461174977051941936479712086882597407772549296952446545391550996059628378880515750340901636354216151115115368838744219164396115564991308926530258967051890717232243086391880096399365272766514519093031653968320800176018964205857439571244383432057631101482893921167315569625150069780394235321650803908952152881308587565704740774538475102237621467622353569034897479302964213030878338728923008793902562322066997983409549042515809960954106393936014830437833402565175232888574816500215098468217844943614100676961728086750196179229254917025760248129370676041717814796465556187740456414343806516143190599485816804122988772857286988150271218603775264065986241374943419296316320722046966394006965068455458278489271376071469748817537170952962762021769164126430031944876101192720111489122970204003562800231387041177794275827821145664432556923585018393638093599501661600177991267778356351960042447742310660744988545783543019917756276249223239245520007597690140263772833988332401812297224869786316173256720413821377210205682228478369358170433662365656678263398365819772973758092861413694813727346558041187531401717421467653961772396647328381025136054145059842644923454775031768649182128367408375699655356032685233953162891000153828527528150151979956704873978021552033666086111006240076344640178446217729200360859231464426516349769959385749873713288067989128181182598542373927172396839034105756907965322414093471939714412354708088456536786484203293468948506925701277974764037988805707697806420707766090435046553459486751833733603540752575049193530860512373936285942249974938858672213640777847475968336158944239547187692280802671651723154051158809448531336226533219298520465669986100243139988278903403801932634494415123854091725319280357475002346973180829810876008158896830491680164897660228256488586535685890307076792019374668511043456501335763008940036791805562114748669378254696744541358748159958921127006241887016361250182603194423944052902462882785322983445028867426996708004751270009807146739322207147005329700288713352607440866181785237218739867141778272036240680051514006858185367613180203613350629819638549596265915780987954157536061768409795370971071533873740978478421791862577156268447523261965566900049839989272940381517477325020588319783814358036012770734428074038279529061958046999773116123305425070936664018966919813545804093273314338158557806225725322804431253086762900548357333486856961564889506809265508730736540684350829880270741813835770214428495871347313404798486393195911397163851767264659263732689469659077789440559808242299389091778090260406191843044462435322246602452171178129256606074160054440842448223846154521382766183210544703243396247558414027367756445697480825202660732314082738953435116467988539383655086687684565234367105553457299474335014837748843073020091184538355438547135244858273834756097204599136387328132404468088206015711020156369449751800078835267990265801963822968465295464330026072072058143648177212941499860680216450814167707608211311936295741352270870644401573030613340627527787954573353834312255890490987317387433175224346817121796422684270929000963572180609812401351118473752696609645335908439757787547001992190182993519255088549171565419696977439564730285128467440012763746700756123898706827624493537136533763133099987969833283372096086310577935614274916851758457328037068446118524885838008695689947110148664924112896800457635101022013099474149082324987937542775603566337026175403677735747029192989443185596743941545829777465661314805861003428326687099275333582851081414062388132880014208468509860995804233330663705833984682475931524155248987258655767523430484073505731912859164459362212485862399342623381921300480640318679723893679928694259990285600893989481344657351382663202862618637820928516035270614819946769157520349798605636126281592420103142583160559734230345201161630019594060853976288746999079065475581367965768805549851737249949424035078375463568979137151705455521445391502440542310517424258196418206056527943061647394638668932795858787033150653322153680206854464286809589522384086457854662724291923761220095686558970414174992790984141252221250857865488420520245913671961486876774497160788836629202215492892665443698357247116109461320854737511805570936733407952662305379673818057562676283647886174558552191472338429106509545691909845240747756662310731613172604309688223650005592434658758000517188974619976662057941960973248230945403423116593034603832799133620335123231489180755580335016827042897233436130429800207881390220048255870174594281738275914369083529422565300367556379579380575122877443947091907999913048861329508631858728992788401534590559859706359590103433733687252219567604974520297437656959060304641405996927460910563130209086299612505227434998312583684591715562998975835039423862694041842175258401976405697624372616775974822668157036994176306515134015050809818906660863270726442964994052825950092429293261710935269002096111778823891131007772095497963703454947621665924175494815959608503120447968634464093370107307788593229617602109668375221601552531374270632443622411844967692678906652610159378222838516761830748459576859400420901878991075270348029867804408211687361346049047638456352823714558350440897181694320123278011544407748358046872844505879231596225242454075058454033940227551947553641296273398373406917190840534022805971400024113588819387738800223344971721424681064372407692042316421853030781402688482532076056320344428041096936898119036490665076942724386602817985983232795497541772312627529668717298291126836630561016423967114725213486904525560001767022699437779620525952684491723809838095821577389723842031768232332533912413801920783978966326640835818790268942663824760461530510289570156838624024311678330132767043213871977387474141490108424333996962042876283652202540039087096926499988104050446692696737991386086112406980326710628494610233728790049011096949773338252850025880779969324892690508014197045863990066834487200286162519916160988963386430042042870870588397544430192265870726415561855237896322768494727107245101689245359423676291144984815602839031921330484080754820564335922877884736395186544590602792347039495699001817811684508746668754197240398230061549616457778960449178789241525866367095762310467331323029685107474013729959708475963057252676109220217320891879173238744345000945464958000687920484663740136129239761110613409674535937084803427307310740800079711257114483679560699748622432864986878467691043328340844867799569403240049121818842477592045694848982195088376191557990156788051034304112522070705964227982708063158605051275130230030379674950716717093055339532675130360797209045152721443641629086053183676719569311533091839786198622458436052040024685794769480036040015780985343667261958558345805228449908416514714827706938488011069931967151493175631193066789449814940262222916655725568009217523783375281112653156916316579874385550137084307383870304311222264437049210165673897373004692041142087154733743748880298690101196546438052179334596866952545613520223083586042036893299715301652619801517398572209804821696970554838808792170697346504043268806187929100799814269616490035558699075740498502667578991045895018482549811209248904627923420792404999377285026752441201323590732395040389403459395644942462746426798466179235657391362279028457382664087122013732597419076985303193037573401757634696556703348463631744674551716077751634028210380407910220849267708032926602500227318308323203231230930215649935523370668122948942092067763042463916248386886926234521978761675706963278970374431530504091520080375914756689914676634604408345677492253446793487225825903322341813935247014427488994101648900036036731472168634563997281035256160192095069065669810876711078225174873992495126946551710655949936138016734228278496796988337897636989707009270603843115714769861225364562833499906782905120822104838845587596847734280358651161470730897934486015993510708130137714944687178249422934051737854491461694222520642607739097762981416950751590874421900116751593761374153251716189998453579213005467274529318885484239842125517262480404351666723463698682620916046184297018896701838613455546436340981052268145404780718682140908186571646634996583249228653790957956780012715800271928311228416858515514578740984679173668050381699739390444518132060503476699286188212781527374085684205465973675548368079434246293973920937337514657665030293719813014168718818553410523965073316721733470405161726842805120531264482410953817385012250676472449024101685763722161133418173566123796119874649910231490056662931050027226803698088812105399663734179349224510186131361590925551520527880493296012263039491725655141487652987227808940301410583991474156532451009386298652840884960830639421313032788001629816458920964052349739811248858627996217631910427259797259165111674266318283964679664331526257670637019596898447845091055281667368596276611400834444150530862879275095374397217632045367362288692748686742239312387094191228655996372954502391697369930915890502966129633494188645176432144805650200889871639537900409393480755301686719048168774487908582594636203859371439618277620222531620421153006719663386295016855864142650712601432856980343066704622730578221237745303907968323350606112857032729655993302783356773751462938881741913014060477500307438097762993139279697313601081702397959999481580954450629773342052384655426925964487074292460571189558174274300022359721176988301273106337968400186649931044977426817135113930921590318642762190331826626951914700575048478421206744937267594705330247687312265500693227046645756916350264668007749572306375249455552873878929003200360655744167283481518475088789359031069297334965775337919816884276711059293893622148027756725505383718320795945806583614068615911629698905483541274449053535524850785538971318209184451499462322933584162512872772082105250849965805962312224467770464075991345716691044158787741643190894312227518706050966567749898930185728214940486665679000905353428320116511954674141716102323940434073586522777734215811810656931024051953547796466055719637079897412644584004667409257049720596881016562306565141421756346610372350202125590603514415652009046843652108837933572499078750347274386637260647602490015515248227539023837807205561531459345977577266752523957006056502840188352197592889833794522661647344714277356853080913594852398757904356386310590137947028401499513170396957605437159502491375860153706760231604519041582398561432973738192915437450787752789966920832414162756194887813473518684758087134661411031818482930210248040896164567022990419849214887809889036381704113748791076305356864199233677066857061527365767934759994633511643338708046730276008148525774519506255118406681091712137387852810031503572493466321055694048253239318929286492085420662729566965817835406423223446991852660144122620121263659651485372915625448782536939880333619422071987616510638851608798542793932621601711982618254949613442250316274105775685710750851476780862639997778061217410026549470168491260544386666657111863047563002032155835092842499801215378584162749963250072790433656444742817564901695614755764617569085222726162621802667763825392008439335714622716485683212331560788547726055920154432377174118727925700068316323365536811678804795614660354652784656285761811678270298614294995262204788635995349974017936462718843262235816339643010844690535382756348963399362528732416282833847688691950532816391005434234045261756002120659887467942677133441565432244348498131239266835263280719607532236539021109641372856769864600679939776051706285282042433285427737306528205068953454191239409147959065475210507043931059073669065645744622198186014689150743639717284227403949784376870108752299928127182607911748223854289602003027578713705550145101691202410635435637693856664220031214245383240552363603136106017614400676255451528686310121912012400818083465642738981847628314387188988979703906952894625051003363326121736059516120228475393406236283178268018557927544220280921067988569481534812926284801740331382695089508615823108091227183973095851058074532176399538494801237277756178423904952635124536017751438211069544485171868412696512623900345417611968857419916680662329175984904711830552144181838311724429913314043571002396861818827095446715146676914265894536145161760356110087120281022286958937077041247265718205281386814475321791303701353311208751990796607033398301480869238376989955367483924822874522126132024586571645508027476574350855892517627471991372636318549901840557852290919112576034017664808429505568849710058746336693860495199860880963861328096221403820051856337538012140950996574765067876969259780791630645902277015213679498111303977474363016054500545979008068087045930689420199992320037711948511871682766848072019059536859317349419623933309672648584795806166168377887557493913124358009713984047578578031674221701268149435466666340877948406790674769917403990962941267921834601626588727964460576212738433411834257889649252341085210453525905676008721516136873181731197611168111363020324471301909243852419127772648870850575571785456520221502016223525665906194526070064578334531943186794358436515731639250577984395220651095648053801669214483179582600826191265579304368979700400458116725640305402467836551357707791091774257961786217686623276984280792395459679367506090125295169696818992710566833005960331530351836816306041561320038846735649003751490503370133107795843479023472799516228879439476596842386871527574364488180768414255534777118042323604145699231525746370555457919824542354345758771996421574479259470762023732458954272893102562608088459995105583655950003704098779355809357270238399878712797357532609737634754306394078032971295248742986329342896449538911757075873205510664254389041416572833622874017357658341391984516258788547861425055098505343569894700907925745406202006829768809924527136113646199455701610963376959999614461713024741345741006479585831612372426537620407060109218573791786872651569648870037947737647165613490155055236253535042103725408210185486280687052497817880964433188504313071436622125720862558361857146094515148962246533090472464545734525539911668555856663497539085202665383493790690634061666994338470894178907178987642506327978036123069462389748131054467281422012535745779368114840655843142018193622612825088662263112527079683432425845527750590797320150676778318477131237630522298093856560319061487496067715628941426821053799258989592772335655143304645993541756214580607593076538275589486730913600882178382687187842580930927092498228519386979809632823136186198210686784067801628578442764973444765753430670211759688531671128929817983511507355696826982710224291826465741440735683671864656550533501635676902258939833762555875787749396694025598840763116722379006598966636261579699729135485377488693645417706974044478002585338240898034772457994801568147721417946204401149206736612304499032324329728120702166057791899231989832741455874451247127619733964530166660746547665638501222380914382541476797952102017141581433648902595315201813568438630986637785109203910641004845100421886209763303716160479483744926627488419597715126832233711175678269050647812819882357474666112221496112551424634178451935732537934518598546546992783079272957767481652774409528151951589999731679050447691246326728241036946737361917787919120882181205845951410393475019969935117213409094197145338228473902620172991520108372186745118879271073464588098921040720708176528043970444840612511084836966730560765009939566547990606774245022006769082663876197375788507515595664682483031765862901374282143716531047622791408144500874887720565573457967285582132897847472243405593393552753987779561772403670247999905709707267968155929815742612285007003405309905598545119964650895473474466548602229229959898191935731524642032575071521607937598720853258153404439036352774498540512916037566902337452718216040726870255996172384526730792457479569591555837446039666730791435665215695442303549119580180008602955945163523971683613715733214767277792323825603476284138835626754180037424132612993718101433620045388539567011693163475537331441863063682334284749335011590135982172613578226712117148548058870087159976418593606905456268415283530620481916362607212065996730173308320738838045932571111993946059709234265668657397937892968317748606608700257578984313610525114338642942082772054024791853649827594288537315021810202023609404613152804787357417110589391797087181727909228581825665575196975183955959422373027645826753067044593441389198287049144174136040093037423877658798541433493699167736442699238462703034906073543467929647846522141263740207932341671650585265516215298013009161500406731463335812258770954788253504193332260472529741664842519414352991281141509107106565698331334765447074014235722476673423174815866883631299791956305612006488187903510221232176550783731712424614438083294724711444900165170868562066197984977962940459201472575760047470266691521465328946175229305259597285012182173593979585192147729161371542510382740317291192819439055858637869419471129157822610753366893410147597343508645753674970085880476909093689954187008445286547335754167359764465984829598170734064239036945695812413044904839279250695171114936160170491820660111064646549980043658416427850412809063381979118610829514724616230148103729170782320715548174652825513716925431811827385882021123490310627052198480224370813376485209134933128197547028129372707993664355951730730653394212049986128300479371966954652178163476512399730917820576688129385729214612790978782980448420042233376189953038006651825004774098910295437745281302885612589088212697392991303261187547212020778516087139741237731104225911510257494718562410941442205800427809972540774445216511936040087644540787796883866790907853457236410571136810606551336463558016021466352003114074217447833536921323523843071936528351183594776773238854892090216799745789692616155490882640113645642894613542660881499219253019793436886975721451376665787090919104681671565015873949942143230386113483537776118196326268874523484099424272212654122517965007240290084826942995700334156288072709051711449887380924758507107372359365787231399265149713138585439791967679877481018418951864612218756499109665853468046771495550955361463230528926502841514873197564049516966411843964101641749610055271070879558837987151227832936719120682255942393568148319109174676655439776321415057530748649997288228926752655822375707919996726159568990833710728124639425480628615957163440499755496131138283884646811585882497382028531326256742169370579548673101664276968702779094239746381721139115964908406175663611603417877247875363428281760487282986717992399362047941057009149040478251245479645247101387584277405433483023263701136621607879463826155559906618061946104814549501764402002546803005750961594377493525106956687152638294074338273973738100076119226393563946396494124814532801920145238881099269354699609289895628827350946043261184256787554066925806695620231177761396139862285965963924780522914017775099814355922886859590087857901117702856702411242529202982840955883236261209074200851031678087515499686031477023730479439961917994808767262817236524313183319781425046833133384480865106445048801639151719501268743095146806854354578915530830822904326507153933804600265821596860831721744441661280416267069897436738986144874354950242330545302302576158503078286584052102520110181963078121973859332943992528671313464498501335093824559591832360257274007822585668101640272063052572132553752039701391618926698114097094173982605459527594651982839085490077657044362098784968930943052112156531405879391650056616270026095198135366423122935482700162589467225757868145769525943654568384305057672695331125148110928143619555960095279290410421702838746987982923712833734216316292494867424264748665827008956771646359088633086612420098108186697045044976896995966951853576625834201359575823712429540470522530977033781033640679420980460979196324675756143464569834470362653186716824694310454323748268476301578202842895987689658723852113210578699087379417693360215195556138148091734376431605781219311715619619162952282470000006047715130010619680524361331651629524061125045138640820995537218284345267219747386943391037199934878005670198799371972424256429869990406781471078302905468181996432109843528247819776126340149130138784602570795827109301485415382239569765472237187295369101584880500181728171104704424683669783331337790499876517877682085883257811848422356575934859551463666935504039420517407227596143279288812005895832086705720910485754090631313801765997964612409097886958217699815617709583741566667005502402024886810034008308851686276110722581358930371237327188222723141434424743770564977066927173821884644470197455717842730106206147655348631639748139524410137132723083839606573479808154150010689943098383245665208672236708597582285527980826266805532875111697235554722076938812022295322267711709303087021197026558434028607025937147182133777487081283417338026060841020631045316888458171886475700165897551098386183763337093011237670226950104116341067566853624741053742548112660510552692314842605419269386269354026497628528316525158832658803851981452510420014141394996266771803745960462403873353071995713119350529128446921094984126019794592141201992233890179452763241175390307605321480532159928666376333104360103878773181146237810820582803301562882900359862525447406358968478357908714872376655777366932414649004233360375969822586170345680428024977023286082634586315476561500911990399489569867756210242889895418168477138889608642408247379182305704227172664786267437848536256214043378686818966078651981132151441474185311946705483313074411266450975425944593410925040506481648514356687244380940451159337340340885270578933482175042650295763745599643606007805065441549639194600003428074520936416981390653018568538974402359007895020161219493187695786357570167951897618124798141186826381167287389016864920090920815198371372219637100595842911564247320285193457049472055740997477678234242810215108526705503286301659677262201536433022699984848597115742010816530110363494156265263988337753867152381785069767615595665163101183974897322296222119676794615508498504716986176250568221285995192911884086926995310441485070572364933762392330297969793608126624456366030200188801119516986271035021558207019573194277299064846866221131651014121577650810815842612395403700300347149399847903829596965155834180317107267481437527142454512740720708203843016388206791132721947290764881315302019043697860871300568398667434149168012248268173732114963399240303021963425142973995391995338596201717941858907972074246808817776531644048450158205262826129699768975827759058406116022562250208677088663598955672923668764038487219969985111460283083075144984339684136574850266139221959655930103153022305712786058304225611893165307964228501026472650673021155612924043952651754504076155075378239771364261294163126228609792083211124643513091117430298626529135231050619106807008816309419575064056185299587539196959968146202231644628627873599371933544887733882391011366003470126696120094297072253662781056441001132385281792495774130970965308657929351364189547491570923225843054050047897291593823808183039605112557819270035958616645104115493138375804706984842754544450358378635089185981364124274596240582231950236058234943600301508806943898052883131253085115238498557519201663867061287307223331120936325643583243124854144975827706928657091823135058160484918367110999078557321049659368511577545966010014033261993332094315079577750317139476446117404348947937721262224466709994202941434204162095563631193743605685223680330722631529519442140332547400708368607739973048223267720905833650431156055925779725864288650793172286285343992376747747542005700082329824699767737741314006550299920272821884444121325518322014996135590523109591369612249766292239869477112208671932482872467970532538238501681773675020658326986590449764397120162401843811809027559753500570935233900223001850471611997279217700167992775189329324653782601605529066124054486743898568681822947690805429995652312814348479687044882557445591208073848804924727705843470985532289672653990136297230519584665046984377190118342814432377385743852336903712490849366549353460578438356545355218142851654691469805813880792730923341371317919946236710133368567387492931453224271755346740350144206117699630164384011662919559214987536823139819498895890989833054829702372800451977297388943395380808442787075241110671667242650603285398330863408227186848434172637278973233930687389697310956082916902066272153117507504273234078992307949814113131847293379866094321171351096768958334876306674357718443129025640705882313787889215852382008733049776340432127815334881634743576456324713378344326596447461278623467564501392554556465722677865877032116279166933987527831298919608611301080621939527200084119704908561845242813967462666363971431813078990800043090646848818214988321289708966681184928922289553090109395585970050875566573294338077713866615734249654262464560325709830055397894247326221651991347910840482979966313614245413528183468221533628759343874835164833580419146328081538669390838378469721608138092428562314256842668940216921128630682215471190433365958765519169118987938404341750183625373583086091404704131593986046560787102676902975210957831161910267236994234577982375980681478623372886389794234952255621121161479320722324394766571574561381832956497036592898192608075904368097726611562254667170888993438299014978848597262104011978032950618820264699038831591549515061061934945147362842123333530696514341388314284828181430221441705063789615653139335481106944407750166074319089493902287639946884109296097923342055875250287293179884667437238627617858345241647621288740569148075961782890439851502932841029409645077280258804652707263860927484037125700429162853443465528623983496989107275954492337741678845080145911396498834399846219338601489381430165945743816975480513877666754237592868903532558599694328556272087294801318539088856822563638272108450724833188264339923434972667728310700992919658861402538735883808544404029314339186758980860163090745920780105977820468857999583329894374386968752893509595784412619760891302019879416175500041416427814524503527961219132709756279737249571568141541458317424923150615802582952999140502154860513873436092499508113399875182976545725271869701719813623237798518567300434359495147402907443964464756916792440687009522439085921248409494780542512205281524615929213730305318439727794342509100860302844122796801433472408580425482260017787600080787765759594118970502307351439577102510557862792235328794118246661349905331420427105277808343233655284416044730400239248599150599139757117384694387921926078881400890027634134781907803526212718674338715453648055581234038470086740604114508862622989894296977021277929217307651693104191487698689027405158787110052516959835207628619351588062346034647810824242388306657071939970276342799861637727102499473343571826740629594115847985161035617173551430919302206116033808822758353221719920573893469581529201576317585726474705219395639277545981815098199404055021866155008855757711185347125278115399655901808478781544673986572228831222019162538630442075052482598692747236472365893158929275864002350142404730135756875696674847096951434361735790975522967025678652421289457315086720205834396817400785438046860997008915203059852860473480518733364656002822075840280281729485585099829501030933199738706650869264547740513736879117716631696066083841078299515361900478324225608172160495357415394042690969838832041169013956374430964467490027556327716517441889763853768850816757830169833250670732257192873412011629289862918027740992054595085472758540674826298197201094120681013682052969266611395812110819171505793111115847233888367437330345989151525716699030269039642386267293908315178603474750141736980660649566553892094819688361088183428467810914298445550685241745959709783223005590308880906783393889507257289252249150810306805586179969745385674139454887558142790697628776316795121421562826853245377886397021043804404333532683438626113088979713121391937719037289781010997944431499058137234892983629420887114650923722230048338681525653322099816582613100530039041058945344772287846543714425817773561340066596779404088885308017703477624335155604684076817408760434403852355074407592965368941336339060216034752620265420694173296684336466385081610454358010985645849338805895720891926643845616399227192779690213321698452823969441986029991411777543094782633987645246000025803808179252296714610920710668023019037843844081124189387310246317268112932296488221825829992374118599976534509335760062953794134511022517223909247192472720753251950606446288027970557791565710210734392375164370996995549701277636504209191431952897330851393400686254866097959572213466185940445018970077430761919229499310792888154214134742442703434133709719838917044934475510110155903564119945186427444655020049262751059381577138729987652511994316430570218348870033950149453622488920588990649805630568081064369661967925297043312927810403128030974812086715779016582833939317518197364284121932815092939644561084692582873570584202881355506743629880810264173904071296344208947167532864366522795326257341067381448998209977604910760682676661273090606669857969568493049327078606326576130918972755029480912269772824015608375084062546816426315339114896788492836274513433846765270784586964196797211785465877182205344691979938445492735479429827872980796774367929104361884806240191916903602396030153578166701721995012566576409179991671039443243392704471877439134329034861118191284003759728606985473579077404846046060380373508066520278418362930085017559809211448121729232289371556929908104396440663337781019177573570501867840562482352838699052189253093395567583371236637528478072112380925351777631532749094832768718255624807977930762830866939706455589952227732519581164621606597245319706544439785408708964635048438008836105292873573446102119941438951232699121592862236984304137509292085731912064807886672128871250410185691826573273512163802699269164100636784668737036032456503250421066620553783851760807246053879275822429087464207187021210842546548239436165168793271529775109615714508428723281950220919374022969435874559048480983530882361165569440631816153176986913779786868975129633258645753497295633290754516748488611317859958506707418203978271159224735937044388832123140250802371220230069416704793755088981797855581088195187351537346070002210215435550599193475225402459209812317854170832261742563796519134037744458252044956484682161759746794588005457634606658757804188795398023763737367987407944292911722739283181307237280167510571903652499672944202026424087828324995484977882879709473876771976248001685239166741548074326718725767153829468185919284085065006387773393382065215255392422715344841835435716485125137784853488645176891804645193820650704073245855966465573948926802372269082895538605209395958603347655825990687214906857065990878505550664872359917296613804667238167164145016605647340522431343054159622719291066718053747115855794206678714138208707044211257649709555192768684291709518862296705124130470671959189354075535134184735945362140568769885839624824521236088705645277769158588393064416279449570301102997074281305404016106654114699280145856931369103156195425103643512222623991672311253105986025233674133763412111241692018300144060670016876580513850285432669715484867321258832355317294279904511927496503284672151876726997414986158868879421390944102306291865025324914801225146912467588870982965647879385837851016050066152130621271270830222241963252490967126687903739420751956093762821005504933569008039110466381695949698758300464756842640723111646206123923132681244038982654499926091929701167396990024015519289433726728935715336943705822098539032624587901850131507146403387123332151976797824315794867975292770621270281193075509162843515587945407715481940983991857373999104794362479145381250949716964962525543965839249179949243196074048810358684187262242349124784374624826818525187813661527276184429088037818338463108990068941553680361218247825874543432369629617583482693964704465732525444646593926332736108374098940242920855608190922179664829839092176392581862326688184113390951377733909694449699277840005551370956693412562182359329079781504727769394443876806029061245039485908476039300507998892057507274860188081133249060292303261187602840135716079037838684555980563470392464604353752689880805984358443751608632027098815098516916766405113892788186335444673130100546982542150948607268959975660666585579180835883608370730640613965857433658736989590275923956441621233790085213378803150481124187227127763942786900409837430445872691708432387670981677665814549449476122766652518743615222428520604884119329192584969943560486112714021385409716779617952707129009700501903048929271525110265016530874788951624605005682071692851485294897212993162859190625157332459144824805777914147040772134214666211538794893771262604650996683543927678316198383693825080856651704656865501522048248797847402936834235461531072452632672105505143589386284724270566902859169879655936448403570675841132999016601623021897872973637275056497866283761289673680417008780960288008764987990263050531042719262221672008466321015124574949549099423374571949137846995375444158502042327771325731300127738349529167913716524769371937458338140006745957627793964485035447234011622893156498105588194002841054615960897343019138207539901063263728011281622086836637651802052891990140688787315892342827673439100997451736227970223001535770836874230895425101655791276890500517053489689145106652845785606477374014675545441963103746910762551291301302438701540795813368741852935895477812779152550478468169770828902958545284177248882920848370188627939715040596760761793137546805075670918116925051090350543399854456893840304363329007691583494321643116127600353880733240332532933274209551473547741986283063133788751207762750320166144933160619474163479148745151484903865694865740202683517094487833277396102688958222741856235763949359120029270633061617555640296732559107611388776815256461571310009101125355604172720888224406143685407810167398281065287353374386730230267899343442458047948644855959857092115619932052064564071410281208567213254982892877040911277394595485940313132171105394089448028994816465878726564740676527463818184276367802141362279788713136974294406585169582481418691916717839136637951672085322030247501612117677785076059133716016452640629726694939243101186769139159264660919399149770776464773434352378620122505011063104052470949048994981920243146336866087416578167852300613217232347447537519923233997624926932498876432217049050279924592667279909003813435247638521000631092067662722192447786095496455383729288445462196791916785395537429138848989044002863130131500388144037173372391157892248300348362579765887942399433744230533499036394760350498842342220478461657951570649828285930410685357989823502981882990617742598066952938551830093404298854139906362643800316422107790055316144395126098471226647899702951322763736644834821959182470060552323056712165363427913317847278855376402148468396141235948876894672336027772882872807376294524599735690327721783890032017415294138134043956857113806875286379443963560681678498622052277854194122405155227310158812693495595106052666883915410213964424801322880335409470781441286647515390456509726455350691769685545360223947604193112150901577528623399667937406194991378150376323086754852100094504514517929766153228543372009599162660077463085542700093107511363385552517585589702417788290987519406713913356629909327571464190693819816280736114272406175374413567065901157303466757597182818585372252349141804362387092399671194755135858465962592063001763451710389631027264803286154168298950976912260859657972718632371853278946753862824219037848632186428472653514273845831575727142481409417999303744067204706475413413607677598098585445967438231684945107684939808607140367737809972510437153567005585746726228105583933250681380763966087493608664589724956615542780536003553956244082679196185326816232109838644812231891196971820211235971738856151060810032939956730992010603824494409617297394513877794916979905658903249567013614204053108763397636960093084243968484146908371182120539306827520062158243573598347447835771270592744047338882232708335554011906192213225587366424162511454056577690598217799806667597432798686616597358974920246387056863606708030738748991543765316488331683101518049805369989056509940626888816983905280690640251274269176416227263938066361341798761303836779906640179325861269398707073538346322588594824357638812561071096043413166600691546068781996075101876478869667029565184015603514939969782584284879607371347819742139514204072723458861930951951528575244724790170986662490328867831324478312955434325299491166815424628578385964194649673852051382147518170605094711337807693200447926286794338542917240407659041456765563543906296368716335666006559334468414554895999559841786182829100795542100382212291711289487972157665113938253070649823898688270266355761032782209593628228562711549726180533077008631903515531107573770243063562895159472669281956140289343868499150272786072631932189571163830912663596094229021351506195368317021719216041039509224308486138625973172016431884648162937557326642112634179018894446850009433283459256253861882183434432747282683679997657948411853066291609486258983783812556320146697217629883351518729378964399498284220150652686061684477933704018906019033192892436643188674127265168013244538752071173082288305080481988000166648710961757757434944315882694229010803374797680470607411690057017837381972082646066024412206773178719873495701314589840054514163772218459305763192724375423161708598926725359968405940197777587143242284313658377803990737996691503174907652785963941827982882852781867366765020052527185731143403465156702878440249235434805579621569826106897433725612899993041960122225059578047165292158061780267262374428787488528664952088959525848297089838431225674446010794924539765740098206249147325424965707187290969145996796481462305641968196953871059422914288749431895100955342087930714220224974834516234770890775665728385022797498886735208768587553993969436858485390862850502520717631938598803938112931465460060736667934485429397989535034151482564335923477730642393121817756328685845328319101236983666211848046951506537678137777835385849892436781097156533904128718430807064052928530049523830269580568169350672308752228477013569036910585609380944031089817654028892548364581781621642960959051204084447425301166148767327578049295387778284290109014422696724247472572798580488671293736941715053282636536516949714981007060122093632940875788369068798781842402957361092220634822418614357170848010091217706919250062634959156954401617769857044084578999975563032596035977088387324258049632907218671858876079575152702326838547119462407211669104985342178454065459323219119230109191178143624190475191275112667156404356389052320953771060130769768243551734135845573063581464854386896673367920058765067265239339037410358349756207170583718590863940346776282315633648953396611399429123329425553057905702908321497290645946337328611637581691640362830554308532756236481009722954319411219677575623535695917097649860991415235513136825026735529755011719916257717063807042824247434131772850588714808799062034954234529020019678556032934882627832036511586220336408922956999139885715139779230293236446150846873136570214145484741233372908324965569044952893215852460643451699059595760251081520271970179611733746838762953181787086977166443632745591893828239871712106537170653284811317275121102145942402096108214195720000288513462007032099329053817956450331231015982272272964736618548011053131675784706139137167356961020384289158817060899673364462521182487723129908539504426129611207529402485794055843516055541863624419600818442356037714385775631845333492815579513840710784395974602131797924193979772700094444657423555647568380191965162242517188581730322090059436686196021300850545611241674720842330368879035631938389796362167355753421473950958858954865412247425800335940798972768315418581649779378366390103693516140063193216603337429259992773768348754409765557786268659193561355577502602283797054523766411306467843770537712118980983955294736649459969690275315243602860651196869192798494947787691111311207095220385931687892259658529070790225664176388364247458184343370054844369783391278836226430763288802344897798532646781552401655178472689391221452435546227718211089728848237257134801745336772105914924542510295468419373166939770372922209490202858103361587784913620818691106071810123644713512683181532273245611912235303489975564279474769425066385886803719469585156794904519993928508520061053917196540741642333224776765521855908487771322907195903186768707977756229112447723598975802653016761365084079160754909106749349793252483396945675887899322780663844552813046000140014316147847300139351645050581929364025797219504730247606371669213941097495361646507962103395878031320242957361261318523630292343339364046041556428623327163203055387517036105096901483103716379697488316459324808292437280301266802799764777003782735237207239536870925428720569212564737070103727766910544940943745201297159014161493086255953662513482091463784567226236111435650487708977962435394456492745658653642028818553470837389985763269356536077468229519475194771408637098554339771856970513445029893183017976474014467842674813881708267520668653188831645320967085613879033300063747345880441453699040031878388820589248997595023179736493507685892849338480443267803865524766792172506683154022677439857375779647452266104599812197529590852815681757245140513912448348810113874441405055081801740614060036991212375016174129129518111531437537274061385434235406155880564121937564805352515785583106311036270954109370911266610671613054527368610027671197281488955151433529325383645391092583028709365036721357300984677333139340641232101563486775033756978780220338454400282690448908787100560637120834575899627214844604972855276764842527320263764230781282139422622768135869479717679305085575268569041147703583882760404132475076016717732926747684726601157720659956067356067270119348064772673075626799053613126580475388789943479475475403267735492561375610954196979811956669966239453772979483859802605984909680299949767352660373862026453047864591440742534660841552027143400709354010175718946952197727903126782611997367925976915505844123916350342886316540304316450839040935791310370585981223653277609899800409999060883605529202788483460971801633937094219224254196242268619186670324366422965407686777706226540908413287959575990794460120246622561013831765800654197649335792046489760317336049811509371094865804841001199717986639991695884286082029022601492349714478727954137376978755582720318038273678704516087235943359074830852818785205329647702090093455227870505057510881363262846149863112402610590912972337415171062867082737009488658469749267561363442313709807481301689229604092421814695240534353869780137845804077872164499153059410443428449423425020689795004954235589845041849976344534584141199265429502253596222266650898594318746438131144146008191422181195610128674658602255201342977709330085684273646704930944098024428253378011720350531109565709916735820727206020971281293699647397534034183697889714290431386676419224727574127225004174353295306742617799292897315484314500926071905153433629989703204989118264639490800951119199696745434322308732139815503193204202258540110124641585706028888642703394134251937756082019032382080046276227569886791721829300088633813090756502006552515806211417495484085180389841454465836432603809941102885362775202528187517955898242415250305399270335541367352044460585856311026016503273082930612821076448751539006308676287556683600995102570228564619368676106637510421941032828255650288274431927845987799300573694528671930163539681363786216790748525004449600625139696888306849093157918327646965241803112796564598599777551248244859909412660446719528268447262171823364226009091923733387494615139330772326949240031621037827665629685415253761971922551463516425712125575809285630504400318549150788826558144359697161343478241061398235261002443062244025145855506701026642471384552082087347743178198983313282223409286990923990708282948612705059287637613461184024709039479532169664538873631206145994271536398018410636565012971204254247250939443883592355090891760812503998652814620344079637294357370533393896029319980237083525112587424423059640122218165777276796138184771652120396593905525285881580891484646936404084516875015328354849468650978284614536530654726770302056065507346547580260030296764278008115213717622493471573249394175489581739868055618621099121073500937222377859738921199990227621567427035999218759049118570675290600331733116378364179071334720477090052172486659420287589354974555406367013678379130421300869515150157900898976719546275080167804282710670626190164536049876347092593014645403549467608923650752527043577110836481016038014171618158081182041528398071488379384880976657817455792218122327342677164876045304950040184389813271462575035169218855977330908129567132210561185008502595659586893004668418187080464590015269171988273454514029207691057663269288015281999916172035371377792839008463539135157285473422875325615759772563154597667222177337402219922663812718808753555411826856275609319802496125092936907814201202199505028401075019461452793913822720915427134400498954532019599668793463715620062095038346136335785384364006851393286455150833528454236763562054919175271934170574759691092242491786637424000865031734701870421439823836263199616775181469327510676668448533835620766150424625062913558105147398519797826490410515389317978377788019302716367161721778769396481194015371664933569147817761880132761354220162437611659081713556260819934609298450275123262470859530295516805962098913413642413725150699341650954746588797692630634708401923253328983875671111442471832561258327709704770486209210670547267096705712768702465430560566032150697166994827067195149467312989312695662128918023160801716600803455658360797570557016873748138851238835259833607567476762922286616906732274406406103457907074719932281767922756704046597517913544917675901912296351422313198214952025199333970321861114585229181738035700893198656549333707761830256155082512399637133980394361345341334171293104353133816384414179929672904787865105254434660476159647710435195646524573517352459731864976043488113818751395793465960754113903605209423246131936652243215707020386064606195449463563741347622273278089526329872732106100184922505735066031255872937851363141813742229572545186042175073418516500821788440757109234249264416593171963118082846285515627682816940745878850348731148239818322937561924022216316473250598014038540682104155211681573880804737555396391433355032961741428169483471392380140896406117043644292539461096665677185775453610871252748316442635133469010739728815726559145937426839970928249646362854709631772921998502923389892660365964955681686140639459580701045592803477800903100179976980318859528088663534454472578714159620323685432167866581850070459423386540766423758294828405390078393628368264351390052009377571376361634523366046126778739845692323261436516867003163296176571240130309005126298144335009320369745662357463367844047492567867367455238164915481341356770679128363255796016240325154047402129069904646941079018720262914432913024819379673180560354201994985041348210856328699958906170880618685401719513773807291999678796603489064663116144199271544335693590456348051031999142427704757490832452843698519736258610895724902595578316075802841410607460397375466308662302039754617887604835389857448004852245609632310389240162389361507741892820843308984622426999270652168664275988727871801385712290735171243773129378745592807639247001085255116348746907874555841060235497825444889661075630304124275672013046518188235350771739364483292460940984885443985157478774316720252240060353388221726274765291991663509126071845777957475628438963506375144125996206661542639416867881026576713865014979673487043085688098798255226337792819361396681870905959546777404227627099092418289949358047776401547926408581302201717421961017865881569347282643004864744922404430092949842118425090771681067386822621845503887460400990831093625024893926539322738416664208585224204793875343529606198743809579258888000067825334300975270868745005666399063412134797057674358813120185234488203832765009199588554240270656123296262213079491868507490647617841463799834911867365289380865518288741792920480639247202287751208375117364937413282267733947774809262910200490984107863228471518357475885304961111151591184326787504258958829757165927052455026376209064175344094008745624942937898201569738251393198677592964044628911577273743966500220966117804087526718938758752737261225558541275208390526346078936599739529604336990502567052837502317212719960331133497692225561528283538719272418381761199443156018904205204580798541969240894128039311661697663565308264557113942251449698623168660924823235211070593947747369716847797879743251674855693993857328079082090423989508847456717081698072006053429698290329040245368847490801978274210040698053141557938176413659951527190255056323530395194479646571334321053751807358704513918944338753707861395430964043504652571219014891979711206015322172987128539597828117672919915364950229085916747799207930532373972787811109014245744153769462794678782522056961346723933320289480022844615313661328172156494653218080988336221879682010605595186264451952142818795293338735796883124412528833875599387471615778768775378640014578735630925965236116981701043944629134340128328047193886110120339205013224334944293158444873768816894036963895120461492399076584427759322288152437843476813024849662967644163396519270800882082301579463539504138855943963387263390493285636674722573393437447198346327434776985056612450389563771566044504958156347479276826001930379357069589357364563346250353217163029706385657053836471791966564370446060640582187123906736715480590205874401734792129527637192742897020513419820510206919945819652228647755981664120423421807906717564922764746926164469271373714239455545002333826753595827710431347909967685243382286201038042050235779763048269724067672112704147495959781253811984752338793433865295915821119255075259476692449712697119660065498922520467540457660573181571850585006748142879838212115004442040836460227049079824313851185036941514496904707117083975778708752491246170228987168730469315357709082694930254178736175477491891791095426926825463308488409708158218899628157574697890173942817415247509812872753870539625639173991746731975460553031490361324135947604219862934829089699389056571711838689929101437692072736565500282068459251679560156635292834771977290274500719174777872832501727565370485826901377501730224084482568592574693212631005101223309638576311117915037363981329209272238763392131017558113586904469166313059340965005425622067721066572199537370477982320226566253518518351756201353961445984139876606183771407550156556821545085495475834742766919919785302925808844749381565988262660370166723309577063810189881280209397255818959333567406222453029754078483707474847884579778850821040407756836015056969612651164722370313751781509112066987828009226651531932509767828827700028664204764576756622984226560845452746431926094346114892308275322957070346264796180350675012207233318814041471280029287842535181888977534299132383981451830315342940542617738818502861771947482470107989163947303768902495572903970527932198042041961243798270834145226178926758963419844974422720384282578378281100259406660963888869686140336507112496675564461655135116338579088377044568266392359577840499304333859965265760063092204310744211302905046324821252283025926006592531986630957223602435322174993066023342623197585261387007149031977265024762411916150659813796025206571315646459315383071833263181807805228910251601274894183795032583471507750602639326622025751959786212305147839813685827505269277165588807901648968049755331519521279483772380068518733575311599303058817961402629427007975502031475109544274174395874718947009380147872999079100253558571616595680696099098181573759241650972270180218148358122297137789167525745476260054315801663072193937312702517183217677942518798493428946098904503976718283819868197936975838585718273814485545653208943390484207521841032570828564410098874710227632635201541530263810965698595438222470896473026402175217246463112014656907591644278250570551330489682123098485092350316633056679175480654272065837874712641483263811513410705411642529085017911832894964959814129588984138814220773373002067708515344791596603166845600150271473225948930849841758336137375567453447320640670595954323606530347975501343235935573662301236489570867922959665298016137181695206602941141752441182929102524606718008753442826809442918008894653787657447250585930555644704989273112488414666523547531733781410395057147454515997966765875372534859669173139163573882718357327914484780930147090425877223883924828778771811768204723132535456929954696888737332536027140230885087749339926576755605433270036207345420295959503888146747984036417087887336325453616859507358663359662621048458922907236527747346469352150335623029365253374163060705863339752644519222995524757786775756848647446847498800043870436743504912150033646392200578843323137364964821490957685190574252179069950685454859339771073023398531999282803269434460851431238506990875174933230304264254351706729402602568932168620620790734633205260445902723069682726461328531436027737474903044687378879546907417292710223752568845131799359310963445314348032751036647008771774441064674152808343364708647738052056266495897084698685472920555764324028088330670614986105001067682359898721211437318870084588877567347279552094087810705290028043889323862299959756072797285150653987281552202251567800907887082469789673922480492240443321951625781721782562161189463770077642592179003929631452350222031430293953511722338535443175964617337567136770005211192746525069576265381072847153439677578334436796387375280192601664677730306744336947236575535606528316080875594673112939686587187770031368805102629530666028416561365782724785257548317422859731584491839574614329700553685644261511810857936297753944198106124592647838342484836619918896661123241380628892877483064277252063970149207267308640235170068829369118513191322961151101902452532779811936132647491330660102474051189855340468144408369053487068925134004910930217020476808845170512622101486229554554117747973956522029508031912032268222506268705760205456331288204615637241927978737096646197179328917329237978771735448383060163124844218494538989297136566173283275053339490166069020693598868868547980386549792765809096875172837382723189917894077649058989053981149266567353467346172057527013981496041509618092018069679171592857195239123542840045901953743510964204991248695673702180023665997656832680555331681472302619334265804567781395179522200801810715146619982681370325511726749823330091704778240824755160004832991127888872278939278846888780943888280756769996186796847747199641830522972728483497713567401685418669942490153163207699848906372498225150255873243178125552605576596549483226420486503997456223382134484986568851528385098119366369504799662611744600735469562775239367274008315584827438393525791068570530742567803759516636888266912141909892723804157129495695787644435524816141853784299097844434973439743812946221375990609334620367972040092121318543791241706194330541024993800949852506633137025118503987401628853481915281009433556917082536123772514213018684603639170796947390388259360368326367420576907823449577326129064780043203217775209660286179258667177383664303575939473571706872072064515696714435026269152131625611512533016954666027661111264011600106079503335888510813288307015541132215357099222935238973858110025322938148155720417160999437887373661060428542423347171134181690794063314071089393271444485920856545418549188553357332306879260251861591259503791564017056298897336667884050683561649070951551247213491251622481795968139070329300068244175423605783702133632453829829527477240530328624177084572486741288260770207161614165842383599157647833511977274595453904557505955221448366145604149489045492487775550899484071755584721486798136957105128583359134481223969966126009332311071329183900846319267764359521371507433682999164925881887746741816549231000445306339080963671511635857256249167299961181952405508079906094896638746787026581227531653933913962430894675087156933792993960969972406590266802741786828920434136870167590200806432968525213127581744622326235753737783500794351560443224466206680207966751292939350917566969938036550489947292215138517978690527957487135447143148452309651883837174031265424431588816801935863357398405637376308505534171513419515066603076809098252926837131853021928143352180750472372773451154423237634059320117026641689316922627403555536280130955324203033883002704967804108115166883560330488878797291812089307767927677846535961931942940930463076780486712061408218581118604662638693297280767633003846604238100874750549301669348866315962068590715743757842022102445082727240307965765214621354393211679467082498163999419579465534390135965324961350262917998248196084134243604311790596550211763137854130010996449146341589896929810203519815117479551175200660333851000462510567796864659276084906719863750680403714024335097278409054915119048517875866287377240941775115364697458749813683361830242062902155856235679946304130250546095821799030058828945757886207479470444192860601376195098739898285695805242407398945908878729887992366877281930435782068278195287665517976930771907966826968421489680675934527802373779213928994682842374052590025708295633106591563333589938951225011370439452988045973472423976060153869548537599689009914624560635416895120536373744299131792119392295647766958458626984180475398167975884535697265888195695781530368361814103997838413848584220209135265886130291305754620462412223435550482804622379214615674414143286329699272151495182015238607909371008046945665996791549344639338716805558060568343292063090943724573017594704605464562005713091538263260170902461756228758090209907890239358336931078056506551621615425241534012565715462713539026003477443350825836091704650622485411028360877707300275926922410268305664565541299085798640352560249002896613728494176170319175316560954440717724337027845004348655508576880197682515581971947560697664870292484132246045974149769030726051194874024013634623097950209199384911157812785465530491055492067207653371194451509743279038019615810475329551147385746708977597472656419558232512835447708099133539223681127794806310487303464882350351579032543838540871966110339095526697118271318342887562995764123586561998980194014789112614569879789071135303740739046537900876074845707927178235453813082529256876991391653534095641202181749938745375890740452001794237089975874902916550537440606482531042690127759202347925735451450840168457747128597084858465394223229807371792238239418104109037550944492218937742579467524929259986126489539232999872887965145301203962609449606308966300823593572270336615360582652251015495510378253667225478457040396165116994243738765454523208854814841114740609203822707619611551865669927644968932106448716674676956224516704866029339361138321971632412734172010090162034845713028085361122225814421780231155338102603556235997162215948402873734140955832482354582984891248201851089632572122619872277289470236469884020246292285470904173633828613444800607052365401689131036242743005323383435179252728373089058945593774692723470539117163806594032881671189611681218550620067751293114356517793601915206357169813500582821051180025284096711632312505071173537709891618781093073135041555908035093435159174964234389386536745532358952818639290934380965915150340112216166554808523644966036482656326291151834844743647417903647718643493342424898682034416120278901506122287294608920838731460441333303171062468674733710587224795539257815187428976514989385913933722995941323551468879364336236867224932995033503758935101097980149368105095886580920941744170136339264886926518639723941817942966765955482024022852934325613973895689054038341470995646925281341931702184622605844281001488572894448570840393737335108545497161889265820013227987167891820660351327989136416948077195032111136222016016101513521512187222409750361066535135606496428097108767304902590585188913973968781690962332146790306101207739326283479820035151282722172427447780953163592739216458809104809315946862936990212575678822561315778758953406434115967356181644794251599210448016032325496119431435926395366914571625001427907945129164690606006380666658839926004676854735891355370870816491684462051084198466265479340765516675228042671016723346762833146821272015669435612357938085646403641872835880928176064161818201050134607315106877421853868010198690796151569835491206566303611538188301399814608702918338214084436002957245817870037779891049154153015741014425500434970572961911249600615968359990176937702043890554972348796545889067404355418328787858970815720870421316404354683369671212048632289208364204840877806850816853072198734299754455228292173973720182070409328647429794358324428920193133871956283330956669998725355409858163489497937013913392088103058081137253662108608583036485050371028706589928502104272506506986202913066768687333647624287179597669665199297438863932572440379409088277162946890801837178581540502815869287663899514466027527692846837117930492832924907520729111339462426538065371182158874495378406870712090869390333105283511895557642071700046316631168925566138080371331623265964431727648154102153570111718475444113339634119880399679338414407828006892962292067768433155224999139001937684956630800790402557835356626327067290802024408834875891519465544417957870722072770096260104109429980010669454541339308795473135338777025176116135060309931030501188365768235692493568586745504875316780919660796457693717149589535313461809371650417317113439715637234166743153660170849428148789972125005794787981343830591723200988500113363696016402391584240465141328978448433315555681708654251205009811138895695381339350526974334711403517153470719288236165004194664158771211830242622449830013586063645201226994292051735815805912686257169318049531883236997472023587873544277883432131722538791990312548315200251895612917394278293565726377979948719920418010416932813344715223868309674634791570163910026987399331900059471612825011673608427879200098897958770435786430252498910322056220005319816198187245520175639336843933699306194973263319986002645475250874630886288593331361359962646626308886720556860931267776120500003054637963540857917127296109033590529650362002762002958247153725428343322540297781829361319456068474891416733049407892942067626929302920033894998802054309635937124700868566543676089105227543501447569049823446453958918698956894323288168311574256983283930000130909239229033488835388501874568652751715003688966188949038170158040707685634419373777072500292959938934840349536058423031521471080840872094460754793149938538240955935499280822391299640021737491428870074622424414224063299067226345468314508919805722809054097416667466706042276928696434446313638394660429780319223497687087795179465381452227766322811476222340429785308954520120062800893292567480548901415209049635173683065839010274221224018313599447126320374858811252991780918456066428450971295338258359008845862897392629222682069757079867720816309631990733671007361998693226325693972281252797557906651516220556490382079977005281958461488928680222370713593376766893277528603006332197470264597359246385718059625884848110862407572660965404436723613486542486475657085478843314290355594555242051044159679315295328264711960072698437637908397253289342947642387448322757316038104795768685969549086368475198263425992288556113796419438650151257410425324917413474443966811978232042852907795395486216822364991582679502020588052215501668958006627544924518868012249635578554599055822114195428223879299345442394296462076061965474408430986668368741832848296943738491763901863945669932479579462190094698360377955232706598880297189822367637516757751312783538622261871518354055548803220479037646430685196833265815111732207199163220248577120352703666066722759070091747843693944900652128062897051253318349655407562935110763604360958854830053373234700866996751086296206173769079561348101766122496651565487855344835244856284899375163963591056990366372483748990146074573512340779228206362288260832472687369184718447776097786293883561276184445859798383298102762597921490837475176060952723730918598747042626472528144610125810849059586720767353118756316549724463226214474198975350996389215665449699888750662669911812988561584213182525799983911401100293435609716174898314944369168764264262862648455020267068267790091984849320309089138149708858092502613447970808454950024968742384773666577018441071553806647581400224706589665255598795284973574292650036827419541164953610699787154893289325947539092774237187757258995480637337978770483695108826507110124036128612256026643409764561872168810461110811448798472913887858934566369424362696019171341720757489347333430578304758208512397258217008051234366166183398570362057737337980444444196900639242008064016584675356345452130486193740762948236392084076936246503362222330342177501411873503422663205585033302333981179423299660602471570615781957959939917919298415429652377483735884802790866101671583244940672390222052712691273974922296996598628469666175692701345750539613984854335433057522264586029511124964478134194868718340153952584710605250149012114599185262707031323901381247327476742068509225050947890404371201948510637594477144668564379089244135526463862485048781327095788025828513178074273548673358807276931944128211683649189923919585541469913524364602688564230003619847778105283915782602954778813153523273220703574400192237895188845788840577121849424461104480097611513646194883241615661116142857043071486020799592112887082398101509599578832583785179837647718214119899014436993819962622010768068238593194468204349285263711662371576681646627885564456153961878397967066284967582105303409761996686979742113076032602224668955582219542978999669950402945621113009269770083105278547963091346632634116683710762567983097712071096687508709480502279367378522564938905690828359339265737240103527334346058163356710193734211574460977208865480672928848366515608026525814041472491132692283955994486668679138967632501809638444246428448765810452045572350865742144618687917493610301144199898384106919333142231627807533552208924676774649664180787948463821832046052095401304644177016610547934289016933363011040014990584387416060141831925101362401103159298251980035899313924989403635180903845170400784190601215196808156121594468928662885581394375408094383623291487335481136509644172482511854299613660006122522767374311702630789758263937437940896044517383591502555706092616549788115389294420091496828854329549374343928369158530612328829087276712034300054792308404111949171588010961899582115233805422224218562648264310410611645250628059633719973956614830862900789266784634932273075230527782336765523580308520105810116838375998348453463908494550273740138036774578730295671515582910323750457019677962652576419920535096498218169881840061104304544164929613410973229844054308642210226058797568651571283661936803637782213420544243662138379636414560895375363206608598798575420308464686375138839782377402602926547977125437124229604349988654071232988734025640370589578670377568604211269361061253415899442117577268823206742176501410509588273282517389111667865468184675734254265732546284145435418185552598208435057394395762963475906249627574369702418334029715088763005169399011969408138255780600239283438789325883336116745083086580680940723508705455727075899326608817433670730642177068978134470710312116820899167850663186482890990195244226001999258347682022048534149098850032933986536164850571627073196949190118333159130197221880364714787874531293375429508417602807310420341061792561104430389170313195065551708062044148498004633183125710613635275029535835988414483640322621896390291600090006130807482290929066281941698694091695388992115234085671509790614752552695024620314582638501582862187924842902199556088282907242768049157132781765522791974239870715272883168811887261989269997441528808047450785929511104084984004561760242911853830651459542108028388425719703050129400762494698131674088316051401592135994514573686834608267177320908325157413259635468109096462520967377490886915002623137146509287329086733049186266135908904062067096011624768853432155541463224699020450450362046910133904458037325391728202106967476037225038084379307404680545605303623568948165397015581853260891186835049908901070678646680706590191791607892371390193768857840054109843985547124757995303980235662507850220326198881984019111849418825542092405183868307460938166819018620122007091978288095743661783631830518923249752629484620270155501897110124988834878220400520080499825274288276950306670332713542645576126395045645432297332821408260760844833366272041323370255437819997262253618994357804069275953600942178707077831788739849002700184605307610981342044758441567435199518749903174819601154426414403734043734095196783873220403540562402832323773575258606579294310400271909558963333603347277107966279802745991991745169863229842576690940211031557087433516963447683081704863273662278334862840384544383003079883606583797073788747637937622985016500265454052733754569674608358536983068110658654755733549188655614572581274044342988208253418028083946061287293716962761891271148711451328680775119691054049056938957546183294875439680517139557659025655529725569685132848147275904242900320270816357017984796959932595919226475435124465354176454968433530931525316271492414460117087985803407023379965097332640702815894576240760420126821675473105200185172703547778561236584608820559106163715218489190234013594561577084599457141148743026483160190184904217239751455954317045220632852811349803506070295862216558436301142011922779111145206672387428920760694181351538346405247436323290690459923075462595076594273821527229162817753772578907892544315758785399024678721115235706383346929532209998019437261853351384168241674378049867447523412062845812913040837783797676153917151622023582549175806192330032668988620373015588520819640869825727381219866994360516131309411541181263850994150097928429947288988885864545032773142218318768310971710502602970589781966064590298004659129737355593147217084347151704785922177082679602747495752600182720088140543697655890998842422175026095171524988064855566747694732816515627896631525438208790977333553524597172449826012227408860913992623961155558329820112368861816453856254218108408570783138256022944699973439855193246172037880084593808890874074123862563476223323089804928435629609881490533246109692829953923757194396398747360639197459436144230046301133010608834620185428401478644721364441893778607378845853891969278813256406092345148805051070737758679893930753637874911888088712974576714530517455143930004383905792729207705970069058184459678020616255703501966283813490085541101472587747102134210770788543586051082511408827267428423924555609420706221519151570964167326095827757134547608758989812732786709832353384493654344858819609850951865891548219016179772050239928207953892022912385271115192602920464968821635590454678790765454106458864289534882145142375228235886706631113471006095956954176601006104568268126004666879858820379859214804162892585263012484039774740645917418715227105374242703286736706985903853555952852907704779741034294433510359987677176355826415036224395288596247397620551013683925067657827825014558447533943640247727676362179405158545929251438973372371788038746393451906061909939724126665436684962375945965417028835010634301616442911064718008401437270230189110835009703725839090024868380354948155225859835743965615073944683369755348019375598080319628222684914816266792684806410102213944305323926458137906536000525908891727610337668356361540059059079967553085695431643479814278685220962462586225613589972492818034996511994934183331856873154434277307006229689704282847092849101830630268646273688026727642545273081073852819725664826122818701889011696080138480901324243022550986215898885660153624432255118082198933579321589983487793341581846116339271034622962960849170142219005903542470501113912501745318063147984449260306529802421510360574801191827629528239019246087327124845703083687463748794641526067044099419659446233981003734219018956246837737391270425296654966622009778060539362428704313526381908640106472841147975809707972476295895971573610724457237522081378030595331284017259400896193424018466572064992500594605102137669995976852043404876375095993068816935887324504119329061067635914829629857272482119657717982649702188856135820134834520972042317697929349328223752344530950268710685577475859558420712157639087656624873627649340709996775197828990242694189929383920008347588303744615300167860550992100150087088126562446484684692084173984509590497111040301002535724528662933011975727740605637802966452340868462459348174331732240619636899488542938879398328594018144801216563942964230002119433187792340100744044408918338265037411710142869880515063586195755639065943512134126019980756419894902324700670341723591052134503791360564001122125786564298810053627378008427222269453244491577266710345517033051803354015072707157489682549016394231714873440963932707995006344039363883759338091950767689279093536266380655427744794788283656149892830872171760081308297220437385519640037565568288236974131382631109321102317359520892214724642331389221023043269098060257001521556234364412940022324004586499724092917992495893639837059347362105547651669230790138539463062683410453637502415447233441047211284787654509007393782733175283458122201904287321808584221699720999566484967410489679386760751524929299230565713992789233135545468987481366091428180999159898737063139168862080713891760471073109773789176629763179906663996650283007449324999658091852367191046216806781344521238954183084099474580379765852481444890634136403868378880829060945189309487788136558482652574156927911139098857594937885081435454088242526205382728098592996622180454147154709598832676570026761676935552992626099506648053148966525161200404861100308714478327525737453369132076632806750137617904223037941222628942812412737817843286056769016938036136037859915736739911937355872552739276438797186337618158587769332666061572881730429886087377345611670491885040301880833156559062305789160043381007666872516197107066950786805006517749340916420540649249637469121999799738702420448922283724750181547861972274687346716062741613556617056383638150429597122106881152897922488563858490413967775373984300760174101964505973393189985917384614078515556758042921554379511162667099575331556345073210279059018338292949668008015837775231492479642599277851146613262566409673320435414484145497228024254398578950107408655327911692522821639010906750735344891287031579873664865042348921152699105529188518729483390408979432378377177338046976179006222174207969003590646908280012479005129404426419490658792328555323795802429388292985086219287823363144252755692601949254839429037317398182678119974509646994581755487736949720221128363823802933126588874819457105732823890521388190392055857109487283275983533175953250912696632273459807391574686421463567317589874563304532245421122277164215611047419753274928948819251987286094096636792130910339927308534255114020664277801301196299599550467102081851579520333366915928361951314345230039871492251901007126929204641219583021857191334505869744101186143676250258909624596995056194106721472099465400172922134553515035333636171091051776195461395188079472108293480906439201954435314448782174457070854528682491459015535506391562025388010489288089827061001428150973509933912058249769617113801795685215726101858654788239938240863375099840458466455989952600597733029306953967952278136043556280158584097682872848193181658657581801419621996782952353293362817447995406000510287885008210292446342373920996429288908607487567450518533996928279814461859490439594931949891134200543272481533253780889006615466937178955436854784737882475833743049384246637726109731017828312797315426037120894463370827434166613240163231496531964860941387740297490624236499274813463672938462412466857572983792188322425285316183292760064529432669430193708083425874413541167692412799464021741106724144236149333820801419549153247826902280219692188755579923484600460625380019147414671513214140643275528354015879233488603487459809942421386447198657296001678238145364824371849980339348727072771461755222265917287696241880726573594437968187475233185611103603080959197474932252269407879490483584277361436720459249641083409389381599517069912893586714211575757525769363807287264367891523048583681902352685471877113674618255198240377337185759045678619524948999784349295463207246200978626078951723367408583062528223109168051241942292223466142558733029526194658987980648542710537830721023109636990174517993826452680217856869347026548222168073964300157543838171326797967194930114962771213307922363009208039163737266358806488713513864408586206396769044216054146296990655483881443959675673831367909994744573053176116113837821540408128315286545369709446614113359362412186385024962024603901291941145691992465773818083125708389809663434187516217814810987650055210116961812026308789067803089733035205823354455439851795354274630174632676883628403194253061551514014302307718803483281715653891151630127466834909400787526251173336009883305153784541965618361247611114152687692251798938990058678263382370767649514682527123026125982253633182207683967008153691184009591625829333134372691870286074243336897391136956898327246075083112888042936810795504569411127439695834325265830783334660658846749469301505565089577291262444448800619756443111957115298139913292679559347357017022710936203353872504904969537048019681064278658348131217831894139128728499955145364509652936732122799843797743824444608813207048624794608597519483197797115919067654134857309383730460720061807953608185403712366398494018666027579077863710773468824268340230384397246272878594020043821225176050178120266107611487436573718466771524133738824571106101980243305461397327726707320809346439920357287514872880626589127158638162655080235216815252928568089527213300553114407186326185832935998047983145864113474089039608149968610746620184765764602306541055901202623711990454001540703477523802567670530427163469788597256707200342951547374946397877170938585144122917202989982401456776392949398159267592338600890511706891332435357240636996076508665361450381147939108386671677887380905351703139329683133308753436193435772515122332907486457776954295545480922665790657252309880727135309860879849683140840857091043398016219222437188175300578652290470887084619319985668675987448167137992183773832551819705744360348965521544754915083455210434002165918984726980776898362584494280598385869844276826241044426679830232688913074127067787795539729931422066682099886654956034283502566666356813244580658877991189891733235690258307296626209546155446623794964817041844783085008552308434045300903074319154389611699009862700568347092136696895570355001014647102525346805523580713864081529064788569639349142055347208953328206777148714449988600551070786877135642755723038773350437309321806474056508410064048661722650587899041701836966753501033613622663665846874285450796648884877780246590151425769272602832077394738823835934998699309735617369685415572749125142566277056792472028183487835285146972011915929603945212642984748903695203423819300771786832502508505156458631330439467663390066420846513031399281308065337217819092863894831046634604491636890681859777989301605609996499115606280129090390325336902701240164817222305310921969014048105278935551749682550141304832771374861642042742734452055238067925304133756837655844459483327211120397130632007852994795602620469792813941929780720395384921571577376446382504198215044128079588252396450340286233408702581284589213853906213315615756461426452240568711607999968201035018040246175959895992543933747920912260166451594099686855087199717159237662893930803042792892720040794547680097470028484255478851246276600781918352887489299712299287251224522153902739765864917130166254627742324664986418930332638718374373110207940031525564658469903821245634292385319178505601904757681315673827898978321915341227091530551946550430512004448887930914368884715783946419838119926621281069310673693482328212718522565395197280099474079636955043949799870852024955397105975419829278688002453463893804342706685105200612058525015971877486718448593905440979295653106274824573437309567937895947497751313095999768715238583348035099773680600525858805785085644601499793468879844312110577434320088873741535549636558240565563666998934358738816106872450402922055456968619338697488152787895719236832840364377783132840285584972727142773243364740509014451889018086551017451030790776485328521534314246955507877306230504641082766980711598312937818805654360445956493277390588207616037192181543680065086415464983812457813828239434526212638010331901872274259472535510386832348313190550180050009295459887663735499449263548280613547256880966316330766020480394892671131000909980372958051292358170439801674776527904345353719765771593709353633078963801693738529240646731780639285577428712608129311235995987860688651987858772936897818680741595472213012130375818509357362432916074170237456026835514537972970555497529402020538450191532756954000887923566766341710918414130418924316527094732894551410370774259111310002298766820548597393243519918329923884713024901280166639414868695371900542736228015563703560271890635616264103920873727475234220059440842833220206014234103253393546023199871673143552529417545737900489895242295702114298701159676222746998964059975401333874936061253312876452326516077672827020654870069187704028367196650709858519464445379430469629071407653633584391897105293336507945255759981191139156596936568190801726580566439282146935613148504198172186842399099421491552724953902610413288721560059544036759863709682501422563560871695812712224924067609033547370004006436945014290018343819440443362529025742258471827212334165447117602154982510516343626001613072944473188884662168983315915972421346480298517836471680117562713796778962745736724245890299833164400880138803828430956380177297875445143300711896482320044757569910414137488300742388922611020155359910185248504813444930844838077667441907723516917328857505919776863804143525071460973812168095880723736391131345302449768049054414259756273527629934151922219780303593424073288525190456490891908839559980705219450921381429138478803918069936796118437717271059675685456113524923982005614074635042854968685363075947193525002951438276634331720389025195239494298465817108119458308094030634359398654849126906715819687359066286049647671762837482452022788357668104189585346909225359376378506581468195149472547982681692449663503049321840231271845456007737275318610808591926191053003085437586402678933871079858093036710703580739338381360726416856913063429276282252601653465730179405420140369043465353410409413992001794974039617696734918642555048579512486634660519622990725077692600857613553823322464477255524550406835483137450682219130276990434856513594287527726562220281337797000513084003492427033251972812507746620663955854646699377983821387639384947501536155285347496637030316159485610029779439293722219022845407388196453723823890144625271218867985376867304975590826251152282130631114532732906149519085901846503495287740438957658652834424218839365326982460273081906697036945137336615844075556268300349166115895384271230572370141111242090769356284155325988397965573318511726711629031757902007261144003957219518976204412595598991373721279555011973703409098373631508782533301283379769853322900696501210005700272716398852271607093999513128618602349186168082847550777476345354124369186770511588478148774733136970207993557046045096640874565849012870482625871315643597324303887526329331321406641827033809080005287707252484022587354279253046377306510702725979987109804105783387750922290369991139591820611552176193129914384218667022906641045267104127877898586725601088538342340491473040158606494061946994784192237536835444205228788027048350258151043263348111145882305332517550780134590083990864615778540838435624679544958435981029116847605600021281710286541056893385720143626533039038983474712228688975848365635322413874429866256899107954810128138808820047638645506536975223686932158441946751661202262677333408882021947971845767949028112378775421903801156745226772796544128528407465102751073946575888792697215360493943793717217154896341209354857536002810803151952584109470941097574091138686175650747153460178002439713890886940880272421203142371752030966525915379071642704672695437680213680205279482989346305960479383753328523749636543429315178170830069798516811648581291437770882748463335257827838491904660450983304166178398597054637350436619929922566223687862982957671145204172885111180666451358393188954850379094352283763749647699939797037474618236442964983603115963436874790848924847129583791264673948266730811649705196907041371301586721554406965857763171770854505006059976047490471657006836996366297189666797552563517164939761250406644153548655208409370767878109429440134386551363298047974274649225208648263970794340539362998092403077051615590854576219975198338015088408238183861649724696569922024552945204406102612062469013876007431299705629794488386931684302386476436613821992048907575896240256821832812623303711173365460022662589032654097369348172264407358911485462793567680955077555528076706295502203334398662713232801068458720032913471818563477230133623147530491595737205526913445286476684916957147769150917228199865611565169600310733270961341766373460772237946878567658220155426056529239445133869487920416416965156187081360303737384450321961478316671424633171168247652957820301080085680500361948004058132329363348281648558362757188452227886995588194254338619535213422850801980449038649757962040206100591556953409816069948075737039512168387526248775490950536021240392421456706749043470355593997899099088417417620675325286305795424509217525574430052112277501884475483383587737293796391935097291055329282991969322440357557607175537277270014821611795611155835697747921339522046029880582949247315402358800296669593455218848153172402357319200458637173050812834807781407466270074819872429288453937143141117629960823778881854659646663813457876172368496793995366312435891812824746815924005008026705150352983284709879445877604366233283563187764281653258786242618823621649486840050604710515386397919610641479610979246746217195304750397536663605463463704607675947318999540981650148710704846308595645872976519465856875744270935534246508761839738232035378977393354417237840986568813930231974856529104570280571373384022592331861893589886113390549587766985316089038509764176430815607751014097206916811647061113355780014558176277186363281829377259070110380455106217968869129556065262835913703812037111140263441658062711111531606856884730313693890946995335221270647694849975497231905793985028929256111913529175578159578389460947029341634497059904085647349128475849897192807090228645813082486891064199877787322197284460840631840886481736129268251685368804442359097466309436372263768558151356605965029624018667617251915016028482956726459967279067637208695992618051972770870460625321209643709138569727173406647626377145824555773919711721414186405163026019580420701259097033306893804109727728760025458002499473279212504207388061353689758758990253047937707609563756164567648212404130590246410533809467388164914286175996192710972292765402995391575756013456717089259294020188476462606025496504697929137254582516774534914724411668043718899208987814452951257739379923824526952952213788907965148038188387028838366035354111144632505375464887504568065217044941988799633745138364448157066812881356798907205814589070650115579877343649301812748727852270384042311485753451577511733421706727832357715765379628836465678191147618979441115784815879145625237910508404654175663006178117663575423485304056746843264547369256468343329054461792906717599125383440822538657798153269059801149872048115740915816772059907828887244509803491876928140533823391250423426489387070669655707274556139208069282030203233319137624943541014847841946464030663289137715074517685845417415993115176315286718405966301102882940430197273515627324538880492231802760822788547382346260620972919567869381190983136677271218095734541292268562712567397594103077846081875512308201082476397331242126802398095669855962523683313201655038774401989099720079231555145496095979447592063884974559611545121289026473166386752793112060416009152408260352722942835565426089474991477218475322835914040123023809023886258036070108182410408402183284968936849508290725885423190683706244625197099944609338559320155850280282148619264292625676560978207767325653637660584275675246475771535593584242761646530438925603048832476854249066394870540106082173649364104630740916951028251833283812418154625043186497938373779446880120545752272042994230034130157123969530225397633637169286293425534632699791609767412670573791241195390130887087166026077782810665447075462591549620406553197778776572420404050348683954107498810525956444514408863135209623710419627988520040356925993466182121886766959751312975866798754117145438349631172745905998607377014258233718081211836883739753126689678560473039508314853467098314469550910528317949133551505704551828555831081618424521176324579259795358652541681291926280523879325740685137739971750559145377539280584129865059358449945164934123634486862362717539115720523790191878025980220604266400325550712209049670659580027591718376732207487094063429421226737528340343997671145235607693602175241713123210367404862400177512235948482675854073353369705092875237361748434409380000560496655383620505970748149388903551204298977986980512321001518373547308018598023491124448548463415334728492900486090744442839932059120026316289729825764927320260428721888844338835814036575649160771056471339548243769077513593177973054081730011326032811484646490723195487503440765308734730837111003108819858655722266784909018122352940477146219808927098828663323605455303241946000082134116296779071298348000007420751966033919114912725385198357303719857741602364017539522869104745598739624038603093683615651283570829467887844043389494994453711338065493071833378501814207773704664647916428413181968786015774685764219460399086712771930123738878060417819615993538285844961352618265035050934689878800202177782804738976018401440900495036582441219971430012639857057196281040403393243590344589469533423544794772958050510541941256761988078868565070780153066983189141653766098569534483985575460587213749110061949314108901929433584591593807492126879894440813427953110294845839667910035060296775481461431173073609630054786966397057410743936946409681962970279415159211504412438227099392374965942717908047651029411754231501098286907868145866383074242339220197399019886949059550930819441090830341731893756042547425351167681420401728558511574369020166134003384407409320248800185098364114555168646546668402721403077751791056138264703519587351210848005574279097666129776791328634578273675703391728901343914912775435003000003271135535549333846065080809036934004802343649504047801598391663596787976080248442603105586728566723822882818032207431465913606901932170365456894514694849330336029526781901658674903105425618856283541894765645384139713380090907166039064451133621025329441884511678569518379639304512444708299892880086814868731577216932889012422818992418105039154931744997463412634272676841112707978751137528232750800248182625498084699514170043392703170333064025963748712259239775452374017779555831577575370684926171693773223890787153397996929410598584743912021872675646642407224920937324452097711047106528698025448154349064567655033360671122452758255045749629149293362173921545976427928571314918644617707201630470807183670653509880496495039564220369148002394807053072951453896445456798558636537839019105244505898124285323708725235983001555648990559848797824277265342813932918946835843193324049797821741672804304522094950633082799858767051234066129774402420264856840139345127138828722521126464873166191979534786261639240180375230464721309834631235570338875952536829845597270996792907715560758741816809439546105764346465695603927344904361742066300754543356693491456122025345539236925014933399402125375087050904686524267520325622486767640927282553093760924921194788653544292777695814821015990204585236050851762590593537071590726353595846179488468139458246177658665421920537511126453870383025450838077740729913089798179032812810879761255339867020118735414641850750147164941157200663830193801637639394146027420696406698805714181739326840484393864840198304487465634627050260961776115176792954141417178212801623586353914563993770358730173425638736577359028710360212988918488721027708922561209528742237638640349760402878392536128531299913127225974447493042464851586404138139873336723789016996268212603923810160602061593030511658711042987923129136188863024324902251865675522156861152376852257726959201752809418957548259389889325477362072001228217692780995041483530170727297921004321316432288187285593490697157150895157708558621861251609498795965657831403031308455451269674983652616999449723127496322495767626584725915125125276881952527328142435427628700820913311859624149375541597166566898797534723309982480301666739101707442248815442125119064934163511120582467188200893126397071593113327255119659100827548304484154562992229294029081563185797235314262278899973155305263595747387965372141926974408230594394950467247904426515335833409050512414622267960844860290979829589406841911206804000047853993737490335553472448092671739334469762462414917797017248708196139875172702909422192825383151612487394003409352335962439574884601783517094364303568340159927260183817690202460519987158588122299720998063575091267069374314627002164440153836122583544530448406435490797326087018832969845271577499977342659239593324428472953552957581611282278842082999522166194656837603204699102832711264087778314921574532740503767108643178253881366205833294405076008810922324568664848746568059295449517652759018804470841687008688819237642990810630222146552878949249747729132878015046991806268898762052190064505009320335742801284746560837138895125039119257332058205617475785840345394967913968203448045481174709207915222777126508610738636562047232395180546064691004102972331485659066444225050554608858064128828514821032519545868587176039765673629124081233875556691524947396489784404016944169331403717270702356539475134908000825888383964796856626979692305235711400562933931173465265566782755629744410531668605310289199855709325924416159250209816164683004904930884519912924313901656583363121792314133803111817009786943497086009305228533773345372944300840611830249494109141935750508182899715239232870815093594323459667407362567689190845759048618497691817049229485643355246317488662946252260287000233781390681909506584135927434079211830415477426958134057928427280673909711707483416363675275115238348905660928218672403380970963789300346507822209741093298067758325492993055421985987953751278581692317007858266313035390559818205937936802285780171406028017371171951701781525494301025850440458647063221071462417417317343762310355307061551039426211187536507284173377362157352114445044254866079019725795413411043659099956405869760411273777350186614439965925827569365848960426690513940738859974433634147150826680130266030862270085773825174089308849502716992117389777662155633877499921286754746356982740066211860265589790005750867293428145989093792074181310124566242859478321252476073013388488312941110045818744390533384124634074966750697779090072917968444055000156381845414633659950761665624527782787127930788697269672557657212273476789539221256180351828408897513443783865681673050046111201968880190485493629794996791610075508513705829121843200187703258492430291202990454932718976392499267046494657874108246430488270707613955456651950815258372989920485775343967840899349286578830519198684868761178548869351926249386864240274983515080540796707692870506462020354671997319362309696136646560980846741213101983697632937829404718603326047249099668167337881127622093425582878180630809232615418769665130341029173652445184025939388793135786925963645094497850047864304498803374467756180762428544585290405922586156736794339689513607155912715804966223706305949958868432006590517705616200230170224127885268055124383736886451910838089109191526172797371170472094215575732538835449213701745263059640719852102651337769273227646044005066749751395778211217121138382333283757402750730011586556059344761539238988064332609105965358385492654001342146008623678577473330285488754168120329385571074292921943466898813428456499203298000240634346942206817068459992405013503000787010944312568664019961548814770059518313434364070506754342743281923770286600495936618136376562400095661597761428392292889219053106882461706301268870726588442046147699925290668968053802934715915770873108547345981922925949582892626412324567258758154202512356653912057284032205364199739924484569833020696954609921980558767443576346266444878350087566777247987562799104274535912441125929988674421488241607752665056659412917785688528844900335724640619345154527249179793266608913358338050862918885877679757491629671675009033357020774406666304691484791636237099147633206314877461297448948585374894732958133382264306217127670243484712605964921562413729414513483494163128361388856351766815265830615774397270484034376527277754277617027676154074442737716739726959095574333946503069916749318281357766607658829805494532304457608203438398110761195201475054422675072893024485792793303848901802045024853331987070006887036721964529654253496648453321215391281177766548314597314173936074791019144662283374134697613875926291420024570535971865022982141252284870262591919524603553892617856473555506122345740346629661817258589921328324236203783802733179276139854775171966314938679539716294138219534440314178235847251835810832522334364173401272875019019738586058108035315516694232110459739601413215873813750622682873542203138176007781873445405983735474139338352874627085385433792456912740639022365528497644965362400517551387470504744778487066537132138171951314662988872883795529455116964344468461602456553661806067286265786317063945293971658046685644106323972573865140434058174678571491842041082619602270315889473501948511577434431893121370902950841332781043129338564266228720199124372585463995209332806087522615015740739625763559710169104122277883536512348186904463162850368866136737242643305254634776510192470778343089813754714600872461338627878353730373293798284028682241479736913646142144547629526942663042369230914929508797805576307343621901662455549372024686850940053084526614213688730993849590891481315493378178842405199337565973395788056405092102068121691769848976654543195664668755125359377636112739638844193640398305463112703546403066648705249850267012221719278759252504711816022706201204581314413889321312340187359474152176646381679008558359378677179272047674306998085028717352597489624139293316116884057217317630059863725395284665063119068618402444818559954381968390928447010360684650198331351589447308720252973613824559070430101084488685696609288006395676823611693317998274618528932485066990069800946192762749292484896983723259040851114984158489469124832403792492461895517723677356003646995771125361815410186105480028162615986625604068017941535894264887157924973877959495478183957305166304022426625947764032319556148926703817173562745587227548503513317301631325170832525798505485265027194106519772483821894433451401401794373956228247613027291458176868482568812619536177175989934560222154670492677517921837459389172226310022345888481136830606759266901816819763321105185882743984986881407070267305395529471198909445940967623135828135339593939463779577317362368987437678714015580308178604294620949287279099838412754061443237774687962329909862709324646998814334167451865044018178095492580175245977487437129195451883687501171831117219718163593580475808071794602208528880212770206849198084586312807848323815810793046576477343771743463323927991307335601294396375334680704104861965094344736579945028220446101675439412743787425812526738331635712127084005581159941095338419492799331457955420887105282526624460002177741264943876869043782801478179380951825694740624267862292646815031332244006712168395544609395390821056593632929455910937300265638576910139044231745824319195428554919051049467452583799952618106673366793894220383276665913117500142697966844060177517923135078449384313547024249075147569380470151081523262658653138534927244951455595523794080746971273232931629530029461633366929065920264451472675558576694965708199758066798228069583242225584228431908840452412751062488025494347521069145520094128246945438517602935834675273577430428915304081667864015335665676445170875307340217378732714161730748611598006975251926914342170250787592277330000383680209378301493408721537167169062045392193829985008312942617355027060319889476945104776098914288332947698536679295674899995254331882451314347613572210610492500063522330757968855170265292295686434812068110357933820502083386414479274298395577143400206024709290156401474592935013752971744882426108944899969197202178270020383455478642453578793185120452266384868198330492269438910110956559067209276387309047903356014374826135426869539587813973642449108732784237018978422268549391854693273543382422596517339381129058776444638092934618658582763327984576963833782772028999617558109723471040787776595151938725605964430633918966608646582105784159850406862059334629374043005901741445067854762054599302578742447427846973742883127342428238368776343574861194395960792274727810317557136501305014648352703050538072078962156199031715571676287029753474510135132325112462481418814498889043381415894683955978181926095246213013178234432867815777210370177726662416040619855011061591882400190153726441963131443406092009451464702553634619595640164996683483977116865158933769596824772170318271878889665567749981038819154426056073005637544877093449146823277071764085129589930964317894402325857828470403065275732809081129542040681930970495988983227205970814136982949203535985567519046004063784106907304322835371229987266938403046607938519305863233662304391348476682524231133862304598258708273536245066992474315837309091443511912221556600728848107031845144954466732331931317858660593150132113980316943125381065906528242449134146332632662522931973795126946586116178718302317051329213463414839702916350499798257363071124014295434961832742457429205697739375488754952871970576480194579711569789999756995247818749730870133155846775679877872963891496426473779194769659099465358482947864558785959953832481514029346094721594039766698091137624884638425897085085300402393998187836325511223303993529839397473026623924812598473769340610869609298584900079097961174271880220564161822840990336977175549386624855342753232256919313251570106300504577313114632529105153113224313819951905190717389374025718741743495876793092098986130660958121038818138186688068789729867180569440846951099452087309299034679234077294021754265129577486606476142356490108396530285867765405507353851366721500874142949306160929585466698336530011836584197291715069799003021641648611081787632661991625844440432581016089436307303359644063120402308150894186082274952326849719483303801617234034129830458525006731279273827643922150709312123807161184107996248182821644052328082798176968708936095402745709375712848455381300201880614122638732138268566488857764780349200801693523672260141939092690586831091734023821781418623588458301983527436425933611512716109960948906947160197201383072342065726495868028553223534712079173313124932072087396025984120916264845257465271379488579173433286519925011141223891453000535205836917652343469676732476444543786760962518913439667749088939430468650151756062689774746550461467372274095853904251714491485894495263104643254057020419548155819106314367288534362183444800729541511082509448398867266920645077151610863217882737857269372512446668774140604294697973574411941078243465188846966731443153927467055493195163447881581567366449754984577377934516645225506197083194580285580594362792078218608242962038110698365017748881062396620778941027133866311681802017328479407349609922714341023638586213882383691144780997349009012393331920345674814641738757285039643512156178969777563394465043111179686456729686841756653857241152479391592950755056064766587895912343305991054960927061952362417077772602375855528707945477593141445404713288923651305621138382168697004018718515148809096703721480331729703133695748327891306344255135256453122613248369381894467716950558946438971951681393863009397186547297857313229919727500253083323548031753202049426811821144493925531069373045707373595812428918848233437595686710490213754122291335407653680033216172076674806842815430585270887129212034939814434560766568371092936406467106848939728417555060871545528240890992603359588043854083427674962745070659832253953244546321391915866034923974575568612385018794367400873434078141058513194251462368587616797858301086495636188953325278579882422991881456111818754764455615742289237010177856788047362881255511032498539662900500970715768988385491746820431099814021021719371411786675588575477622306524110089234876990751180344530502932304074886390811207623849845472742672229967208310453980815228202878931347783317591420226077153496031051833835090646489365466218650941548555856576899850913958025914955519202872422162096703552978807584066045676121541486011646694580760810924733730599532005751472632600685185928530657147866554993547541810359365697057473928336004439011753236632365846456233080051032579651912774530043794410687947892181503072126985942881936510448693773136555026033124565657442276647484333641368171230516664372804166638962090221364269854982864063950707934379678671652278388025181367717658650613551538223622836657646279276428051024194126285686380949035940458050079107266527259854380636929301859625971170187604550777142197314976522493643302363662265651620153857218614821451632970453918937540728562679400366921458556316524061714938582139817350973529261435224684442827835147351222533088238496165323150454748630532320836230477051551008787124775321912698561542873425600864846111809489922859984659171817923242817480480561592674053718896361316778354986361648034435439745133846679921326378667717274284579770124179943679177981665112732403936222052649371254398906746456306388559680227318134113421768225337517527362070276025219347679868298650308433092043670396541076241803377793258621889506807914242316742640698900991687843137332926299114052442854596979263639147709771860008001351739942167495901364905121529402545173422845468686450224093073219602096716710269787908456813926146078005388724533050434284560521965893888970465316875075251746052697781494117859921579488689606692971916055571467548042874091165766397476598314910532363012753811934389480329751483242967948666521849910894973229754502557966585978346290837622117333643646679891442779946461588531938725600369058800496792275438041523893940055352942805402757148638254681083255478820732071872374166862185685652777479350163218059465516216636477321377523504069856241918245692300008743469762919830640544594057906263241298051835511372704265964229657277891369192937364929062815108129440302482384157897187692337718612789049348509752276228519556216624384164964531685050337308819099107257057756991245565741230387245239904291269228686999437347205191965933170311753776906386936983372497831485504429657972729715915218032842184184020855327072952351632904784760022735146791957325196125667377691833429608703596739009428759263799752550241328554993163155579360855940678652732963780997324361298950053317961902835225316581405117190047064516587695903989668711940967820725845780338904029535292106493867269674246688002188290035975013064968148182797773537868863097895122062371833191978999653169808633886401521727333763254497306151980507760253814011574936443067724288136683693927773847149733473436642104168285824239726506693268066510217969741754923838862161520857851490195574470740000134500389155638999330676500938591950472977606427307486105269801099586394234739854773018839791264411928202562029825746015475805948985423861092598403375093558702125774763433501457222452450339535919469960745033799393025164910049389181404189925573620010510223334484301196183739857216259861674308589552316895935526457003680690135387469203926587958638677137071680337379067570530294399606711645716190892491274135579063622693343550676759505893440837878491358092793894346818196235968165929424420415835517099618709666745849636896687983726302734394407317443495944414962670182300365338631372251621863539830455888959683857605893936922700703562237271921343086953253804792309687603349722264260241705045189074335751858537418973695323780250392301645360427843187435506688747984071419772641132724056060484794461954755255856007428499911144705662638218485633784894539034779309310231523283071868626625097978593404896639532652937680101086428662090555784566607210585957677236292820711516263908307274551229642857106780947906827907327730092659408013713179301757358526649754128123315715730933612612793128972596027170910495772199561511346916466862214264384213809842103386025265128632319660563145105494404187705439759518991860073442753156951867577649139938627404396031077525973944379665113250455094313484384494045698838766028803164996910973557626301170256137255789060823334350212712172873133362517370041363957084648839662103912985462410751072199377415734234145977562141319648676358284443532122156360096312431681151610240060498403179936859173940624778405795639451292994231331340890426052676861646698567837176171206358523220113721214097641778229992566023130094978710745452644156777919749021704098735416027901900030623675679982214584941746031256689260802707572476169414420009097812160785973645561799309999396460365662661893612443576097527389470385488444336949555241266154699746581764457978125622402281294400281733946791789110945436521126857369407137762855074426089297788293505867942460045292898375710460240051147260370842551421870287596297602208773567619454317409703037546670215630417114092799286857602520483071285481800262352512104703931326041749816082505132754989674779671842025427229249942460074118752213634576559769581635204254002243102764489490608441439324069701308049444503551147654166547929916923548226517116422734411858445933264003008277383952293039796781954275025017852360326615781740396992049977670759234884853153337576507565989347194493389988314738091400678385446441681060717277264119650833279032151691776853987556668399127682914041366885357290876358200628005822422260241500945590683542528757896177513080127813016471570443978333634476674100578455805141397907051906188906978547133619132160333881289095117561737207319973902399098308907494881030143747586884017471785853272242689083363909242883876396947643030437536714084742111063309522518086434437213726666160688186964762572850722259843979047894544467925643796181905326908583691098119064103426137875421553748719992038204433910589284861856392716642117547488925581214201229132700660026004035834017420375383277673298916462150977895978148210842021167514981070329733418263682939653199291433239750488824175956959265574398010906282101579666561410472412484387570503388306225451130262641902821890115281804063399555161201567652768261520895141252295432135256447397661415177623093433982762060324105559568702680926623579040686538113433857870598335513048369611811801175331579296472832701176711801869039719893425720173905055483213633759211332351853401074818229666860718127228259184020107456463875554052157803938668126125900745471490226031429098835087772365289080115274452198814699076144682401227739856349042147392550097917369034377569998060703081340768583715269846818715504512431562378081875471820450554036343614327462109358623818579155343126270103664193164000733681485442777071415744152050843512664143394687257513644355955610960620838145891862896903489539675946378011196262561919255306365777827468293186246664147132263385496752482421897714384993587353896064181170629530087567524587734900096318855544670971176915959974039601270937279625198813388413652742404952664466982286448051611529406568785039155860234856328849039135006876492486345960131502571503681854042075706066695792156107675401894018328859804889466138769235278812848991535536170385114841843259679872489440385151125485784710199796365068909479033996253662773325672242451421733376589676962862957022892156627332197729130710332676599132810718873852776509218321376608258125641795925522713425206189111522888783155260924381887099001540957242569098795887250571611885209874016553563681410444177142797125646763403133594726759444170189062831902960943880267775469017897066764652551697651527309523253980836429444746723050759253856028116601972374210744649733216254937073225401792580041960041686594446598700418836348185027527885797400826297959928764807039733830770627830040248275380459962021092849692431565054542662257976988728041377744395090034935742041247722892956921653442393600044097539295133214238636111318170997352249927827141382375821852521979695856666410810916310996348223609272878015494403941342796974937998527065382622393012817502063492787025208084456657807801930809845566462138612194439271001414199109557569385339816117255897360135639820439292771951246963480837218936298664615910085082817414065882444103282188346576957301198085597572364997158423018592041238406852654240321032086315123373566591783383433362000567683646061898870462055386837400567268788357166319346004101442093458934866648204984560013469911636984368112590490997517531273981573229843706712313943064139307196673182300343106203259479437958712699108162997242238927190473024356454709875395431757096881853386485123921217952912632982220306285864927047814415326828251090244458345843351517592784378146026055727196540417980914503139163359548442741169422039401163378280374945998512622871498196936981345199295056758529252965797317656221139244579080187745238081557922894176924966914426646054006292589367844192803448673542936907817906534040736268076663860543493113910255940911970872964375342013114922655714197871008224073523991445383523452611888950542103740811631482556792650884078462531808545634061070133476395685690856863933338439854857434539924290213963999518105371893992028457945110265546062690631777240096541902539006590835741457294019162497437514009458652088643857452863732836462479645451958246113664885133643905740740700870756083718946282050210717855892509945846046183906850520466696029730750640124814401929210843980376679255138553597936976211012059501096456223170992007065476957627699966306031570367572522889342960453885623153977694388801383544616090901575356151375555622271372276980208993871462170572899901873863531606799214041941874707558693973094423376774555558674265405361683254837678964457082814445963745999389275698386589546122858244185339431922532289316607406473176519367673480554175782754652074335268215301464423692306917834141885077730435769384561630637396867443912773242597874175414431720470652017598438675963559479438201510992659320747170852147838808137046126174306151408774354820471916219889039367207445875930221985552129080174667298440013485401840123715357969737836954203570018843955617237649370020312375418117841357720726006122490127931612738888929681702146815938866595110083505100802977907823387175767675784941376821127390453696901441621309843815262185856281731400673733793767899388512823715641640370052360829366911131687330877268586497457187386542363758757976988620173639287703847367865361594732584681870327641356542815890667988995276418368116512679601197328165383643362568690876672548832763602221014726784200519380566412637935371397742434655049121517583314333454137943373438699618036224529771494665694240581718881754516086535646786196767721636924025212138724479456095121087922936101414086374222568649640345387321991202026945763001730912338791445203694480811482616572584126420635969654243015447147356612511032267015449436611739503304478486569336071872006789601062714255656771839208288232096202118408983507666934282515896878815186400493674527445261271634278588576611306604813864468690058420271092784951528480938730426744859665527112222885602747544226589106028549894901063792040285815560775361234454090960188247928418994368329625620375617116026789143352205271785093492536652603609608013942678647120835218864129335998841737942789797765513068200185803940611710696038479537928222851601664126730603203738457597844522496697881939559574083833379351155554940783729584109955662225529580778356185124143005126561428281508657032851891044314525159722830331361221332022828999696676982312888638969335297174219963623701065156507019380776523241346681420813301197626749075649370517239843936182389619407404137815436803606548062763193402793190955947351310282720402317916571462769196897661017389054788620049655245361834465998644909170372771260775319433571217740270642373471240505053898414845000491635399907812471331004133015417399449100120104279292739455609508961219795010759021748952744644376738776901376932759018450299401739705284620293248711140522295790241080450947049031979428106356641001901860619407310447567284896556946690592456016681850819395322012823594004083756184556257454217700156912060474427936744272090269766968685135924570534250821169256932039095249533508502102671474269103595157870255981923999909556730003904703118741797719685919557243742684392625007818564557098243994376427239576370517328755425274618321546942368842200701752630388222233756653264379052224927301561820148977123908210485455505813067452105655385962348880456931778788436085873268144693781083210258789975925134882693196408917653146742494298243277024446669407166185260482293003551314376689343857045013713555917377169737226322570489558166576503322213662142512120236367953258268352548078887843796130091894351614361577579703485790332811550814421659556063762711001449471674955848413684645788562816512988160780085242255686274776901526109016660938111917943935854309136958005183194870369317901405351541614997855474460793948084817446150271549443654007333193026734511564428363626724037054971452019766225426919411352331390680979926632374730903394515655607183430300232320365765315714259465914802104714342713701929185551529346218378582195804175257900954910596257197297855890020445952540810603767035967928638091253980779549861175458685435964907696945617606503881385751259640354946246119359167165813516729238723700728438043720397042624379981183465749578750516820497267195866230755347032941899394297644004187309229715391616716779361936260641449310846545547999183880737457134420618648081214585874759219637034905276251649593577070361235710435958544314564674957769698730708422386574806820764936652492631286709907851357198509885928299806752146797234836122959954065679907456664622609918758707137048165726495634943084567930691453362100717552257561355233038540188400058419461801012177476510411345869687850760578141058152567508838638280081427569097571426218548873747887398183428812061886116091426809670806398916373379232466912838213170544215493028810656500574002295159254399993296220344098814192559512632346971762570058317819493621712561754128437344755472146017301885426676632774653402757250677628480437669866493088851055064515473987365508662396447987675999021941860009535859961722000657336402400736282057117016032354092527584215374575763825628015059753613448923560390947494298746123860423441041489858271837323992558287933552393631159663041126009079986809737299744792364639617715992548401190589897016753302560848388517440187116657913381551780861233155899780839464255798721098684176158258855239111208519627265262295036210243967155498928518897351786044630940351407010852775788438177693577068771850772804168990322836377847919856720969433418855092989116693809288657847427360162422985773662163856257829904352311082680661548219547216782752537506505381703452418387536296236697428903767367679442880506250311574019172606231447647765580275892913742781839332571675465920551307139375835078723247433309206871612541984518953537467631328892505740931778069599802851630781740241715303510100375017449053571597678695716707695146174260466555603283846513628509197391550953209330933652372549011759261609277380868532097187164263779781329151429338434348811137442032521020512334769772827499889348046070429755263089086191266351519042091126419781484903834948410370970775913048071702119869290316650964797807403895444444724992563137215948677210957553027320653763751211302724273254016793279008977231738668752992894769551250339176852402938623898555776400221570292445291200699763153934916093229675306311012588952632339106047375779396821217713905474831079268617697404846425624077589700759222196768043655127431743675861253645054215760460008779626644052904254158845619617622789997775132508076197095994338153724757086893636626658957194594340204271981505617227455239194437591218624800329497855989771292215556018062073859379433798479692343946360946810432999433059052642186763760242199715518473074559900052052588202124840855431526749678165359607416918874372308551590554118362710233706011662926072702935971025387193107048879172263555038741432865129315602438413662281388309797175720761532176332563996983437482445499546641240962442409530385077321143390560368995060032968878603788345750114840218087721059274139722912241797517408093964893853804026400419406737922406746125745301979578286132527212213209698366606491711858983130944188846676441958893768732540020280645677184585082918092226941366631272413812377985542051421260384617520581919853075292566036965643936520210011246829156452064627555567135793905251247398529372121099286874722371208352254405686544129118558215055940768290775140547432894204362083857485924668981918967458656739305430216119570831198920817232519048488986786226157590768172840399075584747353013233866435729605473141077654778790737690641568261800738012439182654266420376227954267300617321398920837090265247540196349881116160362043771211636232208600482120252602735339043818094707523203943618094621079165580030700124897448586966872719985150015193687888176112968790882769038894300357367161777911852719929449482612076545355063040593245427138481536555482861077995676449936262389642903408944859977513458428054347802372612349506743874255817981761189192970674161972764956303058839185327438049740913628894509571952386057595876749051697454716042962642241351450351114274922300897213023748443747544929401421732485945752616766582521905811514389296089946630809351060081230743315209173787663406215146543005541074635669356563319944340423446476388148296776519862306180933203578951712302066157376379814767615859443204693164988810952210096823750769589511009852325423629190408645534648684770604081408692586027281760659424640057646485504076398211294365404964585151109932988322174253091284307782247312329203022596661765992764156696388268904954039843289802834197605848590172088849366031760732534629960918222839801936511999922779590422609092768809847325674024612786649965770494573374330347556918524087487553301382235063094596125771151515841058742691994955735497380409916281476058163480951274021837342977186006207376463392112042136928152084622962989503450218938292719089885928003748782281019543575817201109784296787255286953321138845680525704039310812188964613393246249603459865409636899781475559876463017398201864737765010962572112149312480210066051737477661570204649395129619936663400947477246427929214450170682083773930008412174849694911902860883260692681038016102418828184053151614984156042289404610111046261616453615081499346607703173048298984966014274024250372943048856094779259115383387387362113088881852675636756747135551846246312078388323726776666351723122931046576115019959589150767749138259193460077882825721750946352733946478074612812388337031217768467592863721785682201495319830803170442414897555866662476339208712240324374616068657749750239447244300063279862257754674759755374272561161409141515523517985400430389893005766468381156378152403224201280883807589952943716927976267201186879476695962185498514436836745214881337344218709733379327478117546568918669400468890996558065200195279203501135997205567876283411178196050288629768591519777791845983749908714292908655952862167567691608601199759744674590493746133661462211217613500813446208155708727693761614128750899070252469200024994680407027509980594384785770943032600467745533920755482819280422041923115409058872861322904858937583092465103929650302399102993443430703908010098616713247374583466453030854481515406933580436375384134697859635850671830777998445068406910087629413717445665660580960926463085201570837002711056607985201227991124574066300787987707129968404479343499223670112537170928237153529552440236363935614985206613023118897999376579757266589548134321609163130973409611247536506280675467758176860572339523736102491457033431061894686427298060603359107266414004878546624466933598292045638901327932844222763452367047403405349683912130787254168552026951977978358193843790287850513790709105323182868348156360625563390482667765380773173238993090935050253135029460547939565133966174499731203627523948692593346919103483329465966563842007213691315036272240400780922511070204085919450875777936206517764040122080755312493576642180049205176509693546397481449887769179999367729899138998876457136157868510662632752827988148922733726529215411780466892816128264827022431574900273903230812999809369341543775197568583735359278870188385803797747456422612441850895544220228997399992491368220774906598311688359146925150441463999907420931264163996926765170685052416281135514254812854291054058947557755303597225159505402803375092301657577408274691497964338959446797444423047328590463856164259234372864605869389535239947772412321163035296698068995231849958649434631575706854832441732791712498292328972396681063534360146380726421061560143763745311519225616044616669969007218624355459862702377176887863805059355996948741411910894730824985105352228205234855317990253685388152824236715437812837743483680279606664088513661908627394267952632359237926523946786116217043707364968122614738871944545061013052790171337174622313699548364192640614161230810598488327564127112828233014598503165396554465201371167354949039937375725806889252157572096102766308487464777038529055265170596929694670075089702222559807787648009544591555706440875361146455104570928635342673510382358026909320413046923656702332364914746194405673467512650823348117351120290836933867929958111617536881978579221774994034378855461373441056133748202438542206087648409335277530226568849717484678789728631258602627166423426867064397026272361228347517317486512442899271408010164590011948754452199524601471552376101286981327395611376428008066031932979213957519068657453254351479810045996618417365863497294437545665276725044973031234294316124023227778574864579877974680414262176918705073831206033217352822025391963295384076139154152986252008298310918045507649399462872117080442886932961818574428668694026616056079664126054621846307185572454924492945369303436846883636109044837400065674516979848585234130016164852527250793453396107712014829815086960497589749934776912843253157083007185765082364576166399691981941697992135679425166258860608719539307250751335072985607224562884339916874346613249550836193295247683245271564216148749853545544510662636708207775998476856898796062356173168191953910395848124210665043002164138784332960278611039697935997663250789855051611947228814599400147177950883537057992061873996277908228729174487964449022608353816685759625540373566580288835299631740021530303399449975399722883098213245005935969436456088105837497365216376290158636791153789671792097392114844906489648441472300671986531430521722849669025795895151445449749613867042545141801843648935770688107814660534169902401584791210456163380035855077031743142894694987667283063789538411081328720443431632169904027248852496593961200775301884260034830320517269198629767398635994719758139900390449318236730783841083765297695696213775780903960315813775124773455347460867900280710466237898922134240340032801536775686070028051618967856991279263076264542930482648424214331454020229128592663945230934557098094439823787811144698398395880809283862718957114042648044488390807217140254578345912342515777325136825981643905883849431744070906706512459815174734306422040299532074504419914495015093510330970439871855572122463684101788743042875749099871199571246795989866033258636534082340045891810574222583294187939443077265534669963451095800651868136986797161091850256595734752201001783537413510599799892662518194711735464908860524627541439211136938353470825265355768417863023472979812070141365969766146382146302179847166213197244507035013168293195691386136783140526100142378703335546790584531334396668880761684143746489699227570193193800291544395076377199958113932213586091265103924769708742072200569807219165840353041966690949548784054021800770211405868663907972184044144803813992474496938307769448620688448452920750904186970510223270308096696113680857178075759584956873292722388224023068172636816779937682147775955782473920640703255314089041798010820291787280291355482808046018537735648229947902831497369730182745340451806047720798034742249529983658015791808086755559583799676149370254334861551147057183788541684258417882541765855968985219525937070025195456501115356925897384236555271577621203366801013695997701008182220641324207896307769683671546812583934736640690313982519598574862336809424825229651514829440596657724075766585762006734030632295352847575630299185915943377772588668123323250096270564209223826907946738679592685248079395281634911049094867159425123428241252129928348761421783854373022394054183824786104684450554882250538561126960282020055629995994541849819449208203902779514173371376153584245864367258302276398218538097271496877425462903511833014191392262579576906546743414869412103205684354382826488934102349755014700193521510349270539250476032912569000655994081288494048012644732922907514231437275173811484739750602151216788357327858616309360998790523075739878062627130936581746981020203913839529561618415276707551713993748289817977595001618331698111256995194887946144458128329777173679531869324773018954454677415113504460709436679570963260944078766426260162892777394686750005525626793986526152050956576995446512148663693691226427861675859263836291114304417882574736161926345916254951291525239046692568975293940961465259328190750516154791507330850554855230406055920158198794310011386139564501175338987434886987136834799173407725842271720704887774436845669039247380728112696421390234969426465395292442634222809930681980198471981151464449477660591078970439330356342359972641283608389956333228431885827650850140200665381690737235660479803465503219616815749787835304316429123955969343068141922229534941661545737740522823985428156998938527287490460317349254377408412850451179638370169500200265723856233343460847654450526992712404764253535191516388173913803454211475646483667658764166448403660632491836103448854118182814034855624804255716901368320224364500295167226592345197926736032407023481016304061021224287751865898138488838837227839281598397663883035451866762144105791779256072410584411611744989329460000078465476206509351818605819790870616169954363858086667981721711717918392833232393822693915717317747455989384099370269332188115571105653256574911447736844682207870635766477772752340541832824700610550581027481147950401578083910894600641559028052202693858060984443719071529293239235570026388100525745409228753221593518472737130707607375165449525283054426985450790532247552275348621582699741334295743963057229999411243589715006231338505023238664404245626996719735814429025940501853266334310114062541485175854534235586889743295715954167777919068604950033156514291155613976356328294174177800507329627746064686990236310069311688189563604242406858491689441782547647876563094063575952740895305249834397455714186857881393828149644968868944467489143319367021031924928331911662114305766041882257127815652449473421811604893074201681360653381649598569696871318806719359160219259798184842569428549693462838684399734469102023123083295156475335932797515429630889385088639041234029801620346917806561829840424638945763038926413956444049322982751803924875899892228591466096347047879418640340734672164417089790312000369212451912874139297639935635870505508638009180459147049355300117563147352996659611363924421864092827492939747807055636189565828282031275937798120062837225973696230097525796042997492710170128799571340843170204837316375177588609136385962038429405900700241073555375322077583482753174845391526668955077898169953375371864266650153968068375925113060362030137774898915543706980538854506105118683454803108525010983430063411068662958825509707397813768307966535418753101647863334127259915699706825447318162275836678909404952642825044334311019510884580833190957754494395773868576006826477407450250007784161501617512293894425261752494034857196078121468148115460784210826027404468815783161506541303898920189050676770351526653479919416955274981070171408541916034888737429897964295089781356348611397035628609625419112747571231355502591843637704481697598321643359781831481669051382351051112056635225222272640021049531127607454048953977059441844251417236973839668704337803261962772942138001880981686807599342321891734354407312930418498517481005332796077756139788628266836272753455928040920789498003459471280688983088471432646025507747117994548626234707010167460696535773274996494281742474932855620445589601817019437903264776106500845245095771045770463000605430276552172782246188401537378666573498570922469839701181141046878491837690037007198526410516723052900227958130889840315532380774158948504469941692523180410833399059396383226862671580053691424600384991493986730509938747260132065415555049701883437516233080822217245981817542708906019537300034347066811299746557070233567942640741219713549237098303778081376296836837776066546521430454327957689921123956739621823096734869999353465524827886210075467196606290559910844555976996655497037189578199119913629462674262989796520867052800646402568427003660534685801286433695653153911749308316996315062080115483110448947423075796089921012869560210266794567315801700481394968418118816104974714951927496538107895205216125487378758556250721138666793209596654038368086855983986788890415381147769187169657739520679131815690434663699758583087084475524884154571662251832242981133433236196227108934640871185263228446912842091898991889697786538928145092343190762971992568030928778941353283058375692865951299853823169471083350343547290193629087126702465241421292646730438029483600553497478389469151451614090946833883304703003768603337807238084479539387048373257316553346965453506518118642028516988899710149579858942475662475060621748224232998865644860991430900280811629763182390007561387684708862837082367549597653509196088624700507160553254347518507412756778754486423885656290059647274096970679740829912658405771329820739557708618653047639664581386733964991443283514950160086458899102754013299145519540763872852081090147046619152863265240169959030818290853101658994139948689361717679212405496782884989492274615971628878371497550498381323736051523343585244520116956061926931841300180115221554805408820441963142636142277254860286466425579638171332664515463140887794382214020786347666828687856359941507745287112840198066361193976667849591968821085067504473164126630470119809253852596828508716973736284117792397464134714347932265973507136964382364287118596347335797874732071094170141444625555301902329993277889485812138079822004858237964815629659097668561149589497994076531434826745562164619575340447044406698190445961986703817468545000965902402257948325246301157410619045953339735255395888682866311737707604011273599040900397127969792449438738974145466682385332914371211637929185817941649217130999342131097936178441162098466039811918668960094055818549118215019965396461375150338512636295656407181562831744024575497045207250135475180291904701114331368913675394389738662453432539698897032938552350829946503541788853239190818519656051900340922230709121078446469903931563724898306707273706610937484763316096217475738823228101962429216048983970631215831666395227996040122014161732969308047623267169558811687158680318572893738390160993628729636916097710139774401880187276969904360714041752927445342740012309570565998532332340419681033653747648886937112457981278446007118289409456869222309578773581760638230601950021598099221163263001653059077818951926898246131303618809748355314272622058165327661026585021659529271107220541686342581346199370946415003210803768170726799239939614280183145045505339657396997362450265085208587946974294116584525359613430810408940874789164897010949668233089281719182245318496422847040514591139304436162992984507789698251049566514887147988625741434542198836377632407524846574776238848882803606564579909196013616742957402385633343171823015351728390525639472823878500257266141599035016889317883329515160521634197001840817070834587752502305248806801838860144903801900445767440680080025469405531964934309123118020105976905413105521866257183122604309565536873432532258950873748307118067374785774296882468235522903521800056714334417058469716761760409405331834365914570613959338393786670958641277082516767506474959487740331381988706281860585803002966587261657792873410558103555991238886180380312327952668156335921478483154463469723006503769806970494200341376757708818801404977349138364287739173006742083661768552099484130604676952429737417180460446189660907619669775659352227702078320548666636756569893433006786301992196087032173761821286539395269656935823202172023887376714762753810699010915600404781420865238819281638919275089292047043737501816003302419250290167549881501527580857037034340940543781468514415918473655497083040251598325653917967836072238841912306355675232644655320683207533294355971256823631008119632554940533464331119804161337444320094323099076783717885008410252777748837681322149726846123278870270032749179852996067042887704682285989759172807494823616208396322698334956236446230345465604677511633039433627277213759031301245571708040778537481436136026242624160602465955218103077377347622599243994245743197005683237335174400654837618635148635762084505772589065277980768627464030255966075901441721644842342421525606935622675409586268173811215893546271849960269807678127730608034131420871088587119541961172810863755546561352306384049880495054038673564364998041282684864705393901341959562969851158653008582906167888199160481097093383887066565556826674913027473677176597966248748750402829219702815796933138947498555903699215565139659101572973998618155308478347147252053790104579239305279661915731598325808880725392916799425727516037073615444168884297022846006686921134087485518299259214638168804846226697453311253969984589695427558792470051945509055933032658210832298958990659385663240936887788530894825091135716703350344591569784101293937019614154771937761037851151331926318541284639738682174000775432980368891302778402183508324011787284874557758564195784448120141398778956522833970417346552847017180157872635795928417240188590441341965687561289679948827058394912324207573045483900974445902982263731137815288103168935050948878657833848450003138161508855009536231377703179702113255523387068659545354146650686686176090651774897283675649393773272348921792604537318576874899935476078607810201836682942885292061132668765580531556777642104353962499109268440825517101796018182021638959428301507629090295828984857807307726833375907784702798343752110706645771920234398697373785332650193422477027581232808941948909650140720230065393537041537211409697976631121990897287686405051321549043440903994262122284181728659627389256958469711384963272295021840483875491864928323181337823859700585463226746522701617458891873568006995334996939249467816514439762925939158082252233210888319236581776065869251404650838812853087290396859324561391906367632523462895365379815502495221898230460747609624047428923086319582198509644428666495312998426281713843914504203897228050369285675637104101802288501399307717777704896841756731162136404126868343985183345903618439477766941027093020486599045785445237547916219712829470131423409807447709305691312246471227311555843333583941544001089372994843527972285518105772430251522807264882991408965140200010932048187241347873852558120347236963089801989877823260544739968405380388498526811258660992452753843436883553463690843596904044711424547046365049724597068193195054150843993466021346198544620780583529466414253386314155983839479451592141229368793927560690621902312747720234090398881797227900300217678993999601581879138169285361915287353259876127183751108964209699576345619851658286389457484153770987780783525725348986195838832446905808357177915213620477106357920702768760589309563676418351257884053300406152597122590725062225819160886564810399920713455181721830562700604321269159416370599070097116807533972400597722774110052602850744712678483307113611143119019870741409468355202998280678484531405756047503723336116731793401842393233097951815812674428122691081637567557552703308412307571139820795582287456723635224252006006873566549901384730858056183540996587181000988000826457678384539875558890804729598101291789898113175137334014685020617442653074210253007207678104476123031020037588271335438362711808002398058149874183664337174471261039338567348627532533299018020160933188264647365520892788429643024955543725507278587937163041149865797508255341285490947510738645940633723792058244243958969944733374054175637288957932884626154481165683380392561858659532432870411149302645558520974008881139766535767400805297872699960759044484956686323874982646700309202236847122415909538202729835329082333126123388056928235958276371043681169476048337439854577213932020952264851429694443246418092335216784734908758775951764720904196436628827398587773484463077340911399117437855066845322482540671509478306793442532880492474426706931811881634643799017104299626663228819427252610012846539314729705626160349422759637457478912549251900715165327510294227039345905030701368684203318174614713488028207471903322877796710728410842244235529640993470887877326909438300538447236858118565610286434059690008362219843885125374055658403934914737030404472896225195086758207131416426424475101317181186868166924202261366859816095526033424669959676556605125490395510332516753600385810320851877801086956665408832629187174080796316655502047019778836122321000035370241398423156649669265571476580920846821746029774002097021926553311156674593841175626510326346909152318848521490786655802161437302552465632495331235855488174671439102443742906154392132600028919621707853259403354835694028049763748333189119559031582874782790424114180707424944452009265804430464807185291966498871896231106991123908902865560068622498365503087744687654237383543633998933768805771860461974649454707301935344871701450231526795386158279160746558886435810909973990275499553060234703959478853092586516706791234123991164028388514733746871178360775517754086800618178449305028321937336390769789003693228402588979195218770752558493034199150922220097189666729607674775665131920773823997656519597752398622347184770711050049808312818825886521584407403089208053729683282499221787805063337788042813100374910365033539641085863971639108962572760827069574057508847650464308666054952930286164594464923032503958460674871426490673088139770606577656860482004303546787546717965518330395159711762601224808558933687659190262774897702331958315314486024086685870368463593163690655870388528657270208867041295287589513928178048672801655342785792850323459279089591695745059097633557587359091110007839993724713569902923172189667118700746220974653321012577078814627182375506850767306607715291923424081629772370907702722398670040147325302359779540836867224295738322895649065248538200416260259390088471098785550499355719263997497736254930066469361872793678190689535832481753072920133489287164374067313415371330030511692579207135283128940178439630639871542271662771594786892635644945343430735100994076139730637963710305602504622615855934091791494875327456090083525558511107366326507445379653231970277162032099886333223647146323308688850874025203631326050467349276672899683489314374165370619921069408483257708686846157189247763301269747549655988219813611862736372072387292169725467484978198008718355441495235112831724179541356917194581261678665038322788902593985625033529904056770208681647017100039678549545017363975452690547388122247777967810302232917282596093686772673304668674854870639923105852743494291301299494639325505798412854159051847320980514969445409173354297070323398939555397335253085813605477381868428963681486906979949997129233916094993275303687795101910067560054011205839625311556589321945926676424298125507380210067017257392605805179968363588676508539508612959950171646304790488755676436958334980856875552108817678026649960089363662453733840227784724232610504242076561791372986089870910583378522865558357469055267209442259929368251107058016694608714746793794095583910178214006028493389577163913660040194147803832309927839247169287408944327002325203312958311757421129667654969380092136508931270180369754093511630709245856096339193515337760274718526480782118242170951224596245011126919050106029030687396269334470913389149240629302538100132043265755595980021865923698536621875772093862248770344766679884251182190403121132521508394828495540789709195230134607939197397535739952306709470501483580339484306118840412288109892333745446171163298946264435273186850862261701886878164781957432736946150343331816764541236323894336767448994407640418731760453184421031293475450464594469502008254723724928102535456768057366965114030540624780548609084364917681306087972135118397124498948625312094637660730310303172349956321709784502427097297178635181413942786375344544081936048037358482052840525082047005531017281851828884071445120756957051223210204073035774201605341902820081942344282355622063058502155805529582457790908540540248872022125877620951642771147046034892518432775414445905783343395601074707626025003197088696979249634814347314707599181843471445239089875572316352225935001904598229226012148074310270479983942222829446734391845469630075806439199554961020852713121760625572094451544644318738424606752085765237916832185840244517898917601683180579309631177499693186365868032606939938468039390350302974024778910734130340707274603363904955943921481571053474514754777026468754984152780000935457578178974032096255994523231073700116882754742628294568509403660112084468038126561721840700876245498293537840805748192240094331585568466535504591917281863227545459727704607234435082627794824259752862242671482007963074880555410262775432453160397570252130803322421695096849558171862523928075735182959108320335266221791670449797435709207480238275945691410324226194319067815746202505974678519436167062051953827270172191219687937980776863329972453302689527823336940561108985403395352141337472309281130227787857388151032342130283870756149052066035321263613908476602431570860021584137052941693319615087944139070941470221246254317487416050179243395318855251513997269452204292475373262612281927994708584388634469330685422581096424876194967349980195008021251591829368995585123985852715707440114276791068394708829662823953148310756275782614229399070774123293604535764820695401704544965883568556502402719731949677208097663326486431539679410970489015546801329136608995549450523467414525332378231499055444978606253162766738717882388812471118001313724714092771447405195253874142708952085765476878311456859720691601504908684298408976158734177507241951903443641465803439647961257504920277388948995816046461585971985863570396402772066404429788408336242675639061106970648566793911954740300715451012789934352681647935361750887455467801523941410254187587335678331565716056509232790863313433839537297824078699737645776327212934400690699445456221076348078252740692902826793669492027131372590388160039570305610410115316748517568216072953258068213329711134730750596723185588702694762522374488912753567674093880634144559535086098671286153975280948629478843872321331054113006459571520899307103468298098020945983871737797646049774977991867010199809354110331848962529582831542323008749644309835376734405222497367860367627935011816720955087502623793607709455965687972498836706024223768796194666470983486366583899078331794787847530529373745161565331859559648121399333522877413115720175529231442146847737100730499914815156031620062049066572039855277381619308061784289760740550498394148415990363684700828258324425335027477631667523209828709232477191683391819070839420315965511207376009534799838568564138987060678682476388679879179704342402356176229899871852456638726419365459705249288796743927435397113988597612948837353764028562506135743821326066223567873921990833729484518366221156781991551866650065939489235440848026793991517279064177185759544767248108792669252646719571267873069961739699452451532148856441698063101221472106708735509390000711820568763063538368922307624331270998155286443716357020035116289515745734666447868087997034709541352461301533262689763172055865613836669971225482081809907888230163209573987259862110280088203034135000707619604066138936252974373269752639152576817870314387592038622107806225415493317892326886816890330109928544660693701303936867041830289273861917351063155621524243611071160081059180969587637390339605420502014059010416450796679206448264604938493136380619632804470911958095156512449579688059525967436650099973747038190227034214429546435177392543957899596214077699706163156161690544363558118005141438934231235471062037568571598120469727097905571591225816592271916698425820566669261089180724365262676073605141848184790616749167275389601158799497467972313460146648234220617238968241261334192091262423256183130252230935755588948247838428674508694729469683327220038829199613841146543676767489239340410370507998404519731216413329082945998201785186244056634854917348440070849987932962766435028291443151611948740629398522467213634095574576912953156272981503342340442760558921831112440190927562940522866329300829883518181179762690480467888808814663565314643348107081073940655307762320220304475068452331198115723496220141995193679423683222816143175374444167351612665375861585999406672278588634657071939458831968514217109309168239688130448088770933254547101653350641069560820863351159911838133644857076421276742654805424248032263722741656836785293654999868571377783496429722178337151596265190543570992863971710217623682446937216943993421920320579582709815391554833198010550954455134404589153972267416526377613519380834999306059309557770673587347850227462352333890555539096647522166549554145492160572595979916941003064734706607280611376846605883028694505206887596700669666032111025336098588592378783671437917815251449007054500998292625274165212530593791023296151167992631620843199432341514513329815477396012431250754156285644858068847858099101263417353847254622858795622908498852288848203540960068234436912641367872014417967281682075066069375559227203874848171064312116512136540927826802036400684973802977352562494886279525877607864998961980908043934415767186052535772716422533889274583970168601589569454458935328519873278244096129101106467387816831696264394543207608108296972915181050681587126937908148685435237584765132010097101502337554668972614985292786828628039132466723131536565797983791396748744266060762243783238464464927390688777655447269040072737299065467502378203453376887390803740558675083292225220646755885547266952581911548721528097379156425308401009715204756345930035689386040725618186701976821896953120989222215391431662186974261164681023859258843268515214896543344901233861021839337068938337381175300618573511205976205900804175723074739091963340642194508737614638976544106906944557097954911398032370320824107534684815055959325066613822554900515995708586501759406910533285248841286357116480263896295588859570754650184366029359761157978003789223143161717035448166628795627189610869491632672832791454516251027340358021022003878754692023813999205884382591988000807711257363988635957932176804676257371984496923182675082460372215877542599098555585203431326596320748628089931217226548234930993569452255744606578717412802273767048048502375674126033179181986352772144057728463838716137806593135788099142123463725331832793398371289744904057044793816336337456689463801272382564362111649988835950253155285263321771917352221235793520708193250894310152006778486103380894494420322344080012675412634044033223035328076745722965472745563597494318190445622751391325808595825601299336323842086678046876647869955986463019094572408552009375674141986108200124864273142979506675555785797260445237211353054609226657244209365505824195863615967968639175974123605548574616796204651516883760159134356068996927893501996976636912074675081355105566974256445581756612636578052931832629788990358578440607078283286089653474131127081969447727888820829176758311789457669853341290457855839063556295074517286629502220741869825645356813736908736549515765071329437787015886112490758957873954617114967249139913105719565383565242757342358631975157804768601779524525288535187544796549548404858684478127256091480897971996111951072674157531774693015391576695059644219147898904840345567680881331887263820072773560876171130413906321340007507456484121145568989731633180664832218934483976372499124874021265270498166265744819075766218358270431702103263606394774147646351858232460016391390311020636161979581878827380889196336005009253498059988884645356214736232261739462036325855274843596687050934007968756893935733972183661729802912731507296804129106176867320822023949366079678685250396942159571719796802458536961390229216584321107024541195715816650817666788864545162819446863771114573222615481426066498737569438908404303583409568416733674652536330300577901629905225371766805191183897564186899852725107713862052555874816464371566141417309149289018496898664115044719722089170830602613800594500432349807019296208556842056998484568931916856263099182716107899399714137549894929537883258319205033964231719521482383965372198151625133357491880191036369669507740994897160524756819033811159828484961663249141651814792433421034813758458077201466310361900653702302797318350084016403812489256213593428421444498145711536187771409292552691395160628405902591237539027220962281297617826513466403750465630927209543943428190841780303080589633996759202380119119645091369382952591705888677865158805425302430005847446655229629385908231513102668429137534828606948672768186838364308541263768530471407261778826412727504890507544738715219206751483454086532542963332239497885930044085377618576244022850283635311043144947993970017021791035979515763306773236090024365009774797696985646800100790141048913065791142844283799848698029761006033062211968694858969391430679157729062949987105097713945613481197128308610658037384218738338814868797610858252107565453008339163212141934463241053977705572011452991727307507642261750149108808834765808731004886291127321439336035565564795224224817537208076115035462782001740341399428819264130727737051123425770876897794838923157560168694307094108286144984380028138775565459884738486352981982572835163965759790067371089716634105461850888914234058357177761135509183398856688018018501011126973332298939812958943212168665831114659913854668785822941923019830321528621397782562731626768392595134584302893209941163174859247918321022166574750420082746849272681874672738874945601977434470645352841598509477137282082583041057172300472479004868871213742536934944274448673404081789683397644297574885750820012787830095373858701313852772470178434035574573183975779164924903095136883640276603630517722590538553071392609232626890048523067905975173442699095624325237021337922939453875824553245053617327955004218651715842361697629136512799728619735419695887479485999321050511413532544187997337650026553626485916394114868708021593716164458519416680867887072072361537866185632301346001431526339968911371583906668301012300303442543555382959517637753352286156818566405737752922196436645958089185511508317956866570045191658095286369422694209742746766776144538499063535132918352035604296297150972676602632300136104722635119111409876968458195118455870904612104733650621933810020861868741964256632362691287235060832231954154288524717227919851759381675509062843349493825884949822865433104925669409035779244312772965068517337043417998532392346962484795541789751563508785101938013715502786927559353906247765704490083208240206910504933689334725700996470380135828342828346595559988000186203879561105103911548831783134764156836552040953150971431629067220565846335400534788169306039697529029682471163946583819928775116028871818255906177200925120578199733723329948187473547976524160925810890098157989096224247581004037696858094273069486919778778550211288172351725276423761091086671603648548204026524623834645171000864922684974153791747479089642754988804713718526432593363025310493847175252009368305951137828953575240682144033355740161022454559005235622357758485215667546437369299209367613771010790861798811064961700823516640687721093192860639819288568006461214993675534108477756768403148186669916085330129021073915010431794675667165037441201182811714805976420062591619315135694308153626335817375905408220818042964579093871412897694024808593207192242613793343809850942446520230154667703974095614606429499013707414065751579174325107514973458537108536430465880254023806430933351907171640486828512990892563091886341329111023393306569436755075290127392964593840620468878869284641379019197058263134023146473366322634960461945492796535316835446556638482728962825935475117497094617970953039382441176224121453719185619985873743721714939856326830190895575248004939493010408787319895121279464335745402104328667158358241198388633963085350910906513015329145506144797584460751495322617252440015221126568091551349871461612198810765873836332607879601914888795979384652799075896393659175993036309464853997881674180278123020364969721944862138275409547304556330567088864710289122425541975125107087643346082926021596245194011654403576293714521141792938729625419734685539196950143270906273806042394669416117274216852825061632669005173521155451079635897229559815275415988935844202492709959188407094881442010963076199907638262317060389710425817813171843593787877463519212861288582606665125670310934761726682775829192739843972509785255213280859419289912402268642904828704552971229659401738569678679450635654656732044535400162482748331541772786810126147021729996134112311998954530949781113732266304230447823515473304972134040128159695975536398523633497991396886849435548979463780543175278821883983416498579466180010033646045172916429760312588685230022333736642073686120768828218034852667831412374202737698537065852768220682540661942055448983968497531478776960733348462385397655998847049784131278031656435111005713442363843193762979921654043356120385017632086394764980168211842479292426184644684141607022512424164651086039528008861654345257259524088586208569642738900961443186979830781056838992384003950811111060066333944390412971326749430764467712586785586186608654826944135149479694480619250817077590060651853452529056264946459378863894604038287936433350377329502498306587789585787787247102956084870803123252658274499455580150143328521009162535578612059263774227979742183102711510737446765732686625112514179606363212303229390354159586043090929946977513650038218677829673642670704577043975237798457415743632006210274632129650132392545628970525280923980667016362507861494515350318093929737174594646809168005106121254783128847878541191339231282137098608277199908426435475228231905598006600693612346848202897538841167162238413954355088551095420636404410474103735728672170247884677873411425117728136388307905391320872525359705724250459058445472754482518991615821463484390414139706695318094485508441529512916013143876214400021427887046935224588670712428220281979772087350864661073726863232446376928347212778776772540057286886505435796195603533858014591874502562036139907384739807863442529810823275628756158133635165117064810993033784482053733982975565983289491678047925625650097918838714388469019921313340828880268892778862857636687964608101817874073833742763273540237465814361049464271002210817551996387201813704914011768802850360939995972698947172043646483216748628187456100062152233042130701560341958536654361907963172194059635157150434605021823686968811396109196092557713345203949877223118192057543924780450453126751794155433830797633599924182636722205768902223273900545743112129290244665810304143197028071157991890363039246157207161873972480469070119683943971463647452928075771186447451281197013756046456350759159842513910180466868778017734004472123058995465457444564102284320030020267488912758666417982981380918909802150760789263508151371306159161882153572050363771590600965943478117758737655733655739778460160732657493478095218968062602165077653717780199557247773247865153596411614045170833257848127288682569131669221101755368049376838214891843426318484508731826898111293888367507977525529030275353823678577305035886227837017785988461115052400407735495559264842514570431536929663948688724689677187664900062713450612571150479655840539477736070739541864351309126780780069695583232477410643211927048273508388634567421038838176735345207204245264444467147945606487345970280087921143721891183642567267741590722350559476074583294815943619075821913219814054558854339527688064927887818174925868863589323467352072077033421605967867039071841497488704550288312702176732242756740960642997064848273048224746505477680124115804527790188731678775220228299379336387212112163361829833788154255403490746761086067453751099793858948533235289598769373424885108988492347476379367578112140735044506886690441572171385507629216022108314065859904585912983453768649431832095512229381942894647389559934694118418497345583024171319367748167567236703220705195344332893046949073770140826362262571498668206021241936121834660119345133568856087556660694531957315239849587848476954301253880393248197506890519661058900135369369453717359149406005375041677383915065470260085253138385889447697685462983351564926794627584701735471080947189775364648879399206718537095823262586480967869092082847247015658317045091555536898791632298119203139682703690043993455905816155471092943141004671028762837408333740402998853937444149499538725203347744677934804186779610684679342079839665237313616804214584776769179600629572581846491498190209155673010936654041473354240993461558299395164019836233890738238666864468509961633346673368778091206236125142854956940888200726165552871483288761867651084884331485720006450547394567079559611756188621166458903614469584592086255038602406522982849976664335656911384313588234273453078562481863524759465193132699761561020242418480489866928848521502757746862038045357741502007737928619827925325559342689804641184389405667303163348722950159083812931625379219577219980847163429509711009488607214532119088325291998322452935282914828347092717434589323125211820132390005135681186976262562058599284363560100733562372783195163352256743710525902984646246813954345599894129283121940708235524778276977841788793853144184045073192801846779392019284286769134867589160605263259128861526755725363131849844566968306426501216312733292963194080461445387778261143805133645870591347549440299645769362237203360556168438092549017115649226586957182095182215379210835833172885705854123470656626049105441457910037655079011457496167062820481443999381681411053550342837308396783382270965133198648669070387607632546775978741237274536800419751354044811044950998709863137031609708794241321732243757755301621317568679691904575209251450843647275022384099601887332439005806051053883533329291805668415957633760170049138182420265866178941900927946078740042303874037001451078527551959116441551581437775080658074292337707898068641040071125060677057992485192792072795087992559041865300825590800439969582795889499548358256923030680415587696362273546423179925882654572945667121982157428592804708628706288176803178256616717407759574540929394586262051589238190717006343942750315083889964499795856595473182773643166834498862434419120053879659909202445722256681265499268580062727928340369630910752796282957645639964170251437438896393853826090516791055514405012071846190734090156184791881813935837941208897196098033037982777802235610816680118100009562187449272211840897107651548849124941456629447574437295624016369388280898580307524716232164191250100760844824691473028242623057114953281995105099941580776961128703896694688126910007840676050350012436459614011376254601917566175507732386716783101535369715181036191989605979177302174354346510985844965899096808997253749113189687743840957919094440002100905944003348329067063655700077644328060545177781595990367319489806775777883352086097758304030019277423199435397505328634401921820809347720645837057249056754748878316644869903319549506782153263072118784172767193811573389156098520091754786095529869171087197595894817688147863413561774380067406257667954543815553293944097215329540706418043949565413320062174901044265267657016194518690448315842639717058918406084587883951695714088666062561536691965208225559434108163055787256736545469170120779817722673810661770392901477780790193361136246069024596779845710831465900292758123616416665058549075835479964779554987534783686433864798858778780985801027797206896377672797628018890898778916541551004812471621760842997573021783443665659877522163597832757608602404195097047477644049865464348229124041329089636998776974994028868039710073231667437558065317213980399826624612108166977841366454509811068541122556144091715023054854416170094831453744619637884437875634774726090249781981597191247998408514400097916680763909268652397566046253602982260832618991051266889804066135871589081843670700875871437776562107638866424962845231929378838766449193653774101150029982529915153748038590096622267656721416313090799221288554094323993878932508068660976788938086086196622603329661684286302376519037271283064931723939099045587374184352427055004962718871320812697790255195952923988935786217768712183669477336610376586679362286853883896122273533038046784551358267942197434603507969277706192929080201942587208064044953317499170739086647977690810927482963443005096183824850435158557198664504279557028115899525552670658590193670341776890896725539551411890520285258731729520387156430577383442455335435616565367479457438833863064877193744959896786863478785932990699969954120458795205341379196099266767887786775919289484261414485170232999772485138798458527314026187615670776697687141310969030310602437640115099163877193622938149480121093652762356170407407513352339213120582441125334354516910876128765118599813725981135953309617552654718847039224815089152761425605700542419977443180843698059132985919079026214908471627062114775184331442067279369344329070157912827753337690191704560065991987816010871874536197616432129114422173973412192744509408333547029860187975257450537201114425302589542309460457631916343449221999165423676108849130459018110245347065257612772970317656581004110025476020048120723518735695096658306769956797787569495513979436836099375929849004059999622214142277093032095821082350807863890320579194820906749513818054413769429269796175887747471140944318213354704334218711199927488610060390158948402115530163834379547745458238654152578353141724079985832182093873195375821715268265290240162673795697362499621387584465267341505269447539051898779382462671832777040855710678687285470168496518102509837156322471388181354732672845164490588046254121306886299099781180539414622078833144216051354771065608601462681082351349894193768976170151809728857887884821911505888443985492285573041334353349651009326710436082344783620397906125260028460839204372643254807137832530793000389858922739972019492161549761022059623286322443613998686185508846311988896956514113189243863502368558254261920858991149321968668134484769551723747171175769010658342663503937076528187903661645725506581924646421425118245403022864245912653200480755793633950206686843858952689910901338665618568888573958941872049851242845551672518023206222557105858691280662911076749695939289422530350624744977734097519345727090435116063299219845428723167374403049420848476139264162043808836950542981990038264983747992426029273786108871058161304268576262331042373186214323271296369620531432310220275651415307328006512514504734326132433645005091912694364329297726851945349531928181208447333286202190735750807863065157745938472802518643673015827555429094131033944455018590782637596607382050715566678090906720388647718402176951102895711505362538577849004633948723041502259129826694866865088562333996997597731266150949678060924282983618011821125317213381099889850906884970467268854308951121733194140494730720504530041747617334838993367074644537708748435809439173768501508979534698595976274623114263265454936938949262173208808979383909967417113267948478995130140550035920829703642273939055319107513288727719482879896159562110628106277947296312609077697719964683503135524873022145386382390106023964929388010272124182805927953181112798518469112717313363648356683152849692053062036497503637402547528012699191132575322715551232222984846790194746254519690813476867002399398996154112301797392267144795130601495925513382471754895985705680924673754625920609982234934418721390432147166187729541624222075472223619826437535497054556147962647401170521517461006502660781665982892806499455764414934581054756073446683485963336237283968193173630277961400167257609471002929135362524316551031379173390429305757248166484544690513444588695785552864890187464141814204939311692979054610719214172347127245740385186010743949833544863637469031067776348028822319661374428055483189990406011226997165323844456586506063230202331111484171301086746982001902054476127758651796964083393383581870435063053782401183614605937482655555762596003862354340756991141254858797542789766355837091585565137669676453925510980427159413152761690027774300608381218187359650191712360062497537248763531088503207430318160537465066489489546593149305375568544196132789664932039397301330398300656974004204457896207556071363097667816098317353878166621286860377257329463556014224685049759067614059954464149537617284244717990283054167985316094675972650394542698032739451266409038042852371241549040931670860164766045313525958145098438164489928597515304211899919567374726816213277794728450595460460550061548822465902091500712104099195517521111582985040273351076991440378010806018866311161879815965228506974697217953708574240974178217991730575744684107726435520029616787000552010475009500537514827063494751646589392384259567636214880074081108834091730887864876131950439605808333025499619606817520244647681751364284079695513298401944693825146846034888821328082400318403058859912101147914599865335504434345107421245571669962370934963617263034953278619055440930156239160830806840051541084573497989229527254761678621273158690058183362147974286998178908941774021975776239369687095169527363971509933543324367993337375422376247980800894795527025364214889765821880146566288898671324789807640572296614248820806289950129229221059435971871884161714368869162989068114974912110612579573953355011377706908368304990739301377885474572366896302589223627196917560343734586597694426466194128481491079696452272741797259890357100095469552602231266488955325285856591431500447841858232646981473682623861321080446614755060984818366403908654908085158020288582350492515540882135793401941571138964791911263805460348373535238173905471896788666811125689514204091981911009718471666639660930741265176430117830716047298069105602408593507967868332680414961376281598386150770760445418518143212870520161528091363266431889982771238739507811825735044511333143886962523970931707366329936624335516025563990689106467318340180194654056230908227035927649191276126781710122980548132276022231799203290578354628753983517811924019888241053325934824269052988401905817414180157085423789948388948250664255357371705787396497870398711621031439084033455483750978498283822454800135019140588803342304748544655114305397689497526268850180826915194615316307619898866292385474416974382777913534586017452761245606373387705578604726046788703590930099234658577021757702436059848631121281131792055171292820216880531206995486547738422697489650140534606283463921916936168744546539531346699321123757092578892540051327445336069655536078092004661749743956161903234614379439721629210605561633597519523132821708962393536961529416234905899356678321643981033489034648448847296663548091098814840656709922846035357987529393987061880794516729953690429317362877923010173957734193647770919355179380915961026936605910911637035848709287295836876972544207908648011913259818527828583273368562770210196121178273830159137001352935712003154841053096609873413870431063157607769858822508345825914848121281620130876194191237175239286209161981523185552124839322224831359412122421036526435811999034738264851874012806150871545319253876564679423695803595646205213397606314815721937846574924587499834372712661814928987356494697253787380019234926830535377280126196486119667090324155017176941469191447375830040356455457124941264612278269704559436823367355642925121085992296245154929821877972947601157516725814414036978001848437480775635607790806502006212004284196009966018926714694826023190372783650469214625296937644504789640479599923115070825111924064346366052223694248764278198466122576295125665938244141708458121190367784692790773254537069597042778114507468053555773424469019643591190260466999093980079624975790191456758299241337634305683557067412605390063513075857803291169761993515279073695692942312601312445351396222613235589541009566120818689210840546360038280086682820956283870261541477699163879960508173715543927416184489669836831280618474255945556066223231187184318680176673571694183475552808228004283377806587147816075810237227827757874829962027443976073594190232385840366683918298392000066403706431053433855454449893214499265154082353821555533524685830676507890668970728448201267692428077748625665680617048551767028486256593276349699762847348248954405694986900283976275150889132201509470846473608190120530987609519034855230037735695198230870618185491404452760411250427889149636148334885397981497580970934471476634488433419427872803168351687578665438412571194972833414687183051533816560067920489884950761244853681494741155942395517998927181055782699642709227148374655531339894828776762082138617475743824474098098394754165081209317332691942287654637035732501827401766458767113304006044938066472973239235240349207238706896976558446915037589815572787937674632705458093329835369662121074388105741067029744452966251424045344803344981891790401848268671175699731502636671058661959816404867861927925104554104452896986423939306989122992703796971755509720727518382681528473459776765023641819710212573271455377159443367009619863159238414683822726267360652442102383298506296511847413073576726551463461033164993664911498321638326855728927949068020435725175287709302152965832553600667897988490180455808653476192220606092550383131118873083922457526433066161299562442615968107273468868599096858391059255357416394664604074452854069814848826009854331677838525381953863533716709586999553737720411414939033311284295308617040895764948659774871378522562035294427752372976978367505522381500981669045060087672463708649254004850781783369499386561345161482785816539683992954349431016257003531740699810506848948781927763846377759807483085938600595065954934720484440890199514275586536496959174924447175108505806981757506922094053802863459808881556731541863622884763849820466484860299029541085176171689911210404361106895405485990527132738638366051637963384162513160645508879292273328266769908065162276894000005355500800197340841495532241017053347473494403902458878928182725053856344763150149292298548663651891576492190830928617075314639297216478846964415570955885429183934172544873301499703289966782756226713443334766864017107989585857579099977026296549231924245284375290578191492218272040387640379831822558562768276772845492398082018019156556685359606725543203619808819705560861578371813593743983063923848464680252663348662576983433958207435581484982794354233759645006680094910798172964484551398075071198819756927415531268159151862318748112154589862342382548663616813097862583880165078762226139309258276309578025747919760967319190864308475921629227467937430223847039318519985300801721306723641147874740223961179739109551978380072896972204796643772339008838039696990039763891728199774985558381406289858448875094709703270649643779320379368495100078838259924404957870656890824200863761031033941723022952027073742057759865149879951443076073288274407928421682294829191927407768187862323380979188233128331397176703282146104737761958333289443399271543840030352561774381970553811892213475100931739464044074682119570697073727700049483912969028876060629537513491390728499021131419795516730188462379238003417726011045614393713403273612006650061272291383223873477222289803851267493664812623549350600663523401021520939130480158548296956484175623019929218313156726906589687632433458632253464267994939800755683222931826866903994980189308133650164588421701515437877248335462667359302379181601455060693617163592493789283310529495912706928236244004098621965623589873581801441111388271548739161094262185598755614983743013739155682167383426749877077387528854604182408930203272781338737291563236224622324880218174605961649568688758330365417806803656271010617360288144752807785060499930038619288450337260985616146514474339681075071848491368295174332932057191183836755892700867419063645702637388026486601572026415485503867274163592300565766016191099361926405733783672088642187988556766786167077228328922566219195921776896833204565122783031770531724609663298687536147882141130107933823995575589047981136725412510170959339111172261112516088376193146342318916445642481135786146883046423996588334302811952727147618551064683717941329807664508402572699170622936129729303116646032708636670188851816168155618425027281915749957228740233815563885405125819041543478734145667522909287787506304949754243837725021079195521729198095208062345768039370152335576321048606839006381556670949008889418642049454178880465588341876500212458665448189256493827954453094107850130005792102726090795694993658590553798616185819658968446841833204358031682017818859314356680169070892344704832108520314002350978832141773527460500642532901702642481410311644079576711267584725332290258197262641049908328899516323016935014303219768236999669731368601911646231788858534714616542349999276966686931274305763840766350120701720129964898258821486245465562618046426852791851292778425921743467070756922028017119629334736937599405454524702848250441275386134824912818429959558033060413026199308183748559592535110920856176360397958159523995174028850834659917678536096851647934809573477864810104604574803424581623625820231090403325540775419546530949615743966655687412720803633333118876749264091593484387574603495999657063540826237370485348702404039187207902971691841691893308599451929701426317432472768336575355551461740474013644525797928971361773041681011159772723618039328742467200868990367086382355682046335079108122335633038414382841574860602033370324982374184337437634835024875956352008963348838074025902071103654610656571184872687684292394166958243444675637796802301439847615890438974287000086318894975213048987587115284057636322686323563763239873573371518913311910753867788299573602745639066744393963448716816382365739725830897898454844122444494934022044427241636962266565229539746489741522800493395730088391134539556399574579932017135325739620776850158886928279321108591956871958307174194990712821560942978899669502391483254165216288075971985434895104096590156000235442077886428199274787337916783041839492162830554631819508974468155591322843218874018440783672607955130421985763327690905804343582866387769813777315190221693021935067499790701489601924017333614584283378046647687754866923657895051735955611697831134112536874087811723137048282910782934138451210993686104369200338327459803151228262973173238658546684275930886585466164075267147304038601083548045264639451769105907862748907716614759979671045627876813450837672889789941167104180781833256358982281771079455953800135974403088081246582642108305914346126163537189225474669035556398160510826960893588263906177523883501234747422566913571376709950775150802834288682834168723054451066929580655391707617302457040774503080504492370225101150178133097960749902635734678788055931821507505139947374245713623061424933999724445198710602036499975631240906433823927294686622144028928658020241890679948601514754650666064833552202147590915310468495308406972227110613458505521535428991073762915337964567523211715804394544664525765676365422716451300490853573538421880884741584867080769518754500331093601090876671364704717108105196845181869938889409456390801246308245937294271821453690067668446418577234624513175647962617679763783679762197238084675431041498107795178680987297829535380544292695903262788695073637600530526565751140556169754165922550086255560650800709381137535358538260217314033915007816714479980127445182554725838485168883819421842876407825388621458360983886039673706571751315488191971279064469059224113351098860992528179781669582612448086326383884355060067452937997398693143663310046750163816584769155455933955729094609937534323344177702900431814759783576617948682585113946577632288301793959356240621576120667876291066652043247896087848612310318487135876336566714928816712216434695010054113236492958589171996483514415681450242282536581946553171398300235860177919908622144056185782997044225058034467692970932656214539890752373227046236418938313436678944831411010507689784984126117478557577175593819629226072469456730937105294996511041912124521087102739056831194726703152373058075849523011370943706843092308187425140962846354485890824761642711922938325845514070344461176755577480759006672333994268213936612868455195778841298606233002860085600911896814243049788212122017826060966332648194010707812249580907126380391339707368913531626468448969026624692637977291186695446322823484457952538961983889600543973732508636036179048717936864785555019972053956915405860676896888395949071663995777475973100428440430431554962371379120349598744903575837300212284280236426253515553692910221522727922878244846166597359949944018037662062687100072720731653584455976491739224465207809189671586354043758347273953786485255017913014577906420528391378035818916016937375007669989832833806515312045526514787055609326785949618358760218788194179113156156671990493311514753237775304765558860052741128137915550596742534443331571970121136657582270514420982440248064111011183491171524601185414928249851601902572964926825487831169775885586404514030089244245691359562005175947140316630352928622750603903089677262445628461111885886132280513607013547666342295778049101070961372943432871796522387536021265236910333954131900347135666186561917912449796379034885155600041549239853242460947341497155798393014382220244808911737825974480788651816625808516750192742329408811950062284034468027448800450204516775460615863410116574530650334908989291872687678149435180064514414087851490403878015706474674150108037096085264091598270617813004875006700007722765106966195931426150158512580578409145665795927414188229328767743390283867586845643449106388551526658615599349342999178145004446784276683925914696282624371446599687182668932433994977908096310861945664319902424437348434417382241137192414544307727450640490639601148406150380385855065308655701305404276410083687549331922859046909317302408631904593802780733028850591880976035832288352634901421523889898232855582742268016437920269992201518247389426347535352086280744408124725995535024239078646665547079573662660801478054066010249468657686676673178928286621824226093721361935315965174038857761825265334720818159229378966298824821749436172540582232169170519358334529175070710468341067724677404490473590239103506977688443758825151511320947271839031316876405678406003569608069690330808716312455986928514916796356552198284727545770504993551549531862928480458771600140267952999644490788431744444232000321232663352046180177682575502832253328131968283018175679316134432104527881679374164843543226617240083287544903541586616180434723965821777646527468972674608819882812300610125301123040644615403833839358332982453100263651405300850564498301829461209864494861493992218531211053132871692167294666038248197859270384951347128379313020065027505434220495278511765331289205994068697853774113265180483093197972912849312866179637712438990825113478227983740759225982041452660225713532845482361410959015415600802811241957504307163701888710365353925191628036887733433418946486094745050003468077923965311674082277375038667154201897608426993131866644101406914953518556031414241689205148526078844410431250943286502274922520642954132934401255488624778504259929925991540971703071473504338170907798785105512657773398034505361503845781738790985681089239879157742638286128078001569855402299532405596273010171616603922303525800689248955533759384801518675156132510293068437144691443890611431975401099625987188682128510518598984263424298965625962634991596344666255156220145649198661245762038152288934626045514136435985893537320977726040096120263601678099441616806889932178457673618550848459006893793569945561948736319250388465504014660230260944696954705931820193287934371665876181935569753735039617487896904815004128301385830678587205097841926337316340077405179748087180643640018582971849512672392027596984143442004286109914694194991323498061776755876991244987973812770379800969069594341073454266414479606744385425703574070933643713991276561284235557390691047713872568388672524790836918938090400163973458703873295293771963225842576266841595918948012910508001916463190843554080153128979382147371402378946717415950847762783526356026983336958605447234234420526855722881567246049826646832628342813968099905168096830578610878513052731470084766659220641298671245800683780942951335791979868261176558457863384864912436910526770971027189392913471166669363364040120255843196397875244670535139410204722552921358049532791634325478675156112338879795190538772027223936600909396759353041703092939926701018970371632150072557857462850763020994929449302072790734021727991314787423061067082988001574428483006130372147285619979477369949962388931863020775468938899596617345042507993645605344884450719654853298149813065625560821392589826786287934950451417565584621202100407412926949291685895693067819832854212191650571714119730802654103392742065834054563892438688120093601940608543335165667446369909973003146596748551984721848835326256986591838652798003363999334043624180137926591976884542765782401709314913964116617033794245613818698959525428533901603969122936690554984723938292843306908644799418867106566683804244253986241446725536578914515453563128596496204388322742317622079975913042900410354151400363872315918248945566657389097024481360044444914763193307745394744009239533384759596330414837100580603101676308025620163918011160484020948175671191112640814943389624133376477480010843427093892725839550161206842527714610021065521278621741699082197075950527606133028666604453723501542920381633957844463686156720174457181424920088184677660646625379444756120119538347783193974135720072038198808516018183162224646203644452635735037702647871371660666637921204250760399682818154206255537854483415012527085756344562762080144168675419166759242977202530895983179800137021289473136024048797711212737439754179401888253222269225338944190227049146359581746223231092003563204570256547436861588161099538416731718965740127810650783797777574278092951823245008745967260915358774446961746299736306740277850689283193045310810848282026415527114537210692797182598894757240810205664469932385021008802399473876517335570858182887578269704671519311017427409503784180779800292687923839289305531229298387672866341219781783694843809687039780828885266951345099234616501914891831357271471274899581033012649291381914977246097475247812479264087090693438435373779212977225525874588366168477514872740924164686504834438662376912483213041876041186486764642727324777131595121348200443559745431877077333015985044304913672619599174350536648851577108673390650013538829015421918407535154820850509246625388129095416713242319526895515083799196236220287288061513009310529114040168418134596012984870771798838523210463687862012257163858339360817766558795045059412553401172845412714624178700804305089315108547612540982304423477232429709766235767205064840975816025158027093037498187375646485379746130120323023681031489747221306657238241348362172324388703692480867928533411186267731934686502251149223922403026925994281369747635109330101925452863951857055022529048130249235304319589011096835177143974292124875802509114599783877850362756958061340974158559358774667067932110660978611984709841884627129062616696575478702116949901677748491936487708333774635860490182943183239489865137707709731069225496262246873779934866989941554145108360806700934084691071023631443591433555163973511172393201206559642578323569765908144528130700747633207341471332039144621571260656299551734535058530071826122050636719459420971003247462173487956448535833628134904018261860845439100706443843579329107933172156982328790832469406415524279316139165752713783570502135625872408709197960194005136648126306011147109289257952352632723702644581973715797223103215995255452105222501913056949669087822709869924755349159122084452154026160231219333344521839140973456380632885969497470856318497983643440177537028098320695842642531114959498584481173984871097201609275761469493146571842389304629552191080088051127308044680592230284888930673325288540388650509717013871261377535040858219586545202139081091289757650986525104524167516123683852539932398919811445660673424111656691154975771716143199439619906241234131820697891056509536979494464824258632515131598794032605764757312001540758444518896320762491060201479096830008677984873694319725255951888721430548784359677349010840723992791680210055948933715193379838704619061543076857602907016540640633729696810267861390975067064578908105312680188789349803024960387584199940799134784723411917647394361425703328659560223600853164733811611014997244150950716393160749683072095117565681903273205717732962545018646242063824110306155901288414606977540790109603461066698575173995170137895458880733318879622869502934206423477384478750529376285402848360334692702351694156341594348316458479458241548838652806017032640617483384140548622792734711858471834401173421330112855323147433449748779727421229967958452612978202472034656818530826310435710646091760809753109808450176926179494312781637835525192493462660964236672061786963766022035463682008580801251089088239429278429080702737097764231513345454688643955030759830115458438964206897580852331689373478854077076446946652884441981088873312413312376027726812132641336663109168845585861503913514587704579180663958308457461767461333539607852484632134791492714514157472338762951858615834342169462170824808217602935706997599383926589809142141805908671298817392514382232315960425945987012645850940130969911660305994553622798300846538417328013924792084307865852997445448872018530300771176362751111812270878599023717064726668595601697856622086057507322726114326981316844946276055848549131642064871476730351810770348998839886493380476339834779793729335380302154345728466402728082738004621390392883298605173955832599838855674045899229628674448119659413851860807685276646112444398386862359686891201592781543521591051676411383612345599548716044268287923325051315129432105332913951107030542654356226779448666900107325860190770502800001830328943102114491655531601220482384432877481770233284591777375346260198126344820751202408292274535268726441743025634104498622915262739265414156855980827908420598080496256545004125723487747172524057056580098303776283240255524034062442611448895515631087734807616811558411059048470169599980225000863138683336995325015732561546741073380558575826135266963609174159457351689202713100510279611391556826559950439043552961215389112303862659742235189843053800877396772038383289578502691523306972832249390197581229332032482766885453604648685046465116422602186615391772304110334338476099879835394873014293267251048867169875093513623079793058396789129781713830442354510654136208437644203217398359845852716257226081074191477239163544518984975001483034369956783761050551179416790979051867619233953157379193916256701958801688694226945371826403308048058527872556937655625159541841821082553994325192617589888024379357727890101454923045861624830462872895854119234971754447109629449330178599778892064550042752497341237208099886320832869614934841215856777517085686520404819945867443106053184686521321331082822205084343960054425819893092897611816968174993527025364492669879293167994220601626975429852741848207895922628524562239765449583965704904383121386603110553401622205600822369807241809723289009669114221237574254997711332658656736044885862824615554337403504199988350943741925631226550079238004837320758867524330684971268462108350486792379283803856730708390023700117927504965638720955474246975124961162821474223767117289300084271154048351158271780775317307919640426454641715031631004118045763321701567131795865509618277343088935984434592392088564245045117054561525952194670957073564871734721734857197957710642924878684420260436136245426033554016455422605433071832603401535810330591210703836503092500996836862553714835014667079992317095590443836509873082406145250122136662337035002721515068476020732049737386185489662685803053731952961806491061028520721465064394283289283233694371138960481033051939773315349264845262821289490820092898581171959596924485608340003643350688595167312561542412003183090417945518339194509756122810850849840766664535549356878511319870678710573606515331242886330776159581449764794729745149188368469267219965291507051419550934957431619179041178245973841020423182149216891552931933978207988248167447078682392555062346096163692212278792720469927280150579625930222684950413737680580106002914510488583290032590688302262645666229617600337415013596397527306952726906537732923419496389675607428841693547467905151550537251804084978879141337450308876958704824171001869163745563872682018563755952571624713198196080862479749554591273748366203256122179777989465592323979671725353320538105734673875526291803604478081107814089967762558122089414622232034137031564690824845860216785335946618482616216003237698337372271125966320898767545836848677281251685845516448421334639141546509588442693466673167330016742612365963942856908218685342643550917665982528955050162825559519984018650104988794637336146045763617389855882885559358545738327024494285885999052726084797543223226107904568168712442760569359400741131147755021883396323064091065407775175615998565549922539027136434423440137749945011141762203182090824911226177648448846613207242132397401037369127888718635697342167422279795437650162539899631831490200950638407016716171134186394555215448817142482972394372674008868094860149344874600404984181800210981877148298986246447337993805035050355851684515107700970706275945466064358522603192023517332677859387886527651899238264050526650268453374376198620477415228692442156443545111975220787671456039489034792434058236853834002457035028844381717216213904689347132818899270558316286016695008941867602826603785965189874994673840013394830914587489957940274044656704665873062234664002841870423694409186063249998525916583345612424820829287140354963657864215288823366293802805224090905716725657150004165203143517697004724972546019346113905324199589698372967312428447914249124160020859187420112054404278053609670669517217618081355960075856498535861119851651718278097616389371033711152508164557080340673040170003754240431448164222984015279173535609157187196719944456945819545219332036855681719573058422634516590186508592615366446162362905792542555070437638571420697201578688487375146919071260513241359374198534579383472216089433497109976718602786379072804267462891364389474107642143334680845637548659284696870412011878056807083663575992119740099841582447263542307210992301886507532071242750974401227898427969033392316335053741402311995147910729091984760991353879498838892871414003609492018613342835405661104563457377415186553210502210918984441887777909595764742791613618532682727038933723938273862983548435906931144542415052128685447065717564137956906651485999039664729232230204960502323674320213731038374442424067672429010000252547963559139041021678220209486987618173180624166758427218648725260085207994865888429134045625012667274332818210084120058993457779072110475460677793287981754169422250190741577430568921733370878829768549751864372586624493580949858363004812015829024412939030507570396181548978514283076300769826203907087402916160214675375822555321958905202652024628118463639957623603320265422704144076170148151734382597165493271810647770955982584343721704410191514269587241860894013402644141560730543183771072003700300319686346152129239763726668491412034897451665519787492605427146336716126356586636195593607942503126509166749533668831406464842527086459108124794850132336232853629874855119997736434133202440836169627664658236280367927900495648239088823286035303542357934617990379278411809105403478803679280234218843125005687991743740634242172923888370246524365268761202941739437441287223116351020141918687185233806553682530133338260656860914957004769127548327897777936310900339113582634491141862684449965484910919398564308720368787366317026596273437384787283531931930731443717662952985727977679512712859510731423799126015247124409750635420747128290841661328361279600697456386421337266798196175557517169827950274431284883823850473177118059610996009176810688693123882088292432998448506004895457987105984844240090239010232972570672292899827016839988735459767071132168110482600980399102374240055943218764527225922140036850220519654775977392961568939747451872346394280921715269633761005740156830298021877239091582590869684013260977193436239769711442037088327379698483694344988991832575701185484383376317004960077806907923216580940474381098072795858005000388368744195276104076330902768519333374145955982062728884056695478636361886696675243862640000329222822229390603601102881300902051758823680968871424700778170446032446448510979485896513354803959132682517513466826435598182229255125208269848611767171485747374957995234820679223309339675356486245895029701271239249358640469232342279290705320340271329149234533647432658796664206722352598683575424937020474376785521165860315552549301978461594623253197476050042903875858285384950778284793584085800657446284187567899099358189774873905673844011229287417042643804055859341698404019802983180320365430801557014181307237378694296802007371950882943492784393025349690984811637270542465004558042252815100443408892482809466085445061263456490946435348955778527755614646077451487813912671609073977775027552551695501679771914674729308610334764130497353466693266353485496246493157529605881354746797903252887530224540199947255939043597845423097287606080365762082120938092473220464934960704623290913521714218349194438201574767104205020224490380792272616675753362441129831436799425735050990774912340631887548225513629990986081247345282757966413352486861131231373403503947327909486041328314609470132308913195095065685947759741433154572065312229102012129690389290455369194589984879293390872345094587081343359859011759090359002020766059532775064929121616769171771965933307406826541771373983496352482231960796099099746485214812834598470571160135538955553819422736918288299513489175332097397354211278884655191258214538226661346813728019236480574265711882941496443508581473959845065587467389551375859773554273161370347519152602496830961606065540991140982188890988452489166012406366414014156827732336215278359289309698577963462367795168936832852073995009199680348430880995628852210088919727747971857198213023035731126011812667396724421306325041511801152647910098351093420368880699906330025097106091678717740553979981927096533006997849968709254107281680409308443760924069930386897672393297060866597164309620800533606744465791873772741016781417362967600127619353863184753500412832405002065604404778092161772015186945494090751737564199532361044620141653523640448270589495182603157724257865677439333621759980821068317244842781741847747319334175735694233525859567442816101323233304733933608416305218088154767907014044635617463821453601066342178065734338230363319855628680029300792135718995116352512992607121666265112827546100142708159696016263331514985359250122027982825564908055852622134773893036145038622350889675395343197476742282600359761045847419717347826590336729720401929850328668977197379127975462739614707617649450414874137460115807826619403065673123673335716288859489472537102189752927395806376420122524655078891861490122692753926661958140186956248290625238269518967699531377725788218444844599394897397522197866563876533339513852683044922677751520814662759997936943015796949805574087316199289243483321162149423457111144663427554712255003089360117720563653675684499983947564598985945077946759876441817877865123043808259916371024227083722221099880510549593049783241944589550729598845280905265476551811980627910119342836954711500251020598247928091709646143329512555639140809622397872325579401431161067834969786346644489527376299439886458267264904008550847225494777797071665426862746725254215548328615923322241925672461109601291556481695523948151385346800128467395450228062060354537369685500785795721231145833807224455718493155351883754198203640074942165473971709942936747849335113671513916231957213249546430720596222237822704677006736243925576001699796162454588033081044973694295213178788752602949179714905491519139277619296039238118824242371776665833431702287491705496961578491489366588712063228125166276124008792082706022527839939561808983252728045793222984339340020008797598433248010249683124056644303074118046341069103236686844653359284870796574952644205925260670432489492047507425327585029116236138370826527957772336668449640680418609020116471660393703962051192656159219829023976565897173432175392099617070432948864224956434182115635564222187381444161505730812533922839576972232761754540687090650189614780050540876851946364012508723252947478480722462743955617505984103024242040956015286128121073729063216456932029817577743351086268626763671673191372095042310643339236033287649029044038710373920031066170110858884051081212890489995403030834959891866963020885445025625336451473776452550604432322522695084544459554632214428849949657876681649235755843561560920936828056369563191407758298835916472682913275463352326686943147418169073872688058506549699220705160039994760330867838650980296475223298706527896088934139491892116823778951601041506338116503329445920251017541319034648968934576502785461065293332003395383153749361102352401027630360212101855991195348466449868530256966718210848714796122646393777790770604292157690119338847862709331634488181156477771751501759792019188198781054864942594288844556062710783132887549217124707842386908043643950692684070971349998591772950164597011867564916138650344002609111129239138555293193530742302273971514335746281867261086906875335178749836567374381210237305056662008513408928558602857174929401740270074393840052789903453240182779565721256914715738304513650181715407948581782131474405211440061200069420011161947505826716358059228549366024288776529088423663597079131949745530144957002793789780542505832602719155595454867458079342628112631435771192433442947546182605902617477008605219108277593085848394574927826205391928344547648172133358088723917844772223531660723941406603319579872183325598305091176357171745451130131927142920397901714519022463013006472453666851915650482328846616104852181703894789723711726492532688002341540982030809174079091263792258617532941003373076527032211609047384345817393766485498095647920006033022242449685425455199244283935430106919237793436659957539887334795757856150380209702736332966506961697846687490299473675526943568868935673491349461250965022772373292736369581289417149970996067145131602401640073174480120963390656711902806298130388385710578854175693376445167558502823944195855325430748624474093580165666924007759544196944218226022179510557107028630237632010949194350462204143233954265177167615079126397669852405966485646193216880857561971831028798577358847014239769947923297838711528264918402078011473626766572949707983722816431430808068513921704898693421004118182291472515529693953532115265735322003474428771805697876482442530730189564952993964253430438131417780097865569193946375358916503952043680039687286249500209950882120633770933240470243279945009566634202971172635976637029348601979407003893414269811391558534293552109955731356446250096123379833518428088082243415005088256456764055122934967657264530868764822071206960346624668324545871648839525244094674278740804859330240244430071608196887877726810691819351548056361641108332820359141071113021411979733618892135696769340581906701492843476777443222737258944826638418153869286617635178684054392292159822584959856414846202547153316679275735383886248037101887661704651299729196740146159032817473637865598324743393942189852803578308647552169531205288790955934005443531660896119903012351311311534230762432862758997192041301339578323564658030792948246971653792033198749134174844613338394149728373650449328551146893805949918787500665513852935456649604946745646246250927963673243991120329060786109347083479542467479041673264243217247315490220230822585649078223138839167523753386254707505346201449562018606698302995694568210430011328608415595993846845992498792320720353038401774949217049818968118332456807848772949153291765983495327431052585188225542935789583820980286075460182156073256396260554596395481924123783863198126239534542757322462305583692157154266592517945618788549881486924794471948730646439175226921948410419506920050407176821111690837099562785956869721349051847154781379627164097200220054292443798068476312933332901204783139916567448068080660536341164798371018897697152010491949338757508840653192379294135705907562262162941861948371324287279343785286502629114010323428555903541805017761422756006964801836549598630460282756811680720971918704437820853576035712051960907406676978246088941578810910171527143133561734576993852184014331350585772013451863115866585753773042955266898714203387063745896809789744797043284013805505246467370673880118360825227657214906637497990554536003913085545873948593750010483393772462289174279634314930908436512810489510786921115945207002440035756906738990119694996068348255011546301826252983240866756395966345144088176014448124718616967545701306370835603441803920795924206219399246074051508642028150240401361721454130860457466307393005520407570314476252468758140828855021840759202274411836330914837774351933248652569009099558158042231483788288576150469484616996832968309439839450952940238348218868748255855618716560122556330478805609404375993029790277682331870531156005534034408057329756429096318249893660701633910934740061928128142724184088576662427319436485782744548327444301203520391930414849764455131538926171152716212238559899229547378978026101122986967543843219446349225599405033839833141849126307475537840445614362972406495397090117430790521952628068887749949036756378418706022223909712422473711488066776502096365919429536584995020050482934679662172857264122916618586202707737752984674769635880709381277050100928509601524436272207135464784773587615596947410905730539332973501861211315388012741579713353340233262357794773937967751884147163942203460370667271714211554377773025749543582505394580621556532621967637753105380782025048633584090542287628265645807073895356890858152739435790355159188123073881224923775228446497246351684400985606822446435489091005949789291553359316289614256533954765500970854230047987585580521160157471241833477166105939425287149764369408490948938877150362632530719073654152999134583498083640320334786139271225041447603945412420991796536806545260418686022577787878063429446875753170935306893285629477204941336377121906975144004054402128366220855790639392104035661476104615013442638969355307775672591960562227820024517941787235432034793602043276935932702694038611492583610290503943096694885237662928733524528411629949297411418075669700518032662923469111890194348850710701111380148797645014312269715035606813658794324690912110228283869744787996705863886372153003212698340858089257051750414091891334488697794028291898275549032565160042740247449586119542163358738484353101249784706357920709577013499099759700146225942131970885416079474513332657489114231111904203503978787609868980665201410586570796201122098577864939420610960311727543740358718378726876765904937911864804607703252149132169957400916773733166756163525372264863939629041203750287088633485033736476466085671956871697735513250927635710189085703115161773995286368372879149692243130534022369487518294782359150863797638057029723861159890316058154821085734626491103793799370472626439221099782507099926012960156915163828218732915037074351835891003573853635898625597262279884926337997313205958271358575562979734395577506083410078639813059472455433821644063182623539878226321629119257680714756107685392998464656741322509445259986197509700691158965992880479092091023069328295470420295375701026632289162945870671381315958828560921944695591528056445658232623475514187612899480577133932331384089641033062737560966750356383726477332773259919005646570952792532573747874344395786044996373493756807858845271205471065913870392887607822277835888505644894352775399016402129167245082478779200835462406002309587270701071557524320132862747201594079283211751046442868515556058343400588057523246635462444834547854564816640272926193412894657454605947433047526756602131006420390180579829683643446214861108585040471339471529058827842554932995490066861634093081815244133656757611585494470915784005860899307653144821483814526004582311821393280191493979927878875588154449574863207571824312506569117321849138527296450801823944114113897786995532301402693887081655645827849155633529804557030207260612694939305545943878060409419769040078708995102271496306319958885432216309746430188207673334136081739253748930105210158074184009051216185324547461088415645698314158467213244482001550603038380022596520265525262709088805024206525154749477825068472164793350980953284090444297355312236145136068844743469565491433855862764869126388950973581096249569389830336116922366244787543567627423365119179592004423108611212017635379937359129121908121482224275664139007090955430257371278900607134165064786326782195360429279585065889978516593328910643648955002007843703260170160014175864735938432804096203516418375526391196203098564822957925527128707468069285727287733753645185552299558705590680092571261476046203441976503831098961685368011950909364671339272821118729268382645943392471871908780892045024443195901274230852762481930341438824005760719751253898606931304198297841784126702113488180312404920292612949169716267804915934349206297986458084512957886928548083684678630527182731596768222212139109937618423920803517121719048236243170585589031282295243317243333444139896129554571972778651812185594915939325836221429459588549921572890623627168656463090477592274954726805212064661484678748825039837310454057596813843750172739964000690047723118099684604052892552326843669235344062954030711464432419661404075173132656535015686081858287211220078352017137158952951897793977758833693825054452246926338899829170559230788561371705960422493892108554151684445453881443778161054173577887998755826449892639202597386993096620210667077245961660882610418231358904393086938324820932263009388367190350347683758631616251764344623321675172198453492248079150993251364768738742919891885775494991447606982906327266171474845875849890567835972099492378140695130438836996540510362185883284223863964686639400761260127507435415184858839257756692593990802857684433474554789392079662979252938967603298317366461973971506213670787834788099538008183546014954538982794488096528096224858033161038734812888509411284158482200365858199776574345390892965419561480433291348060656099007810210528759195156050482144880486770627334383967018330453961686762177235457661227012261426984828098213322574035095878278996283081718437506489897330678956894548475936462296320231794113229601724923545946723249859260133326417231648852079756122233943068105949344997385950259841991791443875276715727815518531497904524261232665174616534313945174381802190266781079728177764386266189945940376415152309908806087755627646908013557304598309908988071238977118428340553515996263655273073262660977479356190532985821027821941465411559401491042593635446734029756464464423509552854874566329979573596533838225991370115562099978759579243728365019690912292071650864876038472795474435499044671131882700016897998200088910488365251497506861953718319496092051584404673992162231131428554275483322141337316930002978493353819339952766843568712763514718403053459784014296280945842035028955632165005793049214919320120315609128728583605423414935282555221765836579211975173403767826796557119834110058500338634392309904612949699835393580407482081778155160442332575835496432757601297066358845370394500076305046344688358548941536162653251794668852224158411015906718338223594709724489986989943311320317670902522607424234030655908909270409382495407802786956721065064101974416351498052384781175045959296711811037088513940361992618500065154034989045409358377172399720842457661925984759352269877778665343253766405636943842489612650232489692199361811532039453030787855978165030349654045699109342090622312032224385882013634414193295281180904581069357267641311758710199243868693691873519135389154863956588395978125779613090678622103791778660436631404081076725153118414108479521527775855038712544208880104499492752865320236802619033370771246642960852019032024895934446638095881488608908887488826530127679304397433795255578021472006423829409423604897975844636793523902471976792295965724410405766030449067677598606868084247713058463771564164656391912082729232139336537130690434784539151364841202350678212592519227673922179041035908789358077838123488486795937967553632820807425960749025951645899005704799901761877692279265945315641232636904592399510124772079103659157099164269853620302566613436704242534527305815389862473180073444890741195416670111078104705570468270123142599560256933803770700456416289954802222773455832559716811623023392348418572304365510311776225994807820606501550278218063044119867617887101928977228199592722148081809503021277308454672015827677602958799019040409568586452517697823642204493251745048550759333113272541131842026097805785886759579625200039827273412019124986814530098394155116425553047202110210292499559170231310605417142309359858341067034860038711709368762895364277330117082797619643042420688867372709787248294943250274249406144215751509669379934706154717969397320477646132159979700988687684377511575845629061336798845198511520535671626958594804440744355460073560857935032754982403417068528643097392030457452018776821976770023294234157021528527681030993146391350514594562128095292963484235072767167753105143058200716321996852228359504800001891209549465948164605607331310570177575660188892526020973039582591275792355415961383839956662092892313627029703790304898539374624033831298633478885820147777833955563272702286414988318651347290264161698197272012844165964458855385400222617754095776227766823053387629355748794907265333562437098964692837877756104039095668114627668362875179341914104385690050504273319833119659231694924986813885944254723227213884491039627220308045387625792820593656549806662382249923674071128128151824093389716445953187155906816009226571768388060995612995524385829786527524983887080034361995261597446745322190107658847022436138982841375692986343955524883763688981343530326970849756752227343199497795051252321689526772455472107994820844158813702035997361868675074094256735139951058756833436784797965440878446474155337544309781764890517654390728660483341490733965860959264643096019040945319773853173820221763052060975417565708746069648640615273157910145327890716893907042916650307052270826065349440547259092570512447259657550370321039677731476189142561554207958574420589380937638109521199048699474920639016132160645327695330746708736156822364205193690967263315087666918577450911362282240235640721369800623726247162252246597281978705280832370290818787195375647961418196098207942388276556116697491610317724770469315384494851936815924499697028266811497112751957353270490154124499792335522318763553410247244887648025991752457076479659065083378259953605496946266134052247310094750117049199030685717309307579039923516217168614141081227958078213409599071338766886687089507520044585748714054601771818555444270386005543485789866843660400296251926589073997149508863502482545653003872742364944932436515330074175644232221201209659130610349893802207278545626511914449982123791006908670552694118067743768141464720936255560264129234417599585520692368460844059440668528270724568478993686429236513987016364513759513058112206318258951529967656032867777309488099476603565495559565304090508846357795803307787743564175052255587857927740823486157606047864830819069742946125869295621829044168976630473592318628639692266576378276285986112083582195424564605917767115443892925851742297376484640034668277089574252270106566038060727470358493201190728939410740747910620812985962800476698662283661041394597135768897975504886859114788309385975393276218762317743934873268891511536158916024453509869031329201853401739662642907565773128932566448084693560907125251332967194154836332417225274694192924519655321823407734844629470991214179446029508157034414155991389880690359803657560127791106957305258240946419545370740859058957753342372434501135353854379564196878019012152060912232424951823160531580247553612823179141389942421713715925082552227892327291681705711388570565531200590848630978741502065380906831390990994458336062517776390179920825710132225329357905780720457948909199521685719983731752346099927168265083321067730826917991931674565894187151680623945419981120459906813427015515581931881022362347615409407313638643246053415891689552255472140533410195429078251492493972337605492094146514661032522896548396984252755635538216500259173263987641848482466001152781107676717353613241759546762467069944420011823617265738336284911012832345847345007240816037014986966725094848966707853288253603357137788547711365972906853928229316045223018797965500742570066857195673208028309263893165442838133724412844255185767493052378507472496151198953549294669098736489120878617413253897106680175447690360918327610030243236771365523231280368920137005262594082704336699386249239531512137904544972887126594853685812858871662864529620851017077808190510690126652039796232435026340913331041704881244356453295241133208693603881553753681601038764368153710657989117229735183900475561639360062087860022750981694311466666707518556476394686211588198669502119391468589611149829178313617412527130093589251114689205570109292366892444459788066590633032971190246744572931207265915564183717092202636415093564314992258147909839765707688507036417832179285328170038643382412120741241586004588953385977904763994017168908153711133724730182841572516659529373093743448816768446832763390844467566812794687794362883054289934243207963980258711544056665516893800668768450107754375812210989178572711321816307235562015416701717552919154514786289706179789820117834508204718995719280896102231288437573878428774346777790403686715447156136401339098376783258504488602089138790905188932703711633087919711567158310577875359104246206466920257612635110056382650113192838650231864851907168324943985014474617394867311357207593248325981417673937439434442862119939801077680347251732150066630482593560553872463358950907204780675998350727818115554374059847804026512304536827045660977131363244231133725145840450999980620634251828039304052230731846104942991676424765989759764710445390657024309952369226248255979464095175413281695284308452407899830946752376150884048430932264124983410417476422878206343857787355758419680912022133505711797747876748534799901644056703159445988402307265304522864525273575601810556637183443735608899260521397740251757169640066100671003839236101352696769744617733730409086420673840968428223796613658165600728931551292469524450919610447199116448496033806983582986014248803467957257723096595566130397394569361386243656326552833499286447789288579982054081184524608974094410104013428414938550891558253608086411162209641936598758704344614476464888620369318754512579743427919257586991960029618098067581333601868761090035524133476981983930340032266111661043022870315430426579183543153801966082378031278145874731889470909251544495058359304393206929572066658607126565736817477496469796187738666797675071435195713362660213455418187159726532787936946735819346393732447774256555248552501600855013279055338044104573785731618823249717017618338469025901226921538239863503183978966759352743575244540966229146069986842316537360789516632358434732669351076634469307156431044149531078097791476668749615371275459546822072241506735923614168934441921766116656101427592311783776249787883038981899624996703439014871991685279711550513872534579448565992348814529014212729828392723771156886461098288809584981656157170451706268857770954849581480536242103689582873832495049389318421535422875759534809656927967081665502299828595731553234482723468477368790105974049226102436862329449434421110566486670261841763870444519115339635432643546907507784021706767332333655647852575628416050137299469362062541255282392179022301068263375634564038314601108992195451563987052879904307649892350414926934543684733367312754995939852343292757166394934978339935419891305494614467260883590163781402701570943068909136703331331105961059807034218030668292434033458279302552398300574084029717175994051139271832219603805204422433193664584724450990991235438043852916899623928195858887817218231347052276860340008035282468057586548921561315651980559918246300058207882608010779103920549011391240772517434161465742895335644448618513445129397737151710798000803998525342423167029874964190575492985113213187683007532518966871839859527719993017800058514256860522881947536711623704663793259804969695913324382558315529230959222728304914759013342344208427646966194049582148920896005435547955748172469293355822090172387245464954449025768353954486946767775731622268611989016040510997789333550260732144821254119639415520518630637511822126480472326980473868310049768171393246567477444855706248862298090340031073376829958786605512007772068275362734799380063516422710829594114319368091704669591843595970513224793035030728112237497866255317180364801525796530088779278986219738064645528477467429230645489195258471078040610869721686974955779560256482324978177309892966826844168768782652141958194915001798910639471901668029932700544719545882876007594561394329341837713033556958607181009511866347463979106174131280991775249150889916568333382700822110749261433978090668254402903412243495549767203919250643096928612975690525912830951600699179174077714596766654298508504872394250664828082879999559218121765487975555747528799424822584959693523206984204319166422083240277372132382565147204613095584640279438883686946796274242233169433602652839339157000555368257431547957294084867496412250397136408849535534714732760651458643828315352753432591474785456900775673658082325780442573603667340069444676577876546619246471312308833544439996908496695173589161264268196316926920534013873940352771215236165740057354854740376677956342816818505721775300736009539270678384376652682118075965721879327983975367986533267055361308379938900411961415223356649295908824046357880023519709337143832596133817774721630974171118429239164015058069789313646179218698041702152586136766122227470060739106616397683730364615149608820673577443328251843755206053277174006589167323412822795548845032745838029500070126009367175716189930726868816890968121109744147855868083091749893235283348688737942023249514703430344757864773354227570393341379590797971927930527584199104550458207591038522046689385730214244110885545238128790878116564839265828124615151331575217429442446691798289136354691523347942009644531010015632787655161630332269669558510583511731185531344944847801114227621570072653668616235469347554816615973531493647690047885500715615795360898688707790589591220669473925446790509686362958862250783098922666012874170236746276207770511918784975873738159374276042638790781097750202784281956497049914348254507841174454302925835038183377474807898905058335043777887629315842472368867226936906188247635191416704599567065989256760040622647866687405052818235652204234776158554444910115028279257943096509843577411053243969841127693558114912022262077445514292535319473287429028071099761753161537422889939244267585882996319753843464440089724934037649727943129416754304064990634242971679706383067934127983069220734806165685285159532222656148144695904182759123879088665233377295126098250903990239508126238448275506800965842307177673914330494951028900187288130117224536438904311268163306284971939590695802105830692174546491082248731755978812312781446936215431245454797837183967219766166071747517418591941346679228433777036074764840846388531264004663591182293670809363373759217862613163444898416196163082436893596837831026861986020870287932147199418302625505406922450407956567354277114505451421733246487972035894508746515664930917687590927747129515467114252203647034187466015188868277992160092427045697433536475724204803450731563101007686164061603468461210253709936765818784360334801755287738960332908164428026177387189524027891930164559481408821339086234895208388557935308984386884799824323446490180591681634917340488294920030158080617958907542277725709051599152279202802650233334466360559499279085833590959535094255849018872448173157099838970934796862046697270310877558276208330086251529807020266012373375808420733507347091236634001929121420261947613167415888656418301538210775856166756202682210572411868576493774340171555575390042727839804701980987948402399888361739431643953392856677230515971985630741648872547603804652398545488608850700586322989709101949751898068245637001924459628470613265066005740415199166086124138623889590029370863383684703947029204478047136800396113429670493496440859145427101682266639250273456783266692273963605468458011924106584124369235935405586028715139128297701856368479947268484567972832909756188554298915081796370726250785707046638485131975701030348870604134029099498627977474453556701795943089157223483539804237614716469914650239326752912128305902523490803323242838804521507961100164355471235961919001852311921315381048030586509048602912056885126975513445126665397825230215599772911602603624240058805111970681463118290367194250342673606775729351127148895087514408624935530708399056889509944002744696497313382824473683898471438779925396441997777088195949711770346301525244090514328363833404937265116996163942234024199916281435008533695702002950627988465161097836819717512022547283126616982187513430433896532104421412593001289268030797063379819744003484625412558428065603293267845791339913195293556385934166231379040265309560845090121548285739592391975152204206865197784093372187236462525891582515209012965846350009142409201037108849726664784164264486142526417274564999975337200630927368559848058898364824529806343982801832700433881519622752436896288005398034344055685217888054964811069838691604199745282428788505387306836036455484047991402597561300608302792634891474837864574565258056477661810092096065588696668607248367120930655077695183291204063198685234837386046234239198672867283431001595150727825817991056706130084346890879937722990671833311109970630788257037135178958062106703999783072015297432287019081390462375021911707932620796418045376322521384951214485114252273727543769279146014984269239217475002765883735010880951835420887501213515082100144602886794734342835605430625163713799146061554491337154027886343001902636946837232916998278856286459459088463150098609207420920123203462601947240684256342053783411641376755908315251740788441031261989191003871937671746353388199786030237861360093895749541010907495569409810272307061002640185691494267191314456156687063853778913863289773213825503822251478413549759156296483913053221818816474960105764210184796698663387222010524190248241820099679612064078587847650855502426306115983234706780761865726283223783042127689500251818111925010815416581791865983459828569386613533496274580360832374332001240842940884551676836968915803957197574800355542378486676671707352111631712661114938559753085784716056040304544440323583103250606162782446622984404578499162906216602708207928860208850725316121117254649553304952442472603515019582284130400192740178251944002390856676188858099150550659544189431654547944366473652433251094061623754866661779691890937039611062291960909593075950967603791376917653361353813810965306458447005708631169419671271294427329073928177730618713648843848751156527395391607275981010741434715848993721247707374868506347528519713518283014377463611402911711637181456335224568248598886280946296097051098638170597013457192143189774486942051047415428402298450479173524649020852129685272480661261053310392071248940698220969658141648665679421659872058108129992289397384567573996146004846360456128398847369269454485526151894809166314787143634012167104800629798447997012621050571499851261687519159898834632006738003262102993257696349315699841879666981061744752265634956758865770237853471839712957871542656658963676312487140550784986791492104268514452509991588007566448835335999636251699270158532914959812346592442098422395106434754059495883369849049987772281877675117414224899988434244989844720234752986524990872222698583996014470122407292104597370105634601758920550385818076338638850337039307414447860891862366603024186692235432848953418348621866540527202664491422673470701376749129550161824912632761090874373336635284071179756225854736182629821652792165337970468556590413770820158499007333988996165873184669314655651854026418434525077248050849978802871262718719327959464093072997120571657070767986847159921245614822442157859290884614355754573861132593358535518178061833142815009041958104095468765889503062662750283417292587365783631620327644017926807388088714388247461469182806571243404192674102379031583719082607533944148962100233877911222060926507218321933318599861186133170124014231659888352479173147818383715264274216135615615748483085197702015432298515019166541222512394422324249632260616363012855523609454904367907068592475456987219005906054240831742533989573765082207282262027707111404509802555804375326287562267619949662392896262890987995609953427692657153826936324138384264876913973451191179774486422455630529947425053233320203022377947096076822822628163662049950315613647067045095659417080900885518657086470984496381566833401565514332965607354597048566192912652182294139133814788233581424629977484757766503998742554217488271579871596393191921410893480105998964337073881310828156326720431669419799636172253245334049169677654593818699749979309093277863542194755976294554852727640029538549540893972608048078705187231645692987157230223260093196718066075914822368883638042419741199974169942128758992907873545844425209455257777246867316202730546058900030540817473149828887967741851889731598032944158517402318792806629643473879337976174785028852865709760786112200821042950981463319211181083987366367178467873480754205164087961915961892439655523478462780642139824087604827668510060706737503631056063657394040631999336506148210448842590354528213615895003927984747138155322982281823790582637312678950143858242298598537858208051279661793092607380973853022056277817362197946419555683254842746842555627921443528747007418513273635755267052475242997429774279674122150976797820116217652056705222098562760885115319883185741861719669783243815087447002077624256403255730225919843911308991695891833871976287706372296004488135128839755825865686347405325397946621621103340463548773386298183045822468428188558653339589715441150219026713860535623508637236534649428831923377475897416326327524771649550954358309937479640325560743731535951105397397848128576234989717299196670171710757474853478291841093644564752348259471194551187049018348668653657289050246043506107933948888867785765813481893846650812137045674085788204643961559275046636427581348658374347947702389207778112881534711089131012820955774111948998970235085087940968882548799774484481108164342732692495768337595014666369303407443715886535790219960602575416968048493207180725550215117492558575041856080267763521100647614304945602588835307165163164940048972866176876675897356843745981042131898678363821557955993727986627163922093544082160470664354469159245382059448932316282918323173209703697574306389392735734079434728212733685184076903769834276477868015367667582072310818324740690842601236962359437855583207475942753873314315556270989129592009626588295946352357529489448843671759116686790214769569576809067561647761904139086534244683428488041188731821082684834105792061371339014011619800160668026895987859767771175390638050910967161706402128400740334752930245929292079660238843528480557112026286307903802927921384839327547519493024015224707172461679996935880479683091292864340268631625086213792494377488685064248934272933083635799204595027549689377212231217407383938741970630865907664838314253791869469553209325865922913261534639992958366218255533288337079587413821186264956682406004396307407300791563689276131325946991951260113481998091225110224103989915745015298504641653398609349286524155485967375186497224663824365062490590976535211639948779345715855462251978676208004854060146780265313718214605315307277478197506804943051356655469589457236232971496873334997462151291166566163645076223658436837276320472187420985290819480032753457052880857281443103115634526855392088204038708119551732459638880271881207075034943109987554378199002971329378691982166697082523285940570752562590613967879198641139621916610627675715621347038187977195726153333657716739565855129650058898342198162055409745966971623249783549293096613304558448783641092316994681367472755341875860840441354460973737366840840504723285055179593032582481562422727315037966306445510104701789355588872065347000664652975034234366019637335063575272735567521958430684418243377963111866853457399529900041235464320530469216252048548380509498820900272189105356365411101872859155430089240366199492815787667926488807025610037519063383820809677966700109581039959735312773853394688410020704715628811127938574639297867633807006353692071692605915994054922822779580195286372795949240175614199874502210447742002506735670068831755553973886769963111672005673367549469937517700082237425678620580331685685541368229571514578682367467908551959412181855156850793318909588532964687330161737916054020308534263013711019689020000199274639638253761613577743066047640223110790813198538063356308064014309500448420615181316113053263756086504834595422214721327372384948006909813247866813800080405444872508196704593061243082234899611958383450917620033889778657072327835681998351556610118763763269098275733407718217538192003755330984726427898969131834787817350952017009860952970348642089293208715690668181096567976441193619579415482821854447236960828021399942851846748707919144980461885939859425255252546289086747094766050955689677711434538024889614821996324142713666757760535275271057961133698704900304435165526551293486568117518007224700953779370478131193705365551740029099296511261140911704119846771393646679542590783252047613300098735098821616106025314767189560332877137514013049531868967235242532887083566861213182412626992166961000283342531874512176502287903930387869386280915078050104130337630884392397362585370229158498580020549382834400256255251923411728047522498171954001388964022092028790327596086743976208454639346516492216649364858178285164900479977363580075314430530445384427073244903559300839756615877756350232011486727960963320962449239155060060756997032365433318545408808975219272359700330989736062538949522609624431648025449205650406166260809659496894028618154132404862354957189571575531224762850327494443247100312234543394159899714777874011228901411029854782939537778819276484270605683905200125036599206577404024493985699530235985478026968088728290503730442833795718382362267915799593344652570849704078758409326849256359289310613351366939300429096727712417455928711105186231317895559462813307346990419034097924802223861574347604844279887289196430465574930848529094100848074221805087622525104975454487407815647433909070368975569113120255159624266625520994067489677028812481171323322026600456588959961215111853074653809599754892458812045465639241787626804303220049681624874140539791138568369907781964278463207759848683283372562293772914043019945437704580542986366380828839817705193914409537453492128593939091076046357839387169414458841004723879172208910198675550669709963219041911356500792997217873206421523025886774223785183354990272577768588391614959457785942152711183048384152885461306090451766216270161051659467833609742910966206674703050013885549998137055016821730449607015372894027391934729094103833866758502384503614412962732516653725512701166276512024406293637036008252505096602705623986696183127247665872676495932741982219624924686976746881248409428545078094927331803503910594734688259443623421762256283267118864412603130154539875236797159982993488234171050316661279167673211464497966163535646524738754368217329892122332162672438289246654467680994456408746634674852347987343497692881285371667006636131955005103557684975071498754463747291955692370684992783280194135318915009310048671666057572787010743173350327710082710170918565426711933189720835677358079250924538257148892421595492695788698846892932472583091809106326690045829071261233422912339218672427536251845182331778153743129038896324480869094894278302363600335626057815628244115332881080228665509172998297826606069624208975475959044535111889291790138256824175262817780133978904493411473582455576429031328797533014265334555301250509607578239195256963746555982048345120881986130008752739244104202784018867154586321811995947319555660726306133306558233667508485316855706089478438482818074774902094855655139233223495443232943477066264607739983269185797135425330309535786005946324014654426170202452544852882515805608860355785362993174784314689187621185550716036226229590114033269368987628918374771757265207326493534177928436861614073003739287867449559345636331051243526535803217390470176633512534418029731213785813255519889285858476254868755942811758398475279800197674482833439907410080666003884456538113809295402263993824510774633146220056693826488734739941679633344211118993416143013620287426416485782613155000608019432112790368105260910863457198735124009317673371494165602235637643351277282992188789354375357866077458264703994745080761190688016215995888981535016461287041666290397277924846170389722562406556361201653555488488379853139708893821229144222715906650031153331671818010539294030232062151953459912109109786151652421152388689142738711107289216113004195125444362527828940508866006748343604281727511448869055747849805116019980462415455986366148702657760914481676042414225030790587762517481449297497565799970650643974259159468454336611944308936024639585972612380947464590208352432150493149237275974210094085158432296831590238193839422347862169869482882469892762937225316238873181247379417711479742986222464039486669770250341950742558478947528060910619421185070905518708106400091413801910348649097842248643166314054976112819985402378463104188213681163736219550092256160525124493021539847523340008727592461543934544727539106966605209838271104647277968383214070134736758686006506679369832386407525784187032876779765786876790720647962562728635990794928477561978367494661717499812791260448162432154765474133061303010309817981548705057867554916845737813498754773019266317202950268660038785861685523942568067903121449789146399587184157809223967731326405068147233123673222506865387507368652710894072261686521840535191922670184522877162345792481760659079475231664195212917322491762203202435900841808102100532242180305776682287164871498417399425516455052647253872275552644768262460669983637414399975988309486964212805218600782436261153411491361029352927040995866178903483943491681191864025568530980230379683791083846933206180161243893474101917552019897848877525258388157400264502190840793337834036502162164083339367601391943143889880884087830307632433558946166022648596536357403385194237980246791192184691369351102582691817131956658927354167653446987805938554831418152297468148442849730303011135439377685803629931886413763370484182027838097341062140804262171886782944199951441137844113592061770615107532674699204251702067889025250913942264759713390845928888743730854790828601870728898965952709000651511805888496268888548743850004846908758921553667696342341443462129635453075506447927139603411358754941428255209082371039328985975506960888222539929783541143060702450854690849025733444366697241643854249132995614625504174543335743269698979883922047456524272671480484726329756010918075270774882229337331938029632637545751502966202926125875156224851475763991997146139302375613158929946556394652270953098004564888048719421781518336439479181200212404700179944067397498399407498295478936481617240303670306798559886779924968202991430538670396316255790237082268299757563175872750946452166918333590797923916388218044445990807227825541869684386928732645432608931273778989597370319685156224065945901340703342314743918150128149866929361534852562560349138803788781198924007270279075515674887128331441835483134444883165434818022961509439130273376027104371958311565977765492538738243784180955307825799444087952390731013044323332839771102321939743534391145087749997883793292487584483844976052060819060344340388498843477978852932136941032714805622780269685113239837726167471703919734438793750987901489985645914555006467359297866853814903356726472809632422417567378284902429878530939203367511686945561832971092842956864902109297942439867967983463971468716746826934863201891141304198068305000359039942179610696165084480365264550996361604756134608459502938993495523362272313863257064200711213299437519619785306206136083938257317897106352168595863637325992160861177556260007449901074591294991971040147498735252065501739442618396140750849409008011178462525833516498934609644561628131563475547346942543340969349646844281742289411335485080929898226804133068555105600905185496856374840781656002467045615140407680213545593409576143889750712187063432131597817521261706858947378337734003475197057115372345126321335058638430203770501095627732365685198393165793758536990357328868871404315742726000861202714890949101465410869693814211350512941399168738272440946686198553922463937456552838103970947507926510614485811236547032204246123449342592236689414641649152571646169515106695668225205619646759762319810197230553246728653947228401624899244364626622739632102404537489301212371157941589374700078473386898233355731374261493193148082600117664984590423252557393606831557731585442157156267048501816252578118831267476365304788974708364478001950849731154505209689323417167258236664114286810296588831756957991221812737051636094769540327997427880883360409669304240719419527299611407164916682499980534053111080586157898567600170817391734271905287731835112639200801365859993479911360775205354843319956509624937622253934594130790946536674349156120422224780738645285543115641844608291053760088689160390063484116913910203415498174786750535958211495751720810495475667392559046800134319120668541465077335940249565962829532445783995678543897451278905688848021154423854394585889176856346127803931582671880921942219534693484801765644220010189613178393551411543596635404126709682897873421616028756603721224741190574985909272542679689319597031877274786060393344713315424022833050871108590530072174372417409358577210039867864408769610323721579074204097905382309728226694346260585627531114863629717726634094165522565908634614729124819133948475527074279278295432150776225164553060909193776549884753345177163189083549989068815316748938035953681748757616592318160423562453093890669733255933285190306177844919528805977534122678050574141699168686371139304775271092717866858979973836665708387966707155867718901240674997354566599629418619451831036899961798552999014031507350941893942825295648876879872467881822830585558341247147619734103870930379112165176749325172986797113718059210100936228756639417797627250637540378974560374457314271498573418646410826257130472026612936305837678297915668470342746208202563319513133080948071354373617701344673293029039402752432268309665622316391231399350986319702503324110013522571698983627848365389642061694476439361756318764037321367680189774662808931693464601078702456963502954999488167373180309228632389720749336134029641878591222096487436931115667896320778749172033269736661246816284640843206439130606102180198418306799407400187138001796367617861463663710607528022555075736250534145021732126650628825496333527804164843246438948488155961935247413006763964584666314301577530721802052103793948502630462080815640783314813286200671264593474696824340340635974765551181526737443612229073746708106263556258265303338491007308736532309350454300412929372741073122121973888628444848456017284223791484216316783744926553522403671804695669230737624553419246454722855738237307465840485581091833514303776817422619176656981316372255458216647394518659768477214298019246115822867362688847505287147945743124999710990891551329330463191510695426975243948510178881367114826291536778816009311705991462037952244716888547332820503905494110447425975575756757830985575597976996535782900341482286293260772990085205567402006303762737142044727993379167802018595290419906006226035931710077107886204489914761527883373671907101110357005956742149086663654610791742498082551948448759051066415555209705049550162660109851346643428748382136950759156205829148741243518830072661680898817121263300387311064010471310208868606591129510344808271205570996199002894844744838015779366360780432154665399086532346324013947553931100306337453922099862521654616546168108277572034297838690944388380484537173969308314955384437775537639693973415975688318109178868590877915916336402466641155349910091033633234440478244566501309318894731123970078339676185489098585198814128439880150386441265700865830360097596029869242569697750139191706116406858176920314845931210965836695116327519093029266136992579865952944181742632682009767381892407131730433492477757356824608254169381378712459831285722784804204560908454677106107098495037210230339625731338269496236842917608310810095215132472227380759463358723210551566917523237758159603240541450898039401660185175163569443648065410663150861618236606821832717885637197888472410478795340885615747659812043702423217183315273497018973653009660563456720868003003739156248862402461561645121735586174812645060444588875382219845181781321012958994685886973803303280469867699102064744805257392800947964516170567444942803819483764269106135000017638555396817503742304618478804789721925081877722863492743522306309070243298657155730418449231404678041073751196476234367773005175080559221783044950923492294076192310857511936914452348698877815036142149594022318073858705937137185873824112859913329555069267271846295940392738074064815704359086020417412242672965197993273199264655535534990848138438502189584828097766017994996318463745782669727056381390967217802367389470724402968156009167246159292187606346543096793135322673415372155651424047979428681428183872905571466731706199756981429272346119078739409707616209915732019049230950303550672762308220775217920580712868825283293378090767986636404813404208511377096909895358754025761547563773513407114951678263989263779357048627630790994813704167530059004618957161572510997043705054821818112062240505720483044563729675580206961086803601056437126862169590060244837640925335749370679293933844156523265459093172467472128591428810998418505111581577922164833172067046381671472313069904708375446945186600724975138519060859197291159678791701106828462433361847278198070067616571040458851869538137863630871144198536549921460794950687926011589973563651150589070907450013980421011491723005668768688926704068566475885933058321217604630662095187303395920472422950374741580268615740436149930811147018258241174117899089768994915361837717082214743085016633927310991904792897691766883192849820313783717028707940589864984456818310203267012381468234080685317397495397322503916452551628645373355615271965248489016686184034581081294207239499583266307950472688979359717902672246095993303717499169102349829755336233513097128799641299369388054433517807149162342039764266248404250384566012159847444253142093930960966760270346308988571668003151210302950661713335112992680636502067513096492598005634025640948981165880758596112908639817699885144294844291463947489893636790788584987219065872756862639750702215801874449429138385126932214852980599547541901131458676114896089633372879726228875746933699842809402387738489198806438138577398754818192252352834668545344013612598241545352933677053866303716249159888458818228163402366596023466802656726620326008511267052669756616255128538057038546738700230150378409912096717052396043170511332580600230410045832619035818929195469513998085052460440905434259373222836137555778936544362704269254796720884701693752832379035939933699072545095680501943219094199890206256446106678500619654760448956116829336527358668355154215532262606638800523828237925376520160070225829058104013122977325636701821231470871937398353500327850396616981793071362185716079543681764770991872560194235051982094713190241606451220477340325804487039852293930961372517232924192272430614750061205558209760998596346164996335684086078280239334764266601803036125245330906665954304233026881888908606306897525291086109022454045604897706493640702393439183760216297016255290984639738173214165868420371050198721984321328821783568036500137787179204443070521052192218028512191914642167644612187422440009941033119204163121442357951295815026623733766631906407371449690591744967617676136726358248525880219083294716523423173008276857675308272895090622586576725402705322082777835904491747577112595028815109807440066157492099688166189198392483063715478903604056954833066933868799277006671586114433026444051162513568725272642969364907589709230225695092926833053150056038968883803392680737745159153526117248919679213935186809868300422912499072822657411547053495623202582249827010768785899169996482079212867854532318446715756839771055997008066669025770508292101007640746118021289447250893159636144745248873030592564313521394960645413404008113881858247418435926409267335739984018013836862622331284488621444288238390725973085477070459734238830589044094444681568981791024238703100857936666323922194914298568917248655417076331931224280591730474590007412889408829697177507587755902324355732452717660307960586102307039919114933100765727483053753111753182223180126544470837425263859898164388173425323299770248579518841524153315493033541339893821804071328055200406149015820671312410528601993899960778437754541112186978555666198770411385140444651476346398951041880118822183814604609873680572488069040635877523310725252912924934993710167932610897057860486230213000980160740174501066789886914768097169985145659099925047921929418985364519712953054828632854185003417039556118162493582240876659030733470456215760206079104855778090364222098409197729498532626291360500886299445545276601975790722837901842592749666602416659636416405016972003348027967579328449075442520708260872469283425894275371929428901513609565652986343800228301904773794974526798176255752115518848937080023032801361616198778722302864776434033962179469212708718864087182955959461723500387221522828552738725927738161855802647791103646141930420986754594766580390581154600740036425592172896344259955936016979341608850496567593189255063696164262955061994025032661294753319159883903190816275695377097096785038978603524196310859927916158060762071497512991744395756633365899320191451666500250080540897052702885969518423472635250593689649088874834203515276462554380529611356391574630652717464533791645118926648564943058033878555587397640961936773630972865681838948308244311437517422112652599177501935143470839913660757666148177772601514279774424282219961665269063877738669519057942805146970725936047726015507238914524357156149044151513385810523434173914611406124315403712630919685396846877490258400462615264912118485788759594785141018453296042257444543765481573240713195449725909081729235819490281978732737612281907593507214446871060592762027645406980135522172057173717832425814366038629552756789041224301680684502214013016304630528464795762385493315842105559524471612793700349261709042775262470130611984669086117989421252300496427470090530866211506429905441180024061056170621215219358932471756636807723449116317015763880052979829915387423930663931681503273366135641336715069165923970756787165719201327566426110848091936589209629281174693460904689719975007083923155711047893399239855464814714926657374076469966470375833882130096420430022927596532977723524121635277430120516252665065419525390921488181138798809059252745141249659635519195295473942232813105662390586588550400614881273215211019400312023648071350895293658822311163741830850808078779711503559341835969178459877323970251389773727033515373314021785007785023680184668942422357550424199014652543413848353597937339856188137304051803963256072891183405600599049124988268027551123637728448850474288398925913569370660643927013085369094489909921549649571777692499207468522576075969287238216462709202028575271129785807439903486476089511860152029459079843972859042357009776289637072838111037345743052776278658820294283747588126920830898593926077279345698890906922381444912760243864805231693926859453075056602910435482360600344165130984664816140054527577931320448436850841641194325127435579454477846320389256569265788409042034673976420056422741366975799600993945658742278814662640721939043244026272313747727671070279235595334398392706823495649310439179018782318344576866716021801529478508054070022569132196091005184959299292322307920171242331542894150385578524061287323569726354819672568681653122584672473205913707652172171507999307664489457270335316391721630577079509413448307815265188734505746985881045077060864467918586283288309449452067683961869211483938011518952190672068948781299840927951475959851790539978700603370213985998600538786556107281417335691658053578547294059963955961416967266676084553129311626109143431809265455026022742767121401577177029455508117664530862668146114410539350589300284562231635785775429601609851023106060823350169515772310545315302418548292286006948091494585804802222037435641797679046208162245607323488509978492624439520466272354837174789873754945357063645737209858459302078647135506129060093000652983690342702369087101988563440464746775863209872236162183594508180501244072130835279923281852277386905095444255048928717875660247426392633154737843789108415772055631886882715518158435286954325303132921922070259199073585057282038763556996088850617702027323564606134416365259046055330225163429817510653085054962543930913383448821974941278203327481134533862998025509798676249396922979695551579759738022970429825564872360118723424414741333714875959700874291837710965553928350429514367917027274135672989192065531227694134310869028875905590144565943056823615108861750323179343473402700592474672197161657661294709295528856738371955385972020130885558243469720391442895350255878663365640422225109491059558661752817383764678646705266308109808213636827927832313986182416855580353435750681358144548324583540944037953600973183161956583698629790796778999236792045512100149906372537574219843019314238496947573502715733992727832705043600537441807209778320220492845181227101272250056272438913992660756111156235878191952642450931253107562866869622029883103149661351386680547687674673671170175640912112812701609199330829271130229701189685457025089027544703941518776404478181927061899822964046108036640303302125244095291184120536353129257767367254368966388302590877649487153859959295718284295502296384291024910424465816930195017631030948737705176988030086039450733366644086618876049154526601943222822059586557755505338463754488138765962323845203463887969714706361051371937343622245950249285537464851089477719185994641954705834755400651513447894438032077583370009272336131142535323207326116761473499184940148037360668486454499118886314162645050638915152481150413200148203146495446337940722835868703533125655681164694469849397986822049938822850078056324463853569871264184227134755027343957675631319517356290235383345588209743510727319228283787047653203981702124525483401687653662850490157891541965370435765123862879007405777141110122764209489164711021220188775038318551068762844631179086243012243454062392722781083055764095730527783170115257358923415633483592113289685518503667808171022949398033469882160572864843166641793374456452176038565934587865978358885061174409043439329846424668888887202012012097917429175118226218601207577254797395638957818774818135338165286680014695649484052362804990487667395549816208706373701827315953886909156707976464430011112145597959540169291082156531899167831977797029139818050332770009302811078078017812609691415540727969513441076898018100428776001288039742992519239324553099757229469003382680137526969725356987457852673323462749339845744366907071685072409957016621807286634275954982263657695023312413560219463029382222124035189394782552887405699459643068422629122408435491276220860546980452360044262437352433089275403159397533804583971575848368992206529946952125984974481324182047787972734284945924302761219549413175153053986492594711865103600633810249716063910487561187754591995808902403024745014709836016908719480250363741061812386014533665687451948927835179560017873481698349505593987437234595114528474676147066152961693161537276928345802037627789042610380163762321195612953088275494383001253671734866891989593053820176900945428976880424889627053138156213848699503177761971419588411043633299308562350240468070057392108328555172292959500668912457327215722344497862143212633436116927023182929055086298103686112370535078778842143189416233089301469078248945222468730746442813077441823760452632462813346475735742155731340355274535962937171796273082960797480488633219302634196375991193082499951735194771432297271653135643154381379214234356572985215317792596688092399029849495856071337680210324909653847359006835183261957755115638894351998841523615212508617388452599753092463239158444338763330722505991699105265238084804823750040749150435369176966749924203667751058185386467052782523642917401951558896121703359563265601745100309977840085628040325223945497527055633230925397541121895556321293700541339285356372543067384158323930554985587990009141848614359081718414835733787053467486387175672850275292106969682740029574547901647930462344167871690241410207168334080203939976244714495246440108984725973284246159902272334019176362657134375085856636275581862738402181002612002648868629624251728978619830784189898478070695327011535682764829796165529187539586769069710915843049421834506404400200893923704341624558111785751448685511263200681622576758494634050041336719189041854059771554775787109311380658317064180816281828732320684992764172141529687235294264643849542595771890705264145889516458943643186749377350791881990332566340154563020946690072810045630765539745940772369302625886368906977596622802977509700273768558829907049091393898750140933759321400704598628185506915475896310084376167115807164836246881136130436092027225340945831156525259672749766664454647964900936697742049909141306557704842275904742004636900569347009515997687172198886414341055293252720184495708365270726704233634971938607993939424152640999608472579318036819251571234959540991946968549622285432532233002150475013425999822795023024464478098215559201230020047822204082125249933706543438292939142851317643433119523115105715341015904339714259580508996555981806542425739590194456196864002361676574668369715796161026926252013333427314583589706356721384288479938482095971561266889328569042916956640842014567631038863380249946671114636932459353690562821344147675202961496313058908869769729765861176501321717466464563474627706864300079662452505064800722682261666866982508226568525007424757393728562499136121893237836361966015316250493907800227034614717470500283426040562209939604358458253762701222683778263824539005093357428789534018385903423044580898078730877706083607596871970153550497557290621881598172817378604039594977132235880694366082438464585469841886157245818567676164575215384031082069244992157353568413132114903656560998764096325136003352243703500636711347881830668458578412491026120486857066850987969424053901313890745907223925329129597745638144034086780701870275034174658926077596087868156048923645316581294850833039518165145000767765481144339677570934023147802609355809556330928093020610617151288028887914265279091529312995253122516934977953927076687017763840845635631524029761743526354467540646229154200246629489635400031117829738054669916235430861230768328969321826523600550533939394147108189074101296419468472614184182986376819695621994281076653874204411391410723045485323817035039638081209817011723513988137510738559207685635602202313146970293366005280712407886506312448651768650128768345106021435180017916322330493909129762411064614880778360006140966810634682638668444081665025296606879734462825831374636443251526042233163009070830179967218535259288230368796029514440823267082175794949430848553229096055516577154181956175350204942629906845875144683772862827888843542909562805594734533951729685129657639812454979810867052350677114533559344652242892144529579953032246152848367496761972676484050057578613944774017072208645055357496022793659456789655918466332416039635309655286695813367650347237003961808886223880474979104192829161982552651622470043508129787987317594256418700941675790263271135721927509790255426735430308929921170366816035618077512855462622948809466162893721003532245612498912681779387313313458733955980767715259905494876547773626466250810698731256878838417344682425389786585568144753742208396305358643513335062668552115618518205816190920384831060299750730536124506520393035335847818723097179773059137748988808652217107317587135406742962799570319374367839506275639527286306294428606939918481808445790391616517984704524461700842558961925943034353219840855676975755906917409216471018553751068902472882843914165311098700340917538058636948193504168380170646636405073205926797097105221004260177149643228396102434754890050253320094247747822176438583051493338870899079442795274220066102696273449813938850453152214651143389856119793047458548891264759540941982620068727348033350492756466518786154148115418181975567452082834820722389287824672856589661544522837421703303558488226219431400714064928693613179646262317042176429477019676361671771656196602221789529362433584835798105221933420461488399249664776234706930744561542224901058650191766690744842551750948234200217776358024184439473922863460986674072445740748834582504205489428866173079774280123430396777591009570566977528820943821632381611268954267344921131544127344725096100239600122786162244190790087460552892893915165671179701080419200367723696607001626269692535760341443014332307175431857930008662052545274287810989487634326730787896416416387844352553128208335613163468799879511246992398868961449698870115651235007727286797530351932528407270092052852693679619662332497542315464054078327326044675802405324111389023320059385384251043543370524038759381271008727368948490712099743598053341049203413399395589194588003777750184039501826428301417796227166876353980104053521331705980643015859402870860299821891199058059146303280139511646139241369988085168318807734347163839190484268817497613799587024525753132920734645762867677410002515703167183874799534368231959284334126686892241758942989119376568757030260615384743950796014309701687329932968666906287521266662604787814156867295668587742821351711479264636114413966383328645420577248189793526469847454669072438264092178170680324038558263187860507486962456841351624779931345858153156068251006324465690179784635568663300306786553367049225834667656471978359649558542687130408329654157415312515820046863278002317844694210877810700601562696890007896529374048976377987130617747902030115238137417469591039230102201270672829962149530105201335368871833220028845929190298653840410082326396444301388691905317920629359587231720112094461876706237575198737232951443070569792744632924068364583221869506712433910979137113241034055549559802974488928044584028808446709092193737182892265876344627589673137808781714702208159727232152497433220408963302799632020852962770558229814826406157774006763959528636316549103356426578340321952586700709915535821256524591869652685003898946380232939393822458041595239442103417774470307184500365831710824504719871872678650718840496378098298665710624402487155131142189834393716841685284819567804475735270025898141094363697161374143004164363637332319693579231347584992732097325724023379276546384902413351397081880828744298441217360841821141012484889493875865660595591639391500420258307477524945485059076801659951403077562657810696012832459355465971375967628305938991239571176079420441735046899070175036291448346163615007341678797781434304486624981044580365146619231351651180271640958017206699349552430765442733479625290563887721500350148480960198642905921985939078701790364912943185677826921741391266925912506047941432431814244593233442140794427406200028572706665453998186019418425249996105150243947141331087412457199528023849055866486348756495435133649514952800270180576740891599099863558001673333793158470213813361818769079387213106124426355233081310072332873405514710481014492263263816952079475763934214099705290415538461537304317050268361425101527432499839136169889961247261872498850993757183239683919762403686705886501227485838541505925024447673526882068964831788231047180991002624220270820359072337163045168423629921226186954230644769245649923782225557739670529599172357693772931481343263135558107874222015347831021499743401743073294304055968298452959656785272891368486561647317679763842095373492292918362325379584496830013165384700394647096124960460856092118393049883115532412571130199453849738771438440208691244453993373067344579782633433421036552185872088103285135502974648696167994741075469489656829277145153008384366149217209858710499408868799388871657995971942877115318877322174043783627626314143127654635086845600518241833235591453040485384121088658406249072090438027842355111210098633837060181022974085346406904328822186819214929508649699390557578379164961669176371416352376821033558442934635933305333516361111856568746792599886194523611644026592332554138369393229777721562763266941087800720648368991351048644474263140164938824592501932808350664775656465743081710184028382789601567599069775909174741881495319788444194141202738201489677683959422740164720327694535806204600721311034503031664083399828169454541345856219941005849156216507236056141460599083600489641723892070092092533776587112810497378752563731273097069173057054530384657140850220586653906963231867927204887775749021369603652605599612205341492089684452093680690189377372000753219324953120395071289688676870601329825604341841241138004931098270123109607609196898675261396192681298061044483132875326995745004872014115337552829222474200015840737995704335083484674259291053824573690200562072831818177371250987253751158157937734762300393462315393474306933870795431361456306699655311595804081982575368778811021219932264014534313706167094567258042490324104177991650490322472969032941388178009970162988139114607787401688751021559602958731281739305723317681066941543006268084252779421938927838174446925928739724744375509696089350300030449345678258259394071873190237732739977787129244126471232246767529253821681455477216948784665558937092932192463938423511163403711190871460538069768339898450514152922676844776757016301329031576770539461673297355435898407398831635004075086608754316250169501007388740151396342177423275433642520821320148374021563754768433434487093448053007559709608612918130488155730912287919175847020269742749223550907955166485524601049194270244613484559991226180586512502055219584079492655653764369539724039063414009096536056676946423884060189417523112665580945684813507580691897301915845417676133781898449998675251120433856807903729303746658770619154044979766590633830680423919554887117317457757681055127636412540513140238693210792787071385921903609834733440627522035950706788998710953321926903522852511327235409593948731924535973847877977921388720146397602723345514478909914374807346193469901142325797546709072348498371490287517942594051030576700168395520139582278469815980397463326351933580505788784234002094417027443295701680038483452242737154496869412478797450292240380934393217122870977125727426172905521812511060710061820761764963765273455060216884976531630838502401511191851157825925876914014795421973529370850971917526076508028954703423073445441590354629882511699166871942906374579688657978448214101249485676396154470074201888097040037789598862728553638168273888667879667345578813008342691244120906243117535058695273903871539951668795542667086775161147584713538338518657953768949854730581590539390847031267680316339726722443481255307608127027043497008850542342522430889674769485596259904356795629512295260826368144489499533147564210974764159988731010058759753019566136154495199299864131224694391633840161660717162630582866297453274773537392042673958567691279354915311913047448423610862201903715068350368821191396535319635601853066317354260196342650644184291582285556297748051532040642972236432567517654202411122670926248176797989025568634711166037881478190545609510187113643329799995274806265146736513107833297386106587626132486939496372905673652020672550574062819586473288780989643891342250158625182272120805199064622141782657989812187105609777248424268867216627864154620931321430014132490511822112978534007261574555071118514017192820353923556422061166568776254702141072280528646912790620532373664764117605291799066108502706354244716866151188538072037814985887869087596814737434682853178378052776298292229460301144528136665856346232201728501259642257783487684121192112153736459417144999981241473145657431081735370110741619514510670749376355107361884968498455433649135526370131976019620880241051829701222114725079439096449911802083682996958676637252074116286140173767539761966507325905698019696042370405903421556436946724817280991658416488127605109894472429190695314499139319343853148921154210963031907434333456594428062140490819114889910795930316761155162141838745680558141108239499422247387665507519394325451770487157174285470517553073302709396036083161452172202534275837413646114483556324314911970462982071647634690091637745227333674954442024155253925916655205297760408826235193259614643833809170593861477237957766144636518591603199720643158885872160239057811535573636542178242175732835418585684039360191942713391067460659709398640054877383579882553747207301632197680098947837676477056682172772911873266829864519659574017181919583537807444355997176204638600995778137267252212714564113021988735091689476136201550016285517504382590372520821324474735295399245490156206253790958189337304618250402503751832126448710090841205732620237309235598683166520577985021072619850412325823871656277145595611989791078372980828145480756697438742281830716910189162480026959532976985633245242929594866278714646057637783024096417696484933838499547723391740785415184528112787661295889927420077859443253143843789873957067635695237597328024212985300171893409489859956839085374303504768523694723261019254879336608970311534881411421245570543040709766714226818590557660268683938462883653353216710847267910784757501215288595244355288740500447418230149996535729867389724460712641242470474990429338099395411910776227930692516563666058597546097084319040910604527770697441992325803023607430753490457961098741219606197855187850524839984684859498109574680965629060067478413208859849055225027778652953624559960127258105122639389381556511339999100466002653865867342563580647776501221533115328459745988522063706367931031296546088895654942452150321632286832497727156753329586620923724008206092908352707211208636583868758888536114951779033241520737925516335482283570809322658350793648909690424697503707105083189839391473487648076118484240972211086317286171594166782391718764498260404202764741771377785456557761480590093709785527975259925039011451772030105287457869644849491636777235531363990078182820062863345293560204453493415869874330646271098073920788587154928477704026203269923314134018434884327218968160732687365083195455724318091287703151716750071435626165523871151820926091831635466029387291692865223879562186073247064257056847231451493697783317436185353999824453882157893313365620510137839348459706184964295942575361902326688354588128468506620708396186752750396973650445908094605896263364661830987160520310809099042375177846752665695072280381503058779379454438231206234747118061130625721242571743864443802513509854584338726366128917535533641185722992286931259375465564474942053839953816363656193152203829498770711957700859851869945197167199882542548667882451226809179780207343912421983029082464795464203647310060841581904596093220854157927867257687625447557950978745824056207559832367647040730429006374329081004525327078921570317843292562682158214733102402909198315140104497032013548448420827844590144768619579183208417338439249999843825036360510609385133131397941385676663939294317462000064287760838666858770588197101661853333330679435144141309517714862483277218400084920753363145670308914681141764168486542786728477744429163938433142623285349866062485312327488696327494136775118446350146485072142250810167204115836923025572598601360632599968813943518935777333137919679659708661579311950605246962479526396517616163230026239794523049630012547038907047178533315033108803899302744817073461634052757560614276873299309857671340788196318998892962476774741694220940574436746339086947088763317054985350843280399698530017238316217589802849146301691618652262473659889809133184002002624491739567217059716409331721166360271282765228437335339565303848019530105121386327472011956650092670805801569926089649155319307032395756354566362422331192890109218931928314859802741290128049469014499216121330296982091542037078107146821196638217690068540373862982105228970514614260894347677862915401811175135144811046062588522787113232942352426794890910857688994220953792664520338305600360149317186366428957640216503324384105800501740800585228464969974628783263812213237083696624297948762560538033003647493946218268796319642972161437008007367492053426934766066479501175668893817572478966429572417003176495523469884470837411115001273566570529928052118318391838176282823748946457452623881354841564651609141279993289511615574434228260100349804480459048279556557625591449433163905685416649346542117884449210045466057646666444757370265650357060553689248062332572824257734359433732999908959308287190250880907157978241470327029033609616426647823111856687223686874684418658967770694246844841344541554894567582782946254566340535373717648706306746827100513144714716246139865277230468575092514291516988149393461450788951484925159755282127064235151649932528076605658134705814244988641895873618117905784716477504638367614079837625737859210524678512056210593586488103550249881618077657810397387363126239472625035561567808564684978631840757822054519952329426431335492722880976920995980180175103500338892350077199956187269389073227799542963594283307455726080935902478589814019743058008129627718625790401720051195962208956274524018005703002611811615508846334840961526090381070344913403548579307866453956974083310438549289622694576276052228746597509955449972119636521838971781916104062717576511293884770206159256415112323695602947906840988390219970243126679877505312728733522795075330832653305142037699296059923176246874283320847203810321484054639303770631703719112170065473779442389609262385239756117382884479828220174576811487530525842155889249577424135349543849206117443722664057022868288350205097058406715507490291190095746016132229146016705853556021846142049753264429305377371699671019558141789492815097200203482991488253937353474940549131726438017768840176667017362053893415401143707823048307857131718632743825754580109007024457329650487566425843759335551943651289229471671265060544262291675890206664386722040749825455945775517294598324360467565030494541084739753406682448733140234806543583535987256689175073563909465248179319126996328695568992964087532317699821416925262577883558541262717631348417545116588186700244590575527488249950961235381550673584057559537252543394590873608047042148781875466717821616979087584636940762258286252867771796056659417103073889358591525863666004452757827313548921583465944380031338487778197042005410748299285406104108281225103528345074349572316184839555588390719100053397035461949679570062305907624089912327517211586767906089064171220093311841359379930905920520786362623230444627925515833759091780226470366028991113710954536806897718381350353450773084368162871255471196056354745558883621808919460935261584970061905354444699864089837729310259998054423981416908455737461357661543239234972947605867651123821247027357077083330404387190039124579771266437481948875513815614999898536078823795711976629636366316209070514410009942521366387624915591952610449479233469676042663011036231171767148256401056656647289107214412337181724399586939356447129438886802682344562214706775895531221127606505478041194918685898548852264768938423461959046517695625560725303652811491887960087990537939736479744565457403958200551105328449356470409938725373048114548171504126600623939164303697487191986477505849412763461844187275036394321990650826358877367666657007373768371753728229961306937050702854052853162549653489632454601656700468984823593104171230630198875943538689577661922622722117561313380832390158175865835546822532971317264077593333913570014630328465120557652223590477078909604396643771717477456726396060598079049104642789799481583726335725341241498829303646086814470095575515671089299976507949349930359514529553164853128176621907883791523823446054351366505021355586289551068388280399106195375036604222013652921176878077712575183121412810507220173884140092707157268533752194331786653138158375879771767792006354260663589841499094222178154701011778925244888140207183400492194635292905779034365064609287067232457464654427167830730374221797376922419259502456638499183451411410070672338486795470075755187193889544776378188137351606284268182568398868329543188200918445497869125601869574407919471399099858324076625988549644160860569209939964798162996142547830976757600125030734675551681778778747293218363140396424100741224205321271633881799959899794656346498915883678194800845941680987255238006811737744358996582628589371466920975744284958445958339694555037345871173765423209750346310239319285172529329636118119700304385627613598098446800701036556733859466825566313528302403666365166906111964415359310191049923665484066785767573360906147095950789081716453025291440127628253142418802685149656922952625967956167963414500695985494075012995604553538322322501027813085271608977666609824006466661472298923448932268005767176700055198870823189087329041508896201158909477125959711896046273296121576275263562199802016764086154957332865623095687742467335181701980964477607028619782189763415925023433477342554744632650967892263711121790292880022735381964319522574935451861365065001881137219206751387627646784256770556106952535450367615621074270562450323864193867938637618068112820655694130587056713012613084783867476614825038414493121057023572531807716962516180889824005512887892585523558310668381169122985225900784209933330123776844719287089385540291209991201632088523874641283859213399818700474829717815450429660690335222339540571910568859053939089508756591345640415806766221791021227370586675333189292876916852813032758824637736949061840251743145757221639338803937036008076678276145214898111715861010525611345142426553090976687856849950409991231401283827197238970247361529973876943584764004793017141637255987750610460858044912607733870618877288961566639039157816005352111515143813087923803186405668164857852654950319129886606220287184339102415855027809267666870872731142533513918811728457868350712545287424027037532827564802621784659311719430314716160596801275892417163861022688639323850458072513619902425433080587827387513728844494074764929034658966576666069689138755670246721612749688654428270394708042598972874320431928794827489716316897065272282191946175060715196901171747325733742856960270784897281899523337782993571265143955945481378461084736910964255241149035657144737078952314647953441763312151639936313644256451774636147439316254896610803232249843706554722103559910326965521548862872923427079891332342577219825851698946880616511123654220802240211473380614228241525462785175019090655761588199066205026583183444823737887294915587107712184581376102030258751508841891633932303974209524959848824364349977595103440703851470646894990904711177373672871123798862007707935571350319605007041599272778198725313186095309542830735555447872014529707562221655363585399105933729870778060937964704452837392448454937967889343568664001304364933307501481750946776899121916574891805032316349230939770318579329453563126555467753244655248410532388281549241072381194520558278007137469976573190718837854093326139324145286210225511835079807517670880340495146090491721325227988544771247934177041543576638050716934202358447461155359022789320373489173203054824197752619687765760191273665360667144759339651354699109054765373157648349399321376231650480923530459505904285116768619831676912485516486511115321590446187424113686763193967737113630686483345671386360603476547469810549730415663831651656271214203537343503000897843134326084947719525722117910744805470121379672968147922015251339346454830610455192342130822975413621757193035314672937361183185680880280498831449603959384054332849841098506191493683660670116407387387463382247890721369577754535529976531862167551025733437585335246866408551419432236146503193400743705054377082356499616340586609326192995121311307286864380829176020020656655934465694519208527951267684623493524459655706517036861517634870256618138120370796913080138034138784516533891425089775824404175200708070710827777334747842488202211670456497761566366854154805636022272963348274494002803732011994603501538459223846383237434676970704634400663674188386150431420879907903200440851570220932266912464099902351811767214710565276569895568938971637177691351524014741314090003974488312778222004886178240919305924454254829803909103610914678945545461633180414387901158716238442122753150181892742733944216860376462423037398171151876553666155812152692712630819362746836333529630121619687455839086570153240277508888608906693056445952699925165341967601587501187096644683487209284572332568459524740385160361681468076744611642399913636263732934264306846377847857805740241440192894589500814955518238124944577890726553103899328945850728862315711608784488141789255622913756586393024795210375640290861907546874730239324205374988418092187984001769102950854728284114222499094780568179631426327281605026659421408080906203722871573771791111829787615734546962857037413555328980473391145792097294842673969234760130055768902122092638233490020086167723856292692911663217129872011809880959508453769233930894437843202477353762959333731501902415381288069756481621618679400552148594139852148374514090536883374646207346455005132435991555449862090276183122871223343832996198527825021066121729250713947961010730214292000453039028885227578707152511493720403724097923393284637987472343644336160669659772195875223583940577095171175674738337360523862238776572891130929410878936317888909363104004068548436221195263629048191464118977438571351698214524573390860683162728512072776078035612663679781783261127698992911965183384865423460063368276254145268682653248104923231017923822935927777189238823212952470540134828502223449596310523905615578992010995826473441106973887791067292243789173808009881552294590536797373525852495764674061231748975564565448515723971349024089046943745617374394832374711389090658855327673076085669420804160170076020370349252599595392989163082149653511178977548086104932224461741458794674803042682715137608169599479725901141004421744147242772360046251098587102454061333008040435758207602765198876653008736387141850247637075697962483162120792925795084285003106731857037987407876131302236426857191887900971251077728974460997726466093006514178557996647895545740176362691731486453299433218996168638742777605917529709696856326949478574409347077359731570563936008524341038994647456704684759386417887848945122451434995773056418659528007214584009005080456823864390926883656723169354821097569235749727272252264281891633239113534769840569813232897875151792136030007377530745807168844361160919876863604122767912685675733070202908571057824675482414902913344994103171012386396523839459576015794286329567790271001169922142120177811941082884134636109566898145441129826091470303444688811126253004092096652497599942694923594012859262339811492932512318222592693478637120600783500317076931501223555345944947451899928943473526924259099998344237700852673530272101751980011082839986716722101351556144347749571712720651943261274418549170652923051119384168016572522359849353173049146052603017276008085183060752606263477485457122494890615085019535217043457384207059182142470452964683120572135720633206267308030279767976672917551137290439884322840611709045160612296831213301125841362574272776369649097622712206898270007604573831364143390917236348733443628278909844763707943578495643285946714640371172700405827077708042585563419778286033451596442531571424860125368207347184316131883047837744531911132584037282969942875386147360996972780588841864327951240445749120917403082470943650107094996937076045438946195549139876464382236824299077785099506877367591365505674382204215345217457666848066644216432671621503108839387156031655391944660196425970036697190089835214125911553008698290464072733166488865259137304036902066532658621192681649055392893441088096672125883205568189378257074652568257341014764847215777380742025361820731288148112342559968235230342684562237129634287009369288342049716711026340668261467823842038234383160142470253045720780302185670452786202135117314246321982828779214676222203079153636999645631510725935544293097937141805223381687200140524817627926873244327413997784242513507151820376091143506826756919070092070216009095092006672765192616051200182267181639799253644160474554021735001915622184279706830697690435243151996888771479520362711738755628499064433350458543785408492625481780992859148442742698224709570913041745296166892843417562210013729315293307147938725374053238554986662402985299037135395177308717999162987118465343060452946353992490522590415646555104008007581141403832675437114668030260379659770055924442582423980342839350415862852925480554949774533862237686318967865875465425153671179883679870948038405288861927273655342392379022061166897369589991010005360388408923434022969360748708062319143216977194565543341114541714000698906705286928737206081495445560497756108564749231231313871679997991532546171674360641176148833637134426822179225152527836792134784692721342396866140464282208061955638572917354848962915683174508976388713333173266531941844101664801737840179168272821002987536380486321956045087333056397089021962008593472402893337538858470731016664680529501225423009724891019476104394812794277477940519065825215677380144562828770853458636353008843814527336812031728553668785248901464217340323803713471564260387957462370057123974015317900396518290015805364443380597368362545738497204504313544596485856579788309005245034344557585445504002625532368628157242827806872643787509079854250978219125075903105854812754894564988015383343479362303110395167826064220855568920164660637149191393763895333010291283281850510989590168716134917386465285221472972045491054046318652681218012503701250792485487856982155337449626029195287153147272744609943532385112433284284197068562502180102264602660998945006016622246826565456107357191865892555242098788165112411552836286340112644588929317401138516464479918240127290742113934477143011072189069285359075144743207166467675997449649677955307886227112229393022901402272897687648074186670704540786384430521665710395243312454738119607579125257411074956287791017355467463727072192926813437705339668126574730668108918600908369572111968909410054275332348233698121982862659980968811509240244036496320147483645072375080068143609046911323052765842422562429370894037475189819954524028591480601927893271288996607365216489046352063282068078434578204151619414696533951165311163243594612575381571666883289465669741561339313574555836046396908255012420720989573647846845603828972990864095802114736262420632935274307805079321980830632577618978528314550309434633726227722188550319584413584792976174937958842223341786395021425752379417364235749560541433738295005019191699114137222328041732384115040094706859113885921733166418413976267812280659293727105605051673518744340869952309526573646173843794389503853079107482412990632500563625503391754590395324300181923081067078064334666387321690535183573956942533867076655284662575131770082237922807821883951890798926630848430108583383702059405221401037043734745273569479690595957042702841206914325409794750252248337943792197474412546231691729113328516265997850446123695590259822057853442419976355400359104921049453536365407280999107353104517033281865098037381753905178181173534816683738794788978255575817287439150318280451388386060670703418414568658442602602921563835294178699070944772753697834191115539775911513350284599067082182075317166812485296783869927847716369333255869913689859032413738566149511187071459491587734318165201838171852595343339575421376274267426810182571078170334823427647691489640398065116291225121094291627196083025229595559089460780468671827263841403432699322089101166389662037518224171808284786366803458480242246890188416137074069170142230703606290830980882270576798482043840144779926643034230698840592970259795544184388039193735152594034267225473479450638014394967277573747326752064181042430160781339216356687184433490886791720582744984765687255128464137591076191364983554730298586234841908130676285701185225324160163012531702846741212953282126464445132511433376924746480650262127458895785574661174409947030845308300878695654662636852979130886527412111498609667905617223591628561624076087087044708505302928566795494020194523112572743622639860492769535877450713190288138111790992975271564281278171543996912273987016317123875999118306826495243321355233188359954437668952562835704493362286442711959269078244984157244222754776197642654934973190554693089746882275103918030289865148630571239695178276226779930399115836755099232875578816751308937019559787942950321095814529029359598186005573654690138209255426473663801085931044569016394076185433556087644129323245927826128124108877195127487602900296909756473447682790571684084378701347644406458392620535093689052949893250827568822417752747887033710636080524582232262601467300648973014729217307804302966087997119073007617442425229463445636012072528082861667602160957223891463344195520475852572217061776856254286996075648482642938033126307341921072221198306018406997678088173348453287569730030396674845453824948151156230376699256057188756561531628879557816804261390592310313418668819319422406511937616287415540155950608591461293764192344916217830805260395919347230170668888856087122464509626798843444098469125589525357031997152642709749924777619940240133989186572995942454545768924898831727152490567133385474190944470693504491097688101249177121651110879544355199996767084160894854913606464342179487809866873888320920599887171564473122946481533688649622495261040607980316032775223799645550913734604771807113467510691123742409246239991670896818747708994792261292550109270621534201792720465741847316223137272122519192409216462701542637396970567739726434891160795933004495071693558070585489150725405512190026076443346443750152135154928149888398515500685536295114912094680501315756128260758298493520632922355621909989757456374540298700391278357443064953397970571704011064678250933173479953857726908080180325889641907210684840050549263305996748046745841982084628317332141097346720494990577282939250613775301663293622800935602163613622027229444025843486633281358071313507188587627220661428162630292439790141117744050236325089954681541228399387444067546314317222496265030936245389497021238045082619546775695694369080208630848024664511343490613038359646484838493865887913781817317629790264123878661305239091792889455631648226512911231954101090214034686207011153877594187942593065785813746162674726200249669933921193250108081212375408121666337275619867874535936347067406850812623505318388430011665906702026426663066488376994388291616838340786168794970426586266861571929917610935807276461848474217120576231170067234521693410476189078791640881993756767966497127244097254905316586472447710904089598963872478139948300775308272831031403104812249966968998386522508921617990345095789910881266414092506328321166793686517284291370342410388451386292555003406957755792303962529536667966415435080598256851308441074681633661702823648429792385938746523164789672285965617174511479068835269976215656853362901052822993214146688325894160563207553890352573527217394729440860085783676893423498961591037488173708434413805409855959650891035898503832874410346470968472179246558530571930730839105038682059555907783790840075412113334329339742457824220117338307968510836026320028579887180183751831747094324939752465887136345334811329569178299959024449039716491838270481555378623503425046774749904290832711697475675602202401835783933620528570768210168021185386752638575248766151905583240971437899349811756845524902645195401125042632614325510421417680193353658784078514120204915008243832535107568157209125302602371846008257939673433769595121635320622073488242255039085669183359711666327280381000711148971421891601238250515607221255405515407662614727898431698269355180519840996077999724243075378276269035613060265015838160210946419292317182059881072497752509552029757120254123654503087284770382897321494362932421706049489713161056104004477707407018736749447714685666282072858734751539525786373387816938718713208637269236467167047306616689424331590600568205087935810381060436517399346094563936075955843338559766100815443641271439266243454374161234868775748169653809137095865657753994227567187075116031218516425311088173433165289433439678637120358641604923003743522773762957395631486957785728524055033656616559675628011505914084038100114302527544241058831988953266770324143522471764962402071423648372100128685232452304876953044462273930882113177784312618828725975215585113781779884067762514627147814728814629668595426162237620136180274850592934448171435288579101856919286388943980196524145940543748869244441856539428298709449191600319378745054789996915662670585660224557156838525011940202574277953782016744715078491479287266814222419353761206496955906802637753933881167267040087031672886463309467629551464366450762973085905991637781790380352389090577026555693670789279598778451049223814129871670049258846187886250469816854334534122928724297411669547032756680236654252216374330183495493432227031065118821977966855818254059165231915018260510516055975645221479361358349883035465097682958942181486828440027969735668960967980077893250655040071651474384917836637196428625268620060120888120434181307510583529579384515261340825571994323032596879695386574779462875216786163230017420838736701421308841112535313514122553772896822480791697326041483936716198397543755179573192522694450282631968546355816110813146611181888854586661817210361995775708816113467427791701827101941023919169742483151200944702093449490956209441488542018730152660676103680967239437364318519719332152372200783940413860496112789895843290931735184792672331245786552633993020398504276488371535939026187045154591446351069301123258906201889040022653186618664017215499451512006567424084404883527103912248828523252769601915177213923796887225305805611750791373818144333212578985116387069708185524412567041723850590507595658140986840910805713591682953294124655574210368120705086732782083916858733169672292681560055818513981489398874849015590139796029113961316177952070638061874726488666971453707227585158702029646771036239006052337543139672983106371501707902993292352791143338960298295950108881706201064514942154125988933217977657217657921748256510332099108378235740327699399997179383541828137453167358010059587273893541735681554481281463850849922535659798931707106367970370079079873512223140652837564183205470876578397067580746363378024121589042014934760657256961733099837074394065577074148028301331259341684644003971448363448872991953220596462926143752871290843971232075894741468407471027583071670100906092004163071232155673240285803894683722610897582181889571292218072061394636865482553112758375860528672036927780084503596162225327277756629494322555845917832391586974834425366711998330442458648356384857072076228864469977969869296775049407584858766486733447076096093000215070462621617834067543464360517327143618302369853294063098212948469810263064138004396320133999783575675205528477791846379950636600992629357098155833905464135697461715250575859098389766721759613167161778038248637192604291178915493884953964252669444368998830959459840195788490806219818411219850776243638246574828089442120835358537348866816056765897873111294857268755391976648552435122880105676860902335096729593644777743121114361720617495350104810349726206208490732301617191682468995068423444694994386626060980819407288599290734507548981061153815277281923470436479476657700271319322364380235350326726385048962587556579636184243168922398404846947169078591866869027944017676914685548029266771994086616702086088306067853954052791444550542715389982339820465634315877685336377973935783407709406686121646962140068668272695885483407944557556974894499925663829090263698820830198681197166684187284550992825886661545544115482420499588050069915735936637186464687202153119165345174303129986595037295912145402086803166502466555852676993307847555017360445767802936499977692090927279221936463144489167861130441586523879633849751842502115275359548451902959338214382560660336950968733189505592758932966292204753526939803928831785184509871416879368380879844240841394833828949777712988449354315252656153219650150908747740706977143783334027472029866003260781473041457857993598308429895408705782898567254757718603810245680798833212864804699326102206658403456611766135832408386310941629397509236297655682563243316162229568399762891173042391741220661865238151870168791167753798747314813347930526026697134887961589178616760427906313075173861594908439704359672698392622910587489443473171531633012939874772303750306779012335706530175562258474409994184937495543247281808293119047264952665462087032319477448327769574519439144942457663671532688380909482837775820632769291018413825290459597190917037815266987487578620633998970570581505176820887254095509936771504792681452065378651372168507931897321613544124287470815521156465899897339631283596478458870659669327423942339820085105182676890106216591171376182916992866189320557329620006365462482907956737606427488395422795111768629892276454485280814585102796253185579075222459699355713874975338147735143407152670432450665836032385227174911931437452308731531809743605922861318065817285675287856710089066723506264591031902755007275906083590860204728337907166972296384805616405871342576568085366008239928286901243154891275571045793972592068095735195852513166890835245246944208445956666388154647613595865808086525184348243653793939446164454179039310289380838219949910149476523531096366952533498133443071358716717102415948281195066844838564153854654784223883483484191108669475293956909988618990827365148050687358496342656051692789015400297658848018265179096422090452007835671587095679109257869571060408468161570935493230265202792176730526815178145841567740884871515718131724926641272161424838891367860590327096131280927303086264067255708110821607668252980044637470452552789486570583083340292926265812046116856659633125728108264862297742356965451888661521529050677796380194378668529413333464909932627054255825536903526029792845647261293648794193716286150495153393547154375606053562198588294518350060070636549373383180990296400204494558450688978260118614360008295790318357634796645161134010364909076014081997041382919773187223209622291251770561752828642938124058584562180312779530264059875258385907243495161147776176078536565759103381385848008939231451194236009395999093054178943275816764593720577638379286439282905061324888815825062027968481911748202804656760349729792116529267337819375379553884443882092961693579487545776229567183046182473256299621335285651777325827034467290244920255491109975890350747978877091906096240479175147942966227946912023892026510240350560332535137614416149882681891899024614051219176332452342397924504334613942563755579871328582146743281506230209668818537591770790621770286944089584355723889626019527469655407463080209187935999711983584864617403945723391237488641756333731463280710349144825347801546044437596201538837174517619012802886911450918161645992191258246853276792978672453401516407983855081443960765418670763588598551145305496888770565901529799487875741325592054426930308981238117278265486773771568422252955689184431696730114020891544280000307516007961150597836568918518766015727699705349533268780481120113297778362784366830779002514490921081041366569132695551341886520797233662538060335905388970500680042101954733478789256409122203928853169762703238090978538734450243761415636681970303686125124972270824445343024842879163789440733987153559734600538740261957132455533542615456152428803600103478051758712421746543366109061525606412848354728489611413254064468957032011517385183607512903193173650935993642441087441783038138049024623008025386557739830978048780909865096101359745363473083229225432413813058693183461387548289601048120387812229802434103676230262191866463474613204959421487597916799863700930461572456621983283370211272040143173498007786590663656635124960085101364120367807853368566315197861498435552924307010060326270000443211601750674467815631865147763460713956266707030203733728414719498945400262988171434374530330880032610894940339825242296518241098666357504977021356569735157362568474561511348940829892231777815350082232440999687454899314795775052572880759652905484994885617554018260932583334088446939853140220643156667574399872275231485642321135479557156285386602302990071960945612595407490526933907142111197665056594510539299525900014397203884238235851079058277188846475921344810411992787237463091701668984474586179749762468265368788787023861502386552699583816287072422257998710870933162330106463051756892332746482217315576608664744068300253774673567150578266115989951983639412418063980123143443973761551418190999630087823498389181160116504241870448746352167963945115993324585689574647030152245749623365072453741093512467839117829615495891119863664756428307309204781651191925049085187561111705019671876823268789046048050201220448202960856662607456998589217123700013810108190804948288850275156789295966424941991631239232678329497958118034734336176791476794824363279052324189978193615487660402165849789120133692385878660471963328485542961053002361424097961363212764065879843147783947669638225022536379940629733610707191395739728482769541877435085455145019459075661904718165197223609762713590761871713547733294052951669224235358629222918855173187840284291048847207449431939874504947301251092024998999907847558072649114117628652309849784763884103327894535653065747445122002866597945712021173764362181543242032328050143574540173509255146862106127922487919524168644023408054726788118364339083610766724624218315009474245090283386731404330764216974074827950696345390675957981386318930747374112838502303155922535201036015116098598797907151786461622374714508301564802548019845766017758375786773947597591138925273179614508583221137029524371786686133523847983547490760865636337252767618407190383251638584844659698014282915530628389652807384793792433577702223787819008934599962864374976901207407427374688495682269228301369756065687298818635976302314469056312556572461249904780318466495914290526457569576930769440711839308181711903007582344299897370568331883958715443067929713601302193066735178456303286858751435433942188373198367084090878650655291603184783861948220924762700328528887118501476631103838912081893447357739232955019342529525118125525761985706708161716259615205761455391218914551796136973205563315026881346057297423812072072526555514238887448807355146437279477724727725965607803814887838364367511643463324642517831256696236839676643641905611747044769452935227863599181083655795210649966357518030911186175185840186903602347845909026706831668081372106245065074430364229843001108620487854901266164616754806360014811673013012131201846128411559693373620725103487406504199353194843174634014332492763234369537657981997760086212752999893978225571788098438472211466839889977158189063339854343296492566234248250188659636139793956918869458042708664999038673591769617570022822338565039899106162973195508713076661648539678462621121837027539159752141414078098005666725311398097275126656082424060200855561097658715032921927037335824869103342947875920870886030115502485858789214976211077786687792128983754387054705499978614909774471155949971596274336303036569770868650173640002407308628251515172336432214042008308659122739823774914550210269686523955685463286978358259917062300425812958056011929005088557887435070882646204776775843582719617090105300670788480993420370971208732896845429043273123342568285789415587228296477978932839279534540140411316484013232697848677351714584690493628439789186878758948159848797974465026667241606697307852535561649629448434579857850713703325128891042565774463557677105752296906159286916412840353839664745037683556180499368935318366442580593280047368733442022453303579762685714429490789736335760179761256415170208905564071502184731253288023357193002858980860191545363747808784273750570359278110191931073562047236486658065624410206125990251457697866694917199661401421269496936850140019927496684488833802119059868339873310802066838999268132070509555808969458171577685515434400405147948247333124760971782463744031597374798094064932473690623516817107917446540418972680947739266552075638228411099262535448996843395437906452518364486959169637809134405375732757547481895777734093591127790870280715283710631013275347457441934646868355148190793364383528592876175497904902399495710184781561098775732186215019085000005747572760699494168994677843576547861019901195644063056977473437278439598810029658403184526383218580616148849823299516001433225991363168820284525101894092244415118445305439687291302839878525895392722324188283075080834219779995766893902303852420554843379079769754646144104665055974288680107686834494438464248934012813808911592852458283945336111206955756484973634818800015297164766911708037833809039110693855252770867254510493608144658238087123953094365803625410846845370852194517491798576402747093522780807051386521010998646071620143958591555253845278086214094095451551778643043204984440585877713211702881216998036775549122227158521987626273920676393194592734714777607226764439049568906806836451072901984403956416914960567459592531872405239284702272102023235076628628762301135358238056865543059083000294956526630206293369132029683022877432605476056804207216008041075033505513837058657275009735624132407236993728035192454150558780360235480652215035294468597167751558612676883407416774375940339625746171168404670882950571210250497987487228804423234751975436796620819527731378269500380918781050789028907566319290338492097404774533362110187785839472830702110809573673733786281192590042391988512887292083748994656104792102311209269364429920077996709309407215584146416124831849955054355590717367787175630401221702657119677095857429079033244881989307261026082554067088557392425945856951514217025366030994600530934269965402730640854380153551321852676604808000003922427814370532316701474763509076104652544191328335482306378680571739980425400053931679162486220364647768096243607633880925837148081360500188974086067594299553640987549266905755138500382853621250078778918002551172603636417996636702044170294505723779267807040318957855533030234517828908252666150291045552469439253127928486377361330853670827676755163070259241026500560808281826887623142439813708935177974520401298249173479901434733278106497568851036217410562201971834490856568099889137994899234621985446755187271436525000727644018654737431082917360897175958657133326420743181025308701931022029596895465485263206588206377197673810890733286169830479727694627857905307494902905365757090587122833784830483271253831313447100792307965192208209879624038339053367227001327156952821509985355901879095876678002285748805121231398970238655195230098587369320363469359874346786124261169457681844550752335696967113408880451560058998249962472035687065013216136301065313345811028305791956027603801261177547858852884410412263809091364581412737672155112102447510151871752003730752974953753285623665050627919902332984335369823057220470922870866989906763016589375775732922108151606894384994578101179846833098265949637816490299769368805118540716639702723965276555598573645984047365219159336694747749077636266189008069086787236496066285330622729914507358347001970523272751666848728613799069333791213752581722243313426695533982601562378163678538058194667401923556535696211995924186543567197694051324933952446154745409183772067099541435760659737787712543000662904447366621141666461123406285318504379796856836521098131642704436671178805230363960772975531843824521348144138140053887023538902100579410169989832393759484883366501217400809453404169507563844730328052382529303248370070438339829288886943186895207349821893819036187520535503999009748925267100567994643069293207945156349423105665770153192208952057965410444038446327622551583243675642668802660788001252051101639577633735761183659379000681966122611337668895362073433113255988742732899011022375903522268139451831837408506093497155992895699107458392781008630514668287876042646069214652564714891986154577956521522788543108848202483259207030677671982295181807979351052665050445811211260023859088481190588704308072576118802360561401191390209174671419748316796483533982851871342870135712246225926812905048143840109804872575670270323472626963399738327868088334378267549829301790709250839369076214499579088683710420819534223515749371944180837889090280743228307635206849876932356103070955962285631000764270983331262402513927573446465880831756132997544816447643549092165881432454750910570630078207924041762690567857113884739429495538606845414760758697970341461857388767275844182443228882733330476678086027926551684731680654557180806839460595676064185165638143118756692811987124293410688431405293518900158811808486963493512977244000325380669358381487583081564856767880457879490342896883923594057460331062224013200350037448869481818646019363294472454931226908708269713588605660339683990896868834997222464545563013529789535233615691631938522249255999685629037216908639292342210868708511976398506291152046653998443378046126758949937906778451619414431204418265567605750692794663522371574710187077843312321701694508123848378242924061510878947998090115531433944000884647692901752603890287793066318990520782425238904436396120300889057408009091582379521587024620267727374517823771058386533041372531273161845770634321590405923943902618374777489342913657668612463477133671217739537267726566498349375707914952335444685193883603903298729528215366390864336578099893534912112507491590438215003599704966553384718798632932011028411480227321218081723141907201797682178025099315114342669107598152755793547943824354830231656048093097289474691032410191076270475607568354019876939644684080072011343078332077908697449169074587304826478333511106989920991178239726307600469640979857123787745837814671264976767594348081173199094453889914500037601861865265482788257320986409985613124348772784830226450123288553034630802285803412962401811074872680825243313054192341030272547189707451129982179114457169920452977382654137297561760839965452266953496448748043270578486608472500571621188490367725932565983068929820711724378941134460999835829028259573700835026112145017011194337830600207653994952674895741014535224968399518224864950276589807689479486060885683273495773968721942937635525874740836693964928190120281599913267874355801591756768141937595418875526502664761816482322410088753917632480242805605244236136936712854730322325073750212553042398525991628377095929259061200761267103310142435222969692946103903573335090569058736797318462325559268635192331970974127491081088898164578741618727568142978347220891421567896110521278220490734542265741751402305394981802987788071255932078864933623320220692087224273463081281491837171088636640396570162547732318500490003846248567407474363282116469298412460785902806399972080583174249610023632285380475330396758044853659871237823230267706946970426384255232621324436276989040813762518231212534615037915244579073296043293229850352155409386760044570322919788548734363561725943516032145785141479783947096311330935977451610326643266724044845222210197929645967498040378952683232068610469799115730842877050979128079476074538515240647338765218955585962803492776003122624430625066908959203236329608044729670004017022821037829033935721176305018745971371540940415578724323843114510935450629914138970961294083110415666359213532126331622665899703702674156283176919811547515814835175107563009896025464451198976921279084833570244471441305210164763342778974835767709396104789668373808064458925027072875887591535092324355870101732033532681934920594590583793517402558187553120727508650630316905319191246349649741602171797914473282251536806868091917614969933839431674965633290181084405924907570594570704410139776029831795599332976975727358933833581037668913273953278832442742778508138779315432585944114569668148452025500752050088542805795133831703178284176989983973703450616446413398524670794338683381183192510135015231978366974461462286437988473858686532561442035253499841882772227712941146437077138313364792765174377966378496822732208409474528177263350620004160579905229454120297036199720128619777912693170660701417621868354631413240485944086550076806433088439443777996302480557642844476025801958421249583566937511436634503796559580233901161331551219060867370512109427589827864480765947897498126444291557350919575574185431703138672985466419357192565844661190269000953794203610116662762231659198624518512821312640691487906574607786265359166081796667006728435909061712276950333840314835272056766842486781435379970204928665178501873299911783240554177173687745594922073632080475271991354654186093819279499901723409396192389665718283949142313226734619737402906178075565005324398085621590923649346566813304371885342823697689100127510265716758904219831766180737959509404786087433916120904627127016453710143126850339567547925330267695337120048943713672787509113670163728716643521352595949149189478112841594817422087372803747563483522847592568666942663769801330942681794904036861257997439437458089000373282251119140342485878976334933789916577044826792281465923261409135349947533789004993643347449194353152658880324024089149750143444989096941646946314304092128655514933239338122883614728468676923225616393856520628209498071939281307608240116122107058124784982087886437156542264981213295121658675753831950047891169952503289152196497966749107971633782140645295176279772753935957436237961704868190760134584882254758042037020009352764865730521157830951051341975974485705354556735335009466452346688602764067848112963405428886033801284927038873313046396744701230644554119784612196597983055623856268065906163061074715721162763821210909273040812515852638176724847924013423668998617088247697968189377609596356682651603442451039957576526814260944775471503045215711769383581523792410595712775643632369588689298551410957053095580663827992425398690001329584257265042969143230863889652183660819477381957548073361121368958863865850075118451981740227249881355874306494619439516538119532202854129560651886808268225350099611844417249171762658371839031793668760618078391876715649209176139704678796806609765037543265473817146869715985772719003035127291170377341149120268730325238508904293911513052435310485843637996911392146911398057243231540096717096458938018541393846716975035265462304211350308127806224642854964900398945757933086194278866351480623638526328306493006192882527430965060274664158129369731530997701483692417650975781539920125510980045857019357560025367303063047421120073356972318609145929837250849412509423638752182017538494376413842079062512273927270530984553437356148583711811826706714379249803000045750883399165167572704296945276603300591686171519948031339227852200538914235426522076267949625593866172213841738559530621969804467265770960923772451192943723924845411356703574577093723129062513832364980296900049666357234807483749674910614664731816453292031985752167875002260039578304655099608415358920812070712811951709495880489932547581673094256230856555593742282423702897102963328704665470106343899846762275164620902677874597826031588131272952882907035716213153349244580882654670956351378313528320548974764282508307332150209776259026862329718455545191545420725381430643543438306076935582954396593254116520681870570807713395778164961424808795830851578350836721068120172588274400008896546119971342943789832751227005864854741452640918323277456393575983175963483286041610408822381151303080189565898668396196023835682856847805472693422281885995947456273397811339097281674818724158924232148264610363220758016133505556821160171373315009338663919564543803107967588630111190856294574018638122737034723980356560897577240872038881251058457373473056270649611393736058279289217776230253299651235694953478617521712537584378529860063016718939110199149443427776010268564841620087995210995013692849122879052670538050259613236063582505696919217785767742843631237666947020378576542244465559866061869795092108676319183478700198517155412699162123600765747979024368228047100972014526993096752417184182251579884414906384747521953077998214113271656452439061256010352896056863166623652349908946609299351200628497629703921717344546574149968461407574034723183494836947886959886651222513245544282923827668522863726472809717130599506158021263253725266048778307775574608528190705809170582628503175235610043450407897070797161166133839953229011771623045150652314524401322872221027484843283715675063826974355547598428137172076410784303773366211471120144609179831995161512613138577974996735841793506556286035271116625256742240748752034831486554306039574380087481974192673128658558702224278081793308063944144801732466153019429711395800880972480295807390111849326246370173037831728979641006846883996318897829798078508779935943749755770016387019648165501593292795659877204665598897678384076131244504178509139543977206345685519772086608559568660372154716249717726365534253248756779156315262129605082239502159421222706623177068239048250594446411885778691996488723321264551812972021936846470311631009962045586369039192081614565552122507376156508047447883223718256770640308842900703893570795879965461160307153412702889257354336063534691260062339236486839594682553217571085030366536456745097106868590830418409081712146752942579335631639562413430333066306643997905207978050028401494042058814213948861746247754207744054799953609025660049956020328849790027659805060157502791059188273177408596270054817560042706797141246785386703233877887770899337666444194374689066124361570989739284264839949196443338466635990305567761904309380459734391941786122209235910308215586480847313996208561044070240158573830362915173735888050569141458707412867634353823033893302046060293964565131826156646978137669594093127803085075118478632086583289865415456172019054527651585758026080498389521234618391696358570074879924663447066555774726770556875454301937743869550413021150401656955323195213281995872119880953365327495425198029211886549700617732387312215469041634524686887582231218273779013900339376956054864672963049428754896727162944944916273970903166797601960669861172318742565973794953985409104373096243752455338900004069129646340837548581631992473158897131587951870150662632411389838517017834505343085604238393017927003973537826892891107644917291652742454723004356091866148637774186784103962667715394649910303536671306272720102084297671861986377675130024131496605557161877840565366947063375027016865575411895466873592192251721044140397811780025152187566984500260298613867158689815400461852304195275159494794710242701337041274791231982223725420322862821937307851970885985764803377389230231380113758990878457834148625846212619544393646424297195811290652473382983156713331605399402877828118922188535713188733785576125387536341924290246277025682550942463575896179181525891409023327417680718254870832495618890250578633445479866254154085977257935950716906660522434320006781746011845806483379710302383709020259267652058576814788906338540576655118002238993742650827725500438890244642657795155323989643705463574920451181848794865166800146248673637985322426002347061715632945958965252621015061654020047923913527745118550141606384941255779190324775121680085955281969631449823017972242491733757689476121879514839768387368994414157394105637358678389058586547238887667651455911675386222408305928855955399188927943356339726737552888213179889897869622051932925402289241309624004923539748254325788300166402463801929759844003552575651417770802303527919121128537549308216783270905648732587469472753166118775460788611389787742427611181797337320284445644009698253123510903117343436565388419789366533740346016318053976085791200914267872412207354046203429057265345172860292035065431231282253903260550224742682748816351536774564505098209055489346127262129349361826849589361730998165981443690795185935290770119086852095696254309441372698660447444258965396232460240157475994623990482334565273134819593887739130433475539075707492247245811183570077857502533838403644967525493856219220023832480575110873242709569432443674551177297319261081485115081204230676581675102763297343886365509289872528146116365199674914232990522303439918736005158693770077214084226146768472993015449523681565324030370944513142823384782681328805917360746679924728230362603168944729027064688748365995644753235473572144315420066362617191852889497659278641316873227360983626269666008494375142268931964849196406752585971686753061481570766137829438306126014699375877965287963374965828873674475863615147770519810432767211639519800080162618412542171510443331799671665431162691464885065345682998042920311893295012751931668204278969718602184876558959655203653842971331528845077694778804477028415087001583043126237460156239808183274938740603039840832886717049560815060862773206883140559294498022383034985574970660974621296071227834742847179241814257610548206593822765102309731704037445341707124615087716975487270907812405636938026546999396655434664673938217101866133937370158941348339098028618325770321380751875784026106579297064714131785261016942342667209292757103082280736434004078628075906944182331103782513599948975363206078015037525964288423274427343535120593865494470300441428111852862740364794056889120507932256416377452901852591509003401815377803345957794936142348006038019720340877925832660187921884679336118143838292981079339498165511748877957743627314100234254663442901736756363125661039632109732199028085499336195382271452328465756944607476450204864551384140800504677830377502344924225737277179305415177820499796721744128435906567648531487240608318866725449479111585526137309897773455286329782097330195157680778248496920861465154947858343755207167266077300640091371416800497187526246586115167449409230838760079444454809877120896992711029794766773457632822088443149962847959063556047630579450846860648233940527866210935953360320487259248264763418879418928808197328562381516589713429511449067822944466302638070744918458257182635627809499286469636617095069607778533919678049326835866978916516259574266863002171094406398478093143160033810693469961997552221871292474749407548849309249394983707592994455452962769520417096966604194680045934076632324698532055385616025205322580264166804215240185471940692882350697112579640054938657354701330331941958554662979901962396248234899262345973707921974551058544901922794785509938343067829250107135690837095297184059734614828616355643253883730192644334898128495894428410939237261185506106397488475098385006641474207269769209868245953981388509655549330980969205640637700707116892138169422624013035379094697955755010585403448701416672386791945781824988617409608768761145074079707975284413756646378013210541299485203908226199473551107036145479603682182352563337534589276134554365337242739033934336303299724671283504232398391632879272060748070281914937197540703993058165540390466492458078529171570744695529893208571103099446984065618743666638758960940960134070396774737578370899474302047796878235861903458122535894730371745195470239663514708928245794250847431063559812822230839532995814009319459730397104629915460055516960008734338290421133130541937688209056005127775433834916189165685695645773787754318002652364326919253571156565575368451921672030741995702784300102720430631701354269530423498743108155203768568497842312635897167209838214608269770297925077558956975522299049930074772877787968188302698020542693228861443898040666631583382500611030633053858735867384832654615720460095421238685104148072767109733299340376076887216770318609289503157298722297871182116755103656794921702671347816987903091762100312278049656890064064539003724253790624923441962442307757882670610886972729438073346199153611039687541916781065411223689413520877032266168508118488742968342615146173154912962114182590209439156191108155615308703313463207790853674414163278127281901141250745429542764088578475635877869251093390913869135982833459444224111059992516228194705350841970649097280646050678322687115348323792654436531834200577326571187474337261691890640969576137205864471771123772179308192224102140093580551826386169765265017314263444286808613649303621820062511877887788008066962671742456338333493643910945901577654587398284508581599280606006327175718922464851033933753553171911462715562273228061164704770468484722286557167195664591513867681897717386916871774484864369670778203350330047777052926176546835549244326929507299898101105801489641584595387261144648236106356778147359696874454902460251481042915939764480443650855735741584637097699889674174415798426485201184743139588431517331319823031306869566726911239046960805621680221696327799991919798107255959218809447263398783431437213163664495637731453872025143830232981716331851217787134523203237080967588452576279059084167772500067097564393808338365951678840417170275779960792066224097008585664064600285601986636502031974074112220245022238438762909314577075228308185520787989766983418621627404777620031546357624120042991442072006615335236314156022875157495343534070529862397583715082854547610103815334471881930735503846294748992171474138107881758251250587435653494784245106991410471277116621644097766132869067720336312925707558157047467709352023196450741374729806291632622598031794277048104034659162149563582539644418361090922249120164416028696603396219819475972719225109434858119213930361722367344565302575315974302860641579654407675884902909744891675303904637143184461244564208696777917606119958970192080119419989814408581590213019489719504586918666932360583198063975805411130439964059019058159014743725918595935706337179132974661305434623667000458042385304326268078351966335192597862723010985614517364141113920291413173402958193812680874049650602342441967143367241265132083164476657783286929888872297624436741091884835306410676652408559094982691837304653859089730263634623400583609167799797895304283985481017337951126914411520310063154885655409894437145781497587772898850064066402494117241433141667839118648179914297991504113646385409151564311625968617783684862560543159552671619158994929914944013341194792042738222011255054091736821748580926750293689091106006058302998178701791488972714695773520518009720208437238796470133472301115005763698107139575523963569704692223183832783887633730697372445474231362348132944955428731146078713369398209005654181058483922645125580509062075774892811664558167277980504257470853055904401609898097572806761559987779800036432027470426691964016464367313272814414308815560005146185104518964602556531113081972198840227809190490892180202386258581551512645514602736197931209465712958665741295226912459909011734381162744004666874787766164885215067673423917689814324170536776490224778208522061999576241371480962543896186741775745135323559204774027599664626123193649291222495174657242543787036030598959178732099950628044266446190911088671125291999522001311273139280592735438105873058626895424790958185043889817879905610455973066791142609548288848681916386250317002934840917042780654540638630241147719453026139584502125969315808357133652971318671532729165166119169997064984820195924431244549317076450877116295188213045500764101320412000686000029037381025481820931102494184306461958351444993807897835705142339339765450366982025277776989052279765324919979151331647843945408173047481520435077974311113524576036426686657875716848328925806639637413942479086360301029172056698129132850691944304948987838026602493973000009165181928512215309661910381224332788419243920172815732292312073884927854873159767831532385265998700872843484486463631661085072763306473030304949809687752535370421321016478432502394263133618711063775939122840020817310992665826701507782958831061044778475894134457359599827748004637776115150157359879822092132467992956952412337994241618174461977967919571765728709074401657414699629606467843458478285919691807566027983476768026630727038953473414741870077492877407084698180873710304645423978759539506349851883654582125879019370131818664861454800130155710945201522499582781029253280266786955001614823468674886332440334749474172038443214273145118966662604958475679013684562903363335424364006627612581755528501177667016716445770023180993494124532476382653467242430022389491872798488327980896244092199338470108922196625692906919806095867083084924337224266875022307169737966779882764128895092868396591517554019339613310990764897565955730597919159100876321896376417466940219092947669697860299482937358087715295995289519941990374322973056309496812190768742297043179378202659251926013250316299120247648599350633047155928188436469023821245321061029178155984725771825665836292734258639871094650460751871373694435781281843122398741025702356416862056025825003816500705826130186659241178843463182454595549620155408252657880789791659136076305038515673497654338100469208246032292752823048501235411048768696647720367408319271210956521143396731838903198258650872482279576831212250509426270093545594617178559813855945475275475579501591374075918918581807218413236495330794000643834579706061624763874849494960432619536242141771553623220777002816103491981955175757366121088932836041369305436412160432203346425657442798260652970494720112399505127458589658508101824537180262509226344082754836133979975044695544165684913096688374750088932015788626522443920736843957306812285845696063438795716527269070019464756599915797895500741898722371658030412544344583001722969920337045924234177496681179569995330328231091544931689253300254524254460861928261650438978452356766207993559844021023753720768703011682382683615349170650833355734815295151057167715202637179115073775457172471723198209155692758076408821355688796821440508609750862497443438751569294507674739963076016820920336385408831052650623531842333859857225093566172090012700310440502607658741338836856264099477652238360707174079253191559175068198409425735919351789858712883365750326689628680732080567474314270290219857723413646723385393705527521698618322829044709316973662165485657303076552140994871370415776382781803456050533009381870624202767670864269257019967503934540996014205777246820597096906103245935773347176426014528371222012279746659298708534866359652639326491078112982125483546963461623608979433398294603863350694570614366702288561297688915866003854653398311629120084928508080979022267126102366314122413267608259891867181651653857729637346489045257162609751777549220507937095635287958436291237481653183486183574046818881170060620968756594709222748826523099577227518660039976407115912703986582279663177420443119565725154335181206792208099665978440247111289376023844538553955303881422974971522981293520516885726575977626450357271990581945222504009398234391757678329068704984397917235918672066950526882737754186139526917641323315523186156022226410905798454023910462635586617094455975907930375186136274066115917866073387116912413871347389226264774386873012485000652819937872117679245693475453924949738922061186483163574301781818692339121435519105896186767352921059050306239640248900131372290182200257965992475096680534012096093989503780403991918299937457963947683234969727989502015715079527957592830148204116545935365409997657453965287127540971371712552370548401286152957665548216743137182310439535686889768362682189408437690756181353892397746304921093839249533248471143994716901573510578670162820220838962831340122341244162396399259389365522208337425182171019804871896550474728840520749491338610125050807204649984690406500288803932636580365056937295050405259837229888973022745507091371124570814365304070103722137305506013471274295999357801785817783433804324738415267360595490755589050124493492768687406569814178896885220441000450224002332052772350167453802322407569749178545171423783208116420741019525254123434462123367992667275418640438378999399119855463792979068001286941078872796155312200524617118043381094129958013926615183353891370525250858494005126368908351387012051649052255914235025155651237962851701988783234469369489792311603414226425911710396127355026694683410995114871704173335749409451778261629101615724710260982210008369835256180848816303541655094109352258778463974695044614522156695269495314166439599683071788736873246984805006139174360613482816646363738272049040759530888897857778290938394608718130932684154098342414041309005033036891535180301996266945289823674213114966230283898960588776443447203340420451688677189271839353694357817664761484162993378828149773842405076747810547963450525819968213007237141446709211825647014830043894102711432469592297581733250857039019641271445734952574587648312772136379970020226159700041151119325690532795133633682558386156179921651657510551605628821854373613956398221665646075940453316084029184439516633586681055614960411921489015979255082306348411319929661211182979359765758612741500637066362975538991361941232357929459220333807285309787424085357252150905494512227446277224287176487859637302370575146153485002837078206496341445324095785460622582272584716905884045572387887562255649374667894933172548244755521644339303502757545907696007693376850669391279919811354116179923964704481868586230592851654516112164397728540120386673530164827889056982216237895914386714204676311405473094844760799302045017952019727857445104533764105093963461892035681178690857749857206272689561802551673294042266667358639393511915701193286512573000411911944522126149266464573232689049750862864583868573299911517207349983603914969267287951187920069149459236115934428160248848385075763951592649759983727674545897811089366565772543762991446815094296569174211567606654629219665998685194667973037704202554671259440772337779595381830958927172343728853536185974846447185319134666142415814014628989713570150080209531629004367276083974738756624928197155582529929986873789370182745715609828425551339382542177367943648239025123370914843398755036547082793787582328193269300543162105357535544673313638542579662454495504008433433930791853342518536945609304791860670434959126516616539405905250740111703834958507103308327457062586485012813003299404379190926417192019488114847055395809109661059315001454903260701809452147439172890687614234634016516344328883505154342768664013720749559758185278699264091431993786142801572025034838649827704560108422304143067719960433026451628518974322896702669657451795687502993272237557437368012351883998704007412111950385094841638097259139514802331297477876827250938687232393411663214765523472976691651302868716513127726431062114043976623314335973200535060295669122303601048659581682613266183683935947840047416996985921828079039497012723190872674046212707242430711610497201941656148044169132432619781133823478088532547073497010814522604075831159847399239604167132721644934885558488116197576781700505495755819254337558204233601909122889897730011874313385450957743645186653071289427661930668120616215718618279483532338648793091740117575113144083736827036317079628116376860495080974382078176796530426968982183627639682914243817481353296392706837873609897681099068036145076290681356932507839527648999839143582836016396850165568865638820781351702840553479909227934154139704757695215965082233499045095735682821947573761883955448070028885915172188421164419966214052781508178231087726105190206572512139916329979182465124761633067529911303240198107197613262897044828547317518846250579844475302779392029267981074876210986500559263236745700306293427265210494882841413879427289270516014053450215178880921912359922589715486839299230838451670886654979916007856021342727842682259296223326246890228205480130948406818955394520408704491857555287331629188791222726234422678477235553081390616035399977634442142706601095183548843891842079470210453347171421912784102675675710341364131946304861116286216614365178156137590710823775864403944858778600556282709205090710472431475570477581895575249200046860762460055635022428743409537945617229933943390696749077808722106456607039839618466946955228684324164327068483249001208065386632257020067497375224869420073928992901619114211899359732229181662799603119525599795380716293765223543476482857044152430899622588304771846440995041748560792058978108978306589398916509212017455968691651343477968416635442586711806231547159288205417382629751459661794065890094053328533294715217742499206132258092996057692576196845276899831859561909796512289206796076124036608432377193918057736054438727166240731839911191023337422658667011818508211933945386865339382877841995988326893328406945981417866181349111620310962477655167897656548191529473654216524056769309012907143673067304530723873900359253432003019217712877526889796345135297628651091802258375352095678837597413007173567378652784429608552660299677682856836721577594653436571538016884444310342845015418643586748810365240941811745318930732910284628462276721389349288575931788951144260060095705890960327667720450554766887950821197052412359750080221227597740945307188213332905270956759954143755915865177161386143629598372386734946136797425844801353683730015344040597690816550295295185808213889389959496663388959380252049500866030116163716378480508977599805119083113313458710379367359506256152132726915826206404095494264873022872942707277427949606676920289780570453932403357667352847112073657195717056916674073847204855553643417451945620949293425266200537547503230767858394061645242509064388320531864505807362789698625908191778005088691388561670889624468642916125947944224702143367088627216970650869061191515326824033367834387436397083081548472161198453169233390356713997990540807241093315195163631375483835521834484760232411256994031866034680676518589532345143548038026110516523649247124189963107098195032046795829472224522344937314610284412437643013325242148154581353596754660411995625723938326147502883853462712135227820538666993733595549506387090290400419645350526974485505855388640486621889643773199190491057689996626119168717469259285450043524543606799816132060785412583614216561239339724504140509790498585266622615904529923306389095621111736628184464458468820767617502503627209673972687126926192527296007737053181788948745202781242225443273791165066944852743424524594832167959770262746950138691317102003375827107216652613685312950327141588880205535541504322076901780646821919125539730789680521474806062368377216157014833640264139353351875082617274952366245803147774998480923976842897981480232428661042672577460193738106206180794159059091310309145072162015081948631478529721659676156965041828187658748594348966123571760632266039537041450775232876415260646950153574063582062456047550833611969178583296552936499174276708827736682403686151030088851207209173440573277403500862832255519948102242176198427649647772805184863464345991372715088972405112808758551554409776014180293002357510570260693023967362027609827266967051382044138837696445342505988235768492613173593387301051892575389116352192689057795405359130473111393107310987505882759881258538844124894669111131669543833485383111431444684021405457712199988210007736410673051979315896333362295496115362210875686052253163531053418916647738466532239285426962289349758864393559867135035770767106518712565746077568849561439845950981432117073120743943355074795204817319452010195116558570403606465564782237491391379302625832319240391324904830613709859456371191713306800503115483232810100658546946737095999483749021873692640615093372153817748712585852726284381930315705925157668862324439775520941393332916124971823450148312341096904932602671793528768185494768944058829179059306564405534053478229955909279684101913902659779325750270593217224019226069977216991408270796378124627821363441870584668155444502851927746138713209979965720104190087083468573168516670483963704455288517912165562041933674412648062143589044148318443885578124482781740178511099127592075706310992281203261062406193466122023104470496966788096724539873346742701233044964340726858472878838397103592921089696623037801545931203153596728014415617157713834150156226808357814195183593682413952501837169699988691202589132486359590141150802798762688686371336910724267108659751984309464727855722521003036695645979572414419268907265199450894683841012155952094621042248949776743330996961417298987118462869204323605350168350382833407293189768442371670686183700844701802740048332636285318241329015939626297695342948878870159080550065086233838044658787027218263416057514103143545630815119615517940001055471830018422792632348705208478316195321855910941586300397937390572205368488446663964972865181017884884971484994320056970057835087805954305428861905339737020072517730111554271873118898663468350166106185540637575236717346224892358155937973055414374305083300361956334435074155524951551191404754577524017062832185395839793139748273689623347302487804057652968140154523761716374071634543091868310782884037933050292388393098504761448071789084421155102949537904970070541502742752948764774897312940106833541394997735598347596009705000223364566322957119040526946750940516832454974112712260838111863626827503554966219544984086444364285482978656108291880400218931908702981867362404564658888761285485880553684499157546838564369182552436628410463939737984616002568755173216524765740077134532198045774569453358603347513914927743097276681752861810959358753601279153004359386821975260633218816736679485338138449350954948239513416461807230818557908510076872917875611760906460405828434153017855178682694583557041903569083198914067310856071144066874390864370440176548925208366586304150680018781302357959240743495462309299150852898230366143714529559384021702645994048418927509977171153498573628463675234542199100833897308048334750381671958803640514798824589336087383910061580634351124987659768432376672753858549689303338209713600856507158190310671688763019247159148173899980054654219902812008101728647381927503115844859516849812325737936640516744074775703991592111396496892751254825410767119456067652823044815850677655909998667716778849068177240833106038221999113919867258794301135693568266618108707032755169763582038264051909447989018183845250831231396352689861997409537679445014046535408886306649155999047204362805014705309940087763930822132115125451486359407254039261649484932896187601779248934284324370724601685151686444892470374629327080002223674348185710779292944286840962658737008644948979586877801480469751183742034495827052286042620073511542305725454055938476507681462889025833165606406734979798993293624364637915024626740458328263128062757900426086127259877928187025360084114979808015812328246735014340294293473152971823249298911186125319551212445583386757162280322843850686365748548503741143467028908586435135096253657069657755177854713578290389699562778924001757898476246357685197071581740215503283547212331824553956442497500403379945329124217589604419869766957965237174708164684444381854733139052813173583160373935140951340502840535215330361316816562004440814239797247257670919619098323180566687690888538004715902082821644755776411273659740192489195308271648971591823957298329128067303453078264852534283541208906915586954144703185334614740179697188347183898519133928759067753009126871243043436044717806622330863243157010430124076533348740253690486206146431637568361847019203663659182468269953598964301285814286258328801919449555871310328926999450846755169142953500809211849094287512498887508420708778012693133099288237117836565148174714995221977759294465734956507161234441021326121785301890265883207845713686582686707588112907551489092366745626469634638143301370062020725413553755064319673518649286122387394625773319381451264154335586248325815636530450980087878821569288073907100715222818758621178595669287123380831069616676484611172633516429511509282291069827459898121649209819438178107482958106171710239609899048153615321126290083447425175351109140222809200383403514564116430084023155125402235442190282663625369855824443273101036084072450197828250141187726673965049803589388091791372924572073595649247153115131473316073187547523664973856182300750305870471427345313540088872548742045024100655809889276407237550066927914945148117375626083218277481454247501366827240438897869154630069999801242430094085302826414158565605474892057223473610731052531094906576509512262292487406120160385885407132145956209973838266046620996490215185837433945809986570451390034613908865834633781761578451016443701875421447498033136251974837570807168980815733799825002727534720541654831702518071285184752878330167500182748647797904967406635156350154282498409848917437884083057440728715983654767169727667671503712938134712003217058251647852390278559882074068125345033343481652167325702087894568108081648824264572767036453400261141872094092359121857415903560435741772220437103405775632165119847570833235258271692663450533746875600820023507494431500235852784177685896768341808435835401683992943962271470758802917395852618232303299095901120920931555429544545744122974137479234022247758821946504733813598988015560039614859423993154017526246863739617823180351591269417243510424855178060160770484717102214457425041489839351254658101152165087937732080077462717249101480850690317151260570921763455042100673037326256966870311308050368740323203461135496728983328744202562422213617454449903663259209865538736912991171023502100817418306472146060472478903552093347674229093207537907112805523980759437107287985639578284272602802454849793924568951775701712442608171257710546259833169772944870689959641262832687360988589375829964814308486225965848570312884306984116140971841124484765388356172945670553118911827507429032791818508621940082160773035688706782479785025003901149869160687798593745995503419116197624154962102079652531850323311389991507710584821208534594108881374386130376797601828331561231027237094143722563374026685066224831725427729521685813262105768339894366596094490750079020264739737626560687691747555306325266355719839236945463553716459096125637017744074672090414269564205108313357265156797743956626128798590309702839910862482933397728876348961119778175750698582785003004251832734210753334473416137342713573053491495215349053460345627583184782586591964775257731101952676804409756198883232249651093555423050543830874834480713582409541087075439073787557768853531722542578800760212096876592635316471854381669542308318654206959642985857564615589609001889066819980672739670457703643977092611950633121021666902916476019625248731644301819871485718111323264403623024368367902191959189515508778524854498530590667030333355804472971534837958356673216076099354573473961187671344285008345295019520420012508944974415519363040508064502004121538924821052386842894079942870049697475938881219420278135975466411933485225163180994204934301689810293502221461062450686971758088670163053201803047764722776302448363947866780735103208830456359037550493730656182298327844303404586370866647034324456441033548683982681398860646838648449552427944536927325755919038905484017748860387162238701788026612193228008173501134099464745457906416320252500356274259280450441465760506903216578783012451228192720598547292918050806749753825820258076466707367773209544624686321313875461854393253665832299393843653383405881649429008093088959121794864201450935863609575408908406829226751849174237704917571954060100267158027396386213375671372447617339581459055843209272335988694318709006910789671790178613954120884891353849366769789237200087310193750880195357135142203830018598557000433863089081048507180714917407768765475276816369269472795909115833194305265185282418292575440117680640413735517752914328155820942171603965222539654034948848224611455300655033123549764008256761172481449086852721841104611735180872504907730897396347344323801599391115880922625126069983004265794160551704415237508152424568046295538136063275308904421647038778482572668294666221568683239477808804400398286934393923843112396540050178790069614131524244313557186990398842500976964911002213357841849436612023298416764524943470974609714064224151657285990346717996751919705254854824731093895004802036058967366319012768289423095278751938201867118885222488245521472390781035778608028569216128272926110778166914014702950287180446312499261601932396899553203010282837608722764286871924075379856735497554379267078779508355558341492884621011155744682200089228331794362445254732189717430228321355460871395450306244881479259388277517690146560297153603678437900810257971787891576696534338623169162936433535190415781343734271589425207158269844829156316943853145861929368209401128596466929385846408307547323649503664015405695946605286292468603611934313811291410605097975708844724682253201155801816510859449443629561548276687312298760700088258602833626434618180195921933273949206587607272648995426012637606223166134589386439953621818054066348778481511365551667338670156199255685226983206701784608486272982621035713199575396425539318020864886506576220348182909013187689645850185427246567874386077469694683628685646997506315973805385694964047203828375167119597281247094955942588564122578399941868790861010195162007892196821088399219348228813682352129806364383104938568786207643484887042433340759250770434389787129752684510033308904814725071000271414628606446044388279454698048791559716521897520610021017845140530414264243452303304985394946058014157583370499515220294923806656637940900152852579337692302757033458048648767006579431369771830589741356649296573023088200886647121543545146158318853147038545409040563147016420460761661195826907688957372941673375340976945937014520963186058613942656779907959225757619628330934924935121055068885865498988420400387165866580561456842799582419637073207969168305771514825347816607222596677228971061549225176299471517607062986514345698891271838275135323940905152799938858826081742729784556998198380665579305683633895983501837742160096162719394213693985410276865852756013558014832010723396153931219562339526881462723083329864655180193160533774972343840582731155393521986143691935646453363839288645659768163033910497481656654825899562175641802802285290425238546154078053174693766726628888409133320597522912812770247538788822105827308480530890815879380673390957684426381540158655717820800304832378267392143981903936482119284165109361594095922346487582210930963070557090394776473534425369490907058696014677911795368327280045621584211098556484767444870199779441711762400339022603589015309094033321313627920125829397720493078018375197567566731119488014400074974876411433217498928660484188030324490332048175403001279931873291164456813817752639007729749704256511761140172441275622089938076965074394967444690926309026017655093545804355570059110414789237670771396383760857345461142391114046531836797865973048276821969290379217345881042819706078693781772342576540123534538306425349895086253787284306054021350371922674690160232052640470613749670969073266208598935119774192256272175524584809067455362909933135374374092785382164025627800701524010115751061037227195943734202012105194789462035410837003945208639454896228813099053843592601086829729777148093105489197988521912263904110511722349065649691553459598838666401434949063840899000994530939769682732647201741969158083797433851110053728469193901843914943283114199295495290178060819340777984696991982818337871186491472215764924724770811389580233715824005571113715131264736217451316200173593509665915639290575186405407741014324972156676097750669640362584755042426042895698801512640793689195781864779796778304981104207410066531086226331429962800877314301082019532018026182604216516136078042998593981561851776871880427510782614905558138403073090320420658066454976405159868886246339798273981886661894670443238504750776230963440207954528299710210747093004756183673165255428789166254297599364370625479827680732288646409489613400978848195674864878062133628398010747387945094856591508503062191007078390451282376447430216278094214421656575648712638791750521679319005289110340916841117758924732796188619276473740681262135117841196448230463408423863216260457657451707431629524485941404741995618564269524267352180353994242112542305987965029985100904912854652678031872820043148576034459559181045813626592359589500859920919676883674942066735910682839416116933988347755567682741719918034117205164358335731117760686074379838609951845166935737456013069690048015348390469624923375557691003739425309894646295862353539421974113011280227897118230441286627086558418806474156156250165378096821492965753426979863385643723474604905584582232658657393989959760352759119192059727521795704686807001099937961562007880683947152039084418481992689867322602481759836754089398286498654101139391792258855331021229710960222478835353020418888084238591132302770457713920633903553368267572423051398153291375252239148062934605714889888714118072673035700898120019325696784782581026464993830163701730930341634275549878105673166668681710062845007225045380925238770547748830377860378252847802517338302576787686570834183580446694686031465407223577843208338560200765266823985258879246512769906868728785082161221749564874974750479026794591780973381190181198268876881856405630225391711129869063490347150549478693307837391452817168269912686117271266834336034486276505584120316657180625397233512593620335980574200164033655994757630629592492214832295244079047654020046936213662788042046007473204904204570423701767288458222184307900212658782929065292889556456222607491836914224432550983028470478948667983125544813914433014278301970014810009301580058176163652063773607897013234333894457257688086688170954654262918094131207820906468465285592036532018053724298702824074084433279381996287636532093716262241591906648938193499147585002941591852394770038904646026576034098723123548637010582660049519108871131398237200578127797689635832106671620725112196038013995277300942008724527576672417273229939566963578501657073839335318128541580160983492875297862422116592961478216558327920386009730226648338783479308215872417487678469932419225811536364306903715744774809856624192238588051324099915219365476138836515367054739118983771588957879191704757971844420039340725318540940478193128834813933857656094902853379217694068714282189655134527101088243672254431305781981918075188241315556145238807283871317745771641867046036669900834688593002065636160619705772211967899419951117014841437440207198280001980585019254886270289421495094850806627406146117821302676783440415202766243205982768272553719199842702513505992927552202054302826370509790548113893635667189047946652631294427489392241487693513118142880215795650287726240016288845818753609673671164450746674677686637542864294243370619871738868912655180813760589543765674605676474098631053545931751968191275636807755106376904116634055891064631421419980355555102612289235912374139908567850945851494185322007414208083438522159532054424145779383882917125181194788527545320162488705027417455955747218764461199967957739701501407653288093782349319761895629657723459613996365603490831610504784174774731563202189173677987227368428312679179900181239076168804056189539389316619242514375778119322488234338318572947228632060792484819990304901805896789717395958650744595584242632872407422723175259481247408922398198588651590394990330941381751132974909405509443212583139145761763451226772561683142166569478426033805147741968886167330858029627975947505790714977357192603848487630734335981087568913857818078553434860459454602896223367087203047236525785321613389317620657307074875900890510793667833954015393834661248968742944240195759429621290297791173754508815071906261477248834600217444395616557542986918882034547675081214808905911690173142367649085704711194243987918264714586438191556341354192210127743679673723282536822340147180551097348936731835331870146466027106932984319013016776280659025888793603266653700992369643923313096945544177847102878715933846234151149735363496499395128894796256623516068825343985816230600125185881534456854185161096791436949845702580997614736258190700293877076583790399688348698868194611217166107527157950702975949759836775043771455230507329339951460178765804886526238873714418605547647728951319606992784918025184225503220173901811075222373405344978175493984952044024597431006290837894217006821013290819027136384556655526167221897279473708905982708029151510122135641554320884922903350859658914894062636473995199249987495709496396321200429846052745333533401643394149039632333054328876835356858679570628525089165409993778109875859730748192053108334917074354836969642616796104791453345368005313819555788190581735829657206105379795763589919282197905010012460959955804664257215009110803396784034689279174521494001789732251422018951826478466473605714764446799732240021662286571752604708995597293785874174914137657912439524686802730141048039294327387843535209009093151080230699925923459337370236607533332223765049870911282979500917371769007950255861382008842120521712110750266547158848318914859136072560002299436775693690030443208679616788913316390830782173773414473501320394073087711804073558809772403010394827018105008302315820633928415894804149698562928954379016420067389889377323454719397469258020895697460474003360018995019991132192998567431056394492467705459024645064596566434184729619408372322696183288989022148343786144094479489195011390511155947626346802283245088417662177625768742948050304596631821969656857853756510283871747838006787416369697592709075488823460907736766567269908024826963171659131387785533271270403553794228837986337490124799474732136729772475351019157191717731764768937783617310616087690536278550612530899033707000366998143300522714681826264578139574785248676722759464938986665203678191754880739608633111600650710828123525248474533641851409872934146734860524194435202614736813524686601022155748113566741174887324559544619956778770263614985327621641687345466407021462854975737850405856721792197182984808891677290040394618443806741686849509763147861196170742718465747168946890860276496971051507708947559259272322547103105368572756919480812516044163454663171649722752881271540002602945365245897418681420251730572618532742753218657295540271775653456244183701510189061193368844081337461286347346560297230959943270203971966783980211923627241049901365951683489962925588043419120628488137401134804210271182904449824199074580754206619029965692146927156354171851909493855779549539369158485483312085875398010647917114176709712353282175662917173250242254863844286968504238732319319343597740510298719794487028900446050561548483920635318457021520626953315813914629106364085125364155387848004196014881326936427377242287364012295621759229646195017965646225591901094773991603576734773608621567072707770722362566690340865326393818361555840689656988343473902379719223245110156470762326967338525261683107824987010270772972839052103197631867224123855621008776174967950316619199929392944670405399875396259597016602175116412827197768226042340340137032050023118873345092563007685724490620242752989056792364451927324381433883282722331345659170684124400261713808742539480357127969164081636912123209342134157327570327778584548319159740730118404725108701337663665925065753856312427445401774171229840423791564247146063952934400260701130224669520810770926073942781095239577772526980080728192076288660480694513555538050240001852504934616440841314510870661371229175971738365414371682643136137385330033063936289483685437161680446238711245714537591282296111574487319066313468728645935213265513954602823684329318091230625145125461236223032622679675694743474412773192765425864039249014094197427755523830370080344472279338484248223031635057727543370221933509836910888935901771535693682096951853983517057143089657967108358632555766764176950472562466115971151130083110134955254954108105449183660147655537362827191174642147674201179095044846188415179929451145005274643877575486874915133706823375733704926409625171576687631591486769486707989065128403854943221168108091198340087452664423133061776746123407475854685318806010499586969012137751767691664717993535664290218284128742844765075034727836216282356383893584147182913626531672149329295080427975484879075543144624973052122299648427635642943829319507262782881609539833471046175783550370467789014127438596206696164971056649505565047250371798774410760949124749365343769822123504985848777903399879578216889058032015737378796613385316332959480093029784425673248888102913983022725903581575066667555914601369883273314343262350931302923124951614869731209669545106172548834061412316136626052229081085713512737158691481158099957287343991476736711282624202265100497239106434522657895577313276712272141963985055877330951696591070338112713578098876093651633375056210360444849480147833769443002877214807491255941091535638079458326197309554061545286534437857377407238795055936650983518209491053997017831158282348176328166489452798691320407802400908891610275754240438893035561323545458780060911651691300800941464506417877296800803055986236922464520544684067727331133337713511407834246154375136873362491841163566961807905692178931787041369373742328266196889244685193321802156354912481260361412494476474822286572213276188254885482219608518716464709582717634651589133078035285954091024669940138003949620255023770091218824789137087373323908462425251015897145462765377756207443509186702742435478134214439915387174838844005557843785473170195195451141879837951624919812454862854704500546152177355578849775244256433743260451883148373231157786021500186904645140106146800689610538429975870060974340045830508749954472083398687878045317616881324829583946153013089478911104011328226210940893344886162812574842905150637432276632016057430298273111478345309627741277900522483121757878302437582396101496584780349234448015034332827363019292460171056976957339896852877730092890669383098976780558441687395327444237317880230090860773729944283545583845054900793216614327476787592560460083053108150295228897774305182124990506250579338190784372343528127257039512572350311542418696068548950744232216083353326388136884044272330382634568305047775006428695446414020301965318881111065872471688864488389344440348227871573019726769142108995266108973210222417124101332540200176671981181475840580563257219782321647266310169313336380596217357363572039337642913344373475101135660916148055770863032334510553641688976173413466564932349488537311942213446376308812115250835840896287110109744929250248728549675873811821279538722354247349340506325782764198593430203331342969713618048037772454325251102734386030049791818279007598283595800165188092548867277798865425497368981128389153119059801921169381700098128713441004485166281339313113793098194810673310345220359001886165642086250333767170512955350439727107531074802806934993814422766758496677671545483764349670905695662186133849888670003628698406865696970951407231061637464555612028310130562582333602239784207198168516496748726007814175885750867772021469201987101688232121470351791848243371114914632132400164526437712422457048162386993045930982434821785913838117795288992786217350740705579316089179316580597272216659362105300606021462997696115859210718015912270247498190833711740544882884537203999387093787842837318839133738868413215392467230803016237110747885767159868703805654452323273277956560023737716573607531979377865130741095588716014435160072588044302035829931062012619240649423611905772496940490797731433830086206998745140916399505973036941057624485057434652634093230525664661359556143124723894197434171641304090878405843921704883428452364889346066206880996217945314245500324012794223594120516165676396546804254579652383863888264768248024712009098474433223321398097475334875829357227435343973247057976967551210500868066180344659502739144183883166358525570135649956391799017537365049614674050156554013040100847311626919120297181373249259397753226628215602193648009685818547383785800365249986145321388992405762882241338334905755950109104160962247356397460815615512910023892760156179512606864813482989883737574218667073161363870315129733258642500171352546834702595973977812711962696833551786357939946328976267564584169742683155857761634839240219999097547085022968338312940218915456141261361160760032865289796515174587115288352292337465886220532723921908317807137612782006238137791714150334936522830578569873678374765665074931419095659331967771827673308063113996253406919602032546630564021585311708906670551753814476403476331756308151241723500077411102600351699438723704389982527159677342899810415440538044923369523680587741891969286128677264404755222300575927884295503243317218457320407613332309430039713435591138249292258025446980246494769090666738584775338815924076544177499359583471344704090576128532215179489196709435729984704893913775456654391740829641057506287165329077660413086703309759701553307764755064021313265999063447661951691169651275804780833982678540656484946180044872378862195385851540326915465768018963485818096401944971790737812822121239824693879362922787869654237325770432437310932324335279514850505858758681165675488878341856026831454679625036049453450311219179011315112418559360301356956249719388511554437548486501903930148947927287475833071942924388236646792389627369264999831785553157554368110877851124765337955318108561261414338758047896036054193556638079518438925064305319587672034104224271027885404451305916453416360991532866127938900145870013391462568975583330729106974017304018571128636008260457818946175871481939561744121337768563871873355415580480286809246680767122342578779796316268722192927803875015746489393555940619957981575689023697691150283910764791735250285992142937648724102504338218947436200366074479766895046800441417494850321726859926364648511368539059625797993255036835575186623261034024383495371544485410934704864347270654955065827787114789960623638324614738654055933984282726297796474547833771563686031555079368760573905273287525140003489807957931753571170107480286618759150605831522091300956224052369610064112649182439420099421249434555057693608209017061722989676248160027784228405068477210543525206307785652643514515455183940491616973451687851259725175633215804930989322211836587694887280975082207386815694357231944750178743282077425125637065569083114351866850071028620219609817256959789151725522439050076789746599113923798826542972234950546605002555564895752441586040703587039613949791431949045305816705203335031875374354325222751043140784666164294434618565487862646231585996138139562503067273475614023704062970887268449480137047109980504206318202385786966162750893180527110291156142099128896887442595089808482285224470524631745557073483574115174716251535931531812173670134713590583629172877656708598571514104942076416092710107160708163934155500872611892371326520972103261800628203885204021790178731001107785697007123868807869351077488240433666586795259745945694139454686114770463207552674218950094352630176038196082316681603378379500727144134171818888500951084598506931312934941868902375404706620839067702128772749487491694759053083559460930006585688148434365625390398536827156542089380881388276969411802399457380058976587557982000076323847487596104181401989074267530938996553780148914926233021051385447360008013913749194083797202586316950117855979309432034005962528104183255130532507635336311599264187662066795113636785636940389502898287868644214088780132965467996902693275096146657416899776037617386219918780845716409702976491484174094291003798521564714039575293922600662260420868830025585110544243676576929329822325521750960095675692912483457193015748677481614585579278027269161143560013557604869320319410477919502113363745691789935875883101891758166564505801690320434694642130438052486306863319017226297760192666891908109347209514307188873601664345994705654770279560073123753797816373879484222677538070897657571177641600667802488809734239315853302991355727593698838396374247775276540661804152850165605248401915660731573573682198269042375921407919711040742193559555441788049390217424366190505183042569126102463267550333139305865045509991089276358239093865292732572031994356008588198089151549428293599225466522967632065108868545087347882062473884995885552566557260409595767423581805238819472249978465323980145332097716390558835193456732157150445654497819288024436782644820620846246143977532086396800516462562492056914118094392179424316841092869133764880227317359125066105179793481539867903789179348519670242862229022600252863380096426655248442803473961107916993156082263313539575703819505545585865532802981850316100772701276238537655236617947392320626304782204925040358556476909932831492608949171134486482451164216869551323752624520258674108111736615960767556674230044737136144721226575815715575569231617202561755195696866430349525890142688494439825206431820012976591072028006459920243951128377238587734563051913138384981250515122925127146396343132575729227110412186151951892157815838723517612469524887508060774460503766662307136280904968765510365905124276541511435122222622704156295992228732896542848472491088035054160788861619748131401095099945261373179949991120397478860487894848336515073346486105556609749394667734818456644596897071330598788956957831071234634489077154379496026941263461300635485479949408392728207430256406835449584878786419152072862054308017048589824308704441076079707852809160891600805966861798109526213196868728252747431654639114314913472816298720530480664889251156370332728082239030264135577290716944873791797285259020724006643368216022100828923764873245993021190398882353190172992384370718244370523614371272916976729917097362856345234048247942938923938095878578099935069424638017691901315375434416180220565333937520075284206070476433569838903975718376201581200947357952588480214758952754864470095374576410658472819148040636256104193867689554572427315158407160259990711373167374360029460869813002555833197312677045473515965924859228694894785196721540938543948556288062275640954343796177858846594314848201022201597295015556489296830769083295818620256863359044037987236782726204687773419692158066105697656230571015043992192343253928397261313327322227223496881762485091999323910337055246938050002016683498219329472935572603544014983560383315641976271393724324023665719708908130921992509175555268616937761269364401450624125444026107276161132110391149359340042350798250616621272421279788156558505119263790596872703581067804288073387166480893293488281607367883739115284689667034864051064220385738081293563194134920084146025747060031097961402989746183609765512767214776360197805764226900855803358713030791589846106667097298434189257787181004024052364471819482836374629638397464759142858639352519198439698215669484516737707406711744102640246778764416026898475608472842324363491124266547489964998865679077198751348990256114755081411288467184399103499488367177447834924711385518783841622332076980010987567125554879217141704726638537734575193077464116324466304910720429423313976124539023474292056887940736908401784018829888354830626422569943495669464599027234028214633259659814218545102338040876855125388551119006294236302067890641823188593295095374486878611774923335617659683073890994170246473261509853356260676173661991836383881630648853977521064659754561117229135146140784364256443263946243544718684881190407052076219694987773259274750307188330020376593416950618256150544250454188549271528076621737750856428889219393746580148061571332743255811158640217898313786942740638356205917481806765442301064226949229403037651711304044625270406237405053095584174393977839188103928402935438325348214688863121090345027497531676952136897768638543494325908866135383567442343755977741982100657033391794794758972797008168840326498945577104753979900179374242153840229548613835634094262193417202654122806699057692605602465087158894325546043984825019233996650125658270488299403743877207531230712408961886548365145350332228986146819514361286579349970868409403637343798481702233460384829522721707691247741490918354805177050124725165780715385898945238602416761725227734231995211801386733188916262709713014591507381973302330671820153662403828116216839359860641527963998723097292763702836903619083425835728074470894905685531059411913428926776062919923322069079402767995903569654339492689757428736725061070793123003312813326783523504725224027516873782021755982497346916157361257424578958281124709230843266522115222002769424883795142830217862743307513650457141608587159316329220567475959922500401516969198754660406818312299452569257735051854974086592608452654194082106608686164391888747255285826779669667948438152620892893845542979202965632280206576788029720271078397415592518675087917881590535252419952913692713700363055922027768624665843666484169302905687033675290557501666861908802452702458483740384303924009355090801348513070078781503182914861135880260679943371071576120063867117658937369674646640203556179086022975622331815114409475732065941581703573816788795165006442071631361671912149927438463759222330833156457025882251419735092569412283900132107745016223455859635543938831479714757029462085760992831207040648597801870570078522603029605627083183632557686636681855383966899452331294889236421780296282991029012051343567311377323214363023109865554709759769235671844398288103297514071223549810802058834569551565008670539298867787699002418914232692017010273205151647271358533587969096719265496857127684301209745098596385131692555328115948764443865691363924041702440557415625994388007130466419136887383626614864221100826363859955829696812275172003956023569439211379707049975966001438764312953758110043561817126035980961791323926458397306875498318032886912046371391846113548227302106762298614499554856625103318787378849412609584864371841253271768348009041636904861114757775450265712413881276666810279797869059112238767978407897886889217414292359615523031194716734133457943008643282928905405496381389310694401424563356254556314154696224808213862470602222640484393847430022807877502039274340322619803187811090328398226677705601725512525259155849925357468546063435054666891518431433451421430571788263334374266482661482110160332150842265506927995170556143319092598264196029003015921411662353859619865986887225160341636735400883724983249340231565930126254516968695596754310133437424239101910329836533597326835388907744318661188197160646138967738141533410445841287593577180407635405635395422203529217007350624940052400870821369259859896292625817031234316977906903591610404812362348929366434786498766641537683492009987272673152830986270303670789436574450725269505599511188870987449594985646645508240031674258856270573511338975787182689797104073881848349028262243611515655757196188356214662114180302963088696085793355312446527243696484484881602653106824948705856005688773831195187936054631110871221280384380451672677462421144569178997187344875350638683967219773569734621360301592352209731565621503882942599221483742200856053183027739618815227731041836682794148261114284134797718154404158499986893165579043432180725433039443780515054077628214165666360920644173671465941805169457375335501718094305814347145658802853338354670533561797523118195284937082831226054855587735749401995091216909827605885618257735881818870962886190681927069225126462883722892225845734383344707294521522599417560206985373691357357279877932068501186993455333436272772976252129564364705211383941473915365298611618471110115905709337388100706309053656059328325489525752860875575350676789764901885511123243048011405997271359763782331374055020911538302054657135290585862412765161850346166953550603269779288244564142511696130615463379028709169642560038358111314357691249980816658244632674450593446115390892842954167436135910935853703785680988377505619224576285420357091732320934461062797438811059528795755033190640717987593922076008851610342119800607116197899377432762850028333952865809201691050829968755503180550190187703838055620133975604821819089980037091156867947565238357467773660698321292823649002292198618616058237084803705462147181585288527424083108491193998519003697968653836316817523999004076201421546664182992026675843206523702976874780284782108552818430614885842008704645350044386974774964181463248245906755603969220938075056865091072831435726723778023769471516777685325424115450070779187637186897421646178351047212157944639996936340603132461261694237503304837093532155556470488119587482733679258152721642659040286951156567245145378721954697081608402003613940003645951488144917698145361892778644232857392529116921768832081797559940109512859546494286902495213787348570780112870757694896006850033479669089904314269427402610721052469723731534619663146813674648531795359802779058076388861621598404418525105839628621783789262075745217748935912633105009180868417682330989302182287027193709502912827705104400009352748510845840650401668509154189308419975474452510834258172887427543780087456407947981867058796344174074368230749208593725437587769273998716402727671206460949745967656485465157883264063587461055530579818341513082919363381468998701756062508840269552076995846401462300639573934541166227973308240633508474658924389201932619963607846056822488094288938563223472691271519111898788758420313015429782184349201050301589177007516260859168648825021426609152683440114413798234126089181347198957915813970781644909464843840397679995604932460735923185141877139361428782592987087013589059705131812229253877686901158299811274120679727628575660157874276408464996512836717756569530057043615402027719517598253352211093293110458817064348612921112858040717893000025054907536617822576592892546628511026106165576557775125218423481046774665950757490070242757628025829675275374682227126637812235735156887361932210722046223289458775208487026883252000148208136300460997256549802359833080483787500048489776169582134594979992535551601485076740310043704184903246062645919833729424146339545131456270302094889677528457138589338352871688088190708993782904899124800532025811800822240540608090959748774094107268449032429859580380552163426633984281758402586696667321677522824716797215944010796397953888941873338155883135573042386394393084593026238929149559490244844454743871878340640130055630203965063435034563414470890387299917169009237631521756650897437720200654504796389895489946607720725138537190984354388734603329288028989827415090499658790878602531105891538076004141543991089469753774864019296076583932459355030428959908043292301824163555127673235829711219896782095711786769081542636000590639545593328410566062382930841088943449145718146059023210762630987437821744628458218512702047650866385297923992681071693841145952213142833405192672456361929481884922194471765890065782679346250430743774738372297283248893644170228012813741699290201894328987283352029793350738113172655977484938635740586190312471748236133429862227581421982191175010616998628160876761214848284935944726575387427541750038612225790904229487294539466066008774152905221742074765635080962239683355003449301405219183854509327665044488133423617334714076231352371599145610060338735173904111323079963759647343828153612400776268248613135307955945856193720575632821641664752863512148205044988330808060982918063750315161199127928451222499912621121567541519626190035565278945501285875424508805878051704449905626916205301917236317968280597765924527714233891279760180096093553570781435162706731243267300889158429011205337693558466475421283433865413996875038751256773292746516426394655726749922744155671955238596264991818693154464759754444134053544612778718964911947057761551410015054845922107305615643836938460351975114457468675042612926436755672657171677382894561835660844134615990007266138713116363077408958218249615546787191751108346723883100579986174045888892414051922068440797315226863412676292421856334008909265629647960102850713075980105177316771550798812945960297814156148727198645844964027259704690559826346229611205496986371706739381769096294107265634959019947320565838993395138387871931734359093069836299755275932913638393706177344464565827547005927650945477078517991020914903696447637291794667282220171630130502949553830460038394382936875316740364200074333211512288803397844523074273724562587950833235599256721279497296518650234830838395424021212270235027082278695443758178063824090453414027809865903216666681765034431569375652553050493146119660313895727789958938232777040377331732841026420293411891894125247094863981398016788857671369375052554562619890473951912595640353234570245645832813879569615564857074389718153951019626173885011337526761201682326320762854033433408106938253369588028862377708578875856807637445479011744812093597173060080712919594154040126108576380499696798135391824368365986064665599672040933787196240934922789944686536294774091075163872947396040884356520314900550521585928983858966066992313553349858519277890252010663334529480602514291505063621884604669155782477211325296070560115736869312577302145786142573982931738726675213732858908809464327713981660419965055079138324303532502457453813253845348504539810040840914096959523095445693394073728790668985318681265366610279369621899871604539001933267053624142393050326633957222946654379391218988296282010824619512528063301775393254245623179478312859528079179880672973415685086174065347775789414217277897618110502982256597650958434821551371191042212202757318736599461386310201224820415892740063944199861780975172448142524508508417390001907617693021062490797050250297426859294487374156019717183390850841154349600591203679376816779459757719254690114696596538425713112231260418138094382050135219073205317689593478224481415412432324792211874461909084245977793928712720620878937423744314290007763828379651491111275791414122474118811250950167016732969386416521639960856161751600636538288424338683737405370184155194324794518297240408763831674307242260014737650112425315536111037336455306834413547827703107320732874610377568564153425825295017857626520310616806319341093807973680369415249181912043172399501364717275860110708747536290823561811504044971175366163108016725915461257433886503794967917130811515858341706680747393858322899607415485009371922571701069605783785866126836077390391033669224353737779418279407670151865548890959624073213057801742854796606296042180411581266865817217070856547008264856854626803113976299027787073796031666458498226137317713147044567034010565907334507441011644735886271930579872671919615843390499495808501535950365510061387211092422586890241369255421600328338510896703688362678892962898939136066380217877763319242478476466487943450715352080698098627261884984676941568419776848729217896433611070409003398083854790925598634922542013350264812725218809278258951816012389288692320615270261814955673218950166635740462904343689481595813474914942399148496682085629831377188796497693178854946521707875767599907795347260278061445846317230052988424175179371630765587401035070989136013992279231008301640591109869614103711857368868231066156820564223578903203636820163464602705362171415649149350668323156211251204028448954335460044509028327359803481853019283120614465438238788282584772822195740008116355919131031922062591851457585313547023748274649664333990196953066837003848171027081387149618587641935950210757096708419730123888173740571987516374093899219505277675030640860519889599515860691095419441655180439641558923946844941706741750866940001004593522036124639658174912674064315086199000386372939333903482017871211796670465762585762530881035551728620012208310779349893209704988643751560171927686260006576601827671644263415425708006973922781971539960201266172453097984934900419596247045361137129895634410258533691771574645050593388209169424994408678370667152720603820048745599359359101536511025821564436515247360879926750568658249559239280785438750838278859134590645575188418031000024369712092857303577453106697767702889622040708788571966367814369481108214135570643264484320290761914759647540773151760016387231191710145917445446228928667702882131075307359319948143280227367902492258385998932955661590960130647598987366127948356646936431549520026519092189524309125404643703733090177730453080596497737189434415669351587147901066248905213214701588166828795630607676815239127933762559282277293291774165830002137820791826743870528220663141115644555649200583860406948570265728318869310389319632540197928689999425858564578349471005440391752133465234723996695687200783480446038450049246128505836461831668176415931158587418952195838998190936282888378705888865309183368325803701216508150460497212957292569757558634695450772829365035457856830258797560912503008747412698914990277734366018429372138542086118920313689987556818985076997380007077224211154877099853657812808793982044946557041668208028288430772438359980987909631665835901124830231527436247290128524947321023538674730918627737931877839062314160530701250758875937290289223290875068188107372835232520563210576953710599028771009225282252920338456376653855178120476726085620964581366433176698512707856967377381533715431439156372560471560849042642232441249463883137680406945619419744434643592154106998171745313169073042785774531186355025953555975524803742946209758448947511841171852832561528294825677405051798999406650763478617794635454171072575265548483792058648730985974071431434791544604731210774519721928696681889578529953118372694427254245140500955263816310901601253816142691034328284813362498765076195973042352285660375419209152932290317539548405569025537971831887743694907779280634500500708718127876011441150631810839113421077488638153496568092060029043641339519817845408558911406514890554970408234406246370326512588297409794299636456067706970225413647577122472838315392131061809659150401454845608722214448741614782449661105717588316110072722163861163166533669197153617061648129181514702515582430913692130149733394291781163767828068386375047255156804816639710600995135364065164092584516206258649976049292106505804441252683685648989907291086071631739926588057299197645587563031613772880391766358070406732082817177130997852893763318896276545649505572455348281647289397651090770437834915237895129073139899681477316374959835646825841602044804515309310575078724694218057671599732017278852707332759205397292171200512479307889717940909885449109774579030341752008213158500855194495003406944618617124709552225176329033810818782682361299646257736443461253172500261566090835548034321045152031398567432389785565862017930163988771806324201408150410190616038102341321654252040666559980727559776878693802953579509883656660647896458836140449402179428375323807716625700304462524132849790039651783045628967237482183022072840930840734593848048913618241964322975512999518140632253261314178887794826853669900492611739177497136023723095374786648738539321436968859963820027440716537543446170461919766862451664019399174316642791168268812058120486336439927137718838496541988897953240774647434154363917194630690227087234708025197830707397413833969739464613325561309175706870259542202254146089415405761198421977042475349780125699774237662535407898700732466857221123986550346518964177343473787854030227689877946900855660178991274073811911230292286014013701941096613353629748607104540818732224202258992049909140631840085762752148224562603679000287008181448991023710711893894510970822863275142888372908462531231833593389543816033500363190778563292606694879122155977959821351995559504359235364195396429334215626850699419422483729041124594898961934415368057189639694563571067364545699940207092529809539444992883296011386629886032074135330160453807227160126042063197737690808823067918188606374693953051237605810977316983799290576748863333804581974822244773764058359921476602140199860785398158661918957702135768359420506207830388111286719291566832697905704748836468889402130742401787279453674977985210860813715807545227113437764335282505023801379847946876522189259198858589429864484404578180829490739602000391714693118813281257188817108838405071538231971805934386626005609338899881845036167099736362548766221613505076625451803241107017869850531683859567702949322967886010771104540153647905444098903696837599789249528219693886234752925056368829573791492334614787962170138537755242040404360308418530735916366300080617426649845550487058084320352645955669272692573616232698801609840794791135884807777665284948227832739773360556629052046240906405924530964458498826693414672028056044458308572199793813512832519012723672702800488965053109497702551948398237818490713324609255423395690838017225940569284262931391711624095899551852842235412254032993373856443357684625835955936942462091329778480316927955773755499284757697827749623592166553470142701333961461781051123694488085324797089266672978683682604493760087612599120988697113948001266004258557376415868108679318331941043682047499679457888953069151055850385842715763552641465559265957975671265796938709279356951763206342920885074070962615529619298008859295775478710569669361272608615428087260331025378516541887067049123522903135301755405455468843467667286066158015315723090772286559268351182911564705919153465083405340998668158650382592887166752330429691946198142758119515918737801209738760594046607125336206552233730634811076403618534988773834742421538624766420393977433607259700777894252958723638545817302698971492679398808176357578398211277261088315756215765238365281764716109444855674765952713013798644792898466647214780630368672737268713346041614113802710109329915542976232911524287455608515570098668336894512507752195823461688145398307627352629225428665534334834617418388499336692052468562752898999819102982789838414830654660042611381428353158134238905923692358451486757573887081037152669096045614323377594626829542536682164458043305870732701461005335621281776008900640954868072296265899377083129241115984219247210942896993225638600048091455717700855942033699262894187232528728691887929082934780932137115738037521355774179638197645081768121904869843229392984616793598614158962987164184166392373551374350368321724868518540776612209308215220978519603068675922353800837876470542459991786176365240508743920999428006232107180030069182521914194484905504530540880448034516975368767603524553058855839523691918549175656859123993126413015643928724101582308347095629111498480567416556868666798640191185420145389618736602492773746714638549673925416948464005333397258268288268650976353858109220858490515780466941650530112622703143866795087308173296530675658646554966702978634744407771679341466641037117855023441241644668276387410610850523413768947600872784022226340820827645207810280999925824077557126174344728116771214921015549709831900147146009660240752510986940037321145998803348016460867804292554873766949265333006588276061405398473748347961584662528455930750600350361944817287335376551581876742457073428398141245638331480442780145815842144175811398866197427044032222520004854354381027305258560361415962762076116467524314115533569396220305417973943737724550568470069759082485116572369546776083101400877425183105988125643543644890551830856205394418017649209656334724127103416201517891736839172674475900906520512064434570524216253578547255366594134509240765099835202294814614551275248721683810798532887813233071363665032290813439179201791645868401966566485645078786745060411558949750710216537678776034339910683038038249602415038397662413866455112556002063977225370347389278665144328289560063341240553842102946279961798334831065709651100190737677329665402599962293809761368594810973671878386374645511176571712460702946770780407450406324279022408677131181147684309351461498128107698956559576189302370533357156719887016908672104657339913433997181312094305923658653237689874818904781499206520843835569520569553053231584987151813730106950137462047121095639339675330913719504419603675328055961345751427831930495789593084481482658594325262186489275586815706980623582373562524406015613708083824626185793237095930397678632948971477396150111437044318341466623705073111197132866483321258810501400955550175368458749957055939674583976430214111790911989694399327985973153883490138317861792828143260034893574439874714867698269740791907663197506913496442557589484082955861142976514680051940579453000919458786461913470094920663893070296035744945115701240286187779077034611231796874734483310505735426289628707644847748580661184969827202306273596341309155980077137161133277445826649545922360378582305111838102879645591765676836830663536180683555044392944305357892617023491249316416403553509148552360452672682014452043597169105573179281289000608154881343902340433971403673443892146340986196684601517292729173003098770133163976983636511007787672387427497479243655191099564085205599207219872045749934084189654898870481909408694627211942669829388445483666131920577476493220363498302754231365277501450278590319599022256403728987671615929957530844129449655576291464231405408543729012725667141762843308186949511475985561499245196754628216200016224507374978103870503417664833605591861091836709569012833693650134368086104383749466788711069063724701163940992475135686515352252446437276934655936543409505245588199705014192325284677136312152218353875911763817014816368965073505071673018483710217410589196648114141792223178435059129915909333260193406063530408453013221996579699820679551066657370215502168395326308497139538689602779024924319997091071950410876398241862140016120981460133122860371930032076394598449607212204774897847966428604530181999114971945723026322003545357658590898985485245657023974881749607860316240685665457841808455606757860482772174355387818955446087592197424190626467768430045311841314421960611063903509303003598366430205223413126874269263711838311054758989893557759072790863588825049810380723064521430294605094893750582227184097423229524948722803029783929391241283439504831835882820557433347424520161237775952468280142861751130180458096141372659493543667221886316468520638005257039982957627343619456645742940063989835471686306654577416242733355446812269813242977536761468392023778243376978086115322454760670006064730953325271980437916278462837002956413543236480227857779478975612662882198600564660247481682240010673163464381576859264485264896451544043720801738655438288441413251937234764088270165108260722601395266407460774755491719394858163230281878687797002212354688526867729824799404511786084789263422536201317780904356654216689969222956947920502210382885711930925670388290929147646723526894781791681082359851886084875166231112902803617913544220123645174457563173124482436792677156124406657964009620710480905835190385181693194520789955736506592676014977820732223675779506152952096214955253885370052109157924477252402479484551858072976735080515177740932935675321753596711655112358711491978518216814241402700059540949078286602091786804381475599136894674901766713132259269076417024889167964359619537147056603272939544891192542821812020678568615453850820594298308517697103785482157229183608807735836610561867993157432529735675774840301743431510595689417906233595849193301809396578732355134847466029710390757720672075942513284194245644048634848324590459705112555946167674598315255330583320215529123243918399652137717093797205996015242846846795493041391167090025187183327161275419860424727270526774874406509787708809655369618523202560599321456633774596807503424259085260259856046967036809878970806303778610788463317748867776076605835902849375779280446176932439897111690760029222827980222643394282399477794787613588121930999580184833313137554574890285303565022743037360373996568980123419882220094519502553188539529914302123925676727277216876753987545781073184180512383166963208721990031909026912915305631035616639837703330233112804689432745438791300153600934272158721785684465918947976778929893811011777212661115756914725370752538025677258535527137523576138662696344974065265312865586897781615247093578981228316718776917851824651731949805548591003674406462060269133798121464147220784888452683378317396663975877136114531144011726097445787784967399158178114826334354687261565160942345912030951457505690170226228667244195626063837836980070186937648041338157887930844895842592197342340412844953057281625551234460624039064334593397165435767278922814074715762606748846882830636846590951234433530674447739644310053554335761290929808629383542073413522674786218144926587925157725573820132116812656867838574543122094294934870826203524906912817116891043753443691078842455281529873278219296776382075207137159449306195677261167312214486876114403696559580051644496709304933617004947972090946184300072971103948079230250048527332901185012583103762526856391844798666728890227466388791093112204240563663384988622932407813083587745781314339197519816019187840367360405549236365753102485906165698947025343030564701028690843567337913654108199260228323018627661384663902646163395832402931751384409801109770684526849723454194012540001437481529341762521761274435731544285651697563548860802301704521363714556969718435145770846032766222203748714410195169766018539022893664804111213397641199189577085222421976511664107942111811984442464008316440111083148389342097703674995823001447501936576028670037747600884248301562949796871825760155617770130912754679735530839075046132705325397031946992949059359037531271004999623834693699034795412474313518163849031606049661157246487887635421268396099140083601893626038791542514773066451648188721862917721194476270821949199346439044254198778336298806403681497481627118426443322171269199018322792417866629568010013022548301785939710490181134737450340340922674813361910970014862870331068268207115940361078159246568831629266238928246123621689976163912491785294400369762648890793061535518659522277397006634616481119519542560751307025015064136613885496631408190435300991958615942723903652293066591148095918073786610864827970696387044418621556870081312225276187037104849779255864911433342490498488411458070470346163876085749097093894532781610475930405394310350765082533656791930237397866287930636329547934067086879484845363179631406541024638915148795757550314302311064616633244296056707848300365061448368339233882683407216807776005972422314563238820058521117810377706816183691026580796764822776713081185095281606244651246763429978703570785964158425484712871235353423454939501542009883826442617384673072111102998911871186508487571739358233600565144935884412639731185733556320005250183389903705033439131214316166093020094871540019749109596683040044199352131590736917225070617326601549938203194749378586482992517399883486290740773365117060154613217050040348034724829078892402961365356232069143530315848532055110427739910975398275676678885609602313949963109404756458685366137107746271620954596940094687474413118083173088263016059107031853595571764574572657085999688572773894740161368879870111838788804681292594274142404074624882446823344326055478014056674480242099418809875488265065741535946132873223672325307433627435204336886337755198366556196770890739778924224253723230551151735239904885645539498445971621473234700045133379202666148293285341467260993823291934237180739353980053377884554230886457036709611020845586055187451574729334810370034049163932400847707743382551229539585716511547523374839703962409894293626943758144351666785316013059542273834086143550809549195375414025564037853912783162886738452811006912623408563112182692875246973804986383597835902615428230561646216380540278635083713320117189661071327056363049505338510877297259410145421620740050912507706428035657662967642420409581362789529437039143747940476922297182531403178595060335795475646681036477618073741668867940751914566309523684974650289651403073539316205781622630353074492016436284656227203669632506951963264348585869302910576592427071222001621615402973558863003322257160787731471294054021259277779397877497783117243932533031798841389831414311595042830288885716364746029357340387365229767849166156492497392613850853899103975450542837596272678716943517657167338461976068098515648370742422249405049011500801206126924189847695436705209168508149701047689493012660087007904704123915805655427964795766197346274044738502165749195890509004004896575371164871930263355422377769311525707590727205914710359893320877748025753900230977232586986853667246327430080532351806166181249813664045749928944829992732642145855700027403809833537274092677250388465483718462951587341871057138197428172654938026530838193645016080580578899299298463175330571460113380455213752673963350612124632106980144501809069861102898297962489651705942473305020214477592237894782216900279114027407331776650573646967938666248931878611115023531210293836514289816141340043330343902221471162774827270987567999710932440919181577249143396687223186775695854627364038396112176025120107160810554691697792431309084637753444549853281459370887595094089512939740432604877936983231332952644640181345527223813187927987931343829990790392234081347141532128114194195154423827496039685483327957844327764202719826673861766797278353648926125333788933381097712479950977601044756479993416057521645966189089555043477860854161013816488219908059621631508041844715276816833818354044457772593451371726493598211148157266537261959716818994769620453062148561380924893959824611107652380057400455029188970194764332315141271829423533653339129769684904759118221062014362945089754529199941399700577496501782915093826642746420535377557461928910161712758185935819034118492809351389484657827510464334213211914786050500608719118817451975578233808551687622133059740745003757296150491084458930039945785074054685258547368656736330688347662726101252601216113665076695129919608533497486999686221935068159504423691846226329732907768870293742306730235645031834850010802728657847936640347096302208098698787611875381995550654169221433665017125009799194846994262600942249781301749735548936390929037865299345653249008578749808022207162750137977273060258397905963221393281708287087695213184010098918829165485375194182895552922877146673851362728951712950399242469501004614786506542544331125735810361453501343010478438197439807524169265334723030370402632337679683675572778637647615055156133310600332345371238576280465276546076209405567070155225083912401693488392944463636753174288663623708383342194428086792178215690622585615916373707626806781559561120643152987074177473399560439647524096128036003096871194036764525648822100039317238999919209353512069471022899534784142422406699870088112261981991938067639349525418771076061067129468999622892241234241562827562824605995237450582114777952215193209693004919254563988057497765714592341590891084329280244569351056232472136370339381213745390578372257563064635242017507460961148070866621689765460291926078612558977193293240036440479730712317040987400517754337834551065772625445953222836297457499063052316231439409981045903512623165699413789030220387063009247612331014941989142134544207243426786032900956224014966078553820017321851494789880706652342184208003293156075761221186210968043292733648017040601578455489065917008545105728642887690801698652678855549497506475339053881334454228175540926019950260398921803085122382012888081787128642072731191246946718240157429604423788718608233960783483691215315809787840780426086440470643618532907429537323649014844606896632034407723056934637311830701026668439360762281675069391313405686698272726938849732930543505963730629676404402531094487500196583354058046946875196149341343310775874990931837819980236788121072028286933022989753545328366259556406915188044878510787516646075022082787087195854547637034051234835598181576019970312498541742219872275912717446649442078363281565905223175025452019382631547314862600961273541004096867298154330213690666879346015951838821375785497893601573504151514172318942097920452328794943051535225714828442253831149019994238988161122626461301610872174187238678554778519560097277113868628649744249199806885310369326311653667928919641124375861853629191416361809677337033030245127162457189926922965097259008547471581816615973001873893102718142240168726433083621340010201382876522630818041267695136632277803673370939641583433000271209541988653812769156083714796064896675929014027795240542563550221478726024525725475831784758732024928276574331033021450456517386416682454737351549239279646987128991450883856212421479104299010386599672570046574504039583400252584091093731845056054901688923711103932952042917842954039462656422055620193801762113220521032124580035661237058632422534176873025698270398362420296162627215385906553298411418552506441257971308309836483579236501897605755375529314398499302871044171733439246702551711591276083140138740842193308521574708942651934806423422431044918953630887202333401862247702025403895614243295471316709240860022124627043745284689812508376417359858308876326372446225035409492592178341122544575141880070356445636469814719456280116132800923561335319345734121646992710568632897681371914051710320270703151624279166872328257361310245080528938571761331489684828623415666653096446890075146585815287106273701532066073588183866914912894989165824567630373513294664551128671541767079529006671306596472566689374439898260992024438812680773967894850705118046097760004795130821383083164098796160644490536067729847700254200448350350347592462153692450985570187621898981964228968288787224600300496468222243475863647496737396563947985711240446682584486507277918800853249558174539640817498397289328940028940874082221885191985686837251619640835074007085631326778436943816764841025829914758177124882081585744898308439866492040699384836190715128484436468192107979386668104141360097549705143979053270936852826857156617332041867819609887912144362134583861207449014257613629169067722876405838239288945703166857051695851332463373758188432852842303133058951748248230141260307359356966012046182987521502676441274374945994539144951335504233447845664717426117158443978011403952575167332294433089514665075583278456671811818267184156758964867350043592897970067968826798596905421290830508229507529614774695038515276464343290349792666817734200711387817357455693358816112883871272561574293493975489145034404424441243001351129699360572095624258253562178465197157305314810023184979603360939565787339006398311302443679159900409437256392604973930833816492047605432349311939594840386576062373470793586560854982805810485261318071428006736645790200687760573711864227459811723542077990548589044361232548047425850022942517560322885578990121525284225548365691680287073027106382629507669222665286588366029463754654856424075776354800204647214676149181460624642604369512280880207232718992181633136927850113830111638563344023779271192887647069147512040551966584721312635624724762522506132429834486421393957774166867632358870761531527026703258605821066306487826520006205738591610855075794118425363285241461875776183268721430201932764329147797707877248091881057458588032971084298043564896836353926038321102389447179604297339714765778246923767623157724032603431741181596759579973720503439046488342603432831268147122045369134863131605045415394836130261235172083593032280452405260559849655169614865914236721051283151691745030106711678590084818596196195766905761020330986489643156783416559781061538759032499572557321439140778873908330169072046016260435349877792004309274759812670170080407945428007971488678264763129331855997945009064654962048609953549560789687548633780778970369770443223646500134840549751856597830633559489922349086336056347880213928128994873167273536744624873290376908116346256692829573885945999654743886450525738439448841410111512819846837632264458494178265231864842355143819763080574666784828741008281842136948553243262422750565159551150463998999780528400126860346039469731853109199300048367839885873968970158136384576316176693390745485937775301763567626774029474545838421517759430659578826626320510361376070224837246035645964637994265466156786970367947371774469382495274239231302626485852790826853177811845227859113053462966137930008604672373176669424177383194826143238340694851154371727163285262331682256039631621765914794969809990954408080555153347373199173159723760360276728544011707967651496782138375244182718384433521820921168143849461658731714370975287735533125053227401435257448143720285130629762470327648922255967612818592468843341788937568395267069942324355999542974267454992411628479858536794517235362634638681439140495224485779605276618269895797647593571698492887139196568154934422888415138641523034561641731368722675508305753632162629598653443191346721195694422341384038426975307205486742429223943936859480812116626025514746668351307207459091426942148707786263102528045862175273602176111375897689343245050735438431571425791130080042960009167648689043296248916372605847976354371430824960842589292904977133301653330188804004651249531084420721199799237290604657222531284212636081953190354747997499932312639614929171268830774117771124300297136051966924687966656786248081724716348337680904643499885205428271677875927126990327216095383235091429987993510680581096674651855526442889126855904632002539568799934585256073198680488060566100574405401949323316236169610814615298085198083362821274254118259558641065583752729930674812406924353202158604057445141751989987501507737069790907707198324553817444184459347057499395223937534245490800356554062461732572680602911181209486328946855453784689306755296815974057884664425306959265025091576841345694130534013986928340182664779101265794810332694465214261646296741759440866216586495551386622480278654731643285507233191877621131582945903337383271409477639224651524968621905951763680796029390288058096893874784110122275556044681017971079300004916288735399538897172220561258246381694707887726445345478225036817074705484763350905541410411657289492449701840904000204406231332653901082699530032734492343794549652369933682598564947667537268069025385462792050945475190405463465269051521664617489778949949401750572477788967963549906629005253008801260614118616847854220995236976392440561549052528192420590118866100173331381801505846951013072724194743110012494480805351975817477363176906244039028045399359350200652589031388135111407151725806378873393756466697189615263902812405034387440646572084844489141604988498002867548857200955696355250452749217191773529668141221781953607270637976811379391237356439864465833264142465924583068385766002076758858116564001428285445534185867942012818645564998339368728513644598153758638823954458262539754224581118126063648659183570820470597477944810128418044421059380102940789723903955450214638983833346721637617217568847421679402472420308456441797765119997320814667475693904621653605832186462742067596791809204105042952942459958368746624799845530228053026517163639337044043023696016549448876020284847378736367582389706018274993317570363652680564346257550783599128010077265846182248009495523845252729628115548949221608335666859081508205393192107042136104421613552909614252496633737397896244773390127214900724927629208859040651857392873270611873557558751289872186735855601423971587909794534110299628098356873697749053027792933728837865173913663892819195266359879691311136958315267590120197060752112797432337978373066703173858462650412004051158448903515326410019210436066715446262433720678490808360394339277109923478480130172708631781590711012389473655269614573633615269452298117713380785978041563193331527426374098428161491900364937470879287521811344902188409071646041337797766451430011130105529667838302035138281608140931553243561667712442937597768626642482424975877946604829655329376558315284350302929305646627561331750608277933518446481583755501610592853513768502803441442284864575837986406522581980906484066843969319573620047795710947887462035818665458316120217154879231482177174673466922164649962135192227883369863393461379756489755661003024349355541320494938866568714327007794237175791423085704220877828285080333736320810108835482694517704037831118244130486763211547856015837891763648920865643206506497468469451214265989821777141479530877335837459759606403953574234263659124010708681561005711474045573643624382284048150539405966078824250391602026702509474274169252765907045469466423083402298408386775472031631076574250333430529728299811883782197172975470158077269484504665380146588985315749162226158865907754116192315055650297037943049322315677175030876266794955800468812857914338889756533365378576690005786772452752093898082733882578848806302905553006607568675458081101857134455109352548156432967069431882450834432069554090213121049908523246760285097195267075164782358352710749339234363190509990810429312752156680916896060250288805075393989401390788076423249400804771543081155431793134702878122085461717795412756354077034396535274929330644471206924547369388248690391900955159486518034640465021209026249723370806567003208678497343691607721897462658919460068788784482937825276368744354733652580152794389509976760431046134767475247022794720625708496538872387436042158412499524794092600988733354814599049858877337736441981262825761452300801824286017955779256718017825650034712671003604508741222662974065971296747825284572055572856396710143033402550169765200253411911736278513054886659942733767895665873107612196532206796167879818181927893957425462275978172341091079856497151010481818673999225194465024123849899032219318469331755547648045975526347342265119285056450857987248719717125370774005496700670604908451562504864844013188292762991343950195043260248928514145889531680619227874418453204282428264244205656392413629439128207686237702888418688488751207989819162186404008625758974286384953008193324502121589471306037995976305478864422750132331024824793292304799366243656748268380203653176283675196425891020193084192849333731013682426608538460417143252499720549436917368578764312560796248501592191341993060727811358145420671126870012924273205810519921985627886604269473526885522075062571035398472498789174192193834131929279352556567099713984313613111491605570485862191671288394923528533340138829878479728918617036504744442085242097684751115314228450145662270843864866274831833905538140004682208301541312613542080748667757814991375581779349207232566135443994534864143530313329528953948266910861803193872362767419946317068804748631748841730282289878563090409198062147464168045712183251956969043371270769169243593604723977265378076359931250499477949233933485855663816328897985513908515422704439905635229574558903925365055286844061982638833797187652600472057228107726319216652038296304674074527413192160028783872622347519029135788057278079357321331590559769700946253758590442572426928950166413907679493831117331312663983981011263869643304102524144113034098613218061746754230769351368900106891477942122137923063178354107928958552833268317351885071096807709295579290242567707077337242890849337714681591084350064609538034724624005881904272628626348671890991401268525336325841452258579768866332863426818926311098546784054722901781335227255793992039092697164187221581518654993076843129218960028579519836806389174755918078331390643980901131215428395339292726354520420819995079158799813608805162094709272207545714807508535759988706869341582998572892432315201519793600191846303016839639723382789082425618142287054244035661677377383923180649961325829900860729640205187623999376601050282796353826409964439602664242127132939797150204491559231097752178713415780477647192888298495072451595766764987833983688657252193222150834940844265839438124654534497706812762489619310157678384711360292983767555330929106884453099972041262248974214039978828545855510347806093802276893808200682991505441884214338258435789485754871939993874176883299350520164692261687888051645166413214800206414657080448450679833446280626516868507084709379665556062064853277987154336261954047928073597703477507108115122908339087493377601722277929790466878703321803965324997752754495418833302180556425191631885157540962856023304595569170402053719863874559676664312420019676938024820890969861877059918470516891026242591624412751075795221160777802085333796830884043551540300014691964512146147169159713736459203298174499402094236775571087719000126172157677777035243670452028029517801954578656380850592616970590492778182293068229326656960098612066744563288001036592029536350531743728964992007931202709017066229689776908369119858244540250278916177087234193823274792224157160790049796234325711032161673766750249870983428692652687208335567561122731834817866353840632665397039745012005823611044074764919869316305048084038508110990309669799379078144177901103450986030845894878107532469894221845283982427808425527383380820641328327742148490808122220580057975004000132606124715907483605249782993273275936837266279531370301648067201584425792213633413805357186623406712304299903088691814230251800004512621674436696984642087910381581289580629585032771358707958423099724801914024099767058194935889245826818717411990641436801683338283745097472354594376037861803680916473720624062771102904458309419184918556613597473034079698055682278934661026241884873220149506753716668747673187445637351487339005247955903739409607554827145018322249743861367036696182280831659824601279094721720099371725508304191495854479131729383704380330819650292846466098254481855040415598984107229850171949845130402453266521808416135149483435024706779503693903529692175102927641338420385363641353637423724176289558108469584887084043826978475402176371871367713128728065972728768660434303703568378705729419356971477990375465141112126663991611435341160548414703198067457959924326370926945766173173793808652450319103212981132481836643596916952865102998550166000837108198803928302751109575923104153392227455018704345997837637612047771169076884842837133170854195835109330847598437941295329415628423757645309249851173756024070971683670263171581291700873757510611019569145839923825106436903455938648359575599568162862522452802467570481997908244044891001383903833130018462295175457435980240009303963680006114095357578904461757435002336852353403253919863187099143050379956854108356272819225238481215798323913567946463812385145641207070862724231788911593006542322085895735421732323987966895520152085626560848105907519370215756844676560715564530340101055008407228709319435653347098167331997004457159321423943843051548714028525724180138071513745500360083468511210139150471042694580432765108960347586797838635941986369765577236259834555445118526084640460952635865381959110064260675164943261871202935837095457841435663975696187126213263594812501133712241747315888496434916078287640261742462527382066108965367151838301817286355147426868187195762741996420869152209986967198235786425286068548730542965398183483977363773428096795127827550885593992907821248926488622981190921344028753825288733862554267588662004095469452231000258845201330082194157886391723836747382900898932377319154519826701957990499656439650107301786688000402622856934196645584970301202656377823923835509123476645723132037942574693993982822460802353911107097576997901868917395541165560296470566560105074231579914269018809779365363477974333852152530114050937350123103072262159883451812966521113761092867340188341543160799149596507404428955940362458966792815655386944221076609857517294026165161065683985620110575466790882495168643835067774173604604723275310719708645637571838208007017488819509623341163296396392834167597949115325933238246729337994294971553763675137285827165796449457616700127739480491439542637800736946872194344132289873817019404786494408129030107186148788986558065767374211017486289074931219179387085233837527500388016818768210057665745935237744949333675133433964586473938878395915589099443645290984856434249880582363212526432605247704200594574061181924747113816957018342680834476981635855003997799346391582922215463064948802931084230782492823122856236551694184081678052218203241749234318294852718232017684244084747703644316851106867405645849523503246339422477274623441417092901137645630896482499224733564148630001050810700834353241806841546785396239607964285751497124694758187336563800739921924401427435489141693551777763663288630143529277469803545076271904500375588881620053434524962373184507263626481767844014142100211909458277348228691026016078208562606950769462287944417882287530487663193759885583381270911657031122112450793911335136786985589946806493125233586873011727074817949213827448354326021116759269231491657827727632383148090463425307602853904695063850681988440673762719483491318625187992198111714578353851109759464989560298933628197770644637699828165130670596969450479175682976311245412092628233456856338195320850506215098643678124572233035960272708829363283841962438740433290868553025454844347966833102912597519640710564468318256633660457477105151246213495189568102868275896919897499817544016370221313345284948124894829243202789295688108490930097057681586474548560646133681196668013881090470688614310325643745779202274047670262595850673621542693922546217333035096386427310695570072605536373699294109616144692637010040908820068621966650955609526498792495199660092176081456381487282937857859806073063271806804863714740662923127370898484990061032215844139601785741377706890526203480364759591793477084842885529295761925511098916332769243987557281750333685408718373556005879715553282866002495909624479206323541030745476955828202595053873902899681313263137060020364120538678658053187945674557205752742425193389057889528832227976570824433345589391603208576480656519431318035204479469220291517367411622147586035627753616351180407845995371577167185431126833642560998563263954697937523678396637398150873791165423949236981276369154720138598370804051894734743254434942196548100496403887305460576216569892900814918441155960869631492971780735946202755948981390496138174436457025797310561295648507152007685891519493669603356099430646501556108781493527390239574555274805861427650822271002423818889312276713494563294150534905061389555462185539290472795677411724586424270651485447970968757509743281691381847233536009393541410491409614514067951809788549325624743532284293030741941450999067300380538576541858000830849595241764179637546313519681669785078877496274414963658487876739605633866502736981841899945957129418464790645036840760255699691575348180353525597467327767777685288442840036286603268428956849987447368601704650862546185478258789129363388738058206357755091099914155372867207545052248634806920200493719021549014652841440506406065700394137709793333177683615857270765584908222539171793315812655521157404709412952773125166339888480964349949635249023649569758841524174247121882578415375881803936843595461408673234767464485886080887175210055915645846507024595630712050706255629466763314495043984658677091334747249024688108566567688693508664967986063850162036282991142522282111370069372723483908545657231495792528280456180037017507599277316182397421159050569931786053192570123080552765013895120150889116285588352738170134641023773185348443034913290856038204819340742053644241257468789986671370951007377704493255133688551818944314238216293038280231792937082788185694182314554692815448969690092500972603926257940537237393337253295690560372716352956349770455282167483715439225971060928744372040588056785406807903388338278977083130343256981200718252109182289314121919258891533768013396776636591032646876323718745642068266004226615258878965112739754469073303135418351903390038311799795060994413819604315659707874488866195780980401182752779580968280761245181587985051883846948257795151354676356679422001504678204611992477100112132194395811757779843580613455966016481825949901049420766220633608447911605957323826091863880178239242743584372430617799514349201848405426387491939801939863165534851750262728789727205565557616849804321461349134369083818329635309960066574696398108662485265883646783437743339346277636590304705223084845129776570809889882692296229442008004023276189278377923436524305956984712267078247917238512172105569698589002570523596793583540841442971752452735571499387858896663955511067985041864339367579314141978178803668129415295642652699922993478545946881837691258197144318298728361133693022112788996501588072132322530175460430538447770462840551341780248641868599330349764033900974953794692487392843827004589838437660237913117412072759789592510817546172429297863201745709154091860214142693830381778425149944784108896310722679068418118771350172871902544905406216315116400889119669830096439855639478464422020343440821626888564880248170570452513706562354230422540372331741196519200185519610463409254564397978851713940943161296009812452760911433158003316429058011243447953094679114068889545913192520236508977227936085719124625730358699184542445135616032270138815144675931966075958053450657029100712481899991879448647623785402787309402547146410839475954039556590897943999206686913322065436553243864205076831145724422529399862135891216303588273153367033957392225034553146541898728213091596568903633604930104062526748969897349071534447576162374283051285781901051165471808713981194975163565764948644540987163129808682476477485865881566951962028010589602633110820725809092710776681561337808248537786429540380264335102488649898007429369468662177767817713399060876293126939037563049658449723772716904001728651483703995370872868269058511246191050267829458693515477799720092395013565071151197003407977783847162491477007823911443656606426268849500371218952844415455385589148474077068495618253845377429182922232245123283449620256705811558835016501725498011583471361222457261073695159365567850524898735803425481072910079037412278391686775478285506731218402320635961226554531697729493024097992727635207738246896301220495288080456640222219051560402885900630724838050406338864811723168440395600103724120368833348885498086462512954095981191028407656658000691465348266757262899334225845485670254172969957988566555512700921507693724355032003239717335267402592927539337530042098409313740505773717198011003338039967489587407950155556167276990873038419126340462834097601702083772037753637251304187152429888188413288248610303189832116829135192984881967901873104377082599243685051416069297715697771054674414429198190464690825633569990134510966542213065637401652896819614550407480701945765996269700038436366061247120983958628347550907636032956107361399591285292595611827435422283805753494922984001375905134444895595432103653885619233133222309409026509719989466222044686399003495306063648560095567733430432924989184029547496273814964663319433361166678397027776392823310018460107416427542937517139161034754975590295593179956058074837342542242921045880728571143015492112389917173480727103224777246430389518132485611135763694528821048397593533042634170776717870848328144707361418388241240645424336331022025275139496812660980006462594988739575753936705753612039806523051239980818832966127685838480882630988129801703218519374649674442162098516187151948168211138312152869190098588178641399661748818428944538589657491834276700574981913117155969362322736188420428875943163712502313708622575813516315275964581117200432649340899227040153188531044530761823168014093579381274210058749031275471071568352150776532433931713152987814269171135763062172343854155702611022616423047026869822442005132613638222996655938827083454532866895941497177153350205995829418191939816064078224313873902259494144515314748846068687093242463876279976881931893039788103315105745897976776154304384792294339087904807234487297290585921040679764757463333374954758378517318806501083141336396034375016011466036801497884661095164285982490248490840009623801121212694322671380571945829218486730596031359438511940831709873838876314863386188288461377238712736843357997638732558266553795926456343050139589229906644362507818314185256866818361614351936970668670543252807890839418047707099508216364474278204526289020542068245167603722687811733195018124012872354823335515387848499997520637378229448816683677392248692909544280131526628265875358769298493582647445830361502271254767993627872120206325465918720918741246295225302611096290419037858613335862233509384539664347372256273140800455958895552039967804342308054959279004846706277411603186955739415103404448877458520481365086774945416834200174571024373777143240590650172004060633080717391079900959925630502349931597344239358439145914655622311646706989523431831533005038806223311940723964684176417807754723395011205238379901754677481338436903436220082249086253764120394700862217842252711300820668673082522479918287180446223761648522343526393751298139438132930340586613385225583515085253867219569334428976834073775290605263890636074451076861466675804799107613882659533607075411823126919489193174902771294084060204386483871172813619851793512406974573103597003949289699825948996328909743377119920814093615470930635009947929906363077376535236219865386475965236400550455054652253792183025430985303403404934457767534238273502987311788114728805250798295909070251782167134514023573002156412754900292042773250976453444746282375747405134661573234895610598585428866024921556003837893072000324063653224050106120817038101100293968371717682349068386959265359338362858724681239996255033813352248584238814282308942728674608217863301314403010737545246404885627531295391902848484381006562931289426024754660836208576289829616804754532535333623824996492149706838150387552386425962585016048351331689653167322002063154909048561519179730008827353019370170779827200491331782496743676249359183021264266105360837406512742351933538553764243112794781782755065126199750421317436033102401171217211079078557269024381423090429852386300233889757580970476342334539868054019248715873166775330334646325068618263558400759019846608684062798389473648545876044585831010846522275993646643922767962112157062285835081758410496596497776569958922867438811116610507037454707579864767840141671253722949051896089124974421115980209235883920603372475356819383072700359739870443725770581528109810492410071915619381476155027092458658963270454041392686878166978567261373600596772440782776143627577488675234439611998894399078500053858406456436231587673775044787457186417856987681294202574126306604090682329749198582150088418389115067972879623787935269498680502032813162216949351601971195790982759232479694544714661698296646708718711840444867622848547571650318966662630950127006846030610302264105641666363582864399747054759306129512641627483251412743044567066414961294435592411333134523290019197982343520865905607909322801342943801800967554429283586703400044911959921423263927602935200106216194863898491785036050660280684336811219094265193447908372467830170508881330291455913040918303231271976947947775432230228867458586543489380942105116689968464233098980863540280037673538783188215512888293035800020893397066606329451289586778647756889393690735052165183349649501600765157855613737739966054180886329837145283466236549398355445563505973870112560048331959842363132618750140752206332740875952415026597542706044316069807161429211238621139428620303004427862652385451705522155638279446756350831396431950865502278347686295195651502758296221806764834910757085920459390316396002241542423939038688700876344768555706043846750413809895739716732807501483429237941088645685849020006672122061600888155793266527460174513456644728957677685718993649642984491892354439851806809173178296545799594418805841305946911110063566516029510864857228116972366491765783570356823781523230683722730275517066009072094106883137671689863222648726143159342062669373364746488010167166794643546239089494805779447234881796621128964758885955108894901659552686826771955202114989040311204573020512318129550805301612326438691163858862691328126564154946439286889705956581156512523809125510238008378678413198691496511125780625497657131146393530975553041836117011814589538339327814823679199958190793119971610304831895125379910505131702952137197812112343772305032579040601051187668095872202053240999263605291312028385711201082771628546936308203764871037845099040609155454628279485234961512090216324693385925476116220963622052710015904058938232027631882215797236959647152087113522907596724575773381634633483567063759964669495876814015985790857159744185962042008975288060803207241692109152401845029904911933467514526300405252316478955959027569667224560263927092593462586367423948403850637592457389956146006505107375515431283882394849366303818278174366656179713107003910373420593844120333441791242316119135165224169283170920663336026571079257244702162598296818040370334036751501891873305445642957524255742635157002245289009938417536910752857507180873238642134259922577343270595678321631025765965479786080254282474323363013364521712871295980292835072076818654450537766855353202222838156866920737064829407264406854409126897610989807024585872034553108949223698091384199715612411651169297190919812176710359636780047453696848367697086880997669606700495816990577346829773999825877547802720588154019113324753362824811961047725413310209848258667281216800690328300135845119306701848253032130139002912899222676113368767498230401998494337724981444537697082535387876764872716900047378336798942987231588646454014589477287775063482907359340110661784294722715572737403881363189726038531364705527001095531074827926172521429010679246910886402028366343705224828149094205247083412115083045737045297443997679854436607782331657467491930582795209786745711299275165605604622712832130996770838268769644262343062527850433441678896565124136931611980631986645115517868492217796132623278261156138005891663453325280863311335786506299002659035513369058766741003775589181730374913905324372222491878013766988669865316585128864275779802640566693404341938922576822229102327378891904208457770609927323709776737168954994055487542342173644736395681615068904319309572336565328881034249346806938328965973554740315506751637659466002456252881010594153381063746927154664641504753566625510894274849132047091456953584388729380249408353918772468550146724112186540532067289263762639718557826423961106492133306436439570279395528882034440908153475627904487424643250021870487985551126574488788392826209713375985186742352459666175072144984420931565212207241609878339053532042636073838714935543534046581339527684159206603609835016124384090063714371923763889649846563186504774148589768862936495745210241476821916476138843386019764695576584985786877658569947560678057084509552996102946003852792988186123757102270222011063701918857186764973992040972584752866027199869939043376719322326854652172067715544632012524700419738858579242595391401917467547228824140806660748239957442894199690226392613706544579967112354233302237456503888071923627215729590663573267804878696674660778003338583478372383092625619912024627059404984982014717387140620403656822015498763884491291821902716772166498207201485717896189944059354794239727813546728446322871132888882581722857894367195479372209984319223996602189505467629497071018314631943464501898369064003508757311976790937947004081755527641661171132827960540866850779847027064312176363162614283674249049330922437378920765911798806984452951966058553226019377390210933311462473756500233878600855046552487040434105319631176768518902203988072163065693664757791595119696682478224455907805494765659722541243571354171187630374709940112895407551322644606580854355295582624727814387474981731810561108843590090951789427273631367790055211740010217358757508222561103317171408494414461868372657832107302449741266856168355657682681951573401145771423456861743967369507034703588076041119788700055412100235328547733751479917210864417832021471858685067930587699186033068609740791798084012472866753888165704419249801632654683216519825906985857506822979964755619215685639428527007257923912376329338372970343182315225080287927296588973805276050368426959700401810949513814828565450502012459687811200615278409907269822666688326918546062179712749372248699119775331318562443827223238895813252556794585613098536635548714586313049645705481816451146612485874972802313985298266190427719766601821060638201824504074555831782884334269184763011228932625801659921149048423429360334079002108441599740702733165109219494352597477673024149558443544352079202031238993559306803328944311967608135332511173123240861047150684951169228426002054726966635374027636077990703898872998926345295534551714960882009646127112554164971588938255335896155869866744429212081242597450366506342225552591923120061126190078485968019884688157340863198444031675986102408249091182231694879863707802007302943417267886437958912126796947785010284878664763323801985816305900399764703388316308393510307902444260541812610952302200191962328168458620982044089926318757391366347515786163440321383204160768358922567788995452408140933939769968781780495507022971193409199340895331860174967716704394023524984872895539463097917142682756607968522732761282347373407409040019586683965219054075405941588257938814880624463809915480610386323247508382412050777165086525485716977728381332783654033494474631341503034494484871395039003375194413201222156105619786271988147532334766317237408760306483285802448044102162493926051636369697470220156028866627366866690724370330177356556446717797907557847198890792012280188076013218749012012924330070779859017926804947936513909804081635315533598652524798731151226802079123262004380248211036930648475465534590546266147290478181114112921358503162043509563710764534667288919990338382500453402322725103702962582168803494901103503394941599875823955173744787502821975475972647725495033165046283606051874531626460030482792674161655562109146263097141599863458052086522612182289987786189759048266801132677383182516156577500161788176543878711072466083422696624001634584246238506363527776617326653385094648776213852813478723880243254582236137027832011343633951653332970350167166921326874835495371356142579524152141334185768391445448942602772633376040861156969519784639307144119013475906063615980305382435162393483292712665887611456230287320975400521578712159345615776372845287163301230517604668260396378693979756205674494403183321815977058836191024786552320545250980427348172027940280191784591787868823794980942360808547285912146469356273138388428983890017683601991225357636380623582312182003286142843737667424988199244467348936024750004173474330856180694449647408691178120790045556823651207367316020750175998412446186041073065029044714927431404569259762640361024786413467528539257612100972279425650665574795420289708457155122836824142782741037955148972441949462852190208220302163314197518084232917706339938142015454366717084070183873389349902132525928552327194743281120877363198853682705195239067757576601526128983676834384748021569167023298732876709781108353354689215756433738631950655727918765938258580856354981282655752615997811600841453765936010750166857281156989662260532461569653756952285239697562367097754317472757240073212056405445585816716666652019883615406330798004405951411632126468812181842254077506051508315543926657953799215872409023520450089156982447109433753179475041860297888028023998862190672109710151119301008730033356210615540499740128189973304710677327330484904605420600874330669406287794650665783071207700130035952738736812182884305239413751190076644710330708826598664644239258020394752109911253376335341898886713459363631113667361975754080634237217128780477225253248276357708363362150715123785175789039625419720860000739517877560661392795243365231354757937090098330102641385544671811159233699913151072482254951899364421461849619112158634175759371607282927106739932429844146064149798166254047770310356303609192657722778237754289186235795599444646672387332748269953303451227125137893016795560086222584864040813481946564713329557478010233426626010891124333773793120429738894705421659162733632405999663183019308979800144371765356110507887491546787266694027641165933928621621456632388002858084729575175415191551761181047367046984001150271248617717210476021793118335815673167234003267570806978882991348117211815106179880439458711444712962589226672864019605196622507409098418380977987758209404189273095485017621719747780819246479841442812652845232493668991067708885699201903119515139267810666835204516657323315552786316179565946308384169799851787365066651753606006373559871480212090565700601070878632421398184302158158172102849647101602457596888349396246446668363964472580320827394626815692672224240155106931010729927862586924500136070417143727313451468515529898114988437229278336500571418316675167915896115858134451320672088055138102491779919363465945570900193421409374421265171766899565659942448002161909532776024999626570800311961301726557324538423032913639700608740369243656437155671664556537174332932164929719057851121975129638585911623411868162059294876223501194845103375450514277600486028266293333390975485856878929889623821252644186079154650310929638382282982954107928252998225715432616136260143852938932281663618156300661393626244962885746792666167598330621217632744830956929565673954560133923471707898310456331218064320450064231123419817232640013129905375601044254704418900487762203659043948036548935485351798558482655208051036942088874870988778759045077020182861286542143310808521193768798222659417562270445889784372329671121796298194930730652115423330863584964039212372905367193862874800816288083755083724306756321344479596517937133743094661992287278178737517574041056542488336203015107678040657841408452391025392748273380323383600763635750570481406268842993122543570374691894238568860380037110015425664610739511438814438714603965817822087596144127915575237682126164526313915094717890087391590443761159460667320324423674230039892767181672833857727103183436462114637771786097195486331644601860548547340735222464797260621409795493504618253676112992621603784941259006044379355492404305459554685687144402961104344857367243683507633919505219890332155660780261371771794889315830429828828594734376692968442648003296398726598087455972866636851783157329519524382992113882105967316838870448293901790014477069808955312545615905017908926108360755482675794410007077779076390855000789218063215764391578847488777274945343112051799678436675490602313523530761000018953581136111304951829522187023941808185780474500639338334996135074617835522911905329035704083197836902312960768514784439340223785201936899871165440936498905461077762909819215510694374346809147716056260642317933369335747851524002546521896371330722243488664870227004207467976159237257146867164514383112170998451543922100056461675131717664883493551703291632979266019330437359692552963724218697872915007056004084186781159640209313342158990702314094584678626546167587798605427465743260959603599429745371834140729810066407938279544589691436143686359360146405658171408598908635209161634061584440939737518670347130452486222807929733898042837375477898612865327328190182784799083406090794292392347134375219402809804706802242141733405018973590393696308232544561927970972302612697954042689501326684455394963259839576234892377512785685762404548666612680870268804470795167392935848143954061097429335947532546699624750034927858295578364455271853642978096157615982250142776572825591004247128675277326812734695013533781406889702882853626229225476640557153854893940389216692246290983487701873068141874362652696060575951140454675708177026012664616237334060140618797485238575145413995206596153484746124298394345119823945083030780039418877033991069776625242542378921053216772389489685048615438515775289916118873958807450637903772158317161633336487601487871210647665555610058463609817047598228045264631456261150727705616973413473240134431501127677305706074140286923252614275039631611657652053107963450920290733172950486461023492344558961061637249016363210641243814302174310812845637702356840310353399209772835329985586601125298601154570600229246569181846339082479254424389991678483103019503288324815819056457740777293053060903480759204611737343239356324830694046089900579313201831952766909558114281701488145105537896106891155535792392986753183944327603209094351426523306229305859721443162047035106820360250850678150520480395991093403082740490560162556946221518125449929819378599720585325142782599097719911369319694635936479438130552507590363229856366888387374873658852715233494418845340467912656154841318885767092982178727511686318056600426043617940525765791894608131203492657378738164116020329458127046552679004561899275710421272211122436401117062835391688462847237498908362765545994383575371657734046391894854432003725583766003398900311166887387367016011585454521100690720031701868220596295063781070813927219213393328987220074379816007430710649183502719663306402796767795938394872056374901521658429495943024192757861121630414667080101141624891442426640984457130331349938675837281547860479825781770923440057343425460615206075665658214244144147706036412264328981425790237452084770908225586396762926583288050491998858114222078068786386590322436212162878991267776650778914490921106149295061252067828239351881483241073101124478649841771975054394654982404855508431046178408277539962314148638707054485891598350417918647053262548090040568692788270778188488988160165859377499151269137911122995527089355829009771468864942537164740255871053319544591102090061424386973944738847146845476678906647940043198866631701688646411211346059409059289623801285080592162573806297503259234766091902233896151077048062948027284072299480654257091417895464503064405562667222837069134427675980583733055899982406038669169674477476437258771901773003620418199001166770379393130927225126040594883449183898258504029240094079407044839741164159478024103596588737069391857567471179052492219653245937094606197329770085902156650710201769182573809197475146138896899376844562143421433374210224712086539662117936319469524878077008696347939216896416990495960975333432860211999660594185021588295240955819497622508168042126727945785669406263309935196645364789468861395765355563929973087207652277914967850741273378538260587257585991194930473728075069011498466174971481037068135334072164177416156628224074105074757304270764159826307844185358497369011054576733686169065301352782363460917196531696615358340359254470818145587088780597956146164448218172939047655758867885772330251406223182145574208623452712946861192786054658746794181741920079208818077160108580851524190825604377989666766405382737824588100905150391856470975170207514094466985692747485457575720123610061957637735650083631743053335271167782074233814482036403486661371442284632680184833613979255346568341628854192304952280843070353566536880808869083381551025492029549715172857065692015854476379348850345346288210724812824916586737469633646322728535013698210779754887207772850347776625214526121360106675075161416982975755493473668130442824975878248919747046735840258643388934152229900803796486589307808363166984081691825922277683430040829153516584794270688950561139445267921477685374395585156606588435321820174013881098008121945618590279389769247048078098926298808819103877112982893370473934964620832791591085201154394226335628799043558511893314028802813757753690897523943555176212782735064033899305223742482468389227677355059126062862843126990255773544581742450617057986072310904042436855824400968253230279232843570613218834375787532692160317358809882122583768931566057108262616375590397855336501524942240310303373822032875646627435579718772982185265083956565130257521274987410158651508786564642236125685110754255159380504469868286772666984668571048941388991354168454172755265119548613736431467429703263186716612914235404831686799514902760330615296409568615982387231721237301643954383834640288269549009548335297245513914517635882410195073929448504934665803693196585073355271885108628265584998103742830812692389164477939430078686020478366401700451762163984046270114970321133217040958231782455025591669600676171603513327143307913128663630479756331863377136833160324778207880565579631990651132270161352459852151247414353530358690883481477596772191170012380976547853452885452129270465558771394812430582735139549575600151544098454175922553454922245757512366726659625037541612303710253954874582498646204810943081273575848577133921720252855723003340027145853796241481967101066158143895637637417353857343115021796360483852450908292914385095400192677200778926273090527900193066905823055759604858779640510905864548789702301066131228940759611098620355527167682229799361027377988630692764482721042068174668737372426657293402096446149535199631361466309218967465648774928501192069634900868408331305511941142053290239153689218832563713196456091790705557511084241268334933484910195765370790222035638349686833127584548114199719304223560076175275765630833510930185818778398070500361033011946964614169200218264971819368664521888351025804634270782119501072999932441263313425885858882451794499022126560456903121805357743208155759125230961494716053555122270100089732283570417008071376971415402022939127382600191932420433137103705117965803342529034883227698763332608490574506617167040483669433587038924742428735921203960994095839866193401439140041781480394249608967740458777268253075392553364428883637391299308728774263677024046779873007894366303685873568180533490144701253672754809357941885295516109753725086734228260980597699615752332412474869997624462402356231991708662171423250560948466992478108397592080070680066807239945916892831925202173050196259579877715550487686417220444790071008625073991858698376202020416706374702638455751449007935451447323657019792908269354024232848800103525362590634558114770372267644962059236566475010721670574568793100768235928514073683099838520054247557157956041213853930821415078255496988208889028264680447953385594290671209776530771217803538114773213049379769635753875292107760199232222041497249711373712457526315423235087201585932369440168110718157135823756518768496204962229460466688088740114315803725107994896961839800677158347525996855992521121285632422174315807015560954043360911706337340461189608018313138662078496911472251599184545784948761342269593633033807590823243810395050635415311855570151697887077275337959250215154578344730507381010537883480752803517292890699080632616723792877286194268733768300798424870575013618299356403979306906190519829534288301954889137593360591817981130566769847444569798478385670316242368824683867393706693855567976122592359408943632528186705950287100484452882303835543094975012598903957879947237864439006408944485734428318844204773227504746519265350028094960232104349362320819111224274615435669936864882016857758907589070594624609470925006992293106778708990830632826963088307810205866418357394037363864500288248752267530356663858365503652905902315187158742295175623369473901902122426846054276401416923950976779856946696333543524191022278797703189089456599426511254048685144698260045806365189494437164936299054475310331884671152630651169978700356249691411172947252606016603813947517409715050417228847898185664713663784741675705367469165206363570506467143634614471021727454262067414993853018675581690977444008073459848962119471855898133169211103728216154931911018222059625613774732737850826836039908464386635113991667133263589850772810650930399388437237545575136640381337685201103575960024384219966191445955349265020174846797631634219473057960461521492184102981817620411483592566303069665032826673528200557768457327559312808902895995656773818737847453689949435621534171958965880949236498209022720127702626228570441295542610284905392554384399163611601232357284235093566630415770797757028332960391331361138760435531672565069408339603311341281200598271262594970595493774280076398484228350208088394881648505651761412554560144034342133817717784069010760380514704007948084712893817041811012348892342688207308000371044808429490836042151358740058086335783238743070340099544320949722157082446645368231940010424540784720636326210678496855469231424791486045585452667150143760873526179617906135010897212836910964361229348300372233744399385662277592153503411438654666538060851789837492869676254906589810252328753692479037747080008436353332913316041181688293077192701362060280732120717748183897435939611519721885146357860325780342029726958927131416497930096016878031809705077445960788500714308116632405161817176215262101586438455015314228462431511942716701187244051958378340790471200380019537731423574617159022460251266188900729208085828320335040570424481686114563648928924720488616809263992010780903426579099191523547519740088629862168345805955875695955104796038986681069634708992548790835801987886888103645050073483061700463788903124486119697397726297215452776190459407989634535707935837297629555951332448101745405398438550212126304790070251056135325687888978344346504986854307384395634607200243877789909321372131486376439359569204167593315676202342148048726877890538293107634639579582302514429280034382037440625535435930849939023318393666220793170419577265736434578998349193150607887410799636877238050076128502623416331728338240969376286689805042713367570519938720413231127268115120094054016156032172119321437458298883805803534727446430164394378469198725367027414781215610448518469976908909509236627831174442696603763241186952146105206861915000862131860104108642042990835246438131845450180109652338034163693575311408081484384390018954148991700052464570452105785857339976174679584251975554894716309529818194878129806887248314960317933205133468977090375836531037105753163853363610226700565304266245327005064467941045358646798098723926802660021704712464769923732807580296585235954194168731605954127680529796822562963758032208042178610099478688630555168156388979083741008923975259917811345268112376629433100438063861524731208289982274691732756531934497595998330422851438866774927562792273307276780971048154944339334809549729673729934218950580571089586559478616977179101795293035161424148183474224067448040751848084597438659518217129648375653921169035443025848856669511482436938709778562142964852055482363873676181399571324522577933030241417081041368766971742771924164431740343142118161782150299030688757521909400943507565598205278035926952052056916519113280914556230939644499751674456105199019681472110566396877311304955049333997856149501903301416666827598658109942291422352819832263879236898080207365241989500640719475527323892152515337541318767020944409552254119286341583731276924637654759497195514319060336939135618232233445718603084228294458811429245032373323840304751350593691386558072789012764044088141130807107097589175117579537508210055001760691982070818798327434837600106121395231934919783034518701654860250856273212707403088936424282792121166373182776532839234491325671402853219464683683697364212521512476441870879275962470539649969130323414181607707247607302572530060564147004185418993940885029245641344250861663105956031654090713960039533680416660901903523665070037930939905975342602862043003304951226023958403275943673177296909358712686704916529599227202383757625163334277200429423826644700839475112582127943957757416090048340716469624676359289116390449605135953725700420126128395097750963898022511672688541070558425813103929348754514486445034104963521991464628064333789423223910378012317429127521964238980194282112908951510271727147486226336174146110756814120611848474765250721821885109564454746394496173621845085227434725243240724026498171335206975393195323284604010608211774006173601808503549780968210493929462974107736322030030425730627239302094189247442999619825048995964743140407352304133166078255094100670017351439647269477147836962511303998491953771060182914515770509188264224777594232590126776851820536826024195634607011850096527071454056301533002188535227873824131640734559607215836255482124838380270795355886478512966261832274946957119373321596008822681590317877263200645913505793675024357033215295948770348158103600044391759640690006203433119948266024282803011706940162685620972996067035607755348231001083395051125554387699533283432178664002596837105524565045779825430518007152032062064929189992271046394825515867754908267646015892603710029292106434092404401712032197788052096316674314291281179955743056815997362324769641629866661711079612602587471076079051367050502610443032275937159978179854747300920169229776282603246948718197558042872310004666311661386366095279789462501616183613215096757086533673359473689116089565960145174589728046410528738428524085220319604480912824114329732587224457574075622792958911853200112630734019946298711636878984069789381976178821533213841900794484738153935668110264956737258287784905838490194585187355445997129860018172331501251469761493079932088824917974120315240540877569227415474653998792456728265700585021366523420551399592976125836927643180849009404385061264948995857166245429820997320099755432898490787504916564130374379105276816852230333347000227830505181634802631513594776111437657363598073970917625146601511141839693562310607893437110748856255283264769292896083915555208644046635979758006148096071864846551573943811235799763024222189576429277159766818057768281185016692217766254039862490787162235432833613466679292027480399775817001029053098168091328824565615325708389692568653035651523309019499042085411638047762405705138909191866088312803581653542930020772736800166741053628238208728006898409962362551066110544087902466305802699756491027903821676567638424560040080443284696685195955024992405942002564284690115025230353319718499506445351209745925845533027057835272971288640942806026401313625098067761525411728252076865953367646455089209210632841168135326085800026353652436438963699944130981188584431366002809196524551608292586217736576240130319149471206103607579248426229539723795313520077016767918678515217675836706024107603278735706263923227068690512258111077504188479576211264184913205078856020673632841472465320059637527278906962385424336908425937349441864065042104995153794246851740232496312826571107645887593527653287162737887856150053551402260540921441001454112326541453559084863681694709914965793185259267767616976866054960202398038523781182628966306775063428872405755230210638744354810754212857854334521955243825232082922428056048281602481248908575146424984339051926385122427417705946107529787848595242428526497438092391386840886719635689080015967930323895404218661522704549424339512576911270775351423921857121950525864929609878899431876489540825194811338504046069481052293299239855979693248037488800291876476630279402858756533225201175271283363575358832557844111726544717382685077693603079862483269381828838862925063125453144788450979375047724703156491170063814071392115461980367949098487689014268865447081349730964554729744028106864272823710277394612694405129997158855508384380778461032889043886861632618868831155039998797453871988334539314851560472914530014311232212818510776939095135154821183850127769708031273471807140208970762926289837535387615038220896058195043369654879854421464032259780151077508466346221533580542847459649227913635476354520994044556186875457857655334165878288058034528462776835588942563633777395879266413980964068738525273403456023761114030502444566054445401245661717183512453842697273391677980836862611675420881489471615703331747092777429381622010226995996776700668771755911921240685202376998203443419845013485715279865501654854671230869866872905380496140245641049656684054007200852423803127178901993339609473787714448618953587504990224175771351537294852274139637309272884462289735502475859333644149850391224056884407081576362586693753061596873422980575289065877175511600581431100034350766744684265025359627661791247617220602735202112777195618856170229892936413688488506738851257890849309362910445262341653613716399107210246696653710190478385648988989641424566449168252235549285471289873828570668724574147588327899606735315449995974610861973290778034457873015982446550529392866321557660550701106941357531977086256114268287297750564937168796906895547126265667741361295644319941210736975658827505007510914625674205791596032992018001030155650348056649270329769762863362388517664803100739911603848853479006916833027599088052222050614924294279835928746909565207056154526426302618723272664257509302654629494862045509091021443357404614775933747126912457482212845165899726564059192019120971156309865724700662439764451718981518812020812925653587880106439848437146229189819390832190426225399255885781133028751529714420740520474428915562341189722782549341756175383021709782262897438882072025809826886380791359629565204363037521268164760340854868010776489041117969692000842113410417486563666812055441609754575241953153922802431511243154058601492154011127375699541917870791209822127116200108540470692987909971812344524550070423710091843185233929178275375243269558700430019374491838531524248168158868599448414469405748181559785270508778612994919525189830255412081445436672448529372655617969291897623245062094964097597799553937148180578635337400509358634538437430786606849203230580082838393507056624628696572891375879368157687933661658353769760394194322223549254845663643724623218160883055860644846852129943270923502482685687592513404610894144764076288871285838545382273604956752110915207818754712264247793396927941097198546788843154108497114671287246681007267080250318535993816663207023263402468301371240571708004772588066964362525725633890804518011051950927989079406217074398382664410592509149123413812250651850782404346367745915766508794944230187956062413635578542907289128811998886818729746895575757453917907358918659830825641529277666506967911735501453167955028391609458420099985887505897987110555077231946853875067454489904850542090096584975780335378136823020789238659809818207381383545448787558500110517574181526753610438855107936464975329190812950676280470947564052596275313365027183505462170063792380386496047041696919285865698538337024816396900230334697818514402452555191137198037967997704926436752100708840973916065139081196584066405493811179408088292053310596237153689638239712789142843529848296962843520675509365603775780964016509695452666138412527435138427536898068196812996959165588844219697072139243664470704870157693307930216523403535012505281065653096320441670615758600094836539599382355083556998291266473719360914781455209459525722519378936582032234346130646930636319832251453118611611784050879386803217741902573468227688109722222816454104218533734307917699629607685021174453559647624930349746149298166010145538751497938367368382359289351585411671769290387623651545111939368412768146819336610769791130121765962005734947432672502745750035490258154112207788935743832575639653460708775890281102348147935597337599193107333410168590124173776554780168614501430462595909502489209559460218462221402660425332186666328413954935239778049356580317207940699092704293675065346653064338203724611001179300203832181453411993821764082144628121842031245108055033977247187478933163433348756506184337359036496242592751378767726590069799872125559651006202072344036230726839593050927460216790286930895322302638378876736680576871544266535210808597618089164205241467469459639417757075980932415889675622667943607250314227196472306245576873367921299922055365913007744333025712579100115294354598959998389284083599830672696313859643408345252088883421967794283122506500478553740200190924199980196668114546630534744499913211881415922006453058251828925147562405488599383512240995050932515642204168716904193162699903988458371636505437221347380249022474503041892543210577000071858828348463174859637339039511712443768233529846926066896599218835690064828325221892842031868669180060020970499101709617563979937645260868546628247681027859686938572921091559111907854202974213143468068803952133928376000545081487066702387349897294749453357455321208972308401761262058009403346645804562163378739757050935349905863498513122316298637272015302321963388029734005922495443555669284042714179814027583521532996527743741456022934019487771445930819625453691915383753250316902543269432314353373893613936315932351669489156020055249485436496365849496863748866135683833300111904336850997487695554520358438384529212415786240421192946541220462953593489680652561732733823288866863488304257707427782293285480808813420093048928603121786790370763624499480700941249249555195940947522153869268554514079025798435743279896993533022504713838151764260110658477492753501951644690277732944611837577538212178095400961869410718653279852951272346747924456242007689548897677274153809929594226395617386885282250646668655216885482627355217602908613385315117046916753993813220692660799716407440341895323138101054126539642761780165787281891800359603139628869781850892191927531011249291766603647902497295210707884175911162160935323478178263192881285622322458080811810091541760047115323192022539560975302985283542655301108824006678880464962547112528831175108529600273736290248065171869369978387871422562253794455752091236850938665525757844140744952492598074670982855084920136758985877942047400294252260130980113108224371957542278104865007609325535672926425280789245178134508069506048406426154885666524595219417633694260559506428283026255629778783661146150137428971542685623388596402192464899086734763774856522839428409216117631589850367491580303524799480526759422488684573350926366008496658169821514326176153351032347064463922428389665857759938122386853689560885681330076518712876979960155488165569903065352243521756126900819352277875452235779035927450749302960099842199278647199109219217899354555122271818151684101775481187978616241390917517060154698524099701460484704045710711817505664332526943138578337882096787703726712066866087498926862478496078322762790693661974215850300621643572444336304622954456782280256131566515253816968867724258217066635828210155025107222470063803470613438827563451859753588074727619978812443393236868757169825532371188339303306097896575162807850151876279034858781091104534600620655391982259638488147793123860639111237695258571691225394520893247530888372303155698647964230416051981447539101953501256671961432100458457466886007135575734499325928253712533255332550452871650391736779617428622513871356951132043347947076780043555890843439787920592651254583368623754096209590598080696286569579538791174116818130950473827995903935016531779697971827742940205887610563624845242625512639154099000225963428981552693969518162232154210304234046396913823268323814242243745199631904100278819963210424282623313814540146553711854499081039379069486226059965276375550143576345548962019881795532634355563870758434544998417851500140109578494739937567596090115518482346281275536487776022448864087105999206695731171025907854640901480579651040838251297508890618633184910105490674481822231270043407085546815111789000127305163487130210708985882379879278420563514288536503238997237888637461387284285412908303460644135694725136655599361098968047443394409261825822286915117784761057250799327124661365693804581421514469480252533847787637491489159403491276735126205512040053774705635326007592922784778707204619843263163854648789593539855414283239707994548638864780820804725465578128918884804054079601362835092826042287221471127175683403396948402582225066808063893976284797639988402900664090869541330986455027495139279882175564964955477403086666495489001944182770310833363819713273264600424599225566839373141744299976613170558957601363435615385261157733922268795637039068639046278795002411940400678121164352962925486010338928847413523635349446988163993880943574357937591976988979151113335014423771373755749522211524645374398976054835296481497408543963661896354210820224996012496769184235787873480506805165364994416952397155546454818251080830167104359558397192209299737615336113533881880469315352836369439035174802078539631369933807540293903613969285752124946214862682373241269012890467821091738335270146060889921168473172118328506659141886649224255313798093968130752850000226676789662162092680829892378200170755679946872208997201304290363415971620714256195903297004142739761995339215814993702474856107546597183043516132137346943143212633856610112628235955017972109308229490984232206475989938421501388338128899487086918848698930270239650577905092914342240379287245054431569481366717449049014203914225741917693109154374691228502858049985168755374183504822662358636881319650559714348182399730098573275605298402790167628399737823933999197035601541116592624382189611401909443234208773078236298889175742770151319849981296120014731765301380725972113294586404420843932549849148072878373685036207362153757317598473838881821480012254418731021180165106685193633208045138986085310521601368159211518877367865097659564080222673667727850558704997017962847655296413156582967009090077104028060463493987885076745124462666101998072003127755198295877817847210928368165634518907214148490306802064200751206876183186453071680037061453455039603132706899322520968104698647408149443338725648572664803457885503173540898886802381405746307033787410440315005190376131409759533080366470351478634136099457415741905391745579121591436343712603582954954092006871411835107722165739982853990804273876687713420279304220225676878651191286246912263246107728151645304692184675778700971285120967608622694585084302695082270025956677161601539642354316677589682302394120836837901299672719331270682219014134917621813219842987827190377671120527448385985600230731785979183999202405918216889229936549029302171180640275694426479146976037650008925803435945868501659317700921801512943409117872417380147437372026000021197230388133588036418494994870958328589602656468754557689577875393484296688354127737882827577212524282656308555054336256980526276220946290644388613538115488093740002917550909033616912997700780573740292965489355515394037928024901136184161050613480247390199224886583614168440349356978280077865403492819280585294001168550418177504648630962497511685124906893613625512820124767693460656939583365714768020581968145775748614804729861510103131865195205185035133004982493146112802237462843988225503769877967762268298875516404177159080004634977738443655937659135365664939738274561131260148176184432381386281139172989439809322252913368531868035583004306155772005214655910065485910717620362171676606165906182050107190127891931752727522923809960211504311967147446834178017124865852030807326913032311361066311972920666967822327438142077410509488269571464896764044158334549753279086963413492418435836252472604814794331358298337607067333310429089495090757017852533764746141331616083663492690055866514512331743876758408586429410381972679205356599133841827781082132928393806056676949655952300688523479813096661003877923130188621373905762175382801485030119735339111509794779057166654450561563572793831115551507875088206124420328793023615451296221501873092026171058994011090209263109418044474748183626907023238947588484111705128123358734471528146179852423270576231909268727035952068134853592633715671583035783540778651571093496076254379965310871445618404353097479521327563454693483172863344394273718739471225309773855309672199252253528932574335109135606839084489690508954925930727191217917600245969716423941109113421064720083175459886180285284061593173824577871822984315523847661858046564994039660356860891197461942143039391651953608243828534272270458099747834328289694693000502097611117829453849717924346040971350238067834392121041255672086705788696651705154612404315274118823786458343737388504626756540839037724498256090269774072429796710709556996327728368636357417930001033901678733727130101441426526454000793299795923533234457624373217369653048775499675866319537491152147889293529180540882298033354724740280724252717869655945519255099173033993444662138561590149443532927307372495773846004987541714508603953480727407039500317537103632946037007757121181535146156216403307048700984508451320552431916247040306889504995690906449454073264466210693318545639058112367179218352673365670436843052761565295929993509528884672704175385930228253457747310817542413806109613692606227899778983849271245280293798074529501231168256881001723161054229416580005645781951753984066342700314946469676218012255176113770538010396043984342061149946443428736561117795195491024677017334358624466486498592014158694815531788712701543404114784252105053163593291834004663409704312466825070438289310533208711066891253754451881700950958952903793069840615811577479148191136867871448210830203711802663931341903949436284950259055922353641434796212021767630324932424016935305665849255764546192095025763472014070004375712707063483269941480094648926478096726265688612814741470444516490280915108744867285408634151934033637588197499620687681820853561763141436638575070882594858543556330177171507520560904352890112424908168629736408303587624453991939198538569913710670770077649951542958992890933317471555560434145888148286411624403625599769370423429476203558808480506180292062488715382386682917865318337217417757517183702777167617693487972661400964222722391833072141776520559387693001182354862858449345875697623770586879096603165844978498297629275280313297796613807069132922381116538354313866427998023437177938686292696773021393928579578131357814588517009653157869418830392771138571195667405434206540098628772202265259583399303491896291089609727090581573966788737548201760493459714592638863060421202570921880672203682541607908873614411965436138691623901397372528980118339538954740574211355310152076981804836673614282334868172833305290242437178824060337911300564304440162818355672115078687941944346383202364029276709571895809009231484066172401380523204116584129995932235257099959242998319238779346061152528247830854922695351383628894182737475365505038479506089008725834938345077460000663916841717037858827733088420730494545817359873517021721487114556038702866918601534100388494822842092254075003182742052592993063396708157387371724212085815606984495460321866033552930152881044782987011639457612430651431635046612465234014190438536123488514090317531176363356535789511009933314180100593620527233370658685045138151175797643378369531841402847681188264772369082000410720239556349316647292084248356638950069584739754967880389629241476886543246152360173317094044827589734574972465133758237448260784609415851457230944015816406099423139759361791574829767430470464902550224335432898228757277753191584077217228097397456208054238801449382186394291807110496751524452953359442881147109492989136959492014544034495247052597215974978608671367922591947786683874853655365832502877013493070316966430623907276967003041872694732434734902993726097664539083075356889137004098166224077236204406112910500075242815903320117075407202892570291076348536310551372234617532730981751065928382829911188704727832015855707715695160989992026944280600428952754038037349985732271800711038024979594514782131696404217109362462035238972903215603578567866245022841262495348488206633529855894029971573297051462600559697549530008691949222015271867845759250500978563630350653030250806997556764051706432101788126052703956890707220099850891021763744960622151380242076599286018862864217923061973606658366897444267841252222269290187437974825333277726320012857760079235250882806173154075345051453705573446954138904044135479189728809729588311936790091857074707588549020688382894926706705223809807356673732211259095041419695848684455683149063492105443610916187899595274612277353286442937086365897930895062146809359690406282007262720930733668361611194256011979623551695859559568611032177704221100045402346768568837768995821875526371822154315943346671361144354193973893269395468043147054031132913826832838802713076565560381728569934153961260857605998111937263428716277344161750984797525939474661638555969954586084539797376898580837972305307231006200675333345993616519435871326377093690960219838229369721781696988962943060572245763288333056030185875024935509733731242423770477491173577412000216490058380112849014583277319823911167181315500712391029673812964131510012572947409600242498129942561172923167748422806209549729872501880282480140741887887259515590687774596382809360497380796361859173922404594212016989973325950221254453100640221644690157058385033956539699665808952068571644308433978135126334802120978785902718929752203837737174984649159108625349100284244297290759561744181974899323426230644636016498586979502548829277329437735848739163841707015439437117449830647966787445828393504479456537579814921475213368160184175388031755357079044901902184843474103129345453016153534998080266363754221641859412448528498257197031604109078264959874718553982200377439295052867587692018810567805279071961991302648662230305135889483370778540284552723680855235771561088612127583829407664273828706781194068005744733276769923241033827183697559730687968621070388851214504968072874528999905847378815038323715124790026672379400389370312199896282097398577720943278873341531985860198985802420860800729776160758629158153786204845599060685435216662614493778441532309605071555305114067288277145470932560622790521474021610987017244984713876472819862529389234083174751041017499909465382977192030418835393591743561028359174018044678330010344921768245594121832964657633898685160866824372220636742361370974432175044427505231399667630000895640415813767885511858511832143033543671978903535823181979554248584275673667830246021241947502174669837758298188191550492460330891339244996437479354974388274539204037345562865195973047696194715351789466900490574704717351947634922841230538226458825598886041211818631628767382454679447619213811252687242217408529315983638238520957221550285078844255461191232804322184728131440799094812764479258494928657497216038172797040907645419400622169218327756247941850582616054555442714328654719934774440783116333503539598152264288496970480867351679320329351941513857817488330645718746473893752661194010381693113321080594278845434282736820252895535262100581717853599199981989416342903566740770333800364770441501566973177546262648103483881088603152276687728099417887594829407606365264543803256288997422731020223503157068646765998554001008504235635492727436215811771560771831499633322991895824203017213939771170787554401108840843512338987636982392796063693967614202688225484520915033480610888642391325864089936686929211728986711293845572995923915521374731369131002808635436254716715648361566797062646247533441717235388013343237565308965218040972452219802942992250044780421093072317522653720736551251555589304564208860014239859067515458758461429431903170658695851559162397731629557576374226697579405612648152221828876591129665536958523436416221532392625650790362344382125108156252241068800274588228143884563825511715758444362643497217989780504006081543076783368162707852177738566401025948837844233486541988053545006203284761466790884309939860509345382227287061777808142146309361391395691514992732567994832264268583434969766056124454468066471948201305383850349745061781739406651173300734735158884797462939288229213269752723167770992883257803276209072261625402445582424726129215569871581062582528041291579452518831881213678728362006364678227063613229235518024713261136376454994366851596640174731958091829052281536157868005672279864073097563029514836262591451528064243795666158717926376772045446844606280575161748984887407227130577216493174930449959847900896805340694655861117206485274037359898749333288245178617959585684620193818689742691735916357567485437872966292641461527979506249419156165803183598218471866386242604005224425866000127534310442693534123069184997191870891214769202597891167731498114424810085198069642215027296478333127151280968168335744565344893279598813765243871723128879352621312514842020787142905256890807888962996479857230742113623278453271151106339999063541325495236206013935888289703060599961857695723933658697455481927971364059358256834309836415283815460086614814233084076601330286135670785184890535792304639430865578228379653139064822319446222944178886836733327288737128977855599163185353983458510360734575173742897615249651721826543806359472154331466557679806773649730516065253338867976095636876482000460017018868365619787119681850683449949417083195117036466175426519322587926185541990179942082780259076686804391234122550662443975735775271009319423188840011621237401401985471716618487655716442135863965740224267461729499621266798046382605071854490035534927433579140306595194469616461044638355093524021018947094418199639757927110773996709561592789144363182942073732975160498923454383765931386183784320974705606659933675357733204048266441099979884298683732617575706401021671344136660549309138011636758130925819429479553806696434955268839395789465533614017589481789868025918199810281376491968068967207135007103474638138626721965127205406691189531536076353091273194245895933536354308435454680532205567851124173429363388159428751131692413787208717367178967704449086803327807634500461697079703542555662376541221808366075663658391974831682413675298897660886234196154398500009017748208526709845163207471079573451114145698011296909340349029351137457012455297975786240432985856589108610759704128253322165982838593514909776145614631891479235303752210917332762032042277668688381525449745811038358017782265309909067020499172436258396967672994928565960147477516911319510131823471419069123277731767313986561816678721755460783297899803152084286910822918784179005003972316406464341711773664632042548842447078931151752317142826158474157291446768591808977810842671842833568411889148222466605110966375178220217561078302332853004849780320555946973448595892279441476185916126436686342007727715801827020653288613355896998199464313872279301000323285783118394210567738581227070971532839585414786993777445059164287596324998499237955654528897787243941068735735123097121384856925020546416699217270403738172240259640367734999025638240257782515117639998692591955944648180301420927924662128066086936242570070678353802454732628637846194190854664202181330924642850829585360368775466279221852670487254540291706847000443969395012126437538472606004522679396570487746498142423702176032235671173454331038850019358353642693146054428468700176707757813204827888547754676598770706003811066220927966578991177381994137553882700131808031477647838201085389158208195214517552565812566664968465436037015511232908664417108155588582138866065814006295703628761302925350833652030674431038555426220550746540339358931626512775833797502361449407596240618067236940037116035723587024260214746068368611640768590795640632531465556009935338999306726800894335818415662868320360211146366822745994872331433849523269248020124263841509763483567377142601287635075920681721079333789798866412267074054081858772212284753620132379313222697785098962219269038954638007106573111906075637347097951709370765581650152872469367832258117373735477912965380721947853284303596180622940476621235503592242087239249281279833427510785059524660162207616435660819173800167972727579073402637436232820485765878926861354287038152015181770585264890847492112823438805082534492000667576330805004913512809229584538864005310110252990366330471787950256401147838416825808906418842948861370918344080394862330244753951737843486886007562984646812177591406475852761492831901945789206610922217513652346342106958000339296235244370426609041241225487844296321173393756208650017295878129978714463484467995218256726465942957621711209780530900824727169457654141807698500124069495568282108868848845402411020301205249731605026624379311019462558822963488493119770702807290747408399994284133420364272343437498761165813138465075739787133315807838027526651774883845325207624300301638850326455729698130527393364360681505891812653482154550226821494102433482654959577340295835343101800923960775244022849408279173729201753410183558883180709646132487399672404686846919867784461299196574059426124442485560331466486476138939870833110059430653828293188479891937711513436175645320077717123541765898760153771796179022470565666550229351780969271343510198432367128492450655637633654475526006960897759962370813175636183831507319522553253292325873547598736668150116625939272174278136883427631409751665214560879718555727789563255426344156458273052605132525007256058529735819210746476693637436885011668578948323303200033947349708403921825781061885321870162102297460761034470178099104543806253634004740957237570649010865043033486928965819240680022642037074228096591266611097451751820372392688366259665066699962840059370331358852803165257270104345702238908747701704578941894145201756332884729739293096647255473615042104244862124017645308849807197384241982067632303550499758037977888826830412812677880694430692501812648212831816269173470858893299051067620602898895775709518470057577540340242121861364255232224526713405723181812572342568369607618870381865631046677239033801018573599676453865387489707696478326117990256130718327319598645199855533783009546699039544775185889326149458000197369060887315431421469651392881436332910582821559354539275429729229945155790059516817792016949388299319629241325646727841848656725509303394442800246858591448519849204949574627446024409073259932235648781716445783079104019854148813952449121258587569389067742276958016152698014150348852753602653922720612537797687227747779315982619302443493016295118161136447657580420002388083340762346800956798602298339534318720286189074840868299709716327000623447309028654564701719610459085839525726620693529955569854028808756380637921045837062393712419335890234418552123717414882986162134028091367051033250058902842353607238791780564383028863341025437767574716348463604185937946086932617935065062865375613170561539249881456946673769696341992031341667882183536942499582417478414008355297592344435647250768822999185898027723132177376603460377519184969726844474408082150635836672681838631838086488012548736329151435227137237759062431284018914978188361713307269876445682607345039795002238876418871213634567108638968298245728127688217593197525354140727617172250664937341816252039363442217227650517491045983617824519961717328963992831959220535792977874803204878620435400461047362314330586157102019306798646335898049993675328873757436201498098197859903217874128230390218045824101884030841161313501312743835013212161947876377585986870877144855938669772511999622237137029758423925265980007097019418504370929852987345017534285502336382868780072667023460912088782808907832176430289835266086262583511047788368417978782860971189729036137534381428607060573622914987929784910839430237589490506211725116273461910799940000723148375178276791357060400640060988696733520986053863327590533962595335879145541364598607600835775260150951514774593951215434033297613563937247326396435865901126761727535175506187177558801460008336249103485172626224168193072714687628633365638152239728244860559195885740817927049390672810496462537959437672812567067431106670291573639946198344818107119938779128291534965642291075843336714364852955436432014510178107991215889374001402785916522736330289356832277331098113326080185340411660996976460117402014672270905399808239710218728272802058463537349191264922689903529719491192918446272466206371056779480168390524723925950963130661689643328642646505625549390403269019381880916451432317527278330938856799708182525443153732568727857779129344111778241022583874581565981212102629243423101914982572288796855753094229047485212501516388568131646663004957850748137499053156715145133429842359589537738497328776757895624724477232927168365291074933479133578648427569738604546092788313171200876521551868558917235240441805157087686278191476474520934650105901182815781565659335474786004615834384739756473488306974110307617781132476466635961872901536438936685404353062524430373233164916414395095496573251885119449904583177264272089039578254791408833881565264172956355655873331315408918188219510870360132080461372097730181200082682628791040543746619032928960375718457544434545039111902635794900998601953234654451190671368916726198592480145060720253097657744945252449051500763813371618678435217189953407233756863926290773870325453935469357174689985719567232790493087550862212397687266655779856000529299817552106084191375999416585594751619735506777896267163428008660138074347824865454490185060357104053955539939136592225898025006603887559083481630644945877001347754127451006692167955263809543506244287162505058330882076926922077418704022417188778211804067147213698204604061783067828257371059612718730312324361520044272542437122694833866907716306810471976938769862612468650813054537520878732968138954646714692815140509276259237626396834592152793632999980585912128741610547815503515109607757353620333003560004363993355860977430586232051470646716128255624687146050137121664819132156726615631623617565999550330840615614388538631297678930922616971091121693726049651617442951706309331805680995855867802852179933970047878526473058464384445346363544020536463609488217062669893690980901476406295687005765461259964514102945051845277470899135096947964699450416142198510582022496132279305389233418151890238332534976187741354470481783176070811253488205246909615136040132775191911826868476810559712968787674203404748707145916391048754542160737833255815679875631606435044452738566897109312161132734884471477149880678716092078772357198851989569056444284099186071859282650664838341845048446897190509314180776449879696878410745954066158171737296097580732251662430904346074515838486250953200375443339987088308154236653806484788562678913361964426856882574076404384164472189865402547161786195930679701620053803949206229320582497000243011062393119490672409868539946916769873803765493974487374865726967383481823749447665176569874179032526558402961552504180273795857140269287358217370759456104599229021910976529277496888102313508514627275681669573351764066641643884370793609232936893133522706831338725939684420532647333860061901593176131280053305778260096030555437708085771757362305907543363269621696858322066561949027515782580222276102256057887130621833226198553305613244680921592263812718853303221940710613334606525804936182463673529932480190469220388777590908998451075658947948555479349036910005949147633754138547663916979457697486358222430288500894784519002991944984869135345200905753866842518992680297945571354696358453677444752776730662627904221665844098367054773383871221537531807788705176266341169101492355245697466388893884502342354025031341359278595968114142381289016567810759527897355138088083064857426052607029058138032794063864981947976409331139660025572173590699674846970999752432002291910148405755483480834991873217291545500993195518906942551146342590282007326138501213090803246857099127064669174425457486853506677087217260629540591548894763070597530598621001217994329700564004058746282712225174063691523396597213698687093208018282225447084507465694494624765583496403038886047089140006022154938352021498160292890660240796576559757976673309253015375067988905256779791036465144646856956772206214226013008854849944904236142493428184506398300147427394168215168378451629585558560976505409806165346312418413650257402639926993590580374920469658511005160700469136028620773765567360786881180064484989038422376056773709582271306653331892966105713545745586721119649940771436719555828082801603551123248466877511712092571562256486062151621957596493414503425601774476794029888426770360452660479882481506676158682397752060287293368203607465149527360038288122263154343600109619070724276944861839378752143564651533833815622891259419470446718474712531388958816803836750968502979581422583071868668714391808894836371014110733588780337486645293218856638160744146110022969209969220469220124870624602122429914481958576106764422361467137963395294536143064048416821315931721034548978637612322654198194248987852435662334233651088973638698576956106905234757520288707952601536092381025043291446753309358299198825466106695344035348970899591154550112007186018035091522064684827678740072430094544853273120397210044535057218870862487649204815068012871051835407660697517576436669018787573653596909323952899680559653468643062546858604648359277450619945741740356913123960841885963805551579334116774921468263228218108701632904168377899050887266250241354110035267326846491973642754200848924187567084058619188007420781579886557420918231077487008874379553085394047846626503350950768198852430144229368096529649964835296544701254034799972070587198230395152756524185197688433532690188274806479075022640076259405313557325008154081896351196986149813113668088605532043993479406295375422883010620425525744065669575392805117445589267994167308275185286471412829620075172940029499818107207421244421340052127157846735636769634327433210460016707332916363116235992446190371438186049811908379522729340428178999140025156332371436456167708672187282365566647684024089644414126050640186269565063126536608419139037994453555926859838071788857183792605012589016496126569185504525448347678776635529509147301430943736072874482082011521129210687137717437120273266762044973649095481001519374030399600762718333123427219155925812498810715749500112417857614971541893391000614593921686268664250571238358420824600221018317033898608323382889542838268009274442431691067487272495883494038239897531000728351215350963034049810995076901314868070112862689132609727641662703519716475065653533617944213488118030700038008100623833065792054613371834749942786730096969063680929875687825891708813379060997391538209814117888609079876774883738777557280703368123577679344238391992626460116114517523748973085773282937889078303011552843105537497312901334431102811583692108349627831563755665537354337866864660034894637380552621637791638660610244435989547420192889229337290534706003737047781914123795125388735504082471635729768022347956252132815767563480531834526657661789914597629748305265183182505273760481152445783570048009687853489441179739549834117331912755410536339804181785192754347667443232193804016509820240036213106799540278548736170670003627520017868760894109469919091169877413772114893242279681228761639278208110246878467723978539664657516740199631378434336611078809503019341030499609446146558942423910848386554750161698230798843260866895543215772130489966788719607671025076916757056825061355791565416066317463133988957772054515961958020983434783673764721340031023970881807916893009686933676064873575698168003710718709975858668533713208585179478610725102757361595290687833385693457242734163597599496039055569915365673363116842994590506330299935924107249621703099467863006636449365632696827719461982144052630836298167138835288116587669066508557693440860199676271997898675835855359845001714393592722332375196371198942429813534066246003986661334335702079750021373045053190659583177851397468521160654208649804477523104537362119218769732076610765693825143720000043055263001483606133281604045785046994434695960919261291461975593611156516981998566861091066970615426804178351515254477915406432137609610157160445594020640646891678219149302709795686757506428364185410164544404721956818722234959688516378352014343537246403234243086767460378342076502176290151701040433046937969964398251249942847913211552982931091158750515329219168235248525887213566609870012613666369205561530543582948187702218414803533402239665325036409762018344639195480684111969022234795059880989934609013794739685349761770356081566009699420174521132770860835700469150669625886860625877119137465534798078959217256304351500855711270630847261530295546344600576741171708215474688102456750581188995743467205579487387835409207354240749427161652192589391940177668478651379735701160199455069976720778960001703926559909639396224189084047797902602476691946234723381946425364970847830795457278397776986599908087962352215851266894316684088266738571654701553298650409514563922305230491693880094329847628193600484581636764578208962855350097189911469732958837508513648216913257664070323831199318473391997935166675543531349896998802971027150672257961958653530430087334191909777065429398378520404859513099707089504775390953304439732643322138836036229353242073792884599883758536696148081583273005256761179777198263238266305120722653471975533865223514001527354483223975418833857136647153373386022112348253325005791527484525575531536699117000864546668713050667573847659659747747414145317954032097345439958447615301549804479110317358854007357377126207930798056875624869457970427763355111002444847000952948054082524301839249628437772408777640064512710000138088782389652377792592220609491802589299137287666510182206235253398727129324470888820553702518451884769409274245926239328152309510968932235081522096724091084358084780450304733281413226296721388506108476193002616227438214010304411288484900592995126943317787503832535878052153303696659191905876138511670711102631728219643426412308255645308345777004194526623721229881985311041004813096137971049389325034962424636932223158227139288439618761648073212164262333288730574420488434583278687147852633178712532614884476700369239740112574548117666739913508701002336763056819507715136143395749264062822811411798852762313127838606089459259047196581738979407791739773847749874431090123469285749817644358125260358816033851011025065235196518193177952716895275839851936965132336280582206689587252966731171935327607519137303636498568363918231650823879773322575798948655763623725173223847525902838876745619432188301461756515996721914379789662761989277697494271422902006333369749499469152625639220247297890044028460851726941439940532759427529208059787917442365686599277134412343192820472973988247228232906747006751785413921494760125456491908210516238828899889740820156870307668483184606040603610472733168310223030753461826443225469477462210112203345658630297730577297499253631798984729908424371005905422525221323578889779904723904434770488144599481619587742546042034002937703912907653020358839770749541989122788781518770378317598681788477905699569043926955901170836249682379955189473711793075168313929172265782535160573205311481135877110485725504588952718717641847445962021314078685394281502959411273238849924978823979865027040566011504548918906407251076599576095240303975663490406603199645916391290503322608204146038503612648888807740229949539820557284508646174432408601538726836379080166843773367088027715050118997145296478121824418938076500475585634321150388142662001261494233096890634067778737809833838008769546906274537347256643395811935197098938132646106271096642581334089782490480818543033714842276822481678575022656482106638898590507488694634479444592411404970346720549685750177572854529460597708538651000100884367842414876915725759565564992934747119116250996226619208177466809918669172473001978252904693335057520206287669013840361064577675813367519754784543190839207352965998787777110853383110685984351225238822374492445976630091758275293381490561646760427640472967395913110485337455760588908348925843189599350286859598681183357813438209547242440743505428601266184883953892152060228684701893042447916324289430112486625051298705443126568403759026257211846027193074609708952453098073050843596416064057325202656186347257888645819691797922534080188199873161044067864662844343186499027847518686162198134909601009143354684482740292025258260192726622522280811001952543499535788997206686045856909505148594160497579172408812212396699750962093466727092885430383569857885768609235838787861811070219099923414439643668159137708464037264506228907526390531664514147759960531800813468802729240680719376228644561219760887090685339455919395990783672319489046666276600208402049472283898537043683376515316881664891754612921237284741947263344421656030663928335303648754447459753124317821052738816975578467778344703721012090634677036986753420403925867186687119754245137435623025467782525844265067088293273862350622825075095558180310635736728241140990887990253847570689085488552612906711460609322990300394398079168439366454330493716527429736696959900802884811710402638405262443715290962210117479466919642172714214303997044115773489809250453205272621765641207846905250930566178608782779843144046764114694635658284439367646577692062049354831056180689692199429174341153085852698666593758961582537971958176429480404303048324902346517527508749798072401315047491948489553832285138277459304621374197507901874325548982713957582026541822100878150665677676976839652938511828288337101598596023336931973801305700672301399246618219132595965511801695510426231331564289299310146562973380616970877056036266747375520901231380897210518841060252751641920786171884184366948217580578094905416376933217920790285673454235777729550419182893111291037105536216182281020438142332481374961247611041055162257103143155384577362423900238928730755379124355047799355953210033360788387716119226226618054980993510137235392641810348080975131240118909900489290599688476981358391153538072420786167572137290709096427384116304005800979492993989991571527057906680639318630892746838028122755718253521573507584726089129716869001780011461984219794932104334928563529770344099681632468505061132632558199038882252601143459770473782468599856711669516002407271287977350657907730855462671425677045748945578935066742179411925141211763705141811711631816618896222022542449316163488541500620756446003417546970901214533836113758543785701964242404577084778682361005937824181007022315775642952246498254378521425623173279305802874041753011071567550843993164309519575600929929669086186557286240824697753027914997697741021470929131156686220078303883726437390736547249834941447294330489324304138590963852570888680278371357208953028194536573182346184923228395362158394746500346026250298196910867652143695339481761024796656738530641343612058911347332705386610726560079891146379020581235361254012435581801657889786889170393621837439640997056007979893380888877150535978124388489189829957426413177044837752095794480694542825918954663447342501214479105179578318901930148805494701601644092134105661633899383860658340627239321696749371276716734412549425936876087481839517574081364065740296797020662196191424572375756893997914467832203190246893332279797055012774145683528383854801260778141085294306809739437681940177585291596309212839545327496539934282028922575008413829510726837505386269402390152424800089662300381471885157869452511225671318313087679657413677917208851031317290729280960199600710764167906121627130915081020564093385907858749117334505620862725537595371980391210431659981215851204452584010151251361782282408069975261490745997864015357018119213031398450730792688779168977052786912725911328801842813771521796239802574525793544501795942299411907803134554681935343528614815846295209901865485821279982200349622031592038240292106294091734689607484315983876576593125134736377438342616601711652825125041777953696895213375460761481994306089362966305510340266515471391383484594872034378354404642266152687503099905705408220246245500231419177301773369717189386538258864579106706587610609522578296699027512548395615934445043916815822824112705668227295657273369143773177366075761697119623746037730456585091653171521774686868060674182169947602023667000862695367536247292930886081603640433287770055110463261751366234927338288936100659588764134624494988295552216019928738608974507531605970841608122875742436365854730538095420444620282225162678614369354174882267587645336870635743690033742591319953915993438440227528338015009478039168359752791165543853321767715760581003225195636803065714564840274503396821674670514749003533035982608353767382256214299251037102181787632222889110358075341739563680052215378966757702001092716054889502385707684112017639940863028845078117722817336912961159594262006228737629876708688161206891246102561419142220214811075901625535234539771393865874064853850272275249651793154464872691883002116988994290471101760511025486892339822332073487399003294051548422470873723533003200928384894347289565004370724416041650291903417131780901461845800569327338229424464398070042231173280370962127692688048945020632160907580473117765014759061484068485867577117077431831941413870294783431009317644910183423767056640601305012862987019201629257467112825854654658193411308849775471835847420825672211216781507941313144942940910807293201323001791414365154256680217820785461980978724619924407573640736698060834004263863989607294857136079313688757966184806761143004261635671061404593729986794102831233492118396165052081613258045160652069688296602132732959388170697124690966350531036607942028177237506953638524908062451329880106588791810613168177488709087644166507561358635217618922344814500316389724310541199467151883438380226359683078689807402305978433848507044701124161123265783604800672468041150335326944818025121771168120204950802181122370990396971728043651891279143408470901026951642634770101358890283635887626499969505623406947649151772917235997707451502413481070247471758269952590475565575957777621327763344764501774013233322158304994182146165922292574978426774647017451660059208689857161113138468586721153081447243214185101753779243545419256781824831486262551971507951679691871835744349165029750968126925179628179970082739814349618988032714452905457403981016545908064605844831591444284558100030059097562278090163209714753938903291216802626376836795025675789405297231522778733731077568765276437249208757283785515542153928462675531425230844105745480659709208310996216845792104937603560221025801600970807055659474933250884184714720382720541985041161795862505844840124994206572708097422081433275712331500550889672193185729523985016796261365512722154873431250903672159814775591166746997629661440414397798296671529441492640344605793768668195547844167061798703722648564041936437066116429796519656376787804937183059299504141156654603262235026486674895780027959610674375653588923489380732650906706626226229298825150475689573110645072615070706547977191713121304802029023009523681336398371813471714619268338916495243147175732391691379872292514027928967541722735743248787174969535872726459361241403374768236217859948028881366282484458962637493651444060310708699875298109669432189838211647545587304757068813256659541888178469859925397360489734492489109055469606881737429961464862671735845902601875875434878974709355390199823222608081113253776886262023824906773794882249774504704205393889174226209869919200533896510475405422006838271555043849706897396724999209712827180889152033606167782868237658158316448889273637568558040893671928036546704612459082990771389103829713172460979983380058136509803428581431237832031376114140974273670673923599555059731042622110287884130727489165559474909058444497318601046473967688172566455311523003422065608834115191446847659360238726402881984252159300972602568581684844450650160488056330902178031654604961640525350523826031521477402451395555895724767909309465238666972545673764940370016964037125867021793542625122843361508007145807194842519124805225719830554572484505188105198254405843784551732847024686667344896071715175311587592679899137797872903214319033415231729912637168148297962702062457143400975039300246371666155872195721606689292373600304757209418203288808675643392589136617803362903206422582027742132462364540400133076115160267258285662712646251145972396163405021842564764641292175418845397097079841958774687704488751365747419297607908824179862995382452886497513902815084989911553674974957084594985076103063036263449719723609336897429707919975432315326038551168800922257158242977281619240412581430131555430893732830354011091824343964818222636525486920891067054968810802158522933832372183033478278461859149395243229497230235713929732744737659317852536157281759423900173309126347323130677788749888156261764109199145903318167541909139056474536996669381840026203772070962276797475784339194538160316601997427067152884638031081920313646914318075739292004972253522695444411310838726279162387649244585887231508236130623430144604526062231012303195097558257848924836875403604822945835554719791155439840945295289455283060808470054956339926528364692339963990119542276786966086270451744416830691039123364652741543445149194648907730041015079306296918697640823650171611417865551610099828771120981861247655562998326003722504250032676475773147017727676473277954422363015427526961107655319006646160321609228909498254366202501461867716580742325527550543626944562414656227510783810124144070016609674417877538925695995547376008829438292292874335279073771653767710667523931617353519728764189726272492792009638598810796151028276893085122023937224261324728633548060996944766249668423231198636108915039162918674689350512922328773434331212401609655563777111934396835710223648111473730925719369720077205494550691041129285199329543619763612888689471630308444494009578179546513536680067399351135654726462104353004376350443579720989102337854569103976294855392039103885825195925628306257334871030629249533656436081166710057945985001240210140297887433001872898139185279612167632637816513181370387247909966516375258000070578530804654721913997595322852318123856912242773327575101402759854662954359525741351498944920982823556503299915538598746459009583657034732649456903527920398247647619419893708526962614941258985578792398256642204968866590362369315685471294253137327146760688264310447719769610976252954451424692775617954843533335061190623283067168153315580808847777208545151975751469465065130796666861265369760156404019723486542631966756957738987239137624954941101728131676993696984793441451605407690444580663146691868712364125892533397584324806699104094627821481331664758936775040442950357782699192393014894031038013071978067767029209252821032262824597524947002532266503066748448744149494841930690303869189232261431378282966365534699292741964376216030901781128014439561898736376245851806798470178753290552033544350952942779352232235652247299218362236548568459161110171118246728326039445135898917059521917357231865512649589914647835380791623491054606989144761912445386362578420336721323058673648590183012108459018423912098944181868077003188430110360332467987952581661431471872261077356993840482236787189707280777377115876079938289982288109296756080124432946352846172242177283133049131372185663037605447673907098002387838179277186714453266595314332290542964936970902377517212430649199684055797796202288578623336720559569050292304533951926855207482440847856971023875037424524437119509314591227166380926547540727265558503465277887514296176978756013763928058100366726617745953761516587483111169429256852876355605189974262722454694384469676977074018554283172907773556275527230189250785053159821687561023703320260317559468405975771165554331875162399085271049456289908519726355841914252040764605200480580779991869764703393374725463501679189283439621647617446597716330701446791814631181824978542475302112045791429153070708062680964548088806544249526264161826195673779253206919606675552165605266578106533118892493214162936635507610339395628474547027840865624480600909614636062828996617757651425607221637252283756493461456235682363401670795417978009373196259455813006099952948000743830919348209896715075798088584513321809710839412630692158620803314123885367011218326987622762970023965257730711757650721182704428223782051934543595407685492934838867094748673283773934923468767311666616696758588726382123183122522648183482612701527400293487840732072065262076183914217272929321508474193369534688692654216295024155438968713891571141182191660736743606540902483783544576811393501539836428548294373661541784139471997693334024052168268255473675549620138980256691764601198054806576471308893192821538446710249120731997802939150482917247179854129172765334775522592307812529226494101649281522572914564823099226284462080672037954747643846370989354413350431618441158890968378399904717412602753895059012759811571273049811897663529827733868494611691184296007246514144961834230329246804967689614824019920038158303779172658518620659074905477305799789953165330957216339449716913978691493107796728548039892839341914116783829732954617035682183604948553805672163851453092911006907435332734844749106915604296830896123820658586820543415129066925913647715364876299974289346778295392482975326638712290764464748347426652981174767373863299012325059511642928290274166348793262966889500801646587209326741267370736746717763924648319828693653283519450111251472396948752544357127393196199633374538665197617049092950161369255497950785014867577365532681572465220027461497639290254015736489787085243574796941981561594314192155341359858809108524036969947331025603952436214558344337135769044231400574414855265518047559788649185266118447313126400802543919187382198125657255993466456733854047035950864148811694880128548281363400247998320245236188471600911171359559245292999565367965532071878028756924643722240382841592665524111638092381394216342647388824784124406403841919366556933371735955011471460945600462732201789108557859684488692271741816085601575115685565967332925813065482447202818628183029505452954995082847858894883202330105439059418524526039802601330885256498729722468720249344831376646344030840857875023944529435424073662269328273300574115629398006767613483356262386150882516273088990406407155810515390505008093952888894844765896622707284919213524530235790643173741033176856925163813134966790090882073725398910443348594356926385556736695389987148835391678839176414085086604681611185405520238008329605071849249362403476661142082969818868790020857471431642783073289403578471008036317765735221180881872151467456811239869374141263162676624897453477784139125307939696273001361672685314268461774628133992623891164341792288340649802069337554164288596764613293683543712044911258327580639028893553654081574293591876571851873840197401556862470758033274347265360036812481521381269637627890411296862824286590790107345553026624798167100407552696528944937544922415311448408179709225376994070928233780339086908521783317923952736805496538055399754614385442224090633495181949865743424972170772129784673012616824384647150775600699115186965367689976771558630564192014842371681701483164832620784768490738855612163080527068056924663301139179522791405685258458647904771292596453930046873101027804066506875113695762704743722678811571625862386453860467755579481225431634609298245489558123443962275524882437341348476892370246983498527089848268908352851341336528986440167335320804181079599929871596835830081675718234132345928909578705889556398689741194049152081221744446725155460591923085544756339912660473508515593314648280188777820295781209020745239653539221210367280298897628424442294068095341791648083237215438664886032030583666723134165090408390517710583112827292362042680726042943272828850947777382169418528888775802463426147945306665567064587623652449032215115049808254955987544660100577981392130452418008157726861272591798663625713941519206327923246923245418266157081049960731473930914619206485833392939115709515989755636313254741925234558681753677441760811947501131612594110383856814109525675608031499414109227636943864800337261241301731407142917520000829264265466152768100754538499607923853325783149860599216237031153499405994021233737698403423281503419911107032275882805486705826462202668889538881115339265471736123452113320376453488785120712038243243696235923288906658461149295084562548927754829833990521697434258432181100803392911337550844834746588138097588672352878385748907883678817099222277311045090708061880541859739709670883389367896131013543406422900155393851587950037718346832299195083132560417860693269034193992205981500956665015827363118027742916040508397147246342608994775379684422196445702128983179995699179425952356048112133903826134353435787694549472031381013743832447435161111571265078109756540749546793539599878277138790850205009307878777932669433058466383494391055138757229135984299856622137086403027204696194434232178657660954809106247513294251256799627963607441597045143222164053855354115127334045325288723256340094722734389420816669661479015482821608559030098102318256440071643593817197440644893867969603220088159910671345112086181254209908942647303775114452939236950438047984041698304025678038301663499727346294626891424144972641999508039679727808190892165726485365247600393083739759728662182878293043795417195295771209075845063795920465531438757711745633630331571834246150983007786853524656453282692195387075664992496000534803522036405347133438337967937986830391526227803249168495902339590431332900346291406954225551903175834092716240800135698424601673525545162927154482989771775171448958353227550939511364828661582104841430423865339144947008666569295561377967748556317906125639092830085064916641159866931664223545630382925768518477680837335401530578085753293515528269160058968413955237087341080681825106896228277050967569911878675359312491948725500394892936868335590650672234405771954043125102423668136911198303577635088301572795159076465462573074739372748312464505115419448446514587417277993102630032205051406301741491579056445603004730278690572047904552786793992934827429109591063824651898179250402978046888705231513037386901082356933339695332899353681042689506999466356281838689095402267165670583015288889861699085304680457681886910618015672040281047526604508969875162668855875104513453106745885424307049878530506013901963170318639173171941410692307602549893035729956698337828561319206202620093183492232955232572482903286741203520738351013591744287009031193333493212846638826513716875596705377998760860387254944652296280825672330342374006827416514776000591383563938206497186172499829650704949963888391975854825058093686430606651642092909748039421952747251828578709510503102948157719791852935491350158820027913826620393032067590146012731407314708869348702938803021847028339674136003133199223022368447308073133462869775255322705882285158008487324344511458111317775045613831776513696886417155431217338772400567541064222785411538288378012409002622005743962003040358998711149583519079319895700581692753550049456377340804210772535107093758928267311595927161238612642746053538364601416600592560999275603162385700149442138770372335626779844206090207015058259340459467207759575283701857650023101398082230313694338111372132260812575252170509967883926858508743192235471538251313961671424458666615886158611029043682227384800724502376591153263227875557638535550947118580162861951905603284947746416188799716281309995543176785742053402947528416721945549791291958816975320839307493339456707101918104297684650131621948832454302916506156691815996621664616084506436471498957562402768332915887249564675006122112627587149030093971499938583762314897560552451480394881747145227100175188322203291184989224171241509919005248988735545994019382684836326332961743784703414558845016638843926294474350915600646990563607167459240183775034998635199804449009095385217805717683317268726993390435411974694592337624093482279803779369866126239824499415126842219616937119597703922292215574092860105686007085735612638077562216457519833789871990876494134176688096488423999323617511093852379800721221072526488428761055776990190731346806960566659406798920075971508963019109969245466346346228496964731278789315756982162507918440150587301476817958048460832635030210126410202069450096905960443744099522041385647213387023036944822084057292266992173286868087973162568872344751044891911864394802503035761850247098344960676450692196287211720723217147091028629078517730095086630449133486481799683227202821340200817381274495343721473561861312484611757242861467226187976907700888868181669531395692100633998432940712303774680978445077950139679701339550391652937665639212531750158070222205165516182501636390793474270483738506397778696911603316668776533497279912980635732214446660388418310382372364102316821419263574760551953438762941570729767825554815318326213448840137786388265914176830825016777075826486210185417448352142676868075623555942510406701863647422331367856230663753951327259540217570400333726636439066449787169371673290157408314248486874207129019115678494833003289480718988439214354979097097013052849258588572643916443962019106556535192538826317809386820198733117934889778852214092414835633207474677927391218119112576877693762910379580522262847804419612634457876222922938099926170401175027875957666410416026241109876192372627354394771511981141426796387696796594352015242280975728437219057309284333169465646665296881725248280906233097852344003525390105640313918421717646600394791282300921023767080093059868570110341664745745161142251146675652292269150675707241784936209589763973000031539055578556467231474084734788773648550198824621926428597457494917725354000517725514229487654415590672057026618436670701930100159395106239430264584392667576907889001260451588326611688725631446146687431492884683196052153423161057177117709989963071469574297059241993992123363706632220234102790397366035671269240430769948304821274296044002167449666381782229714187151286850581617405349817823960733228366089142708990970490055995696155574148466288458425958562691458111912945219383517825274263625082816208578484880238240872799718715761118556329544391987990701173817361688020004801974389882384424490582723522748858892215411449095950316154494068119537061356109447886502702795416000190279171552002527899951453704867280175032478263133158176799403775397584932966534716317970402671177646141789595514844924118946185540948213479287103573561590499067192312086112759014523777496871578341474534916185941026287873535284353478926429240039277531480797774006826217406688597927152744995614883749374948408530995721036156293552089173583043700401287714687855671448485607273666519079869236327827381811770389398733555874361354319936951868180193027527130911437345261284300074874542910647531152026314663160053291287763209812055116403158605647831555390893197741164372170470874582253411222327638213758052767442513860466002459190027573050430124698299402749436169761584387409141731314178822988154678151086868263121658905566128713359983615623491915951656826919759121313926607183474354708347575457661408378413416067803352136246601709246970742446958289213527729895489940663940747233059998534463470199587544221014366925117518213209845835565283332934071299277217929757328505850717922272392342124824977338695208827685721873896493504998118862946875037169249058639854592847847015971478263345197930752798616654928297604561491368030422004625758475538071383262953920542958393695962979353979334941566033336738716478571900370738554161752179278972064868546648488001902610077205496189925298562253351504133558541743456401741121482825800719678683972072229915272870012476941711705031985398207822353676816954352282351971470501779245783817945036252856601918323991494598232578576326087061190465625537180064008371690198225998491282136181449327220706143109613591473653085145833629020426060006478746457940069282281154916583572197163275400142226279794336946494905116532333491371528647227890721911538763348763112272705377901456068236142475306453489023131275957822766090593582182858766475780521899438123938748251854401600912163949725457879655149404489396642011068472145781436707637350849082153847857612706179609613610734058614129970503530445591959169087983301300592516987011508599401449833982524550918693996206481709091114217774246922602405330472260871406785600524001062667203472038291813599344891032942447786949162878981855637098031496236892643583913666899464780807128217040708738295645675401309308700584491754892111353929346706051967863401824615857269877452959635880878085529862798328570946382394568765645474944888917437363287828030868950187081232756374675458535593235798715421174847077004710057314019167230605398376853977180897636348797362741534692069890816268924412852513938284111807717973603514975252604455207668899377691136541350458502071709752810182872983696312215850171441196754638267915334122584966716537109288680150969128868593010160397381945801202336308984394200319706329033603266666100598281017643069747536407086913717902075018286269456739968184479528948952167502183295493782510655781257132145325747580655204257972082173908093587537141694263044323334966591241159370486453830976046754404813206889737988133180067300181953167809829929697537335887142372299821176651753859835017502432816697760688238932577692703258628311321249182866027318376297647753001408889361080981912581121932877608441352200255500811260939217149330651119795403250176209838249181550228237599974397197857214446033303120310460451804804971646337564953944765217834646344666979580962714062325280490596358818898790524506209431581645511918262126874869889905966048219267557713073746659636513596392040514991486561021598332164449522968613803572040128806814812245005049839272865548760704543910382266488456490222461154132294739482643615254994102866627603491367363015550444799989494246687089640131437383013475595843119036849767449202298194584468163854776992826376481091337121619855371204844164331331655537371776071287602128614098562995426086101941850442033134409084244362888979669663457135599170161368684226221666710115333270144121448154394097187277650770234513539790967166190735894064882406010411337633393140881621359909276118921137794531973693426267997480574488424387109729899315165883495844704059881179018813979824479285420547635035446394227926795781273936287034798441111184898857179951737889478511077656680320585377442782703813026948466910650251463118731564252599314094566754878896688873254850885847383656515395827910849773985465301947617665783038196403440984840330828810718648574722627251217158355620504776626278092204307471985585832875555128128433663173636274904587652418268667459090813302894854729934920645131654603229936156770760014257318757952638842776130123789817024158540278364820909469183235349162738198098570750251672141108272009657060058958232686923362339610911455793543659948392116305726451454620718700258739625661298885046978419873694213844690022742231085308885753995423429036616295497672905932577524667667474888168349753309513145910149140494497286724498485410353278144760039162670178610351373526795374467181218350657341753508767145590582960286946244565861604448046812054668765682991973284928512053628019536379579475292762892979903451574616542214621481391759997283398395213855772231353662872864230243771186916611693124908093125217854429294594520971163760676202286417797122272200251680134631095682779580457819591664650992157936142882613158822571983866840786057248702912858630335668714643732573924276857371033842286326544178687556361892480372403283413612935994684421683022892013433798792625029242723888985581158454700727715598167093648069278844912539518899602038436315951069896816708196667597071633392935851312501671058428019079080764663029694821623411324048088953457063031121572812876847779854339297005652015182790317112438369546656453501247404397445518464960080252593489212366188520388937059140226156803844327605764513652100183374585739489178339067886876946263404232778313509693600372483917283325288874813917061190758434755055024343079473465759522898665455829207146249774780765761004299240678376990214931823981995652018091345475656510745325895026971046087640200350071422605889273135415012152759576073887631686824228238587300655734567453473682070032893663783980642364234578445311274265241082579357894004606346058913479981857018594911798964729446167015198530979238121671168799224025235334708190781469250725323644337849725279533810172842531859559053179228312111008934596270774608142573627197962915410502211445858141336777784281326251035385992712525772865497180422985665451287322603628050129626285065314857004505639394137904942317591046781413774832301270250411561799927787078959291258375630938561161806563172992670542102538996505681731603873569567375851782473749977868342315042135334903504922319781746532931306723120264933796576760840015138637418505245451006927237088582395529544265499920095076932758646943017523009759142712589439581558046212012779783112736641841692164514411753340996292364817296317584997471737448169512498605669544926734689662745783549831268734993708934004936484372195238944098448782109536305247929752822112225100870961276685465386407565718694750001132842225839932116922944930667794665611339253036584502221525184836068381715525207075272388486398467740110900340334166053700036042378445975984720073870657576637162516154825352408162431407695683863952785654627969565015689503014030966977899076814696618576171923714363735076156082912924187129493339636280043878080532655294495242332014656865132248911915449062223461322748251387648659884367216215904267600830801159489515761679906377713903427341660205718738678405621401463284363185067198362482282859664743054349074709669522463149395877396657756797078503901113516962249585267913672694248493754570853867194419198064793003704009719525135288089249684975356549322761585300441507496729081402239313698032823766983195579512016811662565216528712547584816792066429291597838363925588375006525690516154157424357553149786006263593637296892699667089580676058770447249670865340072901062513859806814664379405389333408093271177086619890121234590500807399468453607938300056048980863112969125083090694463379169898000900885957290339513235286018101193392247696245740205821965360960391601100923774138291908912202208000360981672727724633499798487691528289450993249624260352725867807014976188107757130811621502017036562651676066756524214676570826931965988109048815546354944010023275959824750311646982285840884169279604743530413714583940880260001700200516012095376584912926389908845198192312322150145241909468298720289514930504094211648995786893936705541097833163780359486560922895006787359590591528377008053056170644142289092756264101638997421615622408277635226548645745545226750025219302529965433568251377998997139801432199930521568962212201321214437552222867643146846476210322327443047171790407902158815965414023898964848992435979075388530379858184932994247330211049592112908186484269697089008627654127692292974821416555422921585440300251246976991111683650353841940465999463552690984068761824800730785684168555349681956833380363180533224085247189038365780336601233172774123242323663488636307011715907166094707046623218258153656616850089112995752349576446318903288087073850465951768306933134320517858863052672601218416271147336452494598775499019291056122662727091771265610205097791938386185329259758926155800530639065968397490445243648554639012136813319636790227020610017012648052847011372763382471395077604100630279914505437225308858460367219229765456212892939606001498358759493146697976323600181418169655159880335352738532919174091132153458247400191665140922959968691576666573073088155087959465118194951454713644214511885514036382335858735936753187589989711047477955724321689593164584979350651439133707788654333025689611495154644453488432374202542427174205129522678044019447883931814257847625189905342825771347862107394683674612659194277593879760177466573988919579307379339139619799349873839523116917291081467196189326926696584455528996899959138960971882901726777050453451531315675077518770600457005028976385886016398184899441741127242861374758076844180252384136303243174034760129780745007039032071398960539737967189959453390561252057602477435502596998153055723906296310195683208956620141163568503952607257055578085611227269250768548668880643630123329725304849833340033269902332506571931116998738568389722253447814608178427755483824174666251599038589305419400589080933898999336359501392936226222350612594877201943663264209516852310593809472230150955982041383297214202624867448056183404434994842793672429875789453101780525784663078677511275866630355396584972850705069258595081878408432371374009803664227964631162638783232737563227991186869665548158323038134630329892802086401124414957202245784310841295388836310787476720454017662812412474269586430710983586948743148623255856492218004588130707376175252003478246184380267374083968394198689067555679620687754612245961176905104412502928426402351619067242496815825886906576590379628066501308678217817833321287859660785565093406814423836988931385954371681526696487642037137317751289565479529639114933084351456113136229633066056318921657175013557592665858132873442884032977189435932988770698076243302806621234097455310380446956193234098197637017735958499629135072092047993236590649424963564895636978156593478067408393523088561863388915230598724002722800625878928322628963766338962642387558638323572476738671486947346549803278697852928143994209266391933158517129107197476625781055646110834610591302005509371135701224872463374433859216147817497271101426200084299211935404306025829561500269827500217913896268873876126222205359820660074360145687650624237292950765736613451230248643857426264874805415884111769685634748347350474884075915538194530528817047164689193243388295744871004083320417553011206626491715551831428152588362876244667612536759261281427720503616824180594836626649822217098825509075965112858523815633049363665084552849294727334312808090718776033365198837574951118875943807742528725353918806046455799198550174186429798322462265792404796911015602505209981685366707396432340920316911769106355133412655097175783622735137226601542574680283071523799387558837925370276361642344605970975876090493218257175213531732233555445184819710778383960946206086665524465141691293669234610991477099400918258627193172755870811192961967911766835790360067750841652836313701207899475783345584733682370149235931883844362077944773028384243448688153843205485590364003533230295653590814251130803234499925925326483055697300118458167515434397426415491142073405702031277724459173785938945161817252110680057767863245807136051362360157286901081656167629796850011297437065627921203689810866792768974461619281057513413461752605717156363963275657307597435515551466925228381215325604677264907505233020389771259581367342692627186244458371437399772245324359704461820214068376263999966324758286716981361718291126352358754189079223925094445334609043197629463042426759175579792918896988022861055702743467969400947248853328869054856736996724417192210396450418004681601468854853599534034536561493694053456876403455128472910917792339609243096969708024407278745641442148488415260476996896580761556234724238024419766586005161074255890295092050172579244369244471947896997552694022624345075612092633051835383250932560304308451797169036193506137646226036606579806480175107339228653341363735562386779301206829515363667077066977937928891640542459701577021592568206592670611910229693447304819560051655706674826052859347725656513239483344066456129038697979908091064552260042999249447712685201305497022604936233700623122702629186829434929934463390996336163358015703269379737782900644988057204611825720667784747572384744616592984321423196562713193395481745281869842972578495215732268397562100064507278480660919293802659543098102247206542765855053396245805137249413552348931269391023559673824498858824665131697302140857599825226753854777562396544344886099192522903467642243418359668663382048495631224508103315433985698344096436531032930499042396267122642317296865687691755466383403832308551088838754661245793082124788842704081565406712618735468767741557359224793928121603684085945223703807287795536614772252457497357920951177622255443414267613664222836501489414748705743209559840513448850335463066989112924289352904052772615199430425719171957589342630647421043275267675497820565412130685972201374887301912175334391432074723313706316087315292780502332946006930000448864360309426645827837026167174736321447296421682245169747077961258129638326916001104472310870887381595142828532506694351536354414757322327960645581586058889851282436061905161132109742869354626606427325311174401771798013521753370475139714899734539805968753892312016756126357894541663752597099394830077552422953778948453323285917296793767627964276483135299695081660949490931295485469127749180374701710353180960740199328470920217879926449708059404115723408558671251820447998850820281004190917238534308723170879046945518447935438881157945897476897728971986761264268522730567443517936643606700230029853091341378716473165096417019624048082049439229642334949324269416957265125248401511412216941363696049422721057944387264811297814191768567813006100456787867455932006567750672194545052671936697490078800265042382196098045723062463458421337298109345885785582083302780329191080223298727280308777512642862484228048668469599772910368282270948160960445021071433852183533949769570781440665469454948940852930595687277669968210714097722184836403621736416144095000943744944387547133419816137512805774320861734747252863689952006021388006220938588480131374435890846693339718364800864662420361548260612516259923375433853900112490695159808899265007438633996886542066998140112653662554989474208589632770651765601380881102186115638988638197007117384953602995608857277065972377691826180226237324925087661575619682045447362252938342285646620987620187619021165954424297909301111478969093561385138920210222969206279896579227213175991332139634820351913278784659220216929906503819422525913961574465322796970590299448194357030537767333899586516408887638488910747477774180232155597015693900284421019454172306593631741036452980621736679775365103252243762157911490027926564127999850852304533884868845059322100595145040878587065582257777480056093981342090335914017962632337640135643655388770520435416568620133524797433532396420855186865872315802915565800046392048077755857102548286541160195718811823325821247338452032607538446735907098507307812014819391711831971211254979039110916017100364470623249567187502328260663531668800838024830000582103274713096120804639656836270500390128392325642134363368807203943699428887014005729207095170311440204366423681600401176183024328523304128673846294862826304222882383924691361328314600322689005372785397336247483299244268242140157035879383724342241672906596883787724710058562258245847662167658743227692108284706816122914984981139608897896527275782567568232757007653224680224588980830919574950773200617587823574893750091235149653471833518152006008886566742210215891276144675101732087288580506849282941520662833288835870185456111714660062472056147636296533769892587478722145619738016830697605497706574796122705965286657272923634833186238422020140574444948394445861114121160407361219725052856354555726001046974160207818958871062943694103305966038131202422141144518965851738808786568250299363497180688170248089088487471755760785309085860934347605369036406552512521620592519949045615491139772134985645131185400137062632654719015235626732878423380475114712539017459459279292161372945829968202466653447764267564603108572912448519724280521550735077658232610074369958811876441551758592581834903019245427580023338192135259722990650445253743158125190993563112921648657662099496239449519267220331864699152891256196993145501585417248148250565327066902070027882553833483482874988592920936448152059874170297791928644582588880170780964314212595856269210925718525633475103528749273932766848653696497438574404723053212800396848997012099761431621776878487635295279167721824052587825412937462302563328266014134716937863673733409083886553688277639992742173630576812474085473915351956371917775853582871754938581746793058622922790379032466369496608431875786550399284304388945119334371308663743667338231385659319891563719078208100351544979938936563434456827191934569887744311384376075295015050335519194891070340111290966190436358747569695107438308617729996147865027483988683815326352930262105925632277263430706161142957078675933930706770357306303022157377320546477797788969395815187973699246761271348738676742077794676693560751782607927223327095068388498429330979236849972968583410275292859330439867374046864528565296965313286626859838191398796805806836074224672053677453415690236218787944161685627889075685660501772419021399787699380194382403622609106526388116334754862061319460192918202554313672621580135368593783517734348184831225438093711412375140808169260558793675618051017078258301043885546293515727797457875506638365044818774212636447188674078416871578516230830716645171175720039816217123063125639394191209009372256064470316096648635113875711193109923617876310469222890007748100581644305114870126826537351959817850994829963516692566102616272361792723857254137070690150444417007898874072990273462576328754370033850261463077410177354551535559713718830728511813296977632895233686382749127938447929351483897343534436263889444529881573576680974056439778467167423118063553156220676740966805420453797000306761679661545239611443267649962342101895569964267452512590172199731106822281886445092177497710771561459879558136407265106581329240120913776530487145612632710459295471633294861611572020068805356780999747665762213728938751606679419116438958688279370580344814567337617829600879149902361097926452343993598162648121087080270778048195789737452851031615862125212752397739364949047211619205757621639267659961999988861514517153280135904216701477481818021694087712237768891370146298601173128693152485728100097024258606472467989387869610549773700467560803574468075464605395901502152939688782963790536581831799808816283612012970216632353650844242943829642505920783347881746112385260405596503642065419346518512211096024843718280814605474983825750404013665859321214489475160980996557751129667496937013806306852241986251385044451067585882295444071486882183292580981258303432860067546750779713262490430007187192828953789727000487844653708571846305180756442347325939134293134646392507756154373956353606165089162184255011833642647062318675104203906959863015132021172823700453934837040429935034425611510882894798422508154914739061128218027029191098194486889166942730214909042109200529083151608261136021589017969285334801965764634705280738514110530545471407552483444916912300921061707994082649618906729523813390466369527519651070799010232792435179528822117528386390184588682137976762700174296956081586700933861721505608797208654327280785297299154199893886073741879743314717356570719630509163094241851649990174956293482810031275349284313086094582199980410259294304666003219051830585438386889169207137443580972782130032641695690580100187124250747307128202808736341337734049475763968632033963146808689063074900689664683120798582875356257069338335568401004587623255028667611352569483236354073314819134145858768144551381999017174869414278271192762087072924880772725954172699466753489285434970259292283470751278236628973648847573100247306165423765732421638778498118647713773887313648091811452489177552416379235660907177947513462470174024503159521910864995068413102573608418604781220105262554700115536333565485253294849719064713252480845208044020205883626856200045621186957468424664349513273187395540324174066855222331780398157239952990876278637595594564530540555130522594141345015313105497678428389902807785661540182800388072269966771282159626701583458008581039511825515310361680749140149975385931279343977189336363420421765941805123637571812353117038469386807342514469096515741635218165372377737551271595843014537045399059363120621874015589183373638291438994194237285564016640157819280552129921217239031418226125792896248614782025748292372624651327731689434657592285013585416597077895839140656674529658069691209387048007784400490461778868435572424743340459103750696648982702538317129537366892289095058785406309973473883437139786308893368645436874974888269843150851333411373366573094915798056146917566713930593598560262686144131473233668370912825433971170192648429155812159613832180882407311331197240709022184443530493316798889198557839744479133452737439459299815642539256657691370221896867045364707422323583834810401072436183005149806990783152875387529946422484533497537863470447874362843926532352079664899793443707181357273779390500805819617234459891995356913200790971750793799573411655891130908978307404678448454432286212983201623930120261667630153837217949360830251036426365503522587368934112190284429786838611534442043828412347680030645499955460720458447108031068205380247316536407063931126404655674902405404074613720994022788529774985785999862812417311376716131540082391269190129675368068092991224506944242644989501221397438809818817830334755931147210465018118290568896185994723620117442682562610606130498474339680651281738780779654369160807969849660180500255803783089996989551760372521445344706468518511826171789589838635583031333885213182207736379022283328193264173806168465301181574247200222487822162214148074282394945456240940662008879254990298198300227726676991472173647062621490129591147977930121994198718754561230072377063461253416393412418170113594417254384198676308206594089851064039732107803688875390296042321161747998007170462421575277010311347797136729669878185060634959270911759560622590828233304937512940710574819839382637534942184826356679193055294090474811996132627075783481433688180722416225197636418208937512896271598879842113683594074150395382776852608934858904281785797706731242677846720250081562961058049216220052192863062527722902891171257935610048389017347945025752578246920879952603674011289835604696467779806193963712516266135309336957480214089895076022153967075024059750845057186414974072410557507769910299952550903554635467834818573141070065196630213303651098931329626818482438843547451746108923654528089688619254242097191950726833278792301563716268496494318439011279821572878486437385911512042940552703897316964097750458470895205877606717283396596185765853787652799278702300186047735482254394098099096445534494778847955237892647996135384347905950514750928039607622004072551815226950165077754297632039804580934558698286247818338388464993459067557244966870527197147449604473621726637813330962727386842260433410399157570383201749138368055763300377871974293014722236002269465053908921766343124345369500792130686693449311661705112656212380221384228797796621906773880307383697441699214552787498229441451354880357487370950902963000880951921875704688183894927263478373209886896540424777036921364940935312151725425628181259401976223188097445667672913201762602741215725365931833680429074367491756128648486952149101059095152606597862805776193620803426163097620888832076343833314360816675961350671005413776215745996412716468293079864546029049938853910510061126923542375118433438105052861270435180530634227492544865271111876913062751323989738783704806924923455966915667529143768163028588422882342597276444979924209084921566802138173636929869089975394287881423004582982276326847093914570194906620874844502755458195125279167742570619706614281167496445120922346889360991478755575559554660454377584438923733222068730413759231480212033774416517406755424351642908227316909095810118308651741349315580597534187142466928872513671036285696795530890606521085783735392382542478080783538107790201068282521019727175227794685005563317626265552169481308542166529332461113693022183360307489418764567691552708948111792929674151565428648875159434981543795051720465038421388332101919164685117265774360883070673523376952939962028472959175194993713176252816656283176109745221704013776819001797214179206547112129462325082814611784142037772724474808375742665607791356159177223586738280824730807766668448709081767909589766416093752441491168637821399924006320302815458425103784847857721742162216677332187207004478124981175072376435437105411975560686179402595698420691423280282846213478354986732409465268642792932174484170128081053450491155529259388172102197602339107458271072955597531181362454496127031514626138659296084127701722208224024254146031936241822118491919064677727343281860425657396928138629456298710663978161277007287653463934836225480024095826947609191151924380603938385471845287114278662783430598755086262685774378245119990727297616166473129625413220047306305928172787802320485333111087488462791319243612112023325898347404585933789055773538050757660626084147977420549864728931658097407496964551443297953281985691318962363929283589984648781521989886011062483256505947511684768805939055617396683038979371147236742502776188802167067523341725177631879975566503965869778622840033170671120683629674937173639030816505237498714520405707933514971775829545050796606606528373394933795099923933815742320802311260247886011807880853718409444939494200752163378643963188185287145546491906424615909129851652197154086722069387870763421426458907272280555816898247873613501082687824835758025109970575306147387492936228025857831720618998526170353714836450021376718336319008304672651315231501046428851841962182320933185917571946747223476842379123365297011686460094299248367376637806142994415262267587351725786703606614478034161695253235816049381919638055967098888943582325109864102423763643874434729935209337717155413202492823957802579159340305300380679608451030825906377770892190276550130603666140426323839279598899882755689452640545753951776915421517850531123257837176753665319432206841514134032383239615211073601894222104919839039391130689753833787333983317178113520734187783873994223695171242899415130382859450171828932163935390802286372089213916830667876745714576815788441481752769917601021718778500474124041891625159946552001840603378699335028913011542220256555072878610606381146837040030257420775353154576854117395636494268784223979205800679721280380666848746041845024775653991823562449670210241952628202404688746757743316234258810468647751609622525132674201941336460947379529552912380902343300055949926465252219413562253011781594973968622635719690819827818045613154972623639530175607909720535376393067503955991870448988554358088846500641744354963238615776315585396237023137118198686219422212679471835828309845219689076094371811561027738568833770516204679819667917567101900152763799864763261054332300595002947026801423706219108018839983046577902362273451678285260513202066346114565466960742226147429923104852971576194955078417888480266763792702930666670617051531481525262522291742078476320163188921636453863291733566426775853423956465921341399176978210742434687201213387153992765622951846256510916918207717358173144918191046561517476011772427236761105698605791346129595806565495118846761883025521055550296082247199179558945370072734442079053137990545944585413575007173419364726493847307118936620284723589900413901699249725141681234917105136050081191169052189390792003482281931579107537479497711161186418478196044208420024201207796060111450890179210562085663042530692999138873294919400586678379328395193867391486162301448880194092465478513721168371095758979214695618247941699798957087892277260698504976444661693201231853175250178635084607481979813506828073924748661784599870861890594505902098080992733086784305828143359634113789349686423186697140237805056547003205700508986494200986923559883281965044487018490603281710623112556986677136043241966065889718612571691738785721924493404206784396427692474305335903606869874741294462931351936558629244364101729760003366642620313950763355773860278298908626832060108563905625985386059506461653307358019479012828888747459706637126793058693156803062012858803535754587725088714004523695070679192695991142974027798718259621593474801192119058568839552441376018348481277047332229384901649193441926820611569813706758206359529467820756323732680921433014420743486824396567412626540284285076692934219838187181310724400519239977353514252820516675088500602854674087944790357230229073797507989761624800038119840016168980974469834226097476646332855934190947803483215094896398987039912017211602390207089609942330752274117642247950408862611822209306013116320197972951601813021803263431992041058183186071801265531869593486679261261514713884968123844969850040294680850058100232620542967912961126623756793628427169500314993125220819577049981672550767081494533539264543760705239462776062236724548048717871971219710335937605883203199301319702855672253298234562019911834028570101545124465837859491554345211323507676964263834808326123685733362858417737155566939032552974706095492338930481373339874617274162337084606428151612891198877808135744446298379299571836376530523896418117416039988402580776436847549297077065232151569237962855626600506071782328136385528419943060366657040582514632457880595067804828714602032130216846045442416376108189897041749481993718924923051437766882253608650909365159078074088917178483823908381839238040849212297661312709297285946176284252396934127880420420866943518125467739872479619959945779959119859956656923766779517035693094573945029591757585621563950194561843286970952614715188324217400660001488057821631308537745022117299228837288122425048440651023949417294053193396677965817055195823539329838329394815564720112455204306059157150110944659213867895070403398721867453357741235452718437730805816156031616600260268390268262349983451769975539689502611482609481855761741272333482629494396847990987266865089687890188728552461144691389384780790923807798348745807888903419963516728559048990937699426703471624185170355581855537402819799057470845897177332704543948223996713226810314349327105643429273229937033255180070383161920784736568615161264704525193262806127602434928450951760813782826968945301047827906152728040940282112961488968514778260287236976982840370366955895283297568094688754704663963456306781660374682898533140014106206621980645393802490296708868425964576919336649054351582464434120441090549504685797049159032523295496931730458188724488554943226917775821670776458656318042799647957922061087201317536777715394656987541897421522510109381633412253576341127305043124975466870342464054270586968881754929331284239030083738103232224019078568135271307814613998250593331845868331872428284933735381643380199983149781007998636728956265458816210897506170759351875304744730860424863061895940041173584453147248439279922524065946846201046835145980651076274412632130195927344477811686910373949721860567512413301611292948138617426577824112712054008909679987765573301270311164120331471864458296425141699605989105510277615815602917046349167779818377762765843308603944324612953404184797678035929055782313362074357772049220827670860035822169373914226219504003344182903019259604601119425936977797391518992897094690422768142545128266446157204466666271157533434935299067241861400537269446795548683054858495601845874537641399588670026007839124312362138345658032279918351663237628382697824232458926642553648189402710600047284921256093760933571647952391785434081273526692998754004776578885986771071741374768962014238911828095238063196647415713653514832501395670449377710071204395334708834576805883102449564672467213439129932909964894158965511982209207700465442049550106935170795122400937373468352101028083801121615957962683645928980638919402835911451749948962522253760620427950901809272599920838698059325523549245206690175353572039350945877588462438547370020666747244392987729709370424681217575205310843173686082118234167210648093465818801205582168755945827329098106175386702611858807616788969338401746638845032315947720991396642958373621232690754992275247437530119942940640719096085717428562901377118981516227040515624974574381197931206948489695761348178072802464048450972648263813077577101388512232857549484557378477579100637984772859285845269378921102606039545869917698764614621812895650696125652900096018620954509170470767603431799860020695486739309472198439946694125773668974454356036417405382619984575704193558012952781664949456017885395171103168003599613403048300484007224722192769444173245037151635502367926135460105699464021847423394866392506050354996991089059752885001010100582463166846625289545513125572028945036975785792622592721208577621727017072957910850182049684355479540026230690610456431386551078082548034825002520872639334614041430380448413486562308407041920319122874530958109394702624574397984262818224616777317820696780379110324648334419148752974412640912353827276164775809053461938372857271639732828513438139475092159144919327650059481182592050737566596253297878485778897268386642728444120494462149934289001129697432448120207873459007567099907070254589973411880733906860158667734394041644329198198584260428639250247084984018460998142444621298343331448799191823028106942596268704179232957907302056661666907740049977910453209993898326737055130144051938568626021164378900897135201199843217815494457518129037691782168511166918372571174873570478509904405320945246057025850231166813043698147605814566841450260631776226163494594632566063946344182385188402368037626262239416448596271090757692040657921638521694455483184813258228206865372379163837055397202168675671614111633928116357127318741676106756541088631386906304252454921264513157030790863938882236446332980758448867079898882258378867696191268412860144872854964630617537760751230183955351991055176321626926374464722175673738781626543138626171539887395222773843736945470268027776880547692073183484210145128623344488038831334210989845499593251928220089018571543206494345299103190883645896170227965726727242767085609531774282803889366041674575354829757735594643510999491957691712420869458679985210735770029684411163774521305136252927313031802012822951087981548418280351408940162056410717170047010854952384315151656050054759458286020216746270860863156043582305352938558515767044756410484678371016546525957811869447421951290102295183854047825514254665030350576140430491057091852941821480868383780071906777108745841068114763074910603840817296341418601978627311292417395391644968036161672039417538273757862727194641082422247626050072395864659401036532898685081241984929857481007095070679736903816817598956192339077654480615281827589419862760710014904484014234996148550909300098745995583551068269519538085014024903190421026032126598272566868848903091903633540116481438701729167729772548730589029122087449352537720357391114311360888112331458025849602717883657666220583790722532146594508275998056391216014107551374316187639129182139558540367272687160747206663558338152806676839087664179096547175986477586977657774361455277296253410741924796829777697957462747502581244630485376835330465783348889224389198696281404887842817318005506645051489080206672404148472293285792869654033379727151662680309853063029307011825643226675718526410893748164294024987499881689536080167384874009435294846035385587469376087202291800825364806009060723298290995035678289104565065346836131458294825493931767415402076811797111305117985466209802158067237853223155307447741019337302576965801646328949525373819054286023129932164358473499871441401670134315363499606164357465126571642050806860580341342363832166957765237376979906772109791499961026716072126848544575780573843378719738956606771980099106697213294476096590732297907489544909852069022565196151826504855913264966144369803373104606143737736838687291402749421158908890097819262280880207414370565078665744796701449684046311179650404189581773366866955248079338809207569441206334236198751557149366476099804331881270565011439243144612749037897788490540860730075108122371859896439088876430472168269143185235020602017018058424554935734506056910322006059885000599854567155743682168985558660921750584852192778460956186540189342516261006551427350270257987334440855886150927121117843800223403544260262850604944463646502923547421464712323551747390721068064467327710441759474906971722185988494579500861140197971301125374229814735809182936775809795601908643257786421271503877493298878999957492458916728248239388308567947904392008156961063681710243723729317075926147030987131022409282725738007324196290589682300648986163490213646955330117937805524764320919435789036679643804263735136460378007634415212774067330254831731858524761581645142349592557327160177018871510338677284935316123244619007390295098066917021515521989818532384173865695173991921961837790758139067480857387038949681865913744633754665640687536277620055447263687309728193679851098459847951790204120545797664542939863807175989209561142460919394767896005270410431536781202008464068119129438393248023234063175468766296753712877916266570971217790439880319338621646006651956383067550148851178615861043933599811475641721457286071143707936953006267864708000228982435037407460002239599714893339086654988356349685206208434851512327455700295363223725948192443953144932978009086811124300030555624091709060696302601982765854304055421432395031199424043152710630118569670214971916488551167008694041224724096951685092116107043917631816828601653946613454948977169675167069897262756209396325876850292488639438127643824399156749895810529962125688141081709909053265173301225994108685155128431376491639270888294115023521200971943075552481954579169576056984056108521897566343258767048427305536468482456012876352016141316150299775411677733055492557239803288554881009720098884442196190605086114175900986961940899254290471342716327738604648499403799990484153555300133408953371210963378474861998997173784717781268448260776439173190484884545100264622610062785146661296395540719110752823743880886110589123675246357309305585372483550752681673388203828954183145061207807793994325104207855171096542210357490663288482805456507072487312357170871533566787013737792879495928709273069218309048806129159780554515487017489865072913512682424539276118320739057867976010964709294673299597178116509987099834058632908622421112712785809702080974197683201853472042217466783533931790462583987403277673585513148937223959420201967340700156595821782611560701478911676726380990948779264828562553468596306918211666781953128628911395904125343142839839410176795026026240346290263860059507644639020779482933338056243103761416931889273541660924183031123371481653491262474307497172773316175339990498270248246334601725093265473845975998960591137810504615859860842820164019435577016899491839898875852887532468069320250902260348313387247872923091209071916171396209961562111096470408652032432831330494549246927189720924854174151696564627443744889520376354683931134895437299886249143028859480972508359163768084752782165965926789327962125590750971685621840022502470388468718222277276721949496879120546601606490833397580422891942763919305844754519757496919481835065080354511556550446681386386830247035587624547289994856505015375758843910670763775328592228451975539250960350183031035751736382828460318232547059317965928451829742769891974474732600394505129199860656360445611683174078258133706868357484157912780849338304328998273564024775952980362731183610824087565513893624444343613875326572034883658517705123584593083365220895694824076508522031812804469797325098274340836526948849350547233337024825672059627548658826065716018359569921146980088620250436562173877906604507215775384316452481915373648052101192005594794399447224920236412045103744313292466345139173180582871773298145810010641326860003723423498786660207427057234093699631774468013306147230176624357465079659947769540788365777732213888425407624599720550584455016068973961548321580771277486924861158274754919341255180817786475320528156311704402044041481808960139327739690262030131847388574866804541478401038002316363170099191130502676189591312358712174324787191912452630952495185279068687174294342239967806100950264431201159523914460802251882836509370617674945440690589845208300449460254550666048064945826322919995163316322253620810103542858622904398134586125457996456222859952088269651665838688611405499833182082165892825593055875657744875163948407168608957615077584335702221475452855623826794175754147965358179903997476217576883181494688061450677039584676724564154508829435534646676699681762717429438649503148107853617740169390830783870184564007073592785366486049870992607863487021481484295097968497083636797117743845595445839062638517072694126510878407649240572268986487544969596276088661330850073398655760793762648687946606021623046489517887202712534983159731342096474056497145124139348196598591799253000600717166392931758136127011316907491109542934805592414062413758483440856010001694632799904602022655706883703000909913446103258565661913715930987102499401621470348117584489200935056536800411330685577245127975578098968494108215201417343051796986018719829065952148113811148259253177210652576702780886204809032614593699464093217843350153110294525942031813035882604708230376933857784831309994188002513070683492112890493542018607829624152612720438976008695278388419550860373694055386238732077277250201529018318807262544320194754723465963814975888463103171380725336917837878537619539832991140815012923191432964221920455627472935557822693590153929093599038829617222107964027786901732654669603031112834547390343796073325369109900327923357735540773144224811833397881962530069447620239966020176863442667717092211966800479760422797190367062699029846096470643900934559698282221912456780823715386286974468594491414356030440464429576207252736192862112032514085533465157192531684287649142451791485546801920126809328013788605249789575397043489961251788192294834696346301233185901076287827070301030767385581289066794876996342128739433666415648626996813666600824986533552805900876224482834203130058746842025359875050185989800262709452091089990250402117549129450892827354497570276005794153840726312541572576452382802947467790405834301739407549113720215047925268349404073414592646936418899678001786083758242479343690857724318755143407995434812345600341408383208994350491160730360673562551050675306201846473202023337064223036459188402714083744671928374883243533744948366656512032751275689332701519637212139559044451513228278040755642963059007435410269483016962747107463133576393996601339928705790741507287933911953185264201697196378240757734512527327428558688867437449597227368515267528256155611738177595027803865589174460578929807592721565776745711081288969341867159218965052426716099921388642449813000852518403376094853335886057464199067989696487080041743141961539606514347101894362325855067792379827324537884430690158655435835133823286117085000627796467771123169383419979553516192389292237773757484170350076437717452472866978886189286217764449144755397470477117543609037154209504923273206452417017090335897489668130156289365047703637270419550620845804999796049600221871731938438966208458624156863686039458263974977360260073036487330077322725271457504506224287069303365038076894561149920200716903395521244405153756948411545642292252635368543034999803822841946184879133782417154889076690905607184108384284315847473913783090526647140792803204541713172628942244373150296234057802383407145896666553285309486064343789517074804306967153317210175149251039812759524100217216177080543305049815158750188690084683594613049512228599368588115374288027990952117891906076986624067082721990860575259788544107521797318137103956487751700421997591565352232023853083864678013319736742598448846685519751953313321980122466598180207645456372378573352944960067765145642517301559809183774640809232636844861630341536989834221022446667888395283455689893705739692184735669860778430463208038488500670417926585515832563387395263185595745145756136227305248390093956276840777097912129042894624813573964093731249584426891053716515311005963491193317394578774745828480653355319400513560283438743600270154819829883668949877361790904982374174099945203800371567768450649745376999681130770402404904601616878328173302599501572989911125761468467237614488363483864405327059464145060263005742537184083537283647421918346299427605978219937112306292439600859638859553792965746610589177162152125108328574753894374896285962393808169020790092546374230215846671481598829367218832892837074737548614002205240416419051829239685201415107916376808727204571469138441382385448733048881136673716957225212595461898700494705432473929977259541274919683973596464825834885497942561131871759341476758575797326326312389917401822450439323651019959701719872720507912383861335398865665357280949168909455112991549488428620668543803898022515492784912447113163011028931176090292472128994415195495733766143385103001652036364961630498375843334429571905454193281418824662979674457005943090400092022752316321426871110567013657481793383174979482183509760389811309062361293500315748022423819954045247210191840518285670527060812879319538327783574628605080668736902198163667767244394038159614948547038788631665476580821353751369320115338535412751055043580031355084954288382064608295975518778318456087509597520397070966034335642742222582896058945415853914364725384943049106168459725722898445120601767996012550539287939744789163981702561543946606013823363670627918702229423819873525146353709906405321469402962536671171710370177677648996838366286676756335012820036455309582475080165111682112350785421748792545847250140281770067361187080112897094455554587374299873936872767650698948269330623170994908510881960974477443127579396992413277771379008663124292585168518979196051222987265559643198235126856524690949497077913643624974472932354717801631835401492871643951474707099962477521180736497694988484403258534289563401405952747460517105268269584511351077569575543193171929278245865441885544485928037825701221465688042166211007552772113746163028987027583257368275308110822255576877943631940374946444464148094841241710846269942612348654126547140962044613690706034638940908874166047501677405872780231415149768788731612183816132400730734651018543945404457653991790906241378930284091512178553049437764050516805638157555776808510905228569857054809726547987234635501900134555110835675516371409680848464339037203095459518937813971314002467471063655041783191634694955632595512762617376306669657940526644436141445359607559673826516330712678532744761919612018909493902996185074538675406510034761706718757993640305533368259173387171614573304564614510160535924859579200300973815780880620452990160850140309053707370770680023493723249772483085330207238792299192494053856674687195385672073574539603696780932272840287635011487182874028461086914386255735646162647537001555746161950105402152614282686303022778904299008117521709114496640004816307507865964480442491183851791158193268546295864146817741497649397727951487541579003128306256892303070818323026040901142974913973951421466633848593312176196132268318138801470897428609141301296339702645701020583525412791199841286546818592512099752081562235039260982203514229494880187209338787012908037164635859784403494975451852300417514826133841898873627467243908720086222389445765779268324068076976895637991267039177152820522236080448973570156330354370231992993230319133560092008991347328945375284012284727864052174832373774914688304850922396435760011103433017835677165782656934696920308212719663854625504611163588147383264641156688073704878876152611202894924014478757299021348246428299254729759921077668080657963591324735292711268844100968343521822725228179477408114823647009802811216925508617290208949141444302474794517851606977543477215285888412257488390591068082961308849800957140982801736696094588283481249895697697285165535758416273301980576524793173807408784770252915182515249715126172988733677655020819646829686171641118369119803854344363158226503928129814770149718503030627411756560731751516937025252008755818249620795916499574558961068906458639075880611750837665188700260745902851639753194617300914807940758256900933790304401102475247874914296959837576546876983840769646448643846176548942226858535667251848293388378312153049762304515024065909592655087153415492837845960942676506791639381096530821795968424443733924269085379354454191644740229394806208294501649209571437688782331656004240489764990958002228390759464675640039606651955395221906406482894574022419663064992415435052410156676112252583422928327184561930141315655527324915849056985991523950446879492948193070663241541525439038012475159053738510477913043871700363600840680098413065447023332126067628468174792734227942158363829922133577203176324001910749210101711647870506725624532732888175432717612008437369178243941656137386450324436939091714604564239424196660647962483017957208168980805205765336185554586506240504791632008160379930101891850362874292982625756179261728977907864107638194755959632318677955071964158366519110201983578167352757359733557260374330800004825032188923083384038879174901418062901270937466146958596493745385813675064122375380610202833440443857513177424500794436105399954873600924993931571009688716661702679921464946105755493982070252764715308417091072416443306007527096284006856695393503642859042585571538642114214517817493449237500080515988460951908659543626214879822745588609861625499020773357038235426573311803300045850765726455034952027891583068142578174937677140174045185157536716367642568869352565046202801362626032855007513341912149928584864295945640116909116228096333394645748773894690572346261276994940997216483052524499374450850079269674528350794055491136934908184282209539080739554633330003234373375650927498500301276673466351539715392600591244848176445637209056703459073912906558683430977133517287561886232864072585775256902931029323160738432601305039454858353245111621179015857792863792946582894207800257613023801623569508796292792743667152706738361763262536509834182730768547136459737364280181968413022346609813124981740674901504653623137512085373808649456643980981600647197652316988770675682148326611989621615310362321631676066978896594412470334104152811897247080476166064605448814983243704160176724818672291623685750113639520761964459805736353924960135903354047184109210029481144657133788970789337712640711792075253555308987041425158303161407409873444138623310563599442632693743990462722184329289873407057598306972383538678104167226790841998024576946209935280323010781883687919023211674906275960208947881720133415111525393278736275782131813685062230146686612355703243925664051934496671359641759988031294815408873179433846070732247874021702272754042285238940231366824400909345496681600768085250924950421537652821004866816645717261542695036613213955362817385512576278868988968366104941511183010721601208526160322473349334637747265899221137681475581746917749290973028840785558867643681122003400630060463105025962773174399708726628222983504444077489773628818005981672696013112988127160671232927213169836684779840301842755048112128434449559402102048046298670838701695693155467496988956630738547158430491567146104992397416020972595391939540881243475042586182895235067178925907252524932411537779904051695136052455389921078885143338021617902726023239984498628099895087543039336149111205481024479247777130877708631351487305803935635896755715835614026723041521689933554159371640520237185275001066255500643412342636030945825241007278700708840587629745976908379938211541470122119800574310695570946484594342236008808760079650026708759661666172496516805182053240355615110553446185534179999886423773179638807624760415632046574791739831006905404217366541539193506481470810996302501196058816677324647628104371439897597212809173369678268838743576555312165896051487915548181366348821299652671972436631146923941417391516283133367791113151221538182271530255030295488363790201172244508326288321818599645543463220827124995980230100569316004091028740404596726497067870159690690816088833578466108798126716623920711207652838810817079356651907813535071901887446033657534637095261119387755691291757290815657027273909808994771235070779290634751810950235525535525066923325802497383571873772073396517867589486583727600339532031013335862747159157142872617987974096579830388363082233465426092995166956597089320400451076368539126814994168567764554973046618690479603813295587321806681543115435010580672217497075718047306731165410901525057076143253761992142618028883721150746340220677018160783469462507187628281623762007732874952303424271435405889947817247683450048788974226886672375637209249621290303567992321557016661631242489133804698902460961356651757851767026173857036448041578013012104055513689987945895579103976553167455879446680626130481787485707372076609536249053471752006753247951160465508265980962570455565573125059575178118477557712319814746597343379432642029080502164458462561730465473493033460772510672976257299637353290593868970871650132533844677497786509274147060662428936300866673643942819693434014242596822614647062498196852443839989918001499742506730130537205720675468488658382765236375037270796892993467446629812739518056744084469245884819719221943588761938088126782141087814429610316483182126685579621670810418016188032112595509763740963939191223870108021699459792416010762978874743838228270297149772223055096293099329856288376222657306275591052894964585852567075811725626107230794442153282117179496871656251035645282494917311932667202903875377951642732450765265174093412817219004583875058158272521060939270279209370030662129072763187509723006915534006257946152446883094155019196283809766622390064606680066895441108253666873474512246986172627282310065243976275030504384896594318361173315431889262135027821727852643839234850749805418219120967930728088985779685162460745098283363104456627137960236938710400115151831897295637986262211929810547643737733724784536863853741497153042814822193130914667382323063079300310335159656817491649516273358657388069728545359729225023042802496734493026496398796384639455214045454720885099341566623382443222392040956763254504917920670813101780093378652667187912559463689085531453782821370622889245327418729185924640200420025534104007178677262171318307715623635223563931421192935381965164559022282362395014825531011790755897207500003535589507129105952616460112248158062781145232863533390886490081321889677281214081904919332293283736192763045241603129480403048638858813575744022584260962446875929607858467390456563823106127673026210307497645325247812805557210684620526505133915945635566912984342714733626600158905493626192860854472626793117192473277263139674532927276332632370092361979221799056847557542532860934267701211691445553541971655993897124877743680728742853895038864342719647073181565186247345985036425032249514608181716955164491421107639600698569430106192040070758397281585798920428139375970492086066828352269240953743235102356258917909637940656642567583846561886121812313523365273683195805049161193808535202815821218077665740773703020078060260071028765348876705371914863832123860996194862037116842408515189422542496674140808767899282964741972389184471136888507817875722809691008444668599391506019483503411593933704500981009431644133629636300246784557887339813953736843878412967074215452929830942706403558789793812240760606725274082331583414508013377014556885129681032572509499315191460644334312490956033172628776125476959044333342343557682462216910970447099280044216659864904388543638550661181426508305504270236190472472620591026854815003086842466139695991919467113330131130099771322937738122087567006491764337314422662620439863234129286591036307515166233068684639393172394489109836171571129588693068185947290352442263703386627852130476400007386558595873482807676433566857927604515032727184639596445278226073819234466021150706733404096568702256330805829481823868299217829867861078185411505832761064250513128765490369305227007546060497857160045890175682887066180040801382615731202789663858817233329468482541749234771230845634484572083322619900856195823469221751898004511053197208106356147190299141253422591496429017551528049230155572788622377927994688621438466007794346019775059098336218965119722280490288062654453836064108806252423858609518277211618938148875729753411379277015240676937395876716150850204146573004835812887824178473155525226730033083209327699390445075836224057642637988193985563378450380266653749718240829687724528192625399894943736284784316888854083083018217397865873641914589883023080020306230332122113170607928471257532315238636032169787496608636614666956786611214414540618472741092522132560387956191090216917394776017732821650626886396745876023792314442340964510524756999345958694059093778017213752293534515588565276753732072833051419265332300294803634002570345478203843373215797614604424615398891412453068505631984810157063583861386022318624920215164631122047071910109743577161901189905895573244089153934619344466737664457437526373033905542642708639400317507623484728962061411091556348408238043306485529305220992063150518007981825266444332593039402566284054304142262376069951391979520768523824808379772850520470346282638244668191202517297911110631445661138500688809396970554334746855078750847354748295610900354576957964932518078628811395169350582757558457459071412167734103828746292458101529557047301849438912869434513812475831456062203474928807113983447653677159205455240318520945478107745283965647449891732773796060987436025347164189338497364579522660296257521068474292923006425433330669729534913667211091998170359350841557249861891974065241841670402692802991943698255840579214074178931614006007347217774253248986533995865720042300589000161579121628242542483157328982693545554695423717772279828030416165030328812693113650844842174240486314220404633326537964295098331584342218234822021100691866860580143527773843813575743900204879801189982439928010078624968267526630532307612131466102971132070127014449785618819552763546279634823861337462506715513973723825321146839101749533433066522874671014219471230120560111313666118721649817807883804824859660006475014654933515602706658749925779744447301981081206604195161540305334741786375673181858682282811393330500339377439973407735453615066846207520850678218217160704578199807157033711979716817527863018590245328192569361522127032887871116981669400641439809681567374502106008921194244698845053353558233796982159862810574075829832283861275844956056825775766754097795702626756094279541994997919647055637015063695902027753743212510555318706852097575649793316813244278784915164529096187796709822615454413526616781426938023816198767515555380590608465391173204070119314248497296983006634994755048136475411723080402780051737576017742834575305443349844256924740844512634226778462143529764066098653335439110220674225675841641201743524335354088751755280413502911170469817699142492739305980571291640189062054128450186992810265549575176741832206152678204504528447312649659248969576404603116471785456281658998082540638660832248195119050425145501729701794356147969234767916592767011094078422401736079560895004710158809009750910505418703771604442225109166556315712540180904505725162672114963232945139351124005056206734890884665728672429552227634244390372664595378064060879257767119759042141287067277743850899515014319472222441220488247529916679498900306840449413116681830776595035302137667667060697192672913083411333559971950361012535210379716679768220094697574895881323337052365946910052301438988910603503686465168305159941350675383341716308836896047853964440821759458189283528557161550226839211212716944827014997798627630871050826048304737926084159870839155149243569049162060366497207160814171609680617314560010110733274548330134085685881452683726505024392417852349410898981717930344493906992481402549162043679962649377697217239613408516674395622062952946452382303492006628289223437347411709808073770950043533021696611266609766251343057493016431882972371541241252625572518026623941711164356763817502858271274482540606143948470217799566248374025070509946403424802249472239024381991132510484633569790153956118983799836151516055024801519710065124623410905057035036438036886207914952221980787582460269754973682747797318794546052276553841764842940106845431106000949507918512784024616084594490975096958387405415557394861521898543020769859484763274857069506970744603950932107516888781738872247580372497733820073731571623353556172012326148768406315562620899282941402998170387060999202495707722751267409183842207129908723984126385087254141287055273742186846473658692790711365789354286643558713950420176882639647667150711350036571253303989920936266144441691247490918541785035065229680403863262146729008745832707200138322694979676486361666783730177239225559167252851759638753233979439103655078488735837715148245341459606953778593839962280427839992269562288899887010751650977526403374215624940756019920664597982633172338330019420084015120073597754216949202134131438108557323377381222576370096086866415977132885864231418036187941524020200892583175584808301753914541125030873455675721365570053695258739252167159366107720681342501330033387379841339477635643838207291170606512670100829174592289441133747930724922362591332723499687365613471924927605943418705513253374509595025545241872469853560368353612787284006654802624619990231934965789855053025938450156051488966708602008264800258194941044303191065363244305544599660599823320195957457710382311886940066587005326905356342783977490532515708649530739940770544415522523091811934277856894332713592072632014546987789158434393411971295292754970416066396857188452044332759417255589215149289432646014054215033266038014314336834539933933778957075102189145952514361203181318230546973371074034440311907439211594660708909406546965528515058287552447332817960010726839444396456714718864136254900055843283367250923801086953503919236233648676272226484788564226852584534286676986418264148034255986414022650476336743461857911119606484348111414300583132558606496920684117137915813168210597048945099323630122215268831862125189977839099235739616649089312706790582999026487938980802628907466954148015092974158562904156017824137862511364015368670127448402925952432753757303073146104716343009212777661086708273421783015454301601379121813130619548194137275507207059057917096234371378363918410018065493828739916059313911465975020359186711618011053182895848324063330443907465762299348165832381894691443590831253331664396224133263942046684406377925161842802187929229363820254197324175709255358698200963103633733233335160630157617697868645179257531841924733697284673265124065496481224150965803242282796400968309514360331141174261587389136804778968129966211027266677205460612207149173325912467486127008762308610213504774318897024302784471236828911045883199229659615786543553029787212515331932601709063097394462683613112777222296145612570073201685584667977709662579865968375525537274938076798407697447815015483803112039196495398198391471552280840148833589794882339445312129541564962449882674267460840904611355050098314212732412628262066199154527764390069269891502004580133109600882469529387965794312397204886501252405849756864710279436813693875196489081464044569865085773183552777286272490799720994690519827123573947376565803674708459354908206575827562644930750060854175444461431645142706112905067819420473854709282880224321734212138524895604434510437264097186830755212390137484384543936921650252886136562892750222325903250668764457058684956695120941710411966815271489587708429064895711772770269203430238578040662134449055139689945481309492131011360684273052403181955066240296629336450947784215734191581018961961053641261829500627523937936753341669188405755806680689684402144855260323903194614307568471349314654437239498676486639976387470299535628441899958748798922922950728634861411590204681868593348074493437776887311945071732462696824627899714062288133442243041120391595393514628446295914026209008196475894990538660671549509780152532466456614733865297493493901922199415809147922469101982784450976257280993018620867763480887048985172790936095479260025511233498649668129638611344100747737220123655339753539850816441016198322562023374638340441815343527335264248648641456347852677250748858122808324475137203889380991524639579381978380433762346714605804955180176506031355185148747137338345475754669506414788147581204848550520502881741073923871659785720532662836540894158845316632035177908178625723009853615506007524583001917162952781933255561187548718605523157963266589520367892735288610210663784726573641391623981717044501422765699369080883753499314814609483790747515723901724997971133536595271720485411719691810414467518950641007022395224541147042705622269547602956384745152857536921606580360120406048334154374861429521795295156542156510533753387181004018995495051165907484600393178176979025360262957084837332557152314956492564551350398144904891801299444210639836101431221362832948929379069386632392779295407448068173824779131269331802285940416068777543728909493847678916826296506110433679174861698655273051068871965319748827298177113523130249575298527429933729252746650738510591477936246696424593993661300620978259652511060208074873720075851759393043523188580333543969116684992627235802043559869237477876779642035835815990675013819124438328289793271426604763784808083235576293329991699734914659760440614126516139744285044341858976192396917235823144218968721133114493846050675684816047580274067563621443386021620804107866937269833731601124654293476304732014998312511574891499638217276508498329081969937321337043470697159180854611835563961792827278391777091605300737663326358627828646547493641163261471045413211970455607603471045143817387816485311729618219374852852988286078172880395312917611553394556403216523780650097402244972258181516871067327606387011096671589375362382432361000591773250472957924924471462248975919851728893204058966515224155618537817817945977481810653767031847622322793604345643934052323681928884098393772928555885644445660515760812577095806118680295407390365545124665096748325043142876705643704133730624852954976912984549192400187542425754198888714277524360682052575702938158684983008128005073743685538033633837139714005859034722709413117187636876557894782590791066689746530662679793578690422920663255377016905868167362300687567989958501085802432072985339374324714973476406728510123250854714202459295903733318424216016175952780500603210654598300762931602659562461002111080160739906358509782773012741571716615881003714719538129580794737680859345067859195228818987242673788936782600708210434129461739199304620789937165326914395510469968918778215469250933166981145040742531547283677662676344063490425940800344912174201426503878538870383892439895797621577158608339698471401396432166918593844314000842992774740656526537770571619209142492573484849651101836207224483268619760077628295444844957612062642711200365864976996142923026697036445499877305169583598676645619524512799120865512442880533254091087390439553138114568407538493329959879763913463872156051304683908844175048614524019903431381880169379069182704571443002563916561488788785703517498285563331277246349935059591759154485127734315267703051088726131975972050066045977004116621649531524975769989010190483728943981662914548927196969090628340788050458213657992704677287922216562398921153919719326179821094874913157086565554540142780131418773634537310942591931956066640956687733459126580552760096939493064739610888424375042206089069380087684373919148769557932933888895396605329234216534732386299453484979897362888221919026118737676731292909980030189880101592975831098382801909134710034884240363433402174422799380184079093389351617213681905217161152069433179323478121155131787571678793335876942697104087388972238966681749431751340609499433810245047144875533967250200924208569023276145331596906649630638815682885869865598778466809023937946295904367767729815707531438587390808293437061657961739453681426261567087084365569657111959699257108282269914917936100483648051614342465692087660146302745469352878634011896233920219809544566390929882730248987955703611782608801046386815938505761789595006264033559550119269427914410171013187599587608666571313254187455728029993220006307533280408763078883889147295558564066437081110180684293438523135164654663100317810720924150164412987288006139877769361777529914925130372828076995247069342655126321671821993682492987521565819095645141072943998777880454624222186390173434325077652511664454994102876874373673814710400417377851808837110486356657215732932485044883531192094718837089920136364876624408014513176412323704017741124115603199131710044915415129533736133140180774023222947870167167134483120110646594160069707218995229313586355293311477446599452715074992462841218068695220604630122074557605346383638549602481753113918266112653085084752343731965906222370058132798582924735992968286739589539361347378977960614613263602914762411611474194939189536030361083633300676410285572075061534044355302809940945313198079685048395802718614152919485636263592388500221646924407005599424811403437459041799755759201559343785208190110879646979777786473961141967738781757857744859782641134735124610115699430595172801423304117865267652671084147868735209648210941496961497050162744072040749776359457108843368325906781923822299341521054966931954861642018681274491947976372852577609781155563689455747321406388323822822850692704455110304256166517539031666916150564131256417634444189604306877828982690976630395481525041828342586138067823204130880896784812481436754069390414614241052499495695463221014624784192476751575964995502120078433599231957957971235145023460390229602352181414327449875722093794202090710366858702743787505894162807472451021719114844913566423136022578664192863173927209205863932663271995851063365567231856191581326937524809945973783226668910831691224094497752748985725835900509114422607639071134164662410289450639899813549289186529911036824021171333249864611705831699850674328063310509583743840055934411999342013131809301717704085705069847502158669536344355637836396983339913611340679834247219087358594884534823210626224457189065523312811092265207638092729845682771153686422876692171456782361255728507276758451963869804004128578520729264012018003810517541004192851723802874934095055998630278568542534638819484361543954816687715834900341584139009021083160278054162191068301134049384553577962959955305884836772117146811657586093959054551469267488111466314634297237904162755791646648633337027897461335731780408208315576009527590611805181000081524058740375304822715745654557320992602499731119320690464537593130816850092025337008091500970257213016195129870430481516041767916568637258950304827227128583224199291531192986373391759476042545440439796110505026815878051322035037245473087293438249953760998816060593368436828799077974584674186369056528535417912816921071718146266085620252835802151252293631276087947703337582015363281037357346139140772609392021261985962806892181881043660859501135587380826374192772428403422071467179950456517027016810255024580234755639597292620934464233525459112740387652071554324035599427363162831720875691287407379715008430898805168766352699428168807649171154984684181400651540844303595137483874582961746893065083061214211541902144421958671528071520500437624716902614306643362838083944869105320961290579728595287056409898661625436354046472682223269428687350451685198815429603330005594007445070863070989652657551287316304215826792213017159323085806226300507488609817768443470424720044358510278378830078004984237314987862664896847913192702250204704624184968438972213088723556413025337397623599022742597287927070925187305774530224831445795330321196309403684606250424949531684945991681522164975802661098770588365630277948889151467939545929200378818969463126654902798607124157397831042375067118169862154571338953251717137030600019095888296384275663521246288940816732960609135440244051455591142291912790282340044967841535111193345957048861903303838426266610350502874549027043650672687160019842912511180613902133686313708643343291654827847591375871829740730806794249399041411981592503784026205251912526030003798170683712420635815897859618767683245025138210549628600216261991008636005798111068992787305945069818959266916322055231316633664424077603509421050295589304441282478932753137568534268230403837266462467883508450421066136407302571773079552678527236404003833834278273240584031850293885838551553087954327502815867909757350487263089510866168275999961033992650245949487694610499692019317195502620026366659239128004184164062403713537777633960527764381432504098327161380727930717639006878896586367780727467409807501716604357210158235661767377515119024521896022925113537326401649994562877834752260736219495483020494847775360853416508277438774778016268506586966230087201569246358981682608221186770092473930773667578390740163371460128151181622865827848759633993095203325260052861011622976650663690978894492511374908174826938960742068468828015712395557388505375932119781088952771419095534295232180424205444513248061222613023954739991093115034656888541261323387700687367548703355710824214022936191874629211216345142647279782716009569574789410009711100441641664198874466570913748827130765520824620554931663012856902329483769722329452121509977768333711738356292706971860961306166330808856779865825421549048458984556310952266176001783559049915732567222883477111316266824516439337742940331113866286361349189679374903534276063878021135683760750922235742945365509595788671644857879095461074427384930596317062330599153609980358535000028080831431830213183762618684650659710940393236472354952824245969481301071471905368645359918965822262080202760519566668341372368918443718305662242113775208582223657403084008245579133673468831207457853876026984566595123468885876698312047030892063448417593833734980244119784929578743032549039012770133389877470906628549729116296526022359441238130919316837596414414994075008898541088005915940724454330722082323251015780110654711433827762725516081227215235132860546246628713805770610267318206834574903703549765542417773423256773744035168642744740322851165941191380551451968071393772483259079759832113863069168509564073280097059678710011287561867470726588265694629371837270955520908496662394186819258528261606639498539968961081053430879282352947193421501804796988068426842797846884140553584459647596979012801435706138800687357813943438655339362826028546578736378148784766879215305375278852441744862352048462375503780158092678298469314133099949521582060292761659573416600024289054742917365134104140832321434618276202254448109419150273546416621302510362325329850925757825439141069282976786072335175824806619062154744116542966575027189733693561210817069964730121061284130664467772256221045664133846965864036950987838118982332293829198530770536874982865535658179108265736274603185289422383703334194648276766385020977998819844914737325408464332276474972587687873317423298234035391950337500501168420390812540361779599367810020167685329711280918295865680211559447434493067813767173044674296677120049950280099303587685715085864267555159103586370061644292547994882970890003409051761772765149109915911502800289163660130637049656553032472677707079949819621772015511478594826379548048948742898339109783830735553384912849589588223535098518157641648679111737800477974855516038420108381344556851102377459344394158159184800739611031831662044906542036168720959258900338812081819975479952947552302591020070751820657548902386943768554882661043054478759994337005958759816868929779785718693114774112800009047494277290465077321911685294752591920420970683261233139688514063598209846372242042967189421100656807141926867333028521170525628447385678590179283373996257068902364008101208443064351810208511761105023436404423347467561700069387396755677258074272373857015961420230493727656600250215537437682865907926519318223373499828155071943994326966548806313849821198060958021666523658343219406533629795420542474449719325557407607554601455674765727732732918328807201566729336183404198125735311921876438866066229550058672909176624451278704396215110769394815780567932307961275061354719906374631148430797707610009461384200546731330562013609619610453955923388679742217712277305629625803610267052374012592792910596816459244132675875614460563966689771427857131670801941442826340100742940294516970789148868177946570354634547390141434051094925073113919434519137074874480232908533001386621591136663882006896923189073380678070058531733705192835969211768237558565263518667201033316618066311320136785124346841363711513776284838760567895768672537874736372163888429415444975741972498031816519084218726497099578409146867684008315506668619009940386594474353391788245861638408049752919288065862356543868763858751024009366599328219348419989775246336253138557066279945060179196652880558388999313862641589658312106871125137150320548112019236678457927469639542794264594975100663568874816534515029376395584616879750821006402102168074489150233214128512637883573836686273980644762104634797107329719418257586283320169161255663260736220088945755690037826204845862572589270276200733419330248719846370797874524609552586673307060817087253797612785195895582725423213589039267239606164740887348317080442849583610354656951968006654675200876226796401002164287963825538942005380984122438265912119173043624744008613885812526611835581510242701460546153222311267351856265523249524648981638506715298842932625964442774947753066406879463681281348926420493494015052411110755523956750068759888478462334150664335325612802898411676421933890175489324564888484750188588194220508062398900119101795366389516075372191621540426384046528173114050064408228458344771933680078036395124068408503837927215728983309309793077589729370853076976496951439704165068502021863546976326862068883231004215851420349974360066927437975861966787062542994706522924919423506950617091551449564155919858763424161687798549386096010053327799903355161069961989422878728001829842105523228119439917636188794760934280957083158461612877749351153692948692104154166552523624022807504773016570403715694816110797374698199053265384642753891332630128547122299786085679529157622209585639296463151397106417302751922505112641622148518219261997771634485540356288345279849682324157172253514482290188148879850826789291918925976260609929526622404951643103372592796220305492393832922429977483126319082863527199223171938623813611778236706556170375216204692390242937152287363014847427721949252304376988632655889678665275467694350606755773733099586497709674143392862857872554576332148437656940913913958481943411154107250579132204476541252266579664566045137235643567893864474523770172477781409315705566635295848406822880205358348046449305054892827049115037970531314652880283618595720970480452746637245724342530271221724996996709103892588332913731665781277329672507513668158404087641572844032223990560246615690061817268186368175404507250103659576031204413195602875349061074824411003729999315383749585030117243123126039211058391887359135806181095575637776637471391925913347066070786369134551468273216713803717900842553495025261257959488451075750631476632753599242543541207335875614936849080254062372227425836542469791172447033739205863080105691863635462729350788519443714652955020603367381523336032304677549045919058104040518979666990642978243516858825860837235241243127686110889561388994231862192934860900515705528656136584267319409651768826601474992950405071094301678876202826109621475874585769440902279611410799317507235537707239490937576454368678937195552749418908100237268857999245260521694481627458318981836903999501376481429771889995672729777132904485133936152960311400568535290437903578525076989508106972264891736022657679429491069954412910641941361241030796936159518704594158930620433550147706746357382886434502525579192225331736961105648909024474917257113570174578865075381352903744940400893880598557286872565069535460856825767930141154377484364572938049763499295133103390262569090696714489377496611125957083120121174815198064452689282846139370800648801227793818695308339053583337811081617592134659342147827936294788799004917953662123547128594587206245866617157708659359587286496436723080465676399938992534690688287531929371326122210185689136774528700357677577502651721319821314494494881201568546294789410456887456888884192536229185481262533432031145412865710282096525800442053897510747279081869754165360507199603251031076218109397271265928150316233852325885067329277938196787632286366057144027897590412139772835043350482125106396460591047754925977895852684103665289142949670830216852224219379054672002175249829487275864299330382086833534838223693698108524598208883633650399849698209187912986877131277968538395342600745656578677239446003034616366998576408614939155572727412411607152614081573218909198782221320031170486708947322835597190450348532126010431979247170123010705270257136921026410487496667491040015021089146686729171165972219623543943305366142068664736289954971081358090925900558915872686025836255264804805640022646771492848050681200671848136563091153302088550426636497365702836161293203460090131169666418959323375315981532729469553294605893321798355477123753001551262468030841596482608327066823716408374139505559280419754184624583112132248666526958107704293229497734885033217522540161224670231535541039246803675584544560398776438652748778959655352124257307324675638106798705456733972819934871205156235719063498241827999956897570330903138976620528675216929715899061813267221435815716079051167556940157816857679824239465949942293143449328207454820001412234340639575507680654180049550626000446486075898818934571958659931032780828309306763476454178041355721377990264243849245918953575058008001337071290916439698810772981915377794846542886976408270363465468977503077191793678890971955951589811538027783286532924464332468897549316775790920681838735124397768975605790155350715602133320015087284616786452434012374688207808631074035351317647514705260906254377225237118520937440345557809321522688952744930017090962421696782129874670947525094678904485201113484497692381051037384382122274669016021785080693287275320891799673531467290670180210203222141917156604476739868094569506010814147736103077843329879761614849002485946775629592655912975955683631007944281137278171590331324381569648966878873585827492239621512244921234054033479133149252214302051883366534328154813068103732571546200264415718350711803146001746876989171274585266650338513705171985203032252429214862111632247888813269571692333212902938863468633604950978474054939435096466306806422793748344471571362746267782543804249684794576675769235034734809216954461728790485185716826436594715205588249326479028963371684354472994472418023041423163566112050376288288835030115605384259992340124752436607189734738180999985837859301411281748867408916769731905494061656251206064275573240616814657908639594661665850069845271428954670226641537036337452621360241331516530537883722104334363832978055544940779111756860002141416118541066759218864339182410152003194222186568606122751091524260791126381929688469513943240516744327876067941042786433379504058321935463230694687318979206354806543561423818504541946242687316662322194460185187492724773882481238130840937007688891852955256175921661285343662050149196444768911103872178303487963999392145024721710564700532322969287840530080110218258065905585200873572234670085826589095064445805542179434680419373356246040971380356977872517763199198337432312532118983205713290605490938426819387145928653265904843073687186657292423295277442298220128759252812647132907914389152524300442963082782225282511601670462714538535690215078282454380643769136008246431809444665278640064266867540925373368396310916154492190864238206578304394662450009264289362976593342000795173105119383876101671698735396763681294208484743341024745807724570284917298788406026055076684508292051013964142016117292379549709716403251548531239218586686348237994831686510162428992245758454212445532570312352336993679465740017045373916242982047501646522059152900251890189549964318395764666379893097472523345664843128299483697234430648400207609176620196134456112633238739570558195538580281844179916432930669080776065528467179530992286529521663068020058858171741925961422841362590879537374438484118415703158809658647249030833932091933238348863135014820820387507488785350943862375279757844225509528304914427053514770108330062928538990611701198011404774852912626744122611304011969814091842148653354193718229873963418356239863598210980546568659137190254259043982659735248137910320303675027776600610739924912027708027223211534167501291653693940812856029620060898921211206546390116764252642860692144286826766108492664687903736079177888442679706447186820107281752153569123259002687906771248378113417488731922378951227150880059254795883545021928083038258951680519889384805817980495218175836162336041807941374567114616878285336084689092491456316288639907140934157424093636677734032803337234931772232491339324464495815540334513413113574473342514131267236612571973718985020022431919628313092431922913173628501165568830197010685988177265624040530420758304430067632501841416931255706435828814312007827761975035568878698980247499998169110478433607787670669896771181526587741750230112814443016014090673788774016546195693310125429848800756729195512571763689574065657995649014033996066834166094532895478999648610414613014899093476223815248283723687206815454770529827868201729399166087443972059608689202253043796020280123523054048711995645408216264736727158720493014139088758703799610159786731296271648102475922752719097591265883619871271569757274030498743152729617554380549654011873374254937175447689056353843641790041142634552283561284332227577108071741890472056094519118861939736535936212637422350955617541710862309427084590518936903328551480791629061229114635792062120182589015213842784364317063940540123602366432663870615762967624672426741006785990888641886366902103823048950974657228355310150378910072824488258236611676145382169443324513312203730671925158188502746780688453335375184063777301489536277656928399069041245386018302172293360214619051292859080944473085026466846228067521533886343258735140569502903912267576220884556006028366679003451637989730189665843684117746751852830397048936621355009097372062298619443020676214853704829388267708285337436390695545066264783238536510268401707625930893891390931590204715417105672703085250087673825591085045433298101559920205317230544905206141996323535930495763440365783530125235874214437115151222855927440249176560331527539539035628645155668599569570526712633538667194840493040412981747620373659916747827386327054112820822881011784203814541650163633208023635666215383306754715092704900545778442886092712467220528318593885628396826973376817566109450122510229206912623273796162138068518734479175811776942688236889619477223879859195301243057693168868998739901453713016477191327368573537115682459884910475415072004599974407870232496282767248018313564899508527975025990009373207291500384361199900871312779795321334397276792425465445569736291194989049713885176316817816893753408350059814238648145501509512218481855769310604683820571486257227690493297396352096909505081008160348158059697249133512935205757276249814507389395564343696522496865278590882360222087398777014639197372252477685326933857559941154253395693362891964142385863599571778537818064344588547623271605924586716939330614384498763160849831711172583031228543021870314590976837354964547878300315817426297999883659339717101937865825127305890279023262140509822651072137286651567862385244216821045702318155469750164684918118867399353558917387193156572846343934568362455178949202264963192167720116103335651158689086546461945821426061179943184243131286574600348454052044677475619022942540365843488075361794815451800370641210909656776067519450734147077121392179477077126678937052700375082900669635994214908663194768285243542445309575947500540878278105159847870217656540814240982623626751824064218894649544775629587271017679083484173788558899882924444853956182724604128971354354282996640579795747280943421568925569114065883907666408236549869734208401149134889582444379667749534404493943692577891196755314308398419046836748842110925033908149364594961618730643139165025585564939185126247069827026602486081667502851122557126439357451714720451881214934395407090724727176207329806382191911009684557008832119889342750055480555258783580746703633042073833325413419662359555826144618941068135410913374562633234150348558977753823089104827590662122578890491653559047418238704341745678383788302379790942374148160556124672740926629057438515534808753156587190985936342009596237621335414479718871347156944357772427763961647704817245511505650636318824775272710066229859597576388553320905794401828297493522274714779049391176904010578396618876819474856378322217824941184935912400493670059983868792304834088683792133245033680488406658855846779855757217883297342678620701710122460371314184455016597250907696506697278504781403250794326192516836013174214941837983701026361506946198514975132306531466609029044722353251396732248849801090826679976620441317024923330746727532281331213863927624751318023679538156109149038565676379476321305007068859392559424375247462604715464419768368420010172563757885141201439852277662243234585496621570791633022016880015291694019209957625370682368945174393444511864317964594417626682236318069472844904363102281817316059268359070061675454726548080268277118206246150998208110549743643303901067391998437658100737103905538327158629337239387233421246136770524292294092491261747697827597636024889224158306598485858567011349399540592448902241544125338992959113469278420400859402338053572146177291074085590636468928369741057647663534256190985676778219472193736158471455430159002401611576282716406055741068335418400109533657561210574703155689498455024724259482628606668807507391458822675710799340920922855923635690171816863692836299688098660840535146215971928800255480179552161113527085844942003716276020647214993657250370630327006992942410786876185096184995020426054480616816747329662847353674207196115709453626676350685245634303773811775501378411000467955549319924750182401502401949671000356578505424519374088904394017494386055818855236105049083522471518219549236169951960690747289210407529465391679552477511051895550635536419838082923300867037258482113190462910622301246768354370565813340531809522662929552410985400744190905217223493657053439375257359905563771447805732000400966004826563619071063824980008456709394739770556306994596041379341933979012265234027097693937229036157450227247011508810598288855094600043246365693541059573334482166840242711117551073432509499012046625541404612423065873168467088700180645526607482034460689448500388992480657642242297286936993012472852203441745411087564484274361461923725118701404714720770341612449730195876996506194948297614215811688326386633761125310264522258308031978171122372625914775411525447221936477768447999210244492972885525130337053809936312931975215069985567827975048183794137659167073755587364119875630733317648795234815404761493043351981072589926103109345362932874048808483383705037458551840434898395830307411397541169966975624906283122834385783523871416417293636188930510617953336125797296439198879859558840384470908672370203051120519177233703611180166301671079729286076772931902038009449154364676735409384932706328842578157234805343772333358133961816944595118319262812045719961219150847794636658244639977684397066323975480409628888337272972891552990420143172293374793019444603983797605908903843627695605450577196897003106976398963613657072358895870639250903059338037534388526899887781209685256103134307304582746527229238835563002100441399353633338536846972993697246720888319230807495725294509352142407600527714638149062342838017812096572398690091919130783715988984538388966754622158500666251983308359994011991293585260086503502106947069776967004852712592974041953250365581295220925473316593612528793356666929907723501109784369709624243230343050242378589989143946919798679028322692568065967748239023000645160583258839807474112527488120612108432032254570704774005592574363395576902721865261307044784700353574428273501226625593825569861708652848540211017659698204255920793979547032606625328450885062867815760491430177892202595773626148114110684436083922589486447477146039784285132497630402036973768875734610798900931088033727404847721620398634026490324009633548815683268147520254618201318304429271134580972493657672311864811840118635615427782428756981294780272126640766489058316175526109251612191346888512157858951721011565565267799674918620507220104638477452484080144558413178258728931788554816549634263389403622140143347698329204275994810610861975367409799303313399647116925717034266366171142709875074576962958309984116841681082753960582806400035797843327892364230640450932381106745769920522124121476991191306374067061266056867684494378855848802740788585714922895433576166236676791544537492667735604767115968930378422152502894798253622939099021335818242909729969484955889252831830482146726414404351153409752090555350218351359107946902564292335398595577104376088833549343577390703381076580580400531168063394254397326752348676035793758723323385073944775245051923578017434373686401501819338122693001397070782058330220749396501975585184338991826952129953275652576370334618512801816592060889935226468380572087107221295673816088384855573731688496317076357106682172314466303897978816773323022204673699955876269768780771106440102675634932572142617286191292009853223760834370733344265423568959779474548160953910567268880713427717849694026677268933824724199485344643747245207773262301757338841543664767629072312071487642232633792200639939798449475514235140065463838880964321079081105394220068207001869060742090839743757045217962293483270185482978723564522666167304867792021247495352257156115396879633205716006637976471978026476888079000783547693207057047149441482806459882666716748193057305362220222707371599094242963459996277056534526217550558834530600157405713760004742622165637932515711039616992247754817372574106134422974570852174678164660621816573560426210819723715725773584815587248492351875724748750041225357974568332483310354776807917245066586396003920325955676801833661230988324390149410812312029361142289941591859441732943068673090188391719679197229530722913458671945944702682727526564514483027209913761358021798868879841933466550788599673794793878448810127081870017945174744880245727687482532696296264570589150500676767008652709340214730694596029821240019735363670429763735760470039288091685884812354484120129074466778839656623347534229877276836746849217823089436980367122441143914601027278104453815244275847934643742708254993789292068813331367872102398391597864495349311527212194806439109114542912551519583112601810643776268176485124539998037357423330325402434682171190470348663940841399632694880336687690976123168468197972374878838694914534489308221928628121777208914313467239347915619568155687393211296994440672058988898758669963958820481801765272559136205600416634933492692215557209133498307517596480592991269215361821775838270432804839051313903273478284586532719463794793620115074400780775981281317101787832640860383445293287823338687610035135653773801721725882841856686432910940287350157882276234126560143351242411923011326154904442970787696458882817545050256050980116741725748356596203787968062538939234509430156905014070316143468154282387733797507812952586994823183986664899122276503258782076348438291070483996430364502528301192129528872036243529039300239993093325956647314225987670210780782765353185496832321315305314077295765587876275591077276772614366877817030156411956724918218703156823122162973749148655567574049264026383177872146544619292730903021835813798620739201607018272549473357196836448200592313364115454164811508595581966685041855351429905552691378883943605867524968277167379293344611892497627270918115176257461534888419002703453291753058923822341526670743753805147828002396713129822916910227067954214676167888083024703432183830852674334244656251611533500578998577852514685005025158203348325904698847374013965280812696137549684435167857911009778033923160150807660858438123418517617406492615021331399600634322890575169542848696342758242857663015913248318682972123572545579734516895824526115343826953869597921991735917102405278497980377227572753812442034969267897324176979995495958067915191844466413616536444840774943149771878984374882508415062672666243462420148282790644840612234298982345867378820322469061038957955309008525726073889517960686934945393437248116757241393911026466911137742056778739592477128896097362665776965454172683863893546134704015651393211854619495867670442683932224274433024767166078200547069640929458321066881684278024758158595284383080091928903686491599407867377164721029551514100486277239727901159196801323232974436175686267629401868374083210547951488039870998585597109895124437389441887000591783205255289978450188935761520000470767074650207201897901255886109827143901330256850358012913336405496619212684483022230298089712818997623444960117037000432263275682968831625210384870531891950836794043995502577781085750421878323116976460631188240830839521177185100212283906771120175234543046527696327329952949852449175107258491593836685629025927941759479887611679870369521632062207413883254372041845789447068956910490943913921152343527670322650968301954805234595392875717618613960039721303745642261084333127570159377638261559615573237932236747187571391407205706062511415581973266600147113598346972305260505533995043221031950778435786724440723686937269586944232314718219048773167107317457776906516456486789619500888970277093961839732847094333763985448310716063796327163275719020792964831296573605777552906942944440508241574735064430834343976324183924191297725339403577844312924510720480769335189951817180853723646429543027050732868984643249674560141714606118651928751380442356315283743765777604611065424576555402187101224926162391811506644124040022706775457667333765470625708425526063294370051445413745581802644398665290772498980795844797616472798116201696068659046714528648210294367080412160248538508396870866560230076315607474283022599220631367888705340340540400850133077231720206775644041071013223947935651318501494891825915811031544571697410787969131473844454976913830634299884819314783080693845907733210725349713631595553090906314757873473319341262683337573441034673695563865067713988858980118958594419375594864379206360702469530846805821016922827233275729744487484905398443630950970933937243015921807390043218250164791250295220911591124492956951787547894514259410853337274528064596296212058525399041788858038910459900861051197793835725986487224212951684235017080501849076829309391919042953713040684099095063506869612005809076196922224663019147634755785001645386901051396987026048605162431845465877709917305199132024658479400542087188556852391790261138626626860286608986415256980551251613847540262249499270804291728347228847762436734776565299683476432400851013247184122402268049292324822220249891593228646015133231994056133936721313067558528257803434273201347257801334378379192159766265587395868698182735530305515346495924817172562199660673545651780819695813006100293142384852898763927959218843371988661472384899980961962875103564038356981500969640217239571055980292256133475582081369408529199709269869418263792791980839141145864659639875432616256451302044188086724522652659046689410768280898428152657478402280407356961020310053843146311089453816603668245166106325184235114032560928665926485407024010667552815335886177380988653167502976854858461149376346078108803055407400602129863232673431421613777377343505830388028493802257816279247064322592268503512158719784225077404538679408985986694070405648073865680767435774156190960561137179663938136896448444464389848677888399317881950658513745775637755260325465907371015676645668573789067523752449652212991507521843276326776503685164771689699396205947199199318098011013646663715676123589389150060009444950026010782900078751017779905676208398265806159850593707814354110769040847305994178134437175967787512165041716356385910075309882953872170462836377962208016166522552349198974402248635940448091497180052645646244732823700902016686712678888375609271957843103930799680868419024983732075813517299240582868544772445591383329692247799154961165655751111762185014100261264453065274740415177657057722187639861142203903035688736412824005659852878838641431747053678289797922579248393372503385797098968899802987994231205776228145534290749674784420087166883979113307957024163162936453834469483338659491540392228030059877384132007887538795994169747259154142645133593962770241434051707106664287766694893084767795233202764551009109456760690165768298767944613561556663356033024726907085566710304476739172062183402078013222706846359652277221263710821851175555676855310789492626716363772940454322546934804955442581288001146411315137866271029262040901921736791141725041446679249481113698513387976195621016190422122179470901471061989383221996630698882924580994500410322585803664640663763672891483332663304593088284942787477280923214878758494017005104743518007695134805962026007040341886240289756642010128805118175531461180134637571141711102226608362870093667588294999651374344689478656245172122480854244539376453568648188516081760339081101560124641143555548620256478570004215363539120091233140472100220052340280795296860958145641083305514681303117605662456672404212173328346051298759688884680165600801691040866540417278282762239367647651014059188370398330360695291607476050949438890899344416518112675112871532852368963522372655505515658536293702396619772308777412729521789271922021064159872731331965385031927633596649838168990423620151450823382898221558698639661041863683426297237743201992401111564249706504978482276993477795694387433644444641093097541877516331901029982991069421541349375431113428930703689674973983840825038155736223978496044532736507248697525843245850524590385415120587590094250600481267755249744667828046329136764305436661814347754148300571730638900311191224287622152301702127598207623359219441726467129092007608020297088701702795898348814179675299174625593315621940229396046019102992722485615557998981721907641352978304758780117145437234524739269767779156183384610591475058410026119271991021159341472625499143548346082364146848340185680289325704232183400571928970500576659039824812225151325895731834968017314817058009514798623977049163435194995832737087939680080602357980937355556996360232712739594002603441783269776922034769263229407324063323691812767056195848700749282898898510979853487140267545806982999255969082801673112466540888872927249931491639976070813522341260067540028139116246108114983184241771531218739899329114515480738328980869794282471372624516395508473761214615495295516992267354565063206060674281601210330002172440395713272551535729202828126210868200074776336459681215387245219181674594302765999242190860109305859072178179893843941109667072043382398517654194012572617847240925436362196983002599686543043111737348591501782716646114171157442412129649122945847930617993484117456688426461306306164951715494524701654326112280521112206261079103751895447587736181812477370719571504704097956414438385785057789078826402797808172834896522719754937708404222890611227072667586091627772317927228967798841650449858313862258571255208760984330765458279960768368572673087951037953983703290481569725767875284978622720963828706417739500290444397131384279997195610379570169334383992777342776754949571996117299880951145282454027160179376727895532295733976074365137602490569956747495657279320553777138024186868812300317867552350237513020900055072927286021080937397952455643163765712335369007524490700118041033553585319557153906652851378976045814223884306254827429746411808765395620843305505261281597479426135483060304314697290293968530149883209687661618984757081078708005161733058288933592443402038911987128843590537351981781105504657035794603000244582997223600758867191802653861021317795976051148859215015016122762873302364209151902172550855751756336910938413623092994613069087933540934297495993059154650841313264266343994925335321111450974078181908262413890970115186744541149259343189577675594077690343488846278726634596944588623755605345118738063057812834344425564315196610157348348880047585922842831049697460144000723060434162960923782085446726720077533246480654658838147810158461804947952351980107796609346985815584303174210887103757610218616546054284446064392385796583671785318463738952467788693383682716174305280924424912153811109791411416836279564982287863910584073812938877240041109457454097668332009631065747320506969180278206463584846996517904922835143445576644852927813586403461503291812158323094684308826479385610212700416454539197953048554895209875721842757705074153601918783170576807728303574240466975340997939235284137222446731290716666668404430986000474800219642344501168709680923748753760862483194559746600448468548973163498526513166386678213459761113731962426672620121050142139920793795331872664964069783799110533600721321827117882639400804320499114445221546669189557827269351851114121877289668368198573041251623284257677337473311693553368586200417558323146771940959498137501949625758393632570654573762249489756133625622254370852302755033486559581250076891029867686582002372326306733133756882916314799117677894596917685608856158982440533324301321573828322327485393698269796116390020084330099345910728457970023336158470599406861514488171821468338711336650331080023487800785653464665014117271650403932891495553759607069445495717059635504413560958954984353601278108993486609254949421006268123077485035634462839230222283569944239445757976858714261597128255696518516749305216336155131797965675324980385139452710412558904213605256654906618934450149796457270746065463896523229769902224871561294477985471686499695344921699957594646565615095644709005241706265544712310769066787775914907317363422869044003192312253789495828903286433343582232679340630295216199113210120814456427766055231542345227141429198471172437148642200374327911206260265131815639931166787419876912587090703780319535431153915010778181798962855647618800012777711895257183723819584311039485552670403861718889735378151821295357171231994153183485831346719185366545459069889647140476285315524635861805972530554536261161271876694438246838069122850762687435623067828966135861783959817807920184507001098801184612204290232356384849116564270915094434596446797640916704201300665424292670424660316062479602069748525866254957880512861429760353313610612298533462016614357948471172370869102338241980199485313306589002242491108847223636986744202477691768154181841957844798913832388861020194510870474602313869094365860177421059909039609365517173469741684965726818669655007203746763621214226548903260973961210096447313208373617758509543822651288485415835770448937158713918396669416033519032796402669859225329098241555394747916433139576937807499439212300231195532920271543340778703934296223169192714226052402437026714622782287387432770541831814278959830594543866020676699600476491645022786949214058112640273371295661071095925680512059246529817575521429924509794229682509939388923520999756624350587619687530588731777721632148038427519089219851668665418686899440613022766792114581991127784868873206749978198546199029425587338329091625931181432823646425264283602746615441284625806540798497196364049367882505952532781578390903931563798348915714651895899198191120788454732959707251439847127042883083473621821808430661390554987955437012187650713489137947806316740656650784152921260865618413595584778111025743837721774820486399897805961763171280652697457206775883103739509280371798972408537255190709973297047134542808910172942414089837782576166890453374316516049028991053602241257537645852732380616531710823801722689018831072941515130697974326447133403016358585810194799172165177420068599843038004955465667471646733257629436252538649151092716488227796450948771020822360080956184207531967432610753787810252445323513804498967388327434747766149076613385210019935343333508120602580809862504043903685237966663826544653032704172749622112500983894010998912615904295052722698892682749976879032267272669871003929247888334528918688567579006738560320867622299256454575778655249505866996335916894276346821960502564105218330540407113866184862998703760632738406450696343116644764547032648317518757726170986186177897780490524490242433682045249077231056749690861272780131798126431216604425414380625310547513977937989205795334504241952016321073204757037472368224157421961586210234645102616071080595434265703096901208121388828262246965551498769911182280998728464069417292445765417140754100439449148414112694578005777651535681962925761407102666966174672134176814065324047157904978718429445621885641891474486568607372302605820838982786086991240601883253918913686823965101020493387276616522488542514320976325839245528440989880381261116673318109483404885352240315708074672404011271958232912107847043936554899549251713360783063893993852421951731901512244002033809363494388191099463842194950865725584445282601787802012799181013947650789727349827952955057426889992176461985198117898715174202515264001402997062287329607726698657290921792683780217610875197933608130842873878015533583465209833840811873128702286747858774345551316347915708754739812204116434112988502363176551688401508256602294287385509664039402125676218987730437958347145894973832843071533789076428778511644507654995684992690355172815466882646513895691955877643689444071715044305721524335691943604618998778153787483291105167521441916296461492149772056070454502875163786971161117525191118266583998446686973560068394548118101823611986350939618339398684977412213895906741428283604739695812823830195824916422742183107701010609056991727399692071589671489622712674306481709929706811575425052780543943644961755241499687107731339636069556906894463607520205392568832818285032235762709315568674186183252362320291459984171420806734569319335632408419278870226271865567157490398077115640507767228989145845573992394481075496177478715351980151376254462233477502493147942175114280613237203753132435519160703310275503710051700679241353463241406777520304415288762932990007209371755407754122221069306262231996218639915956386757774378194610228042307919402996631600108575169320472253892706909175039301973592344670472501939096997505438335201804223898810986696470223009314044978804766974053865316870583116381517553292226567812447027644361252201431112906687525835352318241656143391762944679203625422493605907789443404835001197952156116672771506729046069049031993717923124821295381005804462434138465877144361541218103678658935576441233041715334353780478433729851062598548295968845248600561789802339283359976042021700039686039542370291816324133645339285610022867272072790469847591517893973904260075277236936558902151990994882937164081798268260369090359498889675049227306288622822430138517971920705462870648266032487333270494282964207506306402010492698328593315446162905564307906650259779984297179718210929805351988018520670880621137225468401956550622769320307717435865641280055790082954189331594730395250000616148660159589440285151349284316093542475484523020252529295820310941655728302960072590548804841631941022140801878336104171117965352818924107887876104284943602523993843452315164574894029519436045638447441557899863138572532968746251305852674557346606586746234651796647304756092296926239286386326682393744035234099050476009762406404392651467774432190650030850942138353648544701420992962850173980702138946687110629932010475904393298414091119584818359200804804430649609452438300298001589955772197519166767948726175920288561059330428394840495298463532502329515314464623669815936354185979147391423920671632665173854652659985016872027997434677317827001216888485442670269089794696591194779949127302340729043426937756754756081776629568296296639184001145718822051686504678394832990889280163135735061641878446422981872365285317769522604119878998657582519890535377306261083246762040178312101953979301601509185105760809484551256282374468559027441985709251677427293430286028513694967049939421855950967692830874053117563511703881318306009319735455520994774018920099079158446296107778552044443477333535194572650404404942763628728866277861018813385768914918749196087098834013106533578907204635380028643790807980324683695848997201226037332174287608491049351324172459909837751059768435136892179492388424172775308221500233413651994980448664814304710674730953551056928822319502525332139430296251967850206715521891176832416880629413097343666916687809751295998091462412899906166583847378175440667736439872306328536243564771087769875632441803291698825926177764089209086382358443943197043893602237931720242290985761041825202972303996553709615918982018175016376905658462498065262487240248873459450111365478166579248280357020057413227459171841140689742880526749376435493208266559482563792715735225818684132264544696229618025038950872539953203090565470228341179689102797720444264847384271202813253073099354963425503729854512376357058221676660100494566050532973150505799952452620815001094038095828016236464084448259058683873796997706839846656134972564660724879396162989533191426165335240832919498803529902670021197016028609940506787547652809992759871821081325982029249144297771453244570477005170768260467973095690355172762265817225862092255692058564703584805280663149561100640881315020928708506815370891130835194249914758299296888319599201413607667150508548018969774609850426451037329423142398774073401972192575196543873429944099243168484418146060720378409226967645083103185863629213904280343041166386173643505246160747575409069155997887183333727453699460908258274788176809042410987590803950300606231880671785654409198690633692480135774997295542774049501345426135175544328272367883147238293599669621736669360905128707063961376738100777816171481722870726546242260582235230603255785134515836003064048012113146392375758648251678531534211299353364522432235287050563829817634471215062460627883887090206694124038741156351945351561644584202140008840648210141430912118673455317627060120239108613656499986204319418678657592862642178236655982189616440604777446852572728671721670181313597080429145364529707703052837357156301801569055156034953719630584020801157241107618286130702119359506111443340330447363469786047542438048773720100381478596570410510787365759253285746589877610885391707407554055818848469019675691307574206418940310888943932489553203785989366796006601978156477272363387070477127340976639133947654538639644624862009196684371886384497524943476488804641793803288195345906772899015021891807010279348377173912715838846002766291749410818938910159878095527795601875186241260938793438079685504107837462924745103006373004046991549489352115891787853394458275818752293390607910227391279222111852393680149065481863032154258773302818762026944900995933355975220201145572457893604042980730147569835968292693557463297364647373772102627657530887031045358218087135535503002612656861194038183162722786098390948529945048255336934196634224271594778174015316427827912227861547881243171420172295566437876410272316461281654984025632095450503726390739199719981210615313973100029950073251786531916910571370263118778156367735272251506768043505870512196523425530842957419926635392268559188922394549533856132219427377984612259512567315321525564006811972589514024053441445100321853424713674708321808772178414374498049441720183434837464203936976028819012339058047924614409118593112545125645132221180063603474218225018508768290908632621104750419217252789014361783903538831929982034595074335048766745778034631036228011401099799504654325305465314973586694934370995212407530357537268082546078521801105380812964413414266877007101446987768037616279285407267378441112505033587136500186108243625836570509160835006491169536237530190902822250818727274914099169089249907885207524744749279831017566380466825455792400225638192947653954367523459686003345443495492235255862499837841503718606583170018086017744709046998953587525828763551517249326926907871820046235716826776579551886699309580609864920434910973978123501125238615091692557666673306677450028290085019317197208478853163817989320373401026644872352985126528756070121132688406647272743181072127189751596620141383999126214416551367787597703715513776786614807347380702268907207393767942536585198677018813097630784532966252712001590448790827147998585158486860085674481440202245225944348435685854150817163689729373828191628593586374476016735017229114884574135815711933429316002430030768324843057632478646191760193684653299074204169285778471495065321592294182704654006977316839947296745950963725145136695138868034396508109148649392989697342428168502430480012866848242413367699659341699232535790733243398953518706479303648519704375414964608927447628825373078882388051156082826667315182925855459891559673723657104473954894472221190016586258159726147824375136478605697266449599605988261779533390560896904047005555566083132945414322354523101423962373658040226116202054499952544844398843850567496396147935940735206306635250485467250753943164586687993463445111469404091591743962627792050232427403072736964657400455950589164567429460221259217633305567479876804814622769081935537503744158885071908825253121545968872699558723532869564052853228071513519420562741760151489030762904676222552793153870406498443610496459667495537726362179046981587448285084336460211111028851910887222633076400630175363515785305389634204345828028946046220951296342245619757080792790631815306524217427815455405559318368448263006219504577422732433120600094419112442846873314738991314094968503241457228327834583125673790020665490713393968240251501410508128898471405274175889102050852454204790203523373619239733867178208750464332817561223106622873775832332191768530729268988300666534840425896158398442623207175324666357540991297092894363328242562466790681379763789694420273321347580712160891651034448159420929511103258654500170617349354285698779796981539137509840501299717547086727677644191877433635491619788540080698541843856390679496014484571787037354397240422221115798003692693612484086947257374435193084288023570163911637984250740177879377558192005272725627421039431351908497181648309093142131985478557596193912337269925258556992835433122708110734733372754084418056457752100387424704383715807653228368643074122584491318960735324105713432094488497354338986216144069062877282555656499966011666437104440517383793725581905387940355302844573617823600560786475767742377457866437649819297600538250341041326612704419243286661927714445122001941483962033803665183160767807358913024441893534597248080337745096068753958560638838175057292722453526344145746138747764450785652614283964105831260458287175072910463348344929593338111962583832157081029920411446175163827466647204590232076874566315254638132948285137601966431763096981335492913066325572768007645544326030039010865712735998844482991870444717597684772546068297497048190121707531263496504275207408980109485643524430484126982713167912400683193504824000839152685534344845675184135732591863501330557533558466671580873723391710746077641199497257291274777763559533393653094296871046754539119112505869258217833429897272090614447063397418975391464940383870403224398022840657820481287332111950130588546624257322102897678739101508957245543720551028621863066464844285635086617013847768957933599221987467277264946748815981794998901411283097677608307566369313809814176672074443839778146071112866829824025902769759627163654704090181414681023552771004618932752180155601013827794378844749355133035268170596276238828795278681589846771933063769230346210840171801924787449678148095998173229076399260891103993704524205680645541405859317856869454242574827799649619218181615946007683020269496978480505042527486717641424679018584392080692740250037109090455401834681145903048890721585678431982745061400345298310011602843683835742198390591264158947338839273450006170239245324238433985571799442998841752695082987896215874239935538599568801712757225156547696236220986714984308069514059566821084724071391480542923093152395344741447498871444632152390967825296304305159059666603062608912191806951649636012905318289315631270748128532492731129492962755752764776852765403364516767186008480171871972549702911066102446886431864134093574443697186573524137139430808555332979223037270387513587815175056277226393105239824159105769744225380057448528362239649790726483681395374956641099400300793801282600375778510121539653893613840394150342063387732498316146343412782929483642386934405256681951269165040242536380314561026263291255589281874690045090487272739893910387125423684155306370054777328451432654597779497208556804888013616810024540675988310698133631947143490800538515411747583749498775904831023291452819593487050184200877859273512327293721284711396505396620594866404171973923917373942913382263334280623129638298207824948958831391630432767538342687213981346733095773670067209994417655019398926592281700647638645146503517614648242121802363215530606862486394086002053668177903909912402815952887773246825437479920565013517511309259258782084079921123602600773909045320726739152828484282921878810697175513917818412337718109652728525180393493728099015314600522539086831730017135577801227009453264964023043070275359690715780274305962221339977082241623419474763727079201857736822921423911373533900130083808009680765667086538386443429204688396355823066744812593413449511139398482565616478792395757356278817945584909532505971083503045259057306702348732477583283062101067126087985340584276181037863640708432434301504945857113221754445934438163988065013938964419520022218779907119694801834082218567388767068910341357301799760876276524613275380434328095385980150558884626481147439913605004552730402666590120335034400892161818979199866431349292184432239516729448468514619633049464700122488061399483040739699532818942273728174193298675454587918455423135367874915548884128942766375202770597461505441397179083971691274126669175084355258755034403560539076244576431639378848106510912575064621060016070768152575708693238209921616113511159433833104280307016344317818801926975993114480581215725451113869623609400679744576148856384055027601527878050398217637149494734398432438306501241423670551196131768629093651277343392647513350827771052412131327397934590735787265214482007777059133915735665284650616657493000362788784879303506815731176331035756287514835964325938833181756250316248462249032088961552834807643423037996232536260090134104745076521314540717440232311122901799823219329526441593594919242211070354946458105899003692437482479041722028991561152352591021982276792060074271312784652146265748889384853674998774543988397846093050581088367162148541494971443486578667272239574234221790112178017663672783482700600499042033186977831517266091525928769087274643866024083726314386495894241758221472947168559739900856976767168108687014429801380525628980236829071945124651919489206196044085638461576959762439202956450520691016057102873535500151645655142503009632801919061751786474451295275087567901390389808342289462438264446269237348342346225046848656684483588368349026265135281005716526124650585646136578933617253878323041207646539576277735328788243404124519916863651713133424949687479926224776147417453141577945995626175000663904217076925359183063573856800924798013257505224847280945534802323587219916706613499989148036741424764246356215982637199276878513862806242218278221624240460020010654266851333488408425878088580012987453406316182199389764703903696861068092976417233642204855957876873343718328807221639211241719227678964723958489807981456423885360068350109918354266372356876723660325865640965328117062122026437096929722960015621410384461489634407354269441668550111848986438131968904647218100721790340544746247157543897228548022224635653662707931046293068754988429805983216538476011466540923091199409850294275461935246770860593505307244384536883168122723262381815022353450926003159718810512310562467924691064866439030559161335895989672250247998014062246515034819390053116843219340258811525578640673078682982315926329670345926261876842039616662809842586775932313384125488987699127482689617623872055607808756416090222785911854927934643188894613209213450932346078263446711353109996384659736213853763076256902123669558187190640760199618911164722911106207499180548592023075015558347357554069879712882242212189928962199869454108296312183087205929864764794824975198611139784839992594619145873536423765816747035345810500131138418021893064377396340615900917810685057944476608325235998351826862319298683385826330376314835119087904834984836348144229062641888353143002951219857156541890552906872119412913832477495049352425956705415487932525225036263922805465787283795726820546559811967031791661072871211167387812247663819515869229673538071845198081028092037305464060664861660889186490967462445694906811329812522048578748083434147097253110431305029685155340866321626426967032115747526438767603363592511236944172191543844101323771174760419713676095388778402506248879953977568641455978592085991017356318427698629918201792617125086000553386958641419227013140162498895130973669719380299869501864871216519079360295465943170073191692083135670077878443777535049013629338116201952075621133800408126455739457239313853606218858060402680867231767518698047118678858462505442716856803123730780345989118612055940476732762230997246074946603525401032618328952725144963340969741254195507139831892656223934944799993670822926290442155549170404415557816156467539990399339930238730412273093911056443039301484777336139547565237831163592146226709111770668097505799899055920871277779292704174610979984810192056225292816726338912870529589964458717013296185278877377387061765467090504447724140783454967882393996431778625008697976747528143409449630266695102744145359426850003634272184224568674908692149864476869956924896321829045361818462471312001866871088241419069537888237810996524665049868313952330879042688021492642170375625642580641843451161926991523587169136964336781692466467265133758778139515529228600979933837337083452989160624042299032618506973785616348671748058811655655349234269309560602481027118992010613545700824490168596916597031247408378032716311104230813741070185369194849932454478328373880481559501047175738425888935801765897955249166087103084380041656115148207504187206723355421556643508333294024909210505554691832725840049087976303440712173696973778055721326508189439816748194122852886727013569126068239559753673432432705046145744314919228657056700887033067920118777510040951452117049345587695740693108165815509099721934395441977364134556492232620878488203589623482056251240167555599021138684562947651608383960412504146289904545950730602035186050975042810041228704232715968779030658906676439113838830790432594046205497133053141596692144121192765964394116675024750885189605573234365775996089920525404985804335769413184472594800335108934271920981195624403112555382846055076230923944937407855456443620668449493119793400117383895057371528319143332312825585328798361737448122014578102552087588015199254387887871738709393026169896202949063556008316924291427269647403064776342188093461953297278101319581568931893587293845749870833919304153244342949197567698310407680069892945367291462724329827619489529952557505816420619151983716346701529055643175523628252774094173544425569607518413684993081960647364672738311857125927314363874204329388353870865160577280932216998751420742401932025060653089330346121471785644048123969147336951824156792538829377848101873250127339074113864495021511252751795982981713180323686047430129108196376280049439083589547471546112281497751058631351589087773873774138382200078655706639707087725546154263420263474974665176859571593362365841891048020507509520978720860948730402401579354465130104586074389435379460367816707929436344203918155119406588916586980065445792358655144940658329463239977942455708638844323511028229819363142892390702739717627290368235323260247076614215291056342201129549756877147127242063229289242622912380176455521611267693587779214506447756295972124964208697316704143669666399112056009204801129684409407699584848367276728660115480591375416887640405480222685927576092451991274727649316202702940418224896715640548891322938298819348834447308560964508323410899668161039398618896290225958943902087022707531369201712333669115118820301758705088091333379886390364992463972424675593670113328245271835137603661524403333348608787800949697635419253858698928179888316665634918370112687429949140153615481794944356765091445214346384349858545555015361268958979719631174623847008515321149681409485606898731655344411331838557913807097893061804762076750581872793591700218896330994760787914856928208782251854365719940088322588722802673014580950724932452075825145725318304521979977281037158407548187369849415109557248551772942814688252707749247775578405928218101521750109620403042752954672827439462193628499248389324423846438736043997750159502257227894329189435881790851518924850551780194533378096323384083001375426779956819506298271109195844157986352114249952574792207990835586895818322296453906110076646769805375805015982481971054713756616056884436057127875700232453611493245457882567884367123750090909226952437640026457818764145946901626329603460260819578596070065218057198252355304214458005630883872807900332623063692684249305568800103597897164778196460204958035670281719915551964775558051287924635076420667080364869811587688594409599247154970648495111552174538290468853710299307174229343556280368944000355090658941818924458690634797912090905166754358286638506169310540956886910671570897077213358155687170238963526464576749328290096373111898866716302972280061415144304039024743282061674924541985694140456834373075160422525462909557997638979416119689474741753062971196188829277198551110812609409181489455030718528027384843350609949936823578105175212175949869163700778950207434665162848725618752548895460701641792858453040270450114295852190923584759789110895730481711122341932210023438904293102889328669963635261924895824768899290482212517532460230619134782805602886521561017867479636286135324479063931533973996915645465791251299309777816643529362600100283778074141567882081770286143591379422571924999423942209207909393699424721095718546764443062873027238870345258061282324033836500612215943289675132743222164363837437688182728394710215357436820009288931667007863809248181706519926319854394187154574318050020357011415345838091264208732704202557509725322797776283748401677312504929683149379631627001081924756823833847230430200624559033526149995402271713841269791915655935147254004241569075644509721383473599227998216545792706024072940265430955965770006369429488536827656377258994706320967870722282231388947476280583279679157895989546056343033701166003144132119460453236468764340386501365594356190315779683054578983568334217999627294031295568788234604297058631613179065830381201835659176673030980586265289204974693334879317348839269246063648682040074633936982312111165349309127865167250841753664476860093822238170864077463319364807064206957043438970921587566888923803003544389632719227365582628243519620386212484443713769347625242480179049851768167173780586242018523714122930474937083956628157525874019377369080099314370546904263176620146423712882390283957291780325054519700876523958059240872132745086049493851888425220115028548936616515463505414273537920701701862061755349291132913789443944604600533210879269634535932186908276435104562839618965730526768593936494246093511036275502741411687800532452396174722063214494170578013481757321461052632082445058338129586520950376369882338094652330761658106849329351540940590658905412560198357572210480061229868163215921764999754483304156236270536170045727102158723073127586838991088979180632222536621175879182097884611935532536535125318825427128492003220576448467888124225975125583340109627841396550025682558889564761035560529158968116266316843512406920295164647534620610060535360096297903021863650311149268259252620412755307357563667212163896804275991885980363372280017940938662783443244194882750921909680726046749709377633900181895914244458136796503371705463580559286270722416742338740769261969804143935390687437331059524741844419584802080508035743954247314419897170320273459407717413253532784311285018499423919697229701860310791374685580404646205658925524177223166727107318762342585765594976766512211370974213884945771604859621150782696222555040525134295033059117976029785556812664021101951244406996408559086366557928064021889072765063673944341925288413294184418394564531292013150465621730353659781998343889244446870134004808401841845491780298755709087340860443813978118290837968579363477278546905430145551213815578738497475466866592222466963055312317347060727063788451420028076502581647721094058903481699182569973295998429783122415250302037385333824811188691474417100164066341377925621051115863483946016791357138525359806377889022292725966732214457486536137435853387390927897055764189733510740176596469490781772131139014038700364445920453011264866770631466379270968504668090900132518225500979834216046549971246801072552882819070568532206302467975238702397007634260372997707009898937961532110907344089712683193588724732894354740135137803316687603115824829354455176591803335579245626829109518949365853491930589480990884895070212193640429663281985482106954911468307024016876171553670619923852802956664383800206025969725954913393893357239931395262383628810550878639250640665103883938010262238770233338680402907279592405286920663818335096123371653508248255401486711741081625848185273933986981331839407044395507119661110437175743560116383185163332850225720268346539090502102694861999216111672425943371752229011925646002263157246298257608710844402318171880072004582947086583250714649293685223418069170717441484968912785413385037578365539411047278502331250005473522016022774282017306647906277838062818262701718911454024630582701787393021382293632294527367024909450402682998694714911802346170633202956365181412303569913626856346369070890396713504096427291033256329578980395944355601139884550530931078981252803295076457344073429780344270551221528038393662810923260989196418579073045088665113387053501345053269411701881054607067287971879010640404476527505310778193514026849349630108636344791550848251191408533356015136433213764557534991282151278792033020906797078092790697824482844711009218088284963468706147076743178144940984708044611538086696283677926794382913539496169945874991275612055149107214695798897060605185311339349980168721882678611540767675208832094513673905168349441993561813636057428690972281698945931153726941536330519847248734055684775295188454842011394493596331074924113714800183199373931111930334729693553938073812116985093269707506146199775331171190355547936850819350122201481925626184501077887689169284969758530152987270835173622062987271916769445448600752178110198607159163892272555825252393907241700475705102833059261080894640480307965327107436933440074673500062440782543791852872276841286663023061691119319670962386379873395983956365534091188440426010003504351608422844597143771425792180226384814100846923861986029552598362878631811231956616402767916014731446656332580423259272535040859437396075149057229744468145158197439525892370023301281360760336577890497200785990626755864904936097320397009906524538156132197344579223930083656487683123070166656480840308675926484012919504672401298399140916600352945356088034965992205034383719469207234140450221137363506267665210699669736434332824537161323324752124392237699087749605869157210444681207992069367182776005294937918527284069989380632574275343940565264825637077173412091398850952665290588577619022188720516520392947911362196607940546150679545714699286002007223686317454457419929554145358675244707684795975356971683011526516711802135031755329942917744684132071710407175342936419041701499085810520659926077998582734791214090912729794103818204909725015048599426364179082924048097342149808474746046001497729211923652409442735459950922876241288398228576187164361385728301550832245193750133297968495810730637737976939650605429261538674874821945047742516922444610845272900743771090613512353447119327896939341812599926697927899432012979071525593221704538089388940899338547453862016396209356806391256341056318223285548126604985005233073837408666506918226016846491237642426669573416972975784165387664417519012535414994194447880290999413255209380954605226846617002315269342283291364470662974642248107458456052545838423402252090004951323183155561267651500800720042107400519934975091045855006856323938195786917096471361597185247218387920843410881564266334407189056574313318240753093393882086312031663411296954059346740574239751206311557803320772607660220343464968072057360130986762974542715654328991941693729501960657137057892571623672542709925143769942710034608105298199410804381562956330992553404623062901982689284473427845269687702023198919160867042965242653380977694060411124150919911988193822163992479786868278922041337404566467139793053087640730564002617254415153973324333366864225400947977090426428969390390565766648237083897771182602798096903956622072480878002401141814142478657256950612546978270448598022143770928390928166780724136357874619374484170602264621816435592857177703822064626672574702189294802518415770260555514674064244251135089325704898477933475123683035399058088853742509996047533294027088230388581332901989378994559119070065052413816141323894685280886233058940692723583366738930295358108322262897533257615269134853067253614070512123023049475116860235212783790601368227421382217762451064850931286327203068429170877672972163612143774357221317054275203645651894992305636833679057957460523287000564629878786953543070714513752346660847311271213221786359636083260246609818544138967755982531593288496778638592679208087620461419158146869744972548670058923377665127020920485655163315883763069646849017768803927425310666777205556526257847587225754367858597577351904726076117216731465948253866306815451655951925869036569381376842793734302808131554390658163911651858369943076126459385342133245663874726826134298641629882564802969094586562521861406555531154105736670725811662296578434715558157717334427805752052924352170025626483571459850423278005015069474994879142139183259594716001182667810134611706686585410486530878913208692612862219589336136153421866529699072647562366307857237247362877633366437013387211522955074616192041973649973550893073332367118473404314174306593158874969019787891852598690232670054851192309974258863873886500941981963293349367465084740045088477871152773032512895395732403447847235507806529573639016681191168299608771488391348244154288576035271707123522038158845307139805907850129617514188422918893927652154192453902733742209521428260476833868947233261777613460770418581160890560447239230865458818231592771213636820587532008871632790609623128030311696548981708179679857381542625442358519893838446888518330264950744114936557266232114573817011033294973835812999847745557641363740480954257004280166509967310314969707030430005617597314071340456151453714531268525641003446280498728710785095117192689612390617875507049440622848274874813888003254750062989228027568468706631834189131286044271932801850944484687320283567691931025230748836383810004932010872870482923735902645930428302439476787565858575490870503714545242915912899132836020362901227820604002357508248584539110185174358214685112742783057794984533332729473870807500781292589473310727501593121355922443128206258115850444772344350021393966668696619286202220117668016051054601916407686265127671953038791558460184782595631528260598331616238614243029413604268274927069692162560409035556544000098878585539353334537969247868330407733630696056379317557779491901062895140311204035504116208245848754188312702712050524929396285382567575432927105770964384461704630847390755910902983654163072024392820413805313485568385802700872449750127681442590947247588982318569002784230354370221741366887209999264681905149870060085480815409547065070487150229022234662318969473315608827236953521093732297509643257716777674734705141558283024378283918585176533699564642158884638053383147052710354086530056781258691754656775223688429862556299535416336826784628156647120352616905639344733639142821882807642796294070181627221545186938648150142750547034871441904513678065717129238677155035703029634657280234271195597821448870907361604603353417334276222165318923620869866086316772066359273381191774782998253478996637998922368843549026854220019952512810361477508254525343506765705074179008159866498949220619514832827402332931918866935391411536821082441097579078608360266850278045459962277552572280317794392508662379695614579514486689867549270791585634994953305017891592704118626582639361176117647473205477199046195815680520913856362254357438101013565350324106353475584611504963106187758850646487170506416940433530493997697581708296723516367962297537512290873092061075460363996698645688144341088805250292172828589250344528619559570758995420488110537125607726561178106420302364677853192865980492653374218558382650879720307588679682292000349216429229286405907459712173527063198057062463582462776401549513018084567853697468602934277810398623290622392922401673832168001964872290917522696032078621993852031338145948442536957918705794450531122373350365532683607674376260663419959384249873387434669092367064718353644152451003296722107687948588929681417337954940174627048033604045471808537644674369427028485009945726936527845036573008176671874395087873530285943974020187930833948093744255070686600440068300316198883489043708723036231732813368464695239237953063841262220378454268123224863938231632136938632063731220223289851826666842681810175388553637320427486624948326151790782975608634010396476876070371641737772629258816772033594823160238002521259746530338047716942020361333897188894776599136961448762976732141401130201367156136510798288554017747703843397223800135630899057475975201805296418086136579555764576515110123342172805105338886149684896377796173698883975262894199955397786443112132803990238013101128824510981031284927091722396833557414754215915333659140044896448150501730780871085860067225169654602622188142624319199253192992603083037210286260728735060307568286573667712007205356494372954003900047980747958553127179985661822410081920147594698045669484460169451007765767074792430264603611023923389435550848805580572484001744911861288259580041179346970505920902824409599154777214365037258526848764061956987581931737386339032446641524120326443178575044942664967368269707324549643404940865045316577169089443968681450380429044354729846008622772629055287937209893777422164333894750256629985291755159651475864894191552974645162560051597231239286895223889248867195907545156015223698636830991303227362997318590925130940705145482003887589598949641168375676479489422036604356619710534614160803598604948948165776986551697680350125482163033237141092037524469455303695392344815159886543765790439323679393140350172640288291233822527594215417473502261108211557131760712556759697755431919380783800317786456535105968627613756738441921095878020189770468147360571791575715912810241031809285296610792720233494702956986840556578421780144948216850625692472440512056911384965885835253773489260415071214473039031990434671683707353156696600869944357871999363838758649475684619755611892251452435766231938850968731322219361932869779284713227311242908467505114887833984848409284052132359161341602679774053793627548002759606860282438353004328457494117504760008143422558855181471504910061343480714050524662640549700617061491954259063254736255262449329142303935046610032955455583130003981795976652868134827308352269624318996323755765907364319582373037744498478102999756405436315190733107654502344292385953480677076923171366339149679463397255930364441820672195890795930247125398287770306550723071826420386256448297911271753164278612615249262476536579876419116042161144536743674977156983826167245010156502967418830136051550012244051238899023421235884271285381131941672114827114249063381467931556293155090565620276892724164785818544625054024175761602581003777634331436966234599353774327351955723560232610762710610086805389784715180687177735808724313248397036649555541872910343166910134730936053315064833901637595828825656319480506004059053836760307126740807040706925659589219241257871831640581202942906485232752709663214142495660584562919339574563737413454633426337119373383063885664049603881669455151716534854961920162969098147855215220874476687749584634403461582535622480675647642965967902613069301521233510399807800272044449307903470775210496191919826764245967599472650353489043887097084597076763048672884644267033284541128622476496658368185239489840052902225120020207852278058264477065105156725227574788225613101437488666268239296806202493052405226575136811024412361921230822438218654817770459789900449546711313429635419305941741739387484064886049376208065481845214188133312383621379349284851093867033472752317071394991531056205590463992866285824617708582533968559532284665403779246908443758241795860679094392022663286291644419209996221058499892279641959794858801144120309847049801827620017188459157647053144996040975136051275575834407559627212995041683324584445430958841548976948928138316284655044819531434959219140202051789106852321756819564246138390072853342071201570544409244103837196126983578613413310866577054763540798413533853779680173975382806650063013687031831249863720632636095186284241865768811285799290822859281847138311184750740028797327657528303402682486049529814965232802608097511443040829662782078164297747178829180028429053487004600216182851470158196088915448011832678286041043661328209777182173636524970497416899899389225716650101709924244053180703117176638104716191856414584206389687390461915861524782291000319499471131050457233805144773779468115665786038150510987195566394472612892813759588591387242194120779123908717825272068277409984181747591846330116973283703741447402281776105113406011468046993542143788521684470501150044588554997329056540178308444315643039749008345892142383351500859114494177097548382334487518951684431938890653774765215429782208310535039541961998821953141696967472054772264222316189103751638170929492238783086425831481954322589398450111332918637335512087654985560894165813181443679720086279353112791751580429348441748056931318031737766741744426663257192394162813152630349554190389981484015095639968877097689316228998698553736511164437947756258851520986978555741599283984619306869513387662542973351408196628558103613185527877727469850853381409013762327162796194869697439698569927638921912420283863906845395885159469362869399354905081993299630019645060035977778209001481053430720793037857334371934493661441945708082778211512275818464471899290937268129681529282866649637635921566560716892837358023175178141404888192975675437872890291326188657319188717744644943422781523655640968187499461431059379224669854821162053456727104959015907069677981217499893986428957328281047811754339548216159461031149117122546531002433689771823949376151672072667838403537651191810341650473405572393860211506082495992340430561412091882384888227672443544543146695941424253684424125174911356580209111898400401999139780516897800134274808889552936309265319378128323625833733914397855457990700289217929779292847557449284222260096487597921433393683521965508380260116672908400882454304218200475924600595017996771701556090384701664271996808401545451453197361471188127952951433993931117260242827178751617977007688476621093358605636347995430202521512011560891121833039050395295818685775965736593262057207739683822559548359465498208887704519806603302097301045003856302126044477375650836197348807792730015200593244143813492077851204743788906893754977690310949554527055185611185957291719356321190343346008971944445538281943786168382287027753768349889117699009385420566506791948889730592658472562691903249497541098851799053206210480785278848138887244780951334505513249103381097219190881991570203517740409634906841122151752823196070569785572319550341062941190183193258033678805134291824045497319253910276383297711418646026129052247243423113451746140464766749258868930786371164383104779602701793512840565942222505426924284298500605278431718493814555331614226000239794599136570413932985439755560456080266865961706671860580485624758422647047061255741684954416184380194420088618951732822925814612550340313277075847884315355586904629688112574182079878067250275454604639196766446171140787989154802320045310020363657473644363802903484743800591103991538877144210034530037062206383384143494800777824833049278691214707383002356968188592117663434978553571074967451898316811609472881312556687580163622135234417384226969548137370285209650953313054288371040918021189260311428424005478426143445285460539221841159677448907402520302012579344087915910018423329627878422219374699525613026875168935831884468107670478318161703808857359489973210175176021747394709280187029619086816423672557064559222150473055226932502819650970984224728968444987002925372876553132121468288618394409962352368020831868503353966970658406118738413546025809957362246608835079807014435711423190735320258056006115636096171662200427785632925558836114978465433110412737706290746555966772600594280532150858386292344073230743646404222889096875347578336935126325629753842191700009136660682820496414759414640769824871138924349462379217840065401027788639770959942285668317269390982958694729662814070852370140870716988687046270795240558731651436919612644544842558293381456425802370677112344766199862375965087337828693980862134205287709410176099842376515272457240417770406542164130251342059253357444933065837860170953627796677652190211610781321133262321327557175043925064346744660303511039710647172975553433631579109542675522733443493767458736090679311538399935003476116970354704180846795021961251658649236885063209755927256569329095569894875383258179855039974365334445621832915283876152125213299008214663706485977846500560236187586860069132677179522012217237825859994274699131200042252931249465884914144315438796536638342759129109839997431631509588505319379017544830107257003088832397939334343599389653473216381768746220163976343597896017325818822060422697259250248340683315369489511194290886499009364974338807492890545473723730581436519940048750131393666613607133840881869372246022983801994812172981256921149245868391600500551175245032509942729563819284302886182921907796601745422815514255017795893076512293078282260944649981321088841149587836367193371678041073977569723067771246222261119622252275815970734660988001943316562095106148700655705530569581340939363885268363239745549230712182092214498911021055028229991786292871662589317077188424931268504804425633258936623776958042541027194612022326336175084064241964912250604176542511778703759929801292406810915478416400265374096880434730470218393193144169610768961722059826692131376089922973094040521249756261340782387056415053695752466951346695622692664285976307508552482810805749541558630205231929230696717205496299381612490396149232318439204012718886041892436595575497774913889808398766809007972735438089867633406814995062960778688991393377087784730838822384453488726487332921961171417241437335738199387066315921901870777088162937852327826386099363745728976292326374159538888700489794305492134975461445940950982501245100918871585970739201462767592618856809941748590649054408533632048060614200520333895819112944363337033040108487614722284835598983609043498302091598607493915430741870920331325394050724766508266980811171291882957835272916405762118972950860245603908447816144852339063254523778932463428964677723374356144332986696860019170359777027957236240571937672216498146396206531106633650131496831045592079963968135164720370393754433002273534469946247055140788066107826186457470057031457153530345910530495050808218084862916160260853824732592659919743321649072379122945335567721985955804094228829206527025246313274112425431032343610958873789800564466355580396766564129460883645574511439278332102398082771058175082592215590363466386766236882647761958467679455958592651312545454502933569943225343745199152369597305189389588820431621348698910837815836078462109796012021949138807004608880442478688433327053409360480378354935542681321374250542833878552063507448934677095827327699313940008135596460540881086657442325062754974937637108595017876419322425933809376161573342780462039453646486049755710358293987539776635400225847126091325785245556613037802752095631243158969889680474394984839806039086364348018816552520543993725773295543754431213381170115552890859419040817240294431912207094789109967504417939520789214919374661830623580837641062322002085258779733032694285501902740210268241636982084518121081123524227057844133443412094953242234803627384155153161350144177250781911909271363333007966535626397903846122221497848071028099067736108067728523974131481645884508760691707248369039497914720016340828086303565733361483982385771431313904511048971741106570928618592481119986914986413766904499356581867911975354876311334363129398163172344707958005305670825344939596125142579498767026951754896189904245260195630485673665562648396474057717837584900242359691113080062058024500622080924787920281611313642080974640058062549343481501030925687967580365078691950950690357155389446672187243578072875768099718656295071875331541476900260171356062877202837324658691669530023300589440419193557110335568642168113623150887502368254363536393157221637660774448024175326644300499947117666764481977127353405250278753982743535089851305105139249565106406330204871166391534437155676310360992178439373380674525100655378919075900761527347279979102551235832233744041466720425420809399503032434582950509017012769344782711603742900485674835981549585895431028398664321350882369639837915023789964745203988801117096650533733653386258560687840151556479513009589182685474885520873869625038132658938146009135358642161195485061611533548528292131194044598668594861848238201445443146760127871924077695065928902110466720833201641708047865302724483616437904369457172445128227609916728158457571938063325749644153861474446132170607662737830836560632120892127642404163631322175422319618404615208864703566073216084703052151972470170292669235601669445953135351368388482772228489240002586043322758495206643782032864384618270385248901555820024681622571584927591233930185333805834574943283231095825659019611914026626570881746843029513625230667340472004205830133888392301208617630768336362370381145751794066412876213227367580091506722506996706236904301940110029041883873365377624128819559501545033648229309831015207732233334107943868542300949131770270573270680036785435754854621453145229377744566822411752741177884170061275130340216936982184157749162897598331380698718619485673318081275714132010640254706196636390676000205762326684716538797973865676663152155419563512203533095162697783590754391993831658275375221558082812167047232085485864998388816971806792894932878500017353524612622554187391548879427881929285789462541476129421737585443566925990356623443869327923550272700445615216012281600823056584670638535787586415996779469165077941076541641095599750809359235703499478576533923648480878910869033816853352196574814414381982191354565867307139800559469150268189971106728400212691388798447015851579439814844253932362613981319893400569011552929283982871288831029328997039439714320126394669304417368155874436546730256070046634721602278834844142643633292442464464953935539436920485655988364449458483387768986514238499950547276152361835100147715300953196917619404233220874194355431954312372102151525248106225488029221119142407107708981954100682916589905062634477838823968861647242589855855069048295806505985274251651723421911554255077007915880268001549251013802446926142545631154342944256534182680293018296794162502024590047054033403958452686368912933537100254783434403564164798154014580461065554636845744931642769685203513235260723170336049827381646558715937604692045543872429996690308132417632063315667545533809445893790597668071626131074616191949044615270001224296358858486813330100107449788027936995263443654520357688471326141633086746621527528891657978146792405088134705959155815549854442086291844465592602222693267548333640320676762106873129058547410220217562563202171781770458903680529434640346311799537702090469741195779436371408824106018888221919632430839538415764634923278965448214477035089082357463025157569605754066233193980277985706554427903396099346744532886529987743022919653901392493806407410986916243242490587866216830221400228383502686954361399854014119059718353846672942558076382094567994076023640985886642367514573334199893687177409409730415648456400846353338446426279841602298726817453850415246048270827242467361473592370565372487736489926969966545535312728789196011006784967279713638027559642166692436544668239794054833072047645908285645306113023218703265897851013539978732675717764575550488144867972409462329104212094437851418656689926305586871061351685285627486759736569027330345493787916950758545207213173102434000412574307435421131671333226599650434900511879905471229018948962184625127241284147351000084888778888922713797564348434761254010390659025023035341635650967008740955929837569546447612954442718933325439171078555661978964203491541674239498578903479018383313696340219941135534085796142034907122465893705195056955380891811256829802683059155426009593444616763090717587666677178578536110645776576430748903747473243709471148750690420553400387740722856958442879228115361571278043401482206030819659532859642208283468335982309364060795902510259811531320647168066092899703093993607782212898308158348845098091972325161799936688409593728093243962882171286348103702566219311613169798404287765415654617264091288791422962282414225926801644253886777120332145707266358289046893036538288261286880948153373008544299322665159572844493362755165689462521612492494729075189823196338049713372660501909140427852797951383504806721912574613192669993204725081218433274934254043959255740835819699958395269782450825055672458824855370554592908274127566112168215228255038251370488155111160616503127755742258808728391157994691509743171407699043702226538740987678664191078476786539264582126625382807402677400150449765460264674096516298431201487972080023421113037060720740283964156910358544635708772402095185815639745449228517224398744329759826625506313002754487253017916922182406170517430951393104363346856792837592846636001755995521494472189620400909954652321746485542897925245037216983698700221874352057077479222980955203906760383724430220049478738713487678879518009762736614857907161008094484319314626377144062003725064152186952281104043365800153117665419075920493366151795830424388979378598546313240629604467102931217165994594354962413241243443819714458317854088310356639487170343850852008396416244852025360854182558212452976002409988339205721439412537194462777757232205883800794983879751890058024391550492670647774835477561833812837840611878316854821550991217068830202446725342486496089621107216921452113222247284507187948271030313558065104311654638179719762590602882574883984356533636755229339845627175345711997958343106233871823429235347082006394894792413808944455037269773947933140108426364444655613673710992427015588217050658205348563707422815906580529948625205641740480434841886895194867049137685883099798961627400655105230542283986474230633666199439209394384093770328534500064271354684580200731155115184102093282542052195828883986742844565018029332238781535240610509082624483097258098439558150193793535474761826518877968348942147802884496046989191265929796580795333606564950532028488830858813789731821654386790541270585727260089626544874414529276019832705657096632487771037282236820533268138259497590668780371631850654622105486826840161571445991809689532257788245843641488755135113253476284351114690525438062318743961554647488070869048200694063939095391805448027631851410670438164862863072881086443729758278978279706483937698626772518087549822662529291882041779293206977853170448385119448565739843829292094604133570172290746209857921815448692381332989114205222294790015834065306922275765492673204095954978269349532342014206079294215134660393753294680336271423805780745712952805015293167489210696453651318930395039023148200700817221199311665532605477648029964324598880023640350505997240521307740312703130233184348569233826902811515498351184938792368118841566977200025041994106625506868587694209717304096376478793223132738331048791071214495888472164050089780609264769050769195168457478900204740441721866410012550326572412681769478838408669020724444231093168490112708023948015540170538710876575265346950397359108488417092757185020088718428677700357017404829420639850952885497338710137582477463298122719373458192278660605222405750713206483938413034102980728713340001942581585570821037314945987851142241871517045124776456937645992817627576622117472632451634042816618949243075962369878654977445289801541639563326875869087568488917400137883016182175743184061179217628220291402613083739358676459866254167814497455061941983767687875309260743098343266724429688347378466042718442772990660127993482985837044828303801001236407771939247237233119256059004853413485574222225763103755129058830224731758789588209242132819497400742136514052148045041158552640221936926303989422169587571531740661593862850145440053687538446949157192760765430259881632177620316253757117057430085662031421888523426015553535875447844332718831827215349667679350569211269242297831072938166718045487166501506655707085976562739929803456557414521117164114690196327456663441985320847164704635440710727936143493037896924172867788800662213730689138305605291688079034178536410285296497962668573926670553669585130641207238400923864720789309210202973662850439666615458714091677367166554289199097995378616678410639849354073485948326010754621846412854849929566494274734917956558978407244171692905511421722907386278874520664891336429460876157473852710427802721495161031335531240888818968979467934704045247369154856488267511235073738141683805044805445931182326089845909578133783798536803832684416041745359765754849127241247185378969755982781702392150219225686357016272696474831712094609883834477952464966400590646990060614671792721653331388071982193758343574955575781038136011716507412586293340414897308853851022932620213478769553056644197981173503218128793938852400410683892731975184999032678328871940565086969163977733040542508217705838089396663027252311467175607014047483905269918777263153291155826119280631326870697957735840793764581826879872002000087696829789986256454042725967054733720659865402235657187323780696768465169409197897122051045421819969357089500694540078768587746508983830595692420139043000679135737069691957507306464929146441997663628992905612922674980377138107849697621418716718971513201025680484089999100805817689571716099868900424982725615543644294433581762162791763654290720846043080210139779452593250792098563895432796501451640124787705453384880992864005952350589144523814274770741527262693454725967862737140682894352545250448196081177841698893681463084464843361443639108139280985393194916233639752443236691527880216050180884580828994972196099342262565998589639884958205407509660576749369112727823155855436590626805986658315506478939557770890848844427699573880491996109467070540951230697565278804294600718550184096659666368203022757889218909852154908519795123529184481185074123723621793153162978172612388763952212307468392899955371065463843106068645336133067523072964266616619966766769662922436195991674898408567343769840763654876731275498417701872801223914660902556656295964985613866154769701829502236612287625827226678428158152591664169145075500122703865060506570391063707097003756787374918830559837847965677986709488154319257618051309947712187612298289187323900091979382486766104444190411231862005042673879853237441386182854781076182163399209566060264091623792196135449380707473816072088083155367388295992136181899621374012733719358910057181169687904908317596711984665368450825137261116476759008846691718882008116575164260730460068669494524502147715922361620923109198770647475801917452811797281360139469466459939528298379839531581550564292645431285821942397168581858862558353591052993176919711140964001439040760283480718272253655806967847915106959511841736011592132336361258664719814745176281605399014538690749434243185756277821338376589780633355620836228077180407521294033446657026158987791053473266774944768725762107641204770061346969705684771378316786925778008683377561669009940579430596854739270595685487958243102687369523043141934698503217638926978479505082941319562712252176569297148222729025947262873010026949108906434111527500744835394134399829273788922311285693113662914904665550171101622442483174763719458157917224089503471518542273098544978042122100895832272909918698929474717986753775857678673785353308416544774831191756653882993616686755754763052108586789457171667315939965933453725455672394429058751625263045585120914799798779178919548916970535480530998802890416314920939791676046676565614927171491132747296114663654717760772971315520694743734460267189448361737572505486331295768140397851344718308790414557161334291020908951303471694242387547488520451845109556878013120805030201211110302562258977752111916061121454115523355456433316591309913282225309107648432255704111502119649459770470179244009344597302798299425407270107874155110598011792021386513603477398772395307439471160175668414348440140698641388478233891597825352826285743665831528388605970686870465017095296009902137704368968073278937304859196339838744518027309313408889369420736423235891330916710270104466915908539848591314278953366680383031226070872915521745989323213041821346458585543265468987748045862744560168608107837192663909025949228924043415697285278337574331410300354908071978782385399683057176615386838966286484224284070286554836499329285143968797547182547316233363813113678334926889066051951598725929564537404871768057303566243189908099604229312518793086970248711791939772659854715554258946503198917543643234165632083563901027104520915499202517631241370188462146785378158602140891410534325179579113313889802656353499361090307891913273005492396643517232328674979244970829901911329421402066260630665455010173336009306657621090290024256636697663877231221813581897099016704043782729382772276346268276272103636110798973983666496201295658784854422817501702539511735860930518229517402239354205429371212867193659633894706523334511536896611086208210930124333908727509494809858914617425082182270617551440862656742078917064897332677104838215360795054252379020520211861705827124153024590457649813187910405023195254467963004292150055650348525316765785737821697009922231224378616240053137523737153968011813696712079014319310748676493984075910988231613993708106699492241987279170607497045773028489918756893855397080193925525528900725644449445197094132301363665168859416590279301392126072297179729127021100989653034967329847041650771279978592243925649854548883949347437510778329017294510724651780650060865071269516951088386330582892383371711107675239143824780296342443304103725186226679079267352235031986647731153643607593218124504094781545119037525553547448565386864031201500622890971033504941200697299454219409634739582605656656146185975269692656112679128375806272625311191323007620151733942859329243615449718214392835043399813198024235987275530553857843224433501258767102989705896537216046739683533471235150716887458224545348524821308287462456057944833682233217290965869502697699329355191781851839003587556506432186336810825800716087206232921278890494423557028732530654742728454094590165377789451375369738833580841464543366085616072599318227133749347814084907557545540169010483544014962058886128926104254278400679136732561382943746116225548554907790172885080006759962763839738106014353547235674444642737030278038305393506425240884835232389420355723569472367158010824057176305248886752761531131446824188508899475151168302825295891864972466534091931435273101884431271779607415953821213606295758246344756626494551721206671662575203215828643217892005792789798499837002533399638026170695887155313085748958194856862651328272968792039112799996669542896952194034282593251652495775038925901332256360878839124737544469490048383037853699153506009271887856704905145751312515006768394062746815611705262292792367379859876710035937773612616543768922492234375021820168375385074549826537763638870146435387714349454923443469038873012548267546341036320641378159417400314535060344031776663130298553538018610780931959423199563129153392382967419557464621934964258509383423626072472241643657665030233678375330578079186378211111821933636269861963791041800608240888814033760135253642838986371601035172984972602593933567542850168771976962016176175641485053443239913039027747007926261411267206557983704575126305613892913547880403284259767533086361571555244472406140501805524160421642275849666864085939075269870434473495992787314171213215831891654485824647471936244832258226058136927396882270607228670647207807781087499297203137410638344343085712843584344341611927014519236421631443120805664627110375916451554021482308384536904794944077786789599641800447649712553878271383645670421674080433883303843337919181423878092802447890723111790916019155834243042564854082006218593022416089167333668364737193865376051877478083383971384902952270927492859349004471624144406311205151348420610591763148903187444942823798154198196156220545467482899035027948739211492030369093352632470545329584989813006699884111869862862473720881157905567915905897971666052462344386941040160633638623686132222380046615140366022165422486861883559861949660445541991861884558466300766524948661056230755075359321893819646113389205015894522138406878762858079886839993334102781342353519525007411893183424740328467796556887550255186081840680065904394439580962885020005013487228144758433928554517217645452846819392621410214837087251620779838824213642534748166942512978783826054488794627762994646097106199690570164725329777996557540347982174215172010750231477006618604337198117493977638119243097643594537860276473665125329483464751819465021744896694244321593502693613167017039138971366201396790391836112840173532064994428568880138009262734744787970497753768022516733068210049005406736976568392789932276262720464451805555205961858940570485311304126365905873252412193522961081721401457778657785215947616414797979030822463577959409657309089762911108519436337571546224524514688371853059091016564748697242404470947236397408709492911048313151103809478369733940231669581742102854748025629090819646132809303179504455293061933059679711424009420843607296810285169120949505153489960049726670497863710547366867734591659076182685582208464264120393113380745209120456842442263557166694341578186626516691204105760463046838490178928136480259547511778934863410764515731579001087167266045397647127514202748358053166410701620505029289189864692974808847267081370432162843540530623492537862530403598269222683417790356976407347285937109594810875370232419925125604544708336030162522620721273120245852321515384121153641889671252016695438533905051721386465839805467612896458559055723474979339432488472975038155732864057474960257291497603319497122131493379027171748916808975939288572679090886571362393819556873185593127834181191463533897620855563941766342867319147439756729989682470732805864726762074321017420131932410447827947550305506156913514511524774699933614745441203918855141481652823869635816667046020242963120949441957392810471747895051180622163519815822283798948501381854659454032266622180505854428276284570119714528043107964735135745238032750329764590654671520723427768780401326098886011790799077639048434087889678589575229110888062483262433156649921821207933841094643262725351096614140416524719462079413796988269767954482385675488707287594880582632572194978664608194334783264782693199434336350299490005464118904198678115962830886784281441379847680051029015478649433422697424250503968484640237602516950363813885062188375322332486568466118908412669134679707040766060718996697203800263603986787893050691014153223748673963131170261671862683874867557301410636862780371178946530164180405848635323269798558205659036705295850537852654916854332178971711968797843199150341156652859965334190953255355293001304171312502639150208071996095727490720837689415820625776500538546333044757269025274067522625081185799246410473012918363416609236693138835716753823952306914694845002066886411528287018930314594036956989746299153874390179663867822767636626322149591452860580781144372899336471621931408806552889134732718983482844073116197270543946931790658780434220826663861529118734527242907275730872947201547395384910022227195686760653489218362444197997230715930945254103360270804427086499550587779120417209819452845249468161587257410023038168707143743359273933329825375390476845061605997951148688327909797123995606746871847900913460101135816008601993380474539674768150032986341036612832620889845780062068461779360003730873649411310986418754248585277812103131914888062038571462851591953597314006419106175188968450439764336605011276443960143120241730685566469605297995561528897876089196142901928072870964127098539985230397887891426832448340400271677676404581133030098349498022234586942994330175576882601669397934700638751018829526903903061490305421172034824081377677142380168582516763433855304313404601412659198036163172310396007222997562584104941003660466099162123135288285273342873087116892588968049049135276682166543074486617076507250561083401163230407435327169905384158663877319960914672248543874155603029879697936616770324916201807289191646508695768188008510595028892540478545353494311994109750221027147772746562753723699000437989875928932376058401814797795523087739283402834545217224935076482318081522242961212058190015879682584122325733444304611489256460675398591828887111447953839288626646022023318360412111472836764019631743900659989951290843282826483841135216379154346713757701755340071500145939014592879930054215504163434393698835755222773873228342931529450684686358685008587830345387055259367107530052458069607328188413516774560604761415743702831221351921990514448527842494193113691848559960779289442091946282174280083434328911932137523227863971799636073230672479371173962114500165345171847089118237574407639499769187857102829897348624948769956045768989766548127726097136171765258518249090611604721743599038751001723118345674610740941921159952720753604303469119541931348702053033608518393573050349244386595145622916075966776550454508460088568060472787895225209965824669762256235794758833576812824195067453977731793020007013789433127956121307231674681331088204703153900877564201367027657590655577914339230564691345884222771432102261550068218324458668497090168807982781068685873407466067562525918653826214479320948594421377690903692023523618112455357230941915811306178775968858881820469342777271480961365191382120791031955840542951484743697877538996138989538844754708885754902185298962231853051867710829110489058170486650536522067577534245749904373927668460767704653123472352247846056452983359979836425620719075408550901512109818575782548380967054864509228759357378867519080857754106645910097883074079706997320819151611854507427520026956269373581116959246252508496333539174695891112611756571836752495186954100679759353106167975318171027452809868514251206765268085092733186428278060102315801121252649939326382547272320628707940342564432548722633235144489049005169246606466019487674642033720120187856567777627490333516117674455764207728982612526602791579472343150504810161803830316649559215987281950267265004461465708218426252642097919089392185577718375650105989926293742777869548476598547229437984327402444820340337760181135529114661359584380807603755044684017904449179615962196989916225314262073098719794464026872536989479032692388508816685491912202644497608623375460646158510291386803104508334693688755178371482029059534134573555106388743578030161044100653373401817442000700873431813725349442365774689137732198014355516472286563000994822091997536303056218736976331188397225890224489940377838112605635280359290508189822519731234313088967127122424895881944591201887452891848557805252811617635504756555499759923470676422824360094951146280124634825571586938307422350522432493360068183419528557116592665616893876139971191460096549269399562708019613429120829566888867894302117641468684646998765979150972428620914665721138774976463824266001847796974081237948073167919871755786111915796932831549588563298457544786932711281151844782685987034005100282616431688159309529565726374947397653220529201149509257317487937512224766245447877036553790013316594767130320818266388167813661174650445315893557955671921645918351929192112538392384170582780788798376530581805219035793245698081276328154738190393261935027621095217113846112579236035546347322642025643778776881382871151876115717751885108655515673673686416801208616677898242589337864080449864699537166624410064935116612993176267427657958779847598442539164979973139444956705690059019260654005124123516608178990018668415940435816977519676392311317586013236001237039882411511619015343930472740622428538218147346169905779440349563105716396293758653766076052398585371445082680598237499650457108115941364126061044248078758650963492315507208085690263742388476700320564156700882872092177640216907655401823196764998500505429337970681420157967596672208543605705462325903959638651626693606560752452453696941290560029947612753103121577489764392705006878779616044160893814865333009274281834257486265483474492257230720284852716748834243346205463610183988834495148876522467424915970435041023712616563116601140069201860380021322342899330058160082145915452115900447254344144079566384856304504308929452307727601146885221750605976932302232706109220492287507490731598063364382746884957592651903331246660179366078066319394795218291728357518920228076097509298561965039735850933655167110288194809248426715382044990195996999172758126680904076807733362800257270090396455546250293991939714981253643444893610463360310287448605753650707496641153897915738031596370182653143499197346545941674581475771419705235973242292562309665805794851574093291990276960718518225691231878071790120596671358237935156469482957200631901899559701233901287768447126937579785023770280461753554769607721913251884443319298545217495504189592506222266716087456943788534696106254214612408761396481435639704028908203263914666426263641938293581254393706471852173406788977379939264462353739539734034205066169208413076559181936830024951452572870405045898429714869404840551027955728024549009170916437994763725490023484196971826484381729942932107146631583833328781817095161132850555769199576629606876945422870810266965994233843351861016394073946646669723016269849684361240711327843287703192530064383097168994551710410782285805122913041443597640524423043878800252335067139530770973634557940227451051359182897986598715729715912521787975120100672649442998829714501573497032340439600148243903758616175590760460067028099558097758495542440721258463136808592284348223392270262105912166256280980345899262673066273438639638646054838436620528851672474317543799347601351748128588418163353148983455388136858779136079162543782593366523429111644204300370341423549964885744892362894714949017708216143553924951225329908595051537584185503101132511870189558449491354981875498919686154160033532086589150639056295943964162859305174126543363013017228888054279553482010353108562549222957643002224118813607672529277020008597465606716484512895030642185016486370221169658274500849461653084347648829323634579197846374986537040484307624453745012177197207339264053589420051427717165406473995127943238719827289166033342002487133672620857764886867173222879076801802100476828989463819915630853522212268942418576696227683913652706635014642566505952066687829435987515879128821280671788275238936326471412034396358640109681449879943027762272440348602038135226767067473170878172546275632505098866815676249692516574073165555362767950703655514402252480032423135056518130646530721617069905531075679494077086004715655350911560502230463353862513523018416061851015431773176276936943839266556935387212185324867654098516304900512274446395379949682162876467449582013602588580728127082404898679653383136934973846188410303960424242416268574858037778365250310030508602671373237587483827275074708082612478302372615999680627149088222320248686478294522109988447449849003195634694431292621884233463970742260434072427173446906457439670048923639535848182586888367927062962432237423602669550572462391148323465000036483724450528354566730257492808517908653353015287388887394607834172540173731577937418271413105097140390692239853494628382434305393412233349828925133817623006900525053600977886768677788324439149861397487572078525717063417817020795316491810436183115080435778045175804402839963878235204265564677702191489328456787586611244023954980817151488315087225077704600927033629521121352569664181646749675939039178871864566212862409752393302318394376165517419979296137450791905082887783199803617443236177589166521407344574964967422718211419954512164676922864065235237574813111001060871794853859938597078260742694799367136947706965491098861350539612624774105366088793809605825366415568772248673201493065323127170356224155643981926739579212618359693245337546450424288693035255689619702749307656470337004545254271272963025974228227157058272819415697299435951194703833930715430988508685757280950625214350632842165202332234941075908774487004310574088742953914541556385344606463167112860408723556127768459937060958115056713675771020536776261298866563917920252102228946070291449012988826555486013284677694063671198579541807754631178997107357977537490811420292468017030664012218722786374589813122142384672107937448600211160320556138127710403764180326504765833337743752984978612911380569294931737757122690272264966328261166695452683321701803582206842699511896823989721252160885632762606395415787445869492452229914964862739770796260255126968333641495355643406092168461586183840978020228176100919441561139646682628855585590092832119259327598345452736628543687929314724204922726323849375527749067674284924393919598480996887423688152927778028951820723810109665965058191138648837333643682996397323660997473779984437867756720861926062509608919643622356704413521551942316471434078365948971432340803409308958842489412928155930397156563023211287404282184750075805285159445745883738404816800421070242832741338726001926530393690198654842104330865314727676637132630083265096713192463946137454292840435409855637200327590082626333210587913618245900200712132637697736432670368440620637824288520242650447910669650921044389176362896508415674748797322028173473601784272111835509144321420581547358676522459226709326130099735022511119443431117655968374779751656476791080178387891358834106181074351131587909240353711499542466425071330546719311216667852015855882243402621424989786161918734130917445573925274245117308445703639143201993956918611644859787783187169489347901291403786083242570438286019630136844468981367544059308944839701756062644546021017406624576301712201343282330054041837017785320820846957200382378724633738664561923005207564633968014710028383071015674975321109577522459950949430061696974802514754898869410021127446696872621230899129483372640235849849645271176002808664749451185346168633604694841280293588105106568684531746795372644885077462901437536039037806621964558749821000216260112045779962717912753525329232572687505274894900740332278796966428698447239588259097160755206508290609834619764684104375143969337930163256021557460633132279187745111171062024221847022034178037419325498435952556799588321067311471965360243898332912221984313950132228164551826309336988759565152910219402167733249586417258763722986513992590360783630450568191541456117334452687248456704047544555416809204967840404984452875709404085535640271469123697749789572178276202571666530641578295795188486206556509201689262924411847043067349537792764158655089323930976187190575375378160746498629109817865978139238851774580037436024186302254134178708239459724867246606477399057595169213147553859430976662251142233144187657381333091253163190087307043857632230420433686719508657123049546257176054399977567621236450684416925770910323772349499164436554963669232730896173902527404582709187291507456479495188680735429506227637066492732991104792912071665156343051397220081040351152812621388155100657038396518827313237253333381863318875951741017840060222469282439796054642392286176518287098500193737841235651994548816744248188726662900945085164689313587670370820061482863450971702592004281690908819221072234834106322871802046316507778183256723044920951396455808707867167645475850714632100820403044840156056210500469281155266145725335617280013090795314733590696138097500003884375081103203641971715194710269040938068380157515427606191663329348592889309877074355613125022914837637064176644724920799182707995992564563525318129003686553060809768264246179983273037150447086516166026351127691763356603602427302897135170941089762825605542503227124281629206547569672930146856367331077395517950393337671578927473798477121987336623821774965720801617344865951042085643441106825347003777656979715283241255523040767304897659945950580566723506929371460578669413600339913650685040236482736386734405399088052426675696083757995280701095210173804013357170079475921638935405348580792658256840493693177717992458893414784013360297623171829375920560497234688335454647364133606451504594495070686933488683999477943998726583309430948818425281650484431612144398576699551173906914944960923428356509433339073435632592089790802478719023834734930965138493245683202016743381328081997334870629616234588386816313571762972588396742592716214133801224785599370511867184270566555834310329322590017751176903796595380882763242523692545372571371824084549159292014292791516657512977815930067976216027674492892120111128033426938148735781319437365111920233164556873862745701902964096054857634239205178060773643872786866547136525172306335903043322331931687154954198035906386793628101368026109935616423862004536939268814288876482460233450272803636197197594610802466796114755938328862380827431856413422822095793331261713000509607957598991883888875235927828337782950275569136504913903829733914911128103410431506630311400839804776865106656652589556643427290605201890489725441727160353523786006198997579978755352030496443371850838347963592604903864326218044247536005471456591322191873426128249498145119966762727415135531966535329059378268344664149788573303986492879675098335986208799849602014815081468609892910340841968363620005397684768809572020478693773452690221185312517185223448727057448173437407482528539409413999845962575072521938106220864662109644236294631770526421510995678736326966071966990743450709027506301738281132254850331332936828038537213606118910588826579142079816175449850511682416536309437148420734370708853965114145766401377124802791517246914523726225462053795239416390253345323710984199309720079118068051515304094354645700022837260513638633759656069892152681684999620090439625237689383987852791197464699398976420556683368646511287280682602041874645344302839789360384109203601613103003945094277973447086380611703538084258369655145876776123948420140847737580817941002063694763473832469849430552851471832581610677292922414169947040766636081492090981307595027845176426154531635612880509792890000053410402877339846444484080894136143247628449353505739846874587347480084541016100048027026068107706428043140601926127533593319087191978466762843041277139648900235430589089600998263108533045606568097679190756181206833173375875549072958960534029955182334142799905034720046539484162334090215555358512638549776754746796994076497185424167726708159200343746509047565213858879791381129519277696011491839334196458303807067783483531770951896461639306741735355345700887239072463496863785898849680042393704020344245688234948672237198590643416070588857465704925422903103785616462948767306888552135437335273389252340523635095865299607128100575918266008777697406518989595747719517860620781684398280738569400087346609705011017338927555542204318883413455964042711062779800012384878788489589925515119552109632330204355320018446659731468800678617107397153857489127497401698098553755032697578659240197033510876042380225566287951523762974174415339626844818582394880173895387286573921003865799227968913273676596348615959420283560770275721741953188256862779586215554290964550224156945383760286487004924298514878562409583247223988725287052104995619926982824886784865975360643950216276803193491666091168624683302810860202769586190133812463637337134619035681788453273941034695937286474258894502137912619545836093309325097615014602195191720392969015057862604963564916877166337722957046857870223453199813235419706837270378537896915795247949157542552752638157878245804222530783629448073733694907158065455862135278865488837510394333028603245261434496743239034117304173125044946239343677934319194513739380338363229636199927544711871074398249030651415366265173616948303916029016145404360311421350106729988645164323159729142654955609918742367288867814586176695411592693656845670663858263565803934107987692625433815202436085263023887459602876540502251342716537374286079650484105099287084083781133774398757086885999257545787105908080332632252225869173886974123596833560755083248492447342327880964358071105474699269356903662463934696370559684252133933725511824595685378812372238511249839327339998144835544583338725392000760823578446944076136289921599059316076728749321403676890976542166188735211814812886895420834953835961577323542005057594331429030239510219127416802535486841146624643676594820671129194460965818229336667083495953437165055995263906161393451435795284748233511387722419303795297604593939966329444344446120320557919765013271774194643190660456136814187689046565806719213206908106895071670928417615486610019358883302150552654268521794399380295846815960009213612267804198766879681688528469685950467526388099518075773595870108673419477489320506230978123253690752510412623574925684068110036545222750113173799739426236678010106260476451968063999582057676867191381978251357195962286806576799328378727946864094143278194364099559029200640678822389939891380894154085323324042076294133980250798411589023564505514950931079415201373827065332839342863408354888218791664974207595875447949604474896331025524427865008954376931733544218569291025483661247230702427205297728142020033500678026923100280158692731027739036094064170185672765055984374399314764883120648556728628641002081486347545430117310738016721487916703900304114819576861229039198207141902414206410017563503415952695073813129699368412054139120924760644564714362192625070930019535594973017037000344026505558732992745330059293060555000943949862844118769994892422657852676132685136837626156135666928933776976366692668043514061768369685991896344004079084789509699406341671813677352317695321263144997014810519610175815999406997259982311204242924997936312677773515675097360975406245681564467542876215088915245935575576500516449939482744865086743765614749902528832796431063054459033779165312644878793889841169643099912985561706574472197817935588948052416384999493567793721295157711737479435460195820657244354522145893073920865228239722280222900092190599068766594598708834837477402029604698938271734866723272048322520098971125434747579201461727063378725652210640515982139786679739857759626106156724077028657466654493853946217012353121306090174746173128827687209725396016634386480166687865011369220938381394514496376250449000542786663516808762386565494651815485687366905818397856601336849824014991993155515979673180667076862552257008556497194030713381411031585340631123294493836411719146219984642923160361875227095799441938726780347424589687628755279803599285415493340365956923602330799252092719231579715683131827880467556136232795855316272449517224225263821928265595179590920083635478850147374937438815403798933806630622560092048551007648856319833563413109113195858866259690582653215764009345968514475753484786941513009880792184505185094445594866114102038072128948554880391406542189905095010394706330886432218247614038168293164071667984351667033691904540686839926805140195529906417951104305836828763991421910983481780633829478582970416243595940815188803854804640510599839161704813778217919973167890993391405425628904541155201946246605647829141278699047704030935184342481862258275325434537953107139804318726973776770222640276814430894498949835733605506068152574458242805317342196337080964168105168462976835933924192845726594143028245720108437027690080569691870935654173347603768228219360375533577034250539827411578875884807425812097438546377709225138727042690153783163494375964600841711757688346475528673571808311155321563920419832424493253521411262108564948007841798343188685281033515623222466457734006749951939852339150132444037333872479532588696016310877471337494350930886838644831292966304306530637852245213402409090705865414235727302286874115255256812441651539362103120648566740568945005441467284145842328642823279873579973239922814459076339384444965723537367394145289456217344634158889957817573100252696869989455666259060594486285853820084918260434091433003440580882413832592896789139640176877513977527708998657216453954442994908394976985266488093066258787270450199509668765806605795453435424688031727319498346335350636187109786814027269579974173554408398015734388276713961314845158119571176197601014432542749333529510013866807721255374082327555027361703608481636478775943189005065276170641604871452902863853167042803874405642942427405085906528547040145070268361632766424890551153380878787220695226010944336547029147275947039805034987040975654196904540821774294635939643952582846506684991387009661893634999277225352385142453248062048850508474722864056500310429865088801715471730768764579054380099051723426100982683163267293668679263577477693831742245676292176821064411004440489562509273125737644971777091217308730739320758802177207665501270032685146161307882555254775004993173345005995047509212658483045564605893197493850440986414559940912183193181629125582096806917145734875937217621998915556583556787273847380468039007696627343514928222248871428817361504454468987278418539466743201922374140230464363283189870787249786957780721445726564414507336613987389346087534365140643746165173276479366047903400454141128072539098929938339216925004630187686942790646633010506759472104394397034458810406790355334549866399591139385613568600887475428059275536613011832353823117850430685674976776372475781573437331131722521487445458503921773408169320377280228811919239822258338013052324838657730446986171142483968933141918278532250330529929162778309078169636881125030204261996801205371297016375560271550725106193144500839911674926644745979608755712398690046624664559293706031241753400909548675741242080625983252000958159703085304315821851528187409463137170818838751051246358431522590846489784879376519456594857458280964680934303704762989393183509428659275964609465636105032473778254250700243379299986605615459302527177528851883875777006904519766855117438029816992655348740957220237774522205722221544663113474109053421892921240745021043714251650898098059775004018310588948800987098109915691314466410899882620958443461752991710672479112186758043331174628257132277171260482589592024682174146906404684735605554871546861677416021581447767543141203083332921451620286267392060752727896941490425311526347166102530650674756423064619537408212973954488924948231215117417697137722669581692470412630106659592169197946092482087046048165588614654202285108964053287452300902931994563471599905074294854878888355675277938937021544284165454905481913037123703255823350329007594241697307812765731789674554028968803458103041162694991505829657622607025673935884311717281964734624679068945222080921102583224975697264059239322813201924330605777287596928921173678218825922020520399186054091656381407433240153418165579207911598332996364279783467419949205891615219352593719333637518483044041215427698616848479400378915716761480444091813787743656663061078081169592735274923237101439963575054396682692301948445657874661045823186618486172062033397222391548922986742954076679937142120774238303251034662241851278688391374876140665086200396361215650349002192732628252613779660814961441698685091502896515268443727365631103456446183394070447971965983453537739320867329816512743589300007569810687655422040420623519708073821007490357226623677068584168309664624094995922297591156703058896449606232663597372387696376742487073051489267792622320830791429327584373453351577135563252184324817142812994105984124019543395315003876747845717383985468983690524089824684875724060465785203312511711478025813308265585806868273644898706558506235968439514967968325346074879336226358882830463111885258033067946294349754667339876833505170039115818188941918153368147522954649487547875709055501933677394513447692108956233501296316379736885784441089255421982864741165036530052650020378729767125079852394278532534804128839041059748766281971926589577131532160879041569831692302842665165170089981334781997463736528492414571327257716782476575387665904615265808725234343360237461158426612275152138068937905675938289069102157971479153731936052143202765257210366548422905111707947396996588157969382606963110030609131209231147527038250703060159280366301395475583153310757505083883362483834975438601342269541739345782715512922013090944774950683663227192335509026353178078657583459416054976236434000857158903455999038997013172091106823703169957572576720693794986600986990447880023686093619088592458908540317479245755452810099731185394860693706738699060745264352673202284932432203885545406329814395894375665314533588447679829353356275706997372787576606938394652924418320228381452348714547122915009263489536766210798923770387143592986847414953173590443294525411883877165260276079580981973533660552113514483141757862938699550896914665743825455088603294082742773632454738040659695401961935794871977117795276722062714282958331170144509200238636936176892721816424230485174035968861685265062131740893059309412992128500575645535556690582494571079987329371133530005308547451826996649746237501158052374641672066273199169540488734429893290641136091387761387335432213307055920670862316767651791136526615597452441054402874541395002793007981143740466415628669133663189118914896694832100431564897043068296954891277063996748260361847466112794947069159620405382308548879704719071150560304124708231397142936171036169065647636454169827301720176611058201474225827301286055206836994701179583694022861942966186792582977562501403523949606593633546633404896169322064909968782191007654227252628478576720831811850168170072922307005097119778109423878967013980360342061109187090983742499277511207335901061364697973852821876631369892253854867402935718456564862084732634874984496847406462730485499319228013526664039992085695593735929662408209654045684525780344599999739339400881887579651769082991438203448484160482167989360366294672055141509739927702693617479491732438732983304037451984110559926690681681126533132535098059596148950594723951564673926607129437553387642863685303503994221851135173613856016192322790965593128188428513011579668240817187078104313837703401964069284023120953946486266685094982410018906920055804796863483981971400476685403806221311195388580246597235267751493081803612048841615801796798081895852379563348760003062122953414179665683930365372011689038501337079822124684347791031526380565841224166872120349383546751883958392602157882508099492724772214366946151149854942450959317558903715340308191589891546053171114500134735329333344884019532889412925946427118151435282706878543174789225506619575058791694898708684819765195414205081044170313851899779105101134781333569337428376185507508525190255824356193874069314262508314471412215830211917652359757688887722878520503538908722786063932683144414418497305907182577377468459291502449926236722976008646637919236153454801362232738604783970489105022204572181449423699376421130037853465625135447644156618051762791683600093385282189700542129651581841440936386134802824136456258624297217720340499151424076655517233623882864960605098042706361412289415653409176148201829614081671420591280087577860897936825017636197620484190531280374529040253071887752199222202779086489770743635712590396207503963660863419225281721001645204570563880215100339804023926480476812742378996155267252711674402353579513243475874695813991350617895244183897357857863054638074230770731841592949064911640060630793931841813036625512927126592095334351740720813722337140987222996544228172677685291616490491470965468428479681928024410399003657861722471719920293651380756388802294231485373019094977939285368428832827870189001478526113574543424477081870074313213221800609740002934993985849848610010153785201813418322805416130049411899181961353908545527174537107709012813793086414046919143215638473845680663045260283489278363570767373529580462971305351737503743138946082224708786334058019843774620516149336671408637358693817484454985056457621806884862532303352893636873628547615958358647341511066270476759245209053024300022258870357376521625492615627349342200813457688071381767628133832595485819803411236642209385785108591012051892899620557084082188723108712145388230963724776198220291630116795629372707051312474805981403579276033363930913451014785725491529891036169849361122510509477992498967533301232315103338373965079944274669123720015565133541187634342345121515185802966057386866732643950396772806280476089556995883722523603563484986643025979339394486909119139652281669140726934021437510862841503028386333762563457446034447112939157828176826887598519827061779165454923405857067670056078641955685587474522775075984920502790349033157303404967073335454033507030522104087872990416771292591514046448854497391022379873777510716507796021121763779492468594709320781341311988935436702255841964547099689659535129716321321834472529157543022040625021362024581432173107248772214648670171064361013312373725861898298916744940463239918557304973232111760328678301057622240660564503952575329206350112536955933926528710498661443263211951064028976443874161739962608144666481689569165899326002643677515489344118838995340009603897939387713387778260371668199926083109972932390794521363132116152346914376379966439607919122061070704289721662357615346961316534414621141912925041312573016699007193079302241356761154618106623993721476869113427591868878987050883671022998369371973941122292827783681446227472984213905407193470214212489141285469077940758275476349761268896244443233264264190147604832992205739160783281794396937816211731831081706092342458868422590026460084136153495816855442059626622202136195995628511662924805318329847804112214705073879781453594049986563888679591805644679844835890832174089763228867016843147015733522460460709797442391213312325018549410763694841265541516597174697885649617735783037817532636870697604664467285370282526758033127363206300921870946121154650531104327909032594523796532968509783964023918677222792545237871975559325047814024955751631221979112349827900723903027350206956753191689812857656500120685691895802723554978454384461283247149794955572714447241327481270845858698428670230830016077032605753917559699732016764890360776350755401356400113422783870254430251061937100723411484315872070085149313818486402581527415694223978410314433992071859603123741031377551581910234854270224115251363251958463608505358095982423140088627505134776233567989758415852675489000379245886018929906917940229806003992602620879564138041093528341176977677640586594290620441666969918563877804468328705705899043693751139247163366296519628491534216794392770429589889286468632071097171573958479458120246512294923235202619220049133216320189652243042697887660779912827950787401178487166383890085760447047291972840994916835748782711584499430874471602608677324403970960025011232600295500306276399408393481245992585867818280534311926904311283376557264310696260467962545231071495413665036312085127156903284622333897130162914365668821528292672837221117595229658110141368833418891226751496400030692856511700605389425638262692123584705761223044768588780183708862307960724340375674191596393448913718702124252023263465732876692718320584806422957738481899624162741377773400642157152084059662319784666121844016101420000297269871249198236507631672302201416686594741642928681489149318480658923109000918738916214766330255128231950084935302207106680787125079467133381405979733375522241531225677089479744136775790533086986671234660964169993962687227679783489400666239348726721307470841340855450999593347548528771673952847665588527111902732841037970089574693878618788862081063737395626101242820140362674696271759146196385804831048135616993414634566504041297484677855881156666737949678929158775576201566909908092205788411042692137992278428201633885172327642246165362219314950544073569501258702236274666900320134043202494676529373930019254203861379492517104132939788877631678985996804544470216687442851680247658203451593237933827762472653323844747346313310734090279984833421465750632581583360306528377957284601479866697303736235096010758176686414319121222069984070231779207122694520248126100399655921842402107587718351399866542421324662066897973732030291646137071181615814368053178676452991407600623271308007564711426412789272007164524199742976776529581686423627500153360212410654308595841148507080161185000899528756249647857867241041148320501524114557450581955506906258455336627806379044781230770685179348203701622363306119256160901043993606540628075191739443108523514477655034768707890895835326700135404385730759435972750741110472754152407132541844129672128842858120124839696341416719713633105200695012474318420403264509482061718569473871002111073108959227932846498854318295908631530733240812090729112473687268156074092852299970029084028800670264770697356050001153255227810377681880884764226874346595940122132253703105576360483189210711630137454728319718783828583130448885874169757545940461213645830862785704929344838991258780923817849642258099932539225668222945470389134744996808827226331579056119655444801152295637707415662569180911490198636262598630584172037398585827839992210928098966143492383474323638143553084694280775144137541888169466249911025323060760613327026369371840103456781725810845956615730078217448384876414218180985001621914047921669800849340850633653617568179499578400537324682824569704974931457325824216882118161475457572069460027139271384944947644236096795863947576577179592416657557327409140891530185883517475456202121816954353448975873536541225406183115136994319011971135545951164983786934144974671791863266440877216814600247860088150880034534464347966202162019151776496608899644856258091674146719525694948645702563295461836992380724550017791705831103300159737477155669450439342041397668279688023748456342600878400998456604394051512097533384865941863996062518747972731823322839905989056244161005496534861683391098390214580894808340199588284206667659584670938936884226737650528828164491396293938488044324947370524934402510246379202064649590660915283605481082867818482113731047363175634683268339217419733177513662729774463470464452383838992240825311994804552171103454084360179231029482288117275657730150085495714082901521930434367690892366989384929188577978079973305118833338595784917552062480034584980424984261581928845194703767251550417623330116497096401436887395132393807542883092648618367162207678054510586205613552870121818179881866442629615482204081096788892923636901532656786307236957568929421648464485874048083667098835434120920488256212638397667469877770711539851143347455872318972525563842296438733742510891578818322780101407710196169082986077135962819228437974688224945209613597851414096140420963910062632577064939082538926744163235060688135915542848421304178915608383412051101437322634533866940305327118600854242373505876871078865133747689886763918970667846423828012472561045555798865129171984607875378721864873939905421583994207627632340785641253737561183252970310580739833506409442670272049968816006773868802104416729833277355841350701747861404555158352830680347974042651800670175882816084430027355934499586593382849792311634333257329278777924619792969290949143568836123334316220447737470010923869070692126183708504853249622688310269443756769093398177550332034063959131617151109933066503849632460298736656403617365761179154546628511138439767853583002529188809988018207738688227568796652033330890879049354143048668219034882983860286102947273956905103680694120184694434304108984153699127159730265153704938613915689223309728882423098481899102103128640303535772315331416202469133575479219292317597739837887375032590376136493016914029277389374555063716673500044577088802600964593270223617817925196981909835102198428518218882142958709701963571872874542694164290537416770012993284797040207401485022866298769106291784751517476543946248877333514966265349986839658411362142509027788895177469507635905670793666662273187236995546943661362443211836222879388380668341573438490472177625395403766912936329429954549563018387777125180545558371066044444568257696602264011397291478290569914238138476803453190525505917542986277694412693124133682630297675339167262110181283428255224529483026108762475276381097367612888124699683005654114639464798049122627678753752937144755691787347701169012435238419094773692504210944393563811410478678686941785817167107729095073341876941678012016403137375063480506989301250719716266569912144030660827606343493901556861659340893036409005634997645401082588040737620273945897325674825197383290028425435089755506298039245590331147676508591569839430818310045914313917700416302938831771754272395595202083920763130140590257455203145697167376477487300956399985191234996658178576468441853696368923485926197412201862044430567728499485734885585357114529602947207685075724976378370209090431401142106912200212351267322099258416266526307867947783093908368110876942255979058684563092490091473172105543725446112148567974182736619622782508856986243528599616550318228657143648431222835747613000865144074049296959159305959346252405111901936106801899892851230261174754648771510443972376285044537464289461876933624890499856551733399513897930093481471527050882110982100044023334454665143450519237742088910222048112143302700633480585291804002147230522095294997737437009776233738305320817533796288129048624354176074993526177987892655982593600660666033445687574200327833349875019918342545101996859029147478777031067163393658508734870292205253356824257010730874386554886399406816654797598016887983737891908270957860412621656145244533264072714951787197096839325741521879759414572688805644786273520299050238934364729487147428055131689204344998209761745148776394940140322679427079565747504787850240943245796850872076515334386366258256542397525640373067366204361866705825477074000532550579406619280482861383030257309788663345386645537475620201148696046775778896749242043009477098509282415366642775453418699349595091374074462098138642255602023296241309513563523468912813251399471131214641089587802190419524695934073418174406208616852621544229550227672213959468379092431348113324937677526313741354788420356418373465323997524628687059247005636906283064614770877987357785338017290344252779367718401843857409042775886164477971770545724729358488506840088847192884935590098405119733094613686853711841244179160641959728495266128373341076868636567785341992020908688397484923649483725884888395207079049671581762936502227616166440185038105899129410786700240356684640593168074091581945022414361851949257255972787676208914879838327525975990182870123567033711482758129374819849496930010838772921060082577018213739413411984005856186424599080479627115391693767908467930584985758064581086464608936454019623717840334221229244264158941634596736446207297379844146131107590523797403348852955779079748839526097888163576585212013582243896046013766357560729336763640850013491297474594874297507100206659805756596210023795930655043714019423220771496815071703899340141530421616399616054464063321775395762508206454874776132134423818712654208713006388260758592264576649672079585478817710559994864322344128970577403883853027592238381656103368383338982639168803799402863184512811080652653723953134227093684141901139403890727467224057590683506428735737474440797202145903194073045126285581449655233913071909646939597802721628550176497359138794797459932517407651306874470946917545232754775014975797732253259176277039499522246596845177394981311934643900674831365532273300965343208541456919636173900123887673949828304989873664692649080748369488996576095798614208342152970420353432963701177024536688540413087385045539420096756035063201787411561390128702854211639277976248965487181049897966445163548326479403363356590906417901550578704347693713005875547381266942280322585774850182824470379709184826614453390880871930513263735944735825801093160094883690735462847376682432599615223044657192048038364670660559907975516116559559987678636101294931267125029445714008742947168331394548973122981675102488489970847972797289996522552662022252768288707215886746622883718638996668590300711587654902621078721163053887976276561380410785164339064791533736912916779354559893352492510727985126344650374863169323083139802945708561278072737572432973114497886465576603210375044275868039646642822317215690614660441540608717017888178172335681484349917623078630008832643549009187465629319620406822130774889875929234921478756508483077841459975474531425381811309994540112797271835772434375492493609130224044272806489595903340191446010893669308337713287003599425890008855474491817102110610329830181376183439870769352086349983853221685729048470971719452845907631025188722625072492038847513760079454202300172053204793095951523247384265535611395660092037759046378468190608791881443197164508780932421149001081113811161827108028062553102360140346498553808614817089893376862568870212953779450907234782286552920621237853192443444969645028601591609975544184807086561619598158741737210672593255001679259040621288811387376249129778016480475014486824021280789613643887801065288992919554134729826536462762274509244741741995430702280726076899517607948842556724008417814058276600505488571794684522490898905611561491750951721746040153044019460756281827036715282099739775935633564441735305069298035503566449188728862921907041925381003146070489668661237426705913304269559131335574242383132980304845251551344207158257193608945782285824496344948347469578202528684269464485032850970084260563104973601186555319823005788467974066797295908720117967194619947623224328194165478119230819761492708510894902543919261439859168359749119526966781047979544491559302937390110791557390040997331879553272689218657401047933067022141992041711580219475610416732886201436700369145557060839530558352493271836798123947963855848852948910267975595661172874609841388780113283066298859100035375919060966653415991790755414984410432958517373731998389305031550253942349306827376471328359058215651127032764277257193083269382820284346925681364057225234862356237616897086203489934501119909137389011796883214215667207411584148463565560486055346308883311162248715927870470311940264633010491001995646060158496332109240473938659925443931158263630194594336181858624536969936095074859327985117795278661798877422992177151590954862532445745664130628851954889143956724800642730437666638737781958844657265215675218369625773328530976244178668914452533013823558518082537148477613718281673061974409925386231564523271130622776712537476292153657488480895466315834079406088791087475420105108265131034353434466483401077028338839717080809654102394464520769458557276226479114753320602398681512023443943306516222639492004753731555544277055747241508343444625761441903018178854063846294217926231526957006729606991173666831595188019858824129052345979589402178817386055623665459386093014548881869731695345379760295886033585546223012694032147662916087903396848415902937819082174529610731242941325527570357346254203783736789074588374392359667292943857392416600740116078113957549456290041513110197755102688705429302061351038722755615911804273516786405826794742455503433257527171576669043844969445254287249817913997662048980965257464486597315926864465154390808332075054764121248852668738770416303093926416657354238400785206998653907901747670781993724046340603507509584365564549148030506738091603730625046785426930373137451490965264443488867486636600652455331945175910110419250353635038267494886660300493041147779349177869343257044781595264823477986700709698686008956272917754906146597116975523357377841559259451835964694489255032905072760200547671949635864051663590822099149681485751840697947970483617468616263190849613054686383604355043402164738731860333415552819130049155691791474047645040538459314948847609104864323839218911896058406878786667906442871478615905004085970871529502115228215002631346577988918975931345466420851748829524419765494950823312457270389227682727455643887811574778993352313934000673161751337198158733146596600170137465175879363579756006109472416984301116476300842041217508557403831705033791779705307445222140960484977223128902369619774060109701410530095670117627848254248555666940223523181909359046076205113968607955803601698313001991227692822465684263010789094170566859061382078180276434232206790809058938149394245879294740959084662182809749167304701986058921022712565004616110253496208824025502277320868045532548047027693503160570607325986630575391399378729752650409439692757350057040007692571025328961337587427697402632770254581293661529820700942624579142856874763946596499534863475320953338699438549215205739162072386847307459828795943978191855773242598342767218009167148905555109865535128616735891604392354626101919188355996870996078563020655745163151767813974183775305432139603800225212787605134960885264253066881874009530218640876297575335991645450655892623771090884924382877246105113424175839350268578561300481097383164820968580539309091040436281016754716545539673564666792551104952161288312713496806403441902656086884791641606022893229747931126759549419061535693351734253519938830294705571426944267950309608351648690278106764827203929066193194827098952458794170900071766606374115544804191575524239149872525914204209331511123229061234362260933521955642034049604387743912204497263190392756880684219650324687887454211691514609245387730585764044615345127643733345343898374768675564484162776523986523656386429692193699836760046001906359640884839533188752044442348748289622982012040533014962631627885963536760788125297627815069360370696022684418894830115763152786990682840720944104660584740445368411896422345582264639539307503096874594814371621433279824747250783464466733054576278479674836601451888524570529420258841260901746605977923964027621798085017116231707093919060999006152855990458893882282047517107959362069661849405183004933852313668816609551877400537850325006269643562190846639635539378621936744258025775127036455819543997562475203184417915814027869177825536999942804950597331744655812985199950625199543629524670072409391320059442446260687896325403013667461976670246311609215268688535189838380861845636185566954106208860424660423029575434628087308550769586110325806804789281096460281060032320261493158915265131720494347409305487374390464150499102090347252802936622021308115445382495205474292967272128559393460011600355785778228179108033422366578687982001187908431737891255349355917677024069438160297093821001979079668964982817070661367608175118119345375995733478760800302992140710893797037900129528801146799466912882108748140837990316323702509626658189002995915253275873005588158572987416374230908119596009013793155959365130816578881452714779352647884294611932624442266866086352177728508864007071802382565289962904745097972018402565549156814437750947365174235603983285943180205063073758747229135110117378114452899600795134386986469507738675606392615858088309518535978017686255275542907052999620235875745866108814785888697421239933453827506271510547791596225283108653991538932778930530805634269429263146900034036667826277467021752728640264356993791829649973325190481188564427786068677099116435585842173503621835609865579703671507075759354207514711802095753598397275179817461113548629109015533098415756450078898991783121401377571506731835002343658830458004138233151835364476866854017866242902373934317490955832098263754810014272245295055858780779090774208366013162246236874369555601017211952265376834801834096389767635569893420156813036513223715082846870276436487692066541841221804132888610535767822944030142888864723283848266655893210583584930314182049995847907368872075330275028193622744586363063587917922085198633542371834802309916674014835104987190855811577662297760294788010859581798385282343361363496732803267906575942188162800727345722659214614935029211082561798307826037743769502947276516591403627035529301570605658832577745471314735008319143347327872298502635064467339481277243766398015092392735339488703167071357931225091061207989057206389801546729502462969007341853784130932769863101421459798942311123448071641848677404143177889555686787198482053319167943704564668289498417003061914491321711337760641162117994408672919258283069471810545569178761394287267018820346430295639467483192817434529108579231160357668960276352094006156497284924108572605993135219848041076794905310209372870870327156423198799513463617496110462321784797444668149965467965468445690589805173086292765989717280280030399446283648222433980571653934404571941390796318427018954631962985652702580719986894113133370238397028173416502937486225488101083911730250117137492445264251607392999898612419285176096833345257830934510469942791574047403184615969983458003363811970953719851456704796143308330629029097343799613327312810175229805273629919504698641281916885200818901165986451467982311963152651729275647327368693065968881329445775982497188743561117685021497692903902566028776152264013350178374279217144812318485000839673749217700413964869564461541152410672018584599653187448510196704092384674470217613556339303392453372883700312821821486440279918775342917879972362452058571720103610317408449746324739246790503662491095465254806037530870443818523050099607484305835827892452299653745410465141902499053277573396739483417256876337240482444951581302119733991145864344011598126354407924857550277297601115017749727835874966887244155338527420282049882027408426738021010466424727626879626625340361435826246439496105066429301456239167588204146573314817918672214444607308266028671409983361079886829197368370231725195539065226815866602727110269047772536642127672557275014309320795072965150756376502345599072723902884036763482040964748313075249729599041162850803550980963653459567011844917398924002675497469883686586728384515346749493475938538052413307191094098516235649091296372026549136652361537060276176956324689116967069822143574424684351778926453258718747310586874022189416694429220609175559313575523422011783446255598709313504209149680954899332367083329828358412285024025807948977232356888362216493339688040707595939625207089893314797619757098678110385777053489469062548533500042893079251850356094250644003054024476337855727224499899804856606663508271792871660597946983033020097837739851641299297798434592869365849529581587549840457759130340586731551915235081764284750239714509585139022372251725785654200534373150133170295409019539015615463388478161787277724792998124052094934199271889329573070062991971336507296288410907648429692728790142190139016714516759457712181218198459233570511195823719830056845513258968890663604022079650829532803527006789345714589697666419906739130973332072713346115798468228177523021023231614753030486540020839903176049938512597317004203905273563517645063204420456045334768096037080647115981715508971363832391947483213398309268821715497608324943259102142366336467578239916772132904121699080831213652579566936998345714138782206028667826513743388104102016155899269937611092370594382216797580885776611058236561579644567638282539281942644775192363246782038788797563041815509170926136468519229688175761891158708239409220108179550522092701383418295558888920319281153024347585914993650470687586680346818769553722095484305446874511097892935742695940451910456246391258670520798895601708923086536578567952031400103220074558865726283266440704059527036131938591482274840941985515477366986680432141707686433070798647674138298749869381676585944345155211144220905604753828718435350938050913671880597003854666547134233258134124210206561310098066276648030960594234366397314198561782280866445036483647677169169009630019518281814041121154135546356408657182018858823031325680614769466982676094460232793866432456101762260681006016045600132929420533062627724600346426404559346987902568722628969760825432273242020342917847517438786207117264363694979215327550597111519206327917756765105910707120198990510037488951504609530643021600065034927054681100740637047032648457033888695366052639009901879343260180087202254609520987806786612239896514785990062176642604640250715744235383496219781851494334798814883607438959020703531956898848544245087325667716126530480529881198083232433478220965805187586627811885220126947625622433567672433505411256526979387250417986248624521156506654013775951390595455233237328561189053786437311431929965877923981489009008424539060434124378758757337375416078889143206426038231978883355021162874027548274376933292173075792900339914421700651939412128175870350940697785132951355921308147536032508792597675668532845180737135840319747057704965123766350134792205638503781624038905775309978397521488557783938977844588955927793959039327431816066584250834712225744190878453304074086761321550624257994056877446786092936060913932906292943869677858934170378796279241404140530006593651042624307958704849795967842144687370994387731269331399279491568692892053903970165994254451476200924363964831534347512154732705856349040242840301112684535578644864516689702980401721753366478079998591454674148100402932417086796666653879038177927963387591277345765577561318761664918304406387312744592587801619071539717385553431921294179301791355559327286017816997157558445056597764533862082520053937826215981191988531003724640318488072237625049497155820904382739825970936006935694582278082871576063622124229229897205895203434037269783608074664429442641450560914861413391133332876022469730258546068969006641988540934707276377774280255614192276693845775446697835497009881211755201743442093429869521061534503874055210661090827789561295141175681292242766307065308930609485001862515201042622068765791671934980702609146101062812147086031702093546130998893903767961530452968110114238814136653933359927357719074096393898201631884315384480943974941317707998771044657809915459520691297571255331757578302571388437619636048843932801166124568398272628936885067337872773327609408117803083493058014990694022337932598600627381723605075245108865114958089920856654295234787067530836512517532831866140998271197834011074072255679499398146486421399334343483170282670811546131409148727469067179080548627487676389116313614847475519067676416955899260245147413698851431648481919861256386816187902402670642699424597873444744358963356653093079550939768703760758708762496110922460078664820325501052892377522238727902011581630343749046057322341182360560347767252939263021550099385099413055558302218299369494190746386913262630340985635450878357449886862421269585676363081234219927178863048461321866386307628137666016343512552140631758990713531399645476774776680611471631694495083228879194920736821213924828585180774464352825711220908685704208233073355674827647352105733452861894289827845707707663441930942735518721231877614117623851544958696374544973507524870272754651627046340748786463119237282917268820975034932008501164903284576956785179102982432920264478476069899097495536304277273644853328037728235803735263278092197316210498879539279946188664246297425060981498020441155451731317236280456327251241120286933656911448956494251055409201149151193414163486958437329712472968588923162164006532983570828565401979184761645962133491210386355040355538131726419169896664998722393808151356179632950373957201991058253428484689203545931542354402530179772444671400377880624067123082609887743678380582246630943512294699244229125854871078384742403773638024923869518783383492104184691692263842441887939140704276355744612540494209370705070024283229694052403575789798412829313477768147396666038730401701847420946514966960580571670878565364345628465494376576272562546609417535422834712045752026647282702908864602459675783564374569314345868189955739177850026547593071467875792173263635880425407075976394455024742269282847706488704749075933730976468606125728799982188009522489479434736257167285470624718537457134993600517560238232563200526297655263217048958597304015386042914768849256761682624753459371951142869569277171837536375351703121348296984269490263473340008910975363069671140367322117042531222729967368915076914021596068881233680789500960902649433862383857482533777753833660670800482164890091125613058701243866429120441700551478849900164721546336974223703965524945192572516971439892770059526482413121152350115090443110964734036271938781917501879035758183244509585012589316376916113084339937894642215002242111409525060417305932084487216656088284158833172949507456964018170424436101944444976978000344793790976170510044533498825426959598116702278178965892883674143107277646717711201991582201344454979828120670384670118697221791942125716600581315592120751762431456741473159002966844329421095296354731238653770518748131314303046895049856032386309780017593958418636140505341121827527470636532434253595273627322257521606362961261260685347805600698843366633160899198456939367957199700373204853876441876484730877277774159596366787211226221721906794792546305696415769941576549234213620566855730160541809437874107887980260237078627483622756762298588204046464209615342620008773182858655395749457575590354740758141144260538177009336734648073307493547350329028149203288488061859462561388331255363484243606820131460441593772324278229797158694281702440349842815486912597287919890017259696576231533546128541660228876698737158908303690933994592316001373321876103168728799895317556598012288762252184102761474267698904985664525358610702145502476629712387742741900849109219503293687203267649075083734646953032082594126414337283235198585604819192256199238103579142173077870797867511176768142870260251809191569862037943478713884932791831784104020648832399342645464279123853010589581536870033509212020757367258199313194673936976046994930409131355710880291917691253710457695080147064298767157896753468518871523881245425222742842144461850390299030989916014179701762347338744029631576565250255882106509442538963104827633682790036092834095340468453335113978699416473336305007717147553515201859259839423403014419668256852173516497742567005653485267963828793761840253636650746300148444084688549015742754632546104260700033138153144841995088499916402371267567104168987965293149599427666625780071626578444151203201080688206365166703055173194522029260717598951704240744249731244790328893635845687288332173809555742972911207039239768424153027327713734976275575304051226237479043504172525654230258856406063868149128165842456268256561463076429846585350712214093864584514676495058865708902889287110849880895646627359433021620253273186851437457516038306091809234752339920668230657481482686225304876073717721408676020389197398232879383276735270520514431583887265954497243033994548026637534862799572088340138803401936122977764525401699960225707175011567752007950143459816309707605716353534656008900805926343155251766639978426219769124496341367012816779005770015077113205978669755341686517877403141313116196356974728186312596593116902437707945829469305901760956446282722490441433957091622002431701210991298960145553818188031566154040344691675377524638024557233668239351120778862194991586092644165464387213043154603871663384493634946141652197107344849813384546985084230371009927359040606458206240097996037649017293960670398822069949587879107204993895844082445160355658159999299266866324847204696386776044096928028610707354725601439147053606850626942465056130134182536001077855909166280956848066854444326152361482729961488668577987611847573675169982291862509037776827031690220471362547422761303702266371224924328238211906775386775419495369836799364033830763930218923403101576052024490175823320622709708645036434092781365697438477120438196341842960732406558919269446460418543478946338466958608559403847550606640100584001816815862232200227522840626864992271684158543590721585356043932053224505913208598013522307358521047774993045668701731575966945919890382286115786129390484059329863229340809665890936716402394430800043896785549802487528199609880322842035308285152659173187961492306015207464523059089042931110921837317821888574183438251984340513015595266244186308814530010381943930492619900238680235291247114257320837416597431157364489750163712861983670337799112061423518956304313792072013933416549952464616909449615248757936381128814559193525481685296517017058521505383125013335605640376646952874700565025965167065178816551655854082468272663805591569853367968238853472303032074816052069953823656401639049911235482039881383748648678757465629045904643649577460240813132112612685412862744222299039207598296760021249405228766457115436166285339152611210572934337123737693865696133061821761602868680974633294385535197626302826391723312538043173101259004139611541443948083215984791370779587302271136213302067322261307849848231869575150210905042668885460821303964992593533482294658809137412467514788113026151815971599014085619821110932466735669544362074043725280382951609430225269429996289143237133886960547201121951906741167199579936308628257419847615068843425669903374349488579493156063208992968348242816143272824902963595228975088896309113671526370761575744871152017744439672784972731778906440577698443998748217274290904142162550394241669938546101347511909257945040367183202970196381504322077318384341588092445318051040994628160349800835697112284190986742525613055748940661787252946406876551023439882973110058892418395762309110783237715572748816255522978365489888685951414247692726964813659859407582416119793099772421878451743491117048563246939470402528173414010855945865593563266504589076317091877220185074561227733582258064927529389347727011303633081409130726772345343847476363738041242738979800995193644842578509708076897977411602685235925798076117306830623444736452114977311435631996097341488747518831842891904540126749114704520401381698513009522041829752465031744687711392121450519539627760441499945688715601796666678982404582738875013934164063757359243139903168701673762380672684260426610469726257696458512287723953928590970261117038619052603036425777452004076125458030812943654552522719105108848894755919959248075875476531667081288957892242177941855149201731341375743705914181788168949570181768294120843612914131140320358328525096566710226052789647639500914011000438131211138683343842899160047300484948243420698375323586189443366716417897911505787371947969983697827871934517014277001380921724030763792079320903788065054765133829959769521619102142030070805017674069472276941409155229852850582821664928221514470257429996030910778618068351748879965611992359063587191599320538726311957821422835226520929134176615622923819099985619849988559431259149314348430737632568666267531022492454429790567926364881874028010624663759740921478983536458783885380940788203503219211253337632933859007860373619358751033938841111303344278219117362750176454031704972195228871034999236563938651316546646769815313443293410556586486063516859315670478763311926885406225471327863557911914480213892270922741353330722635550553090101961819954578165022395697023232073656950702350169837781442293855195781083720892508588911190525925518387578394784194500585142650690415569249075956436269163664674517726650437661466625253473722541153291400401488608690119425971102732442401725350725409174047299571014223025575898742848453877956005176144997399460470342222101542700553598166510346380883528314092126187615175302074023193597241467699230594460760838163921911768649851875301794902128910732793329839609294363461864687708016184791250861470545412976431077259907114730838593754125507300551812989685505420206498017669746595090039331805879071589422740094406970135687196019574673671716141767591690825297411501731831229174145417254927042752923133215730113274275419500829130724858169587451963029206335259238014047008561498613008251232676648020920507905734467381524028844254240860421905987228531075625875171750331580823024535469362640307327505038057563008868050631590274090144164249313521579553903596660290659891431649404804968737354032442815209608607912224800701514931144386936927084502585171824839230600655885097846651781720246876244586697671952316764571746638992555289136511360666875331107048160062682739223949881281564674884088424409581077436219123986145553593318648051901479154086338758325755670877583261734164839446810329903580147779248581306676786976832384571298179008740438091091192822343856252621382515049872660290684320953235005335058356860698872685811265179598603583632137581701627681919826676132215226068292558741738211305857497732824354353348435770941489506555193398759774495016437651088956069733888071963842205943173178350094999750254435299309807786206720894217517156895846849659101025243540203756772053966035738292396775466104174873921312121761389388704985646640854432329126864420772193191087625560433355764730110375259806449045066097707088593024718599549496493345375628158777763480199062072823240262690775364318081015701270932435820552971734037767290997176656228955459949448698991974544268422285567123330250180478538879721780784065788637075065357680987277730909126431791530063733444192954855031013044236095818039361632987951246099461714652528439392289008531379268440868985956045164755502461520935732884536762810314619382555890268425804286590243834509892658122162791147972748224674647664030644314167630599116637812015461498557102368258832050529654271693236822929255192834312540747997293733105964609487581107189941042396769790480108360223110711848960454359292247036342002828570950185906095823862160572488998572635319966568258299787530240946457836203139495383070973624982748479569614798579577380920364508175701299476671731841268463612358520546935492407755256642253877135016374847743805752410556049799489205015126000112655411163236179742731047771237557838077537018483914519371048943632139563219838155470956716641075233033105705173690425392261345713649811362396076001481274605498169874100066833370152279697024138491672179382905658782882738619972619473142102067852402332830544433305200000363735020739381514224130798194875892011394983978226292827010747443254408762965236787976179163042745766401791333187582488905132817935332196063659272135802441239012046307623153780000394699395310642359148113997079681882222167181501531977270870338291643547672654899214598286048959283611744408769491956424933926121519080248582317473787227235870275184488847824528326054311838085239067211070018895606647108582713493808492460877429043733679067263859534308659301371268007963891193687172496154503650170858539941437875870012475329235395855295144612193613268682551003502378875662288866507754777545332701350624811565297475656857676415118751626330751556520080955212525238759944822186781322891705562642796785578629894870899794267690279625634048524471170173413077273695020467652333309626767568163600423514082402495500019730408823888511470154090521050479736034148634184449125313422786386200541043468851459375848064458721820014844314730297358189770244330472785635588828950184566487560553360519396115093297327913864489619486930305135013493626234354734613333562435889919284074751359116668833463219734980820861362742988044537382367907440882218795503026161748497655530048557431172598847312990173448798766178614190312847645812745946441196620399206702558189542670459275141388124780494895080367527718130209224609510604691175282104877920551687586486669189151621094183654532633902600044642317785002773954021768954779130045316946233704589145230231577981410827004571088436745537684296160247766893643963116317105008524414750737600435431353732773645469531639034487830671469281472749111020581517759019825210382315146671064849948672524334192845901460693385244892595480836197514593653062630012951541864986875340974276890427088027207481410197513592815496038588628504649074367800370447309540421865387138369387974014176317658395728580081233294049108869785673060240242438089582906406595673749473061323067474952692441462913847078046526091642714797843653161784873621230713923304842916731703251515518878438426064407194322114010426761408886315812237983449407581251158629078283520664910894627072706317064465086760486530657949866464644846673521300939200936938850874816627830563533883023722183738686053851496135201138099131401904526272581434415688940810140144077140624925632104136479355245038211509205542011697614929822953091716177819841412987048332115464331749249798324927663491003501357765235682889600933770756460384491850743008293507359291010230246907877831879384951880209795867971633084344259219676312109896858225206330166790893784826374298418187438270285451000882981949975848958737296324281458321412161857708728762876832984085735864386206446763852444002329774378055977769443773404557019268615930157210501470101182691824141323310245376641729093663964528767266193378635736902989950583567476341235347938872459830346518206221676125567488373115845158001303487247328663925909307807571295988698653714274166248962479706932825574673743693921804782120782488063937373568364391054427587639676464890102093887232932183045407161375201384373964461011238915649278422882532721469038437060746701031452336509223295245596890702144098967346910671996372470593284897458916527564865773430610358442135245795846063097450504273824167288299899419019522098721279726382162745918409333020035652846974846085621878317502351730106476569989463096299857957861065037496390543560717252362031338036476216962093261974731056030876004824751307232409584663088889713595016966397894871788856977376866832631784726215240237809167966983443149505551274733077324061004073760610344466895708291271629761634691226121843221129462488394764770260262206568632150023892812474556780845046746532991279572336252420105983843307606850991623284841311639280837870853321274547090616750320001645935732592724763405792191275719442004277251040551848310469012048039850021684305582685569245400480574019513696178330782619256687619712384528349160891945343580211431443719403312870951925738390270331534840555885813807306462832532633097783085403107362589440853856864305156224321443921066063378371732899735083799479071925681446053507254943267530170688238979800576234997872937010800562032864850551262468619771834463552643529847031834178279129476449251927181412736050971063283222613515761611864052774617008901214467522749661795894002337999260975320934515373755265409079701455189379204802549673767106856322253949760452705047401465808276648538211150186601363126008437838878279138840193741146320937733023246019208390242402239026632375684181382285133498473836741857164681015151590928787789222192957689142680978355834455721649972984425796669421604483411664813906337358664165693831231017246043475729964032027327438414777423962551535335768992154997909457247163543196984118120974552133254248975463825192599552025170473184581183462925329863035429173075727805048375493743863452315601477073781460346725858114859896947581773055987859920849205317859331650158545403752311489250930535893956737281625211471026237578278012540424125363290001863300123815401293667901762436292468357760248868489042162103084489957280318993034092109294141467648057974419080566467060940069431201671254618345024816585192181607387553365077666313753636909206588195346063631634518823758831849588552941482708682610028584787866869924264584143485916191447344794147144883663132653115400352520051744870711335834712351618391781806849459387045766797379220886961612853629596273215711425994225194255610261718795596445588102347921660038872635493934617573918486590249742086334577419972310174148507190515570314814854254269527514738953453378144142300446211538060988730004431748845284934587455042589857226360073111284541200737264589738658076310980707756517720181057828696516280955046823036769689673332090668123555889053075327364487159897147106249682147712620190664039546094621424034402662444614024243008746174476142912083907023306362035699074656109121102881609761554346886798115493391394607084739965446691797519152090721155796759938816323672620099735421526161627730349552300846954193433616729659754583708752254219188317674466785402086093184383479592547611206380532084753755862001838180655966995028192286028323283547463227778966387233235474575718503381359443435660549337597412037628633209005930944207194189335529783109253855241646724476016776928808735593410564549051729287495534480720721599731779925508292315603634940957172657446763338004683156549457700448260355731883458556884008282580500893774955988356972543006197658837670937986231375191460411037946250509615688985339944392415938957314801562577771668989044735684563319720819833508846624389669476529452105943166108160046862715738998754253471854859006751781398420636594656946472650563170368087146112025557854791542431288880912615475459907154812250271425888287641501647909035076384107345222960167293391431059374351771041556845453449602886735564102858876796620398226883350040158183854827018083364897993321667535025097028488621090120262454537358108809071606761540371770517371347790974115027091534984507946201814704755298266345567613553661668680456569406730069026721339424854886212125829614976952831093422052506459849316894429297314060836548215643745656412784571050708578760548640646401515608377719270164319377648428329337709402086825582045862101344606603080281783061029812251910025630296845469020809622592154872462032967410365577653386765781037698177768502273282027855932875054686340398550163965063887800946361029960515355331240199494036759470717930677766256400373364635436111445033954570939405466650589399402443350123917050487896869639143378104878350375693235213484323793532236841707603894360749219643692784147242921937872887311946773638332126944028913902300775409942341777248684891391881377854129102884799033132997023295119850910646045066005570462921740039267606596828373207270469299178254678786403365739973829066180115745794842247127680233565246362218666960818977934918374589976597209406346042410263048888455287250110678417209878527208776579389027975512497104525798407303762562004986923121627861076322427649915308989509728816682944942558157005071110794385920960884803800037392946001541934924956385122634548082429671831939926298963006691790978949757570109554230096786937962455523234894813249432793812899869477748023021119011331844130437074039596700180173076768538432928544847933357663366075734806577544032257629177315838955631318174399275275090856173361587036799098577944866791762938797821305232670646750607166099514933673174129143319173194858435019365844930843563303711226889449360084942156409961337989698088681479942690312441032340620477383940917849452351587045484039149615289243314288717674087207432050956717476594796537346937118600214672630741124065408421388193769196657105658534627374412300402352099779975271695299681817288741306140845645024221249655138910380017682124881600844098791914906038684929334244988788062295411218785397187363819926057946124124379978446341935230341530304476447962131548962416137040504541164211281908002854936325834291104118982433747532138822412028879574166355973032536315053085956963150067766554979348365749678078894322216584013071178025030987110331071735506903445247985069947606674384209972090789162521058834190546918367775968764404275094873233502731498498483986883280760520715344013890393192522738623110720179293051867254217702764437217233894798348896789610791586060585806349988477542367559810616020005731260013093163247076658599147767324388474184611605398239019754770742097770361889429960845510398509527599976322317777764110242427420957311924347914363319643317713885937663862137500200186551048325973796546145874940943253024886129810143645851186474342882927759971832392889236265126539796158085697185649975659796721612922925413727409243936868003531836365206185793521417623183168705551431841833412932224921483574115316923617333155368177450608058119911944178093607679970295707089901974690979364090020142867245748438310911430584384470237837818889607480937931626252665217828274319906508296704347592741750811637811044065767658720047287189067557661789335883291345331733284167128272658348790961763005854966337653165443010151692082628075901548730080497460561130573217172063021868712632780666011716476656112270619720489039023508015156463555363508542115791255762165108136180806873255541364873250897605440664489472283538056174564426891963841471341578161651236093882776380549106355007670900750331037306235820361390723177327899884026049361046174863538410841854943894897305398509663122108384589177562589819083439347562644720074996455425065679158391152269978794801031594567301087461915652219621177547535114678244065730364338629360131058235929353772710495968764221688564542001520547464585136032094734923961301860886965886314690583451521692779943929003384450277193992505973869875307867654405701835624983482536526965030151808203485896199868652810823380256512579057513501033113540437317280090705007781256800874416532701019074873411134906320510603276910459192875326878307038511512047551663843369571191922882268438402411247432027941628238916571374545955751876038420228460431320407155881844114027115944313810273929353346625555626069425245867712676391224136822155487555547004754612211633511566056032307259112714579861549965415320124453348931405864502144838631785170807961667989172911540835037108673028774323795256046106868117421001931916248338920871613687630324812262655565517638187362867888587033545365520495103426947587636076703366864223842561191360884963816617260723792597499039575307348128256803071582473305985082203869428458129513813431958800657949308997679518403139897788409061641963836666317408316980762849844249824305327642301785582634577915498779851790165521454948349277052529339003769066781757966246156741209111555959814600038565413576081751658683344156600150723772686485411824385274277113630152346743485950251552803278407858955756478504778519214246245435462232071384152302296037588381765902749443777872163285550573740538093749939952512271615528071745260297829099500311624246772984680198782553522475353923900193168599208330806317469800822243177876867361503123946035956767457322324857898439768078492515533762034155296233632930424168448159909806073304148992564364729453655207757963181434080297945250441593931953068175079956877262053639981094881923260992432116388892178718586288135693493485432794537517899349935742221019142007798310618727869483129173715628264378000146999308911948863017495147029520052397235928825403181603147424704084006168175491450216373925714907773325978585450390146119076517546184682434022153341582566584756300512750931325671676644521256781685120062935263081227578594972983921513267225976679629650820185602226614026212462890088262980752037158274161316350582397660762754019027349517600702547116882079280240600122643181507419116740123582947229466106574225858180721894414538647232515149859675226100842970406210957499513747128507074342286948190496171280925841966839290077331549276824146517956192664593014652767580403461891871385055892171078062397083619764169785979469966948344791443042762626117306154908450793933892206409311526867055906426118516174836693010626219588957264427692570841617708736337438008618509400272525076548031985645595048336433903215556638418591882410553986413215974275935040235323953217759734337727816816769427125916557118829605495916892305699490163730952133789479925693105965903546533278099535648080798521851836987068268083043078511438022805328846905848121190603612855076917114219200165609351209628901269796870492587082117328979737223696209726303823494981658071105894957778516816172614331928265172897181292765567154411937957360742528012513367991348029529181574334079772516545753343398846029333921385056438785190034317716704495989246167879118837707921703324330925444148538314705883714758150379618374393203322349310757627056241924766152598633713624836964964633789434131615619011018996123246093042467361161074613805708118151960109215283350194185301529200850864300902385012556138548992841211875844265935755081117291440056268844201507332081688030999699086671336156752194865573573491102390773128783654058413041684030665234372513662080981002722610119435682730434809515194223280914492323046986210419703126582196560784039178534074092519919828912225400264400561481613376608995117345223661231313147277451471568905689335320019309084267476870072605709296735718747324264711583318522101067649129721023255290189009526352563280668506293580309900081974935105856253942262690241422814462693217562038873188525252563671446919836116491796169436284092871497764290867905020319915956658301138473450597076260941367356783936788777732985949935475641439911859778882166162644406980594880771180279974097898876393510815725636051278788845798601313201728554376498382578430234041427509470669818200807179202883984814220998339680726111231962691977944792573315987306667937236616147484902781224307083220266801853800354055135684804707789130073898637556296786055725031943844821474702914555541116775545367496159689143173864709214135776943443162393727203493134025770460122881244655938901918954954124885585243984895280630418701180043532662860669870349117260707866101349449078204506226572045119802090354430380278353102439916655121168805212788870496614501812343326350872141138275956383438167177727268809210049174610550349717670633304689926994478504836956360284784158399738154736324851220491731935289168696349650835946143452069056881726116443472273226662933304612664149954380103554595282059612253529596440081605694204222425929636310565691307421933570330550832811546459928394190602739416236253839922600534887838135727931357729447780584698206796867340981457671111728370021761295623203003389416517647744734558421010524069342610167795341238434992151499805670482678718282803358039268715680015816417422591354416249589124334370783151085646635787757945587928251286783367031242425759929104017035311388134780456083197671547034107372974697704256003855823768002976592378475447238051288992236817806947560838124459568235057926993207563558034368956405702934822395091256054372795738628985223043681640039209615711053471190708891266728518385887482693992358698970379681150388611264144875459887001229773526109569592883395712160109232412992409616986123133166236499700569183636916268192227748413109631684259548293431775595249584737103739397311552698191084500323510920315047289315216336324261661255755305958266684680413450494234107699019469845921319643809300430240519593512121034014527246377827003709453006454599419182126788391549635497040264850715885165721778820196304715702220547535598683567776238641563559311827070386225808112017057309362181815928683505307356698500732084249216178860288677678530388271749512682320674816483078368691390095940581325376137549205709163354220140405819733647002505705672601925713494766811928737993208906720976814514307175583299853837463365362324214573236744322562815187146965909443427193865873231066523588446055392607076492062032817904036334383224333438481774836706081558190286611573985633063921665055354122413283973689667105573780619128104041199836931534584922925416242279586668405106139259937732066106236272370086755879518473800216271255751029674155222221173465671811457672043801626077183880333790379425653449648396497509226744185500695575938747358508341440152509157561321955144491516011670704230719872350515226324373014537859284882513048160387783185939050703611227969397564360489363227707375258545703783096615505200254967654488453492160199226798153613281436205417168629772449041828683939567948968034155296637048575270531524538736730911932833379061600264409757113959076146587431055719348543543087983752125926455503729526371704610516432452951415621782693136335715592926870465291752691559775244863898913155352041061412348416358822890027728347796360961238298752576570573421289168608327761914329083895311556744896476092059681709224443816743766841106654536425944304788223540113277347533796883164740306940978524414892806874669364658946637591700793857016689285077688037631725442721895739429639939877557541579138572662735517298602036305605362960573131535807985895722917299031848528433151838597807701421683483104074176613845139106374757662070536880210988131749400832348234353155745055509561171877822332578017056367160033329551491548003489177009248237817501345909434989104368468572792667456526098194784954570041165004830281840149760898111746469130739688184266725709246764721227478924177645160341728070164686634374209723312568172060060321122306440479036384112287348493557586376040047000304646334579921654887819231919497670157828273856135403012358672470546880642861708011371111209894470798197111565198536860770946203098973804756442232172630289482865033127836187598379135307379860698679115766356269453586159409921082712136491592008776788814592756575096116854190203827815141041707040312319194534000465385050134158494379953614759961268473397644643830665027907379331150190168078898483855075123006626667187223005571053817863636699076242952479501080372275537768304501105630063220016901516669700031013687464651393798690748315286013620007457942939768879922166036859239986984801859674801862371468453014960469378324686422962239017137018780272925622903534985727572718802491805460404120110929677528238429209159265961209246027625449020631545548737336515750984731345400574400042258290069178382241970700557536250408553409241743539717841633424557588491965737009536467461221718657973162381509517172022662777999403517751693504548346593515930706195299133663485905241404457646298433221890245599069219198259060396126139490527510979395325570010893174421687001947180035130444544787032410316416570158383260016855586506824047674007393166693996285359790654337966966634883312704795932951508373578108387119029160926052641355144946179707297327868776482705836470955449511234329428504830049136146874519023745018507384672034528991789979711087489434381110611934667020925493315335658351355020745484103991775543184246917572297441471628593003524973007919775710266455026441170283999905918273749614812355894997088961526550343101708682765690603113462396970166760522406006710191628160768107779672884094035859419130842240550589021576412307511243405644423018985977275409851208203384207250465092798425247498201621835963167983024104479750924396828600561823571213810002890175386772317011900054323857287428015125052668695722281242995833306374348598286993158604915177733438997724025390192146774428769160348433250184193793016932757138843518674490373251426315225578300159746463370641583619189029392074367294679251484175363714573207085164097075817154420306086142155687496806755711985424132064272412626563831538157649827943076521482681685335818992029015025149884963574758892876760104766209320221664282842941698597574227494009866663801873332800098706054685326080145513780264346464124097531792070910960739835614074370338573045882504645116511179041892785343091721628657663442531083725579019990650614854326099495979240015416992802977012191139170962588334295722208880201878247488641293997853323259482548733839718035033611623648309357651033359772982313879832541421621025574667840702926844264203272113326363171204369674574806144275009857028510655784119487812098288541132096532127913521037588550880780266944844643436925503054208017437255776882437857964259481099670715874669488658277544944073612522086917735072397177730415959136305687866175494137195463074363491996667754112228505587631610067084615261300830254893805129404993506847989144356975285029436088366235751890578247587348927457177736710299393324234827919722679675131916086209285200207885592638079300643008329771667635149038629454064460827798936269831611370765770661614403662055521236421184765937044653385346280474105669809772997773152992770499551688607389444029782302709307049008157662215822143774296500691114329756282608217783012312677594606833168111259941187498072371540306896020929998147232535158061203094770309996159873626686361332334195573329723865425234478142583578208672477924340934640720346347093400131923781524591187465918682905773262145763007641514730404684048552395633226819501437985866336045094168962815739860481261363207845177970149342303802250631273984843620541430346698947288214158292136751373898220504751732580972019692383897281103054281030419643849437119357359440292129495416825548132675472332557794984204665885750322531012873025973484277224031601688201170551365858459464481867718560612482075447878989487979905023731520348845388714810461908263280330539673146500108042753905256800916335794385085968988554224450671377621134130477692564706407482011681156662324088747985667019045612252966293936826624661209484894720476919722016901451729925021886177777799355672222648326883346850732081243741251712691737542534369731074893959411132863429424356266144801826935674491062835055293085438661347536556747877753488082542939114176035172810171552252436935330175890085386492887066800987763511353784181277767132058040202561247574711369695038295883070659958508060480351958401209869498968716263191640734426841085251316667902708505617758482950322812250131186278792950695881692896220282749579814002607786669733023912311582188589341027916374316582713018518183286493174433608780618561821721894452945645935532233479246176218120803632715607751141547004463251747945381011287936670556898180462325407658884673134286113972079164255369385338977677062030208782701469675737942254974205746903387520101809535070719576834720686452836268998830925443430320347067860168244865742318111379449723010217595944432612281078147074093231580522338848699258451689482342630496005504637365131879511089665643599853687162225174297824720208897524319401278300165199258614891635487282422496463826721050063190042361776441535503799830998290804066668002203785478489070028928101474892922827938517440826515428489538584336208385971677786364336179057632049365750944991968607015815556607412764939262490532104397907941940934030498616746684001583522737214673204335368850065079487598917996532620100252778574855926644438045940840273305009101309128534216948028160007221929475047270274349729197364691399793294723836918349116918852432116993401459378129131142891029474423321299744009891468067361257137299068589483604150620605375137943644050276074759326819615303514406301152777752844772943247963028752933284203504409843147880954239609979023174764339243339428424802178270891405129556200334189906150386032797146926328684457945401183608766829523474386463425756125823505364579000387697602549635106395335403672716973400974898873705612354632564162284195733428793803499034752016741973562311380026089118681133481554310076644200313268264056320552985184690164552938749545539660833627191947429338920451160148700567251953802848424338307979016196995153790656955735901031320556594986853929838391780717765316113679411823938703891891473595045426570961146544302376628754048277178695911277299336589982694109970956992243665883909284571796949585990688317200736562765665692494351742717551054280302890459803255447493593528234703154625572084204711943969687545028394861413574896635585570764499341349708307112944207050510723674755228130679823937583321129701304273285082523893612947377375835418291718742835554552925401882483153084792612837541438131301725979026215263533305605860877018914966744916111846835384289625265693831922232524072340308689640312740191353759522622175106546705996461436771745197947189034190387344507561626257221280827745291257311950517632215707655557223982501716908877622271243646389317538241007990333951460649305795193903819242848742073560435024663747989116140655551544892689687535898143999466296140024395808777909865601868827179727373441126756578890793500065369123825981506024477478578499340945872825086950956641030936655904385949120652778226960782647984930866129676148982107011408932377073016252696043800808516339110688914931055648087825329340326694752101647889308685212219288106471614746485835647319532205801962693971995684187306902358222798811320151081916196623975614003311007005006520304482214278800857683823243302344902039464735774268043620718070507263577722983759673561403591194175613864570804423635503760820754070286210990477891673273640961452497184761691355487138793266618179156935611564724865264488181046615428131575135004542816651202142674424485486533709112718800003217169538820402465485569449459693104734109531998808586013813625187732549426776265471438400951697930988771976627699128724464505649118700154786668274589955389293124727757282747819963716157301304870770016133976719008999121856709449688973810435043413460932380631821205454029682509287012017488302052140794025785947168575323443912429483666939328525638374841351565860273986555233006071844692069034035453613508473440651446777657713110233904488661978577363175523278947091265466096761382435231381917159950278953611491215157017778069793737654263148752796438430555356471226138710726718968656140186068539524463834857721813725711823842645036217699151416825909405620204932273207139260045617936846365216003665418559906130303673163441371260595109981556485534744814824306707281227918973926695921471077817856046066183547501596766851325477690689890215732813933122957197182039130898102868142329601204700618387347165202734600876353902003226006056288814803984456492352625363528754770702277927012560527716379974094922433755339262007326225092845047221869190947366648898634681234733987403786657895826516875618445629598189848934209044071010364073276470942618830923194445438227440147395455521106347754719960433207577282568204285182594739135414705567257082438946903184313232747347869514785666356616905745024368814622389173543037609265295132101562575270498374553235799546477151573669042198129519886674520532023571911803767209211015244797584133525405046344159851570402499489265265363996433950718493697354949861610463546659649786237943067441097699000992887929400180080486119191127644339343630400703507751863621868345614084523290974584006871802922314582514162782918386243067553058776697074128608537049340662091733603690096741940752269120171190437768388623304871413942138872944306505622762111729925518466469019067320217939429112507844419514378616298057542237219684447099732740404921292636426710523674153940789234181177129682945457163995990767068014379550129627900765241505339553160228481305692644924661152048573765136621290256319666909724312972323950185087388695861626668972501149192868833376000438911852818817890646401764901862198635260262717956210359139580989062658937058180467207133423187750660989367978314234054471496227912669777677662019967020344958495213835389711327629909568237884184635851459134117031953014729353408366994081099156890386400796043483244955989354821489342160078558046960846691014233251620936393481163755869700204828625573219936944836616808906723719723776995267888295152498350203505731771482881730061480878929148889987258194956089836251931325871298114809016372539100222807191519466296045994314179503533998371339296363981567454447596477896312694813826905316378074265277622729588951423886248914864309794309704799549626090968234736783358063340085610945422249486345061956841792830270461382859067331473277235051331219406221563495870936262202825145549325584010178671945752016461149153631732820542965318557010957181507582747257893580391204378742092358988422928900689852739878504200689815560705733254280201080901897137249082519544886218731510720335681731386059717188012108483642582328705535984739936508684397126990981370713347163860742577850312294862257352960733834912293914316525056242940941292734321638613307831171877407070653625696974200693408224221742398041962927718662061414749925183282741805589133552255539158243786518742822708977480873916141870531368307890813375230215482171077901139298599805064669950828128763419643833915997632036492437005758754812148345115987148807262542290581596402904987963325132065245110092455614632418758877673406646710585708735249604196138397920642718139697866283355069873434624833023470178142065675685902447027326254794603947241678860811758582789896540826321013388304561206099570902090964257650430373743099963021786915607784176535591732132084473858134650188950017325594843469440444893057791578616654204515827499456370079025855110728294634920468153812737080423140730082655804044789757228770384911747816234870440706859485683155678843833170316894280975058446515043186034368328806500490900687435576873824621888705916140149836427872881534737580350299736782936323020688419832026137860231845343580297391307618429110509310740567688720440643159828821343103473848723885997463833482472009115882668229452996851127194277879461456788648629258338674035805169899830525573650908771152230498905013772540232577447511097987181129089796800360541858059658011337177430896719075493568275403636839512480621458718091006747235420607239067280502250333308105390716433176913551269255619435803967285825572666902984318703971815845922879241044511861304889763108842641917848319670200143577896588522421515393593731558076601223325579508681995811918161076632412995725377263434073983450686127215830324585440479983543118716273325869626290785423959780019500299806402218679208996204116167907726506297690350079038222509223813483498258895262373566339466139463603865025263668852553809565018084765521184916261046539278667986306312063668737437191935936931799121228879220704002553111683575800115119874062796076786037897766865919506656707024284899325467525532630934024358227981508809184867230369587770950801738816314142923257665533113689806261938256857592438893271528906006050590053075311739147961667285333138485771997352025992225818601757135924087792900919436588543127433873364621771014563075293481844467723948626012336517067270417521312253475866462585247420944897722827278240520362216096217880585291743017524971963444424344056978331236643340345262198435530467421000771635322584374470384909134802671314523767207225712624476199654921847249412536836068976159173532891875304887860615114243390678855178362203628515214337668608965417032025186439045365339342897146974382165022966720763544739778977738497767140192745695311563768222637381837347892110528616783650150309997619542752035806198921357248642990462694855968761638239584421531152836663723858450583469292896687028352758527563884092726272768286846592425506798079352371567664620797536698850692703392425746632367916096107279056523461524272032485678558999433559909914970228674941935440260600100999708551059000134928203679638385601290187978721382189859676384045696251294221530330563070329936100082818050997339117583915018752210728555741658032139746591275304285940557695838210215435191970802359100955014753577816443524237591991179444256100716677921541147203739329509329803717971150472424898297320051747537383940863995993862140187564464043872907507804843872777100039840508948273647700732030963529297379823147136868589212648527784085892101811149018529613061903700681468311380084962100440197697535336297395558855375487038019212652500708025380976664264181121093255128260896512468925673062969775831710619488923180446875333115699077698074487545273714457094323503405400493427012464589728916384457637455455739709261199189597323965915344468376492732299855179104098968233940864346290760961018480974153542538423491422105264225996537055024601437598728704821931619162825772827632070275432662079569706116091246381469998009203271709163381199548335683030452606630968055757719954799963153369164525257301603524340946047848810483534446352706357655211745070790560228522000123573628087972643273798459122580079580144226052216279217241764253763075433307929327402871497752387863469716651614023139628616301440631850947259872713801420449500706701357642133507660447328507448891415920959891567700527924069573582745792972675327030717260528196425228433048777965031888305295796591807405186199076957269601272649912528366591537665976654719481706770870228670954267439465125848418519235691042217297719945230244586004846523827840147404959672714688791378954405404419749747189735173698916999166949139883606285296047762115510114779804135730701091080813301907895150247880097142416071234085885102044637558613983008028053019722663640605444332575144062132698280941313607103529001094261244290311491117446086091674367359742389991630499988923433222748420846595844042173820476076824103307881289360505814249116246217520936259046900013566931312863058166127808408503399133763832884079675611317559701915085572485376785865198649917894126642510227341691484406819355922114170933157908264613576820449611746743883039189112618984829625020712064908132984131136068998792433829270178563047337090079954503931777721253776835628104543155318723968547165729470037099907677263034812343899800738535750754834719367961824375775388703343885844896864603080320685029747341966271843122499776097232181846644060773072251534836492230324463024522247411617423508679557172895888426839128539049454927736116160049089447416127532526260740568807305221471096114584113156383534923767470278911913374008416251635434774825117884297008977368879535445925974955112242806241935332157408543739534885414435135701951371967468027726681749156372745565902986310840640699035579888828013671700273032746915296295847355769288136763036031402814399977724637811272005206514525627301901905845333565132720906994042933335900110060623097350225129023129388669133858639020411562765718732213758167576634527214639011269168986965089186914736201735467159449471918967741014688300202044612855305125935950962883551945321449734999110260079084216074323778063839781387454198125854421808621938300646378340588507855560858967711435317485591259601873458148035485592820510542953271501369568965587882512029992040012825733328870476660885199209446005318261563811130650197879605482373014512478933754815386816830557203007799093719182632338148351502452706425361237367783892321165587998598924301013743486207636331998255600838046739267125547550180375606522526468343804164232587337971814943889521899783825387103308683780427585873578368540394842242267037632563347253317040938113946405562113925420779264690242826032905160773283924901505320964179562317613400443976081558345143821222435922792526944408154574820304358665800736229815037962538036084939719928756132171288087175697098749635810008400223339037715441152975282411231642647139403458614560630617549844856514937027353931447044722784707480853368330042635360038445852235310674849214935818680358589584066485463511417196223850131684254893146503056372462243345684826891855083671032567211490239446334285624749840449152105918908751840593291027612900958944109111522597108133082826391978227956822677876198396792947075081448597422295374400913799349741662300409254993836225469540967696330830790705315571965198307588631864489315343668896901313795041705298411517811403777029716101875255736805226264265438847175152082274187436079406034452391875968952428502927994896394902451078906179287306622577665756917868200670076858256466678982907446005492139480362513529343316352690627057009802158304404331957421679714657409649016814764955263334291593617100107271523658842355810524556798834874829148275275389274128738078028363250524033272546894786172863950013368644288917829201107103033055037288310162116143015366201237165246601281697812309774405728946802828571538878869490332724833189521293214604707543604455852089769884475509666217235196019389909448053324816341905167217756319786204398999019715218524872518237779776821234094037505112242263724573930968530837244923111520786948172457611632578794258141614126796216688187177353933505085051268733819228737657367856860218514753448908093407141396891190926800801408962671773680479519171619472417366126481669514793325773704574306988425399720607093073680398143240292675679591980415954566813119307313243107823747627270044885617159878405650730178657304033627577517000500901447672709219715608191982067372087972769491428440590817922476496656988991483372529638185913839584900072132328833755133909218741979260845871341681377892495435681039940666880087421124546272892645489503011653393096790409233251517629938745037398372175844198286399438268255105479375111848844497328899280527519743425726575418939342326954934134597659168404468215661585431721588837285653363391561571343532093999051818421418689409041091207762535137244466088639502571943712562991976529694765880204734007280678829348091001139759490679763014558002074085817127166163768502323270356679153680981628925116955450664903192068555376191911411494472771344504237703467174519507290504458187531887631947982294491162684962241397197277604620606047787639421044222887772755190407130875544796354100560412585606701845553583860492943729414925678870117830242168616193045605118891958121087183280722469434834133077171524252879192209829708007398001638180312577628906984742418394772718507160573888783163406326486373074746786000121726326534250130394895201079165769764799639000478415274318906092596794595926447192334208966717424513725662132758922619539022959000767934011793981141411090135673685832730237565220213836958733139168202037718193440426621952789157981016705473504967930123026734566644196968993543471595853382703982537749391312204376171342501108374515071515616322565574017808917057288098893331389514207165509860041476461846976844980673032158448473501434361850410093583279680863418382193120823450331232032359568163661076693308974046145941801799543249680626333101502021666714427290633713228984191947551908837397069059411538606260679998887945112272155170703568259071648497113043680541435509225852287618729888480420047184115100904843121788796921512061789753990933918349574856588066637219119558482366663562897185054953560215172887521459483724326100824350703249739764536278316332053031800114860840840980856880092550107701026832002774550065197943800348617438724340149393344562312892872566756488599755511727483672489065146298827777558254494875983799101982137303452223760338672958802038389580339083463956130437791164294435564977287475981778035035966257713747282962412984217621998814022049128571482292939517167790436930931582284803220134825172072665066859271941480890036372505887043415663299310250391863520722372926301993246428491210944180840946480554758445940108825721875673044018641298157293304273100029795726555771222552205239717863311455508910681107822757850671104790303749365726356433047404713442351670562261072994038007377519040038440639076926535123725760081125316479398772323315349013053180771930964154103173984084835105753595663229734394197624964672430036911638199164947090086736315513706214802726523913996163629025074249376651419950028620582689248857637827389223068198534866928163225135398200650319927236785946071978643152244933616828648870029048116186487273305485988812512103795818458957525397969199371515364068442530145640107051984777339843744507419306633236003941683155405589379275914138786695180482861046903071754488429816261780312468070491111252222104417429941798587102920946750657052185628440232062093493753787286227879080661061948878333613942330916290555968155533652302302699062333278394061231042952713162973840417855472955374974450164818690039370568920210251291464402990903089259831074817593569023743176979438793638982773449896987674414330074132070130195891910548021267410842284432401169451127161759931484819997299059267351697712444841466071337079868043785982198177087486582612497039018025896829564701925563844791417872313838496159997787382501551632719842253828965069777280360888361523860249252101326934051672543605819943318034340911055256244289755498017058365597389320298202532400377511162862645717321578299528225465005849352877870445073818901170576697569132573492031687972997706869569169070539103980687739748991735972584512731447500848147047614480342324705217717597770050760229158555407221631724280211679191203528131683087511845073052165705787140676887230404438156039120143630421606620980733500855702650707724863852706791794926091929290059217139440811528003478104165172714208668739848647744800899461364222772197665854909439802397526340896507451253434312961882342696904345578100575424099489500980567910035959617261610686536754461575852132315029850562032878418310377310897373128673345540147937241376696878745501950448945511818909859086302771213186995620033690215522359130074590438093932406283219499366156563869790945718518388392588004022442537264929733095301876488231498526689411768222441540747310356243599424642422589191194761076621007406895633026517770800844339197300953472159605714620518824425953494890523101724365771388973987043642380611694641964316256000110255003080667421734631237209367242695001335527274793751330182158883111470521533466720494475361696933128630649341894005930842577436500743606714426114837895113150330463060061015434205087727685797272392631503207951857176537163882034132910030286206815646382732093195798118242809363905332688682775695951975771075845996018269960839704417064873627153527037610596670781993868134352291095004210482310538148383957067890495416782584523646870843836206721183091725889369135799272202399673420991815230463472138991185751715535484172718412345794435156735300123091157223775982144125788217752293568523616472512419850560734909081415208987788088980277701991546582037996913479149925166865955721029320185462653773615633969363352585451895547294650206052496914481305920628859316291709479468230629712188533805263381689517156296567008860454968058262846836913692343585966293634668617748564663242841278224657006532477820798224451875972265811531976229561461411902932671100836443720619413811454563967808321698874757979257740915805478660133874532765053784357033280450009833272520418830230654925530387552855894955578466877822770422584904908959675436456211809373465636885671299882637428878846457734339728373909358758512242045562955852062622767903731036206641574958593354163304736351841554961699248931403180515259274487655717742730769260525352881030646500603556784164076273359168475106639171093016434050537078413470381048859910139466159787975284539229557475242239961946554221038084300126208396492898476196359583476338777974977740897740921757528470012991576097149012723291144264659573364550270685334594761323233909787314397444301844229634773835488782887265468641913652338480965186386570024478411162202154890386833222051065383228915277698454865543739427685836727562475652154692836946979762110436182739027934938664642859310752876945600084395056011607987402929036116209997366289353411548963107691399631128602365882859214591186058272138846781657664276305228609851692949062612788492655122289267023922638057057199743323481428700133727018895793755592142865235530414774672547546362359968585591284668880497297492887135860291372940283837540920464421035827290019500856831726357333925776767056653788851874448962785759662545757020524586093168660590640852094882218368189388066843284653136546331968473835620032178236601672178149874415387193550629526869747795460099146721060211088748738738444675857018087397431855745254402707381269228328513375006335360763098298281267752965531973022105826539393000465723958610055346631169839177567334097426415945677744170641115616158184475005568737806171875306826529987831099651590189811601351692012120231700052616091295616059599600357166925915403269413100877910513823459109195287583169202150060475443753354269447271584120858846225468937059949076844868611607180000364707029824920554677206725545702473806189347048328864866274527395614115302127269101679217903465113158113654086553167148894371824905185844950203059870428857996431191853256987305097884933675644461992501355797477511255726659902726108301596669894522130448546194929691470468015855750724945880130405455565522152477624883971686955747955896930661128113733512053245365129129933575294102141462349107024139424354105054467436309374966161383564771735080899547438514683375292214959291731273729548808974026310541656507925736234773293298500997609560779745083324130238718426451785955713786119966457090482666574423669978826526337248188861533910647768348874839551073904693667143369906919885903400405268176545941616761060736783303691865830489510076736626686648110588061143184907681764221272479464133773917625451724336474121479338072369729255874396587836756616460967189656256350483197134118661065325627637541219244786732816699565696843516909546955212969690741317670933707906738238603784495011701412096410966731683705433365614635126864744170854358970080537758737585186012537758262700900607969491060348878561139683645940592656704485799663626625366138658415029014326496434925792595727240653137486789778892769960513558941819952643513011793660453739978556682186650226954041420868724348624436296826536860198680890514238859473088165712191753904190038036029238042236705821989746966675644282221655194417790052253251492966702910966552560468125578202828893442781234765287084591156401106249301230342988524451869028483138451859339616624894264166405968890458867640640581337041867531598080788906372386102166733654709630288640657226048784186977537936795452955451545237545042927562704328381034714948084576130240815195608393238687661597272182984382995191813502602432636364271803224045350284221532474333846673772618749553167239222981669291059194221091521352457813483228632829413227313970170955014793274671542784517826940016290995583622955163229410877609856351262194845707228096769509508697061027515460880263542809188865286894848842459209104685309206134762311701185933273670673646615603836175127414442928781921217182858582099410520925181732312143857134389894026958696025515559933368807451059605246653523018029600698563064444177679293833701266090768687129947754538542214911483030292521577854921642261635313500567476029186550363365440046889150052889926443149464864223484413366799509144097202410152091382816443634604458216045407732550709151043064534488236216770059917417573118499890366673051909583610917845293253985024478922299328546318973499962173271314712537045109032481284564540356402677187512679438548065576899538782807885043983676038443699222118348435586430169978086663191831601856482794688403428535276976526384773423057330734910377937103340156065762010020799914789329038225897508456865257968366890232448688663571364301496481508053053711739875282071111739479630300338588861754291186708314270158140359709328538435939757726531210000228542272598640979767908148534854798212044386936060932108275857660813203081145665758941575914657069534520492004072773325740751107923756974998712908692199546678055513555323965002950027407823798122969291250112646646886370909676496690911481803819615070866985884789052064098101070157828070961247192654870598374184324908480673874884294137217825759530554796059430239948140093454862543391675615708641838068544495805304797091855412099420765674708106108660497809944234129416073852037099730645313868735440129396368511119531844655869615575294323775477422043342975005907030447290740346416470882799907560896601445897274561920226291343661980196877023409784024987329519857183146920266412668802352750029599426935165521125324040243732784326017690051124150522001745482491120944761358588103275575241974854859699164511057880717534068454012948857011110360786149266884417998848348713257978357381621334404514294430397275902693380259648169348972928312327581485777461341746539208342047065033788696726169419518281346669025667450083683403356994909154203381798157795500256789715732657318941330363068891795690752348376181793255804167879620240211142229299532461108611888553620819391076174076138226055694598940310221991453826351053990245325761640777034206179025703195181383672409953072441074716171141421555992250357976233626599185892564089823835160782073921405957773395904374276862759451866170301847195686791798535561862124322751978831588030869295756340046715790347729040863532001173114928429774000533287577803970652118731676583880797848336467452441695938825452426387628239240482621892392312077774549077758586720578393009729905101567170576079394202453905394362759199990909924326972424815371308437597573285881110975038128159560292451918920354201055231949577362373761448243822486882043939727703050807712653104943482137770495783166456744194469705894900024997370184313973050794732290630776050649892457208738993421347698439310279838359427961834676939457582544795171866747116214642512167788833817619479879878451873183200901579596271864266117091863694639376130317043763251806276537866106231206593169297231477865825564328544100949442560703726869082197931531019853449279878766276544551535234970482670938259184036768387039042420337240664823921151475998706853260593426648514998452978857718913393563816300728341360485881656463352727473655748514904518598847389952016983226130230489251593758171546383443210888772897702320995802418365581220986562086506367927340331683437774400019643645703194296299614150404255235160664447330198532978200467091703304828023491266345144919744241105804564368748783211710034528116615348446926079255643073981166949023422629368441975820376767810167621072688457270028665712902796534788015969587646783709243162734021628296254205111895452556156139378477088860574900875283767630578935037233467178084527123993678963516860372764835541348650953585449533957330411071681579010548266953479838865302088579200609456829347102076924523281270454446888339570627139104139108307842450312446275558287628846813290946597977050619618576940015685212657498445512341640956764094836135623899907015914563000533302151702419337697786744994711314330060591860784200765821058741833072330290048264613894187147864932347364471440574347487704368650564874464733098271095528724677674674005381461054890741648557526170393475725795497184712175088090646969811636303298484930730676360729597507874290797958854421451167588278508452209611324383134547764314458599568808761611662244794143239636753353380564906619838257441414729801095866740226211991277952935216046874776148771400524348075808378260127174195997636113544711577977419831974678603967098692702423652843430709426636486257401969485248260964679316743374673558254918608170639906382421362555908598899777900476281136474312920964654965061162291566197117234465450153106153373370248611202115587224997534305941802800145603280939173802459481656675847565905978631554288731902232418105274316433979999470414668404211918377416293992385471964130506971985492833124184334200925850633736605911486471411915932410948734851664485080325940146223718488227094834911589441434851447369063372233288289138776641201618743889374741070659148711919758844936356570855824312729383463144808935258749546529842649866474313156181146324755692425364777101131451497064919651350851135261589945871999358883723827357163203613514353224190132939933620172202584923434692493394640960244510106848492455971748403053624536084509008320716802161796962164791194713835138124234008107803809928742903793369966705536968952866896304240443322431977359079268158761181210189692890376699331331485322906895812390022313892979638850767878633427983581834816393686020297249401530291445613703102485983071809265390455698548899496033530455231271521802024055402898862948153507555574982931131157795976395811018139874942509838253154090198968304303649455920653610981639162163340421180010550672554480450965068837026540508777332181773807916555129834062658098704559778125472158193651542377022569160617611270135859216899983634077866864419185451552357808171528108152981771357799381344613706254007412596873523434823125194850381441798615792551714515573815894497410189227578318783738647955346321951383594638855076409669299332849773616676184269418396898331395778310452921608008817823158542031964562298762999731745477013631423671699473725613026465484045864520111261032412974848281032055485410797983511701222343146989302862298301827514332306931030109886398438236038248566716117909092437528297829224598395138888078155187428387229854638318450176016720795545884831595935770622566677430756160611510991028584669330845025048054790178159148284222308475275183111429351938426190483293112565695812710026560065868935424320962354378457969035300569072358827838728387529065884069815910547624217177693304273868932098752682238817979310920040936609707099062301239199812881343530606038009216150507770670816862994634804026795416259088620001861690572267342862212207790046553522274642637706530394205736889430824818029008967566207338096496164768302406179331987266719194705968768403326360064304217005497233584431051577829598327655407083207621601578287419814010612055048953424059522419097254365013309528974525809153501114003664732548837869811314070457833927091645968203483245615312578774049083776880588167560055074339750969581606300462353366918400466563081919119523363330012420818239643925869202839933294077758238550543322719702866860661418408454903096262766069297777129539740106967401822504303237104864630126384996663217544739783184665234571180207676566566412930501264812139065127835986493058309076497793230559512807772568355870053177140905613592183478303818467194057192540091030066398727225046558455452965052532917846218993540504226464101943889573646410686463106380509502786128986401280470670739354316774302853499019088510153318980993231098307879339939294317814990668226869414661324145433393288698471537394738811318341898887284910986747397981885671363843558685518548394913781923893889790434338961070746491801954820174147323803005735146587691710618983064835704603020372975667853121337250583744708961123857183132234288414392764682024062846607791822263340898466009107218960817337241707630153283517052466276587941828944221851934035657019199185524456751262169164607170742228434031940216907997130889537490922648800600878870544288304052194672714951404178070514398491059762555978063907475161182722043083542912890218752608973479041717645310548233847498687627315653708584542704929201529062903759263263775824468459109569760070393583440389633170530356721245451998714126446515083196515169119587714687023163921329533353650785809037065410149691437224304755051267732725656426263409011553424676025686289818276746382320287585222128715526650133961804664553696219738878537840206245349448704285070527957525472809179911717128797588287650301153280988895296503016040844109063851078805614396162801750864119520002717284159907078704605545682856824605482534688603350467457992840812219465404112969423185299099915317337229771728978631523035155598987839070346315743934146167351700440001998585797264096332848146572228751897370855209852056969815514920256346058991044725140460426309065034004706594181955781197368868060133197355734897554985905871494250447819097809049819062415783176381061495943721923749771924752190541678273233974919029110822234374371986430258182613624675466783937019428694706681242428278959428503517386871666321831708476692656861938438570316890434208142288836261883872048046261551109500949163755874572157822724078688861878555247675992524000458807857940215401146880803667489079785833479349822448233057901002594464329054266834639070820014959750512183935822130450027976756923981718328104254306492702585898058222895509910454308065127801776802282928839394912298442298601854286410968531013307988412344776464358001127972563732446056962085107278748086391461858761235123824723789265595164923839745213433643271773961094564813249009217511303161894648319770365895319851674982494380540731544369837422296165407369308791627154078273883736371640742826569426187447613352922017205783633949916947417551146594530822673635363743208337396470954993481440900690749690005733234873888680226659516825916959157659239089128284460905458627609287355588214123060424006537343376798241609718560567268732618619191248380795290345327064144820042340134725984746393554708030848206631628844131241313453713354964625532752809323480059736395784777638347846117897177314893814319729112079167904548403358863815185411925836230343391810434591897839956000593221619197817104357814114505613281930698209573526804014090578197724331396738813402937232231557686032095206801434294948744719021141347413808116869122620060538854142084455507225081648400100459391982688367431398659115902134405908266151763286366888226527128676696447528430961536896696736980828587075036296618779670204009924542036750605456578405579049802177504722697031768967457700619812094341771841987315024396071516774542359255057621395124332953001341214869247753622224311690372263846792704554467231941162447532754877651863856849953621222203434849051176690940045386026190362136429066457609102141696032295205979470747128428719348970851134065985588790570412968390755688067307026590357346394286306237318283657900186360772952801325351596888033503190206012890668320769790867489276509605169274319730814892325647950480114322344236533818923149262661796590815069708454879986868793807828803424843264863117090786339073969773645610675089749784931618433135809327726703865869528774341366807866586570518599321345039197354568246071173780053137646263333743622420556688799235052776211148451289720561628499517454213651556597857614680674271638755015760401753444214665436231407315011105811238517368405225300562380652615173570500970656634080284118044034182073895711058021966125156540403852087332531579492585215296078428503133051409000322678672449854366600190030993399208709291697289001151711946349627330182921886573904886636991084165617626688486041947594297373171144823775539682823948805995725497976625252764429299546699125241653281396623991759687983211720943828005211374330840434140797850410621501975658601037817967724886203859117722539546548855968109689570381181832501558524385655717359335320816620229551599204339351978379418753482182064433525182324226914941574348909387276909717920408807405526200750009987512617923229566104198117590228007316182374827066938564097765667318829167988554796923918396447449867834241420586777457984478095516314972614582923418434871165413422563284757903203112001346079527260253972758222180485013478593411078969946956321176483034809394445500646184766163717547856354781492413762309266583137507164490362943989143882033635340056065919585431699112079833018722209329239089266334841147832758683030300143665524081496038241656487816688110276449707809129299382038187937853202418729198977721313559152131316266034073297368667359782211682005037593426782971508136239758118130910992163821021676251021348025428039157849205642111700458867985490045432425839173992370229286762577725639937387856203437792834299490489333990915457694882618891174584580900246867579738756544601817836251632052196604033746294128725433237590102098821640723924965600325911738301209459306406640525652150536007053937369733162992485814238254755382086994654462532325351843314136253598212230846384192669400719940010681933075444591728552925300769484375868387007129387266917581688338945192702917839360361103481648810278548588170395440061339329988240136591965861744324915600893359964141523609369101554023356092657482182218550160775686542220237731939194971267122449619319799904332406192993708465682103832451375960705340173853312905365038312879610339896351956063367053834671110843991606709380484630968287973875390693722614312497609931019696413515614828708866413808068226694610932860781718828121202731232337259480964136076133300161198987432239561604642780354918098975827824089457874557076282786882172868481024619809370592170458658058132595867106906662581813639869767314434575090767897117376618189885288192661400325575153746836418020502167093916179207668087643221115625782437659192810877893304619143192401899099916025297389157252246931958217371741810224711412707752714095767835020533912576620472951007278926894533494756462282337282333849325470310733778745163181453371744908242378638687794028998633374591095739689550071417630702621662009865741917385980972852575073316448934129912931644559575993628576940945089492149800822831530508040253916102448611584752799896300392443573912032413238447810408080241136485849437313202626470620205638105454366532072837882295275889178931885286140824478505920021481942979350407313915905461632128207970727364561740717502149198708867528750591388580369278762967867104669281454453332954985339246036649910914613799634949896238470175333027064465709074081885985812860368088112729917447005201569986843830090494655512733065639745367699234444751865461729864751052338414235479800631328132132279623243369876788484775516481556318274061990882115085171378538511029753443685388681835911534327725743515102684211722940023354808542115298881932254446233122283395419071733687983783160552830559763565410997895085438458530972153471237424241837631310870598004758116963141423820596318532248776910576265827988820731911694966794388131662713056191885811617875925994146412981509568815051370408445576550343135065219009623707164037882088991413017253696228846269586299618069886422065896398438563650636547689196030978870284501815984451234540531325924118255856427166389435733741761429577820652337504791311524684207750370649424940048501136032565419312711852303678927526009338579897042591390918987534701256833705184843415281429995144195411871882169772467441073067756001450551678305846669123311935838455240283866509008522223730262756065895708051864278240634453134693602112862713986480206316503590517799633398862612730485874110438295328722059493878112969310708006832181887974267713200464734419834997820933340272938841084317608546893971829458500774260671273208187123883666611707305967086763940609914522769631901538587946991677424092676820689830509589502353117342981244600111444420845477098084719960435114349823058034411974916979724532655078328626693695980283708852757434405885590389639440767657370100823196251614054404473125662693110725698187199005740114329777732324494449292926508690016562211303288650997171979568319537468601086363658569962271342254608076439961347681197645411155040573937643124348396446739808595074408064845290026359164076709241218001459047245406003759678590426195598565632349064402713333035807646254056167983654266933147879079129173945730616263325101959009294357273982822220530325176206465324111904160700407548576539144461046291434435576681225010795421090391508151904659162235288240971852337992736952157367182643992136871739121515752302461015654059392356643470698349903630281865374487864104140067055256655516797621710668942038786247463334389150931950472388236236083423770068715908399762325493168093386751278794696805801439607987485276824035243797956931241780324153104114170929589396607615204956041984755292190023095410864110461771368151303527864557204789382604104853650659078632105108626585923564396394008009293845390987512174577072865126304824542216559430550955154171516230800156948601561434584504609020758874125398567215360877469693033334418890366929506879147188209192857496962060020370731961167073136532728216848311859467891004343641067752055721825913557235642688284314946453103072628056752788598237740756547576462211848104309331672001588212598627443999794391574657039354092900252706917972175259464860867945473482580413547924799268979360832436804957506190364947150534372254300863475705634200428340115275152780392604153717078513883811075317178364581125741535090108977026736784545921899268970959107729507586410679344077549437899006615803452822864033567493548293127773762845832334816443554527455051402529158032582578462629381744849413497766300931094210277649954716909153475980186683505120431817990983581852213594705107491586573112373464269767495544595664197697149788160151164440774804424222541681951666441890170913943131296781559581166516564556099649585184685261867590728510844916142006574158346730565282416791102414647180569556788264748223603656126560148305642247413588046757513362873500996419786756484305891967080863490052411149576946610619675482159191946500761311819122032285364403561233025763160779372399078503684621839207557522827575158113786445267633453976357505273772106225573632963646961235773667392900273214213476451288469949978947685174413851281544932060489129123984980595513677110627059650048184792173871003620117963145162814167206579221633608073659834640925254068852233086637331572690522444139145876085716548514125678650716378160167983141494459907896542470016617909279286725049172537924365589959341353041266062157134760686339928314083954005894077375895921311630420817829365289629862391925734306896310543222824885940166655720359396386691442472778755106884418125007714678275116401344790517442515724157991079613637901232120744166990724624668095025171680550930607011045215426653668816585103694620062511114712053865346660721825555527728497398742766659395650311921130869090783195189927976263485440878768049362661042637545553847476663465736300928198592099455242252885415657088705350229390117139102436788368110334842956200124454778274447657297581965741444205880449845346015535915834511272750400873769060857284903824309104535184890278998456954705015230031226797043829739891044886588567264309792687883421802314691433724659952233192261105198889781295344363561070386986768518105215331999824888579946946672586633355061992747798417067699784529556424223993400589930927392361976746702105894326741072378846490453996242173465941698072449525663317649871848827843968108529114256288428002950401861839250119086115933162905050630334884741317067649875701685952413376825200538342307120108294072966551859199396073049961941929584725293893235232216123311860440666537080860454605885538077195677618669395966159288435445766302078292602054744061178443324781831077163643449954615975312050750284190342939808322641918737555326186441133039053656287185393507441596539624631431218484598017413338931764703626602976193872534276486134825021643916618734106521514155276822564848668193495163515019082017163102055261559026566479506048946328749471581745884648644005202509767657061376311728586988921215845811424745539876023908211009567182867508641532869098842462981083575273987085486009194490925475290252358982582662690265084162183212526654671668107979943750326881355532122211484524508806532921733587577792690779526293702467070992727508443329729755479610628536952105995675919200016556892824709107017913226347820506326682290052839541706754693752090884577485182551597529942037122565159136722382027262984628171118049786483298751011511414104921182884423005128514789420686019179017596579429652762303409855417916563106033598877174129698223260709008664566780400352975008201779164778272467074706077651183214469780974784708677987150662013374690360924893106266424526855564621889425896130563906193412889852945170706541304038020391209464220666475525243143732748165155520459602416116605294090028345264992045090197848986892069579971101160002345113674728363511457429138710691962042752349669068970610989572653205919894314950891664307795412999555962160965829671746687258804080848512024239823968565492043516864091011985886099100999003874155708597743532467551632746940873685039283250732574678860324213859019245252737762138040830588777375774619904286818679950219097567053711111150342784243162433633801619707382191772130817831922615347629600240336643668014949752332475514419580672505618318718572577567123288399056967177812352314132408014778249288722189939370428056324663173795324226975136964006068314846385971822008736965397978974922914353060647663132895283054155108182564093078757004417920483213304706145308159373313315089305877004473766469068979398678129849867744993216929767778423129893176035319243195090701493625897785717389987015035083417764113063297406417120471969250970742520714515640762586527789788181162081066078052136355021586744323195450842256702181828627491871979113395037237113073206248828080983277270934953045556011675227767953594766776436445195426456104171807101402664766854928235341904221715196366580454541050033989901755219564797645908212425457814368077912962922063396455497257480377312706585662015731929993473664817542522356192395290333996961342808477842146001445916672525027114046535617112782172872688956037928643207588919823918815940180054936047005454931099702993876202099175756102822400451508124349055590494409152411989089572603951291670644636777402958064356142266083020554306417271637762932099213533133982614192441858933232460521810489134143586933613120891982201598802734006685141714748379726809251809378712575039469793709306497307810524327828504314098945238585106387548866169261328246420089275116382950861372735192550560416523050592964380782440267257530333839484171434392340865781752910149819001825065659227500525360317964912857161137576645734368138444404474452872444864857855651409667091593719028288600092421442361485231708242506828040954656370682410714921055138696387101599399377881420682991500452096190306935405314746366224720419524854175841702055502093858270511864719106720390434387216101734346599752184529836892682210911940669182864100878054877329986683698419626938412662353604912307111754457450860060483528947789207703075553247445430588857657805521558141778588508897534272194365258031216309219193055047112376878540428848131757546091755991263074957584091760855500018587514883678712644280107868419301723402524164963462340489955105102464754409149891101044787871803570120653647481487818008100978875156579119450952849174191804230474446674436402809989317678915064337943909027307666192665369142637589237034837031604244881849962582167158569384999046676539885036964791830802725189786989252867000017471732511043424665442700626884173579643666648915344326068716311510380199959659039594757883275967888157279800053086726918960357104450847324579570019666378181373795244622012818364758837672013953015249016280495827510899741648043105513449466927846430077969578993198902292981244742862959211228089423638400380003546601022154172994230098856611637551809185737508105399670588510642746705435213380060385829850768678296391916080995262623950960616735741021332270942489725210342292598187270050606933716391265775282255343971413428759676251321024116293317640831514377433584510319810389362434665433006996811156604294931559014825673953602757499279692135946270539508231402806518631533793001296388459353301147060824968103905398999909584066301680374378598118484751768503760688080216445996114721116234941264755153293097142815518145888855659554276239750427936133057291941917941486870118474022346442820294195863502538455650487505003146475941574346884303951294308674278909597374732770783645183297126936255351012264176251016035862059221780296455527283895861622492008222600937040411972179475134142433968785117962099522709573925007016156395475346567614476795365484327714192738416830211620384533000641820889704522052672571804935539945705976214328514079059535727398550291623855246695530636103845081959123149489352493241853935304239603643052897758206236503082463215216011602319803320511694041348511870601576897047204950640963041724374257208726952029004448470252530145677128945784500336812964962467772786046223087270125381474908846473305252011377796031068847429711894329993229057090241234610733566313965016189804368824167257020893565251838058681385312646168612156038275016907915588760506134150788908640875447059806798483359248338355307794261326250107428946737533130665941725374412612557926266749320388085050449275125129501012037260495900760101445203593623060845545478854618491710852846216511249928206044461684138816049418186790787863529735406847661450416924601855210875325732800355582366171050077480033505870582211995317032724655330005191001970768466632209772914655919991125468599400375559873292482261934348197396365592547663877403673407243491939459303218965355732190236573569095058083584070115861615169002291978614381865163819479465602554405043123834344424633752613091795439750667080908110491152501100505702705217446916296130529574963551980018851806773813218794330141677020839739190519039267379594731146838473367989721581400676872844654951332322871893372884411863082573592925325213618090648320333291696213650761931498586518789152111069999178333498771170057509474413002958748150624357684818214514648202583810148772258657423905253810137873243226767527747432173989377522675350450175975543592632851885022349901113970098688602111418623579349392136499171548753713115119065856766177279456973686648919707737071888814479967410705515684218433343433499647886030551490410461411268177011015768967049533394455835787322562347892375980517698974338199979639804522789900556007224918926236674536827103895723010100082882990141758794980716482022035804041786290181449711981993628549057065660548090285085057983057401915815671042528824455805373702829295792119422317231463579465653443575737877828500569882155474214100503578349453621704659535754040762943204566297227581898042501373351740560535544141564021658815910572183531523025440751998889879169033453089993178626349274282756641991946946097860128951724061745298623042337480631194985941873029674160363781328820607774329786945415238420976730241443574220380952477958882820391935125660348300237297841047329310286167096296967084333528356496086608449170609120780159813698428002204834471382384089312412720867573110541822148639715829665519101369011891891041746993201590402758816660109093519914304552495835691430834150380032661328108790311108162759579425707771011200248454450507326830200683224446905691044635481064511650621291420087044530363988475800547609769667302493324065203291627936870762737145659663758157722885591701085946870803956782957456739242272459031949108892674724949875941440595810992747012042318366381244796951947022447887011135524447589990614517182100433885426001708437313204981181014637925361554159348817528474925564914979352931114075893595950427533269618712512910880359574465086163025614562324914545450440919037909606236465385469062412386248889665538811350301495431427815590678322225483305247173591362341871124366191000209749039236231828149273898494950278186578212988598773552283687804332660233827313154167477150017736793883090003567165657176034508311574506652715321292319254461087739045386514674121841767826001190476342576748176329135263607862966771679358396384576548051322781261120043004522894333147080325124919111177431503631102694152322373849512253253745520950160640483825640068274713971348731443912452287678934424114453521041848903632216687816199957036832658819023016834405008327241924598354361218018321559691808571193206486641663554337337392290713371476629144051465273332726160043283920745382179305025903310162121716677693315300206317131690497607482650371782168478316731411630306431015958971704905404308864700852158005061826021680384556281717143142776047460105535534936811523963078001453532227613119828589817643118137718395243806318987644257380040174964605146919493893642430772626614564797332193373637331208395429546205917758295369820232243373818156680321271813091869392220733851893423235479847058557402742773503303252007648292182513206413896946398146268950071669226929707435816728134848907498246424804703633227994730054062433863299057805619638205562926990092862393013323848060395147392686284373832153449027336752201824997142296363578761188051664079874995431277782020929908033822358105108834504216175207832085145986728492661938018068495967210020588902310049992304993839619336659964845324579550883329768751919675119963949057652324849822285336184797176156265589731350686830544801303073849696439900290325997618395380644453755245004215560499108380612914582772470945669848156167361642971965466589635049666444740002755871824382042404604966444676276547234590098158212776133483572318010162155908786827356042216550446580963136946529479461978815665111410861583888295210752337005639381887213371790565447706684685793581293346349243365923612114519980906106427270988026685901751518659528588425084809106765319471934698902252569429962582087431412459114737807622396127304935715987163094087886700427337695751285848749039861640161290793254776926232788645131728064208116944524899520228681551365046350940169562614139061596007978817596412722720367281007500475096122568184075816716787759315163648511506287039227734000106017237156826973975533099676490543095624116793233672657647793825347987394582333952891241945299010034605724247051457638143282666106372058790846495057770162740908897311549760118157588014576270074497890270364528018148799396435557543373153933080908743331018106676198715436568815381240978293171354463850442866111030830961012705544070500928021572481119818236480839201698228320235660618190855614724479279802092879209045560944825862244236084221762221594692810315154508007790037867425853839363035636506924156105599273017252603146730630705895435386066317766500329105829340831010147013210206842083700770271228090158440407468753119107760680990894364114965528635343778395782061477614419184041518046276265438033694525621254018382363692893714646049971930906296660683451082476758382485177381948455339331335764576539324381848702552843709855425676257946321861045437924500347094995458497552919375909938005414718650506061844445087321885184535517892430761427369449314285996127390780528951835150515546445910531857592426298873788078461366213477751030346940829270375259942266797441831114052631893055571873345965238917249834756705019986472368217435610083191647206906982284289834801397076281713739122580096987107393593044581665261136651477489568818744458140552273850293947352773636037181595245140137369126768639381019654158996825228578244873849226315013140006004125326701621836036601080731315462286113957366048612714310669612565774782476246592478165806548655863475109203634726017013479405872110079052528943261103974740993797224908497924587887836719312467655876685479204790931305022808653018939318172479735796098909671291018213337285763951619907148187670880653253737818216925735911318351628970370578509909541773483320202589330182630002108953543887786617172747904532178856326577388900921268509466833949308665763452964269174581612140326306423061069518937851955428902232056587307141970213908588548392874850375404719917676465597820237424586772517380802492171840092974245097995863644082015920506625043656139402051770193006924077774317071565556627956015290026892754340178602649387725898242615952825582602314862371873530214289520885823488019411472268718075731813963568455080433740196053274494899873109747590781125116353586090298711514075995305804962848191687259277447809361789059570240593867183336642121607112423772357530614820464154071387060502323390816641465823604285928361732452122260986076548123440084727153054169768305488531889040094782797877543925170988545316542490732412169886856069857159630853006138153908284750663274542215728443270579550551438699173326861360333573962269575513559545069239153202420215149161186772252485986190591344554537067139386274882795885290276803601899343223127844964261249550705946911567554664134419117920143112982356197978697669817957914842561389356152019593861323129147544818275383016101394854968345895812965430551813368374106137162075473626271146268657997993685614572853414121135754905002861950275841306977552668535707566668051605795053567188668708666774510383756268311298195005631667565026032374547856346317284389983892488730145072012465258454755432387880618736822769101142481565397096286549918534274005869627911736691445633490256529266439385657885824796939766203004408390829573570560450688538821074112884607622122229623615913665382440323377230766830535279128562429337180869189446657284864591025248361754196108316461978362609587317545006430423555358903197535498316889855133476632308586068419577065085824128519825639365597622403585658015644217554421532522766719283599067693583994794594394082503860037593591995879590677101707080646916338119861267989879744818029494076754025372029070836398507214236735273447927425874660550436984610750506724656338152985494726054525731791687561381550153980014945565948826201185831708357190186071781189082083448032991983908688323484473715133323227755290186375080767610337373463982419023221268536062998777179023425989191478625171462684054537456602077781998716861932821108032601044249486449931151826351722026520527895858667013038303103734301184804360660515673407586276157710898171470130568194271721475095370748305251432086612078014452239907552787595199931004390054838724161816595044879120205864171371294219332170446513264560102403193316642679179216166937655274161112536269310010562993480893802476228471844705438335116136236361519247675543888738434645663109374056849227672489430135157238251760573371547555143750107031627732714518732236901307456641557529524247142144029219336054108655383891380888620107111800803938882754045786659735797191367936273639927980947949703876327616683369887894505702792971866681735425446474400338205627430716964757894119002064272639616250495461490940990780080120305437558514631236633081660394579154446583026311838515596192275199147569067609509023424571073512221287999570688130630261753955977518561377358529975125973613381151996476408852079550640272727536597454651083095629365545043899483108457712991741663929134326655007220327532759709600605343022884038068266879599674229412384235605342504751260688602944011540104806952245369887630712709776792299880378210537283027887590531788443193240308128668997683097762316961792050390448861253950066424289030604876090889218011076646395137082045570491732233623215470634339233199730086970996585726718986667255040515406745496048880037314767766824449031277905078380499010440244461278113584687770908621561973719159947039000223832783201097829232181274483237593278483298897988054868114515093060316614261901290760326256090747176061478911805622446282835038364344593969302496489399392134618788802695215320414546707860383019187666489228053995694081980188742901042704057504736899317711583949994697780368903110357278123030512867423043871250422152201541033834267706481225330887209979014702355877421352227327262754215049857223319197260195994158943700070830153866835879160412365304129665245530573524193213586494997705060814306560597113197374611259280031540121390042240137304811256578856644192389399891900420970970459929816359355231330373799679765580300659417388057644465418482082543876142354621369135705667139978533223769159230523905704947447076147390566839796853133208980606320533616604846450358581973961360229906711676728168409599979298596439295679940313567298056649722897738025100846134233078391891789957701698685377920241686433458096655306550618320771747126887151021028572111208429807154756475487365802037801612716686232521317914371604801331553957288086025264761935255662181866811504675479991896427395354984649522687127051779912825245896841952324058149482417915044717519977913844394477683990167027086410537636434720442304745561803987811349350168545430425857874802764597056455423275518811686687211288164503644636026046961053488740204070236939807990617564133732694525357270526598552708024463219930378779700237228232702560553450231974296818101181758974478960529606907882533480448380977459222617431474629584346866710183184376341785944518982312482601075718051210049289298363435962685964948913981525413989770688529764675290825369046861869907448336834310470604324870639557837887982255187969995499065824873407663508614648562629379933869986118758659743076637374470853761983954457751911015085031281850789226109761380748175173185360015026691569015398646279060672369125335725108146285444809075160500519249370533357809022972223914815601808256231283456874544286516220631833142960654759020664866794888843499245035550003801755081184752401054389678395059163700159657213636682710432888809715245743106677460132575674148097725568971849614250446377001224417643280055263966052251887805495148746168510730802374780991889887131872361684442554075034047711705234968494004543478620309188250792225666119064676192100426827411462030734806622142494653540554737332900371408119620948510759637881225008133212590180652068619332830551513614030524342847768420990547647565910432531379766461404317020043159267298335210959293054707900307706359675344287930155094138578755313656313703318082736800439415017052862963537158945341364059998138240564333177001064197233932394519888007084033891234883234890720446252926186036381958800271127290791729386931908045847460612362009842048058246129535303859030289764250158811605438862033952661981444592919222184973190322151242306216298406746724319254110817032946496116935161318446641947601209411389638750413376574380976010534906421799414352499556167267005377388845307566237925730667025912002044598042714643309793320910228944787670337123182787612404551621348447709157824468623252303111955313557918031475046378419880393305235993616982608805807826531763999824501365397805062217502994825890340909957775537476493903855560199965655041534787651822230874037033261144489572789983951209168554690748477122033916096502829574023953757093498678971859430020106834401092543406656824500953108698862604571020253206653982145289910336049941759454266504889476180779790729915755953541766142706292548342779860056783866885763344448429917781785410464509941524677263510908928346878300696875548653719154090488399238290752286243631718714170923820809153961865961791431126733289999483153695504648610525889696446199052721465323966471194558745576828244591347650005977832102499556168474676215754386654090996053562959477812106777086394210348261264751584241912198929986309391404863261148410631846463247370917754535596580291169943558361985567661241916148791703634776266466812846585700564674245944977559498027809415730283121145034807393141985271713689846305383945749381074270976190663010249705822367249618421168950071698103539563750212099534112722584727781334075965446396827055342487729035171789114998892755653062760466869179351552012277150674423077315012245148423629325399235910746338845085891975128177346793659468719340051134524422715802175843401870237697798096784174808975430806958061331008403543235095839158103308940730129875149242694750571177940625331286014685856548613719652055903997116266629727741077243023988402539974042334402601490972793192896341782847374804128337880237073374960043132629316566070259851399938576917297321111488917250997531597362346983861778153068726749707611194432003848207029350414779274315395653832870604793069069763371779448016328050767939218291426948215113153806969817525955659412711970384905507327093738397786167679641113074092717642809867488657014419784697869383899542705330873212728864895208967112852720589590958058346667481796192413278346783758308366756874732685119240664191983221966799176616289553038257862519093952403324435456155359042043632722911777998716987872404575960394161601820930359930412231222776760287636584283711859603411095468748968917772026366560807814574267079123302105743080596625746580579427625551636407298268979535952914339890833603828879493289905265541619428677796806313886088781312510299746099067673582135441141563171818127981390476878898403624776700355318407959976127728286284923279031039530410156179651973918683152212013671814587010489770597635855186119838415333119432885935942841732807398247688034298366030564698368083216852496828269530449474842101251830105732597283475180288629831900832674328498722918594579938959700458386908295838489551254186864678656475257963645911166767824970482742053888514049679061958386984961673544293615706484191607183861085900352460333358269202250740142048772319362716626772765303699652155394783697830945656837643989775912273977914766637683358114200489281467315788537364389700497681228410764083293520563231063382911323669547539932066208289373886916414358486763053611681671432747137416797656001396855825174225329549334236157671395184972861185591944841793822592125900308622882292630122924226244364157994860228375970185237988320639304215272868825375894744739453705930073815576895470260639428095340691098327877149401604356987841231728651240707607035480381548825648868979040732688703055389706242739935387940629139007321221876971398600801661048389926843011017326489724199172725730936853155748334932613665064764660259969990198111679267979051724558408428621579267595549394411987755523825130779007066269126377945823934389544677787649439310348521428303909685990525516426621127441465235477504226259918297307034336675110585402560942450645349726503188885643062219171475508421944548096158740755433050003074522771392746574864716119664605815525012907010586368778924986919057256022326652618360734313199944149885454424959164418722579301218053719619559208019215156579613518847034208889382892373175294089763432355307412769495704080183418124847714314414275620841807384890222280801189068726226846954987758690219998979576193502500136064817609715898239635031852388200887957145700992860927191486714716099547025285678954815979796450730250907565299324549856596134609971812423769120877334988522396323361331971160609364731182381891317560052512246291403818256529953994702874019173148934725593941794950337616555423765757925164279655208525551891510813651500103362464399792786925727486644801624698453224733144522375891479753395734774372888490464350643946849720833659564241945339788009711990402896050870127746074428839899734640843593741298439623832367035316134668332201784485130776686798192303592894208437327952892621640765192449774111396059910222683000182660545683986216389965249916677173461197663764959064482422079544540829370155516846286763904070407707661084729002105535728931234575578279583085982623818281968462474946031941926589914014757041830904950070603576003417724179750788012332335941929959609602957637148391342059159347235036682210733938354853730725647587008620275629834635048973999089590055313218722312178819833354629103924259367983832510635327313001223586821688108054283076602200361610584663635535818912879141098657604233280658108564092216555960057395085949757328087313102911612405728825146467699455113096884854463546822713597063992975043348048240427207489113626161491840449082508945272215258854160108125310518420703266091150744168661762356069695166593322119337240594691810056859815313592066947587476021050667145670752238441672269741466368023773276821527453307281530883854995701955411482648827692651585270759741705224938536677777028217639834831733044659071282288724529918656520629586796541607092380843096914272995909721856298251354131019360465567704328334154230872840002064422471951394979142521081355273680314077811875910789934674823487237465536434011397381994399784642832653597818175517349146379550098881362914752010706176679473905452883306297678059948397103125709436863209732434402279494593431017722009955250597188618909180676353215185993767680394890850680062205878698587016121399475621513125808776142619032601180705612452194623977714943043575390060537516431489202078073063905849565302686569469582916528939901742652005754754967813143135679034011591888652426530224265721754557178776369974323985744740997846450709119132555469446865182434309463022753740870126920308389150309662403569544298594188849615671478461250389250206540735261178193316569990763269113462143522636907949746313942714602382850125952463921228067812113163783031430138041520938580887439372775024222989062295388717102883852861324954143223617066115791615111269199305591418531325759071258278670310833231470846880215984066154638086089269181829569041075998873384336575536915489271249241141143471866345510691380552308833432167661155484976385506898876400982527299332678554080279403204133425866363417547595676318165012264599750786754036219150977329250894728052320571824493587697402828374812675214832058039814058251772331475297246099487216708418320808191885321614123137984969103723195066393227651282365686114494957551449716590672814701402787032345848625460959414923582386654709753851009374868212367086098248185129021529050296358246731122160518596396372936813865514738391316712407103089733966573992477657733533709248496610682267929123717650637619751209298548912381933584104072274764638034015563124270850626596967758443926101156567728849382191429493564156878038931288938106551551401163127294991010371359404305023683015037419419568910666608128384236737076287684041983044953153069519989122886101742488412942066961883021236313392023319734151691189556218303200206924706608655238562195269669491931425754692111442534745889932945895616479088396000301963965313349660726210279380608365084389276815868147932798124954971037528079692612884751591779411621402666073647650543946672047515147646262865339730306024914320550477363135105206877470747210667668193858280721347945145058837397937611105079232866854298545159033768528737230254895945155095068922194180209297986888868761186797937555432290446120430078522842109080921572911622211864302014959884930605937891182462730596378042563206301534140153350466315780810877811159417363975314281933831647252875307415075352585872031484614051422635502339764946318550608800886449626145519459113570948747351440047766077244622122736938281706042385965746883843656193639741467637470061324889007220227188747791269750044324950385027744846771260367825509854437847613841470063169555589051404242186089870442933231122959679198779914131332593866702004286598717958122071211626706163993036286085428884164409161063671846714844505811090446258306390746838993625673309958604817368845236575847309765924147662954114123798706875438766512011674480540241808965813736680663979344684849966469408310767980795564055415758566371403745766669104238711639379648583231088746962859333397535770619090176005935549846326051157419279461296142437049397636528510312949574129737670317038068063133146354110869151873206225590332672885419842898220928288540219746761801810390976681514371198263675631704565397943845802620767836554316859895617504328435927538418218100555619454234276555554499004920577553913286020283988408645050967340114882742626874040629697176296021114685063413644771295236952330630368597868716204201280017355201516048590220035668025183547794517369253282213244357462510882626859543041500479566642818605931790489966704799288599718443856224702588943264135202111231379186048880687277209053964498279639391985171030456745203808051543368157638324408999809047767432496820994589960647521670971543988330625355798326734737988932026798294436946844072383530984856656554773504740943890251382926460550809146766711419612543556059239036226883609469350984075620623062490996609488186218210219890787965587158384490467304919185019072370384520203438845964758449260042875520769954458131361836739371522035637889724293684270883134744460540647919090912449281353965287598568403288309222901401694683448333064620401024764991436839102992652439576586264744172401063934734830148200071279447967748085306233627490851837150593387487622941492800890086775349578906985052459709406633055160382636035512401728545298595386202706732821874004199347298148551174420147563990362077285671072410424298376354057241877412225371251690998694991726914721287085591328054673395141492430509122148862660897630156990467948458562085659139611917841168256437782593697632808565029198259362961946659841688494301655979432595755489794218628210944541005252678841331411133142225777990863426426472356627260323249718316107619164818654393827874082450533353872018287633893563103096609989732368699756345168826146923964831746597500877072329055020286931874295061435777345528028425311447170080121047255641292778813849646333553547510346223640266226813538907089886738505242519113697768975573989516278755458468487488483180124600639951309644773860895655760450570901180195141884808059104229102283425740090844842221448418439836871393023645367751921490247431982746900223833073407450606267210847788339405156392606400497756478288686965041225709012044767626047256736618138818493730466132640065482061160915266812105287972781149015450015572460528094002800506462098863242206672027522910200936166392555548547121912229204141159979509936881965099924520964027741361818394815245255306232322422625012093721928095638268953511830718093824800324256426924357937030867478260104758425555589979409470266610384417051028518803081597522877442546911102102761812977084974639199035231228701260712227151371464512051336961001861854077797464076539374532096008869611242551660988452065564425793720734639172648779744193826892834891112531140586069952970414157674891161976925867407696651843408417771711006779132859432927452065598041758727865803528742795062363000051089942903323816728344293466525357354685519661925500458413914324575501998844057254585534028801440260674645050888379500472639394329619804676853819553180453154564611628179085279045930134854124375722378980521250528561472347788289584264247066962663655933330255448526537404340938024261959342187054168741235793135684591102670305743424155880368482365823561293279225538098421466683450330200966962872098255762325436964930921729259704259537599795150801904214009498922935971097690338227207724910301359271992835734636280120618049401130711730823078455615706102278566827500303535948111162500533389336430080322130585552613056883900636167083289697820783152516706870239306198250944873763919139485010741824072257152683475639324552568427324376029651379243729636662211836542409767689994288367483225657937314136773640016889220632536381942229218936347147720445568115930855886436463404887291785861761188760094116905411970835609639788929000346609908758560544249667908336925460649634543704232381273284540054666551800262783678446897181566535728942586316140175754123286878329217811479258667260662882212426156910670980755275507028075723190576912089909802095250474852130584662104776105274745651249348940565054121487926576037490363847738285799837632405203351374417693442076998347281839854431502944543145322366190727069335552228115915339392339748371014141563300555979069731073517293574754503457563165977775559197402063944233564870345039640780591017749479437391768200497773579500795348123817221672303301733219091342502489585015923602627141609525161821623720129260702115747250649837781083943730897927731376888287697478005832923815474291185823750380027668509950633600315519560875924455274125159337031523356838373995316001260598131059479393823017600930231439225220135056324900286669578912518738834130670923133462376439242192993273177211356973616157270396883157191769016602339538139545144925822486584385187190928451536531484385663483404262627710467312872783763533117071175707649202183392777280252144563429160064655368666864718975296402146734641152789323377246957509300669372468164784414119048654463042124011791147976807847972868955956903042249732681435496645912307254574258026718746644272717223164708550687712682008011000018055727577702548554787541430977503739117799467439779175892485332784507110814754525695258149616552223634179865658692042888751848865296725628823794891054540433234049532250432731837397421860904365379608494525319783899760475315237253485968196437265881762161917156391237783810795789729866254410248358042954628534154499304838796904013174770858078570737645068651192793089555795001357425766013978415014002382670361147747308159429603405532009972425161943480494125004088906522074153595318159577596512882914032608295070156465560976807337457326101384161796696420979669325724983316877865342015291894595412400381174274516162645956201193483283572639734654651323111812526783656905084969548422775711249114615172801458889376486763844737480859868143085300415244966122861411051355261096465484914774503451316299815432226419761214966763591309203566816774622689527392135235841295584018945552336904293355951892549448313863310418054073647161574247870700738437579303343620065512319012530068098469682425507776483640017090164521467870514418457547767847103221668486622022807124576448667050776932245266539679276326975555865199639799570157026843373887439954302662342913095358848648144425518380045931257240003449759061775767531585739300353158715367152628608565248958368199083506509025994686162653703963555481506569274497540211206134524974348673185056613571046914041965932283887454101910078264135535938956087445240360929368861760273819257155678060242807422465660253204713281283160677337831532898019301956658116292858457370417616686837530836912908359728729221210871179017139984944962244913177133978230166174994779039099868549162538143576013730646926193905565511315314004166654350365730755850783440897106181452834162534721609095965848845293147355532900033291459803568926829805238928192554085821983657768804132369184306306799373137150070294727863805236228132777895347215478480265491222556509941809184349564804519842149781093454341231671915870037653138030287756171784101898191848618347843360667951539416106310694700597446512726906609722339857900539798110194811880785410639456501204724350788967983472324691724910413952079185978779218940937546950119645215520187823426334876348175621745478092219951601890141769569778216747849279353139725271122616503263127175015159078581124439790576165879813682355645665556709075052112053048388032514660581429130835446051569916488606924103604904733526802519292489331956098406457664794089069455313381020136202466129093347990338343158378897399046214040432116405514436161861328307798526828403267215907258464914989049305802019765645214046444218715535092528571815148357192771002003410118253501581446599334040981814952408714131144762651609916310197331831012773616309908626172722080616318770486228151218536693887038813063992746532253753452628802400657416658120121135749530331003008669845381911461204219045144465465360317653194792662496889867120762681543458704717205059851587091941644246059791093310576611018034688948267364386083116488537068404725737092260763020732623982746668955877296297187470957705000347208736762758571855663561523214653917361435515241549835954937339511514051633983214404174782043954940334180532229491291153974396113899451156412709794680936782003059843501004345865316304114900111232272723939962083361807311947585811500411531845648910314965167853985317171347254822589185120778086677095791730540305061079338240823480119997461409921226850817962468154125465156491619640353066725340817662135265122471581242009982774592544464489560022401192296968349679961839209868871274355559390713390764524154374153696775588375624013463433321771821700551949405096761001222375045676944365711144271164399187574344484578767079224141930547190661322059059590916931031679895644762187425066115315789098166788447760064390819870178924604960422201796107932848877657551382683529231719663671837748720733826897170834463058878224910214874035954640004358675910729003315232062956173026662380368892851683655928620182896400536219360595477657106063185602558206488542097069315487977767892729353521493570791204925634354191807665348550955947730354822453487634152738630786593566478610590286810854535400364367482137560370883032273936936983160714174637166900369483996724193067735247277237145168610223256750669409610103306286210956802199444335339274005068568256659222756002151293282004772007691396228625298869470714971860039002350385656990962041449006997812926139545057420243229442229934452558637794768953728406525842520715648199812237861385947658266559832757450738179980634859407719168056599619157798755130544443081433095445546242251445874106490127673361897711465715383540316009513972938102855272000174523761897152602534220066302300933311806781151323640853007372034249508088723435479860036197646410373316207534835408740053074925003221696966365660457173649394992532541651560979778076964398852782249403026777323470670128702744267879322909208675389971504055865598616727859110894223274474237018901286385185411941685353655783297264646044061197059457493041160604517014534037408068222307960129333667214399793867904839668664069445841728171237270552439938881688530618084778059893199432051389128611033043275213563356455362157615143889599097146909118136724477489832942622788024325187099653907980913408716413921630547849534839387368826054784168511686724429037720802001546154858282487454677108938801988852245993355538951874127832537353588384667014913329377590905925807570111302242228244861523787487654040908406382955753625118761139637106127633235051687114654376008841706735969424943134515837721007845388034750721595317465419296905289914569853386655651448375299712398214745417175624316205797899558130440357305544792975790955965036352357145531881790044098504087226857428675642600664011058360474699011967194370118413206424808066956683897290894197842834578783657309955480088792076456096194134565418267908824036648801260715782278290624994809726361556468482683932667863993132811401754162089980129692172063874647667924543641323543157780081259391287709182751341861695861448896803600930840904579086393491756485217221066919285073320441211753461151074009129214317686695955590285736062202604301770514759735932227805701139953816568870459710868754253638963870788578132226084640144689211922951351002445399510954033645322178431393836733624991322357346651061349282843439283755751648083256144314728750863319320108185681244158067782537170214739525153095007811778366762949630762262870434044845703060990208901924898499395592607611148573560197904044661490462616603657740888771450726860454932121779485840051109490732075951421092064273892937006438883558969489895948841642750837627213801522143761667903947032719722602525372451340866546821707934807496417025819929459734626923758110762808476626010211398339296054754041939475702450077046216154007953471025753880074196317251593268563745155115236442043383159382174669051326702988420522372351148526948782368920852993059842287848263950979334608991267121339805174470171322521935509468252882234515302010216010315599904378459897062283969888245314157848339500929250546872746921535056637349494732049910151457507410876354607057345496515211913555057771911420497011427529151769739304775849363410852010175687893438091511032088739177834660741510365543426767821604912812681368035893063552581548225857461222015697344544249435614362837777542235882080146615410347247119492652734131812489532161656216176204275453556067365087415486572809900850040527633808152353681407660139486173635988954203203478523133604212506800536931272863476235204631876570958424907051273091444691026279418425717829783984001104823152375514676872812747419532781129368677563703974641031810347650381490979468208386655338237670702578764770523780681561513853513518260032273458454792723968246742981500083702413906139972184887854306139729111594983144382885220994233188192128003996467236287298977560261465988546560332013286479030864522769594744956630748299896595538360734750166024835291487594810119034952184591476292554388973272439849590689647912198471470503941666158983813756641819866179918724233116955956061826450720502929548499081353675220035855229204806406565915935187209225804692642373897437282881768496459225082919264586360087291921324202945402672297109507472039798704934650548116955636079117085038541477380724830114679926577760622247962746048432974034418826933469098107982015081376005498469300034423992572857776678368668006744556431435729656260877751417994279406853650128471510191388801784672110499957095782554146418218461799170081072959341016066505531495816075441287732927048790402991288267791605231787075939827334372260003400405542347337500252472221451928926516962855922764890280417402880541408013798353202325254844313825765573643297223587016628622075555602964152005521387285218942529543972004698563464878395139549501063283872462607205847546974497271378235425521029666999149299402812863643377424134835075155283147143329352839256448164504230102842833714900820353530213958213593661501376237067920323879490345002061251536481792455053606269587837099713358039414939030322134232639138466840488813731726164593911976865853775673836478835488958470139019704806904339311856066163088807141735855170760895100739433619169791827575780488520114730664725752016337040758627567387911013761660473274749947407239508903910551816159085671055949291779386301327657911385677661681785037943048643262882588587422037695965970193522137472531266083856489407745020891561160995793778723781585192276833387836408127634853228807904292376158831388665635589094823246257471685282575726669175008598791091088250494404031351957168358483041706674568924179289242322343272339772447141086648319347108214072221988312379026693807279666326049418186812356337807899972580836308722536870413679488365459865300042464053465514831097890039119484241485204515311800569966862509015478595498258371472717175979728058399288783046251757113500596131603660042587119150844534343522169599636364304490607600572218779241521634081067880896246755430974751050495100427259005289158358339076012490628503633862432835175527786780840138508638263984853318301838029675204523134744430060400826271416678091499120173514250348897754213459166096518921089392237668237774510716075709183664869996934165117579793535799840950049638990460316583001366663201522265060334499062912650134378510291539325777540545750594387412883275225590160436588161572244724131971059578457419953566948977503219281085972629301804712570855439493642360932459474342127111017451215891081247826430505018008280859143668980719441740925519054323053601905160956006238731665747185133795915927407125061536921532607399376194787110872479601715103859505535220962614053244500073380089845409481854724384247620666137928632973788833362997247826088587967895347457769053773216920757498390370793683662634956904970510158466204307654888376347286810405517835956918935992307979323322800955428867856608679808038395195320300627756552475796387995655302102191135992209093872916290131817210941465073241955942778088576986643863400908808644593083981136516775373724607363884832376896518946314760836612284197211891781561905853424091391876853097137076222031309012358024464693330031301669682662118253098372899693330752307509184607921375028603002806804916218229093179796600195187803471243862228994537423524042754545747238476846274017043241934455842818717546298625432522383917332567055553548761124841209406110769641697470118597375974375479768322671660408679842109548236859534226137815504043940042561406725675901574470209002412401964663728144679436811968382504354772815307358639323743519654883101896430742004915570740395603277800055840716422840140962715150964916363315478917967488161576667652136405800794535992358744263003437189199609289148677040358402786838444131435721892626239726873588728578738861433999790324113056809235684100760410149384965915440217442728248954452399116175760975770235287714293561267739963735566734302731699073776124369323992837311163247186255973125335229270414477705812866904388239111951325488184982443462094936453086582911789934353775996042145002788460768439725017337282562246939637336484636656189689083366973115454790382525671388819346519358183545150474731965535364914535723747198817931276916634810829102110629343361441436271568211118751195163328920853047842855381692993099568183614912647790245113318434335041405736605657113161843007194439366806505616960483420731435274456010991469144791723984601670770674843967145739552775202451290482029136049764434420578430297872682787400310263585034063916263581721414217774361891111743543696488263804225818352245054608702642652628536811941233319169956449700100918562299773814456885610739177637990550170586040550624516641172173726357964100116504273298518947593281570864522775164460382415266332032659939822747793269857485337813343945948963728621715413513841781213912448165570853862284992851288895532558311093604317217104389096030702135815597876017262607990958041404733287897623613732092809060438672361171292274638599085124965867492686962843232299253326704946042297905704659264325727405946899058647423221526845161807846622455074657015706259019693781098877649682367888706129195885354159558589958804827977185924045285155145616063938733917830926776093468940678525627057923305816428542327290223441357135737504941521790994570241849609470082852940558987011663487183468603794940791383139656935926359657747415048028250540906677265824015325626647710255600098758162721970940957412900668813593418506944822830701172161938307126588872534843014046160380337888250173212859184193300905896730875309536579511002045407317754005655770216068461507975697314697482032572467895335809210479409777410639155681864837322818721114883000761042691932289061917942612721073278518005279218425432235115424105966005465362906614412708554896869752129856629806239709474465134318562717872469265806639996414175950242141896379717108031799806974970406648615940238064070161979088419629741125388762332015643632079086031411726840754397090661769689164345691445265937768981093484400050939748148608183425390170180255253425860786230418084304993246694683500523121005256998274979080815716910747701854033996796960891789686749441749136266909731948154629470930022402413302183749436716008515475396088052189511663293048914605265194504863066362149423619350441687664888974628149676536832166409955942917038227186785623146046625010688397535032798316995670277149380360804996441594673623635974593361252859326540278246799331026320191901853122309661961875605567929863683631654435347817203852351932590108702282045464254798260159874644371270157942523417457286583794346320528629912445157475008216466814737646224368523747448050262889858440895303899020418482349085752949516354293899557303495293187053359008272025972571337868723207064873081354009282253875714107486792402468818662781055165086917804363658841957542431967148947915918424721704012267845890165895862986741358236186557376143623932458909403630469008014735231401590705435750842914808253978320808932316483931861707275064157229890216480813515882157380058160145528771774194085269006437566334560563659813236080902353538355532320527196964971490378494355807096354549945200226760107726279097673425596245636405630694980731866485060400088159793189288383758002526330763648915612047363801176822471611244393625230046057094512355139214421575889972651218670494786226280549502025552679660689874604057795284991076162554163604861709913008532699245836577362380535439139296435627141529833427629286997812792273845996588078576157065981298384581317437902307389902758702126962330238123668473915118905647611192962931686251461391811743376929243361932410938551542506496343095885098669599810612198341620390232372814927476839926017651859200557018858213524595347037971852595474396690004356150127046478716163238256804478675462888349344947401615819923097497498856795514566102555507007053573639922731203223625952562294892448964682059871962382560465622290847662713346574732368724225275767047479494898552659909201293175932676154619145295688851462789821553810282070430086753240149060695643800089207933412728028256550170560917059902250235303317849102155232524465029347631609134165693194016044725869442965787338144704058362395480884995651964591423587698511991211660968808809522542070184191726554458895775065994541499858125471772978398953887386412211240766191135898752460759003026180687582337888812149557718846383227156663328585256493381074471010490120429815247690478749524901813317917134121243343170397604570203318869493999654885379646008185166241250725780480684437570488174252987663158748903324125593532544143427343747450650583582307868266163058385296214065937238100800565620721642512367544926147142554551636529663938020033824378065574358256954290934573059740159651925933169583520483029184032961911357662549024343231940865424428135452495856575097197277730129815271011893685832437374166375384485111960403813406354159195813430029384134308046779274413557131264713260082595807551006039442937003224419832953252810348094632662266422018223211771513529423156395367965014838968945267563676874170281559767140220266304474951232402400911610528933597761494217076988475553629861101672264534934995000160736125107308469633859364662547205780968818390427880907515230937541640195298616766895824964354578493621741726416361525653380243438828893578602450716658267846324294049923082855839297820204104297714941131493188315003320206772883634152485304709848924991349293208568096260296505134844139112301784167630466220126816250218186176874472693610565463720127444534494591127352979558176930513420078383792324335972631238611970663056781690963982088845386008742742836433151971502672923671719630937204937678219177210945590326405308374377648587649471644410760638868337871793798037329727929159857606721414330080482379810255048472319280651407510441710944497831936828098783323751347644650829031091875588957387147446442665300027160673810730448941171393593735591769249031961795153409985929972751241052606336912824042964484952877813419070573085023276645073713750360180924611652148694675248116692257123337941022361446118034453784706172186125520913108017606751679526813868169302716284446560166751012824392502199759689016271412044979882114099210414086682578451249569880458914409019325168068802759030318275684709348682359716254838572815734759749751995009470670175840127845496526960047221558419261463286011170891141166143602872110107098213941832816451064964287328040997080282831506117545978528716067241753290924561092791838786978260680393187146056414894432745507221534016392375710239300293161873605816440900132540354135751944485126474817989254174441522539092302406574844872710237927980044136451900494822455702164336386855750437475876295164137280004225219056115344796373607281084274164254981539957078055180468566808788815740365927672531418021551300186227997281695229342448385107543203637639843848638858837315686361432780956326289709670327881285572430676242363048910463301933189995007570083416360321279747422084302502640386289021795983988427543808676048224442638631281475786420923186647608839610075857628334231296612629172544130785278086831508447092769004982474485038030670648635157281249493733834680976309032747865997082450715920946607775647786207390965562458150005363940102304223004312272541417854401899911786717707439997561812502354054990911315307609504076771900428666211734911446385302146313823453585970102337093773664457806999999041838893865378360794089010266878043089704722109354616859117927860238506249109660062831103954975064761445228003821230216612666250434341737640194496627122851949692003583835547562616609854704030775255742478146911994906349773546362639154753718950192890941178244390461183771785781166745590565016589653907397598925961693367570135731990341525732161108058107523665707358022032191423807489397249214936062902778783329532317416898628111368835424207727659732196385935548692394691461899420625015723184697632736832189347880316736087479239136187995809325523179607378539113807545688326764493530740162161086765550834207346329482226171167007995111843693527702528440263254069566265909368073935031765086276016413699386218163487821906037694494963826458564824847124458286713617537478665394129983587845705118524343629526735152572019454617305962862445414689674523695250438377764282682086630235734593247907734515153616362411167033223217506868178735952025005393894495131183248328641957860636007218676205860336022726018353798852631335178455573412101553050219980394995121736811523571147458424267120528940177927658143513341344618971511866022279053099307580209115812999795310162391792410008226231620242325003386891046735600489724040134990318015993398930655603329428380588806234288743414417232862682184916780508732614860340623635575948845702312532146257884354307987252219863339006419960421100263229342288030480237175813772887956704926237557525797445388428060243900988689753030888480437892927273989098170131215286080228155675237375485200034399177599216005503348640809477376962645415067120672594077887774664621986047348237140965471498946303528141066759314448570585244104142222312909317025381049994346306413193431390155637415877101030113711836995427367581852851373556449774297478672992901576366518336407310809963036253273949147082268808219252390805730655358748051677768836122315752198686871928002418064792890402844636280609532963244414607214774303200954979342391794914072335437892902629848419270936020592166466819638269051146761710394611855566513291007538186040354719288005229950105901939697109625962723821268606982061637936434360692134621485197914613930802587046767178777772517104641427547552067382630996005398100207374045961444850132702816774678040564499170886377327448575777422581550214026035717229248948521893984514982358828753494281313954298754982611839937048960512630923961112056938556583371034041090079800423899019981622389381251396139918231407880785200005849530727097052048586016179910678291464552052611826194936064232690234461910171149248647437072225859005227551419299181038691451319848194305087118139640888699412823969769250294565238870982560598990281084531977757470334587979241237810642140230678513655124282808344001008506861085506735683640337319982749493367413202664096830242948622276468686585886070753474841187414719121163671045273356343060461144205350337129334879250517770131112889720775063300729845061014558506439939145222235452202652778914346761354495331301512533691117654220264598798961158903026399515417828229325702944081585907730005935303696004666809540025330438292926699340999119118409957842361407442137581451686084349248061910125266026561241983268344024709674135592066696593085555695528756124797273816633591471069976431400375344658606098369803300318972889485546467597310734373216127860919884713964614088533263394720141367608792660669836952712133835659056623342324998743981670588388456801666597566006141296909546652386167454405204755758421154648996548323380198831189473728368871465193158281109344467251888629783758313856227382909493173202254269850275366827749221377036549884438921009665661591723518394608815108629943625410962827306718141120668718988743983781225843489606277418409647908467289412357508099822453480752127048605468354557633983881051511875795315307569182432617769155880031816394913432300931154706859923842621633387461040294911971546625230350879211990704243830292408066859219710266795753731633837255174765267376399058844579281565547381239650759042398159217855335052361868515813533066439098791608701207763705871263826821227027318121153918214638891435341832945589776028993553355981706967400929924804664554855378077537456033487214479180721465941771874504391425215380538759508539720089793897728582376152781067716347412868397926765404306946921486018134886788957105893882189482706847606584897800816269890090775703036085248744076538245783885157614464727464339575699029341702358801129807684186104570111484555981022819172760659338099050076835540035845726173391368470202591162889826016635117308419456525324629765038806904774969899221371148736908526132172209659779014531767078173244314948465834009521341244799868012100708585236407950209805043248684299139317118078124288544326360381526013421643644884063543959273142739237681890183147664069209007658859196591720025936644368570110295636430417302345670280144888852251439297419717155707312320391543994745070793759628521086038653292196134903465411448526016944793607407135139831826716186026256213199690821967494779322743705066786451285034856395844704982335007469083955571381976843180088576344839030468250550660596039499728533393542661744930689992983517097882101061140764983107283446910292777018552482700436421665981065730948311251604490361071118858478713813031413212137875568205916882631760527957867214221542907934574610912587760971677987867454845662814158771498158760533919952558890119319744796888887642522647632036344955603818541898234474791896809398800840442047413823458227040123915080060829098334241012946181044799387778784766216661381447512175081739652210220011796273419972365496062987376727615298937083797639455043154359137074112419894745129999587801938669099577761606960115127820713026429392653220319937756701696988253721996594459030786029138230414639902494672973275781876543547416284623908287530364567315953766933218114618200601895340872608282175393742386534045489290696224123910990193583913527484957655217346236762094179055664630066854913464802098457735282139799183699918838232328300738100751965818215692675975483381031448498183879160983465583875420498179448549659204292257324828661998966278373427140933148346051771134785022533939953108389051860802191377410168739019164369783074792653745778529890565422001386068858020573840055820831441857754990860318896134865768006371146019464521443328632350142357597659637585779439561208443741383330919304335012237637134961410670381392076091912458478644391379117649347663896958891782692291378724540982632975558925847471033290606941080330162697415893920351497539121758351788214021495663255214953428732000236780252135478810236059968738799845409515575056393310692347074474326260501481497596934670627451719006571584549345364035843055493369028392353934438806470972062800661310958923637089878517089363271094942780731198930702903372851760909414629476108117308284465831844962961504295321912818921036922568690800032517790240898328127306066379095725800504955521361405947087969982568644316134567789436502173544643583751038540223300400860256326437768756179216628975273417743335884429747076340982426165578059220767607087391385276726398059184539923542302602077080692393719183958725451325249885123672135501972071690722362123374256844088334651675426449553334526535806503725655367713775753015975636432531852279448277536833632895717740448149996608070779239550693980609174352173210441736230946119232115743414135991067085008307776326667268614333561230781958018472518578547713337640668842233180264074205062626240655226405517107902832880012704140035277777911185071698623070536627950007723535702146649983079203624559915728860468269139599927845470346396108318035660855293750395607669549443233466717306171388557447095545631339376490319891390013315721720171653191164335208708170727252144720887084522848648269325963222077688698288777116113590704222408958800724389629700499157401232317458385929174686453005152308055544349449195740081000467871283215496837510979634792026565489167519860421777473775886550816594449023155206872421368994954032785501124513139225388099082098129831856048400830519921347914431295595286312306542015949889092813164900349322840893232280545692173340337874816191766480145713118966191910463418325629653187461221637684893914368004248723040208286012093009000164390584754787515834480466847198158070342367040394830680459552695520593850499150829022047638524934516392789859382350322095501440437952128127734311075292066447510566686425132967133592567088537135335652965560630930548609295817312363134149225009802267058962079518718026232602579224328415115148178278172588545688930148004691642669891743989814931143557282298561993937924983760108034834312943540451934822220516219488196977900791296132185890663251557352610428740377301754161205014346809681312250488853992333120533175138464138280162653838620074213112960102020233362111884312127754064336564635561050290929112252494989767368695657832530620112137919791483191726774598932053257694074847180387874742786134263417451793997047445313408138136230752108563408534169276156649619502077808012434890623916415911110853442512333413394019529812693263429908841547612933904681627011507929541193687317442811800889901427081473286880477342619490141371819064148351536836222469337287044480947912290514289896569202956393252182374557691189526690495878974023545720164184311659184669150238375118617443746830667017557427725736713910334761989060671048705392673852568257695933253518518998902155760027900773135348985067000089892508187048130266256325497670140452868797925248814242723171184502261262353065467252353849436589431638923888032215211622736721081499340310836307847165303668745961191756363309644560735526800338000435417313914340541891495792094195754549017074069554757928260868300338746695456408962056873375767776996076802606771537425834969350177647775233946933100115319171034389203284170995385306864177886149018685493501590558852620095942789591688998298469243257544351654936119723223900537845983290148977924474456832651465905368152894836946523202544892270162424323035185551314753352569658691649652153289866565437952890940570520187236642729051097473314540790484450071411072481497264347552907283354961650087575964990621312937114079844474093201775803113179528860883776416312008982832829538666629131965405218591038279942866935322411693099812485970281373317049885430596375718879890079506651919813224548148973950716138699568447158008671080477739457891861607003308025154130923350502780687488917011117678110257533033362940997132063276489696466440687404532635834374243675172379171922464188263696659028841915805504308950481461287649072445104988004208456134395505941258717211030534541165751380052136615645996179357407082304997121362051036951882214173036580322705271349114252739748908761090653001527021568403651530399195759674633673598554178567609217931936522487453399520419988585398662469339158942831173447590918872443163678105943267897668373772808984081466428624623137697040551275071765204603358473300221228700338605416746022968010323757165151781867698129418997300526184135580430024730978005793770413253159300841994304981105288576423287977845665279121800696737517927933169669726076573102377812149193581692010690649532523552283243179568436066375994193654345952881927106689575118227843604265527050297991602349335862613876295065269955059002188162587284694241800516126482250604988965554345033510968386779709112820160318624674608872843236008748177641149369530295852923300817317502026825190057353669119997121257431631866648735841363723001875455146708617942492069492975057013097950065834423107462446911865093359964766688530220403560684773263733726682658477346725510354250566730943344068181978390306048767949551071696183548709593847350155600478262135592298971103287228579744175543685099650929257518616671697263997216838802295963447900862774996328745863380245832124879647948217786746435475349456174229006218978322139312809337146554183780078989798318484609904309803980443784990049589195254946568007968781074163898846217435618353880231711720186848332527839816855421558748142253421172662563842674562587342409781967607056616231978237151912347830429571648420823001466579453583271651536459927107224659001385522691905178999290386927945593975208535084923706590114274126013268643139514879018165956708812661053506125645939583187130736280932627172472145366822394802206635518192188808620075150383705174331506270975745223030481970472816709311612732825484267260522813400499812112066000597537990398385357317233317656276162951928113622981810690226129207885502013645439290831983549435331084455145362739982507214490920410453444302612993793953332121777122287788989696499739048298389632730676105355280278629898272599972333176093139942009277535284445779115878863786796190208910827234415384416449634525998265179283324578134503754553737442387366213295689572741474572035810639030385780517162857385393880327220406786958586500890739386906338526780410483677999017735568415666027383589498736831079716053946907962971202466257167715959640171931466301487414332078568393120535726390315224540562502581333466630466525301516111923494383815260782658810401496923939510857740960055582131756992176297700819600680765604944925388995647912840041283434890031025706485916531493568236260583594978261512431506622037141627068504079295641276807612494130885298607482160445328963178581878596329057480404035926406065483035502059894062740600052914768969839524117926205763737127991375639228867473656203561067671926909559939940409567956525789979491645870548540925977820119992546341814824389729204332650403116130170789368740613658581979584139304298295191444035734066596296630614885579305462120952924986812431353851251661826256294973721988091777538010063309054800128000944645561655717228914715020650375728313150209684474857767389596809582934355506727329056982213577616376720173559029829715853940062579980177193203069972712250358333019758946686713507753521446063088953793993005260285111666663780711751031421598409589142297737373120574477890093165323915101121852863730740955779846000712719954579743480512533818868092264955947839341114358683545746391933812230586186731959946293569511005295492248206131869558547180701485329856187581457006084442010581381321670143377473045767563460802817315195115896375398087810630894125550100022037426796646927196721394679876190359464115866249530028203382948089432032734402515128623249154052965372724335355261129151965320673033626672049945891279818771407315526462313281196408856307555643499613726691316237129693709489519792394144155751367960224307956186595322761712334660119188404856070265352039511266945071851890062693726765058752681258490775314436428422776477663145327219840998888583322411001752113734038651095886967175527790254079303406551215694357954717072745193253201647080104393483857466864547362631517211662933901547224761909744233396214139762942784695122424688085324550289381721446740547345985648321688002577763351369486165937385688725062110372950191598602616106041930781054338352223214390042805008120055909128916066445287948121174969970408425488856339566143781609468880531043025246365090249046397887875666489714453298040900354182432875921394927542632530952113378435761207806397149652275679515944423080636799605268410902923021406718993528228240653584435992104388884527694045019059118692168275682029784664403490143877461168387190845624665947352795677945853073668422056702565533651171629635992587063458485024814772707110219473148558049406156748507973821915770102494096870946010662770749710539956349940384285032209885319381389863554855721038313797927621150239355822871039994354564112233685428798013700105075732110295436843622060089483434024537669111966920530565186450957461820718289189743270485665127735571675922897299093728982691543864841622596115935952728126911781368716183357762438472710898227794190083472806545877414435651148918227404032597370412143110063153647734872978949985499931576640666060563024345676803687461900152941488138064175066218050695982437448823747978638687873522078476012169547902084396409446974252426971248434072951422622008551690049620593169689220809117915555348601613208855560589308786175916591778214449167651010806820327380729286039069228872513996612018284990000231895079860928997620351855585212527119323333934251873937691978993153969626849094480810941643649624793398906516984184310590980264376704778259143001646801776495738467614112574996913756133303526081779484747052829526098666884127796533654531657404657775753910053400668352658156578318059725838521104600531162509474592117066742863855812729699538865957113804855732358928084952492699112163678846107680982348835331490640933950894592579474568397550450326680134694835843125719339624711248323922384306460317447332656338197890596779292999254216369045705076689486752520235113342053706531245832816530762285420348867001307741687307591592636776849811770953888129589616092296383754950406139447759866858978823631539763204020235955528079845697280256648242648422497242386800765164095986908778598184433253673482239720837573576702941042060276524026242803436292763221076922063650713285181014040121949978865952002106616994287820231681176248494026394519877582677795114446977340834280324418853083012656087757014677180573784324278429931236870021948147233902891326191810367248799799112607738262031842216260074905699022793536848458753237029050004594348591552080760657836006434464068571411320285197905477374547033388232553979036208425030791103735134149432589833866228987905960135357976615841514624991619053905282021953221454923349014940348174817530064561169352753708838673821320292139867659901593521074256684085836663923643156025921259448418882093209216967283011980851535043101394322137893579369229898776570021064354090683252722486813496936066590928258163993655390014713184798050564962230251478263185397914120913869843975871168624135747236132495735424168348679761787702964160229438698083357032775080650160555984660267015157368960739941514645366968560001566063343109624755749529956485103107403224393221711093281775151701833892618812173462035406716461681206873229085952178205472194630359732737613969178459003180204369253778449192384374558043283202548875815530080723020493325256874023467431267190302316557189953914813461448113718398610940788369939077932405502990483463699218103237127580658499231910912953623918679219979535626023785526198072798973849478449384235988425356548980294131021595177724129717756225400086970009431676762834716129114279640722659674686789339451852737063077476967761492715574984387740562623464663592686225461792482868012785544337907401639746183544847140155321485860615905595523977629909110157789493362277941731349909524050154781494064166007182432117187779648270189507218162777711946999434358958902263105568742048935618001995100060536086340540408193877517781175555576441753752132860106066643845357790169155750152775347962155016249147134718629024024487188087050410251218716139847685336153454398077028780546650201793065331574520146473990378794269427744752852381411941436180112814811207622272070823802395227869985175322697867362518867834774845614912914640686144643088158645819042983463229946634702031134020957506397884699335512023878822125544514001272506379690480310942898312634548301903172321721568706598876077922672037418403162487968950185990246269814056694974943504650726411463901365851765633128176160816288395879063700709672633882169741726962485149674894361018580951123040439949326438032876811117384594304551255656213642676134941652706587233310777139810968662610128451657222609436092921323443513901622125115021494213478555863768168540354161469853354588887675453502565883504967657430043518656732523127798880250278933912794092328582886122366708787137251883221945006914546417118417421148993442343481501394849146933964128115092692086598494424871776520485151755826639456272849903349266690096522389764496168702606689779391955483289154793244510223168656709987678796253684544337635771382643861227642609301927404105011500915646206589547987036634398462402341118798743102893375083534762224064230325634367515845753759165686652510360325516441120140220258859537083246040424302033609080515489894742574331174331724855109361285398807456819775782967349398089207745492642037674773871024261470111004423741163063570996694587920359375346506697843315317991033726474265471906849541896931504724626890596668112726417765682913364291631784505129149587932108709736500630097264684589586661775349385931046889285847437847834270442991229257583309904260879468183617081689769363926389422757058271361653839893097952943008964918513445178528650828186558609171174637681599996223808982206661424472868539616096899323686037277875960127094112150064000943403619963612976883254162119869530348430506251012340885919650091978887021042185533208870002608621672833809952533481857056470673251305685074730587869576642909786246602957434905889292485719235062846154982581186219011942926719360753766325779022664131455431298781504674015561177655353687913554736651864355309894540311613854190208063037150357181438052277635254470735621514972820732766534020300507762558404391942421670664258580357979349435919638796238991018572985294100127172688050847395746082004152211930569514425875457111819344362852133570729949530989096154154384711615751857943518444056063400286060523780755091699432985192948437811738760235984660598402934746498373383222171490248625179798894301998771474674505359024247757703013139009568461404036742909245559594630842313027816490440211847040986258269409853254759455539212630976647053796878916432795784943247434637324374738415660351054756531342586660211642567769780824060920871841535264016433721994467566326203549130433144020479701378203775590290531360304633502289159672615398210949340918285764980640393277043038784777109535728253497479616733099933801635026865404932504599190238521472056680280241300467001565695151837767595686618412838260380536829879086918521479524174326995356648755718822621519825137096271075375190604604585713858872457751569724486746552620326532330971045661377225814873504894979236822456127643526644817723304901929412123194260468099897856823640144821533623070152258042644640282564465196219116046190322650187579788081878772092643599032316345665544215747023874084582008218615845482297833771877925050117408807049752483451184149189540097267358021820853830052008850026103767630454021590296211446518831168514957540400701254127541736542033871769246201433514791406609900926984802133141613548193758518926100872577719374260358788399111651971357144088884400697193694858987531050680008854830514810867777613028468872380959167090012667917612061195525305736605301945866400216433383874253731250772428117641527386679381085346540475572993686240439590244795824480547983040681039978340133045575173197612729936962899437730913268684998813902481814761180396653161411096255294523473309541262334123041440777883684403910601220295387761871842740741962522392231036578046508674838613234245609822088531581523846213663980993670987298147116746211127292397753374062081526832970765509633380396279042652151453160122142238096251749436240620321224538306523229895701692050766556784169565426022566751728291867213132734614680071087284369762113998812671642795098936363523646291599525902419174465778743702864313605217142948953827410614735348898340173023947154773225483877975795195939243913047287319128520999581117253655856616684296558021257345032734719488312403097720978592490656536118411188694784663609377572158369196388460507111267128355135701415273997964881272694671935684723766440647391007706400462167239252355033530780942948867748294636703467602611694308628630143779942445839415599127712844554950750876160919696534260537668115239739132408941025526227741470488156357479663360557343292503596964254643326860484555261035267470111762060459007114108464320935113487982370332689223236186529266732202488379736916535772471670478522839930184565528455481393366194338779873306050917476535609007122645941443326057767761608756258164027992790959157575058389179436921241754225197018554248942924100629368949533722812899738733116166696382149644337623484794846302192151060314878132627430049609020147760349633085741358571758310057495294434408795089328171861415705315231982093181336336297356927065139271721874114117187218211933223370060175676242674530305674042748548034451000988832982675841744435767555248495816891201552081103354095850941680123426634994763928475241433821350620396354841360432880078857336997503975693234348024746801030739457307820215261957179846989232209228771074673541862454568943409292937792866425511945580919699464489258596720943370238364949011203096741089169048053139197789943870952865903284339459004113936757664966590904538658065649755700071578954935900296071053892437775559440547180771462266046234175238544990863391242479738640741564580319319190545045824162080231053957240719035592850763171239998327225006821430383600084448868457917154200622731345413065446229901114211098531859427541425276127583574150979105437184481786827419228794967091118450309358202591327167088301708541787261834719620746880623395595316020233652554501272905873781249586564834677284765464395407076598407965406068372529956041404111639870290764539751048615362452087534365259949809581846457927122529861280550095562257251115517172549737822762670606648725106622375443111318688193717484837804978947093599383686560155580112058288454029360553864324234398450507823319664313137358881790451049916662907860251422701700044178630449299844985379262180151692648846928057885199001631248044180901820167101331621515939154405307016323764745063390105621838383713493454393243051522504924097247092039497243963723455687657510012895986640043733502004525696961494741691317284445637896541465173437235049659285851009503813975320311393329248563998150683494236567417230176550684292442852775456627264192470216798313503442444846737631445368791315699820443381132320316121540870268612689473900585086729199993174484428915959823765821085170156612802934243015919677106830431261179230835155001143115878058090213146773901500246834656086903375907681262877726855001900093416027500314139738393696620492444214884274680952143107769080619603332891403177073117033219549559741847821745105533712608474633141688497873275034662024090519155156365755109523727208698854531071252337332399041849313043475218946341525213763894340155510548546939315408876147459781136487797578977179805462063353736981139718064468315842431100042592877231601027812265857683160613833571018831386555574965512863180925106952344692222463157351023321467647703968631587237622223481384670396105813428845750463997471760251572001181080885121339260474874450902019718414378942144427741171951436868509020445593517485447663419696874887581202994375753474815704072471962985265963092742842384474626553336349796672918752376555468120684752876889571153347322751063564368663478378316819357676016723261899201229623101348171735119903027994384201795927497489604060089372500130137771682390740628248375943070256728037130974907919144889591280868181556919513945114489443462221620117658490201089281660209986305253333339465230478746935210429307391648817040135464785875418277700356686299623082181555272514627960358043253552401615788419184959409699448393570042663408696643639163441888455877221387569582326534660662071787902564330543234233941058331594459785582321156570637009390853306596618429400519776749954431468409251203739756608936857083714831252570428530825282737611925861142717692339455755641523461483262394123539131252283176513370501023632272306899800400958804749925773949571505246380550903537039862577262523896691298999563345266411005413922396475068129238507243093089906218735819914548830948139510857445308683400285073217833602775537231053437661869925749853670290863380329304515308029018749336266993273455588144153076325531197260600154593762954515626300723989438492168381601496738756460761545063776753254712807069820075347313760615809725390497726918538955738340486976091521522148179916943085102634914860851552720946982993478796451142162664997762007827549947622681001889412109536248738923022075182868401687977589745320916221055553258782193153605617442743292484305129731949017235338474907341548533649737344650403517096095821474373563461651020061591486185828458773372953369081138474651227001976227377243870246736964955970532663575309389567343727446905774316230903456919170980042795061638622144423011556659371251429896561435832966318185723297090853789323240903885974734635650417264749087116821656794107481563901432236812150604278383826703552502934817477944384472190250510125929065553205363571683996390098849880866090504443076359321286667487285336191967065905965984099481099146034146826692072246569118649490761505068957381457134467503226157547706348738823979259472655507010503766081103770949063423910060066857255391967425051393219010902294326108863179336507057027663409950707924071151724926297679083982143309879437129015119882489344993385066092823124507965881993555367324359791171433740725971007275686127974289566973728503343134202033783394799387285319140791504799190649694125570415187486023293490504579333098937510885311154219244393000482883635895812280782891747821605175076149070123068831140129521186824011670378047165499154417297181961593471680615482283638240197894718566614545738252525038501354370327988388527765441977576015594977865832512434883508892092333213975636549142148681958024488730031159584816285841751683361287489211498499617834730246948509192438940798847064720402553307039987381778452970290307916259466791069218398223487429474574945459898792190352218801533577129343158773042334468778662334339054788282317773147488540103147948215453632339478437926281122396883907691935880271577467863585046534915785750766175988525056152079374831196802148318912872358399270565997373276839623382334361231819275373471097226869650749106984670229412431869564257497407527523043493196201527653666998823928387915835713667292561315928923453416129028334713674788938230131877998617976968768768562571734956998729575278135595515357683335457995172359527965649490614733335228150026439279251824202698714285396240551136238098964768869416740004651753119876573398135158875631778362043697723919004003405791240479712347070891252571730945916400198298960176185559536400608322390350602895527335072766910381855539864227170994120518701826818508970769970348513703923140760292457127533288816662756081382068081200671848072543811569096843044390406499305691846591134086129749170632512079250453278789159922352545458402746660787173584713046507457491666725749496743613805259555910897341890547427588073327965945682976534124446800659768925822880291451535126892053913066382281607721422391873522051430941189955964376500882082719957612587733994651837351659718182162626548056254669244269323282759526671845801767532738638920279669886268244611667428183573695131024980381481392979958349658187358988291564135308083705515548555696465771478992042456948884639799255596201768850421552628708684224294548247206707162798953315644707695015301603699462875765380705223120604615420813127194316226192745968764555572858614728571100815243644676902860997675662423768501435788403557286773775005648625908030218473442942176504401579344251170763567445206287014224007960299363599306532668225334902720762630761329320183897839618551456593822631082356602877713905134437603446826408075295353534101360704383930150357867182441372272943252968559265536964739645350237073528120852151702459286508750795566037460266136249587712349674295249673400764960572774863090485912690499780719248152003447404530097820593811941617504513574781853265490023733366191319675365460597386951500110622792474892719304384702144250373935645895833341306329895470450584164199783672294209667634849695631620120220456964568170478945608847210153010196937191242452429802974859522328403501786264915284627826666585995438505587356768093513794826870592682932618816391601619988805131528884269181698539494602341339981797275358178670909889250044024690594504144590318223527149568205474953954856011054742737631676595510396925906593331593580841074944209937159810384976234305482330295061283478238040432826414096043419828953370879473796003449506428790971747281833006328443248175507209390412684241092222859103319338745073910431425590873371681650015648627741667103375812157075041318914830182612320660647204499629804353182903287654504369396882820926452920648092347210716147271057262233078285899426318454582126938605854905511102355202377120773873185120194402569965953570413889086353388906927875289331943526332084364395689189990328148094719753899979685233251677899430969239669432438260443658367120520513795167279886846315699369277364036962389325010944014029263934501036449802275390575989596079143957789421822797447778770117694338252309135909165359421363242809689851023797737887736585490910066341313000099228451617545822347515527643007829353873712596169330722610235333995091537005220892318324534607997204576381204265362156892422568979121801335258518295962259101093796212945227610812811591716499184511415629095347186843637136708161031424627230539557198090569022389616650792512088935555041231425111503271970397646925402271228760058240726759993289229539540582205156368912443828812489204878822997008270347679833436060186254273235147500700029552346320636341022011406757974598172989752640188349116888361112309578990090165830676098495669955141745870466104933698301259565755037652816837019757661418426137384834511190314314840176854636504403117888869745305267268557598361675054218653799794467001121857548193728029551113829756748592209051182528324655231507326449177026100755196067352203382923411582486448953735058761662937362065763125600776031285209726114217924278894140602914923165024780550185629406177985517244010503461773738839599975217740282711091210202280612511866381513346143207613987827176082060634038220951988504218273406838736257274136575941266222671873064470747222676898396097990116882126808987271472464287507653240545517163494336925644723416054349618641179949166502986734044717691000876781064619573455590350969136824200474157410427381346274263763050594048202771177383065160207597119086173209079983849442010043341313185031860447286012844478159340719362914947840934593127277702654065499037623848387901567631057849317124822291746965621273560128841750545015160415964795073503828099131830023220440668539791336160346969051671007528756839200820172923650157062266235008045718181896447603557039904268555514971992488089109637644621343570192825146608428361726661328808033739644482933015684309924285440399914937913245606945882393570519624300735698470006951149128534761608909589407415932997825913243596931054079534871607755759714075127441829792681171373710040099888841751533397529114900226498642479628260646802597988980098042577450704548599216496669865347507690901419347596535594454811703221729840131720397373518024357256374709224879252469777030522630733304547678051991669372502993342165275029176076933109389109509524553478348558091881186846699157559810053468234656142957633116110280764060120784623262752389189835076617903158193214593388934997668184057641119557753789323724138857864818269484805088412304729821836495484787150131528951248497791154875148830735479243718839700985486466764059234436634939914933603466983098033087092131197789612029889355605031783906186467391267378882013352217117942110229700575880874700366648328469024315704858247680256462529474138374102068176863309280428951009355366558180422105120951560534869159673166141822669738952451474999198737842591783267018908347993366474498080970358057817995796659055357005790839365094967475387529807673907327447927393708156560431481538630013569122977740872125498485311072076089071694028228149499335077206328833614101763503597677860041125213476910882653431661987967293809444647367707060702629322559636159900707529917601222369544415369283320627123877114135853783400590970492285676277563602139325744010794524597640911554673559864312238726940466164560711699021495027814191067969385567168190612618225714460672706873890980003977456374994218709241154426700110641459269139773236122050853944696124186745659652265846189506340612424649684237383179392870401578193438603230732594224191822371865945928456976982748331111425946457141017580220318503785517700646827345260992452172252015939498540659878278775004262991362480667339855278168624607949282743740619237044232890333353350894891943058936560581136018565075700175982822520121949406761871521202091375842893897306419298847201846386952733652788634726878604598538430486852091848698302163798832634756233372840430844874702377970230807902530039707845294375704575941702432949680149905254595671225209040485042906790763342129485860886171134129311148890116293296967242376401755845476492997462068400269825081056482444338265631856069425189309269660206840707227891568077508896876466484361877667596761342034705282539403567286166523623239089531357458296624167247768651378828017060698025402552587675235419752915640500060367421941872077603804568704616602488626220649620023942581224440106543055591371468303680122025895768624168014523424018392450928984263089372242354937943275376465947158268547170515568167987112512011660655897206346837472238888164258155791212487080227332803701455166586038389536032202977355106638212650777252968470603806918165946509662106266188343959261240017263216830778163315057481056217840985201792650930370183370620694728214235986419046753114078475897593990510525039457481457724051541058393446228604069143244366695258909554431379677383903688863170536180167572596638626186610071429511305510701228115227158299992476944999307840186677852607134871344748389278041244541333434455677406719892559993510454305367865503628184604251542438145065696723875597919494318089675360781630427632418958056950531394936276125201287868854436545885360928930100306545025351655943981978031237896753825189091191585430073192453514068876914369078313482989978527901576258474271145171940807216755319845647335488881907097550081365233554716606360130377458256618725657420321806853986763488595942676286714113454302271576209278527172915384318213314517722489677303565539537971910785937508602376366172109517002675311956987479986726162508645145944681314785108585037239549513166386093917075854841777792258656897963566767372904740682312583977427947969758198507968191400672775091461735858367978775603599838162351230032006175647375698254724685041189157265555322328677559486062422045892639311067985943639127273655631391453915053826429495993719549311782636892082636157837173410154689240898188855898412512508843017915041876663416181080415018904904933756085716270885181720533923898147863267119700386076699788430093277647076541192682733314011540103350515877895931250848934989171330304266007440419810862958072198230235377059076200092610005465469247667188108248866067402699281180252700171091260688650704816811159400193285411374992383325345345146466200195178859670133747382539812314761384403338438148166751471429441146793915611796984492669636098782017426802003287613920969591629759099490665565386895305980643772334841049382352660107151294939925156124100530531977897842977477250937700024079618649941802004516648150183949938692619879846878439584866193295411209799043469012675813467031493068165541011412579169469072037836300071588964074473405928545708671080774250436316072210378300500265534519480331967666197245744733617578182024714218162260803262800610357401037793391148158444425160312825862311198888910571951787589804692569814504752335847830152385919168763967455099168245927454364578233011248701935307006097072045520341723716905705515556848146088002878413230519212444329119303241511967634254609734508392718343156090334600940383789648293959505520962522663109923110814890290351989739973511525348422320180704143587131658553197445788084064947886873695977150213480116961357872749684944750378811535951755851223568923768093894399861749630756338899712448908243810511084432251846721544618236973347605121973913008192578787618544067650465202481470120871554172371487942219938128021808328756198663592299214309317396784066370289834795139257203701850003640694884282841369283273831930913831242709664624434205660080971369275498116333291570978944441616557183937928004545388199549270394680538598094421438825437542753984348555151685573791328620820296491785105421488446276217489497406315353794055245901341827437734553143034609973023595783065622859537993664804257775959358366051220523299879177664924587537278240225391264154328065442652585621028820183253320259949573734006343462405316821591541128375776859987395584884563610344839528852701364235678670277304100918074384803082227470117614395624743915154268382006990842861331854705650681547511514276363806463437205573631404954346714304357705537724944257817675087124731976526371115495031821969347896293457813088097527468691714118289096622972017340238060450181715556278336725638610154261285595886095485366410366126306313089979479326442809070341884262491115674518559087322900101110969914499751785334029428788580202846846083504452063624441610108215788289328689050717079748640634324949494611707062977690719893365211034155676821860668724254838707666822029582498598049853170072349004888866219433527875563866769340924137191310560182097794422594505746740456153184952954921006784649135337135766476983772538673248830140264468417024768875475282308010147548345178638652508690926206197552437509154186214928521112032059339610290230311755583498210058247047361260823208986283688234672170621016469066169202385060824826645957670538529134813112707593685292310610227698219393648801933465520985990129764980271360669130050611940634103676724175088122907804035478259000685294509406932252852228862450060386165537251478888597302589159920169103766860190666481310005607489366517339176171281005664177594868238551783783190895771565263351674745850271202647888653072689704084376264004338907769171907348623185823804415469514853592154412861803433275610027248603380909407370184687564757567874993788328697175581513765003585075600828089442591241111147314198080623023821736765204431766860973160510906205437409830999301911267683616683414923816435294297575317470631521037600511307612116757755711164468504014701523900431255360808377206374345153380575626827934962880920342797165416434240974949725227742723079994241611366273617768197526596045595120435672033422837048248391368862626116304601709500675372491420602758608028306061319540820079373656880290207078282228647327787928931772392305574029989847289009682066029512312078979495174268992134032532005026133756038734945259121966829762903403977435978526527352369409940659716214520010199631928084219395603806100636391538942950498265065780634148404312889962191105833424186460348700534284675833104911225009985699789380891915253846312790773909486078539857347205458243753884315834050873608293484312448038954121481333678499276914236544411096240124695764137871433973752828602245649147384848024688140674187013768031588610120465027681111034457303346663308983237456009704753540813359715605900016464465135716248970288093752922548792456566425637659607100886666888116908141759904295968055971722732598214931540833352875790272682107452978052163271988331870202735237376981075327169938607042663185853344008961988943074993738832190297613762906547607696719303704000512103230350484014682472713727118860795127263736292691156821826565607444538548508991371910406411847502337418965099351363524841247933299818963273269122790089344432380161667782983409681122447490439784946073337026402074187283271960451028212447385297504764255226189361126697454207431182097890335356505129083047756441784283688476125700895611578293449331216706454333424739690017499685394924081174704346060717606807400630676305098140045949629415467851494183849222156665615970729651345602816632117563996474049847429493579513903672134750696315591158996798583588516383880339955550342562282727124738112860349389040174450353427414662117095207717817277738887518508833997161364797450793938896298711215365290402779342437685835549903572164420247711697677677283514476529929388055951141360617749008636789799103593399748451874751602559873079285644019405153143926405555138981046465178651512988161974698776093651712298128858188471192398788893507458167096361109415729187297985773712321958549729917246838914750256804751639965526243237820255971785876062638344085433193897380536652451900454337257011152136540687106381929517226415118095799986274563172320458886258028152170470373081038578280877235762588981820945361744413791459106200537211717608695636483756279219575184915774908680507292239551927919392511691033928628401124832307755653991271145068820469305204008227286777609438502651359404752661800932207471378356033772172244909991467888483386761660808344812461782411566068836341914303509542679547265578184713178503334322974659989194685225147735098067433627884843608356395731859577669828334822601431866422051620431935302099839811722070759421283041811487012198278956501769478962784944673265198793327102826474602278865687927197765302694991776975015205092136778617617813182555106372534528878402090300998537304631215167317025376618469051741705837161049849528503802786768643208955534364715604394166560956724323297446869590886048890014420630355670576677960383735579445392079521340951092330676060402905278649161235788681912460351399864189990470716437777841053402592773476391458103221369998459640073809936713482830842014431152800329806743335907223632238979401681585727092519326669959945021438715688582927257902541609292972569307476684874797958256903825555303751546568805437842809709672544644737169069144641118473705036613852768674658388028933965327470129833155532667329209880050082696651675599022264819593995882828753150787046209480480894966435416598528793684611947319925586927050956756564399065113253117750284321690732723435609534159425340878719699884236860977788122899487926530591296298952951812813385840439418536207030909972973819543372189307023785002896586000634264911866271418154458596739345600261296071986145650883175981348124296970432891884258072805926023214097563383227308257127455481891675663867064111181275489966894864804678303889768871211219113084523658471267895173338294005939517806470974906157855256675496979446559785394125456642442324923990214445571607338890362601684141055332774382459740255145346807651937109023394232402678395986388645904583525963753857441421576849199343442900208447254234961672243625051561325294047647337428392176799991052829778820938101762183576810477684816895994178371703383432442048695372937019566314075392444015227015931263626584445687403874243901042185274787255767826574265947695295370691754310934281300978134853961829347297794778335654867875127213973686254001734602015400885353328478163440444198392378098835672148962973349428317720752366837875658200602491820426324151843394902626614272045847388793554970594564964208248060405004421095995361132677278298991293268163610365010899902887159287061294608565462809919546110005401082350834442333181187433248204860000686253754279355049651412833874505337756103094929256643926954557732138654391220961576947325107368530834445955266161647170199142891873258829168978783731428447495202483045099229946847251916148111410821800528539837556074804400737027670945518190931327539539416306965630284140051663823780259027222296128503736825003471928529704105373922554154018000065995265752394813000252525604129700292953424254566075263023025640446779790043693536537728684854594032744345975327105441372705630989480626067469190872490312920449820168413400282894637941618816539345744024120340346758225949321626944962858752171232185429959849219185601258948497620065779260207256761163737237346780194739718148570573310510207499336864273236412129902246494462085488317477371256972669197823084140585285410418403297447579029276294180367965954589171668985517651142464696967942781956959572742760945133014297383876968614187316767669154192721942618692165706275104297545728316777897974680431789725459337090214762486746425873423025279650908282805923017797076366410821787619858126703914793378334126601940206709928622328009310132078977896597523393263368397592228831827553620577141896456868075359144230874964690926040046451905368912809848476860503081299773751177801344566784533072265609828798439915397953315058592379428525589236027836521834368237540838968293660321557070185329888287501238327996594840471124881860483651028267332928967387930866686397079647139544701332782750057730407485002297707141820849490798768034360397013701066565317589507858827451338206324818972743186771902083595804933704299539570187275750401666085555160986281607855669567019564722585936595636500088183604747341584986237457457287641231891188423415751099488894912195618769232194887163172253797863634324769402113722732098859707863064560971815791490820152733793021760085539491030870830710937869056740524220734078171693132982581694772736631028237159036201631424615130534104862026398882213590964722546734425334386906279202132553405333798475992267357201848541973885413523768147681376845837278077271556057811527984968553385757069073641485230346183622062729876155166743388526079552490321280617884253595023141479388486924535495691890292955212370788550012836868807603446244838880221574576293695892167137378030392765350848086952981980436266524151398997544213472674976063211769129113178155440351106615319728377729829146705934097929678179118929864842224007711043880423445451116448935321339057929932377213435034875304948613934965144640475884290086506841449699734080358561377304472616516064468736569659389864646678228476881660429272774828475191166252456125439776828236689343821759654109142325725804958651780397317108336592937857215364042165685679293830164513694464518605344577833136437641291086163168530288381271053840231410945653015023533330484261887991237995537315943823213963083910582565188212163424829400756794637962833856235761546418646973647877694608637926347771461724248244319027869804084362266177295666355933113692979601570174412076680609968104326573961266184279767768733078067323752665497986729637911460028755845140181796734260442360881252745014040338102294475983056691965590360672890452189159360186507147484858220287123072221102215487913945186188515587574542795814207071116935083682483386769537320772137348760706513482592257269218687113576591309152111192756108179744544993702444058261230930290217543207908791176141621302741043130204732325288759856940243576960397027003509617840580002237984240302218176879085183282071296259240360777218437505727800035726483222200390105167194007449569391860773155382533722388304211878009031142887247826899940268980694323790794230379562269020541541839462509297349179109791245597620005159584591737230505788480590537585951549734448065294046316274515572559895434281392023257249316815410681317358119735168806398168525413407683398004829596603459535074209699184945340936593155178993570463451931888356880890106117589150188705372011602774468445097663895113731594419887079978572241689195587922616711995335891110902348515994790386547947298409014214133995789123120318635305175603055489664530746294245785189527319235906453414383744188978785092346716584268882941421379051999059369925071618654220158932776574734862993743783120487822497390045399080016266039421123208882670579180044896775353790079456884315893983244688922965799313205552642407608967844497827837883895778192876907873008197126731815678220455382491443756996750519111470499134652610499842895096559103745666718758238949849890402531647959488415380173709016868399948765715256780934012325270513825676152091521601389458481612053360178681489843946312691946720352761167324332618988840106457752765375545113972450326219031977614741217589464881658784150309026810875292670412889424456218916249503428228331951135649035418427546825132242381289272970264612775858904439128871032892158979017639441947004939939502311626686890202713602896301157131614887613038414284676480236118731787840527532644679090847496934961302027310491526648961346752640804505790451453025217955373470186635776931576076829573082570453405019927111092264923676487047801227134938604750110740608702381716100459673803782247104427820708968976512196804514893106047322068937658148282400153407173791936531679436713852754563682076301608265041568905933798552187989054659967966734570514330278266484820850875577854896846583966665088023113940509879895847808161012758403339522772200977490091700145969094348972962099000465035371763794414122201138907901094085735046630260770980433351493591482335999641437919918408168922604669959382677081060706829372075833032825303681706639078045361178326289830859030795506121121463040677592808966109651882450257752262328507794531540621554987462763187882788161853221789348534939178447131954773153320059989120159219372093083854487289468927123703120097314388056871513477416741940297642774040083303867359108982643016519360058644064352444810234996677062538357165270810957080403159819424391122813766157166479608910476531991825895372293665643045885224173244251427766366456737996730857158553147131653675849749678109800295143186743291205686365108899338092688202584640657712063115201561004738324346194278520234810642925845774320279199139082322226942133640728032961556421517646804028333160242606970962927580696569327133991191266199580912970657806663185962709909902452379433136976490031107409398819096437808343079330333178159252812496180802019430873152340436037715742546631624262763130324728736643016450296863637912354195407839328248724555241136312553133784547738367236560110643495332063502902817636037193436504373507615936873454863676593973502555068482229837559452833342553810428078834830824764353623733792463135267032212778271607509733154886866383087871852959479183743972768405155294959702197284190334176969289462620231625600855098176162571056195362297036197973858475741409945859460637026560434227213881888220352441448965552813505962992588067408394581768474244050744910942065772669259529340169093321046979468767273810367912138036343782874762844236875335545457193287552262123977583009298752788154036348969756957927351887344091552146689526181813060690815748582523431036700426181423340190714562775051278198880380212099039358604848272005113626479035311761272491669246737726945544185149299976615330661660025497426237462427928616954956869069068962044611389895203036944637234628919502687898432704329140825337617911458262617700542560703178564936948607076087248773772759621980914431967741432957030739368833740186269308271853658366716358796079568892618481303396344921901052751921321520379696581310122462301994795796913501359813712326029328588663365201999939541366386768025746575440086814140028906535830425942452288749984230741123754659518909049798595571991206705871960950399889562035662776133923407369318869856165168298366112166034885772505735337637288522855106513955447769085136778505009041263643612949030906923705054776679833001064755989252561139309014153126535564255021365986018516093750896604627902988054601567063055768773761011537407505354414320220035679158839720529928651546934149649102198084608353983850301048620460263322705827285521736959405706393509021251746120416615618110028255026329060113981361398258364376475436759410411269351376603743518264518727167978368724875956438454793996703301657051797488700868111363948506943491409082635842355407163472655157134008979978248520930866310606541043797791374643900530640525890495413154593145259176943349889079854048760372047385661059625347557172329509183688324661593046153903222018120019702926549687129057263930949703166853205761575325308429280867315426432525572629002716988348091932333570345351834068706920734013142535804950032736542751938792394317875901257373488388865523665183321993668562919492258282314178809250348597564594269917138132871415292238465896122514222245693508493134100089800200550558420659226656523075270424015119519521377710164802032361815507210464622134289108528697602926343861241204760455607277425119175713063239989697039955577804744554537935132743978295439716283383893683507911751066404106691055039743468327372946287638442120476692058778732164380324283460043974384198427652410916062064932013192992740893955269051345003104744855851524998655663162709674217139421442319339844560127886262621167501523908884592946280088540292293240821370240991606485389587455397863607761686569327321414463105428765670255015243938687780889970649351732037575294710627377309704966318337031346560975288009849160980558718662371065559039337560507090172801823128155955969742402090926491725259112543747006349117671155811674285895396802499018260750798226040991711938786300598529186399733872654169595455637666336455163040620347739466612696796608120333796719313341537654488085998010194333875093463492996368378906788638934041775743700411970692174943170974622862560333266457764809883683149429652369406432690829648252424251311100467066976606052385821234851258376496981179846965482780741862743671364089767435651041256538516668373214681085472384941550661069119464022572833160544744203882061746651232866882515973884817551799587734625243154898550638920856534779269708014666166583826529287700361091675390415742300255341915121810671052004727073848787396644655194585902979510259632669187407287140318109283628465259821491942831437595218020409388133026878710913406920904023466486540083904682703170199236767007191521752665632186076008911274430076181776917407342094606941079864765298167417792065255905738215764532230950956688332119391784360701586393636176343724370411786469873231711280365709240874601504852316901136132556468723757856875290336654260063704102693210075137129696121877526516516517634356665983257931770209217289613046759715359255046255707716062097640792995242699360213093193399591400617851369412152059367955691802645031999926558763098061231141251747967880394448745496910696062693485621506671652370003078619271000033476325534076970689540379914393838979887336941926091775658554159205176150988060055739957214692698397278886651663559086471045229382250925324461992401589556567730486992108870441981352936378945996668689430993420563724849792894572963003511016770638180013564444107569952625507885407183126311989309784254379268123643080178691556225977422080415811779991665982184514069960754172428140150704925616742583528715985695874628852862150407968977656902243602808205625012748220490450188616055842571248009747046449341502575660704639356663580067194743379186313528978281629957374247381650472194249158434594283586638312043818798962553099984312473365180228198485764916983130561944193797360855903274830135412046040146655555487052541807824768533589776731930258718143935577083098314316218692519989470646510167795523037180237933713413858828286940919050863739463162770423468521066165769854639083441053815202462128462326052816792872983651328056154555765962777911309231643964385516538319705892940082072756245023544553943951269154282638212966957738599258017514991549834533497036902522960176513425648093283294706579117854807724896289614620295872864778670738190333396367528106119930794455069368981052017116493273579199733622957873145610063560311381855476134148865810575442792479761077778946485485679552612577631629339438451442936322705304300398561980648178147665092729627249093408656758333003661438348202991369767756158828815300897974434558058946665579980204425789576383813528449328274261887121223011342581947193206430624785325389579026383502940134905537097597754604593314635267505043891899831442255022751458198349731859453381107462444026152732279133169047677165089486512105509252787918482530371592408434002673595382119200251663526057339876379264572792440505819706649555700824030340700123805705667860102611993977812963428511513350554575042892151741250663346338521107821875455705594216151878671261701504902132628316068528217786621591660802910799788309267083781084515167435196715299039971074126148905289445166400489674090470094335661195392861163974906448140076903935731903910863861058493536332449768219599812622742940881778501080276103548537162297596652438824417579292564706569805625670302010044845034708617759152141795080359250608074627184164826376936608263747275959056169041118306995212452273178119293692919256175833431763931091071509503803101129524438741144465036446020202407801139320927112039837016038382138952315316322148306441465007188459320965345274928191041173593143309000660264557907067816993383005885722333260473145660581627819309284774253325736414124745302717698197363185407067799743446727024260084695513445074857222557072985106115050989302355699675256200149206069049678187172710630062808222415470258224211734997851656766158735282063887869280387141794176570517469043131655617620329879343741995117399020432094010137337398350243418259030334617405881851450441486925748956094616298530408186024622780273450875732284308656621732239283329812180782967603460083999161816795519448478774653850922260753546825477257957275167076811734534943561894853083797436892435972911703964261936960455496492977713280052551941960588085698432900642320850172726526982257365637585723005891676362928519925471113734971911830776433414756124241626809514909883957007378052450294438472806842557697195764496800876795709402597055966643751698542831789006077466967463499544895531754860329941628074417643019415474695278399522324185959295624977462673417715553969599811621590240196089301725090895420021499896847326325580140145159577337893188240726115441235290274058725852703791293865323515345451955721412709836929118351672344296625954970382258271208009031880285733464991820545437702819208609150004874917240144998372550552958955354313574674246066427827121673364156341387759749867899751385747494181385212214023356684329576740214075475171423360986962376710966680869935319757789533223681723191882055257294401071539774491535631214457234950591336485621385192107289537981596913945955351477167455520326593770755917168846458474002241187940135240996413372060067571391289620822489021976424274987319113300406112812836203943539182366714072577164774894165789202904042028961790233153630010924694239842183360427211960724225699892301481645980408108835696842358971877970685308318074464187624524910016808562990687579510649373742324873993381969296934342349374646507070593729965593482739789405972253064879205627359397912976100888998265057168800208668851008989102217234940401340372013814113904086665274681822275316073519252395324259055978558099300283033301600857123759816722729078440511348771738681237022672437169816241663600962594640447549568437452372463358654631175318798303922930516821580165439353517686788221528864785403323302889341163071461407740489064934625836478665972891419392635054891987419884969850393024662707201877870212205224272488915977530703279832593348622206417322931399980765986016749894934565647511227012988097355457962144602846727360940402768135004216981142797180301708058073980614151626288780231726253855148021488155030666615937802927113488856234517677227594787971619090037096927099040552167027893940127868740899371755037074438843298771137638314016947543322392162199963774384491758997244558409749704207969587247939405463138169399164039677580015939574307993331304528070285465773096603020969518428493627320629163098341618378577896907149273034350184988923400096257217161515005719245100004049086096680305356859587482485393107480884206060662397000347063968384362554531850734227336040345269464341271876522355141773217285316304524398834786776031717777249846283506163774696663492108056869410963525827365373498454015806667589038342442817110179021113923568749129900395020076808087393257723645691778490079202224611227120189754115674051319489510500015258904120816636149139011417100421456800656035525108313574687499542669825650009279354662565766338090233559223658467975169062476658993982832452383998179464705641749782291048731565673861896075818213333311584750479535778687496637332631198694505582586916693634342791279870394354779381695747667954029229148376095126425144777134467757644043736717152811916865276940334613951780570753151220031468676621706220889696148422663232767194324040866963480504497100567789407038123479763857760621468591738594133696388735392974739597665823066650439618302234239158888417930181748875764412940307456474155230117516690359820207455315409495950641869371982754652944320833630009240767320638486914098203391795270054207364728305151025104951384474996295129589720180481379483380863581571018515515273486769428887951897720239525443086993723443683502443608220947544310128889873321707749518395614605447140527979202758968147136340348720453794774267411069026964790127830362826825806476736417772335814395857231331436610920450047373269015586184721802127727126507911589161630377501016929415260980212731845329645850672802179354460384848212024741551307845582735618609511105832892795937307359707434401725038274629246326306628313051728973479253014851698833230934968730365859904777311917901607875619710965366732411123190822980568414603368722155024724374523569753547717840619507520942562562375735940146376866375453729874189394443153565886803871499828502598527325450246930451025795593919903137832239069970053738856568861846129819376586265458464927106072324528769463510581769863789023945861462486369928403157479493596201115593814000402100096541169383452017221066073303452684704955562522923822718508658142900439325732454500872265558572195410034534249711540269241411420087866347186829909546309948175060107946086956395204976222518551146108544955226201799803702481503404612648533581354784949393506167998397365719416219707237752982301472908221764655345809684705633332490294858309150744741560608598225315880760975358668813933661151119780071876174023762943647657783509955152271589579180353969266079914821750590175265130120546486617105634015227423272306779557615448448417281791764990263250404773332157981336851185252478260593715119757305346654444107953298426258529553178821173387749199536699671438970629270907112312344996802711404355388213986909513401523244105049459440887315462446482555888338185851598084970117043618696507190090590711177562365339751349432972333949867920082271974178118612610523078953005388691730890188800890845834570548767764386307180831543500262753188893672746735547489142013381913384539445172277466903778523310852627666884883626580290718119940641925277471832122233990060261873049648387523469069978231188603706992331325678935967357878223248288326254338553518407718834297859030373546087439678121608390556613055172413651682072439099608577254999317191885478127947063447057458836576384595354098625233621849353460610967204395603912673339155305169322655684886063526633364179802236877647769240128961907229452316534337720354980613315580830066122223051699349863401009989356909955586686726061512865698062302060078031842413055381962985963117942714162604953359425152862345226827370766107601530243112752310146573164540319814410747598927439584746345047870243157823981334784857150444636460734642952891158738418292989927410883632791943935987539376229416741620728683345876217373881785977018396472143777213906218454445639072614433883696023323255296964707464341682124704235150478556042111113630506905602586670824734948911522910213148609523956182877119311898626004401750520990043274129770934477929141972175781621128220319004137158310518585712785117915221772303387585313682277606538555804295159502688730661265517529111369088818255008425973234881754994694061247231165121214450285699328355296051225038518833645970399133127898647671804528878686725159244357859809626823622227594574140097614679527623232739938945191778122371474835901468621615710796647057085422998130704285470798792806946942581069007306023336432570885383243907705680683408930888982646684662397895627274578387944318835355108157749852313278461177818587789480025776890159014915236335167629714084086868441683868104695297377644353508587378299563477636887889728852578751609785965734363679432458081953091949908293543710823384385537837273295278023191572610406238124461522774271968386133059337604443255879433088583845674197693073755330733871246650232344696168490832147224447996629802262210939844576969710175388464479487131060655334225488896057657906714211697202313032503046841068784497181980021818465377742370392345693966586642465832752408047071888838448243065152368327016512348757215237172298368916213210739021638516825416490113254212705549550650625764002271674713026633404415756098722430358544513840920791194658207226333642469786151866243995459614203415276352133127934646661440712831243952287918623264960648655469580299582002313167763575856518244562720889370002278827415963872973551753406495037031375700040972249514571489475767329425881020382602622874385739803344879589565809706366788190000028671253756004940767451881159400277456758853816906762740229732909354472123584530283349117625922258162399559750732994286161670135779974226355784723315917200465035813713743907651120678658273380833573113518498134604499828222221111887493886342998317294658414921515185449709372104349830577190007460773311219501708556585932790284984405918301981536477887493066303771605770737294108800833500056041544783501426064387308404784560500620246958616087334772800433051532154415584430599882834750779740195456485930342845237360397784472470346860663954980515516475047839155493342564858106939874214461298596713154603896900045077863297281283579587352067772330775801344112990946587524697847580301065846876935382999482988555823205675353875164827578108358478833687361539283683882932607311845113386895132755306627976308482169147767796035409549645130552821941568338393453960563547995876828933507123689772330493110883475475434282444159742113642592843036851740347530387860326483671925049457183032645028019720019277032663338663170776643538573941399746060712973874768940241797437383464175577861731774885309887662435511717963693599147497056261145877417137101326466392326865354869698342862023600723467374049775395447290247304117887983961674718123151961627808382700188762968108024834060301641615246489895226597171493767023410412866191839700744526851094554765127139547167501971317651754605704846703069736309421909915849701721159611136839307287840734399088677168611330248728112909522554553289562466003805772312881555842203055682755713643670290991627766784559812336794748113151662540377953689887430513075434409397077078874925747663406607365812994844546633998645686884175579651683302317261794641589102271145142657516876084539034491378995698134487156885517210466045010897429305490752208671136924632692252588270213473974021159327216255071766867273799047384976628698259805834014353220667359565963144228258644771062571646169153125621400242503842895788813674779727747625071219600514381472944148262263856263409919246801757186084124520126510187311490132439758371189045408442888182795324704671797493529328545828606484467830825688068459252016919356112496068414486485880801414521613652608050665454309693438132744834534808360990298262529684355532141218627625329156717597224739892958401922538374622112730912378435206761583481915946664986926764510212035569178189556673630250996270333975626486238521211035563821400680890582314452249689925518851958005162526268878024220824130019963588606736534405725450234492506169714292300983518095019765401275613958500097554252069627010607591771636711391353267475403764392969167119795609308010183162355180902099627778228538038096968173285264870610217175327556834692775997614574227841425175153772081628758880916735074566443948938886653339411229745687367747398190317452663526107853283802589257799327964013350003648271999254921218416045931730271653633639997408566973691527848404352143148781228574775099136080004528419332902225131038799366273770951105290466412401903588794582366816041472104433069772173438512938486016717253800167222243747136050419868689982465716027699324084577778186433116360581270552592557109943906317655251334759048217401686082102331897079895935916537474112156526269609779866559965405051941978411880570734509042137518627313546995977994870534512854316971248728952855338052473241866936115827993821476035300146634959124591356045036516889528786965738887061583411509208722636294052673357340258446656769602118680263982912561719721581960122848636904607555113026255113607936180943733108302673327318969989148153531359186333255219732737299819200391902380676198439307706719166584531104370058016527241054276303056594078475612370347325980300156634025525355986959968588272243490443350136619139731521873208261795936001327206960811467137854779455961058664631937877932599814963971765336944944478785168502263964668349546795432827339876574329427228329375330253797193944567317126985353909264117448062653185293888889713780564174959652433204109859891678546280120112424921923419043173787691141342737211138883484473921251606045377610505215736187851008520016533340041186544932654213384382221590993283919314735506165525634745622036085138375226397618816817630466715165856081678444750412522613069735718628093329558107216706209561230129811388015581496328939779630394683380024214836800487657830746438509736804171362622361198964588984177436476759579729344744634281136406045113892547935270459937406399447055937523298933294185745402330468946811202917781867678476406955639242459232513434094917348163705901774892108179178535388937535177221327652438197420507197439476975623392079744324243178321174856461811218632886093459139795482158909564531638148074154495539323494025511311737104607726551856531655455034490674765736518935483949676371287056070115102908030418049925383050723958491878558678712465053559323894745478784647088134912076153031167404050899770806148599684927506067429302337985724049089185210284405225561871690606224805732349294349903900291853280867514218714138613591253667885050071827393873951766533969364218397901146737134949794097245525372090860259703270121156980769424126231481670003353036932451739798026282131964888985710602729748079702319737426153085835304342989188316726617533159108305565719701010718264228146138795654372011273554427270089434580682548241785321668414295515213177401196360532544980621086158803371624494830844652746600784961232964803372941039937998909886230564641609628937584497548077604890722658997139707244710755942958236497115632429335746178723340517035695915556838254868790238982178175981993432369679206566045702731502941211930874603317325470433530759560090553297443275662965634532322265388766361807145667817380685422703546997060552526685311724021708459214570928980361054018063130959179736189428459194799012789661327846746778289267992416499981619955987948351108104771889550048084821978525813931792155592523026318942935858925640675273920631119706416983150581123206031734370446602514203566577693993109479136143351459721886614939100248678059292039334004533340875423067171359709198509522185566662365887085612625473210090885770802475117122195460087391935244672154117713905741573831166153182246204825214551059808805037919198323244466702846028347605495494666678786911456059714177353862919466135326122142352115066262428700447761859315987240902793560441909372721283444131596798976735947085446465767921394407858639067884536652597588244889086600661185803981001444058600582966099594761857529927948872666463973065158271681707555213780058460786244163706067185074534100343363333886577664309988912913067723770059882482093794617246934352511604602583951107119752400497397674242016053088543317941031340123865120499503449975400908499778237287958768307626499657152688852687252518471743496720783528205288634325621600475203456606333150458248276570847815240960586609372429534711359912415961350903856075810780721587726264466187924553466424715101209741214422797717142326681741496100864406729837189059226176550608479805375647716533722260810982807439723946406417546932279522340996620267424710926120153315211934660295330515402690642710649112455940783344172994404652482453207516360761987322712785079633066530613763752286731825177016332451695748149750055371635548468737133360217032292007598283751938801292003401590446852306610065117144843217940492431184661446377067882841961057066259219161887095973221025464170240475195642315505835092669606549277740379622869550988786411581523964236678943195465866360936327274836349944681628170630973016214233572298918589739356366733759673808043078387756037594454623539908150831330237272273919968681834921954185951555215990004128185007019679155371458172354982894726126215628742749015241364207983695974952881464047997987315522728664776446710829550874361687575025327575559450398335550237722728653524823032702317902908034839994659921518461815751088490136843821933907039205567055084639997626496408594934760954239944960295013577123706515945721112576697471879651682906696446132932744338860812531979064996405461649287380984746045695150693922467363551648160557922081270028798359591472964421239145857849159836233606830846593227289442237457605272480623488704223320951328265589752735979030132647383898592214299019077114028283462361390991615230802409684122509836016832850388412771069155808857279016803030396605744842200407798730642722338771330354818382154388842678967284361423769789132357628763070249002968906703599940847202969639519743597024093058403645797101370310766616672951279579546517486571551618089683372877773090136664086197658704983823612027771320340409888914666922386989615958209904342138554527553246583639157669651648734776093090695276566185112924976012072629066666758621233901477350248483922882816181698572494992843655737451366803646700113301438015699577251403769212577606255963072784915824543722104176147761148516225819366947352633979315433626897138142486476795568187726283665715663425665351950204860124480970883935338712466351313009589665869287165653123086375678036225679736676699540811109450184732490527715024533110212681608914107251882373860146006796896223379518312441277708587294206106320402423239095826393492079087825316768983550723605615926504817347294557642572105175380884359156119260539429808460819415890596419659794596536361399986354113183183331940501976059941542755008904023610913420815131257917828142819207000318807595486776816897649948945542972443912320052388067090763971434180072295794857359792355025003423755720223584519674394650369038830998814772342864976251799775550728514666872840191517115105626117723398728863070837137169333207435790490926848116692798396697952653574071880527619706840465662357741580253648136300678916949409642109683934257318100378901891662657244136318867883767421879664090586094410903885871087324115665628058086385677097200428241606672854105745454674475620096777318217811029746967411176049124906311848505032911121303433428844922097064576279453178881985013798622043774792538324199534948738929338920475953704328727201093853533458007262412498479370916219043186844479892259093416704089999902561946439211984274144049851971763493570983061711061856837948624838308832553941637289453697230470997039895458399441380020787362368544734639325201112476055092779015450624695120735756529552943860020177930804692388613392507661629459922445576479311128973581917917020881383233111181270802307664691705669291266449669185050166437637446472607857890104249453842592235039226322647660277593044221564318622828287408344002957988011782382163407298430405730771983911701861303777994308688605737165980777200948760190402858421420205622980444197564228577889084576179249173566352998696213041795586893894651528933569615860002603201684675578552470220729185357672828735147809069859965549793543672086072537316583120258557601114956294935638668553088178295434523820667987501644806939810852780747318922070976439654002285862477994482788542829643798431181911025537346843855764412254403143223345947572256353817156496116933827196571054316245031518269466632985374274434877008862512302829306649437913357275219541670773186952147730406379778796467077878702472009609878797605460332439779869591986673656959229213804801292845633925017993741883317464797813384141965167885638014194976829100409728616163973310047569556940751140270627537220014214563245998929765021656205147779212038963472158763476670702544681136912636836282222752444643203039672658399424482285350863283845661907266944022475667906217976750802983649757636622450200779643777893528116281825911911530941328139247826224866836119243005019049625057251727380318127788186149884458782417325574648809161395861687269692169095618116901096583655700808143518550989933045389086852357664126900269671856314672868737926414660652169521698229093154492770673691305118646481547942760152424242296793799620344323084437866367521108332982002950156888046069004796346201267865252845122430062502005388014142746847938349009714068477476983814549186261147419500612045604256235251638565032710872933860368169879767463507422376822590968794469242208443260561358302972232925835649384113259402623211195949587380565859848965634456759265614763841101067810091204924632524588008770310978982205657473387308334180060328755656144813108834242197860327600941484000682594971157473155791538921519305075606064266479135125731866248474512504880399139177208560969464666510833882227793620662928797133253406849849638718224415375062501135151054861877327654926247052102291133655146271742136347239197778196482129372954985180813015151038281913199866152480481982202705141179251988351793633413956331599721886530660687661218172428397384190350929053724678874942222750615224509353224190520307176469697468848178660817890922046515572783630507843063435246307955522719830741011918923466536213282124819601488241747403837147338542478214086651670168657272852182891052840145126207809507842742362377894355855436743637180781187690442133568142410073654112531863138250479319891826594301267392951360853197063391954729442744221529124947665656970150072461824981599127613710948890372843546469772494352536447767253520791671116856631433687229948074768735956502005618174891653934780503302603936971729076568395796519866372947524045408015581981066840529914414897637174964870515528227777538792041681636624847756500978055094401379624781198020282295691697103884558136256827965119584530683871781706880979837138171785938687780248644733353261338841955657782023043433525645724323906118710519346863870015413766192220441677332724530062915196760061938253672822137104202460414019530724263049774478366300419270991085302643120104532025332350240850753275360970242241210275017627500865082230983221015976640222272543990634658626028157923616299167078760116305716562645350043613448413605499581282096942291276727009748482827929912848818670684247199762563617622455789583577607639737790354423062029085842291531664464343729304674834807002538053206261127438888254939764614532068226243843336308226985820711162325171773304749307490361363340566142965007391212452966880982862601063642062722728690046671934049307522921636499633658218350277816078127196524817813916939797998547588433553693760272268437915173219777660198318921329827253385436648044932102507120783860757386402509698584811479463057980324742361772523126755797645921968568403909079031471665592349486712963133289301157157281556934674031608868908272249044772811603728165502020282998344697994842922725854383322116364177955512654372592807968789518928487238927235313252159837955784591118685163556278521379269766786807802705207883713225238784179987210958628972353779609181509566914916927883188180885010082608033564093717284132233486325644723239616840785128341102133709153130290358990232151646668668278899960807261398188730599201940935476784643785255481295220462226024655547349579491445294322318375165437530731529376635101080994255664350041301629134648815013142786122836106835789624027689407401528122150604847921709335153423817257656951896994716870403539789915755312963991134800566607710894582683464111807871584361349575065935160326234005245538423067738430245804358624916026440742572379084163862567279478884666275198830526172460985676055127089249792675672704538774286787041073741989023544480229627343017122996832453391587078150337658268725528298199451528931254146487419876979060749429098275333379411941096828851077592914448269234619594722917720484954642737040897125044984792522443879089048166824788683913628982424030289034378031836707540882069894729977951911415897158472737219027384072319624160585888205637281371938732897461177932662460789465399279433550454133875552963710864606748582888724016867107593974218579398905116912506471413133711098034840549821611784378885709132526384601181782182946670225071352626770421117924088089112611593158452882425010623384669245959337694482866479622057556657702288166420039822902136169378599472837506513532914907537957403354188139999708584140273254413898843853306136893700904022362678388981610351170799787105774560229360844453630789506107961194663981217651060246267686062136871210344745659858460732320346678670809739596897063890966342493032231915742515101480700087027620512647631498085997900594349931401749032047736658550428675494870014099113081650118704117830750032552068867651929267372404725766375374189994823127365652904895786448918441588364749858714814089029273159235933277785431676405180399407358170708885104874057126168560424490506504580285759069383520632573818160283584321799842511156921474071449458918797963360423539814781604263914045037133920137605502361465894520732052456887339484390487327322490051907644674514435768747183583323511473249815227191824476363671972683779145186121245612424719999159429217536782819630415738082746263397868263762737694780714170087478422594921487621449236558315217389433643430932974522266730398943787846013392868890795290340534425730633451373398064756077935353448632206491365484001827862629239780366917270747304070780185186007371349914514493272219145931409576359474142984761241095288115400891975986861333675380860158797907605684257408500425673652008358847346905338250621386491779599387675975451043070814975787956796364696481018141877747170556935154073152872854002760561085989228554294224178161841618413394138473036713240869588886037364824391020016757437705273161901093052827751314534361879850153182256918540187477429998147041993034945064904614339822374125656699551668117947980613418345150898746813753677785991803653060870440639692631545353889808014673851773319593760726130691395915997129435156195376442558928757410849790556326249177502714206791911981440383148594649669158854325391583650776238855100689089715610603050112416625877814748120481911187345571696734524857664456160329442815131108493634392906557131677098385380868711786304043914193924775864863158627184642387594632032309204200183672395664774639912404904885555344834491615477978871019683795096651878019764289291221011346785910731666944183475628904708139231084679768392385909510562830196087914793894281061121901323280520792219363354637773378527751372113162259926802701413744665229349567240341999220898182061402821325964068299193624172190481672549970278756332842751031706845863506748929024673634723061688057176998268992238289516513573647723129554451219775233355419433531722295165816164711580303149374840324170316230720931364736695722641475528865866011164158428469538356579473280981802534123566134672121585257313973949795843350233324127308950572047376596524023937526685512647381325315683835532168880493161899911472411062827031952440129571878988168691121408706198547458834624697400412210327906845927498362974218563105432712075345793736319366784159625625631444669649547282169319156839051238154960206035554352372865135207569048080547426737211030530606716851090278046962369183877262874195178573810191963664483884320237482804508849192713613404138767744324182576786994442704244201795303872399158256009008048711736149525110711937053134221980266803067721425843180880944842602654585442332815430016085990042680583117669588746654104050725561200703383705399059037117195204023427545730373856906849964233664857538946484704069724148513103324843210923912333888999055393972475136807292338304948100737766966494140183977650433829205726274825782045532048128368627635302992262666423415390204485754430174240016326981215423792318508392608729738114551575696859817804160381008756033178133979064590358982891674182344084232537648486394772665098792705127283957565371643367333125671719988633469195242098441382001605214086881576643867688970913437599271385316232594851431262456598812754151985573677892801984934544699400315341405332961938289986045520700193083335936254683343903394141768601225820859860420084719698037332143852633774587993403071735491580197496960197340501936186256519553360196853032191924483422857158838792358465394330339057929334110982628016070081561125421505854722992169483253591460360961592228753764820159990027669480133504419273581420032464689145569744761169895104046156310838023567677718501772014231792669478586374215323028629398133475623618994901806523650996791524286705708388705651586701653841048989692369744882262654268171279778219981712638118072280170716579028253088837684511190520974374892527414866650083461923681866649500981770746063934252050342937019463392309922454449893163090400668838871596086276604478578804928906103067023880387838274700037985850982004043123624717594205878417916438668101825542813730296001891530375517207144937764692278773740040870709217430090917431185656493550737310451380726825523031416064490765092225203112931651314762813382339912548749592858548203288560470369397369668964712502300181727496485097725302273759087461201914070022208881984330022898109538726791664338425998063422296227659010277511825765686900337062748511251308341919304557508832285704979675862666059504154014966411219481122330297701088672284629624186103978247825126224036754583447335469299893193669269007004229107299045961683576604271195246762130613461032827908262143259075855355895382831720987636060156696711001589946949735267362624238262907318034100172690992416044108337716858767877753513297204463924957271470839877164540843741498575626288155872085797575683176826202003200165671281351247721114880104537030441806339504896511373015927302303284065443824476318664872793551659438303994289442049482117356051297575349563553610552523217104939769312151466571846208422037397096359526283453605367455789011501606851043693534956970270771725934148764779756416204038909697704436882310417180011715283766616215405642220866640870166418392221211181564454572890310248826303268156958761378105627152374269868481992504355866680596745015308778921108671739207890408289142857549260690770441261441859765092131547380732825971881306524660249412102700182929256767286070993823516604167610237646754513050997234872264166561444588911650248879358823831078098335108062349058765476753542435641171658937145782335606355327409913790061748715815178724545799158286749510674509054916627695142646603757031199863426628352604357203936736832362102214254354584300263528209699346188633600822185838347418444587548530357380159629863386283832812674911166741470153484644914353732646873646825661934708683316657951872837241658952631251837092164119299717269076253269986533148654647732421388852621362718969879712788074205783838543512956681809205713574432113230185631143269394320210481671894741250275094499961370914406920188316050260248628285068895567407978084110054288455938837606778402760459388654275064225741361868510728442497573670874336367469104003094626781379068394234936496024531583864332352868117663200255518568828476697836851218464146896214720437303775011294677084113706254066397961871716476234044479978168477122259693952517282542180424927787293653517568764283242140570671339142592690946426191127072413677553868279161718764407511903812688963107669382518443314346014200626656126427723335083550862264010986875627893338707601387734534182988790269971156591879452179670588032459128766070579113731079264586875718376056778944285357761763251980118144956390602413192570053154511896573254797452839626049481640243662923047698720978183531047177251146270122989942691266429398692919969364170654525669490476058008505119183467205100791866241021445156844882267711315707775151639149176750716652836950812184761739868349710653702641229389371732647290576592304466001535305118078616458090919359696057420003880741322640543803000685129630919578048502048676396575858135233408293438566073502518418612182509369288870530655443000428368817164883507498670930167161552119037696022040830667381998330851603326301324804346629352971033860522670288676467357685270892655968127659755799059475488649108700690001897061399139950242440714814558543206876546743683042146794789741461637465718390861911753455140901891086862326534057260228344390335295510369229028273249988055598167948700251805320590717789154164225571881965749806082689938885977540452879464259295065333417362217270467294207096830762940216941286457875571604925808176456622958692651385661213744599094608891112135953344794119950066245022692537616247153774772562948888423100850302370792633853591118741035756507394985835370213466395732672076179921820011243755832904070940584851752928027639184492561092655684346889787891492191425096441769652948211677716280675440320846849952536304388631037523154869292927191869438272785981225835894172201913437776662180753524164316258001149979695600155235652238285326293283620765778746397206278536512968090527410325399895482858722842599593758065375124405745186050034918813868809089255118020308891177057808945287485924357231326478256646550261593513209574512806568130027629844930546427565342904279215706113050251050894606851604991478945064336510645348497302241881971471556743345307940262308072854557885760108951183538376143476688984864549939621994852643382525551239012701331305781069915604841789098758434573872365503874739471244437330151726969077019995238222486556548326277212655395130230109867240583881800876434589551807048506079835942408871897925937671029097443873763772947170161891421933450406821189305739008595738098392687904580496299907584629741709062747208760209466379764929957342248257709999055196123334482669375907406392047190842551569426050717224021540036533279262287243325080128200644705673218934376075816330416386067891968016919671738227686603995283745108482534642276837317173534285846065864748636351095707259824249124263939842292761406296908064108544632646026428219722952785574050971440794392394656075634596813638610137010755988063203143771788393009502025428665114903155722760749596084527296327641473135522512197041905101249738635374212993243488637973099782780419003866285398405024309016125288563329925674090282473839034639061639203309750844594511897299624829523209407430861941161207222064751935249338802442926456694109960278691575093496759813040534876557663203142813591380133992013193698136083571364483117111466199886651925232703902360790936321257022137703085446982026284342136624974058450012454802302089498936904014745267527628896722102965366099353309699611487058572402642843847617344810119497308885874306288627213718133271750097539362176433729606941960137970406967206088389761153978149167042279987954720234022001640721425383015617520916430746658989030401288414853132502281320057869056547372307041076791206907704336601226196021626642186452091879801173411098871666846040335428660450049464577098189297583101278963625413417470700111427281034268627606121644369000720137359430683650950556094213363576985675689125303781474679626019005090930311761482458230124514184853514433653822184199123305041820169881359959131150778728872172741372345536451094752682379623491718001825189641187462500109376992531126221180796091517781332689522162296093645889695920553978664830411401973153244956353650572305816681010896421412840996247579891132518980618018156724818802078985885529592980056897765745210375126699791507598223664882360044416637176059840280943972946538310771285973626762855764662085705484525354160407031387625749317826933939610236330703253666207468956048235835108993807132954079842394419553086055190649627031565739048917166410191335143608265211661853762042467604861273768453441509863836122836288186820103742504124788836578297576063971008612197215989453934051229675251987432473362787321557852045590542424319457501889826958747000338567386056728819930002082229992921463616840962242678113054768940772878698971714874027916642304545507604071311675905109888610286114169566386795792349984988405573692052444236290226084839353901314441590852066103910004232328073523607622205035713418547732925730551857947400772851124480362561075884364599998379774291662041660665071725222269882779039374513018005667832697134921235996674645086903103157127672449214766483531196142782494578557855531368125234416033764082347340563574989831827510645539032724632351758129933475134765836862084302212013814254387355376029420347842357188747144265633161678718130611973023503952148796854926605237481803221944167418990028207346632761216597084306475256840668216815545763480461782643631321257515880199021467486673678489048188198034636114186245727625472322977654497993100458907032882464739236625760938276998500092134954860959736597217381749902228453346104127425697147905948531927633756870602180543727335668575414140473944940015788095405959819195841516968903222276035915814905427452083522206947129098917018927403161652428232661710450922608319781346330576548874329481941579983103734545239245644721410360598381920054025135191440401465536242030024214998562763554052074653577324760912921538391276597402524749675895071472301463372987365738388858371296111460543447193988247243588363018065766694004229847808681524491795376786888195703919037959547782077048907753556680379219441836502532491908498727571417580160122267873453790099974973877651700117652462634660578093901828195100973759942392187427234620375436533982110480300064012963961380705147743030451400654369597592054140341633962066113697074777514488189290746992200118985262347694529222144818950884594116062850511190368188696213601380919714612028480700243349269931088104475024156995916387967674452671517585638383137764541385322600998458262291808842808198517028211372194212191319782109457600132188189407516237956159239987622990134127774966987286968739197586730594189148231218677525708414875438339851554393213973432828828845886168307775199505302354238138325575515293576965144857710461611439172943312873564045211657311344026860612353131271341704457361755315204568784946922382436841214006007992312099418488559632355743765225508905209672062286350058829320496936988333183131492345205028561853438875885687886176078958000058537836798267753915763880824991847992237187542103680641589561862792279347570831522184763937103036852119955288628544430110050395257160301261262686361136255663830115974642756054795110194477587409255453629854048204980964399858416400305791071286347602151734480954228260791424474039681566949083687294753323737269832978786828507453746134217826415491473302102650376594924428691096156530784772942553708657610664026951440659135462831596031973462754718620123033364789154157399572265115915393533799037242440073732498478244045901876916914563253305681978330688043706221127141815689094631392141917246829576662489585960229857134787833217718307430762476043067687808432008468112876573189640408312430957695513335826040145995076651143556645100171260584099428417609222345085503129238741089620856690557264041552490577128837532374954189040123107893994595633473217872705124219290444478193670317312873142947967714913772898658477278240093462872159757696918995455884605796906684189052017262648545991546183784392941374041020228754608468662854763263803615865544514489959854726068304341379033079256875899807962668365536161982612214477427915922418485597894305097096228242779748098072949102284061845410164752738695683865451943224716424499660905773542782606321338848859019308855276889640832827334492642867410456754585024232737297943659985179414457880454346542091948701179288037841822716359270977447089940138600373497766445482000955856826102605967669719230876446173896905870798971137323271215272448156885646158062673002336983822987781124655738018081683601423823576459341242620782440271724639376544984467207953113119111216305301862173207617763847404118898621364953774659602329361004951561421393004608504701020850723901657037096972229937399804885643313491041191239161528168539263124680994293814377394532738390691289431335728312307969606413111080008244553355997333482110262617217936021333492196685265453884069584129680426919701049419692624923886821271447055554038312608953551938761718045919574068257828584257513450436713574788134716200303533025941982716171725040087336805543932360895648445670326574058008627818269437259148147568926138542286319315051529690516936823814168562218440488596493258170503389504083590351728697735136473918190711193511613633607704816226248629792111933176477889570837972485075254827309969172549712042259522605946312034030641165742415362138921908473384094974961377630538837764820342568182756193823952891494266496517680908920499790835585395062442060442226027387709317050203180889542566583704984494532938744164337985957365089848726728640128492048257915397490335230022994592477436654167352446506849887878511093764587431075566430979645465598714580962113466393854535297483512303531574077955994901583010971463676022735849345367048203729729968789401655367271966870222991298635982723180052096890676174442596366665884330583851998257975666054897447673545100666636346873912735919255433749581540506721802226582724333501632935453667061475982281909083965531240551329099429446894407804349404215503199142507132321257112309625728283873445427839102059510128522256609149927090860276858523258752009938195695897195140756013674898068211600917373963533718496512313022880135745244864587617134715312133850571753259635091353776598610046477640349365511293042119099009736668371029807204419151828443058671874144090553661136220948027397108419963911642338386742758242306760672488259366945821489298183945305217251651060866067191959622922142040927932923949432468121220115939097216419716018468512450247520398489935704053156423749376861087140442507633902351634066764380142129410971051214122789804471002599024580298665005093307347112426434439463747235515013450310073200318890694582627958045144878438335404318458603489185675743548368694505763571702274465944217941214705688951928645756711618425356594275824521584922394991960675461734816607491797720631517429178231556608915489420234920160987286265435886556498761444373783867918095638741345430031336640646055178384788660112755748599904282987628907778778407694021426272841986411927722936329978428358584037341718869915456388817531968468990208673513088497421382968718584701925151903602331710204590877371503693004753912298984185845875099730387863320918268492551655846678952966726442177519402660644529388861503952466927183654528413787009892028931574934121225337310062861339510446392648757273092232785846178941816600073220159398087518639045905181231077079788920142596748934406094319180192550929164511976457357586033492905522024327714240849737863419423246985202012134116913470591463256378948156262864213844967035610050509457286530804346118897963231448539423917011044416638196516645878875405298093805185366744172302704713051728709114106976535474988329003317873604772915996154471663873821845434482366273638442452629728303645369072957682495408930819812403047400374005944533546413534379458232451235142122404437031221908219909784807277866484735770349589423558948867377423359872590962607586768042348869733901330728921059047756937334747507270545738338947861955073008483866095429542305889214340409062882170368047829622268175076441689331134308925544978993602596745551071919880011525689477952073261235900712296420975652495152914072739565008555990780853994697291662100351169048928862231230414513789781053000043481219387220725415564051917735548494579063272619264940927951216219522871045329043944223156841160312977888610289103674953161157684943717240110399984181976341606781376071523676629689979135731280397792762392678886551494732140572245757922269117381773185867350427231110233984476070778577364552796276816822069343738353241812501909049232765214952566633926350378047439912101021191306395492206328897013978082956596972490193276630700014084906108926303678849652752799154337973515625510418226753505539765171687065028819047961648870641320575795499403451794153580906163278693019691366603890587210523525180009391884135745776173458800642777144637618009408172868669167850074631456402590846908363283562079675819194250417973759002059009018589723216281088042030611340340982614861791290645761133590739256450755223096158960823993549826738250072982878709411909630151415287622692546698436113195605562068599578514887799970648494263236854075320918840660686478794560593312991966695622853211136809039681973865354651752008543674945073359441722899478209813396671624638639385854976737995323503598792035026569678358723632083845724483413029986039748735779336465241840155098972395053114697939356520804154514694245799481576849866967596475743610268180304198915831209905444720709872946448588201458843644607680234113582353992727507433965732532084354764026359845858146177552142344030994579193508849942451383919101208750775322035755274018944668480207203978262599655103065303091656340653803469836220930138111202622456927441509033955984930058921543810679824143130402685514059949725337987292746525270506560115665435223771844687951314726311329129915417658921072177452649299886450332244688792731523518867150695519152699532872407046409601203627411897082461849677218198976353878596124743304243916947806616946415770680485128521752264503674338044361968474487372763712792047929872513142581306976154713796586547676380905946704556897993030189260161705218821437172271120712900967541995048450298939005491387539542479979763888159017830619780633575700390035671710797230345688695605951630801226540167097662437634143768836782396149536779396158631033469630919589377689935827056600493004921477418465838012552757445033298433603289875478557548271609046018848035563958147975966093065374500943377549622842932850744201896337412087207374068482257281550305080332582706620198698303817796331813485393521008888897292399832012895624627399008790160567737021153103607440707308509333457550650310600929444623875877966676842970453971164955908536250141565864562298113284784121788599454136508847346288388392500317181724384213395252724308085592875344185285958437899519211531713641697836893845684604253924137476703325807419879483547111652701163759206411544344592895337043823626518191276778700257905222529434146022146315527107894052259458957441280675618337601671702190086681281158606832413642377729365057649888421410177087856945496709270555612030753670224401551416992618119480359041962802904774714190109058833347335578750061235266857361061921689441086594200798901939934525879894468635630391002613254569190184525333061587425390651710850905923611105671063611429914536624779940355997253063643051260946015881110960391729892039848679715739365985772512669607213976337985498028926149209204353508938705085927666002186988884915390906753225431205825312211398577204179088845560401961535712409492864155892917427470335722674251018465243607829206058358205245084951261778143500972158424945555137930394201670909175960561879034539659632313460064514079461324551410727864345096539743157271167380706675070067002658214195672649678805472305915619755171795131032207389661671986254238365616336938160888568997015332644335895314432806422616094777842769652594143898886932443506117456386784808365588404116829350287189952093187918349537517838172633184802240258818962900063628917220917223053666618218387770201545392553931544976362923640917014579232694212209942185599879052018892595282048569102724946055623961587253200245109949183027083298133288426338377998112546373813390586623867817879330032046537760190773716449710524905667720718626891801549328022977201052109352922512090777485516506970739981554855626642131529257182023533231477786217248475668316303927471887471354689945887499175216829788304623437246733194816836484994644943153825764458163272547785099210940855362025568799623405369990897669180736361748505842993209148034540798386622679244250142856007428834629706055446558139191086940710511589991894144278966351980352467265124835345623023122648120147558096269433872192376288191572525798480552103888696937330570457887249890183361818167060558498196509205276261876105206057904426590404265532464069374580712761848390678085629924301984883852862661206981988008511980389912029520466946786212997259150034268652192400996812258920390297808461808810145632987456886252213513075985508255437541608977965124508255203870705277260195004710431107941013101872656382959610969752730883755676216501642144762239563566604467270409174294835927540009947640804704002330151679672905575388225679793537024925364935547167790386508181332029497151422351182450297200100596292992458614533899785475320199343855776754824623956352697544633379143703088841927613365774291515484455589847335421838359355582989808921729840312930513356563384539379822101140376214103117834235265905680949054561256304247993557418606049126845844767955325079063719753346519268234550795300887784329015467634331753434360803419490413450742951088926372829702701628361856806794534380314974423568621390117135316639874380840401802228876868011207137996424295326488263961047874992554331117527106939059936937563122031863657375514948067559344863856892702449416001971257321430487269990083760137621208693750903985075915344125366241565211639077293746111125312825225947105532601050045869357588121890898348528285409331330012204595031965871059726993213204875401732903700009930231135761356127499296478253818956998718984499854166679949455376221623720267165233468913371204851729632241762901405140636220499941309551118924987844142247203005016942357678352027218369383594608323360979604685488714552472559459721986188769460774948530324608931452852401170586210068267352726817499927550036767855980195184574783721933070382079742524249435415486392241858452727609798706060616399431071157382940016672239609036731678744623015959001725873638506098022102135307700479911670448126661923658702425664770654930236897668723041395865393252761140478487804235353385181710005590333000367775122462504644535163622565888784693394974546676349445222985149822026392687826210062226504503418408939235298299188987685393454432454618830679110792054425834608143482558987512396414133346829717844474807224375810413851344988078644037054026917928658511924263114700679572300899601264766722871854860620695744397196795626148758676691718835605074309426015246334964652644696587518816191939555679164740168078174279886853499834974755956811511055574847893561859646442955148127693233742725503273495399621975815504007465883318358372395416977306710262977031556906117411718456199806904337935060500683051535149370028190131667896325833969675923793872128189130014351735896553785635575512325947819561962145934400700742026604702651501738281098905392663306310435750174698915869479347301214149071424221486227763283990184460634109721478155219631905991425102482230811899203903913656039843252685746797967723300905259848136906797311542413012671160055173840612962091066788419846214870670453683919807173228916386933006226104178194718135411787941494370270497484523524621345178291182677313779203958631993547092804998609513660205438308221778240746007259020427016995310084467272204417041238180040574915409887308155724227040569518213784101035756605865571040134586718565459600780881101142814067915518784030988761320986274463818153839778958555466029567249968085349621698854346909478361402674877060302515380335692325837716147611527923523874554683650987481570618994406207209061882939288364206162432341397787100818139999213527359628472517443076378834889609561419638031484061738022871185428662894249678502209961141461292687637109784082654814176633702245881744888347542111450788068984017931541075233326707839857706176384740999149125252335586231926742101588503299889414810323935352777452167775037178654937086958028241915851107987051442189567829257154834905410561613242177366563328576802757582866626331545339383143216475216834724261901373938171468556828851011794325940860921138308758090493799689827140737280262152304946173065505875302780039905900688455615126056763896715427271824836691853018342621535158712397252482566181643125383301699395845395049097954704425016308291523917123818038060249842297200005825231390057265325324556275741831893414494912322502515967919362196895107414525913291187183987735543061811525459574387017710060783637779908295677584529869704215689899339103869223914954154280755227969355847896318828278089652296566950349232380102454686876583624414596466380816865795048997913924570384900322247023571311681858697240667351231033595408754390235849883684802223748715568668044452338295743875615777575441739971230703777296893371788301306247405343366980480995697212994628726852090278114358972690887049232196900030130636464072334213063927037513959966097963191243583173882168260110998296391639544625252785222412531426614447786620315474127361867968501890005970888460336189375371246352406370712486315144625759073939917112300212414383141704422659889150923292877186314849156581201273340314021149791780239991884901272194022801529094141007258178474282217644687256092939750127347912676335265916213997147367214546018008045294403937738530021567908883337224797817022179837625477032782384251727463881494161056118702196090704266089974137270542002886064558050325648295883883255916514533813745935065445613011211552323936299017052610462789033248939537270413503186523353175735022379272130131593991251564117316483175684088312823462987391276874567081976589573635120206665987796697313722707125329378336044027275676883628186647800992511871365078556940333923268811610167771531472674091442884538520820349788536466909327592456355914965814617422476309994110853329558664269686506105740872021450818746420927795871316989008584322992587796535172741578798119951918498706323803826061867210910344228229778037603679172648829896013302486003891486141318972363795828654116218798433951968865412354854418756888871233377473090787302088656305584321848205299317505586579954673317788400989960293516936999096381541345603151679994475701333996793895162967085949150423126723340117929428820756219681777178182101273416937562715122016993492577783353268801446028737530205588519481385399143436223080558005743674088356942207290792017579459694230695538106005943306391798490284442770477382206394961041346919530783055646816643624301801093236394387501202012620220777203557348565606735675364151387650316710862397311538825312899723552290965804901516528211114956721830213949064967099004418636479962854231465334768632185632185906928356525585732701395722601667175591691222989779345484838260882817675469955548694949210158721763981090315673096910535631726078085759581668615439200679513878583291624348604742362671258198052063370908355076682203455977669681754426926862553138975889576440939671391648955162856064072318547472361744575586028694352116700826453257897860505715382066584996664058857820609374205886958979283146903583998029377146255470584011467743146133368682147205905205540043248631234708048199306464286845197571083316371192046411802372948761975362859286557975269777007701305981245743072543657825585435390437577213138626660075989053332501839446057233949427861936594042755965541402040662368954897118243135975922163688752445230723969007766745054938208933351159263533465911140002307861174426244644693496144321068125145803323573312336872254459800365138327363511019677242139961657981985704598288017650301207665312930366907097826590581186464125648126258237427984264925950061133051526518648444599057357261459472017280448154858416075747596693301946475194467059131590305185788222011413801849555425308723816105476928885287669606424337381098879656491198493231614487877168180097330183021442023519875421421125242801989194573159337043722530163274910564979991929968871327430522341951607554919745194282053921262106634715730573347285993592847586516086434453898794503204134466906566935895385341494916451139284855853147930229391783679613343497949199684462686424975346242362928492339970804075623356260861178258317250406333253347013098933419410072903176168288827881490770009318407636992791958717610648763957937375078431641360463143735960184709426444670281480211761154197428903561683480190583322638759094520324164808526422669442089729681749827555232083601824280696147139075668499980386497885751335617478646921315394806385401321608356245562600419513450627106221115552101888710006276268684130659756362276804108018837633516038312790084477468732364114242431676259306480833356217602831973930100672357232011436339678132800133186794058372784139255370730706798218950236226766075041234054514892672360248210140431165022169607598703919609077169608283333383831577086319748307244123398866894492477106449879310929046079737497667822773085263586992770434788429130827675372318248387681709372051605511040954353750840283303531183882328946780423850933770725692219356839432877856047507235869748068170369272526596683770429328054171974512866150563641412811041223562283709847794586620701489004495785588031517869159828306835050935808509046567107766606864100473637483891256051933193337293470588492970846485288365874964231597537360892230104600987603542590092166868144524381422740120918782822833111113062545721886968855560348998759935584840538706239186651930520224817717582125767838296675472818872252351839338653307204946188971456782722172607736530905827496959919204407455331211128714544719773693125486297804791465167907039412202168604139526453118212555838011424384474455640206005459602095123241793654684811378530361075755956306444335109585855640356748334362921223538141183402311405050797701919603214408590661378816592977522887087420819252794068176777293801247126992505473322241441790935275778180822073573478819919371472613721901985063785905554123154175799953426445782403975341223213456911485613951919466514965970289950533339670365397199007549705652605503247687722790028442050822608235236354089449108793569233096448127253262377908560832626830377319952092465679539107728254333863272680221195655071059109037067706943773685068318651019197902345649061551229098144558373684591103960384485171544638125300971467120611558824233978156624065180150015648708266749651936906215217732079841410488441527775064013991146541847202987840264095032662066377443922239196700937753422655731857877678934510005991930933861294199945324278494175583280276245860877250678547896679857388534163198099572780742922735426389797228178789863618350569521478884388213874026808411915382681918927167552250205352598678641982579101290574219163736398553893268441976131880546193196019615553814848554260702357481825099333544939644875324085197346291132405864683776022762543144965227431204470009088038048128151948144580830272957704249711760468121302079086370815481251077711786038606599979586355056933136881636125605491297415417797453105932253223765548346792664695994284031579347173547474896241676320943541072870691199012531278881857909807475923133602817788715277476299483896910608731702819010313821005990026621077123266447745634692972811704419056008561543778053824210736269436333753498700280771779863657722341228595816338538744074359125138036507441277041341141770777019668584241835209591823069781229295842531712020799903622918649399636513625407640511505626357605279087257779521875178339589726519569445338170790240384195126911817578188575623665535853795685223774427061041598341759762246587786621435129875956259787760677252484348656604423908541028563052726083753258997561996392938792317940726326353352703619364924541855889764568866422974291082159433090562672259558573859932347914244690731257913983236689746010697598525331752545315271650900846260057569945820203777928416815101241382411371724963413846158317231086401078605985920100487542637186517823739884547817585534493292171891370627975206103590046751264610541231218388062652640552511489226574573146774683821725208939216674885740316568508990010466209369318885124956901622370906478586055341233050382426703207104360907599585210099838526545161118026937230532630154729770551285500884102168854823221990189401154612016869377215473934205499162926002993616057209268670753275395581668518745994257137342764672524752663496303706927855123229431555170809000373200959583891095621698907285952655646517110883094313969316010985004382963955615663461077452647738438025343673234781984724546620624466254737195241126333696410125313365180456487258985878896681446305789723525206808078723031798263369604590097865299893283071702343617487039688163070483484395154879883065157236082019017809990583069574982665790888531613105155075143037741467157316643665602412739411006644500279185117164335546196181297600273266514227172989478068942208999373649078424250819495523366022230277907712861421181427659197928011363191419402010226546763200811158220641066939810551046453590845258535803045537889365053807890882003923332913973189670621383634514341022800738009825253622192690095136349763856959948845862152174559295322536036159183737810513117414438413419000555849033874437309930200703078861461873251833098956271779936475927857877155190787630319646390224036026577096631408853322322693409415179854191513400989351532959834991044102378564644806932080292993357024787051354659883236586976323097366938404609883455148986790261408403721996180453054059247485657438142421941849522491759796717751992363950550367751114257834023123157607143029332637026244827023806121467812990317777611655535721233276363802729348589623649465586138921496303346048999108121917333543011915358211361297427704510645132669487022961169039976959293092254110076289279679606574641049913427664475278037635484180598116713923315767737520422623309495266567254106203102047261055046895253919738419880542776257614616498565415903239060775367323845191441719918943540608267004817905942906693518763775567744250177477057759649986359020056890424616926728499730624726636125992656256605321690148564324747331506881281220797646434782044960536268788773923904738996631064112039719764154489334115809133315052964521625932929652734745601309532570718652396947712407836031691338712557551143959787637372146499362501889696578678547441815464208922654870236820195439890008482744947716470560961555559234686214380909296332801945791720473604293620718684221756250325858422738241938320830651552826052708716968954113392860201534224350615814240770745379533477533906516980898075730145567921298873807357488231467031078383064760035929933502901945870175826304014605599346425915884651266054810480716198569501941682837267116792906096169362027674801489426347214085505259550677307235094624236417279190590474171862074001038248130945986170296390640307757824929389240159185526513384497076565645413099944116763461110068491463794057692625135247450503769827984675171795326283986158446970787105773753755285130776742177428333517808135177743613638900593200840266353537619377753713696973344206784160499630885625378730332396816589179797948593601517530685346895602306467254351962446994134964267882492802398156381370621683946869613715824779442933228728884373215288990804194752802342646098858448150440460192541389390346753341528674706426537290349324520922410431162650171000462264869922720728812031215845958941543489335564588554873574303128455778383380661055153629520452292238572990473567602704511447998891111075099111585775070495419900325431154537059958027150984522774528950348520240596493493638784589210514719280241485573840543994609475584482678940512192522600623371013903367903271021682173866773204686316566853752627053103931077813407586759258520854915047553477423940417932678680298074289919579183271085269346735429372302153984632317082832088863604767620076930732587462844245579143793310109351194279990035234661820965086249851063034098098897605025253062076084398429189937958838903974229438110475178345145852553629523655114120218572860914357816480177799273207294623879771177663767105585152505700303835734017541806106667012163790848962869836584703080860865116065138852373334626533164174244598787991690617743051536186279434249197101047199374080116051829170520639311917098646711839174193664226996470955518334545503297973474424772651773616588153804357635760206143764123221275761155001987859635914221871182720318122937531396064555385808766533912148593259145531850208018376336026598110145197753039381159816725623413426299683949745037447612369163797889986612183423002204560043325895870082434301188533408109749845661220435724249075718991170737962809406114227209481817742451081075372259757980481440743235492799295029224912540784411161758071080842093957736078682342257723247187735678879728376744724038334017946832801750022232085406358986201778925672344780208894896825279695390344698761782250169610344086021154300839840604991807339482375019706669035702136201075638159741425237196498090831961348302307389361590359812486209776953817837428572167396180965972026613199913943906419027765389196191297279333149892924776129122279534146602307813131991954514402429047982425990891402056280367115066823596421604062428799579468538768290767729460833038006722954687381807528359962584491363266355389214006491091820767929121154174835686977230613111516952273514097215379857433388496076591033419824503581713456428527307924636471817509321602505846480671007651021941056515763991450900682546533228281029070784222715405180306656609399585059009765845938505794908755083626069471904818636043202125143399768166773426874995704453135727054482316204736166302869946124121841875625359694252938203130904282060481681541032051234101569177925547881084107397019383526735333953468922474676379072354194219497587393643328612952530807270597356229635799934677790335397719304803327675752707486276909066754324518077411061605612769119566312138084430456054642521709905339219927203051724275982583657281581292253665273202843065383406638516937419719613524320157793235144341142141553192029511226696707504303660545095037052077356665857262201359554521465366357374856533842026775719106636627728054488081685170141140462675273963898118657840191716060586770750514980837220887336776838359414599238275084860145722215707655097641435063264179342045330195958004507199105784841373537212086836496773932535736337480251746294980113546623363031307557153639745731353267159346997199252500172890291173038981676805611393488265911003857644461591408435988363598806419288467329534413095895837325561442669903028095676445577770987267431256025652317739790343419784135663435339801822135752177349423770738891176341449898636083718716600250571395915757123514126698006124003082542873217947861720215086445026583554843751212597579620540150210815398617055160038866153911418170715340322461596717538846146083503731502547481109518014788587579415362534295077034409396430534360180086446795021300257836697810703369361615411205723665141711416608171696796018473329326823918823189720545262067484612834804429833888377289074119978753850245195526391637690893844609461957244595943927297358870467619145834933021822972489495222903753400385248021491579424792854647110599658340484409426874288259674852098337227663750695178816935660170753994173781946809753039554309515250701446594771230552601283977911717859068256602783726046454925204799381097724085401581418341616734413468370156474379696249149830193846436142064362136170045596992558345578911797211026377377457889912506665735305338839259220479694617664312701011405795221411366908149939230966823635167759764121638716008054658353638935479146612406274155239277500631525404280253600623815101864726660301133326319774428172441014888360736960818626242980065298689415248313416863642671557731256801719394271239197830012658651892840828668081690260855176850117096917069317888424093195759979017285728496994668783777718444986328210969130719010220374853350114428656994945466780175305205474583561995404103566170992195820480257630089470505469809273550164906910822582327098651566950943100244271504219031431333006707689602684368857994911992191039325547466959038130918299240093060781947604571460136394762667692215097492206638388409825930824532335724921875161127948464815997024328066937528798036105675031766303522081310435411706181989906815101183780046071047128312912236234995071999294345814427467186968107466368588434488058300295880898498279637740263730457870345865591450585072281526687267822374909843549900600108570465243342957717909758821182604981766339635780934961816654161345970673477006544547129227676588504270866615505722414117587274536394803281230126952510214157398682577123733187746255581889122128037258055135490697826518522122922141779237431362481782109304207906243989598800991798744189044632774831363073956546730743207779533945700327995951560749732651113993270575000959717757274477140079378875808200287033957754277181632823447476588949440706979382192872213674281579972718183789432851403835665392335855736273399715827371961387360629171762656367969198269172250080581437082018910290004897481209846455583345916976218536759291801789527326275615523883261037324149715955850375506947606192082869590036393768383360904087207258226207764371085788467913423473262100255453960247542059895225280297533541677058431200908948601759750872749582113249674841662986530062735114500607567965801260102308105567221309563384058682416465690432547179548615812254126589931940309398524094791996803088143171688782530899299686082184749533562215052403649467413480368842128181809082350524234308610448114241770134780763790475166765521226723158799503321810926046972499706889764678633712100676580500323436491069223544129628621605077200675897238427004763613240745495053132783455714578525835061646437447958734267006517958288251470873629472325964956643540836679202491353982734974641297636432625765897067247082138282796523887196960921492864395613780569623570483530193598031108541695345438121991322338650907846983128014873890275283643316494226406289309848404318116470976083359292803826787853643695697856566757585617269452604522021911933327588445328708995640648337322338621636344068425552847749159977007863476901372218972460501703595021490571971752283508014996302424615236699989090646490822216804785389475852692580824946554805045919445059885554020645541717378697906096603593744047888529275263556959381597976976164721936798067301231179415544106310715917174008290886174463803510018471923025534115139322197992279815511748395269548196182864882102750600173580604724585243562064377554973764249832131601197701877272749121288762050640391208287555463859484444925153977294483974949216456946697824387618035153593542592258770837147422320452609579457051504163858162845837494473281313138977692435233732583850694951327187698290458694894520495545473580638533212170989128129335567751990991499880005461273319158500339054388433832945662807333921479025697992485826620456791465122546882883413639269952398713208621456218104585111599518847357936866125713939125056268362318858280277460859776826414171528292099830573664060463056380150215351262776607439692832982249863460559124228369754851803102686077613127525214308303711990096165402586113606265937394972693429263456373723930956996900686558179639841376348335975331690777924345430692286928140861160533340592169688234855379613601639895062009522771271863589361642172070943817667658688210295553451004348954682162006291873398723072220129569554788038181614363195411652352879174111869541252491324475859902210725796510337796661035398843190510849319815743155073453459605835366654628893889687204026798174566785100969788546833746076160694547388423859493065377444625820784596378489304949497949202166856293631564890013353390254133122626033368926388802804369838373045189795759077857494421971896331058674863145640019315385519959575512125724180700220030396932090049792824371544473537162770502243384820140886628530510333496787084589880634029231302733010314233374916955779035521899375263005184492804405084980793064886212506444498845426993076057088729240279086495666893076753154321993574264523012650373987925824183625799096154088960470601488958286738748224656358287920269895996763497462322435994063330524708599550235271386332781687223062229888509822015889010279210302108490936229742491253941054984048626685243744784091361124253787726124689192183431867863088871899367088610182465215322300037569073759502268565959523134139302234547225219542701942154836348551538710432152671222097934001288027096497562630412021372584378402405191727383858288651064799992818346694193937111689750163949372672746742001810695039432053606191655523060583578389639228938915198529269213766993868525385118269836717971021812644565726817777505015545164930824319207600229659377605220482170689024689541507126444397602984610105760521300962040798305491429378325422204532213648042984594384298834745320044889621122226402687348424402173417435558074867876047894795289119703061452484208429130476213399253024526391593980673602378426806569773935696534257671466319671937924988125883958382825593699339671311926935204004942857883890180850261526970247400689710055894174065150067931595756631550382882759280941312906408322135578798639034275693629991206390381520932605086189824179645559933635098792365764472452810693009877712296880988516821542831292813767162044645207238765356860179724545262621706398768560659654083946305494376885750699962783535683854046286427843574763819120169273686751086795709864914825180818711478531966617811648576722850768986785705134571687039977931414090645910373479900169596503846608939810195039870289736043554848101203931316207090755268796025274026516971601322237111461527588212854366952153363237006611544972962433087497162945405566509192868963817112758124524773914489397143832119100482009813122987560969528839298603676183486078012247081015659902577735142067444041030363890131305536118636387772497130447218712951415103243774204041753188430210310272094850043747856665303854673301272339203559374798137372339667109278688572493300632004077702606838184462404130351769468470176462119722645349432350469024662026680033904320818287898294427140484547811444558466759545678902599581148770571385527691359120105073424908424244545073228984807138020632004036399735359995047556286274384920294415635908549496505014362160488578797872498397638767399483142682656046222451093546335090543661058774074430882946410228400202502335884022082684396335186461475836566714206754221155105482756616705242454923412965516337975190871551684725500387304331500891295911659861558437237106682184990656818331131703368374948699917603015903729401750430148886294624902090478084463370086952302066584289947367535235122947777461813076295231870296913692226523348864001990112491403537901996923502146129133122612544507075877424953273018670841519953661114318930537027331475993229972543013283013860233925173350461252929764573710788520527558561609018522398867152177783167895262150652467492337581205881662980507763417634376427392178375364148149830097824572288375803722316353252071088616948677293839085021939969820591245307585395418467904327841014974366989512372111109801816593068702305482611804290036165636194017871121511923508197963435407291212078436632778265600385345948075954172145440353850366820774137445423814245944589032363551967552084002569673225528637143691148790949209588927024442288145452346411940781781537560343012063566356358393387371837854966183452310371391999329983313666071794545491315767212894172412343385134932078025426470708416068763461114910241452438429747825220948350707243537619555229844586772941736307548916143704760912395102455984793272930181067896041119705357286680155683400283055117133688474462984414879125701475345298978626499851313275309878487128907641361979752184502182754616551721525389541173974834951341914046915510891715189092963216501704032817444654861988780554731953266041028751387668948522448249882945557144832650328235035378523041833614003221728741391872178383043148041309074414011212882529251784150323548619292764886546763848919451616160971480580743402078896192089392541251799556072575799963691443038430720854804946704024578192414423740602142275351599109735637234966377985976627181337448918763202066875070902190689067187296932231553890841356084915291598972876633626435331506270714238062491774206804712043741421390312446808753156849598015648491594012061180090137486644658115724670795634950671857869216537307314667816312656008596861855986225086863486801135821388410450247579399873920371624829849529445938014232206891540139320395283289373328044276154329654810629416659251240795157120675086662869703751121531497674723366699764248561867385646850365345893749032965379081885769776767623069824401775799998879296765346230641954425783942405076497051553344705651415077748660079645741486205445314866694667435186163053934560734796062309521475876303444140297433714085344814856601909383513828543535499926667480967055204838265218282460820161809714819205002098183671980201243986040103986716522432451742523121276683419261385519986370529618874629650719890508857612084323959241720360005213179546186902986910981675132219212245475515475345670459207650652659353602601980675214941593110618223548583891574199902391449764143502738283114078386872365852173590390806669227655481887092423792141999812107059295928891119137775540876171826781887183794199372043171105591253137667158276829670336074965642821129152283332816908196544067998317735250963107237101282428407430410109191497490487240383017347005695666235271478997120959379540991961751591656666082465058539987971791398776202888460736472554087414572688864316471946290863761351230770402130374802909430337894828269134378126302257374521829925759016413734815029177041566696397563065788838260702738835254650056877383848805375588300355725152026578179686901922754299495237218623269494680531476564359421074433527900477303993491371866668716953131935114644829666338172703058980507673035228934764262510562372109882884314544010702666081069983025718041961750817098288595632004293070922130882571005343414343078409816517525285076095491012062787921175514646642321182522178215797502096976411694731102261219495036497076920677009877332461540211870709156488351276652216832552722709489172671345561175992664359555162491012497865895715131198990449022874987566890967642345009666183152922310150719576596928017195247122547105730312653089617143204064558482183338731972604615414675228256670776510434073033388557821013746426460104646661058288361747941678545071071501932685821075553104600304134579736193209424989413333896449967558604235110670367418165830971814370814459171713222348877276202720245186274445341678496808097510129304260094682100908444699619808072271165053060090651622547514878396548347837870641336386706047126381492833146590902109276825186092141851211922989360348922948458970877290468184883263005082321746065007688415406316398350773599959533696568284140570228657350881690453850771760108650604725312555992949504882479276971219804100133252628741170383890408913404140355108506638487490531383858004714820014340405191006364382127053159444402563673080359146482997569877911360377797853521956804855375096076763411732503083847232274395453016654628506806934266016956909383722485515361750058781922554982718930009635177047804277506528687097160627802546746600259450445058261594879524606372752247995434565446783050133208726052259246277521150853717087365110013851886418585598410283279147240345001499481703766691906632269879897176843005315704690515743534348114820100428471412001732059760263141423358921379138776987897809526728689558219181562516402029910655219138030045090396449820067516398180403815436144515447906810896531341105389553776985760194301148896403316998666071724658261092895843048764685178198434134925345077016042450146468956765579565077881198153867618166377539892173255953590214795493808289637100761170627066298254593341389552587853653515183035967303889224207724561196717903528202030188089013747389762682728677193749661348890501305944151698068517367864643495835335908318901122097586366016731866566446913110832710245571986223799619195527598765578996498949422604337098028039780961161814084153843748279231170608171297184681310425594191031379551858539364140292956173445526381360133002181314422141355456341992010846646270265881462815626294971799100838728474266320189175704834208797534808415412358626397683559727074307800582004594537658809458877260289480029443691827041818689753317263657798203649210904103695242478765784349695227227571457112593163802369206109056794730867074175067700703970044931048717011207147122064957548740473520992707865590884655741814755364149565023901210741134423253335815454839983533690726168791169469175829535115627770079941104797322016626476346761491630859702797103078412254753547752497149363911724309714231579439932057872100649499155026191572147373017305655084163276665453882433550094917008624968202767408991933471381954427911368077027114471512129244187360775437359857707434040658106485521984342585643925420957453695496710155699326131139330035434705252688292000065549313880434413480387508853192556974125420320472589687544809687763180694827841391075571330111849278520788020859906938366598875508930484058553982982371357250515155194678510115705982693370759808160726937135070257506092730098987696269974991415179730727654123673157497192262547924549515230025548875180251157985487820368228563718639375785266487753530029574286236001812149363071066153616318398572982396527467062702866099784062336392376963061759961012023417548620598101301123578854261905643845116549647471037718529749011269107802858855641860297969073120480296977271730090969000779176209531566745558530043120731797681542500333882776645668392200795833371012962641192852732445138133616304948618922212082197419808626226983654618556148310918685888914618593751422047318754334293986047543686303446866348433685001845918665703929316427161380360208493892986846304608993832886607537435823341577750586613958997735886823739707941427879064500555984177725091539023655905808558612839425063162850591000492032524730997902562845019810104178846527756510009513175332309352879324392681494901249915840156530936678164963455457154763785048700692709201777880021782054178002461725958034658086497634361249976927200106286254716808544360010208358311251224254933761470966197103579318694765936583815598507677558193919943196465649021207747058317634385591861398884838779501316480482161381750440633446518818309001709879155580198271641376196049919815494107355742051901688341766494875743684901950667335657770567036025018693071011423608718614186760856959964941401277854805675520261656069848913958922100957125321291863003352295546352372205021226687953754565071288316254818485907909179390213670595676910867438430662365305429901812994703857000580669873498355837093828580453767407578972935946977078956297892533364659874081614743825217882814761381528597695190690805671551900211399884743265433579901902608451056885951274297560426752209971027414986983043646287072999850303693339019563678989081739575902776923311938574890557938630130787216191033190614262529471299407930898541717769526257840163534659164666669685115188682551929659369174403695454241816426031970925707347557867876714704859539216770905539823970210515728110985858981215253036791880308034888548616654558243853470183786659297443793873386968263447650787770866652822219610781551561698459343431802463499533194398095421120388843125186665591256974565166214651517327879123956874750179525597529167205769776588022332121492717305838078643836237450136982504035243929393974626892349736501211587840073272198533517761563776457710310505221542246785914954812928986548313873555309549546547635371690361873141780378807656818208333518784643611052252729951918976553496862979262653983117818088102609658076994626243545553588565983896987665613425367762463445792528827358572831363710730538867596615578785692635743090587558576057006485200850319956088709532245109024218329100033810467828923739071900869736434495112307290031518581684805951288158285988654354818852980085460099959777962704059449635156390504471493968615848577215766962177100145810471030511398242453180938553579674583555760995596080892841100007783414410144162287829905267922942267244098828860012688629931469975320289671021846297369142042050060793926422210938595207403294498524232782541075457847206619369582587811285236140017221178403018430803122897401189349988117302616445534168744952880204606273969962051393720703391423655856554622973839224284044689680038557485782165154703570004341595327698463708878551362647494155724702490341090289876093157439038237156538818661543742701608082077982711245355484476143356182237502431136028912438888585879897992248828796262636639431197799532274287476097152466045533737870867598064767276782421080869224868203241765526804736058271035701536630858613433842717765128489639347499181534674133983697621185879118018582985860808221030292978658006375287478067094154585666340522610591629591361526763874739948506452784449445329409034104969060168058687732994714589090567316063602507871633837936457907360193056354159135262888730181410659649676138343378254037271568216158080286808358178839182214255728968214487399222498306266213455854873299718676691691374917130335069632060372517380278229538472545079948725339467708630581265047093625023755357826796784231229675129905854684697046234691480557700078531707759145593567937605328607979760222596764935166190168528493342497866940139119452063789499478261241099044634648114441189707032627049174390188252766784124216571915999137433898188516141894851560762465748328195408588401460171690362376641165145364981204351425131829816410538630448442265241944274063974446493817437804104523192134885481764591866669497685823392398545656214924670412932817936302002224468622918630366103206260907330281774670871506070817976705240248744790832800446062168708176410238915011010744605777819491913393212711310557984847627921759912399692173716787651132147071169364429218512997438033437080220478358899108929288463388999901510411253446878847935908447454895306022438678005950970546127203736768841487902712997604320824546539117065919839411910961808486670847536846189518040502417799672483094181850233301605603641160693250941837909332913759591943574965531934402872034792323373478890526932463049351534122266660846744568089550122197026483348587038384991022596698921583912529628151157188637581800794862837830257072902418224342412068022288951114871425665411485839179042043976686972543368718356734199654333729501248873636390962505588147213423439875493164706289583749367531816358312146119571938988181182545638267145242880449389409072589134867336352775348070152614779848462029069874418680036050020261186456853764024503825086649804801044618097865309239096586658764613784287094098093058807516185126343522158040157590698611473671071344886672781290436817539509141003490950786492086854895459057987568811150676103179819906694066423348537934629897957420076123605966085325152667365791298140892191441993560242809245668455082828040075212861409493904298568394285166569550659112122446357039644582725307835575754563659639908045925368971052767325136834520474633587111929709738701426791988304585712868662136819773208258974804351383172117430366576724825329692223503828788232258875722032648078778535999678037233719408460394103779719689044992958295313452045550229772286269570968045655078534375190523580511580847979656951681798773000743141585547843981738208145079855970881365759800402173886846852217012383080083841112273817053796969477266512957800431068321847712634185785080872296061800416713563439371895168583816085550631020853163975609662261804215470752251348603744935731795066551174531244311565417922768085564681454538838113864794428434018793784482513880293718071043566222306729642445332666065716474654628940953713479223550294795684189511519759930654388713515380681288459803753204377176108968481080523948567017026183413669188936181273998761182169928322105674211454254268910624320783950506106243387480185812900450474334838524625943452480455139635275926495225523085922491921122384473618538782715488155413362412608214157880526966065047736030392264200689279586799738848845968636977002615722898476017402424832133476562494175503324665268186894366646027176814275407143526948889645403481359802089274464247678545343567936465356505000483987621753507326337106511970663791533754108580321933681999095750106457304618939615497011659969633247848369118506625544753118619338249767019587621277996081650672179944516222857654627053035369076520502085696186958237158511854181823848728940806309740266848485379561148227631365358456561175277009772864650269635175337708367418278802670152665885489770733349865621381964399156535305944266833459923313517741435277204649737884957395113410688862996205602173791235625216401841720169003640239044897399245087912941325165305055752887247788054908383534892334765553328027657976027639033030365407080807653568790636034990895346338781452082252364897635902764172039804062340235089233540345234416683374991185379430631389130488840755986409534116789704402290247864423640529134762063220223156170213036862838287715013298403992838343161643247223922336707265605270198925675170679851110962339801297352130282397007021048928477492234340064879229384128134085228153047194280065659794629447123181763655032282277106351807888058200687445633606391343546016512893540138304886166576094120964861972378974011586499268741764775606807331683000194766229043965612454041535869268864518815103739996498570247245475888618151234790154044294247754964336006219532844280655989765063932200516457079986009781600821644832163265394324547843439788630249987182659532250061505618738190674263758710295121795383088915570147495058392104387172971826615465494738050564551454511856324676319588516065400960970420119705396451733491107230310579677868526586443023181625908700626821169216907557069364251765223350129789908253904970422974944363518649942799113163729292150731730288717538392269728725982298678866435335450805012640809973491897483152472932698495795500799675054834840859060152048030100501161899504176517579002700831061654858644266866462617545277458640012003538274560823804845377797250696485211895883635416567719150094006520980534806690307629127016182972766662506009739801383137064945797217029353371584932751085226816036180599116545094531254656179869776265082457590657349991197981541141835917853668495667765129947080557053788373644092913567446689743659673968367830909049369348004491568852224342320778900211796930714183379177839657926201385362927232247651240862569844708896919861391910691958020617597764572869008194107295267140622371483296928003055442331536588169454977435186236028135774628556777558730601541986514682068654644695097321757739339116234229323475570888469055480510643706725842755950792514756127011680249474650580096445179069637044161312064266703431169207991343633487341710872768096832122905328742379465791001068784853972431455104202823018253628081278081680315599480355089626840507239800717523979632758019785590773588085880272616441787113641301504387502773943093235525338918654523930209525888884618061807031114276789113317048548966063568303921564705046498343402586400357845242261429364928832325001476896347809960610275898900169550052780188223453491420155590899262758188903156021004096116614709019364465919534163448186023863120270881335675741806005893782838978040307817490671343043591373123938507921103530061880591773136218336535797780445630007359057341303807305770090973036771404609589448497660872027502846236389526284009613980308194856268629742857868828054985606614554399233699565360280502841761365671778852889941840476289543726267512499675096890642349326065801059573587659162423598029220329699571659602946776471732996637362003411369343732009856073216768660410676165648821954476011145104585234575537502875643726890092237611599778883649914089134849514677082267670247481916943882522370448667569719740300522123657877511880040736187797443723884749969560975350726613798366981536618342440049414871244603993632166632385619665595682502062397770789867635216406662430020760586954231663216056370000574582151358654568800562689449493285625201190092711543261576715923741110579643437410380013625584498123161210856666609381775551491215281298748514166662523723056969913313070628632548057531906358549778240874373518010623073050348135040726456371310728534442484155684218720556665450411897318650028295150278405073444315701574155692141398664313798203003590134560708153295059985472096005767756271235740391964359848207292601925185632222129025984614337330987305843182769622881907706373707555418759049392915523184202205060378236646478562683529300495725632289177380611882800267970690165489446502904911492786902817828145578768072253193424256704312916114972526330416423908045082626216110921701468312971968037234643507336177406288489268885538924154398103582779332043123033773589005292143968324860196735332276988404000418982441964218534227773773721117527419031517681637397189376870522264215702407000483001938737140102349712564177684732207405850802908158041434356220977571894386277475350878994836578300935431161649052154480137686020838066457674983214472410358617091401629083277001876061975936209468319176841466600675689484768212052270901500925508775237888935630674309112485258772537418621248813360382752880621539305356099909956077588217501573176964526830623318547203248382981434724386047786277791311379355566382214297236471329743671306023462323935636862669202692709691416210640425615896731810533739902527260773502761440448595994378670296841364855475173908914074979985228722219625812384521529167802696936410336683353357818378635733426490807115314911420465413283890837485526943295049717672829524167511587458706584481043358333385365459887991983777590582169760082862751154174623414502680091729368558810355297182628487119217740845697186275395142165158024792126076315192527413159125243134507936047827051424003152781253786330270590981429595214032987753718843558470342725159488479972495839556481376380093887359152050699675979409257571325079209000146855111952367622075232235502961497619939856469761620266694355733466015974189419498392546446740157694068558584486022022413374032069388769213746469473048767047121224802212453199772459456340754738060712305663356477269857648219560273606738393483704677658543892619165823652009087897911907421045228000728078813927149729881700771685264249253247661722367293142359974473942814456717050164100282158363393705145721731482362361584302258145462475481670009908560685738399496779336274916003259916685622465878446169511129112123514910331060313885975757320598485155246389937958924244806283944773248033460592917606288409012440445636670839706475744147596272322775420447878889797423889414836373044883382122441259935177941699469663030107795560627484503440540661014907198260725451901746727498993296209495651648249908738411442397460356256585025216887214010812091672033606034983246625337240662634230433226319081422449633873951993200663163746412977620143257257074377041981643926396463949710101190565829984407040501335328140500793536534999323637170744078069722017353348189113188308795801926911568187617511387713121903694573799759338835271217175239143503962759400467876522097472673796198827205684891738556443990075593777551933917340128765424881329430510189310665424204941000134226489469531765591845867722417800463483825612941578285257549828736252155607536828386788184296304723359478612021627479538880299003416394372181635740526404072159330032807438961135655097867274800352818192299043076977917130234346180639735815551460821971167674954981082707330021336991535661696863637948061312287621461663599453151515382731390719169800969273101629940153558397354689014196221234662877463362178684360467339608648165640646660443388504189823986558264741552254404705993589990579421016087276801440233922005101036111829137359359029722926681245181981541714716572330891746556835563713725858989016132581119135719352529127146638584408225059342403872380938288574670580411201584080835667294969110340284834142489842123726841143075941525963694799629607017950017230260203389832370133047265418873613707904588588898825934290622822234988900290617118641726849026913152902178735296717255379735507747326620526137264505616485834962262403473639944144573042096116713065108162225865835538316865011261186869526587342742032147598867350356432306181511800742632968933355041930888120389131712768719576733867044731148318107422301092208862476307835231622253677911927776933645680551359362411367274888758395254991878665029785408524394837410034102498941373160208132500454091981211148211096421026793640422215718010041939926992472860867348118718841337548799513745997994945944495123336205093624310225042404433004099041567571554126096148496459437037109904569693739574783234321728439363862640515341581093194838563800364433734459852496024744983644827747428754179168332138104665448555515811036618699290799114828635745113622728069772900970775568829114788881178861618963577740717323191870894471715913269597460681656761291229279856078261899643968860332857991473851379938868631256352978461970190946935341157439804710697461781199209022543184070962500425936610378189162159176783454633105878097972421778719328209515180130423890860453612772001054963412413624686800074850953767987034415648582489538817114519290351738256348527400664114443856241502856990401313731259613436830366851543780353642791995404255466773160844980647860413069899792351792775919298383007708707122789906760053662398678667425885474659769692521586587946907197773051301043829988122692963092282594525799526026441383352377261614520833098274361264921957652641926186313259567319798941321154151558371197611339601417697701139785386914994171395518561187659917754280945177922245444600903430985816396144454962665114969731919822917924915203306359491933262116794232652596860558339031756633904498973563089165913607684854110789019096809343889964092245668661607609126035243037646300356607715958550465108584262585840773926827969194593441488080738605207502648668777334434707395929312625944293180802077842932722259515087958516976523850743586156263914293594563561162727373432801951823952457190823063372243847673314518387775291964118602832502411064490458308571533314435712606685273233818699938937242189510692532436948480361132723274168992758196372356615354027668066937392230638665977268069576213911464752860330213434900883907821417083641982511611337547374123082309622172544935243628603175369205512902127395850998637288260801086115744738044641687928882414544724172318957437334774633562866139660068274295586104046305647027286846515106065744042515800521737868566866169568180335345377328346805414481519354618716074527297554793954656995482045711865587870483848120204094813370401023285257049283949191454777835164245424248332969743214985811219291460872551539464017368003664073528678348817852463433633005643664630056117412802136357321153259870722314898126925136144892176392232317691832279077023902324574000101583251405257861681513105735744290715901202051666128204862752603403878229824824509861865472885916426326860288132493609077696305667575754752444879163592996203510844363923709257630013735094000956647532123107866267314072410475217634599225558457535190170950620671577523758954957214377802246475517382273577939661779429830450320597807797710015495519666624030184228742136396286408359511740575663038759513535959999715297214218053385165935090359129765261001693139772082574282309464418635767484155276836631532760336705913910120762187487931123197815657306546623366985869574996082410190011471434508638820009720102456891995806775695365039490491012878134802279210277432112816676768488546966685397968533503366746527855667593420898038369694103639647891751771451548883239327099520089635108050551352079768298255232954911051063904613823252703692182988899167717647983053562977078399901163843189360054940187439563713609278158035004620854460719529081509899487464342842185477852624470540345625031894098410497723269139632944528342405216457843473871981906068055087016872057668801099098585915414848868803849573341571008043029738933940554925057667517629035246925338008137033958477938814357553761320797607502910010737505269534012230005572572435387929361610786293991315964284477740651364850474343698671586803866821508050438461053711019473471970240348999812623251857577472347374227987405072017847804387066182205202375219621978944344246333304522798035688713912207585854645162727693164413616377918805185916012346074457765043971095075901845061149331376418039709372554549772502988802456361341173426813276328980453915831141002457364916620248850784560449508411398696007735094579375025053220562246733608327225338335302847628339082666906793813405693400941268394582274340709669511065623008927045834839225441884733939792257952917434546473206444488299077827922295669876774623104240546210889366157099686881630415268631029146321042324448348083765534473534743736446658041839309965503807157237862158884064721250753430888996152219761354461662969942803577967900311077949590914537219418603193819877063341537251405467873578558029598720485043914169846614278991182092612024375750474625918198557377657469741332845379297600335033016732208070284754454048116532333955834239289676603152890475441717472085182266038658544314628525031525345210218933211639494246888721965062417884562556413256909728759585940647816286796683127435856818151093265050455653343467483679357705609018702020292936700460867840099611656369055611096385155828329063476001909373789706333566572066614648314366044188178976435543988586904496070614820242781916386489500948228663452374209849425064791963104324876735856457009812716806217772407585125107633755840392420888016320535613751810583057358332410102025175346907453957551487544122989754664319575706642138575073062172304304709746395019252427871165793816442343095206730360452212865327649022868401728555428693321026877611115069288367984485123894015261840003484455795581734991001648949193169630998951444604772843883084704275794602127989849769088084004128242581295590689296723358534900316096947182388618908747773059847626367810889829547502117424991867130934883291975050755275691930914762406580251857326998183124171086738481306906594917558480292079140501270010557073970806892810455698228211773609460589264095078782246664250595282609570952236036473692817354693312765794576338180077409161557058213476255253211895526912516493573949730853481071176923935643018078937112749512399217525896088065647878789820916723018043546425773297074014841432632357544939873284060234979947733154696063540651550470111275035010379678047559425157567780325635350191894736344407656214010995168854305841925767520129484723983200617985966520282384890502680977077018491570275330135511084538095325370851359435589526086895289278997541487137974220285423410090436221299261300781091632002174201056502003702692146421726741828661386669827688018000792037924265506538985011832214425398034548274081892969046203098073603602349153407835887169695702723648852476912099531126727841550517349422790945467332276120938503787234651143872000044679915975988685401343599347646686903370531512880456346188593868620878556455267828872718077353568489796871372484392669251268824168897858024557223195575861166779328262254393145576312831390172248865333682833611805043691790355798763330030184682476871112545320829893639105809475682614084617834802384186618265109611311406733029683464800672656968261315514900795617101636214225967655233316212395486340581957345587885429881111703539413887633139178956411570823299477935052722695608461049256126613105534323864272674540070496290584044051626419674954217567924857577113408571537867943617890340955668104927953788707612819752582333855526040179870179706541426944523774172899035590995043485942751797121192070128934438861797263831390064574001083388159849906886222976514716720629569552936664986279225587234292267841185433227716112667530250528949709911374026045354099561431226031270578636936509922854231076409038356416056523012025295871046095486658513190386617276545327244989533604507545428625702524035436076142962949018968797784740991469053440956565351274133846013146120616912514233958088243149700906334499052595190227618013016658922299502297401482412505336776251842800617258174225241809761979706576307748087416533953738128783571621182071373375387557847426652626794431008701857858277883614227648969528314993833929292389794473556175126825754214491351214820341327024078028635877905160611930038442772992951414761604886146139930824572008334688942599609286064500877887464917732505402031517708581758306246495614483622817687585914061635517596348964338203887524233014230949350608605907255137087321822473040631196898807289114633211219691843465419556670629556689885311092393437315626605094687893792220569094754957300170104569661817037423637972578289820570438976265445855059992480255996602224668347962040236818814096597052564187874235921415281307654657484060274068473413313834740759104054434789881209959960722869295661305610010015566308516163350524350313204676824992709761039254059669224959995958140164399760727367444019655496510335196732034448328251605716524140570301200843174356900331347923314997271860857260298716952828140104300759967609934034434985895855278681697320493309637746438535928252768586920018307705517594931217070049179676601796120972771692819766811369110364890771346355301545839713223562259936639441571953875673235749475998429517451370230592907196603155289103301064158035494049213566029524697255729703668328596369232981926611411785715555141977169159505105484504633742078278195583756738875273304924677920343613904541440360760687067398259667289099589675161961979691238098914616745982706228513828942753030108184541551853484620842341628424560075157131752672282494794076064125014539961901333754536739687375322931119441371764639602443894344492640645728429791411539767968991631113953396829751738251668244953628958011653590550916920084353594246882031794865698694454172111809899740940956858090204441117147589410886940505262964495592552734716696689529088532008952778605299838878771434032627733344645845411072548465778681199657382712113020335415552479590252451679758366369580529261491749100241993534137728826419077758691764818291191548110649967439181049581568104976938311035534481436976577242027447577700197370668114926748913562527089118157289732687301373258031152871531772327858032299734196796823736530990810430846293954796155461312561115257703904446322016111432792453697802378442318912461684622400885346327017677194374379524594768084665636202483258364918598713495220777837479450698484245257632689556464813783825814766133098602893954520300294099752739129390048123159941145640115106009230706457648889561271923814788578082591888052381625093834713753828169829600279317514886510359453067259362301657131728029848298039376076321093268056785735538663314543509105708240270950409229230481793045705398825981743306536261254928485881983426863442372195463673026169357058245786527577870026890013320031578941275164824854382026678036152803390479985179213576125691460736683732200290691043365468665956364324078212520624400968294233264532451019952520611251867843478535261744217512574238064847905356831535656400887644435430418885169479327907348423349963570701257746491259372485412012038947219423602228921481964794676868725400568668698636527846671885872632578110433935370777231699415158942167406929720305039448684414447314841212437999917633391782206989439804946657722061327057068182054873017909707402842732492405518431846207823059092353992865532035369268397613827770683566575935354610726411815345257039835953592836368118065448905137257311387993144416886457651871599539632616769817815160432379032058425110285386377679481474286682767289179954071167519746124458297430286020820679111497836697012737810934561634845541183071701250260473140506513943178758977951362610119357149586585095225171173876219717882614970565651140725295700417010229629487393218551736392505139090338901098615228027156052476892187113643603774567394945914759830842970018085703694072209321930285445096610064370035684110865584293937094355256075410446196947841068156048225260384298144910759012696787464583827748347913727547317432567986593253204632828626086212984016301909517200139977970115738146044891399141858310993465277272889842503974113802806780314521454232355675429478009357503163371609981285717639934309603864909205749718227339598216279671142605198810818717207082857167442302164320215769614765683743004209174244304562493470173270124814246804966220577724596652887284052830793232778026641819184686432522819472895849647999425849130284192308619280373755382838086138482072450388145580245985217305059774585186973146218157904121577238099839164593519030540715122770495211385948607972298271844652695198673821156935721679640381280744807045915162408986029571061366020990308493983604212564166400589718133623477740254628621522546061366869311461687891163053736841844449359547193128599474666730472832580701709345113013426290593824767426647775513164820462824051838355824558194331619531732510998194498761135353882585199564474216758780680811834147704113795312686713533316384485915040168225486401187939636306742510780712071422889113220180788168946480120291430607209183702654603830754779871299395006943290741225818722814638896246799005280119763403014462676832768370745128306116289232500793010506526296627265748436926515982777532335128605046161034458580423536344926870648149371830064002611313935734364440096877234695822753454885518225119013601655033267887449341168323758012509217691914349316988484920992412158155119740868611967665798465384810324411526186096696968978610562756566616777397663833367407362585242899730247427879483570675159782844312906842538851597257243324318252952505858925590029932395471490532820722694600946461334901447345592114534553244553651732955812143447516051817141818121611093440362031110367409707275848366827767527648337159573594269342108671132453796121806763932313688093654589478801037314469510167928264753604683316046299903502817702650605340402341788229687013920766136731868260713706586624178095049396051914173012270987045171629327643195962671206862150534865139829416734754471315042313829029209590182335166416737391772584468312793686384009660943268768714129745103285610508073720709906187320141066561163158311743634200673220955180662978913224969659417459893825014461837683032863922806676990595983990712862444771042618668712110667128660832048872894910028120912001148020580086481183924201815255566651393233382475021545673332239916921600508356303054776436659109076978656822173364097632178724259158396870614489281631245437330803717585077565431663104800819181931265759442918004899398992049710720541196165655308497995057578617182801822460780407008671995454729586424789743205686447716539767226681067142268881328835217748108885337342849541182660378786094595245982401173311582867683140392059723754511406407313028643223568409188554620036005908715647184556434538506044121291042979808191036943990966471850858443104098101410436896240439964680803177711817766826688130517824532336118815473202213419282647573830567087902971946672693714854750698963464297134767423252464736631605669150476174449958855681033602787774896140599490773329251675248218814098699420107538512555550316017187188757163751614304960434206829005455920844368551013251036736293007316436120045923981554617978336920200469902743218366109045247373032366533636766931841416684042021529008856647821444303711467475338561371530794832416407291296649461795798835023922672216945787359861153358447025130424934613694562217922634207970557840419621475073665514383227920700927920835447607980809860354454014020641844199834694904880442615601008000666883217870090255692543744140089297135753894319613060835789005386373616786539390057222571338882444037996653509717050658947614378570103549753452863483608302466311219611320375701891658323385398736311714885448216227576418798055830340351316457940174007103560933072500300347242709208730306125271351113708737275579433294826698357711759106026553856038314521088916735680543302761156197698605631471753917790988593796210629329272307060862583883043673221561017128665490651012906194820648114697378816031823130491880571411104043953348797635681393397639897986775468069766042300013889522724537006762893710513647255499894051049288622975282359833151109113645929079847614429948794231765421330797735020454220735665810142766105328294452128871394660804484380375431233229237191034402970967875399037858522061395164654424574035375362717319146507943717995390062370048577088258255347654844880643443646709735144127087187182573952277927790353362957797947727626520787657893770507636858407848514995697602091576726157204494903090184617316185389439904368683685807515008464153700354922276642148275821845782969649928858076253764086912893644946376503421950571743955159534701776390725583584905508110501521229691187454747214280934205151059013746617798964588048124910974372331014381276455517715130894426346851134248909536222965816537776895602308521220714155071775694603400306382445842413776281102008953123328543967961231786703425559806688077138668129576430269380367222280112813875790266925848728910025849032237311075934534734453181418205005028194110531056315978652127489836999759459144269498455596382008030361561020244842298765444477291734463669182949309882403580405350617641985642123465561379766032692678826402861349004514802211796546123022222469771008515521392073135118384769933738580012774602882228326759812305033194457047746678292387097230622755348204451101595361411054010069800307152657841613301976805135236529659417774449187904625859790815819587262891464652869787887970016666498278820049087551867676211663866100772183301113598808705705345746626609950576915705095511317198055069882273149008138308169108287475550442551940902780524779958250583980617302276442978297327932632129278088580449544753931402242609394000457627862047614220042865357908231028689017103551917531174957917710108924807237236529417977384780848584437542592321107759894029904670334398972483918291935042737609633219585184673951610635051064653026701264436548829806769981440970436052670198711954836234327462048853620476427484613325857897397441815780771780516461774983492491616855305814832794288539760801596941675533780425466740578450615328967184013818196785088918002493990195948110196930137630140385535990674709417510733360068827132078231629440157091764413037421821010746757572513910008107907302201768112428125218171983399457692549781221489849472559979098116399768424312597547927314166645421813238409629390904531680724664936752180156062210462726585286887778372860531033849501680905187907007474453702538096171468592555239240946704265447599467115683623877952520881597111292836300649241150789060000916325745879643286075574652654641310337695910676105520056508715786599414171119482140585199318131829728079763641969456278692053497801400842829593056553985507919363107313197077077208232932521133461859068008154615005928191125624859397506845269941770375823909874497980857298639100354464174850982616374827312289733100207152096906335367354730268126780957800412498525361069629259613851615494784416284740034921101123509603741125591045338417817705073742074991941258799725625311944293500122204542665135719696252671227869482826690015655999712349888939460739615077778278274744315614211177132653478192681686260390603414674609496555314425194844149543832841013909233462273285653793551241192313175981513585362048300045616674217811198983216655630153397452498751594989542661579373728596720644684809749169845189580404805860321689110751006522647924665507371391106681555528697769989927224939686634041166419427172567212220254536897167639178434892329913815494999538110467200483331379607828438029301803151309367055828819334385892281398577631201719630733979880927814120772154321480430630421352353801567663093217913655363955633099762867254816200000689369582281711198028125428322021295597878360912539352129109652798714892473292637201547316993645964034105246373930893018740020609247967580756869518284076632400804940179809461189567138926607840677828560636843900486649899855263292615262760597135690557007244112296219042313372654557464135853456178871348655999072007632548565642774644001663253427011046396106652237467581398064260505614480376527671964093357123547699696036089698430935108374079691119786308023903691429841526377598369594083284973809241129463855970328209886692452279098672034910882057566876859360121081626665557094883325771784852885593113778331276705852984143408259407747229357448996740898580589066543524484497971960394401710241432844612295269892874997555333554588168424703841404463391699460985786058165287983384075836133021652549456225762986017456344543752793837829973828745086369190994708170171786034037647534860737908072450971024438330581038564578938240171175362988162402635116262259124373701560995360531077128997443110464014161668924918776687626612883948682023697560484018831168219388760077432954283720036919649166373518228851257865422915632884537494176430744692306692654906087738335871729409571566394119297194584158733616585437324460152424740578262119141090869561123266039520133037774094544049649180669559301986500503147051629212627561973303957528531148320588185437545491701570451545411061274247676125884294474132974817887875741550377073889912502036431271224273787376783140600810668905723809621414392003579390768975063608718972012192702897365959895735103988138370873590498935417276879537268042079660389438049984816675973837147902389023539299814679950779456854997404071179797270988609954501130747392211858262555120752258852447249823101121805288302307581565725675637291846102244707761223587100296325149921851923231195258688383539647019031428971310119539002510250429647150407770434982788101390630008598058276834601125604406082749807159101494057781056337367670209371567558746528157614393105320699967454841163296035657340660725558662031805824705560598003666167930755856629168231200478403971530197203827531419259154819594810085524109193119287279948381278677459853881735980140789660368232744700115917344027132907893173435992740116372482137946156355035323809539293197773324731954405914158992064796213844879252103363755622269354813606298486906943624814982127738382010142665025676428437537693396250020292400414262166784783939932911501228018457476929051255959213363710985071862471861077512816557125224200663489011139201491027616223270126997954359794947400594979262649961616780538488046099933620866169774697648900531626577687294969866341624501234064923155226740824012758735410286292469087028625357449256629460316989519606480193352939994431300790310011190618104957042684361878945167268349123042275310213962342902628619549499291617951387271877365468046774627083774929418898173664283111644070104577706370312206447376336886746111002555679625941759213289361433890193607259358452826937346234686151778207262346453516909575281728700783465310048158515736019806844741106439473419804553320966193172734663870833075585491490959334299832799027941696887068060295049145217559747223369139911016729876991232208599394990947120927045360560257774482367412074217338801981724097992305621299459950820188120822180947996439226555088511006130336015864177176696094374146318482853468212434976511233312880261574728769507611406487600602704734549711865087413552738144165177571656360143434758878102025905051965806017307367370498115598252728244534028272338899215213863547435211239487235872056548295085660712636516181996299340211544338085781104913226121727740454740089328748959184962498255892963188724250750861026459449528734576077342719580326916035059108036140356370011022991216856952896190031859091245369280299466190767617472838038397887895181688896962230537076605512331646929559264598386529641400082794312046453750587714402965473169190251656137190723020099557709930223486146971914204759796052928258795028078568564014277415360080044412696588554781038377933100880854403727926474942746065959455543247128269183047745337856647315999335095582469360616520865271240911629590622984206508734506247523579217124321723479184751398294082546307395488493203370067714229916046693792543308149792135966993344847509288115217897221341264898132325261233230227577090904501873322305151559995292552281853846167729841339824718849362781822182650938176916927163774884544241657666497739108495550475578244688347192707353847598656799537963226871565046851124449190853060859412879883043532297801823122905804778465381021960424063427825912927830088261023111319928205554786170950738310401007845494707046897230160643960092519420965503689860604862000688134780138252251159021055661413901144394681627950353244148392775093690169028204175160163205974118066218158955747208223082768212032901832731352983507123242078249800055187075068939243883253538847037004493703630844173500878402301051605185062424794446297518462317139219114333294460868836992698600623117742430133769769647683104065391943538278590594130831478550071720057583400436090222410287416894346277439720770483478509065955438048200071012517081104136901214017985795802139435434620406897724489297168730217941731646041165886640924920828763609555710779525760737542684435392841354583635626169185092162025743015194695408189276360548872577388797197376672233915246220090587119701504201716596129996543922195031088438745456296376850977513910254969627280244153753835468715286709571994325391235169351271141426576495671840505349427085047962096194607557225769433233040138912265288720001489713550845871122956391970825460983822031163013423935475347282524411176449440756221534893358578756531798530026711271227672061220837574440298774064498319964265758402383041160401134365999699120013661561423745550638313103617464162036707410555627648531487488550281379286118837343136214302175798784641774691265616852043736970605141212173828553917292083587345815749955188320588502386501452512316961183246938737116933751285949906415566747875078078859082221523949174112773622499778408978298479657442459082185796285847843681757527032964869079144268962158498789373587256148497469940906476800151225393025514121019677926766196446493819777192712844345419701085038527652786828353170703231769702750433847866743587995653205426444767286632849139577011441646053750572296277869280906954395669903769158787902525228424878895360292924687442081503375212769690360161296289709721702795854912438863846605909314823080090192162976878159281491210547548785522045967219295309201233614450285240444342613138162933553796615779139919622928340654248757967475931013960240864523275676674197082230978115418631737322466417530036610920835753125829683688381117237107813914137635316102109813685158151361269505560959074275585342221103965864294127295646637900365535064026613351536531877547723985270974386838270358024649229912505492280261283871837391633131718258811554670606727142717153015106607957324335569052261792154102536525904622873750964674395954873091892661225693307898403511428991268783452701255438537197239293482254832356485587960961503594175746404714671015772060983321720978613904846209414641773279881449017443461315152850143198768973100582064608423104299262538981029655431615488779745566956049970835071232430426873377851926692301727637337032217216297305014197497068892825327398187416235419284524326276879561196688822734529475002769027849678641148440257502341473599563783261894825876146039137682377703273710221517156779171969025312499620145462410569918891731964513110014407004004774674527424504076628332151071780255938660404959885426947764747795114208662751707258222526294389006770965348803935714571604868543303699514338156977567177713332558163603090639452490166541319207756734115242357900174879067220343355739833553029304724232318658085091084022908831954380786347158611439507689094844483587769169727603648908027944564416016451684310844440709302801830616342796430417920381250657525872270981656223822330623443445152920483529879687689847198901957791318227000113424331910739404065646596972514516742209684158875288828393549671162236187523533066957959169252705973804864725357246003545527987268626017717789250197335557877438239341865612151270309999002727188846485428929167210169755964423823462815230334737667198546622718163502588266049835231253163922316007698622127162207196893171927961379090011768810390123613311647445077007791248561900764448042637815770714157293132054703192090668814531626510210489204569485170501202159818691326897853851064166446482125012507808328188432263103111952984221872835707294653039086849834242214096800735403646814049439928376634844696711022721766889438077144767630970194666886007889710810748867853394230774144722939820780354761997734460880481957896086416510502047162076261981677145074495225414256899671720789682747488365412795503321221166433935058855776582021623864011052691353343807562169793426342078611958775421116589960066827535614941696053427501712871940828486755953845663006160310180382847941736015003795538167525658541390304572434484008822153017994177193944982875542983127851903425814637559332659515486550018799471933331358367363983427117027282177996711169645102683437447401058573120831920549534268813570877194852067917685530824939723174700252062788463785511431398166992228451187521158522364506256459075165938229359626788877888604749582336102498952221264943072465688762027909921693024671420891929388226462927596804007627855600630154239442468993630730429552931432472315433420060707698723655872437956209949659902254213136187989630083454699242278470869652995261775233677247879098164697298056065647151250218093592168162319926922031129916521604484456383604279780197911777435133541095660530794145774871133686058876857601132126819933488677970059338426621396944464760742693061357270387193843135078189500215569416875638699286062018568138314139392654816343472937073472121276934642041411324616149989397106250779162289944535273750850988608816209714292115257277009055527167508807156492864137177511043818743954133220513188767205538760613985855653754509173503313408633049806711896479020080602677346564041087490192293658644585168292160374727184554663471933041172360936976751529940072400090607408505322084646658784267064988096863903244953945125106797146676214241870839500257729825072768425292771893024908131120359059006148580345027407040813818959875300961792347924289075006684518177793853083832541285758823616252971977922424385705131525143382812131705373620064839240634934256169795667523916326680057967993562772869690033838632226694884410718630628257578973930514409134761695013612558833676841694581796117534374850178702181661199939745494655768947162258108614260853117698181282336093708829336300768189544365433690617316264435054452779775166099406611587483942334393088877840530403609662237155938379968374428143871049683428287179660768833029527351811988735290464634323348718364895864900914185668567696584904776332113789422477975497583709197239344488432279691358850744507880843742844161627730560544702610981188942731546152437093480738686334133353131407682033633976415165685370980645587557481351666104969197340835049069695186321813334073454561514386716283914443402737611942813436758265848651930867137029882507295989016862166069767311019540471024137388569224095462802360128435744061540998744927728685447519711124572152622324051422737603341686396335096493791375606935334724526549649460543113100800156485386203416609174793208647197694545299899361515606614334821715774788452854333133627287283618926140908225815009712488123090628180452534080084503591248391309235013630405903231140181931296045781855709211994143108296253995859670320158498627833813778044528517572218367442041977367825203120932923005645005808363417538618881861890696848805085238072730959624382842517804608213912884091999511021890387757330534171477973402493253644018844009990393369562414278063397575939250628380428116889831703426588376390746917817089662166933477873183176186832063226355561500424276965597296817409201199807333219142155275392013609616776756056489270674630917406714901628366819897585703573273548679877785167563167428134016679701958520309630752953117009871172571278225758997453250162581292399523995985424345655076391289847325965030512143878410391485004813507722353775897262017726693003820199862728661057914543418139741852903350347269415187632087330779927271631825821823877788888370809300446508269546385202489576101876689404197096874391341074759215929659724198492181198685013563422927330429964918810365817275668743237741055495623676812480645051069909544677524649953825408491300708606697436102120801919520164813874948196440451314057230709186771367202143933669851776781393508868654750084754801876481023852956358791825199891070124797605340477902013664163032057050485644114591011547825932682445689983402138813301251117249614716504904662959892730593991460769137941011324309144637991208531945369702883093523470226120263101049245795795839538882336941816005827793934487323029655695856098963910317826592554586102518429061171802561247931476477067105581955793842421362825733384515675744283255709051625413759348639404525026004969892704076522838612698262615467763004840662503729206838566640115053705505249560142662275718369747639619790020289513840775223485342251948235490442367800979116452911404196400061066267850756767951504474881242720124896696341645049176799113975120436250644353621499659591827777048722510513834149004638733199232416661278597764818403624156428411696710551365047571585015281546489612556562309502190890295545744896781498322305214261999139315388128639997831102568724521517254682234203659547041130034321789881225660330662516015574528101242070026522880142349026190850506762006704718314331541852097304336052656604478610420752810258555000100664138286395918571641522762677548263190818036184860637380211120954000407475896352460337882688014784169839924408127813959233747853846009138085801145545723092121822370282735320697337664153591655154197498391745815270744907182918946873497036058883646154254629438951043741272961058080688131734630689892594494940120809255166403921244650660471255191393779977439826160601828494555598841534712136028761819148258799207797734351385451067488856889180955905603337935382460037041731494568822231860434070670999738136517365880053380564507012049359713437063511275198545961592164950188635208005021504277780219402002549540163206553014612151051909563069079535675541604509936118803052451699663774780369647301675924368798255749910389238676702844611709109281284550268047849352931554493107361481544276776368119259183245311064606318698484399986411753024945360251240901205832834454822580086661804834559809412464614571765912345434752275032306364041382431667862952577500320982527134457935539543505038638943608036377562112251352944783659754063583105591110257074089117713233682569424561585941217295429906899071704853060608847374226101384033024982253587548542002713563956008882738978432627870264119457545060208043576475645225544492747567287572082352938373992249697672594386047434035317155600773767070172815732507748016559628001704479476408096856989631774999067940614299274414588011839775070029284145856017265132787405783410070987717289209972400468665096605375458815565995438902932031008952383409254921027096519852055772942239438918755689708090966544914801704079737002812966253019423902237991345910840861039991824207921008393658933304746135447484030483541960137234227596325674433331576771280933185537810248755449387850882962248424874505798467602861175626180767917132268609169396230140211628231134924106005464819425724641611288897353660617938582273310287012433633323209469869720345088859880161776424543609368840285021365560327932380996401754843758828230775994918791033488460373326012418062116412001026770665535226740574046354129369820184359960277751602801184795504637519875023502135418101827429561987829692734822728634506090389439091648235194000612412177674971697225883206251505155457916514411968500925585616025450906990730800019711649532763312769976916751036940967751847946634555664889065557383247510849399836240560281635407642595148763717487941188390094360370555930413190314528711533972862887930909647702068696447797110090116994467041171812511501907386230164048548481811446259543933863609788169875290318079592732070164148985237210267740746872343158267370133832570129303065258464759862813872238260922018782882047769702419428445378102946147080865922547111791621011888817997156850739586476996268973259133710601942629631659495454657332305912672075906642184438042760598569526758019729171097168484973380503603106194540982936779965814836418305857340058433040171358027862966266207245790289322666877208652270947596983147970231468050654635805727203991554844103360441842721055603756207239024130090100776442219545649536174248814568064379493333285150693175994717006813033946524826260959781894934637605266782573635504955791142533111965226012496078862150094351825221158193531330496884723687649291903962082777330074625404568066281755635794160762784950426005866292444985763749758710850707647655437541404257208598588508471639688481828388834693057753836549756329507123223958482385715430935214523334364031233147704700508563191059266761780256317362411549035015654946654923970749891219485798558432772464205726793629719725560483391810111328939100756974376935354598405980922324910224275981500419395760980402785430997563818856083731881332892256206585080375187875578843617265534074178120108356763318620395398162997418128385236372826724069512853280391877048830960940991513115498766525400692743122859404486793527132162037768420772722868221843270467252576865352572325282162682275564636963176645804438945037007597726997742851167779090436856635550975344247014465830546502331166303153427693349742764305100229232145669283907376904306230115073073688291065147671692974609707132957531845654820354279822501324432335439348860670866438224873590018676450340620917064673281690012556014184649443563562903273338586222997276537397713600498266067577073252010635508081132242780604502141515443830290260596109498496089674227425995543495014062597619114594982932546361658206407462163211053015269495734785335687526018833417809651453916428704647754750683505692110493893445405890859000336464837193477352539964494267870300229683443788105083676558150210912558395079776519493111226024876852772773492581450955842925264507289176657445394970453619585801969243937372297742282116882601064342168940877073004214549337995679661633579188665702299012953249350073142696756719660523313478484586647119248052756902361167512105460685327853439210114931694262497566791462567604350685360366555109279160335586345361584027852280994897442941446752379617160236403567271272117880522135961911578949141911002455986878662520997706917439272028365538799814053709908274081145021028911500048968210011364383446641488399272217894105928651116018101276179673973288972980311591495788241345341100821477825809314442912257229507754859605776234821543400018816740923817539161300723236556096683946937815220643337753739388826253499148892037090176904225777116134524508691214638728860775248876328764429738070329114591513950294281710821645975862608397377342046158167215299078811010949189700301003141846823974864896310673183646969745388704484243511061124348008693075268238720679878118944783236035816905034541327056335465449052963694946455298049485487270019167696159299076054153314871782134904865088074340123685428428050466121457723998689958686360735406578377395197772333222190075735912509601513028125751344144190236359510626080256757130024357581913267820025300354404976366385808436582675712914087003545758673640634573174127421174198637193888426709340795169965250900265269058798236191119910247513448445314449898719766231437224305912519117410776462710067761230140493456719038853253502720520821489662667588787289688365639254053448973494443138862514063540061240016823249878295693144075199549575375819355835830633045312408271995606442619304617009041549484831848662302631617783125924480895115806501899598757690185385111261621738609979316704206179050167322164147406788370805889328450507211511269237127393758252571829097885111965478198133951025902350522590937730761879249476385067550099570209778558302624033352069804020935204106563470759711655515585647885128213440925519994971165376134712598221745537080138276412794730908346006422295685145991624993900009251090114240177236127450410415808553076316353125832743766974207094169940507699123968366775568060105180134149012080957657657039441918371618955694602825421221491074340377993423724735325499230939012169641252839093490645217869925927598752174680437784602471192934208815026550963248758844245120291798589484974897911269625513724195286351669403873108116115240828649685784489174445670036800552383454327715762213453737753304025777730201284761316072244207816296635292444837781149679619348802699851719511669131776787900409638070901712092557813697079607720087680615024579546292029377414702171939622122996780868628104951514904391500908996265508082513925000776186316673582600599388107885259914433025592621701234623329643487248515330140026083631344532668413605209174123466353806882907918704094582975112439473924516205115898583995511693020177054704828151896539464240279275939529650322629803963399369334850517964543246254234179295125878587038090187223553860315968853922756587266866275167761927600469949237971976444508297761097617274514742352680398196137615258322354963147572655927389856317204854315097757908652684529429423007580855114693834235349701038449127835760678353946177426289559040658591822314522481978237185104099209510771725837963321194702246550431780979812776519408550369423479691752467835509217262195291138279070220583875322097616783152423629051835179723096875072382200872061093707807451602468574532512606155321268854273820447005429191000503975024907537945051021530610900420322117553371754014360300686386959733596460258046740904291745023963502214021076313758567354232783528540333820273342862501379253569511740412813595190844618550775381460172047420532774249668602800321896781788665372432116321811623239081695783826643130224366614079146803832902479211626655272613325633400167446944578537438668628471852384370564523025932900151170684601375565136400117721570372466484469307602752459603019714094435372936223177046590552273901829077111840638946258493402552612624792061342600327768436784197007776324924430495937601038759436260010933981498367478081521947106473710772863917748719136724603324062493094546812485478214383321766361626038874995373395208659403493188852432353610777773352526340809240965612296395669073380201445807318632384025129946769912769268048600388813075361647582573623994422780946197791737305167309921764917418853979239474568678039166252969656223159504027692394511737653549064731628667820142961294846668218770431201481478031021667918494712966551927550181591957789847148626713546683757212522086977689842032377783710336583716688758650792870359994638709592151441857743663586357331758353016147164881797216943489392912847479182364757236546953730678467049719677914278566460347365694466568150252907043337669878209183434802353821745918809800278184070371599668130317739131599136183621549308251517972049869649264028751877562826704882742165900780045778435722231655669744998847659558834881328067715503575986310120268698888395200253772983038550694834741504344656959602889012109296758142974059538398905201994341889834059723539598459952598464793626125960128176429368290982499830579148411421561452504266180166939969692791317666203792209761198876495238397924153435130142675827226774978704105081046015648975949773675486195523548524561245616351897067985874573353929813824971077702443049722646213633838761988363434705259512020327348761488799142584112235180398728968313002801947905312714851823579751503001314747940513990965531001706329277499461326073962544368858235141058527581994581354628180768941629542113225710253263854933670146445234704598945501535615856567616006811652936730208094927776583517974173418557451592254772581947383898399658381699742050498497246847758099737883164489309139619805217756315226649712235133607754928795918759032898355179433821928984959571692252642688526747071527771602170040563969341198222330216594165301757664983257003951405206774735883972777846334493141065027001252511545763800561904335491315624938961359134565199196128581835433956429068479898960098649074766385892491042071521416032740489815201578870102278862148322491434236263760271943016612142746744056814381393571001987545546142157143894613504575947405084116511572567048262045728281488677976642463809254155847443007509960252564753029655345069821097530684780987392138607675739681714048877258792739096814919429765276535174973118198966406713683136845589844997754804849933818761510647407319845712746261058494682801552505681137636752386546235446021550421413486885041241392565575612277126373222465285968363521272879301216032490988197216880780443361850593845014950841845016507736959359715642783643540395314247934658562839492416473713300588027621407541123585859362398962633931634999419077953037069638379191931114073676728594936387509108833045074320915188047148404684322564416888234302449790589629050810767998457138396908877845255888228794627188153920209343075683585382213232512440642298204001129934919248043186082341044786210253668135967020584117466763699788545850166857724188337478291919223428326847099691416339988821526264345482295637967123141027706228795632671119041276798383093931178639680229015661285557830143824142688719264250104391546098904418248242379857307060471503200820810500514953217605828088236670497430741866062101793984277384297213879528957275237511153289024703076744298859516277917276847854892216332920432667466373650254054725568248368918723413865732195143000128562226836045578129154586475831958576213549857612147282371398233831655427161024273051833749704082768476469280697366271935929500505752893948199182733235413037459621598373332993919957775121135896675979958610986594890892350414411621158640131844479985127493484699706131562556735904175815768285964971719002066625039883945515952273828022647985959886787563603655821406406603647362349872086598385884979463374638706686884608733347547193428474947665465006244360019961112423728619837506966475620793448961070775931684371589865937612448630758491182988217212662887869116456244542178116655458529229517710988058465339652843489415510513177816902376784070330926761452279087137360892427429312930045674058981068355208552819357064739624298989124387292387985334289601571420068839474054039114113032414957892152492637439935443930402747957046361334943976250150113906348540123715367036233701805592292354735832555312493935720284474561210795530514866807892001335781642930788414903053652231857775226738983021973911556925001267542476805524796985872390710463917851954921795680777331583214833990455987577857351338613683352581351195229138617418080290141657992036580583195719855160390866561940745002159999769496300691339852311095701373607024194965317061523966034760634335438571846237925039942186589630604613542299282372038062863262291792024208861381528211913608456908380506084858260305304087835841785029160485586998286970082622448803874984470407437239006934134958666307074159532784475590992928798263455479621463977886620287609381208969287283322632494980325556521698808835443023121576528194253566027812488324486605636833356942503694673976336861365231753284009711319390047049429888182692688472719074494502937364252223907649016092751524018020492443721766632686540167843948748383924882395790432756939299348138182342849315614817497118770350941542390388792634408137826676479994734319245082497153269152341660490765214182379523974824797989650448807467609132084198107848500458647726347621863817030191280474264535464979831445959424454496087275069422877986316190558822853043587695158177704153211861818504994827884705714408130500040232418885513344087070318773013423034381253077250826861443241318905763428372848853816378855785020734861678718108235691978351003775207460836101422759087695222341305713242262587439023106004873228973952183391754397949904266290552981003311007997992490997646274104957116956379890960220186060817488518733381561630365262113771743297668441331661781057310848493670081630779409013280859649205589127934913798431923635719435161768654156633911222592692738292488802366658801158281905802406731114676839475219755630616707086105739574843113037726309622293033750973874674910804594761290507574001576880999774530035721812651188735312482073050553900184750004176118024850333264045160989507345038665443746836648132376958775380548282817945484916867903353464140343410268359698047937053784490372772067234085500010786572655144219136528972973050607466976973968841831083379843515083144462901185290037381946154129597161359146325733434866369503191944404047914364230804167930175226835154041581911933268343191438114881417145211717062422285513437344674187681807288989091254399931430950059279586226450922097086763631108339643783670554221844027604456224753863805523716749983506870086384433546546733457107877853003615169110157955082073747235126349042487520415785220419996458304521617151432993071840593766970316098877178528274179701529377855624761350951145281843083584398932312444573520597637757826234660677492370374191585113916336746075546097615201678910406514236008119546601064295288382150780478481127726103903284153646462191917939722563834105600446691675097927103953479932764754246138734814193401856133385539268284421998257485575731859721140659263068821047392913858142267088200091213786134010566509101998435526401902925696703642589294108000153331292878638289610803144900989790679045664011566788637862032435329041878636434406021017903905928782460109448633656486582356165334910202291399066453449863682530833120687659237491165360993651105279032440183264604698602179716843961661292930966236010631733857135265106544000691453074115940880345103730015039593196355903064764660204274324193227454190120215731501473750160796520723901187419483291075854071789485722896706872016754091809662014239601593484507335155062066725528504179143630678020460537669442636247830398036513565276676140723085390094477993103224468816645535809144025860480724057362373070399987765518869133171857397041593636984821373332460710081755139251071103877135481205602481455396496729881836180309864785957952820618170449299982436498122245592993689654169956572524245950320955631849794229488288740315989871106516750136549761367118014252149181465477826241247214154938677795002530669661092599895368972084450941079965245362477869170616870671005611642962131052764290034834376661049643679928703045160156380744127056134249793467952590849656872553180918034503661859457109728749888935513554760965678204328334016013056942361907927785700278259838846053138911168355348206151402241729273306817100199712140664407143802975363274019776081059818582588760219693984025520940093564674216085735004039727168054047538007818571550983955547954308709512196867145204382750578504780852409832614488810042226526267333289123622250228181652349833716331263912009817860970005536744039990652259748897906830902480308448489780915922584306257340675639699765943977482505245114366296873025846605876817979099089034144599617881389201044460841958627634805759788833532565234439300829586460253343925172206844011401316491841231884430197285802865602658951359894081197150165112789810302493773652559324032166041604517643049702959804573461964034343864512054244056742872132706885224164261990765498545108506496459129360126050109145648213115994851925537261555047468061010903446771077423055368386979250496080839582317797306509587421579323464435532706739994258918817357636819478284766993891472260785374884316926477411592787400693098736764928452962324874335515604020726894076333803531089738078982326170569298550324237015694813936247825212238137446429516105586993839252831956199036752376553213097792665737407857719268505924361072714971324092404668653160728714399986542842707182169760087754689282079830617825047679624233126683789206682720079539186973880326559097522174265724994364509927334043822206566201710550979583261925229970308632020870237249436452976680406175227659975437135278815879823371732807466923018274432122682664284483310731848192918136296137295611994690827469836678598676803257049642466089084605483680278127228381958857218015641057305800005571224333598358203296824139194377916663943421130479292542969843079259028317185898412529642918376311044967580889743114667205878940541236956528900326958376384873893109656669288544167812117142430866632824156854328154176129896470604169660422054914587233376150225518136560581474452485077380255076637983682140030755006637182365282348688034322317752420509682510130812784550146636745672641014751523608170478200879109755034247164882471696598738830612644409814990988475844828399374190043247529771718574512673066212246527702409492041986382574318633056494539552692361490326377635177309169453528754279211298683616534332004715205703891422539788279921462744772281252059074412283619784034400564974351302879343663180108922898032332498457046643163738580749323511429169937758745087219657061220445392327004914587732687871963813422170854482647298883907839119859688408046907966538418385120883019591220558868630365713795390376948582270407270609338394128738945553321281363316572664980786663319678218569173466537058618130058005352124729568227261530621447269583656321240930598221643498155974822542695235817014122560097473983378291930602957569215069508777213243706856549862638585489313236818298963772282363154297687023534313557143644306591129062199267951411733843074409909508483037944766175795287144471514144926934086944334498350727999278619839638951993151864401716530875284431395019471699589720451954052256960229972066219381051278106301661007971018636652470844629365053224816920519122701581622289008811520614647620168103968010523917119534512132602091935943039333733842475422554805460709779199164101036820318313587237427616173019734894199905886512289686766330098445076393923414567856491589987714285184774771358339861688297296510946700992424522913081997277186548429443519332654317699552550857007245000061525908813309334490278276014996142326695430323264146102724918063419100516023063300592292069406326499637769131317061110031973114604321827057950243481574069030269022471058414309011486571361223667781786112206384448213758030400213747513077483189957785121885884450396048803800436678147165249821822357834088151847260602165654941627516673121409779389748360094170641605445847676146064797451831112408717740331885966592483963566724333240954059357757169840590416003502141238777664671635041707791226149120520884924552992763819082378601557004613092839959232179346731711197329508890189153503051886618793240790083832335522510591534054405297199019438593618084828493113008305358609527640150459649518265860263520031962163432416254353731693411645873762365648623692733335050291767129575921529327101584805126130060366170214092073352357728662086029092861845753681244216340409877325612397446711036669070192672677925586670420663537992890773610422786844369683213120338770901100116965330595147904656846173679991769783521599480098370557187166050744661280160724269881824902748893683667477831085893772693014262743442469074889360984109860759023090144252550111487622800794525888085343465959470812027693193866052595023740438148457789917358263710539451889503561254976488048260041824410675082177530905597919461129720761317300617134096283174965984133961303712553840946776820556090877714431346589508201084456074997501486676385471178302019543893916435346512840904122866589434970716319878625506585926747916538214298942696340500944184598334531399483644669958000817054553428326131302737666577899475706572013500870499015852547996223755368886355704025497626159107121916311749121637573455262485792596801689301219294244456953473868711922302310410774363725407212493551041312932247385013301935627391262262122765856017469495888960924422020211458909795346857713703203798289254782693767282753302405880558749210284103680906502184881183638968476243161670325998649711618331900550191259069513905915739975408497324670656253387396441865056792125297618220503882010581244986072638775648731365039230394249601551319261643264551096620567001795605540314134203903172095424433646315505032399725870603349316960876953803151293249496089677020692292588374044858375692209244287988766786318350805828972579435644955894017790708084144558528800931302668355161759273220018673477286734731131199114840535442535746534293815520217263312445039274856678804377704895366113697644599049611062829290433596998217052858491280502032922564031315474971175617861039411361472556984244982210623320332489141038820957599744672616941816643427508888717142689765971958991858811695335042830575138618616570028585148118929187915106329502557086657063131095975238458719017979950376196925304109530357407741219490107235207334775525984335311562106165165580307730469455277417159046691658730819917746637474441348545433640994971358193772165641304155442703614214928672953715837931466808870995784752024321693590517703908766324182108248224018292682840821258368603816651319673171062204694977607920188531622213374471656141455096562691323593593513388419648885829127229872838001697157727663182046578352607651080576767173398216583632452559913744953367155580190580033526668980916189314226148246557952000367538914080469521205519385675128195901768822379464528149508127489109461188835162731520753241252137136739936662332020927210661153176880721405868862682718666916188245003725558647339948860202097034660174959760437777056828059061363595972984958290275430148563568811722345639176403715810603395793297692531201342611230547565857245935362732208464838727893089502026806650731073327396059045414751128549017200294409076116383653661118834376472590246060164730027959190980114568203689284398386159494060747003894644363264170432932734967528597274437832251017085149330982979457422730088505881773182374044211374058876298528460663870378222827580313588745612542382351301213050561554721342942879162966934297416455839168451833792463321414408259043715382472329463643738949746971586042022327497651679916629296336187909285497794163928468971923936371912470883155340808237656686204688991251255773980931323853373308719954574994769934350547161605100975364557962218226391600085668436820220375654412732556575277856447260170825767197216566739223942673100590141147333912230700521028118957737167626357836960219658256007164013620354913347390338678071917270053962049998689743785643725370491246137045943141631334431678410444449328914013514586621283835363427100410357166691578073506095541763704781768950718541187081652790255391009247170040766051152216811706303908126697891339142121797410059150199003197392054944610815588769369221374156147316639709325851733511568575360926505043994795478439262768907698426361953649510119957326349835074103592301946242003670246277774180834554918845742940632109247549029758570298077026437056200958968725571137490579619072194243396333053494672524489720837492759815147062344045229807048647635306591035564688343130444434458319201081233047800027312441265098865534201687969459836121636651983916003651613043904300212583715367553551511506093195139512766337648588729172250574648338386480746226134182220139265778319818512624252409910373288955709433413813306802549637864151894618565849116311355424334893858609400499577286718327951265505131536205997699674710627301541627813163532151411641535920978702842613001989041036590782798310003936460151057918524560271182954878979122768213449079009576022712378081691133969081551673780582822861957351650690105810516778956652915568699512101719243646200373248151403944343997414257550604347208339922294423663646351068500798544907619092729942470039915417825717026884083564512662545932108294702076134498975745585992615810051735277519847085099724353896223801073866321356613234342818002560250066359560175631695777994568285712749022659256698185974648460787313896357642394441199588944254409741997538109409102951601039619638307926726861793297256423105387984109079417967972947687469570797060413834660191106178430732256629400349493835066794644938505652670698278757629255161393478489654056867331109747352659934268359597197689791076805302275525402869410767582876940653736177877398277101561015265666736281171520617166967546331659213218278460450141738219207912562483190665372202682311903972370068100523860286703115071571698951137230139455368234606931056859091423585759819121210446654896744585832338073815298113785587977858135142954651681605384417806021865583312461989385912093643235721273627842893297542233687999910692377330245954737838512346332069362195274936217039477153817288819400350752752951284827695400009132105880619691923447183308035050873313789143651954132140443730772213236447898791078584934624313601907825226407077596078857460915762774251587397986427705596254091656034322364683838299593659381416283609628104335233914898203870977157814642023415854743056490834238630832226407665944141675807272707749880313416908372291315752192514492875470979707312596059680233494757848360525764930564459606949499553517616283816647634985938212659429237960385768894796830152301402882580402855422125049251782836034091289174622469742847482524986496517398923336039333493477543168571296513442939472084921771633965580279172711428299841140484437007578726522519219320436490718273883759963042792756649992313652663672853261446333574855618638036311588792346248412671542661591560490444135155503131847339754749766512822032188883513606786831545594547517498186181699428090167910356439570673272570855561210391184335834399729412417661485519011697764280049584444156934821800730588442809599379156270098224114951304908550122470785844255769898520506624260262415657454467510097421514564335724531197385183628968507095326396008618449845735433382428070160508483915623543627972819084595594327584155934596757067467092985330646337124948429721596569393610330084330054900888831349915402324940200745645785572009686581267036259685233579353228484447039480389413298312560951922436099392357337490993740462610896749268363450101532215091240131885741030324078493305052356319052220767256210396125892150887450466414659456914861162608697265286793868581319087104248511700744327256628715469230944842274837098744402247200575519537007638147886275117420684884244301371536603972141719921880800079538904087604218299501782512146597158838338388213893963583948018030864717216292665780963247668001142302175906233181015514160652354002095801336828971792199265579740633048669874002706672164441353306986099052443986068123594834490978207855077205647179593468901873909070585085549575848435947860999870022730193228507528710534602676250484942485344341408498366485080175914658661887666277439312367667730825112535099888575995019735541491732346468096057567740315292747923491626610568612851899166370989114084808843839028526855971046081416181659891198208190623537910431780569424701369655571451921166150707599952315007751564153993714235178045573357002358551784639069425706439703058580197468019347096935262879661708002872204347929727200078374666968816519971991093059045180193717333114288531030992124581062407281819353656117349861070968754426934430117924497157849209468382378699129276415737350120763624684841753713713098400451633470476802624065563778154866120068704519159665568022410098768764448082351880967830409471408007797709724114409028359211130573726640159445956436893669435981935302234947811179978456271385277740175225883755636668634793883796815452549054306077160296886676327436974338801305966106987634388543205447489673317858389927667289805340360037942545895194061821611877572724733111174829871994946991843100467427941528922309300727897197778274016760000795752516115962591768390132300973798043651402078294933008067782394132162628230396321576574325680518771754910780375935226621778914934202939265091961024614983842018784165478902927310301436109892064800705591228733218832899094327988688465171402309534867176188844097421239285822024882142418695376581633320386150474027462193297397540886912855203375972390496731064610860413543143057558486451973266809665993757873550747079941026155912736596691813585992671721933892250305122720372774768358831824369280210098770968891050463246064065187392443697723575326105009531623177575270119693032775175133637181051467669226122396964761637931632408732118121357286629957996205383449251955582624033066379417921114937752409896413934687493979921353682277889959827685808637354703119170415595497614749807116430838954171396532098819037372919117969111130953111846051786157324520617137970885426386789205161875299275053965484269533483442102879088859653184056231932574578013934943386500152593816568882836852144256440179599015516871661678652906686847105148380854622399150772013015290462572250598591454806937581492266560831174989952971594958016640941893901329872053429583738275490955800710896655916469479379348297968902280719254993596552027105471768823829624548272088399398377549055530979938772059355652482133662777677446211078585929990612997289593119706105061084450657077572212633466279195888323270460210102623861644331038321284669339791721498627778292297187293418021082234537739938475517190953766145668028049223994128921262448475991728481746715750751212667740539076044762896575893642447403099740898965648312889414510350932092552325390762443301741215635810693259899848043146096750171778201873427684284855330753643399694236866294387086854809389830180682143219128036219350176132539718395317420953212300517055222204563617735865133812821131645617390998366603534570225748515899846765258355940710880169960459502095605204817974732059959685711645386957861852827486553434243247836652467239911310258430289877495992638554122932050134883029080641612356753122767343162338269669494407235462419123591568130606045486895423344428659998766570520407662167624815044595181956759522322569472362954695181544738230602636139945256710676219424935766002535285621889003718526653421706516088537310725796169074097128673571719749854544938300927261440456736176694530068799144757062089934803601684466769636624429617474664352846686121837972211636452859771218715463920989327005128645770222015172892282781758554174840717780578448230985212308402683407383172928542401489610074795572353628589180965433513834104742302959502880155474926138965096878915656207239091237510903621338896765501462985256043375512558177677049688764229117789087995857668133935515190659448931767836704958252399801659481669081980724646764415974588448742429479041840528190020517100344536258515127570735844583180937213375677320660734276923979132451114166596357630441653762900323838015656999981516869644050373373630030818320908726472607544370934111942281966693860765394385123894099745113139184573918046818467964978902470313581303263819807406239810763391020957691368765633783484765212841718011526845361140838824764382869377189790838449146973721092971180757866612454783645318644100847284652647992415546862506693907699577586430664824484515232949343897237336235558756445879744835344366045461103690290630104704948193462648397679078813388613111989539634820031176520327218962237262157108156625371565149694103412060218362419096674874348735438735323324591359623835553796611600702998851890470933284258809669523270831477303165544880504610982606733678234840375032334236786866288665325431537261336630728311050933402471939468094614956549700427477323931247670371292192490863427736293301198651311033572121019573435849837420574779315291134892906529092047814763706730202227388344103555117320051143569875540355670547563789649193133693183532572201152730620613838226264058189243351059541232720728912218749779391132551865122103809074984473998209871283575541317117469370538114870775363847053494049444246896904313980975720071515279944005690707827910056059344023448051650376188181700938043389029186144657752479301410917235052874058316156059654801587586666701163616195599785921099138129259019033400862687391154262287390725509047771917416916296428477588584826624682531869499363410840722744173877905485135563993564951709953627537388790967610049814768107649855356888690343235623794845977782667002774610411944015956130716013834080339820509530444906498760448761072567338282782933090928614574623858341373436938581863172510422812978674931448414806817597660003924764906827706237426813454382452402964318367887905014682627782236817612782645609348091838593226592204235706241011220679611703875614299656404380841138255602817162817999725682805738458925274101347155895756305840518558541805294172777593812173043033585608604888906932728855812070255223276209957295493573304769709755654604634794857288091879428892453010275119639403132398131670278225176083494393384199362268224912221668259170967444475398578762828230745046986589009648407412689500420830484961610030763791075651616680085254933445680022455904128289231217483483311289988136470926895858835390851145851269946883266894828330630454447416654097183854520190529236031654340481471121890613784652591356725027249889012995477738451574877416499723319617017511142407053594027752653248615058240374567951573641789445174482376476311128059246771405991624166585726128686750526332534499688451103812919094467361823317717579101159783357303132518294886348630987989507938038335037367524133960986558235562174782669320947732596395554453661908693189488615325408013477370360647187049140132204150851747489509525818465152662710674087725797711502625255708182499800311640349863272447654852483528086590426052093543676277708828494666336890310399905689502240362733604057536648148661227737358642315909746291985114842469755245019285358530101922470055563719906610405013710813593679169037921862953205248300910592438921108017687367688763877541487065267486742297493636278405315430698167791360544103598559313630072641895746717662326907803877841226866697737481319288951340071675944306611613010888001260554827385630600081596639252977162478001360903169030314642371022821698398738000073087677459643841776118235640089619273139793389002829323325121451137457599235054547875945819746852854104005705009609987279674925244098457620866186586266861401645980512864004224991490956104896552240289258079132510127679958363578149628539556992161855082939592730163655222075647388253622824671974628620840375227525787646937852062241099608817404747913571298013377916162549703586086276493182386456543000442500307119634038768138561718865957860723883987909792357897721700014112054404231300478615803100365187650809474171913252575946754778203206435813164956618461001793475785911454585990953390385156566625083116827302413598215739736290275084089670087915265952508698064070403398578738964731661962794828266538002003991438435514618710881080127886506436581069934676745617899336132337034370137782782091050871516054557705961379300866865308921595827787682954855539667788306378463610771176659873316301271612803569048866520129783728916341804787728471393980869649258811038610876150342926972484802487488680744179277044108808662801796016135472075854152846688422879304228896901026564963790119663640872443339677665056991065307906426114059914001456632644435712657036236180062464428194041282913322051099471265920859449634847215650659123416598281497992020945711655231602528043360033942135171466598111025424093836742871983687763070491634409933083582438234759673392729571524270125681908382530137146466269025741976644081155877358116484746837458064711069373197002858751030894225747158572224451584143485370998316453455825843144543796095106087547552706905217824552335164181131932908759016701932098139036389363552196768813370344803310773192208529452455712162263711687338511103109309478805378134296094868218691656973009665964017443805413306349847916028251604271364124987858566276551197652290625726191071990069636559828224698468509646870541571382337780939914341827417579246375698261411623189896826371830401644433793819746710717890222548720644287732664214475793709477385079763257944171939511661359857058156574726344092954550091680845074959893727894620964292855215481851046263766434141551171421592756203402498734598556095221177072617717263959466635633154318024801397380886725890760366658814828276500522564424526237892215662288761322152723740087728951550722271408348245307753069885693913397186376779545157038428091221749188967859700470348495162033815872784262419175982044630742264903210026902589348544742806498736553799735003431236173184932998452620799380659725837301680774142887034128778612175501068664807771383398378774432804399918999527875840218906074971634435960849273296706763650776291108829002653125469611442672910528948239020360545927960826620658390542901089124592252189705442443367535399727431851446952146017711492902193876552138429122030017811286766085363120771861837143589584279428003809196879760140022735129714017963961259945948215690434723620663331551686007803783443031162347339343807719559070327229167105120314909116325424836303098755930261093610408840474845493020062855268043894318645918668816172604652714507476972745099930834942142011979863288652093761187087589966942576230294658616231919626586438766445784225506709969420694852069021279407295825962506355369691095725896866863230976466138956120718772545148280486021307671589275987252193457470920237563787447962497322392702683219272853030662433574402449332796424972796533049760166675932663472258948703360084754307191770853310972669907618450988249181748710554310415505222900736938408536791200649378720354208340066388470894716628057915351247605814543677482010238205992185019277124923171252612644463105157187462507160006591407298247663111085431619889993612391995820957229562412499850956939651595884520458649122394463502960671732931833660876056084260652780188043800205358209242050816828921225047535173536690969323530921874739347396044555262860393880720607677401477768644610827324995554391186474189712755281289473879275012486340788010384785104892398209440086328950308271827239446324743074285377835813713049383787688529008025363448151480105731731678366043671765306152019891244004520279771311788040272446778710827617495720749525774487728668817135634031218088837471507467307688629028258280243598605713150643050341118911286175155557384251206168035623198766476492666921507332929514236647180200478735361301213685549016331254543863222591870621289704830220593868993738823502142658911146590729974841881206982625317605759569331465235580346819921129011136083180427260216108594539605937241919075474595260645679048619082811562581604194794902303084238791193838996624718866779613950598481641017296575154926084117509765582896874544925155375099644514711550558157800434917805957241028370536236413162912777221047723279120203805427511334239286220190962085001968036233068227805379582738022263868683633458763972500019189790579840231779676434807262190430116863500721075551596811811095342499013914553910500192418279623722439716239717645957131725216094888602276815849697710399073409961385071831992365718392258017893894013746842843722114495036165472152514184575103262558810294430478191240482721238737432073473166767526227993567029171463818545203403752807655844267415329155356399275927003931574800948507125444032790516751930925315930903035415578009714207417479792560627832018710320052300865843791912962799666388389397359438527406017407696321127700694415337489131025069550321995123174683313354636696975033907132304017801977388811164387423242309806386686048006314463197750671380790530836469671344235942875503725426427707004753659347492976686348391106335587884783348696919632236432174488453249507292348371546760473033689069072142460908264498138424282974144665059936552817080721288057816764231188778289597185767221919663759230906454781587890977791714413864507151143127983821148970917437207057057997493270725190368376614814079105036395504973894385800848319005819200370473423425121438184410917687994237410224432655009139816508405372859066267779512344619281165445606640639519570856032719110639007911078504422601017114615906993113443802271339745453340971593840605561205054095796879541062109276822903558315693281801939329398533042242136891476969823878860230873296343140017267200546212421194156341273755757856925688534902641413754536041840625648251966972664332393869969351096613290186477012414630929654348439361911273599892730721259028634787897453955058091031770410295334536010579323086160132706722626068373791470524772465504293144811755740577792382217339913658596908913052267999153596329399965092641095886283398242514686645049931014371399406529869851318347733930829228616785162777876515378127330060048172336222013973266144192626140891775868157820556553563367571810441831039683372206883011015850522982662911041433767039627725857768228738887659682914802581631587150537737628579165879508819651701947983198369449505544485294014835116514243664793737485035896439558528764462597278780328973175596580516094934840359871631865631703145274254880480238303109592733239195912660847876330011275568172080348249192230243917366381171586004615314578998623695372365688363944199761326318734644010590643429359242806476721092643952921291144269654231325015992831470573395470607310222902467367279398734244226664503261378693766193304611565769978752715041250570500300537801596469218351399779613905478399733323373351650373766660761626168572256337388157859524933312950384676028870855877762228397550295237217234768023366304669569574698554977297675521498796564458574649843693778208447243626161382865147240470249859698070875147535327624524151079356353231515386138823995730690342165413344875683282213245146455031320435751999203051454392954792617707842053241833538070547477531293219984247081695845065372159892085859833763970061695483224090714337832663651414985687976698124484693044957912696261173472015851643749531192756918131555645542099259609612342089653224191699404598184705030424290731257552832720846326831586220820629027152523273678807916303511802184599428777541879907721120988605189180984171760388610527654090470387968655398823633863986080180619605463428586434992761063880406466800937806649287490789059698979067903157450101708744127834643179522713776046221234661853161627931598200367288383126718106001197357521122533096562235624912726305226985480618234171033306233888958003045708232384213211246956220208612332419235826205582758904319459355617779868994239267824538997477694243081572985200231032130176360920309414701966062909772237576685503483197152966238474430631688850386784780703710559599308858351869012570366949749454054755984069024775736600787980005995424971179031203948313585011261262220615057943010572475666532971094130626033680473290608857027590911227090932920166756003978485406479156647413454434098937034673030478269680600828041794269322804327632808764510610263722249943009953201088818854420662747609121336038183307229229683370544537209112988939331388199751955713694724421343327490250372746928059075667019441817567853962014446897922300043021048722417311667638905087154383265899141719946621092022542673793530711734146154103975306221414454979195326554975164683326384064438162836026150354241700134326038917516192782725235136167324003896174124868919981805729221553130604430588571678078564967815229967482747615627463743710819437881857586022914733010628432299394296045679714678995331391255838123786433380772843684705215857888817088077637752641726125965880204174749192012237353136205544847360861264377126312311915184540708473172346362479444636434419532161941941570598808107166543342791435284487556471806460321277969734007194117204888385371671228373610196147709053538342511502277432991872672363432055934548970643633877084670094078936323844407181678237214601126796938328375053777789861660335478621662251963676050334452285612118627661640237111590614443163179014678013077755925486836249297882904368569908462896120743543166199934653626902067441770957681355052577786705867850529740121008263168118870943001841042332251532556220381330758769327846473942078960518870220490447279517073080649997955421158472565698905375925475758308584018246818452523786582166400171644329987684460825830099644727520173288364530494879199317481471249102238837233187645182107419106606743923248982370948592054208393359223147405988569532659985641398508810050219025015322183311379388330134493583654366327010689782472727924413727510938193976175529638625420006758142229844916621643108064288676004233188990091852160694508056997019596080989201130743701714262711422461561407770674438701610573880471163232457420962380304421739102049281639493567399776181029843644360036755852699246237813719832207264291388897255520626330314701543753897046037802245121177668061490886973474253228855893281881456796715773960638527808539222239952098655308807488041802017131233129453344012726618043741457070293557432810307530924843020243499965265456293365112406511285697945084700772341690954563020708243453907050197392792243625874641315057930731278274252580405934536873488867840151945530954989535665895456759692484889555717274184627108399956809859605140521351829019768817681063891177122200972877237215141619508905433408890506539039965557693193995856515949900660179553584775091804695737672027952654524309340279903500684351517333944376090803454926255437859528333975796219422088311388895803034772348244245988851199212380700250123404957074235680484121900898083757074610468702495180622486252575109095122161878963422769930124954756776831724052512858270655594197401372120603131192378697119423274222002924210772759639423885399888063365524763328482775236987402564510921350836074248912670867437475545668164948364120282084017629505597272903702300210909411230432876291622434598715298470944521742213153611536125198421002173283882358743297782812384898898677433134536469718461140292572089817565872243973819866444807648590958271162880827996788000126574451103808970865100726677886387332977483811506760688851524460848838461551809650078873794661287263444498620067667880881825671342969032285567938978446407791539618275745628151641091181024245977358288025412091486511483950342599793785048997333404353708921022727693558013460969221071400116975979977402530572947119340831048231759787239485287486781088950999609360473253525646826455611465276767191136987366439634075233403177831922230928804328000563608112920685365080928651497357935844362866527733363878097950311828187174566497654717664813867877731468343474521630136387818945401641599108899928216975840354234490978286952181422956181773841890549665103674684291445134795946305061075043702778888226636826937329884175536235887895083507059664960606641644567116944185573531236506741658201036240834670643898687048166327306063524985898873329151699227071798937471790612141263506372288390298177953129648856971541308334763126529961030855487203624192815338183020889663884322567281423342849211754077177746001338482624443499569896665108092692942129571378150628295575547706950146975631178437699653745991701373897311636103682919943882920745025235968870014926553372889842754892676536604498431339056026029476031303064606585164925999565413755803103336375312569183698817180048250444448840900716810994025190882021144965211559497116071286190053872245677238863616373437182566645439959727351624033034702981953195632865163077851062845873132167531124080341332237168371582442371175411914567773386872866943786584389288585834601545101765389595420089892876469065946483611660177243936175701536486753370849213544552785346205608640565604818313167150542957538101209570789302967244365523015404842136379562343199053756929839759757036029750853069754742500020664584126984929684827627208659315904878043249659370189505905041460651408546145623024398466488280921761884417957382072685592584681661714277870100091855569241811784499062274464512323596734151645360197779374370795770781904765323928885772385339492780598180793224495702466167297752550485651076311407519437940775339657103156377368012681503003830459791875935130119001420024596157350273384467364052718091343974289859188706900124432059187073515439231292631958979563680366680598354598110414113309981819210557430208509948086286943320867377394140427599112675115181803888332429413355339104536350987259616589000250177626059973889334151558346596945569971528401210019639582303905194455234104967442550589804684748862144507437060221276408577232038666739099005891950911648373314314821323979532564238784401225597345002532636649179024651896937392400653573945977752373835342100697687943991048864926706901257903049184325650034407178119792084210734391461307652835050014430373493044261882062822071804177316826817600543027804489182950445942673924178344383314782658913948791946463438394017378993517856556634627687267359942210607710009373427756189228033927186954260804815074482818920749527553105367096446160069654558949560738054776934692937853764305222952965909916206820238707319666919263191780597546706295439309896328117262254632970574791127554362388923160457809521095588910147943896374037311159834482382543282100376292016274426087618689669408548020178961295549876197743997366532405319496853256212721210673971679974657633372176236518356931615985805389624008969287339177950412442117926255280804424314345955833892222677748010016392665542666503569526268066036895371910543421855297736401847847444031819801204567207832008493916450416138026887801567818035440347206384000763620002091651172568019884892841581453363894041368908104446492848003119335284377515487442314348942537270086637487427594948381442496283968624268915374554645775327710284894916729408245669105436850305173097058818765598788970009754912678456159439429493177428279231761100009068830648664634544563556835585514702592685992824989844808118003093533979017846412911623170577674885036892907969540671486033201274098501760558267557803588579483744388745980197668555522128827718044706195771928078401462230970245570344576353261727266620841390897448693434465610474466435732088422608326980444338295141995406671047955879482034725936022438182423794781560006651240528393106326796237483207575480246568841490350186211610765147284527849597165016112224452612723834874980932398633399771698884398333499725561151457393628874420207868799890393374532349891023350307250702785464010861697807427568609654071848954912051907869912108795172902908502108002531431267236075610012766878380864015953821785453525125077659217194808681539864720807975027092486002540274647473572409609786315976303846297452981384088732376680562009556774098990578529799374803477390954107012004979606515210086598990267122620680728066309510930999627011668621417850082599346957513787851514373670154368693502478601591317558876619758590985619601925069379680389809435447594703769715036561104150722533825125294723323401022548246183274711138059906121763533517649048399685524096528246414407041766526486318302296727141463886884705607743712668285220083339899038649717294803752457072532792832851225927907807781921169348548985030008066752786673140747854757905338054052605829761325243473723913313269839137699187613195916227692183187836952459293294897694288673686929366352544551717577937774582433369484827450996758754259948450765482828515941971486698445933662611843073469911801333511515581392130028936440491715787901904200908715129475149378909880185674896316530002554794971759611725071536841054141849317282567894125554477058404657914905980031154029233985227260920109091928465347193689184897660344557177394020999014257792881879423437049766060787156154168052561201740070620464362688231757636320534816469633582436902429025678024896601501497206628849226975789306509760033317478615465721659080080716679436846372984281220836707245008283293730213967582341495724570116457330166901057089205681247671048615674588765892108910618882500190719813480011833013813117182690597252833994466738633323955649516024106877124318120024015000574956077150998679506586061225980714899694504464267360554976814460520614506845565142749615437311506420458569368048769037068452437930045511788922910906573493817591752239163041932705322310162283079542833524315903630835607444226865023578495568575246687322538196274598751777138532441634169670483210615652399608988844107053358846976749447764321994334433507738268826622703797681542947307307671546515997806582124333129821772479836131927505310487776133509114201570971235305595045224387058256829741987087633050123517937737275122817906434180391328564048378861696093957256671309369754890789406149315013211945410878029247434276743621539641153103057823639936147402383738730131212882745729529937877333229523492161721533171510278192575144246343794453701737384334009672484657225186778750707514672979363449369706897460534107557001013109711109903635213601733644110867614946349763401187445456780696140661017810758113526857706691621359926177464788202044553897077367032641098951377578803843584839549634657284491482048440750181261873041139840512897684076489845383831783955564310045897817175488912515871526722934872307750209530964380008692169323907963824563141932057996457343559761448093343862560358404081795056132320065899698483151050432344896501446300897873248192220759046272539499715218966829986731267056325471048352084925033988528621123787244622506933379019419250434095094657022808256250049756945173902867794771142940735200243324369017888425255704245004899533706416408040577299996000745007975985050523740350080307503459424501774578968415216403469419532394944338269310556865416583286560280030434819561947714435773305660544100144397406242452067611559171947970810948107168333400247873100195456537253393555985471381084755232947426777859802118573318904384526349105600080245258089904154891623619952119013821834342355603875107018600330451329374277724616522129436417420508759038845464028036438625354387396021955285925350487888780371537359305135788681855402162023741063776476666758310039161077012723312494007555808336072524507871467805273786733173232860213796416805475682252355201967475522756093286215839277546331704659689934102766388040422038816837248418526423853477500732407075136372494141314364519302182335258906602090549626571579371933853512731745969086318301844643875531299223041991039143121622654516675181259097893488979070956207056707061582436146584267950150907324806621257268339494355872143090786525238119831594965003929698206699721188843710894988545634095403243988790940795992321749711050406847943015109699071590544316626037594109649193532275423055871122791916016877187500858005588827006984516467102420594652823958719085177009484084838250464390908575395954122016786265230599613442764676181028787223572059897554558123360646443984372645000370930155543596979589213974835083710450916522565381633091638988835810730836135197909955128967899998908893990058186641376280576560526830878596839687842287453581850482941250986369927582171121407381647253421870675100272955273992675809987970406214933805704067112201441739560680291246084273954379403718879744928609540781630623558564543636418329342640073372971789457639148456759710524714005573723427510056425804003962364097174302665178511261567519381535637702812424485706884722494294547339949132857781656988062371041379500893270921173135558304209172347341148218791192590052039787062275278519320996074793664407873637127270676478376278079194755961104490797722127082242473776048265125091808973303391185030667478492708922798213991409862662124424568882076299647115506200652691213504916348458543776569428447433445502459795796048130321961014840101454988223172159077626439352518417026826772742932240363150162987632121394405840538155832512307462159844616736879043137447014846322037050581389956215106605088466459088923452986628685097761934132249788563248824101371068861458339844947196094478854248537825541361941357431877028250503596091758806088876910382549527094299588024118508244724734858465087883329203276275456579566423263117416012763366033775003605428808082191073896572991813482749240771915624972029065563971618319027606550301571681272906283196182471956591452049298999370188936526632263194152013072589003933267395754331008827088197183608552035141780595869934507106553671614592261664010158720997163992715221587680900805272527053495046980994866628793944360346110851203166511264946968433209382864177003515597148534321789983967194881260249179812240004780566450620870728436223698246127002366417705884070411732761656131187363038182839219189377874564796286446047890335349156403054971463196383416659340641223837417835892430677026043403316226593795083994255844457609649325588628950151584658537082549987138230312939437838288175506069020824706358066472365919984053431094656846228616142289441507424921920491825360085320580465521245382929676009131548557870717506523839537182011564050603667732037983052052492301778589713291722568653686491694785974742963498418234454874347292219126597530982624860959086423472910290613320181824517190954718713690478479501983702725729911747167793011462098777865515721909055790711424875804584322288311937286944497901445775502208416587060110236921200857631256884246631754495560521356990402271734565272466953926384382461607237482080811933107113430116414143872769778673919966275290205393166955043633546038020464575328134920679315618591258220027458642463743701885842258356183596592529940933624435128866443822813672293375855401716514349045677583339263534815366027881999129704289427310930904948098299710259918581669485008354913870540026428851270489897492924395785834223418603687665448848572691222714850291043271310698106392839544589189671784197602767293639696382443794193754983610672012330364247733600999505692546748259336006592087367364351251978548254358060303061582779487537619507228408237051265672390105703983141399422715240701001473811912550487094719587758981158318276233505638453760433514320341012027460990961147186087048909331433993528406434709974920499687164891488753823360461559320712067905429165162878911558601735672786150384814058854549614639302969727378138068589932252096013254633701243975031578186454573417020437493357380885546734293764063553222236368978988523787152698320938605973187945856934978731380289768936983492831234300453668685252722674576960027210806260497799196842749441305929003043340885516280073785867695160984010097184670923305117238892130405833359951842376171496486138603876524199035679240476142156326365566033269325347610670695626646379201896858218304876513216297435160347561818445266312915489644572107481237082296926254665010048965292586680448077686713373757875334649173092833232473773835554092877580448961523594649923857628465419927317227864359052826957207585046397287325823901512376894940541544864000840907848285355559480620443421275844554784922060600956881773103914743850453944856505476184945220137831589451330040851563054211397353758833347425701107718999138207617412202820884448443777440759510664465580494503839554730421818169692904138985866962894699073954242273395556028690116784913733974350561091858826327705588737729659114370088181749932750507266791626650799210122920897895693916121094312539340346168269973583638355337818767516112617087043335478427269669736297459270394785459483664652668982521757376259039415844779845920749160134100056814459406379632594140450944289463256558239995229335068226869576867653915296092681492375748034375471029676829592549697167414603249132330132050467155455887268728610326287367127477956533865953094338835450564425198098692881623342889173054615068927219820343051579489783192017313303463572804454256426013075982875167934508795884285847478080434640636652172892244283042136808127426040772061188807635436488188745749851592492406866926176817961462782187879403220195212424796705760198814762868803288181120345298447883104485400932542021292322580095651615461381146908415504890191378669411661984717036487134148349392189934711373685889106333418251600913188852140139525189633035130477509516971639723811187895065863280634561857299063105338882988789141653624154566766336808080746596207926008753927615902498464940389063029710225072424504659365993028163447726152006231865082272041566192354967716527198053525545479028017606545259375890375400453266715412610118192677684458370003480328296689092398194015831694912705590220162697923401680395388370139397270894305614586352866381962557990246291858168407868201613243000626883683216512799221859298538087131169797372324779698865168439233649312922074171491101120337934209645077033236896849281551888394793411502371879521686292322071819594608785593631007451757712215910034526372282138900154088022730913320438975439195798941113606468935156383114529066381619396341849106792207259451865173461967109924877811133586870076460735453912605893310583640468045767726260617627060150557733825022459520259849536520770666287456770471896610773673375768398955787579109890022031193912706934104021397215925307178876878350505829747560740560182619299448365585805992708748235543119152289147974240233007323269274105750276794127056485894255792923260516865234422804750535101417047439481281750683284007259246083865959246332339798476137869021512523328600870160614800501273371278304641704065448402959261745385476479129720347559026608634749738911069685820191181976196944884212706503378146450079189491155895684202910171572373587074692987503487500735675104854727332026545766546893822330348510322219793324673856471772040839937128334280928043803665575118397263884435703251228390348390978714026604640374612914485440720014268237257493962324547370402455328968836781048864947827749349620381679960190845732520290110035558024993080640558275172224046486640732431838633681091186909957980964840928938078711669651277705000563024552754751279791992550497351089993327342300937722610448860212691744492972773657121015206493249371536176714889980344951989054011968375269788374103810192107706052916180607865902338915408963649208502340329082542515577839986615419359337295890817136601611346673119570371080096308028593655964891890369692922106872992160087960799309475273889994850476463421626907149670367827132029347828710759412940656319150003236449160600800170704267590351552937346691394873891000753419925511826456456219217854129288136145971382136587428096277818840212592120747984173353600927050203200055958540527154204394068543756943487054490101858463060883185386437531554842601397641513247184067977956581604972844559154395308795912952470986092163765056587113956697673128044728153046757671967005831956923419277077989463902900342686393820871514011864812440058035467496514640387520412375163743461111934802621029813992891060975103984323978357279643535196863898533623833296454507852432126105025172840471138804500479236335564822856418308049586933742800054385613435178465796072207718412388066976536952146112370814118331245792604978630398260926858491248033753629110512987957188630444582015572149181300609995469101104918568023670624530046235465353918610862722211913210639265340766738233487039942610324606016463789613886227221556832496061677905956632986414095853588482663420935659854817866784936598108225060352867399381216796530584655037517874386106006465486636090476389153631392479687172968041709469468252652443988932061912318823693607560070715688636308142515327341051565722235459914675178311363768721929258970826834062974398281735379033455228636665617944877668849171447277927679371842742265856178875746517924145372915412456559269155823976071243282798950371631926650773963453345405556146239790555430470624459683419024450755336755081435657574292676461175729642125281948640886004144528097015766928395343812673233870412874958612226930471445186020621729858037613877345696407004719052455667547953518901729936025811468811639772959060794824467251279671708743215968017770761510097622124253510372043928832028370012252311688335514859898028178134472954683115153867165178565680291850286447093310648882400311474435305977538137532484866926553831959473438139276283306802183447213025874408616478468236656160465276395199292497351676199249100134530512724314459962672094025363676202212740570219986323065644396119358248829718060360375596223073021347043384671734812641992558483947749377322472523563834658736397681442066497254039199267100274906572414723615912931882174387554646742653526421795249000101287600305107898958889176183603130195421818691917735775041729820001242749028777542559704167426381058082581016629252535002045787648150435319256889845004878689110795240268993373576878329223423322232198872624991041559864460117283759283912327108050531123573639402986940540740440014708788424027585003954190773861702951869301971662024627475399928148653305958798205984255809383151102714240861491750942104807285437447344837092333492001781325162653324267601327708988710794190231745639211483681078557685604245555876534683318688793178043732153411482935507529233123981981646683673257840825352252947051283234470159757878618934011958732159754722179040182349339546759348865041312036221062459141350914418120415774974340767215098460041755115835340833897273708676709168691376045082974074015171775751924438225604023930234829419589939643915816106225358917188666145843099293676426356913232127335042147517016329045024827391324601393461325564791794130914935627290036382844239157487195667137598407257138536093337524653854908223399990370687432203627278595771885090251988148195293644512526380434997996358713934199261341952133681035555157125167789216060791472066593663496560530997646880981902946268241600646388024621752984896470635644529497473831298175577783346014790714794328235986500203615071392951492812110690340916745463597637146993700490038936408050153020604939189548145679461894850532081861818780226343241068138999824907040753718724376793359062702540011486841972322423316929023966327310840192543012477408337136119087638039575051233237931666939504074777885036316360740092081787397324414733717607421075391270406747534753921250770290292302157522065362063994972597826959461532616080217242455795956676272982195501898186707918191751171311538239967077069616974689219614018103443097225673431836526336651009240259140530097311387462738092843848673686545849890773374478102231309756440838308825975885478470094438333724563931271262206469585340020947722672147946037914028990381557363212180508151214070117943693824041259210158647108266400132912289489882121264490871607524965710663708862442047611308367178933518858802026159651128443226918596711539012422887754359916265286163113576356446495953028256538212869901114169640929604047460905050809745909801714765089944651360860243343462198137814570338971141411702353102909074811132277029911737850835282185035716464419035981581578966325386383714944644850057683202177931397842263810620227419186535489596682155555027728428820054617309430234608086662835281139205692227747522541311252888699654938183765786931548606615407688823264185186452766303188952213821889535924102160699661584393677586082574946906659752939801828118112708681852182390026467379655440143339272282827612711638189157257811510701182932874385953045626630720921324339806734341368987527383293915264664646724604883062301730048668762647932198362645685568094442792726782580106946012045508939393387658649714504101854223200212014681557606842162955288203074509858633816331220551910338124050272904921633694721255406081152337439230999314982706540214497050193520654419036917672573404996698948427474247463768674676790322999519396608353025305827782738541308270396973859093689073366279087615307823865023217151875613373215235959665999702165839367832784436266100809647919273278445267026888472139061336185619878544731818202857075956342392978470171475022892074461473880144071273101889624842176070569024019151008866889822283950266027011736835678905031639231163908289427452824464594862675124567887258069407534551144157227416979237650093314571245100886901335142923577062884462446852514665798151944794892091958114862534672633421703544407088418004562307317022302647247217508224397324459506387898254540092441046657068326617384875364004258326748453168999660824474170725856298634087793857167413056046994406551222510367688667575805022397033845071562170268380761794895041604123606172544447818993910459613981707060454828775965143393895678788786513027719238515959685042405881860878338440074334783139845255949907257349167253570631232826721078008779069338196118383694400053744739572375536677451617606469344669027818443475906874396833944269670292958105448731825465063415737260154347976006976193029692497812218978127207940910353230927736616155390127117715808198186030932172223936320322191072607774169790697327267984630372792722667341472329606393736420171054753916131716312732458587806403715959297480302947812825957487943097239846194321150011339996883128001952059427626547941651136264253461957207792447213386507322742924075668532114897991426098431248506965862149236379173415766988448112150456826450400794853869984695578990333611275157240765187471153249241941165951701327625068559057085934904368907748423850105678321289268676804025274375634874783271425330434560253570874869076177393714039565621203024838351497476013407507102740484214221884585740969700363627548867737898568681839926363640896735923246749785790138096044224136173002662097186982967957103522923175398960919890914547883834155599117851012458620482636850209240222742877277426345157221404619150421852357084379485249047456796306159524011088810352906550010053524724124655657293863606883250858989417056023382349374483239839190644311981050972095678685482679642101455099315159935691665566021988260195912880157383733489456439397974436646058014506106463327915040248753561150193073417247709305927843972121415113082235114359430044355939567194756763381376229704699093088368661771244057576089119824845286581878277099333605516048451303124781656276593558710319610100664826351969696342469744822036993999102477387589637700239898942618827489816069741371260956185999622082968596010494092980594524011637030516635328840545282182392219933734422386865611715641255475483247090361942433452692213615391412486216871481955012579990549966304901001763272312056711387871706227254833303259160173313284395942469516073059529537976902491252174236523298114517033586954776358779335627118699709097208168083580453674147370958256434269393071663516058400644495414973928952848760113859851067481681694569144567461991723075191014414858206571317211989950564123867810822554418207979550812693150842553558534087676111163159357088290052673229539221744031718099054742990351005097765125475686871368793518315903520488692386088213103782864230022017422997693234016843848865367437571287282359755945170115819369315377509276757057127067266852820441812886635972379117307113572728777364201828595522138846850323473197648655803168055274839768348733006872467393445309811287639056095764010759797097871071839802501397458545464644908285530872046079706949529993926843673918015559077349163578345202993269110595977216353476574104593933744556173977271129505672670167801148830634431795988407173252739316640969856920185533335192154638073537866730045797786417509874757760509052887466602529647792370203298281317873806404085380562709504356496020373731317527551752321848379041341590065778969625927649632261710293948958963021219921428976246908322768076647943839753039044468488988566957340569750701701491788087609826230022918865344968469479027252418291167249457631725784639922767232024757242007786935230753303752908141157738728872428233941342748628841255285294184988961181883619392288718878176068456420769399325690194411132426789096467114105103415306639035136708120880929027469585387382193460354116294055672424390061803008792829437026997744135675332475849298458468081419866062899015548226807368021837205512325045868240113817456032843115898821364823208764956465873101822069947573956873230422963871124423533872428909561839051295642829368234611516642919612389275358615906527791346527971066186423951650901074545687231944289054361408815496469636462985760869499242359822554086321344135068270365104529840308464389539658117176991117993650478686911305290702485632420712958439025471577441069290841760850077047520659245671729342290545565712113792081351040705717159835854064028495146154760895478281487363350566509808991777336058262895963236598346020896492768889642210045782374903527338816589058891407380819145375678483306869275020344536241220813716241151590472932601986169583462659712888165850891623405949188886655386861574917705137080547958607858709239997763710239216328483813150817640175783057396329080889314874620797382063457794342893224868019668992657417596733238296258948268126438582314681018139747293313110728385741397814840434485017576976541804318869920727952654544753686197338810972874991040949939329853977869724648716662624437979856497109186502420249844902148982810981043111545018823176346340311206159073587571357788593999326548049773905947365372666342185641159194852557612055315457820916046892210489563182176550796347651230292304332450467441951367493349207409746640698734642645522782982318793570164615793475578983537704212831420928249177411652714343750657991615999320729785698082492992999722151013999299108437687216214203648118186643222832608446676406064742800546077241475158160225685334345232836250875670417272367401752939819509393377187401586257130357336848020242631418698630795841719870729127698376723058626936165892847665823148380032265025790180267091292547377774222037153163296999074203150482619884886415098109494110233573649503348377817196078065906627829108638571202162454625635226251136145088637208961658588033751286925421185667648509329727060150909258976063366980085545805357657090196999731947458584588465904363154799973205412803880254418929873940362182991404556971972481769451956572640853237888462610693553509214540905596425084392645763546595482612481834673688990370706717262787265113721474551554325148406291800014100704089477857376176402955951140504285323065245967484573732242659661922042850352143079812511621706514530930588382875316796179633151601052808470484383985890614832478887371166955162212157931421984312659365741701907427921588275841223215100980276671226865426267023731896576585541875904929209017774257918999818532004956383476493838050614099000291014904793569244419871141434115704037025221687077632081068084594572652102549892606229427997737614915965913067387519592557523924934071500539423194454539638836313417165680753096508413295196330093021767495598003778269453820834310570726762813133747444625988346255437239948497599783185642154288412405382558962633496739645044650938768705748300682316547732131126718416612757912058877343534788713396768042456876821271472877135359290266129927049106583804276499240614845589909718420534979114761150200143474662437412375432118323438562218615775670443169365290142859245829203100022867242719620560307449381202166186585299592803806490417187460962661423543958722878524912717523256052193148050996749034110367295664354114479140520032156934146053809432732537186637061833852808316122423902778440719773273623809584514926025772716829311632149365156103176761063525620956189707706766700812990136587514245954245161635912088193315167498622503066518365378079309400730449571400804723830627489683906706796653297262169661939987193674853554933219238100926010989811175134967683452206231556635293671118231503533908586629085750250471215614495718454664800876718502627593204979384521775747102006567210086021735964640217144482002364395357321705671536293488881534350070239101315729543718017755986243108859111712354125148303069849128571657824348356354194143231323156585901107183525113172674438113536642177704797210630644590401067436590342791592240588355960131162853835841071851173677949177892825857366981009410077171669201891329039795726990814004117964266086340722534021758277728709266042550119610104511122406065924838185012386445832311089821075496029018707085689213530810759760088977753564385028422191416912229008556870905360278469803023929728920779968413000459856141602125094312646735202438980081020751128365386614860476805884695234857747991468479157101858481248676734516776254603237667171266985806718896997854389997983160987914729565745838128725363315516067755370057712839612194898481902663082953929547365323212573511415699486515895259192447598367409171745707416482075065265286529299324922457216526750854032582553785173624582159852131901578767517991033473090021899805249572878732982813037677876096759910096857737502127079042343147267656764077472028254752621276452680352961545366791080069556171419012024992231479684417976086486893324170497588122097667811116603519458355412964239687020967041392024904303148755234794802694688426009536521960829944362844287852667168065316172878945223734959707140955975260268213829345676820748089905496273758209347167134140863552982804866997944074638366416535112093775574195404057282689620311700545815586128157758393384817598538548086277456519048694862697462002096839302464670320564376387389023150814242510307335267715402912323166791818011405965742428766105711756979268569224331388473184679427526956209806632791797859666123285897598038865651557070117177663856169269456365545271783436611785254287215208733326293657381364002494416503970000480296836924009312037876139012318491068561301304366537558703588577695813554206307212939625807152711891097086123032650530591837852035545859665835043424258027903491137228070599863157484931864963734194731809105841874901883572480295203502128053689327024646503790187372645849584272308952393216974976913514175638718534199083991857073279664430082119372294047278160411906893507944225909654082514911423200016972973044612084904925080682160647013921009915713435480595556949585740664629574303546159091506562504808534418325881080723880672579278434411180698891189374893384098924135643456976319596659210017596658846824270984964502198186445590810155930239466256118204968845167382827714881099908567318307066464135937854758182641503488101244151060913051704572701486400208056344969525990823265558868745379609192971367899467251492536118811994656397143105867642242591072667890107318946118348271592374103152450004060787190110008752407821091804100085927609660422267520223710574348235580902133118042396821512851702772608193274289046333613347850507840666410595198869315501790770099084240909632197058258988335441975845408400106076621420430727369547414715169273187349494345088942650690936431225291120352981781465540712850073194135324250337278356450261943969625251361332054875735742176127992601892411398872534918080744328012673488779361175898701093749044357133211676594629746498044276152834476945594058011029128619415386018607462189586371358068129829607727854463971512449334461109429457733482259309709096649279794530177611084334260893365643841331051763476738931499046398194496236181731275832707913334717385853142488175147275893048026997936545555828129001654429773702735236257552780435845501267980345433965164177065958980070603653748722138711078267317414562629648376946989543367973780377200392477720657909455581574895474638713604784780594067879933577783529170997785321738497645678474401406180975786359185979718933664125031170133195457907145454684326697236907875748786891919956465262956745971276586562620761197593188364548477838399439173426717524875063551855628892506699495279490423553216143050507548537115963342935723168608283334463380412719039632764768803899484039859933346255037517263930103109500648582087564803638277819749724944401484223262719286881047952371470594354620878150108332906773737431038710674195958920787186349417011249802484246002293187794266483660453538533521444670555877652164860954549216578272200980883824249837784894675663708164269482017953182689139821418837959617359980356964797490671712104893730625275192969509465308409146392467509276306061215966576454011365885210061906887249120513198329712127661442922992027927911423308115680228298206422406609070362729382133961198709514218991057954295987182228765822471454884972970531000690564496786813466179770709120157611486889713892935289259360037302776677257627596267661731034181995620233918645498450336612685409989500306548321013455623761477284605388733165739019019736727162146838199064395382408439026335458602740135766183826455587475147660146460154683726405652451347353724417806456526449045025009513735575646114407269929652967668416023754650704367249562548882125272768550284147665964961313290150448666111727493582980310445972347029883843884488738344360768427835625082597420444305894650720940446336151523432331450113753303266162531803014672793564689381395535082622114811490528195219588997617448146233422348262591466165448813942081878276898603727223038126069656788362694917013075775919765070910910555467025402262206115109569570454369627695701920240672553137725543088806531190280213433280776657986488096209443053980597321324477914560774056490471924459407443074289555848239421883472202606136221158550353906560205861491694654431183708858433131306233501013725524018968882992715691019264253798986772011600369523818677339540020746248801157782916005714676030491087617270151655650392888167096548869545660563037125543485500187146782962730051583278551754178911421470997839510086610739853601777444701904535078245965584795654089460982202763621436827115163851805855257590017890619519182435977807157918076808573485338975087936309612796473396964162205712568450729300590708842854699085867909905379570636448358286733668328727013621840703433497846689460907079305108317692812609234694454838516000434615137313576007653224724291231328985020443215031713074747969149313396174770240288061972308772305004829497868512470635231517810694656354782126938316241742806962380502359980507193571057432425026980402716284370792898990532012247866506069218076030375716003833723418961286185571522849007950765220035126493216731588925781806085117653133749018812438598041094253388449642670049178096708566874196970011158189327208568951893343554496537764151667091427229171585001067426379885738845950537877721719822098957374960561533468090548375204526047218517936754021834754180186267133364792471568910647174000470417669061315986793683200479791323492573422988929113810713015935874635447080439767837700041046203445532601044026606268768609081350754880563067731612481939629279114457221746655468329054591250780936210492740392743789155968992486403636741862132555408039544325157442803659029810023916522276370142371555877894123809824193336122194541951127889972176762848587264351266949395548333504869857126953106156128627882763939780471786188462805460744870490951523770724152524564816866066341615053854997647752670449765082113498211669901562612420513557629812514138072752534701448601710601119905443442491102867615656900678541425189951169211204877310416535104544492416496455939561137732273362812050979941683977931810949853140984108889058765244196320717430761996747718420081162257889716772153812962455015339244198271216554034034076332705141609260697106170219847303037986960741666161593550413559234759173634602996245335773886060273380846048809961978824395178927874390986785371757713139163688643325956897830075202052789380072262861142242262453521510569332272975586957121990699906225085262766766363424457555277884210548873625928222218454957994886987498258897474969549117474647283333285802635149147065777239071793890266694223906157670785379070528385409803121196431964474883181362435967375990518408465692667984157120341897898829276572846686542567123223087569896908151970663670296349865415407553901448073366009277653419426537328020761797475656889743974172225095143859097077151999297908667208969614458647209951823916933190601678969718405633390978432754894382526329115534338298169473567986132486703531306355726859471892419668647964836879153959577534256762069292491271083496506205576731470229366056647805286960637393972760870212394756227821952635681391713125397724853558853400617973460836699173786761301632694006234552120076219852899638240306145061584484186143078034439677165517478404050030480597882871888980929421689544710820293085169609278249696759825081620263216132176365231375889498293408500013625574654977527183781253265730652607105560429933688236943573102064703548573895736903792700936891622018708026614364467971600997823801560016218766454580503920874236782549130454853820514979642690520471100525483446975265725923891711208907964078790558880513686523881190593661697357895023250062709024582523566327924451779220399781373006077091510367796513741632726758562536642799041836797622498460938219938593939348152562981585343427698252752978361493254831604354557524924766295177406687005193002424538283054436670759191638404365674856509144107700335185596784634949559756265671665639927896666721970636359227513968564893530255149179749887290127531545409712520683681413654857379998753392329750470083920376709392479449247699333114880818072473880248292505624407330889559170561517817176953104465329593445315539074945926040087377257489916282230209355714113811318404717005701178908017562797848207311982599725499521176531863081382169852761988452979210796449907800515317432773152032351331740592765295531691160729515289040546330715205842869712339983778573849463648457282262403373185907372574468111871971741840307941269056160022330052586897742182977781255892067102966228506351759351894100688615978537174580262746523921336897380036529261586866916483552003780988340614723353251423846979647189414020731351131869628762746128400941690152612180749987946863396310901447350191566477199384660783798054055468954394988037633128053360293169344556655242276366652173189985231974164063933378336898207918304042664514845793636121327142668911245102242511946657300209210646802067246078432352974214954529872364144931746761858965991955956922469950258393087369515273816258195943154162513094227764900362274627321127648894590087109455497232484571741059809733164303814446065397913625728148864596759050559941854919594173380639501165006891715508254847306976292089148955737311043257611210579831763851206316522046669082752377773801031072062837983671617483150765982917931908536970882673718185217714792401741260092016612079793384631866977400716629588644931822259907504265154638719597374831093229353431524844381157806279351646775472242411748811951185902528692224209149053002270349718128827100731611339058968876049573804136882447529095246861944544087848744386593685077697349702456984200612581517454239772928539328221591857845875781567675061386695843314761435254586840088349826802062227574813260396138901248745063232799089425675770146949665138271135689754874239562771336451768453604103787174432259066035617955986052158664219774955565015071145289745582433299281036781746038739557976867548453541799176256785984457732332526487154430494453829806786893633738077708471282215618810997440239381496274151637277815447210683488103152726042944889471712493102070021344848073295968330843095848991617654608132552085432247324829970156174874531007516830910293290893424761323377409847258811761622173731354373762084414786147567715170138400293088348175297255616910762451414816471558805841781575435678460809605038702693416280331182050366384830282786612949064615177893174505355309191594084651370552628636746162724125384705305705730244000001234864331687022258965629889057298754475111128041150528900484667197782119105962812153514447538298096862786800484213746053576252930038889875541806968251772789232561781576265527637077430862477991300706902184079223778432773683138800137318893406087072802641162225402185479625296291456416870283584588105819188776880188777039362838630331387666760646454241810053184531777153789688059353205007813635220105332607041448032822396041390823142563697027044833726098243024280899271624176351072889252277710076891820319740215303234897253205280341112762959561945840320721555931855628146781563365910984819013442671295071180109022018634430031334201225789782133702341750493476155408459762139101264736796475821618578036099985790909266895339229341768924034780700727767759753743120225471769368035858291442300785284195475853399859076815646538594896352503573261072172377579077649433251908278507156002355696299005693708693438679831841569029023603565878896899203745041706018097120190281550376782858108350803901654963225126011019904723776628102493530801867745223088307402152738207301817470248077399840244819583618393866414960516759785998435366924322361284863859158765476108298250562646228237648148774201955895371356372892088398136943237883859382769111878158406105455474718051974376354660380667729989984559927373748170502230209488323043953908698513418343498471448142134788724659482279148236192489554529808510536551724943838295059828033783628908509062312781612044443289773072636711413318675165454913063174853962380463677335736892758036022672872206172461210222227052408205663256260404989682950593002147622049951173160570961129391157493945941124360217736902491870483456544019795507180287455987661684748478456136180337120311905670949153727559420734866760812811984673210529696691283987382373870045864119182277339824332572796961252589765791731022033115091145090330583391961590545915027459841584146620696683078496678189049102394870722053181250976042246400206550217381728799737743502329969693440408020453371480357234222592126040667099929127672906734918880943497485560321933842544716383022050309457769531486347303703751018715011243157736496094699802880953276503255883692641282350016585599991522490094668348353767288593518663187450455648718568479253663049256875490658822635670538462724621284052693736907475235086318515213337657450057705749647043225997608010947890679501500919035611601887102119602999034862025000111395508379468187015320115422819077808827072153817381567342036288976491701376506957619632080923635580962518340928946592832145963977521392420025662104235702885630001798362579308291442751235694560339389491618782092149614706604579215534859978779455760243054218590851615461826601307413335498532020836498307735215624153350175832658763690475330851099392869065644908305382428986285651446357433523617823366966287736402934214529719150495183080794570050926895050666073683820803687723071501220930932399007806445013197557743481945296826666188113595812132045798123923943242989428564468266571931981090205435965224201446282050678152090062662899691301497663085684080565454094537112076993341017730456929620469436371276114067491685227334794012304577461684815184818069758666662895887241973201503744936911356999115737318572603486300740290027974638818571483517010268438844921084408464063711582935302085586660634678549177733758843850422406405385044904290150801376345404974157911044493628189531576007912210453145298913152703101828363216492643690519452299027681417062813358966645463639633389827257396652501666634722977171624195706213674461528423638764725481333709535405004895973074553138984350593708251783387494075228416487262764846486002723732601280621347395890033389957554601421911482411356019231162911654172765074092056996065577029827066011479748356400416161205339471820536562114249019514060287149335245328903489918747356521963856471296080568680585946787620971282034253419655529908105836915357941946832020988496369792123625255731822295144075117949426947290167793316033698694075703124871989428745573793982550868783683557393716521775095674771522933849735241506134741546270549495089728120043528918109300528588518074089661435259896743063983170919317308305873822247394805201316513157166952052472233441365465528605445541465796535199663327882763118401628329356251560692379059004803567661268152868096769178723932186313716276242747168470286794734433557293209227511896931249036365760954449240312626690702604721155175259062674809807374254787555155586439340662684786698466896643990758233718655605545359494406339675249395556002619483890463052094677860563277635288860902230113625513301661058149156241432077086247596616675986355894976885537655888180484457419342270269828197816016362738026174991597286297471478401933833043519677976938838361725474192912569529951096636968486453989205416186444695037750154531335030562851709292901609686645635295398200869545834583514275665284969495357886339299526973321330171638437031688052635339642170399871993508293550740073555928033961974283096835164343863312009051984610398173438943418527209608825212754988370422298125803975647663951382650478227500195255228223410325641338056636952181073828892408779903120322220272808436263626204008110510789928979384558556032448407187694928943817905207481331445820977404851311347047667924498924036495470675357557890557231252937385887747600391114144793186816613693143266027811810482728821861122802883642654610210352372532591086508966339288105529720845927532177396830931774230427434149328498183743395853776765151158505827523416592594653678016168790468215377564546959996739247280719707443566331802446163413655002414253328882121998645169612682716227404668573051379274334588033923942419172072265317662734059027689184136329573315445471261022115257185273396328648485424930230047623121517973028173165269554981013857792329945757147464802445515031453819978716795512527701689725057295256729938993537573964063992334019110189984333899883959706943897494835829783002736373831888677261370223215008437792333450055519009317808081515523404747301469891116317563190077020395623121812780208917630091170531959646190014207809861176581140173387848571574414343313785915628133424541060185647095052560826116410118932758225343623584255485539900572645890867073411772669562366862493980318742769839375685070683340840603439555569596281440111168884324834063514434754976669879065199431691028326025969741641669347921737475457970764413117146448336966311163992356290730448616476435467452517805961448858374636724946941443635781580776427917931657507845942273541239804111030512876735313501311079186978861185397069934910250742799632583819760230152232767673827224908123888609691286165147716065273439401603033206907927283944422224184430047726580560806973889193436139225568507276118451062890846459237807692213440506487538870599083777227435694812546244007929943728509305251995395724090224821823052080881322976317308640626913994719521413980062011509883013988542640857385443512866450502572452072587105702802069795527525654276870174118309703751353809526167963862500992991852215519429742633364249495115216062227872462547799560645721576017214569786356461873187418264342625059365250056444754209282266173248927527401856383981866921158138813037995406519098584853081728376382156826286918224423060809292118831513000517990816558113508600714901172788282842321700810764977638137483777585516417450362496517098888218278457515696553829865457501906019531190585238411614900064104312280207377645776988127676410332131618859400278515099885888146840745323133588711318214141312269735972634597067387512616417005464228029879049202326677245500028866390542601088357209605492719718645136795320970175168185454699423641836716778496936345489719296944953720366013902487123816778080064099245088678031412240337385281360172686553358138151327054527378023054490440897712790448746347779226457895463858564525479966141012806364292843552084087270768452656220414000255325064303379562671081078986385394625856698285594730236425826966912922116005583560708924018531755835990537850097793514321612125469589406995009177144092590103607903427031675481902254042434982919371492985584142487736036906467511981027234924206611815949220120731398719308485743284846376921479076489675386740322531904085227880573983434068093093100546557198634460324572908282723047292346213471544037062017109976647325245274912143466959940208304664097708609228178010176992184641093540422963286700267274060470988170887479950773339194526451425409873732582986438254101421238188826453135000526706941679286856516377774999277160930445525421744574358383651348562225139330823733841207679350687144508492769011531521161945644669522922327820415245021136391460215674784005027711502739668942647525252154411409869022169049302356575720023884604305233648243631520787122712909511327028463669930680942388589217616665626446040844314070159716972418315394440032648388557976984692951477829028292027601734067344834905136887825350296977001069988283610639915372548976401710474797089546736676201772563051973661646495346912780201262875157032970926298662877889675659273201822601953233674867826483806758507578599665124154035241693259103391960687936685517162373253443123233347728406114200908408105121101888786875658530827187831000279583616642097636075414762065742872787377807087623395050500615237129595284298356634470820408871457647661013594568579364193897986734621106685627783645052677541648348590923028470702323068627470080868999116649997345345939353428366610528340573511762658413376703969015073241988334292380370104285646993619699042977328084222994795317157628526309778069670296992166262919462436018344056972968995417150088043795734003990844352620090434290914092702076929967208867160959361339861965918678628289325308915186882391783873324763712103919674919754179456602143899899532212116778856275823466809590564317706995992882566626609276254974476442702370094462932029632809491281926728670079320945384039457257523623003826765583106869893611798111547132056771282904168319559913234942697011685774100396206472663238484663568955938369347107133750738146877279531819258632376224072692496857713572695742085711636663836533426666504326474792842108070995418764859698032459470844642651614912713168353859514601115935105749983048604333088106150599249622017287414415928238515716841546627492420914564552790756882859979452075981482871191597172750901972312713007733652844046196560680795661304979000088569496229623482475675626768339769015859903801834325218492348641203069972883232327149611528999399846548530807606931149263964928319157067305287171848328202066361013601420712663205256434748164486952805673181870408376989767110233652319689609566887066572640198463582707722126898522047062590472237088414328615765205783803239219432506970988508539643147710143626034506548050775165854527968019603187065977916981171058764750139951402091949501144857159099114265435720578034611559507264680430412806438963043417396954861111722697197264722624995304932716269123636767851563309415946216119690857637276272618695723662940652326403657906819126761602474351649762139211345656293216257687706621086642067083020299985605275385089346689766232503669630307470198106307180218790888946502867512091806193001477079139401799152311458190180948498097399014234057638100223965841552758402596755226241797635307992479316233835175816586565714172894031522797309510009860136419661794894173869756438081255498659840138152295586735390083130798158463655815391686112185939285347598980877072726822802440830859607299180665205186971092740776193779268709314394016298441044138390631018381959537406441771166655438287154823129377958392980438329927455900128540899161727292560071459297474512267623386671689127252805924986182065314870232147289437974798942420288567526806395690084973244037490974551456183544740285928639998348097145855620454942453220401377340090814427026865060413183581999495030602169081007169029676834890219002319366232392597313619438893372908350671940435117588191262526473570589202019753017792215082643432687171307477078730155233154545713323236751305279925600030895225902491162186438897775538429913622907806340348651427468525178904117343212721880049082982447722051429109354460787151211402893476924189652661535186515746137714203482801513022534741750337437744908071319236739162525850841689863247448421142722321130835731758044116883939029526836460383244247217559935334614763991440385627249938844382439921097933468200725727524563248757093400110024393031477546979284901043196176214465925218050753851273930914433630889870559860653613566119550128511564531183339918762950552715063310280523615946256878333382897471710743897564404855257578073210498660450631847900069872468570911901610095221656406337250333383798517468332348031468871934600916275551536051237071539106350709559299113979372356944661912284490429564354577945535682645373432431504314631876210782645880940709699542437547009674426166985948831901163264779018047089423823544238702353413261282450128286914215860813873592577623378149998909283221774931658363595222347861235385727828239415613281317350311197022779850842435862210930409345614099068044127068309202337906908809030014588639984175979295268195175258740361579460480713099692009733100517102912669774532189358598725957410551336086682520503095214905457991255225678612769670952043309161794414269071451093869852714113258556211265891732608538971738163386963606457303808504515870209550466643476089303492117830158827872140890687244147713738414413075402476303525150471448312081852510847288985679569037457392225381189075570468878379878950897494591916921994692527858117833113598676251547910005325612879133160596115312886368099205588338859338927510079593829385049450507663587920650192609296499437112758851319861358580491658190592758560846488145591940788796211026934779256326879497891601398986299185837193285584149499753682321042850270340149789212883030369282747809324968261213646966554034016181723009860499621571831004155257514185944294351148017215386750815559398887452088407705419769457364788397675981194039428036558579630745881817362830768922925845078765125692834214968828699218111559213789120899013562524910579243339551665978840639973583022066343108643455311584784334440811403781038331632071207008010584055017119238058033386154289101153817061668069242602539419145239840892684829754794219159877321235925455440988943266609890352759275665654772484914478484692706495027653466877545670461457067863760253621467672490069635509438358961912349464031066757261544817362235478008727622522562604510243832622151282491300078650218308026984244554948535169685025553594656368216156435899372197738763827211372880273938146097186972330217035429826157811592313485289604207745373070224922575610153412022079570641814832319478736053670769068045654177575330540135463333986284616940308745018171867040919923580159256765148445809875257628534095000250064893372700202085553086470480638950416149845152176799592658612991720385041429753248514190818326028735696124395261146980332932714856784889226440638015059132286474541190815463722806655831050268372844983210183702610295853531014426735261648829090257141361641950655150365265838817614102139005005296209711422464137630587692020361481982251230196998195594907942928854800545936662238035077886650470951800902830878061678811606171156332310835084132276178585053399059414804127967411349151175038613486866698715520707856220708617921231507275872304526956018475659698074575304418695246972028191405215576276433233541251267197317389096992200363651949019746278537611563012267728886344032870411021415146617206758005304990098883371184904274550266797182341257811617788745177884463933536292862117288020871731365625141473916455111133969115205156124359878465756521076865946473858085108735842789338441300873253233787560930518469910040716635826808770146095428971035874102543779309555380295876308742247411155600753365240085300190828607660245797855474743952168141357279625887042310460104825676790479771861947736454267240060447563744726065973440605136896451267375435413478756645080767858725055511048798818346580433698234256327281340984669078990189104271992191867101166396043518061795994819059281295827108562180369087695715590370781542553522098231205571323593795040709406226433668166501496925301360536384166030859519730028214824504455382849329808486676018193229382683936655183731790458159646972723831678999666998126984500837301532887865818452909221390089557638237455223538967983861677028358767329090270133162123148441155266615120587722423062514285053934993138264641765990755945553372322657101475935451885158948533125679702925302080007274199036833925471146736022461004288491431972373905960244708470547069826791410214194912890111663018395534886506401025169624234450866940833496661538936784613102726403755570201149334634012776839085669096094095171239595302312499338263054256528753111554629844786458929094255536184179423968017676027991833551104119859741212564465185073330173433784954597769160379665012386145613611355691720573068128894565797054114328580524681536962197473734575605995341263141355919491363629891458119700746169585247509993613162654844981417908288402972859061841365745130126878087786225423112078516368667391273145198272865315151420184328456462918739755504971697779818174811491826230768806308112176346860097111026215789476652938495718240503912800650027366194990094809740506425891665831048073047637618573767365926114676179883918839093208848641335181414152242858386936928482131283107015899649752062232855502568481870142030522867015111053205302587299964622982302753885249526231851926595379544254072558587287560322125356324207152007737824671684117032487739566213458738474287573155638118113287541558921090806802347363304643898884139955892160132317850334352949121516709606466901962278580559363289335284489694893420437208813092673050309325418411294467268601873721208356702652428326486018069330409557369689693455817707317757475654978264167601709381871503820407477603522789716074986746350311389079511286402242921430283905704645496592004621185534772925088275491659981887580855567902086690927154904723731654401146016757212944279671528039339502573978503245985616159467689655298379280184878211268798126598254085601525842413611663235596930570366872155505968507829708404522717491473936093302780956921930300949345048644654772713790022431691214169867865070193876494112589705613465242636405218556494933839822205155957744536201869268133330859860125812944871029198545754768453783623249000147220741163578436803570740993832283630889813483748193644212581719175834300373664686480593996006615492603536492986951156866736900756230877092123481805070478457058931612328431502424372044270054063094499491923517299508658361029761883820916387548134951041583051299741250470679921791421006701694282505669105477496008437137911443560974060867642837045517762345824698110872085605580553797636299054241335319931481976757561481484378450099453587846734598882723518307140714238462094092681166020363601317377489480295380107904900578089646764098763319617820512981821316677947912521907576761201321414620207834418382178942243534830948438835879185039109623550711008388173490086578155806998170171622122500266068219059272066235803794139480285561044847403924794819707441315632159957698852354614850778910357292937109345393783011836385927552464848748966148453382163937995713179558954269996697132137160797900569068015652828063524852156158847242325824827484456629228879786678561327003360302640177020952445813803021124597925323701339055609160646333939948848058449431108099048133443950400709353937644925964598128898427647959231918646703806085366512691893489595560323247645235589371898017717828232586595275011333313750352920687434339876946707586669112622034742984724297018987345911709220491479038009903241085335559201995585564188861055007402426943363695718341531930970363321475977317770022778029951003037486562451669965449901370610275208507045185291836285150626986197628621590336703495844551279178496726650738074258087186422973256566665903543787562341497385618500708505734930894848925925714155196514465736514342630771964556021471398904558849642909162920434663715747453754026409426984603499012152402109231793335377114102433569956612805188694073781307780595255015890260455790806817108638008364358007589377994223898627121572386822820695053904927265481262556428054645223789938761131555644196154428758248047048967729603383474196371390525957850129251778446586019214700851009513868938960393638911621451073864477071505035173484063230380390514331579138894263567333448892508743999619769910577883645949109064643606641057035988685046264509414041456612907766251519544443988709751999164860302850185358801476288429804836818250337646977365483792990736018540451586680978813811231344704923401528406226479082361294422234640209984735161911337179204058643523154667746958103863914414510907622113556765339597644491720960683034017631142789705510396257469941294824739443531257632589535444684836405241584497350587934474858357856144177243192872200403002634433032831302928618803928177995459689405398094425341332949883891891526645937513542272155478932487974119891258646654250573587065947408023509627291729070089550004451040669280618545020379432795938669055519670550783908331036130417699613956407402402538807734498531283897872381324892358547086964289608454720622522473867801299585438087336881382803837331137795464784975763915905809185846807655419896690929610187955127924972438534318094911440212940653878675095950381770628230951364522940783274084619056253549072807203708709916395438787377031040060483182857510269347113319758260152028670926579099940254362729168977470389805245321637234414303660739447989549975374941835076361466545644355093886875889258316555457807317755565092064708496060757223342463945738619413648113409943341457910486348384667344967939616730729776587357694536839129111887662738276100813053134414909878543512537970883043119563962023460719326500811016071009322022624567383695310301411902687420784245297870679404586838971089120245812124947790644159801824416381024955306559060298552707455135218980779219058116319173454415005490192565371980707444696280285151599199914260474402466845084938431043032758746099359987533421239968748557263442799862032860209461870801974900931534018125555916033737611755778148266208481760677218987959973198263803522819002614464874396777403586851177535916001926236388456533105184345550644889154571582871010288208020629039631581082672912733950026971655178669129680137914202058482367432141275061619261102729409660652320428887091718642326704051270335881667381150243668449525217877264026190910377528852405144881802959769153246305723582736616025914996504941790244846084084566470160881721712583323550133602408164857052343980356134736062907675247128643038014467392733187407569586167913368625629364657074181857958199768328424181610783109650931928208147897913694796535511562154250849597556844243844541123256171757349113602943727209625552009794576166019594707141067042179441792814101273694192651240709922480077629396830531080277564650312622078437182078653169616474813013678944906292008076632264430794087614797754045475825529088030548872024565285198537744626741235736990586884496047212014126333998253934280076432750825962474125819862659268934186430964581839840391239345177368693839424098953523913699833551511815746673202037433371855180250476825223924544959482476803004358899696990958578291126230751745555598824234326844971778512014476035778284255316066633583853274846661632361946372969642467472571398321331472145471370442331796460916748699962262274214760094694042101194044139907546049037449821139064010640612787871664674918046579773137316434844318768836835301509439089517920785318313120563990768493855461454239509258812703343339652152845504957046500210306217408781254864721327574398145967141899268206493547457240529954614821112056492549643799290949657474706211468933044652599913071227534062476901032319656629186879192821792602034591739956146420735295211968703951863757315534472399566845665818503946257278808685939907202143936701826206082054464768951680330122418311960572135281269148170319462611123264735556524518507518515410134348623820700527755803544126532333601796086311894544432189191977371160465176970633805398828803737403535278973849922337807727001930803891343535237902369579201997597292805578036209995684452139685793278271129331734585320067792815828552795836643216049431622482026916491689760374366664287692949739794727298316709113991224325988625004907492929517252725606828901712749785858409736129542179738094612589896424059155098744098355963437591930091022741906985915410143854170385672052154277837238184829651892344555009243354847779229344259727698874263644830372037810360125097696786050095749958917820727629293754741740214606580276441105540155425347571025674163730854925518813778472292307523018938641799839833542549463194850751530500958514110768713319844497328369560067090457317831191887630001204145885135275635833634796761534575776468640485944972223508419535599432886012842767951585430625242923298941526812229981129309935508635659191803769977209210730832831631076506775292831234736805407312445658877580576812464340511517664758342798331276439881286122927827909030647732497045842441124765214657558528759139527979614874040159505864812561311954780196500502746903851198753090524549339172279770992430199373834263201727700472350076374330642944290366330933590183002975773679831079070157237393228361208022061081429484243929786369011755092450387054566349863846742664283426627387909835088819880240280645757344152878780870627048575813628264342110802106428225084956077574642215780335379856301955159299817219711715552349086982324733996387954316395241561606514414694076216253240303533818975354665673644457616382595531718001822594926551847153115355992196075465393405242625801829528321726239187065899529165724103439660641357446487447008674355315058020820658619497171785096983483886408065583844793543218246647738690422359783449827593627705502941751148998653336900235207424348582463284877311201765937749619857198774484407109948792436625100596622524794876057708932914062503040647654764929152917756329418703416083267199238458728833044251345457955608127167703642276404635306100827234376624086073961592662512131823368608810038295277274149803516195153331716647076285338765483119461859607699098541667735119739541874634220876619799629105117895817372135276178276516629896423076881132326538599513296903027102048047441278156470953629699702936174845755669250844218833775660221302573875845983482347558440079780470250787864544392065477357649239812169811959537748801084515973993174681021569220503454799051790971515276750138312213074181098173435618856770888014830185780831848215984006949613917797188568987189241779989204711557075327858265648889052732345143199278357772728463168005422740728434442826167681047101454761095921699104171917314848073686183476268865425190687386563915730692414723383411540041215877954049421410483873257324796296684704735729227497430046855964912142399552324911937708370720979039106414075345088116092157632836057697636853764582609499532399990870372694052490371463164457498674641079185814483316364740339389946013303327178036080763582489588320221316471304989596246145586312530216813644930660600735276466311511271300103441069329443152714563378574928353860891033075503851454684379593050999566413397016022319485681621098332624505048688098563865396005950296041638485250505105582632246250952214430665171278679947473806688792902729853464265339398689614031292312801226669551777474615275056560353638561146621210847080971475136532185837358666934327017050393450220923037499894395689871627768065133942004412249542697620797454379021307057989845042727410495809743806632748974293754074778839491246508925092147465249167307404177789733455811189935308069845013723926646995459828073393915785052302742194804769895506493193521212680120813904846752841729176646232071272551908091092282605473324050901648148189341538414147255596415355805691566396033056499499466743544582300449016339157076808032724111938328738415695293770695620620046524023892616580363114366767755040912867994804585679391042143019774502516402929697814219191870286684312466907183654491479172939062678747063718870544855829014355120251961378983671734782649643358251382558986922159963400116319066024231528896254837065793952483776907848386553625292477304091288885082740091233259363964506596588252560332722452162217189827377287155043182412907280767394245504610019514871828717275794204351690177644336443852487572707994114480043456558890500873944941178268314704474836656633144565730691542997059435668160626716765241299419762527693794406269985456791428673156613444808499094843378964807283359072354792545588985540365073450688961994909480900555518273935428183108016391080991410552144353783552252170480758233202949182548879132063540757750289622138209758925597787903822842620860511602801461954123696296034544947598811879402955220855146598531614732966537194413397171708205548414549219952783809670441643632162774767544828630616133783192340708354646216004815212019399116490258609109096291999005451491967127802479611050258621014238569138961420134928615123134204212953864175596842452042905168930403543681409265553978698060172582704255960709960482054973104015364421818406753541935596614391140937748230024937163624279586716510667898678055273246714895313481356394220512040920677613236681822115767513967525332449185261341558337396687604050142266512364583718277395801727135950040312308148245374477024607641128566897309310310454228260653987187444665996437243193767641448266979904500566046593880489457944172913212574664838098673319903634488668338545201931670228990784898209626623278242140736394887593105744504381667937047506997995848453225396757730851150299422535489331790077481311543847925960881661836296679784644793381524471020664325703337585943071485907765133574732002457708207495765735115035666423926206797854454741535039283821932170778443665684269580361093460424459881040987242827256240550357479383716319105633365446905148894983913511202613142052524120853233489536183834768410116634137454101875237517088557168612455411625262783248795957097313080145448439320685824424794710631552078329861001429986178399324218973779761885307458422516080573896261917202930803909359464320308677902394252919407009256184874039198791624100950750746463824139973622620366304574054828706517682695788306834509738332839288162762398801608836709091119011005811730682013442304661791536950101506577954117739848193312048243503722268894641265188394695338890696936738165918776537402859584645889516909592735872057759971128701839577919767670026673479620781968853887312656010739666572273729618332354724605287526560758014715075759597431697666820222998314959095324371890770587977805465697368949104405698257273200036826261593574195819518578177724785238852700581435507489434161130520988622386342011951633655977704002157520052810036412667287544780933957734146289312059306083720804512050336408558129648090307124749590955205399538304559914436652857561081929094014388808725622805496935671074466392904636073324746612767570466788141435915278957067895768266584061782844102446398199022758205118444553248307253465712900391254316125137415254555234184152639327087743265633312738985919363964839238790703936962271607181956582955115756888517332214385651710243933019571270755985636924297159523617427081971271835705981112031310580686070392794360786664240608197832321244703480497680364027611271892481374924172996825727079382902214472714449182901256364756897739365343622920057517320209914145744031027211538817008928548889773729834995811869713559137834170516018892830793856042651158836537471203158796375325941109120829104485841254575062815811991527210457038426668183811290524118469126007849444247941771585445608517690534355015645605366617002740918358278256803191657086207761791853815251750204024354967905621776818314579539662854341102078774721205057934378874292758426737628306402223529890501021171925778673833302763647577888176768683893366981920050788782755545182041270190960843029218992257666952473898083509591540896432155135975254560327413205599759562061618230049098969019910472036968106889292251219169851492205005031923541121388625326858655366695538278919417305321628955535722471501536165537712738200431486712587482168797985219653565743397333600191255648131771531553234389679047916760491812304368478850087541126375718820381632762749901471236560032416814354358950849222288611169305533897097460480533532761966080001326431532679858198622347281805699192378378712371874618822866048856961445597086934673664112957647506051106734981363969589023139850025041658103561665766688135556594232472807662259291605968069258299747121871502754306973821993838678263797901404913315119835140565224118600123816407187971618485585808013077206927565533688641858204615848873016315509095978340550305657976661141478416539612338403863623363909009848521308399486126165412395399220894575861705244303182488649085289934196027752058634044433240676335124791258719532623437686659847785249143072022353112202834427172897708703146666999407723452481786741773165840081394593083852838525750310810312424360677302755517066863650845903777994363165756672796071597792911320211592981122781942726999903542877411361477578471643609779516023414488531894435551454437663368948882828156439367654554318345637388430031478920851569010704894763729840017218778700711219440148710989941205914223490711824212419668884049048355662978113209951846640326220890092997553193262288039852078621118065975482224555757499421384403538870429496631746815395741209205732282657985248371933299552570536622412940773548365535141455907762543327865249411901268995238680506938271358822680052233872021610167318716939687577163546629587802303599727366153047888942377947070877097848476919895236396671992161071903731712641002492687673736049241345476309947698865006888767797944717520801118636028482488430629692110520989441709700834669197343249834751966120375846777034453508767611759269904185612915810260771410512521492330054258067751680701048105940253154030988161841005514918025121103838651562768576071428484038846715594241440903481168034149133966616126382551601224324321005140468204990724362695692298811666211426606208850760041271850454677085612491007680096243769276560590020066375425999970491173502603777446659125228974260911888720947959106134993980629296111736600902980582343355783396933924105712236807437998971566165556105939571730233734421231665982490322354704399048333124953554753524971758595112094951748614459223613386449769009277670091793402944036619665993167446984980246991524706812258913417731541612585988346888022361674003316104374577240364858127811781256174128951690150098846156592278362942087341377444107098893979062327760196914635234892144303280734698195589564493997467953291573254346929803422263660830016099765607444729724810234714855614452367286270170425682496704856766835918299953707922240596163537389766142864198396477665632694566678785577140584315454690896160579597369076660155551529668352528386036089630334598005064778428002821303357217456772257694700223768517800223718322337054802264703157091094240396878974700678019961950255841276161105040000006988544335396321570190346847426634947202877955577948585980686005279553233522312121102092781744331102799131802188764327845962927171240852851631512086087788552790085288954338841626841849339873643756338404295411328169418823174195815303385042456624937867340757977459701221223367613918741792085921369081913526667755790877303628186343474053985065120819508446111220050711569967284077507127724052578834976924553921240716223317456509944753245212107217935922301877566864979258485660710424790343488874518209498522126618640487312612967921949039480886989915157362986817407073931940629835325978906646059882163294341346222206362147561481596662540985303067994425491695900833232554855287746959072774130356913592180675389534829139686991687836705201255893770108933459052270908552186173845198996187452394244485771286681098199396614758289130042795442555467189180819814125649256896831230457043048385032072062282766864641424123713942216769928972789370044446740565068141345264602538642147991037737295526883706830243132301378997363832663176124865434895264211568589040410699667412709986035211860497796033258045225037607483210551863293340424676853712953488748958422042599010772158491530268831368934967730658296296333191993100253295569656700322341723743816816168478954033005392711558910179738045569394389140625027838935883286704138632191487342169314834566112216421602922604331343432446558794253333703340956655562619575916795269870813111418280314387300743312452473279988509446713350794978518066386330772640676243383533818386274438759214569324983398588331163685751342290000782978752078400487685312381628522195845652610351683628172531109009387763549317491255668913491819408394731371965543652493726656227581178916174432012545398490383514258717687725268998215629981779476839392271229128865219358324267279440600351327201503384921268844348305029560512712546625755581880593069704176478386963138960936787719128084083178561484540838391373512576960070375271207126836381830289991430738301648092836588535588628456370563636689700339418645904238431355603460653552880974018865062514082337771288409797885393340126279502283152658743462436048503054109318055712584825667968757971700923946153193061635162292334635185680486058909269562178141402170256961397279143044370759032589422118026553766003263362296453948264484777424234266199790236231848300156229288603455524045104504110544453300022095527033872354174401093280043688268807937759570933691121835574654643546423672519931264521609955693102032928445867666696122910096997982265537547513760297529529000631382005539834884218594263125498057976140819360182386011968158298256391167268172685434252012963789711788673432245937484159246947333791966706735349554129736152918539682573271953671174489503347007281374773677720497591624974690685682049903442845648396665188466233118605086016765171578937564522353335843893323770548201180850115730884255920457766479817211665831921837862490438663771442233914354505934786725723598774432706738655991351013031376706658847791144313490099081050532493779307132604544997252981530023536519456787623751506457737439594421240012364271786731145231221496192014106347898873301475462948701163120293892487689332653158561456584803370267329624545299911670021213091921916398606014147893063146894031245742780814011605696990865783685351711699789288560054633337884841188127189877815439902116234484717197820121419827376030499854361724123045732692484224890134816485410914350045524637353628570857628621402266969392780035961538237127373818954738974540853702792919633808394340232616175498740133049536058257927278523059434335198209921709735675489344042818877810500557392456770277535682115454406650413181259622173520323170755966450015144947658265074363653268948233261902919542507708616106590248887087578398185194699565563714458586616007278202575962880413579965875689445745053708655327599723325606900561149182169043572982143561219882153062063571265304569178967019783485969208245201960903959520558898797128463625247938239498716055358663595022023072781223510429803160751518398725950301822726852727255670960104049374625689307840379980907635924738097267482706828650857179870552891241977529733337851101551886100557284687487104557637169016320425359933494989704582057680062502883018020480345585523212165456028060571498555935357781553821400902590014440001624879630992437428131758787620825016844549679431877286567306868076709465826975746859017651712673173229604759487771907002427429550541166357455800580708481251960849359558167662042150187437031158508801917329279785931584024795574362989567876617351747798042197638013647444963249463462408665648254353298197917586930307342317380585606983938360691624231000144946239182389717208744260603562882905586562620594037587379942549567991917687193796797853005021001809202950156485124210651181807226825049856800395445323666080132716987598773541975352511976103839270674788277619354564025947220266318988235463621082951617201687485628922100538108619115479550202862437966395468828015613524086008680894947216855072903963943129327475662860614099860926708298608539283160375983966669559560763839489635708306285500216337873685129175469361969700750075838312244685370324389169728335126348486772198469920689752994379807878843066533319824389272587368132168223024773295721665539022752430722759506140991382652142826494156160941778384449910273461162541070185673315136779210742304840377054811515088824236037657315743739296197447496449086686290937972275065463016181668500917474282748152445580792812183320943118321163731337549880098798871193728180773251946706842465270591122939618965831618746761940988292982660928314018871923244282064367320418372277020871418816662968022199636203332055566526873044987049115234471718936387474663977353206412126724868607623236877276082871228991625261084013747396842406883686862405123918588535415015377825950482651106525450273502169088331930807073749369061404176231012862346530550911697998996252554909911676940138297635812090977041216220433326978154209823638769640405984283259903975651691877143799127694968841641783267898477499727158112343775790938012084730385351760596636560980067591267939660911216355289236738054869991223251137871041766963419938498902363953181599375991687463052827877396260869275430430171398291274159719950713229914020665032420458003686317912255100627994762441832965965202363961654111384821378885764179442609384344967144943166436907941036416927693526928396499451938871894407640055376344692064048751496167355793769852911578358439376160263301292294686694151113388851709724710224782414992829042820551083797222998771974770850441875626578914598243282662223404997249493709463874501840257532719428864579745441228931819861701607461407462765439455587005786980164030460939683410583250010638332714550159792904908023724808475918914584251897968057995648778355543433351042031578376048292554289775849253510535974711901829071020893376004893438066435872654173745751604775996960736870723954765847678234393090801556916842966909298716013108941972892317591858518812714621553044274194843725625076158163830379165795303017208353885763017001698832568059890421354818439342194134841966974663619765632864128341518359682543014798037611330036716728755203611360558109089479450578814837951949708965740262476224499766200804962873340269436561675118643175782047404564716718200822253035965022477256166110559914158418672412999424796299105889586070232937979779755365752080377877644571322602188223586572197166843480456883103748848870400397167108544203108830403781773283070614298607011486857921778742915244473008623733926202253661925980329872967679378618322082996987757547034356960775124248230348131537217072406405608525578559739284435943027752265903737481593009532270468002650530164183763046751610771300672297151192344748971982193819118531420274950266184170020929811441793609461441104672856643234980789509812652559360900124645742686692273030297404453882443493881006495838710839632289280750947245819261637225363062433631328861149143049726642689346466276191784244113923079460453438317992843584176694191004489346724314800457023891248780252900693500083800942181464116191312380111085439799901109246085174976354768855058588990354974596359934794795640777407915353818069117052683132003083907768224443802573201335095680494906705911497979403758974537984952030799597301580909190975531009001637607174513853557994476951800911482313623794147264517804426147589078699969015394151328606035509516622395327049234328868917698888533535658238475630360043757878733559196915226614228591306607040665432206251849004146640976277958953057985105913216944577165733382303418240438970331423403389977842325886288190759712005244761239876148847569011686165943680315084231082242648593122367449086691456810992599931318835289712459365830391052926713342106796232744287131118895529885998945058949373879417658538612798243011743508525501768324276737375527686352473935165008198870214136789773411272345545306747248044007585676136679971035443110029112616139407261442891934887936555424933531414713481705143092594052729206381114396451200735412960086021781271718273275299910906379674601144021299091827474458775164958066321484072472403497932814196240478615343748350293511865835539400918938530530768830958508240619461781970127806363917234241490456948385628724986541359765027408803118044430172495082496420554240973710547276218127324277850071179816036432949154766219198676079357181191019556026765750816749176755438228252787762987722089858948710848179698508571801546256049646414360914301412894310209657518981883669401020324005873807589719712486378554984667432540718374575999651534669220595670145169914298391731026625002388894580898078356583016955833127919092497775304614553053836985416470549717148077298677115674489067884004304062599241715456608333066561287410147570099626584306733614008860551142289522962675265662333858733101356589285912961678362026335678336377608567978401190079930248424449113883981872610131397555724051435328533536803537792552616810873495045512600296222498780381563812791128854123129638573583507462201721474111112174254538480999412304126819059521687954102344613525616061748588928645280285273045819590884096551416494112943348226601069333120863591549686006443666697001284247111289810993958026064359573543754168181837609748279322575936494124684261690054108736237231131622368468415000003529145112067358977572013983306812399571909183674471968770211238973805630758079956483082692623279323616293482271983988918727875685894669149889997642262965598312464380503527507247541420559222982499670795277160825022916590257981955175136642042617343820082775632085027262241654180299225751352399715652164966357687708658205854138222718497297499218855124477878848492217318722782540339225302487592305967698069027499609391531653419489823555774363444293233917671303950869818699299817449385103674037639155230944059379613364785402779828350403714663577381942305424650453628905120907035442402614945899215845329439435021869754480454414000783951902942348852510764567175973557551943618554161425719545000653983137891698807867599948809942431637748472141411429165477169837809019912917020311763251170766230747038760646489500266206720162658224083145594439562639571884211632014358104991972669518633112276351933578432107512443815576098875770939995570260868917327114128981785151897686862284533441833531910048896290270993957688071716456379025931916966097660279047722696537426713317611246002818011575610668324579826401316954287718075463634177371326328144781611669927155886153731068445729429787413271758770990000599486270784671832625328078809431032658426065219414681305505042936314820791701739556994066755500599752602178179383810798656757298253723073660298956047671858752375065706059548432380145890197960971199412834430902241601057536493636255708109722482350950039998993321926271109218724265318739099451071283775038146005059765540875366754049952242825368613198590972459604874120912784846068390777751978642376085306294068583695901078256730245696907443739948231468706539054220731602265431295492750280279425292609574518065284348116934499312734107100027680810390059629233517854061904871661526583117227714044494399235314646152516738817661500190300509469611192877927771018514599406308667143323663213323165033209019444651291481062897731154164743456151686162449227907147019997087757976708838674892744109061672017483615089293420532281745118590217394730538869507917971976742009980732647931174866929692618160292980187988452860650851745254882035105058245071297390923273087523477242486468977874363110089753916923743668944043160845365891102054359383809991512290241038745336261009092941690005758516863300793767515156216337676366623320992207033757984086250935637723217279733519050148510519851375533204500122159357359557411861253252580704986278039346947379813207037512826762964543467582225106005571240161157930235877441385332719653750276680657822656446597507104606112612853580710217757002033638971383016797219794122997263274168118899813588326102726324095164266227010444127946031398762236292418349125742660501626335024769351874795043958607811515288977546430074593702684453206460511222227325724424540635833296722674550074543517364467522602285880586001193537729888980785137637441965944914081600512827831630278505765309283563760234361748972198735441897030883257441186081054706614503114761815922868818980553050401857572593296396811371339626952639027988534757300047999645323831114959525520862657258830633510791702244376687519282368151057881957196193849024452907247500963624446051944965703728969454047075672617674980066943932227986269762738159914155484711446070812213464658296790808401982305130445572967948898036923493705843150768549881316598651623341659036006299218067927561985096263305686387694198574730605271327578481744026125683292401702052257659404590555317721593358914364633074543617387207098795358943714407238009962016997940685493412345935405249183142628437648913353675963576593136998081059860063012517140777683488226010652459624804653412622629451998507724086155755749787457704581061252402252617833246300156204315718897188284912446656547362291823838932521071920588845358241016321236327397474366433321518262219984380049199105868721556000848802493853540512028445960470881660307652427670931693116535993733194143810625424017442137216466216841090433038138247809605528452138009350406558670224382339129132056397936961080776231557102389851270886750284018930731212657443330179226236511193971253937771744447576124041721534959584333743182279366943059546142347524091874651369278193426139267960608603455855492864955555235833662861273135773040575876930832883100566127297413034052403840724308553838535400836245504948293043526156068059997542371828502353596955313872753776476121219275562748434701555983633238250586884883207964058292081547996867630513857894631549771296762077249506676983435332256589664595459478570188837619707038791379377243520818134715968121944634140182715222986853872539923161922898839452368344133363443659397836487527971038546381615437082192433113615092990788804094419190255991241554201981455766421154729748354201071369767852070070705786527263876816609734540640471423863758534892686908470857478111995395964316913867621809098085318454246188852224610291160549907158871587335996431710993446220858461828415108499488920958574673640632104842531361384357935627123850997365064007512018750535040110467813909071767335252917826893988835739728404932305370315042253282879422600344868101975229229648093546251663951862475047575276617621308621374464046120717696583330145643002979079641134624992162796431074004445580677365614317506061844684907126502219263140440408508791362855962126429068177048207273828863976945982811356790861057138159398529109685243668899188589134434678879270024643308908447901340081163168805919774344745982557817237915561949809631543492401095606946542891974151743299094018822412845843652679182357945480866018823899637024041321914536080658708641142938356624255634699101293609373762150263943729731530040418163728224990191292253510009271450463132374040098322996139482784486092400525604401566172425925149874122829255043926565824403202015388912083168375618602088620825720673664714291809665550239666746874464706170522157977665049306116251453453007479117303573275319277227147848590891897507115819323213389816763323565995629930244738726245400941450829064930678496036639788500839819742537389006947768257708396586889235918092510989685246177056901063623046092331878925394241797962248799784125980509997212496809760153771764283737975330146094565193480609902331350205921254214466391371110233613130248339737535601653655300745509335879308340658611539850052825680405614726992704923183787597568370527433518963633249027553745047438019876625620093326198653282977356979450914275722899311254433575879415017224908361052475968240068739332562821049159329838687153781731671276195779020193578166111809297572045141004353333685967483851978700280875165079802834066540802202298145338978499908196954949139464856618505888823079107659470518317415441290855937537436973251702902840692360192899422547143841784717200503827708441500715371205318938213498030803625297049607517289398669549890421691908080440433668704552761367280773481205110845355010355733515786294988484344409866328914911489214990530473964249913815546208614521807204568057559648161417745450149939797459161713085180578968709097717728268109446178707537714186033625354813470983364882943596201111905931885775529651795323868038987603259506929493272856985157896917954110474875125240778783351748443942422753960408649268085202261303177720912251360973461170527947980856577206420885636884176873139764576532885092041066206481148930052034378126286135541285300543568513844155156812467855750593157153116220082790711966352410165855828638448910689219547512712523487216432776781871610057515596660492630521250401154349695453835246886030480749385427842992965976563772245701383813310771769448649449613414875918962612953499069072408807012505169644368819474455201707841969943257811935889790370319023257540903486484959705875173237666905898282261459113635043762442728628033908327447751919783756513996550757871126676610051137096444399765918680062412054560244772046472285860238447471325400290401482964611057472157287391601121772301606387939046944723281449932024138628041926050396853610305890448205017368157087028393744472711019132937675805307460338803457204419462905414621850474841674196457807164545805783300997545884925067962179779554095230113684329213087639908529240457398384968192292828950322090058053741847928387083949123077290209196396465955771945373052288729143062578868470203531347002671409441925852231763521163030904677140771567568777919758721150291292784029387933146424482174769097728188264095165610862526374015717605212027310912482543382491349234339399969654144800813919164973102476943661727128767296416546510461668815659832610466094597961653369457808033548982475444319222553422052456991345497032711768892373785878269070857609411133428412122308384538967721142964487479570299401620063907462750846110703602854391127133308315610310860082065591068909807806589343210597268083130843252873125744387053767780984489813645908021452395940640655196497856497073261238720344694009390169090475408920690770604060050439968936259659298939579525782828295293420502600916115231793478803438944389909095087748802251258034449355479245952350373790401499375300965631190418644400567744788334678020268902891930531807627071999231781461575375315059922997345400967374181815123022079792404937935466044431026319099839863030909831284547535637638162571128348732980941019431572565967585693823704342683630356997567245686857928762252028571376306110831922029286357607439658494480349626158604475222050026826665922587883764431098278217784993049168576199872207028814903901001748337306174982987067719653809942895773050683945250681659497290782833496064087532199990024274788583522301519298621954007239925388671099751845020028396559828004355437931905549545722392582104054824446365427496514751562671046585483868885737688719562510134543294850860426353885714422201751911921174793139374804947425626537255732555905319165118984885118861085054321345868004724398381494121794122011086490990374939931788863676237104934592584255055444540152568287220720856116824067357751933573356101904212205984549054957662326071949831317003431656435087904191064363723804806965356338521479358745417330708938929521615249219645404458310971081717463329820298081460446522203010072918942998233562660647116274357820973944420809125078995867088305848101976011895140620349984320048640629093414259860275354115150632279288614263844802362395287127770074537010115969471256998920008038524225838652160451645863413980771581524102974448991110323391602955008674285285841408590359905849966550942306847839808980027150740769655626515405099893604759987105769715490079286258174885289902003220402891142410855807764274546669825232803639711413914654239858091407050404578905062310066155143185332994328510318369443361500136512532927974272280251289558793584819272021264073505831362090359778306456820121096645614101903665006792512417447687189296209834586000313202999357965879298298754816684962710308726657127078540348015154822369902875039182415550663119706675458472611294496336509452800828905157762786982461371625369302679593203334955180396240143167172795862235535933212920683724604302594997232863275869511105339031419940983787358878978380253681984381072759479837537257957841298369684020148194250166789972556503920183204371107784852633834934437166787259258841672254674352580028875037912588192656514246682309005437093862741672806917959051379819075797859254184044990606633078233309921049108385953259092840316052351639199490432418843896663573198977460880766490226160756583604449076546842615397348152625811037910469566210932340798199638697127157915641955026588945980917994292056046878971217800852090702227866174253671034185357531161536512218227468724410726219992617143456885930900541131720310355417353657874869682126725342554483932283300828785353747360792604118275298680895981606465592853102685607229756571612478389458441637562838626603986642618501695913291226902054425973394931186111692914697938384890642346309344633164826315590384281096744404452107500065419961935839166193680564289194353308903962654029927158975980687341512472252330206141255228365869998481193897567696576227699517278824939188526454395698981612622202034450826389975772279130117782837618722042004844754504844989830495258495740046981607203815336215123819710185345336572715782325777639100299411704766130894361348507652115232803521471068307547014953758533643131318325439547632268817591589054502532282718556267027965542395762800674182534203888795835347468544248080337945113620558565104270056682791873467664317670803081879270732459443092645221273134487334811790717055493478085562128390426518374926840391154373293942432599200163264980885373145918794255688560622407426729718737465676133100717941313182084109043241646075331726119981274129834119433331561291937991734064129396285117483775901645001804930291075785065871056092554510726232135344987750376535849151719516070871617723688178373289705832882207747143435694063384237288402065353106801725708630505521178048398621961273353087881066636263344111517540534642263382924480271870197410599850544141659172246819799158310176257291712495882155396186552050670216165630270664473567353710345850466034439277717228649377629683587384217561496634820529245566966555879704849558817747951134972616891870981623568622686439540976075885807760175502985514596264134966862862663032022596057034968864829074667163974909576387523176471698738538961001362751016422696367774914514468645004781104774818671608087711919881242555328060444937717440378753385687560958505339236323239704894279432433565793881755733910801927995197521628452473467914953934611881151188161555370886704137514468947454309122092151872237025030972583956937742586314349238008008818631110891378123576153333016748564829608540605773323038200882941073182500954917582799197335312481413157035742531173923499479112273838471889261807681112683030473041855975926441551756129323175533296823557848660908727388518531588498438814993941958723270069433898713415010961678861612377035521991679912975899221534440799086702053312142120742995701290458834895970432515631052818141513689481643380261180492722929804750506180304306934722140075765627638319708729776895184579044725648437183182741620598111612544467735034453283279505937455344584182351761448961237633831512991537563949117849719232348180033954277732311024451597237372016643320289446962451936033522864779397295805437452268979441988011605781082939464833008877261274796497816684334118857910714390026754406376695171092964976587231939582907173810796147387465205249767732279979811280555052860809912445717369706452191364809424392097701254971704164840004367928095437007444852728982165462581220593801542845775895844698704083951774879000248240399991483812563825671088465990851571669351607169447574517000231371415149828148393917697174606050461892707498216367275838839513442416245784642919865906041639702642581666353437698399813839324556305499987458932388278158242528293969967386093230742164351741284828525584376182069918776682369199620490571541349125633672940328884340922211412081858330652000347745584820963638113425339352956581290762594937721546970721635693118404405855094860858305163500906864547922999702330835271556388006891660448823876962477396140170107614886131863905669683359380720884545721727554760873167329689587269367273501039594288323441666047479458183966710923241884511413571657987799731428370307848943638108610664694018736370029442268925692598275100419517828847647877288923208678746688822562062647572027086780851009831504269396192788303433368542284532533581087935177974904932226690782263283258401454411286945731611794060245926694950146527962067569171200887547316023157063081929157224424477367296885048702243180793884620865607233022394700076245681323263383138952800026442129526493920581325701264357261228393103289678966324650912854149440396145700126797421279747119806455930955748716241860659365281184788878851695522443142101106587788675524253816950733613495302868621174601483770459858223478211137389723211204363313192463598471791245827877782280133948618565303835675216399836315822618883602802394127183417435896824119800255052049852992538421612663296533181818497892191099564245036259077265294841289852518220756953232427556390349675797071356874206809036218077033272367184048951784715925457421713946299834543104195035714130624562390290583282090880754065189219192986316548239877180805545720209878968958483792046517831608258288756450283180762978052451275778708289884278055723717072225328738506545265643741370511035206806027988143943119144923801898170603481436012881355893886160231548513034648180839425210343203139760965746794842386641749355495491988449497854391096122823855824408244159240858740558530787665515157573898833758277439356689030004798219989160014889891082353939925426565710091414159454229090781003532968175602429365772223542963209625474075146051720269937018335165847012880832686923798651956374765787921366120568041784928335456753096234488074586998034256571330154032461087764806354631454059215718397648529909115372323689682199656215831541018524716146707367597918715266258419428325364311497944940207472684492483978367873527767842325091278662903844934320926100754050471504504052347167780934237124557014682900147317882319182332317712943512051515195381318682644479899731460726693054627253165945284476022446928629544505373213645251001601732728223718948435120263402821961498481065348662546868393073320890358077590790301515113029509094533938753474361429109951046477009434484665045521495494860717741748269679438363854979388110924788415678399193710436096772276731174070081241678212957877246999879401243421695181762786963045614489872235651131597507840282504588600278729324351525023836602820324084217560685503871576891470969235095152370140283890495274517919468116870135784137418314417819226715265217722116950600121859223969344932887127614231587572280375872569037334411578436728461677859981289058304204830741000864739439740159322105424309432111851489267999945557500450148855671832401708609414595776559325530974058776065186052956097019282146234379229266390383163372948280245008685631516286530844382419843574625508532893926823237105992573460901827768433152440821344880810714700819018259979074023603813319481238594717730035067145791575661620366385935037815675630416609648707787328345330915404245262522636553296417116438705317373142445598898737944038315339250970361620320503272800561942490326619552242535746380090631698755776696228912151123493303982519973697754500975403511464321631202257294918464657385176147084869950836440244670278550921575650681766457539842323612092391525051582224843172106713390078641373918296725253930920104365477519416937087081416618683309379864035788015442377809365582037726990323001344576711727808390825468561133591871181461407781410411962382991283105515675565738865996267510151861519688374200210097629266076913706226221041419645159880426691904212268488419740290682071597124517568102496859163334534954307677826198737720319453727555214582848562513829189742497742044019310763933049284030748278442202390360534267362291698271981640658846298977577266417477833669645619916962136386826143218717365763068880496536504490106422820411978845532493577087221791902518277006219230018517647037725189930698168359971580733100971162291071934965232017616069574432424326407409641728120281976352195517964832658816911188030172987896990315293469364739308487029577925233440783362637060542188221321951483040040557068843348137635612304462817827700304507831949590742989141995395033334553781233084028913070781250100012204236498000299713230206151073234000482915720057503212872490945889702384417158236615805271519853889639715880310369015063252342256080137734590324037514259295844467253855714693512883801694540857089233265390010860908560099528350423875519607697946980748674581333827104336688854644015350570736445661242272167308135579133766354499499226389675764240999740653374059254837191154445918536949880132221454889898742831796924536983156233783971644982938867384870783378363844993505099552192144848706140359486431866193010524540391624392367881712120823925766931449365181340024464870418244777341643242431266438341990338385584436484051296652971397077730217390784438756669307642207225640887292807501457443343844572873844443147163631688966387470358285425199312709051207204310423791567939890699051393872553995222480026190594499654450871959766376173076253546859388983212843670164154402853164261577559847671954898756173282246052570785597350536621466595567812981121106028384960188916768374612698675419864797005153038834342371973536659706990579636450738617072351922338530025049694378850093307000674401807059820028155875117864965831325163900225929883856417570048967680333744889098542777875925326179755372040073384813549086417287957553572160403651288663171731863071141469125742473802835267892638417468377999049355988339789150101146771150599207644403633589336857451508803243733040137050852738044029530097766518786868427796019564314369543145069707845574120948704438893624670375949585080098555063069451348504933597322135250311214462448816261021151283567847500943187467608568238523893657258300013326929740512421000188553020366418285799625517514725316039939368426778400425038387235269824584840414828428076352052261429782541951122326055273940456209781969063031610631251313985069772446121254122504995183732579154759771588414558593602945027628971881570566107097913840572701258832991365163862416827840945257412246776352385564010696483279976889071863767491663975413215950882453669045827210315416010644863138086313886099588689102496485956562432361022267737771937940060506266450640210021173335859676692400176627510322444462849511057336939187980972886182924867722398486790833185006689435162294944696400351903450664129618329338819601721005526569178864028293903195106687887560507519130599594550411708033027006211709899659156942492316761131711430929544431202814198817774555551351322767283423883585085478668745028720201198679331516085171986360610190140193359056232549661940644636679198962969620562691623033878564204745881001283100727616580431403803783195556570927770414865088162197292260617765313402627688628613326534026262898841554285404795635483019401021520917865068063173432945389250606950062603192619154860838928681254406905334776534009199426281634301215568449422058990677562971720348930161306719712713062753162430564626729706279089934350176321148207157137819739501916609270678186758272241108021184989518042396997606044231865827996356583438798837371552966197980856960339975448591072308736987365410828130438661171751182192974028488268667255478515619297682078973705261845353477493978280759269726821607534705100000868358922345512391319882050172184061851961525647351513543641911444384973365120933202554552341910884204318352282807993563179215148960843368915767669787127042684785625886887547266491988242879583557866796526256715862115756496955502957519602006999178279856893196574627222840367497395309207337694034634954609735887550225747596790288070600500563011001835097222985908980808727733071942794411609532830180025541854935819222250796203524391878661093341348406201414245981846086440047375491857674135453263832400836764001429100122944933576077261328479626454269078050825984433882949956234098613638469308837945956037155814379507060999832051546440555906615526098649076619946193639571520394250102187729702471481271055953331731462073725813190811469001386877093927218923488207677720772544821406345297090456931089252691850909819814826088710285850611562339917117282013675661574759249901174210250517633486299384399584764566220537686978430695444249689645141517029788450898864313031663729532866760129646161929709806837755259307174283437969180821434400150151159657395796844104061772230500672645498459710557979216369950909344394310847627058351152570602567528575283172091113347776696682754091835518595277017727282052765210234265626617019338845281418830390115444423437527657505555146390155406696295630748322534477500673554676283821413594411504422474979585581910409419950796702748971946659224858417363215189898052845014894705234390013909625150993417941443456204460902464541692775938047854813706766195913414048993611542957049585469522299183001436702048569745763904974763661287700605776738377441019847874295368003086896914297724115497574897436179388045400881057405858998079166756866376135187008768090472070997849854643590081489733015268260596311253823172087225118794388388184337640827462977163279095246158931203099098066605842230623723230420656094157284885099256882032182743411740871707996920303255462468218531018263671020573511061383378284921464076362757514679014628512288277109137212636985411035475066195954945412438918233942975794224032688082900066576395202315263514360551172092451520401906169068326985242141841227365469059599609232760632330539820104365388241929009463647280283689680833992419603033008756331326704656308554699396508253152048353666449464167192610759913634855946938858199762020215066705843756575374654560490443389455883454537091673060393910657062632261346567605988851051299495311212068319031381937654483266523318597144130344173073464209537004986886541361654079616548360606122748375325235778042712578529878697738346880383590333515378937749018041169984220940349897445181971027251128807940713731535088775320732926466013035769674018373602595664202096069335446613322952239106288283377254985835947029373425818806409049383162058528877206694316250434992501781641209764716821162431544484201558577368602249279028033971946880620723218555257417723183743655958645777932173023128145051657226254225830656112320041884023158815473372324459126184119097283873061351928377922967302193132249037063210482343736627673795539808601199944590721706951034325683909537242226091646659293847977097618855461166782887590603096734625731562636682487114793627398510203685080428823131459269061149856428595836588968236289448372314237427460767453414205183700488361499643210738694988783459471902168410050401147215109700897160928939205881145136666581930219324752437618767038192922745189523568532264642165501976095731610335837063744675181403971830404917168450037465589382569257311456232516186259575844971345643944672598326272660075533346830974169619705700902492850282382818018084191085678447291887371893568727606844286029809585526570248531626288757133311333368962906049697046193166644463215701690385293640185438015473220021356344113699797677071958355822204293158288806994292601392098115667120724358766551331548245251879277163339510139740773695188564826881050791245030326125395503757530002083447283576330046091256642546102979102406654522959076112409445497739253037987143563029346940732721035498433326719806759407057526673855190550507912816385815763351882041533060098995903715213135287061022194816174602725678852706559863087495870005350201054724732164999429143389358756723955699155734508622096251497808606573997130931080604289736628397688942718054502944958999466903967692044668342262393700905193421485936243948884636329442038496356215745055119467353618285873074032265741898178486071195582723958919339915516498319783095818477550237711773913631082485967383837229680443755402144255899614022574868214689282445189960763167092857774953803449813105202567029633350649702401796159462322214794543376230580158834675629649739838943046286293103549327427107487261309322602690337826087256300377283709522921787376391431667614686472065194803830413051587128347470192244615264936671635919489400882922868978775307667178552684047528936078981250009463303297107212606977515843155152190087632976631061508528411233690731447580874470173331250206812891594091860078656586052392815134615697830303643065174519303747565056695827524665038461587983721787463934502871783831354950273918098247721159404892912175922584844035550195927785081469109572250590321648171041686182804043132155324118914636975218014300267089340268797190993292359201432472303940546665546704870752513828339783562234469131331358750432317928545045539707185290153528731805951115522036901119604555992318201444896980748345833868013097559962131263161130284851717207679151492392789164163618781472701548221444083076350371958765057820062417386303761318837526672459439337969899534279254641123888222888595967648445114754447195544994701794957974583156860521878941350269745558745783699033474139374434853026007554295845233337900592674055611778630753334976680566530747321710912480893028895773362753889013563945009152768600794738302031504870963961939517258462501223029623852410977766540340899486985877155791417929942731682978531072397981074692434175572578971463144342474759877002830584061339391841299993004283150052144167518462424279491819663463192232120097885614990232122821720146147356589174057018452617625505901137241907621270573282658139023943448800536226282444272856999837121723160469533065236588602737785695001870220430009345377813188158750400593495172347396680992737308024260643903620187528712146810051003956575344789147527591124413903668761348186657164490019625018857725241907068974993645128606978242802460161819459919193620442613050588115710539352050501769938447436896709493885552373180007833900771968401773835443989266710206704960552251014880265476266480413307986703226664322869919153276354910765656148845440616439371844265639563749286406407503257680911843533735351517591899647337024120333560091767205264642493514236958403680210728512980046367784653273365049246602308797392008635365701480884092763030375676081327134745671526308392667853615626199519470192752963333283561224769806917553726905630634859389263494679024149984204704546066488990561676857905051504611337856296383620675111721412291066577473835538017023796213565589203562019863203935988529954598098950674279361513327632597975267151953869877145851568823260888690186026337594231565729150952061211804863683499434230295605277767091180634109846972039063934411450491619128869367879866695362193109681278655842970993933269704602455003650784814555953341880681710590497664948013892864571934925378669319850904420415279161943219313574134538658706784251947916283153033223510513888598824315936646918467011351611421160118379055896503257200612529486492604473184787125021062643544243184791682691581057648401432427576854654169384893622694920484780537608772693695162780365946990853021777695813297352518569343476752311394943069678847190908336378077952558695672378479996787208019020997332765682476419549252973071807558376532634528376066488366253195902439888422999749385099138827542252295535283953507321609062935195467942497462492549224616094272573468840176661036400877530897084649501141021275178947808553380142661470312982430357244222812561865782764272482220512077283948676179135000882186867713000746787668666750366758006911605830882132786125446597966402191924907990605163040449129725738318082880154990862838876746940635637704741496529173174428164329476423268622357771941329001165702296470407427664347418048360849111592233076803704099026015986995161361098834174408026228553881054473624650624007005763002071505851555295614704866888705858122947158654378538200164401519711321983624705757372759481631791882148717053389575253056137594866224472767916060911851687447072561630660491352950658275704373482605117044191848217581404111803532419257774291705397297494817462567743153095901111431609656877951305992269547574688368343649876459089588584923328957433886403273489835683773140378279382044394879850595487803298081158517019257427615822941165271337387946330178640135743368477883305201128333947730508148540962289094931191613283630716291642110244853084336601871479976423770600351086261353896941551558724421150158657576207770440896914478903218332138224679387367862172015170309291478302566647521999136204607480324616034047240331214435881705671134441465108347499144067551449854595628490914864383149865611945223483314270602574286342539236998223398049293823157248317620854440244815234572889833218980144015705298744350383772402201196138655678314727033649054768980743058990480591179513519658030548068108554675981295509682496170862827243395923025602642756760144585028801055913487074522409909012030818266375347199849128006454075372094147941948860378650789006291432133684183300813106288957337246556996318527120498851677370553976323630374193980835854509563248883877857412144842070320856386105635852844896716106123007036668772821455185890826408225627989101420829948455112496966577101813829857778614004675524949341894372497698395508684404938675703166893811133780226002894440405041277393082166512332039169669815960304827712893308969239216728528956182299044785184384717948914387683670787678285753916859160777467670920282451257388922073005112885724579739608640195121994986748906095087405362343613923521981928797867470977016472368920858076475443478109959866114638612691212453066022567217782218295588423422944587244252631572358271449118650777259294144252118310588954819587061854094133891303878721590847267108165725034449359886169579647394360919713821099868866605688250292429539172104560614731541254736769838641670898122897127649826661519576383354875902930148436104487491031229304063898850193585503098172484830299459137298668134156837975512401782914094138097116090292014591654946538284242840962204290098642859585493457142387035425387591620688032834364052620008520078186449214752834939334278966988770766614634805424574962352487331940055088975367971802202141127289819140002716888958560550545459769769349721099861453772747722801439485708874090041727292921695111057576222755674833676986469460542098215165310780831604211293910849634002313160253853495659457225884274520579746528222094626497781915371820695311900734101939234669521559889076528977033423714516905898572912449533519362167381571278335609507441040222691287799052650798783482362555147684797271754334682628623322190560763222366537038366969180920100870520504577226933981447132735079732026512129008304301697539439286179913619280749488196919573569252894571715845263156104684141745282181120188513186567765754244618756302732578711482161211034208962928098672306389568207566204810422940446451443388551520215687627744040188030847976683352248172235254962329074359264566203564538068675255056657487005373690303812858827487143557539366528629409282503648463615695787241581695462738253129009385877039588063644125630333247577531783866466552605591302373837801127912678657405314334427211029774285136497084341996611705525380878252891308225316151283456114132715861439529707360039975311559939865813178916568126710219929083018789377689640292859476238408598994694733849867884220153355403255113915621522224595331568290159898505842861501175549645777630035559140031914169681210151975114584128620602895536143583716630289521125701457429846136550544258039510012963476514313556872737415969466560163187340476938391785120765827758079345426407150353224450311932015887781731284455289679651927886934988752425399557597835801992386261160790111820470073787478403418200000962486894949293045924162087944445421400875933932891909701553985836709816052539082372461932045403781901217715339044384994351004394473960860055947557947825089526077725456791683793536638889763519654716477792186294169903205565635505163890644217343111220858110743302495105556658988648172972764593460966588305613519149636368413728398285026581721686596302730292002625706673036847616981484643049315035071962960246008640857503088688847230436286173586811200774074587532076840817443915210860630724883013076402001940739945278674395150837019602636648905959370844054165135355599046866573842572689673711372000331327612364718141567286163192475466521665610268790655103367261870897259051168412388769849493299967835401684129925484337567625328631916197962314049423883440851914845560465517720338143256456065383673199344249779190581990528876789835032154699684780974381938183176006222410765230921782756778163164153052463318623510941967035846768350410978921456720058161278396262108346067497479132308035750623924132333215437060391656475237304828454502961776808702982210102580018876925187038910938521322617375803536174407841434834198571342576149941794251126654427832194431087385221052920504717869954132135772162197831928600232276418926033499346322976690415384628414836754459206579497401894049420965408651076409957522677388189308869484049756683497642948935311067838444935090874994941674076649193240089928411589150540047763040554056278919277755742975361052053428482904412215928797194948091925211888757437227536245592880130454249067971950441490490437406356687468608889783409998812191138141018695947354523441203547924915114798621044530751304870489676265775117795692697825431826901772745748423635046855524507696683080831581073704293205184098492276604793425577331157422551036046939095142026838211028046031896289631804675204060045263483059449305672157453716081094869873547233675912972197233042434822335658134097917208200532878556171010152574355260129197794749172398641083668194745493175300382538207092307693393868321675402078714089277414021949341042274664025543890766179592314840260939196166642306116256987174303396631655333339309313731881413059295976734354550812273153619133291527448420092894106195013253303206786924701284409040740644909375573145165534614895680606612799814043436178913962235927449682750381099741826301936851203389411119178956690119322352477030558420589407900889806524464793442765745525694033912691668440679590243283420340232442811160411632270798357749774048230572018428976619784645854223209647788529827619791803162124984341603568523171880842212978876484763719334473893363764867484924183257884016266437560060323618674728599048013125651289777219706794052436287141091829748658268419295027541417755675158156342673882579433576183480983385938464455683112187467317587234029719577039664304417212572820462791146701803446623918370008981434560476586424885773354420283222046812530362356098973677115647906762277893032199262326359344813278313515378522645204519805157274351751213734959957642535914374038721507070438130316401712197828365661768101497146926466973842773258527895541041779250920756772794582946702238787314010791361566542368662724369316312444663243886827379673294820406368802205066560960576480158656515980304161327819956565060186534486171983515248318064769111703220370611701297747720406068751500986931267882751986026472881491507133086814087083076729952303923332968590550649699073447842332090380114108316890448228761454766828664413715242579328391423139201370184647046443264245109198889141344216223423198407711246570895433107051188469457822282798636264297968062091040568676545301526673646589246241804065969113217055073376545442765307879961675400649758669607852970021354049572263243216662855828788297408709500372888316488585777618933517644030503479786316960649092232250356424875287638193037000434950213427286752786169513662959226464735503722285686975559659386000780504195917291592093438024183446365480167034793334117153980886157339787680337618055582924426368219211529066247214594287905978409733011738022127769599100333071788858692031850306958459560370735700964792128778764357905318837889786004189806658104475803078099164902171809891760262402026946906108478336951212570466016299498394322791849756199878532581065635257803356834196474276900394253923715372566266484630188033282763604950970014675737544988262013811834577865398542675246956459059169685794766370648364469306946331764549367925520028188297572238623309627347498739993087175238653400177562351101620880997313750180067834538619376123836473178539267442455223629406592041096504510065736982664907585892952624130510522288631657818292769588890600032982338629729143463220606669271809915824692914799967757515879077406307584541794316868185523914672484631251753309730966866630550364587686180841626035131095184222216833897926430646728116443420232845426089161136730030224648575158318591986225761591443893463834054559096284554847486751420991539626419414801897674341746652326832542416977126973649414176731239336460581492135886048238090441285000893695892791730849552164705479832214704530498950756645183813210353635752165581954256605867831752290771985435441327115954340769179946159088835213855620208564453260351361465173580220022055776999556364186743033674229846703897485797713816232963647283699451310044046958475412238992060757023858922532797858674063229093783748897751674419507644364683764896391573114308832874525877485892983194005068063124862211155788487214055886862233682836181616002976226033533311073429223605647995193179708687561978286845965587186518821602966940926689967194693336047750751788288758090429587141435750493794379761772840519147994057976530624936098410992037353850802924376019721421219807182774423027388937907262556372876402972782234959102204736446548110811889549464724633072868822165833881379547823060731382049286397419072273954553340501269163571042665905008311903017521716969321395532834458801817396184643153981854619332381042049430546045731513523467315859254429179669982712557627211694861712812284587774361570255849114375998682651685001300905868622930593637460997705867631774148854634389294184569836634535824213671585401646493091516751825121610838447284783180087144043011000599688928730193483083673724711983125721043202258472158177511963979904952793849837238092233686440740006047907027808266654966445446650264226311121521071128553543063399910686325703699169981824647790708188452790056747569896748833922804084836120348672260984254218241064739821067508646378635203732804871097719223694689721747386352754392353535174599549298327184475415107284813521424567356445488915375129666335328606275047698655873886131617492804809053857844727675551469663807769942406489265215175652187570645832612065997551425016942934491486644258638336178946291865930070080862523568104999957427558548107082468275437137709176215851116134367412555464811305807559145685273352239876661831072646902183268521307773203190362074397993918766600771305792669152606305369628931799451231685856576008809381330081499429499339498141584114070758384549634965304968863962172831949670971935294161664103253385734533701244620803602848384851102424777250408656388092658290030372937945893210597903271676213996935792227081949896217038703979869996706142633131497084940996882115460864519292808322184346372565812139222513751926202518769850423877067971915958585321192460043093248632691045112708409811280269557218104753070328120562846155316842962916432659622111995038225726490798727998655310701291163405449550122756373080941734980350410112984585385594682039380399311154758972514233759482168680228023083790344884901281462493384807698349963661492169523406054083699120520768010296057531098559891150452798874387398592647867741319892639135816772864455402146690899253294504474952911147307910366077486847152320559448128485833070513078429270926953130678156659593272816114014225740437929389606575258441280424760815127734635008280053213426715522280088636131617512821048760423075891499564735424461816720055917597086036365601360385573782009334928524028481339849465680239952461637195998883228573549692841135960914716102906291187546248352999696148612029302583138820995361075711855323353011771927057746630508991386987338453846086663229756015501819495703375522229940481456517332101007752679924272541407047888755899964852990005708438523777268051833045230914442986892975279222598925172615981997910745178357929410039985081000773136553514247341918446692948090394567295242608594615322134071555746009281949541738985697151737125079731536235850489404801885575879918700680615114307763233777249348592737786797218787635034371416994905184154997608601216593937367795789337848736824788003962228617066506345753859424048546574909634625555105229393931028042587169312020779192197835873537910714061397419678940140446229291048731290780672106124086488644793259786693288234935827899488788117249557384267166567446339757088536273857978588665163126664364093609554303659640814320730927931345223029854674853924086120427978355721013564738085508978657168177494142984343059573568990952521877860365287602804397002383801676263493323171114462612244117896436194179187349619417612740783376608663540751337238770560031927745858525303707304090731115263846542464876593433575771300783431413583931883894608212272452211200378680648598648209214708066318836784400638849686013116302331006890851346749051226970331426611463339535787718029270776478886550023295408363611433547491807416697775008676038046226491800385285411137998793052572814440458250258631075298336684624316675023056828996932714730871067040445931368728752255454931915037402766408775761382523989644636076179128873448512045555481278525255754057969287169114297876773040669611622203164430398229759245036164074323750316792461806264417683274168652631568404406874150245944265115469064895509868306928250886746572009862362657754431006498481498558389047582091294529892891476985645926702019422963987028863288779426848009523926612941021260949323574120005250284755113945220983495782680354474756758804952530165135124280765260459257053476980625434882276502643925604173757261893824993631786222930670954831659165028893672655103612049890522982700334616819849401237753063104404114091909915170634064574726627767634869912001728970435574238980709714781755880712895203994767652008172595767889626379984859861384686062015701756523655757501871066557400105666763839983451414989112269289576305923238129200579680109200401406061604508670298782890591409760058644950726966831389498113663060004391496772851662660351410942084305848798035298381177990482903677768240657312396170019993003275242660055439674590863761052861769596159519146641012182721480339402513951674353938899976352952605973074310493169000836105516940179917286405029089152495484977750306948140990073399189518353798402629293945486993026673851282964943655141067837012110262077106027499150165809046970157588671532954170532690573233742900679694388125734639614875646529561959446611615717753303940939092389050563833709549291668479362777122610249342833308788127588173915190924825517544352663135466315308983743734425700735970677355094839179486867662321301531633629185087351797658214336858833369869390240075267337317508366614188634057898515673600238771160976875198710925048000956761317565322519960626217105707862588377928064703338661630240400831804665550504723279185887833313398180824933891920551406135855160641148422872384455009735074258335212103141554628733408554993708001402100920410650732824949216432026359008743478876529534284783299394068144034004420286024038764862949206913147720773124086829455165205507827069065515317827404249633185690112279098810702073405655268342900318118053567043371887621705701332987891997192738930322162438613615316701131082674554285588387405924902766371393106800067614298645418459147382040720166067408403615378326643056929497675490979330250781369105123986315815242958973374193555726394768004382133159250276392129064561148175653537055631764527226890791917882949996019280697816382398366035207018113763737918214901354157584817524775989844432655738036215211383540300677273196091851780193947444902270004956957589272620088811617143161905043114102245083545866072261721287085504274578130314039750211279741142216411960485290798637845245237215018627656320721225576470933987637117998550302681285006760843170794402995965144982650344104882557145711399381099588284017650174308766050706957117480665414731714698651826468918926087095001757723670632873886052718992055662713868212383981730846544742194240132698436064915869445845158497336125779718299882321935037948363117132295200930097825529913744710471667496733644867847970432575275829799813795551246460396683933930609294483201102225848034262569176225651083083906836947318033982140876081404880976346368415841529187034593289024787879930709638998786574865197211618870940178099536013244178841246762318413818742442699678511556871255777490440505797550187960405466438449864561694452260189037745361430219852234111384867072664875574513154497580772136727459457126335788628153196228689612808957233075315017477132962052179447858782992334750659605011553431415135651697509633004551865194406302903462701398023379654815291653090806240906062123456501978753605595493465917712374871559449323049396690016408394030699113168201143292390989988633179192858919133500437168606271669513297977707654616557009399148420000663591523787707348918333409880913110708964857704326665223329228754499189583606717624019464555975043361391412410430643174207047056453085807808409059530913377123984471073091575273040378815532674038217774633177879489874169543852105608186829355415690261810438255874145122985175815540985355088531088925072959150390033659663753420618230740152939026595658554526692510062848448057870966655217855229096211988912655656837592534804494916980022504483881675488794971836823724397555337350604153564105894933008452082260994475297622789674071167115321417322786482519470764003429685195008045371084169196887986241462648485256763849159998310053580373002586256144625626663620696526277900856322984505561048684034692696916763303934778465750823749113222693593718407456725249172400340492946807529910977028707779233070000422041521459068487338014776364028232881659512051227167189843830513897455963549943697979974682258804467704729307433151064252394981810636829314292599905608872127604833434534139664692392551412884312848831843895880696717747102190400764126904893329983236034371610622950368295645834955475109399562193247423464699242990217223134009851083619148091009525760804402682764274264794796307893790386101197989395705510409655068150397122444404438814927788034371864338306678306538450885889882867022850553712517212176002755787846667045512536213067898969183239609629376019370443376849982516217632564538727013874189817627388412785886911907943162148899962553562830644551318237126949366464949321836792791114281262479786067025911287649912172783114798618419154359099590909149628938100335855607211339055529507721013293992014780438449069481066049763720131228663301502541551110119045317853325086675391405558521284447841145738006403305139140433376404369069532983423680832904746801794063064331791603202250322144337087542149309193243196730795570173419482409787358760528367505523220194671284679823364195984865251658576072531020847747875477643277454502979876447680353238797828152584034326757140022528208802544257344375948598743286947175302901712295279513585479857517521971559665797280143107175601274547460790118080671811329831581769787108904702533904178026195329332574814132954961744031313016007202926973974865733786953030673178852613494830442174987133475445719659295740205583665535575311568642154446853744735714061600053504805758130705582305794964649478534022087667203480854833493880627641386388033101451578510325557714656560743513456761579303530130040996505423876936745935349314323177042979873167712954681054850961324528320454591553194806519643234535329100289551086971824601386285415171609180190608710430987211526609330248523186164697257220189678667145380914795459436719545257345011032179894526122415931953746385901179574651783445381683729327061616891173488801755334470642992790641492393733576337392512117129322418669340447315413107486099489125761779917139835282939825678288230721482493701854847002040127808600533508533064062530137442570156583059765132967140913950254673947537004163081491056001596515114363237133307661924495671959954949344716378391814397382657065515874632506602978513402158983609518114797042735223670153859896989300471881080032164844870592860742440604877307324449668249975589645685841954788179060650505704033770943663795798871897397535356662509789219008103962965261202551327244516143562415228139477944646786543694950871036593250480360895715254911061443573483764122279454783469297047757809484007003090623470059108170273296507977014205142736134994657949162326535127081252468550977014582911217848153061979612984282693166342748555515535781928631434603315200827726404303738347194330013085958448464937126154030533213853203955207505050964456696409510704730542623268604154355670355388841736386917008971809521293842620497728272802910940955560439704487929907230427210783468208492755201586961007064313071234506412426635115928288354184396410434836028125438323028621237354798919524661731245559201563751326313933119374790034132488850657310235228689593918469822042857692494405140310004919936921468099566666730529107966690042143481649085417988338040170882957438889730067882098285925463959695729643718724723346871807711278573438524198287323317416389803725835818026405534181078765515784668526550167748357732413494889983831342213498285578424058873246073837448400774165351966904717718222969302180632711252088443879314819155369430191260160065640448663155144090661358339343930489916206294382172712918443375154212649005316204605104277807462418072826596931230520767911819860290570080565939917078043488273640425579223681785661065488558708559042040380357653604685433101788970081056846832658958440695900643303661501000434735734414156667710718242769104003535293373118534512787946045016060516451854227856417700317686858240527701846402705508775577791972201927289896560808678289000714387413745486723038048622799793561364603680471619748999677288176001950004387440439253493799188874380699278324932873840162423585575855531175621334501559719055460380033995995383731672877073702414176877263951444329537817062363059359592016560913689876359842733229088629980764158974889293175612323717477009645478727814506333272530976792863955077367009777816766265501070908048871018016727382431539948263060787751362017386728803516260640410665590782576857389621227309317028658478761010307239013603711038601291998966966009582567229204874287322872838408235023264700841546886712137002833907905035403030458708092200356723102070146955910539147451192682293346250824500774572041241452488761254705647947035855173657705162601152103037839756891617526960492632693171706218772825454588091473049310806720471138466974046467602893537438737625691012586762062497242795019526513741624317557995165457195731012299290895205681231119823999570931584387313100035587052607839592515560907254280382428850975442397401288938174534234807844673066630030845549059893967977331077032942331163097635239678876784483268761280774539088889223849154373750947414091009655283274028706148386454413618300812043428624077626814980749176052141927803451453825987418873594579852129084006775395847762250576405645749920317097370515873157184314996182800422438819481391796535475805807982978437856425206156302369647644380360583129744167620838205568675853463126649787787535377291727969585662221896777207153597551419375611639228403311484274549073197732134693728819234431390650783302896492773085306738721643400065542421053654154241787078861204658811334981738700098482965872065951698744239628849348663997973969001929968475012968017772156511218189260897057004323820020763213922030280805408839978141551960866584265613347288324767947916315616110932392239302913296434415422765561567020193810196622815222819131494042563393446484194882270992708322840092661268133715219497155382675777313548133763906408529672468474497250175553023110565118937213201373172338737568058036763268872824203986482828328315116484323985661458329473586019200056481308764997180119523532997727500695344692126454255316063139281522332746437158585256514604080918983726668674444043935372232775995084579602012356027607491264185135364884862366815204106213374926131401943213191660876365440587738670652106107995558403850059098687388948364157621583141634104850065397597183555178796655339077294492345152255891677083616880633859717190543958932855866819764717554641469347392252592321324728127272292685526147030900723867836881429329084649024330215529141988408366965275312682097174908812099907175942082661421275724364465164660038910996776529393773374558092713016792207486578704356390720451093799088248436758736256823007379799095250826204249190467821160721461137171685053743723799391117187850521057041152796725335871028030741079241058749380201789339091278470044320597497363596024620902526245465920949905989063643915540615443046107502989835782419923513694940997426394537672684951860338643243095953691492705778826863291365620916400392237962212307296169407574090855688559553754534617905338049334017050611580952193271598918912779596340932498839670960874575405924907140894992307989660729075456874532618716280707430467457233636299821663964731939379613466098697201102500357526346206114391376015171368797514186692654451039744284088232616758865052435051176474217897388225851785024673423366025442390245727936774674983845748373403644345672668846363821398055195160440995398097093773336749498002850748319672654801018480012399694212012259638072143288292473403713486540228291733189343072893587392466218072410789322637585697079228903616876637294448211569730577800990870553038494991809683934587937665244312491330940152553418893868961215130919229769928593210493665375190352071166299843562305184398059669777997453103912192320304707960908217769966298626015052979412096597956967039532009905316329732804503616435762129230808729606390319801138406475941754385728300426471649932894229405601520895474001885690953398886495709247430012488209141002435914365882406177593885435403783534469797830486732887892339305828196121641586115379711077645870288438720383027852632256575572089229244187227136383518359835525448786255322700728208723209910133381524831317172887763796392957027069337401353921506745515653161735214916094821969437439915404494507294753576754595713149425904173770026959031850656152894312056194778982140470814669224994882338978132151165690331044872020043168188535415743241128176861785520056761339593870755852381957403355058890280850678878345173730231495285826145180629331689240791614163025305817275173091353764313787376081767694510833070389505694271821622014875109483851536814258887156530743978232754915975429322006520576209922664784070905256295109605799132371974900843694643747446399418787282336211460448180784060041721417675534194990197303795749386375962961207816113509406216581565548949369038570948776143311510556223904427089986971317903987354110356052427588307488419674588144052360282985141452542072526381929756133651135954280191394436247747525217662258605573207771289917886750423863463044824286234345683432085838955779515711371566399841829059550581313100370338078481791899080193982875325219803746141765721224975498422618170014889369465778616834745855698867830597875644266482467785155749935739098606704988446424206397559091377916982167987059924330116717426555644880028975572514375942731782428002411093570099042716840620076043185785827059891692230229494395450233216740282945680830382437580151249160248124810019529914426395967499052990931714920643452138172252581806827880017804660778635763733447826743583908617828193905941332494789802682546544791417022842793625932419483589235214152066874512631041167846651145263710958056499029491158436587003239843491161719528827538810480949256746542495147115060825859497655847025970105685607294974024778665841848819445795125046153950343185442090762510361852209584731501455093690542530155883012205056936286827578488837644078694786385566771763397124610370423861719078720134900718566716171528041007942682438486949289374048743525822394716496817536651806473507865680858032687714515102218721102916143881531552328938765558987686997578170746924579577547839660206942060367092871812846360475510325614373851771621664862576793752250204740863657582742342985384759494052609516352583449349503671553087154372239583707300013396785594780915367203440532633837474312876061491476170739049793392753249548514283089733230460939281833977950108075082401768084864945018087306261065421562872096525865116398158342179755817330322473288020005841433394433858058996938244500426303937443819124475373536729359483689232469540918062171920146579711650164389446207082592491357034797062080271426436723400480418100913542298912862125606258670354236341953902901035495305244778335648459162479203457661447727951200441508970769257186982017125425323773459314534473934071610058475463052236521072894870149387556362441681523294494401174033029677311393817160984504818274792740096237548846692639932406031482522858986324398521273653823812295600658233427200869734424504260695583757156639608121111663577267059454051195462355424164615442175352287890089593633397367687591586988569229580974741041882578109937735774163191429786125482291839498630697613958845247670772455771500584982554421180889171664290732198667396835014960664300001772047338479782402658734139334379107481806495650175153179472286780177048861461909691240754413938402684670831046504588636315552575941669699299992567624942295693140827307050293653375374107368287028765068762682420083716436705748966327966743466460344921267448203665235291642890343001417030787621112498260673948928080611263131032531916181515658680418590642111952866790538323895451242062670580919623858304360043304958513712182872129351469151639397969854011653172831818474727898146182750140488416619168778954822427708270399100278621194764430353761871582688072342148750875478468648717183411074716410882673206243423915289602042113970900156699374717834601082381879935801874321411380040194990273795055946381931330427318360164899090372094268627733028841280355698612867847789256459766464626398981588671835828068390377770892070150678871212650627484164808310326791536277012936410973095469191888607916532080059289900146684033428772074737807054127665869632536126874297629520005715513840154427013938360976198004522152695137303215678914083061119088106476477802092134512600280476092639872847765045879553965597585947498773431822231595121372311324698075392456089314830948222335648469105388336317475885679413874131821332231618134258180118019007410666553447403053165177164623188540284158207951205793814457730095685369601577343351192919830930994011288056242993726859521219774360291247085763473138685272427274383710717951061982087826389277231082681313224166223568824031801864939388923627068384527600338016691977412559175656342500317335406774184737778513218181009009770824458729696325705402254702211650788160158333895044503779552589738884292274065032842586678481765878427914060349004274115164958023178315553551147431090956899131930316518262060971800179339347930583809838438257994540595044114678351583905678505718494730822756488992085073640562188319439014963834517030475207613868635828379819937520076509004454095451840240174269536004084791503107059186861588978449817114491655013478457463392946400085916759797370338125186114204782865569374978581836783029955573093878903572338506046853454954602450906586536522843201758708144397591568521617205511448312169453405673433312273883305902627597852723162217265097579696676633132173822054195419301346601755609533640218824222415153695400587759688246616084020047641966886672505726108481328606323523651299252355486379141279378616603453629258506939450308053587309615840818841827440812437262784706176397608616414558100569260698426519498859673877191537121570124946370856729937672817020956359954974739880970918406688334846005864904226871898342816950943723583621430530439631900392804607337922577369907831666426098145019429172592015825368538717670993745529334464283211423884900169849782015412302224023590540137578907435487521829078672799737279537790138604164501787587446773447738715799970995063394351646800654411109024158615068422076960053828315383064807477385400940845888888720559067771330901157416951144320966367640601340633345584996387678864084249613950061885849675534484114359226750304479693033658921983427001463955289768733738750638069816224811910289428733395395017371896522450447056583437735418910685179879616060027878417656934125468743997821425250792583785575855217587152845611855633672809868285367042006666416996876150930717086676706107820780944671184073806712617302008663125512869542821870738862669882032322846840510727320335459588988480904472144456339653619371966794572625555454334921487424357191191104380732624494834831217975516188785608471336177086338420076503425026225247561964235869552984527247093042503182576918987593274677497079632130264498052941506679007355912499402062878087042974759274710648835231402777544225956509844407142610999339288017948060772166562341854797517834812271536430798263424094740095215625274981067950792241704478951338312215138136442592067469803718300832188654120608469770088214490222925092017763977461333948704505297448147243358763406471506419947398616292409587951406260836669335892966850415957003448679509185951153229824993607527467550012981258634770618696151859456962469965374334990658387633039049686411986744366188050347363808238944984759857642407357121145991042594135355161833222161770985890902808367067205825356392596070193358773106072233133690833544701269050606704334801118768810286255804327209064792438088103829128081185328522525235215037663714537032933139436306445972527407728648476577843203481379958595732260775119405557964079726279864276335934661041278125370806508796812153595405904436571619096578793007096604262746192485141488303228574794132426956368575585608813885222586286386833700686461328412105642659185718946855385924856557979320226584924517351379489623370309377145293005071605670075498069779182447301710645643530833501745010736024576582864709434960480074178665743088617003007358599967775292942323522488464463632851465072543987549652706224021128942274316961696459653667567898934510473340514872748299495503808244178004595080158317319122665814249942074237279899596462249872110000572165240265786133395600393817280144755711763165655756095607851666631527147392733940275549601455767578500931049273449448555914033610471001960259157485313451987930293267438121456437964435033563017529383425139303343863687212184800216035395150820864366969531121823642086980946117636447117119254118425216466210790392856904434864230380132073057531926486667116298589386202105141174843683813671579871791657562882098639241095070409992842554105098070572682640515285506711133428246728904689361669665762159349928220828181343303681373939193488916835514354986319960259713694098155013110172935193506530932715642774855206998920811438225605060312843723549514005249744387897568878452935877880518304739545456412577941910752687544277519295703009495302123319585363589202994633020764253692222585496389983795524636260743533633441565805684816241989346664836085591491985514578344694713129950321266474702903261849681152679569373653332398102790672044345454189866678335721121474939336167640802295662284978514569605674443699491652287153159146672696310912711754101632283934078816890760247727677050493151648399693082191984127631824211273473784318512649224457715316057000121399983024611905157556509108119190065209965440373551479058773544001046266225033221193026364331768293842218564616460055772469313037865352896491187299976188973262998018772179112601930652487938114204163240875991563089850118281447149911005154871506296873776947568476099361975355898139428414740530033923888500943457206009062259414683756667025959518557007589432175561916926445205350858624087770608167699856343362361552541457248490553879661086611232553136815309510498625065212190961011544440623637826215070033152581084942144409331603813433582170841319787702666642149594941331531313667591774085759118679322618390153304215073437598359846192280616857537883720512101683704802611317007694309132739000264475561266915956136004218654314866220577062093365210378167782119474294884260646540673369416262873701332039995074928466298891481237706094620992174174246499314057327441296026888261454286645960525567012366122226751874165895904986734709171676535736030019927358457665530636022827866819688300516820119317747954139564775231746234311249590641668704086190026743965605581161682372602185820165558430317579709782862251974510546141777787865065626626508542025662393508872655051243332100429123803394485105049094467993362714777760844423030781155929198731859987590544860100749074340091720040629708236545588473523488775008582121781388532335013782107811085030735147377793891163085153058707518646592375437507774949079739023676744976092357716487977300213334665055042728199467346052849574010731923343959385025558966564704154839507931673601749623941545013903270256578937674982070799322061405056505543170302710506821391992098580745829732818471752952150095598943733641208244499711037842640411821534467617826332652533398998154511937573591249255054899007690015285530148768385468359521632290503235951221749810870697456962151113844078456565946009446953594995832737282361909395641279148670471533579885378644870807760278444192012817059316330614325761317710821971739454322774501566392603858996135884611482462779063217424161485448312161918570169290277115496868745415202878774642874122159372846037054776279924984529980582551605496812765041519575649023249313141264916977763314376944625660855532578625007796307595757644492976784148064188591049665752130135988980542652522474163130763849189748453637343059334969053576113507355364127476389878256026835389927044381380484420169470670900096831286013587845171272076158811633994649161797697604229883025338542787853519399862587837688113321671776016350389035976023227298042234928313854281063872897206733421003073963632815852468759853849936517526393062537141365776120764585092632073176302460740626004667445518577924273982966815026506521276526739427398732114340952637007906753219147115807147103027245280099378597517778494796757077590753051333436831819249161840122024415476879883077282180600383384786632302044140179143428639626903125875953296070945007652398400331131821996932232830246910182490197088267371971596177547530351813586759375329284812630719661339132916128622303419757883677631841880922129307297771033993254006570074857041187992850851121219235800611858928610636473722511285998682144344790886238828264420719979643349860800280748912355689534699077446231374610484388865818702673680238197143248331370383638229396068008452794858510652753245092808292801104632301483862549907823764945179355252580137982143516674635097869116268600193816248231693574642809959390450771153958361086037166243225090399070720435054626301563283936958385065144119993718812269705850187321687822521843379284455821952883357843952571170042828460889326347979021530280065102786821651703346621082933754759523888805260354851870848690353881532350830353658338840377837325413453483134246561598389754118591800447165228119494974993061849946333802540314387541471852507709024308262947030834454298929685330119457462738407568356388155977197600930079674029824279745583421102084441245102534690414778193265160039100254425481500709187639059141959105450215843880114741813911342577383388855024308710101862914275338826969021419905066430130740024375789685336486411458578504618207649247972647010098001735578697372261871803140413652919237384730696384073987310732669004718106846154730641670302317471845853635040743465913737916863435724023174535055690829877788622051510883493404177695333816966775621781603639083471805571329316355859881554795387619813453662895281330735328791832193382333010098125325140138032854121050374451487291109300471583252265130154590876682318980700720642242737371411454336668529323063263142344084449121430203271175323654429696318484203216356978869432254073631752790907224261182270360375867224525565896900284810977154149191290840061854752534847738549421127489499620610216645118251538575164809495139697532594698710408179360760450726842306456608501686456271102078008425837873403262041284169223857724683938879515313294655695522813152043033250557417646275943583104079047609120153110823428614419364968755463057761924215486326957434481064114430804394543643151821966215663238150611998258881546687917853232262679737790443387932316493549770614504808413757421484751605169890085584542608694694215079364572467880553768679330018213442419449406444714549697640418434375614560043935664384304075491285427823890363374987177096531773546775109759935032144588873150908882444161124673945303881187498003982273151106763894922822552807770663234109272493659907737580249208367943056431128622167412213683877833325637122205737411107583803158569752704940864495166476278591191933046702506842663093738362190212506953809369037281103386000707900159841583786292780118812874657974357998570921246493221558274037008401595926169519866543332676487404449802702751760378564146738624216949423441213568516650534815095957674746001836697736472021177969901223369594780794235250345731919282255364425383112785387638693820569490302938032383810524139773919172306980377345842063164709609070057489528208241347354931142812568917190959647599958314090340833415345475690695437115001148106481585542156729567012408316999969727349383539804227264980299716714319055344840002850504195575015365749743036647562577995825159369769540212226163530932553024940826396022780719404529812807097148567098593410755559756588368418454714424209620790302583950144439916747274690258016160587873316068010156503417423404151749802506845839435112623108991424279217188409078615297803064761923107320464574260208672107786876553915021030908010011876790300952720160812589519794022808906115008530864145660910145449983640969702563330414655712402792064596948565514329129286227413646332839804825540077641234440283828625249962479984725840591392613081232472898785806266207962914565638235460692118031272580045277903424934138498085534737456514215163770532942666645044553944296784413710440113967567298472220722305084154785433226058800009187788231141291717370936171088246228705644903140318137304218610634511749176179792821941682436309855996194332794133330470016357541036424649840546719371320670763441237399779397404081322233940495617439435940417797810027928803692843739746923447098194203737659824796969843684772440040966957759562351748050853765302769167368289604969366679131143930817027265698646159330363983823615372811598331977081701128569912107793350588483521235206918150106118020257385854287195828462199626643969956238526624304644042768613064005862686296936199142769420665493891688604707707517186698506272586639050743262223520360318746388874768037586778842318172035170383951899022117261882042417838266494066718392495662135469693782912533902130569221274795804676790297672970819208964299564290544755641603677590091059895744390239946986070199989771568650904865692012222923731179125963157333117127976145503869541900700646771297085850526265778986056484198858137743199367203237459001118115682471665879704955757129894386515450863956994663557764849070022954927453941845805588972076507369758593787959716439096741687516240175742416841455724808981699328194306239055282875359782213399769331287438106418551767670297279397739924233844937160999635757446440158403814351858767974657897762753997401144904268967459607055763842336240467955125724576838795257025307252422509234737531803529165150159171139918512597739525845296787667148395101219933142774196166398040914500270921218822329954302344018254865307537851670893637126056482566936256736316529013352811899572247841199966392220235273882979579618861992488393472108973047141803171944884376162893638038361581170381557259803335840373041559387159949696449856545930505411537056181987848099502460035851857641885825028734138418977074691307487193545330657818732647155239291814916913226658616782717293752614466135030533721173249061058919530020155622598372274299762032995552489452683106536456058803773883579569695454316674596724378766686466851224443223772958293948055562418262755732143396170472474210333852219511840601073747402176262337193941143084880074039896987053690442271881242318829049459439722507535217834176233319287717145778445645066985601665564131659027932806207939570824984961275963112760763121880702323277008185597141535044720253042297813435038052197462692803274573306959070148800005876374643007210758519119252870037512342438357471836734300734887297653145846059659800659951324138419555114870142156807926823941728278786744756211004015339757355065996167715493647733138849831958969984485220150116189142721802586434906732410314101338127344351228947690647785827578399435390370930345306482583803708171392199725021900935466161525286444684914311549892360185597531495808107830662591385752412917996138497109905439174830275755066067399832697960534041689699686678155569803002532019799021930755822888284177646974414396769626986883938108410876733488314447438961049960096088309292065229640825988315804035106631438829942298295696779797121815146007928097114947554439459154434707412154850555739954027582052642791669095774688789950679471303519757316145034515809262848784942451249742285190814470926235965754518214609113201160099190072232814159468852286694703455650532677415339347498063776274860002341922934635718520343312456240759496943519737745967420916307925291819121885795299729439342734364696903276178108078996382213631322717544776022655510156655869301112572312989875975283905849507514450377581360401607362237358840638142354400867236433105018799845203272270126858311051595700173233821328736966586107125789757171793610153797924093249787963756218406199994098948261695165242505711076770532495194661465458482718021879959732126892653394889577203251735611837591164671811774697508433999073361763939077693359400472485884119381498300589153614449517491677417306510728709811199877967816515806774476427969450636154477176064151775659753518520909667266038614510317538203728313123061314500011416623667644533193234833716981230291075447931405998642760100157099542412634566645085161156185356912803726984267177043624870383109597530475719098698700425358438470245545448368301191771861965865027233826716032758756194544706428800290186268974048988170475311435169970556539315056211239059122633223971423415342163580801576418321427295152242749388947799100034767232208679609154524494022538804184500004540313449589386337052812614260498519763331294861612085838246214420022632430397279933672837548358858581925049027374224926077448984155785589187923150557578264022060726492634006861271572285596717499406287462563462507218635310962863418122337436209255135659244493881479613716719353396322708774569631798091576526402012955128501322833746506910149679217426860026705481896116246904684154484294935046349507453344012859404265636318689653524087950461608794780418124175063085063592505106428203245212971612928619175896281046485727800186482556588066136773539439311097337218701153069734359979478235183205926931630477964427431854927539295917640283032784985560725022483675431408497561903139430001079185356003245860702254204274784354006841737182719425911315035545224255880545054940458168056708412961963899295412677268459183018359758183825111032113872694493282869593374323217202986913303289321831150677184785557903434676754136907131040514110408895926978249021649241875334550682891447503450791420778025600862473070559947129942071488413559393671197485170004558475692668300646125450154955791470561922964201604536613666611712762706885484826917922082154334741402124409674873725176073712610456904779259516704376220500924190314741898967225412317396316993325754096875042314846279790554550226685875655936236842275926499532118590294854789231163566735527792340970925289377896752730958417437835674485132478260786463190755594374378864969569299465441335350181583080670016056912282011705579403628036811821958665888313545972442711285564369991080349819133047749896592750061601551419341479974920935233350978783009116631040404319991604526069236237112106144681981267394391558279423277439168858935218620214813169783955771166732379351758897468517641438203731972362437269780806056160483222711024732336240244375553802773109581008496001788582619881554499733112762559773809257381885746705625887362380528215829567555197499870179497207539962028586109268988709277499511168599347771163744401465572774096195446477173133914002219575350146148384880235869680980456635170031433684635300831385603299100212108492963015201471258136326211394539947378673894750395416302551830035519920287688973612278320088474427325827421618823414096076046270217851092199899666369681410731923657162975751352615653111428601557369995138375394032455941653630095519854312107947026585812280226604865066292089360708093902210670998599643608971611244124551083153877365798531876066869892105246005660612171884414959539107598948383258984892299181454333137314362888021410254269232835445358414455619457554670537434765517357670173337672029686529083708984121464397353021144916373775957175689974776015762708654235097655103351142035522863382763937212231630416943803833055618439075733329179984379845571608004837285104555618511270058190076348498272369857736007156911408313703605217961183550480926695570794434119828650101778658323036901864539466545090091943761719190866476235088737406059903511096083729506199609800533863407272766913375735115050084832872653233182477523266012751129724409199239993985527816068260814659411453530847655940998159882158299044614728916149086611520346649816627976803142185068981439901313606651723811831595231998667746182634475495149009511812137333055628599748781264859218743611338335285395653837868377868594025052357762414082714021681863122665519037270008220102667485484119216511322734755917872813150706172602097233134263493208285968147546514978417926191761587080614523992999193318632653473979826360827679243375503997375825103552092339915135977204528948350166189856337758792987153475071814012992721100793039882767371428998405060512962475701780691019568505609552231091045272937412214519871944407388986918270643462605960019817034981871022530168817018614157548468949587620781054295745787373808920756341419914502590720632925283038781261277511601518780037233272886705888835371157152325396603843439716440759597510053943717230030403098179819539886098422131849943004292326443362375834048459639792376564617000082100788302192094985452086986869662453443576709749556632183604133415080431047819611434692612495094763505467853267395626372848071495573358875705022895075977028434139212941221291971884612333153134947229283755485323290958219208175415092781917016008881287924274495742732750709932566316870366222868951715306610201428865889085266595825223221836321881652071149965634374544126766607899547532883680272741150625371705652728403714790609532250597428798609703143792641116305634957510405731318184578024992179247641696460905061557503513255501437026144659860975605294757953288471183716961883119319171735020352573059762941304045080299995658236633344962958027505072010154666495042041662577408251814966865816190993355868043556034512086714413002841204157825585016281591658328897192320574674131213373549211042501600114896909459894650328836829013907469549870773044951534227481560698164461350056247775239070102316146589934595919817534917997454941987108020880402005921948066048543268466442853928158237486146785129290540710910686243458303310492859348901671914528008139266068530218569886897401946887508584645638101894579935684123564730181399974964951926516620159813293967442341664947983718244695868779129224189740423587775571891889486140585472866833050788049049017569412906011459974028557818076907295804176601103580750615570350345951556405767972012671239220724216889996624486757368283524729168180090421468142570471110470348503717306361583253728853617646534643093321064761636185516029200535401366658894266065651030647091404197619415576321362028681132701867076363746061204251729011234567173507219974487747878393797796713696229305513683695547017371024678247196248570173513635960300859553742310071431842058026518474509576537771973503156490004622669396057209971461612537590664217316865388939651044414428643907908484223445481639146710119516545508835142799611744766834821368908787145638351804233125954801958978822404070224256805091572150459618384860214206286276054555753252560158968455440044933343748293346864791617802088259696226432049368413175431433746549821826744117433157384160099153369523092523059998259817907331938191127426150279168582319744830275964622785891792756490689774115761775021525263801079873336044154267596431376928258103389363133887852175971531373194852737903556573989535661464384811201773242904831271880639386060801146464319352140771585730422561195014990203519063443904334242240799015176140175159709517156454032686415280176023014843602309333552818348707003246203842639426250434285844298375658762593707277070479570649530096858318441747978036223508538847986256495753687049359351854840544017172764680556003793799347842668187028319996668589412400396205339129508695128303293998263710136095737840259966940698281630410490001647025711430903507381255177900245862284401663285728796314114264435998917740920316090579547136030616599716306582009700289854197883052344826432499494014298442073491336700871434277982472919339439418500214540691369653599313786203843985504051230028904251481154561317398648432543896601931134534273698823040497168727451862256491164447876866365159697349163994254720861537398841575684947612164610444016654000733568706306397741390746583398983486143517083778483216265652097122969836222877085281891373816177573383516439909272364266874951586012916397242502494570649727992182411467653356449387078488864698063146264362557088669262277290370393107375164489890719999719165279000163657586304173994165219489903597529513139682092937126982864625528677625509334828421145573770316412817668567183593566402019400790577172117487273947285014194299163217550369557134939237100044370113613442319965939026795729285448993222321416080342383591796303810396803762856238577707693853954329285467024141497360842235333653468461637455707437426178251849062249423607905366488928825403326709936851224218549719495491771241389025169311563557509868038248231484180152387166626623785877692051399293346794740599711066574191887643854975070088653002300629723200587289023798135635060307022992151341062557668297453459755558485983625612466022662937207982191892268021807670592660813942825918113073835953938872424039424293587330041038769002671450190621314932278859881860780181921922808809809051326912620069903513888130660233249879097414230283646614975521360513404250399357443059539316286850168135157504093239617678437072667985465579279634628386619705967959021106693365267340199693672345237661689556108264606867116049053266080988596818807722501560139378127835191597307040699133351098060095272312657364208484135000919159073311245534866364039310853650252142019072514764538156913575195112341603767942004060203379904519463027402869515571436505546598903451485551171145560849688980983206492704196674477925208135056774250084298287673526417951388951758137159857534145807740417675049267071402765051301349011665406761054227560094832009278785849321772997941269699316809820111171158777546423915007142070952145576533218950649903141502137937825814056691389149739581568873979776113151211905210863766635113503177674813962338920683579090494910667131129727347953788149839496222222702081481200298653640889598168353523684440555138970924193342542334516437925828387799854681895733690103496724414280669963926374708991943821044276741739224725749326282793679762122495127128774359989815269298817813272727493657289112958800082998933361509448907263241655462407322229087916824562535760737355286310667167249153040553517229083291989705157954715059674352295547604724573823757576949507303871947056505601879273198761850904145572730713929387550867154376467585193918492212746254897069556512922227322337287558499491771349092139649689697573243408530946498259909867489718584739955352078575283282317483609032192689846871643156681305648948082546331115417276552696297630620957861991889191683293942690238518268334899317358449708234046452529254512878455812853608180719555119073157389411053518889387133931078317853644513504713563615750862061267410600253336654616564179035648355786410640430978803935169002693658585009894668284790815769161259876801703883309080889917736397832412430792921247480351557065164254663756779486665241158766935114733889674988511551664472782759204994384116056755408770613716624980904570330095567847469986266633894371625203335768157193256525519637820963410518781291947088979144771207691259137270870851513999315590614642568973235672139209336862373400936957228931635671784494200944563688909424769568140010963617968720842626226975089858750483729234972264573162975956950175738814218937793077416938699046272142475008626509911588507136681435015908624852532090137073950516621303951022467778131044359238136665189465657885253621398196430137914581993402820804226233375094500212150700275086068762872139313556273981197282719993849434873888258982443366889497316054882787622013966091287685700925058796152469064765287688798244667036548122989423187245939713998762262043528767770344322338152512462169103686799193410689465014389818127702896935101218150642808953244411391326310692038211609685934644484971783486354887899658100875982800068984200046242682237604214218221324256273391881224905466078489349320078478110997909113185811194522476861603206548179099497160840073301753051129533281798975890720549271536311181815990319539010692412973537997552482285476972107369890944758188363297556255534172215646963879466204348931337394172667048918435068029241366765625855380134148427041950087824978412127010807057079927282832730747905820953664269163506321499543532412349499133703628128521062537677481183048948347572434873157315073127563080186061692043378514296288973327286187573955819418396339358239679679792787280650682480691332799715041188256946424467165357242500359716147086780997069971395847032547558521486829970403949906223658776620106784971167490535784139615939322656250542498454333995664094322733532214025616176876005071593302366747275507791625689492210564733319576468144960939915308957314263936398391540543243595102112454243090431494056871284941371135882249643631683623271086328059516332536217358173695547778033154994358056047394333976072297362935673470917433452423793344274442096377130467345029955109501537642405443722570820988265441719442976608305934892112976226656792401249470306935083151766225266635735057832002627229309225771232876265229116324825545686560694512044356915448607114814835027927661206469576166829339202424136658240826674430826069325671271711115125864877960187872252253364276993674618239437067612668754964799116427408763902197449921818645182926483724285660763799658772243992119949239942289681311068675739534118536728748827173203791896305032019158777410108940518392064262520649267586702235446820656101549569092186503992766416413748498723448470497536633852452722458964072946657621041993548092674286742065495391304742857924210339570321652431582276032997913489438571615884431541165624120838886597790985774307321087530872828021993964959093289598714316280288738079752578045048232000904515415822429026382053765209636402553936052340941973529578202235158322733090098384388139653102599024679229670420137801691138709058502748610391444952313055116883301524695968884842173768319218527418805222689029914470981604646377419096561720661355850964256128301562387848166421935556942275741997388717465903414520508683894784832316793191867563577597259509721818609013335144070070797271360877468885381870485364636812662548920319701275696195964261973226941002517457438173701566559169142364693820240408432998001564974328684106039748936896083931928032696969730628823467801087952500483434408782790447636717232802747321492157163404203408187108561530138732567800729871394027417284646858832315447031820715147794543428539304415806042513021428227733889524571420598344646224723059720747026031218808447974912994205334622081712442566885642311297620917552657613446784649492694187728602743249282843848619361733920703655964305453932612312753503487017788383278369857769870906742178809471994203644490343126244694428110883495518335841300692705875199542625071519633925933112422115940151436720887316033680136109498252469113164751495971059129216963088747347175073153997175656806636081477777290172068800281400491322292600406995959011444539676884146541828799124583643107031092319855232936429146853210714879808396090099371454557907886842832654432301120977708240588775781951885115192807645274903393792204601579919012473953407591760140688159240547508235134492186085746623044818490779191251273122891224010012397354831642383765763465342446882377121877151618567243198163348280523010459839659884739048138219316277147852418322344617491080553335331694420530014824730725058691376805758679213530117679092538546407509531117398679577594849425025512576725532463691037293471275062525671907285476864040396588730215359079187490111941817306812038146455332425569518785200296394698177837026010186862229461469221198209214385444887289094305740520821063534554282501109464511236111532490353378705484913582936005465196311041997126975172413452781671108768868650936455126008045784206124874295854572431337442114791902304416335508371308200096068365863167972520246397480387391498069358271089185986923571608825320775864465255590990475243913339447175108678874137635409198400218187644479536163249302192800209236604688952436888678045736947587400899054371190359900285301273441761399679094817324434028492844345760446398206847471580954646832081470748418636066779362047979727354921001345196924515131782366864096743428759158388685222219563494166197263702548722220201987006702865059349550119211090142454890318442606373427888589859617578601094083735178682650073952347129336712611489042404276278504846078882334310688328516041257709558298858956812273840447493367956146050837922466137330801396926659185850315811604914884460825525678326147968610709351842345219328138307596499025298380897846924154958305475901016739128783094334460932133630036603196368733957622392854574251161884345522562248281722224559266456421211392786515848428784655124306027385723845952799805265721831233752066467432412545861271045620563210118092458087398913563597111169619098541842693137757258512088276056337167495212610107825737618209970840182135934866986421371263180738719433737729882332959458395729683578563887273771290261132675503735460985588480295440736656247226206222124432667334009654493802878754983951166230817508242826172484965768500092384710918898922511496639497759695007266517504956608763810814100713739540790397546957051133252634488351839677955385924353877199395972192245269034478662310589877002680265206385968678116073707410567676583095668527612729141314594067320758624009618588038628857076875739438207950943427981840162569599208518835174231366699259907159780107550514685968087084463879440699118416971927816505246938781326735760562855564274640008598971037934377148011696823465584520449272822146830272896468904498213330695667317398851742229408658932572822392689854015940186617051355929287151748432396293393711975694921342184023008091277914518820361357930646499147171394468190170197130353168742476993129371283208212418596133213460651086106984836130212085738327484084894641003140734280672757737275469999295574993356436991168451804563711816200678140605939474076206510316803380445990118533875903817234535643534176007236172470418362561044887669757393887849459332127343451230777877324040598592541408476633604610952426390448932596333441377122504168950805890916781038107832114567419903283831956977892675393423726149140726117498334388300240407131323623253353173137873954867091219553670576039499255874006584607786246430173269211053776450377336245587300377751649890539395901238523522588321025521605197460215237276354577800374888195064369756558426022022469330952980650874830738252134039116897886624478515989271044826654212675192369293834026118205359564988082602439360759882842067159065801840179593389228468495327339992035543279884400987207213496068253452304840928935536361851058930994475187448796197224915617905721697983652165322958354866274289436364668504357253432773295890524178060604945862178126851292420008997088094724097971152919558364811108264449484540536582710440431992488082810229171249231713299395498529766267478763575119516408005151518924457937974583387184201005102452300258513243367708771331746336348800306441734286856968729791604978591325829634517428835614979377768452879674038311090435720677704375895737722699343260164184884541265619546509675502730060152399790910372762192257925202245905697567568071812451002577733929553910015981022693219428633475611699301722667957454998463743058847000203004512920476080275287934034827068248381269689833839151423448917996637842853886843026570231915258980720908809982613720977920261498360002616568533029329609103347591698129530367920186893981379241820633749360336258354636264647209465419503818940581984806371891170415967991509010789448013635231336447646535915764601635452045267222697421274468399209153712937999229343820506622734657637208395264355903920992158343965877307857480763625852889559093736838978545057752702582829794599648810228280539798551822084478259596205172374898445788399068104961144219411832016372111983135039382745504842976893393370569528133186643572009889501377868429003028751252442443710140006787139436540738515975329121748368484870119766889233562622013399457037879673789449797978790223693089343930724302876216938694665982785889022324256298035521349927459885097470192005366088657369583069256484360070589950096396743809109202321276599336976822548570589487186224357690788105769322261024680077925866927348224382222075797511266887734872590565319394209704440237126343491480354947775265100890667387040715987344820030565179611484286324783416074011860828286190931983587566506870302591039674267504532440090239071718428844915100316760202236256304002133727404015194888094082449730218929304559828071511799414008616331306403972858954801107524111205364335311731695874815304089456639758157090371156409908353665681064432150163935196847468963318870698731759514660021033567691656251522597767769237544854869703754473389171256823699648180549811723389677437459436522685384611901190613736120602856011790933647710811513327780349342894539873821058263117926475235169431297900002151795652515160248567933804355465268434110494321363459131939471214835216468264208334539643808791486159563908449111949117852625093118684502464917280435037180411575045061628201484507143121404658256573226790438080965484130136054101935417281591477339796965177302370605412732884671660011556210978774466076743975903762243911935294388221128676168611226712144808088335552949618442050012170268071555453717615539511414011388367305769951779735382434906219416539763344021114479338047522513109723189892073900011265546717968701831741781951341810994184487006209085860984620791142810357323751597802842979559914648232397223059441267567355930751654045815076819818278507814611984163856371516013622646949568291052201217387693873556158951056976662791737943703032350439185843486656568038676443546994043485467815279750066720124666846581265446271325205997850675535328158368415929398226218187361283908956787522047420046725305138990501553341828482429932548549537538401076594090003242575514072804573210333304086804063352190286834038017674248813340255411811401695495702424483380805888100434667356399693565603762350719723618446855837029524315605313971879425588236458856070773320557309794032311677369940437696282308622068431412834127142020675133719088762348630104640021575384831419993134849864053900001638934915291022814113454084536009932514338348800126663554761580035426439191888379092302110715148163367093620309582405830740301955510426039537491586225587109723040561676009625078321520291585695595483386623642837752310589900852531152285292114111501399093296835610192787442485058683485612629721639018199530382356011148612775408596822656351350985877640043921642334916004410320615833628398314111954240048907213363647181464326179445728049261465484151672194684324673497572442926024255095223519922679689765580211960883114241928270358163920464760716159956408667001997851503634202222258324779674491657873940343017508358880054732570137981921786697027148062579637102051446811307678665300463900111345413671121988654335897045386794592472802500478082056943140735479478580716224088738451146151412029131895166535389745501082089095949973140392420872663452824513878776372804722097847794161022550840303659923197108984329190888716763460706273767734087121921976595813498712888963820806389798190108938748185679500932399467137669290325523409559850824577021877652782004088968043930439207322246443818087580712784633735973919506497691748168347166683970453325420751091371859370071773297229763625805183788156745417202421626594923469119592098988911400328833940737403227346314570524781105248672576783937476505869114520715865916743377297349921857604537125669713420587552934371658154175615167799532272302443601087597975546048145723338277729656865629590284576101667800977718258046536762043385949417242910932180070248500456732363449551928200347161903653647332986150245947879965878828251967865941680668312182321973156490649048250820727011198379362045652162408412858110068928380252110210984370247484508721572116391620283803465878918051390114861357608137401115948440521581759960260431422874546936412995398241420099991419534555543579252192675184227905973266829144318518754725570155953054653368664933758849542587501512349247681745532906794200639539296909357121366845204005471216939010518249361580407956158532747800164774463838079212833582525841782041092928034894058314112544529775501936746170286726260435678618331445452911228114025327319232258913802639736833894145815342714557048349155529749214862984203201036826192501706579514648353608093258940963817580525149421637825777275150576156321202055942631973266685673876525399999058807977503666356597337059480397781211046286715073595183759599603388129246263559859833326330934517275481421882327724066992871677401965189508380801957567802983525433398047396459006675840733756517094576731825752900672916836222134341617651294267860723526884271629418397522215260511658248941738065744184403702122075076665208643042366787219901463524272853053773345171994725705006297363619106023065216425884309593482446605533909212949957559531573882205873829399831105541325502135780914451270229505736522397644568782065276765715290489595022320131632373523739892641769443153055321979773922636773579858222427912148675598014643108547864014921646318002150510897948505950546245087982037562753987427591843227163285590729802084435202147001546437460849152957904376284787074870126269883137408952160166624246369450115307404315578229611153201975430994620024646849635248279936348889671633708594520170853910964378528727532682502946213234655238381908091414385562000539401255483316074301189580791613545709540265155472236541639074558851000788739212746785011914141956421720555253684484429988556073811443152017212216160855302430140882674463849896439340707246582030518209788817429668611317988250472352911700082810817817152382482830991438816123397845595625591618559663859520066181957709954609154845486267219250728637345822168755118191269844282949497744390057138850794290742870468658501353357470405297338855493830118724372475490180576882246038933376587585214113281552246288437793373955642065703734181042825337617740779219899818614362156296207022593229555503683102440684813609890703919667918977380947934339233556996710293362721551433332618531738388085662567635184921117509746392288738065634158797174925325553643893343396603446221419693174865440016058101782514716044507452181993277139593368574037304244968422297095886739450657288557929027945461899325599895762489338637691635924123123636587220895620908978122371464666289642119996459434893774177391527922041002726125177225858224577436329371801890124331650414143184912120576560201911159280275368171758187442437697287941166022820658339119739622808351747887931221528838353985602619689627551582537368892480958168873996562886963669654717647163717740199011202058585356319043309439129545689844153764617762063387501929876559849187790025540159629671030701676975068546975823611059383215042498903216628143927879737311244463026753237919760919615889295863026450835690881249197119087116601308775384088515178426202270951265715865625786603773548328529482801808826721339951528211373497013438574239249415869331271660594662519632265599683087229617064600543009289720548003978915979677716297146380061770827187269189307222121290982818511616979234325693943081539925845610180504912528914466296199241026813776619603455731746285439496010755527649126218453070121396250885904115284026733595262548922398518459048253333449543583462286166970882752909215002091830900452312356265314673624593567105550688857102775884296656571048796033172803597150337356177314904592795221241239947845705712811646498509406816795139912971941059656453035000923355597737796290788786103629295709151895858161058748880019125414906772616195051524718952327339642365253673422373565567367979611607884650239631623180198716424099180788567412612170059608564726227055591198948768495346600461907596167528876569096118143497824677420689298944057218317700735931751411622660635571447172455645410386246337180112372659110436248326461134115058096055931253167289799660114260741277488619075099472302948767869709753687109130998049969173527657529805176623639198014230070312592559624949789448480233561672783573994399361252400545339204206010580087857435278476995511438775428414219332027559752138187001168055524091978567183846715111314355150096662484821651334843456465970610379789054560816379296270083441526195671850684296060129279603493519328917486904594646893226804310817121744865633224156721917150413097437138583820383309484706647937408551139687349183859516750520595063527247351253518283487398251316272030890600490240085160477943268111697660373488682913880646499742985080271769402982297634513296055858365477970885582397444014697002793968971650487153753742142455777277523908390893815858919868338845444614435641381085027725838347105652130307384134957324660780052279864408184194332949280866948108682587307879489019490437929152433910469395395275756966453394894329438153559709197959635987807807316172528845270283947641010478260493348465523066771674628822977643129298611040618491136374224888021068173109774273140551150583823353534907757394929566534838472071462150436961452507989577440113087298260255311511272711239834333006810941624607910163361978943728990534094968717396681873589019697128628137146064214949786744432222704149764451272740640923880366961925644635631079371345756700923637850379024756310491269750274839078052675464630102510050349075796254722442939341783458241340709378045704725341375244827224742471741579318871264041642451892932649388742570781318429313203026822535406919611820649699448348414199837645693572150562374690472979898388542297394957208322981809427366968171623397466967595880555022322919857210720721617191896083107269491717363970946985357194334314269175292984446572332530709092650956153606251361622444332436315721789933070196816475163052921458850490687839118537444050588258488131058468887642671141752795999008886402934778977960548119139208234764457074150067078683353565963671217329155582424505724574284349797001153703433918478748799071907097520275600497881599011917965196937974652124455754865359788356699933646923224930044626908323328012525143967516521067162772904572413916991225173022342097701452969445176344915899272855875993694208680747838818282816178534512863953745203162348407106500244021666023829420270591106768084736545095216131409732338799721714735294053069871414508385446404931499488087949558909854455539233220226819634797462001180566513710816378330872064272635973295589292480370215943450854271305194812015162382780252041014649467507714431691639848787418453012186683632700355552396391083011859781863320683543874953305952112663864577875422154795058396073363327849318733657105462078867790853858620017379978914692867148670861312861496908263789032734360965683080645449439924317638508983037941203413879522888354659352098417889288017571682969972633818374323926158987260122070983381221033829856984186748192435086662802019763803869678894491943564701770726300745641412413766267750998771794581043493104999430946502126493066394033971551189561282278603775171569271528387868414276046912194684326594464318015665941472158914592614812169928145180226017996474093043623266592716997510815912856859476389689658098498210866363380093717879679902341856591345815608564142042612451871204393771958031735122145030069840976106596873789406870731249498338096022877234654803008694231491455185977948901040897773699488630262096547619548972072789144280791755120447445733014067259724067874868976631057124192925792372365871851574760530657413472419201983841404119507919652631453938629479226568545644447202581529171389943272017748860680651246131466853992067556076691294111166957655171654693144193101311619674459614381624960136685366669524024523854096362317851295321679322261140018319802188980017849630653859341965802840819404402918724923912388018107738057448358014756978036481938923228156665850612221278248194502962603930943062418306801346166239352842197277453693633534095676866024877334600359837413569710240221885192749329736170017249958965562319037974596877521461905109370778061728657990337695772404222855766163006370132293472271675913093785396811803532728142891271180871637153797065238384358696797198522206917040082790213635853102909549149498518822289888208017601558986684447965586008254214077776269163550113969573949419747735893418265143585906082043300540311252158485517870390967499229738393762062977893618061491020226167402256069798796382714065056826600033751192883664185585870086966986129419925882627498437033335930896660557832444586116619229661742866874822244640922075087199809869721171662824705687850634718994714707798141462722828588252689079306392606202667258765383663748183660855573460559887000901532420399887758208229872415588168061133805099396981940452760889700314320543524618934192370625475358545299360895250878309921268312265704554491707111966309815321357890310099285524219474231192588566505530305233470604084032019006931267335707447946414425215702218160931536892837798314996409593204146190297423204400132851388671964365922047052256122579316905069466249465669144448308354002625050869961574000673458550274294386510021840558875235418913439562975649637423429341477455427213108830850917378354155472921972418930573723762701272912502041761436533897318886861469575282040807161253056958790193205344604965596781024062279267203331490876862255591514985769575439183605933839986230647758196139099115661906541547083514885075826883734242007532288733926703641998503823171255083833413653253650645922336053558490460189105951607886318303354248707125737399146592706069810440061876603977742596146911404978170610141724728708114677898814288898283978533357370472875599365838419426828098801725902144617061073332170676274097528741370851885749530258888216373261875529760232818367853519521385068113737888706081420100974389600560918043968092912117559466855620224213887134854903834929830019229135408317781369237295054513891528408478244937217772578345842404576690376193110962469923464453437491897941701567807610685384241819112151260131361848082448809933249349097291080119395613401972425153652159048458797295740787974439535377916132545634926600183856186887724702405581908998437508650056012077904474252688296341156644332407069772028960485884494310117287786192243162000008883101713408317050786181311560617697482064905077059303286055680064083862850744740339630521865840804336301374393773664811503803893881556342160523496146301064341549702605178827343970074542475177951033128377685443696505983338195477829945335570957420112912090963730208668300498134976140380605873398680661827970132334033493570807144502991719565722512016448785529849610012777961911326114920025083703877594107198039429374595072592705457928759670280692388803090798147078627071511407740716021045051268965150881611019849632741019529967364135040033478242827284177926085069571983180561775363829518694675102540124454880315187995580691246121439175256672041459466954854147597917857436354491566298357395662357075154966650369452956574966482988387791874720199355759385230237531424716331047525150610979921229959807002312684014759421060216869740077228970248053349871778667068872691201943892125324338797858818614814558390491222625318174307238393819709722434087033278293324013477733331226112329201987948534160215616674093468078436485913345467637873288670594468060911625665015571789295441666832541024458386106121720151491937643835681012189570365520385159320951024262297531685048953460988271719721669894503515624198009510521023623999263438274532484831124586980651482688564333197003467289041273039445536579893474633718294409864772750032830830137150618213241276289151248630916166222567404941198015653371585484782183489207460687424651730464915171545247658339534134368728806127157583109500938123747703468835075272812148431598643784974796611962428862429019998026210866170261939458361936117656039065698232030825015876906114278698382919684901953232301858420568810908839136324846219378860925130980732914788242420586255676084778117012251879110230814836682700996422758272581898040630048429268664016904900657030853172498602695149204557294230741318756330337176737872513052145057500599676852951392970014616155989967448311571729084588307115837737092078017939897754191582478009394767740394219144369712678257562712665529231231503417831284057649699877203143502087409939138394079966773647474149873532740361679221271927410415862525866972704043118974994677690592728145257022879467734716484020676163130658357022780800848638532977258997642027230301627383962478562981773109526578153898041334915716803870056764152807743675479144080754348240632191735134128167892330907864569259201053841886801132289751840017936919379976455678339403226721787640843138781692243588270346327109010101302440882682000863527088463000284185510788149033438584313504342764432655470322229897531657246180537881557318380102856856838356899911243039897619911344404829845420049596805633929969787200713607805511857691225545367226165729004040728590259139786555553299513249114667409917117897308559915290407230696819639192881989289908931939941756919874231502733521238084403604382973524526758646873313205469402323242175645064060642952194715468155403488140022781070287625906030236684147187851847047813837182882454687263203866373411622045461919027040155557231212739021626543080993374557660724662316908796398062768153314773939590134038581701750939974130496796951905829140834723705702168180414339554378956062078454995475869577493257615139782436016786582211652400617583273214156722446342952895797709671533937782989075581565071607440958637962479507900646881019352349154163350133526607589097783413855045400238529491392975026235139701838109130929199433178229912398997535889363693139794213664114321995642489237202612410466592890558064004637348880165033279864626971705399817773759327815927748507158264150708771456957809630137608483319135838723275384076070481258630853843696160923145979782527016489101898669966791559121108159192507718424043724371184025764122778593775068255642655700519359997805359172601298185456397499673293447826897032967846543997817513636518727481451536333219581059965933507136233824500227026172247729990235088559341362924037373482025365368678779425919426388417581259279940765764040022346920229495939946874810439666357480562582864920493786751029481618234561484373589008603979214225667499783325150455159106090592804129181746023937307359546066693569549902346722164448220107495449864694855130496095605340151390489387388144417645511689363350528439066538355037409729682630901799066551812128774327327031566727408658955415839319208999463709850681321072884694090606751697611232105153442229400129726067439313937370531716342307441995750693442659599610068654451765466160650416350300424652996735921111477046634564154536875533619293662530536352389823291834012644569099180903290984044530659247285380857728628813306323828967851218136356230675673289177443465325031228170213292808000184406143510831194506321346974329660698609997854126576174068406574724797624961737080948372355269789455159943752179602420070984073837676280298207019641344223107200134918102304375819125334469879371771818180441276902515471619338301676517804136150513521235609581041162116235770214296458056366444261441481741302040462299000728418799813127158295854607533064703532819007844337012821350438479866772090782423262125961217052283943243788136926257331008639989693732143379499072513188690412277694800065626325837964669828561099371631743723975540749143938735784266654435632905746957929353589042957161952136485460941379993847786001274983828068563509471138197194650471072753420257272204575728191128649502984843789791997263550096098087168631473204325477570690099238079547594566872604710637831824141632180346605354561931317254088748501588745233173663241492596637614734349671776698601251682012401193414083243193993832442305245545127176890550927343488019206409435985813655800721581049091233733515495902068059596743844192426650274673008404344573374692085391208285036962350208294019083415685671265106709987306800821762029120943570850150941505222615819026310458835302826350733189697394454367197746093692833329917123262012782798631499448465295331290301212282891252368855385376758504032063940167350797390194089528923297027074377303265312624611320222920054508556430729991677971791579375205796555335318817923597366020207684371970819020990444994983234019571472230547440597915318648674460226910332216000166193453469465308073979910382961674751523393312859553901033034788643602996321156905448639674014645605131857637425743229715234305938242741377772588870059420605709575188993354658498707037724950772932227761103952164405165125158347295366304993568400735179535911980102736045614646950709747326660916713230845965274819363249101532987996838858234087238754954385060648757473792984983881271928073829001963373630916445080459026417688744464299751448042392015585189726822331113978656504992950063047771899359398296721078112992528403916160425778112004846963425970222310182026783184835479390791527778942812772356878431745588606534911294983085466067389957656103512663049171382333387832176291546987915796311630980828893331974455875254191784531904758410991110381420110587317738141079119269220904277422019468729273482614269892082526760531491739630554820414605875305502384097703765747308997029267576049810112452986306662583678993287583764160612592984527761325064482701489599791043144520070054472310609133734007161840063193214685192915621878585721598136683825187262598324615147671889598629889906542593795780965807815024583806086795817965113302751739771180443741711899955377040204280903793670723585432617141373218092510422438662223400032205334258329342491031046341424883492500281916608083159632396633365951104709907343111617846692795925351752698842585661850541913912086363104852974495645160256203433387180920694953877469599909564088914050225037997506734412880798344148512943664158408516384518090560185432673028786702188324424101348271230845664918764816479062942715079789350288631624904288435631558375239048730762961222207136283940313510900635566431812798005711715953566227699899208206056447455782946624494717454825188071543649693794313321483624851333601795112667253217943013863454141299934746535286071523016371759237957300027133236719249178752635146458772201352000163513491000906044288600726839249147194420400344909053099325489582573046966833290011337532509185939156252856471253513993093064585733482727118489241393447616648968595441820581870832351219160570920421503516991169041570894386497485129863832540810714200623028124815787865478189511669049417551959083948712973226382361715520934093093317421361514539915281317065222433909135324177504871700027831723087239796869996516623230598493366102600350613400276164862976433549293788865868940018743234253714481496727648950777582390539073458614818795366711881506284645236957006588639382040057791535617224840352557421643909024345162070987256131194026350458303170883982280910924474212393519128962526843708246354082149897911801775092407340871067741101146742369195649376206043130108171173046893095233459208427778097659420369142697866162035226220110567228129499094805856423844285553748833284178756725443942995495748187375173026847461381200649028460538847735484117058904484513135007139476710612168107161977735227296825247965277746727915318352357789322009299508896568843887914530549279958363897002502703721704230809593456984564371604652288547749766171903401843161289076515100211195677651027338911448722693499010998880472744933586176008270789560389450305643813156891604233359709629479646755140723806341643171585108615582190558729063685595706798088974822552298300073072218566196460583926194103116907470404132571822409404030249158473541981901007941820168445044902522690605198891924746306454726343797183279530479588320251153574811337821626982260464494435336562986734630719910984197163656053662450788337992138593610043609903679506016859913936988314790377666289822266010678006002418846635816636406736130033693108232466891533713970129162340768585622803696130020879502517326503801333375976180731662233787568528752855682821273249781354925019706869811984581857976250174183551713287058699264018032277734508263253588297697907583375864590195774998942837830025558862762668144899011708399781948772314359770810487535601082096067975570349450169449707230926520440332429701958474351302401339677687618166932847009620967984662335015126779264820213303413707974299763026049642648519152227404934251999489453710033339110032240381723770185902277880288474263951653668571494870729922064924826926483331648734995564921030500719127214936693748274130216525848960209819658075427014285393287724225032916256515825630805401592731381342362677726334705668196567431217837129150687255003425493034221088707956992331627941581251303323286680806154984966243874491401856367976356494729966214452705761777013138672217573219758669362214706668848446332732202405202203451278056801941351866409206220602263696707175182715448701734002108917180978851426927174007922863229848525785309149702915329922910159433230019938121639835193736592240173533447439253451388643502528398827732421084937620282336666571503451213465738112658342629767909629295744137976856887654091728042709545958336839312757726158317285669017541780192101811551515964001934550961894806610372028842559513120106694216197226417744889827737988557782939711732981528606335977968361197699766772822856045121111558003477852510406544476677869183920224389778545923963582576456446204018318293305138720375142585630357891716299181344613522239312786001866306251851296275280585383750789270546339630830113340664877611140295266268394996528889499013096711560239596911543576102997168669077630571142164974242372554841559592963353631572885482220442293369542120208734611424915006129662628492421894821151112012067507747407616979860146188570424914723459510942837823452622754166537018952750114934617516237990156542796283403488848909741954296048640781880439468964046654345646390641441411744168147752170782287057656967499163348930427904184468714562880309835313583212807358322021619846296313321517115748200336273225438825796964968134379418456214005577883511390232779050368084398391606727892705883437516739086022856909620946350519850498866365371210961873207379523020068926761836426348154680616043158200510542867701791430042446302407100469558815156155890195332910033083784687659325116613817468135610435657168278952794702652573332527928982695881195541173245665091101006857493434452800458603586828359032605597020822025883511600915488956883977918538463109271384194106369614069872458044414551210549201507752917485978450625789554912748546317974676251023705383171886442603768130634588080915955069572248727592014225206436981216931762523794643651981172171990542529732000272150581003392703159944131356344296643787086348347957829724655816280705835700971153081877720786152095413286713118333885723087020064015670125193213301113845074831513933441361770334946195132949047727255146629016759532874999202848579394825419279379608541137042039086840715015970520867834461934330350431211018838766524201480821088519147772269003366099706343401231668370105544476393153232700818597865372168945546876722766144955052263936017345602627229143190649060140310462656554294209522184653656318741583322530594535594321215597968781965465834018905695647308798452603052942097932412006454341157845367018041827983761389695026920597573760181758390155835798814816934382338728656783111001812135715785573324489379665495086744896095296497045447680768734299746904792883777637192025270385998492267962490257139856033230683291678139057282828025383172414869530466752545932958625288788187771978670069354076772496920819712442184162803348861308381866707271019733906461273708184091998095489312898857754216328093593892576523300978785654914508963220177780105696559411836309228893890562748285392155254544363136287227191146327754884404678061223961541558636887927637831296665250108703571533702284453088630349884075473371136375683493227897018555048119124193516408967649125249414919127577260643070508300856198702821456470493100552029534817067567331885445829003635382752995576102819847630375370361769002989465914097825737609652292840539911696668101083460487737281958343533180783187724445391992952727666453233083269691021094454277350517734821770186740299312768130403263335801274487087455918027728073422507405855180473402386933544305802353739934954493692797863899874053306824229953179440737144560994946166178039905090484689482063121663412726578077316158775461350255608570075232520709612474976389565119739866251110753901691473750346802505949971478283974194936049734774755431309928158788133500124076764864030927747957974394023683040831320347600561207416444317813290128970167555164314044170009135151917311650163292762223014065366946503441868092767046227909360880414949012663198085333696656513738737846569577479663916729197719850612872739725366687860019714408041225573768205082698045085836187310714695772010264816839610765099316486757570991146905098959195802423895281269653139274070712438181360552968047909157495421223149403250696165360729512478228425433007362941502582545182163683844852681512277631090467512608821760933572673977417818875720856397626975998456344458348743068001716190592400770204314477127944578952524410353567442632565288265133652335498038261867896646486192803443080663398995057320287317731905942019839235473588836328407698841985360542285598886570887890586271267068431297930956692201148519774821232331726921148908859029903010563390111558497678624963381073077252108416529577133896639475971972156016880735603477987141128835139447922037759686569706495717668842117357966296630116338752691972994777105468416208348565814193655446225422467160329642949178080461152277456386530014169131553330846852339003930186342238790185629783085371676678471188817695889627978863832234102100396413665870480698876742457679664356340944678194823324938009971701801861014560908744917151140394278054958497275989757490193573916358557670947840468076790022314913967015422380534083334689876882759063812766088353739144295741317502766939318590009771300493297770047068530641390468211779872516143571303690168110730890215143625299247040630106119430039174489649957884917652266232970323658607960723611293524158418983116302117834904122511511758338122423074414316679681197940179773863969490169503777921507399072631926412121254046576273323178149963319588565212073836090038770051104163720568794738455698475128973873137323249886389884477298828424396538217181722016890540322521264664401216984268771660021632454300849227472680337293831019907714272507141220237164298601692387082505376746496806049658320377319954865506847091868030044953711626030845300680157365342302464131842695383414859495235055317099033106253493341353699983590697872811434235275904393579375579289421328724039900043697723187973834888221203936058364453405023075863542149097241323730957578801579028730631165495190011379554392742758361307700662784706482668164196159858492281421404915833379276365131126242656023187203046275100284327294289552301494456347087808382380844090025732888648023350329720176438511161553133365261253299068157722744431497310158883840621482881727640616547026431362513310301496810661222351892408848668729892402510716906543316612568645182378479476696545172436683574874421017935780160610055190704934752990562150107014635362345436926342111748994365934915826495720573860880581775538475905436467870691740182859324115709266805020504064213588482816220755899690590572538457917064715468122218946189308420273911205777686962528982205425617565523793890958976074267188541939222654209732782721424346291425846278584743654958394273419862926753673886158112913501667148829028291156094579900856333269751910460711183363093556514131948861075487869124680112888356591103365098975007337432203260387190826776852175571162915429174080802250691904564807047956320777365258991840253076536127353285923093942582559084579264435649751440410931833541005511716983665137580913704450593061158857859852380079062407831887259886411865975767635688954424536878492619086317274965035034538291365217538214932021578211948516686123406922472025235609109598380316120100671989744501244450235817221679663109697951972597860466384739800116321307090873172329689520032563795585846710577335024726103884983650789017893233999118415458377875740245355158273452737114926733768873874544194256557022494910785815222585951506920623676229024612257389913718270772400475920052205034170775638013912722913087283162608969250806745060202752096726907363698206150207541618476287941396138908516913889843477842080008890058031331184839399019170774059867325021319049201112589947083779482027470671279481726874248758312167080744041845864757248533397869158669045759142525279423063961505193346504450029121087758550366736462437362463755938770998536659922540668444054447501903511507786615419961158574341007817206128038479389631720011787876854098375929107414777090288495459360582238609809030940738085384347829565228879906956165292951462421442505457741651986318335537062325801068610915261371910926336805823882676991832114776588239057760411412523537909339029121666072047491586993935393432338563759486531969795798364333360058282258327577599853413454677747369069170800019898346177126313020201369984604646619124155069248256636681346036420208495547500031205594116492776068831297415306008674379297712340451170501860034160040997393868945757775878898933320562208266199217098374893143407691622496410671930449511186657798155739011234652270328171132205087283336360575601671974678128441788753876244816025704969874410440093787284364291701270268567581663265267390563856577367804697375108374587014872702909700021293903118667994728901892851887818084332775115226090074149904298965341721175760950782477619910998539945304639886150970130458602457876349121911863911720859322301834388392066134885407112354330107123234170241696492297661981112225430245321668080814465960469020922927066607150939956842608144796219176772561447372491960349037972024828217774360439803554604888227054670350825837055618594389806761688004366618480554797320560721777271850864123703177178715333614451664786278542081065150868938290128935746893553507461525356504037960725916973338949590680021970011531565612670429368228788796707229227731414253266947506663895320101116887072783996201158643390761719306528940440547132521701523182764901227964943653338697092922315068607918664817382707149178099689703320330160111913153688002010869485121165280713170673771400034570709766562975813060462902906109260687321403259357710984050255351488801589585235381421290263783006422532824313526940318702379233959253910633038466099173074861979313850534512626491254806297246322919033155476226573472862074174237516936123287720314696247262650902047133273097205043021798650847060394079011701511660252338570890573232699237359037134709838164430188678207374359266083242886234114861475003481344495505580619198453418985275656009399011075246261379830268716434798466666877776089244212783771215630406128080028196661749801477638249726476617180071326515183001717865796358317688650716635032419872659427946016551035867139375630260193530226967950279653552427217912488072662726725967218639018860299923602515166527957765092271785905439799161847549864666405962430899869960451083875432667528980383434114063061782021037378405892465779030069992117393429196774354198119330729516168618437109879658292028782580794819591696142869424139221612457917465914456046735019756801349959876638352672930243147934663153966964187576175870740582887462901288919656018183271935798635497482947648822115707907998827214604607056434969391977628968095282071611423657455321878250807738194982420643172101115096181567396405657493494924639844549050934876417452859996243869841022677575902958101150102677578796502785592345733612609382320221061817439591727660999383863317924239363921078600680707263215587920842121232438302600714595602006939715724550400337440675324987438130839838079095071383495781164421235064276505437128668226138320386684095787249727710580161341559282045325339322829299870125976517339889463676315502062544453431161827745533402569205763823612990982179484603478989611845755257305622103690394860642878139594826828884109880046194971711761230259585810524714237104195137332354268227855268831922461404247655807528526317988758713146122866069239525474864360985913605704283796151827809999916592472385900627161254731384234871902359713546091062958252085152873919196750370698882868298151914038123755887058072552374871969188089871220567310774169293575931693195875501832405951561604008069438729293677612905391669604597669624140231650105958638736434249141095661624515999416621020711742489784976930321016272860205906097374221942578112013231199067951760855917405845297559982841265790006338099602192618188949156913205367373748495102923540190065095510051477355860127975487634526725340878712672964461450352271091226937259716887801868684099458579656697190042480224027843023346388412571045170714159785048149234763605305879791059697687746057378515615824544985748008929238553299327511059354404939078277758713588570342286015213028617729552991593556377098832134969584608146597417144437313158676121857711508748838973592873333785941548909805661982177854555558834209381839643059568653795171683972644787262131941207824514855772572664035118901913867790191226607490472512474715926967356824978877160572350223369276187410358819865753176411161436398468520744971904931149979284608479151200573605974584531482052909530927966762366751068117608591108475094893864717103712452207856587670106286967581686033936925592589258259586334600833491408370823442043145769271527430778395501190209076712940316072942817159921720818573563925546318632682017670533303973637136911581164234677796939494529924498518916140666283140479745511771824878289503927369374293994086678844205171654458015045520407012732025803744115003644283235286910394784542398803599062823820105254852606760337903506120276974591246725214455188634010061059823378341024888818595433704854192420483639998309033288379605673965483261625700383341677135033999582253070118523296050898024844247907524787564394714485127952248501195402673216385996399311496792902681819031931662028118287588716867550897322956207943089515012170217145071203643432457331202742905838467458119538090241180085087971960517078611693736623816458873956868986837790073159004510696137199198754897365525128212734420280798382685881804266614922720857555282214892980091741627698317541388743114817436689945539390052092014676938959862850772604045167514857347758688644272111793797770227331017167314947117502463236682933769263112083393921157899102619655758337533746907494773661609163310283278351643960610831183154077061298116019091393143723571780796446292929249791109353730999275325100456417043767990716448682480283285570864818764775625229098263238850654927531916407464407966480425608871427574563403431998623113219292847841334140693066882993855695334872409817006231968139008434963484067384864427414871164885469586583398002282732839245218649381220043266649878521133983232767156340972603685880556164352382736766912531480517654833313199308798414159815321102473637459692167013113520865424540584463579059506526529433648875480153037189912132330310612035714999482632780385593515093243484127020240490974720016429500863394766270144491411255966531940634676877487845065872239416348293939288968284469984728611479340078290500324807554449977512134505859911102406525845836391725976891651256280758107919675247446335875506279400094100050290749794471681918143313919137926914417735313311097268037491667954538100470340768996282783267250562799450633882050376161797181421761656039884259660555090059553704303115502994190810911561572980932215681379051759392505881534124940371172979674656690907895642163137733694881317597443219234950889259568209104686484699563604812191158638552963625609024115895103927380959860299032105248198314182998354743791597469502516604346010108182143207533396536257154286616395148320825736349235287463620463783451900839588804545132332762031696966504261328070150279301617960995386818871773707100465538344099696963254227231947079007212397659134076075446878066141225888389155311478562551148478536288188616224039476543566167126509628600966377297301593188371949827181325935814456992146235022343950442259717764067031653607929631231827664514350012861779616871291801427524586779202956490389905927344054228115005257061508143846610629493921712362494716150810132386981445591482769480663483609135023185169058128930245960058686421433428751163276287685007215306862325217991429821849440285648427628492892480204358873728155327155404025911270672832070690364345611191191659856352567600865669655274586552661917131966741332376334359821470157137181553075321512464850256230874878162929740004365672056758391616294367583046711801293576722726691662142434064265938242916034171002794768950773311045443715946545145233172390929195245209083497226196464159546821714420326098127425599585680907013873760042205205486944116152966703514069311270818649348643510861705937730971091824295797043137046931392996834520376983619454836558771756925452942707668358055770807256817644718003278865570775068529626638053297255989110614054704925862189770098920856049349282981587524382696644621328300328075968104101937298839103077583756218835637376452434730255577455386620229062781673242453336761155584603258505924231486438704411094577907576416633807979348351061633734780216847718026245823927169231111730727106418173761234290136080549258232122561629673918152546040755379441057478731079277194285027382611642860064478340167303223884353488151319363071173143974764074276151374105700100048708721014057564481133960700205759114593417626349850302278895689731234324619013541917090488569130443072471577593556691496738305401119052644429062926170791261225361298510056515807166416709665289055890743164014121082806516381459110667713809767281621808267724806092480435663253739095839493369364516057082428834255389896519988694072243376997656567802756813661779882298405984095626795876378368913970858756727842801172113525903075149799635104134942329506964580853263194665921210863779188618717502278067385987144284500751902096054563256114462973048171133113927599201894521010153235536411494670944022783313205337556244182776523285679819056260967638536649892269401066756762598988887505088041750548066465607753533993904362639810071626031203506901767973473917595131160405784724425298506474194923687798359718635201411093294258092897012390659794699051974006840675952972953138217494854826603941230033206464330187906175745482134288644979035336526579382890349440608246783355409897571464937508214929435057082393982259659980533868216287471503978210410000829186937128496762080263943111826532018665069942456336422575924228069267644500519906725124778172654269705408042372121967021834134020360638326789133375311939804434398560785776818678018223971649503804281265347892811508168891875382795696422006557532905364046314751553022461636971215866582475738998686403468105491900027032633308360519717501158900586687499513671421068708720862949472142830874277402240962323696225249759975030498116057565826498415686072615903011407332364978025371501232551873851718565050707115366881410228585895761417355777287369706270261293303345893808318872830607251966435549403707661392305111778507959274544465839531636563004004978810425133676846283996853130224790864908291056933359147919074741375739604559440945328241223150782080265562572900921478813091958848646469915657795529968442265063747274889858756308020695072103760081841720106393983046144362253389022092211771778065096754943481178927528128943233493156884681738908624355323784489769072934672425366050248842379169820703738633720829912824226350291370599717737363835137766198692462298654903417679691150469434522844282716860144903185051512911890623737653168063160090782267462964234093685735998362753167398271954237566496916756247825101268617900989981788194951143151608434060819714306692799770814728954310400063307050324998819110871240970829139944461889526768602242476131353906582493530124326739907970760105609503755751134816953084201396958996309265390550841166125662434189887337956808769099689693912505307171724978834680926616823513022829063256955070093640026661700336383904445216797056587832763981748961493905724177589858530426536672240348525229527148063749363996157035927670074842969041261466559011450588248437135024625421352054546733169947721987320526810677601453068468066246216244431053229801752696248554585561115350247679074697917645816679366452130951838682257755627687477259645660365752690897061174662646607326174521265202712100469582049326697286369261629647059673947721182338245151167029132923528701616855091309981245347881246706806136194341048771119792696728234412238907425697081034899151147691464532948807258358104820553585023189642546468809043048368150358099227035705231701395103919917340665655304152738045815031359742440956813048860401467595149330460815157962048905019030852991058836679842908551538994179435510195180697592844107263898820580804763591980191971487111376839482246356014671595261140095931265596576904202782334722519130233824449136328285207916954122593895691211398422706999230145313509104331212324000338761031435982772105810466791763222923396416376701963176779430069468012614863773434273648878638503970391726179887826183903375757581718810519224436054450888404270496698318882273212320633311090953261837660133276652489419438616736797265565213994708026282672795735638061130100887387452666364241031210846332933697854918706410261388206196772459494114074359079308780626757026340692776564806815184677847229668617409545308322740557696590735725989855218131619199174339856515497188803801367147114438531659703750796286917992324425823252719265732452684253515766478608299368711512133139356212293220631595541364371776450535536162873124107147274991803653215725824246679183391344232850577581239108378584516264784463479786308912493415932237948778694449826498718069731876885717081710146378797390145638810370486455017776018807264712861085950645172135362237122666678612701313783714147145394562856206371953792893527381190508640119066090977465118433454642272063066207834016667587941623624490269997719368457988901515561167569539677028729878280659286484345276639128273302497463449635522867138429874538507355580650585753197469843969923542455869656535139122253101661835693948271070482988296756006835375497423303318834587696291979583840805721335413367569204946078317442196036020771651569064518479242573971978614020427259047746179286762856220298782160100168206346282928384703017546607675204410008473425836683552482767514090372947216359441642441166159196972000645252375608634798423725489373863146554348983468068517301222446032139029047396659908261144822086737490352360780698127842733593029712148371540726506043488190172343836633776040305134918838462951007783053402366933976262468105992031666470679603460717101972307187006639049820725837046808537675801772322650881046958603147199509514217779242278185160641001062506910482320357907312418200326344781367658559727570918169121442377229866338930120568213810410039701020886435381480095227080833124026702396182665093134360987934011143813558161482671507731977451181434806680245277653566629901966116014110358541868777680747189447588432174380118267470473878398002182138042148189053644407948247744233796550185381533787255880635983494698455703030912868380241470676078524020051259691368117176300347474102121534033554299839063773988367472151160872437339051802092168421736565133515107714252305250569336825868903056621984611729577252211439324526204233631427408649734619658706125062996511870862040424619676169658301631882440567024636510462642325012753926889627571393807024182815636967767479826854585974396831865695023962518240914412205595610938295091253369666900930610101335320210819616208785569432019476159096156205134408061157548121357673299604502193479404888975235218563830708139549496687698141285009347655494510326234128698878738591442877175106231805784218185890953166091843540497915449347223354288226724952269593147197114066116017384988230760250650419390942518368064959097199441950976909008531028902723928204434318698993386108622786796183084095044439104873735225932437814987811620301209526572523292434165127920896147020159191038665220240094828666690682575343121211954754981163211898448150600034781910060538134377661303103957934254367364927265318442225560156952806038991598261230717540529268026685080595633903806233594075846160280541464000028173868229473995700628774371801016447381783232397932646547947913194715298186436698928650810497589367112794853116264278009041012678215018737635371165928238202554014679072094921999858517636351219482811860670935223545354107634739345525245491683546343763355696827707384914887289935995147342226740547060517885998480202376908266331893347577057467711150274518556672442112173372430056887713979899490582570773549781737513198441409785916945107420217840572323391625153770985512585420781320784311084649790947174201477686355412728314758327966270771472588983101695502695027974102835691852824675481463451276788323959726300390616741376812025497049762654090613593358945563092852413159546965756668132829055590481115975968492047623949505831506333745917205855920374714975102029563203048885932822233830436083394836950693830667977238782749447165806064474665863934161056355428302326525011143154983913332736653305931087500576141463026278467095323736310005292857988078100502405767148671311310472506174400358007014342146024562956653202488025278650596022208800065436964262344233340020947932841018759804285371711596359569582717009133089186624770098438026178459403954870468969811910487002504555703352235922054504765735038757185734497976919600251057544964601415228085880190069837857125679297585748633474339018433485629907224168352423099088088102602466194282951333186678787740402113088540593514692964495762796541776638296768832300346286889264046562799205577908881952146605739254778233779643056900961557359062157539856294969683363453120558624872372328371585461333603033414109082697808460597032349177825431740595070912468082650109309512402994127536583874942932311099748572862182670019865963966176828349560559547423260365053311111083134538966903934467002200379775707279779340745842706958668843215945834458866998663574832098217568811438775388642781188813394031397264621981186894889992308127838672041760709043257159688210620027377735233475281735874502069352551820609056732854742290184378425225463596621362827299089216140637506767753651771746519313206738924139132147015270686004737227894382477555744268844670107783196329819188800072941168880524274172407094509240708920117495354379210422105570060122101159570062679800322220542285171157937191609991318255373418619019446340591226595412326853727355542870269285632917524214440703477744462631453968968847175146398452345793000182283076570729561170370213118765495675309328089616552464004428961330810480688638279509501729789812357416021287450644701703907625480135691025161264981644569448280586609002610935467152244600377167872591559913211689905866018693301315748825206195790759490924114257929864259228315255346616289179162423488346788753470832577440902917002093881304541925356507050380043279893593668105300934314048811210517073460335552808245449522638887249783339008613125978371478170587933058889686300462921911093782237381945154733853072195786288431816807615517682053518213764790851316753402005951338147405327005442475056446089472385025518711621783963861189992694716722667257327607077515878566331503148647949257686597008466831501580204065708343797631728413601938804970458044936497083682214169556746109529488951887931682890114585921574376067321313301088359076464310031402088045845919642247221920053318160411569904462620747734581521378204707416685438536298441187902614398352233428358554805031902498999396302227278964945402724428887673377491300828652963798977988114029655610113864606264567625814304253079545136802952957136351309055340804059118907975309468658502252432939833062982627693872312340967456397038362766656318384003463005914107125158120219315185235103047985263468483844193407731791607016965597335414747382330000646883441297471028614330226132474820948506412380273933997304019398886767395119859179840274938973586977863678743462099156689708729343504552637026219282259799463892996078147305473987254627722766414950794384962573046781571887232858717054980150029297726099119740865231393329869568391694082424614925243391917826074210032024646037138313432586149053379398112181453640818919923667439060818309472830402350770205518373344312389367492091790786683024000531268035326771514815954523259266593207052209776365804579802073398530003362459711535564347668892546212133953737456439197446118395972780739631713546654143351975560070855705902384349445685859301819789547447149323528770972562981941177465513721644280148960979408662824816365629139204508996153699873402773918530845456418254326006961636696246651208066281703039789540426629413769260039905932307470742960174717009279567512162842690570846536618444375003871140191545460562923638751698364364855675787484659040277475486832407901316975415695603646295741993948286973422198253560526606756437552292158202702682860256090670095398517254349105404249633947020954865691178147039527769388819858236142427029611082590550685204823079969324296903633192990529837620301262939482543583260928726002320443852410851751049011040731434584783762656404798667519993412099968625389441626443415216477070388812524814340024528957709596416252647191091296043819441583649100277064984780656155024219451506385193658941464521348438161484626110276927305155650809125654801761976855069930253070924988229888414262551365084430574859872437894449108352950226860646203050222862694118014199577272688782772486743046911967491768647924556690331334889405298519839965311747339060184841865021268728884792909905537146586274059054326627944846134588776426637219570294820876698829867604230346074467234737779583620934635278236801591587113079705220120256437688094146047438805106477305058005525637272498364181921457029010212501526078259790748387599011090373785589572752872185514531318919922280562993277303605191080678888693164829972905167073597924338385919583389028044060969840078313989130670130306447501585186555051522048279635782502948803751152427844276445012202768250879554145203013026248274655783958911492869072768295958653659540800791956480245755364414546685583104800303154454252957619110263555499594379215580647912461096732895961159170340553712580282731584850877884511072327601904355934049075909015864463786726333868682856115089451901611354558439606297199045523528390578122841098738097188444439896201383364913135393060030383570144133815931163190307629910290869106093854641786003227529565464445600283418741285142443243733869790931737447683708069826221202850525649254564530839980118036611522999764081457015779808905180420124376839701197867492428565313281081886601838212082540678392394307855084176891687392013631292627640598037580291097738851433125461939096292592898912464323013707639353500533355955697316845129294457996366930943225453719050676804472718061138526968739983972771782055911535888081778538417171142972966359491972780164684248810061702139951430738515826948877673812849593135659394171268789059932196270086223098453914843299975709967544883615801597292934906649900259894960282617051222643648416577006032059819314506759255913720330040077925995630085080140415756230421441591335589189673693971757298215793065046979644866048625638563370861429996055376802030962418201361110850246187147249857547763133834487966588183709036470638654909536865712036307323407083871244293572566933549696677301288166255727707798813688523619333105408670195414402716655714824373906228993752516387516038355371026393080963488538156330565584399376310692315842736596218507374199580946167646276401407641144781641201578723888160946351502482655751655450785043111388584570313880428015830221595144791978628011963224318863214683438793469623562811458847815752075610913815334912848718437375147851268441822157557319562323131738193687347063748484730078658291707164758293281683846670193153143606152856641139990125362167939280844752249605176166999752365773593770257847661860296719029876697316465222484329726834658936537973253824206851685875031504409198446478951714867657044360778463936852382776085614985442937535864099154182584428684129319705401163505978531542299278745603531386955858637754228680208507849252710811544740022615188145403476513979694506825546578869255164271046692445373346721133903263023918923802332558487711366688609288350484415045030740254407404063490307679043767954634180145733232036937787644060359068841391565954920179872901612189954965877222224850070380138304347182355125937267072818719204464286797630492419410718582044526361422845138739024734586789362740329178709003457606550961000613141089234429463345726794416805292358845814795016674049387720214702462208403862154576902063495505803102906453482840481719675139895104956478918630273678946708608583974234428343619444769163400441644083354544676020689888200440315489456866739553205095560271899119322846247073169982510594439007356703484622773678005483209686402973486910402790709614836243296915328295420124079089466182969702299905208662007001591020490990722610978353921653060960050875394431544387126049463619766899365981688240588067141418282804726203623159114303774895713086063915400485171505952909312472278073149198180098330462623642402569130965762557813501613313668733721781238602254997076167113605278281399323763170860127801917394858927566168415916220087302790658960478552127240903552348928205040730835637286634015611584600560850806082658182203392187174010455427520738588796213549856287796430438915678164604164876616768661613457051135699886323487144177962095590705885692812989385095619685884846910511190341934000069509021841877480981499510951263720461704268338888074161244011098354229832203879549003117799077023700046856578318885407769376775497010044605806130509880477498800348977953599795256801342634210710584374250033554154652518070141927538592168845960277777425577078738382316740809323013874834085646314242674408645709467484043826875169971762817371293602732481468827276245162498414344170419093053773871572427202868265459627713009614636001749500062393202242972158785939770674145810143569450606366611737796838306262706954830772752507437295304044579934613935771855958925667832688980455431256888524719334418890993028906391741346049563785531593415678100352510685973509853412493119183788304103151190368900612175743365695173037966684340037601297172227832509008054217727853040245296079063629961814469914202898325800546870651770953853311427495044037282095990821901179146375302505574005780217958048872108023801402141702769748356413974038294304386307809615028424988484932020162657030397269071199290931557865588660932859216991548208320395005347378056753707729361378263354547453294115467101495869452949690074050380055382037733580796611326338847580808181358217990027117167404759455987325618156281053045140134429619598940756633368638649171529658214269059821070436874404425198983546597716858098179427137139987707279458463350861767380715123886925728600658266133244430589665755421041887193592242886647012041849568776006992209473298139629558300382994605571198542443342560153402361957902544362532352756233698621928966094277266623726870673533652054272317749870997885376254742227308456594789509541192805458283078062066903178054127882129310286642104520053294369705438868816587863798998769023956875267241020358234601581793992580597465844500027627321019753374535905332969346799592696641052091658320383390389878963470679445180167211313369844321235936098596584533604872989224051183536387780280193613151031450461957236587784066521044265884239048985359235444646892945505732334589905580492086747892217157352626083105230201796712950411898793638568457503630249263410833930998798519609303508055975465486906248745537998145196435605373321028330088847134243961053650979418921612914364542482998925527196726835393372756470480644539626779863881476104479420890462807250350102663718059822174717912050580985186036412459777294800026181489045256779220932177364912396450307772422671141241312066347407327727771803739154550464284304688745962041384438963516470553082973243519388037634139407226552124084329086609514413026081759842051659427792723741617098241560475574216332831439896884326482263878546776581129192270543122135675999317786296549057216658215906500522893526982356686218083902110275818781881862294679363830839744518317474591828989800720358945323879653855668747964860754261648341751029147145231886658165353135991093790231477705737128368343590098558314966961426646776263231821305676754385753519171067150525127742707283824231558865040366023815748530078680177575375476902093107026186921794152979358440665955275653462883318666975178782658856649642081633351441963329332089487621643384816610034281380423450037194866393504700973841354160326420848701086477505148721068125994165777490053533899127187216086532231868381427453665614357674872523158685457511692206140657699221680740698477996424312014989372027702310226917648448253977772463861195569437987314068086356696316961885954859862898412631167239364468333536988220883731971892085280418199229989380054980911491093686319243067954886213702344408084529205822620313982229841398436019227949660997357687379574405198825184400779902722190902720246848804589974965849534344614738288447023435041997905914946182658033482786698344434616058827942955565942128829955999268590007371857133135188447132351380170691729473110727727882036698366781473637589856872011489000015608551268452149376359011043253542674700268837412101898816447580694022403254285021161807956534979550004690321820608740373898122490995572177809551685651841068159552102814450062800871493084856524818966574875446806952791782914264761389119007133978951408361301520924321006919232410992600679334311929265162479107563993499109995373723070966566938946557241853572204715290575279409922839458544293658495382689558002632819726762438826446852596924284111441704288622712843713572345695359876418193865635922138717439264231614801062134852497055504148587591595566100604403307600598441048364849846918853641237854143724156646430436548693132521333808779490980102274307653327580878825903856557340101155561579244204556071977800010834139172402782784660099862451306427167037363939121430155152649231472305718820216995871039261569212315235804534252758950963150717244510407524154877417482947838364582617240285855868619257396532545124135016705587695580555916928765199090140561208056022291699325003517834534538770849713826241535668944290991150590540493361458941223632975496159510452183343050627884608517591463912053486836727733027013999059602299760814661643181050299246055429667033112491303616186892936321048239780112424907806039265422085089992418920223763730880623824107823400333142203263314965771257287696008342064973978360302253399848559983830398995152240095901426302512239584585172735682405813721363871205243786017607052462086928677424225686928678263672426123108525599953677397294669048267389983995706388289822033839294322189447236796293818720245990525550665696022653596450278211074639499710399396529621202209107938191173672252562726633173370919464006851500144637269154327120903039705398033863350521541862527665780735450269479212705930901351478800120916579437697760624135735141207624599845511220324347719847526032479321993065162074696296611778981570776695488733789560451982076312616549669239122565859801359593163540765514446236105499024982435310926122179007871735009010535456740924041387577360222116784590059683944144666450126059338593531495497602378312019156669354580637377634024000284325934096772939179008363921343267575317106122180105809819282180575466073910053121581037647856321043818966585987457578020442060811753902191228058398547956031519004356587858035200504675404184072573873443787796096859302154223302491948942771487504082853427298683787962779666513744492900988715904003729738391508330851563135762460828719208951141562186027611064628102059504419446842283960489865772315624732020217940032598147609024318558714746385077397329846426524750675583630664633102781633409813351759428232515064093487483459579985419464494353540461282263063442413156341446224273117948469474271667111675924758257542388828049869340451244851826465116177750196292229684751708894662673385171099334221605001742072260031440235153670211245942400156739154727726468208113281967212857317119367613307418318998434467429590574888690195741128943801507482345209036813894012777912785964684285114463545902666244980051032097651867149973018017251530684704145510550009257236546196270619079641119313788656945742579195333338812940001114196646708999700839325689349413238881717964846288883734808198673911963255324905733910834713342896427553447516454786445307849011827769618321514839782120095110703074565314965755857965770252618150154677011101845787160309534674600362182311562881433055234494754602939224799847184159153429819779844036551645969129818424011328657898051150657985556332720476298864398880412157805716022352544824717017139431962431050422577782412621530761873411133047464882599590899639108915764849374798759479312426548820001137408096908157565721204341512030359896650863293271104469528164099306154538874837093781983198745802876036912840019145063304343431644440405712456757760473485711903696488978472443200108172163430499828913758318278758419197096034221631446980564925907881400261748241960648186233318364703325371980471293701042264611904268734689982349175690102872851338367340910346456662235308302032260945908016792374841673758944169016529461733952768689377761423373184712465324335199048459702851872876022336313503847346471027267248259487600324525969287424979127769159011793791872901759634388601260225270370505680995261858628540087542440758297062967371854325599966881397061796744356294705767883609653757612837130331723090069476539412987016542275119058246051653002870895117571506716385342770304199290463747022058620414245518795900631260337911343036470866075485137917061270824589618215131855402990708205014703920359747788853302542800496224508697687537662435186078423208679219803130337581036883152085167791991801007880013704926343147924908896237508925126305041896861275369689811146730110831837051099584208946252966081412287785515565020821237584691161284269680778438911032071097840348432322282688642008295015896140610980789406248698197316351223465759330072607970083592655360113421533229204578451122370369388359952346857908759753622897091975716880631031768459266632909883142560296427968048264103136509571890283042311513862980576943136606310178474898551046153429673240277974321705376159796508677484180679249398256888775716039978829919582842260338645551551359230837327404588173323171227044290356754941927257334333318720139116842345651956622514504052617155514358306855890360386557103240192007720374876516474063113254810322580449734910138729537616951214680510660797079850028186611216512864933260109240502710479883876900042851311240671123029298472891122694047716824093175576233553612291450360376586997515243640570386901238226704141026899694023985382515364995679441971841830566141655455674893699794269754735367473358555970687935929119068179479349512638717357293283816753575758586919543794455078657391042764924400780840135258154737609794724956893092386353851708808125489540237104700578703863280154122967144268315289840105209904561431362158529860716795902296287828560574492615717622479110192680252989593147807208380719143438325599803707186261881094072598245668113209362574651504492460873742420645909585257620308737455929219020194933350061554356481462047902046826815280664832392931124720647776807122389145545580880687992429892305222967210253373078682379173179651639596978895278724991630810072371785691970734640469284398391980911495567870314553769985982687736482091264501411941392264978854480172705182336328009033612547718857267210062157457770398642447763951330875911627045844275551363165052354824507137594833729669043435919606305485029996389687553623606417206232582005035457948749900638015505567452233711957809930409146234195659397852872168037667005961912653748426503487313869600821986191506801236389921682642685770837731518677463704827769056608894295766815953758309050539172098935687310905800541590502416359004224288293983721712167807852124893913432540264692346876460240914278420166641331551353754047227882469018674323185341973503120256510076100028425372573692824350393625526954168000638389274651682585106248109300170632422348624410970828895959309410222034497619831619335344280466730977457916877554929307936746911737668783671467903206935942505178985380428445115201717718404068227975951259084931614205248769573006007577403525713239771592190352203990054561584990586784999385616466407386871872965137181427987314067251173550851717208071258085501733462475121913352398002128947612273650897537729500519508550171755130944026263442692902174288032631912668121868010992260352416402407150593382010624441477009596588662775251744993211030568259237701210886013475053754998347444812044526018715389973338106483383678247565754168851348689930935146403626672473232015333896057434702548118704954298719555019840135104436075706934673492911088730067333933814500685489759764375082416210935063436688713499800745429624014357030474962051031924702574415470619822151418723817800545351922946030229412966439913110660321878037789746562789903905777889204595940565814982328870660709202306773040047166247071085405664685961324706853749205922407007706406061123925781375240200889199694475308826087738587718095305300354098500128616018757149103333225539375026091405344173005844842872682616187532185220977926964267136047343760808786849418997799525335400713235823132465408745612367827021737463107641155032690745244042788856059265661564604833325639070082845566227612557667060375021818885676624281159394111667122674080400326316007260045011566411058275577392698864783917837234693625294799890491909587839723009150690864175238991891861498184553557685030572353265765778295856680587328883907590580400680589130827842041548443544380659052975413489957620394886756480822334637816655395576852560366872009860339369288373764690386339000849904184309314275697561458238931473532311107172535778406460250981885606363454863690848209788580742691514166032889244061281272213333595342409984043624483482348376267304766599815787223507788145568879790118046926059923549630160805635945350978359748192552351661370817823126569727661274186629449924360004156676550396634670687043443053786238324090180449667962386366273830417697461472419434056413047315975946987565895089524153187185368600362612440685454349773615493484913444670396750597880593056601261812350272045902832677708038128858794192433930194205076637814257414301186207189796119115821694956892403262278273178635638696993242972747402578532569923058242977492193003435611519282541210261174524783943209045577122312419231760177375433934901497972283275040521189660605122316909265349603318312464155569902031348173536284430096369930460136511804543388450707357034713761539916927671721781742279718771872860055650379545895170627848256195801926336284892618320471934707851551576955524380066126249698124489448864621194269832677000894211113856680280416001422529739875793508985241851046011435886770093153894276507903985623172139068648023700754977577233181196967255155311309332918318325129516028221911021011237313807349441256877717495485134115376952536327346158032663988084656553860592528726145828681358964422686077036166728267687076334758118184139739843941505886758555868409853811690264413716270814566284671771947207626744725862976967443311140032025889185134607508533850715346265369339754078957492830465088628553515524466209967810858536321076989270060755281420088112588333309760917305266305551542016931322490415343726965659769027551737209453217498650511344253507686431996353970297504707096513702672794120566508846787680600504550625625397343023540531984050818034744890980795576045798161172026901617787411300342917348843022112533692594424559556711869923485315235822305305667871187376455630114812769259904576935846655545383753605907561623334192279443505761532120425756082148135648654386258626541373744318168215320046460395767188764338770650651982580113718919349380864140556064702762403288896778732925626616248380856360722789490526623889620763909491946919180692485767606067500245185635076997698577386392296149497405568372707806025032893183028776693152588679992180357209846770730581860930574414154632471659737296926817105542463268283707865378357861151965350697167707740962766252820476995065211095182837489327748838784630024731464447275305798981452831998417082086082381758010498276714011250612590219755322859624833709513605172115799224555897361260000855634166893756535208532228588204356829202799806163323499255123251636270318495592788685984786687912955659400073508725872212454485405963373769212873159594075101738658572366122516182832537651803098912516415238670166245767266697253994135414061387016283745488579776932475045652369430702314108675690848554430684356557167876421233512650778802838213240285240930471746277526972293541853911715020081889798373544746792448101469642130788746482424117568408095588238478326135603809080333530785718722674950056100842102883838967910258024477538349049118459340734600699121373799647033827372439967018837941099988583214459659553931737482281708923847402127625798559447171981456483302348833721491159132452618961251428354770013610042261900257045185618789504899465783741504747881191567073574647839618303158244962545740679780058640725818616895065358039130791796412268154445715534177757952757916084876103576277253573200178266471564948002198023837747606248127550073723573593985774370370286009150980921791042760603706698003563070095888946407155346491485837884672704828599651619444710257720198005101912530514623731620141643669689307395236777081901651374712731957024800302195997737441589067904788136781586719098567129788441627969565243504100648930278468220621646595215602787207807052792308030949518148545872862952952148579885710366255442464362112507888077981351291144112552588748159152518730043655992363894466725935821699087390654773585940688577977912712916045349313007346262468828978672296937431651534753401207696111555932129517889762504943067226511415635066934176167747094349636597446228077551806220898959297218537919468026961285899182940435486400802248719054430111155967549826248001967523024102181520206189595967723248476625568934287270899804292469894725830788999024098094907744901536662012411975158607166244640718765646677111697013060968278169806266671433953120880652482281095484150550443226268067863025862083542200110039535535938309689949496415990408932632813794185601878510516030965214531131386539805177288029192344685684760477767713585408200718610086646650937414618681267343530192858974137076154304413130217481684938647470210582276213532815543966356861332801547702774429728740564597501123358641665089448556650544580198260556612603544935724552338967665784813367073997730069419725282944381421715098405281086453812462133930468639664504434158963723412390810157392861290635904775903646899309877485152445942140082343890008847886577415763839328675019970450347645473463415561055710150296095130552537579325328830843729475255836018085347517827202832035293012862788335083432599761065008354444519323005007135797144903482838322803167721325603259428824334961933940682647073956171255482874539016124528547461219725049296725975012638972444269751022964346048123539149609046216554424184264361544803802174107729889056907892648245483882547371442263835802665770384978176126580809754697947844322430601506249034400502490220275957062732321988983092602888488683187731945644961782746708848713615841268738973239920436560154139361079971646176833810540734413510863897372391869951961124085947124864956799137327468546414284958543740896080128465259864711593967392871607150010814419176872663220302427491815884861906104663828885563565107948499803653110850640419918242965806716016849201281994192146076224000679415122585831578347501096381382106636928545692016574045842966684261462773426288421831336966737022812828450306842332607875094709338657670761245380620475065417970659330843156844075416413836723160200128461720517858920163476849185664870494834561911382349957774011335269216550948028645308551391260627300670115015328476374434658704490867306147374358565392497747665367686043348973712382075372831702635029499971572226145996785008840300757993369152517567185719447061107262201787261946592811955906016274591854734523515150069853629889132362031463103088737814703911339207102717749249298130454172002565789958638814158631315189575484152690276105874638863583155347917007870430668858087826342484173918378151269235770635583111454621123637613314537297889970891760829813995832842038009517201373849380407594891732169418706017766869935679794375378306625822688916290377894959979999275418041761493349233251169936403950539241583917523175164116748335072991510075837472032551917156477383812282552738323347984936452656949172964104159134951080544678051276688854372909669489265637186470376253781776815501933000035731390307678362438695413217355101072430472641738112723597147218241722124076752763437663283551958651523213329210276745147733960985313005183249437232685314873631651784459621361379404582316906776804814841057837814990310395701630623952122711646805874091178769392726974136596390793149328116726317968576082799857326718635564891874098611583960209168438895082513823786797337174658261923398387399943868065579969283750728999297158912756579413359842257667010337016582152886959958582742634846696137357046709772228500202910298275588547644110624595510502314441398657676991639121928236522191587106066697192848886549519263590194669426577674030631508307749292682485833710556784084582616158301469380924249412738185586166282784643275769423445928239941603056343142866409695943696546435809856842033175788150386869151055454256692478742876985981069135301325676171627120650645326026697447430865633978064159327709252363027596074160107701606825280436583390852139203510911481779642634876478568796443283038705713325818713005504294622746902212720525247782045849937972471450563394313615353296162313255668793753132224434300256380604783879364791705351389124173168408233505588563066942500520460728177208306127117967702597507507049358248834638558069829832969368038107581576177118583966182172653668117247538453013802726813170177502723993944030641770447355449357102244759989297537186763309452895533606111792813086804695063679353627947429657128513738991819154950736381157203017774416541343826117491262106362280411432517929137244808136378425982968874285938672403765478626935571240735877713348812152478980658606613986925073178080681656803450034744639606528495375812776506216945667479226164101873225426975579853915214566477494499190007198353925067682393154567379348104512750677876283848204133692370558041107455240842825613039501442860291664456052256583438104664398284734913906364119076263894865423688985014577143411285448731280688342796436432166687094236159215934861298293786140095412087696665842332732075613912518090470972121700704542571792876797963279410779292059874005016951542046222111545094205660975479286679743161831990961709577252940328345990002154060659965721637472756871449794667443492092462744769671139174248300780985566720805956892366053741345739205960431030792635032461117887031174002101358673599526949682914743360260536436772266832609348616074780410845841938151048562300021305064786464893556101914828518766610930980621450990061433017986548804959132189249278291323606542682467066551414267557408881450899860456605982424747702650513339305793880138883941947467062389076044508620879529146735332603083057483360903393531221732683108490028668757416051820681221135766507355052418406969206386539003412488983098698325141861955880662283807266867057851736057366962347672531709165276601530373063282387281105888185051558242472021489452923906683755984849966581216479330467781376617768282047746900477692153432648759688342763566250725865412566010514870601447855408727651711475750975646945922334303348291644753265255326754866331614074595716628398436064174973583778743766965607317950561039589363301582603948670528477817275998376320337479520517699426826274778407233810911728506650007672876226032185193723470311716713033058740420959043252689665880295805235645744372897817696947667921766864349611020445149111660884692519663063625764767323853622963737230115299624951925564647968995072342411188084175504294249518653425115075351586921052919943363995644604221474728196719514400133627579765879821223673208526764511701084388348631817279455562477618002639045514367702167811763930997793631971578271604052872543167441472106840693746627953063412618322518595331434541782512070862575195663454384197517082336527357659201048736480827664923257836676649069790815575054411251936261120935129996031819974592590581600188224413011071278609650260834437940359370652545904640741254035181062826627736084061857373339194199225729096110769797677199699321179542548220879633956443451684919716816004772392225887669993178837846285409317371055962584504041940381793796907476655912737511520468068377844779778413873720402046815259505073698245779780576528381889054523952536869234681033005273856724066238133354552794596908954503786127549213925986413078669317100974319921584689913405383855419104568527592239574696871033078318646599449063645873407067496524890122651041459087866704579406919678762963071143781643098979031070477989671577722206664633648454259327662745442364141714420924935254534491479398282358753519853583101910204710702151763813614576414315027025555578414067081331678700441212097064562521176772727320265975464050819801838318942344450921543766369999166744029516407819233240061254839403750118390740014673841611333294758909839643711194800943571940774675373549901880747619140931015750946672436495452340150992341059220490773208816111772403270666993257845997080974669516666517225968723801258879879286495463491567546015033584288224099598838664091892614968159163089767399066218360339333483362791960091185022344687728475686833869615859885617096336654095378904897302675454102835910502373351345221218764958860812912444169959615130044235928144781185590970137077450807753990124023365069692046157405034735801042986200895461999496893016683304504222399011253149513543522972214169206551267491305851493465726286710008768868233553956005709049813683211372092659535451855783725971117491666096881754393085091218412493683761264304679684620032249456666103781078337268199195486590879849309760427714710406630187203015119013709741775574112463112073277519071242675858445843598861201116195533360607295101284462134936138501848204554528456349884295118218725727806385637485659981059176438003249409012466892077050206979660549580541833679724051878478716659170233271547995485577663568193182708514779412214223024214474121982407444742630194150354716172914966159598959142354708520515940825021819097515221158608024170302367946190882952597619022751016971867470515220194479021432271089344822252577196298440360211199632426428435534523572013583127874949313802350515860851247797763577744905376066913349111579202786885058910005281815276791167491033065981528135480022408993515349693507764757597802400759186121912254354229091166363951462347058369388895303205950977973216705188565698396356664993299859464311430334834941499788995189333416245680465684485251030771575007902145864627051887627248597700796377503233907428490300552541703535445283169789843008329484726527870830442930145574325913612157508868254047824144785401550818005526594313403131599167858587037155879011479692756555196204996237828041143512499584891583604831472699231889544549056305037787272751559980233555516248460194797783727370299301674475599255907731173422296795399539518298045349747222943384834485583376938405546668029198742367962529971796065483502438654481969521773950934891930319031201913142322170309045538029734913195531373390028227003343805780224807131760081553815811392929674447243950109809444540537487622693879205711268930594838125430764758430855516494524336836305857640961537984974755898487668936137759982502210073969363440415632107691001383485903161273680140790359509890358364252770537758340735611640085299182633938566018209766442171254825144907921595656238284338032028442021476581424278884027495538937554636472858166650118806996988682700043467056563087434423597806893322384305825729297186131225447914961361088019700698414686715184611190620327882428599001052078132950289181859578526176364064320084247056101517799019554583510118767144769377051475294764993177568453158442851805910755044044410691203984166427835741260358625020867003470358466532061173223856938743045533805143672226287125178514536134866382203583115000057195687374713110146546057610631086821220532638829466043323294348481147911899283853968873829599891698382645711877232767933462726705915020750498614624368011197740312488433497603508214789413212869182242614503829512529871884142579596954367922157225679115556160058512335007502718284159850072671347027119875524989761933675797277068122192880660641521987438552189614784054607015711285828015477140269132507127341196357857590516715302219165890843116503812723658962006356756257800308417398087396247119415288505572666514709581973360464522307557486509138859769367827011698043447393111304205523232343585749727029817651188725101927841343635723726557920882007776273304784433666645415949084333792243602125025951493749715988733774929132043777253006250854009121224171572187501891127085452487996839328461201541379130360072237982197655502804116067649211095578895158143288557082023979833739429740369395523636458365288361281219153967018459413191511601432086263485165651441218299490795040522799912822756237131203770605333235126728624730574795996483727389478623080954013933301845753213314077893737434559122710510580050127262307768772377577544681156935755128553091388676157418064220578617284523045854742707550426017571642876090587030623426172934148377774656283687062120001936078715537168006567398076836835006823911390447751544617128166807866914855699957214532870681171102901198178836366361711948070592475931361440710789582328720526945240277696852929737930429880903986113431992770883723083761644827310841171596686490038467264622278541673667295420716361320906639805742423031758111052045234040473621411195055523460802691115083179100987709855369453505561938764162908063696553912749368952776105009615607417531548753496054739284543875590750969539343902393603076583589809690909086530763503790655899188880484723967182859358441925600066871316131233585057675458626908488500006338827294860272452689200598029353161556685366011307579300347869661039114378356018940534160993347702058130038892677020256924756531422065744475981057358046879483068270378895379201772486220000398435281595883543007514080269797824876661879460393620473255992438306889975500692544750446550324708000700464233288705806391068852248009380425627964371971696400461699685517662943776475028481007840430465111621955314134871452123523222375148179713271808437545925538517056477678152769545994495972372751039955649608805605177037772004259283525903975929462168174241820514568978576915377971115981686268263675112889525294593774009463106773288064703047144460343236922980186693305085310386001795937227679543039954599204569369622265489390662760240595861775775282942847502835937381625839447719068810623680688870536741752743450776092599095281817641029919245675294734856383176805708776216825568795955592071875094125336355073799444016557212490598366379707405972771672228035449557477032284100566982183277995404952669844547860913060795810521905870201468558791068356952602791609140133876539224639430149225018249854333963986935084795483775839095411858464248574021187618823878856004650484657739825508964592260902251912619053053213796994079184304258077100196781829772060667748369186777418372424217969620689923888410812065888128806029336271790378320106299671674528243669683407116497352451860057356455347215737813928958812957316931094218301810114361091796297874898423242710922324308681662987809588696743582740857494326424379624093877700177733901425126565388379763988034030576482903500575949131188342747773973183911066211614843229236370567559175244474155223964286927793751269303436610172895816376316305699940686756008664045567290163472486103869993584004269873344923053497304228436388183997386248840463065720383089956568318151392503971300712374956223311333133927763645577185085209128468128278069043329389054247892685859514754670788579435925168192681521490800711119672520472884754529851176824137027723832518448610057256476925557609221594321294393044864276335075680595664883471086423185375892583993690413925510124769374167680477037478952294517645057773362046361528199621511292109671612961092054192586216255630654972724655662078761308519229216656757803727704342413423991124482639753079667460788250974154263508168649828695277126525432869886091268391730848140058685925395701051768301369063407267988022900701933099854328598905642440418895226384650366099100700273619137179162870181065892540780883366971740149627323159873279150662139668195952325099263274683835350529651309889476557664482390463656935398414645593232167059709376272978925761991948814662671912117308165313734798415117405931046660103735708204843375758821128416354082458363898161874119804079202376454775278175064929254573043727374422903071038248698315809142512348763909202597131659340639454740885293962557239000039679758428416413076377919475478297066153434233743974493642374359115798694144341552728992686035402046397901333331596954695071187081178641203062293657547985844944903261158649167928044840271797883885117978070144009814598959002920829547395260585401511979688241104023959733271722791791858680493491429875433903483042210947263857475495290431502079865668066843663514529859559899195871860648938925115498758306766254772664602836599383283160979944874115776057677287538546129126976002558616925490071422554767177181808652432857609941851329254377399394361725629560777142277808872108198603976261741367451457987186181375023654727074883883844688585757912211360740676241954192500916015805210150736196283665443049869793912953940022574038787265487513154095967692614130379643530242608975963353383028173753834607709179009632862600846423273962217307825858450689210622549392740102305106295266757920270680645516159059073452422562547610598191245808333913709173904506080634933407854007180869601846378636321313622445532337720270178900673615456832171682627569172897408501706664225262023666722874367017144189011808839655650109412051756511326541758189910419111879984142075751985646370629790300760099254238466122493596579991487921236844417841405670422397663250367099475338213974833798330670188903788608561565197863796146778495387758536327285171827089539120893291027898340332734792285535919340059565254876746254989413375009317852414419606097136177911714246184183939438697403016740625322939408530948708233725104690549988071413832092640529181501082695196360582898289464713428652163726948381848885040152814763031644453768062417258609558143350424546972168777495959648054311056734700588334498167220740363302691075556133899636420234525294602239373472677589038979787988638896337035356977626813985966729813431024169373847191958265594533778063162172098204730328436420356392410350335158044201971278719712452975112039840488118303058266084265707570843938731152880559226782019259229918668107043761079261702991495881056941647351893988115385371883827223763274770520496438942093371357760396810242819616382497285667724626207460841643247274869576270628317364678274678630626349939673224236046590353583886754984583293908211975326119437717329577072997756992210441265631429652650133838936700530394613081786049215142262778663488713242658727487236461599163717143621191880949829678802900811903126063249752225479654834286205795211386573736355515446858741042489150166396863084860737944610377838128739455812245293219722925622063179616223919882792169100361773113897588408399048095016401032854106107962870199764473398545939946064316691771212781461534837593921755304925510753032544106166454308446376379557984388125224216249853699607304108569662651698209526876118089407964930038549543447566564860568773285306817290429682936554887962888557639709006775059002797168760989317342270485363466416769554346370540239478731863237996849092153754965641454801828562973022389369633548004408979251610490269261241558173522735554721710609567868790722520662233071546171728764023898368865205207690848982901572665203385067300336420279969333806572823737179111368759903825091925636957135247747712384716645479825346757653590510008408725619365095304020726228235707254492440130051940484389038416883977258219411745353873960814785793417678495810117890898443999325803926201107867428141623352955054535483891586054348931672974395330519382495876392054443071140547406748526777614672231935039364798428014586108562810074438464768603088888803067189782191932707931858423435127946916460766524203941627516162845183655301044722236850258323895629355047963894179305225311532237404642746369937154862999590965735913064189288390156271794609948081651788300990817141672028303714971178292722956639234626598389333506560932295187170886949176490147501450960123088990118461384711888145787418042805091219100900007971620539661784783212863253253600041031045679098354292162966766759198152263668346670648022211274608984581560218457231198358421638603392082017811504845554515877996612704064247811537431837498185695791285188362558508378508032261098709433566607643562519134813079612191628623621487836912861150488927827605793928445971637057914801555616503890774812186288457889489517757080218425821571316949522422108165949376245383489341402922364514469611475391747122682453132785557044350504425855055117295493323755637285594392399663507656481627627789256163162788103914981931562857388623321559330700964594501423686286553293326705615382119751372393350993427627327697750038706523943892367027318369389183540387430965159231676793146009101644241639028888739486812389649771569414453683733624904426973943304903666161934113360623528486665577577141842190393964626303689108504844386259558267023872384600362944167217183291808857317179215771283945320906743424663926189119799362334931892679602755203738296622230464948440434101003170792481426981758602120351274243122768710502844362650850666474274049682141353688886059336797851230148749898149838586786961375597528039368208228649100649991220161972031160392374892005224004643464731375638224714458113108743325945799636876761939582292216868446767960875305347949138925568828067477794788217791144459082679473909795798064111228857714035266965767759357777658491920564992169565905375886174568689222461436333817652783077309113382939571503161264581840682649642212881181311367977249485809210470925594305146440947753648576990131691211247637757197379989331591121845587011464929186220455665175586281752806811640227799843673728142040160909574143418580991747624389536681491072235378011467237568401815755069614198396775054535239423908856539932433647559871093402582938665556256016940491527508738170371561205883373967006747596357492399059523579891874869557650171355528460296301250449904146832302752214879095151506533464131595532652177656521587570565882868859706357275388677025079321840316887690997503592598438656955254738250570057895941437208017555566904946881161004803333899850660595311603728833139776346030497101010804330694018491955683836749405940420288988379151157261072106614489919247958690317325962114102220651514834605435632833581012936479737883329935839068778532260876129304965405604645660832086189069968824196606629800204342039913822976553253091341026802646237518898827084660403591944063804235005121360562894498251161495986200349029933196790964561873366030127835118568225144333945167491617197469860096288891577210459814098596713215744893488189145507933583457134421912956772303319898502316915525514704655199442094503619431713412083078425036783831788692736255497259885884014490090788242108509338488319143845905857295985358456556453991420879396272467149275342965700909269057413052176284377587967124210356828034064681065588482763781321106910464777822903690406660427521228520476621256399849105526933265156041383900301136686036756405774359330865623176628550911584981104931893726318374333161014331056864042619098053183528336946494094010091710607972299887865167697504865843064186708244817263378391957032550740583466152455767825304007917644410724894139941278934154837326112085884893651269261668775909865308660749333995582341475269093953361021793714338121646589894687955908385836176094321078137897030149642739333631504006268810519395254927100341128726006791666289968445781101608249282929192489026020841654778483638038999675694715041547112557889417288578459186397946707006936238531837730626988400187812983954041544051805661224218791685880307272435102731513305159435591661013759400262989784352919889643219487914305754236239450701474708986573761900024632711058967036463730974463080168325795489126965460060334543270697806876605508233056765509012990333225187232403474000094024262522431394444442137742089119246948224965731464993229581950471523755651050485929758583540211281184158882319633103395516590228344023499445095476856888222667599366044292895493726458420368877687764850633991041840537875386809076529452691323439095188510169037131788363616717779006252633735772234865894737413155476521430234202818674441413653035322894163598447579810042503060711236439483158752345370857845729868337135916669987667967344656821443580540683019029862385909457068260536321997193972943595828952330373661187854367493683071184000524303670288339811815234314373135482004147794048941024832588202433205835794251830572296853958573425416906927271149239903298941277510809209210219385157849203983597066953220280156461209397552650527116923714541094141146291284455859878097736998701283153190763116847976232642512500732871237991541526255615717460091584226032421965140544494622423039239503901154542113632610550693374884022045783712795652004000427661332083341443321644503402750548452492202827938032679515746067042808611751412640923740139027200750081015956695899209007852827436178196714402657961241050314333374817405795950572251133886387162966840660490460644205829722590924036751779923574264187237823975195482432403023820260103622424850152998057807079041041013570659151215234907201904065167940490500994190605922170058116486927414122652315262188773631096366600423598444988994613477142366859354999780668940271676342276944319024244136629110354204563596504715284709425838204127607630254097727545513963896382354825516175393187176381002420101399563318737990561958381515784783038685035200179273332909854474176560997032047899362212399709900675038828519847507164662145646146412102503616661840421479012115965819711979413646072471896684925840153242396690456225116742087136426811373341448537602854054626934784971117487268194948805164984392213142250374320657271147338069183201387220958810683500719668370192763780912635869563987812945435537650612342866570760362751518449930433056730510518082202627301369092765704514775283412022446021474131725180789954717013900086378329390049065143155768121723812884485390019457088553824054937085462880642087201462140855601900343012237691691532433285809199734062787831727407583506490356746302351944212163308934622729804108683720751487872713407345763765871204336426977170874417154602316135729708921587455207094801633341189426184115178942479098043775353065219816032089163892256035988055521064352933776621987957368940675807029648845275903236633900266411765767927770966973430121418383367004534207994524059825806227722368214968059142876699936168625673752796713505096402253202090776150925645517052353347724594209233786435315017360486288122067323781758826304638384071113400099565164850165477015218828743785379221345410368255919794815553350827541258078074271874010608655984073576252901856975101568795118493820532846853863615498385895175876496587194180629869755992694103206951673979604433662634828049660942358705654300497138111809790583907523091603132070204352918250582413186043736742370838019275613033091398421207619352445630771253192949883591518053332698510865664543091488911642540774572245833696148115246149436161973263462064334269936465536003071682114241082862036054499287008259612012186328055366205722914554727324422980236623192973650424402548211649307248838893786653172771189957102146074964981768232006590051637055311466156118633263953523714435413689883743226738193605155693369191771727511134364818888976740189837947430154465598460555143515525990034230608927718045964166439850038611310772287756392074124105621896482748299621382649746095632326737091612283479949260767573200643953523086177300389744438149446262798399769446130868551136356312764942894111947991565264830019843003431701897814571340781294651781187807722692833661670547560368057536886297996468916153929590637669620342576992004924531449432056850334620854415959485520311277107382845190471077566183338841294502096855150204228946936095174803897311399441553381208443333382140630096252819486197929759510758909466347513906202070363714450419695403103076029019066677494144893324864546945476945182580704115005193726442625854140480449208681793600840022079796930188912635822130277614497358812649996723063309498366123931400619340035487514641075329755279945870630982591542571388173579134212848451147904923615171888638933309512292113755647708837287019149655710527598160379213439755757720617599510812603168510743488931110660962520789805158876955724213667487895068909861576277695871348974116501161185794317686923119095800704671122716495979761922107477464291458243122955130214575603944633438381075973365902681064200722019771408781172598720741662997125398152871074704197837583980935469134751397229330770047836854538726491459022924125502993878475381909337863367358226182289214134789690322543547127194930918942839139446811241668246972343292494323978163777871600116892941535221920660706064640304674168856155568180959912137410556081038211330068262837596251332423364045429242568480646567903066694450485611901674970489286343769114549287562506822739444576918180704563081856134655827594282943721506639431305450232220821790507823805663552135512117268869351059189861993773105016303440494999327400556162041328217528175389600087399625938392198079710516285813111751601287082657810670450659685271568833324034539924950781067538877406116470699578320363505687638819513021836075452112673660265275039471820330534208620630263461750181250920386132798426579280544800229837894964907996857729475103705305569435852948443462920955336148467785721763329604841417896054932895111410363358465703482014771811355991703778001195249290043911124424297548770409946951810312044618186753827234228022853370357773611175523011518194578891687678599808771396857134456304818302432012130185999647117443587867059773436331884345771145335329567921259358215341491664480511020263153881719449206113380199661939782568715629236315468351464164500267338158368413302444473789239867383125205970365249415417621635680398970114195525152549843184591174372102628344131309916503356867754233685637985726133194757888790362560989930976522815837339069291777572149830186120554602882525336331173367988083524715376173680935017479360887986886661197752095249185885238406008667663402927318091897856674592858179943137838050097586050201622454883085504422186567518720845663723961188112252594642633268413359922913367023827521406508376480203761969967012043762523362409802343137974840951054791058203955041529824804026086962144197878899170243886129647630999044961188284381339684125914954739376416168275937937519589279499588302525953361926110353190588115080766149382972441225087108412355174787013499472862616216207518594392984621530413442400658912967132249725145455876353592550542399741403848249174096942141158530427284290325030698224264872241709875564926494408863014411978565719774189314852762324602974043497462643096294533300129486920091786230396109494381566483663495491230641205653529899042017053126554609768729377163846837251686748087926689200685943461975370582297120813617891687899740995397917282140070822518195380423099850443768017740276716318789339089786695567684109723575322603921885684158083667381815421927206436749624049489750935666168741701747772691181816096238500158965611859087858944893501436889880654713282462307418924595003291903102016331638060078036021469637724622779371936084000759651306794027929527484712627022801328869555128196426009096105591908636340375213895056888122448564566445870762756997231664625493888760827313851823227278211441757339905629998831018057854133252459201148221811739309527427011164681149697931245170441213617500892313513372543389183485384737012428621827456187704824153466407417917058470906024907453260282979726572400391192734670911293427545017541517422747848124629881873314826436568171514753197544093524676754512781416844682628926813102005854490473511644821920805413474385857313686538860385364534860452194389344235007761633396147306883843996780311946424143234138881664425004672583754203341041918648071990688650372727493995601606154019926704741957377485822645662722217764423010915830569562073996102630310397883942267248380930637772739043295029968288213627917609913309928834568431641177101401152960709828111607267741342129690345827310529893000328268849404387518683697108916324343143792980062368440205628568947674566409355068651613201864749199716013231012786025761687316699858926750131895240597887436206012407149379168497425033496376807824816584539695257803505495858342977829522874968860877889861027315255279199501497304369132260977843567469309290908735035800992551215231026906352502703950701091041857692287598778298839851453637139295332963704686031544834908642663641099685971979997590578249067170784365287770867262746703687722215089876261288371852205938957887188315067913232184832098378405435131753838665531102950468506646537062078162384350511045994117461407499107063694363635818296939581812835748249834228155841078667258853063799606928408542720565885573408455158279929203532359439694564510956883167175423804565851647541100303865464051520207809652505271351656234628991667314162364297139583978938159495854427834559243760604357839065347475748506051053912041242421840992722701955623282946640129645652083222989364729231110625892054164199582583438020054328668196396664272019139634801123323108978759638873394381959399313738990233411743189994276897652000303770517090848253137575903078525779657753213866652369673839197222658631478117111410464847044333019330277484282535396682769760521900626705109152729667572479235646374479949071838318318317394440507836863302772710207675807642570458891658279440738914955889830499292898978283696657311202701914511668619399007490380575804929689679446005237851153400776115008448087238973198463188792520234826871646166569957143338163129757027152762062633591141082567653713711643425696795646531676882200157071890515175975793635954289197792481244207562851420345178506910016067196139749919701147086529148986254649793765533624335887188718567672544601808454073911090788547862052969129898925377711450841919140688930719945932212747813461372685845021328000568225169998515788789021511477563941673586533074078580224184855695162122115389223420933253203917475066150686243187654956674638278416519445792592862422323796486390484148267905830919523283928954936368782507360667436807418019868084725331785097525879530108713552804765021002219017744218396121249078074808267452523311687755666153574447056345522709491333890292203917681180653854814923339384651262555198172575139092874048549231977480497103818311681400435127899331847623183677856304937980058378605952252381995632028578741665893852169376985721693353998129403698056090899627547781034935473443586611590668110321174312471767855986380491082176230426516355079637525290836029703921176178855242468203448005615914914775543718180892163862992777584531458533353931781141732456947068061648238952326044787504735651832021703251669879782262205527205625326516571837997293431732403184123404634096288343287312841730415546882980751654522652075870501497759799260689385806811306140497600764499250434982289031389625880054811210188681799258285505593133586402287108550432734358167056881921949318813210641018126066091257652797583857870327994936199519405496748623911202548480273280665222184730637718329096804751469270007778448251411993335583427902466179060784630046310502502439748053640598503845950732649159042759407788011837539411044854101590673662142940694985168342152837053713907330290765000092081647612818674200346673544336728518897619777036732566079903897193457455541125688895834591515732266535533860842253052610694097593820438876060275899308577781611411178716756045671936010292601271541348803361830286775343438678797433969157121782905149014015508591821858621658614482823482523140289824621802825215676887024629441304120277696606101645513559318507443617533812583415794242411735116118446891031251362029596857229793008269602607311975572378229404077683009019614814650083288634315650531497673053084491624363556713176697706622383481883631380313695338869215822653200129793771038660942992421833906153315997177600586575862541675295686418840811583453181900054475341643458457494185229923848630366249734203407844539675102116346859558871019343072112918649150810154901347572571572537350682192814165491558693654260679060536379195778890822019396646909530287425972090937578492991792198971883021769930401861335980329552996010302781843496223472141845393158452349209959633329087028402199403611206629673139238627801126180390681294857072889389220426584833164729657478309099563830974956678478777445560419698817657544918257750319371992469033724518793037971275861030486949513713183041874015442650281837789203353477609218097482817316448332864616150387250175880372479206079027929664279841016774096461465037161295990039399014524503331308602581232362574479269382160547758098313251880364673279640512750950959454852970879827343657913615025163768193460231180370577603602607984660436846021979366799148441409985586540187904124635098359331472529700888488574341924641489874303508875205176843125803966738583946737808299007555776892106226971897335186088086879033396098065472120063271939727783297726252933743371514800640668532759444003735527285544257162468795445797114760803849502066329720095182709661831802291347832572841415206166994633706772209820977582108556488830847283425304604369292648703465686388291709028959308338666495508951916163004184025348626248657839662359763938890388002383844123650663917307010733954553512431672266429455186636340078031692282260455232311919784810359560568341473808442505566996987163567382221503688277668604012499775737595576538544286097524567782609350875768060428038332812728424616269672070755618482555015780499206790917608536226358324107191276766032708516174906845684469793420050247651398207654295651099785334754032702961264583391903726551570600341504616148068234411354543623129229011569928207918527639690620813371516078949441676163546298154383213157459614549884758323277585295611342360627255127694526880683819797270103064013399520087819342835289165297327121590787382745729706899664280640430443791104647084568709743793841905257122576270123340306897144664931950679380368228097299746096690898973305286345109329097151062145579538921010084012258275815868147850202998893776918738034777501568227023431455675074383096882534253831770612398457832574764365749108404726270067299160924507030611609402340802183982340881873578261966763968373282568476827873144706755790900529920334768070658075732392410751559541276319762153351307904675949915729501134840516089533115991893469825305588654292491900637448478442101176350733943653964087494933679404125193613253910248606790875882831268188470547553801638101413016684999906508874607277239044755990087120153062257209067043839979332412299862107898261673926189221018739312712447421727971677289274822964344783260678013056356711379341859200926667421286353974271893207799908032215845465000593948223789903086989839086756262704465051600450740226823397244107372268225840834724166904316869459370407747869884791945781989224338233413487151061323821618431811077647451351837339864685850545757150002413071836651202031821539868961477871540544695533926050719572405646475780476282137676630901266238986622872838901441912199863033499884812183188076788081464450024683271743699664557609879208964339368614039051899893387627786314158870623482598709146157970700258757944608583748004632394023822728074460283317263138288870588815242926889314004206327996548200614843689829229239231032535495246095816191008281192690810330704241068116486313331190316366907833634059769820790385988441407671673375972204554963205360588977884470922140999172366110190724658415130620119300732977332644448901523317742012125275343057575532392606379603036704752606573309940359762134068839588351433470517932105082939768623235341217090232428094951508143741132661653636045477737058910004513329641463875396779300577616683098651812535218236574624147447150309042037300234800419127125905770697905373118806215815348124458403169977302066705748738969067842767009316666940364907671743229813877965241920600932871733929303191541936617586111412315293223038414855153003293792746145336624450522024783965452281042402121821511662226832018896379552996052293360100038663385653357846535362030386863937351026926310103576283317084195441549030334570400450172384523250932901219727553196499462588558235600378253833239174288982255851741764583523873568400198255990852198420562249110060221445704374888675709125968604033487956477201232890447504407308643934703972005963947412444996334246457510265144941393839149951808973063458709487585244184113252617872817692269347092405727939605232851717274717697053523794568522962845011846235817045152991385046382479647451818857109376537656853203269844332986880495201773901578018889121193083762904297207695781308001647490550298994781489169828782793297167370823721070202009283191508430978220863866378219091016570351109067061449744637160664494317415228813399552264603257536154617000758034871950257366694538378469122869965656968666684352244108251449543479163063330855815086791550450992870466238463730424738797885972077747177930241363203691686379522014086579576821321576288435287983735641882219947176446421932196777394377323467256342964472693498954903316978248302528754605110482879664429416142951991375743018768081366375698414018332990874537324511209866849607800335453099009511831650264989350337607474866841486098296993183774327292532265883744687359185166891360938714299434950794521039976069941166042932041415733723954616758695931584995151590375235464305811051059352653826346629807406339894363750074307492060427466739229829654473189565102750865173134345788732916895308366446727401583461911478229904413504043410711925969186318601711103260008839350635352837688691504797033409522492171218903779933800857485058678751007647818583755726050953056105408841847043711041283997315835250202352165826385575513908639289491467339228833533886941740775891676089611127494262219595257598578105644183576637621797637142888360364650730945589997680520960965847367154432884801074073594910639397678945486421472596117953440132723314920345588940078329843702353367210091442499964317094856043807863381661738949505073649206151799563524711958795028729470993724711685603042863168188567709414087909531703606398576406993736371121341731640896543774789658662914654935135878675457114071169871636663725730239872449074153694380628624958005088915523884094968677325668003712328358005561412677627900896019223979417754348924358780375957242478585067670657528645961498281703995637792181739103926448644587185002611362651190659324972470457367512809010410684511429215641910042864330224259904685586812483513158451561810865605208590260894670478980277049043381881909094969318706748112751102989754523628139782260675194324839155046733050860538792063276570949387569193188257427993016690532385878745105058325392593106704662320281265415119611696840592355076827389715797753192035463185238731724780083903649181228099636617195124385178219153893755502900572266134779501852472645170666596148208694151790823542533625237098462255922801553452239328151910710258737852563697723954702992325509836910353897592669571996341170294424730856131814750887222549323565639145733940548893779645603898976203661415703334780892068625853950732120545719459830651235386009140071293268795549817273846674786058015794856748199634554206327388947132773093858418649310325945272490921948455136154461475555493669395896450244582507797708899292659025781403478278258884715438409886916371674732285099419894117270631002693924644640667656842891740829234583565176318609746030562171734213181809334419440778814194207839804127346991962766118158145878899315603074272345283674228561698382569295976125799440042358436746934897996692436474813594429794022149043224450269502721479236151625009830076952844686968923447790430851194566626070318787758635480086916567103654092259724218419424691850966823958130691603906789641626311117428228770164958649006021009628035404076641672073050420484577632402289192413840695766202293811545222003987928278718844602647918309801603118611487051811339688143767373516973628263999154433071197685941351840589945423843382220978846855996181799747598598470692039026628432001913090383302211688115751391644592614225756701158491029841071541581284468810443177051211444321353829463080614418556395257988708632629948692360744989221937460780809510967009987363638934983477919065015432597823830116113421403118817969246067483023161700620940647145789815244582452694812503572776854479134027408441107234465540578844693709580515995388850021151217323024020355865008064822612289714311679479833464426906836412036130414993326361248336797768210534142571771543450940794922935898702713451930983428610455166621971432243164660048932736841293815576303449101794796912527804945372672378476478967035180359901519693868394865654880211756025688238476871674009115860453934919003402937124224448212914896356086132633966890653500622333837930680087844999634422701699133388257272371385580791090529445529418819556166374274804951846200583255614487963842092719847469096615782448602402035854709216546802094215881332445582263107436450786763140757897223767140821689707597923213628878195972492098110678606715688087662813967937852731258923037832126332903330420525768710885082197449576798415607133584557391012562014451449519489962849284427826828697166446737451900618436999063894268443830628959529078481927157524986943103050102712672667956065379433834948171191032969506410475427931947642661718827358028058754864115499498200399675855110002710929342787384691015886141749334053465260649942657146004981552965410160778216072156250621877015534777039972000388410342538233501711077475146313894184200460833006198359515839352775417803372792311482297160257783501929374839970487931055902492675118951610518183797083430169573008706946438988428350642714397420047727023155208351389751907972234072314159397099100533973894772392835917457194654544649793983279852826575056003973637289661964289460827385507880508670208087722435470649719733078919562434546773264825305287247740238750944723249304493871439007101620823105357707597776435191996842205588675048544984036315510604329274226801694941112708465419563000390170099371038196730091005852635967519122253627578364785044480056755536930760021474223203530302050113485672608251675533212872192955503177191519171238371744441464740546576164881255550159873343408649594794707194859863953895925896629813544543845209610220275049183604809387761157745459164656492247137816107134207685347109156588880112831212252262495853007039246672938767722677700046249895532819337542502125678265337187439642194822024613061978246554038724707532337445181112938877570201409680902990148513668454720405915592258429742997174285113768198848151106047042625517740241934862616359638318200830461017891584769596314128604072407561252614127623530611856319491456027047746998289469669906587013998258012306110049440724603706186642081651231809346878144040809939539454615603392100256300677490517740065065008660702229218684169166134009625836093751050498306337956083272475608633937250630569252245569892543398310561716142508096086705354600030855676341597463784130100611048116393130479840013156309069327686070615338252810170439854741650431794331882518197358976645072264892917627118333297981345108669851791551703983234662075998519878214928352379617423826811224203518858128053512962966597125214331565941024005938791891318048741402988312711147066392411838153038544935355693075417743238041013335223731334498399494929017678043737514930647143423138540817488177913378024230477019396196311485236381747350321154939530224502315170822757785999690999445070269649172989154775355312732543787375603664200397486252143579680664334659649053403732143027702682993016101467907617241504147691102272335737951102391011276655888625136468358627971214270706615179254445355919666855180001529026650799394767971467098548468375552788346720832755683533385379300548198893846593812646381125832529597270556677756412980667024813121424530992360260962200992680087330831016152973268553882335398997010121073441221549346738198806553285040613837247372878866665013413360020526047295803124144261549385859930537775419573125054160361787798559352206759718376809269939290643557536983287866845044982019960006418024799320851487896282713472958066888186406080177228885950341346922039262438240644998772558020716312461887681284833567364467699452979319138391293495517160400804453944064368806856540493220093632383239096004551242840885194234389958097439307246479276204132659395145942081511285982458446292879806701036755952901814801314523106421101598740832366038980082114884915493885774617792248113063724728696163693383522976663219231332094468777448166871137242588020960334274042886502982682406869450919380817483991824263868695086451733989110449026483543286263499907336123396186232964923600195085384008872953387588993687112645605585552359480198395476740089652462282030572121524330051125736518870596648713388864099800783515887723556684696712481180469310053787478401302111215049560115379091280993643240529190678897667157013987442866759841689504847581786369637489209139260959850615151338951274215316239167678718159540991175968520624472079439555913402909705869554789991600170586104972673766220621507315474766734600602392954686067698524735205942308394725262507289597948711462075583442012307179546188288458141385902618010128215723128336952694023092205340809215203051469782230767152674698974112010109875384300237170774477979634558183996499255561758749092443185546975367755575134799224272680938990790178362609625935970308636588025936394542329753263362422368605082139421920293766089295902773637904319747452597218003753075710013523885055042759073997982334111200124483706381733618834487023630051576360431158964834098439641491063383369801091522135124421983548815535851040414266224358602766753841061790052372452287522938848629480871316701749580272393885468770294781181344153881270643001826616115614311976811703578125982428428058437744859509856251738555004999424039979509071014352139018899434056772315612413033959284833769391441720761501398951616744551013429760877873286786412046291984052818262588580760499784059705095384013954647643060255553867360359208592390911291188584633423120525055695251502093868854448542429859758198418181596690187252907268835348903138243142636468878266915077985012165773654094896342820105018292364540260947040787064061640445397800087223936435245687572815187417001196897974717662692353334313178389389155315680573183514817325593579549513992161645521365662536421594275051729107622093149294832180047937651337177979874135365055169437383944821860539072026442309351242245700615314964790716896237790075141024988109159116724465039407045638447511915374296143337149589817648574465211631162348047885138860399936308194503635098916795985546416623644749474553425432647425457733362654696963790764035763899858930235888421739117955312971962317011002201102839364081298234892726107920755225876394787372940779493525079416048086336994549364725577643102205697022217467336846940279923742324606992915321973986166606398098836243579953107802517371770927706246425740507681970426814159725056806772582447407981224775062232969536977554377076172346406560318944276062804474190505712507497732026371424944315000619103414876925309795385038841649627910629738620414508623083826788157716704027677049343430866829598500081258061385996012450283469081442866278489713004354698198692453420514866270257842051352392146679520214691152185417974639427477610850898413645530475552227859733471560707214611560416192795094211212793288598872840990484028537444119916916873877182624726272074684051913291742292828283607175906161371366325386788391130533823184356962423397354567072581348400407169491045162251528252572206208693343624791048380093088925967439523221265440865951670233442580739726973162445463748145975534124142895927178754161182099495967165862100388043056740972786547663655791823822887462885794736038300879137788642464823479827612399736953077490837342724340066140211302385170736934125627435364218609609434685877167383371997577218016624812540174332362323576483663547141006936099446759103885497149747006964564975877473432791890428408821267076904259767129347091048889427381307423520077785797782897471610617449573195322045257380478256581112955722992298609451326477557457139995474906460125845814900952657291162741285864939943875063419437346226813179242812546146224548759036182408868910785816365220895405845646180701067279344303965611371002403581165473786402421382714844454746626562376203961082001226407680070049182757458556604308123663661084485623357270220245342069043095830404863558913583033463929368651937896192343324636266098993952823740697500336309788037317443670321785357551539922222536143477331782879294795571842225936831869326473958935573926163380699714403956062698571730446775632481937285677670504167891310412224751902827846773356777505820583668214215982312938760145842280408330966832533034667686477477882943764996756660454022719139320944360361409306103465565251535407527808704538049892468901565063817829979885329018091989761307740274488706512140212923073419447519660136617246904851014532886990822759968297609529935103196017105571287743044800622401487382699759927532268873966754482316629380538860365266256109791786749614666507603593018422431285785373901828633343653954566389152038472689847284066652634782616008934699348450810547482965292898572919870465928019856673615173483308958235685068552539294433739644226332865204341111772661055923341569807996208664604419597755178439746972563885290271847979976837471057277168007868742202519466354610381021315042883323675705556026083279646414701529042524062106082488344922488093406216567282499967724540341992093109493593662413728030446880077038156196590687940597329898794817111556328782725381163351715994289220032199938386021391631392859166296518369945730791708386217814908618222264969351392710785715574146099770681854097904787362280897361353199771892620633254849710143999428727637329207723985258435771868781264192476673246254807962439599358321263408370381279018424140245675018364028213432219560047623450361896928458549094581578687510150999160299331794619090166051460393007583890662836212457945039771050390031932515154732786564251149587011926383142962552648441764733638180507618002809876925823152643387531936521885986327906272835317985255064634375102504937374112152661998966053422121636446328467718012124849223974276956591961740606361847164586637891758886581180840445290874282133171334470415087895300518143716758578135566521239237153296031169528096637002141045439829747167116167481732780686222590015499477833831365174527872412278978951128767916778292165543543206316208807688550381365827507276309472175214213273140744058185256433253202411034257193786149575632794756620345101213570246314391211750493391531426862486186089493954924391564303556186055538729498873040620068845740037899587721954381375753371258960473723710677453480264987180756744206790662326102826769603423225321096766718541777353146154914082809433514901916705235803428707253755033633846349967280891801363060219399230055294008982901073631672434541839269642635833839124321942452457630545464025906054592862187652631190510871503807964386459793417441051776193169419579674263238159386335557861110090817167479920407743940249701919227621857311647322632581097022900593827177039381630600166019579894772525646522223558396291871281459000024071601066468458495296986592517702535283189390417134808618849720116935592747190807330325772206828004273714117047856155922874211074789735098288318565168658503988287049536024607859950890708192915452316803820866355392171962710807118737563825477731138610211931501458376785651329156224543672859604141648920617511493435997531489289694298915517565733970917102979206176363535915701935677148032616850883547782326944307032892775119412307762141084736247981843883242952763615499269733602203315315529743636035184568782491986751445576601285459034883597281121062312390454918569473967021453098644689776881756373489317560120316505229652273918202196524715436664734162218138835558688605377295181075332911466709553133526654852514500863799467131538621556806885168882306072656377593349256346949891581794736139402092224231429756429466741779509176372743424133145491513712713130458367371295025953739578729775765314645757282458989028455391829002444649501466550248497920369810450450892317093317467842603693913567474348650343752406878209825016932418239349886413213702059096845076946743186902016121889560704544665030388196570819824181503377426794651257378834696798031669279938040071458534999308331130566843986137083012447064489872073029628977671303052415144460148366156707639326123730758131087675034130513166862060881441940340015536645843297292911511165767326894363086368451705059994245366465731463560494541442302654502117571693972619534705271479018175911162862242924089218876920891803219038766748932530732159360806565123051408090298711417209715355182445105611944044474764782760464776590075927226608952251576496485806149846995612719431804566784402555231894029854124129683106527618861159780094325879641831490885026019505496837509496889795918795901114583087930122666106418620380998312183406825093221550770165401659906367357040298701915750523755646675769299644795573756853738922213502724373436527817665121498367155738165283333429942883531828941222503444272438813894443362517617350565752762493787979347057280121112306577286622876681276864932820502524192292817022974447627557555449234455553827899027644847019768862232600941124226635588553468995627495194807027878622562077870262375468353069014336945163099824309050271655467029022715229890860756705942304027056092103313221537082010599870680614745226186140358284852562407619953486395178525315586227513069034106791845848459779846973802640510593822101323747263074978906215185764421719441677989378949876786027531006597649418465081611807679396977208503222435470046692959057077525727785440529841645834904915723503225409087249734402667369731623342633389842910084553207612936739181453623948332237628559523689371564272706690471819815415022340359266396361169328239445626360901782879341107056085146014906566091208930743804985407410429209776375084458172756537009162990292888646965367577983709373868222358148222367987089648990403986255844909355802803575504201183172915480435269229115999492434991013564255179328375823604479715901578286037517582769353701808067868513050074066508732390259483017187486084366343653443968333925882239428237652310560526168091773554408393833303947686065261805405983317363777280332369079020040735011322880284621410633228164743245012853718088040677450902427323777972178314785241101297227851636523427212745604904882463239895661165806168400978190990073177698733320745601594986608879475575742434126566165790960268244900266701258544110064388064334541361051021553808618899161525359868175129216323084408697843862861714526834085604799061667086435630685511267034078613082524426821111927325220752362926383180391149047304603587173471608488760872189240554937258338635943535645474900510636780560732886006425170218193850888963470391412335421440380964007786331989803562409752068475580293577395359223938617409314543817601481726386121962281760109191101418083283154144445688907252411292639610076812706118420881765257269584889987752356500723609368437872254158723621487000742895293715062938924199901166424697600575085596401959944975725488130251891960063565764140266569118625084150153283826311788930148602982255751583557271597079395747348214911761256384804348143804017776680515142540397707128039391179926640020164552895733005234251053192417867537890358514675916009725686998937533077618056502457014969332197584996453216449931331007684352199297683202069476456008106930511947123879283137916303292608090482046790640591714998632580021718216497997601579270982719479982886348578971472658127640377834641256952767611932943816035773606276601629032960045910916742887462659026939604348917696873784286597773950758404013607608333512809865230441302792386101410515927833709393495427548379414468910369522044484648454042388460165015300697505951546815788438918484116539391819104079141961464420875972211215596066444378927500576313731163129475094360698387054415336193904554987549936472570810734063520393909734417076106313507947753577955388018287263824552091229420108382219413339645985509322798345062838541289490275924872577018249719532274286752050745596813651415685710679957758943437168855676216489695467392116619691966057781167129779482494709242787856234162413224076439404617252542960977091887941743420360047440221930599752592939036902558146491512228713019896688324253709302832933322986156362900488742289539424230629472571394626882761214857597486835160927016869343666280975183013560424343648073869173474230127194704240018702933740002154306953778013201008448279361743311485462503251463681443581660020717683010164837570228312560000891439070677783548188591416358585224039018964579542641929780070979054258487390455283723200247276968070306072995639996503020500845463919285983961081983699428783651147193573205504632374439067099051311724307773985390526723940277960924408996642906444053308734775574417988446466589790847286679507635575899611800906071597101163418391749547441323808874797146998200327024546906687476300474863787932579438655336193211673225427889730025428457283175040070470113911073286293399007209921404221544711344127512727539696451803089950017839221550581902838629966645873607758641790019809270094392302170809646134149292064057876524213901783469264027534525977551437124650556457881822288209436889787721417382933649010462634449556513846738510553883752052644562580465444684930542475003997717910081208260664583822090409891552508005117110663572769465162224164864184310694634604891928354431415003094282413324951125800586418707262577229170960937615426880442040000338050980697413702476251980670514413347037640887155708448266317388930339640828985393091563888609868066346474767409353552484699881049367266247939478755151428782256549109737720369020364245694592899677173115360913009233160963544381683317628600064765563810587628339558280971568846844071324408227046533459645793583037194989566601935139067955420575609484371388039688870257010627533385036689394560442966923949729850815822740761861838145217386540042252366811468761527141841418907742461215528709773337381051350526398673119856744190160983328779553651689105852474609881389599559455692810539497897852028404415355234593660009338834229758551151959464605904553901149592926764411480670585551517830309510705823896769775165296182186835250661299257804223006931803636128074520904188878164704254629896637013862038730131457521786623826138710278109375765214855887189369599394248195647661252239042341622984553162696122562897392897504400656079788428929001283962160803439773387610032507283791897980652449981125177634547655741590661490573791683890123475658362564815686524011366239770913591351829974709800506623759120272940925836540932695166047293324762184026318096869988551122905348738469135721507871951855017643756503609367902138427459545315360584338462250111975859513532954850720755968609115953025815972972962030500918913892848088004219450057587750641341775162349413234046634944022277568865549893771385021930369140879209925451386101450341502549353327104837963777446560962186588104671737061123395442837793295911921415869103127938535804623158872630338035061879281511787980269809245412197801300968282843646462536418804285350109459631858502561272488001466097563009432722944419304719458094882495350707724402034831644445298464965445573797821714812926395762230736507899892665769870969311617645844216901386687104327158433149685496102107545153116878821946159751511599398147804706687697839940992632977262407005268040655388868965958787793799549050600459359989407813668482633276046433764377292119368474097622828429175445651228032883017082134875121434384994026479331466208997927068723073960795708016485667647813198909475710753465204645731735489589010824404975341779464066300875668464290598324101135485408415049287406764612663081375665361722175133018927535270797805933070253319446295934940575340663365061718644149648932850994390676893279896799070121483769333015335879792612768490797898179191515933080843143007295544951849467526924223513638265796072804986959470350567214375427887260632509734836887886085027507631802803756115202364750520695782129086728371580778759408729412628486228505106960326002887801186432915587660765879363711975348535607273820529828910411077173967845832680484241685566787261984732289139703204023041408068103812428324646797273894345660060786673558854423149968379646403571537508596361991469241408185102015824133579102871337835332287517419916105083452050269470853256150063752540179024191031858691108066625483725641346800124485445620557435502078781037728302543562263324346185807475533069995814520349108022609907622657137797928170402568299308613345320191348626775623946986861396559514967795993581286233970927437873000109308386011528907592226865853645959464935194675508595815904099225870738086013440981754501405843515844449152872443613155024080485598118824177444085998401821699412087184424273625005715572809330474961245250343831728402751733903794014992601352335562238550567657141718395854527535032868304040232415687400731784208784574780315060762557335016992622452519072532431370359581213305935433401007814812615811966737088841180323939089445675946754890521298441459861406832110297061340335173175583439366622675957529545674891531306901416948829631983114269229817724438516746793141393137092901147803379255777472002279550488450610528839370923324208264980895822306574756233570022007259335913255809560446473235309703157930338800980350541948422336717444833502022578798565649225315112400825643509898101427439462098145266510254725820066249420567968235159060452124851309448261753755064499761013691651311003407634821694721312517867934471404548014470387438836050807998431518189845316688487713076125045896003782266642468179215796856842879223387527661041624816240628561154605607102913694611235306685751905066811277721539631293267460234424487469363393623760561433455473805784379431061443128574686976609275321138477260242526858978942599372219061709249617678702985820574584475930860588088496872892329612892273145700653687109886505643125804100966577974800173212089004767449897768986551245556791527223476273750793984823114543688016743948861570282420244525783046601935885349927156327615780556069429850281836626039312122791187106666663470509924118652658817828749966243138691487086775969585536627752776016811157343418355603476635664646248474246592811165611085606422754425510446795339465930759769352259427082793376553127903808163571781517677075646214305046374411263157381170411280235494356343134701870323893830725062573717215254669299078297991930839494128186865371495723018524376003741781061515103302049797667349634368154920991440378344587957863622124476547475468346649236145180932163980906815970726001206712813597905670076096639307281277384920210968438293293200282044335653705799537247384397450865306629365497428308374904653106985940796210173000676882778848167585748903661853388215611228563394652405533622715532606207890130386734549035248103110808452062778499859473025800751862835750276928471034879337372171109317664742654452479709931603345934778536363634115834171285333051588013788853950726788261686246331853726710830782686668773189914337586571372877518527703652517217686059694781063238039406638334650570420555187398264868112504650437382858224853386790439853230400929912697380722035737750069404490672325461859404780352043354914356067390152704163922617910412482531061714795138222541042785720678347265079117056996433759929172205511437148034465149003130178737344505234959314650686270745338272047296894777554107920360023604189148364863106031957891644028453652154794825379216787200907131329669406949088596026992053306890089218585359478723617831154945544476858321335635742141392968113361842105497991842750557189050175488097083544873418277366852128179688556997360401231812096802680882167644744300317393860863779392175046241476764224134060046857259997047022290425266756960769193890208769047537563692752731332761885993009043536497496505628064486868642531574080364637641568474099821064206434131395806329874195745759204494867841310775398747770839592518831464192388933070575115233156104408443634797594887728987040812447968664605632647510033423101534547693424926883045496539083988355524639202983797456294094521092519598708687585965251736360947370769915774594200495775136136332160446712248910818942478425138622937074962266240248369436378283272836278254913195435530163179426882314209484685582748988066840820346138582425417975778703905469450965845877717966853574419978259262188243862156701548899324863773849020723848120951381313307105335304410962639327791914618420984052850700494821326437108278110683865085036189303294309762337287891129763860885892825694359386527972788403548769777839206337763579005949990873008229556781504215552031842107350883223691847952749218767971546447195273593894529287158792091343525811589936005869614046346948368795109664281845773352926020621980545968357060755968699710803948990071164803608338069053924051802009329778302419091432613837787708695677420740507566812727780112854865906512574713091724810400377161271907251751397104075555056223704203791443258202227286106052841109414710469813729907291192211126097645773293673414588824241190487352735803013547673881042965497691327191092305859172960995670162282474699702547126794252527264838354685086572492667120680830321404515049791784553937892342512106408270155468374326138538946345645606508788983678185477041204347778573967978585012413636844994718021163732818629653824831542355623585690139619788143313711278284945473657265146857308066166371823242509501546515621321997180395622927296164830828295481781582336935376629824591888699324177904710871756022021115994861495696682489452415907107502780846736850377422744259062492948975438262317546213244482751969316385137820717737013836198339764192198777791456026647608020369945974749309367012456529921657384856596059015405027102506390735305334251523303225476436542563103306926097293986580292684531878132563015016082122139356572185103721642139024014066717291693726014115374116243091370701994529935076235894918446797798583555428997869376071429599061154266885671779409924971854357773817543333030347468647143283025082383506043996519832349769596866420763883847723405363023705392435472336703069588364542637204161290128586782458596396323857569809595230261481621447817778089407927786229984224782598668851961216184029542139578810557713352794967934311216574819735579804253979671439529419374703487501240013881846948329910299402867541112006664170296655236715628700376593302586015682424328640164090542359050609620846342557613100157168273289768346778025659804868735091832333449891040568512203265078068114958436376870786604554013996143509453481082685078863572871447721149382508397980582395710553019838183899301702851160814455053891951922874337699244939109208212341539247046478107736041519325975783026764750085271223621388855745925083993102918758525178495812046360097703916495451583645188529002147738148934535725355916300332853317035188108794539305687163187035939591490905044871791827484864434575847176285798680919301285537354533995303670636319521435044761183321136159053280103796951021139326585607037726335522829457846317043518827632105708229617193592416818889337359862003511348070381754765358646114312841985303358347459437522978996831794228201943982080921460862741096598192936880626845638994700723513679479111198253346922609849414043859521354265411726857000379399471726907235352427785989390349021586828064735102665895722065983050165134998087622911032221005341746424730637632379075020535235699981915847165884935091713544553243233084887264319936487891370951730075085923938374411442801955430809450602891458621072365843748672342009536582925889404627728233924359621247582519405765568060698970593717365259236898620701292959356483585474964214782679551486183510318812713510112661344691969207374393914305064233881708446962209545851491326977596041401197430049029499937025785067487729386129754160032700573358882433105524739082890147666999257859363865784099423588343428648673424544694580836024260480792394168651195529302165315356678168921414538587674482345403053026067822319710163717377667196418442029853284328568034452337057615967800516417872872201873286188055424216615032832755808934576307829601178517528860578181739657932709477558613074611912856017841627019298627570547567536575192427967308580956538015221768246093397294639348807982096700563466137199826231227383366031794731302994147589896031726722328158235857384976973097016889509519629912628060723500468163773721150797926209228136497360719641521074015991894136545217857074567188169338203288717763176938647292644227191820475214866104897885669929600261739469839466538563755689590893212552841048654421999661066056623958643192236151745571727602758693124132334357437256461331002716191298358084636618288612479913499252418980899297681428213615675562492750070959747899549724149702003271436116934898755670265012884069118378637390622628881911491440351801747582651166841885556957170175382366243496158862777397684985519738721605744080552135798103246899531286381219166546978499198695769570222875486440560803946022618157037635845814732375431448550939152067827970545233999247685803372621529274045539195086854830120713733074614546739135651264161634511833383926782332057221446374100321801802236624796226550324169726946742833975401939756486088552433062424239074180365677511281813102773074688432183271029395205130709016344920014519111686933085912935528945184884728146477743367473018589563711699455115230863334223585143292861907354504594349109156208307267664872045107354252360093986419857380754115020286965682015376520922870531410988057668064734626198581188691263711574991702215197282454446600529341596380694220179408020002461637874125667488841127325356476277321989758183672205135573965420179080167831132157983361241307263077703216415811525286428630406016567009820754730178010394597901334539792879844960626002703655337204935626689758981516647657880459619787005757962558539412158441331366800875946661484730653732361513730942886984059881795655105475667533051795444113722357331243178863171164353075032274570393284841190915364906626931591545929064231185957274927770629055086136509303913619925507299059984882379243067723398585483791571889802461453598075637335666664412352451934196785599520533543938343080969517115819451686332887721203146692361573450868087303150800639366240546379835009297835214707496265792352390248521112835155683454919916786455366796695843678619092018625362002241896777481453161319520690582036390116490703398815268731519322532721546767122126465921815164690704249702422335862799647440882467646014560994645192972159783575986259259947260376861459482056262475808883564389238217603846235679464740906960174995376006010442739623109865886316135777704744477986373726068037219390861751112317732916675869068967868695204997988982331966204734198432452164197740997408893133981786981367456318853860704828923296022804702750185444133020240174848451567785277455621988917268963398077992257151029775893103959771222677409713008019136797982475893107658821743870293722682622615448487178353337532291044705385816123855822918702595693694428853715658839558552838051970179796315315355567605429602005894075175104734843935602393796969118895831819451140460140611027172672995074390445861249001500447734273965176080745059936013342872355150481417504739489529198172761702125095750448906736400981188307411335223264024919562589991545871255622993928717386702904375364691062187230373776027460893913413962514191324927283521618175140868024535639721206251988428672562745520477293544291321005866106842070796173190128070043162916263328100867700418718908456958738099007006069524485935612331472040947007146349908875734834328168945107346094026773272983867385303264212320386244515868842647605886677122945700822646360524099869169548994742796601378522285599116405780848808353038163732631144782713927804071768264813812074601385565673218690256264883412134435191252663649485689685666957592535104836699982083066645159372561722251795593946772675839149013270918931462290288245822029983363711433137807847434776344498268314424018684571051894136245724884406752430161993561590933201151437325995178009651821215016857218971562993301377768334555046800250967279746470984615499991522501324055605418933794088450179275816930386141932453757866465531028968605914531622404750808981890808179506795451776591709768772460193249366606856095696071189168578486959809334439950811455553116687240596796108328251050163408389786958165493698609295640854267550027585071147506459940890593790405287038391360755521303284218289071177464862695037765702117230195053722593067958095605839631052764824640795850483041682685575625027341558314863925259500872277321232635693490743597737596597775073228220282337582769264291817841920026252367660476882536092345891441032699188961894342676499087784869468691864833280201354768085858990277145975916739360674942614366245205317349234151393766768239203743607596848869217214236883404310134104376058353169418642059791749885649258428387139659026774514421238628537007954052538132381519505354214118609789005189647444404609310513294579014503885058287375944652561823698682270653460733324784628338374720944364863081745616227492195932206443842119524133629573052565746564374778417352393209116226795521781846432452956507568516874652343631792685368719326115712789071753040967925383604023600476281046354458953306017015786547922808164996585006190623807504102463528560361137031717107904082004257077021506938967390488074216947189724033000108889394257940358381768644830542803592983525894081276427614680840214455848831579292832711559246964326768395177149311510571335016102469121318900865547423446114912180867549783491518605045538965065657297065678866118393574858500887378546346590861527142324758056157532020993701787172645626170019377536949899216219446964852755130833060773030913382759673619992790190982347283527905474180232778367623898996648211783541912484286796343304601743245264949821541709092548588878090541933702772018565940707405313065149348634475071061806079934771920530838506955391663127350450625536036719046087103289657344618999170393491017787877363831257874907909980322156903002494587380286745300074856108456070559960413109174088470373936624846142000266055014060860923800326024208531352717322857082552880425379809450940899331706481842370703024491599225956764812237265689902012143939479569760955736284010449819887782563631951289257071355986882557512465843089786668793924060979636516421244920276464170864496352198566112143614960237192077012244505671208723059234528019194045872096064551513062305661356017750536084992438841598686843672445011662739929914774853352043220077438702626371691054565882700303526532609364182136158844318234358948276886555879763817679456652935143287129945838108506258954823050647951396361489737313479431611659133967186192412402060080588042672226039884277240249771959199482809076841018564571584777526222226903917167055520000696850391985661779308890168716496350628655370173449008198773580709546482051879445059228665641224754037168149225389662073175287494875279665848835321774797886654844480034846772819015414329908903514339592737240510050168230536120922139236338966090548949818822102752760828340663713782968797373755869368068841489862335042954571065763961029641112012521848120783988464197166871969070625446465138480416530956180914135746869204887975870094879849289222831689299808210862339648833355139829808587792622509946708926709271551017336640723885703362562190996264103636238387623486733541442566520121582293755546707233571302621064433236030968868301574602637888052963888292169291361087825556815504759900238713933686230195785574605840299659340320903394495887285762427151718608702625558218108533441813404530670629297754076270835476746427212838449895556042213682164444486999682557389974445852053155939863197959002617640833778764148640188614600820059045978242707077168703238021361021690174754294683581817800274278936403176160467435108326108431485962697731236120639383290825728582326973321225728897971987526503047543515097052092804376584107210715358463076831468948802521670992740485036335461236806464754964033531471537793296066536099060968257288176649829274365051897867011262839160953868658828880050567983667644746932790559729013827701497396064666573572116683565372043715048034132155951999297064494177278838357525552298442399457975757048567767554502331515207097281429422044765958030080015806168234566023315091489799848853342054713024765773954342523240499764540407348988777523412590620107442781197190407322113676956307415214632656493305730464863185948518756671771257485498884379494144032608509911021857512073364704178731231828940075688121715758005954384188834839991862945192139943824720939499683096248145874708106047976678862045421785106958194266732540178663897789172133608822630395941005174618274335229817782181163374870883140407343524338622360219314113760490109139497081752837356135947915219077646541912308740733540556224437148938477283969148023426229876365020027935306776258950709868018753806010815942554467832238528476018784972041024844667153322155455599361291499761786662939769893877523835218165934730778286672406710047231819229540296677817729730210890062001800043950148361345298445555225053723879816447080589335004921704903304587084203346573362324579145472756315756864149047145211612494197476621939343164111370925318124699070625957761477927522637177011508180422723269910224862992728639153000946388460623616308788068879468823095840858912030623328587505515754538727927742597982534888057142593080173327404077192979581256465000933888849063325370014207351525958483211059662369908892448447646654942091160903757586081220337451803240634611332545212953063765614015734347540831209534137428239245665468749796197872773586577358882478552383442799845339348454301444214539241273407451505041396568478554125461309222465629810185912862329564030094686430114584164876452375427853318638348669369207877095761570532629323190458469441514643227228953163967095094372199261859415833242944161254688496805349210459501052138861735494367578413437610408719536300420012736637139494804616935793895739262460212111468362862834450062858430873009670413602148407348851965374224023407782537132489405079721293072248122028883920901887831948235582823882290243243919213226438621004264184677893798346997338059251947228343464263714348335509909678185296200823747530181344506092336486241454542820674245139127910186208883883657996728261796883958035779033324169716311204922392581662463157133644026671354808055229232210615623774603515175683330742239771977120064259269171450837375295789329071505552963611577747858359865485848258255579394798040272891622814029295827396818876813082584789056439361942344376272759051981701240350746569945283626717474705854938700228437715418075079512396780484010562488215288978577566887641474140149048164267164838144982125742954425835657926910258193170491441096440871826290434779897787945968727094206225078437734999291850033925458116435419683333077268019622235373179667466530024985864195457404938880022831610165419148462185862064904779721346620194823704348238156465658486743742358324679943057711957177883885629171956200896347008736707539524368506375572228881259034897725983572052697953401916181586013747223550204508197456994560537552782808857825542509341074256989314626881908467982814697951784285906821966742435352104892319540944891581419671269551120006367283748623603876963490637632697423932839709650464467974601971677471435769468577028648851822078800426786654251834448106769903436587256518519843993124490721245472853641505115995663697124671691765094645477656691388526977777041854425190622504957217742965040849671364938534936211397485125759065649557014242240432532739048499518434325321829007529414290897730591759101539106922975804772843902104747097480355495570271800754566478898575800994562214737850471075886338854974156901331804060287858671547569186076887625216662957211377967043854405523541210154641945830236780936937588604340179266731041399627558666333833002171306167479651823162893080054847188125975930722446646964998325958909922022794574828995013596061276268695120666681377285080458212870728479842380421521279133534845074201033886568119723644801637543888183868817739387041469434102652946984558319019433809007398925935310717108399318022190132187062311039260875884900156034155558042178848795157280071205011823049030762749533284179926609413528378255301300046848713749877493989437983010685425222745417612769257228484115763624745303693631118821046521537748428489096791560107395172953029014261047232684869223947785145465216300085951986291067812763579911340258373020159923821368396363216655191642679736973215978968936251671515604580625381360496143327596164155754242636986432516774351869496702160987275475605965776100316365629265199096016540575000643191836254024007714756588984048422611146263525968440432730066542442937249070905894084166102453941494069553245194344174961056317013770211149625716282171549761291567739953744744299438499685893772403346481307648368674127095133235527118014218545267177283397650735193116374649086118057830373676559586761348621859134115801726667234118207819503775800222343250822378364405920835618864319111039290322236734833721187997476159307052886252513498897444867655100620551317231742071025814095435658095072427273287945689213562818214267276036585299650201407593563021183809595237826720491601423926201296690453080220336328327183312879453783099325019309819164466731487892536234575083923639202750291425286701879283700939802565039549602727258344089521211502800428648437946277972919441055689536389452077680225957301835731851060799979168094784513965136269213948629964095594132172816535132912719581851902259113215505006534014394813045571217120926007217469220023176535648099195517198738899203504326769448339188517990318403740734994878517193935532543227023124893489069027087335134294980106581789222803727208969209443724174521903619751759522381114489413744130583296960950783415534796592318443074551045985014407468269189774832091737397038277959860152852183670168911649061949117988669355226784353295070823645051713427066914825049120622845746864766620037735841629563621827527259254889357076343975619263813605105457051438654423840046610834461226939419660964425454669318230989561264115718715498111834353485344092725391548312067372354766753977921987985473791758368902713372630290789093142485678558358678325807273046619938249870900460483054982352614322199841128702470957462612989974775600275217328115945878928074510862406133848970655807460255029486958023255162507762737052626272064832565577882723133585250765225024574365602272569626252780370876149441918439427609602549234829339245490276042367282324044417243840172482094912842558166244044991227237859182024953971301794716865677934894638358426893484954342111122537539026261504030878018896412045605863763844371467003182811934023309557911216262652529593803063560426008273007639156359053509850083047682269281881080583209228223002347204907418771995219027613915402362935642042906906068881098998144372181102880864228085686174573596785195439544583802331451645899454703651998023317803853995093802001876938314790657022394251513063958914225637283713886775316542062748492945392757441133120782998954110584794518655209135183037802487351936131026874301128267068739691999406479357186673901376942997601644001229460208682490723723296500348995495040464867392185183036088009164311287601679655652718765143185914077004168265727894581140480936887160188489790922045611409155137698166758911503906242843771551059328591701264180280582617031148929249468267230715213951356581289342191652012455643805983130718284153062442256282844567022595575365811279932082078204345841127953852505872423665597369115362092823889127877056921782229898414562523503031169077245076196601530586155340812031707615185018889898217964255155158755913396818369481029292570526512624176642564525584741733495234505512231622571522085386305358412520571759702966416684578751882780321993977366938395321868024764890431946617789204590569972791131453237804891260433310395423234616176336726335513019504954669259641023176265398406685421447326401250748619591678243211214519679483523394558706726123726007791301248724770199734884834148626270617568291867153007797058962079600970086986919209139228654870969576721503908896360439755006180989966119864637387630477801959251660293856830318145718977161560048128348854340044124479481708643175425697506302255160649441891764358837190586160153277068067269827329577528130507731575875347293751655178835343211197983028169333091235564688813949532361396236836582248121490013108823197035889952496638873106326760051470909299370228370852232060537446386205769780359624882270976774555891234153819492032010019823257549197617064330784013582422094795552241728441443456540814338880679080355040044026395310415009044848486370989329996588969723100192459454142338314398080700873090617217635859899905314358879053693587802613607564922537482660139066519543152509204684660950225578996629328410574088325283753696010938084613478946461854741975184028992700500467571585737036369739171504238825639187793003907220900999418550181734459837603420502998547481594472205060579693969176428540391602918583306910982603830559634526830760724471239408966546485317178879320834271432155621526660883691562170253053163345023330741828500616155269804293001005347974246347674612464133276773787572084397713773027755045651806511183846388548013609067607134953537470370156888172719430170578076131224785256782577614070263261876445243998802998076533378705755924755908528982108707977612676529208851244535105145898725066275367120838983582492945413690850878184019651286336610246522373591659071721117203201674663691658818481323973315725451056744934143694148738437605659370824070780607440356607339094739816793938814852526547764148679183126317608010601244612512904376730294980931819396750906197246560260118388428380970284289760427913163237952302986378760429988271770384231333220681761803163441334609792485049761580133972788684523264662204820701574557778313227528463283479838246838836474295527738029945498177054797557626274983705381570611032863643964099091128002322970171865405663481170969414753618894917126165544992914618711957339431176053062565699781754936498242904898627801986975927443128784070200360156323052856441752203058984183420325590176116592931892802085961997076469012157618752339276341639901959430280810996969744442201290985262464930372377944041788550774398690107552538643320744869515067256854734335367465090402837289269946541743113247724638102547455638174195498610961675729423003692165091916478730214400823136501861485983453987281937325269543266901468070687509389564957119810365505601960931673613690577364808940824145010937903104227122939231377446779343948117065986768654459272999632218779931068628748838654430832201221557234032032337222275568147502570801491160671635187074782404242077212769584921090130246264259981170204030467792330757683872766059626348620919757994459140314741426512275597542286534711629408244374631560544016272819525358980662654606733382494947383848924134039305489572752769244973265900510655514385717267199206790386196496282613890162664390743837142480915191101685382562153780182183434372061655959602953320444160920665396984404551293611010719078974379544004191352703002937520120935025811911415891761453633031022164609835316493569409499504287287244754149770173942433215135142104213069701236491626382414832331782157609126586759324120881072865324078436948501197187527881545740009908712845683773237134366391980680696191261438626621893484155166654996408422877338203607944495853154511101661456808225278575645447960872032320983944171063366412254194439900244966568056186868335119219557127774590174387420660714851318933055145344199641641339406997967110723539960278924595649057173269175722375166877072815161875804793429362812826881370069740737536984639433819662415190579508376295614715885674569928049574276012518297835669940971531040738176414457322115708350406209304161174475820775377186595870455784349747536215768090680943154907436180394743335189885425868742837578270350161286484016247166389994163855622599555643775403628736348156911051858598869809966822271713438425118649648213204197146864006917197472396811120528330091817048397965165143865547697746843653507157602600387887013430826030908460696012456454501687913612904843994736515157265134238546565174596898065880188500672523552682049022280197496096308694330592921260407401122445587052072369939478473452061127804298815717383938669478317987620783554694607630688077300896955881638050208369993796427355944458607807766218018467948498070530565147752152520815387092867853302438666884140990284438197931736552679828337676155930307457718365220776526060648509979174448756739142902045202417654217286990175213264692183939317975252177391622886600248426489420659077096335494686759833420269881239298816669044548900236633771433810683875270674174684126051313349967569227144436890028108487283775142839691643697354637171637624608968164099555440187372559457476193439511007975064424396644895522193104252472343778267099813900792824869813107461649934508513971843803522385547973497953322193021670974413274770652067911927999214770011826034510492064936979726344687839304355763891398417233236190880019911141782281074695692373486375891140441480621730409395317304566055484297381727560783795074528119906047656429767098991952242135034424176914294833931838971602346637639326663260084067553162901391126983741174887563519348670903752651485598709233302250671083939247717026841240341040130904802058640039694935211284262022272575945192013220078605235213081310728218370524064905946687868372601350102745877268865423952874666071895357991456343669707349164001072047258516750737958411806277603738684558176834530274479017628882337271249751598824741648869294923678466367227226829286030925240549884182904788378048005833229314607135638531782169485548123511458975424894987214992269275696441256438314895068882995935418762961401092626486801581615711948599620753934084590348752997149243741964992554412573021634938025046419005866000065839847524887555816129935497697510764413617819876075782469912983545361410386362632410312645797626563750299573742080727960938094771721221139495163320239246484310132133566251958322412137147865396990439774286416657693119113633620395136564398393510151759775490588422754662942433347665275905422709787248092165505975455737457881778017292441858699207840630495514963528167457590078942650635156201422618816482148598165059802243142590128184377613924685647060209493839896835078024340252557957813445643026332047517837356918626700277384654810558470682609843387289069814413217514099802123831465497633241140042840522647929796626096607364234958829825306811042256289362378221090229401239523190873399967640631674288805003568176363764859037671639152077092750486121088104502651782470664505122635780057557120553499962435987533853491600474030920670605067148836774361954403040586901232045223129963779127681958261227883008923088808638505477400261983447592394815179315522645772564491933743327419428580056096575881839961937405018622159379036684334415082498782631176574461568617012108818251664379479223116743157931082682188448966838620113614172492967035841839590336840341868681907273465307757087251685151659749392235756690378127849375121475299169046810406053567191372265765191293874775242087886771788889517649201252745896032345632238079818826427309962620422553790029755408053933771546287477441830927788297271827253190030315209629544871022275460906974179354711564276693069297777675459905223264898963996071446917539118706506869109184891792811417518484315798123989025748822663395003341901759969832015499837598422365949887408034701131970508640885536277857271474397139015190299605504503417929449839392631155650695154264233637807726109264071846599033907468176717656097722224663315206692246576288004575800565315987745977516166786921407814404110807941149695642081100079054634146692535424378911704280615403328217320385456466289638103421542434204011543059941066229633355466628584285257274876599397131655121598058287453901716281345338071419255804079519508251097612950392274217670743217519813180938607146312871458879875589527984352810627708681704108354049598696298882695200634878155756180350044055862372658181452259563496607894290204889939715056302169235867289530373107603780424140861503575846698569057253649548145194133371364511301541370958600999939911999906125814658411393990448893235315109495489708974993395586839801688152096475891982066834998236053636307106472034431886174404858077678494434920698952092723092195543590115598105071951567091531631327170759020784841387078700226791005332145384454695585102917446925643164716993207951195046358200215155533174174854426143152302793565706000147427657958786634264653620385910554757649018344263373602923581979556872476044041663975437465851291938139554871286525528117075206266006650024588256570489804366973522880221335076005380076961573415084153209583024590688402825397486982631126566167515605732125372480850152664102520178365889620306095711247840616798876341817153051106355077771451317148506883052030068526495542878346689243902760759014661709560385789568805505278720604018663283182807495204837748755886138764192678103569643438089714104614269726163415556347430186876336581689141985578935290300319178539841702551900097932459710431151432548292450260154201637065233812838664177356944863214529910862406802351764069517809062130883235052040581908003987284807213199972254525335669896834408743133756342978197750894118714176281192677908820449164117880528737808204717789801171893344783685595163725307255942783672391637260881487857358819807044075331896625587656599885023007118948602825008967925587495722079026143986399936468745635050536125306496883335302430378792564921016535678460936750475786638217437624174431956501208538865460098452721165709521169632956897769676877904333866464266672802052203185448534809543303921585676033051077599897419178603548172215897438684436508551393472736750373967710605785204779314041433654728929967919934347847815737761235504753814530660750039967843440778182788145547928853894167880336857797644669980949976889306951398000921748463377240476497029119098605256167995016751399387045419328967358592766496773915705641727770605051493277473205165476859145406163173254339579778174547560137093579858122160585521045446557815297248516164512659673924994476591387680256096446140105339667453610685047300220384358804826181821935531746777826225391713623126553200147221610240110872653170636807839539713431154116470807326818918897701488080249336509243023100863369954769252454011216428854667128633014320529306405392774452251274481090904950035154415913992591508381029650246135979297220356562454984860114800171399966320273023921133512255438094053326514697545475288911778730605251596954365684566939932380820731222107984842337748541766100421744587181915251224753905724300750510004499673401203871846851106076130151748367614777548957360705294537636180723358022182878004018761196112225639776450802966665266335259012020896180480999478748796752170261708311809385114747578944992455343870255906417535678280716980541335947651816689828126050837805646538234671949014120262396611146664393217983307093748411110534247286049326131551565388735547003782990489116531110064502104595576216215458695894233757655082015268853840766396080044826878478901190245425572544845354697083478061704581098587084217785992769024235274614130018521805132414282985652647065907560793269547741613959814389841256983762349768617116460078428342696254802868481870784276695936450988794616996635030939962951065178523555603611513578155060281967173115056230308209236584558503575439731501080055507653504483281460737973053942220982806355411235228409464999084467602671610570572546459052416476736321594457863432831201710153432291524690589582881699745346374084297279383993876263557548816190036511376787070509896061405692177404605181176364305116834152091396426429817919555568133183727697955146261793362937471463353394929577189676932421957127202708017752495696867358044605725888488446239458647788046376102685984143667589317394375124266520245962985008936086431798276777890408001895512943716127252430798814577399357942063261403145098119097066817019325431587555402724253716795410442786949462856273028000855256822974733203985770550199193797369114330021799272611726160790555101484818275574033761968067040916691889622682141010958444113091159527650111067101642603937530761053020982456817085963007154235961705868344581955463656012201530882237899040733982503197937769265780313992929633175264822028590448610619827985437313431767074590652054013553253900227161201051212583130082305388841237299980138920538978466752515441636493024910338029169181174881727009278908767212758152037967067373378750040228452152529992491011437364999467240352169626495361344280421187182491606303172162003653507211929560806735422980698246727444973353990795804795945821829892230783693304196267029418040650418742667903856157866547581767140379971948484233083147886794387574406761267559448838184156123751552094231037428775944096544410098314143015576901338987337849468864434481442125749910364067406582817649958388390640151421484667053428989234211927938823085426992497848449576243939549709030278628813871893418923653642060514808361830640445456940708293159580923760366540043876437374548064859725955291705486490651219645036053394171701864529881084203777548771374352830170729182309336696659096191500337625859948930503881146917973784782152498186783589376605359962277211944168685443261786688502399848780861997471703181022114768568535428492639420394652957059527386734204802476206967761648081528223432781906906067862021464703759918841541117003186818573765600383472435928082473475909163726554025738516478118433157029225582566989681600486450483172878625649389284498105052334580664285647294278171829445046575698040583735352662613118481342602831095457818520868099907759094475727808798087665651764918046613224261379317695024433462810357565465060591886604874055192310126379783044274583585152563638034479786804200590522266671852060980258079991565395673074190345595563835180474693312639684847057482451947334144507018963039813937935900870836473907306446995637065908158201053204354471803769134299955045424943647130245920215291339601683859745842624326727658631632990365684864167219731917874869644856062493730724645898999304456856904554642261920875118274566398252568700908509278471413030754979681366220106003970475299433822113512038691165028468106113109161804232146022808262094152877444213933082944950448154566267595920324931340267763678149076217732646473093613694848794993465016062444705743916796915926789695904339843834214730385640467754222300312063515966349354893611468829996051310626462759394193643068938259234724573383446228348949269171137944634641742905316037262816401447725711359289265917394524793264372923373418136831170735019298318123092828475086088180687116454845687469059525069230171391745018080100445619169104893042765077919111357409613345688691817235405183223946841343362234160297200399760701942430181418512813506548663150696831231445409621467535608216178277105145898785876772234342908269490603982790795082874046054065850711881172203350110500024762895470199118314380836253778375062655893895743309664064923571006077006759834256758842441975018197188177316542650593562902852186072801812775250446940793456267329820826221506098151046497498588181986937268101380225694073797043697079770045985938003764092939615206745629507536707638707158347343398352051495471678612605568417174888368401805150027713786386926740151393687849198671905344193471616011391289414461480400384696608141332672527945726267418584534300098527569801978658963077699815289278608249588753970792489175500575472512148331701408649666843601148697151387637092677169585495950831483339998240941439611484121870502005718786329535634425836601796211232312195105246639543540445449427936010397585118348900384863849847839180924478231032848615792768103025041987583466367500346870615227790368968343961467717536167644840450898764449000684465829296340040350252380904119474564664289989699325631886282784113018916324883117532420920201237982817687932089129459420709128600899603555281646628572018710537212798307517744124912863401343503754721701607644378853632551586317996522789706427869255120131637082897702328564948356563734781921021575675897681968958983394046731975840076189495833075297298124971401675670726194358428562024501281574500984884775691500149169413300830568507974541421071283123361520587750480870996761136946525287357692858431723042191830604510642731787308368919269629360107855579679856288241887133088525695209590409754964675637502171041738373896675704109074252491162036498466573842031861287951321588280317496848339668683577851066598623738731970343362365594730370690022232745866626845307171190537916395203759931863533931520559682270993238788596014200499294224047976846938587515059897648294745017872592276978569574395322472134200523297189095593828666917745388794946904302783186637257773543589382955447345727701391880913308154961560191194411593694935258453961863491431709923862489482137621981626215697043730581404473448257227610382416500344314764027440224051652197498260196603012213701904491982140551070152997454461795190774614846890287435384648933672227651572396498662901139692936733960444866397078895131549707659887936316096356773616749523912701884380641144118975951103943720813528301443334163938994189264739582162899610442375215742064011099350006400017637525954254572332677376892995344358594289061766745130125997295671695309120739321563488356438067930439164566545494091678944500497601766525438135330298941806182265765646920744783256968744680379507481054420804506871839945542142350746809067454357957995953890801111199548317060446531322875355364062109309301901603390203499527248302593454845160425610161632766419911959556443015435445494969894290476839210042999877500418866594925868206074062750692878719113221492767619010988677504601360470868753888452663470505481615777930252335084735425610744284417837130515565077183599207293928804628554204263041212884612396506286361237726705388102407090922757741229954191675199727569320358522114691746258488874462776322873019764214178317859361014480229659153047631111987706023173781731900979250868394499877586707609971896626748021826391516643623482978113482177059164913343126613091999303662734984281830510266550372853867937017783991788419030191457693252607954262475425554091162456317947019973964735491638317345915384198750384748013129400724895183205556618379343071102399974327910554343558464431232025881218998713570421909071515459521021569533201348519279643935951094666236410425950881487302010321210802451048132789466008487309521621672620059373349836089712801380388816312184079307986942903709771067363034428105808178684304629190974183288110986302523660588043454062511167352490885357557062873207443334903599544276631685908303924881075047250992859978188782054980802662409606200328458392245344359318535671832822379929363364263426350940813254434526102175089634428409339260886486944361827824640102196991314382071231447812641517907132034739440171118960982454042464698463808811685730377303828989908794923666010768345580619453114513561331355949728331977671280799297880131081233875846409511613339186282910306249815072360922851814186135137029031405467035409318714359559318661978315959596831280800979664495651377831192285859751955010728199956096422610651487530207500319328059460206969024588106224611349934846811102123088990577502623789042750351888382188831487724254462452444510199793730205062821702204455997668917652201357668375004158607029630328478157368082141509204030505470572769328809278332491877243518026438183320523032993678184371098984626539864805286131175776753883275733767897698080713790816735377038597119268146381911233062752279917921705889625673808248020022177992925837219093057870613077529601133330284673825260968858469299696021121505334697599334434390808788745063802144293035773061915074427274947962750117831599773983834847398645128771689871516168753081461765743743069442138179632593618977015568118933815831360259005129381555877483026727781210545233907868113779003653624484933851495548538913506783248883776797305464432221037831887541527048091245174152703047083605360935384785924281617208244344774242398325704682041060354541861621327723817138070213926620797766130353547481408406921309881756897996216599934870049189990122301317142718542713317308322300840206529421953268517803059469822015085721302711842817096287593717828821857349327397809224009426982568170609951412821569418595593856688360754849090332235528278484428640754433981937182756091087675237486628854673072225740374720528930560775665854229072256442442904239430212893895983060881374686490773036759063322958416843073407303143935432030899342576540815636911787645284412652157346786313913813486664685574457476067065516915909102864041697817071042452257637157231284866568891893733347062834850565159920467567682809284340195411782211023668638432922609423439377604741078511891812608732998371923793034275053440666859081312595103963591274366041535070947257008103440225594313139012021672430761087690147149560502558737565222147136049486808983088566877582962321398214976428894390007685394461310234323986173734271097579286308576205377267650377189552448913411762675093499104414795971240508296212853551785393658608654204266208230728594364124112571960644322581276279466424073278448569568287503841002978504864835978787364148936162160960984131201709740737569549712718472297444933011325481167515295254407969739773101986407673592398991765838224384436942477214520028355186570118897459703219182547189623512867215816304126136780571713234661842472229126325680107433929657783769563689099089072224681554928837798170588607042400486440703144296193297228082346462440919508590739574582226294356157496745299145756709261333096916363270318351126468854990642423687250949211123173228159457287701872205953420578770145422721132294125497311780765348459256835474639301173767344626614052486958236598762379497217203636398842872838773188606983690738545241540026217239962177931897405357596610897376989324448806782356143589265283154768888127337368278681178273460280822375022521236538194729163577990094338778207762028774013089740157287852331813389520626236137007778889682004795885005181711873545790267489175285944845489707253778364271690472232356389579803138902560851879399922128080308064206958886154077664319021411285537013143029070103425881619934596034180705584612213749694489733735122521194620515426157064795604653089219678813744259080199687036567128777510734934429908770030505907239946682783116359702087178183374274155960216313759999228598720932041770158830251788690016956257347670726120518604345438699221384464752255507754392471999434715145244666057635397214617791328211975129718883499627722279836781222851665163251022714433930698952936800005845723105532233429744249516732329338602266551664072397173732291367138051379475400628767930126708753749457879922155795529607428535066221105770711034151433427578466329433328039670622564660591997733722706653799692199648331561197470070829454434295084612949536961658391519221292711542310765974835704907116564656456214811067750502787846838757032619682186734806421870829260358559791417749498773517786911924873442057895802891921752263277303242784746204903678915003380555013692983667685549587819242568090450667900624996395734778253273938951574168334848820201831263970523823638917240896442377318384350483480801454256375892004117531920335753187050225386268916488423965938263093298920646866290918881472147627642738849466955402282489630397626147730749579296098602962973746410300323161367011871542821385909414168113698903954117176856213022076601980924518373615512035652605891147746152958931837601032236870427810693886770533861916771665604369854569931343820459693673335992553691358222944728264056312770817933188536027733269553517484423448868417036210385772761402991782075110668540299818431353571194766416371944359997828302967891728221214566024882300284237919921395981283736668090491570978800934908794382931306714254777804003512285817003483397831335029092536267841426274432939502591940686308895452524044138899616255636434856519500003741071308877042599185719796281978888397473976816054365174924732811768456541602606517439771781053789536054453169526550208643270801692011427776998551981896500859677815008582328792481794149148775687072322652306199980792204615785818732095664383246329244661593190433773148486543088618998179375030340906421402184910208183280115603986525181529658929542168640934543130119029774869852136238547289186367573797405054727920526554162210240828922934520676943785355340741552204361315258745936475879534121688169375367278637188700656449821053513403639813539298130265301374766722916474068846672491308885520646743317435760953144932279997808524032712252674845839898708935272335059675401561053297071700715411504341824254335566221913081021017275201196247435385569316718854629994362790734872678145873020046651363356413449404838875839238086136758983397281311959920820645693155948828841879379118166730428602576466865524244183628767327591899107311492991125782337504944665736601420736528492900129300759492452773899330411265300603709636908256668007206973164954796496490946054293071363281272993048268806973229004399363369771835009629167015443503958548695137556177198915175522384457740458956801488477071759780966516582259702935145524152253265258971703840037159796336559317896760635031016299852647729224214542738095045084125638850254570209644382490372158227658773169954151420226380079820162943906060492540711921372852851697179884567283709188981492349159718881216108585749467589311738208369005944258066786519618322348114734355263771340430108627734865021210481012203392231662758450233405084815655932133719893549489387396627987124358390794648473399545066030931391592601281869210617477698817391139793658478952290879760908552001059153987613532057625136056410020538606095225280651631444020560715121788420932590471076961494936835035000022461078209580143277557239566945069362503129748927560778766539556023537498449686475082203297557196481016932465575884676329532209055784345742396258490478958280270389737237515732083098249005549264003229788061088675224921235796711424136283595932052531103546569372690718528210125533550973126340828530167689096069177704743868264884066189516130960598764253429112969458947798802155220922946054483776479058010799196953596318312580623836752015921849040631375891742861934600736118427458389642992976822237515730975364975730178096556175742927375975774415517561497534127835190961317227127808990503509300555056978283463134177181710578225525171826817570669030571307084176820535112264702086350543815873881681095265339118397939617285437033709894144079131936647291182308967089369766141020305827796220903878762444993644445784298571218685564239214329891549989031930256630680928944119181867410143220431184783530665532803537909295134493827922746934953722572521094927588069912313597437577072053141468302310925138976929586649328862309129699349884513020999741224969517646247911251775667671317173781193258875540095078258170282202094479735769082914096202767769814435056199048354035822157595817157605580074182821092326466237503799706912800026976422555518292095225464287058884699697398282970955626389392460862378742972695668034692847435583396042849449649449756440379134530753724319171967779303086666095749698683470048563404148624615235047128933118966690622359506395893897052346119421495248051024502536415706864004914862652683728976622845445307319001483131875864231521017711292185668334580092091004334127845268211737830485528059128653486298597856734112080051217050306990919849610135408423533053396882403129460052888725461025033342949734243631658025912344368871340076020214859221438557691467061160591216610131913826742721391193453771686794862020353159792741047846065350632750529073517942169208069315763009181762485458203288969195119216348207831548163622310391274952940102512953221185677847900925557469818296507386375062706606895617524076947155850104366527388866515772005936540191338459032121511136618930711019149524609393956803895931716824163502499357639232742084965129372311894855781748583148203987364619634199736130012833331917444580737757155008335793762816079462793533674639725909568475357745862010813770135398000974383375269552398924100508084516777944742001235326014634118580384393904671938884074760859580473986045530654003102274948053499182074983412974313832000460996891736710880594297724927235107749088709426714152486332859784034174987653403660294769384651189695856790403805521222184197954164934080703098966106349259592581517917537215475974597541745142327999396843046035770320381817498500093458869468100499779022841192128349400243137534013519215344682513198609412046216308249073857865845504901965303365552198905484720593698250422573084828445337813010856129542328560279558409418003367734846312862633776992324815396910522137631425015966655948622373354724625910950826365680429977262481982806520616796865830116031182868671252702255355806217133381151746078086503698214351848786191381028107177097804637476301230762544579757342574026935602965610567721278216623150481683651206596267539131178096302336543955956769265091567609401068478177267746971549250649634804839472753784660794809686109384690724258271574529415023985570416324182018979555622591319418546227649748759149778042883082211885446047932391683162949663822632340259823854864505113849331676777486867273882314783604312462860972524066061265768580956209458503051498118855429395025430231108226528613745286277545732916908525402865871359215193639982569729309498369282315547118738952906583300909545041830826930899055986735700105915227033383312402905991587766405712912652293616929843078660442682451229564199227429325265468986695693695531171480197464951171187163027477618645724829438677941359556726477391585045767942908795700346084008859491242709814164424349990209178424388808239790335755311490891889572999263851099533563116777890114298438086894401450104648531374018708954370972063955771618207757238304176016449665967924935176829212133230724242855953737653495473973612957513794764002848785859165923632288728419802531011424896713761558959222416203989533456498094066441594930119039670120952482297600526334207293853077096255876444602143847029497433485772197539756075657230469085387518618112870206790185540489119573376506396864733931054326705308662109219872865904078842974031184503354479543385768867179667407602621567700640601515290627488561890468877882795992258534587762654206820403232285406477668640266757997070660778458638270254139287508072549974258781756913514396185126710810167917457256958355179753129399122094969893067841207030671698884455690869631900692962368954271997365801893243897404357874508832439264905538295750825214926530643705388987993877930117755463368411982979962197816586873736628353418691141648971974089976349450506356707252575577279220733322386390796991856625535771930610437646420445989359477079743233671049707079700152329893678712509628531162076591820735081746224769915618642207216792895041635566166522252917116443086172005010989898107684444960115278523469825611464623819097270223000164874014336532883769229038780776095902791684850603567339234865296604029846983678420009141801391069347741526213519404374580021342244545507959806063137965347944008579590872107340543682632807054654417085803191283696465952127891688750177339026768074666138289850078491862372823791744810651554783419095559912523911267604542645247810496010877265684499406363196808919944981401667797100075968513543617265699556310096371547289812633789938513763523374153029656745363579655673544126321838742331570943746619072669633459941713211043836425168694768028793732094601294116521271869402955793170472345192389783660193175061759267281978160323132898413200707024619338141204858975030648785741482347782771059326812910198038815172126162191699545414470485338648567228839423498904146202727392106840305119124310167879069657817125440359042733174163107234708649488681924313376883090963640180081434368629427026742032420934002685669759959990354691233542258629910455184023294897168362950711377163698881394416048611539784043428172547193263182626238720801768505077535319840923035769769561683538316438319746955937024342533743403741040946735508967694943675609243868505536611024407525353147406837440916133787582729332358018201392269901268648385264270157845566155070826697252556492774177171711660690671334014140171754368827434500757372768005496296722457284941724850678732602740556099009319618484421283271666463513828711578320814135390798436750802314124329331508559673468944261461807145973252890161109210335595861047150580762154873086223929982719710780795944623861366473045791903904357100042598911401149891958739257723397948795358260488704010725691750444649747402324536192460551233453972557844360787130984314123819119366668427877361735249023747352539515490786151326404994058856474998204328178389636696473321209309606256772715627003379090465307022852151489748286778864886629275121562555268085395697324606824435036494997783115853911314903160126716968004710398816330242703272669681558802616294117197759745562496918521165065891621594172733551123723055839776363753284982615242899945149204049748046216487085899155870393318273734776442017585954528483794580762016480257985908852824053217296102377164906537418764452597030101958587563575640162318812599744718810161545384393804621201955684247549772132984483086276809902394005316810285744775147693251351244944184591282398036246401248281526378125137254947869050774092007155429379643603085888491438539052473104829530573697335636620631572725851889676781837760188405409725536240948771029912747463313810926571232098443461717640710360787176037408301460012665950819905436689786524182085162037445808817482334900431174778976898217002916993532317423184267669654404431180207865299477770016704613769806298941623917458013149271392740184488330558435992687496952716580629118845884506081562115398108629960752029627014713850148602324356683600573877633890179345727507240859936820589698593661342612191691024437967027065450312271977204155156848630437595760612121244270723239798560187627835721023142841520314310960353852462231108849740093268186430934523672809875771505612333022953942431595588347499750823323722481736504737257608452581324588839384775534011923130539492311364188293259375182144485124712232627462964501731412876347929129295839714928939660667473023672396114241625634983676766099826541587894528527695545860562617337041411090567102825586138506579148468562838643268983033867579505170266735447270770044976061240141690341294562533105046290468314052743029517466944306285353152659685820001682321228302313094172466955132187572201188528560951861111659248586227380122707991557540395625993307175391825158427263171068984722538109914312172980565281812798460594026837019639487041369817514831914286931017534517082518585409944573298351549368991942558286789123098480669723844380574028076847498093408253887547893022842608013141557080440797247211103533250815079593917959157781572187220367287597219001150759575607561134618286097194878894107240094839924623290702630642136584993784656929147939116170632311005520396692603627958439438454837075841694370494683520805318982965523313320991456910318031931549493094414989691829690544793291396607560892014183560227780528547232663546135277405163961499088349287822520159985292556083339255162620244159168759564208583277270098100772750951407961491965854254094152168790516534961747882810416580448655048768398054445401068217100590702129069327787948610147986946823614465295131651404625667148307030959606605635260546469201772594775938600154189133005336259738593169503000722029547874364689582702587013324931926933533204830101250985714655135623149200551556651286181814265286501182244689361932710109681906290990869756236561514590242022362983095038888213179624661598566096177657605417994057783188535982349694224562895265921563505640787369201295021118168509646417732151208017101229294501898009337182503585417149042089417714198325698630841444656591608840043080940420908738846761362336132784063516251517942279907941568730771120459272606997092632454131243266180346233668373576074418996863824898358011432323278469305202376111217296438362536790663631292051272182846323258707247628163560652276657803324823314414611720420695373225413923296484674931072717396364560904065060959995973445806661327317110475993431837491871239980550574680957917868429958612384048181693443771378352519977910133807964668294393891638880170819567333519562453358672070246641777321298834175713170286854525383116168014945491329906274720215379522733006366525540821654946822604835593228853175026824418986018381834880141711086286964499232181861873391605815117480959128607889156125390774239620009967932097152686586237014396985872016159820339643725117475253954502917563003119385645171287604701435854105336782434867052159835559850046424699206807848660135138370298805442318677405336790435882867435968417406598926958694882205395492382358072279690804620982341234357727942431706432603370880019282269062226078287620401248902209595036538844999098007349612264239736465734535213680097997619003660389667660788093585107422248800034234860858603995513129272031149941759714062959119196518749441808047165137621833973050900423323786208199786362080854509002302439344603555702761594130458584439596265358497532240198908958139625706872543630881331804961368169177180083393825342746126415764051908166714805214146839354428536546936924637025710570656582199612270505137132331054138881947921614243680712464423783081942342301941095285273250390175851495272446913932967072968679566884073353992893453223422196142520240641702476462051213290835930976319789541704367266382553328043625793372149341509800418118692508434750753026529732122368848522072408880936725813954031057342787469975424045024792343303450290187053269821651825392794728192297951973151933608111326336242029060480948504348635548439392607365956180122724002372284361036545051942872442377871214352377851885144592651767747269453753418460491240101390507984849957429101670284250019743235072259710434260946461602917108445415777412861969554067714346991466091581818806556303193597178036185057839167791287325992835336417162764941157263591331586791969617326141397148152378427398686631263834655433224376772601690692762462258144900336527817762239160605078819970098069391885451688220083143042211437829415975647139137752306388485986462347588732559093796037428260832004391174837762347810478971996163217890545952672427451167664931621812836872472654830028814093308432019499459900834589794843215504443244009319725580267384501292363971096088021037506106574131848506366014846555061947659458097382704878342148083854414369086474814104371899516433047854493018711621139495881769092507215330125914312399216022336280546361639178794769730705739113321321833569131988387819578653553532048699791261446978274004171073746220735512767409956383861216157776583856978421524081205254658715830401509782468489565296242736559037300866156209777713648364970323859238112549192713497980836599142633347026951584574986787749175951347296762901277846932839470402192892107923070545196647165342810891105647417531631518966701238272800478013844746039458041836853552377114664503129269872539427195887681313429515424135110135377406812662916476483232537065010880772175120753950461590915020060790871564287036061875435135741067964423521035423384604814291791432476119173450329617918319113976517993481961602104563346077940022230790169125510476814936399481251994997274030865009608664449748154317345065917875013051253595313794036232521276300445238877866347927580334803216984014665971646253233653810448946435688082783193940452724509260845306555919448181808806340403411257682303649280062349330877372070401160193848647715833450844710178872077823765546355980876444026942595530124001989575414490711915280042420201924386993049960548596833156916345720241819669980966845671098667264382644512970834580026750386151277139410377827336464448279297446256491000767635379122126811764246859715692919219184542898382046583499381219539127728247374231468508607822994177866581378183162476367598074244650466541935543291707825622675001508211954021006135127157813167807082357220226605768351519955714177223939270743683706954915884166628754588106002864099170738546156917753676310543940957399345769242358998739279167609568287803036827320809414942962350566327425505815503755464516143510181674118062088490569953085108010889424204567515953285374141082804682117526588221737881870544906025156426778689163420655865171035694245162711781564175618213770459128043993239304660671784135778444871053489661226534421847408048503792781487441362713773127295383985899506243100525863619761231051223041842586436371907370213105770237053276996368567099880937901219478850714934137579990481893083813367230562347840438472601153640733578688784512195030740651319745181700706166531918566416050627910171501974183841779971719336580557312595183269392027195696780338831510069553001272096796007855692804823188259690350173706809822492367833162810375069634457441283455583744546870257157760532157766385167089988647665034075909055872848686852720468919428226823942950450303092422416763771288247273951188273597980303929474634411889623132491765578135248753214563464348053713991845769608236932719502392500496952148672702351786168331547063355648021227270927331791709216731851980485150312208102993491778027712909929829631071492794494435697438176615096562504525517722779332369920548654683677389463304642459033642466579603195528746732359600623288594873289709644911728659428554909288837304846385195864269302407107914585825415654527228064226178683601485893347872725388119308308450378269743179538346242232575033845663323790215919057776524909483058118752140099164000284550339200446667030650347570054053192308493050258911900684201374603720968383599808605449720486490483938229687163165552368517627417351551318184712414124916080631413832468740263001143354001700174322253232723549541676417504391688462851020916866676712478936488437126152791045304571452513226287838174553375468948245374594214442164662954226455471675413850702584791956696892473999744639969844953615232990244219797195442092975894659218456269916341543918296063330132643378049725017169686507867269940219494094510081637483970038196303626820408157741991565650091611173780216110727569340467414136833402358935718322423881589234866052007055967909515461007059141278142218316213594667547591592883755431153902705482184155047566198909094346876759991665046130446490525961425274607860812520742837323184155805770117321201116074185370727101407148326503671498303276919834057201736938827946680126144228118836558211364651244324996148621680347357187157278878317363791021764267699494968665323233740918710399868443214558179763183332886108450442445483496510809074206159874808827730355854869752136610764584916478413446048340372506466851650152534959071164101950745755065620621320645244992212471630303144879608247944504417771244131655064493411692267129676402216241217090692556674188793802735674751644117120007756147088330155314794847463646869353362698213078709457221375981037720095289393582412714814681755137102839957443816641588885848359595318173086298866687536092181215709304679712184618709655998610501002173402700497553238244471956016855701171758418198768127805605318714035237683472476403637559950004716602959955100740189045337547199468439571401393708514088441356049575133115571903686733439491398618486033360729931157452684462118253548410675557898280648531422928635376254632243809005160848778461590336399592447674502342149952693572708657007466909138600273064643014949348008077959673833551400000698832506093283192205510530915458458324738260776188649976486846791955032551045607812885368351662586944726162164395997321287789692274677632072564451562414545425088543989487621104072741463919254101999934922406293542358910546783454838161673136799216583760351431439447055983058117558252558501724157570560051794156765938507347833040540247319498030318498178093665161877912684438728133252443988399253908736603710890599662682565593243365340180971487926057341896873020131113959596641958781707906099909410082296741751282174668554618656912667823785762110972347207936711923453545888545208254269040382596982843433448580104096245817936756144817268201899417579944549062673810663452368515502473466570546813344549439758698638359250508725672807754003971093457306615834715992061686027520978544452970349434225366386849761668930775214255793025424964578883131511473065303959880467969908906142913242016245761204088148736358748767246742561705662333486833678841021410320883296247598955949134016452937120445427774689234945787113734630948406904384635228470716196530152345814144796074986403464948879912990797549336439952594018378920253020572929339212200000707842984797632061691475438050034853241385503777021686791813193052395209201566930368976506882097856970725222035137190763093731956308496454245887265945480709736169022558682643812193958159508739469817895422866711584830885539349157439366442709598594320467248229282627928730458623715137772754208098506199220374589690353299877896035529388001723628217466764293113159108264184104704070489190218289742237639065045753906783974391841039690498274667764616865379907730599351620997700502651815035519605779927100777058694762677675578308297907803882907545568944709168048253515069451871219827751745615434344411817193420577150717447510049888290185479818212713741413330901967792041251392314436049317881120604634601249913106348470904648360539025242152592847202139087574064332107100760692669322431024063807464124561652287602143218283556760350140206887755400709888948879075063444970501956412111056803273525436095487929938004657292735241825701864997289051239552717623614365337003228772656464997821904271682606911542793840618796382150819318810642917898138973772561363134601850564862587481800083801822927771674127093605705444189438155148100989089155029922900174948408827350334149564362674123827069470024844341390165974272351723989045022774838764143789474187723096003100626804667689828160736175376704413745346540137206766224820279046515428965794947326701433322729492038590175244600085142158637751704293778082079637821767897100127912721402536393267242655803278255490703948084443773344758181367749303683569443139678816052119621719037249650933852760214470129846734179901297001675521348149757980610956172628991201948226286540468835534472367642531168035713766194135480548193913828332247049126423274708316459308135303886549146304727026040930704240290114347509006956465593956988280399543749117170390066296186250840357181400629182486840082961113641081614528073180961947213700290474419438785916133833956935187164190292739152772554102601080361476395638945753762765462317599538190777738553822456733105002789112820957980713224838233997086173264035907693265418467893131883069925557733327613031623286919712764499220091667015666098794563382617239365068266582378966175618267386339201858607089591937641596467458652997693892190260505949777326102448108465229009958677338226240184032079022751970038340077399419885105830504095450256370961607282065258517650649033551972820250402428695459317759041616558642737771037115915069736628233807696260056020889460781236488531736471450841415534356920772947957428239441121311728309065090432870661712729797496971344492109804236296779142000735716859670030079541065120570886508418771875529511321116423144043407557808870873198688206762916554768799238584477187007813313521322718443422875171093424100003529673373420462024699035289117807688619326906341578047922585323201725940374593335666206692237130301899745468773566112672999227928292586451379650456268582914325508964544456437508292039527745824044897002144956272976088489547067063536010744327576761800907054079668537126894534593554707402325212163990781631423444885353736077322041588492928507291159071373460418049530501839603564969516471118199321125218617253669420522721850718364746892676066665388955909715888415898527551700060197837712256303757582397525552032713544336763138570042144942738265291254726308301029334082336190419158760849855903688981186975568579370154394999109619702384607816942097409209806348647523160581507116446810430226949058904705417459860276952383687159890288790774627818286442444647494297416055638207542345022060183123098543119280943092767122868842697889779430244692507924924496939552041526232187332146735935611357413130164663959014562854935305970268455362518471292747348331191694272914153518057361846835501578022031007844066553217038518613026267512178332428736406822113097837777888367349182853394613965700078139590902074100584511456106656448818676561701659366551426240229979577555103668405346358673160988152055922307106046861856925984016639708628008721336129373343850238370908379208259307308760632162018838570706461738342919218116589949552185217954339609948564561931095811096172248342120103868421471540075809679497766456961021426208623319714933656893435634666867353038343474875106073192776432371225483787965806016930449282841687011604483964087360274786655316102858998387887640935636822731311986830814153365611695487996686605487689425925306499455682566643870636584541815992898234266908510701955581639013693974542938628577244645192291985477239308642087827001385624760883414845206055324853350588870348056209113275936144472175043181499088546700292194551451665420943563853821131689148705753644689242943691768785933336488645131958663248483859051614430421518815905783681810969829347711388129286950247759973645425660852587774878528106919613873416018777308013374408859941653502323966363834089818867520864317780430063536913920910678422541186063084270804560375262004507674649046605604358040580218493488294566690550589866640525887236622862353292338096536204486878564793215491530690104683429635284312280682645107021374615035860478472522941889368329820850425284911366089048150130015784742874202065163040935954834157165684574235926140635296781594738824839626389339240204792089184081438051434294932268853685298188653145805005407613217222292384535149779920155748757680352418247168609170788859277117936791091034653686836891706207368416929110366398734653917715498926058756098262043762789012567827839361788189179801132143554523457754846151501744323854781200074895365668134312992839909577435373892672880178636975401861032151743265509906011931730491979045453381744536749316469122995676171828284420360595525533889838928439760977198387066370322580601333721015928544391614669000822092011124486752564747403133384775665969686867011064743069222278414999507364785153874785766330773345289689375132603551031741640668108988645061876368327302728120051537449101475282777822147279988689038423144603774746115149905794475118521398062122096713198430382828010405622934105339999934199289505393587181130729065850529463689903389161519217399972634735152651007516755643581417942632467198041490848747382906086929044724743778142883878043449140425500971042244238478885997939882611129349342078605179882534265703610616163501581060143448098600900619311194862153940825548054948084680181162570005299870748024374207482706882806482484855142976145384779333925105396508738960335751366754231294921676171612599397935169113952674573155847299335449915708494383034065143451476800249228865233839667238547430057492225318751256656840652172765415042247293342244860779407241151746604041272951877636533834060461662569111844683863754080559347190392479744168917232466541307084361310035707435937532426738732336945191802247224264153961514703598808260955287866253959453249886808103293979079251530185323123460680859986787357651786693085460292471236194598140508972529438014966810474936630362594267770686224886120441775852836115235068450579872697886542204574717787482353939454766188388618597067135387129702760914732843463865745839579871068020497841676240396692685717814162504921960187624910556128870693166152761075493952691378995841515258053316171158777627188565535640186239434452606144178749443472507282125276728879159705315616753777853773105718792331852303821440234838829465248299465550912730369139406322686519143095481701603464024197299903567495613234648550847457127653672074920281724078714003221666140118181892551927843097473095123647574544891401595939433005711024240928151436359257521637757284836823769624146297117675749677019867311636337457066043146084015606492070065867197085996602384115189872575620108722917925471642973185273022347652132423316162042152698655185347573930873320693199828320958750550476925227662971945200149911621840779626588993148502341561047115145675054286714903378639509257368402090342478695192323677201544698814889222614253664366567168415123484100663398427640135407355438712473843887666343303351436756529333027619738988634150601271256714072564373448266939253070787422082919000908527114390039544876389477574346532714457181792993703911501340956111682363725668134558423377456699387790652213972225769271891130226802830001533361449261006716162783210942407215425467907861126824597953406665531093135523940543471137543491230668855755115923228216639668241662919190751352647779468407450890582998298459761695219383439758596729750606401051591938994161281490271710044693918662091881035158896717903825343050309703734750277755993385180057420124437240082712995367543280385104328696526380772529632879640420375959034593243779053858688200301748126337394131989600748381320151592997263303648415492603136593413009675148730601954511568891202228869742210471862394339665577843600905842351808002449349546428077653997102769755612526486304608397685653185530906581366293790971180555747515665185619935230533050868471226622111937149301466922447396034577154217787523478693441047621236542967105059220480224745879647928221115945321164088646406098675878707348205477022910663175137917563452703821851975276724852621857672057705674003780098363928905308223489395939151659501524509940975728870193373583167049776120628044728345179389531933745742167094897442835584205992111910224357029949779299860607229671554485530088336984326340965987387116153770559541887221308715589827946530011579622115359385686675330278303794335844321036766509737442260447012578867703442686871823122915554134725789059559389773530408883746850522619412880748322945313340669781357838201300420280324001627958952786616716001090137856694368419479824934476476027239558856352715695536230674108609644364119765740057712711658666839206062672010137978693209337618259292279243249120960183343936775299465761582741651854304458418025623362098540380225106104397986915315738680360041965489927325382408763128193725771767897099854516366284087418128060121331464706620526190850338152368676162042025797713356003746139470159266180500983319655056138204128666118446371194613060070544870290411411288175216610574975271537779756530342875604550220692713798837728350891368216686112551063711535021703397839671984120647595204104124501202626244370573043783252162642769317123166952998625340422079037975800685542640836549293267383411573097112334750506455711503294636999592309648333183720992652765473930437869254468225584974639110736981464992833056592310320646459119350726300102504576039171434160471504747297462593468096667917859416298844796699771583877325971341529480854932736726832737428284439069546949222546719800576024574118494448025719011905723784828233504388646243239228463674216874899163651481905114732287540613489563552882415377013935966466676074601079217352207639862215953517354232557025846239849462552604786358297679249237463687898010312906435313720690438398604695128081163740891547343377510620048289838485928816331246411317460291291774160601848300182244720260502716562489818179194885777761728169002917768636182159872514423626364999743603373493749570997850549325956492135191177488353237440877576586736228238145190350019982285287679938937048249346722815606541668185515344425064832129872051753060247577651269838028921444660384923238803234394774229531258042601713436019306561673948053826437667226616515376603514769256132813311492403015623446783891308284070072695569107203058287263790646765925241951610758451142896809917991379831535502662160236498812219237067376453847315478821688738399962716501042824773215912422910144231616801674258747662319242422180161653991894884191898659042199421967823323029078608854149167781869603697450886487971622853879057853477595617181057445309094951098839005436128932532321050101019799284185639775682828102085565388581858865704289517758032415083851812683718855381092224908657719112410184192723641301701528129406332935865080272828841666740833233695055624216018105723795744656425742200834725117119478863804163227751725086697375195582547953088957263616849252825864174073079255562794425551660522044676781609453589160741150243426921619011638231765265142883621953109032152807495504394068165931069377313344617808703828115089058262922442220450539097251139208267064126751100006899618056021586742969276649852023308781872105264448452291748582755277059701604335042603722259222530718956882417625533680304465070672643700899108144539859383879850263015553277257440344770645970823543530177639621100881094155526358830432404157029068024422992550087936234465960642096891904797847252835319525824210903854584288175079126817057625409704901702905131268144058593482023726100317385583476388568032870890752133383687721332966773509668824571051192963936678788207854932433777879368582289293970168558499095441680188422199178357387793458306227665518574418273579774922377326842315423688615624708111263444914381125697233431052610832811636219964229555845059532925716812991036344158996725188938235047084612102951661041341578511315480720305856466755797818756332646405668869127561040835497810690436794106119076238498548757445519284905038191987785497638325554732664589661449649792478700825638098536543149455465009747678691566991174812558938910583677378458725777135291220661715697248010534317668498620901454330583699030492215842316311747047235904117106785250687941909294378612170041496503807093189140374618282728872135766333264397487582740785427103516602507459139988551514464388830956137852664387458621468732553017880380728812484586212843904160193178635202113563658352531866532164219943363975820025745893017378724099484373677784335251244570630773365665154528065847624368612859691863980218020287137798130022900071368216432561037856792791000221208880813801371477456761585273646300504014880568769991659074729441285575819934351951801442464235487140814182879403134058483381445210159215695353816833515712110493469243692063777740000348600305260998465326567359256936592742075585767941129853828571475040257494081594050005898483375116136740483761337845530529895098269049050524208540271706823414463841303018824292971754230330042832259404861467174877384748949701703085546898490283674079258174929975421549105463726287292325688193970120477203515792235398039626435571146838180783007975611465269328179795711020712447428768222200828327256747983063391643338909552765952393192144857351487405510925628881800767474551979097855137408176710690555155433077161912970869941500495506335621759215282379932019070467558556935678292822771691504131598290388114082098685332972142688453823204341109196957297347763692955134172289529518795661891740655151004457713297542691223171744899959548438220175325032663457449340524040169840071478940499473167742557030427883766816961089821835522642609421430254473763122479208001312136059936663503252484387297834574688807763187942034981889370810006986101873507339473871204884428940487281612719479655275687827649826940882135253139612206718633888189395619514373626046216636865313962017489330443369703845671306744992689549973108950724307516358743440576554443177587467718168241048977223095364144605489640072482508104296654839529256637592988357617236665353252393778929059758625054362687470592393052145103335543964976297137960950092986748540224054154559772332957193841145504746044259706641067357647041326051719705921972136354926662772204556022411278425370010597647912644540215704050526729214027946609826836744205794244448264066377996320117532925403750418169524164060780461209570423440633283814059503391613563258131314005112267582158799211720301286521960324351618267093078675701627340336921644328177301721553352006964579679920674371233408030078526387176515118615596936349196383857374160449024712792985514810867779632306468241447511946679268991434670173304198610133230794570952491869679429553081253133469404117025693408466312684019123052492273909548671966288736376032363808154694030906311785048871278538580012853140783487449207513438043680422247440028186870629795592081684433449443679694694348629356836748434952764689348594678504990036610281766610224052487106680432683975059693691184171358245388093460696074130576571408471888949599606575110555390841730884558194562820760572112227906893820184025219058981767855487393911916483794443326326779579902018348580111777880336675451301674110578757088486587176505260958663657284868895668914912475947405435685286411858264869956979154810255569717397618869782501557384187288676155300665311192744772617680095549723300538602861036877814800934154758429456900678793068484206298695518657624233730436346090195843059653208779088898843127464427526042673972101746059718681876963952751213253084747618681354634164832580348243520379648353768626597551271629503725121597566553736517056878671486968281918410124498008604389257093853764872496850241987636741473710857877349886803417395725932057038509113974738891059547374944886798237882825250592463349801473318963070930603518102426826326827717421377317959862246320062617298737795408241875671034801788844350236026675089222594031009012586422482169550423521552188698635367289252039010174477957422361960452124619034603502871521590760932123753324821718608863818705021990800490168971745648204271615236954123630579859979207191968061963939698141501760669292234898001646496029110067405997549382503630734548705848556336719142262554895765285233049391610906849138857191333634528782817798764257475142881055961809825833235017926570627700586933172360016935486656847460397270662669966225258044835310913240232361335394970130097123499008199479999580190900236677638438716061304597324084268468720968882958161591324569113849767630862980147046214110569039693842914251659269503453324875626711640103660011336569304013046536105205436336496712601687682390626314798558376733255312918864355646944722244875863119939987672669458443169599749977617546849447180634129120422648326994208859102867714179833307204517839034778367497392865314825431420546794645576882040859051845199194942865803774220044957851821441090842610075153238806076580424499041551631698697988486136918884693964157746782425715027488191734275757410185941460605650919994399919122578663448685518957600082134071553709336677649019562550006195414930666605036094683939222139451189288295477668580279652382100640457133295880154836291634828793043582567827702927518259008450728908531598668907993588853542049750060180583670242478901859195591656113876763281275144858769198472775148942793829123455100204183878246261612370257653170590996194353956432570134777710986661366243750038400146845022325453282277770886740276236850470262553434421817587777338271436526483010641393574428056736716325562652911382133754812473011342064988834277772617498394145985109574252549657992376962641583916706355785398054716348978579394459589796581081716811269905205544718195897293272658132696277786149113215878404586429619242928766942866714557527526529384837983371139645069644783930239544895171061360031405380350404587551707085395843775207822780463919227847999133061058073437123911776232501012672269314297946888322049288640448751610432912425349416431446145642311547456972905835611021218734105963635082481694052454087815049991836532530500418198218204959833532843482143646253876588327097687188866090062989993461455154328906398119150257061262454148009836038003971873259464280168265295383058894993763231022654489952080432164371314336754743334372515295551220801418864419233542906537230515251473579642472659497160365097931294910739392435241245165144987336118963986381113064270698824055001873530751021484307556867946732421948334480465382594583558962381417176530051627141450683339664136645798195460878813199751489069525700343202255169745174333146470314381951660638587977731450420530929434013739965959850559656994869249464017286456290070873377209310113367445835963995911257310796143839205235259298952473561006415354651811515512679157767357766175116104867488499094641963232781260584310201386033335414632661795986377365511044484437919022940685956270231113448200183302394258289443141100207785830974426746390215100866017431065473966605325171374686489099131348118858042849052808352986423071863304452231590661467133926629066541241655195584478564485462139291776450094820819712305694679061073753866914923964760068498578144281123836734819785706824666655199186496083186519719055531632090813109375613092203110325287212787734979057521904353374538566532467997328616823393993523841473314368900286472243021414625940964019349902621614568966816607010702664130931871135448279112991719322956690637682906098275622877737826995867249000680813003678177205086164597448146790689415191632528984015607045272657834505609438148880894400164128075409210661268621128459562155946487621725454042947569195185899340576687899868699230389705782398828647084360800450268475606762876277902150002642227957663350274574932070008547166762897975678742558392072734110595381710978937665740601067640236741852859059064354528532222634209797766427464644854991593584366854685823449854001268427552366500073275222221781586281046938763030813669685010979519023511341262555514646845678938337007230636046721702780600109780784054584569075257632812528987464699525050246687864551859554844575362870257385735360043226076324459521748690263841895538696861542297307509278582479300320406399696107227525639410741086195408973309471510940744232427393381800553807033829251809869679304177468551999947307436937616925988543274872408974953048676947443111782478039023248401157530079200422777479815331529295156052821314588793150998462829594347830285716567794883535276658076905768299573789858866866301380697181341371912882180563357705675320722314193643992552774323273133016979804895498532960586593535986763506147040081523440268907369050491813670018400756756709101393626279283597664186721589995374826907748273841055679971764518640367698907989899947561171609197307212514116261097710194209539524263289938939298049060514586072746837328630270076324284860911899995960858844605853107581067713898116276310937414479275920176366471312695875182662579177983346999727657501322829699069503124298083309293521848191975697462480545955090457068070709433569105204785406055564653086096816316577091488215911368907025825568383350205822030034846667982745455957457741483203947869960594468406004281141089891140477295489500871820647518316495117362927960109782215629983411031771385256584867918783881756367795991709797949814488414175843708070858728728216760516356604848742804118470815697420669854567119871139047739362568937854277228946881623537344762948751060483083421163313037305970668674683623451348214957160507290363636543634599722279428494931307837580082020622876900117761776991229582860391196577343352076748017192993766661072228439981167979256055160164984627141391805257706609424759134867762181390641548977413145369540457472140013400881590916696964392603371228465236596151232842280085496585104861370242903276930611164604427539879624233567489770537472076712485734391832370262226982679216174051604829092066046571675567141309180226294750817579628278892657715520996241208852362327103382166076982344347865039964965260334139214392113152101757733556713623662250447058254058965398926675516955385983186278920365916990948956529284802275195329640995772976113756785669419528302957100476973068963059747654813391687773474403527618288691267615688169888418896242063880632058845038484672473270454422999887945403925479266217879836236552468072772478313998621424996652015672216548872039216250916455935881076385935235285223338639172966497399089809055290828178218207495479549944842312851695467985501497351387222891197601737745645526829858465422268509883231008832600476999905605637654286628764961043160644859280710249920773435886088449900435899443630467428284577350777353367818901445389819889857091982798147190818773332045675840117763333020724725237246708652642412667929782059602746185992921533813501197059618665618710845281197555026825771477499514135096331294046020912416800101440453811137242094015300471285990288544525502427363021619264181594535502003963234860713008315494366498227294985964406143112546084238543776092997601980588618677596792013615563567717231352864508182919333507755553740625627634714511642245604347152012614213402763356950649774722830537936524524922916285400041361780074258089136517361943208557283328713854967694159551350339640943692152689424179659206718272508885588157794650832136064157791201777625242491396525995678710707565451115867958252972790884846692629112057175827511201454149350812946024783181148276252896963555832240246379875226183928025267025581678246210237405810128352597144024314998213402152888591897686286181919745051323092812834731424743734470913421384047471484324393097450630054993102042887369807260712341402924459431773120077610180447405676126687526604733835478451667977202545478836393886723596831680349077669224737125140036423573913294060640787320850357236298448924391156201938151237206484530199787810265694399054261005874933057502893818097104565016720835387321807419678819122071876243186558127675391182793635146462930942298463340059240094437434314360921419994437750005740232082956179959883962545872592396862893028183966212536110966254136341108753929054634132891682883389414315982652425387070389272223408162200113680386662670823406229997500898031824846609719014389759196564733634101883890928538573758244660694030242956658456111122751337127030526224218963627397143715788422360829808743385580009755488292664538138753436729663013730721246092992974434693914065144563659605511346116371203843075989672245584055221360061070121449335046788960122463189891957334841138907816610446293606427982785587934433819651402131390268043096156596980726850339496465816505110491816708826712046677829247551661828853869424406407668917673983447024590173577898543598198873322948089402460573932471555317549040127509976128115576388490004412073938755127341861984856116085231007846374663097932933773255532435848451573387616669187044608909196721436106120964088390836207762836939413331786061276770962540652330267102708021749300613514892242503451076418440208622293129150856078365466228884162733633747405637311349652721075071977545496979308201591203991547882744787307827536011247120014303004034719113639780429481182669004158239913582902658798017356316270472685554787313126512497054139947199145046316879015533179012519817371356161265062398304211391797142025452608901475999613707641233675175070100860827271763230802167366854150126645443067441558493809766003727685380154242661212030111780033156264546472062202218971251487099833642183319918822204158593480721774726562308924691809236784753803817264667227856578614888800178451358018922853378314545627778400087394541400809543166188919333272425004269138805615044575379791874798615911761249301209735457636692477340430683322950010625654841574039009377466803282822298649627766332563059147902383138126229725862573217990110593184894742376143385582122047567811168207846394521302190204386833256660813659504076452648539713720977098685654625558575028702559811888040076609420300631771955192776074931363103405951394874567888181405932153135777629853759348401190230541517248638606917586331641790489436276945483159435826662743558925925443455931774976593947160234124179541001188413996198942521354552545443898946760583556011668355481962967145269668480922363347354718531531229893176721191570326810577071218608323553217518531989148883612029090880927992015545927257865508317117106716637701244715944729746019855552449364280612931431948641327598221390153633093829501454005826447288691039082983378518628188172981611408183305255047196214765971665213118580525949605309308561840609363992909008575505009073843023252214832084555499900053816476374363748291422770384596631011571504920393007221406251657068089694864448244831527256035812822274272697672354237013579219518849717203578210083561379262199246241430788152061302907933686627504049531791348614591550220294695579032669218331691118650910630229427624201171201254304853544523385962850195650066310757876086441502103771641016516566012442038497625723046213618528301227425521395182223601525656615221035165169952557372639387191024975030583254821972944044458894143827334755102617399318829208430261611038789432721460683070236454580461326192578465895817028293082419368669670261324771440385920118049031349464677579008003104204969839018465930648072891607470845257974824548529394239605154942036235969417628669408447213779955950739549545142078097045533310319920764222087413914958775836139163379396386499680370960173500262030788134860104462418670950342758480755363492770474586924602435709872700174554051946068225409854611884389943778521591494940858057522995105249764597486701548368117031201389451061493773855334919623221881589804637862031543364789520199508407380935700999804215898345467645889700921260915364013563076370429934044224097149405156557565209124022822080071325995855914262011373015874479351514203760366673256841861783213386752101356462873941950565561057717768379186607465698982877389159963892122969856943377160617385500220792828876236536320304881132242349586936668101055312214744541763553622484290889527801422759682503674557581911706499715637454689555583537511132076000524917716274972346385097753369654440354270039133776677337654775621997524993702230496345049083463492313378486076827327269345696676476692644120816329018151710314901278400503129242512836416899800732262720142066797536727937229294141567767632193963948548960285909205652977872697813615989175788042673300340929580932581958990993386063993052212234300590160057557235711388209211263984241774105416016047653039856526961743670492019182890160826953559994980484619086783139461631633372004193162153454847918403690495739379705702479243713207949644672239952647835250537912044808423932104044211487039546771290183615552290908893537883386659070213492411994615908725281761990113746085520517932887020483708150253179638326386964271539300422568121540259323955500989752138820935040712424367822226343909690006189921900186166645490293732188511384258889217964134861968667566733537663571979669717556359196719304392878686083297201259244854774434782648300612660864434990000757498707297221795186765558936986256995332784898514421808111549940480579352719980367259907001763252455665054144097184475089934877761488703094341050237143497424459581418443182073782059261320644825851899510451997236341881862085202110680188772098527023352927191741787618022351354323347172371429782046310536308346348664300503877612610107683980380312552248943986784342166870511024428124605377750373109007524879452881670415997949218869700625152793918664457323572331057538449595835044450142849506092150906009961014466163306917141701968367931576427519683603183899038742641725181876027701504757287483102807547866998453801029724833655043568644303091552331130440402724733415780901289108277137572320649294733339277808022309282006377149452634227819523509947442674349205907457136237556398005058775247350666917383487538582768266312317086787005630062182810164528324729509243409869622137184332602553263019901260678038005743998065266111413145602289971408933160607725278021876739040357600144943895555537939288903854974960311786518040139625827077777855470957246810263795313810992261798549250302832902295021133380109178279886328465692581780803061898719694992678265272407361860157536640994819477017339352461516816188761344030749475029974919491115186102334831889921795846576033880070825279528840837647964112096756325974098486496573894664391992513000429542567328483302085558704155006557547936750436207680367171190339696811426082511706962511145051541040682149588964327379627786152210190706838596574071763245460845460388472426332197233060011570775244319201400690051027226437051019036333627820916944064612080545320072409574873778884208623906614199783994188510077350311826330369737285545852162337719870961746579953493994129677203231669140806924673473244197959005649481907625422932926537778717533748460766007629987820243804583031891298695964674719555507718735774407671077804919053827946020749549013650827183799997182906348007232012710175669595696955391742543249319020615190287761427155928053773867719886918924556395298838513227480558789804504298141268791411533335840244565496235892006456505828299744574976302170190262385659154269028204041986482529076472512385333051094467050287680958822655921099883030338470874862166150653362229832280492935679461900336666467673662424152133192026909941531280593784159093347526869776630690750765480702159604557226055026358704409972100995816223575785223690819970900911184677765172657353353325541471227326678701454250002393180214077183905703103738723492291156219703833106597568497469482497698876504076253005807719226503861302276169677304919783575865795955223825965329257077259455282462289590584644877356181174347479731682935054940298063238397935270344137641758835364230094514260361356450777160561250741059128253623246430209982856978461853552081856213470121683340730092990939948775670978642691940832057962352124672034964070823181443553844488007466982527937259742563886149763539717708858712620788110518862090431415386107133914566812801653704587827501657112634050343373016217315692486485475478893956364015771941335951205681506824738719889277507291788613509167513133893097858136890281827636856328186486370267096468674665298571946842394117053036580313039657859559884699057937066799449638973883412529876864399858425148197182642458819153522596550967406031157601946468440503013542932919958740684774650176669286732437907282820890620708536815274391452546152572815427556070728349414581595771555943537469450984055604836819545330693582671455186164995907111804154830817388883116765812703046249174128400970632919277976482147528651749834488957197979635347957194802203183389357781423368305893251684262686823993597765215793494928011219971227697491257835316883828113954313206984636796526573218184625611339122436103044311104778271832852158085555747360204404951563052065199245672351784171802622671616415562170433496766610044371414271268794216782864229923080305537674307218832166227456739220921141557738660738528376278801125995285377050663003603716663227213234302975468019157683162479033212106143276669397841515717683249961645666145228761771021567705457535227816903220348019192175559263495234415923664545847840697065581345100504479512918258811292334889771360962262541703194504585488146580465812770679281445343658073982208002400340706862928887694034750382829545612266071852279398472367647442372396792904550168358457172808921329205642434327476993959611200069588172038200084635243382268055833135771801873608079432905750518163547548729858338076460640360000546080357723836939132654715399899089270506281129282397308370606299091562754262419571607049436921724039664150787619655544890265626540617300438593592789270227667926209112549468154157519752983519805989685880348611141929863929042355165050013378348450230314996902723274151001894919849944490429292733335368653743497875014739161219570220804376709251033024373319684346104877795999721017996653868987136527957255125634963767867748357368137888162557150416549120196764631697375091156570958991367540697401124376922489993236155727326307478541937494897043148938427644699135226866024681666372323405768319100534610049704486370407848833191030164326463559618091879604657647076334260467993385505510210938283647452746833072399442428583701479866887923425551525176299133532245295971166030811025044290241888049671652033010339150279027819678650664998581809960918988871378764677777568302146565256292819512550203460208900885885472685625252622530937497931668478220813711333515845859410465179351648659286109286824146718576474988648450077000079976960684892901389511580799056715798759454008468082648310039037498303115389438248712035303800836457882837913134628634850519344548117136026760123109510536076606588385091143254735970502432849763513766700972528055322136880486314878580081077327588327380431106312528889904051723945108209343593394819718297748802866606344340882358136689810688345145196617496193623109345459739601705523694010116797728472683323025322931572643443622922502012995974044262833745408030933421784108199117945392660693931991180450703422194122775293079381582886209866335214101915913559525409884401639751557833398129344133931234370483680014777791412585258361481283628364884623585030356428771974091159812548726499121927291687050242807217787764861863097944833926818501455514424825504433594977001423923269962138549633099934513911759368380690700681157714624932889949848325650572052650768524852788789259073223082987694505369768224806927162935219126590104350762672948457996855536768519986214730602330020914367459629887433789624675958372081732738918176897456029132143439615609087520333007936240162257324219772091143679006892462511818803304181572883633002108523891322265150868638238311821084088154509976455552466139206393461936715481863484078220176387779909767048071582252339542590667643401162682761267166911090129982134868957683241050672642189830519746273265427212978428870359962054052952095450065335139540490382823456774076974312550042327596588366151154065245958909708017036963771012901206393135752470434078224333072354440502769256633975643100979541517879999561815776233134162171291477929828191010952396236939384940054727309445851556616763813409424296363250583086569129897292961521033650279674199695152166173493799228331446940814609797148714420790335826602234584201516634241589448806468666974583712008191833686767339029155647029477185257370628049272903368193241333145578593351080542585550874970602589418860076137889104275108953745296678611497131115222385178229109087778046623121283545808771299748125562094886469718716818716644653820105496468758413640216004915481365398392456905875127619394808360808756684060158516501832926889051416256617411423657465812093041832060827801184822065949774595990803137801335476187078912606203375598160578041249455589958742981528704612096062198647950295460963533374899869222918144487155229993140355784356681654701282155619843630262879956406184032260333766369387658530684411945006336839344874578194638594140267180668527517899376716223820157957315861358717632543704400653955412987880200475740250579955714193636657229845140392401923284474925849705505832408863783670564034241450308823108819254439253683186893304540634801240341156333859522403752254021654997101083355927773389536556474315806860720124841454389119366950852258027621779483120550458256446287043073166836851258835146338104710840670421909017951046834406537914804185508149116163001114047770322037786698732251582339104478182510170541515371713491261694128381104455836984218493228954980504537686281540966454389530287021212223877840555312561505367110873975566250266184791872845510963400497699793857792407456609433491952665569488019699639041433486111410033759831264556049654126729260439945418252028041634436377583656115103023744982592046972337762878060774757926890347590468472236497292193486021726477973835044021053963572709567319611730360779567354807264271566845008866210569772910023359631239221016039211028525729780522054290735039462743384436730258752693251643298700542652862722277988446512893570883431744531535166444081113094173978720400121652846152344543711622117844941061209495340180242479971228457214713758469016456779873760414656943563813840499789354739402123088592553004178753098837097104973941269978013495259057161211410435688595745837190431925825183119663417075923430889810829902513524588949898098464409420128848115784509604244593382153414428091407255484355862859142520310820076931021821888310625601994026689835163701735430317249296721541535921072828884243427507710919756191940469664249478973511095089769327571390500425075419868251007893962978447757665153912302603110617344841837998763619632302308454965728919390248916008489899444482321643887845000248357875145733106012013580095592308775185218639043489672115501982085649465548253146837004172374509957418057681368372151187639897343645158164511076801058275006600682809462334164041493125088045383452354071476449895284054436774513325122381893106009592428993932544309521229387836931198267904753449980802142083416127922585032495042597617204734699230811171670926807620803956966637066791942934763893312820216630284213902700683447792684669226509485881977945571140402946150667072235305293009438224635547795461720594476647828028308819632718688347809149578416409716593469209134981278250704398809679436748931248930620445523751703432600333317327315828257560855996932178675806904464331650089678070167104196311202372582866325930820894868513848455844020866505673477787603854786246976664134262103914986643058329725543328597797819549886942918869184447236544396423375950291319233969086929433145080518403543142537813012897650624554427970691958366916604519993965957565628900122805230370856320228416962895219962606430681147762212818357097632261690772865297913320389229751806993425407002589983028792765212624661386975707500137779963633260666005754783115316023927360554492501478848040431065860603100931611950789822358423934861949344038630666218221646766776347172865036999954855901209464608994344559063358745245035432732257685272842294380070860224916070338121495462514385058611314174771304834638523777681445017258910769184736636667441514129057742436617691705906530088121226290634526518444821847782188043844446940905121105745720842687838462953346185652846383361484853509353603933027811412483594657366278130365466106377769729517365531257338714788119199439906163841677291046830407574997396238567487299409126682316890596120683743669895148479726983846956804694419180447202809902791984374201526477567194125896350248402168610623417115571371435727954940926020688238129558995857061516091269202864347349691724601843246056449742141335031047376686453557753429946689992943450211796735135390655044223293457911292339193188503830875691127434530858583592473091464700983167102698646637422354016473796711116804582132887080418538514121328839979575762571053120930716159675724451435940210702307135115536284739155648652553083144787450806629879513265916819365723932984023495078640189839790591117606535414990665799362271096556930459146526585277419351623702990685850881128372948072285406365173685303625626096834471931784654221804336005842952710841206332153220614159330524141417375137264683312835497142710400098598929663300585792757115999106636922130400729644639479801005410216115090270380082305938779889675849037961900170172153505760742708155584439921167873626844517927734320457487233433257603271871820327047637844642056518682457803894919393427672852232629649895603875690439316500525001296571946754971699375987743946560840831482588317386109084817703523276457296039147062774372634842529844713000396486708132411417079431670703495934138573984828137943158994067428808300307872383183852839202377854851340014480012586845337347395638945415291794344425939129050756866651893277999797272032361158761247085512891398112863805617880207151270829688565433576401964995860703445167431897265414126262697700091319439595120233253014337099743049234339485968540474225913134358563513992114900580727504084431946635392031258661724158136674885848716732090985725591188009186462806443259969128524686467304129022084525851590442369681532201962143982612195014982669555531880294605323763949303412569756487446845081207500630841610949776988510981351586589908455350290280349914183530454697723673168380760331448421034323775692434182224178934767563943841581507811289334638858975934542602188607117306534064249134637117889671693765590817919252030094737908612427501787388415438285199525909377221424738244651857560401297961392042946434241059636948449440865422420450214583486355861562226561955802979351983840530199714062355458987058937133522099593154063031596053576865736608243134136699355178559579323690923218645253916260217036658630257847643876649503335912684280600246906196494862023370669556190427535045553974647929825532106192546041840476879813001803608425483252828665076391174232530519742443790454536067912528189117963619428884308400756640749853049621571344243250559882140010584778914840317640180073977875723604099803289980926420355020754331365920198423443214752996755211568545219677097707799996096969361656619029358396790918487171772507469051649482757890049937692451091797928205700481713967918653553911811918302759792824653591650442018145892474316229576973767326116257321458694925695315584790625534020092239006731041538056482982674818064388011385169172012084075103451581390542122851219826806182254369375954032741678533441961415779138673391575955906487292128684460101502824276376033933174896603927730096668281558419780698249904737431432066708157244748034901768102696481479321491187643397375234350807957147805667276111056905002931322218725139096660935046070914616264493821609655735375127330497094840352164666828650000066889445273947223154258090633663694362648750496782682988281768655300901424609568759252181722722594031022423001699885248733572907372606173922176824920202440425045363271719670255145549613556491666712946194232004135312091191191735620295741593380697594637165079308183692118645538592539325802801466482561591070488171025619435221761801504708639748626269849671711655690593875772623345067093747388758231044471044971234846049644110116278623833963449701608369073496090169349898819844512428071355747534380743104901148321132799230249452521659476560371905857114521658411317003714968842142169930931130819492612849951354402524397510419979929401462963586472037478019160440046007618231715852034498525352512256978390253234840433515180339833180408761960220802353487652845870014213332557076940274022547967713626017872824365561516018057285195228265380121401092926719832665729058724573939437279143842820239459618605284477643113497173109682993142363209488997292900132573190597788709267819786022281204699750838133843000652620962488022983523547821666208736206141968334069939639213496011746437659075980166370762241207341290577621649952502344386743659094630863998960402311689377267853625911917153220686876730344105666979773371677032672964382813476443227032029512378807399196756777955879102188644804834381474095040027815377148853868062593188802099668949693194173258942196003313522744847412223988315995626894887645187016506297909778155750669827974639035756798577428481325218545671284780471636099750311621580913382671713199925252341453150029926970939679596685539815476370618314727812363952441533478996579053623376832960836090281733669448880334662003009623114125095932840741549614267227764633464461458908266267603837583474964546003475884222206537640366101161406696672150665321609626865920552414536880751035911129802813068715993724462212508169945198018613314392425225258775994558235373010060433515539189978064009783573403150945406146431759130640401354731696545389985350974936572850371726424987438011650670941626890036953894718550084065101900210913957310552503575822929748146753820325509082560386082528193070537610172651029868232482915474575033581648971508281986868149068094775821074606106189600365355850207674378899752391754412119003675401434459286020910289068019112176282559578889182841594157677277944941497828690287871192223941395662727727157619034551717941395163031734918389811605526997636038070889009709073556639982513668932497448278383537205304252033039325491173250420175885322823348895318439579609691374941911137606767071171455573228083361584730469097625334888169081956163912178438037302206575891338921303194195930766922075240938042063734253994312032543647702781971068558983516176217724291678351082626916140142247095892702674081080083961326796417284322382901118928807343134688050042625131395211889240636703241642787127859087068593522927583233052032048771408575284589604954971771973992516032484710753397262029358355680844660572589614686463719755897237236920929302894069945163438795029484223815582800295963599879403356213939303719173188430178643879203841129763631936126714911183837866229667113459903083378539203603760118312275166261988768330031536437038500040336806193456043153635805584854850528588755594012663064555980278587984628243794507928272279264592686722374150300702145133713632840509978202432848717684463330492974663449762143381121101956466911460111648673005746421126168923205410584209447522674303039966593387297679077243863178923488381553218281165732404956906704143057117701527802283037746708905715427523167788224812254915312531001266444717505487944393793604174891677950559591446387275226874901671629449502682396978572832588196172170561883882085644000297327456368261997670532989035960560591281444568340138586545870354059048584979648093118893852562642291014220105733186683674858382864736030614659177229439498496209071108850976290040933960680761260565013881553302993392454885469027461265139677707261635880506437571411166716847721037882003814003863005644388628838722657717445347589123644480509472462168246798353793688716680487714328561474084840596453071316035671665477039781261583499536469456911060745897787566908244852352522834209193909775945617227526349761937236797061321826895135267121671756580089645158978416569217585297405110699362274425109250231320090292126908126790006886883382063597875362164907718817852072078636746396547412572938204227588081203548019829177426853850192027723485612288231113853250192080859948153851324732361505437185325174984356304313205048133038385991746975309209283446559879825753983796305605431849509785164434869738597882646747083765670337661387716547948448827451382196103592488711861779855558622576901347290754800331281880000671552032401578575781876844373766966719805380465819924163861484570797019065301782819739724456767903802011257206009512974077291267665201974363123559543207065471878616074933650744343950548339180648080323480608261592818740642693044325404107912861511043284011058056261468684238703446792280302514087347541751402146405830987376242339700879441649633709355585336036905678616792465406044521201700816769778930502552559088735764723365724156179094023169095645752113404591234873959229986697202877450030661576316149252401891222166678619880267692680318950923371697247987367645944214688617912206463249441980443875700475793255407683697638948802674252285309288390520908373568146300498743642975622086753130502604371502165392803811731416353283729508548701019179644452729598967726856808525362761897042647765829508701433682210883908183888595407080122821433613872352306323771405924761356439509501665517553947309449128540035644624456890438777970700826548526956479230610325206111184761358656850971341051376042616350174876613832684983841975760520626709703886028953775458880697434803298727303841117982300707069776094144514577840979208898440468117864852470968145168251436787031224627051913197539917054144943266967963530921964232303367307747584376920449443340640368383160529227553527370392096098236677243211064553575931927682592263345515803671777831044582940258821509803585245084875714554232359652282880309787375448671577268105570414103241217972926445335717209084009557565353695656540561296296122333747729443320091078599597077729947368162864670974242338972598801845703478010069511349425517125569199241714725840391646077407774581996102863826737500221571644325593558971215418226696970489901484466276658597787317551795677033630268822374901466069503524037304805182402039627875778980207977947563489068432473098740097069645302469214249026241801593761580786434307253676832524642458643678272994827248296940370726591057106594226713786465094665299731288458315371872820194037174309065828835570234515271621392540723803584282491124518989112368359742586060384331788866494791674152785599303298779676634027270675276076151002061332924591497423943933358236817277578246618620633115780570097721531330345497503465185700033770968516492918726552912764143397116958411965127243130694509173457679960188018465741724681662882271086536848225398153604579972884865950480248093915989462406160237959213214765585001855019991221818890503950240468788527724799026266998892828911664285264264114038265998499569457139353968471273235247868126653545803450041027570804599914127804199030550727646902698166623382894469262503823643722363971527630069489306867580202539532143155359523344189247836142140367628788775970802855195320471199460343234338046602401712853507119973406793073373815974474921491760805305890999216984642686653861429525340954664248137898837097150058025186183339383175209511402673195726105337057473356841482212430839159840349412363440302360746047419174013931779272767858889462746642264524138486847728031128314986142941278923337257890302404624691695335858172798915362703940476265055964805603232694687324285806629736179713043630553850793026660748311657809950684947816308048778752174962085603287968302034396189440786879917800340438660779369834049770775865156624176397934080371075810944375064938861161150156086455952050827405350395259144179586710808153882915070754385855935510168863083466576965593956068728133354191749668063267671678230563842604421059404457605316432698624218661690320032098819305534365851298938047818476122601458609282873677046754557995508893179465550793836057251536851446240847924653411651385803625123486581230259686457601478873390781192850915340583127948005065134746966489281019435727020098530160584252224257994094534282700479400397805416895777030530631714867122108357724705604950032504176248282533226408013730931042057734075295215782206771444511435658714977919944196980568768793798856653246987049339331663447167454275601285163768921217440381515438315085364564354001370234288822804959590732462116686747475174339752808431238376266577111897773465151028722990866825104909032791458786809472326369912514906220359811475831181998202032823873592539140527686295731931700385342706897053233127999316906806277753074755504328674697497530777230140240934349557301108390462712169434753307455617747868774137102140503752813803541822057680797821204000910259101315403582731781788127222403454008141935143439023336582074528965958143040870394184384136144853163884534406511365684738981451751203775336729793839539865985762517643278274610935259857572548416281714214185999553997590145878521113248065694465709541305541147666876318367233951443099743212334264480230870539547707734160376985161336545320282956524835004027876924798747962895047778399549144776257753124389153342695608256755175579580536374523985627091178078517573271246610089001661010270072874873814974467765542831393336636338422378215341509035649980386913435467864092850258201124031158014869729414921383507763224725638799871652929118104623166508283925291229359735092264354079036915995116404606300178933771368325057346696394088715743763309194140288366250688620191934446055936724820765784341897867036576071380554359211770036951830909044730095025809367531628484352307307385778239616838662223899537248083700503744993551519146811560729143713499831736406152354298771379032582945268941542046417440384444996740969015902939061580730092461834123810513617295665403502027296268668609789363605914077682141745561641743414801370333055950924698294059775699883421514418506363417011085289851099899932515871935200634968531604905569218084708863964859281614141265076157863528774820556364820025861618205083510275423330034214819984512859612456322291821554724439336139012233199057826947653166716768834942373593972309123163174713517392374296168880385227485194237852364887874259404739554343179821522260556412960579760910650874854636221416070731140973955155351497125857240563941542537793123740004251684329368050684493122411832225081802086634720356192568133250172127143306098867472289685422534460512210968404265027939809540708668673243226898842271618938735209049467850745964133543947223197714381991560993735809974655391946684008282891123916819303889613193308285107063002692045055450980568088923865725914399227920235359123125203875723019495320353178348883471237425121754050811231299716684815792599047482563944889897084850839306600065285819631062966519979354997049211151504949138417487319850056574723201483778714002550885080005661441693702296084468786667029501898200002096031295197065561047007018031861000296177026914790824895273647165828274010070994026837000571385524711914317457396439836648845572130793423241224994930089893512018490486529174766877414201141008310810277801624573954204129888893425996649837119479457132903439290196230413894559796611746373944093752128669036916562881199279129728251079565604404832296167240243126360894379282980287893550865107393125428271996739342284802249045567960028551552867069190237830108137009118274463136972625123130850277517994237523279428385426992413485514506759957557976482500679476778298814580007451287843766998199771743527456477213754483527353980563145336942749686739085863790288119838366394472610520889818969579843437105153358769573097423195453278332754428001397873932609780290649692037094141147609506020509101716014282177752502927208780483098204996735690952120226498124913727247943814629424399805187123430252897595017311042220791849564467251445312675607508006669759890069982359011780848217709859940288435856675862154403598350572600981458468473619723029389920565748253251247122048779999072370671138481568797472786279487844908804740563424897054603225245705925918993200814862442554279098758623631644209882371954657628837181052234540846437404365673926119510050214922912605134081176482958841683974961301421818376826665879928104871652733639296593620505650145333661143910402255788034975273024218542016271447831148383172112252031869190768382905390843601259808495528565956175241525623469073483999855989940009902617133274330341156141956505449663379517022108042491712449375758109573986911888725298211459514946450384882545145461307289050636486482324076716739254698694665413610568753127881745107144938696033618620754695901295481088291591019059493471153339426764227765521809897598055857361978949945361384997217098355172004813065684960496522926910571368902259904921725892383697092677083481253917106531889323813193026021430836213817191008820608688766627318270083732289718844171891522060138435289890596514513360677113812391454485603345875909865079490400727233194278097956407603910322899779929346770337080606187784910348547205027650749029616385597411218077493497445698281818178348467698678888258748158966582734472892362349791662251784253731764852991651241818677151278633907293886376501839697018677571346902942996982131306313881351111034680558762494476007697553430651743357663576870069130178443029568327606135531167680670985768794931213556536593172138735747366641692674346922056820269695510199594906393042513463753590708509551160071945113245686013144618839630527836687562852901505764222017096216275110626876166824401142459914387497715663331209868478160500370244274788936443997755264346423500125558217626246794986981258783474629941372109755211581880036779685132398418189535552910347960245088017821226454723647658341954255580312134815819242830359884283384387282008493376630473897428980415055295972354358999519672836514666263613226137243425934371695077539484140593756697325518423065358956796579372467888293100025605337909325860028135493967172504106511050472497301500141840819151856469469448814740469298550493120460425374786640937132819389422019909865526703540006884165711887113676949484798983635414093036773820073423061287901659884480494294285112378831525852954079014325110771650723231313347803220476292153792665337665556224577857279771319127918955252218083040960585861657865781335204671366982192181937346512481501867826775093416007585905609868212607085453717219188263634291071624251876457070230351039145970598202186538996372299805532262441772198904367352896624626012977126120980569779103879757080277872855328433605213248017688087235173127920774451952054111677792925069270639464878499064058226540296050864906877375435942250814448269006216344265957928392456638595939167614231470592715704825494409927169069234691558683736013442903728719684613936741240460109505674181858410021493295297328150509023042688386047989731200534020244124809932491693875557325109448561653007317573673646321728844245195502022421100954300115141755909330941755685605120778489070875319272429475792945923006321044988612724199750959302017675743388076037458687729497185645616359993062350358092756285729494009007138762379687381935169645674507214199298311255502821646092067583597514337371137295345408239824995403229124162673090481224955250981503410199044303824736835749361973940566436258168196277326515366272405357254243187083717604631828235138666566539785910615980460336813666472461938879691167381248206382890551553812865569409894909415118602393741311209781346134304106502007080889879918964576969281539832181096751032916683481897689328434504183423946303990035405132301437278898860747404546759122822644937751494668712075851747561699897035273381574706780435289053466342007894213593111839735613568931097097238673381224147413450271476144307523549712548221204456372392757128601035763952819135582557472202998305655568501145216699140698619650225852348407327927198045394800219117915246697683291395067905089102287302334307045825093804470420761799247457493058650669901639577320651138577524687990877264595803821339432009123269170836600192235793495035970418704013426353018158343744638592093306288276610305985752030443109123389175869974229538849792621166614391202069226004868355966699468655315695262165683559337226543409809134225989932952904928376770087497319978836762126031559665776373704714889551450670048742275836090115717427925909528812828533021968151506505159787454829227513816594103720500565817264999594016504106288636948954142307562338352959479298903705376011389923678911598013269130734047045431593968622425219541790277902377163065318913017395245685812087542685862866536341500050126892900478139703632814808080226798802057159986042628917819314189816885837932447737643836346742968536426987429505248614355247889441992232926855448566920571650822589988100344323067598951853203616569292622340692902787707258431675381837866898010199156994501173012687292358719394786409699969555746861863293908772112688617793621002981454977693034714413267310090673505044782134368329932394992272159554770951048949516139288703523329155104111901447943067047285681666331964672457628872661754830145442573536499067034525735612863664484371215014495898771854508684235252955219077502923299665526559533751526489968809578925465365861663619597135152167799501127105956925663586068239169829286019049214100361098912138703594305838478279461121722830196771040471383056922528494362178828387327084644030131426222061597482872869529763213674235297126706334692284078980405530567090426292744354395333491725424731786643889733799371757366515155044947070282453107945803107080101842294931358062009202115656079814869338152313133055725094211377243848785074945767294670124507887074345944123331536798203921634762537635334612347028687583876912560268587270174255123362759050710124052851926010216274693512443814040924147426620275868363339601835831043687536398280235265596997226826160529274154003559471251935558969614031281596110245663089989494715695230446069366500715437324801127009053596591892877001764446066611033960157521160111771255320516527614058633716513473630443791459316972167312948502495624346789404290343328958119632176660375298896192154167579172930575563848014121076743184796032837010536587358524839079137125524000264893761416491181907355993353896822392139786414883920179483322465793586261998910890389823753312311290880004345814515727943281624506589567188470156626239426075701195948559025140977321808625291745063683196130636723925635088526087354249735021113777219500436010674398185156378571656249847067707190471657758437035585773351855360294394988116713288014699040249953300057892030418169072142529471668067238170126361013806260275395875286845301273073509743948322022189816008219439282099265412800516201868733058268380797886607002855707602093217951387321058499961676137291975679230295839050991496488960228114081700562991026655855980374385672973784697942638237461733277881322265624468943024056326331760568266885449064318044101162788686591017757659479767373672952128961315005184302282464696861829562703517110333554334414888603577131447347751202791984577539704789174239625172811291112467440218834675704297323762624360230590474039720604787048679773814929393882799920393188304571989839404615147748374091962078652553092080884339942770507950422968513997762229659392938398520790158767382918124028324522298154729329550164455455076900440712339783312878556213733213086056068144247704659208833976511234697092216206254579062442465420439679143927986183234032486765652862539816950304035528746018713172280693553704837446898352674825420324665838514708529715852597032572482219037732128314612559853293936422699495507210460503672980648878822065919844139138360313391993462832515420879773781241732635978643172428281106948882439501202598785777477879780289137119088746410414005754723616830971052148848143020873005246362340465109996689615458736282608372797470777761448071327128621298595662072940863867642559190997601697042282196056311513730717719890683882493447491137737633799950682425236119614433886823686727152207775595225829025016851172104395247578299464746431450124601034118569920021488761411100034775749624302254818009255721471630166157889179612539883971631691641518372056969890612362814957062104560006816374080980427269773255943319404911324716314735102578497636755794098359422487439738453171391009334144631739857146986699137815010754404047636105909381090007059068472958434481252591631341430055134771692482208386395887186170989320713177757121820019594882548318207699079480444513759035460773306854996833575538532325796772057963080083733914309320625035750698072181673966689958037950731937540631391399358582651070396203730398856310118511914254298552511185095347047013404218347799277052482880502860999567519220592148525414580758889013945243016008379814146222953637825166888030214384933312989801429843042191988432848551464966675197883579139031398517013804971348638784098935709298311955810872047016381946838624711800773882960034783422950873081644984725401812159576212323213825133413409137494886199760373928277463133564629651434195251553949416144719227043039351194956129153674700593480667281984000726809243385064331055821588261200540022064634622620121264637448719209906197276099401651403057411948211764137464043942608271848417820655341279275189978803221766049268141847019429664418029652557281891118216477212564324350153256925170404070046104518606748022436461121062417984336729872320549381783551170558407703808965773117027553200674507187091875890782161615125962230505166490855664707140356656062894249768937053434748376939037095310624435255976112620644736516297070143648938246821434902317013993112948093988009781980961915249435266914442623884586386449842836482223261987140691257004275673771957910323643694408846598718458505515940327323212205501830218047906721972447430445055942322082892985497116116988668616805206846846575030635363712040514109804880378079976176070992153833152604344828196608573082198044414890261227776108181216778299896783449326507166303451403036463463939953790748420726335169241927992166412432716599448885651404082649466549528111363167207266914549706187295853856345434119632037886247721530605612784446076252267225066253749085489292891475268474053559134126231792134337611046494394756514968847007814717728263344884504955551385060917179950811819863762157822948530261077171691640205727536867461617678175085183467557538943197993740034273143295837291029070286161023780254001325942434000173106699192873173835093795480327761680855635103181509393748616315488364592048865529481582486149778794013567617291427107824352830804081270371808048197204309172782896576133517067305188961571080722711126222281068006266807884370431779194391058186629914245290764493204794827324988317129603855789533435737610100152659736459966353854033721424906138289709628840486644712574742228865116660895231423093606631512700785996581816061058077810076731442578107497333252366978402915110954170419660876115399816609085424014486398004252363723155943958123087772413602340647754445466600444002294749090839173514531026280044944257308463132286405555396965628741848063473917757539259624668408184192853985346670979493800170309461939035954814206943569727720309213825703940663586777578755090595496761931661468061320923243199666788602359468497192291214036146552467678043934283652196849224014204278816669905435134634213582293343884131722906082902707763507047972778844248756740300797708269718174935009901486941934716573160343134876203638642073114777400792602965504566354112040457420577781367424911795256037375151644105505000023147193253483916526645832783632791610191307104834736551599932091468323410117231393509199051941680986308690665254260041576260692547832363071984756129659349939368533609969511490175921842347218407591150572045288586988211398634232826926151076332956301012046355266735092497849738165985353782226000532936391401311166867218049346557063300583351688446779310619968877386032678068042495148683000236745888630110306990721263547581760022406356363242211974454159280508615208898842729297088581137755671184546776420136403233002491305180685629937850848639247462803193077514416248746109095096902232626074393075661843361351730332025699916768640468624558000565685157702089691405146476220593709028874609264216311595779825415855688583413837909108227507497954221936443103502145358709329216587110583224821266701541415431801514872935035268761003979560099562460097047894048727422100308623234091336912457445763171789752111824759515077909274880793940657050524754331223992840110852523997215143296363953627088093848789704083356297177680334480747603140717740201747262629705131141493079372791780574761934924665654707944629986639865477283736592559182025940343194165313819403743255916490491646854725174027969058982027234561015466198112081566515016392230272734800682973593899465330716214591284168733201718812936754447558309276922807621858501194736788407265461351991093269139751056256724791830745329354564034947032321138436220696895012000479266490209855539360516877913744804194344848777156773141612251811494951084873511814113129191690897245458730163046483340230764939362639854816365992636046480670934105447462295012123390964771794407876714074055510627550388114389567640608592740969023344976337547866994886335368308440600941737291286586762539253666583577266427435604487407986146539440355485280663022075829053657216527812815923444619961509070469452974531876817052732875425555569648907008562396882926628590068890319841259994861839023844134055316842231866261574689745175993621144927966989941737687036278148513892797456742512187389154583315102814695992064483577834152393490109240940163771241888580041240139519355548059418228581616487012543514669910281931922390380160799080744886181117654362172926990797291271182352154031246328139500111807812343403370555875870817539288223371865560869335611438268544798378115905092008466357129052236049516894201961614959274397592711031486967894981827998038130651212451294556357086887786356526092563351434132111041355681542319273002045251006618554550770669846454288029640386034274791903263182486084965966321717306404537818768155276308848984400071792826829209557265560934875266749522555931007791750168431150402747879143132104911227953611218653608999465468243703647559457711302220953343707791093478444384496840488864240823319330068970836040842160732161010393124258007472225316870414810472526702838334316846883416382327068870056600880195495015043034198950689564018603926283147851866752725684555105573385679249312407262827472297546251414335236607663656838790034090233538208357780826035854823155018857954768147933616887468726974716476159509270383930966045708077011862097302843612842313087885749890986963607618165570446915852771478502602173194648784199274684761012254716347488948075867468492692666568983409224487858007051955376458444664484459181515899566578493877202402984556431101174522674453871877513358501861758410463026497947927563172275516373101483596355326909257070450982028938920761996953356068855837292194317855382147940006853305976529794192818136967533162755747238342954831375306371421683622794962791796597500392790615567877683560572483712364238294516451554058914658356187069324802171089360346292512892278235380876258277134602807467049142745044353511833208505258331424337650902089301587677481215890719879584625939849747318259625869660490511623974897115758284536788694339222068242587641280904370151802142693655426789702324608249195129190832903071547230686815812884926866935492782532146570949162970869540048817242822815796873529540861623858330913997862547606279412457816521984929246312231445082287553956649188889852561633401395901772344574909496106619058259353990138030901404733207234176869672085132994704490113585703966427796303156533319647917531226637831770117696685997529569301383529549854834392708467550220033888468455567150324805920094832355625775556505206251421125162930141632190264088054829033384767916014224287312356910000397329007053996025888995217865007340597128065494139875194699351933760453551795217088403479728844944603055880933193193616242998209901946778129646163725160579193784695878963068878657099153327371094218606459792112725900983441578772305209953950732943476084252595636716059761199957687297135160858198064428602609399897925945563053184914525825731465363595060786419473148144584061099462657139858370687102421259353915035148695774909534803099200447421635360662979602620683260513963757090148172599610403687489278171431671617665847627814525751541963919347827375815399348253904889155620857710555824222544132175872891458088659132174461097040978389354056125592126226156020479057096601107988700242567762943457700744990157838776292359628969970652963134970175364367826309349660206003203669843416966930954215859832913958428088288759967810826716234488899957416466488580222459012053060306077278519103598868242489728144726466372067069802099963482075840251431720168291265980695646343375328746789260649763855929447080129452756620825024301591486677953763168402345263218735183384039249562271139654582838254508449228864594226409119885663588686125372532398486222427011828465654900896038183939356344909420927731547320631354701083821751900629580617852405552958510731259248301103576930852392404918967704462633130693475584748060761071474867987639589398676226779054023259185314719284487490807880886478714365037954683653618512236705526796744466046609164340111455115669825316454302112882997160030143183893840911990221983521882641696467095867719842224474302387269062834157122953331203188590969942384404535773191260181991368980824390798730963263688528023673957321095322449179639685575469949002205600708657777993848627187274457240948807011371206422913575069525294190904212736689858944520964387350171710101198404589215417664721616735666742908500407577262287712091004360852040036906216791768489612380977481048635099687465896193055750878816761019959546084978725301778725316517042443496127542510268900037449700326166495226543288688702206208899851230907076706731801093902320873718570295316338359590312383589815499529753981248147024771017215314542100457775166817661208995564024538995309982935661011930676677715351867226209358890265456590086136064491750294303692593820810505725953970478843098086359776230228334557349596279518062922579794465868060073254246426529882402487398816845930496473453528624442593124500336043242170143411909797526211085942943741743429666974025088011551916247961099410368167096935579265538646513357147011694818824193335142627278742439821135846409849542444136695370845079974157514478165774523111064127653439786148601445837113198937453975608430936660491768885939389093363347007840793220654968883358811778277420955893099476003611977171242674003961834551110107606942242082165851345508939435944326495870411817565070206877495941395413695063405611636280919912280463877416418798134817925476043236469687907825729471382302521422693366785220606411114469425569945513045067695402325956701819411493385468187311781694472882170944434795865951636689847308155542902132124480340912424786364465738625543252981370143116213503204944332178712549530738798717229627494933983210629384738401298198091637254868590706078529718414950154072091340001030038753120593981650743617963618152944928233235201338686321713778412028932885131125622261828541694149578849850144045813401479841740515772474050257701599763083157981662127384807198289639186621763516326084131405492779103279317319189156553073707275556952631364562098231817515202701327829042648417411270172184145143894833090123021211253158271297876095020834451050756595544231076920051474977150317141463999627665209545150824083647460989101172335837163409974226725248497974312018885959692623991699501146638497483184746798965284654871947465532916147227449823982396506007924644421784944015796081868793055980423468673263126242721677149603129945521032765467023898472317731482568790239596029704952548424977878251522536398508213395869601486020947768691613886099621352339482660085463545976031808619369151859810662726359376519828843244139330280443177702869470491169357470721693282355083793956107693384723725315682130071036143925812478696566301302673153190740834772605432355729578023874104329885406221277664800646429165316164649469626835662693555830532144013569837580556262484750150554085145601450042309739791660656096879027647445990566075681979610681397751680662143492067356983740679762779758879893574108025598459744285288395755956595605168019650316978792548384938244098312883844025805112302374315420400869063332547933198578982197907888730193331764575171161968471794344135243974393800057545794171112037843596152132070723672573414870553896189657666172586430266012568327383837992937007191270710416121024801909264857041610060974569780966952968056420126488726029235964021976164464732638694105019401657053373992584407955582266207136349985452057269258837289690449847768148217267599190677841429095281725047420603714782570150535958690587200100066501612673722276269237181882148945777079827540088772892821256213305989812687341876551581626314734537384599198934031576823171369236019297934662717209152821751713497620031816666845270847643974334258770967148247279730124349064400287939461322942833436617405166560850741209082945201960484607733688761584136832665261578958731148735096836995669832784080437824275365915990211541953288907377676019516563334194219967238089396144088146906665592563079014986789161946679463266316198794353744114939992304009540867533078210085850747840576273053589071106027906763936116929313801521669817916697724319696399639459375113775703016770788663155379519585723836907537213090881119867302844290736943246639793191319657156125448499374338745518546997793364785975328424115628458535402562688789149590063255954964362430490218153802494895247274793911094446659099408772599794385947868439559776157820540789875916694983991204986112369951404731604879135151028338355154332185252053911641601505655846806466977889609692026452565700476680439212791235593978009316325850350036714087701558308353870091241611607019793091002027612930019154791235302912629354498137233919554096577334090279966087246852085087403198898794019434856979920052462958422235616769561102068467766987368776195488660885877832987196021578061869523513127900011218811504142289897119437033687810378527819285226253905439678170693662745875735883476552321785970213094059363989893111266285588207247796058463410517594363205122107919509033982314058831000091129343245821788886963448855479722813314507851471565705287259244986224412795362162930577770191259748235408028184803945375631412639285826469386948227288150649143925995835055569960422407161820464293261356618104439047721300460858990383084912675423646641514985743310677753872567200248128107736013598622052368003840522194394548293231187782661994560456520535370582641182423895303004998081710628411287329903039141962874940591920113900483007942358128177137226680305977173506693613484327713247981851917620896734213950858048037267401212503102911860703696251929002070724296739188387123045719030279999261497934239318095083070034775719656921061811569162605649560814536138799474703473276015764506612617941234702692075769107979459907731942631717432386585209448695149788512035489505363194577790093268420136969931627035215668167035046259964731267693723298361804991965164897265258445693593009390326056304663338225908537970765564127300199647267195759441782408945103265681166912979587001773402471294804561329527577963347530943532653951225569864062818039728461700749120374668315682055885713901757813990185301328424885665414723242232843064492123081097036346484058210395273131407247927403306698326406395089785457761686300888187991648853923979848962597636027718348633355757571254761943669449923493573928736414897703888231513663981922409874911157039774118545566714803418482526118910874766079777085251772135410885483644813613339223417666013511479488709804269999476733518402369912341476400975820258688058356356698872272226415256245141674349186868454724609133631894460036224546928314106685880215516001747343187725563646831908951014391563791922843794217215574120111135625879639584429326531420786632831629066455164105391655999999636287272012664263210146803348872185001700756709142079408161519277907848488479049955091232829759645873914416330432984079713774491944226870920222211794987615563865502672208862262455788160729612866629492202485276307543183925736106214969604856212746984823060381619028417517916945230391966178881329476208365010590265480728150326624343209665647432225743493423963709318967033048862813856928254000676660496752981116135380602064320388014149344892813441387201192627527968446628590534932475517101407379142045887152984594833652682908904735779296831145054017438387970309118984406434293845607438804325147450300289217310917522843742735720491586238889106483314556230152845171534217150674630390731469852664512228895218352055607598884279377601542645424013170071224793322030970500215865569252407932173125591698240795668021844133506158686148400441970986188048978736899745766781056806084790493714824385412441806592625032823862200685115364631676521068320057113855467184149202430777091610685290827060496206696334239319936538414428310992786753782022443874806752982853968210463558876559890477633047381127450146011573800451513020717385944311728094471002327131625949485150122239488877911117014540523093950144814069462906998914913212254056790959724021033268802007643865493566774864456175324329523392007287622666493295706605003200910058294488420839267231444835246790122387742082171623475821973368484877313791475431742761694312140609053253995206487304776571330401883685322490902153870022319813840261581626161117036641192351146165593056479022121800894988511234419549864895987938354626309599439996388527815685564131348707412736898200145207572623517457607062403691375707591150916410446986163827189618255519281631629901932633044707269117646359038027542871903485000590098426699615573679900675209890669065363151762334158642336216827037147033614307261511803931232023495955649646013618482933048063406135688314705556750487324983039430509611348476138310110734272690582408221856584466030150376585576400256558983453356337641861966980565157916136096345247822299391922115808581280224647717898805769517082347708914653145250541747360063345783407381060359511503869658358826170245513144503060752372994620953262359696960878330610777883085590521112116287685091490874538037319331720616007267445209789487802558318762086953350798755040058525678402014144708582875221563461443596177751296754809526284014527312109244475369298071638297648787329211300945496118138735191377046633744187387593346338547350559676961773586854814896780518475787636649383001228503974727352881230525992796947759543686872642400407956609844122159387987956947273524115639148732051359766093487603214999296896861974378216528547197380280104278740104661652377424139112129937053530619381908962190514165332513949344511659105850297164139767457301603329302247860106264831052032099338004548991518466997322351096411317579836108406392159187051778391464520308812000438373297618486078010499687734730924367002744297062005724996234980416869764037118573041060995244219307680929598769594659718531638283635273111691590894837921444866584856149133860837580284875733426036560649172553828939336122219452050903066026074377540670079525308543692106130134064792294211428077561294750013106494447059413414005612198680348028035320104779293006109493951951953939844031687358913967756977484224942359052937971980265188829266467463436109153566991020625298567793207642970818174541565505685403775016874911180703275553629050185660499497265938164077854610678180998142933983105238781139193764972275652618221421910994858432950066578603874712319481799178605709699967503047311177389310944943836081434243492278118338625613136131123611000132283174159259804063850262120684523393120841793274824962891569440244031078568431922010549776427043142191028348874999068823291760374361419532037997213734044115058365411599160797505362921482367513465567957811568620861551628449595374633583677372124742025328798839998947492350499462746540540575429995753658502182850923611276168324560912320325264542596800302372382120491553763594217552385757812267340906350778806601101174087105902613322630542002100565397506697031791425009417804052950141356347817100445982000244739858236229974508196660273777736818636586594272499267808697857252042882751073085252974925728023995071640984192481547109302401326961764797802441124817662617747233126684084497967621781280254691217255585401225970145800772385788908733182614914315635556107219038593013551409563888834863966617592736079369203633940059238400953309569449458413304380261181338348919560836996872469222979962790771969005688543585998137669550548109046969899244523005265637365443118405362323286193811801758117003693604365662977888945304017437559741191812374780355207036419493107357285332423981003130995609881185175012880709393611993318089853486009546964128617117203333922841598963501844033611679405873596177018250141068485725665535085875748901435807523910308092332520067378785120398068489757053565624719850344683979475345796743082201291944358286452937837565080589568312672140296676130123427174807691964157740595699500310271612901982679799616788089378465520777567946677522866655732124156751065401118456040718522881459779034696078702164748883180944444501754388461290733628143429250729685576329874906454697398691138218801597454235877027867274548180474861428145564048807942487443153561226689490364964698619244410865144520095720888910219980080330868466666431737817810358316343856818180264865499739590830881436653938166242177790615330242732185249252736403412452622155631903658063968520043768185677889891475150798509576985263608827831114650388703159241442188333607095828793255233785100475636898068659967087278473545692320682497125043648187707710477813388669684754856101984815111493024208765289752026137908823698411697211271007092830201842064839713724531160474305281985564481609910914710668418356140167492171398686799175304640055172521733300136044801930825211348978521890430332398607941609177638051726573269853566810297834108148416204797693526523844667582328502992272564262390464864142841929129294823182163074975937954324409001190356190848811412533565910967844197377084197684671643072866286640818752752396278682245014656859718285655527281827825107293372885270246361059275178955069940016400184424037523428758130693346966191145649534801561424098964395548484863384607591203243594476271162348902012146274166173890816839370689635175217551177076392462389382508404668675995306372501099999721201970866534651366799997592920064823864613937901928642130310088625855249719344257704984682616368228226138209479173755579080903244677812413754614953349894841298663723058067100887307846559576905582624757472793664028509861374475825481561606802400593577378286283890371540564913682450029634481732618990092093276934207523221434807804293822586217646472305689383915536409026590978094142779406554712385448921646519118369043177859947437820678383855284615233275544448225150362715105357559800915348194688601204969281411489329418044189852708985768128967081036483337296921490614155480698074296296088719092497926046987949488477920193948564027476864595522182158070694334140116374137615606511110257392158206667709896604157396268883255480814064213040261834945874845086241764654174565802021972410160429072285428047084372114494532569245645877671937008535185454181325452379549077054702338589652729344307024452466764461861055909263358951648477097717438271528411306315810232081236196058776706534148929881135897182363269967243724776064001409266986909272533737706713037714355156852601248196337967918023232710872483798784695950699153884656693717793864147069379692599012941411154077141104250671966125079422588487699759586259387781649314832928716334786020623756582425801366460386816291148271685694395174402699046508221627463397557392888363023507698075591904319386147938572830174683503955575990119665966103731553305267971665281456708129004165146381740323432938348798919657712896752168118940020423144439817927266966405684065135649294638389698082888477999975938071656965656260554136118792304024154314665715608544207198364449267936475091830109583651457203994086116031506297886646832358178734155628417280225604584829761027015549701136340972228431827319130330073909987942699845263804222410529668002630463642328682590487154885894722942725453451974406348195236990264386353140445222503815425394746475230376360580293770501892635577291634810964719960368343321945503676406452035602349976890878564096864057516529710762962164177215776144326407776581566841360162821535428471062882293561622810831690053921435395913703223189769148880734461222574732849585407118681940924801105644148292678538420713496401127119037198516248965650344607885311906758411332864621537394362939647414441854078851639355901716165597668526164301963507500125334056155220231040016951822071395696781071711754003971561879254244393568640744458046222364573994051079306382192854183429210731840817743781504985638792877753413697634654591442505163410258389344878950918163635103653301361524598132599672170792611221782904104992230721110392923708480948338287721531579887350857151575227420784367904093928064657038272859485037779980170871785322762730988665860258016899438650364423973116326878788665660620049059950321433223137598240545567953361071795146779209078618346575828023886249128616473272670163319568474594731431374136355499258683032099154163898638319053922529661633574940462421718644011928452942463538112174729790280113818068218160152449015959217754113728814449828434764115759237326194591014395630433010353310440095010062574635805113285890655188578063657378277447661303615948268886971896413913322452362465092795324069015063509204600254592583910453157576057521005589330475271581361062621406984409833391295158750549779052026537578509641356198877763350261994742148442690245340504282424453548106402732409999026849215512634074772603263919666337178567803596577098034475743070334512111926638825148589746049482405966536820786355210540439506657336760055775812708383922153345028395229517361998853817735375341416215956159390573570021837946720364695089736506881730949127443516965186211697661672674769884932203610180530014251161398641454196808727928334591430837974150605434897694482826080779948891460310076214983003670233653603104193922493645612831463882174965672687136834459451870477954065503079033061426983440832114017968203174831982573570982113314316568426118058613316769353049911447953306610281769513396502060240866883131351991899263438453725407305894999912428666709580623033440057385587329184267354341140264607717077064734855674207130156034278425495439004668112659697266625126198099398445366884621411878521803542465430599494857623497888329778249933081742278293762667397143552279834105263014193912301843173790257320343532295043189227071071891197213102670540969378463192515093671545701562637903954414677750515939302653844798110050569592865240392947146527242070197947765701127718036263711579447348743082665872254792949775893590517277658045385934272953908070631915117195485947047329025204020808506191213351344778566933196248025169721510388574316013156591000768742328669850214654649505102129696064638982106153341422756401793263487704837118725122003920900590825848512378078517219832674207467185864375929944997760969883370186098506367344077424618290880753693731533029045041319845912853562511203927650361955791851878315261488867114415900945993666179462699852407188044376481613511614164230046453748596318177085446488050938641803428998419456917071029301455740275659827400049266872898058168539263456429533470288145974136971579924870035903202915975804992493857829013553338312587453305542769217854523637825571954141701365367987424384122034018534156378805953238723920124213135466533316027243622841933924597273563014549532427689998579845132235029931492265971111180034212002333461070487112995363194852045287670258144297304252782732723051014436146386640559712709219809764745420878494454786174968900151469589431461824219589838257140388462928931851833969369693362594709198694859354217968470052464324599444006765695175245286489527267880960153798061582984997642210567101257277791109908236357777962205135931523593577395235953133590096480765849384034029201055837152020659894244004368915696203455393362947671678556776792072836905914616522034188576621130673821389945343850175722641335628883424346293469050855535080820486627549887357490633915235875812081084775139687730110421909823747089887497757239091512656603436594601787546004816964386529674229778473164401417613466674693359429308901591089381020527672894796129542463347203102029158315665651322774672376041680599003976958305436296221662855581053050642359694645353746361969669363823303034379439149469393561330137984966586066270877233055029259496246106675911832992302361411525069396090010649679248932048973097043314527061082057430571330281916646436308944829705751605216760026737644399506929566777534265408990841312682835445187694273250430923516174076346127417964442746825901459622823686563094427038492837356112432979910732995890408146899545982434273323703249786979639525586350757547046569406108578757337985668572929198569788359554726268199691108830251331644728975657639220926200824558871022214215055983071253108061851380810058616115424708950504252861299992448612031932225943549936481951652764560384304722183897228219472351344495171818208912117295571714062583843411220744725129631025668723003530319748532035270963406085160553033715332660931123571471514436253611997307065043214175805286892152294336107120785163050540126532318718772754243084406941871257243178360069937591746440869793440943341807192185254821616509713751191392309747590521952647024730405161867675007749657761546574949917358183425962180564019791127972774620104857178666599084342417424244076041200628633263837607276913100745402745655460358818066352837639282584308064384710551437753763924812380035030592109546303485160160117878556698237818837573493075161590543239808018241887153048959044459131986461258561615304397819359037561164677017632654240068320415255599691184802366648486299565618015669880994767921646857001404751305216437898341801325196077801072215988043561087503343277040870079997063364946738619183043074117788761476904914005905643618113721860294409852135649353535880151263193988637558581602302963641451683212863312457776209814477929509320726211190913348966030650006690527385721194278749433991534897579178809930316625533315561875795284815160875671321134169657474999674567652874911840918750253978632917753647341364559292067108632834525704761627573779635662355229379798605504529541242835696293663463490812866047692932576514638189279824558936004996907732618308686511097516732722260851268840112542349844179123110186794864522576425047307733700773912343409271540889583638822244354676081982184755316847647747458340348185613175201781330830224870752611158654243115544714773745655402321528916438410591908861750288321096590667140850324492344417296737373372145513557664531487355921742628873455865105127610588873740569188928009789596814484164571339113175802743581599990721966549468800325911822523976169372020455168667243452124728692925864834931955936483312077254765757465079511185363159992649338994063261006404012725711979548916953489874622912418633321069867552349027599459467671991646212207755461901465572852037152374316594290672151755341253509955299244197862333689092978972620649413211616299766438830840129505801235756276123718011208786773825913887375988710268587335922568127586318325115092863288958223915438734524243606907970312689905254023864058259372174385539263822423206316173685414541467430861734251390203002310632777218912974671080442561935656023796999288832878383490888849539124122755596345553866314241078980701151252852730377217945858014247701742443483122244230686561228896299723861617048852091468036435786187570421539230416088846019646668288052403171687868893423293644554389527236609140589828244034467779032061052783756562373382105353872167817838889668280869593643612462797275147756563210241644434759510847600262913168052672721685243820156544921913807792271246089825812111917658625167509974507049426388055255271744281940218752035469996171337861830744045492274778924133759778546286999969487666552957749943966238432171721181462817172310694737533103906352225699714377263923507358319053161532560850216147145731633061515463813116559847086305831055783140693418331521753573149219622778004575697236389669759979767991947472397661785404264902297712312169493382581987839489536108774229830083175357388739247680323616748477502006775017734196207512065925276205430548342024628587334017970715492004075600846487524635935252453884878455708386914948214187389989802976243763218510390123596519017104928764721887806731576159694799642616939927767893806762609280862457781376395587338211225282499257135527281158775454021645326209543506221966218792846956728658144773550233030174474667266460411569066889073996740027531759304755793045436032467184011304058552561392114739862862966711357618568249490626206629869210237251852931169459332665948419744473062573483282985230487887001188379990910766738820336541823403958380534502947878974257195861753984870034965023995324631143470029755176718375622252690952626794212826109750190359820283537184265646134195821368330379332261815426612921645624976834211528715655208530134299247334698267040849201758432534963212080609877962734690762232289708001596846780621707102462609986336423348103863744107609250398696885317588790714262475520700292796205337479488917605259061533572405444789732175618806583884500276775289624003882563249352113313291774555638425889592317332248630607126330706283498802571548923341364984739602412338706719651237306774592860794749904347607956828480997309448617604751640292770362508588073434435617067776199427541722100293489750052869370042989682514263562312781124452078894275435979606783523135921718067444204228921493248536418025866792717235242844938831278322236053878145126838324265368787594063752215812316937798331399849620806210758821357559769640247454327695952896676111609400631106594810502321375801923626355452729929160763583157148527056345882642368861672789857927661735816191886822582437496552459124427673308238185191628130516382714364292498434743276827809334563319495956610705153013359600892904894892847040664797936420165480211838214869621927153972303309690716440783860117964761451998934856326192194139219832063979264058168254438090349704420850248538454627969829440280920838422278203038021769699256355614009560552654105108508640325033322662797231236035058280767037745092673453157504108495542635702781265199597002008089952663559430263010087029194001825065539212106014918843536064485250017154160318246314228191243300791893221077457010750835997125680663281340155382577562268405849256736789397836158029921871579634637141435674853759664929359321628370800862861323861772669389115877584845632374917600963782777244241074692305918708578305220283907918884314160249972897894735097269432695307937492045995609827098734909223377079277193960383271364050545552920179224989765039761628043658721093541415148053564281454010211892490314150581627438952019046880029264142411742689927192406317415246049217683366244898741681536643479332536014492131374586180783627992056898996436711033536311364201176945289067587947906790295385329917523922717585091586506238103710240938529677840290464522487876235419526489443573224635079410950408606465533714308417341284654288041515655017107534446426399645663824254327042407387376891128767444699857545776225009686117681892865029788316211320586334811378084048296430594859588972622181743808701886801878511761767767876530086060829078121774382248842683064964084065007497938280154452153405163681475762519561205870317122984647817520911397928488260770854271527407089550038149245030576902265924697188509814308367246743511670263150371624050329811038601072769262375926609798711491662097651333554507398707349407882567081532504716440911531091095802636407279981101297574814728630752054229275218780938434890522416211922334060002689577070395652716201966265187560269673989271512667886827033059104741375295066801810995274802186552257759638707348398972585360188992861833566019009743999934295973043916374310612634883489902246515803033080824370185996862835809939712749146480846918816849614755025051757940588693412886901222063781714528118775996318893609147667166762638487787440374576030536343040865034462886155056252702283959816018551425657357714470616661436298941921159142121829404360008513966503143914636692149843647838666511283238821739511772200938374830712377613471651690241068769870408162647130292731004679467591566642603930696361145136229419819875683124616566457651997185923334977320743973900652207447669359061637761831953934954976330209884682407185103538263306915287118005347360415683672128487188157389937911075266253684986796244186083171939494212631969926483632564495529585631619962589765697702214176626797916443941316343371480736541485672563357235455406066327222600558092041433317773181763476031983933209381748959428320747319452055897324652765792358297315611273081167382169630729322639785205997692659649243733070969493014911583156574567768063665762790384430681588076921062905754586284861004987981117579278570308359092383301929719424188199937822597513633968556330911881859187450519870093890022482382173984476103796521095829005220665839563869253444080754529504089460903107118007655045586964690679362783472505533736344953926535228249368874348906174941402724114927638862760789830514602889098593806522680186481058031344727945988438581485886624079317468295225028501229133293315200314819402467855904562187416569212594246373379152987592309422966409671969231243761638538564072775293101040639428722117125027096750263449286669103096672424531311352145332528764269007849250262803538323876541300706559428310966651862946410003061844723700344777239886069349071241361621906036184346514861183858204902055135918137413273343256959850466370942853787539598846985779379237851385386681765358696438292254642111150218193522821236435403887743294543041227361695756304229547115408424655074493529994945389880456896233042383523720285731693715070898426922531741087259511251101812269275595283077773722089162632461331599585307734793614342183055474363697909794189646253926883955309897375366338605895018637562730863114042196320591840481295355097993261634517885377469505015602059676904530112015557500609858030487631753346459213866636933687807416443351199733295694491293224539192016006197057794687549467556891482199237424087826363055730209453773407202900301568778018409115328702473225119667467375749478406025208804951947339205854459032584627330165930075094012570454965721952712669158204262377949897189871819704782166359770361932673714946038058492471436643158397377307048651796263691639967901073637419304710784677662498681916032878020695662276943970393591731127626087688610079360738352088467796892362486838585755079069686955694294057948695168261146095015483055866863208195936240556136338469407024429469859475845861860268321322845846382365525429474409460875003141598605212681011564866199397410128182716812334715079893339627121803413171201177851866251211296436222323025570441272670239737912100324760121399593808067098539026120880462856088350306321426307057361709289248182616393748183914681532271742054720227015930250917027546796464816446022380469321178910164425081171642420721854426294752712563661516326327129704198645929899970324979971346454100592866594978931475535636981428518174492022046448992590775782478178782227818935749994927307792230603520427563774992325657874995776290569028642734142676211991625835146957136728881605532398602075755417682710252362635316302131748585629066308372731256250302567028957616124505727422410710274901601151570416121750981797696029856297183585129460765579315088693101515224041328596107571097024372505294586050853374128072154428665401939134720205293772310141914522068357087490457037247339812212031209114224511049937107545853249875875048752345988713245391898003361628616216764611330988999318005201972797970702991032858971827606350666695950491460373700234328548476026040616518083879318174662035293251790347490883503375307671784025125695334094469700696921542175588666425101089034597456785950345314189529071472847865661285090478436302634810580557577949734158936116571862522354204592361365982599005210906086402506403252614624916751257282213581001222389594442111340276620036716625976731488496459579325504407129168752259447305866189450247484966395284076846772721072573878033609886191638268257081316017648983760235975221550713826463051032034210339448808454737009900866453977322167848622816881098159507707731517763639526954272494318682212550752730533359107378175891428195688308705800399001708871960112343431748015358817660006320173757625382705963496504991143456315232954202521116776330063415203925871460586083650792271206761238663973624667643719570291857703052944287955796004793813126049994336432991902323693977078246929899146389762495685165738619285479823871498405298933137224396646064697749813795948785283562877084929117350636163913557062324848456028224013691793390980099474508474635555685383021240029890696377149953820114531335095395824954057543216336334919184109327692617975467969783881004276073035335148152767169353590439498369434535866559130974741483717658013709565112650162089387008822820061404799993649736864511690152307891712139081009366241049941124797035284640201670661794144490795015656756322026205534326715715962441091588922700476049063496835489812441493694044562163361268001564115215914578049829076866971436788298173023206117639412687295277661197419120121443027980450225356178384019522274591476829231377023174961054767893540373167748934302044833639608813335633780097240323125099791366555413198696888371159797662318522597553606751409549599484767628559974723613064661371275323258035983225751428032697789977716891601556210381718264705580095218467101225852881222768961803697037164112745151621801327678411792601585357486715336963618562265121070722556215176529841507530448246766449702288789287505415322792834040069675162563318431058147931787908639205390636428081216143241530798813593752263924191744958496040008207884463494135265565456488952297580747067840248409161757016644907837390146183057482611210774560207467711922148157872977415896160925457481362090900366348578326296587338034350416699918526409911929990931805834525847221572786212999085792739815756500956973119805692844927711448858023976065794999668074024706085242009065622934210512453552088323096252137832241274598608068056258786021728412347555615359764172051327173096184969301735799271619624994177785098374463920958010385265959211625136444740031116692185942337250037421020982935700274790781864552466405319553638365903529633688545550581749836944115598347214425233292668534641298032428840107272700547447107397829664873245708155719328501533354887427419871214002143979645192159957965956704504339313786043336680801940322682457562428933247437877142905233536604559665913097412621847164427515343888324825162646326251122523510452022389960054121246549843900521444953244358062776104953657161103624244840885523484012079567461762955031201729511504235625008218493251259703574573658199814099284467156033861052084608507798042886210247560877805967069134759409288450998319500125465819398054759774242959162383651338668986169237533147577172829273888599366154016763512505613690740874068013076917650931396306922288093486232742106984465367205599814729394032660817991136724312160640427409487233907733685013952761226207392610290823570857479633269038211609333470875934891737260350790162034245038068703732538483762420048930236354208711462531540127614730354019080452517581509633801865741953125301938074703371692182694897588546936562123484633934226499114258911089780298427134553619675735922333413801606442488286186810974967767588658141987086829620504323454494065643944824332874519914911097727320351299532615214853362728933217667412976249611421826540503824728630389382786690779385730929558836621486536077914613510191595715369865087377965404898571886373499826465629022637955671109841290796495254213517515024915103091696734810586153381532594147013914148720523231139270669519808573827933367576704498388248377778848217743076068082186481182529064140645530645761807802867264360921715569969665195788733975536320834825971690695767143137211012909160823709580696605621445635357740400121274425192162476170397223029151043166280647828956963298949177205868018701070569339181005033033667435911538610669219089426292415557931067941745828755860315617414662306706168961373661080786401080314080749713391993486764122802881663648980737749544278027421179331820867081201718421707710577079942791911178151177942593143554082430157832371815036504029212176145976913812559628514355713929530901159539260269292244801182097394097708966265802914419715411996429244326452076461605413238786425472200071884876247816225524521024389391402428458305834604685138085965157034385416605639571218220493504204639421797358076421304268891422917248853829077799303942590007180876897827903995210249911666948114616272414307904416806538672269387903315600548454569517833291287205445374163231963258252207367764311964205541387926445734202294158511656039399798569964100401099837732639923524764005048344058834007679034770558398446748244229686180587573327283533813906766872412381247999180123989036442803183499148261556675712291081649694829104532831997801201144121187665122278069217775879918086420287626965980724835905316813689283768017951208202933157662925155056496772263144817207027006560963115667094660325886299540869793941104713466395142388734918591357927894664174511462567042826002838873577106110085806537179729330892690249222097224885328549985005884940347368123852137812330767855572997916061578601943684750387445104939984191531479068735867354003211071867334803225645689914075133698911924334508745723111908020516258378616021176370726829470765362350699480054262573627540939428446269107892460408286071921795620916550343834805955577652698700574093176119644194874846125837579213878382007922729863819819256448212672379018098976550106049421083897353460092362411004204929076391046019501818982795404392436458832225026363741109026148176131086234459940036235680412972510915120398294808482480062700204357599354652990565999415813124001471910973000535743735441220101702122323688721150051091648567337216351532903841264779636373131616372998971599820220547660816571533423335805922281229933009522235764590188613492220138222986574270377038091681487905210569652550438105900649984585605652953872448522951791498315650795945560622878779307211291713772661176273101509073173100353178434987101174612550498494690377493046835060428820842962246350590093935439670660929182254513170564269269977675578776249562972300028930900487809536258590934438854018824361922848647448960366262503129904336106863454005357707436309817876554605520384164126864797822094093557076339189212168408879234011634691946931740505901041898262929837608082194157910633741492045859271431700617443809890585558291465915550067026579111476798797702295326529602580725832710808629209143218383869230826663552503761912007685805715853795488710186256483780238171286930752353414761631131954714536557912936488117143970561653690290161761515517742931508493293485868794348151194670254069447518925850820426071488230437621820461738007773306157869248078395731877360330322071174762096664031610197131054331758380834204812542963060832818147713894006761784869902069157323474381839462064535708042631421543154707416332615012053158197390488258989772733179009129044647967152538289592601998331532377964367032523707334339070533484251968330804399353030620887062898541101914969927379177740009107460159626929866336825584464655333617261875460044356745912482892561225584435675244361017917226620780555930848887086191896395874123639229689519509063902719436541644987628935932613605570470209844774620164065764189319116345261308465041562180373025718721073335510743361476017214444891358653531635164078193352347232019649043809956494614279121526316072186979278770213904063556022395364308771250225513272477279496408367422753141496081754017261809135771290488941106446304768002093207958058405897050807547792764140990143330451698135618532076834373393947178089655294129709272402307458923643112215103408639607707902994838842603691044833872914638319198055957290106882601591749559238557973871596695592248320254986926764128547995796093708993929854918708438162840171728562209914210814689423561021391778776874403754618273967194880465271089648392503799676730108299962816828371572936677569245966680972869086307856639718806394903339754717216472070860903675613484184211586655305284071950666060544420378356396370838029349922642877162619873526013895869674717210683440722124093105907198422907641227158158708590437646548428368063648014873438707028460784602945813664613651770483763513734991547871721090965950416471850389705686456782178972726084324295102602172591944641787796336733324290026699184947132140562951767204727751997940094447557857812442643818778635213688541220021655434889874343343764275635554430904374041546705063375159281584025707073923800063840614383899407058591948905013162977560682052489321757189021219526077055560288535779154202148613481729819502999143484221237550856238870657420762385255601500293461799181178208435337125120521105174887119582412885979929847048253171615018942527651702799504224468733450810993925480626002137653742367059334688637611188207835826874755982090550195901960091769743152696474356432190512741872103064185412803696716418032505028888041426933164494318729256119887025082860492605075062269813709635479375630828720733183125585366814207728859699871810900533819140714448626516240114907190144866313939446434080639711738044438592312625485800391288572975578783039077593299783592778216994852948084880839361754329946708957075135028424005912561324403072488731806821300083814238336985498712609249835164416111442383789607167600525388456332413085148183914312423891335047214570443361730772714091864073649940789001632705783254274442913005680116992538937074700137163488510608294232083626947111932429354183964593890383592352755959910750676939023295743936059354570080568443765844721327721876689570727108689664258328342506075105418880679686717109763694461645733695803248170898432247495395575551800596705847675324581300062938733821623183352785338896396754008042054594010312304159765429056002191683421326041435822136697490794800688148571266433247273297908600702009823890548801926283148947301984937931518353076207601285916122971606496547921889224098514129145625149529194060953790471941633972392794655587143265083727625005523440207673308292994917232634178765047253533403357931219039835860824753661034295113753396463986876570260735689540620225327728935868365913164387128383848669364946781946547084005316086510109581427297761135177773772173583345320451726304420697230965096398734136642321297018871709951620436487446283146294646243741470527415543517463146440915364875826320314788667357356327162233731372121953435598635832224002277471992771744086195531901544459857728146399329095472670088596906206737069233489109189022187078113480848171216611943149627170980682973878254573283851455609076970583422179646733419566916333030898613050544259678609725213545208891869981705949580980363308719340994755476962944996872501319657776980972583068629110638908547054336074520784870425197684476773635659759729827099688137544782877017150806157530894433275882035995662966025395955459311632322067187032653310607304174499887261775881129942130045569274587220587722461903891190698573955781632054823412747319898410115023494850124700516700948186602849645296676926982265199495870228628524779227706633236368479142583805569123096647523285576170594107156614513324982341988872679646098793741965652774114416265969288998071256358645232280505860882260180981934614218984126966421031104133105050052030834596561013246101088864944433427001148113314904880032222816646583326639019578667672963669911249308941145329709749500130014660379231839981298137946430509482948003930777882814576357630764715544230098288625524237023478649267419671576923558560984798469832789094683368427000472877346961756839255464733335241098130717084506194843098027223466761870370069671539305783587790330468118532941501146279789360177453795092616467009179958006449182791303146561344312401807200690367597369940059411085495116636473843744559153974115165355244022880087793531954931588046192754458191655307282919972997706704048552187356925621063328196553719373492197105757924771543430316920686565009218163495048946849226981634239610779550505353892991324889039773396018590634296321546419297822221429577338240463941715907849775636381882040552191761709929825915207862699566213223856624684914006187789403945704315271995289683760400008422800310352697608111581023899631678010165557486402015253645617344461502727424277484109591026432130551019427616243359148643341144575856485419806795501485183030365970524797055347293080982302591863982814806556235953479329862866235236574766994304368866679121017069353724673670949141320975740672570514570267086432113981317156302837600835067994976482255310704194741615557185662088375959846260505623698490295398123166947144264150623402640133597586195311445877398127272227387488474628664688889045900295808076862675449220876155127971162224163300050634305103969261091097080842707834829653080245480978539825252546496983978825325997132917070141803533972458679017042560711088450723183794694229664839693538017050490923750036478236166998327619314041944859232787862679063446477434655623878429684975936218831624628249328362878726260515592900546259771317837180937336659697544199885141298197498122970801920420030381937089387814977564990726636008792932472511731603977761309936644299556208954186089269494053955953983336990344805641613845828250455178472854323189204735448910835372849820855780390021399057975410821117814547658685836087585635153872482013411532099119222163031646637663568592547434317350424872785639131875644276107051942209343070160675720108762649424321811150787864407578627385967157523960109073957515386453040088834626781898796965709636014342845781034590727539698220672816391404971986193961011649081829171953390135053899488966597001038583165498093587558323573983092800280791335515969480708486479165824805601629411387449436307744907319371604176048067229464372921351477679789433669115617477315448207297268525665466900310051513168809095310934001326059119910061780211195958079857216360264486485988944025294888219878282983169606555956487411315156285771468346698249084761138424825238040270967587296329106912664957402071816527778898794475115905049027355076442799447548672257992294100450889370817486916456456292212902290711629434282760990009686498795613857853704587906270283578821523803850216459679753884348799988575770962574964939839266791030901860663943000091752426554417751779530148980480477225958801413746264891265786691902270853800117922629379210128030677387312951862368471887156879842880568738571575354575523122496337798381135222709556138775980143062673286163005939845880100403940900105838791193595782276741596273468229143635642225926673269365376299894335749270344212328551180078506888867659043535960699075385514575573975864264182176696075514788367189910705688166710065958147823723319837454850873911401122026997701248227390467493551997650126328874032453230566305246888863737559947764910907632915531843553686110118627788277513788443226711957462024307372913867008101131718841210481984884104556299465960959281113080103201192492837493979822554492840952417553228641795545961085432278519535390868929342791752744896325398018175744208434579016319457338555285390638969094588657501495426178621536554045982610816286794789603664695769402852798587550840467192511392742500795985635244805894910095069746306299964511296842207615188903691968531634588488366834252052170686763272070318156197795517786813716692243705348575181124510225727963473846086238196569201747166688422631976314664776784162746119735795027978668131885970803686426657161192257069048083919075250358503488867668515525567723806403392979347952684206951683217318895130133362930297481018619900598487153253399034458699060439085747538437086077436408563520100551450008522940226311724672270714672538494053224126026452685784745358113221267706536700662056918068648280593289567966155983467839361057006459450139065003175054658978139309456464210505569123970034896502555686523410057922278754382851391352752911419550964324792296452765253237555416648695761245891637172336951791027415365923401475273258815649797876545991656827020388442913207701767317457589022923429407288340802723253853727922774614655994960057558954901183353743121810586737503588592004072182409983673472585006073401135163170966968438775263832882159401256902222450458033777673138918800940965973845774922531604082827901314584715452484734331013483427658988841247208117459646811232177870078935593538995580908720438356952716464897061504571705274633231913908187376183993700306096121753314862650870401146516340230575524184222855818717315354833061414300470988634248772209910522680405285918573923518415024950835162263964336759478452556949789914540043114349656317486907540461986645816534355000421665609896323543100398781207213099593095108885085564258413594859732099435673749679238702375675945354170823841883719813878347308647634127984894323431134288380059952038214441446055843973936995503674173259639960580078008896502527019795773150098831359548856018978116381268029180900464235321534240241555038258486964065839116643940158032562565573041345112127173654174580146660690253173453519850715486345211507652313142606099841858083492343717090552427192761064264746041854110958096542843998420204687514924731495029166965176012893225120650887612977415926311588159706194152499413825794102481735510077756322152201090431050007344891652482395543416719224249132678051935938029366484092749928171937726155626243253603494047520641951798061990811441698150770071887525764901862413481202726832764782913306254809039023752788215187643490093017553463271261956837962848738979688534927088578643469766677168683544185665264363200748444079741995416166748232031448298935524122689541114672624838096878841182701710732909188696484517615346335257940965037851249335526405698449001126059446527910348446514520117796808964169923347510802293580778566666616454574301155000259479458832471703700572621637910306636494978370024958520873922660813144415485203124003501878594415377520251409536301592020171430662573566166261095498252517146366249884856540503275480890183042704569988464154263639175461358680489588080938310330256856702438949628265564829014212974335790314686663219808906561543052245146871321960619901387675095123395067135137216766448704564062823912815769865309709027433346617757519340102898665579841685072494609891637998893613094086787260225719516120758126146463953115605904281020853625249614677606998496258208470810275313717564193821364152607013490898459017349342458657543789620985429415902156199576176481291612926920160678202583023787632502573615552126807113927594148830390547553333224806317339467903735612346346061667259678451623457615960188689788097285058954151870936262330476210512233426679990270770109830312611170234691086269735922812587876680011486913897287728735710284486098059638369129866791070230070769650330766256593058379248010324341195336712321275712206517360628981492646609195976253259125652386027597882069355783739859219464861839240679492494279340758254325065927448249646430282735782680953959618819768871206176133441130087821066591665347348649280702126608477343959695570895551526045986159386885580303302976489093052009511716102473559592880677522839486029857730223822655954153179069394509476835187282179410467860970050097526933123372930569799056695616210594969315001539343642852239826348166841500002132704463860253287288620865840141494661478965278917448438080192257413375774329221199009776331990475860230373008221112736421784372915740156013506071980416267253299357361015382362945452403869510152331349600246516130835823623137423612992364024722854845487126009671544523994243775772976623166815653634664842518284623472369918686401526502491070023774156959405248611252825850896859292092439753096838479761781634265492041897633581756953609385611704933733960522666395866882709251451087582154067254127828541841738320998340201661290325957043040238321037492100817750070041460181863603859492558899375262839543948598580615226660632812011028282423178171435833453346924876224279271098649639050293440047874380345944546904737843463788713906552556137060941216549455791071383047377579004803113016765289191532832872073713007747861892138736285531190572354999209441995528055605611417353047288737270530465631905152283187666766325687976202334864415864273201117167709560144755682323051187661083646925899542101377694789209572120198398290889773711182575615308120775104260794225000670635547545635939346916984872074162653044014860640515182593952451216667214229106967540811182269925163023392493399755190132514764996590658736494944395063023424463851398985970763083872428841048944215460552360422990278718649071087222059109625614277756515121455037906483840031429153474994192298319044662775309773671413517294128244639968178551692943825105674885652953157192177101035394782378667618578412006832577080186755597933420674012620756382640065879477710300552177620958653111468491701420659581096585909720853870936606859539178032098225604762128884089671557350618519103347678769232470805752218075465549787054039293892758250242830438070036428027701667471777873333339046766232012538798396060668745981594765753822026500501050118183542359860533598970316952192071326179533569003978358952603955347237867135500775797488353201874469734766317707788610156770760172778860551338244108846307574749332255362040798637025425779164854193936644452853008554284385463122787488644631630601138095099484363535213716090515342702269949159683724354626067708514242565628530137742319568697672526033199490552924133453112229705317866834760743620427520573034070557599086563374936234438613226194702855034304529323440207302035956908190384580771211412162672960294954509612406302590093788247879186139450770870401414081043112793690538956560179591874517347293151166770003102942051845816926742791654678797679787670073740177323682847575664894394438527947362237959971565281722118600060278719791132291262023903434365623202854222608721272918265398830783357311732062866393951982095039322299386624286709551853458556729817221771421904001663772564459546889881468411326442503571872448977028043597890942561092209756413495818058225908719288733016900344188868187712844863963429097282863234222444705401429156482674250721002106408377715963324877539447936702538350895599344121049063316827882660568086360175430085630538815830345774821878096979571042529258735547679774499356690869541297887785592539278436995480343948966259131714695363658604490794784849065531522527294965067695217703900621266998092441158515516506333869864602524599822403894789305980058400862910238655386640375160562333780927635308846341060658026855668873795147128065010488446297865944717274362513223989235746422323448232954499416957590524943977477887210443028325362278146929818826454847560786592058599242117999144369575598368883193156535015218327334451058857983033817029306700551616944290748938295271511971020616858208091651432986811864262944163447552736791991700861326168763090369189491840547410106218278102683319477838281565360696111552273712162172583496250646140042151434322619980380597905877989324741384775160653719699371918089360352282439246234704634870903404596906621041405225430282517942822209310521665308360377400101412068257728150028882875635704460904501444981139674829284467421384738140035088364848575216801327062132450368797144700324383878096971805631198694295653366724130965159428579796856683216425776575493273395165695666135660319705492202260475656572555448927333778653968263380311163402623664228384341179840763430032389472708341824600285121907370993299965125301104776958393723894537245439515922040968513812608164241368755989772392004453328112416212551569882899915491051510690570622057809390417311478047438307523834473808135090399720782420149789514009046312715389591587501307171260447146822287983484412425171531878901255673700048643041749992365789198322876378216915669752249265943919263058125597857518007237822941247181945272743634344425956695432304298005640354877594529423160499076206153909111001018201962240660753912740614700786591481843199362742944299623671827013475821504818133385287697083482705886349462143090993362902258775439167359571033334442472768836619638985963652246471061147053810974399113053114974858542565021086084514062018205164886651141126194325351193055670891061300099116650034040465358009641653453763407694314548399119187282443114704569563093076222280200616885801000958564640054196830103435983207662292916465346601308665046742825494831380024306116065759260635039633705991548632412773687229589368453852845223264906507295436615476891802244278437679449169934969583694315321500450866145513323320114423631823956393681860692016758460740625485215337958793574038841274202526124186651351445766579511045169075039730103007644282100052155720181387452540171068324985849246147806507687059247325636587651592318199863219468321630858334308318857756041822798068112509420393273348068657366097204952267910403917539645450127817391354511837048740947402633963666952279524332089596944015743728539660265618916733531966617113101067204578498399404564053883071810269843262184783722915941590971629692091791429806189064703066710642298386106727707777839669511593164139753557347521830649216482296999675031928374686216911595941161112904011169220893458057269033155070479437603296181816909815536344489876178185583678599163246009621947467745903072163961210779005903710229723978729540295482147631558986537418543928867255851079149675345106069651587630236432736536789125200154182963552510765092230708218212417214722521768202456103977452975203181004259323119652351442281568233726386203520389869561348075108497951072448466606487056394563863506470727272941611306421825468885474689765002967832603523446144715113462479961280231250134977154956270205249742155242972658568684320636945769690129295437498712076786003463406336536764662666267041638094206814662046049533979354523471841433027145559006692925164436504128925302122362951148508073805962377814582338580335184083617313607676439792903975204338728029448170423537927259774776315738581421613245043107995757285707664816657066836141797809005305265141438631075880266764222773705466595652008479173280045251990935361449906181622450713738698204307977117493732454506218831738751716476694119380597553184341940008712552954484991962077733346606246535209944408152953934150162886493345430279895728591024506268685451596446907055594362772014447561766152860826507599366648884631795280037785449374651005180308840979628456900298037546737017993253531518705399129740918593730932331110501095030556248954374249475685319455232006597388904908783406711673708319248207214519802669947648800684907051673711682744204133676234410018667515226636034406618894612111227215381646254363064910922461228043522979660987771568570205623822927505525146645919974743930359799054711578339943822863091882983816429494188673958782026127391622569503216305120142926041935882823905625408961640082037566630309044244969463521143518678159877573231665630813673294788401702156713979912379497821994776232668947511749063632925012075964320612729074697445065117926678022790631055889854292768099774867400305308501353423339897055952889684085388149800639266238315172531585338128561013503614488030502334368710551065828584851879608145201076211743355222312851595448077877067677105082338098368471018076921364497423845163960317427104343256530010994848882705499460351281223540008729410503506884381917616500835550674398888641987252707378174302785492159779926146730701242093297279118095683509884692196082045979900974501362637669626389106973815744379099785902644840013640905972958262463152425245061117883954748006774334648818025194292680058050636481903095083731449318031734555077074518448243069621730549766300363729410969110146380838159286546792135668737701409822601968855050491415423658247603382538364957369946400928565814330160166388488191181449046730315042593690995620735703690124316655778491784670348287640270491506955956645081227528857444123285240274079298759175738766096390683353688627182445582415994849554361222148983357579615596505172514073253855951636914128803031484797663490835696933921025980972569098416409006178525502067281763627308267120790324826843131205778877552288481559570695932024130714806395069154501611279368955696448504289308014806513578041597144098303229658772587883173623084457069852919595152830975416210832731361972052453288534510106557491425480125814625822067891720750655700919478528219438199516413715819231837084777024669709178651332626727647421070728800948622956380722893943801209029409734845511034505117680716106876764826861381972839488252915905722138536792477704021639306738938038389383230436577491684511679061539918459856951065883544969588654732838913933154787858271653877971057569607754059565248473276459063411930262620562155844325933247050110568317488404857525108597396186024605294334931585441702545435992428092078308392602258234624819009964324525227580745339935827310573557514465429506505034571675834193423177947713547218354072799899532642727000694192950302004511684754008580024802435229398824684837891900954296666730167658424329016913012703707420106257152970669024223268603861614309615181886571141319562624043444690505539643710323675507676310024788541959479416268014714200946116858932674907438514565783285194363065929003783031237757726753686209137589102782993251314441889356568256175526796352561465631563313662783827101325471609720867252679676382419024900546175090606160018330827711690523735858342902427099917746826320385293433807210318773321231036693448898520375524276787208494368512375031444399811625562455058681407196787443766573655205163075421808850283102133582429578339726044435220948106346644057233424133507892960950070286305056931874608692985016815091673493742948735466054701166578270941537992823006291625910494947676064684252143202782588407854073262380212085107129893640832864216759302896305076354272195710021864654746594803561794537085576447884406524750648552602357946370551279884232142810409560949989420699963313308892402314575308795656171401684849187376984709587186120579031959740107532885496555628987982383685394657702672904302775851870863941466752552228761901049642400673342718027442663150391854706914649716491950617262213054959423867686839443435979140487972423476282350985120665439275137843811553581476997348687457460851493802362193249964463419464326674978244356809616822201673173372470866868019450499654871048972368486486656306699024141233114779963852862331586429848480723098164634416988216621430515375252175239133894758741479047762011996368541867183914726025053329939499556879781965728989666078793440734576965159089739489544356615511476639092903752894888417868036753197763408715470962090711047400257496918657189726349981599934521190157455015730274722989307512531015906305460093747795259742919361105992535550658263789639197977299056070780021148994684997946550772315416732369000753448751033556348567999654086485695644665511990475581244890340693180737961916416993158754844360587175262434098942418160362133184313916356193526743726095508262863938813887981387288983294996436661493422807996028243213434021752609211777987767851929210698193574741631637015006362433613405304291961418881190249784758318904266801348803595896974853249874910384397863602815190092374210768873287166455741506064860437982999739925902243044947082553367148590381188029587420058394623633515908505891471231420509167272744410784226782543956198508427922785153410449662380500861650573095070282619521096021733718538649533124181256816520800535584528225471997990455902932183563720503569471272174382189526889892986724943823542429614317319667991101446758736616222666524605685697250826418607602389010663715337617680055852620489112558765713063865456890311940685407325165886047167873996814503142509849582423361287839302630808106088990391611355754076338793246659436161406160223754066743837275865811791765204751411896863754493356206468987867038737529991525412899054950532335904122481621769912863019536084417041577470251101692312567303018402381288457501796263859552933459621802829966327093324751210491497493555687547266786551867833139447176401069761166681550463356875057805740366059509038175075208624121239891871929810028878530174713399556904362115916508547621178794051923294918931292933509675098291603527257112926554804434775125747872969907092668249411658155245865245867851089104931391076905749384353376114348186145994516428952573086479980564843233165289918609675080879465899397451446466848287003499078616172260791612161536124270231887599808996091224364858072045040959523300336489180671363560568827154848251351008884123421976386756008385080880380225216696611173450357434325053291137976818993706672935750707559981293728854961197487407187115257588779564015353609795685718976467659935598582010532326656253016775277682675736849685081725269303377362753954210543013772607823513400709313223973976176307017405643097427143949157890544662719671690619135713661462955696492320782821285072273712163863342785464332787216493617515404732283345547391543807248645665911534915931779216286608836810034775456688152175479875541986655925790557418191676013378021124925683248212958923484871697586929084735575058037183260501275085058233447367380820548250463238113323828514723878432684098125774555036256704170082584155430803024401222721355337283173687742527421733567215002162989703086665461164880008999968712449668603984471391502135078550559458050821894649804207629370307578696197958278112288617255022793733553302087903471960009732561139347603553373680589904896785802476300253101511567667994972783757978139468673555235434512269589210209949737765652972077903817110445022018893254244556200390282295182181683232129377928739736818619546797838721858229563727140126998243027490828221071759172229017659323462091441471406346364987268122170760961245154839223431198821609858703833075524469832433592839494012784631853095156678960313088173318804016469774813713084659761970217842402143639268321861916025547732476242066479354698241272566755902430611488716887543677864224000865104711522902661259610664051518163196668304111632080831208566470624815255602601091645035709493339543572972979952811946242046763576538889237546937673513544128038797122709792197175019789344213094763973703398985007233951141989691245853997312915593665071269024704742950129255122228434119356193206541154276117127783792645588653316320468117026600292711566945120401430466096216161172288438722718715264838402994429331817822107894615844407139413810211952707231187407970041807885487194179013217067432624945124205274629919292452886264629583041775463173465142668770843736280213260977576984621642956589840010372458873910093978623460002021364631444533692340664608262559998006181965435419566737981873813171934425495185060144465983344558399532841628406373625801443310331670422037468152014250107812680787435860034349496689263955786309427345516585955182961499832014686207359030662019995557166010764851213447439623188552537601740764036853361284330230524984673369067794038975239624249889418391567552924454535734330658119333949091690456177535889397372256394948494991226898469316302792113796705616982362816865973271029339967550578570327554477076966244796876329989462576293668960293367763853109139874395031874326203456818496785074253508511080949126021381888346158180019618404561468181353379320417841022672233853212403915008122805286139508864330635309909877731579448319827320468313722228049468680952517928094277772417893851430347299695960694700998586020313440125772024410063190872233179973671312403726881258972963827133509099651745637927920146123265875224450732953468866329921316812267894277252621681970661670976195246924545042625023639408202208485649262062413494003274656566936882852829170399916516873618706019612307482810802684961802141104668956788148721840620378656297087512654292616823906069982859022965724982109586353861170358127056757200360645349623185420473398032865961400611278323403002857539743358226364716461544820272290807655897807463358136979719946691492773918411913830749229495632887834754413337242377767631673329958382459858009090277475912311023350239879310091740242713391399994676151398369786477085580018029899910157468904907715674321438394502601557631481427848512472557856601027201717347650797712439527133150184231598370520777354513494090586700081974138227391711772358740958305755177103927796080681763733788670816815048480557549901984182538323241919561926941059638316132036712430231816344586263715212302302385923990602374891348199225834813207329481070204424096771496813802389703260319000275534986053584570303377434969394071137167055043547768530386192033188742981250512426009919972442654151255642273550162199919211674548980699590214860787509746240158678651574409775052815125020288294740596107405081083326976808529399230757798530308328763023676568435949060257005402755546800042388616399380144281920467673594460566571031436237808856613812632042230586956999608468694208249316972962920057263557800123750515417842475395065714984786509238302088878541953054335595394014545407488681692593526807040168089749632209636379181071921581729144894103497374056233230765907322344228210130290299697357289466920689122742485938682885365323170179638639895912421833369716788671789041051642082044532220732767496044761557445005215739747229175990051207796021107163788963147115906233823404966340796975516733476903002305775687587600001865249919525274205717656459617230480755495416105678940571477239475283939217641119815314910481197202512094728194203194440439042986547423718731365110894029880055710679080768648418943451834108422947426403685969877305583157111839459402045486223556326444678236293453362025853955890508254290220576385730641499462786653135812352616694283465582084758751370624302348730187921495170046666615216411009781472549443425730922880525043580868576376183371262555965731499340708828938290461513886212507742638666459193755444318528573465060887261358058137913168188445503554054402043219252608857393498503123223521061778980320061872691917256404371355691531079060824293653843031322730352740765420748199577822362415308680340899382239375708806089074671293368317057347730056959178435752623134529304248870152968720966174365233710731506909834957683710908344868312158689598279800944114673264968787844835514285283005232845380478613833528500602823017138715837706987556661452167608323786413841714628587640257015427400996138315668030047828464500100488366243135517165789707291606443849410960880113586352483254360269194827808458170262077981093449777767086756701052818722487009888831183023208738441969186589776467977306597581607252873335510498617238088571678662717617832134415504833277534306306793833241139924094820948387660330628444380626149766126746205419428588679684566615317776625144117756719933409409661530193763587327703542202642468302307824610393679103490986786715128335401467643366180731213020423407213202739045235339465390454678344848889059388348894115274443435257081082304799126493634666977351990595511232608481847726799957649829368666081952728374880447883003785652775629063049155904909811298557037798613719179430220079610379137585435816883770548689649386767048910410581417304666734990187791773287852992251325025324815729658824839831348212276863694100363295963982126108349414091945010883707976870791335790925678562413825425985175190473968007188686548835896095000122585274943210429887284391637988859514838610348666660592917306519183704181856353535725623743583891059131284807461666558563017402599959526311873492185715925962977269902549074672565490259050149750211742083388460611597472789462601085776968085515973733604793867062679637027112898082551550115349071012500168691064680469289577204530314925817552300663667166961646338171381067527706425070384399233884596322470305941160563955276242565492167349756076918882034791872852221750430447008167561192574057747685522348887902573233458021718096348536793373113487354802684162884948536976323901825073347366711832083341637246133701556961875029789172907531529350781975572392657370545283639008543936589057207625847439878005679959134136078272286202932181741277511623985936712921972009520903810521215899801432942781656777401728788390638493241668814168877077134999052819008165812646378575598772186139220319826878030884082492818133177880725491275084023743962504956869597185105608985282014893445830547116639062316739952541171044112104146348193148895110183466641379896143699901898035209258572765703010071284847902777685887690412079857657636747258456465980963104668023376490390383376409255190679411824950332690170419191051096367058349932339511220044064080418895829908688578366240384568586656652472933090581016659653473543185352570403287690300117026380602143979002476921657774276169331406874457816164919228112327576113753668610712253194591298733264322387179280895824422448333883603201128048499765456837002613273124684863795659341699927430335139196796668515781512342050334251146393325574590888447142400595435128128925463832490112777205346333768815218337095172549164532127996804614907523884771466964691851016278598789337649338849048561946383782810174516964031611044675837614654332182064867436143127452448879624936816028788540074236511020465072852668823996186710574346560121529982011493431176848325605100980678576122459591674849434935571324344144793063810354093462059597830488395656620302488492427566801748018916528682343114799341579650519039384727491264991562270862120307782160470599341515008325364976246985116471955777940011624029890665037555943174776840962929998606389529027514730422050352856350457439918318769304125374782411339154496211760517417241178891243644935038143999101940583088893230105402906738846836755507799128864426066018556632110875761844694566954142728439804481369265982837076595490381170947420726297727426961376300870662822925495999035358239409702858858129490698375476451410801866226626775831102395855604079186764740069372831341232540670527445486638208461789230925845966845224282388438073262120441705239351011233801844369939147909475790193107488910528941450000035423506208268723769722259170659455475330293310152142518107745097603279655730389433949498858490415782880276931812807490489223036664757229682842559173316959717324525262967040556566707152206583641487234838081525908718958561306355170987705142289485306964125802645811634588055713300790836561202418598604763124733386641292583159050354734507216631041491071957488354866131339004010387427550819234175474599072632655022217409369855890055757399923922064140126734240322138976809762543733936567312352467503331479476503246793550186534238961088230773663093090265865263535117070380533411845899299229824512032837840412343576317612447313165858519542548345767408311475454317994491196127802772628692241263414355497903305745752485114972962940747215907610611982850299689222772599232156731147790854298689598105808359595698089234053382963944810810870018627735957218450067418039148321238952784317718892070048635596721196292450398507903350386283345238235944102022914440243781064988281290556821331412308100749142568675092195101633886413381507157522480930088207400071098246900881890166622189763431730576865019551159376278955196710359706177206877615773134774321713997205510320902743932723080887957908405488684543103060928446659909796284814405740832147091267690611193928844297714319090339286871664894242299540398177380644176502598277380951661727590040014520618687477350522942584095985549391334016851770250487308111013069325239320829008244323564820229121143875833976095794566277603573275271938502257767957982679211392183041103991923153669083336140172109850358916354930589113173754980311837378815348025644173873705476929403780341674882609833759293198687784282522541169188519322274952407778741089020598168457450610717308556858967324513705878392265440886687270106959878927688089499020095575699730630056515950787930342220524907828038509449451676067545020225731216909908943767504834233074983872310791848403887305098481779070512011314743368013445049658290947333337544724181891021390322609529434820402714252848846504120315501514437346165519648152952037891439529752639228316084758148019894514588198555771102255412903922104521913741068961823562137611012818075345682514537924974179433577831383538122931767580878457565979217643640210609866844207391076158053902534205555675643646145191681459870863419056339611625922069581942283802101866275218819859473113916083276219216416592145481495467554206701779777600027044518326258749291061869322589712953969147300425972236353836292858123700986398597111542379130355185834166373448084135666039232447638199801167822870947359113677819326339700186965650442752602642893105883777724030466158360114430224433876702490980319664070664786328101902424211405908984271727193911122887564828077856872796285217073277831417653810547273812711138221669813908034723671503245445414791898466879004026533082545952355549864225147278136858054202326872102684902797090308798450074089904133850506852439292872634639300628272196666755598903601104058656411320844356271813242624281175698588136719029697335181578153989987512870623148345246546877415622923392877080067970435457857916395834033866212559415785900875087050969809727528229833201805866205164219672717965013309256284713400376313211716752995460793966573502379379604073961285601652226770459792579249265316891583162392053503548884552184974207299005646376299821930254542829412887857359847429203409897721711759013680865625564900866457596628838922671357998664531561725380791558728449954534564883888784671119128960852448558520865399590823065534977224244769886169027163747008326035055468921657606593593592310547669796531754091352805244913793944887080191931473360465123205725733898066119485506341580751889066803495283003906138729273822459282632933797151281954352590147393013292370017593337685966575468730578698928420638151004149759111815025086743786828444421867182891358456145996268301238531967011877406652205277735046600682988257511904305671264262148488997402962494614475747944569547299831177155969115174103070707501772418295473130610724258229457842642330203493711984025301812879156256797835902701435987755161596028142460498723342045132403219926153947161194201095372549194930919432305756209114853824366608303072945880163520045428671962174138241205083327543422777601456763525458262709289395851388498026967650070913363217987325025606264510213621313705115343440107730951296468532924825318530373439976114066313539742458797923285068578255484059910745700828551266896965555963931325414097561163487087176479994641748650392626953786959241853800272883946714414623265255541588764293106529712092038223814584711855559024758919851084648663296079896385684277287376976895058382855681723380212894035075425314210848677894252999413607322904209303603166537333439675251925600964825437504289497666533504834769762197218831571156743318419357223900772171776239025628175991368895621045572692811053712700098966169110321497324270518179308816516229909900263669088504460290883604259384668962269688600843063799409789907826006592680246925526231165964329504362641358286110504638301796072175349656635911125648068084530072956934235943967273072190309911189723757931390432316977630310522908431178562876187504329001470408921495823459124327203491337475865748759836525285088071360716896022258447554833152737489131056705300097427588943535494610650200271250138036061386501359744144291901323690129529721793728415027990854546742651882813203057650935185267243330985196375620749676236736091932779050297128387164733378505408637895154261490521158673281851238382523793332753022650777053780010225115141625153637131863551412937301528308125921922951412410691427367398169121560344300955274101836831161789028621728373542974212616524092003956302684551700671619345194924081684755321456990073341427359653504371781602874584703356779691856782197840394710211923156180439845465610613193045817061731184596781537545323083076198055462008646234863555045731729483951575849651190849758556079408083003550681431337941712429617894798562953647866276367170605902404414385708001877450046810599560051187554575593560569555234789851237429397673933992061848798860588823848934781562938095513342214344464643375430006017634437645632527345046493373937522141776173212757523810596241524885357795305129750120101863349962913052709691762212560950000707596951507380824699420845156228388592335129668960465816859961475512078572462111780392932041259694473293007870854056418553770495376391147510524870052985642986447170397237225777863757990416076171536921230723723651960181913108072310337087448854052359267354384064388423901141048776619395884802746883449362030237729842597952680640286374889704907059369602600530849041387544475922090794382839539000505330796513574182372955246517095205706468799202808926727117847859298201677032097238949784724943782599415871135239035621022104759743467285423882947617239332047165043406424073100829840171699775733643308164377643356223159734521313017236071368568910896055116169820426303799492922005918533531391506116889197115020055390052948958466422527277985003090680406660120092825766958600864946165072229673586518060605478311059599882455629452174870614043224505464808537483035819532894964064260762160863864895347581041675708087843148599177959714219996264466393161250830560920765259031833471578813958728214250273927148591144166703453470496300527237477335134960598720374990200242843187338783946030159598750914268354637259065741566753579337999614637647874774222172652068369234940433660856280752241616423411901588767567973512582679891256522660313704355518973174959653087188964819925001879897992620717132231063403719539642776876772523004802943956904317857601018597545331063432258202357678107175640055970161853858372075458637778262916877431635904915108859304186886467626129693372410041590698919880557447977531841926285439520055056952911372471060259763715206333564264081264555194662461700974183979636954375097815193670033858906812779233943650021588814535111181114346587271252021614517486885751436164313580968648117047890201472180686193967565607614442795069690557167384431678624491768195797584060112323782038396611451351716441437218118567818112674226554581667827902278681663251446508296995302031525084505594295898974169974565485950595017308469778290295668106416926646387413758145382379698680691051827366039545029043846010908978611223273753914278594932416561362595684850255174831411904583750750732595509534061087442807007774677592486415551537527738374761958870023940943827450853571181365730040144939989575216494549459812691689444534151523630571004726382835040301077623624290920034977280052706792635987325168259803196817844752481859212212943369843857888131523930171344350649289374756700240906020997828269194543267465531122223477662939282263987545578160469334409573752112303436657988665666080643817669545751352248157071734102998629428388291567743083082890178805972478766418595414542587653898473117156662179760515309755701400404416839325074462375073809436034763816179373358338756783244950460257221603389297148911561109519231323881649070618717519437736653351927662453721704926756284773220008726398812659258039860081649223164800611703053417432146281843862715991424379152237450006678310413775239784143662393916989171620805998309851776933759785738111726457080290505741535009071871540815340721683098328382731959465914177745032057222430173757300729267169196478048008528902522915805185432707879160268077581526852810900014510671323276975003232888916178428366769590910572744185246038803641906895399567993219984015979566124668038787201596779750698526226850824042521362634900219809327812838813721489180947082442638126131100622010418416993508016908329068252599669739046348297997267983499500924798770710484943004425858628988625194285173284009906694136831565096342751692657498107084541333798873252342262424057781720778061701720964719837156914242593836451712436391132229599536800128572163833236560452247849650434442054013806463389695324907941198159124244565468671102633943256983737049602460696457351275158119424500733726212951541830699590981113577262248970087580629881575243478298618034025610706402246394373678732465501696984079381962412294192417392095158152650514031127753289975209338802059246143284572893796073678220102351168389873033612047045637156288538319293430239093350986194433320714579964156206348070414243988102157589092350014541609571051928949788644674123276769692491411157997721526842077939880179691926941479374925658069634276038788720476093924924793364172976556445204889299721136284954177026753708068742987524415312569525624552282950616140030581180709648940584624889931176714688315670112994705028357788374891192942893235784887455012555130276389723768242612960304700662467498951306700820918510361273905659442177162928593435193123741001669008305806698066179204062802761066656406072513793216381332233909871535766848631935076220097633117481440304688723569615177232108332615299379806184492915982880037783368463285487876169869120791987720701957487172748358698494469112990672793471608061332389567920240411288174784151985026020963493579111283054479964536925078604441449991960639823474452082401181426808872131209344936496459693905298540271765651394977577570815424080730759267730945885946335302194676761432986106630990789656782196539996484625142213303309167864432662160212519489781709750484779270110399361314666877184693270731124138960543859674962139637785011266736006644233674109665408763308240393589232170317571741039692900937613577767434508846603796371299431837746936348619230215481972832978234515145436500512368046729563384001153991109777811369482022462057220892670795789449397991233150945712119546273765807858824189340383663333434251997283445245890909797324703648654308784070376339203819247315202346864045590723661849493921179862313326915936736670014921592039832410672982075825047677270821632155577042272740753094258040566213453260297257438098849380656348767258387497063106583988278929398252408881566097085414809582495073612511725509550867729939898153728251365467422243747282672284839067816038060679512699413903659513243259482848318311147418820841479427088260911417564518006523720370321571691942487122312162571141635767622360755707117295258371692503205981867416867292990012990365056551179341479709372086957861770435110839786638154577701755038488907933236160550634161749052600125650018582392743805775625364336861218474073351622981561698956257005555329716628571840448768409499996556268185995253823542296594685566924030099261746649987415730256768970047263558387638599489427842785965768093569817056292910163677633219323740220062953954409248662705022926117133749243948446150060408940001420739659203723671329017762653787643521069851541574950665099126914729474254408481439501803428508476820575912931055522232432172233291840346695534393778751488372803469131936162525892998098871919658766681451422908504731646116436015968018308294911007459536108005617012267576025581465186424017694957072401923437393814715213953153384697007534788491115772439522569170473084736764649294281051674514478857975225066804417445502525073439011734332594629219457894044839252214604423391057829209681085096506921897998517268917658884100689819617324225655665992010083635618510505978795202838556167392245175942921777840679592361806266467387548742090605888541784152967624834701025758079763570921696504471599984785119016986304980315311256688154533012071547430461669887857866079494015249048450701797031574733984846810793935187893404246987242714688644316194702450287468106048871681449557397398630711429462404403765340136698965190338803669713914346427739405928233226484060212454262957636985463415799838265322463437904343174909853839338851280452817461131301756968965161581742136772092186739356334136611981375009281572769764054562306884493284236178464743844428477306508989963663295129513988361620110217057516747128698529270781842985140478915138074333982349804189399507648233833493313619127636466892807409630568788082391367939186947784532803115493311259895934367375071627938017474954889804126444989471652374042173008779997904045205478470816819222411695388076219581809884913057279307106448558663741961172901286126497058222885757330012990104853312135168256825837258328591617768193647446850327717003385358739561876331608401140192746579704701676055025706152203501696586914844503316373972317651828947526102989524589851974558844385729665719486340280592723959936137723785507497928608444434479118638882572000900774521384551200262892997006841070359779759954289785010530231089582404460574109169969489293649370181414810252996888904235278863552632116059501340735708592305910830169052532668213239507545701541151835117535010032968423773684139419121983296365383870509626658746472644593096994157956633145859525964115418060373247797895391291781225248167970373798172732070938072856473719531071290980791479363737593848349929660395663990874481437232476681883098518002735382677795252401888605622697958683547885653731877726754283683004352490979113712760561381650781102907394781222343301864790277752405248285350269245025003197249573537396729284433738425252157592411305871774390998124075352903287366432324406465007823379991623205657181086051090284333272426969937202606747231400592368838618439308548558563907739610876190939217520767493413356302829130102079988169402200807820385703881398076956091520816263264108774242193986151987434908741012084811965369034490335239571614175091416595622254772319952498821995724994338712452866930583317017006566526811547115382639060779247923201440771009609210443986136189525993085433828656951882813365303807505720915226547582032970152044683783679504594381799569885006910543452238798270177773284622888929091220221128126182683620330160739641013301960526470666600755680992513143679162639812097346611725000519635256544705791489933782757788534737289887845414307127933770549547632638126671385361814162110896285293456285733882551117167570920619148293973658270921027799180297664485356821277323487366951458456040936908467315665130597257052102608023864471703506380920376458698622819673071860638017515412511090602881909809164060971222630761338615388246996508556520917877446931428663966054177749240077493873474332648226725082383679740483666096165410880838080127317555399888522990961970393360215667326015898886820608672082625611939077888980366582103286824172441661953670219294267291169139110170290676731127781756017538269579800410360034447715357932855373142288733354912107046448968246072963293193052790050925701677227330274857556881628785755100166871766062787130257015509364383348274253395328701916053222749110413721245639493380271165811519318210066319298210726337041420547984063342339983780002525639457665186553134321946473983652557509780621684613781148882540801903337032329472754062957943383663046528908356046229886240806821789902890088594845289941078806865745195397026865130725662090025790919825424860697949827157404228873363770479891563566492122196517141149782439627191835804799444519460025719717116975919075516651309753570651170916976965912329355744830290918361975932964916768308142247042911903022648487471343784219136526270638502443962016601920301303666791977840393973757243749564103768865463049903108366819913389102210220486656752781649409931906718950428990311014259392381155796080740240187110012403904239434202662132575337905261777881575519171776639425748523675784556119908081749515660907862971759316988203420308066703036574082675507842961560428362322068887954280300847310577610127936708701425766068050312771507107543410506797959856808952040920485899534078617198850288519150463939696995539541893359595470952171200265144824029347503931978019469363990547231858156035752921560577183314111456580471896745312114185953760707586549470141959262889895201282521889577210999511203350052020389335885261502737120644435619696256868659109585870231740119416319780593894607138201572223532323786711964011044473837685105542240450334862104728908949223258313369397868344704720087196996856519118244255139199005288589597426494018357008753810874778054578339010331579856303698497917465425195070854508316545860070649490958519805552247717738059377111047089007210142523274406050439867457495945026351347359432605927620897002449274147554390293190726771321139680065048461262471984270200025881494499274516063875929343124166297454689745006738292735996044722471814980588566891283313301539200555961611869175696780424600620945962183954583304830217251118315177278529140075895504473756746484613152333995838883009031664788234509616233829675259106861494954539416745696313793342354026494213633570957506721494517720435455196949799884900238506947763155188819648417661011086099712403528835744631095308274773639824612879693818146038628824056855328095476365866485906061491470990817581303084371528846865464100213782284380969834144661741751499011227498507194786830036172611578723179970818591082482200279914644505670160673856691197251352488698830891431385079183136182565565727910066623797278897912498074267019085799713496882027305796245451045799738389374767287594088139259841260177664457057554778374196282661020328833935971904069015770014734717420084704954038021261059717116873897891642027905606998238632818529125064796942536989955323579427224648082820265832778652985100570959163914827136669332971370135532767146869020002258763792685497445634640460705332384195913484198975370465119033759195268234971511989010174077309398274365288951808705843885233206797607840532333551258040835378889361804157734553252495728745743520315796198866187354202205546800215491365639471784828536175266737747486970625453939355958383155358228665890194278224440461355490806554990068805422652546471350697139860435948891876937985260827413687280963708841569989219481419293970796003278125614862553887496231156541941117084342217068299049997525707273266775240389799056389600099269166129998662747430326586096050591076974124500456175378775085061834916858647900698934974802012869003592474726265344568388426202266500450699616490131860344629551689798382945113651166278043726160457987333885691177019381331230390373040170288432995964078469658621265738641556841575786456916092014013005042450608556747033995787371909788231035051650144207803838614538718896674609092647046601305520434873368343630521084996053843543860030218549677293224576783098133488086234569524917322770049869538282975326235453879626327928174217335494855960528807277151847725342267697988504443002567873067447526463565977496148235492026243486786185452635290997832938988263228928338793068954835314982606020263897186850155837684310975711733018805176624929111106730304904019224426550472094640462975396877900645082258535920042118355633413007740496201615277152684793336183266701973748376251430306507912600172308825213948494946818988321713805874111834985317898645714025405774087950217626192786209141356633253743149107253020795576579017697416657944624655910248497951317541100777010627487704389934842620552432230653192644292124913040591806817444372012488797449511304954556751728864617571434702093692065593470681425239348912528079360986168625102250790824786265382365690435768614232201636830707907972608306564577165481747351833464031820738234973982122608194435962576565311813497406766826002678585352696904703742036751503548707104504198742673200225132207399286379695087530477889030620047928872638199622172028816386298795112509422401877769635794911766044279066895403519113407709769971982338798487620554182837559030652175948458852024296983442194814121339649133543950012690352362327009326262402064691806447162780451544852133639953857675074053984503103466879076078520221974783911938213048571824506040419932336872295999086352889283899937792744010975526656893926806757668476124924075145636741211052165938096603847307814869810907407305265705682726209784529015756767288639266991955452725067222573259262176834126394794115076865334233340049149585958970666195070582530484812199069608227739772364245824633524114714459578576545857381814565860640227376958541140586659885152882922563484792521012876109373687975552328109544858957145856657621537441242902814128944219604392165131895992231555263656429469503605043239706270162050274188308218804314315249462954713889877517311194562328914117076418926614374492589216117210329580229416778043114920502952587766662446206235067081844610244777382409652238330074129782700458384420963918655098889536917446632395491384570008696617248053761346697921274602360544250237738360898914814575592164868127286392710161860533135479250659734280709834874475917119214680468860191943954259386597046986545975667996561430437464201630304210577753769642550821395129450999776632135361249507046066936205275613703860433965387176022832925055971036277747336163712017366559688991794220682069446059608131613428071045706015165662891065278251784777205609017972511289189330807480978619864937571338627723972496026800831221512285520463934121041195431794280435151962219847234027486415559606192019767284099935411494041323937893747684730329366985057291578510272686675398858964993723338410018196525512270976960422173597491340208217871632451086930585139310747090636171105638330377696137509062507848304213944733730246626084116421852152915400513052595952764906600604197419465068854932653166354524222653611315054658383449452614581963534572147632955712555220398717792577906402974761414522085450334196207620006851391403919195130808811194020940478551508230350471137898324162436445358117021158459156257340032024944794559992406218978632170467086995084175391856331462956512564926854216760234163158816375908555674867732581451870232896938792252262137110012180378816223090713206564762528972029454171265573755897497666896100077813406315671351569384374574070128420746801444454938057242579973972560471110295265139454039574272837018232107475920973800975065074630576147532511479217811385211485158049256757996916081156653016955246863858306013393981574594712911638605281543298458282953004558130824640546490724697665477336356983835431201957010051684710154908716638638762243672935646873362986326054684328941562902176582366368819230124521225506249826248188439773027888039175202762185609599468155637423471118785035817881787659061465152060081568986420273467256899197436163776151885585053601442791893814240015541427721741527059568956498989136314680540037890546300997163611845624009981810075609633626619352485133144607207306610441134399290790569763588149014947310499091852041822878126717951887735480901878044531199881429847128875953417800943534973141586338146228984176809116953604094865448952161740160127204584358547897874689275380391107651010044904719014211516562771728918351838351022354432704598039762689857181766758920596787843675863227968463792676431897206132305442944756574510727167895315667843326727552786401770652955394098510301996196855043360173441661579302343001538318905187577671946622052257952203289676532774898568236126660933699405061388743740196680749834370139085979971319751417448515544623823552858703926476736535241991365569223979967319546867282757282215755949471192226617117661126678391494459463220307534804409634925744965153285628893872445883564725579270609629743565142899001999291725854869000070077515389849174966857662043327370277231653338415493757071604352076990895689064868605197499728662771214135615359624109656041522076664877746197138036663995366419047938076073905865441322435464310216371697863771461518798706422723135429171797986839004471498871327233062964160310246608459821668101331213646839940170808204229555381282091994447659713556807129714717704159407196800510786215117795610594116411640744831651036623543673072465658233935918508804904649007820019174231450461173837185605155144950559779415661845640150602170207496664209420718948760463318026352304047844503337428090188026387408398822081466376942540611486131176366202351704960013073786734685376362104048056758526690509891699997471877462260253792503324527929259944649345487760476860358162978093794251710142753054165849936286320654932220907158325413111555128657630395036496140810049292560668314160616525534137099010978075934072668304555877955413837674974829869537806207244127523320388310031772002463356072584066089998875097096031906278224960725590867913501365189784086878182958918903230133184263507506393683727968372484430311506494783433228544385692294827755268491832344778627913283233312708520017144285050310714480635277973369590795039536869918029370917909742641707130419775919392037981308194293204081272704419775122720566665352484690100429471258607805726538517199598089458677377021066698892875866955379154320677735945199340415763631152800079287786159327776660528503809326131696543743656345780764892650547739581876644789497143390982003104360351155235017950571887025838112962097251558701117285975082085355014694450029636618856118777608525655432701982233636867414063918457386249490765144425963830362487774722979630508388430155700906337899608234388794826522505855561646261599182324433604313446270340748600452029622417275294090921385949465344657223731012703821179529542606117687468563913691002067899340346278946577298474720820602281569493198898923825080368074341558300793631659878323646428593840590788939090437049064076999663982808104001972347369428483500703036539981830568364193664189321201147917599669228893109742685043403427347044512472067240384173194271379538623277591077679146174427514233528143029648290309610873095218373576946773011549473264399235060773571145372248036686378459200010741466281769367992528795563130809001022713237716689114569205187780854784039235254767743980848101125038895586907617992609317484351013103827357092933571856949067403556168101104046683385791408960468541220646114251728193204462575113462968763213267832575726975966656063283352639593716441349136100817423475655160758596834070731345338923719957850479450629063939593476534366449206884409280565637388796494326723696968913367434019348091248719300644563346455201090774665564475337618017646339088467989577116030334770542790916496229966851669263554823695498270251846829333877613776391712214008385773862569439323753121411499852083217720688296569030070217335676481288992819711367138894046822254514839571859780117774519834083573679592033466695169765552182175525135974542715813520525983818979857494169461951286543868348587298169862306837085790135431779955962740615117592808587847519293394673975352859424894033353699553102064175916870285199062622845998321094821232731400643667288071638959668174747831149557511761290858944721323478488870111081127036604494510490278581666927716103921110337557489845269984419160401950182866319287184920882884969290021662264081830834688375374207507792022360901236263705370482101313270619878343758815970507268101488445398439815857587318059109223017289226451922909507158936134834996993012447449219768066109466442513876650304540035445616043810826347011854172914367186785938569516698216339690584889053534664460890732528548205921681634846038688356211603743468457398143820129341388141289204427067626052433576274093866998714877446460616587396423428435486012739291997252553932373292176374360151706332469367252600741150687444628001072529020778863793663058680918379249085792951381249264264234439734235322345435805097127488584809615073123813332129607691569954096606380580170704692574202829619106130038087937438507990098028894581787114656353841532050403262916593405812671128932825052300794597220052664330867288320176624613511234039977117539906536043141454042843500923911089603549935707543723297374076689192177920260214503867287671920754645121632565497389072478250469261807565062159312955313502926983137703011705831305689034721532085532387808609311977525728129025496040824318094244176088323562528399014251782616903410304817100930800362076535461964126180704481056978911313674068569154373203403032531432483777166808071052610151019557474671885283380193397163008365681383157343081730942763952622654911204224026897530078094040620133935913166338648768884590661660676108214806900720967722459698279003576789183848470589945276367634602644811925697092085902987423896575604895375400916435983586187556947389399322023029183995968417525369258146331192817487978372606472038250436165783264743680124956354144781761113477739920175953650454610613696803460260901162550509015565021427921260406771396721046277099836697817151048096234139546010830743657311143293033639386748765381227594139740875668708114971232139213205290231448047092346298186680627193917387875369398863363764853401705570632139574856368603300158872846695663061848418279400195450307613474049045092504715670381765006828488952999636243054581215777896306884284053506452710527520389208195044875206116844148078601776677416327609888334577053964040151199763036966768252988434631250745120784809978334203216708069069115789245857258974111229230249837479393694592645976340368314564407621694751390602986065023645420800058317059375915034179963573465537087454339259653220299676951569599513170062900691051566740280704315038195171183670875143920577719362128116976497178884109097164384777973050057728696608219292765327795904657661889203397979068484109013570561519398757498283764704428621418911291623431688233057461552572704258739368582490195666068997079852644106645784305851151451995802517508389459769517544202347888681424815242050868039375362812414031999783777323727997296662207424084587865706005042333572215212255586989108302321338854996055226377054010976302218403595959664959561468959438838384563315869737908579684595685999727088970436860283950015654890086501228006432571036057932693456078905031610648152691352472478196399351049728076088999346541304588307349169015119503416385204660894212652729056949987767432294302755512988503469026762386904523157337962749072954357887982393566383542965508366213727208275661863862225510057104266449642920432545472217436305491418486373993155609844303211029333067043739923159544348418988931233568194228223102044497993700421318755563789438952314418869941915520702577423283261373837155125465269023074919768028824786653480811584456363271337521135988783208532560437340007697867473093606549840000710455605640129888029006449339090682301104399300547808887009483739950931716078423997933527593206203828663914223854759356060245400717316135445606322553874595435321893825458740708447959217899159407521719709717012767183165763809918393266844457082479151691258361932464284503343134613922706273681397162742186686731007150541782349635944250382145521477302902945109658564091052883261915101979254221682368416179061856488861007490799456028822557548107487029860117090567298882999740763742582089698600498667047392063124272837271687714580601225075698179158914697139557062537063034042949331842692428442138210458289604010596596153434325328517702308419752326687596390391842174645127091925668550284602426834549795809514737956023780252955678062450997679450296143734298830334805468600699894869204033043778607895099969995720239430188627008154819284139035752001718476091968643506341725118621568821436399150737019777514155754277254546127344533392785929507017465939066291935535669417762269175556441834860816028659732218136696332242871070958223277635917642888632640307239722441768762648984785060612569062266613056458384326824650925711937214221729314364347190418474612108250835974672419509086473427915553484413010802798930814620080137793862780582651678578998616172996922650351296335086299140251435728501625565089037443039938749194541096511605688933802874344098892846405748229429203388753723501276984580480796563500110622661717185003441834720464392321902761694190659781220908348697220190890570421327113062964658085337533575331922857115038699560180852595164190363599263289426750224766093515836529078000798428413770737717858795670761393277047060315809919630933227823259154999126109305011268290217629716517887129861314939060908788331453474779271520394533650586980896648400419897243658649124326128327637315234279034353918655804008713966046147428034505267745993005830696548335845648653958159857389546465826092220304579930235196621615951026578683154815504982204849210547059216651186166126868109191994833066976332691208493971711979396858939480360218448290957802944724504799155743534044897683947675682218872605323383424117628665503349330809955613800019628351907863878647139419452288758126593090925208239459339822812407931153122256750683787481886836914723208861860759653991607980446437742760222328280900021001850645510745714601122259728017229263309810577243464152298060268131584105672461502811603134306517802460218279294493765345538068657356360149616406799797177950553162543456425509795275144408956138652849675956723903950134591711870955490592969851184544960052090937510026537339858029107452462777627404572821114987823090855837389407557693071266748224429643783224290912041442237679078461349286925963122932026253122659490242741841942641011044017660150354107756086058469693895010170091288063523714408326505007521650790312184820684283492893172118817490381828121215885543840736815610529348517218872971721953584574862078703440053954279788217026963814444486486124563010389929503597613958910872953075917924844501249256333824031178279333924194760785404647679491745846940257393892635904645485613218351644006822094916788558376663840964358016354489889858472694354084970441798388907659413450788725757432919074100698808314846159694617159414462433884943075172229588338819946198740981067306631863522653346422273928912289638633695357121697470399780480748973338932679778778227010053622746452199016459246915241468842081556076359868547067248858842038090018766977561796490756311993273516381350965387638928642178087238313601296155636143726244844789799627171026180021806610090888472168989896546606919105133513198502198564033170020158702215769747792985506132162314899138559388679245424936997782470549559726259412034005137067977669396842640006074801945695522240462595104649007432649459202239009826945775722934943338110917810711838461210312500828669292577469551286898191617502605788534280436333385708830800269718857412766507561675771198660977182534490717356556648683426143828068723538378468679097613393677989382740946342922783794211553868879332863648638988478556281345806977537649194242777579413522417190192705116934699518647783187529066761857084086944416926115400697607472764805597389488868152731813008421723162376909800232478210608110845411112517899303207229226717727854491162838300169172795093198328958024172369177162926891207135497386665997417560179954758751805036654941122273920101885289407624086120578524826415723500680055827619903709556512150582928203357252732401978550388362887168821639135212172616627492372895983873942954437480056294637631769835946053028430522003433877296495444164915329614127119113771051075606321076047464487412924440477215748041880479539352165073219565409005288951181187953158071535564134761966162565796469557304327350350166912644028824383404005799059616889781277609655443649971412748556290826439566526371209911258086204326112866254070125993234652305491235301206998208616342434003101983748447827912065662299888024430601650650328968656676483051438696033459036176162344603667593511271713977388902176070317613232988385294968407350684287020022427938910208510867226330620121989558367285907291589721810818505590732081138061273922150200883916362075479091598971256942374563384587240082923837185197208820107589006679272485751099060373676494769176539447756094357607793803192310858073278986728710991889382197834701416405902099787209126543232716609953517023166604708604417042055062865689901299221546192302323751564846894093042196641591079820894738552639944378546466345727318897737418064768626333502764596438052452725730503688183234721751718548518424983678174015829977371489711694756278688778952673353203067404442423692329849328433843213846288951080348733739211665569857923244627254511846096572545222955351245988627453736434153157946720071136782510483337493082017589774364179180014986726367103336240065324537976926089759455840367976750035392660390804272103554723022216803270367552179670394316485219567292356547943147128680944616283316886029848789752658696190853606153737875228213547074801508779098389301519627745015164897399223416409746315870621763350845849985725429476923658193917027565693076196285647423837933028845974013793813895686649849423544944367622482546245868233584095523901315555692462668160614416600901243940930883677479463259485336244496103701162029999152709435177982252701586622550165231800660998133879955492867398322032429894821543968222966233257450673232283148788829224754918301551709027665479363449559712168097031720640012138985509730577046406406292889228732477682931652591092915751624819643233768418416184201879837660163398601458596599547524169773430494936919641555723533363198247113572046403141371501555279124406961984492114298292733574206221348693015381117836666069328198200054219215753568615910974937710172566717549590358157575574976692371717971845159835555606035689402014609120704582389308524710436510353566410130287345086286812414763226227105014091247573708743618547392387085643009802845676250401862385308237761747904682671894728548799770909732937786958923176725686615527732130416822869541583402067861520425756351644093557106598814318054611949162674532632417410986656158661066819535315861129298410200995255902138723921405388204757116803409965740004367117778197306426291810091752414675379686037430169273017031658051630398210880031850844910552266876520740501494722848410815865371323591538771595938334762841079428223512154092233769657631971338373204694084509802647004609699957513755178937032593071233372262543360802064807928706793740839043168563730623163294928062870366541443953813948568301910536228485094049589077201727782908194614261599954287725933818531594985397744960720907303779523112455792472605798613454491704865520062796276468622597489910884423373943489541298268446610621711717523104440626022051919705528261233821539857457597943646811059414433092749473729564418172958648848787574557279782391571667079804081059020315631986160939605299397377456830909238238822297552044252228542132581106171082701953272179895882069818215764612447374302660920611544963985766931771358784954699592723466940367979720540354462698383832911297348330729943581290085928405139563753181682825017723313495850020568759916305890297406968776018705669337314898108511828713713015960918405164043153250137595845048251564259601300338115916915163256886296714899911547813769054282404975396090195064937135666504095298562725901886955185204702133098655954224883512482928026838741276369757558915502586958713377334774133348188535791984192282847586984257992396914766089503345100311045295128058236539090335680243849882005968522060827695548339940931168435920858085336653753357136770950295891750207425632548985474363911406192732179828087937563896565320443334645812702703875515282208409419470960861308102805154234102025824223095426995311249484488618498225328849242359368374998778747187714598809587202907004047929054847262757824366920501496898569857904914079465272038132489199232607986793828849602944717844352074926506188570916854635560687136956461813076011308914912145831305055260094634308811312171253590344204663885079296041806945978195013863767172329129207684316700437358269861429686837655999082936086413656605739674237701763888447890660159164676616095225408510515091754146884896156303013893815926510905441286075250878744808262660738734866419394417050408135357302840003294675572281700029280535301811507109484881252652317605680328703965144622558927068320287320473883744975330256616734015125556975954955355453733713809770614181291324853102558190767020863988338426197048214369909601793280862727333391549254082813429454385304825102090756750286577592826318044108051200533773855376492031964100051982812749858377325621457473573846824170895010675388461574908552277003037343056493211665254458159006020094982337977338268174957694254280809842612721294496951829039697984695183080476299811217261549720797519505737187705963952168476223106185383120122919888423670587382575119805193470066782047714659751401394287631553417294409086378628026838785789733941484510131040512747893102057218905888712784652580783699826817159391345417524736430586476542414731806005513504343058018197008670427236093946295494149130724089567380019931818294263261440047595590468218044553018496478923696660370738261537667964559229426102552953933452685108030442629806893758020742891058679543374801503622461338808936705867126717219044648214527539362135187128976290814441625001559119552925919992445436557222356001984056161163603520239001189788168615297261586215710990208661955099013330461179750694257878997851609407119747419851892763832056001607035116779152810828393759039960963688813296033887131181709274738059799170284897788890709957879296758206535709064012046836687481968212973539955656039317820590827955359029449076406934796922041280381055094540415981626007987278777511686446442671632616600431619943362154311516946366402597450743579475036993867046247817516791943890644500401034689069743890234638595297575664353575580850009794833385911373243764145250040044493973275077337029313344748033037697488831390238628479178760217198526079367275928783329060448763965579895636070634445675005153713448950443673767886991455449941591836279857052988304100702065097354829614813105726558827022444591069580147153333834883862192288288593595166437094016116112630792900977063317672101812440325138594332543385617224053171487296707363203242815082654670133472937044179801214681343377151030540288981747796901718451226991681133844970820557781427569402395811568298497064868488793099341854108673534025533345955303959772234376450064032507265793188794399733367273315985365858526263690728323129532524557125065118644876293171971368427608050912666172638299045224294417527117170892624859716520797405129804409555733445334128357037187084498557269703488359231310722685160947370291067121804846929536336498557520391607982945022568898088857602280642373466276298938759194159550470265337451453606688324144029931690609209878496587393329824079968275924954579049477003508763374911845984809148205666324493335009771012387001816013357654142624875128971687342294837420710741972714209016482052563025652056232144803545610445392150849035973358059787038199302020285422310182987968853261634036323056501544291649373226409767680951432050326573051872542932383762968617774876318284947368814925174729491989102619375276105946208563137164617544410976825872470611320825662799352995920010767094676311379281014311302853417911601980406969237198768837812636018556968880393473309061275316133114385724091593504460813846584361984005939631667423536306872979223367208625419725345796503083940979269236622623045973272949267960382008531155402984592085090351069736628600649685293806312345962862643607782122324700204730637710254822309614776146722554022343430866299960590846773876051079638377919798643482184483794231316168475755644805220916746523115008083372396593434236877605859894575358295656262266526023025334114030865135101537662193199290144640267481679709658005035421848367726142798693450257284473256652347614180806784672622295327383728449419227714974705041858130392099539384880581830506685173413944380623576509885418953962570048245191401120037853213669806317575948618953840644449693208422665525328624621424810266292166755361253729804771379707563204756789439508202397875401981065479262813257414475143439498872250205365334346620708243935289458149145991404513951946290474313072203309915085962477496699000132879068406820895973703359221008265039738602354505876645542141473886356468520701429583373673724576890637052964152853629001901756194568951651079647356461523830199876004896198892032697707211751199916517146168108906823773391833658616498218843380147702885978872032506475017251811571895523437268814065825336406035885595411598159761802481238296698821442892166085107392905766093043269375657795824854232711433084552963214853402721750165152789116786743289858591827457451740715333518103042091425339750378882308447026377732283028107363599718437128230167565882858993365055033916851026686270695359192236030624191981332715670379996272423640027061646530479780070807663361793188143931438499160896459195154548262878311192743386594730430467312108174885594724210095378404093345823611625570651134021569803017344193297242949704090684700051740128823479519847225420609414887132753953152464140039323121970985739263524596304881730323963707093282990568028258572787160848543587801607485760087085900135714894510161935397836345714463039358201327912328416437516796060176203666126714011431177671623408888987137124467192223596301397842925036068917498728101202372077068199938537431833175785483307047232392750903252964976297345963908728222255833564648879655544506832068076721462272568974121137145019383521032200593148607015056518472241946429076758053873921620794944277142523774685967540837198953384377724637686884325573142668792623225820777883750352068882259177380167189849008766375872184489500549528996252996987978385194153589127559599659053534541473494804219857272346607464880279065028143004898470033695054801883426981151992811165723420755882073487869574981438252424000548318014604397456954290356931237877028093570610346607886915798746169273297444995329012466135027806309393931374106838168463125021794272809503174912595808055526249030892099656098945726040442839841663364977871985416127721635702601402657974391167232600744434429150968447525155283740592638505948593698062925571784468804056061303859202301013553688694046137820696024689264123931847353632095438273253020979303361594746284116763577762130790878131205085747629381192302695990506293064626819483627862166332191841067318040488829318745772752371973205133554793012426650862203461586855742235423491517023562913254445402635298291942133642957407818646064664553758887250061716424495011462601648694449017206987864585025798938636992332034990270262621938591215623184287093079733596601506523726569561584856069736695663183693954491891319838621178127388989078087124826858487565922791463069802089466786621251324483799596545540418437396851092069313288575191205033033425104185165513512668059373155586774743475022315402762756703374662367162144342399648135680592272337561898581858655968262454076652192390034646103008237259125638054788251741250508366514449476420393628278795584168997905797374053715606433546314220567085783431938335280366378860616712154267456203424385256318712351444401420530313001854117195791539386151374558873358127949911417318159092369117053214500361904894250682832198522581107785034651737241669921174229362156020525195046775666757304775133466845878267468167984694830341399547129342232948395548215788233387471086158557200441095970719179411844897162729190007322400123188068999262436116929562360807876143591297330613979856390500749425955853287692749560138542958076423382243198589782210385795669836113421436321883614682443520651517653106553031561874114236682021081108840465028086282715569493529194334076304623916261249707938391469185344587175337743025583031854953600645744272010698346494277116719028045884497104406011943864291381566290911503789941840458145755723430394459138248838216176183851666322948481367907903033558468714259971112012006873834691059040186305560507275549055749885560383645610106699962001987429918071748918508239210105494139087029473454793229789530440838378004166271191618823191813924904854996766580754771599983200208609049294820221528715290088108767505717686140897033234134652234185355733410725378289968451961632509434015477293628815183698989578675598205752098055896361575703404000771959495214900285753212943311064178430676990615020313967600501213745392459857572743988676726583175808394487593235686344968597240032184487246372995725902464716124561328890912940637293447013926657085837826436822174249844886954939146321272467361782338057448554852077935441527800151315947433834965017818488006314712343181973352826751584585042177794428447363908267824929629938079935479033672074748742762505122856642996399711361031971544042001882648182101449155068963170599433110611029119741432791362730249888007204060960098088971860379142173649327003764935582756944011768304883981696437643283336003596760027021836785979501888513783562228097168121023851576431050911581175058640452440726696128319887378411402960402454905653600729755229654674058252641013630484829666557117781126552589920775304219918441785185537005710402074530300919561656899021268509853206082090014134305723364761602771823375463966861643515818255923933591602421040619235335602875860163295401450876765557634971935722182286051485719539971342333191934776409559812231035849142862753027695628147990913476391507645015610703007353060925740234484400056789180144263938405182407213117613827239546813774329011300851075092853914097904170287035833882381717257203851896192939742928290566259245182887706381888843118372268743646253313765864341375337556375054960057704276846852689666565063006093896041451243137417282486970087388769637523155593874175601427136345684897524474879614624238862879507394954406820372395911081545146082151258594198488342341578085399817658630574947855665586093459641749323541671587463911456717938016094192042942003481204423630621730438629372682354935432527014273372505473648118912826992553491184228389618024197731965841834014084588667722723382049379648269729310552730438749633970809007693430979456198787597139265342523438080558383121464623130300780241754410445955499051009372823590597718939819353072191884999235202467756626425099228957166480658896799723152130000683861601531055721116080149276486897167591694951372853800310047036650557162305338070991675111887868522741276337908169626934811405464283259699730021177397231185085783541513740176235013438060353048709271186023571035824349073588491045722805519460914947556003394863036510323894829728284881626943522159922723766839093208135701081080507225874958394519592564415261059322172878798618458275761971584903286145290677220686338615479445162101153019076498774858917289496981288279212979137856306409562461126049377958724877304401390649473335484404695917344323907030031621664100372720352691542965502299137686245031524027964044763546603544506340573451674167103033248791762340268529430023442805990297149652337295428843017793305713829487326729041237077117670279685618272742910373266303087836685774191920604212874680925050047013630295382578527375739221814614321328883803016151276201893899205408944123480478931922175529206250764474988685120057752766244599875321445422930400797022709531374413709808270119478805858277723286959289378505810326445673336698143051250935264643528347958274594517544991584038805350150868817569435873246444071458996399390272795485858690172942069716376258191299910550868615919258708706536971930324381916080609280253579797958403250927650187069916524209364048460316516659880838156669555481320669074631230844556920464492809598310480079233230741156600713271474764076788062596261363231230836458357989920160859257280590895034747501994867148809215982391033021514891318647771290143634715882970384985233374118439011338476405717525674387311152481618432557261109984710076692289179533525174411742109005533530017346478280024561964506644124197504788451422577376570898867945965852502634903762142089540337299177258850881249035401186275306382400565022763650539817455310006338986177033243868343718211044713263099907581324142488831081825391307167169713283748301154990124736035627748508076747878570195638321575236122050152737523132439075107708815075632737585836540344708887978664923233104926961254286575346797062080252095282902861930784502700790422025498326396903003376043468873012468603280448106840825986712275539389349055611782272181472234178646084293093578716025122505929739609354122272482698425281057434382595895600869257211578197516141621023068333263024827054443178661737663914818208743832547753983445801197241762927149168983385807589097209750181006665811938405719984670205223168212816199794000735900307446686579300037393439719773534784431153538435138287169912680893799334960813445966916247470515939476919633515255951579167923776808640954659274687077086047247327738780447258078220762552419508889009607327321611307294661931342377720059790663297455601387805331531585611209353262006940396257941416440031823557783747699646636948076799817065348639705582993215402362966899557155028475758557315258615031480286781834118822201806750291980627220103573981674307872480928218433842221934661656149826669721382938073637595671158222020756139177028723147817876441277440678069602019203713561202242417645166782715057085110311415479742128766859650302026760287346528500933278702099032368761474551438482447641261357358884170534316647601141612070153607624381432064585817215103845530274014858832645252018951518932189244599800500987616079564346370069292893189596459441742191982080722968555748532396045706569339929780582134941850873251698840962903121136791409647161233504233268514739477182524046730668231607723532364908860757748092814161492884351767042983685690116626915913287185811543754039941497602010433715015184183385803043997177562793806395343382552930603953302407559690975139573060403266803552280036064721429069733401516765050697718296885094900078076508476725625097705013287386164904537786296717736437550951225452804959463697471619901192176707401863148790336280490762582931133425879234381683899713840638209269815256645464018016929055070232995261310779132791283194798782934358243755064453932136696930941237831350695047509095680813480175403971154707432238193872602141867550267397724859016044939858539267752927668200361883216246999277788848905082716174613242895829003445523123334838403719202296051307039839361305913752012676837570563586503110744967596637314683373295234695689236671496135889669682155434532076351291810844124076262502583748145822817721807479552177638546689631037714190748549388389636432177845289373685799936298949106411311273670600745306205824780954749515045737187862732047337148176552299397144391471644895056939914620687428590998405830518207795038217774167726979986482184328755230952978657577348414919940022924596557150281705809913349036932878217986816236944763888737045826522354798926928762266695237572880368775775618766125778364910055440272563675564812531297108771450396382107475689151148012442536926549468971679293721055497673998668143084049228027094595915500110933086228664687926716248771311839050538410115201042524868000546042311297455167036920370409476838756141008566263001361525300133206654088055138491260986132319615885063846611931371249546203106992190647788986393149950086305497021334600005471388705147176526023547448628422423585370014663401490306225113116165769603807609739492694561622032793507462092436741238261472742269544497302205843771416035108099906952034626406122836295878728164857894724526654151751250490470393831721486539831592528793577499161071591563976335495338926597430928914969619182520742359588115287768082834851945581915477894056699836752139549328760205457249356865810092992517049346648592151605859401843676764038457216416047665770575017337697674057088064443259407017567442668072259732870189414522363988276574900050546216793187093563815489644359340271128395613329467970061141399260927029386863007624991341275004855909485226006836619603755531744674510138378509421774401138016387489066228502153431756299541215040075981217685226013107502758387391635231720166647144452463724633186002393360528914627951443329589038382541366477690983183012105946878050673571181233132274683031906090090021273588057695890421007488723963308265592204825183008048112849648543160653574198650399155577079746012499544141534664531303837822592379989180155340123852196315429680861183639993662347595483754648323046822954963143992273505185387671512629025490797559397580934981168123074281503315620490927431683862327322534425778181717576099126577808500242541161779498473702709622714493011026393020086863927859740326442188989424969225205889623640241619315678757814642685354369417663684413114920975224353902212342669831975003364598290749424538935918498868242545833949251175480081059351143148550572985081637475166150677324418980907973349862075360629946594728350495099327801900879824663061844529856110885688139634444187488282236936732341264454524116086468719752714125920229616492760295999576408748259071552241443123514768374801289543206409609743692893089096342640597799392208190609927210909512216503126846147116958766728532294755778922432776661826908456792695060358242341389778410901014488426186837668522540130060833388222794114947569910985252701968421981030433793876866368297982477109480592668032901046787604581554112521239113106005263549950642510393992181169897470132033060686722957834544230667740246713395425690681897742673117630960873677772023943729984734114456980458472401755873586464668304096052147882086276997620059308972662440457656579469063640513158023745633776840916003068855761337381464779900970301428719917834297336363033242439761427285777299187454671412387812851381993663003685891780609661413301020558920057926858745472122063807982489250435908597990774498194039555943561891032609024262977306477058080879290113374792439065149500948005842496619373633457783843914474941991252809777697414000668522918578959420677437689120261157595529738479619380319429282603258623518419791237370542697893871249544807922441060907812989713466844098929245219386786133229054969259649288783671719509775298345725681216840226140755447008835699125527558564990337122626178008355604870339601629552015083179426168883284338033477375054572321609287575843017974156435267722187034211442404323468947388448376742983185738736328364683232984848905643096803383010755380865178120216055001525639069192287934866723445609583629611233317886099775623948941245719625465975907457291156502592160313622402620461780494473263677457296064084042090924855009605421653576572600904761571453547880193901319270657103803455751182747615664497363068029095812772810730703570237067785759841245768856332297490564573999028348885567929860284238139844193743490188832503230627826963934249947531544085862896523109459442901577188884276305807739916397987853565428546535288389971934590343413472361504237212851063856408978075871057294910066510941271223981060311417621218218058959654316837446435560696591337600058857902087605548181768164673361119626527335067448685447279469046896361899938573591583062772795620656580295978666212414597250365683998187713224066309470188797402517083898739806287128348799455629032787075483281617280846258686756780200800494543466908527715068685057148770775330900666260518458876411354723062729642834451300350193897779577570330110356640263640383983778511898297751656105608330687908641801362567390487990182262073557551008940270376201005752682567185980437753238243700555976614561850482979906476652346130479956642140600027128675900305766059231327060645170649627266634107067395678651691989007895206688646423005938892266050165801569181729392279972867774230248396956133935010035877417681693123410417937602324411538803014313299864137298213783389942553826070670999213113829576702170217810088692211635596878730818725918409846135882964993342124534148029872908559061911383557697407183410908658061557689956197111393953969403467797239593278492188421039760273279861622819805141596826059843305657091844525925580502110654395719011550042000087928244343071506168028323258277119347085759308547726495352035322853839638745324460410739384341171107749767213886683917889831496749460951474064488083307109976195078400622051250044567606071182221738336626502795689270293514743569814613241457313231177081093322438594262368846966280234951958244015824423995042124850746316150648576849897669496148941764069850963797507829368502715300992934191928825498840141670558089422586102641232075727858726108530036363561871419118556299208703331160038728867414426711592489888397261545075039912066172115933565520159399194216336544069082517160509236084688589297544174388921779556747720818822394390215561637762132175820258864795627175888791741823379181968336807266449242522624083156609083925082329682319558162994170125965717339215290000339363291187513467529203872698191983101421385254064207463729803489744122357868967567778494945512095371628872688851427551770774777217822186277677997576466832154193951497189122978507303561417324760733204346694640110573491130935340139497591654617195816527445255287065853962466464969019299407807252046941446455155289120439214317525303924245531479625354753807091870250080613539836127288476901565857559401555790867810510080061314462706484074581753827560906971503265918003903977736657612315587150204834244761082266068159404350707564105343156617572164647793905046626983110836947350540006152824141582811032196087693749775723984580191609460414536659618893531600434684270485185099864409415800511142169917710394289661284805182638442225276236301733128207985250910410135479690737814855778839794183233440856750796297458018637124681620389322559325336132819967310691033932539017983293338995464632639784505910435186928587780030122596432727411784765459441736715344083714226115953058829130465730175983494957074922517899921427839939071416306204220986228186679292815303395894237245600604815378262055181539449025226928468697300976447789037822056843835691074284792422203164791866607576614183233045223541424868248083803933202670028159799841200482323385854715135502847313091407657253162229339247831436902718576170110067063078058917292176524911698132027744453158772303961491894159174554448315987833590687663810863552797509403095764736143010370862558229022992249535955655429487883865710454043981621903357646395377450551473689890919168719168333053554178614128770795473978788729334552962623567388718703444289735643196973000948072946245592358351897877975235133603878923859660589474363829541689076861868706986625832221726967267365204079898726706590844194756848778997949852406478786372070503111285090478117419227953229605501068981862707614784269686858012063034201472064462969645627619000263706379639821697403715297036146498650180490684597420559016527571694265419899744668476984792649309671745720882664240155101896536319586301499014372325631827682448686991584574702878638518283664211040610822713792789105079127009481394570936101164613178570242116844641829725408592330657891836795101037114849544920695074903329140005077758302714474006414469580109361872077181120706746647711448242280531835486679015233726169475753629822233795886725103383369623193695967892098285269790883159320275145484516085032166950761422045313355432249471510260772852606641125901722759986496828404869737502164959205418431282903302835871249163104386776444503466860897230880644030817931678854626694493212043088000320702360220763477991740884690761879505080573172859972768396941633625054121919648647360745930803425543415040869187913054873548681252855682486295960360898282492019128294103524650174604062356381048443710480039465616561213024876280992166080836634933998681082608738434768754188272846253330897895412451886548989800512686474785180653884227340185725237929446680734761189532595408294955853371805105690855077801701443402050879385259227258402502147575088310416325789288653323565155787451573742463124130396879809245428987483204731279030729390550491386702323471702600353009010630709030998437034804727304698772707874870825786380699262859484333525528990055826438869547147105623053395969624407010835021326274613756541367271949225412742194863244717320808822456270521082548991645222073406781416521318946786647658241022961626949854122028568024390571868188669700177847549894926395264016366088039379394180223160273788569864634379253275657716898907749411895826175797141085357041844438065682315333214497479649525100230840555319209810854935995305613567756282693426381358786333865804104270098702193488533434002081977535632653631984890476031449310866050037338498520130602143761224638376322233104881705119443817738890365458560303179180844908224096381698791061027190737501059117372207353927633388036103383917612702452525935369887350441902454376034696409513938742985217495219095186139205252308500027524729918834728184720839032779893214455327419331564432907829482130875188134676703976184143784364289481710951857976804074107821121786478360963594089657494727345751742481015781647944398657118318811112950108657126296850886831585514813715928289173803095261879318994062106157094186507031191589644437284588435160939029470501312282714065977333284000384528183758301669630149381607858743020403596322487769977324950493227728859356564772788327313883396820975141525346624161675881777802624696126499993895680768117735380672909834318570894482725739583656992862464901302924459573460256535969227211129453484766844457582902160268330198980576942339825836741373351640424761664594462411127342865639778119479804976260174571407084192579355121146646671144751123934060819819087040370377359575985256475688909519469798748340884088255720020252073159886129401717575638656959224061087138158761463723813663386295397933892186366191749968459435486495783969876860225590126525643134013462448290444771528360797063142009500918170121922090312290398709664135514385719808409469350861014501396365953182363008642443783911648771133603180452802789211156420406219736782612965312767999927233659116058141923510291867339756359517471480922233151128918795634270006314126980833593693523306096304867590120961575071643530081259305191959505907176443589845183300899133694980896024244792304696901961175045649133918036964002529091697399578962138922842685178381115614555705968457390182479168967486291956891091949152478544972277795667513494602267124505807576784614271182488225761928135237474325090846353328887774499535938787319793242058593581006372312668148995380132974182920747365344996185082437986278188958005871831083464922310103371729766965687362024263836678612060398997347779364714481763991688458036299315102401388751841212640152248159587235561382328972340532101975949271301816446009743303217508903494292536763747896410218252855920780253310745743849013246534508399990995269032545169155292860022481234309255326514723909483632793816653994014808992782928875956920932154958253901264108479960392394100056280013591442945780597666995847477701382315018575842549132034972514697463203892578203753514856990979337937338533154991043829661797978610090000423493545768400805489444302435868261354950392020826402998495962741746211959664622615113597669548813121326122257631251987023740460189877030608238041918758973860549675778785561467763928386896129180345729392541708959326283387322741309669921640726648296869468936123653233928400531880313967673462313022142747939719374652772977816825534227631863133491751334971499321636364995133518944314273644773793087832459764837653626552861241085282141085301959075637557240080720729063561802789785087078466443526499072329365927264051253272573301015600585895286272503328978432066227690439608199516289988285601415453368918368952355140597724999767298873799362931913829254338693246786623783839030448244576884960760792528340244544487989004693861798741302252185335406137877462404687069701348742982117384501338803179923686955949651753448000092941234951062755888815972887950566837988032068576793965877052030281681791272915893852742222360486444325190446736674111808145850042390342223085637300199555722592476247801018199430883346296093513226068487816078067605487720395568029382371464563605697592135043795253235221515709787323862735049788022620450057903197011146087196537388137683652168497518631153168618584635577713910498800925760219865621620494408224701396134665350984378395524806822555633518016286671876612279952922487264769707136547078303821972168903019177789157591210152324573815650256376790484669176201207046027574796758513504737110206225082642426789159714416751094109426088620435151960688674670231748362428114835020243403800830893661321688350146240317982389601449470124227759104154650485464469862323682932689551066449034459505672543888279971982339660100719077698142773158977933109240877689768140710091381032088475787715802312908590810636959935869581770929161996582325039745648874722847630684633700531699949357062106772616905741854138389304240566052723472039904552412323319894643467731835388431122648228815425303674405896832739651486082986183376766685885091306960641794486001376190265654308004235099714659382426337272892198990087262656739980827063716321476877733050510964826687627338024425827785776404057867257638874397657763065767876916141795031156072631771984105737831855543658634166636517292304999110825664733785939678218879962750336203506356758384720455746576913533672303383381966371081250670846195658444721132963052918939309195825714217982288166543769375560898175287235414881159514784813025995082083265605434344581828998988686217058637765582302041450489756873744486931009924932587728000860395411949690723056982761532227987733546467919230748704803665190122348718370321908824873910308769780289519357736731879493195970473975248825113958308402226699433307612323141275644526592374868286312227666797640355181918559800637686448101369052757646929206775191556376826080439122962707666258075052659057537868965231985856755037457545385647505412457314251803355470269769230968225751944614091327597178306733301046519874313073763976630078106523656268418099823124613531712688346634103412567878720864030316848152459599917708993544255664844109297053023643578098342302200372701665862227487570917804062689015317311367591372270205092619137903700864338808636402603066498967548078720300972696772485413672306555007231385691325628294333840378937632460626500438988209574593853602622226555361583510720294071084419544427137348748602767190783138638937001699229361219912340105388638843311435545765918730695315877762614039991376029899301220975764605417025449336708766508405690576182675609447102119507551705677637659998988144525371725301401801258265800143165056674750765254075770725372119305729760274474646580026014308599724832451970766410046772232687631370886175497040106881955185987283364194142672566406553945677330420100709769491788066438358965528564956447150097883718536534355168202567776851125699170687506259413075236817700746861348489184302812025864910272853487939010749718954392575910652781679977723371532067276449308755651415718370792380703557911066934221538947964759836968911200890894057694861518396262029877004069765145449491951714166022623058769659277496816006386036068631512465914374838655711858487715632525658876455724176508375312863076852316414472217461225464150494550340992322265666642701423042965225089999449196228755531452305400577575147346079368004163255848484754082682023776391246323390641900948504959290819177024860508908210272759247700922709695528750896782303715986713062846636283441570599399466114643094792919604032462103982517844444862869878467915469525737528765969838738858554398236914270185580046006141488916031761162806975793153769480032858378086081602688898347847975793075767920925851962800761720615595508908242235431772201942379385370640423263875802355871201321772276491018247501453161854744549229504778013565513585136335615828707335070242779781546364706650052112761487656718658167410730829827354305499264465838550371340071210838011592144303746628462463736498281443855475958864827002621625147743036375217289449165729043869711322066526978260467283295869489477672860921408770533773677853150491963617717599445446343549124564841354729382700773848888098393108592223539935034080456829547931563966166844005174879744298741320598858405932399141401099776709620721084043561611077903232873366493135962754761206602138072921514201846909283680598336980880292715934774005987175873289736157280341014483418068540194563297291036776017138833292582378487034981527755351994414332270001895437481628882519594944498358497729220517351026518288559966525265961678616707757918404899384415257152099466875032324492563608120876030935019299188640901126965763938849080634061681570809475263984567730823467254355497273521515965153436501433763031398046008069836156070121200037874185746064611702277730357101281121548805706751520950263395407602460084633729178647494168836362542607263725037399267031983346495100670706289892009340697930675745927277783764141439277740975406022184314521821760181732170806775696763048474441219247829829538732753859750346944421323985121835583621090777774146176657859148111154687780802715688843805146499956478293220023359660868795267427928033809101576087029672333973986578033485752008193745130374940130598249543468845767076910259733144069083670867033095757353714829385206776765067343336624566328061008430544920038179081578594770449567224160113215177019772156893353123540827995175117145235157021793662899162652360505607822378407636893109169718671530101902790493361565161775570299722095530135892226008360725016035360870495951533556992096784653803762121650639566902952384098276458191068982859393886314732690716692346654459285121943748788541721323485140429375729467153940093386438834253158846667052827624217419852654687793843087331222439240386682460596262645073537352680268101522361054721439263191873439305131012830229361336988104344975960409765154294761743014445730186265730684859351749310650078354078499283163036669120400690847929722076881677931010916996677542224026523408432217049266575993139385957803505905044856020250193395635130687738044849062090633096553855315278445702493965138957104500429489829834964269180461220046828145433558059509389518555663404762436270156573376091101997377392413098825271468079337971604798424856326941422634077793995299859678818043481979141924079110900449769240900427613720121668836374441450535942025726723536504827651141527855207066754244526946147934512397799598127131103124340306061779084705115271149810404432152603981738113307416932940106902198164725059506798975835474384547122030842699470866404823536542431289615555186683937088452135659194953132188827723930596669136004554821565781661834567904087385153113339549514839961369852501074816392888196944215367140048498498635734113017446932040210306997429505234515984340981542988827599999521513102886307708613424800598316456489987815992599149210088509616167713996214523646649289604220989852912735387909188907188260656004630765751236698653827558659399877811702674916056998787548796632254191874587003922588187096648932476778016409024217768609231028667188958961017665181783222052627130845094992470242508570299034869522633021569295842904141057604607694300693096889240142077917113214783247478541106183736522783417206808888119887851160778786305517703828685712258611223468024165834066824978661726775299305300576493028062583212600069415628457274300655832688018129784170263143730625689754936352712025869112768020816300541342765971133361986404073944465449995503110082615816585500446530099356984716356185320622656697833793655912032982809750588265256957507067624651733957977225080139971588475948567524578323039199818912752100334712808596352551378208968327316468904812322192442064336824622032668698951459258015995823248583288858114324227910078057907612431733217593772940793316186689946517518722951864837823038874459081369382574542839586194487165101148150402975332546505120253528669832540820074402418003868546472248873387498005983833620854408918157810938015362220103794916091351579551642888637612738356245052602841964565131889378565140619973382625231320826483595402377592299704091777816013523304381569780108603065997291322315079247576770599409521203608009723758996505259786244208615865441151222014729554406854446331608624947998093910886329810955428118276234088925874104439775222727606816487320199727458794085292204254998377724471239220033633652964795345791759196172528096233515604290705024518898286025024676210379710826804841458201154670564354033967766589125661091912964646060679686664338702009483969209274482472240095123435596275548939122889241761444057021239538847702058503877011319511486605226613002849057924610611834001112711286727843276170507467186735335357376121172826461575397534805237227882641921613203820450693248777595121997752977482082046848076394162127874030400072658722910542175032826397241206634048615138814148205258946315703645280903113209218466771004478529844751812842474359718192132466157575004231242042926013277286252018188420819033935574728133245630096959328347788584150066332303472928736972035383976071523183811909471906429597489108723286037029362088403842530257445086832067083642966857626932541538404099694611776397935714216137243784546017169424282431586373108462590574926525119122285163799022601088413526049776693977711340183187283835985845071408385547380778396349103663516253049291141054832326219565726548552625225472377358864114391341491298639706915289675469159028645136849391125150658779038742623266405314997346768832369248263850099202933828008664392416262292162577716681510375024148945937221045711892730459858707398517543376866175116571332275177709002444035549264125554735604920403135041375636282530962716049892104170985557394939971990652783845318561872645434222292468825875044044474182786041033921941939166334598982441930814359690171172550218849777590405662385375225931849796943531117364475132717213724639958758611355875684726662981623884422428729637434683757114495021219469826411246200549246980310366104078857153861869616433731406730855530606060498638108413307641220012125757221995574279313391821951008100012899606628300298199606699971735886025953628132527410589112701020197308687098828559406154891851736584789927676436454629197912413845415928343496070798035481892614728035462192393418285097370285616979578540134651307866642401934443172766682873549420380459001151284246993048658751633408855035485393455155059094232453850479899258186314867142142453712219401231506707015131687335372482532048512197298777316311906303314485213304348141382960578496238481193038579677393023493219716102755267256449755924920252997102711111146085602864854496255633940025382351639056558652642866941296881030163421251015232490004187186043079144108629811287849636044351403617960282388840884493200441260192308809348936766333285113129585279986322883869207228542125671364875447772375925102136999031279892771537615506769089682055743697923436723960387395219874178039885894506291937177929949428812734403915653309784526665056533844988539757355489941345783088583563637987854834760544485088875516624270762774255082006706266095280985488625311823764408311892238832878201162688934656795329446311929251447545978947791737409099766718524398802212381636190778453851616436898411062825951976414457325222300609367178056811893679899147340049121658652534929650112858961480482911807654767979411943872480656432495511682499065934928556886180464360749293125935491009427735415074390638110117571536694949090249180053041049372627340748946389856555464895891182111245064649085578169892872638670365980217709233877051218887486695673073288167620346883881139393011516811917329097623471905430632894684902894505474926490139071074195478333921204166173445584743900284873772471558250395815767512010308708915352504946221698638770173655444626539773980151256212061335716533848574729196049788586034296875268208924397953650880247554349845656763869383091317260111373829971203623055579276704772221629374135552688458000345797840650047299487295659041373347177254876706947148368689889032376029836998190083218065765509828625628560829321520718352254401705767130555596307495127541403145918725866911794853195140751068540257579074559749782129542811014366773094432014970313351773027104824579994498041666376103124467670193177665403111950223389965579993896989162342608729598837443551724816321826671954965886949365420253865257428218366804872557722220950050038242107013653142451083095403793744849137775853613484580711123479508279108714048749634153961626393205771242935245017927348066154361620161125338702990051336987161094359725350326721115723056750418958109415153012801258896113785038008618576819506411418167132597897000193790725572634868473420029772121931659877945347406837689038809825990144357716999984788748096196905364635717975683265225911115954897216364370425335996244515225006741354602462535458421943037302065007714868017196860863749430420162040270518849381667334564168651520179917822889350902275434810054259177877752874642818840473054433375762851343258837077753794744859591057324085952037551670641800736490419832292860038958494363180680137602450490877273814970706986412274801013813137013789997078316408853138611029102695691811037153231673079657186197588500716229432115865277081886197400563526497720678175290951491261078941650938183622319696483739099179658403277885300685663952698544001397489256839820447389226824999781858955145201143885411881583907904010445978652147991807375736665829919651298466625509408439843921116309586601537890108655472805067026445551810363750159444311519646685503494845747944316129351052144124824211753458239247617924847211185633626657661366432478085062739235879604170255842269537478261673544539748915609403507508056036956912168664730889790107189364932659733902793556842766569331825679331722258887515037522611342971399608294976623014315572748863783441715316613343519319785607444515329228969254512999130688621508519290796774883391795778251252811178772549431973970029278255802578000578493228676498971168653177506076332741987856515196356322309410407055845413677715883261866164990546376100538726752215171273145787975290005879977374672656877840934661867343659053906740909086169774875027094628320227865860949249324110463135337225877414010054368575662500602375874477754230760460890308971739656832201442831668204784332670063626585453692896852137249977784930153344116386617982490725123216319352953118335429834767116245270907230625568024590725727699700750690676633482507862565464612529201604065292523481275609551192095919653692693450459513838239587015527244043645163224676024752132546147256814072801486319206433777829433227764746763754156996415625202138249076892747472723746437515676093951356100114955133301751679354672105879587590833648934753062316426013516424436770493657691658624659423516859798130503347495543820583817604327247896223589591364592539691312180129642459936273945086958452675579925763047672226138687081349069164424070866502939808211521144150470974068270796442858596822331003557396201802479947379681354898025550440480149221205248761785346518438937753617294294913562928906959176620058697167558275560547459351757355266760446720501952233978568723015724281706450748663575467046537768788881231643719247461097215083365675477956312806282239647568230577959511218201003392580904010689338968921760370500988256894989676686910563252494003203368265012394260994027220725824896220883746868914347017898988069137854696547211805183805069092447765705258444686579994847831270825007034078439152660165795528227880459254421844450818464568184034650683306361448302845301803224751903707581814792824683942258590418723369977601982226755457555127217258553937219377263415919527821343306963964579423524460101185347158708502900895958489101235695404447537733486074947906612019700507696952498943097992616155081506065900117867797033619683053668335683282707357978814255096006869591706388840883110327616795206946807907587720583251746778528382169764269478315745278064978618813233471958172144405565582184793207607520687973359781144681647508801620291905803793742783761655671793024792741290379082225859356933900243679919165777676171945761930933580158677626966626045189529475374866928287963503993084204380299757430541648045099282581264077043878841085114817015241485588216807420320341446035116088386012160161718953389217258985415548339604914306981153614447239637873273103711008457683652810424176517163641993557791814655522117487139370458810765562054954655265453475469021906482177566800295026441474241535846816553511229621379992937278806133935605027786254990793705896138460602081242111809813479269600642915720431848355645167319700061361387725758381576594926254968865286954899755229430589560883741716498092206251576832918546995212042616109231077144236796313579145355032468343732434944687968868972889973554271395037426916406725330171458088524892868958479081634164053414386876939231948988674637670509665217765338220201073425898728029313569392781655250153132181912345824253024212762994524435725020268326399291032246909601233981545046216865817985506774466608522923163330414215111743347806324043249155507138707090939693065566816433754201019417333663277879947508688145665629750913495713497311135940472254881029866821027679851845232127830278639387903738760602272859419449765492774508710221060239167770438805046906260289898584708976750291706279099181456426262458310866299835399635842594628854497982443824121444143071533295107654518264935378942517876161996148958383132805084943184551989457736380336364921688418917164718796481211794942799487904405486453266169356460739416146137859031239449575955112658122676201506900002904468683866142197719039066725934820159079824499507603384616543567605803649737424374365123851146751348491624790590131413378376394020612344311590542142445796265930408913980588236529397440172074129446860916800938851515019614250829345760327936439618717594958861020593423277841878924055259568172070054844688015907162916091725722519766397034472820010505293840184562196300581647852899607278658329641103869252115623285370489893132291976515708189452734491510949358593490487442093635882762394176495648474637140554170684108922707158286180593730513398415456451498414276801292986973202491630227724653687244044108789091705882669986898997903908287903601056504234439574799453774622329381191740427376375835714762883032702450688076597090108530977638112297089596992631665445533371258985851484993837108910804685607404006902694515324761291259936054623241996360513443737176271661731599680849204463024741085622077896395183010667189166085179844375730466080661819725931375872812980782902610585482335231735784922483650124964505211546355527458632998866777042560604557610379798496054298824307142787159975890892752178802801901349379914406302506336176356995656683270683295351939161489506628378938002339964284791578721111900289645730545880618103370317768978193366825208337151381885268099608038054504603068173978391419361818070685733501476990195700723792651026122510807606661134635967191811897334089863624397320734322727515333899680723299104668209710993739930628646745405968746984859382509607036867601162209985151175401056305912076120440021206032462181674235888065275464512799220966182380477274625799806182474963552667838160801742483322599313553601463645166945091299234420261087226564835173897049902034802342815727178742159245558585805991178589886751845602143566811786653750242839736985639862674009086079296951049997893337907722864186734351596295179930850750898617863397220334158589224986984031845711043748629386547823732295671670508676099476971145595646499531127705222831907248312693816799467373926741737740909322581426455024124400229854784347410198312144418496540631877458126285074615909994815038861950437872930491368830985640886245647370057003472270871304525188966293977087464322615465490747490817719891696431746092328650807722419138720738316810139676036237163324739811907591377737733655086179133743447133329330103736496431773214708538056181761659363950061902687799033785577958496555612319018196013872665372183792855287200778340105145819714364265967904938463581679576828719899930213195141868849120360672782072334134351027606675939555956263913980997591055311370539710005635185374462249918369775897684654048287426721640575933473449957167511161159992447758992908041456357272360266931100337315168710094085700032493825321477321539180998952223279070514010619619367805898655233571470499142813869845644458759318503173956401911951946324120691007936878593440085452502825471661997333578329226192060498352837698457755151472465770877133046796710764141192076644593952462838826773906693948408932715483218595449112147953068172315102241042157341970589240413940675265558672948517215389436012567803812925756453120567456454002933584608437985349624531546217451621683696770086308286201279247474681609450730295544076429638346516131820159654935392911382164940797679881267356161938688124049777449889281437479412992699044095495620796363945288966638488602671501755543815190863770195909051756295949329102332674283045538329660366365514621875598540545962709400760364576631012547168791346958503290143800342457504959803426164460608095073112768900935431397955079879035651894915757532336512744897809864174828920654935331410029517916872766321233579440234552463895058904054267086656689992619646161144696724992060827534861890416324683786479577332969000711193296297182248615685523044537485691446251548235873958765439826615517079808519471632614064570321944800844025072298244204920432898048661925550361256519431084027611657685117949796519939579283243814374346531275982472991095312255160323574064516274971396855610766382790953745434910496628843313555994766722003566136772285881430878367062681131895525902717653095258090076731391912048945343355417147677919952827985899577532893600124875854211314565571495252324435457503696971068664111396475120276071291065032245739843226714145785022058960423777237686189563839618469892134319608220507834225158872417132705980637378000619451272635562383307282005254256603195941609242951378502740039503095421376481737828472238972383108041306971706897686975973158480317899725071942681829844674586129428748274499778400064460945575815196294009488530477775353545351256550828637344403796229503084810034389122527064558674946610499053085461616898204738893833265825001849997190423994612918493786484188782598518650127705550367132228672383891155628269206995615731968470012205718305582765530377114247774213422792894518932962765222805344999508146513725600179930122686931556441732329209170895462106209268519841261359231147277853398302496912275042208868194513973575906044377138343564649074267421408232843857772333373118783188889724943753723690214607692557980410531537149716290686116272295334769096159384325391823164439762804379297424537027969120329651070963860124786216951512277593455532791513068143830256210466881393397105034222131933753106829139689297643092431179764545424563355887486181252842882052088580670138306128189574317470280553504988506453880769997561847095251357641124845586233193169600434418608285572763695307853525387678333456975067983825918373678392651566810189642220271420504002910897361252923728380183143903431202927516911600445031578678521706321948257083447346339378175470805299899161252032917381995814914221985888993803452402207520565145584909372551063446561366418741002994093446918139773413277663421114322419664678938609117222470614665370083548660133996798240027629782077135614011173196371516352542301048405557097875579345308184843996759834805368078236014280735874397013349040396385496292061146027889665351881126180777933767688744721081720903487596543976424411949827926157290194537101613441746630031974819600464654830978619004157359981035008991468519708627645957944825182910942093646527252695911669723527382065361768853171782430356984454660026238764063808474369609986756623915498152348085599195308575819413302665024820500534122614895757283873730532622479662206244350494976939145534883766005037763950996350420991401830351626174872691850049320886009619715797826289313012331661517596970324344315808935903403344687813475097291877090353712217844261029601300929145649909294938214457201343862305238111964392296637895048489597352407283065792963061027350386421106400524538214192896318335051100695785951484255342534163277081191769288477097999310773210958904780027723522301704727328969772521507733665578272553352359041808734031609687060930350624731737006775485706310513426579857342689798743989664478014992797587588663546892349330136891180408377768604327497444089414706430231922664363275950052478745440820305953440625207692780582198492623368288684091586523634930781453936846432335334824020824761268271456295782776810718144682961583106550605230945966418140467399277015948534496352928776436760055092728313126118798907863686476476763599818199867810178418855373982773695533436143823438832206247821881395584425675967725202910649146185030222909533466282605569047450156278627877542457231103931281461815540867172867878196405516311982780852748736083732761577108663018961293535797655722338622277559662640482245702226494616744399231740745227720357615692063677752048637607787018661490416381742161476253977035148377774001343881080064047283606278976857246871351288376464705416037383363778223077346941754800898517332650073118195656542551748926958509964195450135144413223820401177574883322894196680380311542638899613642250535399167658322055854019958556723541744741757409472184495008399801229494578330195311269535308536477583340059441858794680642647277222463152445765675832829714501375791913765195698266893425271911568623122884531012832378847897826616142115280519455702889466404814188850367190242997873169325529257379443326350532233644887772326489027736582534312308666115434801483964051038238296478624030347179497573692851217687295331238125293300410396856196179957595383871092993912486565000661990984133979391318807352181201834997138093621384308849479890689106429435628013760854049654581403785488243789957838367472961929059025576913114907920910503021476168310744837398368895579563419078215350577015447534595659277908724441071955360827503073344569565852298045137434144435638730330562304129343298196623321010349264066455887205625399575821919004382431575740968816991029897454730151130934313322164420764123091514341128903125628408304402888378558843212357581915642717282303513754873355542431250980730212506678144189011540962821504030815574012453212830250991759170628866853191457065332348508143082726894331334511203778485249831563923429474856786050780179329525468517611904165383030359495566636649874104596863950123708734719725104379497112654742699027853155977306728429318663829590662108267279911675091676448785128868861838143862700518447643531988590724933309253482201983000121617513674029501779213874660737163110742480175941927645890105741386649434143733213104111630167799924170549847891312501500396076331312517285874035102977445513493997290194889522001510445938310810769936564159490571859441888690364842374487640105693723700717811711465164484616092004380584970354558642987270689635347883311150691177650908825424290419801722131242368204971423822246304836782777006945290259387369834319076233296817848236570316774029725315942740813940959777835290995275824975584462262264862750024751691337667816470561348208905428989700828587701196774109345130695033939300503256636353256520334820505046623066319366256135607153689272045475447170049616933719468293590168368407399301046900307800963589409933204968530243678410537526971711905036081756282911610062689193647297536775389118572085918106493000802499736984018130290203124563410422485260590705304402547447360172506688550831573366781686337384168447937644354302040594096080485621535951018645317168808192172708442088273570686284197034825638041016566979207481663781148522887738837198213124922311668261214794483480092522473981276660466940902207040684562495042387790411984516478888928385801730971086264646460913341088380498965882047717138095797067911403821879785655794094992749816232986431672378221278183951736565755069937234619354024685289803823263722901723229370050249215739961848079112073413581104499938011314312884686452548082093630673837959057729418971852281873503165334440518264680911112720500052127136327396614649019367998849351862747275284189639169505246647235124030633886530980101177558725056538280285289217087515886454040450059622968920983634313619963983816578244848191850558193984785978222011534035085979886098584109556120105594331018047075657062801306223522392364270961539410568533561872064474977602154326338935635756693389181522267002103555273340657290379696449982854901067702236350590610284646446008428493415316749299995067443982514128533072470631347861496799561728874420949152831129690195064751615034792906297429007315338863345683979407635366705721017018405554526448159017650560837209293519094603207004478091588642537068969111608509974394670428427170509215473871452394197721749184956943877378031945928756632894159471299408208330348456125428798876566981272540606403306248525799814329324636200440626716909592338010573435872822063032810305927546092063341750392729030314529062543199548119549718737733891916615489019826513711569544088020948414714717219406281348863447991251203555714355731200991419559013556420217125529249893817114613640438650257975663899029155602643706551573950693816705719331849915614289714129638154526194273182665928478642450023168266348174736595147644087581212031081439768839553342884650117594484487421292590437779890794361641649417971785442070562760683129313880449941105745652747237558136641764256034756778214343590921671112696720532798829552144375050300785481252895188847158735990721456899640993548222894337804619446150541656812284281159391055059365265404818264099392046273504412885328431601804384349822240796626717136234638611012349624593917969488276152118524324047740972568859982270590265957769551537205288370626157001745993519052894239912796874861982623114484901255526109815787073974243203110588822195345147787780676196842157742496972351052779386093542647508705191963750013372425640801119194370143505947958498740443241757382284598644267720543066563862327003050743802431122537012930513088160210901384260751445812476882294897524429761875628826437576445512194412424451876226076927463968457124504302875252623984342492044221255097347306308827768298220343666239601258040207081506419246259135641678014449354710711530920846390158768330360059455780519906391977035793899061503293773342200501096059088249160660784866791852211425764439933327460002519132248766485173037540833730398958201923341994881538291738967632082210646576821111444195369182612521356193353694896051630496053550522648294709836277346895048565784460308221754646748762088435975464520514668504006461754692870657476646326721778265009679605649995658997927624929681207895444231808270598245049335947865807763741439764603175051137259443810875639733770239928939463893175462601436429237829303563759027589859053849939778660341525362541421773253832068073624349655460152448029809841737221394022773061642553256167348718399879616346260140940932662645907020024654564128406704909755314101922697375464009926523223792733228283632686386154836493796045748346729877185029958856885441266497255764068088916775361115257822311154983989041458005211566637163818539378959360858721524103153219955630132327824507251232553739299733090609390142421954561638956108662313113143091312434241863021441730219603796324920616980728611525025407790726994645131590362034339490503332570700783252695907350418610999431358162530914734313827023794169748815592727597886915577259806899469960302507499492340910302063095985710882480330429146186514822748312242072522676888763002816079249291163244580730499274467472250598630992556740349601536883402741840309744734109202976070742565994337196323450213063375587289338383021599909881293513058034944057802234143878665930226493087100655483961484241952405108533753527790580468150069093762482349732535821566861141068112575026204541482162848477614718511511153256588574359207759088357443882069613459672949378994460497888025112069806599953275299040979834623862376809939355637527650126846694372656649309319981819509060334534379011748454073602908992996544865460851291447831204313298391280900856135791880631168450545304628479239466137282503704428047069117517990300922901358592414889028369853033233909789712130225643287376973649422646832351134107622162637371657711448062137017893933263764566551447050951573289396576999440224565540352164503038249698484308918276876276105347662320784907839602494051839479047306938641604973359461412623615352869123267579837681464661749189345628959504504823747599511568572599897804975094539539026368693208885347154864763208070814138828835219106439469265884720524358548922759496783395636552647206290477704386772005009753814113659280307748942065042295769497323274033510888945707014851248061521073164501510257989846978838901380327932742729931703167702705379068913121254158777154235134195593570271000264981840532784671857580955019858264997207426500621657782451167494078618959588502962141201311556341226434557261855934547147388760669569864086902815758959454948448630278048389347131547210545824734657836472302150385441264735877215344952350320167912337306449752649373229181976341814933478167782652069770409521674894157380386391815775734265088875358981691554278648397876148310953702174736659595078283371438188266009210596534315569124077247224327263880059030272881698511445378673136786970636376394884219433324885264678099893387769342682840668045034299482290052135469022473792719268569834612209163688207855152272510865158572253529035087487989413601814579991970617651815692102621970060352301692878729180824590835771596908309924011084617170843738924406720581161109448540396479718120897061013034197129952726795857132626469475289811870265132707507433863616116694959873158341716970655017923334740406287895812917606365821339009977084556520731896652580499530068078274627442388570713889243052155397256503869171684632696609615829836288803126929327393372617795346971967283532775897477612382432482700554831082398723116698890121579786684172793914244776073286133048058133719848569175050033539411227112169929025416499652381510165839332927654123091216255389682211059580788855013717217580795377722677412455165127275739365828201372528305011324287798721830094725877808479627461027863182881109909708607363817167065760543940968137435624361931151222013317830159591082833231775902638089840644665768932773614939130225589613784419317739290120643841260148036202003124594811883769880326549675454813076993287115198196472441856343364576145729992320573336324136520913376777024052872492552750424249695543534139002928640448841446901114515406857164764798164790826271112568246094749952336772908939436650729154407035515523095476177045618289440919575652066335956887478896956711789513536263856419113230877753247669403358823977819772862474897746955420144979172210541629617354027247962067632078060892139022471800985361311581456313680031952254176166402410313639887853878410113389400949361530341875229178111176237408388486915975081984099970618140873388025531570686537933695860641271045048377838497122232137100157379862757757321888044325733710961925204131744766312776136268582420567073260698080433372686302229110693245575365552473689475281119956263246457363397795932224315982874056868727158145438716105991153993571898502203049120748399297252318129664671141737211687893927457002988086143820753547065752647245016567357649324871008322893643532933109992099552980266778547760490664843201426476434070353466742608190557108062433876389614798919959388655838477286651812982485948032529606892857115426724328130121869656358805960414492938916511600385328657938082181178552207824418177497549409477124444040537060096955219082258299764340494936039166088364632458546556019401054299954320157213286323296245579706586676407855663837454111664010758225342155495169746220738916987932283205718331995183458828471693413200476790835233191873204241499623414228620101132745710586991245699087470428021626735421875030524336873565829707263199609710516158403609596598734757667184957596900452981621240884510849329571238673480935261380713937524181037159770392324017736546897567189826010659540402993835664581735734449065054982492273293052214183650241893701211035413446430064978991303938736259051311088061693339660850094321897776018148930708612987506325095488169824600917732709380736188593067368594320999806494829869719883698310571255429667005325584857557850616356523942094707216247630532107912819965270067389920217495917315599759128165237785597031364867252058608799649788501722788872902305559956975130920019292655479208115043214566046652829028423236488051856669177159813304255111880091190994347524912149876938865505506141243190381974322831881400152984757529840433891907652552503550746474699783271251343875322616888094615460295996813665276532740349651069012282515671369628836069559866881363250339361784780741543601401498657433571945052075906509038987690009135823748639468303917990065681221496443594382136587370081775741306285310157380916671265213849078713841187855250650820156153699306156060459665504935945931681639801613190703871182353758862834673707779880602614623271486916815030675452735921457560395527478157325779499047938000380752553230270270179208644972415889735997758100079115663971458836285874321140848699686909304980555471873263736349758578052115246508228638862426072581325057484586583955434560263853343261823248189176411049063078038882092890538211764722119403261010132257219099754830606388338592457657634981854037534972991547744974314016334321849892325068194409694791680829986084323622400535496363172665332705917180359582418114947131141963271550786440297153627738464228517272047901649810973910742038491110576694958399759445510592797427113345280142188947565356773263582591175758224259629996641213571399016914798847460479217822698245537015436535006052956877640055466424415412745652377892285528849323516279827297169474790603610230728556158106911408662355953265146919082022622531994887031150807931983832771317529463604104405298987262845627376872914665383298496370551641784003513478571362361658980155473059328877923420225031376632361973061507172876573319618301868698345908097485749150326453418580052767996405137703332157594419439222781799561661059281644033158846154602159653078897708973508758994499180700932376272912246128934010976942963380662203464614696620187680489131448993045745246038224486968239311324762304281039065672935273799349329776194044397842444219292406492436776700575535251055429455891274048272011959633512381542369783882176432600403748208930434400281260744745379509393337821107046976650911803777793714618189302426898308053025338170582998280644424050477988915183223414325895327223359347795699824529104815838250191760050943816263275005353346262127264970617159443064431826612869414340072465604365827513861070467661603605763398962767852615323484965603851986393631668340579747758719510199770983845322681160452824704306674037868075281410220423851731336660759632781960053046285823262961167949806609639796751452287350203077069349621191607290677297305739734395379393253488873601327765890867309470158912918018245770680781059432969236113471867804074916136153759975359743970238611500152856080318394612909103458298298887532585540062066365426021615513311817244686981030049121453025456800270632067380039927130672422434673606610719280900707861389085127695092672841234838676456531639364639485568332155252612729741897332990537310751256036637276552699947955058175846827177853727720615738275218746044375908767473971299551304673991874201667790885509462564095118530889691413275042406325648587581650773177543603358458126358310582643447849547109161859450522534885637916089464550729972660176410775002484842632036307475476446780555414993269276494608558922617369397135449318935166902106947513653955017625048517812795008702164973482214643311516128028077564128154824921808873310831215418360140604882422009846686107214209953065713580398578407045838133148448798282034393386846323291285173299444443498475220389835591404973774333638937407295984060562150663769103342789351366200119098672980698856687177072714430807829788888368683499021559384018052910146665308269483219592115761466501309517802217603763348183361322009593406187926156031838034823094149598437833490139230485821966341986630314921793460570047536792203940867350923877385100401360460746701298244669396554391114288937301354545066478099358033520992544816904633380214043882317993208708156188213104504170004711473733689861242419047176657092499525266014370188122107117769096572201893559044448658368350247607942393537799716883919449543777842493168673099567983336199755376519763599333149187757378123364664386102579509046940306558288819403623324948539908257919014088269467055795963458409708141986208534735415507242750683868305044770062894773665461630000166033100225532739512709840854955682865550982939811432515203787039453215659012483784295403314942214743911992391452358583111451190843531910892505024899474189490447358828740192366020848662972017007699705809907998531183243055244219913428979607834319038033951724226920088520268923814321603777297142649379354151865577546888281142868616699964402306106968838186286055363716296233797307111147711954249092537902809466521823342539029872924204324688510722717034423130488823419362493694810817656312959924829884456095264015372965914255637215542865344372125965286160381813663352642511041519601141275827747535517237503247817514022310170015530646008598233047983272468628237205504554805601617419284408644085250830104180678162809677047814850580513657994753754468874812059154001972259952944915651939331295544569565458769536024556596807205481387689649079633171464683519757711791964933482339902543632442719071301552678164504738798501198220924897597738912034140594792331486005665827015022307379482332115462721505264593128152053968759909880817932295157407752306615287064125080083295198274824253246060311986726543699229989764821137653447377127620518667038287397908799969060103495727014035237774446307631087923888716701970262857591172284866923929438876685698771442809538979115986101447816594199618865766171673552492780289752315079142070392682691935123067570788210601747218584054931563408930649979122976980128912471247142046032064355435176012826223031566232441681133967975204754513201647567191924273990752130676662498015761411478265110604607518271050942509390058472646070172158202683929246039127357239716050062271542068650879811020581678600384313565219799806161957738997747391403298771149743025672716127753200067246506517502413019059935984443257636890746900388801862821570409901688268058716696412565612011352569261349226086773900361781986379564870202828358605510008627722147902315224376417164266515915124220184633627283019925633353376573747109884851144651739679580589734218787058347036083838039184497535418201560672474967106864806401062539574861852229070511847042546714552283603500844834389197052677615287278440802158592528035906385421326116452595342103993838232325172198843882150118612720415585269001754046980887903623147153223582503643746425441847787925750822813058559691062733541651617243177018297987947761224895211365220891685599708376541047816836539361636565901636173963995152409624362418121384256579591625461560267680867211495043563304476648013859175013571603165105664164660133261965660100411756020039317174386101286510764107315699276303223032638610989740704644776646924571753696213733496298494673468651069070243023102112128675563119934091635539130266632603486608390924377929032305476531081691985103153366664171196502088735342181311995258042473566965339693969975717905901884553850763602296464485987484914507897812200816812198922638979464348126813427695267283883570462124672310972175240282394216122778667346032148838524746093869192214399851905851206605002444457228234797225871592818347123863030602322731071792755957027571037070333290641045171967921572047055074646990000304544698076372610403988530458632263754013691872083462823569683279109352347346957870614629113171196956845400754653362498815449331349728769160412523030464899766374499918923982019046027351115863578110158208343704498894529489970958621738419802358484037933960587869901731971236509956266156449799607834876241593706758963295979567476963589494168976459272037667463295110175357850579217688090456223017161078079197658971949965326052011319894533679437435990218330677447463190558786617704114663921785317802760504092796957565215426655508274666484067974485126051221605305336654546987114077164374077548638307217547653754684814297325509250068268711799366790741383479142210151786443336400588681009094082522365313048251820551209377662906518671921843265380583591973431038446308111731013576664017724232496108273271686484066955985461646014145884258633624869584349355208775097661932346792888247721021165676125372881868824210071314668579312983166863595531408639133895218296381005167441280229852111567658396267683945844546558437764193440011059844256714120554456503757537195912201023720694456555483401757034807768525960710613464542042960484421812374402805734724756543221895302987248799793124650544738037923651316833689196887163768672451651919334437097854685726082034752259339118209085673650982672166768484961291163777128283838719345736252262568433428492928302164889721776737837158601955602834021265877884702748930218292151717150161491500209160087480984632561507996152411017265995764759839111941978040604758247912661640040243718613572090142786301671322491625075804695720113562372798740495467530262921834202047549269985245838368568032922956901079411997086883283262184419571658238740933595632221409583335909603807525268206822165978475185000522099129649179407832924291166682333421634016698598465028599990342661916002617455143334183892036029167586918232818845070337200964465345726152805047990470813985239235474650133298242933694594902955087972624516345598887714710993516992458132219778740918635235434104145257599548557713054583617220592566712805858913348180182727118956436414758913040435095067894975514381459663300210763723063369957535103903793444929164414157871079500156354489617171452741903485127865993288458590557070118486565694442301031499024168160510796767889653043250162053630665180140795190221420382794029568408658899107523062679532861674386983802756717993888157919288239393802882607758112570620361168576327172579951743799628544516464831098926932596873741415529526185040949903568131400250801941907001188399465670748514496770894619414503818581957369026422106415809869131703795768127893491023767271394213346719280024601288707250475043990414291186844867333136384399816935859704032272284044183565049309464736529006208533935891483630341273847468632811928942377789632338403349642709281536852612238927036496105267496244813877125642141309806164448839533872935557147559286595649536109437854106222682061683785824160173986335056118325139240869685320030802371068733419059914026881819637343097359172338065986055716762213958859434322845343257949016618228479352302971798369985515582117264143067693382385711013387589736379686470152777437787239850933037557705575972622398266091801079318504886369641306395921823078220317811891337162612377061419673435841222888566798240998420530121762935756782371052597043315353123307154604125743329893506559645900986410200672480257519231536891863659290855463762906423549082847377577272223349900269229200944708321500006432547124029083550689148911406944927479935140920352210850546440235559596753040113408695111009014208722474619882669777316438745517799503987437779050054610720640743843472586605105224225866869126403308265335071201787948372649234157205033215047980324351117608065470134332347550829980185442461850295678795024972041051273681206603374922311896274556306868317539826052824734984408379223427596200576079837705127159080475200306947127312879150961060675567882337857450429550818443602385624767564831381214619713845161949708278732271732970280549236625099115068506477720955312961348921962822679845149422420387759059692183655500826521614988439492694274555096294482678166689828612533192214416090425009028064757838509386875087617783409235357140371031649690945868518443917364947681053824826093331406835297057651693208771376498533055162927431870589082940750060386029647923512546067930944761693495790151807832542872026910450024641721827482852312143689257697318735299392782601304940415730191712251354308376538131772378580489511338357706930291929338914988959849012638884348468361003540102815239181821186640736502949912063769246228604471762585327025367831118902960940021966022035995786525071780847838237009858148888714675897155007409590082610852341226640058371038494873797358453344304720595717582442577594065199296748748393212221292988977528280421970945214944776307797587884598089077771712471943717763425135115379381121973697689597690819323263157218450667990177107625432930496739696911934450972240886149859169696809564120882732342715981328929237041305571766288576625239625693334192674266941546792349536123230498844519069854518791394213759239466113111325150031684805100668666555491817140888361594026031282858316342225616482725650261956828865687959150332047480136186824189196904919115769153804123161341562479848044856370566405798232954426745677887614398446823677262605484304128139902151545799475101956949785035540615448060577232835083179066692887955074034502659310134096506055398787966073808223676238462534173564927566574047144395067007296172990838726992355531154365439680134344911000602447448782463572102994622973508581773766206238562519307794297361569416779141478970542897447679388424005390179426195424291442939604730715871829170737006793628669358172493992286647063514238952115160407344824974985194698684528790528982842254081857061368339113564262911928816842510082525999757595425350390509269380989063324518621684243160931493049338644539497158429023901157447725231692715807140866630626386631997042115822973819617771393303809992909356227474913836539836092788663697201899805639025359472465486095171568074874866193042055285680748931627802318766674179959887443482186039119743525112384822003060616938622984379270269010526707542830328871792575846640818669624053119848196662483262474933638850217256542531447229339219287815033553461094634848753268263969655614834763358853291464880583938778097493043218235823333115803248883800224573800316483710157773511490682048155620510269449758492809512872445656354229574710910732677643287346057952009304923980052603352672857285621725049804646434407855889739476777922653131917738981209596722288516988404156652803425460280952085616846794757120899917662167382867431035893530594208822937339658142395868011614094899218259465961762458346464459079879176803731886470286044626759460623960124553240067159811840236386653548650187787229964031106311818401661979828265706186135038429329248098041075565277279179774149611130167131234634720346687185089507100255193461520744413231240140728147352986127705750596770564427770185056950229854389411412328398600138425705561168165755401519727474610655083873235906020378665349669214132165102411170707104600783679121790195180019888766444332845351003312734681676594537869280619796005458500640697572358826270672857136498290654639213105972310647283827258916232279776358377037678476579194781183990315647914259864960768283099575288401425885635311922456515766795503136060800003825195802227715977319501005235919525775203046403074979268425710228270247870589659959214431347579780464806158383572255925825343445020030122398278064030945632313144058476208443613257030297450352865923820838725795138944946000152431231343766925547036688949333965480688619453171579518343967027025805726580883143288970513491673346556830134386767661302334437757854378249805750168036403479161213116893808040931352301374365498294588254720446955021352631214866915151050262577048985680073056368571403330965998238083545546568608682559859360074118085852985597620984444144163100739453526932911079481118528187117369663150309967422798639431040742316738953063122765934167891338495243618971132615706422704607451752168034996838375030831536809186642277349150050167450441293631933446546112224317243542034735730479678835864519455938215300392980143469136933568601861375317068824709928990943589952922628556332774962239478797439444839838014250489257747862469012232117651371726723487014474604310581641929393468321338061759832163350553273041088306601405021778583394923296869108037752085315596988949293692495433454999754674442096851284911460762282880492432678680478978279887438052078281265284128927771649857093281268966391231342662488632214595881517814147659141858218329292130562614564018674671823626574478522963466245458923589541855874731178355634968598956584560315833773830434806743858146105037044243767827394668263896122793372832019255707598710524995135310352606478957266163655950788723720008630739462323433239235241166335950109644148751375486448013257002645869703935760018311433931023795906465039494461609429362450838732712148166643616141093687094097994680482849826736196523391943632235396174058192648878127888246970323296861844711289848240582411051923673090417387145783291330682368063238453706937687159654094721493414213600415410719640429359982169888952224486406755319654766895175948561717592160414976245199560403913893591270176660066049204705423050883736212568490026470226649194007200662439068377120945133146768058658905519316759920922133023674562651039983610726826562899973085089459495534713630256874024152086067684132811229471881029505395158059511164155482321961504714727323805673426112749244390402303106265028113346673129060951393705574662115395844992537037136986789755524560162033961088294707990843169950012704748104730463710291691199181743419265010592409715506681869627790692258047189900774787292380904777184027310889921668840479449222113581242760647156553635983129448905838600121722450629366599691957249409291349937995159039867389100587195327917321439423522247950682382270882875428682673372996080409674404121872541033499496108154708703736564825612996269064109047870301961924664246078259804807664780476093511487765119323356275062176285766085527736309982734152620600488841757336889068376486375084154277433017403440840064811481307033150660734565208274650008253053045123077161033508861497956131705914379746715468059602368631937058433992131221439906001633220487823166435660802034982375475316092396062976003151957937286572792679477698958174609050890959198383317867923053872059070657054971374490875061211863258539533887287427903368759917322358273196607087149841811715796620056864149786723078666354358211746627705345228798443170700215166005638357962121818525117025262071434517686789458718087533006763810925941081589881580772349665987477381681838721786230881888337679583228399296021145493561397382387653799909729605264516486253127017187796250809367933889867819746013951542700567243618066895195538611065681222414164863312462656997150657018238689415797584168292782895967728234501901504205290037326047404296089193540992822576927677526911644105724507595327998361792806352858356190011430254876584845206050219312400188911780277683547933576257983221362083148169457544336733839256772996792416858703551474407449128854051342682386478505056038917961086281107758388194074077959847965513239232747791320837045707902737535717088338549475888217530705749207331184570195112575209067699337588775484032484589186549317489917217024854833918434545929776897317413617299564753838948189616858014070166596671786908668229683943893375960657251916687526696214803639175486900324336241361632328487887491579678186799851928535101071953643849786630352467183862342249537519122400911246849957018582475020672595363837160521399050624626027788315986642025291484012144947987330271309537697712107242133289235298215005613514375351938190198757309816873034149234709037448227520659996088435135472534133627737779531961371605403108531829184961344604930102314843646212606865067325207138149399031056633412791181641417020369427522303924217563378116232880763582234365879532863269143732922521558793862346485999621769178748287584211314828615688212616520974788015316522357700347759909592952745729349870086589540161361662417402614582426153843339326493390896539193030027846443049401789844438839094191173145231704376041741879038169028075962391074674657177040604849578757920681759423449871264752368934520891379165088452150191089816560963472364382731546896300409870443938871727730860328657575722175880416157798186685470780019803769895788958534047712172297687901895926948102612273757108195954522951939713542276508588392423763041571853951479760347992675031100205522047439644936516806213505618005350958533662371006681353239722437764189918274764337517952058001007259473865969456272169435926814234071255088650479647431210793477473343424040627649304717679031980733352695756375950861563885246706201000400856813305030806036310681808121195818905098897453225878789757732728921356994802234912256211136586446784429138954625361291691514099355481462277468604554627861395985154032517133124497734448603298749561730352759614646542597763647051745046942988252059964571454824802246942091588462537876603453813820095226625567041742978813104298138449893796880187831258959089157959552455357263997576831220335211824716234055161972065111912295349288213709829602579674853235453064925416324326602039014601705162406502428164387911895224797469972974725391203315593376528389818420332655126584451852558970919382989858553126296949206635195705502570975761677397350308455053692455205355276545753192966611483253340729529910786759778752095085469411212788644297799675099440628309451631210200185646957086537591331586583599513041022233627430450183800969178027641814627613102606538896778559015867880267258402958675000820469606332102010923890863839184008112720608826253966090367691491557085782647837092406888783650006817391197146316276278248711610638132356987877891080151894208145436306083675984788599686277467815557359356212203900608963786377312291444734521746864699665692375291304824002482929446797068446092904321133540719140878213615490612342862231754242404127232829629618007261585115570515533590848511909494486423979017343293049712494395036206702715672340464083269900077279692571446452976809272162926688796209371779665362982468452025005831745700468206745840587359739247649025771570374998916794771566428067232810487977767141841054615822123595689860645640498117486500264561749393677257014960859466562848854508781837745354115223218611547238184561801324123714884127789808624133286481525688491938018450534975476156899799685322602132543252605920790098862479673748530893303668014939207757189588141105605637223544685491703857111835521496305804902384582588716427767226807291070812165495643514947842300537559468444528653391307277919129704010193545604575723700775706859719990085085823930204897870651578707242075475906235945410623403752423559447695585527041505992794878826674810802547789617015942739401003193866232589128740671512874711800485667985072596719590375082765773775480532109824819266325229815866465989642313079785986206531510643327850073278051560996568822719047065905949059510651296005209217636627234531439487397900352971294461981603224259764874150605676679203583145346373536687785991748533048260312937483219829918040359629327763073649483728807015670623179406861198863289035050927334614645119195779730769388455473404275418149640361799918391389955305060645859748103313973882081552647639415118009029049897888015125771607142201488609300421573265560765285203429646613436668998635333853801389594579801329981402437315375128554094855359728228201485578019571458669429316462966781162923787806586530927326335226236372661880818180280880285581449504367471164935696050402894747954972769808498932701971016118132701481582941596674546605761645662893991480627675845701467174739449536358959654376373514250662060424219851691096682973373944533842738519930821623670819299842203484907523553394584422389395692188068918246398053743951318396834449128854413118132426538963563796765980762798489437800915501187909124601958543280053866047043191268354288572515089170289052670719281406995615104691034533643217697148076000231870210801291693116396879187913825439478520185123572643920170321147532381914135347718757931063700806030808473230721286941529292243018257798282445683133238402914518422299603633934199076172036569778349307443302850991887296999409432672532765560143568438261444557348402028988000094173183898559047217581195801478735707273796294224094315016357364491187067248337977114059728758736459316881868983751811947894872026627486153808638580230181021458919532966219885843608701358079299802149740021252050581757068032996862469896402577112337374964737070311828672616769284171223222335662331302825965336269599267430516569290442173377989779305786122846798585240977073174833769233243197113651468368883731491117639622748007541876891232681954020747985187198926276923723518350674069580117090101185779129005293875914145361929466199379352447601891585865522531340554593569155116750328352057971383863939485738941311752115437903657238236547714326672389830116138711963417585735850384222342003188402401055106900382908437544169281188237251356057441806140699399842513269957127812129913188130471583418550675150249129093012698340271957644101866707191495061021195948355774947357460883919777902946891506772179308504967404013329033527703744702400513251574216048833089915565895036995331004385483497700774216906881210039394747018049237314185504451820250669395011590359100703045463090525383333779920245438426785195470130118498610288750059556208664237209982015028418929859077359816457972595182277060711169853351944842413400816691863454563098079264045857298101038018958534770906307348970694704172217410681440688631825398046971253194931716709079726332075590248658374818650543635466255931750402716409472011025532995867407175591101852940589621057951760799035815924502170438809307306022641362976673493846844149931804520830143059332842551264752143709712341019548782645244724091846829931482302127758657362836977370524057046790230881026521885548519815879743537909211783897533929033683247302670197670128447806108879614153166198392867669147282895508384785506014270218274037993300060185121249473146850998866880605908419466284506788507374974567540982194312358814907817547311692911473981543861833560031630879248800397205114800337861135766572511476299257472045310995845165205785748709041509506841061508621655543779019706843760857334403650529174742833886485602567609393100649344369748462075358227700638078232768396028600747322150937263126470708739483230897920960947127519022625392016478344637038485594975801262699810751966878210528532073298353538890286966141603403280359189662351523183314099570654459697670640407097005978124797316649638869744100729447846902944688292351512960165081735381216306213960570419051422210684901158966085381943729050582409839843800413585616048631630936992114762292304263841018536848629858436126649272053688949832918811376605973759339962172999481743104637307712072713142785413646525841380274353990754761311589531390049817163546954784323462011584867668487213622426586834541691479551523193314867151320914966988879337805267335673386070647924652246856690839244671455015975882803177594821888128188743459184590100401141001640947946548961573284680479441040472082894599682460874044808201035499337607095184851837945810765379925819468842329489425525276207566103768154359289882595247727667142769905209047588265317080153913300532985950871368670997710842739504578579388990687243852716664101194887626982559397600083897940471433574897458498563266337618445815539798548187636338135256228082980962156961981990977126716028321813517504709823483635774012655739907560579738311254741793674758836832666727418450572465870290980852039790508426040690671061930286295014360631565189800778314331655758586538733177153822647763820077325684509452852659426885401202826448446965917369920251291697267842694992192719858221460279270637048112568397843043973890652814563400967019242063684688943904362708612056451794772000917386234793659742548974629181516800137250599826949823732433692718706494000357961369981768180571755093877801651467410413935650747791026368709170416747513585182865091281614603571959005427133898889910059564880586426776998895254335284635499036595865205518121557373334773089476536441500342035000313943877918598216966332700053019401729955048688826360218827279440684907369093698241862688813646241722328038524709063309851208787142120687336988347686562673306418876761250592755654004075414381703200906022025905097716626834057209587209809817596596363604933149055398203324786666327046535536866687075396218459453230340465499682671543350789883397887319786522652825660048884869341042207153573752090285002260228974865828707340212109328044717852575855703194379872821161858316826264191591305416788179749184674944784055488884008053667195014334051207138168835430693380316768224429842260121264886263949589203580667875643457615560359205123169644478857507891164561130703445518268436937846341586801114360749764653395639168468648149908157581537816238568638463998727948615613570918900810717314377809662748766146631234433771096805602025992839864593659017709485067212003117398355877226882612038793893767889105986243108131119905528917936172263493761307882204632273014038772980317559601547232128380862568646813209952431512891490164759092503691122417785577753474971098520578969359204148397125775325835648101991578409115786579639318674098334167730589330251566020782227214847075388475973889556683019698643181283759863609137345459366840644506873915220221351377761403399482856267926002135300752074532592706196270469596766379203027229635196087055048283677969694635256477055421571402132936368467775052939925211066380231443198064726097896314186807144711122903835088699623782850946764631112532256514875938127427289566076487865606861869163041551490636410302259861716792402329081494741091341641821576408071254122070458055537874949612529679209247487990135743884724863918020204945798804764573097995462032865526803764746213834236344937752623656189802232931537091437991980915264208913681787079230426978541530039801309265727702007267170324216064634122913350865702704226088807271240623077960845282759111541284015136617827540537637928248896506210510548954802832306761290835201531940812009028767986774494890936035422244287294707115101354302032060264834229642604321319849719319187535306804843360340541212209091750370997594991419869540018751697276560017962525071621079391151469753676617506305522856102350885670279926034448426155212110544088638283228018349134903841579438601121393412262932399938247544467894981941777550765635243326525379020825579192336562540362752829044436707682790351078646027261306426634631753013687775619906426181283858027179918120238309997449485616441257952907173010387203410102804564883964937116937841288279553703075763989707230321922057887809852446278933425882917292619688232023592105561560383360352423948553505467696658140702845104070829622768631455101984609947468136944855000840143474360572516774981836692801521847625088364147796774927565235104231333786634450761889593098680641263781616384831228955148733205766650664831921712869603186280956100079651349387639915198062886023073682464405781523959550669464219971378264969855520247374942578236505394406118152124378996268309071771591023390459168968922223807686185380272359451039124542217443774402024556936582151570840512790952957061699809913579143062006158764737231464060222696661693914001310242812402075289748226093831230310216218003971597471461215901927500251312716419529116186619475265127912696399393306809482948066619681220559959393664575279433608380915413884094315335691336506023071987757100334826566822425475658240172666094247102181702456920175886450254522313895263493306669318092162352049473654875584259446204366056252021925212162520155390963027961050225295178525039153848152528190936900971845428430102174539189854466896293705905523312987941394448000815193041971352561053860351800120058817437764807576552047796716909432681395316849190964757563986857433867247159484365113840726504961667455977961108925279026876366468634207509736255000375132352733853996983996988141657927078628867340936960033672996623872054340472098283166466153680556257105510571669995350703052273349998542314329599329462899976689474802418185695082504243072679086295181168201960085185033160595780824410623326533956615650485610684629051987071482833200276218103179675436494173280889601010199310992027408544489421278750458645961798535705501364307524361464338581032195469262473174943430249047689625124688762900344380922710604795798678987556178749833069633605775104736139928085190043243846491034319992740574195229110036676577575901550842561585293336906582869646852046057923930459393417375452128059224081817830974605242947802858046573143308399179549389369851297590039567143066400076905395971117769066902445099195008357294149063369371202802481287978246257523273771783873453023886199887780689634675763773137504256700041542984302582295153393680105662687877271240552490954601201743171013326082712714548810897423329924303774209699447471347535642156642999274969379046029416191730924449201580395239541889642325851209309717344294474433960737553029008326699135717657478168362717989321387762362984790473493082445521755439961303307955532492263255416366558494727347226486444312461530502074456817960986108907185327591325137966546706173982808743214346121728231581118762194906991958951512784841945149850559885544174173422940422151736230642881240443091977076035770682907944106963841656148685553023686119395962998802512139079017505748013153123580980941765514429226866187219893005036390680631563416827078189853186018348808895987180708359150800030754876404512654948667747487217168314658617662556392981454103511103744986487265351353422167411399981877251022762257108086776296971253970278432541420507572059348367692360705128769606678185512880882082075256163875533678442429737621236767380485572972885424252307977756245137027563561612567248279607477977768585649654900930431488423689654471549982790949550524241861230904445043296457718729406345488870695275633196800156371517007481761732448819774884094448771250958796421877844909048515659867234798839641486462487184245477050893342648619329123696204254388825122107338356974735395954708929787979850895082859451608898067168280696234361909674424830691588474602232969446949219253483450776360133076027043180129487584966783774522326072772455903323268925207326471132957514420860503882641703150635898071052831892980490746390821968842807216743533025147486922990979589224664896082570923956861850793959528827336577237648877415416032285083824133066748882802531226099420181271966298990799761236471361554579716684339519015359068138438790691338555128545688079786247613220640854775605751735093578686313097954453571905983002450715113596997792787942577697854181799436297516198024539170408345638320191815793257489912160402886262206734383270776720675520942761168562996500058381917470807405734299832303222740012116441457096286170127142556210037389765543380720312153598983526009432054864258479266557102985934468655375334253543096343129433958149904580750618708861213093981393738193715200398278202520816121111520109777210784942860933894277508743563217450292474924379004346283016996070361462007639813935893267134175394498054533426493609850199634719069857297809156736507297810423182920606008378524186187967407929493003709650860842719403090528444759007649170028646833338413224424275316835067925655048937258128738617331664370387218909642591180388921147991852190683349126966887300309809426564228140226968698578153666837450005507242948045739038271454274485293914248936215490137796742885523135295518429115812270110524080583846433741043170970637011981279071826698522107748472462164909118739565492029735282530604183764760036539573966564350373482451476563040668425619030439634389041698075805003830584186031575669993606868081275037231507441135734081486000841778767490036163967620909255864239097137165131740512365504461573817066584816704433205250479364592431122699728102978578788037760295748342368380079824413480885400712626336866936492783515132122451684973656778183325845040190659530851639780481118186499218979977466350314698039368848777828068298233418938885217831783588865246918038121548136873362084347417605363021486832039351985184672903379231573131978272562501297078858006733062785171383663941121830779682176042406690121656862986190071626433922926399820092010706525182111707577373399745145648798352258670353478690523427976521940073348158919763270846433116910709074375216920997139361993915808004490319909599788113451852222292867901580619365986344143998908138854387121053054485604472331660627503673867243605808602053031406593372299435858273069501128623768079671463098923632092360342133128153368568712412570376417006307762835964403474809853221867647429704332545813849998822648770770442219702750846043077713473485622998839662846484802197917013273812136528371892123331736386500482734353486273340438904598963247961647261598857487358470410938383238748055060524130144535686529525466017731072295219735263515214536125217773759176193231936372456346013554845596273161350875640260759482604948754074801928862693128132039212721386881100336835030422934248511372284788326627600175437979242162132272265194951978825548067949630574756469992572559712933980157258935154535253263481689998504900287466503949725688200279334392888349325987322482022155123506519232032268843535622436283500936766421349451497052447924025207938405600582013790423906036803037873184204212213439062197634868384933165449100896851264034257288893424770122505826767065274703356934061025381874655229558949055843631156557147669253667458489903305604303217696479669888616136404073663035831971171320660435164198488628944929682567067459436086028949081221142740210971678569381640344207797759623367610818271756944308791454012089842858597409150170057668740740050568868847435665170273274631617523208338714628002906718229539963481834102176780946782364142148302173878167681639536219842958966330490052697391237549116685192674976266262297091789614700290010889294158037181103557750473795762690936841149849854882659601194955979339102906432470304484437723410688329612348917220181481016742238892663435781290018020642465976764075832157466570750498391498578289545158082848179545271643618628505579691580625616303758161647044425254150184117239572725195334605514105161251068509207981312147495162207238479296778474595835957785803151379975510449727287122181208190402925403273640352168993852467722216176727535137498182761282012675814821338013017349205857357181506024865125781881357278814771088932840391885038678411780496139484730510173914258291528316393125027082657285616906432859348832885375212722505344205204694939004972232360638897090726864493551485222874136074277778755451669574481553655580859901493571731411028497079761743592535859590382350927111133792907548334314323748255580319214465546227747239992723275600002593332640691313880737772186220208695295368437432220391591662980720230186128324533868962659328204034729875848459019901194102511552184020555379716043804785915312622111877493784943577725640169121338029674213595036461386842639367781540597905465285105678524082686610393794085637039193979478854062569587695659067967784298578344563722705441061876814580264652910527726953474239637107221128161803161614903545358442816135804533160875813367893405182835941702069555402685668961426254088410819382511164355071431919151861895737059207705009662235286636365161453437235687351862984425593275096462608524488388908068274173003308178271192798495356775057666295807740880512843167260316418023524649206940991495652102651663550514042900541333567959197004273872907154044474507058349757159548753210337285151992599752264388639915535827633135301062709846050113547558894935941081446865791179153580075958082568557844380378112739150340649667975063075333549207634446020202863111296284914954774263691440152119715552326403223667935138801493776768630923397634811077799715931842039788580356450671765743142005739012604835470905193911558584840789059393655822059871203993381513652034718932943270211445172036391900640319660201302136819596431226445612096123999583267931499198567191426196107063440044169317448501036028992783484899601996176926290329701442535111520096281950417710957512306467993033967987669699170466982320304014714092095959845160408795144866409700750306160340203137277027685976202806969677306199813163614134914147819634827063664050665192364765703960079998254165967205967599093663011351492952019897936489217374518754191672426620096102660506266812821208657632339210785484986754816271082469397661094102736671964729599508413378777072620600972452267726656769120679192369079105549383489218206110260485559596186113551120462851149230528460507300721981111459943381951891979292000518402699492341128978776526717192530851130464642456276085766046663850078577263758702528776560900440631493554789933417337196035268880396557210638697179444550545677775448479036954507244464203825561961645974960556565315228801285478738553126132653235424140011844936359671977013868975642813854138010471748417962857230349767129564617694080434882684098393003155817713638183950531867146877245238180620674059846217958930208790142239168109990943591656205871192940134427692823320540120407672788464178998047116988952407344135873798018064751783774075979227262098286993058123284700276430418668129939190976562719109857265587227796752210362252849186685450582154404864567126062168906789910242601005673387398952395331607998125308070731868943254196855277753579125407746232970175315256754502355606222238516824895048487292185615912466735613698869506777754609456978249632130383415279345654596630626226535013190021275996903301599339505408006744964704716417690987898723862461262839709080050748856178572262868745707373696272977915985393123696183546268708242925466793946728371230207619160568772978318725781628778235793488983911532658863992787041863955150054772098186242462927973990290410918233519856336861353677471942766756333830741148461477247620713191090487148836881729718411227510085128837705533553229899421920730409174692070606198619446745298750113733858100488735678299810601864411157495652445434629003298559795427261695347066790177304429052228774290759119935865957887410635512073059541652355255634542732905359475504325355308325754833094823071194355455377695386096115326907808616298466630620463616171419651757756239437145506816969326865024094595887312233418821937704927060339066020972349978502650923345342374137134984446071205103516552265743242331409212682210536559886433592420964676533529856446831875539591266178610188264073699923327667473237220267174062769810128295380224638411413398412546901010889287225162686907950993832349712276176723628454898110772872847403496559486943488170226345575188443923547950828895673299997081286043727224454160213185803214137335164975026755768101606008669224728647097416034531788270924924353478185771475905472764997850635652677626804757343960335904086004952336701910437365445207088860909268645516314365516732199154335376407415160616982738847120734666892237232209737830675580970808358984027821637023380882458478988289600579212992950542267455972581507964351335924967408958728210149362303248073289165256859116197042193051845825275426632345802722311678073102224648717432637992378748989781678446059778792926434219217507629082863793392024232261479735309007912609568559348976603020450900126177324402806892749237841201612235510772016115446854406340850957400165261626735498126026373443371586102895809985634377361944793491943576709814187890490712484832968012041051262052193905237658333360089690131548694631409445433202458037016590986085298545110490331179225200940103054212276979397409486429600712608198623948236354658719310388593264508562747773279379145690228231984735172104907352564426803526321188048001346729101364046063272746909504957017573420570447609498664968158279174436081284936246954126126050788220896438709901537819412013434736785919213558702416083624095303274630553804453133619426929841579520938302597777278904125092277235517367574355055871545288804714000626730761144219593800330126374894092955367082652787487918334684299300595468042127154221337834265478745733761492373043740253923023045661028076209111354135367738648284623147868747951284624958647419810768747913217907138504577678955860997371197506777077843371202081852685348571064371126595476625313657688079270940731990758657743866708169882292731052151576602796747453008636693197089051842839969336512176251026702094742405656163031825137185091249542000459107900701363647658078625844933408340896558860194372251465233359373587970793476064447113981104089813369082576310450476099704453574579009433640370923019286967108585091261597769490008219779999552408269689742973429416278405953098578308734580996060931983654492338299176681441143130760423101672331192611217545218878417223831958027130008606231603033144470036536710327296657147434841565378440127270631714181826590455591623347938884628775514346039767923176540352718927734053398402908883910487011011183940656037377208450110671501403952159301559878467954856346442755377248430894851991036864867770302721017796355217721113451639321948836330392728052548889708614167126170734078868897065755518292730533545485328818756771099881995392620982385968130257147530540154866398593362468231828745976098475337327399749539477272581689605005481848845152998042475912031000918963806111365668058604020810574368375912151112583787320004159277195370562250008539656826034976438523266731193086672759147331466595456856217846392931938260535932661931595656578675164127036985934514611824775318869191917595789570577540897061417399031316142183638254940753411427129050619561739951450892679633173245446049357907738993384841974208353222607285756117236131432207900998435751516497147736264656930457327206467069193340723752457628049420297721095264237798045140443826727736146030313337037425707721781131584418045959071118211234086261395770777729709423235463040634838479043961309194574100006859624367323374380918406530446023140763454644942135122183683080490649373537116972130243267227064098681904704399678325738997651746521245827964573951569493764936050673593837037202146836068577563264522319550936009571486400856852544437898146167107867452013437232780529350440458714881553343097517273985751183314236715508839210831616193774234767053078206987549492802262210918000103342585518166982365340653407213799062757259350081108081466684332889274333826276891016092722655452331777208387825190275325825954195068939807383583258033657762914314187947769726070283341394065776388963117009983294278016844849127673014108602878005957738209753880813712952405425540205367734526782707156040698834084582210020865261274560109627575441374551762262860910208416778920425949921409150470734126883247500075061382240635038187427558611237092550040399324417824148577413598587194740987537315224557702579794186903586592406780056315476085067138359424249682801903867034571439420171245644399582425591771288817997314774087958115030603845072594106195370979812121654590989809167093053270283749132028620552839462377659554320013848809135095258238270935897838763294464102010992213037557842429326280631785990348328948940235729447458763410783837551008583287761047113300294456571615460516859893986128935999749983172158501443156587868914806498887651359305425989380550079623259739039536242867755153141087673689623773378556030338972415345670984179371147533657708794230498591433561045023786835759295198823425098700590024268330570891760577220000499667066062873611870463190293809357474957661257290660195997764273303290279189832744406041127201328003725112305146739234098530993762024700887188891217761609714323766406165901736972237989012729934587151529202059480970428596901125131467147109800847751972574365497564458531036695710781277059816990442485151688885497474144690108264043537259450105401979166948545780904366405660487119249754233577336203589792327321418185306885639061182969724591596878009221534719897842583286462198534894751801794924285331247127842073735166384993559354756481536142679158685795637509930729159213562984704807860010026837586655254430616594432379881428431091434672364936034485824891199298575226609579402286972945673635564251631032645351065650241914092196546065045242053541127920482077683375139488868597817885299500549999073725898961977642833798255441388398304619764544938226927513474317011935004323650118222181870617760841585647033205960688264739480216715751289923698389091855477501104212400773842916277822574486849554102027560442595701091253073839429465184101522376878540259891541411176924686430074508619351197074952816561752648227448487852148768837201018314911320468317703566691475619613752580822762127755829446397252326505952819841324424074910616399487929162451133255575032718067064926857533710216769634854893164112397299989545123475878933084896262668376747826277207262815067122171117651232826536904563358715010413342979137634959407594323912404227369749561869155330202892087291687272668336112545153781531988398156794105796489576076066705591984350978024964480023164866078525700772634850411494164218825585342374200717645832532810747427445694429941464244965569071425289759335287468629578552337025510627159599094609956092279930580088512774235969695022402847661545800250704991388846114187393271519315758864601546960385655489745239690173635432565826248215556149775675886314388439573208499723663677936032323626469579755058459426605726370963624243519626318158608659069837304462559838132658794415283008521704672251863598023634839838472173145473332009517568302445612349389426851671778631306331404076470266530115456355609749579515368000124972204572757983685835879676951466469100390358270652451788886001740820854613584862489752394073500865241221361604095380586748036523880429020778571625055334689533664867145973649899454060600344047785973763408084871423613928767899361353126803307373569594173862745668885418560849287359380092027059770399649650924083413472648528779378293027535583840309338155386574552670368717215247863655418500327378599439834637635488452996996156398080886165532849149543822252047210324357725829938177855202519499621117110520133540235956735118163249941330092376004824438778056364128501397609399564445946366391916912460683707157622841842326031607071118658711219533219795533292070229218459012412363606512296154805086689486502424819003389623500762014532922459382351981541591693696052146710686458502207587754647324563938551578712676804464874935467565603136458193339333494363134236765578659499423731536705781454503369548218759896557909762085531121768470696094627450141897716035150105230348659095463780582927596101102857871862015814705076112917095529659225322778600719645124512502492607126565568536852140706611889918075170010256011162986723638372680967543426758797365038800180888226553815205860327823284454516653407669418455198076629518953914357277516805752521704545550041254526773375638918255606018687946574282230705854400498148499104644135452437085799080639831184820940585701488270038150526641275642266105284103369794979442551187159383599402325172416427521394871549459614110080499668027555040803890068482440131063348182254006115079196410256275054135039894212625749526129797282527469692295311245813760535994706169656480028201357888095161972954033567348445762441470293172853201460821861753832903995514137385272635232830177223861732591685921297977066731065533916637720109397019563591330724768107586324440181961249353251717059187950906511352604824291571458689474138156538741509602431854898773912050042382675185332931534208242204030465825000950003321739357590553758254310119117555306748194443015550301797249609280207374588166946601432017599700691325445899853646536558307511491749106019488314124070370708084670023283550211543851802208478362729051847174875526391809821584728471243717949962609703971028656972944112952504025195979589129786814002294630406820549647005671117898521481487767006145739796444004991225143921260559580102927460114303193327473952334126960214711912130566835746414651681770119740226518711036838948584425242035997731234253128058412903362205914151605674203805074034284998427872942696874474769634805912673468673163314387704674415417495686829835445328969432226022613600066658018829238278610705260891325784151349651566501075736899887071729457464701970003021906530301565750174032005887656271803948097688491840780881830504937926536571309570976409882461966942460216517939510935823634387561260705829064805730114884297465232582503769500565015868480107250145067739509875197559485830164599886847070183925890502077345903110492371756599747441943977351082329135751037151624235469950797806910588250948782369443189169885464618024535872110449943513521732799885983961189293545351395060830731174722890010204607821508169613638797543557865275923262886691957189025753758538380149442643286191654768541974269689128028415286089526165477860481820299557562196692102909194363684217912548035603041440905010161033945098608838265726074988197357147498351283098892496930458582573062507585955876122859115732117907730221676326972698607940928922218238519497488855912380509394482229283676345038984789005424213825482750401413720490184287014113598571048976619959229901738118304742582800210595904559042183474246835974977476950174507616828288180376888976388512903216579152063706140904087185543748949144249415218078120424619398296128499962498787232433783279842425577268519035207225945663759260838543254601847079823717174631873258975887961623866596711996014462900835153228907544186685814176605973333490699385299906726034772395685490163684590956148888275175078183580840994581017048356880334109594881879433146680637128692542673241420703226249047615767707691775798687295404213090242513432507748062772286874141526956924802208000183312305616321219452116572974137922693977382982819608219253225131609244879771440473450252309354002438499897447158791513048218545001880596438861671974177337206513770936864190892643721616483940984081843645744928005986854372000843975731858318198621856007453765943483626428738596476082554515371984426458693442975210977868143838058623539795905609383286876911022759272552325942816789920771955159260443706886701412354875299281142526818872969215135396107894586916173521864721199772453539246623528458907643203870319417756658494298802246076163881390988322616202369074816824966504201986046047531494882636646273744304878327224452669958559342508061149790397377232004263118342567659817499939580668121186167870521140890869035026255828451495954039120091502655205838635714959637869430543849861446878500790189358491141888728133528282933314043199384605476487090072372402828480097562002877515417928948271966934135371620517461650861999784691263621335012853453696991582382030886728436799540142931878831087018551975444987352756420187616764121914303312592178236224149218622516821287205614870704099254477579443119159881102251987369733514360550014593335361260191521066161496344528722312804812355374216477499390103361509594388705032298851472532625850436877112035980593707623680974949172365529132295489102279495914776431299143636805321280185874338331154082726856250358292536048519090039544131265761841054538270788942759278577795633526287666447999982769400960216158981768288715716352283591808020223879365011371071376142004735647758548861534496666253220220711312785822262817522451126984869445882569156760530363750683846080282070414854365728099464864581053778161604720369065440534854906881900206961796954372893792058844971895570169629660580846309856480293321911646965817511607625374833803351538051550266725458560487701863751076897047458953459380597605536490032114169584153361666168377103489349170471461686174505936914881955226658553094538243667915844171782602147580128152141546310928522253297565845786475655802264776789441313525562027403746746677253765229665991650241884316435468029008247607528847098224150727380259082736890684041076233685911205837948161836678981482103912838253909286626048658301578972624254179322567815407482836154894955463471861053848487094674722583621645708302044373692456875835595262436569673163164163749063064229297798848793488201509556147665907357426687176458386585017194590905198389525903846305970406679327855963722237399834158248528002424149807258494007401542701777302046497997874505797158704880828201157311759928355116402208182119243189442348037690177060580227201123631641451755159821069348184182502154503736591741746077649695288619293807429283135879605145939475174983796041454490385917262702802232413744251655741592666981188397627767018750551818259623565341687714155523158543032024710221058655249902978008706826452704670983640288533640958568826131157583842801130845919612897848159363116716945326385877050151476217263689270865153160687255365778065406546658040829537289370377059343691219169878120194179084728420619733578623698119645642044363535447645788543295695294338242974147300800213549066278590243436646763218077946157374080103823718023588127069913600709378792118233381776017274912018356391262509214691149391489296252910984157661028231371608440352076392831230227348011991715332003001244463268276073103812803057713991469111266537781841957200971345033560087513858746396242217090721396849340829876735048731226989953276255424524856233349216573240918100817258588249179262175661816057684482507373366064195174567811022118723453986173600276688247912752055244493483112392998312073960600455800964742418050288608212821641497775808778980447778342687473765645916594058422424138452839021843636576885886671023674979817467100522954929288699289238880484609056199740386808953110486833583341325788106488668624768001849470443383295403600733542052640436645797202318430283255996784517537920335624043518906699333084920768922088282557717674186890997707102207626260545176760566028678972938439857670672555196836462911043539346775816931939875907745523007379260461521605171113721517382719930544278117033085319107735372933186302930698328733918653278007527969275293264093751724701982534099220900794923044544566406890427973611006704022352950601544820117713820692681600685364176313720200301161381963169237022674920471621853789130890532454565288059350545638311818059167825123605146208229672009883896811167932348337866045802264669622558151313163426694914138105442154354013203440169396199942925229734521783228384676635643192430302502888858697248938673270288934882245849710915976785963424262596979696122475004026545486247974824425356950887754196219917193167350511229381624247280418647963415661570704159759689704109528777973745983443457941813667810954256615427967848822893105614932425409228474949250069069917081400966752993342769912524381872011278679410467925699316811432361920404877797366017868552921055264797591380540241550582743653869942719103931189713588800307739066723876554612259003936216384510923987369196009417629514355360753024386934417658056451240164641982311392868801808521879294721172767302319220758961194427554458307769984481688512847535603168233680663260699796418474480916861402507794234408828723821646716078159125686566538236385040112477712470358779446225298049618924249509944491865172759373677721309639564496344267637464906284782600123767841124136194937069416119695839078127581276230454162881465961808315641925093984590598396293746820716385485353417743776300980346342864170288728122934409252383052755847797755829140048165085085868358467424661887723264088126054086837397932528149324558554780573916119487909623716319353250557479648783945402002908319136565548205960982935691224034540383654306330639026753591073639226834240301470932352276571655299813621700407141905451346190845601129467478456717970063050887075601281056968964000230127749976922926971704346350219908486582798770539460358579387075268098714254875417026923287321035973075402397005225297577919643749440969168646832988235530374065402437282326187702724559474614080553344255789666781037007864546751713307154774787434846393939061013077489935591509338630617038872027109614613173888489777703071011180396867320045716647648738189103078335892699611944361561558424039429522376417129171195553754002956730026671670802151868225462626950642289938473492997688025881004631155862284997446022603668397742081225049993001309392324164329808226913291022151921097790202006488830752010780241887034330535148163992538881639417439140112681755342623154049064801183001909228614188227549639152173091772666541156771653884428714423813932093018651126040421182369034740264029623529622841929144541275157670490708509929491378960223018595439276619620997201741246061649615739075141872836117741743234432484329558671848605332432301349655809030695639918019632844426425763326310705252721177693580591962603973448315381434508521703714161666235235291396604110742988661740348137452702495883141779781901998773848794794549876150897348905978222628215082728940446375969467910287891684338884495213116624996964657936251276253791820191236775978749080691876895705595016111054368139270509275837897987382800947064284395319874104717211406685022985270853993547125106325388468375277621639773436550432969975118884939756962969304497004490012973353842025342454728965941988438627052940508003432111300078459023591158077352236613605241162351312130971821171421143310742059983152025332307381326024074537704444670119810485618404748669281643191913814839483256482214868733188549408142804345220926468925824501053774301194162687315362398880165289297715904740433831148025161114939681537160552747201434843785134716601258831685332079433033300959043504488089653274200757253714243162957378310426907720871175419934891619423093148208272081576472840318065816378989964923818198565946100073551183172509319022104961300510909507384552455626034892289365939673612625439930632671304856386198386056082866058983659784926344575631693519109937416103668302449204891696526688776343493144337869104440472444821112104276940983387251431155350120029587131220886692664930022134123637082420054781616964264795640860658614814841448313595382993929374467439685611243369995355728281237915239323327424051629857988128145459310570862173350382027168376824396525053461504326034153135760977333619665926154590267350617661203104459902954557926619151098852106917927496983128544535321657254123984438446614548812325223268469661304729571590271953779769824919014216991372320893060663567824138179549389760952978394797924093904298889124319857242816225122712850814414992870838990387255105081854664671052024711361791831468931970730002960128294035349420102846659442379444853596825662634451597828745351012492971820037479393952036536160614151094118460076540113454074219310270816887667300290115752790648986262938818553241001681101019573581197800191184839819052946068211705842306064130239335234608195444191455350647905955174347271061348732622311702272411152353431682629978010277522548226229783102158394915654372178153084907231607222938172926896589266919205354781553780877544913174543519533928233709209857758592124973601371916472943796896446665289463010208727464241543890650942238346765867259644068632660762822607664053229651612928187091117253159167654818340357849841344025835241492081615566923347676809552010547924611487311667972088154496522765264494600314199912171888070427523653153534661050343934729132436732620175971949313155349811749557635130687276505076497169973496094591457999906603584235144925974424596155057769599245232689777031014111749618709648362145554309210871796633217490586427841555651852648253788945930157189694024525125998578366298557691863042601129564504936933937843110618184045269167342249403912722725148560451733078956449038455271430180144752944729757359088540455390044541758280574731557084166670007866220646015802947752729450822256808918629881284500545934753033904953597211319303987488356496009667918853420366936354715307693759119710503735350426764860304992180428532457925619264513027268439099623620454817077667134650758700330103090867089061466546212921357861233019604596111514710245081573654423001802724935883890304192934671035840793931583090702548640675776364697670302637188584573529470493820051980113577880458756021596082063932680513008378941601176725918219954791521995993379554111826441149051827499010733823008882600136580839630461892268375799263221210276134778708719169179842948119865372527646471819801074801118745424137018961890645466756308261749045190013233331164979385610331670597684404031735392332850656277579475664680501261950741305696679286235676186884795273865491737366021153743457908300829424237432888202904641968198963693495464635373507526198577122566671131864817911661445987979867234822519034867353957391789873322712120382828155310624058960600245074375088829343992531374667290441557797485326999275728203042307212804436853131884607387830242093009438618682329549379935355352930147211478156401934567242136938170620319870293177725973818537687033960772665828663161411098803803401402080528862760313330929830093087051946733361049280451320440317604743939925746763720105438457443714671643574527576444756013842783726406906355197552363907885338123408377162801734222762011814873069864280066576307719057537234191174803189636835643939854783982541890624102259885323207352842585555038280526098950445023940587213637611642867108883511322751383115718576376480052484189321446994368364925472902249891922693177650920330324017195670055321365714066806977007793084207069220456958193382013394320977507786299806156409730801851862041174420366119335955333561916874723991043745770823182083176704539815338342530718601539101676788918070446351798001423102654253424024293840598996707470895030518503989150388194092767253259207688756628218810660621137003354942950083053412157288424014922982227453243131272411857525258521398010239261132965712864002269649493296753950899161676654036210353664052038251168559971806364781220081852629165511651177799306176574630842330487119632415443213334137678277109639871616653421938041837630376690429770395576100691339229213405166170391894025160617220759852511765528281548195022805931314467211824449345043104409200040304429664255802017342016053383807892421356997667994435503207376915108888436215200290616849292002802440695904064099921375069319484531197455010468245159370631833678496623887892545744657014508972834994033072876924045193251648264641846583857063292103706710607074214518658200839996244956039667000550936208556772516208996355054768816843410403018786086597424397441853861514177479674081619398004735606574090653528151960679815595138476595166096234911814208619546310377317754362037475897705199485682670728036024307526005496168441752416849998587621213897951135891100769438631136653982172875362998721034259729140158288299360506184022460298976747712867351031568015536712947860480262826516874889691262690901854272905406172555734851212317144709592535141276775875673925843379765092564687309494510151456937652332161207464726157796804718235758776032319162262631854992637096419544742643852052787472374605164022775051814776980316116525774832250131443746395297439357430923826149271589523695604730906442100377184447634530236216327096813361822603115359442331817148936821068247842187827882402441141038871054207902247864682397010110568921998779854123700070430229175071144575272930333219906110477965775818811013945456623028528470027971826246670021830235140058115727797987546647336064551589447566811759478529230543251015324666969294618438536265125963668809527338407998437060151168228053153152658052872493583028922843521475917607120349249946917194856620645274905865455144654954667368049961045595033288945439428219964536357729286252832337956157271716193226935752695021838437938881495626031673103347200583199877662225845495930961450058371177774118338172759754454804814655457020672288497236645672802292582328279868510150156501246065227443832321125741926305835148362822268249902792190453336948481465146163767827450669638508573719193700575576096498372746828629477844063147721716699030517883435700471292126224996328720012681640876501378259844416990879650915483156875123271619741753371460559608397819767664419576299502622066372408704197705782014535020578017625756380189644941141315565265585292725081408162209533861078588102731734810955016519385903351213154585096641206875457433283387045947157316449541579866931979857042102144928692782628273437237122496715916377380810575098535924321458713418173874609147546568304980887991615322374307994050176845024406337416037352867485245933109528945695107795314767812111859421543322230998182079154620601608131231627721846999870353824318146298530657524432146014810742227425329694071473566452427515703526758621037813652782071533615853133680584169667377045276126608269899062711516796756564932172998505701755788233110434187272921640082529007511174218875246949405667957371196656068874986086413882489252105660425959486631065262250005077130032874980920431393639126925221932483870888876337241241989459738989746882763240893315120847325571242580909963665006718475647601297025220521727155970278019687132132956284466797947697263898967725462231950358170524295749509934614868852348184086396695697015780029361938436487406976374908026218173551798238967840817166076283925415322416911206420893966984403204056146627872542584181695797206675877538844860629666179471551783839968650078297500226624228641815411016200699451010952824426865063723078111336924814395363829357604250044566599877060790748583220433035755413059694463320696554699880732083192299420671455928102233379649805557000303932140090381483828183237925756914609687114279163684567354469895990123532868430261710969807325045162779952384861906346213661170312179495738721412041375894161543800878153782721795642347082023382264730761534996895337234389535942066905416805006313742481062537892690141382729147965620667786226149793897630171026458617393912922452025953351782689140031797878384673881901744802730828309282053726051838001801332146925868955095740048060308061458274276764166356682157889810735019901523809117501991253554869415540798415651888046601626575788078798747293365704871556698072880129662111064819205179164875777849248918130872447276883666720405230591717823867848921408127837714453089349691977525182777450224288901939411794631749742536594929748746016678954444378259920239730967918617010699172404386176209110782395447949582475125795753211539050119650627281000153541595651144981882601283501946025433524206239451106194730372097030287204513404970215789515924524223761048988611895526841863408126282855851576364272961681394775294863176338566883301114637074290108471123450065207517535173032380089724654820952384277630819211171777841432759314850230739887351169464459615283251640314396322103398877286074358637829969298286194075937047386395331247657823337416793375395807126686378593247732984204694759523949698410908700863210991054345906259999982812805377836748668319507395132314486558847395595361592522971652864765769552459958090509458514905699244901968339004211107765827854587087626546232234998859826224236559224332544793043445533189481463935782369183649620733314619178611786557199705744316861397355044687515380960358320817434540203825526432155754117220043069023717297406665268030376943859090122489405673180988078464126431107394505954662377988648883935793872316634317132601488759988615542941992619217167575460777976170942177243502717876809716752672971345413642691581402344259650406641692168687342563039702856611844650364133370678780819729050150729880035032436566568916272472201544597301355029422964843189122553084844394120742185805350742205143110155179012671975504223382870960195489676047500794076591935417586017924391943250836752766771160328199858422271313616048015065806650233712770583638785881004177270404244144014854591037969989399889274874149504286847397000653383432324429391402775560473740526144133989547524994088554613867690410217365280462448228461651144652448978078378899076203625774546528588917626841421413017181443057889412129084229676279132180414043264010981698586873309224377005585753487296981519677471353929865255119308021713474040303755003269728825941102199720751714583401263723141779199140126521186797252811015304009942400684551452358465887815573301240130801470438526601871893435425419749174517960897046762707720092365898432096441007272824229967011806241937644651050931060781469872096168648199827343507197356464396872952973883536853665142024576813032013698659730517014015364631556691215401627691003746779206364368903026841951147421831333732769121628629216714212391710982078920924842762842654575307580678312950361809148031855257680090825505644687214741210619609615614319108774990872389454675684803897243198908047242728272428792387257413564038446318076475312931726214110324100791641717269460023569183153436281842432349674314678628215030729432393093898428501395175715968968626900658531846285614554351392047207030103318958589812959023453468063841427657015501502522699542554008439038772860266438285633619694516597686069180895474475364714593187248474380766103179576336281276917495866884632893709876768452530468034397314329036689789106256964877869126186150700906660141200578426000487479821499392660788206878224338221365294828308218504227317633030704986439220433612159210259974430488687228331653480330762436036628170360365653857098868345769651386295673248212933582816299068666516485870016521692495684900294771883931948889082583497266624577596875128419530721771948758101727961051292725113214313769611332656590534779903776242300945178112364818723358361535679734475391104680836739615823816730162537917914674031870192879529031069541858556791919607294025182107247658777014456536274159919142086884617594910294774892745015795363215348532572939731874818843480842438519128227842963022542386548552213732393964506671573731421733009003439612785122727574936298385864967907556513689779751861669472722137031381413094112063847569823138500880694340617837981841779722433644317374570010866011143519347176600460948602217810038898941958692158820755414008306943843949024475304043297669288847043514876774583104304712025503560603949574798046778307879732695460461374373313771159244490775039185378130613646177535698237902467052115778984483973244669251095742119778740225016655058796684087234216238173163626332799809178541668577778343121663910566876350369946755909024834407639176524526735556130462311861978020660784876402552927182382602040516307686306072075982010432954571255511429827858138796970740380994434325965340155469344208096653427147649870172790565452798633641014976359884922419582892802310198947392677947885557587512381681039037786374384703886371823085584100232426049799872004789187117967475487691815328601013831275853967602974319016705632576248008750171930324312940120308591951503370753406905559675198490885579424166117294647693794118243572686612413422065313494203658395846245699360344694283288634548540539030593352301323368965496758257526099766885905950920802152372450686009025096236747715484564606153364460941470686458119169101894215448826257446935719863343914076280523300987375232572403337047106513834968060325723884685604281237250862584187157567523238009158575342369118346880054885017847811460558874841190884349020240823436880708743056829739518932322260957050475793482602796531623549834869678283778848552323322394779311635958409707970998449562263976691083941191425961906986982622221771708115740571101044278384134664498740190697228042685328046470959249831111530752236806752934326333633570895784558531178239846560229651525906569693768089307731999451246595482745271082503013797049600679342710659909374177267766244848209551485099984827522883082152099683753939281562613345757111127054628759186916659574409741623956017349517844622720035570176415884872647418600027725504401692734160784447414225625622474778057477355385512104004845143092007967695993792795871446356281958805996625656978826090614716244367083721629092812478947065299354767979819161282460581589223629900079966560362592715131265451959723881893237252207575332268209474952393382438192665601369320990784360365430338809816143907436991181487635893925677035149567079507105403214519393439474730022286906253290575937080429386778146782031687022073406694224345671886622016268663635459933457911572820948749794353562730204283690278687566704625523951910285754970632373155023129338406559840678387729098219546584447978197754068017432420186503886118451836796002656064338164081436319439815144141422750690724493241053864117061557466411780237326101515889659684341552222363364497800030868836783648758661428868204765355747812533675044332805633523170275701397014032530671247431374753867090584180094653353497465012702107507158143915443776823244268023180951843108711610023594761989068469555425958362361675389676478500155720372717823559069209252387108850008733466722937539582681348595179654822201877350749327162259568481357780637170461215443102683854893420342277020106714489922380463008896705309229755155167783816441094284704497636429233760651154503093514132163897431444033559478366590385863424319861138839005628700710217629047225260240706529940260130580880427962034105053795510062342943502084080835003177736499011296628908379633692715422083237241764554027866907514687930216810737552156605920090417277940734472363147518939394807977795835341660105003774510068291954925912646882104216862147995191778356797974847150882761027557847442244292290383496874417888399872640980437802830157730353895881615201700376682844946219436108386590517452687705870031124501168315763384824269323896065451790648355230121940385502361785488179329352462518087895509153582439026462335241882699599265021735938154243574076441241373536680528529716911523424789370128913446134846760992620880226194157138653864511360164575143720349994128460055314653673500107011139502399925816003585672218287643168229370169081682526492655687383565994092262437333454298485158456686969670166063148127572890606686545257734687502381937143348118152471667860339733128950091290766296774163577944603766088029334403806053703203860804796027732064627129836443506379569889930925068605580731103233559662477462518206401892553184203145738695722345768381032854116320209588898492622735856973487425148003643913561080964844666387335371180102628193495937647084812505818441288649275986291816962940429109653405517942856468097300928074079564707787103424446680872224504728319360816152310434887079178282388942369745352127749808604929174033030142053925668368571850568820181684042705806283115303365182035688083971591879509076361123691721521835184145608856090731096070087994389735598885030622334966589775290861470730535111583025747113447808467925816225441360733441304027399101604871086687449522487451371305634501048209911526802664264162805385606504198582422492307495177028097764556216173619018172116857800180992450078278231355469924291677894721042338938918743901169087209008411713556252945769082310960914312223811535759332239144059441366289722580249015289381704331812681652501637912797962785444035505959102967142380450199798373336474059730987344539798883269447487212643468531254745787970296332107419041913684909346382626187428200263653548575458369904269509998600812723890995490938505483127980908567315735581230460659057602811557751532510297841202746119096821427165503569239856663935572365120316659594278945782009314795234909333134729324016968835184650045560612639747328778899250298782757212995939004293980030614098583366676380585360855738446721681656720400133053875608876664051822424783764432034123418160459074908325359013199700472956479514656420117417171702773293644568953427295328790895970603911181916483714466532212387914603343327079307454646796614723698071631831191146402629389115343157537807498681876401623425657549863747249909834173323228029140478100892865417464518846455536606384547508956169901449206933894663846349926209450546364083323342625322247707177508236392924861608194779596380602744926122617041048416767378262975714255215225837080023134843561857905960496861102531461200272412647543627407301029966635200487158256981389721657026729434458862026027771870799839272746072608478309397146873179416427259500667229256404337832763497286417565936961412355538678986951099191211145302672185315549083357384295638454670945009532215343033488982215989928016822475176156967101672199859278849671931143934194999230551484100598489626292168797576647919509167340036966602979050115035291763965363062771222950016286093238001353195231709695172192160588778673959677639315410181918922330117589409420249975078778813476732176057001828128619468955475253952888184958416995256734251080104859552743956222748729541852857948163428056079776439987549490475300805448332707323243588135679295872403478361559369583145373279364630213139255794567342927987121326914048994648462730928319687321627195481129689842088617249062942721204864790010352823994442953249858270635605794289714701755769665816209712861789555419343294075506980071468913037614354916432660368073291465437075434952171396164209799526236347936838332003879873315709318221195748033249719746800436081013848333497966797525485978160941166877921617859253502129900107475027637454186121465726675335941534859429480406738345872017144331786591950135152934422356452990217586633744729713377213256117484440658857240039754924541218373885111438679345123337339018884752278581352271553679170038531515903613505896420765575142420318220398911656231012496736304433276000121537150831792392215688094712328917149364151888326214574407329474971190214684725412871878925010382712794023383351208566090276687552664846130702566141110440055916943175495094071367714327624833690206237233796628279742375497203875189286586590072779245358650593316049757018688682333672606257640985025642094662537791487236915799571584090683248955756817627199593898311380198736801306464728699373039018686981443657934916813556028430643731823107353918100335061783716665136492250944040689593618258202882659731621111627903111476902151608934538682170978437935720798572034956796815361974929149292296253943838508986986655972563610505493843850981843172538708546350670549520052104066722388846120236291506379063489970345956415238101137817704030609823652858225141131442648692153813037627583676716760614084424166467973100786742005470537548599609696773577734823125037338232942969526155704555440218760695941573172393112052585565881873640236364192198126294425385959299284329144268513585736796219741534160763671787090444849878558780214695925333168387493861366612317243749000410009652708846129128706516199363398468608533628840928810815794807299662532476928680231468083767457198851114123247129681226501368523497742876912933841697627457793773591983513044119175627362524882013361935278221247797743088092834840345167868420337560568335679473163743640913339515513117758402555516435586357078578620223959538739904159693370902720408504424259516165851602437854483973156993872285495783544197340626287262697368714539305279875237071774142807920910886834131569400050571495766047486560033297388195634419681838294800363139472252707592250441880345305923402189082184767323679425483836921018755938105363130863306706796022634564073242233864129297191726489974032843979054902236663886569384268676296205549143936941607885489231730198627965884349365274473074841867249744345051311234205676810570175916174586594296387974740649526448993720067253214168712018796875890404141212917429726565755319673889316371158240190978757147640435644770736349977481905485212379595297750126582105596699271487107822728839893372844204957855759503528292626997957907087416652514559468919423239536963027750661037589619167988676925620109881253397895113738993458769805523894959147150227981169369580775398939987950030256173171317913309875909702234065379032390516622847351175124335339015859851509524982161385130402159889593331644044589708591706171678916263673574271903834575296085343052851901756864825559346182863519749069251277995906522735966123296685881675259228904796997918940292231500678788973290692300028899756421563033399470793237306258037588552714629277235812018270643373904353058212925930973811338564884633134549220529898780621443984051224668039990943090547101683533100629309121291659795488290399462330944985664446413374090640188530586284444229987934845947518582521430364191165922815831893458626746023709268448240308888847220768919220131185039241633161138181379578035069657185306880085667455895072988094501802986096364654814438143453874779963781621541425533080159007505019547160847655039993580577632441448410931729303994310499285776315073062395658832705205562337987915974763288555397385669376630064136929850797316067635031788490266047194843038783618316146719924646861304869545899856600046756192553061733836560615263137640738374913112665074408145475520957146435334619980588114461146712188349393150256107692082365923130730662529510375207402057792602581059345625814192793687259988477162031439667241969395508860913140752414288739051408715098638635522395760178817211574242179948683504509220928247781615902490476594288605422981171494429839463018813280855803273541689255010291642164888050239725872319070752915050686246994311561939078962990282265106785329927084374515104326778799256989119877758017300796239170924752043481922195891486523826609608448615063048327260332348021886801584952233367691172203626066273712031115194314006292640635818868340472704343854975468339535368704120617097383678183700342667855281688431959395732199324964321891143845107511013041106637663389355363632187451124086199591876632613518659882745427747208539288819397721628154187779827793790977104234597291632322664545737421155845682471911347705762941901172041278310563340600482876293858089082495922905614698063712902277319740198691401902132888051858236232157273056227542931565997718985938739498672901416164173242817791068633402018119481344622787040653001159160319532921656015643396039519599356768811372044653206488059836846057999988797154233036653582521854340157861095264164413598798767132487830741775763892541625072483133164293193407824366755832238311196307487411403006997406228208401182294256889918048617905896574714627610930658393497311974773508179310157971514032149853772533242524358076878093289200654949325896518679507067599082714624160276494968143636420832772076521937081210374228093722014105199404395613779811930484946023667973175575241764865763995966882225531068343949233058891478886641927722956341009872851593247756614507033100407387421655014467371964176568104438686107156723068247485118583789646719863472918326826323641058798061800972090799874610677511507512586978881951584956059459889678384637182338696259408553697875874253183284112819858344338691700056544121080358505238865810217574702122308330160306075056386926775495011451318411922828560839265721152230880325847112991726770311584457046450045304517011293687583637345919031141211410112502347605083391280057248867963897865873280433006771199921695973190665040609313798023603159331420970906853798293048644273543234979260036997027828749409604775729378261520272589937265784248890128801382121658019361819515901802060760047710957148389628367862062516236605721210519331104340261221822167481153141330074881103862516924192283857040216982560944269291411674202038505679808989544276399257640384785371032070938194317945021244253132922873682289199031570415548488412811632738680792678980139301985983670886004259120547315046293576539125456049925245789908094817206871713769631544603170380690227704500926440272784991400980282568412600922053651753858207904921411441214259164497048306295678125898561029746177857309306834417769651456707184119564946446110070241583160242590143663770830805447471611178410909575828493462289727817167296709608575867721210735032031783510457543125682120083248483573300192132376841314875681094366378084927577603507963522269959981202301653874350345804674952443094431451160629884111639800609319694633679698333678175437953215438857020235603169095327010129036837569320052436041033388814992915828621489723029628525251234472573435114507217599374763960338779811725759209714313808323549357144723502303503451750508051301125904209867872782933170838142319854353976871401569263677763659909791984533113556319970536866716963061713039727476452115432514028124523376428245558328048820881621744944047926980716255401924255476407941131900917407724802309791085615537068581642854727439109373435608061220482940656591711273693715178547949109381088779627981170921637758406531958580744446151014095534045876416839468736146883076479262923991217326990621839956719471489287463393382722006997754457538155120209753382932688641857529160013013626895965702833865877389525485375486552446976205111231267175922327163609542986256105305813744353019565254496816880870705338236145997960452962043422924226360668022104446133357695250540375171520497027895851443086546178326456066749837812494177486310488877446861344682220111816117020268754106150330795464805949975531744783770402775483764006683735779059768830847971150862347035416199522686030212554792481469257060542839280070899132617959320811453645738190949541326399060314129816416891826226365944326654559476810794810491736116782039104000313979994668641599438811393357568425333907248525696436478758415483915607591609585170322567877388982973051040440371237387024943093595176506718386193604361376672963656090342891581582864808272176289047528764810910879338051484717756375647875173470341681139766643675806696745130411584494790631068765967580981203089319495267464562419887838205415883951052252325465751432709949055398894618638850512183317270634273657937604586817887827409756149315298240743295561026300435477420690815976049668765669674217183030548399797642196748584459738440973160851888161623269302204330579770066825333412388082919404445386529210438964412576985025523957825216451673707350046528527521755520364858773555301979189668803557909695696324273637674386124087676390651325848360173213731263745550264155821291085455193035187729652138838328276240264788050362803689366334020625200294382180407529673098570865059487953984437355974804265580117939392060048081096467266694701440251154380249853135233745806735644441853728362703279241636243984813555221456093690032353863872323645846895958260248240007757574265569989533793641455814127156180683431010448532846314156148593871515851336192913003298899735129296010815926773853272433748694677048807651609128142634847920634320358347563026004757756990537899655401831987482793896984681547073538718891708603376317530825174910688077881694854499507588779189980747747013084467889428054171089097965695234680187982778716187448287017680376884277545860942184441714978691843038934700975523021087753488033554188427953796205535958787907863583209057401052440162550575313727257926873755224081111206288864073450388692012715365394539845392571477495831033080260690153174204733674921713103274298356903581542431525974008977570815303033679905201300506304206686589078695879632571145810915910526805771570788535458055380847743964591958054347040786346985901422160807094201114266071530010807637686690109120037292941957979392902067661266812252928541503512691250016541711447748860794474528045149767168913412105689006243492662450607937156979558958782199831950540902565825443866172176554747660738482956645972675811173848902534578104679732855008116730718287139078865231334926462009056088524682878255189619000152743175819383231261551050342670218314515369192601115392261152333354520291905905999864586692983413825860791692799747967810048446585909474436291737148717255180996085880480857566633080874887161432987097766750482056371865528499437474769102460938037352429523988357129407691509292981071462452782511946977339269366644542619547735524068055232838040350636487129775725169337906099576391693132532356859615343540564730615252155484272939179455180470916210545944896451012312707620991916348333356822519980999980070087817248702938107663007715891485842494828419723796721054724092629407405836571348520832807081698292900181175161075222687013967874986535684972365915048282449020311106266807244871140130315576102364133699237857902707042728941742093744203584066622412002181292671040663269621562021173864034661326592297491985408097800898945985559807740636866486311979460982273885910255870628292861736582657168167043249284813101515101215228585723149881141232525047531782514023109650095544043242936930909335073861484586256085972861144851692869707985180302295651624346764029044944063116055080123777144335481097957693712264189780878061632984634179660984841088281854876664585632361681968072179931159860873567608946904137209999422201510247976799270217368379428736867321363171708305942608254502811828216505073442346572607265372054533878265740953222914505524636256098995836763187574489392451473286775688007946022169656079801741958148941737997111162824122260632079005484624188195809710038843072077544949131497709194678005123811519280238115154268755167755908651591873926458987612994780168770336135649839778314116944281430928975470358149213238946544831448358094559606218418549011796758196377749751819811511969914666365251987762441630365220168361628348876601212946177550652262882888114727143578045539909617798210874293936997879055996686335849429430569102998621634448284354832759547018262778084137402601148855155449142358158887088207837069077331713916641878294630399679368402492525912742047134587264713445354899731748191215521209262640213654954267201037051263560614049770854448553712970447342344933956313072004560727717197371466137997973892216604003871742111161246901495258109724504187225643344693369155817405109741973449065893895851643771426962318614683469660777195074034876772014189423917321388400455297316582021936612313384581996889503937078610938614172182017808631869587152160518517679807991903164516222399713162317984076972549594932975231448311158741810247525555441788357185744769627200637076381234804814756627328779526531233780340628851117812433107088788174973489027292556906647385318492509042097393098362093695026913156077136632302313237438819174490214787699692650205023229052607953975373937395894739822413516134817396078910206501420859439486760558169066039806428311048644555450399510389699881956091041462315539410458526451464434724842376032871775029950766157659409608719220037206631122001126907139667188511331420568632738352598911538046221750499456833069040246422954537242992493836817142886824322555241146868005539417879504121828560958976336630487899508868981596093077123273541018241629384485018261560691925566320966098763324691312788175777666982824059238303280144154503217629045739620451103031007330651056064364153842209589224938994913166072544527666137883549725681427150662551957890079050140354522813598299821282024788828159171743674632075878382826075074751401642641515637689789301370340293599155979936095153867696833369633493256923912114278720315944330351797606416800871093227899961386491150767089418257236370289995848440196840992986856957063246530900390391163139096113595725654605026214673068392902700799019653159351163179751678456547711416074269585976230823534267651963699022734416385435012060069513406038989516114382220853093223814975288339254209616658716726290406120329285030546073935720921993188670957215614636624051502961307544924053587211225229889563512914337370747107466440350438172656000549196975753425219583592059627854580908225172967062281516525821442244528369806290919681899248591388442855929971299324004249605437435631610105469486646957526732824749990529870680672159187026861544439962101545967899389991085038665250534877858180960569412897988888184216876393626160814575631337170076377132131864736164089375683272904725600517708779864850889229963385890044626696367578348057455092077585826323043580912994109792943447733576622203290004842718846735453640664929715301461063936671973089079218447716232320480875723815405358966464984337978600940992493510826292944375359967609369821779244624528441130422230137044108249952214268787655409355784598404823840392449177844514863008802541040330484357381079851422362544807629947538097311898222371112354676069658967151492900652087211698676496116572598177955479224765350697916222696724720830425940323896981269069068611091935228733559390302804002758176887662930320215105693113445233758592633316263229530911104980391473325085718171321219223929560771561901546036461697257360941828922205258969649808062691271405997433189173321482205080798226780556612078401460936327843897636897364887295934192050311729607668308883696877923543406208020647088240053025663120365073467239752378356141939033735210800381944181161263757919637986123226427878892512093197415363818936006958260245462841283271752766871021940434304434053691027450081113689666604180303365790419639257149123548583878269424308310542261020050913894436284899808684439795747249551830980577580555133770933806185504445679194527605680605616930620978657165115121024418891435738073153595078368476562747412394239681240550259509968841656809810076924198249430197519606281841825059572493419136123434101148637089060435429545722088875069795481707533394786740725614518428951776358033830088478410262020832234690937072876322834012785150624699473950648629916214711133562234241478606564945266908128597055595113358527882808204733788808686772227738649552312400340341462316232598631540108462491629875152221688037107426740985872577170230736305298226959640367210783409151848283346175968596667194061727411006939376999640463755458567551311488648437871558301998356614780937831212687635233737462814373192088381057154381033276227726458954730799269696460283319293937323179913483647404794157003482429710067379534192830445791697297725793091435158327798282584214593039058178102310530771690171140428813004849019694919940394784226413966121955195319231676460529435878477615822671388217736853144317158052996032870945607019250440205421583619834675797217328774798891072611811969200657353918731518148180535318873677251388891412954307683413777445212335821787972089687795132743602813450173292178573809267614015617193562606424924052713258327976861225254547060512731448843453781805630809743170968992276218938953766215148430998340486753684154617891406720251949160442107994331729140884165684166599102367632422732812005504665371188963863959958645233696019381291304105712263671402386433562949360300490871791118374252709189094603099245690368873484964548152462997265192719626514622838856788807625596078098483844327396958325704513973637573147381439559378007721491538276310254156278074857375330717513876574643292965970962415608034735426922239276948896275599903877139417487057527111685169329022903443533860258886289807070868700040633236053272262734137874217436828656297010542913419908569808467960002764289267928932206842907160850661265667625325953548657914932121719310370769435527769906698972622289126398450129417926827670680673933989497024174345126040070290905535549487302997972166310111974625331549865029134368400902051234415575146170157936057759888375416798836077789251704712023521448166093522788006837553834010283978314625142128211843422082179611097604246073989663435470258417955009235829894165281194023703261504941405373096119035351225187169258824460482952860700190009209940266228558861820229919285445627872825678047456398380416159340215338949781294029805111656910249703385899230649616097462893180837340641121985184286272071647339428385288572179273495298160047297319801071949405128918664325312764586975337906539606794127278930516487142004024021548133234698939814023354513173054090040579793196872138097799448514058132779680625816979914486988503525143671234909281739941350018376358084811400947599831008074301768059048668908055586681312273624463707805099724714055185489396186476108514463437323753907960215108948800371209199729998305096933430322604911710481623318068283480650286217504751436183846883758082872405421740502376440252877978114966312242755923360202033184172352970247933707316995819543195165397184571327877477100836473226457836192039967653475639785491351525781355024360985698304447669502270103034021941621737708965301017509880129986825193031335610614282572139356997229112706721300635486302794621124442510850612535630285456610865223018248549160850227208587107564828486087046990692360288529964436817022003456726197340437586888511061923501402752737145389298157355856369999894825471702495261998943323173673729758720202669021633377192975052834801249248401111770029905613485496691390218938775227927979600085213040480681834763498137323509591479649183766847764942468836716289356896964149234448905502589218706208517532854084453003217615431951955830428126363206858631773192226545347908984526297144449475286062869767590652772770015051839617135787827169857655431552591039914787788388266719175054936276261078878147420279556051693115727647684195541148639687931592570912235305535452307696246020722852470755978312624544287324640694577973837375767361864911820528699460346229193953770195585017929311783727464843517406163018252686777412833389374921272767517176872946786107342938753974020865415764423375898012135880658516031698863991407502078867826489333609740298684669864126012008210851901031652944097917743948574932562269001068820325339266691581082199538875627204849793331141661802229989579716184554838364541117501296635985450211330406151635054466740022904367440294145423140584186851973214761022146709277048301938521406712825866433724835684473242570428316586921917357773029672773153658833260603389479289884780220380441508195805766736519751106843902756723015038061124546681279240705770022375482362475926261069986664325333028768842287566376505972892303613079720901603578322359533953717883909231286741085296485162880541020353075772354815883887516700472650803594083437588507928509668754398190753808363036521724034336390196404036646664064813484262856503311515705412867752382864365775838620387457112873555893311484020575557265443861383365891870539247781588773513447927833268651752284651670806676298462927190889803376303657479129554458189162128365030982607399796545830114557141246099147948628119168941246288320135287244132976075444197959195485598668105664355473689189909602875915030879770813566911623501262759979241656680632424118338106886343841574210737652194433280542943582539273516507382430303191159985187201210081451857293719250015559430199545889186272854961040000243505344817082065937295777871554338025620969363493049620735618947219558155113558181705047538713478575790364116220112242088912224123471870435408853777266276089161750267955955101301996225666271232022422478986010160480794940896023349131829406322860953876751479864104604457581800332836443701584366974831173035763670092188715115425764683577735714732693100438704607019619166224868774531003587940757376074676193749112909892799304549057627607798051709379656804133455472771640095735810354517535283699538669411395298248555476248555481624265948093568662605567613110251648358511854667717324518340301584141203774881318390046648237536650746388746813107239281189428985845134350732852561719107836392573871524110391738392056076846060949408487769893131510741705137404632417831227850377777870276909140942022701333858619709552029915705911992363343955832609354052327080975450192165204301487816192893801784136033093907401552348603901432267076079077062619683301635461603469351684092799428572112902541734138347719318343971975165285378604471201389684497228839024366015897434150751978704435459397152767375232048874583811921780220510978396856122380118779897886773263106860259959673249463760017563733346900228823423981281956632955696176536787278968016362031566786436144024612316566849123855802111484302871411859324610176782094915445453900862651120680640148721127332572986659216309074398746466613341674716616275189418092714265147973315637664857950450894213387796908342334732350072977799038073742557457006226382010635392656169654303060619908928103318903316449526402882942618828958615125780825119605006871675081725883704254132070188780519798012041259645696942946364871568237838268815049683052106010767070519045480184627716294552788386841238602393674026074836019471258427498741710852788782088331403742852362936213552472897744045477301321648306776179444573261914271910793181487251588026186777308836707112999502891833755281500461255536149905817916973415404152169960435582104629456177901845837283143003855456777203965930312683524799665367298971287224684337567833276483734003470909918770538429865560900308170244575463524938797395537861546445869593572055850885238539689687562886011488132757031374417368936389764168765924979688494951257999429113234101211915343232840098571856263931964365139087398956833229170690944930047976185129164105072226492255164402757721931903409073650636296739539373216462686425067726046796547269394797062165726262285767751965566421494582205593372946898776159861776262569045949979477396658269251205561866580945536998129660469451955193089469972331622392701932072358858027193926956252360540300465676459933039242960105113423716483949432423424906604541175870265151639560178430778332029737955649894618856441654532378547369133668758156791905760740372986828162715602502741724031623234787855966800508275714866057983023140422390822256803761764636096125356436541845566801662815220222534723203155527665166287450235229612270999763105388223452041294394523405649729859614695582338915910794753531659515986359798926217683335731063236650421133114134634935541089163057001973744986800498007763723861182155839782650561816089447811766538544039020631207077378634768779581933790811320654628516544405001173434224006889004068511708134740279052801928156132073563997519760084502739970160174106967846220177534377298028175036419977196775366214700737044907213363424010616000392337343180805261934788698456898867022301901315860667027428990899705891199452964282872222346883075615201970402845218976807193999275143540368428335284493720743741935426159817606758144003276927119929695798901576711727901972534999203174965587819591633611190506475542033954338107224242222801850416149816116653847003712216914205030792770564373283678407788787972585597268065506622076309451166750802921710171431652744184186792038287914947818412147711464091309983804361728168751560691355931343889313333289924584356893951514321066727528647692705019275497890670428225994677292262197380678240477900843659548235721001052117433600653338655794459653401265003866142251395403588978274813367312633774840430664904703012013475926893385246429230914983684859009498996441376977587011212555329429292744249552726329152439187615883878945157925399879396337705231471334590119442593302004279236711101588510961568536893149783765962056232218465943379213577044106706868897732652001675122061210680616980517402461024480897486200976905416513464777405023845237034298990662526898334919447080999755385217019607993227141244956144850481781599529978385517658861176437740908821996306219953067112461616533178767845319619834032442955905097763235011216555308342470954255307526028043574454792974429950778823402002882833505604050498565866044844981089165050085339724684703481027259267343702170425264165235657085754355875618381822873729125258609337277907408194080339443091905095164030500548906841180622548356594910579381261027162524753034385094065435007385934150213561367364225578904586206717666085192626331708982714567828185110139814913942863668290610369629218769318633406513014726377480056555180465433284899877833886876488334683618808479442234705959834692490610836943568702261405603001944091549530442747932793415006384429294116910762656500779541642043558774545427810165733021740242059023520808893365735043407225071280932701908261560525108236376161578255999874348673751576990863486143648415839031118355851189712733664945300469460561213016791714665144813649847716663782136403693219113911455006640367142986384692647117402554612329093550973918419698848206292864602685427183693905657080272830702499656465685777449007302595148219406787511900156384804831401598474243906995380186981673753915573495152264783521807530161437300180233635610702913587227215520729069656984508130449866217921426751771658180296089328812422283097052923853772774665250593435830200737990735335846318353185968990947370433545136679909010914401331738541959075466062283938193541558056079664792830855465339503878281809283992477163865129090100912785789644292644310234508365546246295231695315309786597658122360682835311195421250361194991223172435657923325212482761543908705670698492588042237937116052259845502828202963095642898534586935478548301042977807375299140178410346216602392657169407563731540492843621707879400992093807182812936752788621443886686118796893908427637354411944307565339754339339307023763930771848505085844158366035231841268942192702785473681232163640458523344572263253970185741169595512326941914368001174173182653103140498859459161472554166443520650973076605616250814986697248049954966802047561532287776468815781804408044819490208968736261717500549840417094128922881575130682963434291153991667011293570746562208970929519900182182287950959054257339529383564177890917592276701391803385919399125825666279784595734280233394543102119701254687845310229988324639789543559661550893603136173551549743058035513456412717548403242051928919738700785548930657589640686760315380271686479689511938533448447230007161638169150768046638515274400704988092682685644395612024535026795053166817056867087636224831724042338967991761437026506184152748145883084605478880592001717725881261034521513380776417969536034578639320800951375429426224641740002663040125447976122063637859683820239186403722889079373720318911872580976880105313546693492365772606906830587740954728923970162465326097533707695130415896035829116229527663225984203118606979604538366545622249595865913953581072811520538125113785492566703928575669054939307239953094353890966798666785399578395709879970464762061880540326240824871866418945808313059808980117416008378762475563888466800435620347559948284411826122668061287241075527217072622780132428604451673123125517329735395615486377460412491668196668738321655784125283062139971836151321503011340089631316223384096893578833967833218826625665212706344172297455261412814585086674057193935924764308612477983387698120604627965927383226610508810124990001085560684804026025860505036196106198479987234052882020953790371476422510199306848939399623686592187112656329619925301225778204594434982964947744320290170131825946853419723097528694578152423441803841883268228149049362165365744239543589738350331340208254700500319786305151864114841108292874136875250006961254107837696861595890510208506019093641454135093950168585589403103970683671983676731734726962967563743371515698453593734820030710393492366896698561566445534446702219239488506246145724557832849844572513998955860122037757359252880831121748438378496230469695392156495149677630156224358622743269345637082066885203519358713077620054681312003028324177747813699566843828969674180950327306946054534014347345418383950482463465577627555598527585518979909854710220925591605418648420844586595407578586847640984904968156925614659840520586337261170866794283547003479681248482989919184418259574887368888482439184481251684587681848277641241106099166006198652513119217177777885461144552143661855445904315472487217646826037043213596789471837095723057441260248156301239952756137237696581799120228312466114061451759013967921898986184837892726111897258140938284113754344666338876702237562199084138878177296487073483131176554895576751433485146747065329498212406774044560909333254626872828469546179308498202242876954989437856362834926072893529841204021763575020221298534808602142938556268799784837971541367117038048383245451585830405284791511603017425364223277411834491989343839148660529820672191206596071339454826797871673394058079355700021198970668588386439973852644290946715737041483082167185588795593696051267062748107099991868775266041576419708828035765073648083740243708346545280574080213236732763917532780125043743275196040236510502159522270681873001077416909234765532548977426446124048717900018102052453168423566258873526217540608396558348131598056325550057587019160773292560725555993813406914024193923183696578791618943852222260164148808197018732231127847962237656596945262865888860196878701804889985315724733966566899335986388866342932769837633307268907526113870627600927174236546665149792055539955216537701362223348635251987727783970913086789801383397796908744067706017295163810002562761404882587009053992015286517232429813508371746034581621319048324819061883192317440749579272513993569776392449409108862781473914123940219856775850962070237529066455164845296359030848699475641399585763230220798714371961564853011491701284296409142920149792216529970308041935639577226400135365362149098462073244507868155070256162917583963667666588432321378261007972597975619850045033738544666674452907265716458977336009663577238804587940192338484446563751030686267424702170412621143854810294142367871707217145660632873530393520001683559608967518235571504616180630678297660671544846422778449639755946655809179457633435187118835137304582943261934021260825802260133326220612665542168197519600329427750067702354121764944712035044051563073668054142608625292323704726574603798872830281600752519756767524856997263330285375500971275898940545909980313956201238951578465198170607944052319758148266973086490136676011795714665899844284332476370807796085931936748499793508897223765001238335610839933050450766682277117892171899568475476365544253830820835479669048317309403658254212739150436512419766308119481298500296621765612800788768586879395192853719185442230794487143454826661956987342415284583443279335032391841378639619195722234431006317804667926612283482955072160472075805897490288998945482839246598891234940048453931150419394184461687564874263880409696870144434206428487511339516217185639186877336533339157913374346212881976693412408781631086192598108065169017066436810935802432174651668788694377391634657771331988353044977579582817635540327011181344952981468995707552688029856473791278599651112093298731645286135093340098023570461733492455097203704889343747711581043827011588245923786543249122813699516251282583066994321907798500290507569657315237634230232321064470930629393855998488197830495923634885441248420403669106855225412996057713738482925625738487590861748811678366588764132281151024879739038923367315176025570049723323494726193308590252244182525338621163447196990431283931194606272809626729656005035398956825228596144564230387704319643706439581628103134437050281129090715448903056780488678783595503984696813979211530484336848554401695204643339470695905108873432186375213448926029141005892973097405407477559389379326170198236329575264221935548251318280300508447714527263517692199927632718260835606567542990205699538687365769634032033849552677215817620135532450514561593764718451009099526568490426805837082899486237342867306781201459187016365086515972929439047601936129640518875229119275322988326899183109530534464330220888184887170480143849736594280015614983148939975031823054247630014296436628581253817068249772885501873622214770875641614982475581326346045580208959233539159038090127844896521024970728934477862684869203545915201133243091818382525513128959986912617891513417638433653844175464966518684940032803244735829901273235222096942609713543115382383693689472284465976984006470831696752279864597515085438773317442625996477375823008706921407110706030576079645177920214566689867893830779624653831861189756647219913772811611307716094153136881982996321821223772745135415786015522481064409991111298682138606591894100169913811573358514412240902642870523890891291146874071294669623812355970840027934776054135172202283952257768196887765776451782266968587454263009170995549211483477167412204097813621618080345549403030456424151024074724579981761216956119540343935626337763426401127153599378218096426414684377648347804978032275964365477114754743488547904515052068179308719108349769037782185180562863327295057157046443010028952776174924393007444893038949278641397184518974797015865379372133717026436812392449760002964686562874440708456788413823356801811813628978327157218139466805265264759029888488219601900197124017970113517613422304786377051169674912157658279360417505037293596885827401200946066417422991374796219264817975732373178633101066551288035500222828711458549861118118451961319585225334871274647614752921269746974722950835843940083859788365251235310027861915645727032210075882207560160832666891248617499657022601888830786201913670371729344968466996354016260931517324498511509803542400106464999196295240730624056809461691168555602166904300522276407603367977256314336665190501386328660245442632048526616188412717271870327526419844346725029079231274222130021023896299743138427835073023830456677015782944818011062202112201779641633059747835102736267373668752003092157509730838175544242145987456932432880590819227020996343615168350478539092868746838866056293434155484602380317131461212189730647894223555104320993819469908213387746372265911026393704685931203810969167010940476748265311639311815699093827222678123308305418339428501691240308455693608952829782356802046406437710210293042437229651934981079763301876879702871204542061744696570120068857276049453278343944585889423823947724374240400476651076698532709537445249638656123256507085251041431739138955997240238381032271754243106062471213192798079574191360809273622544425375914635390924306004879589573689275219328911580155113140955935249535552504891465680454850806013307805915832104407889354610490110928684202082057044537414619151179098148770992494015685839980619725770499030889309179367448010058732133568613817010479867939108584239210685149268010701394594127779065839221191374748940488678564545409437229424185737774242048150547235016569485181372564917931132976329643110500621869909529586686501434840429907707114155793168545578793554436486965492186483819496602187917374389644586193801981891153548166023041346057023832275195924600885752101331116542263878786256558425056118098214024032175527067946217926512697811460840243040829989458964639069683377553229382525288479323118640860663729416156679218149224872609294798052129719209419591739516972976691644370363493119667778860177722030875924907815258681386641049972415860595380838378446939450723207291900810936187125283092696738605280063989754198822908340168678589274169723454188077099232118531814040234218293165447937444282942468686046781932628703611126487911342090967519923292427036158442746494947942990655126794348380734239514070085005172669756442464029093983359422212056575024538997410632647075588826955235894064376813755831423233580404750098106928947703657589457925584834714352667697890723985222536332957831081029669666515648464123105708488738000079531264832239214801769736880773544371088890830346883555209145943304397797964208816993170796018276647477759219437146508721296550183410782750343091248577436904374964751404732767139274407204948649994256606477176108076141781080599395136736342478918529981313820368628961983421976233209845055937642192345862414507623740860681625559315580534089265789614746160491743722997376516797424183402901142263221598524921492770486146473165059312201992094975232904198815751220201465319505966553180774158892826227126428951629557331476701967165159592234119840357937638217422499969561793462939623315219041220440297552536315794079109815638068528031597336146031035225428125512057401958857287408423582792093433251017912442656548091732669205317290856338869457611260466145495300260880326241765917993386044653115477249761172048298862495402387360609541763255122719045240915498416190722823202021597656014788323946536723171257935812122322820115902068570727344155401057473544839219493718169519604885417344183999100484528478739073557098764012562524267375134615179434686654382136526639431778518945546348331293144425316223462129586858333942876136803439145223850035897082333489194407709603688597910972650994770566035062415392930577055230863343401378553400941959630556929033843400602996715678282012465824432964543146997400162029000355231740188136184555887714242037542059611624751287586024929524065942883379806774219788917355182268312514111947299882742964841877973820829961308696406659447263303083375551902649648676897895457600427681890683164154152016253402841148117832235029025322732101334920797514290685387058085637090867516675382573685667692927345333741686474329549268542458965521716091370188035696657803350198823164156871993465929778617546971766819550499641846571694450885121698537314948912363538901214674187582552041771134780556108265951019268159814819708712143082993212664343384207673299525047119500729171310580730102112046921283579686853496765106604557763795898217758756831085886588970127199644393413471706126263661432508275893357709631089627976582403400956628200067133086803719349877062208271250074521360777092824381162533942752401076114691505125779435098156806088683725445503512378749994372112719454134274613909184016075678871678698793934451019441045833789439725426084083144311428540489465683961474481634201257571340978911785566889707709689227065015949867988506078323477212414805882100563718615041183630325668932164942836970091105928862583446677762206363713421860382268463267562987601702878619352716378226545421927871756755009038073982194812468708348571900021960368335272172779771646159530430818971652359377313904371485559448919517311538515495305923599946579526655361529577811022481148857073443353629840772065587209569265550083914887548100109968645019552599192681132794873665870045516482673786737426532139281808953681037121718823193076524134743774379701738555973576381340518329697204440671395826955136705800996539974620992486978518937207318152910665915686291207592240063127798549161482481730074263091241874863830406897961371094095520901745575466176184201075023129274044182392801762040632470896761736801691454202529238321873312675011086315454015334140565275797782536790484368926945205139689998212923953913725058605724283623442150335580875924909711616862619288577853745246825170824656158854208855957606396106490177393444140844022991263707018153073614784619239679104608986330191732294194291670911473513761101482347545771410207096883279433849624092752328648835031333566585190968343001379405329330332914917873310727996471121944915920937348294479344480073284480069719485845148668817938507085325930649367938333043624416724854993467019249179189221026706800908849555034129451425140841550856210114275026604780803462588436803174571760033373461605782825610645688747333228570189114403342714165091797627458271449599846362915153949610610767884143817361551550653465288376998811788990239545511369240161208969428566036649126646895192939059395468189139760253583403408524769938436065577757939140309502046609596324367377846726494131460284918308316794972658219162947889028274274651292176207015303787345093045544953750526063319738155415392497898603207099493412889384448445351832971160117522551113035600205338972776212164041093280011196913879830820314583653801763601756981333514902116590419952832308856410616303844969734077160693628302579044483899230140653285245547823407476423436784067670316885506443921991034027654333707277910892755884555833207235567489880873337666496578113577460842737748618248703623229848497050910824721863059855514523229583629804175195443075964908778031236440215695159072694403588110423153147174187890105785669997921858569352328106226341567153965454453281155802647894347622832195672974316099631561444124711840779460977827537840898739577801589722669634256752973835928005795877812495357415575780620752538287322950387307648435062199837580521233781114844565495217627481534643169073150738207960266596339772726863420924534542397179691164774417195145108650923085110161595690052605454907773148032797452463530833894795336849354176209630775413026560285610611869866826483342021882737680830587102999686781575225717364088629608860873672109698871517847480267697617387156438732580767283478623873066487962244743795410600733964731610633228323120624796536684233489957014596540538473055819480016797746257043361756991431357886327036107822406166423473015505185750811960338534893958113062124782415071575794332940226753008416688642691805805408760042123305903202916804844492127273487809593329606798347111183816354309543876072345830244435938298956448575067295185077751115748238445447061513607341791923753483059784257537846241470960838628739278078776343978628036099267164604730208927800783082164414188898458912180028383020291608683758870527128551761285048527801976841241576366920517133346074024459254491058552592125654585401381714142958116322713773663721594324567225066264683316821493562053688357237418397222790924637218340178548421908496593399560081299677118406195094161069004462182497492891085418676478982155230019331382050865214736326861644161844384851676990830768319771723865709197292315806746719527899347576362321654328281831692909559510265341176118728268195366853319021104112997689978483664742709223943040064828086356994347643288397349136743826371432049154214455282431759745023677972736961462003937249665131102600606650650683355519325407300303437023827787094521952519191804438637210935617953398884799338472830289813775666654501832602137664636052566671054004563875960437289202461848440445388506002178953420302746962351227158446497760110111851687277781532931237729862805790126638770204404281205110897263666953911325416535706040799887798900345793839787865792806876324005151276987865482161611910795337060049090146792345070036663618800182517832750493815557231690704224655353325820746709398347287405569335864987803555386004502528429811445880389785360716991001823146256594831097183429928890222706859243001926236923644977623398638615180987520514168287079862538245179419280672032190335628281049443404956101828572881079330402544136328945827135902275404164162597723706397513826859596865226425782357945762456599603277047274657649208613887039486826206326048493202159243971742363691679345989572751884723239341263286305881704290768130050577645382678500045914424991550436235160375618649880314337247371610642324705130739402185703619409319187840558808628904174214873144914039080690954725069398314187881773189973100666836600298238785489622680259889985769024106612356399907116230420374619895143846191351871136826752741544580614288955294009095461390800153241589263691024780351191976963955047509016108810006303833678782323575265110131749104259488333833873140471440286813949349147158128570158888743988785844039948907934242968277777453881677814918704079540814215799890124248008773098791462697747598311921589228440037218613000714092690691359348775463651698524734383693873281859345288086279709488862968515459642883132500003411344602037619932549033373807931684504878755128964495021774277107785175464993800011481603684829984380375832684482178187767529522303893192524991774835265182934898174600752007792299825238102049195827338610310071411672471350419302662317498366049509294149262319363692944643073404868138231575801219730369487903150292721546818703371285650088066294948885731338766573303380535029793670613678933060429504618735246552506655279618650290704414140269013425467549800602762864838129352118161903150444762118633478286738942462783225869635485682052081220536481694888706826471453028882246275482887327808141310450577044883936060455675402339721535488651532031152418295154776041007969913068517649309889381191865027054207665971932793192790233997066537652440808078498040225193715094111966068960413092549660239568583991738210722232356533167776368911579041070686751166310698163582023899036227115400785557235494543574676690144183297875878161040750169321815527276700136880730231052038315521141588393595559898689761229013836107026833527286420594007566767265932922948829407476507391389134158006457959774824049762844576395187189200448106418745630454460632692104518327985198855603496711956889447677747763261990395329753219473732054763404946365402562213663704024993144268152771942674933577701822185636142519732094354233830685934011473878509155533950787715776516000261541843932646889652628159706961295294892853173190414713048260760772066608798154689502298838152910968977719120518292547407484361358065706787357375594415248748128972668512264826852904369221763924764508860875437681550740740035981377883320629144690088277681176554961484235821182507799534549119232212637174070702624480893523903629807496785354831636274379737154615862485193718942837368625274116898564062686405940723627360899051236100215206708186176964451252365695686796072828819772657259657257548394661788323182651356243159692303858693172225521221397239857625195488597070569589726817532638968072079482800733421379652079322353210530846762271109062550912379635405788656358250834515773532458547154541164353707715921087601029138622713548102077395470475549914814881271709974585189616371870144787055307954649036514333806664898660737292930751885242754888536465466739674254136867449195636151073132372542568285215581857369907978757956771936429578419243239847453426675338396376569411913965046000128922650030808441840955388641434415690448228084983906213335129818387957327551357411909367209818849334381198295689901011549896379813890900263353873529049539295945766058430098855470457265378158784650210169388643553322197273210566117406086787728443595812950466082366845283866675668261174675396812419629414317548553831667518273488302044081101012229204518745015439172166209595806675156497992968018913493711090745583100155288460473463933891796493653051417553860005502727820502432988227303675750031683510284374483195854681444209462735287824089248444029495993356506005138694371479732861748745690385770039894910412355814695170036141586145229517150181261934573487688395869343050606242198020256212200946064499381273257260012515926239905693160714105939035140084656382920658977027744691832305655478369204097556613979464887060668125310618673370200201546987524365765025493327880904953608945250810253783580847487192892119553177318022963261516596676273930529177577400990429067407756582774141630501961061452293072644896993898425912352867039253268464832987147684835096143567109030681156572575802561625769317406988047395223431681740459313847008405572706448102766793846004599277537307476273295136555898999715856086761530696567861512248940962010215087308492843808556980634227907003865922337727699873408940974132520298054516791053644328916932167155479357860935010423392804966540767612845334776354101063359270961440967211976181953209408873089447120468704129939030746020783866166295382402561121687571153668958722484238281229391769466673809496557581969218807581041340250094126598186517017816190145696418365033922230389741384009746536508360002359227601931226926113419986496742844454315426340615833860819687816559573168735010828520982880687474130949412335533304404894624861356531001491746934926306787413540161884085087461659655998027682688071479123505634457498975974698119453148674225410474998142455537304997405414649881811683091995358744079056644639690895726174226694283686066678099502362120303784162468681325378594879421161606503477927937770080831575729368488373177118608233631155541250251666717647351477802091721742286237530154613040725681352553656495700436320288612504534191880728955735524703421239025998768675456519085608468365459361104380863419517370098492438587402301978225228741002388046865132730901508036557124631611412313665981664712089191994136900753575693658859088512102009652631645668306289882095655426176266125038411218991740319615858732765771721770663912573670009881982157746019074091410164287990151038292684566868372389098718091206943811113124274056376925061394803789275647136078530466079163067536497986727266122324420396507249314154070560437104275620734239278689929443360849896469976529771170336912876632446377536831679629314764527370817490673414044507868248738517630789087255313793520481445292899521878944688844891416054365090210125352094322067925861502719708157061131275715453771597131932240329590051530140165335366206218039179055451865872767680781285310091773268717086126690625650274301846282638873405429905778606094789697587095959350627056823742568291083010575185108709139643801333262764159924390395989169449601318892816517165388575457806079703837901470541195906093335718004622634560171186223109409290244786176634500950821094089582502289743743341790717979594667932677226363814239416181761296672402505082223862785896975375994213179636034897008387106114209667864259339493111503860045991270288925824495332545162399031162701773624775805814661889504569158523911530007444628171555797473952191325404508073098462075312315940060343390707929200131764372799744085218729390018626189839556458109939747904129463813131465553228015237601878248094380041725634360630719885481153460103947347074507726506974322420198732886607474664478908738152603685729639583085191380590112795681183289506892270437352733316685168330527503847691123264996221484123488177325304137481772234711772060299150695731570886761520236411825201043310406560288164553785854605611678640396270469903068940149916722458621516961608704781985168942286384820957075637998589157190914061259034363857816633471050153885425749624305480464404289718589729080162715953099396937916450436019678781954811484769066586619415582626251872194607096275740527346141743926497001225141134032071549615756436022821294108683545715849467042359269528153946071404601109780665207902522398800360790168513383227089466296269857432757924561747874418576754378937131909070674253268275740648231116161349527371780708031449077994865097963326279042326300993434974981547912034598822340965583167743173388385103280689380481855964269147006935719980392163887332492360135665243201805535172473757631493760805273857764552027277521983919151824489083805024283901128897432103782507819627707238956833175165020997075690466196785165050421125811757041798341675613105235490652628908991332281385914426805273337118443802211497914792934050590510507294510293414087221724463146469860631282553661114015688058217330788719993449106274610659622974803473013984813671630869108853851452599960310845270166908603466606138833591111645174596375615047256816837691452842005413879456669483703974223150970526549954436194560585381028938734567016651087161872626612054336067225549827737374534787755328547949674272007513129791200797273611047271287039382857745024948149366723084771677668547426415944973876250465437169641102614276062574059619923550122847693652427275187480517023553188677411603023627060200504622705608946061440614267793996505531812168109212613244295101992186911476300607992645033592631660033434185795432142264769242917909527794869749644329159939290883948155344200089680567145125609369789818458871191283280817688220421180568076226563466345468396977319785409948750689856593198381855140364473492969610086296535346708568236306284215892792849073592503930115891273023069126341776539734124780962905605090258207839344965155100140578857048494005433484999496139318873292351351073757985858222389999373222708123696128562598556556085508997469604251338268736563545089340007703048182647497345643503498788361753678442200492586068541204411220310033370550565420624519657107662289429305316629838119067205810220222942786501858046775591909517679948495669466118948718059136350716024073128257740339893047838830248271266855614327103582126161543925194997827073956722326717978385964099830462690961930531146263183124910572097656431575097122171254141255101001855494260528904452490634359479655671365182704128045601273852027240342277208255476697547260548081829837024175710149896635861572908405101900681187552657684840536149623872404947046616347062278701505076791497643004257697735815085605426831324755729386499623811086862852887192167279473021464702812417031375784734551636322976616784929530313470508206719510015884814344936024903781049106101787658592326885227007798345091303814557876493541488553510171287886284371097073620252548375981452999697883163948376980306357854269488450898240468966306446989785540822512321762419717978919291482759845153031190884810782549970819291659293142177254092281367874175261056587594779647879255687662482838224277791604799798833030828256751850595480274203489782074286649889919561049671079093248683060695235332223104966464024298369131642973387482804698925880815731239939103629117546825900520251983098057449108129354392739765529842871452382705765453466225138545226630711477560974848791127720718694306913572390634806934628557239420630596602543850270746138225040631803928508890516403775873739448276537887607789181923724016971197930731775562682164204566359863581005312316602718451371368136224775512516525092154547543470122219854410216400313926031520724319213486752963082910743291899451316435900725061637544336655676927421980095910637868219031812454684414651714893689621849818335254298524562121753512377251787180274069454477049234426959425591481618449464302743447916427488514276800360089992577231398350104741913797370371614008824458383923753202254240162346379866805126641013200409269710475487177330939091948286684491710664373032362893605224014879249858561953441369130993682022075672783908100088833925651667539964678300637377197638592662851761862607020676779584710871304477054289392997132601465428162163515878950364921080575752172338267791705474980402494502104079323333335274090690991478098882714294029497639819973983041431489737088517932959093162946670764213345605370308932851582947471113860135536918032693240305016502176127515225810197359183842647571493821552933310447854956521963312805372876869098311850521211292747637798465429172045270267157966349452939074429462199160155153615900830203755470457021377553281286044021213448029633657075965424809980103746579927033639375880124585366577342070541377080275095655220997266159335025681442144694354832985892471673396979118770768786988248526558653749442155623383175584106775131061727714452489304689763325335153809225722906348406630122702864863395982878372634935721257487636758374402796482639443600531937721068054412939969900631664743352183475407044729375125575613073316363306567850654339424865231652104502870831079494178708663611614632500363990043105375607430119741527030472768689813534952283117976248958357594705528781772718299020978743872230027540668884681472641514707653752311923496052884642644672079971324191463004333645989713909457733226982778763423757280356651891442048377470417656528249432101457601212760612204484698898588221769486496124688020457491947839107222988254286269656739373219965083802074071419599127024924928146044409477644300624841725318911038983653478951018765513066502499808046775515104519782045891624182642424404733110350633918603505743109503391687946382873048392794548645605479660146354129660503417584824883301186434263283002613629026136470529265449540243141467224483486248217318466570565366771615371187169384031701187757174571690738708168269353021144920410650023055999316307162220595605336929932108306606663657166160538655140096542062988106653891771631477716551029812091704454324999023746368964149095702887970585982690933979852702444493375012920810981133527108098961275743796579588036641426269538560535566961024874801415538339312594706826911929190628144786162172491749386560118444716976634938469966728377887432056157117750758084335504941665596094977911510585365139912884263647140709319956333705706699359613542555163527276522654715473361836700354610143233400321626789515449750584357637061934114460571964534090014181109820023423877873472107129582108990037794978062685346374131886469508534901387986884533067981561419332305673598496015559015180472452753894610139017310145150783289416821266688986957721261708126602793709764926395183225058174067600591161662212703261329605679862012954921248152331531793531115984919247877590681009068595632702485093695773805983230723997911323662505494263825405157703618334667799646857234256620784332083576832877487856819660137150771094028187904219562402588817852811486953587734458621706343649153559397979693030360535307772664465618827932995859538381146631985824361400000255165293629222101026263634903820099929630669717759774713767358646283947350886741778566933313902219548745500521575252462482509860435389082262730458668084194573558308987110121333369468100965230905831585938633260200549594038143326580283309598940855674410302522355159438574319108525359068153237623723392652301738295060526881785019774670440378727316848962558142061185399348982452330704278811182559344281121097417288452512719108943258780330723285718443470080061494583417332251274739143087311058298746930716659278809422752500599656372024046362468989965281706843420659463036481858278644928306211342733477005502235255734396980228391043019848669079831336576047191583242970470893153708737689049591493495903200602940498918161076389814273296425606348790873452306616435981285297845153432968212470014953937401976862808037168309651036924305287706896959076258884203066813994558703804806344244426365552534242613775492464518796682323935102332805080546689375809815968125862774359864961416239846558384873757977077734414823642455383314649723316078614357604432622027325741184543242270123909478118187438472090910526693861501597284980279110726155623579749593646739351665709914803303864832487333023975824759458858302157346008016286918961486568190639713669243247166503012177771829143544441658798302570774037417379729453225080684164189242968947204170866096437845993645410608633065132655192650543271164857484660783052776210898497537721193024397164499373201719327213170700619450061000887587888168882412544036678537687180573210279655463492917361076052790373026804592182761138369958728840922655508769616992609317961483914969270759284686688702641260272817821450604798543674193109684557495563105816030589695724366997760904890836631010523701980418847130998250322541677282175242426583634062373397236269868776449968920273004653440351029878802213680212830790344866961184093170500545668503217410710772812846597867848306098755057150197062614666787355703766163393145133252520638656826204658111232693047199139737423443404218682701203108803062225577926411066370408836250280997316131957247832050164982314320785828233292384061926008857419570970557849508757596799252921874982711958481360917913223326529472971636108246741530480716879223279931727729241033299968145574805885490572102436317317150375128895854078582553262627424066082722008634952638089170347629947417448396111642431029603883961787850098908274861760515573632066030534633015626624279146111987391968080127413250001302098263422598174264632533321786130062411468023082823002875957692133518940754730632126304483902832588380948832051986345119866128635953482305752584035177348241503637482666213535033205603102415644230522732397702845465340280727204806392527498656572604244122350505371869240783896958508401983797265261748523465249115618621314262554745639357243142464936361912807781710594352659758131924754495508165915572797270630983245628863867363629360546552435676871712685600049297651665668896542151227798879720353046180197677041318152246306584255038628120567678926178306863264073993068378035896380567847461892117813912216831668252087915048680151058890630492257367055186233325514171556317453728273381849989688259310551732334642001679304067564387471593126700282048362253243645451459970141058852487028606461927420436318297736101611484340611794574841709976587522144767462199979890185303947785097038047890942084573295488770591133111380329603421617340011584629977188093332674728023803845685362178165304949145984326791802542486644858536076246529303955040247602283166586386697802217708574280488151909985565872682777155868048108008952868370116428952878495634284056491755879060589611748571298279446279944718685842016878284229283309722959809265884604203818290677489886155902226864601728520435863784442888543103678537355466501713482911446396311478384977428941047050335252185366825519686234104286118315639883854343980819084301339133481839867563936697289851959573271457719503240917753129326835636776279135289728103451241296718915376344885841479794014490661435220560987360613132635133212595213721908726540283342854222341286985063853460821724682528018433258152187937191814222327979425824016179269914000274795561996626051784051994739931798101330378479661299360114770145112415379355967400257609415913460380263895729696725201194352263707738320336836273652938141938827617245158303386903418292904569751365358111983490730547610511172806910370545535122674795163943760068667382413595447980289148016713543903411112147214283898236885447832777071480571529367906856932007334739543715008787610708806457224599161555247982474355119449921813799114440123835591100651136991335624781162971500479891949995235745126916313531177134491547230206988937635108242580854513336177410874669711780910027721816407067857810639855318804809138730274648854753280013238295565063156292704713006346714823263020414836216615896031712642443806591646376490137297182313492753551850266057576394460753107389505921342939410492009519562607229435052710917552115277880988954089654239085446305760000152867178474097638578694109411178077665036725246729426812619020955000246971509529752237991147512763388843138182822217594510353560275501858795024340519584625472641489935122052570580901489047367224721974898831445620371467788938529482938673226062805505707625623115560163712144303485439585365555899346704804375341260839367420041483385172050593241619042689486070490344617614983715565714411130238017107229931155391234127513727394294580842657239340469453497816883395855406038780814207442069950412368424505304776431054926063434735519960038896061411649577137177701543129837519821096283188397050033871673894363444738805140483198304134301564509223554013535390029881396347458427692399107998939393255316376066072981465705638143846070037922467245504198088349867001997367036276260470279092600833624043986064147959736325014209822966176117258781263371791181599379989613847698083343320253804274318053484534303657778885300164591769932623489831753813005100615227792731113922768363244041408821290705317769233216816460141413127986415755225280700733629939036653984554754908692452996622496752476522817707819082360651291363631042466620076366223661954874035403121441369950207896931040289727213808107482116451558342875632759048451156445197007128608936988601092110273028998675071975821208689261197823261684349274719510065820002911040467609383598607200890802776669754076145114311106904422702530293616767947289833766246020256524395808364545364588396201059845110611610871790958559138544137320470650544229807712389104834809765497102690005618715623158748197488895924973942920867777510805774727827098282203944511113554680572358757243264990661164389381620211357430781039080474990842084346430005884318828922149988827938599669515972730904316669891644021990291833714061454913221495588235039071769344186537483951587445194217600128404366500535195473738623197549273951571320724537943757533252898653177578857922512768422933754826590445934839975915997962023365063509544773573121709991076103951172849671503973858304872730807691795764566775100474530554346460114276846095714689492172728885813000986145462135018230080389321468100611824309957138506026451591924868120503332552079590193795254536952563242321604604893405561411760516479355661917512945947722298323595397127652667389431549366360723884625937810274065283332111178033020182987517423722267719994714795567549292524479443565134717954908462746801401132452877854073714559820109537942282188308417026606923837613394734710573294029944562316433804057763119238558139139630245691955772535608254063606897128147159310934974907142144094060688374165364042398301770547770329661130163797523460132759674122192443647951284379131036610533398419007063791142393606373191746957757602053283087971649444739804061359770110819862903577089841916996838997125084951139133869817648866003432990960240287909549266718970841266936369200562464943163276529604503905733357506362140394751043991683595340921217603413450317442996977774503560503492854894339905933930311976675831829246261257939999998358874042957120961061306509466953217407053522072428330022890726288135034450846311958126295676548088982087872221875116706731885056992829773373525393019109705455424224965842274558271344990418872294135058024354250506251865443243305699811392799058413008615519067898355501245009726767467026424462094679043335513103292144377663500947740125783639704002830284566170755442238746354902925364592211998616338671660643449201300385898061263488316886415640908528088380289710534875395427273408067964746325019229895626321613988582202943027063805727587057705315686746975705382991185207005298266661405636770912687804677228689922346331820919981970948327459794258532076216670701160091184776414721087717784954040264033400906528070647131933214341851804205722259014363640056955063597895416001455479603337843770770030881614423361124258688392060896210516569390701807482926960327300269523526921381854204241959023556617829507274872411376714849438456839857031957811712632333213918954323258484020608989701415231066656478159393534873833764080227579857151173706047206899898127285314923769829962961377029191886049197331889743316505926245851492373856574954077437326571340014697254916069284139608997943804673957198363831979705023118107111273307177252978741067914166965382567881479644016970223391939258758620637884344407376628319630162977883783154394749496389478455314662422513269112478455705095997283102352898253916696052915042079156748731975141344563707015309397234317661333569750092949400138765250757713250800299002455908071192009255428881745772710303317619169583827625134876277427211317325193446415758655723567124272078376424530302925832194987616483855557946483009495454726679391957193741063522655226364139663849862731797845533556387111438550217046014838850419659239125666576282518690586547577034759156936898189618368311441774259482977307016730494094730540192058401309240250457847237452925407149408062698477098444437352663449939331512898785317765471018603083843770695022711601490110651968460784684383765927978557707799905002050946770034036711819197826517476906211744486500350690717376899667055943062942866898605293942215103060371865080205237753359167062934064250026555126839554513406822527227292298168780807454692657568266884107313036426768949663636430907775705789468555296415393670556998847152786749031494569865874139221077590915175360029998505611108926163274762991690160584577346326635181295463646629965998626481528062552945957751391004272423273709188575269733617215410478184493487898329619394098599719281785124661078810266801141292722026712094023809155890738899614370632895035903454473878326228248973545176167843390181905252603634112775960749286672744360464134817395056744541427447600923676182948664973652303999256158940280938648490620588544268517361391151412903747721159111742904600999089953917105063853094658798970443621123179041364879149726339363176607042509226693501540600819947444327766817014191234309175670341063530631095750031844635859586258795065929805022966880288039745668161362388277791392899015098683267095313805373334877087584569355629249694527250428674514368172510438209226004346500919142573095150252888323254804779206505053951658976373962228300679107879469932444926495840765808119319766947750235089318683943808851680132185651200974543902693153337457900196314394290696943471421178139862879010303031318072223087259895018880004672586716615240638354313638991759682530147431905171726093769658549358007214141325774063885687252922381444824792737781384691439593418779134360842946255689620924349784182901089644867893127920263904751695198658131692695175229568666116450519979894736774734036963553858395597700755451926075843611602554565509875327137330889961374672128128141962449952827749870523963467609788387062611220217480926862726155518520485624223196944339488415846339293050117869189701338265433647694636948602066466282892051295565586873159374168277697172541783902575920120663697242670153815171034606004179751185897454609572069438019469857998092548364862392401595668926831748887368900399634365440050695299057634256248597645422840151104055738351496738652545843941649530727381240000088160011281111650094279801936026507022068991083413734427832800419419559201900086633172449175587290552900724941738217248238211550769464729156320458330576674295527915865413173980887725349511906108934103076842575699294826880202881502671338646707713455413297132169196210377521895222149270501868282683814075631346237522785838215724114680530259808772041426248325031388688101822067863523722871606921288814867034037251699434325892989751908741313338064919227752686872737337786890551820809037542711684240344037215850575827451507819138608147294776680941814243164840256834615066478306647524634989329084144656032425395934504716153029598423883018755535111128537551247700082408572314201948112446080440145005444174299604263569850991519539823166494032844255907879510554697189306329336295930135986673923456983442121767274810069484937012442129767802787283542744254990757529737808802789352339167890683550814113974439050025495490320056629095680730487491316475328296984989654671706397896171950833427988103975018166701239323815036990435687994715940047831790127080280483149217621490461452929098833803751208230267788893334309900340492365193897795857166955844256346903238471945322503580428777875726562351954024350587162905778661654869194880434324718008307805512654820393718000174072717717433563135649919143149818712360526491388179012330800447181761737092157533084355212676002808600683236423322149368891664182778732643877934474798699490946049244240463552728158671129370220881174369761167590199969463209756199287247960292003994697465913924439453058552968443701850064704001368735127813653008698866319113941906250235438285271205549337083179893167683421704758727171600862143353675880991778449622209748961584421854180452404513054715822947786506562233768988754376474874828603500051556515690271782870231088585148543678693931325150308312442939991154218548583947172329570640640988181680999361724972071331298039171712881907862265840216889374413447304192419933147772844331918792755554019552596970528283313427895917393897775587132807852969820210399081402413539175808487917767471514973507064336403783452619721647190408282984451850925859628766523052830174646059781308906954249511025009082912273723017565761153686188360450395467303154756819439626676569139360315498178130900611961960281503386510332067245196803464736329547643567061897437564986857940635088474897142631734781416413677073372424184904990355886442915719482838839307852668097217817446672430458888228498974250759953039265230621510171050456912184254230478352265351751663976653449602998870851380253195730343684000611725392688969276051462272603176166141485630469618792470575075101333023350313433708853015928268682860706172447068470773006214553349450248687399395224321269106489237287778468877227999240646696217891628231422272061143602029336672987532199754063424339207730668970834132351135002706136831830373648487431218744316094354437392337537657436153365658394458195719828479326361696384149858523175944584329502603166061423041170665367143794526544176801556255617408975148630058445590668293861310692671570160295584560230417983408003897110856706914245963415273000323546775118900370532452855683538119362480937886079638449919648084437274012210335769193722132962328181749388006045072208956535187795942963093085166965790442082357382692430229350438462493625711176900254868232817434120423642618528165904009508814361923936714547972818785832218596518526120020977085376508084708529065292316383577134809127751292546967332611682506108689195194942006853748407608443091037327135895477289210483895237092384292574880057906860412140914588714606184957907401563042258748380013096173303579699112104919993835155164809509202099441042266638012309375124700437876181081768410414688712757097019655566917983092006874484610285917764395264756853742557578834127921754394562286011569661780469892335337784470012612320317254563885335700145044143151790212280489997739793509837231918397422860546158484705548871897360037409572063181192038632765738658088170573928941860772991732405831879759733240038992228093480888265956109881078769969451397464228556794500348101918763438533024032301415242438057378514033639709500459801451583757480822232101055730393779342839181040301624302606876696568955533539003457715089840840821575103158766833889102163338465913486389788606787888500911635369134795767294419013452201842381458924701587352240596657280545240944745337495406997893480167106077495540752193353173100320151397811140319328866123099589389802597301087498933250625453015604883376712631218008495682451736331148016108884221923671699631556028198909682825201187102953920556993262423181232218106378152212972900725518764544165389178642273311030919475485536100826194191161695527677510389539245943220799475436256043901128296051859739378447792655113234038148225122554987489846565891437756569896495146358727970403398352192101898884710462449344909491890774538695583363702309511270263787153156478901396728828207898781628536405369221195903085136934727858738166737431971681970899903512718195638885844203101054359796314956807494874796870830196327505687194180935072688068410097537582524038284674605650246360628542649764301777217470845351125798677139744140444092453713383894531063550010960710221393311298201029163692735566277997933788191102446613276289241083006558752695324706672309098213643356226588155444402968326017511720339407658659640551945081702980899335341929900908855076453605999002936654089417892048383173105066857772301351543219689949187637887756276632141685630337203223415342862966631739977081684763404794865272907523256343736013138323051628821824453741182027715172035792243471053356507528871260627548501671206492087481662942108208273782664609916733294776718037711404186985429293529585876069953115284565472548370889361982491894667892991768452121386061391542409451976195819295452324563097957509470122926506043800949335255177888353184562195315837351949706922389681100744161672923156303308992200211160199631268875692943050735127186708881922598181636980269311997386324296493610033713275292207536611261486508466013639876922182028660499104293410773244516253417287994096615790043031213866044121919429755237693626432230630042954883496735660804255463105274117643421293929130430859149280892511783355671699432489055022346085252088793799007202417447690117151111191592014728696661329645630657305620555048860493514575258798203032376985881217810495570361101660070316719594829940396531741345425752548672717903129395378299616172897614187840154555064406120493206649448624004352572868642492900562659715722246687821438422603639765882363670650652425779773213250457703401636501111190283922060923317088772664210162912003426606330224835619481536888191183466880470420915899404112086421879228017507174430006693307435763310887827131341317040831085112076946547955912808281832251003214697203084745122620949682414283359528272524229764811776590936857452081701975486597294958185936953118909671986597118378559677463700477869532735249027165997473406430587199535207997433761988674392142183770109872067347999843343533743333289789327827214498994762496645591745488142460992481626767947158151276111811419472759464060927939890697003670086777038686979434610657687351164365991199174812021309234598029929237249396318563092849466762669412800342493506253009102343246079570280470704261329855599374573067238415500061376600520407559727506798757615650675767378143495739103717986813065243313772197507289154265841236265268829975738955461244899939568446163004315310579802144896740938902639016265455449961684768730135353348444667050766581397351721424213279829577071653558879309586735256131381689845686260956567644792201512286186614314102863475174807882442651284105258273158054029788934747752859904983893378213009424486450983727305814968950736613833435721243405241793636384732706657218531818607709449744571455601517431902500085883712244060888239655046154650632689263129802256364794776596218189296962216343302357192765049720934851750174329643539557140361280836232915940586558965076820654315226323569813218746201211202856157162663385799458483664785328057759056301264452821626241295083434066742692994807872895314565887444173200692513122556955924121665396226795797836392220952935892420456726121820234772573819006174125280056523661364247484572741360974705682966493341827122257024073375403767981861757405679050389748802390119121025891710996375080557139456110790863071424515707264077198800952202158181480392564328542117726459721860149032434834149624138909214500266037426606199914024305920736563149838683892001943755689479508390597626297824248240536531484337725566564354520535873692345567762983760220500179668935856263941663089224617433365465557654640181204182455885314395936294894957180341073414151616776231774289305351702019399312996175633391389632598290289799810632151389281740813594127297735786445695903395999006351536515651046263715685597491340894569169128395011153168650510154594420042773131276179558301260967875904001137522000707305036123034394780163387434687712658581315782106867034447938186386582513975106654922694698916970007348130828412381962833756124458083826488884969580130468025256911955834839520605951362755188672245308615549196517729390187978627293066247954806128091807876918423706433106376888632837531840575645483518278978429293074706820443262916286024511413910351958726865745047669246008904326082147649110120568063195975577900558585688301067579600336156755063510766522977219770831010356293055055841590224504829554242977382589218380665227878911742989199340383399087404143997146116865620106548956441208649569887370689025127623600198158544552474383577913563838815398138742961993680194929121724598295976672879580988205021049531887351002761113209360720673785973524398503367286022221524908861819485083072930949246472424061529781857937393124457676505989778137243139072720803374181324892919941592486952488865378535674847921836462576994657532234070408467284779797130721110714307012259538842001082882614875389743133877862631063852618807667522341199046569118060241070552883393596979242139897552480634721298443643914332678616042884154679029262177395529845836047421289863780548785531143787364837848289704369351777225891674348036605239231934770293512827186750539908028616671885965308199502236944346117623314986910926372202561168545903658318746177474039106018206099707025952662177745983754274997320672350832326405633628978739123558246636970268160044586211560354359266699244647421758980947901576284385535699328518664126578809954866934536026626762508516153886466153859864838670822791975630709437027314119292018575956671789717878428524619702370083065720646467884341936826614678374907731743059608591358726673459187102395960320153245286481633165543445135833101824203420823905901424291837334536177734536776243608907999505449583224618727673891582099130778933883569228257644571033757512637182187961915925743520632414062809864995595561841820614195275812327055233575200548898691802789620580177670607257817750440680299206157451840781913387252466104525476974802607781114075698902585504658342591433901411556759583510612357472321941496139695898444502224178850027145598096618534915644105734920041040458085069942196183375387433202562873432375374379246855978011827167806319569716180950068948377816974731364302541544124098220825818228763797248480014561107031122289613343448186027201698485946367076277744471401278712127428575745188103230246305488207987567130581713530220128490477389850060530183755268442224269293865903642833396011792662753044916134341671260061901374012375354953896590507574141503857695342215934519784537400744580559004368049936369341449691928116944128519978718928834746243957956246588581755995876943200937923397908977131300805072040588423850894761011225835997461799702318716157347735206592959131809096686862817611812658755911371247909087711914269049381649427017166099597979559932361346230455606843086114486544873041534998634848795418907046041248936681054657310346057851317779751492192231637620340014324969125641868879659258517308296614010261804888908989120543078925197998409361831807075709470787524953789054280341965435258344938011884941451281420839046505793116489127866192660894265899249758856416229965292465783366468847198317655358489679577998903139290722724550399027860526487545048342107350695603085332207365149830753578328989505385333356083891003093951492716208493744262371540783314670010402183418395539570910977950535140933788799355692793377516353877434662705994536375064173236276943643697045214423044196883353713028272775624353751224581939552668264780748715910366401129570250011566835967864100332638209248242950437668590275537438271580361770775919973095807014929292521498790212091632725589049460462192273549874262964640885386757213865043164562616303094832597555607837121030354410140281401940339764458152670582153897925733242071365910681172459287140600359060000637648657206950142988026985658414508736099717807863688398367972987839997878555336656781540567565299903963082498537259124801992404979977182273791798603668281651400527318309940124272394804164998230109404225175923156223749917180001840715130902991945143279604491378277108884849520571818587981574557374234252155454060110877742302646805686515469416754645536067943938157296770255985297289007869222484724212687883123960935547928209815771836467606347601142483377918228723991894312949226218193284106328961750463337873901206372161181581810635234273003214603938605510734590517198077484703204144938620168384920047868920915202658055046542843583869981187381508131761117277698632544561806143036594986572255980322762792241847045199127769595030384422759724303054495462839501033153189651310866144435161896849254362396947976988899475713695762032372357242987685803706963263333280092669604667911743107628619008027787886823059405464209597645293204696389982167942106180558868349503936622591122090232601562187491032179033545746294453710447368657711841138568061513858938913658889842472502691814610645579204231543553840322290687365469059520297515721378984090416184513172083442286628703737307277171642790171830508156958034171966362678464716260763246936550411103379915771812264942669153926147031250156085249741002562986491868593402008223272416860610316869284333121120076692286497710546925519632680742982259205324738288723172199571645626219847987672835329432269287478006216495646225671234921841083514785451242855514396262387418453523752496401055277665117120359705461013435882549768667558928962328486175207406959862637258445540530470737326023983648564026502459689713270965982649157999017790711340083519176356283334602661117436326481658033397284797025507615052543605190235551642734392818227141280921721516088515418751547597214408318497168072634476651080919691333184611312021609960626532403827928112939288916659412092641423377057400130970596964114676041814162808265776629786739257781459940497233188137891626995121055950364074673029130341592032898589030904801960473324036274345509785994094934877583222615267662008088821887601583427752573182889424466659454588774037797856242569196279670623611850027483615933408172114272759759093846873770858269988166062067028798266765407419788760321634033029940592130698919065089953179407776223329498334091315333828135729157671998040867047889891481590236303651874476164937877965745544090124021752437654927906404398170174568774854423597853172130755012609149599233629002583268779821830539207820953329375839631545176863982806612219079142193847955295381908869889171156644223459390464023722718803375199532507628376662352948819787569467531438807387235833157954123020027767884153550645500522988805933282682499462454500754895888738369224036979859729612655623955657786739104006881309978263074686146680047957834324794743757631031633619977323192981033413715767845951447349261109546319508119153612373737610323682421134494734873940691346467130548435630304808127758160697667471236556844996070246219957641574245672105626099330874292762654835574599426776249781997359791280001984706787915826961368760383870288151615863454336926236885918133247691312815127058258573645754880545732944470776261146968479273960073670287602492132854655022761000369858366837910828925529567978889048387699829292941273697737061898734677680165201531745977239503665255064799370559908748417045498734399244326153409507294708090152645577227213701056301956510173701612602874923693811867211095915650525969159683305029503527376038547070882899314035993754168705613597280640782427685410196007183405640071343595082860146876543497309056250612411373661155223818466348068447422626549460000340876645952524602820903847824765259547848293717007929420832600965139181546815769890897290327303426237548576052013742753076748960009078419158035638478229273974369515414554708530809694935769034195935434189537444524414709189157058145046966873705366642827037721169259482277500475682543510090809189022509447674805440351099193103266890908331136525445205317203618898356341322990482245199471977564209841187572261034932939927872902317369111504324468574161704411128059990494742260747086620953219517561660868810875693403070034139985749977061481339859121357548132916635415793042813697004802702100451269781368552440176474145485404270028716183707568263051864990630211492410185861595134601898671207366919728469460268979060728150202371361836265735635451959837071525159957963550165203571185774242269384374948416227843506222149943341498918973879680041998275787703148426823788045764626134594729168479088053289346954671452553573699958988808291237378590928012661587979453971260348666549175696941154026107486033161620111026428275836816537936284375240101754116613391897589768183740168034733310176452242494991303353514257478934700427629328849572130049092104080245807884855088741018255459904436302793798469900249796750275937963905906558028039235678432432801658762681051428040639001926516975191184843909361648361893998040347389903452019033722870348945892666769912743312889092892798524170785619674798391217775626972692832006743666775468298497210007197764588065144484972658027759217684782928189303761592771897178246637726636559862514459037641122912315397276275712073466548339277354354139446945889819037744398674426692868067501910397692760360866004836965310202599761092868533893165449749575098051042620971895069765947952111963658983866196496190930449760753637837825139285903105413970945310981906700059982148680697860324861515006186857364644831064456364239735059448101020117425480947221025392662362297550072901679773540049035923430382272880397987730172432553995867025362891750696978109124684609611832713423964214843681667404944873343212394051685773535322977212278835333932645149362140163292150048366708465321200435044654719878181247566396789874936369556595959729071565413571265505569040951119946586189568692498799795131256421206312248089532097616260550485496295240743243659769104163113157755939341838260975148072124074489626844904568861250528003770312542796289011687264109009255914765160050150698437681255951198250276622976729167790778796087562452077581387805711048100061476450469833327940355248163869105155165561646017592970387704886445955478609204541696169903040040960266663052104848671409612656356673748185546315544649646210856394317929954184736218026729636890805015243970076048968433947943743596766259469692285546325678336793175482787076816408423704093075178959514532472443289514611013241062848805125470988449209061462171734188816617862875915321738418953027810049229210738884258040088345125477006911014946860495720851070047186255275769731679200360173833731729410222584152240017759174034901743693818334982091151940717797473443370532579767646676506962172361034962223953014236369980638061168796526352201909168607163252708999114766567282356810264170477712883919571586935767396591506776510358551861681238002997475629194233450163806638908959859017362244406753930681251971255051238513124963609042860586374712716422139910052481723871537496929139115249448893253836601864450087947109547119076181814448629235824907840094665459522586328206430029916699719411856515835446994516084966637305219197470713590701303991145040608427839887064095102993277239174371638214007538336529850191978724050967889545469247099789225229202399251700421747595140533172055079581763209720336235712841142064482059021113593962847304309139813678015440289964814435588758049950146874017133698319107185440727279544651462423104563554560857836598400085189934708253876229700277595702386418270940767377496347870000726205213959659184562314674789393897969384258686318640889580690575486198208593975734616856589953713084815727932257424978019394607440536912467206656150881478078271764026116022518405216927418079845377607594160294067134098152202363742657747574651225283956274724596368850994504692946509139472942203115771557158831007875696428194123212064747657738369939805925597089617554270334386791489008689080190236700833720976267167247751543054684215361887905346227091771418638870017264906537415109754973556405466658536999048133234195600091061902660788627493252618457001435199231776769565912752364232238753592768776715192253367540408670885728142781169686140920595238244753386938084690739301132935367349422526365283764648084541102081030345611976142865596570065097471484755014166981272713763814800554560677958420750645520861995890245221110268061132530946376608723647359271669985613261712655946626531408612571762459834720070194562822689357587394563678584748111220743867579995807943185001643142792676659742678646285110371703463193256271539165415662629052085806773789610643348945801096086191143562346273934999760862300487738846597906883406318576296174740503153898652716863140692652739294527149264073855033101874741195704105910797354079228409612811129139763826260598521211734994667622038748480362172168321069899191107786194038591294757791754309700583438298670649489645537652449513364119515947265601447102755519566357525591554596009086207119015278756761719077930695164232621970342572170039793939568397089111797834417767704806618762294412350286341390542642670239493553526438034986811601785770206415937879641806273988011701393847662284581974760153300261511334433773718087556849925269026058194602708032398273622575235054522506074644649518530540938155741978928852986235929187275795050716889131688584217245271641916174124126339559666902115306881519413969394915725103365513142007124772788929913344369959270583677306178276575715907073603010955557194370158171867001076415070150736038875895006193985048700505975333117576061080556932638137385628438177344261230429659375992002400855116951649594532144207370027381480763328435291771987253982101954291269867775926381953690791653982309116107433981959659353006728038232938304558898669798826743788044424472638976538892893615681049062360079105533804267694518216034419134063802673570071938932264060483501065876353788079309590278640015933246031108868122031463719813186217406477473375110090899942940528828463277314801207940962614265757882795164919991734551754666191444422777155125948569216169050413912414261767142068705263271667357276096781985842475264315522436048510790073451922630586372238372815038867331602136496635577793924081218120531941997034026040922038877180047061433899990071704587417676002360380638049704835305453856621659216517149334974798075112748758353149567395976248866317039618993755814039115142857622268324306623688849815966178023747191789018102089489807948110363505295521161785668529231645176295180295120322426616648761105056994785844457730555448805303190313647380596356092798124363902138697245480798593216267850975833007891667080763320640818422512270957065134439763142486255794002451774290030822392654494605887794929956756146062681788684193758796879697755249097269680699667435607292630758788064854578918396370976586045473369255954294397834060765962296462509204746014845385405682940134897699435698515668096989401691415134809669053656324205269453933843861943732444385731859913236665564364864722822151214530792290141738839394429809542281803590729052240594136528087762528957664617837118547455785606782322841731121811216905672447336113240050622300042451904746524418569043146259644067988648890712049077499618342855533648897484912942459385493644196071727828362540792891931948443663691003297974302124726016718676486128933421712778056389189635652846101152287270745499965500235955187080787410477004902150744393825924681565241533812810258084206508949392738316110844653611977996408014226905543196661952168557461798147720422635318482672571557738350964331885029941971044370728326978539036966107783234225963172634016781598713086154586096560628710790336522214156840766666354244194553242553590884856144852393916304209964790774754403092712005443850965203770364925177311949176669154241541547054216773650449566575451463340284648279674680287254220354226707042146022499557873704400216642628107897576817828057320127196849224598770422373538975926849690429315661881710684094878452449647086399201532855750378812986983272173263656886273647015174248962195663830434557852382742176785585002337750241873055326020577280111891899948904336261003807697967235393349079625885050061797981850943510382376900429627370012630935190742143935803848786698980657198959333560222709114427887587644155722234433159316246962598092832605182618657721771199326605059868518555048974523524037916317466075928248531057971485458302642358179319640760378337171968935468487584891606155590304570751019667914219690218919723369418055334986856743540089317855338760689939000434762955605822465375473390477804083149536533366183755338630759560532420737835965498432132290705877572456706530947743711690507664318900838642845583494257058730655496373521474500389114639634066663086983737821945898310811751203122572956355572000049088395403377409705431519639684756217687448852116417260595437931030043854504345815483267766796485988296761539625396135004705927838276568466808633505652007320658364307248067998514999741182361354056460613629299438416118154420167409344411146777532976005229842422067635604722573689700037658060035710479658166286963427881759523231360214054799024581197572237989714598888212027545358013071136676657775319027775541337980747116084328424925516651429887626467558152440326684723161888185383319607613224756072184450856313542425661456264868133925696252521369394441976361507297048534116003335754512670167566960403521628246253056215089769342482488603020858706671079161610950125014799154775214563053259749043819019940115596711116507888547868122350403511837342244603741939118990629015307941834109896382142528870842460363815602447764987363856281752465583740650992039549311096662418467337711561817203315318346720578720678765167600747887192120470478349082259666472045002332983592421843125606241894118099592729707636661625319836064940777283922053253742859462589109297011776766312171835153383326239742718888784783137256011612233141311325345284076259751469633332459261451109316023489297675817240605482070588120514815709156736989238051942568040261232979542874991554678667734826667706880763402926196000676427534805583244864922038457197244017128918308860830706823983764491234969454720970539857511916368941016195451332741096607304228299845530933850830533137508862138662384133874939204751583015269291877314734184301804031815311103264519117118137201256247149134792285718940700221955192071293782397782835074338201352494550002749043065182540943486904041984210424865497496945241385023085585689629027857338670280074924761727093235245940031953497378451758664991391943432749876537435129172182445472789551892701394158789094980891588921824253982153989881323310042208566145230619586666220523704042094946168788437074376590917426976900122938767783933141293780152455833748866897091379338091221876046867599331450302219485946531478997615424436478351129270398061494281455600932078413684124588151756061535829368409438147774568143681916633051240465470706069945821721623960191402786729490862744119732696879552021052673515910641461420012422705359505742274821383165377346628033743378356012367761995327374405587987902268380587595106401296936783679254114859901236883525267478177932346736848265920728863267587718742335395057652952144427556103574453337552514922817747171958198853916068732814120594537903451602527636464313320613131235655477945870846260351230728594924870284511671455394171285918552239716207155150392648822970329987999672108219283016357203262323697660105898972297223109668756779006273646471489775112443367242766344919201678312819614272293286733955577782546665056475041180502591165371768650633563880065747522843475794804061001731356641555189866923433926635212014592770238564027056043438845737729371546286737292222178800627784455240311055027825579525036336275145732496115137861915265656904838012682334207787572618998747346732333264162134476833884756869643114424917600001023386801725745701216857827253825565166966182167424098873779320542019396781085207352888376279464248024081125967829835867236142271336141029825662371670959611274517848183239498132654853262503847281403581248212247144407353835715413097631984348456593265396068054666450636312483220258228626792800680832932770351722282028395448398536186310058451803128898192502034480192369806166105370868823187431150793923723678804284478988200796952563284922865017075404497947751293070039656793742097811142352823988982976741575459895386805256173007868049004510732125236322987112711286801663138074805803538597458156532822937333403559679904461666857852135721480428688992783327209154989601355333279908746174792540240955884093307066036179987544272623327694623314201925067838655445187582356916348826839168779055566157740034813554005192401913934618391076865464324737448029263188739521570821256482410330890765591408024260686828444287870233010323435679144576941450552718472934547655382495974702543498924209058676581295552825537216405891624299695386047061035564222899569128694374075666961816214076042848996343349564374340618591717321714843777014092258898193628663104733292643251335237506138505025028839688020196008499402513407388107517527442060578240431432782998814309462828243148432011771879590146650033423407214663097821382729523136078616238642889610349302204152178454824667175976246887965719819034585468676177062531930028081868428847122172877559143903252934061442974830053847905292853059519091168939106182469075100530426048336072348997590722063038240129720048387794539892921932422105419415883957094247558754676906573036214856561795575971388441098586858191503412444419778009484846476589914868087463065139736449936246174251046384150360373454077788779191383115700650968725124533233629265603769749967344957059746840744290367398108731839880345362790917253600138197248300909320587490463999760414962806417452502314169782724274678591920023694651996708831544422308404892531991123451283972371235477062321183980756676099624419436596483893213097001549838686067111158288095272139724172995927313093596160189336656717308165469673040236139159912987052756545955722260766062606421931209128279279624059926734724603636539214402040855089417620069826521563333721600323201292079853095662200809932652397164242415988989262510176905103177620136450485206110807129227594551050049066990533196298836512752551839407854542602529927216585876113364091784239523590192888537953903306821730757088819011834670622356097608218856498000691728694525793771486992689452627830771609863945832049592837271827599127979342844574915787412077698891152812734184649635381820995986818638243389574227458173596198607015007515210618718736784474652540470517344413696119035587996802635362415735741181073619070209839840664033224802008651247576025048736600708984043947904640267275266551636170420131361432190504039828696225876356471895836023490395169779734144169294169351781560857370264560663468946160290659802142390984400780747265481978698768120071059905135933640908865020544928630132969370134224539098145827098246798991346295705570241984430856604878186600974338486595268838152215719475675121061903311547224971759860465899633893559416379577273438874143281964064303461830992295129539606569993293733043424864567548064334270557121447698809668179278641478005577392115661661224910512912971313378219742165986494603616808338558806145919126271769495083380091025585587078133145635053721861602436516530151240034775262796726429308461129998580453697096416713942052493350943227871679793894240815076208162891123930833043396716531508144564226123042258973660853311662844849607011237107947367598487760133128568290381057974077326143740769425826962489712956401634138848228835161724015684811457414803066253522079989775328062794727144350222112266913419840204881895365662462137539957234282387330092701321256003342482990668495848004836979387042756484445318381905596138579503623656317051561537252145413346571193145611900424195817715706554013371772845049565688470957951039112549653938050908591428428205311883098585764473641694258408980405587303555090643896552953481933374208915318587298883293971864237360559577645914696170007750970420214843596745453103366553467614686933597197243935693504734406333785237633810244810623902155686836783388886144115909564719821629119605006534975690766810304496432313163027928841487455945974380746251556577314613485254708992662549775147296776041416013975696478818125536351997216620088074175706551631994404673681995415285705385846645376230337612356657825274554335075620135155741442329018424712263508059384575697399391973078014298095515612482796316134098092103154879801244269123835807693117813058401923957146030146046784495359746389324146196179184965340478231027938733805156632713964446396493384285679984351759823775744922252553245963043424837724090338654562933812260587256736136527807515111864307146630569032250623067777298287775102934183386039720178655508319312232825784692127576599874490348527285453268775261083352702401476604305953887804627448685230786941626009792395114451352588710934039275082805696733267944368120507444710723105246816751012896437705971054292396082908413183324260528978282117852678475828625105708778333853949332499308702027187604207208678654384688741623784361671239720335394236238286881070938176245700361534892612868835078875828999318965153177804212774863659424788157020343566792600213345133556671417217012773259377593076188950905409955028034758565112234089094745260594062112322161720470174702587841026759508164271804625279103040088782132483412753417146799750617524316772304712830969462016108277977858889393510964026985305829365164966462920877751909797945004310323835155158580231328607569402108845743533461743078645187259756718622013508521195681011965413441819610498865931638971951326887130174044357007418866553644640430331145117909216772634975338326837759731263785713560596780786539743395740918297145575426033336400636288579813378771480591516934691723504117878686780199424727050687459523005767083104781352507160899686862503330320160223453012930668429867967073979587365741815888032498744053977691786901633894124523762470150034845348578850044468848169335051732279612787968364012162392309224247314969991098903955476108746662619623478169192269031327183396507221633913317890826881427171017671474100500303678093056690853567668507994382701615344300023374728048178986054815698710549205905385757694763731372416513398309141780945364161642979106185879867471677118930441872747272811504011263634693684103012727162352367724485734834778313917560244667725773666673572474715954880112713802977293446970626662160816776296713672064638753355683560193010383078030134390774395875211611534818868392995636215235471732716929144731600828030483274761568355485255847020453096708866020842263513743090088454641395812461344461095827355866600700660136288085891472273135509375978714732379292714920072267511375820855220086797458340721645614282691322854457394335004687345078655843772029727838824295684741757163766943479203666710439392260291275468969649164771307725189327268134021365081075545870648991090711259564724547489508244957506305150993439058139576332303128841712146179676448621996871052178652331749003125436294780643151337994104400344811349756491244625781388005056726736009510545958239379076526902129927203887887113657183263661777523395138064790868085679274014697988105486910052944516724749408941580382585554663080741409603781661024190821658341085743549243134574830657116889669872617576253262794065467395663594462033047238711595522421390148325574699044931590805750504958510736347872218490316760881030093927847719469232376956377476591372073675194477246709720351245605301473879071678344930303467486353140855680289314715886197093838918081183506158176079330727954341688466626771273231745856022711886932460324290621116396924102691727584413760288419724753415416264274801914280755384150923415659883029398264067924104572718573790405202073759322333390797399213497902569591628243628548666997916673331580713151749586097512267375729568149567805269312133989124610292248470865968660546757114020170206111512432240712482510057614038130040932953608387893001531383966962339322677525320419331801778374846682279272999141066582486063353628512483362852910813582957867585719264265272495548205973744359303749368410122621677044829933447481718694491852413950295167810401486248678783694635928202048952844192157985863898570070975717856982982672644428054940458062439465077131514550848516773849511359559256646866964502553331973828588123161293237250186310055647936252438496483404408444767312909832710731858605261561128178811729967458826869742185244323293305842389732290824544020438541713228289192097624838882924645340447944863264005428141174117506667972830562294336177987632219875768623956011142588285840584665074903310779446961466813996951176652508981886477178962989628462918607182270350295795440074960298568984582650565878145951642631624567150323822648658210286490438312778885446571907133742918698388901384665664509951293059999952613817337063228963588156317196510248965758161475821235627691530973844285938952369746160969736583364251972122366045417339959703249737209228728772357822002377056792052800253900081034096524071097206916463822576294148579721273125755295282747523260372451571091700316427954717862279857085953678161066710698665021527402605339807028067645620178514369789522298367673022337622884928922288144617562546002563593962759260385981520586249906898884240544785220470071693101819108832188395951244549934408122823526088384056218722802551958593762180852238600870701874614941883260426031497014006870085754953524264995043464379226038070118953098626219310914536552561463925012479033073831800773409583324258443867231017891178918983273983916204578591897460311543772737610193925012841214027220506249946803324017672657225342337063947947373731723963095755867072938023314676561598453197337173917531153739766415200876023364868491694141211618000294474500298922337456530492020552072529663148023212433466806653257694092343326732391145652106352551725291603847778410836145675521965411749178315563062987520304869015265947340590651286669488131735754673366215764263861290165308046782076428423443733211102816078904617280451082858461891583652341763542440664813604328630954037816295282423028119376515496239438959739889987211670422388792583377128833814542260516259455952428742835565889100632313657662761806247411240379977465773676187165569263927907934358447031035189792392056563051816360369743246476992410617848941607983218668469539513078026334666321610480672593098496527918840975270671823595887112693090671271411882522790246454650421910742322131707755696680407069785202641694624026694273855992130297235519876599643576358133989917122558832427083075382456081144947877385357148454770748083807220320966544849446123503604713792644509277300211235184239123076813193411211086499444694186527453672415822278792362910710853232886081941526253476919707837059330005205550475422442443483865860819065623923029118143175810871210673004408509205537530475648658445180300712880842924804425226407674658465579734208904189681492793867539925560024164335993789276073301892744465121992790183151406288159812512458766710732185704521531635850156159571065796512946581489743162449121534635641014999644314312392606570938555953358628918961860345634884205843407284803794046077999444500461829521458500687476445223149124623813759233784201167554982367863897622673039937854142907233675191578252333655992890534597648576478765087943452909014413598470813255103893676342323547935444109460912646662706140337134419754144249068016463017771401156416258725814222265309540561679385763404023815640558173888436301219367242936983267030990523467487434303869795200105520062700496537921590456334398946266184025434145880755593069182246156261256852984846218446731829650457611257945609189434915906275192842670802092521214624137936237904217693940844441589460260089723996871777817922510298926858167185560725201542278224047660365416605537709437202688657544318725528545753468940644704547197706628998278561975347814796575988436798621604541606890961061607082246896997496500023572360716113743206480299789683800341942162087370044421328535330868344442622546989186484499678479209028881845445969934758188763396006281861107297324285680740911231548795666058956682608961396793841587669151895879151071237561583627978007582859725264511031742334072267830602877717307779741475890705341883968478633568269655984014666930291173565958641244542402607225616094333589965272519988745503069218095239894062621955797625731342158191631270263868818748229383375433263815339396633804615855004376976707143772413059590148089901673330557442577676082671788641881699790722857794077305483453952052728389403941675947984566507832033362213441564714720511307171400617952146874039813963125335467451511318375520500249414078860560747216192734619345555861266049346533916643695916757865288465188550367211781481609683518301489564145513916018230933713302514797068701002862687783558459330519321108527740231645464043073833152726903952503432954705566288839832588566557959379480556152289576406503467384260595976777244272192414151217067676806544539387078694479650397682068193323233972961049277888113319450144995566837628465042793722021521592655673587834981452554700353860769119640355240417618445046218850536623928848063382757429681550831067569267474034830697522619770381861908502277448343057279028042030402061800125341602705965298657413353588039146242684367689733086495630662018587997203305533963204680534877584957474786766953741192261387962812066564270060471783960741704275679939316730850389713654095752668324971103308741552006174210464712609915151755848925247077661707648546598593187679619093863031262837916564616096431074093507347060421207775998672841120335378184983470100194789655748219744153239024147776525245361141624490523507915348291170451093290453183032996847301759306774178078554808345046648835777311940380575324939552439432601424503690575630764749046962589831140881217847730054982910646488625283534441411398450522651839645615952905598065028485686796498860027811434366907848593400267269664617005410780693528704751332956569534715610020041167403286205714654560354246039167178314192121386166914850114096683165244331555075787806457309204782194986927567023845863638092017117662056244848174123587910749968086253233374479533720429589027160398957253421076519199721104100186362374993215538816027902258785989546465251268536171924524693380970597281123052909598943722441268272625533020849129215234736494014699028708939283409276444041122421054002646091067525562280168187622423796171312221181028994580724149613092196502237328499303011001658695746245671116540295694468454996067252610671310332006217608241693234857115829864984127807499633429257378366223677064229721484160845603787317286997849883789266022095857544194991905127136787796016632760485784029309165605269332008423660035944617581127850540038589959892756441708504704868159206506875694160286491322853144610500549912562233267200282162086612576363134356150492207199640787692833519811089326522960326475799892528588791137242474750803396908243806718403176364578457413877410608359385568022223167032815594313556811343087646275227827394438142194504149665561447299230038492555532707252037377954995476444935128377729504600941154096646201927340909106800238651228862182894319425361355545604658336067352742616609425593804706507687469127220763469915937797203996670618314331367271058755418346173761310644795998141431102154690307007754995319421493103216308372008703691252981158694541896323431054101166899831741680172391561620435536531637605062470255293229028793408769095429166258955319925345875408910423128870490841913987285205509207693299485223106496311118172256657127205198985595690850174294639319660918325215336103588300261964180382905607160912397317929734768052176215511868280994963989042553787866319252359008774827939620866611554382002721784744370255745787349661315741328560793628609898559088009967412950064687923916286149510286552367942127567709384994222863804435438298702292774945168421119194053022229125468000797412040197785462061180405966165464000519876934830980589327469949021304573189937356267268547041012442626107246690255752783052356500187505009492876189441570783707555354973129830635606987456414502505744746064708820811299258950258690694712236701344601066839879570763133399449364339159214438153824264718346128544740629956698563100056415153245562432541845655022587940794525014918691197579395244868640920220700413703370039892187132386642081801583768795463959629983203582719994141776594857532173323443579753478409940766622960712010255017925633471938693578577746941464019356207967704189842780313644254775067728805203770955793059415652452016437069973475154770759081967107312638770457508413067959510972920063601291049829483646076343819549089455666449620277078006967770571051374886836625192716856489391571814640277541262769578975208000287337997934277371392180860675207633929172157168217793726615065020109258170128166035920552238015597441882666526601795792740319030645768018790067210228167418099356575171193824539428689961293475334868737190877109862344521283005464872641573453207985061230329827892234631980981656424153827659107112985466021475080666012784374683143926372803995650245423363722532593514792189419651893198710249988191040164960555737895097731642497898113085769004836437014640515958383880496186018299263672792134994910746035799114891240832460713191131803667227146523537072457868912047918717393349019341622650320472447796150701915251067101870135871057648615566605272386589535197460452851469608514119070470502849766488400899307408996532510214409083644652687588924272666016566458467210151518734327354094620922295181760721807160084564851577528981175008795870461239573437573987111578596982868640006524900949123520289968899284602179770516187218462099501826407606045470130659607604506462168398512576349619850932991822594350307223817478594932292933086195506322215828368214340265904839331585364690632252333006906796005774924244656452792078217209336934743635661171652843268825563883162811001810182308745853461633491303609289218704337586528942775308299435047926970008904446082474431804941579990546061736363714125487807634835898106936368876397265151296006444706207017432866707293453159557015287300134232579981869394468052345927716003125839108488056486801935868202186824191793586644430556795577853177245274777404580726936670380942542697930569130737215047374094570601560535788502263007473563555634060453823485631717689704702607632383285833542366845883076603076587774737608882250125063676262633796259546713373431595582404685114953057370679251479470909895765507683514701704766246332094336894900011770540840091111344723578312598366177563576644431581067061088463179353803601855483008118994549475082561253166042924864822298481960835405091631294390189443521103107347073380563682624058035818700937794798965742753810814497687543092131271778835852263774341435855483348035547998040020204152904405922242764033748672129194827273629731100467157256392524937768002217363701392660578140321502851769590192718083271604029951531744561172028407217517562031844793145197340779589744543526225778100650130293043422139687950160741823193222749631404036677983234264439708490785214775025787330745997884266141287123887448926214694936739391449316257927942652993933079900717266554943853214052018494016612658204376365656300122932977738174369729216999760837957996995983701325182069916429765231803437666686617682501497465312422115913081800489386899179355643113363876714777944634120472458465976069650563515865943127170986044539143651548650042346114970109232589645518042415725879374892782007717956054207660697305358655668614584196190462055680147196449462879914049345224019083624526048335709909438897265414671341268834209041603535634678970268104725886046583033915154148741661092510180470728732282754040825053895542304534348775497134101915167812214709357057513044109611613978112838569943013201638708504041061148932689266715322422751102271430896272500482022669733953599333881607730145068480134122567772074766344372063072466164401787111155835885180522995517613519552316044522204936478849499378203127543499839361273363721405244833125117264385794692079219266080711255785941994392799116431135832195546231322329305611168068914815365972258115778290604457087594766274881974653896621462693034085114614189827777366206196544287645790870843083860356858471469684403939604494527983050054578323941346713745258930225137507093126124561695392798456443633703314296566382058803495496879847836442371694897198698135772425393260724530802186643907047252993800388396050401608549774158409170181591445487992323839419216509858709402704648061639874805621593265969524833946803052285936429765711323542759403542656397537122601391548224745095960225033346677741892892771527911053149044651050880655258630351286934550154946444768811417522718146006948003411237597005351261323717694137508676581978692259328112303457889670637231677749668670591829935022456260379995813780288569266980198080386858129567684686734317865474940293552967473169545386136134382260109813962048613688109330644593064387963374303862140764998053118388894753779204145679501409187622113221558479513672842871256889188566831040038337612125252526726567610681181894138004531500906668792730297403044279054661768991167098547566923360820837770888388053658775182204792645245723563691153275035492877013790486057246844437474486940255204289149617310393166097466799891856646000325127742337621451563321121137297182520153459732456200526186175179088168902156063432583655662788068658954979166308763629655668298464340396433829728525257024511546526710014867260146594470690085761610168332162185073573526093411463786778170343357919244396067230785791953781554712489124238305099110286183884621203756450617496375958986861623376057229600707797192481020384294700441866707898630510769513967922274061294786054607984980151454101828140632265797816369898912187872727875738550578710996213709621292102813260361191524556486829199288127932251160487440151356696230500902662112700269998217514945049877593004198332034990917506909325789060385278084603628755457839029973417755283120783458577150247955212823747206579046549574975185475411509397950408860876063000180312970890647186738011755143733426187529901897438794453355917794404911176751642877947010651306606590553905161833335096262115987636646665367489005833493298082659393525222460222404889022828199963479118238103074900187319699605635224638751883502158768302364260840167151736224949753305215985938430995469365042835894353681632469665831640148129967844666840736729515300514484907880362362162945960735003354313640281613217631132129310691408863750524212246395533288664908603668926076704024682006572718619984496616855770129559806719960747205482488349732667707515216789767028246958875589804157325043544479099147949485242775947873149409595742504894555750175940924342587482857664781565385341825407976270846956930020599023390904390514211198267312486516269154177209985261707628755519919949701176065326081970071386561189230514335611988859249812613060363800143984988088931589798528019401033461518457063523961823159825101713012917384481375630845575624861272909937304010706641537204971783597169212807675718971415780378406197082332052932526147758048858915265319758681351081634710851663027681458446584073736260120011259624447468812297573738900376312746507681783143394395360938986264048863545274575911215316193713625164250873520782606895900214658660159197074986221214638244229169168816020161777525939904064085580034399280437418839718883399960450452609939527072393279676112765545138324465216826516101177457624280610641602867319162193277755933734517374380761158871800746915359222224214052590552111666332793453339530946146263882307405135099441640949750447254964959279352322834600236859508384214277212482863763583174681731699955759881701612763683720330419952145588465035796766961648011769943241281421682817901435192654316521153119636589036507624963489765979386634061846239258972932284897554603839665652948685382956283700489564442935967541059064656647185840768439014821861726870980773386503889351272601429901860928423461479029057995412443661117172819565255698487962741427375849962545782341840511367388432775294362533977254977382042922297741098029957190454490450515091791366737852767363933441590749615123907938458023292436517915190617016903338291563719178517160678464124397507512308992849505684080647573951155994592278848753282455221397392366888923547283196466452396061228740161492107479604483336347915511393312691319188562829175637842066511257125355983462542754477132895270266632161222820148466677548028442211676164368351108892661773936274061633430091217559311907041659696537898599738107722023812164847524945291307058068576607296339987117928735081165628788724461473183191613599830593311880805671730588644679620584833731031580247291969793833578598908509134320278509848209889512320023437397623781297190089772412012621056393421111963576072325959119762427665720449338716529195814336147709796090417599003942223935920885335109387849339124806787511898574410224963422367710463205831399005908710970897476032696847560119730878233557805155360735593859210537470885579216544338989554568087064568615345229256267230306695852848086657077851943844084896695954294094641333142105894652573576262862615511310913301686553353468491227179409922373765729558442253047062503895979188380463778644637093362961611565869767917412895401119738844302715642239128854333680725658678836060031035261120562744744530936462006624013760975543315545892171885446669306573989839373332501211405132505043015664324330037565026431365823715213468895895693519072701822097552684614011003931390063297933232510415819715755635053539049687285631920197390650508789891697872340811370569714445728993995076006741609934643643174658705354731393949233227506580314625889796100920931678677441438145205896476517250755502360849626826716244941049272275261196302599395537913118384240245254350040122978576831348499404784404676903480981245144884739650891287423464929716188141526323780700600787242016632750528528517031753551960191166993897966685483856768646614014261729682095054676109979869912335483095313926861929274642493537435337370302862537600821598118383030215651195611061611091801329476729872983323790535193012289792067128432965566311236645361223878050087478052795244976568389584537407451206948678285730945194005446370390228220797968450165458975492142869918212260009145791320821355836075840938650789164895038939237424008184991255534841456010528190564324981096596234978596020313893311739673398673725190641249545090872960661657583502448539017358181236700173853120682082434439564306046041098406904101693603368836305417762456611487628812782675245449449769958010585407280838359172057982703003994247850062905321793831385028935343121116973716812772130731350970781519739156279507885368722561689396518882133304599244252617675377195471577099061823170886468369843003429707534010081991292720931150618402406274454771433888745454419117023789145402450353590870127064404096127573902801566700937466137712299072914754261414171707540979458287817837051006122937924707133597422488655062870318794710461439161592140395562602863155547551623343091153888637193264445376686519184809790631759762679930031277656157704873449916769377357901432707890054486670546605746815444278138261585017115570108003931271987256874343124847528117036355839649473739927686561840122647475348771796403228118550248359536164793709040633692975431605022636767304753945776915397070564186364210826414534719302870856053081915748160558526446409126126568844035884756774675613567485919675790947294896274348593429600448395953445093015557696548884441887541002537996628590689969242633168377429962202342475964396124985641300428524961185914256714835888646202836917670996903963568743848531549500196423224155965489843979962880835548579584049952322133297157192937947385638538864018972161144030058288921434417040370807287551661789266574592876728487355833462159539482220113550950980987244398443186766292924339409021066782775673509931683595777378913792136451760238020961801319668167109907736128154680469277412973184509377061036574570317530898436135745892583119795546640388985461017876348067986366601564240038632146864576076793868893366843658964384044768793775486979212391433872485089955501460928375914992863828404810600727585805500107712586674818934686384713601732045613689426071750520602653522011121766777548193930175703984645812819084646983955205426595339904443520747041882923849830650423818799124382486058831349831516806207483517306402296068150460286344291168116956572058745186491966508927014659154560859188188644965358300347339890923657920612351168934719066953865693582867726994927423593434063248816663201474094188746678696008667297727226451508955597511651966223070591851159959707009207982325482907856511321261814155720008025726360623211572494122093393226116458333323421213029510048498668863084012615808665507341143506976823401858496848345654513797311237573324762300306743519073546490562516786746168991898247464035183094010154121353616551403159445104892165993326280290994536152625628955391011480120474138634465613821944856031263944111964908735500094886372438618166625024341969867781151958003335230147441024650637201989944022902638733597880579004083515982021496309077042338905100109541651048225399682269539051991121452365266735137648805816425865106915390836237852397854935705450125597691065976302323625597585504847069324385610441822306373479919512581732323571617081363207044614735463171587568261650343349633569614759902659926512056492460723906264242684800389303630734902292559325715062381443366014057051384942728768630757427901961232559918783938770510988906895827931286730923385382376979813994997322111493966381873849368915521888244652520647185118970287811527195552339373699641481036819450003836128237116321016324015753566781626967174167980708196823749569764943051771869856160585991362193170252155162155350441676668237960158004256023803964986464947127795818274680643542575869127366128937308465078800097018159963671155971740967980236022928951105278945741512704979579380682282915570505759599373371341800598801534923026541399880423534566183346607497273420130214660235996826333776941630388772018653059607220183514596660432715278363141213652775407509140423878863955781125668916846433980759349063546996865424085109115261560091052065573250325509979415465559214276353390017196007143478605411094214895676435364158917736335288188440116877152620745922421730673932641562333503814293735386924158782078869184203816244331390566969287816993912240764682258235981933861462096263386919703147899871416702138620673050016796384404584763059154830597274550884311115947661923161276346951668639490388675856457562436125112272870356240257510290793153488653140539872752056296199549357442328015203831669886810740702467093469549841326061123785242322092033091144955670600739801639136002341062989968238212721759967379446707908434638146275773393401580813042893000577556002687542698363983774326688550497898013080858352907800564513685954013341237158501441949626013287378921075832911416215501749949932854086826841963227393714009752860130860578260403693827841071735309062321356310974310149017906034206560579427697769068164966537728026971420319576480645711506239491749753950328124792848500137249819539671419558694133735630561280197795715822256013885402239327112005980195994221507681697829233337486146134698405324364432190281215024162245760075690842822504696614100417698142980937459499732750068818180558894011703345885444941102101689640190008651017742386654464709299499128452931478624272913754638820758999817610966836817931013774645789129331648461147560120536558405136889422436917265308522247890114838869831135513660305085386000591995127207583990074246821886002116622491720411409876382886433030172864958908846862391555537139497056399095467435865127362074148747817502975544180582253162366928769054746692007956462958218964901723159294752368407707725495358297116076224558112079122572175053084175396746509355973155228689939797091285806758740440517246122233327046162442892823622749287739882812075128831667796826621941412161023188469204894371634398570147110823429736667254163328920979866438621847356716972912498950929150113950387608755484847930950292202918372513887549767344041639182245956436451166987533774890087363946286468352388323440924194067253340040260876511012373363001845604186693802594132458221261744804150519451439220392615244003518622937395370267827243440537860234742140175509228319417109963621163937752588791701021126357609638696273032730877677809469803637179925931557902448285652575796973281917649997972117095914259827454021119933354712579447061053783494443514222323349375217561206765738621265345356925281106125975985716539708550413113232678463319709995700506089149572077307908573516840505633901306028887175246508793240901736352811533747964434130921462630462767356886133068944228290872783294124548292599302292681113554938757601675938245232540241318228892572372721201967019542748460004196849755659109323978001680127942706000449679219031734735109100179094649513418615521960908649960694301105842262239219278265136662851915034590113267729773463228296277058596707631644667458302157742528257971690708017481707305394963119179879799661890430656412502277514805218339322611016174536322739130748338343806961435208366343884282890848346354525260909873709125674048175437689566624442787110473111418096693914072358890290159525696573012794255854559078849526955447809509219701046277773106429968673463987295456411842227499858236691725360557898215306045803040105833946782314486092469612586438481278213647844730973758577766966258634985909913842648684177550922436114055105262456554593388770460861592351823299944265976600424658572857393667431059327942306451754272976510784901514404735333911782200966045021832481672487495863812498230900990674049665474566122647780602177506458044634270012664719766353205124139074860231798220091218645647106411960052257489611250615912512115288769751683047959635312624950335930579505142924080125802607565166562956286368522845220001645825560875477982609260708096573186125779078828316416088690316810852215392346550387305319661942574528186014924828592971282846930435472525705000030438549412059557175670473037537648967740794982707414216360520622162680187488662545697208159400432139756591834445925325255777870571570613568132042690427552670012416260153649170415716606138872528927874487981173981493394392369912359872886482638937840085097468236891771989396751789568149891724453806250507357785907533330953258698022667282571378534509364811159850155045816733504493770929231131088756784893289392460776996617346511018304069483596203035847273702835445457995092515058006633665403773592443053565571535382741538737886119468257567195708630118209929245509093416868194546898506318146352999242331021941248357140338013078458807138805687835109992508754997916932020995595507131923756810242930462285114618548365569620986260868267483939521646020607736109131475000633899100490400713001922580912669066871121381889060532599473605702741444301064458604774423993827377616202140137553623952350664644084926632872915279981901601859355080530252189274332493511048958944338436504620050921116789915931590912703254898990970148912119857259946619684903705795595882908550665626204502585898125530242082787449155814447864086393489860200381774624460808030594266912888316641090725491245752209215164515047704439315389619734789045820522988081861779918812004975367153273011035990981947365892406035090154120592835323726350267632200820227314354205781696023947296945973914100548326415031500438945901410524101296064370236630512005851473686758069063543542807960258930597549713201351491265767397447447536284215984095055742415384689642228365166077392325773358121579662954733834755014774662158522839461442288371769435225641087406270963873087098372304780659230139840259874299883032844365141389184788987993438430640329351115781091455096833716996451792259505891800864093035505128075096018074137842817531121069440276124116323732700697400022344433958497207345252583924179602521254479224426645308137697524149626333547502621465049241932710667781346594191776442515334831100896845975314976701821568529346644745933957252285996663012940571928117158965489897370498677600576027692792696249822052724993064958003777577820618154137002151830382555044288828903515056790866797775105849225006650319642470841025009633018853458958611126427755717023261515813779769455079673735202692620523676538268854577769008202132064088660766825579368053490745961132994766898748912268873134304239965380720913204492737381824102305195261996672100611569700715316439836789801757528728262674226106826803384957337728668255670702676503803654776890120775742533871191100248318841397459987432688072412076795878950037042602522725871438224832904283486971041836894793984012573310311560725786170574053861063774009609701657405578640232760834054855124880668179849976777915643658343224637680769781976007081641378315351651108451280954348878690621892169870715798170751800982549625771389843387450918485948799373878650777435552247995675042652240970367276210929806505890836014067273529547652647709841265444457793697226511556817027301046680275937070476507332938870368468869434789486267652943516699716390853910023481506876089660800697908281712227086255037130744592411004902973726438947608944903713330837639390776695835317160194233734686334273116664952908370220697694788824769103837630134521217038269991420284492622015625239879107961877021078768684137902563100431590205636898242670117378289443635038303595215180313670646746742116863601688288664803850800891786598341878675776634971299649861509426117187346494897964880519003690462141848705070429016187346752611563610219259222425196484125811331766617980359407243608815691776907492399932916988780891798695250266032722206166192028951876110520160321295255069655148957946940176462122691614521721667572358332761220505627347135031622658642701437504496717815186986951292600209722567779043811022244262157475459507964164300270165737571281809883523966852730252761090953331142221896328634477078827407962780023986047900831360594090919397356252063234273002345011164701443444002881668247108926071389705732615345280060850757412689233712611525543080934508623076448536407740887047302615020169266194264173703878813168363986261632885952123281320344007660716341972307594315666677267748444939647379155496623268913067845902888360638544723065845061477158704128222817688071858081970600351209039117793189353432370068200240720056191924260759328072817423634635378491088717010801506126013922331549837007796545530596593217807303876949052773325943110270899345772801501172882787002107003566892448192688023391737796184619342765327390900480860026230517816544532987380257805167546414485588549446132305197771057190911009517544240419740025633457267753182153822265809983392492996422765748094681142743997457348662134270372224729964202841268608793474714893934672383696474612568895949901735953293544124224472579492050851006237326191773902307732355293356878424376892339329763818756953524756409346988935982888709734476877892698445921423142489733254292652803515328070499097545739317071334684019193558344699411123816463951967879157597264400719042219551349802964668935759755615847832258238691108886129489861560326583102763186809663684974789668521097324319037876557234190241376920123012904811789323907374796624509847357033505933903135683840541985689236769830741331221752105807067671035597172960734439467699489904283478842828377508961591092374061844452778495672551060386781456563354737710112859852821103675531222519947598365228807084546439482858250589259971074443092457641081972229950896816418204480638858861791062898728240762361673436011736833049982876708454138960555891759393942396874301929246815022158059334933208089868875525045841804445247655632462175169898616454021656012999608158383913350250215657043795918878607898949582762360587134014023641998035447148553046860145422377047707352401927937823268004914455124402065051144568279099905630534108913114352914609738296326664253011128707945972690284438055631384967289567233965585589558972538041721757867330932908680985012923634426969489055475136958488181681960558844572285615846049122634814476419570264937276923750702732700401114307000645004613329278819707291286882445452831635473429444494041324476039401245225979471200895823737865173020616106547226935809737852512234746971038246375583401857775284580100642553937791948657006664581373294283096710619506535265220502502858965694373687619318087623740804774096482237444997152177702661426977412419967733790532275375383041485078397657999014610052856943472477654491536283049158715283420563170786437506738688810400003856888278798855330555713579057004453728901508312711422296183743985361846669224504832736265614487187890644870204887236424526096561958358890928713759447724946989171598336267893959731649309702446934698755370769266870619910059106552156556625588429498983804374001857171678668798807281597815064061549559979904373377550354380727692089247373798760876755230074269056173392843003076585978536303579778663889792757291076640906243000844616333111770038697295338712530938946447505536441745954286010692418639946339444480486898645132640310626114593141985330932304564544494572280534312875861932351905125220792494215760506078881631077743918395659430685606395211042097525997454173192194562267782425013498792769098379545862794614667302815511918937520114033420910442419061318355246173947965688994813573387603796160072566177121378426524676238888505016205723399685275714622639613465399307813431466586201290052909676358854132663510780283939420572304127879416672021363242375911550950505766735469662214820814436436618040675678826457821570364005230512243301567823520499558734334918685204156388529781305204111641004619884238701373368656795191435806937942354507364881110477440063494965712671190602930662387526548921731560366393974836049333199768124776601559786814149547983843342962179187535070658483850562295619072197682380969490367974959278198043923249370016169150611848230127759556246405251412882422240982082725737977610972386798310195401694830779110256384803778955004478421917336478428518115322181292237721641179470792039598705653289640528943408769145195447756664452602378923348318672428650103933172508801030053331128562590000696936505259184675188756172005840521380782413325592463066245101297463140183079065716934720048987545799165502275674296907569158157010640355043654023774245005088267281795020604263071076502208390424307233819477652228254586647270990466157549901427483273251201123240234498429752661788484731315175459169628589598905114923917284142084190378001007183870499249253831015676440786549387518875779464169322716007381071811525042005080182675359553764365594838101195641877645529891322408105529058800445767382491156755282741882693767593869524941955880722341324610189217947257565594297180781850493461140240270060629801540107363824428058786548690214849411669187773780267293003608372460095376117001525081946766551600058119774711920719829067962510022820058159928093603869642851014812218150121062733686286808948188311276034677584467757762961983626006647215879986397273414066144182169919526769173616920182265053538603010139704095149128385385145232796784611000271925813357028744826510308857118579274554933980489624944713138508368208134226395101797533495842586889243010652004137988148435983145418329129485941029508742411353984789435036023935236698891269646870890435113082298858381484202146463212448627033986161277583833052351330304776575050646347907485546347466664554842212788168419357266207184651757189933890776093840107299379766139394572418909271182976006336403988293235032356159193402484372092330488605720437523250347585533751768737495930982960168770842759527141027207654052421093337253185189999042370984350215875618650969318952605414075936532199018827261121413730359724977996360568890772375812672588892274739215081191693671698815028339519404843674291855890094358779374195206156283968823849271165412079230099215101974210215231167407665143470728062491846920357505869034913515579277794871581869275362362318760049070894380197966435261767909442895489937408563625961019630639083489157467209194026669583432112217363859647311251454797130687021340305920159525548319156735398449335472402077646233818526487559321944416268449723191838713109930685017162346517661851668593860487478215023050933927930631272406384234593972630380848144963906025282148360252599003506738577086981975818849482104203670597840024671982259744649890100151902972240924954475017723443279815076285187009953433594413339445603970603010802014701530639190431849011425448449467488715712917883861332360701349232241491480382958437483887965466563404978955518020801332115959825136609503028776836798830776330274800354445446578558817475790984180234299086552332667946204056107315592375048560129371879931819973467465372689279390128170840767686390097292502400395832022485838258369671517639677719467544849720958534449326580983270459996893415994956096064247294684058151134933603774963316505613824985236878608188326380138363036269883855366315340488328093537217402461376281624785028593839165563796854162623628290528905249359610356705801732925721748352233419213816010676767348524920903464639941043248328070643491083830653049437293059846257694838620480533312541524850578981890366171115867035485549160452100449311224728255076057919220467038489799355100948782938850463114835379683244219394497104842104864813449162484550490366334064323192725977483300254004729398865652322444151250806469847012833040241416606328379647540020314169500445394984926004284027042936110503204306679036622413858507551038028003936895886314044924502577870255936304674763733716395576938446086610314786114275520400696301252907296312218809477613266550823845074390909115425541288064570900126319895606216951160060198899394851097402784134720144390854985034793234481906728727952177469750979787143923088575494377761546587126376821122463677757050408593836688079818407848288185466694428274916278264580432979458980497967097216929336483101264751023165428960026906707533375606456135836656879011928215493723071737216303517829872300630288166260072270720221232660389675514375589518112605057937875998344904608904414153883983079881224680742058023616426916742514844018380641836260044475062897013294994399298170531046914189172362678934388708167735367520471979218109817717468335229106645271847844519578868069766696377561203703102655668361326644127069797582608951189445379096138492826157333419046643709227331512005092672610777048244586736707970351094564083097242227509759110194971139407027476738776193185563507676910813566196095146934841064599356207886943135018408904824061568061082951062993405295932855886734745414313511465605001093608011353096054191809280799430387490435092544639367817595904283406947921742761721469116125298250011558101978717802434032176937616783028953892043022952600436185009706445748588309644942950569774686027689192199682230202111196039932884144359499337021333709460739761432066137733222443326868035583983993387474430390487670111615286727715823917096808095650623303324809603157006766665764825983423209564239787769256005322732344624495981009465014507679835921709144105453642857608873888486105847502644248230116896045279820586644557448034735827764192561598257144325102037638662156902581714634882243731269241316845203783757845775114176714807101248652273105603267261029485983136214890788186657522475067391236673994848257077761407831872767982181580979385686847911136174596611998661315896108329652061396381439552219510429795253904394305513403337856284823015227863466033788127861862969906118069321194592650062041026662241194826236546761993948381425410545832852759584514639584914833769128819923731237566609891457438471759086891769440038104243808207758668587956464687781034643978608350301774713788045669126430840936631666274469503225738749210910910867092736528504315318152708930105031552320184735924878970905246976861853543760886412978754261951686778813578924738519579200711849737136867232410235716301880712416447993778467705180479357765696855252085241408087007990433540901775246919818392316077073282207775252289385187522051408138007990896810903770468842448149980348722608435004814971025079374092378430581089735299128912897404029933380044629144901517189885288538520657595107151152772927783850720110751058864833802828987633057459840213617512969058289662599211470075456116249970754745191917409969255997176375998592546913800305563561464760983533312042494301552140207927334102858522838027692881707102124540444261191752889838609055165446906136514030188090915718120408552467919806228589281125707768016422049992472835640435709104194945237808779590545732186650466292695296284773853456148558555678739501949254818725063216722340517939695324938864853263151481710755719433414162474666637583373836427781735484185573399063850940254679261365986786122853641599882115554181533148798788265286233059037889245518291093408253629951605349920782572282310365994708330349558593281283056761761087140083105576083924959750629239650870677503416836485319292956919347614889516858629277598920288336675359349631411007007208760808039216674258529217055506251182942303496210785190616907009203469309456717110755722577221575804466889929594909856469535716626205799174559665801841428388367114890497230972925689702594074806497047863874366219365185296429036880785809329956798182045705972601386350642606065085681104271661349016832021718238002395856577799963354617517471010982653373662851028738463888253450665030802087509975870631619602962897831660413754914103041750504896210186258895169146388139145933041281785270465934585737490289452798133420826922587601503595410121742190827816849599184009801883229954300026860506398781362026071121584858475497585576537135761907964744984353679542933193387246897225880398291548224816628834112271728513047412193234721413098166749248828912356079333904072413035666496051847098058699913672369942596517644033370233398238757822174773460026780870079039920891022470564999219293932617547227482272013121612666592773752522028350572459860958492638705296361514749015054095051241164429676435255332145149407689613847450332425240680472228720902301000963536374396673100458475458539337934724305341169220541750413641244530530015502829686093479847525881993366424216063251347168221666402133470024114641129670925666573231134941056981412112153706868314831185840148491489429902922268522592601327470399633139099663915485175097843335118446426917426515191973619556226322521534398577100353493757205648082118444695349968909097653276564197521170393490176741742713921218805004762643867235885825994062323539335991412523160847238995221769400749756507201775290748036001007458711763218839431312553394489595626837561887235457076328654414424041446901129400392901268524851201244712367996830558353924613488177416088690109614519354109992541683021181528458635647547272810647199926012902389413699859884703165063768172736854618415838017161618370058873867610998927213733567633775864659098037943982363249978028538313282232400024979454182515894566822285821415898799657730808602248388507055013416097765397881414710229379712473155810935101259902119916761215053050469451575232244251732432625460247995586013849347890622223411783725729947176453204330424353353179574256612142345712760575106711800052648368722068673018219556133961238565336856868373998851188617497062993204712655815276470772585073988251201375261206474291460816196624883074684416000506000005255650479435094845656872761941253952899011296831951556498997103377154109788791325875490087609674553284479936846035848404688056798584069477717327627020774739079058230919703984925625102955468559369161375119694085688420268453427452005688469272736021649107363600530837247864303342485769850005247150620726205443287336642476772600344298514232823019377199680444354478642606114621297846902212723351197157813552317110663959309505698253206204718988944650136019246491868591160144598912941413296205278719007062069426084229322530811011017183773265547657401545408454206355457294284426072717769876261071794553757175406743828126454466078140821381235491893416968857331781965291560703241496973863708997937933826755755586195933681282898341905331965015837743664621002888771800627675730846097651013237191254362776309244851683258660774930274413063048959201461072905007221552831033866910057911541825153879445089450142481645807936619170551565038681953752846229816738952458209859288454383279502478666898084611228722162070770513269260825764165426191547108100772741401017900165469164318475082801712670058314868160578520829316959647915256548002766402137222798092518470360708639274650187968373079672693790801864019239812906647191549673222627957740785385845636397852155147742997460729124777438732005820846856321047010994425366320044668458637454698074767565020790462512958050254592178527973744644343504437615301540023128126075125453187641475603004004714297642719391269501108906325031207900112103912360580728877373708468570275671980545194109556067142181394586152775371055463321722955676686572151070298360974064103060685633011463774550571173022165448219273428704000934727108795084422700084169786407037577825208612409220424369550529328988573656524110903335036389714754912268757981390644238079615711957524148253935274358115735112831601895104812477953774872992565672344682606098853299502860877274290230841068692178397404116429131585493065234574791551990362153976583340926587194868084523328105100392876263958934791140292920747628193856999579537920723472691901162295848404789184030621462525122698879106365417893598504509228750029559596961836696525551020565111617576676405023616084733674490607571293363828134056061849911884534190525525959837534037431441103682581302696974472635354505397617363672999092253414518607897458141014218361466701852662959522153248240258649116696806012996470007864492657968360740252185709928270696352509928304742037788753617323080550791336586814579552000657365885019281133486425499251744426923962804978256735608668691369278065121633328796482018854861550898329927465696397398695344365405446242816436944274935299631883953715276783708256749165809299424330735539198831551029966444709625260677600371929974131037431923756690329145237643135624621324009128995900104044046603688987798294696234260322233249143441859086173187839317136965853468393149022048130970399125679664933200144074990357104408107522512535847541736437393350168935807196529528397961121400250751171870754434896187667325037103890675872454379176049764742980304908130654636482242393653318439644725071260895116252792651872786487122991875949176427618579804950377647648658779057886137687996235817291925695858464463325466486091219407738242850180721264812990084606661052301069662797669571018396056383802379828888562591364152580289412246319863421600295655368420178311725068798997178979589432828893476485948266224280995469159210986337320302922599054524697681962531970272463429556708655326619939059810132683225634680910442203252109944418614331891821251168676746018712778063934493322801832232880143208716167840272419798725700020194159134437100476042612446417528167825433197651595581946347012935871431926557264412846122864057281207956384881102926980515789432808106377797632501310547357754246861781432174295197653975011658281819412188344792800087595580302863777228368552761123015559219981596864503607003528903109947807858183112651893584780263077967153000822359067777108756439191478593187724627605944129727627959933219397457265894702607963564976562485769721323807025797315701639392680029681038831106321021021170110596287457778220196080838680557200202767857644302078210581150051264452299610252091889831956449673969926680456721866844678146833724756669254400285232321978511643870354234769191659333562176074951447440414010982337782823294016384062470919805086296654256927058342221372981664423568430729270573236832042446881892133219392572859341884210768834503355218720743054794206637865496861916649109845777084705871575845802931275375128762564451398768891336820748132827603052726676367850200818673150261925074691175063871498794247589134481147434553511345789283903780629037524037629337554077066075855251806859887953749651421429765847083192820772145891553954976821909495158686105271399706364339393721049220901310001377487207785649406512652470610064120052878838961845368541941715477939023217594252817653262522077801013343881431805690359275656106874327832492000979080200084593051612189174624333908455265868603221062839208728643976823297996933318110071513396157803181638273232888618992812698095448821054136188250916414777252136240165870724478829231650611524810721248614975055971323499954259299144675437273538425629268996629394022296876657894513477498085015483239920740880800248902354168952761843044982926328376834741820922126747730055054276749473070649125038102283233617355918041267963886965292595124174265229603026302795428126289301262166610398313150668615335772961893694143879313459046754032227358867371734868383273540228809984058042359417564458348660367169868840147307648293374895431858419175481376342849470797578744552843887065807165711116458457294439602899821752587292770915859814525189155859269177546457290462298154637692326577562005053580806731546098533845784842677799803453640452126551074020840939851527959482789246789534684559364690316538440957978917935774370657152148596226398803351966579778766704571539932325105691011694890197441157054142555200029111664951903561129514806109825243987792074457557454189209399380921797858815486844186954162620515715918393361010374382189491175039564595153331314885326298691679551158220178600991394939229655951246374081932546309159379959790787413099343728249923171787065596197725999342034848544676044554503622949466029005365901502982682920111282641048540856894239693674220845944122480260268004337398680860578334945931706581339407098042233848828150164562759678576711232730561030571595235760425302109040929291487351148277346627540177138405046309421352793353614868237255651008612470022329581497678495660321633331101632191159771564643197650660752063639527438314150304090937247352681414559459790834076396249113320320674787605727865412760666168629698075544224847442278587021996237322180098673042336189403693472936475763984262114240508084727947205772087819180745898630607099904947917251551091362242532793157216044935590104758303284453457823174663461605711707655492009002278544537909431831035540000535922383787144510751761385104355672198098595914853389726640438173188708909024801156765938724295701034101869904281170241967219920944252522027720301107733636611427516046660841049061597813354002755648627939287248585276100594691428026299495025489923042127280275022580908856278494763947005243042927223915774664270727361551780314039344286460505611305451839553144461427888999185708718553130915810886388885753891919345516979744952849843224994827267047639178321381641855625015671285479989966548643990014947607841939113081479406612646758323632458205900355935224022163825072290902541435777047492636259317305586555550380355622348077600030493580590879242725423666199530969884177485563587607176791919080637721506006560216369250605685557691550690121534319240309045269717392439781618809161150870820904734830707145619412316168058854707375520202298248905419256966571012805444162206004053663391604960924579612606883856164164749170944811072236195046078404334633768274961508228313941395419226404486233284393514437054241859942547392030461375049782375134603425709855284912730022423234114517239844902348869998857674706602912675661624192126833180846687795307861200526820842809478417254836239037520600350937982988636904176661331704516021890752632541173913218023142593425768912672589031941604262793560241073882544044155915294531400719466316244297393753993434379063295151381233011469380070484195872168730168736101007738929355053380082174361909328243850629744505961145411368147069287092296814907638045085400659549204350119645376099788852669033417235141109840839029185591305460359261056666846052354319415081755315543604237366151131819394196041228272752455207294940910372704358775147460105263992936959630979224081849214503090532457955085269946827822387683945517873172267172193738659568816905376140331043701178131484620933042443739731800348276132190640334701972585345860481104423854600146569644743389663542582806978719314456133753077297604398525570778867114981445306554098394755981960882350205631254712166066287641126722906053146660340877137806591048698158720315972255989906224733470269554520435101356293009216178417515303351683884666740155926469243819284144921723977497184641041137288167369912409478890951699996157872358423046730582529708890062994440302574781679626797397868016421069204722772613109671084202089788227903360555623501522242049998850101600775387720319889257732378530211178548112732949126953508710964701302787838767860852088660856600435096782030383710758269745107953204317714930894472968199463640393467991560698538814949145529039503120929867919611695706946866256585090820206140536730293619578157859592298291680345964357515587381284931186947140778638227302311888097942790374676304348617245951061375366884714275530312977236451467028608578094108263927240097487404992600087352589264494994031326623802113847641107013334655300836596126980090035916179157441305391303488411079506660613117593617226376208258359956551940333031148144542083803196087398346825951793954686554029102074757356902907891526670406468067585877153798888106084310563951604982791251079324637823851952461995787323232464556466107415817373191807957750186285300358080827421968210403034261725325787914919490594676314721228017991132450023372298569673630461434955534016508161041273483057932258815395028561264636864267745171598744348565881365218400908454044124035988777770119182824703016720962963698200138460458118400862337287885567706092205270873399920648489041678450529266624903264095606051106997777121652842906107842418071612825804535784278082490192080146217047511236265620258101355421425223985019638289496812737806557925761994706358054357252408551986246156806767815794633274108939268735143342306819131824189771951321044526405645411833222302931016033948307537164158616551662834483225026677597821956002995719010328539310294231573015135713089302707233171754564908417076690047215278581785129397177478804156781495327295616932484038279805894734466671855226118069493610193773895726774654794738286321663457414706525797999653731229938182664718108235954790737383701704057751412581878423618404831366522433903753653315888866286784218893166013104888257191366563436890049923419258049976467174441260014452646993474561692984594451118547509350169157688580452212392120926575893236515104747950360755751977100876014041512635261419084121305487758976074403251559662653332736185194360562266603839777903454125013914238420068908933722455106649161363785979962459988643418504869069933155605639971589467907111173873411403506835229190038860906583715427162280271447768356009534282954738318283024640726183605035408513100601943654047112140781191755497461916090215685587478288576335511901843993860072740615990451302098101891676866167155705573085192532871027408112618565945570527152692354755662193301480721954774629018038501840533963787094123968912071064356626310141802807633036746889926803472465480652139983941267659097636420887302147160357600451149631033152053773157261960873617599801784452703009406420862653952361814884590394117407324443630999342309874754979367344434288051019105498191237039676957206027385725206686087814703772252311225599429818705161115169327107608462331802217974349741335562500387928836894113662625105893833453934136963832309994129041492898867750981676423857755648089239369338808133237391434230143022496648112644113579805894823711451707330407773621718072480080488724523503051111291018345631911370164105297371364942164881286140864431416591269802596368972152653884795023503797947468061066523066095888960385727950891317348262508415616662133520620326801073021483285036120288617235143804261173425295256911910464009402046198564485925701314077826848821227921701303653841707900445259129635823023562750101998466805908008717135975050044844418866059338280662879813804716113005281441749956458836706466855546639880133089630889398890371436927130996093422913298516043163861909557782860005252606519067610840304023194845404067998237610262035399310506571500589140813597767050728540344380442559845813969421469287401574572351126621060904158601436882262277588246336545521300881661916290628347741042961100440893023997893576595604276172920507405299737292247527202476674881280863681026975328967127153992374573914560532323310903529043785900322289742741111076394936535660479562314770079349607769208101330786890657199007226043616536753855524588423743604175646234497586411268927761600380302370524121806400860903250992353331515747023645972081822152029760973685352660024215997616151272453160319513854299821590775755473114848027432906992663231146662909204184247487285660980963086727156990186782799957835209472365975363379963210035685021629652681650652082802806512141888894551707864109070745905186103079682224406073578928786009118999608994623530437226488838047343201875951682659292552916187045324553155216205809827407260053343113876097445147169824082954608881902655061097250556536516134992408080458166093315769266472470376943760569388132043489357303673472670012236938731717111780377066147644428747843233397342093052654258768069675837059953359225719363226645697761036835472074320433587705764239830952111844887505806236200167375321291000481314458747247038904038536702436404442733049117039206340692079269418341883289330371133423450049962067543935365440653978593848962474602550750043169915780868528799219960617976393732565306204404091139757669388471130716662309780087210328337099316867832256138386019461373271549236603164940016320082331324334431049985531730083746919414848279304641539171434814693053401576268067236367145515976205767027652886822351657722921361550830231404657519628598124223891745185982931214952055785411880352673647628459716071365261377740697915126966147211729761614109573020025582838290996042950525081969225514597554698904648679130855117101872346612571068384851648704324898565293394379996482103960339486363487283426197925810717933172002017296315669496102551304939380955116185322751926934113559491062749434373575471300334244975893751602689939774550695219786374347420270585293536693478643954270460075250629999282484721606700362372702192849627116611675533371600809170134381886784660922638934161252355143775981472189818823802107768262059540031367203054698926827609682353824582331691262017286715210673500092451623310690147096731062564908251521761167024044951936900942914438748726434594174696035848141951089427353580136102424636613429423207141668831647067297601604717995390274215375608788765538513054550818782345402240726619606420117959321717908219131846145208629372930574206217465185838320115488676194075283649082418061942822145733143244609530383166193042669262080425812819083383198767056100486861507540464260276273182309402424488616209206302755596696542562862864021547013396901826671014293378519470620847624227714706272301652165288822513064953769456774239505698949126627715018665794556833443813959204606098343343608786166458871970726517923555716102352515674778847265314216930582880999398879421128696112800091120917407638096189047861547645194932639635649145721125920490656760133670443459123403169743254269825000604130982440757154864790008587253017264141311869534802939530205243859901861664062392747410848966004529897099089943073490967567267739795920229716581826515000757134473738967752764081113832056631680031158520058755884264597901458658168657613841424727264739958926279623293933918510140667616709212076381695385694699488480979149351056132530726583686617358232637305449223430453439765831256379375092001826067739714781159131201916082227798768798567579179562231159736128539795275810687415544946892721489604372938010170945948376332564561204732317614307136132658142268519649920013977721908833415391226647541580502908567160048008519779732067008885791244617527034604499363492385865904396179450184404727141010385371225254856753972196135062432369350371326188186462612751014468205117279338664107080389567311177875542490979081119023498155868746944908620577849368170059104150019764289481779830174089549830999691758366645407598484880057988511712897492704286969932142428312816035439223658196611506995989592267739203682109217657922949619455060159572730252269521039699267608655014111693374892885410699239040371243675728778480805538514742098877573379789402403409104152831481641881288622451992354349553241456128146047252650497846849843737846022473499270380332819489355448061826660323957450196820837091699269419237834703162010798268195417739173587113760469893567898569011867640489902048534365806173065042285146614679397817893839144500642231669434021653851713911910771351322594344910658039752712159842786456505436138720968195132197261949271422414990189995349020768331760123703940678128550773849448451581266373964193014347264797051407356650376770917178276763738576694253958189961081283282983223206376904531248284529891713464045700581354654784005732813993544029513273842046849314479977068708487591270945989471803986837330093884757737974943224366766315150776930032250077424175778794064734866913879696465102027333160590565201050586219106712666387949667273068785980677077160576484441910839544178766664065495930794742707212596913651207800724715394139975947641573565974438661785711850887877143266299320827634894102820226232580517633667374992923484419820956428947659999199881699305928131535464987131095928609242505222603854152817804512139080677054440307874338457048204477890179400573455992754468477976023554836355496294318051260455943602089791947245367053138878021384965975354741562627942842266561346323195575972994646384062668675678686905529659518315060447510856098809904883403063612094991968519468961256553363743143600509919721471597109528197189043705660832410816935495614534794177070933352166717596060287575318560134752019224892901870680581634321204483949033208624152167791726830739946837991633513814471811277779336599240090972337329746094662499688240769171084286251038376273424747578078111193412148348444917755870867023862294509212810246880599488090993996048923080055427178475458331236559021897484706453792896176803585096735891422851037389772105641625228318301446105729978384254926368612349391732867458944459938206959603855047260432167313120483102332364679838081333722605855418311005969921062512045522839442690929902852556949682802644644433726540198021069968360798874722322070457532172903036673321418789291421223971614901725177494774712374515907217700503379559785828531322237316485002752815759709033308898945133015130063707664598033594297444437409358060225459578464085454863731709402835616989631025095463339935886145706512857335957878643911080139963585779604627227328902267880535853131788703232233400958807578093243591650656284831542020028144826502483852399124173839226866775516820444565275803335545327067433244947657665656663712271512559966568267342206425903151019328298406129893414709790779042306526378901943159160580265680405184004774179954581069173130128585560048449112455366089327088831710300798863308970524619379946462026738180577557504112412932234262331599683038696881331879510775002155549841042199181487911460605280780795383488206693412552097140947844923549451370487841204556491909002996068481815208691406462670926499522020023115346777428216006071078255292842012190885950486936108585214486601340865354617972103914300244446028157071282765734303416090229141454004196583628563120453834344244753751863876374902496657842086264584949596067271042229610572854783650549513230805086399945002649103623117582227419606359354865744674159407602709480866597110120506194330995769917647878085549673926163007881747648925248759192911276459731100628144477546855532431083985512856472950538328135365518281972332213649528881132513271421676651555228871642652146300108272449480510396464787543738799354077170172344341443278061469968859280956193770658921083123987064518071779141804488922341658712075533301327975528499224848442957901658668381932035076486167605712185795839462290978057135664853715535367094334997550046386369097402067735863910307644795745148786020907093318359332556963346243623037169644609851900305313750192427246161353793161892802878642904653723884032401278581981238141018305181395555264679474693388754938046806916886983335709336339415191917242709489121623113010919421609021360934397800920080222461869801578116647848159477854549972910495927080935988804272641425362400142276929506517137152543606744449520625672851734611086172314658386376919465577268177038774031104364097339557372496529564376748587839968413638917992442070126222114646743713209687305042255012251483786682101036396200162833232407706462674678774589200974249107312667888076168609561684019461998304376505931751853320217642489798266113097947903453214876841593025881145986910690029532614099906596351657413049601433926454177055257476848981319865086246131807932749995850085271624715777938440577424033623046371274303812114662492219869427486224801102698664404678771517645445302246782373785363928164461263431582622153660766134338649727283910254443546475093762161895643839299247095552372679364312282792938575450226667692577989939573002824807984109514910702251441003046812623646706947015083199132376230429795664441037830117709031951638515751673198487704456501865099149196415317211497659534375060361314473839214301489557261694905738989615297595148786963828625713745082951688934729562072011374168482462160685306299849851851701352253215907195089958395349474212310419877597429411184518378385371115509944484995297821249507702928371373838869383954144358470275263732717290584903214743475087199528889772590621823659083346400078180750469055315524690361636600461972946625933861923464861378140238781084402250712643864617319997567461467462743648458504106310602956525983508118133360371533714576248647321801801581713984551698289818809502108589109186907877565647587964497334567809404749260560323618036710481098496290641831155064264215889534786286664154902850269090520101522345602096296888675447231701094618365383814865193263277522720594189540543184497582357959728161848377439341112261441032410468682271524723677649236462983055473101370903591156453482733013664040997778473337366258757988217403265374548557203750290317551436206671626731164948145861075961321254150463485722529935259766191178950825769487252666615703672282080130619847550854219425781698948276915676716569737477785660860363052645923891196740516351737146843967111265395084620382572986631910168934059250281481997904853356623022698634248966569431014383978084353782188928991565657545731716449862836483199632066967329797079440827073532017465641070519180845779504212610785761137132157876132401689840059129445829458108510039393184137659119160139341900616792954671451259564517210987144526800215283863544535177006371178381625707760114409362906974690625419346365282936129701562858498653852098190450286583918858380926474176717030918437815814514970319117909833056631787239525106454007073550820512566737861459010274632896718392323886339584831461450463932902482405597241128172611137817765705462344002304367714886841934854032762815866031501797484573355173031958063886692251394064643460462351230317964900725782479232975932516834622344233660975414805666407246438491978751242933476425528582136010032854276819174334942399419578428548488358455571257802463225045432386564664829932089838702057767128155519578825685059176683704180655515995176614092940012801100394955653370925316566580826248127423464382235273128459445819473112733639831016721323404225246574817546732003356082195872794375172565663930131256311604356106155198935494906865669435400650565645997797085963801848376923835291013121418005597849133030677245170123677672446603444926858376560405156434399673760042485027206065420276480186775802218888762645942490688111117915443638329998699073907961770945195184540270764353728491870064895596376526838516320353023784250090841603307374333487570167317832612348370178105760381249499741488023600892416705940127811186230863078336867764883991748490640084574910677965734074074101775812303916498678411946243855073178663145744643776077105764258871398653017708817793401835218319403682391614743974998205475698073075229654297605351064980763329428293116473542104463723889725117647893493703236561126578979553336108878816075454795492131955164631093082865839476249998522844866364611305280459064630349902489302124350498564694297207553044491334711757590393993563736666538133183610372669040750806227278505469639342005343126653518227909087162079798168442850893616818874058332083103622120619225663404816002715592948414339469756067732798754445680068503645294970164021927701791706520218705364961644410638251818305242609553459655177311479767362966739571391810959697356164886985770146221890226085813317613704119467211403187437858700834946352946750780465874497154831718834059161220558746694386420190098788971482934052724925389688902377170908084964096767210085005168580204801598064086185152232182116696782885082941481715342401981505094569818525620634152075793883743838749111709097004555285098805560822107438913134726002341162338074826946340681612168179659839776124886082961495990215384171401093097670992135710430821176142790897445327186386392678867937441689787882027218784526958062631362643177691061649656011126859663833781195597075437559572538767907659356968858919063687703632386744439567366438813487736792834771907508826172775262704962823830248470733007355153736665032052781265288908240413490781293162533732389957212134417007279814852429033391586557419829661882991131414686869817016358951693359909629670627431538011274219781241541209826025335041994757505721761722514733762894198970143112045440022092091463532671409299996710041538567898094247576046941565532746549893449835815187308880010369814760718037694828692183637955982268864759653510962146785059771084737575053451191702298696027770682153148226836998414692854831761029114130449276329743843382739759000835004132828831049584154083240237112469614844467575739276597679346445064746972079358411983903323214513365565604686985188409784496412950324351005120917041301972074000520166874570711547969013949462853333928255878083873068463727572054988158457496984126031816852317997177520923367640435072641560157458248188659323005825375036286539817980836831007828780577733532952622946695627832152766056552304241693110054807242647302821711424770087744101856725788304964799277110320948844733709613277702264138387355159839316677379231838762583082167598062901206139773427947740493222059961305282582177505144400363799529050636693432559220959431102925019979699533631367674173820616038685428236694451796232286985104486057625171731338049910863394401941426181189971333859213636192644512782375802351433496677429724614597252925166024553112731839875676376794009002796709272542851200545309756592041760784138406904955896871571335735076930723658178970866673435754657751847501547454163462096254325102519116613550049990479235132173071910868061251323992326376363937826848244459641938097121103258012334969552334656643917910693899824495544910217941001590822216629825770024861158439590649136605355610059967016836372502434668296372727573096759694938768972444641472344556133875617824777628738158899092294777726596709004237202071676948440385627827608135419103640477061762652406085656384122597594651808470071939726524901300509235357081054105939207740001640144316757520492678602925223712519714035503352372951503152858482340776579576344316122202121653472083457760523941575797251797911892078082492952608392217708165797218784332096697191542786665089966425478607584962570017427804318729380184205842440008221595886766528240022635841611094052708734942988478391497481058584468814769457305608979758842047940224228262777608366269787884387060627215266539138528219927345719014314032907152951682245332000914180033525358373099428430278787313080323798167051098123310612799090104042158937730431954826810340926628687599666298084994918631418683533635680732699306880946544297055154685876265344350677430691789255012112443461391192016765513565521907051736091437283168391103196602277096764542966144940570314260766475151345698860172977616852189865057330048355029568405133530111152142316286444195915765947148861270943716735249627923269939904189602990416150541355845995013765490117354414188466969892235598245254605682337562747244473526036382770500324406910939573161607352864376463183197384576294732745501277072189496930881365281830062303420373472598936767550805814481103757418436974488751768240830550759773600381458855343639845475654138463756794879980633229146312363596925321235437216528796110359386270294632141581789121359617395114944250211308875016189942445774618838288959402396558230734080148865640706832832605654395732189793400375837803306862800929683118884754551845335458125345800524148821496668643033635341863147442442612395226848500439326188920900966431056366351304787833746913566086586820068240201882007772111588533176110875651665914801587508200545000225851997849321902163559660716982928570092621730243214611341944685586839915226979088561608819062400006818062012653188949398589660590739811637803223026165514746905351955512565252443998716911627814818295103410680763957266144645691900336128158866573229020445375485360437174460874332363460960422930205656321387282177724437412219607690622403677954340679293457977141980548648100806439390849398174512400935706441350628745365743343523617910292013875577080188061360082110465721857269571432477183115697859065440195648130662840422382413967319446643181027126730241810458644226974365693493012421862204165030584506159083047715778781046788642303540961660071909754214431390401642592138813272553994759516647441281242299756111893790556518461272670165397297770591934862383790983146267525191201269438554919093422100799810404637787096246031799478152734125433659065184303352802165433992517491821523895396860413781921934410079055759499389239563602208073854820974283442179349309775540753060080530011708658562302055620488442913825979276334343507682974557386789518620869567223313649884343263355204241723443489315794670864810614238788895388446490275834892130110678619302579466133443136888732852556394610670630106424877306443468198548834155659635936567422047731838704961370101075124471918970532333721289942310808551489829919771694841028580383815507031705323872472706921636841396211086793806980653638548265305627981747972106528606752418971260932332552970473533402539528559752768145586078050428423094406954466350777309036891753080577336286331420397888527858205932965696488738996395049921881970990184389624350867632300306434893390605316749041910364737863583496358556212560071171455667981141062824812189631859885685631522756990358553460973012283964525761312348538574558321143800328011571108932577085107849045909390461916908038082086646855410188282261207233210647690319045527329829917871380160554618526298872779221696018616684052052813184153747163569429159575880443659240692806657150976187469808429599820870353058650161295448690337030875768831826349664069426198636091166363070720314122891660099633325244817081472713870707991199245603170434945690546449607709298945884076161623590105996563355622412470536027078610254096347206403967135633092980260416671212163535111260589055593759928406858545436952901648339935721788154970427534370916439779147754906789153361147283306056100138965735077891526789040938579666965102859041784647092050144614599685783497581725361143892205403363314227917386397351135168187537043882967594863021940508313042619619556105763721142450562919814700819059912990401177311546570073573708373388954315451076764551675010545865835883105757276765619075520869434831858450808715566005583179754051315060129812589902741150238361763974197514218507082473822785397935632342901093861049837143032457632643801850614008640083558605108031982922265316269748772703695713797550162222185784956896687666854132699142350791043515286728222174873342745118308445346058904243994644959784344711875057843292904475544262288383835272608152180628184551467910882890338736731296557511369620739543672523019988835697778676647367695246119532999147780642843364473275498618906420516948013555679807608311194046194394675898738314133105872396253710002870763577445811648470628016895234636203913184087038180838757351644955996075035729879476040669312786779821694975463533098057476978170404872159475933339603897617592248548034578680866071348880293942115749298318754875344553218823618131008195940468976811906754727005041143227212617709093983759416945601059717304976637199517082627418689175114547627202402083791841816085317742440265163184270447184688749954451776150491064023267916620977381287065479606167666471850795572791596978871477685053135036857289987266409367661752265716280737681735565995955946313778979274883683636834884543570706386769491996790618582182267499057206227910080492328596815236660915395189486120157695621042746001433002791496089625986950545019856933632482033653341380083983903805234124309943677087518801924587274743838593235949690897944400710256278885594889937805006234537411800321708031542274607429438682592026457639255031332447450205363453825853367809596646894617922287060700518072593579823219642375533168397424546619547582443742603499788062077549789363618357793156389171501746328057820359832099871947080074408262552710215731364675052842443574066498351168332824010546649543143993977244105436652876410919427007885761415227987506398161150828815121836115277888118956835078100472461552514344038208288919005206644085926882379000693394580993051074869308766818351405532801020095659831888097013502219284416238471399835687491848701148040442967068458867084501991624084881869626327736892868980416727016872026684206860672004548016425023079906724656884389061270362619744200009639398368728071798371568655255532232976637317001315743463344697685516946103738754918819339827201896070399831983297463822838279848345644546469778986311228595582700063822207010971218016439083033728138292606984714003269207607828151307654438658146118230168855112926875658817369045179345984111755655021460212490175964754218158798254654461985780934114647291109652366846702010096115677973371216173034419049061049238593810179772415223418870749431568059776608845541611569050560457420144584940057289445987383536466984305461873041101057215305070481262236329906961371187751092801670637613378226085456820514481119465839768167314475005172283394639756317643431041490867715413504440998645319951538618206996469120156440072027527630576655824646508955703518525028215449980345090459459038769502690668872074051125476737510910757579442171835673714989152472969953387137761849265746606545375937049637713967561973558495919823738821910851404989433843739302365919707479277606462315702419284664403948863061495889872239222368779475944499048999178596733213085418629240967038768561532421657851051033123133544490593946547200437708343277322484793786793202818317326380614796949592281413004757015408403710792828909020846031034731014139326256501665250736661034893941032996912976726524469013299121013773594706201737629719662467889558749943874192283042281488723574895170186536155288167719331120324499195999482577449650947518086805402189146134649604028834454431773264828039378671747273672719721060491499774956973640258617142437043334979714791057445743092350501808941211272057641094101946603742547255707743143911004297127490288362874340937600769640459885089818069454360604901491500851929620827522148862066606023588191134442135450902567929520974849670033287506250912108129541440721259495904927717550108785870202567675409114087281381861459899117231386420430233467740611951881934401028991937407529842423675780995674414993276367768310021470398543993502326487888374970688174374373241687633078147649527593200319060010900268197925135321620854987570514271105556676420000065656961299660455280824695306108832373955356153225837748248544858632076269452758050861436958317443875841930426199619434855240605969247335225731760418201836270060787449786020634386318286131363594600154724760092378004372488333527278666864071379865629221416906365094606909141890355755707639992521823980844849372844090324549206259852790319469764299591826502521490581225545330337669153923104958602374100674630005713189617639266135910712942741461681552822212146045137570153308617113555299347480478234103230652040473297068884352771560134851229687793800548055552150043505150642658734309432783217078902057142403595124432283347290263398758693076869868152051624091274350726732956731957608488555833589620515304415455887740735631367985589027897867387222022973979554334779369537136331795907190290075577446382110400796498803836955773955238732554989778608101790665547086640844632466621187654913434747158602495626523654551396852750135270640395820055404738368080327922709038188176968795798465533385355784003180069498652866548762382861594444731701116072860229331917233037002686955572909947243039639087441278293115559605832472776241211311033780509165218253674204180518227676605025252066798722759135246413714315427189258566282219118586562827967702911451224998208262438617514768273511308156372614767015541000427638938286051235845838808350249106018804311215711542415257698694204381273033734701162896636813728852459530298749686318853462425527009962691559314789991356089743455290961351658729778403148033429221065318880534778667442354087847685526833869417545280259274452823856564071838000583901866724373296790991418430943766851838083478743753876260409705688680657146419977287252406751127884349017441818490450706385752891926343662321848615433384111351929285733915276396799733937826762288802910875757863187865048280821339006335354531669969640139790904821686374042947926890780814432053366983465151305990622215130766714047131166466554837947892920312341454900529280946261754746488109852829383576565811724930682783225752579791717423206435304914598029433502370564666651421205663258142146386421119754114670156017723845081620317157846746876285847058130494750168318219004407309028669932215486156519820917353250750360619143968968500512673742340837686148646910559280463249900962552385720041953963818377368104634466081865172280594570928772744146227459249700903029529860373968909805823543521459791666178251697267412213856547449080029375727852602434523679968625207040674507948649278042105362921022739875361208882143020818908056552085299995195771929335464084470863167548175096127093797350386301788060843576557795698623738201152438936952461042986622951001996433027493953181728744815147911351396086452449380592896018993067875926504479813675577092686007221395359523851222439276253571215461161698886134363173597216255548619345456156289138334013360967670986614881281667706958176700371061350699526658073627937536723618410335495048626767279225806237256910806453847661663050692045273956429945368417659205684189016997257630582358992118963148654460341268815923394686611187960633723114564898599828094673572823746592720349028946650543252084460807649947710867935242512279094001885552443840021073334018211004945554622603049862552779146251925990715297364894751754386815105828870659735581879673879838809654845442498934261736762142813171412663864132173938204361052569064029971423673554113206685255471707787896947451031346976985118648592211594662609685381915781448436513491949546067750799926265903536605628542215662366761018006580331712961408165627002457404822456408147577782795940902418095333789931408677190387612764325572969248050784845498837827588029416081841834521899311836342032303693274512018871155718034683608487382830725158767943611615367615365247468990255455134147194497573321733450822590111533687107387257559314053649672901702200129276995754298357413007727141318543149486970708357556657651185662464668443247013435666159881833504824884929493621882026572082278293397220582715980550467041101099337140527932099194109034510194576794528414526699940205970722583597695561713397142305778479141715841956220962321242246648500833798868808914331133928329565065281050841456104891849372799291945075563641412527666458095044778079962999328253697355485079172304674494653918897095572105066122574254593709344223917746831923560128205542520539259765522626824163867471172495843703401293743203797778536868425858077372084395229470979603077463325194874761506194743969472025835836053829902854378034074608234747834669006533158438811154194504092734564394664361001022743854899238432101373658994110425836579843941747278183316685163386707840992752074224167610068877921044823332004187774304934228066239735561995365954651556667393090392933666502760644390882271619015009498003582081447075477635767401247321203515300033217503335044161208978174337101486364504620440612156493620578007377300957750866433309309466233544123852178943713019989144456458591099908964627053937516757794918264381689214466314550030648620704614578429833352746764531292606225581232569312411681773365043345781716683505452965071407132488689529100586464704928480849127133834755469488233019486274037571920639443381665190798202571272846759358287024205983222361934673075156524061254508029541318869224029565634790925136238541315749968283566535731953112154417986236536054477489650269474816232205497698890509182805032871125175444617714387981860308921819248564044366248979131132176367362070350397116270067719453263660329352428722093348014514921303854354611638951278616440111251279067347323841574187226727407735781059866396244063525347473100055208268726984049614559283792949278880267101443575173873248207039157662686679766652561394667522096111894900889830625433383263415871672582787547827154814958278229117675327248656181277263597547701322404617428206196099219956756816443849738883486748914268530108585217541189543269400283406019864460933838788345470205830897437227563323993676813154649486325152206893354777778473267993828732111408457237193626588671032771821177881265270050025848803504225440575345878849818878551422720159069617385992389838755693327098792408829018830283823988156391513130672601589542553150121744754760337445749929835554866900906932541518340954510174745503662095625738408670370238769054898465136942467326161121995475204324745970525494982712222299928538219138793523788565132227010638611820383113440083777676843829773623975656541013924085135981939893344823105196336402938761638486717723166192947671143716148974870854080401862416665163529633392440490886802381357675776009650169503275989433834489842783248239014415206929368841475994438676425237922387857373247317866663669444514044962073386358699129657647022219658715192651645809719708013899502919054298718144367632250727072973365565700525807253323970293006765461982219423977582869927626909465751967175758104388030841507847814856020697237239161097469012260523301992673777800541353906883154912245552308304568027295778191996785888372937822597179218932365367304463087317971688265684298161401252071816422936577660397340756098457240696987775635786459132122159291883907526786126829199566323362173218496537914233799972818184706020893909244977776393135401513578543268160604147338029891761917702852401139111746432088439299554788649027781959703365993924251004476818838849480128360800326935461892817967173382493628613757333726884136356428812190299723805647236355075632628873335208767710381298091619150448051680933339493419833970800467695722648130658882780551745790284307322780455765964625261902223396350640882235180757492517020516570348161902968355384778526816040386404608217363982570667792295001612360274252326730591329584377892307596098305722645246917052960915806176590357871321526693006091349490311136896751930860284753802127339329904648979946226561214451761508422702517853004781489334915100869753231395884360439892012510732046753289794580137934160364501158148110119309484724023465544567132096754786436222570970422345751261309208634871006527605579752492996010235342072142303846241458891368036232471058840326041491052635113629562381085904488658121649419502983448394811944927968367807748468431133632430972602181124845420328017505709590441973410260400522276135432177948699527321453583751379554090516239596110614830101964134849999386648098941641429608948320440931356038254717218824457146129892893080873518274192963442372570474522525279608522760526358234664739373568746741463628459682755402152647469225313806344413576753222608991404856758208847671276922467906892836299820931714430651155964144344214855957816926180911951707175445899867376538760525284300468789068259042712392941432013702779539676941884312495924848194896307364154842925189545177580713669108157552762848578491925004696455417058180742871534920586505877499434245399632482715986936471086698011777618927189856044187447332182834867580908217237563100838050651206800132428259151466576655327118788222130147085389546411954391440841495220791828684637990108581776952118798036600059137686784349516784539934201406502861503039326951915660058713931164727546662555185890056622054814482015807635946294618403891981629475748142106252090711654358049033425567898020114355278894936461070072664478993405035611144925330123605882109899411006227270861593088311077500306772823642414994418447480162773239541514360354031138850020503714115401326138808844431084434300581637159342725112279467871228536192834021883725115425495881644318087712538896419786833226148103126651607733175567926632713623638767772008877833497033697827559012453461369332373583306877144037024469440988649729408231807248694438026646468112256514208827437223195413128666580475938464175287104858077171791564283625664293145427239762552349997836643770394403139533308034940521182075988734226724407446404401012912977968895073293243634707673527165965031159316131333984911583858149327917578268337901304085480724578330001728779669604943455113760513159422923199704375862095609686115854697623774882831329371818027745132133593172605637982491999089372450456776587262577135709666635923522396429296189907133369420538218962538905055836845842334645287673376016288239081624723332517714824390399265971656947141876090820513073108625343078225437600355792847510068267387433538249266326844675044718358924850056084080893684988760645324291182702358093530775351130060610441842536253599256704256154429693896953820817701288960411102609749629023459713143052634894170915789100443977669869880586049304068103263271552438214148242012624409494031568009770031730146201384322414216827386376229565790160104025268756435100972975433244510399210288591278044160072504198118599111718336431126382094811613353828438305229115276961893390391325823776056361823571887301542740750089470229435152633200658058629520817436407217136250353950872161686406109217627256407064473508628896389983675256731238111335766461162873258637609187690030556228395060943793989086905421095488501863817867816440535579872061570969231837292999789620054657869257150774679294672291495687837734176521980831793586823872909517434061911013388365979882022211298556903199710292064608037396647545267665905926855492186995406319863182798506385600588697416826956190245830998071783766682891095429819380878092719673826433873943496690913229669998586104497918979904716321519385465110255886536274968773053603953533412685489468850216504900592099815522175502386907438146479129121835603778272780173987851256721583263898060523424088178376947515835150937020366648441486015223781947863570911162000463306455261458670808965344812826996312922115951100078426548892973140625945339320233362318172273025550741434863977142661502588335875354647938426352282959707710831135565010317906070140332753919215702176987858642643974922495396267529572802430011627292426238909386145211889186242643433319199331168708946631479989222151274646769533366588958551886551542422932640479733072571252425533404606719094898828316188038728792590297770829297530723711925077382157527290139487423680389867597752985612864072559148413335064689186982382212011577841298729996127123959767450909916863965455108354841198836694596110726117667989473888146221703499267149021725929115104740863871782469800128098217155379782598178021295212892361116051307943374570037475919575290090700432990389091511396875489751837458069019891795616296297886314727383285472622649659278786849715308816211543837488406963206824364668848284604057496356462784538535290543469417149126890024138091319250889804597780879916186157160685543185528859796795345273939915163882050945833478893124760598993287906084379311528812552707660850620295365473855387366645199976979821697170996502679916236521773328074302678791757612761753544579455596080277554698697275377011840723912124643939109440410357674937095807764039094622636356036012898361339563680413335270342693872054794521794708821040997843583075899048182393567325337792082143713754430103870750413585921008760311896730333717492894634102047620000064907049981390533266817507921157957210303518806184236000210802276518314245973170176192623113260986115711833988265176922582392012761571593160466059775769847963812674537249144861419005691812344434515778794718207546099269626076572828899896442129905331519674954224962353404686246161617548742460060686546720678404366981041714527416743467055629376831030048482896814141879687452444955597215325089328925324742300680212705856284021655755159387625642271006490426972570777895354318394997253036512391441666656865143969316261865223366754124404457553246753162991375903913642566338908837785853323257467179428461796815802803039039158057616859884047422848540545751664426406173995843337694622058663118533186528633694781997921937092905021910524547682105281302841412949725516354957451202176007252003003455932681257545371420559044376341971599250316098241065474144229282081339561423872663489340321842431879724426239852627457314165621937322298310265442620615568423587182616778771398677385940936469210785570295016705112615380503948317775462572510635074399507892795595731013438259541765351103639784705206741728531485415978725525092808610373584760789628673708443357466940388929726249389537092947019345301976695559467847757010570375600068483710111282603198605216109968770347583960880365259397402596441537738425071794030084792699480145699627754315424784296041677814047323618443445037422498499089879698800679638214747181135881572047493257965714542783836927143596874146043188180285161222598667459926617306001230594116698911729356086135404264904961581248690030007822057542904157512006838057851564876050424529790047091740898130598893150838912245949510240013206059294366793233843013040073270019742779705258109728005027196667024151993319228134470615687623061963127827749320554165725544866529092713359158399243454125293091939815778345333503430122491727645269227286054624327612590240233650850848940890498119630586180276660757189152721173323261879798904167529977186844444655540897449294835164124270681815817228401955058857703200391240130696171667809890254242383121988148593725541324155368015242077743942202166566447098703603952795980796902485102056699857573933155001446065412530012904227866412005490576926883081452878239892996736380467891693868534473222955658909750111711539526119694067885858152081517876400003934317004780732457421063899930864205279976355529611414780180133194513058681888336717914175377564283194532265042925756281269955041320005147051467927181480466847050073637979460801026743501659140007730542527991708353820164887640838687666001063698359907001133347561528125595220529832119409942072014645310914133129819126010483691677801688491402549877608008940224438812592782915817312340178864450592189494859880309956387740269898543551572409280468519179782023472106737206058785127222701921376989683761980266014501579381678219716385508128112668414819406800212767083086068856128525732031727286003661073981152571773986197557334954525063463296928478765523014022654483277175459224475669456397611064019923850963184917136139505227163013341321115247308670057709228164300128776508614737997736848112595635490807623343639288266614742965286402477247084570300373956363383570931634999829113777166733921865505126496220194802518367844082879652846191509346655975360762835703089863683088059006737196648033913961395912091322807670625232782466081669911868432909275509575253946026652783881815131271011055705122604238588030049875162978315740076372664967849591555322865627217406954484235934174012720272731155553808863137137686413273851683083143040723220705105090693519614273707136371523609068369629289446479058754181519536691607731939528508488581412893219629404525068169630226924763974234576075546709160592700359474474737022073714806855370765356041093457403474790458368607043886155966748091633374180815474153122778338761576261504001346931694895533849082494875910952136660597266476617215872479176155115914915398448709192023256927889330273112317468737138222403648927517518082469166366331237084549575628732925390694895908084097585837464618408737661481763118157530260068300559581445420548331801057217604604756498471365803251105373181217203017384586992456016314091949931566746860509440241045773605468393528329790529986340993149098167460538763427366351675116063499075514046541570549209872843717128875206423262571987764049669204775139994158901483688656706454074327022310584301094250665011988250457420061488398672502403663227100799008698913742013038864688029458987937330164729695307942318021439987592232743664027344039136077995791651978480303873988968266046218866500488178123299422200581206329547087567835666884181948289299330006070029128122485468226987462838990926847524624500677832241836881525848543537775759432764227667740943867551269671129562044985961995890252258970280884824718458381336630864262430679610655622772874326125711317190238518917984264817537028374004263529503226888676476343232875512783113233622034033228180207170495331895928139699364953773222876861182015693163667463218392825645050415717990214852003072381895794916353274959695663956871196643897965694994321051386913017714052983638068495934707955870028218029185294599197436356548369891288571642693365864074357870320996922698032254801655383060715647244708149005914113302322680220535639976857730334689300643303325060846607011841239831987539610449456073855846916893362434029508239419258576396140060223098978552489995198584894655402050454001335657440680301218590768605614063324503322277909862726406899146310680090306357698257940359179141395159871248095414418383447343634556851994314352969082968824111857317542002603150554695399038181281681229376039520523865903185588244635093535375679620641478211993024604644683821786592608504957367907522795451599600848361931125737549644242664581032408172740296200861890899317802515835084527513385051369159677844717910129304025103853253718064914799500111416413584773069336095839835854873222720442965948970185495834962991947217308060158732067700879612773184539276628554645069826511938188569296527332364461834429809336251121564643801239326660087609569161486485869984003569995738028372106935054110365687748693647551429732841665033616893634286173554451116670347976422431620780341693882610363712159697802872957590003731131550443325443541867901898204500149903638980654148623444694859388424446196771951883108970076292703716775709901814886310411419580110274603910275205208118016554402349234758231556613981115238904399710077236532315320139968145101980919887469130416184750904026496809294616745532430394515271864667997863909412601121979114010574913975438594195871484892721254286572268566540753949712702956221294158175976539687411844983429337530677010383276670706306305109415873459703467414422593205020696168872558849819451152164870623804525462778601208169596886061675523772666607670554347320775453000961405358519454133165762736606790822582105115356461276502188133014350162170315221981382363694014628273592947839705331964344629064997095192438962477030798134264291585260838857217547661781722969188612872374671904043848003139750976100574600211691864424544802924823044361852063155899215344713683442865845704422492310871350546295888372851824606394655387514287131642316758901412427403051255748777687631426885503325097889366968421135476015163160615932666516950512351808734514331536394204699413813140212774907815156316478244309293020564421517098649410457987128945792667293888713925279652635549168422113880020424111267133382979429745600736690494842971431241067668918737974502819156704240974477504272710899823552308727950770442804306803689251893877888230208922982225040988581163425102890613539383848240098137470107349855229733090310165945032413038083385913346126931415215616240851110109887300870624535483800386097995538936119791104611423797716680165210530349273552318839329970603865371661712084914785669673842478483477426121041426861677135667819869244174471206290031586360170851564740619116386869901386052698090928604734522364969201989852612353356041828747900846660786190805705248476495976026392375381565121755120199971939644811069899558030040462821120759091731046693269689212662038120077925927735407483369196700610663457919079932116929082240971381495823240714886139521801842114555510548658548172662747914382153650449452118333436759198516358453219475076000374253187753121585735463944431208358707995178294826617295868776728528910340505310333104123746203705105687243663347196340867682720282395950433596705414733533700232109871596853741708409042667090651887048043225903195406499894409343097576505391793466103042131834249891292768607338498204425425703342323538533235466575287244330104893166718352954511045471261185442028295939603507327045020841559158036782184084113405332133882856674136821291385731349477962773813021049332229872411723368351736380379955439226445982241429096056183207896936692675113186692390222087699339181813621516343500777090501048146321311020706124183690559279711793632174073629925052652079949499419802968946942075395673681913716161626870636609487912860389855108801412095164834145362158126070602042774688382244141149910104479141319700288128162426743306766582346457925769980342224541800841579769215105260359777380314533404800340791155371944205472441167390341397265912166136654678805977190980699703384827799410373534293192290618260054484148701676854577580001674839237769433861402056442538269008311942382001070362342261667513402918604393388586529831139107639838049206941297234619161013550897775220990236457499392626112737184631961587591548358094776032846842745188793765498424706755938763385897385091915480916784309387911700474622212625597260197274800327381772064429481555817634805802122777993711743490813394178251455584314108538857971835744240409311818676276411362970291763632874449906171460378692050322320392696748648863667330371341305249520102979742185647688042170165106656315258405212144059092036248136948302024791673008058969119567850228856619030839376209382466206733350000326332116190620407680929690970100771235444224715869163278797865542556574904159026129759048999539752252957743961339951939342232763561312618260551571991360308958298307670271201345647372436343858415939748945594291375796783279759771069991279995785679409752596198716327434655953335085849315878244492642994324861128274518696689874690574526505585356404606770604768502696777193202431204664404858278586532928278724679044480462362337161279125449243471154338735349933881884604582980463732684447984190419826579141183744983411105517272634863823758931770433203122365819964766962683733800250589841064832276978316443631317131962138822294859882109420744650818946275805532068069245786048746796508653528871336390203589000478411474390244816278376666729313821958787788192479004521361390739172371282774942614577293732046512818551029690903130036374384414530525626153030524635340018863182754404598318089366008865313676249884108656390794355473317717419325990186288609227095440080720296851000800249126042837214823227748562848792926707271671741882130581299530431656849879163146279198331776026795010290830540137007043572361660701302307321731863604586304479385133940240427360846557114628648160861470128680112434835808407169664729995565324279291379134624600288107486312163440592062625447685565462754751056341234158261396647260200284239684125895405128129170791492935418166619205397365449704450486627575889637209513117039469677420747341897768642194949638971185107759383820317777539750739729351262662956570338154402690431403098409514600408478775295501330276558689221618748891200733136499672030114012368469433693702731797250567854404492216403591453586708975159718406874103990796027987459365910626468340414581646171116532531331694162748545640313651921880375671561089182494530788759725624668588502777743833984261703647620006485753855602095564917795168613781123516199870310290334205064811904007173632866587949244747131755390851696080994372375841739591036358238726351335281723571998928741976873759840353442510276653006968737394418830857710570621904475466086931157615957141494832597494987648951856518462775798188860761822322273905570640753766396917590088196226423505887329057286259265110813471422007713801366596167453750210622787809535074438310296220479125145226618523241514899361989735520242810931315080130929770914580845140106387877371203426010093641787868796387662792538305767253135694501071467490653996843657104083327698497594664886466588033159202657679976718666491832681123647097543268157667331577717861138521176290084879876977559313387402663420951341039031098651581612816185555297878880305637287821144090738664399341373284668953290949485707277578892535926918044987969931100033123640793131598461566319798175931340152343424431272098233503030134395517906124688756711557619056814659290412601072294452044990365814241775831526222197595217211783798851408903193573715928429272018406728131808309728184277772767458400607461025781862003310848464959623336547125759119064242151095217553514523353968092773277351309334352498835022016912653343991398873034601331442665157841263159327067734527772711528843049140475921573632376446850083682271549587693067688357644272460721071030374093487011644343848792289362748605649924451007208591895483252496961464909103377473581733894504319648023690859476020404611131108077961803648341396999492492560096991929481924322296750987915741150962399215365435826966942168745417771946456421629426522239276863005534139452612439549364965823659461850026525990032187040275019216732484667562174503123700957589609102813197477872483724101197909948029472041690886097638282536144268829090054231907498619612650268426884293359543794529127343619524081754506104746618962724047207464347589210141085585555906486512155679224949992137913183795851689036935341124609167552130879112588978441563281020893997383436621086867403942704470415683129844067666033795190260359225896286292274841731640166718889551976843006402791129371654820209015312631411516409980005335030004956865880242428950840717812319719043300785603189831161423493643146216186742059956205751598833433347351460816281766412225074158249224171267557408370241848654402285094101200488170135335130285157350852023998057850198090967734167648822123969348828995075516026155020441917737380573426782135445652250621813101610936318838885091681611013070196893626013963465748229269344675859599753332310592019240012794404781740179755457013029384103844319977210646821734760382285300840363966476035931035871381194171413092881158818564387331226067490557636854868870706967648442714682059772140492196347133891260422556087928258636233269312143312593741637215466142396298208180516405159225321453185267900723532911756446707144451029450172767050520692410731556999196157300762205086657354113563367157845130612689407297584110708033339786740454032905140953902197687482935997701490299839508464550825770131272333565530540226289643312886435682410676920155239043077665164869890726471524578051485287535944766151833866073556277925940466636220067115761512249953730436879404868721247324545836772717358729656018309079575428540775013328426492437193472231625323349910061793926221930580730871605127151471170597514267155269226881087525269922603832062801967406453434428322814092603783969496183407491384447724357966309651625300909206716087625722020920953812559960701903865516613626594166587267694985780420057546269943969034478994667754666290536727793273775032037411381626207639655340348196187064335148240452917548749803519874266574415466904682413891362524669950400190758315113394324593680781955384261655886325130101236640291806631234260533562628792123529063152024631163462322865827382108681406106959090070945256984334518957420519478699193238695024061253817398299079515100060908694485523307949879253053845349660146003444531006709347791144954443739073268245413563542037893734739441267749223582335639146682869837630232957497324301042300597542404796349820845735235076314649060964794943700327997446257750730492880904277429650533550007394844270708073749357343399515712505704529470575040300210869250302482393293222318774724621936857422870015301427631481137829174805744428927377574709074848198788571330523719943409976165623897821209713590318229030464746269217969560020493715226198377544228965565535777108087747258683093326978300182907004884148300363382823255318692588118660908717676117424733071671954786988786068909907403241174247219347481062042014205363883302456758137313948421777526565965794335584068927139414547805682791541131772290600775138533325875337142064070694667858378176425431704501079706432596967246382928711003545291968121760926747643958432600344658343866165236098855420890334495391138759849236229450977533492321473727734245170566945137837976890252473098843453527455497389220929710866625802811203829952721180698882806617118317132634316860449472712256820309894134762520259151418629659185967833901950236230469295614895049282083664011411151931095995401139292219452844832599925248085813369385479482009054024365714517001886897695635865789910272535543771815411924064252069342862603245596272415571642572155439817235865995139196065677490497880913326649759810177107236514029785176376435272729852225075821611932299262654095771269256518841158127192856000926492998414339413955978834575239745248522589616237548263177505963326823194710865423952780019232973614153373547483064271826632108369531088173763570530289441194465707602317973158998045918717048285837025741400272522051625186281073388038916835867903665290079929003298576890170347153830303457684961428407198160201604762262310419528473421695084620622920878681971849379775711368342986362141448601914934066094801796248041026246641289229177270618768681991931750213191059849257042377423717591079388049830554612377660558631712153032514209751802388761783392288597200591994918086323291288373811732651754766575982570674924160229740413778800393137593288713556057553950232312116773917490356706014428108774477135544427183688068319228266503295822865189279748440871658340827783906846848249865903367832584645551784972554865990518122507086776453733644554667754690096638706987625260135526130290583265543914504393187484949084216543084973690660649051858587962286155733874718619043087702389203344875503056497442202268450967913589445013649604657340150504108539160342195820802225424972488401388058540049019256564762796141124315867832191199683273656272258384876043694691221769840242969213713161317031126803698811790347919234243640216025615868649742526366150170173100944069523458941976138340996955347920530440328685934400525916138266550434014030493963839208126096944615606332196066757741866231133690477080345939961887739723505477104116725122795084053329948609031023679142677792543824995881596855768861812669634735043116087900474724796891519403593155467361758047797938975697901080441515266104679060898456647437848844261067598903971719811920303397357300235400283891946866754677727775449193685787932508516172798348601896387589191887883958301490932441534579255278321098627945139140472507052303346886474979471607673605276349211122778958635539279506063751421610422206781752190632769420187458525765535785227304354833724456260019212248240125861579095725923962166547581999160796041691383683235785744156983365448816704106533555784364707146734059753915229248894828331715678187996380752044930979990347224163358987402258799151874914658820826061843263263958445572182740041907382544001217451316020482230765226242342122510851950422986306858407753052195098715639309662185260269241922107338590805610466720960883452068245383669285945286445616485722941974263832746549523935106031549188852090670582671146870401934337175117246611175235494386532514223870525651376723716478567461989999593038359521052869494968930467462171709045246075824248485957299482226429520676537382509039607355115343294212078423418095028169800956303289637153386703291403995981177993186115021651455509915916573518656526557986488076102547712538939746206557161537212979283441902993465885318126142431630675897775905369516471930421984496713342002800539759688972646009295714288061963823716497779049589020679659316367739089929319830908353683369318732150984360317797449475966046180016978897861003634565529860686376783868055396925926381284655524595882552532860244196242522594921398629200876833249022997573684198273529619606317207214601125391206259971071888642363140860146291040593385140482360494722783031165998046455964212376207841043895436300347832623799193877893431985126948146415631055853604787226809343842482460758929810771950138853858148584237401586122121402029266591641945165794695580293987026811376819221740237374040014237711226936954414671817216127782594873040916259467230039893153206381444095724109380468295262903282151495541178617461290216822976549566925863531106854344721314868002589115885180533415583243084919607276743376023325825268214438714234566929239463687654450899081785979823627079213919311601569309627737504847635171769650050444026432762555841464853358138163119038449271184325751655107572515112568582969039975762658833470932647994963940383370014543505874940048453951930017046195592255117436646700252270184857902433329703423384294111422608077735965464390435606065557732034662168653069654521976347430238818536080960958707947444412592738180057866668752965941876040415061897323513155373013628060541422219034609411743115694177426755867485401331380895221427992345824089271608943261980074258655005094697136359844850589144165850293332004287740118871731310217844627568217582310553419855592647571357233710360731854198264231142227328640817183258179912095953139089484994252863600573660844098728917317513604080182263367898258247359233952570280959637645969753837496841462050070758203008734870732629667376734482568075250668382423402922870680841377786902283943823055334715290587726623564697582931475392421342361815303736268631847406023663731492174999100615689485552689639768954257214409502291020831889600527822946346266679446426204103800255319842021399229836449243778887465852863988933289334094501421764939251307274929442308179431430762081544931901056361447184147655785480209103996428617530696043799555233885532022544653012589035283781656637198323744335254497390114627811718204448024976260551184735064841477803403676186579251742948869882508529073498759578784145250661340637289900589965341674365386907529948087472656562072885141361717318994658401597341899796781844263961233551482729342469404804900966124834953697114144820690319524576695705717799662961901862570417547818410900469921760007616617565266675279126814433953617046961685813461497081715173999104585784810539297891149412121454633491577901043815366052958202325016903991104261061652763269049960608880601115979390066197690451168838238572556195039015566439830291352881391977369100295354057775481585617337819692707783845386150076281495606214066760892484600170901522657328997093943090049703450945119937865213363685127665087736601553575598729949439470804578399130066965769857480141293468552876143814997178493066944592582188591265255027051205245072424589980918406118200281754685861660164413529801735351631565024331774185466631985698336218363747409727240054228227858918949892842325151617270892900115490574880892574130736900046916569911259003480908228281868060255671469276631394365888078225015855476478221734803437944693321056102278933862357176110269660898670071028420664351853828986947893099696369829795983818164629481076245887634225795302928824955995027271354519689741559247820408998891481063370330822795589412541092572697889213386591983859131052180498224322584326192763252687675083498568152001389331637796757239033601156833421780725143252370787384189499808338568954439565503544668901814281245656554131358749922075664129717044679847105470694277104493830210688607882466540806741497283830366136549693066440451434390905483549377210188825742175157120129026212034232188166499101406898953550215357433155898833012720507497456623226217171519398350266843110562905314124718451344997792604985549363558512461998999388241847872140278488500728799585249713955105572050090909343021609067728367736018992674110371328963192056924988926434684304619959134652417086733777429325623982288359611989805234417073711012493162486492194133486544008542887518461247840742632720477200811510318858443615370315649411450820094041331131746195711943123884198810380071557087430891705981873154428086949687899070153892820933854567187177794691043285933242357886089016582875197136450361440257145768444740876211252590422845769080903580728928325380877126378828362080084791427944559210955944669945390106826430434922529925254575750504665407267245243019687364562916995418791656328496380928787915155442474717971450977517727980763601173315335819680157313041399597997193577608229477704920640390723663661168485522830699323288898944220687798591909677395677412326290016581878710753863505436485807215052333379024951745414519728080896902809452202759338478919174952053444204291712133520130937682695907938367134506602721519886892737078320294041491238285279645437628615899579046568786629524112943529419375791706146065190660020127674022556642924570694455314746730714901295159216386430156927009289695833407402209939863819732521623329296748799525581082645500689594726633491517899045763365574006436181909002557581341801100773109681846852711078839347292677495794573624705416154167115214143453865988202996729115917162102889844426201026270788415214525318092108673131290455254677828426228879645069136864548241459798648546963888090713130382630416518753056907324562538811478501476526457334327113308692246321333543286042618740029624791057916087225984279801883997786523075057022734492123157498553581981230443550065352445831936797373276541534390759723128400317806832570882679506362862119431976964997774946691337394841450126416803840254804599615179173187831153566091971776451337292324197861221565299718156618328516119693165845178144177723155381723213294931032358678334626009912291515736176785715366103273838701774502818750718154139195895349847108794089724137022459643862334813590998207215801713810992327683765268805532171022017568223916704360804437756508388574120732893105206927290228036001696154608831049731677218687159975319080907405868708330953583819556165345760437681645338408492266319852372177178442758124197129830264669878447819631473015635493480046994102381393068834983571504480623267960110940595832241121423368313582354841087400815545268845341920195835037015328455173336155911807895148123302826384181889720343188466095026652102283765050612173714146568916219877100514230214507765930910845625603972459410311376290724205750563866378728458127963146376882904234805329435432445909866332484450199933808847772072783687886118138956770201754565453711087392717130444467117181371349931308481846213919765942886668197934506437989448600415373907061685185986166805029105905191721507839002683534085572892980160885292088255836558040771130472724043280101584613211771089125029660344980187709789067525841215073646560878096874715817159834633459715441846574370466253027097187870126607765661609349541698063076783770069957053694809769806173436900390192895117114575916221726112381807313848039028998336684788142231528258664148626176543229975616315331888190094332684297433626799571274340289433551547817578142313226592550588888929437032628984864747173296034900019162685934210381906772956566731637557307968545814530950202328063272842727657240286660161189329068927576386692093346764182681558089020170529366163744837270172034773295808168266873660396384064274765773686115983704690711284869493410084113591565190834850395807380166273703458927186468424517114044902137991310298377866286595481778793321520355152271824564400227647327415605589265332947168623931535976450611652555548913348971799826833886520178343963177148711486724766146817876797515510409354342046935839600649936403358360322631544680998389187665148086833843315204226740378976457238672162594739914249223702649416945656916023873705324507481351139708486617426933881680187736516421661730204831694537270515175996026895632857474020443416679818076157677621153860372890586524496484110950096190389178231848726287586902426962614489576180477796647278246643665555109855638791915363158082296808981880322893425946109750670116219345239945210182503211639907551458973092068193018265594691800890294118405487846614106998630778107852385803853495487076124176320335245709201350424780433072383084235656466284840099759649653451069521113799956196647756000465936406430881264619916210807597302711539366494544624464147875147112222490072858900699397101300369455836880012839050072034661952268962989859611856996816793878896057846751293364326472766407322320449285349837803065586765558419602807050802224576574528431106026721781567931796589253523654001023086021898166149615509430754203578952885796628268037288347537324610726715996832648520545567123012116659175996252564248350405946751698766109034974194673183709401520421395024665421254028102778083027463288685548368623917416248025763142459971967234698570763523351572582720423923009541157100097251493661113260596727528539120471188230297937031698066765788608470233837603839268397862007117631587310194043395034951792774328964839100241881525237890937651923703829113223907099886069610592725681500769751160092759106874106693729740351735087835509039503858229334903904000459036070616262100722184985867160625904936375016538185888541797847977314290541737256628731736005259652216405630820112680156176259998370630070268355503535131539945735779090421527879198082824579930596016099670264961752274307619189067321417678425372572989313855149011363747928845990812845053320390619871181466910773817945294964718563490679333737126413110530274088640627895818303599946068661623889869123003513550179433719473820886401652372752328629095635228862466307378975767698061873941598810675019385594671664712881620770146831939534820544390787517470236291049081749571600494833613791405860829631659682828675976493452512628394508346981006559536580949783872308888614773415013511520806269595858769789829787627763914633079783699998331413800038647565519625157683183861950400276673260074727268818027577832512230850058267222135411123199724528983008076630225134312255082683836776946712719025839117355094619445590963697641560072098187252894828402278764169366205671698404106576630345744465103474548388841202799291863609916532716322604745102577389944303546559170627381570825879449272026917457267526215542437022674369988403892783833133518143296812322276662069031822913233417286514467739792608663534160634900902726830768119419166650500584946640954095133956011299991295959996945281901010094665659584621116891507150155845697299410362133836886999307711969281009432445463201151162641856533712795614959138336915544961421267879462493949952891013365082940024835956800759605889605762155768111846704849085169170739717368214362741273995983545826891773826186557598210946897111866728171584023553816452208694849905515575975841552475329937110234798754875904864502954583125137630862700367054324436374549792131718434454472441786102188015787091453090004764523000904350423674965014039877328651661216998650429665475722252437100218031830429213326584164854754531033181905321749023971853203526694061225268507101469503992901716971973959684632266488200944113425011215354386654308969647063119315135438018645113630862226922135701889324892632059174653614374118858917443320885265037400557732979284718350933830819557773484090299889381399261454343841296556012212170707142775204507397609545498829897295729438501840624493396624520554164026253630722610699326735505121436007962568704228078130459098581625834265591431603673789633021737921077407282824751473632682371752510801781176648487343678229351995653379895466968362380144581160964564429296697679009980126904144363074287184127639296149725599410168690891044563534586602687584121900697956879537404515616416421805919398163013208936644723792625814524299405927216339373747386541851224620918864177320549505756405709182515649852205406434191215098596427285624343706934702252749256172635937148594506373602711762395999603288334041212241877693395025124176246913471921767529046779068740984131217526343269933505428837812117110324681862708986883060811590965323336976284480653448236788135707437948709507346922696795826588838940555391560479150484912348884630972773655194913463040138958679453328246953536240613361109013498223540395904176980564113699280898499620552857148632387498323546983533565343929357311104926941143500170463212828778963779418017702046100777587109454602137157727743029866435722411704629228591881089277301188124096931400112036540549918633624588488369070431393785582690610667178761987664522254734049088839652280196542922347119165302503496679329891142266968270105790222532015794170899701155230499425592687233529516283556147379087082780911218881615430959692517560295853415187345504456802112925688170187220020692859229814380086284255922409301448606830623275395022796321905719517181022785102887578775681012032520537602605712635109711854596734137348139185382422667813494680610785419185395704094543935946284974151521395246221604998677771584373945023559961683723386526938204939560126185712898411791249376439051253704868444831478462624755442742680152040110635274819357543605579609134488309861678618327640281040484081574774271587593830679894848389005549878116263962119662956718280424985710457616320230332609546102166239389498802297562833752999397837312578080071772843129673855704655197270354565288959775206552383463415130832188563092792920239685373355626219762969255215384356414374585108781868377189312216586444458246218718905711808223214116684189264307142963599410614635458197525039828414190684943119692680441593620383483632725257120564526575266005739568722681212677586273180253219904396096505758091271592105087996726246572586454409102301959070823226901481041647913109137384220959904469889386943467244529770006989987176664469956645949014483015100493622308864654922696914633082631621858117790076096889271287065800661664104930562903254728269370885006858290690863882216424970207370115327565890089113873268451775396485362721307699968010333350152542687449173404232851535025218301153263146674156910622878470897989445004382174257783555612994276583344175586425035303161106215417021421325517932841551532257267579848046656444595903845898448878474813355631365740058790165529510504924823776836704814282146969822958654658768633977729646047713503215899388524969758522300869256069787664884968284699140345919615825181618641492479477132755347753635025582354721380966903205550680721264191975553084712713931528701417162295955977362431937094648093984993446728047002409447455109402168810801411879806076422304100565945627607557495021558497196716940938433347323334595073492204667770322439099393683905813184152371023109729806063339272459023133025086762783694111907054628954993389137585638964880765408430632908031798803880195366341289476794929757585295530401014538103660007203345088442957843019908181149809198844024321944621995988236193619128390654841091499892456384491403920008721025062164859936137261272998629511885424441152254656475954900798669821938823629338263527163495307580862936440099297697445546267451398724743305841345990314260965962531341545887108107957816239601369837385156450030930973776986759806409528911879993119289328812335114819882018873288114926342548380075239681852601639687423816986674737920636701170389931477670680218579413552377597195133213261999404789330790439523827269679682756560610269963463202444258459232742221646180034487362473468266101221741494300889304679236769952369255548076269296499181714656335214274424411918143419661270549253580022348760329191577732590974480719550379995196599138015582261320621494711533319780886666162876459007171153071389032181136268064201129943745721225553281022560935787621465484802854181888570779724780983221803770153422046203121679667740637937107025537464737936539182858998214493843655229585558099011107852499221618534634797993678345715463705315751676200669087951103196395144443040479471758591262255789876158575148504615729183546581461742413258367771764433938169680892998038100370816915095965361273241189539491011392645729089969092855105725139195238410705635614113119715595907405650343057722679260602241787427315921080725327618323636337088787074441185777143770768882279740517243176348398710680611124433572451356790183048490635744581921974657947772195726506457610892497092554492681418049378554548323855374095328791486188867095766818319460824640272824976680520763507157345880933463818515035748257267272373470177683872733671636775803143838855504427172969662204353819475797833443169281180387567237675475942494901805197544159858356611743094161692677650148135430833309888286343224823048532520273731022961904105333791790224791753056946704290464329980250823974414495714029114934498763575662568526109272256662586733289019498220094296936526781385162087227039614837005750422553569338228818124913797303255749188832298582973172467544842803592078320430519941505255634367592372527181501231541331668949034773821952124901344712695903427783019261602919005816199424206338027113578806108248916108637075179113209799149228837540083263088292164609440568292886373151039432521405589498585272252748959271903018270484102077233602623778705191607313311780700609516511546105629772865112776469558420975925883218356405157903166688181554043603604431323059234918600847942678927532306305628498679340700670778042902789778976590840825752067421294526291003493124916986329764542218691098701620106312286042353017472287428361979314138080803394052369817952618306646475267497975332972070651114389464838075812059794109043889464791702816507995131547647511962975446846470964367036557864403774001928164683448607083807539795481961970349669589439017428081216454841395404005342741134643791131365793726323235050764588001962885017625485493137815313263815228791683012741686009678710756529045291220107517749975030929727017673775078514407849628773330686969110786465605121819826102586044140260453514598214038639659676431073966107684454648431357618621513226502731540998957906675743631786248352282035445997939649203609610734283112805114008100368060701408658182906518628909914658753703084958972957646370650389475575599790823728071012329275556387312076563483208493347661583574960646078324781407555094756005870840373332820050399360731318345222708527331881064050014377350934024456154445366476400189519897237178178741791019052787837034321013397325808811795193146696456959206506914236097326858535487095429424244671061862357855034469327020400912437958266340004823732073162453466712614233773036336541947414979606523507950591499474916262850579505936085286091449433381640158421167226609950825793906008547263944307452397494774496997631655176005976797234114073350635369289396481420260090063323798877904636802599893574348244817933223111219546779854753457225116378454104997977753380093827599555956008521196082332100243892355297293760880889335561578161963784272476745276166573114901348319066834565029101165773442110010008265913533820661284966647895163321615434515008124614406219352146962054974428302980122180644064715292918654267101122563393604971769552377305701410118489177672802915898276064687961159669573435111829913378728008787639686978020395417985137389673864010132176330259194634331684070487345513236504887087946609893396672468558847914873763217098232993451561919790671101270019550207388430936210143843958623105930467335087408570660570780326193416781274865569647228843120833933958790429711781796915219617821440546509793687659835717676206589088637172709865165163071776401998716767289210195102205085149682638937095619875262771473345597148992955035041946972334614352551476704166911983080248538066125717334101571914298174116318809138018567185712241285658347927610296585410340764650087042358455930277720970324173776224545868428121713744515062543641817694209892858337482297393142925964334154135126067756450526636053489792926540659155010812912429688039252813893069808704663069411017622357128031749518654344916019970298773265100908996226873171455724428189917151473610931597613246377430490382062660516630460330966959958877759342438317826564801819606017771426128233553841381989214872030974525084772757128394617341213966147600575183889053564957593468366230589865911200994917712201820898514893242393977838410482684037779528248626885137844094647100275169053791601169526319050493376329857366610715204231181598815446244788019582663954765172391489025756447865109598899550729279402679757582539868853936233340795910921355928373140113260941293878671716520729924732498080190141580400640564376852505796517699112369355996660927464851764793942425090444872151639825355432848928374109747188880596817245286168457194993751007654756265832168393204337335154751991492685682628148273723744720626657492268404823511196974110097006018327654251936155202264183418945663021852299198136961536207791842384953681261893978806430006781091764863393980861822350246320847280832462674970996360886979606770969283534793518633200360600451305532151848557470739954880731264991317995765194391263840559817509880067512852998946387649233798801542858544839023450909961556245546127075154532557239638827086697570750782378676475259522567291747988294299929355001224964751930093642359240166596530828000858482150539828462500867057188770057588892444408408854745385036993861427464086337670827183480994860171986768782633545185705582179086797500898033658855888843188956181506117262937526898353976972137346787249055122861593229999805091944823809900959952153184750558123626836955184012069941511848878197320064779486223966067218648235363807634847911499993433706881875094170582001131980984796274082578011131406290687497861730144674838892296932060318031926198651698991544728021943528836713793042026594600119237164622191013220077791540075744316788951385535368733302805401000243005469265333492849388474398325972315043366736943408090021702100128683488634650287382166959184418754275387844867351044734448768150685959633406883828052136719453572045355395804814381530261693968150353857063941273025410330916563819575092402666868510670572195016912391138499179865073081977414576150687528387591810492630342341386818194717692044667408740176293217471084134846355333368737720209982356186385736231057165543036459801761475141572987079364614333400130253686747866901166266133954823737587829651664764823380414105752407760803889814060780789609551468612627275244578053958728428363438039766016666882197054519302963287977013776637498395508149368351754230030840252557670102985605666636826790141848631796680296322730426419987691024427729119133516562567274858197594761862715167309904220023433476545619441705795940915670599976572922068651279449458241990240406661939061074020850149492960692151292387000383794526793552718373150967076449783499917963573032940616759869653506935509305148461813157807890778176183992487566636739385034142782447585521924629393128519048627907509755633016198721424294107258553519163097245097621240686909422533825220973698676906954131687809639730211691002082832392310229326773822820089930386924915236561777077120097380043383281885475282355882369046536476509882273586597086890718292927063155939863456976034240538713502551400538828792948388770872542203077002761440461624044149966854322566679037422395340292553403851321149399754315449027820489996263781701251381281353050550480491714620686268952914628132791629528776443656359975809306646765985077246317248787081590090704910195101083825561376811478429707975585391926913220560666827319140423837831289471558279788183242719358429155113035403687560511982614763970695111419184700948239293077812146530357072633096752168091288602038667358624123268816802945078503858135931181384053396982357894889059192233046224094601941716974541428042261784824187499940435164965778810207273306886178168048840748570194590322607842416096960117756302321611192934866511757028827124030456624778624125545940490935836109276329224658510269028855430795412989943234115235522395090513142812702940411316772417195641140101656992744454834327992586968188592667558496114494908907077872764515098801304982785474129309348892081706009949767417265207821461041545416671231984248193396753442412918972119931192355451980857237014372783234244654153845093378245690316288963828694822010149308657324429504925509907828730090679255196358180379087909083743411118092245553632732565855163630092370514084023789378473246887564057830677802598389547108007341746774561239930128052431580943256088088852571614341419942293673435804744690679246243891073679981974695166267493241961948106596347893866266767266864299367863677075946588164052942290519372350420147211632562099178071311082348740485688210973897790309779658570731247003994795107033260593439308149082137079707667104669232773587381900738261248020105284677439560695387636225199294009404548863541669948819060553484574945653458647597200997660033815649780597029749467376829662746921950187022993597012676376413216697075834137966834561912022811092820982415256293239149775910203493250470796822545932432729821549030858048320717147596757460972213194081676768063586236653919177193773376185718322396937713914416703831913320011160288578753834782064932787476303773838078803949339973596199740326605897967901101660019451809365388289481945317344687377544183695127048781942412557319789553534243682803382527952042368052744921717210829108555228452805244188143490379248354634682637204356326127904410614683038002944280713503782762139874265575319342808125638680882519246760339641475089122035512867985695753272478783904030486102082332742677678347881955485322180111934119563582338177243771217340415534867379164721350098300823720669421346678188013486040782457630650688054300514869017819282922258174382933876780286957903541929289347685825240093133258265760645681542758278872930040627353050610378363805306403648843789902237555882565984656375324296533127757571902932962617807528551208347684591445342605128438105169071330719677361384823693552027503102094158444762565171972844644856020564250546364461482788567021844110714985739536576978097061941296342769530694956817601374224717522750662732592391265314403620517873640977034327423639253781069617973521504853953888414730805807894873169283654558019357548395377187827591093154218379379492823595514140656812468203897655112954988245094007069913660108357896577007310596092613064603746602928544287134755184622675768262809368042180583702403836008903965673141264368019091733103714006134297319741436679268836120780951144080988797719870883472030276465639515005620107279228244484249251171216040433021624964273100782745223597666144824624672217662373844013785167320892687550924131663045169166209051977054005313239153230033229795201149026677482242848420628007624431000526274855588160719348930614047617241609190156826131900351761610951569810678709767937296588845787732278954908372668060307584125016073153726401129264279961306038270362550217344903946505721374794129694892759694578371555199628356383581642314019895579810239907378500694773682019633526576955034587552422205099549204954569796578482624620319805388074515365962363968334883865761326534101538747548157897979190548129820796208399926236757106666343862112063181089736419197337464515839336232898049797760631449264839981769535909362504676162628420543200744327484212592610902748473354614107129056145341792281631596547326551715863366997518187536357447664271954109340249606703824533114569087459428786499760809561874575884681525636689347164494431746835148818669684841859561568412040589261477349587351604014074106322289019863228311537647050545886625651134122107288634018124709359955918308646253863762628526640804834685990920832553298932134345149090867249291655295199661636409606747316553939184948027283475924699365383716029034818454397113745381856732258292734132644453095789001785156964877050913181725037095952706279216599241196644718906144999979378281878384503114342569237271663764196323567785042775711277172948119420408000213004768755674551900783860287304236034938824733713776205224260596497561311420083268938123551481985335989174511945479413913526338567660900990641865393831736170334796059059656995310923606763938479032424425986175887825325346104978488200777193551847357342558205296081226974228150512593113555143005914073963087686096230602144307956075598727663921297727217352808971378269986602136562332634177017793839070055344933543285554869134566659177166006124753032799076244645716368911612143105323818498004129202867696210256574784693615362315162789686116206523738541789761484725666845507451733040474368719070860913312165439101591290496728113473714683477494460426780593729983992156817094031731239113870296873501051722577802906053169201391318927392943912539686314340438145078335929233132369648853058394059329133543445859979692286203247862009921243562242081164357957690022509834358456758078440659635196920899643526034402239898382427573978903611826874957276372975739788730137375678411881429340898681088031429084780543554362599282332067765651025852899730926896258264959215057013696357229823676965650283447074999713115667925459020777993936276865980247925586844716854660046810547017316884233828122293039332047808013012197239878404388141539253027484844145212118393250064412318821899787367510940280180989974964279289442698408259869172330699499163588883695939955821366085021379333760191719654871777917929315090463812023838334375708869525654523982317060786533786184553098056167671976603649908577526372271655976443631124022973989374253996322805168824065082522959223973423063276242447848014656451736080633651204408975602268472998823761876167615584313428880415071447929152995907788340503628268656119933288614419251137629121144596849673050517862140575815072409552739643503579366079575040021995620911149256652174484170140839041950061994897722818828276040167528729654986791905546708086391205420500197547509598271440612640623018033475338312364221385980653227535475108473441561619381960659553373539899463992523169376154019901433357999684610457378065951512845759613772599807849542493984251095097136150396197949232164417936701802284645408772820554078798257395575775065711945839534897274130070230353578775351819746923710353583963522480438133716205820988020434324953131335949115623610297184790575623596329481151174328995456754850842982267338027949643274140056824567885665864779591338656582552407994973021459014223652072790872051477938248638177160173151834877359188133361798328462649736822036490968164483663176402882945190388203279496842705849823300528999344343152456566278004493980774599779688842386488904018237325925816235205620914032045530797490330230235464027768997640730352326711328759173712784478839520353078198959832672155669238910962171118613481279203331818634546219709176880748963236907221601192873623889101597616236241459712992540986845871680065450394680357729803416208680348039692080828659701996834653002951453521041455179836718188905673710315447488705909500529395135874493327062076379426764061259954103711293963245500794277768636429616557807111207263480980680939083106796781328459485320071206906230739265747857850063639982234374270950148433464934759193784806506214489899549034804244245957772297557223283359990560817398772454068237054786805115376508287006364180258797127397677680321453490469997994809316921486661164389459985794250898347671744750373423960829034514678031732387416053970357228924365078131333678006416097322167185129346608482730572177243383356643824924365196395397329301136177689837338174037345212377117662015930590713352916313967006935189780516293846221689079642575449391912624259124390806017231966002492702724400025448886052087746057593541063383281277513569164105197268518417592645784923994992405294078179131348015271536985268630941316095987419625597744987094696167987212692977990530270840115354638345647476189172228733566150515460437009757022456109645318408120785448736441801265716062813578182399054363429276767323359061254820254260461140372419149289096752480048610496238102055260261829832360874016907849099133346112558929071683174125195840316078743385356485924709468844771078915451391121972625148900106412553647564905069015681619216791944748033384316590277991539440641982805758561528237950510477285453367731133996756827235320280841638771427043191113545135734466443723837565582414167186760003156850941886121098412488372936816155459515780992236450500070341265552622215174115301239177125798731650386971380166948517348632783448636801189713230112872253296381591660977715094580217999665917091940424037195753578418331607464170902332043842300656376691848958464869675704928238859798095585799810465653716699938520103011114728798583631392298879127359900911526645144093365106687443626703093602417580964341963542672668792028654335200201576841949400487418356313670337015175607959029985637012933442392188853532267948606568781578059143748638586550922223239240574833970260287099290622806812046093564527776060247660086852327887408113232681343726504809133529600078312842193646925745713261173287455977130920551074226829500610035849484714303085698746090215396655595933242729483075730802157389541070639837544714401179291235033049369825966524275959523708705816484981307686207910676756282853696235476916669738772187128571123453875393185512259846598723584241139689239871242033458094864604055759996515406715905467729425483522164522841365706173312720418704841960754889437077534170792930486481111918693530007034861908987041089038970546680235933353666515758799184432935117944352539690526818678582801756504607096543220786674616227669391864441717413190109467833917696745516005648443584860992253536698761823393371679105547673721108544087151264973244617445774406268289601802056717808503575855044651728137613588963142956149513776577379925667519838028392675459502429942516636154977631840238143261716183188394225615866095161395524549718603590895919955569779629172212942833385047781182025083335980785564978409305647666421247287205252575422381371101977788096684008134282704037569246411068039098068046495363457706623045450513504909960104208651965459102168817439573945096736711949467104834421440694931273476918635222821116447264855157037037401339635286680709889817168347388885725100300850163871259509973232967991911215418146242552137245536400069906068005131027029451595242863981821690211577246823892188585107130094677440261201715809569000628700048006677351967198872087504929540340851866323292270755709469775463438162455875838686971097621848231452143199424544987294145029172450235015588737501884351037896736807923100149410308450993582096230820184280757445174888037303876705972970863942618048286662010541145325687729141845872093030378101068109450825969215155894019986070852661558915508892556038886264684318836426515714565216536174049411671276506630412602680290781467779821603381381232210075234731999018431725578941640341053143127713019374063979072721497508240539636173529308320506446475229769174698248615054142543426995924232641059889499357308160812098422929461414282717417532025165081325300368219881371534964285625565324275051844329260145567508986548126176317690963407969950418479985924270364859723959446359445262940970433244670340079414833297500333496133029388295917069744992523005092051723090065998480890436856516052772511568315630123921059016951724744905812731826249798827888326225674174910070532698541600937783575931132027715301267625279983022426721522719681738488609807944774284921848248165686928176197077890512401863504226479766851378706490048809725753762629448830485030405685450491841349176015273063357591439277770454440759529290424424944295479005734738884065502902600661755543745644878953955369143105294632418139887791974603432135090239790957827131175513534923894782435680483370359996624774856281608206863957392634743200796236425276320682533778935022268520680614821889026693213249731051165324212373353875171006900850806833163218084952650088274390848691474934210436402429059211184282749134145870916423770301862870302591956176242120076522675512677080959382042893548794579588744610852344509733291159847647443810181302116865410593705290156334118036047737282972515937488010884790802633682026807603744915071461182340769810050524375166462085636270437727768664742904790662095822971146804293787007113593120666274108666918792222230846355664630088927521501859802336349049210448755400826076038346374277179796425230920500490415924309136253006219621562115070520926413500407801952831639237546261449037144921223207079175331257043250330057787585437092003339104396784801484868116800984760033257830872693795726264790944694477641748010224294382417957379545838657407920464729987221329252648824180327553765908074448145307675706304838993099766388672910919874041361886517612036522018793304385273380343109954306687579532275962148642795733555750018872555054620645350960921685528317739579297482406783211525982498315146391939056761845590314820691678715933912353292390073928093084708636056489218618743257020283930469899208135830090326002201393694262336514757080095743688194699207952521888117179895636715160708491938500415571984960503914703532710627078722708122180639290280890107514821739417713093550595601920696445802621786082781319110877966805154261234718261379936162972779138909867463020751092661548960487816448709655286099670134815007223700773402151070300415703102275466115937004151660904448950263550107784575720518042898371886186232689786427285768066980525963549295197136510440736164648946457968732347144551940199601048032400321890163515685745566183872740608826825773270939359854761799597146129974707833816711968835351873050168261770681033764251425918255932328499637175855986168916356824466265368718620771082954379423915737509527339993183079354612347210863676646142183745095915611741263065190724131528153686462974897830068547881878402115773762570578827767173887040728907594490352094779612738265657619525922389857124492157379272550753358165051727615317919703842663714005716970876497807561871735245547196422110459165526686287368276102898366464886158686423784337572388043253760502330274667159806773554305796567337681425316512708197109573902534287483597810985359383192020638932790740792936620056430464359434264661490890021524127531227000575057702572078044690415099413831171670908182556494617868771959745900957772287818388980474837436322871004897835344675763181066711235540635911290228837765631085316959261761224328826414542974739927907108305505223711563565023869008511233115854564303444344350125836138214834592531192178748402857792487365543096236780341294318295490680868666154708972997444651165392133463092274612425577184801142947128890906392877205142829524603281325164160064550487267243602260674632180863407536288019684732953460752058537350412800573184979508274129130798761795690516603064571094003374289457723256073440787031055107503373768920742303659320060243881700170022887689177612848571531203653591948086499017309215477522572602326423763644925049542226307845150698628099456993815302644346619310678419035988464377763724668310609802486576117241934729110649619106451266774690479420148732954769348557792165693551733726631913860745825446543068883931997645326310838127371542785336911063401264704873743808858966029273927313075187543138957735796436843187013182886847020289349836795926933459138913115599262268743282624489687163277747503217661367011298457307303256512999637410795437969046401901084588210132662120067563002569603584402052371677598748626776416555119153747757287838035299694387356824315859983265562921026273729601506172449161586806860802131456294341641041263963143028070788454395731189712503822937295031679821554856408441675464414730611264738188588749121442790211679060519604717743275734911473105814086289854808937095360112615577112233641788358030418391225086811990302055577858120155423452789945382478177464705041721871251984035348959477893313616791893528958357009216831461274963445789603385466832263878490579807066001667882691281100378615046717342528347924942526664314743198404593565753704320114322445280199976167090925663224662925021187904088716028275884164140482302302951486876722139391417062201753592169170279815001592978583327855241645725643026274567568896919031587222570341182795835293459323566602632113437599419525262618855137254909980466734931685717816474606316344854787216480736806594954635870147856146334218109553924774649964883829901313858625923217262537354525546184960439193881590019537718081783415319687892438134230549685141079499770432311466727657723793742141537940961530882562201470116724900309710844874429496668969172626430960900357379064554876867062901906683773882677412959680119323377484231186493461553061013426440508247191835652048955898972161288340376424103362973525067839524234678605813087806179411156107260592110167065777560800336923174855302265337642491094195569413539468903385013008297294695551643754419606273130312965608814173325415741828386391998926233915193661365979958140517241662392021246619138627785460160789168012302108880976529110188567166355404099797011336077764528435050938372403550895046456207313045764032612410718377384204529894404404868842461938517063981599084189604072765371070655003556369439740573237012525336197871375463124598953705223466107543008778367246235202670002816880114961801145446699218173092061428324104184293065782902868273136442698585294737436102280060323844935757135851021213625293630555922175955309348987033344235746100496117076786790249498159559772019365707798199466468607003625107753376885707432381882543156017057554505451566933197601191062226685538795572922154574099610750743393940997428931125171260760506157644167790977131122173160966440852638913645057044615025321480028734514256273422383344543205199659182587566980198767817812424960074018227887582907459962937666349735778224637646976980370028936971766942179170780993199958544275870613130067822300012500787956564291673951419334552161025879257817220664392794646513416875738108896800180591239869905513031241758060097787597752243075304611699879872700324117043890433942156790539992736938533809076844650430192858240399099984165025125096228308828684601591939421031270722352311400228478528519255108427476286982930326365504565962537580643118405308389364645999253741489005403516579462301913963399488884300638524180574572172436103475890727550891959128215087181853455173818448221870503366958273010721878853149431758640288099520042100393976938493201911764762096702181221077150538124066111471794167738729718874189094166693176774703016613497122830150622789090446251715894369136021445661818450316376092543601990643324232357412570874997836351685473063738249517879712521776342978386834021285943183286886157996940759798396855250263341277546723494340726571076093707093161555264981876182321635544665954689165227298939853097541659305250762631549847311865765564918435634950348679311033594181629884424075989545488699317424787925837254316068185610832299469852893349972461382637658460081447488889017663329316807573449458640534358759737291509464761789272194894603645860624088939813126265485790282196434486961615087460204592000603233008973313451224345615782237079075225453493349825565115037329828844203325760116705347976940256937542615113471937306963461263697307482574066268891965749217975876001296415931731222344736337867469148431269422244119551028841098379850704937449687209801691324066699751503599015402122258232010524521981637495384367672575992744576322919486626014981086274801323615268650843993132037624653759747161718233711834152633354437319218615011887486438723280862171205591919113201659916620277624036171989702792398878460296635941961939719296054818236545097855917289497439580590428330939938618367292371214050921787105892907910350391945210629394404616779600070509580762531258802282467005695091953750731743369564282915481157658908083863972311210430327624249867113896332443613710681627979069525708051189105325369902383739849434205541705980493761743143224914521651022401179719116238922713385273585376154136556695791046047532261225069976075444965964787309676093734016830015446274956278566161682213621092173652138903137118849426651432265321873503432488843971743261890263832892530257468274454228066134148486637310445184637372251712059602724068471651003135834501991256427283428437135496366438675022096994947506706819530703019476949740441321584122841895431524703113353293791635440876943088399743836776139749590268553422497450811571111530703589173367829841493625359981318324070803116552759420836620949713294937179862331054971738369477561068960469802341559686688752051607675331246128143162372785577185843568392729017508684908578739830327130115638045452038320704449640652550735052693062526968078034192074730259788258415740999393020799980404910065339825552144098026938871915224170166463432334326791147809853535774494883456920260788623848312196536195463350023941667114026708433357498322279191926250040702752219012722230895961234620815974828063074543847192561228664145968315669775122251368985213725161488392895511631718026869595593719474563205507170446157062938479672984569046403272046100557364646452479891894547344378778402914886527389899837566598580468259025272284079576618634519191731933747747122652297851663071623356274750673783166068672859487817806233695953413194177725411998440280026012547684414742097867751634333722429508456953771213649392521470932710384945365586945900086823493176043144079953818767837121252022255496774521445389091506345110844348202424896373810979602081938119911234841206806852659878594511472518803519230678776656515305972912158473702721097760123635821706607503278021383375059440876276560824101635398857709525178241432676199823675072068659626626810169775691208679800270644103195971780585622129482799562605007383664412974198243839483428001962236594811901756032216940275503700155188879577770037168332934401489307322836977971622141185812678431642049566698138698115328661578759621038073659804644781749792256293302932737145630732687278535116226339768023591786091154581599441214078632600812151498444001795860207090337083908232567411789418120608160096439046783788686747415550268125400393704355591713206486194289894627920786304460411082938629947807681138228777955141834819454912973519639676283600143796814261572494970981847068398629857339110511703494936125050330051020913358624423018788492400949627619653834995446172354200538152499476254288906077538131950685012225873830800649555878330436922979419944261253670320367938862703060869434505093989455426565329186596042535296603830502429522037279511147924829511136309805354447266529165123075460917377194690827298899825076918290642468021601343951458959412036991199049970889111539600516487529838454242558980618132758499379122247705818951815779019464813012560957715557063215954505259463863811525143310322861085748972535725139356750748359521570073210098982689911156598700226647856000801565413813433575249323321295214505340441544519342131984805113198148293073870325374650008609089354732287187778435495522759123771509971300141223887417287718525422163047340831906144096829522079980206413922682819567582457300738997750719569437996878833485984061467176507211242137837666568881300110142825057965902919181218426079054666361785355528990445790217713773498179900529090919101050492501919987805747171675689657973108158519346615472611774856726843644226378601782867499106910738564182762444904430633716894399080705936513661674304839506166088264335742420868451869060443300112306588840259507579360433804324837452551812983850479281533931754308599328611563282200414222187944687908278625307375788617660231276545862599096916311164188256374939857485834682383646065567017491468339145039429222210302956825669050343921469891253707260727922963550043869598418487739370220869951351453666989119752658979563852121725670781539050789330811995751659330362546424420898424655121095569970285109343112641620295071020512651147130254241340706903542103237160213832440879381724947177383319022514019208187294825911951872563010929094019227844403614949612149760408532655482982997721417456667608559715790873391515331205860629893605108075375182511774384235773611898496604409408933827413061365142938875727152875597320652531764052494559624962024818395223498056095585967106503681951162532657893830074876601237504596675160576515281294777474018251416649891828466466885424310565672787941807194208777928059242453576645306432208820201656544273839452116794853960174158686641959337140863086245167732905490555503491446419894397081106278695581378118080420598861440146378437346887086443527245682381377040175917261231356029232131615534292646197784037182414993627719234472855773857389393303856251277446540723099724014963791787837292711379487428933849920685093190576587006843980155794485484992079198328441228828050773361960280060520244509334430396050716795636511469802761832571485930704380503135783011864924188865714664965320234629024473522572387181682593432746273993243101021205844197663004676031127649069764214344319165870251401511022876731736563068443557941717132939863786472057464923769304285831824055695261663311982518597816324782185839705523524089458614316481149701092881652297842004036542160137114513022506662720428844215926505063927535316797742161587787691700010406243640394456044697149887077184617445769595537538852098056859008230550598806856701602724853532255757041313365978325056147775711566563254973984413198309437436300477892045925122110918992288286252506418542971832023830337582459849834415150051505082898865160797496304230025755835287847015354636310264141833978997236466683596879678106176506738811174125730392717894499155343724154347635596251176613978947857090902902757390898238651702926366891279397539115131106125037814022979022201718166356650136837102271971467879564313922723516525778428904017326256355673983882434865630474456754480557860183756479058373704290494229699533071008671313166828092067438463880959609987666225151723424688532307601389862473341900168043135394080880189795321946482177568799431304226200032886090708962914537694288976319934622759961078265072871771441303468608119777194048583829718503976607229668598377402066288996063312816252920103151181628760953546110953862526203973941771026798174769463478904433140685588130194445344563169729675059761515555030161704226638546817620044025495498419961424394023036636766098929339157437002326663377534346770175661049979285365555473378643853615749206918137718625605709404786556925580546876314817141374377047452596712907691326887518289926450509059144660150048344366630572528379121289057264720241664894814804225757325024532818898643882617128621828130010405360987367350287489173800170497535646774100561702542983498604537123212586259790549264687354836988515829716180009444305243310352465269932185901595121467733299713560893459622033383124831646225289643304370184072328807858306370481499428420264490096528951782144733987771114702696106052093309778013471476901197434943331715526984723883816873889181033198954151206293211475779279264975269628862766892468581908523242234827421483103902788164580193313080293744923324469688625557884340976802227804019419005835793310113298539719207331741127595050094755666063184788100161143279825107812902499186958176729217651676646381381639333643555255119307683138080869649379725017004636247495064002931487655353335467307827949424188094625675457619445463760839361047119856303640972184314376365495034247099140333441550011892881332057758374745579788253434578107067048166091800830045836359358421231129105737695678660100212341829923428993699143593352325349775431507353439078612941741189443803287527535865034323248181759605274660507746213601294663759329100869320805521631694092755584994571409180027567293834958665141398700109398212217609245686352667110651484875751064457537149549206115275846906819825632167413848091943056682953708088675122433265312718350102328348202293054135743375500104414655637483319569138846881692258178496703320772469200792613509151195925419522985196778619162173961456800793742258191335103217608882096089220847649050278516846962833832278409618614308973362472423179294396906402450799845914193400005288087931632671551679100310270448784044936560690005788555997129844398216572079582617481180622186162048562377449913034659505407287779449846215833721766192348528664976768732048874614439545807325647599527803278086451081928090385553693857098265012334933805461083912360789452882324994804678446425462332542759938791673711426427195265047350370664371569136400708713243189117524022739047736990495175845219937471055677090032199250856510331081680501955471382891934634637335576504756288883575040347480993903658968624220098655100283882332020026935830776379316312434306250921935192277400776763449560758687783140028798098659399076681251993924296357703613128420143980722125730147071634714228839783335014395364662281527509702061508678278701939294467951220823510259851903481987075067972970491894234383609483831642729427049448674855218329073945025969730853260725749443626080593582573083021030292715612642392662044583655806092308359291476424206081577064245776877428149505446535386613354703304222281802416553263039876212191314793718033825360565253801697214705863400072941301887786533993970226800748953668966851586518380714059859348758585382157150491917992977100285479276106455344652245791224358566249421004938170582384987423986317285498978888514361349009497373021919371535796035844571748994092455982578146442784159852539634472935273602390860344523649961311410177986705081691409294265922641382743202711256508759575215137436000207497446525156545270507408174329225163451351970432234908311162904136403959629841847081682629178193817838109321017204994305296192619829567931091899298254282852202652133283494600655131853530807655001211211730848561018009139497083596720523432431716551038735955407559556617435631449755159408619205787931535523555392347164647037703170707279167425297904486150123952633982965221730818010185506764352757411267629153121212738622885072405622400717884630412767381960206915248290519426883630944167584098164456696633980170963205487844089314731811900267868375573558948705862800561548961554977739722849490256702280952064072677124658238241709370278305298553784650017417551502113869602837260521064009795335644429691596092154282144452923663015669388521723967933539651656176733158588947363034696574284915316641032547540450974583364938771105411959715276272323500578380095370619189439723549887572334633640666861837223670507415008797285244035678549168369519103051011038937631081874791023602183801045039387764555655906460538609708962977019808752395454233345749259951246727980467797319789924192929764903675067823223991501403776326896343619849860857674031694982071136605824332354243869919597607997467071649954366317287016965859921183745731195442579387477587896119440780995267608210877314647479863922409921760486207922975803090211866263258865619303793392256767632142836515832077841851250988019782600444549414360646178724445077891694670996476779288151490737471446069308880985212294733527856096439499376335536686473449956111452690012449403255714182123522139560636375980229530815128537709027234715290540669048771962155864068178887300694167704998050879712965252478731565338041730001643410753403550466962496286352519089530328639228218306502789629931161481217904035716283878633530376356160675405051094313792771221749264490246651358169327422173048176335283363302232366841243065047484020134494220910569294222960225903020210327222118410775834372329962446140463436472858006104925114942356785196006818129374730966908407789479890226803268967334479726661396072389390894966376764324387107724087871802448326974635238462712872933878187249166007382212943578211959686606181207801805284192826475155524875805084002649929950360865385593114144696213541409537423158316101789048955015984968474786764617194261958940450634530602886745936172513359690253273427173254069375092183703993197323891800092222703037174288437008886938979785746979872000719225127319393766235359525894701880682561628746213951227357300289526021829132634550209077501672978921064430424869143931348867305343397644399428603584886670712561462733853876472259603332042984670298143052996141560212313658564006084640356960376144267292931022467401439943103918489743894449147002470406557666259153319390686527378414571001814000976972606054892845361757259722846738248639559105541453044908125629967010556505119696257466783594753005531178029343191923377241830415854924095689785016925870320418779221092598851969314120974620635118937431441414705208676495588320880635469512857383327593760730585372305380143096142642437671787376260366938176229329781704367053725814082746255010604238511632296531704289479739708119625217284116203216662191164640950304631151311860188599631197986263065705502067553267401666920401208693747066860729869750829483757843036842416626835532010800821725144393343650346487273041461004059298203226459825975524185356714865522772375857962408883808902836569301029437758069544230155222349226405723443749440561746621849997569560368806954822266155555234777250622976530453496799025438311279379441736801891626804560214526011135372841432270341596948952415790183952642425887163322182762110998788726714647574663699015981053455953566178190657228139187266628505612281687206660949016086334826647913990197138821348261290214337013112820807746705429986034705394082818505979053861247831737761752265625818016319367181355273477636318239978487620282141890602197074005562769230002440655241488536886116261301426388530683962766605115339132491717693242034089596100255746511959557886394201192342826867267408823305272683446058564378932716886767228694296256959702367366921363805280198885755811958921702850816196557264640636001561734650786390850430753659786129559862383308365599979245078460038970972940746693587115600554327615980698294493296053155499256195089758801353754657987511556416186147126102908639176023038319635482976451485592828763741680034080739476342098397364197660142008673752919712279168138473267327990299978929961373077414957836924360643674881056219530054450362421288645847570655051985897457340486939852402489171764491714991942869889468395704479184640074561973632185091675507897137855257581008985644510951309870865678578378253628324077455582643013858013659990151008364133503936662515800075057961053027353009172538676257067740640189415569878571689500079029600321213727378423610635859555684613410481229258332923224882056111010393356607514342739929357633059745429297707381869926259312642576190327899508987433414894687627806768835731639458713985005488456407800328323577226689297529676483193544171501993238161711360522704616883083946599199180485622500704106577836011767188862687263137281028770862260384238726932782022459956050956428798741832280819036643066653173430973686410251166097257533316612652912453184871012161302785314400431101903255065178822184013547647753401854400973183874474928410709686305080886209486958046000669355454714987918911419898126742226669143689369469138178276724329377944560252616026687893055995904042225283234023274201130691438794779280667821723168016976830284270187331396868763027934993047440934248189720955982636443152293378019217723773611840456194256644369972594589553993954382452585071338687514491549381082852314294407500780043358769580209321451214698106542136974585354535971156605018134085421336197733844337026801661607952218906638693869496731705704277494522836368931924945126899661135474629840259037098980743359639413152018439506810258931463361976875758306890921340013480753096960103136832602874904547502842981355261225988434343728356345332590042835331145755526179418966139325414155113564894045249528589489625501418538213738367044153045775069024775010876314956438083931903362640970562802686799642325367719771719119778913214607065708618894179627775953512485899575182272171246924341005552264211648329873061895043611518841735961704768135508000032187074051814386366614698628678140982586933792197460890943135818570773146569169217011258003125855250780448366261056307289539404805986618461397957479059826041979278642887331558399485941161427692623084729565633530366010690083847075218987322177364276894071709664435934821324530900824010345049697594021653156108200662129143153712796068152209478066457589951189183675339902286697982890767927965357382583668889145981511646391819304520928873791721473816618032647953383090369213917345266830675297195242918744195941445391431400947347988253137112668217347626508056102085808430199111755597109173519743196241895514668893904130727578276857658276736378886165854032413643642572216833330644389526621540157991766943545837446753798513566730393804249609694503255665475043005537639089451589975139939361428834636448498599062913120369300597098964159528418619755871550706283674952940627562993384072097506032495545286061588431423598608066554189649360147880604246884355890393931549447706912366471903459174465037016255498999457049899572049649244355809678707334516267726079769690783320995535704768500562892116601881550502681491198281077984210170758113458215604565188156560750925409403095977432438960775919000092368758649740634976137683606594347068141276424883521195186755864124636982316639884508864538931419837730908863559689696113313454247478849881965726528470900228312638927011558723517150045098453069525689620776875199904828843883782645341957861796143798570111234891639951524993490236027262052398147950464981834225223370596735443515640370343091486069757358169840322724189398408052110736689952426562356315883173889385763192053937915072506575726467786080323175726877081766692849247432184351128117063732929857551690733452775019815907559491702064726874961838696873199730042981998481616404054684257898627651587906556724249952641800960348427066803927554348661759712714966022658749203188583417887638281469523895937705366306471549502513164023490962417814048685303090286330066772897023316733841666914164070667397255301535036944761899744529640752442785070053127166397484027911392044566597424245660151066839383650754051736310026537347996184962247224829949445420936685035157909228120870190738960704303161232611837741676899825189264650408403228372943601919379778546751148472700352479174113476313196071419561433839425237961762901896191259185795927844029276866017117831764262362922944249403859443525335369529911459530886720318807624292743593751698710544082265602399763321920674020920366181574756104462602167952312077356468769958825789057161580880981678320236508720413845545323535315329352963393923449546349102546544187332237942173366573062538887591972162569247229482731273094817840357029649867341330635816062575800777743844824941968638290646050529977485580603192455529212168112764182386094069446752389021110583611882736982334787079482440620579375189828201424386975179407232519827884187222662196645408177198650010529222072930170122215960918937693527908261886219092522782618949089910911846133451800479829105958567855267080711377734770400958419262664418455241125001717430228557002317068779611933540720534664195258105003180247474895253813510663188977948830405853109396235483925159602470027638137468039871010718989796730929579950840302851164074082927624529018466134467106270705649299716344777234576323677982933820403352868920718492644820011904100796942763157206078432405627126874953388596397622859376131486334197125117644888219522130692239729534956133103843945741862029124475105690538434244811093685523567244998484079920661124810684810377523729107623533189293483894729901536830285129108785449598659250253401677585178422647831166433672476865382189802006773359810866625070921526398319259606248942064121189894125677001167253188825210843860261017855635512625656048540028242147911704915323558707051757823115490094644715771073122069458346441779160338803389363949711127453764757307263831152707887359843769222155278488954926270205071721413221733722423043404898377079645293085482733833844379190355763611251581554296570570875980292989508042376665256260844159857675510686683652356246345657329060768475664447642967860527549132902134649772134939706038775184808747557833531826880696160541805629943928478808380391517686989802430879609042527148872075739732187655356431631128637737669133816162607597940108125349160846629256533075877957079287118991913739935450912448350639298567321844078158208311183010150162513173055511890127322985154808183413779824089398117585464391143811507675542839739173021755894971158619492189267237541423819858277564174971528872154913959872092172550410848948124271271285259802491752997651878759818980630044736743197158405479365717128992094452230015472570778884622286180452540728207445354018179413042220790124826354909567086408305909306394720132960438591579780237578957071129615844920882030808341537702527337766204580219412122726298275956424725315913325520361746184820881871338100770624170431922630848466719935473039802464702361461587351399652850795987701661110363486852211963769568241993140633464680745680322864135954316215883298099183520595519897218351544789145362455132717514967300239548257918529536245239520968046127834086653541785797598533536428808943430870676043032266257621286765522720020466798820376281517517583314728214107096136139045538177210326944150618833908611203367465300676192720403696657159258510768967172654072550683043983252307017509696331864013164058866209165117104511751604763642278581297921334488501182852802795446812264320031185445814550379199108844655185286033281793300109384829993695163494229177877020951555498901688628479030573570974905812550395642045694785258553607831777740404698233811310480943248860633617505287803753998380549874413695401677818179007374424442079799147387649953765714450233238949337956301083491892467507054284104710425329208675457488026026085532730687211138151113539641968674706185090739722544834721967957504021047137718781799733075971489806684065963374236625348751118337814177256553825989702206468832492866576006159591513295467319055659670725845840036364685024658538864191126896676531667053577952362523053340915374655187456391574648644305484995790249939474789546838095294085769653506937625817890936549006850533670964841955360988930028466112602414347597508063047938454337224551181958228437927483399925359136389508866252929690936461801103978977644378693327361215804479623614586555175242509657976583097441474163600142399926170836653252558306738976246858698185723240436462539377160740316510673906103729508709087134981717432983910232556064960573791200722164794330762377355946276746289100868630953730288849260477807008558554283603001900724168621658849915430595655235591737725920778605483110124027213808948647649026094217550134467287099129465963575753087002968534293955214517154392198054640643899616697275016030174244535375740565153172680327958562373870300994974427259222912100742364094472039255029542065358293089345251013692398881800066515926378539193722460029058612948042521788279818771661159494701785786905524702453058097919334073577881482505002499740464202878839067462427756489191238409111463763578204109586844058403631428076390430250459988123663111402873305502986319018444857706612569877341749168024673678627040081426750191038032207037498434008339290276172110383555656661140073527314454071950219183826503242049659454024326958695564338854406173255262782459787861970115342681729920803823321767119446004788802201229563474323280358528007321787762652752584574748648182141315682945098302463833018224208850521932586400391434538284681189695745428344112279511676580708092175750257667995845694891918110386934720118691558944768367726068752828176860504000008219620484564009775666039028736410143745360695488588069007583992560183336168690213481158010800831715027743603461970798562967042524819872996348392056235410335302374896781748018612559642891341501634867187611571233710371518688208855848243645338262983685513024788233210012506049034520542136421292205426252749913061392540429020602574288878356818024764461454024954040913247350039079159756658417213574305956953676951630045630472190266460363037789530087734967890811751825824989561929172338975024649421926508969381980999933353775221740259176521885710728581299142002351496567295410050104993525693061658918033298609760244810603415849809572424610167420460338089802021928749310237947789960932580672016190165284229869489992381195039940089676881963645214142529816539093950260753355964771682434296310014016873301569279774937323927104781563013275302098952306270093124399622188894664573235373417259244595514876747781322699747089469066844192827645554409011152762274227597869970442231991707375068627303565536713971833721716514909329448994466851327415130141268539995950200614932954768135699725383570785579484791356399122130658199554197024206406859280590922200459949494165447345975259637995833549563282931395816988888088862197219386206484875066096691341279663181170407067405223575499587878679238915552074170861236998457314579087268817750161813377472342667168228534779989715757893726767792279011410772321232196000544067742374146796985874989985764737224596598244416103970440994480218761102342582857831126733057028568768416412816098402268903858311156253656699044546870127250736993166948488968221367819796209566329230106230199017173919987868440756519224516706007561082982700158058904069643156548985341301203785538327422406458608160752143743117869645099897203442028313547082130615756074306993801511470742011076132795891525999638829247012393057065594464873224518532180612509896580772076234716903675256307296072263735554298666978695916597918466787515706161121616777331080611132199088170049438389926530544375138992091746354921530352425696243638810207111695071548415662603328184807754752062217964294231865938265952873437631698903025096663467496618080696486862117595301321570241398563587245484243999161144398010286666728213596161841432750045632482187035523380245655875938808642141502843857614807050753949970980633226894685713240756226537338229650131056082606605509759089725095996104380651277724641699953017275090698142267668611906227629350198320533652021565289514387893694544895045819054606666202656821396564631320854459043138904903199865240086233215553808782862959452536977501550033187892503553863318953021483682754999366275110321435263906375575263436543655746052054359561810262716172288917320134216350407983293914891848358461839059957678598996944175795668218690480915823372244178813038147177334051106063306912818690988554473307403828620206288864179733360559612594042732715007349895776737992441579922911586097655314298730845186679858170635577938550906621743587682728506395706359186321311997127579173442139427951786993706509737139249045870924595633948845820877123959276383308093310700813266283860644596670771209586175991992462015402230244685931958458615478380630564370822397064419172802440730120794620411958229148683949728129268986433539465081077818596634850682716185279726880568976698130675096643329768485022486712854908981597557017382867584297863428746545800304364315864175073252361980162882321896331340549258801279451651758406550283081673229653145946325460846165385129665792615538166543612822525069007951875557531064340884290989690468873909316214816245819303451415546516606743077115434462811875103038722519433391325602933744077610846082599265957080402630132487598118655231355913536882066934991189932913773480215196025463968287043242161343867491253599180154899656589763176313877145325165376952655339636992656868505924531287062409532074242066710435114686070558580780794864922753884279984399402578224068163243795807901646959531851981842657532388887805024193833136669421567074839498782182009053239758853462032283216850655282697343707542949038034846178263584870444426374906890305241016259435298290701889332146683882960516667175640262180788913648314806542780455168308969444457902799019578828131302036525477766961205134564189974374683606925434000643352630597716033354321356394436497887798345184614403077721033476338847368334190252523787827561067091794935585818501891180491999313486258046437359833365536982172821841465810497283540236057060330957276846856555081019954468403596916096797308724494229487958186653662176160755162132948522553134323610103216813433570349185733489694403020483838248848453605358015089839312939868691414990453739671602752270078952634494591773220893646202845871637945787050352291911123433507157988455377373644003050973265474528798651816633930627336274438446923623221960573960025921023505046166953949770782181167233862797475216674692077449683567950347593269264990445120507696883804019850083132168588459680803887277155900151327694094204378969946493007163685704876310931957413644858777103944005622066111748568582624389544536022182078019609318951847209877363593412995368703469318864050903243845096949988748408031473582046133922150937957474706351688464971530608775193630469794595135606049689130416091027043263576306568358972918441238477608016285406337467060239057417717841772918948779148294852210798173305772257349875612498563826962908206584768032660979289781768828734791187450196585270659672517971907521027067929011973837189586973446068962622239020630834049437219207768462552095038643566109689927194621103133448286737034039391663350687509803232743030128562605268191553762715166024518029870122867451776579983544271155268894027684480697227091512655410044756869641469194901075075225513493738908548271450514488216712976764105783461101023718395137224852770868750391174068075635813790245782510137025912880773955801410346650148896045403100829691172725267632237381729489850850987147983682646784985080573571461539339741985589013096611703713307159183258488029826762327131821038075677230336018678037410318802411088740318528995790961020300491352749929645968168530997261443515995141425624760743579434633694877647546238256411884721869021941634147819460733242945827570609846679754839768580037418744421037080477983355581244479316258913729884956141367111392308180257384396655584144978855498267006128365681197320079305764504608626857701392423527841462461359778313736455003053198377725139977129942833980560512261148992050408998192121599693561959900719790240898818858433344665283797219720880309247288274368735123228833053898251963043622469018258208458306443292096995843807404348650808269507791017129839878978971614330329115892330549435921999139799665861256497123142702695131069009071235492205958852396605097558173172669168189968125686576205174187949272824695211037058506093180412180317469872359280025265723775069818133780187596209893613667888759024871641601223551861226765145297775767679802584408822272603858684835448619685462583168887807563955907898175538285363495354700126501184386542019162978759452833501046363724720474655361736337348177985643301627984667106593491083229924848856552473568480475543339301872560216232307053449106747736733559858417407386863364372702303562467886354142094530457093987904332825726028252847474487273425823470030736349141042544969991665007570258977960552756425608730492187752002765564070511290404100289346783341787874786796639284944686953126005630888360475412410362446302794302784161095679799655090358374483540541458834604218814829315620212137603182086816178242088974858948574192875409070391743874089185285412709209029960324329848826996845484008733808110230450068632744672137392728597447860404406892690578280925260795459613605726173046411342565722097592087093291331694631496599409978790726561989618478885720465725461433812086482290171223968861311399195173861223175994402238693229012907092020343890923339422850124694782181634648995457671334025838016268264827480945792085488738146970267214639427896375980656135657970519966079237207152097104123071979387924182270114511495056824253515468421965403259671699543641797602940491815772679976777795448777485791160766170530637673901726637739084336677230532481092720674300820698680562383398248243475635127057870649686442048733893811289519253950055234977781248012919291571628951410764868239139836285317945127227531144661127255144023069696522784109437964935314178757923831161514525488345588463836298173986112544969371665661247961104373429773588271559551424458458227646855171261532681684503475738033100172044819257083554304516225308065700912254809235462404250883826572100100039012921469681960717345431236999063487832704085510632846797353752871652009236821635231058586069860054389979172504680867227179394228880837583439090203098921181258181689663221898932505130517153074442684906454389032411361750296085945156116703666330963579138428447627294571831721475016219627858346076718260570229253117416049525359542842867028316783464927968625057698887167895516457165236777307419908268025594567909822395975753432583137891343282593534636150210700908435790680387378077502731928123913426548007651785812764079621154935408377437639449695930138220366068793630113458200284905738010767109677718640297600103317185323655266994819466584278871344974546496547642539280543842613510054989222717490773541714943909437338086825942804583593067110481992839631932697498452629674692928310552137821131045723526088057252557041363527345343454115031733759429002079834022318986527468981379273028078397982208940123062431793842882112968726445944876546870062581799508989406466127273464285047360538797252968367769354247804582325324780746275342331971726122228366362875972801904048581693541196597620273023475704882886720010535567751103327222892038734189104017263415129679973297947373194766338259999670276298005805586743254764428926242347046593705357430764443829694112747694442626616851289591703502125869042760668847135131200903593543063688726493217646470147469546672535497174052294069052817412417702943417176015516570689676125872526601257882159547465927320980968958386102992936673417648629525943867069790590374198206553634362573289550692114066652892040396560217014889643898251673876677055542223635943520722819997429032158770493002387398764669846407693842564373288662548801015636068423610853829309906707450526171068006458244418650299216787150501096243038178742068423962634287701687809675261733078763283294392557672472378416067533071856284404854526141969549410462265838217634291027080720052415432176108291160348899887270105319561002600387406693722585978374440654194495080835648773522065046349921520667625474640972836068964422442444698394823099645671452569562179178759452227514441887880409237883615270454153148703297850974448960974840457598219314925242602154753001520629850891245074276034657739035200921875395895045352875393240930994177590061875522762457031696126501572464466531516225012960946684994154249200773525249842361000842875632777583895148399078969026201598194760736232246563774536228924531975877507633089876873516988373445326788234295038639686473018601879088101351932033320800875610342256964490246734903768759587601110705979231348683314442758997045580955333190068073467965902149239050841720358587167591922259127397697674122885955421174147632323151039604146258934842257935781072290629014304089559216957375324224192438176599892796139071421985029368306352325539499837292083748636298046625534638948557272008228054903396037571542233876287943998760316275534669672108576955439807250745321216447474552867830986758828271402016049524789481601275545449135744544882866229322518808876605141074256092970631086269333950092418950253375391999125025900323422702334515395495503738407478005915171317262548039466172439675536312966133901263497679196053330564953383156991254876327885231319482956177276919120241027559057099962040186445572403313784641427068080123647523145848069840237798326377702046607784528698999383507541653430506710189084940207891077101198747774604591753430519533957010504615155671157480197826770452341699983280561786527436399069140847679083177308482560397198106396611041480941751425412811943352399225904680935435373921276108788172148861537126530761098986662783677069466552047476422885317597618013736547037148763801899915909992962341240681781489914126571786014144609725422991462878366687953137136429530420553118965795992398695424470412490681956042488395206707320877806806025018467532049234192905937120505596997605966512366506705283730334881504478717738186746828870716280380210505477795880970611618528720508130462632220629979714126505991552231799031079909955101951262877392296161953954970672289212682354168503208722718821099344418229619419332576508521857599511759898791262454565892895042439726807436531391849446775521654508030621644987254173941491769006225470834067518971727594162149179584927793643123428132415661773764034115146603494444871977877214619184213809105822321522246654624677187293793870421107985912741948327254315582817290394611129590269763253339111304491624677570407345744291832453294096860491855812864319322975624477743815810724962638154140918156868750138393618268714730328409362425993881263671231903250969934818584894264224718923393765620187095010113287518269335197445090926979744248837862624195967221986124013164391274261863139308598102875604192807143075597575323944349036809370530999813412346725403201424099946874483696819823881814907822325459793170066987646054343590881541577124895757441380567338281309501658034045099243127834788688560598883510630446098938501315832489881322407340217340655026828323278775412042370167443050004495433241044109224125379668058939959760131301562799284184116322651435628021626007983391112086535991021714731493793087299040926507212661251976689240222535558865240311462696901112520372041493499923762198257646935378653771253048812088546741910342825346122996939274873591881653065138510391015802928016226667520713291511933084870279634881923361732873133822714866222613286168451227783216568409746916861558648873552947356620938550287625175289596553419113988929157896581475875816497797449778636619314889880532066156621178689733660935358192937864482092366225369941027233540582314972647739505827837464771561478037873080718180528400124431950339605709786073329972981471632000599955332574563890635935927085653651583502190068331484623034664713327800303729500940564659510644479996721335269113592823452732537457681002654327321174095721914958169282853643702032102977182620979079952182970715751644275803029031866502611155870614014280551824290227737028259529485438020646777859291759898346533474906142354004170852860323741154020182864873879732648508462747538361205681247060577406359253523731193565299447942706760420702963082455676948337280963111214120822978900902803883278223879746673041002980406161022275363981941592063397699614280873670878621528133878260900894339401054279903698925695194318946591162407736739456621081198924230773689952603754816180876701060153083311619140820334276835261214871466023357101533477603247075358769641809770676916245004881978648712487439003350870837215478636432433440334502809241594869045994636279527273065528385274094114693083763037009143803753470740425966247332783730255219805445250233545454011356137110835837381729107682211756904905011261515533316469380274690051266091307368732405641792009621796019105157407052074266333410562917619268448350033389622683439477374908407241849570358817424259962252830275479477167321805422825665932783968914638203749433721237133400670900018441917960485897319098523476395236207124473366777067443512003324869182470565316015507383261793251281821494641233385650021717075452712221203313008826832319255696355165008434346792972794569700411932579571473110703643729948639753343104516808907881748984206769283030132851517874672567150094568180773626776759912709520236430045003643435869860315758203604137347013663373371629143501785134753407195688412557293051308580367624502494498011981923001704079274951181883049505086321601313124222063967612058949595973447345729384967558730761173753951902328909318932109386883189385897910737138966589063904334951977810228608281595134208632459887324293150401767351775707685723227134919159704396020862525672906587598548053262873934685982663548769143955581540845763000767526224985198135202382693017400969389752624813715876807074830786039611197095033156056353742092572826049144472155495322753893753905797189077532156012740773251316182109571565877398883370833330700053386588687855318367129156632488115657200115038088118043560017759349377904684132105837723982169424404870698238966054945548950545214582948436045404692678015292693673115601161272188080974356733528302063492923383624914758854637138067445994048573851287921413007741568784443038690059784610347765433425931933763548005457367421873742995778721798888478596396568302751545191102660117217116715901099346760198394651165866302851887736403621921104092314416355679218803184550363190831694255423051356597091089053328822372656585522473967601001288587179274143631272984041460649757684987129625525681736593690010864441978782489468024958240715811181092930895955496438982447522515184310127433723008698666871633310797645087224087938465904064696681791812163068883171097821499294702602145424954315197705489500461942974571890431099641333708990601134723504997706347497122426794952336282267327402863466352249739999068247835165860560760473901576789082912683273606497118904976342666660114996888254066073700961732204924566597371376382255426912328336779684553996047655632868650636119895264355208722467031967574858799396437440409857237997567130587457963574762117527138509003152512917414173176772857514028698505847880402158083523884901801632228014852180344268797348948178428442117443584783758508307765198923835667903489168665825482937197179553593110781154532713111006726383401526393891489690549005526000079828792649584252622429821285136489820454264447699167826860999337898590214137454190319279243661894987986525187988470650055191511816842545717144377468621504929260192852255696030314690028647603511350584775778239098839740370266028075373286031504376988108962805186824131183216310668063003469286212413845215461180295109470546157242876287353656662249937042068536953329305065736107426910136600386889160647843100098477349597457156518276281598794824490990997542581742767397721196039335671332858744527247489706414600623399479382829541448415437639209085025462114654129567679581247894093764816498369888614009458502714698788664687549153452148835886993275240503979051214964909461309509094019636330691847239020625028323921956365748407266730645454019619919443014904696549936582718161973048518037429708820353328863407944323393725430036260870100615866997448390074488623368164453106959011581854981606194438311399718083781340077126968106008608369842604381515472303664809801220000651495175907493786847684292367694553367194065160232429305460318053367270663116304508296321010592563341432164844592146525263500408850147362825840328472393369274253517597352913472036263665601104641548381813518587639092118493959081423942973528819443261656474391905605133138369385608881335229271235580713379931434436782880677416933769283484418423117574979319064260061732247218664385000102307360822271844159500497046993360894377899382028100700037708505540633179535009371678140884770195871691880262178853770503425210277122558589070885279610992045697175530777928343802434937497964353626681910289478980646309873485470191617677297057725155369969064413517412077183004863961003852445007116309500039741024086841175490716591753261108252965475978158404545254218895782094373074318910940206498435297136405136619851736628839038494124996315541470808112116842329356775860590591001398271108249620911355882293233928839850217850692353835074141553797132619872019731418346374630529713226062900073416162486943556504326730495358241221222691679206304181709912140253607733569933502784169259961388736526388845792144112253681763527356441286936101230335129625486290232892525442144068845687251075038296717684538574459085462590935107156697269133475812044359287781732898485553951661209518316433530314418436966979939573428186074595148521381367666926858110233966709254147678121339945699424828984412132876368146420062572452534330181866351798523045397384943006893300305370305285628608035973647618702740088670800932088859810617739339509404993997537210164991555907441410710553255226765357337356510313302347404040398044413451767789067355784861452576891452279318937037808589223220023962873989846198691628960165540561542944607892941302579400711045917198669964893414823694635119979803933137070935433979346956902195202589349602657798338600597309610131909565730965415580348184287909009952144067361132775151204343656216257277854091248913406022409921929058726964258488420728881161913153918185308965139784122479690864881736353633078958479482255534492237621348634507207828271253401408795660321736058763700304135460674519987791655479308163079778741621235337412130780631652731266992414595287203763762240968923028003068928258320500954604405696640999287751689135310773271207336873948610215477701101047754963272788053108873008660732908397458573184909575509995484950783248429126314231093007842978828153496282239428602345356253493549208627658191987214065630003908849432785583716783067635986626651166545613557485089362403626243167691478000463248964328079625505289813340033910341205072329346843463846239334030979663755786733840624280896338363907254960558666658238154521689123428054145225550253758348549935564252242277271797611112926648005280609509924013185734664034375657085346102374732077008021524077322867117897422284438538693667125655160646364957518558093289644424541652093199304596970282895103316670875100599540296826255398444213279319599794894350246076498648717565063318290747346823292601872008179908139146523181630119315982219536751628778472345160523086201412287093296653914023157384031941951583340624696921310793052307568297756460228198885673608144114461213680402572114663761468939772571016666819572958203581382926557531375443399330481370788412504229974461427948220600776355240145648717713809531610775549973345849987530527687812696874440310024098136827287552134615542892097325457967096650781693754473806811022652675446354561853052054822052745579876040273069045030934790991382818303385570428265633692402068479665252133976878396874600525821449414845208308184368529875846005080750092003035366519347839932961271424414809613524220353353064041519734939690919374153518986780586116896380122687945307337560494205081619054919925068619822990416441028255916931543702045876428132224163200263687442013748806302592717466125854111855887763191238331397867969596446254051490715623486974946959758883355058106974951044160191315257023156588886528377348153607235562187158407711055038211751580234323641471846212858802477594135311048159966540393460688755435190368860968924375779544036754287597942860344790853568591930562618686196150588235809887437399694227629453802544559707341078213603575751486034668649799561768476911152022844394462398489295567202302144357818060515035851186375224801092321395163131195815855173338880764945573616624873599107684129108018488125074867488644931333829482198587585425616471219778094257206642692408559784842399806319300161091611135291611491201617153752069485213691147446864553073724592291487772899378582192481530510962135111605462902910162082998446417743734831652582575388421801503759179297193679471363570947632515829350785554890277741606932656986631747013191158053254038961178932656431202523500388501176948395099901557689739815531236252331750931500474680385573594841634183314704240598910321932322337548276212849222144040587185481256121345095652956624514873337007418070673467690142218831473221927595822431824117750447920231487669799780198167807513532447180436861743003155073952972125465851736267641101535650818770554873804094397199959287542783096345323901267409985112196891449600552906614555805666001942249535362071577869948010932802983886570983334889301425477657634893597478527820367658244418116248599173789421406418064037565009876672753463790581153061450348503437377339035302848536349410007130440436055140237407543552430378401426663022837582314914574332130238791930305052858291855893116142291196920817124389029035228778799819825363711406060363136871377060797014529753808000522357449150489270382178381308905129886969413652801467106859778446154841596081447254485177598351213001943233925395634505988703784298679192427620304247514668141609315431850809487512605719270798457320130136905078243381643963423667923538598928947492987317084448347628003260465386974854397412712795183276208447444493841341737832181471663305429197909666112402528694798406769081242821595232172924645576149155084070148731368758341898045878133151741131166971465479384123142249387523154286919534226378797386403467356945810629206023351126211926458775315857924041844999030354249602456355084237629046921035450324796639297514716949046479096619797254573918122495731941688691668865533309455013403301878991916392628236237691978411526722874464062825510220976782148612362972400943052472789591452518719633659774775932107417148912523894018903638882470353968851756738149174081028448461042021767568540928704504998717502568021568109136674214959087026812802432812294146819006493572288023660590706014632296198695090513638874710946089656054369786839675228249392428084391180657387361736071757765555288960053326636936894285658574226623763991538039552848778521974549612478762043832776379189222554447915733047995962941796013515511009819861891623542455394163425355466457095055466622780630444255525258505958510188117207648810930229576043137829741895052560274127912216043634972945850988083452978036892344221176318737358926374494524135188218573537757751868030785635711538096134669713390585741153736870086578170682577078666416812832755251572409852539978506466462049403407189170418265614039462933801278122363554189766381594132024023065599243280725938088680740609654173250475394466967396295606073710488415097564340728426034598663130840395019637726504124487539024012718833461501177854423380443805330605125188028019542615074393886422366167108771565472732652826526448230468129870359603098804910593909190642936923719817558989783151297876136583435287529145228965150499754340577503976577067099059835394523450675592999940229249498470134684546579572925883682636934534173755990681344009454344673777163019105472142681457468081328704018080108489743744273244516939488248971433082026675093445895301991684587296745364750242011497768491782309933115429922720194049055163285108210671513987347535253413294976413824168683695589568375065124243970389891707730779105064552830906039643942770840052942783724778805142104036286561274221785916790833838566398773235772503704348896677417406131687518244647219715440286665167484942836890533936038928037091542735379366026806507690271984342208547945756448268805747339055662770294168776865097054822634631451279205234400278639194495903479853826802179522428404368713434091728265299519975094551138341797170990869435539325882747515916293426117149392859090873919500086515416468598007817792205657477163299978374848539549226610816094461140610976659546236701213658879792960063669429208628524591705611772046255656801135532029572485369702652054105407042673586848629228378770605976578073977775553946973319376895426995371073398275475737571306636775469433637586163282750536510402517126644702260173812399463544668584854612522444860521667002729138348167990871615546013547638397033351743994451406225058795662618141469345898089842124555004867988462442412157558462620115100788285125132376954798450176779145613959526175128645114319540063590534835865383858026527186289548336673323314215023734254835566003367289702657052704634324793880684500930526175451475374111762113751412020603006354891888539543036860483003787169861480686853633867651280565574763194538470569151825404986179984039719730565653220635872461734871561917430514002232695654036785226489915838784163178554691523378876684984252881944154820778750990108695735084449828611814272462310994309107999411866855542795254965130962479265440613508685645112938007147731964551094182660408417139885434703754797614570293747110927154548947485938112431333342283324185510031210784785919507890191030569847474447629566627270422610651611403582060254565957884072863809697262456176946075554769813557582954307257926614601979923997589637842530199913287439206516135668308659076743158469518150073188385564900702901059292421098422349549000522205972997659061354322273430405570392779606739462493500481802560097643145222035460027831769343605453427077548405491938677789868042036468214410067426590104910458544301366275502642102967851854309561156650187044318612203244256120720836068617417818439839200864165444954238687531676975550954605181438759828197922130239136199406804325382044598204586437964207919988084559978149714552234730736980163576268880475017688902175688316646661801144044287404729426857708094704196193798939919891799178784041518067490113740257436690033742466364432345743678571178750148562119904885211602163192113724330938799796428516311787357898568906054080805010696732968480681187465729115378357551382166848429809826570137593275679366359850508225285502538890025302669825976888312160387491020050766378559251600868723782316385710721869868326455154035825960896993170811799674913034654995671406248542347703641148632332431132645817049738619554164794759220632160807467988073209530842180407279843169154352251738028438207373644947572773767247663465628376453825816613444197854409226895130521286913656194890394110501087297346977190602426741355983093645856941256695579113218654274669597760350529226583562298535948640890386056121551871009311527795087531659196887587419213256776167282561598457026159166669209476319299468454438677983355413059774464845574055898610193486910416446405539384559116972486926730331225839474617743907552004532341455755363572533706328979228814747815253548113768109665037724744199917591347092771085344176399156769046133454936730142205815185799628943430525984775968872180771922248036915434493740153917679291122438343031611255979051033746862506395146552240691892944259257228872256358868345433948078911453237485856669704559237939791514864141772450904785434799402890851100084901945952746704194398709358218547823094089152758157634930228693307015973461500417018580073601765420755351789356226194316151883549216061893849238803993290057809891491363730582610894510994428549642728614796849960003484647035330558433545242796778053054210852082006449081217254052375948480515250232350857462734291725909288651674711154010119037532799965528084287106661793354001703854437491156927060629709784728204192896703724566423745637803788888170965931316068611943741542471806896857819168977017613882363287078733358008183937601300492497789865867400465160214544461362717084274180551572084024084091344145777461281152807033945573562441366896889215073071197878471380243113534725310880771785780853872114632357444199735259815534386189881714782422970863286467435489577301794976390506191724023845791565495645581953180274495721089503665772425792555732658947988447349581988363977778728141578596915039712652763180387603516821007952771154595521034462805989564161063844001434439908527025708004290592136155708571133855899845899515546726856233476604783526144174104725529871055220917989079867897091900228891963794933440115068450581199527384190052037951817070808852846566168645850659287101396846691274684203355537456996729642817457054638311515202104231655341520842588964600397661140175502119031817558062886644985535905399443734467057137184158746814876803296149358180401705019361393317068931494474630349455412038285085359779737298521609976938448999588667648225471724627831962961038610753329207888297378262143738692355954085973955441793521720783551801872116151308026313596349873311700733332854863525453508432437339289957961922528508140926375541336803674350469964014996290686082944326921926539624185027433040217096408870011542254695828493709238408161386881022917606371131580139400190432643098543394083721101933478245075510994301580867866513217523413959121228690028708893941134191222958824126633249255261386351695774748984775443261391391825208093519226460495641793434807855330582326224485614063141077784784482463670172737805838111369613891588277702627998048943285484746179248798701203655442300348196332956071666747234774916362588456161163526514877420342825897882731187917616450659701443840754880135453363640887239964622994306926485856329305137446234349407633666619979531877875293909129432109988729876410409125014260455995319488933915433047678618105134677797845622289426032890904220855744398949291312005368597201778002456257245893257278841984525845833209541528202772228567965131593919837066209178904317853879187525888370039415984946146164994354068420236796403604912670208009287158328986941449716541239402196566423624749439201403555924365685230872976889689564858373867585011996966631775182975113844558428831275399215020003134275449653336999621337886969177381549492975904487399147545669854060520693984056768316665176800748957164615156311937534700012120143194057705389126340061767337444008617551046885429924167728054057187686157622746254253954284120305562893738997777300547898220352713027361035718042167940105588824130831441553408784973110623973379019803726316547260717720799218434113832336299994939997679580263040088596467483497056852769965152579312898235587841391580470917532577190205396374237191550224824434172035359983150211685595851406752822961401662802371517687617847098056154810141122029596979312719908750222983672310184586535429443990805415667999122674362513343561724323466786704492062361341494001550442384111288089399521113975594897772887016812705657503749451182973377682596212369288930393564599184635230731498662637237781526932544363778321966876819458650473691638525949398148958912776522962485886775175270759534458432004242387467855213671139060958629057071749091008125036175335878773643503156393043695139579694068132553392004501127342529982408907336750984080858007392212737671369595702037603035713531943486329360561606815919644233686499741625912290499395002106865820571604579580505775001126674100909956974321965434280153370239832043913328865049019909166112991957298797931556631812867656889565964770229623955488227848184601215341054375312613609663409643360806443209430182663250902524623078917915571723296875438467819795801961236439708323892876773079573520128879192590677534728430702850122013963321621850147834749596374441277302312226799187070375699772562959846396802818045296567721799564366577955547510316058767342179062853719935462147130263722036158513614831697026847882504189179565962294015782819248962047306780181509256688774253162444894589633275236967040181600994565906480325380427335675332613815058956286261891928910316857406685440902703874919506413094389864769975106408603746368439020763887221302353894350271065823704465901213805509664272080119033453870528113909273801005563413720880391129816414904342863741973587736731721026817621497037024563775845251054568462773326432997958318144024610306961413874568596708551246822965838845587729392077527192808882212958993901619755154352760351493480543575490593015352156966585516429120901189590156688730020340570952765478930743194242905086793730990111614991146879018671940811286315509938865015360782315044138386276263173264611848462953528451698020634965634434322134277508447492513325616061921735082261039162724601136746758398382103352537827315744302397690295532755202516180842648449298976667317819591105187435792400957978028202173827013755973343304482383493380201197329898306344899062572847585595788870688091069126716712395623213285466181576959088632119194541495343798731386647453212091392049251294650438848258295066705681314149592414278285729717117716643737531293114677315021185614318552294689833092421060344469235161252946144115155069648240918456071855376434155961152669502803008964161311226598696902933816417807195639098659526990559180520722467716518999182408316437175431343670167177817390139352397291680877617309244141577817922502268800304640749629060973248612171719436128744803087534152718165957901058739868893396618314292422805255611354593980847661869529139412055862543534151991141081505732225572360514160276950321861006386416629052262576287528855264403242572362937488215927768430669020208537898867866328033345516330426367413096648912602028744281675483652154858129461658495250651616445409278549741364783108649879736697957909896280763776320729519842099640819606586981957384468590307546739610565036371825699034630778689724371713841875833856515968844454705937542679555604646809513070002813043322316745327640537649876854195777015219331922377038682071716923945938063829593838971165338401823172781162563855413227194849998845971979406232536423538597014087922365416010814418997312969099441835876185598744567771136939361214913212549765993609837218327180235235556668547465793737044702034909070249055302846227243295566358878141135550822784394891075874949548072455874844912936894111113042304640026563109698036930121073522536072129972630204452410720549410367143874916829491788602073630903649806999254376284109794895531506716894799102952367267954305616049071013090942143489316046392711343492674555305745372726848374954108748183258275958291151055253087747183542946769365838224206908630580242236327671344733829429265382162151294558110772646229228053035853988124905670558621028003873760539124304339985980629165012462811472562670837975277233570604652939156990502549329937495891866418957416293695616671057195474556856801574176913670093945186264621830068517415912835497221246247549690499238309342493116443523989585814709843304977439911382397377841520810914621289351935737569868241023219215851871524509793672681171164704780273186821674192162686577270201634611462707984538692075810028909440494760880560253024888246793004255412994354209169767489317479485225222474932586147275609981687457257735740445077963357013449549477032477841428203216176839200915873389835990894553992245681356617842288330873794056769547266780866364119128397233298287602139989277572137596426926591883045677840711838417327250010702271298468358079566998916096928031130943141589744631266488046184997186068157870758769183641924451668208201282772342853425022889444770969629834394324722554720844064544246860987366994000278340435002268419861530680652676473696437806355691009652887597329797418464031437974764149129973483074170186059086265082137436575491704259852213078972149680428056147527255946809198406671951857324406809234614071885779266254077121596730371649504316153209875325700667836573232993980835530028195705107877828954331724905111596382321161183546822132586714141475444520700216849357826512864345670709962933361448546933518688942028530082493589520079494503210233287234894759201918783713310256214380817830892881018799368518617313330670008785683442472817770668729481482601146832791514941035122811128993985569671794947700064415355896986879332405086720418276834632761010460648924618541234950098989045932505595852237727768732180471653941887203018158905336300062700990924608450272081283008219934931952427702709345334718122180180945602566480746251221192374376268951614062934180878160916238074530848013082306437974922943939532575964066023141996678766525144677526911503301676323286056358051662234879607602249661881273742916277311585367793649513215947574685253946099933534003904721187630897762619009682370263081712137457676953400439054239836010898269873240432890553855886962733594719093877112218541642053726400110252363793234297420411155699475864874450414480281126131956178635322174615526907875227288314133129682694305600947920867368119372787786419854759728768081136796444679675435678236032421825625759799498592789166350649006820730239049122250854289998324870310503623086487142976465406556071437366611700884817729087891667207413503695593437578384704202597004035592677126046448007398261734665480313558644249264936311088397066172743910618779476318017947092346567177875623986457249460278125040910048865428133278274046200466664882154437356910837867374095001519464119558613944499540821853637291168085537715148144026159970609945818968169260924293791152862434160178903878025907318523300451369295446732221146814325265387089717511718958422032319922429890126684960150864860571209190457184502370045012782279272706894227165004623992484145033732796964827033847015384923397561572615608999319500892756029701831098064216729467981814237228964699360733166560386071032100939242301683249926259796365521562623540582906696318123164392437886244467758011771561273346951947637809030040618984357380040796479101638466437424381248879695125299696231509670333444253901396291894195418073370583863282717211261206982002267514601934988194980266800034149694021585119395473323066480146374469934459695263750910560312882753955580479913166804518448880487717152613922154986744887399158930927467372126879584477327000752517008472062064510834904587605437504808252157008329915417152059882332816713193327927388778656637545707141066850649656627828846636271116224245206666755555528514383198092881381831312142442805597860508028667514309958559767720613910045707724807888620933354073960733590385071865062934210821184114248195501758684581356804337867283208186594837361604522754427166180367536178553079571235218370481542760606011805615066049597740046399376629283947686556107275845171750741974919867194708250462737976089482546912821785144384797550691352572866279488188519346889587734390764799634169389409779837686655494792981058664948270511593116961913867791697041142588462050607071393185176505451079984410595354710880372276006076946281276494915800831048164359846545376744866010791498033900349787813435345041273485630066469071183735441514112970241098084224422319958485267139294402755838300881417628596947737876808209760643899243702072387228431968565713952373659256523061865077895485433639044372435510733972099167681731973908978647362702077971478169735465715117322018092913144014062019530439562492790350387206243263709990228846366759490388609919717228132246400568619834110981797780615974408775972454553803176750641902564014058735461560784391810972179917093671170463378259923985073982724419537212220248343681460919018719428107097619574649159056298277352768310696438460309276881985563772729651788279791223881806913409750027514713300061170106490106823827675644292567256202536907208051880555206522709164485041309371773904446580616771980277428717148264929541917338516135325937896112209870462725808833988681299617791122587524447828162076936058495906633505932032535130625497732479103874255890618239733892929525256069043119819516753365522709469382705566331697248817717728766615565966590292971320446791681920821860717229777653504848250623054834266686036634630624538384061048530348255538387081132286938422170826535505308872603166407558988368164446653608820488745075498221136572908582200135581546053453859976973285164177961130554801293436358414534244485227510335967866427905602103602088699992259159687660430465772611883653929718598212250049400818776407417571138018979105459650679550280589916658958957357385659688039200864393819354373671915455279077071312683819559957533288540610016930952496191140196956074948039477331833054257960372633650440738341241059802999718777347508337576358482780718398882572703071789999270491927998832978130126210213199866132271302434000690170107961103639714034650543418464390178432781817045143918097099640248604463743875933600854801029569840714697574959911321945774135242764353347980346594785412923066916009436618883310997508753721629438484442503122891909807541666084944334919550899905094261532306571913533496520439304611106839853803826477456209810255167668825922987946843778281522826443609770367204766595437163060468935815249413593617167586296721429314249898621447362005339237722779620788694462771944122187228626440374280047125822550155636209235995435935401303288165875435757911288176165133001184317002157392533822249693223389784997585452987867286717731006915465607475371172507967055389912737391860880101038818499638910469700966460927663939000218726779730850293651879105991338654090760355491817326003724543298774339917592028898761821438254723389293486576207123917161042388795778997140573046358505080342822542616381826099834354938769563223682293295418732580720291650927308470097918676030334625479333109791492528037471073523436762454937563266131563544778156002233142932064258689619710845834938830174255330656962814863695177159528411217726920220599208229828687716397159024287554926717215601038530806028623614825016557366423603949338109074682762982648999191096525184503172671166711678185017464434167147632431859200137103155482638629418092471180907810846133268872890433885354887814921888027794015695918308120491671951458313918241709078706067320271723854068731229743639386771719488973676790439209389490822548700360132245125862397126072736673253793969370018676669237574149961170552039025902154006548466573411842350581221759075099673898598972883111208961801975504215100385616785750480434422241920295603737050765688724814549388953415241214011179724914743122811744945032342821088586504201765979724726478046518566778283437534186910178418694065113058629487892755909547403853303208615813652517274613670816696976916128448839563062057234007244144945112481223602686171530323214283151644721227003826893134495712698175998288518873561468445823081379564133539225527001837740532490959147767599320734307688105589637966949030505385282906056335721666335539324028408988872267681351011097498069579825232020263408206071586770706490235828410206813854609862170749377359458802896259475426825072772189406255336998290076318458934855907168176250139252083909142912707109756882196303126955575333015065312299809201901382006419697193994119225334268077133312903117810703668432564620744644263351806516821325067755596496949293924867618206753662125861589770866100355873260091245780920671558949577006232278718911310679623259956042032872528966538395891295183152091748317171701341985827941782402774786231494946201592069264315624588291894109504230272993780779276190555631833510570619126665816391741014197954050564986966066778607319678191809966644797963231430073836673118366746501057028547178646341056601034523188963609764284533033952002615959426687907085610540921666506997812413404264855345973991599558320584290638559440952906765353884784417877559195555364875296987462261158238765702181406121462835756201529362176062784802736575697936684048115206043076739561367811195510859421279039885107848346054441802050192521374322546773703217204425271097444254530256140894115313171242807711179770685605046943089731676170852048790347940221489980967210883067332939393261842757632405778793321480719459406565652373923318344745329015018416388652429867955043869221430683308321343938952497893524972163550068469585558518373334199168246592027364767502750974781837847533753250272169660186372811249126256945907972042070770668553922844629299051961757906089331970431860413821863559286986803828121378595613862727248014366087702765104837665828453633323172082062275459218481721293622920401889187371289795587635254301784950021319905574090636060009701254655428214639346396105599017651264069653621599811683145734847675542297642043200355268557695143717636986550391213512249229235142380475597826673831310874075610123977896238642837953400506675425368635855848253625891850594591974564705076158559908189619923456704593357651956443678418266206916072415503077351271798841756647435323460394565413730011297926933563462809149518986797641949801394455710082029221877771900402905704256154356832351107045811992741741317084084965399141586931392020532717670423466308672002987695408120429782559834036270896650479439594436286036016439148476380867443732093445446914036468317360917853871853931548462207219107117206768365344560540377186841943018108319359556776194250987862175051136059667918173988353364447188621592815951506556670861429482546825283225653639421136554009133031427993880499508528596686053197191433429377034931148189289983689345045491282317783019164073967859473028058723324675790051132674260866933426993732253470860734863742609350113887473222078022936769132487158388352832504498304435198233299409871024272164643878459484069985051636841034359823017432880833086558969876666996307140603847130429419555430602024118780371984895454479785492044020005455606380299135112470649337717422394638253602424450246666068516738781897701220702122144937537243902547477566035200323826103624053612454985561685510156827272784992476114552540651340370147990112707064916203388219799420111184879208393800088625702011087524454841985967050948411892742343249205207743752768940515011219969669746054181842947334202778900419940329858786749337680219976826160258897519196683693368657480861278969875736208761198451732763507158797761936276923168107669512137714828548844300276121728978224550093683507760705821915651581995250626834521461063616487884892789479954415062907899051634000963428000017629330148985608406466684477292224685187067059885985130695947443540529317765467235708703089201362233749958709596398164988488060899166622616793298726413492608569338467207667718628456583750947082117931792145131220295582698207080152916285359994361855877328360021091287803283944316691454519663688710482578744718285919981371787480756638787392120972826774362500106967911130540388982390526292379340236061762933220072088051262215116086821574556878479733078906046312586294943100455119419643462347237709265782538130699483060384101810078614343277889885573451976114781718051578683310470443336006514190951966949833976440511271568315642331776409798183285511622476045503507804571284535719304602906479978217491453369189976699761359012701308710361551424747345113660397115709174592322936380154962897547954259485439670200709235407416101569469899738907811297089173264899700771781516688558989427316710834805804566251749527297622515426621489273202817676627396373588803730743190740464620751439542219403548912588937284421803270458355964265817166941633971648463537418437165121584554521320575247627812212644917076281601309215637715009000974674647874926545305968793387675126446012018945727215084336368461691784678135882155101843099633244612762075684454733071139697828120148232965817274951356091635361589992660640350210542384027542918928677324437778102679963843731087540109672542271963073209215779567322083740111142145580393947958857546236152256072445662626826113841885013236011373773609892962230750355354479708051964273639622799599259297821743537934564419594662860237874309642306861752002370796893042440300080974787056616797425562004835337856350073847311667552553642511215268319605338617404498685129124935580648806841299237596679841803248671214234168963137555056466232549594647073667926044094372436557461281721757115084968292180179826380038012071398451218664690091913867828752975679660488876793756274688046737698304870518607312521471098256155996008390270690625188324051447839208718489657324062547207413981765785604112599224191177840705812218894877518152415207182136995232718720354028676318948094801894538295844067784882672762426485536376003490654563195567425834203256755674623830969786697641075446244260915402988302799006913156535186133804230193399704204225767174541225725810207272141755927433593968846679689501484582959334312254462147806547097018649755385694805728095272783030404551632646262849561929595760109638880850925034009054470207210695192244129785835344126527074462925333717147919115300556109742257183797155170778973742290630382629887724548484510346208706472548287595413033498425125337815436917036667421217849534106194024597503119636306625205130436886371985852802663149277555805373073115477781686329294103327346927211363353732068110880306548423093654995880835075386675761651494331463746785330722689455853061958672436721259145597881563466486197908072749771601487000923506956204650523243742536103761022274309638724452056701810764639224543628433394737298665395776495786245295136425230630838124215426451443743187245662892125782102752391213876739852889934434693896267735300989913095163524072206375015243642569024863619623498741937312099866779503385871331254571287869827574479067489283089161122342229564115631239748845333249400561893288786518024661021887277240205850354020656652562857938384186197726908822175009739888575342849634184865261849293620834062978061984574763137550357315224444546395930943911947425025901687595024023751011873930429547920643251795880452061196655685830451266504025337012029126219754876735131612133503409867898697929285794687620928075170703442927330475541066910837497013372407872328609538059641676181970355076610884765010990177366615632162917193869283310490425882326337909458542922078674167169664987077243268842306466111548067404769313260530805350827657687628226344316704041192693193020948906680634912498012855832191624262630946048940314122428345924569684193449490577976222676870015107250528960975608904473674274015684326322121905612257812387403688289516249984087013045840766342423034924983480960732432535244048366803239690642060949632545872038736789584873712049109722084785613704661897556644129449203955991711629072573868851441610727377093334251434330946970548915780853633040341772714176519399973105947051851339867190560872603236572303001324440673154969658385687962295661112894431599092955770368332871604922765799712443278284863103578439183646744139989499030793900280359876469829522046461492620794877934560678970251728036747399191241702408636698696875682765155533633961237302375936510054750885715421023599580064214849536477081317900760616504516103486389044197447329375592480737811589671238211165912393032340812809234376938811158590763922472719361113080640761897607211235319268978971350503595816358923677847270981734909682876155088186750916743067268983230003508217485880943358091071227519518934048718586309919016489827316111642918302498374126116094086191255535674721376630701357245999707680662192372195150443324288547042229389147236792014079965564110606029524314677010619224423448563076242898172407284720507199860126218078725860649134490103089270239135167186600212376704507471331266802995066346033515624185529378509254370053558497990401841381744862199271744476432221028555805570857000206102514583760895690597420414070250775184386533298369495636223813884137604729996447008298163050729117186909211496504301032878088496756255501406591492432364931715105100211339473828865141308669759706080971747325661171765993626497056476410361212502455865157371209593114503592650201873726534652499246132515651916107794902061195621345498778216586456224187441081008340768826656840068037885346869370131075059730316871284691709905169040736412532153299443564996089333470828995025481543676083616706537884261791145443152253548107544430257218896194409781283116820062997091001351032228908621376947043319808573055049209362814386552315571372558267811677643051723717149960026947740029596258225204244875629149586654675049329249249218626367817967381353530981494697885228829709254702177989780071627673871848412226256719736154280835062355829101507534248712744571723476750623274571391941719707411503952033948597409105103315484442792223293666748084182999722553318474666147201852543550284871166922230072787913612270990281766234008601741535116310917998541838975797085978118272866311581441257875164857062776588790979800760412675921109973445023299145159007048259625469075176400551561927104441477383390606512389448937356699534912947031184294550069677159420630690838205575895096134232882014441814433798259538030524256428203171530151101274599032984455697518163106365628479359499069880031881224203609498241017717921724303804504538915896938115780511843655620739714188126281985690134617247204777103505531634224291099183064722231283608483826561492467718588805677303733280214186198781911715714924346533768551534622450638636197358188566102722296326985121201719992247525362692383914087869996216528550035083397648479749002741431098894935324282980405907034300668582268655256024815593251966142016757939642293218218449818401764921862378650185370774523658095263637745765286484877497200092153940787431344661778888172948380825733429426776057055491296094615570093622099803689609677676741712018856659383388528320232489588370765655453712142844817465619410178090431119345031437065440614309971600022738579211600105530129317614848466755228074709532220482802306564312928452666488302989892483502248277623385716296005224645863290120666701869797809467647221241578939575541693195221700109116265637238944682875788242166142604624684025744434265050848161683855797856169401651367601028624578502919785361789351255069985117026516785429004872038616345599471142000454686562475030282892959894217682338169639392665623414088672043346757496995732371631199628131320433505001280062228350379785043963898848764298746990803451904414899946499207356226042733041148651333051704495516802443737525083721716523321838381994369502205995265534989954321741465907824751430058270729199636809568634790534737643582098628419002968943267736305269764838745188433867522870662548688854408603255640613294408085080776783064485023359897540461746474041622708828192439027497513402973313956512999626792158360193597535638457743983996408144762943198538084636379773533481476852944061293197232831580326970147276926672120290810828036510080054314767197047150110857991202081342995738012507177993030019770750211214419648527143852493920643167949873380857359225958507437767420393800194630532158067084687279403363685881776009874513196481078532647871908745036041956310172492938193059367866766676426216859058459949845985985431692026315998427723391764391179281790984907644183079495622975712649934458902039078818118963650120107120461774715013136723362549978047186077015172845149708725238132607659573932010522795290506069638428004514211087700133477619222129729220884475195879458584525396954609973452815294348966855295729508717722190814665386835111687139602027941024373200838329807484423826517013575415974834134453996092959105287497282274101020154365047141004067528440025886986971041607252206654373527369392388412560575991485162740458166691841973344349287311600886319286482825129108348282621521037950844636029447404903544371312191559243700442158694815400032602732275109302401406939086409514667815150393029688188417064760105883289169836871091166562765825280381737965531651646273211927974974746805058845486061296112761317085751350712436611709954113433087774657450768102158326635996773539148566452454556733433656731693569787054824678493603033486335473278980029556628812538685199653702449261069039060072303469222412619155425264947474915564652952853054169821148022418083944378431415785503139770202647553458576428069579111098995364913965477207287936491293799459585029272130863136159023123079642915549545764832711140232046875843488102336005754800606596131154016043147276937003760191875329655610293084980366509812391851242244512759563033986090931125820027611896746873731366615055889865603723882914252944969106580290747141799300874668794311975026534840993764988036180216686392380295074399904066948572094491406506350945999192907197754614103061118623939931964514745235179020371181821354243365583810492879924576613482830869629226090774150138475015300555041767572120233594731332114426819384821898948084880197411633925072680654066726040384941084238627958582301140529052388020604013236884227444336079761710052751404184144092897005586208725611505946156182767616722642226197587484716283436279167825247708630639509469719001000286229414083430737142538322386754303033269137854715843271933303894075090563557693270454136895819488348679495551672670467769062198096610734552074252456562348644235823488747464097970644656522630340331836935714771827818488913332219704279651593504200821572198406524898120518013094565109370204564505007897655973549126919941806899206248589562615276750637546192353710728054299865389723182190964346067915493109273051621063046153545294916135732193263958054832947546584928867008157489334469734289552205000537827887495012874756190592453981469614452769537286600537350522885071088457857004369991471002627762095863764797353654859193473620805754521820495800197553334985735257342856417362585246849349934853549276598097624364656790538471096254662521961603691193870231957490310849770824049958761843976199233636135591712332673142134498815098316512446273205267363272849156710500784582089354282375776188538463949443371174180325858047342245617692243743520124135515627866345914799704317291193308075573281848619705611494922794140823062849268466281721112471150104211660894539785776075937994189888602125460240020953427612850614890853478758618325969873055014713413002573404959747874877400030344219291433509164541132483549335736182603908173777846581919237092333615110969896480873555889907716075160171709653674745220602592689546968776205426621378968192450191452589918564400392924397434085942053593856388055851963857991431676223134189813395459651451160715096120571517247185707148622110278779012709112327411417581105604195391121125470682144424963815135890938655756849747733657687232343064396922194910242516569840878342486687588255768043078555280195803339919768474062554068090542928780112327530254020913625077357253631505710546018867088577515032216934808313769126284205466169846802607696602983397962239571071960062276687801316338283215033672491799133917309855312373941851442589421793592891067266441148313124136853055881176838412349498062313600656675795422700315809395679415680704893003885131829111786466815918412840069507603506895273000781484484220013635825154748982909087444893397552400644607237075403908890913004658908840209085511421952291376505353952609198710943655007929767949677562599600960819284689203098739954816633838146390631558563195945450294398953707322984046747549104531493914348628143460586301168779839949855031400931793313446788055521832242934209725430560420833263378692643414325559761029050004287815435562803181195107862639327195321325156266399047063285246160769736391840611724605650607081630678033519766401613315078316590553077358725030880179871647586725085482008415724471266097343048175866361945806197503880457349485750142132470748189746120298306804282355985617902486044166401578788831171043113349461827026893283292022698239266320492696316559014026539069063992521293655253407220157965420126202225319532042214145747184415129393750196012074558308177905688506349809839444701840849708546614141756632991132180158528587892678777133822936016845271139875454805830753639211761077284841014497510550524434094447249687636689304342198441952122400610870538650924805886548221774375244143299706658880666793917932475747678423354642148815634356825652536549998574936651257239364970744705779455563020026968333673021218821651641283728762474940296781788351832256139212135436595703983848018721139492669430857245567599021105316874689421513505988855030356174028154268931161162549112374696306734032681384177612372693132101265058123061994333617781866320753518939053673806377455142105889414963114284702746230409808051415792306948699669162107656864610713338127156858537441583355571847645698155171858342078286514075055246016259806905586294203092023594746128826956327173211719667171832037184346828294305720248708519186999100080250422496460649822089615134982100417517597333141202403504364538258290325659106111004103925787855694837429255002293860025829664435013102518027141645673072044911924554493462402925348149857913641864058154410496867200184926262317468891120568167525430598366562591527718907952696298547034229851920567162047889888999037989656787326935885048223749755997727669364588645930427478244243001029002684063663661739583637395754907035094183002590969586665201506900152060996806337289323744849500545210472515946165570232493196199755936168035485122526639892660327836361558746903662465753682864268264137683782754983896445989780521059996324520872093239699343015578995338722645906619114105123483902863228873756555328661047971316252297237757836222435604416679646175407012325934513776921145238982158946057850158818290943310336059877264781111565121914310404919327355869603086455763921555919548095528768872925532754086658564412184764715286331982503934460509923943944833206574443396342687004822220667419823853705962635611694912711446808358816986327101961996308617966502883034589603953678458768094840761706842934339584837913801406928220256937335696129535242690761949195552088332671972807837630399285826627295308125417965128211853851794536730134786658505192165055738151008481429213911764204511407786818673295154174947805066977487984725917581808365228201051462579210726878227645220306377061956012538082439919739057303866192772301779666678953731630382272588805418782173948262284114063753593219041253411060787600869341765048211504823010122739805252365301924246139959904680592626989120104549499747922755626215633765802236404053519527006716810967939101911982991726694409330337814916282675292653079458112963060919891212329856155694858159599448878581148623024958904536388048857313372183306853336517566494976493626847804316553838878227150958986092356950628857529070356119126343236554784409284712416113810092923661372625206811038077456508689232928417363117810839462995082633953371849677098809460356776504143033529143096871150793651329239423547033774309766204797051893518797902062622831268302200867102924348306668070653153791653944673364941254533190166621384365972892547764673517642400486789909536441305385915795022180148555076567756830266861330573545942232317381543425355092417685441473991327814804454495103691476285626309845137338845154745799765217595921587284788305048161204682238609055546348543729356221928594920418903888913820505185043421139286027345457928021115726200975685963505414282837950751464418066888250864818215704919039038019227163541760330709197324519989928785412381161013894719165263671967883193893003800757652912409185411563095951389744048647778060830051303751642945391688382966312614955238013836290944584860633609728612120799225677867198682266099501273678171305713816708597954729547594151864147086157550871960694953727393378959920247545484042473689401950996855787115924678642312076360340096109896471665325760719553318506898133306909382631504124669007976445186404568722746455757912835371038584461002060513667601342085263139840964499708363942785308547576768092548099916539529565791961989474266974298438101184274501336465895934890893207136771772222915489285550762652917335209223238464692937824370392811636118680431449380674839601453671301230863316576216697823189916560218437433298239240835633268765612044878273319498907015489790231109130122541673264097216744966497940009377195359692290475462532378893966665745876715140197892311212672331181408942942533842404099057537579821301779752549213160765391526633931774576811155307682539635284391185718218812238751320243300811257392384574930545679844891770307069197210602071033741958959585152025396282628028259931481296901760269328413912834460730986475616023289117856481237184076554856310815557392112642281881130006843023636548556621572480154812214862393298484962143647529460268011501368347290399868490405933332318296409906940440436982675721407452408758626213442784432462693880453025287075826918953458607314833410913109891482327772538826457515488519476346293185622688578060171890591316222143532849788936361853895367747498328842943524083406947419063102952224423674768228031992734681970998264140557766296443098962652215332422643519581176080104330160983871801265546827693152814442726103479594892706473596287718219415567195318444761359171013177399116275207773117977169681730357763148592613704662246278587098829270886614907229855701568484435430366946139330463681154229114209125942166565527795941895205443185953793462768623744760486819846519291218223016791160816598779335687834111404640646065251107498641084828595734790396094528772093389379835013862089620595528892584725722211917252603575315883427431422549046163389827754967196594305501126072593580282799049096313457295526167950724773548046733288598878246826262383989657695584019284161673012429410841552752632320303504104145403614881971874251058411748739751965933416861132524238927859393748573022549001809743554038957306529429331335463794253733045747314761278589255192361244053840383610049439253426807174268684194690149075467306744255324327372601917885442763666911628063688725713161462815241786770047734515533317147919411341287878210957548802023823814584564497060251280494170631702460963449619449178433309983316162056459668924258801085438828094836977754365638997005090117792625837709559127935007462649161951446663833626674606381196006680230858394827451324671713541143086248495960057569007943288380741827050432383876210034659214593757278353452337261056061201854932305970390635804554508819965362776095538185015299012398988408453241061986900343494973786217529329375679761307633732767561332420970250808067802096500925894517577972965888052690982601780104116296255805324066329132238684382185737777224766430682245401577467876439920096355752840284749415273320113175085886749516915749777931244824170790986045540558794402595019997078454083069388009057225297836873155608653791658591108452527280586472637236906686883393532733572899400828469765605548762611825143698901631823223644956797087649585524545553942846819373159091276713496129834801520968105883670235791750851295612210305172710170030312988787843455178126741025328262164326116763038944946286027452126587193844088472186616158162980289952127673313226136826283509959385230111401622649998326092937695941592273001092271960135637201091661372045353993871989523854805173869348074751826241450880096648472125652746380302655101859226192033553135800250648051756907967721824445174948007352822650381835224803206066800633458677583863724552798553726593920483765622378120158647731179767476764756507039378717664716635626621293743005852909497516213505588890366564780317057951556557205984188632558183368224526663921443872354311062763014243348327447483912983824934830074115268876228880524009234404857206368692362795072011865164595150117740060465910354985023966801278628988954502745935159070531706246677131493548881681872205976507125855231958443325296220749469132618596574429984213176200536595353541253941917201671044618421183373858561350574169178429594441283591738726005700387302720254147183245325505902620061695040450146998242763827909288846664283560654855556807498452592476705162639573212912130521749681172231019498912100269772111029390519295619877603077489905501904685971294778207506268974021679900559077889096711362513932828351251521050025170591000994452790585833210105302497518342055260918092359725088952956863101610978787193676082904111933274026005840710345540621264545858777378773068618802549117330021364565918894469612832577010266764509087787235536952488988162719660332716406309913334186240243217804978268627957583813840690327796899834885649434722226707382797052063615301092468388604923369531838615817086048094689642111333019482209398821578989016632471874629176799350566751543333422258103845349480970871140991961155834246448521941923156806546852363580953274395979138099032994009179822442418159384193964148914861330543167462504901919690294041826860977497154996552010320501510367715222078854878263732249238335410470217154764949380284713895615388998741914977861950824819703757484176035647581232847388459258995879840408490531526577552004536886816674185589963239989776534703458687663148382730771309850244007944463159155753802271264338888349858629166401546831379447710153835643610875109741657382922534917553816165123544585871824307270902217801424933030478335069346238126182924198552261946189595240215618375393719535306623241988256386760545735874718876819115265399806306716938267820477612402931625490133290253922984444765291638493124332257666954285085390830452240281006277010764686014421202801060263471030039730284754184749347555743121081180129286925898433598120333547456685596471881651549920428733976434688069149819325230426433907458585616427559009809389812212000317215848577756058122592076780409992965185523654278452015898391793084313742734379587163925972635035919126850549673726828155800359756811686515739382301778227832180906387946173217113326974515041804121181289984003071096355712109378139079395757286490843844053703178138635192354199881556323896226357583320925274032000465211234185103882255871575532678086408922466042080384633616858268023743299302165314234383513596986503205970550496760292045587955381594518493891678516532894409541642220734704833305192658773444268957127361050124749280759683099388237447555523922915177293112754133352293588520997668589515656283404442371096323125078234358346886664927140926550501153274726842278086436501406835017310571976849177223767626711357184011633586656213036722809851138933619072774695459351730185278277843481267793187958626183587006208390920312264609969386345071276266889348294033222817773251898078674518632932151582063748246238463580947568563532132867665419783955371744639354484349878023523222114137499059440965897752337178086488682361760537886790450347509618763267921975959749517103809150899637628066232842556986799055578759483363984964519992038816476951546601820472233818323712784464520260423953880342896521935374335942863505747515624164146373895016362112850213181834792982810292886854716034931766674552470040870159804212938959752359460301367521638250442037770317336541783180204451697254501091541839757951483915839112421634087289721534845709997145166705891585482884860166779335420736621721408967681156125863647435431472371971181313150261111060986754748118952210430697614171932545818242806756975955575627704017775311552535877036122856498923659010352678786507033011744615417354020197483910951282589015308781935679965088907201522874114892733748250754002786327662915457915395698058117285311503711563114303158537409284955080054737839819567757405551066683869926687605832754847825110376747141750641414028752558016774674349332570916846162662098302336804211960283704815064804129446557648820248326245524795106466975366436726353980224449209967248306349669335909221369905146215844896181451439212763710109476824754283411185860558356754378763212506534287690019819214631217097608760329006944381823742557041394288877966787818361484731451451572612941468508358164967077234592371920995716759838431033004750331035585529584892109131509854171787786602055112010288240834940031781591493405176356562639361743472312062914307597218284105946003849343128820175057806243474278640569449828856611252052395102553664902278461870823918964050345810145210750363325340377535582754478444370366337865756679004713664171831351843001112938370597500564625558301524456486079127872894938737398907373551122080041127769542566053446706262205209260561592174569887546728714484554803516500456431018904971590307006430604291219183575387770695222521526371208060437840385835395905689425700445163631933656747510993456249828742743304257014751186575711679087947882855486255769042607160754114271967406001995094341718036791048861664195131137540675546911205104322025126799858452659810974980120520792650975881012576442995268549985661927175355150492607159105361086471267364855491424331263775288569432085920031845112910313419756854221361966956028288725078362714987232405658446272643671225866546303107718163516855737621933464597275348444613095735130681438407844185847024917940652316584436127461697539920577593117495829032797178834717044012663935212559936492320277573914943414383646796903301653036744093697161044639546404103066473758961833723906476699956296662605185852193464220825143638003476069840826648745445790242550902306138770669295231945898799894147158649791200027604633473059964473027841962526866829493889472347409980357377925684183478011312981107813720374470373933486860360578219197056539213226303003830561956669338009678114559875991809140061697027437730989356968400332106597210425474166939361684182646320403497766305997667731344946474354616807181687969209565529456562927802887656482659040438645443929385964491974583050219923928704058486060479325694331075074666635455983037073620796569405230074012165455613222769372461674258567071490236484037867929793563821900909098908224729768942751038308857188615862951943049160454946400357220210856990354428990667245545449875288762394634495354863466134342287886736745635853598584782880461280906173866753680416348635322446129649376652235031913185615417023765521814123059979783500510195440021324589473984876444946714567462501708228272003621934297736343203001702290702978373064219309327478730987625506420149491053552509461490335738509767165826693562359415663998932217246384738979383892918028707525546558321762463168277250916942495609285672408598600799621837959567983459068922078513692583328783864208364750792339250443606927548947646470453203580795350402792515548402899223592707187956372500748498752016126811576007126315980218271671898791434113488074708157036895838799125272234691319739934793624115239585566259334389621521695960253894002648255365713186881037852045271785884029095324286345369057524472414261602733948801529124718928461184755575351790435927916251114967632320636896183013208323048239309549397188782979622606423844676692400758390155135278239182709774290701239868536292596284548710456184451483596960275679755415329543889203695523258728894520999278477070562690235186974208424935847554474705980269765745165202624756401391631372462624928385134854499280351130976091830074308083571597092212690656115471759823882199762815088738908052179153902885492363200361643467456577904049123899186703987698326215993193244748183083998195878978276515559709878192600549455696490356160211053223833357166572737159155883896208658404084900546732103126824710422595720467791253165390398344464429535897654101233753831252278620980839983247392418396964771174660104131803236975076090329019629599628290184831504430430899641467131038389027409774502398422176416946574134325850860338832037309818343393096305620430950801418597613097962275689703521163119780370175188672441748116588312268199084788932510940965984435690818813828329897502836740087505951320286042309915350729244769622434863948386218615924827412686045658876962526203782042727205267853942271799853033444028463291922282804637125482675307293041097083264750259582289282404268205380679436555797297662744901921421859151042822485311743278164334275974417870070164012548642305315952564560115834255977698333052879857779955002994123464501140165853746287291670516631322462376760394076443045128947230719985817567012112338448256275582559390902011185656885479351131241308827352003847916814440243089807282732398757331912342223477727569266790700061122286026563920315066856298524437127044195227763860363269701976673568068895198291263986411821757058152040250061864121345780894005353178034411747542907374461281214198162571788922373669366933847626733777177699557692300147318189691842474025591088114270835686922346704986067171310870624945284255085773598848298407749896416493835655956328040244518532052451328324281483034139425330587891145516482636165403964381015137476469687542854274602751176239774524986502626158499108794941343049486592087734125095376093370950411647993969387574358034937596145589655447317952097523532063763752512829426531476700059941629417327961798440975588069141254900707850261026156270972154555867918433111621920795464726942879675741833575240335683449260275637869958501478991000804101982284328533491157259914161921185639634699570005283720396853908146187051119587338316779144994251680644966029060083474769038434480968008973122696071800331813016271843549660816185306190967038797829797328328680062269358814554201882293918609868065408232966365291482493583306011792171297111183134195911397541396184166941930059712838021222841306834025697485788890272788911314811039446129476240297217673431670754830160423009442387053312811901135777567261133048192966654780553141548407339583250688386318769058733012823578779784177792701168105404480012938396308933902176997951038537398290711507280453277695662397016653320920784214707880035659167504551903537845009993366396914043330854725703210630897692096294204927481656161974803847939695647824940999452089983903250356118468109951564373720985049412800381986059107560132759343356973906515528579811257410425762523927373604828766759230471694236038469645062719226479054938104153972432840527991520466995516848413851265487678725554047120672294813103262880206553648921032680832476083047936743426310522133805439125062357121992260930003410974649057074876273274043500747539549738943112576154964559789323390926319383758033331834847861764454961289989254763624812387246824469274998812830629222391083683282825477159546756867789582329038720631385018295170192257526212232186237209637141849085850823698848748565423610919584639651494129669985836804757214919428355464219823317896115476606593133583934979040597672103040706860732300717117611455909520875543562931882715038342525731165873410681513067804564706512065212013981443489584441860307084685868068727176586905266047873397361108341874840623322659129827955905721291416992042171239839371827902440704234854972391546996151173343240710121669484336328206981462102036638037770879601541314957732987608032144288732736331906690624775044563801551111876028106815800208545889877312418306437391661658957650056774317877939937478129324159225436208897536689629873994747003771297096880252115851101162725554103680139654439349261855091398834142385027241924600090510075536106150457957004890475831854870112870288231772569750091172401300824704581560237086025518731923535896787477360484173794287813442700299353994656475472509113710099602627280620306984627571118045835842624164380752320039906498423511996266945494890582592549981057229488075811483359414933149819017860751888832994500035945512448173571629026870416733723390618546187805607501027976823995328832924375299526964019169778390379746397889864224426785302389872287469237566275098146348759339450679781261886342437717716610798700476971954568549837686137676954785703435593327595258559872653161986549081141482422583084333507855072224425493892805847858742831175990394104271119593128242067317117376596474032249641207981372541162126640679700744131455172467696066914739995062176425208034536731218080398279956322491252560161022826103194220920731514084531363913558563957812259292671997270691301014338125197629309242089013172975266545197632974569113563564923283093284135741319027992703837026204987218364705148238285557195357795641880143478575563100031984939430914394634791530611508929612716626155044791435309933692530815873194107797966987163002862959480303324493050935246854405975941919954515174552415677896999153682131954547481967163173791808105766163400833285836536921920436033151830886277789643964839239657551213098065041471304143066661954264683464778163461469883773622151295536624646176354793977091943506724023876355184404731751734007332385406384012581090581855464407331131692427568804505990244211643429742360292429829098739927637768709793442359433324283352721083664454157898887499240797074422027163661757513175984362945638187475100151539771315323906065678587351412120195915688957951219455786781289471847006807607237633106166655031704837063698153249840513883830241124920378174530271557959568926227876672890239030371428875550419375059944282490764977951227541061401194820035702842125076208094500977267143450918557500604586793348867633592124064336311512931874473923205225393249628648987405220071117558994027141713095317471463745370436853330019302167269541505887132244351334866843915825132192666630709637312204452034929415656931843836981070823679607388782146350886054653549875338320947182878270857734640529647518927940446161529334654131861175618883315624922773150248779707648900711046785027445213871553152910223994403717996870815164830462837729736305655943805937306319148826369828300855724877669440925894858244244397511280545419982411343756190244792010043328656039652169296711900096619696488004855885199815237778551899338373478794349076966320163239690447921806336133282818747263691287772092441243217685969761072598931628924563895031178409046381987523007215816934664142446599923975806743064246074910788719737872132565205265263843598485553051768843794557087566642686295136186357825643592505613078873603471651944165736207065098793617352868009050048376955705661171455839596371886180769321946860629794631253268059542240873418990381037045968029484887760094236673922030065453825454812081206915958312254044632306687281603769833788979806992543600894363341312546393200125816840909969949185531595066308548006938211577614795188101967519454871027556703254325723548763352038793746523930117862345705118276571981398746517907070960244224079772395664891941802384374850115894933904885498310389937218028787046642736541624205093345003134946042424054639479249943453928024955547592445747282730227776521218944660497523044429776574110179015335236344441010839651711830312618955886001804076111556278763526017461110765177088387155913617539659388349461987121297472112028546439098067423359834483788155829953296641092447457325832422571297189319765119334430347760167399005743327030676888004820462782936904163404706883275166582524925865123178464600632262660032652815497764205232765776679826087019478648615391791274658247958141798403519336995710371131873685664895496831849773859193677456691767112970683148532588574977137315092608874815691683086078092823295540530082146318095017316252296851290557526163011279099600091066551633231819876302389476146689168759908917294200149833785458771911638918300577512010542132530291598986171906699851376827439212735074888014781286001560398367701555549086197210479879222238600755371727728313120221758700118319891590797307544270428773941501088340647505868138500070596428410734994121229630545992101314742637024567986112897428863924002799448056973978853629015928425179252749003374284979349874873576554620283083278929058768073476903734118873704024805679916106429054854028800217270098489120947046817946392870183320973731073196385369616876655194964881899145734225354260684718008826738228431418650732646486688604898051919082324751423686911060104492158398169445579942189426497938166394467255870234297795433782165198310714753773377301208750303535872257669233273157574234298632031015134895702191818661260973987258171553578978262738257807687349615862349214904503286459732660362470390611489365799999749010108197172531520988438259468489563007393124701376072754892760821759283953363647310242968922834694920098989191022410403394807105108421972340929096706556043473759994251187537349438977152792316144895627429953690500080348929255049573429516478500122178595853727228229447504218458341882844402396270591933300331867724093004028439825900828455198620720766556086455714834344253890093123709352626464141059492516542145307132104166460550676086912396084712333255534473027721132571059079241317921654637519201310869387409842506523545476697882903853940094295102960803504765650844691129454234870150785614773345029281864748123753642126512546679267031941015737526330858416558298562267392442473826255389949314169850360501248595283383815187207023407414366048716055365635879608604573944784140783671956681354496753505336676356038132927040111853973171246198052984550734658254700885262426169399110571174022825115082223057871060378109103075374377269258867675383772318429985815203729487165648086814814753346106268117198989285755575012821777939995184379346745333982744567596303265637618711788504203034941298767634486805556647073605173349090541256242477120122055610489606715925645254490686939333095727543840341651329872832820958487178752474522414782687636666647875603318484304413102596114237578184169816946061784113132742048186321462261246471330745372467363106782146699716005450200491648517864778753019884043855093955253376159198366552983996069248137550102451106645927559621409221924813544484780083301774734398135639291279734364411211608135924515598987463658877844636751085273542135648246948497666196849194123568423286071488795308672506989653348036533681654917843412766233918102634053021778072945554737356705269088658778971086144726999233948785457932792375856805689931068662359287466295393725775323469708859455459349636350729460987728522479322493795097492902049805762246606888813867606165587241570749798081124054446865472827613804274704109196428981130482429109796629084100004150829465735048669295137437667228217466235710108513919804066493151790554013353330301070916001640084121808140743076294525290656821633402986573624002151973126361260848728437352700841797074398440821967042329683215217718037964762255828401419797221496014817986690801554906556039808158732995134037230386121216999660673412812648595290707644875342088110905153679957831626114996021528582322058215521614801481252042091373394140719293990567932409911658027150773755586819233707519309125025431122175054841529380228345224923383595224781108908133920755687508934116837125635090654027110269964561316234298456077133757943863885638585644156686814508322625796421296958714797818913082469288324295954061169740984744221227505023295760455594492288174951305513545478560091239846186834463722566481642336428108894546465259332622638602252986339445900205659068492072814369014359421578686021302000848589079019526569535000051968371014197439878687450386155937613960458164905938525482487208672371012487605265737336175435073464926311846254019772356237658351985287374692752120381658460425346715010649494783908094913103863843320587523681492216818478500426464059109720742325203325833956006698372042827257301365460782971216603681275109720983623431913912727909067944506971957329537434307424684512847100638078923804590317118406905811897528359632241788406784819959483876662562123654867304092119157612766561840540249823920469021787827323067391062497901033975018150969477116169123118666771914068201770875798313383263608516637316337523039840744312317278306063902412152031558858291568285735345487983920894236811099450195618675677498632223513082812280100449202951960244342285317075297708098742331448828972847972137984797038197577934523716851535903097015909318362058782934604538219835843709396007238656269683915971752518528704058663327233442227680943344518438689004461212992644749663917649914599877433551962362279661350869788770652103495822641018198353849137709413244898843158016003203931275068728389898884907888893848111980555822748754805500460747177908311729837396348328595683114539632315463430195172622173161244371679879511937477558022353741126121587885831010430546279251667809300868178434521295943264419373188325775390717287053751299248698427254212054608900335949912554322825724945004273051630412347539562251203729252708231289806352153531879311043795923916293231796083778576855998729051384922530807239887005362765143397598728023242711178284553791018711577396643185550551206291072826924954622106264181877606367605471627645931941479489300093076060009301335706110788114440337957398272735286366004711262760229021592621879455530872525309594945431423748010349592530611514779528636951706263466847869709761308875388365341408142086986327185226480805167853867239016125594624954991576544570146230502142213629659801786482241837751094780110644401393853683783089598819071986882284944655841541922285443595396002236830617075835793012096485421574023414454361957865593796780348040228278364149706375431291398487565877950898016614451702050656539671858975596582052685080013373584614534247597976523621731608228113055907026107099608073809792656563488301315262811463042522484928342208394762767664844827947398729735007873021823850076379690577539404913162958633088065384347142336926424130529654051887925438201616640695797263102695454914143367920829668039814197484618320296223174824570184270285107766852961734063205997075506605120004729029921905653651781854754985332586466204544772576672988792326614500670212804305269232089715693325072902084347456813642205567305217549404969764693364647002238468405227528493825226230820809469799019100029753418043521409629480601249448041617119702556279471876956582614285719245044199211341538055509292291318149167329494447174245457682478107308633657149886459249041891726825078859815734504101337484289915464609322652411133741000267832332267757216304288989122681059373464928973509831580172070136312825113523212020880362868792422000785130045838732785261006117571697354653531264243245957919424610676615669055226520041028632193132063407782863414322382934870403105187062018558553530204073753855292143010747030518295595485637627132141986640639322206591417898735464937563366055764554493779555921801630327154664967434666949053360610730679467274469779575506202993888810741435079839496448814111039089754434196311909670372105061397486163825888841699176013782335737594023104580481981202238724338575996704233294278609248720904494528842289695455903729386000986661800047742544875960978475227796237944532210410777053732373865212164163048544512144496767091513368957513889271708001591162998364539764477623827691948369732184098594969684268508580632752841789490748950957573149338387141802013049213235759571385221549056746690110107224770275775409804303980066847505404347908205466195389162439019762577788387293811845232336635715221376586009095963429226688234966896435758423322039379781080410072170485066886856496652097634866593595745107098801953889806385402055794169399026047976024401726106555561188669192933920766388555820006270091429359941782385734664745365944582211541079713028898556323141059220983143228575784660286900057531472312323389786152980686645020131100295284556431169793427401606003017322031351736218137126770920314306625854845891082054664366444146447345190818349709639668373636818874622258698281544420911758681529601405612980616823942811581859680296245617627518914652531149320951414465519322049874757732224161749453100554575591735556726016148019605397738982381038078139997146045142063281290983776021769200347844201936146440980051466465417973354065762853452643520391242067794375686174196731839536321775422009659134829125348953212112656824421223474966859627467651922464233927324479089016939179197579628720588718174803382351399750285234219185658348005735586817396600208152842014096136050420501480928711472103396807288238227362060598394732887194302941612456091448240007746239229877836538433365003900746685318098399143413957700200406448998496539604526657927098139882470652866031670597667330755598746134023170156782183368232135121705145676290626390414888043725558357317575791371690606305286287171305719368650754310522043210794328447028794421937116691216097674981557891981825019187292269462714336261153639489871164072710880441317796107430840907163917834051841569337662794180258532619208899365114544685454439878248038711118534073103408221287419680465934220153107389127963969040391929329397837132164775941029212676888141222647683732304928021445286071377576409213187784142638589676224968155827184602939894804938035173841908049765090425586719608383586166956364768312205904495572268248259121163907944803793691893417876005304364936699728346461926846785574230675033978616075803192791919828750660076486068498552077344707181144517790229991105763651008465300875109463032227382239796860312443331255881692338147076160181730075958448280872198043679588555402587496170490154550497345261657792854618392025940528595670450130121825099070549890987471653451759931273364380239936679500865965407287304616423695735903487761910655754349781653086895666728827944175190968430840252573127635799601169421776187528354417249727623329690570496686800613258608260432149775305559410656301764115778614647435376531374472022183859097872813197867523993768280217368080447718042309440018846136650650027574986025946996664842451226827732356029309687345571903286477180680403318136729684998196958608944745917288850541407486936238443914392108693180617775813119556914591833155009900082539284453297698336551231958236460351875364652404041041901015222196613054092156474236354147811615856408591549181231256188504740062010031534691696826334786365857514962587184631505153091991066632470943178863255617655033758424433761951508116447443237802448044266414087389336408786778350628211548419698960504670765071949498144206161439156374812488817335922445764970941104016172917899884036650225666799494333468032226004387378127716865085043983951871525335779564299732169334821424682851030670136976416094926118996407899925905521257218183777612598139950968502742300028275585880347400874120708517095890573150345877187690266012796964740554885910115120269037528731863654040615741217817881634920505873811003680384282461672177144069780171639256228877326531234577486439873882794794453261495953536786495554442907105918498678827631031343294639810531284421389200448879311456454219274384767088304234568519834766949396952517651977072190995496511968187876363450538210820754134851529952166450939895413349794903076030039789264055645006408903793609113985829135953205562782330790334426381508515016756114882963361500019324574149609287827170513161754924037370714105789803017799323420751404187287291742397701935232230076439652568248852423914529581107811760041464978220151698556795845360402897176268094542838606920893243250360354425377923780120074212265855571927052088053203205418044438660022637173786476570879704801898167980322885261903050616502900504581200467428858262739497830270748845568199907504631130170049206610471834623534445913269953147583654912732482583062158957409668111665548246568081057770562532176998074917883776913149456142805484168423122683269043333036767582782006037322983604326046156980039036958845725453259099268579742867357859755912928664732643738152920070963238474540606486474237748732125660271099556905170959307941586177380042683311057739576355774882478493984775716723652825623110143949174787268124262178259881095493416897035665241114216472710429779578765966067269348797141325255809662460948906429397014292696292643206097309709000773077694416988281319269981182782355919182126237803690695786494225800922083745834876246065242603447227740531323005872261370660622309847446664048201418481640268618694282172652775080411246418970138449485661623462736299610170656225177510329307918509872222276565518519923124106805064628835022519856576506666754712610228030594979643261206966382079325566308165937768494871559294445489201932995497556698943654587269113411922225777737625602130399823908912515436595618557268822073898578213056584944475709966794047281395854429394397662894841910753920504484131121250038760107094299359284773987546213442794351708688678712205798887746714118223922307830083834750413098111986400693594304622425527884064408992967055186450955083807975645769077079660668050634125881995858978301176170941619555211320440004365816941995398783741086916044413367539754261400677510599666074257501897694105138736586851771948975959993771833128330842064109379972141936918509562726706688403310580950422622960409536179205408470442363443770886500980646982400235645909758522562169799175199210185874033529916243285161175229378597618197283475960176476841359380326907790540115554446978274060246131382955092268177011751122673918543422008091522227355786688659411963622660817039980900650618491230032229734154833516227673122598884242047684149029311051068923214738433251815253545429420862454687328296932888425642236525776206432715871428151723366979213004665434154064418432885229693312856350873326867104696849399826120270735881045367882228492330106429648189628836570272970823458035240280735128963172615943292721066704112938785579342309123702087800983360168508327542584147729375745547031138935648294788078342373171856107476488239769248783450404654096522954121401794888758941713285822710206608590531750991591863161937250506462237480394568495921439161674562678623962434360296179914723922863961735442601957928063071991379745400864358221401900189991152109411927105675436006803696384888361302911691299883839090777364920626540771059681654413509427344310439138966092174718769955935197721523439345863706383288986723090458954582428779398145222294041477161685119410653903859270237747621929744082405793048972760904316795048428797374166261490635287057823026252828015379550978408710406101165148408913763616884030363565625220991446450756932853993165246091809545258269686705563241756640214219824798320582017610930636879171032207294196764356087673044982267288436784979610456927092489079045672930889390823537277533540529127039768931770157123745684027656681963192038916585846520632251124233761976751847520867510233893892853611668075163132362229365039760429116346620781725545746438733836221449924677101446598598811712598454884268972226315542739981824847489534801245771388462620750134490908942515500962340980118566070484586561168561292544026123149589482666330777769027185946166588426972226399514675778048098889401712813407118274151486537791215828420739496301047164118967172571125327290289170399016703642123066835233922901735401238120003695403147311515437623457209599228736545367505534348443690393762792479481095755969152991372043548790710076838703811997682765482736204843414158253496725153504463866807179490170619039626444610158682958283267083327646083816662372485962428966952912987655650591940824057087386754927616709233115642466820833903160796581842722962379707858838698467606863925520004712639842476267144498414120040969672921282468371778553652637670459694532783452129825598691812838333786355160019033285303835697083113295807270581126951040697957533482821544868841500254520279468180620077129873747694095337226488229735393402415483003910733271494311434221369161010865752353032763538565985581706224196594620082708496803292374452202603743355015209912777819648536911270265914376330286073219981201944983306991240879629095720079009698594579313477826129343990955337730095648130617253485553363474770554614912593652388964947791991430628200451661568319014726226212626351058530672638809937247453821139789495438019156416344706250781822104521653271822134222240326192949725595682372770041421988546194737087555419939436985565671635396462301470526891342317205169273671064471275274031866228059713588572468376245576232697782830643124980558968063870653561699181417091596528745775647363584580493500923221466628133580799254088073867520719521232047958717657539024398470614785220488400739552934526585853111280510434718614648932793149707889354888445822426431475265682594528354111963358508545157749110816743880322556292362422386521107719914060397112400000156579912663368604423271406437654967678203566314391952829107433524988008971704459277524334544093849566578364561852293723433299402705509927229068900182797958464990290877033185267073733291578199466822605803672076147569493308162578442266816149816888856943311190133732668304559495658774723172708866111604947374206709919272321268101639271842112032129767970153474542708880726908800229933430293795093822460411348256129856359024162259770760722362481508440234213001429548349903725923323318747293339904400800837335055295227063592785666507912341873480541520232617100893929106213855775205035216837777200249296357492479054278451777258508199411147070786281734454249346154993992951973540200546622543175983383636917544403884756692080248949869546002481447964902135991364878794503401274106908574224702910135033940407322960824536375197518613484311716621159156711640511772294522695247866765264965169046764648641872245555688910893283113581850266094082409299763626545796963061502741770133007371442927079620120152562237866775577365704604078988605604204097324755154712373324927696892788284180509441269300015427099286845827508854509821381235642783502806496721620354129119444583799703334819308834864549880587186222420934796986889686361017498370216910168259865740712823264380927956969237634459268060331719859785137852014739144983372461059985450777216294839800056147335656666895024941865965689547002129023389481240557150940586307164512061919943968065955072242558576964631544152031347260994169874326845351552467266037711407065176441708371771203735753272826272959549924656692413699402333267799232120837179843279847405390001828582313238645916737283998463819911415303090364476844386019345456103122526090381610630164992684303941083437380578566832028453180275701549849697111771901827052477610583186297660492005936687920085850065717900558979854522391250538025705839865210925404983214389194337049427661805727547665788158045250731662890282706317999063400560919566097413966125728506737088290562012133268864375153625081782620444231593744584387718543508444670180732575750834571990824038121572378725700998153960019455224095492211939410927724615066274529983236730522156541552120827256637808366524749913171390251080788968110306358582339227128718241630779613725506896650424085110125430918591084514862151331245626509055483827895883203391772453357766974790800375247287038363427706424378057295087561377084034943173088462012678277905605799148589076746054713280158560847579750864497179331981035431439194212683028918087265255646840260542346904845932864172676849204912344777335288782809319465465124221213433177286322434041437129980292735076933403659779788795441934637464065105063098067951732308740350451272889898296827400432004316001504486525289268491181472774319257700644013878023336497400636716443925537059647061133227945021864879182320337053284973794457769834271979030151814668421292720235153594392889467927545604427791175584776446016451272039186232008170365794359907773358071676025575004570617229687294106015599981144557335672111538301287525394924019179993828760172105545406880143148513018741121622169583010222818949749621386463732181493800186017786729794631927738800073334822614854933724779052538151388011394283529208074167365410630158580412598525970239376614614275211323203466386149134803150106038659373341515126933876749922256275727702129537307749427789855193335985973607501347285749822250427701557184665039250643327735781521264953611489786722024887583831832988290770643443651814581853810809176551010000033270646513207735386484194877456263452643436788034693716714586897865969068961643151011077061841744937791313616426728296397521758763588147070095451650654355641202758611354028142557112668087588577123414123153939590684516645188904282036692392399117232518491158274215723020726228926388982505365953658889447841603299436724099862815925987498283508293984585169889585117873573928797965611716118440859580444682275933019166762407763547791073296012197783768140779888330460501126961539544707544700278679881701871977499076579654138502854456863177774029728186423685661890480016727732749248677540694033173666065047164503881350034023446239318833903037586437663630968858125963659076145303730874720830564942907861723632471190547325849016357705088269428809616208347340162320803292724738650344248002918022465637805950647927807574170383418211538783993513323680249141261654991406341960567882719887213477215404635284204438771420739469805880828189191810252319202921541173786281401637463756128840254350626305866873807521194077525358339940207568286355056495328288762887841433884772179038688162920365073477607679477063334763779442194624773288288985591713454391338153454156520862243157998847777364742226432875042350905264665440870199215395447082729603493755990263210945967206716574695300027990645278134617515349158639759331742691405865472576055642210938868887850191623588511004532008049858503347734258334804269493208190639879477220703604515911264341065054697593879734238330627725454892036755732748658099557831786047057957917426445394933551047803791524030848009437461522863554713811683985203502699398904887196746600655441182907564339420278445884620944983425035374626464904432788314081882426321449923163699214849727136830385168770199070845202183892025013693647014471774581212677285525857943373713161126879193162326361732638039578244470836539286123813012994833007880692137009466769160184981671473373202010289132890475065276663193355350424141656465920069544518119883696179513721753722927835797445491756747153579884914445944326330188876717908258734370045556915045349921701926146898356010195063179249458069702529208443791134709433891255025503743552499450894135204949244709052722727341954928259856355060098558665602053237383431117984367080141563178088221528125542769595137500057984039000556413547742031668290205412847469811698358595551116984764102828421973963479947061736120852832304047885795377975309702452435955280112089299805037938118980554959364400518894300039590176041358751057240944229449489134379657939643741620025795915770298623676901047390824671750461730298610110728572866790927677906831695594136009928682643617666522149585222856081675834032710551379635083505031892108491171312712692755458898388303588383686376184664763645383415131466768462217370474684669308012741953366379802085641065678681860648380371873458203670723385558754666063520892956199231773174739967252892732694214502087272518964828909380461753271157800743215013692154181113104496775597700257022946906559398525588725913925886826765880905781161959002083411282085627071626120684380021411229826350136570565935249383438450436684138946973445484369439364879153945120067969002385428587455482923650825200217684846987449545646010599565376742164370624165910090825786353653377935169427927642456358408716718748293785740618755577736195508817544168739334004133190383588568371063244574080271320137923951289417302989863927442067613113185283766506629244953592232742107901584316450020398661260914859839440035392032375799744946457408805521575588676620616950014886649824415624654721697395645453165175047528369962822920352217326097256817357459348627157694597630962603215648729327228606520001615403900723524635519697532947089345301602920251215396030163421178537736452509645849595393801694419479356895389814428872228390733113843035864873429274125800514394793226801280683344625521676599449292091297093487826895981870019145078367614616932512554040298760531636365495602382187531522800857766319660059773684086928881974666717130861785354614929843206766027308016539319838123623605205500646903059352177260238956697562271551012199706983761821138956305756005908971190649899442699842110507799776229877401273083448577536309236429664823273402269442392778605682546453202197551806389167380312234462184956122112699066450923317402051034122170752199457279624712833754654742472001949367171315133323757267758428612185274647155564088055206440275243081353646078438172031358934404170114382049677708353752880999994831963033704144376032451066306676865869094312700738243461817638403258370621961995618913231473088149083305832543740543788217605751524256724493037968052549592683893980431162528464353397707287406886940534052320830282357673914175305152579536784951652151342426390823872300579681151433100779485700571140081607524499678820678741669743061170288051736682836976639173452075462276652253696683890877850758150100214142461660184950188751084551830151937594317795291168257219577350441051734505374557052080759097185174665480947584017495491719886754062552373650745298557454037440731291267782219257685689910417847121912627968479057273266301409319677564396028739669741979688039522438203411776429487017338148649326372106949171367870336338178383966855595209476921725326678125481224422093176650126389088014673531911504092353891200292866087887170497717204478386986319982735464759440538502273464130982741015381546225157886132663749718112509874034727663240310759946502907416424767388135112684937089255207321270336726725970000640645708638063994143440090847710021823265341584037137661622549203811710903344071228912134048981818145067148111844323586453513574491227051104634760667173242353102540681830539046439221918522979220111444965583888909083161625237439629864012614662269707498461032533780797676339166362330519366912636331682588269877015485310033084287707785402264952403697850422760511494818357077818790263663076972156718942895055429025765434868643235664651529773821910813041546104680553974479580689688008224604105950764048635747457763578032282882331798552428407995741140676338857695789753053351477330609858700646044537539584702278833262959144193343273414309622262697418537166616492768900790122088554467757778392526061135633118729131916619496739315699620421589951357688557705009170208766983794449016995065710957335396289903925380892002617263073744193637668626002026734828679833810594819149587696273410380886652258944284539682154815184568617026383188176900691417606712460573525240307990261769708044646769498696646808215101091779593972027597192994457366349952047633849309338487038384705181577656035043646172986038775132427926872390115739261429861290616386989328889324803819835499328506134229173323847770685452380185352430363550878126345536321960045896420848104390873261082929349268772172565856795926114829866651381224092384052874373908511577997332889538400915467854482674947597136615889065305960272912712330713754372178114040387905246777136269622527647016538625373502733400790366644336231752852737984708648930517681232209496426181483104016317055760823125142660281381203981738500901015552403723121747674492571987161380107655372270318934364206739369259294956802997667772559571964791816128118657340318729359119806517273021761133496736707978928737558760374455237558643661409528177408720866203191597519304360178266551689147912527983731049005641420128155458355777361128590980329706343019233719407010949950442820832910837806370971113635110140385024353355897159453675479111211674619321328714863972862778922358639119273276692082254257489111374067129873131404558445800859583998551903116084918401930340081208740777444408264859565059147293697355190322414494257568037928111126298786751202782718712978314520250881685164071601338003172738248394167513308223899743218199626591013385870637392613799221324065673997084375610057328239840079494477754245874685296221712628256776779404264405564258940676718309898874625197209651833403386136501136220837521933160181390716386195746604911466800117753073832136443487490562800285388459756843582077489431073589865488319131811056117809001261102409377694439122028670137029580705118986168372037737681826452841738149428828817064760233805627174685851080263261541104628589432717194466758699967733285066894371202942391910725920829260916809281738253761138755605285918242879792307115594521632019202299812070716868904745960044457726444298383571543806896455386596605072934204849916406346228492112493579804971164016320197157340059885122052814676501025469124569079435295432571589082246726902672183061318943604631735490180293079099704715862303377956020450614788864713568053853704748354225487622505064063420255428366764535635125172267446590954210365453696995813181242101895424452084340571585526470390739787326353513647063390007212782777617310303727030718764835482649855629572998200224489824092742284047458545959539634064443938056808125727697583289049374168894640975851360038688939277211821644427818463103636679612081083608350904653885000815793512044396705934274356643707375352209060955112016759232813730608902047810131446803005149946937417330931331609353331966880590857867278023309339752170836980164624686895534156630738161568618158117666682898295501670762475546935814698149259872122394794179162887698195817021775948128342908439342944911554405971394882914340994923505818940773935361630449798625149359044222850610651736824758761024236985023523225492781936911653381691563183894089691383769105172874012408108926785590648239224654441650373214560603996325877475259643683107002441316020178510079894812882940932410075433225691487287347678844956790316152770464821789069526406628822742001013938766643861432116975288391728069880844004474928522446760815227008091874083473179482842700147192644622995762805732375057476833471121592311059363324015525252095736516992523911342874197515753611467348939475996807656372450579500612787320496433037431306602533340391276851315806052706106709348742010422443729540396473316853566490908338906479579244047984609343945892685885437166367646067918472812193412829960284396632824647318542326116671127884700496274111769285348055462516595905836194890180977975231419553609747379763501981038548443816627908580190969892275826988889192193015197113625762742951477270790711058960887380872282351572950821276691718943685533084254341992059601504761167603102006037761743692186002199635405945604064579042692586790108286832513150791814599039310750214822736748244385099098990509601394313953715715419284478794097355655264365096222447623441197333469629624489908800746709998913711655037629167070038209890408701541799417532487794000123630208422574680675123270220796369294407171008496045586228516379390785424141475989324838262150693837357964416759197144781042336228133223079504945290352116039686164256173721269901609279678033779480827328447414763927399740004940036255999813074705872010846129752146669894669253574615258849367918806709872415218886622158435622258414929054551616961398080481914253500418599041572847614853295202348414444513418554834864402091768407632445919993673549962475057331476205730453210430220986046807987732017860225768803347392020001064811119199036395319474259327692217129312199552507885113801298557870765667551912751188121762179857296118534254126947086500916613651729557126284899074456627458759411095333826236716303059595903368586839366234959874076504152534926741982779230944945099909799157166235674141595660705491938065279857514452845723067953320598637879024456667124768622263347955789543800331565237778511482198635548976371390839676873567021922228092444052271961582762926726445201115021542154642999023305006154146758699327152917031629541593538097367387878552624717716146430246240910839389583985955388820194549292868285330365977680537336654851577434119798017075011098126034591077619735386790354820432757773712607927023165844314332613315171727042903311218113825355661665444774695040910212521519038063278168977091859257340995304781882973565014136979255811794192042910121370265648755878107451401101879324853137325700079170254011095399606493754433616160464716467077108396745160098743121155534946709866074371712012251303032802837914270353571946484583042778569235062910787979747033638900468995806308552736904948395680087620123767140059683021077388439125119755284378479977159602318555606040762369576534211396657800541840233404637400274568496517153050218843963841609682888647037195164594658790345838353788433709994309934235082345947997541877131164493907933427363988217199218424446990181175820154551723206789698660457004725823853056661993103167203300626677699066293932904789611570662124253179566036041927955410782680255666681719905232388185266543942315535487417339738529329472517191026160272616087741561319198228453519154153143310136844655606013958724766166541790436875381517624194448929038410082209011357653510624687001218443150407380265888763142717042612881219089459110690463152564018390973763925346008057218719768426849153043451489843549220999031483657449969717850221992104214817890588870859688463421039457542374110492890151499304277313817396471069901436711918244925988965110621716709226617577300890163902502016795064374918744103143724476746173703038155792965517813739781206892297862751990294705079467882638170410890784013390984034515663863561512362505170878731568084770976921756716252207636155851403989571430392919147169675479766395410094235262327911896792526310243053902848541753873283316739793628716024147218200120842942922198165638101582735392877008854232121506736480867449067233837243198458063188074826712903659850172591904338563745015197157149829254073412481080402219967455726336742803053461147727140628160624937820803325447968696873952187637653540879865447210722284688001949954163050040740459630333069743990686637072542120176205955838445898681029494531435070362157978985789035680311501333218358548483348281440525200760378973575642310543642666685176469351217796233204311769361729703669710601371770611090284311754670103123692716394631656770416700056767947523120863842428707346653688646143831332191248624783739665803538059358527976489844520719700606547728301407165513156836925228159629786614493701523307880723709637555747668955585684981623921210761845500359977780830589958925776111200947679989994835967270477049963010347194495312827669515077441692010788834964563355117912537848069571001691727286924794114964044975583103479143703262317398784463988251510747861142982845963585153363082189098996411118298481914747961247866773837399498387491117767935447570886190862036610907338111380216847820164541264823229324912557831300191125569867611682070970076714958481662899389609991930381875890759848719302005297685072586348289461328566203930771945996036145983424186297286114302783063962932121935805688297285711821903000664490098087507106608135557859250068215061662290055242711914272507000389419537309128783695244370374089272213620851562993713133104708136823365732232935561374306760228322738240321068551132416602371582241588950712298515425075950941440672801306879810714921266219059516286707323913282726527885358970780484289686504496623491622368079043894388684546618248759110267387683833499799168715457361478124987067867060713271227225790318219071230667376550618122495425793091347891630704083964350927865160820681792395682552531928543196447641796150487297234442707319644151304370717461713260427807417994871172584563543947847619164916685265874913478811303356635647579132343470244011806456423653542699889926594931734747194809477622796481003247453496647124111346860890967951256324983052837409289317413222859558090603701726913139249225995862677055785633966929848954449696395359404001412269751247024047513280070723376284722194389532449522595564039398164946802434170722311212004368857957417852896674459134996601379099252369857797058244689158887602868462081345148749099139596041685874121900880919072608081037022380703683703000735094169061335315656704233400475143326387186615038622077577158141323286369474188142698069153618525473859666605767200837549938739123553369054008157910735475550822164644487166797511228190873471554470184417175592074784957406659559211095743938587973689157673205021087374536572708192158425833676889828677990963434967879203791818921024048081515742654035101189667534266212645303550571851518036323841138342165862893543172442910792781553860577876850013828322590615660954939641002066898421582253299438242284311543867166450093373840841314836064363288806745047982285758448030438184342116109298065237416437809823566499679951891255256884490731552414680899728309434209766597357611673380137226482046565251795888565177663114968009100967279099225806876399008114028862960010469698182955435807998312165143645344149226384324766377329865342223062465213396972230435589468852627440751800397190405219808713486820691622195192921179044732771665002647635633814073860116680611308672030062131035427405016649438920998809985352707065007197548580408124400290327855875798766300218802812638050881840324182321182396285297475794175933150162412753891135700492280854036877819891238162225107484659314572661212664724474728157932916385276885577921923887040877626929841890180235375123822278661490399734263062875991273550038248616027091609787192005140274171059151545947039049979819202094113726484817887944287938297722100207291957591943086020790031273863517301217730623768132944902711571655682484650937421785507616518863380018426312829513833312293672855928778111472677999819982504258929754088859218355676818247345358457663292339772621494468142848365798910481344858385914302661077251661408518357569520899649833520719521958556525365050379819729737824442833255762012025395181396699464674999633177177440259047560805463059965802638587483156621941196824234699882204851456547032171903258245505998037871679754691827180926956155429943558443019403549346748837530094929122815592255815413271320352404705731686012401157206681975362177022606960927862090772126470958662298023597096973288376499153913249521929889660118946760721238494932025615267210955224996561659068612654451037180213115993921493145955597610695249831064436277680970673725845963087151297132138429078918931548339965610045894985549287333046956145594753006259394503900008391692234185810747037947066927890293368615800884566425723349553964666563667033531431237933268723397838349097712929033084078192662858378024434599761984903744175686257338652041344837161428143257480174022706662202817604581508904648249381350021803717592426699371808189116806746544236161362815626588875540554018668938941652558464650623248589997338073669066058903695191594225534336390784498373248525985941530419854121077538721778561979569262209288478821967084962642980143909835104985866086983912573825611892504411545878835872087626554585377621637224081930110480923301043187613444529641228022962838898766942508746432916986129616862111681803140264570185412369938063980535501764475451768157826573839941817330561129068202211810960928050257385488795392446635199151408637636139988059785604500931820808426108038359570230221588450841043139463034611174252557522276890992088626553728573457932559921836216934926569348464396530630931372717968455229785101955781626038846771070998592302300186950747378948233310790270864673989425239112521224899180602192494342407143053515546677794500740642664325303530630742920710901264902119837108182381569259851582426773647139273945299295690591647024736611686301837572900026995559425154998606346368559532376852663511841099515583771346125403576638810879136034344662327465290564125255544763059232059667236775715653247009627722541043937562210003034270784277280313794297717517298234229208424210918851727467547006435026004937239080726445588372856799090305364223860855126156510837285709045737535009110894997458915400382047697675251154923682384274517205347451141883561121717273639846550304758321915684862995879939495017507383835012952981018865586494869543017315440369976955294751759427332804478970306765999227505155164669627426947422402533367493098809786442075484161338303845711076776036477825753241780497562318401462221216039776167933429483516432861541546694318035870261522289302869523109855147190770539608830839766623252153915413015481267830027976826724891160701045388880556286925171078367561818550923974519864497391458021590811487679084817009992103626599289675042995453261885344617567254751198927576836733566802247935696162317565700625364808822590829856195824948016573834227819680083743610553998644772361693298619228099544740108290592756996230693074722964673019234308581435835860435763003048865274334107302377390399872142683719342322704759743467515099488435730504175435357856873845940592452475724552835453000384398205593824861261071179613582460838068954613009707823877573807097032288196572544898193891092064060383215857948819579750462035804335253062406217190194696392905127894677331329482995359381372013172536413320155683832712942334952905030897829889070614215763698504720987958486964376043862299111770354539890504991729067794474757788407826679840036701904113882024003449772227394427132858954997520088092270905129835682737035599747565606311813545220386370797626044575909000306325658031302885677482008300724705473346724274603693345664160305420872860200138206462646229108177616801250974724374191886734542366940240682805944948207972189377785850791968482622257260001108205683989415337896527693731187348954618837343717706241291856322943509926442907313736900586860473015036487039534462582395303319537334397229610583705643771297099737599857868626094409342842937124458463280057565806923878834487982675681058746939889572995758736696726025586900028183320411396031527550228972016744602254743233752992500063854945953738322517781947147867810192585703015278265034278103929419234464510305556905869303216815372631687590912324641626020461560450362143730936162033705083798990107433698342142985542923117960634357876221113017973974180229578632176129207488013642727793260056951792290529112517318336478066317239886450380349256898748518169299943609084677598213262498157893887970253954176741260959799882837722802010823583084794671793659452486717730487875398267004045857592276016981298249011643141089727744140421948918874017033846469585405517643683535969792002503287483581058046275934926952596938486710482617805971159362490037101358311468374747412400576375804398605187320870623623135595502319879555248188689969730296793285677997426156949905778845738158649178746095818633629384813491350098306907744441166151282073867149487840200725999562990829853812815937877269343488346166100804007992151392386320655900580483383610577548633668862224210129132335658078427816647302539813200481399446164600355957576140388372980807438361938778439660890744387304548876091261773926494999504153218842803345524030255330544770919758879123760355488116504708400199752807242402905309088960453296406222432756783864026623162568806952793779425101478287952604358399142837124141537544797272615586662835269586415079362870779586406418356217486435835768966353243478606872318042882533158339027111927638974361210181832981335901043661790852435883515576669762643644519037316233190009061255927896885978442683657106766858837385341813850285131459573877836852859841519319333419163912666423154674083510684270990806947531931062266296843643141678913527813808520567860330877554862085479224816900827731416639534174150573661207648179782032496624652948501081416907924225504950682108846678620610061798341458037991346629488631377117131983095513607703977849621182969649753095272452081039964673855400384421928761591831668977706453144326949984099160107625606458560423250644784101676600787908653385294588135980914394473029223381516670034089551001961486621828622373469489825274289099448089409955261710832957659446309491133446767691311546860469830560016483576392555842189099908910094874258384295966843739119329978022726440318264649066591161906796172437143486906566658559377244451938173677260449054933941320020419124038417445328014007885984786550946483792923081727093334561788566191181821481729046887322739614182909622669841687997166252067646389164931132916858147348647357043931949787774661273946721112873486915877726188743000263513116885596270422672789388603074366109412849599427739825220533903242300986965207861486424617184250913903480016572124288317140202637930090589654620260460624928943221741084013773997337943589989177967765729069271542546076955423468569165325638837405293138445990234676078656086664803468055049455776771976866234268641531022569569498109432877047591779020740425658102699644680343091774460485273840849086173040624620086518948804175033326542363188951592722296466701586851311075015012753520504302515281123417028609688000589541832646165347053594812157008266287499553790434854893974747880362421157102938139161891344194803381683028819567114756062190966792465357474203362020648973075711949867231513545103353435194109364977084994270886580712345033835809150303766409954661353015835116650952921924288912926695257236110534070294654189341722668590763126656323676955051025232673689868042106264840115809474120707694430411300174885024136605686908131184860043043076872297756397572653327179507663553313407051367819662441116224650834920371122273490410982078214775985610524634421405200743318629087017775616809476203655279678514270682714874114456228169765368311057020042059967782016052117696246945343387871128926195658410347119955260955972459436567682521156626422943102196463366177899751276381460099282971963583675066978979517005079666430667458357725803324540016130360394812997882266318511300222149115199269794949137271366111909145508446881680798456189488142094954449693262136040259620819240589069244231148180826570255255294085869477511876637732197548174806261668875837142168231490305678852475501294281707674084576085190133223636536335773332238221889131982891897665229844197417739193611938588587864754064882799996570507249081680850591513087088128630996224121285337613843186186962715536620204294868679543918563523379159981285605631784867490395140749226977501904718388333612997501946087063383233413767698677819900253471261708705005285840428655752418874383702203299963435313190034618920798981989010632367385839956840613623775879918842818192785915076564758653152105819858969618900733170763467389550261405292354992612152919364405458927733934863484348986825860317906966089940720027182092426088464173267957950728324267481278453600838614679156535981278634817686056554979645197686379431990140193641341025396948566906123742875101937142572295489483342083444326658206116456113125685744431381675589095660636145545806089268759236900513041307399881704399737973937573731340010155967288831652303456665320453490236191300909892422286322715523509545333885905445386006429492569811182006063032470533719321073906070420792114927432261960573783797995160579504885919733787048107136576026648377258909017723530365651244354345555139847613054685853037853614572414891916180576121082720466854414905600157892526425279299552918545877089968677936945121303397311294470725585315842630753496342823542689588727787698031539602353519872958847591711326784511498203520817350140833388508391496195206088741088162848702549034108475574561130949859135441886217435921728713699282324347035740015369499330607041633683675696708794388439785082059316089073474473063104376102081013392954398490443917131571212450964827387156731906014179418389294005607625030769781414277810152013489668100327595714004325269018375625206364806277906529587956552708829088405605671964336528356075637269625058319472394657093440988794441109817988031131593394078043580265843979503282807980637959879408740396637884242364254882881811573308903965289003653136688740877357746495770228451371491675140001725564347500514309157357223965818791942961394281191896211344300382908221941057774858352552303354284745047149648029205033161948748809552985968803439656518220457798884242029142400109300588877019372721802670137142768949288744121469219803821981248848242389704731983083789050200189685337736330585517040239381145817576164555522562737667084197964903149155150375905586540911435988214582684928671319100901360084570270062009528721240707018209599366681755269150771804855995396535352814907536973399749115306384499429019699381211884187628917258100032419650889240700850095053793998835777793440269982143285888960504343044581648654711217159480584890223171007728870748955027792873021315775526667331946944906719184252438680544166724507884094590991868326068860293521046444733131485165841761619738151615302699079190057697576377621852461641100814913055611952805159304998572477706061482366992723859565814468116725032752246128880128068438338775748561909648272388576072832112394663680270182013861783558692273613821546352230752512756691543711873385077099065040841306128746315054571834274691843232397156301321683776841416442524214936406027165713227931251162855313983682849400934927787311497063454806114766353371878495442356522184749462223413688329245207119979701512029587588529637363617157300458229252344448160025793965173544991336624707005347732627141803415511769047402245610157846116311147009936902656608566930955942940447074731238095665553565657934986690988492011072396714782930579004602891236017195115929749053046226349568596389644912567124698206201698521857796385051883684189015143748371153080391363292632566325384709088065895308456174829261738133447101289833075262583740893117505323836391604159473823955932978627712855225949191302653294709533276093793032075484257986971031168574400248122023436465504573156047963879061205496884352469788010970500200350784090631582730849049574616159125111217216940869570513074307707395414319553286040847820207920583594414228436343668637000380984352542798446085406543488904536411484084763738967343648760153328520828182042288884672840393312986757781953676300139550866504161166249808617302778456190274738056588735885057137736868005370466728411355424664561899146581859253730756188728896340553299825766004508707066441375160270188645281672385083629996030451452808018442004708801082764635653432127317819901182920732863572344388186342351384892908204398567229207873326552885017719346971256318723507797642957675530399807866387360141889688059384004485105198877344355132357836220658836467927077001112062751459246447602107175897257051536205405986304015310266050116736041828216519028028170378992702806127064114393618930258411975768252482278696298016981711798944751151562938795672332429260542098935080793811614831254496512991821457860604872554793924012214366614565845018263181250622302658614809999792988072013422395783280257841604031454934740255825231296651681890577225735605454562360030391161458374553896444181994477773352364942383566924149400009699221779436443812146286123443523846513824965108096946540626880886069821365459528971591922153529139984302832388745308993472767045516576436271821533400528873457338967715541328272093384237906598262707557764979983726229067097516571541748749114183133655416360235644257734687943769140560576810193798012275539545511024914521221230835621477952803456676128796150340113798876207915995545828639394188688045224300963969389849818640936170922911991817906270895063873621933736806537571265904749349651044104720758524685161206099117137821732491854085302552676762926108316399832686001363627308161512945529742100048424965324766055703335905777333187770495198747079685836719450714489715074600348731899459145472817221522432284919052769500884503869074437793455203569456682503671175825788203328515203451175723386728244304699175025457569039196328540832126973306345625414691781079749798672166236097690096767559964809605447990780691507366863330670345248776616846116389371522899645900879918997882913094609423991995816849875248301518806262379294880570755174059638299591257328465493270334078221902807005349034700227193377847162401502312253447085210244901161036086081396793503903508348596709868700356617164293982721144051504382822708560993449638136743955174136200662329356215236690902776400139015218267936488570426997391415557641528428075160711163740299829657034013157872301094465230082533657274427289978753592031096502017040558149034701385149188138902398422217737697117605603391740902168236524141524006042606052992380247579013145878887929595968486130081478075020970418812364238794309303968457283320831882802407334255563726347383793942363702909659711736970510491692639129837227978031425867789334412488088166224458294115134203523727041761081261207251356801609272116196913997528611370154318265610967611135887859379836952923886876685550219690123497286320045212824991939971705868170036910956167770366975514846463664904338034635730897295041239242666009767106893727012950483278023533269848860504722415825402345690238773824203962681337057677963478885208757161157529500894549552437727204851785557937417269218735471448380627578884622572689398144833529065237793887685770720190988026766879942040645169206538361813972382176970561558664695829997888510714314289588041775931385126705081410491180788970808866140660423184007979005264880054109296833124797004229353688156345883619783459050511854022285933571854749759076622739322007108918319858833159461762755561316950147325871198657991866889188299548537523590296212819145327263029718420857136860319806787094104837849862463526401619422313338019699343526541271202888048166743691199202430155599692259185986602845577980552632175231725804979906464521679220037251446524948650188029067910241558016473938684615236754909782361757459268729624372271215016328384407767283110409159699883194600538018716062447032146778759045126192501513564100982052397750554195488394393655698150368226529858697704167570625641380795589607995810867468051420260285521566346862994608057084335078571585636566475381127404999721704059853372773063896099652065841319476282671427616863474093660677681053866204734666445175275799051234615688006440636079163161449071604752879931573714091908819260704479095950366553642390014928113835908605961377546093561709123871326479106401785009010390817583889331137418483276913411803261678524309822629819886725127515085019874559953622771289937812807538012678467479986960465219387534532138536979979374843049584121796037922171990240388753498171654618894305073394368551510093504157862375596224034237802083590514717537957567083076688896119309328341083625940726738461531196501610934719619730365920242492638309341339751958504852618063583191257699291704102430386953666224807864611179706623094851518653805221109225024109964695037798469556586683396045824601757552518156894102894934345910991202040961053650897161583079901056684272948906466838741534452081606579946091724790578432418283845582696162044024903747442628418199988217571014188429807263943284423798044808714108227741635399892899172810139059875021916086290256279522778531489589355676575355476939960967744114317654130379554171931278211822494683846829432249094194539725480849680116960860711224527746918887986365881319841371727080696100398209505821767570788349081043165940465409585981762409182221885389035706966289194811274337084721393899623834236275557603917382469014843813418796599710950081937278939721434713898894561370992216634611690855563602604659437956380816566996143296551383245180888109507984001696852786828177812238335961945501605083236086163122155265686321477497097750946700645884337230608198006763659337393677473503617215740072200718626760384805268003081730224871585151127946316473123069334429959771362834722168711468038571297764249496318453513915995406227264239689021748467511711544223730038466074810227683065993337287463287006985740374130075725532938722366420898425795617760406761025256312371428707759413512205929320581661319651371617281120809919801006530161471555753922362481471917614607373575528453078099957234946739627874212349547565706431883736919830725466894344232107206579955441468979432175321310815174595664767962455005882091448689877759271189644342824146972417799296429230723195852471850147826671301300233142981634917223346071338451131697114553936089324238561122340528654745459553923155784299876815122460094800211231645161923686895671899701435673918819855707856054872200099566269243675350233448021178528089225992793527685814821341841917166994865741276167987307647768351229385459868495805947636415142227790043343473935218404801621933842758011871043699052725681533919338992309361344364412700581900629755815896848542362769850508808339246180897968687014258854356373233359881112750604815610215804055140308000482814035678763653424817936112282735858983024254710011328943670248207867986448304480723521842557257737878105726829529142659618326573666835179066609604942738374303018476229464216053800326521534407169773614998594494166290314919258363870028154620019590804137975830448683495367850715654588823248140413011831861663803247729969304862376975620964193329035288429256371870840155255858310006461921439963940412300397623587855604135654800811134091610055858190609874674711146360183163277642278698718256649018202988651038090064204233908923699947846952295572003766970207081824482357222131321140940176050079238659936185902300043423584574516238338791194149569427478911909182213721056351291462493261057096367900764039746286692479945978657084037855353397522220674122711126998132687399223979816425836036918169311352765063746268519918301098870521096883776546912056453511816451955922791848404371133156495321861466847082223309268715372106389723087796858985232193466570922962052617568761556214365024635407522873370204665639398289677151893009355598580717534347531378875573501470139731000308681731792955201888607167877633011872786338022826523616993946684491250780301394192152749168984493517620528782720952631085108254075021972874681376769764864311392134752775243190646904093562441799724018518461439637531859487319543236929945333576219790458267809529408180329413191164900254001775303645060074545244413983101924929350636045789706115192399529737402190961967932238340469596386772394491064234816371803289411686637476623232462518143053403050215206963301178371198547217966228925651844732582092602877744055977187038305164982631715066729698047066022407725288220281010991190110064110313055803730388340023218873165148171177663550877208334903134721036958359469615919770905344707701234669050742013451648592178594415055048570964357400895618837102071852213557164125354890288617553240094656485833871126237703829907933235169486107856402599206604881542433094229845209453688538660824607034063608132212327475078120126313006383166909151374425969239016300624131458272158741543298034712953769211583626333033371845160347829366659685355406070014527972707177694956714739238791485910669033781660982021491398082693278608832113983047289706238458609850209850285758931873131650545798028491329117351211636751763150415035732958993735317406129368835415187040036154646539087893319718058708886860202810982610956410274224300394901407513162547785248916250584335875434150730026600296375490902795058180591924710483344674897028625007690999252151802586679850589135776874696530507644885453699078314281341613458823804881433108404491546032955353247254419202712420219863878420410175857943392461102242997520112411870215628711885147641358223640414683028288228097765027239532933569435213420530178527786146638822297666013733487410559713784401225364766804683452156094069598743939699731067564937666378194523613948671307154341657378795217814556744122091533710650923228190348769505650227384455380263278492222836816239549108173450012044857752091790563601143319484010381911747882268042937351774851728371736393321397209095510258179170600528168263438289137472534821036325674926795759772126898745866333973202108762505348699586681154463780248548364343033628635184251268024036180153046571229662628875292106939026981460446468207289203965921735429200871803093675664312756621063432687134311425663192993771811179524028800071513302938762620233326495472996631091208023724779661375700146240498184509072927346869261699227530926207749890983386637249773844190289345455225266274155684420314368779112680169314422279678708631050604687139833331961634749988740374713526618210096466529938373100583441448349505863233940266882543352398251547282043224852489662142562263826215126324608338648295287482618566512921266861864577627028753612814887760992089360620774720383943401298898037037263276231358408494907094201589235928027455534032103314527363693126413092687962440873941581914887158280404962785803787841147750832306630273305823594713834930295665008663162075089101907223677474852046280342463692464511680892728284267731774914422499931240442942963704973404960309022302072245287971853125625051302196396057136153444250329136842003396870209444997477768985477971442017166321160012077752539315835812333728699903508383728063213198016033397567696767680949378963685917710657512431998318890031423092350916689386868141224040476957205923125813941809411965344048446083043524216348316892331785750507723307407229017347977842495262336535019191158890619317436776184427943188986652807420617880976576776217462656737686668038610947929151476761904159759765575898219914110141901276105037751867762178256332143898405353619843816218811252796113107432276275738913192674179447745751813502917846773798465549297085965884405381135358619035282641040158418356397941538972375759508357443063946697736788768133261268216913381401308377949256494525202632768966645261070639619659425912993601014129873451078915914020867460863030854866881843417666100376965440007068578936344670031636780589545472030311708752420850427680576112878234655800252964617800224824057125086112348199990515697080593992975781215347327252236297262486456035104933080102713356767936925577053062146284926681588622609816687705715375106813779688939838099695066787961032552969598951122168953446307765807752799973858752130920356361194512451800233854953903284468077559770660843665527934936621606009914953650305293314798064277124247466069906059374829640785989120781411314548384925402611429343937823979368280064493387602639240442696091031257031047325123419900398158095508958261125715483535828870519342209552941776425802146937066019442290468888348261167101666235710606013239996011533333498127884184369733242550313092991609998061267341995292345282740804149844275493685148472831284991206532661301782287885938409447757344764860278171239378639158406118355853325266953781188428240602577299639480956437827458343751508138244011897352068430789793673011566651812624268901211701098123591528137340448834650514242060116993994525678894098990796703098265093200113109033064461186169728249533862674079871456546681370786910817148209280033730402174017197921527051925298536355033773794043017825182167650268847114531223130337448039103486025791892514134267999855417117566222056864957972365933298384239747662723409654541157651795321873585991168108465305122144920123478159454729322379317797659989358061237391665234668177020974730851023547206458568311376817107613066925442559384165018680338553260151137007256328898920399511048286581553675602603613570160938845497138390235386294472593627374418602052343658010420289742936948008655907621987427813686251925047714569336768206604886768869759625210159509213243710972584660001596407073659724046960531885903371579656425004250373827400555852002213395561109652882470580640819919767938770016022474368493887604799038318887770269438205989344760781409546931189868855804172855888295174530389885221277369039432254045327385384178650907566646243733615605659016597864657305690451243838620428738845044545685445039948877495094365024593426619597693077361569078675435895713810849801646384937800650006558729945251322319369000678452109104509757945702795354640373389022615950290557281484358082837453822021267831492915736185446835047394619701633983015306084795434363875912134985440591610344348089868440599405312308941441886114120137837755408547250512267540854585798021602055396894036220468880241117265143186496464423517348164007016217008609408682464598288576571921664728116180348371808897765344580797711556063839177958369406217592736412419165302157791415174912001469126840730152152081533564394447030821417589479957922668224470659156920938387773451727286831405045043730634447973049515540561322909792511862722970750461054986424501027843174194542972571302374846278827117922685780922334660023024204824943334374353822982599172041622972952327667863764176319254808231041834413343474391742627088228340215624012260111250464790356393981615330155349338188924139805693145721123632250611371530606698333879341466599463649467401196604837284810286038300737749346952401094038088119413275822186812168888477107856008889772484487194942924302984288983119165862714381905164477880300133586500601219333497110445185921750199421575434496333462021014421660809708824939357033117385914081553561406900028051344307169724544710314352165248646502726503198796307497252006674580608842970031993736347546866820926338045134898310758710341860132875175575801755990922750749975124212079661728425097061624800688655480728057355950905362952675873852352690917278828626944229870270313352336676640572087089950297866805626419899291400572694384428356303012960384554523220986310855291420529734176413421688932503683882326722436201197879555689936936954894974217614412527174036694701307538759011159988488272357185213729573796623575134469620934413463364859346020086614983010914820702172964262736365991103371956651518083676864413424058341990433382016885337736037220050948475870407827965826081749133771430155527973007333610171605282828872867477326157444059464142783747366987970272610327119375698216071183232910680483087857993973811825955467683112763354640204340476515513721058863298175058873475895268743161194932005373162888237680683193460121450761423989211691150509238837925409659152046079216800974974090226673744456331230604997420787824277098924267645006041189496091876211564151887286285753668903751132734641520256356363305742088044209558801147179678651508464084111316159981998441261252184379335353433578089267616233980589527175322074829358879038235208484268569895469649017200181672853020199712964655554676855269481654779990421358621085577741152877992033311524040996124229716471428341908466327707465034374032123698173083222062294467169258270713792500126666445851737326403713599671516715681961500095416065682387597752486288995742953922948431855326268848904435854017059633780072432485326683583265121185072097924985112756266403609884377598942466547164775439546462002375293030287061344752728499344090035386062293607441398784016861586171128728158178904405000253558104841436537824212679644114699026415606963637036037092125822996868144847875147439683338424339682544262468652222341147191710753568352046370245692139187607605298896828438738461935690748503943560213111213178025780577624648412078426265260585001057288721889244007292243527026532358570609876679017520068429940017197959489451261392084255833640343596013748689843530101819242004442691443862251665301364949643614066043487103581525865796461410659642467540112522191808258042130012017140743076027078353151928991813041561966688314813570980409154483178923913842802406426905115532297154978663763025489422761910590353513743611278547017646177564485270844803310837218173438132941874600678130884053800602104686036843956376092874846505784430255557558999527101941036034883812641997228834570096244197130442914356458367719562503182322825687148254989716636101550685072716989412169522473059899713615987882978453809613436898493256444474859371815734072033912471496049320129738872577785326823994676168914555474386373124434308224507149445959808640170726744901058319492283694187497128399523890151087836604327011343356834779029753754593580550087281024159322000487451124385773330662285050401604364122953411929676141998625591861161003120545172942881190575010371462503426746880722425570960566118833387676176157899518732091808564401736592124710020675614140726007545355754379867200476797118682364197914824351562096889488136136197981133125175197935405021703992608150956656273292055003278236030462043298861565859058528386931316933670325844910412728342966604659646710617825605173234797582593918809379179641914669290663763370212232939859366516851876100209618699389573164035886180096272996331669881125031949746344008207151133953715709602821801101165179085523932747555031100135197625107722898529155908414735505196336792190897141991916062991449979069085163429402559062324764049000891633601042559733756567192215334243394684932734084429857950836360162334915285393535433320104283416298414730924111910788262448684258881883701766035328430200251379851366482710339673326521865632362170928849340633796701216217476758698276355097798221683779090532281429575523358178067907424522197370771720295475975142562887444619696924203095018869144142631644006113032506274212785090716173774340569717918291678545758997749804568919372443483219301187946670285529745702628967901778302740688370756753003123850656365960857728823414575125728310104747224688881257783064952310536012632598238153224865753375847971821902332956379999124899904526457625332421296356762749538339789076726471173010079123217203888640307903224349574787491769150167390197090345124548656012434517238505323431623329717220698445396452387118013151442651046003733106251248744721996401121874056755241137362840995873744745929641354879957043181137711720621009728057552039389625708006424886728918542652381325247943691532425663658054184911607451216915326943274879396618434646471408505375620791705350187614226335755943275249734555350395249631501857522061807020508788932733781470154631919409702178074025358278639711059358180060792365184672812429575357435334416735009050011276066752956350031428711992538853219154355219232165333316017709266897512644869226222749844488437294247232330793742925295020340361025409607978139005523531238431501065984369754768872821700949964207519716413884438032705850835065558431554301991299784212322251009927307033397245930286199231380447959855699381688327649394375348465241940096432234973354273042832779846780236461993299236191123830540211250729400616987087212776365434659347994752829155362753031222881960212387474052305604706569306011087866638446716314297389196640104827405919052579899757968583992043331879790022815688483059969031069439718830478084538784447969163390480045241424109222015211300675479077240966290664262375148931807499684183339807016569472790433363530652909028682762291565333451542757146122478993521776295880365628004082644707092152760349788205579116570112745251038725950804786233439250435432519671818998211263352089888277449296077317042426664632055822132992183463348253058699174503797184213234835563475755781126984555220817050727298106456850939713806115422621617936888356111267546237699823998523321016314509231379035937882999359075007606369070535657454588049739428329887284006770663360597012525136034735744925956356331862014675310205294229341012497806689768727657243951639166992098722883114172139511958416723096614481815725895919897500479710044416282260044440321530283359912110549950253573564456797213144408939173095576124417905784263034275998414415552012055685966627102521319498207253807772057320455834339874159390667919579723540455964881326892441450796462570549979013633636089405365748120394184454775961154673220697444460333746860195839128981230839795983605814342849546975274739144079084276839881434002578471802956391894024767951802463028769192803463571160760023936297125716223695619822488317971823831404510840526572093358531768217321716558382062246346864900565321637297537882966944457333877206298054654418505136150393330881254122095439288844525007752151171065709427370998445743913311138961864553486564707437544698344707236266049617919834163689270280387832572932072270532774847812543975932028135977976414712431860190619725695962104362167722237028983680718218945480380464706065900568547284556066985198799641714786790234377425098519573561426397731260562250096654088983498824977045511264606917460287181496153700477491207511376708882545412844093595338725780620320151240646159749228495316454260825484561976019463897192092382413006626766111639137309304268117257526164775485907661335844454395198896019565872183504426764992897448752081450212756790135406393949482582729178704538804462122807093441387176680540655668978631493845640369699258973693627659108852928366288689849007600926943384888129253196216664994372493475923192870527385504173927342761237653425971297102327514711791736745352278173706369289323248713158941899362026403567034882733237324771070910216839938497092932549430425002213925257216859872171206998980899452974629300819457576203772556598946656363036549248460402218142175638433448406690748470569785459424146285645654944328954018022201964785638362383771457872734614957586538845528845433054164285396862112675483732015196470502561697265372345985617227747007570341499961719108884507651684785381114866000903999395846750258383318715270066144584724292679489905041821411010849102241779987611175919457069021136752725611050548659184363018686446386261149710179490297352642091203950780528025154548434378178578147566057436690146075041171223411793567116222985372533690169357572327110349545540692121932702660064370632181361606389362740246420241836080896865813462596464842984412302124114121812813720573970528478531398011206224843273561406743637998173369129681842601290826888825138946073791731832216214008372009994792591004345259969268566589673512615033513137011246603854362859757740125837857378009529259527270570040668638527777341137138254043916079199863355532508219567242243609271009491703686702658105946398625127628086808035303884353300710269466396382856167257352177412568288021435341306266783986795579238551643412394878989687509683674384026792861005285611870063449842876860019519570860885214592898277801087529919045922979616533691689022180395685103896047231365757907637608728729779498300226797370608423463311506834138917684364250108695316581505854433423857070001700421835368181755425449406833181087322499261925831421006761078631281285724155536597960529443781251644893943545122572768130187731476025727211613638984354287249635669818511900515884162352409636031401643944706120325972402484166503064524288887989602080190060090646935281991708393613388195772097213048941719434961112693028488053349698465271385874561805675275156215408447377268644074302260127509550355324073544797643947603555839957102629805514125703562097836784766335129113046229135825381330309048584129634105234305707110877472237609728001936398162494029895027941932138923617523055983970980386498654197097217554244389888112144895151882436664787534143332991762926931701738523000011506732693496820113999224629488084265284548276062534811782059080224441340943967497898609546505165097522920208278157791429940447960082119032269016543079382191817499125451842600173951633734843163944948737508678761314343179920407140180913540551001039202975500206406363765725565976922511843159814201991826763291167034575055514275570672386797467915522568800054676094373730154948876423750707735017183721314066970981556275511548167665381330541537771299102343449951074828769180207804980020202602746450760644272403822573748924203559343642828001499465870870042264790196129761438250083378075278572960779256987075932473458821618690173367870023478807579779753080305696164986699195347900295759596100840171678437306608492258184708639343881588382310466968349280034574438581386719048883944721017733011111130280720247354800062708088729294482683194463462057552575823319468082416708838208479278091638496462423501349053753079528555155474102286240742134960277792382306452698034346434143573553555149778371759287455292200494457303980671269055180937879007304162391592184185462170241087579116566504248720459835109078587895972462312294596442708533891779081982603544427734547565639991044600288173346803381881768846630600540428531401376252659936652474901589434220791383514751627644709387995319004833128746585592523308866495681037383428473746336591356131836176718452180773995838328695009249176773879725960165641116852003364114386875503370757719530498353636528185727824452605484188837445457988303174791120765850113519213352956725539516363222679051205049301758202263732903637322790089763734949560396658926921520024183363682209718205322959956745857549855882811940938047004775732992232945820352432858781725814949842341475026438552294674038524289725214504672634482400942255319063472063552906916385820135840466365884081883700080389967519886723638747713913015471126647331529691454756476939502479794484804312221181917002762052451946200107448845918203308900540283518439936620638319782313615969328985959270026359911863578485551341340615875130092080558766444586814010474315448814848335355778913149999288437836452887825690688485183986746258471502814431464093359325158892543516462583314371877443324460865263450930973389682176130122074008175589594381375218112970398497774483221471317436479030833704983594693254955063168934273856941370288894374231285287688096829277702079234465058634553459893165074330643034088673133914914646767954149287781914218137507031996047490185830645001560210277134763893296230924470519922866268106642696691282247353114152026927105147762365988269192851012682446166645606151342144947501744177096740676935345970342365828627029488201022025969006781282240651938200673021067848063703426268489442104746536580641170912697828919556158499747867612403260690749142936273167317888799035934717220113746511939780137705763117052112817872653229431082985520111833058875177507274631855642139556371229410983685579975611473057013747968295145066869828158207680177928432547532999458964193564468273815545387797868573871786393294654252380442594078548229312036354419471396634616849249759273726768977672003299157988363989885619554199050606474978991220003869177122480576609760953581672431294780438725253755888895224239019495084538733297247539862473564790700887548547124498269519691791919046272698552228293137102965245795094072361284445215449176982827371213826318144976084007622161211050104462547333949796997935517010496488911907812784537959394655794864667725860446724642224438401530280922043034753567368882251051122053983722821586165352454650001479190986996524334469137733879109982105680314671983439099743433989987018547688248361220414635211830169610094685206546105364409489540708540577201936878075265002684885989111080626211775260546543528433745666919348305538657559219891645128350525333491238096994873836466779697389881492554030289343219680658285456912479936484652269829611473411401381764481704801469616804100087209195915153086479975755662378253602627120078002148798421764444781391580463869207121509710507919603287843048704142121851062653397597524166204988864971009142474638171802998536085518369690100728795428997328179876096124030805627899353820217473717402761858091816476731851731247857608508874199943870608881229599556872894677082055052508534022891820211911213275999977826972575321124988988187297085156891818906432482544491775582787301980671445238167644117544152919898957421009773493558353920517360917510098004409637113258484878195513667852626919810003522946919271867798808958074707553999726925253999432767349676078617051700314667120296991727466969357572634550562315297143877223852194801137950823680369177612705154329768819540370904494732552453714766427634309800688595997377905798864360810827549558100998981254797069862405398673815032223995005384160204715946979663522147539012027842814559850699135315552454934292290957441927375627299789957294652809025867504593299778211907698825482652126502128199039849694017008667522775828939147034740999076369646591852182109883127490144823578077363753014372746308046130016763862401117356267448166841820479462195877163599884164525572241457089519914856027280344788388998106996348083404656947163518971666612993813587015040735136405597601529474835997355878549026018318785504942884211272599460210979161692884330724438654954757857767414562512913432734509854715298346018776275748979280578237383676821774717440564782921619466240397410752283694060218462951784776966706359594437903896862363653929587092349531982502264339538042072009769093964528215270542161747932930243681825455615912667762500870026937654168615054607151671877288914106771660359104556567860344830077018173513204665224141605832531290288779312637301150791989854172408461471240813036118274493685504854021781167545194869300130980232725490482169766945170566085543238125517208231796702680400413509269505145113539673364687184066345816344898525210256068853674657297538200853154636962081854677627442335898075318287628572432321120413850082440165099541984913711823932132008048670799895709777452167511931887621075173343973329475621685142865739909171567686748190648421907037401170563413707660567226259116295310885543722106790925799602552446961129109825582189913631164557130473037779527875321747171577788091243360616461965221625205695073329646866874615564974232557302911869173043777729121942812819673322707979867512044854773791446709814582392762411024106841445337671257250833403096517489053376437864130252375792278035945813584832253181505213390449374486371614262889849515114626087145680547351619581657257329274609703432958796508167445396133537809609997397452201557816707649807215102669358527385153936675506926691166026379478628154957320308196430206392935426506695585292037000718257141457840768427271723905059599381936144508067761924741649169058106516868464005083614138964465699607032844046534947599960264199517964548633631346136938497686275892386044106533294640405297118733768573120269713498898425098679809913351154475325773122709215766292119515179717506138630716096884123790139739663645492378433547419430576185607384620127808364412132722628801486545015274688979417570958938541745818798263977799494662844700412374197743219361026843047732877699116380406556562618314348528679077279893674457933830791366060538911418978469873406450671701986223287075194635493795567192301978055274564619640194389350757537099616887889496675902958103768646610559697865337927492906682473275540928874922859590317133118975647473236369924412538041476706164603154526640451467315795785845513481334014987591346242772881156402742509219352849544889430581393688531980576965552083210627445104545451083678184515867954327102328131370218804118589682718447095094130113971026620743644260986138575919823267305669900257970448133845483412836747714623676813796125262478030288886629473826872552108259821831580741956007710801271233484530998045669639272520002631670863810859729753168269152526771517271315789848633793643505550154484396644942405509280052027090059786467588634593166402558531616279709562182802604744302506883148745543924682888881376150955430340436551688961104315458074512162568584525482572258711733593774863525937232478521190552019932510934958815222561191748001491041363194989197626387313711937676471962883599067030967961758611626052514365251999207544625359323388645727274022421862942310864596825417160523011691834814992079152820359395651526779509481691999950872457438289666290544021093346434057455988354842132645340786227791269261369318264699469517123141341297232356190495871537935546276251583676136046301479635747093732592071221118572013370969235185359542051146197491031740293216011657771696029917315851577982806506697064212873222524959743753024016235907250744701207645750494127611110403103579780749545093350700030426133352552157465012620043613022217420544235607361747585430944529240430264412823318964485166273215837863451237975384378997665087274862734058737260842619889762120201448647324149217304027270125766536211025926008049848472983925436226597535538271992450162529176308584480322549572505139874904139301710642436500622796712863850740556387583784899170871880230452833895219884619414208415542313046046690985513512508337905139585249445877563420905534038300096272428107410971147157271364255567521709954109779508333405548622113418910892348027252114117165219184631915942179828453202307200832736180156342234134096319621060987367173185280143091831537035776194612371081044414946980459704773174844451235305361795798448345252610224054446712428684631481358495333966051729054984046712912499315229228034073921398996374493605207826389998626570113563773341842667215934547558000475994305456966121158535970330885506509901061379300832311812727104322474395052042132361998809703848627490659037057171460065057062656789524228613172680355952878258211409205446785742841998853454035632224752392907730701221481947440043130136551263567530667560911300857000059735799850308422280245685089202410075483909631642522559019722648915455738023462611718339126461940045954051001515578513471721174511116460487167562816691808095176881936796211961228622074732743524295742854027316341564119706644637031785266430354269020859866904703115769445096111366146275042317851944183816692248108370187276336012163578453662015090023879756704795879312476795892151371796298599901179414204319556565634928028773848066475951493536393522351470565572472687517950785423255877926250753060423137000913939223669655740929441743531621784362325554932349754403625880852486381123859027128528498529624664526942239549946116166017620811323518516201117576075325976638024165881518654387374328855939891057183888294673273042611132116671842458804175933653960129717027321742139117433491449097615688190833332900491225986006235210920236780692956620078361697383416888130666775493797444392224145485565576730354246948620784994568978271420163848229872568403266569180309740584715287190447888672733898212050471693616835808370344285619561583046596844142992283285510652746023433587707913838637528759008883838524125530570833871996700970928704919625620111084151174726053904870456620991208685297236007377144868671611099066641813888358998311549834368809832438385146392905220694671068747728646572845950100973818851302291786914792588838640700923983628672823995088135006140177734503233140027678250640390781204950996116487103115050089626804699540410534961475337250660610016440619273207880292076799307793645081794711115883573002634782854635152442825102376853246686554808948492671222322801876779829065718314773648814110133238619049444934316222939803253812196400667950094704212977073321410007111357134083471320102714609440090213335058723155679476278626622662490645113089784387453646361601381271925262675479930056747970627846834099335564834125244388028823275092379405158732835491850051595441047014618368587820634526297896359734778430704825514699691764183244389852988982942114857315367091707582025022208819232946285151861154954150694689654502018702231473779774332742538564712479822369980790807978521843199845415528280565796654709320472439199774883523282019458054696842477962426710576626299063053977762916110286134978759997824232954852486037788783145203597284222398997964548562578756144852718417880099359673894821181571385480173837758716771519100342639042354746564412827766898197252417076157417917463129772064497339861591793797915645273253632399349744905558952937235406347557235755085240656670677592725585002362005775987371094793338195340034316571644775492939388213312189448535263623280565874284608872035282017227638353060308171442018061822079145374039067401643845538331772157004449325712937938376716007680834655417108168311799879006151651605347577043735022208051530624865114571663834763749137805869664750860599431820019088631078749747160119379219671031607158866653603730630135285807206760732198983534805620026910538545120479090949976714029341569148701686032198506462964554708197598792040258241044557358272819495772735974904888982842885788013328147637923652544882839418881450625757609359987032328193622808344163961662584733264448209069029723347269674341757875413576314194756201707509710612389765538349317108175743753359377238946770687023781200862066689407921863163341043685922418224032956262368166568414319021230701425649321904857631889938541895082983439753655988178807600246465583195107785822053691917891534534601512562527594738056309965756087636235948250655107807749603843260493334277119278305366510759517575745233069389370628349409955885043031763457849688561583749077779855976102810500963727477553712026562899905915802245786506346956351681243786032100023468456401758974862953830811280683710952279098181699665957101564290790272717250094072842285947558117370366344870285633506518416962348835208780001387696066608537553433142974094183942836856203728172994107600783013456494160275739508270000262539073018493887507941977042789485879629328419637335405371947176297193485169069212039965209055976109857822613525741020051949205717930063309716721337748992619006061223659906008763249486027237044917318498518946080313432290301829172575241784094066039170753692208383687185276956395277380256701344812851353554250829281891257167791335250744677041591073225314897145033575957596860395920284062826398756801450321697359992678610516086952834283439022011919082060583469258904850023552118116888898487064810797709159362366336725201242134922917458681333698319913278024241378669125208136460206550497692367301219625336622118859389347364541331004060923186345535936771390691097167042097585305862211620950555843755909896976969274299920379922283774564402783145027260574044618089338478973295235920434596424749129732893810563977091749565863892573082647748272325381404279102201985287918842920760671424549059385684042953348367118895998758754577611702430286198625279054689162169019072273390043908851588847726567388029515012144391147397559255587904863287001767319945779965830594790387439563718008297304981304849472373795944422157052625919137075645784514356013901327709410604605204206241139237744276444964406812017835725831171242714360977449295550198582175909751782061956116295732026657552284190471222396303484369560174182451332569357174982822849623465868991717805475068032603953537138380431904604471240040236777194439349302718923642314072424661258100229839616010479725532753923688585723415086040649904278122232058340658632901293238582423538357651556140014033562023688308197207801461786984690679481066881286580821283375132675931513236164504474675375270978679613056798579689186230294627115393577835451451646929542946279357478572711859683155712822735774207838516959734531990466566948404538765567150287432538006708686923251405782696977002195038712199236463330040616851264594118202038976250002172642413366160068102773942323711834597878667754693268924051913378517940150557124325417431466085772008243412433351758196921739191137045596126849975081555240362686261204496853563055888933445035652457591390972260032922178031275225386818466489331820010307256104219729392571017982299493854892572600649319472253244768501785437258583401759553145761644939691054211120944274136541230573376603940434079449003474915983466823049167255590205146591842793470112904930578258083114157598081322126673567227938861027832727934685721716586068169353261202107505145988422186850738741381394246803023466066676545901482875506455382390120372746793814826777303950895732613031625552731006903823651088741589967054524213781722035973659562526844135954235490072357775014297271369220133700646681739696306475452039495038704032620838961803335625566644181359583460730576213800488855433072076944201065171226418421559434232782086382695172872346386290543509883656384272080979419733815341426021776597073596567974791741583885109829418753002778583349837619142021412342477423769428135631599980821804091461448422607616202409680170129962957708597252034218917860431194281757661340739457445703878234965676037067161202191305272527156203879869897652700106314615952653826283194618011504485414338031648638440936174597614229936012918845759312193250599524393034290056220882271778958337128179340197923700023869498908467067332068973114121384592603777388537715698753572024179390564096833592042840609844766931001213599443072652913765535996999363957167889104113750790777622110377595813247457930696289387904880536842048395261711016920607425169408488147111109897083281120811306657143489926346019914285636924306203306629547622700650363864246911908820242875213111994713976431232881403691016027876223395391778261410539574163950176965024725316908104670470295542424604098215769068110172994978213385554029614829837297846130861085719682324690725853899047418642434908271995613351330249064635752636061544647205714365481760841613049070127276511467063054180705709370468467464493980417473630731208951341760489013334836981199349431845366363529853566557469869863015330262257336485408322199777860531539921669158942342710495832607830673873624007003262234831780776518231717826179649079184771357990801011915618532602291217321701525718372874944410740498116926061363190076183766309777094972186104691510478358685494549261034927696340377859108908398624398312075817587241418494716592708818545778301545701793201764092397674516629672492541750910565863093338880793800548557608085093735202277285599528380039367977047059161421377912985803375808479828236984036304060668085850268663790732801816874415286600829174730681830379017278779783159918058361508339585807382634933171295632349384159902802193191131230183409888073198614979686225562999186554218821857998385990558413647869923400103447778707428793148397401224585782288313593641518608912668020332629841790967405452956395739534189979156659044411678354216257312957071088948077580487336070477007565764643584625417827237174762726472804399936757122195795126273311623334263496345222773074097949882691642281007974638891710160176590021010130151406716376890512494558991327246156493244071635271913028877965718591734176437398318908234992696404978552753915425135782751916199418270371349992651182989957035123238741537176326979192552417532135948818524439391471031303124862940631295069420928746913739538131701336639725489389427458698273942290027353708964018303688975422828565522713200984478274846377595108992331499841882278890033507200768260363731169958607549610988918580465005103353969777872624210313617692697056567725850981805141196827047222164876885644703898432004794546206104812065080401799625553077424298036598773974963288145616787179671381344680888528513086324760407751678445681501388579447674825037893203794370578306471251539146541013216326986119175077658610553771278008825186566163563423270392221162319681667313434045317574339647132088230513705935595770094270760936841129984076527425854429945616804192394246044456012900901471671006558127372927265268159328657243015140593698135152469137213920999472236239164315048139474935741812466610675254939286524364290519580159988469125117172626124622851466025104465230038787463004006462902142117371807356294165564310707134745238698903695138450457180038064011849074150478891861634906424446734461633902558362004964038302930479531979751935038102654358616547259835862354196100607004693516047169676461204550412177429319590973611236300811831741137437501639943559937046411966121438166801603233849281363580253412364700691023333114544369239353236151098239690018486926826422518922014971394913113729241104804700179302780904886937175379925451198999270943024130560565384068054913711007404993669572751592016509553299492223265487557511288624349144387775305996396233156113069204621998878880813920800376507278026326469025843109892212885845202077464500418764049271243122352853771473603855961093749389211041484481078974511668677881427540623282503445026588325395266687097500084187334274441375577794513414434315513669379196615801941524010467386025726882529949586218954196055910855076812303200383882259455949758430689700181238295870678629702328993843686462647569930970908529878718924341249495009677690376182114795644359980641885954794074282825839946292544416229515215492297111166515356702951529336324805301301144235390051757416600742220816655997613322400303030578323455669244877579540589712127218492662712315183785511333776637523365537579046061985757717228140284963049334728593261353631852012631010047804545068821657899966151516410098493383204086465538967883695960617177123937340315984222123375492082487447350983426003426431848811111054315234349294147713960474125865267161585007899961515105993567788691666410008244264102372854138068668845743473130948707207762238648933430995580726625253736611244542894223683325998176193224499293293510284672477334520345242186672454631592606527275263323723528769413489371745663412746553527989495568135103577242329205820374468958389066280767364377363585803832592170723974410490627153572955179456309038570290288909871561744232862952982569897535941829286695797304025126169263903502749063511673303587121492535656299495753993886423225290889149639881802160540932266226925229961914577337604080207998685239787593425176894614922712426484816744275746461564542548310683541335632861816381472859471964034774596954619568053264587404699036494117807802673799824899818695801794468956058028107911784259147609487700404440215951814487278945213045156621695226106497176327316778153071380019351241478616083543228848041727193741264579579458696167206495262747185691652893422452613204160742265439141375201824527695331144516923672121657486781871368376718588258113741837459714249798874973386742907879496809942044005573084092911715486768551058342660145397173069449090669158447566848799867541007751458118613387770042158044343855483970851148794883568224507043130623766222624540395805987135821446515277930434019159924368111572223526687940271928638523187464560971134092073781942712663703674252137807723671997250691437848044398549104750413363406675414619544093407998021599455371038372693619303356856784779948991831909249151910397712314557263244742120186854706400259516225087870558159430484521448826852412060125068528968521160236791853423532861567457144947146687569123547661366675290154587001540539709060729952607487415388097780158218028800327373981455008681748773033092608198351663358730501791136015758288941231757066132463995118093958576863660404853454080097806045491203021925589136020125223076329519168217803610666156555351208880442992962054569482645727357389687791194181138136092080767241703205367185995355912343553475609616601742878308170634413545414726404919899609088752874577392128948292022013464340971148418324061792944365942698750310472638520408330336766132709755873855883046901897563563561792387888347110828302636118063604555870922509627368544781769545381760053354447108329279506616680894454078066329928396933936275744919671262903417677437236757375805588804475235656442971090296604079089057658195998107168275234698921841110229359175616054341772176231174125099538960261218995460468589911833335797494173555180668704730611555562105027976993030196505722095180090688976317462614141209217415674975483099283184244740984256144600529862818173132770031516450507166719453308303453706768878705122288857154799231186628072685719230751999593634980547118930539812104894461732625651815407113612747966550954532650741091978155372988835688460844955069694660891659770946195636009686087583222326407780659269085729455835568589657785179916203594728128922159264441279149911445534093488693218937218976977634094406227689441312714685283751191700115477314905448694882127215702825985369003095991184755196978622451189882464218863312638440808424020324601049956545944791567710942327710262759266302439301149188943046397797898272723659322525651178935116506814491651067247353833710717304200681384501472680762617661320565188169533034671883163715474900252258926662907785465196968384633229523504253962107707512747848777882997241770548157391040384653356056014623323033578455342914468218984308597045474179044954508401512270301631122391556616578817322964280807357473029685433488605534740843065335674891018985350955050345015287620288682499395126881451796851523212723935653356485519439965473161457634498106904694693663055771147809879788643176198092789409262220632952541262628355578474177972382638950087680224137394479883112520101537150446393167845286681700311896386505869739752880746730251978159150794769095732120990217470508429590778939061689963551574146769432510533307437425846412387829932198332501255269080410259919318084788770267973400457035964445864037001458905419985496742906943440352091996132980834208426611344549237166080230557779533510792082125813871337750413842008452582464361281607241791771879692712636149138771981350840794774493854840871272208815273149195950434414784218137345575143042843966159400673336009750376438255294503643141855598230623356698083568765960080416809371191673262811825116924266304232019698197264748471318352205805691935135639428105858774853636725907089963865269780550370151698611658571915375949017338069369279242971592063684869165813315365740990077411722318061661883308641331271848181979360174768383948687521388633072243881213236227615735511436343116243533824939099015129185098750701836060089835673275635037654096543673721406705986367750902572471965635939445955412657416963915472832841888892060557499323220374710404656540658494731430216870288222134754781043193680183205779475646730253631087741158389841911335611115079857931133839406738101463337231728874451231450277687526749834771637980472536957972037845700010241618563890767608489364589547507790595509609793262283285456899655651141130391626741536688984375488120549620745759294629722804821491383208047811392630661675924163073808178634486908645964663186688782380922464555018512266688503841510952859262350724268691729974896225426816251050354853046196479447689218440122655790413061330482127772616089454485489780812650386154028484628533028035561775121417145925193322945793294654253857713531720514795067831630885767906608258734888537905488295555767094687586144593752457307285650179136124036595545612624652214571915638300939333566693199720881391439841474414426925472759100234408188872582445254077987731324838175543828020374090979081644397467653759056957369819503006084279896250582852869642978881407681766476195081270493296208632327764762698145577726195952652455463879477758965050494169519427777592558324951295999192612989492849518836930498526132801819326358789536236967079019201948350836010579053539995451900676476287525112866324581148200006709566444425540738262257288269079828799430041452205907737769993163242052312264542023336437959315336959023783029856487355466469758820183724900771302575011206052038626932548138816870361605592733923998688279506430493306784036661992026985885610704446670271721700066844827373171068928926908856242704097679227747027692548916363717024820783931151792997876028537999380896147386833976415214720935937565651476375020189133318021296579916125125047469132449796091675471566965550812299570308996407083872152424495953994586310868046332955967264670637547744636275350163796590393606218502445942373541067694899653582105683302790997455922674981738345335414956564915302414674610402216641436822284234102616972423148631939840495532052990719648239327235562497595421625978619302333426847933160732119694026525134039450829703882721489445912773135642753218998012138082067588771972426200031911915909926086039099486852757163476780576004084587970302473579123411617095015532338011058741610099169234795400659787447939486113284332214623861981854099372591177423134672774452164734490375062456475827540295913615533579174756247297609733488075085831239899793444709039041728488679568706738644639623409555371481721882665724240613778643929707878330525590446586227863231768060492744658931311812694614332306038570778463306278111236500319268150141842285148884698919004472960632527132133092305858293851570418255809280365183383494064388056647748454858537716484739718396510853075209631611408582467257554104858778409487363179764460766322192527338397490088659045370191882774707648679942987206081198338326652870528732369432009165056675081468322615718628313281966399982182990846652119599324507522217955186512505476446523671235881704190423556986246472236105169684983407494889865534641414600858451197141552931879634712412231702379798307450606321629611408621094921025824509667700646873846973018113484783416320543354741194152729331974913451243256210931931860856685041716403756976135365219832451147019708938527542288090005869314641172320917550715991390921823629548099828593422817875978564634904230015133971341718743470526443357789075629464941577354885608855090250098260349717646065783050556555002658092295676257524636946330530171834137225478723553724490738796956775682813036828876980243174458826804827102966349494743610147315541467574222395379759889401357755193502306066216280135632489164224453758624638974355118612041467453497632396704092819519560268460669355544994647852154692268943215812586676734885495718830814689775274867216955985784721385297670119418013408288342760849359289535453823639856447422303930062282219500808081224358500606374838298075850066232598910034359567700970673235901667593974881063097289351531718637565577063714839340998646447870081487661170323412438230126215032146792875900235485256804685155990977622754063621983853554937366779881619553611434523423871367730275595077293300435091095014659910004164279298091313164740112512163791516074212759072896734970811412947937909461144249625327920290962773231484317820869928945651160596219248369440227152426564441936968930763562494841016838719469530358725011598438086928901076332066192167495876438128115815830302117633402624801451576108854271153629756200701141836515524848701946411846322566223790643146849142184608851949584459930794306906448928984820337202900811745591696258143334826881799846321446344577061881771972063138868677265754347140167877835859512326911181205923404900972835110473943939371300336696281090971189534532431661016546926314965343694209567981936636749581768823200642276907942631428972525765994983278323398291340057356857534121286249263009490534815902277247436504623539145185050108724957369862072354094692978664239982030107185407659064753939835615371840253752722553748656536640094977925423189088772932564258647375648099593539123452782576004457764208661474406270117858311280856718508040814959494459717041106556480249830186523165459389938970625964268342270011930076911695895099150677544787399911641976911008345262342270189891387282851315483437946195310259838240826236399228115113907208640070181819266630059341509928779418738074154203980858964335287305991284525848343166245299886256349553730141251631233328097263819949439954143037854303910631238579550537962377653313378366452603734389243062897393162934578667426429021424390717221668567479360602449036709011020020314332522760508841662215436910182706936301437411542335761099528920493304492897721678437598040853948691148561458107214794105911777692490052568607901038933321677761833263910608704195520048433228947338580871654161132647570525452718888709884535297896301908435263383458412186622955721527484045977947978820593499870101967133679239092556426467251086934119199370693392295623743324105735060111965635895474124447449704167556689617753896458204666670607611835223855181635914265329578491885565689634960658427371004473034066460861498746549802109165437677304579529097007643428579895700258468685039554013146512229494642345363346630186907724194418918360525192836223408362401341692359237302481193132440135494634500002944265237213294341850940570555140113780668491100409582084485476118987857671469521703089712794772755402720932342241983420574396818021351945040046325689890591868472798088709113209078372216205967543353708753771856451861923788319952373985615726504651685356131455696925899619117601465372313736836387192792463251918709657533575621496469182681878591685632179552139449856059739549755670917024296343493483493361794082254113654657279444085023610393222241450998287770081793966667005759410918995035400573832674875139667860660255945434225819127511277722737662997163117889923363115504190149500094351976938859812262531709662309196574701488544001517650773683021019891966514080719248793852371817450108975162711424476978355554895898478603631791385092521341689062746780184329472962364012483618779938078717930639754947661111570881732900880936522801169341290725683958996887578116400437712115078712055509026012564576039570186375836347024636689235274458573072346758192854618146695001611029489416792580202360279172419602498845713873761183741547049295871279603395759614130511177522738944505872676355039421349135620777579763664042619309873042397193808691924631589292119326029278722920259384096316342462577009172552482008983851718070359905373113454195187845758508188946044318430715413599623779677889783500858472889171489828564763769526312690070802322201173626789246411759258735213941106988680723258797956239254871275819503132600490590035372564778981058625072024216311812470282068243525753673886031817287956377277418265194723699912540513148740943007244623641728603140735523486691973468421105744181244506773322086856159416982083883902040119066631182063296648708801667302112251616305436208146025469972055999296399154893392476488451546031636787140966334594748302721400742584530563531850110939914349580743801115045732060874740840425741405858604881333913030855140885849342079702077544050848054154547209182216724601583417079424287245844920973949224132405102503507190197108241437593971968301909942138815955117593482387537507857265619635948437558403477267654400334104840589034639754701866600038010006975991265194008449134277951429682126634903114539500463493746008258975285320294341914615616687057186042447250923974034206326798571661809207194430418405569259975754946702631286080834938683586423738470039075057469364534356029781186909212675066764148376397730338318570760671927114073478563761703622939485943673333937822436478460926168021384304844934959228290078888641734008225895627388607196785250485876271722498227554000392113638744978956382575563725595550637733138825962846999830502817787692455252891526735730644008127909650422092811457556517861649392103033001167049924798073219808060574684116163363875350321269554037471326205212556582214663418135598190128749189618057537257529180989450774065363939580671686872934272436027944007655451330580187997620871053003628862252418820800358550334818641763142884310391693207238856596270023135364209763198765951515026504865673017377025983806718758964421205707582257707534739123779504910567699457086081661316339815086656795112373732668741328049570631279447655052559660122079118696679136236517197660029675659372543777169446788130263909998626313433789932099090550157528598651338534738419754581266224610661230776490140315953370491012876970818721928982506416823510048114216190497489961654364591136853963255130405648688112847683153225634208367343354756039713150673494663199972723648778195357962034516779229281089173748684735394573267717069774588571288910101610805942844469240130390239056706927151106909108742006007949634890849968284844829790890750630118961040975125684018474849912911644351638063236424617624874850680537399011522909459520242055974476221153170216520921028089316868171358699155763373345064127240070192197885366822773828968611078975178478848431725562850258582283875292547224592793919789820542980793316757688153277888900028987964662015826926149764220846207555531897461065382148612105756876403351468840192482596218961547731745360713889938184404568514605595490832715124734227008141292520139594924629723280578267947724804528747427990917959396625471235357721273691517762886086053563329749569751137082184187231450921258057133886047657747382196920552844541723652771486731515082875712923588703388210856366021389831166101393996543972052913185623329699793951072288060362178655684889286254510645456310990545767616516039466796817141627231939161642548528228271751280066572824114116862881502173687158890109972833366094167525844264460668111468393892774284486033056061031596307085930600986887819104533534728363637786140031249629675709447088281416442984713575434237380315812010262238381535862759808863716078151930545390514414934292162438536283884428689515609857205834748908628963522861692671007834044598069687643226498748409216659677118522854745074991093407418929438698990268054866019681731292700144030355329356898813529485713953069751943483057358135139681763356165925674666750946246353617817266384522946171385300279635911949572593850583714024319103885224672133240437931979060352754676702298650899745784608643937466601036733767251593637275730538735841825604426955084703163414612832069476912155421932356344317389084811653122887601638768568079481547188878785235227052470234671471425632906458164853170472392018289144634866451224220508831033041338504174949402055099927122661164292737629555099232933695874337790750092644132444149406814357632179499587609394958006822416560931100167482228471174904889690190638653808426411696622542481578767781497863921933927493036219633532988784342154548756900989625406664220231473325644792034467437182159837540270496243251744715785274635246247446224147469851995145737780450730901887807251642039920079813180026091970318884105409656089984064175643053116961013911359851193853291725886301561138053722039894677341124050028352474015560135733428639691909511340663063585519951804222461165144093917413996153829240226265435911064525077772321904217158399991097815413417183756236463483354694939058438244215942338451676104754951890198772383986290745536853767961280554537511265613940227905197550655342816546030996874555847005503197123376798939792919140890827982231273223656194576277748356579546403230753612527927736857903013724234685999714456536128391023605778648018230628973099539449924826925381926793297893441640967404183375048389124821993638515773421894670595732863202126983290884758750689827262179070129607183481226338859679051379281698773506593694146316801170013108191971092474807071452609386969727658697892834916360267867823534055593031789133182667350458536280642773611750880696778199564062716096044377543514595528158144384905051143114884464105471185522389960142837298223089261004590451433609479450736336193797897160993937064599278499717574462089858836489111740496842752410502949646488356581327970803121232657239091415170512273054616554481217741117274076733497509678074717661236792694025686517583488907105683030002564172355160672150958187912069642706199907202362437590774224363755403800207557611449493086565143867703707398557827155247839213381625342645041828444952403927218111387277984218930471980848123950906863919391981770247306054934518733093093106553975120606497440943389019051048517998400986680615779996243139645828937769530025808421784345975113010813914460261634938424215855416656760976710681880077321380121824269891181915551260294842157216873993945957610656717896187398701432809358131874451716508162396925151375084291875735312708731248488369661167234140171945356301448599860111522704822752400161368482648122433633286925824895462534118160757421805111168111418794433808525839190307039407057936742285907858939309587413961673271220032353511676298447990445058779362234581320179374881952291090901052414185750190902811933021385645160624960863244806200400744996603865162409167429212826416064219552317147331522175024142243877354872849503322724150450388451214565499469012854392513984633146525402636293329586198485127243740895097565874578482454701039149233981042731550797122230481019604933383160933418844448830295382235690267536342219121489708987659502823531499264848660329907166540107664212353897925576864020570867628281655260650630644475484870377190197845273881954754448996053805872508821137097824313710984357084047123130701450093725979047127763768791089447922925000919428092552226827864611587219896312496966153096678361992634602147709095901421947139629820481148419445005534215670124825998290809369171979871244184306895027057675667778213458043303243491145880792425542917015500218110552799249333385062288969426043868003017589007195381420908813411828982845188864768333637600771873505233535891575526549909060014607107970520231488439436014996250136389122954000523844453387090446726344330107880296895872712128259458196983154390486155457910371069831959924544507565799634162018232682660501875882601486893676467493220697663292525852131376108108538760589334339830572420551554450631891514219716295766122195157078820376960226043440108982847414456955266892649619151481503769020755615929234783618248048851986903738553496934943449287714551810618153348261043133323744140353337340360220661539399973945681491662951226670494186296571898863535216729210441467949810466543178892143888248360436215140733285573032088167186035128874708143259037441902741215975959889877561206207026235034834486408853710214737821117400794181579855354452722372662300941534790890071565339531492727612096106145208288314225593874432900427209227511651496525499002724593378409867312014256483582730042510023562145204393837581741564125216521211412438206336473576241048745451335441389657043798493314683627779837717843473677148597058736921502091528625354298568979066175625811649119735739972501927291415493795135317313807692827421721495282965323401327105260147181355313058566622891184417312603171945895197549355572377984476424417025284513054756970206454811618786110711269735232994514887110330394530104493272542011959994686661489861196536747226212170133853633850495932918493477324468590924769396303900777371599854304802507040146636148723026586513080915024765050983602586519075531077112561654958235017707680577510701871075494433233520505927224441757891704546459933230826342834995495057964852427239506623840933167274978431967418059830683094668409422995713156424957002493585584807288970567384745127178231919730376943590497632009113114556417286937245235479496485379949719850350149226433846765527137608800143799894226248757649650532759743969604392962592797076436691107982474410354351758188279753461424164969776432442756964501952404740639593873797240443301490087499201393589443762735952496011296642252286412133803206576357950933577016364339897030512157395449048718209879692473476787357414402365443134871345763568749138261638748732340530632908751728428486573794818851270711970196437566916803243813927814414609155484005543566172591391772343480438554571820968757825939449585055453027063240875079681843492874452145736495334233306820636228189849727905110159884400250846184283846300929117463911908387230656798192852053619882022993474006283050015703767948159019372958320470568209049425796536574456145987955199575739534446578345991438607354200356296323528046082517039563207777985046606697193592660759222490619719422449061037994833594177588798647157185209557654801572659492221180068527475663212848109046057540552386236582998905591868107593510904282433891174674498202307653506846477748573063496025265845260397131679688010486433880613289848924196764695857901750662838452041033558687647844811603075356019173456037596928962130889780287658972925985766006669531374063736683988138665948273890866349296766445978124399334562210893201644297297720833528565631776037777525533644779462485352233972326557126736622736751357474882515628510418942945123082792609378051991952358252780791524776649190413930795329464799060473752696105770190706290526549850578434147250181555340844352022976690011193660542025693938306281856815153187379555301046456209914424088708776635728733416453953780102533771650035689175239713119757939012728728467972660383442158942097618279979776351150216009581366794418418341302817458510079905643262361088457456971196561389969434182126952068121438036063393660434623421506390281025361965247941054236408946347003562246199389611573649247726091650794657113357465646095738826096819682429140583022701121012778753189135967786006212008428452904025602899753971066807578829825304508660694988939533268881396829220830321081251963792614414416299630295731026284054137118857834009391798783423742504033716789768936982531856663513168377632804617747157385963701432323753700051232960102996938579635210473545155136696196691670627234597092311485855187734016129639715152819624762578877978202387548439892318596648040546894429560870263857111476817124690162159787185476398297441720213904734544379462579673242545786294828120824922861570780768876461942524227025085976594928015488239937703419509361044610170435458606415372266354781145623248451476643048534874088139917120879596499499012282441020456473779216224610708491982227236278333016572924045506944963817470678923652299339597373115781730635163688937931980235334202604088094842292212530758855584283742333606728074280676111968070940085176869261158362867759653663008366700904428104149382490524016264761822749180002601576794203517411816397719161366905643971569961861220420244765576606509510714664156318734777378952156982148998282986438333288135750871031835944036997110658873625659752318908022396837978511145257363354798073828146042584080942932817354405274113582083603093359299983689341298590754492740134822785368292887744590101714068116028660855600489848345813503217897457794415880188782452238965216872188716139987914867665552250794018663474710674140811306009686846817606834633278649682578399847104137608536973003138381219058641678684243594470522716050649368997117312799156070423998009632021786712329914017935783477901993404018274701770779940530733413052533387342616539579378589766025192092069189680284380351093204791061588276736399051556838941649611728755653688118679296560840496848203554218347046742456013397676488913603438539994831285655397763824092590361241401860764144418398117551336891184558743207189552024906356670315258014175995203369214919457787089234632658404916442318113427552110165125794517703832284632382963180000572016732782338272015089013015983872127177817322835226914276789786549484949393660607629339887985181120317079550949370783540712150555253587176663729756939856943094629030930805571360410728881803215334963293323216737925034621329784838928350850685646153375584021487483113082792900900440295129465189002625907444740935269303207445007382705730018196191712848348893472761529541685081259033631084747017106358899176151881567489556592879344780075277320253401888456534396486480297667027355031000874456874196339469243662646269010320728558806751477584805274419952706639046539728627263196766380205709091738983674446641947325635269278125609949324637885601345903677286888243554339750987079864156873375082297777093812961073482730853648246899891468066933447850135646739336194944354898450485566591126744395231522937792288359879961464669460227105979874199293386335691843157396608014124052955504409091196746021353591420398609713684200571441102737126041310938800964871653458056356378477297323232078940385409831001768114892136846688841385704485983347511958311335782752526275605010228354043192875466503854189692891419350234464041199353560762888123102860580095575380014098906629726694371640188475678349870053908981239386922035057972260383642853716387923267112921295150954629416900538644580234730708539846735450975399200836350301862537962465674068179708625037951573991644221368503775264048316316861027227973872032466609898670457530196725387250530181769692882874848243595611031757594663337440987218403749243850422758217005611944762809046983718273550989390472322168346925294712464687041977163374928463809537867894256424126213363332851727686146784198289132066644963870027868164898693472627777832592033582925725104300683716011400037354269211023039817662306760957538114037100979833237118962677162602600009702485405251821721256504519302759062613765910675862969606643951356172768719126427670807927273556933957933811818644095866153750409311579986345973710829678219803915766313333520229538231833301285865106661778109895302545692231263488376736556879120316626863135123387523417682765275781536632180806589483890432989983327804103267704933526777566931199844292864677949737368141413256226227610164646940165193280181977019715413311681486402170576381648113670048558257236359653416577601248280199977655467275006706642646950238694479181612052752073942293883732448013547533984078516155982171035995293176302206503411358265373000546003351869736162501947116649498350220338348204939323690099933196021427042054438125197256324624942480779460357467999142057648413986826421440178344112362804421739802925688429086470494645075233425204122040148757864601024863828147487404003895528567288852806329473825300124909092138273803082379535187240681606171777950687435624794661888173202829299098690491024197187833610144097327464257061608810593004953533110097482101136227508190951039223578861254695469247669765985165736734927103661837489720217302620454123547676085164074612083617373326749773684793265165466764733765726987998178378579146109916702697605325301920263146802161349140625528269908444783924150914410362501891726166019070683441082461593444464590404927708657323466255396003545790991752478947866599688201681445409680499655497550656430574667007924072626442451468862993144474768628403069457840134199605742949301885899938307208183391999287158059197785321445724263595864814128589804036405385554527622358993892506989127969512352430016891407448561353041362414101839911871999661442450458153203165151422519953078571161423383499787060847233922319193828052723580184701724375979821626111648655136148367146550152565699451599302024882641889428376107897062492644069477381355424678419840048474332500481265231609802952168091877100545465805327688237541179329804179268943772182680244592406529782279744252086201233506422007317264831975555153014240998243055096250530948758983122042561133937540674660118669337415652009155555502184989667820168114745929029088443377030358582052068490684828886161531560664466121260293307059596398076383286973624137932089800532865943644902308608813533006441960978335546309876530922017213248404240425716601903617598017772054667260158212782686183183549467848996142639939775280644094574175814381043233649364009401753388021463142660934016428350798594269858607954651658292178750523591776950636779732687398557745932287391454363716615313055253692149525768088336225252603858217056352337850218354815429770219196659917431618427269915141068155889916393640011616847203201098105937367974991170303372289517908924485652279276495866262035414774575474722987943769754923108613702025836130499090549157498586896914034234690059956116760277404422665291618062847047888967435913653564159256576849298135616358710116746892594988660845425612199816807947957332704415910731549184754247737251265120339190457231563322099487594847625944219357406688072778874649675350054106685458757848245554654429049934538817859738140895429752778110634977590821652554060430390913914232824616699263418744634478288680908444164435070475275518232176855379116861773677870931609546960902594843942016933916628652990282116056013864690868381711658148406277023121627593643862130092008300783284830146386525874656725247029463797661639748615487232472813995023847713066185228648695028093253221929079504658682774830730620523354420705354043254358114526882538495646891844992677718468864982145978515761741155317613897721480296365097154170311645814250897816220571893241320750308380132060923109650744980910271763966997005335601681874728207410102491795972341839980362888017783396688950459399563192499187071847725090630307185002812461246958807856928376804959537918615713830216463346298368097278969709271201890896665289470713340877007294222123795874720082660962045923007607126220280060989497786479107301386921613641051692705017700865364605070255104492020985249777839784730164881031794922601821261674126711910748507885600259355829182622925065578951178820109008415390116050214214590653509716969389440071540435856016608148559036213485934734059114253987471694629046874408421214823454521771216793911453732625962251798034509147774316330696522553124858283795191737303296028459899239962319016274781959158534783645831378869403868863908965369442179113047077925841488215237433511309139157613872809143973575605321253578081146029779307771077372791181503705043572291062908037518159228154452608240099780421213050624438262612196613078937096215275786928757372329560431916516448505471399856458522921937613584297635889777192818640828209229696600364893209902353169973687599792609042949418640737832225758182646088849825131337690239853446203427304161781112489528813550167455378682488859707911986283112016281860870747062931674381616289279373266342100764625731342178466431648108359120030129192702365138281488218620909107000632777782702178266224951413680333228119039878689639863376322459033320367478819697803170627867978473610291979922519602016259426036634790575411917470533885903910739584132977193614768210516100052656214342550969569541873595721669224921846495987972317287415207443193107106342089032021474999368002462119658108890127730391814938056683664471832627912823693037890525809951253230654312463101104669129895511600252222963946662746801623920756284103267994590655138529187352286589750073779702592977857862547963275453435771712532422918749475334391154640575505614665503039711170596914810834697797425796863288779354715488530919825532016560538424031777057684408998604118353994007308398502835562087446609633635637945291929975724418750021028619945160898443098564955372315808286370452622806102884957869619133122358008849457594635581264838935586044457517297960369700544634526652002607434281340097450514712980472877469698739631390575108485419300581908740382562391969225540677291095086521421881174505444696531867317856090179625009290392873756980821775198277918191169565881925336756279887070183745772407380099996875399895803998065328483419567833670589112505397071918152504257449654922290003673817169797109774717072686615008925970602841901083149259395503957819473018926267261029667348863774735865519883081132058686227678615205679364283796067186128688280153026913923646981714380251780779925778755459826026765690289270389303733781073324570237068798925909454172896431668200611668712841935782559501750894983848890836707222600638380778048881923464647629820921627233205571284115443937177145136105206952091490192574023904581287053392604357611132133559416926170555951375246839696388814660424014400275755931823420993400813711503973277669272114166015173360196330311106226899153248656351025799447842704240411638319694363629864368664011370994320819608466787711012558609710884807275980621966519144930896681493561002601554260483963093731679759635165240784293379718783070462252233930858413936025880432758226452364579639623826590724196545931076558267672396291671611216575830901781139776681265737112044208219305170580740650530006472530439776660277599587689672434166513265503780753060527330012701399826289509266862253859971203794401410711585944890505693882990823580324557896228706325324804975815628392557033891442991469422418090764081017934619115453071803192853633489700990370394038361527749987854218032818167254749238553889321441144373956415145944623618684760409623095205179097756818746811793117444813352397512990988070800846730061275201397560717710045155268407506563990288855342977035580190422908128085059999097874316539903077221214052132326168926024302861142868464944948820573542124038477165165484171416736332329217420116834306134016474668361075616033345877936524431629906113266700592771623050721024560200858082255591359862404626327037730346975323273248458350766769291995322793345990248431027602419056232583291944339700131061229558033775268002120501931593162689583153683514513443048016017720389901488781842083389262793670022662511830770853615610976110357162227055772994561450484152056935637928071879934195181585848275538487916267866781663608321512007689476217771931287421124386946697700652379200034139893644057675186159738363545466047067406862989697485740410567769111215225733275405663788807279654508927004406763758795087465299370375519977710140592902667255225296186562533857570957112068776175697795638512419516997959881150172965747637890858586894591074212220164749884088947669125131173839587380109546086736168401725772177694604320860680032005556436343537931011561901139674865319870042136011569416779773473847560354784435287848790943033101125039906737038594911456235938975901047051297208887294582550488867721048576084640915129318119528235231624092597156499385126504399968992647213754045986739325010111732554243517895865140808536987352111697118760410652483877892295257784715710236607883659909683249777151157499954291201734222103006655966507672751615263042626689764390785943193047797772100913673077133799956086655973272934684041865730629507665643834077169410547339791385315019406560725322440605732254576256167261240474585675709756744758354863009440959688698642136354187566861097750695171972066374264375217330008001616168580215391390152762331024855302558628285881591236994898837005326024648768818319134999232576135378008847263718797388414441877786796402390933031670197696281826633458700738556136459026050157995998810509492351797116434337985295737504530185414130483757893459905413897993395424791176258369472533397243721378649261847144078265152246937232707675479993344146271028768346572542576470436920794427437652868329149017502236057015984281636766418426615834342398884191414686005258993950696419143840972549893875406684655615055278069777145294014828843638881066887272085149610400977328534891716108426783022370686353533506578720031202532694372110866909509224050587943426820995290635097733643338695190402311012249163522641456528263880610206898698489879291448660298488389944862048535660637496877549148327692031289069692656335704948761988636192375612968559344699638237488033031613630159350614201999684159928690965555247067240892155527828264365220410447650518228912931435284418789828679494144386722326364239108256834404679930900902501663439753757156322644717363411870822619326366670749818995162053997077141636961908761434463002221215896043187877100252741845677697730823385120282494416022611773592608343627285481422273139182937791322167135355679062200761231343256685813356577703302832958917495229953632370316363864338291736295178862158047054328691846063177165612924637852136199137698476216821933002707857118034964890260921780293638291626740293754287839207434130111997259656429347374823020882943177689538693205550488301355570751986607100786783587398954183888120007729326794819426116868486823660872164543662158235626731814307825545089260430692423353144867576288606863386649580957818496778909136311948440480770092206090751952192886400573213738447186099704925896269792111031496987793204863531708933787071670048386804970764183898156786599435281148152367680891526912393219131446764700405539831405974666499889148156806936277226993934568810038075272933056139984676109608359577856533881906149717765156688547416239049354885351389928055413418999151012969676306830028106842961008781416718487465154031565344282441037049199816717992404923226953316841414823467699954313013498294707401365773819533102577196169570729454462234602336720914818367536032115056075801477886408118386455340735588351222275004372881298734254831800109067151387032628602833209629903809123767002349542263159583526342843135787625216700430629680948834773709337458690275264956752351289450134739066393453988391671333254870237151635252080727319776638215188426655012340865457356129818530329435900722903809983200332806484609455600105774496089419585481737538455361187840086482144978618237458796004450892833185119928808195145121169279336343112824551909076933427141602190164656336595978430404794631863834787059230169655560245312802858842221319161386898450218342687979334924763325626639384442026799497226975309212227590189338457753811627619399861580063708095222188635376616894197747576054351484950952514626454644790121195849177551301062229073531802543792608026786860658637892558388553418197149946747239794842311372834156208804682609052618306696935580255048531247709597201543888821027649118303354748840465245574041542551432337071351212622568237351495355260667721989508934877891244567276323544451465016846069427256296659927321318730147171809383822019233837246892232719791669683449737006989550667504028048479256622466519467900161577052654116461966770953705677807698567130710068815385337390317803622532298239960210110639344103734827163132297140507162782973259406864228199574378639370392219059276049083670759118528337903105254864710078735092844294257018029634570884642938767938952400475302308742036926957954095896242966637725610278564303161328442038027358324697602490218805662946851939252612019129928105306417539381429842013654224947496502943795794481690975989413323524964880939981554190810716036121370244792712621597342663957892886982263278762129039609694330841783262880692617165513515329693379915463109547131033479732636027648126068504665380014130856374844961952048848749614531732108899895025176183122912649234772228199624119638828995662391181652618917908867208878042907344303064939215275047811834518391425541869155798142942459054129403009898447865722551731567245475866523174274087779277370596843305899074174845950996665537417383118691361837851525454179371765666646193699911286204731592464726180522055143151365671078975947536111684653937550526385579670990403638785234891301728297077885116349928778020358916457604928836384020544856700237192379837060429593302302638113883434900120851359975275733209850639441661522313118107675644721730275730523912233329239551308111431339697560355328090404626130264078886844684265354820934181985555819105883439318339513652379892635499903934489143185882835961038054525427102252782051959122283758860908061622297196780276110438499499378348953561247672019248860181418218687156419545473365883370320314959953981281371182889339414846310326795243389324600308871521622788328158424372689420035996352789443869069005024929832447753362999231208321927327057389000391776226306715491533234879889258582273509580632662321632358778457339139041391741237805728470172342377460451817289895423869049416926332935947472314339634864477877672601789759535845469329680404308140444934204142860532249464822706743371200487745223019268343252187541683123141482637146505748907233330229617411137045542251204879088204293001962065906367439346054181216316328153517751048424107221882701321586989750929524855829541779295144398185345704671031067590182888536530821535920025229636022505948250543769549183891420060891238162477808180454233069812893657385891226693318704824974570581989366265530179388132042419919038066612352021909829808211510303809110731035795145546796188184195189575294700405898364295617504864570918794499214016799889683211396665642094027316788322361817632512088817447197430842876486245375474528812353846192993211921944643897790898473604166977668203625051699844611371884837506084699033153874439685050787477735889028695094538862159777766807149460358562144428904056902661070256846849942045601658342884433392127413454737865720678389389580919344885692638325965659077135984753848909515550150970763884067342201318144135672246401000027525529354028916637012823950133395979180781367343397364445269065905811794020416656986442282253695431649963512498404986629897231765207209207339327842402942871459334712804543595582232854551087644813821043356267155220078072935857423080738054373185931861027787386548431410077619544686248496039957337625317037937862601169685603072913527907644942834696617030877503654207736505912770807782327212374809034640511340532615283668535084843883078165376612807393223666051992390799656458649319791662809551321443575513532568427490999704669793342393514908368664867531575142763537144772842563784155501441356060354852688649497518475377781717452758896692158316143829127986358528293245693702908878029261698864503316980870413664442724189298717237948479196387104915635648769656585947508577549049917932021808526200654794782352553666320413505896241743519765058886283518559561643915609024052801059625722568779551818935861615058156418662330717847773199481160981093373174609241821259001799569854527862798906636565688654739539840154394085206272291114259674959029192121287989993744325792190930249417335593348055121130556594564222628884174589848505458542868733137192219091356132020252737155181982934302062753561510915414781934637493822418855933550469773049313744833987901093090994439592356016611352615506678792335270209279141470691056508056564435826634486879963543220416237268414714378240883115367182213524504796074345258628852992966037787713700763871555470023452177154670557996572523832716270301488510415995952138332963390339627316043648655475691682735360827686028709933179333593958966553194252937793697733869552657012495167070028151915420762717480871412512952125865904554705756523174424350630111994843029922578318879194950465094159043084257656697274711302157454681030999509575730365656784927159250102072525260975122630389502314335153553229738950475173657608096737145363284812429067079040844201964172127197314612936710707803833054830035709501758397433241817705131163182014322699000631125355111744797734388479248294400971686088786552637488253012082360440437671506432341355222180826978947843744065425581828581895746384583031891691165443302936775406385207271149151174429565256360539581886630127743890765212415326835752125939892735339312480609005617208605277115283212380905196837292289288957730822604002467937992630870970788823027135564405365056527004121505613317363780862705675836723718075455933613880601712897215133551046186866778665416839353242509288693006099672099676054013316696737508352250503815571518907423753739037557632653737162863697559518997112622307232851911252595875495154176637658437267526688326606129387761631730065696103311924114745483883721297967141591418975054100927284883986843633683591295002864322782758405611978460479217161483602145984597179462490106511860148604330149164689869974345397786285324782947429732670402988743949128399173659654411574114428083373426502100183134158696065255014052153883240107792716464653984552238840699104017752441577242127753332493273378177087912310632653253022194970344987982115713052317138710832322989039759823950547328214913390505113431082770907552118770411041032259725705672268087724086331390837935189387524319770601818646843358261724710237798180224246381198147504870714418096358801985162782621948685044857186264499479198426001450328607528836065184160719866291148250294664461458955359048051673555835845685826280692450035588974146143944998647062061126891441279804646680955502251164420354632722925842857141108112224771251175212378066025666208080368409291351023815959375947638422346689752345419604440451964291991371405738051262833573662776692958677151204874119305084213433253730425824445417204491337129538063665310691357411681795466661110032919114981872028657759839912543556278604896211262267707434333416909541158021579373281885185724553538356514669612555034007442835977183196240236924886980046776366825198008400736228638260220051383927775032773793961966015108939887326575799196488654846057548592682589209349548881744038949042709986301593972695470694521687923381065686444157627026944372581825837993524362782650834273558823891683233343120050777041474654740554997877877376782233457253449227300014186440162668107299927858051161747785428687895478279488382811397450380798375203763297902153993967174007308617140599885439932001858015177122645501798221928978012644397224499226239665196566254703131556977609616931522919902913868398652008299263257484803003563597665969727747442007926855143071783113023898682806736479385843742054231159379865367288367357110831317038951684066771203514102022999635440937004026603721355048073755644771092519450860605145623582035627816243978270742995202289374163697688470632329085291622403532855121788011135370381156922085084580813551488596419381896018523115063362701916556968419531554722313812477817466875416745569349362661550031999390351324883990738820816893673706366430690859085320418817260817335534962144272597726791383921470909913761396728160926397590640966345892151905016323803978305971527925557511271316670885503231566419841405758817357051324213973845035818695207806608628413599777131409860012277756953187548699058258586354417020516948370605619821458835563985110294515197185016505959399555314418444853878780610790287336206149921881559385534539165409231082838999238935650430650551145033862633896684390828365884596947394422767414879944687565091415302783415844120481124615512286197264767965530865831490880789879154774699716726491375479843882452879602563270431572959146711894268929276516857224795921872379533199428257138590640943690013449678639037567222523020304244715745792511483092119061470471487382409039492992424565015310034819540819581644393509074178192447054835008594406770786261303251083248799930092741415162904136457752783724987386943734050762492985550495767029038308548630309988207714836150555482481708750916830588522785037768281137241786104329178589831845455298611957621947855850720485994858646312853467101614084491352476928138593301208114860804040850659633420760702562634717985444817015092865606760164662658966872029811979713041205581916316491262666159897610197278000036356307742665629673726164197262677196789627570647759094931914517057016051283960326370832603197273948914995003282962358279812094120826872340125764736354138475691667299934844970944811901893345138092116325373333645180697504341237057297947104629974443940840411493062461838706928992834266961654848975041537237583932718746559044450571023910257103896669295635307679775719687676965467408232644109544707807173311676919466841801449590539144465696730113068304368470966614444561480627131578746127624638911062010696317742749008991071083197502545587478162256240373859975447997702689837414728502121938926708495420155946962704635055828409390439217536522152679871890786586390883020801458775584909179129328722733221353095001153482214913504911835493500267739500728133879502434937623197626384456323987355451951550719675926106833740966234237583075273696425491250267246800770826570259068257143911733970740230193384707417799977043132681377821940461660372850854067936041718660427136351238940844721525914491082570457268898719137084281275114912417452658923913488576075763958367490959023970506592907979818768128464289660465540240927756150816931041733700710505112433909555443249357118015453047365616893203123369181632905029285579907598121287261063603798380108121087087909418816058022380539398185763124742427908306728116774714796991160727618326170001571518897200091672772964172023855060955913122507580358734418931350782686238930855557285527311076344266374969397381114115433429233904481767167511186289146292253879387923418165202843558337783759910405551719970841830032697326060245805739897857058171809220971420334479877715103912224061641070219984153493751620099702041724204484347503338248630195990015207577292777994278289906335877117262469669590182293314541328727699518580777721109556809601835896137621002204943884789733319988363249261586573371375702900725325384901530175477616100721823976473530594266095796869954693385917162987696996007155810104001300014064781445843297658507146929845876328487127088805391588089943658124314782024350052311557629242522415314161853188830932315920512271313943144461100264335947206089916411704696734398747980801935941252297892311747460252987862439907788646940901725868180091717925157209297527747637666373686071135332281200585451038772617533324512410578877683135879939220547570166068956240704028155529354104599612125126572265534111927549803726981478175004218447708112897136209574280832217353543109532608930531142608891577777342967941163095865246060374767309239392011504512182272401541952632528065107814759077882882720990493036138283574034544514225337651375783887811068732119420032969707488212607072401510470813771911630169392155660891314561826442836579812056417849989720079656661405623222643529512260071874610995661843441863489697080747616517242899782858011971424199218009056830404416461515807909122477902213113163230123123858497879414242467570090361002053119592514622297952210625973920731191795593442180908837679879745333841225993557081253495083916924944682213111687992275484297175116199527312179135354280438761241217567784615483450206089536175860704644446058101814256752904967605367124845310321084019017232594435827307836090519749343489419444522479119794032346784926456230957863395317061812355177524655197459759607823450947190262010987766310562744089589580829568996722443895742795597284976265366207319409798277698620034737608231820456058421865574791668408518394768842542011935601626458602978717443647392178156257189002484789129099267641583507336933155400466970411876984076281510157413221978605379475488457292862729662206264093297940785236752887348579216986261296658661754617015332608226292101316562022409688820286622648452483407586556353462396344935250206853757505409283708886233818696786686411393736342899781119427382546411517289605329499809677076723837838390120064852663440636018052619614448699358135510276832547523104046985730712291800852495835010399725667373799044600020048096134732151824050447062174597858906665977204301810824385424928321834751383165805259782108803073339925406564383684965092751672835185893664456996749742916761916066624461192009939431222617567403477452941576055207351822391755878243302423852328216487553082480511445579368949383187555419515839549427700612862374077341581161057440690128177303499435557818120282034543266149188962595562868287071718228457009814886771247569399012205797577365172699966625973654543930734236254998218240117143860495817858864528451033521750173980202907024775942851983095120390987157195387154171767242859270950818461165107686121757532000351784941596435988608399405622424592267579214715359722142748344321073210000567868917816030735329448113891772222059985951004686895916508563332371567010252961490813501247470241400031013528674083564491302950226279855521863300668192715055103798155750004355771259716290873277378276070763036785333401658874797058731495359697538226404117186425896625755097688147614195672924004531827478969851456309872596557335745322457817692400326477031443980571858766677335955775569230140473904945966159990154237684302033809170733453210131625350185846655415517574019627382662269540792801594201321528798509607348139657302615543071608484984980787644430916108480849450090682005552848251093768920190972493694830275030850589203247957144375652421756656088017184755084530381424170165883784087468597818384772205289859002561043097053192810505660628132063225095441949746056333402413097320993903682229629461699170193269608452313791491179904912983567225910261891255512159280792844807364291381076259867011120417700501783145228606274503146208800874198255177558253473161590962575443127445879038083429791344479034029485015646902977634834716521326514857123530020757726892290996140042248331878685748031263705552279390316219691174502146484853966930964753045390012324689045875965144646515172261343413250886263289397440255658364671971060297157634595721640264644805384096637599253294763310043882504647952418252821221292569603092078769490982583880484413486198106488134690944823203616850049492067910132142124961903494767557145090699103486768051468742200894114153327803505283115307662705464169761855300275016304843612840578444573700683374765848022721707659716855200226472290383960649671419763666696079610418075049785985482757998731709879241070217222308262556750418961518533313721536344564986876854236546486089704183322466071469534507196653340154035825150038349888142712000064196577200933164874399350698237766394252768501049418256518984092411183163287828431211866529078928358553310890344693112013392519666829424496200313779134835090641483797718964572245402778483503141380313184016812198100169352543076235387460254117394696870224377569414089016945038255445295751670595595484044446573803712363105023367284788930016019788299179916803453969786395472512828396558086890148520877974196385370725158922996424452427453696123304562313226520000312730090758931903730336008499980150454805104638780388565933149984750677906775188789808099636800836573314382523862535035376616224234147548366117582003511638858947641082010080726727400405874435917918950425607533795164631488602497551793925779388111592506415289632821275351300917131149091841887074110718539414468192530834261468372630209112457626189905143407714199497339876663799473596028059325959930880167570299325172188654861644969639734468821698065258010071303928714197129088864389988237902021496089075427586693149958633781940038683063280713118621457778321800670729214195975385206224899030396418526427341991640419478528159276165934640454907395669162931893565856895967336110506407337148748095145236466723151318719394997036302330508361427820721747586049972752519942128368757576904334468227227650311531040877296038041214099114209776529298900502796145389422897404856222584809255333373712083536689589195704009657348338072830577344259179360819164874591627538784620658048944528121843274526902785678114760268165991639722132689962384320799649831811515587340227422703965121738423111803981045828033959422363012608392855719487435628607155595983825709613163700103275620379376466702180075925290678427881673857139602520392092105740713084044928439924354113226220032623751321230135056293276268208905601710960142489280734102313357262591767627446373267997489441928378049588156206693670257679748091762233986540181541402527027154211934422823794523912201137219004578833607600510640110939693142539084030557482011408814580249135059483816266576141684101359105602357050926625125908388846203867307088981841382653626736196316947931764741561181857530919688668470342074014151316400210920458945630441873153049014667680329617040677305563970906312220171054225149396743567219910381303748559276277111537119437282129543622479204501729783222409249969021548258324359723353470886491709186297483499590371446522712920006812889426946868361177283978298290088113311773241280107419372698241957053748785280780946818959865612595226000052755289716271171620978541742618757477926465953760231573405718807837593041124723866785441079875821410923422007441734713157287323181682033735839093725150667029838499902635664523891726084509687358001553411170693347607353674091971094504859437870913881371841826872648844683005138059034559742718191428145762518672610656117183704699034684409219807714035716402925449355942445130919901893429118052453034762400224366706229104964339222923655664404149965900436536039250396559493926795881067886742411338208581910166331466846425217533260854126368497327386257068255823790565684566890411233109396504794686930810362569725413892541315839902375961210747388711839178891982163899774745938152538389127641057452558796773220792010544478102125557906138025503098263868398437161065852348448968033312818818516411532006772056346597664711557470608052756594918445166293850061128601735642626630328625779274574910293404217730406658967530804764619515558832891502417416892396798739198590964980535226233222062496106125509728008495457188960911717670895154174108708146538167216380465217607254932174753376663700464659025318538472708262655049463833014748297338572453546200761742990758732964786872959727949921961631275806281055120829809670246298689193147215297362931246724460796009106687594695182077977422284008421530321283200374673998150516489295883783196502606124166549776963129917132392135818441998075196850213553872388342315121743433422666140786529976641613712760683133071491540651342752865589423713701977416165034906255068413871057446940258911442833097961546313309870312245854998330060699335579398970671693413196816424993508114803094150242454525616606214519842082492429827179942083995989887335473653903189083760731850084578114225323784299799796395467757962088017420421802638307824487198350603254486191471229136405206581220774932288892007713632714604128348066197037129840635661823178104916184660487665515973545673081863480070519633196152927301979009664719106933169120256231629229091992112500465691848004523525576234079902751801850618586265896062309927751759971452093844844480251491185257116811057495381409750335369803079637947647811198139816257023705892387575407774214872516745736660878858452224662273207392503687403227002008811536962607744115695986931295842585087517337517599075457789248986740400496451938233818030175908579482386428072226695991613509236403424034316955380780222003625481398287408584830454451362964308423107921836592950190711469019598800968338423740809302752272272984042422674147663429596248748073860678681259127626676283261144922395097427872539932184985709999784286276029254218028165327161421334607000723078970424813529571947217426140587352943742821351280722739244005234234688671162410870361325194428680520714347442819868603452647006522107607479990414871722386567540877846239236303705671806868891423761214116393737315132521009531141724458785921140453642528032258218729713818172618511783669721823486648308920804874271517444235833292825858080888122282508333235877190285594906318520569352987513058025703405057814808308236335402639173554871365611230051094912058071163720349844482892512925943328567146545509529876100099628770414798474110340051829897218202255781031991707596040011962002772492933649436256916750643995094404247576808110501938370576808897873354492633303630371423105770094921449019009949269646608205367185883934598026403270783382223564758118255625897714878591633523263834576039636570314223873154705098418772554569880712328061448359949327285568211353677377415770598081234763426291721540608067515533087143045702747630481775387448665328915382534571260208984412045417137625625196498404707464235477122093957881283618319492752908897049777152384494930097190683984559239064739175873213525695947012525185348879855004960110200369039130292582232942527687489810093537221554155883246404624914409521245526455154962932215990466152226359944440080071230180630698111942432540200891790428223428068429464002478566899926270140135588955026723890759201928899245006973533830481862744215140483014369253419663067730171880749930894361865311648736636127200749120932047109980167888825628398499467863923022173402888541571245620782981917007018210249979242992685929101896955052132192520946280801968767006748444788471922705149845015126976234333875306229636856973578393725588314405757075288521518971217680451529986873899798454124683024203019098371122332787014723833617246306217239541339826214182826572738035258559305027511676005647989434487791051975931473419901410768971459573050674457403092480596493420538506958637063929906913495977604575019474099743290172457854260663862433248447255206830031172046255268789010312626702204170941646186517390383659777853029451944005474262291162850137482461674578843320593746890722737828210872819359095914026679457619233509668575377820336220151397266753265293219444199750863434798704679730392165107408823244318708779187314900953753834635479202051765571577366164799820947542065308711630114300113502903231306673752199051976969331729927432532987742188796435414650112954466449659957716868258449968588531322594665817383505805623527144904397243507187217562749439851158414980986579533487252015765401047019610583407196370007822146657827855900301489748612742027375176022352268464392951020364443900582195191963867977959764043298946491855571070148733436533178660011617677019536370581151445117947691418505441666858186813520533881978309119310852063842397701950218423910037041575829666280087290704831488408993303326678363185271177441943926631328257534104854784566431114530099561504718625082899590001779817632986520051486397744396230764567916570679188195370052353024717169748834169062241951543230106686219241287186709183040002733961783084725569914213302856829816150348925970719185738854992602607970315559122770844174264233380739540760623333442593535172547270645045143161765397851561393077863809092884015877354361529672975121245128563646027400744500594363539718640164074549738629300235513459267151400013039528313047407114847035085475031072424094446281935424773661917748445129491095682050041167492858732148957693632469793818010008681975761821840065944763047619761760282377356362488627253370262666790516267667659481372553364815229202920714494945154388483178446095072925015537755495639715295874495724331711404792108805404500271612436485824574670859287501850990596554072106737005518368091838086679366100379391189087393781449547818845199044396717346004786570139787936056981835443706837160953665315229646187575008147053615837241654960462124308567064813424369952408952841086859220014773970898645778951100466168874017570331799914466196090987062865450459398573213671734404129924173699358425563450776298922226347109807683498002230211721647202815412568433847105270300684982675183138368650823061914361619446427515739442896250029036967894765751997127355597175161292691768050775236429614658251656121271017708916703539370963572197428258526551164481246053488136237333087821507806748511950769720533063700900971409442414965419866099131691723109123636838659523391539984156830690641027538329731511966870106263793689726399203936747317202087461239193178276382286786703452151187410384471193888880226610776789176806228074779820582304221507487464086169624638584516841451676712786903056427450906827968475138992480504506508344441946712626747276422684322370235319314283999689572780678921306466649700448738087452810975620300734229324255545180936704613224028672932767190074158014168150923505462274554207837757879371708093945592116479369624830123692503713512604317782690718891077808762228246918690270840140056520636991197333987965850730867626597237636687445232515540376631051859279603133942885750520810737203496467707490178579045630529845576829319909718006066919619209025389264402590681101512783316592802620308417138967894802310676194163520311793175247093751345146064356238241978576859076174019315135365003740587788595390304900194052661032825476956365352345044444883451119207524504105787832670172589554767547157617330736844057169840206491991644269567825835254095128717702892922111966839680647375877649436889065489565055683641673588804984234318841770374791323476612700693320503846394132454319073002219823245612552709861046781429259667870053919687335137775929376412430909031385907973889782491433294544423821725039661509966891287429986294527839926159460976228282592776401156301201152800589438333026150444582794854269665519725488323841789604057602089576874661241546499168409018896503093107453876158538049395294167430844384759755557069867452942637069790356470938027270678175730678842959297429604555395500129276257121156570346229493543952950194354083861144210085089382945957131585784063536244481232464164993187366843414782484687645130755158184186573000355006956279727806172548602959831791928020840592984060333175738017856808345981990030678094183237970810615241208630478560925768623959042287361553848966696374344492281164868426848055146152707770633390497922188907805579393835502807348781548823908897436614862992685291101747517741516673579889041548557185100039397080368750665979564854464351305036766135537374216165601571256131760377367597351461146288098829371818698118375478271683192400083653759614603871787881960914104509132644423162622983290408969054929714316972536019966667439275693314741243305363081376261067323131160887540916449004867007963641857810988861948077412200031153819577375061846637568574685768293929886566886416230837306025935579054514275837026917681954652221014328202502562578105051498091435107156922133270338204629186596397639038548069146435882606864145643833894054517243170236888233700232017286025458834877876426244007705330100867419318061589418721570078021624089036630497783683703375613487377783019992036224844974228008205289970701890210951351839784060458388272053668922511468912531455827689010623781632450607006105112746130433080186423812970260951599745729751027653560555547768751326774088742954759223207261958551464690404509713773967046421500583829780480857033517187993622359003816958690434559407721697925426649550814014361962219992767494001170211537585238960161570536626492938703421626996796962066995736285263040662410101651391173828447625107561943904390890371874596470447338058822432581598619596338187029137012251084998772023496848926344751117583569466538210343280879012964828145939152657833388407281049827074638622415435024144897897141819806397435609362639357636054487910328225964590465143265660238903673570860099068484335544756345934088971186131185996232602203641432165759121707680039052841258536126562907691812744856561461141877471705437353895094203780897921913263969130427825665954573310249694360270386920051933756165482317000021974774847064399570243613329203312784313916625524260671314375004936673950766232916983374970829356169645022583270947129716112019889377662994133639743918264812519237410031440997973229479369191730462498091609669379227087961027844011297816056909222593710524670534700197945251499448338447442572364970982719518980506039804936911183808726825227013168722799882547671504326298601576334989758193211693748042612815719559586768795501259990192085026506964646594934357166582399857245581453867060765344788246599164384753861558634245560494528181060138332270202632570457156875572997970971990204465319898246476536793504742508863824288287840369751203308949308144114475482634859589195087995608789233892890422095969489781886665454313172117368971156055887777858871899956717249609233228897665309193768609374844803881579950966792308995856561228032883859279010901854577654972136934477101218563904333648254454570288253156865754152479970762575457651356362085583475475951588955297654369372753096888889186017674334721739447314747365955580674830787237689250069173604788055645491366089823902514344408787675557908945994651465915638289282843628908882416073325708146551949609488445989644943497268758216323066115483459706707769015580707748532321702091424771855028046848802183766751708928448506142582186389858469564257441103157770080600940254674173974035848378065914779644118806925707410607502469259980108129028403891934604394524058621094164235654537167661367461918122706069470312196062444891801119097666094902806745088642781049001454502279438717705127510524434661114777323645789588653016592885929817525560191280906230456744116824559438725717043794155158288015255124596539120405661362241697633496541173558422982301929712772678436843850767695874600838373739088082111979540349681766869273627279578593569295164978784029836189688735100432949301823790542338593986989163278093285806192031431872642613047283048804174485876954481831482719375316024924103565649857427485749296575900386764605435965164642233934190563183479788648502305344050308265971327228997065234740077990575374713397588538448986978120662358136891594982062189812716230628734541126306408671336012102768955254930711758779769039332465079343202546759800538072546649598648847852113716282634256336866066104796386624790943875836162362430302445285607849322920363251360985882192456851460769664939920406375856983323644662735517468721011317585717598703954507027342399966420634711896997892685133021244127861481997794380290600646070600814376753915763071410352242511411875480077883393749172794986349559369625183360544692403719124116667459389128036300758610372001550888527066625501201834545030816105387514636970338794341180193403421794537417549576174480859923702949856205741875744623444288161158940619453307293285030107463346343418744620373300725077772066106633396739967996470346786240246111214551011277432539386229156157950378685365248978007594388572338387331173764347632789553519393593180755088171495851393007752778417997584269393103068088914035552682509469398519200423559154794840408794766617565337609732351284570713137244889764201122083423116714136153377564121303948380025679926372876324317736806767382584061130516892249048030265113844228191589450125220827625607572907872960934607996864575511738945355309385978811364066999258545929956472763526357578235000737280234576273642285780406637582736965198721071826935905986328568582463068904156590720822431978451064852038471230609927157287077405113957752117773348793012877101346189050493381963960196502321671699661120574882781524855406700479872926771218738772286704963868422818048119135834395232015282297273482913358960580275628813510242903277097786167913150079258445872529025513641706058595595998909483795298218626966108166976539947781041606246702291404352195565453367934378878745105490482865042083867460290108178222909489128219536811100301116050435517317520667874107617002711858047801808998879689132899777112130146795611013849960230895694957255577377626959151400037702319093996378177113617434699209408498744983976402600120811470567223463718845308988719868388289904615799400262384221755458800546504863576415463817766494507355127892638097691462169606172306473359688390892480529988820037427709390455222561318134333112598917425389961688915152812613077500064057476281358395341387057622101292155380510615268281913866367414092996258185795956069108164372584541523564590260208212501134662803124810587374674174871366151397241484835743801234457342391076347293427908264562348632247465895858785707671159410140940888133476232834984904500328678149054460234118658973420632622821823081971687043671131293068717094584771393047977003823019710910834925241640409571378161780828170037513808366253688816278443765300349327708326374210584792229041270921952978072053886356975515303018939734447605550787882865206987930791737394115641014670975739530371477795726138517491583625082811265141611520064529617327580368541302700492973724061092861281751860196305809596140721998409141271900421268824688406655668721176793279465108287305308838085080340383053153814793735495682778120590961523302370990743644457877655343280567749872249677556829048747497982114601763173055694726863242747833227600247921303686559378877183855138027427681461473256941460163830428283375275131948482296581659154556668559059865765868103037848610571111668491094648712169146349345302068929793398247697483425204361275416524027177631132264412161948389676278190420239510596641097576310493755547485700880437846775748294554022475585361081499027986988540247502979765142310648633835440584541970821831561071747337294723167128969807059317278373756686852702060956123983218470475517696612077317505131521299819491266252396934468074382488021896066620568198700191903122270993031527442481673079918822758731061785852856788696717842306944952200207524436574316976125887216414907124603358987343064239650009749226034333230504828993070801829790624127407818594131529353840523450117932629291692588829696316131581930785901800025040540405161876039771174180355319223416168919004977812314385212310533809508272327913186342175580745824782150038079719159779552736502107961180102779444023564684578299633454747214876063357473937232681661869359201474309100285140515281767647560934230422271515423040834372447713916174865291156616672655540443239762026600673191814993111971852140914073377201057469152633329857484547374079937113885906717261640310799420606272594803278875719038421942836840388936757811738217578205562415300866769483156360805639337272484323626947921030038224710801878150130007419744757344909189959608005716269110419966907019891790238229772235158152790314771914181057959807502958349064836109432976579857288991942829435387651921883360805806785804323985827205454544570231457138111367168594018000339322439788467589180771280896599891956585831667428883084990230098630612960889638606022415309066602193078935958830184027318397555419177389765363332723891360316039862442423751520131434712350935502904327660949324192419283578227456270794923550836940841435040396938511812097380219875724787343312304554335146527088493336162047690173797818137278495902962559151091276282297264824006241273954166221210420817353389878120443505611245558307473893881597151019269979929041191671062910561423330156372555034935264294625306008243582211870149093677303842065294092109670035356242509802610329336927515545401324807922500705144185185216279436918260169085282890616763542179062194052770243691904601919864130781000386066668764712147474083598630686362471592159717087554014386456676070939116253984484221917924135310336616251181544165932440066679149501214191534907269059055148297855637682183067845769057957178532995139913253668724518084880491739497888259771479257200654856388091332449288209219073889689022724348645810866854583669000470656799121844035045918956017892595555224436029137475091164281803793587183608865169242382864428844852114762281373262238116742599691892533595655071521602788468125002797161148377096035965325390285492943162730195894531216522573017343068674470369913817466126653673503940248741211671392667049317269309839506106809085373695860006796332565216164232391796593322697199758777262178844072939116646020368861810443675322549394571466783575417402886358803347918550713026557023745315183252505816018977392551294488601038655242512295174028130372762308349091897943319233698852841611717292974072626567813325528162117589280952983231731223019241333849660677862422286114500711158170477107942655283312804793136338392704570226708002449528872802457472150358279688068726501772277360299404051327092189641076920266504363378523875906042559440771314003074992170383803901170488879335059089433867240613497586366645390279485746366575226851133307898862512520428653062574319560689419513940109618025880750850165195229540521809872365689292783959356534670812527785241920175048752658637095609502161138949876005824029277782633054110224795429941142175813833716593778520517245839734294093453629315143863162789938669485738199173022027544427792245362401211426995601387930513806764429139182690227701459048478107218292607229951181209666155270109070135754974099634096555386584672422826313183072679563565291781766070666506876502082940089507737648645958265591634228801675425377823394830896803202494206871213792502746423809724273936935194707198386644301641779820526360985819554441697173503999751853089203475558889309639422976488909976421709582459148985399312791807374618741471836786451377517277370386545484705727359703021843061421496496238356192116493610702992001119224513218894428501884443871490893855721435157709932271273446962710413139263974037277832060503706066656414427483907518953685594808636355168405955487641273771888480318150583370735705681971261047308789603500748398503498001891891053339723325186913298944604069008600818681885771102648690697646472118054926281694928314107637345040584944609587390223413710880150109410208620564165111238508657465431378100708883037928554094103075338563912603036419934363686111070751256462644248055600787829880352734837613755919349630153401892223745985144794799476723976133988026986009234498721530583365137800697191352080397527606441457008226130438024757186064029022825413699008224203834635206977095886030513674875211080901598144173219077877641506043086345955966308014150239567640401366252474913074368531418341634925761728427975416210427448818221093390674995190468958805423789148756436384510393057700576535947300540774768397363456548086222257574860247650563921156540167640958269719081439700452622488362427379938184087957250107518878821249451174380512310944864429313856657254879511915832177680068152302129506792231121743501988935855669555424253438923314288620398836812129152536878412540425082918093654035342515370938647795137268552279736096389489833408971328045261568604657339207109774583875416815910980660820252246883072713442013595633284683000171570817835437814600630139233191182100536609778571989850877756645284119355731472609279871012241430834907149337207649379778214335314889764319696320152379463932899503823223550741624693386563978541728448378625755912480792575187876323420750248739582647940900096623343812345781994168996732355058737975989881509769794723119947640544196362730942454377102147867225886363232940419734836645524156288940916156153335575370464502065603640406680652801767649029772501972799785581181330071087369294165942929637709403094959027905456709547749317236498347409953167209491572500988703196274095991615970763088273260197652325347683084884978654843083509165660661891453804393706931403369573704202836711528466296281085675206157034773301594903465731423447992812751587562175759641389950532825022067943544512360925854410761579709817890605258850016542198310649122031039068144366123344872983715614697880053917646314681596082150470861302011156821063825338430579094140082808084544257340883514580350209843280462168880015260572058196027352158517125901616123763470416706483070476933504630358948645004367192509769710794501080353943873358884027861420810749524506671391469333762686719960325320991085955816644673052736943522534392441893969158067479920986209808602802340199574664532496662930154560023156200193043521790488181437693507015966083839370575912360427310175135534247804992443420977130530137653097786254497132157818481042254672129322386008830534055283334463173429600108816755118397356569391509604772109188769104777397403242183206292408477952147261494196667715286751102140590903901677606139356402155445945194154881840447492530407828671091270000321361003260135297312562068353735874549480373835510180054297212805441632390765186214745592050373517625325912428815972036827718614606558058984808950342970820969853400895937797493666929110359464939509093979880965931434881827760954794665368407130838185140823337082270852373947929840773455146591277815508388953806930285224725167319829180414757895193825807471442723642517497941622233399539689789888875544322466579942010348120306627076667560407242749530204914347500552999896017465865804629230656700901888863735806489740625203601385439942418652428291694161491548080179912289354538708017251184096863566943228728665453787211378879678614008871262561748639694928109745788425000562156624932485877662784170341379111967925153812731795327705392579173240734476007870300269752635565895917966310108239096240457097156647065690762166137625292668464588985033610933475137600359527682098451713825453776424013277767742612251616423052021554928375912395563237036908525176847464948007884936783169218828601976725927924760073624324089071375785598466952432248458357270475060550431918233643338153984950755997790492537710232274025628016618111717546910929362054634491840921071016603322819521538723068608895365667114504844182294203163275725283967543277012513683636302046260323566119788239080498595611338425166811038393734716124915293657159899211714299446708597855626652019283618683840986213783321064130841411516270590018153271871746694105960337377832026082620660276127823975608190583368099090966045547571050753758305877729971157986234105489715197172392064421589700073552032647940262637993992324199179819084118470296248740791784779094906863432608624850818021642084402463771171079833004515170284327899755272299231047553328425023204314775473045178681001941765888804618407653457746442640007855575477001901571737892800905195482494327826743017895301986116182174100386072246807938650920795565459323590955146041414797562179669384188414926697796971348998557388948940538100773675155063182318842178714806109632381360238023424429484144679461818037731204110987631110955083065203150171528453706237920706911150600281222457357961998735299460151966579544286721139443221315711877419225340904937197625385300332720156580284164193241437075817747254890101068350005643771998480058083574514688238830865816550458076616023723898727975778349643134556124565365904126464772833360686907974696894273323269972223445934869819679106705767481346324614074945036829086377239643210292557347988859609576365586313543090032766124299566305088368766577883039927909357062146860982987426099512495785466641464647741026349524248823083771758451969829804548643348507717357511955000133255219673460732202308116399833178698942914892594588661837389936449623205809136389822295073777401572806254695615648565352127463172899321466435431087532129794584410805161314602084786382301311540911485141471658555583682656123523589842520097495405045988377202720393141311397882889213022955550838955114323768251940160802691770752405102383524389739929138625095678651668791384386486930853599411260739957319901924452857160464742406691353503756995899390765898148531298600812019335762037563543748695197551814256425861250135824318590922154286294633036825942832619488182857413114566903166297303033884344651522813243896498315017128144421278459393618879160762888288981988611787042927743388342800125181500228583783897670512833843093124943725010918642533893089439193453950248068529800979585760419850017968086863478724208314804916303767613346733845917984145303909632152818698024351124079552506792277447540467913108212330067990342084628485452615268187973721185841644188477691718747447977634044518675257613745101719134176341810565505410470943647051598597055680461230497603393460562077561336438899247707302595681526311661974759123952699566452214341765133950506621649255565921918282971570220012610823739642111840392067360339519211265847444634233656077630162336761253399787377983329960991696636814682751998447016313687624024500830840152573854927293555774832107185003615566100261048744087686632372892399138051006342601866438340233490954110014765289108366168738826268624770443571167005212877557395380211523394899012566833353811556036466237643037428741125834111592865263514052431834465731469857516039960858683622439373590981736287107982676563756713848405366771410543548827849592080489333648435375263756760346792882893596455339040977852063309354194705600546183833907030052920146774811571251039424604529050374211110752289275348209612239838060440854808907968973724497901807683736312325504602122093380097072134679555023388249598014602343945466909922495330191487882516708658848013874788102283998386020015103595109030106389520193293113285455346268641380341349173565133375161894249872365297983927363228464023545644422307181368340784269440746523193351501243799147464199818689214759830747110386541247056863224278560075294532273810507579609386211667128518119077933451604044222963209295257713382781406771474514827793611663574735523939529195769261449487204304046500312453456941197768373368651760400033856830816392533927535367755894265474494204402016367404532742992191005368656843058206202840276675876878435375302722323743688477839003323152276155921971526932826026771113229899717308985264115154753699339101966481389487537865553968549575626357498724798868331159899030103173195309955228543156024895255157163746419768622909555528430763292999569898622232635686052903357002519197882358812704399481907326650908701635175541381393256065168503466958069767635111577064089391933069585606746487876000462798481656703368468861514785437105372169284313673796167217817613571815591831351673564790621650695592509178968135802948533829256201232227438316298366090884065102259904786946194422554108463870099746664651580281180523012435533834040192733387699913829186523820848140573724168509454021825378842568101061575148480544272211257076170777291737685516640696326593916470782096562495915883873251428279357013092379059588493099298676607150941550926303295685420477840164685464221880132167474563755499911028175690708991249184827111405005815063863508439393992620378952728806504069922962482659086809315727189429528070938924786100711650268645961636361122175300437116215213549892115747027534451614035481087559423714837756706496776763538699177006688395771786671536396124913061282170472398493760266470483778235720951279444823901054046852807014096451014310520404070924515685430615525723904701179814148071400051574527837588119106223293320842284037015697514459478026464564640476521132285453672241962671823129529589521963856413305213088482314289128126980141494203374787784983879101524885614375327904615628247028749427660976985291317817952919884468378640063782928526629135368154339282925326550803179180663599946860568153297596043927417307241625386059958279289530595607223245833637835319076659594968784128273408397138569007821876664246031344321248449429903716150569045925368790715203661215369839125633860418003571477904218042923069439352079911177989094363854208960386809669429057132357958699129455433084257555407587612937035907121797566069223551727291814434869722993596870132352859619120649950438031990759457101073885306482730583398413664783938240141357625793569089686372862617669259140297538298401486599125474063811265483045165317507103994045922440967298949467459389951062695189272863990529616665162576070052104716930207090859905063291793145407149242682647238349989613358403781611631875434088041802189759965921879044961814659441611375156745518844357443557822703494791460924973682276650874591174668444483831612803217294627615057413863956402452970872847433647993077773493639051187321948601024723201162803049355005508132658532945473141361924323634192337070594235365469245771631834237474596840214838192247222586858713036827732430366776744163251486482329724322402124653467087727086582944377655126923455294674669138807413692058603937055939540467157859158347779940146284996247812270826471603165433617584933383142560255724889116308824969967620203700047698818501374281081721716311797680390057302164359016840362484268906633602174186984474695516431977948810520101156671436956126283803610943113470996629532456126482241913182187241614673598310421268915663386828799479501893450108822839175182565986256068299693909272143993105501055890662467558800720167600595827578440864226247407172619718054885483951103566139933546554037491685100119893634748043059250002648418713001263035530956203434703652957923235538113196007611301974283166405046644846133508644736550721059826605362852932844068452945828456918851996168268611766181468797320820896562490555895014763560591994496090429342997455682240976254166560481054493770775819939980845141346037428166963576332882351154947542085391041904166939119227595923634725950644946266948609664336743599881770656285783499041129505061266262681694484234882840619484467985974840326240811005611064253335344102411658657948433712306778887662038985965243231390591785933662783392573985996146570049561865725945456361282295750007835830659560492356335919121227482113169475051940739933361475106952109531216100258451449906549807205781095859915963726273822008085996760790206418855776982576869858423909793544183913239281738749204129416068963302178958962387103516265349514703554110179543400052862435655876767296584219605400944172410449304004958691168258704919462604320474699854733551216261893476951316966038634871397051438757853408996617735126500939702752226829421239876190037263746307439385466312937556637789249760908663412254428242021090821954050993278916646236144152873659628020515646168139415222443944397876652295361739036963124599768190400089106771717622189918368924751239573803298159227137671273366547784873010859388458686106487042613403624256896371596648793679197002706035280903896505143508924261018491576717297987312239867593016884044136106739792925271399838846746850518171739687401887803760500956664202380153105985485905407320331168365954124330725866391373473169891948274917381180526567284744979313117922416899471709684413427551953031077848926642279674955051559565740250409023756576738990828910301271538777498087564281438908083295016045053951183216476501322929146476962822725708582864579118662707749150509233878586159719059642245269016878915180714673496914607283457823280402506400260554243556629005121426210138299729332052994607747282675481688744008899957616194433951255448097356815599476803729520353493948119660251559445622993544492967320197291715097659844227473735025373873665949815499561279829771250992118804381784504729966148136844996998352654471334583409363346514112093919629053164922033661872028469196625764649246633777730725784179532641597539731562166663875133025039371965891562607020527828145983322032170778498696475055013754861645268543563373767172828003962421632894072102151489633127701228008348735984618543258220249904336191610408854675758942010095313975004072739965733213972635500612868210472303932017630041144809533548420563467579200752050503149158393460233244823161490728021619314248063710069936958136752133177099563518117625253829046447392507015040398862040103358807462170712736378442973205813073556687050500742789581494464551285375889453403082777597828251597542475654081633726378412107047888205506616137937721490505225363700419438592927212080677373223719516002967041842870847138151976926389295368630348253545235060453735570904511504108940572169411712452160167345908668694025230181425029842915462975197657183102283912665929014023886223389831824811398979848201993817625093227860748178672537837650207072215909462871145848776996663937873978859525613557662604856407603828989894241470802579328077538821835839027986173310060903926833520737657877333372269693470239017342712400149949828689540239901709678551477659680722707625522445391574548124904428775475292266434326104465205759889491372128836925643155412004910601829247855689767164197123996253441242118765481708147072218554841397001054101423596708130332923378952855460125638278323290113993777432811625796547241124152138172885726548824516985214233412925409054080977763921923953058898682110464140639586078889438052592724468318897913703128980246249712682375733732383982414074428797953916696591544056081553318560465005076275901199637925057116913931705370322280629072162271246819094672472426886368519842375860182090935376736345717059933184945117161915995027716572235683550961695879946923754995320568954683044631792886324652001526428954114601912965361672979557337894354972043359177803347611208671452979982896357520542797873615445699175763287208964094294866359374642884106546610114410285961748557781163556037350897645327257047441014151176801075334130998395669403676284884214099398142497730451052407479520661478671497950457700532094568762820873382576094629691601605676992079052744681295577773036878354095363595497045005576222278903095247737552280737204784945138075102320680272459586241617491413823330922907647927588064085196306489063810275785158913684929760472072441044887950497371093267429524864863639006161790378163518138304537285940832229523681236228069156076580753915723019369892971599745118593821776224086230626927581045562350764969869466660707968300216798722552183749093725506414066029330889262418239714261398910564828368836776695550971449718280289763416635637043092532188302683518830831626037393708036590683792762166352748595378781293649737195068182796771665999249539624091840242444227153398964225817274830456601015304908651431168904418780630963795202044741643009645912024014205158344567348718474397109816797400756605136406247161641886518296417910206140233351769538019114810148473665608772161280723485234230726214763976549952414815399465951886193437257921205787604213038887470763911508777981531457176401569029388474933166704586642347257451013016003527709858729328922067598678283816099485349614141635609515613216094204716738914992053344069421719883622499639515060001110657799908602245646118701232956190683352125815124697168744620035785368572635258211165482181933957776711944842565225277318041208029569705533695802503899951570079412597758600754528266267525707373821982077164599518558834003758259495794345044879727062557187226567718511976123850836582255995706528251176671938849066264594386488632907158209933632616934442042360122911657333298346611183163332200606115272725136295995211989859291789429292452626819203499560419232032655297733118590475356430763195764276129415357870033712564241147090485665378209357955747407245212655924356629544222870631558785042387071455304289270578321222332939348537586190931716949489016310650213715698910876614725379004462701905044167377110987204711916613505277078603279621855026977246554390364684131319076242013394788877100426005806217251598950082777468566845356619139763689993888331697616114238707591660735135899175423908771074255283120181009636500432451543812923785860039736403284626387340540012422883539967697706418484155418999364488801564916341118056096951313830185649470066791985796796218393510910518119685903643962899008905132481395004416215782595666200353244811106410869942106877281363572425829031175882095080747540034696408471813283793523414488195532636666567487279249487361554629132010305901476804491778993513450633074123793160021114157666588384107016082870754352628580013672128427728507134707688218531435301451773265375350843818094101911424831280679802722645555287027979086442671905693429690286265401599014684953464076507215700836783419632234146545320694531375520077622940885099444809279458681316904372652032972157087111880570069829379097863108261844472193945694576568128117076123590432885631549398688569896587031416538803946926234386274709749545865666288212032641352611615002940630456604685080598342985938891118432901344679175617139525048907237420831687268504652102128825300025197155809009279651304227411984631126721438422486179283750673666913455122985340154908257952166743572721092379463405159489340189815490925364149734313785519305359029354122846195878913757979885184640841021713639867893942084776300158862470463502592738556887918618878221619684350083715835649856937330211396627017874461473552175601074830762865186932830619556379676352302744902647144186769654228021432266996698320913720010544495292111425366087540742272012183716758252798681036168401618233842607213560779006433029081325024882497510574099919611522977148630093456610663771911715548844013833269445242573012485056257264728824493092960655190003205448268149185546025792265004685970774742711899137662970864389647455531722610993685779261120170420371848568368166275379834005505157426436824110256008086186974168128717961559193326029805998703418661660645773461900904741701997958600387723001842237809871917152461717650364563229675403072916136905480204719549736791657770291131204199409788702053379869514745115872058571975464536252911183393129766068746164056035736639497590436385053903887430610254923464826867735236831570063936703713439137865199036760696269255828328189126109512066965653985913785831246864983216615742343937591524445517024579871554212317051046038781454258543123445211005975956379227910974527197707048066431109586438922863468920763832849602903096649427284408064586096350404218961956063507559583032129726199800520086883632264850340864249833837395795399690916386003739921484257452724216350115577745402121675103127460240736115536778698366379097623848239823880637771804105915747347005017700356986808239850247386603493164470845935520653703783588488544375293235509191192592324094611781142328334829496608746902032103903060215384141166260352224920544931655579377222977504008090269183992697257539778291865923740943198192776928098768926826219820976029990073683449583668332132920791143096588134469956174542068234960425870955025538523188827417460427398601720465676123021823459980295315665357737816958995454623376761630800756405609337170912112964744776481806081757429100833088099361794601499590060305777893491197308908099348350546588702446691862020907399874664313969171827510356962792516735686923501404336915357063167652066376233415364192535811806804822027385752057060770486863325601858034212084164060114372477713007753699290862695707164484569867546791804958684648728974654791222579673925781218582133945317981603492020318234979965453048810930726641877394048375044673310071013212955963649031526416636489127767947573015706157636136567399530455953322664885611055613313347912318519361123158379500923157326903338060541714505735768553276740861057025595170794831530219394442392080124643277226158041341326926374152517075023133233164551162342818542103995033450086803681919461508157386104978470603330406612007697539102776661015517582544935450055504622855655599172168912706283926676561282578292920489949586227805500007563726838517854261833315326884865056415904024528852891790552844965193749687759039378090257696663832033146911023896469490196190574003252845037845136922200610305476732750933436498121292621825547177777503392931517985007079335382810620023308878374294680986008783692390735332289799479953261013887299818140275578341420847193270706464557156005466298703777801987526571038016807993845646869795756912340689814187432990996782633402524297669420862440588715795702852631602951723319172128809291897316994306530264865627466372131897202578178385873599572671474348158736693155178259535373184600199067770252901502759555170134793213851716799108329424550287595447074461533072516470914776957301110529016879097172942206952493853307199381361039376769372608485272457592115023797215339659106022242424847288016885697012017728412257551993268568021316040682141261157239597151588313711590684165582433777989976691276617264130911691118479192779541921147736951349375619323799935153470582044463205344246628761939058473749212698468934856581046527772340028020737343304463853590911468303181560292083653208838155922414612379450624158677421003497394588350701225436489339843364097626823791955557072907006856414445464605829089656932696975559924921541778690281459310561733268468549708000609770531265585618613642792905857528393742029535644139187388536478254498037272625518025352559873379403327945406926787403992001426116565665482092799629660266931722449174629399835511358489800839673231230074239191152680256038432787809698992962288332164471192067523694145893624665721294231722109332208903082060803419027115892453805295681885991705841374823118596360794400062946888275108425194110388368759232275422607425762537729230857619572238018174589394316458805702864299015877928857734570888508880406578052622721730052255626420266085470732130742393423960775442921839559334207276178674426024190635042690010380293267218737431643753413433320121787018351904521253339474197239163902427116918108338543952605454996938998377384974000694800214856643630368839156294290811727261821850580071349650077723633105883762435090323247037061258934506250023925025338065287515765418785633655865925741520238265859450711250223444135377202273079710205192361687711489235007730332626905010664792473537001396815336742020700686710585203150943638103313522457354812622101386436848463005467621521838867794201726865228830783016519344985532566411824628724596173222611198557810591836131192014710771234938070992107292728030706857708768786507555017250988251416195696538569626930817995056665308836614553322170846655001652448392328957398561410318732285278823241838143248101677756617859921070274958202602889759405171262833538719809785156757011350765758462526700848292515911071519887403929119165290993124839725327381760669389329930783176060333882843125378764255404594551875591660533053537047909084379145675941512149556684970305736899792005274757048105459952132242949763372538373370918993211766379405736739883627799676331711651397640973843061742048314149900537512936283501553312989514176677346572772329707153875162092295877751378823133759405295509188431361635338598272961214260905189091017895025316116725757679194059693071387861562898006379254095196834710811447548372942307948409481343319157199031558685703844876187177284486516483172927577891642439527182852086855788156962516503002877175609297296535409169349643237151534846511975186667242489323403020548851157117008404379100999352892208344882373396702309083511980651934631226107981810831681456510550438840488242356204281830322657475643171891457873441249163713816722700136998686451775910026057269812608501351823439332458427546668645069062195182988343146898373663051982215756641308899358075544309914620883186775875915931065348598250389529817447419305923198645772207758419674422141216854962408000721387003764282435466668455283218769067331317802432353418503476547817396329909097655942431761273645924437149081615392030891945143242115513474402769768632900117104915719808335749900291295088826058631990144300685761109762022692683533144946158606385021298451993480816972434375990157977856539944328250177816472482730508439662146809292929403339069197590650468933740210281139129225920513083394163790018490980598718536710508202825420330665422177588332365555261854383218071083016261606854770678540356827573387425224540012243596873784065891982259479108916486614372484158729803517326414435825993134113481878994107613145461306600731959611810929966790894708617382538512491746179346371049267071909726983724319220098446022782800408796285006222109426826592632247453153944249096250939201092099786262293668092025971158602148565892564650148827390426126214639778028560484195348502535563583869990303496297946793115343303014258328117939640309617478677441392112723018998492065868613394728478668102003631456249429715836759859898423659568951927999829202991713651859263251000797351952042212687206449257234825544698559619960648968993823380341210061499579957625050598962698510288002391742548073434591622846295239082268156566119139954695513557521133715417056732320441575919821776379617961172223103049683938708438784989702904709638143192448808166278136095971734884090731200932526356305190341596190488449406826720542639783511947633017715273400909777568275593424319154878747041936529472822189212804254946340116514755537020293599662632324280254721458487644231623670933314971968612845679599149701503168155740521352058020031730289454563999672811926948585292546328528052481214369491334581026329877721314816643811084853243812512831541430240253112508502831855165184469508062554332525388741411025773731888849428747200261344053531807835111863374356549107606482175221122899913089784970704381851066048578646461754901609541302802408893422023699583202887617741581127214056361964215934645163108540772163779530087810491493949794610625873640160322469441193811321616576428523063413983627251870893846325392676780745562703353216575514128933135707471537185134168618248474649128988306328343009516173014904048890244236154693456550386868518099498797206479852939523229837987968464348127213308626740602528243237972880045108718420177460462284762446895164695300911996160636262287172150378900182065052276043290532042755747910060486012933336914309375042693437278522026668250008928702178202526899375127032136310518929477241957787833432584522252368125761183825911378748890199242506248418916441443383334620969990680682605855798658601797493558469296954487346598658714709626342174214784775884961216082575636030226760311469894506357223575867496201739963083371985370458267633014012698604032811124832894159070256837793835834719533430346580886595590428255195041298701094642509224229243981551258443528084387273429724113044915162615521529309678496607843057645050132491863381251405004382659626610434296962802468926910181164430230410992040955522831305296817544580898226047442831441051418724138470388967408724249792803305631038483345876970263254055513097415254019571865098452592690191462429070638315120196703837942781361407787143297765958409134725307040261613185521610415685366881881296764666025088770983150343478777100407565703433423291430188974533296432163385036492071514534267760714163847974821072082451226755972032264496231922668611557007595369388929774047937234659341604004730313522806492422403382589320571737590656865630034224690139161258630996978676793064759480573270110662437661227611587645911586437111959587000140971826828334134693868199026150493976712134466200718490700227704680438028747117183425890076851637595612102428798358202186726036419394162937384567993308362956565219349181360861497527932771485331420890242290980209917362541385146067721481289900344127418551012726506712235702822674558681527805260640507030130621556251469991568137356678081640699533322336222486929856934926094836766732458035750694017438199125712322362421348040391554583109456203218483956252009257128496146396647892348845804944683828097615157182307316134917265176567391683941619480791315798646399071764842500489691046491618244384784458439824567651165387798170404521441251188055888706231998588243923738732873477218664614664881434081555116792391254225392968342952874425962155023256286006051109742476690259158267545351518296873827358361101029562950691884897511788089175360745657155646202967821412404365275806891623447080750980096201428509947815812289549765601848131639699746083697656566291935788333558206987995315639274178749451399304812543268294424153544386351118818060123255825230641168881872752441397504395023403876572488319575936681871426987990020019495915598056908729620128023036128409064678669876024761150463898834414967921774921431286407285056475076695859061665536275496715372256373193364028380565139154632504217843081509202680551540793703132203329924769259908369630758891151463896322195546800670774856850538130744623627479083830562410590696710984197394700438796748017280688164886633907757954173613849577395157086077281344794506063546614679174090396237497145578916779601472390445037200743272899668954863175126206414509981921315324259184788830066782877451261160916511473252535209322135135516567940202110459631961553989431838783441753509892575862659441461867212437907043015729772181244454503418178348419119887117736803143361559234022089566115246122827590309890020825805127040263211608903216178084669352639940311418447426135875367263775454439969922773011738447752317779106751566721493901190711403125201288295792569639713494594589847498509570546914170969533633118055046709970140915486286762347009351174940785544432894330829802572270618542010813974534125138929779144783198731708460752343133715902829897361690677330218188089580714283046217855458503257898164930721097877411458721990483039278487777274567335754856121853644453658480860294420384534518782017467523357342920450422031445278722275889939593615256489120729820181386494853366504210373075004382987699352793837243003977700720438432700914981959293189478854086545261653564302804590649116282008046374500312025353049170145483467670313724629020896600849307177117204758007175284335136546963059893032753642336186550016441254531625571229480919888593792430412123376328981475426168348589664531136329194165674843441463993127183820094583773763337942090829201921208448418740933436347509795449047423304850628571083134496742358852409794406116257742618917259506334855186395686302332143110989350823945902491486474359777244574101386711337167161278048778403692288553939484209392563407613127511261960883587099264588085988218026586014488571360750291568307214102072122786168357802981884876664576008368449070096065169171661514046493513605461728433755788079024962925180807918031288630166649691118891915576661338716458781350467764909935243475370279933191839681517066309831158050780953869109959801646936317935173121340550561486711148669587613484011598540944172608074588363901589742829817176582004003286548687208805488315665328848851353856198814716578920927170267751490569404066248994168164889415714967148759579635947556002940781429977028774712556415292407880447927205430784761364320800011787099138315076941766631221913779515865508308930564801558461989356975926013017031184420594459493677813388294250654100207439736220221653675137901852931849488479574334846902992112710707387960541822689368393327986160412952489072099270341557801109501114710414029463030138618448761329850823879390908855671946582087456223571029853401194704272934979697159168580315886331417128836863791014897563974324270903498072935391498742086650663096795009851355322226732592284084245883639155059105150156104422173425984091726775050143619469551181686553784788168916673608286639103476199534225999846609568949809422913921858172136610996522891794484798568491448527011940416962722860792200459364227961279233626103995596846859896575432526835862909977202446024070271101250494069088016949615782199050549940207940831371214408752064518778898414023951380182179121401656618186746875663312426576327633644577848971688784805723961695025913003075804869975317999514318599525466396548890569011306476737903690116625243442914600856234248737807276171231921773184226062870561032438881779582399898847988693050239123010225559176423122855508127646715664640022442350990511592915845340949037159654091359163814216078173244529301662651355277993006550002378787173807774496430516865867947546360711160183065940860448598842604818654194367265709393887454028736366289720991575851897710500565846756815005843231053950021216194720102356134946805863180026668866365770755166560665750765863701299260537138150216552693965644105559222574159491899490902195769079212178080960345331932492514395038389724283212574409161809545872217921122162479716463515731614862118953414704880793741283137096969421781548284203733840180115947021932603425088445462978838143214807617351150926986630020638884826126057978594786689141397635043100731147882643193263691937475502598405401098412418504131503290649025108259794731296324984374964528124935349093496808016026455746021777157041404347287585465139120898727173916886923449342083824239784033150544605712959442032841090732163064455608372387375158332278434930106987255457566239841262748827507857316602858424822311244143224978153845976832068347427536230614517462508869195134272710070732959351304057700143420914272726900750048079410871578086781918428245167183340483099125441063238741934494725665147257087290356789834812583775507804930801512341066059710373869483912437715098876285705740883126245579772118158372886767949067771442425632274437356015771591985633123406554621198407271158160154501457874364270831630295891751010614634860783211431553701802851972222694739783628033237829081444816937359771368681710749608525658680810861149286492163437420255973963902987828481494253033486648538586109148249256069667727957943085885922902195355800779301554149588181691672758761823053283806968330592589443260132405473003762195163258754346481752924305086586820308622356397628352153173086130617987742089630354292699803137446338119119748366955396681531531990154014063445355641531276946218458619242291590841799696740547328924565160970040403619463001480243492663896544486367970909859068807226021338292366416540878232056886322048031544844722709282108930612772336650652000003023983818536370499040540016336673581616155482197187556316619780184729787068907424128604736553427912722061836821875655271336638674242392421053033041290746345683473153047605573045166604888762556273300478121206082030364732371240477225331513873077497025978001398326794229651363050608476606299822608247688813023218536473151809935986108775706125781114606757326090080539007562202417383248560000993194625443353880630758597846664510376339884852695047369635404095765681987193147903123847399452145565644504717469661281574843141753261491605695661692012607513023263552887600813676801690293478603094386127545838713235511361077453307178686220627692318162869363436510182863375706669073725284431486676921681007236594332494643412842078640052633463400909892443525522796611332733394128301205953735010236286007696260003444961440269494069970749059827188213526085988138140447086413004074098448175258529185863131866445230010777783478284206632311886573617600743078955211800113841342542536229068825533200130484248260658785718211642391994677987437260299606031823849605811575053540658986694041486513064729627879269206967630207124042485038273143941080842592804709675846522747461931388226345016151468728824978940632714641026147513167641399183065563202208666564372671038958971158002095195370233753211779642062104023310895720998120523267497123669990668653805590802475384425645176812118903019354328268225383576759769929349257952292137331774585434457165578890975079989493875188326790151992802923186198716283625826437798095883706717339599937875256929671123958217092929545082674232647856393296431583954748425476295628552834218233531809885891642166760592488822990228900748676452259960373447062498019078277346461947580000965719697944808018336312926370499403618073267761202446126406942488233819273419628221061902252854678928673014343288616102325235253280352503106719686718230321966405569450479739126165534266939160154441489382712414030957519479751407469249528801775201443310297573870167245782075917325008232170888286576203738606548646621989677295876412095940043167611809913238482344987209692817641080363806640167518730529592341900592395569818657936788330229521899405696085044727745028094104228440448626303735642862822828484177858951953763876247032045952529275436047879469542362742009377101486780246062988428013230755115884845840942080923431738656569656874729407186352170427363393599609323496587033663669282441388579617751061395984190947468468560567793507146428029221783507820116818474805037517675090221831270595690507346281294856930803155211996795051236277287238504527318379611230020939885593040500105808690682576778019078263230711368841719556998710474222206638413416661050189181790894485457770980349644149414448842524525238050281881273261089021631190838294522406811602631578259699058655283293506249768244787739719469122422648854165043157829241225877095470416717827988544477484375115848217061306513970680021566320629204807695621264014346649226601602188456546895722273004535962346683586050145208296354669388339136301741045408040978221482177625364336723537383973300999163238619635714154350002822238406280135544238881246639144787907359388825282910517339342946790678309384031327529936586030113477226394405550873789134581121683699007724486392165310885668609510458605170173604424396445450995178345413813312094042853869656407353295048668061546638200811648155947339827881847376250157447068914428019128133974481514414853880729046521227842227746919133465058592366130657861924174299205067581554790172209413177701812685668741921673803786254460309307141643832262189423669310368651118515570758256143119798919829149627977210245350212847522617797924161071496046592181602082730198885418754635234111484328813397907988695009377829905715366131891486289630857986183770116438638923151910472571291847566056389654814775523678028014844486066520798915927459798372984852316879902992751538631708759700056877632077413151280240305477634160563362921684746579718480062801939961966374371013932366384701209515875621044419972437933105850545222071573586644351214546600050030658739412147292709088591412668074971094810876224681713126946125933356634015033367975278812100780203055480287816665750378971600383541135728382580439122278487325969086319010762028809429128074168830631858219610983127167437763105697516278003031667822408936879735584898214840584261506104911456388836717902825888207669251343964021529081138318436338113951260526948142678655474903378222306111747291839638198284337034192798831754698970259989614326777792053004778517805483265542348031581392870299549610211211642457819514356872432697247264576188941923170424707479885447001760659491228735813717939208797248326378909647533225477687467047035352734597588928142785319354175118478896451640760118716640059371497786892779179022212153621731557470061893083144961876280741608543571470930320369918447467705793076623808815086982756948010827849711402969629994021447718506779032061297696354896090595629535152171313479118628535955617759862189171315784871032542544649359591741178443644547522012940506952811977256311095234552583476269275797485294923900808915653817834725010773972907726726091105399066966173766621514754890631787913170042006971858726786005034743201997989878904533125410186722104445244159375222923528141187932213026964780453356882798197670412388140159714001901793197129920250001277978859962755284930032829996022397334719316897118656855924013521899993119280623341094856114387057557257579388414481113815304544523863588839843143621845453351561530700170060049661196313620871393091246384621265483542450042657324107928250724547663148624924053900212067807549029950321266264721548117445824297120076635887315299744980813836643251571657359107036142953717725897081515857775229916444970180372614936533192403903178106703516201423243686325127538473737039190489810437959673081385530577900075244394550181647332225163385164117622210935790083169325305280872668422448863690622290303663365350038933726270075066357839847059168452215766810468540237014418316764000529220882642157094272900731856235901028201850543576763716898302456275195336039094234996332984183489042657827944603022609740155346383808432651780690299130695585702395762403114026172798832476841851891811679827714030763448620469151425353794434531834352076451489304400738671086241359388874072724176105635549885128270894732396031606981590515476770774369145042022063059551144796145560396360183222086598095480711565871521838580359625099719569441526223226178749762979663267505310229710594664238364381759675722657662642082947598895939534814690864972283551590847407858997533038129582260957633507432508306591149672949564362898178131936309197300293340896438829935182008017189089961391068984792470395611007859830715730056520076094595640923151753384886994668059974067691384003844168035934161514254618133436101183070818771975451856146285045000945966264195745895663044223673408723371371159399686250232514531129789414294332382250253392954803614030337919275063025364187689983659460763302473361488293895249577024075847164564658295483699552213963707168349682313860519451002544762682412799692504365005445285167841271299633556405458364377875700702967617450525786201549296175426189519714180638062817317408962511170053090942623247416706269954710883707638323705094186526747200407443268298795095525716772077984908038652683951182390470183416001250774051534992215475466999698493487594524070346400784584559619715388308907584115818783594706941717386307222139338820644257278501984516031363738433458333477625771936379503386301994791785965454454734893277321959687820652552104580108786629144071160407939125739986658886618386653526920742368453615051348179324676649318649242669047627951299368695866449440052586267762039653738938784275135326848410148397021910602152171009649587544964662045158440429837134513198576199230800949899256569237699973928379490216642443912654000992179260762241981033890101160423278795737534460343063087179947163677441358252177635024382730459524342058247152008650400202395433353572074369897670957560803520075469641999590571301280671000440731930709772927599423147435357248431686095880007933579549611285949186110563384152064528666057711627690027806590336189035192677823175735565541841749601557923076404200457731548357996317822207378103840847237661310129517395342995901643566751114357174196488718469659896930794424904031067664777529008580817165880136425443138071238248863489758654256009551032276398675231399862331312039024389819200211353577967470508608622062397901912156306224603868779673779355735677395506828076338307991538039864286905694068516124963483822992345304937057859783178071672648535734523895596334639920640842160830210357280278854173637239376322808826624897205055851514248621936712289292623341403414778885140575194706615008466774608476048586492575335889934724545936876605531261246876548370684141773544250286547240341379919306654469128260948911752155149298463438406335276295531549755221168370756012919734123891231823969382716265007076077802604498529109272929466809366373292922767030357012278734998180573223963249148492215575830291728329642434706876486709035474349307858146925474929199147495794233167701483370627835410590370747496015839906434911422165452817802424847448526295488844304615652556220238852102180007152405865830581024882142698741970580400650192836830261599646909925656313348566239989249533806525061045057364362089758562921081676944657233604271903123661003633284080461426952903372228773994432930247019902925287810540582829021840010902737595489141512292409647161725802251500533675011875512824992941744183049340037075905013080084916160070485698403983421912874248139567405981359760470601794699119295230201787287354507088560470235415676430048894519125468598435743412251879090898794020670656064230475176098632528422741740621313049534908855800723126371496879337283314617035206057765546816948367030426158606744856389038203775590055577683723684476680651338205203362123254547366698455170115356066386581054626566249059800800984365935685116998122333837562330304014704565234218936824036299909318202956572893131982651795807266164833566823063535550377826444810890732348351906891213954841499360917483328445092741533065263476589721037021609178629416550968464796941827338674952771564285608461833414763649800111846661109454589702744491141971748893259551406685941585670979197111159827810668276990754360478608353880781704270370516364303243885586987140219085521253116774748993340694815637198171491097392691214105577352436673688874793367229087445757972584128148068617197921948779330466543208288295905901309001435994464674932955898675435775355341588553932894541381238870884902872795423715233108126142602504117716049767504012374895036662526500009914825874350788393407012458618366677899271174921836783960207388033126516391519327799957176290739206553444996703623571805056104366742808447596775829710122299605212316495372228630423464924314178878050739809053038476263801210539279566960929881276094243465304759165043312090290308179224930105743979678787170327278771962454424801914258402244631404260430353297219887366513266586463327587604013607280557603194279595195821670843540255844141003818716826432535285230402529983570074808523196273749516797188740075166270558019809325068461026307717712514183250376136831308636501655557837674763139572107947667975202814512143535646940591543534237643783594015914791465092589276395448509710496577450067851079868547604738894290859122360471225077240270407801390334792146293390039484033239032450966461054598197972109274779465390687760555068461261366715830229726155211120967136052175414033740772667648226702435427296151885267275909820854320824474265300800349973447335687958580583528438943759646278015614819157167696165691507706782545321125246962959684534687312832745192472274952709759911510922918359356309517123675029482614621238879206498713647766705275756907052972989734875629480714346889693870908089826914842992129570759024230544392853876323645938382953132736367228891987723185204707841542498176039603565721845191795248880500280446551490969621987679937415830628430868640771727160298767421050459571455975385180101704494813971638890517498047653079352458186042597743219447543768471508929861019812046860781447271592256118140418339400491375090337451963698511814057055266676887800235929185749727443435836256443083504636840110180500146446791283038329452933113549387128090485368860052030111462786594795805608282722840018933184222996291902209688617428281213158042337479905532401355672429287878516756279861928263470886676066103201586389829775446266568174560782224273103883096095310261964007752595143649977080476203932400279088968612492558619803958145209392994831406780988534813558202382298510394318346957229045945923444056501873905635058759329633206804634419721780796474250111183320227821213328381172012626181630613265276689693622235381655567577531752915278084279352523030417991071386217922384308005326872457587409594818366802613922503032811855898968258976506986962572807189003939746660450604274627366439855156700238459199298944624227557061858599525339381167880869311312696964821837694851034033540581564397268634461006488985460133958602067725482620680380493741071015934683109196553883521072793727371039195124638288962028795953600545241823121288182655547292775446504481967242443237094532478075789101139815234683982269959654145865130853033944419761374398514729442198698622931496336569372049153927806802678145354359768291461144269703202656372570838288831128071247292702071883792963319043929449162914202433426428020481748875111275308570997505893355310117656844741802390448548433853839691868114805174665274925279231326203717809359501290520441909651648794452802208428895059991013653935614087193193717553902054969364234235145617732789791078556095659560357532730371154458837540617626593633199011692868435718089570026483132063887680032096647782976935687443384258619758165369292607354494687110508597373967239415597068593193940234031495514070451059820125657490944107254723726435576981277240723831916640860725099003048415796045391576611375225820366429842055844937511634009136183542197339545059696738740768158301663939367959870193575441609092962510029206678945544484039692353781191193913590019249262090789653729892807536985160636963642440120346399469285184505697129046301187287334405784270664642667962902491692890222801938984123698087518509057625747363608434427537262031518731907148230247286240544777284641362214994351792171998927461631299708582663226173270246238209847471668868959937977909420557912287742876669097789647601799581097176184712050628276338115934748903946726545495831185587220218852441083223182058366386538743543813331789407177069456343145422313432450017146848924340470946207417401720914643610648388326531467380387843502162459350177948498060242028688970863934669413160028584521479016115065851038781637692299946868643247499628529261062967155487966857744807271797807013446797064026014276561513948290885220065297185977658609764573819395277771112721675609937602841862606052694580281630800806344630439141239927952806112005417927413508880069494529287674990900264297316784030839931886171033248205000099473428806383556517631517546776196008327299949805270081111228647225888578062699730513584768606439372632837413813971184516538545030424487271103066513947017667267761991295126058420071525381617283519537965177785827009724961217423441081087648399040879223533944229914882669501866061216514285719806215429888051286198275781638738680346634309273102161949472826006552127103817158491609263166932180862015263375017575404636901466278193032734436376728571218796472436090862901743009144258808731010011581983070219672277246052716592647053291374003408553925674945548612695055020598828569997103969466807828662529258427116034853741641713600335349222342760932675475736929682345515151329674162597042532660300058930861462720090264512261792951640114062115613215550258773944521349164943120714192850341445375349751252324237698367223316682571737769671859719554343986949887385167108995676129824444805765295561197425095215876288291705956269051233334136418200492149076208976080063976639115944132219992479153703596993645247477361881585245125640848530221630984375295898815193019734202984595814696093981468105423051870049653096326370234914449161658186727449931838881663899218981857798874124349930357940885753969903424599860294265043907611463158981367950558308239972709031335456158855397128178817432439890886091890582809020181095411452654769845894858755754004139122127824474884321455189195424481085727215844825553200802018462432752505779684382473577157135323330020691748487022015501405618806168407670303919194287739363164152261872508549846651059914202588416354172970598831156096134831084794319429847874684770571257076598858907560908498845363226866542063298240378218320433749900291152941255017434858307667642173037765704379369498201225638236612861745914907376536755892533516064219705414368214970595456550883386689793783966854951541492984093187018814929453207193958539487575606447301441750686718338945303962800642885271412485668292233301798892507527513467745436852378428708203244858090262986849351284816038579194634532274125307876455921147365604758682446132115890790887497882826000982061719669381741305853276353713633498915275929407572983125281375701028724529288619331298723337266199534237863816722459272434812701408956878166655303611037642748695397938285690767270880403894503717954536573578831403766119716945083812701442274943027374101799838423733421231310125176598551673699041562023705138616463124183664697580314822540965241881101342198125394300535658195180367506399724804411993501434512461009934260720120708357307152987160692739712961305699938395856726944286040176445980401685932690059841055823660402864794873381166018699159954355718440616128671148662108977469302617469487305468149786230491607248627731754015074843882475209176140050438497471198289836579050365549700031126660825876501937953342076882628289549407693179158903528263265956707992372087919903212065837567784241472150905093957086812822615334310910208841782728984410801791046099653107147972160748162275929641741391824243458783360614713880292566842492132723451925527336440054263957963038913336209477486364342937294467156770300333445125010009825897665815428805194916352058728720900865989316541623049869002464237710719366158626627056227224863508328529482528232351507259826412774918785111999861567097733940012434463657530255580189986634837788765863425497447591911825189028396076214058222226451352215451986715479814555985286706221417559869442062532582733730854519728595138517801839171469478211798352764013962281244381925384435862922475772074300993229737172015430702853464892172299471350189028923620522548631407966304610317194608844166717624555672344333286407775136798046860563274929417365259859704662976360073461042144140177455109059690446318654633305379743972056459956128666888219716086883533781742902219893365515456590149735248492375038450255713319367953114779710276012297540496295487649057678476984289284021744812494250841050777790796898673958012995928182403654868641980926757287498469336564741287867941366182718740718024924342295382257550198196076182128690394039354270898769504434825604301710397445611039888789463781377226557162513076051620985944073065182660305248124492540322128826418037329317428578559677527150108722245987289117663428645360460358383126817315224605916041419943685885379319179882926496677485846194080180519037584210882891914263067539127397915081738796639143509407652213268651302124500197232946449033688768083717785252797496039084176667466521118656521589863668719766269589913278445169259487595799273236195329749197778846298365257578403719118765822545121354066047075978142562020880268812713086648207424290033767666571064779652934146750469950062755172654601608304932947259721575179565383510112254959665092504473040647299603261222304070729841499116048859667698703126386547588825429812064063814941133121067834156195596388643132707019460260673390742236672554038305240879006243694995207507307786680627780354456102130118804463546069170191876847344300814657179264486211063688291638518208529231522942822611082584926031559883317529226380848975575595230074246942590513947452135566259653725603430291008667755443700073116935111627642210802652916870587888050310784377919002732026817284985365688377745553615541090403937155149986049728150125534303701016256315127882157984076349302492137792474568903026425870371439235923499413906499190182212553668152545656366785906494658051013559769610655545901058518721403062155973639584367996332068948312461439330996761985519691875689018208523760109576728810853981020786023913199815610977426048903191410845872008477815739644059773924335550901886553485077440440888673378488872428334439920377973231669369001730512323568657996174196132145232409060399053830592312854667489634309424589203687305243087804463725497571809326588232712309448915447558778152641569358958188227582123673088057634251434936919216672589316104760226774526488221521819463737526529870588821604668442508213652217050588722804193657576286662515140419242056517082227333340891112449173275017389209442657180520809046652709687957088695237443044450654588759797391797891711059958482721765756725596829575147057982367886331191448683510194335540998486413352148326430820399307281648927158642048822118684385166727730364265114967984368599996049059919228127337770204785540041774154785707807456232620550881823674309538503419373611506615842178355516809576300337935183770851012668836770704185699562448194556829254146570388847330718946928740480073658340525969105565309200542699400665396876256554975743677114990349640041566818605929848924335465760765441113230427046796492291379759518466212900203140399074861200194523766539624051827073363363576369626548302031731369999114443264473789067740705886912833613460041971410021241384917522321930359774788833558105918371873947533531180133396738613532480141049578107643096113960041539883304769045719653047228208913660175410205668517889731345421771730994813561307149427115000939176671003647516813092018889723733740083034254485512204387813054383099189061119273128349986112420181910311542215720493875038711559981144073694179845011263238161565421480957768750047007878650856244240589023350377440968914676458821828764255721907682718921377598649494240134547238676456699473641497998470177483504488093499811719678185979906226128011267671462899963570115601744958325483786518730107290549913209182265961374143977545727608936542699030763735717631154621468998649788413173129626136062660671352150659519284708954010386922795635063315163433243461992998175883128233242818141080917710256146249616043069997425535213620279227958079739864280790359130406296418089742659316585505535493700031119767524212250287107930926282378714528128922241497803559650127377057768124727063719262574876251381121118167415755872730608834667544850018461410727437540138305824792087657999031549479393571799136965418724456954034029129125349404966484873910265028765057850706811012726436748833665730237586232384162690979292582982398986287203945910415230426034536739075156605336475583272982687844216818616988211292071375841563055958423950650400864303027921505040973855495022637535558566458929580515675769709817151994525866632648299394552665062818972105463194114843775853076594200410417707984543719391687661660806218089070374614588376259816431537415360546607940268625396400697806464785124424485880441355304966309806392932885685330187490678653800216025483433709775210200470762867748608583937411164083208583420581113596615199608835010091025226072204492564329553123904912386749952103423962280269597840211536003394417427562472272782615968241655720146970620074159276869172115920264399524649393040374926961434058685498314559785527728476484424325447936757909321218166801207485969559168283131418141437250840930304958208403712198623692239611100465428987167375103217448358234596939000407283611484673512662737279520981763498638878058789402396358764700572926233188480284578357714400331739278358263895205867716307030440073440146053897464848536608858262800633123234355160472185904147262388731936716284718462950331955532934095309502880248104590035572569972666140941601756643450209612197411768455429620018415721162954976278796594458864275023762431433790792166898215214356276589662777344897971527497624969566127659663622411494846685504664088406676421133047403565809353504273568835430388723025052714929315054019379315678684662144815353469090443658185107475292290964553331653182906335835962714737330267392131416773124990767259500347023469843111972981902554648232857440323640450971469167330761760877113714189970443574599051771990384348488717460268737942800041124871878983535167141516518138481407294231560304775922358728155984057469245290932900964669245951095280351406924405209539711045408886025674629565973082424460545734246090608066916144721516963101033657702634061952629240719538549221498808442158359774001084151447513952354460000147830359859168708297550688768517560546683188334225321110633043083946933529857758445174404002095584798705015814513807876685968542193830023621330907021038117399139935979845388117648890896704353885351768182222865280685394395855592655353694506485127935336638786211154597576773382833813024626714586749517388727124141943130538365280163703051976641613633911267879956335748536377399653625312212449639519039710380361409317339230570522166339709734717243372502196688718664589959306320632352979098364804161345522396844091457942904678498558676059213408002235386500700944283105427368568479911497502713707189228114027492287473397100404489013598284348925399830472351179400194889674571538843173335641415908484607173498563251429007013537389157454307415450116372725256991020113248464244148243045151657101452803299804563583429297602091394343309557843438050571113253712168341041096679351798626552723804924731320828165151622571652639170206789438995636293206703359433885615377929032934548554767373215172214639990610517402184558670584022964991770705278664465927487809853650192101018545009834659236037755843520115011605134185908779343479083632030732955139523530366054740656925979118366873652372193953403456951383392145528517563674761392449550162866243455943735068175789296794870565488060061028574125631004347743274514649312117477527576035894591601087254346203570072962760802224509187807472852909473523497890098175447830725487492571703886190994239849601265600760258248609014218053163546318455153978801309124761982308434847417534070967370418762812109246564728303844211768071957770577237961906723148470875362318112117158407499355616764586268322887813395231126798659688939819267107515528793107696805618024573111855618658464566721067862036077188337549727215093888067117415663112001961999669904509044808397775351632856401092432509231251603883848905012666995654463861657906307238742911886433105895005499240202641658998310377553131659244728765357572057674374847490332974825355528676897290705135336969264275237805727634869450290161980991140391756656102120244167843032347356233644468846920713198932817438457904713490833413170367162733261391953956744351433674593863136659446745464696621369660577015292490233855675013081287805694111539103080326526327183095739277259900572484991491655709947536559988150850018573880182521878688327687219926819847081515924583695132266008442830380031245376434162092204296256871394662916508440106723626408775796613353584631003584700703459554312580121934793023315038463406682801898853014251298531189253813064682444810302895659610258822103045736326774924080818092328394236552289157133898677335776686247930063227184712986869614637797642482074994190949031182859693382802565043248128113876643638015434009052015557449767435045561588917640965075217511091749488867117013644767338209436525605211635403056363573767716316762057637179585242415191689219573230643717272662621423025359079447068324942967748718457222194587633253845632088502025905249943095775488638581126751170941307014206629367534086191300795309708241999368993502264466165622468749216325622676962693383079810772669421717140295894954291826266897498989191826313449402721925938992050411529004616075119689716383875091399768316666937899949507739379313102386108837948021164951281019121208291256241707557986547641514052160928794429843156646147454583098928934293289205910040630030484144606589585094261776815563247350811663190680883246416311322033978466365015484286181415629707390979800751960063896514631485265585123514178436942564076089699327889482304220588704734466126929388176888478235772776565761036556714878633088001577306581442705450244828954502961376071584014319624052057217795646213255044803296264159316655570319641153569479356514071129402535113651741629420309715562319041925319623170546443906646820409411338327489405733678098544030170896633838991360398082864100653337297595108920586198384242587909713270510645477282020125671424030146015657912361049093058948898796551475873851702488219894616588432960147327262766509724176258963369790365026640921347181156719706037782414809236377862586351711845458899811370772998207035714081742749374087764904175046579696606409542854776164004294781778932282228080581936955863635944345689851985936007485969902417019870385477852917380687155645098999806422682658717048168913371708822243431156940056427484509193567399705798076746901839560551521002923168481520898297215417150323359417101474493722697638282279233512820723039120344207794162722837772922781312489650683262847785117703597553902134314218807474513819581493097550351237645381367129398789622395627820200414965596464950423195152001530061255827284433821414602437193949799107581967309883949371951762275853530377027448207003794382149313097361558241236019394166842394485623313866264970358057259676998542839853310035599152626156118251185846136067823406503199928117528495673075864993932899241160211053078017171959354022093902012139227057371268387435760651479724836327168691741353935445394067825662296078414288732317987024834411780948561603111321089288621266288810194704074408056135106065043719640679894388731712401857207772524954849003318156194374300987478313753118536756849486709310064841298890943445027573859726761817363787018698795716378789799123038241529886056174900117406181294561834338935693877932454949309185727617973237382089578329912444491125699904118801938896872678518313581738503405056200934895003915098401765401614487517451945788131362826721234900397098131221603020178450303155182126521671200057490421283911446072685346827979931009279163466367262665617816347029924067805209229965458744274844759572850293954165418423998075248464305444822381223741717508881428323497421523449123941837063273243123815705632655557788477998554816481409390334121498672637491754855685190653658114009940065160424204326041866219817514921662887463504029705128452134730350393148395967703944804877443986737147323398632467694697553947404492656507217802015963534979514894117404435662791482115362576747282200815756084361019544375540050840305445763766148643359590199103665634516576464203738175455477483881425412370336225253625236551676407477105129524527717839158269277927720234888350921874353580921172796691481768602281829323066448411840737080808378968448666016249031321205200377778555070650299714918140347631119843214254863119145944286268195760557925291936116560918438348399061961695295703949370638904090656906816730561273020747940041778749374588771280442394087996703544099135278381490710800178518805870968746740434837167241079897397165410816526002429421814534019927458119961926052931075936276260932434757038676703372371847211157658544898049361396876767713021418470896170269538449299738718588190939257867339296472788306325588275254142268215708292211802123598880973524639788041527837909253573088703666174529620671757393460902352956268681273080673776893579017631772559977745511440586193734390180277274713591842931467225392277740106083447800372417046641846869659313977437189016964012459749981682086764057655993809485141584477289421368392275661217839405722195452845284827778037735380853156425852627686765104045030010812899470626893484330796298641720197222727049503328068760526887999703628293215404844540157431528083825039056423462361630864406726242666562308071641800551657366153608682504082388571850035608994873584297533570379038335039995567591013272786350311384181696800485646782566201837632137159179333275628076109680106668281693916222151462776562720289596440499525155468923342709803512633249644137640759698734658594029647892866334548670249792400037160936486798500141931677446962949510480076596062565791148165878782081640945753106359229882727664534868805209545996987208624729030585773377528167063452216641473557653603422869896715963898800634564259936748887894368774456279091209641812118775228793217555578574816219622333328382514267636216945462018342260374214659477371045265145326919320546958023247155188484572566143123885485850742415443015894544628008009895390292538432021469599851898061813427309392274908640310242211307262127651998645390703127715863104555902367420350839359222165680993243453841596895796825758906356288451846687525176188153272396134434644590237431115646576137436057147696480125352331730666898726228842362802991774958080270685569802954959180668713369683080082453718028657379886976606290573324156985969783368537719337767980676839060181747819112482332688360894664659484165223675596391659683627797872903658103090570423704729709207535789083267611730079069580225780602616936246391005689325761735667418861396747583791716421394139895529663496159714800037027315747483236973660621511891956659306542185563108928193932539201630483323408156980795503746544145233451793889626295607096916499307156328963727315454176947467916628773699231155911178045719320402461083931526483886682862130631910658168017827683375141130545934384403121546631974019344434754078666432871263236523725586659827591469955281752191741811434301852158054494071526799014991008922801650320365439623386833428465137411650194964342448590926600291563006208857757509778069366245444985466820473025707583461015859676476643432910773307484371574166618504498207599170903297359588466933932521340209271052898861654588813757305890360542943737325195991228572340554564943159619780436666651046850931467559817461404668136411248073870287999289196753806700946918058295559573805520340741314027623380959668889721177816646403915897427337204365304233222615369662961580188742413458607924454456517385617067423327444981864211225200156857672940631778296361184326791476354646076721274818164191362650907406212964400389461246625257370211772097577514144969475444595578971046259862167207125171456823174232282088923228502428207175978439849683660765040356362485494678700604477177420843239041623075222256667657631569255433591908356803023231612942202847640381587649956458613655201137364157966590068617004822648771610051907445318522112484174911725436004047975323761200447735109677018721544160081733733142041994073432638376028310683434098633349340487699224190653741430192114062642097410496120805767014969388956878284897286788890779720744864167136575268961534270714786826801807406272059239624739080966815912632639941775034142369800846334897430185281756266170579847452043192351581677861355012070813156276241888397928940266884099849718823020851223861998849105984538653408405388658129259595075959868851191584792961386952661745199843722168628626670326396256370341217241582007819156095374698036425519959093920612741930560121357537168820792593256078660020850257970820358179570393720247985078201175874959171782326660972815418533126160289467906635661260810641709944659792826735925269797788581629726553723495840128007727405702243931719006832452480536505568544668871387176389202491081493348687792570873586511337503571977044216397994616380050614323717921709837053210702432374809510117663696511569739749238812754812827502991567740446226649379621567968947640478650773101958123864779901203251321448018567933496390015259250161341465886949037212870611960391584745866861830650321605369784254824289136882785127184504109984515392163976884060689594601834759038905377208575947663575532196056931415915366257834533016403140719445217172286635701301978809916615481805940780517272992894313055573662847765524000710793657663998783880346814179666711259430040027778254881888132496014529077986351310534487353150356778464359831076679868365175641348115177706890108785644946662384867819582577965416823033218481652837998041758160345565254634885556191518278760613957895718745928243776868058765152146809591347933073839872363486771329502502324380246979683934166636898443188594964936500868106776319832042223282028905871941555973230759806103620095633278373909922494913455070293386652189638591101733210034028439795748550791290416452178800977856678242440990163121845118002521232309712658711655787344152758402385554254090025938291144034531044787140187464938270018281065899675263865737286474012393479931616854221572662736740174377235714959750678545462961984364856426226149854325988216764375302156658986386422009335714513730449517615427177042678599068419607558104191651952935676572688811201083883364894117435334991197728385968064025214090277180990086039244148655420740844098649294296573572315966554212605180567090896788099595500308365912375759494570945087428023862341110186421754058117493746583212312445934562691910170003029649786121663633992114847863884852893310579454139465744468057094198647716404437292440612986939853957069095537877585661640490544877232867394031141027493793325718068356009381153899479213724972076252402749978773799535179034022461169674655088757976513573983834843196000560090141214447823918158715942051625456784771781893109804042522508216641685092284025462823038924745578118014318855117626316780944414142644885958267451381409047788523624680658144726514381862212572891921124149897724254291543572972960928009120637095373598434242558259570171461792646595281435158070407226867087880918156035007833186516967324541998878839272173356879454206578175314554494817921673888097336913239301440499196010647806518615596049836641087132018835247577822557952096885026226023360247139997090304861629561163360249670583491793541602775370917402539857545623354601905031163155357369651660492395584918515941663297296760527477368151778937787173418282432198078099881081711436830244543587258252797305170154588583176186720547204892086625710311864464163802142896927803007541757194570800647610063652426458484285119814488053735061014671735936782932311637168910944698473826674498591680794020683865299896821373518206478364270450294755584598957468924610321990875287510102909817591584390964226609983374311061492285235843184639988119837867818280650809155438920133573311028041453156979351003224717019085186772647832456884394179214222017082481585269777563483424915397362783423806406220036877423755819142799626802693030376078675101918912306140117045373731164797683915907202286051496192556917806625870961530732848026402834434508956681486039390682309785374683164633751343288053915679058766571951593672880215450072989785473800509946057695010768370697507493836055048677416754420353020693584089201308641316218300700284709707140299292574761966177170012036665369022497267113630112366930118919149085543884497051036575329488300939349944761384552213424834254953322610745067959254472558165474500050506606114534004180190823561868051801504379476856027085114008197674272111254912110076745880620899752394268432058084156590077500030670939958608611360475388467410877700373245731425059912592116065328785715241694808340216109572479438957529715479709378764983402611619482201926908360413441212631775458107706515334931296231581547079202833685021842798568304036453934455550189877624772313943442254038435689409049168800844626855981818477228532605559272377012299606353756030270651882704735871688794818819191991797933770716411481029198154717862592707024850109043087616353379346693781007659619328815287307262986971156515869496457270149961108161272449606401620537569429605015754548583722467035548984839049322279772933290245487406184626444097522337904241092454995011873357886725882309464062966162802460843900940730484698310972851348459398606460644981865759139936850228404855719458399144508008787709685368941771539753441057804408912814068300586931643091169371501320685372201247004350774027739032540187086620967941598004688598270411132387675722421607212416489455197548456053963677253137836196908830848060703978601856638350724358065931427856342613598336379707887556899635286070506861076525167829452323300980186520194195186770223877369207853373942974547242819849144274650957404047649958968804373200814934905993942065753785105364506082901520645396275999531389459175046829126667684480949417463657480674362149022226732810785052416426049794048284522254691056852009145741544084748035859753352079053038466276129207974898828498927061869930316798794719899463705236486742565947268319839038239588276868635467300113010526625194225973785947221754699425519836251502903110032719337592318898055855054039564659977130421936791380029146913030797080125423894027908517948562961527220398713360956201575459799730050714187711911904075583149150353049929121417013784442018364166418008145711671564890385845687842205047243925612682200055304787685278717582124446650921956457078453126634884802944859123795360538367432890530104450484996905877580602517921258126984553968898784376002748886985372688676732937107016407345659445427148602635195156947947785654138524279324597904940796232682493479815970398554796116678222061038167144288290332441062453145080295136609038780608755796093664192302262065294872156429583144874841100574295504584197188737651296004914675633796101303584642826393972694944680470881206467917713476798216829828495962382429032973256591992348150145574097342664569056133727107309570209275318373139759562769997314263426053829842531789221199474461027798309429710759162960270515307928748833467146503569876137142906488670138360794054949253892514009405298404155788133622594195356966005742782640733791883082175646129216121658907599301500087211833576373016450985220984144606231397618629386652608126658606258770579709711847307916136047784542807232341897118107590850843622819953526543073431026476834362177761865459809183398679235009817128167312522973172292959087880615539359629740828772792621884980436990446787531099681135066946663563841735152506679852966126235547210425258721683415701977009752268766035075849742347758067284897780992092246069060783789007833736646368800706635030436823690731995511276890539637175631923675646319675041216552692693313545639085556723862723543954975937548163627316621627251723130623812501447311032906532361133472549648797809000620174759970821703829138022471091256234748695443091308165923170873511369335895952196541053875826738472791528391427089864663607450287922343115817012775987383265878050721368505275751721946601076557616876209395683254260712799037249315995046460751751345776227487287251335029323713582705822147512934172072282268868112433055539080657649446189108118114735425951744711420254736305282821808166664110730741804271244123418588200133419366537520508329913434902684148949118769691068641677040539514259248739188178189814987754858049712318622051270603094248856593693325705903579669550668111711715075290752170267321780137043672806540714871420677926444205133440498928709539889595831460420686322993200789022233405982939397061715663946623744288183259973912379931515678207254861341198159581573840594072728300155151964358537853853316332578246083927675298637609854968972716102801746800298990418184634847711497567966578500722377494351368229911124543064955017796158157060209738532848674472514374045463541959702271297890584001694091058857229924128615230148929639617490368730593693141805533362287793964163701224207096617028633957360227211566740417998337259233350422066953875323201594974448337501580105234241486467803346971749452875043262560701211812753589492559293937546183234781162305398588521967480907537892055055066143010719787496894584697354811742375075508131789886859933170332983132141408312851514573913857063708273078795025812824459426276783637179270490760448329457460097822332043891576223020287227490248416684425074752890149476146644459005575093210678308165492496399122650257764535226956097275507960656534614196580675272165276956150659982871767331023611560510096042249970759799238908883282623050744925991183040218089206233802111183944811830814516376386062919322771356142007353201335393482679328670047611245451266389147603519298603588798857393676289871894119236759542305274657184215903650985682944324246626372481167533298364059436081546062099818735371312812762543703840905767206104944657803512276407441411224200111295730495665809785238733889190537624115298400646523450253088476199752240435813010239559400014686567073101928914801692699843143256282670826533396894312853558646365697495434686512393455957679139059092523015570031426509215971352975578778268513144798465673461016605467290678345998420728620048949337635912121897793699658052531015907369393329658902446555486799315516989195526780173589021370272234856005549760799221928005006418664863278646555015198446637634796066095452266635820649249502540103077370014062038109415070704670342833779119733632282549947514858426123733985350801190594595375327910040349866300987721636053693128337063789997700354919840791084043058380087831585283015999744677759882760026318124483188234490343891994083869863348893623805147091329346256125222298183856683863868917212751298482560650770169983376531368560321283882459240645758837625649642598418019743025278937694367416193009133015245537160740374169535094355447326810598634752100664074758071561845393747632897362908699806360407446522415836759697970247464472946364103976440649405613068711287091557180890093288587018851533999739279953533698442921039267188631518351432487482113858995890880062768923160083732171661449715252374530109783705318939523816366275216482067708236649899737286105048071533645693769438549132679602154209637005616559683204537316157336409585731925872159965889580355279803089978009985218644868976767729573714843776097774280892193878301041069641764701342101156646932799806278140800642323591973926861611514841202722192674403475743338123945355999068707908627483393386611925560853536672091551186701260206678003095406593353783247679382924152440445732032442735278840374756303059607969680136048314494207725839132302238129273872431720644221024522158467854380871219103378227940788139368828918535966136663478423975250357452136707785499952214044306923981380135699103964550401354108059603079160440102808143203265711367965921875950339894793209940598394678456923797157365531895413839636614406805074186680413663196412229591706850576987765641153409532568188862046442580968699408837914593374791006231446025506038222968480570409276738915279196159979921895126983559227777741037406511223080612841095173474683489756912977678891391674333329090125281719152443889098973208760066604045008187421180750678551461607728183913477730932664788582400948657396361594518217466001473643871066979157576317425932609184082568370623754169491340133350546942759480639487179836573229467519802904702510639181630264025796836709613228264662904154958384299279763518476506668931250300173865606357864905793184993667852303179509170450329127281202498622120085227780232800266370864481139785302929319036692600899638131844710677170926934396207733787922280655690561966722310009189441915777118019288558471200674787285311223894343311074533421910156634403577597252601432329648335546840466538605581171112533660069802640456017823503331177717030263176067966831941835925156225738663089665663812287852552695206905102092614394136057395308274823310699740934152148646201796634350007620115254350957707355385961643111596551358334212766296435187284205949544377433686959950192410394091669260545294931042509701895598366691443671365715033998441904075939325751153228197422172662035572053471334831159072649148260147702669682533235405297487933349879798768136030040433343540819261865004586454168818625071582364079297643330144448305039403278041319026433848477775303751867854575421772997979665068811040934215862067735847379390900130458389413893371059961941744727923027735730023479756471797456787999867400057211262355929518722822942988685986265356998179442218733204535589481027696994253485328420110370942746114794710431631633946338953200293803707777538820002406519356144063001874440622758245192860752266675212682111473703923426407285963296571727067779309423185537306073822764434102401872418035313342629876313367887452304881761573198221454887264958143423853267550050341646009881465553663888628612947320835761764253066588678562797232204832357789550928946278165594753862313126958924483174107172302894010568849305170231339176105293935603241285607465797114876738112058587041561286716462901488839653422932220584478417269752940474867662279780671223256101821917300167041279952873479254868844408013214651649912366408622929856222744117543908687102350022546457208136174575020938648231453930270539632678835656498816543451002082054569155177575794396112955998830858334160889980217647081360274646096314523895427137043218946693254043565927284596950726068720726254591336721513615867518819308205084065851973526326939968132145324624245942797640374797869472883896267760840588869015522950834646770994620684328884806945094505764429905095173838375731056571706770945818341278807110350395948505396905425722905777891136429882602479509822819075919796617243509260641321372267090274626199712720946639288018680262346109327290786251644402139398619197536995394804672949238914895042026468574298145734185339574038116245742892196628004602082592018979564629989754913661417346888261487186382370586862904766200516903210026580659752686279605698097411715138687353610951444902552877812384181536946721069923879224101574189045151436268003234475038755515407857996648706083366304313703360648237626570912861482510715007799962818804684509265140024460901270781631845907240283864994599301100732949178481552487882480971521930664525426715112770917921198061739656155922882935702285747953614178038608567715192818341878325961929532579400059820467506578918907107798724594275525330068044073081433664783997742600168165138342674231076858983411413841670937953560286402670926634905886594585524474857135658992089280192263650819685858367780498507280925342761227376964015414615819314541604275954363923902361683291480193227713362076740619991537285103924064536816332392630423075350703054524223012643932290579334360410643584982057157208220897816374128689682753677406468587006027926014606926095684739678210920838293848756966414161477293471348414023170177940082497086748431569548636430534899472546373872485646782982772651879235291550657336031500349112262612243043329383010775125181233380216628577331564916532996632680747086561207835119587704231599698552228772732111883615257091635413663443398621483754337501023871774334045278643048726705117409837769246135374768721508710638102132715352268508684876184189565503777892555998525573528511313312123096906845486269329431209590995743116228617895620788044983988299158678524857772798404547463263739729772368656717879029752459800431700059246355129837860733036412337896263953215513137821756894921452452146329680325021377351248778339165740839584397335748872982700486067628952156190148926487963250015320827486016801375971599838814588410838989584751676563280521879665946331867256884236133528567981473053684623297293865901320297232850051949245313734362186349499856600260827377503192832294615593070456842477669273449783159812525340474937682681649404424021271517003855756573907604348097114283133582134543180344036781220636899737592087863826724411387908331413159828894358803306156114453709780364046789116640203923104256599373506136594354802611493656796121140750679278780904923466002266757749722581039191062874485306340466281531683500256168514419922897393205287513168471210863806905069491689629127082061698786380228262818820899466460158403181599465382969636418757819399408904206993723585443162060115041744814129794700246711726909370295194062672605994670845174901698311926131176892943887241694136840576773102241651620463869027616574183740306629520808327924124258102060649768020335534283780912229408958158318193248158916612382389855345554577607926663083233934507750382765352857897630536447651858606368329579708317712054295636851990855947326889267019232347840703473711374986293070369026020307432195216217091935392146768608674749179144442044765380544557388370288201420306261214570578006931385667988013238710207178474178986048567756162636187467172183944667036246789806644680749665049706675462059583618207820411059281546726371326822677859466975540634767596373216298958504566608660114650389555447685476059782582814386452437292301515909135769569224224989166826521010312867326474478358162707577713419538820635236644288336047614547950697361399416174435590433290442819399785873483351765875809342649222959067086010893138531867595311709223783520065084322791123218451386406820088548869339151672103620469252122027609360118337379205100999295178793914539398693356886600460816971026836164365066878726381906331927427675374927441554912398007900088889115999868307470658777785833906294638739290489134785035313905194541449977261164129762044712467623805375522629054612232744062779755062649398549757014407765720431803565217288281506100541787749598357637884396148841643449158724025687563454023713713202452144977175826699295768381531190825040266032089990859219281105635430599651005983699456330858684142031434117161953466544112284673880080540154203707619889950746409404452714692229598297506740926764971525687760392849964759314147636308952400175330155275724545663184580969366583062996277989592373143857956692030062196525707984240201545794151272614994249092167085185012667091275049806913366923992733490477494616872577558133061940361960720947951237516612074097297688578215485590008166921268409576350167208638293516620671164861975040494476934121126449027250846826853166664085288683238467593788216740226290916416260548505221589275846494587000603249181874009116968187557943138398319957045458232683439577467883535056037178435572361045388894928056076283235981324512842552190984335195578427734738242208370744571443990801436173581749224411272338874841404283587904065849176428002576987812549932820779520977673397299691730027217885976629261712755625264245030761542119152546489835128522456511651779232856477019093281460208563036633953275311090044198574091874674564961150096316675384427152717856073483515906559529525794682735640015809248444946410724329907410771561027591278855303429060179666319800633127885467770638339977008128167807862737211088435723034044618473465473286729337778811580106256074066993540534467602030831553601101872989886869038877973282555776543707989913145913794340452596653792679724667986513736660573770750252203520991480229319852233935408277046580744811117976840381090748091269059989927342643611016231217331061696055725245506048249951634822232646773478006653365691862748593961955225339059848610032904476205984744703457381146937256280577769005383383608055081058250098615750884838270382129704914371499543927409518775673104267552458735188569425596334188181943651629150267754237493102767546334615031182865454034468021796591911133451457790782227615347779943280275793225085461710379058902921490706553840335159487371286636973469861444089976457210919165052767466299126658481662654746540896988932292433395224232049535101338552408981901827316034507182355925508091844498707008451232795591879679442856369454650247897399204817873821800480400955875462698479968459078909725775186531446709233799826671804822574227821298953362290303141662405770528807932561417480724532970650151735826006760348898305774912425131659490948423377668096430793773571331711516612894911592849134950454256079659063260507850546767504147614597119632744900715504083135965555391350505151322123072085234047703084363321580108822212703602058104436966784541564670550072624043830949145135630146080312717113752886077361533687481387617291432347932225183647437380827693883591620564814570378769968764797845978178913739433246429225982902858313080385071689973458366877149786183994115403933798504822818874700557717599503410298087717480756705682441424711488700901097406414434801931708426906981128139176607286743597806068727792361635747363204000365315613127462744386840800510659168180285565061103245267691312773334391294250787433449476249115383933378542996156086742835892883705900071645926107376460726870089541308210877166582119840857303421206853983134655543353251468441768044226982607420967550778480422149838130193606910635562663745284454433022528100190702187763834604269807340638993227514760028169908988831267581237251348990434743160790848942065124393419004402807463672912718455745217992360439851394802757102061038335881036571292690373661481625874619036509680192019783625546752074075430674638288156343115427513755924489303466569292709015552770791414571682072127516755956039230895242223695222013166347067458549976398714843915723523333479756965172693652507129461816604414222323845775267704261103470361858110055188608620657832571472933616096870379730578723952116701324260036962491975434907716860243570529259163624856315568402826603143552354795658120801636635704696014051303786796501085304714066635192741627411756649941292300758527191052858532384538548597631149386731660853367019506461875927910409868472449668339745257140227810184877793531593696343464568917626241546740979933232926384946572931210058630243747762709374984774423888765394240492425086675577243891151352478417398186017266606060766157384635319233722079854331613517369637308102227751685026603810396262830494275213706606181786123586515884035384384792299816733466143328630109857198952623520977492525868439721283967569914595786652576722241138456067694418734943479722991157787906902118346590429622233431630740727335316536183691332855233938068129337277680453796720499744000773305933712418648864149905206108483384225646108565146288066686281672093030229721468175872081690007563884998637186218395062425129963444823468415548947860200354994950024888716016541118198512985335020183096677237431472914994133669722907726592798670803773694098943828280428418787991168439538289620478237126706785682464469642767356166986097021356376471588773805854810176353196844034099674504745965906491152914841401283250931045556417395404513566792215598433297981269637571814618827131910933377709658433368178201043454880231318902743877804989522354941038612348701616080696424429888771617998372472228049459281203184465084578238175710864629656666773017133101072646417719116059928991466808191200313348087931657304071457191242302535613672430930031320095166812739237273702934773227413706149701090617761114265474735206306716753859203182878150074446331174157051318999087222854292515657694184529054530914045992852815924912487496129163114743319520469824678444042302525143934064367734587753975055945256047672341350089611878700168375984764948314041472734666458128778965401629385728738303107089324111611130445339499689594515629548108155752834406828970611774135448666406437632682208159972634011083807161818641340096835352249967653688906445140591300630898717329547650210821699363401858125495288295338847895777685140006264578942106456541735376594957419192571147342015675719571157764182833872224689847661074763627156449467517626963098124416824904762975734032203468628973324670521399280819232820648045632997930644495443207244785587805620024046706892877691021738231883479303052815168777517977916015702216079928228087992794305266487648928502124761091742735209395925112881679166312254172392080805189411295948246112552790924252884954884021880471815012368723914640104363125909834615460788468597247116047977764098311669731923446291773217824960311464756629465771599158873562487765831154551978513556686678704898702249655872875886518935429469238925657264119529543519714310762345676172561792538073223182080620889360747673199891432221784900576724890342779222281910946783191065015100325724093792792996343436221600383065251627224124267556806532389473091518189265957317124464984474446993615954474952076316858748513209532464839288963639616974401137874702069475919334671718218201373177680606460633787007048063172950508897071227950192512284248636000403345453658446691203325305919406368148830252312511519977287916662420498740833254740842450013594107313874668397106292476644161732183313355640530095228352924765074594109480397961466716231526569165067864049811780276074095892604770494538539746295646406368618119433755657541552262641909970774929042280138374082897148562175225730332439441210183611322601012686514853365295126397453394524313870621143763236145837982475326543399241089842967839873197605998490789734678333659324958666358005761368703379868094351407989835205323911160813796422776525796679522933196622515189021016315600671263176574221700075505069549919532312403326685532723631988925663945828199235453188929526668202592602138961907272650565660990682316489258575304630834927199727486150528140356527218489903863410935442059536068464627524529038519492796663230675363818095253179395589330937128857349729581726128957458306884359607899651436918518178972069512809110674954441712252357359933073935626349785053280192246751462517113649704795301380083049591170500250975737049265096080857836707335652064650495912999700584769248409919147215976255055937959884000553645450987843110989353116703376009820003808288055582391194088708003450259870130310339674689698683799717979817942631149867017406181418821742094468578390291882727937483971317704634760609586228440328004905123706646185646393714042422808058800108192780701103864950157410606452286869930943965664419629243269086328518926569626627608457066730338362804606708659511875482306243989855996512983632125488934379866510349200131613324791407131920663938886870782109294913294739708431160050903039995942124210925249306026967687143620525525962592905613018861353370193446780164032691330387568406284475845287480723667562951241856464629815510057737597835590213406619055639526750282648717585232051397560655347838348226319005493302898662645837375808698174684661325193966860649375718138029651121481756533224339000641149664689100810951768289596354794583435936059279556518528916894163738555209156249895426794501419000681247403869263813213694403693758768458528549260658454092320031610124137119031283520567724617542940328048225893353335299234869327929071870656629781294671016259481703668585980874138291200597272842355339134837320222608098125926233606253495232988971579184471332504669590164723842380684289302482117404731202853059994911843463658013643847567623089287398392268401615924915835225372923205531423681206809491284946260036591508788639938166576074374261906068893130788373713439310080017308655934494419582024507801511795589778909352606428069412272652585668965853735293075377119844205568135500496579367723772853971818844678970965127534638397420907091635038756290713775095381710530818978888324369062150377887274453965002292692497177258832005902570724177479464212765051727327777301888329283620605150171317851552097981147079706936113718818229144487213977644146570105777611990303177501684524709869312240587816354011344973622528113762110737800517027561675821871466353767750447182201633955331473703462435880118177086116435453312065085903755437981276384571519476742528569714559504937945977725626884388858316241993661686281663865897539827851291856008387631543514657289316867475192102060999791187977186293737521513005037697944849752257926336032494221596016799323606802160639793678385460969029403848522523940135279094775844915497285019929760330306225546644518739280379535117159630080674689122742490175185736273107359678565786010180525798386078027281690187444724309656546072954089600904073392283283096959609806620339308968622982857451104276358982466205820142660219599154238405816710309514986231941234716680189686227613728015293824134484151197728136296384678231707657370598189978936221757436835416461316268618727142789606898414673059401872648937764377967538781237060376861602586909391214093558790820665176755390639005266208458321324877545344731313106176644913754361216034633686240353414324412689981980871797648689409261854056186630133897392781616554351901287108035163080495038094507046638236503123242136925099414894303773247051119931345896964995903547832109035498969679455187709483855923745159135904416174229757062813104572005500342533233330086586594353157526973768369546772151816192523940808390845782635415410780403293216138193481979168886516540290224528071977246057130866927326123819352423347581552637817320088860883429087677932038363054454810531201774200198854604724963992685030331863281029234082115789834809923940211574493604010166426895413566862650011504905252553605165796886066413942363774407607930983994818094488704692891779141984865255089776128976113404006062061889965035684924292034904395229062526236479975827643862052818618922236879161181066499186294896630536508478725490156379600900276984817853429482440723962539004627886116280416356016019745568576903926792161579059705415206559216392055941464521966643803285558326225965799637492858185014713422678924271282090689900972040318675449312036919575486782607356939955696324127054621775747927554344716520035939620619490746525063138135634864296833289090867652058610287238776734683441067648739377800069845365348403359516246459401169238178916801111399262781615122418718011888728550759893253329533534327702355829635408615680085135514492988943279256884498469796161614125749972532676843981603640782515291264979725842635046382929596880548719261401389214035097185051290403005672056596909014523057500420299665193603425821029485522568232074560141246392177661938925703134316134043263525215547833059918540107852052086853817593117246562969413606347100013665056002162068799263832980804923542132509371254764396288841701932924332897669570067438374617006137126889773966670678031976555364949692807350135601421825064557198796878547251202768609159426580683514377985248858592905479470806830120533487272078249211363564354664051301265564058334029289153293794681379640851147400282555158451909790041747898799314298212618015326454496320174527968748822684327120701572275667003071872299627883506076319979887495530196167825654253899410711721820769970632632177814706271937453594880764882653462464164768276201618362057330274690908187412021270393905003236104617395210498721318669956057427510287004392287646158000434517994452756482668612531894636576997668077804254321970850327091377072986141741101831203878938282525986899841752255914474941432482150242784587793619969523256943484317676145045410284908595302426563007943772388299262989316894529994958456061372789776248314928593464318970225706386587308610346043527464011773410407336583319318036550422659109516032370700935620597957897993240574590784533017733694398088070297216206823380864251286676551145546880084285261385705524836110604062307513517051601252238180805878614012044061433189721443500085991914783942755098490831343362932143632729827671776458987490541204869518922532044749237640818976438653219172154753869922261400532364387270143047197236295818545699311887621991008140456339426209806892778303733937161908848161412991096934619912212103822031952923772125203775134336025635813272805178580082024999440369296858001646734351564493850772298390166923286571699845748223386962358851312897188891123654162096863424381955115326532153117273197217038832488670604929913655738641631985489186790344588546320557987750372816957645743219756552595139065771154619529550553230696792814482693669777349140275605428155410356570076733421394555699549309105243882180213916326054258700589605963098443049700677908908512076182371680422287143533226378353260108182648571497992699464694498765556403215840211480669381321716062588354751491580572771305022711654542858114723410329996148698624198620402246441763102695537458184713967002468961783124550557544983546095555253604922809262705122212246342802043575682053835970565368685853506029215033507138626557236336316147622188664724992309376540842415095146561242171337304464176096156597806407434398104884072595804090248206757921551395817285133182741317850532133492926959987168375913577885445496016299184821103463149743796154032328202061185967978385153787550225212914669994232607033681683406055229875923167793492479707558622225144862074816315002911987754970136863045961589458051015145949347908033646921710432133536675474280930489241416970004946800049375485795656703660560237430994925841263477483009960807314172101556656429613674457741452938671820756198718173198341156218107287828537193363588521709789154448232448038884060088041454893505254276106339226822603095386193807669725669100596137178230458256665371846529501150577628407398878086159621148446132163190185058586675558330174619858865636338245469133968238126091995586789852638632763461833278984004186948520626272238027985941741870789059187645959788309409448935516812467586710193193553981337566866517431960897750214067922596819896711795215259644817681712733606563028136186935345192727680607115582972808868794603131062039549768842954440041723677996585059649103709621664040329005130548817743954054451625688895791055034979289366780019258087577581393757113229783095598618261390339200253363044585797018262639693773872970571049656859416744195209527023588790674591152519587227226473139298422744381503741900417898147716415205033333236709832364638197816608104144487675694993113570170842416480801947785325736131207749768494652955485573394716796713044807987671093831686035686086401072176492645051191198802144969750163751230698273820783405398449785557237889332410949926699741045414344705517937355362141690725729787222026440508120624569334280771034741400178736609438346822877400415782042591772229387559673222005683658689334775029831427160761459669237618363979643424842330298460792078877935335084675654660271822782986631445723930003991588151055069685437121762750894772606608144502986508814277271167810961864039931250760692221390745045122541873020295121213286460032815485254796024906961355763844247196108737443700794935194036711922313102990889174164228599408998219773022177826008380232497168976482820324076485968622281252623185594188668156560001869003571911736440619558461258949163579480928259506161920168023749546435753557977629174974707186946749176742385022086461630616365012586433707993345956234600693759627977190794647443843085510603687661995037615950156296400012951372585429264756279417112854193138707291541490145607752083381836926349296117811818230365625415844535666884301548867008939241867550099774617264931075216109675421365048570776181650600166311221847276868084217154212553032282110829236670753003500592689667159804334311816472559921697919608176290820770127208229577733797048357572582333887555434633686926629256413663962636625307212989581602636551270194497020749853707245158461043059050113505737290501805690861030453825015222178110948428312833439030249045836172217277318845779012555170276494237699194933800377025791203103890100152595592040351272097669337916746196073473610161882307321132160384989720135116117639419176366295165992654407166772684228504760645167932151335102152028158153727342959771241706427274470471144794977171442941533195877707921996193471977400249199699455174652996600604794698675799325808448692720406532324619514859765582657727637470670585298369708910402267127641590001077831966550115110232550756186255790475066519028541623074958266435558147610190062903576345358362343278041630021001620403328514688670869511074081244520832289408073201264573133159964028673124252124321030753759171376738275241607312921636090033165576120364266670305675096543678868353953736438770939433981329704170759216679708111787832828111888166694174195136075969962941041764637017917867048670978364158082187830914903534971936728566069627081222303860673403442770534935120273603842683316800434108352394883010425903012446505645044806191700045747092977209204219150023276641727314726239682719925989121205961771158987715155119386068073891724532446279344516289414367613719080017499492683489407095539606717002650931664561012555979127279160506010055433724801026596622971547757339874470621925642810946068027551374948652614007551800245722618471837835313925914516062315918368952320334871956325568516562389004654791393548005873366307582367806747254698519475912765490420181922398182345473320577997632752864545622771091192212625310912853707535544195171886261496758609344579296028168598277350236336972222023057433263531290405507759470833327758156495945290077506134886942699082995718299751226424790380837594147933274708760291427769083622029411969371758724485047943079963938235101396696034182161713021132918994059207724895227595754968872586204032018137258355658472864102838158783378579587898889702051785200353566593380670194067882622479210215202266059064755483560442857581094865885474822338597899883340269939498420577769675754744686189425716133398190298767352807686118172314657288316161392625322738059463680338689772896831201455040848159579935153852460054021519507288559764526054108029672056506756741920407052899971804962282662541441138364310739697329583860110949698139329800358165240336218403955734315872020782769411266241083426689854104595963642474517248979837335434199017818133887109174879658829067860607779100615200469960686223190213426531915874300365145157409688299481010760277470947780446161021403129579535971833824486668825320915570599091023604210927488257863635948047785065318719807376331709522409572429280435145289120902054469226442796688219079629525320875305105321127105331006470005180403677667885155556181911009545148202074959934783750493705894908085250272850967419010707134910410920428540941777356169429653810394008482882729924608653637024694301714719045170351742988197124285699871551925337628468871753778364554273332044976904105988877777162272948316487250436399573384510793026045235720570019095389712933698442024210037050149183817040583710862113374652041618740569661478026139457231942015840013042529637224911455783283462800238874953514412936923123703475111940505397906261708777422877369144217346613330518912600411289612147284280291996816568308875148436002855092503672669910413658708949769234684736175020184553494032393626863764583365885109559630767567274909013448434090589652183010164958648545625105101271649287391366336207888750995712186503136762159719756059134487940110465862360960949049820995720050813033899793998158648436678774593632044231372603227555746434820847376734272582639550184706523411418754231785858924452165342195244410612606031283136079332261069519762557853847225381792136312831857978575799549476781864104710272200704368313201028531672573309597145392181100706841200228969640015838305218327870975071583959842011881209817853481727354460854649967810439886378152107326043737869432335175548473762362644347821427549366594815169100088766739960887486175637928158354136393798420817504479839179715591404766530044779146446042791380356828595181972425356450039159564261245041775195260972103589992479600395495013872972017090353974429728808253290438010277798473160094398479413546193948711867351337700789019736904699895614649157646367886717326281783513630975984922483671357547645125328301974574228926367803665554272188593223024443067259407382592838060057407491785387254431658045258684805463117616899090294924952333559999928083945626402809167793007432288113687364416442699457961939256460390584830949938140465375713981280287337272928108445753920536374227376868587621537549306879689988388684277863289037896530145536193191020848570898683123401845685577722847927238230895711406337622864926768656937990707606475013119124266668654848474276166764534643824820960181232807178938321048047180051908326651683814404606394423272607449789670141056497865645234051950591911707936073934357320061821798813758315855533345711738774801128195489293565019278606658170336799049493595233196854638808456527926114752644492905625011106924046620508228370840308662588187031418526017562340820461442510520138910509094450743610179848678519055096344231803737731767805601909528836385140596975466019743120221020949457698699840358260967636583083933989810982789772879149627721628534044708074557798582135210986329158749217616636761030158606970399108721919508137988831079814568319020241356430354980588969572973179473283019422312099549989432159167426794801992362087227615152636131583432824280567069970901300731764926659281583019912799823356842126308340572512429926518084400573171806606902207195030271353912815843253996500120958849034586104812135042946933431453501495953503320102313169686709487047920424028187648643594592216437649861666118172696660581661312211462535998896581653559884686409042358976647840170190994935164298030759607521909043172371037556459341282441488009249376902810622190931790947728706122936593885134237987185786111850072100606607853671061183229250479981350734674207821646251674103160409526338811679042370766453767341244040164746308453580407554901157840186415597454426244253683426474869435803679670024798451984614407077936397502639910463301138799717773604588511777818145624599240266509260946099470741733623997112200875940218762315859453242294110681858205197407519750956767720516339785856883908434955457375090177535470708026832490019402262917652336203784371106272443425247003456901360154280299694426770731139789070677090577218273880933038298749376674804129604830836364798043694282479835652927303075584570001534245989589218386711217682904637831936606977863915184292405118404687284496064670823908095013361926817941238989624039555489583876241235168013416099323312002290086080391031725884121722871598081953450458737776424332466303430556540415582586055722048679063122289792361868008089112758914180024462175570251190133106546525953662725429657744996264959157196926010808121764739431345422187189802017499554964149715642755714674347277298244541330405844147736272758672856138659567632845696099228957420944001073657759485287891576711376601986948090592441318924976267546610712150663563191574139019820516030323662635644574546832046092317847684910404322648751329787671840761514987105434630871600121320287820901930821846691750864265192743665122520728957052466220155774002377273435004795510547736549558838442834993735237578768784043680669651139398589796880521443067404014157976981571030628003414864902586120784299573317649632113795233055963607741534908574944810391701380822400020093754280430745863232269753814690045749105681313479986204562292603870876935686879959520826962355912682319432091484325609376082349511066375149346894269604501959998256684904536863304613643619363964259495588633791428306508197069265173609606566041223447615968636134837317566412987948345891000843204520493250867896801326220455443449057008539828301547077650977948253501152911648614458979174981756179709704494783889421927871163734250026752917366925915032658334964565700892566509292139253790865091406255587571877910167070620777831107512097000153234997850055955246753315867999610858338955252549297779263660143418889445247004039302816084517919441077012240083416021438581236809151342073254913377123457820565492275949098006524854398286758820571071101776363914430829316846064908071756953563859036064501561209411651273885057510594027418393876320800389951263970694969982208888314072571257776373483666049263400975303467517022833428542677109900604205467210605919752969573428489004303394666054776993265354100565484892135779756819164439889571437677450935716310950369850204630409733973594930310371340170138833530858588319467279076914785634809511109663981224546569323866134930928322212130065927000573570744808004246759741586601409871484732442064189116575075329995844607768078416459924535938294160139813813240448454426118479497294575877468863681930146231698365072512746475247809821956278353501335295560920504899491576724415270978847565588790525180453776050184733487420719932724310635251775807665641843730368860155537566235269233538028988300169836641923209762591747594841845159710078486621853626419684976676228493128170097919350520304166482271371770292007528640843622288916160723867918233266471264326451691826641868018476626186666194776865202282610422685410535899713508957352340002380553442533636722426670723616771504557600429187376882981060760374027003324622459153333040902968035359136095784275928071802046080087659682094956708600663370054573607513756667975630302592893162113686000854678338783431225001585873371804720785305741962512335083266906420086082271265500136678902487788857568708103507454489394167032277776647804955883902334330190808945372658004094100377178679569751177290201729670335673904675981091093660255562141744728973569492793210274716789733460000867283679976069125325108176146685628833082337990918447219290271916531619194648914717571825629938319113082774457929517390355559600260372450771789127126984572892135223128545177612719812425556258071911286545867986106359114951706387399288139884220947588592206039807021393402522452458582499862286752239493212371583570617568708693974805567967994186106426745752183339706617476238865756095527950359141191488073934000014490166548218065523718259668963094757331377184653256814467094824607417221992618510468701710973415058695454405722591160836695692567703816808187057629009101005198488111290690392309351177182259950441140216753938112852303634029211986975987726580496629156329517546258189941774401372310731290955634574981353555155058574645406834026089541773924013490751000562621116039755295873788345753869094032737637771570779413128992581083826400388012682835358529907036572879507197403004332846125737297344197768185914289314259799893187365182864789864013228206669131721717796672705717836251502923097882731698677356646576757301531880980242359192783400514124003187426757670810837230569157470927981932875099195982313924916027939342516232652241137968228874362394632883991923150933070142746475724973873337376121363661075902043525999171697310434390240324762072542238125748795485545285836289758801419601386402345783974307441227236959057979356198066287481877989249166348768165929820601143946871304870910451462283734179154021091309480723227175706651671927666731043636601557414953398727878461334281652962764888953483393766385672506540780344086198005431856078464043153666060656764547484694885256379329901715023053431465362512489959438386339726290545501231166029486872518371716083598037225353401699692759647732148618162819818498159183745937718178958211637748507581458374287291095126379353338540936389030478147833637959716465690215141815224167652180386838209118624034990387925218830183206879330190630466867163712872267374480576824755715789585199705795902054246316098570512996371176442647439389705006048584349833795570839446409141781852758480775967875366665712998025173379053543039581604252653687495387876021911437213558674790576081856403220557518532252243255492990200282141521388964420244067508666840627404681697500167662417177831492760683783719676138595324807978784500003761470816446126477786261858170536348599112291361770665520364960595935910091481039258678314461681344756284678274989334167376974644702751318077272267353830195951802105587390096297419447064542292377126299878697191865381320397058681887739714375745483763713416484399395442646321835752650456189358141257199342955134730740127117680328260091133106883952785419088261801058268770884075501272528518438825558796916357543341220116094513848696454219971577243239027096217039817541730892763156437867583191771305054127652009700901430619035200034604837748434089581690701274943548469359026999261067321248008908580684872142340122791101399298791898917105919666492684713531067703106702074346616698555658090296597179566358466351896706172979889470106867626946347519304337671484878281845158779507131960426767963274981281324125818812725334164289998786341659884877254913889687240283319297206029920805337065605856504842146256181354232570694336884958156432417779562598968390542626037924113440451924333879881688444261624743761394900395992970356893665471751773103225473047453628426118474316325273971490728468214665546687640778359310541100727068044054060123947068706397251618665441017590704822802542216714608311218213380382761857466475328456946943959219630295017925879513034008534330380452222433064045623349310094312856022886261351544057340127348693283376994782894748003876771730718998284846433754304396483537649755819767125862329902633990705517685960392053188560189889065830980482646989256760875334700313818238013926289016771513108890304722182723631473642752192716568082151225837855101543642349587128654069429272632579134782406151030132470738708090328389618513587825050619271869195598368520522800237697341958815529022083591878004922305544827487444928778673980580684746620602762400852282507555445100588426417281819497156126434772813694426961414319864420644528718562093561782305563816652862871962250702503326758772255149617756283801767197793240912437026108647710754240108230490679804171432206818340928865497433716883583218685796740103532966228673260053011073531746918325550930530514026039026030441249931676919861933329583530721482205192016382120470834646179287490025576465248065467555437210010886671786461076991810244595424275255554053142402255593697474373280692413753209986730769719164106222768737881025560098946261849471006364422342351211546377684445379950700259572309881913479643947174022692520227093192166704150719440365327927836100032875493024221236266928049788049682329764556723414203325415171811410010330951138196238658643351652268263802980589007881732123104319613859870426872238770103851492545590935724963375456013616792535161336556761610951060918426558757386349026860801994983400654176125058034616417450173475708687553516338844790757576413764885030091919799588106291887958252287994654027017944048721602231803906380773642578009740161244115880801553955925791211566037102916023471665404749953392278677594129240513079390128162637539346839245820365753183810189759094702945114265567423328021929716160694283646002645475996673011663946521520664081976236229848386489044356133046947771381850919262777821250045053208127904049944997769231704401888918957090757032201549948710781950930594027505465842977144196822765580896420593168518445152214960202465141928572649925427179548297754918851582670011618479133433543770035259383382463375827318753195576408846378705534211257252805643366844073678211893800823719416650316519658733333346350209334259943079489073045903857018301803171070740621955041394436911832941065158831480274264232629767585854994163701303658771196422169959213759342903746220282317241150233102371097569363402317379236258172308022230055832406085951771180634342795496966793098041249351469413563896295312787217604681154382812369111210114539087937209377109067338651214208706034017451859900995366042769794578246549999997604675863808478998283253612695408433438874043420915331216070832903970355119988428357802480209491628207338685322806631873293191268442387205618476661246042104247336941794371954869468614686249716428223385096079890753817807797148839062024169249035246420636533891679461686890583290603977655446011623020322229510055417283934104612802536602355198761418585974876292607185393097099699155627858535259266242808434280277313378791382601849878627024678816215533497464201909367025333957505259509336179169650658446682086973223231793440758539396402403837425311019318312224486557147994243378879111005172020121087699373022991173284175419226557276764538537072352125102500803908253202342129723416351340808055018276399161066058046572088806170108831956459356363191823241588997332763360575897505970277913803975736742373153326613759606960460951379230320356129704620212052286916148988569626694866651515026574832520604061513887775808816922722410306208298688475522234591922272789466833252501951418342113211082720369523613403631468130841766809381887556374922871948351482890417556266359865747279605991695206818026318122580432517797990802449512336382593095005933955390449759351758465685589560578118845712211974761975279221045987419955541473924748136475337905637998979034850076957496480903946495742311174902924747276385453585870543404228754908671178745451178278508183528757259483839405600347109211546713975872141605985880106724482124778142403804788703289016377617284791347327201813726617986479715970459796770189288479413371809434966398809169853317725124403370274649681332596960802772320319742376070132307776519628118489222129502988471846257558688399280403722787321115366257063628752819011742616490751760245155652869585996853429908404827602893050229283869663592741400183583691161318472577540805733637126848871252882455247371172154529961521652739836937583351676181489630007201458177397209717049674157896914972902866710076435145257950676279896248378347081639910413898330535689348152743820242527593313596427446545399251414015855646111063104248766203007513393218015923385514574907651455648874067691169134132699856408818959904562581036495298234488969494776788983152125649967442729006501129559870321054635145303964745419174096814346991827048265449313029344434408804606849472771718350407144135758234350072214423562577048347324218674228381630553671335928852866103993370717152921636156760848984133245754162466692042715721253345321975595051340127140501988351443265493935587483145556168990591914405059982225495330165490445981135882917736824591897131288345653546079392279171581058585842250434746310090048210997273818729297713740394846400985354090043580215854282363621953878638191712012078916969553066785773293971688362158719099923215564428002616860692875496102001014804767524576015595893501445826286170367022762241363911837395787854016144521413514153199437611806373155052680813689515983599002678763107857443067829253577458963044491568134154524300992516090849052146762872288735641360067609156879149326266213781770414602845793920703417589049987029879784442623721279707138105486859652848819841535510012553417125175042667126306811195951803561783644098777337362452577077030054388957714662776330164289400925922153437524894680930056907587043160395226653730968603842082233222542804509356595111024130408356355272686426218677253390832069931718765578377472922069467825045851636074742699679903973337465551616272674177847423330253996292675847415564936953267964813969897032843747385363082274290299809393876159156033928936314476920309525123708830179278954299399573235942314185368119378480956287341962776392243493792940991469557962438087741723281327161029837528378633105980993452067971871892593261102927330077759129019791282832649752938581702449697746296434089895903393277482777386013857385088387283029890060798620575067743666888307027219938267825388934465821262198276090391356337987514529583180230348073683021955335265337124786462666930964753224358034704295372462236913408893625630492895074927763851399639615256204117758774268355582467037543582445606595789913419203995336563243557601833319727187976572628113206184378848058610960104489068098713299536892419473819916469123921970110301038351429439511315719446139330144068948006372928841604986938287553186094661841177582846119872100650638778245858292094485246356678217746146170303826529252510450679111035437953163625784832617738172714106381064287365387485888732611278207554165971305441353654592710022540116066756129070898005936021960413961113349214686453555596309898570549030191208048534639488028354701388089291270858358949017855040960668888953672337293070567991518940371550219941039639059412598158728343943112898127230254423792722252474441871914058672492269869222356454831753229964249291524797172459398733032674000312345289554329605897145893017485473745229956413333468943394720137479839991744159754916083450586718254392544928845919982084449599444534658614403512777513280744436421682090315321408702524826295631553328676786647556895976916563807124132666982869015436953772257000821209723246258172666841125998092552595153272457367068523655417978051557289116711096161720923245519822971594215007786923769931318064388555966323293968549701202388819858648337695779115444491179665039263562913987777695777984601480859332636429661256316587413125223805427982688855643699718195719819388161885750376762070555398581190299986795026602212078408479559749429611492550369024303256921490526570177699922003560550882936600927360663826110527726049599778105941629756387675636007857373053952722154268182791800038346690125375373867172352189328283526663133453119674855274455125152176589955412018673380818037889267690359393849044311002574116359520616173504517099098827912655701206529747742150307260129499844323402311998729583666772208361648285223409111159806156775385878217233093951394695314309511046902751518614732884856033609518278475322221736046992072291884575013153734212541522694108400834448342577685194281524541625409796612782783317029193883317170104052233130459466427950401415693982346784331906275775664791404188618174451588205749870423193683320499708500205925339214317146131789334714730792574813242489931450805910920503623444801340717259785581642572026864816306856201895782973692333494695319819970011792754839270092667844960638751109907755570218577154659578883086583609409180530645873129503559110324020055964841195517355151408458006913520080496714314298895365177641465879354914758539443325280790226747004906297485948999442015478654993934414235340442933036847632415751173887630212743135463680560282840457727677698114661107053581262141817576567947262521001342091203977545915543499134929327409359603175458682264054152099907926576791474621809569441913606170811222405229894826018644321701621176111173035217064751046697131874181687347969786180204570836961874798971011959970794829891840494325475951203585831751982122034713195856870384449092461926218914001364479308018288382449352916638310204254918892974784508456043989769529801780023624606830802523295826570629699453732125959035153899080570284922440945782565431949160852697770787956320463176689258964523583799586848589682694644432330997274781315557993975727864208109528008861542141563337250426160313958795884738583124226110810299614442732505230396561160748874597855188730419950185277201060696473882398113075562241082979084002454359924927534541423814181958674351852914150086207286660977942962004640961595595657338411005252590918229668157270562346727522853689666696538359417466505429515822688233261189200274740223735099163314067968327802546523774604616371374341171485338831835574683971647635845644154426974739327937200236926513333059532101872662680158862015235005925657826049050145499080404778230837747479887057753657413203147325151645545640274692516735174309457654444947818273740155651076263805183096284458313229682082562737261129815351248073258148254034382035455375323030812568142891208776837462431779176852387019692762567634810821136629159078675824928516131637518040059509459069353168338470323551893570725818486138642022673342826464563095890832822477493941794009384997805962899180332570316326831648740529280515092794670186587027006594747540109522332433535116418593709005326729650437649567602572771519234230759008234234364521046179262588841018514367993121017153937135128308425758411790108652021288171940564718476765402277932930193581124977592535120986812270482897279030244309864148809543173360770409698092188715333470264314443705437255078116734005484714055667152252567007394372678017742693053767122437618471775628406755877310405109138557778935180577696517398133244913618048468630276795659726234341170995820765953649942575767776550471953754201424940804584207355936118224315608331310321065750497244392307508241733381515257425380619459218206695028353931768108847932054386429566698358010982557768408510565281295867260849845909673265837587448970984252699713692731627300909500836743659188584338932380369288939590439993252996602658955005939433612695156738987858197281404359392813347823222031614465957242995792960026052365190123300388112456089039100967773629747577189269716663932421882893798241335838142513171781927697921446182318591842686467794919545224955643286963755619461605327645266596671881195438307622894226759259477541216523261186279644916565447430968199627430544447064477758205518519420590440384185325069128869057511853184418116341176670491256105180812027093251205053015958604458853019617771847782990222679919359049911224586530463386264589026930206982620128764403652664560827896230012387888668820825703002959364567390536804678206406124940474236176989303144309306212430678474653029493544855436727270812478798029422481584463746633588549810041430911452549762635029251924667451642417977246865267765949488659988104169158880105562025845995331501604922923512802917789820908969749024459241130584117546431175872664098343671113573548144553533388429186909667449909140613912371454491834615357789376128571073691925512350626193221035131049931869185527562971978896816950314435014403474211942697943916182644696058456562549751227518419896812074703464010293138978111823151392330360625235578554016518476823145741032585839113041730277350182438335410126956627413673928340880848562077394749480471037098656346038549300331389064999038038377333394869462821887439900628063338640569500020260959807983092795628705759385175174171385264962443650926749999575835292431345817167397612101182073219919124569243706300537246556686723050728201023774329913926570668045912134194093338142107769928465686905298379608476751244021360942104878260545922062170434103467047778179079934654503577691417530931513722185711534147036588809043916273125655003331086733007520722221371875102341522934278159103781982302864609868317300284725262067972338619961294196176617948237291404644960400846473848075333759344186841622894935868715328339507271069998468529107279451741515001978488042797807278838285467793136544411599814904578049627850457659200123215760066732413982630227462214200666264352245617123059515723286097055536336729160686241741124910401268864426826809324108997425338998369774760808238135729054656146056644792370595012734563148270654017870600594228192145320052011881125105286428127916604050887677253680910633108924364462476762256757092874695429170732676383202303652240609510312844592523607521856770945577662714452019099681538402399531356996680745163039137109141329203477067301268253888266344937756168838534361119062763833270497563932949986579546209962101367406851609147588687132851240346502326181280344437325065720961996495485568575706975938241148147227871886560510387417413615151219954958971990589298085609102466244405604591633371842154248107361366227723427380666457015291023979620405097486083518434227539481314543287829390163518387241680782967668942572523637913353623916838448354700274558229579375487872451810626612027179733407779106386039688093352014332982675415814547511450199195487952618576663121930818201188115588110938097336018799778243583184739697185827163873735761332538625670693351179744730890066212554478987614950262388104085909759739579428755162811170564963478515358602980621443924357674441660483735713244438103400604142281758263756223001559707454367614107685350664102747541826668255483575751133765278283349910945385553005161196516315549396231098176374343486027906595363628118644132665833058030076594372418726576550452120756626869795430311809787896321470741977798364828417418226910789487076931268738009486659500867736536043397804790785990242438987214402074420109475636941606295786334611432896929721632962179429323601621676631892491436219956506585084936106163408609987352503375618412235260545417088395251610727963344541027836267379407733630662523065244711253717394424736137290035995985959192589646212194874788928545785317282318997918040917942329666248763992078836943606378268460117035616364943291783402236624868223230010879500787985506184571666877776195614678038915608677154188048205630093258808882947516260308920549735481573633484708816370057336353104117534997096752801449694863513161116196655748866200913085147081507480088580251210291973518954466345955101652844380313206345403209930769995914965286932157793420012699249832246019366508564896429028012650882845799864120726889193567958863388969412464523397251572992795404508661311052781898545891156822271860011607134517331135392961058926256661428938831948047953105743129141900899836719612522336489151692145825468327929112730513836165247391540904831347058091866857718602169244013012038038770087170569276687056313846140278590167393667715487896102804823969254070785176961196582556127065527572198648817836690688229259969052554182081749924905006959257191193066140176157898624006826885177587744994421240690150202364985656141008001185882838182322148702199858397940244536137026400946786999635229249863473196994806318778179903285867941493887950803040585668097584977143879626902872236420635976588874600058311092233164892651362211645480169794844676414799960924040470566636030611530140610253614133444556372209766174179600476887132404699081662200478096355255482326309751915285160716182571048713334363855022515371422093252245599531793171373277797965940867729462200548067301272923020236438894391361231694225080079656752126667039558124188050907344638267066238857530592798513770081159905955168032919076650086953773917885820548334453769117674167060385950667093696464120879572005758539112829929887810743326417182692616089291106035909567797417246550695568487950053694716232552853835714354484485618060533473618749489167392852291204813076807637022762797344068293183551965402618400706448977557258425945644089686278530919526412674448718119020479587603084799660559880614759817683586472467278943731343298560380184517255609561182144157076734889826174932402381846892424155874718710940686430688734503870265665427791593110567373955445621308094842338112255164111809565235611350462177835409022766940154446974908096500791958509533873585737691640466403382839959234524166070525317781766245857419250511711462599706743891378863950693671570501890987008712681950394170630516094756454172790376050715815370258561568230874850466038286145051779287068125467627980644329524559355555568917028606547066844493066735240185249612092794405919195530917571237658646528639254176493063427060125253972247761266196028452797224050540373340438890490764546601862146670331588293130099985720823781057703964193702304725700939705330178092037616253245677732298898165150804379666200113254225451798407894835068138734437307142387118821569168960409483494799981219222102951925852526720950433803900157922011008827282012632536712730988491432921028522481306954020008380908115323343458532910729177307475037794895127800307265655165354455047690603977897822305413843902780458779857032084388578199589842005230262210377025108619719577876574281455190093123759140582996937391744053347408285427542579291404821238575658988903617664610123842794897957147488827160829940408368271346609893578984744554500207381786714583695471874831882991377424368671389955637729395672131956196538295240172392205238990100353090120420330549197164287673304488825918204958462705552376243408164223011583193749382794753139292006428645554767370177382070467640838519141478715704189267984959507848483022891618988198888391634419157605603684297587000061901502703870732007921085950091378406912369328366353720463668656803453294927642216525597104245347403552588150459946245843988101281119887001233313774360231849599864524685446428246890705812813800218819844983129674298069075805435654205297249297870505334104514336665803254019166625209434754710004452495937316582694221234830905107533383021185242016454838793153695215242976072105973097362255333664844414816094196642613732527942750677308955428009954809871046611524008810455967239495529580243129333083062280936603923388208842427220580780792397858441970877734661084584250010466766396666395443864225189163618584275712534798513860831687000481278467451086957246867932503011853580881325510104306419908977573332264538423662704071482869295707347092089715173870926728098578885248882190264474319185054131054561878910532987978208481026407794794982715141389216112425673670462257254839313290332687606096061058217170680399268480879614493411708039193239003475947318540310775669585055343256573088382148596248424115631835297989335048278481988394142348913287458538766678402410591055186574941011977691381775260577602482127265065136253100278677761530965904944743670386939498444255907580202576069553656276270505196390858747555813199301135512188768160401567262287375666104636178227136677502399807185969044069821561739602658251379119803044692690420866011150726812595883876311921882678395164236114580299158022558252193006292768546073616251380380988115984158382355903349890952780699898874947215614704042680469433100106043661708384042899093209822705575935176596979501257049875855393145641732778296701989391158573361974525223976205574497968380504591452729022778587485562107037445815126066241336819731626570935855076822743473592170513069533837538454593366114700798052023805621373935810746622828587013831369362249489945901311586540525576541151098745821819972742188749328732060499081571917799258106180463086715410292074075135032001917370654986310390610189542239982280383647642185623227121105978302280772298247953423963718682957535131319648638151093092714989409988491652149078477761095447426036157476575676839291475493355428603250637473257746248989238769469655065179365112869817831370521732318391554003746471034594787051141573045415104710239457793540481140024907353494229034914194397718870168884696073318871831626114618517328341839385096930425772510920927856333697142108493241004382433589280629480091909112104575647298030826807044815167102539346360177125829403898514912176141683508268392898880622465267935755634607020926922706167890267450087355317306351301423310046081468113416228596107164862491195348292486164426029052563161639863610890247049874657009759925973167462989884578859223062167400617631458593078561002081997032011463730089301858015860970674581416721856057408514903339408797150529401181516069008578124251478479304396132236160186448196395474336646265380039293062830931066427131066134146771908158925064632021804010712462707562304830629371101487650136592374293528483822489725022114866201643268363060778926111854319842788068524411636816268479483400941914018570999161929208768109758935967000037764990790458456261903861079827681242978362856414173443399620678010315260388027881505980960595873629164229537484175259167341720148910142461920303077035351588643830586634541693441201663849505378815447634233223935692136947963319216355420772626811147132508545904610205371172184810677292833229647230850546896809389826406534513626301014489185937226157072646320523866623900859753880240295050276273850767302199338043782493022571361683930067656562420991947137439502883362672878563478123656514488798000217883050223582063779230669528886622131393707334238033901348116860935344036275998996222731877822187387206861404001167941183492936036231989738514333617535129974013474476478871490283149775262982729572448480957173537117706758362555884881002056898939122798766915694873615732877615761524974855879081877298950913998149741121964211520989205554877526322969311644635310072712560558310412041136845431119563541443564710606849608675159597196483148951431757654785615008610248634376185584852449477077615372246716420255273433851955026211124793281203085537738320741372900194406224273550654136696951193279987147864783431028713649412477468002080168752035225869889878419436275548769158668987989338487189372542977209346716504275937285886870959658917939369823159764124823002225855200048291366122159203951066994291715957683237331376082079045262917864920181444557595102259289485707480416265512853115216387497400866292517288101448024167136853721058671694598607924378518425369533086523966547612947430906737805130684313026842845644609581647325202747404002063940335164553949337413288443763151889490453336112475734675507113185219514124402003603067249223805949091156078155969902595394878150667827796616323051930978840317510879116181157079089025267736801937919536597558838218991173023622250180956098048895423300574040595528597381567116725998650624047657003502673197631587523098845708196807735721852186661420600850327739320404903848679481059686688161098900494128405455161946169594662756623236611748614238974397302243337266748066004023014163691039574287690740318535800595492158603190393900519821441501763866502768370120851727335436934098593135691084847055198591999866796996181364351072071738912451873272507956482082913745740773478264552663280756118434394791224248000077221184475236938940357706443962549105063662014285813799162903184518899219749105096826035928821463192276773662482513690170796657248058881326457163558798460272639847683801576241597365782645566030217970555054182437412705869080745377269822414743203471628578465012397782323749713702676474301464456610206266075112618927651296615910680157838160625583553394333130830759726740453064589893672088281158931589038783940611605462613290886354492475717164225065843949244633091605229998748911900699473603147210250849745393415620148669399252646939695796659733826880128309715339900576714123172445354606032652478004210313033458070535441646676208290576492360137623356652960517739794514948089380543985021877624487998487364152369990626318467189902733923082068445074584532864381845113362416306378077914808574561552994856534496927508778840949225014184007564511370956205770893874434682594893788684852698132035746429082192803509737823235812960387736725980395648618846108104860753571090103240089427924822005615762247530764025850884591154204458107344874536146190031280948740388753606361601722786342424786269802927637890665529173363841297952167270923960574576651550552231365204699263725604918421801122066192266488517261693845043448417438508247866297070486202801937236655928901203622305402594208247254924691206535917344127436254412864339663137840906249482329214022892547613566484002769065243289391478354410274572449180413963375267219513347513182593513595851333996987116801294670577072808262088721228419718944962072078685671933017036251346936873324153875314326499517474074314807911594297796957516845384013783788742510756556794721867580574703564088152289449917733394217752420844977901102129083070158988168033473469866475267916346259843846121091485986554805179354319999270207639433361865225579727019924776237818773299796483681939283535915056107316680088092989943821415912412555874562094951677148262560987960547884109247156351460618839679891621193937043334731105552685566519779049140547639933738687155347089084464255176266819988716335634845429542661962736140984468236906013943359969263055967228194526542075032439758038926737272527208285202414110401351983742555826729060867657599668315435332974220198651978119062516486413670907249266939254627231888307695053001901509698439074391416989615641838479239904895183548962364399094584513790540937061336884942465191508419359047824602130832135171626038030849580137726350846009565898688922646696970227896902621001577174672493060135383840816817517898840506688730506086112902347870358915476821597955882877509984116889858811800576137826280378040233945806079345755851181017455638852979840015802531811663191201451793856368166449320243669700953243059303479333191519850611516213582884712901151142095491873807043050779313245927866851904436409410349816369631671077099744406355209230190056399597739220454505865552617072993373480153417184324758293358192673579447024066429232044192260451039365847477747101097220602216780072061447367410615411955957816764356684634431534979979108104916941992127157672019364454734028370573578369684776982370123461239798995726313069069429333943429925756015741503912724914362009104973005197339912811688156888070435898779512955915786437901827938805793720456920850648504660128031582379899876754373571909010178662051327233753065770560955197502455597527820198901786385392267309057665877642722086663261933706577111451265123798916046523882440669286747795342093224024340084382020632910705508164676343486074075970634229196203630575733550176728259351598533470023729047014876440127495046954582366678058124466100382713276438225855398868555683514083751200668638517975173142035780677150069043355366221032060227279039844374481303408358501009344761745542669122619557368546180855126361499658443027238244962233935291302124588119058396519285122166068586794082659861449723760401096282506708705021911571851478407628733300564028653827833088616232455319856079883411496827701214335500393658566948791648494715831805695686604975013262215230072906792808187337065276354031882866415350802528357910850662383573662358922602690807562327984474847738425154111065583829256431289687400246617186287694033087266434258730796079065591876809522289626647949256070819879774973111851923709923996973131506712100809076419116836978681429180731360857637794907644586102216379696196757969027459596854342849487954483924948886637439564625653974440911587076569091354061970877823064216161065372604161872373060640522297308811397648888343379973611877008926247059863609337525811958120517499938690684530609750617117451066051986549152244344803623468059123768953783429718732918488811961654868616735416779222697264129037069866043441332291810939335782174453018039966973009445062541824581258635404054738564634825629585542143180351296974675559380108299931413477664067361747406733506987327945460629045308490672791879943557076553105550360810510653285802600395862332544276041605698805092845263329380502829608401670695017605672292755508370431746019576784389701012999821317001476793374409331037075245291675511019843854110271856778507422472484140066396237905179072294906010217483315756870755616279948632008311704458416817341629943859021249844420946310126215064647009804192696758108805054739490355106008208822570176755510415909042597188848414745157562766315683354448111542295379300201378132663262054545748121925700210259739731135346105867248496868347062063352901212213837018891815270099635434531350589333662938568933142572367036537942794147382392866487120941086152306235552034075127719126530325620103032543090692188621096410317686278153527436716871109683978934874835815364923304910934876886923625004698990033724508726103358018247275952236676956470735450169882640938514138161459227468756918553474096427370780583151407669359082342733396752080929728796204392229677878674562139896091448888033135047202888379161681589288822941895256695923102949596504796277064570182394575799813880086993602188800141107469064957185771723919334893794735058053045154191394982357343578848792940140445397531497013092705624769299005774112995654166580073864387541013029905537460014799908930311929559036516507182628103385620549949958459984043091950628302410941950186003752719387120388430257854690505720080730719758266912915231672189318653387694444779994422704807358261182939013985278258136143328833220631849293459344065642604882434063928912681921540309546189185227230492957046851291765032158446024336144075700230653769826164396976011265088892240377416018902471359037906980723544008596380025656041627752131206279834601759696399391999155549368950917311894301217421756088719681887202713639357898684860505581623482158157702990245903941253769445484511726868530440889382916811913156249768900126245150179066200464157966082643106358629111445012885075237426837493204236580731797047970209013475566166493787470247137022461169174959610443100202901803892510587211985623542697160078378994773082676866430509482383107941697194361654373896352895054405654414903582597331165239064638570979434122665749085366666879908954972527649036487084458957330594923948270925837631998640043724042385620845810231197004014535065335245005004543349880315071671643522345678024828847225380259174026147782153350478160095770984743714194475866531141390573007582984739628392906173759891971936298362300340391193673890024787533668201878831434364386620667210886293166301147470228840401341729308004241372082563834996621022707436312306291719379405284323384109122890816569124843893906919617789875486005750288845204361251261131583337321015270951226485295015473877591094892573355601138937849889136097895267000727812780314045769048807317230340250645794720078809486136463135595480401402804627745414675295350358652035183625841204224282105805751101166487099200536405342167626447291548205763771725895759225668682760913263412140158786837339219993784441730623671073344836700075593703480891872959929319903249029288328438277639471455175401208241522456705250305930045158501992845246131087681370673225313446187636193236863565474598319071363314033503500330617426481891992795766027317152588619446272854812652866772166961664815334784579800225217945317989154251107444425709166996180251046387081316490763718552620210049383531296660250123912172094235138394008958964698898348649506012112066367296295900854597293182799286385247285163850546255423724047606884381552004660306208687741300071787428057108755327746228536560527364188683353003530561459479108145988116607204884036517038032124909735092077038807175670415777478865023497762624429047275965041610622466336320331009674344259807325061995736764534327428035586433660512671062349060479832599251246527567931633421632477669642284309683901905167179342406973955327357173801947777058016867754725204001266983165984105607598733713287733511840689256822220147034149338682146081032100922818883547140434834718562108205080604802695356776050057474252203102336826298831388328638832382733276230330941960958372776365026272066732889584492791773534065929269941143250243830205701479478613398309021470994906270678916068815297384967161185787569312083220645508895715711195337162181286636835389422703246335373181990427971708208145353596961798994945542245431346428999629841540654411558102064698602539986002423862918750472677819322153038121714216271679334900268457286402721287947741643029178048040053562893718213128561349980929123047694317218529626744014672336999933790133267245955346954431857282043882876396621383571812638146568408633603436468016427546970977746102015168454359815678943349877405079262668962903412299009790477106421376143395097113640969310631577349842570643752345197725511930144976403516664514002704764515375910523734754865652465832425350071658089161299808822856158873562305080943414776630576690072667975182388774347550900728369305346878711799909400866150962047869337061218193704601970596509589039790469157476503886668614210638522568512850126617099895759249905179334929270755378110298627633886317255008703751048931313372912536321559481991413046500332677190730955331535149650584242400401763262399198178647653882095551559058816058793013325928988896422008115873811313819248388229066715068938399995955516412716375362141995858534995503140924074695251658210475352508037782605912949905339943874081355019354534788992768566293531588824570328753259957289091807130047671479833258405219365335530751663717533173866095789371830869488400450020558587514877755419806789947626275718798978708731663350152189112674119770807746393587947416936878539124248963725431619362177914792590278806402153872747792747664760340226765216327008700601019203840621343056683325464503434434949155418300793594668465020687345875178772798126315270481227926093811504504472489590955626418441171496814139715651367223634054273870585629601977412935561153191113706280191772313096630956524259364162984302390635712370808173524492157056509038159211103811389624649926109064647858591829599835175788581582155585886187647270137142059450866224893602717760176026594814486301272976807467558439701827483779463527511408424591061977764225126173571408425110552920539392454815034106163445643078238599807057465389899876874186283704715164149384225771876628273361122943062144764259989477620453565617026563608131674666590050867735389940401803903161897529288536541621875616221035270300012353928143621953559958618397075263115077386251591669207086421108258970958510781046002077838562172032792267752455077181375242132978567808344975488525886773551267466601672115931987284682389231254295782156942552652677451292851211345628644618003374440163603884376881978760047153190015812835878248828506039546021558595671624953233921199436809531403466042339682651141044064578711336656688504925908236222797979805811431441917119891372891255792245318791637102601872400950214349897801170830888652305530356882396298276008342794128802921176879244757566032062701838611121929718628242637353604349952204044353569979850621109844836083774797899443110395329985886893968479171187670410692487696947866596184407384860557350527712285699783780663681331685779867961975411286787421117706480768879035691364949381269652503491723634753932485322458019707032892991355088578439766376868535295479621291015498647268146861952009362331551573525517922339594761698822560288511241634682986953562641768285608491877699433809255608316336009719986755770469690471468786965227853447673066231144804431856785955117202235525055749898761260644114689968857925031426230901540367250481532027119733756207404884185627301313904384814650808366099351411649293597716050278821868651780747006366207244935207796671315069296891044814079672197478532442481539264154311245325625270921112540830580328696249358009608792040458927217598035724711403395726756940513817205624989275216366205155895975236181894691875467722776935441176779686449392411688896344080882687633501067702528786527778309177029219285494419723881161357177520492166715527048747667104257928032832034732097050645106135802333704726842271291459375729288462304438908198268062709157124430834150909037387450247977085106738857758683872652001964629535336796980020206604449931009249652634604024386256751466452139919565346692949853381701522982864707543762397727972370494345491328066331499868908888759025714322644378352532212924028994242039707916521779155414732808632995324307942533375221454145789676245836460389381742317351390052378537460157160653755031121508312160756317345047924698773952158560332945818826815446660252130173976995957152888307134326612272092272338650493132126674875377589802482570326564685877007291787110519254751804429831160511708165280645061358377040885735905012662849347988350692387729929034750869202725858283619557357726282388763695565997715902377893496826820218017549120996789588942145790319985137575879678570237043432731966866035428332350465892452565535255524406274350725191050847965261344479945930544740489604593471160487879310706452458914734367129251385428172978728881693869019163799947690551518185382331915189514831104384061850284188071984370391231634812229295514106532412118129812693631274122346572631349226149595382703196019011094985099179571575682386766196094154717406281785448774794662560859802975524487963259957009503653460517865049315523569625266750133468765870070198054461416567824988683257970463866416184832185604004461087795241847698991734639502820424315192151378643071190460224090433031263025547270000139489135180789819977704283094895243731179702498549871268594105530742329178206077608953088880166103100114758732057420246555845275589884164292198198002258869302033009356576626698126976538611892211172460004747784443487429271380013409189986876449615471075883924850988650108775340221860478338318219803926363300444124517517996181779656720835054872492889563343357655851039914729768007897488275538520109067137035651681030002825218808277112611567855248158469748018555445526466801292120888478340984160514181392495979045449876792431033029660177241928570819574027410423675291823699145558934888175900559460121712615345723235144710746143933863582229457200777876557543994197922998718974710631297737894866843818451483555942732669189662428135045429720223896390894606373301524318085567311527837824700165113824573089567802464073139544518729571779821882904850321482909992136157677709378161563407826033497803024689195165473725830325610978526077578404900157886693663626770081422755162668188103244316723563967218112789384556144862741625595990878615069842794696394809016092197296749408629937563896691889980987707507619434580844211517933243847102496391250141707075306516781750757455727327010698053335035350483876932700952016377427468633832267408862728455728869848197363351934806234935042013848267093468858068291078467858030259617418124585254790594105092016556073126576866453186427849759643486289598120870130200643476327780996533897793147769419730503935401653352675164101332811467520987012539103994518947055854383708793618682841817413394408313727673707363794348674084707111064414597863821030529576718735948187595857779063673742784122518190509779857121056208512066486563567265567596059071634290779691377312922495679691227025121607868893480487396901998987410714889541383726712529459782790665019559463961842939530695151088967052141673163345648309680005162440557076677711736447406151513372996535647542413480759702663102336118271852629424910868022972013247629680389499843088447669750251317578898839271635408692141018523041700210387597844912279137910665722878222174637721654530218635432497940710331523378980202704916980958685492581156062475346354870508318352320534006343891121866975984829991460673520627148208468760501541742477354440703933883669563655406618269789095849896799441354689184402091247620655048452205227046624855782642414327710702197840110420111816578288769603345301637378430349378679654398947724549540542150493735398071957855421565794676192983755114335968147880087383090389933386211689769608576169609663632196372395920612109140152503386969753346908645619016114997105732560374548912712909145556606067259873017974407564503133234289480250620558290682900178114564088143344033561567714921309892564422380470408863146269153876119881819803923970839046056407213638154534360328073871214283227673525796578750661098558082903993740455066224452359903060999235976434437855338125001997550282560419230984081426380450694188171803003342743867121369683754491889424142689389323097450481074922758201076439515632697961802917557758278126492537506603685423132476660388359758244798179388993426024236472361208829093113874690055474135870491903360605943428015169545888607804563905874950269869363257524006552524864835100905298322306825125573372750675659334359862005713093459496444926785368185812149014444804800704952976826858665002232469231399883427893972953241015149448660686425535368109343687117593475652256199859657420412534698804557939719976528953824671489584781122803973712663295522007000924662116345480677029023621903386198466435285947447855946261928049933224119313962067427902999688702321393627568774318423821289773039393648270236551410226649828116853770896051095185488162001360289450780469801436798483108535672844217147126750427228011761832700591407880759358349843944418725369177507311364979882097469528133744296017058929310792976218638509023966627039621539243109010858632810159243817833055968009800942184500027159490192642027938701054737517231333619980250369964136274782589627655788572805431446967748731299961537798835948299106796632438335786666949516399156258832181442306861520120526816760843682659286575935653591198204435725659232644614849528243107804429158893825487642185708716449276634118417878587576992662563086874119682569478215872152476476600923260533729699995516524662877377083396444302110955138965625077093019193022113452966276230268509022558634622757993214962997115988604221036147527854064822514608259913200675977347720709970856860846563373466009157084925296953344039019057394785747598086183257101050964391922195425159724080881934137419130899653396089066424447922683969464146661451059974310706843046746137685852995357493595635102935701297774581408973048436594044432880997651324335511892662126170992616792874392079513699334813750333325868230518740317376197230720500347512021887863006580614995796358225821690997656637442034663412406860917654090667642697281914987729685719985759056994254728158652308108529648709784265102004035604639439202806461698367586140934304575758412223225445760301284112820987577278094902990524450656785444700244214590091619660111305043527013181080013400043120162120576102670901997754885130540992655117411112352809034460182545367275509720614993846539351000894176218851356242799485394753502400535710626317331704245469724105012169691746464766090197098941321921340226916757928870629174945545364369252335440438839158642764827109623884965570724477054421207531917908101776445620821981395131248645754098504777267380743294448545015472368734116404503687277902019146176638386383808855130632018141012121251788415369599516362022461552616314186703455399584105522097375082762588701298775937103219038707518634756012623415185718398463294110479341853884474197611514948707164338153664902342444961253298097159446416805659757107710386606004869526433821238158883448474570097896210856234277949338738838941613767900488014123590008296449335152810971177304814882969563871576973521862568845239179910344411054271768930246037727155372019873216485202213697140030800898004457154133627720043889632046075751647499421107815994648800746735756261402123335330218317921524113971308489922148271588235913162231233346623044614845601454215395882884222571366251250299169633586786670591068639466168272719210254868175167915443124120090096907792484036142272132367311649503500159052919750681721128681713018791321877834246983159018868977293667530904553572677236039989673496649464294280557988513006019713733466597837136468922452620431623682467782541040285634585105021576478918906681352643835658575158029296064048862695974215702879906264528308887549066701289659789432654208785741149682371263759922157153286783973707933456441460647850524304107313388457795768089436803753068000333590546512057762968385635077021482642285635349421434347992482793146065002266541105038299200646442283479056667125504625331679906864170829613316223018438389049275760972567097038046326045009672692219646782493987540526428417476476603070003929760038619449330903942461447015379110557531702711351452446247723432631351852605991110327405505432948154653865963004358692464896952036718910353292945415190025884588874931317779904693557613137256639485167625658362862858565919809475001218840799205572507894883468411848098292421015543037067013071640440528362964434982132258069431606996211590274977716684109496633014019828899232761873481412621085051646291543508335441264550395816345301567534764342040223853624650659743114806736970299937878512436882035552942984024580456568158398893970152662204731425427656470460354839939589069086785444584262382095850440116489831471628751137938916055710123243072601425649685307442638455433355016744939001973150098616099369631055966040848796788891802754886212419661462704954314837639466673647490062137042004077211864762067940838473046836483213185625374510795860454733248686720914735920661235505451028040952124603472421646737577422692050505181752095140048422587465575537256806851718044109167221153335290318171334291839922003141475899164087295474243767262445924801864212470126732046638733320689937057967891584868439208902479403227445479786054968609898808087437416960446061619817133678435697340479418580829450604115711357302188469379778265451693051435261308249833088555688788486064876977749003631407385737215311961213930792538946482120868852864430807769552461247544757757029238178985979437588288051926495214993097198121735100807848210159041544357418870842616227351721301287515735623897640392637405197463943596085390852765285777907995136778901170464366601008737212320417808179125416166963038249005779463295874688914782461111881873305239422126234094851290472205661822763342794802956467555180517587447281272382301161040084474777389606930624092816874528152763559331508788409345216133298721330276899880244050737140700246198194294615519785322995528303035611632633994506640310329699143202445026865332611944892600857272790088165313184567051677326267625508636072274084806313837648063664792663626200584699495432730808802296133285480684302338353099096357966613028314912274797912059615118796632553605184986918084494476242815093314715175977344762767532897497269297751059028440033692192781005676944824422417293039184758173850058623010329147534724375244385756334787964735327540889793872288100599099628345810835154565468956746387390078456553125979405389300269588081661163988967258713732167715749353925578515574402093101133038704391793576419528380227000271184775236642137993435382987206205442167155479744495640040275479240142546594590828257513231512659287508073566161857771011433513990465163959825313924502150582372595592811044601296630057255527413625382505869826933117864436002473171582639783966216544590535140844789780056166547062334661551216241300784339624725588507679361072655631619188946948166852341677967253856590109284610144726212161155158005964080403630158718868395021944825919751852961502948134740315948113739768995152401486698928331377491609583833509068057519992834116348995455388037024234669863744718996635850022711343351530365520773586350860839037413387098203697236267156450258006690114288639407495426026296189432475276290236406227965749913883854557217914732173915009529700848629772452181712835426480060534535220379407974516363761695498853259402402184650409521761338282130687221830274783938663490832224564133704803562892190357722545990409733541930875442074734868418773609844823269051990059722832100191111308591918852319952812573028616065433457442399344640466422183730904121488163574587622397846351979772411586082037013103204776174156324741981306671291631830169044479339555163266033007829793765669298362998626823834591876121152728749071817999435868890114385304112601307595680280942515503961180506938770890960606092225088437937136682398533422893028555912606613247816075385805138558730371426997297565738328094007780643992662333916635621999553375452490742591609402635423558157033779914772142288879803245925046442506744451877001961461751872509542469687495365736343307525156667914457655446560373053346070972142426709434933142814030193105739658753125694867733966964706818043504942578291548856136358677994900217405482363583508773971708646019683793816016586551468746348849689310524062308195600257156046073735043357962030000078670099514397023727796344146063383886886883682038621674458411910360497125239421962451899978323011994149005415889756323416904212891581975932071673160706047024702319797511827161681057407243420984172972473556687322854512800908259716300970290179142626964628662407235577653845251587529761103452350484313864194643588516498806378103023515610332715844802164522458086137196686690663786895883502224301883849848488028491243444906969655491605041819657442051593321704387445144539507873873512670054604922143720113503256338915714666603909310880145595999000531094011531160006591783955565780319368436321125249754538460815501927666694245925991519041772896849119184842248222825256382173395495240849755654968629461971982059075652436310667544280317070719928165546251319928569962504442945464843153497946766593598040883792709986395374190400919419903249165165100819246206185484760403603341696259763534066835520194902339853025426147323278288921102907967994472576376057610425317094926866289600639855636192082119504816372820466236273072324257436016133386768634740698162720068880499100556951996831561653795777834125565757563991267613461371842392342584337497381264975103724506311016695659677494933412530850485840352088590464408577399479214061829465268725855024563187932438952812401709005398948392466950774062891874934810821348560605424579576379912891813847442506050433255924188122074725996340185658643131710326713985930448135775866692704719574292032662679535606668551218460394826438254772058105297719833136915283743271109370734584633428921136384465292978276967388338253391674562513285877996911508603468714033022642577138462055021980831378616608281154128241478671765143315912100779538293477198739556431391124044224885664202601007423737677331293752153374417627971025228670874206240996068117664496238301165651994754257869761767543294837709992770739586173790384911588875591034090165434764104661737797784700600870359005347351843343214203640044749397467641297456716016063310994176349257424421162551873129337849536874033152404483632142792525066446176319183158999380465652286154849779053603479187707175494432756380038821394510823150819601500238473780197190844366174396083148129325374862603617899185099102385330083765237070167316216268806836451852688786252790382603270315892596810449706256289045502280807753164013815659316068973414978750556303088817688923265880549382768619436835167895287643086958316483777707384220901915158930001429986937640489655064953924623831114835850432898603685642789343485609274258981458494681637413448179833674075715550913825590855531883199087382352735199435857527939303426357234952792083834407274970848844634795192966276397476529715405062783428909317122670078910272985401769807553264864427605814118446895773265514974428937593774132462018008243467218606196677580636085355080044824539409519871706049137113988565475595146807643120231096793702454745485394517527413188533157433962645693014946279264069842436834573117184085704266622924756164879399756740460902179685537420641461787730566345151459288376362131318234690051236879551749011560633663902646325977245261347544753985101608025501471154635000252060248240741952449052189333699171447917393404927914974015093022982075269953900521793058998209099149378053488789582186685138297260422755296015132973137033760755554954712776091868651678256132385936151757990374747613743390839677159381445237336092270150357403711801996990277540790110330973507219359521618761961017555453989854957635445197868988194968168560187808837854477443186057691643985946249001545255863378516317179545952026544779116027977094739969546900945381305335755956629821629777714269115550316649633011425286440711021871918462813146193708032105996205107760194867451126580854125327437128323153412688114324900407749531231217154482069891719584025477983392800684184135241065026983780271180813557094523534686179885034020271786847734007027341016260647966145663797098714928189012040875490507094838649752228718992849790927766920014500134654244137845633384651088590215768921365754979317982627397649848580280006581510126281155371363022447418691752126916020372115755756853334330967176912600091126721269935406158819420545771735528500372550135971963194914665714941981935518594472831841256996878072770459899254928601599134165484326508365791765694167320893019063757583354164909280464087242514268263031744332005116779573539248658435468000843249502029422415382473414105728146915181878460889379999003069210197306478827610210601871094128446511092151121623054668248602662287650919264724248449436773340192051430387878422381451810496903021206582977440438098782988956898822505952083294352411028286243495643007076827101847702381478165642894229705724768075219766192956407417967394743706981882256612923066065920217301201723593388287907668036230843496507397819916203870169732756050871588508622136804053799763554033530898762913308506677331404172583039653544409194528779796148091359166779970384517243795571861627683905133255020298486677599484058102289811441513842553604164594278111362902267973306519453094557641325240254572898484633810544143039624399193710752157187512550620983350575481379029875489419664959791878085560760943189216584120798099674567399811432107775130755925870607970420122457200096968512266241484836625715420562628456654451423338346863348003306129425572290503099669706271990321442881218001577584419062328635828679157205858346658405966999552098612611971353045889165681541867064306684653606802877072888151500695055774776899114714612674625882482127201773713192347084142436520096728736094880906780871568651455151681431802453295593313916510573642414687903892362741414804091781789603730753940791137513231225495030584954399407790214758296372113817200441163481630266859517402825143289535256637878277274994961047151106654605947409823951556931360836932532133237111074381790819477822305751203975261065153520903640839422012862349397294023066185401998130006377850917439586440181503578234326604990514241078208590408693651441499559399949850280898054718381271337744453969354575754619802218443758136339829628235550578607993100020943621013341968374097313292993331160275662237649586414983245693689974954468856986035279009706262132866798680427165343315936998537619379521790704757801258461209783946673614210383811403534660953458230964803084794123954174084090029244147377725238131954012007894019324465768787233316234512405320570230037366724763143291418410209093409920388864119247878106887881591347812998287241493069555811944071665500017295776127828050104090172994793139164481291938684402121174379729989150954630115116550797691522134978593883735877725589948783459027758372355860990038460741748127793245012112664221235253896694833687741433746996028682387274824436974213565588871703976786684439941458377442954129067696411114551382931625901502425886321409193686400196217960161231487404446484269462598459708611677440025047742775508377859755852720290290507260582753848438658854404919593965224317872964830580331598654053661910651908099091418393007560620758107505103495410632381557357555326728909294665040316384397413146919833910903241196468908404652906257948874920306304860638999694515955142423972571485641422185293369765527050927683215980230374110410349375594763936524353827235732225954623675032460317447039643428605112112427701377217724810235554665174681113738437003621038333405573708640061147453869807018966863617831178442328170163663741277951498910453368505967947389408450993310312265815086331679799180671631442550390985642874925091263830509131676967645689735163594636466312479709676020733159946857968962012667800690649859825582051236034410101429240362366686767842884627767996095494198706077925104012161889176018556265797421162584816861325508865547049691339709114864599635801652309105806252214809026303450729034589184573668949063625025102658428664977701777199750759055410147461016666446786948660614272670282292693640831388444686710761011498083777526880291920659143858736072161222838667120122330538771346295680333546650268022319829761800104521969633868992956194213795936293282695910740113628511894693891508963811881203565618947183421260721074127854356994144800624969110579123851242993376543113351056345638496505690635459384106838089047913069495520240193691338948578930905612470081350894759042007966666909956446170649471289546794160156371428353573693926063509778317142389377607487460159172426227364198735583555470520981544570338357419589650704443713630815324245418728629101045375766521174826538246467374954213303758349786807508477327523900297054697958093684740004797745303785832363062915401157357135114274244721658821975971431936108271693712721767541841704573584019711551986471287741906470723269445321673023256684589260761031750181532139512452678169683041354882489892989859022432046175013105786364991594609789175250350762421043374748339951842785892406846648909170787277005578639728543855378048636194541696480241495492255973549657425978572404326400577006185156099247634740831920110269679842167474349839695368078276157982330910835887298939142280465705399522321146305001848673560123050363730393696850654005190028321682038598344040373091466350100074104040357097618090143966509068434318202184897017990216510731549583697887833785882004847482271079142612061195643322327633468508981600865760459529569654788676754278333299972693063544978156543903166024621130579653999245566741046227096081490286301496619324458945248159295716654668085327103915702037012376438698270305333916744456795340079875119433973328035319866698326001648364781141317190125118383260784655373962234132438522455860335658897836850467143364736626000716583039040337943812372738748772985524796148299313007777471814574166531425796214641608825035704796554771557236451522641501188738501322926457626456223085800738767439168552029664585910649877306569321461155780107695463773377354443662934622324446417522858273509596585893005389180477376636836005961575750709859084055276280499399384189748192600800073748067825608941392146811955532858290315968040195740026752300020699930692607719960309734508982267935539321710068435684144718521214156358732128364898600336691244331950710757124095702052657901649824143206533164909533335828574226058713496034871877931715134454535245651459481985817795573225694634528794596735588580837536400089512350815055167843591446271666478085282821256468963400659530658367684064196612775802793023004475944079411477897292342680388220919486504735936365191581350253629426438766650675732315187905372994770939279483559141086828736155274558051007756516958882250551371835402190986562067702927817728022098291017248735070318564302096655884566179242321335285169304463516404087333882206382163612158310923194609848343133898758491261909360451774374874864990718019255924974834588265595715313096121942076224280134364987518916008363175568903075585944590306884842482582138545797551212317160776968133339198868633792769910052169236916195378388513454936236044559744277761152133753925200725012373787967171690703533479376437645247376358193105776697467581368269266763889211536402800939882269107999374715135904674579160419837501243130789836388210249312701231113383005393566763398808886182309675644383905383224090019428414390619779931590875866351569603100417628738025595762601882615709002558250696149326460344665921613266782703592707564589751174387102623990441673112232587781181275995672408053552941226815597041907961944937495944765417816517026329675198039684474097597476409078320898970858964434496580156898197725218730990751914515478380346078264320809692445540991750644936564728025737428552403215700139825878860473714815687342504429138084702771035458774041206767753261965287563240249077373634368105915576810226722142892035815899711206728183287763389412711085333731297409426307212125231910077874586114763225611878815033675275909333682715552015266655853001834694931377816461532954571424992187154975656595135959675422445274600097221985989775127989976097248576962456652744655582486864800676198884219538245600080657709015546870693326664438379503215377414989299903449672717842530793243559323777479822170196070084984755606890871582533257345241826885094766781862285955676076300575411999562230749582133678039909366588316323750510191769634008297010956756025653267258871264950440873077097328118811886279760889438415291329519266890744124795851201147609782317269541221690605195519393677034677384366258139056733419445541460267365104774428958439254475740536339680716525707473462785458627537324080213928625451804532602146405344276433503078591091852933917693945300019716434473411285469098480374286350179740759414772573532729132221719748698001680446019559603502525584952871772810444765862425491102327295025643265050073503864548961209218888813742912078318890507153166487316432876669740938647773872386064783248542767259668967163789102711841559767474317948173193822323338160189572978379064710535191984428509203781645900342063231438564981136646729319970150669285678902480564673564186627785191434025065008460514906154759507604622348141730053553509170063722746925534862659185285429338132384127364512411309236173570184384203909090898291461797076601805071543566312197026404519289984618936409647630942749082535036940364753290804339632343887204023931326100869816496317551912694817090303699159632743551685289551361103382306912075854623178284985482949438982181253854850935590680824864479551505121641017702249809447811138056411299570919721588295445315259954094286421292547217007750052983465908250161688734667856527769154525633885921123737060042229290284503155705030179124985481773354214509668394952117145548472833953237531415780631450607190892861325232396487855976664897776667748176852730951099315401936149429315870470722396007836242003498105140281109538819994263961032008810434807385263349956136399517828624594853776239352148707739815991966406759734952149769978769888560932627445399193090037028143945777432970627051416349342098399487109157846796939091538208722238841985084379170959207428527292429083592675742086056686491483584176376481608113557958939311731310990723437390149112231796124602769848425020629448523161712227536530522622810122527812498212156432997994062329898444145941683096644941305814847053706425440037950555017041417337437274099646381122588312509328460762126805969032560715664822386171794325456665475023641592018388563258851900158468047921876563571822345446790013003932592576912516114420825043928781483953125219436985013283159661259512209210010357751538888515669102682710549432811395835625214237767538763346877371410230323281408835309860994457263284964889434690216484123795174339078781529927035202299970957529604756277426215679812630972249034766997137685209777967186481879816029423677515648996995580152501165639012071832733886140756866746130063771543048795235081779582892816157367697882873923700669953692904350297581927237655320869800333587462475873405626510908095429536685539488741731077195741294304588574288285041139253763172262199255700601594040298051517376583884718482671446527790605616698123804946337245509362253157855249703305886274483311637730391772981925328266062409146828774477374558128480987908625806112070698928740886974620053045358763567657102949471517928883535346066182239534970243215813124321188309271375928174788643880358042299974257650805325241447609053602683466021674305488087596332153157903416529560856279633802019695566595955081100452798169632322028250441400813620536239437116236330522324340873090206830799085405998252915548311702941360771984475873042108271170251650702521362385313259225896109730888043017328862296448613707269716416162781761357144312119641650258641542031719898601043069388585258450210478347360355243342252052542200318678453743026093131678578754520087122835675664088224732758382379695356047506747909310490699619488476889654353942910106638052025369022546051771941532268080755650572857551259324559632125960244814406819920709802790163201723528645222866494149131422008348250685902353992831828252795472730008281346649668128211564708330570265106240210205452897713305328717520167305478587998971146092460889212257788352863033290756746354574837864854042094174484180443762681906791493595352264560407303397378899981508329117952573149338078940870696255378597197412920908330589623934042307458733307533741239502461620261630609311514208303357954546517314492268772448446659308197907574091711402354643055058538757192446189279067497966592114826249963257193553843057080755443088960482370039433845902101321140191718909764595927204789802253357278533356269175256690403624851414845892385094538701823441967480483333859242402409349925863691709811623759109553587613507331082956200459455239790461453935839866159462331415443141493430710488383091557958483738507551932515387795908935810474028592540565723636674587468300353797440670152314365079067746242411761607233398752087051510121975614223174349398289060498097421833368085335117243511569947867474354660654724010023923695534931228028904030613432571852742568030174709787415787460737458104292453132623520902311673307464017543500732359303469294146823662286643632257044960771671699273316777708128036078603051296913361886156590764279765014676277184279602128710961849884754686946960745047667115982477009936790420624784773083843087544000062419257768613484192484067338150644425827128685529474608212712222521832853382862643818613890588790416176267793742322969175009116446676243992746936379352676773320666149530884018837875585369866824269186773434821254800727786683147843928483257703258354880900416228541233821545343762143815428170705424437972504749677229033511105623309243888174667683048354090880897943667345481029063943679853424192269211085586018338289815924715915800444498785320404322133624894898752151712724949756617305554848579126124961942248297609778946234996801221654177596460715717439326622617697864705649359009857208637404590839604803680135070647521925739316780376850984832323461499763308150023755155750035120361000442842820859756950280292992974444853008469736414210652283604829558082337074375241137436757711030428145834919538091800307444071374612687474391929234781258210527538091168520501396292317117616394419041101577090866587113124715705609390360554075787511606098781443859561614355524524208887933006498404463022090501743701155820462764262138720466355395359970952379066927428166096011906381331003600267245318269763987003642508063996456870868666821830044874167351482759215897482463578301231172985951213344677198310025466993933463615713347712280308103978197275300775166819975477200043562129348404517348008864382381351951842925857412180819656136095241582891602548779712199502444551347311281594240419908375817001096097159242192596692581883806268296124622855942727197949010835186987787347738717920829240591678635869446298026490840951083321848446958249378918064599159713491455508530889112554135246865573025522708165265252554021445899868610905953305021778698342952623478582200813626336068861090665525695256647290475071585053111533958053860920347422776229409135240976089677040867767081551385874919396424490641199426644714112861173755264343104189003500098614422766201686819480054042928485581736341766735277939432660566364106631472987465805290910078956208043729522640617948278503861079722524227546533801100117682531480263611822473297426910048647918950399717386510326550638153911925539596342189415612026900494229413754077757121835187002149379259921865097542112988278429732097784336891609453311920359115160014958579320104460788515615668126038822127147591044130787337917866857504973834365316567329459468227963847534500309045032735391749646088490588379400635308126695865041817646146691843094048663718168359403671057121656292403384746868202452463778462137179195296925299788910707575287473011260016342059030103597233916551979983928036112119236497174827213934957959414525536033610452660666507827966597692141561272925972725813885104681452723783250427851485461762035640970138192170595193106462114857350088632022773142068419495129520147171444218638996464928261896231343713536873945585665649460348446222683542244325342742305951856206451379702745031955912292940333205803686978472473889857504715529280295794784404902677971555097911258823135096674679663260244194147835338530128379832018055293722127308434982654492112619695019104777009993417505457473652200011231859513841799359263027860388408493004288683564067956853676407655384258956244155221574808270245298001901844863023799764831250594638037228195972747195174787184738018535487046821398219060750494576085352597886201566419587303947818040637940696931172041358873037685657430686932007520489685148439144981829129172138220994205405487226907763455360384107799842446835558075630771627804046055633535058398936909762498325784351548165487260147093556611937227489947929630878474613359435449072169379364174813379622933037971816706489296747782383666375008052960784209669887056359408642594364478783109304594156682833408084409530870221904634361597434958152232095675014746908106606427918385575373186903210433541279601036302892865412691982146924808419146412546221290411442251426720675324382558855418923312036536444310305444848167680126197037159687073138268006916649767917756831797572885012874284151713612980409610116512357783975129635192951657516306528413767504643465638309063600395857655008691613554307747695782812553843320557548006744537497008328905293124152997783013022532980296434193997477276604850674963179463022762669970008133629531594970189984390549353983712891977932566999755250775239256936708274568049513036878889126761340081542204310476143957520233636566940939170543643042879779987887840839179568594380294034897563416291024451446700300092099124502077396137060090236365468940488808891520596899590722488446570308565688813885808643691454438567453757752661291915644051449181364256392085004332011167690694692284381164084495872821883672262019531266012802782342620054085271583614710178470999151601335786058804412102685148160073873787507560146590833166306912129163159020088049351186049158784643033157882478943198338561232774483071783254854738017815414691894760390342937820554960672793515622043634507564412702630063557258671753938533583912189837096049044346271710784898544254026029739383613773485870682412993849391720378842332865179136971651433506298979661318629082475722961939042159612540181390995558850455092880162982191471861731343448006135073901556160032925622570354614378953965152018202940014332750645715427203380642603523817675579365578244571117270178074030457319280373828590512797391883410316280823593102080156957890191198990439390788469678847749845873780710318727327873109047209128991806962379753446607234421812735164024713672184499188170035941875018710979204031714277090984739780071037965652128312513932430061470136071469409486857751724663221701077027393925345290627599981992682281867418357830762936794843578484456290667872586319647479406467098917023288641998598525215552203933601375839687400842135569311481133976663026492714014716892131051982439081880568863263021094591285096066800850237835077496229154808359953628871420373870188187522579148783366058148837899220106106137267386115168938732166749513422566281931654347565038767685961241997131622052613936256434115998129542864870266484830795317839550502792498342345324982874996218693345694541449865286830676923678985648156355125401441728729014100612268129311026200714649630773300131430783731194186741283186021313417822513527863534368627655351671891028298548381603854171822675877860645175036460475278032202123275007100044981958689287253741272301141446867612517079187114535448997889228312211478859568032068604228572499041659474532990321023456980864538341621065725457003855248525256419993487760749599822027147531137634248960211636944498022977502740819761465077811852834183865230565384323048792460548312692445419959787717866411446859588978924023420487652921124088007214260312948955131279872683853523886894465509942195772061128161124719163787846769078937014107413783391924853356668856732591910021489366534407265123688442243187611687976660526014326227866966114212056579980743509039722867291144702081132583969011486037171193091870086711543947553725730574555459603615432211181937578160451010426052659496661723214720015430847354497109324894710820503562320192341559993574303289991743739611086913796769290514060753149577327451997276006144125126704847589172114096674520833733720291346192009315633261129630013587915091615786627774638663327624040530121147390409472378592969724550360830070293604422916062667316074038662828695086368885832239891097775005668542946362892187263644642500332526375461029843013256233146160869602265201298606154597453081437075402474663014071675621190617072092176970025510787970819518738491199814384503945496738982884434443365693938752393024292379975796136009988774182569120915222382184604834027030704392173227031111285576742601610147616176214728038623522861519569396464251670068925869039227867106730425471585927477880567419190521899678472643297201941344955819977201872934794921295384930009552829159195076343873532733281293438641602102695500376333387624898220679897607193127983823351163505866028316450831554928278194170832589303586780416069224650367989144461646411872794264163638335730838819264972215887133298973962267362405601014984660639796897416085343593595309839232544763875552100695833667579420378903122118063048463553195633040005837371902385987984552841657860407863287585202173752561542234522631428009930826774235932628747973492201793162270877896630862683975058768042473195213430102846227272693692862139276417839185335034167298479341720404429205163253873927530064761086064478891598826843620098634102303232782318552224026885198805382938613987886904140461880133252413761569906442194431308816571051364480613560548425170423576280139521335798894062330624424626283495105793884936663489605916013738292372001966651705923803734695774706500293675566295358211225909856578889446743925789725266088420728702400563827347219839836858844627808906666280082561891762507606069667106019802745990207746717849029580863361290548041304326514172513191629448294779483508686532528994872764822490822129106225064829598254578749211214447674886398663815507058573165100383489487266471457436326539511507826520916096971024410054831291902612354347742331227466097617066959220677348216585222656982896144781058322218123952689164951125108130729133459228494635663150767074511098628067573058352841402160277814996951139473349375616469173808578791482182043713853153235356167665859312721723226401236937296572666965196081472941206572020318334050303174732586327635730184719006290551562797248254572871956419606948181052466308223342266604125772573409389755534824320056503230178662759549946415053460555482550332527548761330763337395359318784296290310144418064157182222333249037430119693939587793897211834718723745466044365307532003588781436478158989587333203259459749085867925525096663153251118754555589203215207145329287814729458554942694140427130389782070534327635343754320249243380346726390788048274826114049378279340698336007917735654072077846505831993000972812357550113805729424065825410740500277479469528930495537708503728972172123492307530953646889600159746331935659996235528937373556042876000980863969764401816885958404821595559762524967644781475202361313292078428415542466046413935909567764385994088461303801083013605612442402347043662980622604909781183195535618539337490948456993840355274971606403102714682346070999856397471500983819077118403066444741235373894307568587367628580225287078874176002038697999192106745573813996811040772268967459876861707300640203091613313559229952774907065752223144079355707161744867452751126598172633358620875810979288915868200392163704116947930530515236070010736697531915800287636708349193344420716956231637694200062204079820574010080621968547216306221492819749043782828931208086815227037660548161989402060761095106510499625527620515180087556290499849236772065752016598794078987785188385810007972069876280406903186183003077749872098030542087095841484867861111141553384969890792588235370781239653980075149042945641581000880203914112575664064794656246637181995753211725778497240578182362841670328788784228817357069375721826801448699654556974882765110963580582907675972786716211176365002714476514992901544742805928048693209559719451689463900936153623407923085715353086236086862152871301231246189680835399061414352291119870520575191518551373490053385434186531032437637004254997394455443876577839394203730482972671321160057503631040481847065424959432869934445472979001456419026100823120142955237324296213558120816092874451469088018824316471634977443303066907013055893109525501064364277186570043944839678015900759635699690111134449264881726640812566152915895531806311991562045006120341965451344228225866817635213567349437017363834575462364465944684565099746017700161234029908591024325975394632648859160177718017652427154085125634585762414506710388335298582922853999168616527919545165144850144351465129462683402182787212658664281494973819037086154533253182909365815996948121063107546459826835388163592906233244086583693240375911583304750422272640292671327562607881304142134546971707946642170369545633222426124577157273149945112732847464240227487599175512575015964722739944114251902062871269589026080633363248123903104151931634890926593502409049220632642006469130615467209678089413117976575673512970603636178347441241960812217728221235715327657120111163963489463624777479436922654118355476903751524733024885174144251378375822437301227807246666705264227279279326361137098184336969399369117307610177656707052747106865540550609472539089252689887729022021054701567991388799665603646780601032809083260458647341165277891413402206607838315475813652035970647351702658244625550352717578982858502865429133162050165452859356230431588222159305306016258255163288073693315170862775658657330260619204409514247253936185517705756412500491863297703424329813472396073453571024669886174972339823388946368409273931096611086194559459909230083388642481540137673113247612816170267474966303052512805931965824718334679919966492998943631950493737257170728901256988942069394844798574637660683997708076318054521509714134051068111656036082355651111964436866257250467110511928896636703798969243264218871842970054727328612936144611912440983145806490673531523785451752620038580092998501700246826736766376594721343299655007642993098441314162988050290187485142177097839422199061898101406951473000712493562576844076141604553768896408619478437815527209614464626948810827003477421128664138231814239617521142568675402408505408093265968350125335442326365453470920605376477523172406470212088626244852421610996505527716476491253886152162072469032121111875902299948642500284973179889759781201728845224013292694275013500759279829247747073777880560655460311166970688594236930201197822389443989599338671058279747011564398955699423919966054942007388139487948676628260353218512802141245248067487278509193348020582672367699906787600644609064517583998535344276194415183032505226737975162104998442912777364309313408699532954563621847990230866566318053451905670223029589160113696169889008840607940265862310031223964920044169520378612835061863261730233184767138424191196188796155797852823343924056766444205632462307913489161197979382876762910702901651158106236618363707316028348705636614929254743340749405215545935488835398994837340531767415324384274939131286608077029078311179333228597272580235971721276436784068749456892163277560431366812268877825502734791470593431052989073201523259465007613685786602370733543322829578752693604259595962292775246039413810657713886103328397156939913218407170132957644013651008257953184816870711097733368143040569189425674334035652293361734074632097527398749684591861595412712060202029318496626264816763269990064320256236341959189382457761052597979979497162618844050342172313996595005575984551222954990411448417071326712585550126926037316685367582754739844734200384120187629037657853396405480697259225922370414762669039804594287356080205782177704347410115860120307160125884162856346613695238777662391881091922059640607290819496846303394473530187852772719568581547251789520695706892964100088573854527128507588673900819386505254852104113920566130757290691674261020363149540497413144849705827498695922089698068514686546439652558431699284139555452973971882537864137447664187713739432456094013971941957475578322008571512349734820651706109103060025236676372934224866026866818401821219632562284706481138627478384136717521063895532326755848598303246188398383692573762636358531278889977444137137634793886599311979469618941631895581942246760591242151053455886300406365892065330978507062854602668162122305544059762846552799550018857877838353049753329302976859289538042597362393619123283137722393760601901410092340504991833661639093629068493967588102126835264770582163210290932428045265187945211177852037655708874382577381035017592079588468528749386029103236607871399167952390702936780322047515425578994710049531331449709277953651484259972472803762731839842187579617721683533557745040101020369918832310140958638963483386324354844911855734265971454837619534121204348730773844380894385811391212318753421322547510762389825631021244343136101591007457509140476466986236896797480408114141888811387379043004855597505338140317327447101785246024785334092809488532661168958916262255659607594265185688955239635196425617315604168373629734084992454900589599694096833676435058820158619172239230186365427967906509317165823397387090067842800657502812869602738744571489320695078625845022526587556899219594325804644143441112568312623403654049735817074322540660768359865363547851915518799217191424948487775986668801513484636630997701172306236961411295443298577838380971682349170261841380474441205039476479663512120066389154410199647807865705054034324273479900817318502869305180258690181002380092176480473870802466534744163081009623964473468034732783346065754419850143423141471245143637592005158985608415735377349339610419623719190742875461053297985709780984204431152291955380118237674291620258210628984756746216116704978460138870090700039319956219731726231981237244466432427778499012192200005822495754193655558924144193561305773918612603486827771862615944883441527357558505882023440755851833977437341416948100937468149572652452551577580775424007065653633433583066082716244569319791081984448062001628403828063972949306658485906008644624396808190392708785387829787003028441587315017956310948123302382562206582543350410991285169491787792381488383190393652074139296440214989532353970844563860632286784090424119178481735367535713359293168403529291931847208363790498920762445543880204927834244227960046753399088474534601000668147014075391050791032909386341462349138213432066589166660814097931947575715094135413660824527226863772200340076471759282282500711128105661552285890609800460297774501011757570653448428754981247505237725782499020201024400812695878238274849106484011113529744057532773483469176613439750814575111611328071208438232917993990797966873024708509307480515117486678220810950312357715635338030990179236313526243565178212305518982762753341602418377268458939790089679571236438150311925672976990325553060599142208556754360432071130374501581952057824878009593474196573078354711613905666144606181885879167026476400749649460050642581492190758853094616896058096403312647040005782077561817079136495448615845164346582793995927802614949646894431386766295943760832957466103815367016118644875823322106741418076277540625730177086233717911224975359827088033490537501671133375755387500811597219474411039389466289950030008418979967992004101486258889825257665768643550622685949541656950952230350050773505391121236399846581007383717898461197960987128087870160685791271941606657408608318296241785961886703323938191109417460279493376715366534011038445863133189971150118305400816375756578825426944631938405496425843390331032659036158773383505278329829059857583305750595663338186829637211142637812583419972260125070006717716324292859060780270855993080312477515185601782019858334685236494902144544157696570752574710025061857867406157955981032303858773105810217983119452778856865585005727260887050873782230718961042214539350354176768921835098421990743751009839843993284452093732038162296588126829131164943834942895414984863188367733050263088107708218534739576821523293802479889963316717694535164316303354644680416488017091707768267598302863572576351589374085337266636263991722195939842968395423054053827053006319316202128052562786027307700164095872340469495437494319056582912385329953009055783534480509657402276200306264763521339776096172139584922072337124748670776923279902372491356523889203325612010673059547080952800045516953567101659723212232315486344312808576392383220811182108985193881319722375619598813076905891510243770720162035456697281755553219578554328544631930358203538352979088198438901801079011942241606388917053015298031394199340981914260534348816244822370188294340912370964008494806003540663828885830198783284932151171086853855870122747759911118137059622878742617578443839096420254434766258958911801679426193569730642937863024559446487937530964811265498290767909104403809553262468194930436897585914109200517081564647433946509006789984126506039460263986692987623967111290776251974754947115604905498794220869519028902690831610984786155982861323696088311115461817617277086431368198595649124204389516267213025788767379569131486361202011802795331013960528297794551023717581231670181859789322580200336191383391729383112469308517702130591768001722880149305097407110500136461594692472415220706065027564182379656974799894073041932674490446905959660939510734398963577885075644172985003872477241397230235684770334940800445732385688277996909175878367330700897895642320322231127740812282112180260351446040401385656805377208629788647273087699755398986433673420568882875822457408683184416479050373226827816315912816435201189041216696401821170794367549075093966286251152642181373093584503940367927155015816842249100369687684588574023193254379824668446244161220987184482032376723161093231242899718066395326921384921817891963116344960736013865410604447415575281928685055551357767777979821610444379162676281902871844100067125248413229973782503827465023294073625684691702602424685453406830360193662046175758196688618354513895371230283652754195603692813596112939894406588606101128950631747890444707932795606296698889950734367492886404016620288587840752540309669792845118401108007863640872399499828166420612555116469881909126464128467886438699433761830759281350423397576859828827049222297778884417078622548269433258153907488452791436265357182875503422707196766833945217392448058409542210152104373300982856964766163167844266834367350477094670224456238498080503812071603648673486282306720342803621139634696878116737560274906429071204243601198435107193231029647987661241798816330920286893486478663813761395749138327041328772812958821326184161679175231946969610164582777040764806103411654357057969086329201470543991406882638145579525204859642692426378576706235166113458958327414783744527858953323773886334518219126977970294020356153809979317836466555927936203563958903413764162267460456225682404807377159695476027063589419294316669240141167709849504717261071350193676342645384151888845756918986559536940316396441603562441858792934102400997472230047979281044251375348982968061275535083409619811579095509832487139529677018267676986358792079673518093073707162625490058424826585898290739719893585549792993548035375185393041491347677334109704083288892775029801874708588079442684331085645437183094830622429277101164258700544951614433246544664857863649639879186814220949846622805484161445629627669274637519229138825125256230282398584013628742277126418665558934047030911488040212611497111896481828423844714143909470870511993350798620389198293704732008116277247296084409883990495709633860905553689746854216183795524953987206683909885337877477378118658253560017831001046677936306860846549865835823055987422098170802349905652950266714926531682717589541754536158115583267114979512158662982540495851934852509826582515720575502146984383889544496816286814652696410403740123561701731208553088232792215557975324922207235838775720471221696276783341342148160379292646813565525041162555527826528144605936590556741781113192648957436296178623576459618055362926148040329440139031791226418938688691487580285892042547004606428351237861851073625526064558522454896989091300064162988799682913117702735228941634676664311243340402003394457283070080832949503286124553520772529587026021185514910505136300659935840299729857948281700055875408533303470170343171295519366947144032966753886367840217614200209626306215300520681173064242220852868072972624038636040613221890676487361203709640422844169969286292171090602907102161583759059984327244286595163678917382411857053213881670832437468581802130175925805640803536786370032196080955246196046597098383922641475854823624106300321589251454276527591240330174549806953309509225696272567165752071857084575230892739355791986566096337800894051092617816461637925634613413875515428311318406200881328173499089081843205305308334272684996944447485148234177567944137897430087271046333937375184968551122847546385811738533969131518852909352522317583462264473016946657844075511446952272044698893932593657372053467319528016622212444526744971529304380951553576943729632475350448152791219760968199652761915536041971631323402596600313428795882225164628821889853764698354627193190403523370940229274540863591059566955864890009892317422481112559462745423222656349019914560792812529478667430530162934097569468032889723250687720268160209682322592963293127277767079523121620891478165764009646043222078928805768530471117268515613905283087203495903824579704699394580182126093924095411942121441544708983886513505750530476059074000069472112254443604474549898044036389564625082658421630848828361638332987066173309476363587521359075281593685237315946433906760493367139627579856160126100068069116046475067135329746834299634265116790040967440543373932883651797127074628546897177652511093200731177753634026394658444095089976349816705921077773627578504591070414980755048930059676912844455287488466625104278928249952467933069998828250342721166259591760330638954590413896042318355101517209742620998717096719661262681319760778171163816754029799839888669111053382140560065462234406829931259473991887490913141879571078397997674694918391203242460115765528009543998391983342378981593398581116365344446606673085444845102050050586005043635725585455665362218977738684910226406862038337375555036793002700812492478819197365996839967088475600776584248870471644246708941660376070368222761868709264364355651460839423733650373186610826247038792911418492637415798438626805190915140868175483492881577148775023205668931085825983057507115714430234379849201998604432824629968751742517286473959374203584907713968637112321109648921983376864641461116972505081837339023646901580422265417740985253909312972810166303116787158540242587249651565031422403531736280935016167055670249963959202680060300464346163658976262419764244002874926260212569546910755449179287095898535798510540959428601386516804098173817955040319360910166004960743772926725809701695199050280055122818123582134746209495847724608338328256580754787005042756916363620605829572176837455749853434499720289071489208494498416419530741974161926385203290092175372972468434473060049735113626450066632240910802012339160239948708638822418342904076113030806560803987204519318717365742745410546416945535554421014930476029446489009053144843988761414086069165574134882914704634792081162068080196773188554880553422469134561966055732212978696458014476030254749841094690450960832870901101494993220090429340302892479044755376251244287185638752530356744000088467682582531368649724140768006703433283505333697214463830926339145110993820011499752572861650950806361685285763040482019624288971552561900831710337281248018238967139627488753268785477345882496060630495606922409031762609567461723243689123826665767966220194531904139442003421076951792244924565182870483967199518315240185715338527943243664594898181000202193318306000332074015141504634114540221971223889468583423009535395038027079301324699906956715093038589431287203323758167611154553905267938784425334852049047409740072830921444145404699863166700632304221944184225689900895534933470956017702591682087473358905913454811731401902036740893049628805194473879467918867064293956575260518991358290843195357703731317435647258931300159992475363052192201835793539780636212198985683532406687266064264586600573219362284656768117486384640136448061284735527628410080619335687714648511659218402823033694458572342102142720998821532612364585302914443892239020582160134245688292939473776682141313501678981246199840583639088545946788331447801929451933116691314054830032645106628277795524302125329840254976082015048360929895208148029654385755532989430354414553920906792423969880228240095118298711971122384965116083299472899803993041521004503029660813259679304815952091866236300189722856548730212192553795386650756144849657728536644884719312234067977993950346804444722264003525317408718601373494571187702685176705651776527495995590950338498403037690122551571858197224408907965069598921046090677726665851418038389121178752437254707865429236520100723869806110547669078420741642327740887229312111577348382902937907162314353166378520119002947294764859560867048094812968367644214653159314933462879532672625170034946098657545346800189245312058674756535444287014054696035093741498665342015212059013712871524453301322298586514762224987738371482806022448975531327948446250491627048123627873321681229309375551204654721810564951587185598006487257144781524230170975452420487951072185662981762858376644286864324701147768408399626854087247003497117071264425616203086034951579235569326408729912685930893040728766043783403241774401468730648441008206070957352621341978472670580726505482110488630416702948772234548737150591638175161423624549388295679678612349232598242555680374773442294318220200690614630195389595745017004080569008851089494239329951977495832518469797379986826461371062248103438017862896267421861020682641941228491787679218610397794553796527649858270278739501729382967313947667556380948578557453148678765091739958058897294555401975900403544729403262590763771445848578363017386405780668458233714410359656264591699621375894579224947757188808666319842609177657076369992849009595290428506526792224195048205598871568254707565520975235750764836253382938299224559795455247487245690421398116134148978893536729939683934446451146627612838928072139026102782117245738883748870919781471999669015248653919095232528807233504439494266343200074747469804220569284386639662615337576611724867115672586712594018573660967502919719160729866886821186645822563482271264264271121042343062136392947117857002078679520181754906385398996334641182255615462080732707425823106061576460582091518626326316996942742255984710083339299363633706768511727699835137381641952877416471173519018596143519976145272568240374716298632640348791127807208197001176558441571020494203464860640226867589488892455899256383151159033032552298096895848770436116601336592731778145463082566121524529098419546690456730091863940397400557379702966446156507333694464858935412997859650849851921608640942467834504093946265588611820015738353690204220636553081999609302815199588308676771168345459802883255006530097859199711652065420525862013760816361431534596022219065572489581907733125574547837656351109874862269915321656179504774483906460404118116340218966052974636135213285418536711451867005165391813035165824838547616323498170904975086995916061759257303642090814570204426495899503040328971935978276486517817013162936837890497583840369978735916228665864837931887735286220345827116195210096235476730210691876662442369508487741850857608942390791113675689028739763665555628182987557075675655550723649481098507317004388378460181942350286485040356248736056613172449864217212951235560818494319205018384906429789240956178619155136310513741251943139376738072014758264922725231031076084151521152784674857755959583189931359648820895523460195760142494412958090611562767321248766626218831577424164403601315848840410112898496115547516795672931806481997067315620960522888071628330705118273068836591516183607314233849381818344544971505546145710667746256662354685189444448843141536443849838720002923675606937394534529787487438626322928419472770500701568460217756215516941604567819075345495788896422647875740417379142656612855721762297564324017628582248053149358815892957262884092956363339787494419967559549903246986033960057847855095066881763695910106035405915120082352507413064813782391705294303874239703104506676142121874724619800215215266437272161954936681659930613276299211159146038365606148665132429791201828082959496633266306540609163775582570936391898695016019889304595240204675694368739812809767085787581159151222303005021283563815793833695069376902523251532338711440476695133880196491588694334079469414108766611980884292850414378043331496655694634510620116761412759806766589207749689736170468136239165806625095003622696143579806657434878304845994546301008872231784764534674531282747526231317744386929640035312458413959083923732253887517225052110435697478805583357715629119056132530597046907924115379139345859328052318214974948262492515809834238885981809539639728154880820035668711364658331000206459979137710878033324439395132753445097979903500751894103964268877064547685465889413769071198776051633628560631889436053151238794066470985912506789352909070869148036068848679029279995049922657760403664397845302782686708944882955823274511150331415491003209706335771207435772931412634169922069688960443513778266772950495465609929451340307176166266900574098003563569849048025078311770956474942064457912448554714895439575513601334545688983193034057984573535048747793478302825352222376726519768835970826064851880535419093685405042844994130774212586189085124932823249074671127626916362696855548486965697333710138156430874733127396257949960283991564320647889055315631525360358907742107854801628014437274770038081666119657506536313847847717091847439073444940950811036751457428249018777177946554329321514062255880357877453346947771347321441817174357832815459060303185855809539259672331954297099481842241126430144226157127064568491860132528752647667543845270107618413911676568172994604061145874645739846075073880147087290829984020653581944899908179442009689810763868210333137807091837773296845898389702520350906654892115631655894828321386210492007251266118620633970502391873797530317802267927832668337436099363730910577441524494616933913323765106227345647566940767572844519239256636438509741246348543057250865845979996721336277373505327294434943068393481881192109680774547797246963973486461817032040007487653939300839442834493595654488868381298972432666126064061505235302250013819042901053536302191250757595766705346638288690375995413290875309122568370875662909100663588540262958097022752894787819530153922498788313497958682665137176378077666208744635862679033149190027166702515964357362181766289953739133940620834855917909792442031441773338231143052333558092850987060727768633383760014236444703216493644186757653304009232938373675046130905101940860562515564151172743859852322947888163569873439546533502883156315210404057930090926383635950962615956749282724830168414066089768156264184302407271183386331671789422149018842350114039138636247283903362236652939057658614112732586130389982718111324544651833281105814895850064502337892852098575382069979321744907553448244766245716256658915127937913431400402172736746957463587921666931576164278717602125388166754468131941212874952856447484947572555117854762162199560116392716424238178402889495395845877169527414579158638466990665864846860914452578782278316144245185366069923079435151622031961630948342596164506486677243027964889452993019119571956770838148815409375400687940996812148307842602310724793752924415100271559282446438808095700776733506418042221506750171866342045877422176865470109611478507084036652887343907490058904381616700759540848408238830983366588356284408526355867242906482016362723043160126438716266248699852483292746866833701331444767465721205179222519607150684454302348039800597654908281804395229658242327655312011485656042479402122817231420848307586570278255273271021160974075934590192773280364772443042496208948369032178438002652567974797179085987648911838433387078728062101267692470603479715335419499161167149771116018000167195030490771260027395657856023067638687145277792284714874659441519618065579753552874527986426816146176387868799309226729232056328676855232416626014037521878800514959221651797611130012306993945548695737909557315183750421831895254634908053160673556052134032989539165803864228359519672241864706049991268159778132291594701011258551604447687910467714283436689024698957878652613143408281671930182593022024039051787988985724336230893943733473821343287132287941216809415948965146599738703666441345599890841530717606885146797226841989401635647040704831983665445529321616764445975393410250026589059016814687418684475508744821727806957680867966415887431362584482347990910753168498038830394089403447190861707407880684544404608031495973703124218760629416719245623283648604045004100741633194957742651319662700451752714065078306100919301930304696718565514793722033889998540330378113985825961340398623302714292557382645270838723813393621989822997718554251203920328697862650391887621602562259078158295789242107266769037415198023439148303892607997399327657146363360052664558397967737317482385196919417462613466157081916087996621508274388707157701663472635131760997108455125391405927509401871138201827771419681787814673664049654465563966138296151946231870250228364904507024001606549493739223669230536665073174988071458204173484309568653809663941859832965908863998451021705195011363777354138192757806947273655076963730636318238958821509647462206369986913436627607132002786251541935599946315490849496753526063660570665120466163056205680119376841044244185219027363003941747690987069341184495323803268688824111947525758309564388865345557858163964122393484753552900176996630799072945611165414636780917782090656676703173943129756841309564501616604470732714541348008620881397075545416724853827552601802854806374595220038109991089027391621320638640027040022162725601246434825221217029974355030549991663814588168054537547240329217732191434421377820235268847058486666745260504312340531370410393641201220793273030566665930942253828426632839600274887306626923433468370237144541756078176354422699076253961387644206577476142448779773065197966016111161019393387055881076861541021276244405979014684161140275908253252816363428173617528666369080600783385895772697041319271911119908678488036374560215261468970620728322427660238174154194674903199079310034797252931954217628346952985636606572316014577951732996908711986366481234024115679408018527344413111839938212241803930855459137591946483976795525937690662163899329710855646613004740276163112240500359962180403156904199229855700088194208392970971148982662248430169988813685579341069434975907564211643722345832867395468424713809351694117102634558464760855551570833652029851726784741903771272695311834813655140589861910223206691146819258492213538961583678479266772493153460224417287399775900928616535578929377788725213341942850341576421329647024617949414608982765939875468703319489928015193708462534577866026815212991969232199194692082217383332892295595444449882289252625438496483691086832509894200387093667086565980531906924688664395383747652869647175412964832161822492224672326865652757580008848921195585811709738813303357860245504046910255937759239542598092066242712262012672751184552258842012353671886360806415911839851330174338005366603804161088834833525832883259453660713942773057940456548189783960955367758035464899495870831859792300338526991903772581390816618735242291492402569819337563729883289628952676288985690088724733981875015346945405200607844967812077334209555895207884618687410870118225758491106038435927449966091914471986933898815232423164963918173776532393124200206804239742069151649683199785977306209381805871242744063581985739086829024283438392847524453611167089823852968402809424280755780866923507808359071755799529103133647066316413284674455419335778010865703092106123756191452631797177703831140402765459817548159825087782571225304449846409130609025908172293024432302005240191257547323414372196166207488959664267194316110799525304370615754542852867647294049848950377031396113821720465211389225577374983290759357291192677304428381186332653070018867920052372220677876579404324073301379209237424856662697909931937455069594149442805600828220535307605982529182500771482595635702869214869027209023044179905272044119823402085461534290146534640234390074829286358651997119856376448187661473949815726501374358510770392348101264285722985601438717437556762661624062329122894642165592785504175390731249748867911573323068664453629392213316117275929689803141204022504836500359976680136943915237719391513642477425575477782785808536460439182969406533169873704884212859577661523823551385090124365639020201808123582633342492100436341259430161194766357609686939106571417790474733527568195587763387593018344334311487453656868569597691670855846648802028219605696968157311787817842679078760225149705741472858465050254204758158536897559965894220056352345986606649873323858314721973509728488960201469398014165128898521956476983585150436418413673604481521370034944889969043410937697324655432887158773439546771464267820819586591429952032663933437418612129992164549508461084939496070765954235040620774501637217197941191743108637347338485146882183091373482889130217306648670946591732958247678243123183639584859740053424981403753763700037213377781101949473978714400880351786374995542297686526482127389935531955945537609369269316198483281782152668551092052323044444673733580193300982004492675127930647134291777333355038243538259091195695116645358865393042561198905661284480561729225705363518967418869641853011008857245273245926938799530780194862243984558462342805560520478482709312886580944020353587867248581659770319684317438260795415849892410629934384336026552943540888251446158135086283729758821146065273195196300971520228548154782759582040478864873140360571582795445820726820253408035461169662798194041515062888904937712795608463015493937782715817272409626701024658708066719903911208509230349672251745939878307357550121101512271629487033318985805650530338844280040346051910918733648516615103302284381922958313725120636325228989424856791086406774298170275011594626214100841069538868992319802663560452707226310008396350523803256943889674832527425085635978321266018796230460098137248394740276838338374910915042417226049784133760781379845257343330710583619641874985117828392820723565702005297535842456121287238562647634947855592461150860055816526759557670856982155890628565532893821201213895655578088478698156422454418049408706340414766375679981749243819078598196887143171816442595947473928601008571235720371127034764297779142330283152352544338761928137301597656798820312837886201528665769206470827763136908458196650479151417737463437065106759754846404121833232501784217014747215715423775740898872800424449176910512480477624946919003328031884043769681244756349190421071856883340873298563752968690456092695668835295375135782295728853567626858193159002811639212910403821063786531728351267553253932055314611707956294453861722001986449131171524566595916604319100960276169287807356254207586404363174994182271545835580612185832352343687624146802414773790282058724465381360514178123395203954744254840099605033091625901766078688323730534225521000742721618996389277455668409587141760510666210665277409936007585983083953289529028832253757486975106046201514527990800825840435746651384281878220223413120643696948647365674287427459015221304887918199800938705955114509863072750797756184137331359430629620090096873867801380069889184997776218776089931290506525315287944941947827046430469930972333572436702580457019395597424137766632114822919930879348641877486435325187692016818932578639846717338782391146687573241771892451778889441909062322846920585602821206289641818571220354186904805005425729856001901006693759708123084977451389634560123967567224081811383426839584891289168473148036673089858199978367476894686890475439744742049697837707132526196413948425815173447117164617042723940194059374189972591956577529216768885461105641215062263420509437666674513629598741883031467532274121988418334553798347603230869765778681453414717849936360715714545022773050994164319596607718798518558459226759315319222811326516976525488846390688413352457481688811758236777411154316697834554053890529102987347594795657650874002553564319056955478989794118609079045773933053825101136029540327584797631716743880327995867986252070582741217298318825407556952298167854316795711460312459980871306322219307742702762599931470831197388542661890228543410055491951482042314981258467181184285839175372290190985447538801587653216296185815477550664267061090041519375991360042509632298526264754648933134342922442458934698768230642198060841684588682386265163390777104695983603030672517030015199610044900616508005573811526346014678565365863512642573186427300863855691121091089762700595857167893189018623461100303058795769102936736221586929759976514917329605231137288939536667187591518319919797508200652500328387784604153913061803368765199321973396921734703926675190765822644730874835264168093387937116424551940991099308724145828983590346980753504590859399105172466411792304254272236252839446882370512656229918552187484129181811076670217068685734374146511437891517672146895648766729801165703643287721995560464595517433694637774662258053943205303921910935618805261164769972234466349839377213886622845753870215120885052894369270182637317978689209324525814765431473431626676245799629515188130375233686309206962985378663291083403543525959476316535663261422726052827694676637668736799406299965002050708596735076218872785546441822642142517593667767866658206506257145111276420498558123918997808171787925596820451968675515453257505348394474943452709588148732808495445410813782343204715948936951183417970546390236644802249461815196552996389580569451553110440427802032010774563785742554149847884181255741424174284627051006101503999866416284729307589228853643295659221585927272481706406428509975339374871772403477791095161333504716615928215902877806921790400823328263319781330462282245969933943339104214038821272939556541162745026708843351326309859425624030846101583979091678542637554591382163468560278646417794818941460057581499708399117244060492108742437576384586418927044958028919655439693521393058271048309703595113556179439215347544975330430095259512698798088946992126667820967379182468508123993833727099182573500998763048722961619439422801597770288913004388283157223442223482346298804314778558651928364362730431067246379878660729925350408104696694005187264302119004782005266437260322172855625137718240236959232184447076747871648613150600945500749632613422520464830356964520546312483683864298975943409822047257071169530411416199066031780506618804430099291375692232035280884342435849599667710439039355594899027195715042257249292514444124992344857566093503262292678453177165328930528582503608430185116409136347776421448606437899497590654306347419519333098812501591716946811142584279507268836966773907302842441951119326949690377978657546330420555294178015052240398944679720998998253315154343911229049151789504866089986370815477774883999415368668818321492954120114409527719651074890335170388424860678247548962097729582610998395210037593879538820474169126989608405522008441935293587901568790121382738100466312452026864637149016956854077152799236165272325113501853257343758072283244490302751091338078606391791935914213650016282909330985604211677767081691205214067898472442775769738330304647222255884879415763858339502706554534039430708492470006371004821439366017164033540753158156015877642056382793792046061625410152691338074190056398884126178689101319161661006237461366893059847108849778452046889388777622663115190803681859525446282784240854051510279193371518184281750228384683660503241040469427721065712643228563563409045360087948204011790191578230990071057384959227142891273845069673832102473492463758399679533704372236796536925104305930186397800071209913681224288176334450947916007358173924911364780668129404587651910257956953643042418067717346329611249983182711224004194707885587164408570167950531438644822014063233076184392013088736372264403799843554223604310236262454205063184933263732749671099451749864551281363046124939877265114261820344436303732424480577048639601229026010120266157663602533286989133214368823927937308732384657155480546240466182447998526992533245245599430999510081428773855252882718682738379366308904775023394248057386603682274852125759677407866887369402212476667802745846382583903133997178682210663561203225640814877517563591285944257674150783188678802344760994011007932469406403985967556628337715798560532149142838695917800490083428460958555403792597698990318645492172304203120309107491721266853942014243801321374072556939848775730078904986424106872088597096075550467426454432740480816737976895860774145271684358848111752745176252329314760522188954897898879105534518105737254759635301718840288493409308948174413130565286169174405825914260957995452013506308863136670642797917864746813004150109944767803433185692108552430744503956295575341735946708807184866253331396477483331776826699851394978037921780663133780192281207860186694687057682519336882176666171704227755678225385587253088105555134489349387847351376819642787846358789702700441376436735503708383596036486391529107742208352666254007244197600298975428644876426367409957288431012442979968212314479809868018830142718929353965564072840146783650935725942403909977203920853782470445577515764940604333536675171311400798825383292274039108761586954814990116184581123544184759289932301054498960239714388741409445987180226279276720165748465967600045184550888192927016750704517609863217795140556119407843495256499594611903659673377406188810406547276190722427960808143941708698446243811686379629950392158989089623481005503966005201238146671284661956786818189891853418137966918735589585234156283089431035009311230595300129156323642277615356874775973646939146046399708433090051331442698113530562692359293999973771177525390653689557903471591367695919127968603170787071777762187723725652152881796368063730632175665092541338712080675249089082391682588637358062019364813244295720685116235293822004289211292699106612503365561733299125245742382031664349603844381590623898876755342605462252222188540688578986098628831924953282104281030503141372143726617763078823305167385797737790729322699693983681488176739143808907720346928293247926064401220105114783972139547218614504010216498246971042237938434030769578050080634518165228350658792102795194802493064875951945676597484516948947632811054991899703256360909348223168355931637347387875931898578873864597463158553366911187649069636983016029692787567331010234258760755295914379942006900741579507833129235419539960037112019223304721129929198421611475843540031903680512667435070513339791207897569086946910218884705154778561454981264361909220336861406903457589110001367247176744467080507143355955473595487196670346492702645286284530948887115143148635290208191735555115130897754931920659861141921277659770308754296135882660775771596751313306373074146839245951244855054441066297837913746348838536831689985927334141729064260118767458642289954355337256022093672049196187242010302605914336445885732397478827783813772234024177795699763276848909150569269010767487818647589137319922906161833082972246532098157123835152130875479924919931840755724436952242117959884784187166752108214877750559086810320578257707296048469204338212358278552514245048041722742666636041030216791755270518066214738634487079032940916765810298158585144331817279670246919985076341383004359649201958211284436842059145613991659468124445365468798198247112259399154099853120173562427242225659200644796597231807367974123202998998380012357453172537320822987525126164759478207772531528817789196664821082336966763331509804518790533678723661270972645706503576108244424911982034961469381328141164078714251492390473988121986500312508795625373166556502182194092515009679187698106108328343880387946486446815095941122449542689515316040949193784364914649963891100122455623969199899312970641061909309422432519485613067597663887788423439199818915007188328983517062299558715478663460670553421878384466706341791189699430118899822046217125942461927256220671092083046451703720434833554389091414577318480141473836666881492303614787679838872795872452069825214171712116720442887673080498699725850927769843632512225038701834094171172939621001448196182641742104684536913739388446987534724635461904065648106198359098913778918893884356835120074206958834410610522343790747645116511298074070273986006538127680044778842699731596734389929255901528237017799842290393037512723396337006911817354807905635810747165174692656616088162988538637941715047530308744321370450401068968178692108721264522204682627077131522847479212604592313229031877309541887545065809182178742269072286336688015631612880397707511415118291055782018722417718987002811449937757416925020641229337133951409002549625341158279631454001599259145295803815088720844182619080800752727662723463549017762501176046352973807207235580153142961901606456783316099699166368760238465108057943620379351705121759353055390343000493393321914086922111827077265004866996353162569034485270968123780140705568043331263730721394996585176632956679277265341284699918899303265699705079144762829325339867605188275039284035848057013014448528630755916460072296155106936626524333651531200146171280807382155260750801433387312270440342349301349107784876194969566391337206037248336047069968375243572129010071534716039424484058253103688769814337871131038664670262326463606961229371845777206479674308236714222826139631043584707482736771232867535561872388220854056533623026974328703627013660858442625896522401588711316634924942836289737005036228761398139838910703810543159128869396392776092958125450865835846791883034498604757400392853825802690198857260539008993191760112006047560325498574635045905714595111321836794402410320445955939708478175472980386542521148078248418729404244023174250744166310305605521262784937660508175041630358800690268348289895980339713651055012434849648353068348604452009635872368553116808524279395798892879325420555626203796514182418812353192656128123908882251670313826667399337455676011831329884192053108386856707002941734386479898300799354046421126007494333593050789716257772964467572283664248774883531883725560205415266205193992639631261324741710124537581767244213405633756240266582978721030349486072647822939923509289495489792901737948754955512813114860286541853731029053280914520423457370412566887289291942969449487230713353339262479138299113080021066565739895500082264631241993013323684732573588381431258773592745515193153780301535291780083613790001340694811987386261258005507744462307463411821396368976050265064688994949663934836384758918595116497238693110262845598837769942191089210534144705816556597830643861933950329357428794271154474312135082557103053975492364428860167116188768395801651059040685609854977928691357230989249124596794947733339990227927339796963494476554577935624670274663682947893165785376152443279837128371326039356901823936403897041192473022521627306507154328575931567409065685266879028666629636096680439813336221122839480518033073206173799189869134855241165164778123097552408452194921541590510357910511706739688635498081378467579319864579240869875164584301454463362909697005313874481417583399859234758748388922894892267871881941063410456458385802009902707253034458609336520683970421107316022372658096439262072326405785936049593147017256532170350787190209756050873011207105254301233212263015022764066027617675909815990082310955862635005671923621045171537765652774674678273609821145873494605973696287765308286272926133585321907122789482215717112558667955775887692411528006908141313649531192615196864362142064586775285951732844752015510404957963696105348397512373905050600371077764902294700594415415595152449626621872905140121560710909437986975062569773982060726193556668817490818527436275243268798560443885852332369547801664645868836029779586133941199247451725971666098171167919778491564931407035979930018348855839516557893896819864931087524211138555137517628404268272516224254039220750173331392989209881373402545550401082216774007973216772875993565606144430757028988215373951717109117630635798947929919004127908217387200199844808277469060995073832160073093760976215844229299197295896990924861345633599633242245466072333979347853980822451824349612471569356707556054405806315919726060959726980965354122914334025893764289762524311097318677183344472261741426331068212685734203812840306171345631377198785230450912892932893412216044672057966879762799415890175509874019584233875304441192862674705296703750529254140614466067164948670915127559284765490204455920274390227452274792923681648704980422187377937845183246926927562351113318813296446917733787281795016975178600007857007544843344311245812875315747602669260605704857745346187013713579600315155142636823821877069765187652538504902812402770176432257215411049090917808971165783600587727728054205679717569867386085265607651016733956180108590081368798189370333355844684824878193315054611504655575067246165278599454957281434382324355324017624403834678592734787583708445144945559427661107041415843135569421882071100605011501754726090789196440985894097685074964774434603666593537615283716425297677989036396598257022163014980642006320192419509075878116610342684233630714914960705490716527422608379636461966916912067179625293220469943655970593924735224392679467708359055068719271261213178541871945230087074772190545407243833058666731017265985854867468275581915846929733528153244194522272933988699113323888282926104153652533097356271637322329545678812028260161690891679053864052005065414757903747943851311276922903615246711203165559102819389820761196211678381637444841267321796120667435682179509094378906774199575779977414245100100153896566942356617998633998217164460420330434087527119023138835659677879792750592585436224444082288202726756389919770117703650734115311237331859749070045691025825549829336018853329756062399584250448124340793135127388959214175472101280824046651404848489282947233216282959094136258743758849578582373821552197518772940158451274090080519766795289891205732607615664080196204012145454902647341746441319858466424862135526571961768634417886286622169320672431844805321980442877049465194021623542857728826007891901671583415155234126421909707798478605711934501476014227822249303043933378989380674685321407916378862241096515347448356785871165305842283429631789100030140789521454472342024382752569801131597973785651999851422540195771038298764556909662910437595462260692910736087935524902845056131279902636914168929281033191769982638883557017537767072716139600743890178618771563929786976969147184576987903728360586381032332378119294643561764471022909030420924773913111729847809367675768662349721439095052210126930180507416859033637306765640870031242727460299891903389095682906428085214082549162977417121246564894166742426594940645294944199707513392887687555382798197425743244467461989782268594538403644917683848466198996972265547064553736122926761963258964032057130426981738652827275439615856522718186812930335270881374444153774573588086195411625998165193634307567523207445890365427062939638731106164772044479308830623177033409181191681809372749822104098427232629401330152714625803027675940913081294501638113579985791838743242141142072936380058872901321939382400167634922858981609187387311010203680008855010305391824379950021670404880455524277214601597573052549555727910085896956795370007265443971461472361626565627406847763948468296905044965153301915695534201139591636963918512313256545867774920335116437211935035722605476415715829899162394387577609749612605591892648073439439613886209931607069688204645446085261027351805144302189853695325361603700976011745186325886399517292920864553961772805279747114251310654795332136085763774998060841887963619698306240449641530134850424495406923175792167203065479487654226641272200327055540601024621032356306985508476767056244182117458999744207160133355873466829638104112783616593333989845478233065485744269282022574340344082320038446529236914570862766954260198650068943231169422109884094007723482765227042044428737782089944541759595745758986819862410601635773805694238402783759985593085475452958714110640812129912099243896452721672804795533803020830912577735775934354042004835436337055166361508583698277591515138062227632667785505762367768705013606437845659264709092677330060068418417515594659676578367198338663648337212944296412107453597835672794914798901659889712544114832503929149157889885274585613110070770135605286042046449849913419623228666609199602935183457288665058545196126537059515325729982672832918499480190847967664792385354302314429136664569777844379354812884078249574678530493110179272165385026050085136579112818020062155727124599377900892199210591281926581074547717158208874359171930569033383446039339744952814827600345005702825258315260558566579057145629281803463195975875534459666212208827055434916595753676912718181081399226901106995117879597602909793708422856010243496493145848001640644852229463623527101938226886165273606354117029530143537762775530908553790876595706872971311132768053220315929881126766917771831779178712570835834321348687520089344933524692635263577657861486241515986218364954296351979278042393119096251850372332750700742499237245580535441641048562956287606122696064517712304012446319430077244011173224106376266121279775962882596872726792139102789775618919119416741228420745334154391963868258738701200535711405793346808054677039385590152985922405687926829032668854493034256635831697359792119898553763028517397968162427985416447374381375171921387469498416176407864078932965838884431686710452053695439794953910503024761817679923722319465919836972398497090561536141327208523700794043995540763843637247767056888411074737716899909234177987995808917070241678084809084582731671495864682915599098224698045073569699506159772697252931394132368336238015894234805968474545432681349664266953247475930741967575691897149887953917160932669628396778033036416886872827016075758922488923296277100309316899895735520463693388154931896571309397270658980631746601379132704707561939703107207582744657162458578893241419239494353506174144152681521521941787417710877489726402554678927270346216459412314947640531080627683199072884952251294122810903645353034165435351686554341572918004680964670404511789249357231740968577478419770973821426868267483369708034922696950067680717730757628942785002480210013060417172374965984578232202591416419641098916909495767275678041609411597624031344885436241715745657399065440871543207953595684343973222709873808831106550001599680535564676734209779503466704422920219429246116953074389827356098259292539898673133263187245236323527481805698540352920526773890109435879324316817993954936067691904550558001883018022090111862809718538634283207278588296834647347133159207035142319790999908676013778982113653272533620345830602862472210567935608178944360086746349354066801718157076121336612855669353372314141881394888595242500159868726515926667974374372765405852141510691550043477885223892776349199685768663944152175575566818194622715118667888671728015157913524177016957912294012202400446801941974300100540299710440336207787072772296092037970714513096422960371047659788027684177382864886720792643873872524358183718441761463212245582832899751365735832667252130603345903249017285430614570081053989455738588138616261435536980013068349974998347804136467360791549468191687263893005872220295076208470980434832217243825035674918796254982760681908102880785379428029073597435525532802252940299534647933101175491079589549192456058377071380090555030951142561219340507029073160272460799852578665372914508005492785393962824749290631026201857528307236638527917992042113591349712600313635641785887180236207286815337239744025953022586978456047613341654893476844393930871334599371178609374854067118377606465441163346760930051290763112877259341660461398677664129038523483300873518105480229870758559517618040099046248646892203005478662401160203598277826226982679047395868858068142118825858103590503500196948066947288943893479844357484745556621735427178590722594663160522263810892297432885440816948622818099496503606313854633717679864659993762332577404758904257125926839381676213372662857391098070908829437723816154435391357108515188742010245486158368351620948352552851166828829866229576893861577492563152933438353645680145874217852267138992800621189681481146806138059384849490876734841557462456017329081438238387123668177925928492449252861295092497455326858482870458608465186383493609283366586325748967884566547385331185536558637587437303983856245757281296417345210802453758554649615308191426707908609598109922526329333506890247682350750698604058488369950925249650157207078549628841850166282016797562651846653270768635628233492023044320392741004181690555994302274860227927369350522538168002838138426847066477565599977735911292435576060873685448527017045199852270268072607224567971147818592112274572861959837695503297722608344640811469931345247174169877815802482705256579937645525683736660605618962259506856387872126424790587218020815259851452849250290184736304101747955202706082760402953266553036897717023592562835708400569626544814396199017877861063155048177569520690718575868309575730772406530332520939246957233643453446700320569593561438047041744708560326507759721394587949501887349944050759742749258015326675492145182554258417025213819171170797402229536154921952242308114408770612831531650632867221512372919797127452359368320604201520048638088404216521269962288735420368230934330225682105025866131424299090073106234846600034269080649786085700968196763813814964778309475725532216774479426383995420656157778443960546121288327301805113884366999599797707898814741297774249097093989795232504799887091696038272829387050207423408508124350029615463017391157349134552736573710117368301537680042009103643792698611385356623592471359138438895755386280618884688383209728372259984237184865608164124291500760384847433151643098333378092110188128609418500564035787536396083028782207862179629077028331644727292679808413658984655178187115744550975101170079725865249157846619592909430472411681363631830356285453441251445587069281184390601069304136274532355481570633620414186914951514668552257071486700438053141268679533470746231195704583331446095062337065520471739894309356177954715429986390747098548712740807709432288409159864586840460573533639175265043071350976476300476577440807697398898721653337707090564828277475633500872258279287441848828674102182353431488998936109028445173526494498203086838907344510381082805963606286226057592982386079787994520530629736198478031527086447781313218671367148820707620734265764269631862964985365562807549530276454281495563084848605162456921527805841568147777112420937405352261001242632671449657334143741488931972550386719829584600516964080611989120476531550032049473592758426628622013407520077678541562497285265947697737623750248366791713905053887515081667355214022117912896319090187416077945573107197443171283381859833141710303722802651904969558421720919117427724252878529573605800370807590943236742806529064592919519048183595061684974682761320710586989802370425660547589363293614065715767672327822421508665547563305046797091539369992243584943053503828091835897568012434028043517968712507529810581126640140227884422032323643990458438931354638055862216857301936848404905502314750928006395711776197468307153407301121677807443528309564680658793742252873663463934980203847974691817897460357170684731990084487585607668897451926195867099879117889180209909472515020755803590845518299704358292695148885504214215638775304568077269155676572450890172069483913490270222017275387634352789234486903304615087277380797203119197771192022873177820618645768530683937548838056959269307437351152352231027559676721997501919322629482895272931536188970416067467206575848494812568855182694287488918594292667131844987326668732386164182077869098844699723515843132921443189942314690563403323628708670098974206243797750112990358800251950614620367947247022501132236165715368916695057370406930629326483924253933637649877806566549051123683551657664627722134955702139989596712142789621448806390914583746751737349913449333133403203753454317089856469342143863778353810926247668255378634241061310266442089053233086564806564051437318943998726559668295125254449850900601466261280958003656014025289569301355576565463084453333633697177615377301794133302509174273260834333808328096824255048883272020850294454374110445761507399534055575983711881190926639733423510806144614159009416008714598533851947553981345823582154157750032993861334735753818150383423822098263217785631669080944032526150221388198036190156719240919857921386246865105125948130634241702428001894500068507302228997741765089041874781717181908013207634654572697291230818095941898233231463419043904433808001896510314780218657030215030605347068893567953195628352112931429665105884657251029515899888256769803679290380037970605527097091847248662433112163574776868005195436898430167885315604499312890659350363710889849758484313729357387392590743512309188840773417529087570256885910380495397511950349862962943177463341740707488055470557588785130062925953111973575342785973499692583110754882216482612380046587107425036960886883688341948938236295525921673147937599191436940837199116519455187378080857961997189461455321292608005508031389872133477757203626611519763779126476305322874067548229444480689723886077359656176945962202945697510120979033500518836030280920787711446170944463074928502127440712703794942019910645512631907482498249228256288171241238959333064154948602519464532981740395658237921394574090245425475179672184090415098292215839598519532007288801504397275250796064359513680131611194823751450624045948325777283179681354442513301737293485307874445542671286065917001595051372986740411483801326609840614900410368075345811324736496527240899216326639754465874979797774542592623794383781292471844394333713072845897777392860219546571312100252212495601728009294283505817690004642661864198089721912243139106858907668048170024757040437956231943989332660772112519562357415637627018886374040120066232229691721019100546248210265930920695049511102192662057962937576732793741113735797174509281887030859936760572912074864798214440527277350368150759320564934353161376290169358836185285075307306286365092580338733068482004545497733351357733384932825442442526361877594761399041327110311155862508710888364800947620002460940141257181878486644652594613154822220102656204721757054081828571799960770781268267816836355490374586702223780230595998018826592124329556614388217904863836182099376368095916374274386111461496615306471447963696478007520950222952467125989423263867813740730478044724494797641349910488549691723328580683298539287194088422738417388202184266749288964033736645775970993293510363630945914451480482997490524273468391366505181527919831675343013676790669140980818159299310766196253147043726938555669563607701949980383119977565606941088793730884872995385676724627252633595726439389287812554380911969684821695900333725469341859335283338778355062610493229571247566990724094070901650902492831537246703849366571007926500676872052440885213771864352106548905313601163771400895383791135986086278372026518489572269967307476112861031655664726975496476813666506111192769083838757206106152373566264189167434026067471962574616163195151805714473741909355142365512152643717177959749391059531065672227091348446795281890555289745472540545450947600739142513935588212434357212517743659387250947015402225634458025013573129059712685471101111007717686029171881502478302122378256691746863055880240101878200927300558278740587428731242882117768689622483056288134996664073376362311200673860202474873990124827205053797356692774442500295538892399792223641608688556987373132063661910330109531464900139533123869157754353460050174789784421087432497787473747990194776310903220415799153713311639948281400568448713641912463396845710779064545113159379282301721567486973097945616320040209093901355005820409446758417628890776295224804050149096472454516449267297243585845121143351426873382536812768633020072795320445046566482633737604608771788255623039214659969755767875938709909670343571283122298166157752976483184351938301592493745949624599370088415059752887672022254877379699559890297733537025835548094922863878729135812134941714729101793950176495473544171622283259265864870554330356242463590776008924845397752464131481946805950085484833118367598722285497928275795398032687051767186527670105077009271458674208340296902220801738965051090004344568822502823001782058260293442732615713330537614646040305489905258873730072123298113156398156771684334564543645373615437938313540313265986039492566389196047321311495177764180972350145613523900853711904039431271207477023569652634482988108993611681933470431876647215095486061337381974436246815811767289671880229817144122754275028289964638505624857209119057909319560344305516925046735166993459199605754697360662872471201501797937145548491891430790823441326022869472696206902450535625037455672142421519950664000733259192298463300162266223264235106495900341238002508578063756980748576211313717817407268060198955699582738544974179971557661675126099088600755011827728091279462638403082086680239541330982247489997168362201361867726799861511922311376264617342684472125577057075261057847135463012760517486873805533736082101420868994859896514113715156358340395082478296252156558114749676769416779200112741183780788113831744922403033253327252737605791259602178638819362871759805189971948326604111374271417815014593292531035310988846257501715051334929401840758752316851126696454489269501532726789281362381583122458762668239105710372207207187655759785042073173599064665510564297365614674778216335971110002177916706378758894131244169811374474566107984568833577465584751624312167796765659218090980090014162888330612345163556674813933395357867733664624881358480629202961761418231271146148520389174744533212096502077704271611516576256715260053423034147660561651093790002744832084666277621854162647880658953607430809878415110451204419836587418407119344005728289331630045074317181036603906542502423832323173479781298546260320945099748700760679121651623134510436976341311448062200455300293215619625324405654264125947765276585329973368126227638394082382648411550253134873461612260550262782386797762494701012071733511801314050323735007087013847193344823865828208704918732040349857897520587594124917933826329006119156201916479030738499670844250805141466969837739216171276682624153453028132298858808025376300276647018254485052341825587204210486635880487467089976566063532920848078411278262606857811985650224062976720605510665003176474952914766311850748363679108548429820490895532074997968583503943171777520307005741997930192103160174034550079826059707149003160803909990681260347423952938801677902445891580729097967854966730544171365291872479665994947702276945231461678875501885485731812213474887006856530121305759756096899578678086068374166317254906317197439858966044105067104267124998915726162586736359339719585931708114465952984015038820315144118047401370194206763320528446262160446516664298561832788671896567824569535187613100513076031265103125207979818744861607457234284326071843567707520146528969987443073161265118440523805099117108756365805240985698501085814306609303768392384957646883500016488574778376209186748659092744192167448076237057131847496734146160048607425675679243543073630020071521043049864659242845511138744171882467851245518027992557296351472650465006525331674333433001976363788282027724300954077745149198599647782493995344723362087878047348992623703804022670626516506041312181952051546519989252750743176986216102597072951093076349536915205086742739204073838199710263552092585212613454658972458948983618052646549904788868137615779061143914667878086851760169685571230394058170467714703853720582759592348730129242374364350415374109190026078185296496759143517751903102204583612722298000745344718345596682306347933850998897188989362425824267575481663635235465188732833536848509529149174003898634113301627794242491477649611953670445152657379315789840603433516389170553191690209709919893623345030559234210506696240082787538914618034274541865255812720371384004044166491259961269251020852833380283988830896158946226574142290090410361034029686206595904819156402268664732460491677923710103671807647139362334392437654295030483099799885987367498075610388137609852811238899372005787741476642230425538184340447303235109296727445587032393572963042731061392198254874364109301541413667362810492179592195799901550937632854372033416987247684355329120410691612838440162103972446572785231555462019095076345106944991094344916896908432408283216091966692777708780968116861782463157083108643539749077098402675475064758308712158008189425852085666473655978329680410315792868147293777913005527014078746728201185662511796659595740204401455859251365856487671500784776077870664694846034558115566698831294719769612002529417120716492244544248677016011821895580182338881580906168050010370269684321196430495459667412797950172184827173777603604344146304957051340938433610229870564947749505022721316850342569716707508207474146009306987893815616822133043175024237521325733820246036818731557251657102452867455079649781406137857624526066744650933447443114485236260178686525664840230522282712007605524011283942203806094894339897024229393259206101030640316651938484005765654354688897045374081300501427330899856735503895031358995696720712252224530880425412513430399533195672788532335134039278169810059659323453074769657381881299547497850517391201819319280086171715800744214826008674559714490025687805514430121233977407000767067393770397065321331564955920262063229475337059248642501466913026953114062893540298442062095815634000561809993544264982874642131997819509436969422534755427226455188571503359671830177472599195448074386520653312875038611612064513888050761347493920861656540446426078699175062463930776346558673404741790051586978615169986852224337248179384494471627155803711758078632293985381302398034573138618185473596173107047745295604194444461541304266276687269936454785431473491682437547034756244712286583622432532624309313841303824434028210346326551068691519896685758757879618820813117294062126581654466808079881513075055129727408646726203552499555605134636609542328422507626964279855463793141531590840778327220434271493651854353057337410146016944301026279859482997913654509650629251042805101848667801164869997590585234520601416851197007916613411940571885232566311777127581315534993456957812000441828285183347311319041419063548781629562209475194569033004790062925898721435779584264275869224178821951706399263620210103027694121211706560553641168159515834151389115863293441867745495025906865979328780784110839420160065120172419855308531567820851552291573021635960838597657750378686040309920690217148280387896697379502562205257293324069715665244319854435052285490464930575169099720557012016158176280122506056023953080629996384538597987021308462976124738932944281819488197363837575651593213346924271914103171577586907035899284061331086005437908609939978716144153967517788690896080278227456256848269961988048448021577362097440853751922662898515618442551342163756577420143229447992630240843890341735537850065659782378717095468197072696505121636721392590928816990161829112977286487904046091371883426964724175806066042269885978758398529530778983842479420416460582790003072281726838640076343863795237412034459307683833941456568714115752457914334575764269098130170570274911888451041486096461692885243582197587543115996931961121247498900246380839765463399820306469334171543608163119541369520336456919990404970752307232526879772408890331958288902117311987089235772555507507935811486796450086637813306123771831259738608700017981053643082213299082293766489551837104404553306470972901049595695111758749806076388171990188796837870164159661968105869263618635208363595948413960886382221465981348015027782430921880065499437060489503253318549785684932145780382708646107981529856417191352201477003111240993987343280733293454691942633868748714813375374053577185327583248940549303395972718318339830509243348347246222663049192010778494603888521672096068841306243928570538132713618796569903923307780637891242010731689957304477952393042006558839221878280207881469902747062871640883667043456375768546767325645639724091651799864158646492805181656096372481787388699086243237144099610726533629747123014931637378755763696905687539245358951276587693416046984744351537849782963147113182444586807772063287741592391616825142992858498449218171827651518562042231277934394366373295391129960842407259378594984953027251588558009437438851226503278425936424051993878576086656748535595819018955248845424079601699333843842187255643770028206502189521694474178998459604929382765225970915351574020025834666446031140144070500040122952409991725474725557307772004001083302001970948704889845400599759339489178808382200415480439841515828783106996352485123542010576715593663692210877020921347297788554920267313383109650562323297532313316542198331747801504687515354613315130813740860969432178563327541546495833356907815412461868971788604284275148616743300342250528810401770895999947578335401302486816664898768587428865010364259465457211472058357255550368548296881374689595158455195913874767642247358357712749329018355876565411648952587001665780578966875267285379594504567914111999215452409378328946317522882480220138567937607109344126137036502348101826796985175668367904508486248714715840166117377543542387472763386403448006438308229711737476843058933050839748385313076004388335103136800007684293663934022363062577794683699154563403949186791846179832290115266549312014496732814648222039921178263025968818037544547057511931835616231003051734734299728381331517774262452639646647166359064554326385724269581085677793916245818570301628850270114930928338027809039138004197100015258076234160852003867250962246142784593899797055303241726654969458122497740966144136449043939088881910575556046428128938813444782275906032487676728754128110624998225369680852701086086051557066542187042748262836410922325792585458488695843959801091570756372147549534263735162787678644677839058367474014352215069973215739580605085046330632138996452805074817500857681899280771966057840086304997273319818370847510720166182385810431901803936067994970022993192645796257803717755859365882985975947789700001233281049016905947739486621468560746368562624488898180612510431070271711581073548476577952045078667071698880681480149687323245121349834367194508338258176557988049334697033977713661392347936901364976101864103946137554241672124544182007440609534733509890621926686447087040539342676215027716531942814052199650847112166456929942947019177129655122991365162179014225191898157335796528266811427132243635324445189811880897665553962307298791087359696656986478931535881632086985256043326744648543701335417808761046378208716859349735560296241991529188990240579905453910318827012737592604382150371439254420922566760645860147883963684052921783640313201764124622266038460916040502377257629094630918352799016435273584568948016587512205037851498127751843239837867635326409339126166020028627634271787043151490300902814592128267788078644425543683833676673191167695616919385218465196085177742000714733374643332830377124692571691777739816278267923582468423226261444099754001660337516648155410036001977706388390680001748273511119695105635043503005785648000290410530627303576462609691211909148623238918973145317460810206861295836715750970494017474151902001733323804660943258185006685824276115319467781132201363600942768004618938887688145324057751971921696654111257487933536614261720276903255741312346021523158693862138531044140055132703353307820058259786679266227208627740414836808371226549723938284958452187854810140498570875962790204233005470624023844793153769961332843395524276422738413054885843816302261184220558305766122792188191805575411588657929531527493644771423486999335793044436907283112972117854898841087798261860452001684317458131930438430136780280608355732098507814332971959030278663073380075221164128407229912544179666291608402407877002473526634506239902370611630014773243030108254667426732596270137135129460102433984155457989270675967964083299335099985688740258685095137787958141092186136993001027614394370005369489681882240944248720741513137000321325515126825168473738147759458015252650565147542996616021155115036302229226259480894902309943204639970701549198659122289213782302446130013933204885785002415442086354636918535991898973655197802109191585942127143804189852933335536934798476203572423748083941401020267295626870428069145911013267184629484992966310686047549173767474998129815009655946499995437493779550867693485512699109363336665993855176172368792601042219383069240244781950842998825248167746349111946596659646028541691779201076802180387076408316331485849716659718783494957012199975464777264985893379352284240681371552838397630855219391151241668875382220549530808392984111109919280805159278746304339251818618658848424127732328793875264771539629374174486846921292522158973939704011685043066164904566327882976421202466233699910084930770148206564771963536101645605085352842585696820297585796279584910606483615144879344626962648419391143448488339578040719234526111005365393645600126221050314573818835466343171138024804749942449875110789839860582713526943130872724716331082398758472006295137110071094715082938846839550522468963253361859106286140063190578267786062731360388546970948898476462818881452225453344198809363662978592110086987042156888260390043401139933018044799088104622028164251475561259716796675923110905201233742257843469889485282009364635120902866420581358931898126261280874115670054302794061064924932095258453609413384836928172677757804622571094881284825079947284282816075943845278443618266532691626336075703850397831567188487643574716152380219101348036604492337437581972098876990761292229431805050287077963440252827025259967440082070711159619485988483816927881437609664234565070921421476853464599665931000694528333379918958819463336958335859440407125191702285282314853943984419627280999497316009683385661055188042106273424791432382828262868742968525411248700472858706434956738940485152952291997203258769277764895353522544803145489260517874376563233277836603359418474427560416141217753302267758313112239675110837381065128791433332238125465711923883959051750051388517802166079768599583317038923278031354008142795147947729108741820773031474750954236241620108781357021760011364843755886405559176229064187230060316431475506699199129009175880226135615866675470275249496964168815799795011152237002557523582418617867082378171976964397265200096952852408800885678811740916091875708067030673792238198735745857881139689891626066781606263789194072438151058160628606600163246449576470532122859139716746696819084752537125995273413673277192487889839174008963300478115116706078889693189917950082337435900744447753627790507851931921199442102250256686669750371060244015290044332965785412782555856075926838966555855201482279071376427906863311554620766793965073290786279970523460242773829633896190292557659071996224788786388539480550243989567940110801409484338043917833599071076463884228867254460453513850748775843498562621837266649255872674897372322320367504076109442917782264734102145004883209453063435361486786042451428628029799518119308593592249582334917345059916012772903583268475040988500032872501175029742838126750783424905856031601939228086091904184842435123235331863727540735332699936446071942383930384078755667134907420369746680958804950058257735268693686143019147388730305930065197048468940447972380383642435624678572021521004237990399914406047102985683491882618301487015941991008275302421468233853889045399912843402648562234009774067848576762682457240610210787379975630111170141814997960608064635861488429877748026001789147313213287449383171602175230987234774352695635071334221101151715999063266081533750746677466218965612620139313229535446357071458468472197489393003765175584835783446027536125657625204407347504536213589958097938545063717744418428001130462129595715530225541705784307187163393564340029681489532598781161477489053926628956833771936343698469537900959539757654950725144234408544493689748053443611129273030049256258413572128254528633150355892594781042277702188990787712915436849158085903760087502113317399231930662634823422016623820118392303637808472514746640422523890319432608020020400863777745958046901587606691793816250121053936045547621870366420560111655491323062237635887290827745459783138741930269921733161661614242065131479487783173140657138996518817253318169066566364320102040281309852059939777864754200899102753482212778897283800272260871792010840553842099637418945496219493223403018906439282586232898605036244527549398496563744485246354165043901688924782554680990290893167533405493843505674994389307871719455922490379572943898322615085811570255231420143147682156836591846304733383477434796384321490914340281532176539208409752027682002507191974294003784368842860400740416708180563575678618777691491058331868630317109073921590201869909705094941838221631598462796598628865484141862203468529763689147575645478623546520291159360867986598439907475694230930020841988612464804195597856677507010635414259789081516393143492885415070645336417823730434488761890274884276889343148205284859900304271221441723210691097286096932636447903240338766660695012167820898856630651563647244472946637915961364987882029400969440499442315562422542126540009855582882868975754548443586545787569731771245968881692616326476996098757968248325518208286175268902673784435877528024868674156354462293200248319231416986862553111228240999189781519742923317285339017919072178247928187791097248009002409174097793137322992071582764387977774628578716451610453381638139429353924433164157957916785602532911270053806907908437172553085354136554978852055087790429103942991879000605031656696209389946061489845409323776409861433099019557281427152859779094861988798431370970921745467681439258494645156446063915247631402118422670355089308850382833532128725573385493921542515768156071115238150616161717356612122187423619353825289715438572038892447241908818465276374901444009728430531771630671233433479461770272848406929305717698045572909250761422790535916031589643479875738910281045536812967960327502300139718439804450873530242127345831340995823943605702022763409212411792892531782272829252399319564414453742104423545611155380168063079128177055630020684777563663824010309493917142501884478695362409793610773759834750639738091224380856484134890671994232004653074823037734090539225492640560777749963992605841967812424520545397659276648613146148830630594742117871639051204029871611678914043260693000409663176155142044426101425249470439882278141600630285169413250861279301512932404555487936366968553461443323735430680181457590659695231044586372840093473346803705743795297761602234510238217514063400776260830243576753553307173572218459318980303082817888621774868680398425912920057677129859221521367313817269677534856131875163003955528775962580247567337211039673770469309160989895319202566738560642982982611053848545565515868724999826817618881178564233660167633521183918208121376754924748818549204672498792326802728584204590211999504498468150782364059853363574595279668220516511593257716378825358436739055064750919219760989016004591068218162504978179999610504138940988463594371351829617882385321406775340414737410182499490962802410959618659364225052501994392593760653154396210567201023635292938890949083832999013887323734895649689495256649245930618923788927881264516378253915856889178922151212902062886047772617073298693944322674866403135670635556492368176225249699943537662119596969315386048055679136545631254257347239526618337872989169531477458083726181332730795326086887812688860969558670618054770449661382811659970574901860951609876575856974705142498575476193874878076655443870428361617117836243210564147269161533347767643815429668147171176168329695131658562475617782387958470569178112673719320126182490863452117109063801213972880732804729319430407225278370064016658420045372125097032993316658572153137774460214119687152902074837124644222707696534464208528582953698696182117236317938025378754968538546655138727027225631711514423894258049689514263592514669930857879954138995190603933299069082220370411600178803665844853873225559731216890607573513603209509351706640454117790256008089064694825354085998337362864414998952499904949446099583646171987225588692218568530121360663088195628909909386071793234415742536792811934645605141691415386063001246274077967728838974782647595138761469869571305980142791423853885706032073986479007291507032965332322749012232417389554366029021190754045263856123098519484041638609912733948097900481356322326449134291172877406571304027058307745292525022340174594882654072478061503792312064376137632820156870129876020794494812740977260541778265329685619116239584289187217614220474446408880901221399065230412121435445714841420877462844164455827142758449020081447268413031210786898296889585073429333890175347929693880428695506441174846665571462215869224474604252887819178130717424626439893313172505575404152028895915389322803811919831177117044894249952070369779715978485578395162872469053467993550518278517083667493413117196598620457779133617299114954626179252988437386125293987797777398465076814909919219145176255637137853845299147460655127091868164432324939879275576030025757771037154463388538048840031330646295615332256122298978682229150677062010901381664417957993610743672151632334455384245560620209334998587158317293468263753618179659294965851881945387521133909237707133974174209866610605279512855239006361408877436531291887372003027191227691127605206918211161034531790846419468538388288154979256683365959694052570292179901499297599761141716768922493265025078248122978754812150842911977826335976504652009732352204077023638258714947979096253496583045233318918024217918005718368456044750961961158956576775146467644344908145527594761732851222916422027947871254874646320293833272947753393142419648985024696931394190162816973124040003185217269073390998317605036866559023282894529498047495559248112894336275528994777736201881699419202784823036382370328678011196768174462390934380074475462890997310891134590962671971903760914087451261036445340016947663484676540069696060985856128084403137092081947670752484613238956812366131160221237158016323712512783664709472100056542564911378266536810230565185487613087995104378723061431025170679222854930874592664626652036411647317281717411071197093500568640138516707057667808147593396683745172618737275634203398315048553728396492955234224041187002466248399751188509876432611561630815156142541727852208598052699797753380254281106243957669781898248468396677906612669695109374043651613227030324568357900730118076406818599212243192004345417173698708547739533297935063270144685807728788271762587138530610080798538613272925985909296375744100435371320935524792762280955097596372726163165348632882449833876998225741012574695698673274484900828301161800831577386265429781655581469369500404653040537363928354577230302464024643671525472216998462179414460263508280970812435722843086945656637259432275938579709086454626229461810115084784225933834050000047994901267545664064457186756293945859701361048023085438176961784585503386757552905332085470812846384895951196928268701724413046534311979268513720860521694796793707549751574260574243149461216217535654077086565375794084449852039661759676221400782038895361438492378895849689876594806042176488341258584974347860186315012679837195211795789345110072736847737284029826939130704620441911786995038026241421530280415366418475651768443601519569456145428793660868966651543743962830792459604387545921120249540537447401039064286451116178689305344791679316321121683339361149130184246396054164840583794242209401337885102573774790860114760948996354295827273646876958325380246075427282288179247754471018225204395945965908155418119873349192854567735729134450218068275883213277886069975157564647102791727052419054893158238836425928196774834898126684112626155024510053660340588004958891368619079830863871908883736005951007226558520265220410607015213982391960755634188087864598941702079753011274328647120292444667450785398284623753573377645064291776127678115399292548410804403984659638413699373050792775345031175023011954600673663301441912508147658685025159252309726278791268119804954028245564574991104516065978054879819649578792729565615917898813838141148808682272223275049897387493066301949591701092811295341732430505171021412368471770792874386252042138459178930337897189532403527158967241196983137110240972353863042483123096990488210338882121974326067698868747295510874496474752782867147939905792524443843328254832485238174969797499435768641258892494884074656510687857434431405162373829210949665001790040140084521321604113619708687538527208154877635309405076344106714060007257353474766915741761062606719628683478150915764250931372652088804226958126776939905883667496588393971892472705138022060818077931652789000162688077284254110264890094288353510706383485193602929592513042332554011197602761061636872419475812549071928172928219710358343910135920930911747785445023303521823387967486400715783524012039633180576509570725620852113778694711814935721911394716101918303439718456191465664322139943792212371802395216766634340049791847628563027021963893462238163156643885061910869903619491644863041317786459359496075193250721974966090378022735639704335081897410795607257215899936392759407281435971924154295137079729199039125304120500196856458459267534518002498552197226194369942292174423836854864394689501361579629368579180537169251970058163021584755517840247688066472205593582214222804998263160506467831273476677733948888078114160805578548901204419402938088227419979364116404949902764680912932042391025145842597053097010559387340893216611415408437685064669477551712713900619372278204197344302229801825300016235230767436337723143506548275387924920669714277583477883240019929043341427695773801412717457161783698313419295577076089540036853841141334644912834935883644603222222741959943983336842483328231849304046303546932651476845237257921077046029219741534166477515130335879579556098687781501076314865948889617089100690167582007239204428901546508670691912468853352746121506016194091401694682451075629602485416672897197590525031508290885994647123440464395443015681299380207417466157388965768813392924030507227272263087670260541911899199979512612839847176358407508295471323809805144372687362391655174515222785059139845818613617443349035253761279488940295899360657735290850705291283171404834304150783987544557300257663492991061821658871143164105487674905245007746854790084703354133364146832046154111393691526677882283731763662485609636099563490397540215790607560013962196407074295895116592154774050253242862398599396557796760249180692883779193299352568528225995487055942618408436436470300521331025035904436847887583667081895733114548433409962823249276624034395576576352439602142801181107699713612326062259553926650307597213462196834998068022227675146874898745417411657440666257922492185736120045017552818808624417984504488991845819295066740145350973779178453980825586397469919805720783664415291280971044700673086169466465209304179028088168379239711976050759821811510137384882876376897730227702083603523963391357870764303090789169904514853109803223777923361316865551227924646092647276826255653119353870007445619337046080132281154748014721498590763938599225437088099416856062686110017690535276562844716688561445767038766764759342817976873620932484909456282913210503233684023654052996008652454270006417882750376891316077085767429799787293451239262908656406987065636770724860661362163107839991875489219475847163728999013115471142659233102099120678189450244820101255812911206258417156975436095580206160079551214029777924672421600914400284912116565355153302619515299607944427432762783589272945123327088890784730415521471723183367326992322226050197158818556191491912569974937130522503237882895685845154341680465970957644225555442772277677880554515316410584359167680296394935298988089676995860046679614617458203242622351590686845516139159037132295800330977740263823957108427565707236256611765111507724017356543087672925212987459586150024118185061556729022811770674065903464525934236391531520991563302316370880015766885493484089986453864250300621892923789591182513948508067214110394728715355979969758502390613115941020071699271855072400018661349034983447399623086819596519518107554712459543000703933998345935799847978911457650438293437769924606865811317056792160788601360556000226950921078958127922296309659741820860992960673780263165185597760237472504977757310163300050191233106858530474955591976677800035633258023997689190931408275967087443438693290816035916843422497627203128059832888987916537314388148035723012793629130165291769975319538472904033881323821622655609795207166208860064990728316641232585893443102168750327638678527152450376657356888718421215845902084681310669163689840920250594078216658321215924031582437689728473801340380817906379029643097485611065799985086023121998555272220330749719697806829929100087343432813531280062049371085576564518862005844840518158188063290833451196150621976890050200965329081930831783584841258196497090682893524250228365486088605180966579137283604445554628754776334301207690653646374196858420181144959966416078990791291476200747763835580912767253725501555149058558809883639747365185577030500896857540930927450763613033123542162153812880803268112294392532091221646384314968015477643105549491221308635673990438041357136188284913337127364944301157885176745685672351585004498064983906344446780784427683691990848273255015003658450905116505497511938830709447386991100855747232182082276005493799664871315047240104074339356393923210059723870085956034753630018118163167724812081196889890586892970951247978467270192803229227960963070077674889193189222798816779745626347824151167388407231485092443614783279872655287192753151739876871271650184604464510342743685185864540537429783486678449060543687970660588021865520876370842770428182004278787709321987432312422596978811702038088083544910341204163977327784210428224109804566224675800565509770366616748110044251780180030536700882296844656139171852216343237570651921609628617294757362753323352155203330084741149473520496804280415635602118766428856069637732916001265183246818734154558124986087986452757848271290006580404885227032278502704622125191461888025180086002637682559564362492094124845426039804928590605095782398389634072848295835746171642334910615012221563157018605936013945480083980668331919391491104410699541026745818153054580991575876146000847855323616032504219584472358621985563022244559236431436320950910045780948168142851942099131201855205264367425516504583418962942208610392990541677175103552962421835497903996169298480153095697953884188445248790320976429060406561046292359735435474003531568011430406106855580427268328406536589590715792944048382065039642794691310665992030242029026628971142032644813162590040785196917900226696430170074665923144852023230694129294810587719897733438585806162488277469080111297333183645699059839865490974509488351183930638628509191346790997712097219979911065667540845121118465248008173398667207817534869522934129212230338005951844949263130207361119835752910255609073479545963977063520817313498630747110909980191938674821985563079358490213347969098662267157402375316094906362986535716106401734525664386774936824027057556387943639557513058596964315280395323946753026528818378644407734698457872767019322838728403118715649075335182518124696486596958839373006743444018271976159967282104906196190771645269066119584867487884248433108402995425298161464289731330491105680398256688417410645933161677314107393105139855335509701078685821898051180800430982871709027576552464484784584162445502336772862107488667275640155444045202334970617684155242064431294932489900526469369591802638482383087071257639296775245256713789417215484288742667915402088053873353924429440154682367453558010653249619669269547784238421894101512284871915551533571197456933137359218181896583540719668857902285567659570570480159860947281012458818785561989814744619228801686924553273594565550711345183537744869453705677890267602515309938674198458233469458740090916327797259123994139122599351751704399688813061234332667200971255042455808945379489874906907626449581511571905856418057469692874441562158052957991598622959150469531132647859403574293148458166300476676819485678096069775079832465230753010827614433504384751477517580931241943483204703623564725734338485618655295135027742848308164258515813148341036720590391054490860076542487162117374762315196670237662462801411012385449467038420610869450103504371633691541846247759161942902279266881819731940512121072830473084278970171904510889573726115642520902790767338148279399398377278806841178337678040155182168129205989685625311659824740055167872793846739150801213306507841745145089350784044013824690404218824151179528654896818091930272313743315949153162649625216523676518581714443573810359468852885272692758333763083995262256159504158451986951878569094661847131441818303760307121454960879417007050120718643708109824684081153431582786933131844116641872472397135217190675584837809790618559268730114464548863856091225427384413761102678612959368212965281404931302624213937332252843806663142279053639137309044935296400943094558484191663736631009379965295038532024816648400215747446510361680657315250630689388975116450760277161279213759161736944105404517211931182626787188225575114875004879951666763180872485060388132064498261737918848188176456977827869961776262360593625340559640392002608316985890935970730618736277876558579678320470978296611869694232262502674698327550088827126031331545761329547269641987248533624294272727301425044862636464454123015580592666917563777151941913102992562195826863927118107861527702053593847373034716387583021625884936153733839848698422185348289602081210907799670053446975773227214126240410529965966314445563244671210708262840118867030423414085419787560206556625108683107860634991426822940109582052975647213379799439020525711429241800140513887568743158176751816618126611977577989887872400757199696902133639116321952402916843719543835569375492591182081813647143503174919551773368598751346927981801018537918584431155631106972761719078453535212972113315253309675293757839400066323301208826119542833062518217113397738745739463046356315194505304906485497220582446982864421499065958917944069066538465280148595024642366391966128011720958574626698201745810213211753460419442159364998901465732515696444511954614396330054111765798773899155530976123569844634792003872222015644991398836807390592061485054381317186678411259779336384334894317451480975454465096578066912208441848565299098173791686135673867780669056002419076126701245016888152639726556238835297891766137876837432675936867537668259842805969008413911482698407130158186915434670491304714023251019363249004617997068138894093945024398775490956747696515700182981935613080345483152139949773669952430045328703312196898480045470220768807740085532891309671135479759023008540667962396207057221340933135226582632927814758817795271186082325985288185687285040046523768953291538147737286473737280662555621111962878443251703717938990906629466914970289710463818153332643016862290497722824991788254763057564964620573575447360477604582616865091634754877466563296650337398354264803088615386515981714336707154434104019090040734665446806764657026957998091687876997899357781597648495118384479889778870373456985734338485902488725117065482641157234962942721144476279314352174798108685357163747007863632346426305581422215484469020354930369130172704844228532545540100438382766111524059340965174887325662463481021513274552266109289837936550529332405041602344042760070435205163686689701166504970994369062916397926646982209801851589508057726951467037931236729933668919909083539790235570208801501825097204916658897325950598772982151507225239205856901389540566895469650513146358349938165162890985424998861680516177835531929883170095257662054524117123737255455378974261316776000444714770158191594690808786123648083206995608876951941710435420022313169549291037524144080838568815408981251208700144867176328761401483064859728107411466571861602317447865417089054626075702956378920062065774387838433801723212882556579420624369931428221617047067526186470713711211404299122513470419812825095898229195853147854837612894524265259515216105825288179520233684222783888432723797600558188859589107677298415255492348646721329874776711216898039844488118885916315405046255361741370163992746522935908362528428265475515041179119743993705511450083220221195670071153195842343725505073841892858706046507513953998401207167047252171571050841813509103891555395416380111544467147156803219506671490996781838209590376200493315298867643335443480568334781150275168945921375181284294720867826438926200413897784472097603486147861117227612100239213445228312727964583039207772637071382678275011658310487458480931868537702398560197422580826117215456135559329091564058418672906263318280186096627442341305551225092076092021114512472660696408943704080163828260022388758361520486584397445962782321512946537904853713636928817914677838901505376336325015403523149241295481318095601897550896901201418144934673584491427579058763527598013752253745554930186217069182097560417972082669711389114027432545920544789295531701490856282701542249566791921899068541008785353661278828647733592358525007306024048075391020431813871267611240797454607412590352761360036053850239454888592774100330166637970090191849291403050249146003592817764145193991114852085075712377284874122840938556547056739860496747071813956652203545170523989882686383361732027730803453340853198647180428092329801763583228811103259022079433712204700229323462321441086762955736801680199520493747359855663899543626139123286379491501974168217968139024482835602562876409191144567956061040780666368407683676851070487072624789493775043005853246779962878678166023416711604443848201443882277426088415511477145894330956813940765642501663674392947841305795504518565193887883056115672146055401584493465596618513225066820940380562334350446360342115795831014389503425063355697831708168414393383297120701995227917507854731238913714244647727884416643629024007025523780180573523094201748214824240863948068660825156487649656378110463533885620107098257222240749154532527951025265062666878333214220982172884892487584162850193818478801726811400671777320885112710605149018450071569402213392655056247289411381882181400923916227363231452611729322951214602946665203224131976982444165243882384823048064471798514551128085625191070164208899794947769381793203280178235319707937657596845117902891568168467253650796687428835526822735409792190788256787396182425770003182339146846541564028202683922938249571404158295011494091153562970749080058272938545741708362248499582406626823619281638074299306839308703240757693864706775896390083161975633670113885409283471667430567936071939558786414306021624187585807893959895372353640495567360383702726209324339536971972415336908367968397294824950708534016529755945985957889288940807830281107596974667979218358590388135637578102452959899823325861263925300435228834869994131469612303093281670198310390125474328864964678058094141367706897840562567136510481738009837454576016280104829044339720483418863357468176004605704127066801509457010305819050075867227049496272224330998094624798819211567029507672632124642821183854629138835215848936904215369873338880905149615490128845277346793801149099134572850148981010769898257798518235139666524942246311663133847721121059604378759207216196819096417438724125474225796387831975664893810279743667465501801670500003531700783942164904939945071311975656448731971063769460682339187628613580394936570163985715989607475366751190446466461827848583308675629677213051431695398384932001153344563851525638648537143172887303775087327104544238867608703029629386908153773169494182755621853730355950623620644221097082085687341854611759992939531260069079967917781559480585298098604903829991923720847629240019067650010165549368583047841100745623245789438961626422335401029621901049513587160314882471078608582147653359442364340280773810292755793254314277082945632876062297458184036403048333904948524003769908010326504665442952396135735182272519805188416505691764483096473663328190783811005906988087160505385430370123165261722971772869699117341564463860167307539292295916774593961794810067616354920166844398614466246624468674483135412330034020124718365585004035637570038131270566171770468052543717845706753766336514468090714850807538033570594307219339214778873155990438451296380045653959496472074948601499564367123974977639076039225676574507845453294105971704638666706330931727913351440045423457048254350714977834574522440850533278826037303943621621255018878471015220708047797273895420276361156003616412736732447097050015684629019481886125008641712758761441697397584418357458642352875949889055612396189243815269761299295477805475596919095338372164452095341093065119722144081345090937643964685284846913672500486664320231095739094187582308304565123210307924597336998602549000023184471054718208692686880414761036844436772779706068995399187504655091124519881363165431487262989009459724327580249054071145072707338626580663510900268901649687879719505956539452395957065637916863050964881214903263925220341077610178558504279993728425310533161542395891208305578023414320098011107257239840407304867820103554086538414464862095755309003682661440734909873307980656099279231104141030340148629998738706734109768149867198608422911490404106368590242858347557738718506906755886705447845198634810949131901168952954942297142983313786277308525662779488783136378926701058767629620974396497643856327674386616497528425714613296597718250334570986253932270700474225772451709038462858825530150974786184730712452893716952559283192101314731270724423416892126791576498705019136518881085634834355493884202076541856359729510919135605230807692949336512298177879224472965533461248094099621689284189793923334082953837472781141162566624482750726439407781000969273523960445219513022936354739348115804094949868436728497495650379376464845017465415303907522944514052966126197657142717391068515228212976607884042526896452782944406997124366864248391730624771074210603957785525782223595929865271154676798909422444911364170247072993960800937019899355870679675337717446921844990755348462340329362999629500145178075316388523796408854779255070350433828967961565048181589476876389687303224914760884753275232811048458177284280811684039598693226088930170149259071105790284834321630414340383648658970583626928288417043756357909139177710030648572406800045970420249248246785098604171904975551780460201443903166057945087594685111566466359185761512312230789204414666236752610395216920806892060764031017766343355291033646286937375362304502680807292930879927616792212277161570694346728845132496893302384275455447819432689766744490129608752362459486046532751563622390712540311273218868103374556591510737502355633279106083671921436251607092473282109132291913298369231061264386103981162298806497183557108063727401450283976835565825615174568808181507484565576464117750298180036306560433339944118193733960054130567317782388188353914004887550901222270910784090155163015061986720466463303727237891093838276206144188054917616994694999308803104483276614305812509199375718555252529405070466817933144999769915800585614920535125487170171104097220507922517153330895605569313584425244294261886264661387308688280724014546186447761617775854178678091602637888353289401133268384686035309347282952232973203711346044756250198819381974018799557625361100089174215550497038278235604366958874178739157154719974924602688810397620193812992522602418368665520302074506094180206403527597990899783034187049385120027735626527645947262416916156989963120136291848980043273125777402963717660193880483012618447733407976214477066179492399886456415650255226390402708012568253985935150737191093812086286952260697924364485131200236365124077513672828334267573701556416965252471612052596115317066528457871872317677837462935104789327638275274053448075214260351479030078112597306662915851126676600579004210493337800873756362798493178323551841786318225239342496603352475525956113696729185486751789682575039421032007796126216920150347724725771830599510358854941130262572066513478295324762390408573255500199222403130276155658698335748687026490089120073682229174211882370603863939494014612092697523667911355911708519249363775769245935080899456443769814735630518443797440011714982858182426859518388875532583928285226886620087596719419266776910411510970664698888101899376101782169273740864541230075570182870822111922229636649658001117938075004813424381997462197926978013245395225709462916500528176321870403608526523863660715571610137808769714099894562789653087124596280608625640379166507091411902143220997935319116963892919771408777397179773355720309691624606351629465053139500138543219318269461035828934947807811260169917844912546117392133833633065597433161353772563322687150281733444963994012768156853735715874189157573604350256550536451159088506004336699787272868002790784645273151310185759165276401987530476423255181639372790567435999715522959233977208525041849128383913811354637946752913044454407802255536846388064276859570431786185184644713276587382870864562209627496935399695426745171592050145347299349834655011293391675326861022183368445434962055439959231152059061299212719057377663560761708266259251348433718171009083028947465034215021356642867332188554529139644323082399925388648806267922655226130234151244749503939111342311052851229087405660805812014649923250477941301599913138362120933976759296743371892040590217070087920920378262010202464693159958731018026720887028153762532811812439503807286950485250425970086423831450313124587300242183541390477061333139827696072529551109973879187193037008850752102669747177311731502535203675996532109802379930951126903463798332130535658098780185485733734480396323480416425156225066613115834439630457357916408846903695187188507372295330833478046205265358429779390257650082005935416981132328484885943488102143007766533527003029297779254649233067968610646347757867830892488940299083717582032890293443532949454802792502430665559438203118708077012358318673595083677695886567221455164486794813806693470983123088114717006089152266599765957409955039622995616030790587863252442360469954542977410780170948160621935052247680687643825784017819893009481919122164958316997293585887529770479929851491573343029560532923812599853684701536028735149307722409497557029751453993051614233919711557506844838593339994805904945665213491381684356400086767285531550420283097171294779803505990519276634322042358805265919929659658531812805031893863099026779768485348333436615379045559410319647733449784511410534239901493807258949780356998938684686417190347243479526233422299896399876363875552756922162365463882988515760034308476106138956450181108992842170733620558075685842533510088416177133808954193376767680031852771298013238762334136101037920666671575488347627390018390031816661218751163659287021278227567313210225258477322322944428582292218431815353379877738279970098528201027083509275987292992276739869306585815189175351424478109702516437919717426207757217352622929262149898542964932832777881334096554040917391203332224523186108210235942498725212546834054996589012206253270791056131159609224991639841814624282108324144419805794779055981846894903988395417228869723894054399407156090838879289671204055358342753401401115246244095919402804861438809266221866005059824685160691120642168162231631921884735568732104668349799970052539887404805769291074792953553110533490483888398026566773966362633889265372304078464753066680573864508008106673936744236487543086036639235626684482844020117086125835136069579732746001479509762086647201970527616342483969267561931795538884204326748326560194958634248866426638363922163803627878108353868344721967884735708788801623343714092949630550223179351189245078535617633724227495094169246104291826498829527205240910475531569157026560650414225681352702217329126522931716076833982966168228880311455870704190129944790768521882096858757528623009538989119101580543423997732947488124753909681346591845699641140597698289329240210681899849747298284284791906896338910482999353262227615469095018979009951786913856595262284450049729376478577953098082193411443953223893274464773376175789860778615311998931203632420398006194666250335431501028982630928118694169955112334181721653551658064304854483643460999597739972373366659678563474681527757812108323075214963035617677638169657443526757912658947749931624480367840067867488130603290794720855685899454313476852350682241895195826209039082148877517077940504067370440079877970455837208055961308050343127725004366231333171265699774904729128330553059650870288806904583221474633388541899038895095865508462959786111989589936735792866843463257891392499434543619775158155681042212236604555605708934190179027784072786654703509466562278750150322716950315998875994229520366570986696806609138285297703688407137818116195495521778631369144997318673716560451363968036849111218786160105642250846394719070731958077899184714984784360203237336989353692621131574173691587334146963099084259027688912336775441558055626891440070555774505568376924616214220115428698854655033751845481881910337513911088975072518602751761150780762855901399417816135426067934353690129837357614980702674370123582236282125271393169403840877477161606828782988606903186950154908589696117522163586501600870100690312131981700718096242377675791490228924410425212201777640981118394358047645708229574198959086521647722081883400608296185540219044489867216261630727491963042016387026878146492240854526235215521419771381064940035220386677679392886830889628377300424600567720263424938113973489837694534900570177523409351626724408790260124527252095539601666342071029524164394472763365255403339474013516984082515755641863682488759401122631520093949679779954556805101588055020763051856587722625889630953414818230110352140692353095982380851019533480161813390762144749784167571816840355185596844549662961356934868411208556270445462933014273950125484566070746968061826886849567959997983953338837619379266843786439415413084983761920911756607095437235423570668311106927477762058187595932638561237791732885822092421607652820659086431764811899165170620441581524114739305285718359113170700077928780254402310965160579278256865190431485400930386120933952708644240861212960010613828104430207091540588814906524033817904896043400244861657568939258255510579674808225705387135830130608064475001905764375142360720779850634886566589793766024291926192106608164608127857463593448523996441384209114526331576771308330123195151712902466206806009370965367858201782105539622230571354526413041288514849412473493738232835163193031649040806688309534341259275798569023264959258094365510377768803237187764816954878246546536202598569858669528220986499608006793869255259583027845684956370606255878002350471583078392703004347818021744480221253400526928679274378455955280983097642093053582012688277003589244219985106588592856276466237832644771988664398280710648940888362350019207755394031910967933070384100822021045634268792809691499556664648718357696260576711624208083314179792316850154152233841992783322632160407786550293118093496337223031104380007251950021392261133225473480325829481856743068918630511967973461394388383467330978530503110884130767122270070554741972507345468972594659962485464728726049275642271043208387083822052727363755093051879576580498247831742569136882262153684522143622105389447634185574165953492240930562139556608574960384174628137820271142658168712280396033711066385658392494370965164056788220521495447535052127404011844498525791265961902139440300002099725705384911090258443129899456570518355011935598753279531408764218026725643163524649416037859325461407492294263957794499017954675198451550865785488829966567404422303512152716538811034160844920601057279833724515066201982726861336048524277677970797153842521864534803946245830869541931258806954241170729089961436084623246831795968484099881893549209762839731064301419814905647124529506927644493817587091156187367142203043451980676419531279776845797852376628986969336856104612845344209930313060008456514517610754227287481572814668332117854360223850362819795381348114449988003092309836514465885260442050110804739797473979579227323014141665636142612340857367702738292994911561234504957759363330199254874482704036618917166543984412117232370074115710325794764902890638698944330304854263194910080329996322311578033720658651755325178246742463869085774404350273553788139842372800573081117294793755625704365677254539512253969144814118027374158832733530583219601385296822873253800463265927198574595640443069465685760879633792290171000749843985770068981505862417881712097431209781584709414552857666248354184059745065244765042859749620444087755480412848669990172026069614981122618507267072466379241049647342688870730125596131056553581468453156227771596964791213514852440379078553514452120449070206834915565595697255705430904025296210826263214392243819480617732176343295482578626050755962239350527942294713739228992347449976964757751388827138265336350461831929617331128321459547433408874536183312997665608117769885899374387271410313148869444943107579602216370317039816521595893714561418851967511353948794588346548319601155791825867093355533867681468607175412012648595508905070444766103812417634889320304866941737404132512881111659322681125344160147411282055888505191695578022305700115016172474101345172001496677339228990194179882512382344779968006375589162862446368008895457169561522045068181405764966922032452634687426476529792080740576367216067523628436214426967526615071648717915758076479961686129137680929421493746794053501410112868793711449119454913900652807636850454336650181339954782298929810726658178900419325870988892759202965988470119992627281467764220208399693434001408106507107675892174330610708359692882268356467905454630929870688458464885508240992480887775794581236207865407652361912370680964693874636110726726769536121275576390174031676925049254944441069166286751870201062631660306671273409970783012707107780155879949273480922636116946813028680451312984552690815573045939175006641577008288579339323775135677505511463241144505881092797355376630611598224875160608386535514949730986065852521362527194937958209371399517260140987286444931763871612347573676631837463196118251170975028891985738049738366338104629302068771402625967956916033941120565477596706194364400397846066048639588838376029405247684672566019713317696761617195026645385472185527981565034520165910737537335761261949738039241761247862054610283639416453757039462539913878800402337818581474810306386030930432788026234605125207678907682259978490262029751710644555834057924284240214862119148400579455741205192819827344860425034700028577327413436343719927708705577494036149895793117165325660764454405609116322268355857198003445219475690432206050607356011997846664893419079475303262710832027441260255340513780836305781573880229174870092848712591832790490135686033589975784663778626213809047874812019074138736889788126925930981946599267011946793989748639102273435117115500423363616278548376299904012723738478212430749319066453441150565383058943501981382263718566802917173994949917187505307542590925076471212050068713166577760003092226050471909647772179629450245688278651689299835573577367330410990507128451349612456461167946581735910352391843332856863520374903047972119157208040278212728364155030051172326913589905737409122312251020147020493407178294119624398008140983362701290258931771664048584953186115425110027738833054626763786187554112170448140928824879957697168939941443174184411663690329317089584362630256933426800923783707906970859959775863589844277383537352296603078980054978846638540186862895292369842775863519758237006408389486525992986197846089229377692025167773969416306402715739140239420620976719187924000456780116923993605418397455024249360420130783648351248220710218158521851287444162770049754747366342351245402261368954907595662407732217801875180428032810388715792211883343008049767316555930132517719454342962906019932378489129959369313875309109905597498899153736238585541229567049999719164187864795652745997309380401146458971334978550532957297164294928864561966422678257272821139060096419520599641597825083151089102260329051977970502501503126290046299162432165065776909730830753217651020526045278390687299418699522129608129755047298870238920420020140062965429894188967075391062845761884048642252591742495085836187943571087970283400627988086968148083991045552024097956881522400875396970627359736237162560407987747106397191213782974878679327719412519598444607970185843438537645133338332931036345505500287547801317157804250700290065272040738657932444542637193949134601205990664897464907015356308147348573254672955467577346751077048891550537083411600352464850699281271231566049572872952857425784539245439431011195628686851369971182154150852055293637506490674931269804000450587282726607181323561544826702840092275510153360982631508768494767630437647846855681769390915012794554955389807951306444161226795545231369352138672630492305096630314017726563447999383698657461764205062971985884574679354714610738004073361441452692101992203737194949489162116364084093105998698938973306410252007577822475798881418912178315230523103476437657098470931494302154267804197439907431140363336713210661203828581143736420753639445710112631375148946242008152804068465189805692306864449436571480762239441323949932534501465629949484503519856262717460438832792376299254901377527546888866059639181128898242960651135273316808123174814091985331253256906696689216157459888619272534489328304542924495262623964289006329028256797127653190613668560897639812412168258750875690008414879359081378434415511281323148221072859232110638332087785349014255416239807698549967126802547636703816010654922759007921190071946607621275581152038266588824026203717078829019504421565465670021008020526294359298365028127427369425896346254107642612600304861560438937779069972755405279250108735448015042917056995449511229170332712728565551501441790457056538570316153312809652089625007454166286256882909328541696275895129955085990652173674056059697177650466166691845550191302335952220539057431059807699634850341747341400879371329493034141290857250528290599968100481976310489938892744546714146082877602306764867917415223790999813510414289404852560135563312814763814328906323897964410039335407184067158954359477131460706691796155832178392566457694478571675128544498616847510883761410958447275406374768738483173687755993299658818789512168192549847499772477249454958286824763342056480392711444792579750745957112696695440649710356047719746282595823610259757847803795144593685069606543450259675291367567864017711919474761686347304043710986163189861028883153170578451375475445904600434039875484763213650238472431984630137502675565886797516513391754604899281398878727509261148809010879423286506672409063375321307452472173961409674451232811604841201810945547577446395831311921400741810039122433183673302430955825821070482712037463820432782318871982451272806494155755075323706290583185936470026880161459957579450681076563738719698230923589701707411486178361924110704414619739051252604397875296813820617524998837496201618174928488328311262192479387139439126460159025147905695808998773595985718512883071914387277932690825151353453074744394465118490653549476739679390689185581910536182448106449735517075726060705536338696713506315059933412039791822123486278072604249879593457009837532320034085417694088108512651740316464997241908683344142875953575904551799073569654686748573421222504779409861683003021233198967592985924106187290856591562958796024489434878414406126503125964138180348476438386592197863599046722563288627324730694199607413616270370252065434602317885586863810073505345515469538656277986648582149060411352895838364237261818638904703705097000840267734555111780091083230386601981823072306201885165250747677058291960258559468723830380661587184175602654080041181180632169655639450238791158188232971696255410534637441519717345613251660638364877991591704814121856308806716252612252478062709850692939521843896968967407451484875168514142971170398288421565147051800713377390882617592694737183651402301032174101731879692492046068141753971340958768777236548490969258710714589327895334081489160018881643505165806568809245060972095298458575827370556643034490823278609403956708388612809325299581632800084505919672910105092414131819560908796276852796933134782047297056569611952921227415603482353653747380561449928119313365411312992298037088547688088471304560118600141522788927468279939968402313537884577134673767661210701925275630721514532835152814165183923029549373917460098505409641338168736242867094899162579895565323100222381838857915808150353022385958292173214792512215847952470262500299961676751752722788197686165724479079713041867297485723605617007952046212186078715900266032232102285438499385635733423524982708084056788795248378392887970169000875137554377814765880046822293173450466926445545572701529344195112765366244422006652289056732043536752608343813121926991032497117479465443540837873254670219500971276438929134679925037161365469295293993463498255946274874006849142112856339133417380708938189450304785771719435297661999250997810260950387427650289293611577019672424261142788573461907987074810129835844285312420231864968209018126626829657258917031686368592717586406271048841398633325803331989577595879631716742375018475730746022996992442183304208659389101655850151799774640206478145725550600595642801677344896774846295303221406574380285213619720665093083899382223503528865652493271699786238676928693455097444883776296815537762906300326271301564162349577636201875479651109251443082533340117282803635109264115992581994794118879690700791344471117453482029864074572830711798608888778294711735588872273164439680347280830170495759715833069860608271413461130715870706209024748139608332716233391306765487314899130934464343937383278957683818321166285984293153397739008513812458013577133346448820701894795768171542336210449355715188940324275493883634026960414528470364260529132717080275358970420752618780476769958768487131773266963792005064437716998821268905248580176326735705288253568327566112742494511802450287283153161640609631492984682305965125846090162792572347071896640087464122177701217089414817807403181479051368799189072092964387070281778617259107907314507667810949709842962570156535855517689496683554489362225520614284000756745702521528676684177085736669167152061035089655175997636410953072081412751252421773173281221387462709180986754942728355921638093711566837346601582123698236979034796575197116404515336864522798248306161104889291872361238705719103998916597856585473105933855807437811743840697351973122693049616396297530395375897221441923207706294826147454039408872521423596086545607849288235088573654805978665102700493912243361272617237081608829187810206894685322414385769656873852203573185554534956077618801198838648051765667915674060545301123674462092485323319144087161348151192351391006766530880315282919545188574283823879586516476117003738321875892585320607449697195613331195330065962692280678581229283203909870733849980093103129424825128300928468966823608118009102991992921954072916568265174609678051217031085453257411324039296838132523840014643304469214231380822618728069864554441504207467284136368644029363877533612810033897254075383233172174634857096926363164987607871604273569469666326349139357442780628332472287318879680908450728806040884287389454651436581085643877023338561713772703828387195837133356733321673064621652363418924511731645507777212490890282697179296947997322477449310362896082723056276498523506600703400111161283343213030151554075534156668298774849519710489728763426716056164152094050795673100778483038468372096212582994348200356633917109530467995261073342452856544118528909206229182075664158204850574895132738937670789729258547203150151612930446235583294522976733796672745945486753748703241864862888736102190892788047104749869100987553913629199521956238556914496862966097628214042917986811912624762793125328200829606573327366868782077233899736995356289904851979330093442096555850057572952013959415215045471273727830672944508918212828031768299111659220231361278348520145593836412449234556577960041675946970360309602787144025781375921567670070742947043981493907148960687148046704605741285230971870908122089453449252424956529254980402488038716539049218416376799538865319402250121110517315276073161614451683288773579057290750464628054989057580854776337203636188184509403546146373558356062323990508255184332588706026279467069282846223446178736216896794171545694114306717559579499747763065755478440132514535279983290769442457034119535846892723989907590185344460324165107011924106785006665040506103269982286884090239686033010662693252326858420363051293297915773639236211038154021607357028456262566503176034987332889666587829022333868128052229054198677524256933285432623297855193537100829494580055769782192887664510065497380805453123748259951857410607360795618599089658930982693368957451466030892496167753206515855573944502975818106720744025619925819181190338171753298550199094584014692503405962316031668366224222090817275248169506101485237284695760882293064226711930268393104403775636487838979425720492269647992843647265939526400216410086307098745436144421942909145457725282067155205465984242870757594294412542769828448870469068645384480227816463560387254226421418975604897642572503278696433098431040458468604363760678840584481156288976040493864860718865492407329020106608884590597209265598090671201403231363366839442244713415385236775680218977689958612722034281274282992241022693263796515156165490342203130718102830711165030255737710229405715574509295173135989515785696972181275615090271376498167521540575245965323605005943885641436865221838881768970569697281614501595461607693439772927081775444698822691244029647399644470674905387705661263919805855359672255808828637587391303274853136221049067654530619798340044620317656960390391108923222542154629116604435059262237865124340319609174126085222398119861227564726671395407413489403937621195168826182454877810669608626802212847671702378577002193137851699692969159988261963167913251668421747479832460847765679417341952066645683010876786507501899775805364310001019981493503551993569658579933356262496415309543335313725249834397430883099841993812446998279046444366863237545706821011299713879434831402693388312186762630754255953282820185131852547590547877003610312197100535542594970259141829341364698364404946028897273336206734717807369288285908864085432392663952033375716382435284713339360084742552987245513559295413207219488110941758088127385749681639073261525343167310689044177404431229419262931497595112348178791448702934139053425283492976829357177981185160918693862866332530999885853259292402772244889833099225081645739634741539967902955764217686772654255713334223035708789668736683539912359700951899642050627349838430239676816286794946885861411917925311700474878264237461498274206630505080848398070924227591142946656237217937915466128634098560107288424015953063848569369869589430605018953013037801349609115234973658042904656343169237308962129320701087576998328118559501255246642581784677073388739511990504610796858322458509388882747380922786728327807741526391512950026149404313039676551472806978695671284418682248223819746371937563212696107397656743810348554409308575190839302081758531957878360698892552570670162385653658941663039667934563806654916583363546727245331167907864864466723336581122640417834226350698084743266374387384109800565615110015243621367182782869243970925193113487668165052312989569401464841304873459660399688171079869683104141324155627927400041941758867356383069898622058957605996489575065726304851803124042181078563869702566578838377095166920130565044048557729726163078390837218891798379864215271921126200804353518017154698081586298360376594261078730019254292165739658829039207057280924407612784527411316905794829076589099407144345540466421981932405050652353440637362577618003139938513118093605045312139024127182670175727139523515991561398886957517511303850099511247396946725380175317647087357530965085209763046284249954885889485770709000365667588327544145988292785131154486800204768143799441247613759757056339400199402241696601512929203577629686627611338385317395815058949477705181793745457596460334244476228642105174649324776625474816240229255731621472465676831089999609213023505755768974505470920393445499835168565742773387384889033723275242502564447446810040766563905785202372403990573373033846744926909001107201403143501214611425201933545581422686146610612700665240173571714634308184139076484842120018567639237516715733865985573704259141919491290968898674758561574589156875427242848704307209226179838878196629676691518644952961421806352772911901885639548721381637152847450800233162251067203908128876490194126110043423086014348685226519438653049885863872638326130262283320214482530285734748505969729052738731388828175539797616362568289910535799989781912338023111402902384200045474447361379184824042646473742049451226452585702708507323271721933317278689528856314627715831567081429437856035651846204801772493499917483258787482616621719716572514783762261122506292703896798936249725203685512798342353986862693518307989653990555575283530870899357511414626685901528505869382213892705379603814660606843114383768322094452304731215757561136134988673486940587232021873998749350351005659080165190702014682234348815293647269117223911917741983372741266696785830769880981206989091508711879470701605255075042561198955457193994417103621430961124533236430338462765080265525433657779903868359118119452626226975579646735057958208739313760387035676907730284798333581600482422093497281068302525155233897701852249554551742534069855955088842466085307246829628220095779466699607437441993426000684060290568074312500831147592426136234114950373323065789323878784704117837452704873937362029305858757727345516860409452058088942679629022010702066241957809343516460246507405391358627286717078911570931428598819865769999149304608034130176371838734874638753972591511451855240854045318393747375462522150467864659251099536008679694536667956895706225630913565061442947971276934261328491160305461684613911074913627597937139303902181092866178326661632691783505171145092533304720461082721885499907324415668316263629715068314573450756701239378429601495959385573786506013827981526905646395192385860317151582097288493037149537937845544022104357046958969198848462489987819968003815082443387148972296755100815803346240084117355507082954208337873627835216941398976949079287342222694754786765703447608694553424593749915779703861610894320087048834739052629700755596267732233477668431944572804660517669766862599299447033365720819084786065484649935367937867178934938724118730907393165429458339018030012432973018728976330226207093028255860106188078690478390276069144980912617280923546728277508676017829552982651763941929308442057734221556784356818308155148018395049299515394089995357772130653313899276179460153183484014036146797642978302755383702689447595252650672203569385845914874963456606571344933715557425018814314913482699937914146781360667066096582481353207543588791238594431115481869658638358342763009116749883123083068583721308187817460564673148102481472031859181601289467644212468379937240282656425512223773615536739889108069408205394655261393144030758574857621859807915591422101398019559075054192316884210838063734166001161094713332714799798562762723907276879231220587528515771753263713926768385896935525473447698877693320042710650748938643953164547612881576431318968171933822577206790308781001362474036854376809336496837994556657418900908572285519619676955788494432771053418388362191453225060612195231341545819695041720402679492928323383004078060566241172811738428960327800127137146633661823942519696950249118750877547588575922622011283169335010313487280490877960043243518203829163762120864301559680430158860213795503350575008226817949570753553385939020452996040432043004741466236542387947515053026309588704179341588904997446749554090689836177183926740651755371308794453387237600647114409538529705087243357863694176367762219683555119550197349157914143959270718801329168604695608699117764144688852305712092140473211022515417873724737034372966394963617247944589517345949038238167250923733369228913282166989824741547619501464242368330614800481198984504092304816208441966091932985073903130220392648484397081164020556484241347605206244257334044263256752159645371854835969902826980085703452975381745857812146188047763377769856752832915873169340728525913193269600378183785668835876443701448613329721407880765782082169865548810254704003757765304188915482943539154742635038722761206244896250759012616002763091202032325755896011645840053919420885127249962292589393242683129548707270942273009613969061391299856590277792249475958943663816280279550275091808098910621452568536817861226912309862571799388047796526848078943645687597081598202558309759978870102393214659301503194856686448272723825001441578206939677635318790091160641134156941021813814770406799930023063632386315713488323594004400380305739798235821127727297194405353530500120789598691555380032597675297595934328080808532857513354673890691275545747161727329791753980297735911658503908583964511491944804311411595909721977390058306705233417189835629531528389414699259331377440352861525125168441560311656011301032597817995690846611687951026221224525717149817679977119671109230791122292275212857216974615167864743564571164075791785764733423486369765079497059637867192260065016880363015713325298724237494872219422237131009995113799949320155126988417104745486168257437365737193702169140918428625067620287987910113650897463678533562793671067460906050969300657304964534796191816146297272766835431699766731356339139928347689953873538070843955990830940022839002006923850290952717401238786596674038097683713461134905272686047268151519610796654864984082440675408946955994787931493256060255840039879718680890662150788941948329483867527286054472029320509913323191497285743174756995355847970809088139891781635704862737727302546143922749287580614301911684439048124533052083335998352149460163718080780352245617064839339120356202477316084866472705836532569504849695036298245175459571526340963396566779260549983418866311596590282928971126556530109067200792936803085761758962009244661154400965118022701747955696923840485495304756433970488122552915640558775238889973627876467524288424472263425304645942316413012772627929554514891629969951199080671826388059639448052073066252409271625392780645244402641976364378175453700238329352459075197999112916453561109319268712447322072777011422159765912776532214147708776836914051452260055361997317716507388739540610382659431301406450553796916534135433021321778238636109017264427414767922519638823965825955207941396666471289877036481758692695325255644030562619773453474772860275073924972812591178638959561296965568726751118621525486609680625581372948538699066945705664463157470748351931749835979039839281777845344377179909593812094492897898508157970575370742570935114938146736324421710464983312914752884032523252817885323147173952113575945556752869157861677290988230006938968324165478325141608632624018678854681235622070736921576094499654002088231270231713769835551125258520528942146445950486810918679975836091251164422151372339989415347487148438109814781494267311416053334531074517343042615997651489505079349771494130181819733156349422203296826237451318672236024738874637937362900250324161713152364291375744199098268851244549578744027051021301825455660139540660831901360980260129908926259175395864521562364896964584997679411803363550917035844762180699562177323348336396885682317365827271086372097861832562656160640865296262278372203943597199069658413268515580355914668447091423771936338231809400817072564454033218906216156441173680139573514806401790928489487931664526727896018462798745876370167344255265021500817096718507545736194152509669348737191148815131540257368617836737416827872873074525652094450333089990724792446382329763161200004324881909091315198847124380741513397129645191396687860971309560153523755187748066035258076239379882380383016819637861134554759521575316084851394972444234704820972537075198751104400132505789118429812464417906029727054318739712246129080203612706621501252841540291417697425159124232734503850358922277490939620577169650710625161360948862564515854153204050337609464385422706216767540556770815111954006087146558198990853643370084700969954339422053039871390741181103955276450454820988718340083115240238762436275563144682270637692197254585370582341332304101536437474776653837171452339064000200788774826858379661856192319917400490533998404451277507738941321857859825082825651597124479546453754900839675060298454395953448423612300940087075994585975276976531145575833447912103452164173744390586956776962438939143740019970491685388620084195827270386814958327880600435982671981395017078524538107884553087216867191589322012792341365455107301933074756108357293282949748843715511901151635139822664093875608620416749420987514994091218998631609755651677394527215375335176001357276179529647231052305354583468421363510901080850734964741650135343108984949491494478013350898079058344450975404200778146059964296404119426894636941209638657869871386358345654021576307931075653718483500988316132376294028536101283352339120132559631427158452385178111971410548973123508408321791170333518570168368005226831359547788532249687524933279767984846402855229857736007766750668769808170659397055090689911490963082526941000452465557226290491173054518296993752647304962948938369618118292872142217538341119461055349204334176212993307891447849099107548469709214450580681333966684068055954527545201745327046061952609719369995270132771477094988527143748177799401081075429329648219632027518395388258162827346430362193086778322260129599444039251831805653995944766225217987694272835240954940455388535709157302472487013446747510920997175031346406636153960729774497231133022608956505976441057476361058157090737928483869513114164407834883613973270491710944723426353282582113580397730387380576702120765300661077157851941920525164711450666238855485749396723880819347218527517133700276208399189297523695197254922692030340782845033646549533868079092278586568022509559161973556449155850391723578159640210968209652286684185900458565651996917215523031422783776833313441132322561087331710914829347353694998941427364302787037293974011561173313440406880478204729449969406898527862239397193535502175448030857064542442990162502366875578716970975223568390398404701054516488322901450627439151048421151121185028074809275452698424860581910143556335535008794118458948637312789094815257624291947627511691518227974730901538924619523732280111352455969860104991194997804243805166444959054884765821654692141742074701678883221995742029046187312823853717563882393562940647416667116045863440318321616520122689908621526208663133356280876348615100974490362891513603090389326973559616652121822705412684991491734319234737338816125679911058796043073586843630537267125022450349160489405560898234240608909325506057466980063068042993199872985615179024980255935997843919556002954121358498874590339542268003238641674862359277630666817330305945530871246499020658486813188942895281917447260649475023310639461755134101092899225215401814454885184682539339122768392247128934536684647650086730055828574661100964424151826782480755231502697531567906804588320579640968359556814811209233151516165383632305508801934663026763722738864006102804388863409902209316982601128414900822335959543420202457679591276177800242477730512697110237493558792732829480987324689033432380608606378886083540428136316773707434937627607933998793595453145061607392463461779412656366054794728298204020558549076498605972209014787596924398660378967751427103907396116087154002339586931466644663990689446966017782930728576603759390373534469653898115253544642421695519755301187993217626634523792067393432098833566308732366421335896473337669489068821212694938365924416686757309788583010727058192065815091685163988496042185090318017379125407562958585651353077862791618878809976561655718861768015249969152440028542860358152376090134416344226801034301021694612736470039546157645344635712482992147546975140590179714649068590051672951240925612565651099035429692345238136845221427199585751468218545214729088235760360266845737036990399130874559767183041402303936244817847477361754049011600581662909486759192679679329624644079134962469976923425449555067186866857359369638700742512828595878589118352368387976800498402177305268810229026503188256938320243200653804901346598212770688809556182340731351929365855247234674731508996736762972350622787649264478970897823067026369096381025897910411169253847071501925153486743582838986491598873389248268034226142349857287395108850795696809666337875245732893132920566827807127878643079491722310283428726220274357251719888297452019121609991951495122786736108270510643655953434163409836913652376156749729770209273621835201864279024537658872949051125887600810224599363502613049197441958421718441081053691211143913709770627715175618294143384300243194754800221200362101722261423019830424191224595980524702240780645683081537551603241983360938254895163530143338281830544231927935203716580657970786509487121865174843244172692401930513714196355437976412651557364423785260300267706942001465025407106934212269145612587846480975085346339333751960397384085815279606981945876106364645742836931942445772249024206293183516833228802317926838658721799171203575559583878931503362985981159148954413834615962753539621153138655485111961571702199657608105075284197945214594005056746234621387063027693819975896613743543436832947537056550460110680485471414106702626570785287955753262747832686891028600394155697194974222117605387933656783579140351311362966836697537757258631540740589770117101297034384464943150607251773982422273725418141690504868072098196785281431202296373491284969375820095532493874978680692438129980374358159305483437259376112135555517962795409499709700215565422600318420156559367748276287983476152378283507503426841564936031923017974011887498778075697723305119374770458831814350854953069663806024053248251869380118879890130970433493741304523421192790020700827639391025281203455276209866462282083379067515845269057554654600203545689428043441848134350369946114347612344499116406659418959179786506579659878140744603718241321608600795658365907802248705825262055036488130220106570027103731906642962850104969088307322643161598864680862511285336079944369773225149966415073900237794974627567744002626984717898896276269388713283202056383491971708719728130938008613569889304156117316572015085022531252872623611477717852360958205809405974574277436993837927956131861315412855863591566035281946538403432460338062886782072584244239121054972167941760153443831599953282106015427106913468174113699236547675536035069478088911548451320424279333047026029667087029449002828565885256764027832263235955949316101712067970735425399109662307650248818082558060023410547875324283446444796816112224134674028867872421343000869570539678836438467143342010193353354586257120227415237592812477031560406626788460163688434055990189985051453352717609581538522887603888237468984201325595031519299336834828180453440239476549563569311740617664174376908578017478384748155057559938436517574753570315146671150087206385144078756566244107582575527560286102433737063506600636532886610518900185803000762503071985274133826187699466011256020679113332621376818079127315290717452359310345146857379274426260963092753818259923293142038552427839399486862443992873951111581433837342789938545578146921067267826589804531859156006008036695918735900443241416481023323427157742010629032101842497718835130690912180927628059326000180808939466208617626868610634856656422581055335869188461338655751854049463147757248471553094444561236823098672416620905766074485448898654582254674954028472432105936981973955033875666496959699209440864266390287727896861019649153644073389022087342216356234844329816285602269236136893502668537732339975731018684405986293687177029802742985565291599796622416811898350570134837932725937839037844807271294901166198654788562346477388167088917488767871672743142374343921079582669443370407332979329088014413196968341264946503908114219364327498967141145340955549840538381617880617142927310992007543143933548800711833521993774980075392248134525520165766072857597557799838155653542502727966837267524551681451041858329548525199941537204065580192943140768464041700587354218593329565270522178481758102246897142132196475757850664479010155558783623854075309313973344518179730890385671445180921476470899376090727942671543036512165061309851093815124669364053175837770257497362611697937163132428589111128966622951767838737484093877829092671482158035952978000347281660394096133995623962036934706691618070368131205067647825550379490794829793741103370761440546676771198869285218798188435907455830180112777447058675627215229632514713344607912690425495063163945901653587372673582002641123079969067486383527970778710283035896982232629727578606451188556913519423678989560270550661188668906339139010652324957495544719031020977981132494100247637287563099390267350418606860072897275571846210761165958249226828050705663775766472739208504388384743591651015741017562187728492542615632296883580621614941207565169437052131578962680287353106492612131861539933090862910083302708366332709436700674958143545296565359507094556036082326551389310440896071790208471256873789968978412467941946226724731098058187990061877360918304517292482681809940773164113384247317516109756084922727624217212072973724558487591739996123313542461897162893389232449087051573094283792359567034051183159643613668161597131016438426952104247066042780429839270805385292161887759775585018699227755855497433806227978121203907367469033694994737091649603665553815168048450502052995682507165624465485382448976923472833129314683720943200276189386546780804696810134056081625846562502069464692999173174024873960407826002726551110935216236408458728826697653433967235334273058334474443841232021987845175812532282955315123472837434718413972063048150396100875339540221113343722192054288334226932246567535568300874625189474007841937339081120910163613463071746688985846564823479392605478839108582016870731470459402919883686134933704530417952233110608641122524997200195479724716327085704236547063388054307635503297558218338167393557544307090046952264065669536564551473070594192005095935580582197128934495651985674575870364253736804236645751184298169922436749009842935979236281045100205635868403357790528620622211031466331118325465321065594788216708755778531709239277874411410837656745461528639486611200116538785192814163041272234326802228063689913870962062269642360519825327597541319724430899956612778969293893943371195254485608980883531318835509419852766171856970754738964539049246810897687548717616085578140240436095210862531662606752586239257951493451406552905349814460984362675274424208774180197719143491055215817633964182123619425582408682662626338495333188946238583743496016395956782640226940739894500526820441177441929654919626094187702110221830467507216964820580350868915205997458240622483137878630452718349332553076059954845647129164676717687669183177120126303381305205571612883939047695685020277891268171677657189079527656166799169517009423139951745532143733727122571099929349978425086071560473832912084754473780529542385658046866405456191161231517936826193555313467191323537758170453380219018294549957750644926736813763471004529631704124031281582708441823975040362881468286534825211846950403162597063933073712329787810831674216540758412731626930662642655017943122945609699538335177156821498194845175760999320280548753584455766161639268657746167871541082949502941075055006076896602450059151268427772422591157244895084120454950947824327732794098532458685330832959199897036026086504267329196611447173624002843522869400185916052327565862762879209563658201479748560572146800539701039985181324372557268504394868866752807486142866769032431803777557746673180438695789583802429625418394297791359121583251249106588627456142012994108664277534134780566270533978956136032900940789700315355535146714787369426160467672555605054929548357515980221776221955664036131340679012075704860083118104194243823793568668382898898805891236669128589428830559816148268491262469369479534467339478827772322972786570984075716381404895454245824114801791813126348341232868069025895059208676033858983387250827460861679266589130261968324192066845777877148242827348443750935980751862228175043336135079514654169061991594611445653601272798947437442212590895830423252280482060516352584390977705539272971229114107273204886375884492894489824668035801310420340425665469487719295565159043695029945152018078381875421079618212721349423215195954430298914874885560938445796568484251235836784155717268977647543544061310954604718700562898968442251401968046199676913987666163309658208488957339451062637092906085571891258887582450308143953310037494006349732519852752107628589973529715925330529378657075306826294714020004686916723107274147710513193564268261099314152446103996545862052439881176935857958201191483815232967454657642556858703190988778627815561243613775938928362869103618357005617697864941805934630151825964825523194571962584729156609779994241451328604620361923644627896144660858123097657570465659607259748896652581380568603426762620664285473913207660495374175951086208632122501053530173978233308832097403103974928227384622300788017351128276590511929845095102571233654831815364970747609683698967665493898069016961066958871465822870912562250074426355072279278423204928922570166971724780160999274959240417422079293237384232637694203391390385229405864497733910406604589519699397121203871221646304061146865014992266375392843580654209339851470445768519067058903488451195147755755107177891033269562584898888682662984406699417916427851098910293142024220256574047711139540356441156005844574279920258234389681673969189568162773857885287004385646483624294980010571158259871872647200051959759851034556156736775501905992755992474055621995363983931257748208901545068831256055742158927678524574761449563056686051057037742766185686439168803886606360818085057126464549081542647960632782213711844016670458238011435231420761283477448087561616500984508604578709566555501024418976580997591075515949906991264349360479318148062483057465138355908710285107929082633003434414132496290077716022575114830472722213147744370984204186410740253456655906353000780758733351992167705007937666521028283642032266071269975850726122353694631308189637718322848963433939013747809452363103431979187615542194922618178056577549685803221032257165735059295988147864107573129268840427233157836004875989967146587729587642523869903886940418475017076754453044914640651597467826051025986711108915665417711260372153818293011291298142366677873221025512395216170812787940496072062487133302753210918294289833543993767177679932966465684259905653461095083950914518724548504323379802912718643154888325505185220411765312978417866493891795522796850775756969726986861482081849518620360046373929089631819918427934484116875050192117312797186895739447315186090054830592023456264550530044281208943777820088776461664974882460975389947019279379680307359641196946591041152697894240614233755986997184934680108797582303736230071198083161465234915545313251854804447969218964729774231092524315600913553976575566655313608666070462963633976773326216071827589355471906784519755864358447363074427700668610151492408563256907694323446291010749033064847589891465496056101621039388127991214842641049176252899254555239584813092767731467795247586970476747686314369435175333297447650516637362344839674340647448641227128733225837110053857366392528128141584040837608521320910811734219035212398539199177458276939698265215271372911536276298739659106679735450704218138370944995907521837955165726861689086298834243481708872484409852246219640812806029881128473522577955726386258349377584971909799022307953153250103242898582924519913149181312629436114124099872671253177121718026881341090047464394859003711415166485457792887329131446608425822705419154427772844859108907403804199604699850841474404520066515603255698680867298466744568147128601477858193879946269377616429851618273020334222141726252166275773647008918218042585850841928298729520275928184339669861915272163319213676597135936474389729083402232386832417322829917593143472827686595044887716308514520557818786574523050619397104447092876998672977328434914647038203179676820403374088526997577414130097706005646823825158030505498186337933939128944074736973201510964571282043772869275476209174015818030110029219727942144661050229353878377834948939874220135771436745606558383457046200805065735764485116024776128946965891131846458632831847740875335006848381596477555941191074906391238124437150274552567967756348224724661923549223070782243225751476002576767616356296012347983978205261443079902819931152699666211233296470248453268810067565493580618525905260928061437488489317397897637408903881520013521366967032267966650034436510984798261541827413798126737013821967994761946228705166367529311254956404264047371953115217783759865082200359893173222733947038639800013626163176691822176088104333507333281567606958976577141940122814485266217877081480367551082604673548712764404788580397006079250826122951147933999706281487473104914565522076654528445416913739832533149596616676902568667465678384550645070439599039400662693491243393115773421048881106592723005244789761391719113413083273112710142247970188616900605777619387146255006832148789425969167157421596336969993253145750536781686248278901972954417597994340692773746932902500822850946382501505267735415814855806317611659083549080258444039210592116927634861279767977574361365759817565433811726236674430448825674972230449063410160623122174987941645267241317852227739245607351924399080231445649477150271143064080899263900829776219791708407644865091131350416372262371772962082747518719377171228187176760065825014216673881524179413265318038682093156207493490134498829187980055919818870459421947220674330473005573409359625190243705623949594870095319307134256639750508869564054485837155272388953416779174863992298305829009257446514414514312339615874350954152748999776045263225545161739145201686566047697913480725202298806768455774590437520934599063707813273172695234085072472793613221323906935948991493463063043471421903894283880779573075777946569044217648772695409058196086267967711908200523100044957129176610450692569442096229937065303170835459226825107377667413997474452391337311658380885418447521396221497364928798049446855493021778787665924811585964184894901213905335316964921247943410588785882827855789181557831206449333399676480601769788239979655335056478687140570040744154329262484096808018289581821775418197671730152947806992214389966120567646929612098865134639579515856586749396303665311295139069956819189743188627854800061441020594533419645119660081750045669309827888522615737609626342799925125802664497908647007940744672242181002298139497518121013474804823218743655007248946038864183120105333267842025047772962389278768965259776325077799803404339666619517447651209268579476696199588861530922802585313196218218207239273706005242488902110394122418418435765267967982829552415317544504632240562446165569038747293247237626883491250524468782882415198388205588357909567627672733320776752347289725522032007842353451697641408419291234030223827677971699973338102444194157751790653263578727736552181851414929445928867939025856854398424728826837968359104738632532948831054860811954574951336137680601573355273275930610109945336362644555644625602030808530609220074576900504761419114083377237908934476412377617962667794814382416020361998490102095878504511269395657457597093653847962782592596765740176637152176863814159405080509575082314465463444492791501109849048080561030839847254762504820024186919373004160418440569404955489815897311794644572598846797837299876247163585540362361727615497140970256158625683274125530693932340372777205083279518249704655103816523707525858949313776972339104351105967158967593426598662442174705879125524820937022190311640984553669550787514693995103934602295736879971442083342341741654167128627400655415818423165948905594815787173907401230803593583741864670197416102972651797275115438091104591417925396960478353133062809062265571902920926034793440458619202158051861005374420775209533821194535914758239997322012720983305427799586273804228851217917645158985856479510782519616675287165728994161132813947012768066347863041800583058459633931134279384836784862165371935572288306105840607175863850245666874204126192410500318703996426604516601737701004491847305528234859673542780612174405354742072884152252517627516225320609127854582444245047410482249943693781090924572691874586981143446438997371622720399211411561156317359052948292804006036279747621693857083300140298910125309781087720430369496869809576844679303847166814044594916712534327092131699058310788650790870973583947676306937395775978513676672860656585001585051503320884038817824399535612088787938114538581094440085985257006035930391993295571344028476653374939506767031070692906815403088491681448600539820515941678029169810495676988861118827213876787309856130420659974134382450963704575216141674438274774951963395376033453415131569893915433066907436829149028771833702314978181706770665207192465608283688662188949403110883425922001213951797318128714927509445861500367307072643852163981150932917921997496601314634369990546465403362029829553059680681319261745476411204317168969450470786269310988922547558874348008755079159437776557094814670875344909114036593686591969841498057274833848466496476598341058074860298805648307553141209185959976404930796361128126648280567113952181695535191131180700189228607638482882333745610364348843725444905367780600181953327796774919975893103673893263917790987102330992013779905921735079558681988898694405979723566193661276402603820207069369204755579268113682278602033206574820920790823342262747073209268807325480677625150687453137306349424725208004343328708231295779580072355929897932310853736613976809327631803983340269328762816940461783599699555586781945672121934843596569512479370564818158763098723784968937662519015564743515634773158653493603581866090027292513353461829381688679608112134608677847071378429778801620737277521827964104514531803579379704961309981567590879255230711696572261636783721167343612600928513075855213563649820872614650240577243333932508361707986006508231308325269860549747744107403208863046238977833157005798547478232157363452128498134387187834536560638986372335701351282131866732302043058419274762993411115208749046387794261812376917683816565763514803432078331156760415796667445208975123572257644271107239604804737375676113111343206231636394917383531511919298582041681237418063463820604834230630252887743165389900292412232950377742567993672637359309737275023151042825464018204364358632331868179813567293376792656145058399665633682864391290771002326105021938102952701081996002279336252571345592780610892167476518949008911950046095257948988288044663385463274556137735717798607297315009335509555698935348991732436821972608614808052790072155525333953911899258037795213951336735725948938750760927864457473916868866707290907737690048163650422049157307826880826515903169426307939757206663176353956215845265612047921363819384357505113346448412065565811784411892504537955084365011763740897157575235787285192829165902922657411547776402540768064547557656693382432173731022754986634548397048605481947415238984430545515201662797688133291617503062596187364020147492120159028097316359269989321617461495598667657086115284813941823698657218685997517092741865191238414987378690857227124767521303200887317184388634156496799235441131477781177875532898872569619577961950154327019689387177246735701674506263641624609518013553291497754929062277458718867119865470060410259936621149140676731951015939417580428656949487041047541177031535825474643485949463235935282305839244864825547939110999979687503142477417118263162339792926453869242977759103374428753813703712724599104720799912785080344041827828807825562549725722065143421989500767262291219499719394269679981199811947003563597188030478092875100253465582396527312883877019551443306140352419582267357419208089662454528582866689746016411225132185336285915225083085136751304903849363659974853412117691865755293350481767376956058166663320042381212675049570666881940964777019583728805243186423327832483333409329329726218085215620267953198836047605344788184391244248188420865521381332452095697827308418446336600018391612934214304459030700422716830733589040134085106818179997337304432920410930675572638913183180849951420064961327828989924763162115757450965558990241217747559310231184317760385673118276604368030939655292728950362177488150721129348846284144432095636829998823731500837886010065016682963225230175710401721857116981488763092316293587639056054847962114558177374092089736141505091178787774937641969057457942195791236575178362377408887089741996770289928432790949033686378466070466999536733318728934188470526880958630847528234167190911054800210838765817105183730171392487262627116052410270601732074794245928195808556521827115814508322663922149228023567983361255250424473483565508127166122291773331802491792459832454892797000084725262553353666221324442285616220323001604817333369987718691509770458515535207384958727122743853264140726647958863523645493661678768775162230713073089377077485457341136181786346149966702779743345287906316274896867075798931902406113898538364942960587704780148847789096323072768881620772431395163163525689353549637383496265667073781968959065570969786263340386057401869631969089225189282734920098027079910551733376902634168534524277601025832252909305156407255764717334417402494317880770736327393744017363227449200663512771279189246007623166613390692517190027548482315066305826575970782390802015347306729386008230273049059687948914363277068226509913042993780333762223188897678094277399626104351836607518298713525556002331208360229765784292162497572778150359053606819858310781258083483055925861234469836820830332434938740640775923392983436587365367903664899371204179467077378799431976166511473079202520207624330826723595170138895912394263156213557934602727038586156803704988733527582108849487366050290289713260736584975840222709341717123678676827993334724738112568779081712035919059040310402828172820881572171474344648280993590947071910142613728347758693143594405383038997997175448967726570915915285965656654859097106447627044926434878176136911544387155249720778260846219525566430640209665920417469330795435394680229106185918455807349556061699308277593068392986495536409904854359348264499660551422671177302545054018765106103379086802855473909941387977000821363179755443658578440835431287595110382660830514230773761484829849810209606984812478198215173212486869157100711647771538525492557227723248457845831695561625831184354100828513614920681518079447115259062958593182515779420253959884171047398345523991994297860150929583824653798555889876435457104522791014674952208920052552164715668789054306757240658320160414972150480077520017295121144026275661759660950940663982989793485555378858862972338333003786228358728617119159398559535615864010907456103425531544454959484116901523337760486836684236178544623226390707882518822391941349632713861799441502311344646537820051569761482216126583706649122752161429124103472807322653235809042678685648223243946094904810263722001100972218714358989184353757250908206362360351385379199846967370062364040999615037549663897655992999364945134473666366902479897371958550894576624603010114445570959244748360510110042697160525994157498035068549031484104890413715408867100530917583595966572785395178279380507261427596555757443397302501168921487742426799201569485530066269184579560957087426592011482676443472624535101521001978582497427640937506538438689516947966486298789342860945650031392574703970462592608341899856274044357387553309918570872716426691668426612350927570791379584462025901549744252279977961819467966352845636211792877551409370535021971470112622347376420557483541531068151955213361985449936607223742425770503577159208211196278315924180594827179313313665057232129367783187021958566331445335230613745896607911877529187066704337137134654586953951029393442863440992921883702577632158334912627400724936264417750244919309648801781046263659796176051466543121198372597599495025157884531627916684529287880360999902864509606540996492492572475490350124578303119864204257866557250549486560324732672911441735054617067195758851317350628485559508829567302401733965934883911146000991575606671508954897314760384656616350846197971296345381484991577867260338822622965358684748592182823428985300212248178115358782799556120153607309139392790360985852523281664626234711354445263615416349558144082122353948539203400316735047222463211943089727328521989375695876765474163781341736419954962015674628688736319588718368420840053536064900750948711065205900084163717018252093408961623256442969683845754175392254561596987206879566489031144641502747031333235047410274510714878218397090322692661638964986710899277459371583211499951954554896428017815315975861604574004575694592367880550675201161780379921801227040632774680074517211945714596987274653393513688702103524818552973300628179199551184579857501663173654565441223356717431045552536474409389760294419097102164663373815773423290411011857269151776820233999763872804580835151116273853281519039630280961903457936098402693759066355202517721017320370425898210460133869449539217893474721895437190805904189071315985070133314774988241826065066083708245499367712540403677022933604727592346988132235742260763737859827602346506935980474299183281829312398056091559857380053263905222440302535873169636798943626902611327723112228332659096513888270000448032467644821448096756192210170342438971519039407725276876529597045972485524192275106100353671406831022851877475097261661745336503352696818708687353159370540492445141826219371031509441401584318740417135660591668776446736726547325340077076430045591756501940330000736935213129371625087563669496523838239394904910529552318509769859922831731888335750379496141983235055073625551242012018519922305069982823426405206297593585487468850049553932784825427376779860023588712172875246046611690268434600829011702607312794867587048004248401728271080495913343766277002556487364939810886030033302462913586938561620422974703323950033172322230343944459156249617130598205722112242028362365538502356462521854134512390948717406170952592159956132763178339868667306355710295131908932912312033249591530092649463701158553488714910036086630935206875168431458672527356019467364027589270940843703474638934048706373729314460845624461776926101068846033978477380926121524367829895850227671225524121272061688385930392973683981018698592791914591995226449933782529470821808748053961770220977240057719033109437462012647995146766850822113211018685925292288605129242079996725943779994774982827992653020382183542300555882313728812991501797180286931025727199376292178143734710846430820968940882457634563601188096740738903064357711991177216061869161836632303148149101198133010535012963511004514660005519847002832532836681328165845126356310044293385290622493783684108917146511800279021510893402403270241186651267847580535289663590112157637568714931584066225758044691753709166321695618091644181432779172886469035838428872518241859374647830677407280938046673709910278108839927601024130248491847701460613145114831523289229767774606372489310654260752899441441577431916191117585730531682211292374998908782865866953626105537671648579606077189093165948144374553871174806070642503985642546895433473102939613767629820334111054010697148878699573825003994454741421661020958483732838211273421495285556861037057760537034439841041240591809218862421228902805272253132961101426859397687328690358769054796454049520792487326805078801124693432931276605713213048782835880741219598074271743701477445723233291799546416377595025858705029185014564212453550292606914544112790592369213171480384224150265165196135190225646349456841791828399590190377681518360266762757981229934258184349370560253024709852702400474774868795230602097872991595858105599187043341057699361673734113436891727951836578293273691952722488904413976338469063495907688310971364434449912790536338221335397788256761670948015201395928237770941101699070063047544960278059681689911813208724819688750533008254138940344367101285685917736898711165175345436730225173371981789499610173959445771835549969765659162035741233195305036993987173419843594055369723322110237951463810914004819106060669880295265889365030371451951829782954787783248932068055651147392464838398007227302678943229521748229638350379497006699985295359415020472036847835187367356851863761436518738924900225002263684690619551847083105648109017891099024763362561634568669790988463247379365584048882281086050357996423232384929485189109098741507918741382009779280176795802777641542117564728617156015651254375545524001640036869766054195475751786329573731312214828695937836248290435034400951437526179207238796277006190953830109784440048654383919641215459067432100107153581081317924344611304987648116927605797314761516723120829919426825150402420924368023981349842798918682987425190208391312805691266945111569726430598876734401090871206641545337051867193747778446562875885075839037296497231349153909884667021358155200524233744105495218097319885748516774119909072357905128925880023788427292329056522954840875481261268333670493271740763967698962959593297575536632327614506701466418182621658180070397939826424560643546139255576043411881973243331403978791394996919923672948025085442731320310233747041639496419125825902392155799865831922828012283654420285466917393814050427138885050328296799381326059473179923311400803814250707164455209799152888160086684897856896314940300919884968877244434890841166434928817865292926139333381278529066727930176962395361629729102476492558947459978565501491504850652279579339396211414915540028341098844390619572072043534923822130861324047700896768324508653643739184034037617977114661549591335788021135851315919635121859542125510138647967230582686372147214437075215878437960805732401384705465061003274906402270779596712733530789886276950885296531810793140645071138501738549407108076179412473427547551694482273312645657946723925427257450036087228778130677048074371543134483931358187618961611197559542292305763855375736829230324211526042234154145414122021108538617986374714029649252658276648059036919236572379663942726849921792877032215934766450381159848348993204374052722257384140598055325406409151151106828554710804937697393433350475500586409677400691388524990345870346886441436008554814043762802673097537063284516592288501235547713111410444665684654878817491031757610504443773027523797805861986651123123552410603931891187043664079365337129026869185732754311310802902529041709287396675530755710344421637652551845718932301689868496790335295153145485296482338536159638890703456348441162500568793343758073621990235285163997963792241124308085885985815566189898290501950704175335261993970267512864994518904332042241621747228154598005895356485315250123343183625025094488345928303189440773894794494365916544371426807012364898797659968981362618868330908914283259713558059639846412152707895186694167650049234435787485777464935356080213890277044637567889809194105109318096192093127296459135177576154586199025077595019710792467119742203195731651551793317749911540843490620074768436671891639119809795644699391153641580070166478546724965776508694192867874098551710739233300661271913906762091311768125727310360525331826401584135372140494747977359549732892769489372786852779125352791809688385206411609281955740902608825380677123718459713730954869437445168493854331078467758814488521991058479815638435071170132846221130169081275812747184990385773873006997196044721137131812400334301448285253393911668913437577508759311910252094871298436704449593592409869978173896977838250340513401381120542835789906678980118308535375925791239181317472533055568301408634515976517230863883323097258020335845615484958123635645944193102343517160781763834060510022671154292050877370403400927587077697097320945513258385359564135979522549705668278795355248095017821826502396470726341718812094619554105120572651428321136134470825313451343984338480176666571678831334460769217722475454917913003220459513169722854850515901918083851474309896822619649833509724040251738706421160995785584874428654666737159686559739720007027351356315198235363529096544618550599720784705707435194500550710730169427971142403545736249909749116288076997279953886125711035377434856917015132562381490397363023421102402263904640925192531337557747169784502090557348073575074874875819363962089143166255042292234659852939087503028641421462199819780080811881295027569345363778194894191285094568452214896963124729726143174232577196587353547209375908733771354214299109284524648789372483477718208076841336487686486969893781385448361985042176370321971624479080137237515996623421107452152558323759349448631874523811712029764899431373048233853077631580315970826879928728782438783360462484753994778390490333864520363489865237480960280676133115080898603554588544868886871322416252074752539349548124939306421762049140644541044194275794096079415057202725169442054952672134286620588424183527206459599120694381653563848271949840088475855749834290531439102209489747369197524079947873799604652582224338450254903226723094365724562033801856655347716640744645718707334416440631043756425123938122459984356281584752488229862505792324900091244116674802561665020910414595786776147179403104578670573901885580480294029880553561896771051670877528227377285353150949564166284525429741114893182364800241165834028263878648144412358767643921825424547823528734067086297977542678866832832719156944649723076404045806519858120243274909883429491353572481932682940625825715474598160094860203615737370881030763260048269440288740660713221701782472390593351642745108033621334525813328851726463551918683524769583509168253133721526393390474539778264051813302832051739517091233964737904611464921626048758599292640301929001228216507657606875376644692212857345414271556813118499663989038148505199555520230366028120567313336451010096778387765216577257101919701141021997880874891604947401504009877982597407736863645016187360226852179208209423201492790035576006136415937714178531791706749438361972096934700452600928864743448889047244360218069422360880736364803069518409234740390475871668376981245530131652229604348622631729916750880010087321742400687572729024644512193989737624364261769323604199955574209697005990538317112177191667574750566530964150778281308683994444893683943164204066467995280702209280250958758628562463561665320189219078966181548430621582422835703875148808719289803579700859516977212433226419529146799548682714832680065791977042298702061495017307866962962105999141206038742453724523679027742102659172087078678520132539777072218479371206537745212781518085044519485625008780854959675966479436152703626435567563185175527185542224692870670922484759858268331616457410026020896964695669651128434381860734419120353301056295365844279561667448011660371114740637964955627009079789310798700892086312654821729297989582043717287452631214461039519035459092157870457188678005569771221872218995558757065198095064113492190969416051578684340430088029100794425201410312345210819215808308220030658856761071381815666979587577285242700362700584989292990380519201117657719008987624322976425536819696740780533122094743814474496019879201594499373327500998493225683088616130209321480385603794102512842742625146169310367663336214098298943625182331611369970638504160231448002230110788188245531708343872630735126790281436147404741506763743792439599177511129835096735042532273891412724703989558364068185453166975978683989956835641537790428543413312850990354093435648960919671704702983145572631155256719742701116351328776337067467917184263150341504542116412940215682725724979655320955768660640285706083876713270819718012738862137859791376778397548233718481841232753212379885184315753345758263571373483540921655164250473702867676694642573730449346879974590287184032199209919368233247426889932800007869308474864913111479438105138038527455262567547270623172125338341823559956266106988379238408710968898242533129799008048086218410818054383619293304499185278062798981047672865547101827386370567387967376985291823722481114402527502490511815811212591059769228779007114283141824227349535495535885371114553595469564480188610078742765399828271829963082275388780865025946724856273818032779635214937505064176966618104291067648712727917582075415670005885746165597696080720956000883297432523984702220886353824063863383491887593014243885212060162112033466089500765635197847746357715201092208884799482671456812714812803354574194197241312817457249109249207996862447187055464561410388614939971632136040339148460923598160269439205199149071007707667219507205505888721701879787015938483601937512882759470105285616451535675476316247414152749834172267143291130856655663199146554622868298604368317953236634654715174271955589577020976788217510504100901236511788778964480559124692406954495880975963946291489891167512682940800386775043755029881584344343954090023205772142699871012864499274166345093326048731355975790968482780795890905085625342470903075732986039224356819475918618658244111564500741222561819349534337551632682878000917714759593628032070330203655504829996434689740168897383875322919891571264406490742289630905747785016178655943631489721135784446499167282087450550074515481233000919654640154852547240710840667885813750268625223775812862799532786789443396419352564303227853074438387848327279857649213118622373334704794980244985125228191814350037815598332648035418955345917241267894424706624188940837994657883399958307694465769093939228019709089392432494890113256075487022747939992966569333344107736070400520917586122904165761457888255108098066569183259170276661894115757530892777684079879134734726724258367385768640066541407137011538446417891732386960970981413623656044300161459636059322586865766435419136614134464900903915803334173467663437622433296106464949146868007098806592136696673615497759339123380645317536196679827549490473857125780107990579509837352644486611130870913944743540482940121792036663880539232832019209457630688499428788040685596216144228940207831792115502107802865030619716078196298949816117653944872364268136195491170164392817688286086115051681044456682394325947178219661776220795356819379386498549143979109874993449891297371098887324466182881732578391940840854149026552966282300443479698534355459892279596729646326541458961792168905074921438968569548263376575447673247500113681924798886517659069228651394298495222099326469102399789704427056992343891927955584910009683159759173130984147705142307922237980348342835178486947364463696958323744764771254636889281014388560788213861652660161844209643460242889246834311844109942337811766486026034019226980086115602563071035461620769331752925752855552936646739681999682678721252560732871609757940952531403985524577749823455308459944167563761577635877541672265324876836577611947357795414752717704603759970658060669586390177124280520767575903833473617121813102980473054282625545519359955796097121025897733260205394108210127502195087721809503105762397565381637125224152836452306936699926720040947957914019456967732573991971432902573849862017498032134204060711704490443472190403493350300416791411999148661435454115641171609390648782943085358028327848601583888552514958238861757435878913022065646997572129158286533467363578165149761762041441160111862796504769576047537707633831904670976261492495631813156230184954799127021975814972995025986360474493739979608569346093064844207800080481209143846265993709688924438597203264850181982887415213212852413476210861975938687871720473595084846143089194740221116116571851939330005083379259947496635801993461842345551789542539929252577694568926465090282248841388614162073064977767867501549751320457966703699794523963248057549334424930266328269012524133271524011070531003759846754237469966661103767464606788502285276014698793277443758339027191054909213770411055762742156652661136512072355994211712810716699555144783813152607555529270011759260092065067047865203774515876123203994791849134712444782085171286817059405321419352626045389149343992710838540988235075738835294162338583957723325236603850296991755804333837914971226764974471748458126991363255385047461524678958614191344488754012937669711252429829008481575815271025156078759196286481535181554793856324903559082198018202722563542676656765461363073172729585989084943173027486813181386955258774607767223534097368425754327125138705005442481235143028958895897849080100523500861920391425595224109210897346813050647826445621654399376191479231889874284056429819004179401298826326676431954317921935702769613705139119134106401550132815851264368648571493110576334094419227090563807090404350761897899584985277211873189667563868942156073097414711925323903967602041515506063588054827137832983505435219485647118638914256044553456188253900363178890715822463782164183331488837395915268250009496185496828435516622744163092324023737856125526646521224983770571623221087557411510408147868007307044898329728177135038565408610115652214852423797927037861165296200019148541521891189168178466527567590962103914237542172245289239530983257496475742448407460297795669586367416227797293577691574552393051826100405339427717603002430314689123550145335423060477287379078745532864049532040772351950788091558436713862881903881916867267493050189484733872073172981961613527532001327256239858190268657073274411032412055985938117532463837793850360950452973856826361169998810597313840285874547153368155508629787027110048178355584855445188830091024398075394870381837659967555384188227149389195136356185520836848581404129202577463493871068804550483569645236522026864092099961231449012098153695640937670685705342992772135493641164478683299574241400063484642720453019812583138663951679048045210164373767736316051535047518513668434037397255856852809257891117037950337246290420979305259370294740754190888254187599527545611112013633402705866173986785488825417913411385415737829685178631966855625832851871258954715935115020871550698918942562950411580940453161623237750847420338696386103909874515040216359785588112778408976045347886803597192696615955551390591082419108738711197705231627613354717875742459638114261622620244714355480256474564340762137590655489230898861113194710195367786027178079984649653917344696844750778826356418498921888240157989422387255633336570996412958534295625829483587561616317130096606000850985233306201360980173880129077105695151318357906603243803493691427908705380741023278573277534561601805980294441426814969413631180301460100115693831004136635908865826586443334744622756936989812414077484961500917705399066341668785194677824068602901244989486420247295454755869797360391110745154380567552772940991560583981381121177703950187891234224465209664770427243617213149965284510779482235416797971066579285514505740814400663942324077170038519386949948635009976759226694693360623471870637903025393356735418161607777823819875887713039636454522060904080242027943507744890264726039555570566195238918705636297572916731383310470570940670652019327136136313515881412993337082813528637184996618151409992959134071083509743836055618987246213067194253798449108974923741561284168189638258054343375928289218070033824522342486223292499546994094475999332067265168679477850995847470507869184203481950460346127851602879726821453802748934712389715275154606880765441211064636097137869835953980839014978518190983803725439060262578524884262289634188991222462323546973429005785861642527419667054990779960820195357818632414433458521796251313457949406620167806003898247304664574196242465952745685779522713269277618954000761809391600598836828193978151967248632438016867108067841846401630664831815442985823228943991227029843244682496688775778433564833076247986239971436952998136501658309132825169824593837856080567529628638854656998958517098318326307052580580666078319373815738447324441780191182383246821265833885731798002737638747491986737828232286971142863404095929012668303553865452709043721489065552345135036680201851707386480209104387031482896776261013378862481527479316412867321694691274958937507116339376800603024242768711977841813637186003118899707581870885990110567087052539432128746022110743394301673917409243897534539730286249311183391426060551570067679397708370014443550095990002305922559249425879432727925620770131108711605759749099780811115062650589232946380210198938367203295939915912297154856085575803972051655347412135483392350683206156814137326478944234128169005798793447432935915459536894148787741847676418052404483165803705044091175360713456136789849085607651120937689904135096515376803352937059621194615962669551758235485007622974822563415435131340480207098672466808439236843708549539716084922859209893837218358124912710182881144971882103491047760111896697443846361995485088448761383128454251144302389232219255822335653112353861784707032413581773564375060021936522094410128188849245784166069072225449577154578663666618669268656981030367958629569278291832204465014687927271655703658187501898635610463836368980208881533975189871101068983893042234810590802083789882700165184618766557460587298016069308672052781226991430567582882069776373894504163567038458673000844045463089034217998249988859445759000437015099324652566631431202333592116814576428611799285577820263242717927926464843026479932206330118863788400676194721890559838323692859853484765489324227939608787429613091303092174356001004274165709403606708953534839298172291689207067009772469514922202955265179736221852570901154081749717849380371651641168151585303456811781345047870356024961057363448051760056014462993147759693811063072786019004017828449368076523724928161734531766581412202484665573160763316213594562569866518151347880416065051122974311128559142142701752415144691611698440168798363393064910892847082000808080556711808701117324653642294224135317679912656543545588533449375149142033150263129241820602648562973983653970015281801548179654218994444489097142963328435773614350995421760484881662792594193958450629924637761099563497835384271595030695191574280074755800777030160547228542713425510962082984321735338150800296241424089085420196451919346715310559669996152104993927560086357268165334608627454675064601399587573413721342458604601869024126582937621344503718630635678360441121163515800077786470909938133681730794395616378115652025448291625041578830659076644788512191548936426546274351562141953704401331602338155078685840509545395947038476812765274894721577437245568288290192262967381393154605804810461715560351411099399045078189264945694309281970090409260207807300848513782584375576877309017963337144940731112795494878016820282632597211878482241194430910697759687687529002574776808640606931098604465679728469924155971596855052628985714832340822558118589616023620013880193174264709647845090177433259157934225038197135614449374870821849186571865066526631001565684247635480860669001608280161867924141405708623475613380320668545892360002762237830670189692909190604035768593813129583942252142891088292155781473962066989158643252971955282547960132081643872855311674194079414133409257249897780448707441835177875986299054797477736967017139132567525831447280824808857723011168178004251862405461533183520614808986138973658566024073927127368420372167954310350171294114044554982509299252936213904917006416533865158028297810631526663825467017469483409317093329545804129267813011270547487614708961648476897651681782775422047283490064294604043424703225691570275362411043033550634795266905610634016207678493654811467600377601657700792526086223602286190775899286681683371237138173750200361834749664161902657751527274066479682888267595587340372441738343017136675311531575732395472692870586209142206815965330511221885754605962542870884472476459354013275409382379158408705723334787370428021389430045687604238050283338436016919895930459620252633344479849048366294038350002604025322101602829908342521950546548537991677221135345890240383954664680574177562703989887132659282676934727960569348192379118549683973276827827177766852221889706433977478777901276958087018339417356428318916227324074617988564241430030361916666562255862310164424636512145252834356693756157642340642853380797246230176674280668519113229837976344441468556833987342848798064413099905994677381055369796270238596080585698819700767751338143391769315087389539982755993768547007682167977487195213934092997629669084069077326407440317653686778273858862584629023709874510058894546652723321716526268513993090688251004877179178946270823136378728350494085219409215195305560678061345563797525844478749924390822887709852719609991769551929300519271135453169860747189263866623681170694774428337174953096532371993742040275084777823557283098992677265672677218856571055376167365739402131763627856880031731509240432502774661080269506292288695872528207357176548706722488683339187966088729143873918936657447606402633823439949052166666234150230589893571949759725722964024051032828133896223468286883202556503266948287281154577548794886856681936787023285005020096458829152802434342978221771952656275269811755522412411793077690468023372263426964533819552242926123654797170056836249171246452833888920451040123802204220358611105079175643252438766672939186398147279441049774106240158514126699145288630268001393419335633834641901524077943542027087934701852019609941079430500598105600205055498550945128793618440138435031675768673814266759058759580428739506224213202415025709392272769357145451933052915328370907877183744671099330232158297487967233944379376428242591737864183950492325267047914021166160238228166835077310118506006942088492662154410029031231437705447135434887023024114735609304019767252754878513609077623701404282909618837149119487020146829436756601011345901781557809785409834491498269882830540684620004280544952093015371591173648424995433896348949011798165662833388403801359567545875622443323861119297293993428196047288596343397077821287719693749810920339540960853383061218330579591221587930062471631189923568642532191371807599267820363488923450250832411816503149558359644534899020765697019047497770753074680105146949804908848486527142362541073051558602914191246231730930615581325981383455408691290932890158701019882791026426143062711276303159631317070038134653422527931046729899622953802469728796687015600662076562669478239134488583221993951685993505537898112544070951742708929635199882866146556389358209351567861300118842992130301641765770750128664180980375072484768132656478184938669488857408319466400269529884299741693968167267439222657549647047816204028057591868521535741650861443574928389992977496262983200439775892077001505564960190790466284535630589990563671492003218414039671795356678705830866106781408697539045955033369893389552877075981317850648951023662311600308760200308432266533839899604756612864644117827863970786076385910710172252677381226646597435737762742365554945341809099880315416351084308852425162753554710229866431256113253430169290438572207770266618672854067745021670995997367077344769796836088162215614101276136642601639058329113249449387530287167193949824572390305977166779802052566426307398099675350048040457067326073556826263678487153326333783329748018172922005879459276883826565045912388560243714793382305048082316383354104125555686539409224877871152572826375144483659851399986291393041384825182819505576301663296793249501032387141708755290151127949644204605721320560305840487018721877587857841018328819670150741467952388566677431216493250056990265721415183827463252521318922012805715583282311478615254660464258221384782192478823295137405800421129987755496349209008921912924373730847382533277512860251480093989314947352955161534358451669704643084967824355360829554571139662973800365230333691448004566086637769560347802585337234480684386882028868536756267515330739852969712211608864926300039318602738114701590680889869144693725096107482572808596643908020411430329710491707498507962799838607500325844708318861930802292938891320064259491816158102981973801565552410065919244195028359501746934201595286273214804850954597274821072243464668401449309270013083502807809995645238898697097909393080274538978879912768645856519141730486595652392572399310506200070976496816891477497546387118239811010845714248677318754399767892774801751511306215003984288763953500163224742034545616122583938644658931570175660348796155978580186260626076900371892858753077098834789595030247864700795392416985454771568256364006521785979636861072790034001886115388717410997026496983068101211760858068645003510519630954444175301594755299419881184949805595816540469647444905495822943892435498157400341347507974929936883174000512883567470513170909891835326503925109620723731515313848382628515545302963697185568078063899009455236927867692283243723182907828635350709264109650845731052903604110805893661729925356847133275593804693345223275404828396399591233695622413557293714500686817137563609817766299653439284473428638632560273446721156356282367867224568781940944936458646249345302955703731442165134634855126045149162762537432800347141043670300930156795935976847916570409469387936548528243071001425459906380091664702356418955029294938433622517116627158341672845453484702909964508596247750581586018495744681968099181826925752569685901945771221419075358941089069359911328277320917968606787090471437246243605046169913706210074507573713880775752981962457459247758107557276833839236882196098584416015296886131205457110129871658079602392829457917409804541645047106629190461234731954672715898682626850070603547958813006247787576166420318347303881777145619536108371212194733548663783327207192270077587821202350108334727323735281661616972568337991081787235268625597844302889019209139370858632426598134063740253558160064051546292645719153151564996420195034612190426675995575558109041929533554013771382061317414664311286468749249374728606817863090546344202017046804919985864877289666772640379221900292096163097904155833623494566090011287634076110296259352403254870949449033759374821884007460116772664123424072470063873438367877090267181308598812111200962761582135060550251411250829246460491409332280877065230700127224060258656302481428092383085617164317823741823743125277861361815038231939734728251660350205495797867470866866206917370617714319816370186836541125507332971092933230617050766962923417524112759191998642070224502286966882349215984953065737929071884556643059385312009850554238233969406539116430437921276723754758732745409820381902902248800051760716919928111369643766974594001667546971251338313444907709501030506172155207872809209623488598106434054761394340953468235367432623137744854647730514463576491404596067209634305627019983987856592919362470405926365378598015935052035528003321781108747234103040452461750836116441702098371757703402388956049608066779234604493305026061755830273404830367084430855939127588561222494810957084779312581584193892164509431248020763246495942351618764154613736471546231980162224775491639583338354228331358370929428722997840233806802341709423281989678215190926828175118746195238503626717370579666339094170299593143448076169979815270777417359024311894522571803799968661586563379080465886565814645498183849706645269151447612206436063724257474977116830284907952741101133672439087630577567402732013596601226115455258695504312602980614381666493618067646194246130968764819820433189147828051878841388769203721771139146490442513750781858378273000230852103679816429879533744750675206521916235790865880527190086211152395859211176353703443650841571165566751182763134488318795724549280060415936975102532298694847744974384466578935443378632002470463165010532296941398431358752197739981391570672216093753648705465508151170529681636486793355365616959934531146284500649306132267155678812323929590029860510843117943178284642771326985738617087782153832630931299570954821485402805623764461754567193251893996797257616282281983182396858561392363360505035492452026902263516543078100240132372177709656796565462397456775594074630208376556613788048695384516991162172750539704551869819158408155430452105482495315328499922666950770494976904110622000324298956158930374723155127850535278982199135767344850715605353934636516840065583657989682061477241084660091802139048298769517289605544759855738987994783787902094502845423168008683739397671431656118709264792859959418023015663496199287577223511766514154141264340210284351818656295388501954088258849685441916750704275731091136358709433055174480499030525493287470858885574577665612028096426082953115225443571413903632749540076007535589172640107659410067887151107758033893109470020294233013304792227578246916616020339839599759302025695902325289702851535272213202639752267534120336858704131675315832112955840215195159803636318824071180779090656785622916039429249926322588416319608511232335850410626118527169430946620632082334696380252911385389410264365491731989029209535618378140380746638823341990784918122190325787691784586257883866780334180746352854825289526779111105093334518384337901433419873822752434942131466576720253258644238244140553117231185733211751247091534371235088183404678931399548945670632814982182270768128147218113928178535671966912323959736224407785712331662963482619626099172180460936706177717045064793935198534273013447872168839725945610907404440108597881605724076192027584580601479955888809107424402437499904351407948243639986408361991409496067343886842151407270880295321648996230241566755976125793622558678606411936732511785763364904226960272416553031031857927181816627426645147046711832958840093017566929551220335058635609463337241621494838765818505002374447089307671834090173244631800682359835041140151055167327232024473449337508198100825831727930800237468654149269642976154110765803166613147261316450518231031888402674123427236641358946321382907167758551589423156613310659726755037058327053795772268813254412558352161281540638175794000046068190908862080985924791840947329076962342157125204329945176735430992321575878273075177845347224469411421421888723777183388347706523752464689143928722391829071994321724887376098574618692062895450472535796300962576480803820083886213411453908629142220628101118864516305714088130295478299143482670104413444772719102906146744051072244924388371801712918378127611073009129261419031534576673984230709569823965490296862500410702338681769055832662519208697991775962509981305909405312724997922110752323469671845327946392597620995479152858429132737890823154501213323301104386369471820391732999146022679556631668182109082344020441003772952791142459565368599789365317688350917720443026791953586852945388249398818268340736235373269689341174039042394936533839256720978517379054224718245943291080180478556897408328689544363880627494639985418701289246781566435206514026445881400707065061138742741082583192217209453975203872390384233113576050503926212081125250774085150992945207718258278740382515037518233856840845756950379139934783431244029671334587565784828310440231512571771575808285841771962561233268650296169955603371566387594629028047281411376745465098239618428451922765975886632519679343588913054194368621819959692906798020262953103462125857974008256299688345797957804179805654464758567369731214712735819956432057056611495315871561237975703395235980638758096535991059668675526623148675836746686041642748732381990560657970835683314861067422577124814444373938213990709236086074024709319082553116569271935673439058717245093058598298855866600541041529694040377431079480344235248351462741607412044816220516125365231331809723985661702534451722748599620580715218178134154729876663670943714797898656160081416706753771344966492605191821364022066812569137747722851425729700494746839135268337487815742795074479252453167359754105279482732974424041109539072935797447296801505964735680998844758518595162377564723729780806110481861310578904982142910022741230167736363682023355303580202395675935499408887158696854606421851590660246592073533880875630105242145178909266340234596896191658464607398946691682447152785722496720646621191629207243319233583764975490549244185242567879072681771892644254544213390043871293465226445333390901236602931250056921570748439133238742645276899084147906195634023464527315194690910624862402045294470408203890776370211416669106209863285967176980537558082423579472012685850052387182020715818632111082754986625119080400001984306118253208070744548789807962533104154806166682516780806442261375714430330632156025211048093198165591484033382919527376274379988833417674645117048397629883311813346808314252782895616987675272469653907939745924669668701878795783293656843559862766427675896589170349893925056588308681954486864967267231797869510457214462998937850540688421915427500133943171246644750974218291220659449163287204158234535148941242357886266317409589853169944649139011478232034267825203889482319933861510788321552471207604072258370524810166849748164497719317213856853823913969268608566717929895461055513268176769372945865210919478864087095758347369759006765917764865263915731566934276469566156352540115844690716887367458602377290308376148745181041280338722436627300962403243600778442209350897477887281467081056799239514472534786747929045467993397840986319317689371272477880599511348776180747061737308252602334735302148612662996243087926047185985798818134218385003188676236429261153217838696018187701755112808478679536956307365547430205091835019735507474145285837974556231025907373189801239729316011653979652546828245140278596894415036641420005048061877808967762299966786640382850596445593444700209255396397898723021590143101095738272988717106828717867842601539253499792181109387166270428938819740419520248349475542888348717556496370967247101175680369904074914837557380019512651862089361831264820499489464937101133791286259230086393885081561047651641376650106061437938383046220721364715961884583897584083290337683881371636606104363978232988340089427358802444979972011317966782110754247651283485888484015950045584558525810448041864990098394302931134989581716707328955560464109105650204544532887054915403479167121313021200181660902309129118330486915941487307325337314338226444648461344988497811802947546315680478551597463711315398814801199349753664395493118752766100216540874701538665794269232149923161307055213758399786797009733829820702755918819791373324540308887776412077901841281292651344761385534137568538580302001711526170426724044503499226558910124952074318362158925696409079501645921955428986660407825617875983184964297165371417531369967460267083920414487320418317833787638032927292976550853383144672992010326463664754192456219311364684185902147987883651487582553083666851155785912861969473349367114910148609076249517907046315968395251297932779084601678228637281151396839282982327713159030927565534819903118055724100606427610623548880138781509368078677820352090623696367347508257361561261471338811304124667932996700499208598269690794431314160981929067907779619494907026109386398986409219954607257974661883981998538629191713620316160296604814115852024049588744589936178525319026452553506664182534640960825712179491287659790645129706537493434883616033971495973931847735160515315873956506456235596484873403881039404238218826417202816676198538445355963788041616619553428173467747131527064152023427047814041663885940538820774213059271239410619301096180012336748865925587971620666819605506878965190262387583184246295834940707158026407132254170091105817359877794022434756904127938152512621542343302880003922512813770114201166252471970986336824331901692508682777183474102352305069371195934642645186629108101903393186877373890203525584874439110427850736163806661431482326041445629928061460078624653093664018386420045470618918640742715380892674054453271670890023399460132951796233352025044575522667125095798970009508602827800839129977131077105625690145969817486236705225446996561456119296488362771565929881394692636660840396262141251551814995676165481119737525485818366869742461549447126828896445204346904166628364355058398209941465386348835638214938569244195058813360237858558539198380376739501577588008817362848158916746058434820591014077658765725208565535758053256831821354315868143886352543859218441085329932184280457900436508779948653949677622395354779098956754649815134289737133083906663412906241735433563483417338380655393045565430383163072143170992509871485459611823171804982813228053073605905087894662353708228453124776817332028561031200743313577340968803887212254882274635494695906812199188572218888840642592489700550462089035123187349415962037529931218283702328553401654698398521120677831057583114472704569278426999017487473553865660532777813519205818055786314363689752881196411969396951513219222490224180259347438458767962043805246050517574978714965402142244787235112092141011934245140691730493557379791561424148537118910017737953361060243056140187535681987229236905043740787102333510304383344916950803391770905444065614097652750785281921796071561301242671054199440947623647698842123390019230431951155552208607057814810323970333249900467214320843694073409091319190404714357624647412400824457000431443740045412580279166788833719304331407656557112570224699354785677147261318454695906923190055417585186140827118547429534220793159119067567197014290748733306315156126750118167363618173634528191059022754212497061701656358037492046514679280124507209434409301996346947514784733068176287713700860775338650145770708314427960326985573632722580485056540047681998841536361111642461295958682335403612041828909639924246902637394698284183220687294639127428975687952670522573412738497725237478801486363037670311698578438192148403519201961556287128199956324698290200795986880431596908310416479065144680277933497980472436586506516134935085328833159238287769503401527185589275716690156618363696282799697485338899820996593362824048341597120946475785053954570449537096682186615321992703758543318028969210238845888372621385550916378673401952676197156137603855337144983409869106267318008898216170066476038170648495260062231618140619629583191469930264204641158239486206234421556525625111303510020779825055574337106411109611220076060905471134796241132332399154029958446178260529099494892934680459619017890703695827021423622641011926926333203573831995086696601622479887120944604014116022874897472821457782505532229335003639389294316961290166410495222494407607633826585886175217328540806338940638937056363551441369675360215756165973018307739332505423404097290862669516593357796706638264270352055614165718040961935005352636992337818335099209633546991559196014315629962050932771339784963283385087283599652698213990335629260693579790215067662222822467560051854671649681547351258240113275011575642240626175054063480032918233931785169328006692148150385205025193383460837755761402981370040395698768320745049667997632372443408311472729147501570456204790755281120191714289706244332530063249843985691577635105425751946556217047535736891896681135636231100631642008952650845946032693126810526098038704650569746244197704778010133190165776805866618307753679569168508535984920320597902702180974793992744249674823949313714151828073067738529354522100337335877077052239848663199024608675107441088918032191255559951139816605029294595252641473001104332177499068118946115689333062363621684502277478874095859559583505255456860725946176627885869387098331095150330280851408650008154505106129057023619410083743552905287702358296755414027194876708574953836104390107281668087990063020404714747062457771128940714901146925291438694912187388265272706600919617464868451313934986589742050103504634924776738785702852090640717252683070640521395400251129793067234111510360407179070205934057299203390741569169980413318113059895756457879086190780857491618011089290910868888629240384110208060214921009648175020828317006613611199640956541614694532083312310236207940753870949888837109428237626408413473055856506998315861332712447179104244041016429726372155233323763519107436043438291200769087304166030134956678849572462600788367146028851140408269691273817723508689813354130905138282600912669367429378432993462726719769985617098817792951594776546113489118831618595390763798639381986576104457750686207184861975484739684642922812846356453011210582219008771721370791734050571865344135196549917920309214213465953329426593634698251377483709507563074838647001298104901123836508712574671833282729399541093086282515951724523856825376444770537830042941991892299041978278877538396737364769289757295825633165869780142642759598768301370245786000989004891791257455238633510361754455344029998210438615828743840080430273212211539243081184594543562300550813350662758095206288617007257899089396527172422149121468438208121710357679686413599789593298968855340677430228655287813440893263281113310692681670496950462366608082386395115522764076124791135670694064039960526941064558356362757863908865154910523981984774294290124595443283211074150715307267445349304141991213534460205844659327146678096883171644211998812749616578948902746242245032820952476153951363897919754989774810242572193801045757386563411385052888311059508970250785917569593890453926262561357903322042465140733530985092993615108720771593055487987560657943435571667850640646300716447739446868847473698643238607946225741498296326565000685417188919562406081497382664776936430539415304075046501775670781137640165404925760609839487675922849312056194913482968219095702997365360162270413994654858706256876431028351260368165421282780966877203947065529000539702650944514123338400865603678881317989661569864588918559520269818620127765028863142152632674113850575637467328605136224830085591467724164204275311425023614940537559236681886216722506770413883861132668692913517887953728075989504698847118208001958794607684607483011069073115489671281631724743597172446244459411281828369021289347768080470586070528818246736118966131932515228515186291859776596500766331196009796578555524712888703168658755719181267388195770823874687880730877657785687464290100595736643257982290907855889144274952165157976161863358206269101478939096319735832545063997529786843004525234286865166153717743055672583027557755729133046572814320308734540503060904172800608129112029603236279320968562740643720105943336516850962202594438229370149055877610910935903822695034094395384818310008632094914194042177420089142169670833453600361678338621829422949999544392950923808102341263844555062579346007829712342460537522512027101669736530626089581317641040123455099506755966947666719002405158034272703094904933015352685657554948594991065109932409356061793981543607309804756719796040439181491894696036762395324443641191686327754467045143006562882005285784299098445505975848604106469898140805805442810230711052917225551896376929785410026506078348332167988469405919195277605803605547483080715377706437696262614830278081975777434569774255876411099008829217502522853189207465742594611717441527614674513516557144677058202552956635015707620527581845589126574811018076841145376413184087954498142441891035812498093579380109781435016542720335533782630452819474245815694023723531881251864666840671389871084337345116590394619773117771714969782177114551581169554208078642490642409292576273782162000107645388047265727723299635115875992711440680499501369725476156512231702160039655959590073732681730402192293956665972358190636959206194811618878825287268525483992625436393702051098376954881560701044635003210421555030260876041770042113938760038940808600974617369166023891023161076923665981687875539808591239540648481069796718099372763279085157411893273426741123432360766284049674148438241121231677762520873950890646396573471464332105652249847995431296997265084204996585538489830878091861523479417320054720195130214237067664100536434987051199468428859913695224701363402457075871249072358913949349906656771790082402404201492447988006707338142202843485972498913175939000146139822507235359315814064994065146398137817332747829296254483598481063435786787193198910123600949836679901174815082987591277934628928482919843682756536217029877564508631329302959886631546711583886357640133922603106281534225365138619512685430099500118567415977404567621518799497397733941024199605766476516229366339063542068173124669528149772916494687505074039662508634374828318930863854623623867779923304891602884689956704040746424885681460092952670786298117293938432274996267753286246282971885198558845585872493322277260030390216905854670627881030159310340386249200167686109135823891355980941356001019293531890069595511207523779837885105779215573660046714044143467859175856927553342560255991693452266273749515276196273613000754525569359375313272332645240014336088741145773972121631047366596528525508432573496084542376674250664577391046600011191597742788132096090902100550010377956375379634009688746260465494134329048174173213440977432304204874909483777387238061160328694679677554920506072622633588623114176518651771933091507544879902723761958274130222926639885664628602134679272833678457492033029959290494111042204848943078018165514760695540971482038496866646446813234207572381280641339413490440680074143022871783755182017064134167561793270542291203850623046296194480676142556092664011645191368593564188325872419157729772532475731023537144356033309823241331978403161765701499460615343958396311042510904839089599953471944717120340332204484243179436728683252798360851784652165221377748118271459209915931098199659771437731897428429787099400485225740213149947994876352468094067523151054268755567722279659216231048569625551348409344897429846186532430484094815119743662279194813059556886585942641439470143817157484786202049803565591275116559730171997679797111765717100039396202201865334368717316245991002508946976611268837968822410449498760065739561396469560389586016403688632378753604132371171755714163172878030832966720739128623302016984266443561480864240393361561622540814171366957545493563598424014325269780320337539499768115846034564092345946994618530786326049282965175761431679107563736646917259532697007029234725418532228236138068207382467571342363784189609262802713010155989985434749167954713916159020939014851726135636057905638987760239598114370219710624412866874983650067875488789242978757213031700289136293448755765049819460346313446811264666282743004583058899909084919141368272639953256709614107846043009322993264048178647938429954431610632285625846903445266201669405363897583387005544554893970891396044081997273187142039590634662911898425442978018103519606351660881543203257986649824262586434083468014323575835053595051504783488332722128026819372518971289647886588990685543240367210372697484819488439622305807859033054246979865282232375405473149579083825819332576342305114969234748507445705175047860835599777873124720917582428010586010060559536984533536601025849866096918290118618851070227752474843845422937979892152410643517125500906620739085811301616326362349193250674109343436834550165752585140031275388032327966993073050332558659759488304908783343609915644000651269360873335750234324743609136257768620187822402369043497227997545035471143915524708746490110990667389159104419900744201027188560795537954837847102345681032617987456769342237811547614246038211603706838408077361830540122751997500174584231117494559770894455073009469344683318890955635650225231618227233492593837689150272460622102181932290416509246913476134976898002469131535641572962600655684696494854605994532974087051195898250919792566524747850945715683384766191028814480777090393710448618657118661436403270606403456160428657974005912230089570894250472622568331596992787192256729953672879407455419504365389909389432625033944462032469297813925647549612155414923321663625922065970308252673681458811016007263981236294777163033926256069877920075287994951352245067428470738197849618237637433150323754518181745869392687607201096039513753921095930434647648966345079205945264451632192603372865159548614544576072587174259257659015173501408927672282567946830975268857545917804216378678456360791678250333168782275685559050568648555267256636691731212587750721033725597488432286270559207831293132293697193087764101834866363934711079966632452960549654096756660196790295021427209420144136647548010128015851406095590122550031929173884258927058066830797672120684850073781046211313794238959567469425811964951050862875668387704750996536537758227813011397267565395035031965286981541416059308272633875137622429828094020997566372084887491281827201505327629120964439412815431934259211039106164190024854488074148100341506185097805275407435037770785843564030590767518952053257479818584598516033115570268302270257675300326229364187866253589962632987269526282703777133294824158642266161206708587843099418163586965722349972362715030749415163821029640893177083952882398031727150609437918684105579752338288158908502783261831612140352456086857174739586740837694123583433561554574785591614213209675873999017203878969443300279445939040264505504471487085190211398921731693622075007352707436431412362607060316820213551342556381565887926268121160089801051195362734134747371177081720168126667850665908327294791103570307468981809336754682456884388141336933762197151563590810147256987707714036094000900398400279321242327392862822876871246685598197549140177125448565258967823231817848393066575081173047437731384970260062056307173134388229795118522063547344736239792281752116140925775127734580392327836686062947191147288666107270273419728405290467225701773794441570485894978967894158958709322974616784284952999165104627718620609994526047079383565363681429469545310826496114515063097065952104749984238744570850477149721467508353804485773627932645107629878723203436950667727842611518445013970853740867345890349555648890647839807472119509036119931456362515094067528157595582597669041495396604317175312075911263526391718942996504250971870728051683520840171933203859472917326361349495679365399313468371817992124480126940424091914403498343341116422406017331534345961483373641287435806379333501683980185276800901647318209183082600286702452409882128337981366749655387687185928378283496497106262781752741489141265631019919897457363563508137486597231968013888870409925587230787550098133650467141728153835728507680921494242148907547916476659448020047322354224252201115211240104617306904814315995107188191883155951022627293732864648432558778458127658338423815091789628235603805754993544743101912732420472088442764847347767081421966287460487663794274103298389658787901917498927620133390355010078923526090864473704676462423201642473940722494205407759946463160418267578284378703472567990086527084190436455515019909846065321847465866496612746403085812059885085507582566075785826430442087717821407781213537965215879248408533180399654176770687888294414820607445139284428300164454046860626888313464086046245514509983688203746436696328974423257876156531934602921283765851007740640192732060615281446859168547520986406196773644608120666806739207549881153555122520185657177118534287325539430415456831987457869019833064505623330062549840499235083720777416290737150197017432475711975935770105262605786979006107777531031796472217987972095532033237652984550449077282112888926813055482117886516469903674619191296487772667461665660273171719771516385639300743122720695931807791738715199623733888610606086010703340848905414774067003561202354743698206663688583012421362195635165989681754504540401341889956930552749626109015039949897929881909473368920205312984188579446843852248644948849703142645015432824830581452574609915082488278777330866775948526085493699182514875115695367382176798492141344330697877692176307834354781315303505201173903876441710547935800573324833376852209278138951323592993505090530299178644932886910255618893655580665649377326518121654483465296498724760207753124674329793866359900769561856390311338661954951402574843611049166434809336683050428436977758492288183500948902230816552040022906866023525238181476627181834832163330678458994584888649945709999450409529878070485624141646803612083658528211889089425509313041514823386603675362301662572424518411124874502729222393148747847321383241985804750469070438285872871984024757542408716711202262736625221865499208824538809595136060141619938976413372247861876209181266928000579959365507284199239942085767628628684449675471623459494795361603080690401098197107691250595171546519672029353785806747760661528426941451917337720233748738629970094059846823164325646608925850073245475410365309260350344341202338182465830951096027852555549513251192980883742944438938895556963385635936021620359711187486932431914325211766680624981768944285267790400489720416528770737878980594007132461798240160821163104996197870905846477422671791246422105916819164715786605200964138204957134494952504243926092959002104299898675673023597639729846372820425441292618157731352209077095330487679060702613995751298706854852951428173254595774160454429356564769789961308427173155661136143087301807991147066951646822434564051439493410761443604703141032461642158268596643146651241225816134030087551258489573800040648685922017524944532102510704939513371354230111907819791846904126120862773530556969290962151114980872768225498051492764484655922944523834666790260377615424987153607144962524185827776228345730033943006615542057328782634352654273113679817299620442484881492074236363017150512353425264775974490002167417831222903105202951683954467558127732674725575410933168982635547138377849622603087285918332249381175706249823264215521150658268014033191362475218654842624537404654498322514064038037255954533035489191308508930292383046416168845656443444549810649354608162173502490128828881848145873083987212250438888938779083020076965797660517075998746803503832095323037387522556069914474477830808164146489245042931845712985635753248873833719214119332119381292930306978011274154774602862704146191703262672993028930048301058175413480346983264927243021651712188095114868300974659836609249981410212456822966827798278543862891150014510439470505856081464881022133739877031943333901615489395506698472439896719791829380680652110644508023183549416194458784007653103230990376609415077898552010927933291961503700471007931948629998929027102356259595573249034458965040870686868620251375056006709709777079520708423369961979183281624294868772614465248693828941343044745483685749410672105975340808034996563521883304411489260654418603484162140710593855129684237568561190694581755993907715546450153024672856280493532230469276226693517007778879246883827289461830476542907977590564986415147741036249320430260568497272918167477962734752355368732460339836024880332222626374475586559313166500118074822001968908415561304617360780187346312191183285817531785464563751075527964890516440765380615127083981187354707860056659950173772859999782692130165578965951976485728178167326659218831501697954064641427292802531586157608124430222687567631654559247512143663372601414975558698757211432742845026901114125876358190058525643940299558072479239497411878043578831835777406964218754475032456792488918112879168545679158208138724972358443715727593194177984791450923935869713317482353791031922741584086930527530674633562771353220273520675070697815779783473626813710034912975525812903272640834146616957286903379304166219249304153727539706515191499120857072658192291942005463953259781381874596511489681326089956754309958351988812642800121039175318687617536277487108977033033387891425945590656828174655109857935594876822102925514236334570659191381257793094704067739713793322020153702549185553282666114444852541753528373161906274281528735897316032338236384921720723536719204467438377529290899606377259192876841139245947905627194238331856848554840986020674455692832763321313091745287023436787722002076127688688456746676077141255466832378535444923931770967995241828512856106464016273687820530411160794600031578525686047926956500308342030167182631238896594278243427428290363798882694749728671592053169468451697258043618171764058275364865604526709104602576058106913169731219905841825799664397592924936154629528705813292596277128144587044019372058481432488073654819133209574861660637600012342286450084168477148453956804730334906424036836369683057466437159779021062556777596880434403187790983902996160904448011106920562264737754413409029700752950679009786949557238779368377488415693956467242363557533142915536828630449898950957222254172876622272576287903650091934584395256075834475217121400562008147675820573383744435685345815604836150196237422630586575420864858102079256555634312306511464243938989905246584296946859398673966301352894948125126716411121325776333912319800056780386402448933369862225700807930998819506432290664591561413410608243757089072016627583388243177971563373964389453316599971333745588772768138420965335177767563896983625586832504750355937485816678400642228646671895172393099204280957821110433057385218368214810823904987322128419327589389013249925415102553079230940304232794056532595270071356613048631719782798492977854634062889339119419448450431713217286525283327790205503226013850055185942723353934383897589092744364102410799556986949302474301447743766287217853393435163876527128527406517706174183150888213008859547755409623163452595965464841652127870914663738852610689944936697970360056374676451962717329345206650662641636002150761405825019917356355270541175058519097162293147588584107573733134792945901796326543171740819634632971981479191076763932881305439691122532015797821738277098995404607350934424304454512049037431954193695913577044779992334648034273436874406577335523519001338360967303617983467118936584193874975753209003971254179396767601669656757567532237791558304196132751648994836654176713922693704287336933964459005211408420695845091130836277026843645794372619781271268824940119871111319937701460180755307046717841066623716403728481012498443675726819369076904047870379032485012758558980415883234307399381890976158074077274138606996233344402444935049722124608788118934641489528127200145701808175589069641107656125682744395843021592484754855477267526953188582317394736621893759593638517188535264396745387262621432861361076797026010215040728501450435258204078045556582000600803298655788442698572622408295564996284361102585201445035704248842228879483950412920480511948309589997271679391039452506621790607442427964619056342546979918346139871505188310597613066319734372903679965680914832409550431706654185861551745859731574381620793972066042513153485568119415288473870529816961120695812897213808803009017015289516817969029458640119527014699680396099636530525861630551351266754394322183276918097137574803150659832560215656815851053920289066744513298250809460397751700709392666515872484404041759324117384373919529151864921518612673761668024429599934927352188792882071611907861379815928406599676611659438318281012215888763857222598385777072457043346392049096447145684073017764215795103156676055181752509566986021268143058590397986175269239158158794594260142847529765446688794024823329605884308888238413468288862548247523311968203022800740312796272674072397838195769057909099879303506452986047032793635136043456625063271322563035754360246406896396727554623692139131934663243165732943857441454859188229968370975284556698553893144252099337684893279318422927573221926543692255769624327341410895570770411254791880619764618495287202967328553928036528329633758332719248226433584158301082381872361663100009544665320818703692856757752483986243410329087924902815173852578464504599605942745231644991781963592757823751886248004064550271410224593765324052475510758459358470183352347961780660203383308793116276805580831904974888435981610512981637147446274284826335734298828232173985971630511467995859394086343322706807702259544880706391555394534488787132629367420496005950032278377993721253262793775670068451575909402077505350616346431321144913613239947772197452543534856134282675061177552639049845971090312085504935444470546530378941747920020174841580104593270404097018783493537416558649281381189608131812623844139199518652018498182378483522607886795351379937462614665804137694785582441632176060185035504393469872769948882175762149000027126696790193940779855667702751019612435157699402625622755565932336897175147006687545271215916722077638158087192839671950686942441633058074894090682064396333111705707148863936556574325280380384023485735234380066436915905879654267034013402890823655265342668579492357857290097906166153588508445953987412638197959729324224713611729352386243035632874315483174095414267042597730349731622302954243660753371278186870769658074759250962977854495199252096658706186886124721653261655569191947807835924836019125657348640349045889865917544858524381207977569973327124458440726284082776492675635325160609445357057624632644792896124926525125105250608476461177425541641893298508044342267343090575358468312107505781196946446395817677278209423770693721465871271149695852084974213785088641278880486375489496220059244246040247366908297268169003930112673201772683940149804338877249972046929435398531823049529702782636419828888930483562055263215743771419452633386070062069196209013142918355853447192173524746020545275488565825202745715827302177963961689099852388619802331860461496424938792542962767828294149369203282127633364614871773681535208121988657197088945614529669590144032904900523370174930552215024961865481308744863225321647123456068698376951834782179720149801805677996672440677697005727952269771147392057835281958781720363030761632250043544248846087298806377735787362951547743720040453048162468996509153277752183699369613291382553613485799721587104481077041763152289495249446477133133565686918578869785895082940953132012967188701563655774965162277605883377255149573577437691531188720332871736635224733123040622366047434298815066080728733150504851811028665396925900935002315459849274279448448245469319814074991552050430759977967859205308332344630938316331278441281692581642526814642258847901576138630526350705237496077176584729152555440576688937403156209912284397080773235458387292548647775590385606210924263894576139909897371872647145635473271067493836170122673464436024112231022959500319290342473302772499650126081440858039039097222901150625255138055370833316933377120131753110191211191759038606151316366243498049223279462203959864484451517140007080697778607346213461075899629044832614385795390343635205402479008098990025389052786937756120876019359070851587361006699026668704898048151753041685366153179306474554525658505482573825957158750790177250701573281884196245707693404427316802996797778268643132912974818603395035507564259407438351193660022897161672428312323335443994718306551274506642529138823966298092202173397046870729720379265719483904103757448710445544040411976538739736951179862781435944891488995326755337675635586255434237287423277629484973194168809838830298939627623671919830142659047514881288266048995779573219028238879544541392629720313166435221948890142198828774838268508459668919176890109263737532977382962325188411187022044206079464817336521363202628003954758042028764728108193499811819100059210653053631344618168379029815084270110467210791472238182688785911769652559493845759024727946678049242593051050918581009903070436331399006381632184010149845310220321756057003679084037855708391236462750666327623960872209772285555985643081537107955965523259290493097522562478384186630130999095830187695005002869825390627836806617353026924117510491218781510788558425222827010102062645051142500832835407881488517841670239021035059436193916704246994082249431073114762171499510592710145531317133631902109157880559756170415456539314725710358217182450822214256158692120822980138811976335540582129334338893708227362677959586058960225475991498794169286485426645975334814965833549596949844416382128149376726968652323326444683979418095084929192601124316095818172395696525855646468650159775707739627220482360331599628425110185900592079708239387964580415888566051392465855015412451483012650472030517363773276709336176051999293587204276799349959082983337968553269861401079936911973689202660236307421213258894091574408712113455622487268915357289774137693921475257262296424721537205457056352222560688574221631652979041481465565378773545912946788588630653627368886180437082314591657981725606754132037827095794067664552158645274255651279361369385187192417349464597068508977005749078886644480406389259186449136313531518243724806649477141870221097066411003481155657509447700841668747582457845084795617368541389583367298241803508593516898773155446055088927768518009990892692548700054183090979259541743116255723920502849883923267361790271011049077248180640671498968716203736030378080157435074776265014959777934726312177982456452687510706671652617536126042677445187514224927498542955238194896983506992743239388279552294689452321302388351464267771079692546879472093724109955623719652566125235246810753336947018377538070953419403974028543688444310039200562825069605181163584836881905276020858909401100987996589366796586525596517110909668169172076961511606881898768652163198055172344142372503466458419900556615415421932497789065441024007670770358107826995287152430151687210609476373645520860027674866741268320166524316578643235807117808409998023744484307151006085643786779757653183412423756235528829285236121751637659531208751819304899946728081823982029060275792414324951796727252221575400789893621389244993427818257389524611484133499676162926208751637830886381981221178572879625016470314577466941399733619736433698048731866485133384884006850645497548581299471731461095953464332953851983798095107801565633896870855549530658461545996785680653818738141399328782550177030485376979671058954102502239603328385730157416331106780455944606801663190552562095321285756062514386179348988852664871167194597563649198629348018194650087414077767973941441660969929334285109921528768371439267143777031068491065672415151364904613552250730156933716982360953258657689445081228831157457763887508537843007049904926123562242676982823551294472365734323357747322526618345668812977759937465160325350441866106795239923381726310492998413341305743771812735322300125277280057937961985164253860999837675423577753225406431900409068501361629414699725762766097790452724460582779621528984617640014974567007992371457446396043635634633241086485940409250056721010970246225456145730153362602356745902518103873591966409632965747728975372024563667839056740212044883094407909634729688628051027994229897963284820161234381686688217100161198640437345542956460699070973420440832600651171853647819849864392750442701582135820605860395435737778503478218925152710388545691633399626535601144031133140866931801901919261260079356882161180425942967058140768167356280280406039958227895787682611125680946505897207764774344477459959497746371263646777193562931231425445122941144702035451446269678884430537052958101693951061546448786024570392865752217208629004113562404714341365961350910681164167854867598337213550256114605155673247212137484515779760114997922270097379333147137087418823281402962527503695604227069171778034016565966047028282951807924241762289522515048916355429676196445631013307788625201087766530003979410746309199537377723448625456822720451022398548279548296052702807736221699225638531198160549406166541416219417362621944879868822526297659568344787617310854789042845767161593195422055168939617514853786358022940308129635813800599557157678004679838048788200232312300025773688026189856016127004421469693248158156789629724816732844332440202735084358371658617110567043631279054357817807486044095672377306363034090903068170982734580168004065943675625203297969123741259723247154289643377269564517361313726324597646223786256586753167080048493302229666442663790324685424298036172626554419260858846904152874959411958055355352407768568952920083995158785972125741146909013198864571991054255606444745483903885998490767001314493594014829103848274910060116733026532274378972689175423205599618357116013968865539847588278328635587774888694196747060426757197234279308881027722833992512024648249326898483682688586754742017607113504554537709348335678558193523795333397103510903685554657234858871564436494304045689361082924167633322761317959910418425268620044927169375407676335777795056073645592941850872389042766727728446684637057301034199100717110477625467665127830508256871653121428082809980881741246090642911076706193692636490244233701377825806631540586085401195625929999937927590391938861624024268077987213925013732784096701898228739734861701243938820870052289997970335679611590539783960308855437535858665230414523515645992263260504494121618494973046369427897245211195224290264137473209957108151328321259980899183671106907355489499199741272015154956723515997271583387193872100296816362027261009645914293944904357482806393611583893623557729044627120003106195537004396938939379556420941496101086983338331001343641622942110665110274663920603122298722130128920647400150079290108633868129228318370601127527970825080327204287195455564625042309665153967129553332208078576404481557689370982752188539690755986058587862846991757674516921278976289525011872456318309124775417001409607275022591455820229254761563231694748663134866056501655635521747604698960436277936399571567353586412631966295453275757097951576578443202880514812986230997621548169819120695453350758026770828669197852333732077156992808144747428325671533964482940933997588130949672921052174037694035976156671456607816888429215336067389677482395847298045235034914610336489588565458061866925529433401372128910521097519013839640561431717718460027466354606889488281501574491994106148493175030132539145291522503653812471254193374611474121504258104068433303357948926434794063823422232887761692329922962231735801050360867051997846905148981102544556971583261371458553294301551579606519180984196867364060016068506641297758363230610606444073409655560243681827360667871714236230045719289673093651736426427936194557357363477336423052439862071028340381676715023432797975047328185728014739127788897401154241252491208522987706549043222795756247899102131841665030245203388704736412405247484826837671197659404209034249849416304462321790962067957347732853069399901391393629274977842856782453305960474390479640566336192484524713669276083507685014857735782615380281972508019857376100357267323368795419852056323407875330495895615847885093096426054446932061539829719451291737280384333686300453104854976080640252588233563033123099288177364301962717401553072555557472422988828437494328062294674794321143739737580709451180037288370746140348650663878480896970230444860396822066818614329593470161045179521784731002412903997276925632150773184271226808017238512748855270099214233052795132934711471076100494072286409231564786575872174860623265100178143290975899912433233359594669055354715598483016102586009928645238502661271962518379043193713651558806552212829203021780069310098392433180610921744812098106270559397507583278626225006062027059320813660884999025998372275067862197025246967529826797780577756746892248425075902826633697281881265076438586452331093581835409396937811055923748697031168262431619358847809435261901978908842918594233435902272812910323193332554404754072381518915928463231949940455139617396839006190518684238350523062020124771108210452724445104556610905412658725700798066981828029238202902804838001535032417377435624560369027408947463811632460389884478992843665294883367096908894915608535130042246063182624313097365818950499008837617796289616984725419958981845465400715696986625392894831917597058025081938712067431516222528915688090249664300989399556595436759033379330216956858871535228370865508137431413448106791691872426073215667092382073726389563930911835854038757440018234374621395867592885315956819194930850005365939547136522671342868730833687349094663211481801000025648629539836860522496673658514582990598945747531562625690240793592837663705955927392220588370070910196656985598790618904969861685132323502578266066331149823518047847740916414321369227998853196298019005587360864447223389010706317923919766499182672660512264136287055820301372436620734724865343620018973265491114440382602782936589428857328709378993636531776131941581444631321846194349212948475459138585848698796344005657330316035293454348514929157537859693002097346976902237817839821702219382803353155485483019556987756642779408468683681743763243459095247452595023707967571087131535330760818632234251772555327735251056458844396307263457571998146178502881755251631226761520206983426530903199202303058407263289001213003747068208803619594509603325681440595036212153327877296783551800283877944538147884699402270291963095108825251241324991596035882193398286365164924588543071203073714004172976490309494722010119695917713742537659827423983470458283733727905050130427954699618877806735670553464200781529186872069302625278066479399235545815814010374598911835929843835798397374465328931113468052167249816249216788086080663217432702114850602691777414437321549803385622222523104668156258779965511558728229902184666856314956909005724110788730299384762721276104413172244882562647790392676293574715230516264178708593010410135144650650794892421321070105670338534404264905604058869811389368906265970274053106808711977090969563730590407426052492048979611683996314211457220807894426727664062777554962135475604512973563641999722908754536455407287684251890858989367006547118824684101356092403870033233370199721662295617159578179716835544893364788313449802133560001327150990418868087444343729806093539635377409344479673666270080986009309942850828154197577297939433614189744656566551212184075501969520591995358361259809279275883256792688681334413069459325012415821395653721146874283554573375351754362574381481985311660430103051741800749292547958124616061888402810531336682073403735750565483690602000890381846875001986582974494184282346983591407153268071153250092658280478713424284555620120054601450015028274373369275788413284025664809562193824508939826094361645383771952586081480523768865649264975460219991059799047056471991673782157402415610679408830349486248984365651787279371180935490617857878443319221650335460665428562311761162250932030653228080402120917227523900678316375218890200184206563706419472131574684315225091148114630064323390327099800456068342237599323171869149920095396877134252973920816346679059743458562243141946739393020257528837704969738993260941579222345551085044443384434691576894984875469731624490851569842714686003673899273362894819262976927730901697284656132019391085830102106613426795352957989299318194873353350250492456055078505392628662077888928500072176904267202631783334392654641758727904770246825634799761523676581426131607487812078738301971898061606158282011558255711258226983303998966594273288979592347505193149415080338585060667256496465503025824129540379467264631956027381221846196396950106205829664988475449941298510333073694468367008620725293186616102269289755968652954912100067369205906828641374078833410382246524972416275379589889427024984003885975033609162311178732246691540127661004033989507142856408211779684554626232493489618733696588476476864818114889034860750637781385060610627435499138522290000661143203224393611991060703410872421625314709653396027649852896344817430292531155174539686579069463228691238214462835806114204638388693942657702325802494028232246531845676793540316136283515701907399655756788726413728511347053457635008313491023243341615372572312805314259331023437677261399057850842687103579225398187065481789923183007955551136503698558398779099126721090156135870672748803383814552313546015276378871962296680097224301943881239165009538219819975299577689036428684158975442236972651606352001772956039021547617216586030290859928724449454780174437712679334511532957018396630534014445395021811187685636331939832688476204338550917225365961487968439641751829554183243295370454853010659159361970339124643576818169723849220764547788589660000903202347799770903416551978134531056172069640884396161709622241316555540690062214485463231933325607859940397087929132363657235722444091830190730410744648944870890439129399686449463149968890352295574581847856245872971191289383829868705555328944934558189236830080406926688804930321086856355201003521539036213298422241569943158389384603521951139538119813742044254299068363350048196941086216417216000384067710904800078250735742667515526375842550178565544480226722246626145526295191331711711922497217327311274443203968056470409536443061272320840389672171452269711191348770083711636042866019276360836281662503587614247331466493705647701723991751445490109450623893898256058186353811383960257597075046590203548223931308077075466477330570729801912030393616490854783490391043491137746006813182456373237957064477860169967654781324826121514928020651072184083538784951129882803568450778039931362476945185542748322708706763413954256046909018286443813894528938642912010816213952405970657732129588708726946797647744715560664836743802108355092933848838579959586609892366017267489497625858542236006860383052242435951482017883368283085597197449059550223177668485815154674885369878658280906828406544337413784246555410352743150872290066979644484707071412773626589803661966172626816715372270434008780326753319013232966376545005555836061333546192512330893486671423521264875075544789991104692024020456489364701415532147494853387307099920485013158885243125251059695386482087340499273361482441777086561744432141397291815749930431145736961917037859883998412527776621893406164165923672562343740995122320433022145440783701903573737767643629791941715427177265790233913505451514828169686536417414853253281487960712500936523044396705365351383147519397396796007643741591687710773306967566766216547052317243727177642723902211384847654678267663344811518779790255640950052527359416342415382770406361540334417442970816707516216180853993624081535228429795245251547076797038836110900004370962488123294003007830165780080859732414692233882530953113826381930548328519837274243657415091600759200710318233852495719664472771786298757981758501143077735124241315239513034171213947430274746964219082055666318944766701917423284836659077656644130924922843457770845488670530594005873301979252027020633968661643561995458469569946158454284297363621459540194768835403336134450277388893742123940232550972205775829424291685950521977109972556615066876727106328302819665194827016217534644948815284645866757845113225537463840042086781409456185749490514452267243197861571867377945658853733152351856973502003627908564673056389440672968020905509223860718873512543762322503383056045340219508693547590351638770235012420293173758776890439418117128349175216796006759554031813252125586311411437103388939300236253936674999338676589497201337618699986588782966026249045273886174140387452892644890147557371511146917867936042421843975501216203762574256185708271285578216107210579298905630253848161139256988677834972069150223581188361667388477726574677185872352909400371270183009324236612070089995756520563117523625769468240255859194766570578462626739749478207689400580562599788900571891991131200546554879772210220017561936429024927324093919192275366447177785595960621387973110493037841975363573800540218822365890878668089066922231722086309321402151161659966668334909815239649536957557568397900362580771705914619530181485652046434373339050118871068539578284420581265926761657061326705774243549668648871737848768005846773089111212488662549364192627095868393537917601856614383583156550794628963204163669876499723343970068065579348438216293387833799398410023589080936223884726415485110136361697097571432472992256469528701374446666912748423741133239775463839966111366027022415556960017653084959050341290203813942090877278414082516756436837599169481955948204901172274863883246733452502580426620799565880775510927762880338554954417491352214926220576569351723371932197360529346501999763587903572651397183494801032076828674307613863069562165178391228361448610630699094188991789552644661075596787438993158315870862969750468862095690505105760979919099802646541089082688105138063795256880326290582767740541409591165795401291720674253451564562775899663159112864091438617236028407194859312148486898676664700748808652378132719357177331738636408193711482919471581925211023364454622511400999357452556535617243093888721907036371809927225942313862531753960220210455418425161205443074096158003574567207617098699545795166408156391838038651475391135720969390219604773719768660894606619214955011417372770842414592898682712565062546938578294765024690258033338157125659854888762826120870743639373106281186714594766340877806175650025035932509769008190597134764469234783206863081380304806972235421915476716301134424506910818299023764240666840530569614158321426605675905191389790331240078601465059008368042230723779626783352301285512742928494520748794948072776976338073108794617394098436024529773217595147489340392037407919073492317671508145253335773124875425054857507817438749739719323234981727129395181805585238292754809059721336289531594842747411283646982483554701567661035181924785171761454623284110550618325326354296838650309750979883380799994843791002418932635441953397133660058407390963155933762879708231963932757330885574355246092672445105194712128610388386459155481927991125844312453745422241018096531447772654349211562658661992878894639425480748862831511776669865648834749667825844148785738338696027618334505768309564913399740414897076049135206092332544632415617880614809326703487159746644666169548383779106850045662520873935503011208206824658042998682878322106050192931395464032921735206936788636466347843544688981925567870342669265524940072203473645998732705044625000172580295890501759476118904252959976229920194509650698695176853147648671893322704819323383207940669235206878959382975711620657295422884328492601413861352051458392772220111123054804189688966159949729531014767922195211495308935766280227003681716392722045898709683528598621112375045885418328798883778805884149014602476266519954153768989019476855755992865041105437281028543917610737902288678543444835331415409552924466403330102255309705837890036566605253119484665173470399409036891826558333773272853249930994641370512538128542633278902346491846682374909830641489332847798698824489444465911960454248296678846499486924548445846032673933039753489914573826958747706748608006552155677173011314335828541936534243687440632113317690504366925371308084376803589343662945052188382163638465575867263074005710781176496830199030415396536143584252358258757275655157336324634455395890346482887466899974294178556288720728219493693292117082098187689381277655939046176151991863824799831730722871245809929314707925846325675385931735152734306920828694787975823281042738952703397740167638116476962417127958383273738682015741529825359997837264460123745931581449029891431624195660881117397842952899027157636820079200463268855045169010060070805361475641420001165151844286525215675093868128693122942748237283022562541947066854778296870129369931638994169463296783798297515742052179702842559492887135602527257758770262359141759296653310261473662144158594759996893556405859047203906565199475260546450519367793248115227226810106830112196579025303978716821532952124795545051579128302577486778986698733027983243687959549254508488986645070881049046198579564649370268300849593341593232558320967235906352442321859444024350518673828466079490421314994401597763748487915993276151755361320132401459435476670380838474338857287318795219540832418760583311423601890315152265800022313747811806151814225348444109962251472673599775166832215910444630370178050965205399444814699514571406579619139979772331625207928877602250352828368062200010867406839611992245009477836410866571986499506364512568447467378076718105765651664958992194535832972884323637213180202625865894458570043845186351248923047097413867333455393707083969276041419184762728016402739464690681498127436599036586444204112132416665247628440215363008607548503417950315506782717937198713573557226427558211715527905470062136082916459092213026730963025315518352602102207374560992324896109749761566601238246888058937614084535654233487379462853559159039259964529044299680420574750495102310523611401375155784373396832830686867563675859682567510723249135891357231922382577501790627104755264404597397266536027347512448781083893812907122224780307785996736597109386929748923374663482252363923142750544758577407339324986214813419523229474957686371978934456198312415665070497520755878834832750770841018383946752372851163725049532300034173986581208553638668521173574454828583488072755216202467711651439006103948310475881136238087417282554114335275036889640318122863709601663344368301953415431078695458006576378441611423704376688230432597991600027400783957323527977514533008045873764054998613028301766427409588445231820754887073737901788508868285370095662773575802092663317856066378614782540498256363500650877256170160846100248576605539529766275573178770362628719541667378909450982712845191192870325191570735040337650421459413529588175064338746183008373737738441409700233389193182450011737952585869149768381489701537837669834615262846059826469205940527813799905506683173147640946535282800258157841267531648687515669120896752654817679845717029779480347641174930773369096754089436301651694262039345303599709841317408851612542206496314388301417039349731509794580922804543480426426234468208002913112071944196799226001657930692209879991421374797619900912056288297267459077624047603886549664861311913156307041884180916743141082061829864872894666250229006906765335928579019330045746469129092083093312421507000257279272466859439220364130799349674290308706132998605098779325446975403395199285076771139545535882108309881046807213647276760504000930320737747556067213059843656858854135999995000908107637538021364847923565832914121507169442068484337785844908966445366365738285528812886177779004007136594672053516195955514918198957454167268969411948709025618249998591773957428633692340219361541574008818102051948612235564140543596089866354400151182579206391230758084806710515271167531518254995762015406389371724280823329317845244051223710334714266731499069998092757278103577432700481785329514471103018892135484480388567433705227085585768971200382192294404252423614474672020223024323674764662433182210690996316803278647007140852703959199777370130496954560532693506157484804125506127807188195502139439908090239319632019405893592948361203753185350592381508911255952184910510909941220881024825363808258645522502875281432243560558504265751117120762996812712948596431129774517124543450821624761909564737046078266024021917121700722536036498632711075207107020519334921128330413522236009210904105684427433143135685350461407771901483663186706228383108968570047643837344769535071907742671916512472062168834110602560837000687736551686414046262707514355545579004938695544576495597335312053266763647681480047790459541930034637611293230924363582839336031737032850921828206764014437413667201184581854224454049243124939692735510602065026817498867314473991466020572668249164487721520433617341985750480869890762099901364259137544821120421523132980971486868844551386406228803461888349830213541496517916053299518488613706941492616990719977841955403881544101791985992069960269788479346386261862973990371993680296354546431562999663919500123976256747125272876955974228574286609144409741187853868259656697399231425423139024562355346301710753372505523344805093667526673193455474573314388784461951305492455414109554357885790215321877723481045830586297854216927665939886340499503023790730734763315900851334482761506917051690073326822494130590104914276314022476381720114457948930595236279500753043329082475013317778909347874243885811412542504015867335759952514675066481810465906155967894936386512753423156037488649301773668403121999125655397952344445267636650949591111219996426909206063361649805344409873322332633768379749534059094907938597876250965263399586711201123065873785665722097456935967459659106642562858616610955961282181571367336451475096261498873933164704472780489169631236216149674067599228803837451703530310404731528987143790665459994131423137641871042769134111856043811297713334279366640824005697642064482530511829477709049101256409129615128227117879109264784103872892818904839394089599792503526229216338933014972154639082293265397777210774980400092898779680895259715641287597787000189287663175620912945870806689515094422401932638011720184165554806625066334687053301792573754576714574225047483508446429652324412316958990116100917695194574941416046216179681530152228472409795041787569304933879517005386286450522522237805431865311307591713283099206143826946742762102149925273227296366267784137666334433185801194844212022436885738164874079914015044763263249220306460815043859570601745902914481789276061064238722555986713041383549874465549460461610817555738713359425031386582485917446825489466919904933447245915924742058308557601572261772611807161117513125290155114476967465261012263993640879973017423642942945375820575323482421622316804775010492587523142870599590081892375910240619492344010052259537757518022995398860742716859421963405393136796653250768779767386718658885705417811799106220732171216100041075521386230442458707914725038086456806318908229119171965799858922047602092195485958937619892250888467929432512184858985129579369913684409423661165476134687961037505238574128956209621797102164089823250891851150333740714921425139047164683490359780927272066215083482542072425969828243388196992979109314767088491083955770387279955742271275042260754115560623540495633780772906327267377368935825661295256651376027900163374191798605461886395604034165562011255096662525319974368902429333215778247112706332642453196806353254624326285629225682212787515803500629032642655067723866356307888163161826128862539126959303109986859197558580913043294534115788976750237631136187673156088856898311842906108618935448871562822415060646947206123091201941614491836635867957824672212459413232768027572212410459659981584521362816644770224383466607572995569398915946900368850040866624073633198606366220429891985731374466357064333580744210596935791244377521939520465145825093371827897539253121762673334726330527197340266609281522661012254232726529418537184536935466698766950688937913473813124418105207953030830214676885646747728696007417101807152203948857751454473264215451390607476469391658604491904444215283953649067320825726742995773395702178624378979880208215720691824068334362711019877552114328391793410354965824705202092458940753370432296282597220537574048884292816117575153034486446564596511316763381791585080539679377627199021636227501292017926487646716542168875502254753638969021362714417216026381589725850174484059215180235321327418144399573979925703771234429569232319174628951076461734076164070209934641490175632553891511672537512380874684305548468625135520873091511897864028596361353544344412267656334000082276025663458877738857067515087581289257002346965674021331548086693063937772996039162763550976068128131025043918002623299578913352843998471082395311963085484381758137341868431609049179565933702147119435589205824937778449744448539389109312074704665084190318476752198863682755099770079298015472545288671290402515132960276948760096589129602331540793067751240478270495304755095411260172533749256832090274969096227058281338219375338130518514657373982914942730963123898572925017839084509254005147099949674344440169301951313508715297421490882069796668005190650096177707552646579058392487286596897571425913749283567424074902302087883875395325283494530059348879778522643186042403781274756111472641799094340852429513036446148971425004264129724254756854475249190343952175569518515336882352161451173045360189378096819634784379660099511085128082191226097167605523923108906634519337344364501644212971047487649401505071813597296792535424038166086594199905499674991512462954982361113409356263895183686240501561697364117683471330724847717342726839930202562882158954732635657431036339406130874984789701166603944246873139959873625789594399336621587086363328942963667663292371655938157358048413619980199811412343018893114217115193236245175972009401834687153843095081785713668288071945985468223780795893552427417596373703770430577347147623765845802642306975420840490731448401409313297251203679057378046938393105912060312721718335745746315857802148209711258800254141026135477112729544145869527210734390443105594466407602378471906143593985233800494628098190451082106518112856671199778694650361490624218781469363478566713238480883936822901489343137072239551088724601666511568976387248384996266327245837866947591755741115351469596747985552818327854212472345327007425002340033750132216483074039202507082996510540627576725682298341880721038688211317096306496947759924546496173077711139248829688610093868736745365636887486051198087137302858457358429773034200031739375705754584452355740503312502243226563785036703529410398809000183454095696224291788730464948718545516615852928337547747583029632919164881859716901065586560610421628160174093812133290462023607824189752970582844899360581792514545410506500543077984482496503635399055819268474094260394858471659901681612535665851791102459003363184747450406738236304497127638014980032212994362198140560861176943410781380493923817496911084594321557932839527263543356569018771789471216998136765253432386099185779867644617975331295303473233355585246648806614468477534507613170485102805286342239311446037657012010050995675607548150708262460795107119683146036864928088301435791251470771489529942145101093341402371121041752131469111401482696071377921537956539018805618411908348523135531054791162208815269604624019301416369537285389609449324203608582985005003134470264713289411223039936508452813355335901204649638529757508285159723401681727785916927495009066507843698141195746809682034112604906846117372952355581784660607390566496842454833955974029126149379917720308943410068959580449251114394066199912606430268094483492564129450174747696105582356981883389167793268472484249189863321444670203081398872854344663104867689834319183342143756732780023710241049878359283612127109398473481953896155527917035565930238835682305498909482652940101927540045049601215327852035335953510458443694581527352485823382935216465201041228097499119767475708647799120524695082629483326569906771313042578675158192013243389766851030723284155720973840851637833182993715547024273431319303525360239249624811612224364903255714579681659026609516715171377014622689369870074576590127646290410087878767357070487771227182069360749932869109617206942351454875399184445675206392721455674476085454122075555121919742458714553202202123349330991387709714462799607239971074061882872241809214583257615979435869204417014582905767836154907581177546947163645453265233743327000499281733087679236517980810882695840201655942615171653689239866790073999936393745946004922235210856697354800678515853456090618643536012458948795344312125208428460588242271962608712892072915426527851664472900797332986059925310194542262283593083450855053850401146137541293592836395760462422738822427028085417162318294487284428628850124793016171465215742220290391315528193267649513621907075630840237146833598514050171766251026213348672157907080733397240460037491007425098705629380077378154441831844183349674654072639982358832186085792604958269842062522009530301079776942012537923348003133864984103512453762798132902554640787411482819594611284525615580561246868427749572990517903800043578146496962335032016259246153295325801456848396283741883152356762263093004544112045681133324566516782808181260576126586322875616989227625916836396820946954152336151628197289254910228425780680690873242250072838405892224640520714862059505466294352040844895628095056021878831767945838633646848082591788778401803565668286963402377937812117914588118709455723205643330513286390586046094494312508944759236031021164236077398682088968101619008247347520703372369984734044980192247341167661491910965632321485895013540962905884794776701983089627319509432229390456360277685592620242592519234425191165086980353577037433757373977534511642541679069174138394420593424957657575817614395914117123768644415873562173863836746901312620824200307080595612725230319631018756859795423215256288161017561313016393477340820435958865671734319387359325428995153415049213733736027726811406937283191812946649076303752534323972800307440715362520088394985448103417435720408848589374136739249578627523787654480546884943799219498166514945076169214975005890698168000381025740516445753192976826976676735302654308056296953216159953517192392089293755844081002087088177501975286205308516240778655929997103229876935191066426567324499953852455373761477363965978029568542031040595863375608681337335887073049437802400553069678173397772260834121554932992022204382056748989525550603561026126741370580408735492608681482129711218991489808726057166399274264827884073509834446133729867341425821358685032874396104142538349628698594231452163697605396233716009351393336640949852456114887857431924370227681981836380032720014036043791291658921036416450748306732512978384356882266100619541579243631221220660212693723967098385834594190545424055659572009144372275810171365267754977185046203320980010055419016157744842205395576105422393871342059572028534933683903423995805189857662892252704250787468492793305028129000675765139495561180341261362516079797227998171315180322959045987117097005687668368042921873284611069310660408232283453972141332479218313886775215791217231070351352475164162661175628466995949367682455002914728023318030402668187334096067143073387255994399316314579486487944709854807414451268467694519643370721737969328387747676034791196007080169021045368588696391872054062595867577064457346726912649584561101648986633733922426108002728531018215626171124245867565670590405407022109529239149346257175759205151116715937358149106472871632549619583068831003240193260790681820644339458048649551216089402795614094174771950898225347819434378829062940126497994348450515619913420369798640407948376997053303929133626966643071308509652201766224840764568207831604765192960852412387796920681961160647427337423196838350747810173917909511414741710736146444569086183909104033209959510141335444754736483190943982834894268244686132151625066274695941541339527678785478345623982983417408163010469810021533950274570314999280786424837768524883643295511724782252739704703016281352339276450853614512244970808466186743334233534540561505508899278979830098425637124832872148570536402061273005101763166093002336130418148571523296732262367081701057174266357338224375519731364301953011782387548187145561888746397499817218348274469650960812605774498936138867649902589442047858943929641219030663658785605105984717573166920433602515067473841063966240252821136999459082444049437681497018792936770295659276402757664417458258873334399912661758594211896969468672973943029182648794852549618485903327340290395739725145167356965312017925206343804276953262852003822198771635028617070314677349434740464481040164438682148673282836761699420933953903397399695963457550024969353875856883041532477274616251341111475794976250569997210190726577750728638691205863317354619839070281073633508374410188160191998397882175276348667101719469247616093734118246560914015833763351944962311483343615084249830028547065907732136943231801880398647398723037680269477622979960030529522453008509102801377402792638114899313203768976595273317316268671707845083189094464517820054641490697770158326773574299236232024962592000591764852034983000592178167119928298873687926215394689535833725733731539770033398222434676648271857043668311466981174194158593979014380518654564051638414655201353179314877852841715371931910621198954764210850406520705457008521581233826696009306840707441447253295516918751368899642011329242199493098555080018065653978956411389286755663418212855403117875487381354007084290494124795974021822215879500449231647556909569691155623910312143657822391257529483469177845666720500493842353263979580730452666443696525892259492937572576849062611102634832634520352505943087352493754244242980518310396846596204580883170115705982828286133033429193556908054378007665824327673926731686186667788190307059693272067669731864432682241455218183301428436756809355893131089668076385977175888579667736806712613581233351130972626447569510865304445366766288202990425742939164380404035403227500289014745042379009392988834754649801710000010173806237559807805476239460984484047786662685907828915797342507130670228976441800950685172392672570977732883111661180183697408416497667085184230507034890743624011770381160309318141011284556282382185246116824092115587063862836258284383632888394850691773523224011391876842609449844002417957576967393645241937539286552633738445546033503844176812905519757806065424870097223289842874548473059745966796351691501844945007394169906103695429486062332384015950571711309681171350588258701569933454297433740569047532722121586170097765643728720631632556435048412502030636017084176910724574310780876102277049711874982122934759090047860986814393500562837407953072072835188029798165755281347276284970666120403057012705354975450400832608327236431423457036813880256493184773636725061921172737546123173523250894243028627496110202388211478276932551902747666660655417392322125409235871424583415206078114810896033549092856353463188007237289123941372531940204917760766963717375974285434655892359637862309043232514649649416806393492977861430295823977614949133640386054183451072086096285090912949801804672518952334865420155514262227886545121267027588523033263326127825610467173767410985407665748869160929916251273443167865250090005151060288092114780272557441601856953976405511015091692357699130718211679708937813790662472126533792929804297176761163941280746636052247108108812950226636968660347415648506450433456692928297665028402225290089103817700894166656641980937383967522369770800592612686630056670814673286602360985462504903122122722890682666850446715980228550507332329726200297756552631906416541190985647681087372713507186480316751042032673430577992948028225899217043923978907512655331002235970420557979400607432277573128831654551684703093572979704622635944988065133671488037079988633732665845171561723047574255625654932923036864880378286387719135485320756404845644181387588063493011379760409036700649913069432063394002996743712336439758870607851211419057096257975632770800601250892534882221242511620294795166316823363052002386264354842707931357294746832517117509251557747257419240785760438224949788369382236139788099349240097006771138754473362828597757344851938532336204254863213990561129548742708619679210058019493173183231618526474905811024559486939851106371594944842896417703057647770364211900897235301687065867622780587722860093034650372555416613135622827019293059531681114987955283112193506697206767182991919351246147642211938487575751794829751199432953354196840983654781873016706804765166493082453678576756730151179266043742284429516049561671242901028635481909932608893780203445543811142636930411491369277834467648656920269334178821889884472816838729981768840262560696220499771488877667173414380123920341201610048561444046239340582079014786963036401174127061359268839177994258290581570343261959053562319872718690983658466501767398533523846776735825341966215934414599038507255169769477631147971700736555781866839760448291395114116669485061829488434797808261677372351926599320950891640205092577987025699552561768746779476743767346818311690779134555897218409531240811701575311575057592560447893888117772803466140285527037528013765295849782707940381095764257074869941604756253508725035583221296607968381411447196393438583267905855551378452650806946201085100200090800046303662391244437588964570065298338109673286489203092488613355666166384527263308865330268947276506299991309713683448080639730688656271377298899034096293128320514706344993712976189781986993513199720126591150107923020724622257891976748995467832243915469831157843084846249142861111088096452991842586679996704016840165524831971875886947066402651059347025166158791158122038556932233248264328376621669360841085483271059172604668216807621825654562966943505059734393792327105205332689566721677954274380827435597183394244654723739784932524424727966385376406389809082747087219110184335057114800462897982443645135396192562018029982411909307068396160906631011348326636595978974710128684308946565758442539079003297579273596231466188827953878114703576443850852972239231088291621283890208531097552192595041783788883137435877508962257106422553447628704062025737895430415608936576776060720409068828904525103942925060579701456057577581396085828784591142777139477821018966152885135427350457880858674066779487297087859707986983588480699458987890282567862855713365300736654214996759654917091394515183357999670923391570998075368237070951130749038988536224070069751928673314270158183043657079456017270927563087563055284523163784484175594103549347250498401700499420871977565179596840427607325503973798395664207247237525070343186162772138035921204039575130805667609832039625942965761358271280167494261467687563473991401006604756662279114816384591427723535721082308957347425189982334596435840741086253297666577803453210003545234846197468401736354873172486193678335131196435627948163704221120692882886242720926387474342692497328133061763703567704904616557619810109328080272155716198785806612224717419310200079146733531213849082078183219616216634602954367845006711646570674753596937792982681692846408483220853988732004636900745209085474553691959092585235806665929046654048205505455714986541314785563461870000007205467489674350123460356451397900172205957117054139010937790466509791512624518658599621842434802477343974266903694092771423705346528873178606747015781273825432416655840091051570942851888580654743583461136999737664915901971070563855770785916610889319084959450341453577229382173263398388829004774586997415957622445522559843676054571599533347655512708404611751866177199776703145554579708053463809970564909301203407569758627298737181500871078005432774342799268235788483956413248849053965855986589068442491062697910314261395773229989406705463318454251068743455797095083281176157598525505442399999366824584427331486426108953468972458308984895053663680203505255329066529621802487456082465809600061462510776297429697939691147545755606782477319009579096676371488453548320008721274214978465542652638117052163767654495893963798497280830686968781075601096534518808699602602943709180002361205787617187532089451407736755976570826411109377530343419835800420324036410361545145471838264998304980865376607589879969781596292190864406494005383169164327312560888528799580678214378027601590403884228583204498527801027921560560479408619484097622686856879373627076474452672619826099676990597064807435874558989357439697725801386077846285932499603719573505471204305368890715495336066311541316239920610725185706911887888697675759539585660876189013881439974490382433810693886843151563170272891592354140956766100088848045860503368044330896291614177085300603770463423066415382659684382805997448090008887428531831966136961211672781834173035761261491577656570605388563971040652680358422779689516749010495876011344257531250782503958355944948378960786416078904657607613876078721375438038891071292597660135283719912034423967168712768528259189454252946124077332895140241736936088314398665394276984260102594259065430509064050595065803864046622195329035791288462999603192970989396098166433384797060479708574655717559856477048192741673226772578287435328269806747583945622663271238755959557834120731939798057736224064575536268649267017412322235284642883602467632920682005816169022197576145874412387192130709015031701147406026112143311708029829475927086240207196555378426919679477959238134041692245664095313395910462307783518770448082321151461577693262468749985616904592100281785588865460999059968067744501587498059422854733461774021367312882075894157129913367521789375916544268210252974274193407963308981259886932657253103963042312167874506309220280807425792446230580321349572972944035027028103338604452434183349550330341428504947975802684554765794545975686959584479210471940677974203534944828863860954504013745873209682207966172496563235099387521711289849861074077590766499588616606778247003014640848188792867655749885412344292649505513870881543370688816442468973983750654441464805324655338545052144264797956301770064372712878257783914592510974167837126170831704398387236907137379540327454156045934067721021270923120662602076437372212940120541968244364749370246126369966857961982878532445550351406580937211540871213007360860141036192491520582292504795704800602649704964125238268875084634976634897261808879802492602845906709236139813511878990582229642762686809320891181955860288132657020365350591323329468399724680635254546765413292635470011989602111130957276432323421961324412106331426762135402501822639971462439622537684811067819351951067741921204322328896747114619660926820594523031317007294092607648396948956746837561600249192362470666018551044788528828689207224616874255070180579984253882649089609699871526725324120470805563052293656622780904429212337169595150846443876199071899803987456348427765721992485730180329534203802081290733191644244415830622921644850443863979703243379639143414055672236422036441024502226353125571992709486802760744760263646091847599757290025310879402232628624507341364952328413933924954197476293315699604119141601492878737369587093227840446781411770565247740134248208104037590045335527977696250066246017129306868336497322495781480747993419943522787090776365852372480553704658728070253337188246997504801905098764194743889832704019350665904962994503217322141746413550119521156339270290760459271397191551554410994666922972533124367351570581871680585788287545557084811542158631970064479969599363758404091104143826594440979001558875748895825685056415197825209171181148487004243115558236256086011346094763868942808250397498722824048847038652424131656258747482195851791405365048698592065135815118102924448983646551229266341521335729957196299626241179813450086290648611821088097217826901807470069897243003272078527255845693776076874731213823449437599204512413830338194006279022314217820697323339818241578782201842903608135447416959756975132142141575671454105879596808836275202480791344607003420309134358696141834504502482145066212192443025004252985429899473700132136237110262167646125562893937092760668075512120275654264930310789531333624581940234825794033831582493668191786924442712526951321464086732435786119013192525484453931537879448854297806096216918365770930604005071080486628551460984727088021112224678166964093643158151881297217851779276855091377948448523814341779389323362778107190042244947249101665916019960908628257268117299879875473713482727250712982757751563475366435544048621988343984433022899334246027817537786534390745503205273922825353912854732924587258800233795141509692408274782356836933213472203620783077001895974391556800070663192301018701586951159222973339979602912205382242562909829706841215466006619680082777372332302765746569925885439543121442934252166031524957011980355136303471560414748779248734897340144213106937944069501873281075169054984999134936926222433527734448891564095146913488582729105884954539804091965172997772673130677080258230255229767823658443010181221933485932866799522646937978705582787374879436112874775680238525172437869702181471449281092047675910141465363931904648921043356872046771478487567091102494715804263316877119878451852686914701649411830862194990813894333434037189359866956453394670544043205299364892229130072139828058488752614529426908830016087527833674695541303515528109259246597527990375012506288480589733280536528750826942310187082378976786318220457310644335847042723693381067489191127360493781486712092373705559167847590198529766356058241101899318556543740658219269454720992499406084929121786359478837205452530286722687817487043804458966212474218720944950491354194196155732941278052148471730389173151327010548565063756796277651393087478528316694790682055829862807795624599853623403367136459479088830762519804587896921024765640461299096819429129358418677258865622731331192225052938420075580380094626757260982616285843902404926835610151593930508587855542183518919804060134560654095556111857272797571731267045630049591961185635524276582417523800841733738622590432444839629097328389593044774258788597862039619850403516962557760740415858860716708986684857572123468087224397542363210008832283720668308194398215107192711652753565911544308708981438560718913724216723252966435472624461448322068584131057575514028700676008662647660934136938299128718532743144295398362391825700933659128736874621253346702234819531121851454076289360632667942241440818605332446624524485049933914889323563641309105205723116903014929387396063088928854367177342972312108137421287792157417647282794779255466911969068447108639105026308219663416053566456803389680740002577485404746327331567999953515657745517676173866766148718113345837876477963974014067731733390291698168895803485637669913082512572695380430326736803322686074900648892075846328795488566022777453418700507290238372496940922500570290260034069963402288075572879399721036299340992895204602780128070815014836157630968847917943163985175397714403277377701454589818920263668986698416083464069099204196087135930663670278673791759678265806947963809669071942191713135638840857257592453546124301737493457503981704919486692351599876215787188137612110800215727478825281408362832835579366125438561148993241475970845396561179733422987633565768231589059786747059236012246354294070067581961812864069518663414498646263891346843524242077854588319459279406856629932537213342335623019557788339349703449013314771598511911691278578084751413927502560557213446057069836002426465316616177768516109779884208852329810836407134614267622975339180439699182777606584350484327104783600620856251346211868955385618197052612530187583853833552498564142938941225087578357721702424897358059454734978712779071356793332306877076750782842758891396535911139419544633028642734624953790186427515462336538526629727511485954387327597286465695603588784737227808567540777478083088197497726600653169166486906909422603942201289153898705930159842239414692521773847536379634584367512473309791445180485623128161926648238340679732704874571208894879918726519662378875311160120805159972864866343692708365569008053551277976556781376050505764099012023018104414395589815129730898143750278813287274413983795916782236766622344720247209651506756153724655410994710866209051726040185953830672946065622619310107968130687566390782761943075766257924758823879276966321452799292552594479247618193071794172859324632982025275215320940329358556395797816933810320958651452180774424511546395512416869424649369265515102183656979825857662650562105279464241438338007029176224910092642365190900651559329466081439389570560197572465065787747426147555473376363490244571565637018423251648198149983085704905008798432857165194820539787942975391605267943238460124238378387869799018817090912416333135954121111179935822757078349851693267792361738955580900812061143559807844820421317435774948334113882391525808763050910264510908535285435036540754983835141178708013264428076690801809193991235136048959987224513199929631420053456585331878184479159391625922774696996308714638470591621443845187977563258686449996470790698508421848069856282266805099238432857322976803069014134473781804089226623796919538116193163839415612381629389852402515100063872773272823809789298320617622208753510281397187565193932624244276095707637758477699536606004174335048974036745054128823432177812528167375510018051864133891706664999980810712582682900267350272377025556638198575269657130772057684778437879313766014526195698253613584565839598744200165542807022232929055211156263870885126809246332152824623592187439202624063223623988723681438518536361691772772120351274931074832182595780190659470070519321708264886520719322408750297635760803565440265526491152429904114940295793710834466362194122464291009546384153236914320226883932422714838355276781761101369324715623829907397004442499552365762127945568502033691461380487976126450075400055155551033312504458029761558188028059987664902468709993581755389986053020882346492146934442753776145317127162514241662896610005104189559137135097689423459012500844755844203060890890822746721501014349616531542884267622214145532402271937152862324498021370302017689140978199946587402620807535550350076469092315186097342233292116424779907740827203207119442800327533386206405221007452555419928862392214846154017280485778433165611843961052607659882576363029798366835746370552949798844120224262800327880424176968041998879394975844183115923271888381196936254304128153780838609673685805615244336125684573144819691200037328297457242143214262451997324546600193283114959328565829238920607736435218562044060771478301360927069195850150131192061914684473588175321870313504185619614573204535799440980999910345173072345528561593829861176208895809650926410001486891150760916115097288202087420571669040953035158980232887747107983856112362266665176563209683364981884955726963691414060094644895219993051080757018922119693841998529695802831386479385798253859778723860658602828340827730343989601040971412867351441812090662373661182780220664332706255184995659616039682741410106256673531359223311448164708027295138144755941184237542825622709062964481629340860639889285838746326947946053312774564176553638474455982328294273775591392256905548086167320324031677614181268414832018965856971542262420330484267334272290318445591448966319322500737116891428462396406484185649639601575678448661218411656518062350433413705518855914178547787450428475645416380973622661996770492389237910621313209860082166676520555195507555426692869248600811278845280932705602569141797870146951866018219374132635728438361087186443861766622435860760891423496847832164617091023099122507356201843282761513229282867371702377059016666382611017259845857808251894927439677280457267181927654432870904714556456353808968645468945634555682660793515952964051342790567214188614849440452206129177883009830799182838850468662393932650942417914942595499098919911372853639139636467965610197955155713440168209332885267438904105283611045799699412359056301805234603248977162712430789302035729346477653977151507378222366875561525058687144596896260902014035594207957426717404807839019161711721340667505459823383094522182771308266638425694433479509327001219187812719873141043514677629155999332344822171472870677129993467285340783465932383848304596246461698938372488851989257426771413404856038323360647355459640085318259478391924216257518171614914054943596232508297578670325431657043517846748175782931723401731820594969885802859861903429160127381218124538606955099005561823705495756982933098456866287807717891302358342562239576765701158675665924630078005009252060127568007944523284369507807019431327497047770638427198759541171728628077462206929386081285801173786166388739862192213255895948144452788901115993298524525401967612464367091099773131710857377625602898156404279779819299005703729578735063078522230048111947898011643190093458435674212086974768114364178227828025379966034335991978735547850784552081184391518377749892640246071131270277238417391868157124495514661731666409016959337969370683567278233964323112754006154331906715267546231637773382487399509050875188256656115067214527366447269680119106451948880105169867690564204989362053375047554477741370302580065302478767432939511008788144676806582853471511894505597866920822429864875458575453082384412648535370248112390532678833035416056451497133195203997678444784344740951509199163245911879127911077517155483658276832310844487393239550793825772885049526890948247392142655753087769193041917330287387910697987201897936833375910756544438425456499160678316550184515937621157091463780140056697192056154591989491666100066322927301194292734695804039671231973964972688973350877210808316786761025708928135295281751957351053991743312352850564737066423348733083145121760279483606371622966951239069710744806886812726894115485504865232774166133911639973946341155257860210080626796732698744940686963095056184707193347038353021940867969943558660423365666925436003045566433352405567926448974850922784893896213362959085446248475569908651198046151448660122618340349461376191017940823317666637454841507967842841793371230733008113943276149686196626617503720334966033433132690877791097865583462340082016181820976431832290744415085408705642221386547056912431235256816678687344846984658424854466529337728920792461700441646875541027859410339141320189453905097757117542398540735124714278563798816145987889444047809733536852250112438417378430215496826194970390795460003498754481055151521821517823209767249638321112021380970107853865290561842715928900148710935878718588259207588261819530414521129801951650211650990258655690858452705927558264122935889686116933725288258160329614730662696053296600763834709500807615418350139968810769147998029831459100423027758552247366452771093283744661361890602300963238501458709679350844287704408134430589241146937390714186138911816054867065296586482978258653684445221006618797983338249146162734194376173199840375718148734671278113765092973129426145163732604364390933893049852382489548662374762540857761617489134452992480629029351628305390291025751305000305246269763993163597841227964676477577743736907708377072029724503864335053570060046837632519369809873780432772907660264763778273098807126024361948347067898186467402902521760705803969862596086177120316194306718529079269282135441481040406742425236034749786794607929625567877031759636832403292091604478717093247529277242573305768327325679776933679471009472650232206852198509378283678331433044971958594379172719500909593350016385515897547591722740272172656411556642297040730191052331185624665727572800083757266311926273753941594993976240573318468754976810938757332183156170668523440305393457822557039514872734531967918773396676168045711052056032971821164200981135487283564949961972672359393310764408399735674254189319562459361746504150324485824706698502015396590906332852292315538289971416046916142385004496186457160893261507955179261895947766661897619431279523254645875580045225735777087733627655908193857805429163846806621652482180122723427496322045481394995334935365359461926008552328958625683779890919259170065150226192661953653073072779243532661591917770400548222001767292021310758971902405235036173422321292874346494856904945298551130308459209301881640523359757426866877708072470767560666969779138479797820097918011697287131994302258805501790634865452856260725628332139771170565855261174933835532745291310789558677782404593164835954837826544515226997357416020731067249474524458101539743473164494627051536437762579729312712196532073419992476336718270899075170304223083085987793578777553268983427281740314545903262127875975413133267531435754525834428380198702444010785235659475934432398828000129772956047507730972059606422931991726527910621502097747018768275439649465166457321912028293699711580939674646176867519654750965174959283541409881212826005041894777409485971571363138716247425964476786267049254835654793396334640766636105226309509021812578514641588074837026137806409396484055952959123517868781054877299103186647030872691016872190380958105139809189582800864009434485224382658288471699383399621982447415800315431080517502276510928243491281234083107793911158685490358116776373305095876111153228205235431399020277473887785151122663290508025034311627580717492471637525880466881918806367947926022436956474733300808365311530020671029921300583112931749162897740828388687629247236986860873850498020379447493199616963021468479000374289736271228729125049266635596721375754179671903971195957446110368150896041478992756833083149168076745198383205693608039594765258342697669753872804411631384600207065795596737989933697841720138395084630518926366279033027625054309628558809266139515114130792411704224201151425451241333220978847218850000800304249958438315386324273648725079520058927675613717488313295853870661611179835836008966859372232804755411606603728154887444236530996100189678363418564198448473602271213091247893633620493858677578940151416017045268000598508781849432053627444954726106616500636894376501340079329850295212725751839944915533318513032679601487985082087409764089217172976512369766375703958833301440577684614444760262500515699162483243641845292614131678064739272610358894175139095348054886976933145054891567905144648618745355692690753169694589213490373392570275469922476785448510870538428868227675651653544602339003862903993228193741511036997672685639379866235595807800031545026726850155363995025104030752946705730218694780001161116837827963474188723842501920004888003199697621686022906945356796362824265774260045818177698755008105152497041862460566758732704226460314359155023543837708468512479726622659037896824127078312717696913048625823109408758997607145108024801842208152004533074803079246518536217840753446859402981069315713676444382223108107766679154565272887537854716659765559006387544837070425570979687741759249425853627981994519011674460233226160980222335171519531584109002118315557556547460962046266836538610141137737730819610628440997317290106152328183294509289733083505977855808669041520466458835256567896795390262650238708531392013715918455787302287898312396570479562761941214256002427746098671924407750529637982684157164767628173433145837140550831149561717815643234609751315941619875405128405786679075981825155471014912437808964395168555606130934052731694417847252424424923008717990228525535102330025506106431726524826092752690092446764612421737439891041055728970155036044894474848535711493994785204766553612898568724041299008197126837229815108050551528939356424013468059907732254888625568243480967950945265876351740131580588568980443041722510343464233995238864042978334754073813038739244529713762279017423024798306603721822276089432058767333175147776967715823024802636848123271198747977061402888196964613993464217749990656438069338061618546726976748076162950979665944611565030698793583404400774844506169932679637140975192602758577934695186532108103253924848272847730806082518830213750474046518717238877712160799314600536529144490192203083091988515106905813140588078970230368468011676859056016408910811446817614316088654252824766684148833144553035097242541600281389864557785275352809622964970983746654057569268079587339229095140224124218160674277483618947757932720161158809203870681922714159187743589193895616448174833425413778112071652707882937615487414718512983647946268525702203026663966326851720427169183003613495706640136926791108825176306391059705260232276798776505260861643356313840499981094696691394128309566028600059157167065819501191425741781014373261785321419639894624828831952771892143915365016767781874256551595178563395003305076703990485283117932289748433711793414365646840660702976507247916589244121540523745416265982534241732329342957198085898483608003162423891779869709990712159836835490678334706473741693148090736783322339808999217375364581865794526467086369142810957740258030101706407511821037725035123435439194352013881179099196922519725439920695858365609656335650685076308479325970147066670226648311878354474030337472702307824142657318492505231306459976591564515012804879695447427969118586517118621405295829668288944417193494890946298491237605753640315483258405391944610992189709524745057773585439566075048717377586609842843347952463300213178653386174092118935851103564779978102116908010950394034102466148235192312074639297861102354520705745650284459989648234228023957488607914789983540036081679992527534125248746857495764768574873504125919245126441729517191847951835588780967783993967809327047380650835088217403522385489802923014795099557978849014907054969839881137601703137325839669819060794131489310736035097455938620493823956775418383286423503394027105840706400094807715462156901683762837531762121400726244983104323126653297775431708448542365917854239505028169133998415270202115305214325099403073794787750331227845090312737888409148654381133657430006486409662269581300551461125813583587424491142396366083264601504501296680303221263071783979161463946688512489263592842337356379433030001103086940351298647987304128660392028317652456143170968826008773584341916166493800443167588921681750983507919788073381850185514254839288745932868554551630832782630698992337728604795881724513353355499335404993836085986667176668237835650858774647479838168152971351376891196225538800617863680336157680889055312001216577914837894173933853787177942687172823963104926433247149736471033081143711392989178793349878708330210782053801591161375297769090527121818885643882454380215668657852631483752136495074903747795820430171263986179816448528978670586098649510886346446143057821972368067418422973844863515658452129066107508062144771694533378733708233778000640845499378859588479032112488413273261529238008104548965838284035919049679594835697374353610420289673378109710025132439737597989982473225873835922452780235232743160033220937847850478611591838529129418789543137466150319056324871975500977108137069585468334976985899767679220774738121324131168744028776961613283476980191001980711806080970873690978517352649345349397981476394504888776267281789162751625041449922105964729623348473999897894079773199858065217957490422981061143509852583556035283671537256896538929448330898318799379152208278546846018816629166781468419423528270485576766079971874717326206998047802174393684032643941750445543535308966232474145629563846371134726685749068114754644507899036000669235820113088487310200390286386938235145464019228397556634078644396733535249887492348899382990962912518669097194971645637990503109103153066417175017856048933306887404308004094057424578650051999083269268168438966189026676430824577984411315067416478165778893951767524269049361924118062904239299416646942944949267107252969503303792935901269181675854130357105054223669953652807043577916178326958068513163797345357540884488570406249003965770702893457070159648235548301049742269053377396731414450507023351039971553934606829832532009482647130114813700454910805330212074605164983311076655213028943109783021493525723456426754409788397924942213047806050235152289695528098138177591441828581869218427063829746807176680556498669107335742058689090437196056258201324081047576176833275169516936221192517662696586413690249357288681049020718533056861908132516520186089995710470461762520782934771445265687479562395381169096476375745842396084151390314858047647665827159287645029921324284672057823462695693320465972114740926594929379455013450841091813561039746771017992606003120077023249617912232740757362944315778472182235669609961816935014027285864921378165297087762105396603586697536178649698977068716792695564117276323483340865730384205165070367739172981106605794150752736120616789168495777669235019262400195796311180937530143906206928998856999526425901337387638865015784177958869268929851739083441688329981401003156326082557797956126301292538402274915577692988392383676508185689009935774991512370114234492479331861090937335856870530709148461497161342903730692405433943315152101893544777749182008676264142759145911481513209213452953692166801916384163513073661212512919265488021213403677077730782237641651275870723134146071615696801005517347192772738717753321775980312148112149341909516234763461111744403858840934027371677551768526436410622989508853878322275766086497829250830828828479080487606562652609649538278465466053126611003715256692130944434549411848097360153419128301278377661282170743657933914622339147064365899078272126254490882204750973524649842823266899766996890223802581760235890248491018953831715532141732544212428934080573601371965453154570381039456270569457641146241417122126989069022722573215093659513650520036457533292803605846621934856402435896963928617735430282045178379426256593323442544949022068243693638830787229467091391799792664626170913242817695487077709966385486548157846525588082532982966332015420928748754596332567841489551589882214287651988525223587398554836567541470109762207012982592256434981728327380684561273540235291799514913698681147062834674823279132934960598585467695032930927425293432917511472420996542507684798764239934241843713580201916104246944069702141629834430118785700797797293979250755779029983313917156669421606670497500174945169532929367745259678064430034006255167507835914193049885811626149277437687414751565227836396044169512406556624219229602378326617585204885216053037242332631831044284250732904909084009142520340561339048591929759024208382693190942849510061403260827524249023928239291872545146208059256916272381923864236035013018773097510480696395048012511191707663903611000508501470312502028477644867990615163561438574175798253738911044213002855908861094248375612132354554843613573743944569422117483340615942242572772127287300849118215540011147082348068682259335900325715803197479464837286087574303886161850006369320887426566952169113563065708099779862027126507839251390428400475363560940154829533401461428637580716256871792477571385704953545695617436682815311361658292858274077700802834693771541618767376420728261695553598220888651346353528506648160057967567040728360133498796619966885568524130679768636708069933677086388112175797324222308921599169844907580659207707672263032410427430510453856819080942847992031411902296136406456329822352247932153718697523534240252873424845449105713163703023094800707210292781528360015130278183624373893077197447315072717282908725575493041322396484723153639886758868574943207465986381119224699738168478898582394355726792997334008305576629249780807718132888000056674015051485435628298745625406238026719309451618820139023236040245943458081178256449567461496528981190348777780678145500993335922323611110224364471555060438908610798196570349596085200615875732122358376252456175400838792863170659395340311524911590714969658617805135750933221515243417778554545593793258027877330884147001962020021398668855398317164383046780182196836716493973151651542057833586207721241618258403650554962565209918847310789488200355155212804384245034234237769426269510315793852725735340689395936521546795805689413546045520680388231838365537536136907152961848297834800150438673607125334094278253766461242251838529340575891894713897559909994140929934401297313152724706850464871765476032634761649460197414600280066400868028222521400811339733323303256018138393037463622463779541879424240492011633481997589229534991888438683631567896379698864779603633562358237904584024787253657197777751848556192927542064323043479969426074262212409265744458712531908489686113223180537259994873702766058751462765494222133727996573577813504990171659345194843472058104455214206440010651778864233507416541823685744492276043870625334583103719202646795173912568887473833704092557335126438022370786833271938489706544711530913191405351369356052410108932256847112867861476571427926490320159539197813994642624418462177726686618744249250756862597315521754787963104453470236180704003494035022303582070565959205339474264851991537063123427568766694099688534295485905078756032901462127308825275260405929612641173834621301780701583323480062189197224589512223858367401558919703802897765755764295176880188110560103202263776110098116215680606500608835984605555951620282502301551972775088642895621766023960950574393833719373532683546261071110058815306898290031688171385765027949589731814689828272568603620817304251553571618054041842035983625300044585140326464471436662609854650437625658522570762423262940760959189869495649130766128123189466662947789725160012997902335875753500438719532832249580720321649041122171911706860157193931483245270774427331346078421275464648528518629428887487076013259905614215735840603467337743898311828015958289054273967625616854477974254594458886164316895244709301069370475426654448084026095694213559347627305667844684023105795938313290702865619383558103936357681652980346908449800519722693093146386917192504664660980237988483985737692412215012480049953196581770260884489448819983139791755340305345915941496866827310413369446120031954917621358893158842954475581113120817928787371451214593691558622337018171430883041116090619496190081325055162069256234803853246065019276221866449591183388480887496701560457199931616211995909925623770427488623574688566654169119622432999347128862686848473823682500121969941837216602261214289935165428349740566131650711252362771174440447221678941871643851743833829872378187578882849605427715255538479672403214878400597399032144345667089378926891740793963157769337082446029786945431655568877066284400953159985276336005517937377051210684923095589604530210939816256193064323456532832590659134103921232533850258926008137039005467431582001022047984223632237239973669828192387655191958983941173531771759299601871974431988248326101526827943124297050336102532971214559268421130433824573489632028357658614565446406340468981527461827563728174739339449318144051134473814191955434355032336064951193962875638731036583874993409642335787911003625574569592386472511564700060908267929918117474551147533523419130185238856276264174436762877413603742487928586034469362117844239517092476586869863297666945050913501730918543803753530580466238440000125263417825742497115716379141750828494833659281363571376654980850765616143720756876078639572255248843264178508262480718314805405135525964441916743152045522029427134612291913958278520319967702667164440011406434927131803449244020674866046203287533471421555953028754601271947901780846333976196747045387125786306251505261015776372015545568006867170047158319398538218127745532399903931442424454092451398281512634939980151242347778862383388650822466890545021987139830060324573032142745193361717432212105225915982424055950501769279266725156094629049434366683214711447447637381313858596351167883978638059440989529612639083406249213592245873445242188273159954667867077489711119670810646786559070667239817253299006625408553976395313358881978624286549086237929142079417209511755119070980584791557864199248794165886659928982438007724543630993796741371075989990785365650662440032692141081076070921786315080689041090302768718987393084641873280742514932303953277776174871793962341348632768311086620905283195700216212409525052366885542854486251565874761658009580349425735701438975998495578762453677420276890977228853769740877821706781357991037490910841727426112163801390554237403963602371370638134295443324288098586193686629662997312371130862988616141677602781249839512123076101214739392096181333177084208132574156515664532838092341930267937494831003706463166142194566421829923968709664319376974552241800030536785952830888515958861081174599704841027292573782662517335574463430491648095217152759296133879000895661834342034336272487357984795731634484470725012689810641477402410111383942840538924444058127881675667789970225002485940318330337413780196090675476896615881924758265481491690311932434752711792277883956615988673576901594370533563300435619642603130181282045410572557198526636531761420333829446624039831844854288332318274806200069015807924829211555464142185411812052819392058133110594490611241443509244525842561151250251114275706256539190226694029150675783754031171647550715431994658073795653215292657304385752562513800585158191731974768265738238225550264650547052151215902818544220178806239815827928815436530070460834789223578456206332051937218290913127966210857273781943987899387475726080600453037334606206728162169279398359768656335380913344543198543436098209446510521906525162997449218858357650484638881978058906242400403637681136918822264765252051523642787408322838868475935318976713817661708369944959355149022994632450328238548524424531173774548981076884489439886597047178790012210608975977894263540267187770857501478550296006837944763296009609439900445700843063339632260799394832824141589510827734353162957415290806457068186378053946876486221998617870215071170267991266681972191448440517613767689499770391930579350743608402785396145675404390571334032125209308547922020430022087310099135599117972340677505169567245233892082075191035504241213264559940712814036382514759056759114117013029604548953594211927979591888974633453258261577101896246057765143973926522930674352651532466667594075677500137063942032710977937467478412146052366054585192459250117226433081099288962471492644719100121243488447637612308589902067505104279814618070923620905562399197575507493433790212657545449204710414528707328485991448740000619250863636795908818751092369852088921919892330040462652373566728637432017453075073731478920924144067349741966075402371220200317176055077370404460046891463995187823106086894056920721578919695304517801741037712837069634036083608033781768934731005920104817116569241372373870840521562834884678725253121251697691482881460998808838087866535443200135813445636980234015970368453394724950040677787898335214307759936032775484869613133192272307195569122526351969296080808673759603693580333508235463949809513337000250167135279374297785581713505581452891199000347720961273694041127932037794524827636730487696558064413483926616206916634306673629555322527376636923643677739400528451717649837592634000708926324124261469135347033923362435783224454029093814253117577427041624117378749418641968349498393061943529975376110857148303778377968776245428696980380028253724535476435684714176243794823156115407843866430679999031039707650932700501145362413615230700494661317257529787461976321589699959794250662429235026185712829187322342088896418226823701250892086862705684142707048600644857528164725687461839032694747444792255073080538083206932828667565986604297551345584770076846449478862384692733346734480732062604573505627109105896545004990797052296100240745095180344228899477233709251201179055715072424418731397469341018929417991728264598521393587690722740635261201398549532232125911770075887949421352869474519185052967904706012678685180098754688668943766056870821386824362622659618922108374945506269706430272481558607956741152208192026721848989129586553175810958764768357262660834257821196470670342625630823247513025409145187185577421174370381975818897641280011406543491652332812785269911415171090736196739207249809901882661647536350155820996704494255492388696340835858809653780438846406669516624400423962090453485461726295201977270137843744853462795008391771783986156032399197125946062062390881569651122601274099168702170628594374682863025491523700700337931347093568027925853469622030185711445040443048161162858677383210612969172087533347945555004235034551714326498518231320595591074244741638976109312973215262921174895540874908221578407247153075332334371386280424557177849791914376137620443179302494132445507159225178300987574255296434008722853902321276169687858579576151176501895394827715705173467401151664361920118749034648591118680879766384382405994499819503941024419303316864011504625030185608157815846045988515771209968058356971453342010704781925845407604626045161776587209319736895557986131246183671509913518841321727127619667934804982680402782997075660482231000640012476156228890345134220228948304569108373133889204989912669451756623904718663589131297006062297242982375186986917142047852018776028773112931060161547736183178414822307852056305651137783061552258643225705028975438215269184079499234431129198861784783514425633271422314184384046061171756028985506834369529802685414230078747916814651053466699542309730273369415302660595897824458901569995472714604478435515666882111760561904228974927951959707795310806954876647706369215997913454589703582262544865984002693088470548086697181811317575878394025843181335172374049027805497672157209013903017692562576374868163831308447322879886336243121356955322270641669013316087272987244431119893162204530465733508083485218877077732420452237411707840690894260361752907938790070750498958700732757884144221065892092403044692362476496547515473305040838336924811750183947426688868282029900458844133201533291278060912168248878490618281064165718662891652187544852129592734396397295027484468330713176767392761417908562165425067702372801476681617050448607068162127326108701433675885880260661012267356670221190065629475988999178231080556520235163940927379357596394790703839068683479603266038767674319033862517681348425470304324130119436006630856220569236857473930333220392840413655859453534656410789798175370507518000132565512962846447587482380985505310483027437622973713821381566047892275286550930556530552647574310615801276001916869195258964580298845691601882101488255417931309770766893231821058692673591801384599478092729516894541090073856485349719141231705390082417616600127166811154588919206925462017098005299825576910266834194808196375437165382138552961476796540472429599148107012760892118848735229810631365869438867950479518004027617994782807640819474021920124285569485389063605155002669427078032822345001204344895473690845368926563562739083732844300003810994590230772958471303852927554576740871834140564189761322321078557523535078805947418244147752132076677968541038829997405743081590369582971849175254989010460411081508216081965542559886472625671084574906364272788328455143517422911624706796085262252498376686892674891946489376908539284064683725521129384472146270651693705338398131593317645489887774983336105049993111855931509539017986749976612871519844143139545689187808860564063091298108482295140051445419876758752915884056443831027610131737767313639119996014146254492500585005846545466224009919543859582685299905560690015642336245366628894624495927912937596873605666406124178612256697152467830666294226816552216844213523017751255137855665915894778610296073528316513650129116125933580722486977013654739427030316320303909381531617444863034379619918674009203474787444014603987649766880836713170009041016982463925686355016444900944747824928391969132451425308449871838608438763798038578281316453750134937528961803658103333190059825859633942329495994133368889182542765520131379525816074744432177857380528969609486722005175432389634587867961980227899212984386722140488282022882847469954457465776420442304460889307415669723763646689512191022461221918061199371670429295606364415646507470429552966618350614092316381169893468195208065602739534310721986788010656618796648285984480337746014851455508726831474381596814796711842098762936521947042482111736894121064097004373763153072559765101741963968979579316011817347016315843154014426429377186747722314685702701373515020291443313162524894324057976353532377153704963838779538272735247595534754420297917085015778502805777304343321768651938702615132968714220417406649549534699972970543552777523321739917239481977151868999511202270758005649872828815556633520082246702615533060238288420442021219888039676767337978965692765325437924033699781633618538685475587693807673952701165740594339809285864004782136923832107888095208373380115712271295041645174693037772962102164956691702597306575279623652759284954108083864264712237391678401413062904722127050417535969361837527863570565792951708714074296869353702844815508956161865971977746561305539636421813368936406162396604155109655556864106871224412651164155037090330172316491603402258686874926328302712149438969958645589837593326286921922731857635700245235672102846772440115063968092465507587366451473809548432292188469666813775066204933823383986878907378115760265594101096443414038726972153006172323771137772029583063965919209658548110349087529858338786144058883809118219110430663232771565501805617995032322057002287072733960078284271268955319318798535414377128496739548539229199726499308904206927512392840627293963982638051683506835381580960533549009263441103950541240673692297090426562284840302085565776254983930245397077981691376582610087234494537580615337585763999754025096228001239414227957040388522330651242799092300037144697020161762946630819488058264538250825610865983193562849714647230561238627411946682132862610166146787734052952570011815109765975456808940929778165220154716091954055473007923225868298555747884906084551175284637014264876072628311381515689561065011745562577215774120556524397154416765841543354715397733386845527556042291353892320277199860389227629728242490847568933158530429061993436012170463150511231660580792284790610750339402749638169546863958619892817841461003389340458329654427817123352647345310170285805715057137540666224647612191530361870555857886557978003995871714739093516309772246574767075115822282849960036404492106376927873024230769570991855003292059838377859537369205575739588764011245053850282961580031902487320483219089508768843137837705724133381350050443688541966714385656563888510805547965430684110737214905234690846319043752525601038010178215433894841352473500981030431476314634962447282297853284108394345137154795033934159482657034773226699697580591770982438423739485051948914087087841957993472369774869662113792174499288681025556749626339757812558330423031640625922870436839225640296512797050450310859321549515213251951188560917913158059091456957174252371688611420989033032830568036883097071268446200471466277840812937419188578406116553126571440789951227301357191273491748038721490647546490371886944586817520583823930881270172537119981537454919520325532888519048112158996019539555168755643513283890376847989513296269969777388791489131257613510855648506356508145190634354567146490343582313523399164948425736084357873175771744477797794594149245615425900339715465614192227587731461937261202537356446761211002525249388248893827572836289945761239030388468879390960929246626138143146123421300971269123336907799677701109044847154064925403790338853961522243514639099883812093076746059001587191425424979992314384997078187233423134953702738244254785855710977912527389413566645962510354013557620411508870821516798988149487861421142806823926119365613108868690159471811305892778510495499645291134201408698177664565446648313452473683869493983489671018374938279194877550109913290820024670233661195478143506477389698280091434295316071236628367476513538887727376104925774321502697832896857044015301225958574002169527100921479471114332923660234863473123394931947082856856576842359784138825181390707832507643419553799327950773752531647103551762255657162226153921131343099478093222865002287476289276575028575036049920676599051261397620559836604938513877857918269804651644600358045519085965238209421788337777906224327897931295061690659406084461050727731872158712326891721660941907265462339300675831662118066848642333737148621663848805765597437016504258541006278296538376782602806648778422557739973001186806251471968612911307889542630076414778126579521472122830976201817523334656821271743455224764922755413004894206394274496924232561738976200638682634084068900167178082409900592266590247963913079270195827372544011884917420615565894434204185563081420507185271059185867787558163203034951117254382563379143420986486341487764351462609479592823336309758118385905584587229855353506939316142406517426327162995969954041896023304171595454685599433319165159140307334210002281453808561577407289507373895236288351477025405134339432360002861147277636239077849303319876327992218546305427861004883100132752474733455850172960582272712081654275506214487614490635926354344437587011436416942335730588295264652088474663311335640042377681739321778038011577618031132974611568247850871351072293298211725778186789885908281682064153307394587642230357277159647760893243449889746700628134248105757180673742308699970432141879782704220544704406521688008023521446289243933654958539082705104714601209020964893737006405116697637191839571210197324534997579001752109300150397753203638993573844930786280665729813055110484228570743159437201602984596251663435207573394988330805182610482216503765709319013416021020696395612007100326778704904684484351740026075775780140910069665047806391624636069610234690623406643868037546433175391172668921624326593133638140506963889372906759606371234217411621108916462090699963284399954231021381998127464568329094422065318087854116380855825107276365441861482022194978657083727254843720268977631089151824075343250448119062468230051627366815656775463936287754919048308245373908214493653700957240468754440167577633577815407127052680895744904918759681848545006642905824686672970241507539715916726310325838871476153536565864792931561973834419662432912894091452966168002590569844725287848481366175309845160690857115733648907078378169315224580160590392972784049065041742234784432847961560123545202245331966508161108614198428279473126437893701492162843777044862875795852455275639501008061715274839796621655491299162453479656833944987184821986874079982985950940027690759802633036507622994809063281333309903907423158230820703385235453235183199844055785374071107792959131125579677035840072553527198685644815525940502739756317187646957235901773460018673800944803361842754584286523985187909484881683580421548484021866727401559438472505514544817791437348742825835422765313321239750127718556080701721177246381846225008030860583253271478358218816837615510638368652707075336409076850839414306447213969189557635661905141483745646976045472597901271866216669980684527527063254038002742756777343400275176588667676550667770679111144072115222561722246223748865106782094518590171714563227615330723146821682512216267360419613239448336740451829134789044650550000481603630471488856057934834190819808822878939126736734453762424965161052430600965910368293201090584852391639423236732104403808990529037804701201258717752629889614312555294932899666412229958176955548389534247968344575383082914105582308873973445333707269845402965288099668419174010939240479042872022760067057144948833511680884125121966336538279210534156118183580883358462332988162909735139591683973661309558915422327555455138669896848737156289528439045314898225372518900400652511477534940888058845591245396020934669433605105933286456057341434727578769731896668132702976209582428191884993997392566179312894793907077512661857089169355853140579118886944340242381360933293977284424802038375578314188323443825769963225702794962351374067882308878252086080965497571828285786966676597913210117390091477575904600496214334531292270164796556419485897650592236176487748658861814834556156699285627462182137659931619249690264752546241863000800669539293249526485302830604861366896586125197417268541433895950393311158850978152993235529677046661220740290565185228356739043000595716433055210807311801115132248260689498409890477977650105676597875345188420916411051473633896399992755357756002459906736671281192788854698221290899793873275425614624387353836420211344333640538797036319266487811394220646682068588300708165864911427546538074774265061685589762705424218758760537378255737672377961327595271510667567379636200779565878053845665412963302061228021164559259464856154367730124577896336478143297335493125056566039042729215878298499202034133024275737521877823834511821076276736566087400255293353167274128029041796985022642981821278487606464329182983691603287427547822647275950246018622388945011103248636420325779132813650121953800617561833968171952673521639012077724678954643587125696249230823993348232555175853531782490650864444189571441819174588754548388030821298397471980949414394811880498962769866791572309850606758182075501469870159942163888265140155386529101789774230539525450357648365510301311773300166616115859862012367099815295808907104666486727608777924357458158752267552612783139150836077516506826036909457727514154372931505393958760915349486323509120139794653596206143709383169971012269374206296515055893377439570252161108523591184059777231261331339428621936883952042422982737220506308392457897799256847818043712770787241388766703236046392613532382718038137739533880652859015272658428124003374269310203818632847990911198001854377156076464930179563575449779039613718010136590625784379661955868276271116292862979954828375868482450494344438825334526668825221377137569595266662262819691349082434142948454995415579717988854373808507268094394062999556599734413740263503517511478467912783320150920707888365531494649720706540770521238356361571827150033454600676572773238352829309242657963808230299420553499683516158987500295758027676671864978760671887570418798500171854836300833034010337652343713590907316372162027540210780094046636861638431683311466527374592766183178221760573323215230843259907023141381766882143794174195992921881615682661658097829563312950081820414787889273108986841221663626611713784098262664343527950895913041183833406645001093702755087366712388004927504889103108705489976430896812807869525768794467741497771913050455541790956590334549599763556402418481938687107947647392828055389234531300216504812239644693494003088153533379356252588128780402007858936848371734085403131156909786874753830204177833433333770279619570312359101339380649188219694713247243492096388743089680828295292639015408589104346957155119154014658471075761374301184833800619753352369424290387340486374888474983318729955640285843719235756461177378656456219523481173260501049707186905558105640992852992563474036644583321796776783271503165839810111627718598566587353002651432282451517137043477083456832627049987087216929304343507688715432753941404463322300810799503807118813410911575964313587350506397062896381074923741428960291228986949800375654964534289467872869602316294585747557029757959604324402607829263430522995260438051041516364969956922411013308479486495973064403823534935663839430879049045246692186217231168957767983093220100722703816270180123699395858388536548223693330665420464031477066102445091059851666992983173314527558607032746392739573002428228020708129907282787434825418798402944259738160248796625355503705540011120604274185668550176030502553643571056454972888658734627272709337051905028329992991945668885247696694973872374860576761352365880846609713486466629490182218384504303373163251449027851300237637637279845703469781031201956390429568985625971670842525166504135484772288296317888689352147950473861291395644705244960166203074215776913646433553655185386203869338152913907057103068398907255925217773516669994453376454681526512269808830589220249335858757494767988917616576616664284349537185386507566030241965060647380599312830030168526716546622964378013059708567763200574464990180788045157767067665263323674607482308607236872774606891827906948174070770728671762746625134326850198437900443075384732374842688079737531019002256159380722115482212594856810725855702512664882415684975500658732893798816740399744668989898761874763965618588604376477670152387371895913283069509921582156176630301815072049964527536717532532457999047326512284913001256167934843983029923252913456760684779110985559702141467839272404895101112520571064934116524106681562199666443820908703393356530493158938562692842643030561896626209130432964521255999282218598461141495603342879025323774110520399305040256481385961164738905678350594601958856892455875955417005322159837164780468604910097892168525139283017964137263000625866327883820366838475625150388595689232337325942369343817871199184618710790438326392255025215291226862049757057377332503548457658279276879140747804069312960261789027178516651964454548625993785598153001042009926352944739626325674748580253530495052675929125102535942937069917940080052889868105162547952013889724089202879370617506038978614773173620943387207657326865709899456473003018928159331714306515373274845962364015610414524155579623810851266502450482485523771526344959687515187865673382086958379343095100072098605114635833550704546928817034865215745985068720883463198368116656003024691586083877194693754107664552056583470900902513550526811252721590374582715787998016661192822876010542594485095127182277065472971583869000724030588058805638248500193767069025193638638502869998805215647266868961329811814466000182675751938602856488271657274955492409644863462585319131571977130846117145418126154394208364465240620956403324679668209106665174968798160103902155829116514157859105237854978445893143726880323249253556858379716717199651130918228044663804787091251249500626572575627658983512381440659529883439809063764207156709563182786397660137987121251344886981859316095711963261347603351359965390997392448713081493270993915131325683530705525774057047326911886675055232110864562888246554230026564307258369139560084611131179181612645962315706670102665416109980042705496530203525689629643283694611043749532366948436492153680807958346250570443501878926432334550195554172961626611657916149802203487830703414373893890558184141232466190427554733666042259718578644988861867173394828285507194466883429057929884628218646942533624487052691511098761297707881611472923488350236783515431419032553593156093124262412971640519705738524187161947638289302454177534681416604584627410757866703904916789498458972422623945551571790881993820728627640142181393172329575292199433608182581022931315145380237055153315445286694636085936437852699099543836374567513608079208782035734851161818052573012890158049701604325091059561688450335481399381908392803651854307716952385985871064781420416001697351527653062016402429353337416547293197649852481361127556457701574332572782890913905735974353824597466067608719655405881019747453536921208548612714370260425797354381525800096308552105626877140193793271331588909676868211235586971029252288442879945217214980353687478088889849811839543448442622267653181996566398973981506999700157102897534782182822679147009269209311238760833299723494335739844394252005857800117668743302289347596536931824759496548848666164532177298634548183181341062201619359363073042272124571057438390064423242827534629077449155912914302670792451673316321827211165858964898553538513710858400404728986913431432202333370036981476083311941980483773116740320332345672749418235763023623328869434379561650138333154351338463600891402324047061829221596527122440124930178434698820945532657130755316162997269027128975398516147945239135044172287451204400346158770903035125974974646667915416008599232032026590401432720052419743432562432704042969208139491072681461981771234895461657709813522634171880081470545557313797179333845167318815674201310222043151301421752154746639341675149082380372166780448066309136553110939073331995973619316477195733740958061133645616348518602888058582055762316398653249143792736239198251079786064179664156105906347623795954411916299042665774459409225670119108423668836956578459563024365210692661171005454164309348418548618273607957399299228023124986730297259232849929459350987644856711567268482222096652758094516241205006321840814503220926121105927967749110642457822823488042796167785697318159891260351411002702778829994535515022643154489806759104257891113293983748688992682838680610264449753145386824415885285562323317995631169162789693686731708684516251750459933664011810574291723677583183774841515100708553736704513809061695970799339942967844701850088214757999346960773484762394061911975999000470750414486352285142008738458258217935024614844959365341832866321635519793996759515097896575093807685931264045547845337312745557748109883304728578261259836616714046078115732494540902039037567769210735234313351863399626281026620659757571453500637495221876998058863886432783190853690166991487916569520722294664310866972907986179133722939163363158340810830078865392169110307670928967166664882376504488927587529895648968878866365456979674130741296615945242665113768916691631126630936603187525457959159659530586834473938094997252703078260951195030225743562947496961172494534824813302947884913893391569516179962899948454435384508050727602862869298309110012953760995920766910777079020594700846410422419537967476783924226499227274753540450001651973228195713820746444053552132881163643502491154349061266623674611910316450993090261186819728981897445150798021493538527266476329127800368308818650621466690391288334067613294774629748805394842712769080667458611006732136888330202160336708030371115954101505771856629427480679210406615100741545273641066002818546147877944507294059623962167428462910638711967219307863123605756157301382357885948901664237524984579920882037206941918184964847213191824171303584032941915588624429890871628511438484445337936949083194321486677464566970183357159918086470771450062155180681755842473047716501834537456774699892650911943681391446787321426707106731740604719643906671071584587570034941507046268514918468432136720156271456604787777489012361962416566338976768193414880760797923610972010529578023092298292254147800110194571962332990653062469848635138696221577612068188336047376490853060544918095129453776571081693645875949678876860395849349064370852453984096417346104311660998861984074587781529747592191521863539014310024726770580852916654249266488287611108764170485535688314984909789552467441081869541298707749035749350858587419754825760270279641808442453112218842913836582463149814300147433309741069453137148446279809711656431454432246788688560466626351947806126342787973179690736288450515135960504701344913351928446455999152178962995367364076940632705888462088431776880321601352738641737051035047507864865529575247124868785060121057922800042763075519691793534276251537173803903483954583526730751742735632353689773987726619887935668687516694210381895525941075831817180627900483640819405406906559067660289821250552994247895822869107454575244773369634994462226977313568230462231850274686504604161133370609480797273021435220048717869539180381106925282601414388611624453579942470507879045996360488613427695685935048685622820965485024245984932629502175112218126047825163490044074980892239402093765731091086027964395407909493945832103069231993687105594457578572050180622278839110789970696622501909230379472403039671191209710861821259005168775992783100800807584475144564921989750511584464575172985308257090360998467904147108900669693224763249280384228272003005936102041111270359620173840467501896066961475096385085736659611496060202621787406917805972289252142989040013013322258423730281536148772959252589454773412168678437340245035799814717193563945940003243738138607790715606266210411795775837961669914985178929133361053781187272655788753436411789722544713787820590381930546121135088283011338250212376119876058231411662156240003608000312357938052313909393137774939261658270474721412725191224360733724606701682108014320471814254491285675401199680204741104122448962505993264013788362643354969295017980974353378023103385137064566334175008443471845740645329838067065637986653795276845387196260830200729865699105405741425379035378950742093546061070007995047649937645128954643414705653909656925650942980732731842988049602392898679358677684459910436547689223585890707476562068901539463044506281271223047540306529177280445754721925509394640852444757132714049513933173345007589681448734796020226250655037753810399496192168105096906723537402127964880787402188047894647811867003076643553149144837061950733803752804574180046062070570805891987080854613937821413825515683788788587004912681378547495368471215300763861133231699642035832596481183707645160406837186069352771216685592021055374650927679373566493011649609913118818306753461735743666909473356199049638584322279582026825908805220204845055183275148611390533793385392358803507336555154562761499668727283354207048014699558659520823094386398089064319646834479734636921413270192641871754728244629001549865954833065165061654439156746617403632080419733333441185642322964449511473150971456990858817882538760248773547010401763872866475541878267050165531737050721374280252109429119624877487877682220212868670025600863221980147354149090103149034903646720874868756656818059860853978932392916760426258853893253102061384950636308285355388869069625507654000519267930483037110323244283536475371279838743304048691812146030488303813693081969578310239379201194052304624324995233154092123664417973763422144553655610578466577995377599324567789104531775472678106366316548444312832097719672768400198959059103158189919568408814290875201147856379869463765290823220785374615267771491078654406349214286648780784037346363500027759843654071026613569302580340691048143868801196282454885481562171301534910942459378693024751796447952455011226852525019184795767919097860179134479524071358120079078156263677653335490187064516812196119638395884463009053448084621461223850438923438954341475257729948242761107627077834055626514815469041293649864936936122655301393008562044564035640458116921400846950943135742779753811835881715388336707705619581686580327143366640604437649287232387368831890227072057303413737699480423288628370009697745015762779547020622927936861561208848190665946439073819351554971966751642412545879958409276081586021886240963953571012118365004030732288199668315981085337856360238720536564638118119966711721946531706360535661802546257602486681765998965657950569149669228167540982782912942987466592267999822360557023648497992850877778944926678487351936481182512126953073465621368400188534996326940524535429793306597087707955255520675286092399717651844220895421064500569662895843858265285378149017209378894123373675183564343485176025560684931476529259190564205373822428683324241387697495888675958426398674227318731252017586657310943728495533271938875683229451108234545730138744427158145447592369699455275013141559844493183187156222757438203719881203110129974811837602711012311039111599130320862103807556394710082122642434813738546724482594306105486630705489876933669580679302487380043525222984014311664231331382912835052165170391650130120965373518643802223870255780303447828341080705759036582426594117320383183224755863229384325756449767714320426981637248065046416325284090892781543650151947905285064562833697089119856700544173375989066231797045140277155407053395644331945791191913348698619753991343987634893044836299753981165900552934447714881221950198821690899489098111178130055097268085081356072542693809476747018068921592644201721815118877476433430847937802667259901856154203956356587659005576149417956819551054799581235057287901584228475370901890225127091864500579400155729700366109384834638053157321833851061691607651385336857871661194213354459638803986090759523935136267222954711982972568701436691315645742565659783328106094079853704902159908427153444682469513077080465110129169716397992993376364279640567181944652044702653745726077849687708634776371967888322762792188472494297991024998199369088197386592004411969844901909502770535200813270097052618094818722770630342652918764290858018986594642329697142144454534072798475357017742888299090963836082891088657432495151820726634953095659796374686102230090529596740905270441249949220837148628222266563213883264937049834653671851662424063099683106939435603604635466267017493393764250794581762381068935738537222293237394030348081997946661024572828901393486745669219995314227904077656336670880365314110094586021259662144441913538383091696663857981070707511299334409740350775656732209150130675392365441650148169825335402799339092120698647098859319162893300056924126741366035406131342472325739125895256961644143641071975494038408010597321622894821820210129043433944715307073257340678592981326402318950136853898321070035132880288428746958616973544942671527883277061603567527345217283868930305678035044488402289295487950777412498461949907082693114348244408897713499981841566750707012987039071877781957646290422169631464659285012202404855542798102643753236793434171554339616677993432815006586635535478109405141169307404301790939338406794973064801434096092073573608658729194318519246644305132964250824965271980505021489124450469402509764582098993988100497362588470158204745655283370319687772387170426389005117628627004886529216688871259399327750168050172557646291461504206792007825131075167817157106792245861506306441405074670859218277715108688654616337472335411349889857701053946363152589979832300724706488095635580564491960659275961956488919492897168063528576867178664990492606503076390186072569135739503687337693971186901526261168034372419798220392047483086556119985851241174155885015536930138723194857180010278310365290530123464850304794431969520130381955242940504382047786445681678949973531604287125188210830669715732853459554097308498481989036165047967914438294475129482541696341915443292153141739585376032391248564813057313961099914752483023305997840499085432024902259861037136144983617095981690295276307843400320882535761241973942705302729335488250266731904103883806543427161586989899931813932836866142661360598090243946561328052809039346431695691094952194581076110342412408713059459579093991607555152467431622558721792628064651579430143161621178276424432875667393090229629185496721638313419871316737390760832282498629886167564788567379569425639974712953133683398289156335833073363592276821918063623634375253186797645229730909752461101489758836526998092800689122154116793920794022162901629948699609128308203924756845289580978331794592334769671720880779153219131712919409681893445728299612732184183326834062232528874108983493361121317515341780340197034592095274771251602022394955839004358005826248386184288790762977403723663365738652548010236660659799546031581389386590540870797241235936336788389151987637838375644534465651498197030338411477595567016175151814658768209287596927146042798192499194875063461303413092177226482344959270050531911166486872915445521409024037686458618486108738953673673772443095901689660331614657010367802854027464623127815794186868387359705579131500501081619589974223166570716162533937655253870627996491976887152525947061893377808340026830926297700334228572429982586374825042889814427487550227972411998428862671729678942056175485661190236943227612010895859549646519805429692563376767006686195185273410947644208440208072313442526916234766946299675881128135851676739180101937619791014736042576076306445287901762468908442473759977529430282489167062490961718612661994341148203837943929778340345077683077265135807132218051726869684136312923258579090156515795798581348335985428638806900251981234500827661920030736106476192825888653327786095228923272657571949749799945169753076490324146976379222462808157149932138437793582242501011939804050375500286917074654840536032333902717403974343568328860753984545607341050838535110250304421281628288419168950020577824343681140890729259350550971304536657740367540358436127662263883398247920760759706130646421623570561776552656182897780640077080724667732656673658247451515236984989982671554325910211354190999384847457816407312934635585063480311474462084795093301621666937699309741220858265145891746000614090143830321269381969366207381115619480021353178650063897878579421768510682958179999099799099115410129599299178766805075116259835879517322493489969111016469109601760333933156314015686556900683258844322898071584131367512365746920314880207956784495903039879843368892469956467212688645968753735336493751058001018488776907478022081602614280929122873276485615641670854022564536718011600552111461414822055536829961424244490505016529081983157303599658443359485525520679116997193577661183170784504825293494942925343945953741824445594171659800347192959811814362107078055602970000363117067340131938582666202695617240227012026824915493717733884198189498439595942555187038190139844457031543077032871580309817552752262357098544068338602100331557940865931898753989926994816889405548328727043024738573175686199609154392984716779957459710606658585732978675825383733833376386203900322214510591762717567279984379824414196677751531298934706753747132864175551905922574187691053118204156823861712503572660104468863697170547205694771943054708512469258849608728620697186738867060711735551689240570646369971593776288465255845482020978811046759513626716750655052115482658312558177389683272774259448598936189485406330204126151323482401596882856081670561498326929199671756676071093258443709087711332119017689514863353473071221530498990206377519571458888618902064595494408238739459996491486461855494755110924291607263613231306440573216681292683958916772876229589055569944020049799310487772964780234778862212569359441211659330905518340894659563041129594974636382153836440892709481406855343207705989135046648784501056866805012495329358608001996641836934573215603214572187564107902205450466740797900900473327838904812268522486849554891733788114358801410453801615623755195181583166903854139468233861285103016619249197761911237693374680090897288750005570218744053562751033981409063515136618744511657586880347379034715269819247846659605051897911451143518389986461640780398367860023247720861629739307812542749959783660216459842438534928083063531824235838601293497149364395976299463857882501208738174291415439839053080686392773045650739892230809698061021784049379101080067012838573441964151924034101175866910346637103934482894051515255846937523806858549491067863508843937857286419304224631623745925445153068151742557937282692218448154910260097089882233303182075453276816411716034953074962106172430028757926102277210830677860306759495170799687362540694415577492682472605221160557645261536651718630663136345389630789024139362450755103960529098626164653357072604818543136660133228742819726094575908779655032363068863749480618701651624863976854441067559003860648932110157721207639527086525006187106705473704865682745845657451872086600783583522360619967945364676002736995529178412241877016687546027835637032124326408025561035714798632957801824446316290450359333940325323759412559672824340017170864685185457685496024204554330599441949206993361673384167354994303941462889238168236304057590785510900576717922395277979158158239825771941239359343821749408420388101987109634036949682292717876163249450644800702022483671690817074538389394871855028158337917727404644477608415859148220724813141066022987714102627405758866181119238330960947973082788870304306883678664175995823905378119665106724071992126449255004752277031173694560464053289978385013124584246262212782286718514455904166471785148710151202847217300066889805318873284432616771159016452882993404229811084600717821713575374325589405841951694562055696770415307565600997650127416646060400880568996360075910395758875406452568661330143013424025656071245355125275804503006245941513475503796117609500749679579218499874014477161828000936573318535075329900726773418750479519261134167084485473643098975933608757005933604606789470197893091148322101837814354477251820348182982843525650009581912387081811526413374632185050659912070941552787024343459376526027933443641932144085546196732135375121956329634928834131183573436009452393030489782815419413395671612036101275194472883794269738077374597632995680244634962682729819764334963402705197963784295282333385137195207464938919944250983713945686868197736755497517258074395237398342297360930683831246930889072212724167503247103778676977653532547050737684486746200056241905959217811893105891051445355153265626979295407104428315320542866362491883761066954546106034997181898514050859935780016391636698666214897698697459846433632603633693029797805075130166285824600449442115699352225798498762733651157975922417493153602751886811399343546103799950200301312573764351512975615699998085857293333362546982931256263089917134547286738663595856032309081860458166193623309258519038138023764938710691349505225987287284660642007473116574707047120295438624366290063037915991291688739307411332615639420936238507673388383083251019118978801607802625700219207696308237515848125315791616259427391498292954015606331057522393009339524855971081413365047035793259721855386340590813669014052278670740056728727410168350383015223052058178263043622655834032618938346529024039847333664080024521214570852223769207097482727627968350475237263761493222495049670448420373234081715600711023052620916282397814913973300563270454762108672957557659965181586957610718646453532342449023305796824631925159678253345077727869506976780699811096062185828444240236639237878797271066457502457196386520911485531312463433377822603338569947988046418855139583941328342558161308928430414183702185002606549232266487166937638872092979971612978730890281148247562432150402136921340915758367935210396994042555655767513586118163585824017575086647137293204931289792573359060590822355924894656611813978930336516355567538858299200698673620780698146225248730435831463856349613571018013999237140459470135857625388277077494643073137399029906797712631365156573574530039032025972777236280111687644160847350943447431539655901875419846766774609759186020566855434841050486762414366397988852852519876214289401723367398305816588693561443869490075897734043886535829148539071463125856607428066562834266899164319835911214410575741099153108317813461128252829123814479930145858169414501670971923134733503197854065671601614243016379075158189784993909248030283105332259931970736135548292454656978936286155519172677681126558074343693629321647134481052969205194124182630425131762349961673317525538182231152166089419464606578985278525561506574599372003026211299136790746879605095941635319085615942535317180349767737053538192528546424238929857684175849010207031746167020051052200007355825775546515245690143389545995248042848156093805224336698832532330649524933567478492982170658590672888125996908983643350057265479343782667947187049066400376589364488753514181763944609835623020146460670592163652405369840437096153887652160042817804717066364154699937801840755817422748182835178027713262641603400093162483181989751575856952756191347562742430225045538812780674091921079051902283401024370670871480957092409023148626886239539979709560344289402126894534431084168747245468590828375902470304666283451561456124188626659614741891427409204766106694201013272222468372030692181512796045152686871408201983441255689178079720705893953828640969363264623673466747339343641284906387208546377340520049516667574846977356009924963621425098924572562353702540102171845092215093032738883005986819969982824478160228437651173693504062708196802698223770060205306700542199366266370827096123887574803825808443012714294100265351014813988676419617663475363702235678108621274953260549054210787894814693402075061962231025247379513099364759002950438822514460549601324312879722338522185858050117966810315295362683701852616206596405193860858158778103171394049519385411315762558633832683689368082604065743569066357380667323094008479033471479239708032158511795064993911708085211093919093220046361502563667293270273352795081610776955988060835065598350177482290353800545040303191983579092374289015975081798588336473963255409314608189759918271269676610857101820734306042730020211082185372089625967467096006494085796564813053380576680985525632592703261139687534588228403575494121540266561938680870640257329016995574403058324031131200239949775975054563346359468251819707394827895079876614519679766199459645605480690176717549465773074805795104248938555836045266807576547129118079199622526304318529380763326352972708007984901681439112539252438175460370737244661761744670540876797933543567267308036575392251734886932743693418520301364934712856008378066181093586729273070477578383326853957593139649065278798891624694515094128654889481268374006601331449795880322460863193042172020465048637359463781727485140969132988555009813813200902887631714691111620248307672121814478505528252587671117908252764681844440532865584190777293432667084408258834245810240979475864047729142188127331259833654490820349708770691848491865897500822477626797373431413788373989218063022008443749844546137475053080204670175297020881638260063120965279268545852439867336953826331717197098627819949714765939039389187121420112277895569019893109007096337998520397209178809051128827243142965809794985711908713614550422793789451201295750452543967824584378969178394208615854587633632663728086223826101122491602400998697528321649608659691403990141759224824606227920503875155367575391096550609370018788821074668671999703854545375991797836283521106306802705393114481084478761292159568915513514542051105176870760191075570120026380712467553881721220755205857670517351679528324662726620109224360422402090118710121944131772156587474839782666921782588572927622372830557623864008126903762290191912292147763687775293282392566163277237019981837944240298153809581089801048214557598717394401306553497858489927919127233660359011522210537263408905911473326317067566294259349047906637511596205628543764329680723036260151063872263036283279383458918724601015326299184500691633188585217471022401162779901696997839287501593010043610948557446840042851004466803206418102375913940407452604588669901276849194291031342381623402531263780910689292522186224390735375408885088969014875619277440997916711340109787327718424973766529081309274265854579505790020519936656236037005363388200549691075908945616024909436222938185144098498806757253099628686606214240433521127211176924790426338951804068111488038091722668953478657165005535880973897602402087325018385692187229301160553600385080562065285724406775639347603203624269440416681332671637995868038398547457048392774843301088012012608650395017508280492871278311161347926866248145901006955292310717545225828992776288008552974610026904851045941240500973054898697837030132637428355094306121212007170920641449020535872639288238965323954270744282338302172958378763041071771065095060920507957458024688275869249117903884185384194670368309083545986810671358290371064521113874069396392378267284595939712369849356317122936927839306142974910059494594350010535907351005743578675676662756498393254183256983175282922443448152733528009132030018985695133007514960179513831059087148838741454154685665891632413919353465891983618562750494965529466446459141334698249421966671449463357103356273811158921034707781903585912810165071809643853270085789959428507694509598938216979637557245013797831369181155924861746552446909278626654108997298558060824907380381141426215647066465104396211829493383650933645681127815388273743430318277730568070279655160633962271022565640395857101482582169244530739939392947285812837169062741386733409811018197108210933015470602697742179573422125333872770546275699317508496950411227775269538844721606114124559572708745207908448312621244348795906810607319257757658882555682180543817859865206785005743635581414854927953853888024224718777974629792321484303708978368055371156006166664481808473899910009903768283964316160070377209401935748268285390445265205916087698399454967993193563316764086553182769284692879389130418694443445323046635323097822677762049174728458574129448450258657055207402399223118953434621885307132181538472632591063196074547910592678463589510864014716340199511726656202763930769330827395145162045427969420314832242159112303385210209402013069797588684566966252345514105584931075948258901622402674297911594534202581190856300329800348450179769319228393262645456305124954289332158776750794650341950312213682972247675841840257550528459288770238997390808913142908232009109511150489241448952505218573450480666313204204236481783195386087896520632726532392137078496983451097592343171953256618382403884348893165828928705505005053262820523359927047778836074141083476448388453828044127942102846272077232772802541116578595391187920595186002996973492793850697241618888633685627806501452437226536426698194062993664525136282569403163326512146285554880038945681411831177911311568283830562001682203713222858859052994743397536903116481048092232452683976305467073327066525449871470074151282760968738106243587086515705983442180428083664991405202998493634260049170203784661668936926235918626291451453796104247674779069706478075536990866271124581054786380533180403843508183619803894430183578565131277612622007489309159653649833547988671095690975562436553954715393967991654257261760462771376848329850287411426848635615211798558384924956444683760246207118813069808507416454735750191577191853643150190775264065155654289361130509528684776711209236870420159412276727209227677266998265961647475148302481092173105972337689816389926719577602599121717847160084522336041989671434626051022479601642740737257811621410444335810673510716102136354951491792670331878100824085617541212436313557897362131537356148646911201971970309626520797738172018037403877752565927558372843114495778368949670307300444052177842403954467063870065774080828041939041630871082416898548104510898868965859859359600436046385931886798065129512801363360288545868278520494778235240524390458924551434722846229748336678206235010857209979094590897062210648878285277504465811377556004414379719683153292180644164409863762513215831163861343083249892533843317495781641538368184975080975751111380027359054594991792270134749790399542708883598163386625638651925609968515102403703976121786698009060514439330532815583949933220574943846239562999694640985647713300492414651921526453689420072046776436054860514827052655302034642617299254300966568376961518657388521039048709918056090706432730450703780395708092080553854721605917098129371598936202020011036038308463096692068568250384294304991709709632578292680844093023536464090060673363588823473520373120740985052580036973891251606863880661743005888976913475887014448650436372691859311984228233311111098564095305050158269318046184610607398044445798436585423651998380358119724829313867401164079398788537236599929593613369929735685390053378902554430020208029519088469747379091889312594652835574644651667796882147773311474335618369979900513435966671214825890096225640682172234239271908964970745324506349853699289323694252293337932083946661621028152675821184381505332574052046352178095349720852909780572682889054576069673388153034086239042773480934282615084087456828313666260536390713004258587084735168418822261193161691848689075437539525333098864069734858933431294626460592433414514329740531048220972191543103515882476354484658967935433467864942503931078636369311255699716988917138664777971001517750930336036972130097207480587321513821985801008239781624234342587895939000128308819303578754537076393098001331728697661532332335929967662949929985003476714907988015492114411319541854506201732457289066907119390968104941921796059912075017929864457641370400705653749709402645535448909540212308546952199947371164016420624958999213994118473673046760899470997412490329422422655056191562566048016427078123696150546872421601052733747334564914085722741460202257635137782345089701440768908269392438807354361261806132760120013973464787869796050920624814590097450456410083053020727503909034994472992685052978789755730912378420910888338221200289135010232146742479465075746676854368008114096449327204548323496481263255930727005156311369922088437851849365347404386600108705283023774511223532527346859375106717391914913118657867996514521573539201268846717498592896485282782992187012001780525696241802773074880606959208643945694811324856000925410080382563573732734283566093247174689185929770868755864250032436018949920951644139443124660170824299615978205971550204012116552050367692580481411734343906156897099426424918657107075447999762590503895321880716361818785103757290304593829681358514047805933043611499019514379352680493257895224443166829687128605598713949858912240077653671559662321848092419659353098159952141555284968248336500679352248877936750072340898942423909435594840895430135981294995223325188933656446826156132218411291490736245500605702152010736856646518582998681670787092000194590284966713746282585790502937247252203144156358521225794053989944421218311273375901983423101855013198690109732705646227292677256227497336500754126555506353062156065896657864911143472917893289181073426504275742553515475884746993666197696656714887911426302461778588074733371205751275823324070703646124723674760634300692911238973110201562813380148286991710848321528055353022045551830371586557481352735051776581212416723651369034920300003815182839103509901572116710076333643791243160822629277140827236337629234638865978829583873008278026874727640827612463515214589903540170875617836437993617574539219520344352146522708608769583456688345225353753434786161012288817343092679256743682150630778257202786344789275486854687526249652300318309117350776088512848373228739205737822995201538505208117036701529550938693591631826247344195933322245530936771056763843736883545481883086394093836080972776835752485457719916436055162651910714867658443341171747144846490710802029088055250231673177196722002240149748935075141591375867826999323531225283695788874999601602052750034681458314084511183151371328438627708496187844535778202369141452082884388868356010179309029187350839383055396612385537754312287358552694065897893359206056128378077394106496919214056959468726620648771082008011539859786423586640974583642147648160167383689322302777651171345855037909583272095730744572579613804987875989173815620928031658433151528634408888674685807811282152816791610936289092615545417451147688931285527296392989958350746031281335726064737106615574664897941638229658672281266614511877668049504353060580257801702020505798098428239884550143904205658409663879120707653439167618862820210789319110390529745856540898200105286900217259162172434412251481060220314195798293621962070206399002642224616207949328732800309631164877537946381641722252901296120647466585415717296963633290933490574466694324301237559506492665680176237204659034315533284637517450245670804006686699027927419134811154673158680628915009981503793550547235971985632225718963947259071285686926008938492662849820110159718131515744263988163736165593192878001650624325604698183743060387352609283803997053826572999299328280223256644042970745985694688380513843538936397672014335341542528031264128683567130712119918661575936501997500003074020655869325750294647780332520604117709182121938530203780907016610906265958474728586299427946282809684329242835970608222088478284804711692634695569405627805058803145242335538370147137501505950528242230901406293191348795124036606081129586436790499711744200739743628882807154356321712697170091631068640746493116374818365464925061043314700781933000694537486543400096963702652904981779361568889223607949849794034118662701834891419187444850820991022000576558524413486857175649289601160760813462506123702707300493881513885316801096002680497836823912543952516191676100830173068030279266740827886876870456509319570282156177710700250531769560640075321767794108592154335421934852630942898691232300897334142795377306179354288191126881864066646688765854321449853723578078916243532668824171401410522676278753556336756309004359881995167402882997179942077020407936359123899298914904288842445359302476715126265259637835270922164519180518112006051396503428991703231006331257097922810163715083131615105703956434428975575023932952849885376486614716611952011658813851166799284771084935161339579488278424038383435343833265979870432776937225926639447722906403180043962811597720339016848152596524570208069967737092906147074712394682069706207008945754686843747045379807323987965112925557473002020667368361448032491367303419699036529014124989435341359667649387783220972056202462468306113966030920945516764015938758333240836164751198927601323220113876411494289442753829012302187092632696290012410379614611895524100617801246132283513583140146074810394071424233486319638080691800779404000097606641240149439386419971915444172497331764031996527496887326434732536925932367113367243431109616849499982572623809245813464883314448456965125595853437630132471516437377098794116748408920881157413003659934420268122954661907638575531249071150075334747555288431654050357918886001034790794082507041492793185379792502006968115268003561915531768287780702072822881654355433918858793721964712930636634030348001739512536158209886012689668835284010496177061730209064931295896104022889535036261804796510732393596746557965612838292504338376247641437439121055865913632776945856987000903947655934947318250678444480900754413772831533981258701812736904882697513251871803120127710931065697764386260399479340333240125248027068663740862454525616673645625693343766200622562898045988732786245613529133254377569389897785362458917952724285009044268171388942695690395419884332237892134830220152682721929290589065475863854208732172150520811983714953503840250044808743848134269944330260010768219382579288308569972182936440030097597293682760846277161263565978580606097397904522279898319563041294538787934304047331228247714967488745685330673393391898014684754929204218658374370053947809591916204180895416387269704940674084497325915752561602304129343738796204352814751266624695109911184774513459944880604779712067644557709058502201810541447977496411148342432114007843020176655475536010819304947265454943799793405962174328544744017559493251170058209851857925390547868605904064887743620109880977064786938833437825589941072747002185838881723434431720039773338964859400369381314192848582940158236502459161055055795361923001241106772742225861904164152427927402890656282009092966041154165842805242530461996391719965794259941146447507903325893528030806223440901920274490430678939090584712769822829203883755332106818541835717544883253987566351813490011012933101571089445827803387786800594590282716283235922687260730616278726627276656207593909679102881175979108184080862625815099990717325187812023714207074137265479270134226804612522078390548647678246258328053940268626194640768581543869949352285759574466408918748869784466396790895989963679407306252736254237246993189026518645401723955843657479689212042445095269119597815431339360284400679624435390685398803149819177776655924560093884659416425870437276261482431301935069163725050811477910205555251664753505654347498876028787175279173540696777346014957569596419531669433598611910378262300289874419564385483479432731052374136844524262549625034031103238701519193511427693091423308162181839671578784452689027426541399013828943462889237865150276410434163288646209945591069789990198232787277512613043645835494059169485483967139781571256709985927269630316175773525248468653236425382995621290661612017637746184315281494263796297343287867202416641351840887738896321196933690698708079154756168570221805004211786793982354262775373297614136069633633449867871968715082985043326839279850056950765538422915393628258121393386629141896703713980456649954690598578728663651543898106689248303661246724960570236438684241513235625093986037554320163925621366613820780938163845842191378896977677366181039626450706921424728602988482167658985666921496166780038441684180171537841462280109475141082970444211998189573887508694319353928305136282030296491080751483117028322664559398139955824832999234560047401350256564122086454486518082135550623486544049673718267894968983686411572439453666863480722315286133853865080727855813218734565222154382733522963249725875683097634503369018124503892593298136579674133567754790037792734502189039761514787719984069886497520624103786304305923112851381594590372813903128729697709781124419397941272280419266146319123543486213542331597822125554544337830980886988462104086041483072612865782052936034771801092236202978427245102659993159875322401177105857271512330116986038620872931221605965682409721435115586137121384636670582866444229496506430732914434262801079425144136330075442193701686446021367770809464794240206248668260380287762126916180697423543993020420699612072910812875351469644865596365380731548908014411568690282848590846722386293455113686116373245388477321834441996290967770734024165559526613953796996372942397129329766047756841018170801512594245256765465376111565322839990288531015021328547634320677484427573986874440250222683591882230449712687305110087816437647348972936324568949696806164169784969183481717755398689600373743580311920243982743633461779290092203182187951811066161802199794401295295010555837899991221166206321628705339521696622359069106062514497937151315037733968044004159866792978943894850635392248834199785786532823403362967389578084737711657360925509349442684175103025382865637028606924021434625738785528199506607797795469613249701657119315191361142347067591713268697704662154633385052652806758448217882069336051839238117378639553155624351691957036414673039718936695949630180664173438659469904276642676269232293456469842572904496582480110055180110195913876745565255352387866045515703815061338607505873927029393523571014017005566471685801000313350938048406646861159557510267686805486267285657587295809185164789499988277616815142685672867173962398334299348716294065754593811587770893900262937821860247007277657746815989106770498082430608731431385682504047663802522159583088664053562194947330596627101319474342359554580298798484908302064480528063576885874188630208427913878420616843763503585227344566191447814494656965613922860578512489295136650785513527492977009672247893821914058556024799309262236213007909629735297754446226255720321784580553693124595321214011069512371122820801413258943312832664169873688960679822447144662863549180370943874674417201781300795404641171019686239213487434601153804220023928873484098475923794413054984654449089720035101056610247103640378667602740493205171331936332310583148005488522016841802474978038546725987041674443453530768398168325284769603397652812731439548661523829620516018701550756953770849365244286990632650537009806427480429527456139925344847985630837927837712903061085036693689057486004358303979766956557816264569899404816775973578108107854609610807233908211923171095178247670122800999345742047478942018747102103549386599497415646701239263735944528310869380503248405598417653413310520275528864687319158314798462895321238490176592749693210233792012799171141084687300122768484060543548959935217981515401046390632445568612379214705526682024249073414970228901035616773322391061524064538245445780009870216800510243309610675518318660174001126825550705366133007134108580397919603533865493049576769810398784273708737973997073951029229324151349322416045970494483289802514796944494967173778077105954469655778797617482746076874822333984811590509747578281925961717095068230078905004242449713562337080697072174878677298872553531196482832706068769629989014882902081771912928271516682283115248076120778877768538616422335425105829913495855088122069105099299249215127242829636450733642626645442883664898166097606490139031883424812476524388223350336566801913281948911724584293667942896461312307736569689464077882101352456011045604320795612925929631715897969302433791766110523214946379496484740020951359393971729182521925333152903851431458566436674900988486505856953462500807218904391000089501352884956452293894262543400439469884567361818917352827397955142314957029959833346986666098239931185617824707280668678086740294411561609848448203421024780083482917292823198777128618295021632809808032768788298242694506534150014106527925532207700397920226986244105152914763804703323382521620090800771662038426106867811612901327165895095662143113787725984646609685270850288964732217104639974777865598461115747468775348068651067882831157367969812291826531194770566347943743044520201393488240604253205892660034234192633826238965984769613255158410984177687553658700391087110899487815693046162041085448619622528145951301399755538997533245231302412493162110800250956919609269509570791907311285075083382513466585478925241385575643207478389228837111646295702080113881415450324022841764147005183100123100415007775787827299311649548469406386224577174618621168732850552490411298032128107731712832804127211527937963426548185552240638570021077201411018511777080232685226023861107844292539293701750130006302867671912065359205097904259670153127765182498476831384321930808819600924763876820030045214398139226227913806594739852769837792655098007712320393048293572541015125570576228942268819359144544953587170697458738656680685520323682216277777631724298550148122670331440927909963544884523834368597861542477189625249455266372024735905040082051073429976339011663440849012561033469663705084445663284892227548848341034420537817230024678810102186803769752506103882952891066509858774079982493204451063598787473047886170199807165134765726131008242897023670931374455598568412630280624059615872355096372459407855540014106815797216943090401642583702895347442135311087239504056636855726037582275201286537858109852453933194589594650427740823399362586902413876557599225612650536703333132433999052356583700798635866113930951225315211512443755219074877070420859140601251179417837911588658831988473281626357270922985221975621793078413190293122287515688025101806108411481405233786900440289821694815838604549836428130037034263765363030181883508801117608902793276457214158202380209534290026838620903905770116723293675034097438198102892751916482379037625333092679141696774178237506376739783268053544433895189082736103771286914700340565894954243662062717844502404932171194508682819964823060956437018671585161906943953868202107836761750144398821937721015928731292635356698931333026047366471415013775014599066751635945240278516845770195720217138752808317278975077923166217594387245799738459842694605753815965357334869608541781886369017728025707504162977880772038201741607884712941632224284405313873432519717573980640560004854018782598800548495586207122752785676032703292157180289007961881895402007344869026446613555492417243195273848300264934952487186412283161637053927552082692703765702057696993088894791502679078494450557072212155551400028642844624046963974252274983065235034448028099925496023885180875783669397108384610335798800450364940387834869336047890489313306041529043096118592440965633565625911235619323085645080174383234586797206368472742856406166619108686486171605604788935270656694931690908292369791907030127100445845078580184642678282314582775125137536599316821088780936631739976383769764578061032363185999807789197387455902031181429474362178879169971339884231921163930635575000318763087992374023818672091626643156967295126084629918478603655137208770485505859448605294200570197203661214950431705231034762183269684794379501163109512976318737167620803718439395054456511533503159743213389838039855199938256311771591583828986928948474330935447636814783178477026283272717813726726150047639197348561965408830114964547204746802247798342997057716891125760111307276748512583421306574527915112989663902864906681003786692294303078334210659425532387699948427351619889728391898511654745147479975024208126359201142534259531508448293845281759034300583063547886564985827511939819318410431376568780977114706797935922790961359589229618634245204360840864667204132332681155510879713717712599024939912916648633702856166355613980590088997032672920616205252446625973233690615163513716867418554540894164705293020781977528727555779779423966422181918837996733773748278588553629103798310189034927925926282349991986313518779762990336697474801061570962738343081292536365806288208891988024409661898512092727024349213910263223296735311766456695424558954998309613226814288781045301578817844282242066602634053054114627447387487854747730811602942836143741124938129780662920546223900179229784112562828340334030301775002692178250274631267547893085852030463994088783250079114183195663190934520837499880169177957448170538019075355988424382701756078998853941615769720622237573495902911427858895151323864000666721255458306678209002605591201597164061559177650237887285788861003984420380278457680502642349828209533224577523894315184723102241473740743927436934715376948932976107711936897807182599764181586928185494922090283216427931662750722911399209039759038726925216602336529812965349176781679792944998924490450408118045381072712144862094530369439410599179454620261590434686648413977839879456084928931631862522847974987562364602892358721705459272545595591427942617099877122810828441271631161073580062572493530745283812217742646810656010820174837919559948370293497848517462469293265677489955891531961944246798333167025322369503462950622983088709446403647949514535184080472961677478071416880140784490755389348185704387557961642816020216411148649941226819880061968204068040914983614216336515213323612107092124672936784154594685957959311699735939923460252329750674188207109502380838377582678249125599909874016339072874805614756888775128463344098627426113744510365710424787930321247161211984303024806017648891554456260879668474172739077144134521657083619546879837086391507053721454131665376692292700052429350205184477494987572271586460720761994007952522771505236049269243484498800899835535943163031425672250390113360819460156069652039729499524134980963573764995693044106567355314506977626443773931415118322681653926327381126827267730192919645324683260471005914733712422021769550739590956314620558015717860681848273502176805133747023508132485081404812388946847751123299830091182729499254735887203896134010506916458219814778473685185254447598207417261855695600813907173281716248348376364759912987940544422388003929711979299908557308070089631423227534171112427057030447858183704257545918727569991722267822864499860334229499248994904072658452704316557701608755909762888485303608297696309325496980773085723195373114050040293120666668709661782090377830809808955495980958777211613075529765395595806008024253855138013444417738378837053179042136458275863981880215986913171184831772399335369744028581881360121067576671093405496381987628679092791701136492634755192257671845485715874202268870478544407990314397108071062961258889215407724834775890198460146503786051287947305146357911116593267973100519338366587817575473827122806676356631853297996456482612964384543716339458241000153559934257292956403862667853790350799552183281637587644128938203882802024479120343263942983235618940558420377436165079409951422550447696689076250021916928106697494663328411275322356887600680787570164320528551860788965991613967935734123919208559284426558356835426679555957983310364017380098192779948634945722056360998980775462970790791135402202110837824617828053930691680573769420579929699371003376934539819110377301958629754762288411945868766912229988098113323832784512998490178775616691685125031078647030375823119274357217283992816475503891643446693026965111259720957098731362822987297995663361919510649300327228502764150263100058493641854037912348536493186158884403940675320045723981758406296409508737584636788705739989207036869880199823087769575521073562569372067320040900110347147748106355417345685565102750454277238841881435880919584623888489878917899282491961568969225268101018369005532351240931348605873061827397248491954234089789892475722294419199437455417202041828328648465525412772324939741284649910171969728733957905963151989704698620636066011919941123313463769019915324975518501584377638004032173308218906353791434929061371403456580438100348420956776341733119674684123751758273401388212188856791878694078365067054265788167237046760697562224026363621207268945555851685995235586860833647944510713058107793124560552706836859318490514331454723294595004242887128423101802431151924125881730886860796900742602951479357277453804370570419550555423562700970310855271586248366182032547357462137719982101881480556379633205823785436291987349376654113407950163838266010519639782831090136115717229767241969637112442555927729950740312028520296696119581225774308218695363066997638163497252574803918724403355619536739406761480876817708801186625457399905995083350447169664824646047285722942244499249721276147488498838282432293378120764057400554901175833073428052475304558559000591781841656233906442555194592255444485104357554917482503432276101756770142478157230918557038490737083559967072747386330232244676232572166377635774681305035369585087360438480053622748994189075963430474671756583694750153311871682269623751894145988010219350047006314943394603858429420956948173333003463394353309425511849728974438088748837504905773557140268309066937276241944350569295261986898357793474353143572001427625637873716926012133270151588179363021891933999671167865553964291804337076672008987773004236215501710788822000165165658875660539742374924532255532083413657113770400492751025183548458549456954597007719886299294624807725021293647921979837702294830258216324838911082976699167354369448484019511622412417536846462370552249558289508654171208400061151167438416136436187013401902601703552245171998845966713318315483883543028663242310363656003745546603799662807297403595258446894234547410892144672201148855218365425133499657163445851960315069411615624635821488339181826632739463968758893415785169765010151847881397613978440789087621964979582879593940590782380523356865672281285800053891936495700548049446910947623230546014834078245772133163983390735860968885315717029072720137765579349723988986755716580441588250414402767291452980708648405498299305407651039012673113913792007472784080496967320697131253576120244701342776488464140006155719739522952231461331282576699910436983815230744792150818640692681402586513163469527293049101067320277097363056180751371680371131275592473327653711275742584518576251743735238658903148689044296327180219260437575184715759984560859896517086000046136244916588181713999286283182530799570878286813393812726421959121695958849425853128405515074350949087059323126074634551852242114979777517483477185679009805775232092891223448706483248536867165480702729770425584788646957070077427173684515174535726790744764046742926432586953764794206764232940500339905700569623206039563744962739307318782074699244931413996430077416231868040987502170601175574145998450721976893127290344107556550550085962373937697013224658966969630544137790345333353462979002967388155944389261124861990891079574737730371787265130329645085149116860028087289462719147251187804420811278647686830941602409573854656100616272367707459810692246670425127189250353587566032777664726006097913310558879777078156446280735663683083859325671476274647887293774167957156032622907811980611630845229193837957827813023206878686929588718136200907483005879576290315611267833946464699231019197675054733184130314981743810094303108709280483006988332922409365173459380321274450564870087255907995217780059382779376793781536217114968969280069726503337415445789231030345049587101731197843018426348549462366071256393866071728090926614790828348981839633186126713629825693043616339296709970375318224306676686815285051114989072392047358653560867602083435484111121656404953641821236235203443683376398563690221274675993670679530180890501689083992418655799358406796654998930016945278507184270520578480651613392635390331460020202642494456337717384711651988482879326278347142173402977777914280641210320472144096088773199554164111929580776348171268863633351420258850019912770741997282509614185485037965993717437414217301369676901264141143657639497589649858061025738223516670278210106760222887220388933965594516720652124320692736630948337660872178483998677562449855580259888137286035775858397483892428919173122189777787080877909628185790245987810806147734275460658644458202964561363184252129927981497216146121911098626888355899357112738764111402506659953393807410995084694097873952834693227608037226497618260536062551739749851141605658037338406498668184708023597153097069353717967386965739603372941875249506110621214082694672065402356575591377821898956692210542516866311110816118519569619527382019266288247634181338366360894128702341886747960977866565692094636238845536563448008399027837873515504276806899484878122974034183564367756418372973196312099155542884919541993234326126472384455880370615347959826748633351910574607254667769515695483147345271140677886521462994221489527057302426173801454947088202478905441049752799155618144920232077965122859282298014769501970846856135798037617781119201948243207698504453523821943273535642223350321172527096160328538152559733534251625602395208371998660295334265833845063919717731110741197581818185194969769411059013310470611728181636161561436232751846994230964416879882411341118339332890830099880941051639859815292640358239160979039157130741602960865051082594920520761161599073475117265811808536205444222206181966934550835992864208226189753799418735905099899806417144448813860670592179979723266197324147303108562868459359289615809101768790663908332713350053889835152598686214250732235076999427759109893498810642264442295517821909126370997237987801940337692183941659849263424209830013101419235185025602169027398624420221409458101686422483702910828887181742153772913645211738102297870150978165354726130834269984277103938408723391060354115935544697521441888514072561257873084130087198044335014650140263938439095608099580827731906329686479057423391321516051496679432518733164011997148820149367572438954235342653184964986619962602153735428085327266613574050336312237177766534406386969298859239199998081162852382591522025569453001861883836501618962782206972973940404563837704849599319239887863242005046219005722599678624068947779238716499646114998134337432246555043220689619018219716457135587647069714761682831284390224200748878305282916001617983208696064061160873096859434600666486104457272894292783176938888397868351242724440886050663943072560355857381702720127082099427486574260556262816953410445222087792719207203395957598901484456714972694543499413429667635665382673611035345733478932169474231967178685565203956317443853959340960824903488840039748821917607838056546551965440490653522360966930435069635226599330403301542710066721007427502005068950502113490991833515683938203397255988517686033731945154416999959336781651513608947921767003121453193992016047420077325180110240758815998742993429918266956544932375577343541467437614598377616712276960403430814700810990651194408301111966528517471386005976567280665677362046331360351876980743349991307874976963169703714482049386226260649949672203971985831478678871165718691229318131583407358822114256384948051807147116607568844410995932297108469171308685400500246617841273473276723902400138669453516994602100324747884954961123834786578965145520226539603578848269813516373167484161892645101852249295139330713068705560583576180858094678641675709367454645469805227618740423965703747354286004842944438814070591288625844076726923117936510811027271468030828411837649634004801668354024861920756832308213139886940766445869432015963061034782393803273136986952753931464247442677089897584264686622582849480719282772064797652626360267165420470307160664127644336128188757756306890974422090828189801612014818818298935425895962232297697701621287357914102123478905690776170135239569813790456489946329383990079473931715861309682655893281168545426995467827215072945799790321022710541778952087895029273076432406772907681767051126147343897349507011581505282395080116274679633218511970425480113472233879215046511118016231143207180748419858660193435092530094086895625229245754855388404307677964684112073281375280564622828556599590244259957048565061584590799824808224317899486314831721027370514469577635786398639303887106660236655920495068618299571712553141329507730889045739614060927908443874713901066340521920807945190803372828321541698639346427716638883791116416642267157372508697186194882410961083637789483843888777594005212107113443641279078637864331958357594094306260093464499942226029320878521972537665831785079944504994888590250069868334049220699427767044343752867014188438408723050573910454617761992582727856059523984928651332285028946313627521417424906503567098811861533058532783257906465279499453342614951166915876306530464988802682877183754962112684457280137526636984643558954945368016555381818181089340665812500874291976485293385426049962417063614398153942572258943119486547804429411849803217362233252830768016844468099306495591195831255715026663864832397107029005980491882943806759345423834910044048075801488807489550436731858226396769416882191917030680515068179738355627097633748315255076152676453306680352671986183884580267423422110475491863278025913777669022882346242997404446465792342763353137197875887423084876645157998991968129490520604050415617702572949859064603909891812322215947849275025158630583380742041054346298156150844769366598534888384799829813869532472884064988342153466888757053047917614680349352274325265853593010142999057925955993764847734989935430632262146065030540197502867670998756013801565883589828941484735512207947746561268574488419758742463681978893590313206670176956958760288794286571590525857995467256283221181954871964845595344607223676804009902242542068139190905028207309171455000817132499865811828389517186692079397858896142694611101437802978832619440281428628346985907844878835235463263420330632827510908691025361892685550408126234489667574846227830659569715243038765543458353618353310089769944253311940882566026015972834668871686886182411352241370575042475545345386361488368695328159512549469897265744531309889831788177570824380493487869122645761648599312833507810382891986413922659554647574520160541544754961358149059773927068526180827646495839785831337647875059686170677047315504531383532450515343587506922388398395969785049721255894547503175624943196354715766258991231265567055038889093948718855037630655972597148529960644249502894743754825572402158085655581641283558039941494235765969407749011431183196705515994736941385620609302401707749348830636826378955647664200255298328244493131130426780337035518236660227244547017844062430852339129534025942736064496358577105940866407155528336455085495820389930680506812555150571214282201970780092890669600495096376153163479694726097141758955990263774549172357672437641381262058348548367856783812174771329321858852595860606826870991571497792027555109700241474118420551792578340675896708490515999362975924559772999611300403492619393526625419165082362683347696200788568118805412163470130558779320633933730317729151911822646686298386456616870066068918168456280845457941833007320972482249639216750995257931779555531142860659817452752471881449502892309097981353335721964196217618690018089937025271560200168732423991178898428505308248660305933182795710625189418920721010533393640370104469671456525724407757560404498304598431311997359468944363278331020777189200694882133557793135330802697299127217117047505699148848998567487120501991231459577771876987605874000484857423408541458120110481954443342435766102815582269951237737162416019805609186300447482792405554625031410819142289444061832453024680787297073032750769653137352396039566334336030833815490620368548354685129886001595598247910065653859610136143615897502686288340683169177849322688078078727029980774796081761154612373212441342579450117673744598895981349360471099934982476894743140474163019074505103565786146003601346423706676980697766202004217619875753359726014482111528350742388272413317099844632580569740739850735363538736197341680664638627576770460152054236594927948723411588479547321090180115837318927490490079132207636479040129167832489132758808153972575878404371123032895658683316745998944463767090105846808219673427418881004997014137218375667916404330353642199640005512296412043401371090922726981794736048634827959215265607715590017836624679882730723781717480779678058375249906797465307325177461348825937055861218704380470167685200954406585925862016208111178184321158037953415569738735994377503054108814889467790862823202740535909000188854566408620867955839355998359584203458958118028080516282084949831539643350570369296268427856947707045399297859768435371286422569681212320164784398825970006792175110988034505366436266294380204635208466405202856610633029207709874038958527873524596512601330142518441708519664193029737174229988789142092090160998863541844841869378692682357256109018728628723073949812049148337921998219573124840157478470477764136575178292447973927054503238511134202711117854310017494052936921037736475787267887436899462994655371531444310375674622931175959410002447284217745180659249013355395940461829363954011367857876264444139084799556077613650050973971036008285201446069948310383645646550715619689912021393110552206058007985553039808730775131053189539373923524456161463521272079259520792522110836709030698344765551261857351562232151644703434534218575012201449893761668561218361586412139590793679614715357400846504235357797040027324248870247964867728300961856052646478615558778845062343048979728057437233086485031833650478918731056725684223138118843977882468867108420020916577283264344756472380573010103016838535008509492905661009151891525510264050638396382634274873815840810547480150662500900862359152003605460759782356038964207728120006915976887696322750874825394547854625862256753926605772102311061549958776132894279348679840048456845919897362218811990149220141826372558429520606340464606446151858397898432374547851410790249952112897404549648568368774879123146893441808154948329056950560136001906585833749287105402344213809392585489415582336704210099190807411415812661772630684026296459673529504665124720349163337106286245268917995678746399217330341216718267860188846239898709128239789602825084312725831372695314121346418330307571323510599733215008735641181045024543625704840461925418202380033437185377661334630984381634680272322164976140748971932980342632514587491005193047561577790393424001804450000187698147617762486501191407195255035338706142676105171919268729819679004360432077164026053634503342181763122775640558267614896447539501519093581482069188778532126526107429739670976607499183660132075662450460118653935130081226003510767228859607633620310426171156798004583539624448007819058723961258988322189039720339655032845439232745674211391435280011479848777364044362334060945562771346243097397062243255444506935048606216808343473649014079756740146167268613239614630797535383985779977655521085034181706037698473830548089014888679854522605757985006948401518532689834619406308935434421989395512226056198486626655743184117380982208094854756115247288587481638516433610776019181800889267876793119371945379218080533177828640133170452620522685647652784097533456111385421469395242226205414974698856107839147312124174382357291717825854846205134261026994745692568035890243944998729523707680860119708716311876433661130644806083481050018055852054858680931543497965097735485998230135186253515521685913264599264767315454578691132686679768247635817295221934180612599577321392021891106229485731042751078193797205526792930602899156178907825758137752821346607690733026393890707505301649650755844090221188915219514195597263609756342999040933620591084327504621120837040047102387127915954033396418961865874769579033447337568767875214762217015626573630689157901878722974862407395948719559235538961861320592656881111472313644717894629510080861428442923288662100513389914857566251731719897495486413359247543217740636203086144739047349510226385760748370945716472913459914177104460553329846255270505034361687201479339311758032067146534339015102805234858572247166258369812008735961137375777826119598450129018720163634953624825975913743399559987555691456505003912266564754788793866190811971677905323231508286438724161253685423097062824157391183037631633710597857892233385118748593750880371843042174260112188826179257590166913230759602244032712182748261504065367923839468110318687795111258258754052652132705089316747636339337235793954876175425587703670803968544850522209794223713319545949646206185962291288128959863251179580729288816186814574848062992507113863587319835799816241332144267434529653823544293144981279962468689779533303621904200226576319227814382191788080390173508388553944504177384575457821128036190015475597898236520939367426789322831972719504150873319468617358789698746249186404684882515565398749516563598277735110881099843406584368888374521323499374548573829139956115920023973128143355058562011336093518255472543268524124291291938615569422134837453364011922874455186328807058309591032312947516388208563396809855842365262902072676862980156779822726350038757355545006509673574622994975492727920704803422499993731843117659283708875608912608648837628076829497789907340067920474437096919599840884292971462696062095855869630528141360995879311462700834424964379085846744774445330531861164619544078511356341752854757318972864580440989812164927791073368362656797333756914101714314214569345375093024509987963880469435440166338245107078632455979089174948393091483225110117673168135180607839576716885438013802419529233168006111627436684647640714829923748292211912701396197052453370433148148999167724997063914153830965883281127445813264443197914928070100982636345562661634988181279709276253416876183756388224264906279883666578261534168312391324423182915281692439517919376551871952464520892287620239716984776387253173120379427595725118092894545591680687652731837859677226620859628899590485275870938506532703074061676392617965616287134258037486102768243166604117067967772634198758536235662603274820740230183359500874392126138045318233051200361388485627830751440889378323258035248274249052412890286596829325519848161599115822221219127738996175064268692348851259537998681079488798242321941599335947177153632398919478909921902350656558136541342807474584561060406192146730838835187483000570221405272560805820865763112230696504440642994872344952022347464821363715131836487257072151391477299760480470101000885060535424088614936899693426823456413036581329180117714859512634358379148008696786451069165647877798511191701201057810355017962491400669486692068465901884723817450370405381369481350048046407470719916396917899891249436864198865344979433277977068927226121997712374165582985512710135814551645188889466195055349292094575268335670240555134342695380449891076862131212043090508388443504383931719310947620592027093449123348289365471726824581146123103015457242304273277397330405052618866221984214026850503942401893509522858467777593318198275489217327195784758995617164849006051369923787187688655681936205197671316157934671064999348679308073652700016253789623527619438027288075586907019531195756103516901520764137037672624105461847056929075961822627995559884077904555950392708294250784781475996740082287998644241631575502484453235079524358575756922035294780330123736969199999764003316376254889287082653069645524595373530414935897893697597361826253283632781379068036933678583827798986391242709610989539968791052503956540535347946581432388004507779923256167794289569458417726178191739141734247430904375790604566189385778458463845973332857887763843617134201791696724849696320948480316859066030921281969783905756759888160246507811430869870386776640465095132006319228825329445691862829741438157162675840061512148430719958073005570170726075173593201239587815775003874745684906677622652607959255852479976307304381663867306896620615896540095110431863599761892365719638856128812147853767886319358090118474381703990618586781056039851802910489313010619420744725096703632273220113427061456074377840468256851824698746751153771445596529338056924318877287338157698323934794359706197544455482860609546039581194669811727661580887099442070986303870606914750388410856007519281842124508260684776976045868679117705921158464297278257353323307060426442463333666008704509827098148868992759688055168167898444842572508101646356640601407398550233605278810021599280255964024899297329317799233663409653227152478630793419679010912424918097902394252584411521276877447257620991319341880918535587258861711195308954204724467510163365913529458295020498730087648878676725261540090024094587646569869385688473342356722619853356235870236912476532867408305292781445614503564776088714776234092304729726232108501806080373424336084586152946518352491973155859393981206761146068694929012558529723341844843520295443228676108978441222976572296085351208992508964644137297146920368884641278867169017684096943959164498135035986248874741316119322884168044073331660475992983469546029377617646693106959231604612137302844174866397047337609702810507470947702460278848517976042290397499137653405887128563745178480037376466827408518748830095096151215300838937379126760534431629562089755922352878604966244927995123890590857301014169170225514360544698206039708805541807328648762288496922079591774898872502154214147642427983181211250941308896586003968144957892295317814063444621311371873274842373672253278514751783043681939548456032172923329273909250976254947980435757790852447303358172075338652211903048550547688072056174992441394800636841793769275169469954971506750101615637181616303440570588559218237323718590874350509195259814531225691774704067423289522808235063444710276025068435704982990399538376847535873915217553656867643330185868131517284558754238704227272046930852043027168802887425655821789205152729282122768998738689486070474030928101991556818356883672274248890902482097027465623208307279979568490715248806276395085648006375898576737048218753642350229966825476326675847799812119301864508575212547275588827090550115313172981851914639201746964549932149803678089586529583991016525764211530498792260789648416534837912370146732664357469809921573800579967951205523933511222707610832684998570648034613758529297078547644028049758136080912983063139306394557816199014594758382067964984777009436012923369697945095983622147660736325250975095486916080843665629589932534138441728208379337751590444092730885778372438567002010242973933029313762896825850450761626767236331791256050880481690809691450853391888095654275801511200359376258767837938186524580461849094270916192012686845234018898279209056361581363314048326497713634214065410833699133625686441326230151511323864504015074289848960478829561573458413878685169802367302111883962730114358612648367529752802854737331158918171865478323608684984422499571990456850078974345033806035467820504104385669048910708390094467665595570016110848442171059992558074602134034063157623221753441491228772177559059753159086205104771515367948548710615293474523543373193448985538158944693256213288175511745653670042211494131827218346455411729500763390795363451820406504356561955285598333908935566109575129789656237633061604901488448868948162515097709656400983477945739185711491518653219763201776750959306136103584212689816123583486964318019750640139341156329813727450693976319109416910228821773432521439969663018439774972865948674992894281385073517632398761121893883948439192142589636330743418039309867348648403524998280928023409062659763873584305698982106295837882369126157885948574348365194487491711375603603641555759606797486609789121430727408252942458915649551305603643312349204518472377699827271714212246056970740986200884293148386922577559995231330975822510332075145972984322940206947705443715263109497073004729543500431110871754872209222903783815203522157805300178650628398882430216386400338700363536261593466588355990802033078248274362777646160586169432647983519003988797005288874822333074403876370420805101641918328619826636725658709781807819798277846793380956064380401339826921690825062761961895522948601272560076947553708922094398403346541012604253728368454001076951143261149683305258695165444113665159996222770437168447498164999951594203753146294342105523506081962262132487884974105922900855036946526440132218460394990547104841810917935068652744644410073336400448964517513382709695230050106371979180352909121178699520664217679769086785565516026913986940153457983449412758478756735879648733546259145007835521858208831442879201958436105832088590134962081236323611133735119789330516881874385231060352932255583928353931521600303210654694188592392225560175648414141482739057410607219477429278772279375102439694569436239762592615218484201945812678026054428983093625916390107803701948429768958728789526577057531714799296916058529016725203267822443399625471836320620618781918273322634409479118238520907006936498898743316241362473681496416927994544702450517410001486603374974067572596735349729472448004097118662768110821814801493563959844164281216298771697060182279508686301860413705230126621815140381435417208640350108202611988794598975574241469840876320170762999519539308712519677146915143995885752942176924141978882630702809703598008968138040797072424061430206943155405908925950386458310220432778716625895072151037278815328165526636807179201502248086500707248870041533079843965161304919906845082253516503320592247390002118461247888143758044753966396066208642444113364169882664933193723710552404019137910318299020890171913333240317997941229544753957928229327333138161233563929297583747062291831118312020880137531516178729225330432945344040770258132806453440895345513050625424478191267767679902497429492765385320853441568436422174375688467642944743101229785600246190495002404093174038272969794672085023838998008699353936316748261183657218246612916842721944863205272470281083629954256660671966206825653493901113665288974942321720610803355922885188453408121627045447314168502559330253822273015997549936866222815573074808789101954829631134015775709164303027513325021654771494576193416949235152857070535247866853863126365546474415208710390278595305678593859060377189818621610496375243245324152838747307326336895894251920228540736630780370485627770589470441149517351339550921857747883908514246346250284859650990348904723279284295689464280730501664396649512796049416491450166369116666430233211534261785630615854490788228494629960109241426686316437733452537735696074538375561817945847674520403882462912279881186622824250094284823418319637388415701711002119924725602164994815700880063863774854619025439727539539799057802036858277180554318441644228302741479702559472300890809892602835086010178921478018477705769176981839331770042472445497218813596520059165710841851941800023484695563289931241894329519114449940584644394312069096242046715132565623508199424955890844952838520773467469552253008882720564086876608276708453910935877599121621571349685220019801084147855966637635303590876317184472823294128919173170060444913131294148335655799215822963441891999484389729631977121035841638785970155114973290418924010680080149022597544643807335473534519909779840268428924420918670213471321292470174827851130650854502688016787989104477215742108620444324031902557834066132710594388526691379424283040457297066145802701430965655549531564911962237971029624272362256633947147175539681668264980480869590147751789925988757137597687182811917610835586586102609946741313118945552153873447938088051585278914001453093721985034253234532868734510556398749400006306053641958038249047013484161683909863057771672651580164120607354243385530107390004489968875334559335471697204658874257554346249121937811447796977968308971970979815469352139552472301962605443215410864834252184481720418128361130778455535109019746728504569701485276800931308606972566902719950107472472341866119416751567719663267988783555207610679199045598783008133956355363662538691840909331300931968792255592416635326307501113001144686727247734866040335830059107685173499716943740114993078512759901257565651738614276820638194325587225138741699467399080459806829034189296803525563497794278375958454055901942105449447254986080837379437692017101803467114230701365419831395279057784070731711463108062752239506125388656870936128267542263664292049683498462235762349581283042810444680495892483072556246888764593891810964563461658471537076805082096614028263940256005500879564969953250457054458200998342724375877224814063968186643814104329680762711909331077775194980294633884567051653835720160665433704185545090310852765518970726069314543385090178581776602114372246685166093797831370334095483351555170016581106852648637185813311450935702090554340719983925803389873162872752115945301758016363134491251699730650879760811104199576946625924107469223641874816319826296241282740260071469027992042050264805746098989390668417341135004236972112410920171338189545360682881105355297068712242317716676698294519347975025788839078157024843899633394207874810774513324538177297284519993640872402077162752446769313100087002400057007509236710613029718372993152218107487730774371545590122123652134192042673986360442975205541040845538306380073890881219473255413712576294906629246498551520548416450273495372902274189476744532759910144399079146001381452017055097169257445392170787956020528877127899999942716484298560658517989504652040802187007791432186605889997512166398910334574339954790866194403563122405793750111658468160713698851475278087479409571686856947432669469054654703326092112808955237763424763355297147728167365926997510073662406891144142255246503696865368267449577308592019599686798831048460629376889484621808452769103301110493273272378520554425848294583708044583204718339612370597885833661804708906187133705167978324015890429549701001401792502633058105873520209665677888534382768851434517789214022488863149609369250626964363475301575514310959778970245297092159392931303189066267006347622737723116451571645685877295551133439767700194002742672877085391652039860494334424312723017904519756548290698163557688325767877625838867240322784554549860063607436253557271535845018409507641439165452544866084884500725523880661668035393740099154762399192620830026696171196705392835656803977496512641043563454224427614476980753134202348941472935562808312377616918069515664946763311405928960409711632237012540824912147380363636435447229069914699292256942405219712013042162297144502918281229412614908937683789734094608279977016203246714413132618228523829662412264020905160037642562358705857841844394651971248247202676843793578891307264985700781244421397315125529729659007916987997008429603957593634668479743987807679666278128703982446433131625398502851017759619025855338814034302783336857999046320898065950011084314835832381928485059432150356785760190386308535216167430356600418785414582261025008604965181908627646122799108596360530641346831812497492833930119246233859997263396196463035383081982055211226065918713912954786384668839584002475286404641163750926175202747867405658273831689109069906589236720215467347034425759605856736949085758651703499605301579519830540086883043761733198197473280828512195072147480588394998298500844366816031239998526674614470106207581387346509897052609472501847600310397860072019423037731061057851481710698724126674672430936357505493114972856787173957026473230177528578489510649435496241034828092106941923438743876917835546621166163889974590286450780193639767624287753785199449929174221044545348307625760751216088324132609644479106907081762217928449251960752137540118621711010136323005896347189642083774975553255936122449159563089428138016539303840242136302332405089875500826302819049027032526663837124948439172129261882363566385906891321906127283516442935737913160813738994584132206547595660512751206513266512825562048024944955723922337675906156797183030191179072032770126833252894549426462248178076354531155637607628163298263236219706797784225700596873719183913913278099759284178323273976817838282048498952425895400297577981165006508346844034228183104190715313677524786835634440385114907037181250332335780425719876315482431603860419487661467185716860019820506045201312409921053327438333151094167093797308951667845633769074306899940069719638164568794187866951675059137154147051620587983443635090491480623730330921657536667826066162431825288530479692694099171230173281977017335936104505924107703373788159946277590594222317571143333967571688624847462586826198854566918921018091873488925444299194805080971693272051656032007718533665388652571462107680546282269688681649386645707322594392284699609895827233030968317297958635501718315727914061910718171528285152841100038919147512457466308075710127508881642014515933967700147682330230732849984233884141215087559789070920865870933564336443062318762579700448139792061473258115985488449873384163006185425291262623633079536454052969340267021100108831820606058435610381830637135140863560096647601750192599553327253852974484077589510865016998416614493933173768793678431678774287098474901102312049365039936242106617042055980755559824192807793562407591077503886986648663538336536642192227066753162607785267612217076349283601358894804580259236851096796020419089420980123601269474795450755656701083660188593497093826327156489635422897863544967941890657121722008522635705602294393951417783861645741937785331067419516696220285111999208962189930224662679367573945628997792657198525505134739734871913603325436813086782029009260472254831912476806294881248456315426245973211339968474001110682810837425944682763825091904930416258716116120753866855316965248366886894703133758795266132042274229321934536732297188137065660039742883736239533005520774949691831069428619988976340221438146268368874447635709221626870080776565830057374468408508505541237670249192108932156437016451038899827012754099886208639796499441784052717514891127708938808097807741553447251732359715399921414919649649705328236561861277196868018553097992213148564473646956040849430644107613271399653037009167498852349939884879518045628964894374121019646394973113743130184888847496143085548194084480630939175948877041300555450593169870180367234325288827200258744114080455591993826631276735617687599345400443584874452059012678190365178519401821376073806712663720053238087701004046253040277047742611698718007750202801660325018104522357642624121143953433019760382234507643334197589170166869531565990991245989853543029372268677584630371598538974694358979462795924131584783416040050628482526524359313495455408875296626188999454801886160453923593449276898968201493123094220923372335427214399402046457372649441938355271292794340884597347721888525381099883610941333548585952761342196512208001885270805583747418774897474657137610580479101739342699091471411680679438133926010791268803870599859487758393789327316021915633640882515738502686687916864726160210374106427828162711153591968668580899076669518803972473225837285045276812101785058632934857945264073625022141242471044357415685441563463536199885160694771879816541320940835589645803786494639723901087201931667787135757877300603931208124167570453458276999400262251975262532196247824516122054258896274173138332271817059876747612544970475597437486292075958394053964199840160984711958382286284178541140049111184855705580002190464573287399057158518047215515665184629297720121896295224221121088131671513058074686979479068461015538235213044683723082768781761892412933103773569491316015525062646755108192574686870995969605427095714869293460829586034402589065584798425102587828344042351843030163224629185000581470554482869102399631921554609447222525567088575483487814284101979271094019640401252927676608876995009791981134618262556115557642145593952425001429662189851902871506771715713948195709403647616546531777665026433654416660099856956862934038613492758148149426320713190396101638563325111262649116971464245033656866605627319152345629460760899571687938104943918519037111320465463972657283830396797158697379054375240523621235557414631539059145588423260126073198427043493319398782689556602941417484489032148341940575626905781756748884822004513139794313638391411549987844357859963142428913620480642997241806471854275416457202335663905673764746447194229294426228472523627940473062764528689364769630724100258351167545541109324018453252636055665112943313929250846284294982082505461624026246461713940872619898381153111455999709704445394706607982106175237155026424067373174248832056130301487707311106795396872767695084455534080989214773622784244347623235524467643541460406789635279477619825879779786931326927386698168030802183122603784198729320334888886088380433785067719656179306515153322413968620881772186819702774052115301782554123729316475375136935395343231371052183013698400981104827407299387397319929584455965238336758997018919831802470462751422669151047748497482641128475422092472346093707592584175259384348601650612858243196057221896277009496786380702324519760301014920283629526860789980838283920724797799030192996219468799445307157266953976347886542872691196815569579314400278155787366114854297420308019678514689848396235998676299803872670909151859325183187453082976706706083624567446009703768468155685379471175728774339197249389491343997153374965940326408930222262856819090490093350669247643431272964732434204784543408377117580532560733974730004030276624500276959368438828950684227166813418858704559971497108908720166520129078107219452885311494718218663279696573008070184731095366373950652202494159918110826775840383513915676712901291427853782021422988835934763437932211809368239032450134626211861418591082674600622594490974831291691187997438670712333881511686454223763589980748981998748943249193795245100635388304922106244743782616819871091009987354627947181861492253797932113899914689887611005230364040276978537375393825025447925459702635295607618343423082047566948743839234985929232974998734077131696554817693604600904949425190313942643303124581427525520423094760096705724823274592081455522259870758214023051607244538343557643341494717243696172370401822898531339728571072769465223916653761927848454657554300814970350106928313734812877179925912024782631890975578896642349816993253750869869918201337974662135500875298786740732603231746072889551536553135599009112933101353338722758768243554705869878071406156015506477743490497217266847452229241748980708368262619344986823187804946487307970847877368435402930585685919710802668010759618053379325119580393772927141623557177584533907587596685237172665963846675313849296751860020888732613995432824979699858066996550085571053296720240075255012059148308192375785095127993873224619178899745296413154339019189807015480851596301260138163584214269282082531017352197190950077102535917799070414930058468284958825519676118538100538677751074972266455990286328231713177108849626393743292280726683635943421978363019892654373909509581593446642258911542769361157782486601191210757108833335702336888903201538693650830923518502264173776246415427803501561052508327887814348441719107725110492511966277090085171317459895417173171187038370297869080941785170593423204509562609205855079698399070338975704430811713054289062423516404208380813308055236707884520773683313176888633520510375700674889015195345524599577195848849059015873795503166247601258378252724390467650720542829801080595703734783065891958096041864816511771978498353849540070529341880754481667123306978276061299233646924539260234525118045233674359865793855229628014583147144748320675693551577677400261355586940643958289949266620233914128171893225833193815701165860400981051479672413720621183720171353748799821592748399552255092053718228921043246808882377967415292122507208281609960639802780879847372397193758795054439962654059151968858915624694779286137016372422687273126899854364578251279987893405526781742107731799663924293472934493685683872103402811277201826812776766189275767924830597713175464180239961370769637709023490401796936704415350385283843392851793950004495534351473182631086852458713092121549934356358891880483329310814312687508564666326498654135528026902662137314272598232959917286225039444608836739808692226714013058452412555166603129853308706772397081436660472477281194781862886402054470497863418451073582135840748736838288449224513976706698980483400763166620502769012775508761084573650993073036164654879513522670311503156820344966421080568243333370129302019694723673606940519724220118345674866124600792964226771567873550075421989019917018509919589612955358010559680815048079865331662220129942413464711846479440263746803237186709112810677468727703929179476774271849325602941402948982846434810997671728936107147347638184489634568847884523165971506059142840814218928234416632040678441150063445239577126783866986179004575507828639676720108110026418161517456313740730616468621170873144505386977513660137371469511230110455062416239964276313744350046954462640295486438602152797216553064599797283296185425323224931205663967826592736742507488899180045174384774728026304470569407694870042637138732544749891753066858473679962604057065441383376281892161527907793417762685488032164728471638988466679430292055778881428687566148321821076839604277330873137849887748545298535225906790433269917537558327870445261601365706473256524374092337481040530543299779215318775148458888826091764005211462099828797015290450929455432609351923650218734809028165682178241739181063758504340338544615474970215465270808369964938706253331738752489673376128056836698396066042942115919174992699915486720406923270004348097807696023622125707402963946700822397256349629722253466159936513753270346905674879460158903706946558729685157978408748518441876692741511937376463001398904719965760041034606752074626010780974501866820893074313287756892923117307964659990768957187436135322114880861879423913322325449477909069944350905823990249669949929280597011451773339166113682885306462086832437221707276120075175320623282986182602994157254072025175828892111151298537657084346411788079696100864403181086478032251141645320910216530065967215222956141094298168425801331370566535754410686965341613899393110872157053292351487618001294339958084353080037824256750010426086121641625700753239289621285448663304211619919790268161676928814694173714140572543292347698954061490708393254940971092861706516940984919207592349295721385614644012708513597085296347974432612156321989871501345377183934135133916134408382354279677042341624538428029845268236044602001499016568005507764870640721498999614834152244705690498544520094653223847377540073582591049215858431989550563405637904996005254564567088515510388473412427480201779382991799063330803394203545232470722672975211162406557500245867405162358553183339538046691379989629212873627162939673985908069003196511458477008950474752366720298877983021827093901059381813407087285969495709875772822779295826965096186826359021643070648429211591129317859821348061138000722859184609475019484333509494713982332875667763104230884302213102514078061257651006530248076407435830382841589720204997567036470619257581133401276221019798410282922365611460078517150734244637322199664347345560413987057987692498172502175702223075767022237984705080895304009458016472157410440890405301075965697933899473215553233508709759375387313801118202278958513594826775404481528559992532680033913253001134304625596692172518747965695540811471356144315602041572153179909550056378054543894138540624151692638745064534514063777465037473170472225701254634626971331689329229177015707736759464967430011625779268264656047314803178704421406082494505916542586913365022925839338918614059693180856634353484224678223080154328257232333158119156211358514735766084365290722950079838865355398060656140954455273215805225996512369486993424650659583878734703977037244135256000932784270130083819260152282126229002764185498095188410909369584878396157762539895781175929381244268245733475363753654582306609828140413565853897720251885482300971039516814965309116731784261298182257977772272224216540765731852134585193376142872375645108792770336934491791604576638710625667614265791704540113764042193833598696603689614430887785815065804178941146258590696312854708862016008832391340908946640965849201232684931572598888542576569052420962837553238763348500867540159551401451253251940523866535580064986980263058229791601886412821804345339480911777287337461544210722949046540495506594675256520532254337250167672242091557073220320273832203569835713238863032998453506878673450324576914855243746912283146122003300585457853561947193546695801610560377205164800265768685506985833514369868621631432404086778741866827597821896905223561117575046798552042364441601877994354845656245688247069690966856872317627018345957988613629352833514332200895351424249769633884375016318540854042940340077856302622597568212477392664997805247673865869081271703855344484828753181218950956185963552288448121988186813718720119827425053657962431828356318008193612304877403668464098884845083182757113840769762858531259523603229881384492558238186272893509400619512441176588613846591734990230925984889014552280947747391186085491360005508778825561565547345374400886209898169002666199492662720270203221580924711582935316758241295872901816491889118612599120155517557251767873608464558088448704839467382947715027117023319069542288504562408303679412472074092157919507027154676943652972630227493689314737222208486115398062823919326933674873305923491987893271270290035797335654949512881908313815892797225966243775678208322969074228581035616810383121556598889573201948432531754419509816822043271921863445703458648024057570085334992300151417808568802092329805930968603325842530127781173442254610028944034950564181100341877073688316067739054828883466071561889397667228616529332363168418233758960005319891466013854426990191877465599422672598405273557319727433525424904201399334955443768503713468602838580627428149201606756661480582648584311875990987745309710436539277949233632335289989883032706835297373220748115504430056810793304685413424675048772514317001718278429497422347658382907841786502110629761014833897900118022519685148506580991523375149451460550393710772476567995598598810078578133388594844515223780698133331700021059533430026218966369754829564261763625265682645785268109347838095585948539661219463512081002404640796079858114529166612636580576526854841324187975745799950190893507153530413588615167739059116477028186119330899715472368732078244583172656626210683300891473836941743962062200299133246442365248863294138406662856016944678988462649797740773558004983366499531485092888254772783435102905479780987622641232299143515131529840797980493281489509420850163808911096026285685651306437545478509659156095735080922568704625404261943111193065982572428564044509843106900651051438811174541421100949078419485745752472077689774209845560343500202971409348603191925329161990442178502120603484797236792412004381149986062487765479766754858786393951791992536900381923393056750278691479907043588447781131288012353883216927632553829846150746564896390326379112250972595239118255442580913335855140302370664858200178076656262794068311742365874182630759913299812499459787041970938851067533334400838360459679270214777688278022383413603567577122059263731837910091306422898437448796480472878598333011672242053382770650466725662769705777404205619334663946153321161850945280019960154426386846313070485304591578685535596001097723923247602560266246594660148506887082902879989425786669185582961269228360412104846208098331134977148292681329920103311591518010279609162798130646634111777406794552483129630426947944223013151140783222439387367183344839560129029191121357219949026885529300062948332898885224297942829298364938248873473766250072414858900378805628548899519745997201399702093792763218577415924266490573975540412441429476492864318465923657428647300391073309517356913740369800557823140990272218630061599620854625965260153005669393199187172287390921673626302662524418880498729604498454261629878308940175460608448340215916174925800676321420628777229675388473964665226773898116201379404762907411939524466608376570295616201603644511892003227406935474397128785175590707115951999579759713103955195965364411727484057458312581753455761918801719266681690265965805482432611136225328900602319861202403811548921850710728061531017958871650424423512169000386337984925881942146478465936622828304214006966900760599889932231404171126595044162310548074245346506874255173502864322396828809476551554735571665674390227062987373721840844238727902784693162011473053442400893817846460041893972403805834743476790537811405320311015928902185291905487789292143575315502002496735247705889461778850991878087920661904526858326877392097676574605606524299491743482791880465405902098084607803478806339500243629232394544208333151869811885985793159836738154750682332333333178326061952396050755496840334055301001068823286057400691802068078234088177000533187621616936160650506163655500581413243725636760391858391027253980490232417743955807072024017754529455494281623216101899674900873824627815414488787275839657725948917729705659311586405584019083213989836036076782903628019521250476640994737171548004697615423882533380226400678386698243140629843056673664221677974542812301838056513467767880437746178533284680173799391250638931405745220999242502013973799704754713538431087525789060527614324039993560662846076430264662996755491088371114648731622388993913688671747008463577491539334107833784152499086853152421977721097552660718949982260105941995866736564406812453942493165708495971772332291070602213618095675177452200629290765309381959982803263562333723723671305104809055387771497303596870385891306263092956486437423298610665058258775612679109131121734519848308354586170706827883738906304295604563872291385736479836039573437471628142130455262556249750319213107223053126259434457287256101040248249611489135081856099073416746514698022794312122032471238151858549380919823894071974979404745168830526846480465478690603069214116661651845163294937019680360706614160912750325439007485166477736529087177815549149587185011921683076408729466014643335999177026111122694416399279826511092703665418784278910757736506643521881571529723627066320480355273639670773486680322348344422873777990799349133187202621007327814959153162143942668425796970554850272000580707618619662553637553973648535124048612616240973113750187858799879475439623610910450219048257538940380991442488395254387955195182691330059561611578116595026644045973562656935798242233539965039956868132345873298079277178070496943339851507528415826001230434407057548498330445587739204777495491903097118363703916555526741668237803157797805364433951261898192048648238749428731577216219665491460222154949995763042837890449248609711130442941012616240248276133252159982144374923636121927570750203123961748567433366775808460373074239734034677746126222100911808669056078718083099726737226542189669081798130006647671610898268211406249711725133784498936843717288253802761932898145684058185413493347495012547497193845779825706318726127871423481814221703588279717419359445092940702465474021171968296918185233546857279412299931626869239584145828635231414308237886351538122066167064034750582050545929179668189917034524377818104864590894778147652869987820748252093215520498850067023636080292289825865691751186432034322573968998077400821595843918943201548477328174764683001280596774455422314722872697855679415924351813346230493513591899866055471679658681026676262577185906349934144371043783682645768940069873263920581242598402512330049452071277959963624854948290669927736432054208202404735401195872742129949939599674980464264746111706721971421787015719588208463893043821670105357011393287020218117996291145883589623065433472897665995095426846588357716340479064148876165378124753883994692200437366731419042835769520787154861471195256191013662392019369297327209422620187974237555073421184788664261158538231468738394591653357199679457993850020372659131328172883329289568743423468582107485181542493681792046186220333713158899039658979461514551864445209885640666149279621418836858167860066270559862975386840497758644058850929349041861235953704594955094066172614625087258687256879942484250166333152055615012742151851905567828102161994937131647933384990587583413085424692244892773070585322746592841366417154837886587818043316236532755489474944822123608463158728517993036733089823823513490025137585351087851212012330515463946998345725867311245089308737501149427127524384095920310320443629646818527699603527898092194492903386608571821933793480369030145938187753007015612395857479094131979176326870969204117996478480668814363320942387222787565654416668536287212337760474502479291071531830427922766109506460110517281043400895393815484191751433097831558037045973743887799440552785870737710581313487568461259486966400705325471695719941566939795339767843976167738673330852218742134694078303473852593174333629509512719713329794167641284386594063731045578774485196212392932806740528744898462930778926833417747238222209050927292440159404398899463438740790038274774742667062731682156756085472690079930064371266473171471680566922197097246983988580526535398485062626179009536524891223451513705488996828600218306440260329654344529179120905647485883548373603727875358232868872270018854676981779320448236451258582980160873135688949868861762254275601887655008737250749836459631520315881691890138593490529829267272301975331605631271566517957244617719104332086559918983212091228352390844768593109987049810999102274494285882078825825449748947446197580392771908890217623734028766546271940481601209498928574591526305732723452521129758398937018567138805614429929434309523518617525642744741104283902660573207296566571259050579834319392130711197510573582140552950331282561806806720781409739207665029369380323987808288085309808114142186975028033000863458245819008873437048637103699388011785060279828437501320956389871524872775997143124694223357609252585191572450909518734685704951192505438815245404093418922595464117872770977965362119914038507474130545357806831071610647621283193368312813543065918742992455483581716338010145965099355937343465523888316636032855389582366727379435408831219555277648337406847794761198264052693450016944737908382688156437345998356246778747682467900856151133422887721341523451511532156557924721344312817083200953238112897861328882265945162793734621463224435004824817678410933497256882113462437572026464747084293852495445338729038409643839647113890762882953881054014117380219381194884775711740995984145987044146321640027951523596118291049412131999041684960229204489024263503584840664904462384657202949393396830002418167116256175528304454051107002016479992472321400663036501361473117656600620155425087756812991192177081251222911388439896075179576593863496076644108445524916671447415181296774590616120629390417540024126433118196510049318665920724639391615016010696897841958033249368952799664062854283400705725799976290041757718795368716146098335421401117611800403187395705710797890201513025240862980231729157041010863773096912191597977126922340416350022272999068431129396729952748555239036201900232486210407585586679257766223328759530049261287061417830536166692770771231197575271402698094384392828953913112763192901213199608202805263976183742750584554180815651005977277752348156050858162055432226010082544747333063877593506395124125358659214150320719380262853742493619192964558393826049045065450353519047280984968462938277350986893773392674702676742251755479364674131010698076475351760316443460616962160237636717333420000739212241481373906667068181177063873344903760914615862703670434737673464582966232870961293693916577014826252327479065638018127075221366962820999590621291307970898557906119410407080762555593645033548878572969722979617840201540254508685974679681263651672555144112188666130501479646503756962125322106096224382890310255568627113076954517692364123267047749247228162731143602535317043982580248262550412044864002634374369399267539909108642230057927437832910059048192614279219824307611215381559527989568648422772486378745123449083369175963668702803987668441960710151152186113424540034617204276261689838011609635397269951751387271291622328292038526638319904594832944527660290330117639170332594665921340764900745232654212145524590062614567275955611516114309989434678251925373607547536763237559158562609484373558437344427635253657114565002886608520044439030246986497272737556619974292814700934654688202717233971095206118493640476272838969412831324300128503090145446252345623400177028552416232814889625148469177703153708502102687123636917798896406015294331719930893667911178541018030680087713981020236323952214110303864006913557378168930783632407196607574117739580976029679332250708449039518182884142989459602501106638485099946461735631713361271357532246049924459993329007806566874562588898030046504757194939433520852565383937494090673030240434519936668716104105357829169988138857371856076395884053669857848381517869072023656595766133299970339941703214035042886377927392864234237113459891998165224723961145540904649531476920131546411931037152135840589326134687642099593863442303327881319473708749707547466190986116971171045476258843383575007603012892952817671260934635932647787896966562802371515646925623150333884039488920590323615083258735297991295731264908144892531356650609002435072965911952563594451543934232888051369083149059470966869859130472398657022298117696054202400329471505167425852229885779673780126752221975805048889014820075164637640541734116827380627186816853099109310775499488828524992968286451730317733452233082421700148474539898942244321093820994945715030301155795467174066868709660680992148502566690958050801982779790532479012221228086027146986307319370693314737649676558310366670931893094061564847453320836308830101277728186252849953995104338279131747272219051546639741406820521325035565653804205754043142331491239541769703427973561436453991134672252761618980873967598525797607655504223088984019764228248125992116447795477906995771983819322848347826109633354103650413759059483567498575404306858662978370395970079979397048781162456830083035560801859767173860295211022012051816529380209346805368369231254926349979939593753304705151498463243173783637962570760018968384697713258795495219119785036479294769643941966556433537464107612506563682364853931902089852457775393627077260864656241593996911225315813549782569655076383559558630715780393710700867665351429265195764310568583713330306853269090429262074073918924522805534722664212112643409971821838959138668868856961222876560817049523893004820527860467203664085773971310578049737017008673075059255025169064230713679676825583930732833491251544455932481116949614293262602387947778076844109115511282012365258354140965961284363112298501968573612477087501309462678682143670965051786434813948579811225604092858138982909067582893867815230846262983189851604312790950493443626015880003170271609541444903606543345120759821074636524930185325471000237179431330795412010020194153641514359406401768919128110225561234563979660226384257209548164897009979749830639840428165852253884572990559813475738285231540173783020372099819702955415772038020490463544754504854633485226668622511031114461877447963549120070978191592629538763122436849927551683370016248830037069642754509382028154646034905321780946553816252502771509853948776393161063562916021577292257284475511491263395330756027881223189928002436869137424687474918876617789772468283299547293345209734242558157791533046007731048010876200950734924420088009880506963289119979124161591213156465846501389333812978337502191490849284382477633307153540495481560529819370507213151371748193135562107083046513923734503828926299647320219368089138797097123492830460996623169347042722398152466019849886100577483690384064345058193911982696015664091542421050526593318928645786099717603975356866476011157755865157772409948907728901941164579282024038152600042522112038958758639294711860620533364668228314271378356054141670925575370526543144424992661843730726221367727234631879092852392306020301410639558018353715588198512665267204416037695866749753389584721433550159924130043202739895252432408179020330740344062906682561177743200641156519150765559730563297467759063794954529727765953692806080236767472378720717331857924973454271053581878574018589608593680800871189128566255663119041985904376392940458842909949215136252938095023547072069740010120385684175666556913002514510822323525165882734464916517704237404947317379291584256242604086904127522283141764232566444861654937179032954392631220529394303730142918459777038287986167556800507784056244472265703864719381247068312792742060267394117923598027555067975833875663637081404075244341224796169840307360415808508289534910699047171869038765473987360936123176857958915256413985735857959972731372641564117960164131279661311368327221560566939890861822516752553346768112369707168396563060927508347788669502528281018760118582715972850630929057664083024260782073592226506434508796868630201770139228823887997967700416286910884980148113651348750653649457210528671602596816991722958273078739700099854367538694925585493599336845310422972663319393725114064970845390636520222210553352987499675519103488419746055814152820744795336486438778776249265816044828283058544438416147701661866752322698239202439248994271821684432368162777488018564472813681039911826317699367713956728468577686335886028913457726412420061575316972501641491861011612819892715876376562339039392879776717594711527199517672397278616699111265968226423626400291171824901915311530218093255211562542970998176922464499354104141608986994553052724115518882407311597975983068338691845640824349550981904927922764441081974939065882083368355513815586253143661379013023092915929060028311811995506352918596969061306877310738975599333441100447506521280407480468168823872177881387494140037886668484424071468702990267521256025908681251872308657814532911142528083597547931465752523953375850142729730403967366447108646380440104894428274552678830024504206981425024182741857776253916647796152079192980582721508333560061934204085242014911361166242410940881002701864255964502436226651233194263703738588315971997367828985082858858848721523801049053705537729209432464454992767986149919941786457296987481610238532527507587874958007589259450295827757078664990751618546642151391236857888876262479452381748211517711357512553029051281049981061404695084580468371149459572906670999417940453480156919224093557961004857513736257219156808142679939793029609581208895846803194090026699198517851800384087017552183293466270230039345895669821322053156835677053450804182965626350622903212362016245125192782441802625322146311475003665395188565210793769415174571463791005621797507852980859324975878628399632234093503760137613187823297582348011214143389558963327932440128281924244105676984495728134870207247792691560790794798852163265242032346564924279485248618810747173986258066821442221876343873690832606430689254901173832995231304867976098138670474508927425950828747451590047735117086863526747458615996601297944413833141195989170473231004768097717429923304924253659619102060516822044569483877395566026073173720713573444813338886707318401476029530586566530805097908939906080193100169076213141790451736748883884251943865574149778377251423760986134485467801208834673202880256124310484642427839133803890474483572344602346940667950791911320305149764830471877867591581215644670029456464919402375903068529612461252531891803259348955563861755929207424144420381589468479260178601462536279721259924687006736894988112804861648747648583566883310680128523491936734870406265116004225603088953450294766742022869445286255305511882224397220522053426989385031711240955701963197121219890899490205248449865767627148675276876721338409899729091958804431586791878770518109355874519820826488807474275960718941446629572348913361066941237546686402991866750486380406319804751064837422587258883166221896628868989122999128605213599291253990458932049749663804634547578562217095236748705329199108880504738598640822062583668200267340896342829665756628838117814302326743306453966602695520223123021062660026675378874655373198202175076370007215378106362597015302011065849407678487741394227306163539104033481067767552967136475512315974954872625797890608241474330883341887835200074723506266170658634086209488128934306034405710007637612823194449354964157564064474895063629154759498226867929764414930390112947112404711484935247671130473314401904863711388539519131784325747136846110679408741252232645565488972126534314448378097498088830342157627477336540749715197039995648291698121518410179579542729600555448447577550564993765610015569000713931143717304870591022475553219287033226300251776049560279428772603360217353147185900054531032289398057044212668384641704946646820898840401947839141168842645874918232024954837469893324103812101609431740114988381607597636290055907990408794830455308078366898811961300763496295539142730569645162627521856272460154312429397248632257068917993531730304136989885363369366586187647524660217742786922721267550265984962813906214269555004374331060121152265945698870310306711722307897394870088324670045893307633883370167357670872185494127173928089939547292468381898625896905120413570282247863566009039186258976561550686396529443812232669652840210606482449330521198870238819566790089639487917736016746868401523315113129553664048599069070077230092761531642554361100011420628365793355124377630776790144893602953879913018827661681269824813166754703503453116172307763880440188405918860461975310414458508234512960246932525486088790761880939851010553722000998505037708386323237734477911918764757864399849888865717931735826648723561234968959565926199830145801473902632024270973663949769319993688195744842998200015755364747351583355696834126933098588942396451332040679530972895210947881162076725578792904049530991471170849646683560809549440884708531843849392767174535684133802427220683647964766856653259225018668048455339889097028174856323142537553392408422467408809411079824013922264753975053158840471298223587045060349829915431690464865503957084121013316937276832568235646921611481923942394557802313824444693526297503542299355325893371276585306795468387880916665324069838995389056532360438945726804506381698577333392721957802371333234078834821589623287713259778137997337585262525781132059084383616954359202970857519183169083597322083925910951773449803840388641233670750188908008240916491377381454514002678401267428407615354889629993071308452622956655959188295121398185267033238442386959648022251752337986878749883344677791463734699040870584908210440934407603278947777246816086018023689195417489046145229554159136396416781659841036446239169420254959803071842337116442030837317730201881468456180147322996260323952294170927170619273328717710676864162310292731342827161791208517215360538037973601418971483961502739576556478517573299666674023175198002394083979115662546176082633270992281974682413636250059922831115320299135862359564150965788499193277927820774450368983809155762951887686064484037249952575127450812138730315943517518973094880321102949820227019087731603048240118520064931118717953013351200978688231867066601577496653125075866999367905227115998869904688438175847106730355757065304107167865034316028288047626466885341960064077211773069174151991524288584510145633324457133117611519791806350448389112661991681126677036146651033618220118637869914528787389761489730929802605475482950311212277980357807795779549832354745229856471782243805934977512790889611723995058406581712299285897576579444495527057647131612742320468225729704867183465567335407750072454602139591907804935659931868658719241646619805687019808668914726500222616799674364091096287578821599844337608119446556337593473250193862595458541368373786217101905698400129766578471184111632137467569470362368462009061047642586762763684459257165837857150946676793163526349582240220528897212176642157975036444059372861777300781573790881789476675734097076852883942114186909577079220444821578418881544797378177153368689391878163785311901104094888167311071931998089712119132755581816987277926334005567290316096094410768415582574009912415802192693230350963281967786224660750351937423030165238977642668161040431675146634315481145139370444630959866283441694814307104710724681143635561902814082522297688397696348385611881293339864691608815983437241798153514601976169248336884972259501056329278880464114813131838731093231389954362662003329099889309628897346229757661717653525986462872632105259084806782496644562409024426612699583901023383718999939957281560635072484096058669490641950115417127016162164341179872278845932063776742923418231989824193382531225660875754986897469918746438858681303873322015998916201762725894267928916397884067132027748514229728520408826078726688181641147917899724132887797696921335160254328117554377920745415540116574118325343461039001943473073679117182412960214007970353488507888612861800674109442596543951573909553917282537310167614547395179351820211464627245880145356933369481054984710884225211622961413650182537311934483854583702053080430975213538237669031236602583244157689108783081892176748258213420659933021334900489576358924354601410018456350917367578332921782627604002976698010244603496821724416647251253368800748055138209606511867220565477063255207734489514429202499778481081650317770795338899659008339587859460134367226629753692162402972458417712621170993482067452159875710837084681001570389004507700264989633443043041943916782842652765630123259301992310868340501074881362407680715092554505748993795686235468705770828650724188196466673374928471412350730974590223357129256201148475532027022050874447805198147994891340960224638906311389616596411287630143801234612776400870612094736163779972917088505179096115655668198337450833716806207024247414577996483743347691970915068028333817961795052575572426518164609763737570876818248283932323287528591509303512995680487494774247361952152502120944667137707367367889023847390219777663363347048735895343648102623728452199110303655120911916728664176812057515512806901610053496024804091053215332743500941138655980182399045443864594718584968811048496299882213902718410051380916525575604542338430740798725770080627146200229886365355354734870839849260558525754725708674252468060238262492311671141797442496141695585134609669436027946901513514540288283933196765793375436879112777784638921018383755647560813046551422844969991258382221536237175520312478346360515538748619515554950585617042417363354325299244148097871356197622601381950189560215722807233422193929384464047631242295868804121473526903077791838681107533342600377356628166179369999307153802034338132886421069341766308897487509354893483813314521665046604547120684843013107077692007101894940804920132819680780285494361969563872297720975548481673994835027967589508266503958453744703143351302214200310979127601818702793502675012242999616382159644339906866624485202838615756731780097192806506161971588999523168700626957927118714297517775590508956168070647514908488252337374843211180256250932910718610913067785741977052456622298648633254929728729767147316355073614226663079766075659711237035897929555135090571248046003061678780392590672301865074377719284466779295343401568238744546992901672542205430275046218560833034939252489447977796854580029447735236687063452455210031937413243690980557303662153704530180947490925773741256662736094404279670349836494765451376699570146239928543315798486712648496353207637449527881942229085803545210911512343215671180049868308589910097160992821260474600725187722850702933217145950943695308084866404977237628571516165762779156509845935170306095618114671717283509005864232823712298668541219550071049139275933577140837791191678969988439920286627791742244343100719675838918888676507774397657148382635678604951184908465568159506262464867867928703483918958439618816131707970972724004272656769927436519923584072149567649246114736640409826053634333391467725986174757881649378238777096055170135994854750699630393931095195414198758740777058875730126718883093300377434449545631674387904169849450648534892516960931513142432514815469240916999572145336984666167684625101207991425914506073423783608596937137192988723979673947394021858465711343579176651997657474031000582565698426380443840599616697469338707390670711731865490035566814324581917651386359272577826026964605592723779245475804696869943178511783957178102140720677967646559738200243988922614780992935630904850276113457790134520270245243410819042582554034520305585066256538924953918154642105720008653052998677013220952158907527320843831829703730269827736113326651226431949007770977267118736259865692616781737757672826588804755738017031538065446040950391157851426040633231261369962753986194176770386005046852230117171223384044177788174723483082397890727076252813073651584824841549907414418342398024446471009287847977239324648703265867991530708257393403192074314549711691947727917064306313583247897032040565172674276766042752875473063279140584815346461201017949116261345055220671056894733038133426784040153051686286679163294304226754117720252949188496048661374947967858717425690681961120540817275464382161874396382313791647406507591359340398698243038609213708341358037193369062052612274769878054948415961752456304959693372687086108031034912952292157257515681918583283918724400347146389506323060537911266234479984539410667907918785887726985848731275012745545843686021267305534203698635721621593495079555106143686958365336562560192432175453026898754018742631363260060479029770565475749904108057047071329374686309982282901688217672209624887967693023481478701873063939321340604577215776101709456566885097770220890000628705405743980046307992972965701743301225339663312121106861617862624968472270029712417592767988257618943892036681804885688854014273806500187430422822261247477530717278231999012175049918942068988941177993275819192446671572711851503880155254392284490731488688939972742290041666804166645004132180859524483127313142524499808922422393120261239151921788479386484847575560283957394691089859040860608406552943874727470487574767221284873080657667419710989869588921491660605420461146414804792581320070023783902197768285371040174354711689678437721830300452115986390675156638966863980496918254309682091067038080537127935553745067381359772003316523949027664191747342604554757138351879009135093725997573582862937928615926672069429217634924229692492830232803657568406859501833275339724573551354237444007241067862151769410833351102759820711068488160115935258531158070107286066931639098096302761158280390102126296104026954426849370396074621445732039795490657967514222653709968619791397744657486294216310946468961803620772946189853660523347059986111209509773190048004509575811261984578764494005938179649751013145247150088500446728766756448072019763670009518464912664917641716874927566591670556487555672932768665746898053452715733810693866406080987619886578269505674151490756600346102020206044114083056373313321403533933841842594062474547459152674245320485492457078683159498158841555438792446192067967576449344970490034466624573323632760383676496697897057681498191187992784345924327507888287999297498553808352270306198840811550999526064573710924977270538409790645533598238214282388429659274874952168844131333506303500409015796938230821439749237885918990974816685809744741553516543138417225564009494006263482538708632126454997777632335233899390646181138611240792827765538703127554554891587419406011279704789566161553846664191327274153405603054621214861783188844257801892199337807647174555839163742102672790377825037024553442731734330105411297860376620236777139052028369728694920106224308306507043594868592488743057506940224835781242941076194572428625700459054208057541004994963144037392218715888863912196067469848919228185179608122331686929274669654920039587789374281000882415781448799328608878038783360984773225980003320683817578248133607086325935558133422679820053135862303556852547938827915745582157894027658853618341013563338145773745276488415638070837987545709332953860539726453779511584359155860240933421577853854816218827058252718490325594330202158866346944960261156726961752333369669764160870986349503561974696983383873362240355200246475833882594880435440461614569298837373396699832285263711637277272114591647993936091546629844974711470994214734145740388948163461907459402096976813729158571889745601739941798607461952829903102470388176616803820747348646075732361863025121544614868585524397522119998709816648840851124169177923522216660212733709765917602282436639929342531225249595948059041588728940611828953918263113048789766566804948703421474909837609853159669868889767023486929020860703368520128269966155652440206788297503968433261142416566968943921192205973679037256158250257139606213878039687981804561023062613651419645409820690980384341079431666717250075403030898008930004137140970693810215436221920863546961601691540018583876633411774760674110154404077951721966808524214037101275033718047366459738291271305253056211035950330982301214288917995880137449888274935754219159385133828307856196070621311204993951683618938885963864735383900109763368220741939819225603413416426330289919999426625317657657570345070831654812189106624044019821450053147779102433817347043496495969492173746112670731734457409459766929536731999763561965533410549220444120307531923837711779249500447097004071055823434468689901630470054226154201630038364518581689888467950473488634958542724950847329327852142625000369202955964367029298421998751271119715197099695733949157356342807985930604998044903903511126820478374873106182760605050835360867919126485391819035749381524076823870276855517075364414717377455423532038891671684409698730688307205323664488451552036134019353655140587865215343573392794824043281071069125745847992182344608090069783443420753791672305337974402623648769081102522355206023745147474643038164476335609502190663759499562534819343770221271538165343227913276540905909190393559423643112693174199698956906120124754378476651948878568209639682124089500668744935975016777914470519730577565195033878296525988117593522307494371974177360069707217495822154187803368050135902880989698025201083991753444519559494145113671729060374183410233855749437273627206231623145195753970052458820342010253255143567867058135291535428236779732119139208716002628759764514785968128405509958202948049658122152057957940350678770420405631754618918128932784949297303726067285139341149723189806537470244642733803514878417505147031187904694520338933269949724138806630235703092503707113903224831883866440181741058294727591017163957249674227580698064744184231452497758330560821052017938041299445894884521769423570571591417051048308197545096922520433863488038716525405001672209212202006335567750298335481587790964668486492077864124529181866899886080676840264290120454353850143204015120933172964238697676548987333842102272711401029817915117119375790222927006761403676507233061328728088747780176308289203043800134615492227910989444349189371349721144918539650942177949327850017554521006963105320064850250841793406922892776535011122208594958172874123630973122183144134671249815036097902222051652783796203420604591589356998427387570095355637212779225424223423910611234109939367723655836036272878791378809777593181068250877054339646200360364682412068232806901759705311295203573312915940696796405727779866717380317527538447365014088238250455577270496716695481507201007926594498099537520530235089117165128024361340198096170550151917573936516521070849387676235291758387007417283444196283339301982757962875122319107729240430697136804815678268824253737504239827637685546319836957273994194499866154456572518537502282329719793164752268034296442378760240138800200041749985960441426988608219071239047527856340083741099352001746405922507109951354208696621125277662570695583248786257253039571595282997609714204531549241733359214607052190859250820769434018679138437895003146562658209469424728278022431908939484376889690880606811321074397013578817923935830877349016141210967161445128053052006253648159787610602610004854505461918769550712876046575484430405434368581017002909449524794975240318620220922910962165348292838968618372564880584913472022401171055167082444140144492705991147351981705456587810276744450958705632339808711086877562891886226318643703913425435350691527672324201307538280508780850126302134878959018409805517343018074264212748725966011694378326053454769679722012736353213071532332600121180032770975659142070942357019164476635846585816262220395724835607020730036827212462019881821098623484050767017588284580735919057074394656856029902999198524898939943439647702422319658961418935050850609492554929181941709678535384615793627724399659127322062197716404018421596351800169215036378730738758085676790984174142264142116807328734790514543047984022943102197704616354422941429890345887221359963311164515483683859978160109795422808693633436110484099981349230725883019272314410928099144683931397735118385947295660635867683231785469752354941044040598740809547182996803523027572194009167974534201806088544444136517997724591567264035554483505110050936527605567583909414582514621979931499317194629871847882907130452983105945140544523304218100359378663067447794737191645930325443829214202062697479068573163287929673968567045119661999104500820379531667983693059062684737413301442693066820138400465470485629613443751178992423635411533346591171687807352690223195548925929575643395248646288597317546312492945858301381937426319944266491724386072124904081420972277668689199954267911754196920737036493168541332837778682630919419671053575033326668784147370082666132165284576769410434007571390328279917295021775357436841983895719894068005507828372820906379626820815828495390534633009416158109769261884625294765274483085511467671361351668325979418790089045699114563365550439829546730209096966185757146592519212377534764371805178735502661872889009324198906867776192399641537462426469304545750913080242807304328981284036524585363538552043816850052648811957267815909247422885832666020092584447159379822827754093809963152611802939345685800382635022718506059622824539908460313356034878438811148675605592662743739310252690241112912249011802622772468668680587999582998038106925863321931761305407189009073757494544475122028705379165518964402831954133290846550124395624677115191543384830380044035900433575828362809200743911433988880729832105743495902551698455432950433845081631043350078930652512143608123040088132115626618316171743163548690707251427252769061481218398290797157476232343844552291487785503830141045938406848721891113462456889767615640968797191784029334848981407882818392071238152796542896399339890555221301265105371023441420343631994897525958269350575912401213075105093422938164095302675975192586653776594513431019032084573404390912793739779977211647416842970582060715342407810284934656854652393881148174157120047725682542111152647091042922396573149190624391802162055744256112406092514543295633858141322713109211730894721725279154109991228248601346745478210004902376604471143350225428136615954172766390367450656759783085836280134510248858446337630129855504205467595086606925186573520480489536093412839989696471876044218263834934018315828051148249103041777187572209546074776710928464803794226428516232101552046551407521233254313781569511012998159447600197896409301587325924459872403187438975876422919962478934103839213027911384846457207686006272700405177313051045847670341100709903366415167832811451768372009331124397286332877800282229413714967024845311191444034322516450630140765199240005355224314551543195427436286760494416824232275049743320717214426762888928512299871413792379344386810289022623478596567081518235713749096833876553914353975440457610749620804030166841006484971865135462130631166457501158120424409361329343304743723577593944971093899997181283710551310413576231248328701477491290479464024267669070382854020666541726971241140425355649829074447749190582715375317906217138710450603469245264021520964246871669890958435294689567592893847737828174540723089672989372254914021017440762986290751464134064165876411139015318964582913853225400969281874482595043532579853555294209261275286217717914656524608345187095502451131069778129783694241980796557455643285726943750688191039937672428555627558071963535260607164019287564834893565478661055741845071310868160461128456016719863905894109585716555974636229705193219510226628420962960336041660215487509927716269043178243758060011771642974054491423534878946610969925122255539930848055520608693405409997323492382453863173861403758843327595994499549830219705787867487260428321111866397535814663141795973856349118723966358807273052712156876608982473891328018776073019503995105085053576910892043234899399457020881261998248549375857677898156773296978259061825118775131200212556023088689467230188058449449658471021626713271815822107691457270998382098888593263265421805821730425762486013664189881385083991890546245261614141313754986124712259188874409726384825786825933093394902060300951443777499129784837353125980785654520720768929286520308658109589337374989920072062518934399518269906646514028720925537275694126216732004452393444499447910787844174174792826146576804283505111815921100727895021878659334347766680120217486327958309960822025944815146074095397941888087747430273178165840921708967579908723041202293455180550828507400758718932252569848305073542561119704290743322276716627912455365080973114996573595552602503917750060484615989878558784875121636346630953068267683264216055940298167875623516442577848769219210582321620865296536842067054150673013774761372809688586490204406164997817862131169706289639390753862550976205152836289205899950188016509706005276627956781857089453553889747161840856513316898441641735762676234791746275844493172424071294128937738090244863423086569675406701184242285215424313648948775061970316721437251245603652104108660980119815772680207498852534601413690208212556727318337468617619243529435605425984049247037844277684273301139545485851920506470904936325289782601997230553972292502612566604676725809809085414079539565352645301970027527372793458546877996959554552636727924682664787847266281533155321685360275186100194613768756168853326614661944612743069918584280625506006284782849305265601259371574584071542206293316482774044290636615747089061427286978959634624441075890231754107681523150235529907092298265454914336680882639812841938205020087834141270291043979919265119973315798289344354087389844771055760735827034377703671173808467167051116780639470910017454769450989392065906995414746768285907024551998072183548680932255984706905277216654377580427460246155391963423090832322737099553103301613997119839798553341509331416644979878703395182868005498257103399669652334514304640943279920514147252694079544499514509717131413047143738918920734430961177420181127568435078865369049927402918266570025663703419218312381495719581435454773877180363238101341284401510684157640559594095153705622603458361346866454696954048736579192764151280578618738166617682336731223402211208089341084524999924745008726748491917734646561264804980521166261011223676446133839547813159251000030071833648199313221117759505298794096520188912035943247907830921854767417331047880295054378826682166642792150309408941768220449249275509757578619023919531923147080833482114355468496783105529984618264815735238753641039573992128894223617999755095551849250305918503877186280027397742705371656278888262216062383635715494967510703572238093600407490946360330310628966791059450303098089384398284151200910469435434899628377892523818259038533215734332694922685306174378563134568675828690602533363142022486876573801803492169467309522580756330486096942875114947825026968883884810103456449235026606498457868502783729210126212731640147926572122883451701219655733146314435349199577363824442981800358764278265967455968974248140980274657728999852743189513111955688537915224222900674280265569555793881408253050978553798250385136331682257684175085263548805220353121179857320767937026366223535004112610489794303359120834739253052101844077180704935674984341837428641627147605701587557156617058579097877144899662195586183402463708731969238671578120643172143683045728142420951727470224243712888533120801732769594677800467053404872152988412297947192620607542325659576618022012505757154667657069434542392645786440759593939838645342334356042297135679346782170875865642354400798381219044146871784823601144667829913797710966008216112827013733574563037792094678411789024166094422077788799118103517292444671427930747542473027473527828404507496613932731973353635383193819596773307707959472401195196982705179780665915326126360767874737797646223442976965867835386835843032099737369961601691987552803600424455751727467025900671470307017361308325755293100583070354716366132063260333785825861783153782534957877754427354738204312308192331238581563289581415411864502702966964789981599875805331324867023578911388799660584171195590631312914312682823597617723893418701836277215714582147506578346815307057397509691655085860754931015540264655006219483425861147559004370026794549049191355566824895730681879460461591706740784624182964102455790709266459246209672897850602566746967074522488013017387605576968929649374788463440613949863940339230699587023676534034871155819766003609489909932310850239982371704728568552950508575651737280889964677973632153647723005928981291670032124550431225905679571941882611505728859382699489950992931389178374402954784085434929482669105428611873568985382962990749798292265892192530546067245661098090821697084340194263865206920487256563538981322651684245455759523208439369709649398297703890184592964294861712583453833766486050410666987403091923461373382756955691138316395773991639007748883709340025717124517877368761651168699122122449335420948020526969507684966076907535102500911891232179353646351452306432815668678080709596943394567557902791856935747307454582226851866246451138252131758847801350117816397610050272496707609250985396490528572831880449869355104069522035781022800133084524897247080196353950891652057286604005304967113113631879191338078864296143533242757748776200195400559118560187730297708085703395411544216759492634666877777008394663894746178847789992360106506701158022633760508166135571408765918355258049821434008827515671164224628803624087844468852440088867592017023492987244460941010148532307823586800977438140274758210344952154578626696133416862786930021227777440439410023328513950585522284900713299019999509322071073520275313406525094722363527234916082615050049418473975009062360885018155460654000620225350489465328207023623179701326805315450216409173245877955721704160450311632804981644034943771067557896976315886043826921308865576734730937635009104777488514260227588272794928776504734172199876730112008858196319167684545080523149687538246450961748776717774495506272413065912303300795991511797460361886292125872036010666892013287348746924049755033822400283224469766283265600026369193758908764460390651637310959302026386384009142349898894891291316403841340130885059291900900769259489211655323024804141033329215040760643224235498252795622254031993522522350005425860514892360811116927542650308901716095619202317526478094150399912510780412214763910872039791696196505196836281446658338330106381694700337582912494256435381188755299532157797423043029267135691289097852245501081982731169678426253075058955250829013668940323600599621624009091465300896951526650612989535427553756419317371017687593162893769308939400080334612408712817099167731084444094132223617929543692377296557487264228418543213463895133214687631333064843514418988829066067824410416118284126304762730957333600153748973353534379640007220617330267420015460126264709045244852934408088118656254717055902558930025908799527315805827188649035366549464490989077898186880745830171682889075339820093909296176895128377759745124130161766410877969702136823679116601809596971262440940304495754191981505186937473229192787420107050219553909893729126405680132713926383840565021061289660616137868052112684682688416852011805605782824649592460948284254797476870799037760286469067571103212023567214848773276539906942046788460336707774387868352294700489154861635540954976677257013610069806497022678443776460975985661676661142557267666949350039020240853837087829878349038655476011971170217943904705719455437902078621301582639525597228917609873018022778534149878333629448254237846377628603825256377572417970977826030078980677873942738278614261335961999645557005127875624469040132308865146365522771151600703324352315699362254542115985639011044936528186740581202089807302500042718737912918475044955077939972367030748902796196988073142134575283870960706296014276581434278713846286794202701847081508907762490205889811586972243231082461321622993975876886656112057016734113589370758323754246301589622671516407675131064207901345449018164918513814497138947157129371187490106216691947782178592932580269818560235899460952337970815086213923880799345472373725470277226753243426703120410196434038320431055709420750691671401339382432483437159819762075748438223065022030186065364829035521391486275074374551057790215185999701130870452266777008929147057590211859254954649813312516110577471405143327135623223793885204449000249310759575376669184933951703980348796406712758655189569178014298667987206465770661002898074248754296591460032524398458498607157909499659897630113426602352689322876611998285017517791475953056255964850900080958648724786019543865268165754536648820737087994313489013881622789110647019570564672658004129278336486245923168321819588013966156970004020620713046370476945462995770673903137927519279736754602186214700724916744928993623811050363559882424267132005527372275513116200629074921883613321977886782395136836473099979048187925023191678770470852831966003806376309664171393891447230919758504684561874297547673101150308492290246588583992856838109380959033060408766854757545999536833105207034231731842889221238991534331121084792769523665795717089606522901763554442256217006703946452054149798196472983174760589206596140485262306772477234004137075236394781952754340904620392543002238827696731688016442787872094467803672055137903258763295297928461139498307932359380463103601865731008116342685113134067049297671364001577751947128193355109086446758974450193115752966501665670421598323007718583858334579830429089064978373240961508009621699031773588118500811232263344793940440442208044885280580800588734816397940840471519341985149854559485598575257407317078335474889786346928244328468276276250905815487853919713591898261723160833862543833212635575797981028722825814872303949738702583657327953092928514028830137181889739918870206584605768251179686851443831723298039286319320666038404391759374106445700448550956818887635029547163224040006210154871276281902247979578220475942961884328833626703813431733320407618406536155635458550781557552233644687066290701915726703958433861339868914119852750008336035361053440347612963725464196320488143084920357837308246477738260386880516209837464902241488513596686182435457971015096105464638945410368849045266997451459256002060671562504423135244906012677270202527769251775413901265443058192748667053916702458382123511092763079897755203034774734308715224689129685054895981913399479102422110352251577463463063203518317917953466039022550728752499479064991216319709485836795195467197255531324138779653369848607750514977857344428641717912450599743957552984102721312716685374774438050489506523939824463246296339959630539044538484044568912609132746173512069774400807356443072519797216261854667368068360779277603081179334750862202370267666964093314110833539322653404587855473974136901168097808124472152155383766489026625345131134871920872873252191937674565959601345559058134708541911327525662100104647636748266046439441055847780504076566131934406965123431270934239962742082967900550597291570655195071371687948146963644724370339122031742842905904417867520466484473725708791450630307035571156241703455489708890384487278899066727108195715464259900585287704917095652404949847609107625054191665287380966763458142274602413846255172215764963707413609697547399402890144367346324451115242706168840985666305643262023634382256916559223488738672858289538577098206049717282972813840629270873970028598378692506764097372656998203633454323456920788052668505103882557079771960562980534446500545092013355724810969221740389820576645351260012806051475404388021203867764943867456545659019689310553746719036467075798455562189358240882462338339086869564916238038412064905781955575366883961741876117239570553098822335125332351688684691255461059010827335784885211499499955307123687146238197473208035512469196346161262481329059432643758015602584848587786709738009328060926708393705147172622717279072150332170031866905788477285023450815362619218232147618087767667916970319056871302443508905309103297814344523571884119027301029482255641516714289096343397710312422975926875067495345117787669476765296524652679313741940041550380340623412223892676522681192739458226866388506051191281600767272786884283869852388172743971512033485475880733465065445197140994212410694361891028353118298528347458481496816520765403476300363252649453267732530137633683294995331402482859150164497630092034956429672437876343189731368003112627354104883350058939932266087513129338587773598234949550901518561218965961460595473454432648961502573797859439549966541928839036114050378719988444833537937462393704877325623454900063012022528335379595477495408910239841688681063342813619149727007287288775894432238018585377288911449488308336577133637081547101395745399682135725004016437782334033141340753296399525040846113211057314756521197103196887406613560180588028907542262053833150292052847992066841374726645184590143713687697012319703518478452414161641929151297163875573970759751583524836327973333691727489723517172546361326166407700974780733944833848582067703339005507171951149652728894694615906481703641982289404671715821120524045802365557471049487816133094743523310096200512402022159762915018099359255259103758580501438581073596710116811766981714181742554045265961551543575616032443677477965196837690687263710720592163969878073776583353087943169530583057869544519288758612753733387211978428396371093305080571373675702338642423946691671784410803599027244491324258945306578292487275913060231421560975374520169041561230560063643127356645007768361559998756269941994816922143813850754104274268451185864818160835962292918406615373706069473366306835563381269615562070535748351278098173199508973009953857746303930382458589605526383512019486033223412852243571964517858823712716316875975114926845589943741899816717287691991176117668285966092122030723657133687511725361688276384483206641439568035926258348177183505277065181721057009111778178536826780478273099876838557573069699768711064629169806878343008840965507356136123399540362563577019859539272237270611607336173925483629974262827005252998123030607561384041958142264298990890461529768576289211588727344666602682030091473207318083237599576128817680180203184738239859884467608597868609780505240373875712075614066069429136580436849366536002851171622531001174200982142708664527831346362987025848106217187302961560970063224983520894437973176718596775108734062634306661064636541969057615135395455561849609159072237342275909161412691282241058814573970214002839014125926388553637481717629128751925383253660201102825270522981712432242379850695305671425064660183436187634319420569656324364676299201331863567781815213711290853993711898618179887933979819591748679295098910435384848787342448595751834849677671986838209285860710893569868536592280211456829939199406485964819692196392501837400032406629190575414431989888116976393533939945327543168424841938344392924173092103143741385295706083231456676224694690565598174353886228421456472067610130685567123555066676185350704597991054836217914583875007516963937534044464623437817604764592356622542086847498546787556645903988939783035488628567373124228735290629279895231702773985852341932153283233807883045597533006253637365033989623771540389904524331139280987626163052243755371561835433058075678487688868153260490156287195069313669203310855073243438313959599871072391362356203229595158610698306909405890038672487978264976953018008729707936896423833929859105112559607511813584972087762310885959497558058460107114161901526332920301122722122032712330171790870045642572525443287697840149858565107997926861611050123564843494495889365274198599912819918976333339394530779756157236859436020511578512218724757182967942363467398295922350715836637316719486191310849184206715410730596381786022158857119187105025951936932466625097007897664938883912485184857138085202376682367657760789615442757267733303558879653463299575453229811093907906789521932634013376417785858399153525920905200961171750900465785258254457235516471905381407538173653169236161376309080039597713688230633984846888764427991540784295825536192714108516851389923142044772597298395806523979781623013023431094908464959671062936963690820315166704554681859495351013886820948122497439654648621481515611098922945973684547584953643728441143576215712132881295168679199623885435465700082317911373034825523548311434889128722668937700167249065674730275610930342239397418766553957703053961357820806171160895946960345988641165915509045653870083607919451798703947333273080447986836906862602591898753638959943683770231143475201850513080402266523803338758573080791094259570350012070435405398149717953239723188358743570490394674827425751526357480355447209343648321539452377325406064841837377728099395726875002266704585540792180108833132567451232864502976753356932695588298574004856743062893584490417797999388071792126878287980562527289374759716539294404336036276805042810339625945046654661358980691135429256860606361390066318016870576012535637085471864810358619590172965839761684258135729193716270002354434567745975657790264434146863621434719180923132210470734179058625886691120634536124576980311931635855151164589744449614494254511728813303633410685144607659909015407436265252283172083289837324324921865043820359756127976539220166843278725870710712446570354377020413979421108996019885776539980766931010628444024026075201759451588057708266704661612470519181676512791935752152130651884854172140755185370369692509165789701371451027358337552803652443338220023745707647393875194406861085658209690471914356169677884515117602415181829603057583136629789743328335886944173791929578484348440931395796834028972292228850151646635022772830457070068760452258294036020534079867766475268282657712568548748236026637512473422479554704882791105350271492022578099037908892065946123906233794148976411886317017892814819017255976525222578728930355923395067314439813804462979187170941100278408192344239779060785386084702017819736548919025933717928959823917798977724937649633095721907263947637325233458257836486429171288584171217735461050999457970848174449418819708336079839460143499320178412167057182034653756450342019401729705358404505253243003007822452550315650458413964955128422064302709788858034746768880148374987620085465280763236034433499181163471538192277105869281455168190977276021833978950556024473225320447272121397872980888100969762580795978860436437386359036288090140517794534366568580648127756547114614256244035837836803079863037790280129343393976377126178658986703812955247418460188214137700446207569280706529037618085090178016917914273219547302647743900182899465856781536281831192721128268741102839063262713707983857174350784929695578545588814137315917650592722910436941588571364669942286044635289097809142562661960936047398877044334474811780555432776977109543451543837965945843534962537990828383731000408189665250743710355086049032691875874072888612385224232625138887951366709326361095135109235881108649658366739820183186632825383251798790198513372432117668073652915129443178957949724866046406768204507291790393543248766810047340966266986737701649387343878550713292803990356472305713456657944739867227587362021529005310974698903693587607440061143538002751354172915895435096142128787817342212659457780535640907306405142244321687744384163597181227620585429004709118654122846647665487294667221831642541218734806037672345456860559211822184528151221837633125133153897688701398868832850084738688906861306730806128405281982448054507695474299327315386989748608192649655427315040919852159433695268452047663516907954196014711391364709737802916679517785342592316399280050191668668021515854117759965664427051194534915474404986375462343278964661556136662987374537265496875739075412187222091135188386418817321317172443485713351613459142290942192136761077176967914665028110366281905978176567755145736900096662203026883945243730777886229575920299119279850821158554652610082686527428892860478202894310377724148790287043497076290670634372762947693767399440605116268774603701968073610242166385306009234916576384975531310649333305703022837170377533778303647105949489157643551261123484854876122184594498944591869682681755056406140863717961736885575785436983260677871029548243496180715810284970782369338621639111221458163999319548161020632821703993815673539200961565893642523545594323668812994871998388113095460864736191076295682871912949645131969165463577399821513367065689816968071673780430125898266294003050666949653970797464979087284418045131683186920293731122387247317509018191260173859194338648324187878264254252057972250680865056464858300496912595115414332048587948515519331305081737752925838547043936413079101574844790314480960499208749348643990239996796254766718457998485312169963740017933274133394115608342039800958272720201472601030100580455088752493230757965583734414450626255911009219051258854465421324476338681761000126318493965392052999339914153833256498557067920643997698157177943430897383699096147297040028424990336637316506478580995890348277699476463227852098815465807671987852251375986490612686059826329676761153588922828460579431072331821689308612633399152777699742705206682632042149115415463555382230853252297100862879314032938888560512447644812401287179990646598236846852241517645878535728178596282828975706752807690637489095189776433799792863167025772826269023103789446095262416506281674368323395076438523174061539730098624085729347364881688962438644856950392749570466686093884814513504800892966080794109144477933040323538183298201535612260914661031175934741892094517141394713982665791173696360643871339729887889933736332955776954972373101169299651777153503561745231485490453367190047196269026636101096743147151637182305154785982189028350851637529388769814610629115368062712600685409838626514469216626716835380087642609764001702165799280934888984143213516738391359769850075601669356417075511815203537476178560305022037003412615276179998519021525563048007008746406092387842229206779912471408781551231760409960004087630744915055233062900037274841777260070521436203229346561769141571801541623584400125320235731277923283395298263822898776694025988569353246732197211831988257513311315201669758623240804682779981117931181515950814303019446269968556012333460102479774264596749307866183810177919259592473441962684052377170274258408939054627459075199601845686850854070943605551207954843397077655529068610875898769396124278586231037358607251282282192834326052763633828979939626627585288559489701344332826959809947035847950981525219750062958469916455002932261212855533585047570880600818240209131964647218336048141883252281053447468264996411969666228864005178613454416235657225301959229069376357944130621935224589441196990947630925833449291062947844621141635831825986431572448266493402106846482805200058118033463734362140649573532478300944252088017346277305423422855932791162516883717867175173235582011222561617754885171062454084902023225041760107831910398514674741002800076978965329006531056650351718265752833906864944588487990082175646912989966269420152662885335955524814846035665597095215073264489508368674148447351660652133746562692842517110878750016169576506048051274054414755695575205257859702768972014407982414890681684258541377817143522888493316957949056569284224485138538864445688663562349021000362101067612402429509466687065229145468106733264788816994298358620659502764602838481116063665791021053175650407902022725613497167621867558538679440216283203759189074937853105472888224296435785807118523191905563778847659361834327186914695574358967149063902734431928020874146245391718577492042483767336528984694013367195506288443755325185071598515570453610738775215650659954519929085905108622864835287797194903888650425732738568644675316736509250384047068755581424892094906391343779127993222739415786172924768897176436846702991617879097462506316596825802861582905722183620389615940857411574107278006227070706886695821909864060346860169686980612928770203934298404534279648019528301847495933520578660994874735985838699864181468789976131807077105792621106517010061196484477871082551680260636566332491144497146649519831513763747750858906576940909584481280522690260289776661447514500280991374004331869061017322439402960814045776867644908850415855250201771235238529349317882374119219981446500415752182865893132388954363116000643816065735448412252664835100364973519211819679137886880133950888564199364902780562356071336428516225277373853599800923011502478024402636178437159923445953063765478380410930591671027299504576038617815064357833488100786884072514400657368572568618560301729660837269296312827315007586543564826135085730228681570587923020722156887541690814595543424759622880571697758627255436166311039826317553139049888157634046356169559361442270375062156741515805855341754485592915066134895461651147481663454054229071269528343727735425013438910664958611914930679937227112769892109952534759939613604913458567271954150985156403229190346430264358147354428990287859094227017356601159215324845105204108273006316847752838293077255252259945589465922176412223574607214353354064424159030498251880170366806550223495161095861977454625433926516182304035517997066501201801998325951382773995903898804548997890959249224680789496701588873204162924934617677336418073743726874088145592057774483637969974265237257992527772401926809537912242684401994928034878433250889854779473754857599654226368083234602816362172583242617261124539668937386738395590187267374988184127930770300969523011054484268688439055973246181621516190824530249161180020753052884764277367879418037498208264055251393033315495165904180084513560540836169555972932279354350684804755181343254344733943060393285248703602299025035976937440959217004456795902901165117516923175358752965416014026576005650591313553461742906083534938037241495209425381145561770182102730313979062547130653395275374340861652003371314444823178560334064468407462949361821431627493004993411133184375561244110250742466914215014855457431409074984855928091176876276110976230321788721861572489936071881778187915838671878287363130151582466018813166269814927386940488159438897287447069771034303206641933685340390065482750408881398564130727311238739162433909902497461601522354572701424415065293394531205224467327461810517065197693713512944841629563762885179718561875420731055994869592712155370269185989363195657963295883735273936164671876167832673060359466877369735953949918210830445056049379957825130667665479939058922489106432535823665908790612087028105372227846791366562383276806189546879407658183539635843213547080125293968295126175239065587986271194510236139700304508629300968630182366462361491769162424093525971611750421818543310340353981928947216478526218750604424908978279625928814084757817273861999998507544627582339777513229402985377230013841365091545201992582513885973732596133650426960122135077343631843290993169286304675257109465068933211140745244524784899987862512024696301458116519877461300446310086605741225402708437681019487471436286821547680206520600685604174809462670513362111846661982978211295858017420662727787103864098521795254312483143483662501755052930800634037033424221758047817353329339217506749886137879717380489501717154925895576591578728563007212825078351271252095138194250072313411547397501449501231145877914486086070020830773699344410001668170056253976141990500565208680257856886998979618640238110841290735297066179559475470301325523408600766704214490127685938529575122311052389975364411182818434522219925360365082451942310299704186367920864180225581813950634201083832140616258987606841803742200237067319352045678408087964806017125194209806647286474697715619286348000131647626863041070720593726675701630605557197877685629172564220884894636640369461128704784540501573476057278739686911483908999032942460228370901141786266938520106822768762747779617977927876114793422829252916467636989798528237128448979140672751949051203445219362915576030390818285382414668211311812243212573396723435246837094713839755536239503552127868611427559339296774331021413810717006877851714617592444399317629069528873594571446678056005760332949088732471449563893000707432735007272159952138893280349193830071564660135198865889676846718476197940023752518033127982344647492380051656096517585163827094309199712805728063432076330902622436984513123055355861290382704629479074991593096874182590150297295422791392411836725240911458299377790290021447994443122288441637633191981688515442691881675443405467977728492687687669495898219195915473091217453433390278371457375243353544264106219016742879093286290950437671466350268430064042442175016903024323904461340249345601407129171302247203079393048977251838646197575933310709867813965384902352368489114192396655824468597042647063800574755838156690439293942299535738731644675146558735315867970724052013326479492016867918334091516898183091174367102811852885350806200844804843058451092900954291773188400526068256176201775566809239139776425635214961867050003070011920809066451380338672928173985990998147550521790430360084433650213308394784961491097509639196542839625223593652101823095703108633228162843237057546036944595176146728805484744699887071970981485923925368859120719861895447948736736845201970540360854746990540716117652714428600621240471489040921593843033865732963056486365478609772322253624295776597615232579203507014419282174246767648656792698580615979192911860024239332678501983075201477166835345801281381289261708030401532530828797525294696269332929492228124208034848474713260933427589487667398206714560751510483789455393176576075077948118855021555926318685046171264389606164989991792905889885195584430085447741900973166207864304274840768610573601006501764770826754584533071360850285543282762142266947527265518422419338211538310525936081022250352542989171510005218629207714582481512686250174687587406163566756564660068849564451740954726774322853280755866220912421940168801345828493143695064512805365141996571471565721348366632271226621506131371232255409164412595817947524317280345897769515036588928029860199057491756833662254261709448973989134141797227905595967976399044958872185242756711626446148377780906797251846710068506230763466993415358551437824186880981423429744390464892702213975631131314204442704163625556271229135459132568813395471111488264109074651202601967262531380525776478233367619720306915569730953593053130177985613365720712276538165113591884149154513125437109040843603134762368207317667927932355505655003106379060896953048238685234759222150493987218111776782461111079813679167140849723513807068176964474498745021521774871300002295116715860840325234325480129399884119570602152360559772035594474109463345931998462959928536837153770797286966519574439640913662875572977277453107764180000167795602774437350971927511493497921567198343353057542317119000590037910213909758580288832481768375206842733490028989295151089577816366056273116347582882541751188927131097487241738732883838299105526268674050255423088187212753315498725910994869014572568449201811373956092522617502835501153320947766048563233199680936904944029661827154354158506811524331899327808411856039459830909851484356093370088834763068986728541238809976535103881706861170540606108401823360714676520097984139545150041626479530203458447396772362417520570615533538440549216409250666114090428618862541402461321089125564989104385841429882704324765913551565065270719425188247518915708235177040166931292503874494881727719483434631100567442687592166712040474418568740488346942086908739531724577821910582397894323778406239673123921416084227765161436074985663623345430211897414961215641191241813680736564022308339232621995639776185619626330946779209547573805024297393438656233901508482861008933548696875591567957531341683881474841530280131157702204252847261619702615485323902083277434458899633854918138528184631316670966112395963446246410205468336743311339940590530663152186675614276983021566203919688430908272924970298798678515584398803547820260990160204465275526175358041370732196725521986331134495551757537150735013070862346113156368530058367480856409376037368809672264323519564073735611272904808094805460924538426491666227082322967653970986611482767221556372645378609630974242259717257809347992875286343944270835903866565531240043681310800067706118427368957939715310564331321811178116088551845490955254489985918669322493679108454277809482986377026233922436519685565721557744103848062122696668270887851667789052011441008921214554804927507825049181375684554459000508206431367264950798788898835175454966627182875831702152966870429051639081778160883085752636982832625334176517319973251571162718196975039561460179272531698473318418307277104558192772568138892188608997048503282419434039747297872099217338694863715374617765014915540147245198273871049959318572463228469539236474664520512093172049723213780426504482741331179845830739732954649792481722441062145411027054734379183521944528145928027005955076833519718856882993492924314072877035447610356193305240505341288400355534005345277387938818344219890691187957099574939841123673850233640565964089005400613741650420253523283801440725880680471950762787058582444151234746769145902559345988700002057773003858258187017679758676307713145339790859322832805937961067304864050558624814670749125407020620663854131990015958812304530081798127039660060499233383872916010931090371772824375672272968470056818251728613290375340162465805736936783494204512067445920667713583800893905597333996193323821432620204774259362087115711050254487089365858695218816440655683087971235384750827753352637276692629445886380095896807869693220663328612372628121965939238144218730469407466411567723872313721512963538759189800756726954332265653668727728007033433571206468611083088657978179770512499265292778277797182283525233350647048248581726485286075924765468423572405222260492576060660981465215012198704796495009903758893810806837028692942604853140991892224670872950074829069195501002887787192575371604680712092680667991335851543300335752002473962782899457247223337095153362438627238477413581659401707706518352711401068047508870961292623373694303210421210167078382370234092225907440841107139885051679495874169719819545803286541081082933288304329187390024360361241385944375598624421105635390973896110884483115038474436817063387891250557304759767567451876720404692011225631190108337317285749872883294537367639728094390265427155853389615509263949622693496594606148131856919635531597495871544124196772091991731260874207212036372642763875127921899403646345260286655700777969783561604059929942687086425888151516375380880814435288035312947270983076210427103439042530420491237856639622426202255631458055345038179829444099391127231441603348561523706204321503461100453677618389281361530194760475388933391936793286477324822149597000668164015615878089070077821037791848303774951487155547926479820761040443870034048755743348460147649062336582354415867616861917292585033174013208163325057123947201906750122345306311683297684130753455945754992379233412489644004084045033602869750397970191765744495336041403108580717723702055685943404557879061804064208793693246465412052166597915474508420759005464064294613716248572077228082980565906721757975087243010399377656023816627273627878880263590453726357599728255202091346847616234210766196926009918736077850242963141170056849993137041269799835627178860396073840313870059011296309283495277049672922345781459792899337959388633833848038796781268869242033024460687800638865455957744435536079126422735353316434392501599905662402765774186478964590265147404964296676336228100982246549804894980603227080891182284987038671837731499690950857401742578177624518256763940155408456742584300393752226835970779785617825983807795145737754008526114188037624657152729078052009865542229113207083277789039162998134851941578532899045340035067819362892632707728470269349256923128830686057132329868232563575013858606208477336352058230299773385806087753510278732754406040170858104151677408298520328716083873133288144888245562640724615575053519720729204574635586962214302845923633294741424712654369210721583689388838426657996646863641317099442467870255301965608878257917925742860892162026350276652982942692850019241340035877498588349415734624946245484082324750808235603909054328400625247007390843720687037658897406794707477949774490183135666689448399690047793810975760367370295269725810298121021329966398504506100387849523004158873074991374234595153205485240964837860979317515102988041068431322829086855494202101510613656341887855960074899753369012708902987535334488441541597809074125657049840561491892262945960722438396236827274167546017177680357264298636062115471141191312470617032581252252569610125472799194746844628326299841571389288788468313465634613906240797903792823454993014426436886638315002152488304032525883237381572352807540419955354003926701500061204286852236698457485081392323852190735904664010662193009241033207845292450185551654411730573851446073258759897519942621911216065154667709514737491669240111167711221152780387738139119811782851465592818541209825821053993255299148422171897269395459353673706377913730657914276563332528714644922819113229771272178127261738433678008184557272366523632425924612490961055957608826376978744968290043371999332162774013228971694189767681306951009926050650029865342343762763420542123370012363112596636689530633226010698288001256463151653555406550201601164521440396946641605643506008205499225422764245538436153655163551211982710740284314039020972887642352225847805141755427551309954684539855812781808550471920176930969054026568840837199436281380819904341426451672716020525155493647259194351495240569153979077714745362692448685884306152420191078236514522772463983422087743083672158742322860540409615128287550548352428097895463217889533959563659731661276053459066157362324108456685475909523708628020786761604865494733535306933065825556468443819205638053190213417663533972838101277093891734579950762905259884062477494090648668036440827170236375136303753286616874734438384838890165918913309896896678523251046573898603718848456899077045983365416763253841643724665943735988962721967034768412134564625953913350889351290243856452518147394767371724406383908225574418253072675696599746020675899486611735472060053750929396627892527712461646270007003551756144882707876858912912261489587755722075187489671603772566048599738232540208157727884153748179176811365675457054895344295419078860501864118347610146983102606249008197260093730422671846216299901331155513929348967420741854509828733096025625204712373588419318181237635031992013345717930563082886827985852634832967791411089820038090961010728862526173979821156990200199465584104766864143390244689985579467700417799983492831171872192197765562659091572792467447227257163140306844508395016992711905080499838859135793187426013435358354771386008267518766996829750990529759713892807943967320503494921403944672985619687138584982590606462999353568255818655312147747325645316902774106922767079749370606822223645982605486349105031460682660807135043397395714305217885544675530985795128001574430851706939614407547842924879402649887316634849367374864538281572406165732324451154162837791330076940703519138665266462365017602909958331178982732486057136503048544492538971695810954283241526785809071574120601014238879149224067820669601765371864528736975736528651965247561076256916592175731894797915867982902454102673064923919522789678627331474977040799468204164357290197334069572891574673400933876240761622902131620807250357674359705595604441979532103048488513379657215976179804596812848470234856616324278960027528847452501114816649268486629482703226241398522261155569837512520123465905456851800538474355104853086601778430934346115931248356310215512983003791919202397309910493478525095244039726747706162058962248886045884494541649368800552732863864208202504192200418168287742638559427049929691202793368306176681541928827833162755771385254561813430521786793067705471479959683622392691867802223680719035935345606848728929585937621888403341217560250725393520562053395211045372233509362743116625455850315463376170158412600822817119096875637258869629010716055567746181067331551271159706712309340489047998744371925387348769968926177021261167582249893057760927062868125529184532465787240632642790853372983584924098390385955039031777000476997240216909657253514478276152283465688380686189181317751631158533583545438053295839409926693172143202361960059789792245470820182943205797843959333318370429110728057457698388544028128230954824304297107939768249991626500813578093624829901458415243459124155323101222999992825855315294456414780413723226159434342260647914984539440815684926609738947102688224369986694211505577192176551881589343376318571248822738717983293226820949779850489509526607305317767792717484622739200865855882396991909901195643655861528461366583439235985258562231650828803051575673146944358618928146725131498869826779439739902855328346295466678450802251758591177050021425887149466756473234946357456790721173016319049749168838549779200425346562838171848452765626136487853603255858040349252870659312763097370336236899741961919721828582950766576838280793308433960604280537096847586866038948927870212774952162155842226563961141814362979152555531479575204705326153182530036961211188526119570561264554640706958176229128136293019547923743001439584464096450752674084124658630530386810594792930454677915699631460931284995132730124354747433430941587696158080360171631399297190309711973455392184920199775612552055130877655915564116833466669866424249141360579414001930577413335962891678463785877067035891009468393060084850295437041943580349038155395051206366589085899091031864274543544104030269793454069715860056490656884610983797870869681854829454361258195839980099160574524161715432189081479488168473332676267549764348137763949343716571311460288256565132484051289414801165117419059514412154566786186982120998421480703429189336681747999323340888238086180962712978835801321657815795532445614838087688301258246896607375174031372481220107901641946850332267992494219210907078836291371241781341686695115095768437448646737072903007967871085251723787290510792463882611786510744458732984061108978307483163445503719758651823754944546873750984955238332600713461283247064018530777347536960445138452799731528420557598444692106745049121127399941654978027404654360607610665547573842536928233429679955160431955879229915956910878040142844703615268230112718604788434685715924411751168497654109125936599197535811203878374373134437158660059093808130337700101610277888653776743911897345139072876376883343269579174649335298708561268712680870763054026442483990537241104210117140998836551806590195369291576569153906739889069734052756736139901723293951058248874941584578387577551723407766294056709436970373704460847621947764501409183138255438029410452278479106113649018016540658557127420223757869870682197484917214311376370160664809808835322068137623592740023756821662490132378171273450218870644558640792296473298904902531642634014864253393151756214477097523248594762048845171428107430830009900072942089063386195982441169149633784930368970671251589152767496547097765829115148436940776319338484484203615291618697076708155348542158122180638975314164063368627043281428472934978183811843317291771584261628169135852425850858397985589475196811829331500221271732468330284716584106619795442355653649294466270051780362082445102571649270104128265410571640710233269608769202407405037101272418368825691484949951960990279409888733116086640952320126601705650354164296917692038056974197915958684723159833235494513961706181782042189113126940043830135898535645769914776077761208752878682837847538552456117531604752120403679990938865810312828015423765606565534107396405174738949635784485532399945203158697591549511293621341967469286409113925693134993486077434103570471518996950197966738360238438719966258570879858877952016896152186039583247650586553942670738401882538818936211208159787499100563349172189573273207406387889857399156852006321309787337349074504589362661113381315685993069734874553778055657506001827451284203159776363592691900502806336059284742091811107895053236884340804825622113146238876605224190548788416205241675766511731341102529760751634660878672656085703773781347702336772103312258153573536464866566239787746861928291623663995925348465738107289542731312323004667957563586900602821869678780527621690351075372925233690285586323676998647336549751307042360520586804683551293159788665209840993754408777718903445748160151638623064352986130509550652501703347984855477093061554158464006808286771359442438332000003668155030342251836656232908351329675949819502580099045494669825059264888798748614413624367052087712652159355310189130252659154147840591030205664074897049520633222063616812099611398719419237195772164220144624820875300490558679151014215840694193823232886702381802736696880367650180153217669918772755555171710004183851099286606759453003593686079660695638860443845452467509337687173782389686210176087273708083407966035484578575203089059628931371462746471036958065571649579117844056894481286001530399361885960650460991847716496864667058962632195338385182229837909505933296633367148955653173349551784281117105789458336130364435730101383834158815111977686306972792862964355018381205796192176837292961448410989476403900629623217854035471208910171179535845402623342447008343571473881097733937964080088572703344877157026663610017996046467844185227283315233064409558074288291498056241671881021568044329309341217076048605155942711286170714853169511630264484930049124306983960589165762432820221649712217730334546239327896120201080021609397115436933472142558794842401502439231705201591460456983615578194935766321990547803055612709191375977642049522864416797053337268921749713512501046210097244862927722204868301599815993592428556462507593255773228055447092915646177043155776588673817191317579354405664121814723614994003092161901119054652934494348774508898322050713487557212500974145199476092373696087964517428537730182510922663408419783522111051896523192962493813596297164065694269128139305186308264190582918843733406826164487945260983818939412144526858087391922985408879323752602919271699130512081347241089187212174891089388822911549743035939130808436134364276957852996933677994341718062726932588122303332519135593360053626964160306402803345306338692847347904643816348590256543882188834146601175944749088657074783188747575619006097939513483202127018424309327293912994844289247973594989779977097994081759274756390174926210023437445768563986013707131331544556987003476320148682789110570415545881488670917280100268922979453313879200770110230785523988801462697872163926343884556447688863208650289850999823697791299107263615703150401225296896880379694654884182336936017269983774420814524018972140845114473598057750405755598434468029362351166043243817953014978549806538178116133435321381225009702841460244566071747382581691912040200372635688670302770431000191286419489208143172258691902112563326544508997605500218597894975313438564489280035100904769399395601103443324062087991689584522092242702228081431653717006046801748074919349776227860482218174732988848082084447970567427842386395224788895962880994298258865112940002087457115724703577286202087551792975313453538700041505133983287479352552532505210532424798400849363883322586975928268155868207590341785577581297195438351678132091099627285438245677463370038060818577949286793953084822220110418623461521761762813336878758690521375994387481964583586402758766268621948775104746613534065232139239133534696262321074990924918129357461301662541677999191870442187180544162972982691370647732479932686960968404912689101270688274797113667957984605356138808011410740768441820429401506154413664556499089439230831569575747705398046567159274212107805022791184068156898693396467641481170127092585985737715245224567979846532132810891025693898941401172487905568919760678567075087257388649845156745289384017763338197337309048342562008971875716487336653444181193494691798890417664931821561157572313065562511687311988550734054724049974127445702426058597224725474919371351748642586089518790701866781882606491839601543368916195811399166457306506405285868335828904683548567173313884123783230502369305235522193170236634470040958095469407877285085415351039983767883974847568347429012112747495953438354199127798642193748853380465440367522135823753826025111163345227916150171444523839977706466340681416746455475655453104474644565410040311217726107561275669782416945944202801029131188295893890884042170220940212572735707178743565324941860563989862851088696803324632168376553212359459868934269519193260822271848780397666344273937911589674707345633151484447976217390546715219880015054763363594088924162064493156238387496630095347101269924940099957138199919779090496571102283854636185438074779558694812198800115430336037847344378883777908755693128610034589275413389083540413807621744859867917348745325261673514142697754974202961332773997205154179583028415381472196278215019402845548507586567728927143783778035258587225466247059432737215302746532015198653568225565395284439647487200393632188619620009788504832693906334425406654869789505140360713204076648216786482331122103071526768101300027932363166355819514356292415043664208681596327514849732490400047344706716368658958117420686353724081345289387707131364652070632875298534491682040597599226478300818347750922108705964757697826667057422746221039764298509225418895286715652810549825171764406631297953663619217116433670201859603043728682775488758127893211984264031208060543134754507787551673602532827108664324487562465533215392492735691838270706146514038352309425752734845700819037136268323396908995095765242596026384019548129707356048067650262212254439458692631628522367723053558216499526363873064779340666358591675923280242434908033408563246092398786813287871955061288642418806045699207427794703311243485242129368417855754418998324510241955981883546083134919668500978804874598411729373408351248841397018865245848319801398774026440908835997510332893581683788211821264703234275521689785134607488426984530831635611636678893315202922465527726907508481767788594137798210012753320844512762357887843232810699293367534919470342592573786416929096157128863131291595909413570450670566322649969115944928479859232239678337574896768592169344420639331015419174890744822484579333755641081903609997415518651585316809945749718205790230524124331757627721653954756170730142561007838544519511778276381749936280329723296931999295241493134458623723053341576143646555358539418001486382844514689304207449437681146742598959586377271758679436505990389009351296469516215703766047319764224562029354786273290101907937479656841158980643709872843249974147584809888021469389293986837220754195581631406759571446001562818340207528132261271904222441736275160127432883386413433277852708273995688045258455636216164338337897592009202588102337702485232333533540970567806617046902816363400082899296191891108396844311021303643331976449602241213407444798717088098306067719067219956253040057336921002754854422892613404949927342868997540910777396125895293646074434897077736698476702718008854581979636798168232718670561949425378450306192483396992188158505588904470071602156773033597751538757951665241300478178823521773844021395965004354607455567096247414480062300567517850295482702418756550341660588306963055829952171955135005784168145496883775820941115296292813711766044054307977679632271250896595204110341875383817145521902121553309291536244829214938504529535671596199267701659719764999706128567726315890794975821862595970101689853294837489294599104303217755166570698124489098007958773509108157523549589879134529850615234226644078696798261664712315076875475026716183564505515104007622214567880382718949118661485552107864055379131331906140763893653191555593497830450536659203996253230822972788446462244618018359579294088533481416006313435741879703606868952814187579235060004860500378567972386759190972587519449526750812891421934517517640851273496308271027412833311468160069941990900723570692120807963205873624779247397836111819000122041461348826327753935322676021833494945551772932549492765042672775247396768414213022398281727739704776239206194238718266177179303732992652345815162640773311787998295417858117786725439778513611624248093964163833812339973185154225219997006281255975248235153688277848057828487531629751895288201236024167640061151178681678187583638762545248704064394363181506064279238323992569030543500610048272291560463361020406879755388721965450879508135587582754889935526384935204336450210614095531807589818754642925914943187230871129362407783129426188341590602644953887420715059901014899424161844649115150135842459594365413292970536257984266115906922998051442038354753853592219702406490589317166939266249118732947493443773963544353089598320449444779311284054924895527192365836653976987618698106248931191312418869247227767214414454020404797391847868265189867744560993702918164813924429078696139303659866416847236621145079601824243672164870704724235706219321671151721344092163766222307734668349282424767652795812610966999489649622762411891702370275210705945786043999186694943019360563082803152588766994106839723475911456335805025401813320056172823979460696578868658038931200682810136575906773141718091897530355068746398028565969922866765554158544329209326951707570218122215091524859111952138378520652570449156468951220269286180374862959185957456601722850430804320636685590261899075242323369544570224564746442929252868244667626333777828839900840269141703220223688638745695855087332688863668594338720569901503535316826275879566879891814165123258253017932577276723541064608236738441984865615043331092291753381177568417566273323010776212075347485583078941179316931276523226203459727400758530592696838772516083923486671539528997525424098841681931606420032930754311361390915067965570496521680386347799967619350612662056302433667550894118335550042114886075024275455357235219540550119518113235981979689372384838735697889812714244737311800740151529793328936697997344521460128642274379509942683252231450590101239682818379573567557181950922764331622394147137326026011037500175084170719749809914334693967105520046550030980911292824091962309093437104925006039939999040507109327624866622253062360449952153310565399972850624212661342527313924085549073589965333647680022151339900477466468120726004889296736399166562500979090889016801062540337769272928994030239110603814692722171775471655814124949252175868772444343402664551730145226066442644882442399897265866133807244724064218128784279880697017372695520971378141194404692051939924398928908996343817707372318695455759714758781509245808505723696113574226536349334743286753572094201699376386316770568633784743959197975984630184149680173055107509052635675919810063983023440076443711194447423199636463991555329564199314590574636669632246329739943125075745125985800043575059934467720421822559219739226465249804523986474360215937275264286736195880782654314922815200392972045688349257611509927229253766303923430695174072041562275759498027605427340156938842058859930308953940417810924076543617068972931138623977133414582479408746966370616136829139911167050367326325884294267481323719808111741096830916946591555266495867214198982595587667323634561782903577346420163211125278392413636269239901711527452739268396040768314294983946229596442277041292601601896333465552209406232086423236454613074980552047231167701106912421091432685119295298799484786315959676617987133375454557470515009065908039577347688757236369561571970921338570114764833637711497464388430051438683475313808348764155386317159265824883786641793833059417449094056297237024178225410974854090286929137115949818801692081945380507042194060241667479885661903487976052404800559261457952356165992841586331548870900967730626522493830575017786778314894803169740644667707390306904202436668967829569220224849588722555533559533597846736079841756645927606062974538466921447242577368678010380795993762198781158958048234032621643889519233546915150230967121733181863671001732723258926839669886207863855626378397137203810827839423204268591174991172051488442392853274719383121056821272008466028792440061867947785351332320362540308531029651992661301068339194290144269255871089404099808521856057739611801264661229178015662854818144433247696193448374455745983904101405351538063364493746005326415480355753684102072834004861512302986790393134791801048455746625131533414921988419704595043137116638488309658908988040993223920821568472446722058199293223855054839084694675163558152999555446028353049650430547034690106133231330722658428847255893350982944192556084374637376534195965971770964509229182449473353151388215604217135006393211419670738780931132447332735680898776735913166910883203601243061553912518469947496288886234676613124051872954220519251812446872771682746273464749442928519928205541784506039685930278523498201252940843162326464765137197516432080295298410074874534314430689064579684330215831192755640820605117493968759289052499870188524172978817431969412402145543519089997060908179774177122096733539767290488595088449491307329231600619940468078026101143745256085216664236264033511356240364292383306915009974350259935179174922311474275480713022723227210523998169481857960340587883943926923393154180786259702440168986564529252132640384011729147345575253953686978406099807282087293154281299292789993804223400742620372426823863749912782589975510621790043502981508757295764410828142054006117780031153459470454088422702492640557262974055484573300782521504753487836938687455203693940045211790241335694899508145673201187095791918225154291754946091007879157628284416458003486336918631869632359832737670569687292850654873777937956533091235362844546966388261656490451382042737727550167378183257703027544041130328996597890153637351560570648635047417609393377955279630526543928825175793735544013598226349700102719376644133559989770744997391661347242113748373626823942437439357281651702855437699495663690094902419855625660255194240484752517000102957347437936229250182722298168093964526543303390211053612283133017848193098908357997308877045962380930573112796134510541256617185882851087327885333829672808312859981029752215328212019544897196796768998911817705828259488622870244716793405426678579294061267153379221684986184821302630686083224326487578716153116160344024576834361963983044971010275430428168963144987137371351251438599511168606114135719113355423251315416154235651873804972896154315981535823523150024606205957928995010578051680633473156011306383307115921099250956798791747446949870908676220588952370117590774367072653928563646180101917586218387155286091930639425408653452279484057046423443029779774645572071047493634328285695439152196265790492115043227522566361149406944493890757304519178741421551065203802674533542503264131327551156094229068275867980526071979554857562677047048884765807614430557707803426063081987011171838368751423911104930973037087597593378963950638726544669162040469251756286825007840338879622547004338095908758556873545716628145293164861071812139422467673638184588366391014046151646127267133488920646490217657356443452933697470825668809091180696313075393588125522894063044516455154075853859952537871616491711108277606156198943753372762014300862574001908544374576683098580140649245043366711754338745571813682269461635701047100926250692605387121413756503880476534845455078299382199397125335635715651632159067407734814307208386976862710753882372049058444944032228475874970919409269325824110199504628334962660974814560483606500591483250394305005792589403823282929925531431620395935065505231682961430139495894523512891253272105628633927190856290730022261077906225469796882436449401907709843650514891608263948085590076030672163429392837014303900994159445481268852252354483093765743420278432102752532497113049922255732154994377666223552285826848752667366987301056074871183046137087564573152871635254429646597062904616204110838291840623362603578143408746078755973444628409514478927509604402488247064872026117304520539290534727820762941229529542932023239903623887579935700538395326909002464057536300949953528264132346550117465928689121771285301937633653076518698661125653056275243383632086253033082097559666874594264148797919910267569480748182035625319779020111135986057708128194487238258129894091676064460213316073971875148966228130069194914177728217980352137678291058539556553217688380395829953483489076569507084719108933247779580692579916521683359683143137038546184522962881775364495735379409151599726953275534921630831478799656124139092573938685983371231613854913410224520284592325021239955418005539287473104765186522701981171156571565801209273950253864109436617058986547033577071161857813760715922765602696058020887211749796030334202105266613588068551740511014364250328487884156231033497341258303995710527298666621695900242078223588313695540442390141592154656732956417681490131072484697525210175798331391199888681872792619984679466241662886120422089754775893750711057850034627398378242486162663087507830530726997129300107425826727054045558155720232971518085342843489315329098039006448871810863129540815715013373605255909768901770810531736790091052590481642834121342408437349526666242232103448453994925062935136261018569985697982075054121770631521418316334729625657015159487389916911796471888863236488956045972049425405384728232033822380129762691999769996424785673936327140365227133129122954161606804719114929038100796493511695896681254862774603384371163345819189822556395428406585523863195506337686043886164875429904543696927169975744954284874713914937833744430910570895279145141302296260428746204201092749755041380306591124184642612087390222783383471974751780791258309440417673363556052050804179977378807299099384284091470254773023419761733644988828556277956765247474024480618002077680411588392166452250057720780048750093326598304917812550272784832666940688574329404133841551845897757518753045665269222833571106835318836514013187023170093443343431233236962028913350131739633202136076962740755101712084502370930115643574143991896247750160554901619410099144380900395632835438533929453578432471182132159838266865025297261645764941432891027517758594900664619886307170077579430070593130140913056770754524655004628879400677470637744814167841974820724464437016007218694303238583293725878133620758965137424666714951203480667464948823534197305240371666728327578810097618461765326059798129893802470703292648852711075048171512524068087378535202367932675373216528262268462251262864459779098014418890274441146234328817450790666107334087042464478638260329911334003447489104594932410729211252965418362449263820959101688515188570893124426879360191480587410540988034123036311319497789205926362187384563406104449404749352999441429377988499138985763139275260221614592358511733935861138297961086827415404891372820885070005640263523334697177693259999172188339583044480253249848269895326822171327195219563568427753560469086908161058532897167991397071776811578587015535524594577573832853483016405743403625459871752302111986407323098357113964982567208748077898018048389294381343585439533793239475356550861352128198692524765936243873096539554611803111984664275806178446513598309008484501561400667430535501660277985894081543363948955457231277522637729219410814548326633882552818601899010539586519072223384509488863958771707457070842419670600353535980274117469727612936752542832359113206454080853240301744089086172035537067195111106617250529409831406720815532595753527174794697281517826372394974094337897404513553378528426470129754557676895518768363955890132960009547035781616262251118970189288372912693411986025384371300624305705820047080440787298229388202602633525464823716261610098493097778053280126692943188779046779169129097458377550311611479080581667522827636290728748056643473554006021315003399460740621444285780619361962231631452805961738217380014136519298619265892490432832911693918060118855423926198368132106800176290952269953878083501545527684685542265275433215330217019169043202635977411336767867329340650292747212181022791978160852048380276218134364433088011187599650898756114359629503070023548754000802593310340981409061765235217014700219164865259605401290804522223444708667001480905111305948188419165441353897840494930578473964897915954387626924540621882717456739920300092453636241520193426555921966161865825438223834683845623519323735525524870041108083960054361655700257990574590388239270248897968271595736590295037462435786176914018094802866020033748109879121796715457035694142653527189972043886109665238123693047951060828365082869707229381907041633493738681449060465411162324410120548651415718245075437844901402590578693680549786664007849062796448358562746272685833181657577014000250074243051304907000806220539313236451840547552724377501691559931291953429625054184928039350595297120543096054668441057881838061353783838900539611810984267618066704209142547197668220962419289924268180445258280508813635862837707691144643273893972909544957715694925948076952414864289569516581442652995114593595348935643185182671543353335189167937939112189834471648715306857202089869007635080565542807797352093111404122718858054525016422869671464794068499272405049438764243961032587624097919137095798137775690252380693274072587311485603654870382239213449529382267381085887902363555005608139226266194750691120579819628842123758722233799392866959464198721893178149484760209603630928260844739341813122544579077588341549330534772135922809946134950030708680253316020369567751358794076115399502556860358245357973237426849179999791034898123978271349340402684445488072731665052916179813202497071582464709525269088693986971997115557479746543171955095103466301824674218894931534549931837746149360900122675069113632428617830834891460743262273058326548042546091584653088415854887214384482738105776176356885675407233696743998656104507570734794126981207975274020939248546010327822923639005600861622909311754488463538406765619843731227094742812004769500883183652908070300882808830578093307442661801998903964292072293247936678163820122334889421956092292395063683122862964821632982324518649481527869904796429127700378914076527479172184679218191384988081840694441282414183532081282741475389778134608319857795423892340519518831906564318213731184856501126269563636808330450033113151351254157744833637353476105606576648374273683832823798051865823881287110965981232678433037366765413583693564405173782524346856694238189801017786498945841389001795934735074374743851129528888153124804263443816788017501450611588869482191272003761404901502529931197817061657936110803893411606367144861573595759648432222620758582344393349951855596968990955097768530429633405621626617923968606819755283259641564796253819645641627607629843371141149840978237509975865835168741283495354784090230446708742923216270595478358032068066571501067087693379868574596981363047365288666251335717358814540084008651957031552040879182576788694622107044416296296162565018694749811396760934916496140600800424742039238260164254764064914275020209001046511657325689215975568118017502065793355491521881031298864036947176046793313198023865212926173337918643158524956648126469746738698092874854786206467958089067430715633161668432267725903856019275946839924639620316753895262538115934281361840624765288103008918705930513279422675954939803386505931221190896532158596573806873295908232484296508010191273627736378343857741916251964748990338790263273528906839935005779126829227780936899448556301047872331035823452317438355964698007458700153836666996404772252601015375573856004399277489738495987159919068227474547101021547246848361020643194065825493194656131446598678455117746859888736284495014684646907994746106389022327667210981278990043382630707071227027930343225141020235922099374466696252016789078015958122527743093995420150885627752641210709686056653152651129114812954806525272223163072836631463814430945962281376473952494337734967423722326542820427325126101290508029318092602162369863650327919225700795077889800842095686028224680470939660792076398555831435786965867928835371261641862259408587333176344812673157570898474449530457290310252365283869096772491006832879627858012623632265561473834039450736619812816421598794282707811566496674758591506088785840153010854214266831780784650866463644236420663098764500732873284520055552626326872393409285563086328026464428084834192129801292421934956314832402435883034982810969286094334849839922011393592046275004746332751406605277673790828858733342339102076097755949275553189460524738229742129956955674787451053067629794446340782250635345322221159926474466186331117188809501249618943911514651000322572222396910851435779333759200477151152349750744574843156097375440662746907950131643430482792552805261254552334685342734056197813825954974438699832043734898351715861428173181123305114125692318020759892402802994332924635052671828965679071673413156975663826754886625875856725192696103103213104676997420048415011262709798612640395675508236046740325808134525968981102060278902519885812184941038441985931838513146049767189021869763476249167253414733775696087120415526388044941043331642505309056743929397204213481376665515820107192512912556574333991392725624369147855242005922940692149634025590528701481741096765061382479902586442361564800048374822746296984568845277575539640714824362501068339327493835852831443732230952933450689747855898203971547639138543205305897621226065132976649431754964536448263604119112991395271041342456329192924413012312163798420583452623845962181043967104430326205405772404275464361951939073345784070366146571056722608756022651842605075008212742438712219027970186824204017003976617889475276146873445545706701867461355897040380703088385904206415876481810929836908010456108482969175648727039299023479378591463213494957920278166258850529255249121223404657273383537790753123244215425223727398566716371174083916412879844557770468710138246340830126850457023419784648373333057213800458948298931426030399132765898749063495626590656457863306443137591592369229056802638909638557452906207315727719425546317055183311504016110690531250375157780484940271860707020753157409478708262240731640529919693486110951260792962422213517090711734278866377084711278904024109175569494974303002569645017627028259754588398664128762562555829839156167023853889134986084508676825439226478197590008943799726644199846784673335315018397460849446773601024932666166866984719693588709458160319048438210612481314942779930076452016835031274125844623397946578546937755903210417379447738283843406389963579121480534571244223999688063018464190563915870831040376820781274853159376260883795652313196408803415529747748746685115691664985398505497305807925150058330381780330301090888481540784520787864026570306653964017641154675163077061380248137722918664746786605818373909210572229951573385674583999257133256153465544164109647718429368256779063726551932833706091796209401303661852573170680058607889918035227497871712098779599547524837611415779113510849833230835168476414531286246440986236189080076566565672655247138804192083058837179882956627776911046917715032877737475494937144874853771702373527455254538930415887860149540179179372002331852694532157950283586389639986154771889077104102220008480559840661498993413494659196892594323632986345559483377384537030020499116302399575559269207724529369064973829209800927289798916391525325512796774778745757499021101759604942948711668124000185459198462500837417289979916694284386780236574976752823536822203286384047892216786112583989609071551096191468958210153502279265301841055984049819239149782445315357326601420558477171685283345376732603442470994241745812033541872776569894371555962576600093544187718303223552948929521913154414323033598323937467771750545390579039866329313062433086333058506272436835073146905980214604928335262175054015471177940125554061560890605103489047437501952006789802465560171026392320881051200495274614640342001575501873666297606353681409058714747050073867242198945735105649560247181895320078324584843335519913576559822656503391300137229760313598478986417436157510013975684254144273199791947747597894642994431076576832980846812579391698193686703428198797558872512653324023306836749322028000678766129498096049817025798706704979226923868171395764309095246741707286721474792962765741512566492464753724684104433342401762440466533962454117776670014805741682896504367569458895035746634743949907716639506325758072253391853666950172653491678444635035714314504993102012605396890633782864323410562484082013149249817015365132768155125916552216404435229946322882620706931151612965100203956342415111378878705376504021285264277889784703750405778519533355177492253067898166058468945505029905245819263586608704350379312048687381566970621693721964125597202119788693356585975057616325816169338473282632513303040235309735729887735757320331387103552782227594315112850628761821589378599666260407231076548539486078164372566810766544007898280653683031230054509663322449660076755744636179290416230782274721965197977394361503873237585262824676429518669933434812944741585733979381834154976764237177794939631258150680396982778107226726259912666967271582403689021788295858075535172676501407287531509502451276938011928800010602642742278123438125719758453494006379558834877509697985259795509062254892899643747066923139560770793068571549756431389800412024085513333706163760303625326627816093605010871123516409346805724442518657964084724706639081415214481196151934958155348691880592552215651661138703942881181165518153367209819615514121351953850439843555266362953600154534123182376669651943025925025666380294742554682339842020038066767047516751285031305096035644071127280991131111691897027537506904184426094112833621276459138316258049171041237134788457579134136000454016685667890832858061504755334247512358918461691112307416750906452740326335598447464494355849178768651580089210402576650858592144917895714863738484161897599474153481560872876840632129053698422392324660685267150180495886283008643610795798718522467440621924611746608695000742944529003407968030303473208100484262361098097874720135406819615863536765837347586201991775199663461585877947937818080922656674800353911464726171982936432906065655880064461027921010615251323462929617126722781087934230979033768636593024228075960363729619123230922215062148661256789408609945483369435253782451022973856535183320475691076354685787787780614641983261833507152433162436484600431754076995592596730731048854657166117570259874064486332411010709642542920828038377313679529138833358325054702218354878066826723981268739994451299636874650633617331977104084934413816718871063968248421426277632083272335418576621442593045253623201601046910371795248450373798849139631719083852254118509764136568802054707261600203105380377844817939339870936070293821902133227879002746948594707911157175847959553327615396962084157977772130078038100679525341092183029340540603325552566976129876728115908465475222660147127096881868245194772988541754014003654384034063500781294822377983344077988697408033183722134950422244071372896801431321951408287701928227669546851649785543582875128622863111573956809316816962268188623838943738732961570083590473920114790342436880879970634312763585853430083339052387975368100481150338778605988062800797766588249980970943181204852527389187376905950203125625941995537345930334178059975880412346554087931580404291751854151928915295990470980160574439899158616660019067722728710272346824431388885523581704664161423760098648462518306251738294298785279155294922696780426755624524032666290556422843669368171909365080218794600597300548825384251032181364839491757941235066748158625222789879557765422574622661588765338557327917411202242731335031406556556179787180001427107538810055729894457023405864875946326535751354468494338700755857689922928526138822135392628622526526192437559414510325865659840670272389933884369888617573257974550279189628476225441264943585885466266700394676931595262308960168027919988411852419172372197249068789772613618669158127206940306954936032099885674348432053472804757728274656784264331365283269301549648126045922409973286486569863530821897293854646591521117441224444821988396517414429599517259462236372952461137775331986708324386149773030594567678623488318164221175356485197130534966331070689849547751861903341039863127721274206954380691964382055623933925749380348984511942372514836459166364879532844231103640900335633738497733305637481835367093865592940752313390346095459363395685457160498460067581165348497580024217813536869636812652338341207216980942417955231057163541088506056461297844040498791544212246398887547830027828519957150686969385798254609424443163357924330915320060618791930330296522031275983487927927446141174433467938999311113642468438500886635855212315607365489016418714268904580660372628731901341014789648130165878970609131679019134888170364586256687286082775236930784460177327306832771040649372109882803449752423283610049953933127315242572035533866839531139367505329455607346536451471439310739791863718972519668840067621741903795666526245444700453690601710512537344016424041433352290542242028998415092454106679947251461790625483111071396140164460694870948248641586148747083878105627830503536151102949030445670509098210504746488428945494348063707169665191713405237795804367335145889239324928322542518094134607870904762743755604841699212447298495790909108866308395740312637819013775701699291741335913302826514738523790504990477702240209596699915935839991848643641164510446981381665901729042910536835533130768073271308653582563432507335118545117783836344109669892234709892153118629711698202713955634118770278170060429435762690515027609176050546781778118628601618436221580703603639907916908708041861447094636692779656786085121005405311428348882522108569326411088914201218568290228908973282743112765737143639740953389133708829586898499588411745066456535869438380711032750054158804247404454532880478375370306730347575563830568821654577289095017855123093341270193384092139512923816489940808158607453179602834278157068065201679619378981909290085807066175886343783355971613926209186621719602630116957400841516370195424425249910345811392519911908108576363582689021621148817882358389632107103006358438174549737495873470979964505674400748450590785967971899914881619546102459814889662553124569114754275446814392642275482517889282018545134749074704990951200364136952027862872068579226201949021331168144869153088933416061033234005221741093489326904739346856051245657750120046015838062697309132761792879701834262645852829397980668065531107697473180876481635848185800633880431798311080223493839015516127569176503139958252170279507138967369931286248593275185797489498900430737460892686598000947796732565785546511321182872653991355696516840429767218658688176559249965649051825605793316260393387650170341567635147904868554336297192038899657802389109865217933207151766256387441531857772061766844095644455230935443417028982536026434376847037089910893256273115715364769673318984041636588894261694238131539654355053144143807505284147379361102508677635903503044122833085175217510970647222164725608345933697973143931340106577054511184461284023182833249135897767307678934958556718443056869557463849561402757377335065614690604595775248836447834021382725596566366262435102244853171512603213902271438850933452525426352278917797983798183880406686392618153031754909708272501571518538638857650940618303251946738720849127043888093643577706767041192403057202607913611044316529460058014167653281782179712260261770187793132091672473889063613913725121171974895801414750363388181494043252479827834625876037768588911019617955496403187962653190560608288521482611459652113556119059818801509149991529383858832127324372016197075881642493493401986367292258359218007762368276360302651901252538387388810950372889206471483265506731384711730684937442708046567544484624838945802469324843849970639837474956682973293338131610651992336328052014590553304747011780440942465689895853732265277006035651179357127260735840106570167969570354485689092218407374615262317596376555559411252061392195614432860348400785207387586030723659057735541429509174217591089985260816011525221427198927499977161635034659958628892512752188173210030201789483620139130768633393184551791912191634331835958579918806983535044714556950868620630171604699850191805350424232522946551750390759709682527622620421011558513515121339823224069925891737194168185399714554539227532197414905798999885789215313307162000842659834627608820385178615741323670194107098823698687114251817049213458298193534816392514060743944531244925793370916628526037047915767434603596632185538509619210040240436149820136065969005304059940505354152352668297731903974175226104732727302830200240818363487898295488186499072218938370406238132696869235977240957997645004981942505766999898457958384211141184977440077684440391459620731219569325556112270098259914906305997519053388315237303122396076851161890140619910536905978268261138190832890246026629523879708285326707583955031543384375084577120694504698477492231514183453737568421226780591837531653134332280526459718840591737583513188216691530005159731860938882527144134992899870178784839578551853463976588940469416941419492160794546855073150986720909887051975142933710128372165864930545893262268706645382867071513149573676240547602272700529126790522592358439037148455529371882658087413251268477426709919742443846993238688714453285785656410358562422507452752442234523933832876250473381618250927688301769127941351857150471326324284248912744693609049566664097386185112526554183378744760855413159818758015903427010682308496025708453627236019516522008613192905175670428868158632539868400434079744413334031624758845856758105688744985295328592406597577757762309089762824551037874255539056615298654958216960644990905257096235158830805806422187777245480308120283965781565480810867978902269465264627938054167863794689850599380922967444738202181954688320370870934125416177844936356235284036668900234648104685776705919367579822968313516441895425180244925749759598976573367055330840409763874574953652306904085727348228612300369198954529969604679177236522663208212716250937022088058571074708529750615671944240223951434356054930001714561365439579517642526277409652418348342573645695482770620320158435083282264334869867551825002953326549433484799224492735784533199262865867415834786335046431584715487052188304764154120493457528517681470818955808616361177890376254467436389754415065460077158036506554003013107987007088117525918630908284765613403221280866536557324107453703636515750345992319966036787440513855353891804906672173857988996705460141564840014134023903603784473764413820660174739594406174646895193614387495589047710945940534972093031268610842754110298431879599714595824436221635360672511830949017374920306118168104750401037512472826734972425483841960410115974825319061415014796745373545429140958604907455241777013673899901750532493778868281353884760269345572270902498575942047415157841803548256949254821350606160844371199410121352032692371139563159068049735624599248078984886324759494884112619599632129765120709250069063740043087898192587637750747804076825496333195165688743181290402145656737620203893562746481114671275098394795643644592449524615495674711848504361458194886117210302081845649190615131609539018381583461853113866209388903845269245940841058808979165956450354552836252622038183885463350057511825036242294613342077216242330089261357868480760373735731938418907308804815459956789891563566295643217261052567945496990471996630532367624973840891282635860592407495015647485984321470574031459308569692586889150708769747665647565572206732816719826534387179166490232156549973589668730034860733591251662596304141729291842103383962298194114988354226690133599613601440291041424368483520037970226115716672352979273391870629995655923174176203773281538529112189306253110891277492753722193447949875276474293624645661969959563976813088304623871622956504324331585303755661075732662601193807131149799675629163124788254674167329735235392391043292714985737314178297876619558255561942892108318344252875311920116178257958577957556676265427225557809673699260611354422134365999726996042871118000070255803241377414445855551394638394963875601876239272227530959524884921730621996958875439513340515758287459177669060916292314063498790474596331727850875932731444813732502961643345008999083004406771667217639702857983766295445923963374924297765082972783744397132563880825278321084766554598385354191555960629946283037816579049157441285918870113725793248870224882301288448851781214156130749081584055852707920697166422364987888503060909018567406016777377701468813511989194204824440050282841796314164446528916054144968554959008387520831942001502488391194116994050057758016767529758661780910263611111323615548279346296697047848201896403114910359709041453441010581604790732327236772995500152941034037258753799674886501852456047823903507919868002877186065279476201901985064960534968390065919635244538387885397120996314443579523809619551636554642339543797135825502785207456578732516227365512474429125038459841049042285957634462936658001454318109770229110763668348135058267147434328589844945572006809484567910335113713390284076859933141010485732149004279925057690647313568747709127572775644964090841244198315330677108775070483367687176146908342970000315659921591408837602647022387317509598232168443854514622071218547051270740215092114438420257363265385619807077437884673289644868346060847003241355765091693366931389479150407299803296441883365746518173288807061963216517283770040672370924353531499362347168443307093348781276172326028038082852175805109962019684339248680471906181157866354817514179733659347867513719183048678118898410786216980774699271000209566159045280115281911405313223987747805822118726538401171864595543348711834465627683889916024347562682755405679667606438957129647732360606940049853337843636174112703841863007139709933705972409689230866562871537793364441873904633284096664086515744091016128670216440003827945594077056968188184855282855389199443271009796005123948901047992299106146977001206811154952203866946232320832726912174266883243466287773952712107206960312821053054679497179479047446965152143818335375936512170442197889933142215578883001981165103519487268437086073112316770342541076931658162913800011333022199998647192264665572470071461466538347481265721375918868633545124171641558621503256673434905036552429952845461883164227305024597940610100405531825064086655195835681785727042111659587989586829361104494468877024756675701447404367712557418791214374181492796139892679096001785939222182276230834557064695044608560605124892567482884596199724700876485862812381892815025206098539891512437544833708800073792577646172784098626051964107036559136320992459509612753200552532591312385549917068679213888480173625392287209316127595106374848343985618204971304716856977052389760469828019873198398140536964274370484938570730934302663328853218260584546841091030482506930800626519790098472594858775631509115450061177433076723098935690635333846522378532689810911097924295172378846877808964488067966057972767170727851601330452881755316394367463700430291084924178794794197192212019275084122522915147741363851866287978087332528601046102387618191892050105363378133510922496816795247030076557463882432968589805367113964238406783752045815704201667872199174673980791223314129458931382682382436162368153376389982480578823597021217384945218890899317093424201216098722416253439976488217600297225867222178159187593723891793803336723817391514454241798588302445659898820309978859802273196734015178081359682070365147466702031766990786794900231099580605329510490357821688221862513328873818201981008647875938467682136828817102130336765714039973653678793732658554298674356440797275461373116480652214040995182695218054259128456066766944118700461331570137891287077874473824551905668417169024557128225423901379544281665081077472555520488204685739010329780706435453240206802505368563812670166109739474972307006709656589597402597402432040979963496146088614302517589940077242875667722591525578913915316697423822251609019550573514565699291590128505220462120781984543091138314991620633736526407909633041078583768599943399312878121518970269410256806650532659822499985404937628881765061397652038547246142991884690786130957673536089786337159359051488215594494804471040601130596009289195461514660576974006754503518316466022600969143153371008749919638538394322666097251864113261622837242764226864072933564210232531371540483498920388243592480423889375545606710198149759016726631712885773741687206026560646036392475408700518452472842577382553997662270423274916011430570519451193775159721734145596382827236355222048388920520666485951246039226469464071614772139404615254846874734999207367591732821470130842928184227359959793270337644288037327296803871384161847879658020192549850217001040562826343175021185125866857447094429537198586276480087890870418348929942727457007818014049214012057125442580148286669404699253167399428910995819968926193467252458072733148373895406503376651658758689533430815834768525227282280870156757478526497384039683954445867751563009718169689409879074988382462243549678365464629892017690549687352573544425162306129509287189669755357023228630585222973404847087878987474347472154279790032858649992941765652548847152590869531664093328410168824545130406054052533310020215264979188211304851536936213235085654750774163339253569627895690596233769640306692420205407719312982197478432441771163731976416941690538638105502896872813166646741248547335018083209474700103821151134396689612086112693878537899784929311417166327368460693702157574259368066172367774996608182784825949613593760700496171664272257365388847893595094018634410296665322110554290630706613909313874298970917597413918446233559825575163756442479001801360124135037569313945950206843859036113710783041353244284694848854711542751731047768303845614905369234659317423136958693048665244609653281503364874393178509548274921041250308071245414064166452749360006563478954109592452086980030454461549688026193499913176514416027048869904977225680794237984154250405536034332965684661556096195690200114873387926514949820041931976017032317669244053319239682532258950187393006047531940038314988278766269767118831936401293273867991043811615963830165684286954645574504511057214121008966630770682359132905412755470512833145675660846453532351088584044441071027096008386656920430380555162657686557161919971700531383049005048411745438459370932511849999985207906962056896702248230764949177739750074130780136314964149347510092713471860830552462040999307999576645527419771560506206808947678238222743975832943719728622845748904868112823714431977606736195452093651716530313474443477652730505067601345137364945122916246483027721328237665124775077907277228301738594862840529630721886743592072526450174336550478348469131202312290894488599053945645428881082876038850258635046618606327056558502396754047888745282005567166300685840899703580791111884072448695551014422062508525262716221677097576243058549730112051642484650154553894684311819978822835960177591899413913607742268372768505109989983795226225439138110177609385720153825252948137406037061741821024502305241916048553833103921094401349077969027427196099969763696715072701786093039859054899839084659501053798444936943196683555285087819736213502560393825472049783330223740886814431290277601794716773466533831895870606730516315295327426028492195589447899036349229317920846150238756448713097257304905341797508571896456879150189965619384136125958288111824699892643126290641211390492386852055744765259640189251524032355464294757590384091379987896755726779182509031554369312919959448467381798031700193475322459316987824254132550078296839906030765416699893691342473104612353431649508644932885667221148882637837108104983455243934091929290210266138760605131068551287376720065379076834774911859479546589851337846398978637918094902693252256134149335414198127759865162117444554048894713401460230229017128149875942790542474046725956063488263503869751815685804371225991865769174941658026520012488411447530596138739084993763397443918802775526570846696353425891806241817100887794365272181374959336084823434013772270980215479367082208234867241384269593818707641889298032763947767449586847437911519756747577302295551300094393573887918303574463084619420331746149323535597634413963099018083742720668614040502840747011161363876884164843835165177556183939198002639747904089413082894911789092388908019941670170811169690796280577256088100114734397271306377119111048041385101097770540123418612819898282497517005965549413459097145498287964323342919417312308646351167360720447821835211043544154319149089127736324012100685361094496048884147605242963206499407432711764258383006726080088569916240775611084098018534339045999602126629619082335663116811432648922111424364610239826102472187503988796695758882020541006891045798857141388383291618438326122741261785691432021739010633808933600452201269084593794545596207677080536236735225101133576049822853084300874059626662546440471588682676817142313655825176262730010599014684059131919479891582497635279788386409385280912047086621017594161986316137719338239201620708176212746942211279194159003948180696271997375994111277594912713214280470633377367123639594135763161989099336990496870413288839175119904964511497330212989348694382632284680692385898933046920388905483023780064014562766227670644523590632204655484871385823146523875275811827777375681752555896313124697933765578354039030589355622796946744954935821760982358751838937245805009531698455043934652578554897601954178486559653114489719308851767506270212996017041338760840893681678845565390250363598421353166717784578571994062889307925688564752836344300598846970853100091194753383402960589942695204158490605916251519099193401546451262950268742158629184969377668669787752716219373960400212572542715453546771267917211299355401521604717731444096907621228352358503350320625122648351440281735958157225808427407702273467613776652246487330925674430558120859168543753784430616504321823609929069581367093378022811461470699705274436345359959608622442623774252678107819494560946861477024813866822781032104026876656139893806145942254359499665253118289123882854415312647446473165757217622179717442778753009104496885710735354060712123596301961813791488108253580546927785624331448001385830575761217985126395714247395586911899668341384924890522635238173154898137790020856809798581922085591909753995955585481624493213290024711762962690630877068451936630099502065877867625784477068608168524728318992385971863678953563042235836646677036398006242570515083659286575226928941031078483850905831903258083232774913797327058723011013306770458096222873767052962222738928440940894947971845614666085150746714294672167018091459666395798240603729800636564430377269131073876451124657289978853245676997303820055327111226601902637251344535715271101330953168370899545927563288268505758709069777429016421674000745503325819742933197064200804225064397397983941639614893311518494774593408085051504745741888929474990977677522146725404046153005427943030610864624326227833245352265557974853227535220583076920222469278966923797296088788770340317498422757663729504935580128143002684807527996468197054292546103467776588265329203334847873479187523661341853450126158210577902685908213744361237731096190966601563519283958721041767471242830991286226992575736163981779112334061657472232502259268268882772915453517664846377828261925755248161698588108824031151386473551709306035948499462502224628386342075397365729031227696104206208742071664637582814924692871736211861712450030920848722280111886770513276842852166256059270604025810417572702024466819123678835319828055564471874812335670287646217902141690124057756684216651812282132826410169438374093304647207378222392511454351476067860899074184376836955521578054791109371033294102336800815361359353146451949642332700320122659934773833133992410634249919477196775375742727093586866650559218844582801793162058927949117529077294661158894090372772051353805597633645862307564515190867514361623686838081608756705761454701592045565757179071593804543056367218305917302832937267684137291013750264247474057634664677720378384062199517407105630153405748122210013034870189849064596920321293062335880798894306416807278576887926722763746055698794103346777936392234887871033624959391186345051939087638661893701969354401083451713071701181746029882003214537102600533479446357001423495202875091228862286420011879312524357955405520456206026200501609154112057579751727300915290523711481618082106714715124949326660218429402299012518515486008934066945961314613098679861207440651636605842218824296999668889969912179886718815939901408037956276343524327765109806040407007929739650149286353795980885961266099169352624715885630828159119933100104928861634768804307102823475611185323535994217469894068675243731919739830240660910119426387749280339718451806435868917124843108252611060644237137938567194212284171695913120908644610777452782033123079118500650228549220601905169983949016061359064964037581482765381402446395190211307286752639883921138138620503253782386778468087018152916565933119423482404105033273415410605460895479998831285900279637772550273819520038150908607778915870737905070433448812326129100936222499658360863192678748437795608817532765442546903032413383806844498569392887349220484162897006887184370582271513728822874860416229906807955026559729917198109316461726132297645221992619804512014171564926638721340194614684487486649328213396756961033129089738235284216875850077593204114620864844057949302861887778420804159660851147414951018453909615441346887410449458628860959460460184384863474606471860024436869615340431077869261568237148482695163273852232114451976057316112352568861327105570738246958617156133918154156388176303445425750341890539575676538356090592590509287982146075733786518325005503258520349267976889259198361020595903625219164729463158026488429905642244515382342514496947350950554189219861784152067631593560861723760207553280510591192276424441598306323190646538861637282777580449746640370656102099327645424391342484710001260945802976083867349831631108422407347423691800864349447882416454607813925099789457632307229509675594533125477445620475463466242066084401018156083940678247559071547757455658542165881532093797622889057210968589232670981921991126513446323580304811560312854126646238351773933522114226688610291219697899050953468444459578773320908909438105600523325627025436898631424194633131781728495171708625011355733790214201023802720203811755824573552516924939544466561848727884852609674059160135358822640608765299117425607399875426217961622126128118767779414634643936371338190148583927767824813798606966651253181946850280530447472793612092154177190770836531616046518181696011721741347419088763399555019317389092792290465235691710730778383339831627371692117909818005031811091464181370908127246298069861252599161363010539483429153120715751011063970450960335867581480278400428714146831881371250260065161563819330733234830386863399641852385268213390637949362643722822656572538644502751783560680081634659830883425149860761164851140139158692658775092456132693782315306667391868696165579937549114434826733646009044578264485817658615115877335011198894954170363633873496049530668583294376591411649348910645478716944347652594576134419955534717690130118570977276870994217460538336472102511849410279186737821543732317139170044655779191932188525727880095013306406694724527678919373260571919603503419539714696377657221123905901559650616601598956929313311533146191770159922329682611346802650386164703090259174656584076333870602732769942045993086580795377942327413871029783917518926912355426973969168305254271551068686156271077230100797438483128024224324988907293405456101852014078389028347434185436836157286985138776528643897917343513385495089154138663791198999217622471298878543622159176298518726399857850920061364813632520363377572092745249779304531559598058491939708302077525990380607278320988475621684164578818623993556561621332925610293807696464639496327538534609171442921233034389844524205377359520149130575821088528831280564993015175926517890488729124831910752766903693331800902876036874683189004570889329309284238120192001719724046352474441153388339438592194027568489675271945165789342891694672844276927750639536907108665341956379975516035718816442997952671004264109303708930825538594081155598086469210240155982898601630590328233580266744382974814146731283961114302666486528596807923298882475634194420554770027601596684493449785439316439039813407300044797255396897161902547764587792377562513870427492606424909878891862591491263109049157685974545780519913006432561664836956318105325613650171024679709273578229006536586798803023520610249588506632419819874200280830488377423379315592507224744457523458141140093818594841258402765961651615526609890892419210519842525719432848598751335681545109045624224956557043140041194933772597972450345423242259455382580267225117853358419335306745660198390462134225220999422120617835528978873034204439513197345099048404789490255712622301144057074484056138516805768242969322873896922590382659694527687222215512280291814454726938333591239890136878149635352068448988906872440688832011963525708039068179895929031230257624546905710793722422100958731814178317402866706586510594541360916312874199403424399495949255269979740092146311220640922553185080157064474372960366655614076788147060933677120123396866711233092387898618817659141698785803736716299593734092526051675492891948327309299927331094839542080247133664961481983854415623816053225424573062462133569593680537585867601969667492915632099542209503862111592895320268407210146461711968037134549177829223309970687558798755503961254454184479619539251920142032053389910228433670962228724179290643758561974140820884281721350668324719218140439634060560873494895484923346390074990966465306303616528480594808621879465871969410585806763505678069547979890647507838388231439311338371938091064478029038040153353250566044874507605771999259536457932455529261307677581270921848896688958345504685114150466509615183856349652798241128700828806488928665922956142237326141675170556275713524328295920864230857786380942078640013033816948065340417298970560980013447930084249472844503906180780174137271295031707741728061394403696859740437184885764057008581263921848653824920576591536404766247192168710902444952755453646867350448839626281477322834946628235142279551125165489439165243417950983138698028523017482015927189668213237791118428890311449944951222405736848885233176994641565046694819669674777811531155492281009758922058549532756428377422444092303703843168393839995087967050511017278034534268347747166857539078569962385041217657633984120733067874594438992639360101979312143251901777860224776574715992849288369255820758406767975740944523000949047719396222731477739516673810451882192606146004650685968827355272934265054887777199726953941783495750666591735813945667569821928566194688045983965214416776765620998267860701422239476805041172346731738938308543719367192122413187044973138049944185372557059029003703143740326354617817137650339381231470828662234175240038722466212865850231546533324392176197483287743287335882354475226838579258701435362028031072173906574889767362838324735717798374671501480208071161385557941975020755680038133726708671359814126607902696672354918785274069499025492046865367928383014349455786738961722523597782144803356956524224261358606423729723222197841792974683714589845369030642099837029695545734551123122250427040768399063707913743954218324522400428090759889940466991082643783619635014878901058691619901626046665337877136977970294707830582472453344498493208942834921197140090059907666731979531638159252683075577388597817209553494681098366118530304044505845468223127229603031394466112942720736952878996099288877338937865025822260915498855425752770333280202581438057304832307177329022332056420498725436216749873149421749951386316545541605742210723047060553093128604867700209347304929943484370749111655359747361623694191509790526046815623118560865108104419510292569988274028033626509326983850886497228340955041589190138899201970847416583052756070350810904139099849322745053412265019529580785431619879386896849697100198035611555904937854162367576552232198150372337479752603258180611466354639112494997069779223879547504331329197488223415206537246795061378225498413965725791649009880535022733258962250398405360837806040296665854178596154308084748281316342628762761836181660811903763572585799950314979244255762188847189773694272519401666377485683544997256980605393944616071761743812628650893743696684487644010666803866093325801309758295507201145911869440282707366082818144673732205284486964677340678910805865154875150335946867411729243523905314386987980094541405310638205952889755776314062615552502485844503699761084516237401265232697204234149217719707422137607641705389054266197671619803818724709010743972016465686808746862967415662624341996378785994024159303346734999397453909442304070731498289868885002750625405709006997502530265127938426154730295640245014346051188616939370368172698509050667011406150561110105628894827036280867264696821018485041578900646778156665709268242456482116395524412248127711408330319027708006062140462760312776151034047840698629014819634392690105568842088165760115056832384018822823827138590027799374768815311423824913699765314681069662443216151048225653412028326938865392139146660191957364839432668440047623858132201431557373434107559325290102209966199763088108954675492046629750108175800413679289443320820032783588478438621934778001095543164740468619583428305347082192339961500194021494968981679700613555459041037686443666261855311687094180771283215983364677957316463695279119166640567494235092952320755065753994570317365348127115982970254981824648336820938064791581273002932631352334839660040605591639867307886124427286367321436263280314390460462231083982457176125203501946693143076375389966354290725260525748637249692985728483250953555140916469016229504523082946986531963661916468716202761889893430987655044304014779893377233034202857031037894615441904691549191076385749522460082506249499464434311998221740378614091601554929980828093745496926666199897536606741219270063119075313861937975003430393465758497734519302416340836156907474749414420040627350160695628436677183455863291032488888488114823212428306657501899666321319600048370821679840519809913551512062823874761475452449871138323736235070899241758602686683096137839536239209259393510906089113067675167364004147892923135949860723215548855522779099212275050825064321519739823057892690516574137434408807026015213850833003457572863902729129875254469385146979985132190923194241426865752645367465276770573093925583047280630065993472166953721612145284133967743209385154618738884030702874533261149155795039842968266963459267583513875070486803373390568075283034564598091536243110603862125745453688959334970561061717386846627827042474975049770028722528567941656838952942512716014494409817254971867334942616726252717223714556554058091520828231898009995536110107462858058256258422431378569870806882217759244128297662224562999400319729636680816249561451215758138289455725365544667775889566235677577650802091344127712524540773576165571292864539402869649094698132355241758888649620456453951212413189465784051987675290130606620533727451979733372261962102745614876076627998706740345238790577961051242156959512463219299436922736280221784515249660848034233217702561842714948000242239906241456936884142446449833764116320374707877062712308275797745279036498693570647802910305083323181818520930284918574386872113978730759700126713693554366052370198096673727955484004851059675700774351562492597169057011637021365864138638966754567615710218169077496744273953294978506333994610006650789748431494389039433881813081976801522247127690958397708042484963070459054251932608020107864824205535868754908380680901239969748711872814864114551643085700381407822303895172909882694901601293502188709222223054413972022680279585808845993395297143167782735678205983917046538594858692705228865667257904527380503413975162011355375570847306510471878819165253879215575096930368289998408714700296992101896223856502673359134110847315528038432353959434569778516632388350902238287532941736574317014520888879507308932489991190631288193104337640264449246415258875271243987820766110287823626108746651422960791908398452335008805606792179755700404518870917592718317529013696921946632958140739770467800622623958995281212826958050196588118470422413496238630077498198445379245759936108299855706557911424820955529671530381160004516632831009550789241832002499719581827026857022289223315482164754873588362743911955466735470387836554008035304359969369076307710267990852191963767887195722459061536728528107074323546344338576195871030515828217504718876447117344690109533515015834956533784782400472716828254788867570152636311149944693912792155633071821779540130259606795522968823117013038527144603407224653176893291942653544949603772578519148352283990972607232452460516346513152946795610535391514885748384499581620065986811123429139968242048080545478558484906974002560489868298582068403603553745770650441963605389013012304106756397357927151219246928634993007651841966089263442275584421639828324906292374272845099176257581924842566503458397169765694531111736743020440277252372381696338845659224634121925962706586750321430597930329427798811148427553772977337489429480226713900460837744275628641691597925810028409482247157991850554016420240646946264738520056829144381166663250394993003540591271369510273691094739093708020419319478532917505716419600539190462436185887457585994950518726211537771521919738916018319817917818914023280014701309717631305644890939555162476573685173558897767552219433793124899291743414987126619739212422971435702386366297576832554251036756280333483718310978249194850850784315450540173044976548522890944031505108752411205825667988221992698540407795927177790629241735594255503397593211194141815157225404677688444907678491153057395505347221529576055018214888652930356251108553826846902337586351499650072324554366502231917341529011995058435882198018689639184769021464075452803258873095418927712369116007915064014192165894130232900646224944494202734150743229223439661805274993152954313020327966925381087525812907130907642966807893647762408042981332642432107649195759999359072234906773616725564732224365542834840556122216760662026498998750700406832499430856707132335004428571911494878388479737984538580708441089886680337144250905002543332732219350976787257309079647806822018653135187464608908328489695070088851229849500781666890028125557456981307563791188059898167239037605478054294676634843725252980593753736325579014852103802199684017030807395486130485785857120581163869336640678594498174593652713649037508206325392524786507057555041469764484607559451936547209830118059042363297767816439168403947545392239003998726883616011003337598009971762516285815521645158797005218924947406273047634671199613087728885779317272532707894093695289434708260033616333053675772641215384759670030794113597692648718409896227666987476492222363745489776672348978537959794386664229229028268776568231853025723984378633578561542977799482660622966157329388121275635426426853120824623249605845416177202797996587554569392073327718216726029660545196843314159876842079933158850588528429099641901066249960531210055653461087056302352115138800976582368868944870714447694423946602439858622581810703813982520599120230590315760586985460408867935426198597539980868404010060958791591366312633089849670609383947609915221343117377023385740839708351448706843630628243704750040755769733902321630646435775648482624995971641171320698521759352930409561247673951091166689207003536853369082598363214069297555736333311653964815672260403857357980792352465095348023982867832616307683122811035925618585108267031639340373741089603709906023370816844464625527190351018220812463625326474228297618207099507310934810526998583351708276517693760554952390979289768483718559891213205189684502759477703518110856294117328644183954834030882878961483658700547265668468957608704413264734419559660444193667560027644854761669957283034710069832589775343260301332003314156201099237222970705526894828381353919968473858824455642237851281789023544043857073849053529928150629621507829379385825835162367938976132273286213332428094746028890712000838669737012642470928006268866771680633429471406472340631787582430779128733627580637226253141773365195139182054512610111504483521882172247056965092229770939329222019177182509724281183523333882029979015630769492097380249194207714908271886130647762844567198221924231202764588593028879027312450787967850999898262182883559435251864409799200431065284204228577609658501355858439617161912782051947592167417314340724099927000684879721236058456972691382815881821928209772582402565556609297949032469604042657077756356164197805817208742936194772936278773636385882813287369287072961077523566929803326589094857660218788959124180137948473057752549598449707455271031929885138796400280752827831201912999720058474851684011921755466874448470952789537287568203828691422759340548195270234811057951693838075448491310872175377494028422331309603029446110396313278239491744317774317308273043728071616424569624561371012870263499391946167390319789098352998713457996116548826349107378739502118550542858541070082924660364708377926474654234663658469719387835339142857884428404960744148611054480869388755725555470522740332731503541544783710941434729044341352854033561444251426334297579268371529926354989412286348006150282103769737185778122113182881912969048236439139785086418433939342804845732727506043733946099378497213686215237479645293888630170146967867774050331473848482960053460945431648192974189012009214743591955941745865111333716622061331615566039028125898990384990331123228375015948395463145321560482223400701419076386198611431598153383384599469956043395729368497636037743275629720291598063449785623220010597868299875715873821771856621591784728042420111274247551310177146555746089498719253199985658739728405709013038586774966171613608196299534996175020194756064216697154860645131512875594742450565489574021118473960544318679261160062692952052352762237066221286909152572040889068863710944813455510462168926125519216038791502151629254567777415771387741057812556764164971218971173978888831063698633363055733629352832876587273447984397244941844955182771982352763995288033350800159744437722766868449478388862934335058998645420757151637909448041359452280192986673674662853626995467169184017021048525159991390316141894372076304395501576130705178038520536035420697284225981872207528440682103992402485517014978128773053745367789468628313255367875226430522233302089619735430618369995848369448127650378923920356303934283847646205245793265883686049428700676793237780231497156966359516130440346760805317078882916781194247202976636596004913254968229678294762719627172720590650577055931512364626924447602606327853797805756291803770344187619026115652304979396962893926695561661037728432468554059385355795234126922498516988644761504472614046557070507542147324787656431620430583767375156091756125231383942247689662939651984247376518404372644783556761170244123417868569006201093168549753423118318378916236144788550199171429345790863387639137037103801703262469270066125346334274772761636473231367541216205472259530061202910771180365831699834921663154554292135968388437568507935301198304115466475425948307190260192118856621389032115065752391513426141150306418486584335093313144755202455733085089878368059671520896876190485455515630434072515747827383190561576495603674888536643851844924474725457042888505437269893460797598269711740051990542305613720487617004677128297285976373254653657648820759857743527875534892115148306555574204286541911041377948153278773597370875650266943998458635379350971777423382889960809459874835547640137392448801387094634572931154460425100688038001203099721973782698840775534582450701052966613616168830107649950283737911413122251971607002564562446061918554620456503413758716283674698078937143462940597168651885068991000808983284979115610744847687239011211832897861922691418338417354766047208900163437194745865015811889041155511017671372222167598562889057291214125830133746580509451510681240661004074848886924120807366681112578776669717639533242602292315354620206580598496678688058200513119000792131625605066427324071821394409677474019538858880560600481037829049125438216090330472971578275338500458940224843412940535039675843420706173625586834597925415436907257843896395758292294846026118908387626370398514988007044479235326372858231362388185290538349198461735886926954667480614099793296887518192052129172785855526884583679061700347431509660738168572308856825543673345679018265867051849148561181304500935911401066530602195612824615330329714884637003636561340515087210602320011031291457433309366505495736149761754116046727188259058499253987834809303801122452291378265662011813686106418033231501453403511593976536222852755659104636335459983081468888000089857781998354666533932428214960485928133665350604766809747782723000489994307946979925668792632397058049254362509805150763642475212208769440820730925627240164115549533549237791569723396974776192499608853760971739591067979364846636614338847405699493993075719588419435104852337534957716036009843388875163156553138185700451804410180399157990808018238755169267045402934402246164288708060650766052876558293389171968851525504361265988431354217587252381207847051148224644827475325705470722607166517966313710610259763474244535822829230367727325961282434361008331053177618776008639120082787984524514403284340064765597361437916873310980586478173288875954144229452667803228851381791081901915664155478346308009458900536172926863519009327886304835664454552682904947686797954947790072300883505213291184875157339071841328328103540201964783017463214441216491178197570440262376126746845509644656448110419278902802619287535082972800250647239411822364103153779673195515610829316967634157884725004105887353500442340454839748508265470075592243932669042952034773996782819176293352207944896298563998304873714060517617120210715093903265909447097618773189080816326994684094538129388248410765029289237363256056888017315918514489305795975096404753593094057408383055971967572840798131160424984639403009865159140897134958537933789337291017562102939454109848893993169041123177982912082559049184622600538511304300091665183503656229365094602044833473296557664204101770905943063983961316206577179676166929145128170821785654314038005214119413701290818563679253925587807439083399396090614351820131410583624577761965631578747545014972264800248530449605651370647039468327878960110872523308917800986795333856316663835995164217038655571959795709699475528066570702988430497241869085189535071444440393574966356688629071763437421830888085779964689628439928215243547096128783777831522359187280384770607701186949665744673460881503424981221506647817436682106670111482370564724992910198912223932548598172207522741851419544002380357956572905367421151725936422572810214975597445278693029482734379476729219507750998734200487235464613867722430243070569144589623567299333501216819313455467651324548820107570325763936567292931755584528268945851031353527510235678861747971879495902170495838166259562253111629554685200528739736871482443967792931183241960504752638260653583976086294211015401291405347036444290707694203182667550168598230774092531751673896268885952543929750112828957280151547633628656601509805147387893510970430916937903017563161295910090908209639605700354744759534923074497204354379476756244121658342443217451318428126347070799636548431330502949641878704522597687362155444051152307670139464778686024606651962266971519485708348766915433303551009980564480508056409634088358191680136242705067422775512462110583174042579578811021144964531031017345468359303842767863530453331531965538366293375179209697174145804352267067277538765973167029487212141482038615804469823513143526005125398180973753977568866334163060147876276567589053973230388997819002740951824482261917616409744058480664973797487401993570916411047416820014330982676305648488588276910019772447243293110898936574963625993815334713444012586840723165258553814232359723930824675993686661292132876051553497008024991618586587020119047648536236095877179682638972637314406841759145100685425496718791577866895496426890332074370866841448634643801710106415263578474610518605309151468607707555482256276376117875113444032807907425141235831039911026047413913768907218540587782658788147588908156973759938722510656002433707718971681529612464883836204786514712516298699808096395181246003087279928446433858132952581368526280440202341918026794620408742134623432066795969047142938635863064672320201148092093631144053453109913620584220164179850326030628740313719967260117324006852603655826668371641403952122095025262738123488063252946863547364703674890848928488260334621455607260186543265588795874185494598796848702445559264416617330152398826838856724342207124563893442094015679515912768165003127312075995248256100342322864282364147746985782878823134173664919685560284132565558179197607614908564196073236059342844377263803974703733863828404555148532366547273671979146772002717186341257142467225115518280509800299650110982208526572524555100369491346545087273317155496927718911621786006821441721827047173892589610685026843198284282376471361219036627347854816070821495615226931447396769138505830254949885038861885568247137992903987816218719766550482471143605568682498004559797104783566399840499865201821505388494636173453730189466507650448963829260815187349180217511921164099325599060812416969178793379682118438643876413455535590254017219335765193719784256773907341052464238897663878002234129533692967224014541870263588249896998408355284309688067269192979899556956774795730831496270610292334625489378547387236044369812891465274018602752332261117861658570397011189213293829622379295865981867389424984925620084776124994723870910104796790236463532114494861533366970159547246351253743700232079524447478376425344024070755249129516235977917790853632989126482223114881153515594338271427375648312891469685112914957939659730504334573514544905140795856011068078126072796144091148110297313530818514559141983535401634276648185501611231108187955424237849459832672214891344723290281674885145174337961194949659219245566397565343095667371368418234875416057202310172747942883792225161335752993708847596106671512425205664249022908559108952453936010652313387616515974572816815688886421054166067984847019143351820275815999493017835105170017222150982497815878136596209566913476028149738612109424276057419193740127351147731034814984026362756370995039359789901253038659541380190466259636879582928560207804232433467195152466800447228042362909775826124131767243548444851543665758016413319305954027266210989489837630240667228708318041023242935803095002309465600890962643901389166165699796515331188039145965574592343374671592480416905413609174936840793008176734716702342896794135703296221981862136353217310323718646179694709575994009776116223599044714806157964808188525570874871151875310712570376501948735758097283685720160128895363688379148233629432386500594243280368851222948301503760423091791389857600288853638239275972724540278590321990358046402095161722495821337957666115395200813246060434398702650042313067200147629144141704667330821355709778587233906649395646350911867252609363376812669845892891707614144829619129711424588457071071992158929637155613438693467343988418341603555587353834186281129338443451254158347341248603149069548743058748522504113462515668214625623577998597163338082095635874168908482521390253617120206356922121954995142691261735672799186897265932939567172026515484190518377229251439984867747907966131925019545168173253042860651963637802896522208282281372177577876371095674633441661527650678383780674670093967635259972136726791697076728102955589696334292745510228150168698626781265714734430886849643834541319027662246587779573387580665264325810947131948045087030057562416632833240595038869538163601331321061023175398026272090965608134278764746683733850830108812590593954228067879939690369000694301146859751692756489354615281355469881281882340058372149888492523737541389582309607804896441762435768266453546587273131972178762449554793564720870917810043298721762657837962454210151742906677493605169584704283914595316704474431879812891185197359973378335111335662097214766044508579488168696429278339657747247710623532361870808694632674100251661572910483340405637921630304103789110258614410427860668398036022802146118501246036125933366561091618756744180296386761428495998633595464087036946731982658115481888224289914429478262027707142071810805432402704845229207588173081359972163983057554431287802293064176421337836889364702071360444026669320433158621968760336362549900245530847506696461265330920247198230087912714372515116606297795567373043389982336840783985389157452011769561557770426193901215615287814523795346885095923380495909984828579697044017251562625296229578382671733892818373887775045039122798878314160377298986906680138188022777098069910409018261474226370417155453062881751864698794498007879618470421003307096772764683847989773676410045307459163609045274884723785240748359664712639121888343690310338816930651776183249243000793237127918977899388152414950932237578780889744155075725737486550353538360913018604421940874096068390242633764787844153855894301225382659714956167332243412950070603185229593042008444857069064323513992979791090943132800966492078191200270623730093737284849254562443367327105461724628937738649639329375258168389402468069923607540544933108668121369046438802593112618594520924282665326686698033130901382033108125982803541967032871630092919009679167327898877548806336176427280524811228366076882091292525046791719838715486026823683218533287921525247736451630076143277554194267732687262664352802347494904528901192579395744063182333383263228566344368955552379452222818180553076194795658933007120805421157371844174767316204039395891980741394560829605607210195533656014782238900996219159232320057178152042750585505485459059873100622857348564045276587006566658962787774605713074930861453590373779740196310191283092891632282868344515641457485002145732241657549737974728140398723749195276067568258132554784246531691007294907501572292908253300847621314354065597843596255981551880842450758197425080273975666378483837258715944102035997928528106012118470327300485256056778739662935456863623430456426014444265954831781616969329625552154500510537217806717827606752941971461421722169574298015215809310851929025674065104483269017240526234163906079421756317052872631325224582220590426693197588227705113840175444775280557098613117676875287987295140576148185644285232012914422195526429865484992007820520255461576885983649876923559660692018864571948402913496897778338272887251202007357550335039279652879424077457776838612648711186274759411664746872102558346437994997063363749205847580440034406254571018955296636104714173871068925384845334948671935455153210910225485723272828799712838295459393160113757787116196418972250117242288120508361107642706285029668091446067019383233179926466907724478687845535156055350463676318133379875599665051031774575682606340701530209704471418365261200487940759600164925486469713874866563203432937823346636331727028566646495565762485030681295916919420634645808753203163306145337400723127242667868767136521703208506514463472089358354565241975708101325260483476001050166336848703925258048996008972557575295961506374358859534046463354903919751879493228555402619423322041282805706714733709225274560140834036499953771332968128320674709457010140362876913217022522368871769130774033057890770679717245977149032286663902229498245742070246045108635554400140282991271623035390316388588349849055324379199738829963381768308259875408011749087934365651599542483199899475486838574216485031278120230712867247963055158773073586809541550346746196175033028917072618388956880449060881246868463213267543529525959344726491317360823040687279181799020104800630325827093387405843333536486364398065215078261872471384047921068242870331574379086930066010474369933874064545160693297407979228632337275910833249782440366276543520780379280574635789366740276474547406667561099543273348485252737544168709684861367846130623509308270957201368905351095000569920305464455409639256389106124837403023809802395400628944828307124216868163101877717868249616250456641374803456248550028442008393445854351767413314356403087462694127532760720133444124632449117069526120080213334267708956126423861951386745963451081682434831426317888177024667370701756049590405403905754695793354577261583962361376175091859148611026742023095479453097881390916761334525900468897027781315916582619971730687249089875135285326504979263062861228416339427781272097304572140008621497678437014266140347117390551047132367664682165187965158187736536107344310018097890103437199782221812677643891004725261465786659052570115751596308163594065533469725152503153299751374646716144040445479048124690899629891673369560904047091120953069310889781551981945677026512437896351813122228834465836665640299047456772631135447336711743578618763171629324985657872384486437773620705330907284665264611132714907879396667304112846318901561980323636530576863785621374114439761220932062697044338330456220824594805052857922514886586385850009695983843046303508882308853808528249351449366649021495811304232657012934840981776103467927693219687897307269179391765856383816827230868875354468793720493102091449309892514351353751988337541786260337247670020158519495249075416018845846804166301653796111286359519147136413045242653477223230830545560366789534779199999136482672891687147837453833748281732804397002570647773656023696134335248589626603826877352719746590869651704919112825651898710821995639460069225485936856748892891867884260532820896442233133650671798427382310693986055267745096454812633289071328570644096253908454677478516920066503474411487081019649490895340766481309719124323659249278853252959415250104161898464046913698606370414249504147761602146930682964135426885783140890754429434740526586754190499878206694899825359411524586893319002088593975608028310805154267564782153180538801423831074831762044149255889173987746320347948379486758114293045928369461081931917131461672193287849784427892100747874347552361680869301621206779516638348324441969510118522692059474682837586275827394915031868080367545499670221060092630996684736137005151102917196008921909229552651713414292527173881942221494118543583164395597944331011896982712282747459004250664426230001250500184950215966706481063128145275749809207147140755142147228386275647489890235474448082174042907665131297388510121270750798153696516210523068325360146086839196679293681742335484348049963259090826124647670297131520870361107378429622560647866043906500605926284984311606680275050806028930231910149737926336993230141356714309364952729415228791318504018809946640655944084927968245472939218886844354535935282117932120804580487151847575284846110185865395792842428964548229457736782737020189970392828526630745700962553151906984463235389467310635846564555505599707206514174476555135422291797924662602465994376227828063723232085236836832017806963657933325867171612777079229171410259881820076793159300190853837662255643891582467086185204696248888783163226913468095817461540844992771526140835489997308001757468184199646410734149555503837163159140146534969714484233116108164581961526552878393628799223175985991494239360908767366331790040396544657650560135631086994213318484355027500824089932857119820632701125743919022503242424704432731512606542367554816641682851723460158285023715666456756376620514768960101487213869857031649652997845320692695876891676079787516245043425670221503015230396682430003806394066224380726649872170260702070583637047639613153805561611818605281731487908341940509906088401826209190389517384627213085312238074713806235032217496786641104135486904524360954668736926643914556353876015486001472845509361114364380066308666627877035367768961258722428174269804953551510214923361992217834528775568131993523583627420531236644666956572805151678723924338111382353517732686681311587659032975683979399224568095582595822378583893761404748773707688574775343586718860720506245038843753761365494280030321760973103478529310515174033954884600770347146331218059615281632201971615442889200391988702055718127126483209154800288117107196131575775048921775537299277931171080290739057241487196777497769349682182502938713124827275703254296705008651254541972353513232731157437620086003762183370732050548921749095004466835367306375375725372875129294465522619968093402675823436726097168847199644418433089596367243333756290932136707909097243773043372146922039288177935627795371177109687524430067165801524707484908849790692552873913620934846752346852400880080681942189317340750671372358457911516431319164035291873199805161456323263483665435802212257858858028260324032961250566721591301510870608760560384939533514703434739017355596943508456158472199282859511044108979373371578968075592081198173998742773433736287759889676940283587976859900461774491548957763623959409763986280256667350916034715155238253592691929798525994699196532179488511448074930666177975550675866695930700187075837324351422832269868838604377801570882241328417902759261994669676215105355598821054436339969551381078577589563620134221902444754712970328066811052571381293432758197877697336680350834435281519707427105476792500343782710159680481602904712536443120103882618808854530868098908137696113189758053123021317730577771276554850681431442598215260586632145978857191817544597548220465656957329006271168995355469245707102683243864560161378595572898806737668143141274308486003787304545669913066348967507470197044517642871520199972791008569461590701936786278801483585821011495435717776654159999105205311183580239772420626023637055413556427945313996196784877342852018452666339011033422950263857606594722483529188793209433541378565376609193769475204211873719629926919864479235724416654636401034004248510371057946248362722788441931541922062165331511047470903207119088164219156027434231155473934395487065650382872768072730579826087295889378145233968483590593656348817923160517153809576242746891773717806649609171527857927946978968660643359530268069770246021000225979648750246372005878254002384810501940379313868026069932262490860451766146695564576516777508754922155304064663448504586792560943158909187643995951464261326974191570433942650217656863451620024735413432462917630304872668658786878650203978754252527207399854517808956283710039639883172161254515421091623342101566514723093127572708367229853445578462842595753487936696554437128462728331805561837845895605397891631230024972869038795788665890298800051650938312419641025822632376849809254967577127266314753678032707453560291608353369089800019197647831723317927964510847870968933965494138944736224249051870731368052596576321767250188948618064748170522119268928567230586186439946010431103471241531702730810064087653859634061161008640897487981359996173543201001868224952152438902652501037862215685334438537198956928916992047608365210216564735717352193211109185272340261008702676398555062141876855510439429555862624133358948830890207418373533935875733227014716440475718112622034262362620887019641435512770262568397576442650543639259574250192616891942532154484791689802653749864737954253235568842450801163548601002965488225805909679824427895358843833526862207593649780152485442837354379387575674807066612878027659268937890660714937352893580344732619437498327034703344093925353647595796622830904495124644801559764144133677670194483143761733374158845652159006802845868591903067973626242703450603309318285935121490144772750444696390776640541448410675408030862178046518262517370233978283958453170979835159635272460893904523435366267744452554348558911329501514644328150186821623097203275865798030232959401166071609110101435766619661470278603841383160159970903148254229347807090664734071634982139259618759861053620500522356611430536350340001829728799654559542128155331498964617904154485620856277751063854079322463213706619895133944492362791172506621670799257920326535109712584882564761001356951544230635352869708719839488093269012858447721109263461749836818287346257268343454152666602013782572706038690791709166558555043011710893158896538127850864500548005171011415784148475529426800014333013263459948253587224349705199197816203464277843181950538332124266202852180066457382597481940898712419370696733085026495672395603162506209667448781274054941374109111923013112199498203723117478700688852566408695101638216393104796185518963455180567277478721148617833957457466988306973736873218354240152592895602453469299035699606369627345367857375060315069062604377861606591753265105203594985210448759005234086565785068711818426653605016870086891329496594044981312199992771826796242664812910649779789528717740301494398035490059372578065593090610050747844891607991259786971165785120749672015847623996972843141756818822903053786133018290989843199197942639043941705831263521908721859816461323887996280427945971134678066433530260912925642050934114698171383939810630889054180498891720558775326731068246444998059043552902273747588450348267854286359730336147058203785051264973465334638414653705402008939599382571797394276240472994666594281853082155095922147487506807853925662862960917653884516959835880763494798534777743361911934995218776893628589901787534544028116201310163714551041212218675734566172608943128163978229153746574791937532343566444815479285453092982533137635079634618990844273525030706379413032325376434392937211932429369723218031757871335658716322959221224735532835621401874911180251243775364167704572697106719829203199665170711287516761840269422328648487161017721115032811763944235427948994484702386387310465042772651670406110172226007031862190781441740703183505584424596034030182413374766268384725737629201083663954198062309447777397945464621700743730787647709190240344843668334607231280969032721260416414572863200458694894745673550019301838758346035748452648055806957718242666806632974468122378879661294227916241586480075528496049734658682687628718554251605317718104635624770479424583766629681123580021841021479598799448786971485541682780951954555106255910119355488119837797454252356403811738448497208906608720290332430755120190161068881972239079424663931916166935268084579074796501357059288588909402604001405444112282645249084424186039693402980287646344599093789462802760808810516081007897851448416884924622364046188585614340700635766755470148261599068705362524774576028028873539312264585216011881292214067796210539923652352430010743428672932821543207218332852358272557119029374288586218144807928559419446848882132195669879354977675717340322521001317265434749398427653997886868452617689838046545034878634508490357725663273653306516818693637824889888007671325935519434215088670153261005539905156710155725418430759863382074931266347937460714716488655588818814650584927305502657156036743205605671123244976563458541164515313237759884272794964167665511023238351398144746007414210586371332902829509450638977214544620282164729370882696883067860816655833134585991968725982770511155762146908218043036566446550190110612712246088510718376343169493447478595526592363047334146800489181383176427488633114177198568527138962094957767729199239789561032904288833241586300322246303810679158287157016420224219899787121408612098410084207112248443544362299327850861031066886936558046765111959784141104026107079940928765921245755673948428624015320702844180118516232287030556171862280505441702630032450846691290767676731422227888192797853799245794773025935055337098571927117417180434122999055151932820133101443293901762911744173828771516485456663296845309374007001928513254916364223955464800843095228301063090858771420794290722552088798451501300670138422104273390129213711628232511802184910055176746527486212142123594971519848709631859716520965726269163923385619369652650322006215289493118520773748422917774014123869584056987655950558711448571471469785971886135226755336899228817720663197373180565730701759264048594019707709267898748491430580691140089487136794573573971496678113899649602045466631140414260120705009693393468854652293510036606335341156152790119637403837719311905445903973322308260831120058811782112550588156186289570921533408666223696197662507722614645156305820305579274077195328651454996924698476995472067974226508276285160805708403634916690934553399975216541222723131965575150830736876892542363341614923401216556536296370531853698757575382871651061517098731575835602560510247797680052344453920807198903508614562253569782208187759519459777041913474373072643507222840749415989301558663419035192004604082215583704360933992425397486252821423885772596540601796714397393669810343615497195364322232583788548816035982435914664653223804254112637876125574763489224988587430099161975457955661513626907982522555028318463642063710877498233506741417859669170163310424911510000349090628246201358591493139161891511904034833427462338763925218335471641344443105692535511681892013080563333028329263890185532399014909434366977886987086263375861681500816461613759345538681053240449101761649788226675844545203103522562200820463395364548717873339609483669033706930517805941239730507016951281565540591886549425062457831368073215797418109137289279690335757570643993366101640648215999952783136597111437761376033300136596347721384817440709139817338562746046045916263264550366574971582611872005333979231072882053756486587110025064756450179946076264902711043625883852035821810781950497871507810574797115360843603324255500890319145671530465811567257148319029689653539398171618816209771698128893632782346020814456513915970195570287554873450870166857565494060434167057763858895581177912780064777519988638161624287745482207470050412381010079428239607547874142820908841311355023573083953942277331834400803870500723537256583979908999077614019994453356975807573687440658095239234278077179298086047814053936906253496978125880067929367373188241076783147516091936181251671949141656627439765835711901855337606312388976788983474802462160883997354377796230275401430524020921168521002221630840351456063579151160871659670412858073630363099958190330697021826314067396397333405338554803454017106797924731778733769966144927918689938003514013912417055115853256493910265592567550468338314779739360088792403256386197026105249981352736220070132848226321175699931911989395994022728575318341691087991569857621744505039035560788974552615805153327313241225668656735091313718559522736206922285551790619645437381568862156401498315358551200144946116940764518642164902183393516198418951808191139293487339300945559624792635993226420959334893636568413394885248699163821038413806194257563117930037686431905589653953038277126197158940823749675378392277077403967440288218242920776848188997006168284828588870126411448400125848896451703783541455229596986609957467676260598472052769693653122500280741332244232020919119583400581414445289759353353952679499793558376671034916697549855637183377808252067078237012715058314679287493589302075219558309101725742309297213580780509510466401483224547780738713337116413184436922947774535561239467436974847998382236027002554943721087823631815788224631949333328166651777736507982868990776124527573060919175297824725381776078702031086252319021503691194039510681075621870157296958597823779340741267690270198226219939981092438829006045060391498366548429784548853435900265259912618869198723024089506073238753575792484043415832854193987471418447494966966907216637989177721351802839504671332394742462261528299920191777084461891396066995057717417205391358494299770435663346136406511648705098863005385333678631933402336842107589446977596852687611399294907369487961811730202799991197516887524792486012521244213883268355564520759030425476648883343289533242262527869204855008745812241795224953108086050668998737392587669451903963968707058958653290441846375416391441839480698726833810202892165871621386382984474090627012122036119464053616870539002789591761671038489180146454859442136674821683358260100954308171315177288435384094269215820087766852499875510144686608747650915634251472448973104872734210244563186962157748286733392342961702684809341952810533992368281713149690674129097644199070215385985663398208764133649888932992084258957841520114099286047179016217331749984993912340326675501934908627904562599469036285639188653813375973581713150737566911758618566860970243286589670261924998188696835887084291292693986932423896557721679441128878117074340462367045483239540713807232410215033838208244182819094768067326636505328499026179576395622799746993922129352794830504841760163849155688936572042123173168348644021710454165405735576939738769571478422837274284229950350565920971500752960701109172219234401506708614686189861417185952837063236499202116700144288818073759416457729843322791983008403788807939844845227667563778591812710960182503841859591140856044654413987135883963109276532614032023234407418564701692419243214057163002742200459098116853644777800495761683707744801895874229293216463789452932912252873665208165398402373218354082040328350763324357855941920177882000211037258627446920673090937306013611938029820686216749350147800728149706525359204709864650087809684248093878151592308589017358474714704827607670427403463911098674032386517970794501733486528511145723463466035635388776592610450664178865027804445491948143948965188145948055709083862034517030222940032717420456217859127521691263504392305090517694723574623789888831330179125805235558663401817174243134393576731752563305319211143188716863809279885731540979678659260992965583497948859356497150932206713099820104847434761833508101117199465654427266971757685603468031154238500713991751991282314836256813529823938018505127925672229893425457577725344170738625512964731399763647119932873829975877776846319992352588716212077933861175774736388884701229554479167865481873737749264347361947936028472539293985242274460777645627889993502088495337571271415049996838866834394036757471414786331607789425760855288169682058704659545760615173543075216979645319473235149588942223533370571539903545759722232128532946193348273924288333564325048882862422916617419480175147437617308598747163811329361362917078561300057628973721578711932725412593177559179327724656526823256899666119954006823475234601619718144666699779708542705997612451277562179404310422762146801709607206968938475424147662671459587048332067160312342660700908480871114849520292332931450503661756839811566634640840603652942909360817365614824634254870092366934369059107222161346227142095006282828041510711761053881599950929992920515284409136128854865023590006003316590648235889712570788269957944367484734792246035384954805437978535394261412876091115200819455604902007019937921165704422236201971493786038800206923665201235317047023849455283194331223106292505735547510914857426391562430437608875263153156905634092821831683176894224590270046375178635407836010761688978575078805230794707040882820224110871959840611085598145710615979712694678126977431816804452378402491600879917737753887412573960439438695946940173400100574659322354896672078720204133933907136824455720881720682614431769581267321995607625183097319872632324663368796517769793156975205045981849261824363457212005879863144078603763980813898912596752622984207050808370190546906455721168370894334553644620681055127423724816673269180728522813963786472366556423898230608318698791052573701532690854644195152635517317207130075949281103610639890484936990871164679555840939449352803589696273864929333433066158777183285941845373923612972917992652672197399264091675057784292314033153888810635306400084668509906082318101033421051553180382632897120744369649323582826228989723183868582851328482228806140836528923585256913888598880503541310105484395146902746108698568146106911865119040969377456190096205444768967581203773425723321397811502810097674821974938959754086873797760042676893734237438130464392553068418540362911785131010693197521017034771140303189914252123303061789283034362459592593405586005055167533208169346014679951424538024803788502806251248522731287035295289490058720330678940960174302839789891010895478546040615067790710334413873102999376826706258273526803807777814152482849952781617829522700707436851663211415347748971655116484198672451533318244390946049756327501855946261143688374728317720568450206705438898031464161657722380518880389147000742218872194065172703318708552829219522284918718414660512245021057007810671241935491546026961398406106486339476548386740245609661751795062436788080489756798140954895328792515160308127237096803914998732132630640920155416608576151233695931312561615663464063477665830038057610622398099556856408510667406293978307903857194009812765131822773386370786673529535554147478166013617550822602185073022125505716783951860277215709781506306493575213451518238122058187316962643835465011397214416270363889272637767508919365700241212551860079842472096388813619687218993515560001406442190215244468813573064320186999744536779191041494707742957930285246314773793644246541442722837284780067924610088924978275373103382920494333378395671732294101180660644972377987658561836925542225105941504664748239859806771855593340978418043693334251145748554253576336969292478234916315418613207602130947606818581549236112733237666119719635129641311590122123089841725299830300713146878875809816785174821394560007020684294665094515245279804948607471133355921476790576771304266306303255696166537866667900215473945071854012746224424950021273795952581321284695421064511876445257625388488223470670820953102606738319644602784537493330536516175967893572599108766276929636959432410842272922809188746027810528716297101658800023221787169405855908375238377175817219754566375790230795014117544355372818805697545438605279772763179864136772202804963519232908184411516156019234920794016911305179266659584232696506942872818945461534024198267591505175747535618807036777736912742675928526021463795498348658381298196733144706635446631785293596040528129266574976988636499026031352905637471256422056484358286791951414039541471917656524122710348847997017370028453613350616309034864585592444889014592740373295736745882990520136326941595877657493627387451853533391719604813410415368667785220088432478739704754124846467871480131054614059017625864240794369180501812208089385866747314213430763332854751875339249459645724250622322304829824303808223422207698461424311376575401018937776543144369052814639506731940480103250157795529948709610410244155355989323017817775101686789869234348841226745447019995906771726664893951468412940230096692251391921011051811453055016086867051503904052616395087484078495094648907362555425900491172250781791459062228418466192397097301301803584521957714505356849566712118489265582175956900758060296936829155616428869910644573534064434520781922238308167520843304004025547118167757923267215608180831910227751415340374062666843774030895179986219866068476790144635512261012442683172184411835886421262850850328629104470160206845670886436177530911484945320448778616675847761139815627090279864608963500819283986869031026514627738670057426745621839880990065425830188871145053735194027360201076598990691589911641650492623541838508919743197244464652324864655421775923084093829485315914719111978733687529486617247286928114987226597655835554371417128757908392324605443380055776859005721763842144131097124805573725477478074290886744577158834480220104327054159439640130617696213585644817320586737545787643707352616720936339610285201305754866764826731194160939801718292541009906611247440212180325116863817771366538222190752718867006226153386513459247732851103666124395432757934180615826899864934473477616202570177225062332922499706560974306864455254315288722091695516553804557663812404989773090666175634535345669007316444788862291418545551024457922591667581825912199495007270176350509089283996082584983217289460299188984371342275085224206426629802333992647574840096489262738852761962145850631595945632839211992538750960414884791936058300991771704920208060883069897949902114299106642873279289261189574325437695668403513521223442541237948130769907030232316700232554434521191301034931068249280925642948322829288897811333227078678280111522716411365421739241289775815308930954588652277715582094132635403736359511159120056399829270374881033578827327754723131196214173861117866766529890588149457073907936503055222922406505050954544648757264644724465947974453261240239353423282703498145913618408897075347817568615347976346938288803337071044717274570047897524893069472920926799960541111599267016756377691744553418908433255396684175955419420550179414102312893141793074675457347290302561477646541465364633356724215237491321455825394834100607138325006289922144793019964396819910413628641920609117919577182331881768190072244025261196036492683573027851616513568385975545670560575022180589168624583746858429355419338061854176320427559364867364659146914437162903843064581911526349360622215632741211792952947256388410066059350708581408835124348843590263560231207194756344742808749786444012800797005958408358745325069893585767136304786054910084388811006383689829439986997573631581584135234631386447680280393880981494892902720907734731468003351319370412137165773591119901708314366305755450279593062117426034404923040893973756040846252977736455735329912536367540010979891962823168667357103972428258767852949816884484590417842752832364706762728380731578983040857376724182320761855274357934843065744967224379217080462059844156722976021763785080318240739054900693040284065801425103043311399313770782588644478398527404337322569078975867279439571560274221008934283839937798195017905146354343919843185314874481517977074336376427768068899651999684292936004821489804057095664259396475029068999540626834271867603905004975663665485525928974369291327220583565762332075896204737851520291279802597454762658884640448126280372971525623726240643237814289875546991576952790645255031314259905399350691565590269636213293723570507186515429667055508597640470246906020355766422206254568549929492572978820350589587584269435871769725335445941111241133708135525309267915430233006356702585887621203915827808690578488218613717889500762962404041523634723407125928100444755168382243350237383218192493683873915799977695784137394685040832162583670846550453331319394600639301382883365626627065141466674210505572182502398677861778908715075376119177489793262178919861034197180814696224763262002910926356649427347753437101066287197794827585344932643017793599412368718322162534078160540904169642134515182163892290724295185602759836482051211546942483061392129412427307194694842790859651725947308502005282213824780677224821606826955475778799520217642052920004549912658165895502060393653060660638134993713576858563828056885593838148070948113467207543119047901066868366584939938029888752080060241274401617942733281873885189375280068323248665632918935977434500819248395962784653355130479014801073363832228552990308719986920209170132429774819892608150755698459641773776686084607912874656214214021938556335061617845816039279309025056573514917562756920294101012354571931391474506698778969695763953812405760096215035554116278256683322287090950710340284880901060215882887447618497090058468611756830564720374363583405010080460710546929635742648617765722153367697971644164341857449806020298854745080015897273676310026981155116234845319047452572968348104797957755807704237557847913321315704295199711831865319904317640529330051466380484710167991887233168702272196584595184382554942290711821437616554935618184169364436004849971728642793670672568104554128945429956218831740065586896969821610258279417496600469612587663761657029586420562054357657279671212935183771196992808977965375521805858056970440333083315310084072051200664702004184628250122158193321761297734197803127454617539916452126626474031729995493799788877715871578153322384361967476212211111413836998590762344776744508235509533979284799554717561297048102812879051850260209656998216833534000724705263244182560192756917025743455457580214415558409823882288277345372628110058276959427018752799759597308040888231320607629029262004993947294131270714077075007188112680731700480014618884025462287345609610103953986947571522511404524405348207808770404410955107449938944773891518548129315261847617422905920413402961899780470461183523888171614996098552825985141009831449494550275809574227846913617133973251719930708604915999057650340655068407523029972308407396806990171881855420786478318429207438393528548183116605679311220279192470296579486126589076692176285674389631661730884854592515061908486941927616092297198391935916940642072540511810769350809721976671293439460724865086165815915933951457518175762485858787275894762958864879478210533571691034403906310363341615096909477888092911604013490298501317757137535335047917458123213844905018933916545089450818345954538672790118524928548641259157858297567530556198805198276287635162804783703562868017057098739149456822345191236806359886225334239168636123417322602753608484478635323831214315152042845401749394143821501656165885002557832497885528126872911630895782052724080341815889762863104563496160466471849194099700891858536699013146022375405416381255124183114610164367245065360730034983686888827185218771450779021529471955683596149373743640629146268704641997164445728682619298981927413921944352230885312841625798418854213299715528962476326640137152562307706340148823578633806780569891383015925987616319173811917041295400962339842376681652937491485474296385134664751359708355341859654666884970604652723798789867309520337394324601489617799820712875485352997040610684580849833304158583014688691871400715983664882130005926219870079228932064103939066743797756367337304605708974967314937372231896995686212720616720799753182290342924137642742347195547875566727736006302805644179940907610307709619207052573098088887206780507903018523237921855676200130413833446369666772844102915300070261536264780466680197857365847897501995301547664851161850172900813469622860507220770823176386881733322000016262863066413394903837633374394942330516743962740560540745083550452791937549645730127965700924708161342930064304214268957375463095434220070717707959633979424614792060045833908329571704919595284709146228391795754891485719503036577642376200815240796654475188142721712702976875730973107961169083094578781156277525653713458613207073309173474700340830521224271814875476011268558424378269034415516555311003384190573991695400019365673422404643534152158875091810290819408336385627423359768541920695650708765275727919838842987300266937749225941245399671950332263539212457997715244389019801928486823499002932520375691560188032319844230082788504442617312285149838985866953645167740851547647026392326599574246515617348088255097557262320609613893359510063588934689941681105634309202334855001772980782009470193381901065730510021222589916010598350633253950116629409164123030117158734995204804226406232784512773822633814644133659883467702982301643424734808019583863231519875061202774946990610495639321674381297533824956592634145450195796927089799382009396799948197436096258945960597678632092893819387219201264953543189344267267854557867685095370139381257403868621826684011500839269321131290453003939246120768252816016030604057558669875767236049106842562923344568868287083761285630971056067386855136708013222448364959832454617481196965654546686606415105650456159296702681674230181694684289235160753669218742265518997928804333804971622860882722121783333395824798629175097403470513266394075872293121199827768605021845939833072561282122084700344292679804642207855277849700557480971065611409552474775870724942787732360922761298500425106772935595178757465608635627647057341247526491255620309474561674325642591761834629943034249998921054438718789440991451151199746839313322902811675856670978117386824444925278027132590690690284487062503052695282831650655095734016202592806605697994983393225972744651334501004066633063885066603644222861566196493755259009735229858004161508239910029996137878982547426471873113898276448138924045718131036740201977419894988342923115576560555459270801629978405811771674549773142642148677852881796398769372289923870883268201363501249182157245559409472601776882657640559017690451061217445336591024415580172831903681522986452850833768557920984069039687253894404672632627006739248282535514179662087449947959714393938409633285176720993145171704211101710787592700585904109351628791383971425067596428025246647771194031374479992513779317511307312931235028457701852045806944593111668810357066282595913129088130069143377094849542768017784268070084345506490238005263664856000924417483730560070064620434268291207437993096614176543170228670758141098233594733323460652400983676113109640535915220370693958781972222831743832331757894644161178802278611548257818711944321335185958555016061903587570594624745328237435140895943152440713844939565490376609842641897736329177850829282906817121056972928324552853573444419222937939888341343799627106675542803182048800272506955533231559700815199293669309179119067756922654897868232679503083505291029486436327303210806937404304892828317482245037860288624367966968766200482586534197289752510229438994302391462497118370901991913559811856107114829667640102660230328942337204233828026678693945041016121432239858716254718516498887186814347916053175125294357377428035977565522877226656362635195251551867907776459003783181411280639231963740469938642552748653989333690564386004968524333413148696187449265244465448980970345706592844189891108531268407540762139127845346171745143930134345664877969799978370168130235470014785987746695733580824126443622806221727586891585149188262945805008307110938346248362632869217983649980435600232269634318409147923210394705107131986473560222101004851485330021238118639209225606696037051669905036044094984711440091006666502385896984631865965124252958115867584013881481921767522756532914015142574133486871962079475240683112258675375610161852203963528330250522070358615331681257795097672511447288361599379193185643678725670424423472833750117653925393864513074009049306644550422908791173988480053541152329723749696484504191973756798894480017721367938129869017192784278701397761561606818298196576863992783712641375636614036331959258636518613461409761542592793956437006447023861667699519524568586319373245884432587739628597635910137055552241767170896566579248641897277098901738854002255565613193000208738196036136620030379638943859300071094177003790953070210121419977362869866700644184387090863063742764837807374799062924753371283477418857397548633550897144608691049434361472526210477547073300040411074658976465784108062837540389778614027487223927490854906628545796503245801194047028476076587586130017682292888943989266247597959269284525481088930083452041648126620195755540740539862422432178024743316378894841026335725843100294620507189651339009356004682733520808360765456360730284670783334256428175361495271606332981238729348785711460701938275022742131785447550560856505151098010614869803374112501043154492756501109125209357855999591221010741530210026082573945232896430640697194267320277333697032411290695251477472519403619156859748711841351647961657378686225547605491725635617001828234770072438029470707447098707851905778153433735498630764363396243362163232601230438412635165626145698093736223093626831188929001079290443530590531836766967537450533340764461255472464634207805810663306658089660455648498650573583638430185919710562047935880675243141558184077991138026249952408116160060523202665834047618161289365870184359318524990267282433457633068893912289441277505094806836519931568939792692615210560434334637072490610208326938934804145756464747386229151545482543319184900801994668710645230540090057347799004092931695735109808908284471821012565646510029867125110453168155944499533982851262793329941733386381352687040999589005298400231223107323430511778511862904833691440497681463685673823089934977091338572747912838901039822068337209843300359816171840326037889662932497162165642124317230448211678990081648257690709503693450362559113203841081400893966815879106282703724361787876069655647990048782446566226410264331843268013619063720487020936245456020252603272176786369120547588376981629698949900552522507060570991572240078279683226349248093199541494011304751305654710758090421374612312546572403120501827214531822840121836224474566947765442168075941399181876956619109266750098035820933626620778059302522053449425228294842769353875112797950314025205727104531846632539467350903943669879692901993619538662622617806841019792281560564138322359245458624847582276086872606400329162906899446334413527389861641866301416042156828058805982213015534807624513305335701859670607225707292060698942820199846727004780399948148774006536931487437039145285047769576906336939411354398472548150760936715314230782765268250105931227126865043559952561644306418847254342627047803544086118468965703720766912335550060037162640228426887274737220823976499673693910961118799510129425770543383568469288161820235076433686742886823132361920457353811307080959825157309852137600207420956151033410126062392785832819902371643875282911804008126481618299696549314751077862415340424368579269340397612781471670726135700360713186540554403488204630976192131321839313904558160392606935986728398128424897517335752743671022734609742209830909761702161022272867034738578933789599270088980789545368795255310992731291028052965776686193402679549748431836873799497093430921122608357495670890403708916764584426325027184229458618691088911740999442879866653217754103933375236001028548827697563443762632296636180750406528342908014530325161306670410521572566695454772796574942494229843019039483388646823607944792246930202646050148053971410944035064565220776961662360980505519307544238963966269903959298813349241159655163428567665443605050303223028426779648669522113049543351185612930556285346631532067045398975307022037853778481704115051064937097482400636669159439223522763973738034517349098333875926985986328178870084077702511400475493256243562753633273759071337242665225075095088834354075397641986521097330134091041650653031046254921823663553233245578933425851681944140553627379569286656389168768402970467017633973679149197018384890950752794563724470967622130524551720738376021671886712526481921806427260802583397862818220703166895260585156879588386228286695991475294577681023876852845124922717335579297825996581893540779234005714667527053683825441167202007918540441708578261326738041512538399449462521426403778019250620978775262262538520251559550480093177691917814270996349009919292545240814709343619392325074100996373406957769692010415597312298063519947098966209477282708640581760635836528532570484870824684169872247853295559508337995133516539031149570046578801295935711754663454277964550841955287372256180740061119615017314436223242543897227899519908445107437613349931650905269394422936238960171079095574295365501038442981172758652826957144577049923897711411427118159224483335107377908485638404329364464777846187365567373963920152085407962322505026818358872826157531019406259236155660454138198087781641327671824951727696913994139270641927242152160612017658822104658536340886743562070001897653778367022993977121113271337448884959762091260833989898298670252194536087887542627251670201589577323849193494221479175014421941976148837980373892442283759010810641714322267316999820032337625973821001296750930346467652270115982181086961198811457814691766393543231149133200292179429048431497419104384563658910613685529745176627760514219326535739848601639492421118138673377527556798604838336269385544140130944455125485171528833198538795115987644065113427695758523966830093501150125008034752037710751674128082085322917637919570685131044289736791530924248303523885575724047122516239473647134633725840267935302256280998131966696463990668543048589853445755685288781382412357662990269587962197013806413007198062915594564527085469611901788450152028821865888241814659803613577853684418621147921793374763629987010224967573229687226334772263384822820183623745244962014910141754660700558402900870833584102162967165110414705218890279472600738111431986399527653434671182348251809311730850767542311418669308694194180630803043664926761949820677035291717381937918944071830411148808690525327993417286715320487858645830496980481839567769035517665796465649235825694213159427314734460712665067868251788446027908602832601505401450581568996585249191130003105939816772389817387250499155032038250096911974728492526915667738774851367009633950118710772084973446900309374966923907418749584510838604397525666127122054203055840470045507446564637153173288230246785380789968460839737045182515558594186823045071768697960277617429239971455535709645580104909824802894690337985999402148671226889476198518518304594501242483271833495599466374204920278223175973932110246673449344458232192757234538228381662367639694509891173322721215369380981344029881256297147579903057920263502858403486474533078015190010590899207070223874520519313169178544494187465952833174863962929202973784228881807991737991621877146435290386239276993680099379809125842684231771071992792637377711172760449548905614000037412034052973960351972147762902095067705110473277422279611798934366583232420393921032779481104280478367304041406635998877107626694896919579155578674431939671366825218860543890793457625571730861146804048326658976137777364573861724627038935580043421989013785814426685224599152128739474030625526573604248617029523458991677426126732449732217625380087330413019864578726047678660791553779411624957074143271908465329410334693046546681075295726183234697824809694519669073104626605746221003721439559585661211119795832236730216172731409841648591724119645317845204508496196171144184196035226985081892964383202962127055802718068398853980796974385672441743702601066108776883357201008273565364917139951268212847298822410510655099457578576183797923075148763898166118390832672513353171387277907617143359048244987853382800588634479037184138481917555157144759809329159267854882664386806642102479527074808014001033615530997824828483200979613730787684397592975881036729726446740196479537925848693144371631778201186154168215616469492300078399012690350352705245397786890739091680355076408581054564008417829288228816385984256139928690929178935104430755394096434366825719636620533054775494396087063954888051320342292313152488451064115071869161596280755795240056072056540057146026314814322576257694961940086660774924988558804223200029511398217343421990174898238284444462333928379697498910885908044847136567828296161652499682427843436628225306295935234083880774904795388158632986478741830506915844137548338228745553542595007983114822647131922108029687327992289159552421979120750752047309609682840880969079287132548280390416292503479560399327943812228969075446784437528430964346127987526487078197750144272262093307291054150180243771334968523521541563323213896023998411070032705106246008131154947329737490883617626480769115907071871820845849837306279377108150357392510421041718931409233557469806226974097978567562331171699526709524492658402286227562871166965993543735953440407948142675072518644545267607480891736941591262527833411465438907609710856989364324620939459317045103604767649976748107576025003594570619647668339278969594883307897080190224587851333779004954019763338333694904359780564194736631268837434113578073205983166418066203428640118667579265939086659519456026010934235486092666521696339321330255049429774346238971374404958577290204872335356000154889439484506475481830445612931891870299857827237968905080203988917718676860645066649200103565207004721802819995565396025588370245500616366911712497764349310240806452601769153071440139102045528676739191227885582823222524158576623402630306933866095475747814303380247037561964030756486083407912329891124656953950843133732407715983810480870029345063610877493483532642714697930993965196933355773314290679827522868275654842491850527037572812962142550654891069842295355433252638976372957273812518004875481532349994360148372168482125061304314176484077233705360766986078633512434513175982649320206072052687413972566714311243015188853405013071685473123312151185348357644332609707719832411490402985787418822804102041670471241072769547060165007294042390366391839704625595258969541771817947168248595507447558301201718089588653352951828723761991374820057264334175495505402438271937804068723056600128968121477115326649741110235879200192720352903740651742525654085375507982145121833575071820030418418755325752809821068912528105638190086245503832888028241579100766967466774636451439021067629411735840452604791895681641492033551121904516960156965121452217686579995372870198504982801514501062465723092381064158068759394508169262523651647067017055860104510297380286505318740968312928613208223988532096431482914436483079518257792533058367071324625687011047269333336678731379387088869912837770561554820834855710287567275150910591812937491179930878295874453406629227149443049290517855325132956888705185929068286182088870849753150116811643363206729375484208064701979607441892746838205198603342635137027586900802229125437700247162951879515009217541502664532751421834819213388211139827743975446696645447319446611231529992428804455972784586484136415201808618661601174742473629560525089098770870462447019324207172729115785870885460502076639285162975693309864021489099538664121903112549487736986253361323886451882336290392138059702505477210099272951830624729752703579667149936889513839392313762009799526263671648619496458545276385345675632472142067807177850898152476437824864439274530050435053557648789127567957032879475764035464062119139469464209814366182386772003322681534842252037596160697211079278108819685261228364802891513712285023393961473632358638818930918302248545662871150338239586778523919278967343452548936869194785307545775538696478302759802851297348175272474194097089014606048903629086380526704422376277272482482916588151879937114429532609690213785603472993009279601990181366324343699520766558416242476600974442656598462385906879776029587479220391015578501286865464904812837869121326738277048930894661835685705901112900845315575063482176977626106395212040679568626812717855331642464713316526601668037791948124403938341405782105522319780349775172148390443511470811992867707273994316930171743517296916355054307416199639451150080607076001755205416895629667440002968802190315723718492488400793093093926459692968706627366893725476231683143479506602131582812830854295306291663452387060216833518022218322961866667133980511187496705956863674389593830056626635867246857786429374246014151863606470109564009230809753828230969764539467773730250549341461419684774599377529509061219021565416865480951301609921544628635211991282428377867928338442320555317124098639680858385777906748878746117988053188273043424511999860169789009253968689086458440707341181798427314613692256642422808609841136749956371570213261080617298881551885996457936515607557427434208929255322905987105833564617552023853690953660709657307939877193848030384321244945928321584324702350165447028534265930313843525703131642511718330195986986217794915564075819964711800908216847630338505455760328316204135236735118030518077252767616821322741421454810096560962938110991266783337988694919996190291795615470717682483808242998597989913827157645372304485555285528057284527186234073005602195015550876506770328894942164887262859169469893816662115959864110715664055450535047286215837033878922017834382611909412309622571753263630023952636676498771634836648878004206036077398411382683790497167428015054250027929513974207295887015147007814506976919218314842122123952565216772472043044513213748812064817606788837220386819648781354315770494012628593013738494228936389146941538849185362468904453548687366180639283370003302339467736463053269362429313194029499377068284434465559375294442206419035948732665287794768484784762287746338230135610122628695002413444869509264609110433739117143299758346094719339247925513774899028923789121126456610159556536629677745062750120944119880794057985391338874283091376279542332714400340556088377118587805135806232541997067296774043669723988724280512952327712056622935003028953469641310907615130637520866346525449259234519695031918934350322279283643588679669833501149270637336309966934735353494627992358306125734582355033006732299114078799509300325207904521983266800926653088080730328735395272327087430537855536163009478385394980962198711314907602409909613564262815742154847459755700036036723301441718064026043593867096958240388027189839253761251412199429280391037931348610802580912957742684839057576178137635755327733998843350723814499871589911864099832830011493015795437788660633133456246060103550606592683751139012700773957591834244874524399220303328754113377999270009628589917747261726021472663732425409476847844334407736551364462490086089471448786242074536317045856482859661560074043154386767559542530361093454406228286470848967303360325231102627485989324439836619935609261004205722149675017714778436041596486274725065416596626915366818189917160390212019603446364529174499764115378535080006354621294051719898512625579026151299282864814143142448701618371936827010012137654230412185783117835738322062228720191025693226428186012142139349130413594664335763237804921079147175413626552688664615853556132470529110602217003072817987496942260886982553320529893713709867712547159329927486905498848364398501500185695829527560440481923220280616438386252442535750157231513975657366756357684155726092832637521531493181051692843842163750207780012776135920904934037206215206868198520001318141939211744917990201083434431409066483858178836719802138810215418040050891332267448781731949132782291665354368517438825905626763318265655913691457393463376398782260959463230771799940752065779709948672580968581130753161324957045625210768932280445741879356923456624857057929129086973769509315310327584630228728415810519247576834714997246556805107046087636490228305634888226679978974876181143442559842713195396065110528010519176784589407081652057058414878945839459000772418790319497331245581049542477132317556303668666998903826135756279707540669539885389276756221571507057031535981632182105492566434418120486766012367777297843242632180026236568483394782866427247890074851664497787591084835664991629138164060301593206042361278196276344139164392498521545919307820606103518307891947231045468913898245440754749807564972318619613379957483734540201845242929205434803703831644315716194789656114167330941916224480612612097417495816806854479364984581898003034019126878475468574792032644386726625483719865312011264365576674476638992851985403956942282911457678635889610262139774951241745492625220831659625326658796605736367575420823857381251753623328991120461128160790914932242984915919985249242134161232733797782973300292504623120214237408347611973896799024974969615649484263025075885509828426416208954091172168204836575475882142180186274191337380966725408193841282045828680080390101648699886160569708414789468768587524587709448770719257655861672639564414929314084780642341552661002681712075921448242174427717533349396353133666674397234502883492838197332498922382488274619552074967002242560283903727728498561101749799069404662691412156375594607236734373296342697699841531639158539032247277572834369139866168295870858536749958334055584880898934152032880123942828499200677714303489087137028872749987172477016548733111959169154911078127181323719119971931747982092616078789752219001983009165771479065099220315361970043913956298855729115844850434510403471226940237744085620999008534409087532887926793519296261349839586548330994139040544230116549074178668323156234882779675947779632389540710838892575235465246271455538892251984243312360903716661305944197161282319001159262846539004209129093708415339552039495429612811902894934616815018095457987036987355959593144419221641280906492059394509775126890600937898143940899705251965113354188530991327310398354545176753399986995487527203773773178491031735544127039397499607676051822823396236404952182398831906612426690741054538161828863359343740525569712412752865488693446281410570465155274233032789340935831083817231343702408018046547614168888047334464958458769149859755157472766910698357650523671747062333876622230267977261487817878345939008071721872267628705566000759055968525872055387366687087940244204112886899213270127696105153881422442636251989849888432283591855140933867264595661537102544496597472997997625059366818977254382525729637696698418618163037283405412131086085459522840836241765373206408618095625432671458337962604293185136653572076248867294399553503244001284741985610093633423874336939773383117288732746354106018944674461764241579212751715663110670923589588073087929336980379142550790531157196622653184396917851673130901615176678953015120031944528733361049304848651940279659804008057519091709250303970375738758856216702719316274645211920324654832083567848631465565113840861721628236362419553449526982310854528508372342019458485729814955280879718716684026995971672245567520783432671085883380850355206113889836824238112279331413003851594981352456600441032363259550571728720615703162153923582712433824900119357982262685592811740878166429517023399826097112647913248485321524944065319879772547278953015877761332416518299604472439350921553331661252473876335253373883191666109018138249472260053524397534729351604234336600227014825273819936034737321219396375308384135253221729572481527123137228088720978639670806152102518137422489548773508821986702535926322303741461561703253384370369144939568282833458742324301512008106730653276153959220910814786493857147432374258860133622555006135618534415056233535345091878238073712263605956123241512150790375090493605253150206885870045769233602859501046313730969337441127202297165078262061467307520878699458278436862420006475206895449522848171728875507817477773493432870218787537689217283944345872169760045870857376200600472600993420757463999719187900691563566261195840347178509654120395527148486392338671981332698072590135323052642203501569202561423401117887616060841278392881259121117837286776219276807198306223766928590849334756151723556936680027286737342332202701808927256844004129779219574162483111500608727216585611000020208422931364940583011073197901701382157221918253520734994865518312869107778684161683847186659372924982211537733474717328008532447479121035182331869776105320809607972286487846972370754217797764652171337385625659913306297662583311642499493816558182996944943769181039228374379274528296269326918196329477387963223682418089406516924687646509294062985544427481322200394728642939866812933351863280767889782624041019346056648725791726755630375145333113468798279858350461097766931619814277431728068747941503389126667719025049130882137103667609880020309287473598194042796380801680597970548378936758270160360004675050435345076592164365294589610412773312023483533305435426984959111855183913924246533956565875595538255836467152422244766371421903678150372964522879212948585891579601960372920624185336499268009782224133363291642264394462174974714839146914921766468985825703799867834563119285321315439183794018611149657807235108483304749872833171385829596029331195694645508840485567264352820832158353158118113025708487374499940618955651090033193584616327112604710306449476264653871334947820057211699311702867586240642729647407613833103386521938824048818074776534565273804578458924795328714094198784841502488387432903849737061757687432109020758316465847370134113859295022606427191020887425552549631217577274507020067141349998877185657117876962013704014440044994449288449058748262563107302574355509425381301673100124988127846509625002975648577884545371906345799784078254183894768003986035723945467115989065410023876581447876880226169452083272986170302015580080898151583609957601201805418660901175377852249435159331601280179589731225612078682065217884446764918072266520345914368861953916444382712865250874436678103519152960196354257098372435569899426711797594157879288728911174715391092961092290253913952747077561319066941259119374893678205501413296179822271309760739767310564550889131940260151626153966823466045016187624750842641053607247335731519069537785310664200102135979488899874004318228404878840602167693926690630668930557429362834879649685935651922136774736102891026835231574024563269681352628124623581822384788840597655015330355031540909623080346639775861302915799563304546293888943429418036048832935360436454702770783508348488310710791663402072020023206098544540907282413279011763161281188333254440677133149093619162440333270627580175008467541867058467056483273084646810581895479026181469584172237612380169385216594354123699702236820337610982062719892834975190027482550270678888464737217389904344123395966839427901454856285435606339991694288785678676102662107756750468192790823187274285122588139476878235519156393207333117813107010236765554851219613283814553059398303872803743631917766437299369843128558523650971435795123671061839804386665152664776632168285294552839892390344664494963315468449582186159767544326683531732831147541659248533914929846287296120041083563841401392032267432707517434898238881522328382312814619054365667420769337182836805158542081478443529983540113056342060332531451762584861317197718594968536688929495263257379222296825068864971395318212948359594779207142417847272057819006606077056109692676210736275842550418597149482985013557200086754756192030096288763106219491464995358852520814541456353382387790573960828699072713012323682270557549319604268377223621158818710223823055371333880155933068312039092674952387756955832247950393294962120703131619607968176754106414731486212542350845199133567914125345542151915487510025268942716895645814523055824726874886030125399247738739424009900590209884148638743227179790299733348503900230645418139835368382800619416524987851031653311319494992867580047743092229797598506108705521009765131129602663995943850665526809303200765923067473638765132045398719896810345532003684118398906911696848377093682950105910258928818373743386399159167006950887566573048798007872052694656287542940011946288312303009586649748663062138779886004034609869336245393413005474006866984507016923500942131856034162342725002954733746256510458329858421826779477276795542141445723166264859973612882533433534402997430485187521384120172291884662175789579846586427430092136819213943417792881060041173433397003506405368725544355510814401457500837459738125216814176416891588927480281264903330008524124564578970394458381948394059220573604778293534253227359447861008869342788367033632523098546112663451640816230754139941182320116261008466933515869916080468789813937237122319105276693649501713776334154195241052165778329874205650285924135566759296799545926742774105023182160696511766126243417844626838494270675772320765562105358781649815093356579614467314622231135160506217656096809810673654887766314321299578184068208289244606550831160256106273294192964678135232125403783620671611563511889795735989673673030652526101967130877802754341565776897078010920947499771979211880527161553166968107197729519449814065838193268469353522325071425987280204163235872589296984839206820229690643013916825996908083397118595480611117651140021957915251909942463027691207528932490549996413329237077219614170330360308530851227442938862847754517919183376239689425874673887041518816236457104293032920379685928163981113277531888142063236222625506347681792477848187364789370702012202927476815813826789117945958450890602959280561787790135796865275945688772836212597122718706163300439260658136285534467062393239942560254275076429930009871747458552089373826628471275533730219760228714970126997737040769543555044032716947442059336669387006567616031890522936771473396974782527601455541108201675041084253646502232921340624770828453954869508110307447548142051371487951996501482335578929955216774400723676571395624115706017393444790136884497199200523294835269384106634009056248467501457435572719858815398374872292787861340985986415823343022764479675049560758213595624053584765703889044506252940910170632555475866317246161572813825796643095430311061413215419457261610418893341841810874900445658968239421678129645540180142522393921751275911705344805738269214436319518769047138655548100374374545069389443957573006152351220868433351667757289110749838694973322015473981385309170225830546297032089821028902235497089964770106647023641307158611491764269206058987321239224802869779458986964112440398525439956935109298573674253382431766265407807121225580927580121795833030413985800958216994948145633813345397377912741156732473198385827232732836812385937919042108007706081983018696692082623059007943378827812312069472025492124720479548839345291134308476166253209908582235688980522096682945486251189569796880867605000781889298091040743880695381603627250401720325699731581591134349797560671994597305351311208038551676049609924435650096377302633199644888872097177721783111140473924869733786587950190854371910495597044057197083498114581008502788954282624371894920910454355842647422210233302929450450901888560394267904098427812299164781110706502638855968145464120973723984830790622263750855052331397574128884346871425314851279027936063467482078353751735505596628063166266896669314004463539615081664936952650887019866944752818111967572341349032244551880079601641991913497471787297401513884066028006440766579968622743923657724073307669896315791639329405529070177979649415878000972450762416737731797401863496831468330466278864295016152359473600613573914056854624007979233320276637396272444269011650732464354381625243632195904497240656645583466158646423200425472469300698775508864609414980941428837368926327355323536043028696759668063818840685959188538820081987991412219559491029799445509909885232456291931585897862201575676659441663549757321944450447589444408471093430723634831041629194033983393389612853884280428984927366855341172429395817798822712333352496819921581587795819290314889521936162063377387379710156482219862032675881319733871208570260020463309791107753552864326112238031464444124985859799578121051925495993172400863520596973435606862516085567455050357494348022161128225546901585980565421010923587545789100474005888901031227047280020681160200857220754348144532319599984333423076754973894075855625659469159870083610449641488336210538301735289723650798278738704636801444015736815968479483264248807242942030425368089345132288724107445450714495439049530199363232777222244534818909148334795535870187104458158978083060746287164092349720262590816584086064545140708138210303301347803863891378800232341377430531417062157306624950567494031920333885643543307190583972879353503036338663571385183676256421002438348069201483346181691290598595850617660217211093174296085951884639960784563141785722334656035255298841200172719165764060432252391051006209816223422910231523636161570413453932278656230087257116705140120611654628053377956215046772062735602243202062003041399500196628331781649437551120863208629163509746214704301556999122083311586204817431877532638597469416777710798599134288365898187838830791427362493048885050213944556605835197553851307645282691882428056407957054156670219244258590544514391167118355312078109713982161390160385434605770788476429620866172778325583132080971636378847330420688498321755439088128357039621957694337327435795193251990939778002710702055243272940283437469692814252929032865623422651146893769355134113911555610237569383769984977836508621565209309513244368157134431832068141863157747135380152011934482303712028692131960196666606572533144492619230666533978936379338356254617233324702798928161375005631182614175816269446262689692717618639201331594968576043130144547845406742542571205258282584614265083333925829878919711971725356310916165325001086435040332861679672700515511048177858297569187569994856484866444570824948784629992606070936992407361251447578923884786692236126799018123563929248181478903218619204532028657262172255628697427726331687091881347793111485904710687301756757799137181795693567869708945739165205361237435225367409783144558156670114913884228655454385627825401301278629611236959016523487569607521810395455072458683126563369876103264465727796532181495682435264669935811658263305646773010725435087910956727505045613803162151378575230759195459196358257081292330304197136914291200743054860160176685790720001231388689906574280681503247204643226282215457647051386385104843859709535673462315969356019612841864560159984467515707130293269964320254946043895761155754988653099349321382562615062902562695258969443760845397402337219086156886676204466119163613368323252374880566956618304562210629980880699563014671100309589492169334956683205296705120480390763328492624218162449661207777979273716359775228981594652373082957102428941364388269829696175354667556086608995135279618261515305703745054136688327603869749488036773637111698290759399078765962154991885325100734745830528803619570709692785180522754650732631501913217614086119122912367596788156730871421257081646695728126004343204289399520192921792855328677565259105854395749823132859482561043738356985187107572449229765261389053935381733513365214110400498379163720299733439040457205231695751423595427971779491928167332879048986283165928406408083858476042577383037023417987022666489481774901537866027646581336302881627050498892671437255112474794177947781583703790269934651514191829817206718327557965106698729340804100454459818645516772449473665921994489278355823031481716297926152648501620462491634322643774449778147829884486208298316047751131429456179959789820441780304009736997077471594710562060122619133894854753878854900871758705354672804450702019393211884762255803810462165857764252645879388794338722232152239690132631773564764590596222500539299471432002262575517247828283036554867922938820783590489712100149339694150253911742988197484530258889096665591529646173161098857206956476262574450718214380079665939388253734827744087227203715849191191621568538809485063616202040755645901858722216808740782579629085947174077299995434740306843481581453547421288410395862219203589165475566034952636305747933847747259043687259701956048695730132596025710348102960850435210287116507276603841261128987558275311328169601853599298224513541173366556484890882426632779807802749747187813659603469756456859884637290311521840482305896814200618130932668258553612553125450375838851682562303301580523525320666333454108171589306328741669190425058849701042712648140776932642880554000105888604325476773996109899227516050665431506521642921319482448382531654192827955374215689851885607496136135693876602669161982590581689095467077683366134487708227675385647977223570161712226390706762882791290529140540477407913981140049317980505069150018346791158743841393854830858577353018523747689231899667856192432717439915937656700445223527851454520952844991402544494640716941944124951316693593062829365075125360635688232768686790314246659683222212659165294013289341202022892513432751067059356046250262642508375760531257294316929224140259288783024789368233199276565552780371801892737442975103655271616987896553203675893403630622290322384043289053977954447360466440181190448518872257221406253749444905735395961940469193592741949466905405930705360673658109576293548502823264713686779303818713289385311471648634512782917587826984636178577441549856223479274987997128543725803060998754197711986087523343343025411424457905280976704821901883510855041581998956748948567719616055571350166944857221299991293500593077611109033140067659829682453199580335614349416113896970616742939539918874474385475235576750718795015714908412053227696483619524774915792060161047243430416918327972330441759581057104889973824310831593375403048293297835713554453541403056716103025911937015770643211854410248350274046289144405217234366298531451689811096032850362265860624031981440565064222936707906390469664980758641970484985553384694183784771267876892954101303667859483415974381989611236634503156848947904888622280600292693803725982935518109227078619723056778384722389025287687548873882998298502713466060013814979536328076481869967801932637573837931546958061646987888372597350225543992513676035496665283457158284160375216237512820239221572729763723183299468267818142128789991086274289598877942848203625106848446762170832995168833525119213766245249700524691952436632556597187595914456608476515358322542917373246846893450722086880883756136906421308067923614929220884946821185520074602704534724900697919340217437712992155443808130496604342503018085785707380508015934945713362231914349034946957380485022945169461827811818776435696551926221292248427612369682600042772855809354955002970637419348029717367620446160651479385720508009837679612551497975210184952310560411988831064997764238722205803712863523488457942704609102059572182691107814598763366684254928719350471602607689773684468040711917988236626823619445992318632597357899755899827020556473641224854060795871187908248790831726764334928358752248326357813011713633913351174769309859705988277369316825642293652585429224512558796335186357107660106005525958187114696855229646987850984446336098540531219510556736423912737176375086614796598180304954955792026511691638816696527339352508973373149722403559417664589549789875615298879831655896688053654181105206373263149297573237586288076266836792521364330655447298001897429358258459000430094387239357197835979068005948319253473911507249266304518357113001557037064458421738371509952988147495908979538808904463006207195915355168606376625748076009343503556722951464383710172943912446643072528684503937160318085272784814556082172075223729064029805269667426344389362265042708353834200180709454012063552100273499834876845664846776623247974874992556865544529536349828062481717190482301498041621319227937229500583048463503141621324228501598158181620800551159277247997576704289035902397005709857029986159895896685169275518637552241990793026068931078967205720611952944781921270536302875993663978318157606882868531047223786624412793403700816050972980905173609694730868885530608289163687448190127544853775411220294299221151547242959225571512484955235312331801314441493978433413183694520863863355534298558965710769802128190054597886452299422243828119284670711630353772428295710966291888562466445542886289479352100466992087393922616158337147021275078691174638618229449770038749080921839009779241580574691513643797692983997060404284046264523600603984955709298996934658715867621232343450650974883824980389691497572978020748212039629139615960214991954427395062890797494112125541464536768729448012527456031444793085920539133387827642364221610046971668734788398101783257288486326002203856451999989787273005630259953378025010623523385917253412899440883788488948665914223200065248709108005856269313522266856074849424381312570267042566857792021055579702954591659027102516335240569311356746252965819448594473843123165693622623372534821586700847470720144584852512879430777631178724760362549344414491223615507827829093658907782554174340135435798545610546114559208644825520484811858951308420897253396449903628278499650766832577587403012423751058776260658710970642392613648562964886271503769884955923038857157768393124532016563187674443082817011340249840652209590926758160843483346262061685095886772189222874151586475472070615565952451012886645860540460316969260141576026504937935616225878181591124776483774039953255205918684118266460560716973305162253457266556428486222394116698545890910147203603363718927702588295729863858261981284692438118183386439335569626684063400841581040190094584954936679283476482713063587812358058516696370404512597043388495129755629482714923515490131255795172384930067105280735208389197910036217508834750073661756964613104335601503534730606032301010019003052765413559690122622637854407080171613215872839903197778777467894978183442577493695771283647587169238179154556552476922053070326695617609688994541064823851948456853707676855827158868365056378029401680882129048976667433582707735667457473591367638156054280079985771485119049482453284570769499488032436121406306674458856234519535991819190869796984512730074781074758888121761340105796835733547660805171877869592108908185725759868954813819356256227617200281572459084437683070023280154333254950762404616861755303535434552021066341046790580268488071661699644163566851038689314916805819385296693888340443042368141771894733868315811799113038980858601666766805225529735149934759241220461732634037311054732707878290558089463386218701727333599007850704898219077826026143610484919569251577188645857699293650251034044852347021873533812726770507840261168714612736343791400007882045078367267081721513870510541048873709611193792903133660329792487509696574462543622690067602778440312870206272990958798288588335287474809791989239547788277884098927607099541474439104180510382846761172072459143475276018678351698796387302255560124961506010679573347365275704039035195534639772929746965178271045133591340030718480345064127488214464504344368218180091395634903095215298496125301648087437384560625291165703350272210118602811607223186868534408865250293015648334394618141375116955234977505898575446062741369576289333567304297920692643418319302180720056930550704172912405398813385847020482385389706723718349641880826095923197646345454712299542061228157802011617341339668290382370381413909582771781436275186461993168557170679836605983011083785182180794660818057862892095188771972357569402171714016193965662481889994785051389640596599073230964465017209375513643123981372871072305418290221831182032231472407041629594410963084450621578772557785592137404347455707644438343478825337045453646582190358280982800887555123356730654732152823668916107123410054056658015792344634799533135047884707821329802900292861854426875422359827830994265385158470550630344308123314122574891626728480318564787501619057340699863049008771178456094989790778182500272626109562510929572479719035927288555831168579983542471150538196848924601064354878945754205595154090370531537826736028557661727558660670029430975522523385043611458792937607227255375516127437511468098369160249258170969283238058443360352681707108928360319963095728385633144159077477986338362741267829133450391054968527648923746410036738018030162255460106237830054430671001195551285352836647676123540545382060652536344507232412378970359847081880134270206244542604948595453320575498322564924533732952036268205740279708893687766970906387659434664924211091400107876745615886372053744263963851555498907855836646441697575299560088868087056933809580295843568356119805456968079524378522686800424635766597421786395805070530193011098395272246481852027479532797745836399687723653152749902249606309241571645372172878913864108885601786342278811565236831523223771855868247757574327012616766802721789017841749167321465262104392823759310616683991594496947602157081439135156674431674008289016698111578582592696512721122739869286797043805936019324659170675667203952887739550955819094007529862488679998356328308592635919587629982802502204750916317090901589807251724455355062791707455198324046559229098780272816227421355620032757502832933296563395813096132307435393005911583694863370220875595745696242930127836536361417532717265460822251509648233462199350192678485161789454753183345328629580456507251851396598616692071568538272993043834596623191313209375965858386629135957016647543223042306198986461374486326833950522109651152738554922016762217942922281435685007053249650615442832392961842942317609615742451019399267468758403016569448842824163188254341721884391844733203995122265187092385489766783609648857850340996477716606692533746054157360442383314917615088053824683222596972969821955915777357736192557638128689197056599835155649363546500850924330263280817145115789973520676453591532136809840801398086348654622846804226899401316343686683002146816398686464807122418261840700564635042762985330149366456714983638166076128074016478019503776252373932651797760139493235510604048162794374797728164785381474928693010814890551175093421373254041123828647971161511229631876719548680401346649345396291227570438905811511872541731226647381907044998447862250844569751177745888501013885621983368247547916920082518313708140679546855580745779791513444142526703863042531836626255240588168759342150099353139949351252679966152417670659452519337256008155766115162811999714521442284942833118880222303321172243293533662922230580786177992031039833743653113953436821433497626124111810268418670795492844882953951420331362899599459476974567217990552432187691380842643848368527830634020656654390043319603113706508444809513467230772667268598759973100452076516119592262479426570212814933448169472204483626262366217135153534551879142243874999735086812961893338401602821788848387107031179423177489885331618335937908779548016036047336568701212340255731063619328027182670451851103287104088061608894107766190577742660946043369662099025442777783954810355880514938263216021455989711127561024680805844488891052427224785153073989851027005009670492005517730667248764292659925221170828071654640300820685599026696284276364352349086061919010408428301543859072922127502478670512474626454657264267033190479213636747933420142778952704598244241701814637332877858809900826304545877205366611560347827507508052825977508210973322305258967059650981424146547114063731185759194085654257564275860194204447173258834768783384660499253588731346670596151058510271452057971542387743175987311349573099358289310092249485735547351683015348570331002974779115831574981206233373304018321674709012041960321086454688036729593036337251201374378267437587063393625280673863617204075442487592222017419828364322164021534039674712376683347899767021883961125902618190042860470178177504053726953545473579092528328787936254415553815829831641624832690291307309167941514782407513159796872088513132345829208927102727668449349450860730507948895675947941666049719808169518915351807439000723394947905944249502232787787916940001347230404796677342694960401845702125743482723963711877130143168920867195025114905729685828628672026134592309833374274292189593191188557127759588276324679539399285689678502244924493650926169132485823567186893609769975639161066014782129790542236396528454927721466192680758122106874596590118585903268789607550772432183013597587140583185300978406328019703773113037813466993107052678691009800437503671230723234474382241855981203084480409555242983268461981769060101990921885167508103829258000101957953341005208507831192839906521423779134982526488445036346633840019093313044312396504921377239006060764279030893693208960971838126331034462498562074754589152331793120657089945167284800106088418694996009189075772097331966827173876552847103950107401816811636121757284678873407128014649751777494298197468858363329435551333278234112098639574308501019306348902164626720740322987377709587339212125823454878966959821014537959275965563919119705000826207271851232075788531396033026719623604252054670838167221325265730618810397132344069739891196123514688840992151670977894868447625697744033568770645568079651056166099900543033566758123582470379182708740725928771277714289310826196982981966597569303830142265028554589896047825982201156003747361328601387159544360513624739533461792192565418543694613985045592132174179990764498912268507049952271097076289384363529421184378888878437211088841361626862364937275740010339809402363030921422560863547242118057174955016420475302632275177085776659201721600033148035647399699421356794945427992309086004586538123935259279576474384788143724453056160918439135400797323631074476493700556483193674047236071921902864610287363068049904117196195802331705949696255414655475727863836666772233708212812114559895422797018508334547978024080405418436720736068027183417441653828811808163224837055061862794722535179227513477321694149374616096846575006606682263501778268599561963352123813180788600470570963476196754274541015764215784932098070203236406366983181661790040161825764936705011490030078144790392145302915128442450037888798503404654535859946532721192215037281491931549134796982064108144980040902239044787609634272481515281260265191222486463165084709638017375656782318266767563008328320801497249790594607678493778143037725521591105123624611085059498033230236161842773674854607550242699515065233035507583401446575832489444800547086321478599709318598789079058019252129000029991331205051539888064159699803200584170575752050939491888606359549745685429483285819750943579992715712981311686013963147887512619238251693736351675934171890972803309548864416957761094117616503016598731627531111353224550514358469306397835558926370876710811067000173614625442839167019431740385842995140131996468221505115041848247932830243783533972139241563925686316410560585316783053986613628212991457440877600448154697146405848202822165618475297051417392862963496864992808895057103487010989187547218889407616820276637634893908567145881685022670686033307940867172064856507821369158247030818249460917964708431527264389186417531289205954091080681009505849815814919455225369165770419104027898439540557535801826248462782570917421941640476819984234401666806155782451384264026566681066939610906837235390355658818567078017247855994314819050222130700092574487589605927554645689540329131576187909821052262748973710279303410771450831541583781821250957448808419689448087805772758757996288883802774612513340529329259533017258009759214974906156232205197619233645667331860517589698112936899017153427358047677182172418047538851515257115630685955236625083067471401394459721802597122097289129617326361242434954711138652003273015328837055025678654788473478578610094822807589661945444405061930512225264024471654926664025297711771842951345079772237617738759487942918560890989043760914887870713788146801591786677251054037624496361035832975060615128506049639523804132912601344579881813976639900616299152979414352944403020601989282745561051697720272201837848806320958694629993735718324177601335820901510486656164979850997897255992979604144819673257866528598888174932945161431248050455911943756210661299950215647695111964038806396806904703254386211424165429415270860572205984276209059229678884731184725091918635365563875053557555123905407678420630868144587966969831536343041121792889689347870109945270028036823274175303049556686969138882354047963870276867653836484507320696326709636656013195683114653120807984168920193192106888748861642372647820304765250393332182565364992906933182361013498703353189926635627305307965489837514784708428818128403932157248144653737406164502535998940744095321227991177457050690591036176762749269378406951621948392236119157803603110359457345011056257821286720539242341110794080365251896050675044614033024140269444453641958144630372803206666462670824601844318660785066092714945784250514939833801193655756797733678423387607593780901139806573564686014752389544469675539852007176628846574021559369817671845645332708406493820078252351767555942197662306878507849808315170333090630793087403125138939347996609773772955658151893943364687444378860671953542198226795239652846896255282741507784443798561344149016026744304259962254720625253721895454548148880618750297103793784978025487769468813568143621723719664679057621510827578536360605018783457571104319935557331134230338553169520924764557475103033757304852193454567520866094512391905633965207960013093518830543525987642766399493123346812559928184167867429979898167906213283273974009557968091726215043846327696900565046107032574570061714700948362717176177969238303538961769839503658086411075287798022845402970766985260516938308473350270729508896769750405175137490483528233747120154841014129646502071355024698717396471660922529743589499859333396690549734224651087685051709373345773237679794202983623562715716778945921749574876093174198317851592242860899651471674699220784178363978803680614108953499408141771947698933434539560777300442977453922267275849818743228334319303889902361514505763066545684622083176631290474960551709642654053654862187139087841534556976644833536780322258767564066509085489257905693288658189857050484653512492685230357585728840372440448216318059059273745535514814705179322943667640683288550804127579871941139257933822159454975164030568099743521044015624437546331712403778434513912295114129828402953514116015108149397383338266394639185765948636960383031762742522602093081921174400932654410696384663285350715511226682096900574788542043597553114870867079412183744715349922119240578352653742627980078103814513453255662431289546304312602703702777240314106105012986424985016370355694373201400998830320331819527749573884066477202200708561239611975258754973993552787632388768017441769065567196952242601196191562917263147884661349632128842698861977853023758896618794529407731519113099099974776939681683328338748599665120017281273146803253652929687864158100505784721632487091856620176218958978855577691426688965612653860418293815692579757580737776591434944773282545583626231781616596252877882933154320471527240044793451788681455338161803532110138414331479982057275301993094721128914414297420614396745273292070502401742268880518231103030714013469087381954670829123908090584894880902724856134900192933176348939276012559007323964757313371030236187769461149063848796467659083041331047943552549253268693635078872904878988008125566522767154093957259069951752648835500717014446327379441390963669985395063171052755190227216644237097699295048980768404539270341511768004969866425601874673896746198115191639273739273179279931817501514938073021902282587252118719292630841107363158329685973778711142616657927750199357815923378427146220145031094590853300158335942457092932265577234623085149239329483538474931365793836774172862813892807834242478216625817898576360240373639547790433352974285665796112687136518335916841914678741174246870986629740603430904880228859113682626964379580906762371250811880499590274011729891661067564772855180767693426145683472488022689774149426009177681548682088172321095112111778307643259202039291766280052573624829245601770872318284292338880394671091158912434297920379004162824250587037105096231668008083596096276821368715372014957004989059299428638601878949704087679677296928916713437362784915738422694734214388169495337951194828407112884457570151810579983978719015340419267920288040371226670668500365194076806517637186395588075818849247867887927632200420511307499167018992130567351501545416194389854096557100404497243574598582144712683802066555996329030469059257745456411998018068210755092719564841483794833007092741086952522724390824702364675999332503708960200547847041218264017940801106307903209449892864339643296457273000836542077294584898519902619588928449056569425480445793593089484991312781675767666572588624790021878866739114238183236767081034201889113643302151142042876625835911544932752023095079201769579577037911122033207491000305030425531893198514969765588886350478189877114647640073640609872172331246623718143045737613730077631703195353146247821786413504494683338486265546400223358319846091994655219874560646748601952403915395334621751048157685984868280439652121834299820625495393649832457922073365509619574894605237673747355594854901684352476599633762672581392850569355077346971673528469125218325942972107849730425476049382522356708614458646508517027927978038697255285774365801833983836669614816132405623036682001428158640389778839850396152130203493223911279916181047485491921337947419079801875469605003381280161961947009582757220120519913680041762006799570969206709965368670450393586123143033996007235797228651709727197019088359135065925282132719076586199650968881522195836402957597835900226680697877863883974156470189443203255055202374173829090059374628781443507791256068890414326903043706166745327905585737146805119855679845685660823030863316151415954164787195240068738846164236202736093418795882490823502397072213500456132582681717249358793612729455999007036709243972043450364355741056217042788105483986107830108041750962664190219591899886062186587434378939205081750402244397956521076846967238789564324929347236503223793451875761205027913303106531479474696607654094289051579206657508725171239537814194842070721033035088522193374022380462313361945921410095773026486009491834455071273521635932284646705510206705642011045631756574993023418953582647177450290628033927109237310148941996819798648162245035630188723607508477241610917779788502139698336590717896876517227264861901154833691751541412591683935940630782260031706460659780929719466928694851584029286863224531556150662232195695703125143884786680166868703541001773417949896091007700650000914754296790588977214442346605148894466770689396851268799473217427591310907876673933232120197901982812550460908268115699859653438790568971508470167015946909139651415073683300720760355884316191878496353084025825611321614055943510978406970775736939846144777659347127588938133873603580745642067055358664623381975708757871215331475484361362459644656707156954592139997334991142225987231915291670460064912550659870641125483563979732169812810580606421406420623798958276785712129700473639757312819774899213951502697557400337265447229538680238653353970080600983400739506300075401271958463983592780669660630895298338651211700315867147547693484227849784817154579945625177352660189291100938318705970176329778371480774524884629745078557819502439082340699068052530583549980963815855226316617326180605351197723985592134894985065389342560865290688600982764434420875543481897599752690302802887567386165481950250702956272194721577716293652743054793209330129281534931242656653029245919196761340016885646988863187833703314075979363451519216099636459746615174426002810020906626859694417863545697190947148838983091871430568909877151580765478986698529655288180808413121301420257752157074721588379601672873082707004073937947383123171831643730494051727397598226399449061799673104097214604393206418466408779469343006800461469069057626227663127906250787118696717461667038263866615428285481787562649127558328052803438966900787486061750188262117483098110720722729415998241662315755347252081295756591707804555499824376907138768997835311035773371947355680556017003448688126123697465096992308225814268457572521189021325229608578765914796697422919451517904589744992034463304664217156251419827965817160120974331513192826406997437555984900737389368327128827383212517691583484454843276080388558119162587884433149688962441216167722974261832563080787060194315078677427570000152471471811808019264362687657569673016573254783347056245367457778144124099017859950385412108733504018900794990622937361911152879266048137960011350898874537147496128828976535046452440214666624821946125072788839747410823617501772771474975592601541577186864826262869538552994143536704611947616894193122852307415380917677644171545000244129049607991254246788773726801977703999163139439419735507074743869107095935378134039063723821395855507276136039494920735342062674562964937960012550218960778356181489180104550078549958921689265356112852856711533409879732839413732698419586417067522776894177976201347150109648087107654919439255683638352924212456353300631571505905508357435765532484718557577707648048091584614665541920518702648963033369586060404783692468298183622694408840679220303466819913701045043129715632825202062903178607327468584528006018148403074187554133990527387318038290684754280428429348583025833348049030119798481717453387148332957291667502645655487168860208841744425740300198916867055158310124472320282352462614948941217840164328130270383129669872303007525940389797724644073443961560158349583068655473152002673274239139048295820353862448989972788793200603200384693702381863315741799413648707560555146994511463277599152675797919302807331670999084994557465072937479418906439673936210164151132002111319258936204124354781451859924533374256110872556510159908962454314677653369304626659023516335823399228649433700513856268728586024347404672638227085440733070134069036460188783165180246050575700378386043079403045584134717040887694405787998439159027650741966587782949135814469869562586281317190680252626308294590492460162517725680767845349384356781995097309891933752386356054947876513424143519772662185583977199002206694457850062066192529104599394241983803918183615121537169139589991667404708073123860061923983434917713204214852137961724593098491302122327062499018790623304854606379427214046491407136064988164652707685437802298335508556017194040377234409928912033838318726890152431330516172524892200468097364840186897665955793870333420014080094998079109597584326152065301860952133284314139790083097576210278857587628982345143847504306981051751465696550778388654911434940969577813436946858923230408537661112819862149354305234142605923457430128069209859343098806995408481472917531283172795698905124382718036891917033070924201736494561940800149473764795471579789376067335932057264922077097183487459550820556968381571904489475797821911275846428309103148083112216601651880100177502316247620359791404119935014353134221843698299656352865360732287592018646858865224138351359743456747137462497465440432466909858723175421890392715934790061880495966158257577525330632488517835576933734807129677925592796707475928779215502025575765718839408340119157058770007283244188665080685408056345613126025234497771103257366730537737964759336597775804675383179793273239129083010691253110822558218261811293785335993619417517749363809947120211840927578167284725124243500834992409557735689893477438280759311593886073982402149501979648859871862295290225884794011795413476878860655629176206705323053832382328956278579906047344318277359541391058800082623000395754718101008947686060112555144176897952797701858321628798241997280342976782580284076702567409369912748016823093984676694119951943610791811937685323751317558814799051789298222818873902095779488560968154524796155607050223723585154429147539039485247876081029436543610389510356825913924006097271985599198341175809016242755013380049827372637639052786129734031905256629107011849337808439193503307433776755859538694603582987406904650926358012984431167212275536737654379134148260171975696473601838085813616072759459746796566717619574981474972679344016959070126054412043365981634168941083390576438927200454094522286910272880004418935020038126196424760274468582104654838545738205905326085476625104203508879865854808593195233170060671000013736877239748173897831949333996287989243992908943751777904290759705248023690602569364973522696588225214165721104515337946788192078952989508950717498603774683900729993445632846361230711061167266838406435445740652528760574607106565608080487718785175357269997368331165317667241729249977726738476421647268127058542962967687150328263767465251713531465773777046431971112575842695723010862259247074193143373108153097194160540426687563931172048741530864512795241558076903514767435215757916600661781409145339625059756649400631648990715031439692300428674328340263318816355622490766078124078668721002217897197468818698088074504484397171788996648799550756139473807648959749272746993521219693439175298223211761758303619740737105255320373920457482601129847837431893991801443699142590116729152578158899066028446989775076874884291361253923022163983708829391598278766807934730697109059737921602523270066006432399711563842258035542210620989569146119695373584198704237976749473188267188893074723116714158142731816958687562266299213984619166427707830416959808730691628711276610201394059565963423961191014167053791926818668309490311127514788946727653061634712369670543607434387812923002171322883466119928217669255090733807292829061946382414754916924230545643285382873421792495069934737898789900445059096394046134711964104484330099777973512453502924892604185791572340569596197632110371350726313545042165319811486213309610693681922764902443960449611227227042026775021262850359141115864303752820994951540440596790909008480270655705003982849999253321293148286735652484715187441797907127655729411499202728151726174883793627907676703169474145177419632309822277128961547974909814071648489226973127249794229919880782133171893880678240422849116073160606421793358190644186353422794145588726951163367561391736987911387185439503657901148539688024492282856575821517691380359023527202864935500508907804546135146885016380373933273495524847687632710792744818578057246184597953980520876097881731225830183327212750434493865747654079664406692589633380670471329169095518439328625588751735886881465679208363535972322486434164200709869312101441978916332381476335886115130538754585091886259709580372608446556191888250156121655086525156862082796039767220110346696757522813957952985587462600532306898572175302506290039033470690664423545670343873003001135674091141974428453173915328500499811062445900583159137293745529851644166500580614674744863992733451871110752244678044384456667841265272866365261214213546252056686766507503811732024988448210238825574446171399373685756723729134647847357735287614882584265049017688397678512397483042454927452532890296958066948198577821426009690058234485710994265169426743227509857381418991825362837552461564187784741698470906363307089862195664264342951034045148971894008433320027958250239106964527812745596130829059764790700128532033668833053895492631127317991233155966959286311521850957964529450825411721168938091256958333446924831389385642300921860524552208065862087288167435074067633540615210154237981711867559257224586714734787567953657051789057386441869086563548196109359630958798792239052625374192427421819139148074738694011149534443168870598245122526832168226359186368029048744588241893971817167701192423766522276912700474539407935598994011397981175080399475487991262148753026646793640409433973379929108006141502721816919386549841701999546499170678934569942527515029505633925543770015546169779732395579171196304314778682440791752647158083317101664386482228750262710315830189997360440842686455806708957813294139409197465938767970210948033608221730087879142023817974366507419434097724934316799130110855073786399352369066545210923884578757235387140766646032672583460486703382907116775721347223638063084953989575101845718443799254078073010694737593775047867636221102426365715261326491447888500495315573097329416609060287884811902957372702192037139715553532757416022866955674119978759206981183802954101820939756542607598754210130079972675062746591834552547691159689632360193390396423886574177107266910653891656309794862868677543549837184099167511086660068900397688322119947744134421012394681778936535075478772923730278936845553111172381635904720496593953529820228182415639001612467616049672460759283159559770906806373620169571212041009971806561000681799019481472040757758315598233933443704829598624638246089791376833760121476682962128926358985478895833579461197105491764727918833646897134725712329337750512892752231812663048964724252182653951686292077752931520719440787672127586185052373071142983923542112876083012904010674635242506360964517914714186807609708656745373239422151142225571638557021853423743825255274265949784433942152826750436975325970333244575958399452504033759536092131239071791292515790875537975115629682787441852780890009178634168313682874688247497920366966122993226226879496946606402483524354142769689185538952014591285598362179262654940198003288976282614903679587854784666055071578624560318964555506935806642928011907181171019347442657294422394501456133023576059263799928030265959785936276646738942460071564154824068157845792493017311056133888038766066067669768538444954188562947318411045979567377675650775096130214821221517734463758535764253406646112724874571948354237133793421756949260111934473387206097778899347804616061578649810275626011273319013254986997696984928058827475753701951996317566239288842768329786261098140062343385364884879993604608885409615248373659019920560045656823774795749798395075423625743595965306860877968984362740413998071681046070828174591971295636627282120139915343981819181143781590741829290889502283516323841405881093219563229160765629706194871915345575268556559618879621320520301460588673529439289535151921697620399303366988459651044561553836891475151336924002467403419545331214764853251053511460973609838336883420358426975278946697002062915151609835116752158971215046647441912967162564501858485041985607769482972069140497688963027530642703236330060367504830143489893059336765509607124697408678861113389576305545749413238323014769923249522295225685809254258767401888042543132798523837071406444828288016705993369371445032749424043530569226861390471779838864176618895242878775437780991064568061097646061088841530065501195774654932707613465799620582881506613986639773215300587270712919794956955636989014185336496111894152463018684252956093928744452923322830459404352146610987408965473129546832418607936879589693055544067727615767971879724760493275340187455642149080608696168975741824624777416884414242887729734594873009352642604722979505585272054763830597724933951671366452696713723281995488877672584930937014380031859393888834458988834068582825292789520514783475360322064435724806735166532518585974805405948938945060290107044347290516734490408446411510955954897964037171368759230305583662895652545349854986977705042766986012986491019129315029472232457856780970574958540976173093469048513958168909017646199821393863185142211344610982044358292503197932758055527713174976616388469743989814679620427236057590549269672198446549224589341252837448884374822385941772411799163782436546953500349417356325196118902585960900462734316336916958222457964714706714611116652435583163914895658569913675914751821007669690163786831383220138662658998474457607213723864421783772186977159120856927009992794054111638733370242395828518513812749403138872025263680032959284489162378310270087297770033020632590197115481027846623230150348710863095952256577189282392676027746435317632787305712060729603180917070519549191522228681138295212236540172557179765385585751977907011521105081749058412697014982004708381721203063829687027857918401723204662035644050013360203014186340540280768018601527087121492306874608135247766927392467692762465980544690291188696205480187887135872698099108145491085452071232686445971626059626563998494351526744952761264315376072635347962582312229334017121384479870936756536063989663764822319268515633795417311095429496256582289532989474032908916958495472423637050560078337615801046661086837744497083284479696430228377909767244489738619363629594759878886686981472732858681549749852183971849761176371389780749314396616463446022295486935114781462570295245094977880208335747271760377643587118715410610376670121283419846346381660791296418098222101332315855920738275973159221345989563762451614160340941940901139393726925646553240359029975162170215028764091026691998148862047449257307182950338416294224599574059555736941806740122355530566793453838876887695749972437897798757179304345124164784490658370058423312484254249041518376140183822440566599081577661992737618252789861019094859436116037854026831305391248286032426738282064079605964094761193794782351917281232593782352825952249350307572254059070135989974479692146006529191702886868630258799050271065345627034316237880516806775434573431457254284507348346811691233804743461842540156429937312299934145690904355272929295721641580498931837137688851951912470105041236823809403088097836315613124595093970742610293338512949735267706605789213716685109587996176888854738691367475220353639705452662266052858869169695634325512979137707827907387281124539231986139825579659387341656458827393318787968126585291245555604487039796234921535033249734514433794265920116895271861040598298380737550936630486584901684407473524203249269269518884526266677731830380330873679952990192702026849571433153957382383621400830643858479687998757479173580883647358075120406458313718235233523482573444715858468565135043336453799653566804301099847886216013860927745064476356877726996503043075770911539852709247839879012947453888351776088387716617917309059492887209366381851970846078049631132342366688367514967427078531686855322057984572391697262172824475061734095047411933054808584744353359297403495895538562487978185709989919027292790096139597394203283672786877209334717181723618057405405428671747550096185248946343562149174532516814537549022287654841556412266979696377103594169572944971668488822061674940524353596258692093339722141678863579942795262641938802453647694840572509440963325896836525831530114799901098941540565260944910662243422273098143048028270701100903742851703193470815697138413081248404524613418885192782721652520626528718337906398778829968801002801154313105593146255333231014073636411065133810597675369097066654054925174757455535478498343665460464077324074836112111273358182514463890853113635476426517728912911416220316368209054677292892438673992467359712526527572044630219269624775544290839680283943967287743770078022859393815322423253156725360768187575170345715230203278278647554523509450037573315597316398298150306823536353974709002981931874475295987981911530728164296348771159180481001359566227826171010986303872119705199956643863839774891770366147335647538611899236376662433210947822536351695888339956144040978049796801508837686061928127756148269511492016316133448462119222133400626929699905766226515809718559012997343223456561798184959533085236159122185263985584533379365238371751420434608598490598458063784805210145686676163947582701972113287925002624148346227882128222070815788042693718487957186697373592160217262505848411226360372688206837274375105739293723464812952079829070987146126202541037240323578878195324853721471411791449182749618586316337496995148329379746880105505547582005375275221604600846130257320060164526668872215370682117892711783137520535256607957466507934977024738401822011461945477490768455334272300164760870829721542343233502589763961641306946386033972966375612778342813749899714261933174871001714301236477050504922403715713540616205690157021609034506293969151979497138378219193475614874420286525181466362007333270859207853854357319377980318681961317042071423594099138263568740458354764301322695078995420966494544627906555456748803870894652706486529750102052511168313261749500220013353719534609934589065171080515118982348067527089102541332911012955891493757576025762464143460268024237470338632693796368274971819155468207377698077209082998662298733184792471773300739355015740863479579775756164194238394469261955782522545493294314663199656673621954515545053241771628654421599668534731793897632173274793474839316951675864550491890466539047808964409992361117001102979121291906957125857681308064785485161704283629315609662711980315253195403606310250465197530207294188566069634696630894621995360325051223713633533508598140185840925935110125275209660998203440002964955412525391634522472701679706088927589992640749469392896403595025142135604020374125045651529782896173222656839044517682484243117403286677890473077221793653236789421297481033037824103790459687777810641042147723006308740492021936746031309105610341165264859365914116647326584285494834397987647957010694422212040417775042680287135428052770231519152364546787617361052850763678169289896288794219153742680388396593127115622144278745675950439089616985707835632414041625762079302016680483394625650610862829937322567074190255482062706760483931683021303325354374110066503554560495781757584616232084420142443186882867759402906951645627300161097091742087294979865098731576169453357244228953905906704626270512625413464911568297019187156516148473128797194696338895066646835971096980455204329295941133410969635491114602789606887699720674040771043471383410595764958399531890325850173592483031194298639012120592884975084893444539866718052173039242457373934023011118336515737124398432265183246668891783039831027612775900627238043122088599391210083171190909346891600172408655180362571471319494699612640504409989653546137330754620142379309480011141279242028640776377919503677683320263395133148765421552765039425611240789595907754366552307304223585082662124485631134674034699670515190906316852305619422507779432822524316915163593473566694004708938617120220814504076366751825630801055427157171292147017042384543111528919846481978711407061353112455746250406280816466558974323331206524589379220802266478038566142176383962218480890003939495126701573016978680567258296019652701423902600744961603336802046045794562193567197825955757835159998930131504761226389213276759183936867743152437525408165680018861640721919075638217098500572931219011794176672504976101030116577310544171511640468656935250740814527119937041918000909422899785958290322832527966724910203633235829117824101984492944336024380886127331658747583596479736900615043747111817987551008140235413668283292529398158819218069299772466682622705976054838136841623746741736356069733636980492619911448846795342137697864098053189269100083058621770448808668480831115546145095509127099918556474979459543781784397788575184792089915905756840784860517797518711474026547279621480802235280474653969215101503215822805343158033778534710452881788508993702817750313662185768927533978136162571325404629439754151451281318048961674884221459690793155320164476559554650458931555907804649579137378220678692513128082853648856630101997087426972603954552650624683696391424667221047493180660281223321052587672311624422839021041667300189962844292058342484198002969388161118641545639233921153069031768266075522483788663326979676875977980325396128414827812233769591562959242193050667161983101605169614644028002786877238106802583963455740277350005293899947249612836013993470156911375001643594158269243316670235247463280284382067511969186008114448005711814354384732580462583313096661796491113993854247094688963212190601698799652282814818007549532458625325458785108874165970762946980224343039269706375050938514626462079187998312468415615801820699232371546139669906548523941744771064458784552361505715313269690651191877546654371479598142672369798266317792177907755917627329184525897343631672600590040306481061072818204775128079262491793203266160741342903158269404591899510070840240272094650628596101391241935076054833579115484262254998423990141331577782945717432883830973938822531156272079835726913374601069014990397439150836138305477551786667053355268003640284153088034906202088508756010060206728727807158854746229588116467132496885380300014322949678821242144934831051727451375254936031305924558694436563185305444577035877881246055795667776169262522524033490861438295121400066864612978612734032261470560669172060490757968859483120600629476342170327460012823872262209533987074103340252178938184181720486558275277060723866096886525702842694524827384579183474863929004370711452868336564488972262694921386009060484099904225921267521765778908520844177938003056689002166502041847939719460327031291494102893964116631941398871347104371876367954122222498080056700195624485674539916245100181793438060743467419937502794496762885959332740517157972423758295590760056895048031496016211525403426729767605753234871709326344949920464379693795042592404782359708633133609459433047517173513398308324212850288863769577248819986782720012372968239908275552679709828873779792801703081104029423412263096165016308016836146166305337934210188174067216353693085347930075708208310903413139036982975790405010601967201021142717880518339543787275875962348371929033228932458101873495239959724263930520674788655966547630968298638626783856663271327969513140664633269149803955961547617259944330320251414141401990402054600740493810505562552384795835065452820819968787869513298801035824422731923697924542238383938479700835326703441922212922895177405134530519772023532948461010563347478090845988749198058449468160568685489480614891917905037028437256491115254802590376993649926719146738407852239671272050269261460985080838326778460463361948833945013579987492958995691248884096016367868641760082629789669506218074280637971479981871905497610597788524475951232182241339381476623466928287843635875960307660305961377950278388935672831686435289210139250210700102506785839839191168914575121853612102960080232535667476217539401217974228671804554338004949301934016509404829352915476949948473245047224694733841437595349768767204596097809815344734886367058061798048451790388343912072666361114037690239588647075216864459366035405965902229746876557205677390079075367152877252447673905548293281705665445324528462616570701986212567711496980591936950553799987730550964775836682888460233884398611202930789731425617691946284421884542553590971095919675306146216764780016551733809556301975224110028407366102396036469165178662060287811837897526689501466315289615206253914436408097107554528814271168974694793702453686115099821652731139893041021621025141454439744395807978115653036584829896195133440352631264379518282082243993424263654292818813577000785278600400913626886123615012444204136334171318140941560668837743364408747191583612480244860915399332552036089491374773742651488716613934143071019304390985861305559609670259558519356119931289451925194598610514257863212313209982482474104029159381710715341278251284246173331918734503670003102547443013661543320556235104192051901439850739566713415227666932102020547171564858409057930165373161037678990272364472274546397576735312138589811867599025811802141949380086709266224618822575227368958784693727515537880039156906164299856408827862502608171294700113561592225021149848225619531104369480173664562956433156661522528684191898949043838490774600892134234209845381369387055062708775163061696850618841577768045059638795784750053825591465522000885888692684752689974249908407904748344989995337696485189446455386294444580628994709506972701435511445839589875155004980924460130140562292600157248456218524621187138944108692152411250087241085661035941965007511847520497220765608493510786255434426608889245299504947800286575873446638548674424561389546094246471148660160506836585226664273542091553548096472140511251958608404762254440837766010498715846289737757150524193229286174686723693372529907046936232398026631307418868283498008376202988149658459946501404998184817915905741385653338196866118826962699504269553047630139101477221237043661127670225584424816030800442394927423798749722302532840098477824580563098879853464894972423211731898415449533997650096691961488114696077739044611963013091745443616083059497275992972294774620909001250436395136756341483202521952173783831568256453916866601572823870690945834586741587051853266455363205260324790912174034071848045711953191596367463452249477883080911981557649936354247441007151381409716198196523382595919799624040657420859296797217726343803067921088983014656266774588757848840005840051121638649333420811029281165701257096693453507719671707493687152762153181867200940590627666008161780768145820193848950099549515816727032600006088716548948678996275580277881469023919897477531680764984942585247222856994314617443438575865059059033169690502277144850218574913104064765904458482846184305208897894668869127029421214346421614129854987964067302335761060723061453834103047226013494915743321798664830543158904652032455418210851723680864242693493788001801486280824103680701703196781871298422090832557017811942358088647753194874487274541645593156213280843138692323489908299290469999289347015424353048831211646426871213681378864568836108288759950911118740951400158917138881914868076361134667790454316934261997274425908982804659439449172180657256484779833839886901648802430183289464927462199922375284161864200469637173690289139174798550605357072308554980521303926676726755669000845356612829775261905933772036094467167481500460826614512589320757812373554521194328034695208021902135363728458493415180179191622979166446174512453818522812266131157479975152106619948423613650653162927273102598968363737490854878020249167168236813856815479006244569750419235699232682054019700319811843799931875908784513532511643960701790577153119064005038725055482097269509470380216843044327961334049778094069873472314557996236073490949832536850287292916944858975927904573202400601843130396114847708923976070432222377563761396471236447463205972645523415155926403781913420024931812291512148740669026870197560226288254579042811512042428821438172732228121860487083001536431837511485452487957971776812182291932027378998098614519208597518034634436940293211222417710877874473310507853957220256595009888426144409156690373545370575578631237608622591398187940117052840135323790195735948922110388144787116017359580433577284965427686758652331830901559015054700662605059537834425319151879009813262083370123304217459695783549480512542826068597825401816535701210278589845669392548541785162328358822510657934425079092901353751348610364221683965190079255613658064946061171312787921522208757575487861259804291307809950436393690700594460583654583497238638828231677262025476197331336874548441968688089131291580170586020565703474183011753304967791107811307462856985155686166747357940787012189510293128687193986613274032502842679487752761357862706974308382877379685590812806234262087161457200513576585966207723683921037886532855699139616188532649759548581588262537194504695503357284332111259805361538561842086152374985397703802521887914523695077180691225505404582727603867437509027116628633342902819886391857449338424538415798763167106149702935075306216646175929321761508432596811926486170065088778433146750059365946008124295376216118189869777662162073462750305391275704682940093032069450056209788319758809508590501315737183999152594778945475968853656322049496390034621012591926078093051574758350261669064589418323032249212414988317099848722373115683064033257746418870657966260041544878786822244783058621794201346895342181053082346145193416363177941000639463821008152646912050129085039926827721574162645580091219999814368736023123915251756900286516945691484368160191868300678137362214965224418745117311673207260100989569891775949358329722388613934222596869456948729536573282610728989463806774845887905827311070552935606543999907248684167259669673018775597317532122808734355029677792060329452126289700760074486841172099427902870831524069280734567511149009427507394480649437239381436554003537259772372708092628550156708059022837413513747344214901136137959167180649374070680367850877766738274791601551970628372917888623067039269950243724753045209462567658005049796503070041820960860801038771778103234920583209592281600537308843626401438424914097205461573239550998125158730592328481935408275127021197695775199682044545087104202443327585946229510648459387578424138722616372616269580260017076639317873900237250594114674796007810004417784819998310738170925588048161063861382191809216369406895012640137508902636487848306373966947780486002551483327915843025188827662263393386107212791615283453128539132808359185868801109080319366329415568719665988785988772361874245904678703229320525755038827664293234153161915803689441665826220989301176414933971637724170605417824392157665022805597123059754876642037275274958747443507775247259148596180001808862127639899149905094460994734353572668134356441216418542762607959559680174470870463685494079519359723921556234382643101707587289214345316991728798594810035277928106482193042040314182755060559038138509002508060077963007759741425591272909840879923548094017907226898423410713111639401653221876657089452083914680124533283093315068798059258404066768424936935101728623581749788985116999414551319368409091158142028812749344100594553029008476143781197069797652196880935432059058172550380133578520973274862183600230647196514475058348905815367432129476887573328105557655647948277509956243477326880201060602304325289323265897621282653467480752645876805308632761779087757208470756460624186224593651365280324340811582655323946236338337103484252959914573452563038202829168836946029529360895863031137979589568816744295834157751536455590892752189679668379857571309963250385809582397623887526304929839541008544421049598949191485617765724032244862027118575920188031780486035205999301587470605392732817138424709307256204952625795237219775951668111346268430335069636142743350882824031024572747204323758052413324286381000947885882953845922132640016705644436822049210853085224688252546096665014961095768498353038629950262687095320667370095167893866315478737556586529774343973138820723763805735568040337512377469310552938660550214083833951469839950817609277540803470885221075890171262024036954617798440067861800734109035569611324060697864205196544770873716096884172506042437180589692645336721430606877521533758190235292120923749796860429134294004172512001355639413922038552743472787824285189359179802592775417070976127707585586175882187587050718284572420684442927937833363344040946911105150347867506078599689699110052466553989525098109853009094953690227405776798134452277865014308135296049344155286526832905308094746872757010535318287859306005221286631164713823993714285365429342722058909426828579548662720245147698267453849539651729851939721945567417744732484018569174339735173292495971260490019431846045810776749856162409860462318319679333258754577605158910453256552551777273222411455719494134859230013246989387013586607287808681751208765472203974937581172865134876035269224107858977695894304228777377616146977881474392949204621310011559662119105718334311868051277161142146325999887450076802991268319291330326070842757591927276505635733911082630571816571934300220126721114827113409500414902377356580219220917222576522502774585275937475257799238167652198518593104638375723303239064245288597542633464052040604003170210585533288196875586162529816998856129872008199621383918406941775994416258562950769512633033811294167465494556774550417777877887295216537343032627003294487255193924302910797629044757805491594428047997045687605154942297310815115538795135173928897711277618416400351332083578224529534345393432190134102120560791319798112242909978664604192100283632040208278003509038620486260474521425451508918267214456911425209956685333951279605218155448131803755437836519583856831970397903946843248681683281294371441099854775206397081167495060169393469047156116320166777446504737142442105464462852767872121161198354579276794047232953630758105126558673382588410138731594296598557174049165043860762181231086657777555169433049080885169046582420247154373217452944967376784646959766349659011062771005895659560075533608391394249879047609006125595285541038257842943528620830203247875676424262574026173741692034102790232986009438428383732637770759287064782877072259318376972855920292936102470817856801349362445122922168226793894295931807608792350792059229949157870095859465411259927976181207876443668097581954694846908054427386450658103718895330550137337891176445482337103012061701920353637500241052537458223026485819248442223851818418151918164653832627254665378344707607963360298822723981517841276170373625553152872600979465740271231447585878262616626998550219437157943111202378330160985062108306461859445564433087585594989507634942526286305252308167576837653836452967456819468934781944846975786998743071837822833760218793128674408353752885124842575340541777643416109795043782399571833522620959245874888072008072667809908939433797923118600669415286434933030642446544420723191743172614072235534297206140360374805867477639124840680330889398704180366728937970154921897974268147435823250945820452943967265852255893877776254293344002125310690680423153141536328422737793569370884845805873539843016233904759704006389139700688360959713254967719781887501992589315700465786036468209554873849378436076479840347945150739845762089538093232873376347113151215230556926147246341315848846701693199138609591300830335848090898137444554755968773423475839025313161101220282895145118144886616858575175770146992099256510189351461415215554331170700150583085965269653606408307637756649215260939244545174072716653261253916120924265476062302827820273382262702273314477741065506671781346988153038576802793341471137169602768158749552296707620945432966483913682522469140084379282706258779728731173590464905240172513949708845758058684726212899913000047310188609874334115790788653796342785757259946917016475243687883934868309912873021187916899536476988238654453335253781740846559854664977411653568225405495358790290969386443128714341475803041901255421621854830786286931613081970281135916451591463668299363701816010312490241926989425981411308445685992738242444117435649759920503941941599836727851918852578672586700772131507700821819033737973339160935580155353712159277265227027299558264097122491315938113788951497740419606980599594630702613310359938242560664079893964145072281234100233425241792621163804936519246469134427823856997788765212908757525690982702194082836363750209542424448854223601907484144063155266392959973332175219890235004295679336614363515879746666135926860799184855537891768003005054870920848729990098935861921524685218366034968572965803249145836436923595169766525543932610708516276005171200639897169684501243737110263358494806957527493830472681063642043198883647038314038123930548047247051348897364855488129432573448960775684451076864657603177215292223579893429814927577163066449554038091323726518075169557182167129659372204985931450211632865227975348851656985970941508489515610782101301889926981506972208953433348042984025898764421104463356622756410589067685882622865245610849585362042372784342741579642683964181794957763647721158432171617596142031067889193259084708734243486917625072360521101868647345353550152485699210759416689360007665735278392548969298563976472124591330122767927050052923000927879197400483745172048256309453172749160286976126210716025958647250711753797761472000917937133544303285104563767788001294871541178064891783537855773638062554319523137137685313056300978929425679812843494145008894204116856546910433174043018156324134177130315398307817504873376985989477951252907287071179150897822013333175550795404780438399654587864141175409365324797183491094258425311861926591840936903384729721734421362367936574031717184926749648304127410014985238372492034217184055827119756026016995626703990432246948445133787559190589073743278843202722188300296438085512510790450519656533855634142953315165119409571733405110427637676012372704833413764734932297028280818816845091902211970316701941876964612638027585444497592701131232624299279804889664178574917884193946976417968944937312626109921401140342822719554572394283714706441019438913109541217409207582489635613613053386393326565270194258434638393568063835846184445724190098378292374917661967284422362625472998086605634973540555728886802486311461228952154058024916679746553885682888647917595597741265409122655599252074960242890235583621776460571528846949677818689996059281597020571021826377278638061829083989912983576004122125631272174648859020940421266823531397935433725035460013536769086430071272824339734928607663481350345020439865288832116590028443825390794868818833906428687669778505726691516876231737991752549297646336626051778724399980988719823771896896858981199765115652054104001351377254087525989246909755100394012802385091587813254826984451909200808076993744423569696957251839908473360919971532254040197980728464641157722599777190610926686768456759153548036709107499674789867375741669145468663082239210735217255350198848050685087396879647811098336675956751841011589887929335919079023914863728151315015972302067121400787081363134086001870220175731548984098628512441634561734478435653408233909197362930230754463431009347184129771825358647904423581046868683793608814884010588960111606548600965551610396906391544353233693154925981029136594183736802891604010093076515398382547046669120492378980026783363706347316293758614021935450613354580951677970455285808804376183465778571505589936558317390372260366837130116801222391726107906884951841114027229228545499928329417717654211225468874365603013651283102558753506873154241962936490484351931417968661379729623926982957125763132551233700532100375938660020910292091914593940713758964274528070475355403338789090353805886802712855434018222230336110819672729062208861770555191508970063732037199385011804369221098815238558825918405307221174283757085846906204990326479389312953024329445432099384059542677556655543591653035884384687891019598732378563896055055432028881552532161084486773909791205336317688836329640879855870524223738355915843608779627392509570060740279396240232184267901462672922827071687867031658298088194416120075046350185327778672691233913551353504750891037219443142222208894036190994971404668572115185974002633234968951499856779688219973587279918499875293251567450214249004121093568517860798415436868595439879207136721757343242967214135802354918755169968581735003820738018859484403929467269546201565138372973935676960288704166761481359651256632446436838709936057648531055125299861798247052643882251755548739174477539385318830278237046295807032638471652131722768905724566787644290620154691576876539137551164928625101986438846969780046301987629067539266162939475219087972153392052103267207173314971741701225914481097217968015598699476524701917022929518194324905190198225548096137989227259101467066988660277841447733553268891336304408414133966158365720434640502624577086748917077630566116602726255425642553901265702518915662563787832835381689683692801104970388289976456851414269724967996790494259740562247693161373776676968716442932494092076927052675387715299703903095247927737518223704182465719754559652975230512688164538766135292611025848837717418420460236609842485817441869966987036249940430091723291993816592950462692372482718188711818054204722302894425142534263764203149007972242257694033055469435786168976536004102128114672361485824446532535975608913275399420395805201159697263701987871059059845933890425538536280456045156091167791190288519560907367795614017983516483089645455226043418235111866407920154558237079729445117087135121807336756344862723578615460830610938919585227738395957724174199878716190801428063619442619778621791610809204120147734200286030934170668435620497233483382110065778715757479964443829920363023670366367461224034525951919286069309776381947897078773379268989256962258315828886494266307567681485269764203397626907678617106602785083775816059695647873148990037856250426184569463846141634595060838534307892695375974759052810823941818872428493270045184720383798533415537719290692167562706305908001042276109705455629925913096838656917570290342961557939393324386809564747956404281199969168895729849686521137864687819271101463639371376210605759884863214952996131604827792870900922270307291752515704133582343783797078557332596402571920021314422311352528680948335768752310995598343008908437889399507897735476366514319323502112535536025587892487464479275366589005201301251912090672314472444234557923193692487768491774079139897941389790992519827406213240744691506999519372506752006024084484982785587196985572922539573468015019875408965387630038155949227139358279302596605936836519716053661728980923011832739406694536684588561498934322082371296194494488665371285134132254141297976851879740960899527959421812535063786534906361538516411785496933630113623059748514931803340607536194537216900872038768884668292972452858547195032868774068357776984394154421545814826684737766733171859579121228300791406230552796339114922323811092198781197821789299879722547050297799779033663030211925213506639086358139866714426571484022413185532439372519613877803163144593934722768005213196023601886649865130517528055343564352304372821416223123329775647455818795105392826426813079434429479881676922029848760087860009112295214696842453810958593178565583458109523153047028169743952623432190172739167325416282451967174448794407547067167684631004327274210755505689698576241492950594574427398086300460724031889478013833991794259721823213902071988605916210403421944209967705001115471813331145726531291371004591520584115901201440889254591262819173007267525905311129124352788067375849069119938567694923108428014956102271707043043495846403604447877054582321955191697316032874322456491122143293989351344159273208209289824848983212395007119123233805153488557857004121872316424682494397392235870489551107386324245584894247072415851215914685439174939036361362944112309389210894343002205867146822439893226909199280146504831318606604576927758744325952523071871366468365116236341863107715038881954908463511381435049448372371917397784195120432879031111983218215312900469157058891156379208253727622347870802450390581655881211955139943818624355573519291800023399471904585269288090859822265267798041553777601846140445576961961270930761228551557944505425436465669655064357251184013580644824268561085568466511088208730759353411194507759373716585188271441610927567530617298233095842296358536370516841680873992811012661694087506914627567650567297443172201239908652144997735535254654052346085157712638232623568074188357258158078185542309660329648407506946171646031123307790413065050587931325375037674541049780531210223060545397316664046592994767378509910665427535900575443671237642546555453602640997613273727282542267042258464627558568959341905971754655864207384481050884628710914440400999845015205618627525092367086152858283198683049198874232313112667935179603677242387372047408267496682688221796150960525576717374033044489850570766315819216650240443186642826873461288250486071523213136443979822378261287359701421557449382779139968956024629951674692796337821088427981145203371896976632057838660069355220585272939989963183016686249085564584425207687690780938977901921718524239937586592385331022708369261607749533302743012337003521622381717848550720034849109200225131672173882241431329289041104042163206480193890454525815684765653576393866939647734352718241401542396699162084837090313944424889158657684024818576135629700704926280573032107543996124487033876398010749143105311482799897299108503803954804826306544417226545943600040000383484386147181242330585271977634974604124858571977752381236201269171374007153697980801829765536788354796085619027386215677308619431098683279924127173970008302446395897708029930520516608782887218957606067832791035335456573418883079799450090665693954839144374520872519717540281535284745791504846024683714323054183005034314442824884314874512173589943464120162146386252926459677570482563692818290052355932565673334215010706205561998184414638151300791231155946581919188052844787006079231121996120723799936480374065125909921462632635946139969596019052277991800919777493042497988117734902957897490701932172757807718364353157038598199734247416407051620461084882365550717139336385858529501700412774172435331100798865266349882908549454656314032818577787172226255308057826035908154435223168130046195159512046359267252503971904308932391947481270419033721572855078918163532310898820615963794538097115958410092505753666924986353436161781057060910676334847684343706251680826016674239055380520440352660324666840607821231552017699555472625773459636012581986278235547929747493144683217609365600298795916199526057978874232695385863339296361061364078120349522733608814463657072275147467651969462712619111074006798537059542256688287662818061967021593617787802887114348048135927491425281931650271854791416350283111178316169839132905783329037789777386290114867097630348838159958040126432843559536493749243276917141071726692144792096932212623701101754851450305265268515330322315862863503077675428454226944147423684629452683255179116461926293726595763401122670137949578525829947652413539380022612858819533345055216739756411700214810155671505576508111708948433669976216136777813934607372778445167920815991794535190238889205014009823394947409725301097936462576991640178437169856497625813688571502859739480178125005858092321366292274357991587916804199236846394695711939005140279229765522103588767246999772385204396542906632984944914704404122251147037987170488705853504744472057125018927902160509272389284150827515584473001017944322224750195997037410716660311498268775080246679472457424830775365264093450824256192734177224201473028224297142316025884835253643136864141058584283550057549497760191674786812230994624622281513909432691013049205371534399964430925274896465940960703594825998654371206373092600840432270420400804002338791601367315957401573408734187078745285474248866408927918768178268459477022596471436601733618323515924287957031754851554246104818424383560464742917043861037689933161205609816142151475850675941771121009355488387481374749918576227190536237937843426808948337353009298779733870046752100897224546827083537656115315957406761299619725963494089633420471446550911130835244565967635722102250077385753640043022866517077263615413887002347201432674275541350839357515476932700857622365614106034742958946205290795589740450470821908360120986264024709617573057413753268049430195867870005331687719126857489190973682864411157106409596051575668597731469919691410006763357582140019944191455684933005020649725867236294128632845136765643848293554534424005143291474370919246971945192261581868411399003558089504485340212391907497572761787919900832958329549600359259276288519544584834542411661566852990489572761060954211761471966953376539927666638378886187540795185110133405532718059999168935109968984200209080854578832261257871905479722736156017159271298925989136296374184769877265687421966377071204775344219721603579140729138871904113141569760909610811372493126313056505783360328043919612255057175686765931330371074136525759397116080458152880252568355190418739460451416636056700337052871437344712460631662216572127512033479277525840155289302493772039900853732249833357768523616568989617623201794007070632439206691186554880173928494788902460754904914312653689539715042128391422838303319866208358850866283164910138511772867259515435720802314850384509047614435196048917028191042568978275017908702483373698830614186369214497235022224678792941135230395831346500222749169646131904829517018547649418164034649957056013940331518454868536298118824677046594702123823190694524017817606858804663159435905119488724725751751861729445930912753194467892307541643870801385091181836142451661165079498288863069768721383200775618981904692643546773837077921474810461864265007990055690588631702335443593392207658032197422742302745233947384308232030886992953906540494537792099522895055619714919858611469019606675509874846680884905007227931757627820373512602399937134865253599183146811055798165254705816125472645508365889602556236260485950136374579389194456230024661942951043377268425768795905562842998669288455703877451703968262530325964423539279059936877206548081710966086185368955568106278994655459309803152402686368616929485622336222054539844014055827487024310811576889209283334063314793180150510102087176668384900292989557033423553521553193476620580168122192127862782279725746078644672556832580014830075303464928195931761227935485966394306200717967613916735431754951646321953620525812030709351795844418095998195671352821024868431998654823332950559541242743399758312766708661798627542631273884084202914048784990303005326798886792243432003562048358926593622913319539227247015657664860078766345994610462260725714999092867767721393740472189718574388839282099187057953008050199215758836360738532057922747923827889233150232861273083554376468477820743099370621922323508583574349570893862777895140675040631659093966618196918006588720798112455009016426235589689473731035858305050069188545730690109407844516554753190585539080276249300627616167886963638037079657644100526691418652819547976151659936795006325388160733174877685237817991886492143473962728100850308481974589150363962831816902069590273357082496212875343316634892267695040248530845229460805817958481635347202189595981242794048456347785014930615768519568714240011467752472619988801893451572464266637900025682148557091382361124927530607065188140281850703760260825048886124150594941457493937556682149550683944366274867222483576040510031937542264990296631401577605940560351686881404788224764028318869236399593249866126634856500960138353773307595260830074033613073551038698647234738335518373796890503870383254018880528081181671455318874278424353514769674643414595678980520804642094156210792947261553381625463602776355829180228052350912948700637724233977258005488520345330104293851109245510807420585159644644954906476054603284677061756514791341300673578776907834245628001192608450873182698809762118147973562327392527850882620325732798697870174650588366656873853409276421628150351446735514988804907154182271020900050478365746233791489342348516781203375894836270414242237910302905678437895460683185826494798864243515765063679844672897475896437220615243294908422149644118120630436760485039869210786425031385032816898653106643680780882551932185423364973245225951179629550517036322053001268072049076251251634674213405522365584226829614469328596971913985422998015622438438931925023381506760231619820923743743169914552879329739759168670157759048395422104589852397860046370221878666495671175759839205286848426715543745608866910750995602114691273717996119009492039733580774256805538592439120219651281560087086878880819683367604697185559491751418858500743556506350886268771683721567154738476717145658114256933524409056205988372713068596802395808635264580367011013730271860282008039893351352641134018624790966425531777268449986254039477518079703533035136598129896762510071088015109253681535460142148483191279210010387043100150171039546904458579629704931961673823038296179763043158654866026610353159516081912814965179904939590329895215482266944908065733845596720628111576180362525158367007736752480740158258192824407843002270489372651789117241061899976633512812678300447456475419921655132059907332101683781354452167733640536504272921376885804985772848713438500581929033865736961325115069689014262670240908414246271162792410101451760646316901987955043047321950060121143179268006137839051114924751947215612836602026199547854829270884861037205061590268040807583046684355885002675134385762070530741127289941887962623392590712528492850410088263744026551743675139079486082306697120174684118935382712321373473098953489211065648544593128953244236857535465729716762819474487287088920227810649725803699863830694444781566150632082267841663572878354568008663962139435197049171511396441203119144674107727363220691593990654360616152345594308103010814414800205673781941125732938056972365636717670835008043273723177551487001078417360439817519521533802229174178003052759152846425196897562349389921996985328432580445633585664015393139512946249565727656926136065812841749415995697309434664559471279700456454197289501596153650334627565982140972821422960100091570009755474761543116064460748435719743846026318754631967235521062521753534703475368197892768476501010688680260673917450918524173346236069841940385035987062701526497755974277345578945907861186434332865991206191890966930473067395751489890293977723178563591072548864524690443862846774649480708793144999061588684025784191705514731859257332225429686727887189011762994555326596908909206259328778828053647568395104672107707623717913369985594559039091806204583781512348723086442437815164919965241047201895685765412547835767037137726217668862846977261399579287007726259927690772895092261878767349647180499941860259230656259489291273813772307201874655475177967360335637879956158989973165227530606841798497943443923453251782250419138485581097461388616794912646432256769318539969020110438908826886162341147765718137419511361671172261609498682277737260913401011101569595551554321809475089931415812957630118638127875148771039657080948217046093985414190911309153711396815048556865874283984993709644232296977700189949528531545681249493566853435907583073468426442525477472698325574117715434827292269384804078734114167751008122261904297301530953691878576627092125230812769779498923803238371188673309776505862668657195122035821582254949424117845456789944175691026931507643040582923514079510560379589264749270172651904367651708881091006763720798294567600693101464175272377947260592808194297504344627706924969880918874422410085484221262920901815844877443190686777488927627769011461552863367916416182367744602030330344003847368953655150228883450651801896600975329903477067442703781405362973363527895929628900923034070390312824865147726744728126383498777437130572437982083143106699513601270365376378040893427040041481909146115965619295933320513841132725081489216457344380768808065274920140765462963181227712883039598295310432467068993074286795160910965631368274811693833264300365964208077399466597979407896236861557983632774262162080909169570274520255378928039286928478031524276963405795898628550393420229525915041532776071144767780603238088242743465954513103375784660696501317775914924773872600698752575774570940535396449550995391503680068470579437419134600195291168345396131104485695242190610379685614588600203776310524967420761073270318650950818088114256665797707067639372856171975808617665506042985476425960248034441526028056563622003398418889285746094470041658538902917652383707293841559769558460314272963925126156294532875550876980500469170645006109546762090494336261532077537729323866790371773031003152540546808385815039401943729101966976048352003586818741953863430212741327670948195165115913493085429793975985070888121914145339568175544334303310258401586456227439606374749567399084578900561531658841241151248594273127737388413956547938275807587938311430615648894382900443856157581690774588360300015609067633948054865721745519502374319328359957599135218750367117636436023956729081341591562270932056872472279356634730843899027953552893740050501462880479355300088303555958326015636823729475671495239342965840324187502532642488025009062273562527387370574756049660578041284559388917202988805947654531356976467558637897747828143286004090373335692399369419401629525137843562653865596786459404582324285045786367783983926146546024190127765965219143735367650567907771623875476398254107457737428490697663655532900109143230459807383965380709501244072346183832396555997949278328730916915746483347515212860199954877026145708280610487303755556580029879055810897864577975285692633060615339699184827150196217722668372067331376821933688575756720083170457780090345736464623798477127989047386969915204315175637110085445155055933821749504924244317534782446362138104991534404707860621950015041299168864444557226798657805797118404855523976789852061956098495628681107559406223296607213758846416933575773262584632753014874308542859745047736022689790593722244813875856331789635566929511876919588715085782528039653360568355774696488943220664723571005806503154882971773974709153528583024753735493586118086192771939166455600164542035991279883731362761831928315495853994070078641468827257829934482347135647285446941075984653897173194070192617054998293561298165776417888129023167018796838308915873272612372370484390628887803876127729834355584092833914622653324250040251204014531234811914790954735470003918132188666887164409913848190779544387433635073119327197219161942072820008385613323549167666730534091214210857012668564685960043602669600221225630618300019442244031219128126140579838911787424793287209406490592547226729728447869995582318478027896988223848873580891318550964958718135965230006784682192605885741522738623319792126726575981232364807642817315250867340476902217263691585171226197742365154551695812603961374134762563488439740717989913343228557200384937280730384973778201983299167559536887543763100512470752387295026563143867138412019730201103416852202491731397474843160256803746792913552221443794283480311285829596648361203322583565198502152281559845992436559695199592933626442377254857127606979483649406220780212888448842817339753511032088547486788555443139267687142466818146647152421726695990801112663742968004465135744362471939094815835847577795408078409675021932341907995806553641214255148316319209514106793771752352618401485242659332503967967786132349063534883223218914592923869245540653822007686941140206537351380341666693491557362008102133168267760746472806850928218683912959923943879239771610709016606064383765148216669354142842826768784660527065357076394466642303149454229239043090645982315317874298153535392654526489067285612824708289931292159382883397794755035950254339927206177787923942668205134202705440862985254747265803114538103079344152538618337890977946753752952788280131093989353577575917945162511404829999290958813289042687878072404997871382977469075582988142333849127298124783799003117405622621823191068568631372607939034446524665414585045320487216043157309559722177229643505630953896814772030202785633529502087873450918162071368337343382347216269577697276045732240371111880187364298441036182740210388428686418895448647023764925508625075958135034943952959586044121739055530250547733642872077007578745650460459508432541264245313158094918560844818588336139886539213849091932426998891845123436128819788134474957317500215783030375705540045620617197031191086335993462351755793074447121908695372792614297442834438649432952697437803539015267623444417120003095069657114484254642721144938855027343709637801148927673999482535709591878110519970959735673398913074103814767428186868246492522512137461033157634456750219057998968657606991924626850254950310642222309826756160618364628583527549663266224590365824357096603913307444417909396156160999540868094307639971330957347519567861612288697528845962860217407997629802283630078050182943023370851926371073210021104243087458030891863063741624853731758793970179329947983438738243746014183450471770254516915726152419653821803384593255034383806949983019498687569393667548528279794015762325129314733284593854584036408683551887169202225750629183814952694504073955923511441444940899372415107711287469764379777419043477351352658845241431518947821243420401363284062000048587312285815579453900659532429726834794640200431469698537401634184427672573832326422969943254921254771695393505008876333877632952190911919234531961113833626936670756350359593991001521165279644142579857644795989700469457507145262478029733454614630914700649376891716921507417405114117573951236282845960318577951442553388036165861436984484387527147075283415809470248003059476043526000345372051636778410818344634172566079811970949213169053769472444586803425944510336395137001370177171842719511545842924954831227380868330696921961457806975341839277299695687755116096506757863863663114737302750922944288516630626602866487005583232719616491719524042083138184091103253389622828152804724636193285523305105332515933460912053478924572871262499179149339090779846448694833794097732884903518746916086053430891481887921524228539675929231393198067823593241217549936144636140816932434080571659328483367164855487584018217628963362189828486797652363970616911799473501654494147053435199688345639778879708508507107334202967039919508567206289960707124371604745915795760935969197204657073368508073749077110684190650707172205630125271688373599972167871181070950646626547232592856457932879365717932772764915445882218823803239661575086760425687762497364726271294902321920113071728712319498400547038042074427964213677356939610418027593791352408877118183481657731436334011926690168982012937862792550305607095545633587513028900434863784553450433842562748099082080757428043132961141068119765526585592700243440361695814625183462949957839586087442474127798452690781232306344121006803516286744525654214841353324192682623833009949397609988241313776402113993751989667438173824198419006421295155009819808489757637195519168362003478051683085614157889446989207190568789804882337212246873373578292144853932408855347569261753699959733098748759625659742860879469953935562244110895644477637681062961637201250690199502440991089445190592747438549188298408412911877663843272331740278348452032343395097357983180807160975048854466246866024585493069840202270543507858562531150137786393941797870440070781269853119721742624442261592752537248254017080175525516244521009662995113616851955635432683520771421678444931455738175653988972916271188700215465926792175380917139217821613694503841406557861490061846414272602362628243089495341160455562118117604207369202661282295201341540986346394356808277279891749411420582434359842600413113928714952737950793943903949534544976129427562170856143085493085518146821264951196012180183057194796944881571157032056001298456044184322462077758698806694174567280564923550949120365748295712096581756746482210555916854233880563319715156934731434905804217166977022433260321229961162506143398260637995240466564467197504760460307393110952150880175800172754506928921816595017559326985477524819101371448842153995669433519976525485049432286290808607042533251570111633093442733202061701459391203754238469374169469633248860692875189683508711783283780098886548442355298754492698130382597134226387958629425745311036958060399691933411736368291801055746292612305965470685813723238648907976387376423117012567710920315422164532542991008308919946187919750395465539315731318235751994870349435858589910877465960961789743969701266025350623314470599857711492794377723345326078328257339769484104584156825864256266590301232448267751018140933826566001796845092188689595058449609484121488880653544023013957885969308370858456451917251073722306091579227224055920503213364177620625923444136951165659052476417093531351318750438867903682941051119674823194341152325508240159181329843184836969683426723595379340548365659701487524425149672712386439248900306155192041127410479023607104241942752977172775044189945901156277027085919252723978822422126593516634703700626250004116571406027347669784840954835746727707930546690877421566242559722998944114563561856954763732351898981175521373551847519215592491893430749220607690829501240430324516362368107524835817910959657818634123750556603105863595870204555949041512705608337146594771431248001678767440120898714168121682229296125731079164267149977685645661274432390603055931786017075491583654807828570897958125188964052835727918019563184213321679930813417435681768810890329027616646890414240079694976021930035597872708715788950772895724095389364157345908950076727518981741902024094131284174482273610586977290750596384479726623659519844087383716364248001186327384689472438046617823491057043081230383431955362043597179540615795816105758560051347622083794147865503628012391342583384685118896046216636360025654941652021114228414364920322298940606473157738060073713568708157806877115905246630739493955993582108121339259669533814747943352908219658734141899617213424091869816591595653938743306800431841257116317094609822893782034691084631844573398631043263147632376062319018502253137743834473170249806073824875342700603869685273927502388310613306499971435973295181549145357272685991044111179186561723695127406714850655177357921575915271119725392410060982990808086736029766084235617393209919415867774967184400428469968531949974880007767616355937247182554775620150946232475190311436935689443658268609326387503663956347163052924919410751066458169585251210556089668625792719534228686442365343464480197317233871124693912561009455533076255373176479148881833955853648629187603836229256804390518004656622680599568664936404144034194085124213548969395311400011530393613247790441426647249695606199123667349501006476257094663237745233841407941622954365053936260967400258436190998664409213921385894698372921403380130972410862739024189902237262253134228433132732507898700210682462238436517243006516789841800239045082408494929228886991842275135481651392068756689119875027606014499689528721503314772442027363785086371590594983340866799453977177331407942303346509318483377199897743195356002685204239716981645071616585802203184227804511381791873117853290945478553615321522987692195429824350973881143466218173308450019624257355416662144199799970516132002378638320431641743743443924448522145878001212356826474833081290809616759573383310648741956621026250819600900764627217476297005989525724003146546334341069950881017997378685970431232665874255504335043618409788873022753157439248928243821093135740453537257891349809035843814725639509867821814214869544611315012542851397892215879994198398098433201096150954853874509009723342474940641429002944301285547017627109933719999867996388808819766102800111543866405668916547048619017686139348454188057428903106799076782540884097778143532221558511602611218029687534451300445536684506266292139719908978817943551268836554543268757733195548665065147645406927643708817833296564640478482883785323299756439334901095470610313792039511568133727033309844757988914204267969823934258403618728675683712039053198047907676832218751824022027457489400692400220426369840120945654775860648288393479696523615765429567413206295495942029561784741888532665778511624194376808506504690808100546295991615299499617430684134619903344633121368957690681550033461318007234369169489444583545890119078775980194630479566007569432779341853553682778447602660836747751871469341991672815729327135178310483414606514302924036230255706642091965716567468842837146962498530534325741153259807274751085529584150461832393814477394337597989719045767031621706049850238446848352031347164278999054423272052386500872974074460550810934787343013349439681949174348261680975337642100819957709732757179806117088839030730405910187112708560386116520763209807099621131715682603467421655264718022486210556790013018970729517614642876327988346793720990090403541268057314359981523193223162689401657726675300946016719496927287107654850536284984683143915468357825732775084913626705804082570015532416131022852258297516887500500405615924760740256027488646083572898287574322327340038171427764014473882406861730560481567485685159279014853641305958150048020292416578780715788844920910650271753086926632111917454903110071751977851619025058357297349964701622553964950314559797662436549875870125606840006616481895653866866470826764436941521832515898085107523486718916835716212868219245523690371786799874390015435265611992809701031820397816023074300617915469510937343195981742605716234168693605785387367133835408517496500856178850896282277240436196518401162878791449960951335492465126577959389747496199026373533765885264776982086569768959160371771268726177655792935977665572928750750788247782896622233785934754120979765135443228820244757959990519240307624480479115410481041042572773996564353733177811864952285895455660835291041249743210578239776015865092828899156448477179756254166462813678225666541391983169945905141983813611226896703172208094255150340490625842978526155378146258648452629174009495302229490805051298488973712843681835136144386319340790010336834791855820113303486534836515092615839071149457611859618878350170584170477532539417598887718126669001609735449535374719981813996491147982914043395137040764431272028311079003273077659695447815019209782270705578138315528632623897032095572019523456714874826565881677743709260631421376259143204514151873784130178429450975180559462730681048882457499977441289250191853488556816302396720556264432743843009872102485039680501488077896161019182209612153236097204998794676611529808091298153118230379319787581185106979805185717503618721980176512075995408866394784368249754108448265120092641426784570158110233323061158688054279412889589045089167957116746422266250378388823523710546751275519020245172895394840147235628193168537804863328579668107765934486376057263519668280411324317029031284904259546427116819803158693171834910971732561258694224547531080366521046809388199595808592715403767482581201604809542831627443707517544128971435466335429578514312327618472225268367587160913128077748150211475473180703136890687906203295066511158978728027532351419921833583337936696382959091519534602935281928004168376045346204555559310891819832346060969366767973844261519465044603628592269803916117146412581534286626942240046361869591254999353319455030555623761683260338792032272008974042545425614785505074286854904412224361899712513389856294346765044175650103570745149614149142815602278202069487452931878857234321145825527588380884429195536459855727260081392211880661446423914351219124805809881335734017452703165304672426992860644763627274813376767710383133965940336715967182438153771767699398588258936004555811472577691879411239882610337325694304596095519286944991113037879515820960848755399461819634075213454397120883177254553193886244967734504049862270174910060223384944568793505878429554935366081282435225177269081217309405575885645267896200993713044188703577321100052905125817666783039401474154360060172662772495547092037672219874660461409881279345466690597328042448095978978057898904395939986728797577687629360527792153316185289106873459746185852592932957418628782277391176642822580660518844539202297482273186332335578383564699896933283866288914426502149807350629812722115222441817857416167595371686466459466858941591423792450535770304557133921389480392733565115372451873079702255183396830134148513903688733328220304218496269566608524350256378530477054562091737602396494677446761614845674291328300875152165862276485737104589577906314262123251917085138292042626989185694809533760177738613315331465601938385695485891572894864575374314693585609768857006317105280509413352893560397173955501418441878093451682926927334550231393403823316973429063288029324539516557617259183829788602161005279180536686832915483957072559138627052081343339099634242014799907174351629656248664902664135605164098580789160921026729938177746127611634761147900861637604672447574649854034201950568402659200747558254972795408835565986401994527031391527332823690262743134414123232771963868189270587526150030421381614959857245347639138784835774462487411846981390114304955894079816431609632110767688633391995845927855024992177970184791998999185704925866918256034244155431576949550908073201449668454130815377529959683033768577487616687459215244987100610084075884015336395952327563751612274776629931891662102863730569900557089733538754183428793015773574001829236479145234879844105322696084912472452091591506217230432416822660203754853700343688978226449455344884790947868293348056347405972372166839252676525733554900236068854436318825778098708353037700114385186732357535968290611697353864549725057553546273683369879872988242350487241920159433149266101590429939417698515562488690110649166379812067235566216044007354179356021421984265590272060468586606092221462567224999088458961301775233404489714075530553442646049110927547947255094267175438837721498479785879972302931194458628616264081720422024483875094696940652338968881205013092846282164996105377524312463870174522369788389442373811738947621586815553266791664811016111176535245437487371536987915256935086967207455635783269359767280258302076805067947647656548267936495403526656571460913583237318347644026495860828916812698149923094169487624732697021249865707449537081946871835383364077575949850274441554562037156251081643370813504099146698816521875538093499483432539150760297727638800918189494533216210790887408556810053304092287809336105623526597745691345424001149890456430294418679659539131130049960145329119779266102369140578735363216589096333670010707105515974785264363697194093589992512330643588337857660017000417686867560204424159045223172888258760366693923232708558911422424572743857447278135092032612387704372059634978387261450385716708621500966824093209411468330962838814873107244295984718567214622142121117244770094791442740914843775607684673165609310309775611637641917888357060158523077339713146815179784182370618080912525531289692714741643343302142464427123946428888650781492919284174845944211945661886961157450772331328468390600741175109158271261844265241557700643090567801876425503764950140892541210228036941729668242285842698946189892216505102713917137018915119140712085410195692707731982503546803307598572613862347485804324045141758160977875559358740953149281284713969021742269962258574934848276098864469233294804683858122055411904706192922404421487961268288444145447832746505887187926621511344904997755639124528837196264120981694553856989185213396478200439137980042831314155128422961715890975664019799972793272007159294754976396459255066271316518066030851020582532558763159970009964230724390255154757283250014732944247483731681926088035425530920579026381494028500787874470038024654844633438090082785150305466691585932036959315070574091902795616561257498748993551643495313780427648323485762325546587722446981821516460996177295250111033939944408708468526294545699516138665618260098889014241404893067004208890713929114204152744722861072311359109723451815343072482958044363080699274444342701052241436650875721265100730566620869841005234279654943040575306598905163970047489635151713073781335477547090322941475744233421995330199250629413726731343065733704934385811011066999411099722502913639634962304111021288274568883749044074663820567839252994862769799472614138760172889919537969029030352320484214921634137035750579608022543461601118462368528514148479709556301688639414559438095673648674722656081821407629072994235872186009579165153308449093344818463654251952077398860656535275077369823181933073777828276409451699644719500298366683190794021270947803352112501383043985421346104251223043099220384476249806589636950060318248866124713252310692195015688770184521679832926856332845652085682639294873007702128028281062430225240160798794857555471198646969573952194019510068744689975438633359427712935997609207006967333939238090661927536600126590859468453729464706377945189260890669724764545904605341095447715767129556126929203556517609453314391031324270900600853904705734364325827721212367012074089503202443771208553998425757524454080170915583048233546536603316107444463337355526384348588015470480092108840947016890639835043820277427155116126640859349229108243197426177148493439902723280054393060819259683685796011072452184394269666739784584594020794961621152079354712854619467330972989813034447133254487069141739361178842952760189685161159446895662176941100741492629791960069461735887537932701810576045394659116787649984912454864944783792014081422005445006658992677169069298721578518900569789121138773870002982429526954442203290954574449528019287362401380408201663846287399768277980318634930827901203688443450044419413642092499513055849191050660375699101919653648273406107836595472720420994863211086535874155410948619130316405684303356125987383065370604909758601817025580857749523435023797095365706622664401140197180318893654160494542456435605793894410302121661870180324678954918840034839917049939352059132604291290237175339795746066323816382391899770418574407233323052429336201987992315755309415947414970493214457242135309955639356291761787135546822696506081111821040300282945057815267556189023535173994062074604738003300190777368014150907263240698742489923506671206227781232023155935136527350681538017903595165653068509987694419228450118616609670909674058886057282977338524482880581995249434492804522630007214210845943618727574869973341934402852407166558471425701983938012012647554138235896937814933520402514769084921351622470745331037126927138378281522521739354720570559469068751147768978405199138287069364398523090507472170297814092365954001804169190567210676429890836010858386416650122882546535652357999593183083245310536582434418860557535134777466885001105538517131335093431496388347089573460714865662569724178745065388768975394800685052445426100107826186475399737375291435989306296742765971684357561732435323959871510423265905025644238251132331863836742234180550729330909570038119631154812069383990943080315953338260261234768909888224277554499954285970634706580175051243959643435269333433541668275185954374106401755932034835090959318645695542229762556709435639868462182589221925047887167288313020071335478184246053975506820059782425832056161584394245746148618567725430203252884934602379597577889380158348649695343928338912238186058944377950320976779253642634612320217367946833653568731103104554014511868605285543361053106283491784179291353800765279615297329963297208771879745196595930946831299131661321988680311467308405783118358488749850106276609500780614851804223903443620372704594532110068752504938332815011539963855316252181490428707018785041716505229424477130454754643489680342330737234749715425671667373079343847185884598012746252584730864913930088936043320747097529108061614055411614435411776354565315798874993794342571809790958936470447687434432086381125479500149435910355312964148992633212830094857258147019760386401826904171588562766653649997285316538848821580653577474532749493452993421042623001586922842196381510280578435197100499717481918795274821414676526300445303249442199857419229937685581873694972010715878040315974178952642828621690186724660368471061554976865162077196033896344713184723373197211492033741684740437682745738353525526121717954035659267759020397495181365065982117143250384592973010410632854423202359486897567860866920712529509385538931744744507139466698401728503078377598434039557068498220017841177120396037556364691902746653533107226442672265873710263077003005735681886622079872887374651960058134841473898023994574909155431785219077524562757918230832196785474172392109520842837440750294365355251124562282807619944294554386303601941173975172207878935939508621391475302868073110561587814448158869586682476112209438080485190956564223687672152952270706158098300891784761363047069745803094421734354634713809984031588524846102442277968004526152249371951367465045131747373295553367321241330073849391262145644675376687075500464324693704536774031473185424534131076355744333682739633990587335045431667619497571961349405411474788894017867465125487489614855357595191083781966652654057251105474658177580214865523791169136202257097810296979512860422629521096684892635150715878934160653372667004218189298341678404638294151267080819624087483326151882507981950708169524894921439946092458139145767356025004243926507631380361270813903492008077474921436980358045933876539351065238293304455261147742315486546820143368620204624942798839017699520644271632939326391717477324907250409675519281568620127107980865198020121998832489973919421973757183792941121249477015252262134111830514685410128352117696480799142221603159371057045412444318999282207832068347433809310454625375255145765643010067984744804455314666543933065021759017478801037383417094363740848277849067773824800411619682087145320700336473904669531514897627120728441704388519402307410910778627294640488823561902171600776735861743718444927921756829981381752467690727821498388506632693571751860309701628220744132814826691167400049981082545925871853393871531679943445949643585966054403480372976551966190660293741566488474223347062628694821137866499187435923322164981118909009705551117036794701809948601477979277603112289646460559007434525023522512152367871288495103663792078156186706474976249742637872158857644860129165172323299038575724189164542561898680537862532273803074057783256053257904902775522580660623697069589150387444989351954315558663481963843736266318429603684008007954916082950663457162722886537186870953865636891848902045169922748345084873290859781351539673766166746768949146437000961514323230436100518746636933588422744504724466282134868559132381344592465687562392218024374173780560176403013239731993810350667008165359326904429006868974300133414567035835014171290677560626873368604829798390244773720971172992204181318429807526651930747507296370670707698511599926950356774809091235753675965960682183344024329050765842773155681893155570048720936478141741432889254075311218144382390990915442666613700659615077735351836021539913240502180731944483698588336017983375310925445076695013256200065727154340242166816796445849189476065635046396977516348154966442540151352227860628599651111079653930094471411527066303144890216920856240545288881523285706841215089089670640156921710439378873130651163788941017797574184408237039741592754889753068241704832201303744845550304861202987882591341369370869276007238041297581641325676874238601734169613600549329774391528446502365846811278920689948419550940738637434696792357594828878040790798037044967578353571847464029865526100848852284305863555066924230568232464554401890000008903614162888326705564281204745303807983735874811735762100388042711260898825499188703706964745748325296480321179527715513704964045046757975592494869948390839467505469799873024446898090256264379190587387259813035543802783307104028004624128348797325199624457910742944035313320973875469012847438771041220104065435832576985988682147655655891943441377174237396303868627532475513264527772435563964610497260574992340793074954659742743868238607498668497466550651837847957462519998931904479716901859255089428379562402942799148614723204675489487526677528271165909777981599986680947243617815827888122284302485336541416511378403575353845448596102831571548970506971989933475093897949442173759782673002520116738538953499001905481056060617953766670883213465580106158497604070497929010483311776574459846798823386825584949527183917358306556930878227795237175809306545910793813969662363267017518337153060201821779589333127918429241028471861910351402155263736081331967922802856970365265783396509130423739195015902464399746129223951283256468361834843747887704972272585599621872956674728125131056331249089091150939284271294391250248100597245859109815179244881603732066688077240028466077393288719463601493852755844962480938379877270358591078143836747175548395323129626416451881892026688211530175691928804836273115306421319672703303802255357600411707593648375593379751069510452471770091955926341997682945536651594069515904012152782747057768714308740612491238175969571337860672105088602344918529528042843817044003517570760124970583155676741690631271887699180108046295095926174184356339011766266002791130103665357245178677601799749581579862668198389169301815142768091300643201039745161334816681094258350861030050422639141387376902631244015946597808148741533193517020044371709496613644361540579866261972538473845726817154522483998663327677336120791205558087049369802006219457231736255678850773796088461715429143750096815214942876149468826464306039025569971121435552783301764107706851823814701231080868917909510938928066872657325200765686897328041548746371576699999514384781884776197762682793714396763133590067770614225922933730253259447502291581021577216912479374438681903970169366897677470070924813128665291159257641559048478344699233410211196457538679985838845296784926202010998220883324844601412668414361581456914202274349675364720469388085759525541248704785665213095067884151501480792039164633055273934034865120279978953712992037089186945545100035474734901352833006179842909145139569161024684372260748329689495694949131670665461612113803340957199973993629028184284419813283245081245534091842386211774883500513834039461191308080739790391660551337335219781626201660266544890465264780491882062236761696277376429569492192544024752948837939563375137332079264306261035918778798203101308731646500563042686210477597304770353263223951032770094823912955166296878149936858746221277841913822587870526490064621210855235067299815395651975743355001405958939062235583055499822457615252155390857453801205155800308984228192618559310842397652521355347689384725359566240458701176406534540723934050927151086566442996991683747470538995281288285345393908180776055483134252800669539626984468222177428939405057325980833053444308256535304499166886412170796063349688537255694404580910258046931303531902404218522339073885074306981566268559475342375446209874455063143181901260129322447700922750376839715523895931596171774402906333836173396745124117799733386399510155780560274187839667848371179923499059217365895501436265423505662756303983014564266863941036115434045675525659563227041703002528887960485660637620633731604537846839300056524560141860124583232457751485743311066824052811829692522990914041320277283308582097429929232632534615845420212482156346491408506457672300902401446442852141585323235337398737120627415209101134347427278927390209978519721596202781466804463277985677302674065314556281927247773324322818213508021385549616497332500453804882690774479904834732260952155155825643772144273089377899198292888833219331678680601735367280521947596889813895530458454099813055577135032212196850847769332148331447542382992398415198418851541256757541029783862144956120485368585561964591607052756278981501147988333118852932103925365867399942837907341454438595653461236632062635530553666502901070417763366603189048302603026973372212609893959383401342490355725848114121863595679490896321161417089410857102208079978635913115752309223629497387083366301116069944788909672879781396041675539910795660906518069585417422196986354972215866100879495438729224551518104935276041397108746441942557661186063018537625348200347640258117693839320677839018918768672987785586538216336420964608750203950608137242176983224722550871709018690319824364444255628833171351551389745587646494336350858734803965308790097085328572556178313576351595297891779301497740343273606025405819941366483446934593769769937588115400725308718548762274316239278783427420367561464222509584871099109429353185720742267578159082801284560935113602358779202682346048249460249046219201014969075486783862358461407698137565321339136617727401596716589944327638875528850920572098209967188434572794001511871815291811358731673968500340311737962310536143757613987877512819391104796259143803826492846063542453559929006506440357776202479932564080191756992479713293543678909202168164976889914625308931683512816413211159966812389200774066650043678579253961578035129876356556141559345031014232134398510852243964050702843559995223742143643396005313859289739291613040097997478366839124807505270324062521237032009426731366357107734943065167546540222045909591246701651108076859637497609349521869523646886020405369118976284731876954487484443582049172245606691233591942788094670750310709054810877361226330729734817500940450386496807051104502372872079634130475154728068029714065530824957262402843114889919192648449853361666119936815020241426564737228042237747329346152693992598241728330925836754595908441412432517829512314415953272821873500402639609579536104284885642150186589071246538823433998319258725080302023030687457793966672994808565336027032031071749360677209435237738282539506022109950062157488168735581434667416866863465658125171258657292003699103454805886514273799243326586525904548854862838535664981594357034512705303411333386579160314554935704872060210274221996978243118238882963633472973163818831705642102870620265918469252257961505768265499972669174594624017106326121839903669095602980957307880967880969032662145906592570515329045855694627865934257267196720959841792007251753439826814486561080267408628396101628610888096994052027034455777621606731438616559370975455456317866034181087139382452812955741123652061831038322871963910627740500262655882192022697551795875861964234992368465300163671132212138545396255234172432928702494653140095802952637282769107598137871431712896216463867745511519017221508041172665870781916561180931450051560516182817579913874278909883173507969490889561254950795285028488812239546655427280076113770752911258640973681277529027110565160873928115191698366282461626689384076207740689151886302199043925115918179788451888732817836522858551439167794637813054420895506038132424824937387751023253446199749160219280978508728096256310179832721818207381255522651269245037464616575065216432961049712634158216583816298090071900381700058695701715962760723168217859155847597486449598371846901191700447201001699910488374033769250580007063233256206034162403452331692549799166931954531576441653702667208777911025705005889813967919195299214653616743825618955708923039942620626851591886004574138361804429986254188128543829367280302495062108558663765320747796151631035552705087873388255062208910473664753858144141151446146218059816522452464125833925579842420120112191146376617692942322118106824690221228682191159118593145586378600169559150464391532077769629496915085216218197498196571976693691057731671787932588804444837650452054837826371853220487992378943207138684283644968490126029922688288067514598300610369330069328500345110255323328232394866082397708706311851760098001730500075837691433908221999782406520631932416742972015158750972687689572569097939467256819763398591085107924202378727658714647924812945915714049349999761705245536451289091839780773482901244663681875055110489197485425895938601456659035620116389772630476328319770794062227031453369443836128870263151106839315656907245589203338496292635258768817652514722230142327246728931045716604315159603286258450323950853485610678283135991219838094708400105224470981973633763311734518753515081419539701944401471933760966144426620971702679992711258096194565759685307866325672642104229975804402897031153195544434465679784144042583331371561639239495430800785921831626320965023896382379118493689112543922859280364605362952525268622511090622817135838001858350727247478662514834264958540886447539695127098262755832372152939390501387932226121009385782166877665724828460917651544540092338056875883156647575462584459412314118167965924913989170856918167772459717375676497866217554054471836880299478382536450831517608847079741595261387458314198372881386042821669287197475017333445898423885066817863798549348988565006539347440442191231074003738095331379304270603166994174265707199998720294064972197111904611792911741226666275990906849959409293096364033587186617391228330060181565585722804316035750124954001339842214923382311688305178947889858707844188090998580859591174265147161617754356731384119570245080856764388039622122264444956910404983327299588296860405175425341798417283784117778222689544951435949361922485879361634510248498406892209388372139515265950087020448802909455377432203545930277305591909727039021251453997459949608798404158564682487144149406463400009723837609039946486379733976604005133903292837329708199693340037888411822344095456512373415128389842828466314642805104694899208417167487012332865451268232146981091782570432603335306739474169402133925615858057248100684818456181303317931316662695671437113375260964690810383111327843496124871043223570498308971305004626354665861635457433868499123008839005271518830946276640801591921391952848967509126615712144218572146896265287769732577626369757358326076321640615889335033781074457247621523273545407634242553257716670268285033867251720909121140032948670640053754197204837907714203467252604171746339889183002544821765892043415663325898452764045951459966881990874217038086452012178220285170814567595687083535525476321312091451957958446851047230749643847499163954851233610280806323488639038897719377166155666769271431956071164866408100473042606965842961986101113304932140469783344841372711016889453486721209630347946081219007673653653364201003606511761893766800542644558912686999318296107391460985987746900941517059040750492071492583018278760979327261822748011211830907411995370958155245157272993350211515511817442894641272248824193008846839877034569240337296516207911969839555110466803510960758858907979795237401307228316118261783853867728563659260376359727746575064920967849014477486745934985790383316380800463413837509811654620114330022446318113507841575920665994930345182702025585798561902758598840194818015779483853254741382823340082820859400044912886613515697940161346133407171846648365274768248238028390628873621474352044493647432881070176035832502531026775593296177219801747408499688946706397718145628665110252894756855060307689277946551646848519559228896585446715640418459910143198003436918996555332303031805162027455680979709532337837220626008439192449401558315239900187270221196244855455053017724025718714221311390046793118862001935312198378309521840239553962543747329868471530467302890286856951697081948129562586410495381500843196461212636331855560844249838583517797169493017650417265329133432210681891238281547734329997057501655098150933512880417598261273703008930103877188830586619122470877446812293765337566988384968215864632487490911111917860891593008107042081215496745535119463403538542134311741995066359214162810778221158437311695008718538391951105441993908984036214506837056437059909512858308314149626605431279265680467543339316328425687230079023362076115154843831693626699685572793976140121831268714730389589530252476089701649144089066067655316248687377710773506562631507334410497897072354190216705485336831003291201877081163839988462295959114559123206367938102855812112881417026439540644873296786681646107852507823945176426917886243548870745615597546494995218116765583497298334461058758856219105686124316241869099731262100005325706054179740120719580690663577458585236828361858603869944726855948931253951604621328338501315767222643592297948709062648350748866270302262569317497266182360662300815906689453392385081093048123176224487716549306434236842272066093286098118448812939481769171751133809962485663218733109702115812429158943330229500218487813796074925388589082431439368957917695893798637965342364048919465577560775383982801189162298943055153407107573981994493897191305763378334636974951856033095961662648139228143508786192229405552151563737985382127734741977968943146548770335226519184726371037549469149800158822097044634324981674805328615045145938637367304527796054988515599345467563860973729556829753754741855768612007456511004122669385907653594474816947867211929191603677526204548870919547261881339959313551149137428155964783366965555423171630809694182692795507055235290615121984117480910343864163668376929844271089270689641098834256288931225504105932342055905369964718554354412750036275644395711419196987294582205372750587481732048784900026624481711589010952727939042571521354830269462977282958801386666284588420353800288674589043592469803372973046000187564884062813623996918182272096481550116801740083162833038423326563478692108813342190518282083471844537971499010372491104666120944071175162040561317337627641956852948908210125653927017494788367329108356663718030478506642257645037953341375548885295970632650507327390839308703108999501765883613889752202751029196256937632148263010938298565474117303556384501107599509881761856454076541943013057311033005877574401868840224966901507742717313415804850725296328524987921251583569146421956219381373128556800396990973162096764770147618320197724000086113296591246527663030590349687301179951714525423035294739225091942393552565997672532352741320578050883040300480317719293803633394773048671559632394343378976682630565035700663416179232764997830590105849448886413792351559427275856549329097385511638407598202073392809447497986223340562184699151312989504343784377956654316345013727639753093329837493544984166965581855463784609824773984815934598636427235407199517927322307271029266974762933590408639291436622937580599917899599820534222936445457881702204215576181316319610162014832901513298411023173115730918201644790149569759081301107859579915392234275095435042466833847752166959709006916733246166151455497163583988817688910542545416475624774947712415432224773137764553516671842508457807158905663612272959629869974495262260078890111548198311521578312604215189111977559932258237869494747123979490916353446139752499081205196838990267044900710009031015868626097940760800741958703782561092106717375107599607239974140322258118938114070141271260466524281214209211332603225357841534736121061505396916098376724401199479649793491667497025573059940821237377729371233964985454498174081863433332295523193289692119170937032652920565306559601043066906639249599937695178489383213810383935476826293442970374230350269142033927142283026825490445740808981653395356785402837148018529714400770099330233861787107339570493290370708627988507028874255285646541554355225423233292646477167246068761353221917972439736593534516308735400537399280093522581710537952462476541749428764556909366859149068086517787468152583712661403509962171927920167872819775469959939244450419786494189381224090004915567465588691526233792698060371962535355967986193643716631190229692297312006775626675922948112947803452812844137233342152417620410084004738977268064714456556314849138764874909265060332951641564123502268550058732465949666936573521495627036135137942875793252683708834900145351160804655198662115622421845064482188394083615702358555930729521951033152340788995554933148783537619020632562426091138015367715795332758449372797685658991849648660377745927206351490888285350088892276290927516393256179999585275796263547702194652343734649118366497090841413205096668383057892777706212243446212873068623971584794577240816394101977400353019731551349922740426491518191738210095742238472070851049166711847685690622368893312983051558800460552945933614129754453818424075047316656119443545110611956377969934550277431989652558866383497170988884612594129017469514820512326705308729792823642702931509708817135714129997481788516105797540724077338532158141638900100532662976173799672955624459788590519778353143134937357840368963408681481636504162658110638964397680210544593032217664855942662606311690732454794899152479842054734174375858553358145394084155469795337364918333419298699163082774591944518384475942493959183507799952330485561431839675301389788712601005006139589576952358545742008691919183660551845982195312306743951841492767031109877132979283780587741009957406353753230737930936177379197256316139592133052887871972241074712489303206902861439478785703757631092691837602793380416687226625070299620573055153385432843879732822616259048999986519893906007855355583171402807167121953405607463086332690650140485237846029109394164909219744494137315588836125435072013230244031684400113411246235543137078372730340705111064302882591807234085255608854482689141546232623600555420042963133114969466842788852689196189114965895672358724061631317547931865358526081541066487031873711963231749036073769066304746992803748336368963808229430433714878748966331731116599529893849404572587212408935447800202779511269629151630062936679219431569132018099949791314269233674436921485586922039606480990716556128575440339888018643263851886864599879973919944522479653387879813437287241723931869642253301168404629604803720523899300300952871729045276029011678697419898465728092840416009790541024862284560698311275210916677487412531128684823565993662600697598245357442989868238685147884853164475577652747576914254505397297765159694929020727549901403648363306146396097016762729664125573209536165584689919877702180554981193921475138726223525604432592653146529046065485781779687361261571067864792036417932371292544859371298175678045054537066812667173843952294594528800002416985016107049626131734954420134471648250372594134071954086646083096069174085286713690107759897763793182618487547644167088320813462386101166557494004744090525069330708255677842154898043621039487597346681794971149655061848732315394896066507283165438161865910227092778129984666919476406963467262033690892224945193637994083211520411297376193924999837341678133843590171978920314594401418106161529290053565442601297179091862408502591805866461948368884835252643079366952873375085657146444145340715502015475046388740070649429112385238599362277916280487198427518439087672487187023367842089767050950651947610184630112469893320829937933160342302555334715964622675875401681418973764235508793501786690877774362430546752170583301666234734889963453825054315815799348840785065270890751397686397855440771712226328449930608827626841286846399781139898689467733549810175485037915923813523959701856181342752456773304969658334209184815859673714124465875491790653912501344086457324973057803174681024841523264518792502584527502414210943137370371097888166281993018264713835074117339206247160531035626650921943475878811949087825470964138772672847009064467695161776136207572528717228459932673806750668447515997027726067171710392310564944599920422845713999268868692221061087649694319239020532012242882117525842591550566274249993717193573260734813063457898085174497097144650900977647880964131932271525166570086129035059407273561810502579124943126719058015853640600753040112464916896037808951506725462915170297999581178638554462938565929175789359314302990797114737489941318267129429073539239332447503056175544616109869159976983174909244893948114428059094467065955724086938645208093623639186344751885668450307802040074846649234847028153211927206614369967023254006500868959854363046640093532807056059866064904133185378369665594053453446409481434366112482275191193824657566778501279927080534618317833159435312359029386223796552186059462766023391417281790230232081927941201602521003990021245906911785366048982772847181209072754602903489114362665445841058361320327466013069157779392759581232536578736928843116114648413120487488209903342210991417751891711308686998809095007365004163801288342443867314333848756762374272040252551823976132801920349476830594091157161430018429058154593553237863121445110031535492863142162631542670539590810788006757277445299253751945957235687120159792452493683892416200892866500862745586211861172337963043814985332016811465021817948871403128733432174191891372072962706467670968685356730950446862293104614720192035525797854550021788497351837992144250080443765242923945532297570548188987978004676867835970809244154241021625080304168801339334555938243659809388668224293058988127280888349036737800468276496942932148904219633353546855262397766610705753609141902605453282830632462136909250720998587736416223513333627907688831566475024307293516060014101566750348713788487362142936608340274789222227053215770699834588246252374262815504251332340252970204331225865419198686989193009368338463460484836302450245025246329118219440085946214828687689114776316123119016002331919420605433184320798437786752061192472196411638571534178471752027895969042288694210838533618530663398231550329447631720933693036767222960175769217801962554878320064305107128132644411147749596370224422626608748092806818298607559267474953857974446328435072112904961737932477566810933113822166130899444032920514447907269981208018501724583008380957605861858300991842348569162466061484472744118031730913620955512201296881108962116491627562832493800228721951199430827460216003497388742488051510821180637380749652905779304738001380756956830103835461003912118114834593692463953850071481799390205175636903214727683841738808755611268597510141884715907656671949920116086811663692811965123067748160980895359299736854806452825459356305095520527121207449446033465081639901689038017109453735310441411247039475320791084817481474976475707454240957405689364091132164372552235547839687218692841686019552474226877546405577664056722079051080466520039493140007782150691601083242402392085557230164775778775339985539375547087050718561950422249596293866719101540869791292896814003007223431035884706777693432293326177555016128235751217385496179393299226682697552409936730361464144600654590544302477087274320526790285462269724369271576940480478369811663071617013744757503722750822368983953030820686249479621873203935785917800237969373307239695496287565456783230661609370542948794725459043119419311325859286845364039365378369801152732163984792620345562200600840978652262391146704460005072833025736991215396311697473553072532871828094752781673556485103146594939920917024120939999095771777940780404256642891378518632118025376261459918057407386562848454851712114339806404607466147267475431213028335418475088891649737807989312459767889964418461523820406530500714128883581315402796160810696761261319929967239484926279208115310255146310147277919207097792123017121943258122598269960303369436556296956279944407713252880945129520901581909434107328335003052067307688744708466666304824510955848373317280695926998884316174580978774279989173547543866430972395000417199174492771172311243810719902514349272463962639761377542396432415594282610427614260621249476844855370081083133798883231325740554468010449194482132081642422154452027300564134057582465113732677958039947373049696715172580215018583829705622969979243599362453660530285458534481577936522331026931488877275056382684987165947671038365819715968930678493449421347918946603033184415425666108164366936198857271995969428519752436638528557695544659938797811297834670793014196919230187234483367163505489776942127179014136390521812523739147061429525633485978996593109202465840843719532293099864032287761210146115123305510637144043663730357260627028045535783873779158231043166875274540381042258759079603782285129692193867438590155554087461638385453393784433979536450094104035890448749350919975157166243410183588817599227379765308154214758790426494015677017406093400800850091508481025570436521951582046433146848392178818986496976305300939802709026066258396886910263544015765785019751835026768162369554405358786086818734618421052789403652175884328284217450555640661963707093429646995244245403049832810897091087248311032884794872806592571085176145207893635375242586210446171001749826466664667748673840205596058406024097462630566526118516397016266552451318056715245861934270432475457344114548893746668555988771677828052606018186834666171660345937125423001639957911993744435420800839500716321187805959152919167908946440147294056401887429430565327651369730067844464253140672055606617741873336896875411989972887457649085979044691619704112020107334094988381327887156993133089730411902834346899478569743095747269295810267188748850794887508864344055374217790334639455351689423389583373284440836774616643567273808602053538714745797662375193459179166802532622212602327374302480015481096460702163117795464768234933064026204220830305458984652704019053081255298014785823897137480795375406831670755999950053041259425386599214797511736763351812852566297808270214679940828468333968956216747478841241686009252587587350090499234532748155839340796050912294058998875350147249052072665071672691155726965750383090580131915692991153665736813677155116053183362543002000198365755205527387803287475091301269755035298004708598633352975150095441236541868709802822486006056483292499183551120690786837185879475213289885687815089535104659991476631583951552829647992215919266680064180283947607862735379432977269891090344273014290735427917470177002405190669431498418108669913937873672515522973641140478825152941543430821030267363176539398889002736148349373879701355354514533039993333343156568722645608314781496054775631755623213636713618351712549770375583689554151541660982649726591394116269468048605075961000756147456088867148449385765063575573301854300695831263735811262067087034382004743689579273571883909126972807875692550106340841052842679166216565511050389540316463389415829078416770369703616028173944342097066370494156926111363789573949437013115521491136822855541686271738541266244612999583746828824021704915243327037476825822804309774754952057048930976792498783080495631408038303301600962327536572971889738803409456701073583701186705986032132775338389509645334653692074065068090857921005934301322335930135135387000776333434784229442480718271101306237742398481972372294538742091492290074015522866154620350963604068374223358335466743680637903129654597992150440239044221317054787636195033106610284076917922121905598655087515139229347645727422795814129549162764583068945674648964206822084769645705416210526467887864186386023034788083786632432222480581191751228619751722492924541834663004705821733523040113959023976255662322487817269266901744861284167831344140050268029602047415906053573332943732744670904338804790211163301359924363707364822426203103155435982304496896532695576240131538504077821448099606448581844044430425171388596048811989153551687234615034580430373092748949885084092294978405637938315174201850445000492603200326415307717216209090368812531009987259873013289558325126996044776376192009516267152753248250185947239591043713725093394660941059496007128463724855221950041558803124736339908492364237415272570045370081492963409783197931041609133535076940288242440715705307151625578768983893184915953442873949311228916537678479439943158409965555109295873374066858109780712126252299890865396638613121849493531123517255894311092439060517662145603723317127942215683205993378606693800129471689844063743092388362197049459672851095065789864580318540169791789109752288325193062089635848278114537956897472184562542064999054197592174306169713113654953838668694726104193279291274074312178041291054115150748417813984618616054797297298831565706491345631218306268695166144354779794477803682316853406797995549300481799435985784031184657508020710790879279326350083609551853168683009353215535466664693933464516688504394735178386053817175784033393446288065641622348961433139674467369674858052591228866737054259898130402017798513978052229553867997764439617279180156109748276605847470038809787644481010821811223942047583623470982656687493935093423918916857172899099722232619436159719205945281441694688071743752593722445828133304831999090994725668629277250489186337396399981689788160006318565308312936397197554477679263155441483005740650954055611518367974025059813761157860428115892221764420098702425649312991123307910004113570600992380243052782143522121144387903678257637765312497699426653943116750691139770866675325884941919221157376220680629108455447906227504872335020871857434385664327398090077947312499549228802782173707282465740885251746585091416641322737701988386740305578595309006617366569083520982255109760437314639933527843748393001325724758010568050095266119824254313214561835780952134048658396413998733812252266022519578778151946199871588777301704370538554431207380929050436238350358218988525858808984439187407607450249943817087895527310455729976556923380955771190007468228141806688313485535055902115682697468071759565112039421298525265761572546263107768216498081204551734677965302358786706639477330284880667779918500703352518918765868116452924944644241095954427620613894742418913574048141464766821510380993552824232094608899152235957928960760175992574257639541391525365299827617176339463777285075076097483348560559581480386983166808255228549446884015062572654645639299014473849788687866553131761097410464485761216460397778019793293399328784486396444473158795565796686036545547560382297786017080351252352173686427705333642030383655838926084288414635653218124919299568139933530532888508063148738006727138513781445529582641732508038174630612654705047926873037993615613595970800799897391529920840562123094064784260590517313421928794972564727897115742898248676745407101454255041475298998389621122752544445674973462804785848627701734122918796287471180330933869398374572010535259373365684998215131085574076016641118101187900893799931752458124592189193476164516463733826312767454676020431698757609238361412337579364634141813658880778474855690475297645677802059172758919356534077441756185861256214721121350324450390310654498551257655643586344990275907379756762409812354909679332247262241713025846211991760703829826687036943741935574180315684561994236142825699571455871898547175876697256505156574709354118438810911661921098277888435974631235189362974697663749318343431931621666090818362271551772611581153146024817961136725281766964611207008874656915010869708353234876127072190916586180962591296971595341534064561883209945868143609732929062847413303322529049651707693329253673851990599183784199399088293307137886184489257891513548526264542873846651105680720020630998026715210983720670699272867588371816332076725872581176241694689350875181934099872078549745665568925657717240735157361184042854520338801742337746026259260488028573926167063546541121723281085069097167453027537498647481531591079968780466897071929463604549357994310413603395755184846450614818906323752498683040163376999801085496475273195650553063257966391075091537470977890693109110354753425315013378945715793011057958252714074430291586175259187215902922479966947013649356811978296845512746329918614140689128602358832987572749850191789567798792197777306657923779902875351789207935584403897995470697505407947491321679763442955233944017775227431030122652633894532558189125937956213090420640103296316232522683695396862921547360553639640592875491048165475803834761448513685706072649013019736033204427683608482915180766506133050596998441248222343756857661386738793517461746179145126558629566549263598259138748094168505691369535768299403964003734805823764695989987649154531157879576359593123359832421305634834896085833740264501137839898587491844926465398874538016398419168608140727767816737805835444586928372195488650820205131277234843643492905732764793670627467254269487016115410221027204559694112652626161478217154827220446787058989107791792218720547537089727433912135093515926131628864160929031116328286960813610283595987672542348377843470305070837242950069610331821802447266820723211175855059177462151315887743065021857451537509883530004937633830216334049680865903125261856440224125095975184546555477629171029553368786352949305765220585431990994835133860722470051546733796952340559446126304810490165216284872496968584973077945845288438789200981446323038137541251450570539619783070596361577267872053997871240650764266063881966159911709037795706494114584472549073189711686753560247264184409833990696160519752827083467867697168238609795319251686980144712059121818529653542367984215702051089859893934437297251081768408812971942089149935034217180477321630426916064645692047134149617522121445614845380367193124051944499586841314340284598431407974950294423602654805346478269518139414208230722815161228721221785621695678429516672188401985002492643341822286626334301342117720746768703337478120514734167507624633885470772726982659311733515090618851823928452828136916633107869555513344981905369681321903170765765120030015294098490044843632548456319074388783274652401857221321456994379709826041989956466306239311524307146233810987305919927435473225802796515213507279343159934608035627475919986207155888075633106476377498489025343170202752601114221826482507089679929789239554186362338258715358215064048000428088848780624013334882069333861033848401887922802964117380188130988244381170658245123382935344048016139871603601435145330267444550082147915735900722354258900815137037077490568817883573105000714872283370421233484025455541525934482742112024705831844791229602267414399837084284251508095942014764580582687921013288535360551182322968384131213733801819810795959900202354218103245789968475306382658579360168135700670381795884114271102185464011637545547521409809677228998847295133513832698564167304219706608693930945053818115157844710756961639731693366863062742567006215853609760949297621280769054768884697493679001878355050740253644893908404943100062970984782622225997970215938089447923828250843437368432381777013754342097756137370463743103386043722807484071172495832215101077149114904719166321990439674303006169286675001379965231028779219961421627256914704175408209779033810670104023465413760337587518606578883928621750859448835934003585173141735017571274689234790079713455660522377362942533967088358924777497049066681223798686561942477329374034994851486121912312827092608946732918074466178127390428085252334185760155368019454617618734213755819919417225369849784584244306619003279819697100883166991453629273044911446231875583601254723836658293707512062454144944132057846800669336531231136087493801527221673741736737175488527746940799167814655508224745324390646009136289281382620836670044056704530367039056696353787394778632615654769914629803021207065374857851063698474876636780060619352850516683846977104388256549389723321824622311668022911266599552188267647784627540239238082913243928719140461784946032420206458179513291567693995525721293081119812848056300350238452461862526831606748020552056554059908851621731169459325661359411578674785258094148298148180981792874189536100625707634699464285265602824023920080910138032268489415293638356909305754685415369292454393354439048281804506227844905236609824574416134466758237200146895148883490060260308356874985763087894907439114338119588622733432845816986320762600778285239905682427135095437839013998696635307372110344111010550172524757059871118369013679423799836809839824373552385241192494996106534301203131398036817650884749354446887706019940771991148520609324038297217619312313289777225996017437818209438075922338748901461992934074143871572969115432070466910351795842227086465618832168350333217202225925426597550696075434203555660219498044035362528072527224699316924220701498183007481320558821587064062671023859340815853344042545552615799515594031546776281004200709780755947836601700579428356043068793961944869079757898757200427073236355223111672559653364879065391802732662255241893731056760512025004064032100985552299408627349660803159848091359148724340783685319903778261222550589424227745036556524239180433621115380626385170198868442962711146082359455024538109212196199554238732930505324172711412544050387329992943136048971464525304517163674019474085398882625041605626743552961690888677973434920996744944001832105171114661632249942521816462422121673218402809807243783729251878988909670005894142389791168436007964824365927502215535853679449043595455173337114499540948970851565387097561355921706430544875317864299992170350177947244436808182286800496591828098617892066148909692453382648495689527459644019441764287837750066828530621497966386310643356485690535579648198998616088341602218690748442627225624242135405679913908038180125014332120949519347278881861511391597718471666605578976112881048049748650078580591736579475410675095316765860226787962886876090841378690734990432170471346144994133978404245134326502548772458498150812508714347210388545186937398899312393639821072118821768991957066401680253702468856312671657441518800816139152687924115662798460913170787858976153458420713979094547349851491083584155335909121106706336144726464483822422927910728045686671609362793953872118652316008007089971134534642253614806731597419909550150768584044967775075217557250293334866376980576651034441228964824649044289349450853686652907348866376706309772103874363728789733568585847753614684053028051050531471641565498804399939979732545489043058678513346658639095729075219128441913720661722212922927143100573800759225722852671245233890797452291653834908189643416252658359232174811257582712447102498937235399887968650522499369695879244258963146162052555718790666027877498195662241623413767872357625367467344430807172342569090506701205586664239500127194883079005353608626732921483652682534286296080908649307015791692829113129754783096705224863202463420114758196242849322095450644325950464786864042900357601102318625917231525408868801915909833063151417717686851936623112286227840885365707390037054261793410213573841751168966187589872629048381872933896180333181559450572322231997732999520364225739419060831754748154477279199475845020608603103804162777902679681395783415118912118741835972199689666354811806862176175107208338552829975584857442350560938128536782576160049241295909740356879640787677156701205951476737509206532317855861493677311777934385994827874608646129753843926852478717505106542096932717531962810544088401407960982047612138502226790179833659216347289046921570481232576557770996426117561156133768907170763181500294843465158508805974748265084008839028962874099877597585993356902654503961309725898592007632631515040974229912911156656965374356861730004695830012183128302673877901224994530570692942168920928389642434633193173946468304926725778900943895974053296381611488488669868329572760501721930008614651358729026419613357636883495118326557665731369610697272608751767415076920156777265321100871877834792891007307335469033846821288296160777118023872253062882229476410278263845087308940799425741126836909119654387286665503619431304338768672331696562547751216256807258675431720061909582230761723316686044561256304260412623947570353282337150977264378787303446453082030685689816003166388915736622304500898465007199027385034275821895294699622548417547305735357998942168587926936844864287741515031639821926438096015041851345699882431138265232041841209651947820431075869709342861980763787271314378441722475180250574971571203280175338002381980549469767271749810039298566518307856944154893242447310400774458868591705449948102592078002196416066889689809763631235702728002079429437699772639470590157178096706257679848996225034309908000764977191522232670574666267795664001099374708109159574039680917538504264502940853141543246603730723282701308852863706219156519489984911326107784275290171441818808686473975653139521345064775303368602285946531189777512511162180922849584652450783670816743702778813310180923318337196954088469592213484534746435327937511034567781691137647723918334122402111852353067120123955401705407536906655806868297672114143090602415447774752345633987555503410339958557437377472880567626110646988389511212949994556540721732081968195774317739120274213494655995635963816999117306032341290508623930201777801434283174169476656314882047393163407205167493118879761414956094664026682136875319576748862888684630646586541443152634708310449607756246514853946037415512487929901902374739777482275845180886117437814691712176134898354223499877697393837432632886346347130823552125548145233295140788594485025139858676137359073152597665413152653782405467998324269341327427020876585956578318008819235251629698703070007353915190156895713651268855775239045477576056828687674578812147203220969559997827236488804911366653325322504126437328397615299163972944260914296169845215677824791289031758514398864753621340459281061169633736028526583308526731715910517932535449651191327040151245233057128652114380680106120296784120314301077886227973197894146709727712245740601891739326220224046557975743986798080365014436712670521132864606065502939051314963176289989263778213685015995353456903833218839980907832860159574574004481253302270839854899765388131469127608299976952309831825056211323319998946793745456560971211137668689566652129471231836270579978429050707699093519844023353922606004840052312578178194677497118505918232363467858529903088925860784322938092190899299847010496593939428055472848916403961104754043604449149706720096539190162061654923970688941654911838538739094024176003622675981811328748232574189616703328337393876238637734263632818941052708344241326394844580557537572872827652595917074000141098357407651620213381672890654146701312454764472077661684339716196096253191981732937065708096303724985164739806837555112076595646390932572572559930753806465542871031209218577880296881988560738228433852755304219000335641990474652127175257700120054544774731309931945541841659798705585262439073254076081260592957329155538745742317483917453876226847937651230124015595283722850547905400028470616219689697406407587954780691105596386079972571618409680043773139301384338984169682116196174674675379899278298468268668054024090941904395995432062774845851528054037772983338850278097581742317696770583193513853084263886969315136843638587915547069759455122977976707977613492316296463617677531159384681406446872556037980734900432843317703214321251896043733044509146760337059149096992865294964033920225663863056129929869421769679419051887842467876551520977488331962509522036711195690428308337411263782579907045418766662283658526192092488378301456766027524336711200936755637698163325121212461093741841951952339701889560811535856111579591309414225130580053530920837837587706088155351408174997456471814146201447198484931881025106905204722368830989517745475631801579934899150161370301797955153178273236611218601465720687562517433994813437277257444419832573237874085645445702747343006270823539729287652715843699072356964509742477243783122529585597788115036407068698121622668098194777635239331083679386175517666460838844200912649390736972043967880051589520797763308942970485220628020680263332091479351853344267302381198423445113065130591752305455352528366275565268183305924578665618301567603735850764402587451664060734969502128551702964409925247072808240438475074532178680136201845781380463823408650964271468124319206778640679358263029767455751541377616490387671504879173148914846244480905221358585370861079977222606445716354929654271916850802795101566162450269004300319880337742491311724323878381248658013510059783028062500787739864087674058055015179673144644628865915929331838738920054370087108655315879768571772550952164927294630568070535017620227062648002557815202575862891818811829666423056393579390311757386983954729965303045963753583556220118931696449840452518465254437103521158038351562019366133973128413518075788074329593560032750199336823638660169036092293609039668757539091892585960787579517301217855111801461969957424795382376130229006178846911011572028441438437793681875221895292844266788096411060820502473112713879585205945216174155336994791400883763027649356043488134155026433919390916511900613761136731011357739270404383878559867893159469831136419349241099862326533123111457244344690505189051890613703074902102314342713137750005423556254341198956339265449463498059831673961815948017102277495499886500550822078009687887888081179555559408167791505179891025823631902508285341769705549648599768496352283269712092091198731873173110884693863681141308576896800773878849135340077108835617345895430481666661979669506311814156630274358175449819839188076910178549848006761904126485412468360713726179727497969372602205739576881373802416552059744410305088589239422375966432495223424468710420137508621347163877052343766187421875143882943880636569788847011433614822285688881973238994863539475257114888004838677723381955513656638408204658969906011963274802580208173233248368682231503862786747109615398823849413056573918260858154885478963743437582558625339980859836343683210396807829444607267365050222530804128286515325826513116705714942334011937893775839633381859645451638778159015659470271436996236549676132983604417412367922623559364070217825424371711969613080695230134917921462187831183465515386837817679503115049897311374403318429645091338269425190521739969105616658464999733477359542966352879474370783442957551901154655210910953793923169094610688591437398977811768317166865804008122102666356644088224295711711852133747559199619439751675556608799200266510167685880282408494507544451803713976981807790025020142488249021607385637721812922974660015648463532888440524937069143619889232850044879334932294699701702408443193635372453075356970735330152931437749576439716593056001937886199867774746644155761229132664640803955556449649334202513934877020964382110608516168930140861335472343910428059819058544369701682455631146048943795190079580487770925679697729853708410973477464150239567073794836843896245855298522160750111376097808042542659584208989253279328317197369048502548999928244443754353471776407635362072586580723113783556675883068595199464590574188743669161166996739900404447817498955488297123123726910068928258249927439401253912602384493658944235206576489601184971007187194253799965956292468721179178671715842268488473594546030321337427574074620768139848044925632445276353298082001226050631163395954294259350215757351782055488954248966982034707767326253593395479645000529300351202477136092721256362221039120003921492727576599710620652118278358166829917466068191246852790716142452050297988479602356968603490604980835701944980254206555443692495278214220081734233968797246942858014078541206495549528081456351140431564415394830789170334247558531367765692946529745804895021843554153628316448727040564712254573902264104238258966891391312081666287809984442529187496195077443134757815020294080232476577768608852132740226518285029035780732564328904233762498754359170460325235503565519066935672658069621627938087688833420511998958765792245733116669648002828406839795280464534506037929693560410583200866372435347137765764063277638880137871627709823828079570585058695791339089076670245448293035748019977541667007371736788477734603940141950478430473005502029661422064933749331266921494705195967104879817507547410588084874973044509603706451846792955079866262651350176319518856899539077358160193199442289234680676659482761890780257397421491356969360490834971687998788560699737268545928417705562567341600368305220472971033407338879608950219560191782157639186639688399674272254360530080191313141988322552669691237087314933889692416902073159836807169007805613656446613815256510061797123427476245655949875153407321065361846709977178496636988938729759642710768538635773439668254562207391807287260568923197365691659221404903717409422952188883630313847686946929612509020286191075244416448617772987451653376787356493144198565016992156816119468338037922831523618167546617621676630866204335159007793284235267311861250269749647413068792446581850753699175703283206356727983889126623790726917487111731095800740471563073065131286845149314290997599867960455418392980439215745499497767261715073220325210234321671584890343488541780440178623717797162118284498693289044321888992763849302812400710572408060949986779886633201047049565828531187341623873495989042017490308678336510480144564756991064132661818227582405306826519997915861005080190571045959950788034538439576355021146627577606018311974267936543710931373596161195574650763384129867959794259655902847555589945591339155035050943028838575677705221139704826510726465659133953923642284595017892408264524920317688626058825298452019433696495425794883164798440858488524013880381322853987921575130880850594618849183034373902998952642467087488484963594245056562364310476297277584337524245667465062858740834081754269658066209969398192969122434716087147004921764829438962203169675334220945864365480058901551257479082695308656833050112652264809811186908105783023617486380709582760839265325041184931120535629202138481334265324341347315253027595496211672633052861191520375014135882162612083790935478600050914541967231837527491769724724873953107354814239667986549209127492119697430254850357173286712079643084834268252877412305729640655620335118106119747509135969612554559917047369353189497701579876905586758210134046805433325328891761428054934134834860469369689833995769517688276526995340698435985970950405203060700174748822255971416655596822058861372169146471037703242227998739357883179843953095587325935232688644125302703081539576703317985008101684136187622173754124739639694346131656235269509007479526894706772281328083405403616336301340555727837298384570398751104087564085079748555671059179257372952576318936679270899988016397482662535012107720412195282399203497514632740956826118444659433123673326682417022328231969055054141381920136710699476504471658328698099199974907134767007227291634679468386534450954584933090340119959792187558535000913042630159291271361568571307878849569519475737418646574807869665871549517875128124510487756427413701699347543829039815512306082003230348798477541198541808302101856124242427188368274638370111975020911995392573210934904911939831291655161554629754572731787544015121218940441847110902722483890869804527995081018736542717800285421282605387037667209889086798994307539686843517185203906032238425108538590176234369318133077362209920370752043208366055302246504653229695305946640517386119672603691394615000767074219077272841410828498366306200675627624049389838272814437746664494706311484418402707429437213289637370950350131214795109787634294224901017341755946683558656301207119152046466031745665478654849159782757198895533719644707759314920189419518727891787242650715369651766254561752222258421437476983326410871561994156478475446937787694768095270467887231906695057677938278209884127846633909456432635172914834948629699881881943608709965915195869278017327850994367143628348049934544596687019614213428100823354959486139243152256375829988325473534338276698567327605914209856198603777415576229305617415719398389221128371246844682391842819957240954506087507967808920526026235477426567820676659286570563358707788629475564523260343220004531824677175595428201887984482681648229126442897891179267648411639537915874058814989864835445606403890566824277924134346033398581739024971439203797157921901603415245061019846886789462481550392510542841327496950665466662721260210699113746143319378704469111919241849189434159463393523532049999448736586048996139471388409487420334062379162783652693318454315197544271104639033862946763075671530668246981285584201868812074170315693679299339995688044132691968883523712045353180198712406657310454659239730208116661229828101632060429354460822187693783614183495081125791790493471288568887789739614216725408902347031540769195830822858427275493442796519847158326396343512326244317287679304053430741457085131609998031520250320748330816012666675221145621298302458653175474004443460852672285323821093866359060434084602736141101790861682803168283871702857575381448035907337295262860982088901954892188582040280507385396753050862864148604549998653782632601588750901496249258840382290981715601378463594195198670204238286074608686960422521124572362499360091098006994480211126738013645732166477168772081359981005176559906793819943976628265327783547417923803297133809417260666200587659066709056805414713634137211031029365940361680642761008301232513697672407011719372422559362272610362884931717164199114693322039821008073239788200304463595053293751421722220852140117550861637111270716944402109921944262537633422003232736940276676302102393686096201885564830054779723665745713430971849935254163796737285055792607567797313734280674216108642239550300770810313766104820540068288595320491300327158903590646583482664134272534258287630127958467932707136110868718227745025358210266385316325716948188136875030716276427342945577487126032090547830544082413472561057895523781164422441470642698346070646622108009799239546421795009181535543741030898094873724931400547255713579776669768530620233537571446521525308016200028988861846361865113730364917220010195508532703571545861308048618489142745004427619797784260706217828559269821901014660093121287467008126470267281462827151239545124411679360919256058915067782005162427798995562820212789948791254438593232815984657240109427040794818011677925450347804868800727496384744687955722684173867919399433821621736718854345768678301949336662356226875269250063972233164728614974223214543938173340884784555435341616413725028111353129957690007522202568796422557587872902602225944788327184850698405317167081886774670080848427205139817485509764250789674485246577851216420715613712210384314050588458012531190877612870466292479207373380772702208088838818522564684967016020760769610467817437497966066633375900168972791020560435691202329879054195454220410205148235816993594869212350223710349884420944289866269748579018941112858565255742278775744005469358434204211138332604316651384004356828603405358241722269246162372508795229363752838648440284195609775264398816876437394917503174321524310815380135482865539074004732944162130996608837048560325379066985080420200777186347493430447350020453705171509813925639893537229388471635430646218296608128514864717011158756583047940807393513315169913342481647335296841214034601433555165596407513041447220159786946572169725937552372410899959080065562896118264654543562397380073855837279139896332890165352225070689074380096087009419166998166395667582766719344298396476287507023577278122367985267085031223675584441883430259169657592709667690435778312707206279964088774814681924305926773731566561259523401493322955304948902483238299346738268234238256418552757716132282810175173137160915653205943534426353402844277650583053529162126646362968179043939173964540614627808439115115088275484986330560577763328695457360230786393582900003437456657124012232433873669821332801415293806410828836732021654494289522542798952431982098003767762323807963833738314058233254927739148553690829881635957756375901458188536084769810804644928666494120628766120801929335678447347996876405759207648376011486308144137403881999609693090796949164970703783254975661190711951579439467610220016392867876957112943278444160605517135952096917357361197492736538102669210030700638563678351073014052928175570300158657789121343743712908159088425202632668093997516463964911791387194513146697153292212530875946378790846777396911226869090227730289329662800025421451408226790405520779078238672730248220718599201310895602656828019002546033644335512806566604446463442872608135063276270156123685609918682484803723551723684705289422280187710633334413441231930947790348670713878250931785580719949111815699899681572275876439509851034529725315418573683877963921200484561033101611627834222409961197165741804839167949451824336499614632731062356441244852837947868112270590935718299946415518643846524466966261818068790459059030029041588096422840903403712563278621167421782061973551107572406505772614699868923637263841543753068703195427191765865940018670972831128916680970017724290330991692919691717086349687004785698548961404427304912007192597750273723409295307158980982800753341975296453043065951011565351175557197070478301617432159702513984571578284827903443229897828947439508445045779399178925947382160527282817075981144647001207376990376442739498896416114101872669254211737214849326902939415497785017122332054481845136384146921471964626171102388746863374348358277233182419660152394979194092054027219095549022933232613925823069733896111407225910761119559767346782289724210336630844352542631523498779774452056036460264469321051769769174035624417020930254644367587872230136681608826755939258939067842014594343647560758815260141342134904736596121026396438236613851854329094158070019023478678562961597456126379166197641182478756454436319251483175994095385449235457435752398521258385399437045003199903373184217065309122212654019234861348976731849152708783889295571557923618331489051685183517058837774988349831986584432869933721032675539777920429091851513514455895420239272323181001941312421064666710994657426219430110220873369878279841302213195969866044140720209506755241178050329350689496316202431158438124369085358339990769542542566171100430143775397717886351539893913032961423272090607610207088898585947992293892828464375779014323319748123575057560830484396275995940475991886220129956783444518587607821053503496130840351001837187098277794293045561019329670018167823079567641373935668150543562377629305481465107170360493318469615719797553667030554178502524840484125992683259670851308082151606925938027880140945946537410136889004609448843978385444426072408875643356798753699295043687375844218650297745830765249001612460506072605735852623357834121075611750821665298303566774584928765880358520896556124859715249835469728100401253782466462343621695432425639020811150838289862881707340786683491846791811243551950304992899804213334264450996067370878646139498560888447394856728330852042770889832827017398030872345317528118328321390258968335449267684376458229244150721890705714610896809221863891253813679106288818102394662727776046576293838780540625435427134927456953180236527058698559775257271351126962717696341546456637006466401819293889654947238526682439264378708382655199562770999693937958981080716675746791533067125183212436067889843705748536693262551259884395246908765176590676121993888302722538405397172722926096871728946437863506641521231954425213479304889653961544481894152624174460270612492288965959696022883635729382932550853280804776007175322598876776762109088487692759725925625263150866854912302550900892646145177577539858915950871887349080853965137119486698753349036059547827169769436495325341693667632645802797653251849938587543524908109430992461477534862872585436073161163195949075369709722874131026300864191913766830692479996559311536537212158941718690086877803142866083132960282967794660095870154196367790249242948636510640064003809851159020613570479706305985691131364732121549682561956009216158409898115431468010983258117951043085639344527432061111904032602377144872619050826749684175161618318133533179035442162996055887623177423374531982599586245840782652374063937560266645865319235256130169259737286107575027620897207607907824839374096520864915451445336534489206048967084946759003919923071241643995524528920633952456618816230203956786546302317404621315401814556150264863047503606942905870631975691074219830925989065085574447815212737580997326616419175619765860299714663241938432138570395521810904411037143590007088632626515949583548901953644190723303042457662929558024636883916635143941631215375565336469165951144166025554961681200235120479270101589950045835430604590387536905747990341392307667411568327299499538817042857194617074290511983199098929313753444818160474468825238468794198685279790128113729329429618640987041618794145913433300402721987019002274801303816316922757867931870127777740633355103427070969736469280924360066924472713023980340831364105245822783673942888643045377865356206945556441622877830106476131797567258177035289784290841589050458199088937627485663333908431542166305201411698793294688639326977932701222325827068492923684980186571760457898132225756361920586249838236559361524737964028611318695504327952948310102963264275828360181922270247408594070737910431193410015127411445503242052092256049016353505971279549516282916719326457355731074214749472696455979337141560142744383785882611373510128533300952617865187965435292017025154489720051401229621480438139592378106302479347709664927239925077245852690510298499599169958639259070055928174978928333093352950485743890998238739489603370895688703821592526544401946149585857589341566706507719070439858838767803132009497871424565502508519344424866802440722905199160488777375652351759212685796208069287796107817442214736255895463389759854405771843900852395244845174547254792518854440799961572593578077609479520634551893530328839177841759780821440120142398794550848702194580210891097829640308799075615826770952490672402233778189972549783045568745542006606738894713878278860073263196050468723110598027828526855009525404289784849201296404430107450944590232194126156523306645535062946764414192817440364028485386329016672153511941914794036449202083008606814589548343816844384126368655803592811685235812269043114753639492905142267536393701038204250622951445906835776282175165282664771345279278159369591756204137413464887804922904920213027124282077311001392743584788606406522344061020948464638838287416280076152057753971546271050702504679865970163711005761333727479354944399100649964314753561991483657613878123082632557421750056216703653751996953432924529877158994551298644689694515001310852999003422349585358803116599917976726223074888555499363766617891907627740813512516667669164263709401387774205613991739449111363525846943558496798338399100046374682924958601900575302112915698489874256282336287929183912510250987229776737011235055496755489939404034898238784197566039492521214611608486236601197769964836187021044270607432150700942646602088470477420113076077929639105633222135482073785373459021467723471103502332762624999719125427765428344322641707182040003264168254183910439142300321602064588549183730572871938386182024740339190832103913813654001451705499381566455446355252369377629822140346906975899208503693754962334008065490249653204112651198799234264477985242800017947761786266203585594674625599618053809137428659170600868207293614544648432540676407335389906521862319632346652021871769658176492064598917415256425377153926911402694633906826416966822560204652400700844877893533575011640022538462427251692223910137534710995973943977460009928150876551879192300374409100573709317985075253738501467472544095817468648405933211589713213966087994678952469074500646463444035350455638593216289210510351402930566496108499064727106471782916013551191915544225774976856613615952187288853406808345062742509839027263867969578875954663076981167113685757543127604896019269449841433708844178071299118205619920077885699348702195261952014381068430494141617888583434926417218455844426031019976418225990488090760888558756901019220128856709564327190956708048455093022692072677118105162260520260963452693727884212747028523125900999678127130124185618684268549775488557099637822311592489714988450351642114000146129445747909339649216400048401384660893637683330096230065468986953289977156796353849889692862231596279211797435915587658911871031074030278642266533411294833632998944024829151773752065184109846751132941123415381345314894798420422648078419264962764748606934988292886852698354171520447027839979048461647703057507880889328853703824989989549911558795971437101963780817118045986344683254907770667164381049116563415869322795477458740926268985803326897483045576380867262908066674025247266543711995781229641082028531356617961390204428910743621340117930508808490936631579703973834673639851343301380228819266527612571880088735383968268505887813548581952519550681759435100387535445142715305104397878120413279222456974206957670937521566061700979440508497424529088022595528119587288681061666590342790814192621410155404833983493749046852795304329247051041379122133772348681461109538616676143620267133822711166970551881536993018485023209696182099506583502196412797963891812920147779710840412789830849826117010555511211253852477065258726626948215368718300510637877648663515174170266397210340214017254836077647000875159179127676489016761450343047961083213036898019905307790785618742566424349108932792890308081626434610642211103540774598394193928661652451636127237910178624765005169531031022985232700883491856062496103607315063593682135348005208359372645475188545077478075496477207025001018159241960729211510664541653239436286953643997404179463399291793140392753375635249935554515533471287999392968885785098269279185945998085451489195661679460536591167733486808558250828695620871725682237106517372826157724470505966747157648658990824619825303718760346868578178939831898601696169818801567482180804481720777290549865191733613553925347145273161328069599007434019240924974280323916075084060650843911330491641754653242674292459875461125999211657840759255307807225956181069386913954725133899800212008474250941686446252093656657734888868917014084626902274720703020646053332340136246818262867507608746895930828096304275946767692505100767373989980216453387119156243565194777875703092867642881876341579423262666189026974266568748038629739568919484962833536996220164004591750641011280125065325673575060775710578840425992952860659937650570428299721673164599145510771846678976940859147503486967058147306179427288772072424078403068239587704269222250242903860081364960079783353172286084040632152660108843100391552824094812659596037777469341871708118249492419508977008996495452704428640332601585326801249150145457755310703323934112721504814743692736012467465653334984323946676238998777578230510710134739615519805269541571262619220556780555612385789480144903878984791877672481203286271745455593087155158138871519006772293943648490999873581586997371318222967397186086435799450492998659277007777279774686031671271381166048726501568964241323658541261993489705594665321511904212229823401696720488977111445146980438698036257739019198176593142987416957101823624020186531056780723450261372756622547947545079316182215009845453181731165454815383380773466838562732984206871513638236252126637161811883153887028023095188823697558730166376283145525938152715331760933425114513521628677918984629334760001976086744028763148294624340298065239473241650745908111891867056322716524765396023632022984092279369951520783727890189775173608826645167141695768290118056164594387575210064530658849540812443780816332327372986683867626734221872245379280590210510494279695373270500190572673032378553369497731385940772068757599975396099225325316200961332424307981281560625834898308645150175082011595179319019074938818091679950314673485829642074407898107595676450989919083003182482813402870339752126241991952423554227632339245809978656816513874613869750714455683294664756295157764955221366576450379473936504242714133083704847037576414264515107156171882332997397286742097586629514203520979640666896661815760076252219250419337543502612508292614420634488650550128217392167343806835668732650699657471906888388632617945546471995315409954912019198330125083563470303099301583740450306475405661421991532174848479291950550190871323026588106303919719123753399994505082789135365137062732174097865239571783160380877880134195226200973729805361279041491552262765803073096375690597444417116278030997494527703275709285654057468674752574512606832360067208543520041791087734985661957988761308713355210086586796063744915572424144499660407192764660198384666506907466510698907136529355208143223699129465536616192391838022070300381012555433588465786109891942603313745892719688438889409893694143354409414042891548016768022580820003407614508850343600088536861721617146389363563171199088118768480455785458973529750170204690484761835151624661264883467842979736288255725134350829218634025378514701898650893695071960019740616669142831773944472333938769210883371443405598658047652308299971055786656307012847166772884073314239787259425540814485366833590772484752803502116821799246859274715320160492153004485847340895457997537776238317757505074891798924274217252268029480269317410355218038344388490977551647163844662673618576653788118509164661244298355975165675244022286534900626451131772219068122348775268913940103698378704680421171333616499700397431459017636659530418804750342339170315466231903033888616780966006657266970490724385869753292297129668057543377966541542806630813943586359509967451077958351789442122575588204805630354425962705423267809825891941167099244604348116936005390789645111255489149023216629739391785881728533369194517901129462596910785895035618314830659021569668663701274987443869210546658442796301054740144271497160515312582401846559796979281970506964421626128348460213974333712618401449338230820665035630949124831620093696436737456744417185425717197278583406659149994640548207333533840864298993498069766614091926482791997946288178564207398638242991793702496659060823674263543605812941246434142766650775460212880286887505413266111299649368124859846125072061066453585541375157403596292621985427626652956444744887404061655040059578177449264076941026833989123663664923475801645483992895246511739675837165049948250322312414236841342772405152762749689317723036863290653379903486005194002550522249696675359083327485374581855746579941845807932611902537255371231605494683691573072351141358887534493386380480546628103460969423519557650624622309169728623999144479607996931498642282917030793873307468104961345564195527273306185547271739181372723526279725703473494669114226103899691769751358793655033807008627441549597890530144781050044754678471224967747349128748170836006202218733354285594176678301183767828440560776879958200183699091357646073944785161374941010672946429536542849829482543559775840231102745840354362588552313247800611984173572077241438485378406852178414497161832829118869676390592085938755532544487899576012181429793408059127273176264881653932668995806718877465390285772705362783897881789174202030542302168035513805250450715842238604739862364021707056538882273908217517296918533448039027273249907517476541702211757169821074497358461611484178488459189488261154651011146437779181266088853413100562205527160276679972601461717644288865792038719410368068229628790594328924457342088287301785365066354615490491707041594501110675894738200565854657038669425806557908030013769938374382634640526251918078135840140518661668568918713986739624536800154923671571347250864448088514633344437012769628411829189264435056012392949422603762103256089150812481939570404391081868640465290656523027320731318971267244920424911689187123396280004242488935239132291096096665031699843605241734151304625841326732772007680427191004434488842993123618326351237258693855502104745450016056704466116728489759878095817461446466884179745245095933123270921865421501717077939306616325570008200186599536081022483456137709500774515951563152149176500021847287616741020367569119507135827791665115622625839035299962111232509940161994176663983828096669182915807222863036443255485312977106951238638191377769529235193389835186050629129283608221917399180583915907987160618621567042759306541125279412343420831794773090765993443176171797637799050004821854349284850021160386273208743868998404351844915377103455723216869963577956399722768935978498494340336963198213493975207625576672692945445700639055887840832522423426293413002171620609232220709827115130385811392194558195288634613674013843482673410266487106689712309843152998890323987136496550986607560146458887886132804681131074567446336845803084751244438836226431495330506397212215990075904812720609842333669945199647617953543259333237866891167033931370307828735802543977845177461539916748962614827247898159689544420941087124487162263511409036901253777870704775309200506444533221104513266871738734267390211266912751707082450615270952675617117837188614888982825185372398132847285002537522206110323053409460447947427538792706770126874018761320126218846699850833711551040097727960141515108577728382109678058014944219548055660989600456558177434559596267654671172870065222135547623599271613905792298483967172338521904158438508025853237716418816418156852429365236176285896590600091682663609560037565212445026781815490036947386421402143205881515026395410031597644777925369307109732384292315245522003158163579383945595264318468922648257953294381186310043178175983614877299417894028018185048916027801389726380030005356773963868325152953416236059686821651078594078678695991036401720072902203788174871454000849085539515441633540873810379840457725218278267337291905012294469841138497557269358620402173982629787637997518034524331140028707259819291708882386704988226673089921317575882988650999265053805183515258060209443464782190547032939423834714431633135537435063189073668433634756185903957437301382408953737136851442769111828962427417299754122086917205076207988333003714822334327023196306383723398342020801777654157435193758193069280277525912527101344276377033569551709506762349758115209940487192221610701863792093416108049262313027778980244569193416003292321971141921332580522499946716730063569012229955094413089733280670872158130435674911806595333993866957201278963163382580725338933588361322605603337020635212047272526316322478149269232073596191395966207977067786686298249511282301426441650339802196526056627522087517863917884416285895106017133388638252487344379288396001881092695284865832193210327081043933226383241426468241457074337463926197975426850606054600768181546783213074831739716734695400704489158670791079961765028544370040951911509097563135394619135771032029179367400743973400397336677227994820116444956018982040996743536126130955507436172394228083132321979741603195110023507358069515350338474965510515304452026621978167665383134707836451540578652776338595838886838155495341062972272042304301685012838935077359749440496822715911976884174205293199583534431469487043807552299316534930819934241015309791444854167276892050309754957823360157990035473322181697523071712770713846854402520333493301828384250309549841675866418208343405541691477451463274304812089806517968805973116295647508975882419729616832557025153466501654696737921902779053172076795183486328921075518002845815729217704589495513367008166558851296586489506917808595730911337461320122741569582553333258973728276330485840021763894222590405747482931604304276311294371079144016832772225181197141020736695096478002521101172352102971028403039972522400116767741414695733443265258034538391751974974362954497731998558467429190800048198283830487319546783803215698927927641935740387116243813987521650236240409426936850084083580841357777015986791294317113837316471553446622594949566076455280366305127117529238643810677550178230119476766470388938398900737250831463155013436638087030880939681587567758919856819888140381409712862562970454097933364462391517457335572525970533549497457981423062514844708938390170942972219207093725075399115895695873231196816373596732366438796571626997553279728079686042633275022904835188318312859415870492680582878345039630689988676146845436983889163866809863016852854260398555668964221260242777391115826170128712353403177667679300489770773141933735626440459400450563149063576394971475086092908726953559195113530247162001351921125623569703428077910351624525719651537114254861978824105257547438313803850970604075785478363592205564679345654229217502480911430436983386982631572559646105152999091688473064340550579179120516683047180973669293620791403936437504645790523340707789869094293185519786965080312759559294173788357367672467330584031234273552981505592918677138069302960313550225523079523376480173457230394154598275939168996547541574315369586474490274865392952597363806737913728443320782994883309920635166481182940086029247371953127335201311226262744186312794779050906988709537283759751752621629737444185098483350614720810078921593655515664871499148475263350592013940360644092184784006382199358040588649256039465006774273851275997298480638505362678709759259416188273388736892945407761389378326733881871545509683164703616272720081014906095219257104912040688702856973870940717175637983110831012450005618495667499022455547415089143063143478030170219983792380257617561815561699451257250142358266005757998359354032246345027643290058351843792633941518965655728435711062988011027412042204059486688731237923335100108481541079513643049633741918542930961367439633132897543475469183988847359912639179193814828678988450573588343656669634091384028890828596719528080552648149601580971762773357593501308607787537065329094625715581854916857149499625847816496510724430545093701243810124707684778461998301185448561524409617271612986018156999383369082794041540221579771643558787226873983966448215374013093786514669395905835922106466821612525425350793311084202047713069486406340082851577003705057910934103947162054334161566102611295541612945114590220762305568732528552529729855635770714599825107802310935056997220744148019980501669177464164638487434255354616160068116239772846527105302228145489129445323808183780065897439180562503973472108392099059075669060044555488025382578184550171021418055085611620243447124244752718737621387527948802110907173483081600816443212162969360380120445521731078165665183943699477898128510316677324427129063519242555604150944700955739982595882138541078762270966507647650700565858044752438622898721185452923017607585940256173423558641771273744710913909932025313645661015240695627547350752131292685064289285093450852327843552844884398330141925351039445393020799019352207511470451200021378404628315876635215568871948727925248306303021646707078699951172307118349139835302637687848988950846865731155831479659837055927546154142748680273459463076175672239132070510184123874109082974114603078651044696944479645260386771492597238260430413904110983587401697942933844336248229007244512978327574605941817681397666309601159688570138172696922920448145270668722637204258123069033672649636155608370073353933349513162161829413449215172754169796620253006658650519966541218259427088509258873506914533444986610503784111608408325972172436589785225533771551071285256852445198619183625737400511330498737952304792015848378110749990645648136908444381867232530967212493608153646370243637162526738053306526122625048798164491005188932543828149687669218757842995127758964406977799970890026556413006083776995412133512813931517916326587947955017756786699463191068913032875338217452085215585663802944525626429792138744329645309746776023974708260108170050103137073357686450670328998114150917328107209189069042784154473872579561091697436587702406272002335772793433519414363737870529615248276273599369586754247893051168154711414981021256683838597125518719499550774964818771096049395792953169785884420412476101277622487369151694035140422231476419824842745949532320812622509232061129833326922946998598425417384271930800925252243505521154023923584737698876561808417816666938758107828166102956649829089588134057987981654915527066694637563957794411961474429497796416848572686107914168255603289770744154729327142293758007536808516892087530218931778510327289882028057990875563140628726633675447556306354855784376735375856856945231709952572741234882875108325841938453487667828259137003893845644628199890832271529354357895451712892495394976417159256253594387969356978753931099908155403912232332275295108254582822285794238809169118722196452408352430304435044741763799846400423493639100814516192657160112111644361990304974066781516687926106586217478790416972576536273346084877891904342335344499796183660647144228436323926114538194470341326246761217264691680858217064885360166048033187544936562457426227279145551216605042242963968313884623496504243494788527286470556432226678707917066427323126161351965518822850768277589629951221937673460573837052058748994454438023553629061138508222127759281976169993906125763866584984552550469675571444464410510013511406202426071208319073924327051037990246983117465897110637739879611446951165849057034065095122548289643711736653718113789003136106764020028624253022073183831439201458502302385406436185527367044205293414490292270599891808704314017120323220012887396266234115063978796305205330465808949323142863214447443129750518747078018508563669004953637123636475353015888076707485777656120957481062380869218609749475730254518345623749496301395894145256777605031990842525019392917176123850211605844795039311801765936029612022889033859345406318200558825256831616286503368660121633052536426233461001889195670811922609984167110750766961274494549463303744998099492373370210047486845599547403297227729637267920891278490803041500675436650688419877037286328138503135422921792105118467530141991150033615514344960779579212349702924061173270924217114347564569376385947531110777760778570012688757547831634313564322187633132075322244298621950881242953630554162042904843972938600676921881652329705274502241439609357218563728750733150167814431062064172344291046411827433851781836451958707448090821344860021865292347790980088198774995093377051065004281965437969610497633529170203576599203930900526091883672636689597870228962869024286823287896258829726489086993621551964198411280025166265418554949948025419177340182351787288416395480393168177376549831140933317968270069475324206604992503004804393004837021093776380164920565669328094048141567734572343593962904495918131668833501983260478194134671990753959353204448779265528398934197716792310260594607557430884041432113448066172602273600747777822632885198613342114090784617092008068054745340548638856535761675334335511684683438125235729567724765395762461943921179296602885420611728700834450555106363575028321187260892077334300197417944938249162793299881496760212418332870326062102568879990020718205345832622291084372933904858587089967793505712861970660006157376288643206937350247869878455744176039992573734915640472594188867173007790235757142957618897139288038824307546475562593490733707533134346071968944829798616458710484909055639662487671049217446732398219842482127583900135829898468859146484807543824738469550079297102024762234887059207433473047561773607729547508358670024705558800090713446394770233198656238707776541383253107027393786350609716996392224380301412980614101759824675979102754237906948708423854343062571547322747219869959600006261289836069399975690192334656449093173223043683374738483193270917761933163035642289054328966889398191581960679228778785973097647534555583654860955804436001043320844589177202095199516377635775354916224047628035265342800262851232916275664466174043963035904727204790551386885993735030028741145605606414772950618103950422825147153489773985361429467639239565333732476747203315324455318424456100591986307221804707677638094535934018700385845612698764071142681104753647058855704743807171444141875414212250377741560045496610803277849395405773179994670088463792847902422417288057678766004525024414036683399158403812759535033303776081651524657092176713638332182440008998209078013132097187022277994903244203430626228322011568630980612640732423801220638595334897818586081128716566994202941338738647148530968278597800938729388629254421663280767453402406277744785702402056005913080918787548914473161336752261621312455669522490393630830021801674960015693300877303793688056395811010634948997901138550881177112151963320738612650517801878785735767573217800138039319159085314020135727257061435082484300143979128226487310510179967045591475172954693087700767441841891424026113734674185458002477038924449588147796173526707392307436442085743640765788497162568731765522980358027078089443863696773301828946136296479959544902812806115016525738449107210054387071878930464790886527850143798092233347674929090201564019134847763235589759370967142112485673729064724819488800607857348038917159066113429581005038566933187696336719204127835532222741424092473558577348516516497962033258909500597104805434436564995742881263869827596933363468222284204847951267860115639548235917209754455918636208521103517704421434160533365600853168676432764584275165624016686003071671790158032307462659932618228942542459274739401654877135369268006924576412777956814995107541114788783458712146086127740606892372661872664037453748940687650522425273654286714411819672671359398381618085994985053934162319914139979763037083189550532110798602722340236490805961622933757429439303127962079313397492962898636712989617899644202961232660189681069623477918832787218847415382434533849745019004183417768701603367525911030320646625296534815505043327801089647284831288177202299678752769551026290635290577885236951464737235700252441445834221367586301311546248347967311152159280921178645519710993574756757141558247541996745650295071048133826327616771258586411778097540949719979411683641808701986796779982891603307410246247090109353147354559199871235299287835530167460810739693850108240504963591460060472908069407199132095459705930614905850311877924861380726598990899814391483720289331011048075217353642352614958065259482225609184131909716547379470761462507449453507370811109495862157419737772911485410374756492175975729352351843639484395639204229532935528293947222685796898371784733737382775184484173729227598811511519375808112959435494894566326356281143931446784975330822549896117433726893244708658519117164282075343660410260734485437418437960279345134066556546025901546884863214006062323613202436282849273988633498221926928904780500422866753804103363234503070043710310963890338795346580694586410296891529868811191500315522639124024705820093858050658556046201342661945326585540883325323285639571275186492470317282242907401098489398164409588633362810221199683857740654673800230159008433164402000530266248867777510928885558869494010027210862585709361962450550660427291961413231213936833403884606474111138544803682607438539497355876607029536666882391133026913525696456446478196400053560101709904485811324100527459912566128732472211137403268494506618278144087743982025147858553579862661160012906365549965276384592152539868761510762057806017801201095106375162012422484116074441469817465589439616129515820428677561140260504394209064140323702905268558419989779055843986525091546356159731914260233019775437970292177270675616409127388745497738044635128579003931487575496982059972129718816829227708330886814987997311737048617191113037737694595802157643494445912062545470852681557649393852700805937079848283367876514435496453718488266947890793599491952383485249940950867580103894542015043958255325170344680214475021592090711331047596990713665050968622590531078785201544211330825382756001669922667752816930351070663360376993775038238211547423177772544336167699525798866754838799520997508069716530043715705723162607249303875899832354483248260765433205586079519680683254559102155349951284413090232088942142515350355909337743314362270573196553131182600122475257090584208184927093675082424252224318478516456214359552010344723225020276795643950008176534621352459777425629054562617308758843125835266717693911266161664442146570053210525625367297879937924757772147843639324986317282920811965336368554754206126001308362419067358783803108771942586932019446881665813522569225082428155207857251826431403368785088401387540862596911754530108482036536678504918256882375290930238337039728995776161160890930078502003491863667781206250604901828133410712413153033339647169882338630693160295329405262523533417114309271242878577177554646951353815091881208433571514248271137196827233350516621737517394095233346962380568990866811013451228616204161897646338680018810900436438521848647497236572877524535610467742071363480851039894496619579500774419203234050322203195504342068546895006064456984422173251364976742825059178254038768716513898083461703198216124086930131328679751373215085441076323783834948745852156605796770596129928353991048996713964766078326471335245960092419559743934845162892530642770430901855337017527011927970013117257696374771767799056522901579056233758433941362866711136108524392961547284539434778444775603803277902306090476936894150640686039737347071260300408243926193270028283280850433537289398266198792619542199563977255978667838634006651544829467431398357099887402107004585031303561814566211568463338716878057452573925564653135801721740144445573947068096715154763862582611197099789570498207004088033226072536587994779385612421959023129188644611278648573122832632818735031972316458191291022846781138471188506101017032387063208731743700780912788403911986846902434453614631959348103974188049680049356016492984215322298053411130080173213842099533783225365671964992827481681847479980122408396452209170271676875538435110066757580310561090918142739986856162428892050555252171943076733182274938804047636725968015279937385275699308388104934893718168407881943891238959422730731564703772702690706228516718377420749584303642490378064138542296778440539798505449952908163084719129452669525064827845033956191846467333888656089301169187245636427681048146272252903963421463384797911764877496974863960337487543855514845370232347188654594841570314948477335266673070480854231138206784470170322538573447582514601258212031214541240575328667388053957423541689614762816641027243435545811145950150856259010420673295846480012364023923451369467617154367943312610055896340223416113716737587967018874802859269662582348525053431474995919400933296603100970645088170744939761865695419933207462866111989047460938146626340901444123475407926033052929391006214779330967312806749552572472380998323474859876008402501435433541011319513135636660472922634799808123565946789121739654193276431602825496449304680645336272119462522206906320563421368434629237481300177085105813404808361196927932840266013912252986735272327029643865857344385103963788590158298483797630986134332722567736304603058195657532251965556703256019860858676744177054897579257233848915054969147736395687254862269284518794456077522933619322839688449049806145267651833949785394827019869956368350845579758555608910884024464247935763337672633013872967920577841726334831040169455737400091413311840108071719634173126074912285539149796858646013624702356543897905361727987063828366770074924770712836742722057260089860995416334133730018193884138956303417562353504404763399129858092506730076726595051326764189061557908948875110935110118116076328825719320804782233324910660429314843628604494957705309834012371051535793716032125654842815136233849337093016985983424140266965265493424778120241240206351349776268144272600126670746986909403992957968322915873710044756000405197373106360963024198178723901353411854418051982583277665098996173655793609518972866762906355458675810547090881301272461884238227413202781024603934916655594419224676509177596037283271781711309591260981824000075532059572911515843829246178347407434667222965487374968386212896471303748431363424701867322109248713289443136258818114611344704651631338318332726452786585355584305719711794794434871748999122993878092158790746363467995090194487923950003439302390962574032630153576067737704676800833515132410423000336015813980373828738732676411034131019292357291016561755743321806692436202881753292978582975202136076960150336292820125002852485717722982818685201033476665945414610703377791556709435082036288097727351989435754303474649741606683268354301858508521208729268672410893682879913579230690932568938711600165439753933980667254100020730528359130603907860793433846480806857263551096702593111184155775791387289746679778175324047408032640942791775084664580950270462654502838644296033003112135269337841252735328523183216841703153439700220186640241002900248607059802894524471537103228349093602703768433631617160446952714254478794318443030888213683470448562900675306816353574280503626641375512689677435411371739906015667066537595979264990217900803171240766872441723395276531408112063481003777056470701827726280294359155247554528112830320036854290861134874993328049986242606600082630404163867715972666890258273464138242913459493668434824949020644018461478397723482483322345980401070415466757486354311653098624345409311065235961543060419874638894917323605462189611752888326398193316147231662833933773735875525354450865909210228038004400868753935404493941655462717967284999824622455201092961750057678291990710300726353546568270007680401252277853930381654413498671081749058651725106252116584963431026995156147312450836272879684288055752687208976931494206549642295875080424582239756132123673156556291959993818734273198131671878490532266707274195380975746748382201478802443410937522951095765676936548725100028465407467775397096804200144817721050182276955886297034234735488929849191559815576981226565276807129775616600450214735270529975214222500703286700977963496868450923626572457642217067438195917326889049886756863586568186150991357848365103068626426364147882988387586874246682070167190815359636850785799774282380707652068126509245002286214711140677263892030921477804240791053281692868864507433094160993327289479436292423469673766214058318776249893836509003948191298341113847054032717342447243581664990813138148057750312022613618658974832240968745993848453798777227167011154183613109899031132762745126333884105325797642592118745294282423148908545986786413619226693753243239142825570953656663854416336561686993694726201516276020952300736725085550517198833934940910040605214545035851230738797655812794853507963666335122757932285123261254681038866857330580789580574940349834347608471109475778385406663546116940133943528953414328195579481826705217635941869876006645843614441310973173088266821125628588210676389769798633086148575223164645842117457075911293793441483881525868649581750571323830210889757407479125666151653127968027269365869618121661579930104252926622721973682736252755817534086281680776997686593873132394434385438727161503223114573294317526582897435053711445850448955456152232665605714039367969100878916473093410517138732396513279641230645634053405728179101292775866949575925654577018167832835197191288346939367339428588683836680678923683167609179899749685280647400497125682192027293081652082366375284521204623837805664002641726794071280686843037721719609041777250469818828509755855449715998317518755183950354532854837433797626540720405509712564883848588778094673659645315358120317293239776592768694707283481047659176496803797283343461470272832475927001451353217513961145422515354839612514032368952715128345128974955292835299310191789396455946758222616175865260467276399810372017311057165638727589391844528084507725165662139202073990817796151316394830131886389562790428317918930921948099947213811870233157058934762552118951625451360614010228534122176497999806111293156355277163476777641960145045655149825286625091782969029089650172212257578636691550225967320851752426069553881135847755270605959333355284263038510874729757735143432624866909691507899144023517003208432920802927465871653582527205611930897368591788981341910606601217635773134801103391530799534054455788993587999170617943005109391603165590192033187514099268760335227805190808424098262276771532293684929379241750150645244166709417437158975519817856905395691198219408880204659701360604938133780440122407278661950560382382224785583115769782787265415417625175388217843072171817911762734274177672418049939786535355116901156687176783678324095324490496111729779394254603615296674414368989316820339557266971807842358210206058917606108083334110851732627432537348912824683547619661141535290409006675607290630279315485262798923035328340438095879453777282347918285462385918592717624251253957058004133901792734634588232944073242106733212067979301197258169957605809287727312257294217699476591745827881958218905489529358001106719330388515346132420396194443678874919431874643732355826293593406744783783319657893726463412032470672857392077430355980760695873716419477624074982885911194637633127414716988455155355862576666990968158688527666829501023213952650936542441698874361133298411234790376965547011716591344815409657549338290022438271920659717993263718589349890732931226090996886128486934626416222449667442424357143986512613843880007173256008905047325740166634617756767406070038731694728490809920400625625971177055501541227366169041891313044151422946673238751286525590424360296589827144161940591044589242413646440323266882846109761746644856573101174120464068183705863424632512281244504125639094482897649963154365746548881989080657535126239902951176342453934425728081068270380289051825108366276125015569012748317928331501355650500845232720272847205396112113071760334575493325947052504175144115219841395031392503462540153089080619365952742217215889270504957846630081463074271499381100200855131038321590796880396461421264158628096281156278373712486882764771005762206452309175528694535855981479555550511039967143437777831723564139326318560756759708565191978622235214845257260506977448829156700412828150588088151915744903134367705583860516366829685261413421745143520208237425723656221663072873261508452644194428375657409059531829041399665151857735204474915762103672233340194465433733194094253697599175139296241890331633499483752029762062426421632012854798649123591405607720499904382505792378590499551528925375996607186023954992802494431687516049193700241870474229944576957477098089059148049620530508673151756939295559840360819140446016979151817332783452644279339806787470324661187940648518697221651526345266382470992203888578158567771786156438270979865882530271872486038855546269240826266279608041747803284204793413835700424985664646756872520478177660696347359109506255922434169056798032886738929752652869262861843023111825220603090046111423853958999002166749662928286096980201005180928574307916120699353466601922694114527363197767724933791975455041737204408962685210396162050161432184947248020879885672040678576635659498567772535580587227577112514277912059681126326598680582288462470835959617342344432159186478912309391849355133237985772331367789015368880308886590224904495971917525957911991980348974934197213172034955418934817063915208982508646892076746085411195900101806689350910043211330147944037145962161904073733295114655428389214221825216284364064239352627466981157511232513263013380187008367921019242624347006724631903199375960839822209945379744815807585194928789153448217458433199043156279873682657696452550192119492075086199199748993696998861323416305650752903737168780751568066454806078453151447980891142103633097498266162233701739973091627797836223025012896065005620169093113083235318629690311258696220624522301375629320934308052565034704881649955299134747970766564358483572142143702714005832635781328211106645641497138492970373936421461299471937808078683970032474942825429724180213647948821629712371134291177760385469669917314223057921125730374938080150607898936666681447598670969341620346079151275703996579252140354547187844968395526761882885021379678524234308671279618630438340207896059434518384589816238067149738740537080449965142134028502185425790940812371373162019993554809186532281367248422812661436496898192759355538660414906932496190457419593707342239883100025997494505370111188330388588253016516040755841706590340829038668437475666797780946076831462706499381809305479345012699676222656148838268392494253001100388565441965194899142932973184557090147273896919906056615274593435335645994556102864757581703491859364712414100979310671368664874481011278726136580510309295302036410859292623924599078265269784390150337899608593875024938026730237202547642825257045203005977516443969423863589314592195819836704954971474037201642603095744040737812034514065128847110319684007016853878184610174823836415154100522368565298389433501887913170913001159512231173994553116258852078936879516593664817858949437219509495670543213963436794912299872816062852699089564641427149188677491687106444379243870996369620686597191511454685406579275801942411582514624708685516804618405958060889829537613366558002216012638841156786809340188015484535783710765245674487488635699743515760153774883759082509037565424235904148798525243961388353686864287237015496291486807844223257626373490088212930295243723458098114597776143850932007002683600242977857401329174308361215710246231735159258988390063264708147257337416942815777409286346364145446152252126287096382595919897390544085246025600543835281996624587948521107471212945207586746663931355302699262210400339840858262878714012916015160877509892413142504263311221923977013194008313851330613479915516422112714477974541803171493114506519240620939787772637067772682200674696225034786323610675548336068837340098986663177770927407823330790557943872682978698839964606840157993372764320679540971567417692647972900562149924276038381165967761796615945524594407630386328733280513254890688513851076339512698956159445168984526991022775317351643696709685665285889530798145588361810010056998955603730304125715992837259769224503305018172212580435189866702099954116521293412799381564211907030133769638558207571987693999898755450752311192004473638130092371872679131631162163795599392045283458799023857863363171690696156714522557661740874526112065416660577963228271882687813012935492389794480695184955128096524775792681990810215559721703902708443312196033173815897121051400344112760145760884032248786499284509262487044287004406332266287813221872862253570410971094706674641686541331854411979861692844524462707075359765374952591614925341302985624841079825002225816195223648048320922073398282496905004819153353847478198895886691720435211070288644883030450003940059133360685520494168654351218053064419365939054307362692462496146906675824569972194847876339383208804642802347899397748622033466451660594460145925092969040943924349026325831662836715489967796871105160832539966990403337607191253934659743749990026600996225169271042274717729851223507530189104118052418517637081374190814075041016908007781063040583169944342908054353256700675403369910919154944836601236019902736810069640767689808497213675178510012939668965170833322424925362286014326551959117811042672021811277948281870054686994316018421867574115015878746115950551930760688840458620288983586702962533842522322710364978222378480967295308233578525451089224296224723067923000046632392836569418492747231109123075296403463342838124497272571666877747730438330252635519370434859826487898228124870046642771907887741486646436365528903370946624738302154607618133562462315457583223735002388337085114565134857259309939374691012434897762661114189009172726426452065080652266210321638782087353518081627016283919736658038347049527529252922785747050283641988094605858236011165936381505610936731497115889631016325401991960431525226883715568743557125524964062472687294467802706326907179034718872699849415430959032935161179320113528048643577797301242568670966268626208327685803256584061312284862714233368724709152093362749641348397928848156769925149073598651308427568438631404874794395311850428054072393321553568168937648995698292530478825515580818085322422259978958640081087835507630616282676978076662238967986466540811151793365226560864662351170594493970739980192200394763349332231118899723151668356080977986992209248034625904639399434646777365164246573215058194591367705790822274362369970590894099086636817569835782256803994594264482322106009494845853014055313584392566164803221037335362324478404715192106458843941296867321264746186093534598457183474391309431395947099760673640132073913532236347904898177142060212902463836322738365425724563324970313483675912498118517265454723219011407041752547696615300563651364340637214932711729760777893043362506136041675843882176049283269505830693422269792651534946572831653801581897806152073177150860026980791711095173690257861379180423080840594367380789480484807873822915788379095473283185314180106425483647217497724974637943318414579398302505009290562386563022394180545287650218137901879746256899570221604842441106371414647754498428740414634137984037290515211304273022692028131155237043181190002926976625382531389776044762929558424586083923322865132347942320514011468215954257640841516952722995489879764413058608357325391565518764532057055904387983526541336964472759849127474932428753677997804545123424631394264716479373450343503641491641301953655098991901286246081982271721684397332779651923247261362319028403957476926565056839444209504307075458674307688120727659503349958358939030041823632364064595573212098394346885406217757703784166203020175538302221650406112305114341766226551562264616901415060057641484098607384936359524625358443740969278698891477279269214373600754309486529613608175574196000969233673601888141444073809329348340453811735975236645064122736286145940234508299732783836018642058660712030689914856454237643306086387332906887775501080193887649121559652820259275565182185168512828409212384216474435175495187215966694712080225895967857799476854893647742928310468155239794247261222674581184338070471709334237817724665470322515858259387218060760212194455819298960986574974498094221620213103697128005224688774560577484384699908869824657672869393694757596992211707251031099973440914726980651638305735957488467066738951079719003845266777951115109136789172772902357249062193198826073044787902078056183257184985746063143242837882539209345596966184670667675037317084335558885511584293701871479321271766830302872157502544408131801996817358169085331054600969547878361259583171223699393385900422638469281601720675567591124227414822854364511909548505492336037267334667756811110834461805419439552623169154615531999424532455328416312058602003412683234221355909690433430663894337677518204692450545305140483666019947991652409254430260542997031639008607272790462782105307185725500830805293244720426811015389323791852909586600981578431465117195648013727867803262675622458871871554800764998807506320989242494276677369722352402952644282068210985659725910046968251113759865475839558303665623904531001604818208081789109575032233946174490627889507607773747779088112830511797386875275218255703016757596577333459117350085494502385557123128003998205248749301616409439857507183027628647289711698954963761796489554933159285223770996847386363729385162983936105633880128633473454926634933367646786906363808265774328169733132168862300921389536076085314219335764369422222312930514614588397779981045923890567204888248936614898068357762237587019074201028317677798243191850515512726733628982979859577794233291543928386293526218736728334070388785248518890024429797271619259812841925649513056580561841606287224448498521189709663852723668292912197714854307418822539386414726415180647503536670476987086464507856873884644943168243634145431464834237461760893453642878877622233304697589916165064131225542951354810076200432377085523827229271004821408536596582615723552375594972980108674326728065901869489219898125403730730407719879736983487900941385301172987772343751684849571433663125773945074956277337005626705333619866296537063605816214054295674788715239022111270388962868728503136290756073764394796112513553385663554483780834815588316217693137719868262362887003726924733460729774350382131917680126653483546491748827966641765788219176741742374826944972935048920117715981420755224219641050252120887558116427824545285316828335402897643552855711103115029567310830974086495648521455692822483707341419073035778660369737251704761299970419589923252379606058440175104897725494143216251321089792623158073313551789679901411338397817170362162916352409173662037222176917310116507247339166527211921858428435060785099189200400955330887971955083110375752225186981515541702074224042257761477458357781558737167921815612111423400756656566023593973886713784186368032191617253366466260031093380276093303998407135964214463259953881313875861749228002906743078223684118184278187653694576872149551762179273464212568676621507804308361886834907383014579383277959464060916978588441516465015030250726635420009826731326270548146709083165726730217817484825520288270768693070109135175319137091572193791404580403271990409309835281566306921730998679593394065262981405939883437347203873501193560571612182257918531928375621323504528102126379742634590068619548130469671508272784454483143950079562432162459862457211437552157059592688188971344029092611995344090181276348576214469569768428932320767444518411153491784554340548321050951628096232275737909035897681889135683256861922625021170146942076062010231777940392613942725147700636495729090456119774775635243574015879039907202176265907597538911661364946000926443098862594168855960746132853224043122771465993857057835308987473238462568551029671608120649534652664675458499129928564274356509774205456107332036687501210853137629492552362661709192292518499895840455688965047580914067467828669844276290681032459758271004808908547862683902003946075563111157119374935657531161511373723065682409801388047732465607016920843996833044679311885665378348203612317805862309316811965150653160550417957868531091430623459932347824305173948904048710625468163290561044180726187081489425501276273926351563044912905153377930473401130128213480348461861457403060124037754873207426228614518415436670729614398357807858030299125153763557283470703766925593379047164381645402200078660788628856156132935912023657991866161095013077489668451083328758980510565305586581003249848456999968834655323658411894820311459268518625499159612121379138648216620164849291814925999172243302436655147704900681577912544875956669655067694041717310308658757466101047162527284639041091903380028798068551711311944348171169532628221785276965153394215549080793790124696770141803978145109296311254667763915881598871492368233552293943463907783129085354513952112438362828115857207920512118169825052359382188421271158997440319765154824028330470379672803585615671769972612894384290027863161482608977586561655524436052678113268776919062070013781206684393139744877836031069495502682293489358661341546520536231654035987225052663238106559147124447203247411258691557452231017573664424617703273857599580853466337556169760990656540284552205577499989709871947329921965872754941698116887773280440493555203587884790088729119028996020225771814580622421533350264139751427826173874616864759833978253691551294871255782807906698230204278034367466310750933101440545286921865561936457942157116690596518740586657933633276637689970971534016419553362492495133697063757645394455743471338807281829481396375301976916582282720602573400364135501735524389205045273383359211875218875232681778494204686150444243612218657456294418981222569856682602923575197802416556711888882920781339195025451482806770952341464734712360402640074849916267053863414376342945109082334684186013073060056654913636344257407434439257757666045393275913155310754240589922099547818414067066954023990882261112164484454592038835069318876688498681797960064986574492533928947078046325326593278310969117647183205247614677301425174601050784791528093456101054204780157676481353063106700015241432737058613759808582405495390362489087800595617571206969684810000338990886289240169830963597396342687057615111386235119586333475474520504459109410947084036650392045490801472077039828257725674778341655211449941034788248753270733602064174870165251898572601671906227653194515188835847019825853803099498295726297308899075889802328241460227919043216075212603854570666321960859083938923258339080759968481902546232232210772292408706563991101957868746765191510480601294464138660060917238350081623383226817908275955279898697218086107809930904761312555990441982067722792744522748658653083450430911975239199045235648212698369358626479584790027925859736336734767786867423064085761493467449678624940979587198269520110837954259420943695351497227723826422015342532690932248859156017344486253217346486416387131148571420352774761784327019968201332635266767861139507522537883575651189885658232231645158037082945211879927627003807818867849100155092085675858805188678060877620655221635382438931769038883244971368670729583580435930005632240095194998909148024699673332733404518574327260153684173301924054759700158949630985854622380759805969954066130258169558089052581770823665405171933795594423983295801600961840942941323416104089376885267062364483187227631492293190150670211422405164887795801628530987463122322165311445388755363525902722225160648889131913079383166638540055557081609156683835941307314879929187715717928714358227749013061349638676562903319180018888672641479363834308756309858766705929869653421311662074919573478694310469631025252362950719120361066936847841002465472527625711129348164868399180082776158621234479346767483006596029030758139279632300365693013595556464664845697298366935370063872904688020249278671833224260827445853627641209801518993738775059533589845960788913092217959492914434643829985189534232926489757624522538105691693716367169049676294218819898369304797797882363737853823526080242238372381275065087722266247084824067988875989987495428591080162523771919055085104025064501032572472836343593640917746286784221201471777875525567222307440151792735073180952872764945032164469884508440240421700334727917526149275179147671095581233222773092782817755010192347478696621501786252721983950462475287006696339931883980654240128765649334019863901972953903812776046250478908192191185586140842251248721441532205839175994113672591656485595298437790646546784569009209840850249933044283762711805073000093818576491748454697785443971697855307469884518361662332358713088873837511830142476325095651753624733159677776118423689099214465598738923475506751456670004402638319403379263800322767298211860799051391955044028974033986808507959209796910908058814574413777513990187303633567388962686113196520849021971938472554534283831924653909906009533324714377364606015156459717756100074087864611258259015396575229384137159395729483717935547358846555948915279453506958439431106254789251685591111189829805422471931734300876796266554665629853486926884087063050984721645906444286927323849108625070642695145787982384437085964772585482417383090397743409307755058008320632599501635370366955727411867516602533076820653362917073751578548544170745005387453313720127903834041852727397504606010558950574106664290532371919510996404049144430190139363447605453938769572733448775661035635350494384827421154038742465607677394574903774468655465160018175133059840966855126598181583932421002688828807881062943284361804058504679639239857731440844509598283970969504515691790636874922267517476995942924843637153693655189701880748808981622269964224512845098489016717035234352021883621054738214384977213065197755705912304428299546121850636443048332176759352923908875293339934058634939295564922848147488180674589915614628239449267953361343782626202418018912427162979121309409596324305624825957476665984456226615938930919024922148400562701054645748932465090114481907321514661633844088959695198859547132047891005103086029122497699485055630712356375482864148003000242890333873502508786082944286087728105631208547066436834593247390023088310796850531480634029182200585775510518186300780320667551979163009892147475710513548042341940401428608937144727016141678815296656911550541696255047506267537478383776338032652387276613713940859632601317920970221643608504928152298304851787000141268223562358696710534806889312462339655151978710885647150839284742337985567161315412239817047260864562120698596276821756099720753714770763658408348433815674875461163597938564201272202053418229330838285241332309580840305401018953089802900676674499249723871649546462444860707839931366186412102368867036096650059371576559217952947806647638309544909151440232564397829614784940333813841133702894491872346911626687544797701569091568776311819937973652242428374818956524689535616434393727676220893169101994144381552330529226859946056170123311951654297405636596665697958679556229672631233657857079818943657108025121294135318276608693073996490418213030467157916069210435528793860980529147509680795989142633638548974354942164130515215827296701114901265237180008126108318683618587090072758607594368279877733356051717213840635811253897213755856379490950784605281193688393471419972260363267360744948595642898647221635812080271558199139762100505600726145888046911216740117175211053243283149016103541328973870041435963304017872033474992461175488602133110111492658093442188699775398152004464042320735666773555937161088470272267170735230179022032785912637744449753207151931559265925911806425827469508292770318894761710832231696750563588861387906458196260471089685395632149415310957090239435032540341877479597868027863410989458518969627179159009402944590139900947363034109309491426445903151253668945613162480259278181342533448479252608116555994482064271807945474458585500914455165636106751210169216779887602702351675960513935853700018444324029666111939095911539169906800154130214950374170567545650952345101985491602292480630811758334651345185379054441310385555782839132556170300300693239117491598621635898401798731729719537433532024652716373779574046733404497563697298712779551579477553565092348052923503783530309896849673755600318556385288037523551635187137490566534471843852089297892098703221364691027887139158599729226502564518765583625697938850115568487838495018690928875912747475241428545248035897708319205687438551864242126595904908787231301610721708078840856506267556846339569891120358985237829870714736043987896690764564172365895117225893935066130425237486018921996590274319288015556403391854680562119723171030578469000572662394581932854549601674604456637820590852367474366078239935576884055662889091551800339726354908939216468803218031370302713494585070864820737415860380867415362341423801648037015539088872541813674403376190854584826008524391463418638569497524773816283069162226334240044557245140389854592585056759686923898945731137183536709344918906580471913614383091314345165507202289273136761344123411118469073492788431624373910342293053098005665990435317674201791812803430601956725404830094797438604776550072050078944777173003605846604131386668763088551436249353045006122369699970078828030783226812310713536161474953638535105044640648026553343446707774221301104549615679339266627936572619930054930870376481666867834596350355727854175698292582545171096761316202085044998153584487894507111621428864114907380003772203859469955477449584409221023900091690257297484078855748362894412175835000122553927320489945027282971134495883862315154443983443036480490615305224444308982964190000712302901268512257998283533894849948506545379455774947241990927180760207436694962421292246483200264823883831361988651188338091641327767607647679746335386650238449720736538258448560858741674910525124621930483166230467510890753334244917802678766975822519052483042052040985549219892923705907652288036383204084802435327080026721553332221738816563625700656317027837586967162985442162441370343560751521572435070819266819706065013696250705412781203246096983819099086628468622840294145576122019576372913885602224543777318385394194809178615028922263487207876541127718489036464968994873707019751186585049986459135134861292153197697294280810629406379544210923516364295659462325247108828907753541355800933384559283735968961683464705993367500927907678209387279306814870390005640025032374818614528439737582067613744033372725827291272802857422336223026954375979757429461201470397017789465867034768752142731666724287616510486205731498878338765344037788655748581276673460772444023951200760413635147992613814789982717303623294450251341429082752906328982113228751602112411892351801257991985022359939732665864760402716785214723047017350271528040443948039208027513206816445032518933537174167048857403348980019971301153416159857978009688419554758773288389740769299646210564789888654877329491266261590123802792093356879108861650156860010981375079660976651739827651480051188668157475169706697355429074464643348666191679753505889114849788127781974483246359031418346694816684347878302683890836810111913449183658808012858055265084522545403208479557401230012382061433531574437980190827900460038725622351232210403412638137679198263542386053573425982004005829492012508415848783777099140190428110868636761410411837158466206864251127155014696648215118241221065973418630135991085302243066556726992304650134463775188222828674695909535440870796678230976561587839937075486723324605508872529817227683041267264486958459732335248051910446626871171928966317024178476238741406294401641254666389247045866123506360427013405734512004072483846760976751355333602352780420843831043026709470951048516575927649796662715528008809975102798475774844333250689238524477046876085433176697974888734222416550227319594256361747019831580616794709331577088656132259104902716470356386200593461861296936089183349488229160984765509410245426034210848529032675021515108273848251590264180569504817508316258640783245945991403895784204791653700855754984283317198389636477173540968094905605829257062419074182946883659068788000894699705209529485893671865671668628424342615159370916176135486240368674994619563492566243845178688023455659163887137240356094320023751459770304464840357755097730669970545791588371985865551394622040327737709381532855782533083703558645052045260207465363941732809535591521150869883455633723075670999270273682031421425050636388713665905827763075440773906279960358633097094749462919782653745257483694916444927674339758405510158757298531189565377127553929522869255192135687957230848464541523897647541669397634398280979746267962905395628490756490316851367403475055368923144640627237418361497359437913189668404214667037175095436376663679918838046395806542890660585806123448593682963491125576376367679728614322561561650292805745367897360119013243134366371865677455054619162626558165785431827273964493260133811245780467131467240991141740708648593676187299509148264025477116400719377227110985139024492269169896575117879747880720845698162027986166904357438394270312967336971310869356952966278258985371034397861421759278242327544539783294682167265037044136599766256878461295088604164099861805192548329469429470766271354974083075930674350069048119933857158476466941967439691495616530079926606044811773300681377731774484344316649136365694661423477865174830857800410274052219108934551168513317557942807181260847022191238236559502260737255997856721168356971841238006693790453498461374087913483163669625064633758067561350583051597499041498499284736426210447829035576254795872158734339938232833701141027106283964803627330900263966625687479495005535212524907591565224943241371899168471288421569145242408488450218733492339285909851367615076610144335647226864384023619604788267307384530766060599434448732274581469738678798054233633442095865787603893649449288010599098995827220742246326125845250122554847910346275332927472043486201854021759444690409253619889737081471784107923148924145330552084504498851511549076529972657596440925482051586328350705702226303748593545614826008624240680410251094189174723393670380334693981808413211259108622516040500011287876354522871376403051477685508915008347181817675726869007272128977969394695715659128983573670117916094859034353306790950081831386692827413034280053513277178741646136099143671985556955134492528161871854536940653648572120963944890638440422074366996933855290692104757784402825560545365069610946257337052315621256754473752358205805731976268074192436329276426897981181875093608821767360610946542088296874734786092489988292035769921693785394663426453310565813699612037616828441702377146704479285332338987331699792335108063492064191386673356780426686316223046180743187341478302551663977698923819918494389879074921334562239885958657686581871247849563708081485629662091167230419139399759946444368089916317016996428627611069616902958376626028724290088602194402314288191562200782283772538898670082678169853744743236228501463468269338164062136430760866163909365070521028795871119377996549590851783289506065643631437523328796754615599309756337642079452304164086995101764568654622158835872225985294828846235495476259228274412376471365854392872289984912685259203693982826870579946205247147128706359917678754780412625841003435135259932070505073599649193156645759111257436425436286209093328990202472767767388818183960547341979428717283534611460231306335811206019798653150520301317071822382140131631781058547669574298080675615823771638350487388791069053971870938126966420813703545263917167331476577435870082869812701618675454449903935500207325900499841707623108604022485655822051517210260585616180478227269751229130052042399817290535525423187214441115653260847316546889404339871842638698041248239418404609095633158684275175079174621129106363996851441243772748029754447012459553636216956777104000919849128588221249287932363345153802595758022468975701317733576293452733584059192461804910010551815933339654389058195815856894794452406020659533401147510584388811736589779281494240460621411618046090740798746830081098251657857915133671439419184149436253847848044673925403301602404542800634281063355776490162784154023394353891514885177216628162006433064075191069582388642655961824010356455993494777289215113389105360693295111318088998052172289164382670770477156619063414033179493895875510480686222618165808920116485242622117864174844499092235603005154043624107485349684728246852095173542411714078911969544345951875516770536979660142978595338211059402059124464137083387673720156499123162671338074034039328010729550608937396467506225243664610843439755544577151672710207815472537006237611224422070647914170061892311851695734579402511952002086293777618553601777112153882242639085511240102728383011299115985965358973223929225731583059117819402127206482846578432327218004163546250456931060946349193605376459008856085711606961489604286344599811233510320298187389671551834960343941549392133145562284727477047992496002506773206574479369807334119063836816928038040254874218435150100464637499900502450119327144409764015273891856390318793926659431238330247865694514765207995727070238458032466898554057158683440770584039187226880437104377946450774963597716922964437001345711626259932379197435820484947970012111503204600617307310124332664210184823648959623514258034395564564377072080881516357334550165889869755409953829210495421087770910708411101943625645324867489458642570455598354542878800060187955947292913050632620429124348805742984591692944987893718697155487911973551878309699122547969487734082105263444730389349158490862160011761511895706760749664894713512559819041910694759362403309528039139148665422359294616180310382948941526740380188795239662913008898453072982827538172571024304537955574588444951208184238267394854425146657628265559458487217335889940026443761512400665255587852845282490714135782338211721237576345421185729724755228373291841189478984708837981931877113707854453601857332683600819407596525467413629809309479813780121867533914620192896083271261507635095430479945479280413540200370579864258293165105458263505950561382236908291572188360128248564514693027737624833642053310489532063656816320378684612566314062426560187885699390259704444753533458347742641531601515156205514693839311599451673778139215104564945285163769502292775562555066066944019791936795239161736312019424846365528346919809998995470503215195341112002694625102965818881930754059169314391738003639219106384545855714960510529275871558344047542449394489981180920046715636695773241333057109914882334448976614494082366198449184728247949704292135348617077304526129885566915362803511945483119836291054057602191968366848244280579342936967980124648245663700502984413996678181760627181156566170511919924487910416783284248976896545620034142495384123979734762684028877554028851173909418450523109124172510020938130942655768892958507461713807537162213302013944328240369722294674261608775287034540116066737207299986357916269456561411475916406491155622189153578004581777370130103058033345788437888829350895907139372012502028987343749307974627059149681507686499874175761679363368347539757026074352350825862124651421274996207058812139616636151225970192737768789271456732912903654967754939583494710491152881779332554709104965695791045490474745989320303270091427875241907393000092470670049218276596242096702375090417856349674724303990878346872150968209762611043315099283083633325951955026215918146213417051948072761584478312899347242171964910932061551174595823176320779904771168350811761760182817333918779500407516120570988253763879380804119604731063473031193439573873236612067131957943765921391986472425264660129315358004404667943264401338346147616254166433000320961639578581642312149796599576381343762006973733564753547706722584379530572931584467229194508821151596739502884910997871837616784268312606913324147709591954275448010450968232213830772177676242157329442077010037325053107300042658869890827503266756471222063890062466063451900370079866565778198959626286005991839856419407200855092232351378275109384183312289476980559140841437432842928876772240174079758703008974021009548240939149140782656809927911777587897206277548677050562212455401293886417271051724534955347014936400166384107166641664031337127534780744422089130261571164975389726117493005044453842043670821942015705884904686563560640942070971241842692443612761294140841847830320381907564143530371042046866186925796811630399009821435539274510645967122935508949957652351490065595646198815545721982773723426288295417609420722588207518917049992594268921260338037163339344425703315650422858870178614502493983547734908757389258781747571904533364383949642979796228591081086917569242381304989146129759926042875020265362194130991738461229470608500398455753347321654089447084673266069969603518835503246477405921754228791805208268020652271715565654281884058083322559979957465067081366877475643313733735009965528025971672813729922233488297866077186046510580276606455075991745975078474955986858091591944702396354082434377417373965241489459440218430115389040935016997322926837216385858463810931307684650680515769854155416734478752071883518439511865761939461204751715858089678806041305669972175529294780323284172061589486257124383618213537952371869626449966971084590954756968200021851579450253951698915154102417773980781011450416722015818171683951205783441802230821460755635410630737448389673194849008798812925841337763787146996734379740065648560187211802634072143250769876622651219173247386919678656387533767474541968885866818173075165603207245122433775262240177353333196136285392722614185702854310592627913755186570179226719029994439619990774538873253558516784930511378823686089479915888613295544688524187920403457847951474166504612370729424814613689517957452236520180908980509403529527205074467929811464053322398031323040091475004502056180004541933403487060438911112063995744370366105811289000607037816880423346077609549908703621602344802218156136044199382612896470040808146517723349023469488285668811456083648499269208675355889087220474643537656326269154586316669312499179904556337555700086055979411838566460152609893597777974480158661129755772590138398278077091157755866569190334439375208003730960221848969972267770219701773226977547602207614825764211351321841832869133009391757051780564941408759365155402105175994212358040532575514156079235180186707577296057112781800834437817693902937018603607061807606319903416500292559237485359372696499681414955316771760120229426493484074140144465523075178502022593221714318664647796915437494479833675556289380209619024110050379005291958683960275318190370212075375242530720918918158175620515248542510738346061213182773551516913758731728186105610791825311203063571220146979324895398651987575241907396656579408630544112340014409388987496907234776032501914191133162212190418243759703424343129882326037104605722356941515788143404204020148356495629574093385994137422835801834940592144626998116316938348097515017081668796836616211247112800858821223643562501405050416158105357359685177443201126411343528709669742155293282315467853958763575235896612267992638985689466090820423836660517802706069564855587122971832039277962524775898101920049391873722726169788440647444387234138486880732286486302749057350286691180246070690039380392123140690078649124150392978631821775209258264784279336742752387963700711374274948495968305541142523889853856566181152820842318358965964796067098584827867901285231940501287691500962956577095413402646178232771628570907131036817227642695975486893225152130547060876176267192575969056306683588511306007725700370862208755497844321577076960615872616375283892788979823925785503543459379715377029850086310612425841026752569498361955531352516584384547872327558091020257756192363381773737941181921081769724954235282655715526707708885862215667473674288562235553751783806135763474173138678039358592653759357866463112839678596492117082724819790720068272554499790728674939626864756004109776282822082219739420600162598972130713495092264704839073556927067450574489883184791890693491456366239512238825722054957486190576089632137678956054083541638974854272766554659006293159677082829266103930733320719099725620954674006451960971337487299322457400534430046344636885137993269129735641837685240371535608575969886470199349580466636834769930377541459117067532597630927663595373031187680788607289544836494465131158103490972959900008485126489324195974841853177815211925297143487616306096834848140359779970409105262108931254288662544580490906336923308172213635708644151944792397664319159936592598487414072303053573931066159327353211407426052696316867463177704108275283269062845841870562427565606892119419147981062284073346716251040324162511282268101018709800135130532554063919807093550467253777212140035638821218764844126285589548338472355065506086998080370280494671872546726155380499577354685644311886355033621914436109585033993885189362311312988061940645284180754458073135516279607965416393099164068798450205186778917678711621305613653404824520756139962560304235125611572542253240996326447802846606328445824855924169164994063147962201004165771897560565925147967709712307078292015459347029265771655248762800558112511497501675547923354778650495239082931445448847587031799256651645696027101587107844694143251167443337894878176629278165854309083993748425364845055224095870857014602366625233957015266434161614599109871128541371181620357255201603132290892103951136882716760007146623583648294306028530647939263886544594294631357627058171263465806097099357718333848470035333695404728206554955434263141015502313773568603390652978868860532898133766297663980638035872842035104194249893456863611617838553836671710558700861862040838172688860346521251726227024261893458026811768371065313078100070396208829696723999292069184474140830463099889115097313631053424431445856404160402151989439741677293845815175730141984462783742921539271936484958982557936683519187310722414896023354459708058661151261178788480950261037495610837419536576174579036337902768900594069996261848874971754950034457216339372787498060486257394617841006735090094585166335918567209329878613815507435168297991780689812245451603358191767484009563893288074106194756467591286434497183169048560209958783184450482816331881722959597535439964747197622526605218197571133714013457597932455170770646272719785683636238320803321083086102686429651350077953568029238097487648594484209552708552678691006814301610055308307130293457882352308944377518703409075957264412598573605021258656149846791584700447253857223006576048319134364701647743982307022159309288642272245812031225357830166227358948905716511701046714461284425662968490418500717269805149129971823813206879978328452064647570550755156755004183753376062962797276656661532267203644643544504836738099890604968495527093149163933093220889774618398688198196994612964134434080462475230598454357049677580952777239914494907010791752461014756785190486363644448935865955002333594153299695275538954881799084406676859609230593357472041897209155153738500836408174885292412010858524715641866485410892156806226926574639387280611440300965268259295470866280688367335330545056027475864990202295197649732198487554012935236063042934288309530400501520576334795229594660105471557164305796987649563351359465307459509621856164086831325101558977515737755999575326336267866479736244126015900647356075655892430890970359629020013430518722708629776365846227278478089451046204014558499973616285303063541338193639640374186341017858441467865745936342138814903758800473205340381102062685575440840566183246120987607655901169022167197594496443831046540708659902641173582210874364196047972458735398267736211616627527121257079092851097290373287288961061765506970099611714576705836065490906570047594377007497151085490511157543447491998823612789646387530657838940212384654934125312573140174994247425893016460453887608658352247665950199657431497953376518812630923599610129899863971511923737581136502120005297764493986510479562440915030288085579804657484597381582660468828817058655916519629996015742180140927764060968473859458285365015837756958925999621082597520235205743566190773658440361109976702145452557881993720391419376820069589098390743357338402624031574983755605348327825754144952583506864524453982179145438618121887908036102279249470746537261872458162110695456601413300135162969138894293293942797398273106219995892854937402028255802553296136435590258565316180380787759969725047763555641877564354890508761172190403134307365956459312606904532786409907381691602580090663846275822024499360164394334968320847386569896826965153877854490128869858399589546915296901600437044895567383226758252303358481261309330707719240302476474270159936159661483878346205152600405658064021949592040109335087670998317605730998606920215861226995932122966913103141671977891092354363028895286324022302747074116891247229933088764165780542998868186925608756856364462165970503794256457655794435200024234459380493987776562217409445854676645933413396482922872381472703587444940997301546350209851893832147465136449505858481548807479227410027536853479306862884992542460680904951150128535929596974594123260082200839089722996422259630346588232008961481378379618867346048246960897498567514766836164547468302138268763754807619808968701630910049039399606484456356437659644642586661039318630002080360263908881181769660829394687658167197142142137767416177001010047675567059668605414911882321269043515100327681931602792233655844047597525972605427011080311264818522877196683206730080805872915963710695331402146078111159668824036908005617618894705616051644125875127462814919674622793807336845535740951588762763181497782986836538565815238346562662829320836439689761967776586855725388163363765749913855587409519093655549347036859791563055757216944878287744620909811516119433242659155989651998808164683698465977752083901371892801746438190290286016433442748644340177424338978905734211792648369310636655174386745174665233604525740043394929716780686330452727812057295061359945849481831082137840785146359596036092207058268026363934876680705944665921533448957119696263955061836210999547859347521918781113250560218359959198609131213987099067529726184029714595961235910505089364458516671410914982151223764184757257888688617023032480131182550633782158712386750884518920213226342973371436609322053834136035009588941927281652097188806180110251210081650303012434262361055659229793172813914784193303557253354030043503354462073291363322817068189021148967148928944926104891163321673030652955321225585975736752354015860975265950538183676347850432399209943330420849655795597672319751572828760630009762628138101161292068894209294776258997397566359080316589201473053648016435182907712639346399558402057456611595376758375137267860400616698965221410873679868912833299036687443622692882179160157286058517662064903253701093100706578628573171918248347666148342695105665410869856239872165073068630252397706394886263060079408562936879833437412680559774856957175828966071878595549935533234782694488512748176138269251234769838550716465376565979472194880821470668478795786251274303775820547487639985184607116926225295509677276878122535790147482183190606868150286679733388965485047693794639368184425321043273573529690297572554628877492978146175062597507606775519625111129826625997560041598187893635798899677106234317570715127613514551511594902467442996622130617735142933362627602674881907746866221782526758483469598126251649398947440901149850841726307360387610669748644862314765026082285813833399805016236252230209000384204465020764533494764329618600415971070019579456294879791737193524612584959670729813027611144567622927971915106444109072165006753053230136390990021768855304146314632560650783485877459653527324690261404320613786190262851025441984928537330532519147144938925904389450065540598745120550084364051221689988433559435103913125866757177842597651317182750267082141765054911958252802236776928668847274470401993382290043779192307278987020956771493771336514121967513621279921752859617732454899216707365678441760821497775450082323819586868580413149555752647731957182639356187168961082278872838801561001092300107555652388763197893626164468513606468228898968935953351268650215990480635649938891968597878068244430547579141001877537620353161887634843046321370958371709580438188312153053780319742290799851619124250653036303242990061573514919353179863112404073217593226755237634177529185753538359999432076562566776150106502874834990585213726518919711578505273028545003508000868300372094511007670159073430561683089244841110464812260995183397628898334559320624103257749325023285344223033528452355090771880833332374820022892468195380419314593023075063416927076461433228638939034626867511979864562234028622065063034192478059587251565976507143777910590468465985325125241426060822430030911978842528534430839621396733645387952417835864210530073693211748796616405508536893966836385140178970625773412240221071834761436434723159523705874047543255690072266948076780257557839958474051051156751211501271692616317347827956079875969335438187604808409141289597376140784071335604516361212563034402781404646749624290653311273596693773704395891412285967629413379159750533021944313947458664763311335949763231401911674941625091500583288092390527918191890304005202009061184953663383227690226603504956936927744326527860249769310196538111599152094920673783117033672368817936372803483837458897093376260507679660851808309878072766024807076886157582466951558388107365263694999580257813686485148997199617624980722486925311801558630590750104538925605123192653825285451203750724221855866956323299041522303633438182815185324377548920525454050717911422761065977328600527829485546413736440704467565171438055064999421631201714306565354064075955958459520761430940316305054279093717659639111937370843103108641978605111660927305068057875073458396727581484890809265881104296399744164748479401234134456226411954620040252053817603533672573687270077602682555689081331919794655572106989554102836318371490616029909553801403573793985839648623346843641253415244858503107137592690027301196244849545617945049247208505066383647365923905265104570718440999086936814245930470279534802611216121959231233305873390094826750048385126880856851717955821177869026737477224645402140210519970846657411728683176029443142846985722396096717983384785501347036869583599311795158469501991239232492690254004971147814058185796474632443862682761577419241713352208766549625248428183068108180248527064434487219727558619073049882818566220116025727271032567756953596273368866610816763154537177637556813408442918276851548566485610209404540370927344423006533871085725988161088828447945494180822209941770973523680776625905024092512521804944447179968202960638692601876299599690325998834597402632129754570224768149656438189731537891245253649266094771228254290642941045075092707064054477939435325142195100634084749032184132432062437094428105646250343605027709999209047080109088915655935289802189019325295274933608663727014864967702151893106541384904183673698517460904958226693295701446085322167497712029273731767862473581551808525722803506399894326534078326387096650600935760480008625078662086812573230782239496765370889309577580101696366487400692637302465301869017903051130535851858871757382373904579924484542571208840090871655158469789757170874114266014838173950835359932605539970241548631039513903753118502002983824096153772256828667315364130032240922415153675389475205942570197577548982726145018860090879665153380612624654539965102443699216075404865136911146688511629463209201605558322895292087409709394102585786390399488780989686402101381988433456438471402870691985947104486390994277393475748848565016481865099638405140892317419641266264138233288631714339292257055743524730142734595844774436800872068774944920718528021943422740874142998733174938855341141838030957161684194227773743461642916063275336959467459770018460421891946534469298224429553071775414377358794274615886628201082811177056992728808612189483356049323449332435066662079384714170098904365756705845737174665760092285197404341152858997980143316180841911339197756539023464770312826344146902485307161222592058989789599230119044639272292301156207943950457897957037281417861280688791812047956824026397795056262150882768412410727052968628004233038020152870511085936888433218874913058524353048236834882386684352635266158929784380507755900359982649154239860821485885209457577605652640413688736800169582707439503058527777818708768710764744961063812409956589487622784303295408286143183197940874132999693421739930461521505748719123132852833704587657268825593101142990011989379085174080642613348491358899738608560380515850455819204062328600857653534575910694466809756615560721565708691166314885954917489963957353115980816464936417160825316275308277418914568422764703673215272493050847109064625002031414512734569083724717249361372496421985188948606646102946494523083687353883603007372118562603080078276977534911196346338752651986742641785994030989859063189061395479483139169287680789598050292551242796049623645201869693035219613229806269555485747460523629187990248118686082116912550786741771023711675545556473366369978009304038316222165987710651219140203741697917949396346493128033433936702475472726565715389307456033050409031010412730236062395215839402486810143727028089299572715210410165798789766581696839387775280069466383099704279232744028901474494848457001420605225946741504822800873902536949107264094426126940186690484288992078625991349361143836994541511768808279443627955948080726317647756031719291730920223553395950043410135037488991085577257863937299865265814345993588399734903481266548821138032493685405425213582198994738541751214722499709386078493498904497452715012939927816743545204090345165045189310633172684342288322438150885984169890455687338033922858013862672534671935401771662876218468779824464623587322884932734994573392292224661819126499287507435982345466842065498792089309878311899073470851328881547385352888377047688967873484239818188862247593349965217161315828505934812708418282944952664522390503246969233824321983822228356199649334598488401853973700388525520197815918208982855185160074720565185117192038328571322109677705578933011583625982310993698037424071621469697122238692048628552291663598745017120739349484258616549066976834827458201374306463201611257467715182757974548228846788239953484782751658383722253222161987345608460230450703959335948828074973455611562552636875830892621838457685926591877673891213458670463628484634697240921330217170372793005733172516063960054789295347121258041488100584987686060141169317141859957983895420672247869202768748388164096116533882087015178374270013599014470314990181767143872772863774098511578120574598355197071917693145987610046302220751892574627739043117130112845471197010258624530647281080102981564763529019588791005364123431721613773771089698763576776224850097000510807378674570868318754347357246098368933228960820532360763212014239896698704840425499750475154024367032537788420931981516045592939949431482918972748622789514495276051301284438886057589794829788146292799180559577288795623952586716772608246153590676893403572298071374863390079441035495126547644947178837874315434244512615297887616094050044759051289403828498997437543257354543564651835685063966195782761851173369336499598941015004843323250457578285159165443901515394208039050310243713134502688194435426100428629582457409995247243054233814343513769569444370421338923681443255121719820111007101268731515520865629188591592586021180533334938686144473505251273043130272282561656187105200719267131164538027172339069449606262091841199559769649070643105834559750653259942016931015191809155114921521747521800314234849547483597227269425214788332312989210039457635039007577597997034962188786405250952972734659495535828042407475468482039949119142468594805310559238487106815386885763530639915896722177125351596446468010763794259438735473780799552545147925104859236542123823775510305961088476645509363775243253321473083096590021962560308618234068634443712370392656036187795282140803606524488568906843534111741813887932858287339663156941474901252782904664934338468125404196264123868797754478658372656245641657833209211280396560130929767300453215886542562373890973154184164641621920825248570948818029369312752138455542485506577885118971310126776599885465027584076835289558522522312777409133393506404601626106340714335918684868758667148427742243606262053544472448909049402292447961694793303310962513726235188134631642728890802382149966039197766120083338593160669088289724340253939396545527792050770526657663028796173816997017243268375344963803793209489430764422869184313647749942530955797690943535063062235751493603895850053313900830355236670351000624508298740224092912233026930094808839815845712911883513304716934929214295448751540289130153601537611147478396579484433000481486040930314490928626957168534663863222631247948479508253035530858802917345521525975366718215954712121875688019656127109828909141816425103749152878496586570447775621396250254974532059237318687763150547693530389522484800758686286986694038862535672529442648580862250223688294829874211626287010777054594405698684857051903829052928185887790161566498448344061101378953196615342252011186195063298811568738156625654558833777753154191653712190930740585185569421244660655969769883703482724971508860210900823276330698481665905881448567322318005868216200528261803241951685038226278080858786260525116779762991243581414805532800165124875128356756827815692145237187242576515683975225360872691322326552907957764191573698159565738252448975819309160100314710351407553192255619631228355987849019564156059313793338287570376433905904583988482290801638119766547051369693903486723681239196127900392640240368241253029534149938321589075753071254031862564340232199132214690644721213578345494075191381384520212011075584389287059848622577051593438563715138584099408435667914138235093156178192148418647791995284743477033547871720660142271963536653008997752491366144851830246988713787964331785240560940574338363140293394140922541561156792111789077146536116781087588103304477804741096874059836992201182820823785838534012026072927942108217966813418072013650622083031927368423050050764705986934524071945466986518584984482245201290482468376160542340335483824400016069943244502132707907189553164133457897715200142519140453992720547162960678275191328805187127300257229524184608171895513335919611428956017228407690200112817806526782001780207269147164373639156464323246949562668413646248371772127657060556804912015450856294198760345689119308012069847109625130804317032656060704009011306281226914428783693043811152736279459973031373884194764874379575439487351397502338036432427280746754829900477646003404674907118029336674273818115643501273965555025613875878985385213979723721473928766611295742105146987018397905803020046371962189879088487965355618795096665249999546329124001540349767834163314155921531859280743919084113157344144169206803283975661617196771507359677875448229106008434988781496792469681736371100083989054232811927683799721872757027632794557979018827634607606636761479269106402332989608874910647049855765102871403632127244447345474844584075155344822541990270772197541387766916420991833896196406464441805609923488921486657433344178049162947143111646557671804659925381212952240086129675923857017981735009133054327636228257013214306895785190251939875804556929484491429269161973565453213996305018389335329975264783111612819972559686343113373585922775302265785755508342183697368723672114261057328740674479641193397157493695823421427961646728092990117048082570743287403115717778907731173575818973827408336342093037111408536162917975339421870679982556621517457123622286228989392570512827964775085128630501943348342885273984353767777003263906131544506885079976593405799515668166749974736046111946944160434140837456716491170566857919749477881752953331650680993623132423357722752660239170995800831122210390559219527321023341237047521793035664097027660386759168802123704241683279889490138564660698055128516565314517923105339006958488325949683760392740782543911622060906314082490933707478533689563230106669102629793026405546768733934583119827829835358347055240218125112396566199035282790362012430193104226236771790787974046347963566256814711105833792833428911506730076267617749454467621431110991655268975783988008499338947141584598759943752061502842832398750021860587339724905364052824248027667423470996910142166527150109495815192409055977841509110927166867239999187756410569176542341227371845431426196898171103248683255613198341509685178204190624194695381647185609098605531564319837590632682379438576931253058921904681085817212599579729367718136156272623998736721128200075405825828355550639843945094409080134940133348948938926054867184188808441989660684708754124401454211560999615671678921673111114350218424558273040004008101698966700543056969414932819823365618451546485022501674500439143195949138176761015876327096522749796845717903948662981350689457973942368506121986936657713048468168133296043997934334770399264686151686409758414705771393503143346360735500262946418851214621366410059161838566986474670086193088384138913319462118861461791314357992098833976204155888739719856154535630359598877133393977418355765627812103298699736108612725250173956872123523230555351847521159046470839050865292992191495181103761086096437258516806783957668847758146307157267005402293743454593236594569024050440484088969557370360449340577097041316405366994061421873248801778653375745530869308043504664477738203090565479993660952046710630606574029407427492662877803721331016708227789525477623835534297754496509190329779820600084425217081726246470661620027512415307705503168590426294525015110800315373254846314779900196449711331848225318994336515116622364806134935794800953524910436334869665014964877598455775089013695892453256452558299878430309268728618952396389663859581603984143886225355260485253085222333666942830878264535385371924981526174389905210057418078263167440317482452323511100916265767737729172822451887972019376976707234764049207753103013031769492532042683671276683618111123726480411283780790845988207299895528912798990109530936827838739139937905430888189028696112706916347256138254798281113388029226176549797677640338096334816562248916375521627426600921041890182935328231586589424861276996327146213285721211973746478837493091392505913065904117006828244285467131121564054000139990117232867498924971629069205207594453194364500200781308332588332796274464586443842248955449279881768466890356845117808770548898893175008064293246289030697635692806317041718027854480826601330819943536250608851459833027256815939145112498658347375393939661001659090450781287988171626691362128196363518488084704542517157664724641272689310631224798012300594910906394849735764396088845719381541067869663954188981130975075617213519753406218083122136374954883313850743727545649572270682089213574779314057996023742277640968078650123415379144232197841739811820601569768095006012704979411575386567381549376577620801742668318925427075288267689097360852090218757724098998567578452033781267137906575918586067224124225286849373238712999218905480114318810226843606428888330836587042509156442082785776069851703493366395082788886826649783000838217376253807246559131166306650936120126880231736302798219588102886753437632733555342695514683002721462803894072739266861792730383314752177367392031684616092482523818031593779246637778587950949609962227204167006418534498791799326936716402003704932777796598328941452319800406492475175777997488938597381770952866745349578489853004777858006592332955651416350296738783207826508312987369019679413074301158525624417131957367323503269056872577339726314491293002419816938360796262167945128300835413616026265336699249713275788414656413858757798220609003666062927465173853663499688021107152740078543276379430190770600716485410187377427910596797117902976675864380414487821864306804727621666856872096521555657447296323788412538371705238328128866396602196317750377507327110876444857318870272061134051123992620746496148474469020520497930436492071379603095260841201882936250778132431793209056341793035398243901422192732523272720532711429558354107442142592254536542126784993917218390926399628338747987873762590008335454556782825162617083667427642364144926208458628847053815711540905420753419469035943862540215643640464302997250780314325767492993750351852635528777759692163477076171767115349563153148630682869788795947421404323597666649388319883388748010034439827183597085977200540494336631426280674365153967777166355463506340559664932043554862307810507120561649181815035185379993158466269770216088239107352260520915090772655062075798007646821614852363147022359064835170582831332966544701080658258732555924904384609007578547914491482860746354889117860884360380598292585441184680735620368192792149264547886515060156876654702452100640389892152465733198692809809662525858701471223385507313195068415104523491624406768847009260154785192392723508904083697468090640628786501164674915522452083025331344345561663629142429717172836040921308481353636074759465286648294999798010662937857225649557233257844689077253271696990958400376457566166413555922680799803942049588298158887476560338094973141304680625571449281853354774884996144003826732677174739347220670588276599864101690339142416772004229803148662200663221779859534081143948790943734622925549855560221250086380480098189364868643165013329457130868536892770653026067073788689822965747184180383725461558450706559605769086338723308864479334221051700102718292132550629654725046431284716484028768159133580019936633375446768978742503330024020133940902147597160522890404695451923960675411695283436056862259618490920309498708519989380329617017946555468771323971231418412291802662139666070993605034834182727728043194091397679861062545191546095092485939753418461387072317401296806351974578921915060085472389551760441063308998500079730042361565402296342857420225625584723028166645696001317307924824068090865109673091707116910033985056194599097580489309844069062029425024118644856758178966082029701387790880005181606887830458940031262657662404065987206690936303956663573917375087416402636240708773834044682312960365895314259108610193876478380339584588471341897993367265867839284421442643348459466710684141957800578096185152816260754573559415181349000428073078743705959889982667845058708806604246522369994688374527884582672021374073506409921306327095343591663282795748333171180480608594352735538703968401295816324829204472825102813168099652375270886661984363117025869638458060752697158093567332105807063767228405180683935107095090941004404749581014776052506963936864587682530545425135949340462247667971094635750290094841183539706011957780128252697100566065989315005588460957068311529863325641533849312644363016986554821550331137000509382559456291787486852180755831309646830688782617873258933690090108315130204918022146697958271404374512555976524658066368578525847394156874708365679999356187918089636912414707823610480532324825314365450015272999183315849371093292753994380677840600272368790318882370437357596420067220398709212035327498965280595688952527917451969480930603074832075180744548310977157246496951130705472041198994113405088843213202588452456066657116451022521518883989293982153892118162060047742016587581325358786138843465059600580768132521871290347145129262547901572942111209434217755428196798001991387972173982414002504332819237615817163121041585959308694734317295648512027000167979345723112289357656249356499129405373079128160116631904417769115195798365285792628811610245064979615939183890161976096991688708217573618293112850277395841618119964636619941597205557745961932729452680643240829157782221954748164399701229581710018554779754769683252757387957083866817433206902227243224672848422726652885741056920817297873981821960018025369303735400107004777630866721916586957245391171801107319123870860760891827690168395486622710132269160748548047127255036904496802395706740669404863781249760030726708203303843791388320947393620707539215509648347417166349099318026490239966979238075599753164834340507103524214605554692343066575575305160201671250979228698160506046274435535428540829850700485511300879043510791311235713576989666982954561754076078912710330288688042442098820761033534114957241532342424555584162561879212013737116651935653590508541900737996856191436259254473889316219208126029321161080495931499954788647681236075781498910680243841623208380625407628299916254856970396350547852596828008398327785652221990270901578758549300661221451205405379377350019016729584346787136443765135563507756146574888367963916487465130930688752971999320271649063595857036801877455291614037478122396698394700381120194765038151938406146307415348017311383106812189099394017636815964749577838988506017774479141296484849985256146285267116559690672210185682616292467673832195019071004391723016121258377931338796256079352510232936671757546868113832095223497487238558464163905214895874485277723909104790043246915603584764767408260589297859206854343850924762329680280149426445298427172979397598773063435378358836373151508949489416497512252903462394335995677166084381926893343837456103398196817000190517642129051128978116343213058114742803585979894421634101766272617846968077732014462419803734438347052123867929532241853825799810765908169337644894353292289907603605418939279669984924509636643610079850014172503860652829598080849303526518962020205703679636354661430818438689347613524150678990444079508176601345720492592224618137408342795957639661224248624531955044747905658000070810741209119874927977861039709775114573722304973144859165064875465167505720533312168410799074899623923476911082191184958720441483429853429385037981845150350945421401991205816742525736346600532009710485918447790648974107590416205910182405404790328667534956888686074692792067996587176162099544374587929936515956076500161221287980875671207168924612747235019667757725682574038188649881600167177957574306967599913690858369331038577202088857558074303686917851941361771912313811419765701167981228895598897335485376455439806650737338844440258197119111092132896636817346984519878280706799877346770450592213661320355614576619699267530311746012143913602038784534757999680805460442026546082377020859491219538797219899243045497605958082570764383454680402962595428866602755148634425841405726827870938591748805338140798711837315022979320673181694804828860223737026049115878391682048483163084344658553483470334528329985345210637565477125833996952387632024174442812313335243479061777110559256577260776461430442111136410942536935319720736215648917460982407481324353894106626809068173950230881009250436035999079997556811028230605182202056422810324953100000010043712880549072731692820670986359126755361877932793943835150961903249178354927271546031366521515447088594462259849980239997293403704040338035250090060088727248946676362113052547131532920320843733458893152674522185977513449057088167328327819800833534559595320804115350808641908168086367090111749627653318796629476871608321117171208091953963552400308041873936665220681366397404910062813432806975533442751694312240415787640430253996893792776654515287651411687409110956089127511662925354523605304676074032685327267859778041653663533754440839975655927761790381424628603253445764470077616428248934054860033792517408210955983507935351365378954220671115497967883560545853542060563563368742724308712639786355750656690882480468950210272510275911998335000300030225937295985900794638121678951132345643628709709512326103837413334576663314606991903245668824649582283835296681178089533503588415992096728527989482109452895983052079493491686037757358528240264590121417925841779458391106876703246053302717296567826725854985397410221949304288825750460191769709734756514444462344283879805332262531590204605408032533774254392585194485228873508286427261039426960671004490721343753779007129492460541932773138568073990839409098075537807263634670085051777781129448185618015947388327557865537263011690039005139556654421683405577258340697330496641629704386626109858060498266327317041552555189574548199834508433089512465115568270411042260409089253743544891937605614653028184523444680150724561426675408467543628716403828725598724511808639382707315757200341654900372067265823030695957321042159228611200187606485621792651808487112658005320646390463405306412890195884377664122767314571208270458713760958192247146666463951870512802652703732948547031100720254813267548478622735370725346325623786167083604970842037836341089295639952875061616495795759216873642920551746640042291439273046144246237441778191275234234298028101175273448669387695126011933692768639174971503459773583885139068710581569289043439606881113996281796169526571877076749692624561020213740526199173627321653245311548863016893311295642169401470087246264393802012445202905913492262653025229244424684248232392748444436670595923042206154849956598651325649043292589552489802443047660828456114858849297921068973196361455644451950391379694011369187156741863971905123605841418048218835345078139229483313030177222599422181172961499011153264156455531255635745807571080089094694655384485024537242350223881042516953378460886361725568088305232062772457673572001284211088278742830116460663491326717133350340533505771402556743573481471284403558299956130819209118262171696751885249308921260629360141912333296614392361654729955571032483433659584962257868238738154448495599005555081686493336678139844569339993907265841608591258398499904625565187434205939698138906858784395890314254201276855891651941017457935908777191564386114926143725513701117763914183948320791763338604151295274437719403202065603004804795260969171859894797428063774072068502201938753575695418560345701891019281350531289037952724324921220610123086537244914956985488025734355836272213723712315191697216030287907506216233188288875742386480625473403665023173641629774338367946829634952990525749730925061177562177789010603088957838953713945849889418804694589022884840598567539565953334792990202437969352357687042648087343671407479898941766051574135200790452759089984350048871475182828554858724647522565820518694135284178168901411090453367810867287487279275183577017164195890092737124981969975680724068014508500218896190738021136503948793338458793048423747762866122261542274962464905739996095988393241443780072963796433899854921711355014606992488609027241946604855112093942371693320109138536275087320080653206368016511036984139296370278092544546304079440913150228381929144552261466744422444575214855276979421500331243830507856845654952789571861571556900014534227715118269323375234435692999446157340560437449786265363612848429994536871297458301286461739675111598627758766263991173715494739963909177991222186048458570298496726672521334418791017354635780840182905970314063438852622373528526105759173100530115218215489445272475002502029845299982717686719371981104789554679036549267012666007531101465807367011567215646678188475589109299760406632364040905082375675488782363974671614403117249532535344124878668423743070118757976291763836926280907244697833368240160261105101719025269912236866559650451536711794740551601124703227669245659666943725165346044407070935140780550101866866809429455188818138994473815223578384577965337887665702812775843783967688782718258681165987147436239922285907102592317213223321670845096583819745336874483281051726089686697644539705649915794654806599970391890079925716458410863892431441468798244641463182723154949091856094748332408102265046948469888518067296377046131409155100460426179931583165878179469486707821317773374606638343926075209741811860767352463112032809667400492311254816219438841319242271297919381438982219498956593350258428599579871524520413657172580724382126072945099371919913240649980566058969739404201040368259497407901192080178241539282601256537187436003696669532262289349881662336126470134558717859750091408024258499664378788972362015049807336489832683016612383152814158831590888151086087830914118580907980836027616031943684978396772391350942212080850584610047272980248677839378574035757594036508233167646244624344377562423330755817444065942568182091743930254535272514507530397527506495045879893320844439293838888163518200888805876169317142085059596571743895205473597771031844813483986760894175653839774548540307488595179885564465235753771179837537148130593072396655309261188979929817786365164006696706261068532405283898934576458770675232251671209288067720890409506881953426111440386872912580276973348627636241004571381972252892839041102488097699614082187560591706847258466873788873002458451709644982643191769957116259858811003322136791589442098431705976477794290165464344048915654637618683614995714144815101365412887112172958291691901174069351473827472202869302540880146219301855165754043241679356187470205889839280744861539019498280475760573471598905717838085114927173553126056359469364022287544765515661632279656720359342847889370207689226164680329893053483187283430631234631710534764664485876925899503938722318811739908191114170954727430836340930564780584447389550071296324351895635441755399161810785309478464589034826219944487027152931666742702542331501655812988445124335445446467386729905661890524303557018260548009400187459174938556367365354470522986425092800240264442659244803493555784244053858372486677891465207916026789107595145631631721380393691209042732832552739029748677406966400409038924676390744326287633155897370028368844362475254205735647648353826023379289613388731548333158986090508774117634692288466672332288308810042039455906292989628751688046951264301287303471382354415346108522651287582729799529690676914727234553545109333551982944729452884853718874593165589221209291367751740564151464307868252342646332944869129235824388576496860277118183916943865484732943088526707217619023686547404049112167937450926572101763783491448815174181651398418385326901414912843288541029245500407547527384586536450101893784286199513954952538358692280258407208209120724188047836301000585716712950310553000759831013515424856708617876887103821547631902058536147475277794759773051320621448802970939145175380264993915140664940402506045403493426732483043111427576505875157528660031873082868047296540665000981605285990843077021403318121268777933938704538864698286692269403791418646336603220150390660268757862164492938993573796395488021560009551224653578437203666635979595478235669933435392047307617812770641530827252102207412727695680589381862287014640919332724764209500346531508227941556518061744340723980405501751630434665497642701400384285457594866585731301473515503861338991526989117577811219606467832279738223869516651637295019047961638924617325476083483521660078865092364958567362820710470731157189408913913883800518533421659889671422226896499583988022822945996195929447527311936785114486140916448924991857694119912836710512254197824676169779539181400425618897994070938259534770078440096013091541753502610323997505568919207527166312820541879723253075413593235251682228906071646299782328549485529997751766857164399845527614550004957582574196403493162379182601930316720277361222354661311809251996519614580384098527210745626066502737592434043826567245555091793623351069343496429887377917877462554239186695108540443197625939499456790098548788287442151645364985184943137456260125335033091732374039036032568808731474034242985032771084675675493410458864842965798366301549780252846309513026378861560885540531307459085978626335276283735842861103932462335726385039829359991144634077198464231982881390038080342714341946872514175748099856512366239408956901920833607126096311915217529856797127548468065222900826630538483935939206178455835512266397684086807033543063055831057829792446318722294665043109515338271568152263730230783157592193248342635401122527263872935070293321362271814765354321605460624746202289614395561024640965715120982047674612924294529724729651475031710085566681454139149139982679207703997689301614894010756413087316934555351245265930755088939521771984353142807440856511872889833403980299903523328411124763617953709228346456706492853363222414139540813386289926937607795551360607672342444302059000054164381944119542175752926845252489339511307748306433425270645947840381928031486796366308206307467340054774955783253014274441213745488965764423865185561333138366821868331256228029385774747236758414425617665480860207043587283766662613457572211665718396412489258885063102909552150497763402878783956799359824264587507984711192639592018538698054030683537386360666552111120190133007850904743863821993111401774582796812129913658071247133837806280845127962814606287787952269621810994105634457668153025334567967038565311631204187364184064897873156488779404779002222700577893108529978356588605769824140308615636461676701967207135942412261396533961231321239822904822177147814154707813852926267363027578363264422198739483404424416234268125142914924932022809641939322930600023723280246234967749153116370106887040114082802786101803186893648635330282439499809994685212279740777422029966414550396292847654517377884857052808833324807674115070501158757489416201983958196436483247687288468113311708359437649898629455720831965108120346036125284563858148596255246873534913118711126915192144050654334796276832440584949275636183970125128815951420357529991541128589280419667905443311497568634739182168201803048520581223931449646276396455276844682825200967935166439159950908607491631677019815680274587138779778977378420833348338035629366990717768102320749542274192470219895163381382827868000917619065320798922684823935801335754875949561483303791632488478936686162317649651939106500342951108745736241495319690967901326788185557576223718636364501492940398672403863739338997940223914778547421115175272291391245930804921699241410248162061896668104943493936496365576881789885504500213165838338489774793013704294588718333567540042973735060289663916372922769502827785625591693173158049000361063126188446775980829067591006950376219104146700193541021300538168660055966727021608513537750469331714471096188647879699847639899620085048386776248645427605651562886071990505358404395900812856372820967734149988690488496245006228288695827590704805100193566547042731463929764863774383251200107237204614831370666265996703515426205763821604492989095013431767297945329615980063097408297960447117637322240357207960434605666547881485218429883296446069812767488496750649899363176616949258796333046413580786983129191211841344261444624146780743471493118960442433399257548694595712032826480436029239183069358146709702852172120286031899044992657286557806314253822668929019955015468539171565025390260681508028982486641452437618518286285168690131104144391362932101544137608017377925046069605886133140954582384664980441185019458749050341336908700042491225007543597233086961435532141458652919747318303536263633788149846842330748516939960940942290945713260141075696963063588191666876760847279970772397481476725646984941378418843434240539964583314671261071465268289756222519038927399012127164286137743978689136823984957894270974667102311415756442880701836665964566461795786785804302213374470688449875075973740097613113685680009327273687755991434824910538964026539455100702090984710212603877243276992530216464124466279157884393220829940429368779676819288631543946477725429101513399646688929642992080151269584370049307798723882889406513619547541349618629105683895863472177865623638806290609273647387233026204006407078984284651337634107795513420049317345202649371158905531233606012750280210569864112850783932459123431677094551881726455542050654224400712008714999656450883754455523005735880604956145132241947299540510163643645004408323028890720024692736593919604659794181230175894195062356217209345623338202109445009326610502682209560434868980730272793414530093961516121031880246135752774257551808746455550482639763480474594609005759899305493880493939166089141170485425635336724511627118300210679502428932752572923449626619914420304753946913175312849989779831960020705208394574384598001525126114382612977101389398266562310327159244509883687486065364929907385022853568126421506256517914716247618432518426593498921065359002241037797941227716575121202320373606221851806985749130678554487582276014711524507980893445412340273947082329977562319232503165950254466173739959681698336050459223546591244485507446984147200636263766057193521002797170368502073536673670037352029749744147547782553646656074066021339404934448320645696121043648014881092277263806147261805374029888610503484241261250981350726565718778158743530951477350641883588915503069646834277284387832974708926618696718016244803150317307112533457276301454552542345062163849552780230318975015345473552662091756107240430300378711776176071171813308936353731269510851962553666650550949215984118806415103696543100885739314461568657430169760500859599954132766264496516856618701877687755754430903753373908505322897305367018845327863320813616887643949672507725298273301058312477620229356657210473810319053059169983346367531434056460446563890894800446340102508254876440245043280978274122942631626577813130666011768958520962695246689721950152436919891589449234295036050902670907307636594971436272035466071442817096772554858693278675385078494229833475312806727975753885012163551176555743988949397594434781567512671967613323680206918970856604573111684650096115218922624350742211160469601137242528719752154831289636762580841015180034492695254358250847482894239543332452951306608985704583467615099886232764295651959765691291601549559224958177496570519154213816867021413562051280708815771261889391420886398013539430998771096048664029257355625825310205792758197500870812701140562282308966609674794325196172179243059469804176095201457741465931413583324863473585233524148747707040337624339275489020210648230167984081655895560812524218774901252763632054037666245632700018853603845646158254686716245213964932034263629576733707137350146992256523795030240620160220713441841606527570084454878468170406891217492697055877225799731942088605460690261948645581383428189581002880282605005471351455747554906319623740273357575854409475240914396939524781930386546867892443758998160646502089830487661181202240753807571655834219849678498336724447897983097721243054345231226663314132104028754642868390943503217325407352087920277475317813480448683003009512371840331921340490507837244648495272484566464797796564210250761845563348033875124821097537361090925851863794593535952536324336716682786151581209663931598414223855061337545140564624787843401694640144668564624698443433690495402439418045617484829904876845609407766505132277350337725847389896587209836444910404534653058175867703754417521467932399363853858685927730372335857854905193958040353426867193755755730335726216084451746895792025700846490464325018434224459823757464758705294472509347055341819780493184608850209893968169936637135802463524026467077172818165282802969515885539499654338982334746886523507008247680381842408623276131931585401680617931287525335823234027395599819797657585391394344622712803365766058281764298808476495847548672432068591762885866666569819718248366849232145206592152062563118556779260854173666683105800839873251852920576245427061085818346879062487889890338166977870892954562108295997150268191400481973627342197890922829561477506761152983149702634296810725342042569732468031556499782901471919876883032208353285107876749166712661261901063247751594519013683246497116227825167806310982044094189034162819875028657329819343426832404807189123170618442795097546050334505536177091974959532922647883972200549749521903152100808905906795328699083849085570134585870198729039915970261565690245221844346894247174633712439634455790254076237969158713878948546668071969859217841187607236923613818801521736158815208428192965852534092233829391343673930641475390484303750104584670296750422334396649755377861366364437853630426720013581989063757419101515332940480506968058493881433566066120256791791887217334764955685315677380424667502801776893808628604449152460563964063208778060090204155150556583635708256909498667614884615536737241774186948341404129068806698552809405760994432422330885755042909781863096823568418888690085696873676674580975821396986857024471068377725671497960703822867136486196589379663049364744588067977451650610062772341930601144969407148546252931409534226951457230082816397065603860430359662674259887469997954312384418160253737746314445436365985985663275740750317622763095155315370697346303173278671586377342073216898784731970328335947148047660095438622629664166903050952663178150127653194072644532495795998963839868114073445853539836354499483401352131926565098115041151837033754643152406726059507355656221549392279912487905782093193703690106518310610929887855420472221891515797826961436027616578426515707749536012642065412389783643476012874391183780499110868463608754489380467976376514492512026402612498755626914273060016672166450979089967778579089963533800398510580818290168909053639201798000179623537029680904897817232806078697796931201855075180958188459951300141249878764533277638078249070930529356927388529994021368570613344068082592619896181612679844221248597438919191804750525376543202242701710463457732404003160929300469666497074453967647229886132133716134999527283705290755134806678301085377563835565204630928163063299710465684956366540340501744812270765783610845451817565804642679196102867728454294544097448419688274297727150564859276303412981316470342003079368459126701126451985635486216601481576829867589785102906104792310782312109903624319184734773053853628298505222461285690771813508533199906497277796433211663250264310456423309486258057207611417618966495330120577530216499914174343792663988960470672013072982785468666585599885374876524546816452953254478425918685572420485134051872177198450979719994194168230800722740003288031241021741485633965658161891542212469499272970339096684963454063976767808141109227043383652866285509453585935907815779545650818293751723019970996884463865445101914315849644864565464724767171385674500597595675914782002141859063316072810504264327877952662374388258320778467038226272725246441356027547307910731011029059558222757545946050825240009753482725799117819969197154205369695985468928561307236055786625045116017179372296152411443369857222035400344180928851058119053784981536888226834680934525570123313099668174210636873404940048018263966132767895867481343352881659488567695270714885819889131253895667154938662408529387706003999751024488138805378128455189850448026838687929315881726870915234454803745090029012547580442129831803132357468652625120694707090776435584393148601400768920770530063274555633445806082253167185180364327663982462898068125661076758232645203641248244997473185013582284874170983760500648197429128095821952545499807975449899748671082316994103968691820091610808746668565288710266047577518871496301071987103286799483182654955683713984772700408555174280239511414634474965287963610654450276965400150197643240637121562159398522284729536306327263661890288232256118021400819238214970280382780236028634969746375399067810627760827802790082305969056087309333985170958413245657366106316398728421028055601213547304296584742887576758437117196631768107695006312728838275370198720231609306531180226079171796750837983299339829816455682830904659813348266338179263565404362756300018833826951558153381747779081924054150949008378621195968748064591693399937644844145112376351263184486132601064287847396803489194376154648679094940687378962250982329554994268501604412259105463282428041618403572771436270386677754671866905968525620525299952210415585359584585975182325629289872393559487907983238149469983037061507823971643549728859091496223142913874832856938598233275747392530524724139310594904022073334028273073345229247609440688048570902948014193863631373723907691155545345169198395519342576076473888182409062610566176462788876039235024505625369873191589203211541287334469226802007201213160684223128331754116717802398703849363229291331185266686034867897941398122661202559551818192228787987455901285875030395579952842321715987660356394471285781705627234466692608546858603258879198950870528139205192830333858315777794895631840286227685454580090052603285204667665858924064035475116698417244890320707163490097655095471484304302162085619538756033334711559479845284072416906313823267985258709046635471458650207887650241932565088634816051517207315444987589764280263357288969494699868229484737777858449860033321624404605300238379123664306204598490490313092513510562848064355027652378841217913463838973067702322547675239612018880772710111726424037835901858815673585571236530393421082582779483269382954485104319606943100692614296053695619745846306771510408677032311361618657951337055556924134708746675642675291673944448874027066191579866390165858969531296753406803191086699359763052832930186522330184085097334873518443432411978613925134613514208097495187923413253087963372065754819385120446542864935687134747275429057150485685563083095872329390828917785678439211890214247974462539318470333692562074651722678936400228661657112591891978026213488811508047203847637656348160449913110518519315585018038402515349815171846500275322150052608133151996984317914817317358401991858570526487087337508142130279552426388108218208112276936434250963170113952727608564045159524816442884176918816567495495908238716014894978898035358589001617552308321001879138502444358155759964083790274478837558966873854934518448838416245759835439698009358055069620800280181281441963140734539957242620871050648947264680890495559977706314570297960372448875886641130757632859807047250559241607946584182030956081877456172569164384784936141282283449118632838382208230289859744839832559037021035510152841269119605115500048844112059047925762050311381741086638667879168598000991000015055255052968852400410462415747522336154233072960541155305667156747121966025496618580866181104767517509861836391980857270042389590210871375105988513161975775231291195365309098785382319501537094479931998526536433531098200946765473972852857556207657005818708827817247898325670945938564963514682359934857591707938659717176091572577230854361639505793276879450112706841207420851388826056729508094330337595043702708425562202835053504900460060527285435171980069215670693217392149082613892944456961699644452062928697224329721809766234341513117386948766558300578119766213819378969150387805474775702577990842851812224221285649587492583098603706601838584760102847916436202021412959424788189870147887762947082543565149293641339424042861090531237430521573690241120915024567129300145491364153072159412040122427866393261530600930611934967430697654572895657803929580784059165622971869696493363502694053203627974262502454667885053828664650035699429078726519594613153341054152452121550214730207591538506400334180673793538389815157903415032768766365095026762462498285641781072908711800539630102171859918137161184119862528336625896601246835758576776079963851148196676054429571660633591330494376250222073818265338150960840026380321002277055607613429157595857915577610026024281293543938041562729565530679073128112779040390154596590703655072672343844120035531492967554903640962151785464655659807870768803810111416155025235202475846511953704438578051282041452227497306938652881342138187957873700036208200097205730738522847491584142374476033658415165220915705810557367686790797040294029318873708999382073275796616376911981989713774723445560600639083862916193390187500203266443421029045864393435907215533255270791457306762285174327829123106146011073910863743369437885189327750937192076039117673779371430525130926971017004467051347283486113433406496010012033204576286572112922086189238219785785688785534336261440209281392825723334459132413139589931869525089432937141081011244521769387592427942067081502666384641863059100948772430821234353694467662285263316248277532497078530883560772887371937024088849937711162903696605545078674095355856905612294563975508720951747713720722487717981412251885927175938126194048168464924521017707374394381978160488481050691859703937813634770445693014861399862678207713376043263342768842838437381227621948133915544488886234129257919648346406519362949878068731227875050703869622442577847017274159566629168104655895012889632151380456106912427324783985473694291267787472137749144275960689283672597385643102224619923824054805291234516788479221060389469132628094683587300210837052062023426425998862023204255550570105683546877771649198882645775914168963326590920998280289060421119496112813607931188750500902885340394851553983844766722200085885525660306022850931253723685196330562311356304910581640055616564062531885773748803013440290504213655717720086190376641605119715293344534158271069733238594905592236479871393118888461611318340852374198799158155559784196698723781323192225030028435202562852817290591826925231635572840665147773495795131091876836021558880580484579639918498424950994219939771006741509634301699772844588342448508600131134820915459411216753839345834665181902890695576017585322224200537716420927508583703851035795517923453329576659374014848477815336041420247134469174420284935236685719689364732985067607915307360246224873287547298633433944528695938020566625633357108889383666735677414597377289611294690710637087839638592062646203401633898235508633904975561503667057909036037297672897104991519300851031330889774673437690737256290350531884539983951904747556041811662001262166458601232683264652658314423188087314457630722110248090807982799872791144845898391909650180577976140103866505432789779357316849133512777657925367451630864808806480502500494775657440444568132948759504670135988691439999214587715112035039359666382961422537739581116039298572802310052639070876939870492373657492716741423047310943825258778176109177918031166537931126494571776761858352427755003124340881569112022343403122672595041611709275666650321562049672118512166276197077584929267501176661197363861883508823899524943860592307584408524060122071165319871895064807823205707973573025922921249121795963146269328504300167490140700815351253515495161233171818300600569255624647917182548383090839397494697011390438100267403869275828885026351923477926164341393898928307885486940876328676872341321802062285044074863888157696790433903116011677013891502815683422268202013983992224282289718788650881017497688137429945494505123413959447925479134062825231143734741620678715914029524551335799005991903019481543581179436965338174474358268788295531999982624091109192584227109632265319096620301756224556061422260587420209712489312934130308762002076341532586810390720590995283659933035972953613296712989867558000824668604422324494189733060133180045152757842768092412007157131166992199932970729029980802427847386124464697958320689651466984399713172338630218326380265273091071050390232193246193625413353990252342501494147262456457769833340711523997214350511823448708230364078089285482758585588934557638002527922040583842823742209559470643255134464638429291929791588901597484998355682053070230391340515404114442702654044225841860278147034170119748788212443426124412804170361159997383760566089703096030797492957900643404797720695288286648726476172854417581088067176615576657451615555994919406683575188059501782283090364242353928960949775447607765877610375823907784697873441699413945967497608177935971385586511928213367138387024508736467193421067748756629463834372249946872303417865699588346366787997478078457962941933955271665366455121339925801132440787205857293276777236557477310838298860011073357965160321141758945984420112048723958301364213998224584497101308795392130903922432653298344290306385393730671058883437777497741649628885876160431844559078275775416572103741146601342982830297412412096955216169919596441855900731554718863844431093379294129515759636238002689874612943104492658329630313581399204883215067424628338238390377471743766544203260077106279776763926979672426220179735053778791282957002906614457487564504654916643311177800009538395431193828701135369416693026424959365281784433494916277121606283327088867151820735660036994211684921185620506661879132663122766992166692876443283249553555349219120917147193684648686279919315002681786990456902400422689019813635967819501382278754332335531196176361216420536180225494041483941179254582483248951707067349205713702221286454973242830006941760038398765567104239934028625675999169123511165589439534442525897826026356980699055482008502282241216800784438438553431162825081564858060506078910648657843870348515267419050651147765923190627109059249113654869801798446745772751611588263185148096674056231130292342525027334082126615747575553252913482604690803996964155432071336356829754147443861871766106955381737334230738561511945530349624668961989674394897589027080205682587488915192140121080193839233187977124363684936550724344481807947533106154391211397097795720368083199740788317934047668444415711634360252177395392855329481594373198679811881253262421765887675448294312248990718422940272403916808565402392261340870199493735661787598458030108548102046273342778746834549587821047280669058669766759641416507821600153841630532896651477802397255977043138983917683047816852634676415714673289390195151211657327029416384628742380063691971927848458012902593654364105644135862564931976580272109370163182314391825616356576513360971240214128898300704416058469947314789571245997961327816080247646578321322815703860790377799476679141772544426775358925178925024575253368429980048651549090077622539369252437430684301467665790946704217901643678097263409430338353505197147338941735593302803402107831069683125604531575769709141292296757798941890468921899870525290975248923817343126357234971934082808682158536600701223073241426531524994103598854429255711135028783866587094262570397670630023808309984844187425285483755034577622153544797713351898923579695589878978408849717535762766458439220844434447515860362400111855830289669670337492969653623806089420832694624343705820216287727113388759532121618696197400937501304509861156521790369958842483954161540960432831952620028387569054169940596640212337129771439076082692452460957005585794983506264547140703428946112835254302464298392520891946465534056661209473830844796599531575623348414670399166608976300262045371763177635282163005815812349385529354246569530152271202910244699058032940741328295301424791105456315917771665471631240229675735515822284224424417267765729932589401752316292268572219899494482738026687163425771617702958267159205545751861593556328336460192485983113421742909649255838678854990039142165980064606185963218054485128822495100102008636696638578559636880973927708031154580847174845413589932768858880843240959428444446199376929281821651259482207151142458587320328078595723965053867326158987784074985694307436754128502371490572777643011200297630001527492170521525324978307078087270592186158539911649593885939031007710596475627654478202629630425726867822429449564327499898237794435509200805393735560627262290124736927430704286565499388637411270377693985961443252913051182932103031494516953426637057957611368282483781802402120985663711003789239287669870903332364744030943120976935129515438007943669457074918885574352283827551101833193193217557388934002827928817661647169084852900170878943738665953527486413263833189353518294660995519832897988048870559073522285592130872310109831317837591565919667918922876541479059845413023971198871513593845685886424435551233280280314579023278073061528483517899747274445537934234547852865464666901214166106743161744648042843481803232973084107718016356349728957652389773249740273370368013847775904846209958040149830783651428505607060689700385014810077965430505963569533581451031689744207237031958711109385543286904924355188136132168845970056552524203679870698159472571487370002754257269198285158028393181559900481827675857652990487627299492050652790152438736387906900648093300155881865807601079426338563936586585130364706759137108199276531479228840535544356014723955568620250135194867618873382218657443346727738161361569159475121414196894682602992591225564374626617169090502349633287808563118592227621248899455733821779353268388807464748984579323487140735217811126544015330712460974906934283079402233257934194708203159688537862822296079786168042847077329702517648001554047477769592152527414404565067456188525014236518826550862776884088628984147071768973474149180512637968250081859939246924889068021156223998399340682446005723228267216826280086157954216059523764424083229709276300148940818002696560746013152948487453481260927526932623054480260166565755906875356699760022069266526685683231453783942465196988659862467978502274976715191210996180778525043535462329520406105071430793401515342667668355773083910803944675460922354092625412520507288871094510691052148296584903771331188583130270832617771761555460911422971442745804602421723679586168824828577924893812605744821672106781780096355609723155778594280830546410030029604281382674200593215717155580059038534406218312548581371681794935751390902246758485315863243873764850062192457149592609554493290445688969324407338355648088088835246458069057215030834884921371240816365733835024199393493487157504512742279061258185113733195319328634011048679596277766189934004110344504412546996939903622829417612982955604792720574301389030458500763906456492962896452579128629405268795570251266668339358689716562685347774179154193847291747062356192572371248038125505476677454593929875829233262417852775388113803214297125314587336170499415853155914723415976561874082185323093397738401354700212774815677447382514856915638108124834071383039829365871873912572621817543945114420408351480765527492905719621771312284743910708652932441386735761806345807652426326208045518029964756126330875529555526681774077082964735918212380496476861069154337905444470056230921325239032021496325401702334565616831894601704234954197722884375983392901451057988818392282788220238791437301386682480281320318619769066494747622751844257002588733967892787424870380225292228839305067816452434465950728207194693214290018177846864900601799802374042340225038548413371036380728411091722696650493698729465263732424321517614216726767150217692919096490869578999151729917045599453742672109996789811855222843694092391840541211885735834268921702225104790980200049454106396965569183223321403761933759100546484439392643975451439042499371657622899293304021683525761130557472661182313978338046385918945074705156950499988683117738079414949785304368788209984362103747663256028504910922160528598521928562349863803110502488431075467862556099488083140061389653815312753314714008488858351404912463206718691400546562073047273663176917222246841243098105661114800657129086186068104864720060146805877608628656609903634557735045984721613472702468587565228892974342957570016818110137106494342776190655083785867995194326938511744831115357001880268542772109528384890794910316359764968828331955749890826015326303262751620455245428592908163052527717493702505006536562756284097243351067440809916758688676554003998496573217255240436194637423689041535821139404952200931736229413139381959651206074910484181577850205771957138480476526956980869226086522173749812491460049193260849072797148991742604335706988646332175993399119759625572662533035248559267038942907923807867221048544775328991912462585285761739653440426779565874089105520960269423169269835317265606014879489183024167790381443016954720884300241755078141802797218741908077745616504404580418446017018107193576359992395355034499010799206504282202477941492704402881475851489666411222851490300516615244827367682368064636177330523978434639488317806572095034731152900185907181323298479009470348485678254811345532094440735801498441789259447107453047593330631896062276346773325502159962521684180870335136479796553454178261126048576790198806616951763053137352941953107954817394619734473010968875383778708627451301441695222612106694980911931850219624012739703020062897028072713951174442852347214319657353153558027258374460050379691030264120305930667145216459730178576765738177365929841246028721815757220994060313643318297030351756442397073571941360837515876975544127579053577248884656316586269378127483551208877096415354650631676428378316645858959248899017877355062407875177443465564091194519499694968577191635451400581452655056108771987336636919388403143005233744150034030009233213010666907732096271689061558710425137387407185391745043572932301490720213296659163160213882959978877244897479796346383598233407565678955846904576677622934338404338978763501456890377061061944517932077670775230257962681555721191409130389767889983449559219219121040733930966067628861746289668167234347394981125528039491066347979735062119739798844273036646063014929313847154773246021068124946523167497134995025869280932212991961274480704101052246056529568229040289976574434731062577620710552050134969557634289277857108046154795366388848769405783263585088994441467242901764685556882635132182234455578222301912357566494397662686330343322535189365415374685556084697627154553764227672276228519423764656992653477416865202811147805586329332126715872917131158832351228601230647102960184741015647611940270079785391427990434150235568313917473364644453860894735608621280713508600239517358725121101348452540845577817046993409970206466616998139555599084895805358739951437484654577511795709252816454828350251637246308197245266667663747300457398744137560947369484146834900405308615108160214156196878682367076395762001614856398049087050977092633577809876205298378570463004371518693160217491799797158126304966464166442724519421907390587450350718915250968323845024969605136646218438909259458093161262444733286728473444783593025917741749782670958736537572211394859382999811567924410965732339797315844755209968575142823907792079838595592888497046707656944231910154471798544941501971405852323124986069168869643826795506614000937196817166211744305941376531139245766824459652198295155446392477270217684810319152820669680381507334629985392863847053417739991602825840764715513601798814633598778676058763483128153604037041249203295420859440848970912165504810948096713595400785134615532575643932537911645023161971007414614291342872965833968146025327659746833930111971307102290246132453808586455792600398404909384819214791790149355546644213589192211272075266457845625272985914516793318066195496712740340253309653054958423911601022852834615917070217270152457883466484371543187474349309914891854815920453645203825951018869818225712740263452130434966455609345226427240394749710764663721671053767953335493305519795481243682171485948714886745835902069753313749166261794740677779239787863153013326895512729181065834251044878202951736563815795589623793391308672310694510583526815425839058362902762646487594987327876507253368538295627799094340794127173926303753962445383009188735896186737560791686746890836002019411198714340589250999797433435034733464232045290722182977240712909592570020044534444549736112980346684186780117132473697193858761588276248680030926005113977447306097336703514376930057678406354167635700732734579625728623100946356967578239489078304020868431234136388041084865542676940531353869575563618409497984019024039053262370785691398367598799375041307933496135345148950307481884711871697043793883895046152180021948746394869574681189805225647067839781557082979527337091515392033969171653052285213627569524036890574829724222608497812549332807385432212569403434433400511227618703330125411393050766991142903450740629672442168645114598744650314930852586414737844846053615980941210182658198383972529578524821689113380146587335212237375999305718441285398316018674433239883062004181832489462709869254140782202371339403672018557914800486783299888053703448283873587686186564615657828401751072858999038984107043129123715248411879784650377278634950350705403526960978187609072531973695243797071715930247416450095694750553217214833415285223528892084042660748100701426253739931647583243071571037927558953570424740914381187439366426462505551871024769076656142054085068244904321478420312273632013991113997743974086069419094487284028398452688423864810554863970900682129414626693774619145653064653127218742816264699254936257707335404229325756936004342361583712207728354883859796409077954966712464736560537822096922863604132371368896748895543538357081181793529664346970887364642815461301106896066115161329319147094227371831430912260215634076294193930450432834845520597594042693118342155416343770969657774785285269426767769829879064438224968902044701608024002651181042310782644207705140937731023183499766741288591449742886724919748603682173479262769196371233627826533403166518680242205688633074094301378814021793201153209205228304039919314833625089459877459420400343492799683167308101678143589500115753358227413512162746721920206615086045965398876797950556520061009768212652223952672031208451447908407919202675917585580082928138698403349902436868134949109923800508646843966218886627905684969100370828431357374458566753813883292464429356960473987906257464573193305712708210405713261858350968078274856611860668420617987001663027410334735213947159170104104691168495936761831925201340581982252525045710872189596342359681353939806930237435098841118320806224599747028707224189763278481552477874186894255214375648378714297211123944330707516591564718125600819951000010119880858284478491529154059533848625343693420149787993375819704225534665123074994446050168411440244780653088067275335861718620863765274816385132395506662110799463796161704740607696409268897003012407073663970438817471440985745224894822261610656727828705889932955929418334805033117860056323815953963470333318895633528930779543975131353519694301632128928582151196452041547525143787457859064913799997141935025096387385440704962087211256494909458143686359518156088397785114690031036931159408733986237085440291702401735069712944217878334086828940913432258125234866104909911422335121260664735754106237689236044799124622998380476462623434564767733588952962695790811825312210071373575216545018524489436512315673905513504915527236444394390995499367318527202730484950334966579835589392422812668195825611814653374394008715767081161918162313902437670161703242119031104809867300181416511155100778936166737465800460275738431162413620491811589457599257163200319426173392599879182951475585134945338900459139249030839477146673238159811892054742710399776494423741661909643368314684595587759480158402236311054145218016817281561085503568779843874419110075654377082017620427926961746528119232692898836286659871471014856595279315736928236221536859064075240361528549140374697245627607195565991606355763365730207794305476217739161743405124842747767334672071142847933808565911204235674257930595701908780714689271780723754424395615194361823393467294815061719177518754119464601659483979552681825158578451018635187902566406969337158852724009740993257977704876433529398507234089173704017397349824635162811736078508554836204489451871624482333283312343530688157101426214683978783637440691884474213991782085872258981065041663548162329705963209536827599430696301692248391024001068554364683192232903621954297076906266925494360318117283183449649722382534998059895837658491160178989610462912729400089979620393938205473443840240315635464556486978633045500731176494135978247351302950582624828972728310018117835758812183212933787388790704937632058209977140392628745619215204248518409959195162590641858290294738752667077243196648814245097543330556351910981088889071342043828192315268643819405042120091907494612367377472700383298389478547047522876058738659098500726888393976893766225843593353516652012768879985615545680917882290781163623211925023696211486957751765328442859777531309596219788343578367264915993965764809301245097835252180705216490447690987808886133760266683196735700454417731252011806484357918000196298866830166322987696757371338764761185462075692965841213633083998563802015524549948498877284819338523082330226395518228650726709651601056455398093637060735597741541802097716763794601535147352135180991678451552734714232550813902272219256738517981729328936179561277048737348524709147562706570914610575899130385988785501874887747545660324202696638112984601090919531055568886353036925758079051264907880866024613313330209514550984703480612295826278636761122607088414157218213119280422406615280632064672765020652020304067388545696130694365142219058702280675128329501878744682139197211417241486981025941763061461311365213672800117196904617591659819454900305756797649090365282146128881224176509252812041355403901205249802875805964509800389178585934078132061082048539702687177171280532636324984341358000936239477949117812225296137072542725676469891768415898745354328924800754268259260512926448085798647348099259188616205144831406282214116314687513787105062430372480570946542065324150501164491316537004438127861446859414253206502872380457010894656883510879091825352654334743438476444294740639762773384544937233410597441276705674458042374101253979413416061309069979629141374568567371869113680254177338744017402487767829626468480712026309506692090972223712648221378857905135162450327172886683163510101901818418500997831118831926332994709798541492327856408808723124423677951456436126349872105867159052238479781270510046429330016993340913247445941118543034011478244594335908569168371932178409130192350778702250770378932915931802180578829848229714047285207678994261596955296613021676159181457172055195905592503765156958233422911063889635446418210744786943940986684965928157599747704672211309622276314207685484989202402920003705616733223854910683431846779525797572979568973435316572602174840481253236857854474459865270446267323506378439923151516010519493155414389607077786420607986558380787552484171494455358235049680935953886819997842015817651363084736693275192169930346577207988330975689101609961034985369100783363084312945703847635002313591626409116017813762438086558525679040864501118960199814849485645295895623019737518109213563404245421031519443937499054488983585836656806865082291299253123614913109754424731823182267749127581387792799182260541004366562921143040895467630627798588447687923251635318728624264188549008914314923105221132896363449557286226551613986617498011607297431564873687511022615807473294662388178040497749485179489105001146453566421618308996947957374933422275345882471217903256866693000852943343411935524523203323885221376929215716193708351648331846176191296680547334003123999039955627160039061258601047254606650289723153523462567567740121999934142870579888124946224306844117603179664559466914876482078944543563992035710707941328108298210086355641774208058125395156659100060448778738321595497303359309722583575032240965291190556821088860062764131823181054627218179354783226106801352965640305229912345729287275906308907453282777374634573999619933584162586860593553837655080229709587339695478960230824593646669930105469574367496937140282005517335838792549100605986297322519463672964790022626759369705915708271464772977739875450620289845948733544479063849906983806274085949979657048871588398700239720955276757799103339721165954928975135722829955170507633050004782846423588947873929333177250652655850208386253958690902192710328783425898510040520962174580093559802177222867873008181998186366241882505824425747028962398257771651446955727186647586501411454792183274272243830136467498949189414530275244954659359283068716937248443559210243161271669995046513647403391164200211578956846621397771759954244579975591234549393126848527576239828670823851215303466789258900289427723818630069721287992518352622716154577034542694588265508152269226397899997057051457444653551416842982120742516257661685293335532155097779817590452150772814072919752159550631245584314722977167910168372671465138237797086247832771440017054723340043469143671010181340553469181776955457910146512579542583616730778626448169190320633081320056742192121955635603097660004796751977115110760334498323045310489972290817015400528909167443021476004020045367971277321514522605595809702317368909279567995245087138620950890968422748336743466098248189447030554879218877734508009863668697048212671942597400526113547650798930190252869472697874634202867292674751425293001906868098847652167410095427001119768969911704845155156040490709028257852314400122378534002988642845995430329779157532178809486898291244883474748585487832038239173929223572384402223545872831831251781642310483522088732187429903151255682012135528239307575029964656728387926875388704883139991251908457321628793982935518768147059964223172127258968815032050256365790446191424953732983180852891930336659168731819038633211052136495926284021062549058482902929079475882357350785373211640431286334744269946154490821396156829683092572799163818012637773270787850778006322040068976984247906028221121434874545545342858462032910068239303236157237481550573983023661218706448785907455316731907909627168982125352234112107613729382590432165336737801782189754811207654234892974334381568887912623359802555348914383683829598512177767752420151590074811375794351820075811147317275928923696619139182128659352595743272261262881472330391174937977986610192245068657840577943104294875309357616992123171465369288607650131925518383373338700618660459604184486989961306604412894029313739999632967021907522523418606112913684901248112854708540965119100828213591845789242610696181809061202246792273604392623040107189384893620324796800674975837605576314873461925976961246157227944142110517689669768226292607744693233398210276723640974041453715021873655719940138274361622516507885635085866457429750952938397738897152373846942551848982669944729019776974117038844973052466607148567157486349267165776594883164865891916340333695815009907787118013497149053740311100821991070715615748577162461556174459768488370092569615342375895948322154593825482927991301062281917067540172639701221242989782354534792301704297596232445321029882488553807568635985972490216074664956843662482471659273569274395685446967943944606059829235546986936080316204586646957885005886374385266868458103171267678920974318654885556280087835615679850668300224795558962846182973339529967102374721399647514311788165542007308420111407240990324547236972587468362411341859938142236547571337133999290576000128670247573223732719269172426650763991888614280033746975350085416320754961705230445142514327194378861313047813996862188738352056246177757587665420627996111207919100120308883993397537480807474500778347894113644839681190898822251866611888280248271508140025959680364441801366725675659094419086578290963366079919756463945123059758197657281423659265900937778809233899977442839359901551727684093486313338929642939047887467807259785635360928835988658636420864014404839133941689938664141676742073221121994785766781224270725542792166783639035973639566789004715840234874578269474824982959928236765557643047784555521498167874077456087830674751329427135452050052707916733800656420739440805306607685522865514287613766994314262441352016644440610238800335015497878768697661659875316987846494128540847776162641503645484646576546606865532479120232844240026157427966951614913446902201859237638795611461596974007836815583162012832652037827653872499847564186576055158339022820588452832365846110347921095139279271699726820160211094541916348864159687258718024215709404005027181861096205979653065580085415894765918841946319855278538167733972122143146914792329275069641839485247758416647948314533570738839167801093157492333429192657761657501726708266803969378701476789259825853150585299456510843263417874581548905331917932897047133169750961953616135862602377789187814255716097149080084208846590016982148350715459894676870333589373533545359029175787888043479083695315019764407290472224374493954653928471085435452224018783230854084883191113476627940937476354400313167230726551688786385196901418026342349196208358725562042975327297875367569145366188785053651530024037936147737753737961162998976203627367118658396969803788386953370634171699106817527784235516470574228942498205400083998849019566803964181459386319318975876019402220633248473913270295978027400897304867487523350729843542099868323786627830356355755853638770192895529272025212135519170502497094726051164238865680087178029316793243068848845357574683139728942290345241706757461715238649617181957947281438596138434607924751491077455840081192920496441774141497752101941924214802647829993764175889120069288212366942752443599420765511203193752586174802766892049740955144324537627910908095730203052915653929949529895994164211226030677439367988164125943032889564636736177922132773228085381955478150696841674035313965597826546675979904325478722341724670002963961741027595562916958443021493970514613627941737265488298558214584739132539103741090770592839301301914130581016577118907949378160168137970594726771572027645368762008122821593227974884358901628002456455020825315682416378834353246268807703377182762759685557432950184326179808850267918175365203326190609835296235389493175042415665295990181537738173170108450684765381553872943613017170571048520879804732842756112670468675622287638965938188418772602303974519406182403095885382030537311191709409715075250466321037053328570094001716207295397735121905692940261654552219876499895282947042485600473010719678487878643238579432954389318074289481224396315369719341161781377069113753381135100985829886212092228374494853742909181233505383599082387519213013107240898884878841650632676851380368637517118160847655985096741254694681128722428040060066279266844668793465876875772375993070327577995649317789965661592274447609193488432675255825088435157019116889508611540322416869598336214593116536681032611885567196820489706144405463590266486163272148224675101155655246066151415567385177679311000951670439329470500136188461825406303314925753610598676324272874398647630814210249416637082621762930972107800539424540787595850739984211187861851358534662343019686731138246513156932497150564540912610721749811076508129026862549282492778097002906556435564978385330864881436911519339112517579384338523968505210062636938128205811611737249926206239489245680358310129380704437016217437517311008709385730225762493167627014316813962933357533240408550446250720469219919767453757406479895123473306006579108371396857956882396408878904946473067447161416797754313658117530898759759686945240474523524423877865986488278495995820830209251951523253349891172120146465958415061901569215539614049337648330566407336698891735166918105725175764996810176442700000573764177776351899298313806817798267584104014178721078781462350790976792262792285403839373919048602422678148402350268275407952549800124739178907146633201397268663731025591978527979905811307384904101789556390832096396471224541193549492228701108064729798124594891620687204065729068422100283941668875137952682558977413977845075313229811382191391563390313844240335803813553615041544558781455398821048306550293615680577466893742941052936345422875692669917278792558716999375174930452309822838992261418963618942444356540458713850165064484940713552755260849542841869827840010564975241337855470175796756747754361606406534434481052922815175551295116115957604640220580070753894497232152749204956865791752536187229382597080097553629601536053672871351981124780723943758884430974705233261503064017947943834359216938315994518199609354614528484796764452478628420012053687350354464487751354024938908392516742496275243528867362703330600156680961078629848191294410466384217280691369250809088243891673498492770975169076670510966858381452376376616724207299122835467110455322126418553313085412955547487864271306209271572098460344765884645732063039682561393347948135436842598296294111526395207573291600837943307102715354240370964003067484878230528461772024982216534460005054904315022830617060480183501481760225457661956973247303396526858618406460749986627003605472542915913247412148640253637201141103263192397078020001747263064403271175245495898496930406126039780317528616839274315569511561593375494888644413565537813416416244228149942108078753621739312782379877698148502148929876735357147987792952792152989608041648498214077154160083489120051488004656958651689110643331045742575106833443102707706046897174890488188687593455231154135634430114107377009289975800772371886088025504029969042016341169308389005654765779020143503846711482534175363233129629259781732432063313614208771203342870530325741137441018435435108563075511031881822499520261746425768399056995248617335252186982761234216058899409815529961746521388413102951150795514104962878729157108537105185900998312468789999336660897871317297232770810964942290294431620965571728418942362952353576914000706956001950417112235119182247789694315555051721898929260155011967610743664790427677313577862581861092304112722009414391109089345866741703131941254300192190060464699595078726384569818785239074240154909827515622576625665545745010402650811417041931059882536986832423830431933159203289929923302977458527940896991234047073210940620845181210499441285725453825615580435380043715031481763620055474346471093173470997868198321381114242785512865332466222753947800833873098074517332829158641293510153562603023352779328587430958701590746219705512895817620821002059709887516033212726044619417720572615844348940554746402934233153859192318527718391156662610849900953366019500585877547299395657025809349596938344353137489470654842032151281807345594349553344558760186842766052690096346792970567319375490675338321451090108311334422977345339341658561304712008067177265455078233629978070290718787280745984303158345949716039993727407671437811376763846934856229414215395097324242808251614355145080507898973751471585761839765038840026728130999884511113995992728436396974533485008243339683506078580547266098505218999225820443056296639466324538271176621109126854801112878086510725072842005872442366291347782028750777267789077205659993726077766685036485194327059829276913678788808796630658205015524493362128439024798468352965501346772460683406867318378471562521631597840166966795957266686534059846159890373823617553269286345351748293735513586163781247233398836569672222584807564235231042456091706704221296653590004819684635249013953792218905098636652072540667591219013107256770219143151836954167540443688257575449891513402670047112761506296586930030860181574486323573045328772477187253591178221961985527068508105260842532115117692422987345858935596260241090176798035011774859798241820203247798014393246509855304258814054462187960101556038145436251279636469608513360900351634753952062218454322463131797197819346315506584076981412301968270709882808693454262927499289821833593936794206423961284574542280650507457928501699020911177232201415631286792815912214262937555750979127780387314769636188329836652418326186076785164866768592751208467083679201458446106748652818091539787255790888139057713041198938606380417946502382245984411761261538754837602185596553877715661844149034065066703217022813530286722690454417043955383147762206759880027646086053343431135354830706970753614860120489394850390993337855448245315070113089139148062542058925040355675014806537027249870420813919545092067340536197333485095883997441766309422810280721680753000594152946283903225967017959011026586235324319277908482940263379861434742001813292827938813649214685340285132753102329097081349126842739186017004602081874801905449853038993304156563085278491442712236312882402778089899207685170551172351650293206252852942405940464767303726813115243000038367166105930576275338545133125345569257524271218367762751565572673106434745919667609303842533697175689037572525028946660000946692220627827215393096012709343412890946084798960083605990205871118198931707510039864308997155715205754725401385727584567316268896900597698851820409707438696421753145054889294213265809683443784799190051884563051278857640317284855152440546272956664191567102027599015566661794728818940645435303857125874843947226663826117107943685640695410920889860268962002159640108500006127259928213221866572094698858616574083208263283724456016719215840856334757740218820217726851356099051027626775095323047609084256399068005616942919315289967287109872403884877303582042980785378684152637640738873054752855195664051579984258040445151130302541575744826929749465540810782489275350796193548869188320000137458267600830108853857040022788433529261396812838113794532300417739921517324287459405850636956638473059878032332859321444361852134578908791205455938931380884273392221133680418857342454654436895970578086364275031798528067959010130963135137451122544136155060755778936090127764718394550083568564264774775805551900497525588487860310790581191192977048607031038491432359370893837228843664219927909282608107608772291613842795622763053796911484857498031718938405531106804064885662620614519260710259761830139560960074598568583135217044952820522624896770506796885180158910223894519299201291700003757911770962220838900437631474377040543014721080532436867197095349136145669685951678752802318679699795274626530292060674165594894872138880891550015184949243834034749944112376687692776084294205564707431875892447863839325105811888392164943057462146047662112272795293153886186219914298216171907560282796588084726234007801288854749399774213360942262425661401378198382888257563738862316862729799707044872657849860339631634744249042906310997186308467241760928706158670443934378896000984606784046477421213991148335168047050615536898209088779797003135623576526732341272207271830166228115282055235871389389062203627178330456803163232097287005542233190021792825711850898251255368413851249004600162639445414535554208019001567595064551852782431929626376273949370007416091320128179479948866834815872136371861825421699136665508637907028310771166851833073153474158459816905424570717979219713930736096264379507128316183224973064964362261382752099204323719598326263109257494839210627602700720505614839036346111795035936479445995603976937710977084266021410600918799383631533047189008643634081450413158403660703334101628099209881564588883369984884873645037561831974930261125981865743593034488896390623785588205251255415556751226852512342012572487766442596561921547088412104454575286099600968583289565879127291452782490819681372219954191771254816953549004869590527716897243551562318536360371535991246483612281816390764535433869865188216213370222486850743913668501121515334184362711208605395204088363398284846497480763189934484097971203111223315977174682338342917475826859464844525649300863890954939900011466614991853803909796131124748720295496787800066213915060176852555613153610056455908450938965725901697903379411781789235573150857288632641258451935498818063091435012112810214919461455695325525320308261605084181445353996078967882080312701788230110860202395760159309290953809446191808797726795961583325687208500254238959282819978514365454451527612846859558673768723406172459319176431790756877092786160827661410042989068883117893712745941237933847275599030495007902404684151045127835581303000329001986414284447225635253125765321691572253500753581215311478186213201612745288370015408252352051982398101578973870040118548913675479863547612963332280313922640428915174902450153039026046763686006931871156759169646498229294665640590571533493165430371520399642936473551399029812453901243088836520737867565491776481607119074433769390867413542805981490222042003285314895189005716813327453720503398254293179998199589154222319943565907071148996294286512437814830087068402441154088164234037200529702353076257819573097979568557101452482487588968395576653688678986159659845608224249906792103117502640890952168073412575365714280071273287436891297270117880297557782324743394823303936080665103032347317001504688870763091016659927201940154449101913247622283698910082519714187329432770344110386379236389930013681105085064778202264611546689779834114870408397089829573520952611028424845253306637724151640340451901983372730906159503494792186210365273624499223008949013406225056485015198633182638009060710552437255507396836288167384814581268254933011648818508126065636599160545972061856078328965440515726390249359407198133859808734566307897255683253886042064274444202910219267723167889328181761091039893462919397482754102449826776055469138068206913593027752901373966259427302040431037196031508230922312484646149390337667295999533392603724374307862014734396645495244771461925726462767834192026141216517289315360157486781376106930511338580618053918287069563466611131240247051102150416712873021523637445799746962187321055349673891639486823576772181759639305740878302033330471660755070879428463578596809820693040127886526637955634919515436468915587929339975017886764374364713559164192885245562055476600322584095464126598721798860074170902987571294225193168920962139023293212831574470392533136471147648336146048415542930040681051541987208804627205622787465594702223408669657552266203249426740461701053808021475333774910680878084844064305772954027964850356704867265111997855821221170706149638273952446116789236562260291670897262701302029879648974259588006052868251429844562436889460608083575117145693750057125695935814977256205016201845639736729940875499114573530747590459887064316502902699731583140286366194177877180413213366395902786840601874791598468768747357829299090380881750637868354127798775470839002881491259847527762252228776453725374609368713602825393309258060557214936845172722630068717469289278385367693094470604721242644389901432037452466368639744844611956742660496360905309591350709088521364946171112784163241258497452650276221900421085518288364299396249066858967876334209983304210444124660106144906826437595849786824513623891016515544165851519881397188790274799751936574032680684102218808056753165512656190644237950156348834503065647371397604404043306318437025419156707379498290644790019559288500626858017869316587656293651125383087834958771977613254790960998253812872183757448635018131416845441192813810218126336682658841166471421097815360472030567328000826488382413708907276953204221887676181785484477978138204644101699042901006700426831520645630528585555356082143624869440443288716721158354219437236227710825409676896715088112366124019131468277374076710234936809610204562055534244669112813719109597366722456917562318474827284043993189344929463084520462952529858884462334624538312809763769316022363344911282467300639767427882289750492901685498934381057627069111432577925425874778883861206706266127965974304506944785615291006642398372921879739644655016094492984329539565857936729183094541523130300596529019663075202462909711767497180994065907314121377693806159060081641789462383249080444254604158130803057769491186455840401055655248061081255384543845181496215915816417981555845072815957842618715345558222519440736843477724019855203472251880264546205223689172948912861926956812224334381151437600273886283042730375136989086178035075576064422739373577426230984357362749421861775091825719558632040161395369469834256778185784606198400065442105633264288708541867655155499207060168973088891588792158507602160953982138948905614528956320058755880389778153160882605316927476437757545442246278750605341887072818619949047504026188121909402415661995663323649072220911292643138923909557988344608685780511664304628658221016024103034601960150502245069801971292153658056790433803420310131019374053132089350044082186185284180869599064967030730158275177684715043177518435849683601392697543286978371350527515600826849361687347007938619467428597224362746974352933003604546604194864614460501741174280352298114337818786064521719465724117624332180610914049991038016880207173885132252311154874642215262472206928572283905785488806249497902416452949961223544429698852525961684435788291680621289931609728337627933702000894821867909518700466990947058767228205869422549033823964117725118660329541082201556734119695731911793197493808186959281584318997877616040029286622439850207822177242856837068463250415107061908725546647845944450416393333661784019574444825112598540741067229330261082380294874547281163992400090374282892901374199312448802982790582399755702147751586681611798669866117990190195699363998740189737575287581425341957075496265255568225345844462370279281113839482323041553875838423156240178328821157123456152609646617748121099464437053480636565849710293823983690372194677589134386033091111897373005269169143893568184424465850765034316425519410652359425949432681657728463783939255579492344613845315955734608776331577052249123986202847052023187443630600661224684211306724441287840398345647364691640803157668709126132487969911892423353227623871360389536039091186500575793485384799101304400692567259678738052731266146544718244168864621663773476859394209945198937581663281628185643093027820474913077119241758492130194524102194480365910960410618835282558593290896032821161231321750975153044887875267067632998552550374783161167970777814919246550332121187310043840678762408777824159981009226290258745511242456603389441834349213786441506216890518569514711232639015876066024058226921366649127643769998479402293467320694429275499711437666368164433204061790326476569793968789851291071482401644600631892815196113683851629953379108561559316697619617722901198628689003754593827219438127771854016452079174654754677578869826289976437184357259475893704837493787233302670375509049055843439227304676848290377618916686892627174033640083281442073522523787806027137977692335362883896141259861325944621529033513923167882119767376335339749052675298582251513486576763819674548137381957980996570851887508483213839087083881673775501620240541997992133283465283017712960805253484019666724870753874424723636723228687681442900241429276487220160618906900932260321902816010607255844090480974918547208760982111811927820675634661725559083311148898834509219881246363563194090555260181923764771937457406487909862812838881492885701998540550642200264533859773220482234908806406360197173065765751921023645039801937751142658170360704786824429074518042141571525600454745425651168082114964914513977262520479967136119310135621379159156128169832284581916310265421952085981828875083354491589626912522158154904939924684226767819693811659075419192772141436492728942070447197172431887409648200746957639134471883048345685933978144670938127864218702649355438218880484530695181009848966863579659303123592919164162857847892168484197437481562717090830865509621691566584708434808023298347962478162291271507043791209841941024052850579997922690991651425968867236236939118432407716879247961451156444156102726408207602511652708247037133012186747394529973637596875196165668887769379324858142135844634416477910605098917953484517187240490576122043321020256027231228797120461191838052434863877814979659789685887788328113465470794104467867669823991171978478092466055201839296206955801546515220841233534521159365709736193231520881059993950642555136865803851399173641248714174726743271038452974569948550499363579263031609882224877096918042077033517363765743698476388522546549598730568941972700520417367906559729401429650898379333957353185502324024262115303658973197394246376620736112699121107713633881793723118045387906540322831771963682740789999033470274603334180330841937082301435621227165943320041818855671126327170807175327221837510951921818255039042695221013001186944403030485590514207649252317493348609134409582916796391613266651811354702655443803255006674931420245246934952288739968849030628157680508079336249789926937707104330372229179497755101310548136088579913756797516532753326783868362120747294159068600055647351443320572558803471710837836413433830510430277015714126025252859564106778427931017975031916476626544175030469896194841051111703685552656788061132906750178166218771701773822321800760006044058657134238752301885115315998702486975707726184848572541392533173730900461594713285680598635912868406568511020700976729527985913262811796206627626313966151069616424253815092228882032713520105228288056072830354877885145519322554297204954545084574533542703370309816733051788332878118385171345931485401743390431440525210703478223996471255475609588862585076545566736376133166655040865050870995808789164910783777835018884430542591377724894287977607703654821975455218428471885878010552969797476142478819618226920195301140037950048008333364172171464225384443166996462106707976118771547184402160979514564168792891768852711131630137979997645489948931618750756050556446280284187527996871647819981383574348143017623716437913301025104085457775133916179258518118375479157209879132776196058296870129625739589778000035991509656319912516586987850008835154191050964799221377999780845997985990849335035415860504265615688562080512895796612537344220438622958996644322796276301327143640841010415880323526998283867479014776213244621669652588252326777312411316201909920603693192260734652313101945980759385724178909791689141146054370212349217374546035841789517088308634234022775091386235150879665999882591243774947186091040222867342625944858899218100532596854201313787225810236184551165080053417862135935073868571883362857739187345395927225226961560261171353919072257135254691636148733173711958948319248312984851440901203927116345124909211584531239658789667373824753488280704773112967164370723973697869474093855550040678248073926963775714567625424316556618657954190057198223505705831024587582779061447494862942566026948507155908750111722319205903951151893897743164713412100735930483456218485856452397858878432173362043677717539132500691236594104126480063221502087583272263863605517445539315574315206271717513678071412755534785746274508415219913192906916121538088872122643640026430495059371931242099011276845069314580923684685284943099854068142367683668693625420452697967895903384563992316068452718239985186604292856289002192209889237323561834443607438050648508954738725963254226148793161332266168573663411916051651425072085663641625472277662431372631773137313937787856052995160057101655029816090772905406164955415952711833217036785208734413229314735660027269293538921932569599639420978794573675652484844914539227857359220097362216108752009037793780285412929518176008118611016803080171434605232602478144711054485582510674363055195606029488576522591277921649528989502457936109102542816719565475556228832986766107983029300963864043287902746440897898236541849543534430523389540921232314578367902797171639312553350985145617095282402590814196710426780640560957343712337667990202010939684010582759242647179195826472589398605483271858344323307681771425083913534487062566180948475432192160503440102093990163695267673759587214867994612518093168310174476489083317000210604337725716934681086908789040208035887735305505604957902945922783375442431963427588001728014934786006434419461616503300994808394514387303370172888518593835673453772519436809404667434708837562433963028146577105938675600857206258806224048005959241134952989791536738522153256100238060482891241147455593158916882825583900885607619591598996298381164082475686641185630285402071473715696502977121661829336945871983991124481359029423444600161735860466349941933221935893575974011621177598786831179601322248312356492658331045963541615266479128064878947862307403216841435693405353220593334411201606271849771421601700918146161011925859968503427830547171857177258060169220627713841875893503427691795743772207842132567379564023599302298279153573910127068784068501411592019793039348435254560169005623551995944722198170142421746129622858350023396096573680702105192169203855407008395102753524177150433790918561033138976121411591844455761334547462812470257619073437825721071998744673255078313974920397210282801075568947117070420810761918337624401277322298174575443960501334583852186737348437623263542177589521203607620633839134488954639673123927959925179949092468665693026487865010956854035632849177008691913095799362079082216875640565347102356608092446018050661034368874614752583384494618552117335453411580418994617750311546935903881041120927049747473341858957093205776577275157911811831775557733159628871314301818414969947903199377164779623682278600376371045362028081704053370301614157729654406370633741038335533728770537324541797192918016742071986112255476346789348163501813406268683904693561713302067250708374328956972118275522284048848656065605260998241797615390275045257827720010446373864970621125504587857817467499447986180510871831761091454496856785698930115979795059900283396079400525168168332753583560586629804167664245722806393902988622714951078021863187550289129149128246632727782866946698951076891737143306306616893785972642745184875662697540806029280138038904168835837861201275015958432783082235657347444630934665436941245973592441789118751768343387750619658126468162878921259447634885765510587632563158643629409638927853816861052337691923548147225245364124510858789828632315921118031379051324045314029831190248235962501150378674156417901755304627499393407917808620941222831798793781901537611656008919351644393963079621462334611392437842095884472059900447334555477731236334489268605848001485623316528440009867952737402057749346093059744475220349843912919409586219600995439028050450662848053400351394561788707213496920658849694627744680820531169766875625604394659335595284766447202864119047765419057630934090450446228496119102621737306679660986974711851618345707274559003702978707142971472163245218544919707781066802369757196258552634084062338368790336171038042098446719546967785085978677665682053230329277164562820788421210512004513622333992033413076390590184094335170545554585802262090872368058283941569002300760314644474220461668340391776511526240297398546729853048854983202537436134830443157698402462581029738230897446161799973348105132319861294888476943072897662827574860469412723522596112168759627206864535151876600712083231868299405321980081407172214696855160272620913375753291136677572184345975488482995832650749475322280255998059180404969456330861552780904865306152672826352182149921622188541830546696567984715482471886967900605186935103105922467152689550171765239021142326746870216250577662241342672659653929855820108147631882826891433123016670855932970368597849913424523896331973441232451183188328497370274442618326817604715445945700066779348149182319776692741696311636789923124370301436297132092747082649396005825478021581893930625449742698325213732534787068953733583179887863467722892940252651945189197266468570406162083172964491521867145058853091817633549858280151639788732426056918967226581445432523035692509514177960275074872413783045827763077577690203334101985231297552820035282619877835191540779116992885738691752148759459942725659829518041190299780172392956000083189658470188424611433356282825920523580482191672799357513003577164844355483592466573890750927854018710610156619912014161259162645140988750593910299630548446460159251572205593095667390862272317482141320107406261131648694403162783771236899687127637723834312202350073335200338573824176974441064399416291069456554475391483581429520107529876223172713410972034731134068893751217422802239485810145393474272636855420410435737176042474807621577125557137366373051022320337880965152186003174006570525222052699383888165823453685609470460022639720602140395032266941289794427769202517821051160006956882210580746879599087316408681447119480212946479997871213424716709356722112138213985880167604466971284410597655220688174547443075008732125089496532772716701420517345492077046388525945349252420104523503584152855938913390164711641119466945143982228509570730457089429860894695389077718969210896566088064948927882593303616810696734837051482401856798524806662222112323589431157754165361783875845983453630804511209531535349081525464203633953652379496423554909507410289603535624446852413222988869905816369220203996127937385312696848206197746299645230622189568208917738747011875766766631588623352605308951700181696460840554435955458791429519283140526968327847320413567972981638082251330459743121675573731816039992674163828710985932227804008655420937300263114939237115835123822217565806179377027395211225453198279796286133253111594787596756275776347324148129471960619657339571714250145421539784271698249653268215850493926235480181931782688610742913867927905536902526771814706939683057898782486737962048563483023502736414507094160003947733956109468770370898572401843479338940715197491168247935643475991315664588136587469502630507397754823456961262089133226093823084696458609715510270085691896423751570904136863862100087092247795363389751695027121858729017622780374438533867994246471240864830747029469971114616266508113150559901058995674883495337235575522694316010061587340584450096848563202181043408687118810317564908848941755848983822967100352152552872459209783170606908822917123691531680848180738680121014187578656760364342733640472240804635423988655036850605747671684531153692009984596769540949200674090096446660642934688059366640118411176217579847317531728432046357550418141111176509688619209331502499136623174426742492362536892767710898737313819122456911614889111147137081409118873048270083683974831055729424505801054642543645241900359343647061887161715787800435577235172877181177613971590103557519765776115212044901864076135328353630726526077905658204403606194208018091184257642772780948980671110768368248114920273816963362351607790435641564842537664131752081869682612670675986660248369296337723539347552583649831736262571814310124822474855521027323432059541221090001021131716239251304711517219351718169189491066732087903003367604019058503923518146099038558150790759309963234796055786795037291128089619491104656699621014671857111768700899533005117373053335193761857057996708383213338627011878214877791343288918353210885433222796593048464029488016256545073944602868834794010895728558657983407502650330377989049671331011067302415212556964715740967261714048230651415445431732709965359642566417088453355089444334860755626433717719231445944699682330809683196942965942430593875905757134688412017092989426217479964316597561112688322437616312059600783182914985889141333967170559850810972530649216776931259496491819605021122001907792154052217836911493382767355927433677132201304168699316938002670526107284346985223245513648158601154021343137399847354095038387431682540042637797831419075382955184982527883309838531484326194071232338790071568061232736949768668338879783991240658006466216212457867735814592447567082840226148134861396496517460303799429525110086675165728662189845470994044610488195997262459290524305179143603078861520034382520703327723035853461245150356533580689838634557721768157012708794163084716656792475317132872344781193208081582767259808781794717239674026899375684810816426064775817416068850639786451909740664713436538952857711196783574718202950551508700664221113839814749951459094002399135156450783988185998239719945034447611832109266541784869372760002641200019002480576684120109477329182956180585816877467795811652425370378913686392544503649688344063671938429782916441692921142725997701821978779049702641601059946632361388016817959225990939061606088177977919876433351851030634844630061067663205499149026773685043529103713947579837985650743650064458728925789574586251219170499373354488902953732465558726109930697916799831885484312819565879722316866794866535561584442165826916952147507880817407766587057588241078125985620504220937567170506581871869913571592579231561623731974876278001627750390253159226744362031951636373973739224871479223874138925659053253656218255100976473822218422358164995027403424036104153160992996935487954778109748580231043162788255660691058208196884421398269700226031473605089398588977207698062580943746381899859937255855235828560152642798325448909090016292447710397553932111105544653381257372939492201902331635284570718532237689398706753475239436000485217218957101155590714439928440737374741618379782927479130486038183901940326573697307678786321277563086459003721444240023086278201785662722521434272425423048886520536828380340084529904454074091605249657224426094721781634146524666452101794452760509920227233536862592538379262050554783205224636346834523185476893641225290358807434128263488700334273417400809381192204045648053949550264884650138886887044510201861447580205514140483806339244343538074487003833381340862884722360814815202464954787567054249299602703132854096586858882213761873664494720220845541070020929130581413244686709232931396458246369859487848514633148498969751446240067254546238465397635843169664656383817641669008663050848762022306274978213550980681918777879082019345960034075814082380870826628269909534006851436664104637344523685272505258074682660422437803557979231885699403928277974991688753234842342847150578915164946371682521772124511754563149831996089091613574905590381817029061251607341915968277154430907378087224157614167486446176638204490285346870066797769604622693899603098634679512545021228791390190944981834536677065725127594059498700830570167798013210797801532956215975739549400677455086480975241746425435998746777827697096527663652208806394106212612686420778839512535090260543160946597751139264707035783085584804208637082710969600307151161020581230400125056466454039724684385682350796783914114507510811666851556263582920426095663567765172482874032847813937199759679615793122361323872849069813322963827551610545055536721558790107569395321901357408640798674675916183323430776337592505587588822006816872181102393709100332569953456000350413332850089043374255411250018361591228441670403439952172345860757572427499463620454310104452880916650129499406026212455067455730813222514864274118533237858307376921968470065153741330825389607260345678103759006762969887551252706336632122748162747921881126771424589483637945101779227359351457974340821770910961446005639868709894026547617600374687885085058743620686303023529928599774390527999236137184602364522949393397017988094910678050824555100619525720720476745748500894008792840486556422813986471980541071943701052542829421045738326604823349061153816632606639376381092071666970890606641488220007680184255944346460943463195325696808327896805119356979798337391845063836651381745864267477356671528959984792755803487179946252896771464575574397461967838037796057216947625530965636875704995809421190166227756729296791075468890033517806512103892234656934866267000180276360431507685141102442043948532609218386644712578219037626071066365638260312785099064514345890616545862644854782370571383811916501757569981577650517775599975349576973176439001251920997974723156718262976461574320954885722060992163631116848060346187409187523309333046169131751443305658211900477987119012145815032698257745235477581154992371569401198875393308912776805549843882451899155812025237950405251508339409838962949251279093982655733364025016567260209188399294986911770904677316271987696187820033441950763183838447655157560342290738854171103984589890410727979966419371617919165803234796323191629633736318521158980636512000772770910378722165104913046349394056906774364693143676398335830927959272169795310919309228933157068647587156753115876665593443009960707794974611169149700320443870062463696590106344383672861855293992529129884289177081710678610548000630593459799879787970782311939304936951698999688325947174664302942339365218165010777449237493290651415657434919657101234800292574668442324178528940916347221816341172276945258162636455258026917400226045183104309312226010451251435486593385472314948925347921602033312833139863301134616180545701468258610794224938740979103552529729391828364563909738597077748714497220933520438225445641845214037841383776901808841395285271196248522764825716955113418526664064702944015076949353983568580277343964459131541662076657596730890917059688087108033273812431806215454294971774503090587987550338904735993858808663839449411725379735536297397065349624495002618637571661703172626977387022569776028169774430027591051057215863412309134495840665641907978722545976832532624420108031402890746651899074177543757993288128812450516702708156429144397631835880599200060010617112471840423789355641844557590713035516594783667394548991514897652092502484263019313455791690645279470389542785374331179091411873664006764698514617076690394602844817936056083956385647781028763334122148617890769701090959130123368198441041213798492067501441303673049176587193090878228210211521078752335697493556738227994118064037515433961190906616530496521273447594217749809222142065200137091381967487242099748974385375479094432217088270215484936782555774485990743883311232936537396219413565149170741637398710400663617816647889346675340327492831369564850660441061451489881658950138353226000435509744769204603201364969914044712973743831981489854737355507320681204334412216683109200557355802119041539705062224172981623370288340935364288079671031194839252101507707972657391420804856844489878736693526020370595978411400042076649490466718877964773375168925676221572951502691919017468305947965968287866771615859217618909223663157457017190403483330340474616289996781256028187150709492842821242923719521717385845773143766192216946781738035705003207294871247381846152544543645947672751589242339408638240887714161172472058056538609904231686274022331871862539212032931702810431809856633655205860969087598627119773724441415135163820442816390076329733373108368654345024553428731010058114562769313425457109817721170321873489254862786448324499417474453655444537497292423323961254120303688995182583147737706892124604224234537071252486031468183942621858361940911461207998714966525089298627672516504664824260923958275335631656976693356194532196901996308862997164186220099034077054410091607394653967825359737768306434380863270013191571032468264322951725770122495016874691026274211395683350669312247869546807136177898973729940361443466100468013159353091162726243126277244866211865414123663695368839633844439473427310281226718927996941121154599089875936253674112127250487058143275444736513421130820268870922908813510523891854346575182102749803823273956847328545176902488372670933587355865826438746594473581947477835797597778400003432800755839552629266256089057425332781113848266893040900181322414697632338720974745242720880912457772256265702170528745155216062639918555967784665691645981127677285927658633274526263144423801606254640480912035006031989178260142080494881501672673621200181705068862675189888253141762749609082270337707025459925017219384061926680165780384741778618405034351074417029397751296058272616248820202950979288138460591499425354607977927170521499333423267222478511219844161762948050538144306453177318098101122592411526817300271118669331920669958639031626212623675454717408886811070724829429102852334778895169461998840719970551327966804445064193656780724945303443710237228816635603356078888490050001523154295027469032924096195994451561423392141377107435145440394027339758036630748941589693239279462610409145880485271165052341537743172105841389442182067609275760453797954399294502644503444236714662207143719058918458800180116159210841308514631626605396709006270686177583192803617596433381859183262258265011390107112747858357704530082249649332247296386207862176854000248254887260510111199271773917070852646482820510685919824009890705348772706438480676321338136360499708377521552241492550465240415114989886615280147904161923245365621209280800325044405278886529322453251324719310730256603174376770387348689970584819843161511882269878416687569910284599683886599257965271121905311602967109061423920972705539597899426036418870787590589929968654770136247555198225209172384984986441176396174233489912676732667521481587133800528386807674314099528154095739027727175173349311862089199866466612528119576221015212444972601229527640070972761037075500845376843213516289098464315559860770587712919885929990496984798524849913514982279032193078231716980258825767485935052025610966651275430884432694863942713328642680217430206540097442355002302304515026924795735235631337968613509765419530877633898919504913935643101713230250017427441535280907312351390316511919775297264794663995714856687991579704756869452746117128856043017238467795322968374816192785566701603718057636538331197833612028122380250451862141498839482961682054372511884493376673917024247160587846890316551194924872804207281897591381597263950052551834999621032267561922335755646287945449981730074328844568716496333393971170461852881928989307064776432073241530054707618681098275159822108164908317732448478585164334888079627807282134399366255276011152558084574121834294819245328346749508990574408870474022290529346354745199061907050724615009966301151823468499799909578774001372807691958942056230285672058878172906937077733467237910378407064379314781582795378765220830933600069283526703418240898401202238909165157581163207866109315137841084880086495491504900855459343685216703945390367669221970987305727430109880577579262214172585981910776877359701968926491397378213457067662178535128936958833492466411280275218223894914859736222205986642076116566433004027574979981192461398563220533718095195953414208208934066420963735312427218045453635655377652664177786153719591539604832632319999823227455636599289921248142627622108341055257787316297856910522315401223406532777811983306152719043440697747241341390489343683435240472554258589753234389333737744593944709325743727414455134474188593704961959492317169952126418873912439614013050364785077620298096230112464216334857336837484442595941146702790203555725802231247386803958029286218141108565317196780012027154374535223091343103626089264372970410244818913360331969697084571068689028777980507191348817536875638351451912000490272862370852936928747481991207949107580146497104017776018538992964913800334373000749561475814293121767373254629323689586190763216059093221600440552200222648591510113593865240896335907642926163837979661911643538838137819941114491912212165122137569638165348123814483074399655086037164716254196007472102416472632334065679225519694247975956625975556306832269173531812796832090032621118041552745053167656327929990885538392811653156492904772672315837868548757004702860159769461617415805687919852709679154420291842130498190905963750353679202888249372587522099766971187190773412199078543993712092008929385938263556359403332075005556170170181606369236686363769409007255084436768394918466755584284246342410234476764039302535672618194315836216724571903798611506786995153936185173447164950770321348178679870583672596432576127450886303892575438192823315274686065268868090148975038958117115439412853259100951976475574522353567151458904819773971210506370019494679243609497286774957870251516726958633396787244436400520336232945563326307611942189089116477965423227464036129864527736693239742005625771416383654996934271228138812952699597369482221460030265645803373964250279234176061698135561345264773091734757222877036058473463439327715088605208988838184876700653066387257697481831579786408073676879548245502760398323543255173354397603826474122997497218442401105371680473044049952876889277763418089577847844195530273953188242248112373984183742361187364511175367014795783298932932353112819024521726546027950150778261164550124815392235777800819561945180491256203314234449520020411122697726264671344063518149907684588616653800096677100633454034099613448318919375681881849165211686831532152163937521697913799935290609724724775566073132935442251917537751204643389809444559042159988370894694407454050552790480236228202689282677874579278723196293066460481565911539516759615084238727092782869029473275896833407180837108235045721057511384346101465138731335340477064627524083063504393905552994641247753451956987229222373433903365481683860115245627724102631802081245742372699254575854597212989357174537425815394435379480906919699262592743367534342083252372197374484027617821562510148573679643635591052819265347896118273685712219708590688299086517906872595769604830046558890279808880555231588689861050229400193350165139311188690542283303291978572324354156066130860662103432459763990705475684357041524706626799332435870450336559252493719833652418101798420560556905846121465038815677376371893870174234612980069855133400263204926676234701682292654651478263069388868207928542238003203493399432582579133328157513734418884466776519447683515877465221390526049506669457946142257622559196280034099859131329844835534669417767441936942617358609101963730291345325725172654605071693263412478971817987608269121216355576767947154901042309812412730939505570839119624414865592320278900703639150915256183471384869099773189967821169771726750591035658877600290610021049442681922509644989550180330315146246000616904107077022901835435819914848227915165592024773964839938234557253162080846043518607779529873287762790586539081818364058439491559545931372130177710767754850506875845005257807752378902961469207540758810039691880338430257722979877751785857850664670290683407981060442743356241745496970554964751167651381293289216785796053717208315561992741430595269493803692388370221028045436112354211552326459607490875579262860612001862234133835898234337260427178415714806002732657467743249605408933000687939420373985052980304173558519804561387265747025077265482259756175980327511895433794963067171727705494914360272948232516551252089238137147470624075756902078976359911376621377530527496736856769824115413711981982524785522059339236749496225053956706914471882823891191225081369562053332881007924095319808440968249663616593804760561368182362560490001268516517013127171309106783764441249396728994478320124073667963951097538091062495552452018853085178578563174300976184591954471827346630156786110007972588367693062261134740229834145593495279140766753981442122487878165395858331886505805985845829403796681436704096674730506237123365979437875731839069649304138499969718267622283730302820829745812704583887564238974805506390135950302392193374844025004907259071714746926693547564743407694009831704183775177352781739215777947318470880254698823020273367808276790981294883657409496440390862902441530929693682414519357966092875015876106902377324586887089314919289415108526312386304006112289568217364651426483682458663989503444131903264395425849570993920134110432095056219008906390146328206512901036397958111590423935944111312803704416884372423261433682283585308315749458308804627936218121881384463184161762745654870549403722268792085693412837315553916325373974559829022590381681573826920109917405622270604839735276123040855007635876572559009567714069544838170712797136231029571270781232164431077715361737739195986410202598891503684995597516911877488962935560164253321437652304323020654005187485017771652074339475794737231265728984421865463123505553393242827872272849357794593133571883490158759035679227591498723297862527913680909167851619702674785155450889874057913228730913991648188636779971208730590045597213103196766753274029675262188587712073928543002537330000270606979320800540536607213111436649137212255038442705537500524860736613742645711882634463112162674585843432987931081580502713509210356905813009968949649437612452199408015737547712561821491939713602833644756325278370186691597788403185782985332935577660719982187985244916294857672283643507996681844424833899563859986688186133238472329984826986261166911760038636145467022675399064468851290255101648404990286288279632773759468358313316207795522283898424695777386207357864184342726933055949847359542347351940595462189245749843122266298901639126292306402862344580068660895855685306907204515046639892415948194895980386670521220070219853453011129914177353310104210235795280434827926601766918448138774403375158743363024784860293081478851316302063609067974667514912918734628491886999640735167275972018207126144069552054736121504353440101395108654494983292775172279599552649846938052140536781540593955860752765750697129921205512132432699336346009345348912402978436708674029138194600727165620506380117233737991622562702458387288263921094326103463388364410939987556841941960521187836589329699577931359993613917914479737538723489441197728209261204578685061998560698922615977467697552516533704890196004932930254049094983741606218769537300829372406513514008678986814975803854010436694277466294448859546505691503681931507094104711768228281685264989164670858432360742886223940643181903624186005969507802064514443935691939524604986322537354056008177130593192513048649103561127614156637611305993400810067241334806277545868175416950667940308442075126937539222024852085357285526852581864879536852848279198836747979788030112474725917504180498239421652055963438986039909944004337995289440360239447252143270766486549261244263281625364804476490429342259428992161592797378002803449237504774088540569574226789151140533200837451993139631950500511647388263284874787812753910925734002939903934085184829008346442048289824651841223353266033392621597434914845928363307039938579278044377165007939257823453732054475435528692378400074057334439237547819895038634499446507500708192683735481731262372523753404673237230906262960981414845284950443288443945644066468459474368851048794233200113341235549702085949504831619189270101101818101882346511529276470466923788597574346435221617012688368225888382100855106397695787403492236469054546774493105011374187167043139511683277001016769900746768395114410633338867813891420862983130621341302370990324287146589405796471637507699796628127727991488045755996065533068321827128671110995391180801767045166694831255826281910054304267643744776331672460608922836349707796865911522114464380879607645900549448668522369506958072806080957637781199890151858872546400203126187963722216179537044568156893209362892838799489063163124306559114540737563127110070694557830185949485980227235462085123646954346494070368940106814770247920564709188025037397975801293631164429815224104352166567605935462485907910596762875339921678155825538443373751567422319535012520309147259721603313399052401333552521269264972131375211746045639020560127074225701829510884773332771442373517400988615129223783359150908959852069065002428208064278878774563648023070774175827905574567635114565256216052014715262712119069140473362976172331826189789808687237262791438730771177432610907943480278745625525732750949098265743331179516253890013808140483893933644093719615280653234270741038375820471822332228521580015437249796351061871642822045876955716958266332303608777891653770529389064403570943289468380242119993458050963298522109362523323056118325887547638532180323408910746631818175584844894978758473518167451323610464667775776868459569906338319941081823168241400669607343424158927800629317955664890622787284137206243814484373860430574884482830089934812513099830503009913378159627049301073684063367343128056754260726147707732981536099812133206665997073656493451266680200583441631313253611174205009453111665064359905711193837719495410285110700824048693624287249843442806108317026316249002503649708275097014316520260357814056517517972332562126373339920577020095424134820786677117680535518329749226034648793678568390504297906543926380365142922700499838718205519953674783330592205472026411316005179083836254610692961268957269431859423445768880242628865914235117211104347825702460734819331086000701503378090053393133082756458913134253972755259616564357670694231306175214114945970278110853241439733781316881925343712644221415400271905463436433369252051047766365544664653636011887775918771562639278493314835419614348582992179373575201274582906165716602113788952525252956157670828746477894618344354259493325702692164454554978504551795754810374414712482248567211411182857532571771896151039784670604419442041722266958068965886457255505472706039676476672110386573891719335784674969173343942229665696083649527977024788267445842341327249285714267539833914136473177338280461339066355005131333375270586094197389482155906135232286736113544292051641421964187999214244375536495774757729524220558172670763716040360847751265331817091864876007468325840273690092855318509823020311457462343184798396272367938351363305681432202035327112292023252260175389493967917227312902346795734533526133715348695325149349056024064805776277776118036237917533858549301833780858672796059618744033682198595509861025705807272614923319313150351085781305732154472714967401178492956109265610491111020656290027276176125958915802720434421624848935752407782819053223771406028469270315713458991886454423106208699956456995829402351458457067929456462719727148477448500217915219472367740790553346094021575430520635418865680521371688548404280401939179576065637574133992969793122519442948761735866908228910763822847487872181362563682831797750115529992731299686697154463121704169751984800841429535159720334517239546256677747356131339780294409483504370819931026597493174182452747825923854190043197362201825455864372629950027544317014399755999158077365604552338403087580778463894141680937398924774567144409790178872167144060182192040866464569689450081016002742572862255234447110668213342380026620796963116287114412137426803697723357829857235729980735987018626831012888761538438222459457734217219553146176526310201298129874314808071867086199542904420029180529109135844733129594993627837628678578078162179454681482794219462430859668077013472064511251349636044211592342253131469236502157622891949925001833580245752538838116023326539959131860609556237148894962630946332287923824218019699256518397345973320382824538389215530013139115524991686906676622385011446759897413679886981538376797436140900858513780065675957977823390903815495315749350630873379272143180097786145449122940748039187888548318336171145479958852986743124808577499102619919092929968300799806275154408104159604498907782674536105920388808039030995255332062067245877848625958567594846130272574342670534928252615178965534331194637680946496295315846256415300045640815691492036960853538960705862906901086864537858025902706620029786035586564471365322313044486237109337204241525690754073740853035723140439039719769525367499542375502627108972823535039506928007322912932184251369279800346980470402040017507751861607669748175259974188485811460595234554808854848317483864347736185195229705143551680781631531473606359276731629250077158467103102813017928419604365415371321840501954113411612635310145448475334257631086407692668817234347334422105761506718292503189161639350377294038953536746943000206937532768778196927491223497765021949706728193756758225827602022680266370680166823287805693928160421132332493269278963302141489184023045366483234908591076704540876363963464812868428529458904907173408252414835883899021578728365755517726537708926158377230712937902019298478766205684912551556369449057208813229227733032563087974315271628757609702381749520209171511175443670456603902964440960550809318021512217394785418263064067793452544876002471067034653085611867010794304366986798682721748545243971901151196407002871660667553827519009285829585896120590497707846935498327619902660680509635228033420256396513354025287610848296619350317003848466658469965934941772101774259906569924063915461917009266369017532219712060875832839937209894723960411639601469013392481736454049166911257710309871215892320805959688193690398952198999101000066087161554629188307527665165627873250351807198761803847490236091526073127465372083474717223452974459954358611522672431890307755061025713208225632142317824634916926301766380942257113624336990081282561242083322774637605260432746087933842056261519167399192140749303996757805760276824755045539522485494791195760698674123003545120737444083158566008482441213031526486356310764656144118523668560158025354391143317281171287782249371024174239801485606845573543187348048825088209588933635386884187232411911756035907643976902624653900396078994449856953720851132791988724787617536669028408659384123652166549795486678275311473149308600319280773971334272346809579138063342144844375331688714752596778905708640589170012781259708470486791184220126421688375389550587489772263929813943677265101346903400000828566884968685012510301307093764815368542258899441483749530254081353666040683705399593022975239818737715879717246165490714526304362844937814205376864909605117169260269301754466161489284274989169628427495893762011587981464611544915816020543085621663883378106133526106276613022586895951760671842972589467795237056876401325884158578512262764246368737424547857068551498149421841134743845063586954470646512756139895192987869477950458970627171943753810656157213628767548685830534213285621198492202799490766648099571347654871102154758798806331488724293452360189725504531768267881090520536108872903986164696399201595001302916865139046758507234171978981265716135821649335815466476720126529756756427887750438196071470584815200413470731993221862277740193297535699567005576082470530290905964131498783194453728057840830699649328898721630815376773466727031115938501099983087482736916285649229264210385710964327033049166372095211795721411516618833689182995529671448546396590071710304802879532025728075744057552657451790225329709802799286640460530688456702317000643252076517059957321816885406383961344855039176171564608657466322636231801131280944020678360803698753033839925059353750330204914688993861684819623453408587803168949385280439414435596602877843814483688788241234803514985797889266843363296811348570383564221499760944356612242064419804870359308814470580076554805437843072840738715012995533449623952575058412998455815166771431625753352594553462557945450075970169350599795349460774774746116644532157618606233399684510443653470567815846461404513525783404525590852751695575953626638625731333059579707517379733555559709937380740244068177402889690346854799974900589251271470686194190005947252445371328959216893286572356920700335985667960557583307851204380777503201522038419389064235763765365436775305908353172519928846059772811563823815807963333777131468288950154168438196316573508725359893212108347621823767619196870296715084451792628104844333125729539512887924285714321020902576455512011507130217523544165172714694578345045162463977234100340756983323469342460134541063109533579163542270535257250408486661360526629350913033491502282632118626287100468864122110171085438383857137737038348549926111360849053035648585920278940904719624098896941775826505896851871227985827647805581516632455587548916298444159068446062186942638399507850319892595327228128791789922093716128244911000577586074085079625810245876130343708999090206249182009000547493442749572068001120542813417827658071487376486507846647213510640333967441140170111615608966207293345274716859484536091684016952716442384826196986470625458689729855772807061039808832973181646455911942314461456858534130475275857786855091933033988707004440769484148652083757978381378028781584139314364231737793185410758030934009812066085478474255982000635450087009835023889633191988129455028243025827084826379487046700707109217948725247565842945963657318618631565832846427297982702745177480957449607396619289292926601682893360813786572943016609085933623002282444765900912688519098003441260765134704020614176782034756314199234169333541427442958801889983464809867658091376873991252966800472671178536268520684446107931377082560364046731906064305015157710529007041244444260962408299367944416381236187937770521092494304033210437520600481677216129050125540556838634462159369726471154812534581715419212618693873542633645570351235017081806067077211679693149103490183899621331253285887445288195669554324136253515521152090460955142808292129160188984080860829861399409083851766370933254368324777039704001474452957205613866081208304688028619463680372815443308225829545307178334656742857232966018868991087936256492019076689084029995541489256062907847346566739940647719941539721180283027809370280746208404241708502245859138854855433884847433442658529244489828094405505864931577419592473276184347973273089243098169301788845145791974826338289318771357272545234577896507779192774204895840777735754125375002273152243794249692437853290378148258972105571992093385649302667398158986202436890624547661226071879351494028509791942738802155068442018657492407769431530641345426569774435442718460105440369474861597021416900050039627691043795564452686420721623371014646186867721433344016628817288791911595838749820851745267421534847481701076341502496902230179402846111194815641972844330196105528247228582439536746492682806469744196032236534338595731796107851982147727342863020247874017995311691068140806437605548047008001504045131015356603277307124959535708592715491524251210695324037736194083626345152926331923460221753605754001213493918919822377911585863834244153057068416210421757362024283580572591382777012951400874391105099240883491306678186432628974615963668792046205434468416039156821248511401841797488446405507812482567314990237999756506164882968867797683132133942536327331540182764267206557384451728902560279765728369537859465107860066873865015510356260377225217124095611659401684001231839436668104129902841949113658432634967069125884387769864685035913539218920781820036143388219896274809360161975274230757919521046689226117318105294645643685191908358459703966685793862601533438079912557786157063166475356295571521427033212649532611191799827288486797036275862292244654536469117971285828562265131373910608902351185911043704974756289531688162909097394596820931719641272414774832092367097714536541341242192439387866880894647924984459549227712627319967623240373812252408781518671107155956582877948180772890264128663966983241880773726041062289197758196540484021738455409834725748226406528218217035863933035838696273574027304387252483351124027372341699598474374244239419337206846547321231730825094961361458537390179510656084668471535435744778871387706476403244063612909548703050079228369193590610924437427114433777610355087675559173129986635236238409395230269210706500475797742214302045599439206051193268743150293220118324615869055756574731984000097832391086207213532264393263809930721714664927383977103836232158816211959366159277211053274899971824985913420580381524300766953869038829514716124377446449991329359820565514966193002193307298372704797628160755239354383578656964366687555930608652139545475773561988218223680447355565563375804066428856226610425967165881810936061167614320454944764997271426625748619568611094433802623104232596499644819258124627543406543442749390191540388377464776508493136458889091982831656647389322537549874012154552775557471330421173373826277250741701659463797167044510887282510413815217915683812091238158577633758217467759998739167057274955224383230797787798450769559889616701050334285254909370365576668649692551886073519932723353937826210750791444923019727579644485880100298818399961260155945238682412137283041029193475580869198792333671256694571385655695277101438135277828813846782455762985400849282122818803683087276807097808803800651792517805562592183469778158334561247715742276908777540312998659058946054956213256417955851757202241990021096557456065114754260193521708502216443766177365445604354442715403728110468864669786956608907009012540225923954481096223849494982613417550627709335578041111089461404143332893878858743047521240326590945734693877758234526034693994098078238631732899577096042336282984882033899518917939530858170158544753569086223084430684598986825102502189774762838397256008807569866706540238336689512136282027275253146049222814476282659348769288928902090518813667968148402666122116623836926180827113171132821054993044647574575292195047660663889236228094561860180236819445251958653813719034468201305507668000845640471253283216249562057874990531564638638428764435036511265976962210797232206338814564526825777683291347944633254026774354428891349844859321068264920167903253138028576870578386949753205187868311722923157378658321454117436201015066646886803462510699880339119770300655093078318462792761539737583405862128732973171161486070788114029134388803981614328415956567922303485665113684460602470776175171840741567798289613218273604831802844713227215204302412824076922489638119929587126452563267540550284302036722769402213546112906206921955945855372422542229520417434197328999428977098210568586442554261237813284735921970495082386259390943908601746929650475529357737117027745377786927901680119871709528828401533714579421297092012436993348055577894683746143682632329953667114889307034779782944795043408372856984233526790768611604990601973931585102133188729165951284250314753782150741278693527508144923235562095166282602472516863389933195796160338021970807884723340673466964418642598153632431703257758276394665034076608545930838061354882517107865021914007954196132727782287300359785986477613457094427145823311710242002011722737248963056929849520902003226125346137346247697513914025776047733696921840598898812626842334139834429658790102008755425577893950979570132189987399793616079134688409634048508623917432813962342119692181391466998440262440200451272077243572757732253910437545945785173855471020693801919191499901880407223690771216808812318185296273549195647624864908284341565711836062646579436016952509399149229910481112461359024408681737324514137137572633674422926238449789141903906012784399471780942071706271579208178809305550703619591637295033597999317169077816560471290065361651509625070557228503128123691376182291691100491927596520866476131982348367972996170459863697866080346026986335329797738097575773229466634234173784307778982650520749099079558930312671301439044808834014131941685221011103129102071025648848253678409778601292761332858592902384684650218521865625918888936314290577614978349462159650162219474560378947594887248430996215376121382418054797933961050974228172055855818528271725858143713112215106752005536285897143384227422934997058954950011892407756677170099936391746957878921986607471403431128735110046229248335753444167550157661359881022046062474398831423921300647664411130820998464669773882033717549316428757070272036897371524882805319456209128903466934158791567452884631951457071655364025438969481620598131910406831906027058260692686406547452427494261924406722863284248255522322320185089482253580491881396180183937185928270287022485945939606573860432248483874894974352041022401152884687653093970647248379296809442874867789045406455490056007717296407311804632100215952989578160258257595482867075871917551462458644118030302524822635750736470424204943440028804427983465014387109535675507937180096004822699319366150650746221377793750116073632829811799302273695063610071970509870908997202476299208885542986420359692577669916309969151146426609035740000329822024412814279386632390941150341680601632595697521054955807593164389126246485011929381204311032789214645874385919727573633310576948528094405875577851404040466228655338234390885154207602553143702298334245621916377550752469266775517125577369306519894512327581537087635881743949996691496917121740085002769499037678357542120135345584345776216602438036205754177579178179253993352091284998705040412847017354216219995476698128108937945936507787543244803268308189445735104811221322096452753406090904791607286695841252245177709443423750057191850682743529638042316909272674892983018721511866804336801970354725642654074039767349103254436692965527674653557863273486494762312604650326258207689673021506671222344883232165465243000370564213130779794340111441239997310461087125701942228517253030049127101779811757343374095962610491068561530947792790345283990896757055500377595111473980548002212216942235533500632848636161571161597931781788235973617817559812425052989340384505056419604127288655871632705808236189431171988454792017304261901175946097329257370495344055805152224010034690861093303390478389166065280151445568258415106585987727973603453173411708021956309497379662895715698768055362873225497200580648486089729796089749667640582700066796528023338807650928568887022583752323518312785908427110439321728678858721436895587923983712320649593299187396431739044152990343214042548045342534245811875387719231309888976445845799635447654087421378337709621899431707329162995833333473464380240050742586866183912173243624948121724173206629055420738172571426335337122789916038314513471098284167706927586761755857424904611436143005792592639023398539555815551634079837978900570615112803409108293099140946337844278259758047836611842590335401136020882793371820955057840933472049217131336718037696260538721490422919615383371552578596592255298317333670097362718659991896328765064187610971375862073863720527486090927994067479356226482024302915859263491633191760611671179281808599895923995579422151492399747483677370210379152321356664413698154415415696118209317421516230031353900299677164158549724421915294709419872944848039422291699869198270411826160247162937226719300205659500388443525038836076737976467943318122565770178096445559692530475039575027478208728583048545641224570342359299274312116547269322189038851380476187105117679629776814524599495496244057824484420765881447353477080793414767557887209302889081707474028146846673385788474697402468735606823599580597938108356343581936829598777315187913103686754336705363487831074115561029845487160012664568788829833979068503912014290954973059357453739007170008243044812522705431715679584314462467088143465241173220909099692144804079046117846423808790130529383304888091558260454693199357745878099404158012664340890918307595803537598469382603170041224596131370798406398940330455433862476092824824942497163189510914174536832507144289771223402978021001385291418165959039517324620763941283226612372416706425282022347801241148012759323470181736256194022513184033997225309411347928512576628916554433819639885517364977807400820947727721689186561737531466245481690676854030615962620442660113109558045511907840447352421469092994021141718660298831786681718695678243114508366777276351510546992864943008424324994523957573350438150414569282007271955129544392944749657643401966938778673639790605908270216934663409195895532237532733652917218122062634907753655058229597405943955373732695716079631428783460872315204908686581389866063979526322808732099599010441919219361717533898292775730208618435722562517797279077064637534134956598207849300524617658086473571923855577208803996675922399079485115369961546837204612088737420593368559862294361397893329303176096077035653656947114897025507798314743305681863172679651058247247727236323347855481678287231151464724376362612197885903719001887040356159856391205347824626252595710567429354670906284318210302826109832337613312398737003739812588241562756088523226848346846631814608015106071580146406223596816854217435794241986919978308898322031953326330041564142255294565645895897327065418598859103184595186133575333207491279012597161101929149904249115724126568057997401140849429040922160953851742662840819011892609223419899220005019974717908162455650805726830027385064102973705574169153481033050376503743472566211997486870260202004544236400675760744323707164549568441356719580696498421610384287229056061131534522770144692943733989353482338854642936302454721396394845892535826189731251245081958901594096360845762960833746122243535209956344803590700588443638754919387672093973543827289005729718185853933370956302892013384074548455565151166390865832022860262979775756614267969645909304753638729304351370412550094856297037831519813985828084769239250985157134822001340983188154047953610169867233610173450989705488139718377842165552135999244031118550256928529245715168210498411509212912751968037247032866916628685113481755815555905756310549433615273021466001855204473451236598756822637719126369092813540146038334203527702891100654616561303058132161831226769371694605959234472411610041206351840448418273036643172513054537821802052030886468549910196698114315761083504111540599216570726249835980065284883321129323712693454061976225773030682946652255307789970282859303191258871102287600149868726504823258795740195923735253247585639066583752037166336513252782207541920460553531804305616391405591434385361581574538778350068900249279774320543144777574563444410452767902988240610488859882328613053947820307940935430420448899299992378198617972706196090295775703298491832684227369767470492594394500653971931445463607537227744407672079969213592155048091201116196335645038152638484687600523907609563465983282496996595263469930336287675687820404774445390912537649482996601568323942500935825866887233214088119585758394274903464739044237913224079123539585437416112634762193446827748938205853012140937836560110402996174683684470539521699930603574966994281578791134525353454998503827198235815335339840944520087059813553974480741980638214645518161681166888545643741965736726927539306430601867785558944698299325042196955714316168404602952358041144812797515962082994674569978428129713006227372053625686045107941407860938089641068060042973836284525579878667918495047708201782422509428447970515130770577321164551228316472053589717853341026258011523861926096545381647551106267739995345045299367938394831806173958412540204944063690940825460771704931897990294101577809083921542235113164989741355780961216439673464178360130247696821646016162382611930094611806224548519982749149134335411541067035155475884601920551736692320944404734504480598914522075213727885400186813495460269057247119705177231431184666441771823876450697523901408628444584495905710065959368129825063902379505292844276716888749976478659458081182061637940998279436278740443323124045816306607189800628471766875091356561508633769969737917143945542807005487921800943277236621924964824883881357094773984565130194589239973358294052647336265832998572276610670560101186219554140316709794018636217651722488661873724461496044794325609446500555531277036948586046588822424933265888443127025263841760946614455963410273332032475623670438947408667207304098022821831517799734412369830837722172253581548776972273029847405645703346244025483231858709812937229797605788450349774521645449523932290505067973431007457017696932319085226778743296685167759913435786601117930067779254938545966226862443544233187312412464410540442799795498016965773530729132141335875734635454876895684282097182678684699881855256752431782113088401413291886203534102881490579395809570976361208455073937479315598807725916835590093296237057451347959428248195644359338561016541636561582416447629553702721538744940796149706431800275775323561542636984536158549834993608562635799789311788429806891159649501191887509261743332868685984356170450228035966747874042223185346897327165483725214993622998177093900017609394113383858774819762483431822702340431307853495843723383838288740383523480240836509978619396579083368514690601356210067861447626816924614314256973365428659801175299294064777058931316618951159593047724032245824634647188627971346698356855896179188134763054039862781639280214726252166448016468364556329763533200927176065575862318948589743419262041316603166518895676318944915450153635090362326820552868123368683902823525020588571945077151659785630149120380916481708968788502645858675727080053910137218185910165695851342296832436414965527090390955824596895517448748892168786556438114138494407736491697861623407330547895768612005302171667596392806369181770733460957060714508246861409896079422032240742991039130801999765956481225374775856243448990397367217542687635960890814096017277104248528435409414959052946555394759661640419349436421376492095119463051683135750010613769293045655042056646271650970157798031337710346969988030745175609884780807628112558144048183769903269285891375408497846491707711844446565260408577190809223341504500156059253185834601273146916794607082496170496059795772932918674467967689594649809960552995332734406275092596464675222675176438093753196801819937472486903091600728092892894228162738409868671810075654558842673000301961687613383871364949407128338661475471738673700758683754110049891638591828773968183410495429616248813184345581434955584913319267625129589733667870111788056851341563554799146090932901855412131204563037477651341219891436278090689319428239755606663849974692552173786811645459928806348857000790435636829606489559090398017230891060937255435057784648074800642414807766945156824990892855534408351146345024845349638213656001150293393405038935934892975088476120613006670791632592471463520117345427767212419074608160729564959177469533986355839266257789363300075678140567791586159641814969271867806203288650771387084382483039345441083569828456579664371139215329260963199309893041831480154547625825691549917589001494320945454437889352347948023793538530496744367364791969220988033675123569686441183008057103896622782359862260442095362967528067688363202865326340583706284846683096628363533702489604897231611126842432284998764248387774982198779665302399008877213881075974574695532918676089660646960149275091819123898383197019284851198295710426839964037470411669148100662352664284584278215717034066706240155577193191814000853610012605240181681190475262869741938117847977218599750770975344600164271345413152128228104302632994883867489082359997019691793375146540480014997853828068327008283256962392945872773481641081891510681053162979243389176856550049224346169780398999092480764483449398515083327399370770262486602457391826243590033377130554603458239746028856957615974650058631821309843673182657261567190283775117576576670986383387199607343380148770347671913996590908363917607613594335615258107267436936636581621485032666714899598941399470785679653967056583936717388187148136914259986211522114382911670421018570781638331877486346238018705347855306530786023035974275340801524403706952479073894742134519265363155104075723310657523594098226672856250060436653998620659147009995073422749408917225457268171568919774607396206191030552952419293098910605189633061713904798140176655567702922394856710792951303340932633792246226530017943740727245481281064176519422452128616465602402777550651788428294542306430966152402433932400956178463302561301873788805936738639426433294444891841000880185980838014123795883743267711908870398297276141138852046951628709767530243012408437072788710077100942622469807295597357005180622850513783894804135966764073497329504290279420103575460777035670212040454774304797198305585857193683177745556089062079364626346249362572001705750054346149212432143118466368559098606848678190990009246703263212038939436774661773624788028985900494760500684243765991660862377106984545073557147510154491407812851449820298552474132802052648109559687195032921458117772104341947472058595849018043180719327184902021089902416146318537027162853161020277395348068646914246458302854153453439354781832903252733058416042905240756524537723466961303698206670437183176938742343962905052062215128340317241130921215431877085103124048074468521686451660040327633783168314733493082341096040891011930555294212523039650532735227737019716190837255173495790056620290849376604058125934074048715543169918071419066117329283362666748594539369458918573095301034193173366167305033460474377925584594569939448528925650627553053091848966854427910375094281918728405987624125255723882824465317126794459880265605198187196397674404283394000194130882115891610114320998640730664833092775647669881311760399530674954657071285975084152948878858640448466703920171823813900553686975208178770982457447644458629322762166097040720269059669783266890691381866850838403004427135804519172837029282563994350249312939903251099115962329722632695353039542811832764820365265094917032680375667865289291458573768278062253614601255357285000296077124791568368623103511747409943505720391818234376533201014449047712108233553690480106973272335001438410713575769778960471049664295597900187132840308242027186321203376326779655943658511986050368695944592052489481701674477535782464666727076878410688333880205244058841247230722965878338305706477952731667583994490220231106977823570602770482808080593569684010887470469027275924047611284694050241038800645506366130246448057576977735755789983888283620126172681912090488763719525077406803504571707713374755881251782316215673514165301381197297094785405116818705814321151110580691334525495111200257814423322398604853398110353896301005712214386071288532225878117093052695358335333101545328471194510589274456254783026255689555234218160159309485160846415230259805986299175717657508785419656076245873898836656521131037913905751065773989519850055857944505429338192882772160447381796232619136407816543152782468701158441976550729349577479647995173470028081330440263364240439158094765036682796096870357375768680219431452893458474500342134616121425697666569891089529698950986375093069840729067201245338837340975697961020397476614041658842232903681593395311498025882019305314172328947299115528518792316029676114343447058069573300039858821601285554598493728480580671499146946931822467102889028764360299448676726515447722601584400001635253189198286946116414826542938095987237929528261775921723718160432139693432167912845529733712078588129876525065840848687719215370961119041037532283378849006896416538550874046767348968024462421847605879402573625724532945280223483707101188879281899116653259462746895836848182023021386276821565327180262415116427028500791604989483012160539119582971346077569149166181269564868833448578200637737190213277765363427639324912996355227502714258282690189535931305691891501018491007895647315106046553454539329577786512722864235899051515961337440141930732478460851749015830942605273719208021023283711754828210205238863798483207297216156206968826762886742819671800120638886379447832136345479914844527498272898580142544046898019830750724245989678656632567059225373009026764698598686411357954959176394088389975542019646446132810202154440447346934555248595534019501807056749628678635256503712070809934565888068228274147935179197569211340400883151533922434214632426638177891839904790093621265544883820882716708885273854143953087694107322539825368568707656861360917528261484608259352954531217632248989480862586502381150148285251119779667976329917210543792475387233125506614806681068557808905006711620502694344168205573055955192589130114051350395797839986877612674467551634446886186435775642038395278674009259744635181133668994292867892806357902802493006260355308900904527910356527883069146559203512913766437685482528673886039222093963674951083953731410120195269569634917703695648345352984674925684974255377788701301375017996543497806485630667337791235706081727557788549715357945958915087666910062413952291944020547021512882747303677475146374812732957143724236645850265087836800778846532272582712321882843993473845106089992228162897922753849842529838224208193698941661795676432092997258722989553982269209603155175166648213398156348664433691254248652599737421951786125141934959805310911545669122887531474763800446225408588938845825563772423834397694649379862563579277493936522930514712183877312992412109738562525646793271082821386320771540078870070204797313317098604464885755583364677385124003249081975237396900073455807475578449351101431177384970333954253656419063126879393879022604433270035421839731629578681445441087564520375194701360970560477610320868577592642914838616682106456306674738569653974113991291426253829166246045634606929894832668632326294910249266115827469284606147266629945058524314110222712506741940393709317001484820512986252179124785396274319047329148715616918826584622280421787258347382672821276890937068936061836511235065487027738789518499426660136996990762205701571175751850599610108630241612103933723091966897529605996908072609706942387213797163484482293984246564808755723900823405974227279279368071939138319503515837759110493359350407536161125999253663056970408106051234312017094212431554999051361630605027310048897097109075260282232484305925756292281082850455821715436879830297549950111338098999982733805666704793033340228627222707553196317632943742149897713613514901651454189877170459991627685502453904396031050979264479913014879947964319878845745292168677368567861945956152586098571184922119472963007731906378243136873700660070063151056065761909054993338192049494850516837505538448657488166931805419865799314399651179861622002290521554395380217468766898677644943693431765169334467234209633690959093562054891397401934977079751940485408378040906350349424907335233350026679542791865954946501575102739212798241215839272329992814039990829848950098095364998897960490130177269704081040986604460508859928252598631794985084859314265312568275573829926180767397183242574490645218826383391217648556302036253473916872527250700905757743229820457056129468205433617941257904807840275909712427258562586483415264490845588223492398969170935087150865393903399098002334943362556123365620857193618707868196396657188787477961926289446470158538373152325082726564704768230909708894671980531384624947782573668816423493296994690967339023256514543979439065356075770063442698811451565381282673299005411619783056086122614857095527989284559206259623078940776172171168215364533440772639386247472381786028208295248759431024564287271607453856487581522670911190133330161534497759204281781026109925597315551814478745576611927420876604238989479198373075028996254795224794342212315206133250122789576461496958894229474573632172493627786534730935575746426258988777010042164280402884177623407870784625575988016345647811436218986474225265227967636961195533624059846644177150996789469908965342426777793653777360699706776961137340317054241643173537290271559446701803809563007394161117407591938581762754575621884304969054498814860818896980754653877375416179571214241287392834661869773120287408607400070469757279061826002243443599926986708532446200619025528724325475348155094492742617857654397758366152758156563626289626887300622066417667569249689329227013562941206389158475177469011998123978764470865299637108818965235890277851306318204036226387462159160257075017133985580870614135810031511971768629281180608657332526662585600806951783659107391042898433603522238177771592930862748735755092077544925636208627031307469654913666074527390048868562601581690038125481158674829434467193578651191078207240616800710441154478372585608472553516069157250100528572572651390912125761994305901880082528023597990804278192471703620161290705454448558521305901498332145112432558004011175508723144442451264273386616356362632334124595670929140698136335404611474943298226794976730432253630746156531478601881669749814150039346090015399471881969588865594341075692034537593141791562656564686447850886684149773741708929397125511203250594375065723196609170382559714412969731294363273693620842145998093305476619973279273895893829039783502444008070762213433510407422199118466772565447784304630811034349728627421134523642721966822990263464396698942991322443726430409825696963077452715329425688281457787403218023868917442515581596819547985567442585428273537308481797781941696905067098570436805669063385603605838534339296033333840040543634721838111541716644859532579392251209897591440099893657842770313730243409636266134119984853304047137894981952553574141808367901636785608566198516921261059337397470522939951132465228643463503103816554611102549338479779888038926724905621318733851891739603221005001506128673666201739193790866886079621006135357640449270836629386609485333981048720844842623647486711267405078900766556699523260766418567861547476285023890992075403249351296724283752317645177714296048522686993351232197342431771785109241053117764294701095071006606894652409285997129002697516468922971824692006744639267006499766091593245696690042320662609139551531059531174243331366491688842050147402066370735887508498509108042041481013832894041220364613995978706711858256072248765440865957027921119869615325830459008348310499871142478878105987263495286525247784653755424657805402479041449806051555984012245803416242651860654798584538942853331327598379349001911193032958603620869001011649220339501202335018570209067138054756708234096973055700108232701672632013058883640508924367645022024358582324565125941892423282254070856881043858794363589881210024085644430037368947601880336804753374340099200168636434364651504097810083765177043775770063809029069637356340963929926862798602468138943526847449867889816139270774136798342560697586541275335478610892651073416997703433183666840410868930536753996284565227784001538196048216137668084100922223215789481988107934179200083360125395892676068982931051827367350853154527724916140915816302034749407865204894193892795952174706462672707915565661212425505001044392003561848909342281244677943012221539878749230193140615095413176394961718068427798834115040258267459856486604141971729700763537095283154546673422615052459547070309208223963504586348217643122833887749557603922755300201671700810197382694076923508733838532581385192243778420228218155888414519126702547081184673895923782132091269122205747601720913596340720426531434158899932667613223471869586164621769734001515757130985881253721603619230231280816151913169938983628297335532251914700291176862315841532498444960238291915491386193871958742200579701726471857040901657350758811088756401353743705791534741611602699923026583548634513829740387937571383495074646136217132523890514953876649498042925095577637223650687221361405361885163112827815946235292797864182977059890200854494884534597300352817701633764915878743669962163127700333653791857986765971664435448306096131508082930192024608762348129117409352597894353567824690205138958204396287088092392316128749192944408685051868351551113493907225638169931518473624399918588278145223453853911965805275554193028362533732822366732886117636107766416130427872782897200854536774885276524801647816295838183964936536287612477600797849899836524548743935792376371331459877812078942530267402113840085609108119434958349656137837590880899555045354379929519208900796818899599046102780860023583721245966762197283769282794501689269320651126520675910720857219395991396239674083457523502141122776232622754781054066023254950602487438561172528246083529825537142057730098110535038319510837442422688533482349905366909110975884609307698116271489731712295971985473192041230458711651791469221837443210355209179037315602862646059523804890288835976206035754488246278949767776001627838764960706160653292643535970297948779804635171908276814393940841190820084085979756536701364380781581680626369511200511807971665488045030973232664982073897011383550045101131438323213106485555640732569325385419072672596253427721005564170996810238537904668892740021052207154595364914705542731419427159579274521175520463907939176379093370845421901894031130647054419278114434183623337158288852129230322015381705905478528263704552145332532495167421661123623015962882573362020685786537266967571147075735363160262709169627002345462378659753585857688459515864531684558210767424618727276918306333157950527095786790360368578996489796545359703993640169386953062176076040709695811938125366594408761363062046568422832879832568693423218235648078895936123803887528303661278976663614526779500157646887990335562718221185383471039175748397049586625749729205720903356231145125268889172344122236185933429959953282818117184855822330873945918901510057612112458777688985326948209757749104554295737325756302596807702712485295160223638083679879973519656634458013336572423240211787643195817611814265864460813039009258347195578798109218046100088961787952093601294591317543248411531815236219537181049494413379109431235341719633683874477505994691332340341466993608178182938063101649725890898585587055882333938997932553687679512578477234255575466644297907942974073110995055171444803475109239506271170881588835379450709093924886385308988064139293757438626619946495472577517102985822775308500750743820238145406390280185524801690487891037881732442792705964894731530035588710854862175384691623119836498616682032443501364186247949588579400100313142785456127712589876280648811140438572382344722496502444099843067322660389866441454997028946277503207679822734128478879532906914764609403502051297723435848300222364888277211768380052497897621674203532294858462351224230971501845665712406890681891652317405597888943986650824549411866580094980221343793359917676773171017999693878391042224915937773026331276080045982409274746092356863363520732051754409998331722650032274261533871412899869765896228344992969176517493513756173700460300953828648515625363176090765924684072339776649068139438201405313540857383717153337747850971603291468390354672621669953883967722604819859863426954463850663994247398842542731577414282831444633087410135338041517091881536324748174788057772173634947145458070390984844247406661397983571250518818533862742003174959790824378283988268804414483901706417958837041770992829658316676001808497945486991923303047358161917248900084184652920864330521694736927434200130891502549617666892695122308689714869096611068394356314243653794756644793096102520351359553367053698343390258730344961878428773591157706717608762188769563621014070132007257196210362176363666013663428372147468230127688203476282414515194041238164864941342149870218673116440722967733774815754995546207218357862898306078971572826181262660177610958165030906418555086466549329211525999491939721039869456864232111272402082680576730640474297625677764101727112723192458586337957735874366588497312668413615153570414997883475505410687737863475283777943986037764636221939745742981174850739553793330737008527204604388875700178084434625458682024186905884668049782230654835820688748403657140570385213355299501373726297038600273687210457207398928970773871312757755373594279660588498143376708365002516863490350748462479012255828892612278983557515241230662602062104190881844004359545278113740193473753217290711281904640549103188904631795735671732952465232540006055033118170748460183743486788301946726528782211459013773240737313371736509101022057934838301592420304532363850955295216666855907653259659297046841202697486928484218625426960172060027300303333025106319494270270370512781885609250968505914947474214255850468042841351893594325430725559786178825046637856363746671313754968437558749483442615960921369361437456999214458769972209192208309551239420179758206481887792875113245329971006565959125995173116413555395265953591424449639720137362821687192936384534198458912095110304638886866063786199258439642267774760520759737608731315346868424926588147261772271363935068583378312780042829424301010667346420265143253724252260279795177855655741110256423045930406704721492300378898147127924596197523985635684089608460710961629709900533790701679483802732773262503657228141264562404567350083169847207778482742758014854147792234661659936604864139300423102151849017614937739672519825782276435638302417531745126137237965223785413725903586648695359037893758196075059358119139840517182380840347823722100163983046907858979489021243686993776501343087784594317441126707114644732032162070632237766003547142745323136391767831768990412252194351332908332041055898321704459772585770551803315852422747199409190892466072648654015281309928991559070218384015187317588327703525281643111038903835357019224825644819272817606705151403735693274310401670947494881760414504738703240228760968794860476578682419329864675804496140488457162605119394566502885634581203447104603065412163537194260468915687694793925969957518754772632697553218538484285907684362528216780512419527260561629553625300965714061786240456025128704403337031866363988545602171110625977437949245458247573255202297064506516617209281590318954918715347995759024053827837868105516584799315371063316310292645559933109735747497647177332058227917116533926200940511509764672535418164453291452619396106612261248157089263848904563758474377753393283314265588749549863241708106398751397702156449209593946873513031908272390852891209343171629532360786961051568918645408805563509257028469325508938988904900469633035354730911146987465036240366886522404248048947590512279710079453956618766967144943717629062566376405159673455683048761488780057097955768342243212938495581117431368811523041033707601557372812692751800961504544715398339375520354483430524997841134392945951660524416119845816649060492683849747929666356958648429303925600775567314257188753125446668734748330349862063975860858261040383605114836685168530039432142086297014591374707735728655279768804752405933156049973606929576178678454035515828362691895844874325003858466123101311514787411279573207335091854258888067281862861912699454133148020782565873109899159619442460484170670911596765829991587436498529922504427341402245740270674820619394175595521592602757843960581562843218172383142804716217059172633954185723613245436306218407202064983299947455261741291389408630743879872406162643713827311224837359150229452567068883995726641197661489837768835815549393474280060210480178439915251774695965359950420829023962384219423473670896782204703394449243210766498252975724769133795314590897807363060077628522550948998958360537131075036149878401173781017194595718144704670029572775572133209400818052268698598155336996742184234303561582017677338467009683801371806080194500215711674221762896692858190060882382622207189528358294175916372208819502095293314132737544822892959024567525533278214284579063152840988714040433451815203057521207920381683009966273332179272453133500835117851517612187793270088461574809487891989180983101510352806333571820328025109092261912320642098569186221289262242724733314122399122075489188066001319901809421446658716977065217081660578686757956752356957878418483619982373906030616301748356478406924082528570250027421407240676256441499841275077538947406411076072098797122858115429504306130813131509712989902078349111069084641880088303998483017993700025843661702632236439083997471495084339647768577844250333660978352010182558833512457678583048836660890309329818006270379280644591672626728795792502454037945786479193017939922876707260212526630039562242399444088104207185284451638021170495135861302111955510997765394930722009424026570935788491228351130502302933462781920992387085583492808048558554606186096529340843931792027273500202105110389589365622255456757935595861764079438323876684322052742586937259876346118085005647862162943932507011819118847942138193013174126563387462889960369363010956113617217722067761912170220336122024291935379278093318019511938990652553796009698112185379344006068341777159593731375791437594406008688835898955839598367908522790680992287846146785138736694414091142849556698375988594451112919698313278290709627492773676408865526413444143031723345287144159374500215754740947121390592914044060388289299254624496112451191792713137378380702195903882450184674330249921165280810241114853280631195276345467767342119730388501065980331963952117290269139123543513779306958445869967212497373229198946323985566270691268904376363666986727905344113168284230587482092469087224704315149672635259629920404220319625156125024401591568976039690186527195212230960056733006215006845635599048973869672343685698290042204435961772524604997093859671858346966660865493839559887184337856790533112758065164859915153719149322395142957523911252272651737065637610461682936610758741544437286789579712645344691187737059763421080318997606798749426984987083277833659820122191114873982762522791023504351449874920176235887951818551254952247837616611930760076913963563240301203217663272930156451955015481881993180055444002727345362383469392542842799497940500777029245704861866278622470526849524090708037061905282475897362827465217279317124101057895448173410894510762040518758589790762851443413299056323836381689993184663635546372576869367304149367601455277836060667560628943555517884902036954502842087942123349129844965733155636082747305609431767881083899799978951979398050488721357296214834524887594909086390865251954822599427533166968754030830904380608108586263190055282115720914413201430332558730414428301494910141556913337377181506081258200571240517853468250737035675559715725787708526178237129494855231920134110192329806301349905689123316848461664581933447965207103080363028844470571674590575867178381431467109834100285747537983385830790605408944468023098020292413105748375337920800037171921629836076680771762870909516067020618500926198158728284414453318671230741340259154385962414502883268065437047408306157347906322950023002677873489238870821537108100991256865455126227087631325837475138550942229976801179055659858149360916852216548858137657495178752425602201183018809343156119236520179676947322116151025795652096438512092596242482417189514317224471375449225613854615384841089720763553754368161325837355751439466773068206792909050592727337657607478689802249531971199845886686609408082284072699703396907381550763723318471775277725266373338537489088168724323632032875807209294667499435749003352579261003388535912631713263895585802048092403077082018711995552298715909858550930208416611699540323338959660611088118874843744044938294366129648877080061099854823958092999641740351604501884019078958281089152262461269121015617494657746621738709216001425370902859270633429830364403767947773984366273155929006720134826286692661032191196961709522413241368156220591402447927422962466562972656922695022262371417450165261543910028013240881935032522297810767965363553406858035541575527584940153553282122146223709889936235632328004263805118898474728244570129265216040917901583666902769901814036295391495471656614524867712004425120320585870939900779365009542009624831312726788336763435774844079818413024513695847981784776058022165472635466974820051573584544612203181623007824878097835280514758779678630697617534918898291495323232839166374477676591142764886083773512846858638785792884501552106226221085963786407437489522773295501026932513271338206302467031508024736646819954286648911070211631108483070966768622233859979873483240715840438626623818604646923556551887293006714361222224532625024322214332576441975338694587112898857180157902433609900412363202084737091334394679900870252440120159415346278048359524552714764548894463078409403294100070711400398640789414530969573850855114678785140427095116390726216370645331271334507619330701717731960019387390879162736996453833861463111273201476051084694672534424764371552301561436343942775955319670164103192381610025319156017562225121166039215935175250569610796969459018481595828579780263947595083720512289387043525433235379597923394210114352795084998233626984067761224291707615715009470956087135102183897444828692232094096344881966326502467556492781660530306462610592450488214691797484395269647305287220408909380903088545637540353747831092946830253398742071285930367893978228634953805616854293388498643677885224489852265864756316106352132528922731922796555889116038205160700867492738277042654824509030828572675865709962565104005853396457222100196685224000312204085933752457220733428609230319602699736540689751427772359403281201711420958958097689055133805906062735784670288906559786633428980797651349508472725706062572023553081729329347070665758744792418177711696197388934637033373185950452178298241862840278620203291287394456921036635659271847589039727433723494340938879938699481407145206470900873983416066924427199179151208657447926956747693535742611956697464892230503181525264116156843167886144089723406668975115596160300254686301306854962982117921215083849461753736441864848041668614427956754748908352605918376893026521753758009469426624998051446249464639236956360782559521622616819666648505958206333077050428920219168137005116062318772622699579628535341093743741737792216061515538397307198976559014732139095792661717699722610863231302131864087183444675739597944749184500548547517408565005433662047102385754156648690002649186144641492510412782472482403106167068158329662155421582256631042576301683593188772598646555709515687588671139477047511724104229917255930782370512344472066715180933717261214015785201988872972038872542209801174467434704423917582633042532711637579083212310552070180855807684966090507035178383983685332199785989596436517585051243507131274288042745796297157364046855637085272458074927556539588661598872193474322971982983189533700511923671028068283472885127983923260305236483052051903951002777448515102716473260316013003011080452203995511839918177069773585589441305091415663997533985118028607150715650822600622498457811870064450250377109796477245545971418760566324083586914163287126561091456071281229531688856442988977943598061579043542813494061441046218583006566829212848779282851147530498963171995615183642778965031407942490159887971359627602461404873205152686326859091788522417684450158014312812689286495910375780665599047343932977531216304916622973145480595574290958382635060753802290951635000706641837284138849016373585323879574192581667928340762751446968060846837121941322958057757811503673079583429916005948364989797124189959864749972165782665676061965953565197762645674836861775591307182471456288140372825763381354680177370727901754657880282641726772959991730434190078331468783936835570625425748390415762687060164820566120538623597459132806644706630846876466113095305981341496922174560243476746723490581571040664307733804829003944481144901513067530701473419723673138194982291788440247629214357319366674902395282637310350150443297362301303789468033471778631601474788643135386135327648355396120310016412953157341825057817373296488116925266004177723640876181183329693034747704448542608011184752201460871387420312684304084665432293495044667059119517917447136596725731136633493527514218010372826132924593583873462917353026399425582860358537292144579684211745682235599805705564121203017900922842581438312740111118120459794778437619221364813422541611633209797506095381699903268524269442122763405056147384835620266073296478035450059319949294509683160992359301188258761473905316966804723533907625915109821470792594595685546725612338675415890847237666656869211346600301547713123263420401733525327896812374481281715719054243318625195025849695519685072895443848538255941973744644873730216754032344428579600625579242402218401150442710584685284221929615303609134906477921709565808548888747032942545220406226858950516515941605029113163163867968678482353580095636995195170473752795445966848463746353761826844155248968056436458916865817134487615585488948221702727352092287896944104438037923762856189483008892726855351576110501626579498567345654573590631636014007780507738744336446944687585923722964748957536431304408899470593798647995037434740293222954136692632756701466663551567051696528183278719399317771481055284158266349908599231550584599994833390124679820572520873078776921123831369132637008853164920437602605639039736916884500211825048175690819161119148287134417731607057414285458404114763910008417465470623105900832669685268196840794539713899460019241719245254487747606617886072943121769333904156285648622984127260067970639967725376744301504595507164086539195870506070209918203101641679020317315544687074411112417939658305645450460106456586603776083977801639619091469611079494700476107327121214660739674865198676129259886978168836067963053062911555192762929750139581848302052702490732653249858945817955611743074699349521626856831538607423735657957572181457462152592520798169739187062151263415099978900322508655935915023129611881895931450229993251171006884995981624439400207301761522231812008385985132954883742879855687309870200592824166958153187860419621288070463994852775637330586522206850912024581252449663986077315772131808831835607918806141663847625391796107132952420782131381533763238804521177462232061662435537125682822759561772139383130270800837021123105044951599709681610644266002520063089620067064053003742906755941090764971455202729801548178072727604699118928071711876176308463003433758209346344471450512738626139311546606823161916176008348171772194583457720431044036512856370565146745844398298638050754501959829358294155680621016923854155613553781946960978535097846151442674428773605128738270651139754277070470239177054470258206633915097403843371465562366839067162758362633500764789804222880053455526093332386356541637646108830542440004485164087303532996986611563457188490888136744907047389698919384787988459759835612550903320882641395144343802967322816942724956611132715960931908452628645467281570611791131154605771525668080669620841225641156796572420141493600938072462789948889331433860379479886011365352170758689695284377092362777636926676868585171257098345456966889434365859203380399046635493174598380421171185577755749923718486016194570206095229444207341527479490125305962794340421596377049166824329253806599412299400625333593878385032932925598065456106257406375489947544699127228300229165204683868022128619649707896814869263309967351229549797464845972833490320972791556411071478732468465425396177150161905516938996005045653907924874091205696237795470549158404067146276360997190236988336570332126562911674548859993802464380126607858575449987201750275687171182470144319941573443140836811180399793791988867999904182226518955420505905581311009840750545076362181926201712353865695047821974684493068412859992734478700921806186683992529581424040970795759819296452698529479935717972080679410311762360588438461181735722177829690441851186597237643338238516215590519976844007398221779381390449543844275417428016947836343256095447075276530229791632045537135145172421720867450667143324985516790270273928545410350482815860380844092590018172422761753228768389846703953044190432430104723448306350517666065352666831674577236858513687538708630119834544220034904222740617992682251134742288145592980613960669101125052799768021452366111703126039805068146500921985447240993346626009946526871655388559016118680413676253087552514842672732341525716108967771261013864698252640909657700768604317624013576412283928834172216749263467371378307440181907239675478743847342205557393812774382494242953062931463090944994742837161255773596145507897696277717726370739395243466426896694724305969873211456914807842443103994112920397597182739578580501617244031484876207759609243876242328253955767867947306814934168609459681718884107872260727173856175050719955998500111005129057770083084823476129358281056270625401673607484582856223015430877413597173715015773965580048333785169155010338928119244271577370497596081904232655365245870654200650317753404939542424296248265143523021643361762493646619310426778817820244377110688992176847087599223474766182459134172782638584774180493397814409344396652314381273902366525165664960479206434333123414840052992409195548565542824342747921174247043584411147851040426231183307619278213411618930359343573304022080429110195011239921537945849308377506370514656076453352643902647544063776851626483212931700970298761404164599640355465560453582814136893474277079221507252218335129886365352482520753451217229003376385566402251460384023272367970837318146174147045526289063758559300950699724513182301229045755203663171967787420148136486171123288190688744893115208196157545053170600638133338624415833354320521553753731067950297447135005635721823529958026779253222694950151257336808419234598593040635382726697681795971459925118837860644637796799520168158747121404165804268819551868053269425807208669325738589235194238983514579496637214919284666917509375426092367606301469909298379647211357003892746066901109427455857078132397915400820439474504242509879057028405915963010660031080195156607428154381084496919976343563298226335666761940568867270286754176204988324752914315820789028315654249742587968606349779860399174507579182621429610090555236436252365432354485905398665476318186098320618335952976443077658762601550852005750480774415052560270569288597425701639246929867320622031946018265821417674174693993874688892779722440011845536788160916217732123993781996813862164798760710032250410380152963827438989032750196378064376424127592147161856467982323143822818940588994431858726525482542163611401680917995397965850747916927189064319904039741088416071602333638672761078830032257699915766375597882975457941404652837434549715688867441808504621086828957521444015507751128318886549686328559907588028868334417396913970590798518497091972909367544152721242677605686666143045907363763854822456044231591090046185737932180782832085756080332446464948088053488976605332792751058739245922298271097230001704323324011905444954740697196137618632490321742734084746549441033368851345574467633012217115106535948580844521852480231580263643392057531421242951526791083851356910887108415396504099935774237723727098368125005737915620576460930613527705290506665289819239645490660359792670585953413379302943001715502177168389575645962776894684828751537963511270861728020191236158995528980654479773379983145757891125536337291356450453272560428509755391877036163228173914448672780477399737779529898122864422984361276768046925324123489063711929998881954640921490927198590836339786678898307316168418988736957755717710118621297583158530672030272657064358161502848733378040732755719960206151360001869029710865877843938416003306240629672683293631075478297260717818826744824043726139576643490174009875637848708390114055484919693162915100913614385495847350688384972028103804293059216587071169099256842078989751716867832185159306569598031189527142184313498439023894180202508332806429941757570845014659617410194444401734853125889034816028796564792795479617363945422377822735734037837826554998369462465325611374785625613447648768165810259310988627609737873218868657806182901050094610015884828518210584505350815110535168685836570594280260469872524012496049685110672030968625205622565112903182796169769236336333305536896668575793787977688650407686729822610124981387950944605402920350796920344566742741404066949716984178851158940089661702373558204887605195379692186355952703192506430608756888382385742276194955579673940107688571921819923700218690362439750184203102980747112822243594254985379616927366203269176890873682996416631612959425031096862176583567790608044428347922932525041715410036323367777341626827644041558068931390344287211024321341245493405169039616588408783610025433223842841518755061601074456603919801399234983577005190964357289820966843612736037084264674127788254800598643175863469632845867608570516234656611700490846943859942179326542256243022933826425993476177000503355763856561830646972874787271720431199890191579788147979207893989219856837988599024747740727784320870939309869283012742935636807088732452670035415255230768207350848066422825034587223790482952859327904765212182935976393976227967535542037432265987306181537132891093821672461649920387274147070752522199609924559867393681436906450244867792685968103673233497494851958003949561423989281390548309126001380663356117556702151816656370239737090532153602547563785726434990581491999580643873502469745720036710981682328642412826378801282550417462563956164278578376661874918917497024653522278448756775952691025618439016763586381071203405305716204099971637379211649592456165665960655931781462486289381813815687211700869237564104031049215707565774073272684834271939549986402938242268333696757980186084360272126624577393096800417620666278417430788994671833862433424473296373203342164199264262395098026775736742680063639113890520972356033524365364090234265394023567471161609896354629446450899611055186557551236093094362820392198283237525339920335722895743910950482326085253053473338491909786793162289804961614749135229554146838065380741150172352607238590984968212086738848180400646191245597991297803812804708501499676210797934912499829864548197727893311450413063106306274464578841345755361458031513211285870154428531084799059585860896822807170238692086329402117462695956918932884150229867376594270595346167084237414670691336470201323299675259376303552898402144918502697129831575889268986682506880539680707425074093119296067870334318397697862213995258798986477333049064930715716364078035892204499409287208376160685757701262808818756433863637137381747493272468334169379694524655311209492097079120470531351782487707371052409941528852293169090526773574735084024574582853728215367465028339904607866821458572407795620779207792477824151595798168853412189897964688046245330956484565801604036256805899035267051955056422943160531246204785289317341337553816147026305434399053534567170828094483729015844914223647364863461521885815581488975441630276145810656704822772081241542509051797218902730136162792274696662494804196515652459712603281259012422006712423365686736376473739589375405866149121288499780028579042273031977718604021654754382945022765748549387817678915135885918366521864201874977621723567715642879281363309513186138866395971576792417542665345074369516765851423567101972587059434998233882730808173702985623963437074416917231312957600590090218776951479789891823802565868501477457306398220309549454727994593084042391520721223409084159058398178825412871903891074725836628903914128753019087794545398513796859945891693145783792991192033826993427391174881410772783348966875389859442369289812160671850111604177446515276968291790324620982086942150228689025943926500722611742590605859709980784357765500692661022611775127518095957704592364145761147125905227458744742163607267499735187107313989840891992764799314172190110826912477769831986011546874248989721533132078472329103552843180959073678458106684287380509445578236616204299763567738867537407322213970289656019650937074640984050126175444823818997619432561463782134052998844475850571075772686848399247722536946764999105500602241489601232007748441078787981567007874032100667737742423055987255387982857642822293848833032911991033832108038372268841498207855446626510751448601770576103558652612487558036888705024765687496209877953092121059025241790122352193384603244506169756698194605073713746288705244137476406575807515781587345317462320323050640299792617108364512527569171837578640718986536470952804332797772353412949771103823035474430077545881848338016773037860900807999686270857093772149483093352888685581965764197139996188740930831319843835376159847275490425241412623104166566682628639673463106211042583793287511900722436041734344388491469210612001071785246750983759281588361984422663729697441049198277141575156584672963908705420516724996851751349938348706625720106818602224879565462478462621961479188221117485952238763136383229615746377120903974580875444828927828476016713451740078123951550133159164747142055143803836802708448257450381558070372607209518528860617162813618969703323671711539545532938311348920703460639721982097397817218180801148852951917417774353357405518902288010613057224122096803861446779964591494940275145278384600811332298280203751628673024410705479637170890034112886990749280348170384599886803795053938036244590706644306703948191788932898765726077733261908738230719181265375313388949088429229483294709309400302207948695285029533487308441416376673274852653353941501278788296535215070788948320347080678745259277974366818206804353178217131306630790153612205562125420480006203519257723138422014746344834903673141737962161359852002626642700429168063936814330529767768896919696122160827860151668422135703666834680281901670989842901017829697889289637581801217105108458063307788679928731806452526194280364773674730886160344915192590564026144727470026839782207095533769761117543673365089347343918196600758877771243343725476277987003441422678159374651669403602636112067217718539376633521581139395883544622303664071236220728191505217562559361484272462555405697646186424302319329419294428394394528102074193059522842771229974366614357076331450006624060390674962126112673423453672538519569182989767876239623163862406475664178793226952662787810024690016586437865181859400434090233238920192536603494471826340896365604145787809187518774554099044651780325714092254786724461092246885767007990833699818350699621063940341167933934747735624912163931585574856960519555691992446984719502542272522226536530191939857582881653345622501533180940002901251192940297518623954151802975995075013443043944742413334528039009104040575631762430497461207057741397612563905262110486351899803825221119462543056870392950595906676271618947603008627413826498972031989594068320277769440380725424890408262976907817265937343733733569111272851247201774430824524823830534754629289416389120472473732695845037145820037533259470127901743333034610799149976702249129123253350796000948399485939983513341781194471972203823660454961206678415867274743989840824658980643057785330079450384586502804533622417754152787501016252823306350204019652095332806197918933809265315731138558355380465466426997210869354126141472300396825986658800150031703966260303365567449132253114147099139328156381979764177759332598933532853665195354311322303905462901106609788386615121475511366384241672945239586298937476330056964359894211806678156196294087467256992826588467930906688623426086339915172850577204970966734585751780003118421833687473650943978533331420419988605528829947411515439464414109290881905793789719147835810644649622788594494613504902658152180572185872233339674794508548840645888838441700047667230893287473269661474886299531232179941092942548649325186283273776837172611225224671244811763964310290838572338873258958983343730676501937654080242884347635792886694209106586740352989626902780314311775024954122262110018544669499898455664425304011751508229162332689660729093032672264152854021959815657136924856872184630910354730881724529036582071462009526483333581797733328768548427404044620521199930822085994021902949962775345955327239436307743587605575692814469373133362090553718932967186249783694352348758319267117904410461096758015289622519199909921877035006903409455698266659876098604510483827604449944166016811729213343423918591849304882570970175552657925407576917283860425684037253307181345034043362618306127656957146408223118338446610244943946088952439512029399565951192373386262380422826594568629008760035945988963266349111978198580611778139453514049385154821314410074468251065251389672431822892995688190739412318667918126549029627438334636609705509977261305844330154395288127755855576188199643306191146584984297473511653492316933894892038210590630524630690486827865217681165743972527516505482349988672551193173304628954238644991852851980478620664221800282603036226856812345917747211220526049037820641160516608780458963890489418114899928377754767951120865047751180370402459296389385964775861986352557029639876540654616801868345668010190370675947481614711489817048092707780100683688093706456580705622956254166739625752526908947221608503931106291155141253484234184882469680704318339961242158574505126528907885417996205153673463144092209403372774995257661213374249263733711571003414609632164022144929945141227389483529214785374933174077412944447114146585526547351526179601193093770571603773529288936050482189735580791683829443949013698688926100402978157279549482628229633526394374614661741387717224264833128638822766808698919478082803210668809594345241390041397708487358146157931135192405064395851844097182422045075899052027317110014803184608587186383720657826474053921759349856380527227143620203507861029087310045592509704207354765836193187923047478554957243469588868950223572156511725256518637785174210506960363535312144739599488988739108928889331445165511559666738296837717548419056682982891639482555615459915111072286918281225197772399974413514953533387975451091744693129133628813054831571758277452701311670637669758519823507741756831337877828046801060521869022628641019386101227708436323741666768017497634195036406100642418984365757506544002116673779464116974386882869373294686804306910763639703979946329651937187293400351862322061169049233624873948109728394809244608534298236354016691224216330184832997805126894212969787390563040773493507256070770912154214507564433602417597917796442569150766314431162622228248653901119114648777986388917692773132865219355297767776653384620069607678246242323453427644960954623353422311878533574211912305627155172419209378437718856907396098888608564673405506938527537065595256084313760266054557402188537430802907302434652100481762167842812678096289260073392637598603045198990870012266315264745534492169456152432644084214959113747562655109457067813053115622997394733439478432709975101491699919382621947735987095287779525571151747786399252532940875718126512524069744709662940128930634920865099507702090111913993439856645941298430496719361374210771671425838616647501427326578830930395448080875997705373373716616413457080287759751144895760479738771350259923953924811440609355161903817940717641645160586402083529387990869036620232816762529783322120039379437859229695998686517070397423191610746544532129251574775808975523682671247104855736657337142510349156708893946672988222800028660414378004030787234766324799422449306301050404589828938928755641876605429130117577636566276375904939305084353290596574758714739684184878984634979836990227332003905258768614572791467534812211409526239089784328610483451676289510065739184102663185502852125398033889967641719390196018420975905447966468073401153417773099554694492374355079906764162822811100532770436551371200894048163073558584617711300215206882076125436030495806902478583754258756341750158882299656086511124461220480115225001723518010523912701317391346666754556022718276101263442856374489985160828704312154048075489465680964651701390053334316377995369888665837392456765818852547511100828349996101330352924573533099120397344840143314610922237048285587656055668102514459040642159106374857544493254916152356535857618847880168937562116765586008165672157653418225049302926471819498298882821282905689859043966548631593598076756191280334993697056586653013014232766945041312226078928429852434983355955647549985118439777102680220970102863051638577772513736387096987153727983987571605136938277311267528564018907288162504431546404445571769798976156362247336077193576983875831281844032164326804759582550902500370689585848398421450735608542384097752378986899077271712424313751630025776865026607053967617510705266003852601257403275167738571442730668398670351384840716740389674016634688012157500515092297929600065972223646698168970570755086919460687358178930118401597615369382132552734752593353278267398705978686628231952069638518501911100066415684116899674633765257906784897453401691644783776168969437417286854850121445417988578253497354140314168137163787644444366627282225883215064267303785040497530076904749803539019764935258034727489015558230646862583367870264059589453362144770141536755208852614424364549881732440707243334924824280278485281420446163622440686488140166105663774210785675790736277293715333857859809769384228850984112120056834779771851990399707078493922914160993860292357768037015444408484300704646031230562189380325682002379622995139958570749476105046592024995382891959959690932198010190955622429864331559723994728322237229814227938942515995962685436739922482355766564555148311165657882802732290904059355405635305810038939276755782001589953507977821372568203579537578096310377062108498926169576659407241720810263125042863525488648737871998754302196919229484506428827534553303945424628911619000476031417501853138734560291052249920988941247573190705660199543182765827455986218040954317149570452484571683419984682439797977306475978169194626091913324423822829588261106538616776225608728013625457863550505336760054758889361083570586348745737853680895137412861830025116159039819270624162582402939069968822257583074447676407587793616626535586469542520785899350474288935490852207378848498223250516763933501775618964679427283858209629334465775022137097103181636181390603629071799291708428750492342013270704660551426138067777103845983990782081514531201233251953935919799807432059237888206488210452821527704596941346248584285838543562381036238112520468511234565002780443780264526696034076646230589936475147095486886322105485099749151814460793289639237829723326819703113785480114882726187776046402619850329518885137777585062407557030346880083409330772755024055540735607150993612725211672890331736336985391549382924165721184903149128791225437455950618730438214902307934015503169458514533211733304917603289052211360074691512891107200507069635318872410385876399316384717331303935248734232471378477766665787345881001742514126593733736513188710842233816490003880212327093393616903562648995744662834772078991193576012429655450593288654180014836215966545318032891839077055628322003318498292049254220618483284448252168947180768267393613891374489745564002353224310831106524500641316698538973419954832842321994725533526851342842355790308583287799035337899588026688281194586521293559672978945424107626176268476214694703053509258238480557801804587622728227595561468857851987225979923466995266415635370012666755682453546684210488624964186779110219965191795129764970487801455211921057005705828988470769583582118575262081242022246093978931092218930611116825349296272192944965509075019307850837630180191548188662068943640139147158691147031828354103002121605311456937717284484318506818048052657119011628072442798988022316151294223863198216475976434817901266249525258704636126366847730435802171526559364125177483835085981462987155898743509272458457645719200627437374383485860001418714490301456173444990456142504341386611361665766523657121911954055050468808634476212663474885652663013083330876321120796502821501868080136308777739818010261671105462076342673217962885190657755102963886528347116838551090483000823685871504702363826736380543370641909670665033223953587273299812125133013330208119786524350848852847646568757956228541128142727677424823721784954641662467850697619181738428000313303844943721654688415688190183494093359684566748984835429006590688520144308997553103316133499511109794643917486102821491725925539279454825123699441658838146263615033580736885995039959186099293286014648472867352713067951188488140221163908705736050353837665717723298010633339849875060195493736346257324216797526649455670789755986970653605079175251409843077177167648334644782625503349642614007570662669428731133194806745262133891377216964506346937069754479011563240708842373734977365927030485474587109542449661612105809191809611176314620329437535773342785486182209858936541003365046840272814630708292488084759849453534048525250518057874539939254928225486694476808334638320842018116061323440691495131379641468490718975997744086199704203475931753427868584603838931247491561821168653441753085122732249019756261403089929335604331115911536366062166683628088593896936551895826102140596461924378005534019822548625071462871500945930993437788888952270430138033718523421522319963961448476106540381844474024326396106421169329206670052042996286797368145200942364563416232115514440968432243731620515122783192437787948509951417929808532599701274384090658991215756664889354034051964350762053229849524374430469568861736460349427491550523309914582064795183572716877474381894489187325636765391897004427835449948355045069624486088633718580781356489734267510133618670952647432469535052903701142877411672067686572314649945944124527448971908610739156228621957625656604100167383518650339886518850419762874166984075846910304046542786846973441417718387457223014410646402937584914697955270869338279292570224040980967078824409581449031401222965830850172932507038069142809980376439172275976314001071451584249110196501219895100072599777856143643832609204399897452842557152102820845685921909682082148606536671929490569407589894405733009226881967818665133031278332857837027365468000169527993877733131470882727191061676191495315896239460822910532282219106429719776314350032716669193444814945129253545030369314254248230307270354163123704219111355675517117829648913102584192236402759008231782073942950752336746250386664451119109487309807884173941668664489801560346226205780297238146760035575599943086482425991273136163991686933912303510077692542838274070613519926730908097974331026516340237758942660263390064521899189261554461615797388186245654724721408321627722073535816266862868931814642687142275734986842923289720251729541772793705983981126780471506769139746362237103141930666953712306996912213324806524834197336482634525371784349943815786077313323691088670831373508504350761502029890972945976312498623681261998757683811075071554626330120584429916899104147170495223916656316501703655414968383170467564204749667068961356485863381686323178594261883965098066436184977314639363484938437360444033585729245804952937992192135605370823352568887623601152530104087381340018849078838480216805178947707248136994433371324947539386349328110055055028878104157877935933808619817720269682261182585638494031764922008880839090415077408583364054940222892862594834138874123201045783599088764617170271390875249156465828112460984123631323009053389340172503624539954815186949559581790311506609294594632263030140688518964415115934336762734164183902432333660376033291535460656613105276103911388564008698379051921466269238481579548737787922211634933192555104004700772041222262253324034630586593649644828394732737758081779872861972575011332127568119540541403702193274839835722964395727682267995217415424528265606395690716205534717840178338806745808499592960079271728134356026879506629444801974466367902714492674855185556858224902816600193706990935038996124771705718726346019218174017038565939602392416732895819400740960926730736635843397941637058864185737086312174732750223655075128458918602301339879681101240900496975016636199064865440676938434235749736068369937925431256453597152688601021830995326758218981837421139597165269739524512994632235170762459980496257608788589506342843549440632738002356083192660019705988718813935406917763827329314010936556583665121651895377201912898749357580859339325202008790762738749460547468841840417083331698603182601255888541822261258426791332652882214968110497234772322175428666396821006005749846933525386349192186688477088765770944516967603286239953115815584609087707084780273025108352043051650181657698437612220530817688225521422400867457552877673230914786747997623708835264458524986019228700360505424699650874277205555803675928548841403712556671185513058402276657002116310221773936848029820039937798673781206768468409819103445547466160606035853677565477389745841061185691868655715218202748265759302997224330129865638394704700027859290383771220136219608573156654634806140698478336423261988929026110741973126815006378735106222719124699726288988729542614950272017401634169400073288966009077347216703898676214861314462088776831401092056186900023764949749858870704432171022230736749166951693106183019154995973393625941542391282051256199189015347563655786653477221388678606127188181901277879344445962865445890771444228323989131675082420195406037943835914461515362699936298823548234158939362275807207531341061061627292063051915297366773438178797825247536461918260189202047278079029695813705720100080143283485700404966744694511369450604481633348647716490855930487173350955020354142790811571245076030512150235253498641344662517687156682954428967164958000586954359109909153203431727878897297559859252281559939842623217623778632435570356042016776685329422869753663646478813687928642817585699322438705578400227623610725111374675621752992506107760532212029343413436522353179007323777232689653678735603134949984197582510807594264790705197013362102464457138166682884457934037864230435842292773847894478678150453769106661234873439360036439178180240277528977237853919220752462096006684986561575940953940501393541946722312842432215428392278520951822394309670999371871387144480900314653286516028141165511884120722763176662128656271442169331004161993684704640704907723151568525810789128824040559961105102925008138585350268544726716265194918449857892075661299245687476079376749754449608827034915723285785381599272523948517601025765595861427101893246553204215888251010371285035234364366461285759165094240212978097762704750927241887908757473932805027607821360076468836185915588864530064456515747552486815318878317617612326885919853349491256198058389878166655244152637994947624369168503539900320904182019599180631935433179832612395109034158461201314956549734291852161093358111916769108934627003636552003496808794123219791623990271981012397178437075033246018259295526921075263572347423504067698251297859984048733513755651812474964118278866986287565101329309940193879735136540563484744648259171913114739214968809754009858975651152792289519229650267955297860333936021417189868511535813047921109853624417447904847347045549069515158819314958418629548254867687823017792772001073565798760951812039186596046009617809535142715689737855003262061070746069785370924562621632141533187534738651604421018995587741193043377699381878895002297374530555065249757640598605924156776258690058145505816058407749285839701118745898883830769109547621945794036447052097872063719197337923844921288544728346467202778963892958432427523707880906640338261128107608464012674192126195229518446015660139063839099256351491517823274508973692306489943090874350957143381294870079763516337813816430242476727608940108116884573998133067098077213232686606443434636246006736440821194847745935829444120390681186997365477876730769390300608818440693058662689562797865942070406678221436234546118582532022347264412397790598728081691523531610444051248658733457351595489763574366315012331534232368495183261549518302986305853697362804275709974731168037367294730813151384607496003782396364549467796675417155256555409317277620209256117941051847103728801590830722057523016227348862605472651757825249552317087374072345134345980330836267285277601770441454161542217105264088067169634758306949894199207602756745270767695614694651977691227956926378968968032728824384652258384773484747460498462466501848026294153587412546870535662857003807375353637781338472181733574092460706193340324961498587038782527682870821050702764278208801218887244856013424448160903299279458300889426993262753431893345525432098879858220014792439611777796355926791879556025105260542968899240096076278127538677933546290937452503251810331704031802429801761792836718209379749909864129178614591114683058619740993129252472580439847541373829632431978137888665207096316414966507220067589039444833164068062431742176544903710495426901229794861982722051303269387187161361714704592919994795169690351287130992955912717903747791836700182493178872174200363100477426858242590051099284374271536344301552800984948047645312035692018085548297765001680655452618181873500081946091831334556634647568532472566792960100198591780977649215809690453630427946255392874376844938429660036664168156584369533463726753109149257545302613359505366180884629152495574625106263886332197570378321385702277369320012916941815240275439348130555457637937440229013099390769761363915815772676690892505008229302764071219879838334453500194477836977686569059646736819041589782971702206331800482235037944108338495242909996149313808119807750567740744120213955551513017941319520727556708466019788144300172934191924448029602883690861213094307942630015403354641292326110800085993334965560651192151895865155178075079884975347918045761120979746946743196986146628638733070737638954514980293238506235284557707411436086051762886176973736647055302682109681406008628674357082725393188033775244634995393204711774749617352931960907460173419069273366031047125636585581325076765428825224774724913870615666871434375031003277682544571276991925420507801096407120714012787543426766614608872855197188818837905215776590217909111269339265260460475152292139857024632027831793166815692069482303077711986642200681726321589395448536620603014694558806562804383300643552586825662996407042794105946467924334714155153295562307957778712852859899657587673857121702419195364339658002257931322334131557721706460022182548727785027962499175899105899555024154919619423884319675282326433790617493900981021996262803571897229240699534524803074366835311778913978518476169240652029046285813314027828500685310406130293375921736556005521159939036712740289352143646980448964773532439766631094807286391634954628123372824825422068293465833353370820734522825280924974764610279279262426584815458203071382677166530295822521564721323691045036029127365433639747875480011471606770994556315781467210431415981584767626696607035692473677415537134453472398702333369976071242785866608671500611640348290623312742366259621708201364360585710103620968923624742141564535866775519672093418678367752761975498519317475045931200435794123946004122525347934684340110385694374942711445203277681838517979682446682401484390345216409829496272185246961699964333968781341056565147851654290625574642610751576174867735537001604376021073898450981302353006098433851090310530976850179765114211884180690885650948473875795558290994280880677315063790045640269889983363109453115801534248158924608518384645506140873460011382920559683277276766900908771792324071819034579286559096998880346926720695668751373079895282763191339337754915685637020849020267434125718132797566571160568169849121288679838070898717655004735444970746082872196452947090324265116360899671347571866500028133444926499046662550191847315862482102944965147103934739973298792986000625446365639046838547664539174621314737718957218804303043385748578766212294945313862483961169164888324242291346665550657807435410745603044589262300305524291917853267113244242874615662012937101786903172421170909463496855688312270736916905498373008643216750293202736348882432127990513635785840403190669891694924936923918374082754337008498024806768356112813895911706207217370916028437591418999409909357526924493415109466201731723398424081961982183086814011293337383187788062008845499443934140266818529635900900161641835022246213899245694655237818201512127077160185307442948455249303672809314511019635669903064635201062968192171421573504397244420123889920073854850520258219024099355436000164840646522497949108298501656103300632311718172753143659202631213398084514316532842693403561809721839392021092046125765867628954356705357838055199889045379137975517201275087289321670130719032043198708337607910238374383259358021289373390827584928813762609346274264259304100560498496281676214379956694685046768093356150420010876078974673787747971355474945884212634356379675011319410733698148303961018275065859084729058467244457272863152946159207501517857295237284454813247371726333269425554632606729282628342351511992390309679923953815197981931054636569289075453964369839278864729763923184757709507046528424025405287703431988235120717077779774696228617093246230398218762016445649521275343503645334699052570578205172975275039583748555621323389796400205861445541478177795266814295768720429926292701893362296349617780981120462927446734694110965216209599902858579589759231300012728692119139390511236523551046946360577968078888273921728065009914744708701891810284298861566442709170989306153652539574997794635965390834421946014103298528954140656699745285531466353505130360060995715160872098284235780803948532383889317044526849379978375766218678440827843624684176741395792613818697720248699334465923400717429215273273665592186146114072686102408482298884813780534901437518573241827806576833358614865369234601788748380657066923759283890622309318660342073527092392296847872528947056199472372928535352026200958899419804822867232946532983567922318148565454008936907593422678230780501607671114282762138907087191525856823712506952625078849593593382243114718499616224332449865362408317497463322005275434233468184570144090431233475115615960911417443137731433428257579806765981435236484510272351544707774176392940753127979947231023105778093391595343279246695500595767351598478545159343535933137750618022016418901000826672803550947708411293864278793041604092072189845519828543819679329412399530558520119388178183807366594689301455375787432681850997757162004753217406418721259985328296188329128589255476891939240208586644272664431875663816195543821951115817550424840650117128206444842985059530623296071508851576086091697981701584428780132884481767003846190751684946925616733346171400651607769833000398759312491444982431580565763229130016018086340378778650595904494731572038946265892892609500939537539580674913398594809882868589124310833795844213148839817670142544157729900345362442758651599606550101255481234223396383770672796637549010864300862786692955376536864188856506978663911362459860855839774816131275998915159035463277678597902096931343290629510929041567894254402729408816928609159141621519528817742020438210343600326581658179247183097391635182452117526944133624204873751665936793544990834867608826977710135571878824456372653734277616624713098470639900093568203847760240367350341620409357775460005303556135117885585697448808219904955109616917279607965369386573832724860425859067159804347575891622127062363581091200126614241462417651750214449718803661318511614025087296420478018018973253944428290634754845702318942553365038077689686387182478615358685853917116790335522311169866863397759592871033520044606889631360369451019259760613884070820623160615070340376087354805193662930704097210689320858649468107196096027186918518153819855626330412923819393701418787391091033912733759477997235339987466824533248465638609518931462298062888106026467054192386527772799043435621116579159289814970202680876972565287635312319653495869255533235943932264625101761479022927459805224429442148950191559589026054851545411991376652344581478098253154213605987849640093457905391118098757757451721990777190323646237637812672618600811337568991327686943461423359168695398610472820027303828509389232565179192841888349549078171937197672787684463653779232131891529770522923944691356493769081485936280850302607612783015191621669543480985291328375757966687718112830875764997240479325996489698980922837160786529799312498876266706273999569449467388526114153597557113156278627142050615471810140867497368228091662425828305657021197783574796993419403881537746975319059860611341040210150067345149613891779990635174209165284169469358499441854113442570921954743352558941936701615482534858064543330400956173653413247387256816297260057513158590935342467522876849648922899704227982782391491664684583669593803057746487667810801095796058819240797628426787338234197445286180683321761891530770247806054583035095894921067005280148721497066811432968832375597959709828311999876972783422616354921647144096852715625871549842514147236074649383443625288247050700526439067072881235359918930150739512999154728216563502880912960317300052875967687031277987880442378273543166923407295316451447901605862410513634816584533228030280662188268078710581935899944521627749704054333171019295863381187203292682331456803703123498965775765231171205664358454139243699462236194680330093819473136982363520771475535074740067030528803067810971476743827465959913965430571636465186411862743738486258058049313205252934227614901822542970397314145574356315218001316513494482057897248441543791188868487466702760626472673166654535688743125119012644183321593495828246150671010580219429871236096113137154130546884596600723918324753764927616085534530956245306240845843132312879132370431948953111890489297887634191513877790272792561423769870214794949502772708173405703775219641917401022988802830745826863990480074760014937216577813130860153414203609135087451620980646607277350572190514083542572094682134889831584505379305869931542459351335806636977423305424846298865969729861444958003546787393072765032808721352252591263219852535296553995089487626896430167058277228294342899890012742384615161318278494323388347369963513483171056815342080268431864384245420483028246926920515628773493398487305529730136821323219516745590421696183996822349112163051517912754703664959587509537493484460102499882109879189154740280485325642847768394004365755389936813588377377414413964020371501722979033091712180880108919650627548300078403984528145140296984073007050043793324104711137335472307794911120098581540448534846797894140157395023409729710219851874006663498820100727264198733318577803771897391921664721679496141655111489234104798015887364149341515382100685458960044273185636274026783082858355903752489192822533819767218475006139531768332910391313597104550619805241063162007653903721793127709853921223516942471628622790477798624780629480595765809970998683793827175125171784097794462267954064632757052052200224693363787626547678195573675204118884708977896863903327078827364240827757843036285891037898844775239803988687109339155283372563746900616802110301136684403937781955720017914364237729579734243886701000991953244879982995052134149443389709397887388186081405700024277104281599620526379557441462320181754370158806250015462333837251739706531463671514655684903730693222668996086530649249222304205828517436161051094133219039086701721150929669022909735519505941399230826044827887615646978830952922387427899885320837067150646483751072808910851419696533669780873194829262323294036964546032768430845493396439243397746867542325584174537855180922084614592103026009342907753478876514647897124851220860431235238406067448139356572073763281751324892151861485443340065941574868582135697675156646063951150566345350566488332112248960394176970515535491713763520934878320513438078112935941876893236888141164985191447577827099136552981110516184834684648548100906189458453149714836047067608194609101286734530136125750872748891702353376020089210863091930495494001032639844729590068573220655017618887158809563635764041929154620142598421250716209000783792482787603305801054008013761594716793506848968974889752657162903331581994307546478568531859164572385753470595495205573514618953030942921281345285255006744600434038827142306507484430934200256037893078878631409093724515925757013591229198837400326301059828112009113985540196942515161760924959935429843177300793421464990463127564947384055311048351602804085726289738529348601569089954704362540367491029883142190158094060372259926256170279332966137275515903973740468108360130581628668540293603111060211142947695641860181675746178490659307472269544368399834707197966575949156334751377036621094666987595876849121864276374924845094217714271410217969501779759436400229925297175005559767237895019782473995596529220214843505303296539616673210364449955540836601341302448061008950764097371122120809924052308099117934107140026049851686537655395330502096948479422517732183160014098248277974630379390563390907165731777587499121649545722915912106747349770180346676841324976817816754341091294335052833467574939874183022787241404050209132441888848617193141478756866040907403662201645401733920023500963014968635589847724182870080011320536235841093381730118666104450414277926020073819809305525596303420470629916882103603085800378363956401459357636306447021157797845533017807367518388469342421266627783613534109388474487179366104590126336472356049452177628597145291532280176157066352756807905473330034746126171263188166923288295592953636268563359374521066805977720113010489416643288258828825655771082505578647541841238054343427016892766972312739496100909518885924505178173158741502401093671838535578992124307263932794925956862355424506559756110272634968443718972309850140949132504456013453627196397737968032983202637972195849082199954679241310606646101467829550435816974147255824199931680430461600331554892176776911850370911758788614924870922710012312695140987012166657804144775566366832332940592551672399230778502682454106567467104691957846791918047704270220439363028326013503608572797681106507097580677412427937991074731542786095588387284354866089224477210833146880309566880479080453816425022630545237724309313016654384964947554137153298401255942881861627129884554956463784223488531092400457815516703612769417350004066441460993827734472029910432036617828341775913805999040187497058841191314478075033961101613123111608488155109108171096023600311903445093015054904487622618148312788089506353324060493865037087674489769272925117892940100264348536173143972716871761516289261317818578679746339568752516468638294817776389095227197112459936587757172217319389188132166004187915597168219759883139497630081048460602623319573883087251665631702809903542598929817830419523911874319340114825225758557359381465423357090117899122920658028679244140462603144409042124751505823037619513397193170721894473216078381655319137701081172610412248723205742308797313107392338445500038096217693657318976186140540881185142802001323149413481131538191211440286352929554240900467914314211292009809421429116340285102038741019404289135598764538512475002535345458519684663038928821016442471380631622961573596089447010025458546972207449450954801418729614162879562807663070987018260906870545173062392008972673541246187878789665983788956361541952600447121369866728743045120180749340993375566847914575598008457367552219509292177744041819411945095417545675928095721225187297961610915559619772467344031541145621740057521434875338149211878962571535972305742929010879835349688063781208632778950759423439029061399338991750101102162337225980365819302557121756139452158701956614377972111989529015870945280629525550060204291141742460958621602529259067997363280623169549527731792177704422249772120371945700185164413473326688039196220464008386143476112315730862029309448283012117160097984345794965839803395633273009160554686854853144692408720317450124809596224881264070224948246219250075366112045612114242884621215661874747282202254470978618683808993144266306342845806851985829918964366884296990964415697109077668224739486002789195348517161270070417045721605386587937067099738764286847492479848916885887845907660223598845255759354180643339601200500988570067579307104559958256811306892685230188801635280296279755531259263901952381604887066414074189849409161713344202593587661779927650925682003788476100309758216609051704559383984810355924351453264634218600336862582032203439257955917096655161579398521250406538805300283393800700304436037395921984307900469274219104882524540487642260607230619604646172037510992911785312687150576226370495187196129522922126703982423819358854471680312255325258917811359538789121279783855580981554969931471553177529292980870992177377210015535019881899918692694669777793771448502023349726815973660042889998910391163750286274911342815096614520360035123360575641418994164423845981979958634456722806177349676941715182143006334361248509680896980689995177134270755719318083216119958547371206929507812024214420629707995429742844841091997499416608024108711733881493161103503905572575258448923177073761305537245113270553953192068360709177305414089238688582393248986662784799338906008280353440248652945231591911638531494637861411808051952492194437816512261542354564300784918843346337972755575168257850949626336624460709289919462745518015870450696909160340578901501031209913018455187546927344888238923237537155552056501401010818243180848980762773200315674211893994611957085045515567951572153820092900132977421074513522747907311114313243889043312747419993486384210089476193639214011806276573791327880424735385854061958400588497592635594764968228418145142449298564517022666375013772882863650310673314327304127694890027295176854367609998504395634178439067963190766782702220646090979667868380285542407763466518884896566294198048904177145487589737697911343594548125579383537078046293029387570775353182962607407479618774258256163322803283522023771903708270781859357037712385630630121800544143422105405221512056256235682684006327868716255374681964045509322623191751035103482302654816376620891087881410525462531735886139415791024403918278885536534245024638733590353163723477469687166278995632203265255722638213715930481464758610257322812730347320238640843754308027352019348255665970860103450312993514223529797267246945317037362149084598057131062061773615553855598065477960126849059730601222306250861772422942659916651123830849028379502017574399048562987393340857631328583047725195253335236159522993742315109239774766529675926922085774714946010458184894306971657076897480318635869032207878010781644396340235464138092361242360594098091209283014642700171335090690266801609100049969346940133169190861522049608743088347587245718719720062198672422850957608210600253649843211776467762293891695875308937612846846604602050534079803792154585452997253246730472162667046707009208322035668777774870226721790704173101644523623365238458556059060396904079422097754750267329542076686113934605087538845912063475221973432319413111359988522061284172868583881589378778176404510176568234064853803347796313742793557487124707001309943006224538044470130692184065453535843863825979019076104733239510471170011546172852802652554174923897010200474793143394351189531959073196959277736063697497330896327049447047637725643096173648551857452595448662602538426194974994680280277382448023722494156843357025018946369515753660376938282835321042125629685444177188994207034721956405050634062095202790735534519494196344785424129681457801578440199138216373524464915528051761165676197981301990122486906338948478465642279470396534060693191144940574275096527171646241916509010795756945151979994574166657609355542560683661719465686068329623239259663567860223173838519018103468658670703209597389806122594314278451754963415741656648109089142780261519375696399295830775057254733254851417199967942931857041636862237850932649214016411590844338190792832812797211319726638878136211192445072126783870777045898299034612243730939432319827869810815793915504378350633291214210157594704509177440461536719478033363490641781962174310609032951917733901783671799875503140421629495559794987483354684690628133848945000387177546956025895069979864968400119000060155436418496902561691857868681118717307201504357834363031351392188806488584464899843224512682004691996923979580559224009104926369937362623159746863783280241620824904384736991437075615129065501772660987613584035501558619462189419135414954900494344786523778716362810888420498880383952358967572728353054302934566920731853328393823879790018456608236635578757511463667779027289336799059584114848070656598842859994230385840985270114395343694768350162570185863610500746504968396405609107361877236378138389186692010208493458805870956581454090155760487906359985849065405431287755052665986550281403473224083582040718279777566022233505886117336169678796267582346161646613869477794923817614054711209770188669821679972959277466812928008810107414720387804758947411526245633840033831203669146791623473009201728864329102498741306334640534858902122532729565906078040820239544334535915430153532588412792559616325985796853657633599676495214430291458746671070522922077670230865699161002866692561176082032921145548791604889885851349168554303656430817694167268539628071989222100013385256052022695121457581853682743659359350982747480213585032598300785955257600307517066054043372079868872511948833558112525792431674284959788833352181687805371722464048438197927194672479427733560764615115210494983258215560361254164725179575012458751540815040387534846844834884089656779989179585847394201345277226304532065056129172486780492702548588007142412049082192070984728628055201915094554988735027790445675036887085262027156383629000610074416650345516019045917996514932809304930081858719389088935861817240513975013930044088284692489632031745102395249912049620247634291058428439738318146613004231017602807311105098405306647494666903389363012331659455196763987763368320188815994482849476771716653486472953959298929158197819688723238557563585252322559877666073775094279229283931386148456687012212831854929540878395915262649485448257787948879628113760018039092996884705608390192069073320425715936376119856552631885436521110897569065659006067069390667087903068133361606902833339637074818817994307502578829556929007945039513137770746303457944236658058486390819018866896688185623922258868708611129235068407425872888694088180154053024774366704505924772199241829558702414408313661321872938501643392015102651914804153608138662829708354417905300521822234071980489784078730083090914162634515633266474881563529592064090197623857466903783393929221502385452642541369970740651691704021750402249762729939714558086904859669676923740016277427620056666060678648213538034984503775474416214400951614920241268963724284100901743830420110966024539498189102055465071944925080444749342257411644389163677333496472460950619554900127276224398683374917188083005601696331455284713029655762582193139124694996481777481504602613912923175148305586879277885843559413109450825293512360510282435093096898189566864007148448473948688064708370613652340222430901620253762288179747766699044029541212344584818073168897172339315069188489767711364576235800588465420388054233313112133327780349234941438765527079559912870301392546519702990586082438164341811035702044415250171562422300922421380014440016406086709641074261702713787220841884005744070791169027465084630637322438369217145617982551080207304685649166419308799322075256137935406571676848387520798622138223955217602247410983649225353439796215242848228056472519253136502563356161414455318044758627634486113464299645828988265284988820819655350741907983564882895768354623097015863935903010068544887827289245669426655603978118843183499219762627921038949459467912324207249350612140860886422640220443525870317288464976354651047657822957565156466692499116036848304088097078124172607913838021777234577372205428785358712763376956665973675056190759196998965628795003507154050475567694234074233879947797191726210820245754186624886702489482050241912560760479554788848040103481701476895618040965837247889383370669851322842287368551390886491612276403208652897154506622727926492470814705563921990935007076065429904469971562664579424968475583327503429519510458485499253669117074545698670519135062849936701650450234678152827441251379210716985324523212598641227849158979333700289176561564323602431551785681214969609850754688043855394330694965994558413968521119861420775301340425715258802790428013590224898298738379441854835170140628195358839780221724460534289593769806650257788011809403960901699428144374019419373720978320989007784628368538368591104197101823066587669788320666606089629392058186919512711927988356647344495493387378571861948161946022351066848492098436224606187108388661412000408828349797731709863055214150659583816919391897283951280741870132079267118834493617421996060097354268130772459970970567926358179329793494843553782810540178142724606319887219232754195677819299792796284122728834850093742236193130257468039584504439904051799065480852004359627134505270517861670589808433893142861053105482762424701670167791211541300267757489129479973485891657212985865770226434483306841606694767745854409437319727793806277342675716638690412784971665587796718815810444733008052236949166736449404441979951762538033914571236494148704319363009952744228243960349859159860217075434381902327626068435895290057554570774074449911519582883181900665147374567873144270857035387704254951218043102326546461964200797418206518944847354334201894716998609829051031245833766877072524271247315793904060967350124435514162609962680988846698139949272029360088851899998805029575460604007057438237901151871962207063246524274870806469416106731945346536506841908715409596135877727242421264659829813714562844584150401006529585683680995344321632378096129411840784021424682813342036853386280289803039785463746534913269734872889042396882402851084654334005202081748861416383320606561847206187575591001957327990229995318722289772587981972492580797366679774416968611971317805935708635829932438190692649746888052571973087801231020891705826632029645709000704584815696090288531133447626826943771688714448945376250985803030068294312910754593664566875032832441740136047952160721584924802651329253215302859456691983594750219207141160107251093778218849260973750608831528743295271426844915962454607498765905473795417622169130443974256853041664710563708242697825124147424526789346287755883431396787827975400049396171456094895577417691467017536001656281672981418628089490457609681646482073406155717831585261453947229201212886152756862585473027174805273958534204867465748837591502510616590800072452758142056291140802450278506975800643207810594472216147510040883316174931253097948864407215267294342738910813733383717864984303960923507042820318633753842542041953977350924001777819931568071445807860453802270589599657086938011947531257825442684481562122726219636893121129140730027278968289194846799729013364222298421553418574842156044726345621147932286855879857146797372766802959836014906309248115409480986993482380058927434530522946445775161768743303572991641739617913963701176532897530170279577244393352224971911086113560265310615053043384043091590457310520639022634303972422434329769562162833569600508643432251435878836183122914848586209482539257133729540359935185112234226080231442857880350155388966045532733604844541290800496013929052216570451538446526262065722018972987781511848912570942150002712290095675330525863170204649527399695677182139873334445799532234927403919793032859366281023832954081660218453275306789349257956458923669747535194955534596734639778234510893687643548764197246762830829190445475747458439510890739748039709060442374320101860241965949028636853225743528217815681831358191069924628784555672469659314770214261638920779170272129029225142682387659070204494624654065931651329619105114083435123105131997336450911139260130441577198333686867046711122035746282190157229394097437763136226323757204373842573245349123843192769855718331463149741253541241949402474738798634545185525305956738152954777253744087997811369795669039398292096839660869920658980261101153543342648950214017660483287362203673674854194758313922424960802803205212667912011236683583436606878569612337359561014239468742478516529708969542772564735138669475347813945822163241017884675612228382154779354831859845498699769179651538148069109618904013715067568645200767137062561558007617813193408748253332524584593533766004507647311038308292412602983441862697608066607043726127558164978991094039716913103037395377598472593169855966623064700732233260753023371697776392794696138383686159763581263555645093712953887764162923684027779782087599999660314093641903636168288571800779036485933221386280794053667267838034566956528205628182400191165217395318385315853906314577859496151760460652535970442114258899710766148852407469885934453864629400338049612111106804332331952796486151445200781020392495748536388400729360683038967240774194974565385134251939443964775562171422122513985007943283369106654738188199362064083281061226922953447529309922482930124342806563824170267449960676049863158790229451221069840047788769714243610311291601294139618781338642658393154638425498249477579550793100758217220516035917049473985224333452729691686096539928054846510317852256477617140025186753394679501379957113557212379798647290241220085974911113596548919175974662593639908093157378623941794411097246532510823386031120843937736888053870430116484519195651509127006840640904462187409265474501911032703497301489537917284842601409904780829769380770115236482805329772542791066915287781412594893119947734080284984430608773774116177558743562405899055652436692699725495323965016376330431085576288475627664963253583094657939644183764277123528027809379771095263715397374703874613711904505505209131366174960985366960685005599861618058845860132371440277673777759634437943169376024830194242383309537027600763850713113414336588570511110581171515518299642206725468008249573077666391015087165392722085577325558424655915201484423676888822995262184439032756857940234655068201853266727056409799176430883571492807160876085099626472806552004557206457854516393870664162814596780602209999063614101955023858958885153493215876913717642615822023167764962869143667672057325699496287671248540056651515859020060238971356700860408217439009447229012148518258938730230782501875828289823312913111414851020419864195628409949868959806371008672015354527437188587415228855687308906644463827854658174897816015724815205654861490671119862113323050096462453234550022787742498570803582729061381032490249341735551091395802269220206707789087177470001976820257752018386582469205314739158752351616134060054399838741244779369546377486273105618360803539059652766925200660320355656602769470755322419582143940533060283179783220262540064032390566391226781818558900513650979034832762628509467924101099722277765044618768140811332933920707506641385024630432134340905015344741539850706592065441605842863267176152239743264436298759077250856567156386825280372121874568898964435545074171015259371471953117624894132781020965977088492384680371948457378260906919072921261335093971921371155538607930234994187600586695295001492454838757459273862820688706901966189451661873763728193932106670564898981065045732760895964276101268107788056193760954013380824163126774187812571146130076041527131969296266669632924374295027630273246557496298001062833036888714025250151478117698773535972987935630137618964402763006833617858324517594324664414340463297846357397098566751590843228999516297755445277459926648893590575380064409237400452815889233751219306476512039091828661999032876103292123422174440606387445628241199467602330985081250527272926162169585554234576971758224908352237974052034347763138780277526115257622850734823375543599757731313974462660430217326159945994973421598168630701909273685576490989188899544644834784757842096578538328088158090688208530277369988520360238621866212947687819870593734697250879535818245474191276720269762339255616236890505195307284044299174301081787301583030417219998677060949873725274767793634648859208119374316714842393143832672614277743893447858577637107545315468885119129088013499212863209423077263525474310574838882552444555090998581399950280845331119673549784951375949034992988486868898238614321191085831808016458143355712437110471660495315834483411067966753859407121114124661448542311594362287769897459923136843259502719082030301698368734135150465369847783855682302115960299034698953042600714569614845714334426337445422166044390032768170281969608677929297693714275963502721160478737620629353607182018143678079896074112906668615198076269175919797259608726266840334812532347361836054317040415210815233901412340368706986449656012182872872445179764985381552686640642109590973454146583986475740201080833096251846501052114016217981005861625424230811451015733920903130955907416423895002040659651493481622807948501398976563091038154289689773053305249565958868824465607481815286358724104526791597410083767431384315190539529765375755101989079242817883694667247603747458380212434290105044528331926492661258259653097227652954752531159153553343979812080085061428644307006483301434668440780404882990357097689801151301505238997311637899053258723063000637742978400260965038972671420118779521326345963690886653545957122630572928798280400181344359578922152067733149365087938314854868100748431072082284833501866552747670840899398336681687141560015018783405328922018793013808851619942088918566641061620365763889890170652589392162608703953668666345247565712629178131633309271869554124592932682078947504176763720222628667062234417903974904296939526367110458836766164941929746573648369895062579336413907773371820299219210045858949623639865001311249010968060087921375003067572092624581898183942681818017612245815840037396463664104983299123783108132329166967118427629039688482882125733304514365694997998093664306511125174351856378379964876347980221852540218902563130097944244661675580913295123086819075007870880943067667107697350057017739801637018847147088922292966948976936259576592168874721742006459388951852271770276137228798534764980125080828567956994417426485322256569093348831553457495068823453250412289818986340430633138994695140060275400909464313149267664890243001613134544337246123970013002890419083106290061120571490156507381578799397575179782824556251665339402853164972306891473228993130854282818423114223307981572393257773321019208689557543069636497515146842081857321557151918810602077749345875209638276946744476921746233420245177219626196790888681529316767019224831320299092951398563482285052383786488708136682414234094939591866311875081265159744433666653356918011559214492546141973023658349876115816346190068650170324375700959406576028680409392300836431777672582177747834983730939681073585119796160654993688930228485755769906970952562802691518599889413788260175329772426725520968790024009248099628330490876271914271196826201024664331750860202825041810570061633896417775906171484363714162305026230842141861607870439162063919044282821274942088935915026559445767512731609002824814024918694349336091417277758291383513850140801045597821855953025593706067012462850101915538102492601716314354389944863031262697787713629700211074205076350460582226520596276144619793412526169577062915513331024597919998118869699196362363870647580669347089827489466243293647754636473135066238151606354250433336264940313707001278399331576952057590354411706489432781330858557916554521651428613850048856204575446477822890992597850819847293874783894781572699871366216416579874750916290028153942691170684936776939751204467920131256632857985838614069522805713382937244534676442137824888646006833182755482534614176372466724373276214693558994089517702120098110285086467927020925754884443789038469491835641481711793672810710371053391053336283882030380465463245949364808917070256548588925495479848731432990599750224065781045230809730962848126383755816711325184687588386009557218669311388851638079850190058609751733295082097765034212667934596307122184694971934804214349645903340905357970697564653765466636326251426583734504484078875283371227817463192094487260723388870015027328915565633838064831526714786504636969408677469414432601520113347161726566207834976460765629105986161479081594288008631026963885346636621218379724038874817674207456381155855821886756698071130540871106906260803790889657523373852576902673470647581091940103983062725684345824843675075174291779621880843309571797461977612482302345499879533414687699382810968226037807325749109865432219124822579455019158243487040800775312000128119661073932738061451668075194293172913842552417155243900509223420487216880703373419908968416013379328648151733208919400349558440683089712381927667830937672756232397074666118845929969422705673691751715170356586678216836316490427907913648741783439753544194388697733246604844211586903217854111352551924514401326366208441089328386694054315486175884531220758174192896855798662534076223813918478547369793639367525515905343997319616661107725169153026973282788846474988929637383105142162345211306992304272512157503801192183382581099385308412020536590917436309539241556950691145886938473737303806962361200064669816884487567513444377345002221134050830307222511005674095192464285728129422649205708895503722624596303586258419324851463878512159712729251084739604142597879916888463966142259819460228226986403786127784400097062548559842965737456784398042680035026162219635858073866629845180304542259699933496188528027460090526628488005682241562094151014229657044097429190460964599579221802532182810390376728105450407190067317603408754288314236438896569623692694812897565065696198361428044464594218805101186632136647477096474939028575906140311272413349128349562533732179469817878811374857423758994517683121016878088976235582739738006511308238594451842537410751073579797310024887679516769533706341707378333109232833064404794934816246499802397472028670856073791897020508638578115046203294558402944036775916678906635048478627124486398376241962228349350309703083320862834110423832923355867386360964013197082527741386705636212719044474386416897410906180010102389055918488286954916193094270649463056788872578310633807469180437194249380261311944848726600917972843565961259528642135065351016309012707178715468383271934142134437922789685375670356576680196570060754376425825314024285388578244712413169527359062770092447240001388233418719908491686613567271687401566110213265065613439924077609594822332244224697112106184175418271524466795135737109884976556303773171451988417290351511923964794844446899488760473643924250960471434806764504015727488619163540760920633405496908801309136886099782788488839395092582886581160492673705627541674288809118316235029513217979371651193214697812828670297737127706844360365083685212213362685214455837851056611613411851572602398153239912281419947850920888415938109040765938439372365129557038696579462847155044927976009128200810737297704175520206318249142200130373467843433710987580578919589072321973473672727815079301479675814046155425837074334174221215172372236267020519503655319747566424230127072502104978344160059543111852587843562374028925891023526235977089678457974478143245028258990819730999419843186932204432945227498654809046338167262611331049894693366304858713521535291560657341202132202661947318173485295339896678677669558434351475227685390474401909767758779965548118839778481697630344101891707293534214772957341407086466567306817584286025921079886358670476230756711184970580541134140732231618797286366385324229385985068870953586998218686778408803973464308359583870859281186891976173760161782100674458962124725097881956227053845907184240062308234407019264287929500786575156251682375043458905881055454399160622300860117036116835964481037369527498863878711662918057889006290004776274459391754133154368469301583665336425147989158547053828387063057002722802146654808511191931845084808542401858132899219026134367909979362814860311648031009139172894510726717640510915089774940700860965503414360689803078341825094426174167460177982451523342516823404395888947686633224559209215029765794871747168878179974085141939613065149763224102236489976393476615810645786609586905652293845610767212651612848461575168989286403796749129456617570865198021161293193228116430363877279192243681884098457202425130507038416383316713621922297968858866789659241052418121634378522777255881466102436723723833261425641343059356802564273463906017412251291604289963377868519765002771026455031557391698461820944072252660356090019241394882153112752711004627220088684863376899673602256880682329568107499265898271323818697825577362399458942564050438692102950909418111561854418595249956364911560668251482922205154332162565592214296777321109816947171934799880621312232279719967920882048540487616908243526163188266025406732121495214738932900362283275511524207810378662643936646053637997221466098860540980296567271924237857421100302747696304221998587790812212015043697060035240770815463053829928931496747704933485528528798361497859086680202044550830215278211978274819347100119512160581500046129643589162739334178290583718392197804661621666959639896447587263585611557687334417723951517166137107833877196821693405539125198032651841123405329250104225068756081754993962540288946785628237032244199839447599595267763944604181839394275296532355747468237765213002955836991164272325445668720243222420564737841432875017121089864868506825002668702146786146966233745772309864451004527998459432453883288616515811021703051311931957456667721324155923123608747874076495994950006261855461029297833283032266406690390098593576172948006476887141793812321498249666251322317763899555731752668756656450611503587360896841014934714381481080225774474579666050407402178269038395825290783154019241445250189646837165793972600200613667091158460550541346236841242277745020491964939001325166182608825271064703380498614267527729336498945931866647376676123925598999845903460476354400889339146835813395169087442581061466892565589304973519926478863285492510266920008862319781498273361007080119465157215573685014666974435446633332132831961207069516207097564297142981616262685863281984277685843482817027531209003657744994446710573746188669144606331603253595303060455403668217212804793685230424082861057720049074266317397295673765770251725750895746044505061270269461669778548897376312875672216530244077458064829184341767431361219505477039295024805380181835673236981771364390236576596208934347731343421531681844105177282441894987948491072508196044598483214056212633750751049261488169615327955950896386368259650953950013196660354386110447711840926634619343327801249954647622600861610955179545247375353241545025171747825371602513827856196067015333489465323588962962511114182298078131460783546708114561419700654514323126763649599770146550378388998914788074317807164892633464741388391661694120741399157494387882121296952261687383543768609534101656893507023310056834426909165980734540700750957864648196609083554115355426565746018601739289802389472350760636479088316037895185308827557298886364271414858154610611113828967797673741899549266004480232813620236289727824384465240310048534676919083123919743154828636803281332174118764929067822413189855047580442485245751782695525942603387110295059018063904714021847754986190650283014994002615565396168211742949984994391005875039371355487716463166654439225792847003082994161419419119048676586310078843018010995596759127858384309223379508518190503737869466493625184177106324480323692582088030170589836644126468778033810895437829294128245789273860653685043997768211710266750585429277641972131692048844760912121176576756612696179233601784116411188444616247330729342064860432572022807071639787870947181194471539629255370256279848199489576459702408632094836751375352985781422953410460586575743778754819353175361306614603290863511321664682026119263340845420077049743731729401305829288646372988598224478074115774446239047120758644827102555291175518548471510626180375967615033307854632019913885854500563609072434732001021280081071117380167337825275649445125680351768294833477648046166656284752107514380985168090378591881035456999161214828772792631945387701417929858527779391180924458420717522209425666375194244083737661798630021964996696933722852964320583705235163111286739176415347599971058991089958479513196504122837658705580186671221163397967496392502662397473439536076729245181850189108598944740757717871334922091179863155374181004021003510516659944971573807828313763325212701616989802603538860199974682237196346755955596048716356118000008749513675261273457197566889728691903524211230917253332741140555522358599277582085584743870640336367955105841545054008929954209075823764470932542821735145961277569785317409911280651506142491960226490379049040367183775404870302440759845193229637271551084390183286739471567275551048524867146475110483151671857421662409239471713007231549835328418581061246245815420978434848404379343735260571073348350176684214438349356677189856963724654016334951715003812104771443793584901879589848070222207905180869119727871649180611792079431066141022602918489993670673841782136871555359767236597041066742774401472715859674606396751784069862076181397042050336118682371565133621514397080910937276180059717406242008644948468929456036798252154179241208377023257990648386819070850589994480000748344409820564136987197962679233131894321306272338549923271560305952023756658572780678700023313827666920310196931586003094344144720385950744992559011247115892259061879293781799166631488136998615290471897882156257995869907268946386805091969115030101268778841407685929632033210400750563926005601160468022724194563613368668445950402738584851046588443047469949975512815391409537350071588181315982618041316509562566022143369726848576990401490976480096257246923566321434089795312898412467842910761582911877149189960471082244633611864385608260769746628241296887968942039514044571220779900645541460011104391736890009411163985823638149243055293858822291054629915602043217926812901640455825719734573134672535698666676791218370622359593801057662214198860304677914721643303718195705550290028367441116963191876968598342046283592524468663707116568971495895351963879815883774258253496636201697424559773801836351552387533938799349707285897027257605480487979897609916726621961330118710196097071829652876329926856680808329492991652116770691215662783825164140797797361669058242976365770912077563418571577490283418252703376133038176504279242092404634875223227398840126092092992198935552941833523887989288283847012851264704175923548374854400927045860888690480180539578585690432945992911041726768219508780284999394260810913584293877656403964344967318027105252855115733256048108583829603083682925492807671441731500604761484578207725018607533595674782526484192851458663838188302823544109282612994465675987507380531091898031179806012823501601625686275360396266798877993615091609522743762632330830431828526253300412281870242439900106670767886841277671441363777760568316697591948100068472685150637018885511802987973426647424901987367574031309612891421047009355677491101031783258643555821733945171788872830529985875221895023232694761262962352572434020219388288604838674928626875032796467096879471482233473603409232690779240261694416141000908092336113423611095188686132429810448854653207964938048795688747349292689141413263717894227260840494231450490799343126981560889635985425937442363115179817597804294034276000516785325779364288844531653826938938458528235749183032228367158255971368145267730148455699599561510064288045657622143679257360627919812100553122376493104374850514415568458979101256418085570939685670320837460647609876708384494968058448250382515300982629100020309842775072405544980743439141651360561953967464908655665301059805279165242977919953580757782195284743078808733727281895903328737712471213344226050507855910063738642285997079143841773390541596193324507662556147222737030151002515485804444882176506739217759887679449535309363445990556911553908895643140253934073651734075275449740045498879064277511779765097352971221370388441034986018368151219953324165346908554206799744754698912095562159499839742968402413680685197960700296184578236901491920559386679234464529120645620490265406275913786621412862747995271111178896394547512359348204561591380866148540926576266750760026504307549837794372683111886937092851789724548925851894793170329119517263157247650189370076149615935853539120812613839145196195059958488570629108061400811535931049045789526827663474024765580539195600683167377148579304916468983137869187560629887284185695054421957203886668252421515735244114315924635276497690302849342045829323980976032332067592948916283806370016728113623789169901941368030685540196415742872721128157469948111162776070366454194409490809280756963103835406940367114222271115320005361857495742611676142652592849164295003803639574961061352198845138816973331258539039269370554802472632684882596507608839015786827903675933520085633656352351565717139449672995361790037704512368163327833652674716759487222808166655176036430995084416721669630519773739825529818651646919978406265675041235591640325362556956757753743450231390661880218179939273858401172221334155658490358887614352499209486821888773643356462725384980959441513252484116432009758141839648448691419723517354615045401204668848674273767850474258882601236484097956581097355134735671945983944465780640850942240094249823190204399090182274282293444137185626732348540894839564456810361062663582330424416344049939001240942830845731660632728015793067288699724551294876157904335417887689124933535434021153295054250220595744786609117644612757249890029215853391683570139939754328430165022160934862870022574638021105849214429978603269454557154115226668113964639908545189830304040263390619513386169501767737570540967178215408564549093261219537231671791240121335218886470195951056370900772965384110321619484013144219223393031512359607771817259164245044428462457358135627321837540362229418548279676485434523838565675748658914280335449707539130938614389689837412317045107101961094947166897514284965477171757957678830535921364904446683912768785198949943200285283251157692698884398390017870365530651742936382004324401704107662885565259617481599432191026827517829311227721481329130789225685979186560685897178768604710376158356693784703205019016826122031615018500266428375023247609733073451061071741297948055487949519742799201786482130059771930987146995646647531905171371322187294870271704846180540862559786840213267613289585819383280198173681047950820804686626591931140343530880414923164748509061448526708964778622643538535577563937968180083645949768668574353448864142711349264026321769755177411239834354725157897000966954251061572107457755072501674074389641604290149639516455479088347161425787028558509431967882561185506081301056986860673527225832741848454529235042442072065250517913015914855479583142043551413223871205226163827795952259780826014646378167177358656624873419190573886480467344197800732897836220638345902674643945725448512049556072131787434952530631699287532028694284901530357609267812426150434667654841992500494626009437662208061818448648116935357816112638589022000772997398543167348382103859562164797416013929171499511977930816486649455939594017323346213843728275862188625875070879775281879264164270929247452828979915192457193865296402962668526558641177877000997518545139989660323425123848472064473090418350419379152224977572701569571815640938368820058054303426898432065577020755814079329682596141074019586577504962728350482588246796401287685675756530209858920370991261039935242375298952021065481210849506118580025389273836556233466942310215486307623481981177046181746670314166542702368181834160992158472709132395917587942891012056854408728355012800472066725899189438071838526737044258687505783370723130956273799201616509327261627758394179600513498402483542148555066761585382204474095781004536109644593389003072673429647624963825441183859838681826174327096498669098233486244914532728489912714877964735723839042327593903333517931578978221311432700735874837501929909414628211507176192686355802725638834806330613949080642210382548670776573680720447805227651519617388776686123777986434966449334257789655142220267879810985980310160071454465510192471234170225499511463625850187479166676284099481601100503200010259204494355330756305915177108532682923391791748955419326481146705966402502689031275604714548701587546909471307086579402051283516594041795504363918814724157830699366282492116706219176700971919231709265113685743322635696284099924970975473633304064039674711188546042329413355503859546415539383577562045691295988753610362196218332167995593703227526825529758926318571266207829447312384728589715548483614721045357556721705513190598176427151005871240454045368642581148488861527827923066181973416831220441420303345016293540404813266297544062221215216330182256497203450503374769063401721119150780766186548214726519211050142539469268445677985596943159155543780725429375351178196594576395305439584117862941456993684964856442045650630262471244976791272916736060216248396722583183460343738058595324622954575281514612963018548361111016991046000370365980880556969218245225111868021408856070432937998146130382002011179454749569601995113393082371692117971042173920602798354606437178214620222361773436984359918058201912218922216350762442282622391892054631578910987898545442773985563385146789909431281199119331782377585910529508165026581927318171546342147904093808814672755261321650172223279039121348364929104171775789330290817199720228838499195104797635019248469298780217782808696037819751068876873449877569922477735543592197677247485049308463431426086675154563106146533437089984864347056008267809830621438068669249016962336889288910252500316450049019016689105630471293642123270001998675607152113753472333419419347913324792536081753560514274954966102171884690668750159560894811429589651871325160509563931249868905267594974566706406464031178582570728935879438858498653372028269218227192097194513695991062560096211841843149106868392873583761084264931970666923468595407928185295162918610223452555376583946884364366065177641923304163077667592577015447061133419807718787928075940388704530339380752303842920648557782618490096879990920136761096006962056151463539529177866455522679922704642691361981338177540776346823501482309075604433619458737494902769843958777497817376602335175278333249859757320484911088816393923088265728364811784556556170965147162500901500617905458770167823159233284414204244531008057850720043007049714133266489884891075358777946266687707688183085037346786609935342398330268124441175639194287542592006348291687746061989145018978323507785382766561350146268109045698093441187214571206424888104266619722418882083026426663365861651655482483686560287112321215667021611692942807485964552471455067972454903396501872122387778508168930479905248661974823702574561118119290392393820770483642507730479062804161903350474319874643521968617126803092094837780936412465780633843436895343006454081220092943367446612068998968329801019318344502948351053751350519495032083752325342357368017893002862427617026619860706932459640691046551107539095183170152037785596444187706235324921333822102556744404404795383313397004529213614517593059390767875132899536498936462104336766652058920301027393201363885260742027256151471582735207100299848542108777907014362523497594501464486057801893784308830699469628502926404677651198587302090092058911902632526341425255415701215936654423169486250152954970638768802489696023526145934857694635850196433081202453257246536769783433302660789675022723134495627100248572201469325554796928476970913163563253276167473603523071399381462217511281180557579378891645025423587063589995639488286850847857526594439778389617881696767302074326582590557351732704487126640992822016391406539707780992438076829505312376153427447024336286155821167488455131155485516501696671696219356147413373743916559228251936360056260701800758695557928813448270087659087552822966474028023807430873097954270365143939968715973050145990540364897378556843042310275344716953887676831770511561038122223404396385555152984764104894712940846728627929648170760853590955478269539202717611923741067399412899609213277975764689589893369933437846583264166522817013515989357269164520599074738876020439590669593545363557345943740502552716029444140824261964866295084600273983530690193884466708823522685059122815192990778920106026528950866124297848845708527873910837306172018459925136397272155025343105251913207026673069817613630109532301767791216502122843581458680333166724295102313852604272939465423169832496478962298830180525359082898895277712107601630872341227753866376190597079109063232944886025470180503123613001104172391403222098810079631803682314375185380008092926862097206425129227875259280570196479195613188321275190076296504847545633169667576279202542014809221513216247538652456857847459103539397157332840192750508614402982281050026380945158796947201838039486215836214219415802031149768194354199945549130041007057697632222100859549526513232450765375627110474657107280546210829443067969827991193612857291103068889128506111048160108181121930271498602032806407679229352326788666604542371559495845826400346568604225291522098966093502076781466629152668412867681581177821525297604937450490784627246848537566131795548413748724266005350207900736177598007226077633671452159422247988598408625764943827727424751135340624089180395064676145056531264467232903277553974614908766988697060184195677403218493083291370774373507217533336640630218242038889417198515654280031167078772226148561777175571177219196880410983129585345286491825642652858206812669150759992592646006865569205025995033020799406114933468237927724590810567232950139637749888782274202546218860263099093125497579940950733195205598632498836787649514497315100929553581535918939847934019149807023612207372301875844711239869785357789253490374577746454106331771602880366452959463107448036196578348907869037637805259616540996237754557862530962536345086910655024132652305127392501676054722083351246850742239003518079398941464099154655500190120484512528243037345679133583225496499063074121832180622420945814177730934392893536442209548936055858282207618142645828331360746084345098011902775443415443331173983199888836055050928313982710205120432553875188232230345759492160498209082750993198283800526890026057116809777254490264317286099760201828099952333923861716341808560682314052375448277787351384734713982659623714027994788074297773062110207626501840904854009700825093827205131664499511422961604484364632897084087078836350514514966556672383931978573649599783532971874989303927787740742963287452292612150176008989983591222489956206264985496082196861774989006798236187545151046291384524423559582822370311664410025753823513401595643503183743731241115667582112070229505998475092917292750795403871514305377197744389740848794724020455107731371843117579757097770604736318986412905836794013809818901173244328287534001866133616966216158257329591620255049007543973748980351236521620562234189007215629069919239617864955130918705113252973896440497032444219654948044445429901052668259039119186741263056260506486143839149840915389692819663933281638850965644830713423380571521558250636754630866353914992042414533745910044488549100351812049918560181401049403065535285830213834709469390799684279714678688106877037038629193773247540179096033100004864069330932973503802823963974488315267553974888607670773857735347108808892319354851178643144252488731636184729937613654011150084749851196536398031422399888294872801442676698774117508496827030184481831723995230699720105905928005523749525421257883063829063140287873564848309649122525369861363383547296966215593536172410223806389913568411675865527246189388783916032522382866583996109564459955948325425592877389199584573024207552380794499542735094288432308008160460573838648585672685253481982274655092108641929473911547752018933018803711008332490338725253530123179318041476489785052436898076849053571439590405553738166753789246150220744679451429022592230879400028712382731881799589268996570293503209305603484811025915705611075913652273182074304934996026997025474298890091628047786517839649680551772768980185049404418809880935646197654254899131943295398177068416202473022778981556164763062173228543676067214666570728793310608489283731162026298524556181381713840336087900494880488200365534516741447007945170531281462043406801040162119202012654702597693180651633475635985243113451728380647327098983962080747786296569094124420834630500528109646193344799918092394295426720337715774638076168778226150760675557792273476860217938715876237852140167098408939155674999083337211554326686177340064043636394709113715238684270298927520704468040376667238037980343539640759302005442261349922851854496791580853242050479257592237533778236712268697821860915114348473064581899631016834261755147738689567379590049151308986332787829565388714075651890598240546765590834667396194480658047061151034539455319445826892682552911965385979044078702594829925784606873962062146442828763306977887005450159167253474372526341398467034836387681262621577842868577719257141185179448872000465105216089629773311462911179366118458087257833711465774711145964502024876785562391765940952563807809555564723673457736249528099445003417221855109621943910790184448969895734417001857451528323461219535654788737943536235237711203033826105960040359103681670358988020673842030653781639224072234194891736637814330319341477095179985007467243123306921910867249183086157890087285346208575974750381922273011270300494402067124611913550900128487450798708239794755451018204004633109907414010867804713070671245201134939415419379505482850144243664913488984649384931423684827558441447404865175817720922792038783513308527133880331552086048518133526676711255728265450724029301670597419081846825371452885656644897279318800382531914105227728778471287823693657931960538336370420327837655751819998430412431497079331826267548405529885050213251733918181439608126256021824121667735322573993566958376235634732320405516080792934841961567445672728005149670857620000661851470683310470826975508905325599678566678751851004656593867365627409019052672422284886674619103932356446825454238380114711546586188874165572374901191216011552314049387831300887772550798465718059145096784758863719753340091505378956079018305479889008854984149666774003436405345441876920997450388522193750714166396248259290028525919787165307546967601720306589372226802372112389781587009444547602971376474880310297263742476530641686581382327133497836101995208133039153193037827688675177592694561216921794390733533292994220045631562938799187665803416286230385257470504124765158223659589095125663330278731594341364929888283407162695401210793575868528453577451994565826825208557099782707114141189682364863299566002555971758345301498955496767504540856387209274645064614960973952087776497743943829201522479709227763291772851141999652595732805134500843792016862485414251654486226590035163739730358904524433535423994654048566214950750737688772616627583777106687425866270362813159074052900918117922221632785149238622984515692777685777145928796313343924470274895835704059656307870909505671394572943214922679121774578180743592863907803316771857776854642024952598695933305640592871114774486974991547644294875457423620404429838129769734740744424025893633706068570610360295356777762436208235912838459960781932798100150594370739930590811348175407709055953745296245169637148874873381762673496874170860270567986845997329409421673228649617917377282110721496699483520149889479891716160556741589380965925295945160025145943807839757186321068645998054050569107247949532800480762151398082765632917244167175378809035415787180682669854115835793468113581235769972349786035278051732874796596695979182044452598361095593749963916890443072271014968642032435929604495496586319007804267489822917674595038726945484352248378453190207267293829308584423381279086197280101781565443434049351371358116722416150841241820906083006015250394557462053451161059909556215363260734297856248280904177889005675939989456362892080262826295342638395485399575353645451209054747363576615946667023344269188592669931570571429808459642625362109782865676318262231765291434285518269498510913459008832885763052052691229638174655258075290830171626297315240416381294427036026367652676869043975161329262234653078213015284968918738661571133186070451958144969095051258474951525962466166513089289000785354080870542289418567078611248956634686040292038454926361222031016607894431802883059438889042789694331272367362804682359955275329086110195405297241463213176274061082100054282266513612215017259345013212875098449457336344041330094093469818168186200014455652242425731457650210089732132969281654569896015983115309267656021545507834000139718130235337896679936101068587117352582378760153480665060450216912562916937448142963565135290889818724754760694097004442595130154307621404609716628251216055848182296976165091884934229829832071416249409981261870874763493957084935722968319967518361060301380474856971331722917737353706613135472600621357197279546057649171873792414620494248299254128944161402902736294296978674251452153609724527216064099364002133116583211664311655685364225503732675788110291218143653733076788663102772830878150674645629179556898293401019038244879454988398397195100144580342225219676922589094037734438525370298638793373625036815987610384223755865987975216768127717272400768408439076468213511639917412907192772750030442594343208270936197914091540793711856396289983928681825452456052312380807344458188348675466573892162616670314998292661389597444282587441374688182513535198182324932765856705844169324273504391570054957213262276792700659849945190518740343314934996491794637284510174713552948331352199986277761664613947253099599412170810235410657870679266941343597657509804915881172647257407841859384726933446298994876420603518121263773285106548276577636880364737653764247079804874944649103948275520010960260202026528615766249818999830194756587202702223289370819594777239632024960730906559732581491902765659356368574203619713211871377813603294412984372733770191494570598997520552000862854831214146273014236610613368438922584082175930067472771709770387989880624366705601753739158776463766832130616776582436728700481095930358775990440959492807476788810984236574475850901648586363267026479214476382440649849666551136131041735229321892739545680896126644292369298118450736681066093156198834665104370785434829823066129493955743855096402493576994573085303125846671535681946897686848494661390017477289094919180698883185143057842067778394199578367951894539428904459518233687573022396722118158754657533339556038406386942334132365708836537837501147288908733282964317054319357695737520671460351184929411980918935644634303371399614994040263786250646945713657814793421061440968828112225763415873759000654724192143455357330658777940504976317044443366183504942505286069955681461853720334743681973964566888215734865174695114740198187611724280106667690335238862841318362284178190861140366788524910568156030879870815931791741191069377213498846572965080593177510244260909982226565059839440918215852541670310471681510527833539102858211581745444178788735785255618841822471180939650684558055840519923575674789565780466742756570979310399150925759720018824609314959447709679444367789012990710991077639337199420967450534764627407995032881275481199158037176879577736468233706488396909942062824456570928343796072797382026579968928493589817712044467127860721250667577520690406655999470822034904514148087738227053608465671338276905941057964649157630616928627993448517942138823760607042575861503484746785616846270941452681807487370248687616488519265934964007672032939982551940609003426896797037277766645993804443479029602475515099696055088403213276433315785767593606626869624534011977168858747769488340660125492452691672358257946456834599749816928361573916873998087844464950095055835143076186936931125003174806227927716313456306235008667649104082459537931361376552899279307274484074222117996312131936944930762422632310223993579320214528927725673206483473675192560506930055479653006116211915299688080809268886926916872818888602415426448974322704552094961488788682699461979443279060914098019363947646396122725768016135427362008234110076741387276937289591583948182105587848207209773206430403637069506828320980145112458904507677689208583636460388605845491574813932630904313697229919447660760446732715096714862740431830769064970083499742859717468172457926276875916107756934613745404777062182546518552375595474762782572990440335166555971761098942990916514058380376541841372332157718085385527696580476446437656604474590628478238225595800488896402138550415736868895882479015476198022756739045550126843841441168087076844404232849974427673778030589540767991225585234359306176654104446127370819400484115564774122939965256192740147555501080060740545875859931489098469416817786484132303079639805834927141899372586387586128185174313974976555018744545061434929567899106989844661870393651731389809158741365014402006492510011245015628191103241147708393239030320391483392271933646680782337644051777423764615132398537908472333700185463912606992775739767151437581343438264783568396510247771015095473171790951226537210648340021193164988077587815333152282831585885169664803154461713963016284066399516765375132954469624172300446001582518032541027267392928846807297577273379615812789802182460829051677967190966475593170322039755909240721332354545184851599857334133754169678735882521223467565649804317059431191225426763263806216655837101182888568272050930393277952882443293333120136537053039461427480301903673084547075451996765762821773602087088511691455047276925586416346772810548014780131713114037148040479640651147073164306363825405033491517562095187476613792693464245448116590130052952744730379249608998779364719271307158631269995082207947481751735193116843648100599546406629268620224258216170378122171127761775960676114164399360696219685679230678878975142438766686532302660498863697368684275515720686009353846484288406726655493623513909173568917889574595615163864063403800349004079007109121047223355829676059582738707051334480952937812512400473410303106537928209119184229527557790989277442724662027865471251226485679719543122781385894100752427603255127899560312514329755654547559872616702886732683769408598495913109553935594547293811301325329594461751532681682215399668271431132318607540301143487893627966194347586474951314717216030756667559754015295095033499607597852062672385627014011475463923461937947670047770184602893831712052523242552860754323847186045795473289467624751748666211020535358127309950678749948454490351900595797789830098225581389778139456375521941897550334024439732509031817525332492351010402312986145424922451948034084244721312076915652015178239006015210999036393762026423777586364830893655926572226237594489273577729614808057963065888934522500020497765246918279682559930777730723039134137821307968314733728313159070440640200847488752441098783774649459626332820797738337325968393607972088992406942737871218920436312936394349615975786651308677922246695223849660795569872779649556395047032106753359126743719299555719293167750983122263088517267605331764593859387447008559135307002026229120278168347703541462964393178986301003644104624403477007490456913826774296952777802793409110963840598163189601560686761653507038442576676639363314920705602103659470226978378000431586577873371701700260732719213894950974053531587037409975723109789810911684929209215216896891322384333460462919283091476482723692945075021043672508170246119573791797700425932297879351009315248294470322378777750379863246318104020694776017937784299690412122672283151960047747210039580247728738774582235475647331580339526160041958613854902404760733245010409653432797090776125190802291035516001389273520106514213479918495001318583931372510536860872031411497063818834074113347552968040651807903528588384048551059912495711632044334068235140953689021914113592857582227009436298866717327195869547769569370420104184288874568862353549150083262740304902988914048549748574982684413124455535322315631694944285242630794709000461253764780506883695624878005629092528846060777573730510029157144007370425286099341624541614276522159182220626537539062819820917500479083020963714235625015707854499103950703916391845180252494821181920697245289427929415149724048412996848153737093495410671948098059055849385532327685279947057155356088873350961402500225854621647685850466531862797426919475199218316737179169430431120360227244840301584645192741693505768971396177986778121154636121695682059352302994215081656792457780167550408869303017353267298951045926018211732618785758684938540592801154831870253227205031951923507882151359633404188630734366674044409553238344066454306983508934299340251208110990461802105383899503161147410364999544401590680289662248517170285624921830109245173937371271094171837882969675474158174875470966417072434824030770536315887390989247504094328455662703848334016466249532959834402666869994921062249104932908699442710954548032881652677485085458126537696047912197523112460383803813688794231247237544086013977924397484128360370759144860304725734921239004678546684164429409450085288658578921768871484962237090656242322802131606518412739333745910388819598624238627918919554565990591527181496689162942932252545738040619369650802982510008408691672596544009955577737024319950842278995681149612060697081873871874361526612532374179902390902081835127403386261146098965429816068010592847914476403144302284829694823670272547434841131169966269628379454486576833300228103477991992498577517663698738077409558668984514515739322623681804182147985336128589742410719806342162636383570526912895606499044267343483992224082316571035068311689818370354151984058634857904532746268170223235310263371892690257540513296181172704146334381107653510755245556179842619522518463057538587021767563100314719268605649761799243112661725924852604586953139480551077918352921321453044589837565894333732860615557201892891441688476780547859898650168624599014566804282498727505806936715789258283179484309482957336799820423997566226924940395126554584810105311560978941471506125968424625080596359326356955159731360909335222909648290584519347323300368894723635892525844138387815139972622606221952483770904617459697763249846493945502432992146085274534662011719104249838582299097502698551018427380003742304916215361610564129410076649304352145531504280826706313264276563923073041622863576963223020755347379760764620176701963392493655772246341403916009398369916345155520893591407939853969139308468998837607073377613934604312046252996805764985977052193852961200628551231190386982933118259271056642590442570245733191805962814474351888600841322922020653719847765204741350885008666352503124540216094201040949333048175896236613987947331657136689461271380232455373592146700160848710152250211444464509255700659670858268764587434076355915436082454071126567198634579256432507962259183317864975699468168331518101145899582732069362683562817078370214323966228702350383320499226968958657562731162672764943684068589911235680746854587796371005498035487755176021310496736005190511210097045088443336259137169342159014242072805117438121611083860548563360455654493551716631736303499569632763688291249219898731453187352453933711748210765165801555519700347134836866231651758107083568251215254720356318886434795132823756223311784467337288014870019333455674397063945061990717970202420357513303714695236455942421613143149278092003290362145451098133139641752080877993222908924309214212001579645792992313989765787110169606083070331422519244914088302987634668284659406093800020252313891737283524721874294621495138717245223228087544774631376826714459251021019181794959035892463313515264119436799283809705761868396436270817817888535293663577042860696638346056617236783735831488920552562232923390828791363731348159838262983042485498994512742861965854219640184473684559451771570563705704796346654134588002316601248733440031595489218277672577246808185998263511498228169309350681418500467970450315176544763811581184668189485977562749214786389657146046008131393544369770893609222728264714946910347200239613155567958683060541601943472363093184313605240581429890339946167132456207353763361674175535384277838199096940718105783279023104880051280873865744568116565582418628660467794712114541781564762319817474260982430755530017216377598702651138746483593167663689362767181612393153363720069331993927677045533936368434876704315582619297203592483084542345441850766267485834593258083985796274292416395730346600618393943377906551556137913734057134069735717289016217076366941286667606302520205402147340909931458231482832062900195300083113893300734564202349692509689525315618129490608108635043477887701033615666466692165920720415543685401115035598508055108612240939964929783395254153903091154916101087287478785835943381404542382590209947702034933486365226821739762387044905976782425185581377521613091915994790509064505189492310191812500819636874870034835394945208555048008128965061959105885856749312101644687275274853810837779969319418782754410104407710031868189578605497213539614952963091575057103000800538787511329232815833103656032871357366104502357053842515356401038455580111291291644348978666557241142106796945028130443097210167092296114772218658582670984580449608717583656700085348212214481215036229491875272104125983513507785785540589036911340317646308131231773869944051616584940885332879893288780520333680688602684058498153899785524511308249484789792916275127988394043015292779220636697955181375744150538361891002010221158072798575827552278397301164484442957635561485691827565764358533629102914243009212764673229513681270468449857722538547010587415563365797606596792422573132333102247303953654202604836110181914028242163240654291248952403999053303691543831641006217256097694126392235757967646158836754263229066927731237751422598842630108496427458244051077557643318891911113047604360182127935917682404713237801472511573298948583978815021928018493024431853121829440954081442951523941275195153446203073528111105151743536466713938708590688321503190753413785508776721360661875208615040615836601584690089417831927221753211380813232987677675254490691174546820382304911585581226622208709781308937948713833891474262523764022236918484827398863707836789960839293296334008982820023835494062645454257053840735326831418170848406702795408537379122861696720383048983327629900492940538429433005374388501663340596518855433157050834490753988629359964409192899576242878356285464658081416948635870106954329664316648679921754753213325119466971952628786975791442618113917075240396357122515479232221347559520427637888817774316489620239773750574173275014627604562229336161816637586767859289262583398550698771435509753912681099608066901723731630491908880629702257756312081059637965540158313006882459052252066059219392145168778227195283324975539412128312864620730686437787840805437654724117784648001099509061869563723560331412699606893949858516349683428404565981238503568795396132373925204078969983053559355373912389798796333454574064268640777198089758037352236015137404742308068643125545497083321662972343692812566974243975822942849721739170175289755635922913513226640727435809822273301132387196260047028901860582075815481090290098468327475873225758256028568532003913320627271002194067971264120519831854556773604178540322186722044667112946177318904116455657874043001992012845569184741543217341497970001930047754584223648569102716514084817527506332547802591562982020226143083272446774392404017461124596795352569132222770826616033539204396130216616779613765473452469617924162767568441171438116042459213375716996579056856891685787450564113987786814468564458755488665033149578003291396632096734761061802123880160161642322500912686816766832191003858360507243061849364426284979971261566467995785317947420578185592757141927136741893030030863436482469343446505791437112994048697443358090035444512931264333758406658321109405077491835934522821066027770315027657532163426576662332292385359567502807989529832726200060260475906295748200979002532842828028271623121312294787261802829915267609207183523905580808054040905956374068498901589940945836813897054153350565099070904762778917580505935644341289448515593202990017717911342649836537400286872069067361819310892479354445147756612968589337561889959494759330030319941340789196142666989083024393938235017998334629682818832767681036484829067894516715261020119864432432610827197752672575478564679760791534454880802728198623889998778096925894842686321986056991104234156745909992216108123330874101985247064059758489572987512436870995019102333450546659641137614990388459323968995685312690853974866921099328793454740093670835287376821374948990040318260692606994600898952389643831217669224716570442317970737048397128533537349266396877754120631537025805918761972964418944829948241005441859010276011162168637470777425185634125397099230517161890722528973632047764381107604380482684343066371181870978045938085884247548776977488782087645083921590630361581546682173789304353196322784309126778280259293019133034450381941991829419012140950642670546793218530298828950946552393749286403511342626535557423520470832371665210625453597009315268343189111762107232113951992440367771814765727784367139493265813090372123979198840025338634600053433538847734527053065274437234593486248967733007952669796435924004894525694009087484594343848063404840933343833653370070987440453083134732023564056249858062164719885052141818181941673799748898951692295928032283846927634970447330419639232720375885723766242368936427655426155060440192324107207396946581214509790759835660161759101214690423470705398850605071218142609110064547739152037682126555783376871186526282113513508414057654527298219509525531062037273020420691030324352645369018762301297609523611358603858803381105891509935784534092536068589768120956113842050972567069704002313070258002597069972902160406219021027577488023823585921493628409696175135288193264155540236495889289289588500465250830016538366858544963205159329126326888311294707064722026860311271809232497519245686819444113952356438988086301755185981285184495078382424697654403680825449256110056761341048886354513047098786682367562464428791445525426692807273209285613371127295118378302034736436155520436473573396140780682409522495307864830716166894793136246906263290673480135444862368201472684384439230854346359370632811620955798580475965413541809683841305879971586097485950244769571160597050362267555546876522749266809430842132702506455465546871730092550132312745169417797623026469985093960648119922732556240933599992143152567477228293940204210328729182607442291126765298329180324315049834195117205885788214984728003067543267358377195283387728817519227756755825035109064709605824900090098543896828549446437849890662702616229557482329311862504295144184124556748004652559027631666129453554787176509946903012241751510070457902145030910339521337715127974592397989085855495811844104195176872354482595118577974560946236428416229975282076287582838092596072900206241506356482491412084693489375568827837943772051898364647535773469426347745712226159633006492696425264059141389832300133701144743248323917512253017833676949761242914348680543849658682134070223243604187126605189375816712878574824581775178324644240558250752311206808215147277766061001278097456982666057410051238479460902271692934600688956683169325714144788581512230084744361038773661331858225289548621146591993077244960905100808555492663295273183505089463569090881886949572168707305260964526812739764031675217798156308485295872120456498229365417609652923026590551371681154131540411542243383397364584490288208293866731801317314428006106355556904632748047542565805261198108908747883604356542855890329834235734576891287600588404935301352051322535886967567089217819529499633035264469520526713420928311799792707443527799881394080179113454418589610945308444237028948453610750903669104955780105052453350647047584221768793718212647237145974404071012577170966474441593698903156592374537535312053047185047178956620412398381467879615456544759779757507359850197870710734258243556760815599387234378685317157667473844615017889910514472528326282828148661690388661442218576306274438339584228944414417605662423012755933993769831461689442625223908384462729130614166294425397031410952065039093899057544083919375603128605633616231592854168936512944443663807846566816283548392223423708541466455442520448091848668895047419030984454300014976137179796740470241368441173494960447391564655938466342319510216069923525973438811637526080569464153743928901178082249399824158749025726912687342849135922654155017444663711100525845337600815237631199011891633609046555716781561136498371895961661764275836786372247220876452907895402607397187349873845869655698624916896923876710764456683681542304856348092075398091615657507220990740421545249779913896576002216501290945479375549975654881076283095394155766398892773537428223690912786538935844001101830348235496628681400020957627621304685206770042428802507886961085351234392504338497287018612176914330754445161250123419367635638458986733296074190147409848436861549864444639882770091403224679554161040213979772446231501333012495004095687889210581904516184505616044587071929482629804164359101287026774510006212516694668666928789527415164915284135455374726548441838549199301037545911590636837457854370427708119556721432039876454860004076089569284557570993552267453863618777444312498165947565617025127076251670002640500091862460744056334288599653928855227090571440739542082159933704535347776856120737667355965187758014073778120403809710415629800253213051744109465771725584122038078520338776829395571227015041821706612121938402816590277333388269767020771626224620533699770547964509453432094122282701705753966573433028383615194647079681009060320705226596346646213854599515499632451311881856743882369266114560745192342471535766316746886046170285843540278320502195330137195975536693163335330372941732428213965259835879654795808806771533848324925436212305237743408704390308352408846460242203626636365882462772027972024095241905811409970952576995831186540860621265799352865078850894309211132257039739752530757369019881179966628627255840694349659677503378351250920267965897700872060179023759241983222101753177285486125003345333842440549032410846717808737766741571263890258512317596486635586599379594368502930158186474267431088712141769923019133152481837491269403673956487554597529696596179139279657770751627213684080372812591948103762403499818237682657282857995249467335884875999977876266640346444373480378913070541866656475929522406564012934441109041439248603175510580732513969336049131851541517775306732080881739481445879054541185110150260335209341804397924986669131818950002522788066321898039489770436983259528417360595377373543776171293398249356529769112855136113542492300833275826976521338500151542380373478280233073519586984250609388923228880006937062521070745884548508284382196630896437254832967458987758529814980934548728044341294623764844267130978740123767228090248303927681653659306284174903572896530631720948629911959878371880210102441066580981688757538274861912912868171000096833531255284709640144867285047665806101416738552865544722985074278734683476497762349665580536758767175825681369527725017196561246857042710392329993184832904561953056269370419364838120153823945701895843656457009777169754866816272464530155623025444604546894058047402781808606610960490453987113928458807441085069617773611229500986494730832645087295099824626333107789632944330949952431024703946253699191480795956340203287126805762616634938291420886488252720630195579243896984357951105187345812069084479484722615551765203410444964922689149611723219931499144021072298824972038969057886661960572583383205791855382751953442846420290534937165170948416951598939452002356029480040128880455162742468679364308630482007159537978404930766554406118580312861910623601868010203751238986861470499861713745343595716553518804306719967127260463217161051428809887826475319248798697292137018702360380603807065967270573793484119319483480591352973124213896205707265928717790318294609684664869959779615135952209467810929240851761562349795738314605106164479775324543080187192749336628068491783082280225202065585735665090239858932477982479429557987750097157857781819346162738412348433439802960694619573031559334485189152432829279295944456721090602932600302692813052656461851820772395115726268902597654534402930283573968170163696556385802198244593865439615071152428711856318826690143095209416829831937594575787407755867519361674120775282085347838632295054191473631908668883503399572240612937053990474558588245925291632081777145651968142262597794743640530984049866237459717294392650171334571078280875248884197475531007140492737281944559150328099578570593384665533845383869795494067178022698396053215730909544139804012923310669625678037145268549648675150516649367283559661054703868572386458366535243023973564520950959161931920730242295031093928038586263289696287215549948926290814702522870520004239478314407133147252945616270025877476024275216377800274660018032472528252042754136752463048902251358774333180040369379101148573340290489910958630851173079085843772687851298409739216959142381704457451210987263938588394792849878623317026041501035442340916323024647855745454922454980419156213982967114569134125466954569688186045610865701699840160030126389894708316144656626174648998288121761003806596100754223367886543460377987690081705399006246065045313406407077240426168475644634327714217094659790332597352354016126227666647649479731195652243893323178894984865964531657566718510102223470176875212203432755370836178129351448417884255219924696389069975843240260566161301818507418995704791071091150058206351894331092219427982470182948535390732749255422925247286589854191576595279130197280421185715922753802382614834266724096280966753864263253390685194872608424748029747497390398632911450522062966373318174763628998948012089559181459748914990921550108852432179495663835111689157917939310757656228361315832498880486785356130330648068750902599523361655266644277450320307867651567705328490256407712346923657952559221874016205661045039095194664130398534638931781263489289776059541304928164306904917300221938470976073620218427283575471017486333383946956758413007177927965678790091967353231517406176109750405249100153507018756503541618340251546860607267357031087133017788149018445286386249642265326484804015935790227059615840960176987127793147575010189416357489751702300844062183182079821896172220948384350115796815106290788511147369427815518782190038543843097143628425487473458937933349827399279253143446084601259502801254116064613567218809810579507367939063436679731739792779418572715026202943738694686307148390032522442594084520107871099230667689776765073927946957917437000753272086818243918040742444147123871951489621380298864073623879488031474734475056017784041972916113641378881773881755154981882967038499255008814746611822852967791354221549531080851995592214968296777987983871443635295442680444597892287471416589185700492248220859679125615728642640136271525924276216652522381320041683141920933210139154935070710284387577567083026646770550135355007341397450228131084064017268279509711992362056107488877755756438898678763455515199431396886107808862232801722722901815826731921770641006521460218542629492593247041075856384406541031327752459796697759089414404104950266745750580059216962388552314353939721922642129713199662795050231747734947809606582986868853269653846501412141552894932471209471370130461357616713345574670514182410549485623010074542738556417497047309629201196297849274861519399177781304632195427837612330209207049801381998969919490124065306393416183602845253595869376651348550994644604105614503522419061700540467413977392808620766500783904873171497462472860933690702394239651439655669100446664631048208486139709848360209151109295697669697173070640235429743102500768833899846083210150904832342652209454410788442498086614239221079175117459406539890239991718180178326172524687208325833463097748530909243929218250240585538196176103534722431915267573458985043066803697569739399089595940133257118717102116149530905587433697193880971758539507926019974004962864951076077090296428790556283073663101556373537279852755627080002194578065799548924803879598185049849410319273040370295995168418481036931446998285818666595517823368258733576313706000953923492807593917301486406211105274635503106969014837154842162779314262049210582213799916880440961627693254004647190864380355138399164982840819726933491994430430387045497371991858598154565095181892955385794323328814318878180358077798296905584630102130217324195150586638941871105611907842380926570804570486110564639010409027821759234402391065370273544360828117440510826537918074391467562650463219872049831367221445049386058394054473623813995226191692769219588729230469977989815615558979661232836887270804765560562227534228761790705814058070001426735989136214352093781510585319385183297537155955847875003476952113455742075003770542135099329046092021307754528205118201245408240701637050440316345671507595722548661050758833242173641791399999017126351259292053439707607401821060296823773296544667531870192669665760635481257259948936126421706662612546934385327920606160668924360993974337173523698985130580869088302570879341844220367265395955547340118795114081707622205858736438870156205939405569402638594470303570731333157806429918234832330294951022151582437874583896329485169081185701351507380358206982672697006855671501831413435152200963722302985915276592212606014484634470937811163444639325265099110279515276734378568225408542146992183309450329579224618626902094821399278410564664348146823731647077768764488541858971991546323496123662605608165282935031467580356349637910555619102329363240665105153785410586597454043872294085373065259552654573954910462891850840944390831339848590510786390990341597597555272524081910525467361813668537681374558028268722197180763973561244838663388585465087936428892414053379624196485996726692579042619535174833898210148227170937497712349381974084285161397347827005909221917528818418912640099631488192029331607457815457787845615932999175562634326694684252625230423046365349789690174604566971916067005633617217124157235243952349292391556115925746909600827784766754576657935200834823009621012726043572590424558098043124761902267927472796958982899348258424341164151811815019340600120866460113943380367376890024519980811081789541366746330527539802739050059383167912725070553138424059717882025340622448255425154941296059183595268505177792482814134220456540314322575454318289075221224338723394595240983748725755444573085101982227736737291625621663384175019836929545160250963232834264696784687567586815147303203360479321314291933716950340930926891100848572352574575584143865333818403135771740796891148741159318376688797466091896031967166334826206398852440628089854790071658498427969008984470482560494609774585269150673517801948298449632626869001157107930670578676128449223342057007588779425747459387618581008799365507221284237391922277472335632876154886895056549787766337482095844238901291517866584246443347388521255491413873345387793317797783412658761015172645727912783045062439462769410591101113148138514446960772535362717061151460378102324582943540769606070924218384869117633133190290271127400205830967029750427362379845167162667387135514228886688478716827924430917269848530760365785913161349051889027872239955529493943640298452768240921805137873295859600154498285114830126615124155201171618169538951730170164281201441366034295093250949247883882643906097861087771877367208324354065908361630775419044183809763423304336416821119118391346874913701873470334646498012450850075509726585882381438480435087834633069449605906384996862453546963116071737673189497796067787642135412139499568372396652098181831258558251215779626419234157649003714264017747907636736958246030691830852488647490666661300002949080201032976509124099709482052920156045055378609032267106018356511493991580079536102917182423181183971304754945277736803009365662616080927573310847328601935392085295143527783048204556152072905602767635885141367149434724095063802554791086299146158344146561354815126441071653966129735719300241162741280861274996383794694199424792295547595071023566922130978831114029135558489511487537875830634932728922149703632338607548925281591179547942052667772991450115846627371597298117864428859208445834075124918257341229507060096079333254708970412664928769490915363015290929348515911157380617575400736929295970581395282514150474131428183254447624759699294719529984238235352716451153635458930360506810787784457310392492974340709683976655597590464522085375811288500222819649475903837637962852940456579279059847905364196861502150666323342806928800085229969092107801224953967883494276111929289186588251595468250758290587937916020382488796907036843554166622244263422203221546207049408119529318074545592678115098091428314472079443826612764591016326372853644395286188935965175376022314196806153468953369782118550027300948585791053069599960203633928815634878984109939010627556987952280044422101054982585195794657908569163832159586379834343857757620239061563735684113270178054406707998131711163574743676558918661816119943856169627178385413767137882057474903263668619838141981604514308463538932190541018907633565483070489275106664482240070058127614610696765104386635390202133820476694325900289506198172144703050065833138381671132943209465527146537654153636243587260579399990868446006311418763226937489854040673042191953323270285073705518236685371782657521750716367443614645993637879879705900117195967540318668550146928430985176852856139663540207458577617069884522251221881334151734944461332697674318721412233029282081103949333081952143390843655907277219720824623067722189311319073314645269629071718426472041895565319209025207555477489715589130362515157416268004965541677692481147100522221821787157601581139949561187127881724402379026846883831366889693937932082889972021628596698179512599913759098217252691211845958807869587984417326312047874140500439269708543743444131461965315897810237456315467863607925731499631913594340588907310612995417609638107520495822321836504580349341411041812005786244466640832343495278115265623746092433923137611459401508084227478985437406570509112103827031255510811438859300108246167357762926821338488666357796291469940237911912557676102218330708830545769905749153630531544784719458200857347893002853749206269184962281501937463237987601897996557422968274761375830601555211465053550034774765304039948074470496206483821481801067747077497609367180392371966167515855976974884752887686294189583703714088433123990157639535276932787759616018164284181733092709190223734510845519263495916961654452925889351638498697096221060636396191900987148356537527536774857701348866886001664853715126308530664152544342853398706659056838204456956072772916520226067623599517134959475624169732365973276996565111266629196102301692074427672664761848966603215610730101023802783053313772335539302600174689053179882956725743280745747802862980147582144201556554507753756866279087249913684379356895683542487439124854329405615097859728595310910936613767411798667351364352066493045003650206522512428002415761499593478082206121288650185240266857480734612244318786655747597863433815668530852117361345857522878812360500882264441255169897043711961237538073854983042836910342266070256500408387529945172288335192928188201464824657595917342526561543742647203354746615510729873385738544715714192096703007113674063599992094355951430037477173391823572567204759176600693993058477112276618512241532666054035413305702452983384269688098203175065857115430011355144415380296601228500313127647889351578152801536348880312899421439110095190669886535738649664765734005198874080443500635314495540197137088482380569830129608094404822078411966348014139021159690707354999918437024415251969912370010958971149571853031104165307968715489500108702108018310421444293600834573960071730102867071432107921350524209604402159363955694448372238001313382847166431510042780655818164770373797565888061264855545124640731522179182435955285520930924721316113534281334121251537344859269035357251692036472197060284399727847861346464431121725351841414590887149490694096903700652439312386282271715607420431100554906590141332712125750762803414222831385757688517520475839711577145826121871970991564423389123055752498186580194055936905399022442054938821582017597082687491302861815442731636759870376635502518085894408837789365869325386821034029607302091811772940681045781038536711664506844576266456192376598548468961984920632294471214946948581254551912510473787414631296546729760682908802070539796433741028886869103711724427767160929901894835462044218539657833176022049159032697551216957588701003076970107332382793618380586123752735383745888766200211943526803762752403982717922655863781184863222409395775911254563597907936928708852658954033184924934436889859508533252907317238783168985963434435455002401528295416423844422408362659659099794087887039411608030907576633898801069862433182999021620518692771807092262678248738172352874943785883365931125860807988169744804401602049050046391617993190955056474757741689926135721370565249035539196287318241141597778210032098080933043840541965041598325342211802326614324703480145119329501363615938786148311906877352559808478577321577802705961800164129001205562478669537206996892051248887459050410383141131874013364957769036670852310959681918570113025809442867373162698317922968543367576040117165176093278959219401418037166758343299349077517294105881306810763849322388808094942041766069517242796206694198558703076475759887258780425780561147769399712161358870779080206747403951068642950160759389688646946259943720775449945265442840638993469034865576171369537788421214491944066669715447859151884242997034535917550143957075392868751335647444036293010119228321514489675471806909625784716454042803469198553767058749780203573607024346445761842845641776329135386389893738299136429898238609301684276590962404926396534776445734986242184863045601036018435634029455450790189363747522982077858862709076454317472731919458115220242461957015550099704574128136524151880999756215564635885510070708138426772033411459571868406368188321783523057284506146637022459666829400107934718158411660187775832169912704311207132259065871451537784941035681088122644003993635532947941867452055430096964865551856838641853026755498538818045405645563810844235432990657062493970529819288884873612859312176394573671398165309907798277007370832058651735173299788742783643032117679067616206681635708466106343475042890661509868474322631147433198883223626799247460393942174629484047763988989367605384805342280509612691232841431456765567992541223098556489339129682755754766665905059181236206440164151282022775979092839973486896016300020137555840047908693397186600618624599178812774657107164078525231986520174214990247751660533359216963280045272540309267908624472476503204462374562883315967392742848084482670035691789515638011429402736733340140185258876330823661864830165481965591281421283492543300700538449004938519644136022085559344424904868518284570783777352497706979321919739332011331001163631042128367090935200874594573642225557047541048009594017415317914241654459472009242781437752863152602346772704374617887018532488818682891734580475627798441065197022613389323106108748087629832579966494630489070248858951504977904684205511535411147653282960334820461291574255745967822578263088418178793633865766728064313681569792207879330168374127311722166642253116843784999969330644780886163824960384707342718327968208460781724569516526782207509492626484472545577020187557995814766342023018124308821293165997674307096365624002407390631940693201226580203714143853459038890183777343909709526497007053439778178891073033734947561157636971865125697192428834416687639980169797925638830657693177891518113499240968575299891941520219888157369641067681863559974717774645474646999000413360444191432632482787498812471376442223862025946483079093980089645947711209129410948500908184976068211180266911897880622307778156447224062645477948552227745267963634057048271120781849600919635436766669637918786628237705793561591374299948045470090485351016508422893971336010562777809438052452177413225414627061877828778612689480072846588212302364663632717480593092309561587182606185722879918847241367832592515389425135536100570241728031161290148448638387694757530141764771642817922897956683583964321541398352404323155655805733001418462180166945249105192664123320632911547981348132675610223324173391765882224878822835897868200993974893616647248818565118771765296691111893385845980842195123330262115325283367236687181904600871236367792317083346340006844785441425288276215552312382099279244203989799129233133633649886114546189608072880893018452585265119272090556891033924447008152910041714728587906690868299118614119090181845988864977282039186432700336414489757837832510858720070946067507923787470917279889627517613799293640172732104601864031371847719496911020760711043356752280775544937023728979248535409512751011782258963178041900302105165777936075617307830059318597180700578555331283395284487373318623665738116255753917001813103171420176559940784871880995775433976340556202888144096343918556807793722884207923575156993099226745360012894806493289706732715990318790216610037599133699389038823360837072818486778784196774762539497740593592996125675534825418100601308542013708488913041534510276347249509372388906479987057294955640898493069240433877928185048112841907188576040697627296296307011761650515624480960702522654185721504913063082966746173613245349043257250252976687384612226770071302022617126916843139391237360641452422278297252325409201136774551304598502203564538029757767669034041587889076616039890255513049990238366242154749279852525441663878254426557771379138702401830149698585907815455772113235640672525547939508038648177289666400384826509354697833062835739919499645373261041920583285239657948474857945132760918233561084443060427572899186982552813356080781053169285937196782188381585836125214265491619322692774663608447182035470205936795073172240921382388523920603471966181516774843195173846260358556799637529638898552797961608280376902409454875464815431041475634580094459399799383024151779344395654489646744718873666961042568210896739233257987339476048737960654002199383517641741290756943853045124211143868212796186499188879319565004130792872245484678844337524147890085632887287359795752786259300285858694981369696461893802361090537903813894185173164742124744794670332306663028236743800944646956160302238860166983769180052727530564870239398776171521800295126411538331496346863507546643488067544652295273776960825149027819397859636475196035105663435589382522074784864292354116921678295596794122970511530082143365242586911855508694651856573393900076826170123524978951148826606316798837456506941365116193155528989909595952267379903750507756096272140511755230888239948549752058845514738449046825514494132787046835108451215390386258765089269404844629704072290436098448234115852468667262336080484648405197024382562104541974149393055333296541743326953884160963608882713606217036913650892657812955361379731855818095094229973620286705732844723585143786280538741352186882525152988048375523513812052135127397215480054513524757718270259832066404189340702195207011720326343171823291286277387724841748949854061096379273485369110889190377957582356569832991509403708543801496984811269405755225346929268719049215836739071635329309032155877791205727392631393397846891142977090352324673759475708383175676964305671723465246207784309975990326030417183416672810868560580427617704199562829585809928220378291483550918847588139883395336476231248732755210329284328568581073366827020444829320792296699246210662748620637091442148338537035441132167249255944797339191084195223950464584790656330158455044344392523796227801855433502768158432610352355215176979448648664418889331839301865094324701679312153442597850782029385830708523556872651696442463645641777543927898029520100561366308303715827522813537335216525799089713320333552296590689851546996419183724573014417101875754126491101320463707297573019663978357178164505938506097118469958252047908767049056496439524052847268358847439859287304718342647166904675641138863548935191736276953591967674025251226502947333609247424736710849307767287162105163355146256841210639945241848561736814148582476483699304000091323558113279280436239230267696720235469944992434676034361559470115029698354646768974197858472147534355393517197110558761852705421091168030214576936259342762561442961022541063051159337538213371737127059267279119707877351337679905092920349144557194065971565854241217960330068476659429584612519794834670067161372812194586049815018374768884472317659610072186302869027010380425691824807560953113304839760967890688138106663109199273783765724603030757829099703225783002455307290639659040260167257802203838811896372390152454071420459085585710223637799376522738245545750938882472378086397868303842207648769593764683995099085296968617200885201005756289160146111810689442940805253687979367537984372221555082325787765734005516264947147739328735292130444120142438780145216170157353521722721227585001065516423153860051324138655569370884948174440925013752328605698511404707318771305321160530360073624216191440704240621871167156872876670339234343002345406466571982359049648423755972245476399972725884193470932003766349486715778607986977096740839980478954383406066320846422172022429111677391307512806101851864264818279688433669550762027738157871387726343266700502592782590489395141816424097744142797050942046176226389933731982689362550667280399645334602489615926976762816399250929760256578821059340873762817573123800867826310629675664823205882751514775153765427020210349276759532284864265954825915593562252923482161457648576228736593371926014468562064372125772762729297911538036313862527241215345739026964470874718576356644543745363254777109647233812279191821308138863817287510169630997823042512772581058019575589503894101981428255964929508480951088974456426811847579537708823476560546736201345538161531636396068074515854584979339906691153682067608762011675829910030021317912340081475020401710841589614703714405943879207661510738787842250150052101622189093213339635476484987700442056331882128901441145422288830561594752767347775385816829878913290070942534167161882106496328088055438432891478592047262618098832301952691986522380905168512727686792568694197585217300228559096585806930591861615472058750074769839454291003132535882525985883897112904504011619491717503704571002210938101826032718426499012238702213102029782905692857228146634418153532383910590132729070125560048964320815099547667334888821308532715382907511242210758734243734680311859367348662378231989067915815791440681473872124507867716347635669974167281117443545423011313791724529359167121482066429999086926435762677220491543716554472233538042175451280812274061667362275888112628034574778703875519944100906957735410576214811737828215027423098336793122990456133289125156513198375383467418668745892255853963397398486181918790996966361344191730395558957813082288453058094023951225782063170239409022007862288763963176992156044093949261006985575854814551901653117952965202998945661200907928125123047282786505418432846444803319590167252764780662063166009765822678014666952481936090818434532372604018184202277790742360836966693727250574018218148358505420442903989348449154417433171249019436422193079331086498204362756684205363780810004349251249087158678520427331853813530301378668534836867170383830600916094514412956057172428665416111118427469103919783928526966939432577558705942683946132920335114758345189003938552284903892848087570377058586429806736297584524637480828616329633126889917303142321244472183356747502766196448896052057130703458709976449114996619640106418781810100764921685229159691458645985955309307119629256681462734659227953425000434175995508383534056638920775429299422725870872519170920569029029277530864998129363669809746897960305253733880173134181108497073117143497120258694613255920735457918003811454579165537676506664407427324400038006801430415288851209219513298466695706776958717448951762029755969728066909435115122092807722892572272158218910245667870991168941523362710402729337593728381938801877746858269220202836591141994878832371658707425095895107757392995096431545271876237011434444807192083102361561649107448125859190724041155673913089873954564693887865967618681321731918542681501295989645433693492817267103532503808301381647678543345502511867947182079111485905329331716403246855036096105801082434659949982449864020133246968193638840601759689052350777151268647036115823547332368833169004467712247202188103927484582463655026773488014484888871639510341040625114756962805472901221805794259909949042070574438264065241681375189402189135586468324468990235263674006565387829989421902297628066337124088217782443770606194432081861329297955582425573710197767925795149149471296719990378809833222022949232840366937396749432971709841790189104890908452256734785932641458636099647093980054029487088814775934457232609168904124100928698514021205300659947260922936876479504716478219384933984744623370886007911726151203207956784886651953392925565382096786411466976852793025061763463099262062294823725908842469937704859241784155382752500992630429533463444086072550264702498611573962289371308877276696399293997390733342126674623664814409795952353228663478933750085937172996514741018647139901156242225859476406544625074365802596782286557387951806400853060050734056308040215158612499401450742851229747936677764515924288035640993130071559761268621808980351326137502259925991395817933347217341054637127451458748286896389804446168059166243316064552000748390132130093837985821092415708411289484685734329106960637832447643551118316202390000995533487932829658800653601935363748204545800635688454119737336991990664222616600173767283246417935092775214576190833996373531114591628268917649035310799140816823308759971493709594528056552302274366958099150954018937338510264711784876989087428162773723706125043127923871628131122401054773683000831349553136277036914609838459959901416186894231953021716376841487413911528561071536668391456165009136661891720984091701091554422940249252302822183210406786967663043449063014037887511642818990655016164667197786732696630958596574136926039388199294373247873753461048978412595176866650711174108721712986373285879639607133602189395119948089358701736230963464470936406215306442324386935916294561576210570981727032703124087361606146250884470259147022141698287207656442994349580231401468567670056107000161030164334118277521924760208041099281904258344078537346287641714859246023565699564419817494800340902733521083444145936023402417000719238766633736914729180598255222756910273583320041120738790133774682640554824551817529726378414093967532126970587654316587273525820277243338824882085617204764832850414516122448581192452301221467166818809410668907662719943548101599321280456942004827076700537145186791969630717738575169971065893947826488826981239397552822418749027911607492298003712159360604950995494462999802753095455753138040524078628043427583904349097631225648053566455118322998934519069710943543399391291876014076563413794911260000595149056245065104423181527271375791659423350770094942899661466231762502993329172052854586782696147580334537585734218891525675744931770348764329578431779098443079687550809600660555152221588934594057463294615690399551584624972769653514357103894886984364288797645130948362354136972000668669859966662626724544529186618870620588812224037897572829626400044451111190320620259002955815664726384316502744240098886928731987627989137435142131313992372166149035483380331601657611652420603067557004586552391594345276118994319220883390162570257455189787849639274240737512249856284430860240834540219729765273147118889703717890814526325498921321955653543041626845279471752316800694567891372186839634274085765089715292644357980372801474896438883570821831135728905637007087220283683511469176471008787254011596397282037110376177248546011857407203208746095719074522435040767954325695823870722011552153420707955284284760317852271490032096779212664821467645651295057951059784702176892317419893726190026437150090280204079702348172810022385624861506469529986723197845706789519697435464022000367783421351280408759687047020659801294218730410867533504652917172627141305796247658171832094183546165311591964503654211201939556930500102649715409931420770402159319487574297280177743216482398942220989815983558025756230545224708888620579112525435611141963238633355083406793721995225437539161396964374786141544676090271016149266430332522267170404131250802425994081001109953977173820928859914610696796612304710409349072009445704068437510892500550263762829623320246944245273490786258580763261206848028213197072333405759959118216574947559868931877668370243765112347280534571859110537976081089196446590355863662629100184452369340961270010057000327133616095152432540874967612908783527235338736778028374680516678668141772621390845653089045420465905791131929123716674265470627922120805329161433254407280961125166954055370695445113269163257953989176297644666474972808710882521486072310371179652985961258518949663349605444742399608425518245547177193639992301130055692138618908256796909067892077955618011071731936689721160168694885431108110355258524952814419299920102092874288724518054499310388424487618054692990524422498990051178075513957674409279220243249295634629078471792785630835400042631126806939464102410681803301044237094205014282159873089700125800878604851881691979758069663440645734449929402834106502741715941047762068694069182692295819255407002431440421406271373265810177125055343000799464774815317061035267740326110174168605557482078343894864208334237938243642597787231209274537490886437647265557769610974310175418344160083123493654201245084280610183302797135767489650786325356025543437257565466567508494492758835220470568448875771225968899579987365014625680564058270475624136312903975561538237194562600799717389685798172012300722300362926974829268146003786411094276488450899983749931127122274973447975034736708560990899844197039692466289449539792634214749059268297346354566572463003584819555636836596283416067323529125338303507106906405459176989418967318399160954098108494345965277482810600309291258097099830103442835344026626217497248321319640916311540589180787349385985519267292981082782240090950643482463895154535893993888151140204306735647905535843040507841870629086139042842415175707001479418811277573481995248341871308725107049904144776401701754782715266145194498270873033076580103995036057238515914856115416893186151272092618708940688847215608397921237384890097584626243805266298861559805389668139845419883268642051419101160501837156733146693778464361398796215299936091212152288375054269520507586126983833270826016942555876211995839812608730706012877715626607347400968525200345604753105147503595799925112747767806408153090791433050521728650660008247491536801158770340768016672366259505925312943411825656322650279358682078254852281645428390684660069315349940904910461868961038270193547669138401140629693726697430083352076807058879966075373064841533022206567953437136040434803552351127829394446338884533815099252609953857974943703437659290036460289011073799604520213107609474770946679128774155376306999031691571569020189894059725271685735671712059178258764255709127527263847982774375044840119197075574336519234837028315306807427021204923821839363686039076475529725187509395167167737541361487822989978060929804386612555024001502726647929027804539927498644779916976596222028184216879532611838614828918085823884964283073358074488135110165363005854418938064484809005250424550046265319954530311115119593007465914765847791565245048644458475595393435640609236554734859826835653394072797250057677419477628774015058695096627720373744063579536735663982615327835118137183247369197309882762872563691731192115066926356346343726893440009470566779273245858767523429259395463568225396880270707157730445213969972346036383081294154954383627841205479174987864610649385663891150233093866951304064016945721385069119446170169350565498966785441957059519367038271874741446127754403974683977460661625903617937014115748739214373390561344157217383292679296749848385698686494524584100609149582158665988595831415411660415898255743130026126684070261227649702870252505667323028256232409142663369719119476886733545862619334272987579540972565440333598399175302232119681347334510690890238993956911293065056943234848218851753035570685998284956874920069073749477249550457764374909149828048601491325011663700740167317205209080754763927816996449139640039286490610823864529464600661483735525811062633402835721042656790324417646066980676651060185552792473474429150136474759825129226367487769717457229982698904791574463950583883946940397949205382502816588892523810282504701300096226752313705555380606197654400200239664708427887970085086021128471312411704889996298682868330966820687662181684238415218610329840262623417215726976093224027551440614439819785234460089768715459545131277331261376033450564383402732552830689874099323975250668611286487039761239743971774532827982921705004733787966823571604139160418303150384136128309099578746121547950155468789060944567811765118717404367937604327421682936747762458976129653743974904602553199702395250745057943126791991366560460067615390433836251752686783062559442224374181854270832332016512296873567076154963917282637031450326225185489427067157540158900574095040024850939296531801971189745045426360533175181913145631653825680132692478856559303549380550637926727684375972715456695751934374490128705434687078996964220366172711181545808206018201144904838145062484527279118639518676337040873644351559298550939054670816585666919644775749847543895541679142050133681925486563035019567626454492685094782437910217655898034116470312559297253635090182668774176639902574242430114170820924798861147541205446935759328207348274409139856790155212108484797918509051161410348152015965730781353609985583014239950557587857126871813223225354049879294118064963574875833772453121836513545459747550687855031526989205386288724536957797045553157634909828531831321955821587723063303629647427596820447450383397760842413461089002579675581838919997608910446220892150193438932474062307573143895202709374478059308450104141347294531126129545537524167276489776703743722250197289029010624739242966101529087721298575379163886559183823764099922188863763828343040174362904551225255773043524371975962538744657805356585858604666989539100948015779671986352390653385085295611163524123420025269512584774328547093182615951241209895929853909661387307704606381857224807584879545659247225017821933557023930580794117241827986905693279204702124969069786303064435551838527302069187298961727290404637133196721843607396288610325345913506392888519499577800159567980613804399112159459138462463750137213748833246911295176391522677855296185234475087129906582826395161428077499144554283579900068779651047389863605905029925209608434509428716305676283365450205796899890013524372549205563544925175411514696122365883530656536959624200705461902292745055907571407450961449073841849655752546156058638644528334219204631852507553113947727089803716664144160575129743017363543404397093583524916593196329303601383042990310804261576870782163144206283048676278602238611809839152491123345966236037889301299997974975106335063747661288224131374502681518145712087043764339970140003485418618550938521050398871848089104201970487888580194758598183198796810407184428092817158133470411165004242611241907828431085053181807544454191556979368691968224952219612589336414881130314647859815485007917183922618451845772391510036471342467373604596009503306509423223921835613835662948375114462085306439523344883280147063050880365074608048446734614492907663931493536000080673125561066044415893435354073900244024876256296609840598148702184911890441125857624740822935363085703060428296826009724682444411586840493157278959239527537407502376932923335969162966689945640199597549241375046524047687290499433865747510722736484023589591342910899499331020394762930399482499943603056070826588904023971744256968085118140012811655878771823767099042147048743091297785400289368174602165320936295917010630858757529693590016697875374557483899166008900488141713589562050716649989679725730389365623947527099735368359440496179465276771408152797120711690495892500991903905806125971677768409845919931917489763893411441248581664108669609737989929350084153043332593263710961926522939555503785640660915962617429030364875867916858570577472712709485222470014500898743683935363757618282718433758603042693661309683766059859940423107390856234986342391246504520276229233157382808044059743564246796342890028013967805675167881360446185027635005406607770104556911072774604328957792846929396166488967221845705333704620931470121100089351242275102092685627800637795582581514019153234105121256172570055110481001090275405300197666657600616369564601579616929251748513336442258090515191097573592197917020100873141350794057660515113626901272472213531919683228112299035730030359665416819530678103365675476272113829323012120847448850777333548464247147939258130327457994493245547725419975074342267126024234715722824468348801409305902116506179066267685002153263781409347763047071763365269617096488173381507341466568282714999509629830090312399365150834414498791566523551591626485733228833464972266433028198631641175730434790400461503473748672356130748763870299290850165768804588141261622864653808961507372979941540601761078921085848589337323078972224991497655376705171074822252770755890407448222540659304155915071743497010680607450289508033400768556706629450190341893734868959345576814023076957523509232374556211943689162584444803665694155404967674294651644545138281080636740167454683606569602244185963320326941055966638314691512496109622485548600226793543543553321023378475770028413650669288423929994981679598650669960806242709735806165171907711548472879614178087241577384772623319270760366332910128101719410319279708462310204411400043668761506096586953798067189715381469652083252507716904965413468717461941170951125458342144838837126278740957544318169998374031715798265400060330160595863127104057858922392148163052693849906461048131872351112302688811792103870138769229987412882104255317821004013952613214542801811141320927056747130632430987386388148915960541920825367986694449841123083528680336868621930503009968989603338100409652952116970227831848904689286525368732039841701713131359423450479919063241563906116420591340482545520900409731645995577802378854501469364423073877834826885852423454244458107965268256589036198325499298055637529880324103067936314621242020425772308782148791692816720664403866174004997291666066501809550488354794626036389886365234399060175999746331485012975748344832555522665389981385993319573187991161647421093676100850992397274989621286686320449448921605607776183385326304781493445832290122911958391761606477392387931881625926312514434210967933411267496105679023283529978381612494263823806246007303620723552574013833697321336349080520118177113865792427064322786860031993702263454843410089488529726245233044048893553591298799898870586591132377348633884439723427979898159397855357398063397542137443271979474824540434086102086490764914259205270961239743249156113395376881093303551419331295762897374187704170316320326923951849338523835541414867170755690231315936272225119540980827485047942303015557192663801862050867509439661576871396763549751477814144097996653387882504809886165442125512137673034604098533102037187634162157707387197062423939703734971465106715747694757945745926202226298697514631040454358046788440513482252035474453589087139411047137615131621834323232077123091932074211032357871331731305931686378805128533676799476148233165866798540243702004214874451817342804575453806305842185051659503682258433402101619449291673889561796330161873500602976522712863465015529358498750881506312036000826286216485323412841144056609363937614897045674729374205794893648580330831859544531807466554035826249616297282071992922976184824142049909518694935663712062163241076162366808747473563303391645482636927216235055949575690567293886047543832694543610517243816050858631496146188123562997184399265820707384296978528621434123213721738756895758620098228533371257769189802951198385915222661905142520467250135090995716175218228357322827379993595896908530657294835304358371850940029717374227611942675667560114237680267992636478721303051155447590693567912841544648385709708171552992361540842774736409218578233388852480975262546658997068661781296620558441565754684844481260487515734757883979350981431836761422017504695802496194565329308403596371845297888874494038547334096615246459493028828798957785164777058393686291023434031069647255751600962047907753532987970309585984464867332561235948148214407709889097235483674314144610300716868271989865132868845896436208634247159249308303044726152609613111569434315144803669654659755547763381851544357661508682357057532937975267756372540474015468279044081081833145457181108030674090064620085904978975595915108599813121361899868142133125894920267346458806878893928683340764011283566246206222367917430384785573505776038310646927783129567488086326840068666220919720067938329286876351398421992884012576638824433782041999285879456733552900746779314331599732333511522068349172314896693564710619777207603733625649462225107096350319539942580757431166985496483925220162007392378060806030283297198899547255512806488042962636824737416296173642729102231039837724194162475633702812998200619154224319680928255861155420667363051353708438592151617800410840836508160315847141125516555703377602875089167592669465841841522525330166672536584774723157217539053358657487020350932731582746473074778008701215619983204554798026775651608286118022793792632751770591280687350010915725243194513431777708120356573395403219512564506570167734073898326257208716767092118890201309097824898898464840470642038384707894309443546293302600553529652459145315962998835291963412841613248378318152587175913993019761746802965087179909408444353263141827868515555071903604861299760711508752235569028262814296814748078736297137462393901940404417706990192635707931119051764937220017366804575711497622852808447999922031432064892009548292032059466698405514420299752477205594655107873511971347536010688649782489028761158859955214308865718083317651574372452455219133946384473326523710349337724036042916296982241963880064450016528662912097256297358657984069691924460125680683661486877765241572417391393746059990575335918788464710785250988653577889938425000353636073410824603050655103077647036316150792727743034295328902243695539022325082684414548376239697100652238461568254966249153576018933025654674570674409730088543280544937589390404800779409876907840305946824757738272583513730304279496257730210464831590444873581099288487839665840789005804002667359876602843040942477696382513567180186879085715621635042783349193375129600192499559045380748932426087277848730648976577687550843176470368217561553639697566442931035234918735009396816503823284840762480591190582343465388014002640857025657974044008333303672907752955220584719509497472528270791838959214811941270809649490840491330417993374776293649974146131544357914376433511540066690278219302399377231897383063914952766852678384901086792328753692215154385557154778090549500877806261142923572532603008280026008927214701240355045847961748613988043364758793043886499451695181036945537915947419233391836299561831911032948226221522304117516259073244616869199552489182002578187240928549797105614576140600576066441573458701955544619432842528221529356673724112457926800290203573312839069682291339477083632181037615002124395123915325441826657158941620066502577871336748876306541369735778036713065753524363250137569384613578987042973074876147255180821119855598872077874562251630113566149680606147554584189343440975663745419755810984060457757620317985934339585738359370643390130369347475036564854405969424123272605917825283653243880622182125013677393674820978129351276477999028492876599033346046192334068157431303819473390281935330492050058994305784518778183998239894499210847177414346151280916703243656530585307671641366791448385915438049934385630026021465173136094916462242171658437316216046067357906559496044538619188535331895609931104126920743964276297681436818846761022881095668164287228017575297820281408274333629004009897639140374550114339248756756389592906249342869512888758762313409299995208093030705865311917018176914391601465528878385383573945296055030042612703005550622725519309087366026468298295591733216892157178734677177830600289428487438409524276368567259818386250204978206726201744433650209159308593308853481918573994277210288978270855734380131756641425231749800251732799462308539163681106412938941467519897282675711329569888792993845044542632828180716284253957411851094969727240923908136735757087814753763961100975210240239557480593271577844985390065981494446828900985699476736012276581591444716843565716329669187292768201230901244256060757775782520002131794833314640082640224664350404486916964678092734962161913279904324553298372355458948968877402320791798411962408168732946252655643277016149269056011641619707867692762638878340510065024876990675266275455672458221893122760079659247061734560124944774562183208271587002280895073235815783713822129658313624267773604871966633318487987297078739939472087355091093201709409043114981236707318353813222570396000427160516340779464403141189968968588212635839621938276052597278914212792101543392217719488081780677170286781280240613401041699285543083889067220600797816873227742471404830595188539651578531911837922770747536510779097001536954206367187335968868432258847503458634635243999406731989634188133722059640176491616792384066933037737724232692118087894834941959255865552867508747922356315787343517355821036681706586755294645422454230684010099239850924672571788194217310622580010788748283899093320460837614934287355511526145684633400374477630493399713247773716032585213152992979388205258703558650089309028369692876534048209152269929634002347999810447085746251621801885412786319451911538653900667455316665843662977800690424467200463534871183258183396678183006579245049836112316290636109342451088073374375682325234530853048802727292530703077608845911653322189213818904980076899879823893847485501723931752330233261506888584118059697248809135863275831658892797997544168068170565845528941310785341388486086627660064890307338031122566641411789585784984578673308609181772103556280544211689008475422421156393258579267881954680516749311513431353978547608846377860449552602247872544142591033690928854519996690682224513471007392197304076652153339799328250923990408606416298901436715287682973370044438242831205481642301226162030851784202669278756346188208789878641488122752882519204484981808906295974215564669177190161256392262822972306417802212378732943237255957009087654185908366685405155878064008781984468090274562705058931693411475440702005904122334404028147608655754799639856951074328368399852441299410184517633718464347352362469094848093583426077789051459100783183250819550255431730755371418150084410045038786684301344938428173551099748741306985907502516356858059492565542610847153564539038906094674203258864646389841610567627553706745905265438647721483690949147110607173787154947978768260487922421711713743255781371327326609228801645781341072601140761624405987682683490641552298184307649121906562621607893838510133358423957448770915997487477157708294314766213361413306595418756129710743175317274675016956706274342247409882068266888821560442345217318840907255369237285943812143609956262704294764974145117106953490192677048369073315173515328948999015721843401460162443069503327169689291445487511891212037465218849939521371806748357729102804656609034768612416011244004631554148923127598883513624433190883096155028523960096444737188262292848016270551696601585629289798465767271239853020012877422945362497502972002501365976578566422682456463976620376238602365588427110985227539633557575813703965040510764614150542418084429901345323321498512027134175936971266015046125204539994034958959687960538523911479142196519248635138844856344622606833096121253685981609351104375263844092854053983135435407767182621242882088148611530093529036162225792261471296544934856980537871164782425889390276673091855243686244004163929660710576689887642801957066459291461189475625436827981795119397383991488459955032031302116368646068927246751850874465944666461168631730147917532886207109100830427441144337967145222001970794754218176690574932491328002633955610900086181113400026344448654202185660840114467322563194195346882805442672297377897365020392934992247048970335239968960347312939133335796481289906599677443846331406621928501541020206824953539632064719558582118750936658059549969887313367119728013756666363140517317700469655186653162820352753299839509519142322673690461034708773220258399371984507046356549567823522263942907040180755724387695410597900212616153805696412814734257336941239914408562987896778363192039395861009882129522973633766159036007982825004881452537018241790058459009631754545260443893312579123961018869399136396415396566465997820432241676468644155821307974285433545008250402826034711098432369939758966212950654954504233055169797360442323149950352083944762645480319763362283613849790221682881300328946921373688613002354872329392153244127881601479417694381623484911866310284662063396127638646236704949056578492684440811677741568830796020615319321863624839745788726598511107208334964951057021724911285294534455551553875673475858110304638474746325498814091925813173095777030848053612787981324732677059734521485710474108056635916948589809510763222676999924103922700495623170473963176157925443623550803022146506069008779242611349982445174831411919159499522765660556179310539264270157300673718279574250661985026106035942210494156413818946925549959533574704400883840297253332646879792258928235315995267915429085703143793736990434650980661278700878681285427153639073952204349437832887242245817414987951602646837865974401524459277257248583349352812039012303227856033489912348613569374669942881763991165165903011846621709738149032518617463237310735003080774804356352587807270934637281165756058285628747217349475433883965283590657265165810302147700772303492457883716009598150688681303977621444429036997978831770495753441195745728008152136246639502271958039819346793330501323994542834412353024962682088240446251881360970599547027971355753866167335537762364397746302400235592622649596927031268722671207404209286294175669621223560877988073753396827750736793890218631034111012901629668341805202410687150861081045325087600855182247537166506991045711375361153845975809399396493199214382232086091652999658660824027133583872976652845366836411952623809143708079319488024253529256422223566943962152472889350645149888143804747040522085838489264259596757717857932757427705643021865072875986896554274130870397242371191570299453334193109307625547097258922503652719973591483818950028972580635868766417029783309189463319171542798433907446307445418862507123156603324468460375564513765539635652663595759727636828025656389996168031093651554443558537137977094502683269179746934247587310247980528456796558112685408722277125642515685256924668032254282028770139308797065149349631703001372331013920650241589816101417773794574499605084082152530677426085967190388897602982702005194815358336908794330601175854406806206779154453845394669709607023500114674772730490050978715713334112282876025229125755780740603295546260165648914393912135481087350514020176506851394104298641597705588726679093114745818410786754712182682265127198321778927399565433707480817079925092952335205304423920104269314407102136370055775843485386636346565521214485629052391859766747911410460483999801274129965933631592363743603011245735500691309175848551047317423751994758824362138457807171016066735512514142355269304696974723263136217395495539618734117045256646665814656804358194680982715498887764525691832141280826651103508689930375229449756338117662288349067478536159152607813497075035056496392295700700269522590909904166921344302279699067322199539890976375695520994794074023277557018185729914075589653368821505491195479483659222338388617425047391862105894690592347616821255134983847620106861966905087413581687178568525731318799329448309603067854676829391042259679602350885485744953937643069520040670011670637306391506298780554405053750743109504532669113855766006980502457457699199363505045419003989835957331175518383781516344657268263866734327841668141283577189107861957662552574755159183019885876613076027783167360543851939524915364711569000725406807599072478518240759635645607782127117177819402362302310790851166089233706432216782154316831375275996616704165229738495297146285898828158533764693748196595757710124024919126427526252389070935497874293914181750050035746255961818725726674062342538220102787846962565520646523312006763025570735278808675472397361419313223275784577483944191862384073025589785857636487440473968953099482685477075558120100127738666163686276419976429957023515867791091951241306938879350395727579306679852239546701655275609540024691570745573224279839610437834115982724143032766158982174079154354215102727015852463749661259290219590911467911531448013966534728384928358742287144970778070023409193829420963604182609598282310572410146008850011488040604250484393490367951815937322341679957500658001109865537385144612547076742160462598890130532389904763850669703278650967030857935935335757457798490254156409547941892388208471558871484154018418043743130099073775662257855313808933695578804129878709803306240492873258838279109227949152491159337019758822799075624935259903393006538460805598448929321612182434446987293664811353920566921824844508148030918333674919248673333128620552032008914895785422222775567831300798462555064829821064836339600901840893112746244556765312737770485820971228532468468809558759365509809340432667743832918674766317410496767427956296206754397287523104656752111595179845199287562820908303152515661875496039779450530563648631956839688576242595879282538762074335224701106147698147651115356100382669867204896696112965823679164253164089708166890413692526244856087810881023214959621717336384904396888898568262097389701897126993319719160810710269321210067161888767930224621580613468571817752508111787029258740643708530223898402902591097606367347283780823813361993433291018036680460250897185986087292116507787614327972621871456125734137842719962912554960125020680521681345228764629473633369947059885762441695047841711957372887858734676008204982631802901433250856517511242128392360134870703577666681616154616221966301564831467927395660807903523454807112837493759610123669116644713760105922460810200159199983372431774447555705007845656957667970147345885179595264445986895484221129861233457759306717470937826054864118978534724141773810515111253590054499332157915387987675126585187087824584298281157967319849543990460201425336136053532792793300200419849211011923351267037255325297639634389992424017318136808636632328310390050616199748922478148352410876855886442717036202482831443609257802363599791246346827346189828402208408701628610992357637678089357497930634874973432649774400306789700183833435564866108097043371580025914106224814959354157546932583221952318460904771764864383767592833845976744686726728553288998782920046443916718004998261805520249953829505861487521472890856587164309636078763987891537308923273522130346300769724274733322032005537248097886332121866581217134435056868157173192319779616232459290972369327032600577654766485386250662093216230204247440023778806324416940921188693893336746434635027470072991247597187006991191525964847038359511664796171713841811276326935339618889210211986053811172785695277741178384335362421911331997640685506797439304923148313301287797819015523371706105928316426009548566554299246775780097855119497171901233780125449554278472244913033001474348264738335446528087570294413862667512658441529630722508308675817806886383788344595690346099851520818771666352040808102518016021652972467749333489510434901730232348225140313545503422570194219123091473860681522165061688048762430369620139481228184179757160839316393592325793266912796134132547066279697680971208992916037261141405697612435440686388519260833747251422877344447628095388828383813706160836997173787391027833955815874923780247861324181912200186373297817495185341208218328551182479155745270953204194772682149321816937004061746509211928352394040492592224442195746630213842206895394373962593094102380815174559847192280758932263746319349891072102557396496980771469123999331996308410817274668322373651231618195588487389953129024709486876718383089285756369216774320179115128990438514866656458865518115377866550535514762195742755266868670601245618152299617627960134987088799039342929352371888366753034312121112961837113603036484642227289696726376076671644359179677369042394349722768272671009236812534411709883945475140256266504697901726136309280759298720173100004752180141153480253097429048311403152461633433955463152616854241302869204650474121156570181560574146220527675042437237410760046514096809382858769223492970259179207880887160006371701730358447230992826335099290522644805145162578357115339900978275488207178496350511842131521698168370331285971476048054747309605170264690129441371512348020794155457807224235545469715066908639713926030230436077406114548997149813677735996822936702751685675879084539857413475260677476000508199893899687741261767666703274604803594441081068552698646034952021528722325528077584682712366673282612936061497536002334260405945820996935574679072449084188790595568568731584769845837978531842288022754710656302304626764637140181385676824989981064180869271920553233906864685953827299171942159319493402177352422572588609160454912321404370739855683491578857605465984443368036280402738316519754481122310424989558099252457357913689105870623138103835614511088404092510034537829773591263773303670312312632756794629922826339263750013723146946681618331154014472390874828302127593090823617135113811491636537038245536698405177357516346180618319579755978711864759743298213322587787192104800062293839219875848099563337723109314880493262092798795398645558450163561998514569409786701638000391244070845070144575981323736416200738529147462342868337606899646739453978810160479146800362471403794013539110828823593194575708378719675612197681453578386011339298197618314642651879747715641300645090758593445072893411265839039389055830611656331302996234656873623401563179798404170819910604914171557562800466757155396154839618280892435423943282222676553238024905455187440033731767428190080767584213465824297492054158370589652749426379841541352468137651241480368808534958837756921578118368542857767632091226296904318086427037762860459544728595295616561825361022085162593336093168966599213663439579636848109264999798938995042716376393330821206435708861235494148562488145424480122168555484336813049653055416300875686941511907045387161571587204652807606561861712397406742450302643994774228366212641816293373518580592769252971089149347585355181824421072843007764983871863661782802349616186400994027695139131191668106132878131644150480173604395318256147948497051107545552984536082787868813717407524288907644864897015340638735294480531426291798756004153593623845037800257447470097727078567318822404861079253234398559694216615204653399656564274519850522687509871087868790712001429002642278147778904589002736225918498460164950672748845576515468331195341638166208234348838407981836473805688869603519188498482441668526128087120401006944819783458766507966259517129425964565097229082829934305745650073979869052570128760674471392977239605098436221088294363956634346339711404012669370135166826764917699759047849746640578103150596281836333162025458559463632695976801808321222556513988072681199092451122615701311628905234732266928775218640622838416293786042575449019450925603472234937129043280990295570876887008050148224231403941253138184021128209253965113841546537452262347996503159076670766362876385602976862176922626014210913591284558258818695908160570245028016946104200397069621864222425697442629969089952010455093479921849592043805782535368256716677972554098470222623136514871538901645539591700908128466147747901773006911325662429276362562971571431958382632429775690507006213590245589692254121231307107214586657024159428094726237339769094842447527440294768032741476069021401766925736417611865793931343147838544283917706317478045618862461378293941798937289020454559438526853461475539856800634505982462365329867469543461211637549047523053251350787625995820901337454772477284691752294471796072566139828334821386885898690854488228351038432066972959753686770120679290856221155572091091475383643260769492286337281566241723302091087156011271104423486526884836845034495310757947154599182376901144592570281256054609374969416048431038167771865316936192458764579064806258179804442429120490434977466087814447475230194389578446276284000022305612108400517215004280862502063650644833802133804774383633375747990304658143235576118695906392155916588486490276802635597095323381757430907250076885390799144275056895211143267503465345788045925784295106742927677041797655582065477391408090373823474066760112003410012444593851595828268705710733155751244232456378161519666752887340006790708795751753195596357016325938249848191689691295804700495232357558566980140980776891379415400418832875571849557563859076828069120373434043785103799812384029116069832491434436732303613355245614736799984743736533267099290287030135001063731146205387593197905097546969983404798480848077180097870606456087633611475456644884338619207904346429054130440000171353934119571263683804345483814859963344129706493636874423770255659446674735126370598331065589892929259757209675807549412726648139424040265440370687444571555547064092972716233197677148712671466880528291542528438881174383475721179717160213507320600946019591970648160240953426639688570742999645251436564608293781057023172874828736723472395734467438937411196877182995676428983539675505404362658468407433870204376527323585019787799797532392726507245068514723683245723985548827352857480491317197466086834717153033062056524759402122988524808683333048882582416900999355325539729853210932149931058174690339773154527742230681302049823199938659170992845769641148818842974558613282003945295913643555887700322547351022662306668998285660703615171143651718600933861623987941516568378985163886959232924837326311050534557075017715837655140503381486224449426668475881825222144843305180255143018922801880905944642550314812135956616049426974165487146043317516556829585746198456432321486195825988740932253179983304218817277068009764488046675163994199149203510234535160890106958984187671900298736205777620589774645709701763015733090681771311779213716939758588829596057610282051432126931574240345825885137022787461121632905375925856097539811257966957888838985597052755764506261464349241281766335511143036592792444603805818154095671559634302231228563682861096931431893740032113664958957159387687088544208814036080004968136829828915741531783425666794008834896165637825587290978839090791733943196747295554968011851300552603176111885326901436070227339480841586906779340197556644333796883900707404938491744891623827900256906138762399975531823147256183575495195881700963463440994386125852030537005313857766955395597584278337265720738731889202458121476376193884546810649941156229438473884704181775575500349401062321558100365487085356978024268642545526928802068167451780625969394379371121012125651871952567254986020148583533650074735815116290640896845862369897113755079966491335715333685045292677616235763209460933812897783305526644175911008663581401261058061549145326914907644176298543510017006684971844017710996074641264192284963596963946942506208555747929313710551813429190731731906873222647958898384800502568149359265234810031470171075767591077286949606543806311327045535058045412147830193694313760058050922526489918048472837323318129705277689230551179638885318648494749422978708809346886747700612118272055948133090554300260602167981876865154624957844967613552596924837890538336922625176374012758077502007523309310422731850610786465597710772607170007604941787643117981519548113212444742488128587503291883011069281989268552502277760640468815856578970160738389695531631174626934040037554681012423233364793393538591617744018230794519148767747854311529323720351392081422805549899703061392011412375351175095092746816417854997330014489082954650774429633269733114986319547673825985554759283370340673262848005799738354536425182199947024417264704594401036491090573968537416171401454081998486024632899682691125970378994266312403291809614693648238868614865406177777457133494040511736817269199745475876400914112807381957409040944274248069350566507355668316194796026796313490660989409188187301004336454384150263825372994074197242878053586882583687348631652179534297360194646453666967404331577303990562119851027926525935994226557997478203404555811470722340588721183594451685604763958606924325199990476655503887623756875153220229216647055031067426110567269305099512437541509975595899029811881673699087633376915628666574693784125479511678988144663485337659383985417575660345121545423464579504390083415297273266665434789834829905655160310667346500801999836003093014547826946882766913528389343681940147186276946241900913998916976250180594288190016674528731058826401772095184366765169201854446079431881316513744827056308296779389988889038575006709902512979100712187361672565011340762279952846543851630056495932186548166740565321753463423869587357517617773261032922392226086391959287087132900984598743447131024095317850487407186357240263211880955320882645119691187276950751225167734186920734454909320016964417200421496619312058021414473291876264508049944420758293312485130976192823225136658198483692017142747184819306844517168211414351841262549618122200732734726778021783933705578930567250163219740408265895464621368453927776573706438511701205860935398463503146354766030588775142777908803912687683139391371097550695539448226683254341845623362387285047686114369568887659965421102572270822729775095026429323933980248077635536177974347458317056660653158170043900711976514375929748693961492633022129672169205307533846513577950520785734323815434034279542545396094773276964249678940306825624664128616659513921144576733142213031227523072096586599534051982281311014739354395018742289535558072770587574995122127884157947301794275738755680278923244445284534172663900633662271905258818763964918028188256850168163372525047770018622702091414654246537508478986510089715340948345760281288335421267927675520919381585520276702656909135658114257287084419190223224177197769953297200423736839828554571054092402028682545076162591177747775295678397469930213609565121560751937351264293879366659913108457653233064258593359269752655576417984219683981198230975593089434980360742983172886127563642317686027252998750322665402698338948679377495680574157684063484840957603416704223388908058761535423503332424006041804463088506908697516153364660536540651487283601431873930563612704694356951991535483635555234333772655838030517118938251816929010028847905428853551711841757778086352143357949021752036601393175552309338512580027684874242538039672420050232083141038661136626556558548076433000233659104843127019162581799860883086396611346840376655149259086410279534609293653410914601970560190414880231459516957940486953246088952456468141232784101632128676461402450104499395998873724913266797212385374144949337073257822949622814378122740596556050613652330259187256620004194961748436478324106896279551450472839770499450016842011821450167690366574383961196782902296347160080563553540906907489838585092076738308301866360104444682885688634773368251014145933057176738233465739957892856815258303711159890492773749057147347392708119528017444071669564357604496669998673615164540736119821124287424399032432219749915583077430852418267022975365321527767343567096198944108492860504302014760814769941900349144889700788353147013042147834870879437192810192448179156081133366274754183379650825037675121330486776020936938081600961687458432854220825123467638143112962508662941199227251378567282668257193045835618909186141141852865203016924460470562178825256024015660088334906975699730829891859116176894371428981489880674784192849215046067235266315552640836945972130370100145230166689654612043734974695028655661665280566506661093158988937035695445468649173818795070806970049844805345776933796040235948545124383201674046391425223742760122335402861914945326670916520196235729238030138039155820627291011503151042879474815486949971053437634807629832663900556077862565352039091483376614239861328361813087087328686514856160647113379956114078688262607849711507176628334444112888680540426434467512800531818897535589588951247396823972350030417666285762989082547543387675493944381473970792664591032642088164812139999108598328172128091256070388114679453124402395939933110630705601242432751955057258071718789428088921997040801483873821282319968969984643080418464445914810953598141910108317405566987675031747065316297673635055831927812298893276851922218887572637438584121570481714821439939490755504068353328815357529990837325374010835360926694064935497078564548365409588123301342952993692839745874432813415723967205361896790516562004355085626243780372618857474209747063933359300174780652495534431717283186812570560069728215015117104671598271629919230428863443549678032399569837513189640607036226421369462111972749556231250800377109884147327535855325542363795661096876271282230481924915798863796024851408388666287412739898851207340530996851184101296329535441969047342698171722668722109941169009691060150900858822736719757014568906539266592027040442100905187709116811185516399892508999002029384576895273946126782701407822589833416122295114180087384332979731626600887008344554053759364477721509475724097485984875095075651999850586251093132798731735708681406859710635990796972324132978346975288309332195405133820922642392661656629992057369144991724381528118811365074835848408614989367732469866904430581303223600775323304631710659160552360438661158876158795151282129017897826772079663374085576734950445651003927484776246951327242882566778170295240726118253235931499181499970505072811531867476822404369168269196372763616852438639440542686225022851819096355157294470228196414500010217431293996376801298012523027829148862320611987742926775691380438229289357499151727700090468848494960694255816959438270476823797924200500018432678365021821349634130082286814190850859932846730688103998437726371249140625074241064524529708307484153818621568814396123396919554439211133387662792755932886389870175560707302679542666922485222824321575136220131819523364738290565435631536799752387051299914558083862489942418977998917482505211511977235188514639278583801094587077575986697628823935229204759565436561491543506805430872569304985882008407559890699508156291957147723731657048814976451433266121806983763999243575016446009739837119705301710311147944237069016741082377596112622115658031648940429840012293753989674147372812285419847131670452574314962514413983069420375388872254668866310806196269797410179368288689456233108584987828906232899963903249262537763419587097146166403257838510335165062438191403834637653302502709291578213975953251016087543744489969596367206731763507780815624244108954541085261539845874370859402002762274161157080016225029458501540736959426503971008437812011934370505618023789451673492182938003991864557061306020917648676250040852700671458837382436655838112939822753156906705824354751419843035825027831614530346454169574865704126820960427287485725550640729538116555803810332263879180080460559418709245407009330192073791860153435723625758619269498666113922820973715767555598001496282171702893428349917513350020030802123832158037815863599301274857723655521515377983958548550808979926518230956107826539137406724361967170140203611701214636634667454755990626925862213292528162658982375804843845114073697787949488251644569934015598172287534743444079459408329614957919111844666180595497126488335265460864873656398030459168707480173088810220650110592343533569183252007770817035565405236587269014819173440063881585320973197109967679360108207225095544858995116528786646616422908001574575142211648272297311070025659373082529275265757124242450907660325255458099676389847030848883813640072123884184759495741122321839511330227344077507599424952689288387816594987428177210368147092143934420040422773385773309177218218488369826835930010005710334907013232338142698114486526316985894573930296892272889398148428566303341898132765002203242979455162709625964813754980004809794295426514786701705215396010319387394581974205226972796474149928390578529947245799067787029245835784031331854938946538254181043434461855460736115138368651442471073817959085598874576415829418967497606937198672503747801316127237124154324759182434413708620057659608582631465673715992979515790403661421517077876759784148863078271928578160481421540689121343734935453196949861627102521689112061976030460307891385284912653060871788566423143535834843751217453933553280268736206054875011673703415906360915107178885100368588796865500679748820978504695497370297326890742550789365418211383444385114426787103321179461392113652103392369577184150039916991532827835634729510937689798553894200972345687280034124096451828793726402661656444493833653291180941711185738037851099321334703086813958562624707527107222943242279330754527486029732316542763318470112439069905824904209004156515632702898151230027068939851720634006828799475841499745613868148294009988690477109335932145573229615416240842986517075788876892440957963100410806446043315021910823827908758351255766862021193517730265928221909587148457622312264201278675139133040449656109573127490477553370101726477224235726307888820456146829485610928249803881419965274772369320860208285455377333433298603902669223386888840888962704830543785933187067217024240815280920597608776145124063408936032429893476674802014726343342268050751882532082608775957554654337303608622625121490110250457816266408009612688040057506052221344299387013344781808105600252712867329718840738502806025318557749204383261055193783857115308339173641998410438403806818130858014737580970096149220701729080599994599564858878829568297471838906941816811452196908276595101048945034208788734128223780665154025232578364517930532841661432311862074704047278155989734115582875893695249702936121051927790206209841678261881549590834466252711914432207481557447838646846867121800178106378212031210365522171714807103103195813626553580407057080902604326667248308643134241619655937610526450298661292970725810087825343706053278673451586134014858681792161095395815999140865559526717754281332995183991477819019812956252507069528909005393787981314108791451646320295945995301296164938801108287417411410852229023918762106818464286507753277941775564060755284679108975021977200685938851714350783396066064545558957745407285223238262555847913284214651202283451094335834124285045488530763801602178378605389068617522828001525404780085718593431654777637140863207937053905090992413405552509563683927817345800836955195593042602818624320553314240896872617411676449761246768405696619880022773284322234844014952247157984273823225139740945702614914453901366363184602752749657565455753724715941440936230393836067780556014667888340407467157054482222090575784714459206820817026941539495889655985509602828247771290603787991930461401291232805330467108138434973179660888091239470450070162474490993877202090658826430803858897677805767600302868598669676158692630072047598309701027048036870812915296203386322076969157780838270958487757576149427322983691475499907981376035370864286566455040553492817929267780102918347754753649266790879265248076053200880237952440834229621077116571557312482102387360773869586189877532546976497104143321354872124466932616990678185227160208627829352094416025510581320157670326354421032827568867245969663123691919782223368600790787790919789722701131650582369921873405689768703750753019709225316441564667430369385588581919464927988184318924171124387368598561845961879941509586431519146369129783456263017082980441072277392348972852754263953881400196692574448404106081977385544738685941024652532753156731599365891330300576281822523012250923107440796008756816625967061184248055221130233023267689286694103003845220671942316828175427126475066365660108790154820707759958800227171136142956488468676812925958499323600254321919119357647027269887918021867690180023767848271833606940434446190021063107412385894045687599938013474978357646461135811807506049490615701416329592461710822806122295787635489366810835891000091317213430985242577325018857057427390047787327168133814753061674581227116285998097278955375627599756639251769434922218794292563403156776989253223494020483247806511759740767885535141672274645147023374662222539394810844857445194653616317972501917446722978773688459869597344379293940497563899526134416900799706550654575600868405279368550240912746700847624410379468676076950867400441850719874630247153812428191731710697325930086483540251580104217731627309858623288309765684082207739951375921709747017836096628303179327818935245924047465781171896792806981942604516515624695491878305720929431248751555168131270949383792341796030825644673584646310109062717250913902601957214925509391357045729560749485957170707939762860000922933623761951964475662487716065674709768832719061294117582831814378061893632859563088997530294068898893532132580584040076446045841571764594901605580415404196326812478821186270363712446957194398122945358789141224029488656393121962655451474301348727477461903959557237742002806120052297635673674276914460160470216519291908374880011218913459338895846739346963443612614971963221469442137195361220537559798824358180830177075357459019809924387039976812403472351817851990591408289135481490040747337042585852776408098464882180142037054854164031344020410585447092720678976606667432813534459152345243043906684098299286000181501831539115009156050604383186725560535120192641297965266415413681469078117877127837835254107557285251643781770761539684851693344417495149864831266968976336269177646331496519583531106852781101543181431881962441224255428779820038124298994492738625183286287856597500255059726840966035235655058795308507523176227391902417983064891166058869917694267401639810801600429045291153488062680962329135595789637204637646244525302888924687942901032072928476929263501678115754233897441237373642686442502791242557063042518493870454926320408670070358147723807907739201488495830017220316534636619171134335084018285363017869661384056108240868471478458695377656605683420430845478470058222367485343438865729478616289952372046138261134556177426346324588604707761792589433598942769028941874971361371438178483348671600318588219105297638543453914568865051694453444685577165631808680664100837029205691436459147992995800083882540753945508353883601414474530782689463046096565309787533183582461077790552656257058413735925195346066158789870590800148546961478233093185329997525994736616078054500073309434369070850409123984751547764336185110701054370724742958203683772394091985573909205523696813934557692810794144302329427978400380682773213669398900286330771158784327892505737274533518750502119928750340191829168236843728637698897737836375981751054878358786408446455032824380425297249434577107959618176025787303520504206177804465581777437854775475001820813564485799483333598212150451557245531353049329066834593256226708802759380197929530692656935371729820361678551469443124007019825712710257422140275372956699709448992591582768323547079521236064551511584978454107024697465491279395232773093749031402823389738269362018255654543051863311240047133381645976412904642372805592599056133638907618395260420184452261159174810291179705913251703088998081202552510404184599351506520918655200908189719873797379097819205695160896012268209788213785445188037392047705552440243679289065470932343733310796818513331033814542381239997313716127399526204863043345672859639660031442273323686541127885593258750305214262500711187873317555635689346520572587364556542645272793003481499543808705315173750113219169109099002563839622004516946759922341135467460265331808110446543569823820528576136821384021753011903925631913350657239102442433363540518725687078183746621579427990270649633573642363720790212530684163012032347101633651227853391297197097654949577682630311963359767768244367599553943476114646850339502809908784408252817728424180945452755340693737690022715860836218830556813230124934980962218587707525529032843724648005637845683078914533996430724815538563310393358744830096166685547589373600573152649521849435357805050002063412042526717662265110617037858693781819180533498694501867551442842581401947482688855930946864680907165395666552771267449031833441377039967746856413709105129605719062674434201212256141039129237272755284364225370496880149726898854017743588690667585731699922700558773038907084422424396121466280997410258404308521666804437517615351357297225098841106193763387858576404925735658276103855796038418320167253982352296858449091281189400059710511566957782851761203685998316784157028983328818300811980741258695938882257290496660605035606811323558475302548029782686701828638078797106657162274776748364362183138871919844967078673152691663458482659362154526938498859141222471917197781078631889119717648799530394173249690442344376298502004296809842337686576156734008538813925529838312883804650152214447955973509577505070032179436142390437431189905549818867200740441310467387609889736074225693287981732834267140584555216535522211091934293279635693048419995231061398525788751644203108432845528574806287407207119391531140260269383435114967445168665050015809397524748824409413253816511131368717357511157412404305547493791018048971635274504582757377352719304018176300741469802250165767555991690089226267121312298151254043204847254616122267026668551513926325269264474176901219392271615547973277292809571989623072988485896008040966413344326153767769143078431028236592432029594686532114144993481996477819700162532676245142743186380368156328483513356238866635869558198337098681352376997532478167711061859777079514701925941565327890767299835576692081359278908272402618739605884887887609123813639905498694397301403495712322446087142371666406338625397357962030715983598648055828097911741647166634660019141473736155895537729083881302975439179756356372347748281665971853427515744205756797205113239695078228966300280627540008527566102278372866386184971715186062845863269273921890466184119477232628781100541052607867405265512254175830110333760790932923636437618297083063765565985920128065878151631708022652238225535682219991398243221405665581774794538029878456663276293936074402949240231305011363582852327646355790361902225325249711635814005836009565262164140407003924675624024126444628884977170468140334112327623446844583489170968579225454831775351721241593540537770208855693116466096372412929018829283343552576834961878806783914307290333905222842707053666080462126553105637793256534188407236797483658255224711777106531660174604763016812579474466880725499622184922669522631359048177528032766309137726486216347383274042806630912045213675940157983787730528240149140369479474419864754120250838129905154803704862900077248710190819193121744164894447579133274298255231568952219164812813022686489299319532119244955282441091418513462455666921050751587010780733472558294140805801741747957916163810408893271942056767368625912566884383012367573090345841530496248313117376619212747361094035104987877422348537735685367884187317892259159501696685006066166288316212654427007468639992489227718202097210414490357683313596036087478729797742421980508368486811470608245890747394447962816772078233568458648567388179124778966801787143799143183765132984412561272551100277218050089916924503503300334877824306551430500801069329419041859718508144290720931987850272915117531892976866626861467490887922201399546308349542004378276857576906280973787953385004254913183204328497330330814143755670004824557265749649826544707077085039007153446442457792869108237108297518231775637028871848949706996627233080173772741962916467094557845658288596924063620637510785043068371476924389147792365757820971105018670944485873901407997177293716687286487278419183728877690511024411468509959397664805734459025569261536307483552531399038505512133570604560642423957718573832565183225257604530856494986245165921637483610777140795998607001879488541372426012226275390618050374575765281508839866334187292677898626270736328348204602321700169995771203070266131834706233582829913661547839415776008059689622850769569533113037859377570928724974240908947610527933108825651277944962230729864079793629605447315675350820027042436762623777050664350100363318446428869848550132823210782002809253351868773023564272210485724856383495886657860532311386566960550415288755616027584260808688377508971640433786875465801511672522815188666995304072557396288166103031352940186690694065544150643476891903484861684628612279579627695977627844531338350487284165620731222546644169620098113920569989671191052506820162899049120988798818713815696212511617395318826008635030959511137654369685101243072689275769069941420277668667095394620885319883526732938996541666195270183296043113571831450163182154724248350126569084852180378171900475871510432510597373117690534513263999094042922047638439294176286239770873934130291485734721630212681176312123299210202907184107968527171365249716054198247735082837523702176410721715896962522296820716529526593300252280058203009723993915230655160992653428952298454705945287532864818757941442915934521008112001706299740364616611103595534468839691990992097790836749171092657024328142183681676442091983047292351816225340264829664095889433037155708136736905863335021860734459573510562639421385538992541370383799561450351579687722968855905980837399894781577970536045793312693349762270156528109484980885212629227438463692604368907341757710732947319457743341237073059087718447186113871125835377471056726200073553039127938237556749693031157452708964773128450616786437085456937777423650321715980127803854488406114859308147703429969372265363807453817173897251930133193252533576125325850394117182344493116927554739540511823519041071923767853661924667879783058652644253856650899292360787561070262582153857385326865160621344504271320266216909610432241826291441580356612901519180748224185300164676024978606973880150952659195349370506077393043073647040844342650925756870555630998381134465487018268861957634040005598160027748771645291241688903828360627203022827869977864225115918803261033798098247357093119596125404510627654621397401428541509116813903225878569808781765694557742105879681338591980914080428389742281940605378445470011994882106600912424975273938490626496144494893468857458011964851784913634163546427667357837676840755972468739727354224069156021885692248755839023225666982568888172264443539872776148178748548360835501810269880706119554883436861387701315879004324187303993484873665974377676083033575432379494548521383878437539668754570146833580161973603509250400974762553038178720717157327734594518718923359363893677729948657446613071659993749591338034311756360840178261722300550166657786766678715675995064383029920408870749249526643375046261895845841740544399664444925314195255619495612544846785477115613823291798657073733561202076645814919336088504189172769208582186203983429927288554190585765164966509823229182255940859261766501701559014328091124620583261635473549710669387693963854415933634716412465250821105667048965364541474104580928538698598607755841718634727187633277147697271273547197056946670406205310030613747131256908306418726767113817515810713410865936097379731562528263040080780273376077141113078572638578890422093449142718403783511576158215323678337522741210447344653900008599274065520117589715536549965288109576913604264662852657443443804542846826064180815355725673550573051155540584780536765407217138498022332275619373255689385382793443058864194337093832980865807196266601524754461538746229869211387992724088866218734755637869431215898688872863125736951995742154301503938396567745286063688330988749010908285240865136305352371478509430872493826021006980095938192633740608591794872785460796342934950310213667795286470023513516297115178434223447189934231023514945988705443192079311070953737867733738248649777596447449079614833543523621292665276446344428768880707422160152306131771824984131486386539706514238672459657378553743044424235125743596450313891301987168352235929736730861605399420270806883374773008124209253604015029174681003234926418563085701645297305131560957937081677853437340748833225629220633687845763850943227752564627863222689149221736414242648473173700695689447004355225014160241601485720659290308960341732765143692599762060720855562145263412953585998529048576126757914531471734654821533378015345770078779610345791402899949107178751627017520992022367106014184966995685090334553394792695862101191118073232325338034996428662470111922439480201045660935238782777771180440335416782123313735433284972530759018737661109410919416732857831369175625661583942372269382563594711663371316668471952555610960764427462116867203387231086456675655295473826732909567672729453312365002646914352074499457160057235897312487158414181674545023468952848371634486122812047121154852254003466415321762544282849576985369034113513108449110464123622267453943519164615428402525970928676544268493570775697758226242984528475760872407620812599106273847979424494468970608862961215275046227780506855564647998789223245813091471756375488253850944426470838922042101632977959048384546837313014383008540349013828702677535520357183403224954239714518505456592737276335328582196805940060695819477818783735408343702444367902296824128100934357793476381097750781032644286591929623075955873901192657089839685006082131553349385366194613174170420813528579326616787916049789984398576974644175954000371825378294339186524325429979690440768091288602696555750533784646501028462431456405299154777394636692670743548846738586169057139672372950353586023351390600390296912057426481356559660598827148895085052517153624197021448138863421569779469882761350617082393096574975768144529900729625609993304235112168959859601035059604802473005794135207409940300675069731446429184686862117600576678811062438371539343081766759918128006063510018796328369846558008040821344149217937319395272086376362213497068095528749767748450319179459922461116779153782836473010069092553469028891629275571349561795509526834660949271630633118469047182472770462945799900852455298782670431440771838283083774864653391960568829968702022898262896671463085500946783044249725779169560040500972543949128245532821621664261249520675655892232964247297941648428310607632722401272655840828371631557112281145814436436822669403758328191579377979467270651969539591811756448981950561289771692367017789493197490067149306673475257982645659409122517407653126083813120856301251563442713902882854525202182445450417207487191297433737861026084405133573703986349210281234504253001539358607455604717231015630397218655390843509418090712531878650874989596471051289748212731937472129679368473749727596677918556938849559581508731016436439566917428361803187711582486367582107097821951115671924418656496604893655053208369312291266311277744759662050113827248877411761063606720508853327102426619587267278981442233345831477210723849272916217222210260563697001966789607053702196808498518283367492106225979335510874981613883589064505446181993831295037657215239288246981818615263217509417586047875957159800922622868776317442276741542324208448830847493890338003137012707544691455697573846532393113803444740944881709676666644961035860688224271920187677742754858429757325168475524704826099556119387025683841824682836862900457629793781103052557139517057008836548681482894902426033459012017894989154164847087194725683894424647894806105226363605020497755747561896562777042360131145605696830683552438919082768919544448492273097649334302120333221786336034394240502356613665884177413048036733810239133545607875310388848611287218404915203762031433063199854053538635467681704169031266439806761254529536009483456750908291380881125463994820991443579523907681467273702001810663173818640678142201962523987953556287180077992315270588480150635646184302901384129600057891939992583645613254276378389347047896825961868300926848876037811860942235935303732341740447173400113502877981380492724184063432253977724219372140341503436244263027802447715475542309129873012985708383087921411377506901854070241776133081854483903402684913676330417695269471659689783073367145125032932525252499407765447527480298065127643101896866124294819799935222329337869571740008046519082065270733264696762246413929670319896419679456106973621494084058833351446005094826702494547642238111464852657651537240487399828802137881179386971455569608613513022877179747220701092289417206766758109141498620767637835727744677166464090880797724739054248179631794779871503421387380313084034904124542410682837383189157180003302217479047936219821053752153454861294041358702166278106637418641525108994934096354679926789657077861490623555692275272583507756759587510208016253461326425651789867999448331199492478422897100934025254200875170601914570367308903009919917091784119605590816221034612562201608043016135660340939614492817350307261269433874695943940009235813364905538376023293264313310334957008949978704485302132266310022702578780999284119350351217201719340801817931635971203445127143915407221250481187310248634435474334516503175276709205868822977077072876368945390462034831661663586082456145326294103414269220511676814770955622993137890259215782402677155478715002737366627508277125296690531095215277346132733369427033140950437734585101750365015264118002714630906600827706713892887396737392258284525435562168177769886767057501291348731728282539030539892811592657509519391157795142926303568958062807258039791667198195844369357906781902588272497701883227850323856684816830817212805318959814191184208900628141270277325085810937362151675448169160724757953811000867850754271596368165081854505871375603407819199785793426999675733600272435445289898160396864357593018214987000331851873980513494708203076359665906643814224223119238069246748351764468153015485237735064849049704566243579793484055035373594736022084110268993866520655873515504148810955289151285005208780547406071098028015492834351877707691161048228389784076833503326704123355517438944519314226810190118129769517746965359550699403277377620848028099994143574638767853661063174789795902906452154480541494900498450919306949305655725684262549499605372579199348187506540402535622868307199270252019863662538249657345727341953016120877034960428691575223508444885692728925382536023831506509664639546645320283070474635579547778131034866702341805198545701588585198929717947465988477813209821121965954001049457687495907272813627040419946190579768704117065108012910745823827668447063388441370570469276741071769933542194270720277613457384535917936577464349727481838304225697821055386108235321377953918741914265003939684292663590616705032174750570701785054799559166642120438445637607367899632487938994008537177406316979636098707494210386772747203868132958356433863331075840561745789331879568627365441307782889568320108474521728320198193451695225031001222154660477497425849228096047542681083870092448397872197615817874519694853001206403456078422998245249923339987701124898963273656117978137114776704793797223634992846629698586529351180692145659080625833093316232062024212580486398065097503545550411445849375164164924661274246171032474817667230236788317762291582647625649781724677276256320976898415163536236182255008146654518433956883046010415092444380341604082172727281918640676221691897538320145608507063723343525324659914237937303706934419190879304865442526214412222773932284200693924109878507719513547410488376754676900775284973474004812294164344914208423956360544884625731366577932082450084379984544856876996915108247920792551426999963261005644337701223668008727812891315988449758239226322216261831239070357163735036379942658125786713326943805870795035614404536742436789579603286382304094776760106204672390428038155531543738574237185031386746579159689770584654526894406462431633768000895295938064234713170591639418629648517593783925396068216069636600248956271342186511664598293444793333887067757763686105802184935231720974014766984272321846305881143395284004481055242845094494045524389758025397197679517839225117700740074651884621160684936850925319485352971608433825574467157304591646985133669898984245745555846645327352118680553855344756832978077934304859210507923474653668285975164386361336141556420995349365526056557490332879182230948140877685296011943341972523858826938021713300891423863141988668556977170040503929098577792122266890287442165487176746441104142549541918700793068553179205643477566597708629146060438211527895288629044378973305366765837292963077176286135549746009017183258727508409698312281781856482883334880416188822507268102500557627544483881472425767902968579574001471230502569946796841036189151593141663411503766718429266983253051114590558778156220372488405224409722685373457853438050146260197147608327813579727296625754929459116432555541411628321094192507874206897507856861763637035520113500202237759865867246717924788195798922869405261502805458304398098004565718206575380975414029780195911970246923330321821622796766406378181072376441168698152429024820606548870005523824105390978042545988866170547239482932515962910254302940845151376393517684212113035708269731067186358871815309020278669261598223737318495021998064583771208949984747528357938593328150334797027268165840157030609217996014635248503715350858005815630093439262462726465717777092016098933422081895309826584730463998186384475441971692675914796420140422184869166077086296887335680529778631760079528601569510302648329257255722122534977078268304760021416838524524958715116644152898310747126911816193564590773016294476916976012978429547960049618823372102828031079529950393508071608554399416375359055350048386577625895074664695223054204513073165528870283759494848029521599876097828064767442807660651581450636906284566257495843949002053758555968592338501916244348255552812779974140122490399623233147787070968939033528998316761893327052132261088852260790979546206573181278548156779247494354233416069562070738731399044184241848229387376096196562891291393859922514011674142657910681664503189593308175215080772596257453017871085275743764524351893235670737313872262845189750236892800110724789240772676560929830459491859674729682817113884925527177556007695571567575831001935002258982781375079603401652539541821684630837919435053576783619274109649454351646455734809263080019145156848885682011414163460475757092944643003877650750955040292629321992702645796752588490545914017685413872948054847643351590348839180847839434831834403152588269505175512578776712790902248110237813081889274383560870763872613983939097261172112036031725052512606385971208812709108115305978522390031612838106221442174759806023446548672756939277673259849008102528035529051977081196216279119827900461313073684183445148427525725858328332682723931884042090022150809174488403035913225210103679262703012906746633554356009810480163588109385624588469860335818485809331520719454516424893346355859761625921699241400773223089192617167893140007903007344013932331676436746270138459690918711756370548132380675261101829413476506783304835712173350411459804218459213727294395017107346206628859535830749720256107801573770894625293495201678726522589838473247882599429046083276332996729772149264810293025137252941578077239477582434678101798628818478428056659771753353478126655702440082591277916371490625831583780871268960173266025185727616647145651998218527786939083066442397080258349885799424137736105410143584744096346577342529658833606072069775518223354025496284008491754769350965552300650828430409521537344108618733895383639734245728316887132163108323399618640628660017569799358954508361969164154102871171553942172314982988687531942690908919347460700350695768662579893537569542573002467863373154501040376903378532217974114402596880803936566131484833210882806562551227303837895747546228988406376367683043460751840217333832137597060175121490947286983266369901586621268425719950264309123253710359479236273705835359781295407627030158258218098761472622566380105181770902918076818484580496487784447366389343154568737539643866047837480215276075183747559827962090021113715782982048560189585482032684466335444067500770000744932418816694266050223621553182626167921461509849415306961229779214333577299384041731309629017300619748324960028113391682011925288235736116167846653550896425453255902074618102428341751912142760962185711272184450707982858264523641980028839983763965153292814344177244939808715322201934748904965999990572760279810139033767172095883571093553385323895516652379248508847423266465523456872042694267638335148584797581641175648914629134565086109507753212112829666751380154356309586201565816529972560614155693680151020275965287077911005258260469941651660287275598055777191616033162628929468932356122597492141824020637765612900410233193113823756815981164466317739454623221821137881311299199477156275194226677861321095186800088569561788934084877187007440199610984652633705801102492578649011256196366870880948233832144879515787042970299137147988586203607579652344694035263959288816657768836927416771102469996779904767411201777394832441117129508675378294089393520490229720202545983285993197295179640075207451833066639876211985234514713627354437966281241709561761202777977502955989765837815290290262499172219026459163113325064048142045390058436570223803015088197056375401696865654496702380639698476953852292947088866066998938348533698396111081877410479492861331530247864872497399742782557943671947985723181885819211666249900777174943364586575193261038246553642354803460623722646067641691047238273139355056024549496618826817996439900876558734456431178345848968496073477985316832273720677798100663005101552421018988432727787785233445886324056822198569149555466310906917363986551272078651434676414673524494491688658404818590366248109671889991304280444046506219049895842152086096346792126335487968733528064719919685919761304767656574210622265027609361849010538745136001233678442166275152974528195337567047509535660458992092389542878582701545775067642989828789188981856350404968989548182200292399280563799502743828752087272803795359292173870966401489125002919025189275247398758048793348675238910970713565305515270048640263228459861987106414777441826089154982740763320389290562076265754694233324849617785293365917244235796083043291549496663156332206443129350561861319006979625446043320394177141209749154954260116121033699366109740450876548970517549962012735605755030866776196042903973324414326556261058908985518986812619592641389923555060635712197148675165237793321600951849702467835706396374496572382303745780437978436879835918083771265782185340787139610017918802868640155357471225288943858380087064319121248003806271845571646250423485422923964456105209117804568510308489951878263134231261542499362087833819348767624768553412231080014361284133681421043550981770397491175737479133937820517143009861274257417118368064554066977041817143963232754791058932014552989958244406821477927904730081856095094667658236220365590214366653799345103543546450625579989319060106719703336394926906085465583733693718279146076656917939964277402711107266574169793449843183536305348963763679571161226582041242262458161212419387571279308525242890485390272153212074591945954613469618543422206490476259467453725894086007330062510425813030754171639143271851731066042156083870316592033549444321923951780758073029454326865994599457668318800695821545034058868008469735731524021317475480620726425561659028182560981142882456566296256255925080180992213432747792293741990513862090682850924015162039269778504074385393741943815699208719044547694157970059517815745535623004451776359740647720756164892724763208735464334657624402300243220722081813640943119742771005009760772964655531429311838532044372043943455194792790476208508779969548011445882015427712084748742992557189698221305664858231079277773361249778014220724480268107516286442610990864511803314270306640748489587216606985196474406934238623818034013582557316767966888236853610461794509985006905163661198846194260812681055385412308776564452029275545289797074633997888820039910701000685829435128565626691968584791754399721701188641812775467467928146272573852531845188865834652593483261037070057539079283037617912553325541674310165282971531219724727907676368477608155333873075310483680824113369137632079993162015611958680079380992691324905798546875790119654325333865592651648654053573729086251711802435564172782322483808111411661688493948666547526300505349742371883467303411188808714908503428432917902926026032467653458486794250332868070197855766392058070004401445621188660480778988647633346876057316917057596239876469674786512588465088555303469207769153501189214089731362609373968188425450347727691504845415258443916792596042282950781482366383000505731073162975483472813203016574062771683026823068933142464257512169185654110153871684854218123106451983062756587520671902502348625370150359977031733650041122732548793306433637732201233440393261977732138792238493887652390087428159340545542406668570559426246758838579092675874075962554935205900844900366483414242170130071861116704250541171532540736217336755105815899245825794464480591132876063786444080896825989037913451493177244644373973863872480560771139421824099363711244265370299781308118413766234348437039720814726955303527540799993352436769293996952935949772382820754508720125468804693417589495339863363294860582264767356697890563513443838766379537633941465536687033680342427373989285234034246264083795566316957872012246633042366055224446478973809880114255001678240419952133850437294054133863803046823393748322579519255701877336973382589805807115413434678139791741530429261677469627358135448704121962186743721323358516378865297095050439130279429834707786625954095699940116219784322230498094795686485140626756599923943105751618139895716540998094063644829332414564418667029403515629324001871237988656682443667663647729854078984561526489668818573245241744074354723550759217359560705206886479732253880979949112261476078356540782065042508214394528093157320813501616140595348671043188424055972841449231709591232261337524942240607157144886101880835648334584643109467784078175680250040556139026192512964148774670974446421724009465012374936288859143883751095895062021204761738710804364419756803279786554144853113402331779033844605898615506394194912485028504574096737880300677475131263961680139322782543910534563888177632426577127952203969091858303964673178066222827630470477420962731675196377997184947894496355265178789012477642364136166107204081534347507841869831135696708420852640030473418626533726179668307883794250033485575775321134278096412762130916687183570313973973956095973872905605406439792000024051728677432181526550731868540758128733644243807541570753868597080543154105880814803862078931892578106799651904240399240087473476025435576287254176187801072827861592297534749394922260409742133066232781457558376786297194314461668226223953494529202035951597205431132005280190118748130854523876052798940570669120325183181848532388425738088512233912034001478153740717939420350482703579846077059610564325012906759526181733718751143669597473773133376402851581759906179310896362741677297111594335448264306961675543190659847716751312336081077672329727599433519309267537523686157870140766459613966581244162250465362416252447068070869039263034908174441701085777232001140587274333305942090527468955084387067616790232813201303470317254634358677472913780774337540236014236133426952404762298023082695494377302644508309040890556111339183139266477414121299656972696550152818663001186083941611036729766927997045066575350225216421428857115811008910119298141943077463283768565214913320337090486722295346617682026783649987566643992427409516437536017160848119206919497539116289363863223964080442811543971776850688395604334019184581603856164168810427675883199802998860195980393192617127082783574975849628348332109464013182998759857906650495273821567062579794722290747254592013323260664418992694847446670190407433531046549114989359443032424293826726775591662521546653078264907067704497676009353909285373015377652162207562882818556450254508725799333321137980037225214178695235049719282102611584534724981569273321205237384565263160738774864912535933216522396823378673100697278316443622603811379093020816169376885141091456891477785481326418797812011410443460043530860424179594938741331002825610500309428017290842892607828598652185466852156284775018201839259481706324965449109024829324826753661498393873176556737287693808189139551850189487335726591608082260450510144766238898657490068486525778129526953187608635455243351714148021883249674813212045966695537659600164055491070549687752519367830342054715964379139510833262200704856964660540199847097087360322117491094489359980178424451626945986945337365692837912726731381192839723477059788503866505918306010159046852442479401770779370246731808934373345776752400527594279214153922770918939403080949863668958270519678425990790970950775156181405394759750596092514882887433516824756206363742823908063827546833531911836764072241039135280754609510803308559387429262751328714115902715380377499606089364097639538946461928044739108326488596819431927349917431897766339259726548532500177435919115531452855467661098258421398820193676052716448161688966077735442296937761855927529346607293384863085683415481331534194370449278228690221747007658480242023045847466339154181941192662820484925299407230417657161851472636432220673833418384677152474430352152600945110148657883847389824401119735486993320541489235451393568284626141971114622291888049821354145489825356670090078038479878832287847587246000861181154869473350381654756596516849251726571911103523000766830406068475044378824359988143961603722153973724751184544734135109933335761344474450767682736143443151133343715136652615694175459262512602664106824121548042133653728896888948663214296596114424032753805119632756567844798434567322460942432564029078332943108418794096334229502701258794562466925780236461704739712110817299764337991721289431750674033226628123516541003357343049226058654061074855590157130443812116637727139697667165862364383709778426953314073413266467778501463574088517344678860060080705424862699558912441827860979688212953863678673306138581982114595624114034915291599721118795357143891780601798366854881746185133643186071697414794127659246568405600951090091332008912997799892670195442640901610883668905280573957393238743600019152746722717727811350075404613125110765900727294870465901001227512101904100488838487963371975581959386898373961198060920424056499238117468008802243496186054091099450851338459756994651463189371193912625960325947397570526468948536508219753538988304367188922525674454944847395074105614409399866659727132922652327599412836630349748059898680247933853361721554217520824108690260231560524830304081791229641789894090578812579009837978887546544382248962105401672124250433189127243971990759898745028599778555006945344424629123331367541320873248337384137491095023624349141900336506000527521900302446620923616897527233314744439554364061038000421413640871190189766524983290258291063872901224570956216343293948941991395198780462385812076826667287726975960947834782363238533467601256071716770798434985004329196797552315196924063910512272253599408979627129153944527144779011092584484018857875175082291651783396405119867561139024482005975416666274201946527586189908233573078246774107854930001959692928256707528867191645766946494412135617674280457862410510244739662248102993662817686579398787101991769004750562955911873594646812664679458764439355368441724194816492576212753708639822561047965027729861913227603884853360804323174394144517963134813588212618106292323629610196289360361723319091994682929289214482648437058049356118093270462051603621324429934997792210984485127198365888203983547572715395184965553102612566511317850404937639310884188623661899750531651251625411164943073578481075294940431332697601556398840253479782392462936130834035929706834926847597784763073877910997887631770907665580116146894585320543148804513244603602329303618949773580535084692439821596833880955483077723046726068945494481751234712319424153845126034244848785836529135672138015499103993219721180279938510210557308958378193987026363957464549533882748023163359023429752812763252559380959224614427352366532988927299014566823051282876453723605044387454574290205316719914421332572004471030545113229907163407836231649204143683279782540370663423560035584259243571368994457404290721559175912317683756728992245096455180817980109004883059517162720363223499037994146116617586659974735455277007286471528009605976369330566131638528642116034722960768268977247479690142404349863576136341681173267320462680629563284257301095688238936164600262814650459894357663260695846778269270519046838834742802186658055638094039423854045340163028632214480952946824012033572304474636141318481537939425777232056334601540531145610419720797561176651471172295829763865599887436507343852035981504183585084453698992148980581764191982498540264071265165351401269122540182185705384573959054817459143255516023675580100036431417889570382122225112015399415980354675930255685266724721930967993446030230465172098458012618538915430520960325580084535609495456818582082693557997988650384905399357262844942505875633460802127378258907741464824277180851469768028217432262284134778770059526541781085066584317571883870549911701764677561308726062243562410401893948505160461532162254971319315173509074539883967275248048044964724544850939294619635340675812078918989381437154902403081153804760510742088921889558939176389095434540348234801980448829074489177850166144914125069582953514560598875045689864751889000266618326981400543842098405926458079585194675583845794813408748554225447477489704692844151202911248771345444169053178434444024450974540660221940484281871430312370572074300183146896758521023687779979069959458577590080971801834225212649253538318429295116413758813202980752748171419167972780491104050410699341319461180312774620456400840809766945639767889858548733470094103557807846818911679675624116255875722754012225383241928319292691181610724070152776612077824709041621988886549740271185497880732370389029977961108868536398807821313625423037705087412890508967191371902477152488577091612571972889837796303222148463831177881753201659417561910758115006932678767551793531533320240781878044797499027157041482492239781633828618972085641351701883910584481094959960609016397580466789161848702514621635988803093749091491244879210606611087494327624011085514690764420823038695718242874724921415486635312189659163866851044891816315387651033970908533755503217245862699857516393320208518232879455132727383698474995243492189925572301532277183018495112738695056051012438088759659513589148597104532565934786065704069600484157205696559760989481000017584268146121709955648170385851590577587059604790353660134717599997224134897110765525810188263654249537635464524592541745681949458503218879138898172189770328765330830490508786074997233202731842933800701883395227530419983796205770936874593949280474900446792919994815204038488296391173119078630320517580341314477623878007019966186374796532608615233434367922301025987118263429872378623805724897404230635275025363314674857711586394761783242916439352158610762854309474357130425651501906972543245178775347192221501274762640687011809993221469820830824904144363636661335637221897256808873964856299837920906562377741512148171553934418999820360949025384664821264274724331122151518999488215229316369391553634724563909045170159666792889958526344194883756206918113447669241983334682117693815915954418286727394899624021992270445625297235366097097691270910708495941953893071922139903437423186462355240728565883682758758196122067241767056325920875667239567744039768249328542360766199819451599755424454637049273030927826159959771096749375375301505543825652310010739310638382614454531073875072256704790717008001232987291853543502104241546494882315594967738075162107970422000684491319078236316755056782314733136206599522565837020200235612411774749781436809804411544172753346990759636858802109548273347591319869596893391571249895641795357353375447827609847688333078831961882632862808614442504581342699259859055916709608043922078529197042410667747125331096934787951563404581277683457338682632282999278566844901132615531117066309264188077053956515843599351700129437391004383806202591080000025665990696453072485828248201761837408436413460836398020492702158366990154000089134228502560840635616131746807083064890177743191933033564901740542617119898098205830334162856595607260820458366451576518489493579837506105090622600057184693700334105844595874609078208597312249118866261308534266863465018238702006323978164491464773080231502171443205151905773344960969083123589554039371385006592633802803752626556202837178525677817067420917527814284413437542145873401205335237342482196576006595276459820543857926506633167457888607677375458574933068080392355102338080343169137525754870978729136889934901288270997888091802469431800336726630281945913654103529142395363456295502142884923615676327486346828077256705601765187398661081006451854595074268698064548586780820789954396800637844182409381847050284351598738042066947447909196904903442923938516671251701508621719415421673133497637449575181344838872820659393372431952814692604298654499322832219753572326892327841014339690042043924903831465473457659096679440666755523459852481865736420989055894038293315010956245314412274724517233246093062668231134405145462847006666335908184927329416517230369488898402316542467864827534948399159118849199172748177927320497130058388316848656121987399954005142803901474107656634250753429281830505234276092678330942767690454340373462753405814031768386304143242955261986128883568150683939543132140312674499566597744067782023454135054190165668235078589050649808137574752496167592415608336989056955137320851603534044316808064247024211844087862047992506893602614868644967082526419416656109827885097002552645142205376214044192941592755043738366735706606171672095249732198607599479212096956090170433060466390622526484563767653022081160652364461622773676889317307894700113163526782305248563104133480100327750271855592885802396206722179108504544547997494763703172108502216492181137793231683817921075257134564886787951253873869496807813134926293108521310380300596296973701792843314806531796635527889612211818577414440885459847536931231956983416309383731222857115025009831099456527402645457258166224990823871715467358069573572828567853292166040585148615944758523645279949377382234677670380612158227080634932717904023281076473225830611547979787456947838171958358396234619273790301652009803153304288642659926378052808875047895510472926005963288752410028306681737424580945203997294632974220363172385422764256770757210891255463866304945300461510156219070239931507306864188795638899302508765760830564996400038410857488701129659320741566856265482627127336986351954009064295506333797821157261711722598923626359123301143423322896418871327171712337323518788916835570347505673441646279198650724686789073153148584813771339475618451704660047072082069247046855958879953863871116594368139183976118253519905437494787025645337134375264662082717803631007038977487434095470639073346506753180622566653411986892856264818973232843363496527180134927644999594224100989218520341343060999879178328408257786840081890028053569107194636077129650147021497395722228673095589362538861023251363847478873853323023793396425987569020496178483429451349171996913991715854790535559671230790771907530948790688288584378426691954093369006022889599761483534069828511013153906969747570791945469719931240102888924865451768660547932543375177938615154058115069397910031730624567357379692604909419066840436536696050728817329857860985956748313838122349658814045785511204142769752552238673364902354091114157543684707356345973254816808103976714261571382107351738387731840855817034033945485645221664822581564081753189385874333926388532533588198214700362471403870071354854234310588021061573800685572493401861184384227177143992852243870844979376522988729853923921840013842022200439350441529124145684949642718709473441168730519217326101403587639506504487027345112168763811229719277085128429110128832286958720023686227760295804402926224906503022607840543676054162933030672443019132865867735509747037552873075348926447388834690527177543529734037649633231316903718266327388301730245833962292822916204287010141193646244119279788564694968121054798562156120986115054827867738915121876315982148576236697445999869221539164762376111639509105538520082859865718687493489087960501860258826385136693305386408746379687477931506843731632499292338249572701671453577078872491607798793071785656018096667118286286127890970240956112950047287448824177750031246714319444727509905087115979843377239268804836758804865051665485483992869712738088877554959993826541447495272540401709875919370717759720203922698817253682479243036789669652084673040458610451613122643178655704827627334433783611635380400822949783963569538242165260615129729895169911654890878951300167553459930601431565233414437350854119982035164367175631689423281019970154337767417566732932573502339222317242661954412469100336831286623202304853326194218824070145403567070520357866073293395283527236571266565307955699331120432273290963758159971923991950964743872456340387397868308366562508845346653644997182202237994652211566832987952214950727696138113085191988481598418618362085890474912394652560991676217782385287045745429659121571137728282299140368009983912604497817084906795689887929267664938895785891483059433623649035049878615237940457651937973317665902235161760138307032409831125100564204472988971937813749170779623676242229022037418295568116062988362583079644236163357656868840938456212406095665397187668888648773107333645644212208895403320385119261891610436341342188400236941026044648911490962885919213134259824643984553086611125315341559329401314933177587341866100127203608892012276152418690136337247603361476375389164472583461210397783407081214058373976978642227373922823458755684156033913582028984880317379245306729442838531648647875138660785994645413482552700407387089650373363256009810172520648413460782728364336625741291841608155538542656232475054640723766002149789659225415967504913278017251874428988788128400091486647098603281551287494092292818447361412695135558961354469793142968631368035163883032186054729753846412543541872965874218236123364490570739955264620944813803802377344762060389252887517666615412122428108944174107165149440494935596433363376960459313930691433309907535794509529951948774205759541269188892063519347342863716199261919490555606083828304877143300816564630790811802415929098386577453377939372937870999043413312408650956880356489440200376430160804011422831416147446052978256498629735679125599426294211065793615224610549908432992264148497210929471319885579076536260634253592363426336019131690675906544364566212899261804074013579313815414306492802567412437539862216394942406832569208463566663315339692836675037288599746725138981899963294072089429239635329310356643898990026523819815684498628723576770707751913166334767692574493067856347184528032292322220703083150639795984979878234764800973968792566204129711004466858551956792248395381885639698116949741906221853556700356566148564259236246662492285488680821117556577262889442033283619814608077669467435357372978346081371758509043617299684326914194584735125298241250255714684026303659327938528493126972529310110859331129975024089444338717185752827570304238845803606494324236860628684647119859596230844041986601962491133530010959369040400734825039993423492939209947762380183356701586831103795255787044466804771015940934924551121345654975825334294913664593540072473884458264339455180639345107675312960688633248527073283440475323673317394337564065587772036097913492426283862161347802363711286966568962202179593420472699950935969120491409460585635947280683838308584071872073376489555418966942013738247960047534509440932410640325333783696994534207203465541382682577522272152895543973376527835201552142621469060083079098576427663193546759946474110498493191824041232299950571665998847021963713047808355007718596992929308761640637005523140369140258853025706991735588247688972675157536580917118283687743064141276680549412227938981260857084810769279288772795458243674700706028129258871533479060239697715618462644234881524730702476658415094048734391345132034811149140937463179950311303748191641957556177434890276748599673828996060554953693832660265546312890183084666610850120985226496586951548880842749669121405429252627272743660602997384626229860216937127972839943566112215921463606767419765291553760579728078892425551148500215506897223685044463259204665898827497889348308939381613892130497897962139087456178278067530853200077054153772304093442623291106492017730181825585817535481243499799279929327092975323775339575455325747957032117700671094355789601087576340756742091009836219123671659325528869853052133626395951364147111860056168106354102345147132576208875727063269897608127589078668536716096485903734274265549614921210135619928342221688732198280961143783120934982657864326473521430786393108900576902356136995215134921976480874482379035810805035848482037040466811450760539411289451272705763682210587818563382227539850457446878490349077471462441707668310169026993173281523186311721454406970812992990579769804702734657879029579187344801590979779658774242852125887420639164633791464377891313502281855994450501143016741061754898785295167268205777677292773888557358459149928940553697604160887592048494292705581813599417000781252295555151378558898066808933440132565306240230605263689831280405643302325024448707645950949692703329093332323484593377392923732272968519323583949574157082192444801320985283925598635743739532563196530378693354870920474795418226227289566652350137943895022170383830905326846242891587242515719442039709126053385162422689856883523761344687873217119963694356143796012361215373239266409962554254517084510493096134004829295359737766671374343839706627940006425659344746659944164828914059897191314605495857717531041765782819960012839540886422251778454926536889234560116698467564410163263623838041095669885897365865996115236453372017273125646123273787612879563281861237268602866802811797243908420297769056317464296467649816465536033802790268481250260310697580665746695455937468435925708534179738939324122399636507209897377445108809343254684055934197862607806238619565520595855755670962240680080327203666078597796939761349534792004059240241209737621721000504812132407207599469264824074977894746085939569870287663396675815464694611104892909619253615239055927235944105953270069576439629118444553148773459324553708946173916779997452459317151020312956258385018651770857572723156117059091849695791558911050126896002855567736774847120170257830104079829732392842386045430225871663502191167565443185367330777813072970065387212337964558312661961922842611163761612138033244729808606351663577795673372486821310348731304175844780570827107560904054119358485953097868267284522063375858760332517469570575835651869395433739858042702402836659941364785228025998134485714982097145499762480839190917279343017999146375454875456169081405150976243006701123116831580930012791543768474775864730554133796499760197299690321255672109356321072467562494893682897426198029519477486392201093779404107068159167204464767255931534254513421618532929370664661999788773414338056361371625333763415462078494010470724980340720654361262511816799918613364385783305960130465257955361232173140995218161998394559399430616552250695073482540263440548322901831719972852241995716039600264966692493870501430843254901806967948699486415322089959069213408180998981558000610053785638672784799223942955412713006165025618099953596571492220985492002074153964004632050165479991349404682831724619184885808782380976026315309710964658295650680925753468264770082231735285889228783234287781778433193191791711300875129085597870056775444988388593482458150285806489962988550004465576402956396184382510914042433456076753099396230738240008058683711098316180266549674929759155802446459191913042135163114287128732563429720542760303608722253594691067008992470689998802290266487862927029780682139001733843642343805468419426314192083357228277825187497992610075754647770567199126304939387270127660018338549860810390819583833667648381748378559227824060013723351960493783639256786673582477339154530649395163840294269335771853328830853279745058484304876103091995435789405009827310299725625679957574570128825338707710540467336264368137072849893031643795943721885294149942548450918578660338980939144766690112384494659483077814830604614589108699011570841421842507047393520357245833073259519393842637713015563837501900858939337755549998683099442227128618148622524952471072372379222269164028658430299525222247669186729080871581730143491290814582959022274776589001602174924619052819161731106803592668876339679837380350406498662754685534153741935727971334065854580279917722395365417890802584334276376099492206776084749120305071498366458279906769207934466860986672726093608776531616787128913168725175294488314475371147767293411890498155284408540880617882790275850516450479241510197918478708075622347050766248017420039055684374887006568583192023190802924505725225277594294493860428977167681653436768303794056378715780813078140107058705544716315050796562579178705953156478345580942313146580028895301935668128163148200845810731958928043848541359701644845128692799382958239396053776848273642015203614002782447954457912268669384576166145716158708256388850616421729110953641664607946624119306927968084958250834898945585536110159123851197613941604264678480170773245039550199340015670690687569195304200553519075626961492472409281694397052964896304581854048542260112482615919271519658815252439493437684685682330711760739526568967540786781572810301281277746348819293945620433122696722335073315117291395361646204459878807804280570895224177238333110428408262842694870766949493365535774705011975531181531880416498807943503646047305538199672801164608679098372277745385630133125649834101975950095032258101399121506382578470926229353295119042127247336972694710098657383422118373387688689329954535710994225948084688417848932039982484932768038945527340759705607093759175352643596498472679972643738023887546647443502231863728681859075490034708192373225482432525776199457124783745242279985270934647418895614437688364522610472411154399266191394212869708731860260799984365159365867768455460117292961906802799253264194403984686381528548391684885640287714641640300003729854731642307374328598181535248724566708289377866470258878359129845720762298869280443600913805478978442423812583122709586520837013745410454986050452265746426623044457062002185951979275240180517578146392437734965377563030371392367833108222318573533936521723341120225129852221885256419496134247980292977802447755289201431750581310902708344055996350878290903510718154248628475686654357240264961100598232045352176135909611597899128458391838923004357065485567747300096815934905404601166182103506812421219553173514057202308830820855701219830127526619706747729636345370094006484469794849407884799106654339858633163436375280858270805739216313492900034333303502308595826983517254093109942357897530905907079983148194474467298280979355346775102101144003947157841809637900261270535363937854599613597344734715507479813341565273757855473926344530873803935036064033171232674947816243682119566800918375081517787328859513419253511404298426564423824745462990610557742122817413393851843065575422577031318406551149962566552714213842352999436559489675527425278583922397783297809111001592814035505470257331766713759607189305328419436554688410107953477016903292329578647243670595332128262404627901133953172302493240503028685365891598560032137349430125821846094793143558879500058711919938250005860219827197417491419554242149070529516866042508233388821435101451700161474602753074417307651113211172663942433835824257508297474394008641410674794486153605863700305430254671278557156810731285133627975815339544021019044166339965932462097520100054430029379473473572341304572451784890869032375470971398315583472678261926010042117412657121402233080513586023627920580043762304546766860554968542034895632489162705722931324415824717088587555521264948759347631731510640531420909869339951092421685150955475500612128055849830053579907399604765868216323415455473323458849476004428914478391525039234646625102805507218893980008180699162054476563681787735897107901257867101537869913459891444231353684177861183993720396731039294455880723471896047809088612539846730438337578365258744762784694242115708201401487100043147333263682675291877963081474850617902710879653341813915602019475633021485277707085956954817672783609906357354131116748929807709706272098563711577679332894615208485890388178211854119323812079386278302010176318775153815627449500266491474886853870642819988925740985468600459553168248311835676900646675407610250613658124069690857705147130564667564555793582986247619822841699345353448547376677396695070455321753947185217787984435549732579553926772857171965089097559852553648400987565225150896765254995638036701362637159536963141054960531092027667184695163157239700718752216701691563997703673780276386422270199350082012571726661367772867354375113217287358519690122764063421094982947452254796139687976774618984199840287458123320318821058848367279371976430703841906276413115820784285856897056879060261810298416219586101364988703025763828998806095143684619051447568646650739600848268155403830412029083417130171015936066703834083001859666923343292319314854604876883683366782523789974523367253032673892890643677930092992585459054838645104134790923994045122081878863833677943927777687134020820697681094350895272934429582296500758054786035388364791468872900688052572336120792089848594358133233429815663226741856727685365928428959447781881014823235432475147951609317436360846955711238620421633815907477210131084717667953980342764447082097816043679186011196053048075234919218930481728689465506844297317070102062289183228960944763378308542466468904606938920772788267740357062264437677908306013319315930255042032086934135716114340450718842650435458892230262424749103551786859101499325432839802719887441277188112295420951421754525069083485942294889222283283983286306886307774964018932211606378302974411203179651130677646632795519867060182309136748463830923345932545286132699548335768101047005140785376241950044711179056775611415648129178784767361443492068385729438705427667506954986561505383236313528608342348394992851629109725769548596913566897526897824652667969463847440909003181074948624760004764473591069535010666720568998712012014113094392460593626440660922990763529846042281021150201115325326239249839188409498661017302789551046821405937078815789127015541960401661806119028734950633942344080879364824259592208601278364577871102020860083041925699220367435284422927182058861826165237504576803279407832505040941756614016177636460505537828861092856830878310945656029073243431579953426585467211705832417921824314569276838631591953613715099758745336911050769763259453124655007823180019667278335941011814395632506201214304507593493057320011028387236867064269307775710169586037422856342321414984096149169869859796286576510284899258009503677958889323380814152882214917546338288341023932284280030534839668674942011537078960157198784577021975204747598246622003893423730839331925692462406731256934091585522877012108267435757694957818150738008215823306799907668547352873975164127393925267751718944204264358605054552001932883149237212136900012645939229491152454694463210324659653120562580391613863017124369956122598302964814727542141118697419235473053150201151228098940715212274584935369247934308411928705660237786080216856912367783054838693776670652878224842265520596430850099007244662083157906271459420486527706452184834874146136129466790174267856501822132484616091484466567980708397122238072537616784817820753665095511692206464539506330700975871568711911732820501667012437909753387727753173807442989687386714374907055703930874519174904327894252348940216933530300044051865272589870688943558738421509873978331428994527142653718959972336869466570875551115710819694815522461429072486745592490011756310108034212942615813353712761783590483415484967953118878879370732194225000326275914455330720515347977825346266969610784880791984619627950209714364267712974565303108268930402262135649332837574164355399080162783142381542914234675083125841343439615410076552996055147651386849354695600954196988565303889615671429794625878416835484846089427651410846830103659072952062686257795975811424501315414548598071784527755874133461479214006530306143980692610098347114675436911173492948318160213613388320480843795807800670716422904366889584668180254648227612697540964759956994671272868936992333653934277961729761307597662529197596723759008460154459764690196600257459294904222859490421756048192660625883378954075371463620295092835340879713871425041974560114992601037104170276588669816237361250085567505765088329586153728873323645338545632806328434759812956107568331074065215954069575214598119376999488795811417172099643804260766214474791468764763966885030384320647164456884109293053343899308646869591106059501968048986934010732570888722326920236525088329814005689113855233137587789882663042175740030700033870867211622761486131035507890853182734403984408742238542789124798166194404300433699972791808929175679076565616965673262256741059887262545923038042106689797759018099588094996613733378471188904415308009196259556682205768325732091231738032440447829845005121179398133818435946351408019383646364042495177881925379975012912904716831449503469581096251508357748956583808768024224476664155352195696748835873148691410729688790186525007024843891520047720563176005998205084380626782145241255093089448113900005014884037884718733095702427306261663103309379051278288735550303425167426619241029120439295939161400123537287761688165221392080338453930387042369553198011575784430366819539771699047823044076607517081273375838979214012775376714008836896589978978155573708800556335578601877861801906956141394553770362189464623449528294746563823737541360338734626946296903992381461741324345765749456704472663404815207949209485230366127591226598575109289908587336520880496174345160096393361848398541750274500096295201269222176344110078186133464407104616854685180417217255472817520543427850110670560512384460881644568348026830729131544723472116372496675573644667797389876493037992148202282233435517529269788087038268856858386841791226434828448371137696798314433196535373605369275644140127085836748041550459517127343114352709092315477518566548092056009670720933897814808739534489498805157688271109742904650402282379431521178300261525628536006113919950877070450553942579901433637878700923683069739610224913155187920353491722421216569250586550052403758457075529143301940477822721669102609839609232216920894189143616599417554356350735154916563876308023740815161478954379604006398774454815385532095768788261107402309331482844086695766982711280290053804411547005011630325729012844570152604304854083825206806944645485330396749450511418293329714162352118538558311899785664169219330727157762767116727250059338726226283083585250109331705513660834613870040624612760011349867632151154165610055611618876934828752415454967533801697366721867476216136708798698912928983468919847823406477074712598195064179477916851664456500689750136679942363456759500734175712938769837937690286520429714405386560747329693300792796393523334935960039877579020913048330936793569207531899997298646486864111566858324040315293753324674044881357651108740366231971615390529676565339749969299905862224854307962541888987484577092796440783023571037850603360676895914242169371764507159759241858905359477644575916952849904425905574913819404888990197956442901404629522522766552365803396103011979523437244239887451645000140285181176361204692103375397384083076579979364213012058765758847075237234462496760682919787111537702502869161998179966546026137925491624219575128170440527200699896750690300113266124493943330781084677837832410938005604503092012793027505441284951595893116823911524398560214916926881500465036265716125998621920308124634716410754521754458149767511934878855807862350516747721499364950657593576754738740533249418404862621389044122594814693535294198424032297741167845001702601007011873131444377985461257445655088274549346422976124201828255099946103540418624300503323725138352381605169636883294605979260107739334379319950933417343696575825558335547827324713712453362825088281956221541830150406581646353472606547599265546893735929953507366983044538861404093083693309947279125537806558836205661378612591411109211530560046915663683455796590012603367631040156518416931192482536881124031285270036108687042623032399605616701330911815898624853921937004518748582815909017478338189023253317578792667452017564365196740977769314318641699390234631447216200922764566437223663905407291387206840089657485462799582096273022907876051949035257976147851342501128334647471216506882161157735018892516948936072840024298750367637434172728613744015395790592313552457831630615695590991450086220841320275256342860702526935239726187325348323273527629587100653334704641263146080080791209469340111191738189230451741053473378496395527212990967951721693477215679022286181966685777185994712355060828205048293263692882272912765197434480300218445068948187655313471751796714276734816171071738909357625597587293634132493649634556116598116235941764314032468898927775527950569792220479761862593438247088995093513387232101153013146710160152066385308951850212362000832818314532395598592497581701970992945133061784359220570268138129890384131148859524361706351725941312886468695483067862437596527502546306013546855525313007456366128519953607092461838649620716039055473383218637483351892443998405956113247911644691948641226308914064819093782641506519447235009643847514799406981971210070414729538899979688590425351154207599460758770372335890270247772833219564645594035966928744261786148713674302430315871788131231913652265096045809128271709674898704687972102658383530578393174057734945290001022436950659078796956453627047579458428332151361373188930249445662917932433865629940675096701237118009572750885255560768845399386036890997032516607803842185595272010029101023870760132210908198140163350734456416748280778081311365083006064971471523434984440292866857578793808249727435956986732691277135888112566984165089332660079925709253489287747357221748629370053926412770867881851966468981100763261818280037872306777835552286323780641314230356644101150785969990278878292315105524215779441910398201365692877624361035209583891981075787790114123149838288539726684143774816979047762287569329030026154414251961509639192235908796495691525843663040836290407085367158545972308488677796691569372652855892598661830023086798616317485225872187759354689921859985425812060533090829765362114609530857914095361211929770784229488013772512778759606316726368124535576845791478420660037078993620744360040453337680821232192918861845415500846909737965331612293217206521036474276334492548796195641536124991726217417823314162763936515916703258760430380952334963443212773727464408494742620174241389985647335006508704972670271670260906942149418721383798584522927738090607527527317520347438658563182592513230050640215851355885799663963534673591835723750902594479812213290862535122254667938870987733883895317180134992303784141615156175148788316062212231196163397903584169089630918433606189702976276513240525568969676073185687812702579686334029895450876956958966668209671138713286285418559488228096989161530568598274978170046331488737431404013903718394264298154493872240626617619099959751736495756365471996060176204439126146056857421292226890986365797409988972640625139861227887088833640296888661824299739221200538539949446401608311583590397855576775685589000702497281944136917210785113437072809444057198878523708889904220456805575551917354786366683337946616783791532986203731612917606484083003333199376356589979682097339027789625809672042318834209356896270829241717316264971295725317649457756862655820772929395220418055973816869933973264855405355681549839501264508619654825424773572868682510382224855712805830975612462306765333971562553962053849164210896764430230526591270209031855197046910039119735458711060788770255961108514735827220183517446154926749048631738100126511609811473363638287424016794657877749398832828729516074353835125984797089241054654201890653748255370073327133963292450474705072741538991815771940651125471607204532346316363210659892975895913244947530665996025685367462374304389596377988193775448045510760226327744990792946733984712967497340915703502546791637845148264895962071873494739372803695902024591198417892814948700623493416631450700130151325622555999067121665331726957673607265459245765604639985362019913917578127920800308998005005167392831367045182681696794232552710765165196284114661624172354393538874296434273189323966316436792490740273939002872898561720525422572494875368733796011734167186828641433416461566921293999141919545136323155413591952209877328947452028006708551100051950297790542009698333211733071076864251308894462202924706192324522637198731656466111629346061776677278412822782958489668288275861851590817734510653923688107150912822225604507680267881754918777724379361683387712243250767394373530765535650895256642785553592582883857561423480684721685983134512076160592003402368901451903378530942650004009180406011254802860966913716579467114611934277823662080247548492765327094367594840374957067508065836249497389652828277603760240609264533552613035905926704117419901866439718037576785195903001393788348751968923040620297130994721936199348777701841103584137562600019852447092395041994015939053807769327293302809478308218181419784842522044744514247774804263565300727797428264635584627784291747630892473358533387350431978362994452233152883761025116696372064511625437336633171767041553043037329540953773793640109715809315355174964981894432485621524198758186496374817912019954496722666232030511838491329123666026359464200979682815497275347440673220643195760348902210924149553893855890758731493049476635854491200269640046015683072498531704741425431597977460998617743984714498995197413650091844372853562545858988996528199500159740786649621437161186921593202956246437079741040072688383034510511666670728939038142407547823953771833348451179691435385375354599788103787563024012044996924225200862408530103434074895453901005627378061223879079271300332019444301641599612450597833514549687683228937719400836608477527653400752985065753146983826547044320988651351455031734242348041366585863062125493790501810183772154530290925335260659803043157872095830681672985631262918437251838551381396455196433039997520379670948635083202021730399755251219000607981986453690889820145689536352917858703668177507766147449708036017102569558187171584321362243212698353858417574681166709466505966994497525096059477057514425594920332890516830190652561906324744873914699018887809516847139857148321383367048579233110399538096824206718386360878242521574395976587913846363836189491258873961405394369605462179482640632075702456436758462093975760582396815458784800775009961768270890088127466305407754545526485983277176366761120649258912712189875933496184218229542952399527545223693244849885299290980335741608625862730623279646742834625508541237869667066659823078733456937824226908045510417996666211097566994997234186314245157010899880999346734686275072281222926768511123275914057783080899871393678367995600890594149130711495349484126192861311155436320987729427066406590566097620941670262720733756726445541510022787979927094784324361430174301633769067697061121538081512926295183493492508721469198730827852159471844216573472685095645860536049852127864245188809170350524798491090205057826391275923339685814895407296336136298541752312810820335007811165588865088796399871210271781398615383295654995655731830537942077263093464768567107196801975176892809227369818243302086662502840535222789292303008372595654646977642337587208172553719271889852370419162733991951457778759669479600378557307374033314147110703069044421029433006006179481410250215071278416366624050625417412177699770350477372026819978312393757461834588791041786301550361494882590593739835835616464045364207776088447826854663146137586842708396936251975944308501041400685326680820090868578475898684640846302560301685668355946231527622480573539333616644791771577874539862863970979169501379537366310021177767399039830138146535097780352246477785525696998799062628882286779713179136302073215961794857337807085210003204355394503744861836749469245716005145589277746316332651919153979523095710508000799978513997042833432880129006402620301180700286183062529428835031070595266157835200579374361134657036916704060954386353152811397725963464124634311812827360925839180803016758803920281891041278968878701590573866960418013756729240378186042000271696560072455852679882278697749229123704102448814337780931645948590681355471155931263577842331003470702162711110774749407505539009367347484921675879562214453377224052062423252324891898849843854939769674558223169642955588898644260331396950070383516901860893790462733567331228207579340585965905390306459534788127604810517551968114571402795990283067750466636941296442615074924929350516018572219905433044841352663414387910039847664746515834168283996629820406413142393629072171097921348169749373015720841927437640690243325820794839848758143170386161563295101477823203677085764329546486508523754964634611462928488664613438769997525542871761466823815155472568861036534869194673423139437868256108501058877146409416881629834540301512941582490523965268617151737904845075859170056951987734134221209253699156361597731712918620725149977593113035557393788427221349733289151461185722654501761772237863558444681662041977400975209035314493852760652100377510913362943699733297370651430592977078307221635370520561899041027420318670244435191967776066034446135410549084239502975782972518713312033673695830391876149443329223364945519563552568357363240919573470199452553887425490147525461567663149235795915707833968945674614275119102021336544998703234166798173829103696633354103359673917852314772696660149802156718508856595652645275397707692511707863902001888964347612974529133322655494612243593820313944995673082077669545625005827114613087769125790861018274343469988121664425895102889195280156124820334139905652417786927383030190576013395570328532690450161131894802608032332253732785998486795836741816357915195259064658206516295261322059768310326496967594077751690597443762048842791233127662332753655990625621166329620615744648656453626988551337536475493661114650239622048936043434365981568204577574077401865512327354902654487211780993611020272831093649202813256784811279577222993932041536206739724926790190148702219306099102251469018302672124342683868749804894535266444045918673787246351768093261311452236168019180875900651620032445744397584658026775380937416304424668301847398459481693165408960720035047707606253624428369281779673057707978669329063464114820973190330844193564293202542085549248805876011649545454820461158768201852738285775663513613698319928811586534724025337247228459221290627407695320457039458577439578829328895524241113393970246486641894853467834848697046005955496075289967296315666924270206378386830582554989385956597035583626730365777733510390402568940630994620538283713445222354743433304960641487375930430682072112369473519063507693248595203088351544778054762660942508986705581749789074468969942362511941989723630038911188932300090867557802914954396074168730071722311066093993551872169467610488858098285100425382367259508889142845305114106677874553938138324520304372294358160910363516633566001224094754974101534137919200379928963921394589528894082185445974128891490367181051317722634150345399300226283051280217772059991773153426520311348703724240011213905699286758324578692575151734824241302113410052847805853379258137949210377575761801720873170279461753794059025525847038910212353376419883421968710125447779625164377433034139078867979254740523539076421014721351392084204397269901357005145636482636736075490967387551248685159509884706151400895119184980146152757562726103341913563574893505048411344125515848303553176791184769260979034865769789327258241881392466688892365277521198242053826093323581941874445253487727141967078939164790973714917833724554053676566958922756351468184783986271263558872532873638308048877849470963702647388683605036438709084933222197092616721165471737013001322089461489076204276693456366148195454200317830018556525282363594452865852433432801339667105485936952266210050438301614821081071599155922727081775472498586934102465798956314317614334309637373729970056704725747396557975416138369246095521951032807333272787828564865708703581003816691668304920926399169741962634586271098503146318144828237476757876527803806416883749337553765805795284280336348940208187981060687739300016011961184811395640666195472538739429268091809175951449416504081510118452704170633511482226121206099910640032674100297807189839322408485597995998935449945475946170989898554536564118443240913815015021138696170565365840988882671612170988119133352422143291840514455134345837217643295410454029860172739249631515856258646456939973169993599801633929968478285072739563908883296708748685233403543798968639030832089781418747971388287696785022816027218540488047635050452018317675904731211637577187870299640500096286452632416643712661961336532116646866953983077597669476971717850559146374295087800332559445535841699484311462566316564683990614477103281818612290696378500768436871261472571494034127622072848835614288446391048726748984820993872210506221296221288773661063598584480016012168535808395446895566926549819986143461403010535012949555151403512247597984853300803299610642166529598536650930719070012273636429026594457011393192448682683285313728488280040648818892499329815619412987658385814027009113421321419932483416298893369740313801426938292384646321187614406225957081893479760302615906928716183872890529801880920227288475105027565667187369071748747545465922081574604048301726492557000401592417076605151761450659387614550217665194576431677555355313039431917517938245454727163553050755131765877891463347823312121699207222641774314938990354774083967856854485562969706807669033554369579163396453958457663164650005097278659040363718141811839995126090254036264904489757502465263248757285292112346599504060144538370295749901487890308599382413443068510820820833320616639615335716410562331790106226635378467070933173660679492298798436315105678825607679673686436536167937705592643420755416559790917507525480775007934936373633047462231822375312231605425090927372974600626552462748059341438707911037559329780528567530375629757403474726999059472637520442367849655521019923195456005518751392745399759991056835662314237297628984907266488741502970270003814293698336823925335958501168283216557742956355767841413551687438906517426700458475058817535405429712251914363815190132558558672975345413187201720853276495425336719433475193403631572011743527954367264450277897339467527843925624374230080369967266578007740165493233453467229073840224318435725746776228411847217843404595527156625469042450368832044574350965449472502673969979751643788177182244591248315024818312317578912691136201503235488242346472348296885550928081942727476649038986885311824803657128358473212986441307131893617055517232723213348808125837664721378770871285016087139694803069391256299948258206707098190193860481696019511144015147701887554573941358380022740062406455868924255168816555422120224515330963563460516999211067227982081977972892544988063262861708970764676132919878971618075192613091774449681807637439209300979723599556909675023126846903219524394045636794135650144727112871792241203245360839032275035253231744800233816013354622619045183197621975814126123842921347565475531990128142416266163715517098947552064621039432652857948299680044781978634302720872159620739732524001414958010392789314848480646441076610063337902149384977881647407616738192649960076851986927286550635406382469722932543489777774658859948631508850171058385489297816925713089168363787936682355559511078462074747096650005409099583252403156680398440763026792689150533665430636653314347095555242839801182507810493157094556243231748409587314187816650411661615453787956741227984150027503914911035920374638458300623990728983436650423794473913921310303274702491627949663960118880082129852071312236092651084176609981413378830975368716966125238878445023382961725339410760616145936151401459141930879195459384554440785916459777828800103014818153062061674197629817292968393983499810336365113578097819235671682112492917083926412756372814546700883971945649549000884767464293263122761104804837679011682608907801533819983166353021085549244774673678275331079918059862267448093856320078533160970037447953329692301502109340872925741188074629647112885413346640686196152206381115653353109648730634659005339559283295447327377498485618303097232333708397015508931296106276903330367541056084596927635170619961496389740467484754842396729560304311413968028387513231159300892798742658860644358446598402857197878196635667431220259637621244504401834757147268936949249040742545435932859919400911839473705099114007238921872965300955794629462271672856610420189894873763979207598229852537343322191428619785854246023583043939158731480355543668456671463813107207661228030811487427504116791847748871792159224839675954774189719239007595117730139480821967875391050548538427878688246293779580246195236155588132803343399182063914158272239249402453392061106527911754163210995925840885198701843096642604987054265831953006595291756272785005065440761502748939051974703913060014172115957029592657820978084016629467146734442569285329564545067806686979605965632401045008556214787446112708433463118611160492612847652032660541719282269236677565135727055388963546019702529594665879939421496158751954312732448455334099107208390501188997551327908904280454917188966607874345082855690795972127282038600640462300447352912064980742224710423751940564436640633648974677321629474118867500469896768639997602157245348300295309416904487369414500633862440961263292950307700315108125255055249146509584330554722480052061036079743266977925806536281706892568909313744068461599804949108412338007403006042755099451311153011308961256198557421536698079515667991628114585170840809200106637132801538605898767575996506462863864007253573329257191527120757218913278709588818029445226887956437677859297713915483428687251575249962214920725237417496411669332423686051658652561482502099286894907734968136971444652572059162021876380523075771255161492377785046904636697803003806745179192305977127164256486020736460513075962609250471260555372374921057348323280493081381720663592354463127484320809806989724253502730186854778052228761690565679078591275801064004015719672041217283819067999288596719780951657322902342368107060799215780447760705577686466940727750884584275855215842308980711308468287746610919341640572569175713212246681075948694026823292213844945544589209502771093738653568644330705259678613898755284137059103628598452026830092632257941993325448687004165018710670862676511915659857671775930578377670607174313366419396605278631481094248476362274148705346412139422778056971696920846375128775773928442124850411969248718597976831796540313520583872564006908627664479910481758354321689358008942531255995233922058606598538982222186897073247181620181113472713895526491583068257380767991878186456645255796336243847049657365794655718093584340458657761551657643770594729114891337450519651658849494025512112454722533229691511296708504286660119120789165041662536926084847233769279560787833865890549341556908210111573302730102259501678009361276559160307879335915229505329219647821648139781990246757234053750731846713549325752566551137649266761373895107709843514271641738212524632166328275759764631564230911964182411919007113432671709276687316862578402584783045378488158913656136591603592329234132728496268224749320248886828189269274313419183680588227160323391986473860051904927927368135170148725829614627193243963459419987895058677878068493407832400195048845297713565401936875417844365012265609824378903678778120779833836988847289794777417623354935922800288690240709485885448864984467323977006825803089830115407801225784038315334808182436760827421067177728302845066530632339005758404386183416620309259700846286711130457883506450945486207127850912812081361643354964262856590806419537412061219370745732683890688990951199013680366663547507533926617663467860528444677518658886150210532021042587853141456171567988482024934715903602919468882144719338517473270410706530184371104560194283572439766222145516731782006584057733333625474368570943344007296869308726494881602073839195144441657306408445245214955883475690123438470985842718691078486560760646835764806741845832735908026550440429722713753807863106916086476049142866584308129844700086062130757671658891122488030620680095321322990512972944014188511377597912694339168398454939057501443551577826500142225965734731411392934030471705453498310549366108128179692213370441300887386426471545762512498791494563850495253435881740286553290932018991716175276692328058704507000318686391800148943500503357424679751085104941037604774357396900763217591510193596638947102121538072743460255681462327725165755124669369588674374600314687954386286151402709074414445351813546376153459852934287823964570656735590897940998105376386767086125580431566441928094628709232720572741720445192847745715116342868310059012933532615363088930244109721515346299827967700457729078675550914075687139070939012015488737153330449514877374553369347756206611151972189673482905052875226651408022017725690188041562660765790969140642889461480823273224320056739000631057258437386504975393019956326028323404432329430728440580841415026229230192246962250734445123837166680936148657516132898424895319217379426589449879102524211106250197838592627437660463716197469807468157409895515580556041414783554103082801171456120201962516685564246794276642315343718036723137756204311212475859767574663391025504108748154918819855987597154145755734084343962431922836303850387792250015244400710202065809505353767534140302944498654147851769324801212585385387474457115135287789208318989504218078858278735347054129118543483277989234559346169202671128284978535365618254893986008884119336299567517809568828382273736102733488714329106052272848497144631911214892132001145386954579612576679522467956375025887600118274733910059321251512225264305765952842052148962501929390956745106904018371621510377983646115068671335504313045115952375679107748464919622282594030717455402246223642057261375493460598641857594734363253028826184251968646660224947943798988646858976471732858291700027369359600061343199654210950244783546022264952067539612547519196041885409526286044961994708054636633786849381001884146455707179323944910517726442113114646582022329193009561190006210840150869851310538632965909176786153285345441961491183899333583367293137783488736363797955616229574838115601395361185946318774068643607933767037953882984938135125542528230270907011301374185811551423635020528563675622371242884448028398344478231036560644405308420964918011408666220188023826155362533506591135036421236472620420119723215956209217717021406865074099758625145331222434270576627051698395741461151663543162220363671943874843291530408145107548120129872212559410668307037343385937574925372513788265003704592844600476249592374708577346027188538805154144015157579758250224359134661091960147864392447210423547489376089346689294456094932834566141655276572392748744260309033140204331051020906415233372203488307661614767716408114259789838221404820738573981012133976224533738911949841174316388681873003995557700393268554254301549235636929962819630169039401640273134303844036809589561921155075788539167482634381879592507116977801588188744389802864751720556757433600337717931279335238153176750484086197872716879271834821441411962157579534924613406412593959504499302778525833337968724467408403248871508447900137162693206293179040454528034671939106096089041575826818289647516324230344205188353823486091469480526671917790965842522597122745490030901543043068260964805037991951401746259913366647955773398904852519544908839985558217697172261289449357072423431679442547253256295230641314079575148462298644208950251547530066292533338223173502492873588183567516550251650787196156865439794519392388191980058407582763181028012032066901761260308737428370611937787310680670321000952506329479289163678577211774315996266693761805850876830849540648780012399932220671661427453770168940166787247895818195496503098381830738457531076072210018155542534119589106783108241670326926089567661675802304086090550650031234888029878598254434958650308441597301678072985247736658823015275336690660528454546637718344886642576959852561787447939269164011073472731021834334447056125580816304423724968680202610303862312438498758899083825583725972602177939531150679206138243421424717001427907010166407418663654941159265256228775431343936361983782175648498874137951271139974322812732441088865248683271482173682166083143200420901293240430702507782353331776882833342583981061881806753753168406746746066226759842986597584112644449240808754710912364700433176658637836211052926822748013045989516995046683328531953531858168838111478530401190325347052770969510030659937133962813540087540476274795329594411614723535294174583935282654474753772172814321266077458883431548978884703275481042813304280295256254940118023893960157727937575621944689879384258151591625446045995404206499028841376303908722099149163970675674965125322876391995947969385093109495102623565678548997797742541547462936699297572187663389576594041638512301956726494229631166599720251671492419834743257399474936931399055031097949411673349879331722485229023633495236854367533677038059087967594848368451512385111193650909919587591987353283447480981982257573075395520195321494492821673633590100478897696351575254096212980871546541027759105941778682480867772661880300729805188412613421485530827168514827311532369076296419989585810936539429739766137592926237016302640390099691197432164688868619078744406398704753610651912481547608731618683060992011805198363234320671137705380893746525328314846496717095804034747229716526880430172646905577351028662196351921493442829912221949848402843954678489340113095117652129967901021527618116644895779957791772335515217880409886688278667125782687704355314458336199426907017160190953146737041084228012499834107026488479037020921884485744450150154780857356809065822069915417468486493821652490049963248773775027188373693677590832201570294457293159848551880538314228270550979910638256279733063283213759473631569502730327083077782435497975765021245159293481375644350008139071846655073472405418874117359977710849131593057176505822604595448394626831198063873790769813402178912784516422061997448201483368083754700861964558284354081372711846709443648738016891713865304919493778320145281445509257775601613652776466434393551613684528975711520301584441071891622618713028836867214311173029546435472462328360296266196793858513460253772976808906019662738699356118949669093322415509554651418334708819500912689273837507598246263669204444214225170332780287859481593537596170847440602081687668664495460176950217196801754875269866656783474384844287358862807945566746258189652018625222884688480878590315611894151554019598535252579796394827637553679531082087029375660485667363442850179986575380183795603496692118696947287617282515657158481745205951859087496211368242850287663690522866366812741558739524960956157047752364550914624163324988972196233095081568191956656268418809213151112311769714683570191767977685501917182079075324065556101672670519255836992607672626515696754131104228456160368236074458343991782918416138710164837567402936566522661324176452994358223385544970897414293571885853370265164760632785295987816732574412912916128377551707177762368384070511238623362028054638492834198575614777017860983756582254741078591053034633365245945318146530805562505621557426553911351021211316504120154457228516539680032245579181498444775671842127300646146604148547111254973294977788315447930788088941510729414752785709400942265742361895652256727687936981575302926768314055936058681551058907696028575386457121547748889360421832159439539104785183819204752055502761981954440210991467150904843385316638168988252151306701335516110214594561241531688598899431497421670457671290040862703179218199802654382258586390511607788865894860198178900134643715635928453213774374794172650033260648932932078897381871085165354659180100766411225832814835710414704412061520659337210179391335133151610906561825848114394619415109325559431159384275573269986038465644314323868264269221633563800683961126512409944108137957565455074843828398490261653923067897150714345242885563545916145973515877350398783280727308750440149538928263080394516310793917088530274254925206542281173406668656286177690436056638025875525915616063408086803550113645394445821246306800833712658583801717390951754522290954564521036281667091747233473422294365361677894196057393066777085959366492174296576421768106748349535640602521348190601939692373886201392076062994316534219169137812507901834361636284819336987652329589044994891013063063807060953741557485613907514685232921289263218533918248714555437752405729355923673964792214637703877946601158514576495573612800641937100908784199590147574957720291658344452595480387609872773974032033000023480319027038783327288570108337519448237292931121567249961491619261809142723516485312943284500610403643544294211618319038152892945188392626604990673605788320960504335312301567287737849418589654931938685328035882246544850803964282706879827516685295837252447499032703566291762247640061127739253693681996327085108163759153405437347667527202285182055693593575250975345152325375373460552323674567300054567952509594318975097098351416098406654456058184997921245189731928696605686577826167475558171313517055893051404708557927887554438616904096623742710395891758095224754606742384369257060478501630832340718755808402001617575841614172290831658290666317249143393596478287673953741505688681722609848531831763508737676129322962906419916304446693912421164548366741666479738545404780314275674872647046844696477585222671743766035962070956290366946461744196099047565232251805498738602290828817135856466333084189848799661956395495411671455088875584465102423298588846320028040575173539833253041196807696528184012534580354493184762385496910372151148934182257132852342656694148035473114253286476111853157680179898131421224958381969009421338790534863444470590633736223393799555239735271344690096924615956180673716259119168734493035157712530337582500711027209066866986435503130776915997151679070336998355620129924819324973204075130088993453618556540089251460595737585807652314160597439334635706520849911406931984429534198469797902288332425178753799572752877665877994652219716665294694936663521616667832876840377887784201450022548966300170376095181404050353334789707499582768979976109278295632523849490740772921609576006482796651981382437280409117110808157349111482037307114496665719362685533429243301359825668422750181919999436529518575803345717039316756107705001356971250148685669718704059811918926975536518525544498459998638067816199960880845096099733068633752046143591126190182441522817958977232577017888785579342502001419931253899307233142487397518631858784121766837523688956292897435985400334206820531072211376501672004386360057168915276085009799832345361668238722291409409739712007608342129292474910142952248235457852413819471781505449309130178415316586793540027569064209056800889910380642871126907328746756797919186300483491790380891765441119789779443379632906323305191038707169701123937270386681070888577095829097529744570290731375699796879076123055035167942047707599379840180829628476052856455379926270496211605452946811090628260516576423136517094347606402547997428799629217676623310541216322165253122356232614895722974912337839755409479158776899586459850594381398088549545718139573760198005974259833596477019427135076631416099228788255760943494416539412484926135361071457013034416812526644720323251382901523257869090209072978688903193314290282110706917808156195902042857723704127231424608916280838672457753461309213566263659865936603379900776547205820756934804377000505972200206044471009834140852628434445044953371703791763563457187773389372446395274549292648234014212019291881439035605157748672313482830903628578964744353603210014598490182965927286111136845030367949132550264743167211598491867636271724537613136524608186737527964483524418326645250893079504510080433881570557202644426389388561761014974007641412979522354362455280643468676218033466947049481512071297956445406442632504444606228780779663762824447638178113475668355385758294628244270930366550185554528957899111340316092972862727216841558209004878704877032937378715670401523595075121946230611350480205987052613262962924995315461649451401706545316571144697381068438957406854525662699565085139190146679539302877660334790395026506255416266796628820370420315943715279194189444992798306089571578315782992656778944840466163056543603935471535566513512870725486398476404346623263877749727048088141257412176500518194778373243769755212027684949917104886199025145203752000687524350185620677207151877521246070587608479479274588301932137191100595658232846209351142978743585173859817430298166135961684548941981435853496610627664296192520207877247161907405978348530496471068345897879887399515608235978855418627279932394935911291518099947263402707073460503366162500640529012044240529396755891565219520104264472996546329820693778236336895637644807009173991395008919646963751936716726806671447135489896186353952703350418377538693078062261418193119803141106669926959790855476014414216566464302904015407633756136407072518113869453894781856101330843792267574870850930040465770994730756162538350198999660731936762226019864694614209227234381814767715678195232284889936975897761865848078443572201520737279197898272774603755598894262143316167332002872399109741423887915126144291971191019234065160349712160362895231434984271123966840535671618966598917277493084385786180231892161346407764808720796595374287198320627057090648742448599705021882940482876154202306969307464213632438931814093954058116996448733404265349852984825869467263472077947559044641493034418462634875515975023385472825764762338442917723543406064624736673755544244397158228653573073368582613162648155813702497529094482511218053908198778100624111209254119859751771053396734391601832763075980422818368663733754738059061982491852346580862937506877393848068566400985375330678339718519374384769030475558067170980485027335485126794874067665879482422785483632822949416683832909674640677851436191950927353239995628521646976351241504572529190894222263242184071349542598877255237435630969007398509421175425076370328268207727284400122611528224513418216701407120171986345542214579619009764616286701750152676175408463338932992063841105891471280178467076396288594439812556716282584103056070018175719682359248025160172757455135108695163029255104293971966822821356308681246200680653915015434659437058943663407358815808997200381309681994341527413750208409078774912385399966834237296686948162864481501978095928319590792221888671459973231961208289838829101437799476915625134004635344135857531217962959299011064907315459773819050110968649115423599786771079094916724791366597025297357701893241159318450110822607101843262252836058577157641041137209197543793922675703072878915100435038975028532483129280729026536275859157298154054050632631681797272023057658323395299304145376541319436357254273589644078326719957990666058681201219655302055585158021710139446697509055722036304287201121781222082968861413582858871279717655630904608573732472950090482229349724016157204356397625766929406077052543814479955453947184608644930277966968656708009277102422403153736665175047138121354916469127711336504754692449040026156393541741664916106012185898470030074633977035071154474154347863437066162237701939673991170912415134093314266634404478360198704436694501257716710863489425214227820100495755429169361063560908459620776659976359628478286389783420541391653109436972087491420223835449664714513672158872950769164602037741262907776034939392044582057467711116876484669395251428628297153945146514348631647970207304021392550161516875906034460412320908821616155056228017484520159559052334152309087749328501444401466829205292637286663183921756150267288630704939785354697466025678136073582647451488470164715016351058757197263088891548163675331715188778244116926266437337019549420967507903071848742736586568522820634855793920679160698717878725152087467737521130993202600492799479584110256093457592014696883562419043431152598649613273343505665283547420409855543024833348662421742972527938504125861596005549175874589164208505407703718581766278115946256641949263799889369606263131401959987817292740093231974892177075156716750904362538200153499888419245438270310034563601794529749211943705194586239631722304526970022735936499941999319133482628366233916011976826607937139210909724257107617155785285513606828484977561016744574704728632710829131359011587507265046816727642180728499810324351873869305511257327275709378613948045797319947830709300776905204425742503977957231454034841616562772661024940292187581999588503210741067706921016005250140589157070427489664979692122392287387859653109001054240584050509591612663413013473093804195246039206427059325739607325272736823151641763605784668571633867609844279428565803103035263792533384747014842426428789730720888294098361678979902417542692087998879231757693935985222016110929487973806698118393290113643424371237170397825885990737756696683807708575459469139292742206919648534488034330259106393586620173654901191321104295243629164268978125416133352163254386755468696820331660046508750167787181656971606282136937579260560500823147516781022433318924541337768519505798280964269052988747915423303131870441103878886920098867354804282875890073058938181905092738372982871225935251053892966379494867713875938662153758161019236259458485059846184194429649506887295328198335964572766563514347433935037948874467253925455660617079094766601441632367955113132023061661867054153622151482784701085894940350943026647223581122758983681799725040139026428401738341873982423869021550470285213204435858304589904396547624536996876390671602590768129609588502750654466312097322016613625924149498092000252257604574058945723844754394426046159043328197774636206741982848260820816483309211253720135506324489274694895062725125496561389782494116511406911934635358872140020993218889565151346423943178327047981029067251717908503422201839608906925704545118352812555665802198071526390073059081524186496664147714583265417310549539707740043653832614887708411212906056471033839359582019056652451258450224374010186068023777044584609938944009128612117064499535877459709594934592176092646651625564438094548197301771037656024388702566332587098070705317858000732394994725931265735424448731473938822883208297802506653901115188038906022635639699625384582181642370774936585110006379082878862301606463204936797655923447215532700627977187795942086225361644528395158400438585872472517563322797858432252181349840560155284990986871046136219066519213424447233917542604153815660102646540786474410369067848060431473214988031535238552592313693721245460584949924442934379367913865264298719174929660009232005514165320432899185054118010331569859435691360725517010796961543828427994362536357529964553883316080698983639276439604659455926147985265551720925688735123189212795560727190118933482376920600345133916766233046374483434600066051218406513577939141648084965299845509688408253695622283408142034508138621263951493319622418859047809950194215420235712611650516417441393581305965398364253409383508249512454992025925460788450760491960838432908637485019512428128088261699424654074804178347485391221207211806032446981757209741069617961957048155296952797286530597738812700908801631307992566355708566238569152896010055600454035297634881600443153933759662227996692065232169970226494017103532583202537668499865314098044724039988832617108414880163479386417898558523064631613325962274318053858784038061618209343957086028761008653482005521254373547809356003798304237318525318068891130667722848741578908530903691817850390782450982515812517957977956723013130476792268543466508086644723842191822538287835658107487801859779427751244705358470212131434640061739459003543919905667684791571935935163786321262703191021298139921821927591422325377790610905755972400722494321677515818097804659898733656491803721951424226783371457007432476817381233195117755858555518184359973648343790183133573562796354696393301187309540115964101834176044886670036408667635132083809055180560730974886052306346633388147085150710951460350163460102090168309326222913042597477524383811946773593256322914623150080031055915699628281296991687522563845357941425775717837808969755966774352364255545821609022024883433955112805037059838513824652748866981318218776819760751590894779525142397321496324719225920464583512402023171765941857440748258312396581025310049272830671433827878816685575580512695200727097143675727276780066885460845440368055656958964991436879330648388323791812815458243924850486195746317714158601970079950514737149567449312190494342134119044846630763630662455937195652840546903632802452721385609138756202852846080779116938232907372562223615569645346126549582611820944094162860481533227534469014881822535984395809614173189442332436933540736647894101307254949141624880024105169329137998853388897579846616065292614301044884384889540096512109539825883752501922326051267106820562867834706833873436806054188885154588244750471824873351979799294460774287721942805575061175183442660570236722758862621283339183065776827630110267079667442967629637468136431261265294013463374344322631447348711235432595993606634946879529295336574738187536502374673022792819786177408294959724298290072477632602623380395006675198596712474758208814055485965316968561589879882889361940952091454430322520219113256819252032989953522219023279363085521617874999142653051198621327037486345035463701193476360003052044473230647266773997664122368907646050655969266585617524354751676455628256239427962727930230398465089506020506077313609480948271497690640579324342883232521409497872290754177044346857988130842252106527796179792963690561093128165901459853366109382989861793400301709522889076141356546301595392539828335887873323144830309472814732285127443270283382363594718206024638335087054205256568612803511410527478313360347370146597465413761642017012200749209809188567063371386037452312245964410527504358303231909126015731117590689605902457572590767365863084829575898535648254804673246716850332187399352053457468818851525897555518308475302186113149788641430335690421961674376118517808139752171342875466180014059196838538636333106812041608526892036480046830145039609010525369359206621119900694172535065943359476070360908497101149613767086758488298637246023120383048319520056503070045484590696963124392009917816045741636069033924277505711849592468393421352319224102664428810619312605778877698626293617085400252653395411728155104786857750077944369918757107645166500853884626777382808008621800160912119044142090679559520081820802398981677650753737947323652023036838071536630641294828120646888793158351430426133325999075009900792407808938035471146437748180151321685742797675772561230333507611135196555146215298387528615853232301994696392835891044881817046149151933661800758550019606402133460811035901781866679979497205426481712845442103826446423481303950755592371515766646889274123064152123576960360899160737532012919178161163732665884055111974160594943149189164757263098535411784681861763337655741652292539754020012583670302089147206389653334497411794983973443438754491259805977359111942354672381556462446583795444725616043410334883505985516262257738670754650105299373532301425033831857708378859096129849211210126580849216771221565242117467307592599236501011925889203770393659942418801281119381324190934501488873234026270948040915471184599488094631451237056846972155270191969423446275837729705121228733044448100401854255573702693425237503095606001385110647985962401042442306114098706599764936168938905323550357321417042898057629130445260892527578306981275927965147843970934171252763819522527023320390452422169158885633223896308885684990394538420087340856206352316496479472585391363448512579067382714488156483844064133217071975277713914585766239144944821852442999828132795750400075716862352504709739569271059851777719434118960066864796137563915114254179716840362624099212649799966438978653529844020116552098729743320553980531012791138116149071628999312866598140449031512630121359118435629954766725226095320828434775348160958349343741610673972341928216689892140631350127873828930110287849375648715538136656374853647971410711769290060503658615478200207177331480543031502486293116860582187030134590442839062478655184791757325830268992720418405093932857328814075096318597003087389245274224273483674313175618358970672282635848064710770686655795586531958477789497337281007634747060599808305565081469574365008618269842596567518823107982539824671148346895374045762028072768219706520787188127163508080750520977778297001701584465779804199229113698898705192146388204983679926916570728749268055940792512806070121500408254356366364516520799418066194897758152253832006584640197186661475967358266569059219172844185707481125295031379354051427250244390847048311215713881593980988173954338093771926653111673284398901281877746199993499438635758242179776456502424860664924412800258523826843235087036635268509402237716759481987421886431708418413614119740065752316384371948474007418590941556799882594424621765205647996725505418167779699663530857089708005360770631465020006693352660279718420922775428807389173432183965497492883301024837163431891528745784651556286301789745121602659705276020099944471605096743363061495621169695469085390953053309098536396994384396529171300513676397200783472986284533242297144316579272724996980185152397305072140897647918828638919763528003421577444857504725251380112430014996703566737081049937857690922148561666688976284758279313037740604916697989130123289528142610222431381802266793575595265010658200482057482187636526478696755402358083253467216236150420190965153435983500355913865331778803106773071471586676166329752670795619045619823692856238981553883937764402092292365426967850129950991685373682089357819063473831392532617180827531589284179473258811907734479806500641447468437328312042322635043552126116031956477504224710196708587741920909535801432001885736349727153533035699114246459366311868937802368937161807112625923781725075143692358685695319985567945187558260847660241634642169022119646117184582129491098062517285363164450977853939254279099270478707788477293744044283080180578959267798944416979531590211521082351288461193457920819657284094245759369974940473711648232575181971267245108515808662190887371910727683879615879343544448963627854948252897918101733194496753130172154697517715921388129129923188940385808186189619503031456725738205708732559140498913649910070693829094807909276010477112909122281428340201883173900256957886859559367503770527188511850886944101486485411122228410554753710240356489404700388498264644655617242910180779361878575192995390388988933835705778908836675321128022489222191112729755329108163207303986087224878947064396280453174790673437831187747431543438260226088512059334178358249459836058397572828901902275527683220534641231492971067410444621289019723092226978897294745570824943378948120444838712151197969074285446127928202711084767972433094827611167824102573996630645005340972851026808213817856173246882203485353955619351779617807666238748312785043403565930002915597184723951118294438339769378800511700921805867137445997718901636269330371774913800263221656439913345957711740942764072600708039301549838614797593825722918344772705745407150527871097226111516175014897729001293271348253922555782658616797061745102713843883214560180594169344200803450872134029760807967537235431498127271997087170076341797356522828267387394157946135475998454164202858262505761506079077003722708760932419517733369070001984994953059936658667389714624872164871816029277449953126289717851622093576133757196109546546594623503922904776240673761002020945962805477959192721197460457010547457969455061340276285471508814501532400916091719399816713470162214296053376916596579947454458618113212042950722738026608418365236160378891820686522657578956159463503134980295138557346495562652391439706195220873760269353072542915395865563597930156615689043237654128177163918934843270468261161253309484625307019954032006373846987402259336288102831064690254925724015950703943097446996858082137012113329031894709349206274643550912605667569491211311744985122236173654372110544291058902244829372300177626099904352671864700623540223183584454223373116169785352605604072405524890289066420496519598505344892657608827723819364236650901925195812398887966776348847821946452734012101744510130493312621333302063145834323426430973345484812090843837548452594587117615701884705418506908679244457558097641346719449342164139230431681174761662001402771168952097110918657513624255693717316468944571893826964025428495168543703739694263349770323736513067276609770757154479747768771199995905327556724370245845237676366401113487726818778248249655463335564793738900536988107730815768972574988940207126561544800177729975851301631774333588922319232950213674458212834501795211070280363771450369112542283129486272869530023463118013962869331620400318778082823022920362203100669967901802531786718729045188161229974555702530440216509885714888128515620137641803749216124497492210245155541295276841332393086901955317126831903725418865087137814698658700669663030598195918438850402279428693618290913907156986134042420386851289582156387447730154525721203107158872043569378525501617373824803904433286264495096190406491963729697786490248059661958422708367625736548614448722656243607103476682958388999812246384483719076211693774168427546009606921663421019400069825503301198333382126093737591493099626830981996109495596359178562068873594316403532257640641388299414427838490024707175644017756392030426438437492349702881223465018971008491646879745658685600662559670021863953603516384810466096170567862877922302067200074542279241443150061032064514907572064451394007685631635294858167947496387904608075730065679179478383516531232767598444763169673429936210803911383624957817768101276005676013027486134540102152508048810849371784124525473973987652170592890191355635467449717027328326007675967677681992026158983273523672415747914413053425604060343729712765790693532055159658024151464510222835486540844481780279075798705990620759822654194395800842238114117988805870379359777121535604673375424760834688617775446572158169088426782325137062554173556303032495030914594809965067635735284005663728485641546470856878636531498426867137216325182555392582655411560514208254463558364131466912351354317289361757978296422024339866066449231065795395416185251148455393789760120306276400357912539030252632933021845490810923462108406572771670940114261558132440181730298721275941718787293379744247712730557793847299015417429193923537533103631191377348328709834819893746979940146742313868692994216826929017928951423400646839688947947546758075338092134888553453418922795715904657569269824504194242636662456452607174530246978689651750033419208404244485370426055759450984975297096005848465915823607212582525510488725601283971266003680264236547506387222529857264829539677376705183305250690407855159925071276199503738400312273601348047045288897365268921323299909279845998071213306275085926512398372866644225625746684142839719709250122327151082043771295477698256182757086324838159617853856114373720172383525320340567569203689172629529826806994077824830224026032532902967035642734543623034591354375910676029245484448259165768386056029434388488094374091623397954325518377072127663578979843017310044782498861329112373251513505378271584393892207190416008483261033659960103208652257118837204792792130035597549821541130057505681910837016090064154888199834250668151180619051757792352935014897874966543365421632456955793665328252898263535577529625215156311492231927444789052940849908741353711142939831374787224288210337172514353526685113309392684249679069455942434096719210806354717113456267391556330341991816572771664786165256041415795276790481678460478615682864069887307730440870873756607683814393859093487846626252435039143203442119015126239827659918343692560282121646901112359719112818141869313230306075725019108487922924670015007451293553025861941170800026133696266760880972260321197150484751215741505180781073884990827061134484546777968214686656730124778483040334216035802421921797640843431170799141321723897379092508047486190291505977866017117568468333005140802962466107515007362507591163319866941674279679878663734211926202654276077078268532447460456388126406319903537457747530981094580539140493873395301938580784798024778191978072875274909841947837251172958649778533257991387722383975454286524119283030280946938008201780893298036293018257778222566465975647265353369573034818969998190321623054944814882753768491269010729606586441749591474761681148164119060862116152634231065442887743050025520284639193430602667058416797458261513322899720858066442018297231703391045049462534425558313450051685367083652491967024939084266292093015195653132420165996898039619507266701337438651406755007791428895514023187109508303385407780816966539141083846658026801271922563984372519712852818384531790320766386547344635150522106872480507695554203295113053974710318152576596832093755269947884671232175412708472453907099773090278993330101315895887843746406208548390673344788032462482078995043615851680370524217610040661600899672822723127077985515444258340707621151042345644153387558119836536531675895924570347995223171118469589480436612313208363910188139184035324996906305912547727770872883512647123374033904893178879381802221219811009278463154508767719749590457106568715384716136731607179621245439063176698652715894252197462513319898761805479647687943858569466842614093329926153848028337575150971768320916968593346728181600096851954246723110865305045820753942762838340417508514742132312024244061771599278917730926698181193268040138111898062856087999779245689122864876678804905066479265741510589020929757193055212674431440203958784937224452917209636831961049146963558430298041087411497862513350849942075083430760402528184566729082837287631539532082719703932241881805567417830355921069455171533898378851534402813252744177831682049204305564712265323403687244408363041896203452651752752621466664714124850852735351248218930032388258023062513489371589480506750529008010144811384818050024808740706825676768053524490812507358624878744909397402844507620552499233017253169877257922026820794498882349227938263882288948401938116087479987353190869762435856340111393417732253052126828282338013131290427007046536250348832570582229990238800956341009756352579585297096608403728920996151384889460966624266763123890535761231318367807163194995236947697774206753974911082192357532669574556090105372796324990383335208924414189517923325397161028411032167995056434537377829933533959769580435780173691246352401418487450109218633113488492391715363798661486664919650601392056581254933970670825604602925358534091506769005734944385902738134508641269998055825142072274963923661086338241891964506027082679137972832413841660198394573231872684500640368321665669975742618985818114630163687396520131890049585630043930937707041668703637635599168370155090606872402983512864657127289266471917418385817054660721995796772668679623478423145712511220342929425138500937951761188766709436843485237512880714286107689725572928425428963900781785103906995917970308728367273292103484989563887717012172285267699647990093973231233570124594256023806748084562731302216666847468470478186733952416724217407963403809544691014083869923559757279440812728361024559794355171999721048494342160427457808971098999739654552135246007401402840123247403048567887344459835393768573844547023753309730200152119962277679874661706269854086912108865444955444094700750285732019790241500097891973975936720650060919934757522084828145728181800157872739058979618386634526019129295923010042116853801796921014621722663816062789824292044582641890454183781366614904556702431107605795332956555139057212233133872954664188820859615008386493265226444542494152773684822404557929306415875743750406326305845324374133871420987477825601451832484659872520501005478815609341427669329393812574800382726388036477042760233826029741553860194229724446379343480674814873714154771541255954491649776232418761960400805502297086306834124541510809494716273841445700101423594846791386569423299039948682151381650564751194075531567215382560116289800870139810444160082562643819258464259381240243938726886540832360037193637748248506271153924819282486487548270770681432190574878407472930389642263038349979677770821884566605845414416807112787577053356154076769723496989306685731355680506047813652749992231662048956376001533376030454203280483009895333243790651371345899023005641027841242196064508504078084450568597508752775325624004043205112640745829394916488763135115212872453676993802662350555571511267778099948082367715334175726639570133012789870751990146416004777296095025584329251865895666339072751337145193746433655084069338952776878271713345666030240505214698294701673040341692803345081835517746072083451661606546548165802170069643164973772664136243969975852066388082679976633848015133167421605844341866175824383461657625139018641534741326610842017869786249392336482002231102451429632642038259504788293901380978982958408027064040578397560003142945892428945321968891499457280737099393581842316960164278579918410803596961993639685594211659494575923521895518575402241392649091834864984935592951643847741468653336186198506193286719105259204092427699017401844115394248899574124445636327816863849090377508576791930832317809879290488471956004515047809640091502729899066935498612670307920249042211384976803151066487546983673376347644809932756516915263918521564934158369099239608061250026338408724630683937352143890065156486205344558059236825919270447494654926091815076177026881860316123642106013618655770492070682233569319342605172354225121941676334938491438791888621428981580788088105451151987682512012542130142254699387055605981464268114737353081166011270868963317305461869350364466717928144876210735748827195964610127779961479717130579889295523508929440634412080558297086518465548609782955136778361066964178089879057036738110451355379936094161954118728777122157052700350245623709735907068973067775530413255640846301087748222849173508576024885198125983555820068628575353389029539406006656249242518833640786404890353232584936266051938264837405258382536952996812462602568431452464750399173787528111178065114283084183624010032423731408802653592547864092437224826730995793929713744633591215732804116016748264192365283133438687098066428923084195261974956479613736078988841751491320929904892162476346926241881926266255525229917273584594243716747488884019781373715872919607373897276208970980651008382051568114622801374243726023100344373003798315236816612581603456575883003628099380068856414749879163055312183244086924449585313782567162500985104652667726551110360231998519894658506482629016617161789376389800686336459143948050500618748570828581299879123514716997152818505284558202147260159506703015833088686569522791146478953981603120403983149582074430055002124303216074313655143053253145565114683689065933722832488334329711356330425763526641131731142906788883722462522555801151466950224107489877936305105155246886306295457003775617206112558204272224265356203966539211317096200891603728974896707384840849863873389252361289703670373353053745557879638039334142720952011628981387200200343588205895993306067402189576180258509505811756662145438388853563867402141864541534298564092268198101868020120284970080710666953475578429476577280410916608763941898104173682186633707031342986026619650457808749053252447367244203258539945857892547810410532164830995988194823358184261749411312261442772837825277573847870928084532501480870440385462867545246986374467248672809091154923126100390737492693550970955173193786468586399815556401466929843907352810289987310206805290038113213931677188470158473617790759518119238420005875042695057070219219822344362590741901559995944549894966365297921007102624566685854346063601443046430863812818916886976296050801387905800558008987788979369419877114343040259819239586573032394624812934477315724929907604127663933553702249698254499345093882024765793418915530998617259794193462549649908921167518794991238166711895501304664273343428049947116873012653113609314264005001957714005658060683480866221690777439781464473557251290121794734123042581309522218485653299503913521768769133669427782582817898608888765298991391777739401225335299173730855455955755535498498519414101434002838728776961415853368501835704070037738788294695642096597173061596653528853790839512775864455316328568084856227693016710044251525506810442016906526493249743199952931697006067860866877823471695023902751873905702474218050498716271797240774432343928077691037858455260137800928612173450424748611341582263330663870868965308022807635557348337708776298648515808401073990055948034119752234303221831889245405278797955044114591718314144396838592714502862072956051112890540468568822260156678312583073059095085516367491927711933817623133244986587460438773470658327150796431230904977626903146381596565030016833401686678420216944945119926067688807261895408994054151389954787992691282572359170199416103887828903735778966437768743728937607719526374846150608726211340857120559240512767278269560191842341291961522640068236016312229119155772838879656052102792915790557911490474299951521868340469493924440615404665370611738121472736240696951842072263731920040834524697573656740418288420711829854692997502869332433744421573907910262397807132962491187492689424907778799410986868451915324987565211124336923997515923314154045704701231991906252168994383740856832943535589614386244554261178833181903493778231673544462242284876097400596319526860767736765137822217640413351377573714234569177475902284480178758807133589411793932078050376532376523601758777467111698255099894922842425357237584237690633559418363978412331563616117713430051557851826801753503670907981699184352210024618982061916716881870602334139882223019340101483852294973056118576916919792379978261726130563293938379410253616109348812553719433559392883988150918618382380125084571298936110892552073597917173719872897050178423183986635200431656020826726631087828706828831309256355017479611878004061045125285740902154324341015096030204551832007890928171983064665085741247780825436906583818986418976805166887169432008415511356491873307528675373408681441023659689536733081993764483464180150487616409174434821491927116652116146384127501995824799481003959792297080450417176508342006507273872085344710768260619344739014434983655552697895144666552638118679318287385507395392630387493570991540672467149015066364214296665483222222949773420349759124209880537237990273573891195138899073521631687270092111984650508238529690329955203224071013019881717262820274598715162074550818769098035760575915010476187279707506926931043880563224595019274662804487624410340314975237264685487897849815779652828681310267724035052733383494827057615379730503008216605690371444339658094714505474628355526600154729209589494666748335072120628882627448037362562444911208924921457364678473481867793227133846525110847563781116912914212406535619006986138702432965827094965578280952715297749998699239433674368457026917836904626031782504776834561491390791954193630865607560103574682124399207416915858061174903911834981941241928213270076511873473254739768796755405111259361365402354632832446655945903588865179631370522754145625334345154963670299849827436935134232204372886948544671405326160503680021902633117579229312594377051534699495154099476710604021841516231711465796475384062283151600031644697016972485036332194372150026014236688810918687456248533310980669043402165884797710277318230358486379637580681294964103674989562829994615359762329484181543220695652671238246460659090155980611838634845141759841517964901577411676958613316332951949731504796973847420854557083645006979392533645348085572406732916911924059774082294425516470644060083963077585941559311196529958207124922578323058637851575399572733196340891508955318094050311479577372500975612396194670674890180350487343694074344860341471628223370467478505159220635435410883562522229738626647359038584246370351656000701679455616402638822966983565286953185515257473815568329863382907515483773889822913016834762708822990356949774728814072539796935299187249824234318840614549386903302112484882908773627993073956289780045637671088743412809715507891469242834229181278233172221854472423180668199486559975307079922756975718456369949708500509806978644088155681155331833412119563665269191979646233711384362103217550461451255722751292513227063325943218286452681215353678265759979478023612823734679534228178159560056246333392030813330426599587468243056141660111514529150215530795624663472131755810567069642625247571847778733873030734866403322227733799258877660823826867813993224575689324881993418179050195312077888062378717084078853442677941116016361049280735406028413395245720492610855435009046830813968166856498437720900592985168715165468539908446787245969171475491078540818383033385039890483927749598093924012779324476198837948334245850590590345810146642360253967721631236803691205795342967759428289623048302958295387089069536284708422311381489745645258843459575696898405378417284707146781539619495832718490890545582406867964174577597104233133517065481570130697305224201948809883290130954096634548863623308641503885759451147342323841155988767763533020042761848399300642606821850332396836461141528207651840137291343560752745080163475820441165526532798761877526326276906606687385480288555621169148858956598808430224131293056442405649396124079446473683167699827589470208465379289962435387802152544330468879696699692722985847248749645010381599355800413641869602130418386417452855358746727988394947570388632286418678703122069320546988606726715956179785099906157504595690030049645959073218636971994118260806912644295863672406196894128862588417236868247414310661386907652974310927041445758317143055439280206262341854179840816095156502580085742956565381943833604020410093973589912480870784158846082347643883404586685038910474105987396061969096208106566050824570817086217794890471897895939210261628407264107215129334242486166648599557263683648385947307498049397788084498876817290603594657381594239779258276511709081243419168197125453897063828490083798851028463693643593995232650582396126170183833456894443065332686764182861278043893102417960971015017482255295682948016192305180341428019307926749627351219224714426614752620477475365355674834484472403386475009492034165479995738126322330855059987905824613400506863013237788526594523315301918026270509476937088921495986318620450514433312217928424873575727859623841680849468614000908448714392440322525308653260020268762017829479510264888733626482289660330770459387807069499228796850797646460290032508902451394044012047202857806220042207886205708228446163178070881865896886141155829814701228080430066702739761978318429509635671524317988059937072953292901567398117140772708709018960434751089212080178698879463805616296263892205695570935861915284911443961472012318182814755726796827218743668873496335313853648880242897914300270112333303239846779592088246884698925801146412004192675578106421177249818989420127162997108560718267350872314395504528189348374522421161565568159364989866589387896893878773810377721356004336892527927873609133647838481120105458244074972427366526130879519069078642341041537422867959598816381546829310492400517485616940440671840512734302296688718917715347415927120674210581228872519183332472389266357980968732763788114330101056494926127571264943111015422460270455900028214537350561088264678871182097286273674982230031496411933421546662848924189134941788673616864827206444979646654924107213827252355064473351670625362243317856270279478083242034069156029292358870815946414166277377905632380565353850936296851320786851003202840316864005784030139966869267184460042357572103695552403537536436339014682498911401857538368616200793091435947899001466580067660331547438835554484721662007033192166103242809419378005560336098391632221059491111102254580376422129373160100594909002000275953307440055483950997641297315718594138393626262876344692235473478504804768900324916714621865927014843614261287144792939534069349434960618521426230581405488555947176785286273825780334931915001259873927632767349941918010754568195361693924500274519412584098537957147108462400196805248397598796306769674641073632422825361656633268756093459588011250945458405640411490233285420467121615815976748468533149688425577730212534110638755176541069133527234969072606285796499621427404738981891594885985160625373709254008323619676244731555299860356521139743676994332644461125999586636932111597634027269971850993913578869536756956619471612400588141293740687536247191768926699753367091664246155511193923406849015287539995013343281749199395750820661950468549762099023251863280934554808842214999360354195908287985105493524108268589410853725999445964095936683795294188231509591681207608846558858177855654760138649003656451295769412517911629965967341501170807939203332080654053074799019132974012097399344242816732993778935334786936476503345620282358757412959716168734611311892003903516288899243654944630279494811847135387791338628567470535459123744027451629939527978837624876945336363070813964645597663875046824816207177251970796709227279144418208526989894144544463920401462627625082477079388216499988431258797971951569273918117252084433095217343013177052765434940389396016432787457093681996493881599160750419695348598802918312326214904926576808080268983875650417238073781200562270242430196983614836407329199967752551740785806279196988467737317368822060435744640477647653915395763713802118121331639067380169655268721943290954735969501158860458573730033471736360154131699360525397400292726243388412210395641879918428337066935778338727451304543820953033325032115460299651104006551633155933956816729936958680813366167746567099953771658071971438088600099636921908688819053319749515184022678627416150879390270384597173140915513923322747344086229467352079031959751186963437827804364453041378042610475747502456362685709712963323317875933881437037438741115340223176438193263370409834635675601191205229457749330611650036523043724167688305300950607891471045546080366247730826614943802250326846177284255640650138539327318519452965665700537074085447041075683511028705568901739473820880968465122852669927475624029240892857909760333832583719637044502702353661453925654389196473598612385807418905484993931388341727286716614928262192592954137875864258956500365561302921070015492464429462733425147939084353243145473793762607816397876115460276214488781353678756200250196952290135856912613239774557076990558511916253370537658438453352255908848887343996391537335399137595576556857340760798092191029710978841683741465752586444323117951165138717573718081853986213045749114582157757838954541361822517419718167368108068137325978075222899393683217441554910650266759437133364035570768917350419268580678498163274985235538100931736571123332129552266058622608564307351569785106332701405860050320701969016254761738461490128155913452782521084817636323617928868784751938724194581279590692159559462308459746321317608844799758747439554564133336267103310732440539419034238424815746739845361290452994321515384278120997101054528346062079748466386359219557789116213495187212577026184501179689431396877902588216814928002446517625583686348392124482390833584115956476905912802429360023868002183341966243910130638207202317651594198541295876817024287622303547050682651904353878894755399251177499828684266379738186383930919350688046940622287816829021503593137848588118738799789131128295897767555135118127499726269677532364089780902768738750355604013621064536614107926432723212830857476635511467210124268339118235486559636581821210524452037381805528550495947487572448199181670759966542566485996197295998701366943355893499211224451136659260551168960016946071147862819176612224200908224811624759289638690576151289545849703349435193586588725849574974754103247498212113260894999778375621739187532961671710570664081916302723265214973677237625917668428998273189977759702929529614952500263401053761979298928420970030872667618217196951843735376658192548063358642122961320088370704056387837614528999085884259404257190888777432883731189078938461497919641476822613983083066621149147866751306628621199986899881669257683077279640303393712779583215899700373388880815585626250112983959915729699630164027738500092335724293804499598516550094336989827910712887711959292274560324691486443953699532446608202444112028743377483785482964569320840112321609216967706777023272187023176944533221189407545899818575424674320357617591747703950491204061194259284730940032279653321726304852955517817300106832735313649728855715833681626678446156644647287347590188247210206112821799659810640068914263543953063620438835005069776727919976304844597676598893262806570448309414563702469428344999673956765191499992950382702704457613298972176573332330799408275830348396075574472720954420108628527711391135236387386159883352731727163787779284129010158389588326053309173461764660528533160475163165629792456384938019902573719183711412318847353156267046617768925843876054196699460603449745929549236796147210953268321388471636836254105483886195601723153411351050275055300574849864470834343854595452788624951485843409189338779889319744258911165100236105514208281148423384952502503543830633661190746213098116183438691899499016075218313332115698230560616078634966312948564239292354298991224652427659123673342289016314431546759700350810940204868391305652006806948270769508868043513168663194227580341635947376705505479787684938184071174541982518917423626296565851761051217847744487324334411955499800647750563165005083934574276028107639175063179706335829314913440349752420565990127966937688525698057978395783600504944310673006560106877543681179397944393587544773623532132908213192062463088473866297145566743489174491794471078883346780232974241775921252054090939161757975527099766459717027507885578223088435274733463196597304083552647721877896264192637485252870901242867263393345777301332255014596531815147887339858716728119963365496949973155900944616278609708486728689916474401016303817234347853478959446930126000971359938022591511004815396373602846937829183359038878125294159668820200189936453593418632125691077786006674453540587594000188085384595867113163856788799545917219636860538110158538600018387845215095513528653966347929427222944218636953271422899867313399096731468046380363204618564660740569662493029655040669506035743407211218543535292185036564380175378264688727166826839312346139391881215588355572250590132370740631218510966109789814274709097016169318291266164410764891320168011375326964596661684004781022420004503223145814269058524490072414794289839544305402606388434320394803123058822667530019970228970426026145748827327815200955719344623671492364884196779502565176008593735030748616414109680439385994925051194597624484291765871280536894049052763343019075749024304152341251017101554233412701543512661986716437681566224174312959393717361739032695814896312831877898101198078411436152077851998625050782972147018673094099117650405452826396735268418684277097756936533669229055334076081075250228864773591870868052851883514985391230736796209616054975948531267578559038377300141912998188978981305561564767021651612085579773074729801322937155069146960754725658640979761039581547906535049694407668375023205962184277261079482820130896264674121615184515793015647285867659583645055802759418686904055976145942534811594354660493854179056291602508906673596880380163066471623237123115651343199244359335492438297679221362913228643909469275546190654702457919097987350013815997221044829646798870092223027383855767816477352690876928822882867011707726391889098467665082755951211178648714382987645099661212127797788683978496558644302657999366391832182584478941393167353204124279959859262985962105809059001917884880715208708348740793513730153093095344255045638175667983210386258682913487299078952905799256941011554202202204056198984793368007421986257054868594720339757136254516558218422771925132761362149773597122102472094330974603581279737503720583018000545679563512627989767215586644369729729223870011472441896905348782144225565275970819965837534445094142134332031995394098051557007940739254009007289812292641306920202702124461989019171747610871862481798644838896329101239784087747513361644362878510457271338210222149166685570683724766079719595549008770001072368911754582905699676146791305995465519607459428208861797159294100868405629029076773831747624886253786158926456694837761764562253251974794138105868519301138261152271382184780156989463479065060746329839774200936279923021540690844241323153917959168946829836756628980029253710764228502380751551988594690312322333619934284685412942504913150440816461824692191426695719124254539206498233952400154273698080129931449724459814686992793928925115129558784355744325686197426991203840371006522742396209735212725102642877116330898625323549659093915204017092466645177186244441235827924657866304459363178810689696186117328996917372608779636829975402269162154721913605253883569625848337741236203830250714423406943636563675341778168161739099542674013198874523938604271247822917562067556494281485036944174691457407504841905930829238116466910959213620898710599841625414094943898087377109186241106360508115729894473857583385050936632437389255293985990214997453848649236237345351545235791441175881267560803317570912215345289417394715786013267340052339469726375844887551649934322723729734647801902055332827979682015369971117701967963068729003869618642559747376510761506258596675433624556792087456229699874440902375895329449229310347163490953555828991356127952052147355179796333517530958969896711058601837726888571224541188592596410238585125137948274418809341000199844118876868889410977806377469923534694737166977089448868453058754744026102388587787773925416062629559820110948708282432489083047873503105439018211540506859693213923355123764899392248928925436542508905535895467273317514786633217856785775373733441455273794183835650824249597685712223402667149271969638441205484126974829317248124880622089488332519608079994758948748516669252492217073567652570772390400115249848690540820589886025697609815913832283162242015152589726203586938406905309949803967325141517332203849548288124844154654646480566291482271865897777822095017683365359304146522824276495743626946624461532960130442168874459274390643451336857700959904296177165675251673493878924990876987428395624555450928981038022504904215548482575859355034290999183160092808927641490174508913699572107331266071931284774934221803807099746072104232241817579650660950264221384465422413934667591364330290751323016205315050902346479824482772177141350157661836756843067923602131082146307822263809828586586256910838426647726227618145078220497262882342030809196916608593757153276921727771841758489069845143999777874236481140367560940428192875785343084156218881682543311895933187420541367280919810596744926454955278411688964512149447965358164627844677933966938910693803349408060846753004747517779762884171100984351880919669605506628385984692509770365051271182052587455966970613683091113868145177780764375999826243972223143252288233626156076212966957455570443978611411840072818452526883811775852463055899636126142306569003954583933771759463457858464732297980558908789306043157276842240387362499454537209664142714373498050900102686369178084767483284556712068442007989775943839832186914811859368293865590047411377246866016018314400319444247500432297640003973371753700765146009502281280369722306344916164088005596140782474887767157452617008730237526694962156355454664232739263259409896017243613435249736502986598341227151694171076156505737277505996142852496776890205712641730151822456055437293141571295944486890592455965532514346751250316793421513761046341341523291220546311489003841588007070943118937361637913876344436174283334661337873144280522343865956765847302517706900393490677123117440756160452158078161969905887198472537315991201271594330813510046526964629067867661815611080327726334272795815040929499136989581785177729114629471982409966930704056277583236671606571011555627864497085065899005865360326535392912934901601808390816488393981215121121039617058253349007115413226295381665397825837535054245188000996308417356336316991658945672980117281332793090226981134121955777595267817251221745660841400234935777435655371341929267244669524986172078578688710890155041751705028285460660604592835714208725146174166138258134844978456823629093175072287289570015823646188387905561206711467612709959970613976642173671385912998109598371856291241116117719813665723007664798430085677820460038406293071896025665144177015673923258570575186728253087780218484780606547365621829169233436599947462828575725389007631084641893366988762366904694092550659737893157027937087913168862450504352743789536541060089087543736381574093456091418492190143540321246263984931346060056142430933729999103876036484194434041147967196725192133793569571682680701091946926717733525447495325493192156043486907306772018448183558332010077235400423328549887945618605174364460915140081814508412372361827702222546559754780674941499783062769543317678135068769772763988355073992867625067845171617539084436092874480462625723781882705387038478680183437869161875104011830219823270379962252399925279141473697613833836222722923451458009457056735166962227217378118105840718966323491587473192026546215109568751161377548972499225187419632943586341336459886558267829053161226693311778184811555180858806232023274999639689899247094272125653667550251452275166858511381520766099160227802104215905424736783467280271256871789501941880942086322044838432524695790125587052878942413650698152044744332314847306948395608216431278064896453960441282141296106477621785116195828315656679135726292088305119408283440823243620400147317997981116485560635259053379436638816858516426094699553326820485853920367280977444099583380418270160475155646505085676319039358842269169950212035500395786568286769463500195358494828995539989491471785632886469006185251014832228664467909755369707947858655964479884915637827393042372671890599909624267570626353178888244255026610010809395793042304896174217950477407241298445148288927962271271599677244619073126510132485072878783693265176059476747831933447291794575360322367794382179528133032079835871017617936020641002236052709692332291040909429891084765498675356089184478258955520842637514175525546678736915328255058219718122297981895549659231084354391601796023263753164736825234772246525307293954321440813275439227872591467475214093819579206570595418240368061521750515824206830912785521636008061741306450670952245558617839257997981952949904259956298568136353343228542324745333812020276210517025882691776050211452431862777618418797303881315806294409903460532853860249126245167264615701236481338149322275471104390279392184310879892374988276832059924256078467532028619143322153064545139055039731253659276669105359175174761831907720129510953256245104154794149739815179826080861315605760474834349857701043707726560223125001673825676657838914809811632664337053505128938348328520224843443204188793532511652185032196358744987444423984189160745101496262476593322900539154504904222107075187889330049899567205045807388190365069431458948246602784099597951499266830731650498075875353134869729757506700366399768899821547142558483756112274679614379374247429526166432222848348939349538726614819155312031010278924168890907499385851838335083271925885325558117200270855259808534521866136590828639548020613421473345124725843090487795626641079028138002958019665326346185487082270456863403546299782386884801679216977536993430326324844606342218526268136481956540289569706076852344866138261243902717230497367116877731528744541318814045423537042247588767071541955759824910423574909169273367467354628402901652887639132259366433558002967425225281948406998803692948307942867139787583407580853410050217905320290557247391436266967035195790410158688318855063790965278874297707327066524439444156047379663340667463921913832858244448518386988102374914659223754998701196598145314833602416661636663492433781104599937250670074554279877324007478262573656810264463744983254574783148670005776096428363961389999404660211324007007852178079597462294560801925258834528174678503771963607323596620952910183658822338953131014244673553828363848759448515977018055225346203483448624006940615166285791781222618334717772846707030765680134200603073119747311925262959564576639703992859716340025985191924348152579657338955286285829140008333104798902026562181139868278458569832343696535215375005811127917093135748714166202013793078802737565218839371947324095653701610179023375767483472480784705835328264656933601443557393700463999668099622971989185010350152028165956449214000740760859139954739207975285722638068670376144574395392757140147069960578979388456552733082997800360868352175382972650479843711956285636262203344878705556064776923339119771118416988213861901693868089557202745314200751876721496309431886884719859672559910021486005552889230040641274112872638129933494012302462980187327255583861231510270272835317927176971642853114306166560706888235084916159995986759724357414802700135665056510653151281554149171325567442411011556884424392344100035859370207439012543233581144523737183281171252388800571458342422435033940452155993437526209175448703233555022526363331959878056777240065872435054019622960621079275669961920366833039556609693273124860681761792370440236852886737445045049297520240361965940890147680743583820855896036863994866963192372623346980769598721745213740737709040168290729930853532436185150674119098276841279092245488908470645523634121605832487727086739829848946513549987234510451475531875506518998978997406351320501514163912219195868890420141049882753899469557343499695344860084827460573016980036786037195968729532130827223789489201167532583347141312447350498302588491915709605970060270902208683234615879190983570332154482553082385043824130287701661587678336028912883982683257861516960582624126611755935604765773971468076094621005972252026806790763241821946066337925652240622620713484031679474485022831189001710625824828646997669924154151535942075615633777188149874094372541354066524684669253638239874177425049435175008645023374081187804702687808327870862173094273700280480367998748147395507117950359044402581861529773241618751302117560831034293828616251026798495678409997819514981925347588049553793640286765655602598308544635863721381645784008851476275030951222705213311013180336840993971813021818164858284999212661418308724323553542462047809711980170752476742931255832526389551165708807090866391329436653929507284465319888841261594281149224745634281996326645296060692144721462254917556948042568771623256054609392849883222840486317454019221976275118290923825679056413877425321398181603969512927644950333290528733474475423046981968313809893933718372217615759067928488043113802651411830473311349976330671315157574032940182976432542619462130549281024492847314900257273536355340044652760491872360366356461375764196109348231994687420046360891508661115665486118721792311422085171151755193519291820373852391136082757286940655131062050302059303436960352797523402006464041354408924003432194890478935348022936687435422725622098009138419614907551517227077492768763771445253670799907629866460510267608490391351812500078431407937173141947277610262156180931340733449330880412026872250567368004837451870827155942790595299861039746263178081719727752310999345734956087299590113361226182381997027679272915857224868461929201601001921147626916162195692092075373041401666379008758511557331840176929231133794037107530926788046230897835786858870656417715094807639737943957866792941128072615789838993723113436027158626368012234193101497305173152792357546055300920931978208348807189133725121170516530185302483361179550871817912045426625887923639362143613135408909356386327881114426377014244644175277708858275756923861710212074627475900043903599950886054546093415396721027958678110644461002087959580239403757848360132676804912525913818492728469958265709786676102553203467295837115655633355131136466456834322755719506801040516949585542923809399920205452274210963624245256830900035871291137576957164471731352002605283798905548851982980209436628340448107871072614707110729521611789353638881528963255655198170293669872928295846732843623217635963019177521251945471665467049086337061794385333912610423915451427725110488978578937238926044922005248179389273293150467489236897174662423336485019545027827534472770817723983053364025072693361774393929116670562916761041869216865310840844057243642772499652161724106725444895678399540949371128554416247983556582676156302360740407066602509886471599640793697742364525410060941218276786433787670030159956967495615294379531799483940245462048520332731237106419856768911715320307623348864721758876301737015101957651301587158556009124622958701385111520553767926199704352965569277055576708139159901911607844390098087530218931151645975419352418941490588103440452995249298339660048639153222248137197441113795396387873528217441243813536760247377606958743908734139779500187516317657606083516887304088062858713600062283062131846218934736618969059354882531327908990527320110578655714804877601721411442269574019133746866568524526321072058732878013231900388330201526488560998336909518197268112145190835329446976900417236512691293445518006237641166479168253859946715315923001640686227226763593942818968175222900700866745534308155583891190662401406598726977043626011124435912420785568740358901774052069654907035944403680017547058956194649254918627136284325605528657675277995121124003947383601823725231820072608362116581223828060694880378805550185774391849183596221110264616583762885440316006470071187239493560419661588840111194011663700994857559812561340378117472204828503950417810773106106354288654994032348523931625593570332167617182721572087945220267458083712799737739059214680860769191174192689674142165979762207387542296670599788473526011337065366249385509825755072498309503507587383298254651221788581445399437649367601313618138039975860587259381680364075110594920119840767370637490573452480481692656288361314639454379586796342608536625891185577627089416265723912435987530875229500924920226623920954450133633657868380087467306719585567573465646298269711022015870656689403551754924480903063770846868432913890784724810029646686267258889732257361853304846833317632338418055253138480949905286205264652256125121015230184887288754204712402262807323739459918399423017272807818229203854139348550154763394760591268871603736535235234530294607353886828052677109601437359038674855485461970119615106467751653942956861010585081061672442208478417930421880101422299101110800918587977489226264068588710992172093972804131896168157228769144039428495878917347893732862856342605367652573363526905369741956575889092574555531383317301680999323644333391685293181690521192459290828051245434745024576400904289154099697149185248571605531139432163279150440668498634318497483433154490301008933510188003309545830277648680077501663644571134830810470168893311194169942490687481952634876577939821353681634978598752321993337659746383986994484559380230074987584095740684338145703539913886941700714148692333891975563899847890463922703283677769570948156391083052706220968579603833416746058427781326009773529772988223940484386312287244264860745565410443827319014537371355819423715219013175508023783863019704385751110610470744132111485463958283607604507471884581735531144076684252028250398989565731223788435636092199323735542601486034653368340056612812911899374272420056753817459291572237542990444162055711255603932270058128535606748649226304217883831737069446682309875483833984584392526541864953049114330453617020982581736015753245836666907801884494205093872877486357175653883279853278572512160951805830258074759428840815177202208132572125335392282240556232910965543743611856778797174100539412057903339115657238992812904014718494117559034000209441457850297955244065193269882562139422555552296155512828291895622459366055878059175614104468797495431829494467027124627388338668983446217014297643936963218022881453195346557565401633738984306767347626237048590011777648677726519906087582952450103533940790114855248245632313420282963706234452428931908890510805954884503164134354040635572063159514493455239712210124643064371626313699602769597995333228249988899249332614535591561456984538328800226664028768745847139405429920417434551858937785907180285866272571147537486385353675152119594168768563998755853978815407611444425183997411474220533407918304683476115566089270924290291923338520795515598505539036437383672878073148284003267291805716369947884261179683374092295057954753379122795942993623931877684563315268519300697152668448263238149350061058630431407886773564679863957933557303670076879888939948353785381405263106928085715773094300871313109805514643348045218787538048778734527012668992997978638374456314771527546080326043995422032322617189964989377419780474069078926055051232223186674080379769105974712662310116163854420487869019269149680988840129155835859737153628708129069419414301295360879262150064227350271909551478346550210969882038440452366021527413425683015716758608224417091459534682993067779836446144915245909566421661043882571825621824541954564506079633162011628894444578079069511401657784418695537516934903393494594177476008397998458356836449485045450772831008153268261702663380699480799823425463748340533036864184250035481153207773418654294420813239884621148861477041941408152378071360247880865253713138167950122345580542930513639647734550895163189020432927957745202951654637074905508129520146211076571833814462103536869125527245247772732715099889007129944732746211602813825451401041729317710638480684338631420578244230963656779053910730241175001040706632240392099232482764570105691809236121083602973816422270754058361532358390245049040414534797221339894469029591853591743640874417870089936971267781762085059631457868203236393192240232304772911653774243467052231346014342780457107348356704438212772805502343886127745521237475493555261494939656839352436622755524289940339290561803930754615485759066360311628938204911748613541819574220941568417030402392340112525338214371263085789414570254565362442432745925297989113061260444630973229178217529682774682586951928455171508022880254460678456612633875720145629715892872701732764655806388729956767682220872916245214856640673059902356200547101394015947711930787914789268144386926699745365195316667809658315115182771144745544455937621456055683433575484368441070506354673566066844635569610422025767464902056157696667732979769497122420048487762120325597428062669042530695249210738051668896540290022559759233148264719280278521507914680230225928481926559021859744662515978314050632401782479635906263830009853343784257991027550503231635727808228519914442713068794219766712067676186400813007317415192654875346594097846449860107961541941135096135931754836202484998019221598675174422310870430064392240562968342357023610792817616155661102742346109329138561700387095871431677783206094097080055736695804739928886741788035012863107277606672720459992552025802972058792717120781768198185260456044807512346382433329080400993414886796152911526975992775090811403738881634751460467521230773729537923429940994967570526805280226633301018501785334670484416125655191860613387235960625778564394149659145941898540697196383482992094281348068571281544020885286902193983670350501753568598194375542470039123524155142853792115991629441597031573223137789692441211459851753182842611779755380618966929360656718947278295834024539833873653458939974903362148134780819200798152950762203580805735424562070604141766559614378029454863367518003813422560490761070683686160611290348252630448768368987387721742793918039515294802986299372226956139301167118345324062550432433354565214674173521650178819020220338250994989455254631077190758929418608424908458453690104381574407482182990175247737455347153171520474276154950612013653599417349191347098799552004208537419173022886965929730915146741255141763724924015486823594219089481080957166683562478627021108742406169300686327034426044198206367398007102663007986755032926552919409251509586335316862797728695916096248798368193897384600043070615402361480849096676838666228285672310016712943851065556257126549196075705255426502444911908746944023821979966746090020430479069313215618615253736258503201289813311561593011424558907127365173878311190229265192350929006607245646037181132527738179215446451538288081380151066042465746549829275633911478738577844359390862786485405884606877381254354778342131055010854729591232234732649659790143659780717025935840166314625767334585545808407259390847382930880130035327278402034844095533904006566812930176710522440140710145962252406999351331594078573585700887700983785683548191115583211955326649951532083956500320135086491667138840444809560319644895502567345080540310677670729780364632381789461163184374403560480113257967557304941705112606604623078542445155952548062785823839468146164573618340717083398741975475631988270027775047213263974982730374520385440717159111354524316472814858708140503635602806943298445457451674712621507959580652329173227561503848491022904386634158994055090537359101949434710395198898146680758005521794872575589550074780304008187767938103989681406412761617169131528318710759236184537000635632077885091180866913417437164789521000703797064268139237205245709841068574458009501824119166360416098684474145473692293510778463255579814485774077499527408866263550393660612793906729890670014872397114212287221973438053246230258539926373258314788007508077917281551446376253822622196588948559509469386996263195595171748663329853312649029850643407339081859090297658741780053081422778858613452371093616500090667759048728170609111170002154190879218451465323938851941674696488308702647298388968869154508812864745124181888636198000710277108646742898499554440574099580559973699630662779360510942348110415215429028576112206624152292246068210052276160140873845053516416687908612303140808946354306727157283324472818828772951719687100256594453708379469411742523897744459875095719428607964247154389513038511616274634830456829842382605062620067777703718508267675810704572185435368063611454351300433229591392547262654504410841405135315754019488778249298946003629525156100613203946865718555323373662500519407052763872095235693767210958532774538435359449051777977856293484891703411169747390143740987594707078840493415294003245188834871035450456008891346245515777307527099753700398788830511074796415121072456265479332175029313908620324244282625304621034873920105844390239067475443588916923171684478055656378006477955585840369281574048125258327991616175142679266629055009703646794367481302113944142471550184566186865145137045785111379538956541526409398944464664337290693095366609942907052935274671299416292602024912918932398112047661450176496805689244901994933540792822394398834689982683870778906643769667825643517849964602233589043298620345858344953010081524559029323278962370193735619219453745324134236653593194005386529644986971419175457929265628180037564143263264845717186762891887780400010552882846711711813099518883625242366279577232647062244514831141545302130544301085172920980400405601785542162170169495757334242664935197390159701905687657233904717309123560412121943992621948358806549772783399485137335910077077228333585604616619067148856139946532135373511727573258932980179960291725004432414230567536202991895847382969541213481847086413167249786417132247488733670703818888361249237225295229923991146071270896013101397339309953864550880108779310436694800720274462625739667374020474512585936006187517233439001755342131872484247296999509490407631807570156338868641830902080240996251685266091370930256759963786606395043794715377215087117050195154302612829953658859561361260727083340541961300300593478540829905094809301147273240625937784561325515247862879619720394588579973753321118271905220794146194092715279800995820988746291728696204849705151407271152618032560026742008069767991859779953895860145608416699387444498109641318750885980848844576886657097496649347909397332269350269221743804421348217665533137490610206261253261318320750833304288892321638455041474655659557240276027295605247962736876479779653115742488138162713242321746312549467616951949325819218082255894201926325039944817244883421767921498070070800886283333648071945164261153914800072671481005727197778202266175402986764758041246948283875752675246406343481222081976341409321532691857821694621256265720993528987716327648909972143166096890737617490193237312160200408694071154689096278923992917590019861456892464392557460274609322006385395472560993328625134313069036605424228003469959917504162256791401627857728261225661564144623726666623994837744266691482873470828478487974629720535385843728769937221178739733936480477829072528457166367503682299896356097471776872312921209442089574434476954307679585403804750460348337183834276535240479354836033886308648318546232636707994589029761504300065520891058053549848262882224687073287880972335839171366526598302909714439519648307580071462549907067460135422112757667515026489905837081917442458743816318699844585630794026107960988125629625282278941716458012904269020936311540961232154407357688152334626512946431575384160013625089534327843183041080443564390399908164194163658665606375200652710187675304979041780800757047290885722482137779752944966192043863011426854525307601826995954959161838270022750139106445783876904803394170720557803621857106892452834510067132373546507963734015956676787509662513800723020054280605734369723219581911967089310820721363598795700854197788413048015137368002807973574649325612074787356432390834966233047901693749337749980409763613787019295667772349514738149031044947194284779551333003144734534449131299960060163991770680978815210537079364295096858455067725128884954719610368451313587516291954514823469990619600060686070979318966236759030833191875215007902552659106054534110729041544839640915467260237671838505532303101001076237493664795700085495683751037776616338693476995962952038752506342225571823280815289055042145647809319457617264509717206104103096338865316758142614694341225659932961194690052070343583677389932679468144263141685538658022364699597064142178594477999751018557494982993827168293920710650292318551011314111353071958002309250168502538832055147243614800261034653721964518156668612710930178660425366374060931216733927109896749679321518249746179476172454947660453726989021684700074120472105222086959750026465181598701036128993173505325351978444504041347462937753682144344477695950554970876994641632961672908135003737401593073402098089248039940714570432037148546032380283545899279589564218234562387652481640792877029936204403586528792961131419991715924246520805590870599822185303215429450513987303876034275576879627453104809941838368783595927701119382036073473390622897588235674661077906418418478821710337664496275246396354087031165882027787267982073732637119674179664037133041793631691223193969757900840734287381782389968139547164128115544045177200506420584116788677161616247770685210778057166050921246673417453261010792554666981571344080583561166823542690855856294072030931452106973113607159052621992249225779004682479134736573223518038746082290841352323249841887421635788072528072046737017581983578560949945294271997544784926725309845408895001060372922918781389642299528704612066174941680365125903535993575743870156174702025324663899342437163653113028371251904487805305651753094917398875369628751497970153634608188682626540906886134840170734229151833152790403898620641192661504530495008197144640761783232698207916141123741284211291928577837123217858866803396488131964843442357959430339800229581674409792734785726273224734128296097640148545424154990002285826613333337176785956181565971810994165856112569810061685977513423731103434625854242504229037376525019171040698226981751148639697282029571954716639112145286180565098802145755851629975806418551924105949164897596243681092691035712764100730004405303850841678264217079805099089459034691451916698994073337183481299031043995451623153285247574540446748259094267078873507325176676253249992713947512610749213657859566432739483673837274926006349896938090825867663467757816843307811173087187096122984836325100921378400571939002821789402312328922295483791248419781271643087856113571567322425288727563898519746558104122675046503783447175889994484593758891174161702697521437267200566763644122555205098714696840311084319485268578619246158309376036306521587017447395701925107332175581260422150170177304278588931759408267225739385636238297063889526307258483264730263970692176783669149679007622125287799715480201654247159983087070235847980692910687990692762207483506822530257552042094642437682458099606418715670443932847440853955573619517215203374634232832493772247390659087040274067708810281409381590576749236481270895640406113808188139317102326143697804956582660520319651881744316491751381835859387185301758835051608831359822713402744288727217129863831474278516252856738487645130418793338110520002757672708180809528374935906619383686109428455260330971785012571315160504523462936434656362793104616903199187180957210180216329331804730603547850233843676279603899984285240564183164748223912212512394271375785103812195433863117650436434885248327417953828690856692262812743568449773552995914587426058335183661684946209947642224150810175560879961796029515061769313126236211073870237411813990764204664856071225729963440780567319515223364301893833370515473544927163762364095028766229085592628304679747890313716078243993892236912922520601569756930534117429417571056447248145790794093462983682860966457028581136272859909529064209231069175435910924368328379824342241349243383388016525630223059427290670451832560015544958574295388085421981858616256364660195800909604574972121928877529512728363024406819851912720178944913243693135588843762823294888253553488572168109194443169278599317063154339001096426092374047572840997952124183181939867756747257770662942947729587587718446467354478076055364103797884250241880844836394563820772333142042785526651736360771746714235960508822001952931612950843386278851161553205725284003699642572169305992562509007414064608033186685092969287407644558972961821718929810548818185820732248900229631075336345380071348597906320554692894866293745114952123182697105448812614132963093401294070212624158608174216526589486887518022614953729656730800999979698566863450221467870316303272685817628692038444603928625265650448208885426778308186286749621229058505581335942782919764735287071692451641831834498916063371305557584872879656934465547765992682972830302970952065129245715070290495843925938830734461076804977838203367552681039834159152837613383030501856067208779190332114150831119087367745249694778882330511180815144559599471728896505888252218629079396274730387146382623775345038738117007821040515692601994466830302389336394866987831530407380742290496617716337249238324369533452647933687968868878848763569726411197654269041262999680832278510492120294446856778972032876367296652036337169465616204959875059113918094883977137644461946419318532181253464480803317686332994536714166263361210231807644411505901110408951627414657435602047841268603945375121050411964145611735213617410066806784228102305680867907618653411307418508231881031043646390392959114506868672672232170999248903127735594224186343732169676070783076698582059119418846662778396288767719096963049689078071608682844811528163305222625082815885733697953357474266809795230537979533125514239518353115472688336979086219252517978276103113631060283693432940974871819227007541271367858223446006255542026083692817155182513288795869971405627155602917604213883022609307883028947275167645066438788736394804126638185837469214178821418667178801256122524270622692767820583984473770428888357732889454279712965966558722854462010952372965145955049454798821496670762137490259611001160296610729056017450692775384465546462912552477857347124421818025299312962940809355671248754801554584735248248380665610027988835909064213748137938311475989266687634078657404635228135241172445719147826563305379116489372742711273415569801799248144495704177399419702137408139755340591923128972016687166003864474692196889014081324352044835302171611652941156925095130072319876838757394694666505481010232817296489051394416782681367700213534014609865779141097755993845596448655922215550215301486934639623151571717566943169095531543943661011418888518160651473999223359284233524128457599226826590693433366666230819367856498667105989357012433020480510985359730891263284120819518152365250157378685184468572121928887244816533137459344259245679741571943620201989700469633995048897125882344035789470731686681282963237985787607696503062616505477454860288037373035784063354858919971085034264959559965422999667692363295656575883079300512846445136439534621348189773309311391339621228410781445536443838130061891624795017364620140607087735889695940445676152244462452302654234529138896581213270410561799631918733444391122217499741118668320908053410131326314811340850688076968488276918737898793684481541974008505641668008489676875139719866695049621923646491231731270606118359269745240315157118804594389530090535459985894608874533498870134580044730982265621769790900747151163042055748760556348337591416392259104912012495422567601827726137812054619666205342452878644329734991538243387691665933200680329537347252854436865060369771915199642191749037016942283625550902697041318733960391511974036779490465794128372822660814309490064663913925358004434587238284285564411447168842767733956301311644605670914182820481343862515724055669427812089509836487469127704646379569081442397684178115672822182723251394574009262065713748661755582477806840664740155385039121742220150007964539427213362351454693356548558365787433191625660204675981356014163998724230088577524503075703079705732928146123634912627170013438424798386480483022948819077665149839716867724604674910931131733059428797476889665196885346526092694726538549949520110936294769869900572466834702425792762803710232508073693531637452894086568183111607552122543315975260052301002101348130270933715967525871258637841070624370294926383990549092825253260485267789953201578464962990996539173435826434205716917336727288500313068049146583263787387838429447612357330218039060183958220595515597079683266122467538586206137543399238001024306910789301516108765635696814537905060392611625721261328629197145461262862521950080437847865065651219214951216427320443414250299700021768585346938047999444446363663329495359467803706036874232315402608371376116319120178547558530776630820976010546599017349960636481590869879495893510549787344026017626296375474380537998451585914028073153616617159425245280574445197907316107724695103351012731090444653368502760283292639884281907707775195945451721320812952286436435218577363467915586857304925474054994241322172012127073796308256781981116102096499440931283226622253462620763379972356077493359308519257208803150004163132790337948942271227960143182764554809952008774581463809293522968895948873848392806290240151077485855235879300686801793055710466786556817818633199810965425979065092488455447421903530597320426318739050115289858447085228318150535690484295604100437878019686294018089843307545802250972597315075272006236888901954086505876260218683126168585182037084040389234633341111294181762873978464400854262036339281306534635132830916245954023643613042208636991574817961402104957063653223378658722988354809100611963641539260329090345963066226141665145091930425299958518257246031597481850762469508927055617112307794771692793658811190020715615220089967186493725276887826399548336293113251410528782038350665379625157461123098213549948027600773003780372256791516649363491329744729004585956099192503212920284287023371314451264429459863540693747753674183636715634117069437351211242108417776886480630501368196662576559439757715333134392838701237617068908734190215901192393454461097854352919785047711243674360865533255890091388519222134872835103597631936741380364896767960969029434314238576105977379637294020417675061864808659410413122148926707306376252651423691687850836456919560601119177518727379501163650659173412678811769145796747891032933212221837540859117137583491081877200911358428717834211338697025211311781831539563261729184315417955512922669609993812052794034990014673328027525969183554267139692696429542038446766147084703194321749215595475975390318194828278790464461932222244627091975101903600623430690349378777508611920272651511413177053112184783250999038141883664456281148690051131991604655407739257158092979175632842322556727056091027930724286150856826385443791545779508119763290666251833700158219616441913804144226126923635776719021795729492570427302659952771104991658014234204512647770905163702308364779549794116028141966325136809030809128328918236367421618654909380789810254992059472014993104280760210341083788569360552538795112016092890288302606990818357998277553286756556082850457558983859071141758545719219477672874687913015628067476118036928101312343953374552057084646186983621501308901882566510481869300777226103181510237451956336145985091060305471787598448463199832251155135571966186954960291131456535564790938279431533457257681497526631032839582817359204006259863424963761490323499904054104019440591625108220562847437410969918803041963492771325142335150448509468297327430758606555703536673102782322241523198352991364799926282528990677201557890849471567680609214711811020381805657313279022197671748633579420569967337006607213058227421062089198314245201818674218313888445949811158086314103836520220896077993454238759232578817639428122685789304968278074953985089604956803737900374661066589577825925906749171237406572849275937612318915442162688512782688992953933897477154780703891002357545630368304758286018465794594715385876339853163213838424019280439309540487030714783789348607399750782027982882157946236795949540005138494849494692390484666261601435101724130059515136934686155746542866943564176036828050777608523405804162753428392578788758701579908572132945231945008866131209888898157557252855002620737095812336145944887784556534577108716340643131549000858176414518466270242983877239965431336264021153713548746459205052553349589341194516051074223201860137710032669039093365605923203518624359775424683005213253937767225865809868476160934661089520591611581261722910349262082713262869581129886575431550588801023829598057395460898819310019690119153478685800510438636761855408306263521148109025616434620255459731952593765258809468584317823362007949702324344675943033232836312269658914909731055179941405343715953702896728725536001900312756155048410241479792493378679417908984393810190864279742612327159959960802956837421913280993426230211672349814742475217968086482459233433014578952740249209883299847576979915788067865522529424384828911506986483450621718199851315137391058747554668732937146378524458773012705650396217159002970453089503237737181613766506738385735236077558393383311996907358977168237381266155238261328221942798519384953392895849387446966656705627331782101077721048648107760084125546173880952503325755362737559694997296294902996871744316083180705496952770240346562751274636395498691126239990404062654705497911011198845000981759098160838701682461973629717212264724116217891554434957405156655226229106529793860219497506580133092165423982701401194578507170711601647379560446987890801309815044326016838377707296043754206605245951053786427661714344085047959710218973235265346191254711759032514013749058341852678549721128056735326818272502407283095168323463348364313576788409866788740901646619590050086923072833995233239501797198726396623169530915959710783005994051575920090020472866506584611658792221327564290099758833007468075097762110915758027746605562558528229446100314371991083051234496675233083962215392394868662106323996238511907805786225058581357128381455508589105267721788775575591681224878472797841745755348010864736846475303842418280055564288276054212268470049783265055386788096876737053801167401422209258482949790440568723943085645677281473942976714370205237271027998534051224866888718644190899970169236669193765041000438886229521858515139184936917992344613033857836978099337399697835983142797056925247498001766972494825238105803836275524380650465141092919996323563752773859484419955668408513376784313669243885180527353019889511001273310014904717384602520651717097502828787975877427994149109851950286075520647132240992402024507378587008539521008535186433961774871231690005316667126707340559355411368884082294679651731886660321466153404504925334186618001955086798309001439414975344622485632593667764439907296172569250010571230482735199349528595651158314397608981028646938910134427058045758014654651039678319732546005032438976243969164513135427116657356119327855191114710705307368668522075198600123018650367266116323308971015380060809622667512947064748299572892043357131435256590313868043260502123671639065800708539452198527991872201202148178142640178291436897851882573189088451311838534717684768981862746952528397981101780300738844235151700073669794478321316551184342947701675861488608502127424846438441031388587773537396082696186348343240423190460873750186489593051799520719873486308507150684414735511783125732612650078998528687418025610344020228899461180694750602662253069341300706435801982070977006218692127733674710943233171859378228549315362745588803390963260180118607180028592213820452078484173081203460331442768637442439281239295828928530575419181805152803503372471096514639926896610034154686863036554634689946833888357589406731943281423045014397519852501593575779772582611851033741686319010933771087506933218923370099198653407765531503499802361061224182711777662056711657440784481771881937036542202712412425215583151614888388465305409664964297046031193139593821734997181439816988829277336454843540464836755152414910693209494425575692240799258454877271622355633422279799338804113504527516931753338232491228752537365291936708801618538195156169827598888496579735073603092815105927717441416527158572186313646824169781913478970211443868981863606846306409261055287375529976275978015862693838154495706369791228509212610734354565014551216910543524921006597067629863865215686450172810879446263648872822020750818866013777036704090724804895840834213241381517957015136530718953527166086775586485331096752015238383738414232345186817388750484963826817079981789857877872954756940874480634085004736918292760607037520274878908600108562916535205721499071338312882112916198992658504290937670940161022429870137880789676264526181204570907816112562868226598601502008284396761152503054450821739880016389790723138031775156751906217076795945903193130790512887402454454281830369400309918839801912978273558119527830518764781851425867541319218891423235602611911725789920652654070362190563988805412055662082148100421967641758815046564337922364234923036841310589247463991231301899951739931380434385889203507193109994877943460495516013598631607197941350860110071239802382329108486289758861149364530022887916639064098164494016809528045051174183321544884641941248911110268919435685347278888840064620003537698410285129287296351375719414349416964296835795935569256896561878024382785999003050912971920409231679469958880236831561586091234174439437118075618250042069860896558325269205072000031739025469248459359998196264639540863879233262262616102589794355953325963666936765209825963082242587285373998491208976645532401593176267129659075455081048061862262359808708625115901921010887078374122264421614921720901926851419185568450389138388093437394708015225927324847374093440371223750685680771263669109045013517794276236075796708375625103516145583530949219686043405202810913693250529825737452323607546386991005974255344490994262781068392836142675490712663500637276271939367796829995646305602979142130553265483041209992790535940534570998451177091340711586831418456703410709388562593210837499797391858073278510762015719082409514693233812653370658167440210607117066079562698021570846754527152916286132257248211721769292415413357308302644468734636852077604682311606129892293087961940300937780423927485320225132721275466948082342219940289311028321150644805823269550335526754763867294996615426267917463313788095940221821677039923806352860722607660836129172648815733439271186649942674136841810138097024419893779169773967187106794086423597408267944738731503361116612652142008764290782929410273990658727710568052811574561760721153304672741183913739289339247573205282472648499243679842355364434406999513826419726763914374707151621667764206592196104338924315965965503251722283644888632403505918009158627357645716815739649956200892817416388104736549323222583876247178646640864398091056548642709800428180822402118416624478579502668018485138440835565159547763264842240352834889393566269215490855300133923151764704190373624090782532482051047907641447487444443547580370270000922058668933785143359415387733875239051676810019686725909483832693014078503703090972170883517116257010747491434556566655922667321405878838979692569997175807422873094027490853005497385076833628426899676540418029612450681545079842319929483547413322674593809467054552554388603983866071919300689666605734323653967581040564963401655317415743570095342192165668539844168269528716793288107785460716439701590274805423233987660927105230589090581849088569847827905140681121083863341472001478532446540449228806311248503006785965669241752068961506496240233870896031488953302769090401473907970739984057375477156601499032641959418192368807334327172588980902270891524161378882657394223508150133341519711029649386779896649678710481807837736240326177748622700563499164873294128187759708441409885891764603972473481634436252631882296103050736777403765585234166659515752001597391367046213443764559499887335317598070654197489222637515124670136031789423310751116539123110687849394839087803485930613217442426758868112386998030736693815576003509126563092895985886534253706242502304844860703869296118881892048700006269506172416183692054456399343500314160582730461688705985957296708520407748459536422458752279252070512413453861251353327988566246571858044366099140139512520766577317490414417778084214959035966448716960766934548501394755936222761791828068237191072796933738971591972260666635945414762469753573432210230521688506676348331113174826522587944583161708018055195888358347508941681736385410270915958424684291811965729925760173931814152106867536840825591953049806775834923237151250111380974095439803196067735331147272989502985974997198473402955333472286596094625498051578295691434995906910291028393962202680318281110989702852714418898831226722666301833718689145664971590668175696369510138602710191949638043696965188161122194597393972849791038102462310549931508622692839059231809209147867136618697880151159792922163777159505499664989786674665406454964764278303234342997183144521785862668586261677872570052025782553000704179551339205322203186896234819450916641222310319736811214842956493739709045702906128750403748874519617876503233080223741118827034021395159751951038531424291513867739764732044750883874174949200056471981607738126341364056296391381695326914269029750651358553370132988151999783475598086726842798234777633913733718020524835766818435970517887002951969488186200271636549780031829561057368219725543489692768942864365694393177181399627289765339808504843143031658080576132404018425725061011573873854184552073042480614060864410953620272956547529089690347426780058194506952558455788620269072437428089232530422250018847921477058572660465377930178387217825670942480206508597710403763627450800066957252082749439396418277922741390468470969856044705263461925690158747459521487262991691140590883520870840480009716159884175519620265946985879134848808507113137153215430829295802145962178407600811030139091503635280301766431378169108021190503142656359929019147355932426441777447611351813360327574505330345540859799965540821897810879416049757763008600514150986333699450479842900402502753699638308007000568732258109166840749863770426626900770742249904778711064825920550205198820691929560701967886402373709015268358099269741549108752618234317905101475161108701515638357633852057036600606862603203163437991848780464837430545248618257958167119304026563938141113383302929131891246223386046351497358510544011334686177692185742165050518132796422287269605016101301396598208046111445127486131713850534715945607986550418884041653886434437217046449637075579822604524134129078651524386061295290682369462489081561771577098605855725427114602406753498966831451298411738921916446100913135570439991517129623468860865809821541664634888896619050884743875206749151564930565186199131974918782383835399686785981652869159675416461735212717679847868046025340178996364334463946597217426560333178459386867210949997501418978427402357718641336755569638416558614450695018162602499366197329131390235780612491090522500829331282608681440785336458458923256880563696067710054735534560589613908871794627065991211475353558831489951686777327770328319347756018256972258330133536891795757598928221676066924627355937401443431021886853827944993027335748081823613851182577494229555699480379567147968968589498276613897847679808816465805068581492811351074245239208163171944524399217017217871361399247043309464784889851996137846481452334987121547680014055511076937734272909692801512525953574087483234296340407716447807422096492953155752330936123664346903419181170392524918632361889412091241422206104814628915100094474386586019749154572943360280172765767815009789158992015945492718020420074459146176503154820170554126742933462788734652156442144864262012665590453519614182527871743446469737806855553018619079326993558281329925697844726918359846404179624776083187208301148052103893399018004065820426680450484244018436030794566633656918485268623038806394542538949083011423565867981349756214606256712876308831660751561142624282001201196458531416511085104288814934212412131126398303119705349152101174244305306509625103562558382192255683773787426183198453563703549468229370536817249816379551826668224525263198447532241377123062868817900089455468564338743454067677355017884086323057674560167463080590773464170203430773222805120736332565148029156868591557730128056245316276307936680578709992895696082162578033188932774840856614342143796161946962700539258810850148259187179913530409111698043731295312420434938437306244091353309003632253073886607174849431321294370801865806293038360328081084470890350514526588411794075508750562752581621347130368514543473856005299954622180581055964959908421887181150001129690481066741944553580280111883312405369888647031872239894118054715385951178709067880543845560626839896830103600267571014229880375477334104922887441339340012486056049177763582544989392441247563212330182064324567656519124934576008835383391019983998847723641595847069733688321187495755934852682494434786287307734360254883183705721892076520573289585415214534606894416098841552075937413306602822912967372155485049171923127031409512663819136349008832739107690601944887112840776313274984341796994930127244896448559852943815790066877694143507706122249357524732883511282600240312886918591360606219217225778984724253200077381462716309533232235956686915488871501703803045407715034732911547645948555517356071344062185502664515524808923178943963004413131865271270737951384031134351811877030070232015646627120493730368707102652623259148208616888800631304797907869846338248365224057227340456523903221823057460913416626499423133307032605939538260242800987261258679122913304193171334766433640158286315577867183906631249471856527626231280574293858871158152769689041938575064868713559045226709399903608218734403389500008651389250509651787209861523303262611008654077998809255216063462818734450018481207971861440516401463109482280587990033583157573640636169121178826132482994775709009695073647393285762498055690398790059030629475897772195146458069296721555945528353864001091432729147705867984875791621233688199043635115926444034808231256354311818936890882185961697089479309319708641894566721083328657689523681361722697191031653528806895243584400039896741110385923592510840169860878423682440482073690039113076907209103371341008009733608414620379120404610311311776949351499460031740713827968696942211553190659906439866144586983165044995264571850866391163520793701438529585867445481235178514783469584879574545688534859170889005658144684098852537535937246456414120485509123487562401139935704349499720377552392674819781986736778910304728409980448035943753495811896669652659777588148544386449250362110651331038329401572675627382851598884434930618863988960443636875483366199511211406685866427241633300006641909170371639232239640860056033698340809053180162769838259129472737176847937319953273744004592510343569187370918009384973211253589158101237270710761008557554181720997110063814154696474170900714928179008246793982860259098612473437079199441510590822722514590832953661467204818581849330019954365514951607497889867295712955320906880271260276833916272831112247235707015325786694797150347565895027800627069442175574721862171180764935691881894077924886014408103877536744346657729093409242023848005937519215983736077741190785758927815076496805761041235058763584007616747107046615444797969626034999677451040987358920545559331008423843887558708680424459238159740646945020328547772240139455931448045023289182301349592983870141910393950416611959244095093102522299081024541948180347107925001873502675990980415297271332366041784801964622327410270005695109372721086899298157663187330967568513719981316800437601834356564298454191552704374018541837530041662590987962442165302789623903849473757032139655586777044887147057621056838684441951470453555774096699863003552883460834389497749662875932544702199565198965155932028609682755645758035435258838106164160445110178255108892348632212913982446163160573643342350589094743713829135763980516765647599878612743178590721646211457460447204650975816773785549245375172838001699038291517890162091903794084889649665227773271922860616485102648277578757603858378306242460027372633744071202787686077824200002088308172604695934613903565472363761103480978536263515950719434784620262319321797847619487982107110740195751359734537210187892986655710583959562472424511708027162252825215522900652415143160354781548903568678488206783390163379990538807023225899858481606194809580016979868738489052623892876739896537644149314312096342945855450634362852105636664177455133073874431108734963999473142020450073332602418234992584817930082258013649922705131206388283562184598447765323923581897049954841975502096403314136947929398647632050377958861892216963089409457037905717985450030887599353587311197332038689453094013026008836828812336438440622229385230251979007512367989686096676566872522806170425705710403765592446206002007315663429542878343691031845995577270166276896650032953567606911987526283585749328208966378158754457175350223441199301943233125427569301803433969924658153118506905444532173645615189845446460173610791182868210542700470600900336988923452400800273034655969303312158204923011780699750708622169449569925147595844988105099405587321616381543418021209204693700205713868065275773817555797869980794183094553897138073687255703773734789513111337588414158755936730050654769692687993275282808650126932258527711906180824739140977390449904568208284112769759762221942312028304360239423418171884747082018637827836776768443351703602028051955451595957986182489415609209362166504902106137192842285446968281736293708431553198614583112665526006532279885377681783791434805847730968598008202183225544970404274581837849606813233889151352615527121315323538603123486933465561546738895636236190279053577045978676343150633204470045361091138197181797931178060456613947969650019593759209478520829728853404381666548746269995857446063274366116184060673333112668192057231135252846415385991520879134034234580145648693993851151583241014395238030385079292011923692645770390966961950491239423539055672875869264414927779442699725143652802032760453035558078199549832081234097688488374158563023936644765590660616301075649237389391409784764433316399010009241787275210046322449139662160948909018612624130238717492244969239573939533775804989071587224945067940606789615858477448979388016770348631842329124008730647954727345464359639655159875654497602244421594823743485018179228215188337608378755892227113994108470040481609329277452872851261156463825370072594703825195351708449197617548746278654409905739085667845576200146246619991545933688712530411953588518038271208743347175563913929052629333533786897046637343565306761138888423302035880605767152781499490123261935318178381617569152892203941254106439624901603809263737555958781406637167931133188447130579205254473773112333450256804333225607618928119966663816275070525510065696416994893026850862049582788676710922661128497282845045677170926785150021210522934958925459177984445915324860638161917642578152652532601986582902794945227568852115314890277207506974890111872936796113145611049776342150732795504300076289304634427005904419625995256867085949019327790747563907539590037337123804712643832288533366420886129391122671322995679654111193459429437147684161753240871583499891706241688502847977175774900141656852655590737448900102803861656752198487836563444359647833917710107312520159898847542107422940671442948552785947567655037283248315680847816025902537696130152234639525657408125791222300501818526218092241934188431535082591008081432027803837848585344822341165833389717686639941315264277296007986519767323467808582935221780477783859406049999208324000785655121029157478039463490872068926158649234737651491201764597747180348742256549505639248641909633496964174467913743536045303058701795961664137746216828139227217779654002247365448000927677350202903858362441783385241265676812609528520232378719277053344223499190824227874481233787855080419859656851466759730002753650586467129990686302173797918574053638188294786725174664744122515010117648063733014441112362312864237498828053885470016132367822005877703180347579437994914072559594927392421542590719845194372265715568513840762775427982817128528944634082589120099723829453464949082009086673265559967359129223776280882155519934164714277556168593135630682941982613426074264794102987588337545657045462410951714396326675474634434188543001290269727558333831886991820656446446336323823822287899749229844966270316790162438879506188608827492064476592519198202886475554300557708164600590842882269534352939574278142774298963787371691402606610280843334583170596634601343231739300687966566819690782798920739985803708814489335651862522213486858432220851616098691966458440499020875046059389394061927035697106041487469544427927389915607886403895086900376525736901331205569755417161448811761133507446918062068353834077738382481584238384684737599580851228622613039406871666916489908470828355499401946175323051683871008005764015714477785507200190103810656841275060729083346218988028614096669925020292646098383754384600354453822878198306010292325644530525588019354966668992000890148979312465433764408093788006305294600972470350306113401046127650170220479282863582814050322246275987238222080308211619947187260647101310764734465379251033269001583348361254061459980372845447911217304651549743110762723330148782195801809352168261851822530628239155233780475800576017297914705729589447960729391507185900759095702061541295764357315983736863032884825209105591406276509582218310758777503756497192829309007502789656554400390236705750658175643792120496079365151921132380770651769670122118728228815168578908929397723206450725817348456535020707346745041560247576582405464430679100063545302558526606584783766197903057392800952870194473310670539650045547542980058158076693964987276943233065032239747194922636806427211018777082488028030994814542875682611923630778052663120581046008199104007752241345439780111639300739121737482610533888131393337010376999358600850827191693936182281052808613055002939897955856372716074865010260936874486624577708517365270720354298329010816684470555711720385339782043161656480940514537348825902364630493758003896042780038181156619429829035559215624205515820085786733359060158347742972330302750916855691096706536080259623899608291444575052418434982765214958359460531274160669624537221184585026032257433357117466797447688010437396860725685436140394823198151936552737792144175596697037914889548042863377314101505057659282804422876575281624439997602401870976248441677353116327498064434361280214594022069724375152526577601148183803937475479392050610259857886647808531771803313002649284994329583433920967671679552497342228415635038200024278201891838126185376176925966129582205386899819262522743645129209676150029781876264406596263359435231128664095026414844264677134153289891000293131356193820879901055631126656319664072715708898122354692406084955404158409624147173491801788227478719664660227545471868532957157592273863670693989731557829572395940114736472148610296682875662989529691491739265282362037378670469934894084664783304084405722317808450180429001903929919539462247876789358003983211868689504173298983507531966233192798858888350112340549330320003481849957361802111986226016205006760791974967798496056466631566531244528238996270242434898249258591709467938602148556957881784788199679805488633552751217527249325660504960194368048980297163391998608977153878300749587234809861005671762148618313153955083183156891878060212055747145244204516659019797854826411402856940340960492501891296430912486189480239676956447098496638108893417073423387578042780335081737979255526619001785736607872056143635674799139205425977547651446498042221058370743905549016202111825344925065712281637478683094968959653779284300415242459979831182985775153801154400711820025330573766805452379312351808867638516083651095776435992944395823162270843164302025220674964703000777323701571985738958222387031415727882384108323630022553704226877025107266808140865115232297844108448147693789627972111984729625790031199363544047001190595242690619548029091087823277771527775369047742368008420942073338947558400961720514378626144941251022963419491614551784678961296483333040272155237262126126333181265120787472224001376287645782963262282178636033667198267346574465406743139680269547079218390756700906746910003930306111079273839140171338636061403627433586335469949848573233245332130269790126816191370228230843538339794303566746561522668286327486864835694039181536321586652214730788504566036735299389478170348636227222358697980021064275774723566221551081143296561434160819394708452213221236671084128379125572473655240690916798463991771848917080986588080400598216428541686338494303793380705792221769546126949333127131550770035168309958288225331103069899091509744765880833660917719896939302672494084185376453416238169201573184939397095138116863093924406055224971067779219052250125224370323644684701377743668214638021979090149155566249668016643611827730974392164013586889429760300227639202421231964889656600648608116085999790494873787903640606721341036816910806241074165918767301582097189522254886450139075985745597260445899668879599772646092766428491495622122801321086485401873878918133943662120785639810090233972319374291840464803092321827817163952711157314961797311096806678277729116802956183420356659162658222007952028046890176390866261262526499679682437385518136229451124212596464690920562614700756952431477454087202176915212481064603263111612021897848422995939607122250585303621276212842140612354304064864022022759844889436111061975255618093454791407558746253802576722135898477092516835029100148423889686707961400580333544263125147004900004656893673857645502852411971480053802163822792484225038580931947141339749564768108355565624713925470929502587607484968629266899786985135040610518634496902816131828286585265027336176077779915530216860467830412764252631414899539983930154090718636566533575204109604896704725065763759402938314535856465564796159571506850601058010865776531821483392413757390805347603903647844748356303458652497626075101365013716262309810207001803826996404151036568788024247279563583140145838477516328595977855091983800621954693992230657969388553476289557687502701258799253863399401679437972683662162521971774431481425416785922991082446977731037511080757259872989844096198787120007959224285665822923049145404781275753559612309767332190921445520296411013368646057585191754776161482026467294296160615759232470626360429822870938682465928865145771701256149128734408588071249983450833690904033994094032386688142073099416633600668688252476292816624069721551726496368933732979055700989582557889288925471533359476136028085368538589757524707337703189440710354622411615309611301408929679014572919214768940033960113672935382617347276080513633421235209169545688686538750233100771039478966300032403219693175831511465933129434861897890228954021925035669803056909522816342705678253213619844816308449338948798253701249059095267884442957869811211945570474517617454572552096322355627772453189703829414846284129782144014715043534457367574164941745628408681673285438467870418410818616076764094005562439354655817035313600139842450487470267261311148549489911446999752882993034716871876991545516931582303729849142550920229951983297905491041007351058944251923663357808527214711302234856578271313229665988726880928180083588687695608949819589385436963242702255249908677284469845699971374473676522347609539665342197902153936776240188188455756622157318918166946236770345770095241135573455253826221175628372670344510433109637801792221490603933348258914102580912938932475292383455401321964807884999819634985113345402538904849271718824798232798711931074791710717790363210895915157585811860932959489175541451980142571467310046047700412288086152268652590478151839596629734070750815172809403058319855124973720685037470908865864715630636920866381315263241764641427911858029629477002153267843286518064133501294674136406352658529046911489725187914563152787180682300122240797314159427713758072108517104830035934347329541745687152441333488979036179842070057753736882600721732698075311411049157181071539355025625576545782291036512885223343433977043446041772461450584121822580669182823618078260656895307050336787990068851378985291005352186362299187462005379167390399550471670125272817308579812539186080569518322798444466008434829823416742491489693887756231698831482662860859823708339729656754351847736243461579465381388610442546263208487462325293165901539768197413779460192116491165242076247603750358014260120780475546424438554899282728411116431193642056789048511941060259269332753898633901191398466290723166155492524020256238276911890943663704678515066240430092870503878820991444624684344474503584292354664576372616686999396018343829042264284956362576487716923794571320271343368852095884175374675309743104859698862641529492217036306189429541045436927352231774869777960783256195324672554144979887797016825495868727324844188444708647966037480695427353684755235862979314523294568240700518340845773652045895856879553884468725447580948942500666810608918691158991050724745841061857746887938387255566351856360004966428632480551587991530057140636314766632824368077874412792183793115669077867424709066377714539786371670534807269428671330945166097436377287436435223482272578762868497995970125066455639346783887082340570726713952827470981213949681191168092568419338634529411622263140707224022408240675677626571010733161906931174056862137251381744312675546697756317261623726237071811241644241319041501106919311451782479709875814832739437519790934679258928746570598979820198160226608929888157638725812117326913950884559752779242531192700538310395047010111449709271683564938627052609156638190358573955251808841590922768651539065637384730162024724514294085511917931001225019876220554013211159722296968714649599705232552336577051363678875808571985982210870448056615011984423165045943465520441695584416500001473931508196233384661005767198643287155895105856995600931619821197787445467205544047247342789160219195789687747745206924353573389268057630570389327929665290432738386481270327028430114110969344365740003881824910192544562837084062923650031673007637587975661820031081706576211350081670221407298847129715006189134910948390994661749617433845767225606080293452392678443929576080284486003273138330671104722180715355989598618460458265778537605196792590610069729372785867066056398006155092260207487436732124761429143258840190140291621907505680927886093067046630029874329143372100022477742234178872345043763067320852952539566006552353624235784343342572664025917647478805406284187328613076515402300291341679933982989067110833113522881024998914969289026045763085065590898469754027834760696679602841332952049235771994378802264733078755438035792769427077157851325645777062107744953294326378414573796585628106450936801337974754273399349424881758299371109529276825503277232198741919848991667077690935301531105122283509541680221009345907326229653096188121358033144743680059794937698470677587818702423339499262647476039154243303211582050928175351478813488311397892107705233967677716781233235888702471585666003905476515966007652716140741909142687539933153876522357184873054997940245059737006642363754430042340374940011928432827521761671341011761836990415086349638342737663239589438416507858371380032205971051929742460286567702151717931004566211164136399672540078237190013405568673146883651841331216308838826637639027015105763734372213958300820846815380636871266392823975213011362913950933088071927929940558544241879540241768943704266915835149790112528557719155704118702530906058480322567326562402340447524004793154549389541777372047625700017655421841833633277193962954288619548951848971103632479858951324442037449619472245008822109998866137230331319207378101115787261723867373498121840416898160755810091938696681843107529397202425460584663005359329403869983122498856767397024084376069143312203293197640679191100868756945678929163489791941850395899961461538414270893486640016774094498969254579885212664988246528098193394271689937094103577353192866801014641290466485257883553864991415858970133328594340725829124304605070868321114254107085009746596387273282579092463960091257442592238578609671581379592061094749168969610816320728550826458248647428614074420855984041639585735469642444221060760303878172481976206709605182641298406772515607295959058405831335823155144130403688945924768341872707956223273766291406274294023665982636258672939592635508357997539508974477435962279511111821830958112634443329774787745684232602789663225690794882271968366334517664955767041324161690668634229563769391594232608793007857334528225457254062589992632835630709459255178834021785983028220576184760526467543842955023920580385999175645895618222808416864185067203610950659080173999254495830791940007494757594160193946183063644729042799458498337868972233847829806369718182777475877902266618882999391475015773868592192195876723897336340195876093206926412910272324831779514710622741573878731834689757191040380069947292863978368507526185309357409204653072623249697267914819418086536012316980596822285872036473634524980722129266980480486319385913342890203833874063613005189484690246286577036783277780771832841572848448209779973474877957128267038933031273228710511152675565794496453850726489987792714972784558910302889538557365153543048100044112759108785507496101115972740951760098277633480155531750823236063339119308786728753042268792343327490477184894196017386652669892094003109951929093287251093093353624477892830155528323466086604147083295071347220784501028245718041400404417258125757765665235196226703067048775071552199730096066259947251641892125703044472606304125345526600043096547836730648678835255031465125441167871465219972956756378912151404805008790300205099921483093189031599440644998575363141888733384241096294596181825311235716449250040873436876571302968809597087756454731534636886937608854367876390798568513797023286128468788115920408684363763435871796018699299315152172481770390898774791157723322015431699000506380394751649927537423809086494394547460380543317146711205295534549347029864563835723515363743554623104585228222930322351111643753239947521345936860660981471582684679431085040392042408687234181413376140222130065526556225334097406235114142760148982513458683412798857008151133634786178736425413532268548634701035604296561091651177761758936361899811453498611265682096218520341695193466446089095369313742181293317533701638568261157831754365462610203712495618709764800794019397575846701598492568963686208179532578066201814598128752657696840768398619070519721120170812129897672426764481144366640011056855868708960897455982093118894266916332461194728113863056207383627778230223187194517893930987916471453287076598351067364794344688697509386196054376242597143317608508502132612852262802486425919917129140325980736336532811831302342272098130225008380973126906856540649977944191874886278364953187971355107874917844855983120429255733057492779009691592809130438230782965631982221960074842087253227770706722312322906019532542278594293656702499647420213016126092386338294996441251578903683244364737070727286558310949692566852559998777122739769114881854218035688442001545339834117275834522589164259364717786865225722520206671124455014381561482429854129535231238597735764182403099267300770157453549767884582130376619442204982773556310988185949331047885148129398760785355103158990866060240350436170067765149107243934822346434519715000945524320009466250353341260563278059002462825431345346580717366467773331376824334006544797336850929390011908869020746000510678951572204960155397093692864682604554211289335675494118267311907135212629757759263907521633084049834242772284753611084605939438880507445304898566809170898776524668690741030173835084081376830416674153241818284261494813067674828877867763328671909287509455251909383989528762138554547927544144406735566036134797455557015863559274736566720456591200769820193674735195445960423290286568881357193238641257331800183984163346330785949837268251713575407524858163237536157408347815091454075000499536081307827447654222120965790182241864586711102237894669758351197141068956752652872345365044524694102448622116210242239204814790643687517092898418466941309120845612932747819343950964809889290686996299810362179829642090492642026718429174703450526725795477230341717041499243772203427092583891341682874163693766679423814259195875132232610877341100907406658997815103781744452669219272501246566083011141701528538433069928827666312976149125624022350390284291154364706553713604815667216483269270008099082863260878029304648664659715643386144324733289561336280431092389141708396690454528846664298213787091256607786508402607433659522204166869341194377697453826360525986002089530147326495088520999270459750150508126927760696438769811409625016135324494439717572034030391996301803618989751462707464561958813442322559239808684721196287111636018335922428603062268463201265278112880336625435474976188161107747148970062748008229051102320500181459440555730390904213247508904491620761864110617428241403897562728405076294285549330142980200674977185820830513800082589436691290666673712994835754870603824255387659307260089042076873627552806484624419791317749394749878781085315486686955616432780979519167519562273705190443091984009870505120325288880660400265233044101668462703287758382744634386846472186515994755722748078836072091153432733561792997667286849083003830561095707235787061726122520385144212969615024126016560758013871745080340714922333869524422519333949180156309284930718517613858764345344407801775427993020555728484038089557833667669154443408924960961697759146017667818746534217938886993518327218117412064422157406853899041983780154231228857064825687800013682726617059986500366963146387455578766862273791676762718444810411009638102251451255969071667783094230274856069001314454597106746714282044824171223765467841578565536567122437853411988785143624440770228670049125049216998617282983772337864952909404804775860113972297022099876160123304900071603731245528582674935495996038284808758258177647203743836092112079158246670939035584245362386208673124587313991832768654873269329266368151552772912284626055351847144116779189895396492041982404968320804042568985214216957582858080535828770027459408760121799322597220374572496076300110499190632448362863864926363032903071564045709828865570725268080927870907580970994663763378640056595744688301611874538372802615092461761628613839038927374939478333665297689592772314352630658580209757445338490460356755322520975695998194260600794113968607927047395728622199146188742836567365322296662390743173729352405055463174172234607119697878869539527551687367315931117041218604423502503097405175470306780944946845819510971273313745327579386178237930342909715146973709454157605050118660203292839652939206746532931406275713610534121585773752219265543830733373582794394961028168811478966160819056123739765304394692400612265090606377199944720587178313152171599605176984172638412183596112597770980799695079222449808530400882533925423691539211206091146575138566042617969965059032574393235418833804716784449908151737848348867503351112759426408710804848907330763552962162786720705207563546796731679329391411866467075828216915990149437488855952450529171593497064543991028799678018577450547908631065066883433467982327692164143251942208678258997203368423883572259802052578102428647993685971216133398551043404363584149953935863067263798526374584526339776375454434588067846831052203756881438938598516457009769530618550353821662165515967008564335521017521797622878228272366364070247096333795779887520165628218845814391911952887036772291050476313545103323075261207108758186525579055686566229672089680175756845675656917024725740153308155634364619334857074317644633249466538465456461331930802372928638520638178530130892919900270850522815615663995147626026096180870142541761220583118497474145739912369425136624460115423590566486845134891955278806554944423478126204277269784943842086479563450039090285462019048539592348572206178430474911948266076469780243339307481324111793782939809438977972690582379444444645341774129895547696907915754387815761842889909582632443011656771737844166527783154850975585685023516350327131068213019561872901073238052348199445174838243135915151343530764549448947529845667798172720949337028419859489630663480776970436550325503398676928556223299560455725829197873210849164948710954609386482163080572476192078160094340749006274358968325121540771773610854387707246120661342592145700085741044603874129346602164657873881158205600693952113815860782491874780027608881921705482443808362649014911987024681845295796851862880913549376527566777621117058057513952419652267169875250511485442833978606314508909008227360036292631235040126663567294555366370372408255141050742123526972392540947140560094771673426410238142232631072961536362831482782896799549109191871108842719708408826421336629344881478944723373761779301961927519301682702313695963854121699566993679573690900721511172981462950470385707150379970567670900480881155576004567223323753544321792217794746907047043426465302899017753508998205458716506406480065400496704791113283386401752151170227519573081003600464382644818591690151403204897076018046203293777669319038438421941912888976543561975158318190015971004619148700965539921631908830107333120299352732825422208553631648694459285128813061238554024258292454844368822078714269892587952821971767054562158328412832852415932015233048775377914664849605392885992715855738636036116537469130652891093722915172172636205090316007429775827020561323798048870694428981134700232519736851610907306167706386911698702168966003149791929903600075015525965099281866900302286359702146085812241555966458556686241833686030230295403801191870115463693365126034572707436951870241391344803969111080908555950001311943904284324191223463742569406690713119998263118890257036714832410481461660489745068089820547654931962822081178257349619314306708519318619693483308001713589007098679108579380374380329308907859620651997906401409796434793876949518142429040379055319547852447620250980554762038787779779423704581428900596879854506710621051780105909423431255798795135701099105890157513255231741288983155196296035721479862907153441437127515307170687146992564552568186674490637929427161392359002793314053929333843291177360917893764308147111852553689042753144234778068444248847138654945560455504922999147243546044980794809562172934499334223934959542375217979573669434546718274541688766450458123820238640203936067051084832322265772352222123328166802644253666836216408892333513014808053080146102597196282661615499183178978451399789949564230463274240242158129228022347137597694090303311277586587838783007789603828105100549343924501421926148980502398439141382804681024941148405775279988418508939357603498110547645702275612662265299657147116584114563176624602220917338747697043435607643521615883429191354367030839120879098057102894451083400068712419397576689244030247006126439402786560662693880455881332229746838390340738987440571162849839746242960175281348354551157227346412197630673986655027827579496278023582544512997485955120866383948137648211252518312875410961907076168563267243750563570100520537709130832487426889638196868601311958699776415006285265747990403732040819487469615941533664696587881908042038023905928197888903454788472953602799202522786727430308921864146561060869924811451523399183447422200813786617281801511454228384408719385611493586522708936079273336035881033195329582504468433503706393527931591159646440371155432466063156416504420718581802087289171484973102873709892999094397157236055196025574259296528898590826473106681575419949601004651921357951771498466404897284931893023695129660631600740699450129339976573277590386875777758802756177608683224585838592102671501304890794601346946530752097906708258803179666667156693116747761291605979981917864279487961053344741502267116986863476378064291626620756260257866607343396479240667057667945524339895604496953057458627553385547106751861334307154649946208514949084611511694356728860942087090366536780954736209880317322899242592068443952994068272818759783830004305491830440924976908974885469384477804504674955444702290654904427246619569439923197326108627886200651416099089734701453734436087126434994023755358153953761620418157624832391634190287589568608149038803778652539848802293313935980956474082207101168849728855506063966888066855842607775498694308801887547881065067794808517916255006214826050935096539950004283355856261055925965555015421282484473642244908070391162294735997454917249824199390507164323811276644941255979247400220794268333849622577455543651178409092489218557866196121329331062106441652500152882052033775617770142550015967941208050368892539793484589477900899646171949245213665196761017232851106973657589250902249440392431844777601457778982499601701992237780657536540459637042138334207074813247491424108394251630398389783131974794003469747151410097745857570350833076089709493760823925400794042774731102713164694701724395116845045311408530393111905813641274996573072564844464912486321632775213462549886293203087882514682338809591733130237559825939723454651067901543476723756466558538633297390395451973772474489693958404545070980692395907904863777464136350485442706455987498503616763309654597769681102867522465535398641186092797325461163577194161151107628312775080021345309317696260512339161061127553574207775206610089735885717249908352997845161792554204798632632474600820135883386980437366148171442680582128508592926247287069895215188617446346378013502750153390338149832280145496826611152526496393929046563853440639781100798582686310863408803396260788181257026080314012360226733646810326859494951894563643331749851060433445864647771317652837321943002049370870711968984429202040612038213276436495170002392806529926284272633083984089810278137094192483788205670606231159944186412584255777914232453453447026047771674332082163693492472234601274691343797624531036770311481224301001179679617706791823440582184020226803638571017989894482451943198340955983920481948715797514842754425830135693506800180906296794594031494621937757319339321980180102659984953752205078355249589463438155371455732534744139126765522308402938940048927614460231616862541072814084825276437358030145600091997948355805804568566303906991822084263619462432704947326069815297824437535329111016946081399777682529497775742299630108489947200217612407924346829096036519583402280678323874868010938811612873170625133483540311978797886498988285580450347664030238593769491356284809400503947254145783599379880125199339696773182877920416025636432171059366069407187781551706537420906499891139705458075379621385334216221412455948245846527830825938074034260114156638149887304465258233433155937023586620467906091788430250800368301529357662864351329668255039378781952659366693943883053735923909774110778990980778306297346803960014392545606156986185763392778357175741786386182700858118732614306532585157265126099007221009501106723831897544035228305931908742130174621996126179422353961745943897291107078310217995263092238659749525537010245820025749543759210289378853962907952930058147315450910479728477842773548537532507518843907071031608845703914415134781881685247334724697855869373851253916304563007370807069431940994048856832299723461920719110215147304379754190371635729777156753879995146761177022510969446603986697607411931283326402525132669533362722719483581483747125543830946732931558300533471958577259174883373299373653209181353838659485912152696252216869312099519334189381205452136735394354230269433002012246480570947219789341192141463566140622652940781314188013448271307105389161469530247611726936703742912503358852669615979750887048615928967726848463865411058253864671222314024439951808582823489378764877785281881402797045638382666669856828737925887291163219873640272409570672620222839357674192985348940063823284440421604259374899677376306017625765736871697952283690222874381604082938308902979009251019940376050943168915591970715220684475232224266028835836627032062211814183036452206836032249225864288599201363834348595532514389192496371945787763835359664431995180757040541688318890612310414879723411288885086789771316234258514832910969829884767588539462385932828585162876839581654308331778332921213768691630944230369066704813977088141560549630544298780784711872596736857335172851704310561589774131972908994973687782782206392032337600586432062317339426590383689251461931841607850304091377356231276853517507829199379429711987168177030181498550571741884543365520268430969273501381309006382210935820968151806989130779973667652354946464585821899738592565597106772102490742468972155308113862238905444020369694656342371967929872707650948828317412444504560876259469076844332446484973759198580625273434313605011424353032588044217235844006919026830450456447366652548138731946431403190705649343261092353323572947164936787768013825167727959300059715693362583258999370991317367425840821178122746664914628201154101214493351286389269421293953634780213163864920791898327739298239822811184240961161600611612906688824688503506725910114382481031192188543150867140860703003479487996681954854764473462136009505145925619117050928101306629006628550868489987729588279727510710039194661103522459668062877957662516789315795513942016466985886302196449300582167786493476250458241275556460844777312073788016533688125357351996810531356548720865761861098982305902934694211529037149089995961923281058516949535165047741517746676329701909957924228668384274152592581229589084537580009772624729720071302245073301202871394408246872857793720877453847651233506518640304394504739565798558331307560393476600679358056074542316743599108875261100701553894204235207073718070738614338157526519223849357637574788960878389089267308335218748462054978138132658091484039305600607875275618196062968260727217086115921084917627921900470413497681150577277708534794011100047767491969323147076848822168234992194126214626136244717110199664985533027008472205683019346443294393594991367478106692097653968339449359549654417765266456750553387712590292556856832307127720298338455771518409001297719100946373091287916537005818606700103523236433042035754232691360168170295644158857982672518382909629550777207348132728434902334550064948513578946646114292808046343327194028079053423163215899891184464558827418906074113750179788454579403244071076573639819614296309367694632228580948674261547308034146069728079020785565256734681774117479384711189202885033348977901492830824655546880031203355866128724190061367879002123391404988977435733035134301232131692045641609153706778679198628303142507536750460541427473146688013502142585469754689853204570700000969675748430873697103969119111595749280929844363565498693596723295713606024584278460764229583966165201997011555129257985894059210819454153962602770078225888205667841804931549023991208196159826356961407464357256290150026089145033311233319034796136067684000279339905422955239655218072948305524803975116951122461781001273560295926480563513634797242221381824143894176058692099659665924093139111234030744470914259583105153983771383380749114113910798184004602620369444028458530779451606512738142204247409153732051665124786394864761935075260352612183611899607177476827632044895255619356627941793373398530014945035102560179423045261796145252170307537692944856438254977645519323596347054706046413507469676948439473822675537195524733148736685069783928629152766545972700865198238657274934445330749997181342949528848561451368518606425888403543232330369564439698193276792053237981712290496815033875217634134743121338567683406981111544461636273144923328407018539828883941859436385167359566809687062473839344891744588437956747351649170501316416962393988162661830115431403239437814516230864356126512327096658530484771210599669037265877359830996728540033464217144287502386166265677314333105598432902132497747813480821819054445175302484539492074010496035602785550572472829480849445772738682729784628254982770132402115254711609441267242061902946674291965136016734777224941422258472489134197813669299800769400476326240270417305892573992951129228926098645239395803565674667703449040719142084036061781691598165945765748055764862919466691359714276470463532310877268406364969897713135897668551540862474813430227518827205255455062305293550345425897578860556755857933615373135410776589498009942391170621322526439894379083572543828517960170297036897159437446704517477298962744084880637532719744145501118530582998338945435258947527956867292869628926827843659658874869552259065880025924267722484930653050357889425792292571777193471621004751195094278813480641150414270088570374221256184977278589197333724871056062374656222110803949956375773378529290086883526417007725249747092034972261412478819770815331348951544318058985982933910652087033253657272263663343799362551620902387477171280777680744161830762348184785948027655994080288306550464498269155296617528435594096971773774005342043662782328556091130830504957134274690315798424880590855846519909244921797688702131046052241226816276382596478643193535949597022976326595163842961515373016143974546979414520466992157710431374372205139970646112105527228869160206352910023906820039283315931862387022348628086743269427669994361305664572741382075588704925146928916514714498135532499577102460750136337909444954083022171799958308678062714037015151656569047415328262466790952771231893737099171919457639680540411540266257774460321198487584387800897978887528077502525740653333629940300592104425090300010175152176597050764243600953790888971507887085848923000562195272647699821579001251336624975718026798134191863897097273555088379593612103798633369497965612755813787116620273303820186983547933346057259645330329997802358774135257784399075215636301422003958871847209959754798908730261638698614095973827262480806137719193939344509039043476907186899589714351361334895017912583305609386463226546124829651098649691628565736699409043971787688158003505964355808067918616640033118656746445956020231338515924228185813235308357560155829867128080637903025262409026255969504632648381043611299156465654257555330753933064948780476874689660651959117080981626924047592663830545564729348161737588895160444480247492759499903997147628036741429461098223235166576828721322363802250719751024735159588588446050208818038718050850594068257739982875810709857079860746211481619502745349598076394848531981870339794694234490678354945875696436107331784641549577658378523524210494198560314797228702294027564458215272797209647365175486596113397865187292859461785595980115141681871187877583418171153619244496137124287760289225657755647797381165337392386530598097980343409950476364267629194609118221921379883371633820203233012952722478286279407490032585229284306387660755728709966724304813848422474799404518893311396927126360695195464973853775945418402774031280560477073666435320958262273029265208890530695064742382780806310883040027382298264234309885944971773492396145289898463210395298990235848263738941613295754557919390924913349180999971727174086973820386676511871076539561793561865518281103954958289893949889708477083191909846253822119707368976140338639167927177870891313878458390793440072503584710121977730257787527115749411317333436223245161459440437286974565389947399881626241972996696495148892863846825373562771122415386131420561845279542426025500569614739820881212309345227507353600923579251043034150182580531626412725832956059322479934585797491001357469825572886551036627749431467727468141535203703117370970813331055383296717078072184620458406117207720020562137730854135264801541760848417269451945726965755014963898467348011411911249667980441245517425019041329242658265961723083730215271214090634365501401599935168550587513569004315246769377826966640854156477258499758427298227191507917198555049640963832752483347098437458624093200330383239377786790182567659779767392443882913324077131162791542582826499432555598345685512553212539249056525617285226185423050968130274989559712987390477755158069293345950976929492257320752664071795648996131114988299107184197179109870167096688727977193587305610260943459036718212256322489917547839215936639370557698931871177170884458264790754016465783170870555886150776575287708652058370689417908656879695949635925554388777157595474233532472461052131939840364782860860452882523761203270532680070158963002033060143335121834743508257263102305768301063847989236390823925477026606340508352823830575373780022312908928945763501944934337185460285266229553332195794372186544724464204930054355823473997511757327190037482188095278140818865346037787845220569059766733485673996281911372628207102602331505983998029098915518460155298709647401763215596237420696074289347678494636312567047189895358013190507351313921232302897099550673159821308908292808730477992030446113642082518376446631820144588925063027602713629658406400646104394317935618296449111077877856794172408557019059313631757440713986941663256208960651228608803612533767971343321370300650892244510091359605914098157344372789426819769994330844941404541722752168579729492623358854793201089166265864407949907977050225845769040988401560334777123970094575122331833889696895488977378278046732951094302483622535569776170662696715553104559407395209496104119964080778072938035828798336187303976685548357970260776762613650744096964626479451258843447174124418265041260684635088912883192598384234256837872909989047801922330535285184808457121190104397733797120158536998941754149477756362079409638589205251812615280303513695025801354903714424573824055876160259224461173993867911019345232984655121419273238792122193053313575611553671264405847773061660380323617367405532668816910291412900435741216649507877973384773268735549917588895333230178144949185036962264776581758828485167210927267945721466826884899314791471867911475074912765496433312104075001955674157501620097191225842841440739739653821778504681500400201687688105854539315840433992691933532631133826658416876489956944659112158872800114164258381697128975015365752380832709426636065153454281616164170208742266930175354751695897957484668592216933648920319189168341055496269988062857080177868555303518790918404326482326241854364083783248402580005507710445266968963345360354291490836707806148757196521547025172706150639054691749787559789567315103213197466685574348384383793702448238671562822882340297146335810284202470451607616128410854791203530615624724518411714150355792105141655007253166918931136035204681165341781035406887033690602599091734521101064807626550512150470074475209781862717571290664560283793388310752923368113609800537117570528124388897309539303200893875012228784123782874552126786602191092404198035350498311133262657770420473089033907733896759510141290542652670403476242041467566378010072520426880407936516300903120985095647749308610459609294624871312705068909020007801483834331744403022979309205770708239626113744061887765445203501478859675176775993445854487544390279496364366397254388619613712448081775221632866735535626575021469312340051270067437876319778806074061408212152949742639770086478923772206097622914292667494809369973732515517454640454287806560226245140521256617805564599643219615398988059124274536301800683274051924924884276944450458542182296873452166580236982589727599487604814508178704427149361595773567294009427288316829637197365995197384210625438559007498523031037442055164815764029234759338007860477635435905795930734853456276315084497152547454887744977467127008724237533415392578464933642559887083340554036293893879361870926554531126124137948924161409521777602917653219918180148644897171358903521226046945905771731453750499154909638346735703892409612626253911147914747415203953812996798740021313312460198508255160143845860189356664936012235847196045450052932448249494819017768483477608490830967490967577775223290372805130020055628938770627531388348958445880351640094262025003330882307939791566788692171710305062423039361831047837537318084363057876444253888803051369335761932755774396576693436665010090598035083001094635312370164213519439246413007118297809455272657100188087694250610039177875410774539094813415895334544504955763158496262114103993193620988538385686986069787203317065308477633643401116569289811938257667834870110191511832926547760639039202846995608558569136077647045457762642507284993877095449013324565915358383496813548987842000951055171108354886749046418231137491434735275338069641889410900978817623185071246169256216726270549836674710671634091045978531352009327299433307055665319076996234182741383758447594228492625053699527875262405936430056289314712221994178414887769463291491641323316239021195864811033544174237834704727416823933775212482712249039059316419390931954299570406600447043010793342013993110958362230588493215429266429065998053716082309124612652344648839459410708799563137553559653057191336283131811193717126268842169248481371435274207313996410728326202666557850684032898670243502862636259914713029778910807887062859523791682699971592453369256114423450544608312486736787787204016200238740423146114266116130469639532480772253434059114477410926197291726903606473570744254810073270033291960500880103212917168709617219878773759524107081783308449787581863891509981043392629224693221005792542840166648707729509676199575656742466567833352714413727043684048303119030783148488930792716847313430640757551387583523998949617236439013111630705338203141141077335903685865092625950499709944816011282486738386274883756256041881613537190970732284597606314996206254905690498681106049043601820822299916058430529296584915932487113901694901801026397819192236005511989199690689743632362769933829736069207190121593564313242660214391736475567677222955269425829821685564530970302716201194746286145978469467867480519800580011266946223542566810917023848450633862011509947408305950679256392210043226291479325944055225867314836729870147858980895451992415994562238047087188664568108150008470269103385139282094251751586877622748365944677759001635038200841798692368566484788556381219553246560265506023810832445552563060384748516328866072785357280038392890568857333327119711605103781481523632551752524122126029736337200291818827722260766240831413129953901203137298956151699851678140451801925770099636590209424581704615691738289940810249156616683881387825004078941977747337728978627421517905664736717063999504921607666182281286891303562352343503998967140247085174393066594137882007336489915618581125086389316983181051294737690374835086818641766746249573473513295062477470382162072854523125912882825637855450003394533698702697648052164140573855283646206474843459087742311676714000862313123676776204193108283724752540275358863040828013624205751282843261495868804596287832178893788234429173899131802430017124183299957006886222801566717755566056376188496649282080367723195379271920674056479271274495296825614608067276907631425209121906894348411433529938009973040719379398914261982227356535710952224805401770098465099852155054945316899699014511854070387897837092640269679738246112411391952525962331301365015552023337551234367557185247791080682574469456558446871488754085858403796108729645388097385850563255820548889594265417301770307305676454313915155270776580649165975478777990735742982106545260734842679801492835795027907678217767798138364733886357210815292617222072202348698803236248216355361389412338848476961836450287765899723105545900309847168996458087653917709941296675825802524654736494229066028885683264402166836110136606971555781874774316074636826780843583602038631929412033997231398349359704484265930094071829419532670665914623994000383585045357908805111772147746841446751486733937340434083826509226457303923050460671528331418719376199203219982735508220332450422236482939416104155214867132440312379294840759410249054515628420114212714671642567614775670754319977115619431846708960696992327540754250634128807518549141503767102580527780126686222923170436157567644393878949423322577507346735120245398327382922587219684435231211893631872485597294517434242709494050077646331034347761063755194819936224850103882156803287427492324186810858844910652664009266385840744576502746655356151644100093060963309064878880290184790103388570082295131661909781926805133671456725889184408398762903543129189658463378129756406553736298153306085919677930793278222158931887173761217336606573486159723529578605061304354963486675405660175900720186000071661731150531030039900519841537147660803243778694325922010197092925434819681731900212540778496415355483975318490056553374822400658307263421984981993518132425954524201666712042979328806133750874913342970147867222717200831949869657120190281192260116197302868657066467604396842304797862246668286943443945534316446051134377181311956218867250972213387726183419662481834882975048798330305673387868413272816532133496159627737132715851898629063448950221386559608124711575316529226970352811377445402680525649131036493939390985151376326783873982152095625868489044077717431257968431840148574858800394576532908369309277326625124401293814878953059221720470323915462707741724286434604581275949316709696891269022447091436843380791381516076711435783377145068917841233956845227911526690332642542068303527125341067564555214489090208269479974356566409787569745851563193055474331724225982834503390612709875392793228500934587406489092595926974532095116765238782245749950245243661261199092053668684120102505011068486927600166139244567731155807827323671245588132829882199013110736672730715675298796960704490637801782570865848560730460335880072709844367315839595635947455728130816288618039854616933737092298707366681079856844331101848417862436904038955332076398383633577211609223278487442299846307704018362678064100439365203710224486738437233852663848457898278038622297334389312963684163435007068500189831841750741431719036082720298242955386484941465001547494317193675491267194219981301222505978644379021983037820872096162322087823303407345979494023042521328646533091712246196624233330775802943512682262833690431425644928279279810468014027841768154185449429243839178311824893891227105056354240933963353211583153619940629625709079046067039372551829422144941924375255772179346567538923018826877356575060221358842019912339455345728132969411392907061471904799421195419845718061561865847701363705236446891918847369592087507180934808822226847982218259389147578286342098244165212471640258518992795489541638604187958610348270493128701231272866543044796775105804136122816059094664095101672390072690828040190480843001166583466371489229076119710668885556178282052260044329585452416861093736317162660605100903288418416851875921649314869497205273734450390026388967679763448586504145109618887335248648896828618855979087462805833942474567773863980592240170859600331566390212508300685281879721568835139714150677068447441317320087691191407822139685873412211350273411985351091088556936115496996457853616177479722610624595841823270247716573454015311470567686930989161096584680439304503995077098388000478321258549139226778152100286778848440227901852817420567553275482840552043528808064416485524237638721808745861197116193956005568978993901806050080829291392367259932217205335130607780457538574898901562868977977609188120539517435259295977067440191334945442099549405444285200659945120416634060225839262925148305818771120227971653786600831829435719249211174040860308436577027305565959958809911010457531303155178088638865073139049562608266465784209832427594757672029887831120225501659873197846570800117595279306331845330538478342108581263646720107611555837797572121480074144322820202287696386781341695087576278473944256260682886427036616145866383869443746608620793698095635059056244308420610765911904830897392754448562362174521500080684656856802356692191160708367212352980606391289207544297738966993046682841981983903856341670285758250358270571142984624055500312326188425848445721559052238639535697690225085203286676053890989191231399410615946633508560704141273268397227703031457036931388203914074222576201276163355387039478682964884132907960614152433103804109732448723452739566659268169384228280998951722997836179140321819020907196211311972227000589259460619966842242224452442414585316305325777340042886572907617594364726066990005588165470947051657412505842973229703148243072168189535199687483929734979595674242888821562828641830494831347768295757416170373360986492553730221745460170729369099113287675557507240507715258724568852420898400185215334090574519725395039415447288349037930280561062707194153841746180089936318223388136191533808236672650837890448936736357018340400008928028578450999166499918953738160420047717902207917013942693555919834103564982000628770339269608568719458650148938022700406099478849435523847523292087148803252380875529142160353777893196134627715997302188394947007255720014895847785196934063594716333481425495406061551505255686048693821482776300354373741905595230068586344273031646928434646094631090702373433408471296965055250782202248844009665262352454140785261043957522935310277228832673506338676989000560880066430918115566954334196286259292568803458870431411360566566848230183866587118382286323877440211468884102772182992946052488146523779189475576035226967748826421325146433373943175863758873660025061970463178627693026823008776087468821154484477921999894785279808552268473127766708453297842360764832006812885147203660443543849175704167677510967927950324320929718690216017261719923073777346370095686772495526204074273227386395932260566794875857614667299675701013014308267616107586612323044828350025571496164560717235994536648616018315869493772442566188948232575219012719241988260881262966105137524657988876111093926955685868285375823962144974876204064610331966865042457240567190087426003478066103785601432332481901836455484303222061445844289634489307939707438090588635374290026484804293867155792585020420899741326234663154016013094086958326824063780378859972118844468686799962859968118914703657116632817606450743121327560890815960941707069064449642889239986915231613275054887361667331933265458975534163962762644288721009444388969710672382392776415641667340696354940128004962602442243773810240095301305902343058695142473451420544576107700498320125262451996636330970618565831941923225735155590993972427156673573395590814093164749965757600857315142795007393396047998650523141437077236512178876418463121444635175449743808122545812947644639029497541111931976255662930860705526366677369222055273225173778887286002623696131061641571571152470144565945289181740191658689520260505607589034278525929646485000822590255328004508613462783480044603749780816305177471643782447442226931136608275457361992421748860428468829899993832379356066490574307137750463723796696399403055287251801836196186979236738095628627034054591443413056200469322561717825517370226748259624852560239269680785473405510371301507799535143783114631106532545128512397100938054719762676597323185059362253899939318155187823606664760806703278046987716696109191450945671889125981773259042130833304133680371501675326659328590925330983928989686454529682577545201727739532094885335872712671298844692572184345037262878921829160979440444245942743151850881958120769672364957160238206767227965702699540545658540059369795948175102592948472030226946425005792603083100490311615400199669903246077366376942890393469213662357877412703685411879621209364266406583467166438554637269983452164413767797238806735011231251584858592422451825051375226126113994174208535148709181876932094906782416549566417517693341443802557968461556267056578046705173630113495742058696514593856087799252799076383935167371633312022039397510569499683469794177845079377665650208038359027181421547384923983177019326072108266011097560560931536189688168475999876398817805248330820762263879311949386024968582260609788360629267886826545565557210603419097374752342149232739324355187539329000472763798307369629548618564460177526239600193291565164165475153426457695266716853045596274845946938935941610490439932817057077225618531578182748153866757710450531946275265381960233106959132366831782604890156009595651459422314362718214097502142384477611184251042887071369004073573466100743320847016193612232437781498400327767526203931529272584072984247773802123957645107585145378717490964955429021843145739320326217888345326226237308349588170416691297814355360792480711011644077004684059830231661318106677769497497215692908433304388419624540793061859623783156917450026482552048835864465692265262522610277908870562564218032072015153614773955758401447944527024236810832091014757212682173376592566209455803396729752398451193124724128954335807878043984175917792919699223898802339336757413150670745373939962411988724912430533928646297054664471548424282711294130000216212033625115721323358149799794530662493565633126651986316485575324944482654591376460158489384982333042826804006436500186434365628606048086657273585893918598726476499784364897644453238330718973637142278856861661546507307303928106851055545713011519819017063862080297950151104813248508354135594038342908018348872647397382291303093752771586966182633960657242957126821068127993062838348886697388560705333984802169140614322058914678407611431725081949281073482046046986873873228297015023037523277183076851745132571617100429529307279832782613115679013720838908002643267917231278570983617698593993820644494830777830268175643573734730690328577377280889233665842374403022677456913669823675005929526096894184097041744940188785312546453150986713314183295803920832398810634681076703641347173745899861947880120101329501771272962994621698289931892036334309433981364307838921791670154693504240200303319889245519438017970903460312297476504978908067855585701265819684842741116221111792981316635736991908500918004222957561633255982733373457453347984087256759943924518819665650551303929159164261398755789302038035182404950503032405388084399439548399525979533413208068808230610002884347274592225063860487901819258590784901747349991460314062715943354813635394686728187198910406102508986189572180827165481072612224255102142146300626522290514229914354027001351734174455033190869633376899262987159484963898406316958195422625266201530368061203640394076895145100195820133427448281519876549624344776013475557989260956844089600361459359249640365172671329727450848493532419929725957854304957510705980364186426857342246128381846547832817558318591805305005169394020803793007453475366434101444637067845341390364800753953295474280279150685385433658891867782369703793666856410359065156606746413394241032755645667778759151179648435044185747303495793348099220336260585412616500243284539986420976139914657830475981976947237681051421568848227386034882085525067894350600969509529934269631243382347206840092269429793657125249632826841344216523887558940373421925528148301082425857957680484553049155391982232051867647823206833273952863669788961684024344167582671574657847464326190086707431361127248981949718626278339538236154703514137632516148547314987406973525420606053915356774300951370306618653709727264348567616427239968427168500526182734209136959779367652778060811377355828466058487192393007002420381379557557594930345334334204303680338894494057452956998620384626653529569365480948263506514890520911928151902579269806489857274888487721330965893939346662507910882497801790600773592091693019814882008140027566662308802378662428510899833568933411620669578621016901532296931350593543472958068672970849784447792199868939625571660260788955310413392149421302470450036793131427669784043913448642980493685540854299740570374965828239124122148530006506925946442666917753928163743702390491379138302003453557044505944750972737231048540893065532818482224637940363758343404173505521831203524751941683864034461678689361738081112882301281454915219278602801598296879775192158317814153882034210269994075015064287727750008963780015945440256399057021551050023227011502912833838724747975419939834499381113506477537714406523657392345394870220440416432334978387024167642943872052599038079620530006372144322246996331909974859023128091557710086537531977022032854807465694124254843221958917456645463822176379642809278344412415855698062217544820753980486041643397246459189361685743459757651568246157088544341221354681561974646614639726134962733690980918337298154680406431298707385757537045716334663850548241850691040321937208536524852275710873502085208764249525894722353440280882806674364868078477478508592046327416437945114900703674203626080643560119981268678855698805051528148079362449603220243673680597336836932816852076334388278062961701863967519907496286623072594985874226372202594416752270195153617521031513162528681171964342796824140241791867672528445243527829007076869585980484456697202235175135585080774078329026699589373685568652120182469652227706219362534112801739782650020238133269330642681031805185067186772285719736051683486446837083095717944472428172360165551404485082124481341798259508080996125608265641625423347663858622432740755630290131634081091491860292486247631424301386413308057557620736330254587642194867379806669047091814191352127929588120969789189178681529195200644420659771430158263596959404562530614326082611722100012312973647306708231929948742624621111763515892321696117204014906645120986753050438237330748213413988295910270769396366215415511487372040786768751592395205320507222349921314344501607199052869405448355761608842927891573159082008870461609651510558006532135851401274438524399620617543374426974820974408520980320356549169336680270332697267755266859919688653085008624861452285330535423948227389625988642063999634413401628849965818013913320855491210523938230389171323213423198630971596363648181994817987930163603376795058470825177697752328988300780828206718576111692695384074159120829855619940910871687030305799769739496931813727549105055664085761839396003530236262751359029354542235812935238943771562133369612574921361115476063428163486769839927848518937439508750909081470770680308891092029881868965787985646899011803336909716598835753511796515272022585430448602744318367611741862459460245157146679141735886602175910530234384536241355504288541362037603929938315415828192678634757019611088410813265179131596436499963068962279610257046695943654669741778181912111012473875245013037917829151533474893370486210699185945919203171379381923725707854546303388590647795968908314215252136244120022893819178592151641328404636501616810028565873185902748749525467844328979168973639573422040032037850161659325146919299103338483729903480082869479479119149975869903967673341947576782402289792503452058078649084525111205012303762685833983334763312709224189342123454638226666111226480074149212048995647444186673921888353969171240904011357207884275110553799137194448363374775703716135419162324718170640683612867415070695847655313866143694184227746198307286926626620056689389287444436355529633605387438699032975825305417961296633065841451969762432070909400241602003997736936098067885769836113715208919765923185566798565990186327314646448804045033269247505931354325890825716081018364286909188328635517774867089794381362854690373479246730941479546020830435549021676742007585536249528896644070026222746439602844240709694587471054397364124023794254243620301111481759633016825385199588650499672203160370528037512124339283238411213879450502347642379809074746358202811270147213652515702584633185134650447411810674114915425715658854092387302352320060721736498662295831513604250479269053365119092904182183428234872379664218473341154373521577166828756864978166857449794083507664632264409425952901087158695603329761191384033027074709611987714997991816804981919127704413981725632907322647159807167304442857934639396989123653235326692216641477405495770535417761658839033901346952712522767873440337986516037976791141341704765550437018637348381952965487987443778256151376752633118642476374996163795908377774889768906679872182996838493671351022812601582613623399960034072626718849214772497407893675304631919928277596219838559775696219022900528175444071245068266581575351705160200316968859556880408701653946425120725177793636173109564300354387307075545929724327497768878114802884230321677152995037517826072681205802504190700928454041036351055471703258224830081839155362498787906433120972115944173506199658866713435537385968003944341334267987836169512246748522135287765985990058302333699327742328058941440213642645146085973700577412180742119157589453871173261433272588292831638270852381455716896258610212799578178968412814057893137229140566723359641776609253019035437701189428003451721864092940182017132270418400582584900185189159639425147388101292845111746582715433424634681803858150620679195913052444109179691758063995841196528494196760217030292799493989229001125870860843517944878312004612681202156351236683405922626282974397886373776348438003762170969920114269873423159879279784171341705919027357154287163012736399257103149873790403015299193419903869390475189215289703883628276888643587978532747638493559648906494859905817610143703952475026466561154536342025218186879975721820942570700276433230067085818229928134929363418828425663279178095125657971222772052311613218968734507898920238712649252802577099397469827195406944276387077777255463734481110086085171975447663370575018729158951706509833711484565307054650850938057546677208849706434774970881701862305372399894043625126270775632064240934438106591924880811226801793640599761279626521899477862212950670715778547071201930238842773350316099011311816210888546314289380347533464558455633345673547118102556608537861997775330014252726555295045042774123859022993050203928953226361551702728914177142732888564287384318672539787685350249008322493427024214033592937090606428938235326527527046155025403358310091551668364831928517723331980841936497348130793553497456095106603051475594328606040013431272498473673306210246996070304769251552555582350683606097240321307093831044863653764068142342599433272864714375574148041960435683129467228837668550977891793632337863496188199639843702748604422707944836414374832304838962147703218349446971306526762557681992103549355682220756273682442900873091172303606603180370579195299096659297838170171211239570312524739271561124813982678243625511997719310145482418291656496884086998246357143933149042037454445062197493982101597608708435495382513952893490381116867138003933162250915515237987582390451222580185499529563931669388738395439045555311121073448414802222152494258527646054722247507346273937356608217098893721949758023702432363256403914608607999862968812380024581270920866577958907178154795975391110958501156010846305510763048902047921154250376917719548271311410181840529978572400770934990746922845784916713228597646798835228942225810907780777342897534600571838843855243928258730261644811812846596392908470661124715350335738587835911969656603991769283190846156643124111718193377133976321396799757585266605941286557079336897408801217170611703742477022389438229121921307961699924003496935849425002944351300198790587210459491950456902700972591082877390301599600629690562822182869498623467860033114242291815675352975796677502839714099692661199985349186128795697056573944438491734352103576147039886239155618023028009957397809594652884772457013232881325588022948800837837818567662840125410016605444600944545103794972917563520073101633964444552289204709455617174727057412878256045110011960994459558505218483943223399448617906905751390828632376331108215265828269017447755815752091783575198123995781878640150595797792218057783925065075449171378659492185636365136253981053657264315831637965291859490490046865174021271330283076691039344578141522581643303143069216139483912634595165487656842583467532597388372058524013773290178025116643505503099857305362828913070434665109458694999973302394363306113852711260230812648768376456506929513755941089046134078765289494359690241549896313974000372724443730344125434242699591124886128903805730956459765127788684485548728574719237999872911333199634526305048831160609779691885554905342055249474741815013168258454361124224300780770696391600813407217036242251400783291997804938993585486768345056677237674224264310379649106620462670531543086806595260535199584599088363082340515633988065956806207365757218215352784679102454616363677647047837619269302270362732661199910097159494941347703045909612447881480758692151077682864926340966961684632977240218700395908319793279102964489739070428860370675449738333109323766453661509753384745063175495546359705536083855741477540584442542677482264510351531733720640174647297196239999422375258830723920677827766678161498528531745880318008458863211808659787646242749254682838818072356750485077592654719696263329637413747426547642754461488106199273219271658968862358972355505021589163634140541922599865081296143725399017917941438161102507038004255228976658651641341774130618270410067585172744832784109036189788619569724424998709435044944599989244336086585798391622635369430197587361573920855556082865268082232886762518782445509018412742070385325910261127458376081962878407560922860874123367696664046940995037439227443224077566603599101413579597799409049670081086125214627719368976846942210502614631656587843947751653439680969271149874384609763843065924488191123108434378456439421314739258533087156482589582233776006598607707672710113722283922509247506746544926435125229891447988953812178831940102796778538239745671802355324375269359574023728896942515279144253332591011677328986642171896190769607352496851365542621775835680033841088851830550513303078680702834386941593858661085192576121703164002333655697854150735937380619237205254813861712650779933962517155648575823289813209027533886232611313541329697977564613872801672937918313993032480131923259390254091423939247104486253027467076045470305118489007510876874739608791296451608946011528797267963038500657282475223804749314989375007397478726187957866979604262791111148076427019754576875249030598427779067096006737638103006382474895760457104276559406542490790208110687360750537896302411447072481083375055062396227732925421304249423429764153024621768866137461072104597381523144662623955133034508163917906693873563548178946263389981484347292049332108568302144099215537685612018025500558319141711712736656217698778597459178197484375608016251576242244665911774610539457617486659514749499064421649119950304775000062989613030165030004880403519026353119514839298597427729785034171379060277672389068628398332815614324470998038365092994699267025798117235011885603861028969199828169882911844552098035960923407282225658381700671756353046881615583950280447557574877890359694986716252085113571133009653268814887932207870195967260000113285460184231552866278773704002686393263072255207247133735271514412954138211274210872682639268176836255610772500411508786707307640587925375444243755770901729807329097981894085203102128146243465079134195904491567005867464332982947354209289129933471900296842391253327582450603352098886822315260554803254122829326103135042635992717287524663523363720084052953846888943385840461309650417270226641950670807102920217332139997720658937328121800859745136631618393990879462133551988155126596912555512997724614890502434929378054221225470741365807975900480649577838481947641018763016933795864390329531506733181670242979495669770408938736725422833464756464011275030627895802762976858742487739587144242518871776762418969776289399725628396764196811494953349642561919790804982243861024413323725912488177396059611200073022249729190050506036532488530773119354461293529702854346629598899282473685301600734205797157380907866952328618026436986932276575384845325986850746437784946205539879179166089901779444844600316984252457380358865839010117672808527940531597476952684576809476790315191354402936823419983034869181313788376907207471465372881910552716391715072655892100049957635188585361290871476514664483539981817932914092907703654228948525578623769878020087335229704972887478297399230451355193639815029062931028538766332972966035191018818637890973952317242810068997761247187855359169597841181125087535870175261519956773108531116800373357913777815665499461166394021257529171418171528600823495273103098890828022869416021058216717597558225431010776145917067700074696901849314607320822201041942074089275464543904741666913348239081483829217971995726630415361539678316579874641437373709167762608391757620457396031878203645486679888324690475936501750677139853444298452925564597308713209118175126748926462152582756929758547926768275385979774853233809217641687624037369076159449953963132799591430103163220032313813666023459655565043949756792410465506530931623122288770039069207045781724389770137234006363121989795359159555259749453263610366523185996339569456658181051073984204291014881437857600340479441353168318379984646260352801312310698316172423419444550794327720647323221941925842383174022636880167641867416753636970130498464285111271704439812458244103438049877020446829660154493547391645837699882202175443063803701463123312237535274326413213852823367828554373724129211510088033637836832298018653459123596767338785370261013263411498494046370655996170146530332355014155045509233865208368826077337950634303105629762338901259671635539520878240668125563881789161394492912781309941893051830650501152464056669000285056340067177217506929818296860486322532938629926832264136462699837437929069557967294335324685643853482854624893022489288649109706758144691425778984808185995692150385220761536362686823791770853528811679664704902135902047921986233606209761658931464345314886452133289183676030227552989920898108954832645525331684014668763682121472254849598392050774749220685127216144004864006734357828622503306965604215596165259493100804890119869080856988741934543340284242667067229434714841218251082971130543039840964044858652059250208251269851253527290438771591147486813804181620563756183138261219331323155082394617780093092121291859402384358793298011794363286523205840389005496757014401480722397013421253126822486071149353983033538323985646972203914839415609084997483126418237490752403751943963847594824786710946105805005919967549570375902790825250084944186270010767275292859588458530084161673500756719212739893182399063826115868331417980392547801702155995072550979470533134761129873862100767705668533517232604342595676358741247134012221847400341670289251822996207390675409577068741741606184231540237058116948450841197687649041734860721056659171225912014526890206644364390711714154657696714544197198082684456431376004531878207682378093274333664857878110732468344236152483474362803999911636866902647973928853578214193010005713726334432543811852588779894624379779528014914156801134666941327994026576931628163350393430266453336796382366596188409173959055934946864938893650121065478094269302954170224972643575187799549498574643214769307789151029556166974858859263259337710300763042377025642151664860017626856503360384251541182295605069296478664445071375633402744290451251539514847947953056675944538429986815747701261892501133250351933439490550021750088015561402143432335232584495750958591713621686286843966141819545289367016468436731419347740067791690477485110290965710904932957598924732101935939990949902987550300971095970543716628074321884054855288973850354689706807890767878781680376860150621619174684190509147937937244695463408826108718388014665599287071406607836481017625420107650315849557167760249918248023628546372408336850869745852990792930623150828441388682597889419347898761801660827629036854580561088158395097780435096153027179117513746477603904710974659478301386386757636308851323599250131346307402142826786267338517189444627143675070863524798692092182891328484483185661250925624802985524785173133374492947402246413829841643301303782650931943808661685810580562209133671339509723566212074512646397829415887287324713647587196522335492123809544026041434501838478368247390392016203291677261971230650934886378648607941661609648882913225610984724229634621267928486560378191457861983610997491780131156928954320967843047215985681390268887701547062439115093235733503263858960515493878452817869672403188608329180634690479379311232059311559483415001888076505269584201687249716563443007884612918119802900578976972036184759466878337115720994014086166818791301891188344138532873390567423098651335511265104006262100849339895690681380361081251035784045882049656368570064534931820032445199994676226335954097342013883188926659325662345202345846351946883513712162418082934715756339249941710780845800285099244416875545686863661785823106388827739072258036085354060650291605274564050372138864883665072725633127770848332583687931304974301989531124322563756346377566783813733860782820852644167581091126522579344567421913384867807216268467215937036732182984438156379241610990559080059358752270047108270413312103276230858223482968064846463481768951167964202538397893907662007743564201418451702764152514979390424607232345710322465664484533487791133762589497088910998901314416031280348974231371878370304739110451239082769766557162914116972738329791121687288837707873803621661337322825453465554878643365616102625772324145120012726979172256795254036538346264861088545790388267763286420272580484043404050177915276906530374646395201378898033983289100126330627593226361582008374005614596425963229737049667633625272227540644814389389167038929310048010255151577623107284355208688048149095123265609908639350704536366784695803468367290202334695127323003597735102416096983144191969311776336627893137372273066159785442932999267868454939333610736719522928255775608261443022779421794330338870202342710432129165378154474447945491878876264629311525522471287189645061366487664476203005965708031963548109952345868764437816750833992163343996962766743205924919173849855246644113405156813212928804269436235808409615672357059234739194286480092677354280342019055955657482918286454325575909497282358602598357709700653110647153123044639641424186315889943348701611009071556639621560414828985360962818745085445930005737188629011997889710950237675033570389110070380468707506468454598081909746335781364680152272913316363746857893555171396210556996342741674915891424419743593899918788082062513302878252695645020116985664578337096191975551275795622717019280254598049369809193274989825888806629612345284761219807468109385663165060668456641961222715303428242315321555667688424178367703177296248599129869955425888533900947171624458176857356807418143974399222098106715014501138952290766668466954288187159330739029218649244454690501111588382003459882515319473807348382526720091633365490977988714471666804207618025257889707673844518810302704744362596317426827677188768074378551598217753739566514447727849230374163051451896658098857875970797714076681906549097873707484419641540478686778175769881286321471076402175637834805261369939533401605518674626743891008741142984877175997558854953000613310597474976119646828936371507040178606332559515868964928612391918784998389746910655580959016406919542389845435025274079834285746108673375521297934333328954272259535379098946428971558799250561549278591094182738161135414137908028663365084431573890395416343856102651509983274328866462598100704715963828925655106482302064459298256631733372338956063114714739512717703289678391094015895307999541308912127672964396037509035337473441169785598207252347357666220138868040381867887748411276239948611745939269503015893601147321783311402743362696206329815894482571866665531807664738885074614779016971808613535502533500808553215415702259574201734451401164789302783537932000145130820586198912150036597299500479374093731531470363512713349170816398107359499324011597794810509630833694778360785477870819889051807219673653864119236160958010132606776123780268719447734743842250541928852033120361084982036091606078502000992083206450411340902039774630753771994699195162169292318609867174641765496500343797179834958964304029030669949054885780004190878424182737236819143835011619767671676887113933654868563285790826335050628637825760149042820396339831596269741461372480801430622585532016848477335075978560768751392683960103712747496452207034919537659580918018900260459328821219870699412988653601801800841353191360374058517640876776124885145652729395429673623857032143396244265116076234298088806673355214139478997001875828414628356825245255923383216563202164704288774635109284327438295251616602461434350596039445319038922083395424691904536410576988788145418474264393940493093007653195822782059213095277289050848452371446623324054611546597471586800762411326488725552974632291251224108701312638292782299691898922916219693809654277007522056291337614723018912743917259106877132254215842901003030315632325818229368669455429366838705840081907671626173620048008365283082210391230328423409947056272888396874545716737560385252748224745389890859126938733702392270154751011278948992774185199158351784414293506793323525467793345673702070304771749628992016305920639372379156983899218935331132640048583941757721328353876258936292422419155873333978777734612521934453703390710561156290143166808637434776670370577277599516116517605173334732988571062580272618844481611488495489425809685692012271740514796458163808388229983074805914739998568052956793391444698260423536508634609491981929231181864740783666802874306496188765703390960254275702375573864937040440959542862905987105230614418570587688508749894194845553873882363308227511793670400520496578837110656295974744344741977542759358514980338797305322306553388841940706481423932398624937730037575694227015591086398949430647455561472941244644946914623197822953657059051258917085489228313369458889237268220970318149949453699997774087804432024751314205928398815583823005711909581055982642927896325262613268884128254204335464983727909633344931935886005150054149045496761888771006417152342765657629829525373974830737783775099621876855002301894628549791034640994590783822921663917922943107750561808231721026081445094991051684388206532024500901481445139546328400151623741384555182245205964940081137195624362267718802549472076782951457389006253102338748152270548052848535660245925854260263373203795445267621821362801970045415522354936983382653727681785719613620358997558709704154774956112228966826096592603230692090650964080122520064956410333623842836135669088552500206403917677673123181270151845371178108908118350183441953387598619614063542329730755162358655107501164958432072767482104100113882957278169020410641151484193026250250322289191572857064047390265134796577549944501662632506923157200324697308082996787156467124487153751692488387589000646658059742880580049876081643992769099368189728809834138722775462203971366593289852197525981327816705847923644887538815503362719120946436929089725116551704696006586177066794099122208307552971014574570528421451637672513722081590064158775823203604078996187452479288743894537200738535408215116112784641893303755403680394412523967133995190548865306412538519856327321036293944520154290233536871720466915493181756182225749768144967533043769303591268093168841515399339085091721944754196673123066704387360584523198627772700696128635674479419562777783748541100281521044027390264474008207919494642768615745294295594512753160497229055418234709975474337378090847192031052694584844220940723147852837872906062517620099428888273867784161896503753508514993325554769702183853387022642677479541055896609909635868735186382898236636975308885908195506950150403174624349569180542680020465075036085406566672932705931006331556580290438851621518587939041508278943225236358611159835240523702702756102705957723128443780656032870579809857673769835597005288989543883917892439092113871530737904682730644095769519198594150570539499553154999236796029511575815101379889674349143776854285041744187847503350407482991331537000236761308621155873503388934288560696367195203462184011896639156509290296114174898079384911331733805924344424606929674800962725590091438724485214001717725217631883499475354819073968518834090375832778757973879028724147717154172298441304856559831080685087302162725501666174600091634811273995210689603948938429434088194453282432811761157212960413028444294063301388391472268734959591364907703199689281241558849815363894539235150194587638294004543913499926249374184385186970684072142786572544830141934748963727666698386051823733663025277771284824526317361893952041580987008600885319598274987365687953928669330590306779221029814631727932128373597443082305339133186831365605256620580900152138614692373144015852739996707585929148491887266000134528759209713419996102026965266706833736564456783799768324964966197680026220982559294296102022358403798468119815154177589119889071839079384334999458142313008610465884618418381015148025985037609855523308574236974340351530183327335591672101128847132975563766911097561315680465178431736382420960561285320353669835528189004983016778934866316415867187957448125178262742399977975544553535792540714344552878374752238276265135633633592361460520628107723138022840609909920699315403343673071190312476080140044917572787002796170578045627782300875182298749583407667569504040229230246358501415649953065907506325688809807681927743358361784024562698782019359262293172474498014882429069763580585014827629131977400306303153730893347823271990790777262733503556848308913166108326741362242571212847188212560773231510882379687783487003972647755716930300464581213572467620845249957650327381332930558960574510812939758160395932829482901207661224501922333992914093380975875426164785636951088351848396764665812845384685669416348690651282754523186555471658876522205857824161843808306038924951626921534326578076999142646856893463667580510603294944777455250903755541513635811661891727296970611743226012651050780793843580038500952947620480476859420926291535906470763734149485288869406639895525139369122671686793448699842636071423439731220501875016044834291469076078716647979064889003608458236644508338551129509704852890888406606531790108441626906715562334988411306401023719496237648207167611263461116281627426882842797763731730541647463238714649171747055208933984184832407800598187684631513285001818741064298921542672169243204412756305051341665022688997710279127431630546976816189003111549717906735773195760558375848489363230652608524373914332401379089692707265671966369299777534451387898663860057563610396072863078402782966889356552745473421868740401242185788065069263068230217213844999824498860207828490539493709366946212022866237390823262881231726083352444452127409362939712513373968733036828187892793260917262391078247660545124580935605015291283336707398501054896087260460205038829412128180119459982314345532059502061105062333971483933211813820042740908895306041678244987350805846156472664878804168004822232526063513114220934119807877904955775110733373441844022785392487664819507576697045120472009706355087619703025574802606399182951449788214039335541943794437382339067556716450273041690941304423360349672005016932396051565717235412443962590636699277049928811822264869762097442739847917962785787317061449088996713297875179223813001561720824817650703169835513518131607942799885980951735640512559614834972682261621068043753317028955442951298658158019950685825877340156986972731923809967193158605003137154967599691316931529615063849046406149710943025583752593689538662480685159324711901676733184309113742963637846173665316144894924753788459592696353039218576155949016080904043243349050407789865117996264597590432590303346742523595828471523931753733055232813668663108931006990298821662714700233411840162148300223351574410371348585421013245847740201166557858900332156392025050003447433616134793647007656089918232243196236286366554065490010907793965341968988827962342679404953018630418633961867639769641172289284880161591869285610808704422160767838286566459576155165343314329892344770834235202610233146556730563623622800381583650138331078513654786378420568834875471524946396755360389373620693505652353118285676696127845403910091215973726961270148698249470089498724138008077512880301858364874904790076688142682559524200180720988298151079115474570795826725344324231528896236920195684769721764226450672686265095772912537047834968007576147429098881451568136259264105248341189966930249533025605319907777131389653172983511745871521281033567857455953460424443816163052396183377807670042738698364085609437677581813605192302449543581981931188196955607560465855910365571141673646264068935241343966473155469840002431457680750663753200663684728189592724259401605103689400258656521793240054433024076908975386454282300621567403626643362078626378030873305468048359878980230874014084937599607588207432123373688228690112877471612571553619966352512141904740650019280882767616432765030624053490399068401004542022959092682809480453130524276570711869896224497518671409450840572794914301766488539176809411803285660023917035036111916875686223282942947459386060758444892537105619709294055951962537615528571441374328804169923409998645641984327060380432202824542610045284247630239456149894057141864037065320832342309875792963348899810762325930226374506409788947644947750687305530489371690250247293386497662386315897616877728395142125563355031267820472492655877163180714789817462819109906986470163722524384880725533819444500882635775052531587392136327466662067625544454004753476249844199760238999403878653210623885017252768657893263427121067379302368109374685706941611676711368824259680529072098919293781525536694616740005344311931941785588419063315626385735847704993566680771965244910303572333544216921238311510238203203348421238686313449124933603317566544764523868108242921680546215120332052627455309201474688125413424950220419880182196530070392814258223882653355405230380114530436914799199467434270854113125879440721288927984069962232109171031303592302971260639000655174591748434638757709943495381220291102709574464036146849605684405533262550026662374701102174741855533899586505401721579532548729467125042212070276373694428534056521360737128867067020337397187598370280871359059158373928216792126665753589506710255158461315881245670575761821226220221530604976238078576031437069014178833477286902776544748333730648361183237581364305757057471022899479679429139707744097319420425462203487140215319679804669620575374744696467363480135352481602290654410441099887321512464166446025872870179506540514509637219955827892809381523759606184153618831495801416276921154581926351519138035547879003898785367985909444505508432874958989715475831174509717257141565680654749311469164765168111007340646510151196078660632729646242106064888886123718807394781829328455844582875841414588770663106904789731840427059459718937137376009439860221451185676580158668208000629045453470295715171722045998151689079449274869309346078704565624673366226793292560998528305827530548845057809939016906351528701027455114712100741285395542587699825819500142347157793191071435424181121286323112088241651083875068763920635593059694582840090358840239862104723914571996156665820337892035474027624224018273487072155236401218992299321419551964961625485237626310282008980956821318241393046953215958852251236104426491102209647793638172328081452784452479001895728762705217713981658459306648257236035818513971276518462705414230599789431032685207218328396177934598018777550704363682400067081526323616198866340131964484569727551536343113541122844078942739510003817977094867010772660795560703125695617724202097877414570500295622102287327478888165354770025385038357909074251469478077164046113498145498117816610725225699874242109014108800074870332252378183237354069922276868357715902494090631155191730739778866953935332279127770364257551702716262889852196492728334918857129043215267531504830256874617913236534531322984603454068352092781156616352233474170384731358744652157440550920744154552507571956955125500159160790943223566196871138759775903233090070417350849123355939791957110118580805708330576606808835371139389016573861630204015211343318368012528104794332618788193702156596760294067848338134801030723612322527786602835282994674124869728477816519632662506050778711868370711487062873412682203509326003228092496132305907176002666965386446482284541040182918209906678034637764522236608551239280413822214759470315602843990493087503442097477150291525564704841993214291438823085804652226131938510999549452188998519428651598067140885541858474840837006059763045574779286576338747609728615436385920342913918248240697247097950077653456119401313410778765902366740400845180098992233060482152318940539669860237642568169789999961604539416507318710001998739971901613635773291294967315389184627921237028326525483945460936865028188620809843833202292290759425989424037782427268124481400176651724470458808012246831590350776268450050114024019709997435307947609136388064669156557952382966190749660914661484359272719566185679682017734625894952543542700231327018380869390286558300813022215216172378743223525359110798064442153149723359362869172195974137881025703222927051530834343052418598176908108779500525574117304149684951743215432591095252557664107062153119638477223590385270143157997793583371608803664374694649345801436495975440625041446457965824160792949433226373089313702474118688215026577107892853073856039608481041313977143686498102027074689102942844645975807305195551359998654966934174325948527343528299639957988202543645105394586142293715212283919028280101887670309957411476189916425699848351633425597416142616217410272757785441393912995837430236471166744205496118833302664916006119786947750606754391046862292444254629268570826226999854473382222175444648851146860751305691865578868232465785264528430409884533144421816406508020258136659266687041363919987548667552093022285706605907352244207277201449299898268589394664598177662877003481781821696906299820552663607531995187044189451540743151315134126880606367500902271116765516769194932916828024514062277691558006816940564639806699397060460446224722788940090151910522660234873890531940311404847669000318140577066298626664524782057886626573040262778675990039419535715481955885926923635021933253849274829471117785275580520381242470768590023820934625171987693404928388069335081114062210131720329648696694064713497195543642120812144326555986118985557105847011140933567046733087243977489126899485450889572492787533781524463017247394395479387937564898969010594040278940300541334382406388949380404822730066483033990088145365166577236709298452412245632962427745154501560182919489622541165303169067699274137932889703884503172963888898356958608858036669468983534876983079917251167493048252113941804379862424314342427144709393693391965811547511421086118013558389800421212235170135772595240057749549699633107220312581760362566492446927150880439559068414409207577072314886426727410666011208175229279858969949376261316311419134531722935465740733854851456629280760543973893875737105951510054854510740214394369624696989759136069112712673134395584311497327796537924237070334192659086784905609036652729280441535837329000667338918027265413478531278861412503220037297134917888488313992150679927963387981422163378623648103038592884045176571001098810408632782399229393636062970775304078726952453992339083642837445726640346213420477994763065773340637766551942263114097370509083901841364648118842419969273411650023288145190706344283381644247003604516666640036804743774156895105003497061602270161364221556147662024448100602611295843729754020466350698323985973179547050199159011708470462424971663474585927710776693933898523590410572549254658653144737120660218961857791320209234520694180958877822774407897224800883124695711769597844357640589834994479930736588375454826814428971365046683243505486885054991368560416987878678477213684617731193241990431735951451656408315378396872428177595986959918834635473244401650679633686473301004490623695995458941739246648466067452988883147999104367351989754299191491820879676884453601113258152783035652876695592371263009674884309915016390358104375954006831166864213114329803424021163923328482897244278877277108799435373250218561830283115637126683398105241060890330198077250208743860755056083233070015939819723931644885050210464077552051398112640159502360280254604171123351555527728776907962085533625959186122894229007225951943183051329937908278502984978397907592931707301444161334937568933135833953630212437088186187529274963906930639458887121614255001265286144616705457475963027480560243336155364644344610682765899702221832790042977482009756801270985376873516461253245955033556256523243531836919983125248834316058798321079870763748149112634144655885555132748891351905930466933099771736324093373127309226102035664844430643995844333920463429265969583637826564164908206950135467046789185901361379788282672900948159601265507632933130336505414543998879590931107352492586174751002043386229686743642465999106155043955399333794141389220072076261152268901019573998838114804628303408134700381201738520660179283664207870790386491265204101324850522441277987603309263873057693779437031049205366918708752467561954387815117931813480938284537555006470325243637109325746792387096529088253911580493804238874089077850246544698229703236546854553292925398052267837307214223092451614884782021863842413489632424208585816344875454763328334369790953587142451088664611546399350610151403986625117586395144100349436308146747513556530045519735946468354480980418138233134126218664792929884825771256740809444972963341355142064254304916994154234691727284647905208624572087189189852587161627183835056351050835762828166394503468618683943559690384465060967649026276375584176131191596851073905198618470687347330939577311706674915992913378568839219654639098848593292345736235661641822148150274723021176401947956192403850450093930369778156663831455999479686930641504839413457772328706025047587758282228494960102620722297079433442736938172411523188254006611092695781645789354299435810937121546175857344067661864300096354106584013327299022478479519432936339483600920161387452153453398455369703223824766172629144070022077330726816816433337905277568378296129826692783834796512639175420385396483231059607795863397757282571194304168897916022858865572838156927521971331940997768933475592186829303072391044677456890125451116090536445491606062532999900018264998692565228347606627541905718399034368532940598668983650401258902557799254143828670546306947535080883140261665764558351009207631048330998580265974062634070746894706351890283835457711530761840877812220287554513630722384478586513871373005266213815090693933557886800571337092903956007140015186529160792472204100003848017407312033174777366873876595958608702126362734315520186149837669848987291579387732910566219121231502640449515050241535526513655579633275939449570577975753217054691664905063749313932139715320714424453250614300846345828646802345966649273610688317667722720176188661950882477636678543043192717297301137588855067713976420661378952936437938082465094884014871269607216274414917178886124250195949026027928969768757754871809390656481393687448294224754403933794456126173847193542005463903129481392753745369025991160605683424280769918836051046518543375724284323524895896598706273800256061608913042329777489043747442216816200547981504019868886484294049030456156864653260019453889972314122763918813491878807440636732314300964879050567905102101415515496236362938937703676741505153530265660515986642521825282640383037627884446863598210951077050894222759861541802005363813305049906607263092327811241744475781746933691412976004589807136455896942200912824415150726258440482991549160870184950493073171926246756403917409147668540538658916006175835366320393941891215047058870761248957568982560546645157473310390650499697916202409465480207489733712059169619637999340334252727786174229812155733212356334578098832833386351943609711610942528170229205468081445837885574421827213677186662053242857342285530182610914171508884518905150771014294634546998851921460847899281627652995208381598680365665273388978279751837706027446453865368878795606694885282039932438432871231277494316202103295636380026441777441859802622684415585454396494068792994136326559418397265587444883453455095826922925559479472456447566330967432618374177667369768001140609740549655876809220657217126884977372467465967243063759667937945806058480283941142946382068878043193295137287761926710287546946202330087079999130479749388205512997855937617674398256384340685024576769522587428633763479818923860161189840617140711717249108963209065456599399566562049210384115385518189022353126935646177554171342090002033889060703949026454609756532977177919725385021633721285011771814382924107592040819280101945045354148385695519414714115053366816685265772671505077129158528314146173988395768031753649433618749051605546037938506389408049412493940184474108806321584118016990456578991185857766265549762253839968069708607625977294363769005529936475553071051299864528155963987297647591306160066026200083606690409263226476872329123064883239689819988485962836491625606402215420941450527275969597936993687356440412103719440199267909983863365420425978271898863717070005691721659421665691150171070433512392343160858363941359110414993658256391737793632769780014349043989409523239332461640458432816145940053708137980300728669636915942663416841382195810488233190200472987400100428216256307552361679472056868277659554640852984789017609804448657883251268548434586201547335984048329802052691351566982662249375975520505290349601805748295029756572198316498270884022000488989427835018578533029145514970482698512576878916201692092315602540870545691212577280702944171201377166779011416199058584405603492563258489101497128683204535125969765826501672277363379752007227030008469124701030868254272520040525037398994908913471680368097287686099849423538958115612483047161357671660000643626439160806774355613611371643130115942227746652422946321205460754274015968465622750842908102398029992410957699871098790718820597528125114543944485446964932032375489552776542364835691416230272088583313133535985481812443395885255495502508663584172151257214959658855472838795109500723323067677246818188349232549228371036134084135565828773316024597045836191871647342068390633874415870090725871752205868632278920170106395140226087049059676882182546420648254910335358704470283558476087213100116244605425374644459309838926025016091243068991136567154883354684386215936498917688072723383767637148325179504532283109966309980693347743135642833155011143042329820689365702778138646086801924700826923873702687861183212950254059443923304963345526771060749149273147378584692104095619054432093075075491313669682539109952827251855309272382229743220104501665656405049106485431040661807187527451264345234398511296820257880927842446153097753360647274369238578810404245744564210345414738087034517576553883030051655761492931218828632127856286748817569654382761876824733357639194028237344660719036159469396067691110092683128720313541378188610460913921085288417343534782766528918782944150938431998686221348940914681152048292676823665516151805407678934057919756287601800468853194911163177786649936566861223952855318359297580220224308928242717183315576709450247540378231594385296914396399422503012203985958544903688946736633082147796910189453034699587955360835997520776492904980655642191945541754881231525282465563223241532369322470169176698408560484605360892057455524776161918018149594496378659306338547523044916136988032106076130062224005219587479936271500635367558394367718804250469193830961891827713465114651999406568116663571794902107587853913482745621826349167463757213131563075860642071242416912480612988504671914122785740050249290378698758610952830468511231451299860995103921558510711263460370035889748519711283594636406039378583515158874511671833846736870356322036456494946797236750763771183669045175376621309223865476845343524097220722120545895578045311649285384523588545527185451935998923895468720454579464509460707588999727254569131780462150508007178854305094720479334589390186947650457664135930342085805897054675372095612875816794179177184443507489671320930010681606067753517524614631893458920910950298985472786458387871171186793614786823235605010909543146565873130906414289027136456746993993221198509584164879118033727651982281897538159114567107121624092876851192098538664345778459385472196197159759334751568564551890265436656592431170632018429195591894155058081830234969335793029782521061348434518943044906111837601012590597253073599976438139524518577315536476660425708342659800624502831601263193977153685263227629404116612396635651716978768031135697798509362972955532196487136125556314696830537324125415748326140196714840470376481877188511277275230681651543529940669646717969633550892109438870503944409265461658497060594516995162811926986911312373341045310738600945341141032242775131577351320625410505365211811737768155854364209628993352396637058883652856074282842645542577471183789555970822628082649094688858682453066919559586206706834241969876533042257178516070583638501622787174451430978939644814553133394503789652546577374340547768421910190786195156780296854875612490783385296983142818655137397258779553091161751501839640825631941898994433366736153601969544642134385484821162674008972645811729898274366024321670798192416000969032483067133682549054644199341537509058436482465544078381179091376340302352211921909829799706952231330696704869292040205675375695310522564405567091237623205481247876792481879409865537542235332150955380255539650093867199369705372113694462005380607415049475767325141991234109313170067689116048773869637128984634261129613306686953239578318716198781866762788349894192659535503563415946291516855874304149745464991537515386318044859252379016145771547361372784932131205244958206240332492025034018887177158888135678458941313272003273924022782216445253949870134755491106691305242097884382992097875801882892839246449436705358704811740451609310481891057961315054535653006773957598319395137292556531833260062554507629396084003808296003183285781560867844071130201947059491529783522142758524963744896725853617049927156329415399192446352047177595560291651389476080112744519425301841789344756112505076486783046020168438266843589529276002612087332489174505915981276999691414175591561751347561463005931102437131533958602697632613094642461133845412194973209708861655529560444048727090471756413171625534207520577029372379615309322509257084293589749077827850670274388493640960819841933784875533407346077694645557004565810276093316106480260847696700262325779567561383333286272927079289831126271520571774184538046518787404166788663165256890314197814225434883027147236543525772807938631864288233726620942965140752082887719689336999689343072579720738971218449152575971228316458738494971148464908463459334725398876286698212113374822479957825859655515988865750310449111937718786861881614997083784226422118533019461359135678548689826415716966177139631871928307428615858148410260238293748085991159817742886559995642439308050637788592199949333331818967481254632353676860437419828606412440281879725084551948708512309253312162267602352097090099796818620242959183337702977021140496834430624113535303556830629276486351030531010640470466181630784809312180750730280650640217753879831354698576640339450065612622243767976887517922579417393345868975098845546828923793742456885604739179485625546782757745703292272193156797754415830436120638531399830200281640494630428551571083287211046533401390838957010581862635404678588178170058233631312726480059473662444306541866119961258597187303734289380930954659842979131443963211571553834506191160384399178764180629979515566211524977041715352262421292305413440261269497281737506575423258722484015377388160102325385288399436603513129570320504265614436681102272355929364839832117658974062480552777955798583508173450301746803789098618799960006690338461691561985027906361324323904079012287833207401578656369469224815823142552503678901862356258439732152564487269898959258120431964871587023489492411464043564201143378291534974088771087198426413911803330930105100826482216490877397269365882950423663109058787309794283287341001472647212664315793583161719164764907777686424088763371384858495504763036159323811259417573268100839118514387688879489062159580209284602368356108783752797321009099272726408210356309798795615991337241997021373522133376619604581919476397775462385797058453112901618052742012119240599896567829242023049061803563997520921209392276803898422485829738979590523427849020182774963902526661348557377636957813473197542074651425290771473088572584315809631947403316131627047770676520355212360207530462412406252786987916781722167844367816938078846477426876851526703071737014024053895470122881882325780245722284880029928724900958566008407106551409001661648995431695002613486648761961521316802105645151088147879067095315047771984060304402548022059137979272453121104898494487895968737830630118032534131130891548891682242955923228911849234747207209090979689162540783912852756502844198543322206953912311879027058700208479225523604130551798880762150670617100846211358692972643019774012411075907253924994861559203998621600356172223043341113221076217925090404822969709119124853498779118297773850675225175001153024295759879818762046721198952222668314372761158513498787029305283485596101803090469249004779398795109968056597036589357585359570679956223053808361052014982630039557705933886165544337724013218379606536994514146984678550048345910553815413461120998715705852966394653730298713511306691972367502287113678759332895476458601173526976034124306280942654865084787665531166992316536685013107174021525377743890537194786734747852632142815927958642471318584542895769078963948379223956745670202293717568709419299722999513406456796696945611455124427409869601049950831512098144176897745469372468114778525612778136347816592512226289098832046766464503641181368070303045129892288044156404228311694725009698027967711431356595946462885405683679924558989900004827156824839307938614827610630395491079304795447145732478627085500904612954512475871934952220449284183982409588133133293012878866857258022933503397228853975295919208490222578223054261497057912109796400371433958534852008722898570546112474868316645169367039794736263881246286931048810703495599237234445803371499494912248960288501976763638494228909416800305702272652923192226534439728818969639446766700520097086675990450270579591078559881402005594991412491289243338327607231679463947732323550388306014778914795495399047718403134679626450004135453970887758411232439947022871796965631901662627164201931970267019612234414379572266888673605459980617350663992782802406080802953665248683540263866140444733828123782520679582222586126359460023992876402414495126834020716130887446717154314588224185482039329111696349358825542727545724579546757706273937875730000629274241283216029470549701710533249391959178531370275627382664702072970455508215587300071689068214843926625445372246665494744782504371865725332284425666732725723505738802824266680173253814418220620565660682831172147794577806291322734766306708590998046619572708466357466526717204061431139213690029252721272320725129876458071030459472193272265761099125640412552198921491456796712831124546627479487889009617757186794083589194132656383453902857469734298044331834473635839974029028628881016243854228076167337687831867979538446652452845425800232766464302206448238447591403025451526677923679594346934416532933014744659519094174727665682838283640130850842882817677586023214689275701844473771947712457281386157015484558435479135174056293692552262554972483121844887524104477317348760278093140492475297698109946474071772672408797371205231938339751046250155971992424450522241887898919114603449743517782919141749176920775339792316533682468939991561895734901905930476339951612637191418694598420529604996450396266879572085563258871131006702584746620567353214246211696152103905296933885598434801680001679123970991774678337456997577573341566544060250617022194731084647111614450011804989836637485379020489224761228276369108039634290819391120544810147156964687988264683364914816575969635780940404641612220403349959000522242329097546073485978342571883609871309376288308948325038864948091192116177432549998448425354148140809632334645222825161678339771954251030919618285501392622479874775716571025618324392546431823831811979013300728086565570875669581930955588087085738393837721260708297754287177626967565163947552458450007915178668938685845837565570812387542912469482415889372864413890866784861492651718180907102355076247746268741543470424702222452584000796396051237904006545764989017239400854879970255209632561086950385522227932547160585490960041295017225368891474660157429808656730007051647344693083774786906187913341183440937695748328668390268448680242669299570943065706326957419941253402572099194269665120273092846162126966547196231078045839293692420725249487793293687803231919086101108035073603789100356663254958778608198435263163462432085116951249877789777816193089444863737669355306069167181870484710487407225505317627952795633664556307897620324480309852017483021149575450455586909274397376408242542743239773786474608685340311020120018648964592833998232936220106296199089679647987334843731095608689794679204861721144814433859278756070396191003729016929210960248719034700300312537236553713255575649062286409346822624238918030963668903014731353297327057321539034199910374156809003292485290071854252090493829945590190976936589959310695772292524621786633178508072795083627235022905165367166970200569468511776869508273447948019717696209566667040750289668799440034512040079616484003295921262269554075785903717999764411237019311667591391239342575858325885532861826198112783144773079005246918506765185104209153556091763004939192607962089303626730330086586946811906409368664424718671326503434564999524367807231334458117299659998415660384992698997496575697003303346662489279933297913072647239250972303252321606753759793545365374552661329321144254463571000958280763654180827776793499274790249007373359030749236041487597589872821962419665560485551609778059991056078898230202696971502129267667660276325190484068635794690735429059514539823406690517432773672812581620097299752214667938434038769542853477202608028995496401497765231201712598435399108549620639516940269015058818390276551503441602811247339900957009107040704555610030398270723161647755251275201334186268771732895570022917646617210682481065878533515007316149316689880969654717229787149858613887337176977702547955655167373709851627924893361306596122009934212735473524847071592406599050547774090660040769796757106400648053648472528506657698262884323630703309733363055700278181795042627098013830645227265169442618060691940196890492283809826977360765185048021012130017612802751541384828870943803320605824492903184837333411889559977584933307824334979078933258004616422867216195470171888092627962641728817043113016478823253459212629681669069817792767896820192079745188620047463957053161901857024981959156329741144297243280835730321427432548659734482127730630098236226168123157642889849430948192106501937633039143354286146649900416863632629744512083807097565172679945570375463205276612149611323744855255759812899227832717426213408428900056169343970108156113025376771516803760888733763908339775221781632805582831959146717394466327543855016067100711530907354401213079716568033094518646939501865132069954763317535047437727145815364363685240812224817262381908091984527735850457228527169620413408846768301046704914230788565606850476345168534526167777462770203202799668996833767174564076956117423972214977309328703321934159858444677494631228368183275198957083820171201123139445764600998233267063953448521966455926682802040351862201472130038660975536192106455702537032339065001000962596273986335186595914980708635069289723306228435148535760693573587550652319439004844368141569523714931045690104818174895114958266938779737858797593441448635634390853461172914184730089664809526901849609523206563174950577978932953567633496701202650943838517252453382376541567597449639315841322158724199500892696709984537008967467007132924080324029450740530391596523900888843766015805494364194113499673175231636963323491794157689769803247598254879806143429261114625547399279323005587591185468390936845821937152902427480336231972445038120262834608529900705819609351363215960028201034818523692977764983421008399827288197723913630998407146802745804359575824339664745651980591741468523798359703067841720268495930714633647977144871544667361262583319997818959059424062260044209124032540993224731691553789430754944077907828156579784962649691775946750865137335991207373680293325997936773448843655012683955636558034385648299015498053411936559452040792508700518780594781841065666760399851513092770234516149379059135633444461754314581243122972714329849664766527725254729160368963395290996425866883458178517390040724620903657261680338578812702066413706762722681874304257003032280534050817526373932576984862245331616164666284402446658455574327218029082070786558121897076570542078279343902067716537753788675114859989447768311313442870902086069331095275392624759963630714254900646707374419279515995695758508411425229227661323565385809290034036689911106739319790055916011086129287394776423020670195280736107567791665750921250225023433138124918362553471539432013757937428487254509705981439597253075455747857564970149808323150020018281393745921888817105142641224785919668764690455289596834704624475170292791105143763636640191738488189824429925487178468150292283664182046579393717371590243938472703754082620172336517473918827463355035952541857347515127018480029510381405375477718015147057602147264824887852196701743374265881009138790131101413986243356303042322885767652920968155878090347071059595528247240970799206073455068221825901541951451221142414715733968030520485725802079485106907389927331055239850638532069872866294667237420669091275676329489656078837899608882248875719546657403968206340171954219883743995263523904792764344326129142503468113266135525760102026321641823996975066012422740744348806038715170768696179040626839847830194739422872416836376806737863435963687975808515249278390569552533701260727424672015367300054451771035564150543288874102765832515706350007845248921270739040477411793345454152177470887342756801290510886344350379198861662508832468590990182211306576671076022369171315149869097348109217897551013511584409275460902211784377080019446227700862377125293363378553990452588690217907608986062256038756253299293694721773785669629915343224932539346092455661154898921278585098269971724538317166942068014243718875747799366865246925146576214521496113668033529561930358345585490541302779371152978509351638774193761357987630251494503707038003147138755143388828945042866657256353399651218128628925667951437281625285285032446579180947598028166640778119661829829116171039362739997463103411893531078294770301237940268540213543838787955719949491608961066047702172803042714841886699913493515663145536969219982390558781865097476161090899386695972906921063938922782830789537233601105581951604752279895178927784408123178179602517067787981875392721823350489759207176760643083779577940767937490943021820041956731809881691282742782364252876865537653358405128386607970292940257015008525929813155566214090975723531493173698956124427587883092304135934696336344246191826538444651723009638537030516358560675342826848951239758758555852652929082074255844602017120369937121423905486082934332654662794268097400755289200294708770506443526209819652449890708311527331635796411535280733836252471843192360062395272909063291947885070516722915806393782880898153751997300517827578071928712808223331894741916667020556167381745725214942620887475635593135584735989878113051822251397072427299869782819871721153974115658829368343701729099522568221556766369553165049058786165012450734595227257910741972539328206939189157197363107636792261807320953228427396174811382787770466752535176240722880269554583719923477403575320532603509091599049595982359942314488710161523991878173952749898387185200128337379328596371516226448708282138359267031267998533644497965593641880411919230601876166573929431945169299312117580738206941064966785147230659844236354174736939586476025471469434440463754384650305415754478438212795989866117195906262421511500931606133687718047660214981674486663225620038123980857043935619250305994555500734180909261425429617894909601519316188009349993308963742313984854993448515764746064595252562635089729814195686076398196645594748030434947733426077578055159093307532515810996924593247460332481381073500191660443531046566748306102457790121665167265256055600969733902595800348260376123599000429247242938517008059301379802391612538217646925024357542864338429008393398668728264904188262303526187127874039705638517625714718807657191137924853718884331237987407068234067083682480360901645740169747869121193664192770780854150912504973068582945727543672504747650494235571481219989033219675291263121203876152754724422951939938453083099014070460674819936401909561255482312064649659962909425326225714582747023594677922946098532291055049703987363723384067507575002863509563156177726879113949325501231341750721313708099486323445929755724581410522123426042540385567778204473376256359501962442805690479633007845346433901817188896850249646390403553835907118928721513884354175850892919182136530902654622330121999263504220518860974075207344252634477239036964017909453092084794932740174515713176166678922892231634524101047135296535401410090733832588595776155463329104390550378462606263627135642282298710584191427010612348581655496242339634675354817325245566262444558747819002488542405197244363659452670808584979742206508812875301376580694855505770438320866202596883769643686138832065621103039478103320496411304466605672185624244713646529999646172319370917914376519924689069537522891970747652831286761843865793280723469244269862115995769314431626364897212655812823194917941416445653273572805950037648099319455953335273938933258712603347249548084171113888281129236308411679298253757908559485251962529118691161153341073395621699191825293800780708441249778694869734679301191346438810402738354961697946437872149656505043285092378646585721665692014244536993215087044267518527503870367979131117215454910891901255675358025410861866047271285395528332447939220226335606535455089320152760514333240636567754485087871836211736829526283607204276334241816712070325206893795840206283073473355285158110340870802714723351531588144442023455918521960793079798528194376824483260618621557668722749517809026865704527002646377521223637605337261589527629709456529566239626330612792780266435707751980914017393147324987262278023482986326983362654961855463105718044473928999288069887462054211793354554867381891523690037859344926611303048756539062276267616744961021349799828448733335815873965218513529719951764690989530161158653781074542717799913726429741700058604489708445124223543711436521924405085469813453926901955940098190901937574627857897814503322435594116490766206677113001717820992564212514492529840883557739686436942489740290912132585571950276693655539709121358886034211516825453565336072438085838121596495841537557184192882414655901978686158756153150234202023719924238879669944129583689911237800942579466321744447545911939215149742985207768379270131765033886183006765731998302720510608616044150921571439957401150874698325051489624092427566371987104298392217144007578127378115850318251839078919831250414995266167906938403682194130443515753011357292459907723947735371941308315793507696694530062004745316976913900843613896865210150799316835479008180865641423749635080702243764178722496030970545277047926098598328369300948477218326639102148682745918013798701169353235845263008892622434813960619244915919323485596905850247631686630963527035697020208892712361154650815824659310809881475695400680954829703146647290728524090658399833629857067854841467777633388584390987272385106540543573141536258532207324171909466577491199028881645069735988608911616527398757751352979782617906961839403343379479348206541824047160558921999517980739129803372702099036723081077034479406021668280858985831708155533989264831204560761328603473986497036260561818885865993744612972116593680481522926825462711192525235830787809227032142565897095714652653154191208267809938837029838697180428420629349385968038887315809048352636551448350120174304498385992635534523418063256312755475216832468071872915507109321393513618392937578736062632623526234696020237973845758709591291398409298781022066352395212833113062080174243040828780071123152428331159087932108488368708047363755071227407740121087300533250109140583584172923817439070026567267758862828892885173447934181806645393894071473582661236403682857267595951452966956488258281855039746478707235905384991785237943316561136430410213403645829994291632242832376990034514036432399561741641306437127989635291808153379092941652042852232483654676132142047737261015816211926392988320011780132180222257551702390007394286989196829782904515946741337811420664909399044786521038151678933287092961013044228485253999550847752420427331314311540069565659198904873041894491401897471753812355128171467491535188253611829563860536086812874847283197622450654641912258916630294035348426052231417572431254118460273072950297581047370692582029577191144741617451611567752595899522913061063089025689109614046087936279313667227865451447142902454856123438143754730497089024973667963662555289746588412162652992052974499939014422329651247325625088098387046232619066536263157275719560469982184590886873495514827974342992977042859545331727751574633615207714623152954705706390422937536731535399403462941567549592888496551986257885824678695785709444435850566352245305901408345125684270882451531359092698684070235662082762060009790654466778205193138575048980825009479032114949126394001100094735467465913214037563364120175670267576338458761335472788991076943779698222022014310241688209109805213699555398447886510358257065588003260058227815598035086539902329882550265238339288483641993884585144898099322655424695923120226106998017748198032287020327219021099082185257723011717268765659559922288849820712501824427783181838584812394420748260274528840604875880618650100396183938837054618228246856786891556848117966020793225906927378474951395260984587548175903213937938409539835315664062267493696689133961450521322817952705613516034509212363190652047952372054542320928169024827510207293915717987130902979460590368716814331164437511126681096478091353417870601878042789112294780692443093271905562410814737759965541147799029651596371594563210262570392787987748606819440649594726816469858276201709380876303116155209175615719768673573736269806845554796232915046139101798043914883131711462211784317926331378647747793320557778763897374406441563086751217244030308795456129965466772875771651927961994932131615982074220484197005056000080014202898111890894085538384733853250831860944551080553078253226622478322472969557863514840232547332021903863481551266473796222059528520873272156673272777977681695622506557968879873097050427349470486281990725921122094817836321264228436965261736491115901504307234369840967911548515232623137593601818009956445439163516129163055468744846019698956491011340295463226232626156833405011381173680231627128947505996233401025634909562740641113374918091006224043588183907076968230939491167325687294555400527610613158318188959412679028929924316597553924048577080799789648059313738816333270673290901680927737145969858117016979471457620404232051906102874429325795051184955305309237023877830766300475178838320646686148865548344477147248681371003345350140780581880866585906709162763289772800281477849107363685397855145241408829239066476390561990098206501330793187837288546623848192879859086697906204308617808959254559673546351194377125238793223720842969889735699067189661147637977855737178377488680237315299220672878010022058580510443072008428544498604881321123219620179252898223800998980643060913259634967490834441807550478135096775240095805641877476046588367584282522839363445781361920201145095689749985770697645322573469006049293052303173776967119129809423356776616654924486418843825679624041644343956317490277418032986361188699102179342214453991994519587114961345946239989797935026234656253877190015066994233559169390774040409672400805333354197757539161246355359673890527455637164965651335764111042401686119493454899595703464241830623942073537746951880158613204356285081449824066562409992823273838402891762186056185800277383940138339089836576892316039260673473742906009965499515665254978390885963862018321946235231384297619945918989104411424634289727698388458331978284058588501469011523593387054895446547765039082016683617635063596738597033810441670398624086916906625141899985622439350444956158505126720066939543514811217150879322053456488537833603597751382264786241431457020210822258638354359854066350673721720998487382320185261978749303128119646120467513160134119058861084588703157965738293734879970592360534312078878481403666895826999450907080160671121699137246195797510506647769827549991187930403054741006416552659441860919074736098804652614009615667538371397171954325691742504019202985777235061265079402123197266953480678795257905971610861697344784942556899743877511103596387849760393056922787964259129003271188805695502549579636583622138515322030613082743401056302196771000841819794426580018074954114736853842407645246995499781665746527415579592338341460316682363584148660000771463878493093886585908176523804606222296593886654724334308358319520265775691585261726507874634795991489798944417668244299832264983971879353204429520705551305886651599730855487346531896643669212784232446861479965349965394433092308473037758541942823876610895541934152201594956766608205377032547559521454808660637686021510117429255038054743965102047563192682990235331807018780232326078787420735075776316048493899710021207502201391146525651591618999274752529290699423271734868779406141969908711222001419878628936374334503600480424483152767450775758529768329642152348476620634947716022023711723879591475497517905709046516966774160635574712729919647820027502384697510299642956663305274598503197862591664038874178514992595963275498561319923768966318076856056234810847444515037164168112896791401501714262800365228112078824725519942626852822664553189694502056428286561564220304226657841699277952097219301390995620777072958052860894322364944023532476644185918182420971789269985119864159597958085923516374022166433106911300944856874590738693774404935986691097962537658961082077159415666347654793663974906395483487035982468046581014308273557397043082461513626380678351685746121275670247129264543699398273181887566476261578289713751684330649320362731597334410051247165765028985071502767689631641367058636268302597044692386052106417394334921282711185743986575512279493507259209429878794792960955934605115522442424436100521268512339842041261292083693153910345370921054495614699596438661042326364057104942731251402814936750331388359514618829292710559127862374642002362560421969169284097907038610059624505377061660057815584141664859919733659362117544889636609310064979300552374486064746507946429929114856214915975540697943454477456984249593607856867584830636447453218363778487894426672498090790775357277476571099749149479623065013753348977726865978293457282091462176275961305249559831494942572917442143608251258651678253347556626599990847500238392998481171319702950428077604173093087196395394005020655468520119849736419278228223281385496201948149397983171899713365772704024046573891603478522150076368713786294258565290185441727143069912073720308058232110751721846709634552386493850081807544215530726672298436520698747556982278024324336547793232607954339607779372660425370641355197822435352055208509639400443617665757287190399499778810468010501007349151353461672913077139403474294223528874211354309608566314250805467926330475390381388245222469677441514105477721311196196648126415975316599999762602298141265023205710711705337461139661318115866305966722845212351755515995952572696537293836908470854527072063875866416764353037313374818470111914028006977753591312470835563949149902376624486090254712233780659637107773094000500399405110164048093772983379858617444379262156183294771808638334925842293373829130612811298095893429205166642746501684944970986098688020710563499568548853888186704385393162332250897844213479272467421109253110890746029225367022684914482070313961080758905065705591564523328888718211314570470751724053451365243717187574089567270710253591062177277852731686901759001786160935293287191861580947488484942737883526738755393790915410219685584675293924633492600013624288107664026660023310691502657457199438398051057728618255133185442722729909740086323143933297434230677591616086155044748837561073214612815875248622855918303448863189388559329320951337658850002251223440100728094234020018629625729493392139519762125344140948569472212563633016969040354702499612080890706957027146858613449262638830536710750487259153897590955022166619148358844637194434256519627798952075403859713275756576243856743804053670714931210505641617346160469590905449668953908244116785101846074571818316678891708387103926551420786424880773146329996361343647253998673371501850771883915782771800543693734732582363487748351663260221106422470333824513707761568039493223146823679541316412352241767387938380598365206969886519760972291779439712073956230355263649398768887452231414105766930051472151724880853705048171026119943794792636978236785873749822755316355455007487044857243823280890491939191896849606661689018282640871430458553077402524194480394654187983236264591900276645207929562223633492989070946522354770575683345983950822251025948758618711591475624937594826701550840918580790469638729214258047556531370274520580776878717777317280701325145407486192208769134189768972170856379009157866852161450717938195056843493750122552413524972353579368824525422814372584476517238930669181566866652772134165874994765601768152244959869791053973044698037603059489498691044633096768234244699290275766672331295845510578824346058043213009466833045138326140758481165299206955186327284153935090666551765924713625165582259676598997612260245252630028275199010380202374313219819511596626125086845256970715236841749878799349649400678374561417800578889480684152729319577719275976060406752440577737030613883270963817940990268867322569118920421591814138855422879694069065870159859964455306715187125409662854669408940247170639571567705455387046287466773091826454868317620208053717600319548096159864343235585393116528722690352421625899109373772323228236549253324182438556326705628197897290202798332921838620001943614898312301778966668125961441556264086903198937774099988789232971280931527937275941776052212679530400728221268484548695702175745720169371646531686548174521554291888513066369256719288195407181113784755022756858363356438410224696202948582430873450418531539664841617538709062687321890337644391600646805975446485318319877226118715938349384065239380275165138496483075063426726839683491410964952750063262499495278939369856229678618767326287471060210021534085192154780590964632189898212942769921615338770554054977961811658749189937599643126098026407807199355310702768618227528967410287942133387467775138833547074687353555718431120623448080172881361745378719735127408875363579080118483319518222457934614953383489398274851481361421755907960634811367413936830972690749693396449823312049360437625791046330487197276269065311061517256204266913222044352233440822319253982883475518484579976202297102752094196889822131252157047804943634378564944439582994081126249178321520778111040025957852407007516059404968517408279192381135313995843568623348290670677241002064735267671888027906694749669729782893643936718806783032146962501567954058142274579796134338792069713766268823461729007461902882825516750434263595415943656806472175216055731569824063776680239948373331370438338703821063280498116381859858219198015944382339917629334700967530659979617236303995008169784089880750330593923974374491921451928367181839526068638105937877368575208773993664817087128731096836138577076379590610013445017396461569833366292079882176916219587837157776075826541460287468859692441893157120976173174964136362218502454588161616787795435807915734090823902276599861316712506816803204647864198358320910404047658539664091200442734587969600778688685293098192920511352147069294825984331733875436312163826209856701528779164471866170775624513116824310856413074937904737053301182908887144752962882072414954723157112405350618096072432786606959938427191878733776773211880421623199053201074063833916852535806937855620641690067118848911099574242821615360608274873705085236802085410494123897685431133658943610728526938916003478601867915722178720183166087064799492195581668526607455933580368798519645391285630608761258966081476084096405424511868971922320858104638036039495984230064252647210499433219339823824329105048427859030856617227741348655764580980185355384442669234252867183124298826413706039580627348407616245832530559791198155187587071107787694958549259433926308459224894982813439837757375294319528961819486531307950073371950539617677996221424776791748955962694333818040305026152405717594196430592257004326032822664688414888494062094787322754678549538861110288727376075847371750419494636115256555401750051377884303558469723899453192707960146115620776390681411125123768195533620400017871101793281233895724616243597701281437696526941339574464738120611602787463849454075938267839397408631364185532747251477271892279606981431894472029792354389626436562888074030667734733162699796792672674490667790952973137175202121950523362196442532196005538892810989299478893379306766386592306160549581296173136886662939858001245288594231938146179202529284071716631698634182745313375570839815703834935425765929526421315525428419072594911345965674212600580315211002333889546335553334454184412115451056748409461898203146795966500371089234052148231262900780559242295272212524962781264860657354001026062874863485502465622738827010695421185779053500726645735174694880270568679076124793821502819227583366974185547005500165715033059810885993065011664681220092198829120351051568382322171776276431618358269271321641164598866327970212034850485569521062220001667675578442593960575085235495291208802106688277688690839024101876527506413590889891125468457327113699361131954832446757850116709402026822288147951685308531289017208194889982785746814060209584089051549149831058427692966314286045704791786175988306000426421999907968268509576227099763722221315071432178974038924010523493814528748124238237320662867223356617556798763273710571324262305940002736059347181304118551114921849437419147073835954181066839917767392037720489208232667883131321390574163024471960458016790237133563747508174896363772091713715994190753712380173385879554784539470202330376019283805386988038791673196080103923547913546317124601004268214734395049151779944149599954827787100882838596029886639175688077194759794488606459252294429928251204741001143822342300380999844845925636370530986927422549771743641983820707811333325252212938084513720268533080872475174897021215577057812992620685184278284150697569486398776588222967625664386053661468808840961151382668749098517105779674957376225600203758108247213551932615789589535146432141769739437398820949561671646686733908252302179599041372257982365061335383898028215977695821856126135752041337768497694727871692713009877253656243696636506518570991917154272248653966175424891730750890045498285219036289413127366454145423318534148308636501243564431842129051950154975525243169276707427851321531388246585357556687816214887066193453333413955839935893131931704812668971638845977405919674086546400954163834937859904107872380367703705511364582569205273446386904535517568455823497030128759908294797913886034758185198699889998609126540247417567876833662358236838549238729948600511579805556610408630640705088687600449021376366855205839244427564842490479375404784034627977539030193891771354695116075287212168638503332060910804870836917444110528722959006335577022900813669642553123854326431876472673805216715433349296729734977675388479039793004502535210697560141220532673746340435869063351414735044409709536312433888292369562624242903822550727105170168314873375615466873297802665021885162644964711698808326493700447258653543320549224171421556623771403350931925275795549403314487155910229684038499037094959463357644600057712038280672999282898089646480693548632386754079792567108276608331676573557600418092852292765360715048033060648331775568848578556051271511008441415940937383506103969623595649766089435484249986676317798255565514081066161979786958160306252761585627493438937726426012125503189326726338466261976084599015114774816047747210515713170564431744133358704311569899372416990421354071777168967145030210001489487736894171993125104143298623038052402367242346717311445473194547576615051788843493916959400095422112284659186691993609814928831811318883426006727475222070458030346325090245046515164190348665103518358834923903329427450714622784704051976486150419398186974992117194444726363281096363203010135329084585452066819180648472650723096545116595000844536762005842674339341541025736271814399990347549393452055099386789187334262434305191830648661468233626923047601710836678262649569277054669624995896432418064986910886440614082710028774038516517868799626435138652212442561327834182681072681392394350323374495345619976588512047550384457765972169365872403935690075258642387249997222685717160078175921942629423669710166090827596395442484152629732602320015333479126105230693157200444824495012164098843010487202597479019518226915237991961416985830459878876242759118449187154816437160978755218017847133059311208527592420184913034688939672504625928400570159084407823331473686266376626525413332313912113515602513563263678750923873846531625087723166074836290297410502245066293320398262887184844149801053489942468409785656278476830124673486621113074079555460593511310800252402184492155623021604524469951303343439569753134634602641571487154462250670278117248435939355776375037504271126340090732963262834484477695925814585198318018158427671012945367519615084138094765837723692274129347992020632314381205827366163193391796559334920760384565779646945292859309634821799445077223260965066917388409268937603102248616964689025452971574095184486845909439449235495515483578643285280733964096778290098094078373017491349100012653386418405901497805070435236315279791577899719120763193967087028686714041204167703330572035067375758924013314108489685679805417382590930917577329433758367379473934212516885130295685602236101463817896629979937265305331348233622009961021674506240169191398770225730456782773170377899519884154900117870839004029737091305078391257519311936280750384536555624121375719832196951616786014912852020678581527029326489799130929629072840088974694839547166927000771897812001353882521599453659596564930174332732939947363884093357703024725029657466257309731194288837463820783097487643409700340634538662829420409355222286962895137440466464289046350455914386992314421530600600236668846889781369276146235058673863662526432515536583310946861384331928390472296076163600850443786773600977408792606168902546459367531354781217644899131718076492722450704008475655519624568616149652210126144461743698540798161139997260273401736862847375134559384621822083367806267756212785297726447739096607318860260747542684950534720669917928729657312150744393346048845447442861850424267370465286702336805299890479337393721223100042097945667697232818629492981142834160928520821834676769539684728360579609372234290046004452625110409162779799023055178297460309120210413766714298902887071140441728258580500754590736180888538725174642586314282806947306869683660160211595440318671860335279639466424227704322485362676370012348928854457777052927287835568293175189356341619752953222789359033644698555173857632648481539448526740940757772675272941969179681432568247530409355222782068904011875526227045481168675681658731047779158448633986498568728635969616709636953483917384272301672811128044430528299871887957077311837908161343506292017567546833269506835997671585738700259900508879412896208930593473323840332524677205457521940054517851051028453100135102971234877014239155011675570030731009707871922307590342361423085383970174392635708471276880915559198402896479812144921588053426282276066330270130887492968425612793752320227762834068802951363156664917030430162464292272382734326508951571008363441197716417146263592817263725413216449183753193469323480352577626065595456605490191582698257371783702670045492071064775753059270346659861172215987258980350708357728973558878835196081105480999307064635973604833108142776708388767509807633112337402758611270108978993477164460461575149577482789164493002779546339910167102982957687754330286447356527845634926410861047281859677172267311384869466334785833441347728714273479340889477569768695977259033299352474610528116916285354074017904411471787913180005481946385249453191346828393581763150160015706529567332734087847479224357821125096846043089939181211968252396006269197002947742892214541501743143814536564623187924775712888890653188626215154591755668789048253002329680588813673445285499507483374830975964558458126641908536801832835470132336613688595215302809190078609511535291264811449920558826800006265644474667183470270566939292543220885957473301624417002489213366740002164897615521443675120087270908952173237175072207718392295331813674633540669013231992723835595789349134437310258807938619909401125547365866791353528097736642188791521072231061702391579842641677668285138185100446283997391266584231194539798715092700588871630342439945267051196601806607229083166163901519153441242267187497345523721866882620782116971341377657566527895642944413582111249319750752360660799097538469478035385803104647853872397649167469943865110557456348075873850732564710961069108783415778162850972450019644003913324519286871843000631642492408898698258304673489589534147052304786028548912384020456423220702423125793049335823912443054514258235147289766640674383893458107754504376668649771255043582762278328531024704288749484137834347250186941318719562528295561353297257913707723899683902165392162657662707297414022871240792593551868877402103135678150479402490726261275003201928623836212783056961163827293299005209373442643470564575774921692167900802876206386495960382481656997989919001083052792760672169210877269746028671639028421080114707012056311156038193877471615960631356442419789143849131654309445038603786553631564257675286588623849185302392781287020486775570521487105074207812166760157856248481471447412756524055552642348618966480761840184367231430769488530753418369627663793741876635007578551888493885106305692193135959577239501205542411985164139345840663411987057782966773297514934273483846674971577107731392728106765561096937686640640890857905983573720559075783057551310445197689027864121532142535025159675483163722670193758323561591292568668488289917840870982753325990870813927065731586227119445490869416188968700900008133025212423873712598461294129291525961290916929200630717608648772661187710541199152290016288102376299633133744347944675438235204489258033745864658588079921215724808845981042260409163265948117014797072193421358253960927846048966841386510345174454115791402717941168557949766306127411277162655741011609225569221651896225640607175480194810948762378831092371385416972442477802409882137646197745752508178405024577100578202697221754202540285726423529660095973334726505685807016671621007117551573913940247375385360987049990749641888163247656814064074963619254578961413855113935222435703023864066609912680318783264904001798215529941584798166082418468425152156030034689798654479403333484505630707892380560618632803515322644655708839979253915736362069392256286436591080504154771071735158045023195525172068776195924998319258898540046231374821759207212074296302931884798820718354448373395534424959290087186917512690792093946028381265148147643792559319524059408321737720682411448461601696176649386222119141121851035291669049905192902048948110837260278292109241979629225073493673895786007953600361946256809004813367789478973163907610039828881602269008402084121471375904563407345603223022620452089032911522787574718633334942375685529295540392485168203239504498497914071913714028395349891278837944887826972605597074965201106596781432967603916490374105543619650254406577030903254544166068893905243912713688658593582346296148696843984400037598857051409747904015115466658054211605491340077873914583244271953591798811931090012470733446071616075093652655865226459513038824774594347215996366611138020187916484841005261740835553549362012154563607027680317061208501377937194065456990158498125026633891363178666226567415047259749222051926557990147208739738498134988044889735951953908329252555849689155161612458622601815726412062901116443537070426720005470885841036234502196513802068562182932823334597803011372180029813334664735137854872665118535900678554990329222796239147539943460415306145512791913956403134824100071096438775750999562096223123173817657149086451697854957850325856558298393389266429714135893597199279438510593036904192462404041784234214142991513550300384816759467859706047721141690296201976891084384982773718016683790769126323729101225557814073578445720660216750118498982776440845532471025929115827127893643377768162046239362358089655139052315875317655318653679356141122368244772187359658519804596833256356115816821134344846571062888532068899547644649114313507095360556630593652092197584376902658011292002063861331042320283526837459694512500808226306200970727221855828899374849590540518550154941377012774597898076793368026931802462963295032141195565119828154001135584780291917468723539764894361001921957081782365144073134785138974479783102428121435676174040691286566448072582649622129641462352724636141720866238483780434017069118227279157541814097433862245149335436753308443828212427799201017154912923414747812502544205554106828878417251406175129710270929267667258627907751933624216426541854606571754113657940361622578929477507246482779812295893129392048167751570745014492615825145260233284665035639939495604656599336508645604600370607623774767866786386609775964404516376981640532664891689283235738498036695528753807803789545052719115948202617586122154381300407855013504511548259646293281061190560950952599570555888895773119389172517032229837353327827514879056301909352406483599054831886446533927409240891786249956876892864315608639305113078282610242004060085799701538146431373904832290740543118234775184731522169870931619718142227814506855949315831514378797017573607545833400548710409992209863258095384905744577813369310243418750673399131638559924747271523657602773504673821015933839305559562887782859421837625416100775845525368826821241989483949723283332487119719626993595233568927052527156083859032537949489790346356505263975759041883316270885949333882214977002104865363336292827474234707354631518362403552845996321111101980071165798177276217424374637775557432474555626412144723567071045538746554135453269577134815721401832200239623787442932093447736111178676919506580460734938203309648849027331879237490591017294746489723432195900802814803678741993384867173930669337894584059769146842915790971963114367458327194568316088610074223373524203179442856812928723590578008971090033144902497260316279700761839656768044359492370664575546002204606551365498004068068846557982162471710339489725363916290742214429753854156639219351560488296518927773876790605834973990321335509160071601309682048218178339237729304894655178211067771937201637350822886880568162245457007171541947661054065478718453001440566495860892577914504809127223281704887396971917582659419567911988719221856546812030586755263524127298056507156063480711462180437422030558309899516937078521071400869963280467922924908172245103937225120119511739145160264911294950536245541366819602894915107667838319362092243546012571023719730082233336738201092044895386874924688787614374824424962407297153514543552119910374186933633368489107690487802272645869185195943594142641202417544964408754740430220829452645302834531333910109536199828428780743724607549118823403467350856622624544704483830549123765637345397446343141276971691470952343969947831813424013618658371630829243608800241358575511189926843962203035510411716596130290152762072998483674250967461549551565083020727097735360222801117702008827646941830180203089787104802763222610864540835725130677590796089397651809708021734150545250117445603562580233153046467795284643530754454604570787021529081054099047566151200365968495398941612020433866631306877727900865734377965359042962543176949508655210962897841927295441341663483365859362935816530257177113550294628405789308200793675071751597693519048845203069165867649822542886708218619087629547947022802480086253236492170713121120082216956404183709170736491918110029071184518524368769306541963727833073711466284995100048614256400040908773753027222065471762662427267106698165574691776132010123713427793307021123423286936570251759256076714258293595472644521221445633764107809254739890151781286491445956896164112295357506547395382766160936613181057098817719098940869807386851955972932873000663578454059414657929614437461514058637371478725216762679562893231084764221160490019883365643572949695970474776361438626476545792785112173742447272950077421483134251557957585203001516003129256513640084125885422779185995784382579021821605798661393242358701096775489552496987403064875801099399212935657121895276454304187740130482101151647108064368062048536421072362687429384231922273564848182996238203052883618686555027486405586193842838692850725032852557928644621091611313062818043790476102357625430474407846369630134190778153255424645762901638539708397201219033716313637341019066575759248558749612208034186302147390782357631672049920606038173408544151467000528584267473543050090119662278468633386487988564919867783951374137673647619299913791370504974631756878429191701684857952515818667267207684846618177059561582575083184878353178097871471711317909305293427308758991149593714388944313183751017321833364139751168465448579335600973877216668769142011447402210652803446501517065700952479495170003410672090862020374791088708302580245253254765438738362733065810867086299693608470019637993679619464359432508382013411396595216344546466082899355530615582367797579458315656282905818190786206503574303705019754900030934416576799093648813321321296453603983771491276231180568945124948934311867524001883384258158082231214320285812819997907096993091960518015270319974018747198805668907095206560462831069436005300301175439352238967452606333894183991094410691637886032276754961211928785606883663279012518968960472865838309730363885636385744786964282461553004785743196226293789950041023224877262735099922665373074913245513549551628567913606775038793084790369175937379447091509684144281700646766663353608070047833993897184084717997543329180062598617357634629942730533450501740563174782450615985501871842248856685173910741201357172643682469662074550042568068082578866413449091731677030214875749635614780010905735286037971103074513561839898167508616461655498455446604677698805167645861639124245229626084462737823252942113887154835574344672614390181096138620161005593442514676364189210732814603619133925619850346501991605174941226409148342248472507547520735329273216459325443177909555423874758690853466848388223173571592663638122296898954182199354245146802562607520363671427971147266057804668117999998300735982918275094045741285563687669212896914668101552116436102491516824611419833296048392504282838601877359452385443327441018621736474083639572783017219306414483181985251026479268284917158916324449798080762623182038603763047626185588297055951853044252641876421377501291397504632649877351770256534107349113668340184415909906294333894545487239263972094392767627713607046628052415490661231040650540375166920403732134196975837258611337147857651176825910222093440336342265080405156938687029712156718329396132452571774999702541574148984680462999759703450542990311622096434622315914517934289012917680304067836764008203277602933984903842264693933119204560138062587411001567133796922766470674539787593133446297697070658733119299868224053717637277383721831839204728714196141538211512653848977377366805113316850628573462705837160399366668862981560214889301267107103816830115401178353572090622223759986141397687487583471097168807438052569811669884637331055878843299310479221508807389805805195859737137737408559857981955989411682537597525920087751560807580332133295554709086779197127203905082169222220466030034490429611320879338884179606232325659997856108594525920042554294693325183140605904779181913763491849734543803281741954987802733286905555331801462999311144443743214492294590750980913905967939993165848627916124573554318808387047764669090120612374021711803057720724350836443358743469958151038912486319166504139218040450882007696429272749461331656809242416905355777812726326498908902206452399282017818570745960430489426943180011548866056668607350338353378619629510501450283622233157358943033685603787041949752642040001290078686562753616950484794276652973990698974674864296030291682152751544112558257870803454927109679578100984306401020118014063520306611690157083832184174476852836785270888261299884617470000806901940946381759056617232534732470648460615709265233862152987514990172941420838837583072597337590323151615410557720184534123572495408102983156924560178983731164306386429405450594742514215260245504682409880948187822158929335103104442714927247933806549178720423110495368806746552378944443013776756638950760939321580529640626194983588853956118848964747033768181604492678071984276193191901156391609995527016646129578899695069674182126280999113279428993472223296183511435941851553313649286100454317160900709280749456348354140152779414189696515921735228729595956816995602061955601186292948767999432733050347386987309614837716844344555696992729149873070263370437817499709857166766007656657277799489716482577944585449949001931313936165740788343714096129698429740020124431987307245488605492903900288292302521607999705060995349232523624152594831530955190705878939035704467363871464223457768386028936329244849035651931468293759646650915702744840057465388989147337573240177378336835480649267772416619819944751092443275392295805213697366029198285532054006590509940916693972289110177552588916787822294254426937480662118596765622858742500145050129613737401126311625729510902204521861391208040124451667469682143783472670157611921223953428012800438398263178441441996484751206908656601334738776699370550238523054325038658805241929663327009037781898014651639108802969165472517803873401576250717381905613411329984229564667575071195746867627368814856611120679371183239066780194430244625203299269075591323872016711231886101772247584782227910969317139116662322182644951263636304889535717244086267495794719384064285675132179966116892698279297500480618265411376144499317712828080015737530833403362346376122400980144190931020526162442728208107815368871766779978079854012055628041481486813371451667527390432426616113220608389984818351285876813175558721600990475629502896526186072985965977040653415104294711501569250545670172023923938444907206606365884720692527494756427441432612447573490975705577653929238154819572227296402958970287840456283137774815714134375418349810533375637466965527587534894541237371497501247821671006687127174878432465121462763100045781454684887725170649971611759930359636635926507801437454664466174946440228754633495379252520247541005062000063416191173399294284235559272704006157848431484705798772115137898243787873537159877623591946971978718183631064144775770743308319757697221080459404093991920252915725703004917707092503528346023959678248961326496992214626464887605885448504673872260028367649153253572746877397251664776211075453686813362730490826578193992176166114940229740406375479557896448503985277207336366827799837144955532371429491800534470401998095818064253955889253409332033517604044517787543007467791106420382881055530638946485661261670960273414874020788585157200945827437345737801089901435116236836915209820516198271888351661472353637553907862503600699570476078880970375597246335148651742087635450744877653782895139228441229483573296514059018411166417418617577739740420374407264332997001743833002804252037376706704570003215897049300072314148091192374727090350343030699330463796919121984155342688247752925136400645927816830983492953411455433225744180937254697172300540808601840148421972969955811457407832278794757562346525602248648338310818736651021713622491373699730265663150635318187581490561561780292869796793836108596433891824879775302257416292366325875643982097360564526981274845661095782288715605584913388168377357050613641398157399508112144150993001896129994462857647618643814162708050317887740867482811906733794885987326889277839464352023924055196779955823535999804466187559660842413724627259823958398276148501175912281548611931457230067036295455721280908137470409376279584438012563518746093382966210492212095212307005759777965470471020316141779418389821100352651853300068405239686697654396395316475502090836037611773995750870277193817953888228260416767604378616316207920847223158478772764250974860748026380632909592514457336140135457577998445788247706817665923701713689930556396880560186364012897211596039525408444362259955591636846081108968177566067017634065748546877765022838542524639155410852489940458285758474837657300607974443219153686970837639708915861998522588109574031728771906944088664972641599895244700106526630085934443710281034246225763444920680022188184946273255856981650027443967238307132668692001549868875702877200783767907320403871442385731163643038215637167419694228616641944849587883534856626466028426350548113509341064361180996099579584938253141181617764512279071578153279343052608984469424572890332722471637532290321301654412476612805299796407194958431178739025004209974949898076186317081762730458308661913892443207886976817884627431796915265657233215407672348990387762836398036903286068795607246054753416005655156917813594028234712377344541505784737006682258928720194288333566618636665816986688540031120849984626934958251225789917702498086275490797285627034732646634792411269952331048312497873435182717719951204337336973386701114466273072978464675271984859271176014495186862294752226062652697690177568164796785034217581508447692849796007826783225221006804967757626324987641676494884817822162473858535302277519132763647548503553149967215831237106153982732016204609747018183077575700053920196227216603036858645325412305854019612388860785425084194892011846433267527925733526316017896671939604733886471208128554429607512105136776633412794635049494408201861032307754440534517363205155886229006665254940120234860572182586181949888171467583575197274477283550838972715039619764399601446153219237892924991127220242166329763181961614762119711890647329777797550560764690641118460704771719293799531833291427378594292642844552546111421847160412277012092103426885361374089356510390996922029891098095048726444598189001147896655917106608701657024911175977078016827495173680353531045087835239310400670382785913632608321587302788461288600292943982134082182535628442486125455575999926694792300095100884263103490183987437013295703042496391040794616481494912041032674986761824034421731879831229156001508595498645746763020554919990047949669315887839490798908070990407914882444578554503987254836134164524623109131412129332044275289686504035113969096922115992580570918532276490918980886610364969477616433427565270612201173318325999207491627941820301369545117525894727382515439085195767731623539557020087020396321486841153217457613301515534297877068874691211391068115596984857968092503449425847461486935947986176700167691857216362230888963198610696290036952330405394674630712153190186985055012049994631120473445928714166697818914265339747638103280162102121163528336256927195048028297724459555381784361413853754602889989352315355111359065025971964250035549913312855551668148822820743651594209458604105246640161320198958596217326160564915515999041062565120889573345640005828981486154581631065386245419898627037010407627480426223341074548020657447488593486896755954132496939786386082110715292082534808453120568840817833813766664330523312680516433424147910235237025080744473769548623603482130145573616954703658591847953954292884423329164836099620778344506971184346911420287507452409976244045071947470505861793248241277292956702219710713820207141888771849878375684800342966359316977334045406539829268644533732285459323862500410433039655792249690219070458670920148480017548538668129681350905343642995903826910349084677204983815211929885886068137551114791656440176692382330316941735842366458082112382548196137535032668082616165870688350641719350130010845996663881062571460526119949308087406207885628730125515562847382388223923366521123558029538380312808643786431735640441751398733937291769317197406884001177828161573136832685791106524221631025052867092101091115093281804922386243752400309076384721720291189070663268566947821464642052294570129198529348101798706558781244148027511525669717633642782320753669113219658613057899892312493642721340854310027442871547485440788386292492403277392253558349507034444771487524292114990938836569962014717035805710725840184116024703009176255056220215306684697795539878770458239951088367391069192301810223217788699925223323215543188778176846794193794440753529387273792366217663315738427705859903438303266846860766085575450674554006846648000209189953545931498519350651414860601716236832194478566326347060616615225602311745787062849938498788767847167072085793700854224301706182409442513120155599513927045631508183875900416940397515473558409083266207237436060436330828059997285377536529123924048654328510291567048088536609024771264950275885134545581671966510979365993798748622895319263288497224027202785250827999485584167048669305172989417135346176250619784538812527428421673275293853849784840754111254562984029213557422525788171147238894541353517351410884007398227545563915209710982311312329303263417055253145959339547994533103976735190459635852494588773300037397411536976314670152037127419066034266913100273562325411725520442396141471305248950744712944202275898256323275816500671728453909936244429186227947615912861794972801783103939320098264867959892485633149408758671668140306458299788234199592694321674683259699255641560884552975291300537766356787712018963721842240560208508863549982805728234160733170892718965928754580788581074052204603654797191915031404567604443024374666649941962231783206250361761800506704609779515611962652732501024668864150725799346105395710096982963695736028482793083474367678370614633260947941656768689383694199821565353578583697038571805977297841825213386736066118344310616373502121827637733981629753337331013299576663493692795622542617322326461048621833255085649323972370700375418297076329061106739852793856010798114922647051222967422318843248182686911746169312279247179779544296821655653534144599079349154609592213794952036935971626562380476774982879553225333448418700932181983577327638884728427278101758949465002294042126528410709696701900504442172402742587656251792225808107998805031217123191484599343611173934846591759543176748921102243398757737231245044586536110533693598564084297889255004119547636861670294561754218630576658957868241352922453339589058467147302732513777201374765384295428816008297456617426352305366084367816959396520775953014578894016335851419412772418365533372949333012707163799126952881503153612938484973021825361829281961079359830087558586885024009463730669298588559847686727060247795258513207191101682909208675027084444885523254303270394305418615712948700824684250640501745482238561109790901738794105389549991767322249555310767670555482977328179961919637011982358726912340464247488523245545940437076591293968315374793228853813050599720230014969653414289218201671748019715225687501604652219113209367541069634786336744905352623253591737810043008851860418048691852016483545732388823348801012780907745272828624273991048020191240978024271226155558741125550389666474354954191385875061715371007270723245468114321118232216292092071162192093551513249395213970227716125428763685203917273428967892610899092048983711986970837344922838883842809949059486971772710427423777101357377049555289995800574951210145277707748555731345842264034710387174298227945960598873793071000461408326539594568592520005927969836689733705681549674742835119879246316704915573259177309387651185933619719742863746613749526895093085908715684762145128605745000616437523208969886353816472412753161547872715525832730869961303478726976847388439164354668776656448600446388319773896151802002980774615526243689964525178686861512067798823969301596189422648541224377567547181170388384680872021559415317690368654117408211692084632683230451565117710719464608658355373966140432121889464152014934296126742170971282062490469074164386546896594236686129151274511451235630472329718076332628049007783206728512715041405301284554838791098813693542071522872762323236015868824399501074915530601208658333033508630193060465796712221421600944942833980557506005949867016637069808930917913874101731750326487227364361748688519189056117307166205181007708660882935744103235416443635947877290644729090987511055782046237209843071354747023851007590483035890910944315450323555834331970777056716379398527502038060032072017195553929346273566600619353122479393953282403825333713194485191176102000026269435577559230622898231513903543896680994965973266683878869539017305751984939568728431041791481457024176743237061585905111825454322431747913985994532313981279821825235954508551936835903299615076350576716727000514292379424950685585925852664246775809680936745910225898058843061562211857628501303567515911006480315800731092672518060055293863843869114663027598187419847363060854256694383743325298833019885566428729591540936109502314637888506359759230696775610858161389081863379987181497324169218688993183068344394826964295102829521115002895696548086077878961712112603657258431235854128033817425777047388782236987314464947525575203593263966668300694089064477906829099243720968724601505786282076242367244544494932584466730976936609705608596838054945625626163255986442425683569295781812780055878412358512657063940901293771828674051554464877087970292887466926142664787723020905830929264432627602049576442153766510283801811545201528033340721995162751521884773321355807936473678118369666986265776872942647050505277913921862473518370722413896969106189421828845656058781094527805290251855148075929396402270032355405610538239213014441256076329001152510135109324691694908239573219256370550333022550023067901147671510487390130214174682477308315921710432470899584166007340712663695954991157184017012359793280261118703485775955481329381944984960500391250535553985898240506537759956267695952092198553885161235288112992209367864924630062613811669001615037227673053281549424992808219269152340848264765388173419992314617283101529397101847776110516483382168965828002225255503327765509384846497623885663938859748760645154389190735740036192181656882801518726786270005279215095448612595269490864624468897474741082893957836578837278704882578403541825571997209075591449335935539713994904514354791111401442543593978440576962664563435288632548602640748540676297945504579845383740333962207931306795630851904196029878378508605963399816611392896880354966914630061956992562391514936000804245911931761410700986694430215356850563823098961965310411244758697921975733826431971209640906941100574326932137381794510251069328281639817782245916806716065630357711348361478286354776755740579976460538944503274864194774707684546821851828336747287993208937522505918151261290357744853637517060066935213306938309248962501993063945482540622838728842357203453566612504472787766243131525694173837292135313716871776910769920281503508107590398399342579746781166616943488077413397456838924751698945965612895957823933911159342454556665109289198648400674930952857603395205076366756652125739495338815203428808336340330156469780268831174433944619049068541964749577126757960741465184677744928885925000060173101704735222978215209144504661936374563854642334156739686573689323184065506019068234479750854617951152954858069337431337213031467801307353919974153017319005227383661364760081419593017103404026059446707107191346152251808743402139745668315189414636530390779605000665388251134793696955172542130680795547520110041200225119759529388887151940037810335174403663607946295067316638569353753714423442354025051980723202886955093762119899138982461099297521727509612836596243089066333894490072643752091591564165980431658572598679642600454797957649805733601302813990234826193021857731606290056112696558192261983176993808437343026517059375309081091378437280734580762566705198738347871528093413456421273020590998283671005418679219120328960242878951414936998938849947780295900180640828735813733425044859097658518019314013041908882407271581819654510748375062028774490431781019548612302830267662245222248366750200370434306004035045886586701849626577996048378895731830518508239703212495417970995711115416051523196116790362025011055457041395386372798308197958281639507295732327381208962619707330601812106228728126428959327433370449087409141334569689331278716581239961249038174541688926048890075819172698346947142189864010040768873777661483130686860880266458427982354350973823849456803287255072167271246263857994069606078745233095210945709880031308537762535071702749930487285003493371333175763806437216420261088697370876842092440972420516534447172879624201203917265642739004665989165064702768143416497415676251465249819043350268176011092275551788030901620401296734615600839165012556664420531725149226771166024549914555029567864236813628912648973049329725522918067585699674585656890615711974401312557771168945757521493751716738382242036806353566843377879563810290141343755194541598442762361841988122773552174752358825946468268938954991932453043356750519700542350707954460554020237847684014451256204170452150310910976073737635492116556387592711006144695642761384206802545266168157410300709715855926077690931275091315407311828071899267288747427761242195692880050466898183801245581288224127685823683215072515326148999346543230504582740081013715799209875929557561022857536617340237361183285379821292884632260050560625287586448271075720734429250105884078685816673631968604524755298174771508729865475721749114412749365961590402527042950531914063817422028184787497019482932388740245287849913487566478300897555166256688544391759091556134996470568304290999467959390300773789814251594045256902606229786162394902248650431456669302969940938437577269141213799319120860686532134536192671836474759268944324721777947822100989203282711446059173017266537553548235588172944468370975045492411044166666898918169557055550142152353476225796633615189356860164519440758145530925770065045231143493912482899259576618607462529575867968225584167880136783243342147973045986937136770615111426707371794522312126188634150087680498193678514902381202625832587910940368763302280030809397746256926118564623092235135307655161202748153704524350803974413941166135688181216199848171393568100593183800531335909597163546803435652209877923516092884508640442326546089974640091249173361618641511160825909983384345567455475746368705311659805331978625372869122593900248000393664490805930809958708009201029770017264008681921382074800746527005975571666335309031941029979737074059490311379262414814433864529390196808065012303898807003077131917829991973984602391559182672521222062926933141707293830006848573845292166161184987570298560965082886367774673430491384573541552051433347608731720881347299869991520140131982457861556189409102780830444354470845788030214642399171099179513637021773675102805429339543804924687276965624598694703896013108905359594500847579766638120171626631180118391184255288963515035422795009958544776037189861925506696726605625969680227154014690452311937919464652234409299863285801182190209924603858473525623335303547851156777642040502379427504825859039436283567385912620120459292417622031349459835336260492728476003083838175125511243257055742576282775874042276284865168452932191048861010645808060285712226278860673888228095215309634746560719817597312880502338534238824310462991535112608053881924268834795339130849935250814468827096264433749583536587926917598372749018810256103737064790112392805692564992644425906384741456135409659348385803635731514895208742598276186884173642862155202890852552733549814239231578951098098302454809328599610304463056007654985154681369717271103167780250132352185765595508421623929269567303377731691738163398772850535501046227399913454209168433183256734147317702370203475403187187719304728460454874205929405196189608085792631290523514223610276181682839025783664380360750878782353930668726094999212027469423251041040362885238426121511611601443207813165827295198451218917004474409826291310399152462970732171533391150348851818090834957666038951044390838209597061911712079613504767951567295700568039736694599667322363580847437571659363350498722288867335708808811751075329467335154596364354145091621861190216866106987164444506112353432452884427057128116711339416772718510701472928508299234279695569275245227149000410756898988459077681370057726140731439951213601587194106628246718637650903223233850261557672813623149003143187806137828958314624196447114034259376027726099600047360412977681498148684154398948595905886724192874187626915668720372604155387432034140258437699941427920884158455689485580137102071931606279162639128776365441015079375175527700360741174551520667902279948157188398214354940465378907173475714945306717164477009738349814593363278597836726319106945260637724009366824872541732989757157526911499711617021022395499754791204475507154111381241838497934393007469531295368873241993549674653983806223435451789335214666166053254779100563882583133785723757395653730939976215204387296971578831884557157768648545085266675904425507670598882102297744265210344073055167885194137038896754810308932787732487209930340880411247095127803903229544106684507990672150288763850231426616593562681942060067687657337377249777570794898358652182849994993136369782257737043782448944291866961635731267703141898263718172484788757058465364049777352797807095189238969868644340117827194930232949992710441049674069308626360035030676282248811392575911705154179524951060936274557356283062949325978404646675714380668623868329040346226803625008211975604735144871326608349862975258990721199514802613654810457434773778047842557490274586223259800627741244465922022885194749250552667250263494523140715919132912977251287126433822129869899206599892690509466639542148577057495570790985653039381707742872804111491180250316488725217815905347256203168095225461097780880411162926575720386121643828042677055129935366780979450401171091094769671315319464571631388435957995915460779236586634928683894203888086995773451819642138661186388655454123062361674182814398752660567094331814114221499157853515077255664460812766024284876384787692508064922226335398261847637648198365661899913823846188980097293320872754313263381310644900781306241270488562876460155959140772378298902354453649175628368088297619198276761489133330808062922746783100250183185363469015359953549243886660157132286544430572924307998400663140449296821735508921857595407090636403754859309182205047094110276824817953794492781462544852801156699541175894596439198580327340352023374279332016566640429908428866838755719201843381653351974792908130812930727392509983829566253244823351264258668970815348476856096373299080906457817301149374092304466508476120038018014211862400850006070707649659802650295480096391166699072922087736074708812129207582365389866358118928054157399033875004266364959757689952727224972701658514587079941026176818801993894187045181692949928501857764313871301936039995959748292107364982487484316160355791846316852368660085923989289634493977915528178878870810593675634787230615937725871953598795927844729501104118446974822215717788027321431171799622501581168719388680561235765060359724853589909094469858841226806005523572648391654219104648397818427188051359684487127977308049495144437123706587876938707104496989622900978037688008533339154284828272442505430572547406963599841439004221221042842735743738536778427994739881532763378599432413606560642314618306800955239664297592759650245845905099210248395869843032632907186708606914594882326298209108747132995204411370254487770518724112005977006843437574188102679721469210888115759507190542024003314011693531807081690782792744994537270460609837216530456473937357202587157581822164777124254819816566711060522019077367616360165271514423516305184218692155760753791464715287166489031573431884130349823755923660649005794358372000361355008729406004532051920822797562539163035326092456344539469436335253742178453850201777854743720265986232553023778371539284855626689341425719504586171574308435621844492438068618933238256018628094886284839384265338680645704246263009448007253490438604700903453887526671902889087629262556564011985759285071654257919635281467598168432911232637288774921237301768530103702017385399365136880954280975363621960056630525381485362383656899589916131256833169820192582777886382206763193670304559613452634407738446434120534467131584413622611442539610053316907255866458127989957679984978344350134705862171586948733157903848358157066025317264455222280749238181826657631616861485073955387492815627138732593170945259342143089074956620278975579132991939743231992665563829335902919168679478719426860595941223362259815346245187499914948021768705164696931055017215645582106422281271848520889908639777223145078556763403155710719711029010588682250731082374692483346026103310620904960552093924251183743933308534275782338349939579685437521356664819864180401072620741248294745568431040165720710389310946828333058243851168813560824381897480983280840659920035648560125553922042501170609802234329746392415572491011310601460155664748208183534732167681283156621362837657326614939636739206547769381077638760136658715631998075152919709925499500701195849245983379911015078851239572245541461680220917435112182181799283132397285004605349465082253361954554119056777893921969316219514650083087907505106437612970520635953865410190057664946283142686419489514591667263159955521221697182970806919443998972245779518084811810739787911782732560016996880778394903537352621688894066977073586455189319575140475653058723141930970047200655340121862005433493766066079705894079637311518113775274661412394510519620899066332443622164708078829739561772384391766474861412350836102303403692026760425421371229367230020884792155848133660358767746282623311956924097147696241186443180130601664391943323013317623442894988591922060362586180687999489863751553794176320334178330325604618958577859249974945690805522328337652293129680735458729972471618059583263772095724184537165529100152493042383606524628110071239305541172780120699579754325945894631601877147935820301179819302251732605700797987646790758793519721388442555370953794356542386868290312283878442254694898706007703928863457509891271164982735141225718376650120878217873268793299299020509957680600096901193468827647364914407908224188525871302930868069709868568327412704146441009065516028923765502454472514313745956783296313011122607065396111663218718139837616024832794329234263224648736573694477738773234020437556875107733552627886339851586106229286809270825353338260627548100840333078350737860426557552276323734685684640526918401138723437052657235530929724652189860259068890182225995524648037284702610561763788337867612458410773219632570932960718101269313678947715209469641386318399190279382528762284917953568512080777414324382096978125672357798730607279333206172925105476448430388650220340445947886270535850330203542931992927569048420358121747676676852412561788450020408484726921212163333552710607017911814397136188599767928783710914849022638791570585041843616764460964373400810166445752003742778270433222339619172397132626259395123207024540374215076345599137546955361575068044398512089278802702578763971257979164170717742457138483651226958180758995953453223094620583708568901167128233200251997328302196207789054710709569178937928746370648760815519095389435909458688548059621374647730125676115820287946563364433180475968061726168046575605047917427440654639839473164895879344652312649593314003910578156492071254318797871204595103644887862964686490337625397532367084837310335551395611397261787684330317294803362682946275310409681687197534550316420436944170563219195191820792635378829715454348819430847634340083196494084634554199761233194174199393189984883939427017618417728231879277038545875078465160322997756560554312874117967218675094988131039995776491144866564116722576285113917491517142803964330191295200754417643865544383126042023850289780391639001897379438214311848557121162487647760245368563982571753020573355197912820051073410753096956969306569581211992555236802321153977613037809406431339371706492217398149975717872195679386578439053178480562063313226723346094257903836970138955446388550017757534281643095328762438331712301743576738680281024955889968734973637598251555005264350326322556201496143115925522139829122766357936790778578528510670589763338910731832639153844437289182496406221123281800652155885279743858029448722191151912265416231174653956974551220517894191945344059575985048123310314442928982146597640163726122019147644018390268207277840795521817014157531340691594918699129449467532508177270139952826099214098306652189210613565391411475599504580494890940962682359593031846846399471893540880644831557796012910325353071665524279974463051058458841743474924968743622468909500327116252001320227173368719830977819653769737705860099436687497125268833035160033263121031095235877106512481372175004660991244276091881231073148050972275636260916462289835647793643232229279749884895217028255717757995388403953653365429391724730626434377111476906179595865051237821245233040566213669223278317224013878371958009232250007396959258763128306553326009004332459435038587770113774111566188569774276974942719557181314157108951183999209264929181585130266867557438963374144835336233785154472265486901060888964543973786974633844603051003218160241027055120148078523777854052193876893629199998118680513480219746081059296807320046749120922230790284026630360730596809345542929873838666923671994184143288424680588627910959080757791089642835663531403510596201322952666074297904065447998240380730721433552707894777919418050594298377134912217965913421730494177762097355741580919904113395531847031739664497833550989113875802051366574565837553297472287672158638381606595654871365824339519646331424684095395559072015350100056242254692445346440471001151236478227822692648883107474757197672019224724534687079450294058438901515130226523630735241958555204879254284843505011644014972577325391575706101912004837831492386993064786675574424341978928572010567616803830152028747987954734645588280885720933073854680195820651537989718074876223545999797788152691385333875194106518198162407914689347529617534311705934317958815214630915214375127753959395189650287653324287729018806405051675940218629092259813288226097080417498375141768231696133220366798460954266709949753528775917977995606625051392441273067100450738521305413318248331971423679127917265146394908427971930565360291086960732664265496988204262096851250993284471562223289437676813591287008167391515605378061429572832679356992579941598054267403040397007468657638491899895398155196588825697716400944537395393068588531030040105098902666036734997515652669971775248076808548011649370352716845371232042737123464586836420392776799525621245110859582321375311268060021395181123007806115963319116406908619503142017553172568882878897651998845504589327572855030123503941023681387953948367076501914639001141343636158053717963059754575753247113498620904151728130744084196731855590597719952762891199060560676968814541689107149383553584857873215041979854829314322786583091758631575504177824558432459914922827091813500532925892849581739272324255439771689088067997682667001196428092962654540770730821309525278945621605705658675449842843738732401855964440151562751904050947067123339761317290653648906847111726815616927978939768944733437094531215706747340122669686190751582735782957000018371299609155517102344803351325147913446497852720777000098217680160987824940862755394824336489020866591441194920056502116012451864388714700794056015309033487869756680710392149054909099605232996868868076568414938417770683328965581922478443766591252303880952360507421887534475072770773997158302300844827968955918564206744529335294211106850436880515756979360676503888430413998714983659417882291657118598708881794851002463744821671814029009168803759413197576008571770513188427143931561220718422974771496394353786462857300597513997270109525377750147098293641067998256662421988080700720216965785612650685213483213382577986590300496674030901064135854189913850005873143454893900107709548651069686070839630277818755858483040644532600611437945928949586189361105541845294317190466798638738098907472518487000503299382362655744128216544995189509757434742992690619155818277917022426975915850543266900042559622175205810012430961933112018879392202622280925071634434670018239721044630126493739479436669961127561102734407028062495941252636497535049470938795127198672970363358200163005485300321607270357905851090594199356122241863864772973153809596613800442085865930520730448206869147664582899090405182637964248785863985329759915478347157383326223691831912847024747741500358470106257965076065561548765130229948958655234256944157053936396794053464196922319209253995400980234652543619305445553106369245406378113900649526154557614590284893790956488141473491187992179476692185147922614846369620149713727438146145698328062438244537353785076970036198912909917062169659682250074464088836223018875283847617928929384680882643411288590836540450895591976024392873041439496824665979628368530081425838241034897043730494983520501131084916579771799821310587515319602078377837816994543403579266316124091185598203128589356476498072340401470910757397720682857575288383804032323496266479801813969710906742247223956757835030828548590968328470887928398114220237251184501454632370570124549079608586392328391466260155704464766456217748455149794658635459350637646468015607023044350177574963857524398589082042722511874388527915447793288767314483960513834769986294695486901844824690472095019683819602866800883512436126076480300463632428594013797475428929119841081933122718885206644720188844805610200256216847120544284900519968365336423796351867038081670914642319923174329684039036216333777544646176349883484058387033062830067616575702698077530807014420712760771918823500855775970659230720906278370593098714022457354130962209322818532332777791742348557278033658792977913371341087075637471311899052700903398720822071463262562212601601795541031672044497869994447363301050146642357806299256066939235749512003731763935600699855197436112412325499782913100574452581365226367897617196695115083546355532852025803285428332644864160661226151673045127516530072457565170712419371388323347971737083248788555046799521773623938656099615170912153423246590650222284256434768091200750274898318111842203251756831837469989857703026173701872763807279336211069239584826279498782414242634173114357474665713376414433736915841039571263123908519992570760684978594100556538122853332591586172981424431639846219586163864582070782098384939543944531460344766054697263860207023160548028849921994514333963445898136196932931612582449911960264736188746857402776405309363973699297364342772573547965507002892457002360249019118015234308371294088168481306698777367591838858822449565441555710163099169077097096225899066449877206737280870533044041992818581866257034018049055054537081227220506377547960338048702190957863031758584747168540531895839604042548918641941368660391765636319240058658364800704292972353155724746535698287250571395405233123660486481144566910251802074355533365248627765352062172394469398549619499411381670933600165825762451658051367864263876921624511559842670797184537836140624981968490503027650657577669553830751158377868852511081317045515665295869913331432915896198942783514147924418994980019075174184734701623091021356570789612703890525270682000977686802088581862578633170907943979230273171384273790671897981219476352804955663383196032615554032513382749822710348796136027935300130365336544300363808593742648756647952123967791364272626398745991771075015363698511198517807281050972011914077550722644317359935949046437147260343989353843322190817099455748192073213755740629709716051997407107466940651633556163220327603552597041024484117142661656508666327337025020032963383846394321514152245639850066004148129007652593950707736932971862182093418329278660953481730522262609865126357049339721819997990533972840727280378264916436870003424557133242560762816526391960809099767774926013601967102769216481775200986306049278350331974913427246651224973523451587170522313556873251538038960235054403671026008597572242548315346008346715388068670371124637194329712592540610219855871168761328772814686206263222450163627710513048013413725688668544413752659605442730202178473190936419513248737003534771496356657411571863472503164182380537125782029628186711297207671727178482576623507419847401450189855666433806691525043443592826599888691661037278191970589812792527968064601121063375002107815263926602547775131598926635273990107991136895729178876828296026435619743650988720137143421706579727268566283696770158187396524881997489589319828188838966048873063853226907790357699047346034946778330369306410428398252779548196062623361922499648271329931334496047377149639789373970762544500332824611734496897821865869674241576806877229334638480970964473459421064792710553072246831703192912155269008419921102556667503550453253088853910760065734207786918595937407180287333002291572016403228057463029618096364694873041964837635860135325707278701891589418380270317281379332309470072617313817942689350544969242848762330767803385436265924956919020392794734285348216789816864772492910653406179869353869052986272742150919461952531008985594508885802420966643234109228196167415547799887178145095991153219117347713610516078304541763433526291089249719886171410978498821180112941501122053782114168160999901053996820597408422546122627375131234228568582385262982220143772232269205504022321073051626837919366497132750128880762982348853557104919384632098854648666515857915400668478806471547532530574024311460121213124679550991563701316774209663362520180572096174047523132318103548931449040764819158366784472869187505761345778524577751253546430084889802532547726767901392425323511630956210241095872461424167580108981611042133472689243107956169771765677725742751904533865438697280247760167407694265637812211833423565964123565022858960207751215392382713584915456719765798148354869833466270582758396063687659372547262037277958919404773179293195365986724507846103980997440876811520452685354479724252143218813021282100707008909694499725867661295819359020991750031046711671648680831591498963067993084987182182849522171684016232110644660668891707708790782506396098793229012623980331660763648518217690124295912073975451761704360765286274363322532017733672856870927364071836643289556264662515207555850905881828601382089958319376333935783798727653072532631137910918543138086458980556179834401043294309239007991177504435901194762560613730694533061433900703303519882918503538268059352122146805417042501654901119504362974336623348236621726746370002559617627536906649631541643156303836546628289588073395057640320196542424197287290516378101940316609271614195853234723550139732262588539015354737089204800048366572288125796588873693118005157628092136428228993887665491246168570230224098525652457200650964800541120337676023016752824386266795898272011991206185789304421848962325224363424241295676930756304529790663156083188452009681857101879766210112904891221767075695325762345965355920407505787130116554481485069340610430654856958864881848343392860528724331188115735833123266764456257053837094495396367606382245073238611408781009599214558202560563437434569014450032279770116421952228671328903934355115697040540682458118522141681589594726100387041951525931359295183374913271105313781987963174950971593155759208720902730321555433811205667999151877526757702365442313627639008650621899871156128019503318462573096362380341437816842670966584878173646837315832505489964016360479710284458122524184009444111757094514424820406726195495993676028950546952069226436258388221387926049987165144170966856939027418164753311735904169188082678853304516950473312694775899526047960508102213993231270638765060037752970059351361812066787152803887214255670577874931610203694818191211548405474723329009094193398283783317704775826623820470228183790336544539578490209339538573383772706351427548111712078741777041819398586968284692078822047853902970251456960682669200479743008949615490097915924620206475912095781661727629168653157399670656555914645685801342455828892892231911953593112442404744222991778171158834366596141167263556226718190396445165306850939987212602164646365733262034936098826536257498054573504866077752404083080276566511459647928552492341591525192272491327570898049431535515164667723187432754722596362810349489604960662321043573140711081430877286967781852531765356319794791157071939996253776704022091411480380397109483515029116678067162248087829865185924799764670684848794361095229940163597060117890493517941744179249729807232753485197096981372780176925008999590779229268571686931081946747581709041300853822468996329974533514046412179718875393294701251354396737510313849298864378751279317543609168993492298317644183487947079250252923166403586453107738907178449094818824025829874384075351201535279463973546137656647364085595457812638744447869347417606219143328568280971183418595653110865838682896204705449777263271897993789492245291164599555007696428634584366088986386552634712168870027648324242172147082885882645468295718678988660084432768600537565347734748652755333472292141473113833410143201813047451109049646967263698166017851887147937236050817588524480523178478259281073993142433062873640301999310697412055827371220251511605707496988378642501216548595280232981480915026370866716902516676903728777574601488345914029069571954270018068919250699012160239342329739377148791251237069342730839758138384884847387021604273711252563525263521460255437900378070435986883629266626348687091674034227205936296739298516460855747872316009066789810299027497538562927989526968205137311182701575959382035552030045252679994132574971886510212725284805827225086395743319087555440558105337836794632295388269465175232681816256557380455197967785037539213541076240126951571912252403229583777635411435099883013869299930120656347728677430867622610168931558421690196837722299619670494138867026786775269224833129695518890496049947937511611014169424616660833050544023794189281368202596432174247482446684925750545586842219982977206859715869298091491138280528901167340462530119690241475259660307152879561277108121894893537124016432758368583591967177919655551202464732832917322072313951798198488935629984734125488321660065727857578626911450746534505800324919077452179747554404373494911825713075588524619015726589891679659753132074117441581599105917649868008084699585128961128940640679025438400843022729960962064623871022184447984413942755270468943555084481279718966413872981973462960647357548934067460918554335753302345796187056427470134313385647052634578027143487864651018434557851314759992621523906801563634736419775768487495512575549935723254920532531992284247648052008539622142708050803333414179697093722442482257767712524761453124120974444339711196831213208261006537873151963783739802778379236675278617634800782244411978467792246443352501349675725159551999199818462312754628949191452503609586527413091233996716329498125241745503379239219917447496072011566728167600158543259513016093541157973793851585007316750527433897131158364559411110676848644296340689668017709277767517932507200841935997727348370745920847651925967004971853006098234807897447339570551651630893619390491134051333126127870370553072348771723615977650036493392017391999541755629110952264263300878813931782214128606365182433734981518840182337593722090048034860126174759596382113085893456510986300642131304393608917560589127088939146032511798028666317398057566285480714794407064802746985190115731925900390724705039486897093917262806851486902488047203767942410990420394484955212548442195681713299181079473867977509126338733685957766109337374339966584169703408189057432507523498492865501623323155149596103351151986355029803853754977849401968253727433413507123580769121405871922912201020885666573563839480408730866291052665852209632483968252148390491889452955778930844272824784846558051652164321646205156472416318223817560933751780661409117266897793631967561080854118173645247898675389178894988516353243879908207049762761569646437230976518548201770982028037854594993964388787760983152560176485520895888300509781285107303140781840609400438011594136579957286883777322244049929665007056266080701598516337862057554498084049318062990282997690508853367049289561225612453231588428678248688392155542506400024778699849113159341979322278994107147152646473177213890879187630053369920298314136990432609703025140187153289666092300272814903673345060715226871744300568726149285458508122484218279509221724907100931103097501676219296720355932601981515600379864975010509015214547824232889603303243878566961988736193090479920856872867377833551717232316290095266900320855539213749399528666518645988825710076046720103824636730334394088691442641943530341961084816710814933955526186460665286128818977373928523539557169042488257103057716166064864524229965244253884829645150611172022239850401971044793857528940966136274751054614340807083642585581071312370243222278733771616256696373705371592655859445069135097507568200503609841398959977745919134799681505293020898612935006868403538386243251281454957847636460086479861313648149083911177119679911093883427855790206131100652604514201917029014144341189871912413935857848197923188633535045235832425274046143451437469827645002117468538681404016667241244845759778408425783608438381081456269047211578311934203574296267518040879370021733762437602218197620676408258698179219765801240067055757399965465682381798080834848423747829344991388083061103941890379486930181172479725329522252868703069183807526099875563998750258131348405041224369191240847028748706165321919153704644949082846506528005208370233731848098275004096947835546116230306447644973798182516213895430884287394346512751993846213106258625309655770404057549972584787831107117062295473001941251179695688916852141556961092169249494058821124326981054155264689763682708515203367225047467560498735239225203604337666704442984759771308659218130761190059211170753853277175870513152706436100179470534281785386218206628215557772327498291691495507157424846959629057407797743700576687871648235332874961465236559074063354725316603937207258290279717646302661876488211899925067706873240765551793240827041835169941908813247760774693722009093733479515174136338547192541205406294975461074940214754420547917382280158056216722420440193764171987965884690697601956838178209688957096187294592539502275908916256793444777964745109146567503405047127840702517031857123399328444140605717656079078786890523611776509879683171014271493958912226483277443055735976512210333880376507146561451642963483824982729534607293153721048954883447420123187587486231615391826634405617323443095289756586076843204583052810994977238566379668902811650603908125078038285473971839260192122746558772173927667284627451187391580719811015344297048767272712411818334643775472271762853636810433073096645267518283543796945169356166857928998387102372483860224922198873162094205364297336450908369124098241986637958895107358223677804382303941455094882758104124095602398346863777215740607522690451859614897389005708576608285780163291474902731232370246720180428676932805990406255387146117393298165313109281683185866916249869124429008367727906505924995515445105791907284074531042748660674817839073236400300670090955444510361056586282157779275710238742592958659139182160818277938974826738733136719206935700795157739948085024198634009089290510377206485413692366139046842666240814403617010323457304999879962241980243693300705803781901405470394088470950953303967519960704904163519157541514061719775995465325746540109834952255875759464939841691146624749918875321110956381332742294759063352501878202325331115512419146827924933613190824055568065590984531149631349155216699928789115188647789510848505787786637457275001659143587578472449521634235849614620961651397038383604874688825347369593613196854751364594468825285904858932043847585329299755822099644990668307977449133741425421306495884022646296440917702186709781268912486406714754753380270248522772805194248741436997186912227359542356230688308565375595800288936397781017111671249577068942810452561414745798651818415118021413838321119215965241974099467833843646709354765331522992621818517790235704203979094704909593402155249863220530188934632737069586716995991478843021670598738321425926583835006560477347209824478868793699377834044735473358839595144428872719448011945156527796480771058134369772156344129516850248268807305513388133809153028752823169268758813163606668863886695477059363655373938458655262788892768998270204876806420661076373297927629443246142732285746981869103667074703866509313783148957397395209885229625189720984184766415312726496630238731283352130175124675313748701274241231221620810877167905640649376143816176927355428658325123026437879027529406934382419059924424515232902075642085414877840071365908178599444402176925216730826818129813551983547205687364756815809883329681532872770308952416303211469624686645569026787892480419900806536376706751488693581867793841325294995022992018146351458759651376246790444052119713993197112521777006563991203061393256779562469391925115432675457188562147799219713218570410111271999456117144518712647857709771521542641655943798164216327342175600878714186397425792507492691933731734978165270311087242238583725407424879367981577557239626928944265045496012134539441719276073487752543343812423558940440589179605388280001774503856373032279698840679550916373962927336529460541485871510414548908224422202383545556754968721199073274712152056956156616952522761703751883795222183433457613990185745688646246806898877635273518688114771398606191108278497200355784619920963064993616792005711822952905191898141035393045759924308859771743817072443184099764167675782079010178514852269463601355467292738419855333509446256173918787031427271770912075304933555723978863154127890164274961043203708310139135272829410109570777317213452727785149440212133293352904860792214996507257232427764033518730528206067304997846325585186098466839808431348185899989614125580443129555544009666074172430959080873896107460880136130266660494769652128318037548502449348440006362687303928228145994035220329194697588839985674379930062412541279178114641697494236135126255343283219950161321304193351255584500744953589640565050244453971503855154369448962288779981456976503656376086077223073934347141863088020622834826033889355330228839733589198960846933046006830104149841421716871130655340598307473230676393691393784823563698548251540758007871089690731183357309316771772442296249274995203121333677965669569990243066038177532177480839686607646231262119008843147577128881828255052837089125687984008376524462008439101300113372427125842592255213537710762919658758864295565084748314589926766184508632964078535361663688366338019109487088017603065361181660820540398695313317809274470943046920043060638038508916726666116817836582796962049312904050955898035748444587765160607060117720380371613033174361619110635187638858947529875994009716914271316836246034772238341396714927233076408945353421683015008398055297677967964777211119628384975756708338600385451634949759130797165303966437788859937538793259472868561156784229709473595861067902444743614472172265031273338501662384088200329290948851065045418288641732693099384785686118891470714141507804956611950394327242054510561496207956713255084446733518086722035935127169996186679253897672354338804938971093461870442747653156137915348190549405233255697063636966017519783299056093812577894035882395487708211026987939433168141039627667658150515877973179687221817967299158002606459569768607101230038269152979454211311036471845504732366954325182752157991056858376466012147225683691995285228485168371077453283691255276022308365987131605803956284076008626769605244302759264270540822597028986610696123709633509687370106711894832237374795163501172116494533940221611219835434366387715388186382465791437302924566670119319077854411898492923205772523815984492605481807068684087982049084059407070279584884113206607991093514583707506281111552749913201029447978931043213154640654615472924608607482711674162694478531437778991091189278947633862283104060549546989882272256718305941315794522376715496994674219169366440952191223175834179772936742982748685618186604938569328492306828071446624981481089568788010583558095599119270287205630348397455434096149943348662511798805921590553319691608717180002297107053912578403612916058471708402628168601078197060017210757857534705208110562253369185549542682430280166734987414024173695418483604923746944975760131396614117294371846675852764323561850885704889919006914452997018120616701244171620053823930801034837816436927359031871489528467894551531360612035925220046646982168047108352988624689414902670239358852724850839600046453354584911812634013746712921768379644719485669214107791124683774938121052213979520657450782415687345689662776473570681504863772922671857554698534363134762418406420707244169631472315842692029651141747109086100474392208745558036619357904103431218938139449313291770461803692357524775812922593198951458907718673391010115137985968411772861394590925174653784218968045187717785047941872290409914315547627215552352023360948307331849617916642408836632176658554284254091794579818893450935300828758347672321518827543058028635890501991228201130533046731312561375227142648114370877788038895422530944895968198914935928886583509195469927486904499976308120713982293481141875447695186448369999412289435079226660359817749326726445146114131745076273340112242112353885981076672359046388756798591900599343900122684383876344537380381930013342361538687726061105348231313280513208928961204240704462756658543023226616700672149466571911010086910523141129903783178512253052471078733005831757678982897673416375560042344443977792499616697507082717580474315810347092597628263476477571601561409657391370880343664603174150476839778912555673668159975096181614873658110041862148311869237708133193186684298842970572023531534782830752823905855526281748565437507775738523722923377059887441083164095719361116305317847360747458700587336199273760267290755522209134470832986592894222223458723057115408355149728951753465941078518915560025378161760721557196882521137362483781878004806013506632594219832024574073416747793581451548686993102914449743826286277360769472412700868905356740216284367836949893554077687549119971353550380339916854013481849378551803936041050497192156541776240763007509521250931017450416459577623268428219655942161378681420975619814293241219347826103634385372579450372268760155433075194307104648576929600393042438504892210503935450439562832958145885489837116634561921871727975234077766356833777567227265665037852695542565344751927984900462221881533963570162440639221470473587951967055467356776809220097266047658605943126823897269683782874904054668724169651539988687023744466182980614796529796128881122594757157546894630710653478312372988826935891671304007184712414296123931370436717473383220041541507471042526563765041466928301442429560086193481455216782665212879511951287363506685702383241272643351093887745353998375409173074876625648232141010272064600055498817520016359606654753270868994116187425074692670050607251473196250336539722494430731581823360992268240195699237340716876052777930872252774666741166408769165606717864665206235612735102473449640868054393712942411440646574881958127580863210761468066364231120748836983731325583140830996433662983088369960424457138009103619420953669518402546712111926054134806596377800139092485186495207320307154952583493757864665964920596432631320183390720361138824889650172569979174745604646668966849638585932380208047077522350784688058861606811797280223600164003173572383643878919136924068759152174829795781602022494315693925052629455056999108049797644325829908973601733305276266175999638356894433866866306209971479203992882550893537257176565894279021504258252979965829696746030037660429730341167250925135503517265061961523235265461235767372453287295907863884305908110455940454859831262194178527617385873009102907377196957528048946022038385000286111499974193772672441046440820515915077013554562593554360334086355706203539938271316033124450110238899973599210771244691066669596750034839421121191459313419357642655056315912936071923342131398251299603387610321951458001641469332701112675933840383236582840300476725365158131673757935943473908324312034151868844581119090835672236958171859186035373571153673943843881465461612150811837556177390964060788267351965516631953972435898327040043985420315904964409874019575078547111093199366473253013388740072553355091605108238542629071912318222963257161833159144383713457921032256913144123880331405416264559588587441401952159905333915476884194434474547138209345385640715430506859475855534019593755315303660090668431611805273817825933700111975830653910115252182591451405357579514119041468116182684562227131839144304019778456261195234303802545590909824492786576687685414140076652104921245439843723147848045884989993296920063945172738303381470081018670178487502548892986436565068787137037474137507004216992597927868029313945888656455216433277691643466603136269149941206305434833536370821489834153391343014546703380490951227285536370433544739700181734223401994786811963687865361841893763960171567163321604192855219458544347801797687099352903064187760869866874908601137930352218057806966683786119291402757236484123339737981177951885192445597219448287901937925629368688656152584858062651136410906785824406704477924757141146207883180748033713192111483777465845035543778504253553860092152938200318432589592129599899503301113818109658665321525625973254312529539518955499175014033416459408678006089083676590816028596902585148668746526602222577445494956706100610151166387167953022109561382962208858587306045414824904224220130108327938909254622671123049892196217067518242590546496001930193783381417147792488857067257863951250269266419882461076972781140337792559359035258001684713293993250989491061325714959459406350169347109460748030687316715683663006823245074119174299581601248745565334848861604457014501695461396470481931531000013786585630281559852070679296676819116830427631686454819875751230090690688147804708120281513808767071864982617513790626472262861382984986757413765590355303734620569729032442776980898805971853498245518206305836215710553876603420288201472857040136800499107887340617475205384969634002472663561067929227085881901724558449784301187340110991043823879856030508886501902773541393080295854188851965187536514422694917817542782703606359476524572357202232190671808269586376779211815350173621097648072263213137342749670041728631361172151067634185580732698588289340535451286783646791024857518153101732314442656157019218408245746964987986939108839861084725869018133413496277084201282119118653301884355329591244071636205689255338867266709428007573343343434611522388157313004602105516517755117382969994469987108299619296863159327134190585658461248242593429571334462971760715537079115903021118666671085252165450337751332509828260423741401527886473012664869795910649004562958851555794817170143601611618799822577164009048791962688861165693667146196215642272240970230439229619358653074909919167785239404568096221186349179946454274975801547453099251971398741686050098865417021928631968710445097807701792636469934420250199152380590993890154421468452771478820591066443268837404191823374169194683264080785056444132232859689068208181837956393792385919162917932194340931913460891192511497556598204282579253404233160962379250080519662693402613282367144898361759967837201781577178459324151213115836297189875800813950204867329589509181121545331986156019374679953848055186536410390387269771133178958572452205585517460041384223606382719193134522457421827065007707010050996274287469913023891803532432160415797205608159671597936329876951817770963335861868548352696581676703504134642839206669333354177648578713607197362773863350847367313560711165136142331044359105379765284683468672579061355822840516038904929279711079192224751827024308555865222930407803613961908338987494451909851560263988646995851837913570073205284798202471089051742727176086984674569568563906611694469419853459010119888226569077034418153100001032983121462947414250788654656751481920254888807616994401485402239437247065920901192010220865870567909239768216380490744219576679068046543241798115428602236037671382881739702974176309684447644516828229462252459300370147305858211636129469877164005328567939389368902454935747467051535139564215695340992407246479107273606616949602668900692022211743701017745662121769436608062070477282211390181284245311698679837411032960768558875567273844519776031957598820171513237031421524817733996363330792423900974737458696236493457155265414019593343354424784252553063523063646006829670097987565036919569069449118350973564715631077090272738340563027621612407159061407779710916828174728212557391053394968131752442161047604632319613107559417667027836841244383615111404084602707100582913737217333977788948365605415606974905502153316791470289815795691194607304402175927360471833891642948954163160574931625255668296037811765570805905118497542364861505058917647305290472853738309255920891295370322502044877149090032870624528236448918971275981903597122688588136916576195763232473632887571800103025561563091919096125800777934691435784222103938641289433814914231631240041394958978763652027630575969609762613383541901317733171033315440927963403690722029433808257677861214633897182622862397415488443602559310370287835227131044955622766549185647669226571472587287651278203142258952580873822399178823541706209028615983705816935707876021196566339795310473042610742234363198467899333517299435867452492517794552410711178482199134381141744506285519393336031013381306359839646364105035458906137318732251202492251267145334137833092618184373123258030040995814131365247040426321152844522869984049762860337164728983439003401736835821393720048699187239238419935518065246824858777126709467388493211613981267323436104600076488117095944707554384699711545078929217950775769109917072692584492371026978666922014332614567150444637940243086585334758959224580167641821217147863918948699863247191750948202356914001529053067623230487516667340950638070766213887710611174974040504079122168545844991225646423707930492165698968920608425096387245990489734911607749635794903045497621839889838768543720695797383000293732235448900652456473170054579959824528481797588593951002169431306059927113674160428352728996175305686918605166061872458099280994985790089239933065024356617071673965593590735638361176053158868584853247310568549432501443046323307147335405092450681303822758168988266810164377512991682694417660872157657121883492741758144322078041245595414294291913236067152791727946324934110102067200977122558640850651101192699871342649550667032596853585482230153906997434383444463829451049726157746404713925256478324738332661202515665674269299595957382324475649827875980764415616264161225509535528288830278495352420732131153450276225856627981328714774404850049966983553935523617249416576596927497603771362852832003856680511085987895801228912619760215019800265795199173951782584035923330069866081372210524085335993783634899268996256302348857959007420991274882850448214538043696874889075941528586580544188945833978986349043227691203868718198151778978847666899462076191643130190511229809297759805510595433853971565770790081531527468416475052680560182578479239637819992792958349488977466494675785688202650025319150099504831399590893766672543665224454919821156616947779365706258718832987275186779282531669459046932048328995178707069619503110962736729704079670995891894840463738715818401385550239398464320617330584088554714795636436216049282883103323521766214765415838945185178637757704011655289616834787880943049512841397168097902938888748822472371174544931625976832765876831695296322692903123370088551617530763001600643386943350183453042568795089859787814138176653791356494724493301307628966974530575754722346991533659330431083674626196376782596714473330364063246530623366033972869805720112372628200996582779078782289260217971029928896023544768626769805379093314642625140653765777268884786243561003770344948286574507420874119898497584095479240849532796695238746050027262501218923970502476279958040453999825553213663554438335687542889053579448720853314947672502665346949758375362400668194714084924592812132919761025942451490644895668181487369807016595286903558308524790779568174100917994835809802516622153900175545017894268776292666657220391524298745863865316690462592762470751109300749834794744402287735128790447664088925518763497022951203368280688608626610496128707280529470159186767488891794238641994928190603770023719208815969781036017537526041819862642046837704880457437721798256957644630418380871474426870523624216951984442233529986241965530288571199580988962909066600537701416754617046814569760910455878643556124213430960014624951055557360243507476342910010865407834780811269005804749085653460907393840489304273766274157828540170206594247255438591338177258821043334283763764415946043938953098864925152389373564855253080556623004614924909001512942470694423156841094992118246009568444957120363951659229571996691525716987398724386450567154359742773101047579640904326499166509447306877250768762051057114143198803367018914270498204241805170352410610783306622574778060708577867733162215277524370209961812378002785240889810564262223035597771709472343060944625887507878886339840660891458521408632827977044284599673271669966658694415394448697830371265811920732835851334429050451824643038370300073529267486401836640564512300080669772934867404461811673767159536654511332150188864425957816616705262092907201085556728696424693374858034787479423087897534345935932140861927198053013225131278319504237960839742409865815665374838705152731928936649568203575085270457766128018708642510406623804459565362767524479677752930136305057624815795803962937797568195797153864377772160607327711673601542379277854161383731876458421807792815837116575802357344828509314004065101960858460504341290085910448849835778875670992849331682402539650113287176839451502635019042415660841029367347464901413432390653245917794043761510724376174984924390776296411164139015239743234472939154226746330251606641615704124758627221468705728239103728517769137203625201250737818158409557262051535854843966299581587956758612407717647718262838951013536277564294496724440978455950803697512727980061966824632057075535630148955662808117245877635249735675537206646193253962341434870163060801820729299012178503186109639815670767197106545965057899296750704302483544403061083281601820695226916724447163828260907742201099600676405284286259246868220229855825669594953450970424935281506147089085616913669019644982999883849926125307742642629561342088925234054766128560070026854943467599426275387553185300892001893200731883480623717377069333535997245117376827416621210726979353606855351609640003864522772353580808359215517302921701100856037272295921268165850481684299947442913857359940583896791854900857872274182087741751504866172809085758248012580434444036983159838485909874098168529749624506140968040666199278444660436569798214131950124925244191356500291754342806444308806429631698276520410951062844977484005313090618943166659387268493458701686674112535929695587522481846601199006589826197808234226701495116251031137120697629077973529791461727242149587374627905360678508981524329123585421968829310820891818828685987108615154452815089705581270164834129552008199713689201708902157760661883445136170759487690415050436704570687116148159662355136385970339376449579508672467645770425109391569831210606732164180827679765550712963403636641791348813169844351791827171413825148743209497645621490423434211059008014431854080032927114863081563071816580838205152839664725192843617200176217889134463808569910926847897181292897300523836291497650839426035235895119177368278114264822857277040320192214696550081051020739342166295845548178027487332953132086397122378453329296081497053590906688709061147823337720513500466564286933819617247252585001498727440510545268118433034131915014734226745429158912714216834214327950093813043728686335440913583124869462364177878848264616597213339439302940684954053003411776325262063021793729343305170263916183629205936304375866813152888293868662786236745894792543838153219134181464675568475403064067385322075961290679402156750271127167846496181335930415214016426793581669820970251782030465569410409833211450567125045574394690826241580409718774211897518379885386782224531186834136908336906480564724000540913009915987431790001348679383769205115314898878200783311343731026909471572472567231970479435267500470569840978440793203318799711185069344440457882265357810777754342134075211768039144104822405890530733320802546839163552543752088815114052118429346243509170146798091442353321950195344348866654826679032969099180875624614884036836584781753314927785332385450245029851130302072430047338333427272445481532562576685519675493470806002240905799841672069567349240072243891694260773610657574904143157795249368042844325664990604714249557899489480256729878522703026882537116421217242519541287358537628841398472648726461087735670736334215045896478445644175129717189913389652307412993634828772493587532957797133918842791110022561640369636145209937254092244707450110373281058470707475863168139174143508415071006025267788400571646419247013809070709626381831168183779085661658590057798003525585117122807708438805241355337595984464324193584881189712234202537671761535419186540176251918896156275699828402095508242418029263882235383960258714189222122525818539920071249134287146356059172545728994777062260323130746644794679203380317257141940836342196826206940696998390542313145544379778272136753869399419869531306417395958210231529208913634782607095658461645741801119514795419991879576210684873635936938674158797370705046222873885067195989217578115143479207338726505561725784022869120211014642115448619236093760937957115019648312360687785061145959849369349998377159901900105786572317045337727029921370487681470672295332097075734623017165508968228779828079162418923710430896917799470383760651056270908229804043887549148428719028760852578406576071042963142289124055836087669354025890319356617294760207727102466211675138029702036715029494144851953258709041285350678858407619971932644587683355611028825160635388336151581308699167530762531655091599507916570836786496085101180191513775515955347174307573461902025188796609073622971627335145051167190795615397372247359254132665420279592530700908077136819784672765170778600555264233206660073589166558012637841049592560797432603851683546911572384809503165738584738876652223991160457169297512039643861941912503558188899302919387342243934955748816171521231002898911283363426273120110070476440690354353414927627002040226950458821946413142463553986411081497037701111673008123436767205687711217881373774236912079348195578815573514406990176885112766942714127557511767826963978504742516834926822300363861142636823591232107832476931374745758343157198978910536679144764947179417014398395186449637868400409795662207188988119281186202989227345923596138170319255647785168832771231991471999611955116269519453869411855601757224992763217998254971363106482930050601324510021996330155232054672582176610449165982874520868495950043258618015610126854859958299933234836659718068984015620307515346552263268420229822957081258370459426678146369181493193965758590541342762303912598511161588279248103809374395739113144764855841723595193711797718999316081095861280276257697019816549740417652130795826436284769575007754715675568850648293506804588984646559883004875813800817312451800570376039292201697281450815718277793699540631136842861101153345409796682869747277508490402204303900111568444388086732582856793804273881077975407459830564984099115230139285249480764709911610769823545473443796753700209872219607868064078625310595934400638374159138963407693095226408614273836937888220796639301075874673466953308609715703284901429517129350954996256948162039643348292276488081970374864509705510312140893700521362045551380209553923355732258093279385035571980493749264236701919023853081471205023634077280645489129037335250119269149936807444002360571235874898897842169441246796948545783618394417060041660087002288515555836482823218402936149464075359971234455223278972325036146502944000008445685294247834596831280233999892131027660905389772645186396922447046343418701876081229204172147159149088921042401909399085060906376009072744073078352146021011151267225449634298140363979541116316938642624735954514744467798144817427744035209780401337371871162229435714151393139983518500652954491234327828151685401557378261379051349606093000838336164458956045391006277914682910308240725832293196578044184172811266373559499169905345281940831076199837537195229886886876238346790443013938185590155460015710488032495027036959184294909883893634477757541393531584233227169602636041862000156575950111529621370940119002285771716142832091234659963006797243276198303520831334737422485038730866168896767107290644299416462591619986724487906157227993575079002271123425697117824417774172991744191364843813426589174826516432536978472734498988534154423264345572031619543492700716538078636724347060239566270361495702971412824585150366868538800157629238896682076184362979332084351023579417446382157443281931553456125183287687940858052271558143291742496613964555553217991417587534379681002942605518860396309289311620232039568698142839983125927106288192424117747658829356605336391318045004904388103809766021060456583273223071131024163111983034359584879363464206256622503379276956138292412182822920363779688225995413420106580777883937512741800451126348258892511523248838299711897009239941508424384712820418406610773557530468997086713033071489926802054916401022190729746895371360291831446373229152787899338526978402355977690321884225659828761558204943669534776710577294824587767467619837015630443001384198848384279323472051086556881082071535131895370784208499435129760709183454973005448531931674699169534792084218395654603063524055598422103789264903181757419775489030939693353897909206662315086165938458054500603574047410237979738057619225835821468951019818376086413271291373922250890383825858060617421042022780112082545723395798580363431832139558696527081173335992435962637222322932731963116056783408374659076171592124704532392226645321853013808935528895258236037828261097748926241212883545678117992503319375085318882446926380943120290920940597155818167962630715736693716071794146337438749394278027592702118151004038807920638994944359913035410509641444608118922196827664091389122762620693059340155125041855424593794751974354909875988485403850699341145891371638494723687474075548875405944360951678505595187613583954293486287595192364324016043902327896404495433713160319418411146707684708983636170305585336322321020496326239099750392525410430357425070916203638314310419005472405889070329091210743271743388280788109549218077875720740904169913991620603911896038267546868608312792653221882158319616585583977191880716872952640400557249277889181914200247893794054102856120027990288295894398817564740158561410191572334027292273933002727047692998479240023429440514569017827999855333299955193963184989346310306684359229065276131695632046410394572073820701465081719046767533683341742784637273770123091645447550241186737681842430781651378810536952970335203323040396716062808991639749146913869977636168063447336488552335420581944089115348194760050042829483300558388287623011692199104196040712811165229989022327953043821194149319609328110368656349458355460275144654231389953889380047846467081387779845591010538147255539367184842672625769519278108064827822003803972376762606393886112781051363031021101367137918896339438970003898054847784160247844123045743894475183565848251872816446378728546176591816576398876414714771583193052396682670929973382883906000478808917545313411943201345729084327893283621843087119696444173922842054852151448360885213689846507699450062731049302603350342587460024931767023540048608252425405407377158161867597107339797848313068970448462446528111544599538841827773574410310632814350387149829820182578813392676332123718043609780529587433492047488265973693519931881621514062458159720518577490330859913189604167657876261982939964305136917196108625551008031257019558017156457207617043571202643461259471726637321707655906486692906005783855786496942229178935682386866066687646128798577310794516152870798375591448120209918500101934924405341294062646517143762153999755651363187110523472094989851804862326962273239162510123320998365717365063874143981503138214621368239335642947193175706790583407114728357687167228946212865582331959425404375562062272481917910736298950361310532267801080064060973374171556753500091173829419382992977640968998764235109862665435196766097580515296778647407020691566858510182286774544217968209501703780939288648848082894401249126586365553563880397530502433173257154029183521389518159843684063586758323724739788326939357086245035598550957321573682277879341115813750073267084853963179166299070659911448895320189476771392837009099931795923286682297677340430332919519704687275629177552893661802904344703006515828253470924915351125204300198187034877703891249336346327611775777528584426273586313706026498504485220970813561129990673972329677172492606091801592156155839647658661084330557737183616779131069765567417015421305545366964844930251018426265119196793793079035906739513826086419965747370027559937458562534455668221429277722929617314474827829391409720976165705459978649964817648037749922085908153228726752668222198775045209000377183313030311900843590281975957666816718446509735782998174806700130991706620037444454102020718606876891098246791959630923323596672025219188004834581191939016742445774924626720769451868865863836585713117483714738380157746080904542124848166560493643744256341038627233739851846866440472696942699716035521609409340822697398538119390295291529516538203340240570225181639049356324772284612500811332794548529079237245620867261752933799698181362129243406859275478123002044376660505884623812501255777852203268830521045315261330937661056688729446477544842350916448024177735878808436097161986154510642159249082931184410512209231596087097449429751097504202852153676087298818777862150099927688555124209038731497042700745082301714798437947188884845397161653863846061888163666808667540208797636432717145285126011478774832249033549957906050374074907723053344397849964568767986257213606439620615151529699702859756634763947420478572064649611913107911602060349615158636136243959168056330162945006461885994013732478019009334199589360724515255215805963738312370379437840203312558923881322857479161176893401667736370745674990670536197646216398638526279263858938887641081497130547569978619296984628893975486698924515557596385283195179313586712673035901777616112635522828018492715612325011746203140927572398244657521716725602102250829689090093818262703192094911888312344424200766622364792539328160653283549486182629177019088767285848260098123222958129182775193500586687723350831386295908761398344853513673812835385826432626123093336195790029515961110113207145864318249640965581144267425571059762619197455337447621393511890354011507124378382732718068463533063609008114960356557912159471529751432765954509622924052113260359580113490266976655824893317326270931605112600450399201173181704811470423966107678548819184614880076488397772124751947603861920826527591523680274959697290067516793845651891670637004008632049222242124489121461030041092422124757821553112986503264677330754238339406219366752497596080387747781106083888062269777266174756023292797063766502823639218409102382224070264566127597178004776608920149929282401876458149372145803909815537686474893141153590087883040770437686026912935519318344554674674784325890291573932139425881224620034210299060874851793534148208162738675419367183354875776722959317411254438694197011588100711075813712694867918754480465284581667545383346312801912721270971086562657942887922221233139337637756465446442409703198611505492216034701361113697051689128257351206358937653780124832910695079637791578626717610011237995006399147909476343697914537994968233731028622926328641087671663708724227964662371773581770197042130594263082273329838668273125050633575459812361848128944932477359009616198221717088809136028613295253844046171874920237286660292542244132603704036399360455284566862987458101183204099746562095104746240590819176092132227784047372284257124174480755903714039022551281958838100840689883654978966194583073989834878446225748309897507125990882228107583247849502338667553138915292172592119212697631940611454259815624449593911970968948160392821524157963231832469480543485653020477381882445990871028290785190497642837640062271076412168483861224649444974897272922925449245354784631003865508070783552369859886168773718689807795462475485316402324483512723432588056567914972007406951693420881699305619421411221618413014376547440774258714407481863827952646829088820043197585600144590951675323333234166408325151270411300605917801873650230943475029802017548027405777996013798622018028889651007520364491435295985964926316879012507614759274008071227708990979740540220321580723237177664050564067975230092281784218716796322794373205559878965819803605753930178834591768146797590325692703337908672577999988619966678246279856952214936121969197021308768916657954322168811455013585347762756768410246811237402192663187042354916550630741796394333581846327993691204057037750634034639491658065474970004031948511336523128511671973904881204352688118117441032702939408479176780639312769288456986357202933133529106092822901963750808543532291577662648533623527852762794156301190055253919485303969076850668034733720194611974531113763467722454545344740733705018707676930969132692284279382640507304127897726562671181112524458671269453123455077461955135825102877009406061484764209131185916920974719332537584865757605388320396520900968662850695690335265392117421485843108363113166073431779880740433800984393712168449856275743198595166809439742763144860915025130814421593843781469189928929809220902180163548888130836393718429727812777165478387336087750543425621761981959586113504710958375399341900499201239322703257378990708516337547511271775447009836159710063829009824165593471138277237919558660343051382381910456102818516845487646546320965717417103345045898684819250630414456046198108638050916800665540492405456242271753377617492966861414078695799455371653778620434513391122066884131716871370886770033475537501068568967553690929799120030476607104744820985177551327133116058074810526640753363859814172630567255331668646606188415567365340963204913017140111692198132161881018277007507343475091515467410887938866765357841759627656862239875435142147037437890239500513325517208587190981153600821691214044921242167996064137316486957826057154957451714348448252545372003441633160275889272826849170420932888166855257081979585093719479006108980904972251845504723036067781753940258000714513334328102201497671823758342006621654519708002539949234744514355158556192080441639873614204372329213237190855298781562438773913871241345062527766515019846002785649613509530989875466990160858589463145093221129374362872130815846895909161953266831573215309891842741981004564257859309776838889596439878289725943075721920658056150800139028547564560334132315840987382565251615349516193355590137896302705614804134603242604313321469226968317113824710867628853566826264898077010250629714661710956962071727372356727278129251489465557465818326679554717578860750464928337361524672189649672047339939832455829106628523004327713870332317748965586060047706372405838205039444442418031931251698419504238776231420016153694127977279186071581564592010059370546797692751094228980060298195268074771209780206291770905411676636849730161305580215511576911925620805833165603721138495284555803308999960374574121621750674999685479004307102028827262176884061349593509477851072953971833497867231788394229735627004907136020104029822050922315098809927483184493724433534525708685352922266977705049634114686608019846757827400176836095845532695499666841011497966240846254559799742968234646546938018340035727725267494945411978452721591378645349348893863802699127539269671232620253374539841643874766621517493683339753427323049113965960810121231433500220050124620348209649583678455945236526777941868462624771226423722420148439086876576481156929949921843803848160226927330005859039889843696204840546599068944576552235254599019580415887619157198678460962611601597888107753109230400025814813468024517125728171155639425210841448760932543543686156583207548271630628617210701486248720591874090511159632397917219345242076566841094679823925110731334721041269665042831895790307462405622832701660936513750902019479096075906839752285751563752572228650335151809993581327109482383746128438692925165927509855997890867695280235674261214586245593447698661722375775288850439426550555800168307652892562304164086612390620548402368769513253836012850169429122499646669147043442269168702175761457943511346555835649815576360705420407350514566152234880329258945973802733329663790852574781523119488080697797417063038586246692018789946466389475842485513579085217340027440804376287049457270650366375434805966032813330471541798684170606735622506002391526534131067244042331771417816625305401849514710030784688745842303985354157286633316883684262062464548062838782436031426674844483737778221593587143276690119695257141510902267152960729118305340353614334688392210990493274261610934896425507565413245382434390496038324256823939017373283736262726178091809517628448795080193475808523086073145394764657145044040147747103779853900619981459386687843272335612827436375226889560499164761289978091683638778937544874923019112448950880214076839518322416624853527082519855581288489458834953645836912889723083965691447484177940207795423010606260598100564760566607126078888195322608739295530283361782988300459904355730924308420217693842423356881025973342767374145864923203622352501269996694952826619460633452495007090916123764369980164753634301148267723564072896112775692326041597097244175768645232764483491772764871836938767282403633330149592986625279939868465787162078323790819694567121844001004134852171851728954403443403665954794284406105315842208384616712732507930283668835657937685291909994469175537893191610939323036149212929008862479677411746522060463192738445449536632371016706482994246358834432160885188496904750706794610956691813419751977654016342138728681587239090820494322979419841517921054083074592776465750877920477468564779912726633741312748094150296779749282332498028695973750219481186376388934078098574106151002487525774214835778907195397894328161338317310137148171969943621013431187106159416685359596112448822253217177115649919357864314086367156282643310073294332800864022371087280468493897345811778366385186691409576640942881679520592459160252897332359783967957373279582483147366793489351886529894426374282828233235251458638844079742754980408723330470391846768124150944439727526273990905930683609197807866805792856021392060096705898008744128907281369314658307522128537161678759388345994240060594866685425535019647702763431771597423198855814445961943335721393844997634510863484892161890790929750234023517277366349876952892126460801420079458697087146580035829426045425939700839523381586746531148612187417685753303598285713501005595024227956869984592752055142354364311103934204506278697275336303728354629262434075775861235392849005101483872544850081085418935927672144450966998248352658307120973601266859970250167693020578398916128625357832654699355241944364566379053129482161463181621989166266712223418775808977891757867192294911837244178980598531706521060245806332129169441330912452344265381599671201885861067648240326841921486808034964531481297910283707124740390763866231030284447347982607175319631652271190740436495684558435718544618811749940093021551315476482126909316831023124652106646659386985522347741124449172941957330893902194016100618334927238176671449681996622601357223266928103751591051604225293508485447529087539261377887520908313335724413652357742062843480924212635984890727827368911349561293481008645207586353139781066623418258766683276714159285336987177202488623319798995205196057620403261785604033749359999110166156623933225494248347480626942645008628326732560507338085865714691100384278943469913099412565489745968928772333737412884257302577804210224928766512055538272612652619315168617018598543349080102527705880187367929582029653401367011554738678852587457456769164224912145933084747013498794749212352330142882724204860513659882089010670104626979290413606160103806825905187810592829499061095533446157966638015071373526776113432717212331646293305384457753234931856021100587065083010299262221047035906163221690133016580934265626835071988140231141549392014139108857664100283627791471168912565729296820215740666025262444583875634805680617172983601994843128157121825321193203687620757724799357088298463585022607450599318509966185516606640340454316580982709083260212855692761990603977207655990966916537697054108732384125334112459997886927701070947107463140031300475246509377017562638240992696067017664049958350843678873978109536821945574768659936040763045662114818675517347564199030928018844651552602068866739795848829916963456304721130153975251851094386881517858585573234157492006806780181347262671196305547342651780655840621693857511255096463451216630916921073911666578483029287095372016158806113103104376499961156121710028219688095957833736261880949844903508239835589103755393945253150223237727722732659653786832172508597746506064189176388702835829743185395459745371587442262093588184163763467101212379979017452447512906697571950200027141826881989427166746241755774721130001743917345030167781208165141584817254465391314035839239189151493323306885030137148417921958354874473526696758542930001627935122755608191278859913449485610728002456257537004734825744870715360205131416329373456561401404819953085605379278438082401119578623304901710939326561778281266265597052856381042553218468479421898384555276479257346465134162943594488069229987608225891884688743291049259846227784410663601637684513087023845954018627236849473090984100159790859170988318821095529815994987784688275255658619501556040405159236342954996760624084025405553617867467017335512046756269068393582676409858261623347786492111284285462883250138092370245556410143386224727447304781859270698724534747003429951642492571858013688266977903411702723941821811077833788269614462577443918781195451075295266570148416082669280304742348578995864234793787461003347441746369232078796421114822672052741285309035510882663322866813767641269841616863904516160222425438022427009676584611680923261694158111163049758137221102471526008549018593190089073855818955874457593215735159759915633915160839700276081878374532914335372575174555648226301912603721873915701712716934137701495341368546264733814832232423413574775473543028634488328707950457450762914424796962651708012392698642295424995133692129471903355215322934796149400746887224888430810360602691399967264052115141241165627380894971883652559476294313618230509621486857242420322251188789858098213976745209545174183435633174489773434221812412969686291810466896876770817770623261849311946778959500641134239354971043757467013973727117277432477123471466359262436353131558671834391585415437909924839212885749584938437800069471194337620534789186167444940171028809538438288944725449563086516313302661584927673359391950755570530480198461895279117339597371406348679821469506405334107735426494008466987474718486380820669846469903349935751457975101159333763161378334891306500096671478082478314234413289542235263493636618921697273050907340312447904938142338496061096359029184313035694452061204071070978112943980875512963062912497341132590677552752171607259906182484980233823220075520893789584727744195144175450071860553921393550769868730471622304338563149190348181035411562415988854273618088046995128381628459643135113795875717583745936032925383656706807435217000465619287928733704511272933182229555053817285315177319957230942260405773434740404601329701252181316509514677662752343024709079301870508192070882202111330374856998981306703428174919574559545452700717322985457356089855297410662951132986856936711827322401846894529979792557212457637509940969574088751100116990005595552989538378067603590210165094934551440991476473171399602454021054290828859820361038680665387238912924759456024575780148589424980092200566716536580097530750617721460627665726258792937529599493639773204869973509356627491357019554923258968564594918290354384923307213933708266893241787567422332017846402885401784817351152383750829735124972598750333847979529062589491092469705225627786539299656658045655916559465480681011872150299501757272945241272382957693556967080495576350478800957297065909284570835533286486034122993765252205318457244080965147491164480856515034940901214641188231081020477990515594388158608654799860454998980759974706622968927276491283540422858717804062431000154262730602748459311483106078413443220872300358222322740192483719062256726216990893265368965010963867609947107028330137825083771462754150721662398469639145022390116713407266332367980496253022719571846597543540786083416830617456182822649836677103630916796890140067233723773787653864977012088232875202669168763719759658825238078925332948786239357009680076188920378173123914170437653243417633190051560356905492484161999375605099265634896411147452998718194784272466271153050815100654841513224302574187481512729005616412066657437644486570303507856899522561312825892594347107098839262871412042220486437284721729595048220698007094900920123128358035076723340575631334434088410006742649546976431635482660783012136681463519286768984060426582717358069247613395057667406528733661780236789031586168790414514434329278193768907442925559922699506008785801310582444652706188933810815635057817185662721261289641818832025607089492830493558625685941545705453758550444602417481170923532864055369209145520629601520083495040250021398605949993039365731507666192263227851087794394652149253769976612278040060235993545693521004386385549305384042469449704956453646332359126176563306724275756773750417807127799787646674286258792161178323537119182444165908798921859705923687225672067913799107210628934661089626443953685990777650206917150987253719359882128558034304177975028836086499470441207155511242808460057476006614409418854186794889825399424707387890164589599251046744409873980353240839332462279644111787873203476559332286706533366959192630308318325936595270580307604186555191399453712563527767445219350219315391102987368755893604633288959332992878242133970936954286540839940095622371829065862270894336527122559738509415846246849747904909893160375015168847043030756566226719913020708807464056672892389764667799328899520219185976849875995274225152172277858688979823612455816281652331885089231931341515828473363069164575436265607113377027332260457705225442619396636321284463244118761721228988448337747790818890055521371081544808108452341457145711078317846594033644027354209400512991772168884465691248482564229084384783830766310404985206551085874521019263561201568253352356086719024472546618185242813554322221848910749049800493701691004086814264617111527815643037673041729275912154254314101396666407672978133337793830893496298226518785232110638920012526406949518324773482319720467429085647343801899064542839675444811079020845801584362382021722328573849517521595891515104764902163291124819825182762685922099511975008841875326721388865446763786966394691933638641984893957976767739803118423004621466487580146077704478893545002377909213709387433190454266655459034340197025482162643761009299743729688880477988913907325881727664573226372642981202645690589086684099862314703682716882494407163932160999357335797199067474790197745280614028914043788648203071138452554700675442260872419362162573617789297697671459556959579888574965172335132625783991065316880038756324986180905627179912095485108564272218501461408238810484278862460134018994727540822327212323070816080643544590636026479717842130524675566974356026370889065063249562346090067361590109796273549743327248401989038871176843274195003652457616559746315221721900726042383294664985292431476833362326052590843202938231221207999766583059884170348322857768455933230241231251057753830106012412215304781421859729635211863238673883930593594161002197354203117907792381079317917936977595323643593074785032794666712169578220251563096985763879677230761093336212978916263917514117634858049552282701251501969610562521974623454385377166153341750522774330800847720699580602903460953150057962151231627901049666796963863922067949886168410952216888896835403690716021290936363184009720496799292944924533929992727366445342337367929887917286667384714633036084660234071897284541377449220199672184759416533331916022301106240998757788245869291205140221947644600030427394034185089746082177085057775535309411538271093160569577951836464529996970854152015906110201322997914127599098619630120009217109232160216281947441372314890163303495941873129125533382997725317812721626706762608014707568286152920474862884337158329157933022437013207638729496257911184907960052132415140876372643754692906608252690609290884404280792923314580417801478621082540901318957880388628356997940617675266344720336577912728531527567980141208725076415239846981435448217322794788722565060752575852233274201754090283466005843408151429064413752488146529069895800497243529766036707957180421958794470749781067361351930278719193814109346969951559499835832134463302142571992480187694528185147118035583945648218664157999983238887798341466633431281151478507846089933541992976589415933192516929047258614192201075683449456771276261877861988252072134762583686032804186184585199913007801920162352087345918293912175576353363496905216485921338698989034831548850229142024791069598875475252585506423044750925145990339518909486343176953409488663555635312498354125897278252378619898771389931392395016924581110067004132547885552719738928276711236381021521174965845668985653935279753270324432731767080589960207100848372173195639874866824609204569859775623008105221458313637243340445053240474192568613646460923996188113331333649927180629406394311392410889309091234306671327100856886509324060244111318723952871495590263750652026879321779701405786256204118948217936001304218673429172537433471570486597336499182540740218883562818272065775985679651779310326399696628362055360094758304175810740884110199195352666591614801248049395235601124530417383725705083986445596798195170302054657910223167399748752004586230638216945786845987041090493022319254124886801493406671573795332693199836914698755190498100776372932876828847394573687181612734269417655351869072646839435878297064018214268960438519619410461161485725674727849890678542973484780235422888235554825246470230616710828013847722262745566099844363016784156523642471420852570402668192312216456742997048701053811309207067148738898723854761075602047583115069417756054388607960383449522233955486660617833685762298021211098340321089000769451129166841255246068573606471249076360007229979045700285505918207613652231734542685653081630724062529709676384557622084548372860406879531717263238234719474707105365681803586729560501381765822952797011326364680703634833040543193168226159659585439289644521595259397160175640094607800048965542541483348170026414018419305050166410386299834850806707430833766213112716656749299271496177526207589316013334147375972433726578897778574197416891768402296794128435410795245088673880885821269776914841332425459265541638696721798557571920574056982974580540790938324422519632064252936937619167271000727089976580355714561074971455679433045838236135889784400540049409502868233884415395679324114144516771959609475567251802035776620387663295101169534412243960850393957309830709581328383059309615854551330847786210564905586730895452319399786713715844411793689308288290107066542084574088058273105140350166760791709833398813196802451682125521900443032158167490261325023384443300335840875426264707748176393860682784746284856449971753595287793183645315416124816313272621993906395034088475171662943415888731910269786011004907038921268801619876114020173084243783489682231932764475879134851667004592746691067624058061420841639313692770377634829621920806735356515443860353551899319312820375033577430452153713778973424055477328505630549446059535870519431361284105383665318437831450190902680984398971135975779714815542524540411543842568763460013406336783172262798068409050196763466439923310089363792685100554041345152927022230434424612164341965027937858633658654110724066157811081628890243255247672087067694554890212975156794345449199554743718026994240496728735252370924515129645759232582517573057130303970163346369408989377393108147520281867054611355945057055626827088288604916850229785314435692474675415957751380145500864330484686718055470706416485313583445243691610820692591948969552249861271436603760317205203443698408741454686035138006774160367915858712280902204271076511490324645128072110247174997659278023888753248279008067851219633973126353450927620980098606523043793656863122259919252929362752050282477851317572283620771326704662361161009381941072976202382585911304914691814421089693550217375125197750662455669184754976313328562420143424968358556904766958885248621737298453305521927140279317468054365468910263489889611902094750668394115572101888402481327527408621914933907158999066256254509550517259790748605265913428569734202902039782357555108868908195039153658244851433549730383430808140091359013391595103931570151512872004905093263499862857649248532174300537571343511707661797521435828677657614389466620601262845321167881060572763973223253128343419506785933955280814475335897263726415849726838072791756569346210014751127530251714924218345853109111715997950409768153583115965919493796368582797688931859944171048297169957086397315134035720952939987643069647393155445218898720165649050100008896922899290209663878371875597925423607183680913656886849445066809977967270894703498885218362726988848927270310010415293655402965702111069059801405399218280272797003131166104987989754153974347585767159977216025988730346893949541056013173297484909437350092493725153485568282694744527786975888598478826659230260226561019534857107234701660215742478282362368470544355617573109942954962915159434199099005261258590843868600460420265662190396939307884972317419051226329930901307016225854083501668662725827906516838544470386187208360538513730226216529150650220813712536729148662601034653789233723724775203642448597610003974599936882123177590306529578690085274922509118656467056410895214210092557754338491573604431473635289771164498459704435651658474661558998839003554898300156337190749609957490434870208160856189747013691432753648129420009680890915441253917042493838731202920757857035472510116793435599807693779670908941210391335392327880036420019797378080613143275588316351840340376753188210233105414422234866681682508953350172343848124397301654368755841531593536652496387678760264233651427508883684944750825347486023622222182262847322786964190120100084136997477568204664264721085229160451066706993204251317027798952264833607901125550744978082660238890130363921124313190702329361410197836214674252450810956905851525794680007622646661537208497479414859760377182618862630718882449646206673545874926431858361611464503143738878106639718756822830955056924704667930914792114560247435799814246725304939943154702054864662275737868392463759025503662123813494786494899982150389790681480950175697929485334715408444389359540013058208129687629511823333975972547009667183737307759402108222601984849083186968125243898061904810161205193577579267366180361439493062274852378384220460147064296908725013706977487756007607597631617119505908968543597941799431368401228749797581252315059305627178197536894509342253007968417597136056852685970713644520643365245458413914339412392819975469509230160597340705116019686182392478352740772509691634684161663562322429597244856550519379997386052573037916249784245837034930984744522120137656528622238259546090084544684848936170650396462271816281226464287487133886960775799791161082774897199300334753581651095022573979220098261167121556644094321230566721739581307141237963315797308298617131428567518332215149016742394972885177480036895924390449435593964261908587417716563629687523218373433503440207870473480134564787749656964281559013550165795462511094863757237224937229715065800115884340568810106273879373801350232524892144471306068400345914381790554242430592764944662538856057929265311626690318819926020255015563111548390185780566284918893005536776421516056916830136729673513311366703809443937304992746714899882741859087034759595819308546225913804675341227279404741402847388355466750380945520528061523859488966483369223586321065246326703389608493184888490870170810874785201683571057043864242881660369722647383082851767618322548536252394016002048320681174219642774597154991746685846785600780027678201084747038568669515658137719546641920447574796771113707701827345124166633719486174725212993984753076625404017836065645944115733469102903177868592894139309745725934832345797530208230467229721139093463795441376262692947039326442910143236059255618539038517479789089656170955555956513969969402284763910670710826254295895454194731152367024411519464470497587423788523134802080890764397083145476165259755543758819428486162746860039111212923568860066732268883820697566708894606601939324645017190877774841834654420891933135255576502721412634512040482139646595422868047475040333051880516341575189919045249138280099071638697226558276996712909701602930483069090819003808002057551014760932387345945646694680177241674443420326858797634287676677787762394784785533890103069686088614821569020130701525054668366187885711781818340482090946138420001727755097657815138612900443745079051580401446583506883150239875269965716372171783496084545909703821815717991215238324263389332138107112114592802277503418362091409396456063450309893691789692550241968085282677834032870677054108422453356433274613134673623577038208358318825731918429758762965019612101701620128858730998753448681525580050718065768641344089807405654060350100261371742035812706632848786941509217877735926248042590740743355896785375223904611821976091463753817063345714748675382838940504053050355495841719342474208205328104108836200266885669932230448990425742904265160853613340932072512271189842789628758974656093924278099911887409464120868908727712941617693589107522124180804065127836225412367746373008430220927190910207693497776292332161388710277209457266767714982123284051896738805924687279549350428669943538413516946801687711544314277390555974442649545322806397966123134075838066667218757200408487867681194724027302149031350685163912201492840236179321419974627445428529177674124680339307416439961602288054932303746829739847955112878311338149873370973541056376424043465159075775757158963360439870230563565627613922750355493714573173139857691177709385087543782068386307553995949355972318280739285426313921338870666650860814422253629681555922032169562737133446266913531084265349149749303833263750317882398129180256773369182256351938966455668061347090959179501052918204951958892881283900233373456758669772117852005422782121279646761089509555901367509894271156094954649985063561404557656105046599617174519100806565443269151017791337357550334738000553272675408270873357269846899738318731207069167534969395826618209879753312314697805311776409466050218442165537321745633411015516515903231234111407849409476453934339121031033946931627968898219535845397184052640088226518695823666255256151808477384379773382490058272506932090368634353346763112916569982547647400600163913149295143249041313240768181665775236823377078950205680946323574030255507256576244585534720397052665051837180509049881843803968246315564062486361868830351095942922449141537374852466845662054440815778593908749122819502086944849102434459689795270855848061131495779735100070754778284837431723985607082700857598615680391979276225062050351859610546973670005653373022858487226301647025377930772982476656490963383295099465311592798490091721034451997747642060434756356071568488192797849196319723884419381816270944768041275928872241029324639354009334245041078901742533840274473240371365086874402721885049986975067550151386410029840485976267342756389072392196167757275922071069698333755083147931790201785729330174095892739091045325551607338995334292989736151711184363828490783532072070012773394460582474443203084687383235376236329564316202783751742839666082743621008567276160807350631434608937189095563456464481877306906275029572772479701219891148157653721362130786709570162803095825639875692397127136220329797795013585770170236798302509166726829778496373844468421379346684539243428936542641655703135851846985623491504461088525967190363513912209670748495855954207523595701085209876049135078044379638219867762950130471029138792180151940875014166968186832872857504403211944535642550220253159966027565889936692958681983524296525090030182461670193559756522537245165245726499090055487197684775602983284281553882712464172812542872740747613790731207180498141573796734192257913118390566639966076047374063886234296050378685910171858359557616484202881508248491551936349707070638508708866688896542517893272525067389740459146989931328437544620793762478201975211753792020778368038100203151827201245524200315109611742167561494822458919040850710689871611566225470147065958668681810071133683951905946948729421132172023234964364454378640787721831752114493424707577626172216707066718199454326879334553182560883077428605462515530714965754509172868026161859300536308630553135624306592053342859058122518756193294218642044350016810684546172109413731074883188461180532658594272433233607532341880781728913373603812356067907590179439181265205577393941382997370606348790038992340565320622968844991929655562020169737073729736190775564546521245330438092816052704066254934748106168165692448782798436403940536736203721370433913046027249852612256139210510968580656105618929132992712801304966006314397816891940227130199015488024840311989772753249052823071390167708095950698097076617006647784674875279715697390509104063627244564528440366934423428229962640038778224328743639715168062725260322092088804992658777580333557303103884822478130278786331336028681339917684487451115560925290575887729344563311661550017297792316074696244164853820717092411973141928299865832659403847146669044936882548527596698268980936058725522248851566935269136738670062001561199512624515778856608049372155026757282613358080338625874653194393411580476444459405545649034174121908773079406197207738468937912498319967932800601108685090250544465551023629732379693140362925521725592189104875862179408720255849340843468346118863438945098964089857950862819207099451921354689986694959366624423715702872136599055889230062350256627437868127586827645961169161280383556630659905849537121425232302011249110476283234697478733785071835075681524765744033837722684047796000447288482361733574128772770326198744891448300855580297784586565635484557419136803946538773318247817273806305024909375885370625937803933556468970961255694726506203268789875484540305338925935713485009950623654067276028792531434949257236741292561480734292081469046198340429364724479185479784513592811296458810241418250570110384057822324136193727533119042288369954011920908592483870919079798598364422670338032184317958686605507985054879931633617709979932306344517057242519712488268692013935510298783354159723456566136661014770995379328437393722268476550388504110949479508428035810860446078408700878227200869846546926087022063555013078185499985318370425957301424637918267646741902659032159290097808941209171402158384505727811657442212261773933465184679733375356433330980238201339543239798327754426078555450360823758207828417082174593933774336354007982370987896640191767619568088501833079374569647704330896831980977708581286425741598128508356692550791533924610755430215591831760560673618698783111749794438083914033006397533695855098379485090948398328468358849265932742872188986625573240990340482537189094361889364549859150708518745117991754004439427469034458889375255390342474214198075210268988359223603797617641643257454561823619832763039407051024260813424175981839148528645036491846147328700083330280102838362055717280999033265476504332634761757458273544770798782015982416830358651702739879150772173553438689114996816619971970346442410872648628402473471780216428081528789911392377540978346396196290558835259411069043458129469735475728352989365395484567445080171603930384720534897630654935662152285276791243400347461109965910974924664480554875482849059364287415910515419436426639202242804857934220932245565536885644718049601627198261450922493334178518938720487142221736928596183737132009532821877603180805144083834207762049645675558268540489656878323076430127757596407263713453979753728295821463215130864821043865048937950847183654349947525174425867421249944606275166815402919694899496301361034200915663805884458798183394193008332829474361704994340752200722228308160825965910862691162043701029600907757775351464009422710530989665591139482423536698394896364835978105382343947374734313248557356087843407532836910129513501210376340992909724493281452732063516695786442710891057826204797459841379964269627504985555902782376926294729265938248035743015291835288879533464497217038140796031902698833537151429489593402015487766495837994585677047053431814974188205924414723674070271511044456908830915985828448744324284012846095837379927947094349104563014206300016939592631411426236747214647047793468036664668413844411517724274313867620642572105573799499528338205469132507472628606121189377496717987429117386717821431071814474286161761288333376598186196925678402973675253224973891296843641360087970116823541998765985816542081466294201484219359771980444168445257126471543976316074760637129597399698541362427825681946783547199875693528327152735155867207642815973863111048167806675979588602926104370182701545977460987420564107170877708927373348660956122276706900511956426826241310678109870361908972774659941166128777627525754434802005789583599621549134301645265918530838236784363885289074000478819759546242901705097464154062950159666236849778390295453215302154387668703798152487817735817922260575339618949237963819555787014273684798320501872133557927115382568435626043679357445497318821658111556642287416120664524762925145156878474548332133953224522362186033708565835080151072743703016785359202378458296003433544493437907444704456554145819859333552636467417582090295430620726113727255123963078931005771891529169811812852975753838088004600828346105286027016185838487395762324754606310694451454932436989030764887982700024885181717637291814429580098007900519389751841601935850400389998696053817298558990765734950267571396977207509824380343762378928346789815749283416613973503494969577191632824620512654409787874929750444247043676357890745953457451929198455698376131078978750893237424290179512057467005194295390774824808324471551115961696878603843008486365226705497617085093093454637157288363230510267420170486439954957219725701418659734474395177126947724216419727078609982712602895572683333694562351231783660030161657414345952707284242361810028055332690837234933095883525606423012019269675714470070357577893213430304993380324455792905924656639590059166119144531205736118258641315814084869165510835525286883495911459595590022046307182973477388302790708708872725526868986174677865576570802945752939046176973782229264510454624292390436949453777953501507118338831501975267015393379786684602584481163374898462833213262755517017226541566500940934010198671883062889811523810428190326662176906378950252058982618246278335783710207834369022798364469659967673603180276746227030044683056180680270161680767456874681351141775483787271235974669134083504505978749658111393656750428786819990318801345751445234100247459208958297034351684203229570387463104809286060207129011367993786756971669761847112203606854479965022927479360134441969917171201712584349354563854176560292397666074507923696968469372738842938276514459407602988244786837743218802617697773536935412019773916651975779433015854455688609149001277637270000352566742323391955398312352162399746219266319536472056901545115482726326246555811366525634171841602067777599088674987562407297373404327980122634069348939226762904277714035475212111459357630236480137921592294287881111789405307587255626899365650236414912372113611441602377103811427699366011047022922515214034611836574820649857405148294606719673252859608791114620554609423414302248854977028608971356724942012640895288383584071071731307553136706472177468497733242313530495975689909839846044060845207806684098252532399262674025838843061070622196208210976567599886985703801918120530150575485320019040681520553360480317711978035499904757138559610573756076737262812822335161536774649249970119026037737073290876368379509621051092176119593689537636299261941987328237900377565435641507940531717677855772901846215591080461564777265226569542034355025557655092837786521903823494420549371094234961424470085900046479403560059787093861776086067200854393489630994521027620480353011821778831519700987363330796299356988354305694788036272438440242748070186620096386260343656971026850398903809420976638882785833045707528233333561270492224743709457673439679615187016843172052007784573695813726237403836866312793772314695797023547952151987047041268515491520626427543645549034307166282005725079123280698216540898749708800300215969204510120809633441990967803126540815025608537518418613386850326566832213051267513199671205391597279398411556080939492309457509586575439455482751146818798947815122953049158830548926657936529398747142578002929647011037604684371265803052904025139059259233078140064680469905265099562397446181136693964679128848312019927788634520709444612107922277650693943935365415663324179621766258529070630359533719174222511244395473622310420167373954414696714155343080666161448140989123249605272225471137825616038076189522632818987370247210961142123892499760812929287906522094712924258362151552206791292037905356735320703229649045215758859830959047096226248219645140507061076670736510666325588626839884756987268271447916705059547018294690708591424262321686359672936275942429494489319722243310669149840752718382595282584626178831259593184155359376387542769613882782045001046672846586610614353798689092491067008985162397262725728397765117212296705391465054461906361591406620036286305388819624383151888639756797634041142079434388738774806010095144609162004626321661013930608046594022670669795367615459039908902924147961773798859602944378402195546038967058240223013511972125197801528945707798196770159486302646203957023694883352868812260660583250280344586579179701180420374864240548620028469388150896684774869547700840664958086610448329017673116844295773789148793588364364341065580994658583626414667669983541937814378232420596178057637377047830336257076059170519185754009194013220608039986857129440529202854736038656896487513564747402820245469693255313825457901442400437447032806973199077245906064431752495940757039130204709082203053983751437299002623387966459283622339704940731992917655801609606731724081945710472306822421271670311563151527642255774785905483772242824288627189573872122042568605006001144006450380308733086011139629175966614034909021106607149239854762755921867184834375444576044800302573647079974401384371582935140519541670956133869115803142596331814708610482743204256297694238046274625887621963361414217261909359269050209392905628084846513255217587244805375280066956261826887083158132089649384031050243731474124664207008575522530954238764976082462035463532541768025537102186902128095806368317489864488964149906070434655591584071285714233095265727325518687851929290816274719562726788454285382223955211657512046260121309788937458194722023253194375120807083357961147243101577126356418788976491499307502260684986915821122804625253647378150810788626250684265728097445564635099454279985747762187958383763930488751023930496583048236147243937799449021464686585862144429795558171854064347785339940378570837693992147291347530370391194155434722360551892400644224960897661143076245437564942450602687271132728495803498712763263846304197987483483754196310150030564996135368296879938359194811596717212319106979134596343732188321216737735289500612241561997746276800862948424059030544691348393622219024646374391898037428863938972321323640360786571933762041975124162931439934474473408894224543613923214081049822408613339054162708868992759093412792492551630641844448417395588839548065345638763814015396155690416384219229360929616005778258906070544786397636232350573722685569734756390150377102454789992617332913380652703733827624323902743532555738948560669072587674167682001522359283460954135758767281511249604239072335686169550415167135639981066133148156732687362332803093783766518999792397710928611878284041407937980825845232809505714624059056317496777365102737090476278046673997177188601086422881466098899096225083387762408010733183351279298245311946451740176566707983924194586637701146324075248115967221929618018934412032386335833294093231261546125410709246199437198162069386665816460516278853332080666315864863076419795838077166394281469213722404928288917423677374575703922853385441303730260947325841267620933424471240214778088292361079830252868814700782014369389059065669790340830559638483400492944037791667948597964851407014038684694196842016404196788484811015134204122417632039459686914004709369260810750498575317342483243804185923532946866607937644857770271529577587053427194428156467055806229345375839203772719188971340865223188895167580087646062340631571020929961047473229185168854314768222099425432982129666172724535823430449263333306484763453794505881866577365842992131914688445221354548674928203664165201251477069119677433569826051108693411534722622744053615805124496924441664231386543773547433023676227992960973383567372380866474922126763395265090608752934912280721039493482032245846979405120726680697749697421705664316605395478514937681578436127206765601591645743516333672827917601707746180283423948225874839408532451398657691228685548772514636828175558277212042751303242091063821424842907735572095542023950058598137060283886967764180452565998435847702958576943467192869125429840288882607013194582367987470283297575586179002012355506077954907120965815629888813984972076032663704976544205515242602134444975153376537840190730842418987917420740543181552871384153590367356250587667467443386039892897441215363118795175212501263608686544822323454505752619252360183872322702528916058373476135053273663424784343053153947486007570226421094533562783602792227037262410219973300106768665058746424217878221860867019615810474444602185690312315183214286018169020411482414679753170233772646945824558143100919301449558238751598784052671053340675805194428423959138644497230940268119427541594726445045213594628841537516664232801768515665294766703828893646148769922904532248114995027074757345566687823269547366620280697148053281492804482409700329155453774391839858570603327272381582674662739315507721307577502424836427554449106026099602751546552643753081773001220791945739211977847618074096364539138010952205449302440413822232414944160516903567591983875366782053103378518026075709789378904155523030507912669745265903934379080692222667820111285550987631467065994448702911502131011294091567727559820278677389225693412967117156766023513811053223344777986588340778905234964578964546195235907415484377799968788114105657303029159093473329639379618652755307689312993561755115032928695664018254648507329751363506670002018120240849939121745467560399979233674832924131949604679364230419467970425587164097382377939404254790711606487568485834341000376870801722300266179819344180275568195578474596314627093202342059012293271488858096279030322567470096827287068533343729208929329037336919733770103524065223208477345609096752562567667730901659886890001213515767752477565553287108866907061115463558104785646682481610306286266153917864097427540776413423601458258165699457911202572912547367679235270065673385963092016879862404118047591088489704600049839224121931082677095117703549818630077221244078216442427473127517626420444559017802220393628794122860317684938619210391709829283779268463290500205968211786164082425976948423290830163483123841135359511182628277030844545346741813860724883954162231762521122400064054903426078018517235607192195090178575329142355787526335897856778847700785076717454607580862377644599506395116790950297604542775829950723803524646832676263775373904722780660975105312931091156772519181462633128405110200142942450810499511156966689345961093019431549672532057853529348843090005969246731129917596084127977446761005809135306986488537360847408694792124146340384913470748054257912013830054478327904628092161005264116095312498766266783736991811278204698908599363151847810117974826178670626305695741419929046961079857589371830180311046856256181466387957159788456037676501495091612539306266650199562881155587428598951118931905376991528636195184862324209328403889864932495771422867329691187681381361401046761040424283402605705038811978869485710067825722271648097420504193001532011359056739834967939031854246496662839602613324927880380476000234925993341975816987842395118695064968068045704796617930924087370520977293383464751406699105061556857471459641231373244528015501446576427514207491436459830599788595424117960534649703922425079992667251900224580810953707646452428771689248804707022116231417192521376246640624566209545849345624728119051202072326491764973864335193137580832692183560367599013637168938730200782756973658705743973220420532836003868383933913833357171906706424863471983275034984100355559676691210066304597161337186800766879322742494812445412254315023948289722591886269860188013754517518855395024902990535468160223853136141402272155314910966442194032729129028123052031995860746668901026631843452467864521496809067224868237564942301882333014520913095462479319364039419868519964636021522687888819308225736448424547441396373600660426235295814592205619828483855731000294645487901098862537904421320124723592042416659773407645083371701025845380908245202292031330653324384873894713361069082670313026775456734649179500873625865488367679961493795783893141119102208831670456284523401752167672849817277975333141356510246123228977767235523400434300390603282627582225078575350705333850627591638904427660767508049417857640224833140852150678072168962702660246508854689421936605987793913204802913316732778436823609330347971712377879835261072539116544499453923226194048618532321479854587109730975346190948691260282639319665626399785062981369804128827220218932070735226249633048098352500801191988132272069436020427497444049005360675777738695035557037439917699219025268673689128537773967528120956184944363782746299977251130878332426741571745440483244280493654195323905212520166705845706504664580075237161044810189692033978054721027914043285205556597789933616292272504341253411887319128194339696856356822219040429243699943836680620882201191476031939632597719270473719308301240052123152379706030113127416014171702723856311782931089489381515947335211921905777748057216264967721648264675245547210227275398427504152362725484614647516046846102084015666201493008556061798345631117587017163904569959148200532972465794603864598619713446298757829937467505316764003422131759604007081118121488227384938399279942028745318849423864217496633715977210666348175425971878853257326001480723735038987928575052541924451135678225653648663520915948406597195780483147181163553149957554554178310795543627387101311492508781213517869019138263171564898678139320642022001397006401722916861765640029632968655440199827947080623405767306552999131381446614239686294523451540108697435898291362901795436737026624117629777299395373268555187315250818407249786254770071464153380320142819404613211207544861071219632212568903233207464094200565682989516072478525386577092316759115958723020896866876870438684121410438696967655527320395454849495654534743166578596658233254484680459129233911586979392579831356059863661101591304352389560299327468455647590785408105100586029434317760828644228858310665904439162503264659110451408178504777690467484492098244556051116155895499647598679263812461685737683690269267764145073729504107938235039713124740582712917004450405279721582525699325787652860627622648663138151977880978715732493441691713281487309442582042323752787289650034042303839281826728120316343964974520363129736847448262140649333038412382332028418489706234339509021136930830292047921102609711452655754035167555892573731683543632551002221104409676194914703368976477165790559908160018377304417439341687401354006725202227105319316510853330233806530569625109659861325568823714376688852085891375572836798990631539434695948603488051706442647017469001486921915237735268429797878300375688222995736811261299599369979717558505522423876296204216745830209991266151515669669735802134624117327512725235335189407245740774682035078736387460200111651757792685076445191497278295462264812522011863350512142555041010460243888844817337062194184264558456270075804551832767701615327592602610917108571524401744097388372531878486842207157169220214223346262960218717461725808703479316973283921140248194080292764238496208907884169277372478149788697885637689858088495986854888773616034325995327989684383498852700430721797973990772164253907560316202955728460863435396266478152129277829957746210337554445299607534140243048615506440676137676012643553286967310849244493134263839836242188305029449715243461636103767135179186728933135138765491585066586541341361029142252864984652117167028307664571344824449681129818660321950610625251664622660182180712581369571869498981209951836444036978635085907689818412826450167407574148979985051981270003665397193644912539414974705106054322355403131163417803445851547129172547250699894195550678864835874670256815891355679769219026073869231899538740961775121593362667930277833178127479851948144771707667415164437811236419039770254731739627538358557339317943215590663259410143584445029137886433545842863816889465720023472077036293140490982360592236805781211238102628417379633848693133940196529451277821310722510411528122558050349587691550032370581772628767757040460458437815653616733909853210787028959093701337914881444491814597938390402076964173089418772677103639436052832988428344837161122821592163754185888258163066759436285609378861219474747248830882522132512804469312759056671974653190139596941901400539797656603245140948852617698480822906283260141935814263948603629260752482947009950676447858478579991775533021559146116515614867637564142638733912974521820324885796002031754582461921960297662431943911459436168330120927923861316089617828554109694821837149170146068392153109825882190509079216368455336529140244844687198585845933507843890056901062255192357989830150638300332973911483086711550793145807853722290142873260346075328481612933736957315726775538857181566200752711548293835523538450224149430404077492267257757008608166942641774966621024650551110160443328180863547439945659081061146915528853481796508771744651031024072243083031832457227978908340144528577555872491970253398727515647828544907393254720418996189604624342917053406342488562840659900112406783126483478703885395977729996547550136562276299363748351631880146860726233921705882466997636048341291127450083137572814695001286720051935769683550925276812338013615373498717771815988997163501166668581819530415997061856158253357795973815073017875957868976568311300091383275035739128454548148861834573288640000141243033127153814899903041097801630795456706309630485301190446590596912584388915260527617843361311806700046347770846296092844404303299766761406619951236802968871170609238028693393069551033803467294170840401576671226653481383270459092206573624410637838889160234579549905316736313175359568421282119957926048881097776127630587243964321966968386139817404704878882734025432090749136121385681119733108072585894077591682741729692677072309530252130650008492819317300876586600993410627931174802033747321210995569560515464953358791007630903663146258142439381896927145526514002124275651305766227058093023571397040465651197495771769536052298473550420408211924257286205820095576220115715303202178384374991977751177837448584703514850977757983815361396105888593282482728837748578104654952628884338294338038241001125341140366743489814874282657619177789579358327682718995998462404663943161781542870921832403933605325962564030625109698021132372491332276927533677131267211780462372758930256935275836123086296562522905314842739294215634438602387807872561223135486582288935041036449928454874739420400704894388708778250308986487599110728387788041783048272212166066270920484558721539382796961335459709892146184961117354239470970229040520315580162078946457677712278746198687563299120955689368597895079346180377605876096784345183299337107648054257450017970902322307159757264670438873744854011304032827424366176951655250676509060115040591019985718815696902337706881898984760216295836966036628345555529835673018688434846409164337095170367005960199789182747066558916647240132927304948431413856604681497826402687416451300078926483841705856276446750256178598878517570200577408307975865862523545094352993780583492835126548981539035554959561284096948893606897149822038500486452058615868975975725246998001715652068064399780703493096269466272211778886643291688746986938628952750300926800405174768751574295286526888628674879627072320599141365700833904443052609634116726224357098546136097788930639883988756058306596750830289062877943161566666657121045549494687790017208418417599906455951611825991091353827143740452711432434044533979145518076632164880256828441136197865342312310037195210205996421660958092445956528340770481345809572793673529992475415086688906401770493289156132394698244842883920626109611710874396347973144175806524554737691188363617214271937215874638751182441769755748989865343264539426419870168096395856311033299015934538971872373964361802681283533586724483369569123751623390655845608000720217728769738755378255176302255185009852905849134482016214933800205120378433654636513202461767117609870320297973177970829495108500702581394559432505982833155586157173228847310277712106065997913624675015766017685420718464070765106657667306744652584092218189074345414273447921419341562542623988587022222673792323481378332588413154317894109553012305821460617921513442827921592861946616544824116729839531552232717347628323909085287242451279708097341653403351343630643022966730593230951617258827743316198226940661586861663860436801314314327682142392495719031561966901052652057806795248891802051389155715712369708415515776666950395773498605505371692830959585755364844211177877791529649399367726237641574718500783023109542552731536078520304971478623539320268072406710472390680463547839214346034789154619729772549816852899551624796117996399037854809693024313919461075361220185309369882107154228018407185222357758324417062329588497890109960950702157450434334457560691481071200515244597487936762839881377121162256252375210376940846673677178548890237798965138115469075185680882234991797302727869935730721102366229026745512712029871303946970031924928366747796212191954266695253442021964808515426158287940863686758831406061971312071583282603681346959833375282804790337111847006089534977117643816207978068127436064937885516440450751789039572504045233282301295531318323652727289359638268254806536621648927503824967925132090486286989642238854191995470642344123373247267263945591763127603913750006253598511736127118861503050745406953039999576364118115528593206588165266674503972833965415098936604096358905362092899679837979534778369275482668371518155683038907997771257016579461418517021287235526615947695981839703069918535908152787412932932935483760089891410541720048188990092305316692082046993432631059531619297317780352042484816816507804187315367997239067100514070231038765173365108782177486184341556118918033350698263773678007814494774914391172856586261179537057920606378273822265565957818804993588340193729016745760591856474392134039200934507565762522460001046263272244449669168924763621265654250679560377555744186255094610184673499124264776557349216287177743165646392770268897913870728223086550184750644698828077954985948580735631043688007317096571874355236026621759715990306413148166983058438279129505615658881773178192841555866572963288965244393236517324274735368790586424530054496239615684290747451386536502419328709938212238603526501351951910411380756085255112470477909280295051652616501655791260251918610007476521258952026288555351894694079884662478438239434089100043028702862971099830667046390282153784868530228684760625219525470314647713065316550755306682341537976469991842576627707951807155265172748238566371309088901937513283887332024669428324560442269222378963506403111076564880700757640463710196399755565539923197125187799020350515174689370427540298201548871957616598346428648797636530742022218432819179980182113793361051690330641644069939482410453249784180958914965846507817499486571557009129808920414737575271000748996180396082739958205942034427005870517665015782677771469300559238947441773627735391762083539087435287529135215777428161607422613103282330633553971200065079251826400743402856690671983531479805424812791726894064835064376255526803993135357871822557142396518254380125699159078621797878134999326129280210630171438669479696493154241560928135474321366047174772164498005673950942203104480442652029588769792948947201050137132540493039832275099162100720817176769931737172245301424733836384788449571092060154264519539685509889052860623928940627995466859228791251125346224476111613940516975528378771996643064219308281766639752391215912422638040276751641147768750823928015456036089845551504183817006161567266226943572501810697194519060276772922475925908559812244393313850159626449861620191980727077275713367554432115131296773648500992871807352755513023617657677102945058068731039555118354434663896383246358837306191854974004567213798190335464841392662372858383573008359164904207933232577290902589356802645207533844419222801609101477294557850917756128973574233607744994752093795622788852036950924371739070101110927200919125616033322888421534783461899431767246391095690977212356604534231105586575538017293013935433392361468942110399233768442948835479516784576206774504199594045696356523369969166533227286539651548033525536963644297618322371867174208509240006296681370761180079978661559762630006082630357402017147347926648067628150509599173704477704166819346217827566004212653703870662162497994846004507278345686052980033214130152204813208946595607793990788917174161343558928427987481224504619892224019312322293643080837059805978838995402999171894854398575715736201355949203683439173480613011927497269112542428212642880854737807956560719635445976561284781491005460655105678917727860783126893805568393671980522631527087612912452448252248643452042945850507151048851468627145241795382605164815888435865400321074218833300367646990338484113090377844907048677424391791197703153404871601806915524523417872425804723544159491517145527208175186010386027102496328633599279927562109136922679352703414010928618672233652349056998318251404311948315075805716353352122761172867816117988740101161566317051091958411141624736316304864616552090904870533370944127656339802116580125454583986325437908942240283693038471791425903814144496532768283383091792346327049282269484991740897183165093266683057051723895046439190183603357578441629930012628618512274120243288478007127629978026879246903689169463935187356488611191221966284769629335933876625137083362384267626139589723915116608095637217403049888628370213069907418073359764563839264788168638772135566505101023704177304891758950878141515065456975299525010592024356918624526837318874086251945922910139384954331529552122969379907496496621361368611495112523468002817221906983976040714130161299175164325321170508802589692052432014705450929237990748107011874023596014541826178238337372990285034379159300066483199890711465995215847889009981908576328738216317271255119907256805139342174583805350559418167018803177127523939095826405084137919923836315125126354345154992615565819870972042268297817465282378933618629640736491774052852378977478230369099065696668313260727429126035932992389076692021461498711708025036268320808431626660112639762719115732938159499104829930560378822145961755277878064124308611826778053940677580162333283127863184384580008560275227194741880152950828912088507565340593994386798592828208830146659113757819204644534840950126785728296332625785720413252912823278724904017833758130921600346337096549140383203924252868977837779214043554066729105572959750982902924524112684989003877134912780794833331473369257675099099735188756485971772810963952428615891313484213402355103881803021242756446650873564312492328532263646135436576775794447403595077281876173416144806824850909486583548072034759493944902297143738098797258512501703781013776745681241109777458168705703663513484185818792279460246698458152260816708092980065150760986647104106241323982638026647379955980406429318079310043382080687638455560946376074867567603952709440063203409237124105018021243209736166040844802559891740658468837812457845285583585684161210058759889587827498438372493301644339995017478071536667240404526738165028400115533823627980952769755497227130641338387398847951686457521138366892955160042847680056751513874058127443870133564485181158819184274468669425881800836478183190813282290959505901037017315826423690641641025365392168318122954025263385667662870098152848561380308418642717431855579930993891163346473260312001124643804299257576242623295410816284119204075678889172134745126183704420338584617426401095207183032636410409315814007700294223295250472187298714524508093008524801698097144726849530558084001919536303646213865401728875295518663862533008323983589149237436643413921389610308857065377943210834338437024108914419045018471626412717274965828003916499473151609062204381316125110805623634675465780252054226927937954160897405938464756033516040815599987948610810677729438207369228846984879929508012843929313837463637773751775258739192884868063342408947627482687014948834489383842464484474298996242258514647659125171481756124560261376672067149630589769501283451079005681293345074366649783326658379256437345908633297772068335954042341170249403216828226355560616826901930013365831183965209678674816769829639061541769854339586567690022678405069128633063534722927601010134748312412686921755602579164439664516918031479757461499890658360894944510522621995343063001864446534737392951924134916400899922050448222282073881414809210981171929527687145775254230526800058919097937214619639247783203532504929418953525236390020496706215643749557375057122291942384497388043104968194733728597626999866545536290998831476781589247453265344480333887607217145451677924773373399164779549985286105901423868553081673094358513594777603709544561382048830526365654518003077061571360477643969463619240714351152443881867055187331021585379817956054140484365181670947766590304128211079273184557749309481615093140898470164020096976193559151321829662875855409168417866011627320381286108544560000198654786128782198177891399116800000674623121311360550399840267942624857567158284306514611772653744375362274494436397081593388654429174470637343220739125866899056536243241966825230101450517252976586347787330498175497839159814935669609561356422831277589928438176075196352328494521176296413711375934753372419107655825037878524824611996033333787178848550475360249085738049693807727017834312944123835468464330726445258822213604282592014863445972475824801785244058321098880626976320560033963978882594110319946188320673252714298316735159538047074747129028325555832973667013278981114460453152618091519800006062223697897905047973795079711869451204966633966468097873994975387596452766428631321909952963849747884437417558087540736587443230098926674232731726991345590193164005422140452864128801426630495814677490007138650514834860556205526143622553514137398993097534329753236752547270760974491793024745920075063878297345588867749411719113096832625690949339232785940649712612600802504454867214589466049876336174845132963231345224868051440155534122422878601265704860840760521674610936640192891350940530249078308716758206340593493095957469912612913339370084538913417473640510793211709627583464131220602935012105584093724841120579892052423646188126481453970838319771183884813757576595136915655752746594104805948392133896931879852142733485174100302059632800084481818030785637819248759621006265054349760712120863521878670697948063652554294502549448739849919631532174127924058336777104960476859472502352939858364993551896125800239956548282948743883046657157236419408308992884916681923179173133728018082890756812729999529129375539285322593372777451728703931535958603311291264841519891630583951897905314685598762012087760161770562548060270970006357352942285649714453390226200781375256150539531071373173998216415251533950518197725576209566419450685143054186639798694510586228279393573349452987743412173150792930927068337042662198128635341790608309308175041754697253207316642357657389651532085801735105427492404279986221484344936290934509369286511472817538013893270802475650358930214544631881856981482171783997301141219648686046372549277020422416759819808992147132224960653339405270400979483447716563289264600541620189426771078879584271566965214953408290860555837829709933836036693914205324384459191882119242704424761098385639370882267077847399354391163340757564536195563548870799603890817078601094831182688791790688226292043842831140430488074762772357867756637531403854036868980698175529668713091247248535389036630150449373655067155741349188279082497297682224991745626841213874938929330959091486265402484964398481982761626003561043551700443231764977181507826665825915144952793692175779945014464486401286359568111061281155400014732742431444127891904905118072336663503743904041245824121743090299775808674407295324903713154558370736210963612016592892093040805352441762030797008350289294334686915208774570984064586572115046505991708530453127428924288017332235890939891933628496449980352362858152213577401701837022326628695514094601551045674071079428150535772971128527306969140181245502015308771295530120027423211347257033631410034731421856778260208589075680653668063025559667380437800552936682002250067556335369766468798799096034688191743618986584214741431921191555567945617973835954217093127239146927898088401420908803333869714834793081313431225744711828479732951684138682395081483689850767483712159462480170799908201266254861698380237094794863228861191037968756586146558291153654368602275279466572956300474003475822367255131842634833433009529826889309332343067820793608261513193500003509369287521901999202463605356328745892724149216318109662092503996347405612994611747473782244656929461789253496727251014096099300741461175668902888612155754997282706636626436041360928465896784488384546269676106498972234748360508326753556525281376849679945881245933509668088287040155331731603694215140009157076495604454301804773551522749568567042257780799369972720858688906474612404627608695044107703022927088093496149301972059812321969222495968435435471613942518291543093537360140493744288282958038552057393386019427981708241379098455114475231921603802540758274124488782158444150311635014696935936662622045854745741626172388200811461488804128744055596162353317132440321783538697786660822310520603390029766314576310874241211986206323658762577781814689119420733472182294070815758862532011166048737478334102105589630667744679114143888035226873320889044996028065222191908282449246693517341684896503348609543076643498293154542615719854322727853431956725018304144975154826929444094862917650564006978751502863789789386107446833756802442433776936313668957252156662429744336740645451685150127842599864485184366411199404779181677020950722934193345125911408256597359074591834191777507096243332792853594091690383093255009185036213372419456321815930701541411888853003825268560622585075666735511835099369005941451828115559466583501403795108944517324565094325247448171537704302244899775540403313373094240231697591336788276211185125312688061748186801186964898254987979802730338646776016978197701322144122053654146904582136431334276631625156103927114465448796834505402445475541449409793450585118047299328043513762210623587454137456724090354241230523152342254826870450047781279478254704791306765473865740372678903223593810698318976676046340885784722703633343983438691465873070875589521683647971816402576925295026237981459626593918092130745213507180994853051846020336517295641083356934364967993480118755566659101565576646210471778495845698325125976667615145506778261825072701652129839358532458027898269559465365498095027171700824200928660726254179798031783783408242026634826915751410809688034249114441463681833892758449591346156412793522655102622408014733859950625149809183342229915437737493379955889343479567182595973634118728946596553180518571456166580711134454210396954349477400484775709690467077838063057827295765557049279505543998494151974498050222961189094902400102492248448569452545147053325991316898543080214844788756496402194473557858535086895911226277001853919794104562195152624272467098692522225615772769263224558651868440782878285393599519802105771117899733206263024809743369442406678525883195644359996784726198610831434153260807742992734049358035311026921310627093285378905799464459122895279044905142315166517246354016849145426520515622294493453515529445040225730609280008325239162308045563181370052164819552011592368663871679523017824181202495309032531349040125079244565590977208972426143054921677235669902708055756257253469904227348930623304525726276311117633473163202357305362185541789624689490829192102203882449594474400123739148677039344901819879178973051837005698881296662251270007468300783986183290674301528772747608603019187260037188008128798641613653319199866791689502654381622989816211649690927993622184430527694477890974180903599584194095417123428107798493966281680984854955279713227175478835802003896435404529170620287666626537361495517856949314896023243373030060242875292202766955823534991574450201451301078571575930440032292172950242947459402937615782697338984107599847652842544900141557691734374176419643795618286014279029898167691603947364534996264805985966477902903150462646727730406189031084597885551980108933367013014172839390870192997517577803643714475791902592498130655452377423748945848898164217851403188784962606572145608957069830099697313061206916663462675520942929747408613006801064799196303691283310314741053486848854137656911409425186455064467190572139168218745978036722887344767108301385423966828856966996365810360167477881363963494867463711676733537369373642852494896341722957612184777529014126623421543688628790339998038457800189506121521677377061330882776503114483054259593372600715906356420692455724010285252801030755964893997463665938731511765277657995288328141582432388751058901105708062550328358824363220504278968635476799502006808959948829554890695127320422929711543965705386277511526868401421168781882325260645211300151650018402288781886237997119360256637748622291333100733684557419483960428975189416774134609493983161287946054108171279663641566216879929022793962802243069506882968460772294114207877802925633019420553022436109064583315511909941983676954533751476408075213062975129726313702088095410567943665663414634560127107582377492048407260307473614357946625544184253787628278760484608435048235043765946755174252582180657553010519712751285394651277722302979280766496895464166822795817416594081625787607865421479604174255607404910427187556806137418428635851716265070542797494317560235936406758877194238276031890831196871860308514875976663791369927192313011140523728517006336082745730546355936059306329183959990628770643805517486565804036414541902342227680355482566839395877305503195675598249689296901203323300121374602865490452970577176845106477555619669497041723132326202464088063648896780083035913577013388707179430553204800783875792425740290287419668081314209505213890939728736658332086573402345881202816168826987242308740850689849343429297541534216883121010854117191045261763581136024362292372309580015793843628616551809571532102593571558037208583200647215049263412849393917932549493858390009835988078080482290910772334226321031354400742457273384828898905410291908073327845549885194844731274290304628618320293721614723856337833095031850034146910940225182305393346407106052052080854499082523946881696333328382179613032575045613607002322510778223015947375257395551926987766991924705671617772985162346408820612908515593952038573689279484937322509940478427714408759167271591060854807245345094421780385203548532863101483393667067878164304398357453142824490309781066946489194450670970127238015288958787116442777686782377913041245106452314637382659114907015342168575956727558403908038286738598329430197645161652290990376797354792421892961021630926786658571247382572607507443174585688948758831708317542173091888005077897423182009724459805349547023858897335629386845815728445957613349945024426823093896130302534896436229147339670052507845796080346631319774312476775873004783734034223069998820108465744044114833353809467386214203151313728577737668790140296023928294341425512877510301403656241774471893199120098091263688759727805001863684365894398093544853585623425055081340583601047171864111265247082045474767904872680585308219168678898391384934508970339227832306006896197499627644898668133134942597400000953718513521935491763985540438984913144118768692255610517672442723466140338201058846937900046676721407981081709251795054004645736185852236221480198894654993014357425534176283951231320763417751390782230579892205968152291855623482411116815483602653112500613832578340393617558482575161073157564806406811981832769053205639392174906857968672764655512922156459745193041589575147434373423867017261573576991177231403233635247133597155667483679337470221039400229106885777672854333780454267036768925283320213350847147989346340465501693005348303999085835435338525526387150106466205357310810225855548360837057035624362374784113650845129113043382315456853922990338739606484123260348771084489332811715293400146217995616370185422164060562160546237865228518271539884677741408379385254966617043887350131414235110625823359628181708216923491613336694122104221567153891170721015374092394252857179793652621849560378025385830659497204169571393219229423457064387777806724002431335389196010168551739314655432884371025599116313210464438258699383773172910019730928928297009467166627278434152681338892671698909925149865801108484674483346378625005414883651234007826458110678079598830367443575290980474199449363630238812951998854665758882836541439966980486918637555743651726407909622625738631265993618684773874693466019205313554395724995229728234093289967341851373796912419256519145083880330147951786650329294335935515398484609152123094162163674672009623689652471621670386973866318457101723812086607776312464872641981128543392907882004933147542468044800158720969272274929389414066541097791298897992744982915327528791498407636061615143558553835618186711132447226347394388560697712250333048008150933417328159650601328065340835662854779972465318658701289929194930969882438400211605964170623931654662762142813786881844718481072860937157472752156629398685385064387915899993183762625094673482279927470222895716832967051023776493328647378643520579735412295901778315559856610912820804953348962007257079460265235320780276272608565102020643597241109300142572613405792871302080214768047759219318383793528159149468890846759014738358685067827780212544318289419962242551076063815458124652020576935578372137490212220177854227666868061663942244285281999600575852861735340539126574125509735816840994355204735101754280239266712048287461971678357014807144814623602335422527479017620294827386262005300684337981838316108592916027639449863753659807551121681556673928693441261226534805683714047614808724676491599530431658840367950957750041060825085959268056653693158357021687874859906180598673405596169185642777803710543738730084361818930300076651380280947648118125333703062530762064840084937407425928476708912499191726743846645250431408407477041582708656756546877171898792893529617177049938318663804494492245838555675525114609625229119818001915249952232223183666254696408400899029486054251015429558078402493942669366718269295051563299330220886983606007859414571161110522680767573025687213688361794077491258977046607915535370897379169748565735657910164236172348529957439231502870637069662497705002008094419763980258521576826899930062358226775067211531469880029900909757147100456291686899970121351359481571992875061111860531774376564934291419562312414425285524379413793292342921698454778906686415159058108217158183290743151846889664632874769230809565525571115972068112691525860499628684147378580830808137560177723754749460018668347865485341723675378005053285162034894517187234066217527332208940825407466296295884732998407581835624995336612470601192006204422502746907513233238397735939026721357194913345732686474191535501672349605497613726364679403356865147494307769808981355214199421016405855342853876203140459951500239394862725498335170162703936595997210596460560627152249198536171865089079458491323828801307370829545335662892270288624637344254576636859052280927152278831710109864666818236001281146571991187160607861366767481241356459204746463753506397530480310436775465164568538978325463892927053542219319656917252266871097288355757476698870737193903670812880118031250985489708867619973445477933459662253399303542396681955143123230679226816235683854018742681256699042018459234148940702722133602502842507970777321833838072752679979233173831765152010674367207723787585235945088387050923501633986119697458919282377127420761418107703604227693229463917419348329859428902175194491023355019727515798418879735963029776511431965962085123171540542542094629610096627062038813674360090724416602899205157881885865010628400345607260036582408394009825246167699840806837676003621834429344132366664296115144264807013938564188912523834129432851019641826097815479948759882864180132434788697374806496910996868912651393140190342274261727600530097634436783626301266095709685898307107725994634059753365530787367228057362809111026461057873716176669346925667786496695353800003818929852557878769449169906003481266147142803376448750123029889744225800797499167798387178875552966004244371920563052132931243945579961021541585818068577422442738478804606131642030684346038998856945230987317732503679992830843165366207272483553825368682738232040415343805371546819167782253692154506340531392838218583931421256383817590311462970927643410107532658358214063705741207602309349076693458999479549137439065429380903074749647911438511088043458126665881906907249483665394513666590162074216186080151163378386633880092839711434098805738269094458383945439119857646501832630890858141318543836212036196239634906736210029767831808037877596254966153596378886432636720807848472208407927823102587665984958366578693038283316881063099728587143118545156111227472715552380005575686615637593590260278967624635134072052785428081697754762220386305049366809399240928848930822095539526889885312477324014349493440405429414261375485660819956184348381986893250217241311596811903794082843987164882007678710979996610786870548979471017540519879040930974103913104436213557303731753684644447500315680521186735014044418557090801429165690023729152991440349520881157900646390874608677024179949993293852759876281930882386471048348786750156699358194215815881329944275103143865244681363959240141806733173137870473020147330100424529267681057467558398931040975342083741101738036445264330333311157292655550133079354576773491785689498073777350216787070460090043686750838174937666004744620528453133587022294786898085539524091448196936732261473539472887326242278123369742286172993482733293750238032376419313120235382553497549889799201672685451433873555433484524099054425125394373024114323519382586440740745475867512437120942479134585571939515828410998481152393778196900618559924490393571213616377855793469656435180945658084735818058004701398072450999863805618335326753289048050197308458906216192375927407924202873225508974874452872482042634673551630387253042652500323685050756738290735019531892181660214313341111992376126354043920307906826535051387697012664086458570171009165316417668697669949871569820601715031078930654366059945594716382473102416450685291429422015104203809825145117155691097356556549508679960379360656177542785848767176214718674649237001848911936646777280143913842260066444716175408992043070473698134856608711040314069963640513276017783694345048321626086879826971924678624203891107269396505162221492592460240255845004026207165672518691365356851127733647732231560153887565979166186051835516491618018279078632207748658302947152791455844929612818505202206323510753293656235217082532444357851290820776974515018330684415062976456082936960522192138813106357703581195567610235065532600526503887037428969460695083446557830947183968140694157255846625218177709155766079550841132517106696362803711471338679724852078608647223313078462948741164464080356971342012511526564252314176745254388037534501197968534863159375785620930277174608336061679344979539502302061422448218034407156731242301554515280217135581212312168608689471665093227862205966263153454894137729207994297967897417755988641497672378929603420904922919475385793561240353786232124313339638337689350601553873233915464594730990919724106937801888271483490985519867217454416850242040840709130130989714321073437654607303095117508311258961408723535824707601767967005182232759614298600936950777788827550933748814114027127986264481356773237929551854829546802561153010728938200643402602939310846564245477327692758253077433977593419686470019795101897681330947390982324711887874355783638770825002094625773430837255274362813196493002566835158559303922110255473624244180456433128893493458082594472620317147822200632388478121224054704032172595048516637671676004044841147249427414372351758988342703578894767999066718527343775686251280136847484462392450574835151245779589884395365018075934738177733376669403217513318525999392826547169551653209341671644271964475446368186287172851107164989671726848429479834794130549249719220009668547377007295145666300706457444515392460069338839743588956657302581052124549138258215644281011075151389656908479338084723476858693219690558112245447814879295099168578361791333125287606175752898141157246974975677448092720853224797116420226973400643192588432086353198744155130433895318074800054604839492485867637997659516070672049730359404397681564132666062816595545847985701312559129902782797063302033143366348093131947444203538133050098006222383029946067711665412170176116005832777737537952240778570140285925315684109257148547049683387150073129079833343655957709654106273400878557670189882294212684622390443036082681950357152208387373401634886205536728081178175236776703248579202772219192899076224044731569385313008952181536471323049683882487550237140558660434562434271798252838033850217859964792985774505761413432467424195163194434855733940636611082164145917718418715128549816093559522032081633265541328305944855656664480757049865852014504603624874566857390581448205068883056145387493487453129248868679088712432589866091107451915022109525822507277072293091979200436181285924178228638239501764342708662027712258990631883842536054529758983719116268444600732564174384985286707343583799119264615246039378092354421122164763666711482842655606256625901075816685677119718926359871395678074184239570674964227947875446596101286918934741795907151750622798686023890575227548889114460120348593230374748180751458387378406093879163679129233258457749504003132182995051851643038799659736173361742208682130360731885630790665369991391922207521944379921369167077265435693129879163681676153252876535755537892192210023882651658436780564075644755026656443941078331896654379531324957000125423855551575439295125769100974580129263667498174142202642739163545859606707171457576169690738854374297297262878954824093809421999089691796857925077634043192207279505194625413031511902208662196545974520343026475554063761141790228777982212466056890639947227442369663166791279735189085019408336651078547304601586735859400635951770654325264793216374954214047693553205614919021350037802645451307776626426275523518361274564914014331293235024247040711521085749784124355481646049065042536324045165215743748747993805633636845857022410194690837932117141201487965689910104227724921183922912337835394976201935408396047498767824663169092600883890754233833265945193503683296916399216815283097445314845886616434638708321372509041581737482648850124055195840470547291066532208178660717704699988080780824491071776930380596357493541396963685862922045518326842451547216081002622084953572203454704908088867019113447430697709676419901763087865557931251781690882232558486258536556503873569941472839413473153474677440144434709387534089217230538854013081163229921015935945431106405263100257600423864796063293195017602699210173170064580052139540521875728250551120266149523522692502224386025125336343241466572564373844731728303643920151983786939525377661204589496747040307588106200074551292777784429745533993404627839035171744912246613452674972670769533040687959117380586801809640327275819228643736610311873004117764475953524990071600426585411710223010675207597773963709921859893355007888218624964193659498040174688440414977354440224280715197490309984352610407264580382768321644296555386023655245997121523120511201571292015200827877871982654045084578470211967050799454982151581916484617093277602640685955616299656603956738341961007030905094027198142169689408104737518317659608791777124315959317025523569015297300753087730390187916523184641337755169693430666408642763604815034085873919323082472776245138865089146702727386301645137286703126445138570439439286370832558285139972244518522665985979739801367577777276839792126484226629313491755574293856860395913923864094367729033208387495120459006079677175482390570428543407302417329339039845118507897602040280937485887246527129210485644813869467373513036938085214245091896861627514614816456363073180051420861058245760918100029835617846637581122675395104682212647488635090950532631988870787077337321466403122172447905736288905855332822585348438314964200376046502413402377369161642061383050459203517410311283842262881912968500746456886396637150023039454219444610800773304907004150914579236681313497988028952680730199975697189709335595884699494294149946993347952279219994419137779448472357045698032380079232265381015300597489257429641190904943117896951579087686609264775565750941323019200840906913782857045709595669476240187711025971071667231452485914547049351334334851716672175808242065338800969644583009710518772107319905561424289805228375254210756758971779378245724693557114243575274398666446018639071128096554868016684021046900410269042533941972295503079554412693049390512992698375519271840615027352769415053003611849282604407330958606817871856015421364443922896779745946129508006168664329243003403286094797136700041033876233721401807250383033585349637752621273170660212215442271815435128092379536182010525386506580505363447683223087033572621217680240876742812913655797473937513438170998128392880249221717432202020287412467820774623056406040402653973710345971744183360734392851310414023174470761688728462905765249073594845895771798446592290627498246793274429253948226433646719294432292244072594883232194651621595776661869717983994594311652851342901318345987678827128439906174383422650706626172105625841218717814992632536227643006013863497939729567601806012456746657858803558262908135683768645511750076735979156372880142243134933971106479253430691995381056272154596436160235212416589680160043170880545577110114850983914497365930464716888201731602915352555112501993088134981013748897811967228437694144717591501266272097437612899706207013386551052638868050027887566231091786772752397166229907058249594206858224167404221969006326792078970794200720857345182846897790248865462551349677361984667904443304184332119203721234995076521263988424851822749485016307126402432589443933255140918938468793250965458227098708402996976487429396348076655599915457510321849585710649797709425138131965414037703229142548987425089566823375190163514683997055910471713747801001921680503006483432456869590432045020038991299919764572700389489647164417719307542844260669930552571850226911369111513890860605151968432341602189354935212773880114945443974652347147739578866971703258361855884574227262990046146478669259357369713020013666261812213415381570269234754372593974416378008229288515660806283738855074331921121635874229519938140700371172655290589390909617944180562439627360213122007743616372764332995774685756990193019825835437305579311559414131191913128602115690637987953447360540386588064873058398322331627208401520985205118039586548166165422012003219625883767517081715491907717641083210994696436556060985874990300514578673498757257760809560889314677262930360693736265951609600030350907258407896938160070897214111624441406185299423128394314547449419602507653197277888522979193812146882776108686530477233268904096012470140005287645595397258089741366147133660982222566001183543024995029874611928173643838557863088475244714746058845526175082655282697936880914605909817714014028525013771251532684901893427796271076493526455832034514769213708913691046841657881244695078285139041417929531252642754370493583564281963168847890085386454674556599818378204668087991527886322577800565787128665175111120183534518227319087711281250677441283666856948613240867545074715222277451228238258787528530132550420706202584952890092400235969101944460151552955785510401850699074677080472738638159586538046495160113149897508839567619131938870377423015797139921866768458750936762455718804547988266870315641644427022134060445674388036127659091142105249460527776367266800708987604215185978183432425646903363437574460067351062739084806746830193626384436797446437407418424913338864273506104506032290995438027838359959469501197062657237154042743167741736723705111848525938092122286168280413004988231689103659989774873859012942011637749943998518717081756573211638618163950762935836458909438565561560150260744801676164960812463854866928958784470490318951421001608281968174084808563955931138211819491498300821589756917686437654868072422974741442565765062128986865484533350007914322162494080266276599498607070781529632218831503306941454898575602786447767081690608958603270408603417318554012416337184631414217176706603136608454288070815500266452674229325516707432952301630727071985015999895537685143103417937572197354212691120149969032821627927277376245022379588167246621340584978266076173655878364222448617176530221488619638538184781055088241080164309223426893307626503186490030436752856177585371243963906092226327070589611910878281093358887274604277610958118204173628814040483584850406424103482382662150843451796581255896772497378794067813167088180684569232681405623744806988655635063650750541686058731180891078252637454568150660129851183013625362633473495724921792824412845548504906748448575140384818822052561575221183613918206066708995937829479570460922806031226566166192338695856539614360009909962559712244436505299338182642201254098796458758902993880084511312003879922038840715162491535189240973834455967593409149178449840889581805531854408075285700702812553104523153363570217449839633346786058942249426057963596360447975138763318123379395707543191354456833886158020602297376221361706625836737089349233415326671703783397397091922268570975140929901210170727070096410031648636252266116742784809524361204906074452623623329615951669535515987349001413589959887405155624607687570541832947670205000044548265064388281736411273336177461712046886144890044054985610537024922977291786396595023837289997820955702309229223524743449775687762733253655105755346752393958798624646108031602177112518091299322896459854465956973363016461635574689946393007200955025280081828234222639128289277280767114734782184311787241550373131515847328612662929219462310263815813651354183469496102517798822438199027666988824113904055803381324266684695093967343394985665600142432018126411558710315548638050019193365491502554252130588591427296216728592995081651417814441346726211047406783982306722668950268590770178660773279175503880403721840177988588415153793150097547609555191059716455783631234785836300555620944488894143707553698585428850631352642475230233330747873356841304949511815100500745606608947028021729446597533012997847447057384704100756354576929356430071395633658234932158590382446825611318506225097502768689106277945484409895747284143533703900291046222481622832414876449816073436210110697472698305281716822577392462046496063441285757507263061002310736395222354673517024886945269213342959698255319123031425678050571405362390676813681149782284892222188279018687775108134421626990090888586501029298624205475663388790035299618686482899275948508799298132441668426600101924116133633142253931841266896170462324957864193048133083910074423639698763050693329065519654259223334532071979503356779261391275731136450391410121651134686559934309738460915775083938173250841208652721717846858093442463249291343797962717030757775510456879277769583042166614415791656542385074091257941417294084185987856765840139902328896784805300305823727208840068514081216233666124775225005463849761463943318698524984446963953747671639470023492348353143649808670376729459373908239286185367092925676410629450316076999963136329364582521456222750362167653265411715086382207155934773556055829949515770299660783785634854563632690661244248029697289495911250713602981767845960267576488605430624967037016548280481094060321528620907323517586402150443380822949576556347857430286861495572565460392164347039787774491582041560586532833831344475785422513010823075278585310012074913098848122181292469943286061059376088191123281943985762212934398545852929444003442584336284504304734187809375848690621148936083984762191911312563205727324798333453663805365665156339453714627688654040166392519284904636720295172748415010604882232733142759480970672577985326402074049529191100219569456272232455716351717785640869571546171346045080257947668576869606132285113820133041480395011826945975458539448120181182126067217553025061742917313903868824804058221143251243163010639091168355619921647346572357338262614321546952380431025711824089468371133886384592467673294270421364077393261026365865316615638706336786970843114608731946776142962323957245288976842341893124350546193336551003420868452368794884321270558254203677465945847692789885027204391224559952065917216795796899532357239566615404563584687342171048886548922353528260575674745937388655352455668931960595799770788880044857800453418486196493343228829205665384965276304694445046404665840799030762814642898837070589981886489212850974710286536160889137162647232043758528737649063033463065120900168353752455136603951304513734347154505542245508509377235266113079570258770498530783837485058940367132122848757403192372827483112154879897529027115245448031329453959029285105721457292771912493432086553484605097643942320074855522889745821325413682076049025893838998601425045287439532909585501209427800777505165731533185900085363166022141273566669590387790012150579550187119858703630978320493763435184913811416916549110001327234656293344515854643888108722585052610196686122139753302837605830415254065360974086744058670362012965969787571595983988949450632836568070899471795339747335067147315139667180741842038196442864356113593251361476494255006105294108380189516104305086350777078212475947794782437058528912070220390822588388602235917501088313832941928805340383984892672465679760776867742512568323267749215042111118264116622094784498010935668278344698000118100940436342661177629329604200558139133144331602316645510534542953478101322557337726491274159301408746406732703891916402455484150942037836078434331396634731237352877577315942903102168288999372434434640346942756362369769085667394325491791205151679178934425162219576228870231718648387643403833594498429060298676921145091715966401738559600991560439513650004250585573752796767922697521986149813825349005986337591226356013743003520198102989099588723373662014412434259087072414848652780351191756198123913783633338884459661888187866064457796966500936462959038231720886521305802351974043401753678333291682369046471639636597163747049060940515895789513818271550196465849474951931231767060393474177200341123922215660658948396957094324818561273209944263365898872598796306440341928359772713632807448446418104572755591464929267225132307528458416301123429959136976500215502671164767456600766610248172896124955548333140466536643455030264306502306939799755502084242333153017378137142713850182098752715057000492554252408088453374087925172651317962721420699529754077872923751890380529604377616042650135341304348161133713092023349706531769927695826659445721246150713988839482097433101298231774255653883483879313303850297567004760830433966016204554573652906183425441510420381842486414770288644391206691894891343956889545700918130332978238277574494635701806919009358478102477110958495860651020549860305972714289517507098585628114112177462245345093083499184127567175750746435595570831690360952864609276962850133150633763332295207481419006229131347044902477937330539271876826618046090248360946957081433734933242272868602491848189221152842205459625323916054892097026277150701573657984956130064074795028042579642741502809366217160087177365846927715248842426984449295025618965584525161331718405502525194817157917244172091484062887177739225671223109387885692978213754154943481319320076597518013756389236268302398528141314315488794470491865062455162203216528144813947575872574846359545458753996955196184390764882879946860862461595679013398734062686534731512946798816357957166620680487584314782246436740781800966006111350213098725192621517087789417268956949771087439504147335288077522385845735454397301786887551310824244791223452926969978259424829789650266414194432465673553315363807591458856833748459192204689484578268166736839311174624690361507453820397801759567086579308649651391073430625357867701001305414570003063403617223837460953587533998333994016867934120607042287274626956525079743485854161459285003375789494108908376164946102604115411893900073452786286894964574703267688329686343478026539041110409271232668982343003231604787937714201215754392027034280156817169840316913678396312533978665268406362720211305416791473789250982551033688627913330816884808141873671888621645935602224087458127615012740493219977935155130960665079372027063765089032528126923450933917979504983595691845817877947330779651494947560255920988672958175017957967274973420724125327488544229120987457095831082067291525839992823095379486637704047937665521145683328505358678861068426423951183190119192277791791280924633879816274604225480706010061863520806086258313091048164921996404228694733384502185668985331118132858683030833436494856746438623805123573468436696191504612124168700990915364063470299515348491038389036306486241685376236664660715419970439996874297686218272109658915054941789361193355873033919277659469735296064119560384751352481093801510921712203782048277529869509024239741140809926954364358348126578856053867729785678515752324145638523596875596989714062968620355359946179942391767498612555185633097900980245629807708685427939403230235830664012603179700721750638524973090256067810446649544317356850174434413229198682055248022004320144587039456447607615770886849998309815064617389644538150507709957697976472226587175635722857614134887236622630836000651161845739593205686305165926877034440597214650391583600833388702436425702128643708357509491061156503942900109063046372920062744733119225332041253727510504905192737009698195057321281569205006952887442772278647590417037502317296838317279812712301501326143943086881394836551446999122437912399961428520848586194833447674618830510438113376320736585004149901294711764692179816516478045445803565404087221628112933189129748433605666833025201436168580715275976920017462754535952202501407330499690361847657641429648163551221593759844282000935177456383068866156086263079313485896355420959048037329928134716701650039071969493607707610877970079617224766052811191477987193261191249758976369073653039301533140947525916121458596187793376927032092881611954746870984067836401252006004353625991741021852780222911513936626053378876471423753118640139744180920681566101777497661757552182230399097047531768541091994746511277364859038189921624964049989674331865501367074030583421255722665453800735141260852747648683415964844530884028272760089529025197117555611124855994426846227758721663835817215589241870339672429204058099178136833380677998190890180294590255327659188198604329756075319763476188038805247335388408686650368758616211936430267488584660548160271652117774807079942650509214124630331714779184478170336420987798509222418505568901911646156432467911699761539075802812000265457560142081273270297292393007637603335974472606434080289347087235740866027608052735078825923934470859065728990187843927440277833060890513415424985432112268645423172778694957171619624384369725944766885063653095689389212886395616706784395106657477177430015614295122793291034286847265176490471804998080617785484309368296308884572037306596962169012708518910741751669928952406996132011421608979409545755148981988270522681484519407325452671507908451693327363752904846772787606927646635166415827986494022247864433049892337220130061788222101145486260797759390502391070984364282842577907273635022813004300537698803957696062555023701714225660585943453024618924258818393652861823505267176915980774719739928210025862179810279211882274830489461700246033398159370616039684742860691152802732598029832161369288528333488880195888029301084871276189408677503526344254642087524156064059853662656704595120773241685897816636941253233880839515900381589073340674796855440579864042973198197244222941217018371486942538755671283520722725012025006618876272137224044198934707586430109153826356091604666089368471570723999967026026671275559064584987541172124529555409071231270123742167792319488353976675418065755243119352328401771952885565454250299084405062302828803605341797562109237699160761816744124427957267328156697176285859307836018072940483232626859491469910237701759620250468065916758051444450995817962700093099504994129884318576763098344136320511997361776128886657282643782301920465618806660115109006420874969504890911086265475031859771935169910958604306181216002193575807198582835176265169125891467957617920436703429267771336905161746994736397599421258848357926395722138126779826909511679250048960092737737762059384619301270363659538460475484421389492713222203763353088057237546397252023199358112094255786691845185131676508164579348305101799284252296898248469758005965424133810188827332925409466604594903953950197363408659440161831367503915920270990222438227002536678120705190814740779504145804882529319494090826068403753400148288836988636934238335257926645000787499027151711362426342293721597634771100643969685082387064216589914734571643821862507514216804547942364062104723264345260079636765720598943832976637905134043371113272721856644545449521638010608917797541155679511477448152539646406411471701479668183911765760429426084049695571052904240146560511928498058387516101232457643769357868998633836324941278129300340578826431089890011005289582405299426324801306279127569371955075501750832013691005716903835087112108835562460192573021803263237994336619573454773300655183946584339234547665682070877672753225407647569003059287853966346765015562592413543084779177227155254771071413045914319511343836372874406507378810942071429692965234225178901240448074349303695155326942481962696435854887517417098237279612819158860975355455298074268764775175443054896442706504824317141505727014652232912803844961725603057408990088705311149095300551720145754464756089006300962487099588423213918130723057848242137384426618702262876339797777824796473044666064924871589716737037363564415624210358621447406456527527167768796149152368965839745124497634549183644376266936615263210618386090931424382190887435921274205011189554583089812248652842667466365086294612641373343643565557998410689467047733049474418996887984071481432363107663320086965827320255641855164184071933825157714545560218136024659379109424143782205129493648279246151914716854907636492462449099910399150994297626522580707235972400423732606128116183028161377908677412204177593033772709225182076434730590858353485023312882671432199258839818017947400421414538253506759312813171654294256828979822476456466401476628292422205712587458062298820241067837001507878965230223600950222440589996325176871654664165757504178556290540091539335758235974036382078578991412814120568208099626025569390949486951720144309051927912135992751915063010728580261765668288276818426973904790904653623862164582734667195399054510337173378051065192863036154910132034304898842243784325941413734409323594912772852138193417474597772877545858130341681817576933254515747492248990400854456594274960541694840534504337917819865192583041761790413342188688010359460879575192004124278280301966128560418483276672154885376831722121759216687035311791632236773226292559922709408208366772888405572931162611974038554477867951307159687485701276558471534514079102454083244261692303666658062447089836683172429246782814431981557266949857463835395677757966557662196576215989100445635256702195822307865793188564734833145239835132123621572760033412279211675823776469839604171500263777691895385589045834102009110820023587214665386885795412872118176371078519198753228380770334423021145066359437012927317799258292900870854954009157316328011665860415226711323649810286888817639288613781172428091668201148258927242718928188502656958577964077376758996762602377309514733104667376391287457781486356953657349847635303285469099620207210699699903418733828181167922516730352284859573834294315471704585381770815760381827438428800699481009146171387096007106321585451933212523617882741327156244632520713579391708056620286918091862896384187621344451468792824469453586490389777406179068583281137271485975141747122455181381309979391922710027752539935311714219606129691428129347732785739511819158722392961216412472970680753042564017681910097597847641987295590476373462341344272508980354943246051180940199931683820646629988231994781308591037347636743246654369397726785980690919912197889766155487432479965538466720714103374066994674970898638909786751062284685872621303730972830578796278379327656206160851168178011764539454901574357342429752009486918725000268553516201591008962446442461565042039540626030137090822269620525222705784252513328886893437325581668986522687438358987216612313556927764794854827640343719842598371166533006051984864941257191580084744969617218882200720712495160390520616218416787054992843310969003280653736980405853821348020257821314060538349402239666538243138894761929119947137039149733985090277861780879547209795772846767073921962903341994900360301288303548353966779808662614615075168518694575655139915509854386586028492033187247528790078885800772820698002363499733780747243449179478289928835745693215258144776302079193566313117789578100694322714585428186025611535110090300052986862001774080987607065342394027940500106942829987899768390009153393363573959905445835348336799264588475746366158439503195284941093027774726655219953809326042678454389283258653456937289696128358352354856720234411833833452922707968969861765259340801564172105321462415122852354366345182349019893779179721098080282719429708125338610782301448428744918190306073991995046344611798384821530749571733549855943180279322517954340888899242809535937883006671035373597774623977054533864350659243367618137616489105654366211186079327903879583471110276904030075518573392934910410142774312133667095197087695336587809167068774761978596749427932138764098501023823586036873790372952713158059491805833078128776373950750338257149943154778738120725812851291882691555736357842420605914716140068540206878272044652735095402791914811028300678511295734579128725525286747858256002445148467119192757956819405629919648450176731242067026975377808741279673392447314774080728323634214360756770218778884701046842578441824256059757131552365718867756764084918608915547087554087723107567052892404440443499848939968939636134056284754191616246663241467352198569935064992893030981126183461638241617030946221925269007930600369154190434909984569668538984103674414228596334386594770779375261456063203575153938152265155248681358327382240898332523467861158561526495935648249546788860608353401495779418014101696101599019763850297759364100378530890752637127393257239290985920704212793576880822508478679064294805708755317467477854317756856295081799326805717324914960817407955758354083619159196576149306698092602726327366846689039025932816405486072175831646380790819674663073015378001803434615924737524186888742440455143116372745677302404399603219818631818680967320738386491642934332190570594886837602807803658287670761930243993822142351311005638491020379873022643132039973985323350924108709601104075894918854739149819889722827821645136749012467328578255982408655337823479218343649334661141057555563533967813064382051257632850145672714928058226647296713033265369206191543920115860288451635571872804351772671961383267242011606417771089505805997167515272024809766474972260771988361649016971927774408838885887823453442806824247099020757016559694481434862350344166670152981615323947535364766236297716483950705762625760874388882673611012085865962744398688510061647847499819685857408364364675461041141547230712010125250279848784868560633576646764750785765629438890228949017086236758109771027191984618443425625664300846915032878602791844209602946119141357190244893335988943548861750665183691666042745092656985104496987123805204308242773648383873283824509856098649643046318476468552908960367806281994093351616615205465203909692322223728428983585332462657739893938551147052075305854829750265086751974328816394363945418526113173370072363963309751249257565381010083781864262625650600718853692345066809520649186247862180611448825519080291885017565403356237756643168449249944932801190974114675409045658845045141634628602266005688547091147216967447298636941420389806841736528984887204733829156760986440670159140888240607865576133464070120027933528508630918485702320936005055773628059106456033570416806435165528199850469997555021503871809122597212994673537044022056847227089116929981873769906095052249845523817999967167135740788312356483166349830066368232011228897140126487611562969474891921306194379027513133715853221733576940514929363449958706825273025761928786529444194202840535064417434696768523965434083310032228810763359558777156882185287811805890437712373729629207679740344995630806609296934271300276427653065492793311930485527894246597458518293041905545093651892839159054971254723254198919904915540010182593679181472330757186784835772313715528192000334414310977968539904095838813562431008561884163848140656442470738654014428565447117822051294896652336105203086885342329865657004737518205718538677270038647592556606163282507126775623590547813494710617548932975351873792632491731134365544076507948567494256428238104686688957666623957902317174173247570723537022727094594430623208033810955992314185469102196218617083593891017866707322584473891881742266166964575005776415219329144638835655172879105841837526460896062705071129061186541149301003074992909136008291311179841434655877503669811599485659979534448107889505691125657396235425659532313920161603913509465546435385400606649301971730966397977505323929324680734806617317795348599077564807574730176470093636938309107052595201878378159051683592157413480931243036846683398351491781012958936796681077249769912808243629250661909773703991974554395907876058105200722188833945883766201350178709262420678851191676375883678165731379942987674980117827074475488542508385393178580011351059129333753095744875359612688460863555881905655105262788771422359224171608512975024138371641464764963975768891502188660948020798422915526782827989772003764724268400344994628598230011337723892426194343874770352797867839475704360061997524923592141213736129412346488579518845029795721058392968422394057183212269066088785789234613964052903053228371367109651962440149049935891810221386764256047729543016273281910096062958241135715695432533153044858892534472958797409405108801467986598327311044421936680290183324443308349680183330449709996759826744447765471652726214989267911921603006741550656456965405230819439388883780832153272949420362459801019784879816519719518497276523196762815676033966647329876946406706214846200329936361985069364939691695625269414284579544429786900789777514474308434562752203028664475165573513931272255354458162464510071401951811272572253195351802929474579295008340300528440059496574590154598661493763091347132580241063666788885635234216685585357727597964378991271453997083583924481275778907167511649556941543384751844558131177072578410374476015697796930448647046662483260174576724665607197765715769454952082659414418732016710562851479562020384776146646496216421145088351180866705207715959182911281782513715764008465288639656739366691801818675887909376332169844525863883772047508629921809112231395651513859191810653304213456701965200727997680949004850598995740499517483098777034763185069169723660131696625685288719522584043486939690585306961809104022626815876936205143690387487691974472909755604401624000835485295515666916069817227617765946469113475906196592137181634471125471541195152010939535368583756615813629066469221100231090023179957690905887034953455528547959296896172493385307135115788502325656958597909688562989466326813773523136320948915473922362455814439176743687727399302078721520985561218559576520239506608440542047318601819590291267509090412420318865558909614047555024763496734473957059990707300664525329581081315046374017631960096219721735461043696290752978793937483909230874647708619786085521395105784010570523706973408802839831668705977749262338530846884885393591192304229239391554004451399340189414400952180531434699796385499227667452274102809870746162415806434261117801301020938919264026059719461969110473173974604692910708254355600970702014486303050026849011786829631304368530881752896072255977667495794825216746280137729929804359624930222747043194298788158319706217150244174839618046059804466213646391662641530619464426220298585453936117841732913654657391186423611553442921611478887607112218398477117676368464145046021572812010138904338147269497036551422375075397521274841565560635630443619018010020625717010806184494929732639728604228502475972176704716845035784791931488185523481158207875753838930700351672112080783399355124829372599046998127948326116479002936563113056177897868799478409649223320507044556096386847968819226330332717689869226861668573117685877374425476942604769636842349675799741753660254515807315518068447281091144913014487657797667900060386356789234611141840888580365632761967765022186865939391013275008724882169335268214511942903875555419765362354819569917294283188700646513095701404998497899415191800113360602590216621604109477451905543759547683670073088817011076657880036391510009399014286008050846194741305219412435849617648563482093562867420177561407567377603830914693375913727431501381412018567198670503016039386243038169690236207921383069925160875040951871656525021968043698971867293748904925341474246317239244102851628671545002933567649662746363651984983191260807032637589267679927282904269948131500567915009621365982696045006133281202200553394737855054032178118252208264402648771941500944644072630367312488233889035442848032034097455859121044449483624279274758088193415747819083002068357856143863832770624058044251335525330666050305136400793329730180012679094240209817820297726060802403310149630837552562018921650023917592403980231341668219233121866386056318630009140232821009470306831156173925203534398820096060696419233840287620381736400047472355248135109489193063139644167087881701986127396017596970418503649164488055614117315401793983471859899181484429253493666780719319529554638679295341217097644255950415301459036914834227105262465169130365769255916846444696227570204104110214776127044257386766383486011344659708331117936434557103719557574967373531357801611787734834833046142155609071537893593946309961126879896988442414003164590655293902597857436086571491635023324958090053044154251670752939683471976633020230438339833618815871206314356185895405462078544133784333991576330061434699393626628043815233662542018153779236889602802041354043777580106585190834034102614001766059674932540584268638993668708652574352648952172263694778527948058610829637801779076205761101128622937410204204304487231694124947532596782850754160783271933647002629941131535123830531745697786546103996081416085103063309376280871802634083661196017961128306509537843319392245563516741060692816767018625131154536945271250827546662807151602681893678363145156695602685364020216796710826961078162253122978331439472095644455900763505282667408531748136161088937581851402470161811792954956257603634418388227643864269230026439246307843260309373333853560821600176249900970413729655750606779031328356618641840512828556668626690407129799815319193302476265055964672008785200573552165644597250027289766138954220218150886857002191279160299558141327772174600427495360309115258805180838418561182521141439994960578517800219047080324775859389988891295855490788368383809733053832633892515363192871675244407004408233707679268096830873042322066200071842546064797521619688877510216050365715011213795384751197560695016927843398363258225897311336476358375099116278590082410673069103129371291791664605879385427198149034497947170773671468640248165192945998520184272292399621802088504459685662536115259515007137132070691114887305359127685458322130130171946352915567775573944282550751634145897506812568706145012716280639045123028265825100087205044293459190482655658096347191958173372202812258059625278325345150401033918265955430122908092119405751333942516158839836707739603699810776873400564261677182934564130977372147346685305577960614617402139959900175685914224346919743731668615385581655677592631793921669219005601799650495752584817968537463201699170912172092064499427005488597982870000369628333399328410677249044726336876748423578890771508674771169224418823084929746679521908371602986542135493983119319224364288265888674292686403062514723361511971395561547592640367433527526265266408597969526308377908532897556335645071451853272296632860734107530621761583365679567284653151487120705295560705705091043795801253314188562624264834458914141969447470961745317298635839832305750917843675555531590361581263462317948308156014641122574679999904980842142428005269730362468757707229711634527295743068146371072085298543752137401642284691451203815668187741286977246033343585590462532597550090953850270972745911468552516494244300765297819493039684070671690237467563824636315544430625610158066386066126269241645911072374265402454967673687296114890236065534039367958149842423031622818843103561164103494579385414392234488786346934513094496468881850469393018864479339066587033591338277755579083633491603579218380784012874010764404776087550603399142948707241369015736730246272783522641452978132421290502085344840071723685355740079965468700114477025457472486810602486458444258942539583302448082322272763226235231810936968323690703706378682874554037926016335198451695671500469951352487114248674184946437348153404127232524372523089843541120323647201053285636182944675346942270565478654981458165078811896600024793073109721104843264575043916213801646290517703379272749767142602523707962659251499919504368842061407053511310775110442086832484474802328596248937931777495220733869664398309357948472968627972766991068309500688903756794983644803467938665510052064977191126130343033044651264087089620794306791856104596898820332696312409300496633453652311983196551849519435384873225184815084234776980365396861271301734535936618374714998794039729398786837332573743362350412232300560973637612630909244414847416603231217999990199696203371136680712463905348969437290224722642990615529002476650756345994465480355725529248278417173445943146248347294467244010856038615279719040256791111359707887755910615216260981296178890010359725762451311501997956073767682262436930219760495089099429295317747226549913240076634054934955158043079767235961638386148473207263923556001277765319857364061208407730486544902383495164572212708167595289964371350279516109509368374450768034110740123341416726796650474128948614087679408058740978816309290796513825796042248228302608103842820706451058989837816496751387201854429940476203321566428510510148536603910392419965000692097472624293538029473619346986336600978174222250771564430551328579645195243537114905672771581231561560141457446503329553730541031337075195681483453781932294262284658073652800768857315776105399297405679423325966496309660379098766637321230567355907084039390401884520213833551530040268224307131259480695059125692660663541037104361701721310410478008688491446678661243873586799827109296734609787670633491060271465371862755378019763074963410152855441865150062191945415214829891416632724057647924684082460778454987137302349169091281918793720258623078232455493880018902410978763379619023096844708942778396044854768136347994567538773846678798780664070610503354898861341758745654544929206888073865842682379602451551727132502866478930900515117875740443171864756973800769475133742028608259758223551485761516714127525352073774045755986952820535088768073129435893771788232125704856862705395802886076551276827720461236411757880680114163344508008076214183385747196948554277723822442256925028870819600125973877440995522428713393866966962981218087554652722243760583690096081804583551215667529669378386538084561865460225500011700227480046345832640894906705521449364518191979167352186429378239417930943858431032257132487210238492750633877145565750983797047277095938431980022691372828770580116269636958277475786730622380773887735710783836222527437808382345699149242162593142062884226953879923235230871455537093987486883878398903199481209329196559624300082700079515865122010040924454364839485002568515439394690845993287569365046961540087187086973533018416444087189305692419155440483959637427126779024257160883607649362943022594709502070425480094670892677699017072263578141541460421597596397985666144192241146905517799221642521240341241508420902850937692910241975631436219343557255451481110902373447562431644060115645055529397664111877280131181546280912024258263838818311951255592134364213355128337145828785402768110918744936709354648762794189767687082436720211603803221236952007181700669712410323456140661330916442445593108280025287033578930677043102360764339913097252845240563871164030647509654638243336991500030639689822252445389028919634693943405367480544648878364231276253056947656949748929682110932539402365416179585409457513652110991542396276388532404666791682724874799933769846277889019044903809799816040368117758548405092903602651266011656500233193330759790855109685485500951709321463891321827833941247747263582222340425087748054043154741894443065989032335102371894071446356265529038690687759874672012680489118584970721266459408628658192678062170103670767382264409688807854938918713035607001105618180487418229385070747441433036989678863466495184473242870643239308165016082111198377677193191038577100544005008721112139213124043703462039497272060888896619814431447029157182069298934790856360819036870696415476427752059846902297563793077466328162889871439997378574728476273404993354343013039964607498626895605283959202792660610315937803820706737448581258009603107173108248548184382443466600251925942729853820133226214021386867244890740291071165998067689227137399214254923224718116774321163267872867866540146516372149905659479394031635868740585263240724496057611592157224395806003626277113877384412013750502221867486868893541912231823019408006934933923435738269471129142756386759626562380485599952096296426895052643597822025288830893520339093684305793196910612490421228923461312228753315224385632116379582212814694734177707998831693390934795086144002507073403934277694601770568290146310930729084814046443764279234770277372426871314468432861411200775799819669970128307264598857558033676435575304607217017902650213143613288568087108147469719330364734542391717436711248769442581831696839561880333943940561969582088016457607934153125438613796367482025012391284414641229224018327171288608757820088832167897204213609023440330987806635962930775820940711297378566288582162234563862488431092924492102485604820406159003674713556126343853859139601908488297833047742032677594531456157682646824928068518102067849818706030142942714684057563427008554420212647517895024583642641823334621566029972039856373821339790422690875278535178927127781573997498298937428210135161570598923848593284464492478011983677340785213340210960134229334436399018681537859171876502381313438725544539475492174622599589152314630553693129972003987930914262928677738762331662269622566119059261833562933048019290456207738961197022964876985693893392965612023811666402592579006137463112869035194661245196084196206706776521138286752303621085933978953334599277062894028032551601093261967732860821626296854457154356674382192433405522608262892220343197570514162885003791708154397299819615521128917562851172853971395797308246985064286956024068053354239413670144615793316225922136943410852876960893766792255191098419759153854521575625856895083076706881290449540820563837491251435952989842251825558849199976151046455053325142094436124246539841655716303619761434518905141711468007301531836244120051835135618042017862406246089884063045159473297006404980636773141548526090228967977901869766758399064581725882441301841187092993775888188323919261461565515633391548157777710799993231278646500877535958008779132133316902649863011325647629193744691832089439715387220994568887785828030990964732689199693183901955861745120027072583034680882970176537865148650292763735661597856090834688245683320674606810012093837911204513464775666940867181323517210355549935631496157701845687724056636668729020044595521349484699087930334893109467107674143371066101891802179277358133214001659222221568600318425559234388832003616375373293467156536401198546366914827389021616287451916211803278108123118123539136253890757495933083670420677342884105273829283243590659028219395226792231480125949727457170058027721663294229536002960995543619867883653284996048101157198522392681930417627168045566200850584988217553725957945046590403452849903827053794718292306046727161158151470660748316253197168218733159857274045595230423619374393548463595907963330278995031715255227124566815483073035992610121541535527956649805256365356681464285809468292554583909636560215715223703624662742189983795990587188906830983516967878902405101077839120276295734308842223645666095316131394516683202993568069789328709389608559173019632829821605643449027578600082430360681487255178434746823454892040662911076734450402334554127940152769080722181513440677908577875599075510803104861368611758534910254674791467731666830388601318582542880844827677736372558418727631339947251003798183880969412408752040222872704182254581908195084432379841325418865128064947805084057359757463758633568387805113603462858666082670999551370092091968965131117830151923039882182690293518081502325818803914725152784096468538725369653719159208679750811644085665256206567389661972422820918171211907791042099336530406433105575263134328611512882103463315091270441679852330940019365581356229970615211156807834296372031351229061375095007265078089956647157222503738534381170590581365617497627599969774944377250797795818368215616242151981620550797817733358395577884825526829469710351040998549955909775727385850357333135422711566104884815112332047025202494493475048319500015936911109719893062422826189387098412680539241956322271662881282505238277473282232497694055042802414227727158504867692107219561008083033055429449571400289751393092862120615593826685383021998403426959121038233451029253191340221400422851599676387167288629817622036172529877568533307015854082383942818985952418483283862411505826515756481610036601806851163197469039778597474219089243120071214831362018416982078205635048106469293759412620060886450266207724038759140347720587332146278058726571104079886361517963329255861663560767023542754586847823270977012066897651923464247813833122443079518071137093546293419469582860951450299343335006607887489658900805707015372244466053304500936334724458297362344200436568187684947298183353421556895613545824718495155980698554686799125678608529257199205702584212198203797536932853554459805813651686847801134343966959458522550598640568405123425537429011738574840396979479632368779522133630402071883901909886278684686395634127844280660804403254868057477360994567404440172994672117685313545079361785472444463647950557755600114211134365580653447554515479342678100942815156275155863776462973375513943643688108797444490557706387296124502747955160590720906812382111594654081224132983984126341796180309766148017647359373481654530976897925638181685118177117528321379737575892249914571961882833216951733581256262750115393330227166668402402402113018365706325755563282486731004946910772017249105109380847692227547033259857796818479724844821254033148418083181941124780296606437858925952442936018329059428098710049028070814247453067190924448465035128905501426051862287232136575522397501282902396787143296756996804570358452268930816633147612567842979107804609716330318026915563039496287543042897657871835936331525664266270057845421821814164362680200818160559508984634406840281069757797503824923008525270626223017172374768574161366697429990418874635605662243405552836131579007155653693963354139078174199978881021432251418926274692366930828492443904564888998539245521411094666887606480305851901011554293373896132492082104039953043442314612502702388311928714425129676486514584897160690722693722683552801455569791475486473989935968398255344069903461387665649738074147971924760024165060837921190668342547434526726163188824327528778863067315464381548751602396229806119817653511124858156990710602376088713890616850724257170656508576590759840493265149772303144047249037958954249055862919554845357749149650304131696761583289111733505217045672886182366885119715846150424228100981616192754659457201133920717746435993962895201169468449978909075566434595220136097320269747092888664561831981065138926466526180091689509072013725659168617504928067587114287092821286391255064711331884449679028105888472988258491324409838067043225840624513132426057832648146988143860919078512802800108889711502698533501185693825919850705626301489290284301867175810450233763158638749556277252581634613009938264113156730514765585122464846718532709740175547078844336858923907084526295491458833204301558163255353559836000584558604142588904934232233920240177177140435841546670091021529796695539207786570943210380866474814425045313209966530874419836102307470460758960602731860782427484279329926722918229540732420504552679917036524732659743985031654693285541984416433009301410772024208364776371549145110286239120780471078723244497809864249212167822365122762421301199945937577992469660785260961718479316446670495409934614697526004977650462729949414844919357248759547318377094344575401976317015506603332034570986928315289602420487403418317843601662175056810188267931187712232620052860931655451093319935311959425116388335072520075058831463955569941015644416366568311690340377959297844486844218674074396800418022104516536838357284726916540043718027330525671252691616561564705815083471919383224211855194971135807363130464395066903997731209693099292236016411168066765442906450344513822987063552543019229501320553466393836321667964564462396289738978184468299140693333471805145463339615622404799046781265248823136918538586955322609561969876262542339440969760928726393955505092962236887680227843214980497604988229826747067662984435788271296281676294631199339564531183810969978358443086145998451461364286899241499104617410341084727737036581703865429160890158330584057841047290882654245936737537086695538756788898021567825167395183167896515348584977463352345422180310301736242708060083330598972836828977860220613784316521692210105278854555057631039169586959368347285624983301799606917662557726470659665605404327995120936698229902590843609525502149969661431075956004497858769305109374329516665026579014998585237495773637534822200791124975194932274460807926058527000545256988752061466612122652243830917314020283785531743330542720989542197694512272419799184321444125885436738179936035352594782182242118578563434741410699374784381294353148857071984570073792032552522635676906193867434617568469770539328031005942950366064377577081682824009370850328538591399985685387472726182556181121488335739832860293330432249034346977313781493167894476059189233391004631792991706412265425688944730872681199802960691836688386600146910742163238440260013349911735046693120752665712847414089955345637071080844230332812496949809117116921071708676441303444692935560024176334811972079057519387576822153107283741606127440817224436603063554487699981026936477108086058369903901141392170562110113859387213594287452564135359449795727016886671333292746159607632289414348929976082186064755153530127173593900553884770611094403198942265925793167533117821150378513692614445260489103498206987371498637516367232163911938951133410861773755875458220153873298508761141580011705956958372045444538934996941426982014386726418422228113986145480952138373905223172641885746612516169476204013243304049591091990388546986680825956009271948665511556120266538047617928550872097722220669265771575648921353193698936775028623105188621711680598940771131882417939692059455157227152148315679230794589217685423348562019955261030761286315573274662872446027594032475811556578411437352557666149258259531410542995491071631803764544370518892851990943210612767533906601685932091088545007145013388815880117078192347917165223019043979777516188439531915743134282371640896983030977982744477713716992431758217690999470300007931405767298150478048832373795558069767840448062753867545309606261041260217503601748380591504516844879183284349948916522685255929418548219688969021472726749519325875671415689670514772752883158270102936582316188902394952186909461973956988597823451237439405039177627605809725226100593047973428810291595362501522868459628807094758788530795109836147737982397423107234208649374203689044841435304459909488550573422845447244075323582402778959227372547387254024913367517896253771657989087596587455900822914007001626915363726318029258406311088408494001315894603036682071669445240460649358641466065189929867386734568902771359258594065934208213471167826691232375427177862396257248396129258705347977606636091056587976851031804249775903947019503933043961280993273893455403737871631731878858228911899230370780903081593706474589345382804043046038756798799336348553440938226918542474716250659314492809057623884822634857066139358687798085682003366880240782315537852215404663316835216993322952101386281049033581851361255566220646716654591695939312466827470618086824825319322850747390186300588086865666587565566614189788679479421759768541893307779083896485135980470144558574711322472689279007970081132397145996179535609522096021379431058611269386209566611694352561536280224139525706363565970180709994035569612212110672708233240881402357963648074162922682796044302169795979414426080016209890352041023544940639097348102809340623460637441355318999208459153003272282208691780238765852173552763274479712042241570650365930004376590738934337395075164045355098153881627440660197298659761023641005271737349115438764669250286217801592760086387823240159835041013391926081009249819018565468990911690986406451260196096254359708875975012537476889278028226237161781695424440875361629222448978508405731825179988011978407699802304367203249218177678642240287858812427462850437200468967596211294185289114161845268422499325371079556530626542056553858109596449130839013709193215508895752032295968140494439335086153468956024352643633635979026690084238148078383552227292261070748234947488272776891220713250430334594920839070704660381707189258709017867996119247020238989052097846954135880839567044544929795495881900723458005562808964859319941834883852745628053708823153921607559518181103242370209830039476839659944911412042344374417418061054692920317910782163906792102751126334425023590867912586646192342874850894605869361846460878419728856133645383190179216446472782312701641014337646550132900354821324425123332087118230572773859361864349190012088434824160846235166706776607535156128031698858800910853485738352395153017973205868513321720301101041900708764324679429614514745613587854401541126589376274116258792140652111980058002281746347254065468944825779139142280328024942954827688599811322372757312978049749686755601550153896834077793115615645574197444939002156472656744954649544495762610202447976182274049507382454090991042952930223826221022220281841814604365926547680910864868280458830312011196886538967339542015271901543980390210534388369433836138811034313517023966149636980576211310174127989364887357239283208429286101891304788285825829674186949443623109119796694691159099385489281964436615249679691851009581450010391265779950148162245000089512736776414152580881026110218175763035044079463464936775169546114848330245486265050732149092774763514302499785666281105923824444949736572514306796123577163571221330353985182321516758227019985561206235376793153274622832839063426465872667044716256542000639401947597607720773750463421717458508270666456799416420708167620368187871746002603995536207985843286590751094141093935310294836496613549311348294837403598674430238275559958477656371803637001629186289456583947040164286465593557118762917268609422470096348524713270940938030208292094425817478657549529605295162192105160934115162487464363890633664852544057071713570858981913106653382310765033982011186537179070695825943157239545663873155634955092996815321440982357136857995465125388779695162712200030663251409429737594065405833200651985490284169812551615077681126343265793823134129732633739983547996334518079874307445215603797527314569407098486730404123110233195091580736784324806456995083338295578333579433187555284254525606306324500063780254830520660196235702272170918974130590308447756265632431738496452146464595734997690710607841790829763935317683710723866547962942581756831224776277355961709234625270457691629466769434738949187446677471534225132306890047475082928818825112373938450034329730823324454012711781389028912605392839750038734276235554381337335059122099659894036606794818396683048514213123496785478276285197036733613349113376396530377314814917817256520417204444818378401114590298958735300988845315832767105201120076404058835295073287035446170457530703830260393883088244014678526995792129368095601076107674559928128082842508649721514752039061147404645436647578825357688935221579942068277345357912775863795365422896586411570296809112696984594150780731996838811118667425878191739846825156655440420044851207293717039457294474673934649978443456820153643585816588731431845330064427722756343022662566886091870819022717842460912313372904917273892084469988552270587926809159221208769026536173824637934642021973277962902996557257211907047075361963901603621750312423634314083880642189400324252152236849232276848840512692587321225915267013403353610953492801340722419687448904345380184685322804729548708987507463853567837322736885036681436738238749301614718537573154492435822620472304891790276032338840116395184274008950564738182263012464788087706675469907964648623073627228670091408177127192942224585578459219209234069321169667339451450548596126103571481396356188494789292458644886766023019161295451651601722696916697598780700221613305975796582057541599324974464681317632556532592139328763026109061627227938680797049133046472209225553341351164197681364369305085517537561913544023277784477282472941304608359630542657116968463760507554514020235944710205769117972616257567831888923548259864666084870544239661805710010093039311324674921695585437782663780506147846422798847658073811880356997098070869905426412222369424845996679776318303894155125078927029532684153431044150421008948448980154927036801749647981316896579219145174187167548686802377119364015958585051169121268856326903646431383635532701876332881936677755167662544051491098958448176579034676966377272984747182406293143341199334875125376269459504356195704916132107253311198817646949243736475461137775139846139161126048045775572346657659875890885784915738092623776120058157946699178531638834674093564373186113079486071742076755458107851987372323272276304513830331254994294154677312968212570904733320410677321047878454518270218489918985469790029916355171232488190930755588169193950360741848993191642909657808216519017557477106799223572890388688710773969134072600904261043594435301522307255125346638113396418419241074401894423436341555956413759946471582583514362720535821175350571554138214059578105899478624042296854644447073024721099953708057385361094713991702401660562852667727608521762711758373101734685876384658617249619817672379488890373479618666353420601096419630036667762710226859421034421764475741025262599931282492046617542224626562516893698406178449777148021960391571801986146987335295289440262856529731271221815520249799872299598370583418364415156616175140065273928174219423596032512191031088222856118075470430434589813986500316781889900840006647702283330848765824244859068306983499133162389205454211023776020430913360048121363884433856571974711908682889585961956228732540658553034495846586233283861869107045335341277609635462927916996570128669215355090091931716319459106822674350717074280482452251615324503400498970779366295387360162707355976421136994039042138826003962339736539568435379319275075512081667412802611229400059551333194394269178230689596831222928394527062664052635910144185438192953961399032398988637174332416941286604480761640165062388980809936796182213971145844921619064607663563796614728073837179404773999731093257129722690762607030790235997154637383515873288705530125708967480435658899743354523498794973353329066885402333953973898387848846703079065374176654964726468385689514778106306046721108329814778773436727656879313486831358782867659907054556017032037710891705171591497053986818568104465712876549158955620634764587795713446571267117001870106844004259135054204489930160274201392135501040084470307829654331627318389492929105875812921543861465803766910957963519077635090741280365458198312369658886178547938168006206437466604117413798235722614430713369050354367180107188579564454097785397004062616475774072975109117282748973444734654510392244521853230410271259034239473107027109116494953609576996154388958799500409502507952711620626548597240529276334707726773734641023427591822212128185465985038581616594926927763585876308987969332449743988356563799406331938332031059101225759680255682282216013640236068941652725579179896779184213989891184634750611928629863402187592835630346561104750441201948314476473466221876191722209494593414986459551395035225952787779815035841309771079873812198683382581879705729928420520695658454992534487388375609953999416499517966612641566472046311537416008205250577650574294944885275165413921985109401819815868514590334165938782788779979145531516124238171586874278091462892396275664289005770839952444415147644252106771210949797883438938523182658367391991110576856708318797964553892896870152502948170239044546645126414092751689032544630018592717663142428297388371105732092239340473260860781179093256057913158556908293946260759881127868210258227731062185433882920980131758561226449472878237989811733280104255835096832041560861124930595771243227413917570595401178511830343546113612135374061833758766159826368667807958637322190747890936474905732647784394126336095893481833746286737252981721133055616483667760122512724276519981188602302052050287727313580816289633728393142421696581268431622609770968137721010312157032333296291584211199913941405598744305845646299210714207594755583656313477340341022712306847794008500747778747108333275431999999831501047883145004127989157529884709430228996470328176100729969174720460075581144650748275616309025069540070559011338323769594668876815247576069188375026272526366069853095324495352619794599746154350353671784668345946493685946658698061259240072364312895881387148104096692384162623972424791784213432315610308579597198170156327408157231399901826042640094016297849948484739082411612000897503849668073030437717952431564205389675945289408914883171785512059456579868224305698063406368312576248831594395816820483738394359069977663330183476968040745712053497080926589640605262860971071528103068387164340385346703186746320494423100813423610319592448089716300935331773008387629791864911319521675292616348057408290486093535086347837001939945176004791574703609096126560396365329981716665776084364876941752246543880729051197730398741677921262874754569682737596633969183056460258367366797513845358659777168297706392803489372075220707394688303864030432668773349450713399140349232583040328669838170888683600720528714609725932733733905498903097306923748654854618389186296155454839308448797878680872963991299755979810589744926302821687351630106859473379077550810227343458251469321056418020180466059904784733171337940361256613155615812771470510518921402622031703602522061501213359340890735510233611435683711928450713434936496886740699253758544355830382913499443814202511484284689301779365421675098904468890074448912947840909901607294556801254445757709192128492087217077533108785697836906772918201996500094610588470426614628698399099146451134342255090371360218976356389779941143940382573736106999282771934759637079124944562648687150346932306376700996090065397270487719692663418243047012874440566549726664111285134365255830585872883483468997697244516801965220181329705119734950508761193631666732293744880110120075960086683132360649414142209439253162220875731585839177021574266725356669453023359732169220569805385694014036078723638930691547124964115839830753527889156822027479346677065386502963917267476949221499518729630302934648956673145599606973144011300850534574840198146717717085658887292537882157446285235745825089423086736759763604772573309077934888347319684555339482194123779178265679213009350869674684452037634386691780122822310002969936680010778676976507357335543208318114786270285062130584258631205381125713027137022954667182277124853950648969815158568600483137220248765338662505148417594165481862180487500971591335279528609623501940074625684312546267754995353756209647252685579613433078849674848940736898008796532526811908128891491856743309585004371573013191631518977759292666433270542967317205354990768130441346231358802726977315796278845313005983646733006442031817713632362635437044388734133392486310737589968141055283369863841566532422426330081294434676052155588426713782109183327558193568256101245530690574629556608241197167691084176750407006381883698289763520009514502627003865250344475848666943629727788493182806618419032945467159236541215009567698455422659399630907404741348243692104726033708854552987203959883765753563642408370280694728467832042295491678634649162439418747550332067379736425105548157324619992264917206174327686097428604726910778721988776620360907451102547447160925857293212057596075096438765477326764856229127921719153218991595807952467114838986600800862314480780164555847314484334727400573081423042744829587107344494667302715345409523783827776401307928574959082341063624938606651099958770010587677709386085433913539855503585239376068605625808936991443933226283616704906936519160565893485345990655398801198697416350879662561317430682491238825561935216852448429451999582764998182232512386925300392512989394645667997437139804221083347683644459238869518254861363610696082221749853131635950509648786578216788342784105803065790341279109814871939210697482361881667443342738906790658483725442584266946629128499862136950403356511916913648935969744898691638510724028192386473035793052360672636876177859707675247751955247071969741174480321129853897457080740623729192727044890500123109311252182930045805205625750637987583359414240189743734979365870883144196471869542577913179586013621946979102947266632716909730096690473367751227951451559258924464264316389483600610507366133454119053747016130105940368810376927485689986134626691580288987136847040232336162741717482179809472488774477759230927280199909260062927836851687645455981549452041283207053065653665493361744709054984740032563081778988257865975691294203638753125597181213321176818711459359569898129663225401688965429664403562944885541492276118537592765028654685052890750159543480109324327270811435388593307955853633585363134943878935586996397947386320651735576837148900664574919422122953212662279759965909303713876853026330761575513792511419124955458435691104737899542660830772664429171665835359890954592014434118661567001443489055007314957418157489456266415987698066121866139588359925559035232928392245837418465728746404093421353862533491369849336848645293279283689282583827602152327442383174663370121574869036608667337014995180950214811844041717599401178174664932333489055232023672949274702788413288852507282391522871495549505943491427620852673155955832423342453168145893930721253925367747648189440547000501969845521301962072967787180438563536470579233045355426853218423241091474287344493117644247800874117002057067670384194823905521846303186718679318330396589515709048070087045869633002718617487915365904179527993228292096510463613214283862810843964355006451106060985446639176100631483199829915767811734793029328270946225957137581774982628113179899640354657581578301236889928977668679921724503463778837084576220269281437053114798255866718407102911759857202445098611042635758812552655966375540542213158633324023476843850007857485992540071379525270426954751188407086629800623794228135830538318202960120711682868019178004695938400712221849253642081931179251575245772486204081053442837405983240885538469846878704902179923472069920313638804414250885152130381830319152444733621595018662983896031872793211095409867708375248069213817085126132531310435253187967675292721567021466883938253049646099480408962129459872860501780514095579469850774980268701678546574991884855192074665736350783770447150758565843160447676210581711240542969554944298956884457474885033043621914921312022897539000154214652376044124204613679770775492577775901268355972002647458711137633906582028871663574386615052177637086531012814937924214382205285239421688474029809202930409956453122094955403804673547620201140629068196122514530925868565600469025174526674231374398008795571092589390570628820470861628892005438084733411459503886861803180034041973660869550094365071333458970478032372596691143594693542093027301478069570335799349479582334464249332685003332087610379578025420541710692041478816766968980105661758694191254180321732270606287400054186652484017687476195397926404386590576031455436106183578253183086430915459658127665730189231161009941884784404219067263846019463196082150542313541828305386899454887548945175516076321817483543027691707216106004857170551008469503185933314730382819177739716822640061048564660661021132061878103236828079064742637539642518259673074723405330225730494688967457014469107743943025712290294957991643262465772887135824589271667700549406172297376180097541873384367239293357962101009221490537512215297210833585058096756898125888314514176503453643346740234950159419743003526744984900523757960295659893705917808816667847111541916888684058596148920900955482387922100068109932805229343185188350384655716081482275781519937314755076499303623954222165347109985747658564276348573376453744655870223379346074498281460425442588985373840893170199886159666458247806369454443016338094290279418839458235485989274012306445602359644230166922592219777551820892908439272567208324412377537209893467138950246400602699861536631411995825983291459455082495719158847018965211731047391575086644516836236462486184655236999809499141364761214342684159119473449583449683263576221176788961240644575998429799904174132619978140305001475822591738822916199921603937843527901849993350244226760781935971237004730794638399054840684065898188160355509319753873010237635745038447670778638153388226851710771244851228316503899379258603826223422922345672360599625634865781744317099947707928060761439780388376224455854998644285120368787352605013474346759145874367655770219354976577475571537689286523662639124889658795974024791183599095165142891206366004503344337805294156449096874784520129140218870359004192081414993243462487593473504575154104472985022472126697662536379395757586242185893686613001891802178223023869396705184838441535802134770553384805587363025611032458430766340895181566668718503030975815490032546967450114378003718216411986988724600736940730500174115537338904252971380974468686034818549324125918758960017353230202971747578707118974832806939116853878843138590287534553130833726364211909926862674373988498537878272936034755191708374325910215953831736212284288066212065851533730796713974181631433914436693908074660246308885818705606391632005827686324246581692561909692161460770569343376069361583755695469373300402204976182372439166101859250948263355213163079506771767460813452527041778553481860876950956873497644127925285816741398414511768196250606048503222250036687783608344486154857424494318429853806519927562022994015940387530650466239807771725925110119554350064690228160446906162816320034826961729781355139606709473845329396508430290539955793092893992160812948569801704429703514406605954549780842181127192889091370633962653306077008958678894573156532111866113719308917075046219018518652438592781652414764298284062710263796637954435034044810869596439057332200126659143688646571291348921088234530415347450663566305767340623388323630972487194055934675331655710105007091768247304762248260425155511249344933384393264036763882400577200210034991754850463947827193925884696617292022849430588214779032928237394772946934542958628119952845830258175760676228211781192735822719702091209525875412892136354001713221925699570361025425016005232349298139013232632376270957219681329856289083941250851605492539770209843195662698492390266496891729088320662487611668748804312446707227885052130334172760130518200054486003366401130959008102044706845004352247903376564365770006704801445617992295951955548102326426152400858257269583784981591959061247618583109024945182558008360117450269801626306147643935738480877044559914787832730743579252243246508551333615437528576218853395407438881129118650275627219322394978626902513460786974551623238129798460705306255994543209072853784950273352938127957008975490693304771254820023461411141833739287992621612254628200296609545628665571992633449370822403308723314632423180714204391929414743233983152525593341941671397228591308320530242862518458571827341190551282794233071723555635249287763730489869025162473701965261770364376200289846267386939450334492136093055613025815452045961734246242533692669838882591270812949631237345355132108235879089561206918523168724731833052802619900052686941518323482321913537531619924114998223376326944929467161403330354433935633958730594851117295263466775630360130459532494994315053559156539463998757875067943577973450182076036410807157646962226408790393864883579733138846479529204192789886127521295107626360227726073260252624862277582885209906850639462436124788464326261752552544862091230396231449817122509318730562757845248385573069002767251425159152661890200042572557191452560676211607883283756962779165849035304039004964796969437206179257058174047080221914704155182458780922770423346096242450166378120744104694706701238363306340419380637454699457502595218824603478904795140679611693872992191041825954574584803452222493718042505741100926504117213622449076551875571664427084290538465252025641594932763667942267062345765726202383818968920645604571218888346073633477819326924289866977974612415776060508511564095687216657283397541151006935864605097166370586322145040727211547542626225479912697050709331164529414512519789842389365770603638208914824796664641722395466018542446509952470053890847117858192131220049868372284929649542827486223598677926661252118032740995111718067965667529142981388686766868028805721556553335782350892639574667270134832620749058830617788245747207644598739606306696939626501577747349054410581626754338251762421503642225625179817265462748993386673063125442514180674305310797044720733302349030129289085004888602474304043500281148808481868349113072465979356166007958926341424713993753205117874998072865365919233532898186397534862460934848351616628427466413012616362413164709266676823083990866121390424751349545468649166992114397217523425922305876549360384061111733443839930338510250738312379484281296390365187124270185241365611892523020793648202040136028759541347277353912974430875188842609052695691096531125086652885798274593990837333165819519088859679588713252480885406737977821019739523899584917723383477248723157462472955565673688484861557075428562339565626407264481087988866540517003270151640615620784034221592974309145826767668361854350749710782752348804402765620115703583457953532842733688450067659725758945055467046390137403242862513185497719319404863047854613558709789949444325580675854966999153072080229589311048427670151497940170534044674455455796910240699996340135360092987942705444361580479210900721898495972303167382009726233908778069211008325780775228394555811944128968778088547417234610633293559555934212336034978995146566192640387760665327351435361195908454305075061987347714650319975916565428404071034111524012074609444823580780998326397680030074204743379299457824955969064485128119467291494915545230487857802073991837887490892937751545872964372748735434886592241060344425019612840567881790845178075537232968208066088832003369638417969250424363302567003571722726634867021218879012428526445252105901273928741502424773690623504986797554531596467114462685473737897089457349197891651361310665120806303461920263025647831942026793781136381536963937842646254612057665664697483603840102194372979501144255156157886232853280481001653156843438528033618220655121743306525629995950444309203806816503798027328809274232233408187838862605560535969295184235701128150715653137401453912205401392829363079898026715945618220022009771450812886895496665229974547747046328839866041129323798117677892745785827063532059272722970081136967811730084136899405386241977553377528104435016728836701673106367883281700305220682167150905323262360240193705628898919223532214551218704940466417789488813549649583906449799584194528828852511330204227030494854683558641658622622949256893022465806527708117926206205284865913398265017190368451998490057212243734747773210899885919537165137556245289931709076841020495677580896332413570782293476355097402336409657353414859141639604012789392694549571620022683503449425876740671647683010965428732813499598279918363353956376908390623498534250420955326610826988885494257451201095506919619348487674093686027940437086470528835926975874994919334881150060911728696466060763822933159203841727918546408733930932867854382281363317147800762411300916023117987479786198916127252463136403188945938462837368245493333567092440500819760040171951594488535448196770296713989422049336899379081345882897045267410824941288537778281682323777749339983287200882480839482843239049744999003556425300834314616772910819918529372816743793399681866399485556795848863923807448273289924999083524262288357572930443238363667441752254783611428252408718530470297116929201932151907020821083053677829907693846624553441510332100951203479438934042482653241579403707678577099186102251480222096103269413540491766513422812427283958730283109976826405616328129956133594727039552312136938892354103515911320396633111470980863239627542604702902481336474821380370157600944344689940439613295372331811898926847715767857821445286400748579294197535515943890926318212966817716150661618558826058341526694289985567190956802573886672139126851396799591473256381912020179687795005536190310432739308126423436956835890464867487049156975872498923464038942034861457219689356318483419273160013247930739937926644931574511944972884898147555542196751201395067823670906257488041782477373892627234813639759380938594204559980969744994715815870702421586587559935420452772062942513968873565972875189644449345394517506053861825591073764747734679044080227043636480886037323847142502569892893192177563735180836480490874234499971758628242138433234523950476313358724893983702396417319914533408880458018763555376367183068352510734879181694312248237050261996931814584553206654798111830771302671512971785899736128796916062797078883431678008875863189191838355680803124620337724696588518191945851581634518680964333367807975747427935723773976599224058814825336189774324419577882544387448886359993281599532077832458911482095147662010735113165527621423855303547547260597006638701101097759514392429111855018087990055554555598156016472701397710144743503531925329271578188943584012598934071964497065810408147354356548301752504083350412016156050503812958438942524468561890117345370416129075851599615583633054502156739901478010632078739982159509654913434114196394751300781198551427675815175387186992752067763548765246644501107960843170778303299768036581433555118043652342772727257737124243809156451162816399264726077925010807627714335246195223622953953965534837093824433833059232485874011715315420151951438576088599450761979996637595223481647868452355746018245374775948808234742361318136055482720397130778903777042686790629164027307638091361008714009911274148325369820750934570916423040002768648963595330679436915368766037221494780473124391253512883014748203178033060964098846866319364163112223281782271931611533024834359933459935277527713377401590138143070783761219136519460739682355248109370840832045957575606080151019879239184056737869207750799443091451727595348969848369072865498300610265051528793730188604247392819684848165084141190663966423117337242806504267085526825233581061493820807694115626482383722495972906168899795898947593697535357808444053854444695843635837122447386346640295578251753209974509808056119270599793235699586403795740497590337139264533473254536124642373155417796453237892412517811329382367931096517473328663790260808616513866698063415858019063980578970741134338794260653153178001350712855170020941986429467574956092900215371406139318148963116264241200898153231948874531397911183348942622319656173822918156475936417098283881004967816182707728870822524776335566305235511859961691604488149566359690056870008385878675818476886793216339538669419320549480011801971591488907014990681779384368551812263974962498593071557795941976953102134567776463649370879687394933222398457137282737063721389515508943059931048973599796383745385415512653262498070337246691055130710058926091619801897336475828332055743832809377605514547285240701864896844708447154268581994289036719671657268393267502370616783302743233212677228483500570583426156297120939116809565935785162271104932168394099876583528927604654154476364228354948466162634901127362683924942517216775529800550568498157827525652958941922643925782338170570170174737719718273687571367242385025549090370983005273885449960072454341324850690605982475594631935268449020344769495857668614646252268863882984483948870979097566771716025247850367273396346112759552896006963265763890558235257745921758851685863091360534100391909474320055978456781423535982372333144722332541761766374687206775060788557731598267467996476651722091130966354423960306740471472738101999097622814507205208951129396547928925587647182020162450295409527378270069133499254577731104012999857047487716654463675434816974970235199309008960529040955968632465607692693396373536117290798043288912006288422955675694810957644088172270624541954135375714712675732558078563620332946616152722483187187776011278001601744234629963367354924708819315492026321534578503373719836787085656742417006766358620650347577205359043641993782552098045173152710728329480627735915316134391630299808947850111851350797680422844764278333429115879648957357276883807658791524365132108546093934094543542984602307200350384952914079969432008478641836079483092339516976802383012154998703893044990194190575348326719457328903915212273696744748969415741382884717578396408790802248311220930578135746451251592621586841289919838758465662454340545094979761215393882146635289805207910822994147448583736444159588455075641116635518397705552691615956905912579211462482810915034776587411678916363154988699750355627369623694234330597184818479605423068388890419127619993298330448222990937056792597795522581308539010771870945488564066071353642974768241893463362651271692529371488163415495576806717916727801976248802823350579216264088956206390105440714916731936473877835557370465683672524462490328130762409852910362658581933345848162491191912130309513636239063286006018304030665127427624772081508219010168691936641705090429927357148690810533720453513018428641892425986007660989747028658748887536825689225876599147775487632668609032542254893007098255505415865755754474863666389915804341098636426965867970856100740606323068802968673751892528109618429856571742341690310851435818216492983958552008105843606573064721054151555893772610120465626945460654274098483489804869129402700153075211807528023591140576724541109506362302975078246452248014840410117021888542069691946008888372879134433468892530674076031217593216502265451007181994907406591747612119128092656738064311371736231822424339335884832037705490593293553616052213944938812781881353349120173283815251082540654759712200442580605525759146054618635242825135817629197386059813522129679986127444069161093059051238683494656331023555265083947262390272520444017212983049712306986368446561950772179596805168824593099526386984284688734198966678509457951257134139234274705851279710633666288498066506956059268956259213890599103081478163933799719032710478432621610092402564441932121040444374216083175678578444360644050358488301488966330941779821396522844320672912917738426753101324576787001260606702077773464901496329722434227245750346323012298041376343329580772695300112437008918375014654307848392487916718294648577079391791285010547023114264924304717012001627889160055176750622994022809547577290287167309405201406326813022341287180580657229218677562566577530331409864077796772493061254534236381213324589396850951474327494849607261512710584451900436649848017923993094392094006557535720512595167954527620098405035766042914039967250216354559999488007460944471156037251674118664141863291396734626745470528430661499212386070447870223868063348707493834975419856378015930009800896273277482862488728687696731329439867859101326788878354432706026369046518384670814430829336487829707028129844500303490448661510682319232179009237685428392133721113625205556449090491140328361477721796079402731792469358637625957397205501967761739324326659426125459382718758719672557099938959270673080793139923677895463079076756506202040577682759768544368091203958320727493671877150874836855378943885527340395633202726547443011271142251414241594689898394788080091931154072474157607672285568055960185083964948811071212685363822943524860719963554489767932163268084058904170157570468358500477097682994285990991572000582858258950320657907002694451443469228118166689434527576251720299699247926232184328646126147554992347291809372393315640897264829308220095539612014695705447529457918492503041331030148365282377473937439211254263400912240824531842868145191227114855869172480992182139532631001518125422004985708757403585514051387582962685989538968394229468634769152981379745930884018669132775845069385903505657790305103740645411709772972979594294426029289637604481103380817076378588930307011593583340721538193294668702442520933619180186952352761413646944238590639747873261548767400230574007290278889106540386847259229662317055230258655479325977119875512941133440951957798666154958930170336464865722459602926221317501593606591875001757628558712033229673413087348764381094975602579763663368707423956200629372021523904126381662762662067664541554204769767619272462677308975654919917442336535588081960901019996741669934101573142579599884207719856661733606131175494406278688490452558593165682010660811465878404588985225428604333384471283543848063740099734669987349854512430549558793039230375545462668363035884926244917916806015458185220279203717070062321594515379175307097369574469607201205189178753256828688980066523970723702884519960910833829488114985305626332917034491891034045575317302641504883894270115054116974201350302476564173030741228768461267125444093400498043434094149480950509664722268956793603656240720991134401393842553083731963881572019142893383231244955245098835786031064821941644472533900602227277698677147923685088428620392211111158910818243095794121593657632887975227592039368501719445414739180114855970174244700295268788487394994078762417825168526978495149201150377375772602807192194950362032676696123431226805893364327600788930688764575922899086057936002241726762958234139885621782143766144141301784212035042405556374713250443686138182116052880746094595617897882665842086183996892689825062675130110834786710248304601563634235764134396191114311795289730694667997351335829965217909254902339473298597784710126867500980805451405997130744182535959262793571929528455990128531602743473080871827465570516300798340290386213768792520062795227232087242078233084292675380137162300567070686865873014561495112190165536045454203658120916062891305870040172768154461340387885784386678034221075197579614532564903737649169012753238728109714668305469244287637857268763634744199462855941414682867197842571562740220506034345421666169777991103654779613257429946402450745473909176107109313136651453469377600865034943500000281620249267434901571036392434003808014072269515447391075855897122092849305485723310918936741629834813573831437931769488924910038253029116337184400034730113833829598361724108820870736700428342952776425355431021811659233280315130026661572598264561702263831719487414023268779593453739248082746220533062931964901119988956031883354917351925243755612978503307948200835940817539667340731332711308726592314516367876697626904009192879103504056697195301376077649519040713003702182834579221269022044866494391759389614215052609929180700936718227199900400317016755939810303181484519813910963771264241748567351647526243954233544959561078854206291042585571466741677198343288323597408131685895319365601706008035539822744582014681856904042922530834133502114185674422438340061182924042680907391473182954980629548966380625621390685096934126533191050234315573348307204085629592361827732046915749930924832706298916870850552374000749112737991047497267450796186448945385770925964548358583140815208007262542328654566639527689452909679896011323651243538422574122657103157217053286382628350007992534693338799512542548313051094323189703061321339724326053197051566376339194235888240456039827283599208248783331304907571821435878460545584313799427154768010950959877358095799994059858625950782564299057568008142109605785165993780980637138324293083287080775359364935831483735811369871515248349007312683584442563577007785401873661898110605835206442608508078158623249356264580864862712940045797133336535285459925312857916083502586572856100389301296615422554046827921826949055512226979843707254052476641083541170293864043550716279066454981042085639238241153301974101355580364051699092836063464336665502621976354056386665804966517544419996951198199048139859864247612289628887900293154247466168023854185905480467874660789794422859367531053391895820366835279931055999007400118329058453854039336794308384439681013550580520922736934530443169178997666358768147827353569810636192222287850513781234449047189397232715540785008757743762210348521632385316051684461224546728942069671353493656895660630297722131555222954448218026240644995062138793560139665901523044779096837210027024143864704190074046061075199282193629736742638866121302943709595554489775586287216400515459233879581555484765056307697417090553832567529494028644396506402400773771654582344552881813225128510100534136539682851014621445367433606158501505651161303277916625416249333000213101658298264397124898542936368043431557688316157719769683787578306874467313694282602391935591952475978525025372625652828277849747398353092912677904487676444122553096783191038236099756868458167467725477728547424636237602700477610836996643100204464360938248017831137679932027716051631058784502622488199276776248695875951261075521006238889393406673239841507629327197298052881390981795032995260893714972696760307498818027823405382537438490883441506991755145062633730159623512391888067398297875712608713126999689043368159805154186957692291839691120807098196407640693099670489848380978407291372025254921514130684506258871215095863101948933407342779744889388555434452115596917278026060753008171135271636432444226445206380668523501477790584198684742217185570928495614119607560040152655541738272546578765515138601416175813366674859899773417042104281738082763625410571987020005013733123074483483429827253136498672877428244737738563580581726458856482597100445275828586932399271947613730345893561226569555561731117421505495019344565717943358478026189516301130637651736496286208936373626348444376445502503706118152669568230620591058845540137353213122823184163177625568646805429768080807852935579940141799864441573544529675040329661212406502506818018829584906033190010084644969221460408100872310927952426534546346391612513212981579742793069327244060042795238249577551842433910309710987059553341459000759087092692988664502311502355670677123039670654938212318143219847219071188271634626658560342202526599721372131675716420493664656453848735794198576480974830322645178614956834382454766301275034154591018203380861498404855705750495846020525926795525667749901007226115287645074159293464310309289407724259607322018795044733267745099705219788645012115829312250086630663687595558686587753629287025013393130696447693836605890944412333162984557988216451908239752894049311027502240899931135732877019424635008032112197674334857808981128912542349992664836421609508489145531758557582779910038785115735809433747507494557357710732278415517390427729475742830702486843248742757722769587231784224380733858406343777547787546570658903552973914764644148634231458343428853420145891221235990212542391054507980938227870281201986159331114908347593296561399598724991391912505091139389674394165913773170336335404026637438099082237827803925810046950209788819952193463951437681715981357078660561411762145583012766186164421658206234202832514797711781976336944834938743151191861894256562404664370872305077349947344593663587303792821503858248903345814300370678903785684804426948307994165915349480558796395804472181907183322481966208555324448486134255618348158314072290473980416488483301346290466614756326631037492340318078070307821294026032803622765708691834729859981707680247449946179958572049779982035241848452812159120007893600167610997786813274145598603643567449441483025434159078876171528094507873442928142558736690170139765806330322650641791245417896004700145882999297843257230017678930707639544340018151379618143101070663877903058502498371688687928306166812688798949753499590938899900227873531208082565696350485951241313450745752610102913349502927450599814462207636441163883626600180171884552259897926047659664562265678161726999073933743326230515416576617376111429006495371102706563713423201862898978345196335317558850962609064611619644152259164510489925584764286404735211126228797310681026002909047508894008948828029226557905955292686876245067948396150149842379214947283655074945476259712393318773202960826335201818291193992842796579859570098518345056907630848972806460358772741864808469526038681490770863005281237110010960489456328764618434262644492681119488441570224510252386675085947576730559987539110743787870807939841540139810020700904379192871049462810584265763156193451291358625358353188327981831499447303956337589761179718762368467156377163634219233317543350937736340695514803591883669574096495520913459375280796077922916743150538113057271863726123337042404963106670842332893928248875012619221387439929183619297671250897188122942502358232520568395468217819667897815126500784638754707539471284603550365657711956370962457547095418031789912806542108997581727257522584287298738353291456104521545230261746208911088268028053580557605997702119907759030491942555520475960667213390337042824266862159100871296034272726862735155345230195364915907334049058530711118493254522529565180657819386001474893152057771324108729927529840803928795402387057840221638799448800391197472540607202630426381121235134391597815117541441554338367143155158876508700495435009190497535939431840706457702483773162662960912659902932969533282082500658471267892011173239061932962084383943929752977643296322001333369536945385293040587843797433268340056954210721421690483062537566025678784832206444905482868001454706715290700591865498448672611175513089292847334421891821210048734612344322112543510013226451746999407028870887623167395263564195984650057073083638261370091848829223860493451501285836233915120633756569396118195893103518433464347104746406079814043928241837233827302742191211906942116900477934848134569743756828460046396579205357887345770805783526251175384829866676542154465178424639508167923803199901276424531020029342911593485882456064099846446300572019461089698260355204855918729012429120527075096717239878647747265090792653538975101519568237405481070890831053960192452181372338600894729063064792045468902840257429562138322710102017714145626472175150888881752756516855255267244550056718055513414333504347017914448316382974092801355167405699282621461269709739697444092384496571097934273968871906154449712098136993787979478220084867487690607082517099225629945452378318745862727364708619717041223151794591391756930154226853359836830795200596367406016649289813163217371343047660885034334325879170393156875712468197383444328456381323215559896304977441419944519357499536046643339436168719529452122450166187930462089588540156756537588568535394602866082314377995560967871084148388784233935507871602062898307915289693978118433995179761892675080918835133462278561538331007097141933658529084398544192957217123716251856899012553273403150010330164983769305003776817096244796741045077400800504366781342134221704624454802018394157054268449901877920640820185425842203682852851748199780434947191934016202300321270105689683136262067886337472113918517634074632146074939827439847771155244721779489393000989904516807915540306309327056187661862877347545692744622456063400346811613641342815741471586425716975751636018627529276274547158209088713465909931737464667302993825288186511316724157810678742757812011641879908382306118825816097828877899060194984563188577879578612690866493764340130125043163273625474149289101847110997808393456185559705506506571578142332605042278652961913386795088504778062871342604580988536952900760707749636837690361720891133467523153786964385394817027904586294744491190983089063268516779225415481729587980024702717785973486135560012371382984263763233392451834473320745543226377391584760410574071540753948806972715412299178530639341096850799868249006928070238615691141231837819647777287872243134786812856386979805701206260134676718309894344427732649668621171762893421280871792881122477680065041993322189028368211562651581728453820057423996340865424759281834830398405219104648261225766840824274084892603496685319649189774575538984774942487268633760885672038061890022223405202581482692433563858627887409646033187234548153431823784332698978367482898454149393949934182061049884382369433751778000611871833198956439696980670097181403025290275305839637402870856569928646554583490922511699271339847237586074227073701790903986604761004270614305380755556507189832609500154171424926891853062704679194445447187430520158146023419537564227366873330186408202696873500971271563643795715273881258057513566892082900693679217908118690376900947308612050020778332180611734642955588648506259137978785197978657614812222071543743802045501597528118788542814884894998083107786100254917967068622992219822758645882432657815540124206511315955878473148112502261809088761248210845566366320578752991464370857673472920878958911792772574541912246012760235721830765130108813465259785294189391790451409495960391729460499515768235789934976219848473794446677371545165888514570042096713819827897374139218437934432479575985750275203331691601132884752536846576376112844387719104607959064059224400059398764847601676605637137417900388330786383840826166639615443128514477979576543245274480274157960766523088835842768067494079894930704447171399744491514875692226692652217667480932544358126035765359263577562792463816096106678226598266827962525061619379458319411772621701067297226367445010509561090942473409977348344289166371713436400451293128245029304713267383209982139511264323868143674800128244045621448015739881240058915332641669273358706784048908670360793590083925522218097200941983147591044702165247490342629784913964911876487189974910356969487130589704129293519329115352708747992326135403254609384017376164957389205242241725270397554249593963850617128344831773274420985670008091433501541420931868181226501797745936229767613302334198403444643529410443157580496720039134118345039912268449798405976493698005516678609489719240125688813153384629979299871395568869446718145005910677184855711555575073458421975100878474615519107730339431998680546012635301266307975153178402962881603231126420030615416787157053361280931461553050877702982701340645969364784252586311657115467113535334701530856383533594596451856393271731158764188878533546300325748761300122602571564480663833024311654695614744479822855424038318970812797193346341958644984220755509849615345766499835868362155842456509157066588538247792932787888054506039355768445360214430847853232512694657765480338304962719361633342095404887892511975977916303037366233623030605700864011150318599203899724907270281524722834612124347104080583269799852082119318297973611500861950668148500456615724047831326102924326544585328627636485641972651424518694980315090812521596007016930957484955704587139538449958452754170353416908949146240554332871115792396455088346089786804622421704722469720918553462672969499764764699554307029211039290925949677048816741327609523384376679949660691434423021760663419908816549933811909494783398568878460991823263854451284222438914060685926841750656663346122825514690943198937712629479288329925738897503902490938523257180613268081936181618498255679751043740870761571891823885454405972233678240933302717917824369764464919124827653048365010580015112706681796401391022217445988996070794442498371846702952358851135365989878160639810795028764855104103591078619253755984936163583478190498480042232236407489036960858274971334711733209226210125450459209171381762310163007359379489064700221563979007346914946012595473913492542532235974289447145332543029876597446710967948674254084984297774668394234362449955737550513946282881755550906202105411489397896959603883376866255734385069646364548849500795166266573688490735278408387461634266953538766900032959390491490118564564158662578472477454994807020408764472709359429452442184437629884108943713024117446559662712561340249522074857857711935595894078192484605877850181736655058393449210471617160109364685477418788525196229592546417664399687038189770849226387894819491577666229051031800915013677865754015768137741475854411668549520003682855264222271997367185095206737127193502788965810814994597359348285464787619940876193577139260567946508807561030244934136107189383864759627801064771100455822482464552295358667505559521288495081693787786421087864853197908714051010405552787116712509334174580473693323189800360997158206251215394295414288997720777524033962706023719457593216130885582307400307590474280784801779467060173104703000795062159925287048340334958831756551249535936044528649387439703556900276886828365228673340991656091613262531657675714655715515529316538615021115762335500057104569871169098952203943733036529616430864578012259909897431579727997283512460323722378919731936150800748186267688468269783964679888275715009611404821287567651962615279441425010617992115321518503201300343146728224063896408727398316552837921952879600684256510674769214183852638122972819131201060008911709572412902305368505720321533015557803008189905849021854057753396959916111379731047164395469985746299021325305863623519917018942599749254976406730219304318255313841062719618056171625048164490810658090565115013098070604035145860950443377906482270472292304660218923133793351503022180267336906504497241748394614625425679444418331116762035956936637935510845008632117908915857982775899615001774982364053496266485018917284963630591540444692579645152476418730372313267307924319697656476929790861382046958984044935626857402539897185968251103850792296528197639575693226753084601571519085061268890921840762599794378329189028508462434905522755690227251245077147623311010242761882382930161219927935870835261747561935768223796148260547671230577341453715502800013680503514112657166943474701557747936529554372429430724482982433675809061747329293740330717409945541576568128111246096693994025487181721391272761354635057898451089177496432592502650786928870973148901898833019395323741987247281779953492455037714069446250153628204445195643860049078971584994846565313405171322094916701430120504840351294575237558756778093904957854277516418651657854317043570569839274688452583841729302753726169520207909254608439978316590043737035240263391228210525356659306152138845030658804645938818332996323541923264359773057346069162505663909603183088759200953696711674478635747246124822570769293624431247083947680272524998397471437628586589347107373483195727105614543216648159764572019117249716274226456244974587190239111922229806581158690189541168184943509254074589210642423750726054559260755306798599189175321347696317531888863291175480644670631585255521346130231252059167458085367368267206355893939995697311742774814242561025647842883250061177571926205493757826037741432874004587390044951671676378095064415062545334217708543784688017883668604339871684445897969292296193338618537910477886517061768854000949658438310185495979121824001552082283127577052865287570346854940285589796474453619379228521913302485366843664861541658106594080218433615046291703466164156619643594903999078267117176329828227857355817376677373896474295676160651911046633774941049088539411495870140738507250412722160932218197078495421553437284109175970795188679459180728999383157370983307484063749279262654955494748766069601908257734850883208561619881001016098678371359684744718191883616452246694300190975140597869966111266735902826212722223603066102127682719662378078002332775431701731763044857714002706170384296537498430736646568191680481777099252529038708393394308488019876125329610646333887462665266128372926061673995370152489897517561633847233348524309971004122559780566896624122704636758392507889479620812702256957718443589530584915969633734540704240711580637184782225127051916934964057527399967334622813746528451939971820636616371501123500356240212852815919232084606808199332148062059845111588326445640548367405373193140567090489238572349278019742586226052269782249860674606017647043270488448910670433798878665659365422029825736522687989039016361366578060486394646810100044604845982973127669969815500394598316503919212669603391818765057692023982987743358031134379954239623515283812747733259908811465122083768064893109146264996578620282116549875433134064667829908182637366132421504856338809483513034592576617821248764323670210771083974897456384002434759142635074929705448161288269972502374292072018897658945772880176320465378239017143359636878644076309192926242342950881569673550649537884170027890058200769056263727671852356567617998160458211649380723301042599500991952566482447166400536503510876108848832908679399199294941734858411279166604433736822253091742471593180567946003104272932101270395179967436164923045946592568967631055632727734579671390767684924805339539154840423600335130686680618764381261045193809642576151486327703809800016700784650422348603917007698633821454466485030332745945664921121192711832853232394560433308541720903826817760547727215638559724316384143435642126852675839664542030976266539352065750646370302607875476783053416132008437487666849858941434956468507005130700616276104180056964046259407700361169938140620514090047414899458580399975967375790089332154434704064575936828318752990550074482495814485574195404336942784949611884462863380267356455707646625895984491953013670235672785985191947879703212743917469140108766877520731849600148630565099991866959141808035945714539369740051937908686124579810397357445060283004867988719363926200527852848591996956085966632328676411334125456309548544624567069444787875553352040369568512935830392707790176151518170792895741403979195672748036600020138170851336388212508575720387298632373908506166811483341573471235110189420869932473472830525872798973516370590497486902598074578120116529817086317859193830705327815295997542218021715569187461623505891237014888256854144479399733986456590667136633889453536273108065028999105716503777926029607630275888140290114623755813505696677661816536262999405941088258330113884460705821639384810311214715981188787974318594771121270457037192506932098357770728687175234615515479741388386123891598340883444081584760906085930136267590188506904189222234321435695235678192205473360281126652009838059896164503359468738506665739610004326552174326497783382456795699851785868765891951676690549857493362267836022085823377515024135988432926234965811510701513454020335576371256849026484926701560933464519924360414673389060209395805087756320264734848299858402630620295380675272535981167789157147283711612047317221896738297860840405884754196126470342238194511140908688164142207642445664349172303359326309445615838988222993133462349719982471033924283800215615362636070079428690820595438377926930003609720951302415367933290805342399237007919720138109062582510205678825202141698303544733189808456161177712136549035360301083751131309873729182112706359421515468646536108645449872879288971916354738326782080886928168700775416479237782155366260333151336154126592920825711522331442160625769795262666135326982100644065185531610835091009807963073075056634069578219333134046507972160117256348730258915719346109063584039223286054870075187348267325993176785656945598628235183701617793416313490893345924815734998372866396264014026418345227180243163467874667840302998448191772453677165037179861018787526197283190760061130129483546943939897802236485252296156300106631342893965334757237539470326617836187959837820372688587780879705685488010010408154240103835723079349944918735352133017245579150207883276045733021768815119414123579522710679598205563901445915005056690419185600649902251388880977444354174583672085534426695330470600407714729396213904065483578311956615852498235248206466025585196245821907316942933145131450553946271406974465817400407612076459274096157478600462501999178701640402904069442028646626335106412895371599245827702837887752448681742991300100927275960644165468976591213514713670542281797657968752728191935334076879375671010933623914883840422111719233569087438370976145513638209814065925354371214082514122153128684171999695048029420637054568210634256607187720414413915366876754085238220489620597383342853218992940621097029139688513035768670309402205742896008807357853397648317620037858254906889777190820713644027990884741891283674442849025339307328539512974214703826095651661925056079166668370324628667077464523732080130676734444445501344168838382942346663601354663947620756027668416724321616547273085963344077528148261556141143111906583172910040633849513926260715225978123932430082017194001290688901988816378029115869415143564003507149817448867707758057694266449669039544871998713860439099732199750300182040811589583666354163673228890614648389666214321373717245108267200604658179098230481345106586319682529608151885028458171399633340546633673126754397214055285929670439803987386393176894333885763490067177754429049875854421636594940264656483036100569325065285581120485708046979741589279351116064652218510871216271401792603985242465780534651676043880698696339707314570418333272336436241184848547468930462823836221641950998932764803234720544782196329027829318362453211351308473349953729746208772038431633784013566741028163896165415098078323216783033899190103314828838292756960654848771368356269904896517109110531603790211913273557304683703669436212879803545647799198156927679853130295829509679535046856381195302698830679252717024257916579476193840593151400220305062766732554087597339933056377364635111961780117330802951242083007910387629425514078322606331013219526704318983254503755785859996866931570737545894268510688383870905669524319142764992168382866727391242798397797091543637606431907988541812156651686326434867465972745056905288948540604193907316339583146669797365068394106398054189924275027173753082555279271171542606456157949227528354409384401979355669338769380565166951767449734358667183207813684784099026659447087503916630637059129289675102732521019412586180842626586200377728819594429981450287643967988129908530998315761119092265234877471571064647400849906761202690544992266794564063870992348222178965000669266563317799949573742521191172306156454433603623307203568395884994216428568924033591615824736034882149816939880308763274845845021541922117703152663633054655817680328042345404158104168189412405255787252008472629524688319884930075079342485702017275504787395917251121515729669414974286099462155394587055629772905136841628439167722004804349990345802019641265923234667640822553031353221051652411242687852609492062953502278310836837220853750855409076898029057056047980775692865126155674693616561294337101290180534772485785673582245475692083017883201909227250837531860036780951457432653019151775770449908401190599132396734717863094169846816141383207340861921784366822495821286377271637772214823369293225092559955022065918704450672750558827872543855671077309408842490279325936066920396186771161789381803112752748530575732256161502703428317173750359903467886523483328023800559159252193446643314507432034299038487320307862119226342809865774409069229865817370963075252940938702749356748644234532524055478163814328337488099711588174430397952690883851490419032892875054304381791176128609653825399104368458230792443349659394893619703284932157168710561834049578139190530780501154471158257530452690327602778645317827229703824283616560585300714068123474039747651478054745180364006776936946005235416608362441468301993449477333130432439395996706554052499749800185495141712220231577135143620564481191002530587380766970288964282805453301162853146136713594169103934757162097437644409937791032162234534453895344346392293114529756207883229463169659920923126324030519224942378586050226097060720361577872713476104269591959715656108206770182365458259239743093821027028941635163390192424188697073578011217096924601900797621601860505041660061406130268440468679396466383885721700690352642786906235178932703488865650480010047018649929058125434710031067686889901115622586078164089359298917776185410740057878789368095241716227557882850091678247968073892199021573857998997415598816656596247706673144004622512312474534984744828091162470054743056266082074222634681536261542040864443241489235469423101688448299938855072063193275761394465402496155115383126877038196375905693218221737551030531086101470336987062520420102225007771615794067639865483668023190626540672615068869637558429049299719655676438763351079953075591671302681930839766010001420960337411265314533126569923345389500761255292578266942291179194521559779475471622555002620832210617483777631488363215941128293385656241408749220014030908488628873498130424817439585668885033410442095506505754990543570402674842443999392099995361478438116951766758011772818498210108339680102437470680993210180196234700698108408236332756052298783558051396746747707026032578839259001381509887466788283089910125462620793295330354588058925450770395355841873375222615969057620728610312059596782674071197571420114299984465550191324362499345781518492901544957244667944440622328167796236640733457727206009252473003338930647652612332310569787587465858582152398998730222955257505815862393612200428123706071511075111849577095610039328345863407112641432367594938626854685132085081886988323948212896931332107250768927772918234047440035108665048218899650841667550127324158745513136234575566912674111700404850542400024963144746915487296387659483611438124897279815436194871615877410454713963849268014950851703922387962112387159442704408303174175389925015430475222080644634687192214009264815947770734996300990611813449479048440850710763489478355356798706781888587875920859664908665745665881676060934619801775982042489395398382235595769614698449053249482849583560398656085851700148253298748544672822750816679179467689632856046136720843277895772817690557049260759273535047112877431645612276873925690631693963458957927262698105981042756395074130824273132118819885729466018452572394960252965530423040662952700840432599783317026730255498773412589723237055828003341941242397655082577284621211434997348293279290489913824819493165052598671333949619760229275126446185193909477109972578625698193784476768508105338411738120538352983358001661473561724225555135526307955615673601940167865615548916674616943967950330480887963009456358129709209604064344395361359834049764824412920588469434332786272186074204023990220822982729340321760855477209443304278015189480724915359619448637224192773012178814616680237920040639115092426379430523066318982414146133928756013527809945588239081300298984734428261666863962243525161200501370405564600532546769117835951337534482834723358332692044631690288215409552828611981049770580374986952272543588513083292946127684931894797291284017855462807170890538873421891935452142684950468397784082216778675059450290184641632424733720199551325331182937887859481538131359770510009662541522516083870051949728880005918439447546330986318417410829743811895350300193005328324433831613747449388692438336927310300872217945219920973645159788807526458773736694850320689496515581668937192385399935460523682161375268729929626355560008588501968487154647464235797324111643152473571267738742395154165084720285643943923096529486890635468488083036939109329684006808040542797326598053593752382507235362014840547979102554613939690003190593747902439586945912627714725031815838167812150427734129659478321885547988488511899925948660653492326544144873800405886084815447266631242521942678969106859546102912097634806314157844114551450231644798460318701570970868307621513139204760329612881783716096732097221763282214786639574390772723161900765368350739968800441958181806147892768583583571080244880246046050860916345143469060034567575124447079204821244629792322351394978198586679886543357609330381710465481524948520529387315986733988927110659904314398958672692182927749445092149460415926918597061502967424311389932605742523092863400237082404599571208588552757854837274933901415915556450368929494156164834456582531195934451447190859932032648935937639524207711063481386431733519044451733836239796346994432644670802963253917468266613478589272414822321518113988422190832835725881113806326843444040701381629574389430353313613399967358044892849313490303672550401586448997289074294523036232126825873653396878206553536649655436468729289588151135225133951120272150332732915058691218078523997003026471537895716162991066265824377618789217372603814406950582780421165968854200061279110752444651323801995574254259785370707165945227175203607381440168237884458468540144610740026900614691417520167979202677403769472849350782119020059335446047735711749126330904541401838019827609028143220478840510995473134963435993682341826313245530713295669772350538949853805757589681241080661901744634126153752299707287021297109548724574157690066246046661901449725127097636625738328492201445256078579159368813150224940785411547805539856573470246945581466635000144373129146389474998144455587798162763187622148577060902075058069966712296421595215076422139604993997127535280186461289127957920486507812768722552164272605627062617056792293967403599548824522947762346159322966064345666651429462840324099538212932690313148476526544222870094468753001094728127618443332998848458053294897159430968191749686203864507642804173508292161142383981865975207153998508036684412036335952648322537863625812113587439528269804972354110257326208351817775244522778744791561818495414526483837222728912132050827323341058382387172922866527646257253078311990570064515325544129621864777390534144876868274927004158849466047900420223469495290660343544080015814075859511900561380286611501825837368171756407492440535102741074773462263944426473736120774402474636335397441107270372859512425088005798153203931639854381019693045825276939938766828575849377443499835552508132542759781458132104934450101756011155954214249186852974873183315289800672725569522334719768438781764542462292019244021699819862121700994118091749394827719858821060684394397685843506765645100089336116106464017090634158985544531614547808571611753589773490306805495307170451648359231811289195057678200284449707453795643773348410336369342536052918258159083287086853602024271481247195606981957296007599087378046797235125144786710125549741971677907969429310911445630162925687116518551704677761623973659389694712217052643033958343319860119852087744873095504414298606183028994078469941674256664511551922658081670832650602462091870751149938809472595843804528260640707023480642729923858299810720426771587282058867946465514359111768257688366009552572571588108257941546283333597995797458677490252459215742641486734693647561578711588705978639754713787420315395197940247409891039052588494959428935611465266755144134217348156185840009705808942144335597622488458863203445664778802190964063976249997524712924913143485392862536670996922454114494820714229917423669909193124934528166381674296223006492337926871940482693166463179762618300279613856755124367184063264091910559640442307639019593399040377935008124205021170681059028634308424706679978634434105427875666226209553687970187924966645974242836123623927721887903080055663463746873735670933119935925774794143908334534251512878724512442607749954951560349642779640077659311743883905741757924938867599568041987520721798186162157371578211212754037814336862357651178827010322108863763044467244138326386056713725293844038764293660696599583245537810152715913572592731242328087227540735257484822819167274921711273521392413870258821028236826665582990954433278365760210879263878239428406705815231998385480320291152379327708541580316191863745912409850356821371205044651361215677878816222153936733218616775670963757803047024430814888544509415492672323243292529128148800871826214270860204917823945191019146480896875882451643707675583871914318405304197104397672517037325861149672361854513908712654519009262615506585885009086800583766483980798463530496878797402289872549883115936724388118700747414562168490318135459754238705465163698001761540325302736065840316178844413785145952588614546250508560073580845983702736520703019050743530159249224561457177724568372265201901738644858872161075868377978796826433453916986522819439228497194844134579752983108977875703760740806716529548885816297628754721116377685977410861092431704917967545945632871579147667102784912830496413147879667441075492401411851759038440724076332013879867476574865229326992417078879400502152398611974716580302649698361653885142143637531375771877429516622947684858463801866912193191024490166057484767288778331082035999966732010015767807926962576569193253861594935112824541846675611587809316722125261183064926105119545930133034542646147692141023777482976416211080261189684260271723314879296607822749797906749713319937765021741901436112998395384410437091918480702967164990605519014261739483176951787534204543931141761526543540447100981069008519673519775535037294209974883630677030307655956008460156380951881998528234158259372043590792318774961332293772772450190967616570610240603249655010334380823927992160446832728544840620452056664416846447139547875732558357380937893434776488521545616695902450273891744608736546765821638171083130215972310306654961544155786697510021535100705644299150394483731698275566750298457584538101687193105991608366717612580294714162497377194692953658080461488885303644809212462709579860777385215250597948396655332636318629070985260252430239497111809629250972623531830792488780972678591411952041994060046200771825254755469284542990180090794060364593961147031981668733991364516941824242529110267983170250852153324749538412176858906145723700371839883755209288680129737971502768563160536530062783375638426039563926395403265082068590536928528748338656985686600009747430639797472861786046547416356457242007320972347859578678622566643618535514868306370463485443362553843125326026330373713649252923869794932041768472945195291729665446284924649693246752965973301330586807611081899547769267695364710247187661334772914699905320070272927099423452587458424524717671702885794352614883601791675589676072999482729282773341781289206948858344395877272352738332311445839008232815948646569367694617938924683056379998713998438559599101650234343707386340221014588946891333412284132643593418718654510260409592952869235742165348840289276254916368493465432149012768933375918939287394666254115808164822742087547575344223072182641182592888458052213613080651753953380470580263934006068111609685351495550921446793677189454463413327502614827520655057107046011081630263491330652403484857406189731501666210518868345884786185089103719653419108491743672053309045290860087085907778243405690026988830092706693250725672827492410795038661449766917039324492904243760513157337988184571280989093340306036930922367814986184162759679099553088313449274861824170139777782198156116958564050955600478001956472761942886283976611449831789642892368097770535006798356633272598685491900145563931891031721618661369264347882661596614109556870082122437068910467237871545783396017615590085893165109853452348147539452188150068446731346662541060672574371049709676071354682454712908758031757280772818712989407953335361487235078966959380134430227805580804193838674533174407577996751044899986524798877290091653529541707291219824097699698639836989959131728335375875299541698469149462487025517939788200366987881864251310206693907624563633043091377005766318275203052286715935262516534524133395684794244443378031192172972545701355789958213832598767128914788092733547659537146704997504243837616072536680022644456001617296149866278990907882972689599345028268350066279757427640879687397243556697890439802456358370452329326071608587916231257329637017651249586828099841912049142933139250147960777864280179217487737431180429805176959101657074584851439282416604034380506938266872439195623063098696258341448642584890938147643721279003389714248606260057448569910183743225055831775052875988183789612064805109708529384998796530812955649924399030990166595917497792976482249883507744915575487472206719043955677132192297897617095485803858177571485630927254205297397027938461788732843303407811437436309745504093577825133129240212599684734956795204930292302041604696905474302605385796028234384519167367099522054830314128330458276089315733194988078785198544561221134692836113632483939425309809834694084197114526437608270494501680048862569311953324554827487219480340070251941251480868671264073154918788790306514481730452094729801829244314646204207468414103101448107332452301663144575921172061494159195557505145514763636933576632120212693275315404150041061073064957366077230912788844417180471783411246109402119311923169771306773908966709259382752427771312567382386475080089357826676552568434082810625445872731055718373545172168806419088471578099692993039913363090694314646959446091450030771244358087941523236765227289342968031141482534726590991006068762119793506731631504019141177481979924093913280720613585516267468944238304489279181000027351560666936252464442385724243427783430897834051634972656221249511723137142622749767727920623289687387116625663834379908158957386248260695058735952539195776752426207538906470483885033904734192281263457303539392358232583166835253955135035181754682793910617570849872679343268194322826318521168123212988470777995364725662273279724081475032153902945180839168864090574477375364708380252473066120444369904615406901415975132453030697621444903084730189525255593797803194627542947797423138202324477046883295021350929602395296750909603009797287605321913327685147596635554723595930644634579735164309486266945224104702844322266533807463835720985936498115116687339256699712852304303277761116833112750130284627457611261643299205028334430112460842242840718884923249702069131581182333312229025333865375498064479865846480939478884592767947515040052587872954128181181632884888084033283008678142172970230865706699210806230765462707414247920086667343596527228638082532646387484572148737545861272877333667027511671640502719874553219806649897358653526473607532804747625278361395249242707927334676061109925411975544309873544932212472647347158593405972894479765881047984015293024058206716574568334230659758541219162578166227384838009922356279745877359105884109000702392459654004900615164793561580898103972602266444968821000746276469210878827691823570490433568291560180500725777342178463380645760579760898669313707901654659720187965331939928843934031115222429607594111400656833699680076339786931382167766707562400746927166297119576345634082028793079905941926683835492735347540594999643401256220775622543607547480510669514806896199657900600436933821151269578584935606460513486982241004388602627592237488670979102937944933379462071485617174100658368636440364684589862992588218412767297004467266457400051123969211447106852074236838007636070303849028404546307163480826007564561798317121332275196320152513241299735808288858921207309908557145793638330891677226412118537396738959086860078950548125934888293276738209983944752263938577520637469379869257970529710957304303556096297717328156754632837754851708771790198576979351087137989853410019293501542436609124229053410543936012763914492639156364620055386453126567200004361551104068915111855242850639580985321598671388355379296135963723354717885065650527841127858587645865935524771765004703126431739629549810316788318388489046676680369314776040062024676354043280831010055132030879475382038580368116923136470472057102176861675281213120584705008746133328995402283246401376849382726923904393989152876531668408158733548230724595136140941627529024522025042802487324400991131373691013471127708213633550335162414994008904908291058090249258029450430009079885928753675231952984037496796775888861300627304005887189823814175739852587015142202932674766162149343785943037679809438712175425333174253192819300295808007979110257733514420534345647102347996117561416269759341989269693608000604586213995873923571151127789595624076449870619175797344769700443728075631371515214228682803360160145995719190096613048423453724987470763218108331980493052172986863441731403189481498064934481735833928823915225417925701274142723963355667211132201807292270184170295384407571426734735675619661683823661654652593483366439320780998127026714191673419421464075431082801357114011598138007314608182624159446653429703636036663830918713996386573730291008494488919783102253122078099968525556790684261446431977928166204017849437475200352171878724118692494777709937472639021828189562820337475080286110353434279011341260775132854627698485652306973644972586498593182606111160608049665419521788653122198216416832818853481158609733412471338021770441842181882863394320800062791910051099434462226591550770892603845170842012082319449564946070293941101134202782576324248388310597501817443051072045636591901075674403658871519015724138052724051741796193810166762609441091775417381801640394480150252116618485656155967001246792909052348434059952054449175140738988510024923667581225617543837901633505664840284423750132996263324280278960621290487209881377384456967496510769803977191450605652254252133018654505670646338492640368689218382570583362164533392572790532003369974967391191964741590236911758375436367822267135128388006075260042584517683093730763630796659792157453653648970563130593573205034146229239297151133810729846033790151651243586449377095148730606250947039451352232164558812875445333065173358811173770741266212743209138564627738293114511291369456943918041117133873158337491590181653861476226978275984488273698549721164754831633768933660821910989179832626482152139470615372723709595998585917315879116074937213311266397264751172615433268618997037630152329963351535830961556169111029720960377052122685661081636472861038157674457082610414707612485962237247552240145026239690263147558056843772940528082287154840189335715259414017383586722739968087684411147720345409993985645850641359906800046266887791825322267515384949184005181255239039753194637658259708200102192762694292345053208638246542899697410954368817447363233976102227955077974829691948907603255913703509356438629942126872694196384219360659380396998210884607309465866390076163488142027902501822970234178944093651401950214849296600968700067315645188629682407995632462391705780620584004847662897087946775502606788632504229045303568728436565548610516147073514262854198480448466991635008883201455287265591073717713191652324666736935567583255641858845496884211217785539871857516958484025358538165387471687556070352311685569291661366670052421229948643641497303817900681893187838983858373800711904650228379773442752454488505836515883316258699844564786719430906430217251905228888185946740746041445424353701368792242137250402945428429048401471609623544786169387842800175426640351147364030307227469681056605368898607630108448448633080187533631878794915877983556315607975247396411653275766214833680832068830245033665967198002208477482708631984452791173662574810218571937094253407876723384015120044424622855885341895031385259605412448212900010842174023492611182589321057872169649093075445479339100742231282599870373817833953793322021845307410051793554664603103166991655992616971697221386013660324840686721478407594072677947897257197071132650391071860791153449139840672274865150605360875839933903843250217781058355850080631212918518201596914514783566069762949663006741335864617433365474295411709973754035261998913397556076943370518389236269894946221511161746933816363882616105919558403709396126318269690135597735561605526161321890572281256186537930130818477483778301534980967820103419271684684961826293916118389326564526608648099043836917825471161035815853847096647901479140968988170818176176168387978932113341498115863193215551872371088973784017194454118325778830899694910957952317450205545007113337968694520138441269130221875209283224038942475227368615602705048932905563394491401921356746085434856245100525119500773894355335106826673571013591960961107291395647459282339889947554742939553534095756156114065409142684684755085538127360528487492185970117233688481642988737521253961440677921266554045277736319545886638389700628940889684527693340877174258334610100068796822137901694869505121897089042713306324571380289000342460973438803051289069658356773553658365093627435343823975460912962655664821399023003035562049784598717605529241981549117746780738239302908446986356845023623713558488909515510509741745748785089286745512405793860692075578606059051641920482260833937528227578345993048549898398117875368109513975082529392510401012575490996170562826968676690510797846635282569494821764977869082766832257693745700463678602397579052806660599879881164183444146392323208482123894493245550715693660363642088873944490990307587931994346642336341416362201342645540069755413342591415274844349561993700781339631849231672833694064177895828931340329451870337257844741086341122850565728736487978921366607906846944457995332699936636950820461406141845776056359896664820737097193317082478954716999045042094518377486371357155032672132103444937796432674769142648173878844755442470499954952135659163107008135052276341211509623239617391336891042074241126527040937164799993393847410430094558539642255573834165966889844118556970005710897608435479858946322504330203983176552658260927588201585427498023846629438450139927064152985908544623040450875903334379092007033601796840853274037404329815389784435075428611834511172782101286973114844331067542460334883517171555126099491887167756452292277479416869989835465621843769461000582754444290408833134925379237819870663746837946831031913113855369395777993679075134459026024606610796601677728516109606748346806153681099281921879613347328372225979407362224506057384613892219863140625414352963117356548698516320268084046823466374308848605595115391433059744896542450265505128158049903208871478352498340472923935730121344570021879707986464877714983359945241408938217800739765276889322320752028981484681973854438282652477719955398952523500549833034022204285370815022726454719132162378838947530429148818905117793571509347335927200446817485344093034988719867758533823402659976741588169944796065974585890387400469513547511236061308744416860727188427148882883221445615405586302888006879046860157037358449043857492673823890194070978709266034601004744068778941091964400600523372286071983226399957285352901837185896300573280330555571587688345193684030610067118615403700112755638537397135743533217295416974815541283698018765845438414987536682915168562995627431288558094636058417153946998365034200293550882652531953739009283170952699748341308321093454954541795647146235889359228406659453712458859330821325383755010337522241239540289974556088635015702135353711950333877037357937338626631394216708695396888595610356847405048562346371932050105289357938742518418300914221758606240621679527199761582001668480912136030813987030741852837837817241795863400870517905073220356043055436077892578309587325222695115688316885197281167723642791362839310434788330308358279187825902776659448104472957747510447793409400285460481691477417421789698938231496164587431870256061656554446256143660723636182397915131078201294421046828654872418439884701923636996683853896909135107767950694399826270839295219094040162992635386473901323132950770328112050075466854833584809363799525487471835353891347521788160897212673850816111178546513225671635394977082032309269315895111345666404608376277491416905926259666633990365240812437936185437224323828177872878578465960093006543344336508175894087621926618339156391322240801449380496743847941509854702002432278206988909224295527396580869827916049341941997876891110411918243662022922929302359930222933315654764788189045857565837704405345804442665698123646612063047376970976325587384346710658967318707823721430632893824062884925243963035240940750508250134537677818572839808200029420434567521984639329071680886107898292084053650889614952529790862456300140144628505667093743415408662422679547892305983278304207401327757446882848325750538987936065515006621960178235093869124817136589608349728874212454229472983920887278370753822894049003504956453817734389792250372564706389897979374228444911591222060789073178165631082592020663105224200867782236718306425145233292781775744799131036425242203794874591899141561868877821576093117457855225792185818953096718793662443399545676511600038018850716208885758237952577913692728714255039374263882103857121811418317518136197303016018509203315562371562569107680476530980191167556509975749155005759272907792703540802939949571456151296851194705128928126189606130236204386500246213825746630049971666885028110790610405061623884405798129748701507066191351818257733472954661810288470251576099919436342128059382759178587465589163157623308031395596144315844360066983445895734587026924780424757985948915215097941846750590198896589812893514801281294294168270899784276092879086344211857746632846988941077779988925251413576144746355270879854519559486585321739396193871994665986112685023241452706378701461233080653887607835654550579010998871635721828292204679618501955509121414459599112222191034225244410025992323366324233003922577953726768556370698504480954037308531150811234284331828623396539138689924400284815260580701812494821686135504542544518028066387159629418946739729741438619284635178825709559404778331793689917064331203425201459291168870312817385321528686158880943302059711814702105076407686287166099689233923845388312631606339765776554256983109867291793227094125590967941398827864004427441620352691900081367550181825074963729933620083999097404826959379988228135988647325702396523012176059406032845939079989408139115595800024132156410949243808577803356055525453423661233388749116547063900980590435931388870652199976177362001249898715899479942191012853803345412858965668424728042190993438703663401684557195919034541950442229734802226464267064404634865562664660743845995451288954857438484793972958997838584557410744276330331743276173957946445923304216076339847680663085339915419018413807691630765907273680871062067766271998133361777681393213874412974992587830798935632792383370033177104248983641770216149500412186618096420144451281973726601221042500416509807924959786352028076307110593772634304821856243351302905806317068887269743596883811123610213143846783039083293977963073400700161195060098445117669770324974927990992089173075893463603698854245702934837507784584633557418153327369724104241494326215836365815710521765867065422167763434962131090157945080200641286784906413413127659557157559892308995721978910987286109486613320841016505094790077478367322081033326245317910844191947369913873640982412787200140541869253469354248083890896873963411007084853958955918307327746036874700187201321815953672125083331837206934355583537072917590557025718561621359158924809563146797762876943313098625997041709208041392505046007028859463347874113687649295731033413633245240231589727980189155136851824818478740767527008102048180774551052358845988126364181662626137602699840083069259146553501611365095558914710591208905464666821793890812114408404673169423082861438300280149991668902515679324895457745718244537456602961606206659824426907023608218244198093248596223881847457069887926856251476331269122490825809902416466711912032619380783561561697352179179423163957409837157186527183375906777504953323420596832109496151058636894002952215074666218795907983750224751489912740282687144286698536846613352090507726375189298712883923405206181192466817959765440439186067682761128742289619518142376136425297796716654260058706439906898705989511829121671426350958377982858659030782378789616596693551696993718496389883508217623980996784854882630662091713236285782588021085538744800609405844519642276517848849007290016850229254910033775682852645051889363338228264931510996142966434746630807945335841366563320571036885787134420636412580071500653025172218830551527671734478422475614739140703395889343817571918641494688922816157232235327826212393979694754040845415895563918119602071628098787682021898023244433251607815987817950003835548007511690271044605246465869854207221746412974413875817538596221398340503970845374422540818000427106230816525115203355913788933712371576718526301536090478280874413301853624657854814851673474183369168240338029622313729788425165750297658793464048025154893625483370077182176549729808597931552248080074084995525726967903959848167294171735087207665317924131749754908223141869680442345885426500179714570523226689966619488110004604392627019999761598537364146976340504407725518982295447880229104013678498407383432958397211130582026233253479082957311113034709766595064134397483864430679678051315635381940096002132827799565086365519160096366325841264557157482811505676797621386512447668243306046501612072108997351329362623832056170638630788785508638662473228656528835054002506643316446541665852611258965871470279937207390719254195571541975015635713812174805845177225689912896943157628155944069187963518113135069594950778005424258565881877144692272540227316891507817819700792172578027268943367930522947887799727100872892939817811757848994744819843865561029045692066555613796855717804518253324306743930563509311692727165661927855831789419727727398508417284596721488025030654419715345447235649806140638729356905367102409368999830009934557308146506339537501754971734943603412384403848975839958144413602934583651755522396073322382844598606189432890433558056234261294320386869426070949544133661999497333608504150299494258369795048982332804639316350665002861725807339659250993165776743701354982350229849083690378418887843430619291809522817141361298782379040053505313721216345487380680536042540503986268923438038987572360229761833733814987620156941718795793823493962229188688513361271571343586871487978823535620034011612967554099786286490611931317939037413998117333013739060579537346413512601469168997512501564971644678858441365666991355449852622819175540447478749671508714058567591720290617983106821112622390201894785641364017975039587318122277698761859774584770039325905084587220188878874965266208352613091333534846351675244100935066061520329528938647989020843400094203546035249200348332509801740680384086211598151708353038062823061697191291549816185137748437840265030632458811690731449306223636339882119761852553859222495559442413521029626984559162005664859677556056660056774380196273559312488757771149298070886817089935560598349663126534774114062448978756569677013655110562498196744976997234739382279170143723762863708049786670990480071173199653721668677136856444913954990584705474464840185519842434455635661981687534290102600346933064645574662561934112554030658962478210882908590070041407839285566465681522514106755160189317044846099967127708002175562393777245705591119357552746632412793171946344390997711020386135287681434421662106274003278688208143466502793982622912008031311116290630579785743759136214310967561502509156577180631294453260091121619884353765712969170204669449100773338333047815409164203774900375651071254179404579423762531798385771383672750641063524863259529487423320199499736931007257328661284165030339044383413486222315520902554233162681215277319153433044975428307345777006133220455936634200492222196532050574352135214608458709749084311921132581921298731238637956466542489180760003883495157238957985183616997348892437969223144046536430517113628009251452045858150336970576746992488502125019912703172248898856236127743460999736544573232792604449102918110808915204287409058541517685219595218916464713769785079237787806883034513099739850783558474314312317877382798270993268923816242461876498390140648433760319766460772142113910629298421571084518500216661197514025203952605549258301174364967582037035720292541317246668424734242351566319712470854262915342200241458535348608065150885517274081034733147036347266392479568951966752294248340309235863411181787845759608419594653995262923339611868265411709881058865963180952565664609287183158346070739179597777412245552790033024035988055172343916106696683421235083878401272376986386838387727592035282551194585597112026021244221311130327728730090689346180338352247706825130937578654915535000275154378344233669454960795730486472284958492763560731010135730600913394380237145421266902137820800938466773121724307230361659782271927953568765893008960353312170357693995044498969551182292609797372528336408227426814840144698088300497448526268894828139645033067393942955171391786262432535766014392255732369543604062854372323007177564580809160003807599601141903479532280108647230105780150424751288641111738907173079860486606657504374280397289983904989871425278478306128695301716920323587664403241869759648094156329742825947600609913259085410240874019308729923681198334249706034277332532350352675282213171467170942779900087094740364205398884896257419058645736769735847308207233613206131569787738701548410666162936841872576755489792601453483778345844226990188252558920688025998425470368784166942853770927396117534160925079760690398766975679236937046433104781789250566298813623621672319151790798795286213144302587589800635587331593123063117596265046600010378746892031038256105738156774596059535343109210636610325275886982544665629817921106875866185475844033210511309415985279030644181557644797884780620750317711209292503799545031515129191213558436414318462264786675261063778107000165059564810674695892552632749472695007079430450415193121546638971719242856915829299996892143534299412737788401954925724067857295959929930700621632093059314816022239985544335035767421068027304479260193924822955634446937795178072250044135180495138269738905568203969936931811619238908390512858612730423452831090722887753893486565787370618273072183310978364030179728112698108778384832575104195294761028690059893723443040479963846827420397865826661379957534683984247720546994708172535947175950533576875474756558475648996863605708547844591702141094630829930621058494014864226719201874973023263680658171225845476557389777393243031451176899378483498489690769700324970504720144701684641608332680748038531067786057100104778938918779180715943410299804948637705218945711875877977673773346705830005805814091560086705613473553605207998926157450029079838043673306884452162343304742595331180998857844638202662446194066800820317443237537502103675618215490984874220187109674764648279266655109070668107842457897332702788583395529590451180406003628521807077051548769993210811719911559669887351682955194667284318519336533737062085056131937111724463328825410801423832971700714447011315191252518682714004148318872524070399624029995929022939137644990202126929049020437106281157347101136900314584059955135502974460574160334989193998461231099633030622974329022780332313089114437395277693470915674675889831889773175948795115275616012223152548762198605477207764490334172663213694881177969567726818519890809227060636242345072919656886220943968773113782591358591570637326395875414239156881092632321714552396317365022174678265790620970622630492287637041119483159309234280494218006138427731854013607850099207627449453482256258909159401387680370904470047362876479833424977049487609253074789491414649231130102557535731944764598126414674982608459211883279886458936369167688773970127596034972971015713873269318293173963659520425573265441312954815439460042882177882178522551132969848989411339293703151048857847415330007271125928520257633251324183693573473160252372102129826268700552328815476138504134348013077514103431764110261101888140278295702706115598292934760505286542833368720581741751169767558140309563709287174907742215396716105638581467029404788846539652608307926744756439991213576632311669669472095045499868319605776395234746135531372832289992234945760600936782334082796464006120524983401467805158041558654374644685098996294702540546966047471994153545383130870920805221878636570657685108718870192697234515302368908183603154223655119770427875927476355796746539796444049667031888075290010534428734286798510953037286470035498576467868464973707238004021996588915675557230930146711126610875012786092400907990120509192938191011316594030761650807215828611783479779394717685746139173248852724004071715136945608702218702222413522799754539615973439755523379285619593425609462492365037462041472323011191872836604564540951273653561000198275393842142379298817384035536244670807563575450134922526673050588528670321891261489859149336158670904942161992069924094729152646926485592440570275524895394039182189216305032149386103964869589560452145579432400271689809806220723406729215243649495534778302104490772961454742329126606024233294555903462032397871096524907654220570864262139795154207020677892468334071657918703805245980256685838450381559399322524715329032563408180714282849151163476206219027771773774056163065081765778711585688896808614326586251427039305086294269731415087566500126634948160524936546782786236798110458737931234836288887752315498999373499917365469823524670398837760571695570699720565886252606083572017950792543443440900233560790298597005505486633905302593476238988202866085993549801111689505365095531941318840835223113057790834818704267045694913280665710129132945429184732897722011196507083305509049773025330382251202123846751384831285337744885876497219532526030337557249061145776877812713810025592881766255850343085314352096761959144610078039723224219584789459752733232406347793966856555622438455493354262856805724839073819809754245858150194947419576005078367357795558303179976334150126370742671934622928986071462139588979596456635662319761257274227341851955371610315822431568333946757763915243677133178347828615206693069509291763221284779323301381214785348994332651463888543723703617970252311184407403334100547261451711358374970599534598593697775125116933462586844125547021352685653682032151460855654525200393850893671018930716566425898167031971421801884910313084371222053659902141767823139589453038527214453343709009479581321683678466340660787839198013375067364737060694275959121860106831618356552793851671114749639232762964898276039946087559724881947796405682551653824646380043308806713671084036474531695850622042653401015362709050913098476940500772147998203849714775790178930740135346809946639962104015084351403134507371876268871745037675135854422000949967813359565408693678919274296718068194514759089945280351873373317113489935401259786301883777761472907250332672937539207431662080348193382745796036704217265483192756490489379863103315613409355561607870554014900004712242008656487181805607770693228982064240309964451628132463807694972037501698707770624253788914685413971017991376530613738967935330200076272066259017942578433367985571838975563610824523801904189143278704835713422264865851559522299597989010126390585021492334950593905831369033395888052514388972296912473782471197851096777903072732382002594808388779994299635991941321992880425671174717236367958255132745846620544805863185332648733184005551986643172834112440662294940175799161459887645838140963904888482743398158343296334033974574879159992171766694550241801073044260642244189978087202970173951117091640259162553282889655627563311538489248105285869239846866526276700133299182955153228330116630752022951484398015555600037534002005063635936352410115866890975475570997919395185931634964176241887947687345397071201572550374531657641192084680930834409655525679135345596901564992611585392897520695838315445655336371051774934297031532852766374836745906432882266896156518568994699484839794813009563676919083836684290446994384596630909566110753106585443579512157186220988290606803026427999425193084310103657516742102910442662865365021428996993449191035474483304091367553111003664541183089310649434896574024023525133087351358352208902357669489599154110710386439027771302500530882054934667559182388540247720921548395509023960719690537200639200906575009355520999209650406434580820263230200337384075154112009661716517066105676810987227364102441862904318855420144443954335891347079319517286965054314515189367025251407999823112575581628409339680163221394424109091956229665933495297789426927733162605574909151869162255134592319347656964673334973171341866824980354501699149328836632858093752780560462885704686636690250958983041020975179323772920253429541937852668300464895772625697078974099994038332968641918628307200111909508774813412172814902287764221339661718769111434823933520279146031362950992499582373013676997805905482567868417374497442970112830141842928165438068221148453401797133139532557389629028399113128327547020853666567996098283634449914668915221819542068806770962797734968648676577154073481334909930500845187428278754047310493129611043629533448004219727659497074400153341396587933020834611775589606509978989282324102759537195144974339453913766180089663067070784019336231570231799370013028777358449482711126784624716026054454981786666812899230137901194694660985710515991689888415364534884177789853609007520321661858306803863929096533578883994920911935927542435187601510140569595220138762191907948057471961802220008401792940860499213430167358836603370356045805764849764819360430022869165229060233349626597740623011105821742551704547540625867359570579046588972254650906531881465816775542604277965321079942604813422788544973244812898852915238694289633097335021713095115195725758143600634294321859683688443102599397872828875017628350522438644026457366259796073261393072440416956470555533282079578667505562486989469789755508885610354917796565388403994123269512361889596014851013572791202290078155285961505611872577820976099405032100017861971277759271213559773137724072786106915689246626359418267030577934514204016573411912645996269406818343658409750891408902377500795255067913089567453440768260789559174387639504948279710959621427015673980434587376248330382252292729147838348223575830529457757368996987993131957753157884335384993458256045108206058866901037983972929339889497229159611072279436367769576959627257816706696042139601294764891694219865951027900799744315328421274213216731256194455711317791367836618341304001358715924702550757280531766656858210238824413848215533749668651232557998936172329801029147902078787420922525310640329492797923743108054843995776317766244887355884637467848369935197836363708158335779703859170307676509290425618491815149277686667698081648515235943552286294996079559602342985093517628721566810163990473278522722434299875184169457123310372938147071954173803137466524013154064248119690527039855814893683517470671382476961681330470201506098520425751284753741209032266622082497442626100783945235693680307131664448191868604079683720814056589941625997110767822326143035871949809525494106084097160864502720198444804327699536166901670770867726921297582873604388317273019719959042563086022690238585996825229296837243116629020794780767957344216831307474355519103369536837318731235517318050618430709522109013856585933690134138709908702694478066794995930746821330072473982240938399644180314037644049683547075980324061163617907258881468556953780418925352697414540695270072540481919767268886659757386993650385697217600130927256157293103642694963465240260828370383771952074381478817604065457952680043658784745358297537783083605652356396273412367475203829013719405200562734642639974716677883759416504614359957297089122748038303288203266602521786515785721292514370250348917276025984250325180371613853450232697719257024758972853801571728227653576395826114970531015630869304610455621754245024320944041666965598191761555585072307888397584417612087229274462348704401151972335535617435785540395320473291583227276489031558288723828966081724070316734823997437754135663723990680289543103328601294973218479309241571116216767148547661365204169377005621970053670916555802141104619926779905002507753663246091177114779586912559969595171786418418137301762014064836881039436722704332723836048509645637036417794740619428425344564093511995165474470325839075343526382073083482427195647334491855551623767498888521321045392489593909472500417203486388444305795729896778449360237554380557093421332694485666854225924909656415591063101585880869783341469142193460617139970881808890154082211818690157076167736757285208992249577209423433353159340583229752347197624587355112461106722268499284823732300683961594014291277252105345848375513806328034813787299555698097033260843663657713115349224624094041150670683845940165309309132215921536683656240967118055010202980527455438828678133916728289384464482467391078240838693401265355846511023489530702436646922057393004345265586776232605052699929330438494512111130487779567617711896446276378565313799222573536512603208431349832628009781879701773710740466293183954080567983836785112293485069984575758732827516635763019832221614568399193020638933869967771517994498056179481025887527430339923824118880966537500251884270852152000028420843122780300658352666667203944101992395699072046228791422135252199687576944881826996315692503800052575821383632410627414236234446823636671066069495508532393583495490587350870810480552979259682885879219029997366167330411583062241891264325048306780386395346825083960608562481168122634533993786029586457485487664912633914189939384864674732352554509595339621686652516842346410067831999729739493994033615125726710056087831176815180708917972175025902450789065274470473137012779094357740595358583727306494453915366901507048550228806698060653278710869437444965701523690250294560899142840661036719728973253514692057112436807996715333932870139846269485812967225400027304337714190121533762379876056815756512538772792784909043482677166025051715058566737501826174897764386735051732840679235683071226727990763279034214037521264123328282753578067556193333552687422093846824861540188627277959130468839825027689693693894147857722664764664273575803952212611735325844969606368903893619382905463577716705792406749160432312963189746724275772520916101523049309598755458898553689682249717408025293980374811912110820945432884159554707306574117234757385416906616801900876564013920341786306575787388277230874580801403588988208924927775810582902216645460404617936727780563585681054649114228848161230207606415046526680389770930157136441347962864026935342394824609963200440393149983779706757507189235415050025704283397515202928987886220374165122078665013774093534893608050244725851554556666080625976688244487469434948570406276927526689181790851258603221690768187950013783117139544158863449492525056850292539075844121832639773891739264146765205897927425483926936660639749825972410804808409155937647622391865750276100605519538052920531383978233177314817836551102775491630574591667006058011175517612930847230963047317644561815205183600048206177322894381934584356714907613141670197130506733959287592465570227111548398830702961982262466579525628932477138459948474256161486078246598313954716368841377280903038536615701442907900594802235367422020305975389796624365568200982843005205728516745084938320155828843623960392722004648188046978756128409360288080199496197968074041638432965455687643738438175638230412930573655678659317628855335337889541156451081207168865406500840245349688442844967487583820541657737715581221819927371123749841427834579472133002104950666233539298650329743091270222288967365901562048359337601909524750323984925195495020831998334838206777259028051506064433827703342277934628943165842788187005980774255757235668290566653877890187156925166290856744364316126589189135791665636975076789229073225427246488015560759714329145850329480270306303139457250384782407456673283749514888718236580951448652747408693330930515119476976710436940160075170972554765423309180626209018954606342117217497268146354485527810761950955574536213740455118810621593575952896728955372324391489794813601599912403948533259541154523612759286602781731821167770010134803358027128428493935090602310006780880775966535403263307468300418553251612729953485694696084292687707037097969837318108302756953247826080565581523949952277442559509196024723932440447433496620477937851466434647681696558188785232077877407836130305855908653887131768799362781839379376991835695960044172118950433594879216676259945027465728898498570173128250154913621642650579233869877337871957295695903524633320513890800772221971948206013421556226699250052247449120091307609359932785323562386293851222411709210368290269492820562254939988110556391265652727802948056096558980157081216325016740642899724917319540415714014870682754354467538214502375263204720767905017215920706285004912567579410512122014756337967390439109679206648987334980314914339878664694954838076533139643708718666300821667109952394645080704951383074474671213337208346946248337426346399104619953433351944953015367470172522842688781060095392264457812369732118296916493139706368676865838787548442229667395177631572511375359137316652612690443437684338918443446660602183810712199666675865324294842866520782533760796190559808568025114412711674541578592111363138092613024794561902545122066363042280025026172813071214613787893897593218468082326831239233693213316805924648747898095561638938758067575687957681454925822250437529336477678535374023560443707948400364123627629635037767498329152796653585434226650837119515338961102692975482253114234907469026016033472165117296449559180579477970459832378562762060382429060851980313485183643077228851423102529670491994420216111900432448462482591761808064444000497289043328996034793802521255474816078882481192694220099137068304547297169173045450341134290648108571767674877404977239851835490604023168683726408994550493140473441762205868483850814745628886070885567582704559806224016800034941531184710959718550544160892472285428779345847516204840444838214508012721514708618464560314693939723672922801472962788666003024249586355355581077723161957910672080677632366624998383240830164969911708564970347342583964193992070860964716739497180150385022767510492981031773790400649373805306213865873048318873097780187782287542954533926046774828080785379600046257770602938351083455450658186033185029279534259743694110742409649285249993876644924740728147635641532923906849338251380622963835640172953748696195398689150415445496824093114647436887532011939468034586749828357436519208009081304677977527558520069048905797035676436537455252256313846963316743282989232424795386449293777707507503469567371803732460747294112832933444509350449178781431171122269771483335654037656018660089907011914260007179831811079717923601311093771597040652351145817550746076619943499266610065945017740321204941061383887634138331452410693359649334466468157954390870666205863143476393077392249903344319118296445787976570540436505329825860409175134589572983262645080856238879299140362913103151362394305363964783942700070733611515609101654415772070710981134513167606603118706824675801525675817745183068813638476133554318251582673455963319892474597261498873023698196929794805131110092317191501550589218165689470324705626343022250356610456851064521966824251771742325232402523088094845640173406712747783063550638060433308067335903632850479225908366239472171735844325223588624235916815038599730083307052189143029897366846493506618019883189712100609804120342282062772410335373277990270988993454611778616212380354308747096927012695883321977250338523491298847855730060532224851325487681379928786395789928946020032780576628924946877293222539812943364459921310977527423056715362608918745158311390828240598077349641364503842841360868655982460000093667953028297834691220046068907696589612535257401150479454016935057803482564672418973608377846516339724246056407967751329399408776020719370478205004644665006617062815902649984856454087087561407339673469848561900411474267406446647010658271833305162291099762640753011979959603005238570539957845808882549560762377580243676850133700728952907139307245645690922702398481973895209120972840731573596918887106048640443712560746362557229128236596754684141205310948748570212316355022274877498734140096911516280629730616594585126159520795192732998988452622199116074938362683556746935669013097929305805356149728483043475724041063269230669765996000417976206086541783637012749235079894143209484072882611251258274616690126654786724619947457989532276969293230072436884614900908184794589147356574480290203696557150097690482881065604740598994827220556854977521825475294289842587278919470683176580345812910586293226133305648640435952651053915197468428457754986525864607283468466199670578200399065646555947527996083755442321986522143863605914823024011136322443210804023190418634615547141729101080646420115055429649490931183873239049132898730207337576705627867464209243979688296812953578169399025067517735834216189716876745887584690058248700907182428069209333826422619994734202160669163624979794041166805511713068825520347579337134422256937265484350809981600423209070525677572894826925154871584482497643711595534646450936245174321270003153077801832140161269754495502533373696875752333422537141271845785592407549370689426739725896845754725508577513825805924963862457677443217266871434956676278276396435650726706159532589985604922023494815631772885078589105050108224219754002100805182475965083211475259641213727143983730477384684539147200347990070724350651388584682870906036397816119134546414084467354292750534110216062683361895973964598867459364150468901668545084461279962823142195493772852371895102403817634434124162763234251133276996538375198303146685610719854010872037585495891733387214926121272940751353060966873090227618811163364512976865794509092047058004523360188152128900203267232165000273515868551940032758025793968813215397385230447748025523101100402576709335574124738362734084653922582184910040626373660377669663244466611327484343717623000821548601702249052579932590357680357391364119707611328693281609678622587819859897439446693202627559399027087933351055905922504597649488953928055804926627654683398077186639408679888798031464526792686614435604987151664599571007100281364442207210856119558203470971822365972439259657299187359942843577199999123245113875185668024037766879569391059030696432397409185324159971533410110278292763136924041051909448564189673016175596007660038796873885960333284397864954104189266692860617362774540493270515309638726284663463423789708841766181789245655012882138598269099909982467969965392896529094940610802843482641977900238284711868939513961252662576151108352726090257917412041210194639229318575796305586480262693134601904917590894947692715755396837674823281140121475907879777420557592618522651606890855827569247814789550147090442249663555720681125293695209631119164413358164304816816751756307622120043052768411157635739806731027189984978869545923022128879168861291233560362946232935513695545568584761924407731862896030787867324200706188361912484943591959635047328935996486101879925247845318679152718055231790752009468526106112241370619735452145155302515233482146407486889182901450298258667503640255117190939173273229528636625197073699684501841748255859109380269587212296171199143068754672401468088887543102065232566120903569029266329064619706658675647094167276557614839121458163388276155940267983483645617336920285766353683180312763846820034001764497890561574605766166087294537900704796069262345260824354457459599649033607555389406300781069198185939964601762886643621860317633782766006675918519606602003948646848190828262811372639403034733838170716941935662961291300898725218619916474087332800911056471289320971387248448095702148930040147204070995689190742217803768017945826613551260715055438247605726458857697499945494387041042374982910709462171316885043620876047519172062368955279678778033139363558243956994629641385477024708402691666351764974987199329235280053591478017070717549555758059320340215425506449549817043478881385724019140301549492619376775425590273578685904041082707383384234143744075196674349127798162805555191915768840868473767854311924545605251552076718013531577127751119633495573986700401885226113682512313965966043874725652806458183206356289782888199725867143921789981365741787736519216359743820540871939517032412479711259157325048200212808872281650750898887905610956275936813166451294590861475994148258877971321688476870089808045199293229388656464973977248804392151184509256447508111052670664768585019919249997821111906788936002286297964938414864191337961750207743880642988911012754937026622357970755783107146075098137688926313975725744813447693208412593866887948370939425355886210322678289532911130322481710815934993165170537730598718319972815971784854260436593067072084742309233765474638246771640654137080020857746391194237370060269107160204264439862788296480153371612343940925627089756141102487922331998932474104218534118158874341905387206691525847243401736014614313560532339362886586207690788451126208839991481382414357253045797977988529656847960498157414102920013871318335391664284784701659475463069660289679154193851725111017184712983544861892735987345716344738567092697520373780110684424859969839284044728853673014324809198014364617281352904176291231925243742550138470832717959236149982280244068551133471589203909124324002336398957479097736532245382360389852645327494085046034791335304160597987793656061184251660323361853459090714543202212546968664188663685250763869409035738470947664980776397625513556889468254853081626991353787761341368480641479127600099144794016461988955494639706395310185607508731625551568190039148543237353024749931733323442618826239509354436062963613928812558645801614569257482831262014029928932856476906994705313994088383132379199183355875829507963792787757274166624799227010850752299568593613022125301691655354895897783588831123563452817219656371875412633928455378301730286209836245720806817881491633045046043409753636365743206636420450101327818690232324142179098235712948460426916759507735834242345950970026656035412188079943598895238835059490875863251627672367916294313644230703927518901466625726704968008452304666342021506830449955574633724477668412844185904947145737635454474453304183698470613950400391474250054998435248954160308614192253409726309884528311779292190605093113402707996517877627988195432521640069612044186920765286177354993174091208251819620817779366594732184140170296946168877137217269851270022005163150367655850873173256405569616091249281620177130696869092643052602687548037740894621660340861490373188871639222845450709760847614468235292357935896892537523976109016638680968056033924426527877681145201062332894075793353950867133234878274625168636447930289255273490010652601562325835185171449676265374709113095161933859872636475070202635830869284206179361735343874441170202444603771826981202957197451600451042106077119459259308296163980131614516748321039727241260469210524950406206230664837640518394266228825657648326078374858797540391676438990599378262155043093198317088121319719270480301899011926848255980764968941478859131248329663711928900124302002580197918226052048566017339455320948242853469203023360407890511472540518109768939547858746106271075795276475043866055232374944424284499596529956572679774751946976390428276005021460163894184032723686460875131555601078500123733160420672354666162287507423288389883303957908763823942657025892044991457081807289482509148790144773758204723768030800596585334519884300671456227428980928705626938631282950143490628822132543669868205352391063159008876382248680910296242144250782888633376451663924528967214874170997453899643009243835677766187535327729144301051268774443384362423113845208933443001247883659067311896788916173419111957846741521869490963875395330433035363318841442081474981531696608781761140901359940297166182433577407176893188162906828379399572583856159476688416750958437159279287767259631604647939815096664592561108001687256687039945297422829021116033720505217335341823885275927060269761440425979241879579510596294565664189121648752037760581149209737923128860869780845296157034618732493770356690107654289556483017175722628233623358290692948420293822949545430160862579907070403283669025287049333121512503546642827800867858227307960392445834582287108134639733641358153912010512971797708760147978391265759178931066663798399269498453465122256633981105686384429509967672930136407121636531370089394731167381364819926964571788811282647397554313914515711512931888404138450057100123447495662746486464730678541196468564693951505701157054531657004956713228585759461426150471803940760936219831449911262256401536818855810044612787045775290548069021151674831910972018927620968675968420838742283789169835528879479860553649196712521738870389950754646343842046245010537255402664027661405759811323365013704172015268860651701791465175171180203542658388447849222585811485198772183444074241961123174225628392816961033467752508429066447981852376714170114932525211116501095424548080245749382934790082633782250972621548920652619752676722707167229123756976069602372445811918933747301901188042033765327394213284051437790633087057125886564216194529794267857317226207513462918165791321823920953707389110355854647989062593390034654691524473060374999307554671314758211326917318608313173279208265194144741934669363578882559390237079528888028474331933663449585699307602575063011041548837860088581368201231089367609709714674800266744576504947961405913096060970880892376122310306466302910843445819725057830626637142792498255094694793762333890441424423266883926358568708756175635163739756811107660797690136894460527317729849983221749952847941888396437511519438153225279275874256162458684056514647820011187189491109499640307490410154583856892048759493586373009789301550005500709871676876751330437982318050550375822995153799949847907918115551468832750402345345536765462848911033473226784128552665533789692919713739786266125302379724542839712817651371386610713994792276636714963691542160572925711597578682346109581336886049510374884628128900220649650832240773326768270104023572521393788592671097779682284494622108383405882563926690660503502709290775212114707803535230443362544301492856024717673969359961939100705028849221686437864384279328113594522510199479381692210137548094479526956135972768229601102300768304233429065650359090943565055003459453818884142864963810594516287593447813918489908347207765467059479995194167682679158117908090640305267792910917547221484294165248376539917824544316483483802284774197454658900798972835810541735294152811377068757077653015152708336876668451112028003476494320733531770244213761728814416529889312899748960205761630151170344451723631422460306230710965100247089606679858157645825306402204903095252160645233133526229623128071109123276111032336874455256044177992024914908697350812427382581111631315183262893085946578174553970252592253204587184666371774599231965659893000705545009658172746964686179349269869749372614923490146833927197583473901712475635524250217552753719323986624753224327723488358216623461039224782034120823467188775716061575987415721836446875358011778234678393013656517016831236877495180045621526986576985347350528744334006525349375136770615475142408443937007450152974214691133688627767538715094008131099389199292959534149672882946152137930147215426700935746864794750838563146518014949375383490964863030664780218820758290918925737785909054770263443865359346722640296662606498792347617495754807347088304107212403722684172685541460768881756139766990699703330175060787907861493390384734049248948650884578704052550489408012523353936051422624755415251342431355210240835280363075137536878621744615050953127965238370427916871796759081269856145402156442837651274398989985523990358687035289796561735802625935707880690959424714698457171603985819681824101041627284151115651361018051588970135641253461930769825921855166137580491311835561784912807926518249381186812159661752789364014042519025527156647275093188541277172747894537879622819308099266682551543512596493952130997245463743027733510668969295471336562897900332737691179170018725760557842254623027841847767263053139583152415605868462159556289647914550680484485741227105300308065361253323919865389337982542418547992056252173974099901790621325485413707401018434002505685019212266735724115374343011054286511691166787528306440455151656686347520054176486718316260930505961750615427704252596142928312138079713782080802346063190950763143117173914344260132332938732394518103412114513579143104669221095775029482410034103002397645394912117764931752156989565075033940752995239088896376252604723401131183560084324490558951456977342994297142403061842518908037319127060449330462330842452488143236724790567817716006950815552592508291181415007333554923565759135906340534891444693609106973202601164470856727714957548694693740735897738525608812144674952660825381288809070206199965593653376722888723430342852847124289764483681254659969252082128376556439249991224421419747122459783080239242613062301247256886703324516042803230309417265927221922144565111015307203394813902610429652019572648133653060285255647824629048389894346262480986229445518822267027588082631180029503075058897488295121860449268440717484949825824294286557461643833644338123454021068237252229774721375474111118360842320853460356123904916573274739278254561377370405186052938409852182875319968718761158796796548389547939640065056113317454577392781171412911175805472699770853945920148407908850315748240303369501977960929234157789889371349003272933728251208578594269974820228566364366991367517166609968030224227498549533740247203095423438332929043476334783840629475020458338638066542604266968206952562112174739374567334910013533829636435669809687350980774709611012784914563941533151647677899119805270702211113163093581406503415560147195580903462746267804381073836639051479294393966079149364623155984566200942855001565647120817192040625291537866849119940401498537256508208446498554927321721872345377263406064494332284786189858453713076292049631089932988700769033686205498739746210262885131138497867686754900573223542253340817240802224083588269836721052550727042597149030833527907039073982971899753938732329489253548834634130340573950017146451917737743731392834621814343353117469378005961482646819733841150679794134767616839784727526627423279900426325110923735231304089100234446165935745930803679365026276025260761391587967101256237796886200868533298702982678466868441768139791565637822873928493684444741734594970543151327333194499329566405676721522452843689946749211947917589138368367323868337019326322475697905598564118448193881717599725367097978498894220818858822302493666735741539728770444416825205609867522707557153996154230587941987785024330876950070137364672928832735514805809272543153274938147191930132616914848821305283592001027896437477302776605718961870445189905245603511156213709386946487428145664751031041870210484280760736414840694880521076433202402048706376847064289409772220661606913684786893811859547782121559628156654444976310101843449369487401733943044832046247161743313041358988843560312830053750453942570167412936735461509323435181189014033053831756881624549424332586121425587286833722253645544929123787225442023151137802886909011400347034412138440196053161940298474688744462208426244533380635135812660381680194574965718196236278301762539415987261305119110327974006169880948376221903735568051941094034692729131155035768128408467113457564126607820485924099766177788174818713884651779747540707495980003320521184211122554394956923810179191611746916161185105245187997010276261577672922285097157717018137377518461987047456121086311235189931064920402954196963123484539905067449383224594932456644092949728759949857983470743967414565746852213647187301435978067541900758338365937452408543259589050250645335589884580929673057748059875316999037349563191703380553786110354741912267517622892006645529331852374533296297064765893090867953719954280518069497964387282374525855967579693966728730655585040924661624715558697441705544417329319680880388568590589236599655762403999621029275052777075640357815465475518525795070036973939288867441561439441544622522510978925752619996656821650114340935615172951229832272304541970313170579538310725273062082046161747249512092314303668568298160271470753690390836937841316193216718548175010701517341646176206059133733598338272842274993671659110401589971959796359064774528547663385759247060962622574671749773027760769657343432749240421805100359083710801258607445818255543799216074233587130547660762692338035761417649510578570163503088094719486355451700070169545849565970136707100372421471471414024906360872658810561965682975696184889588549078146525137421448357766416568668855372917421039255797116596699884859119602909658480743911277164538077813504052976981033641343296353502683223089069550672479636172592505890840867638814978353409412276634830698559493334625506850037303746865047582800183543512132670596805975183578268665481008875305890214377658372116335544082252537335107355572390298342415680112092933879635168600382666513816377380258540742166837290540507142594004205147233930799929472037884576820390702763023864320435624099523427956483289588894626634154586999110479983636529817959363418288191944593993776502304444963785164210522833277536511716312621353784159050179890275020131216046125776171077074905319334447506715570130637696882899897595754672780466608616001775845457388908351911090459147028166494549825583751312632819978499150382458629363910278171967867879449025857214056131797285741921491534724168811964192098947095017497807826408367563324066310521657609632283628023790920628656023899676034502860559982115467498636791984646750735778246212254673729701833907623336231923568390131921568118788726520852106027483743849629235489573622107865835301197911431270356850574809834260229011603551443367200752457775218649822810147586171133233347090315322813240965162036988478275536251535103347922717484992499145288698714573409266687226356096919616640364551951389419967834634733178545203376506659711908625030896230797317846187063889924780022745567031863035015312442190525296254925989582383839695633934218130550677671434373521379626324245298400092249644130736420322582284875848706022198506731126559754450647883861164740240016341445857981464593367400327462701728064558806671184791137412866892324782370865370372924461538704301625067096039994141832211536691920975991430863878206853608248243570709669892805275947630523760619657037157618710164971796229904804791655375174018244833793035223265840268562684453944308929753239795011257178849179622418085066962939068520005927035413563334934683213258886409012679126057714612533461101779700232172481247389760342069291229375132731503645293939922382704127950925654773467067589999614981651489469625917930379203623408887370024345070653544612959714309719735199500757173349306414848449224950769886406295512081388054715134375252145326880502128176121104049938029307433863525835554068186159939972311988004479246676840242927364002743953857550979214406869832359169473337974022951819195784745942545490540450161424232025385555266968271876020199250826639470204061109379883246797749642149783345834667562117595031277629980487980940355265426069516481837491481250610229362138355913205488553433172034793958715169843849319739950831668917922801643284732070730820081126847642562420737175019587998270241114514807197919341392078261451413328418398171777744928088719473136644130146661725429360165478436386221021528403775799650831032846975227127463372811984452738817019314943540423493568965341633031030622767474939139570254290670058572742948485633393528031334616332811114560822221256462947636731457176616190762168388400692850441058290387750153386982596199483884776826143254150201551702154092826894995149935999345658659658173480820692204001388679460571054420739885575749391647397856260292428639930019201503306372139418644730544915293630514272581482412600496267956875792684220563276982245730990485139026020518385928466666001973623323309535380912296169817310688840522318867738690982837027184263355945248335309352748878899230460444709673640928384885222351314329982049461556153712743513634244995895095959468824618072711964195555304876441426857827974246802604338182174776424560910551154132305184645953702172753001759399273852266529383757920267770611688730834156808996317531800578135006964100193148062436271609066370314326439816819078758035785429930516500287595024170869231351473027896390934077644133865047984337838587153570474132953306202127727827885770575369850631600090862386264503148069212181476421407229301945346127438575035010721225919085777960618645300083208994411150870629545101251589051055216284612594098396551223194887175976499890643568544682935224930304659206901057882699908861346955068991108335922730843668627069788980834549421379951574421372000589756954394141318036302325728527414383584029687108602414319772602734038389616714664586074084390178759714097377990271786749033644754919893030332489715254655292146341263130817213214065226015189211800313365589134210236619227668299392451193160795044490179275503676244875922214951327739931721126389944641652332546176520840408971704456644250890007413497489309884922742738846708346614916776003229723413315317076343444629574175447466904616109315896562533538629461490017357385616917594383066557822582550535527483669007778298114622910065170124618135612092784478896813716594133927314339623594558201974901452275330308173944067604449153933041884676159328668161507901819863629499985599373440885688389425808231900975868179994449972740858190817454239382688925372660577889714289374611860123995748970667086141890907753704815925176429374621330738374525273278963983818013191969146881686331903695647395547679303044715814328954221584413422620572612627490450224093112948139745604346275775088133692683481643594426577340824063144011870043283733182381941400452035272272229476157440423619464160609933787362247932987016939963094318439569035385966840440762684979604332979564887690201335325162429852700553583981501613312028785192770699223766077174019906773244534965900616814926757023546648352624339304484415689989313058233984819451004650755029000550631680772177758030192389160096170380387366817048420144379837435557567322059809875817868876394323916476928672855515132238959043713867511558931797063036387925199754616128864403959309294955058438684038139190670102713826291810978505786347616788549471852739839632102489112806150163533437316927942644963014432404460525538921360756223608961625360634981685028850120789245944500437969186623578677885181704965136666553528440696327081420528405425085712680027283384756180071612368645635040418570570730761159860150706473644351664638857343496284346871239123740360114947604001953565380639827039572790927580478536731558586041682686128599706656173422300551247086468829332520210551219563170397014896635858612438433682270758224551574154416663038325468801259365704266156465047594751291446703729148957086550418168820615336270683250737393495152538967402922182012389833149154026191860125101388625934526356164851537611849233399522027061642876553645162880434959800482432930975132967734093653266385294859388235281651574465270027285040735607655372823268536614376237141203572364099325586103739490785458862057968229774537161520158264367436715955361285298082347418617417625816901842095544836885232594714289382322347608370989391084744242233216829148130766967239771886224171416871303778566690769898822087635865999850273340826027970845496802344926593854916220357198327775356105922207943793485720062674712270995163005638882179668607130796920870815944626922836912130822747264583771385088831689942237158433209988101724029938924011629423274178853194548723900856803664411809732700870226920505382711340762277899042541824914693783926209384717180757851231378162044675123366947692698687889482954326577983097819918685997389018829575934176695977525433939479421491717475597366971417805361619213310140247071814960647012083999153410441826785500229945662946879953902004550875115294798773378310308648358222080318146630317784636712273427413433900687341137313930076762944994342890035209869555229167332021056799815665602329857390991687496402931360361940711129817153482035527941154128671214316887988742434124747138325306564716441155631280102540473129723959972262504442096230369796014892271505922607384829725028528064198832717906217948643109328898535861767606310408527604286162627596865871501926768267249660084282440209350176312573604511998363271821218691738736275633614751305631338747817505129795455198410569702505211870624399866003784345512482122462666440533071226138094874220084141730061490814736228836410657645213635883934840185213364439606060556761878934447353675242228681241255599071099262735602041920755865615266521530942838605193338667445969727012230174994379116766582874987908806575993578068300061242743513226819804242567306148537191712001155698413873423086418520714624015498918964211847432642702072773403749526012870349575490971723059160424655989174153836383825624990068054072663001490333433833171460359464820759815388757337686468393437142737299996085941542275797774463387818372583769724271557965629262379288071106907919232687445487564067441720310581222394456992470495438626334061641062514395860902030450537149644331209338431966584123143789908786870909393045013244093324591715830958953682981027557676944656466543514195627287227551474375901725405772867555901054017631165474240659598205258818413332162335478547472239561260705497229787839715510222189943713621367691530584391791145046222631130192296570901655713518157538540777763473248540050660680008999821721629234234127816306698575742543203898242997741174953020014010850027758814683598116170415851816113796388614111834506096987831378131591301839266503166745107483392524390601115220025250331160675191364922977637959172752736566670375439385549205052124447295908461469124803809970416945800595381520553357022912228370293036205732607680360199344749863586845894101813298782281455652380653018454055159192144582060972133290816217031172920090980159671959582075057671174719146756240149525433646864687100046285684864047727047824318292006175468111231749694835923593385583400730067032582893247272059057855774457803459257624121376459828405266494726095587996750171452975419745141596110470938410305153617549313088882045400806184053032897140606391556999765305332839276790850554318112235241495341391185551924586084408827734327591126561583112403899462263784847405364538968116292115790804233677047464159188378732507140333519703362135174951056305068584768695855868341731250662881414268164351809052920045759702554343362551990424590404699572202032870348054317605338256563928661149814016082807103014977666495693616549952531555689898026085776620017943636203539362411822150349255718957487887239823677030406689055680053212195025985001340368831775947817543229381803335101372001565664047544502232309382937460661095648892073478180398981767609495891931073173681878029659035860731640599534884534750797562330387893981176950374464485218067326075153731421307577572491106758633342795394330510386573988744598215893075342643774610139728463438891412237429809158551070408126828974977561556776356577643629415375218429369457598107065883714291063309671535009097637423595180340379983627831654335379095666975438412280726674712204957177368711681297489014580955873397741081581990587749175772783772013693392573340665686578240533166962658220148411977275653320308168290102885871915706372214140332549923332303481655418290648937508627540608489751220758624422260059625866500439305727054640548261178103821076903932956882154323135306440250917370011774252476596687936828134060834567761620026314999440672436950632345899123489594022854258780596375153479923346243783959854300503336373968922403892607579529581774133155452917455334535039518434873752715800774539071769855910416871132877422738374885993068468113263472264982914277005813943315200308696168019011401269184476493935988203684710069290596744566930423275020301301116315156252783543635493363222040126045947544966542316577402533278195571888781677371171537580969158247662110578304465841154168991940429961814623431237691028062636517719643026304160770801122694235110375667851664655969689098397843243190636006730959927725310113943086857155924624596584059953082120952411132885523631244133578285818019881821600101514017246608381109282315759701710941410621589271899738454386066434794282590381544628196883670368595748144160984948128352704118770225719479872486104793075071466849059422806776572438179452596318349387299718255246275242909200134862016356025668969107203475955464222185996070035883117648941627424832938360546853657762410479765807700705939601081030413920665194837036132904287404338195378394852135029265750751569559902993620253356765391112898860145447683552708946590456568563149700568708653117034275569950302263287371075062851172562595368257303064423552253742816407948492625510187337759947242900916798265906548913669561773063061253996913796476965399951244974375841225473173164162421440752828982943731551751561508736767917838857344943745352896640473218233228980768776899685500626035324563934335309253391037961456016910122400733269615169457969986902832795156114421578386208276630102202150425484990829699077078762005331733239515005760920166593203986566087502668889670011686324952620024760723106304339635684607994662733857251806357972548609831602937485348372573135248735027756484875676976745135068994551883220304994028026693935113460026702265779321358611557229759719658196007001307281582262062305238750643073228487083593125477210366257835822937835615691350882390182087148004230579723281282786577096977094928715018364436701787948746321657978590472660301894416665850584749687364840416158861076362845976604087260062853538817923774438700219855896674782683550913821793275617581772907299002890237355648786504123175487175525708680764879472321119771726796135464009698413796879233108829962874673825339880843681307449846045991186780091932610404034386264308104117727963500646541741785151923549145414218122022142492468877372377098695697893910477703818551081240901140667166682033869291449110180747773525088802533382950881854209194053892242246616494346746143974389251750654947543634649179682052848285085079183739427918862419145533806220526409889896560715308784773247137425074782575351428861987767170555642705763289784840085577191993467792848094382708657707328867437139788649243126842565228969125508816827795303910835996296162807081923040918418694827441197698827948426518433824018889994030057314672472977454315133069237777965987931485061263431094701691655478009883521449816174443749167763186315805906508554422921411620524051699748924226033293627909897443450414452767158612129387091700353974771096150748491676805533021944652197684548764237315399158641414195973368209775429761346366137535601942740543714144285069385163794951555817866879677870847032076088844507171000254347573199023065612995260275594067302630722649472736330129240884754571062901031228290404179772043121616396720473885305561782894718816704628835106605286538127363053351619590101447741693846471854782254515959029420391247561005090579622019773828299163510169619842141626356911986957678764355048756674344022654662208710750570606095348083924598289660619100698373734161468882656605754285264128630092736677204687704426743495756993057906252646230141484030547231651610533986483269180229616763445494794045399094208131446345246590800995188085829372880196314710986632062664304310929815371729769668476250273781356993063910004787427810702272918476770735345804745910667846904044192754729251867122466871492518170103211218918145196649775119076340505355602723180571925541719208141042136621207651419754983819616447802472704586651608411776173623077779539647767287867479857661178135113806739657876089688693793144240202996904483312125096619572785431937818723091191189631129395943198925889047401864796320384858261299626025936640031879390841146027463031348081600967456469331357980665913054074218671154585225354732342993038442459768985662528440881038529692690872640981515365618126094623751426816489761013492980872627763452068454339378907347437271297446315935761748934239136256129978631499881730675482571150905757890794592328949843181905274420874398051942824543169904314295124651356255723962790578244208996994252744039496086357549457922835297418977680925519560224864043073290427238882915970643860953854735277389823644297736937974234496591952914692375855532924189133619780439879736058383606623368697304309627508321072990681758785272701418489128567062142530033793732045318677451772346630382260866552043301377025168140347913871810488774340560006788107104592876064270325696547041217758949105603818155473995207000143880126408177757261190737981548252862274985804703085266945638385872197819411390144038299683931822656075058987396967386455894242663822344925399756962378937995316808255853156662549628576107121638831487172598029837091209891651697313565455474629172350941666032026494181876271802498991188623880805542055314054018818063745821422851159718364722224903199780605823644957336754605127676095087261352698133503987496738064431909539056493951370964788387499317579156261700617068231998807578634121265795401949390361955526875867360803888796385446368524785457851728338612963133404615262981179141392180217601597716145446346848806830951975424653955076055074084192258310465790952150157741329527102918223614298626446667107230683061379856645137610076907164742018835224799616297546918850615444762026361444880939707223838032005882129006414075769064622006573355849872705029137675733354400406094381380362938837715765364080565702513128098248908604944394473287104910370066767320938482575616173914897378413775715527058764953873976888757867182122786775845759262501487253389783808562315595870764248846874713175664650638268638822421182672246677700078419383521251235515598886926457741861457784980486090093293367761865812175475129904038191020941387487620247629014106425459073141852114440458181185832610830765361046300736812738695169703685522001607300602596343242965212082942044822590093427354916124203738919536865706697258382204394091765084573582046089602466368459850463440465019793357537934014973811217844823815718859920428613401909027665786613935285774580747647973635083828249164674697439709359672930218521175264003836974722102786534655315652928895007128878473870825937095918803788052643640982384273237478527927627889861750093156328109079028070655537859190677326471047956266853280796239672099785203736506005159853105930704243298138905473477669045236819002675505962400984558254655446166579496003293356615325053316749905449721649800435152227999457263826068926023127198627462293163397365628483153200703591340030504334058929170904203690792111452483833133225116761102937437565920799468453414961211520487245085819520976491051235776563830936294756399901227175307641861479989675315941010268241959221137541907439138220117980760674760272556835755644121253523913854103265225586710255955019305601359508417485327594645661031247440902816885877373903241308639658899172613605923083953621073308675541557365398038835687197689917905917687891496799273140839333398485853418876425904691948970360335229976602309406847460820666656615503528217436719852282373306608780414494396133698602395454643404552267196254026927077195621298084348564601264489236159491492885314286499108207332421136322990941037287619412374397232348323928435215594240241536254414629899149587558689914687766088699595338333556774293359721263282257806404979465978352163154700084812291682384039460841228605502191289485441751774609255618302611195924566526836049517086879427163675775477892061637478461750103679102833414920573756109044903936807290775816626198506283446453582386506498018535622187555668262302898227228537355323803343950817276035957650434986732607638782767866714012706111332410467166154234628410023321540731403724856616136944952632670582879201277531391673218396466831843708175233052131265819135859118325831458057389417995032328883206047368060105335447940631097723707170992951780579874127419471625854779649884863216374701512891105897031872349058130218421827715032614066402170733458860756113495403294482447316384626973707203157077291392631339963190300454869579469261065268244087737124799711759109991967836489587775266195943635003754443885886192325778039944494914227249679976651511486947810169756917189963595777996487768649861610235062604937389123455938720730904200165266258833027687350458355728525020374600564161777929219995491381266587659741493453169776828252521761136630787117712304636956126345455277922730042823300015610419244919547837026895726274061743279940815189667254833678867607340035064781029439736245349632668047959257235088834321831024664946488108877107466345992298565984350717346749246726020184379388863398152020603337464911681117363813280487499928875589056685735274821139825989319484516515127680199105414076550220913806993314547048531741414553261161117785972187777532619657267346042111303861079260660741995176492308238825070228314663048822455214628480523320147256256582306739706666919777901490546161860583558191825984824607840260002594277026243381790107045945932260547989279796538984273062882415780184920434297013816926685001138783008431462638744713912058064375593014707487649695257579822023011523269020584481008426801405903440180194013413851846618187499467395101583252298131574269080894962605499230141027919143889433745722520475627672985324706532057220261183684584191324176422802179925508755616469757696977810922202886738196266085140709198753286160842105432368361874360540577753758757001157939569339527367516967202831142323020584029737117387539100813287606715503898052205765532009312389293702531503083477505868856399065980934855502242850386766821373751263774421912611961058641544125020479425039438126602344340293320447860787772826840870419774703481205933127984762054728328397622945332049125450124252565823138982201908625745877287328598565229586717231597956366340567789719495254357125035579678117624189576758094989821554353094562629720247299580842641932947250776612733608880279801756588984373846984869998370294150557871965581865826363383361278289361863827050066347097062297481509860568768051469107162342601618796776527575231336398919898794314750304429045875285841848452327649318425738977962462967335731116681082538957405915215017772250375676581609767997760567622539595190372996424578382084704429634111251376270446179828776817918686663678567444894449244300747982041112234324829821665414854070188048550817927273237382440757777339870099733679528706871239415667532641229417173361807663372918315160465187594406756971810974792948258225841601568365211876971173698487419728488004226705828237131503529271744528475721912252562612653335001014119697191872784952281529789192002744530422313092074851640176512723138552232783614700178534663493304777359243579386542905600940764848721646278806983804399345501454115700694741170725901064387247754302847988594367081284615234272759100769704306154912524737219399534725455926142034214040516707902154354861041802994554775040947459941075187508754086301346012868672303319040754795910063954541180857589963788801928124829375943163024584785797540575863268235503869269132189848485031358857756986533321792352498674201154454764087449532663765315038740573213799951230354240016336274821786904644808812267846353245785778209233021111229929293022811181560865389374276948252554337149463520765826987381654242170982697359387153278296915567177852969194942348258349312608123374755466412099371222132861007718565311582809811089966590843579258997229378352334547453348462515936857953226403027973775774831783934575810723421303380450193451981918913133337012364364346218307125649364689505431484437296000578214745673927336277260324231052008238894166146107453408015230454021013988714826461296478460649396974475679311357671235125411260852583570926133474203457011488959195611968107625398538711950113254184262968077828937422458883470198315304831206072399366430418770031680989783489946143585583428021252473867708283403574883252682767846205361373159451921527185743957625597301994808616285268426462155520766301486027195750179392859380709181633795424966376196984355625666088292202010215998228770891335394470451821532444503658380684346674944473026844741893365245035558345586258969868599893123978468424173665427200026258400975938508444956710649457367206693230266452011666436147572501971420814947371021908065207659822992702162036201307153693733211358955719864047703103985276456082543860556556343874004567663285691454963846008522005843086914522920926542643290655941242614972049100113259740180815445911091185642797625252319261001202638757247858699077932621215045470280084796968769688041309975726405084701278738163981575158268960963448829669569524214822135347351118810385606023100651881727529557188654147915622409514447934020797976057566880448527132167727487243575078177500041479386505913102734228165592337905274962704291757627463944954926341156595344736288849619132272176782650118476895527523770101243468209416236072395019044558675363713235498095045057469381214796494380563771966862397864809705251151037234526840904525506805555988192878614554016853433655074771469492740869136573163098660362216781498956071250546496839898022075564082973469168442948008396865681836487904060720646798915607001043951291496648047088666972031235649892112672554084289927549091831407486327412200024886139728027605767523728236040138816126060230817711871421170268101369406892758781908264205766829945738439495671877480788071788321399628047441031094375110027737001443764488787956382359975860247145165388108922305040042386615308046310805560541072056807421193609087834410658965815602592041007205310424231677470096152340568652191664080593415024630620830060971784021516301645972994008495906362930074157299976579286437647251382292896914163606327612125874323927227425073274584347814646185402828794514468932067751858653265630972346600579319400352157573519238573145325134046300432626181974944095075747124379422251524718022289373966490976777194004948686401078693928380882292597803874834911887228302355114277533086355226883496075543402899399105365125763510549941064861468286343243928578998776235570737568864102176801369484874413443443198545775799602384313968365909867059135879283129313922841455954335204640453492123913918063687313258473545271978078799936112263697631779650054790607742078003179550485727597578499200343050654819683192348436687767387705469303354899648882252408791411121370576879696449328824756219861834824924323660719605263862692049022804300140630289455521261803339799159296820994288226171500331636282192825675948493702759899004834743371536892083462796704888408193165833219732209322619839148382514761922855681109658834786422833135773150419024134677378193313484343615554438440355941415049434462974550601318599356620570173378422060390798650495345989053617331605990699398855046096774776677717657605065356833214825439773617045607458890686187165126568896323778328971117086458135826813853939601213393094726085828267610080267063599013531690495328416942759695846079602720946017341254941254938966926966381254767159016152426282738930408263143061185048053282841195674569449377683263533398370742376623263974549120761149718149240327849731949950006161842894089188040256553868151649072917994884300604959290539976357150510728384808468225082933043167699563316202826696656312173578397112649792595410081193759062288599612177275648437314556321287685005191420565875142620092874290681341728256178171195944819724853526805916181473323385381790031994653846681771220215295022624141253235895343427423696159838092268732877794438033958427493074883050220331679403583325373482849587579422714839613752650412890412833426638767394084573783926796489568190529700152275724537155298224395938783761159735440991865438412529032642080009878876950655998688430446207555332019481651600708264173713120405572458647731354259374163937661868554109303841212713692544301798732916541569504802664273633756935562631786827610817905423374508370691692976555892113116660515255628435968902017675231769182498892444511271406443197217806027227099962303737487185539578414649935360303374749158226777272287230014491601206491181514328131805170772351725372524341688007502046764724464196974134996256172728795552174404666648651868623684362634690744903896559324609838976575211806410611144579863018029225254903864835692382156480408359225658890225868724988838322150615770893867697973680561356500397455821141415517091752183956427450944334045129474269953561454927906654099586207452720757127252817299631100162843304909821544534004838354647990887649464861240029834764326717706004245101606133160814595854619000568781280078073503717754335871599308617882889788732902689832918681367438729442097175139963533089511083180592418709833622837665777997841117903757330754534067702004582878034782938103747205675369485050772879478064332385940043283918945756310245242418009516220330002552959901074746869937463923653216535014332092117094580214320749533110802177440818469975465456051480751651315503837211345372194739275887991469252740818216243304048867109516057088888276913469212430256936501949051516376890717676544567695962943756933300371083888376106255213672707444528649268693734496923630660407502781643054188741736860645615593397437129495492321082480854010753992339841054246234482427930181319878855446900393204892430581657074230955869137764508499836779859324398911469758035673297987710156757709014891620082491528267247414865291419652970538333561094850653465803572101735967990269561157117860159271648744826281931509014375605468212495819101299590940875599325712050619299767569854916611403397132316080982579926723701662503735156560914288601028938820139010035593405091236289436404838711825759982253411406873319451309289875746881747699465462910085994395300445600511408632419261910626233771941319875981436518759420485091116973571512949806617266806706484783176243098561130620250346972723086447738926107994226837685707529380617047018812414348165652937084987286093576091123621368290065604793480747344723405401492591432724039369198833324144618403876488604881683273326421867569537377461155461570555289813067851071671569294909165521315855229311593819928221975399471315494797250131541213083137464770010971627722592955498195717119606979973249828444264292944546018562853688257709472305610315205249213498239188450758389284265253448563109278760591436820643034042360995742074291489558127203415300828538579109088165186940117810665378267990299236137726162169418213619050494790931605508613153820633113043186100133326538123199380251692954916510566338363452065545112406631087313560645355401579392218805077341732386646187772525004675095425608926169244987504383086082433720607526990014305582116506071200037089990998453528110326359463430831847490845182508916092911419764162583432801424780219728747399168424799349301064068832788789330637818761109479103192240015151065188603959897586075932124967668876035998276840698235770269436685011809213797901052252728420828065042053261447776840967220984102381852295056300790572765297970313137200748219222708873994859882203749646832805447174637834620431604147084216204820762308738225804056619869782670012592104502891339406308191520180488418813333265869953463453235519335347458639796042699346758545377166039684962230951660403881349515654477867236096095649087587593215055706069573467036255286326548533069159338136194050222065225765183238384161094218382401987247225050722196526870208607369622526764916087288609954828140623864225021434612157678110228918431241404087965906302531020897522529622068438898560334127997410448225734024411095961849548790480089415576031657271345418177710590429727349425800723981630190526885435493366141407468240815318947393087249239833628485249058185488312968730156084337263431281194058292003146816447664468120336990315157843548632527586489210244450579853406488976845525164308593447509868558484811313309306176288348016392497645068670809240195772568728800892799874260607176169898223547589189385394134119332054171607770897997902586879896331987819308398029391377207346797702232218737720219540849174615936564442154905939024829615919287193491841401501433221938886893341542436359009378468807053594848927980745764968584625272215596381862527545514066008097993721998949617649515183061100035419730871978644350500604200816594225128779159630198179160135873167815056172654176261313326704612895777571779879660297169403646266728457164236822269398197226284073138088496482300827980113157694065219209152250860253712286218669115832855431637748103137146987141304650561264190297717906886689517849495908559037385409477667021643617424797848156501024194301241029565933759326119638764608184998845804505995807862517402399741307674374380911155697112964220193862015065429871121767890540422956661401172703450439055204854921953481660769299055452154989017483332624980922378544102245264935784176325656873344589581829364389121433308348419285785760169236014384756567589463197307313941432698943873156623692010841098119336703380929789831245339839493291770171492907448804544275428546316563529580840076279040217891822493326651759751647641528300646467038215955845894055247573947736941539066930467672210975277174078209436494902389451658641016905794955202758551773363257008341725700802894704461190842631512570527691696231776675540153116224444283049387517530951750312986293082396524702181035164546354376003145402844451993165066393096565134256387468545937771717763466508793536190567244828089013861900004818840867214196420472747392918249623659394250453371539343306966738265422211304321105726621232240755275387442680562461393063298571929495890787311031322710170749581008464772570208228941367320081216400837424690320936961977263107479718092199101565311611896738883719323970837113226266663782889938337558935747660578381784146484721065754870387047072243166185665832986720712494230741418842865628693525259254322276972190883986729308340980627828494635710051579224968049268039994406486927478445112617206921730343599320831542430021638569591018851944364537477183099506899592641637709033332074494856513500202329258460759460370400421828832511030770384138471083578655278042542866740655903948073350433842469163976356805925698632748436472747790131428929209529449188768647887802111595647503714143622819176687055199282314127045353484965638632947827060924648448533314012757027366978602721871567600661664990476729054374705918793534279616255101350609026106711998032285547226932544284730102688860609490021796912632760430383701530277353564953892662766183703127165068609791316557453326132281070020617021501749489852646603915957141780498897926819119335229786512027661148800548264097971531714488496141361107772125057200414807510367928267049053356263136743197066043178201469506214254320073979229461902046135656380507985446136843451296653255323177722056335271037058934994375474391894461048914447573158220787888360816555644048402985285138839484938287052910030698858095992886664477023836457330264358764605649499678787247831021712834753762825651768928114952806116378788832219752223759186579335612100670030281664899745625438456881436485515064350845901187451422485784162081358406257635506154229247724169827318318375971033327873440782502070998780836502699197040804779721553229576946963379342637520968732549108495580903878591011895540095759083186128794031264942244073173982634533299363704693660266095283487311323645578393002391046138050281905070702762111418121169166972922767611612220418791095252431681680127260524084870343178334502373203925489166325138526862477441643227562015879358477242393180816068936751922734932407862382146117589128532387816801173532061822634602406587730711500614162250577924813883726189311838832143144551261185578836904031597313506160709322316801835400835600494589047992645980636135803483739802901325082621371903157219688794667350269539171165183959047167238361100435472692521763405971946280725699061790740663796839740817072982298595590363805820409380584550255698695491761402007825679346199911165902034385502522510025246711652541021351163667153355806417194302018611521111608422086216046350863143188280562955041518032280624892496377958546591986399683225283369256126734497290737446335135878173110037957468531598990665355624456842630292298837605556227038934414391744268899665519402960047846727449152375407798571633634627015375806419107465677459189554485094194266602262664810415735345225123437971686945466247118538474046674051532545843515379993155258370770686357298854195388522422377222671046127432107823306201519437618388080645981592426728201611095507798831298258981276805567685555242043498429991980781027887245809975076908286480576463690838378969858898303180941438757479781917682289210468823847321552862851075240585443705109359820412752643091469575580305566752277634006253228791080382885020362878174084716445651737116759237259704420303296697905417991870758664499174675169492914403164365971114878509899512627897837746373834746516264316329612614600411792251024231224110704021283509933114810888054069521286332827122396803191905032149200954748491021500974344626629192395508915869663761950955642660236462003268282675778771129206772652390395149631375774044025746034142403790624773481393404437811820123086050045068131124092727398421668702456220921942257437715871658531115459779933834655759639595397226087703265164481384778490371524146017021531651951045690509808332762638506264207966931237627354236189087031588988750928801869322233879238203017599482455637875908492297439681816970861400070274813121914259052266153982254057924341655273089877855269434814255752634063787805566827998053769650269475223450776123849102152809739195219364905357299567932203528885316365011340556524306566805272922967380353612362032174993820634248752444218740269097653492324918046517322515180637402591431657053043784526672681553079031130861966597208050940729257485701789484585399894081524605343163504287170758458925475161747065946366792223766246923805782695526654054529128203180447520440187152717452856743532399460317280625332737983676550114221447978582602080852260348632370449046558978303966444537710110929788307192625820502859345706570611221112938105958566845443135331112358825604241350558652336952912970343784187205477709895698922506230856653259301643294172108003153058090941884578817965564108610642058559729995014250751405897458585959748826507201842405077695238982787112985511801078211183381509111531352354142442653088781461134166768168042626468813623333572898054142663715398204084951884896077573472478630441608025531165624837085246861413786497197231702716958645162231861167860879024040226496907436888167124378264821264178878483685558228628337304303073458859928199635950879209039004868914829769989280778474355658234026723332161143068250511512068258278991252110638832262814441152372560186371322622444687927743784802238037212020567711073677589218574177074752397977196393068591986626947947849635451309674718987743793812105766185606684216010495712380612977923344881539480762267730138564897521378277852465585434763589703505046664673703360716229271001172152922718423537098387245108712757185369710251548545840228292661193416128996650631328431885341445550836860853628495240692680390415989805567592822515501779626266847851861088208180560944998090723577350557914482516727186533702750763954317364923442340089360822581359035454843401625209903502166719769075259823165939997307668037605913664059219302553668610119331615721222783592921331028132896154647476083004851723998212395948724658098596459841768866855101930651963908132647000338629393874861168293280290026931307465209708298908583441232991634913870785767516680600050815809352508136638053291084721157557934472747916774580714479420094629251135772900340059549659265941546191627585156518557235832118517790357737002574180074710889440140183043972515287727148025328750186356341662736615597191498057027997589111671351344506683183403353623832650108163913129231763358371960936178348199880096275531439563356178941835023363104285490494080924994699604926226840194399858665317026796945125436036118696295559281440274786693411286554827269709502088838290606591881914781195858580547599270419293151813487683702424210432208877772436145694707250031007578854383444766154411788399758846928521892538274815408039278090359739138587969907113093799328613390463938842507367422099542346138262222253484048593327347534552969558328584183490411969538477896282792708656306076443990290300594239775906839485186699787889648458878892119301729165681274553325548308393744837359325832363124839720189278734612419286916010917674817550969478545040346648809983812123702395431578090408995306023980158470720805060692191296156999175674262441655828812301168433299965420901247441424259295319926635771579286432086813014768673404199003166450662703872467406247556470935121219086629373751338985489484664995035679698848169342722884610032620207473079218947035370578139356520358758866875155340054419671291964997600455339129100762776428296975500247895367651565294256727987739910429934595371769288984822552650896644043000451085225614926714339275776810539729107199257972277088914180971415811116454078184922871890471093713528442436834879671596744892640181173033102567221706520994835465153682269368693529409450510443248626893139552214774627388076098565473773177145150427572304331211708537551922006366867908819239946713905486780085445537326638563247177797163875056345433979784669943417343228929188352859635868183459507499962788416919444530503114064194068684193795021841181973969690053595421210902802265111453123037377194200257431891391932819581830550527572269746917033598178143724242553746304414914909134971306402786488324456223209912188035390528924919904117128373872840565486387136982683058485189067693398008951564394431284817750313766757085397345472073393927858241376029043025775953541213444615022325659788131231664547169861895983211197326938701812578116925978430385335201155877320055928363188114403178693672303304433734404964958636981934770878538728050160973902067562397224689399427648397750429681242752396393726696638996306539566602539210673986847504042997671231804054792777238802154722272942496862740825552680846839275863140585256996696795807211854110775826964397563895142108720530589534600815183613554218413700032456234887759335231798045658877757954010728851658097335994905660124441536553840856891753521630084453143441843976821930333603787693645634345065380569891586376135580833926497357549120226891503531234453721713870108062110712895662023747780804718765220684408318408741162924526034445590672893253787378976342204800439792861981794444613529936235358159916606298031481703060569742405661196021314378955730272234553518520214990216941829210794043173798344159273323702174167210105726911093603292254742348104594982573590434582970482501967643743936187243496265064323620780786812196405605276943215846288682884555670624099291682838432226936362157020700157118222125841050521594677812357106170652288052936606451849723854809175657177879862181814798300596110266966375885810457437016564101544329694743208835072302535465232336834290822361828514684070217175172501685863740365499428451082859627185810696128104884503943414847558742170023540483369579810430472955206735985920348202047971408131281007872442911160004581349485114859077595840777227009997476273614528091996116774110085022444662291930142425916468463371180958488134785147649422194340880056233881757017499526358955506482681977535425076175684322544429879807919231914935752939508758738116101340776347003422633278247768116358446774887693888727999183358231435387970176996998426249779298947435521658008212142785290384964943942546200658111117000173898895664905122934140198929794535345595918876918262305243276690749816233093339868153985314847542558388147228714540551280077136333784950379019489852609661540694146450588297318804762504662489155126785245026566185345389254830532727573097473245048077412281547606798678532803424119471209132221857430528126602948908094340429285731330007489172895693332721345932175940264190782854677249209270707751694097247606755208202512627262736851127630186924778422963322471079891562911928316138956488036896345708584795965502394788797125883911622832755969104028672448030852321539969542001225919825333318878513140756719628467561020566802644391991503550788307629466688514531337747830272688146664888929865600951403856554881512706839318552427693005685687044750746598223524241907159681984565774720718519469507886441690526437517290361713456756702038541872598863333563888884028066162468287213685966950594363321093849989433206868944170316926782659347310899976668104071867243100262676408014802055621367208176088573432125518555778538218019403646511795936321467044885883501565644682618138972345764884139048961047968777209447611702673098816997677618081427653851555028167866717781905882436691059865673039193117357497852011021690494514666391413557496525894989302988646227330206410580495272175074447989025240307809330143945094252745175688393212937192498378250903436464262648378519680056311849501601674360190410282877096281223712910198583788715087960240433859219721993987752482264906163796510831647362816995686328348911743369420310986950381616704522743432760806474483535080874823379216965238471828935821492849846971353458239570126857064106542920954739178593627142073765184762964932772862362207141275698329364408500142230146711436637905770702180133451972768396028667421677907810960654905453234778510323676592290698787333527522462112632679472424073556946651010589677085803051994286033189354629877194549210093021948644162747971144735585904616388455911639966349887191627622428669040490036513139296703790432099934603724582334579436436317080016658031187628959818604038326755689013292532271545450166943098345383797293242062347206465136168077122056389884389045236417616571912477657377967897009684627046176664350609223893490041581867543599825587755766249956884991411492769082549627703256857962716771665914998314845000492158736449037106995898515588359710124478765183822342865073897444535311322420651925035377345817942364963478506698943573101697952071319470070396937576030040365033054248115257954888449652794732828927158868218951478723866087851480983664573037799257090475720523480683626473993867235707098023146021617071700384629598065836296883551008547234226276992432176111858698509424861664935719679108243012379512308224775170846737495730370649264361932191788306752605438514416200739782813764107045426970227143254041358788095549683935533213440555094990811075657701994481640981302009562780401235813437554903754850632319369066352053853222170474621234744394942440527673525485057503241510800596485360078017225914691335009160730482574082841679978103627037387477284881714455416158192488163108394731256681452179734322900166644224789162306817598617060913285608616039956248429879123793009984408922450650160793007947512041366278894719828116122512398402613153387005969400149830904620906493835868210931259053857642417855665703476771159540359399095623953083587157570129100193411054793878943606439041819009891099900719821311450521540202507759655447088141386595596221118079923852109158452294628561700273217701210985032643803342523206858969427208902971388949062793622687422281249413694660944332830149097369401358652340395880730111489251350954200750969122399246478588607631430253970646211717196721538292547614110617328847607434765510494987971288006086452066230755712063236285522157283886314967520322661763242409294556635130191402322473572010927591269408121087976613032663605768538776862225047518380041078211335177451963592984527489909726279951183749753006430400964712391908443401616596102665769306048990517520495363614325724459900931778520723014658244893816939657305526171827359821039625387270690919604869386298924910227196800817325634262762508948941779312011901097758269704028636550721002745252941733773621224662616172077597284766799874146796911399625518967955674954603070672125046907430954018982153046307346932432859669373278323307676516780615834235053667565700038013451116473961850719793116439690616840146364353202278500236625514133351285901043933655926775395093234784507751108404094689120195895941931512385614341375338055403509060397970493418416048172178047060821586286426181483513714876011945529330723512203997923802021914738807876062897386259707366472955333838980645697170249367065416343264216400464956744098264027777396734574071427387582958518591851504492693650849114878249944965389403523896892873701942941408788014415272810081007468834600629564019726932952311094457622565698445430100353526932206706938771174171324675931557843202857251413628997666361416511950243795746171564464395808146549174772885487953146306342604703089337901271151887600992100775019759327506045831349173716212791241222637338989442204200780578499716934914885020237678302423431366848579038836872905964356276451140920379225314691547623289504387556684423589019988741229922283833607407836853591272742579273045086262440037089362090600518602133387787271850437819410028200062524841980092038389666916220337374306468309306680724759882345581114204660393048328882049065920797255850585379411130767534925203877419449282233659874847689828061512240102514957513872569470814473705035138049496154272908986918385672744165919992023053558907206405127174717541677721248606214473223696514531780816297945434504384907329514143603111862915068428000126841038781501435992228713305892648862801093536057449520709291602532192792385941625186684627362156784038196333567053400561740790663303215944476330235923502812130881386196516427930469646377742746192118258796252130967436364258195451915116544405401137690063615175902387055382687489812006184112234200106025834163646867335260804834477906022235303709375030898399637939557587526860816615371689356487945629364089277732910070237529256189609903178551521241277549210626771894211972493065483999155354753560605539818432058670338120924655418922349854743987474504541663620154886372340339209453613691801067546490656963099406475955329180392453592201945086770244407995120287193062646569976224803747954375181367256607335506443275688201637472749706335392009349317091102597455509100830940807213904300436000079090763993321265385056336665538491591417529833493188277063033139501659611970092202197472071912711006520482286062427610905025648771018314423750648196097747442384195254882107359197426728513953628536207927206109217557188619164250020437744226035895375025545168709236472023581629533650414914925230460526089511547514616783634264544261633990306011451840628237460193248737609215802269786308332836385702380539581737423245404561778261981293097713097977424064062245826859049616149760462087815300966470962087958495137787851558430311851153454771234073649099012292899973043407375169671574790756324238718217293395757697518093369515163471862283945608653682351759746203378909968328615637189418346825849597050650270459078182027534616134247464538409614258700837457588293738354386897239809882251022808007961045703872927571821284946823685645479060708623758991940498799492735699517081032308195546320569014684476089994421584342235118214000917645708613240516450616221068585014228775703986968875570731451752953416212465134053614235991884753588885872241935533533000469222739391775483437089126219289900233811413878790592799756395407786002446288312100360678363158135623482492909757707620329617288255618195809472962459461757233766274202618164592623268260834047212938604334588679381185194360726603779087317252703593335915353612578540152070765178971982624386096947833438147344370114432737030694640805380373978228285094701236394899428040172070760630242077991395372275486257600919947929666972141866636175684782415234290799977626715168574275351248762191666311915576538858465495825205078617405055345008491463437662847407845726438453175291773942559690752050587049708717596081435695720258868618185397697750621216033728045178063450633805805513670897578167382047268856686676772377040144351817031463912186196504290955706516135984573564097503961674297639769215515164788801930103618379422865773090517179797117147493795025810188663237253461061434004708165829956401286139321139406370644567715092243570872741901081835954296219185709558469409300306534091196822436301774803476360141493173656130097560708229355353205371609104177612860268941781665562304681899035602887263500230031430817303373892002703258960168855914339102692876558682504212846830573112569650153524366930118774325029388319642417459392299670592817779059915386160048987918876374461442519787512628097786370004514521973849107124180934232486873852495970732383938361473964904890538066759145307801545945727146227016942477855264052183996744390780814063542925304936237530627453922135396604389278527774745832029123626110333095824124461076857919944600760325263777895472189461552315470871133187850367652273877000119769933150299024618723758613246818109929493127386082205124021699056557027469096053768570389212944299595234310611385987593538774205230250524634411230589807166861144648025370000738039577727056962942570308668370310095417960413519868753715586572107220483824207953306400130469748683078389479516987980358728393672246817485830748401411344657843092766145098147313164562833056959939123727223105247432989778782966951288357566066587299624607094349825064945973942032156029422434926543924745406458583153011469775883359630203229970103200389971162088430596077001741470889500012056687062789878803768639061324972406880232825617571823954958357253512434869846513051164800187829103132939915744054382375143632660071514506099617246644819297662871904519900611254295541161549972593762271355720367332523971926179665002074190261858162303599668335365601881774288307294362708170142314303791174827620565788817440816486841202736633034911319412819940070011111759650146814550394189161799975473809472954907833861132575523178320267356182698041518286714294015186495555709406292774171791348797347274796903527746986444860308344371382379661076630462442781760658294037153878672193031035469150371682417757766207407570280695051453350773974796728061899526765358500001189736560708003799615998234733152434601428307825147330691854797009877669056991656493545029013304512976419702073258366360326474726919162818267877076206646177700171705139210583220590075473512431966005544446626130858194252099829914004038703978355708766953804123389546298154340222110691307444319101666171613938074235593389070936923368790832145991722372817283489324222544303962822106154363007596020283715105900960685445990843556418075050521915005176027305977548159134792594269087425646863361913954086564283742792639589639302101180584960232750452588765068119696259929745472596383255383969750132528742628346068247653712845277293670890495957902196194370317632497652290409045890979575386641430509266643965272785331875644819515569944201513200779424213724824604229407062237135270702703912990472970244046679438933945462362795790359657891944063334927095473764071374251844509798325295110022814351069476318279774375959992918543046249206857075980075488461697660738495304865043001811806031440695764345141788700845976719147473219050727465441394241753584671799681038041027901500261563608572653559361281128155211950893650086566264469585511629764747109736896586334985003022677129533014265991033394791020514644140152132399969326036524799959689283410892540161947366188576635864064745077988426051271383819483473783207498424087572372325487938247885810961260959534741406194264720941218120161604228823054787216981910692721452747021612508913511797955632625673430889447068570931600465378925131289831654925647480312978729073326078677394924574708077285764040457353529519536452186734234721815916441007738697807677979860734161285083806655581272058277606804144849578331585621053650137038742663882808721694127804842292425122330624227201145002632011097529779494122042786801115642300418634304273982008074869450947691440642158728767628338901641112705912483046678575169836187827228731231864739499355844677426131859125587713287813130558478988383688236531744736305191672566745052649508714976309142490576699573361079532428216627868187749077800538176239799991052319049044866715658837367200245104925263366272749280053566460925155770183432500804971689741613976421079865715731021062615861354885041781647750660804558070301530954384555614086734965397090394537370222708513031091089812790189862760296222490872894052572028693540385597336732840660864151384484628407948802980936594554835551766002692658856494685235918931847338511070916783309481520957098204015574407145972778276440126428010756820183882255599381035396848661995262930488040708393116785194991273210432619097744313250347830888993380965330838807663805122712444088894288931971566128324334577835941846521707863249416516232962040829748377545620736776760581259992543592948722705221273110391660704222750981586577833896163028986304884823663158857466585400864679267874827715711309755892209187370957088421515685161628899940537220986735560844297824578498577778584349445883722351261704514699514420669066488472902620714286469382503869805698703868224670293415652151340060601320425672932574524686679732905807751173913606860543036606398696459480749698504542800223504584095800632872854578513902856883389939826057028201822390357787379191223647415392248272184440092276709292171329933663587134121457196558233633359803289492367159251991200890870009432436521542344891416329870064785353777186461144852931889621996077426129316556259016787979678252316415632098000784085610164789594785744957645177929545247681565460152410883530893497934539049217427515396931747464659809487673942836228656999420649244302003363162796147348575809337475066573319018159920001401990390109902306590796211098050790243002682553050414070039368278394995791471012192907085132915262020347373813470733463744522373669944735767755521014386831522252231401722117167707188796234344651317363224852296201261405929635513675480549943817122547845330854002230750647208086737308230209819848009389751992085213965269434876323197777271099558030205157439902776908315263546549207032776785375295609913800102066631379399740292340702872841372129142125225775378249686875076889019432998433629711100460896182010322275379790692564831165187289582901699119136006882872623945013825042705822912238751900742032986004315803070537670715221262674228386372082477489588279380283326526024591613618993330701205535823559228202356943663498880532261993944097698394413689330269068326616502812421348255789078659839666316475170971621395816516298112059662811756480514296599490346867918924680337274009961409582996067168631336704389000383617004242584755219604993184499526423994545017699857556925427209083930294791666152167385423187474189008299308484154396474332370510714225610579643166082792993539069698663826857833549254556190808197683332907811028725483838305069787857940237225652648403574462297430343218198229719410437413666035859380971847047957597181177294486513362487300686903407829815153698795374281535555840554065574723211320899380187344189919254862082536272208778421256462487251750763050293674163552824203679248804705541612462379698964288431069479645334315499860669948557025719370731221068901865825231951165711881183274404336819454336161072065619372203338395437626960416460066268575941438606914478676795529425458383250241392998519250774665118477789260163122058030424430437969237872008449903927350693495438672219157819190759097934546036795382078179179970464505480454762066076170027407742720392261330646567267844079804333173826341240492216960670435718050126458506783829194906202767671942678897823011477683402562476202824024548244432105975122870330862241227595349853527120004296240395134157946398139579377089709221139374376342575694450966852887074723871875640465095172599734929018525506658333907491287309484591528209259171601757350615870160907307877931345812802318220148845337444207591284289625820374888146042517486951029263699268130695036512620489199881887209815733448365016027873443507253310031879195735929672800057787537023939555687073482294661870536703419596197781483950721439020090813810755067099685148375068936051007990289329105043416476174723539082718225892931717139927053493976261322582593453754047165815615559446536942185344087858086301963715453265180587271014186053251955806478625832350706874724940728243320825726739724937282968851158405893073701823633984107861748088449474690209451884775072530209189098290995385969114339900160538387862943547461502072739606101295232544653123868754225486670213550883953509439094598050209832252711239863748271912173381698012654979886673502082010167946763970030713791202265056654616286034763831239246580140333657822888841319919250223820857898553529956266734862233337444282695602348041812696187287435745472205206977280833009112699631001778602643664660511694288946849613445874471129825149855593836661834107782473784188830685120976118017684566777982996339675621527969576264520701025004200528485408820532692241181292140904062340183811310539095784962388345166457437801209521369531767464462505923539776658240229150513761217966887328689615960990427893999041343971370916744365967898706247751245359471151432949981666700688606815916924937270986887423018346401376968512355912973998117696334598165177453181386351428234207637542044495284191553573358579871172057302151177156239258568808180023244098942305191470342808730147670599751733813089090943648391912827383190019206904417789646197986013702776826465796852630332481054813983384161998262860657706080185958839175598875388323166120797528719548460962936552935279123740074469883169557843723409867933429787359359261344787325667368259604716358865478300051786526421614360884117227338144846887295212474459542302603998783891408916943364018038839913843642617464186343716262716155794180507718647928312267892306737187290899440981721367190168655874605667712376025296396036352039395324664763398477098166698777601508897247720485710164509492622893117529549426927375579957295825412076796727863909494401350279032658188247318540915122873946583676027677786655293858817413203529672728428208491798851852205210885737063085073060314984010261714602621536844421456751598860958696155111283521952064555256931699309990976033602205220362010828217424146122820383046500776578238334367298256458091960676610144500501515774462554060108314822654944496817348204385778742800649938511094604778208727325289871483821640672632601634068703404442131049929046503563192113796156374292887987182186540550306882746809731800033295859716636501471597502824555308852013009879347443906076138266054572723088428119502678198960745790345359532278461107965666863754748727306257371526820513947041124517211897726100304278146902578967276329226762865822924351241181898294442953948243433721109022886761834049095105937676855308268888290731569247630546763993914651633465471700391505084172942716693191647845427480600505989258846793643838950366716282157632422590252198181928027215418397597457303136896408297786492948624080524626355000021395626049822298389930268102492752810130820597988768354850632992499594765804657205451122499361210123556300866224643902086264030871411816380696811689075717992437496099628163380696379880363874309202415483420784380523605347696616962436641876909754313151921115492594599720868235311393385595546284428709845659728852118539963227786248759218829874458016937529051537697315930428717037364355679984044115521822085454415849185426397390637260194752982406463533733446583471009898482127943203459475663362707154441270569343966837130996907935457896491823385680596740081323023426088580248969781167048586471138066048441491943229911951493597919171852699439125065766049906736853785426911513088967522619512972362353135676208228770459361663762877577141816348925732260049363910458578833456260444407880303360847659248302068040664839618714996072251203487388256566853691502657895473977710267305725898103493728830514112403898051314076609575818542028684568993597454395563694013532891651876548170208926030766698455343234590594339416233790369860111567346205192215536118555516210749352610154350527057345995377182498424728099617066675813898486904814597953417847455949545057814347759119336234744546345351895683212718606024398991358892909895049105621449364106259250946408205354198238169213750595637850783028682846376234598902236988171523309367431512042615949569496811602424584269530327492234157607756786341292906529273698233794184620759751180213958768763591444650385362402367282531597842091329674844025584991213659134373661180909097779732106541467515033119421139877700743364891071408692133065602913596779676489782118026243733193416644738474029045376662680471746359519113446709384847895107250538757099408464912687152290444643513388406710118585828155685580036319782802111637573296783677804128010977692182630588045747419681244860164301737544613825086259326615540888854762418193887554174326414697244029126839231701751610638164361729950969656190486949181874037295526157753296159516013279765672389482504734467229844463678473637921739968377043211948131487450124588981554057334237710254958487467705653096092665795337512914246014474399425249169846282482797976506590689107486594039552843215422015792753978727044032819282739074023546352750028753063180155841305602209647792338634854628804313231381562609887429828955017149195870919634092734789730385274068001370287468982381411013438804483201003937825129492714987669419154934149461866299885455314232669423455422068943391132623638564914364585847117682912302404583553806448140195611473559563993865021303709962111828136071387120716161935248401210831547383794932517954716095744678873002205907832015812854548446537212719617097040926986376359728123414158809510812222053276227602921412519059330970755605611239658870190593858185926507701675090216025668173088943448637335232101703277691096356444458233498309403577740460402201863052469657279936844731093566834324978690353144489847697357737801543793117170118033137886000220588142769848756356608283864474682431347377352289437297478304529697675029434063511745762388885086712611478366247094709634033644767019473814779753219956888290891150487057054617288034306817886567613089035117520662331284517125700485851784103599395993952022842876672943401549291223553074692480299684572556436155584570422878701630459697587696489050441846435329262196091480969818359185323113140041759589024277255442349043897460680020853733726663682015689768938783487752591041789550088736455718206327472690209673637781285237369788416577401341830189721025067380309304552475037092469467798718472684324392122314298522144500208077355761920195162327665785508827694343111625945894511046018428332772029136912874195934991163903807818986017302946725452634097450035404307332204078523298184184291581817522365455071073773287601890759020592081160050725282625588103276475900137429923145487841138857944132880351701622377452751146517725151301010133613020996011387437526994339438866670935387043840356809208024153832647053654374396451901731002304764172632342749168801086567435462571157682916435218390571939482563955165659143128043303484029811629513380542445430377200568267727582670589854151558025397696641973204652327274996184733692793000199140554802374698834778237472184015474991712601261373401165282697532692472361590764598793022551611663132816473689201074828444281741572217088401498394023432904066171133097796772434452786531742062814626896898970361199459517242821926742725508985547018360919781112153048901290631744680154446110587149472824780439158565774250077952982011149676277233175468465511906069758630124328236208062654890997057367597807134204729167819878274352611705645046832328552771341062486795642577423560421403584383742770584047026309850076307876799892711439046577712804465852833872072274495360293205339311815325562794442585421951694426735902833503520290393394118086268841908036639697325281740034212695646835919151715573364303082688913016950907723196679061370647915830574597652248436142642137498143393588739728077877999582580883772397099485254592765747491919253134048428129391959124160454238692850485998163642544054298885504914895779216727701777629806992472306530752086338136720625945468507201818821402365408531932995114468735199647757695445331592122064654714164485922233931752084761451113804281436098467611531656599415495297666770490729856826181886471572856276856577854510198692364122650893037617782452871199738536235337775082512586666532284326028586479434209365994453422639565136184410860384079937355002248564412754004255600557381884026779496095693061582482690580341399434827743778776247315931349709626577709555898654923782622367214670413391040134353096316079493809833702876684849317601491341485703158766668469173551642699928311023684637582612696732159040135661582924223304028062142257732922450359136876439557818166438060884569307367262699719205340772373547910229178734098468157762301655809769735093348180168986457793139704293049088236003535334929007366955023354562619146954697455545144754334492215663771024616990350927464774196288545118176861840375141464331490296990309399988429235116423185837556317146197770773911130576933163965481806027461241773628901291349882968916689632832075117946883541724045034117400377790332011430193852492468040715978550931813088475103750555383849516224879672162540612710481222485045927906127504049645056365291856630767871857680937426309950355914748685682630148995276944917650012494819059548120327951587725841223990568402333974827398497032390014279011353601754614121817748007519163654139591404875568772053149589120450013859932157264542391042013862831702851583919653320340206535800938207361297071137889772106503108676255338474779898975570217525854505676209903377630805887037465486890090934959812813487761960100956863098725906661216320494961020270342151504198199585994955035777876300260800348404118689483533583962422295902087975259853363417688857419177702845946876097546659322497741424707959533996355307763397532529056385407590094348536883825606975607348219546712848786461486124032213629732577338956542741052912674090175614173725914584428298856758132981253843804225520117920251340434975492792440451944249325560631479127356920639567303831080278127913686386528323316163570072697549555697347600022511933043386762068298516195275262159274696042448196925334117006977675375152880906173559184901845117468008914454527118084526105317366304820657799564400543961728746564091640929203802162550195217328655606469599547358042034132313277659879874505928015913161327789954989837848321381183253857856804354795011750721777795596969975981352253170556921323277142199463688333802642475018911882445248502400226718666711235469502651442950251902508707193427204570550168218673778867619027500966221318012951924678862356805241532045569223774070096936029394314244090952710181893119108300452196313189326089261827590392831173128546594244379615076123404951041183423317602196300891307395299159574384520649637020556510225999936897095018245227760922607313929551988834099735503971191130202538822558665423635163226552314491308200707950657709278618224664366673557540579309107038110633059150508530026768204319735912108613060392480180089300614650358367415092985232428969409167703330176759860828994052489034929902335551925326922314210496459609269793903237692657833906579524444402429889902883771092803280902179955451090618422390323440228517744942944749207178522719506395037132175435506992880857302275925768719033627483068403107174537442470950678277674347639616675498493942944872686030140206928359207431612902921462303820141056031701020895902107249805835335563277992814649214105173627270746838634440338131874685888470757756792439118317627204803602745415544310199273254993708752972969616151606075655059824635735179252438928791916406450341614108962670647367521798715604840368178227704049672679060039876827578541787340282450419135297146964401381347235153554244412284034500874731932068010046447060804557571417301101909800036620753786964577402702041730401596024773640900486116162858967924312549986380746946759673238552575728467969123239551541339223018097641445511632958538668736017699288221364498961296999460033099122555055559995500048194948732925992971399514102916168180033713935859561263237337261488231724221700417010316961750460135344452648148948384964643203547203876400891349119818496262857184690681117176969202809344140188049988704589794579183600300272616928255559555256801519126718168132786625892829172478752572456467230246067398515213441356643120959672791007921367562081785582452928685155215947016686267790212778593288518090088621154773690251360016610143235515677273645957081591929506473422749321965436651829589297993005933511213857389632592273146032409628764219547252295273854083514287593427281652757890140375809625863945415709432157197082999525709395000814646714736734388693424791293374568456493163849565370037032853509720262360036570474755454640923110363503968684155860970298039422683786578220062680020876955329695569488215782137417792193807839357381010897904972975016733281331383504334188519582114226371089091509910868788033185032457223322353525524693190100472402416425623618630506683442949102988074351324754813865681736432617276816293539652134461669091542742667980872083592801676254448874924087078718405911941853473044040361023448043759356302108354814726420095583684481981264419361210550305288097075061261862352872765717681582663125169507211643491798962256280444646027116031248186894910740047986338466745195789957651288838960639454888224283435586000918844518918189906881272070174251588251559012019569331252839388858807507913698019955769610053194181493843589483939721354465553021056989771016249132595066296638294644228605353926956142418100864031934989827032827082839184675169548779685810944856110901712958943302751644397341858969799510644501442095369690711189883039761356483222368061793191368112798714334400528418426928102396558192974075101042105939008222620209469481716756309756313180114721776134330403855388358407578856129599755837699327888141737430524824760353553815697029553216330067346467694917697316619137671003701674665057914492109071793809591941641674488783381630481664507960813387132861600772997870753962014621114667464098010945141036562690077927568281974892785999546961767705969021068120442735896107838214379525302497076659308716616912352538784025129076816056634564888742888801168394911390760217656713121562743848146412936300651955537089416771079625262264053467918942946138145427489842211519582575020720156568183854470872924094431421983275774542765389697348343888154988754011769140377181621598133237733523687332222395330166296827624365491390769711627184347928700955506818548554017652450919151644151025590557847664235158659456294094703712416408755509899968858672552906765727533237815933996413462503450780898905784737516762521552796980501371842789744445816530697159012346076334782717242424174750035943836572016678537664991930924241743571647249015928602505574925785584979573849745947775320429214719737660172699893571928232400901141987448164354022789421943746371697491703375836660415154660879786030587633584197713464019813616597085822556635845180922176398785179421597860615389542442459766470921013720541621661959362243477135512957367114294133187927897450096694323549983896168401807713638266727281217919387291416404349163213123494110091256588304755625557788724145539684465915349175790331974004484767835172592742296146664213711494381607676765875808526330083815693911186014755681437540805228843043783531087582125088367970415618748447410727831299110290337968804952203628800050919328587414368839235413191512916636618840888749247085611294726545122631842511516176326668475095148089011119489798695161120554513185298808836862004668653272274377477138649900936422098114539761585360460715547531436394897767372140373539281619124861023805080815460263480272342919985446022234923099270447799445257837897722671531034585330227583520633135487142098236517641920136920711290618787862376922558172512293665727546840358428736550727795016055722345678989875480930218510078394830240912448667917153171836944193070042809662787491939126781090071391656449899551580518077053877661495184629330128328380231857638229032047092460579768635876319227222744598244730349886069396158253642565708610079190252261006617492835883460872819389720737900012307587484702527322374632811877928611706709237459215964842921329385569372246716421611862630687205522082332639630403477185175574077555373764163045962164345027075041941693421746533410474125831989845791000591705010476782528044292815660249850426461597233599087754239101770650384522289819809027430782697248971741654250085265686873324468709872036398679035935011437014345111229033725822018600155410312063201838458414605491873615873457029729424493182522151772679664685682302244508512285758805509921427647263247378623043028772266970714429839890445377535690818108138059866659880782676460563574819017988924398656992801243876020957707756553504981315064005635470200047723961083662934712274759960963645089795672749589224391619286281752607891666413475445895897001543786961114541379988673494531763869830489101975946184481594251417666910697499067731867747144372691689425812612527836714030477366305395527767830093182824510952325797312510586359040627417159782450169479719621447203498189011270346076702203313013924093150491774468056890893552454048576586945490026743522369491629787123994274038780446610360393677516097520673489264878196428146449031570862199297585006053720929681203744460344639740932306581711608359187822200191765202643637161806871677299561283480105680234942709613591276546517088471584705271474866223226778457924260040536030424604156471673843912090806230525945533673697570485714581768338524974877141242105910242733344548557590597764435141324025311947614089005134146094871176162984280997261774586959484792568316108177154208947580904416375714712602445498299698266754199223039641909898226073213844447222297096980625156193671950939237924772440628317014492403008394902125750491494413052934654467667503452377879697938806108124432445438512493366466230442236403141337525015419300483626026228601019862522081219793987287567688708883767373408283596141429269485250903442569109069304683731219660816113694064120148019030304371305553808121904820606519656771411489735649724505866810970382633110324046486244533968634637173051573197465638014681270822174977647859407106027122500977302869957989830234826020163076536068065641385471800266250073760338821830278189860918916794088090022202569036823051134239070526224593674566387352888717853392223197377357419097285490106012743967377375792925896555916456292221570405762759147461954884134770433626831718885433980169593044648337696469973876205722184585664735713757614222695981985696460891569149054055100793682017611082705179704005456394857182563779073141988948157697874206299929314245721541564383821876914850190309577097190691055190287990472570236678547406599349033839112607161642062957012572281056949557124902567603762359571312283153872406466467903049984034594216952152671206816491590928128934008587403467385892320546921703390983500925242220697313473553106245458343441715269749711149627067892277054800554552196456490954719563172133572116436337055565297344056778000048057064995232849354283533706575337010538620718012452077837793059937755772934168149083985173836511590231531590140443336509230057963499569537347871620477043996512406536924970877938877319175758520665196653194296213360999410376853159155289254057767347047417301053904647347076164891904973921214971947324147306962779609168977509736451229122393295182035222976797570322128582846384180561778030833783404629280291133160229830399503976703127338892665939806400911379337239386588632984461114539494229115634294872228743545799811764988356709617927455946764996342104341172357170165767027275126253015191031707344304851438009297146860351145694572204383007329319706278486621984534837891842129806557034931325758240524935992668540471208946986747528966571469825072318644841866834877124877359614467202683134998865398287467508708021923561658923915933636057236198131323115613485316393165799151826219357559644201005738179083827417980500406935734112112677049298092617781675000136273141187331732309051584745386249679846579312482620530527151149343675251860058442147444868388258813945875444239751993120335457651646924330547817237314540993538629386549039781078688348282670921991909405232794879570137306118252293622682707312025088183094096966409040437611298122217227426763432952069677974207130118169977376917749645683513909704655553834207387722816373722228940144613148816380358030671493931039970704724843753557012340494079949365684781722108150170550771984088009769325765258007923793551310597601158327985526616775599749285780154825137576510570762331723536467643878532831783436793396158381497170504502710163704828259008607494631376625135118634013408596405622100016225055608360567160746892328312508710030523397979121386067611541187731321274788027432039967615510810901395233858173560641682095238104608952365108841889758306654158302819166645477604074989586068646010088250937926297022310099467146067407495802596977390375139119362447676757570641580456520758293009112129891940688868686192575641260709937396551805551647417437300441523582967714930364588692135955916487474613455761218475245218610188811003421983020252041102661982682888413603985646788493877052845147638430568739260550708871993341149973739524571289209484053543449618400138204245409425470857214714454427638435529018499640634285452680668300523089524072089612879449410610202380582383053943286048521028466993133434917237460018960788514817183741306906146356755051303196632863791553584044428774631147207858840381862064302454871361390009756457712628339382792979097835703077872607191474903411628344796308195653248915937742934980974672443521948353575577190878956713363607012678220315202419457073230151681653595133796945477495807486772198499650027327531933341333966169123015237032842775028768153837661052097838000770164558518123386095819110094937167231889430009113763313172531373858659470537673556031232011087486539881858499311517514041961069481399324707525170153533435021069114443353162831383704899534803907289581376089260315689885545501738009576299069401250944098185978689203710045640397038719823664629069697320547439678053834802758091161212603040792538922687011461194817001845427317379802685244795863271777312940757423661022915079306273130100915249322767348241635275630844923684610171650054222468846081543266132939403466734294021281466917985623447186473696954173254335426205066987332889360001641316397497949235480502368505720096743436113985754048630395286732578199511861956161517365396523293611783498278860776310886089032809393437362155795627510913549180681590041693248007079635671710799595613379732204515965408600672722226485398725206837762888634260904838924580912425250542192854491540018972043456226213242808316885601267615570894236241980836168555401091759525551068889122003818850814709025582969331956730637503936795600996823147131885554212113081313728240148481485615791888168053232808369712024696474414917031113665050323545221664193965071216578007507389704916049267177575476981543400374688749674304910111232615631181442228998999603872743589524256060540321758787258822965323937309484870909083959228655500974886147790303062473193410056343664665645170228278901909435146152131009765841668617353257683896971791184017019520690988815759515983826442878137794575698653759347431405684588904746066916986427815999537741741237849019796927759275203222315231626823500600885148195629369163724744891400602109974702438599907027844463965296816810463211465109138911822913141426871158133418601596328019323391625792173414283731274247014560638007586326907121985979880536126017168182195901822092450150551196692195269247383631445492041226807659376763495437782001268073437773607161818169570577467260894471175252923821496676646469377371081860731650127179497898633625413387738221843839417514437768502709637150249475880621772946112968964518552651941884618576190678885866591901613565533945887857887393379219045202120951833503915759522953494811932011541424414510500183610093943242141498927596639781826051759719751969434529209309841074655013497416818457553971043912094919402991313514461553325780373381467154930373781621110651388591525173540463767527621204835531381461264716823350523764865293236575485653205530876515979414151535460149359977942553446187635039219242477025688218988845145973909181320361465821978759206694783860976402827267846759618272584063188531869375489836377149017442672780953754376951848698279279742287120480134418647059837709478840719524306546740814390501535205758117634565414409205869055139083503902704045027189287857364326215525761953057015207687092228347613823263787939467743908719898678884116767767832612523724318940166023260764011537903290505208897287337854208216713533184160748599151107710511712849556975541642981180764662277773562339589497562429753539274293891316052245779239910567978033064386993025277605951287450027580926541914566732785177179638220564573862608003943384779126671733567429836186548067121562966628970507340647750717824105334377879894091557914800213077178806787324895986618227569812832787641978353251850935572653210029775433996691042461461005758367408839528728172642927854792467522587275806413454352562927131317584351944776828829097917924357649688218616054349890103107089315395036633729819406815676712825820964903284805325673561008817111773143442982010878128581589010287302821006441919070890558904474169291073991325915349058563807711659547416056458771004962186203317972405686052277362482383525519130389146940576778848893854026555680868859611205317127445670783380976221317210664712771795959952163043221021932996960894424639297551622946559064851220158367922412253618144440253600563240513972625980152764548194988881984280981704041212645164039948502454650221759034704969512566008469116584430846951643614271902905244344178378062570783459517725288560792527288919716939794644804739123641280074056874203725027203798351815194622694706475817393551273936073230426719464633377946229083734469215550234013307258380971601752805053487410372963908353419062908160678930329384651850784317067435163089920696406732652410777296590804712495764471453124608752850440456981906506623936842105964222278147391660373998368396467510747140968686939558727829759595455041371969778230794984339940129607054853408786418999238602021514177315465882210693719041487986024717787604461955322861103040217223488780386612183929371054089479065377399572735950959993238101363309223547388646911790073717245282261823600559229307278560435357435902802294530361797427235920736555358325058320269253017849543233053985194792721469531704458457523283216751693475415868681878723227592212454141470589466154050541380176977890523602085696563878777193202583999769732057007852137955779504450067692420261411417739271737351282213747196024407810318583640196090003072619195577568070785951216304452363064068907220305285468496553440963038198308575894394735883670761804384659850309150111200299078884093220815140310055934691227193135735043221415736883902514011190885599763713812933874620981724087504904480640304116256849638720166569511398089581188932223029086375761608550649003065967659045589640803421168076954225595275182193654741004109326805093956896280688730155202257230077167140538642948257918124710221976419002983750799164607283285924072337004645568629937100085857931844996481846042827788290017065748002712968224704157554317162690942200120385123139834114639146630671748180732912203480912729362639595006405195346001586667918055405314284628941050327940813709512333036050860766314976286351127723655826740516416863549256684165389987880764446144880610367328591238391235687319199022782194492967129320598249546128344432680879671287878808527738744949198965196250144720398299790193002623460138497224783995306477487369280035044347069948622022562136568423216220670549139906524193798137253956786024433614325862491948853550573777403427798352709610563681278915381404662682675300476410491987160454125278284060708107147761701662248892021358366874905338233515718971806157910211316382789819253648427395665011634084616975942006471362014179994125458410216853813797354448660267766686697753845193504121580174509288378861569164268609457695115122155032160913327972223582419761653599315469939751329314943683560760997093482220449592766516876942382117776116584704452271420063479186420995557343390844295997573240848891930059400452069764642522160165525018819261932244699494589061490635805122797364645896740109426641989305511843853214471626991988273120725565888833532979197250149432672877404582245120010985558771526399031608540028428260770603628397662440507461883958136913951994559478319932537420158007643698934409574299742052049940196795838995415168225548879069339408463378134319684890360567628811785563013988320227707613331596528451386646609898546964216326594331112931914325778111387751689633761856757352964958287860316583268908724293413003508051005853007465794844962073857475859769383876122740744540211764959549884323561160653561890677779507396549375692932073876502807082155737347368973292477515461599848693761459423128644976569279127278811521189329189033564504953522580164710610146004443399473373316339493819514195758722630839259105423484796207548453496290511398796722505223782254461428342074381721082153769398505255331768022232683057104958278857684858131884847119983145549086443561480411001018972347208278981740768368046838793654232349485010153569977186080341544384587393160941229901071867982151794935157412455757210870404850849690525913547805585294195360836488935350871868983914130405046414047652283134748917563229163620173841483953602113563619257205901364540111964905585646874929094284294167982129952150062935036343777177603601372864686341533007665801283152925945761660011887112886518124265780175748363822988357081349492863903279416686059324929537465059466664681710305804057995881275285285183632785176097034133483416764672987468213090425667803960076605853494516066601447773588551639157115552173103044701593104418168103073202603499490964675999560721049598424241502652789846745034135027424007119469722931941753363026938078658967506318410176005906266828825950568155235873486577086281777371328731149024410224468045592431017865654584553500693007820569384839027910372879200377457884910466995772303568117204389617927335894443995281963242468908709983552277430111675814818461794306662502179083667923527804679785041049431392458931486143572929877977283765154566146115767731570541285022479504474923763478033316549011179993853785419306817547963057316733667163589071003146243106464044014535157669886251286134298592862845668375798902552548053271222707184743931570026313281172144916313638356490197477714760982233792230845921961560426648197112163432248952701524006608528328670394546371281209920576441819678803499307838074917149012571638600265980547513999417041276822860596608237810376231475687984957257072264694818156101643581900871700809308762712479495197472380050882743314236049979569962727676810005408976404204932872295003190122615228428725749234077642514567339526644516628444317670490946065206226708442973328544850216067167677516191997836104271127577479761033554271809709436125682304334299099352412052843376091058961624962502139371658110581563009595282972017443057202132557953263114951003153488965466824752952179438319539891775690008462126279771725024874944984361878108171897589323290759495853223994449903958574604668343545555083555931460750015326767905181709022786283499115320452511328918258750454470113097473146946233310538617540312008680380312323960030533314938439690352008540115641743290138739492448550444490440048330227007630019015883671744413337415667687815464249538938690686569199660594951212021513716818521822608756133187241385694493289570148598528030423305692277946628919409146405184803179162407270209843198650899582995246961092601844966577671537231878076637965492462608931588662510646375778748051331978473969680887114196262650512658536313538951272994851042975158277343592059022112846106503455618982420004448038466099860349238309080951733329305561534757446079421896067053027748083199915145493499044140111628425057093229827375601875481739962370074127220373637232076247865135020018055860571861336003136354548273883708421832045808742498910348310344860178701358648677284819029299081395857295952381079831734689346166053997580605541133319211454948769295758262422920979500892305793478128667281678197715916800276341090540810046520702691806321443933289049624539414995607899476042059242130550243680374302738956237062056885718330893550598284553869005175732206209825510077373679812848048950764388333331645501027754428706305293484128073724261877227892889065684799146397637096937808592847990030749587593155282809477245837723953117919002018135777453820682567017090367179887986224114626361640414346884188241468910378622942534697012004406871502993823753760723141892515883477654054489291435006887032494704260328625185968397262112509176624613324005885126142605682119860606857572351106118093557064236834039521566864375837815947562353258605200355635406569684193710290962577300529678616516204461092022548709389924781518397270672157223066587402196436073776759766103137291431451858559305074844570934011035890672599108396215362627822803770537299498086311256369985455652775987238704488179074247537800861221226445119683194185473600275006239771796220197018069022975090224197312198608459546918687076784508508099463709022790935756791267938737570022072642751112141992043278461473084137826684659639968677492440494207300649000945474947112588055622281514221128247596510363975842264744635647163855829352290053439502595113027717150885525899822650553857960258491297479275597427592374264442971195028473607891934266848547965828545540896439805228215450526443804596698133540114035373040006175666646186653194506091811111336081099191087619373210226922384707399036836681708464669442883988182946282946830871999849232958691371750595122544729500104472500585426713754961403930295393610138685477174532561130127188680874808254261508267566355026574654512721851690787829613309499995417309302274157268708348045888890007551842035193809431616570297240538494125044552704700889732287769614138735017583292634825227203459473930600702159592590582921362526525185224245993914627428487477977868090632432358395911053049886337428164815275081414285596571735622068779862637596779135991028910788945548434012138718564712458114643646079498304733390749966211345854908538288093716550863297503392413384141722190811859348762331531301393056007462027590038031599060037133028643892343782238723887796666479026273265594205495764295947916394366832090433413264766381356898981014195769565201700686556241929231269736986704885524781513224210534113220062225801775661834851149971092345726870293623749874170492243580480318355977106234149435533441092527254680377825025261917692794319403095588193195435278435016502041878185065541641601225137988353042261936930150541061284443153369961383182442269679623285841868941398472581104931077508868380046725244722756420954758931752050324319352950337223809256072959023785655390734500079150727303277101111092908065491376302894898047723878099371603401559830514485346896907938978945290281394761629184916266321067289614739510957816821750002236143538065648772204600245409974913937246398964707855416073551116135904787090078519868615685847817637956420909716697218979397905275313598536335503504457490715480268180103316414354388357894106479012904472277845432454518752881098219536452234871461033912491128246742160968587846745216356703647618022130505611211676044591712503423797584790877765818476489701820691450116492243989615873529274356507903852722964117057091304641279990444080455575624352278726214536664557435858086641960554746729081113564912768240854556114739948553535723149363078149817130543799866013029749497641642017797004401803104644280450484711776194016647476562001693561637602001580759596815301202438464441562375095508990434228178980229601073794472011514407271546959711098479650584142429416182962257318369101436645879371238627863723362940484787211262503356470813051271044143922508903827106662361981946606514936188620622757524553641357666372059731809818175888977876884744409790096971952653414499236203810966291869012607764188348310093316651367919697732315405401012156064183911337819241431922999175067582757513813979735592930869561900009938146541394419151536448861422894543734968580229372434888204673821502408415667808219503964794626608139984137226301278696714187370641874477714353654498859256310091214946215982951676972982007461242504339813222201064758668065156028848156834392047847514831793971431776706360399476843052565120074828515252701362311005952931870419617043472857798207291423122733743001290146134662617435123285682697005835296456071043943306919404052599187365123310045103692794303758715938956648085128521891349542650129276928963174047966384714545427647724338581287255504441811333221803337850708008323089326480209216915430562611062525514454709251097616787201170716375060138448225122152794950029900790686642450569139018386003762123077373841008735308522458748638617398069169417916589355274130785915476034535434729152101043391287809209569984505971186691799103306187663750527506785149050822400928191831922205308254624163370861367512410971330393096727020545708612070597303024896890277934361423657501098418008205561245025762291802664721720348239859948593017934552529594960516783653219520483787887973069790320842634283339563906128042177612700797119823571198625051371077641670924562567995381855243982448304887222466830864160097601037669624207538819728552749144166479992731892361776703786917791265285399665087484511103418955511064221880434403711480066250414667408584729641361031284250407891325079903352723161754224348015782550318260169815293164804984343881375139064245107493842908168410133550083684044662327235762874475630805287353132846472094725099628004014964308027006421846411097924611759045549612236627021034642728517661684076389723388306089940286429180647643550765104258344389946914464098147172453250081229115850352150208437682552330768712092184974514288950897933331155903842144179076690242486599070768767540248998377313114684147976366898103831830298525200861428067901280397457129183972770370739544822325893071379304379452475672740112776033630631084150618049394472333757898983078931667430309120127288718785348049330055628291747304336227792569087824848110366361622043532458820273647436768182300571267917381780597913635097981370916578571119960566100048157599676124773657679128921062578331726618383383143451148946069050017316900496748167081179335782978126107265806569396755703977242239264840792418237854643979182957049584140657981421145331835683673537766615460385319904389784663287601885300366876335812933264839876866465958348865079583474209478035026955169860648205147898357788092514956658304051384420858556948834496662414089425134163548243597035379587495005908488340437744072513055696691332688956446721688509454884543130306843607832589631436547972253364259308885365032520470433884950679540993704190412784156351987348110621667856242650351212131095814687159898754613309261852337620362471293333331267280897408396884366215453950606436739961655077899877117516470593179100232014658160486893508062647235570969416285870860356631565699174830656391602373333179587191743717869863385762307463420165243397614069329325866122445802484350452163879160567538354747590537636968032137156212402856994042149509647367844358344697924097238067136494661112178371830087830878674723833156807728302850932938055030909929996005405374680544843729859245955583754311723282540510798717310206205475653417183979830050659736050706862591664233352464644548075246574941835623678348887730274004577125623963075682639553822868664049760059167040479150712025040383979618366108745916543082787901165071213903200348007023299769727598250498160719887123327029193445360847637669761765807927293595883229387107731391789788954664689729902541397404267403007799629902723979565563712518353209329769115136178388574708407929252095413690469265180618090396506443231270170618742839425150174366313022601360845707812288338473279909327004885493021660457668572591710103053343906391739673843518326626662227014010975872586719494474298404742661314142618680394516019728044407301855848934720159146710094037926183088550393941145857936011098181856517758514597750352266524818415971159275826009003625490971774060534519758926599779798365608116103037196852038134669159421496753896682203408131454516688941935901535459766217721859870293332092279106408130738960942506928688702147086398129824100851375021270853471028239083219530849210875920252072352193466849766643472523409509354915549974940193168232830487326139595312745790739010694370644757054597174618564883339275979604641166839465061338265676348543359218447713097065717477831721492714395195664066052163451565222347543864089350713754469963076492634162892183904403495113091999533416300699599613712618406861229112152337350211871129321625705910742497706589285696388798478350232103954286665974749195731845083753137974130553548777702811072704634425948899658240282589722993312837591055535611846544782225019291324364912027111308170388053644837640140678466760480837958077657184997071145400813409044081716877951154812758496472660794193879518963474793411834865502470733729694111387700598892316603505090559748930010067263921186804688514779569844607534199956659246845279952095846774447724019443490348139967270602705895134617238284043491380571733696983819225576636042510766756888894453273911107479754455073447782769408853004506881958768524006067839407293687449676756656675163312683828834387562566567999786443151277364699685098285347414435883161171520896300426599714471651339971363506956495052047257164569775049540440742486897466704831462351055240015732723840997863946892405257269448001107806231241365326343137976739664663167677945197250451604902225823006230048814649515943289491236696661540662716250036641428120826437542420885628955193900503021932403587244032225565747270554120082787916251926701427222563672107041945103651975057284999931467857641819751571061639199477349995090805731644552739939425179018882832303710139313398489872474780279344207294504488094764996279940170968536074794247967943663036654727394628119696048007039093634101272988582823099770696940024096188542099167947550981838914148651246440432377377697638774923548607077002518351090271001826212884079584069710115785085281608655255806925911660716523599581437970451995269464123739201525238990050499025791213856927702263727568991238568028477434274075853205705338593431004676166055174291241470192946717242237520541457682983692116423243287386611342920443577145393337999470644915542039009601468159798611985018107242571052754613816582795457584419444934047247881684704033723062460742891954876380072411321949454329467365381886728510684059054781242782119425164583039820619300090736064609727925706327205653710398652212982605789854172496067580421667194359624027347723676591038196675072935011447509977035678063962396942049158486534189627596471119370172150620416846722745235747253997633095163658309630257544899472672048851188106186796743269666934045640177455714119958299414171366616272275256656659335550103800450540653901812060647261447440917870188392277067400600622003902661582327360743257123291100214655311621588649123675737497132735119927128877297376300255122410673798654656764248084065703219981752827105258754997457405828107784016295758779598656531030914283640096601751422272018549295468887277152571224642507750583693641391008959415416413753744829122577886127113536811659509347009717251384686763861626116191830154514898940060198887780483933433030041023714673858387186944340970500513201569370537616438702562999409095612268591074586547213154773174436313074935026919764594583704364870215400573200164231822367412306048210442266322718398021555599180710841046936928979843978752272718015727750959912885095427630014480950080030680882622074431765422964143296485709599469791958984638594754116408143483140333398091845654890404583508209896123222434846687264194989031404569751746310884460885539544084621552751772904088119425271926693709157296597099592063452772733922409625770499355347626325399465616510777036556936364081232562183569126902421053111590678857740330650404675291036405015867487978750633893688096172715914153978677159957913412525292249582925469519802060229496332904660229531438350973812570109936254510346153625589361543521483345055999430846967811462779045073326282611820942071570630348283852883133323296183104907852204023187769678938163957899794753700393555047975890863526379234502977600827479937784306511382957149188763709942352316671547133228966987606986506059217452328688580198086561147272294288935284338718666425712922738264385690399961575139148370281292122267078338245139647325290565508750493302239393855501426373626294443341563102309922191673994083813148735718502142579437028526034892184111712097356602535960760168868367078079130311294252755646481560870701722904310954339657417847412467665908056772912390716547478313781256914275659795545939629248343960055231398270617224356254978395135142943057455160583131960288408105693606221552482987262094582972254854846841966074448776301296993483684159231985102093066812789383039660309508046988157547264771417291142311898266779816421216149185188821616567533312171351234237722647444322728868434105966718281408095441917470003724540407529634236962211147546828046657535473083496206038393390752297433964681606551320077275808514999035291002095893416382483112697821346526838618919699279168353258023007330632955415080828199119983366745240006479077001174778019494850581970462632128137910932048786916537568187454025462778714194369375902339528975712786372963356521013469736879294780895162487893909331943504173608608597619805484771374102860910594070089129040301667389543090293493292065038940364027910556640103068821493633520229744615602831363542672430614201425508668713141334623700400178695787528618377908245048761953933113161757195510011483270279972974271354516963269621032036791600089032246089557272101754958490965489704793714917359908903186601359990089989784868055678987187990601743838922153448393225493644276159722804288713572497394625296284252083319974627584545790471902306947055178916416400211071000795648792618515801794846426658069719036378472223557574735905016347655218833622447184971619862116543630648296082624449137088791413006369773866667067949027229282847688270928028326870805552982602119670836532662183535568985111365684624551547881737541991014720886312631638396656545484137526639355422526067155117909267628073109454263604070075840831921517416127020495840259303611912611264473554408824499128485155374330465394127542770112297581090753108751847658670000572636791719170147301694059787730242691251034548098046558369218495094809645976801354466051953593875056837956910138982815367633251684190405563849045943596828873345154261061897846964460011737499181754541786469750036316154932937675537607575166609796993643289413384941708675720401938697759420309748937239734749439923945450201824538989280348035669204872263080311826928238640676859871597089234255198060604283085059970137663399784868648136118413303510206382577861684269724686962955449184867365372006107768423408372143308391366592206812720902509529923265816961154460377875068419609243570464390340490276459493550463872721423910917994762175117689480976826059010377892222537288860464139579357874321813627425070615009872060605618829001628696012737349070035173591400499491397330481769695845534424534886743905885747017440464565575676033468493904709625006827435218796713485829856771800412148668888505084236786338145687000676156274923308948368585476247326881087059144372304482622802271378699727221293333332657068704283906189183336178496696838952320148892605506875964050797082381385146900180019363799652854870292766330694354806984329384084083641354651444065764387349425954874985443557091768874018955847328915435758195237169388355604740939181725591327622579399347043987168491687383505019843979786119844947097727491947327561195958130706773178348439550528888497007713421089641091321982826946546365340814293841006346216813981959915141888405923321788000638733030577755171535845347257768414293685122023345095080841099267788060799644888598160397691081530564739322018725643535488493175599005287466298185785423400455705774325872419735161538788676619528555913757999172107452035773533323297106411791574807982907094600592549706724905038866144176113702419043784668610969794755507963653337742915808378170723079230276138455127012438171882545144202086323845229642052802844023910625926403300856878752502597583530038419427928441109285099898363951470456371595482333612061451832902266181686807353478416274004774574054746709216414694687631840297714023427210276381830974348056465045986885733929309260399175632143051372259404719241339620379160841013362686308653159189699783404367208655018060307640469111171566129228540517574364505213216853494350537494709882819011359184285011521662549290055574470030763406101769120173948044564896586254311321315298127905930884991826690545869158043713272271653508212005058848123530522290277770987794489916084557361743259866828528290712567155121518948587647370286572626986605158443668481296662828291660919070453678893026989296315807289111353955984325035959932186090492044186331309299805745530408118952359006974594206803644946405559045193826961332724208420367824785984885157421238401748624651632229277780150780151748816946782202894927076366631280354315958924773486353102241830320003586128110913413514112138727358039449731020660133676287678763397040446670935866068063895573584672657502457552569318617214541356839257949642721802567315012542916001946740348301310794212395925521148335868718039188110276052105816244038712865871381664077572540945302457080204614856862884987237313470761298075199716028611134298724863970264171020904518010495347145512335455402678956398371954733647166205822625702410230033798665838698543267357759227395144784371579612627836363595424171467903489535733553156100200761304088301041727372215419162878813343569550573348856681031420548694401483738426458083043495366142223872117444836288281037700602126182671964609565351795726736231444954513745156207773732595698529890133227413939971177758551772239371451267574306256331054630991396382721616198032220732489572122871926450983902036145017804723554015770421902381347488917776554420438103703588287747866510627349634438928585275348662175970525647015807489732369764551334702060950461042990144606283257656248172134410774933881373548068469731269671905761969630579013112609439184109639384130551823130978627319311489559283912176194054987191398822237989229733325830341280323470913524084896183277172215904839728077353395065113765532854843789161414235774151338994233080092345125431469448377161341778784987976533241260141711052009908892739325051082584324928071887932275257284808780840783464717461903002240749435713103251822068380979461094899768647477690704468444918500343349775800284902992832257781177678037924809122965021280761605556239220048170490083707954755633673546291660243774979360522427010075258767763284537127938356884470539236347002657346105691788038825871740203678728963884173837962752072564268858416498460758994458303582541965025591199658049278248911941823117397499106855429918595464993888006230623911131025979951355932072707913223090580896390362509926475446236962481379303478779478747206937849805481474540320825143017605435740217742534611209680594698108894229047308969087014671551966514545930737367428403482754153363164121399424515091963927634756297944512770741063539333082072037944700857840615634597811114962155221180122971284150263677093855223957390352048500349963549004899007861478903323750393491092965226042803128334911534064804948048201478269748695242242174202915310772638976094217038774363130355660432084443892242593077328515312606048556360736321939719209577926237421814943047715026357160766764019613335602143192158709475099734052027037571170927792581750179883972734332023805019088039938827441120553514172726282314644665240677839430026738542718385150337206427623467278636692989647220012381287075338100510974462044831510551826999627867663621567063101188990970472513476365861186764616494244550320074465370216616965823580380775933441415558449130069439297867665091522041863347016248733079179986388420773479892332106157179303375364190726075618282125013478829799266186067176204543524581526119289819986906019625959231257662995679589662235488401368004418338227368373152561306218229647183828164547690873634357489727942401863042583358448429371724256495654360394768639592212838079846802386704894314087206401328847694052498799447952775298724061047681150641585883564343647147147380038975394503168033050000178763170211599460632274976456833378827566069706896020232959124409259005318833863171374485862418904320040335233544688599204969480576901608554699250793944645035777110084679172075791799059633710793516634548131436140445987292914051601928158394709678087712822628097873950903098239722048582317708016417056646398059571735905284563094710224232120182815440030610638591878428452522587727022388166292253176167647596502012247833924573562111491560773022178640815330910784012008429978953689191011014710929512862729290570682653880579614008267651273131234301510023349056098171325967897028386267862211450230953545089379966462855024453990935713421055814809949782977077667979511087234125890686716820499005157396732261620912717676684422522678202581319043998161724380499839623797591269939831129263119644788410879254791591744785488803720999242369916523894751930612357720265674873535130302601150947959141290306365019120882832167889926237227851743709227240882633493047727817591082428136493135455737234804886652464829930252963036576971759763475754978696733113910970945467871477476267949475273856220526654612902395500809038008527148123214252900452425851196591902060119050561418171512068101709176607663130009749802735619076701607526327011434742089936064604245280960430409608846405968153326698216997370531448564867644432467042971661435483330042251073690501762497846940442954567110890246583331389721994057641002411914611100265037597804252075194125039144163522604514579630075156550413863049160842371693367038621916287305125605393121638903897537672487185029879152945782766619561837823095272529723422287779055876270502184610663410634912744109607981613153865156479529466743731361665000073164660502453298778208022583555749148832608554849647957358192308732012289725559848388605289708285971470895300246629253479827772412316646225825006219083409318670727992696660562624988521567912719008322300221911837489138628432184529587838981021196737891756195516726165595883561029375777515190615069578714283905833182997926524825892915192451442083546939877870935722004262142678314924486369114336874913180725085882462149687545506243375480116017261981228416258137328653204789052107924035783213735568917498232496508782847915913152304082905940883448173751064696973018283998950027618476864849578265338525068104944925431690437903010234909702803231933940667826809456117564919503586924289156978532257063162829959240342895660142104279702518713925690519146173629361411528746160749600819006861190519473904148144720640642056985725181258487699115125924805972940677983344386137074528647786673449531352085655993937574700196240812909387329159486155584886411048445865964199448099138649599802726119262745333242964492309180535045072617965017313270902191587468080949049526751444709711583654092877065792750741296954512925159913185961861370466651594942527599532660355653512718079381474996389760616622354426468442750317101062864925003331646850560691843716971964256136507954037829026848393216594194523882730012101541165452400748469944105337686797788084017329148918962384875162797812142505300535261689792255990343816182429428462109147023992341021039737726833023715543880021956638133681791781726989535716461105317402373488777865832734608747980417950000665785261197635335912765451259863077879951010526504599297399536573360903148498195115886898429376608551345125659333677448182772370279916086923289222659905271921440145020380580659370714963556322146045677486399325570051153841470371215554956659416164809438399727660699730714323361364003075369827706254297338223134970938665701684333186891629917970268418670924876950304241452945112062331377253078703145088746385838354904776112645962834959155265594358915126352378202391316290686912873571851826498408078808829299726738392418293303462143372129139634427228635090881598042803250102579712159247044971432014360800390306143266023423619456314522829500782616796804205059258512947189652460043843866107012674863205840970610823987611559447876478014515530143461058630600522288537310857822844877981633662401339850047441578423830043342580651066803874678681945568565661109196169799332674671538648190985177100258440259171123406141630584965412333391397794421457314474868263328412672843995522595536763885391452669542261820673733773766222877073585136256306586553378084561795650788853442320699466702655289597188961184841108139102431655842934672999846675124456663921734415548177759150406165589716750678104926663744158945363688678654569308582876042524925034643851318039311293304738594174897407703031895459532892833956771698308392042802328910581119796195427377429454613341340984135572187620416551603641433370565555136933821555131445785651206123980804184862553391240154605846558284688399079985310114900266890643781579177087113651361421588271566007760207136921232789574525528576818745136101923060119477932423599804569960864699051901152813849328536007901615199246021575834619942299447608753742149549726019740761240988804719846284999353710185983949351469366133694159116305131139121751517576558680117473521174707553562115681816232089003074450775037758926999946715819028563752893496047792817078934161929286311958084664409485786381131156714381741955598771803562251238560854922219920675359373240096013677633834862979589563569549178281889616647338090149603650488383635449900647401068315915142886314765216616789430565570245322539258783999195118354317766587755912926754486583873184988766278673129922805573451163112376649702054859256976717558892025131493869655968073150300383363250072644592869937469877960233473789737890198167835211313209006381293409480295111589393294930951900116415719735062583825232858188157732946931682170732850215493046119396961363483402587020787455789484545042988481292486407738478490460012780679872238909098801494752590938336020646964148391371001011194309490583497104088535849860326089994567415217593744965879759037989266589937239375294852021141063188541105901322458176850680410861475974694632938816160232655202187940771827378302958530977580806035236338408836927794149855079887429809050695601765021225018831603086981178619784355482747627685245441325124831507931984389705765950586773703114969779245136996050827268115136767457964216034077339540173193312437622365725331916487618410250126453641896539668607170491267090933022410821267285091347401716224537036498479783388274018506874491357934250269652708127368938007757676899129950757550772900510686379074563883906279865564848947893584656293948045460349001443256246525568299340530047504546632566713420995478658272723198991109572058822810410656802545565204918957635023196910019784531729342114147782478928625349949761395718832742999826926205048382652811877295054265684090647491376919334934240695985065830106725303353633085552407122310876483721110434353292285035293307534256350887130012808780098407613842858234337222323834227769497082322739595955680798277450610706055044292498876572885280479895901076975782839737612169562168956790596924199468877816513182025806098589145626593019523364046088783934710651957064892819214250679665762607922121396945025602729731026297839026406164595705764191690614832331307095738645395779325454539542874857608053685174979569082988612825441148392612943099222060069120135725211764884658467135169431944061425526097557204133288438218423819349622448738552404390694046997118562347480012617116014005176335470848005613835343532672160595298649841498899133652401404269748416441648203496113771667677960635436268377077736024318070657337627738801125301188700620788320640251232625478156755529478225647373938369618546124986568394302423671680394921886396468217376066821188270142887294500800849707621321547462570708335534130464931572491238288603350701628885876896098799989463471638081519987779145108909791336846950460441871063165503543143666974363736821991262824915428746790410734095282661217317053913538385524321198540905829802642773989466406272684066034965363444427875646848562229679950873814325532143810130979853148302258805080211073096058941749263139266848715399696656801262557822137135519536345538448203171770796990315844175729777206257355243371854732480336988010928611495896471816146091039638475525254056145341476917712343805508963866544814110752177298465860917987414023904273000569222530874376493206963357741492557200271579198669324144780341460608664042431035713730242982689703428839423938676966643483690711723237355205721768760308542578139001211536744266236065444848659286529010289948110375687370301620880061326105758739728358016328679479782280756874934346432996409113994377920983741285475209037336885480950344140157814630425192025890525379542890218086688651467668195460617345180157146601889483858526273878631164422474279377775250492086895459951217753725726068667465325766382879900704449727388348159969879350857190706253665713862785035482400595332752429941568962472183457796802162253747724233610978427531552261668908380874573093932851860015644455265589014364635233839039439553781293575538993785075287514631520195694224426967709980526071028599410325338406927566461122954638697363015114467570621907228559139074352105654369227800076188926602780417444964368394759174095973913103419858517874336731337990496085593651232985891405112026593511948766293056238816559067289590455383929382794439215399877385452804672272680662998580139662088640415491459874637512846876862746125774844268770223918216297122149821528331781511829848124017007883008815405104482081057922777927380716886128904890081971882855450860223768353504469700356108494699765891209658147707554118607926098073726351838979371289281998354747266901765983524391550811834754879172527426159910019555798857923842068033954158125367810974420588028611198811861779383668834446017862703047872275935286986991227872326105844320717742546827798789602992017344032296417623225618209637764233218664086263139638841408646606315981424344286642399329941726263379660343142279025084743680374325255473661337671841493212291172397376380915931512977681827683066669794522429036005594945197570999160913694334486423392911102899745769490650553370229811955818073663996122746001447926043898718503083651503205938689991424573831556866043761021331827384183869870946325890763014067635071674982228437255831210256331258008839536558145313999223393627170487884419792793091634213426850639846242945370723819218860715680914442367083167437811077801220532801333108613970010072703302623082245107724743335407711610497282587472800626890531126157089101772144594941182835939067362208647166783792543203993489733794376463953066125841740808532187152188364997719076675399724307220634478938458621587378279597031797863193316203098495093351009832228018092644658199455366604939623309962995134318510324393222766486962146974719250284470162531565072894260974422055168058704368629854497159916947709192659922907892721964833343545537109699318738051721295938608824502783153611878856306231966466791154211875542707659078523696034342715283649633535611552678170378069618968937418770413662705039337915559166063015104468511894699900083508671515065589826022144314070543025905522630152517356250890165315116511214247769743948694869930860001470188103251603461929963688640033410744084454776771824978858469768914564459177015733245680412396097800548875413964695273814044070576098631240845909051391684508752613277916281925027506980253442866929290442914717422632626884092790402641380193509747318795239962422662957256666698748585139613181945645890666704746313153212041569626684424947522048520587719208779304278474193501265732264370602988461436113519614311481504600386244058278471402157882198456019285296015230903246454747129340226105882395511365134755950851627089248950688954499573610484840136374613049235473163479417090788874842613430357710217412035494524745553836899802599106073968020583607083486719797940015534313512893813701636670678752931747913108785947651212300010336245455031396799847576630622893186064141750758689245840632067745629605240435683303730679473021902509090785049289134710103751276788890977086494193320966029166249736206468844192153038229207301150683518079489386697233707959866325817154887666604288034188717329216060958358209645211750014744553985167319081112345350705404241379135262995444162129200679534250610115544926181134964264776518497750373601192206670923147716384570650707712866296067949623177002783589000364356837660332907311558909334376556162484639143806572906501624929611086788588645999094405170446565931784015510502122129511993692683779663204355903930605888384472449498613835167595199300274030199844590241503723400936461407576741435788809927352261271961185181436625497882962103115694959253466801838783084958363413390716991125195982539419720816945897046734007105179592537720778937459550359878434371985226930775011170288920690131291083994675606776056331903905848524169012768098929891056985810527863857126125504828961057785823030790108260630053509749257391052374099989929686578932724042605542379579309492323372940960528026014354129923928511633190007348215078526915994563052278873236150976369629645124563896383715893306112145125724543660141537597860055254350828516206734216882585343667142618773962858976919791737907013926270680736204056707552921061163718618707554019690131330577222847955168923212369715446606256421250153411953250628796846442623668610289420272813963598809077533761461456667231606215559732847103779455886110110665557831063049729534178634334075742554482122801272681359747816331069258196987303807645371332989336434020351490502170341730442935565770801729904811304284533835073748240238637121398932723177382694201726035034077343159685679226563302658632415354823583115941721419778573336146339995978360738105709941741711673859548388893925291095678038654380116104227897618212655170487650228397926053759465523555325351224958125590619162957991547536299932854189261295602443824123767835267762618800605491542345362384318351113074967781305106524211097099358806651872055583995240099132310272767455966814237306661119053161226315019430382009199003808229408260557380918542071226303342780547949550793442688249468231453476152235907617845118153616475012727604774097571739359275671454595364200840207738454509929295983929984385766784188271618934030936891854069003374235108711230166875321955168155069279278352837949030435376385508947539362061663773051458328370959615066179248612158866621967813192797437497872115151422306571141861585509289716683797462532314499532539032191076665380577030915089996544233592256823985850249958944417201116542525138894424440762965927336796352902793789243810648537161320897222332267087907430603725426540301569275976780988685692279685602002617910566267801123741690344699440790939664639896189474390221004157155453414526259601673326597470388114446682613750517083882756728609674975344262273509642431496718712266037782789527654020242965818896713366182517180775098911297566073401481382702031626366889817297136290828118704232057089796431622538686267660535914174086978494670259140831017173169013319567659108735756534437346438099898552515812417737315526109150026303662049586618145662886670731262264226478168841375996219485487249408546206916787486874826278008908166900605350495462966060921875843567260633563235486070003174238641547059063329465003248490698371739962268943999537915144544312529110280102511531430912291224744772524457836972963165745755874246261665198578704107829984150079431494754749680503637560682153435022299580433311939019340468174598462329065251429382025544363227103498083431030907578682265855788574658285309657499050457791290141424050173253922175001366850242525721020393514868959301143020146924887814868898702377632494343282924260845885793777006415478265702754705142975701757326436360041616022566347098019569151329614121886088018818246859652917153536608289427943551514503197245796580630518297383271742391501294760236970682784764092883994762368403766310696891842859099827449011402484926099464948510698555636787301321756769401356772894634111708609917662400011087349471646641927220644984491347562356788257846152604548773723296305046284696003388007421581157067082573524113236310470549113207267413689119126079790633614102581534827423002207208508629108271841310456597584188739338348121717389030691083765343420444367144423746733445608811242590380434524295257083543534174264767714720458424175804916353079701955501772761249957906099455300529240843474123765817394909766568437872139040372104002250003584596924725861491195289435304806267137512562172520106154786393888623787989053728450412341450095854622687010786468307112589867732507783644910328563856107810320199340759358030112563516006018336876192536176086476416167218245450166886570871653434880509058754802005899177381607956748547293068498950991550827943400236570311696128294287892778659866608991396858055588869707622807410817536916997833139954142856086361667121205056624917898976490857335421549203727864110704555819746483927019421735020678994582748861581328554664231721295247613905790592884661016192297388846980382913267956418533645833754673035237329892069384943913559659546549486755553852657059316596884384941610245899528071122410125334904043450031990242197227075277153373657656742881436298546401543017577311752238641144062926338961586205748439910283008286772884594945291875306185320723788891478209558846965961505760141207517980164111583050752828607170751241354023042817000757578987334489634482460555656249766792147423968459956551655870492767151131564650364189060057655890503158939170498196259683067747574569243082566933155489127955196236313117800492092720452476063552222426245260545788675806431821922482293502548179826556662663958277050352943798068879313949923178480659459983947083702185572739331737576266680152667430177163041339224488225786108934030424843165497063271045853163234745523384954559286967883982178894835736991434580534294622713222885133699361880156747862490358214354555362546307037470286154088142040917197146886036372602026856028831132451251147743853648230345023888751390891065669154497200091329215534260286728578288943013721749906157373021643181895418194909200644542157364015733699523537976477337270231100609998944071068010799922012289844350882133944618935022472480546991580758817216784222429597304336012897813832256049376021238065886341410613082810762303425763496852337962389435862368719669342953383028306252335101284495499135049026654624874602072289930742453631844298504012161751607342991195510093442518580808396211406752467466385633114579286409990350486026431005533907700170254163485002502087366373430940382752925467988444492256066213363638701351129116871343702982441041641835018428792446199567619465586909846780516996979848725938273294517435361009000569432704119599152247605974853145097151911735690918192127388707122236954997815051386628569397102392284118877713143097502075379854888950373384216423798544776032906519305451384677755954899812417007208343485621572961444257702452091778613560770634638286337584580945553697015904574897433643221217943742438302341824775771598599529540723738532519692643171798657875570846994062598754288721109592405322144899435778454206381217400095242049326967602105725251487109968856927791148877872212012901651047442116344238855258111705710756343855610366176517546355424956610599822589008136669327144886122586270063254834094732271001452647693470550726538383374475220148594097889908787271228712460220230161941212041825850826246213289998834545020451400741903189679128564663162778681592922183284246940624532477198242322197881767022262357801922124656013530855034476882635286586571771206432275163810520125150576656370263841926208619788557030339499346636594801879285216088960191561436613201154064130696808559911326258692299425674043405466694501060834122050643281882149856683058460290207968153744028987181693787165349367040063883586786006114489428893683074836241463388795027437450567356901362947557230336427475075734902562401608150462459549296075564211687554975059040034899951102300478525119315797907734019948588857918087471531357427264694218215977240577857913751648352699123713712573485041682235974173930504589888464642996870729123446575066803128738976333170125584902217626157200994568894855072038151469593226047824093248819035011314199144506965654001783513810166703140545330020748608848482100962322023519870973581664132577915854391935722443910911822015634156317390967545923710599692382994990206084657975037646366621002947857936609795447101088322122687175503114538069550983687527608518946544467456552272513070780612594134239874625772316492349124010714522144604680303798870335678147251578836351707315273830921636120832355936394443872119531720848588272558589306833759229790426275968152433916347407313355104122525360686760306550140515629397739420825293357592618619788680193422013181617871490001672421631586104341709672855485279739069512958563261908041025797496851645911901874293557732558347626732621721147765175334237606635073235222475751311669240944576109498822949376316845652461987624917724433324375737229747045837033033847972470672208103691560777403788580610600515779347891810855091866302122601914170832579081352357559524415843804683869323715186813612351132946823762501252332461060417070182729698969262159282072858759684889890432430802785103532755572001109786715240996155759300640065833217099397098708361816856016066581781995059016969333028420090838919089661328906647189583868058473918508622329719454367198772850724189159918173492989186150669318310419084762529387449974164075981782099136217414999673541752507610070952856224950221873015227939370403713657702853398612292154047288402491428859243854305805561852185599537699362697959113259907383588195667494376871096708545549456141144280489367057697360792699411959916538281639237652081007149787510736648002383309616144217815724348557750302611066673144886528969062854568381361315890676048914566717939997708173601446632771727808218806657355092326324816812925934052104989315203635196828986600488413672263115885032090659872749466206669835472018960885694060472982951369161561126242001907690439567990946855082725243508719921227608299481787057355637306521161642579941591891823770736831030785836628699274085830604499256192770206867736126890768593085294026231289949968090440329431535487461695651217546355625312157994960734146042610585454713502533337458198664615174843545866500183421777719881436379613823731367011182704545511773505197306382152765738852614888909190286842024760552291187830194718882953860354264493358005596208371771726594323570718023133202452460527604340977294389255168545749904672723365745775582210003171457819984867268651951418402475019466052143165940708837528207070304982351723586669689558988173427064695952555124580280297376486621525891075356843398583705343482264395177554897170751857274983598886542725782448951424209588583528308004349998239227456157577831329485868017792840558457698928576053794271660718344236885011211583979325373436242531409069303294513319962182548535599788393052736379613240275161937450079998966984715126767020234724980864030798231242538695260964791116586589461150576547427070814571404999895262658836830260809765589747101608217107915517254241712849032908811334691841327003248880094575243397118927385759014671899638546352555612304725834984622524727645842484503064810606059711355789867661562127504233518021664280340988311752497396996278762536145151126872106475101235773428513910325479892653621858609959053283486559136479466018330282268289042909049921707962936646710523031941665079471131327230064623778585019081656042574062516749574339353777024230037598509689482146023949755118879588498489688231802044503177007244986709169275138021872080051202362587689632461860687652660447168005778082328086686921584694575073098890812901495641155109343101553017288083999231287073893192765806488590657761711898620490491901945961370301428911567683176208209582653798951032363673447724967619726215864485140880214885190985103700519137330495059392779851169304218178164154495234793596810746270689327009652696494111419223135106219252343476871655520313593246265819710902365251586479219178194594800180656631831422989942500131022389773039976906410954975779336032242227008814615217665033141884904454046163856497684937849016696271904468689439152072053856986097075110028539770400065820384144966045458841927421010684182639081010481459552349559406591611418901216516992502701534793947811598113169875947865393332246900566536275754330272067357719106228822059681226305144903228864691071119909202512128568050582434572791202524808912900435394359718590445270503993539983996019094114264592820005685685746842032471786577203574885669032702869039417161534436217022615091641320885745316431021613785381031711014889698845459271670931226371587753448130225705669062715678478979176114290423644689109106653945852733760380509708408429091814017153737593772108677079173496605072590110228562677137146538244806244873445759546836411055838211929898544017744107124395525262864695727407743495264660173917916318540769324262610613635302883752327347965539748182095517228854407920894897696122885448978637699891374001374107372145527087029019524936245383072597861387528158304939070151153958519124455512615532305968928765321913479308498357335944479900721444728064953957096016829152354868395759634835827862064397709300483315528905665137016989528673538293420631031225515154555116414373209414784067965814893937092570166890222516160324709044337215718557719954600713161586305121682251030158549323937554570154109757438728691032653739242493609435453420282292726704349580405837545464442056477227745014537218994536126110366857484314730536762532052437429951510405744217517879172002539905931942212441629182344742261655659982413197447081588473571105991597316341803467768931801425525474837153374668851947829830053062942843865941540833082712795906758065729571123196316547026483593630941072938324054790504754549441478482024910382156730861572579575877619624201177888892904378438698831287436668661068908172553570270919705299638495512976777868782434405513377297395704792871646836309226376284396176569144363954575027510388828618966717699544354912555203027716172522621758094127350301630585721831289100795030552257465420790541172396338113625590368677125750607744427435303615575749224926779736902503440438758541701274296907023192337635877858351620751125457878855085934973216679783454784258633225420236333270024358810200014501382593316612992767066831604479852442234141770624290631275501431473518088605410935926779946863905135959950613663522134845745406729196743261409371165792586993884514427163096317564336237074893130107453764023939477635227103640049760779351030382029665564259990465444100843847673971729513671336146367728917242954032484416407865300452245641060469367529538379985366535584519794475675210482402695334123080861805397649565160589021407898253053216215451241482862579371170554000778682376537945514701537697671272183859421952374946079339779864708310690519773110644712453705862890393976414411385989584259378889743216077517802227520641049727048538608338357246379268343365837475723962667675664176602980773707399130509543987184649099013470208680509665541713344873786823552628921952877726805269671003506943936411573759343368182769965494756070753193721570875462771600331895478494326298550132068853501489815993949148739448019401895411404715801635225247003165836780750819959792302988348125713827386944713921567259710845841004165399092023256325974322556349153527326704279994517890397630086562798372776434223490916073234424839901649399843247124713421953394821014697583071813377983044829128731644295752390190102504612999749525879212984144784175440975462841358020952204846397578777867034727184058893944882856843447902803031408438568470059646513383610037371081703807228581010133968167413217047042848977353472925832313488780126373621309318442136537183087327027094065501926556223254097105346638874551569409325728451013228903573001935975440280186334868237733096003054495486585859788996952614801274705890008521324495043130523237595856317567791146332239652313219223813548800918705557236613006020767780490747648590681118092317814120742354389723844397835601604951702672294167785111477353689756213818563471522660888829800429815886290139961383110843413979789472930715883098143811279645789446565690747729677432337198691219204104620874685234231608852169509132194472684088538213777923014647105930376756030742441467624280882969130061931979088989525019733335756092780731620074996379140374376862906825753971510607480401246972712490220082585743868714963532523339958437251167113614881519366289410525116846252706141148326937615485767490758623133990796356770754154185706609546392308710690094195161526818221076634755887046406766282413204648212629533776797460214165635056879131317015291048461808188847798494447504450861697308600371868715192155872642084873306804877379743283421128449102666169201424456474068750765791026850743510297750602855394753215106860071534290566882163483540655413593848807462095587691585317168462878413023718339276317538239426980014575462334590359518357082683400549470743061059355165487581929316392365691598352291389423264654846009222007027263526641672578484069264367724577972634681277041731923008752924728910893244628230993896819950769412493981243707999416222238938768495767146577812294287163985701294111929529955224238214344693283107990213261946037123949141577018553960718663478479238826386960556908128917849453547486392655427930865629159437843311529725517668233700476598311515864381560773727845679302286969130870540031191947726429332288699632831949891043719711815533699165689886993061230683591732599562771755232504517645817962993922682884712304675418048849687474047836527768327159553599180998742934419567899631276699961011869210100080277779829883668371682701787591708749960886249605254240484117110014076719768418440622532281028047192364868117471545778599581417813890182787228968328598991486730244255961476678793440092464730932125251704606027925760687834976115249886270604797308497660571506522103760870906829153810043606613102368929170992384969299074544175514214754659174978983227996165590561855205914385054047998967825568924525404183798714877313197121308175953772137792340527512511420272321736586927410280716155625771587317674315758230639055521170236423299445773863333871240989052211902244100229370134445408866501217383501165681353789691644571451850790796970838271934365891858718439467281938707061129925327806963709489856730293892510735696904338858760893674469774614454870515762502787076526354806003812248953054859428557243179847584438775724766850191082637519037259496736155876358092113730358663036777657732128914657589157187374249468499916881653502398318116514329098218892384475194457959693664902306469475622519182180784516692434751532021575969137669018947431210055237351165186570162537962404108835682005542346202514524009586228127644880390138087178801280189538587417643782776205928913393364955802920646419481663244899498108872878958784538480568147135265239635619708013601854964591746765964534901922218080374662480540854883882024006166781300074575119466715289503611111727919202353819412272969983403928164549837751072185427458934094638683777270438510552703188897215086942062238376086325039720830490979367454974213438427908247373299660298300749095736576257708596808623149001308499392532830428375420549183487856955256276817849583419251667846721215642787278607282825682019089912233190624563201418184013259314181309966111825765409533670979560755709458507426616446593483438490593754629164089980256482875823240584216960476740986439634074418138874279879513678335100314352118904614097091951472491419086587787949665859305070556309577114854438012647103285338522140268255461212160791701105761164186472488625532062463743288041115852797907659607047889931297629193309006077644558678827286592571151500932599600783503861403204227718796981120148689034172266255650089918176675756461290145951541874141854704240899204758355994253250584008307896662660055922382752303306119361826526789873650291391916437120960705095935716532059700902410112042697309355454797223763458076043276329488688335524490952116240791529842044052708534697551089926499490772948332899239644642238288652723229422415362939666323001023619436337854673295049822011815454369846712789035083069260176348227445792907945072319744537374864469306045900622862290607951079650393108604542232727166600752092363004464948861134089411663839691660266624928172565639361733720898310962184403346512274052289988243130024185378552220235924272254463265925981612155767854024919620461980861021289042919337727790299275745170736951244111843100829689210332515214109834009376342235862123306915751246112749489670567422817699339979341333622487565388643841614798221996888652599699600767038282600274555745290362245309704485367617065875476371070055175940412096030937516075926938947287433742386251513442967025653831344384663348282449316897653737724957676229262047109285252482597849782997756238902367389590201406858928255499270896994391293681900545278624281314816361379257212311374414077713879500007811192652140112072470857186675693236583879556508452723223460178585359741280905858476529996686575773361481730636878935279438414934767754315297404760530828669130344914001798735929849783196908608488142458371770750387533338736035044523796450060306157275259400950113985528827886002244396115465632144318132784203822306747038357381137903053842930581664335458114205095573963379478627931626005686455470638189814430724765389342678112002694677146200307218471255844271205688447265696949607482612576788493054550359511157487868786996186114919532997635306943349183615732855559676279551502565126957368920905551387299582215316801959945626434780637863870084761054982739292889166500587904120078688399019080539582045124857559830893970004404230498095072524572776041159093672929448256154684422820318576623833562245578460828851581089420523912697621156226048203031287907738625201302809631900724321089474267913809610505885336491584459187359599746571369484850835810699780204927573210715766500000857051467081858318167099889022063262617026413101772631800150758679137128797468153671725810851881932145723825168806303141321574102777662307971452477589046851455125057116392329164223158179129543586364890147630851197005078320057969241505099645480424761098139235052503295230673337832661753537387139848800913947808347679607405743517728289018805088573819079423662187632217287362036119480319095799414488549503222422400370066091975823827939266714656592313890736407563756766239987097717239158908826581087055540660800122287402233873243674763207453275307327955758508774637308513834800931953950719277306257123570694421215666877191626141188899623066883810033883544745893020972575725752659961608742079810949035009823603757000775569793217448996049989868270177917875343084016538463584583067427361255811196988811637075352514472613075745996136466455053124659747726558257089414049559622633092988077817840339127823513495033063080348042270318377541164686287462452371560306864074176571638447037970139391988075847933971003195502015142805986883834903628989837144455071770384288998441256363192713774098043737883826993474033513926321277405346195639277191735573704231582866752645176103249095876924028276342666749260254152062796926323570891520286664038311923684414959393548549977111415702267966412341960750559410157104840884601708469494466084194230665712928357970702992083554249706429699568418389403729336624917239920329961014322932552486285603651440349077161130560703951291825087169529133389013578865940155785506966421589246348150475448402392021644106077015247428204478110581029703502935096199882123173807482551304191703348313952978881147804225515830569412290312128179682369733572641356112016282705860560459659558855083637771376283503533717712018845294558170468119831397521197789786879428483420212775222212358504429678636336156560350193986297950386867013766120167609984657082257288556649928398124689342163063795464709204425921204023779659126038905836265563608917051441622730477774821130872884627594758637187161175871063126037467322715232379950751848263510983798115766459339859569079561104596169030965972764329086836062922291446346228154034032928340482529268477760841154617323884389988297411403118724112361807725348770268941061603832023484573922504408736850657687032707863379605866757236809217476749615854397947853457171398468487621396546746260472552807715974657098245371905987845014958950556183674049616227825749184519079769830735146329995377792120423006824202334223741511882623141376801949196799268691237502374514956680566325808754172593864216977932652522895524914879429349014262064268605098785360644503495762199300384320332874940049642105067252380121532164984664051880161864510313762649812629052854556929690433958282223541497793215723555826307325266689447588502915604492094604464077436147729883341324410847324630429253288776186760614782465191027383636461521347841649116801820627164796825495987205845126580742833561866874607668397008238502686612671350479281260160483489024324787955955321267396848346579948302962383715698421685261604747271156308709348760439281650559290178552104681660154966140973051097271985302412426674472694230909604951804789960286322329936596906660117936051332474278278213699591764069900210177196521726756685698980850687499935088517091562524700410581914468112106122352584024050182458628489778589775343867883928719942878598975679472843910843690207763966960667688161173826560456922293382957500805540287978201609228782420067421434434620719211588990912611216375077167363701532608816160077514962203530313373837656234361488363710008510674970195900881106171401066735902573980943148555842743169112359984681234156367351975935769127029728517568687073496980644525077567484971504194993075189538634722536571040015294373392388651119611964152574576851650115336204725351136092371167875972256279828001798063277276940208758831292788666394224100896752293736666417196890506683468922652770115173575833883569989678541034576305301234850074595531380380537594129359460790089914539853930262941229571870780614603285195281420431913559457955977690133430108712584509899709392643357212687438462729449452847022990194824782244185291733348503823974503315645896680949504178870220720637579210071729857099831228481015323602203760615979283340930402404399387476724103244437579517412763462113786224594443523251458313571273357903504780118656374275984255456171835544671844690069982952946560639083427503894752224139670351109483440935098237622017881723970320841239906613147238253967995377268585926785992726948781903653095006281914773915759000928054144876228090333119984816679007502660867975539625693751712097851244308892890857558442093659045511213754830180561281585093537832821835372182513444418547468898806999572693229116457444162230677580080216479912668273791533799278425802159727559464720400174025663099413968806705959760378765402105570087075556512384152287453180820136282513374360592668824508093139859911680259117333541668811498811806839637573076934268277911845958266559614200293033680236141934351982514032377475070000544316778346745698913673546126716543532482404724609811333221777909608249563392735086028249494326977927714667204385212778650884694677589447135478148162745622939405722316401130503192905011365396193629169487099211360501980420429457365120793616048693006878693014438010955133787530956598528154804476709689002072528914347937401909745729749457158315083249977730966068914534442254221326277870863421084752947831289583731061868534766947658867790267257667900440723825276574940949054175442445646114941914607699285622484172334048681721326720874478641238598048192215110002887040684937858371488584806764757001610552585498861437493410161701292763297587450671421713355999314244496506884444442139997183453961987573354601767244269233224874626784405699664154287564434028538288951199745254191665182879958371417690865453473006761075796176829219780706827060029883790879930096435638633882541128585004317927151281575599567667372918199005393555866195203904541377663440467738093818680184742990349629771310329008759137414108175105773423704110520027960399911245303612606968955260724904666159511156556937271016978461665812918755704726591774575755889136359996848981604450269133857470674553596163906538397320137746210892572386977991516258780242050672764185333648514293605604351138107505528995607414553164005116219295082699051625342459516420916431715600024030739095296931238746420909900839867576684296429274347024147889272226365343547373857785984143357958768188092853502967650109204395228919539565145069153941220169199043045901843424193785648015390669169305603841649569009764150410264212477307337489218608080634173420369737806298427929499813510677834813046236668869651550814489298926995454553296645569802572714908238409645124971029052697965398919066700900397367340423759642409600263687497550883006303463028705498324702403263875717108416525046326638627568496411859874443609407011447541250574524741127091033193512593581717572283226043801110695164591922830510329015081611382791156631498532944661967479186683337890530485831292493158398677193751487993711328601858173044190218526093845049158487710946709309427173066289477714668200986859433788311155920831738138164513097922134290855519252094277455310261564140282753842289348532859905798336590288292992372085932415063069202397929819701604471722459724432633644708338788000253920943441438452210495801244059251420207617296191351221219146862093679174202170003583021667402672887160009624612911643931133618891092974093537211824374882733815016104221976131738183047720256783262773134421420620373246948844303702379803930443604458508806755663602377749215010094542837267376121132115680211832383405127269460987940569143597595006918027979677778723303855456226067048629098544517713303791879894567784407792520804961370909820361974042374065120244674283434255382709472245549535434956382982758774607864320609121192445203666512560574225373062066292243814897750797032975715112793454873562916496596771451084827120438278742300405043781830300019374358885108697072439154361377205986523431156532497297945198500606885102411175253555865715562999455406582899082593377069298104637196748412687422208578683949572589066564724147773882524942038399499332795449434568554875211074517173291269779003595601593010516840099373757556644899477560013718114002365514855536254343625311149373165510790401158886686198831761774802819931805311168106200071364681779204133242748047670634815315600380846009906514430807457487748580900026187010796367347532396762708588816726939745593088170534406291000646624451959409990099765320507462964047163709796514614929461686239511791787640478098051469455665518034975906554223465311172438998041560343654308154017906747950563087427189520187504409223213160585062353228376662290655020906633369366341093494828430923950190987509669877434603979759064198448101803404403412447302262651457378986845998904655079047289558369742445545876442919785133370608800750490636947921910450591528580472120392199008678554716348748916006282986064282883153335681295756565253852824356234629377773272546512253338926508467729140967833148384301400125586423922590360345209118289184878467428244768934310409901414545826813076443232666874962251914608459069230522986638806425885152755411561347870952539139594494487322424583041126453356426606116630133097798871629259832952232937404549211359174526680793422808968132149367568318195264962697649365989756668551349447024641078303960084722689755561944830029236592178988122991594494047699031016593098057583551675021177884744808275743710108310584393792294062758276149126292790003395812666705108518293058635541101897470632763568361287583842991402753765910774116108964280017264067416740267339955206611641325529257443286272952014790629472330563307214364831757624149196354380221934703477107627822200338138229362623152332441147658616062076446281586916746521748595380799625538109651847138581271789325728434781095876782129297461908098927957490309981901099236277845202191482737619955076990013130309656511431844189083963193533101350866557823137090519112472441707360318527262207875922047025907495106806547274263507071019768829512281879780333737621923392016148066866681252972230311864907671332957696140258866275045539510757293030562857381120810183622651337774873473353064824464110849468902839970160152209479983778838764753890444637964456956046850773391150087865172330196910484605990981365417120815428220652862780117130428632043135441205554951707780243372353142230877080182075561599303570448117881234229214915626837105169280300091533023095964979225296932101224871756441559355537552389609195220493752731592882993779914843042709037574647256035349492018778021064108410048114237908524245179685577785763055222246976934607974368062574893396077415268708101584219839181917471923574832571246202423591859652625000287277478644441232842743645723940183540484430259425840630775380672279189023945226140946947229006922026577441867962780930649027365514429493622485716619964095407801372483185181951190131326235502795047339083204351167841746147528149906337548918678371596191532334474859809245896818847225505583451384800766495530687189860454725619123395919385785123443655549898657844018180735139065242690337526132846741379934271274765515854496161526853922086378826978774445932648657538545145589841297489088973663292664544281314799283854887372770747893117860904871358669939681219191138246852632703950064169505080400949404796264788745588038436387326936606996580458057848467983382318543064168203523467399926939174341379694406190693784897207079163300643428128796798763108691413642518559701391252279246641956795884040485526864806062660171058630222710015879811309600574061069639128875942463641545835661183788820611870419237615828570839407959343687597033314485218377195433453598290496765698665224765383700199243993813417683547850715028508146117732799072786792041061425926781322011512989663427775663184859225261158017922178917173441080686813675581318084996831662367458532610558700634869201377209068339490986343791314799669363322751704275408851084917669627563669471860457714038765363276563411467433205779029406853298030746124728363283237404137872269900021701675820395410356083510913917571746484015099671603574765503422761537819540097828983702588188540488649026798144428697858760968076971456484886672147864089365629509919727793903281705351953785363225275444790792397852764948244310717963902217313610392127228884899377724951720882943676001305016705690447232383716266854739881364682828686475037450678273226282858378564746009745753031712371705452694994025682765991701407737238202477165169880543327445828822547671402247159583410128333268050767482869750880139507578233823403453500153888389106704955678474415500060134633161004506893735357678649680244227694427936006662367898130727069659322378503121976264826570532180691280729849186566338076229527717507461524779914658829658628592482024402186135993036970187665383179431441657945899133783169885806753953552562363745620058174798086378760469475815749922193006468455734376493788017166093517192300623825425272880991118361903608915077885651190576302428645428441681822537881106012821341423618048192571286415371290765297622152775244568338864024055432505586236356321451438792471514582242043652070352485444745489705265587342905318812835993575909440586961771922069955111335140453472707439975996262070047804612886130806547864356857468334652163149380844456617881994279847640125845770184977714884954714318311115273618507024713530634342369032916548324733696274866553554170585349611217861552246090382533311501752384351879200757025289692464012401716864250737757332043486977000922256304520594971776404834631096625004264631037403965238249020996870413668928103467788040966837509753834351954647243053430834026504428925830622338875597423757922003798597144797848179403995990850163083682670611720990708652936763767609532967081525453209951432723462846373310706529480697083911005011549520899001509273947851298106322397023029521811741592124308690461819794990015755474181875874409462114389443464743682619265706294046340376615347190085189829043175987261990904923431241448186337156869990357230833623932288195234553320934323446308905421708970300272392993397573824271130730070006506887534630167590399495690734381491892850970588565427204807273283240740475679121807032935514082653209842668414593510749784062853561332301787599695010943993509929914890434337974630310013383467992334863516429579764496135492823546359767252188975974789137766483261673206680751836341939382342811690640495149339859286265002315519295496014687333917475266486425337217301666966597625948045522630014233978967515561394453443384125729520874135452805483585947788903817189896596274546351990989409294346050748072446361332271681826056139804402093625269550277389081817255857266958989011531663877352651058702000305943432799768560653063856133484821130185511263637134979606986458612844329363771655934127279668605761599822541823869143403791326890506813300085495731176768266047639312252241432610218584913200932514046485257041176534180839061444599624797372036198912476365822408772334103106626768441748729466663312968489113824395042295804991643380890294896036813981353764534043323413096902905357448701454703179690382863386936389851902586108728430769291671820264706560972550196405038378091185658207824726049404780694338390217250326610632112852258325343021502159313057152534249791891957594082455436230831723299742473970429681734072567515105702262010955195246404562582787118423548446082025718892899420291740775382724693138389708393239884572237757459993458880111854474783394762020079908148317451877005436321728289838206995951498516412895294732604908270420977886521717854979845054058035430790184302199755048627223292871490008700373773696978260288409539585873858269762804389819790231217957128494330497315000621202378272178985099302254557094997429397044934561813320748266829523739659972515782123411523938866061086722030406715366646545522175453482106165328183407944965086512651380969625074878962627161296365320521166911663532579990880971801553142946287107301642615552252851290253194307363280759713289207169924978302039631172711099356258075313525061294582063211546431717427741211226561766203639780580632695867537812613478417120112493327019589791733776045681527527482662802092285168998252549723807657942570960752806016718022172016268891972900012404312904324047661074803628972182389977068806553256250847646843806725113329738217247203178870833822384255153423751386280743821423612041045225379715799222320923616085820810014880719511021402138856453886469909503214168309696412530386410720401800679240622141796487509682795323012549939874607165893633733593492237099357589050639465263856836419947422715695698560765831487613391307399687180822754892038201340706001304092905629319352277559145986947986158301594207602563114844974464623368433539707930216423408565702153625208718450093266348819305119453099495966534059824753832725459834009229951600739637646023622421167363151641548870806264871944315120353294702189362434776706193543983893184972060004409243602678547074354214175312469385942633584493946435347967913852130934938723419869089883183195687648972191392683931115733456408865249614462261211665639683192150160213082005991819986761721102923044109586882146645202292990439023510079042526279511306213116926414195392799771219082022024119726360461835960243473634953161330430097628962247881422210883573775361096797534335296078402522548859304263329440672662493884579250679717087311778982955128326672498991030105558687824503560949828464862657548125755929069919603560343581902708269676655788051555065470798664068872101380746176347168099827854404145440685852133607483885893385909003911866259495741816743826609427587652052534688944858593737931723738641569253247216033413613635003089132498056429232907965963028676239529277996322077813891718497013498841813641528451626158352451044322211678460008526384680844532562575348992000391161312349428424918936403163334164116499644089293778227096114436917918140181920525822720580661746994114205922855625614448627418572761251725580232218262740229575567439604975535185607213802829915017384851572690493610248009485146653307031561830656413262024372656036850911407018430867243954136382215394137374015077083365594492662204926573601665170279132178470937360356572648503896850630240184890449941977105323376879671478485559707063315816548817362491383525833500373599900443050523485107985509961296249671726085911638575059405833820868667120738978671448596344376298331230869490285529415404790797482170368036920170664231457841960405021636833197312159660891706106237745029396166524943007744422720669433891097085310482988388216627610901439066690936596912711703609838168566252668496279185018994473328112346176837088074087174473935165053182648174919955787345099766485792694779405651136735293468991306805367899376059397750507877409319338298879142935956974298364202388992139613259881616420560277479228606248464953085282556013410419355010728470050790243350401728182184445169801818437913754622634233884137663925018986236978867225390590674825904746463010661515913150403222408488077683531592419850120665134575820777004323094340868095735319069636616803617886823160042033142829606776060971133266011124423446820972323042363063833477898948851250364064333029289285524095449458328523267569098771292055380767039000730674549190114389797820147715605062651393520053769801433762307853646181245664233101306730014669073563956834854651109819900510639130209672343936972664874148629990110160651016314376100571033630957077981975624203998849208191535284014569551376278778619194772700454595863715585705115551490056785064338397049018188035790443392568719632082253242480324502677475026285636002129501500740762039961951579295045354464622286897099845908503989074184112336268354716223777919079238868114109002492558779605025844835653066237143444902437674237555562345538536608847135350930747823948856288726720873067882825352787716550229021284177773533044731015581552204817685884565870085265606761552846578527288866934436547590447739162063328100373813319602772691761804951715585280430665885103716751541568363736466957917081529875610289139397916443471122148209976387615248032460169832641693216227966449994424687577625085668519682461469466427955823886343469566703926369576626416429886741893138425725865648029706198841882939790780097508116976896055010465394711838815874547065324199062624250477079091760381461841407968949282805149736390049783180288433237988792567762818261042153484923712165543050767892081621949646796542952310401911910825034702154244819147482628443963285714973703089428677739073721401204031496804552714550213666858024635610696311896057761802227909054453512261337654113385762533463247707469322872601540544141721145200779875465317726476415268078743977907388044575138697293321897807570939111839600705881858833582394206586642473083557661384339791549772323660402626664485803616858929659887286322868913401401725007898739003993093650198510292116281741372831879574758411667394874344346303770442036298712599938645899308677262659331837255837930059192771896655077880978996331295054465070240585638858049148270201512523375724106397833448794295671404186291360162728061591310019331984003637230874773717568488580996637605861818633215602990480330799659928592427908480455443940224326689653790578919434989179270111938080879847264350741101278835458041599027140052018902403844419832314071896687883567767541373611961352195151477064841099814498139371730846358722944650267104702336224869178633118528789153482029280808719594053264046743147735377964666628740145024968764243544698155059851525418526273922947526007660150946458600145814273500500526612006129209495130082004335014127304350293399561053437244216694306086494349418321461575662525491497805363956204150453019350086585900186776034732389719263846937820285150526310910961729641033993706891964475067133718923802624701520184660201439490659867604728001506155599703931821228828421103522627108746217725186453230453220089303437275010284351225610230324006284555028294616693983803687756226194722089304114388065746417167187312059769433032153386970424835138424748416915388073131255119543845286012056360631978904965311170926199795219300345768658952002736632292238445639948791286633293751277083785109023489158129531527103941799874992839257430131478503239927564508171190054043338690971626524645285079635284658631990710904279793596043939056971082547719443575543610694125396711623587831850102329312126639752899129896282508707100541230999524052818064066510741435232425111011571893420841444702296908790522838914648999620002372078684953991917316920723700318367747396335821639714212329329410588292693390503146651430979505720537057035659928443212837906286434811493635222804262395874615143227762033025242456046668693423623584399356673300306485510055555526446362314682146975887085169377967388590382292011670055267550285098436031660555498496632111036559777248270846667202532032566309298117717002170259677504882378650040200247936256922146850995198930734297828053420363144354981800664636570411239206530792371185355063903846157623928047363120163079890011775399549819274422425927697246376596366673000280709758777825959331813448402773587447600549846459211415197916036441378896602955237379214350251691960761117866157155518975932709228879231534212640763629094473262726361729538879681449832560764554619716226897576434944382123604128543610557989591249877625553075592235914846739441195606782175344088239154593004390995224456566060725909054540036269916065474709257401661376783911792443433372769676075789341618101748012983510252196311191198244895027787200880451217601994563288503003647400945503382394369715340595097811247972887578569612241064355920595460087807136998613756619365510472307439305014375955511071674853249127841304965003263338699228289848387778648580588090496308704513588730154079517982538200144752446224697165446997565943196571778095912738203194590787423870377275318049934975299949910244767898188727045415700855632017378166430021508512000691549013252418756186842162124512079388448539277275676150654996500873631222638552352610324490155519270719255240709909734415851957981445814749702843383843247207488719301069297625738169974179866232147884489074527065905832051164403468089482156607298319806552904654322465732633462672324550066078294173997951566065291198476865990624174598907363219606622665403536657859515830432553831233760407050543580700803619043192392319217285353273759514432044907687091860839119609078846675802952314646894534187305589865836727618036742032640277474124573558917972163113556684974519645704252871056634415594356773244954850799624786595281757013690925086216109413259905719151728956358378781431773980481397341825556961606275087814415911667127687270703371600520677198942476238159442746838025237073277967851970331543204300380315142822948864591605435301799998251977672436979787933476937626401096951320766428161068506514996694193253169476868493920394343033588466100190707868970516633138856772551546546185709016784591648666138994537761455887748931991019824857247581113339604510992700550163095412895613284475143426492557160940602546371191245770453285283205889251351135514837652730008381936815058418612919945193382836275891379141048070556235586096560563937722934545899989924689609005644042474864210388715018058360588402270993831519906848845176377551154739822401146773816272988379499901460166510639632398040677024315677436487225222420235897851022143152661893649344983177108569350824761202559436172808305743233269568638783722516704483163412244460099867340736711901684655096672591026386949761581643766096318401280092608274069180584095759366705624111968522436511363367464001957584001255885211275661501940918977475924509322931819511872290994446300170624858635831874132523497363966335527478325837623329590323163895993450153811027733143847923137784850553481690670397105935996382255845680723211397195390790228444951270354301606864625365837455720212793709111822555135178467406647977969947840924966760574387917462025340388115672026673892013213571131439200589535214822071433501357824924039421527006248143496968633766926478486331708973232856237497182042270497342944732088797917432697321996252862763969707663924694724103685139102858173597812234420736831555627413689527591576346542324100001390214371444657330684229391935166150927553570588318121615257079485274802069451499673040048195718579472631216332391427058716072896591418866914046663265067008280584943344959090511245854351035326204541520187779739601055965587487728015756540664342050662750935591335542006690039696344150330259553918586511452625502787107652218553480303133705598726366564765895826153177575700930466700434351794872438874045593036544213369119666759250411191683230522876809510550751912677983372936673506485939994761216040562034388635442218363812922492728906212446076556178491945793046928336064728009846349791530002775655085059914913150143895245504579825107606839273102844796457189934305929215807580385852859923774469086176927571467340340908830685577751762587503273018104762864151598445389432676943827308386616627163960598551474828901045017179342890649970732588419774776486104293634977933329184355686901453866377611269089368642725916328752543582176894635020950596428227892959773772801010703996628144281775178449991996781152135037235112377903417859280106055445629491846431527240109754099048337855030675007855905390117126320120387514727151640176927024408477273224970099191507398788451092466326058006699998081549951569108096587741290119351398967522195754117111215681466574233731852473708660592052115453965971840881569012935051485369805464375782366323698874290461211744843544772981838761955457402487727956738767994718831204200234730327957037073906085342675829419897499550984483572366910978929485348776695125788984224844782404306186377770740430540674991114800417299023825530888426924946757141096090719479847778081570554198513381771419023748081629452571767537558209423687376100111225639575866572771618466956623391776934082527782716003050926604654207713672533463836194818487298318954419915294306886686998453553827252729866610859271632027688328581297420600586102489857069620847781085145471736601912854627660687887345132094563824875436042655724062940519327261756729609979960366874993117265788077063567224542251846178978516885202192762368124594761032173097453325085945152630449538542986624363034684202229344666953611345194330612811507677093805407727039108351646332254826837656169481767781297686968589749739497777037291895323410835467873280584792873653129738163750072946385294529631559901162095676570911860186973811493722722375150079227613728959873702218284826779142998291204630821052125384005620593626889348840151745767894222983289236122878450010209664661310976997387815602953957273141472919046063379632692992049248651780910592983783142495475689966985931060860009729414653351189555688204040591549722478167624140095549205051551357677248361080286078440345837024893578605442729712258143196217333475408600418293871321833367786569194576705486498342066541747032718994954151373995716990801469634916705907238358711548211747004626099645607601696436467234443054544328916892658693200282344401184313349600343735528705722491321498293591760321710718664870949678764413528339487172938554439969436003206887595900098495776143577930358770521967409937781630680016262235911230665695496050046431790734598776988844358203057601773060390229527645379938214296526507598849947981499370922762434912504994121967638667159070215922123947647666006962677564746654401605177377295109734711470851742896834062624984881109329251992312385862879278382844748949419020645337087487640424479549799855756798360665175945760016073485549604513974309103798235926259741090665556248392162618407236860022558936522702394525434729714465978101613170653447894484490392816009560291201213086347615831365791512903113404685568085313466826567637726211409822075034164152038648456065783852232906049407463959949186882664642514591527637625044096842038409056374776731137243145594541318365387276678612984684064210176695996041302502251718018558674992623893471863729178582540662380361799618323276152377385161197254878018220478837954242058405537826580808507583841747502657379785934519850107341370058372017630963141829343060478430070022142295337979868454417136490754835516682434292092394087069071858348255823714385063076684989521964107572481718146676641072932765330678019813968374473329711331452370359311143155431946114486301531762270059781953937291985371159455272076222836383105840161214198113719637561406011919174391288459441860821242495519347401374981652057349909690746078328973106484645812494140491264104860498022874444067017230673473580615281314846857092290899119630738803403042126861650666199361533332419138992325001258806872747836006171851302791261711108172362964982340476057477287953268603999479737348936193718957484329247875934337029131266237441497558215202713079738665615506234586078556180055354900036077366665611295767613152076605725476990509571380918713507979763360178516686807361659079577334243330141644300159362178333501584749940666905993233077893591308668427057465527987614589263329873843411645420895801172701428084315580782769610808919893079549516115142418895838468538909922444444833289121118735681285976852328317800172102781854378654218533832395871871978380710962297217123692345699906984699283262008502491799742420348350330823563561121826574276659657620472483010689332684571244491706670872151968720203410203565454713498222892150132641193000634465473070117842281233495994885783299368715163812750133844095148989290460405458633215005284975602031647187938702329638768930181139180964728807452096040549333636626605149889937726921897914019752177509540886759756702462865926834708808107503884367683954324428268486206236954652227641280188897946110161487787781481854424576111442883763283444828743055969518776769623700083909228475620890754993578848290408434309408046155272719146950223534228968624269493206924810407518325532408689449281494072312403075395352124571417762263590939260859612515884618231799175356995481465153212552578647398140465073034667224745236024656936284137097851134454805126033853812169824571610150906775649559574321804797470339141172661158083033476002159998452595748341268094972712918841675078896902474828269575821080640718235358738472348417348175381708288105274728028745899179717098363703089557729301871625928055843466255967246902049870225559712687586933526273062092631670713390672633364857819786151193269086851782436855368089897163726721318659888552798257469329272628736461117686766317729386132176192092102317336032301388140740634289081032336979122874577971160385394288941580977167646284980289139978054025501276874040394071486770816747067619745260271643823422747279376914138719379084067253837443339971160249929974452539016371500309042417549214670870067969902224340373428078916882872133516793204170001618307921169610064859996585387927208712381446669373611988302721943264226669167304928860503836607795287715504563350957149797366934919399242496329059901049100823383493541462194734262407902953898004923922210813085327340431754207479297357416879699854169433069961468906660685903150511110808522594713054799541404984334571816134597673791424954403350634221895036260115035804941080616371204623802442604037349014944581973710643114672410038763482993014838692176253085292638470044189454947864424144219453459691307138636234050087813515520082188940764589170117347545057330269410756161293702852370791412573214972520435735043731830862879801279567475307353023542352602824670056854159692083499060812327276664847313383853671021068438377178910762692925166801472694504895235805418051163304477011398891049255314829535492902923049084246050811056511037533210233749420451158001198136974938899594075739948453730331622019345529343880675036919930180651058869193705630797390640471868028007886083966799707779460878249390975726951183317264630382726273987392166149585107162752042337271383472172361106787412167769498697504602162752532262872824104788294237365779917904112906245562002843973554855998197853599466064699605368070863642446228475657305100103117969411261733934062641485438538378118351804327976558971761176620174901824895291482370507746624385792108945474457115523323118429508412241470023402862651695494308663851847874008833338563655261462489513021082340052372948472911651498673393767780228909838443108346706297804651168303225701840353761526011810541915450224909889152177964896642340314538097094366780602463221276545880408146273979346790993017145576098861167870488609531402328825890400835450382201298606024793681573374015731712496264514866456816406845540525879652795480520552708172065579836077644110040078388347863503742088771772039427814940228404212959403868687708591915187624089760894800523080528766394926609033282884521408607133896695474132145631420713415842872852966734009654169732936318370425436221551956885453942758589808919630041810248011539242353214203091708356720101081155502408789179766678050108302087175486826708343874335454008113032979021389223204997271420334309568188175819605762048973034642026131099798984057015028165302355569295413504195898325084206949478442177174891363719797050556909551703135691036493061750518361139259545260723353474757112749239372324272495782761909008018271704919516081408872847676225398922329130462673803292726630730426614821279218030123808384064857594254389155741690161606235987487831237073698726281810318494625015269936266287511263479842084499282125914679220301090825773932933549492661900568632301785782700415420126503195007396350246650178600069470579239539444387241223964942526840481416170545325418697841558578720274320035386935758153589303471721660335477236651311628134353970258067246206915222663564171161734365729256885830089586981806494420094485502746842742490215036095707029816606734213763598349298384590264690878724727579729826983653254344126872976584302088140660715110332992965610514963697333656559989522709821201810264121122672897680774122512210666446725211772878623787554229958483122185825841959950057007226074914324598962812454758269962969610193936327288226155551368623715995454880965694024792954718760419859917079222897906814645697298057042817377185505405570576759709063786338999986662883402204339266414058501725630915561607027953163002037192818523111237526019378489711171049236897297738712335942120500101153114389565384701437903697310777984464382679818642191054728146389286138000132922798784166039827619185736966114538528815649720504574467210240035181492524454762824776435566252736527393727005614516383636685971057941977463095685965073031832474507306088900031376786322607443545362358852905052721245158837160106161599011018813848422594959570291576399531705184400635048129999558932310504888783308305833550859021736599303409919775002470922194086663597490239420733866231403708745321242458370328049255594240805928313002047588058517916163975621326347219699523926729247407642744738587888368408685799420869374250838595613646282279655937457865815831234989291175148655933762077112668460341393167403616570134971818313182207369586154747394903755691090463171410637387798028960188557887772313770111765971202742187566496480321459865382532365159692587004627598153333202373752160773575311752889140866578813382475647514066785689072954152155440217397738621081341866047743068183477928282998207612729826387017184845874128009987759965574240675241227062558515819006607219345915593287513850942263599271180273956771075962684405922831140151553748021959500500085891723059306655766021660799722243191789134892744957218568904112916876799064679924275751134984193666991929821416900538872467186878142565371728265010691665932696652654536890047157487303851795359497867657669555280792298171619664498144261123462932748574148920591485118107389824072496850679199523534066506325233969154087750998813277868125799341763167423903272765787635618577698574013849077504430692418771000127092026698428157794441861851207680954604926833903966721800421354153227487419178929028541387452552534027984141113942700475202257510468331718903901572416330873704315015132763644047090867256160540638055033389771168152042599241381803779476758829822617670909092548660185361527811087349031455543363762227415133786084302251840975939970975957303003473376645732261375512884157859072975018771907722142076900741839680315127124035294704517930948797231349278095671522599022436914722411950781802691754833499542570359566657307718709879140213777445594330502620107025707607028830412502188163780451735282615741938440087411789753151709867364347840807008973364187752033537951529013696611455276264816826247143640195847151055631164098529017247001142802790450679785424938349103628284668509817391546902732441817682888000830182517875397904042885069568813743844373349056237608525099387222955514861416453159187277185149121150836883569745205421736412342474649353978827657484659640257961657852869993273261296243740052904048568263476753925980674491934380013877651074535795496092863935243521725847751440965758902400142662242867831018894435648451880847562861000397466673050106481190850194534322641947247301927990067526929976549804585992589837130874738680090760306199452184327134800319276435370553240384917880282223266531783227162979845911178263571218161234005080726481699444647419312495751594852780713032546134814281711710831938924359151733107896307539705931136222918770404078232632442153543371550030915185416610538906506085242716473171318270868632552036543215459269958390544764585987902420800128271681026839051326574027225925440124155246113532392823125675023359025208270055135400670575872083502138018240155819291828039698059343643115041555004925015891651887906272046935034161845864918388055759718276077593814365082393618285734894016988583641786355613593853064303999870988867794927844858171381778500211371519249367666521091239197865930213506969815055342495817144140907522599618837183688060547963253201480741729259356187851711999973324328132197428656140480067074646724618772779179474568277994873881473894543438044064095625975221683964553673558410615460488542557255855295387999703191332311491286735002167260399175848410162836880994790501249723006177829441860903828871054426133899858705293745810219183490817627068233615154440600961966782985476228718488206934291327538685829615807589603596716946360943868762343120900503176970111088416892966706312373347909455334351704547559512446587913639958140677207045993530713228711757477913261869352724464762170621356588282992930763349628100224002569185584652842179318282389122808076685811183198356445212684297304436295171758774342984507176172758127440439333011239627714944592057198715553402902579704281616872282417861017021208958388554472504158696129491944241956682352245813706459781452253055503502821986823493686889304512742892670250382985761218855996017684817688409024530288910948330216320261426314909803886598082302294675689921069340259829028474391719667723179520898641453406031630661832447161911144841849592591089732264723383704261009896097813184464818417662096290972076666088865312475164352027703424945718691412972439801084043536386950818410289096782619065950928719427971488623060300843710101320808772985435360739570899826821741235983392442237568880228143133859593199033855666691417555869626559425579103165055087537981028125554890556829679259557108361844369942617733939860964676915962236439609642890024693276362072093027952103712134576967245720408351644197691575857344736219547001804251704684708076616069194677157075695989885493954960825614233153125112423296329342948461626467481324126783076372632467754353425302396537049225293965408949661135171541519108117000615523838870422880716183276739856800039200719806936707823551426515717862427978119212848708531191651374720076146876979859001795080842440765022656389434691428959871856428300321269719260924428843555760763070883998494828253741272674780481680514182198105129836450727913519212992706689212334402805537637919049081020010683752297901446614063243238047166941221458353499582743007036848651663050588343513879603423101158174496048892693791780975383934609812372971653745746842542509937513958898105487118897114048351799248546787194630320307030874974518564991320850467448408564774054667831933147999050002750511067408702219045830287483722007749278146358248354689320816466072776885432585216152717391240171765172862788193375035337199395209587477578135384604184285438415883468103730270447965103616338228631273172968918482779121194030567748550579727126173382242353597954753025325082813881832424869282517531649638406547601357417587823381218956161129951801939323580410440328959782027712106983918369861170279504357794419083725488618734426441984029842638349921294760376429445761738395648698922407089402746254627179420682708717683601285239374796918404775625931318621415141262910659205525443229400973239270387025199838674672698921912317864995930370404670196897793285678140935781869835103974737105567679049115758731727199616903312859749139722207812390809472618685710675807039840489847769029154992730342366218633201684202628918757376176289387183354021206510145414069695257943896044264154206148530724502374962259943976162734544638794570126955069131916334577317594988601360496158016003097235919167782024984457797084332822582485828975972529817384862542106497991852540413776573778779325509425084569453732098856845420686038256553788639075527051518899854183799836028145064618051561735340160850930648538655346030836953874289495750799839980858007275505580794243559935400511244354160137283040993805440726496797360697210942583391572118395121760415455788405537038468824117954154989059882736949629457731239543950015516495691940285785784224496388715125220081128165477472904767785893654456398122330644786817154464464238049819409841463852664608201347811621745562208512343781043604342036963773427704807818162853012889637026486442318257918600005090446900544902272384492209058050135361806658337754853626657783543088797468709922538204392359037434030095237563554690032671193945536500332908337148684124074624928146762415057113041194342238391554544254170238389293676899148979856417251030555681312995075327473255653356039186412629904498027479268677049494786829975308635838923631966495361324538059438582615393514244816996346771931477884329209450078481372861877681659005112969311274668178972107570685295061251778282216134550564560244611114884160359645650878769712581930145895164710485125908962966182277140363505173967584118813349536574545973006378048536995619505431006210470362781405546762091848530440165489506918217747711257009763772131745633069604566561168063685670426889217162167492428740302011047640328348239115809839443027895978055399438260303123631297165857158260091782531227809460712004371828705797595427622940397104209715084199112453779757730243694345323438910647658175843266990026513442858785355569177841216802499994843574976939339503323617047689371137229285413688173703193913421102955539188357403871269079322146058639524100593364652990356669590478159813046222298121350197107897101157390318720238552860475318517187045082583141388920740931993797066161146721182180491489141912450217170208904626505227063080815363299655514273733517158436403246579673029890720257178343201989394807472767497698664665237571190035879319314732534278616993949191031128467173815532170371788152566065169970281880295969023908530593137022221747907674779053999659881089162846493027846524934726779399823412024810667757185518494163517557379702952963203657720121010014850833463543365088631248147587229644753920274067632309420594280460708166925190071173726041018946198677980582022010893470205107234339847505737537864406789513314848161733251324281274426394984478125736621687189009083711029589304637156478618189261066250054937035954410824041908033228591810806827026816500853428188465060710490775676348359766587563887384891677727709093602848700746422356756311717945626366606201401737502021498416412140947596458739393394003430296856042113216120579262642047345343426798768403280432626591966756227000325999243626873721021106970336619803725922563389879696046642256199640334906932801598376523570456797852777967802441591053148812989368233978905468258277910021201742500463913931278301218216981473376908311319023290443267309168509610741061248256985732271608734110505685969471302945133957871162400166073593650419529546223765401284052136213894677645647747264625364148733410943182242149070625444175780090300849668658473995779342723904122610651190819252505905329424041300503728550155678545557286017574923037758609181375425192700497500938978204712878768602130779361632904718260323136586247447588095099998026295630655295026148751333517123008182601396767265758369209957688280027219441159334741183508110247126319349649757225258546982105224326375844697773187412546409946807712445847392349271094206282729617017138394018007913817242275504996605193329975329752793091901164636288961439288817733517013891606004257086536980550837185998655547313330597560098320050045391667974441743281022972835773504806738202002080138018519378982210683560881164573214834430452608173331511777935123039098666900333879605903161621609055065003630208892604231315099979392958046810443611365333327881861327527089734478428545276607566024966723406197860526736248326401471735692195302386451748913485481043576885467870184982695943157255764069085449987076887252897484153066882509338123246358532703261580937242244483629359803413451091573404669126544601507752051921902285213684523875966987067453685068737596322529709733939239749699795193915450546374723883589951095354441797252776845186632301078960286908681623087193612531470403816801329213981883656088525465219069716684636120366438675713963041133924371015458601742710719489379673085971792430286087825564922775899116987380822256311876883139316206113518178113787385001317227688006846906078616762351766330189823678122581982347339638178999339733743745483245906823758353341895440332764731693793283759901287547027492454712230460942196327274689011075159551547542323894245236822949119207533556023211475675086886576362655482077963068738006344792512322375596048584009019932311905541056609731239399398692533004864169827953190319710485169292491396119886092221673826840038948380242306414260742920186758549696846184080698507667845988352951106029900141256220267710193656950443491876847401919457207845749477811134746111692231243647022486697080635684383889339996520383639953223397737800563880518411162449212542122360707403643186387850426328712834889007475041508408060662099898098513316206965686084351271781947033633604741003538838336320914877798309216400188553272033846873897977780985568113641389626992533543371039439283103924015798217289110468168487194981815831168253697773193459552633887710526865543884545695623149533193859997898563313794938063200616335289837168279730625575489990525860106522552241843612351486504903123982564715254069934578107826601610915305821057541807597011545080302252116851148039627864341418994513124083882045167349808919412389460019842439981425511105003599274558343330537754611488788633885646362300768401589817104775760160879493783413630910981921170384356567273905263054393823700310280091186037017018198479018032875577745966755172845142190682687585318689739886018251517361216550092515022656398136689488068584212560810612318919396063717831235294994985741376171114888570470286018750936420248073515515054548315194048694953836546291661734399838666403336392963778423081362557772070853668026523780505008336032692024430179960560650418718671286469952593017765930310821461932515405671601081164643652619610761432160229934586167792060359256313924410312543921264968901226777680230859170355032651386403171250496029620797514669499674966549989970340266855588921861911879673699368486367737377232964659292700872077937750695886042669293349429014865992527720760093843375844663211379123353691283810943327255054488185666324498216709034256888657855702046627667061266502433099314246414844107079929063809866050041741934657473899091479472605899826241641480142356872417192454557665246494682468440665156984192141796423061488764268294531108149919847715249857903777452425844631602998131879032530501997906103953190385914364672009051049700182002914223687184918598170988427509818228568815938168134244616092570404534763678592665042007585275921443539050396815216930753903076094441607716430877537660811965754802806086882025521718407951183764387437642914629829996591127886056298171729857258934151421149069672701276463154436972530837141948000193020878125709242174596522805921380498510785238409603999600572294208750494528614529657155000433251122890567559402317491764792971774568400916037231612450650406521461268865410563590020815789078787263137839840174637413745898616023694467872341193003812419543999789867805308063184713668984269097766531689529385526735265194619189705069423592950919332919773353707518995886387022285481171293050683690105983908336653883666857983402799326168806105257291276058707835439359861298387313112763409652559471099026093235759193388383559219387258696061316881545520971603355789141246204205326191776275538393759704229771060282487750338296424042984445534820546438055341590295056909015418668015486244518278535154118359646356474104056843962992277515803011669851592943446824407673991145139063298272019054661619493654488185511714155150719690272425558193092419522679818938484517390194162297499688515797827048948666297013454160052528955035836467375612107983586870629514223973002022603773338924032715529452360311542055572839197294761583009487816845638303595304835664516947953261917921497802663519750140824139481148102992972694222906522545100878063250381958468708825028495342667091792022422212139692826752422662626461680591664253888265585500112307066794524094408921131958234480261238608023202525340282906491888214592042437134883756451860835480566256052167009739148868469009216784011904270010593864075478440051486458568262505080872591614090120481746441087567907552454164225401176873527117670570432401789807981825241791583064100181650075396908256699850683145121251789364262727473263739398549607421894496390287758579080685499574858562097575881592625677431858742489597024941461827991379092958995942581052897691472549262408829687366795954629204630810836007250363608290420178827931352055870943244714457087451729863395860704232496540589385036242918616901632830932123735434082570457900031293121169320435870435315201141163340921990220742303281150497861687582001792329549424374662895001365936141997306194429918516015666970966664315330806922210078782817094189566316519056270828711685260107801035092799827902755271785533821474786975068353818593838732528106784485402900782754655507878873092311766476683811442543859034384553314782975204949849726234541636760394854746787249709158807279413985501601798300285110012929292997086920208268264569047882330160532499999022040192947060955903687738965046343372358473536513781304488609278534536760592979412918560869438626743062940308532402495672244678366776690911538248227161148957813116095128763221838093524785914446032848632295204371669892101047773642904006952487726191238049132586488101730640799293687135657624408365865524559069916499353354712446930697609874776025956484146837671764893009121470578259190380737032636820706658044516215800512408173163099063666001500211910933893653301323937506472856095449927198733572956133299345698345009427955429891938329666985375913044238157198555772978410241554175989204879804984432235563602672352384690411423659838116658793807901214169656985261861716503025810714880833217398703966709301652287302245139403344440559418661148638503165180881444177230026753285162715096284299035352377687284000826765993441567899681230540801634603789801410744341393040451534818510402181032887686097396723972357195304118410669294208722024676708420602069838103824357926731913655935232868058355912297695724431255691902545853640168610965435648749518200673618985587278138915639629750529136057713308781792774900052762941606027939143715377487575238725762138977644836942537006999263697915896780613687080998478968141786633879384154529180803827742500120295099126394466419826629949111055214650961237520498132253549749480339815427783726577035224258438793979212510443456860138988157984742531884530891603422010719395160329801125486389708494606162591448044637667438543992507011003628594733161220760818090159531303102925652469935682573679355242999832843497323881745207401615964887709797768534781932705344416586084892198183222964340371296689202684489365006835186685036525697683525988269891253905926685668745466935036245149686486820231224764283602608456304366041027217578869363164893164125721910423520319404204966182393977425980945844653439511251730429016727675307124802706421392189713350794901681695039531981687718673598007680386307994205668096130794883011360695491886825525048328555426061317951907858203958171094193932003967915992694462472062607433964708583607573755968138551950347353333254775133474343100347426434433584649914619580398954782452141651336231041292480817718514468812400628039596692546151218155106170960700097200185907218031341511571201476274473186127133107450003419252903170383093816340730545665207109997874683016273123197653981363477890316627287558116046454214139069371588647102403396718811968600642219036006073233633575965094744750044950151737504736652032186205118021701311809125088776115329781263511332311913706104864196313451894071861422800334829721154175791317919342483496145585947445736784582277428575787828461106466454384619116623758931096960041160548221498219277434881811154801913379104366702063735766494764294994155646631104089920209824595357038428665656168161751071457662342707800893443508548478157274897467543832101176362168893057863751836936109141417669339716847430943593076497501688301596902880060291637750858416012935262880561427563553819809427697762442754728878247371548560791940867885110867618872122190896651583173139438137005255516723934022103897636901027643341834589259756529473513971051534892004603531513309747258260181297917631200141352600553305907707204265205547496601255502201740571464105859038179693720417114033716890673482991901401557682240299130220437256962747588039519327485839098841824804795862086780240220830289556706478024390119196325626077699501471256474401968487702031748165715245871937522493158081300997807717000278018630348436840720576808431402657755031570958991073347698483706563491409053019397974780636166101991911889645983404496867778643824985059788388788643154858205399570914631720925450512534263086199215212408402806278848218177471205052424141446130223400982049463838853839636344054460774159633951740201160843177500826614794615566912697635080509588667219206767859104257672944098624638948950215477010921770164601769983196113621688835327721374081729860839343291158250217328909010401727354129616430688042592903529473783833595318927116337590257551699686802737733769309772479066117657843782657258372202617431144533962013779138009214583401447927488460280829858432262311315526418244157256710993383975868915203449830181703816820367293613845405937407995940476412850534160671215804822308771288662195872253532764545435375810583785748953122069485329427815192313780117564702944562527786026763649364108469062725266110382190481914710555504322339604192345861903191243399995654880810543568374041220678574115958114854822776431567838100907859964527263273896500520157886014851269416019665257027729847627934096590356964390611233662904255763916745703283536512720966754661760910788227439945133999466150241056740289111109038471246764970121395813201393431254847392749762808152809990404901895429741207667716226563496702522304502391336734659537261600116663347606064798672217604326677312489645570079684621239924769447125437066573993443090987197918003157583679348418472590687434783119057169928193622552000751392845834438005928491973633815113375131254016077815244166592782351288937525500841842385068801077960007062233442117575569679827204509636973456403460741424908982784329931412036589666473579323378272006227411651564066901450005529113132285497550759229107806742251319033042204387252097821591769830678924335945292619292116257450593242250411681882551691030719161062878368969466578760868873112176772292909086551433395986445795553953440983781485570638673295505307650208110359697641939343781177133165459925570678629025840464642441066434289977697875372203459778653248930645635056347270823562066004737571764520728240158749294180302262700336673621926604853341396548487117174396616002999536676062831106986282470209461199243064574142905394799428453982551008375783429070814382384326365559160507010780646900116893397515135232760713931340862935973759803791771083621820438389229822269525203835360683814256287416305138262128921984577639171633040235869821511600401944402178595494323689371559844977082787452634127949420285582663024370083357473570969662013089691637899113452634500373145823718466022425423684478120919715503511856844042145041052850889931073889532704007453419954037012173636306182012982210346752550872602820120610048019332550721244421962902129514784338487017614566137892425153541723313432424156170633426709757717048963460930106672532651343914178099922332340159048413278733614662784609622264144346219944708375423433342950413390714238057119917239153110637751672199173403742118951599818664847557466383383448351167071727057219190998730390931812551339138206306102170592966760379963359076912421756159139562582219361893631600010475330486271130523932223067690458333599523598041627291967380653775094175508148812998419165155154612010858476640424894876414338428111757553213784581496842082391229038750520043479022127443710115314113043217679923241787856688113823799887299969468410391328999555787273984831548067443462160888906791349130715841503995083931441696245850033071996244402740340146093453394868921412562442685176072527287455633398221817560522102683801046773770165307095000521532273755993816437249168939627296219893729965949187356266843905448292327987695002129340636896994683664687756888625360275151745718943865282007610815107447240447336407138899905617964516064839246700731502773133638288702495909704068345028563602940040247347715421048000217029466195946040444752171238411980513786345371088622735061307867651936872030291788317796016087036225449998034052267156723524858861496261633589133518220727424344535697127449736923731399887516004260811698937774699075359850071411532289889039022381995343075812343819099996646647708127243743515700276099583541522944089216267746058768074700030049092456957428314901693767284220012255338155267139987293181693398538091990176204854814354929641525417177406982133386893904561965725322582668551025031238694417322344447860078868637776301325913838596993668424779075026541595805474340875192626927029131917568015516205340473924306900684724717078976633870318286660577030984514964110491773648003355169311665311354171274363222761365094371817731425464698132200341824954801551556736585245345146784823132166532119666256085577541966923205659604366425191818918530449441649051608849806236979163408998202872633865012902602022268189876557019695910502199857355742036232838435185642166716474960338047083065651165975770561667569991208394555789958689907364199344801615683689115409905308186363127759341038156108089868727945443203963104264441236790272967279165143326258091400431117765321478283251781775439633560141652911541107635986339146987533297216966399574216232145980753940212555486352138355630646725397949878260838395838275886706349540538751240259102653827701617890462522123224105850896746417522175743767822530861205194807150990473441865691467968805707152261593398274171394958826166350377939330585758443291821615625348082737355110092610509735959280048365313989384882135629294440378062567701353512564515378082832180523265731897362454750080440564546529458935547067446175914810858667501234543527502192127341682420510820372840362663678170204151277386634667536362117329893399637790502800063957693798850863097248906627154932535566693695835955280980130936404017413397982963605937926877491003565044666247025370901034216360372539948908388459670832663737639098386960748222815438436862118488110750005658023383682275276835660505877974925480034269361954350599946267397696370077428685167240327504377704293909692816166147489806905494158831370006171575788589708800967957429942872089518856156715106644401432342290414433435087540356787592135054025519780960029147136701502416627983846935601908024302995628567512160574187491870348794825509283434018359182724159109208780544970763029794342344770271367250503777793096802534866948358300412773587179175254678150438157441450683925802330186476228065981315188716366285109537477855313884601805882925472109719085478755866589134142824249518830265558818191742021654689680415827851271703514477894737412640731182561875299417911092610932363326299517328085577833977081271689623797261766293149700018729698053743236616699946640991649525268295749142639836505674982547906924646652428191175380034958371614199056281178481679314304308657319909480831305633757488800024320285975008291005860751275258305590823141480656137299769453527419832549591867761055502803646570672602209192016907123099883244507139881090686395098484150132545542957977851924640563606455940543972310335557721950144458690824253465164783999580088576059170230403689900175822445114602384377038666931090232655442149285753817450831036473832593555326063440682083608048702172755845675562485568550216939263961656959979662469522253436767127151089782213674357333654483072993574252909341716636855722243587999029387742722794222199132347151045966768330609098665220379488481094683704191083318967598139903861669746735086912854731962283518595170903938894556795333724578476956544229254586158087500054183546264742032732883309535839665002290462377448334201191220084522622466958533362393537354745067932194527043834709007641654209903859201187660137981470741174051233967740670370254081081338407098807878310594627938943838363564357862770606650438438129627603628468211627524813836904577587514496799074048284368355437035475545259673518105107973770620472258147232228199832616620600616126611924805911020158147045213549920302670011427399393681779259434738839085207324833160107614361384069396039850303785747346929816209498115195309241058284315579068440755949467916270417302258834377711209273340390910598034244962739892149473031862740572735110966750877277105286854195580712399177260928991249635265487190410914408989566323712778371130819839552645845759309975437069177186044020593738759197886316202567920382156416496737753216083834830744549429058291693954830492010769027834327243138865218757184381969364555942113125850080406846977539308014753326320662681367636575638720466120924763072274336025764270805841283155596060740403732128625014697102338295167276075981011484009702076167619144029285913077010195937232264587620511082013874238223739864454345661654577386152441019638031131618391657076544910596429965295051460847948037717700833937541486983043756887221717109620920388220387151208088836356316922849578270344561805990054534982283238906579668865302388672289357991387640700923435514580468191651662144515423340812711888042861341593596588306752588951380896698431084958828175944968351471967290279026677000794796197068520495435862031022764715045787535924211779319798684705386358469929505837449534658082449366562892963681193550933319005544044056198682440498279827610398529144027703559225246572526086473526630833669358772955015460142645173018055729578422605649267746061148045608164089067747186530502353233082063561857526489538026936173581548046062518944726485904247768975817150343326545508528370511077529534246226448888566227937606100313268104734982070130442056865967396822685939542864893087010910447138612166172515185579816455020169142919135298343119173803212755836106142465132771734217692117730334451897524661544278478142553896476594225577834786437224222446685463543155153468017668307542676168260407526651989423268744832611484621867455138702402506739070084684169595069419616991549523347703992836544115268033894055703318612373150133320989832584357021961199375634518181275854326519739060106807331363471164329384846078401691542229474402769037254875221035218251943629617964072249111446438811792226647060510174397675704642068703168667609522503615526371793995826534782140174611783156497298350660442497481202870767972936024986233887568059828105721452662081164016364766720614198165761221960654067197133644881228731716738289486199639692648878090831249872209338428344307537815523857286075259185752317183314243773109389807161592426940926265799952833535954773515223974601357127452554169785343405002299133825400212158150245112567207715218313392045479375404142949811320422673714824302801940284552781022098392544212871232548355046355161068845113824952914972241740198672538869471782186746398895769889231127836507105030015245815556192092985658626824096984732182286880114082055013048957336922946665140373082582872321766258055382927682342377334116037005618368153482679396327346016909947429790182503967253207626413151239765828879176038465786966665781248387773827689080707341852012752967185355456177340964845130810689713016694236812296053462856342034333015766257434644824788482478637277177023009961357979554296882872857576071745421578457914468037112917952905084893130808501510035771617810295587085630189579151810869535856240237886797384684718888246047858851169013832254032681574641287394468103107475593908016767006699185590137249031250547037335541873316146368372659489542005566007618268572150348312083024445277876454972234331377309451260762504132561937620786123602934395024398790442967364481841783534115162953074897406086395543390734302133960586336723204301054899254780246043510638151531780397094150862583047971825340255691098298466314290874646501053812223268996858865412534148186329116980299440589382793160696813551980435926402609139725754014845430423285775092985180984850046666365172087054749055897415839706803788925131179837699301049838675104713936651697946693399919644778420716072723003912644301186559916079209140244127414283438393779921972649043507909737762735957468928584173877011066429507474272433662463012467309667268173806485623817992561919054223871960983998070394769174451990496754802396510558469432657568157326525440723250673291361422384753124495163151426751319010320090068591203054599570064895141790155269791522321784352962339534129066501147583365171413578775478084075973879965003793147922270436566954447522939670985247206672004506251013972284577520416536677069519006049471415921536267396578501063493453701458846471082601647850916979535705532229847716656822242542454638221294432279017429921697913328384019631695139404566687886843923102553655984016567087658786192799595200945108792460617369475604698839151202137912199745347978294552636633022972991896234562394318111845467737416755653269209669190648819508381160193134468845077051642503635829472854382974030913942179531737443786946050078301563888084899070706201717254370142215804877994573267824262128625074806013003258136114714230281663282287300907594092037027900993456202789970835278481567892782432369064744768902638789916985345314901016110827210681282788101781235476337952370954719715467682346108543940739325337886758882862284853544617950003771761338542883062754566410160585558740775769063168846777844283665003897559066400112084004502814119973179755417044702908761030868247463231156411441126486053927820276966681771065170867754158295731947576828143271846202276236917862275779375585094493901865859965850088357267042011230305800345866109297288693184352055439432128427727503415869549550438881101549854590088619651250622009719275030932185202306414366285126712449488477595226749680201175926160726491540784074627252848468593596035640137141589886596803356765852678580570986934663171779345053532293571848585496778170285145924525329918107757230236087918163931681248328074970965990687151313704077354619634555040685138045106303528122087867300293487739081015754171119108043032124510193952143168061682256582426308297234222119472033512986782404679656016731636775172023587565365454088409096838313422821518288813872991531563657387015330128874699229679284035121322149443569265453326549123212268259682550918496228016013709220831062418787054676845121308642722204762536319004642681375136747368292842798037923985371451008394924685744478924070074137066640495372605559217126583327142516843786775805510066451298418063661139847807401590447559270794199388458736689425405596238344037124470836227330743906071424989312173735104749509803612051922066392906066426979697653601327776486313568978208202688224695844236286147992452079344019303667016253108839357326035753090027388938039593781026520024268129904029254141946966681166919757481595451740975172285718656408847015191808513761610681848081613802634388145309706430848430835233029991320490131284125229622633465822195278310978613960790202683798433391651357943505609475226018977876740593891987233826512280017418893677404516577513924450965155284761232019616333546139708168075406829168502867820351406870620682193429177651573893730006792729136900369718246990036286168625372886817389087216155754487670373825505218432453715808928886525086167953901425775889938487791534323647166480809593808753463554858358895232290974347430845027289611597555572869753773211506693504185917923950015540673088519865387117074806993711289990607327847017189722663054412426811852254907724358968335896269955032520765164370081363503409817911978239776228107929626144147246603378666389897929472862502304067398069140345156631896300391944817329858047364256662909471065532175483773328296069719267227056735721961183144837915854895164550277117629186763843064400516846441381465272116654886129321587891979796991456371699516326044035683436514552138839030560343509505097409510232085709017439780189256959627410616287883457086710513822401545032944111394780741051079175063498027305187671832700944026653794855578973483664025597518738139428156259486045571173450223342480340656227432957074132597035654276452913398068696134817780630678272825261176187155406148441038879157963375965511784920605167571614462325117013308591351288599120083573029613294114772457256147505906881513389510679231175238523138472683307751635397159608500688414832780973924933334393955551933435963371830169247539348554678328560990821155592909872275446268963993195920613038698889090281492069043598551332257542700136569373439737739730993637147480254569095760062313133786222311609852542377937315703368863407933774593499712025215785087123950797202566923945904415926464705557831294318104669804952813456854966155565066313093751858935623997746536300255605838915701407846325368514571670901366556753083925802035634385049191816312034568410653802379492735695803576974490986333895900266497569508098876029885331157221241312692497274087199724278944797845280430514835840096849320358360291282454576738497903858591456873467382711290492139189870638823018246325616115944350898103360271703227150396294644045608273143383049569823505063418064263258541459871476061152495596782911687189449147635116704383572948381738488615461247063398539034501048918264787156719931630558306171009516742022748313688080061200333372484779495495385884796331210782800296470612946036848006561102600589591890345025097990965260118554634329998506357750591917742104254938996178729086159731741062810566293095402133574481655813804104360246850755969551633328145496223670127303173481381154717857744741227931566647776939964975240781316521060789192857524528718985475331529223358437202917330969562121084092419076204776677731213318283233243827938799285280703379759350045798230557868675403031151773593556354728921324957405077785608994707665346668992446688240916432542176369702843140761936473536427216653010347793554738878254418575729212850277035680653998112580309382050768541899306087794178883538797601925372864199439561469354308911951641534308967667798784607978380001246161596428291092201447580396539614098924106312325318330451660687589663273482217661838414139703281555364770015184677524604152674076980027688027092209317769755854799058345924769949698589400880211967225198599600739211149684645396086417827292953298530553623830568416458340032526421942685951689642751240406842140408486205021948420447941720311871548113778898506213435634871810521320586794837445195433446754797996837161571971357833907986591438990612633724417508910252907608868149895248477501844632383603154807912160130248296064247978952341664931212940213073238433938621573537922952129411546813934816817402263367410486013466477229738744561823507481292959366100443211775137611881724405141579069854963054311425096803705978529062877563037101889417228713506613888552433633303293635902955935443592784868228138076019317227171314607014122098281638189247776756006250539927947714684675854111531682790233669657719169276613262649082256879491160115600123061339544819353677304115693114172312739588531957528941045976920377512412678592112038809787645976105620937219315922128073211822613267146450921885601366213490087633037857323086975027697262693098266781047157398563423240708099330698523019891969603859856799985306175879230523479831053615101261595040635489120862300339815815825264714735593493891729015172744787946978543570044791659055180239445028127887217035012459921910121211164096163836859656378223085467551515909339671101349606175182281505836410294262689568805053299729412560850698025644934431506119999176466903110064981280444063442097015742730870212182690546930957631909497201009774263329953731575520946390335689928897172703764766765347546049188600707993439040862731637252309295576712126161517292827290526823133936075618366930438566407052432170509446088835357246907439704821242382286132363453161686605927336067208176944341703329369144789923456933580352572303724279195640462860460960266486192820628304898907045908814648821244955022030170455608249730090606531060138258605683806676482680539341776217249646949318198717377842886084260025838164466557991724994981808673856747845340668643032120761479080962809693299934590218337024430170139246511186764326608601197854347065821394632360743655950616430183882971330999838595258464874745562268174854152008550221172090327854342029982906767734198954641642510352423685978423865660336331659620259226737204158118970172984091431934825108739746324002845734136760203096651146351200903077898299495543308196403950486609675264925775765381329804487651654906809524562655510920407904424386576556416724070791961697959649122176182833987619432543746545164269266789751558197105447655033415549785812384558033543093160877611170472874572793422207511762457958668936525212261433763542504034838661431864795856318902157163570815352825944178757418726451947170912189220689962504674942530557463047527851098095178909395532470230788472335546578384319390085132806028491140115818940441883525816787215941931473395539342213641411964487496458898975997694087265240686347080219761647997982460275754720224145657699029762303488148516048477722941695237949854211647398112115003805151054213604190311337489117194758052610062737809871541166114017686416543713567880837120724366373762143443531414154533686729702685647112661358927128821506011008630463132370028725634419077361394843997295584769558060901532627291073214091643607454146500143886847198749731954750912129627904463773019167575647778056973974949139744972049781349723337674141439293907514400518043431827136487142234199442900099817330774986685048280011684956564795224128654398364328145483911256502561263686913676463184145326290754195621198157557012059572426053147378438535973860964154630658196820324205528785743777786911463688605738545848719708882147070236521852307078526710385084552197096904614813256291567494202081534545459234211678771623897256939944114841140638439888965458494345120806799153587146115747885899473641976572970790694949111384893370881309053237092909431436348681723306256031030725189026835523144018819849000388792837075408903695487483366115527920001655337962085124041044505870360332372814732171336089299803731110723294642308917606583280255990391606701850168183813606886680317264625116405826458052936949142926529673672856258647235420884159951968453080885551633922714769414256402768844558160939589352845044131704310419420165257452222458176392876274533761253112563161606017930441809290035025725159158765382001272967870149970464198975713513750335727700435003073790269975869070682627238730613661572421921050221898333835810400783594851584255461701039879675582978877276477968748935797691107853716610961382053016903860262538357173598883066386978041534674153180780404711232524825662324982269291769567896464308939539574499628800112661990018205337814648224136694450037904554933946291598918767725366797645379913048442749069543106884325020300580137834258550150441621806471672888891135784536995793591091399735220392104784356934410841154697231019748742421975845179412941677256666781355027330923357342919496860524009839222167359996597899300547977375224458361056373036552837530224602736909264698782283102912606158499965529101440913380488320511675966341828568692702976826425594957343950908095243442113351958036001120818810251192273822195179508497522885486452001927352821575191996647418959918230498859055908668158454144253647902866575397302635646691625786802595991631064721639952586278814752168039346867203144155281565752715356291460032911806152372444027367770539669648729581062380176324215514350518723508648341007275612537777470884372593267768516461427314900874675221150687847157616966575481411702647742636885552348764154343602637136536206857335667554889736749731408183946266974717946222665890848246698287097278875240344931222124318053549331587586040982021428966352353377709621750871217039712223130510421891951288254563855070005201194757151142726672961172977896417542306854968413510372243025251315224708604223267230840607186184131681286915931290701057719315294132014647848189424887387065080590567951417676900931537801212041589737437460293936542867754999245101603200512754780437929412144952763303575245418851554248713813925416868470134304865796129562184313065845452838318859657819220275958369864325580118637993710144070799148133781129074580014618834615596138704212131385209582583947770310188565809280426728688669472586627419957644501485985450462145054109618265773132765953800975629488716775475458487070927279926824069740138362431514695097262947678431323442544571668154230408320904384248316012253338713868539984568809355700439690997022845769181893976292778151480805705449186357825094458907803218460337095644798199193219229408472890081555396358129144661609320578190281619840261888724201811395180476533565329975289510779719127557569600866889667826628643208007519723206331962432201140047875210741769536837756097889890381655545971753829389342495288222155300270910720485975242735081027870981299728686242338520570133488188083848088781690817481078882409303386620599166183793376437235016260241149113197029498138317925256449530213484263367811513269002858583006271187060061901692745572321967046670131696594923008061278342780759767738047930293308365840003796471486019439201932611176767072967572709469774554301958485685490605652424542116738200444410346408677548513964470951416014061511905834135324042913324400770757547453532451824173086806801271830948983462763489998035483450987251030384594623334230527836629951303547190672833264232008950476180833125132243945002449736844510928921894388168948585285323034372428872225006993577154904898714062782491212979733957065657642456512420680125806684000568869329012251702679584280555111226067346402114938601142203807246478777340020076716629955034509653290773923660734122466688115799980331335906952790919269913572571052651938265661851787425009867794796019473543931111704466643752883170449616992208016130171994853407687201896774192447426143762569805327470122923301554364081377998033115370644981779124376086767619794133838384527324556782177328650263919665541320425515470201149147613921587056123480628667047983620275652606368464164880816263240230591722957608957195768317709721305872220816895090951323153212028081446013832994836893583208848675296327789805857429347638101701749981314530220648183320846194636268607594360795169769637760591812781753457792752547259200434287821898233814661673756119556986429464810362915601668685890271017463380201304380329562139478371398890630284927752361425913456440463553196186947853751322914983517639293521660519603943850175277580125988607988691616275157368192973741176722444849842396512412287901792283117144965020728808688337009920006668289432953103555415457582760746966368883674980141459562388678118785450882321796968650053328633042161774200584472742839553546677431527649216163554667606299213296784103922482780027236576572486679234557829982271590726114776906412116102124219588571814652236107520549744864508301514558313344275268112645350023159002529102449962639624702289211640666297619096601686240986994912765456265957089970919570982749209722585558384608969000820317267124350167889742716747923785726329673029025947988739796563033991080166408149767393654088741762481374035328339250124901465789956986390134089662309962761751478543927883282835339361666118416966792651068043151885380065101273999214535618117622852785720568482624023944629800050309974420886453815847716659251141272705784637694059816824311168230634465975341333198282255120077348767907178456582042708239706757168419041783679065186183726562928061155445350987225988163043228450974017407157144416902856496525388707004700502287744424500500164166452170781839515670418722377377325089004454452608739807597722254740014842449447023439374773102806106564534547034102965547012226611972672985991174140658658065680142521237433452302925959922627826612657572106838643218891862508512987350849376861634963632164506038131600600819028926026740724727715234370927857977508297835153403252239001779124853424194318654788532234872197046728767317607752016203944773492410475040116318486140554225247795180049683032535134362602642018649797329746591023535265636959671577431035700977073947665057047693111562167514465985871864754236939795766474030154414695466521397451503734968428403491708727790475154469419909309678642547784407896922724450911687708339272734159523912636060159931379913117231066820889574275038387310869968738914707020158494715174721186371417502112247335471714450475532396674872421927102745285266284594568987333888199083920269182662947219664214359137470262656423680289561166537641161741385548336642109477940157434629705167604676400483879314888758704925898669116714011357417913521027374366026642638374739133265779392539058516919024086882699805789545178359218397248926602508741837900395043007336961607892091832507474023103659137418446294462841591105904836415707374454443030839472337623949930801530113936734897820360523160046906681662975539318549864216148608745336851306675357775695139758815655907364805258496810511447772119438085710051809490755043425070864454477104455797288841799932525389293064429154147581494250998021833861459976734872217507455406639608282900210033431478834679656059315942088273876534282613639500804794414482277308589925544307777875304552313378944740094792652071591099293594522492880201250275975354567552074859267862193349893551728275354460681646292126505949631717084314491076164833351547870396572368090117630231339923186076666058880268041155003762202772724303298652204885441477519722987405467186552418160972177675937075176161399249431645707327531740888471045787511723201820748035108781808468273502377772628491061812931140630399427987339107147992186504192286663929023223596472817890306957028899526838130904312333481652788787545999981662525873634879873962331481964280198831415967780347116227131944111438949910034508210483069797905743301223891970554408316624553453402307560568294524481150845294460543924734495333451812469813462884766182755968393845551520387806877544181233768325206115891942476216929691040686892350293487000664008298758047658530936962561678010333148439838505529858407356914004963387729988280230344414066618699595429830667371139921542298256985945974533911450125170983054588101903556263418622197376639487095884259705753292681896807796996480298516571432942275850844522998845791407472784763833372640832370448611723463834322464064573036263513782696298784866713908439758274396929313610398571646611773727049724862244082660174006743432475000306106747018607015597020204301246447737481941144423014012265428533496404587444943128847047045984717775420609744093150947710190959408031162298237552423708813748556075425130500350134044182473500513554880705822717351991065080869224593029919523051836300080328566866358379680852037484949209122901516876458011443986677178697830969283666692740051008257035642075462669171558543067611283002798729543716466411595395159593052726010090047087049887646590397992971636004326048873969607870407223257805967776859156848173005321778919351279915994848319047546137008821254817002485679279026308659879603048068063287971912596952994263241378678686130052302929994692477978398727016484208633983217537282078338986439209288686123390034556527101861630278442793400600421759941770164146567742470357429800974545539101689142663114831531247902340936621256675648688461522982975990543031053806913279658269666222292182674867110799550706426560469789011707179461890176736470626520788455237457507403601456624005429998361419843811441789351073287195306465936890154030524683222476583315400821998050216004541220844720505047105263705169295262259405274771650468053168567643062484480784577250510720358314242140530951453216174045938301903059723043945265360740210027893971106028459257375491244923193268730787503933701747599420631107810129711585180465467176876238092727050223925596402054241195805661484376250635118364742817386770768847813285944573673609338539279276008489282533135394714367480642403449279469256099415751349792635386325745607433333851249281463596448045670797860316867402089093731164368955009044641643249970813764332713722157264452211318852103966708326773972829715447633795824247584630181811777900448519787161195007075062947526909349735617438355084978065814022826166538441769126226940431367318845964390044094115895808280471008104190448463518620878337891833978685589625996145927842033155178022174534186648318315931862080306336751738998421479798213778508714422593045318596351870650586483637359175699283350215121542449876358981292485138369825202077440859385710729969528802604064493294427357843530426594715412795996706461836730333796720874582262089880668016405398917675175920692861722951957567368590942284452098230851887182255623704079570756953292067654317151610348329369146050219729417622522030358385814368996843663807512736036649797146847175992322153930819761938159375001784690737968463780652433073382863841916102062445900460607038352925615604767381387318576220483251904565425625701680100247102859985275313325868572340516337931683500461112055566044664744522615173941591243153455110128972317846774361097948328203660316783628357215491750865827931268254774153515859377103279882528297312816669445815684009313837912108484313423946299164970452967664154088067881853389509501128630722961666338005866340300147877779797241198901910707484179705122112018294704722184079487490411212621890998867537411648435459075650516944051442974979093073262392488499513607672388590917929772875080374930891541084393273513745263804387797984972334972843833480268549626275565063472874805173156191784798445095249415857001135019252706094572861235555011379438931658371712497079408256983245454763698795323681653089314748218994121461616493946083636915355128368547114695435237227961688780334809655200660463910450180840320741703632048142979383130610750350635209699315267795384325492099310759587494071231700670395195981248247539312242091067720976198876482191137988541165399506655138022204430167897739398205577386246675369199037805549425158575388546498453331868547955631423177890869007814223667538961868168386301608773292011121673630762339850049885191029614410186995645128231782200208204153341575784246613932660875508552671392480627367713317457727874617766142957788034035751930459001944456281746455337803514814731931960156599867956864545574088610980397462384798035893739804944982373345160230676250367626504656599653806906167235323393307472086396062961050422300134403904160731387207957371682334170612340432174239697338234363885982564467843565132648017907104488764011400724407902575913356803175571148467194965207048324028955430951432066218788325745323879217709538464747276575822575256362457963668044289063808574793439992713305317543437328025492553659940018253439864641303296809801937814938094294567507030803369699717946288424517775808223243143366071364012898414200136027930578971132125676107736166246042806985083311394901692149744836858309057847382425976264291235094615957000515180327091882101600323614216975571835018244680321176788557056451243147122119986819130645942103518282253592247896799925254489093629479778106819585219152361928924398686383158536493459390059707356402087400682432889926410393938272858424168295939594426180260850575274842124360915806865745042577213528644456874140322341049647562156379603688130011663593277311408337283510560615264476647614140225223337261223078515528087982305404290162875607524936199148204766428932188980551994139446464377445400344822912027354661215875262476707870304578722505794677893015839315870880937556294218274743362319895786469509531121910930382890384524651024028603917011253494803913045560176937734396924770846757245409469532827147261179178053146884992649972365065492870226299472900095759277310968521627603433361864348575650529998811783194666801843099632613668881698422812375677627797591771181180981395035559703901139846793835339381828088444057997505977211348385291745420765525930821289748520629852820170878140999933736181047864657572390584171120480860446318059165814602805357885149765084465543337986486187385341295948257918811853225548702319483206437571733892562143505898694516440911655680600263389382957423795418954365740681227614497437463042465079735689764562620405676671891704724052770199141427314658796430888706816718596434127697439651133839648618664771797555369791440870157616882314034060359501498394490533339639306411889761160786300682713719262481723744689807698743534559121928711975802058916305541663100318277019907407734276336239248626202051694346143863211518420644407414685770676081544728785889497029448921286189536508607536044795463415242546849635590473880320173886617798543246442375607453515327506096132677627040018067758248407449261456637166673501993099610728958263021078278994438887879730707525408795367019737154876848254935726891279871682016161700937989704097055899130104053163228224247595775929997869272707075856983637576998818563210566798797964363496482365076368695655025035295586713122636517207495654176482875410301655219641282378990086215437986134595491252857633601208324552855118090795589266294686205280444590058523434497556226004182860685012787309023848088248084354771901739644432654302534776504556323347485121304385238050435941623935326831345207494487607260710622524869777967825356620656638978027753330394012382338814878308706582937509932439400489503589462825481148759725785766056003763212026428968876845957301668057650104680517034925715513018366716617607786797801221833061658122876124790852234232627787675914550158986089010646052511704597986344010305308239938844865622518247442487209815771861780917799716198842769253705870196999509165832754242594366165379668628217877258206120041842408278769513551324929845405379013502929324555922187787990895897740103819945156664514694650371854847545497552506461632982043604253623059072211409391636173500078152031791719693179830476721425999977366841027322826507999620074709034705794707306850749726648565012323916077520961911200507115849036293916682656542293600606002425895173175006364227011873022475718911028878226695918554063093140226289101226364085516735980630265691463152492573846463296856300487042905303823546569756965836642837284759863985751050397118226098345125283271979035709194694354397148522164573402963397132698335170003988809615831289794027418897610876794259082035124579393155807966300943335649301311055410553868862429456321984484082022490378385335217395595318344914700418076033338194599207250407944107341101894565924687577890167752466308413899112316762489332432523007509941039783913941439679254050523495990495640546285510602962002552413532168754597078253972619562810017079528634311862845840661124525839722672782255727045354754379707326965897538951163222182268270934697978109540256471386407923668375362061158810448932191562967852789022141882491808528117433786131543455435226231984857960827921060394373208518143370895790098689309758825708521028318739874140497316211081523840482748629400251138482884669070055971008511721968044796029488106684606899401626862749652779358416246816191684059107641848397656585635297890134905113057219452582908891926829464807698800492220928887959752485192854803855111587105898632328364918609086450445918055753337492711641151296216751214409469608071679532620728914558486146484927099257782651626510787245328858022974550291448977487145087541696611498437030508210229288228315029738325925686885721215898370168470810288656793660858541495616720525159677194983162252690392609399084594553789803894105166792397491604600398589461819364613545636954219631754804963160532551656024792165341056514330267209666959723069422753025950326451323629555382520389079851139521868886086178319253416920431387136057054440661275748168989807199682805428570925845063450691321605819443878153981436807877866332045164183113143978195301523600585802726983756264596052311142094220645195650373966433861072087330326472713975410786349874289988670958898375578528459431963645967471678554034881208947186674026403293229819243266998298410172197973716200148131188935088609283884750116314857876132961272335656421888557599662734645328626261383863675834495883053652094194655207268436117959238293911902088356216407293898821631181854754486629034527719172662859291649094080672413429764723405964073351536104727405969282694210829750907459409760911036246122048627442396173485495083092608390888054646433826659202401682960736732078808548711458353150570102636702391089102925403874399944012763645884433992926352731812722466957222740972468153098583597192709958536936782200398499982656949614518179247730802116060507927046048856121146740207449418995401767401884220871918390423223626908217076296520070264570200351357239327720902430965318027270572315516575179321574005653919571246488004852059383780997154803712345118484081200381122882294808856449316721698778264714662811351984964486981366926113520610556784815554491196892155738910502818703585360186710521790942350600655206974374622752674537213796241659855811857560359936357656248884421657669221666466915586097282831451703035361127487422695495015060967142613225168522008559340159549024624155098216250825601039827512794640672048425932889323003462018994793526049167213779297422618755329442158631193777087518158314332718346806538681952352487160632282651821645208487913361365679168916344162898027572037424689295475480253317686329188372707563307865447722392369826504769242247849621012315215282837656336758644229130147261953695555487167054796040522633959331949150442763904089062929117741532119320449260982325664400859154529207532688716581907307699270007839340287703184845510049768113458845774767623886622632066840995072075626370023708056431418476834173062431022742204748866854178185236974300075648791829717438916778888738264020250027291519470490535149496451801620085010275252239945256756920227583231021541050241793004368075657787129064897522809940414390568012409836521806015701013227335861992068729403216811501717527819212716847706126775814159040813665253938245738382869101763430547470130872494310887097175456938884117145758761616233845691807626464639283885426662556724712622518357568974501402932272258810977065489341003857966065669191918780950285448333130239672655742905297860033961728881684221253982113960109083871873201777036574771387681702202663187569811458255527183445626006519328656367376469095164321071108796009180588609678498280950307868342907099887843952768093394366398388465563611190495597751069247068851861336769535323348313833543857941503206700826965159415252767648377411470520691596367226612909726367623598865275888265560184835422736189626891712437520504999827687454393854134863951496192088845446540775838566023391370260808449399610724166257572748448897436553915931907817762332378162087213080004273044233765711636397568218209079168465100764550606156290221746542826709536172131600118126807066146231319219528506176975924982114965470170897979726829465192363429001241105285256388615780141305452807915903863965109583189258410200310014320701154302838373287786686046348249083683591903044183809850409305805014879744891149356073639788920707415632105491547976751625204037943776564031047555270557673621730745377449823418402066582964269365070386915661014771244757168010120733631754074017313919812160815292429916859446545359355232510687031616577239727073781981604881449737564110668416752363295798157296434687341634719578958765785894047679796108213350836260680050472012804023346285231246691185205624719894528221390661834619620813435690076870919934185192117739462281867355913436207060693952103452819699082779491633454027050536708789678635174426089015835499556517589420243327025435828375904032828610942646585079424521151907443641724527839194059360633941263817423981747679311445585281347956901872015604677816269740213042255568230799018702415563554123463872776152696574438849227114673469558190108540197169582741438235147580834753195309519956409883712852330345308919194190849453819071400402248678331550066578885094140065273690872737992243021401113386043754759496516176720094527699695169274637132864608134547777213686486607097273977849972864343658442249077482847290567466033898158010431509049395683636127248013324306036632712983625215882014934534214512518509694146924237559602163456191403621412875341891218811316581591286734501328834333610465342255452254715636955032572094795855050183798902471139449316614497860552982232108544244676655784770305487752455161237431479578410322778224657716487261357124550194503308254384844918893862572463008468210503262268812404870445493828856658937994053494155687978430000306805151679660204513757348472231177341052011171504714278707341842888981595400257261706820970050198366530460363247268350034723823579488336797469609694017398165130188420495729577521686769372589974797852586653473995681322537851124998219617023708655042781697679865833375239400034967443582900642488572596148173736029865810221385280310071769828070163918535813707305914748333165208146987672370748296208108055118046076083625708412043590003530211813236552477920599497860366692400427562074071919990765752390440705876762903336460851185307558111208578104751999010198980753450733598176017162225550197052326725112603643165379496988433875753374110715505477549025247596562421314826403400805712854311741588091859454363202221099348395379092921604050645084685139175909767837420861957106859710007699502942780974310926946031815702109414187405798200129060393467313437625866132442402564701288140168672509411274102501899663609641024342867448896770673349500691471970031963656787174669114679899367620924714051736953971497491128815238961617687463645468355289924876235251812462358090891811102891255533217982714402572933025078934456697401102227591299087053919082777771631373264939996834727954508829664301943331068777414857788660148042174559700508352984680412223051391282497913320640777231489520179091769087855596382762634775458805866341746491119937354161098674194337102804745395659856914989493832695756988962443873898059824427596525047419092933462628807221585698817347691269292593787891826102655120450786800565260646633317472730442034593538733397738847941682644004631949897013417636764571027168397465143848728217923219870396980850839347620285153308969814421473266613311313435422648270201034329539032379895781918348649189160044758235702883902009587302295569418938618890979859718735975166917600850552559943071141858870072688562695228047745420896173987989898718482208370234046163914780909936679122121467113462343269875995971784844430750792350936526271690157649131849635278495118804961404448540064645211444721973272949443264224279819648397271494208567360991860192370995132941213627099591824928768018339854908730791633323404402950089711762643175119407408907345527807048303284912545143857282929175846701765996838605172447420392795484933780478363454787192129700279254121921695931321157607798720408204325633718890839660182184785236847996527906305330323810462123445756954491132637238604952080330905623487371766664834104641046628966059318010089646076654089559535788867659856589832533693926100553878936013541897961278501323407101401022432129166898056950453704901462340292527599363424919140993861537634637845772783163053472047261407603848092254455150693011100194772260388385402542634315542812519271947487435843092275407037391647309106284820800433771922939545222612505907408440009598886527782086924903853430067723040050312477631063312280046934122696930722007141094842005952608048777638308565190941241952165900842855321138272191344652813388065031090561614535812127734833947974683371872447342605420302039826892274643259965475212962609459444074172692356585210891007344493931965180294102893635584210927640995508167929780400548662963488648136228781264047539645810674401521081231990721909673575249272186132928916654581163934147511461005299199099210844876284190882981368068053005962137095165162103927316810255402798635663599434123237149623456751411274410002951547340354076931740511343304053224840710873122565086197448835410907872552135814412465612846824995893002456540063403080940811751924987426829728758209922673524332192489203311226648470841088375596304039411216606872734489836763923293232879429306054273156111164653852152322717987231390689102676713796919941039897888269038387993338522715680809069542825649100227374553607040908877839196390562705942219575405595766165652795285852512203588491996758107779368494933451031920950506138069635893647433116333368740024607154816452735129373428263738242666473451913899779942840804661981032374771167099520559364150950549794089738035163126036263374252546044734859400337430648285050660798157962150898647852213568704975689346446193998292735612884129992644990774081198243442793191097035146885099895528143001478223901335626337134076069484846441573464099785176061111417189857196904936896935166595041309044963689114309738832063594322525393385644922245798144742589029667771584264330019345112146646679114453890197502819886447455604679575574702668970466570380162289142242680865984161114766528033559543737550534822951949630587146897924352186782209555754389540941298134230400455365291450737339968092181923517023341523669087415532350447374736968363735339206975510552247217728010308982598939712514203306725131404693518790873606618861408499979423833823259015113997611523690392264269889024091682626046598505722767700294764019415340036844216864046027033618369323671938318525209510006498623439826867570641412925895569101053357518686581187897350720751803859055102263068676436555004481004594521017469033235973097065898637159788530987502034222373563505269424887330573520213360063154733197385361249521675604689197096180937931275662109217096093071147829200536276862135301941311835782619340696647445272516176321174405378091574632114060454935792291005497611657087052018046038502953848830738691194908569189926397206900280156474479104625845096926634825078732964265861194651576084781126327906393751223830738226688486453310662294932279390012938537187004193506879979343557340063381914558922535605458705544385522040519357800448516771635606403023638359411326584163569448632191225542436191984068885927161103638228953654070220776045091532993023988700338131753924015053867962938874067945783996247746095385081863870621509811260719097565576731792421182148350749378955591738320459126964866053624109425340932967341924673399403569552591622604277622285195471384237978614350823529818493930072434555744899769113136399886163587936776903203693112251172526120411740906623391729758139190878711724518392619592510335068760062808772830778452449780559552933424160842959864286294288867198405918184197357534780339128322707764957443289522787247529789464154492804006238776719338913561848003977951272098826197578934672706404708594889306622947653598572699858247963660294286143272800600103309160669391792735134601739411169655697656478347438592295403088376687185057263168808091048430873631957771176140530862282382134136185492233450120425056918545584707682967083866661363879175545033694894191924951951463785866475729233595923821316580948778014434104821708519419183633793382927900478733450450127970582517924023732847661652040144919728277715895220768601328041459004477980363154786659374103731402445754793794790259907640929454073860117559848851337089438253953135153905595694554048477185381283757531215300262274471325870313571442445701480908816410819819523207299602822340852063732501931861363810209105081062434257158889898922389322813774838429989982683751540844660394678416343528547400501081162439108991152718506736908426587943690544837439467672056859328225835479460459358465084055923901765844403588294503836175646810508036936334481041022795230114206738943861718846949507552651224952534424235002252804605072123054622091924823901973718017821456321327525650738872893336117905337991128703457133378443366097625700985226818036228769124958280404617678294147417708722820493977213760812026295565261132347920487136101918557798464653554964095027010950731060790706099196310696989907856664781698602415911697423128571276686711598497407842965263519676252713270776416002832417277787872425584613636482478067594043240690449557331782943713084709291054335195977473511302594621464197502656296170321522703697614270290638732177272296667332802250160616341444631256478480773467196491992261026739275765737248594704507332694055660795304564830622241497382730564641187157663581121392721565174108599503048543230262485780094882946632796941971735797468353706964385529381418748545594189760982665481020831787369662711363314818895497273580035334805282244303343311007905323797092897871102614125901908594198670946972052921913257485977841896420705337494828730824222494008403252957655243684601057676431585230669994617024244373749018950142391460256289477267036864798809856652880298326481923374897815931763270674163693494371840230113488867183403585511432951540256843356434717191284296723083047897823721270956274360436610978197137194603822119940644795675430322247570867298733196147729114124800565722857809133132702386207186012977685437647330639293891455471528811284329179351375506853695346718956335876168853548048074450280387221995101016720554109003395721975709114416461529563209457309382403750770459204196752587103411504195487399817056744128122366475616468718511739161019630984399100254431897189315612064534026955722638283227690525493881440352475430920493821110640809081686157927636108262812026066395921573589028631904641061380094976614869326928128785321329486540419851422350713940629271431464300775335974010128809276399224509242999818326661392761772632450176797897766778901607321949707505493460459874474946234074802697749939011144961373089480771426202187433679464791156034430611197638686349822313101385925007975406818795076412800990625560234029259788309470803188256492681555684915839117363733395563928345553769746687755711909179050912924647099460389318188968029528281726062055179548863357548074706192498966709423741681147549716062547692673155381377071501016913437917582561385538088076878566410081661169823215536665849027634297487679203870449385368195837243648292538430066624566146835556985460059327533205095674853797518334588466392463371639277041417894039088583697458350417139824316028015219642913054979604550894686208224677890667702204485836891566088479389360356161052997994716394587869350827296084754725053953259743169377919801263499378585930947424515429049711548955761983064166480327142329056952531758382847831470174736700705582786485319856053533057653294748508562524409298248309048972522266520762865352249011277226029458294985505715247905265334185640929558992780142683869219188287529282873825782177211488737001403173801895164903073789196149989771989255611191782205817350011183680760665316234118519376879078178268487059196489614960196060813968603505003122433850870045671751986656218283790970263953136418543071189402068813264483563141956234644120171584249880088151311042691445683282877873167779282109696031305176823641683995487845701363060179665653265495309080556834528839734919586365153370409631606924374445655752890143336889217366436924891878894790585949150295011566294423518022826916936006054031101899568771628313577766301657551042207965082739864407071292052682012522834050320693319132680656017551977664957456666762666811696628913797502218938848847577706066261531001184425023643818104989677021021588877165351318122719436129496119851009857684896731004566800031867522826066202002222185754170527398258581065272599089431582302578971814024243184436513104250291924971421983133612173152137210455269123151991481652723318595644746944245689881824381282322861336447617572405531252914362538137603314493930637901445770807347870886001869738357508961053544062779137295333899868626121707449294331838431662501780499833416402168405956238151757859279350529809662462821102256193092016158508849857616667458649352499674363393264208480151743450865056820976172028562808551482519892485692922146604287286329411160342765157661458950337781665117790036739518165944710939347701202598686437674276430689523005581535636247171380208393954266475729778156228204970109309778392310361429858275506165021789333667815169230012182134635738248036307313177441027108208902196918095658222313315805456076093734448309663511845754790663056686865195013195936563634783761434087104649610222082200240962220972568695025030858365614756217345653520425413121584504236873182311099031664226038525639123889601530018184101906862040504635436704749576528711469542723734537567942779387182605503852089746037158115811151265347805953297552977036076256269592195283550483542153246860116844983857279755434181483970734326128790183014581581279467207639721200517730967211884176606129848361167835335892889521774667699176515078708291165506522712339097609893745398800282863860239377012271073461999516193033348659149883056960716046870120341765895521906458273595533180073441848678855276471987657892763967519617262795722809918923486424946951217707783373988622639551334862283288418135945670698951082379567087202854539813325369427807766097797673946987221788254551610851712247467818193114447221208234289917689222645030052801001331467813692458735414292829311735694733314303392879520381553435801337688685104811814284917700573842711456113143714479496342751757801214391417350555072251389383154628940221188730793415287806339346563088181024146923355145641549759926564378476885927529922419491082665020131458502564661436759853490274384140638435166946505802923614837141217861265558215293614950276485881182244926464954565688939822893625354844066684202905098995546620255713005993883218743132396266267027222509561056932767782012322478575789512855162669441665353893348638769811496505852397391675276757519339048408737738453061840761711269326063410291562609523466790755826250956830801918295763744499806086448661440675180073431698122167400226068621084464805081745703074120333268959027370438766367220729594111837056005271784631897604410762618014357655292081827177507937573221395076505795577275267970819332389247137360205672203710596062974828104443535894922118597815521414889233716733430729510806604227016777638524009972205632056202179071211445052224237670987355512957035911159495633116233546354892461479873886949544117151417342104592246302046801699406242933063281697868190810487025573466866856345562920144775614860681606340488578031831495211158216720705310779402563734405153820413220590455969656950148120833320912985222631344520501983501785929434286686553567601548007770054568005588497431562238642951024027061345767336976341284753257653405676273956281981861090575744298501396559344944921623594713496388076740938659060004071517297261759750969176256175536055499670851095475259342242154919002331830507235069711306980918669430379197673840859622810587137328669821820252114410136753528299770593544630901234540397737068838067481776027501016625449632407202981129048397293555658556982526791861420833482536664342898123302231258047911167574659057146109216500469420800636506935890526428603193783603645307860868158852596817677329146517367750497107464231311738110104747444815574328270904910817176819169794994429385402418111515196956378663818438123025915656952457709788206556072469452837488184545200958727132083223024407449274106379135924867438741799237170223107035053225707195101514272525762678440936514383459505109771822263469406350364459604511926130563442452596010342839728394769502253723892713340782343447206339354686568306659241768480430719362016143904298737861070594510078932379993316559133075711808871454248023250390682343279190281534528752435768890002872754776468426262899208319335708755970694475532133026332322599478715359494760569537549816240857879461802025076453005187145204992459527136011099234846692381006399741963998633827875148004719225906450429116478492701855786218778102099171812063939041881446593152181973015096001344954383108160635260942562469456191474025653523890093917019237336494016310678749328910189495465665233024948775228087112574533950771887416721792342298478471836028525895055624244422649926453081228096671064837872637163550247076799995621982219848851245871087789772737337290720239029407844102185372498973623361006565776918111559403617916201449385447859720792786655904133020349217799477918641165209652700278696664202688326454456443690575936583957650392898514918265966762285833026066635232375904961895854525166440275386911741406443515627470980207685087142130779477767965273632059226726805663831067490578643518892743964651224005266629976921954835322256136243167532535038936816695733254778766859248749329924119578703899769184798332099648899650552983407292448814523949893096859791379611287011368536119674502389467515895627887393953448146513584888186488220300761571182673487893516201022722026715572595955277748204753077423691341499725383183311602142790565958780267503048948750200212112230336305047111534109741282710742977065806542985135788983024770254840270104524007349988324145820289514126984982401507203011010409397541375650116288810125755672132029577364783818896610124360797430355429916051460238714935441115863414754141448227866642288314955856533607496526680417781866894668779638572926362153284159669778561243081639855518493542153165061166372594908287738936492030519574808979962028501005788819883486306319389027207135234269084262150506851331505495766257021924091061586666694531114435689594715126178713463413791612850416818819518250458482042575025084630913444236697699636168554726001420648022696871553432708676369024970870739136319631835967056464030079050889458774297310755627506909586205194880277755663050832525285489960780229575602603995312700706255363087715589808182306187004114237541973435717291566893233534748742343303218821865606270955954224160470389318642182288433189196130597631959817997768511641286115103229872125847910433217268110455205816385592850899278997782248541051544093757696703448592786383039083893012995186424332990260142502998437623606629923877000483340339760362105613542713480625553869745220796252841619337981680439501419207394841301154877699298007229605555044758513960577700512135391615543212933785980344306601195684304757062980812086821782905206782235467379613915321442624642424069787211074938492004124439491767467521024950382126833049660114575064016724473306435719477620234921259594589741970501453788958381149357127190707249842122843397573894323023776363227414699096497532862417711102015191603951491863007636208501530381958115786711388840751285197778324978969320859236495884671923054858965274207372446352785282871637088895842886903397997578025023580950341569850839277128723317274852401217339989920107631159886896448561600547660766441148458096335376304999219836728389021872203432743122213036836453968053184342618540650519137530402413198420904867150672827603403657890239292368509404983140224988267935737903838689652667625599742280143326384659663040142392225900585362693836342806860677178036036421497188584462894096363990035577341690821197597755622088347451976895449081116482168462857583683484359781695861581429909211662472030988257040207156523452876738303492482495704171010440191993096471399663416368103631572841302476661445495933518185532781231500350885423186499688283852346847244090947755539042470553569005746848694338229611169246618683603517759884258326509352418125369083156012096818487442483716020845006561917647002835388061021274242310422591517102847827917684280835294107951603173714818864483502970637121217040229023850447816502196599353495772671811480556388708536758373612922260851222500569234747602392479336613697141993781618784248773987439282692678621223135003917078818039102076323510781998378733541721346766464161460337382761320120125048742655906967779059494734231767749835144240029003110127623474886801677483140935748582115896012841217197401816801988412535127845000165505892587963938309391132036190845420788371091576131167768302663771216745685699329315641020691239204148004226824131023586539807234660050615706436639281266556448764652656066153335692032816723822959056579079320822991998555104132822313069492125120333656504103756689655537164493573143119787316943896360571515037244519371663733445053644374006409157726838207763830456577539441921299165038402090581814391539380922436954063895392597319731565480699810231623620052214610091353442599579933587891235026397933552325885598244544104747184614144366775118149229807644124291637009005687523988688070453283431018700956334458010422858757465593157160284317629274696604542977653711628267779360456707711163673816815659217809450435752662306908257055272291495250837152932368424752408205375013945193964814086293093079903455419968621494296106157397562220678801183425510647757631248044150610005318992330717320491289055465642416521760934283360042795241687997433684056838538943226529535296374005786433336669211171725567269795775619744400607432440747657271140807969015153128119464888962580703371315406881045020377612590361293974175850689512475380615141855514165066806825213386860306595393742382340735089280707002634652262881605525321089842913370782129865347454139044820691820600981952997507409783874261391715677700919626750926272429182271576432753902532130893930254215811183477659550318704616644861173750742798193781895866762828156704522312559979648744794586744430870447818776004797444252190969610260784602259573758330553676602162240524371719339264399189688828902143142235489464653911845809372433636366089408474522987423318100003320351855272488309208049943337072508506043668652566379173080159915809505075496949805359592691424286781285606834201157362372832098762845554807233687092200428664948891319228552021428432672810448336754086503607041451864919926036814347619409004643891062427997606643234652026921497432470888739535060077531870336743732984385656599272395627982181475732744999459089068954769467705209985347944507594378950266397116955322195545336198112225492593257825847834811352673107291022592955392693764305222556152002805943122548376498443231371469187087877219105742162604622456407211462209971344453557541447793394426533285781624395994384687658334610938397779512915518994692782653749117916467422870227546018189967408730044992126299073352188943044160671550243528357636220969500101228247266380425363040157042757698429001984905007593040699790299357270753547270108869287217078233650502005685361112494286104023006346003687119928477183491160480338124047737693247199341510194910854388736235657542131213999522748583707938485167160901447095925313194386638486605274274169491795952207589349458393860024231503969916857671676232901320615878099175747399982661096057569863748230725408869108508005457954491090374992501578342640765700667893690638774622899756614933656396613654710565278679971565643660158890637740483003436375864917764877465804843993992872521766743591030423264890179854744172138575236146804463598130286202805835481351272251206587362298818131124409504701694456014996018746855208552062540113888360095154384926652195877211818549691050269603256364377545851864383839172177417479377859398985207185511651631026932769504072527548556301543805525719769898786193951612820121208839323984345685059616702672778501346567609114195514931350378594910262152749756787714748380562262506321022237411410411650268889502402791384937085740466689323261304453054286285588040445728802114848471512643282485465527977612293174329762985109874286239454916896521284877794261604521552171152432962912577711242555796889341473581338290019035774851802046283428919258082122654075055003753901203591708840802686610802401286332287250748466332821752620846328128927711412710324192544139306717043620430346937917985172230661412705989672663373602777373747617842393996536732054688944641660129111035742825588965923731368807940903310333158159874672283986239732782982746859107525987737962836836123860249423817191398904273597082326844246780582637659933777994698542508228016603090378576331028293428962364821919958021377318758927692511849276655042224604199026246202675235948508865448398358353367687351050627792860240959574694137305400478281357010663418158562336286017428928831858691906475521583113303535319086656252570669606894064041445713897398191946924627152858540116137489099247168798447919270645411502041710247112329086792136726610287225173113582344941898138311994549425380182595590008698314451329416729825510517272718455351065707141103617092145922185858949073570806895045652404019729051100144338710978103759528317424767042228449806275147695614545028105852220411874425604005398981547541237469670079685309413319330124148335102866349113912433336041466272867878896625098715347872853340038781042880557246009924288557100641341150612704365855534465210103538207389838532813318714313130353532285896059261867747453079166122873823220591392547572482387009020557170738775771400178030545800139704462480787969219007215383833191553920536927886735633087024255767344332962007661004550700177791355378170183888541695454633051149616693894069625096765836425993298810125898510249083781501272805941726824879494662320724586142688086628094009443474534836936401760164574306050415701970627896850893134537016723835509851075910358575284421205482619638057018954292495562625147836339724795054693652851336773472589570884278972289841421097255936846055904328268953046447522901546416953942482478586079076576541981607371105951459590262606208918785702472233125873410991833491993507685133866410026738130104569870680357494940223700168422043979727793806825588347252426008575926673550931914589483285834476196946612010326901900051870460708740278737106757898950889283199616123627919643617877199607279897633828574046920190842698994435597171043410359811919276012130365062574252082901564560071556053864307329752464162637718856879614078344706703681761819813734305867131602600930965825602081844278517556144099629875241356656833770215067659741654533683083509402430734524074355813633449363955863347168208520380851402898218200723578936372726452823071698434577785476601118832063337266525139504225074664242776584828996142003703399860114296962941535895552082543136301454341264255534950934578183417823370603077510939876918341933595442458234516419661735026458895686545378145650948577256343919581305186983869898797665773239238111316311716971417202285966408507175743505377338339749142945549219069509764242931344046499486993663739859405703933388844187439761094473303455982463151878557208578171503769957131333229138927434123037766059735305760260515212423640189923023015543986695695776105493328710199767182288475300822351084731768696624877492278742645271760311971511226440610260691459705871085023648589318984273383950791491174546422713149870873461936156167854250322313223212044885931587190010112939214665757760823354711320810653982908052838126638620103978929139595251448055639794720569849832969189209702959819745482163666536796800991490098926463430386793037581355320563488970199079611533135870182765146250739955330497714270514685192067676042483583159799342370650766271658871830871608177434921843413330806992882070104703279374230981761925031807264572529079666357502515748562122624086683409373846017782332842510839722231514341422788263731084855984163990075811694570378337896810743121552414367903547274308608247880904340649398994975550674873201700643478497782158829248092336939350302878657428583759327335750893725170863927043340245812265038874279395939983804580495826601679764790532870902900776333319479314428488056453936799749728091359816068051916910878045263007765858950092916410497571597118924756097139051808596228720440337642455186151383717207303288804249647124527454202754935898080067767203205670429360164094352988415517592728983169988095346152333700620089578831575030406539232182388142653735780013708706855177342794571251048412527438466100873788063426953329883651145071013453532806024574561267985715065566889235895737282964744808852506520133199188062930667736111777658245351472783947744282763620691868536796311808193809558347221206993532593941778867033129785386782226049844742451485327787853883388988386776912641071468443638080295654194300559712404041891389313220570511920986263189876830787466501851583679330380593539989590847877498310426360827006946406041365238612184757287316895538405556583277731847373501229764665656959358980322620028147743929976458081989844419657187599751608100295879441009072238014608788513929906992541662173618918484452016643629142977013196550160544985934785569412450253805049351834353630840416047660572426925637977737244685437825657698493440732834698688509456421018427343998858030254496413080438164885402629202154542655350311540716792154915363221197247103400432879770469835962842011143365197046204397091588099854282576067669033496542079895209775524211546608204036538671326557656072197664403514260377288722275512302019567706590830847514956119046249460694479917484643243705771951461365255821862062628887670885788314226344501445516983923755448605355258549525617691810699999555177583803852630863375518367340481333406642546838966700312605571910665466264373771634712217777669244786981280678634074567803279051040145341466051196717425862932313763912216123871135263213797947439002486586891665560646895914802831524621565098628275125273802520350876447254327057496943988008316706943462142324965485061842622136462189668040483525323730319819441041508622542934153725183685224837240364248904327574468423988565417904570176067362202456286346104430593747732758137407065724868425883171370054308251116019167800119088439137805883296919294907242856278956232338435188718942740393011172613236689183638480068788253662847375796070910965791974244811710546167385842003735968105364202726828247117007747927895147419654459200133072725384430452684342441704302885318529382626802961192523195477065682164718402944970421477750876787904763103477358169402663597451786155855175353777626420671785100064016642238506043464925806201772248544407676167649981324636575050547393863197472217363590742242040112624964903363190483791437692816547252606209849337432539611338392402274317935911283828134634307430944214804703588050922072120389290577697852292342249905471041545866175000923019428590127118138863824066033389902371770408507014973249828388063329256750138256017957528850498102808173264884833843310803572095936106270970555066707044865540599361053455535667445012665797555760396563605867804158765502848799106009635777180738979127986084448651782455835557214278977440295528207801009188607019418459523609135408536193636067794686117968419014561063644269396711736658138605926313674891960681540677676743209515954199993230212432678348850453444781514039646592301445365772678444413945491215415880630597844454396836883428327660077478413371793953131878786445055483083906143094321027488006719176228611984773896768326913899891214778402535848867349348687178573100232733019969169179692804785134710852774971578546488593830258882336502036082364022653296138986647388787089201335600872494610964612305475509943130997757112970224015859338696201807641958315739646681705355355919277200872233787698521260662503619604729166197513487154143457280159630036684414179287718020300674583683056904510943162259365951845305531563090146087644237097079962864264333416664457979182668356020930665524523788087854380321853625001547408113641134414759613295296845560400489800477023594348513504783126148545958135261777303575252797233349983443763520825359098805189130843248955610948578926324706866569033221392530951151447294258453581477436139259155459674570618062730492545001676295922223607686370583170261539763500929804304555769852901043169578223719264541005841554780451258999873242336392405934250778576426718582153626830484742312690113711807629350853063013715989842742748154323764605190625901919793851597264196927566298226175573735688767515619838902951653930466045629366213144155415325817901451751771088037941059392618741490852552873164975358542511898621519302607705270434889009431628215797363700515314488081017961954041219539866979550924750093971579382859538788555308712417431489632434794935934862566251484498503074562088508950216371667130238781594263023225236327717439838495542130465788730591520323344031318518875359573157422846201315076754207070662979497966807729077480513906134520199481600801090520840041706288405595922840753424126122820910290365851130366215645795840498389745802815333836375052578895490599250784697905831590723573074705019184271958275914464204296978792773235956544874262047204174080323744376813672287058221089075313749959658835183007357932260609853798851766255607215164008060734434372982052991589716548965522595188663812500895978908071996548331618529787354678036904920456781237846427678649520929151421215302401911447266428123997615513542905058120303290268066607981993452859392965447640377436669502080673067279120312657086384323800905332572318392900593371440560694936866548788772179677971247708445698193438797831652037933338870561423583943804680277956550073112967061638404494037929924291765809154629056093361960789159155970030873189656450505207413067978152988455776031105097328637609788283992846659659214291282221601748999575350929262176038342432768259679988753574243585578983005463241055883030198045042522004230013767700489616992728623830626811394327893535246300377815615158215832545416724115085601022082491607360497127012872123715463195641434176823844531881688362632583237923572406729937596824808790511177451288627498314238201520290808587963339450777995575216697928881836292689045306855803136396188018589078974003017226552427223600481723025360035135855226090486262671295425165341031591235755668712101032490633658508101462466811995059484085165299784641100005156604870720000419769146365395386147767397053869437325885689632572087605724765429505283579332399127534142119833242387277272756374439158393151004748229318259068081782675386440282971261293453270579628862378269165042997867855041861446132476500773679826203023869698298514056362100745756503671960323983044898043963512984378124230623548940416538758187408251293740820939033250197382549943502074273343049070293114203845137305073217091094544151740734353358103062928102432006704082391671650028656117891895360650940808503766835352370927350764923010486670511154776707200623735754350040817095515780003365171004733302689855472164626787055928300157737685227906823126776777884875405279077227422471492582893954563276486258234409522964831329144997126131786212754181338234522294756562634287594223528053997388518995160102515174367490920408548277205798417505947518961124567354212324930393478526088485445671059681441292582652206773089427745134632390479461442355855852895498510870194455135654840498281184473423063791552309379000272818353804081685835176984995192801603987020231578988371966090804840023794680412888746572298935528357292500037751516798150249736071434764453691483732347460976456395012269817642829207047909844112622635318218153074487824978455323226581289439905143308789065710810544462259669829432591934654056613049125705546545405549358387536980586053029406439825623066472817474753041605436922419581705302610335535981274769810450137107659747932275145787687798706680899633234373941599280847261735608649799559813824995780842933293210393056116700457889907298498936195256340973640292484317755732256851717217761739174596035206662337035102474856226278647881706348045285675228744470784413119690168958728871743877421844506029921901046924671739846999963577127505670698344275197192392435171708545158646640987607711373463377467651986361908431240732987868402997134147681749463725449140623249118041570552333034945993701191575604500888276551001817705114664430603652469201213936978448861351673231609386906944487946217369726984499009485284906415746635196050226230993710665599370880659287066449802695172881427672534439941504756910701788333848318623628730927455380475103363610054640484748599556208616447222947989540878787771784848109805397480812803469440738570546954459493831422622292569233155842062772670717556762799169599494752713720468922325383804656415603480772637934469233364986605391241388964084937407669599703287951663014191289084529133030071147527166108467718290800482229282716288441133517765476321771513394284378019439151586180090615496613255447083953601259465883309004580188259354007896484286793040059653956575263056500520437460605147135388856071947954700399012044838932147806503409313538193272456579519928215527825853032145474625049304006398138610966390234373657158796778296658637355519421476662162676445570522454125637796167175952414189184893058458022446468015175318131224156965174018596117139096495955708916232248471819555008929995141185888537508955546829005979843746726918723691852011433506783037873538335867452572738499361350466363946576048578276087460922127815684766948552169283764023715848503184934772321982594843177688913375231873420288253916952735803216898181585519935113185361319907553596468520411736540371713032084196361454160995604063621141179777320676189451812925798162696064236476110293984807280844346169079435649388521701295783384042603770825658058617161352702797674605415900462462678494923068363383397984075705461569910928444014404432908341799809756151112981422854978890017823548222812599007492590733619917546894092900928927044269241576166741473022718601431576746534707241324000122827983992919906173805378503107649663197194228219380061660763034515961748504312322788490553983517724361919856627573099582197469505410690905865231067787976140927123493031114783033785332327145660144490135079287656035397391288479979293593668143946561230196983209132217897804896119596208507399877792445577496762206105863408936460992800819049967530428202884818850288542083971092508200914671350347558110307853070468645181898762672418376944700824440718255271286666750696204917678642555519137899791694390092838170036823475056197466830665617812687221327902725302968829790437404949603949095096440117638468272325809165721859897626641572177076949749398503725270427065058170924012017731258982566961889156840910690505053744664970163176120195566843484132652018452773987985862260253005815408403747536904006605984475477096956042385424540015351908668991376957155712897602540515086279027590767970428936903794333601953687712956384702394801111299644020966523110849501853099854889839791070592234366274927609673430253276507989672615501128536929533506306603883341713687178003859710534701809563201884648515537588461584981282219549778976081539407411185757018558957604063802675728522637874625082807645972293086917582275210196499158200274173369296249659790345753837501001633523331569921115044368818303702315914704713178261025147456869950967043592609900945445652883703011297719244462468551150524557070812208425071597120006660711563664827056040155651731521100423183149848227417040270106845337187597613981768161855333717322108146117586123574957571778031470116210313972728406743674053703411256261095769585852617572193044622832575293433750791861903907368691484937754264708640173898933585396389034246505290134058458401276291326817181701349423346460874304412101994919659702971932194393934288190629263650735085830117343947940127441468228607105892834799308493908492860010108288777639114790471147023400359701003926627797990641385093950679166307155626526577563288975294219569828770619532072377133735317416373567891030525788647317569713863965829617751056046633435326084000188177482550882308301993054657932967659049019784415033015983289427803411145938255878494155051235545654565926655724019164617202593538398783093084484537223402577253644834950879663569115239772890813399406971310836053508814971798024702056880961835845648866060410567575427610851255864825910061347222880588083571742588377990092949449103562038884054307720567338925031865052109861828966103438986377482290162377924807474802145204964996880544594451753315146598147320374198480824208759059941772800558619806053745367300789886283662585944377174986234020086439553264169413587302967520411002637401905765218326839718872381764527918323075949988636046115711495773408736276155643674116952097854508306788512647946189578401750811518613084722964252291018709578326666407256375400975716381144829761300498566636226253181625721799776542154649321813948995533863739265464164631928144307535901802006323121353151519289348591070361042023450053314007918643459010280696558351269574303948647278055938580561282926121621778512601481501472941304108143568517864643863768148062703175839107917858123738293083384919249376661145325647776289339577935125258869295226016959103331627894121235639629225179232725712650069410042142817620839194025676892929541590803051741778473910697753321264081519755700226136026663859757223184266404221024704305035035045866906208400761304347483316051065638886202359601431797002287851028270996847454575552015748331460397167337842097520125786714732769547355575603528022753875972583757118356944472672950993517683975177158943346551350978545036226240434429532258244423263334310262040822614877999814962206575410434193484047974369557442873818446931989350291780124021085365499635777133359380043162766108755918040216295586304166162767608024454062169531979524969401544719596907779247063986717040310526340445978736296169479244505570258003650184581978221451121517068784771935302440052610755473512197126223640616094347848871160303181406626693579182110046760615449283799928652597766916604820665862427525606946762538994661652353956363473536828261201304250745768332878504985762407861153642408445972791359508260848013853367544109920745553766350474110741512937424305514754941662919430680977124208359091071145594961124314998908235839138633847216721606172658830386702994283862778130627679861130465619523744129222509099230855154447781483916180865016014200678674038739895000319684675290809908013668828787381103369110430647583608140509670898435930798064542821102160485863119394453871826262165868974933398840181288213472925298785163552504768596528554625391316956430939272120295074502359309814385971649864748466653287112355730174837993894607352186172827127524304396309307398826338246699285048728901139639270698812825896161959983300156577394110679742786750387035137069834118386551991179118472116493406018872922095085883768908677880892036784446659271227607367966291906837418143560185949024420510823306532944029338080917545893933733054889015103098367864751540657787626668202433587047154678702163211590336920697243212814643463707359949331635213364854192322701291264323277718835029005004000183869693482748888079166446115716491690565663334345191557731284991540582076856318990043681618416724087574760757507238882627102958621026364024576694487481660525577698183553302931359011971265261176478480306489577466297715275558442553583070875164992740986230361604727153881008117978224477292428670468107529525383840013427179934433732578043879514149064850170050294149295557746018158513580040604176003392069527247647810062432035393415742775354332079181968058879734114044900141201799446317025993386480530401277862504950389644915095076137333703910087251732380152166150230831356766105061716596271020638697743161503855226568693274864628977065838999989948589607895318134519827617766203348643761201050513697497828464678347044416520255785243210127823024619886094244311246049474720557227040853734494297469005373113265922059172016783474636813036900198695785253316788276966587130805587955520479498731837828890580224382027426972595267435607959695374843765024096630294618910708160860128513093187049565856706454797619770199966070488646456005777475551597373116573240781399847873645800252837385636233390404601953782771681417432528372127201065123913197728305675698111134724667682331836595023742299155863675346625703936628593205442194838586597691058546132693443311038962245966022240452349528653224209071152066241986939129719060723222968079295352919014591294233715467588917805640632849210221094383782491248251806895043266398179749518701049577968275472568936709603149801722251754739177324633899333116933452858820100242373626260718531764187597975515537405088834101028041538887612821192865504536010793341342233364445287177856799045754133549875422988474814693836935176544757404733200997387046256008857288154356270948343847001333726301305751242317954739121440879218364988463963098937542774322261937746541259084399648782902903525729114126860292646599070898272051931414009219226385937281231485167080176496980268596850185659940792178042250893026482814888625609167463562427982595709080883056629529152745743004399236332678018443187658698700042505499835731548000844492020755210588119376613709846742919745141901395039684746286439244908037191648663745188995118425845199764961056252420620030645091179010132503898437815911442178892357018033500815917551136348073577751600118127041236772292663054429043906326492873841432324081589017230791639041573993351904506553001804117859734215734855996357447314725154108543574546795084328967683848076350956363122439634606765694595841052615196559959447235669917831881516939042515551694360955539290668130564175111662588921360884967552976525118950134460539865639161623636201468824359090585337647094434068222116827149603058504581303273392802139545927261562133804445450415770399896110793758823446863576650694247640562112435129240573195029541691888891820192697618144103685531359971129458369705213608211833523342167812473109597607644919209136039917002383107291165481537759473147776724585927444772927440840360343569057729081131002787524115648441899000136142895568905546392574616535779914342484710707981512441891679951224571697124516520256639312629537188624169077288459775012842882383363483630274632147907830989670285845423532453635846286132789032758665736754083744415682462986922695589016089194297046653712103369422255508226505689540544637095411725693559845495837632695582215635159959088601944792805670698255213092616415411926685548190801958337247900581866597391490560555737916128578672511445055951677855033854837796499387494185803447734332376157316623695419488873319423727706362316090299936716045542146229095401348396588449680739026843105085657667734511750295175743605181358257657813912641011952407553087994526305956739137410901750660793876744213595500841618211224094434806126673114417390639251864482605736773212308709376196262757945050544986693670919200968606520447090481216094327836699748223581639945683839337637269388533561165763220309559566297896111409239040659817200274214970993558015182999884861691374420260583160574488885880059302376042535130456078600814179676515904597807412753533234931157242680704150814403949098435819674688964691954556104469759432389561549920791892648368852026965749110100311798129541851185036946232562684442055549578324992779420757685649523655423484096693627392808759127046184397052529448504267674092340618308384455448778539582188564323679528478002032541337549456142189003726274478018798185636746856115511329131048651775948809197799834212232869466994075667317207763592734224476623322104002634093248429618395127842313063455052952245655988230956378477264968050913650427272899971539851559791032171620237828467683679592872837608310116884968197864099725967814451700054997669303638552498497340219307661060652635353721826227681692866127289325209822279589659032161656578020420026569752129173596596890925630175269859317803345927652105710544512347367357012034542834602008459704483876490399893106908650592631704123750675769766700942674246951029700965502603985126913511809513457033366814183649294000934443159710228720806994251693619793526699865319290652872960446026094132577581810957525240136215052169710263973760117770760894868513657113287849258180164921226967425498129015475637868121768260504711042197685744647684599089938863263352106045521110431712706796099501153464895998792544292979649565997719075059860813638966473899307857304539329445688044487414291362616111192917488922841326475551115907205193832266571937031717539684586913679573621403585583603575028341285730295598473693403602348239205957314801673233232103401973263270399906265025713369300589918792280065932675284127056571305858662912193131778136884847856162384435536177943991892359638274580938141953273189460258510627231282963673582546716458804071167677038348855198280621157146050285212381077059097077166483326761407952512790006933145414922761372610540935712814847756184416819317588637283190648798509549187974396907821316958870467936248925581272593034533134709680968015602142640864314166211704530216405703487391328390616883932218223777181779216728872873930737064960535212336526116566764353704946329400870627248450628713525347496594399557138038147967723143565673862940283446235369882599670351122941228433976073308496645362666739225914384087382642142239872648098347995585286007425995765349786191867122156459718527173155261042764580989823002194422306234115926821295530694121625279747688246785830653832096761796943394531306912201000739024969692397451997406959996325451612281146057654372134648195988554956368042119076754898432507279320501603460892318968709394300715673525215591426530961140857478817508523406474980431288159937534457747817151567629007391733041488742594626442452620360419588185923523812218712646719974253058312554899760626104119343382430160796265361301742683850114004289046785705504773023545887480719207339531919585492656549013449086418503751212854433093511296670833901070685556959213134061061430249331474323381445975816298807925475703164563436575458465749937721825768467078171889557984880930014615124734129578488526798689783045026049358945423097483928792783962056836910202974404530445826704103249728366901402487959880144794243030290724063174003290046762899279966824795347834036069361712674620900835149193629337211787733637627193837688576404399713230362010583968644449908407544878478332853557682116287378827397894810684129120391865609374393339093663447570681336247916499056313904241180123349978545419039343372034660516528947644944256562165526918215609840923040579461806839959970312799549265180294504410706092868060319387679490812245523258653839783230365892296101973715453113855951791574799799050577790868083601580410514331360787031589530033097768376118353775491503552145238458915517562293262908174659640536213018986627990496593546601601608946097374323634743725758010459579604588181328628936394317182492244479654003093154421293570447193010949319336011558758205446997327838974398877145883747182166358738803618501489265181449330942436421210900217784533850728377326835736392823448276578894734631702709443791424656534377175777557341435984223090645030540923584222432663071044210018477126184767339622177142446086671036454886368722391822974654750031169283074008035045039899426889507065544830266691592102353702598955212500986235724155385658538554288308750390428133179020949391623506470691714138041552612992553482327353981358974046896236688228468334507759163057616697803419310159711057356520788494499630586537095497810007131107583121561280351418701657593331124055928982280114213915883439340326488928291780987297969038080956417531663251471604820722847581989279706235286654713047847297669877583295923919126448679450111740667351308014172444028137702612962852205719827815461216036132389045213426551971138545588080086169316140260319222318962826930684640803414682909755715917046906241552474800130417967154475310789612661987707705284616126420579991191638004368274919521505182303395082004553672817902579771034664003293638447420419095681920717094873772590634793927845924968522232410577850637878387636073101543573013685042070711803408117975160997251120063256801962189780229350193631318139999219063001570234968419613063551277812263023151046138572973678714559126371163645817739378467247550102547311703854040267654957791614626571265501360114046172983836707488079759764651394545206041737622989872397906621917679895547433483202051868060117827758081639336639232701086618383594408126240960764254129775136398941312787290254661446912409131711177845330810640893760647316843523048016264096609764995450728825938436726077129668990131359257077325462281202309868812076568287365010841780977832521510640731198550791021018969456408320998185673554341955508664221845545342363242176353452669830804919798880044530160505502482886730649545753571265329381884637194454626072171164495710190277840124952305600420902073354631887463878839861668788796631624931658989107166550179371246235273157218302103324563239574708685899351622634343755076919254736345836234671126159395969893823663148197201385905013247343677110328010481747242058594111892071738012071150836134975447981250933656584829387358188355045538751195124451578159894397405222319638912601712572667618448634214086005724803214827214187901525269787633204221692750586379156668910425564600714868365197353253328051341411568491769942505486730923871985948082359242640950292651649690270674265709496124345292337822159877226727026971835611163677569831443591558822452374857886254108045179795740130968169485703954397856591827177077599275298065142157393910132120889191995032373473011053067645748095682903292421574597962482626123303892168203968975593138401357691476243341745179004964951295610347798271179386867224194157713484519239482887942671934636661451712072239264619512429514224330215687042639738160116542353892397565391821942078797788370181286338473111045925046804642176632891224799250720684146512354641819173354078819416610808566586021344933673883740238485765548629507865960478453768710506903378537971389030929528836506275748647761261037455679009573503725166513161721031178948072407180246042600578947403852157990115746199146402099418950601213982532300294409978312370118149438390912466067564685246903220800949418735334559261832980878506531416589599758873727692302348666447483344183030308386438488681706234898631127047086966997959302664971429610417100999996716764064108983844030607838638492041693062736772331319240787390722566527801135377114731796927804922589936051812709189804790516302418678343304543525866598017547003290339237214368980263553237113246733707708948656777799083124160430813089668174085509115747320397593278455710868786769293100335921966474143229810162634486077048299629699931600564442680018514951589028946672271325977024276836758164324425637145071309072928361682498710943452652479859738130589441620702202766645000108302695119894593070851043918560112315994940999455013138860570613998484826819908022140537551639621332409822819629047834669456260873396584487978237494205846138591754455331701976819094723456342679218205959049390586804748119434738883170383279955940069174980931411443354298968963404693858223613097835727147768219977680623603642778083751490266824847111440189135308502726927492930500544246749587705813630851293818344502454268911060227006317870567263336832708446778356117824455593583495056562620194505934472372294616112673688233909406653040012493589173650852176535792939545091901170236163905887786500676328815786844088843136481420494379211380723141880309888667206899651140403809358935514439733025415053472039296205853341487904211356230734361052010945354377503385354608367808639382600982548666668652250888946158111106971601519645951713388020512285280876877279730848753401856523770069129251474664045251410942836085008816874706536482777171914272316624394868048916090144863428072915355246277632837861546457873382966478586713348736066701352924844365948930970395068827744503426628777670526960754892060613632995820196411400611909780785136880806216553701255006392542580115168284336115496700264399211043254289456454275685820837121759735181534451242116295192359060684920100251363612743860605905116317512346728170896423781590884950135850119857253980462378886342637519384941830045467226010649101583290283652299877787466717555835231169117642071217387475838313897552896330910811203640029867119166065584743662709768041657573180034775789727137877424331040896526625820826983348993285947226709690489994959737633843838071372098498020652963878488470326019208819961908450885313402797980763582525511779088586547055989645780565031362969031942570875528871945549668259288997207912732282190582698445753796268671630045616375171191503397673120784056303975469679973361135738870693895305825797285383903239632730887731660914408043445004027117120583974337710882806209472809579232422442286628916385723363148310339499875319621487694883540350769550354412361235673006608367458118823078069561306440189464701171677274476544161808400362502183959065526264705848702845843710831069151891341802624272170276900054978707822626586347099666741674967974693860408412018492301424864959143922871995289669438553126368323436233458231460523696904084138001731125857427469192639672887063780257254018914073423796831639533096357854223550140619855863996002197457281358908060369630627465694627572959983447682613181687522545545970335619703866463474499400659699820568048360352870765524327339170264232850407214327949954264355446554769715408775323493419622251857214687715710310744059879072968022000201697925211333940177130742038644004165729096538777336876789251679741145066064102361088509098363923032476309285890807391308623131782763916699516443537576590154965585837726815914775680736347469105335125242243444168934790435014031578575691367678706809102227712268672983516226157232212605675883608504006727672877452581370540971660447889431466822263318268158329802698372522072928667904105038169354674364043014347308440317618020216938344949171075483396749065192173901744955796856589114934496034837409603209951507045321934820882447496034301597365534857280630599196097556136833647661480550614819080282474486173040143463476441828119801662363146021911197208754104395122160541951516614183652723195541288935332328083532945643369236023464633499358943174306425841371639567570834813051758042798235313795997201203231668230371421840548501447073851367849936819646376891134562892546826091145352056871269268041181230526099009470358400073551624090597425723295191903570048254131609404327352622845822426790955408804828010378938931417669919797343922934133775523681618373775370417477708849199160710006686547417558048758654483722815530654797580973069538411623265601344894644792565613651162362525305236780326863610615784851738022423592473909646108095562037217279053851703929909946005310819613092893774854535361188817580181350394307574563987240376800630554428057547933555084847812578319960464849880246896094516929905338626034873658898892453323972976324281251525999521703674615193847539547110909561107237936467685715755486121747221973278247245326416218303870826090049612117659811395326019880485604206137019577100948340357377836963110337418713673467280093417696337031739819106193416852651869575362388932338814695657111567990634094384357985453441676759315205680040069553367929008804494968643417488859507142273627597032500176361116882354857486792664909988066651056594552800312374667641282329599179416098892381137532438097395259522316308454626170686790717884714062981262639306661784925784007876112075417610538103186103562735348062002201199687372841336984865962784643431362755389429508048638856257026939990357111321584786123563420665575692399049758567694610010751265627423277448926015015560549245088084068210439652508939952717016305474656324059980855579026058305313737667637355011938963242976691471663901181652676127647840491107536857981098561257788289006908154582194613640156560198607623234125967725582255669065229181587747511754314152996720997014401853948126331817056122824440209921507600174831275240848393502213444726700511003426059445565451976713643590555237438090421168925230377865089130153696321599482410162678026376474143626749010922689583680700220243818382220506840915297070225241941099104221404017049547927232856419878096651107293905456579818435740031067883556066661523649744133203947685881541000356908186062847145070172741874531882991190051423690110240797293186682252379129175586649798792381764967959692166286555223153286235986631994994058875579747822957675919004020203745328279709333497282394538148985027042724710479690204097265620676935950390317776470354908374075507109937215600236256366513042102699129043076651606491362335735581977633454310116729951441781030367110778214522006289888286461191286690460897361578378587672612443017140725588369267204941377147429604676244201199182346169717015979266547600366396263492858129096593144486772591529684197765864296906145844960368991637688067577842703207080654888605892779399666892120586243965880707570406258098693308751229216783741116375389937917276707027081440091677204036346971840377790117894996776095132192847797297238190551018359921409342081970264968067348255905238514539290681117137304043017571208138256289762363236816023643641247097005376379153738426574425221640212497561027424848703172720236229331811873551089723115527163741709254755260037544257506705658808582010923437691901453378277118827452455551592256895440390108831328978179074364412534588725087567433871454658308478089639217341690079042600273973250970132951573227212766003025379581939270664329851717601005029887157125119164210537056592724937940772437314431943904689542060356698488644089625633738313907204781247483353667744825307024321022677730563228193244940189330062032589050652764327016716655080461635889994289301697148641146300840011295251746698727396197718181615617621860704264257576242557532112121293077320766830383488135472682519835088187566991928447896324314053060488402101680751838190305181108344822983484803477822767459962779634856422506613865768971382986117224967732060355578264886386550867608804376300467454576293924318259729071617898327752323222204439215605919614855568333457570015568425057295312979581318088234283659082105716028673220642034027595194388848938616760698718844718529206268086959347516281677176558499872144107941600926459103342177343784945839129966214857737521908264305089211461795290891423262753676983293658954220558790650180565253782905612523947678566767143329828118689473504323014038130868534583591704140441260243501802687616134033804831337690034852929905325608523055465072636321678095225563026626932370884580594414349729009016957358798374798883947263227108391816659506794580339834623936107266350619245742965172379811232116134093167384182702452827690603005013354806896996973702407382479160482084191571932942016656043835783549195460514730650432183995555570043353027725773423858290541983479345864265953088163303171303669204055355865205941796200250289181482467863834198559624523609097934748608293981736727523614881491944112245214811847707617463488778915597418371584232480520699806326158472149549375113473958772241623727775852947987573014141695100751971401480515926216083356534255356681389395343386894887589491744093004111757793075946827728230322073348582906304217173247860534014914703601883364476071769034151599691876780859489083617604801301798916481852198215568297575176170862082717149654690981711188755601203349315568974615990060670101635451909856864396228839925499702234539152811408910897689216963531738224183912616899275961273556731646482488015803776230701318323271583745527652162881028884927927849231835129435486568769147450894716956018348237513514594355776027591858316004311609095507247832079439627330006141362674042125849868064321660819253010670152221347370256014035112796053921929158929219866389506525641683710678338097179863887422846467858988355166007440984342769438475460163351681120209330643629074246456799397174735848282572825843914023724488711087418586274364358638465137669447710186397553111436685594249287508024594179112268482259947721742159887192094913966296835895727136327715999739961953649324829378371884717173040316904072169397222005024097928599381534814455182197080987593498933892591810572136887241856131179162618955803827350937054252755596832852270214408245696602829926802054268385342773449643675758506938412180067581957067435985145872200840992920766369584352008777272911959660914892511940468953474870110844679971157436623869934757579312103086977756185241941891586027898515066110158291575848646191047217100450841892700684144227505038454685033401013253463245800635473094960418175744992172863474237946639035620029375563275333241747059985916364848623605916440710918713118182981838079257397166881800916371798759341485804742478904438867615801723674747152051229596924469924540512293310761868760119239780044746385260035585692112200817416938655974836932848795325589399375083577019739386263195269967213178638318516940312229978239346740535757173853537351198716356289749456771477929322549133243558620654581063338085260408064412878036223915289516819528400098214083677663044722435130712692480487442545212394598139140717681241367775334397106183863559038124486431055083203116606504834382134879908952104126256104375737771188511582607331082347961006983419641917655980190776399224803083665940464721850403073495542411224326436858437780842420843283972587087020125921152314915347901564893818419405829832095524626230735580884062395091728828558093815709787163879504939551629317566627657097535347504541348465928446737388518833706751070988217670569655113673978242569633084748375947633325535567297929479127631723480850079136738826760840107268329587241491673622101225178243089888451462525526841648346853069195786681497187753437410192682944370377927296973817952757209989128161010610296940297033943911576371287527088166032983897078246069517714371536337104333185637403527648470971078781802085478707212727845907964860803331564862669688825578283517909129625285424954900105709922805640999970048088716715172430191112789097949400676732172860324756992186987610268981236858869941435181882006474720697848749278072911680523892450931321678430625461754665611687268379724779803538199322686077071697762995816989104822244267961715658020920199280245066969553706856761929515906756048654501854295945600481792274725621129380600396496043730660829082388371789544854310802697154083645947238249716258247841862119239284689124763726867257249268386784030417876645703177731598991104641611931381670043928054384410370013012713656250251534714391043328982254834099875226355723059291951308025828372678938548273273561011871857047146684431659120269699374537348762292213428639263736812411356756781763582109364483078669186797257405419642283923437994482511451738946916594037991684746831073722408870336306706601569042812672968013434416449968749596321246052455111529310961736840672254531261659496090259775965732651156766154316555284656156036280045789341064585351869270689837568273450448354670641165415402261405326892753843515710542658190929531794051219299962186409363222701169668620374694101682471338877158898551984179137231223279809207862911097074756806826853534820122284314872830978461781695244978150563922622350311581268439185694589146600748725647807347105201426870940476002919914679087958114663266733062233502511535879700584202728724971973165585281955140269784972687498886689205359577064618077031773398832273408474625512159741048863805871544993549346295585689794537240934081781674835896452137208248292041701518198565481014879619944042233862143332716263085138556453403566252880061744041670598099667744139943817604154612425713796930971200999165509343300480368734551953912617409826640842694548243302376129012979150570926591588005980429263917795074257533619676483176544452032926960741002343588128769946448955686989285236792246868715841621541426282361522562661582917453053266504751493403952696829813564894724023336480705482686982581589404969973261327430702817993886542788335770658804647936736988065253623736633711707660248841722671943492157093627619366471329545458323952508098340736298170267337054513473424282086283669235364525991052077137879456203907992740066991946465095399247507464752678212395806441045223734616236725861593534239909574284071067215146475070753133894020354027199233480982837777289467071466971111099595247521279602629590393872341565987107078742476540072036647297151780861329831384135062631867250912451625074126156858823546518089628924021675677521595332914747624277955172851383975991147255006892941912714791619152172753767111440562796385375037322695290751486372961512962370496568767047343871309785185427251543249690301696708338341232006964722563093898679708423892667085814034702462752058717861410052491532148802419372921996841477578845961470752454013801909758066061158188564447507060735163926989073201125449097490487008137819024782058572233205126567136084928468007986729995575350398467533584066061556128200585498323713895605479693838761621296922803631500651957350893663508247633962937156156705618526914221311072787969998584046675738429336640211998087781385599603635724109069794068836960936524368935852657300394199819099404589246560432038364576448084714366478557845492839818720118533842866252734714720644022956833080143817844275732829721820571970642327449715936903379122587516564192813013483408094301744269057039379071327277342797931171922291816032625593676933606004299556963646872301237531325089374225369116938716815669084345699974783980744168503860918183670879619442136760223715510440788567944274567735822597039549742191747483667645085600571105991351273951726127731893028132153445380366773889117219655178069979597935664103654000813938481235458127462719131032397289864127856043108955533479771354063530560494054037583129958537111000625849809653973121235842875343064831427732516380016222480112229630789552170116030340169151938154076257476090410122238642908093162612765407628743431950492404881171369462285517005665198781962023385601193781833662394891953995605044315618840241649935262813509599063058992765165398682833910046073279597874555854234600979552394120160778036063309354673441751903985955307870123596739189393131942856534606615689843437941714277519254555891311448875977467368696552760506758768119976720885704404509166428066195800423430374454182996154219433795394536146213387466541658340782067022349457433490653078247925478591275790096100319116224584160730228775921509556817005882282349544510414931707324271487109280357183118521734501835731678639036033133416572758735144959834846978847218391069222900141783420229578146645622743112922350151102869196257848358428353356423205322188030170640460514656931258862550712399478112069485854244749929291584898959326838523710201355977902756944067308707894232480734120067044977823998486189599673182055273644909073729433545183306382964369248855164491159595424964893907411840532333102020831459547185697294057253194418300037107145737818921626602331513426473004549442277013895800011195371228094706159842225209677885186123373679099170116455698206612935255613445954955815143362641838384574888691171903896348470426690707817068481479542192520064862250503561504248518560103411905668617180242393489088767085963078509665988776894715510129582928788156315208206718061250157973633379791831600844306261085064295950096332474905445959117248307679711326828338018476392541731594743427186530264113196453990572282777756115016367618374134635084849996568317752785256621105265280301907369826046033980988644011530682588276831155402813970299496898861983592865265156516631891923208774053191802946645018552211236982449895805481484435598061341951368897507083227443574187818960807979021424628137304070858828048382513783705799523228416145260835871992840802055931891621868896590882374681484530537078595223109789922485545909359476084595786673782329387159582925411500833295930392316024312041560846703770949219707068165631272661741090640611354014141487299300264975276948825359835600092212794833358274636782921190324391454120189450819381234899901884870943380739624904520695277898600484774487051131460570591501822163320202144438430674291228518340239745031113162483529926738947010240141708996653787656844047807909712255044005564755248528624622449635286724854937221611986050191701680135516083942949786750130473824114597511957596733385664076133949127805499113243090337699045659353335823843165043490704755238264165823376652619756948019843930781477070362437744228922691022433179427386161456668986958326804827300762835631563578838183190309097275983372665656215452430405785706690449473352870748584485943869617694928744865839450172522163491267304997225795641715091334708325054762950316625656228579513149996468554999283343829325537955283060504967415327631114986204975098328828896153112454643436485898017108743194797821233726912851739750688010858834955247342392179284839399693273602408890469730678231019259823117448752903216795098722123548496585210846437198265964373156128545986808499642946470619246360898855371663110712297705565468243591999152839968439019691881618375409677685695493394956646881729715352793389785727368851543473669884655848123435976572807737026615194348512232066908652115151524615462978830084971276735597762216192941298436516564354963329313839923503066739922041727608176790881242957493817057651700104425771579185473908697084489061430094295708733322154472941830408287621878600219065498914797985269552819852354714260409792931718439537644671865872646738545032344170627884845558638899238131651554703040703765514442008587708025594208133930073067923714537782083951304414938505672914094283935673647865663061101870047102177806202428230845752402489911901814268707697378849315375971120845075859751228348495394145738568068644746108517472979166757331898463517374738479726409462424710376864320244229106782658523318495779592259396282218699622744314841718121417967792452979222814213509082357246840919292181414484151154064593122841238166493353586603302123004938919995568891708311342199950848831064497366130341269763841537638835538152986529353709333541974943428080896264112277874639064941931901841215881671872747268324027446353856245088033014360868360518002254847536205911032407620880579430765300727573497393223962717757159752194148193111068188825242337028301119663157403631084011553457178914649615570952430355298370451329423315736451100989074798787046681947560631238200810277598577863989266050499554045856638539506201026181759356818980197487654806125955144397608997151785894666893137003048535841615188523359323360851044024823161086640076142256050037679750054498316027946361701690206920107028745204277899415988417051216363987706746434286119206294495386767109465615072723605648939470173125645899430122285382115912129636183594922421941668243143226962578232841398557614512040307276338705308532209104424155223427927427961454938400410639717440462477000954469418303810291283601021153787289999461686245415749062814252569642935248873598132335141546366699252502773463141132038558285357470521798393338797036709108161537044369472086377358546540455102822819459512465102823944653367885614510357816877675319360847393988680934512513973310184886739287259495451591270216475678744287394815207062448859253493909698025309616812790659810491383978560372188252136997216697003918350190667502905261634012773551245421557970330366457205960510316581453263154593048631488425486536401789943239064019926277071631075172837706768202616723989188901765592965225077362524352727723195637709427221050274610768962884892584812121599410104928234620459070743020206591817231481529857871838044558532256184189804869411637671951410951390890302299697187240164647116326836611846916727664888071030340737258447188640751640132066058089635529088058438599461112646475614671842747649204381809938701550523627174347952441443833540076529980800207431913621885610447474706316964553140018102340006098880565937382140899510997260220140680571072375791415029598055687515299576768557280804102744719064727681261423570913153092249078312527585058848661940683625697140612779108199860896114258138510766625453435197835325063449491739665521758498370026997778766290167460931727216009243799611120947324768886782744117281569634930257370138804812115668652817545522085743249643376891929014867708311961552522882233773427370067204081376708951671719407018147309835947437127510186012263118930823158647801834586337597730169288023875613345623996293442784205471478880656351642729100126990794719492074236197667422520048486038844176498069034036423414504712190547450977680017685348089065128083140045537045066128840026859267940542195429224167492586454303647258692420625895513879687528353812899121893602620331753072193789521144337859016000961816811578854887539964410717211795127288328165701128377603763371929880596780362741984205584991654736665159332162119724409892362849688615267385605254321678487834224683675822268966659443774037290155126919692758520516025697030934509560275997397383688025849456806001528896593072296976701846443896880214647618902018871964630491409952256760652805235338890631875687914724510079004738148359987970559447271641886858688809105760358006403526890536295163406740357240408065928540554217983514084566715159462024164923780522611745735123616707183460463803494297253113654195374028963819402408618306434401705855052012316080555102761116260744187620362225674623335230867856592107488471136734363169299174931900570432121265007963785592786130460659860060608676797178194379805753962588080028969580615791364984271000335140394091707206398505004862053189416289023694376931862405549123093523268003090546299919287511299932020503289508521934895136661539297583940300283685081967039454656780119582815585099341333596574346979617943142991744064476611750914296117111503665205142237331229500477425507031584729908369246865622546100274998426451434738214742319662458347310224277088412443498704819167462468107481019146557789385796780995144047687009792993644220648906747971158354817800565663121759665425221386188805679253320145671182425730901743507319580474686549373311394419247082555572279742138516593983642249186191793142842392972148310687709157467158572475475303612645810195498434893620409751253569295359810363078509228553794111893383588909662536452650619829111790454083646863189383636253135294534634940447815457462769753098115172705389585563497108136586147359189271488947505404864871462003502485208929589923049696966334693071553711523113820740562577793918346828141036208951507100777639643526814800174310979329172510275438853529842756614481129225259720667354388526622422083387107199591885091248826578770686295049181328385811907733711932008568050749135563311413228467227643571733799252279391272452850731454339254101097709622245725066777699463716801900538494046964875338383895249476785458190411616185807632885492208025685676413612998293345249457807703737910954979883840731184553462602102536471641323970045123989233384306100795423212665612137199069578907731010303491925637121017034957415579231033224460780162185836883724814409591151741643408215967599834432569718816510688945629492998628294784315794543192105993892949898928189225022709157498337050083725399226709711628555444149684507805989192684386427353081752349036320402439521028028118219043045159375804173490217932047681902241750387785980047590938032335861081118465837485917353184040353753155558987331738462443981037385594680204606501484808572731242300469447705538304675591107434429202844349875810829202439822416349837789599942805765030696131425076274696202174848079613816862425251253628165086729480460823358348058745485815742292347224020463829978028602632097543011377392448391828470664275350196391991683020580349349471275265515109317091695912871143038356221433795684828654811179477107117092979693034909246791566441653919372531969839027949497399760864214294868936524463425146735815387499239660582101609242845397303910212154627498710989254360054306939186837328638467314908585219656470042545790053436975439093572307788316158995465052359603976653732227134819607923248600646668718567046253017329458960831266464972751998870890311386033981088519608254748651513138540171475418062421494106307609364156860276544607972368601531971343664214275798194877595177818389628245355824907461165192556969440263859488381007535579735746166842445414875023472111128200214075079112157926925573948245861447132798663726060649454240328390391900765263237032171172156950481845626956412514484954677634014833033791453496019593533965911314937455217613492718885692544104036860070713679860464683600207265955916147070659148998851530190636687114445368622035712567301586368802903871030391157474733549618169694203752705725485914568131677760409035920468997782795948733172621538737312719517317763536767504038291789163381833472338723469704037172382259727051862895418000176597678884026734946069053315474504018484215422711358219186947403518803468294261802236736504008592697803604268761580207525391630856241188717651781058497986940727620372014610843440860384313262559430641676206314109324382039679362803962367978580543348059272308924830666392389562846546183419602617026812779618391352741579245655850111718003694685383927787521325906078324500216147255566186404842763632053009247206849314422034894766449698895871551386898432363194507471704127110492493650885964393381874545752681496815253718506124259531118675459929244660071486508297736636069662467007841741236320362726133855485256865346710339365408704360824731175124377199592453223791702484318130003473999641951684676922407370680985809030390309843845625804825512360859047950792347968931370193527311743570013895581712747353048006810112380979950811540331033083130588077011599669042339468600549820469203123947189802185524305728008355848924180789131321675804531228669526902231907319156934418262061003689047073280360644755199664873328688575436781593396880194793345338624737520684704680980418399015088249389751458314654348975958185155398566475088854426705760829215866807413203883209096061189271005702305661604473971133727122475145789913380108590599794059938909346117875330952414328831042065183014188413518364410351146398929983075934927667999870374727938964446178351808669809089519972140468424846997516173947142283178548712126471401554733391857673974959861917808113097475607492772569756381901963938187152160067226609378665975439500367461060280208161121290887105246018988832602687743080986494797439577330351619407279736420474384052324611127344153627906835320773951273526626184414287956212432411377394065513163807049746616311718995717251273210865016886394449573317001926520460645749845757766200632909010959855154426241451884467232921626862320228328874770158216130776312180396564048263015713658573030491539205003939545967091511187929205869087964039245311055501746521165481683539413318496135777926296747344030370577873874440354488676893021712139509822297021075621570505454233036736502505837870579113590398819289071996708696823913660749540689365685973463036430395570817055904093509220605471464284228325774847665883944592971490719980316668130575608049026316004015828409441942556378787929378173522698732677306059056489470615418412981658654090162402492137775539729330152932987601271402607984750715255109858435970456350031319855734210191828560055579306857007837163876118186134762449961657316662667181894955396386770347222245345893915202047032290612116229911793027762379517145817537402376615277506852341671043205597249732694055342933014046649811754675133120848945095663565240846476782403757387930721938034195265062442197864146604292215136310422601983057794509051267468895956714676702130340102724062600764462822051538550776541088070865253481404048081285088637912601595930866749013727064096030089401758701837120712251894671053156990242533185313061826662520690999339091650676654276884251910429491870846354449398056183494611940043221603134690232802592503583985306211647392154438338934561801511224681400762078512236927413852958102229323211788772322995613096136305756897843758447100651191070333440870579147184723457774716328714388983847523440423557301130903523078233476980945705176949409031311828405015402805382394971403080785826277136479813374559763374247915333254028741630650598940074649890551407626083443952918657667863827694844681407789124621462422886043628778171297561088507888740935319955646539051778370805078758367404010001623041067149382808723401316952198332818060261950784001771292939687339791802490153117050268632122914856184636639684895280073766130347384688724468178623077477975209395773642226853037709874605758268715094318529847100735453276014052709494737500248322472488441256701288009528816629270964694290298039058148688886535590907961497186221821178679389902825461461666627186179959914451118148354385011479749962860461232078313793363711119619938600838582698459571664337245426513708126273344132201260597163555362645767084648998937328074613890840577329188806761294637555903988202519465640284718551676575280423416697429056741371047350374453088159061904888648407226982900837441739717719596421366725112244534185738844100955528424991250098441218731848908858477576510799023110637096709243735840752275145676476268215309417665661019187673478644663648000578890492926155890226321860907095057654530612868155640236932820903834896677323422391924758029298506659991511473035035573538521721614025338847782929296106987874340166669386835850414805585301915982894301275917920077260358642062915290707263661899190276732562930489509160094065551417635208391405244758367481907167535950197052271996862569174383333117761128649980922877279364593715464300698214337356603028630783282407016114501236126238212694716124496804308565680016538035184762720382253822703566419274336510607313124199115103192513829541019753714517598949823918819345036441391633064183007898693013640982259427112869020578615340094937170614810793713352075836089457688972049208715826528522629373297102239792782414212630387869641674734912082199466856222245339037375388264492218051010527369669877586277697129279405782510178404917415204635040958945671949224902997092063851570188888686623355284258161398978239033295048078817064341277701088925695535580279294749158014347727583445187249678233651243666185463427377730903860889213044768703462248390726262110895036603604339116760949698198444191030570295000984911932803929720721230615455417847771687175882176815926658088776719418744656200269745932049386289733008574850862488812859763208557587214418743507590058545213673046484230777182058702688064853139732492669207200540927550810745447300703906193858234227080943124146720004926438608761076872289187212756139455596516108729977081435991906463741635431836258434238591489083644365896059189363005077708308496520462762413406801040064268588684345311286899206731541323903810324536298128274671049136269740019519398353831940035330520372177291101315427574670260902091372224985287504923574281650370974546897553958468428671767938209895684629963960655925081021196839135946555293794967223154342995721143529964554921998383676898135024017236219398623708750738875625358914564019419067863787794188431471197970244756045370348474980133927814213368572400514099648389419032615675638091170586595141082380169427267976086886423372475109630625965213268708066735746390754783463697723576985154238257833508382467836155205266766581822178884931790513613887264178337844489464257429879156928599459732837452445653617474056416772866705027035537434206922810453297198327143389186369691190991636718792940860456995125933087250623188264026449511348452135170574295034344165924917411732112438263955636520485404640516650933845555437828924546376161054298126251559526807112843709976900434562500187436743858154040809772940819544255994392754702334644290567714648716760241365729123168555282999832997008401046258420140620147527881523283886272757710836059594040602937637959739806795422159464283542500615126867201540274616080015320527505726260245303985897323868508630589123284979209279766726474802156957384572818857725929857907373307712631332540901899345981359890855218525984779569726707524156224727855438967960120475245792304655846579914766061248430051486054969495512705825213584412625916513724061486272135392274113566365120813533781373717552990415397909964323108965949677033050005591644577227631977727022602183601231500063162609868629925218645333317872141517335119296539371288568011902950436594147735967632367546165548398745240113297830516923481941383944390483899578330995155680900214581577040562479639678599724834370000300262872986827678561593341631305535829375655015172267829657897372462599233609565380707730621771026583308544212741728965047830006514703708999922965640820528369050763388237689635898947246632194730636282009676750369402502776099152739280367666576847451108758209619885333621235391294472914042291306670517488329153120458388912074776835223446323016152167844087481678481995587485100773022519232936511683972322759085407004743241130655186537227676071638354928598292237664514872751037736584764654895078525824600068809541204245207256293452182909093576060115945015485705616484789212092345353595773805449032761337495495807194036952801650226033583775370467628926969718499173157463530071126527003717284103641712050523726596980892666095968800014668463278183980027658380526581164259655595277151239639458681204875787473715872407238002840991150456448753494686844254464249666329204526928524820351182284697139121791635908301506256406884214207668275874355667523331303314833368940791723261521173089277668713509155988749073490270521884839962919075471032208665943589524975030110374445669727691031214554863589171270298331629836515915652343637782130690817320061196512419080970744653982101957708695699433787738870888102215400912957106213445688525760060667058720025552066315163197588558676355373406237432785780680777680236793898020695552314483619937476454549062506890995113508511076527349980328259300251090867221584560968492511540393926623875281861812519100430196164380135022748751145508881038667110683902921852017214089952765277608810299179025188492894249190322623860351224066090812330013104008527730993147481314729985910454314094373935963311352927027445887199300670247233501497685622380359183005272203425717980951465366549160656323182856096197850559274642912886771424813068890469618951554288734982835686899245666965139029849701953202288471397114083222496493289647505185341798946197848936176834795528323863459632666823613121722756194078695303571041177762365464690113948333429501614821894402101115403503987566331729312994848054805026605974978117105108317312524854593406343638401659842854130431027574823158139287933379038135929281397614390942445018540128236424805124678524117590834808460394452767862169405867371294016240904332367498923576740711154729732894398306838392261478013494220060484793255503390966014094504936101512922682177854631834024594735978287000891436119278833797712369811800511540618522122089006307970196422811770498229713364632481419970255252306949776271639423087873723409385941694789625456304430943298317576188581226087110697091596113496816325505612068537610513047946208288350901576217821264977595420853059448304323461472325232450451917746512258429810538793828275234263904047184047331837065142077565016320723800609634953144316061076899957241976372230189823926835345275645345954519206831497083553798062662490634584000727343015725427390365013153476879280249522926668520751212519947884549370425687130716975238610727337656738153215365146482177748428155301595741511794635428210545364785314005112665760125425050512893250792875526966505018963482844896229567584275275291181461364143122850080419250538284894394502931519437708192251783121793233742846200353831201382064236842227316801175305075463016526689958014998055359662161805958087815207713085522680429621954943672782035600922013918822262633402849338500304885970745795769060978296943435395028885949552694468709305988019600708450338658667297382026851166184966828005611699886578510897658296608556415676983934208551001407737683562114156104245399435318293429628243730384739475675500284048917857857296261018573439442316415623271091294053204017101810842595380667633105864367436945376725566388130528805703055809758429982107320792383906279212341772131266243692283211196929617682540310356189779807191482237512582252747371741977080929559267333753405028429154614556250785532379008484961684868081691415992941735967899167379481436259078580222862300951889756545579874762738246726019022896272773317842420281604035661901010693371975665645735135707857982274199220119767403599500962192696188834294874604807258004938957003721456115246333119688550211782172578757813811164874655839139124078064890928900028691393458323757146272699096835070972508374708470152882615310132128777679810879383402405888577762268105215589806137070312497954837378778717861653079746589779369710264277426468375065297207687156547942058673325771982892572300295485928136176656456446958514193755264804773282359838701982578651008915432201092812662269586396103724107934063885300288132267909113503190112001498514472117209259935488295649421072664204911756100548903676598272176662254333137611262487668580104646283670677223312442605194665838505056439196103472437854372236289806190105232215926344503797173301239373076430673032656643141697777726960658619630911111780105771652784879812286149949649486693471918028247328647747003366245332597181537833730753603430884538832585903827386556186242259230216432932865502265970178627176951755788610671307849578546370516160686428595312245179443870009454667201428091031586183338564945992366693341985674330450539518918057142854881641061388176757413584873416171725997376546042579398710041950989707436793984660629978068753713591953713425090837202062468607404213525688642888229110160776839194049098126821399091246175698992218115246974394332482072212365347261693536801144566701018690953056555099595658518560927389327733383762345930939885387949319482985752938725526971853471399771709099248676311832813742230194871046087085024147227023561209532423739468612855981104254107931515912894713190909960027459092347527196432886264310175534250551538605337410596498729413417445059119189506173700239914527302168332448736611824983467652613898236613212419968892919420565222055395624924750229573162565471556374136897424099843256140026843061507114472659737319812936163844374679619271642217370446420830551705938627097870295632907938765816888816063606830616315268604502861576813280451839662969442133152552984856151387824165164817032957606472951654473329402221616339224108234315912892097473962066455851027678614807357870444905184192612963488116241131919798678338314393011960319678078624007977259319128904484785316591440383607240792728536851451660172007743671892054514576267791906632846403328820383628034098470577423885946333156415257745403995356040176358653438304881823141009920848938562852309754031504744121348088243841372309549473076416196491573832173772224290063711148462519737760817093217172399849518249358421862073498606497264531274242387721905478728809329120239233893937511686683651791499801807685100974387508247579777998512013457837599309617142840195037126450755747521266465150846162426231308188318583898257346135932960202586813280400121129632723228267101928301904735616144120653737926869455771512360370443563808782678950900033931186825002697448524251944116603660150127510040771920518556542468785406402090058656702098186010720353776685520516145351708993048831693802823223273825284925311442430620507334602316423763412764683327064253292962564233806600960419455044927696432289029835705215254874249589495743183191246791308577562082679147845888718325912527448889811670704668944869565952824472748405341482866865125928060379881103120121478928889518181998760160768137914457928017837229424894380739229127221412505275220595173036928375191877215897799160144042643636878280482173868777645109942615181438592308075134837219841635587956607355367832335605373731789947703263294703098427146185325930547037395851805434856288820706985100452617534652095694627180069351716161910295490183349467229775270123861242260587348932677268185650627400340271087260361240088228365398042819801140629724721858585990016670782659785037657969007609780257813340303630297362752407507133183192762841449045841897082598914139915124035901440969343816752340403050425233895798720706053614244974161070337001837760488128980800752056082229496203600176112657006376037065819490366882370488563497108787181694157964084844092418009430140428557270147675326842627893361068585178662285844658670357217317331695231837860492154660672559748302201875967012619556353686740380968203454697713819708886331598858395134613467841262065139659975698995396369925830526500173432109010913631771225387693680284422765808275581376153868389466179736620249929399056234753419907540345841634425745247442509966207354210390850485557452444358677233950059239384883526509469212296743679133943998765572312180188847436831862078241688699064398038808536249142662940538716337249831785276988453300760866237573077917061221697910541140349711021563038449427326219230656681943227972558737469113600775402915983940702132961742298401973836088155748516035787670039748128000686000915946586438216662153683566817347863619202447271755574409548991495314729363421429343279205682375543592011333041026415693100158576599460483864304039297366011335080157774970657814058842513426630892196347232288932078245071940449297726078906777997820257044378435845266158546580522196345066606250625971390698398517486951524025944391972548763734218237940728908059066703385237724720313366579422083737629456154190712481028490943352248382653821635762720031494736834621481513727149347026571460745926421576047918548833671209330922859450840384018034855898252961039267783067004986476003487938464772923346761553470236825495801837828412631454449072241094661198115415484561061723948928293193460176989386544465568326486398338352891526830602113352139581225082514397325812863553663151453133825357619441265227826102381381018152683865749191298578702097925687508759807832991118533211402352650498942905906571263038638486257944952923924232334055653501243269756738325131487416166868010124702622876942498393857790173623879675605570582038246861703468727059053066416710695676789888478807675984605535997346199343692352702952646293593282546939393931507583638109881312969005588942781123624488962929524331344205042446607541904516673333669729999784907801312888362023056877701063519970825721311162088241325306150621487806460658402283050335893463493304331002310061331014291550457197173226232062378011205238223359423730119187617298129368352673852512330889573080465727233218011383641733500044531730528268798922905506116789645294304675587944984533749437359151764928934466941173278077118597967341950855004328712431325968185086436008813856850787534022933672598491935593653825720442113534677967960104994698452027481953268088988594410052458865500450340925403180517238009612820798007945020903244167161045934115133003932725834429177129665169844973128630393057295392190385370727336105073223412541452919499630950099012956707981532432289129364216932841102723504320790643622305002352044153798846470854051396677700777557117447252204308982482403692417334946159549614781682423887375080763837060236000255250927948583047732013784858934637076186447229394884903597717051382328072907454621273597881637087855817504500767605966805416896680434168967568631216464625957480005637658951794846640050945096365401466204231122375308489313805999398570180770748372502676172596941748396852042095161507000757197661991199256296416262928113322120975902029614523827253318934364414684066271093143032275342275583542716598580252186524749889337650368117029750152320882758283753722879503503087442118658116163819486518495665641624928909266511317347360842105198282156569775576091186899283703493163547110418259009723978592488291471372160908228033977261574825737258758783896369887967164141316185877373236122841859998131662803717646355179762993427497617728185435389558440033478555189595436201834267967670951233387675723426925296040984458830085958595578889509675524083252423774892916245852603841202667248213415136983527288281880634289096179315195970051539971207180983132571986732790950697239037020138466340374714952391787957418255135655082314244928456341590087131948509644489135965040708655678953813765821821727498637092546247113050277950629410465689263884319397747657609613308566638412197736677411621601571138164424250022555934773980391685943012589836355331093175802025986770318961456873415792519182409425112602145135119284993350808308137805864875330632012980068297987638135861280715273576447805525309680777931150978462718461222015142949403854534211432236941941463599725537807147625497017742402932149252205429166504742952913164270437879470869637327687366564546144644655541852034539744060733833871424817420144203414879986582944950385323717605461595350117508113433941394561396358582848114416804654898753525070412824627669554556963062307019029094751656426182423321279328791656451816037530863725433125976060976376765496354258391797120536985880412368261684069365865833752071095377119320739014005810787456152413535913884512589900896760323055712695483258420859943515595418641832249129912294390840501414568494476050025062747759629188890427636499610270553726914470761003831942210806475338534984010463095484521620111510951629328661904280725819836086604808239720024599955913149427533215619916738433820726805063196798686231080182117862776069657728097898500802896269219516077930863631860073183824805039179840479526978824565832184959250092645491872486048028860468510873542470911640412341661735636538805230983217758906772917938626687279172398463933259821564701174032311443639778378359340700017086408715599002363491936415299781890106879053802504015613998518925082075353928489216722120440200819616062876623109950662681258306896792310270254443431590583641350996665166733659561977812638217836895846148652821054936720207035244705665154640543076063094223345306222738140158668647687593497757436916442933068711033407996108679634424696909333646743686539940872771017610426454176028297942630251777833434080294556872576394825639096090738772549863041356660790471329908533388235623693520569470176122426546667444018138146885025368110477419982630491759144715636380200246681714181888820094091655961379485899563859606799478466747443174802018530473908364334966669989792313714621207944784930206950089674197850364731464363585477009779985790393894325386103049845508804675548771510792582561652097737118023213796228302739633353985115335757238802659028419169051447861480506107429202161045167493526987682542387892897794952816241275200024591329009665429797684124613793790611817542544392422060583972227570348909263672202017056452591461397347894956531100050114896760656087254443165155457234322257310028832928940213078639046693735256332171122404607030914226766724750236280264492703463617325789702838917194993800037778156436495069725975518241100248211580303802630803089653224360193780320736945528694949117248064003287565017807705644548516930903753011873408096514823468240159162584893485045825534531504343780335318937942319966967088390928607582646673597173505673380702367473306030321126372881790326065079046058830309614734723853385134092725788293637749639962665592791577231893730564044908624573780450126444956068131871936446275495507555242241919670084668823401187142933259864374202159123448886466736271738294088782949437610229831081102248201486404671214182751565984542239421070892739454100264035451046394468933828295892923973966765113442735676172502892296282434277409490341938783165167789554027982085793811971785515464228726494056760115599662715669091680068726536446947979855738438337776433103263269749108562251674783287476897606005996404084497275630307132693489025831826307490746103753088587674601007050657282596832160929226671066368842977190845853798636780206786918767975978211691192536877967506111811820044956538542060827190041889067779026275975367721380432374440576356164793909538151995839618149532477409439489719448532105695181178171524543534446015272663596771769167396024786459861780161347411418767954449123499497971410385335792632806433638085505276747297590965019898318077669926037022719067860357642948162860201637516026552378517423999067108984854522594841079881226949105959922841372845012370591105794323982604080436489122953364850940596345597560967250624631124927928427567185978963915276289181083568954015978825407701979503550091785872103393428877744791431407076515266514561195001640790326932753676482418171955144174015121801990421221155951092818132217717143380105729101178345115275172121351470038946974145908596010528368019919121308891886007184346489604157223623639630998582683714955305419780006971094930561667268751554989157113683730447691505860131445425263880004901746851308179734607242300056253174751235029703697846484128254852703386882282217528130485328134765431167411729439464573007328438016829727428839287035106270901722047224729928439022992361762201845581089196524752584548604955369374184168365406837614387387108447815099001466890598550964257387193779833536600579840664614888608569779841507957702513788465647641153620823600385958562440635387131475661393951566328547919092753550855867604778125719820535696180870479133323328301068306953817693194350420492776406114291174473256509644498363021004130135609554963581665722877948574663488045370755960760681257252654048563410060260084576931255658559652769345727978135223842072585349918323044934434890109486815784117518589489890334948828371955221790939796875038958630304214484097597909645179443182811312488948271853935264791134119228803354304945006274109741300289115692901595983056892266861594372596904425501676218630088375349398073203064916289073916072862246882328259342812946298750117257157008394513504260841986060289870153903455713760606760755221018913027183599793380353428817396546321396202801013698441056888582584033971838288732080922689361152071686720815620240578456285458187029383698213727659621692738053851152607857963123160586497522442008292531994587270731288286101944120593819948285417619785408168155856492101532386234641946549890023640428389295896452854103060698645142720188726773843415818575581547017715603084330302776493271648384219412762316662517520402736325136253310067977313921253198153702675871966432089566458743511610929944630434848843141699784954045763071959081280306769074360029714944331915273208710560399179210482944932660364724868260105576586983030169880954057179072535087373690991023573321294633955194448265306245824598122257007450422027439434485711557317513219846367382340345224419488821133253399137605780721479292582789249473108265345782350119261416613496866623969745384661307585117890522095101194097096539825635297666266214198984061581476843619495547242380632995290606820664114681290882403591449429198776904221229969383069117248264935862081144459788227193889964183432347416043783845426410916192935982187781414373486440933365454258747376594385981536324835141538397514689093354955479116592838079335873536090014675925631363516355494825484757134280761150258843555349279159993286557056650664263918485586197424082232455071990100614886538396743636560656953257482515215408160187870795993188618230668922075889948885283834661461979544022829832775315552919681492745366563148885557789951701799058041219499220773145443060581953765205473517792068469335109305633920973742416314031212123132085723345892637345863925114936297391571102131382619823254301941287959395093958497112707124910969983461132348845954373800144505082314536379145449451524751004153733176664423986872242776373864957941484677315413182673326191024250651501190075383127837527554282591766072976967199398697728461906928404114434140978970893064820375239232292418370704752175928473868365615941649950024338225158881735741798327901853343225023149502066547252586186458528738203795846530760278918402640645675949137924716350257310181540904858440905192424605482762046338134707199002389559793973779149222496796520091223769181555659002642352142729462265195835549682766384689165105768049354648164829854965390631550195470213804175128970600146379954312810665256432317108255080958808555402868426946724556692830734561756056015070491142934805516900583618285509992442061546437143675208770493409286772048421417414232508834801458480262154028379414652815441622089467230708928535010769629908733077045522308858726523719073231579962158205495759468176930267266127404723904529380263961561531263868271415805509134841623493669277366856181147617987073827380537726593062443690584491840063111242485641123034558431823885534061583692298879321903135804802728026341154789741253679846256966449902266615567127701220626699645080930989124318862465815500041209269259399811157498708607829210955767836393777165068828940909331371303803450832286855628319392390438860452937355581086583669053625688594323558897757790711852424102122606747722886485506650584475203636306916569637224262084499982795630490196531625163369030214867385002844721306403870064798374565639952243002298940093779953901094191636949663575166233039934454610338401328593168778470366142334497755376445158240473791776600324933919390581410251516422688125797928558592813103702999819727612257288364792311860922817153355485305826399393346565329835613966562858724830427655137901972286006272647099619481926159796160375111988317736700700367421942314824915150594995281741822998875201858278686583132613483833434209574091189096988356002589821419946569681681253831379401329404607393578978458510219429046658079520961943533212814572377946766103400138067099574040037805828787830650298133711942710630011506471929452700486931083309394587572244190014626941221024798628591114399937606188834207990569863062534512926111251432166985206687063294781500344099794267035566716381518694833742430177856292958901599804557453219006026740290375622300982684228152981216492060541297570659808174779017954189069170566167798959583224898821145165658431917439159538287325955377336496940383658805176081183726389999440190172929151694242395021981579031938017728533217749770585744490252625202922429690305909748331791456693448334877269828010787558503684291861047530715274335857286820244844496219906389830888374760985851232631931653153646894039753602217868673226166046574745502759475471015367382375077494401542109981952955027421336358314380325485398274306821186538558709977211873535990616166007241787495703772332678336133382376902662122451779942356796735932972683792107795948502576386654983342122284329728658372171311211696964354191149678162276721591061003898849181857342336431001634887445496426758206460226154289142775932186251923955039060664856331870804548143230574689830904415583228537823193237750105774925713313592289032823507275372265147284685941838277679541631219078883032303010467566668973149004627616651790518048453596335905323348015459652343383570563197125266826085900450927545106473796442258432026630194678415590635351236489200183295189942274863179720537372473000138098723757935576590251023748161067281217458503883573273667569770877498693939940826714970951589299569812419032498841879463991203439099900368955263075740108218477354391003342672922907471132503354888537580097616714923410854064595125062187753350837401286009596139504984940490988862826129917471502731082795022070645548626548946053816339608506218994034276344281325434104298693683168439134848433313143490851455014529168211888104016871948001096818910591543311044273832236737743235751720701971760055008782510360673895183572078668026221411508992678058400156023665064425384253045233342314090794747024308510001535409537613064051226164603082344349335014913048376932887215896188340570597361518094340687895350731740184611817615374670137792190870715430291356127143521658712117772620272457872410845223967810074758742504380801035595217029884148468481422747649662881035793894656961944606553464885085763628061393348038019797901241338467524663452934893510381714010241500540914332477207523233964049632707535692000909347372996681177654772846708639042555034529948365225052555409245144513933764381649929074444821167777064457068167807698426055980415076875064316929387698773033094233062841279652770800788629471648453978221728799852072797268911688981050534116082334168600731523920029102727865537993317670918362477973211208460470690592583735118209025763982583678289470552381947618035544502629079117628590139446893344290226116193626537656566884190673673861584844350277014131122063572569466421653002369982103833128422940331542934296838736182075377329124066103403583695254711793315178697797131081998646284163873819459333409738716512097310294656006082224279618880318515818991110802749326558743069890071241190815724884441710267778315111552592751901220582608495079934177817544100973286564366868906513204780933168182857432844628401090348335254864505959886270949640339140237703484491058108603841489496044072878958027865767188905039863730318187114447417974091839212567496037196841090054054122533167219215362505023440665508939820710865456816651117164046572011772279791386728530603446972942922162219413763654734751906919839129443524929869853589503946533126199801712670654400610773896371590116352664628499296827788181162418705400661916897990613372923455574036134121539689459313527972488682632279036659774279152596810327589268214650002970376147764528358940489148228751751181653239540723200526624085619327198370678838466129723067392485401251055536838883374096277192467663748384379818247700637600164369933479995347080961263613017342507990498291486576575017502201870013705712470661675581409995888105214334712074528129600004073927663167566491178632768092393826178142723726839683527067351389933121168766164707132799439439886176965161233215450289385804054333123246093586082910150591872938850291181045961858382321196956571033107281062035622249387816893501035780363808298546741491154831129775389880124628799778242752967377919399103120025163303381412243017101403868700814828101551851662828710555334474152146810790512152520562690346136380871483262548339660502460252857895755049488015891911244561430946700119968912101527217626295178419852240562178134287125552093792576088872958343743580931389563338696298676435640999623145668712973525750743251669020594537499006918676776770156405298462884949168321122791110780233209685447895394443370759016105287033037420427348103072910970071356308478434033376070876849195278490636654190658540119931195552665902065766287278047779532383050740347908087362047331947628440461585630133043876558317588627052365969448185094008814263399908782600303654934203218665888177405274329703324005847820849360278129083703821497978458536614032408732048164075792081832481849760002664464623282032448444148006727282002679638714626505929086535969849276685324790035806104374467494571727334309551734559043392936520757434737952468697222038058193072873601105245868976973425698274614987691365301474592567493562843361273285175167258844393114000799455986285904700176660532494524675180684840955903885994242820403691288076742495898663968043387788804197264218965173497900795555902697482420959908895292416543215991707139688487163405393626438663672931160812989585650371913262964843949102049110556310184673339565264498125388415442665411949933482766894268523491828526143964892942462898096975999148369998781158576922439603265188136592172810920035895028088890560469877297209440140750269787146130067609977127122610693206117184951063524141911142357163260733338477788917634556501691803827594293049571802192509239074093210562363755974807529569543686560181733169133253891083794925273223175546373151715727512658942972754998001323167200819638102536073789735948855938368760012547620116985308853267975677342800891478621897044048638614815715230618719632054401032066676205062992491625209805142689159503637874568191248090475035988089447444586873817929218656253777216470622112828555584101908192530288613420494554352181308883467205992046734771400721698235488801847504465137356612113571147146081135706823189664334204102429220732535074294368252979809568068980726876804291043129407446494015726376926265510500936266806660901297400429985250495078094590375626044490411761131651341940978260457767952826940713495568383657896948186256988183413791976652166054543463946896615247940413816918186213352121502849834982215690516665401508252417735185865626405474494193371800507517401193335112049739945029908493430025716825117946711282482090671506142067262127222502896676989155006827648974108041569978952148846874559056594390388820832652000697098224327105772053422039329946928888336987404295389647479614349659072568683652548043228508273283521904161706505295252447639741063284803529949102751385504526227224050602590473494406502688091328843785901759312383802395261159262640591887829264974607573583416150614517038831048844558839839801294639499196243104234404725674215653387322852804589522213110273831107870055441797767969461348274988521625783661680716687148009845534872776560064915804959125036739494957657050681562310794503969506027101434545371413179800989807649548027560758502008984489412947494391936658517216075801282389164205735302521377850656157634626875786624152103389192274519869306163452936887621404298689681829122240341134494468837749076592212090967199143186837814503639796550013182650257303885725939669330248197347460460418520380765048635764125936762688447343101172704031910930244135794650100886871315509077103279550751243218420760655947046703008849834623922257439197115317221356311636721771651986674385457547085698679942189455683763551309825738363794780221472637945353601061212990921144009636730297815684185340305430386848059710573339426470947854141031846886659488122967138962223958584383560584831705001826312580386758012616592269528007308523318168028237869966415534953364791093877195836787598337649632969039970448063679745506806762761074131704503960436716232897617124000812818992831079843293140635360318025608148227036929853413127079948494820412684006685713335234954608475103263952863693612444187463028076261927853588917815869498347160058451850181960748762812995362837124573496452786388543446426279942021168037039637741587188071976666738131139817224085699566516954380489176956893310044659652620963118344149386890159406180722811817494750357358105855211573110934097757333538826674864157973817351401100247615299478291815153618446833145908958990326176565189754242004578891106687441737407741915641724479500009149775431305619352026147239280001815132381093866212842195006857316622756652658625175673906179534337022659495324000355170755818360888445919108510796503662414739138369982102767380834147051114742684293900482677145385849558619368213855536118443695718914543711940020284678791048708894546382615717102892556800056793730004419621454139512973550166453176015675966557276885139884445465642155116115526483730903654054977514073484912548783332621032229730026195238441037862351910674613255547356001679404405098654717827125386661276160374096099851035963306999380207051033345971794109540398955510297970767120911142779638779267134135924733029846738635717714568932042067414342688630120005004387231217671955986634951816487942622312560036499367908496547013054379810483740492635328104302344531530796700806697415138962190387404825252539113618655838073786339357879233467394558286035752287807171308312234932705347575371871861534711394328227767905832722207593070155552728139145906306541256559761965187245619679128464181380000304808409938708582473712841165387512012774305452082855665845796597236443856677669247581080534931780676183062588084864600371046232217368154131842591991680609246918571849847301046229118596676146189720812657252773625992690535360855444897128613124688556693513900628412732804762904277275325267661350270033146868702350389394232682876844996446289778259283038662138073296023439463889092945404348016002204918392004546080047550614117976227638454024069256261920015096366550389981478593169826551559731932973797527268051275257352426848460511125278174542781335558518249362194534375352281312517467209898663133867336522888412424975696651769719544389416116152373081696908524526046453028341531854033961569348304739325513407612415668677474228827071452861038172413601463066399379832102498840332342108837783780695398769359315293117569829684760174938294883039638328491899522351509799062027121175607451476624979103790033766539396955314387160570474815491189585938407683097759569843571975049855852850085425570932107989668822978216792093068980852210820347194643513521707764297003091333204837525835315937780808665458596548544121288982565045560759054714583964974163708467828010666060642924903654721625216015101117194317011086236278446517758970325706277442848590445481223080418831655076740746245661601796425594738870237337082868750078433117762440208326992231269365138118523457691892030912980000570755948403039284121208005308791708567305630784622437295964400277735910045122810888147218513786930104980870556226202237444247468456495695985943655546254198227201168252908351801973439133066742859224748180291990434296226611591789351767602828092717823095001698658648071704107549107520921012856289686239049079770770401390331527709779217458522724659128588211176665780147653144451115673684241985836993880390683877943903320398923112252990888518593081109855794357741380318760563451231599654466008982507358908699969074318199794461774666954162051296637544309689879592056571898242846780810932025339192183433067185841093203676885395729450832267491047111371811665525406563694364015609895506600355053900864697321971327689468322836500532165000620191302678242783870770814823616005682508745516426871534306222576506727937926304608113427448562573742053726245483411125134946383830428382571950874962022459310631412839751844592717449231110942006027541704749165750370227417415723124208932444363917934534756987167797024045456616620866496090950992281329923951142699640477027196201091446264172584176585021991168885018138766418944763383985811182744658870108774348353263529725256616702250506947236412641699471174650255975408904068078952022049855434665893544768101555454140904636792200418061987284548208712231557943150344135442609462022829595840135826877437629014781794456499611405701093970384823382311128009235221121564443580895043932717466837604620058081893353967582350149415111908793518044269254454371014406953717259794318263672138873504019412619954224985079433257349635051449454956636023469825901425746506853100510863041064645342016483905572101909477559169079509581798875722815938535410077291725985148389173554008368657858942376646867489930278281012954107131018855405871618179791289505782032234694870482464356695767987160458177068448595201262054543490327630410644827475862894766819532376958442761614557957964334215492774686358370709885127734424302782025753134528431365155724772174264821327737523497792001368463582814465820591982067218772779083355597294467116508975190452736597000732794371946151805019932699505442519651948404659038013845386561815131250606934715547325374753366053797261831601447706318808601489340816760666175122077615866863213704914129442570105753237567561594774297184880019443238264675801862486162431132337487885669507026660753618525999005951061293493960004122241734317884532802135149669706242719705985836325333424305050784358352588233428494018750631087611109236458286380008519228263201707195705430998362534109941668267701500594614954744370675892710200986228351356076647594699081145205878758202223862718652177724654265665162881340424729936464223168299585854947880567430743552939508732021476919937362553517427004383292318443530304503609712275492701933864006028608823598785760668960423623271403717724844823956391787280488053853564056846136440343249631315152275699715128778093589223006780159054747669961471137863398698076287295039639322799815785234320882977038904994596790852808515186323579718705724848761896449967560020339629223664128760428865174169031008406063045489905880464072021645184170848124269406897499664778739924548579668288728274792829990161586146656948017815997049323198813652404283043064783664305852222737219134779452941512781126583015234441318236129573308124204340204619323085173807233031417214800085413438380590989165706847315710282014987415984493700440239109729037821918015375848943058548909746556192843701219805285266236327920230120578757524382325740264858015710063632256058047636659905593102964275325593014212225783839443862948179247174291589977184160668088206538675426701430454501462289076210372322464708289345571724599900485957909939310456988049487442949255792928931204225819709363697754614393994600472732838549378772749042255254272152733672150006706005198035905088929503093321400265644189628210049915030693573674025041445836305327688664612727004145359481825879919503259255463475322028006082994512939191615188604585864905088471230119130677942090410185301738050832884637461683296188371104306141059211557871954154354373142335460300679596300995409204385254125411638219588848681306757807780924356927276280481803115788413708762472245879403697254284357436015996130092604193550226385629678911113364587806709768319680052723960397461707787935464437079365365756951986681350900892135762516667301650697910605580582646765599792993504661119056163069108729631662070302267730135321177847567593343833141298573310345420103620532921037277547787644550030274500048655656202031205275385226244441339164667654064790583339974075400284929342224796429645285642199047914568649999906641372113626078589033892314307253005446670650265844140355803115210512520235634754730585348391499129434391396758246247637456862207490756871155674895339750081253610115688802301562007847410787448790215085508164761072594444513874009151286943141973950821273634392424294894543722252709322679223675465937612474188284246804563637236091007418093275673381555962592400706012405273984608903667296801174794377450437508262857361517025901413821960858158255947246855058877257768640470118465310688359275115562262558013667326265150089531600943685999068759186515361833402624025533463410467607358838782873515119471873457215892775631662141947461353442558339175973994451752685566113817250133616302754759979093664384902395081419357469141652057465309513504344710654046932551447138812221647588537598515749125025002592441337710067872917759697876759993220705959836826750563307660383354623654736716760546131081080890412748927438241705253127239163663710333658495325095579089082234021552182832782316857018254955573909416989333023823191293091722419732536106778066081010574308273584211861564989512386786712928835268125796415980163562812717348025355973187264673874754714379184623788943312577931008070323184624188762464929997860095125754400035028123905464633896994465029662329946711420849640160082041673412812545575940837990810425491395900330724787289861897918523342065517956854456328409064142761104770231673627116618894466440620077058518481048162620903965142991958026500323492270652755370931158244136970654255002822501827298556178517281554381476229731690853394417309199885028258398117083439043708228585401235456066873834657982181451631001167397380284897691205188423520479381468451764694394414737915616137315909113398674263997394675796573060039190899561144724026559709215417631687023703619212708516125154853567391778366824163105314702846628164877704977052544801929185232986655420915364893832282467438105977589909498569109230876126613822015255026503427966837926636323670874209773828776556984167954194434250663945307298019982817486285916838116851995183035957602095010093484064557552661893532026741851306469236315143108781350150027109845328662781114450043031111972216231256671189956891651878332747382054387124712571464066175855158474929149414398363425359887830667448892530033675585470664829791277805594864192633274047996713639787006583013683582276284494043621020867984613014207258042246678792669682009303945932885114579654923760484403320891815570892714485777727973274615087642944373378341305635427700811949812098939918855701111652656206847684056421773312408493656706969227334356528545845172096307012563175444355707463780766081069780823485245919906126756194312034445654847636345804563696313700097968577270544932059946475787489357812871708981892003497704210069451121226392658234119847153925817671663906963582329553575973277862787797314248657918795120675303422335575754266062906449454035312087750647382134293976821481128500371258944171664307434382179633365491212316918942981502504058145040374923920436362943402572506529860848419619886468833803856541129110233620881713937594690251414517860126312125359655035224040773610430136820252011114076314785473085952552482281818226282916324070314175063688883059339386178869428525727756468202354839833232742982003180903925306273644402755743839561106480906476290596451401073574468861354235979418190253293749190513121332257632502654280931084847234597543859192909293453542080627336214586819400294835888949434840531383244084004110458179623665764731686849413107672392583057176264460457283827765338684254930812154957810428044953779068051940574875151097220725007953345616431795934422789665547030012697465407146094276270153313688153526642882528346285295203601376670860045427915193530945918067401113896916987230135382598319993076372394603391510143821378323251885472465439890087411421437931844082424532019431994540414719202931986962372051541509140266357794229158253549914195697639942759624532739599783044847564380374830535760909565023183717653573718100942396710661662645695996468790030394479840555012025380897814206851433150645045118793384095492788869895563735453487914000796911063447101960893578817733928196660561682050609762092295641349977194477027087280851126244995273128182669927065272526679979482462577994519371461219238043941181425518750266533588537150680405489434166396489246826220093082684288246743165471994389245447115583994498909613687598437448007602892270705729621886157499767473823893367288089930045566436525517214380617570537445849043009152582519692152917790192906772126424829238059821970603289607614535486934102152367733510780904285183837849965207207628271896703473920417845485036949741532472641112728152326868973067785570043321126192181135961430561562414455571440559778088483598490771107387783090572150917089344954891511168997186976253515148087436804679483810640513238597049612428272544293021350667436311967524116999511066159675004755787104745679141024502122206625679881421943716480375645122524915246253442139831297828795440039226189621390917476255433739494945972830016160923903465890764653346247204303049321014038608500164474098367836648787877550795790281690640226001126456002824993365650232652196133005476582614986098442580887301528877970171802631671903090599591623514646088180050913837088857101891619587812321487216771373213159202973267236939095022902434278166379629066056670182384995799864840347795882965131588503574130648178345017012931414340313800798270195696239828744346686840782362751695678948767564719110185643710777351254674921287709995142452953757276560894339607680197291600054858749063338997988196682003409740664997868388566992696136573124021268470696199209297533873957956783404831465048879995898587097962614138387714020255036312192847702261186371155444272381559043882470314293998412436456967843602515254570079365098350643172078430086085122337802566607057092339608388095006972742713718709562813919681341280847687368277891957017449021223720168033636740602219185143518260295543187108125672884442561402648651896112707910800925345285292655512640246694078796835590027042867664204589804638288816921592072629645318149239756573684259103634223388099815242532575863153215463769699816870189121939924889354063686588619846147643647675339591427425778632727402327219675232619687243302394385604587921955695692048273348187966259386101964016303573618488941577265966038978869707225689664670789237368392783815130388084906759680879873209661245632300709764543808053592345833581036229835904649949133993061686034765145617749842020950341558174411773030617667000088255688632373598990107357919506182295426203028381465704828995910807907940579331806039212790776309300672746147323956207414846698046213459547214832460979095908941626017234307638566822998554986688630814841628480674263136821131643490611856047600894239688384906604469053286872265168572795694727514830267616651631873323885377510967731757638406040078323572243552356430804524801066165957190621681151936160590643119975902686338366202149437290156223341982766164776191181558273896683668405489610509897074872269496962889939039768677911429653643252295934751988304186291960984133846427962510439657070130909430269770840901998466415699808463942933468683335501722879605529771864783920310465664001419471996188228168591439426298871841312848347984172754811177334052007350896014445254515413789454139416523571512690075220909324787719916786732202830672067362877799052259048268217089666421894461658827817034607871195549578804014756443022665537204949993675512236008336786165558809939232951641842973387260247653008691369833546689428221264790991231136620293403333902422712008588147151014461762395349842389199879533698849647469965707768294025810835866167804085486085696401619464196855957867303604675562481280656062262504719661977495760508308293779621013943298462761662123153658894651289096543680640460739632841474387185062453740692001413062245074165424576234584171765430776954777069731424086070326237789756539956134743293794769212145315861652033470462839884503193321142869676229122366158519376469376365925035741160657966960731973076694881623597501883916425255899223710831979095586681521130728032250891250265083063353825471752431062492315494266636616166094989870609353830210761411907400469042283981482238035012693348288562662878501023902598099809620745409309135681641201916958755768066035156638605543828151483763030633650773981479779750774020861113457818933217283659395962670983655656566637498463120721149852825698752092894802130209540540085242515405766182859032248022381318733506172332010708708213662863960840629152722354500498483178720312227885167810447107430407973499744704331753183372951116344367204255719186970567937195484736683647742586261129088775036345095427187780469179899688485403027566131712385684020347507928854435721742265554651640181635493401749115645773195730986115539292399007975296910831198983131033631761627043621418446791313268152227598055457099258092775385595253137896377532078750069471271638967830788544166901874475812853029222804157695298466467693188682520648521432476117701148083896633460944047282266152882417969152175952842415847815035797298597111872138812698871544243439524122969723971623197936781766506887196393572221833233086204113862281413597837029492160906128059992143490805173025403210946029645898197726196308326281612230089109804865256136931147114273174191361034413600697896437115422290650165826469966015619171482709104077226580850007250350513919868597377535999899930991778678705581337718960651374726026434619904357577507122883426076156494116487668992583320722706231644179798764610780484671650768661983112634044254804648630639555026922372958971070906177443233796901513318580713010497792074564781713931015458125232924396713470094627889676220879161132868386788688927005645110804684255571512455338773007471117660334892289337297559584373365225002623169408027309616720476801463392388401592104852293299372976361084313632080546707547371550002627283550085076822511283354175838222435225253014331616061699736473144223515781842673124486352115518584002540559072562634418614694270056453537303370179510980688932939072607184655005786303925956054980098495120311440168531485826116805432796928486449171154103626331754402746759565356344801637629719845788100983538004343781495621838010420328401134992952491841203599433061592274973971498435880057199955671296911830568500127042254351891944164053624293810325415421945941391434028917823490516086733220183772362923854745162760798063351040831826497544618727968545862627458586052228743821849900563537244817618087163753004069544599801140169733737305764934550933574184191246112475191013284992123631362208579056843643178779313706267683120974860584461758408307142925473596870164717608682719666926828354770676298422646398060958884517823149640122883017327855712638347927266385251414688303073131830328248867157873233590298100410944515475240185453835497870670531706178742060949852822188414699370042543880652978884971319366995167196841070125755093734300113208240017074233387559399040689011735800426127942708345902405822491176391533498705174930125224181186089179798044488683312318004110647277746395983827987319955544316908840618608731135968852019408168896246405793103447473232992351638409403703414997714013843058199881655241682791125751680930712741889668703095585389950277245057472560591542520849939147129381915627960144325649247007427662470196244557848260347331184744291611150174284497276560865742999801461447568081706033576939963271719664212771229384708285973239043372129524806768468810328702183311556895646387807605955075857954223713598495167156588078634223586007750933956556130887229295058066526345172467631582096540059102466536491685220848954905937774558316338331741073054674652358380268518498160161815569599224478709640450355132432009950479555601485758070316316377064828621337442723751853747078251262128984971518802184108621420230240318744076410452906181662778899425571008639027954105697484336941382618507875396434892836077093319569792140672135667697185944732040327524583368395246165026699772288799219016043598822399046604341139700393973221964111028130352295720848159246440843862815069877637354197059828403060578576878385075221600626628432720406915043185924679162797718659799832870886835581977671590942832647306164867843638855209310035850518955062845423370098840610790337045915602183611593991409928505734132296658252761108837285280341600975634281827474000407675365360881737039533170848633295202865778532282180368701355193098645374904239123703624272187885329438053644641870860690522467606775464542072502850915779049954051733441455751999286253551168057207213957098405241997916120051837495765656231749568095572442930978204253131647555495935362364363072607303246330248646183659453237849721912641331806619685982600568385220582189769424852440773526204349096810460134848921008542484508317710028374182431319913957944430247456548851218081257696493896465445245971467543814716574946810875646535229981657961201896249238419610509070437260094936620553274024175498980330982054026175011307335531325428372184398919159886773024688994445749274197098434379329474318347950334351451938279471448028563187558174060267350503191735240006216594194250614383532784391082740347641779312579034367000778760261979812150557977186001657882541945694653707738352983551765849012403243406059004452086789554371827606881546399901607616301446368903079650973975267662472618500382975833754953099258432321263129580886878308962883063410777774493774987096322997350511820386263505234957854357071703367092745811544760718158366083441011611220424173586752648440680606487833769618089840320252307844359321897638569920761782762628998173681362607620818785642352669166594101537196382067488113978874392108863354150594721026371130180301032659188638793551214650435040221631630345750803081688227237757960271861173887069398973510523583070927152494264122780045196164202357549430022690618684001550833364114568642950955610450659630536159452434572023257621205174054668508246263915791595290827236935932176667093585621355394412240344040843632963056365680301060914202121332594470161510327165316657190963766890320504801771727486023538948814540900461804941824446786686875651659588654998926441149289187501819575936564701008307088729708591953353518205127210726616686490519316333967095246794377279268185365226785821272322238286578315139687238036445968349798168068121870833996191372335228040974414946123540222682118980780915386677534081913521705594739498985386924191619389133117048892834342556026620158416397584217802238997901660760574853634463126238605543634133411764655371643197937083279593825636234304228430696952211173367807626974428772127742696398065505014030989569650192441798637969035150703187249018037688732645461118266377503293024980870585486154350934521769531490989814893887384686536370008061554040515057568596755693631537864964531911089914103435938440330363101172560912218088180274797118452218489613121386920291490961252671252389938919461908963201001338098289283866234672919039326916955756348905189556473523967958166664084096133507895210807326841207867377058318616621039390325340518755044157190691928323882744879360541863797149461535057858102650618323547242966239553351321074915224277862332770210714294130538465395599928003476263873325252822303376376511200088543338695584791118512743441569692745065200662398611681015972876405816228288838694133829294052909305780597171328623006060791335849226075903368839637867299601124733751682835976724154487632520704070789493933201307469155770669822606235525074387313157837204163820051926449791583006806108847980823253023910167818109085012618681126578776827600855101906466501249820222549188021753830767729238092822883520339119693126686278489050696662390072036848780628359912235113397327660774237879525117644779564966544280298721811402614801255019864385025070910697077053342193147388698421352621306765966106264650511692038673734722400317759325587129439508084196804753115168350055676311501194577298443063571804680229256063823928952183737956223530480053950812012134891290738167786560955628378363779389961180277348070796337525210969757461077399577647728261140697316396797895188744398930978713085624160905714853339152722858519471943748443310377992641941167732218730950694212995923525752943790158316150917195885929982611261077220286320103380677416041729686052158609255459000374579212897147580728892081140211499198415615956652044297720019458970666157577395670977690367801650855346690373539144723967778496331366943276396415217049559741315490582724135738660535555813959926011195812334634583458877446941333306296024782789826484133272974874341468250028845821485305478991139580981522713478189107011712659517171049287029356901171396945400760445025611483335402619979544504217619186097530480738191504097962290787100606442955822669485349902124321740227142106866088363346185058205165145219569823189373894262478253075456460228317821549782724259934416517705492245515032338945728349388144429343389872506668126075799556188229531699887067621869472109243112394953206527577190116795907460411507617188480583535049430802361698146377279354517886930161215713810210615360676573431970314266323649486172578819561964585767479383921983935671657414404628498484924673793637206425770089307885041424812254122795098781664536341544971203168619667371679894271711084530770725173375602464584853052920132264435296598809483371412591892332050586904884738999105134578901180196746096192001270882087339247843871667614139163384072732552423599372083616119383334872601861484050420794097374279763052311913082170175345769296527006870310751579669692368501587918553420389730811194416368382330634361115969709833680048871264446179019179710039744258879168324564052818500990727815953568548676281120071634564367025627037971981637806629694923854027658806405043068786263933820637302104710272472551419329691992452471867301470954139677782308502285278692419794938909327337242887032421428991396943917593485525974212174653403786985129352854875169303315410758215656300991857978671806293748631899801902809218020023311023459344764548735813482842090792604686751487775420748625262887485218511146531750367825103026537125205760947671780581548134807126409728908435417213602095268098763926067152609939283280782337065182149763900369306765505761147187741788328384393403236019969283594948487807035900413834474106312953002780125240343097665804016376251217957181594999787700270050439388481270147718504003014355080427102592270388325033320900118259204309887375429980457275078990087361669272751146591570627735532640019556764372296741103571009700195431509105129655837137400244785847641940772322679949474526213208656232418055736730452227191597673436106522801467125314895029767042782838808207254292743574477181985342279653692621683303959471901772975557384699800647974503651076097849970099285794321909822618075664691969708300278205073122668218372150221218602175411969797926515935052677287855019773728348718349808421186165025943178563226664288010369087153740841400483117022506481618417108297924495222351227585253187230817981972782104469151810539920143773140346954431209209957763998563343328957672221602023701333035786785147526711454538446132586301054239347900833385973909300917541237077018282997114607443604528565078168727924747142424666626449284622848306403505249371619252350583958466443346341291312249542445393130467984582688746173747258893938664737393163014583005231949144158061170434789736086787735777914770863738749017692694989251881326802909006073880173611672558640593852379423842243471452203124413910739775578773447943593405306028490522308192620917736115246534065179236970630610154592247455545626211868064207124393851653813014787392441834193744425497410874654971659915208062822930312008885035434687270937225714130978939202567519200301074746934229309909766225508421058950549555312468133334128223306840758896046378039984922807537737395503259072423265895125043229714043390508636146855569063193610947909138107742775394215288160364716174221455355672985849593586974278648352628399304880734247085775217325753639884369105149944259292087255627953646020167974633702713019645649906565425222495656071043900852049140108525308540839653299922611994559105854342147101890585005350012119419707704998865833486359089078804621952017777523443328698760765704565774356887317699547279311926820597447310093826440055415323741786792823269377332937309064324664978053826280821573790536051574211416978396974151986339122776142501213229411172057884795193843096075436383701878641496138448662750040297637743873262529372564040947627651272700083722845077924437072102869392668209933640301276025315205879546736538381608585640536680873514872010055393137882279567647280226871177444492484719452886174434771928357445373715498670841038994421163824415376758353857016204109708920907478956390267787852121003697414592462852588352955238197393338922283645325130394604048894490767561951381667227151338331521610676194778064422179117770142221885425721300139400055076895419091510806280054425848360715145545653171064348294851619268994441499430130756369502079417345649372952817488786740093922261621365408649014715304051359660820996582946341311847036819284446145239510309021056578340772998186900136879846565716716385212011180164763245244614692778732563192547621218796243799551424460737476815956354428989654038223875241889098813386149687217000067300903526381693316198981614315880826224949213265665639778436556340766744326033894087494132648072300975784781592602925310321401187520618997063209251573328325545805681044902086306105973193808427747949650904245890096002449564142429283454026921421871387622349060630000568888766057220394683708814682258420630675462278958503866346570097249583358146580063081993691664753235276352932847342286613503389115868678799762396923352767585900288965497858425327559621819420752853381319309136422323552929929903421307986929215887162808745433134312499197059022774826023125079149970886415493751632151990895568668846467255258339189654765787907595232063625964838685131456203632381766740104191578529334550522899966150942518999052188530223077033376148041697603823305685929155793354675303899635036998540179562824118952024071907144600003796383792979503396403992729150017252057239763754329577106706311251581527530877333671538221659022716080950571458151126540827385753638542604306562274111331767589747908689600449931440441874304340464805365048700684640454981539933767777861033359559793066291869704962251502161111263770628083333368741943436210973334868447870227479164753722177392714658327841513750344192292356908097616133823669667784044914186715830619350693819876107430867407281407507112628942006640213297463182742295468236917211494969969949514492866684869136057773393599252751625657278535544963932926490991642188491136252175137197564698465760196089835190981508805475040017743281233985824052483908496848421672111821067264217609629577026535484765634270028563870540441019836287018650761626179255955143208184435661949782075233374824706104079863939401624248006213508850775523885424422319113057891887151395121823062272217368771451191865242608243072869859261870751515698827626539824355352812041914112960307757974122697812438715770216491138610948074683610394674740116062913517465477998462717556085739583647066385947949117124628940360290949700144309656202415944462321524192358556677107309136979416337074425138216897058285559182806742715333076055148964221253074466892486384293846551246205264843435747254909376778806373589935187893891964987474732446636848820351698160655336957690998420667586033969185408803038135387188816483478410117868672028706816491934481377020092705165029335034946169656434788717084374235642495124256515512902627963933260044582451754438577466193965939905536838204688282548422250875933089123689307340075578670211020870228100879249295083249580464430536530337883542444573557169311067256345840340405150120787870445550663189785825426324097775195620441267453896441719576670480378210805275366812953586174634903139688909887847621832782746147826901048767833695024470777107879544023648862555086368406742867929554165954159266525181594300194197168706227737150967544547912574928977607771836130817587614872428961018141623017510447226789222351702411329564400414459099476023425305194045328757889422755665618671650181813115380070625936145194260526419025139594345893474193798848553981778739365075982918737259405796461798208128116581911599602293284687028443559274071873891142118293563673409088310289401398377754939076336132327209842791600943188172961578178036129864841591506800667332322425084816106309827858238217344872682833272809531793377367323766927656046396118672147073475530849948088036082853322470426750678075934134768653720788622056857667655388347812623160473188817868109591511278083243467876051298903038997485543137362879666533348076559235886761059696273409602787265116507761331429885153544458435287440393527486867098565323392564764302013305198575565702290923312743063673526737010124107817294107660869299837058880272560789169824846534231646355535062870487092938088483416417698883078023065338080380587687066868289781684267225052334980308186420744343335463170264883321216813438136783392710538414939505765569270115761525459615719175386427867473987958704715711772306003422500187985378488547744476274919240419003442794699051103297275258018486416144491586791696668330501128691807337707645001221995554858931442955753863901403022692344175194658099926361893008085340334540092636706975073119172034957807483334587818715764198521905480515165321623169602431988001892000987714041808767541684731749684916488005583012640237838363200849883137153723236257244262579329277337810303955055412656407855706877222103892784994010633594058725374803373722313098336569331550719677276690356327456292052807432341957190581589088832401571874180486308930760320612984921917208594638336008791944463561653001262848110428888805629118663844515033782916303164791163064089976359705263101685596325766413171764300560610296096055879945625881930967074607437705364746642396680413038033792421510281091213671409212666588942350598832492813520548405212234708364789673101915032845265031866597258850695969606605617116460528456289179363367461705734317459662747188012772785699835953269161926234400207580669230957975533488411035873710931198245944683533376879440326766970641505779936503356956993252592821880253113042659228944327728490604813117180799560431704975455162496930361148571827853181555050253349875400811353375438923858289999394275209401356297698580350827191758062296844874186437763970531480921454798805196563918859849997874083839991460984952393050472194733583744133487761689371096306602326657732075159075804393523142546310770015937398333046822367807669852353032388505077024280655308177453690227122957962015508688281344124967222977113097246469238423194496182394273883243440412164747141633442202389070139989023292729930922110145089019531190655628900600395529606049852305419971782444368444258939010226811158188017782266957262376704734034098369829907028546140704727381233625242884509650292901921383002630545602231658286335255958991229823831008902460497958221620714546772295578722976334771892056794989944533258242944753986011260766670497345739483482324400849234661633219413869266032466062578378814688884189507435263415479805750240635611125148574377209224402009824443467231916328246393777188973578740568961845392571508162067938967825521137347734438367151338412963990736144423684388198695804856025146657978486603077544850830294211319255190914230496096856167199068947590372175238068735469355634075153536787641195826463682868478339165048743845821362525331045001760486414326376702530667580364123308054088353848126419338700623127826238027941139568425661608808469503772826124059625736205600288356019161772485751592655263329095798760747741095633629151027782725450326344836342366364229902935895608762150106332779550747323675635291247684239970443218286528896629797510612097660822972387631492669770629323785969222069483461158485099279443444223176716954077191545986397028799647203819869814326661759383185137843142243139794776849590017880228308157894293802071440650956763029377696870859141975737908031089112772858984576471303305934982041900980459325927299215174422812492506026164745047671016767590840516823601890959827504552654775240285848372511467470586541642670180767323173898728534115153489122236419894162526826639598738711860465217278275594123181287697501753458910631410908552057128887467718482718865986639475950632213153610409023733820223559702792950885376271526923671561777223521655970250074553778211402203372779441571898044685760754655198309294338332735521749512712864670397226715439634781901382956740491347701399113567191229025949178378549769064271599415605329836878534383307017590129971310286627197315158127588236578985943516541445587977022933196942384556115220291469992064072385378957685551647700274286946782649602117245742955296928217558821653894602302748629277245525522777142443361800403019930295234339190069772868096403673651260329773414662703112972865825328932277728637248124167524905658991024638639399138068676771329067399784659538319142209796358510556285193244530548218934661949212914139812115564447082055336691361209963537807848928534606252393128622956985159572293303512966026146630837910880226894617371544321741709831089547762334717425090877857764223380174055132781936165342257410779413591076991016527042377800440070536834535069426913969931956488411501333227893483617394683841020572717432419158639104177285088522199134000981450019495680608403956526008675827345999507571339397074103129467900899488144609073688133558951994877651066820049192671496674775946278333134556355854960663081180134457881227017328492675262067840772625072572713026776241858019705066747749701295333849978780193298756942940867978357891265981875518899455532119526399323807367959084541433480161305941623480221376111704605753780448161826706396100773612577113535174976930451778613732040847562426293021706408095251501880227063555058345669773955193255280936062276049743725471077043533462374738321779185276195782097604850950598566002512365135491301568729011469889788804736575848223303901757757718473612189594817386505451446537048241173897263838720511912443126773756807534599502671980179407532865885392390528659606369049230195802268937626398199627571544789192430764773412979289280583446998998712714366107329310669116404096281560437932137368905483326861570712953559784439009553663776138295596626995698837039250162671239794023160476443072987539502205146848422605302174523153166025016493793805013375223350244914728868192309531159952235252559609982387234708135374141955414714134456890997754158266394310910785213013710519010083651228215025926693589736432921506472224085968051479793439099531396771185507842521044967187748668210664925567813287849552911350800513204376827353487464750257859550004363079610722688754380737614427967058494085743691880261801586063210966601472361950003524198973659060144201989707629372510602074233737256371634666882417266294612905822190709145636698103466686503675363541870687195290924301913242813666154257146478465623368883804263041851023482000421536720399249090273171604292610494312139640756011457535241907359474785348965547607595158347408313744320876493922823816858809473413750777045944514353764381139330978530963689605806619893108055478828410789241360634080939516174139956462858848105778336342384077407056978495658155069632141963506807629665740269008949706159784211753908820840890342590145330835381439157233367911470166665595332136905720054608658493911869229429144460761825555860801181440269109093910931266816154801283595848386085377305151198311794368038094384086515498213334515814752260357657696619958116969384507814863055302187920388617120820141531569559300334579680168049183353746136634124369715814394613256986377051092568017242932389061266904474119699518408652622475619686273719141009997897995746032921954487578086103542580058219909815645631742341644302345529128421953865441099714050413011321986705196829508134591832029140742512976189629791359625419202133065078192094912357134098202398278143662592205089429294250841202942119706553936927062169819493906097728424634164194745533911437300770213972377640357180456993024083398228221179823976104228651549338727137680872701867490214642550002889924660043437135660516582978041875933026898446364523627435239625993689607032360623511142665354195060566946050947881293736799210490528796222134048152593780669027702089776473416904581033134414145515602833793413989180422337177870127787199884816133620600591114035631921124193671589889896566152743661400477196248745759115368700462637681853155254581127204640012737382224580161345392363634391225773968450107302137929763705873622664070932580103403442455072403481058975682174447506933818696341307623349759089821704302257983324163031356403913913580916244931348564278972957829160653246085533671541769394992890289894305880918243154832137493234407266215803536466853914759320339863527874506356155529235454856684831596498212489333368874017030460104103913339723629454701011899722221367515376438826530678349497850133557639710444939821884525943099019736765796119178098936466691212090067769367499782135827913279851445665575650096099213863283565167232159207782939137475834099591744053976929812344496358677236297468625785281890403909778010081885496342091286486592461160599541802262727240802784482556929149902430596485031035064773738991083517360580134692162051507834572444531634221685509965657275625452020891809394377757065040354973109650439088934169756177457369997076608287588646695050431032990585528551006859084311573816918919892504553919978459050013828026072384149997889254799938395293233399868588566207004884991888836815314925827352803789698132831762306718531546814558141630477361569991352212923828282530762176694782473361446753701686487630077461449599662355030309335987966296928525963975662801253353375808857243234800186137631708317706127325916764822142663715268190424832449853191219120038711784451357358291837284528013493566554163863285358823602701580795224336047423047170724560831810580801771374475992390461652509647096681322403870834672304042565741265276620580724201007023241820425789866358326584983891671160124498967304957024630107939768502770766252552211614573936633851275421846694878479845527166809038357407609988219845727239695620910038116803171780359003464557552990377689297663620165933165256119715613174033627143928849134372469272579693424483696985690476966461229344269846450739978274527601985357538305664929290669226276502733832846891721665487246729613836942390944225096826947913176436150103554641180198721831876713194101231637734823307054672230636678208443184815893701985638030877940962658740051385476164125397471160320014083180778678099276501061512882726360075955960961063738313312115063284523677864372324252913165358978795647832030017038174610789054896052947044787825033175336214740151619045116761449911518550816178152551330067134742128978107840763055804597708578453673884556470732459107857008712981827022085139342235785492036674006555024483006338868499858004565875932544197268979499635845954570365626609961735208610016847629045554243878447032367213161069636118596611399896921966237482129951665071416917088110941258646595568705938102233244681954474859753886436209813072209451145987122965973815352490109790394107927220004046944124601427796041551905681616621059085855613585712778349804078858666416852572067242357181190701515352708492596395993408358309014781609268501218633326805385432558559667395548747223853687860274349974423826712917313965802572447836688832372198112803159724544403700677478739605097813016172991629726861265049604257650655675201500729963229765034766979288377699518077731707412732024879730442284158182454682937613690086109338713877088061368878112201866696210006772296881341760509595036149409841309937254020070124503766479595329615546760826463928783090951147318880456012492557010085025692387108568986678253521606629775860609965952762511578538523991096455763562767093408264818815102155648119133271707825065938426134468806332702986362008295149846100721670278551026980408416616518792393662863355570170921033481737966282195475961837270907822386235339761563543361307882375142421425066288475414260027561150033732088798452612493914042307037316971797736199359727083582317872474306160141892448137211990590852657498440057244031530909159612158884712310903132902656566276523229158290947190401023456064785679227906795968965091606248039913318113838555104644973432417298021680706957882965760853889088310202875148198971541799310243087063747281335982115862767042911670132016061059409062060122004312274094558343130710751880506726240948817256816704943248731695917202079951978896947139762858619158702924735448925608054932316348435033318679059018167167083919637713220120218441665402163390087973983740195628852601134878967675403633478984081077315510733505127069755867816167468546454600731287255794935881367815928472397948663438560788991045349131098665180615789907438432096572101281954706728253147779401107876132890668477526030616003151675834358733616000016403039481771928111082563363111111103204582381878207772501879845242806235764418838623141220880251804889990540213953663607403026578578559488764017887641342559944221812854051339670592455398147062430032319972525477179510383769812549539817399754896993553640495035007576628652532009747591054427842900407122394128765922686242193546955490270412783731681980230412961654280124915447160115112970377451033763916682674419817558466513264641242648514004590737297400107552631790118948218889173461715174432462571930027488529682502383440978817751395777247422420889793405136968659007022371420794421580412771431982348948190602146993427118088822381420943595255237957919152653314751811502948651319396538869727731470493841963547313052831367103982088714194563899121169696080589307884620866986109156788963671184049740283966580123378953914734190085864858936097772923898573308452504763472505753010142842110453701478689344125223310144804252779577786802218407960978616915873586743924005172558716083057764840234276388875451980988684174563812999323358765564600401616992877204982216709172493638127685815956573452138984902069762493529770415748754086517079089644073570408299370118507503869645020284717872664477273065632620423063380669379270475737596666482061897377530648119148151142847756551637478574043721283746838276007385556420973699714435289361810671613497730980247861616803276018825740751102726797673474395646002182474462309852804071962000704009816624250449108901991584521831987676786938947825225065968921514471566719000136531425056149600634200634613145488603586146176091150325796493462254541868446273410103872618678058005154908096803961944554655783731879702208204830050673075111835764176493078570384656928167878307487036791663229467402164995605508508478454550863314832468239314132867466974573384262446281721545096195974784315842569846750680149688995989314331074037859004714574480343601181492744716322975203644770397163116435739785631521583439859796011611244073654132742524812676215096985331762614054130381568575262484929387301518124876772780701219230051393784155770785423044084627624211572740820997786299365381114541893765336616359981587211922576698109294518846183230295053286230931266713282783010201239874280725413147968169851563288915090785983984714421712430397932240882077043432070129216776414156247188232182551628908789805301939957780381020159113313447954503849559228408137530819466318290246199099136444481782767939533115480732862821054408043599095646115279466135513763312068444714499219508821718816944277692317186806512316673401715867908900822124850425570234243866110623259934405526377457064272648962784770477195910554103267468837788257790390379187520641141894088466124144464793576556055455744690472811706371051467173553912097198631125230082822708546713296462893209107375045213313869887471916054517077405458706940922618461501664237957285400839918790291257683194009230918020317348249871217689668530010041426542836289211441686220736832573205237034756929782195492274398724339297461215497210857226122652802192112307445122968361014728447816694098153841096503197514071042537806047920578349817978851099140755629720324994372471829808844059479225053151119901720204232526756651969787346200208634992166325349040071069206755703688125655280081680605882921999511468583313221305345422325302828343045404516017020411100515623833942463763977588244028341637107746976762076186425930164552597056678309283865275469530499310356736042145639771976310034847503676293881941373884350390146525723025572394840091162625458347742682936521767533607653467605317377036248332746002772576497595194071719500118891085039909126698783789586343506789593047419054064871611679042136228932780793609141130165668657592319726316905850827144949503871790713839594651189431205216019484616716840694280493998075292657119087256927512036985033806293585862370865672967828904797649017393006681721026006774764919739484501771491402572007300164642745520875900421696841609408335427769559719046228923572211735538763968506334735653341268405148185630554465586649723384383986695002610530720155097798273241970209449871307879485843158005225158713130583341497009526304417954702964112716544089779440551628483249395569815886995669088353474794987610302435819745847294144953060962712228572587561204476990145404038995673181963495829217063888776750364001583292564427848114633662209006006807422475010816971106862011734686004405683334899170464742494827397637707569272413822269142958373973291615239319195020943106341421199603404010007224344405684314788447205552501250555630199747086513863615802638092523877506341579137385133508926756766415356611064319510639484484073440389807247191825867061802203430499171484623335493940839127775823321355442715925148816026625083835551069806991474037799243501353668573701494842101941592818134341019096282593569182225664954595086582302402156377940925747963720846469734080196191230429237381681550756869728523539597857990411387723765222696260696699760363670816530799048745884769263505811194089237746090233908237461718653256758281888102310496558346147078280782046022698728444027737512487630089367026975035769741442095762187328003373828061842446864997979643755852868028818640963506093219896268247592526079825240855898104222436513094398815742445342020494114899541665258926006227644356462621149850727989107851281976054230750593256052915414649969384245872354358014218422107314102246846733526284792474292826956735737678557271331870612636527045067888299189313764209420476051248330211103137006664567728222839380598303480372940839144344713342570965443299625506696501106419534301126793560289868106870304219546945345543184711127739430605385965979132902403939424791312179166471864718066628478751109153877071537991486753851323632929802892908548194847494211189002628415943658899670668898278519578327170086873515544786577945594168613600015795631230863656828763252393677811236098989659424375310418158775589279522490174845248097697482311061225000277760244201500895040583759827106809873999059054767571490081478629747996831991704272600630886493822772266053198423668182939261957405366075062851780068807792448479152731645463414222123397911070461870743881484989434497306310944933156047815488560060073051885453361606532813310796071921581325962341100138932851241637554832425519624878094188220515708629022125903445396055254747771247995505190874916942241105495411048502044981437741878209074814046888316332768005619484757835760746614533829987337991485629351392952016205890588391606075397343580637419535975696703549458856311662499704319366323109994961814937330554271689457513613058757176023101889600996688895258051268370060268743013365419172685274739801881270883136804706621172114467408860930656355806602484767366388509134765715223710853350376136490009086751803163719272044590105125868575539910949439550252335482691610621225446242238521610351740786282429938954803671589506919257314416794813594463405777350954094441537947001817249954744640987230567478332951340131847987282061879700673073302748429234911568436702608108876080107531802381220816259244950545663856823383998184465647428428826234396985386652158384846888264404347476528207906212179172944425779812882874098361421399977459921186054198550257851990840332001947711867188795323796629832712444841499064497351786889993817046116541841018738417763340975788079407247533836202540535047186062187804125409189451022091832669904686200722269762044506657193844185750157077564681682530986222540404604084776328128257608941694805467685773195314133880653556816812424404219576077240773475785973054193810343831114264871311738163567269778576860554142787614711398575391998776146115380386537530956165772921186655744131425487345230000719795897065564065133334880541824251672802830241953931900523198372984880220644414752426704957166928055955403137978280649087370681910172465397448049537313123337452131667542092194533031369891815654218394726813014198925829947992466392530279387019454634588386083790403582387740318747909702100944168333843526641879930448776510113141018716758770267090753621329147177550066431060660712201481578485391960195360401803492788139428469838925753794394435823474227191191812298767827579760281943801880173765517538917627010203196666884468007018662214640704920683396936659817492191557490810103866335870690625426618239254158494162878562005143663005055224729897093258991372240172770247020559620680035415941952253978729432440234602100005906117740421929776711331648892277704578062448122366310170500693653349081373608818584039138756898889346351137550113901277606994500065606725824440183495532001533650576177086654703686066491657939758068097918005711444571434496236887325293874121986724950294259016353048696739596412259894643071798316136503655065764576272690074313812921201133588468365757193832582864239332581837203945362314704611964153779097734844729007081236385556353116516966697928248073269209212785603492404822987960564298613106888453143565246246465106560432288115279026339067344373561919532493639755238420229637995777097753494450399166592241387657769072997769133543120126116508175516993445418223965820193532848247704236619850947434466556037223117609634334188293094149975656907855914626497410457362474614070601379826478657310337831944854939106140599719902941728314710974803636612163552869446304130651826118400877122973447980265500709288537357652932703732465774718982246624958679403932824226243605773885624513598593294778836490377596201608280844174710910149644474765989312030667971113429930712918429232594355964086003382950595884385480356620632469321984638252663861382476821149044361169301939463195934990785919439306466007173189077864147011131564992018878414194008902321410509637437560575241060324700266520746986689837480019237320739370523040779763920299700093593011067747153022095690543019892972197697455997896310639946669354730252670002488767234587538431038594197049055195937848682254444610512029504347223963170444495539823536363657322565009501761128849181357103183001143161041523587881140898654043033672016380841257172794129823627871016449119229840623064313869070495336331168361052915647448409484349268739660052442221795575599517960011323049162267898407334550281697540008048770483440752346242542353042792665645702619302578156154234369980501211804374544614541354216237116458230870824289454759377203799777747511443214032333638538648891334350811398386242934684979184064300210632528813429431557132655209340352045298542191194331818494996457315057044506560167883857258473012568411503992975463384086966716497305274660494845214368780566273628829540584293681216185915504070820822611240607537097320059124628192454330543076618734595532878877875305709852474810544891495552192892584872731683838654457211123256261671313730290169780334607752505541458407730538341352802959565049179643401616817955435410647085658827492086436807983979969788154029499462884562684973633836085557496548569252233969775123948152168969428001580311633257410769021176838983086022485439512631677721487050273325869125395384984305842799671702751494069924449450117768854966746442363423885901825148373526464069181510865639249390048198569896980039235654650964384702194970186823664000384404033749280369355430782079696118614540299419135764909573107666032648024188983761802696593398743445401134428515486380084178509472551593629142748349728124448360180184613510731093526453049538401070133098581120964455914109139771824968789302171492995414705035860173273385644546811153809991780452186505536304076492368304961765672320540266393948957573430263596537327843043103195583718062426636303639844569397628860162948753333457415974375323426708111187848008803156306782748737794663025401014061342459504481280597288812151725654703502705606936722867740289628246768850527448230092277056820913595188366191863702284282703517607341560446806249944245595981497282587892326824273375197495810001813918802646074110313225230334026819050769170836557872290844279009900936664375018957517979284772607432281751254574279026381888428400478369439537367647321195960051765086626376632298023501992876545365686276503754664501047372939290655293482931478166951979471621692639875543097620064602554336362295957863259159623090480347609250937668846271630502870006441538690765326336596335621816516405409742078689286591394612881231760330934484957570050741678837707126497240710457775308731073137550127431124511053293234495831149442051068436206343256513391407073023240685005679280825721238722093818460587802551584719290254811943499837206621034832937081582482117569516654423476396056068328465162214031729427133057659936309701423350342492123736849549194570239642102034385330939498282651829059998200366252822341613726004790571048930717365807185041128021764713342698271538094452661942746060950417692817654800390565270725521184374252514696295858065229037371238995817293660018931522267456588751407082987302645177437294862194581135725833343431280833806885310231273329640454125571333555125294061113680034433908909491543852971241545096574592267862469733530775015140704367285159453617029794707098734466466264246285272000310118468341321050592792092587127888913773401717845273256930136124762859051920488184951394117304036090080385999906142074858345912989989346685896539462773519127414393046771584779661204054241047109412811851545228074168141860394531840721837190408127077257383171750270698370086720401826386715551278511303028065152438560461319068591139967282322994689988238010441308549774044489070908372887434487273454057759073597244160155080037848528152137382664873757703128139931260789285157972494471646396567667356173275577864182740084770971619620660085794912112721037902069411944824495627009976359325592999179967346474332155860752177719218659763503569824968759897638844572453251992660416799336923048873009594485425897878261339323929527592035515098941691878127023017019422041323575359151579326120772843880261220320535773066965255244580303721230933957624189408167603700590338776540722194757090549723055940327296883355459246654190211603350491856403732987660886528898098273134104258860697147306918611834153828137943989271554846894693401726571905279305262725763283891535228844234184702888386693907416484409605195900559507194304895340351120971652004059505962672411609128951609615269666610124297779960184057241494065404449920938142936831757931575074701634675779669861944848436526321714154194507636069829065693870304935507456862953820449936847995865504603019588837738264113601571598480888446400656722224391574665253132523912701074470844288321533541787207194855876655497411765079241557044690213859188902026799715280260422513204793172927043867387903954930720830728433243143751094538041228872672974946314460884313873884553151702110764734074009256141071931328828622705011487779063523154772346423427537221038407889471505975312964755862963964449594601384215499822784461727266706218775583138038579143114984555089115616425352190575727954202171848671714295418309591902266090199461188577792964063803911726425933609514906474160104424316074060539185279714060655939867996852674476288801657876956809892565727109417268217448932411483627411251175690104067165617025909629684855795818043281720334256062578385878544164112049649756717591311266295639682058624117151031006849252640972906317462076649627218514638484780686387057723352236502781954898345973616116440050296443280834616208558406198727465243711114759598500529091788347615837694319393641405736098756300941085339856163290677403532329522455208171015146416430196632795619615735344256072821872746373972795441427584474901128150849746506923738362463074144238633357422250135206537818574923312901265191463898259396692207516393724388087638144660699307099038206175604222556270838242122706012162646231344056082671867897067670295254703536909731770796152419150441642946312966564842588384449062047980686175128818235714164432720687949761694743652702558191872578461060334783310735500145783766318736101295731263212469347941298861876406283898594233950463770708139091187438395651068253404436849107517355839443595613798052246683982962679543220426669551205511027163873358867386384415489561570105938539828076850621624712190528488717325964837217809682410716701202432099735352051840432287329178961090111634868710975872049342739428563402822539844319694528568340012480856754010923172488568464492745838151215562151808370754482359428680714892820208771749476855165049649788356097014675593808513907268759302555698371285957623116212277509719414506970678192443680416392943062711924314611611797408886357292592423395769712872364020062254879339060409170735847589184128733697358705919765208138202683574809778322406974556782105135963086162851581029517395882956276325563212560712606471998068429997624225498789738239106008644346676782867787711670755884949948811293072937276981961248192766197259063330612813917481149228007645189268029691922762899820985641720191090033664968835414323427850305873859512028897644895013227098389853373998430708905582046492104054747440806411907400407439112157313209621851342577982607482873647394222711346553300549440027662375526157507018839577193344095075108210778112677123236379868787228291537011686819251019095142336629854832912982210100062908300968808140005471697792979193335331003661364544083429171610893883891903610598864444693297286333669881549400394207065562824493528912492828757498999655989938610939566468519588334577631595248488316258869086938170148296275762642827117172135069853632644808902487743385472429325224225575510278143290125285262399542381694428748921574682488538298887108274708475953237549493228884315442623598479869866932750642907034713985500766272918586723856913009299303081832241039255092238828050642182084891159828105344814597588767757201688031594707694826378152011026950215286820417511474236719517729745172016328983896154935946926826702992338984098064735351661496299790908145828450472216658824598903010216569089723196868456113218598483365945335620760938422538814168859151745707765014651209901889370429697083364431056278082665363023472704927995635175587481328114218425483908285539952053753975962532292381200997079090312162781970843294422599246167515832454342634828124312128252118149026272563774978850318986593738661628515610719733337509353829655129605963390967070594568213515167788490412591518416876816851759099633128984928152443384558150477959173513149188945380179477211584531851881080315190055808475738396789683934328207820176298493076084046634815342760348632973463333061031974527745905143472618176341125103455211572024505015011681899708957660327087268943884905127086966456832093514876893510233603845338896509999593210048750884757872333887539667186673216037064471567381950526325072668492813293365631174933400133429469835838290731104200529716898354484793072791102946751593110743043679606779556159534957621722300832694740182475971197979155760306038702287274161994715285216307187422379110773992423967682469524637968893088125209951717336985933598647543165452664134629518253828682196773576192334873187676462936026995344190762817093288221973180894659722338560552735373036225004602993683193281252007090924779939640016667986734231508202236336837411372078424401058015181742861605641509356432656396252918965283046542371685784402769093963188693044822228829825037414675571827827111304698174609831100373795067185746717398385758286213759224815262816063096649016162531664214424123241864053739152845014197259361074025051102724860570298414788318166420526799189625537585939180585127757966975317604657110672583583488772068663662022890044352128138013619216799766510579650767462947742057901946476677545730786594802079545034336696187513836981147875104059046620890842542571802445014569343395628835431552554221575705706854638418476590158532612301106655227156836503969660870828751529939380189541286125201478380680364402396359806745206397232236634131359135963757028080902350139425523597404670479130934937249288727515796359879222993178976932497945522592664862436319359309607356811975626903606296368492744966128225131041754070916606032918165812209737798343131676607355337726749580084932413476791007256297417015986389254842304953339723261475027588421055779499556334951220334580957375585610906077281925423185971401128501879537357295291771966786994945748120133014086562952678998889245293922125865798336971046144150111385496018878374378097677708677273363238161954007407173338805943725542170328420308295348420661557433331642822070764150395475577506110890070322752539524823206747421103566195664182354759608191374127605858930582964845938096744290580067820990974400495768919083784303319368702841906875206750526844558154497840495631151342791744640740472631229542520139976798608864020907788463317877728714857018651203227233104455108996693911308032589533372602269340241375881478408683089465148799545220633018065070509854804444511754312892008773739996363594473153678824899228057563875138393386209864180808320146572223177818627191331238529239648407461516630288740776258032730547706092690686318484963056349698638702192268774133992957702963492482021634235602963549025807324082848284184127731871961256036622605212156524928422015758320717882343841124146189328537523035412453537618719655367186864576282712973382505714697135759630331719880842609410592180415651478107372774641600201816890150276306362810235703308463877683419669756948675862127188868940007911512288769563480727537065585184848831739666395620676635720681340457625208838602572644345421707491416023018249217283522774257784245086906081065500998541566617935424530764831445183129842449481648882506754198034995969707199933125197217254890035046120167318517652794993011445067537477709355181518272651636835602060767001723023522061072959996120174949553185453806737577919240536632640107473650806734229121955346601545535763736361477049156364374252922609174563402275810867197580439385856650716141731677448357634460318597685922844809792437205816982708100348974204824752086287167077752577794686304822053830407309282388197778567490639408797895443176090577114838094275069434620499051154520803266447437315846575423894495723447892704192593667001878108033288101869938493748569137534118135777117928164930859990774363990674090928131942403105932350159812899348987050066386392788057011661370577460994570242202424903744876258880844370439261348458685420095091097501440537700822623951404610334320404523597736081977683060674997345187240045189082356256338523833037215467303043628150630240447143912142090408037399297314455998354937323759757185888632015016705101312722154721068063648371696433185721238503239549015452486478805635303355688585791647542870080624627734213674700023848475171962864414857367552754542293762533317620720453528746536513070055186698400106154083259835285302161526833809012863480869178176407488789878422535091163428877040085158438308559303338492816766912116922841328754786858926299628328431148820428146490726479978828879346252241879059048614519180758904019912781810694657100461018512827958891689784440351977118288121518620787614441214737669735345204974193805070719707495226679340558507005273001242410783499282874917964693819748411397673774477559496539413931645724115759770346547284112374760253388509285055275044593798076708989494563621112659647522212454331695940044918135848331100214419261522402201391027145478366717015607328694973603784144302611885868549511623492803371274037551152504498032720972237644186501196287048852532600579229432979397467269248236940227003884768170329918345013841933430920621107928176363209274392582858562452274403473113250449294726220308807206217369499579183805012035695415586849930619456320675010061331077522255596652927184791202487845402369762775369569319937539653652570932478894635106767006709278896721335840265355049978463374494934596964586059457050423738900447332324871304125906236484111163283688886673423144021514563495588273997130498599382177160518818699041356441999235627524208313682708096368289240250041717525493279005293889395603987847754571576432863359387819853844311731158560441393414555196847198445446181561023959554349532331603414876400059772698097519559799562722610463638374580158823165208664572339404943946988028647543471245763563327215384569465874426981000699465971265044231611101781947917212356263207917256705642013286398061660123330040771087812933659559472566828204223535627776799343421208423301729461210241205147781192892931552256482737332998154616542418453874183306999752999482483839405255550829868570879152195399132812755529007104840827877479399518451657942990289204667998624663840318988660192557594968896220741687138765549031438235918198094283705606259994824104873623877629265589948843850895236627554060308740722711460305078442247328659018495561850136415308940977771613507129518172064031661694360562883506355439673085419009047673369277555766982018476496804301011866957092423870456773133667404893576000439199171746429760045769769001288627344787201099773445686711578154259653731662804093426564886051760140926360421643561493255452224364128950463766917811385094696993602240648966784390910894440907796076202347457001968280145456572369302077326768649184312271737436334372811463630800193701431771980748898940808216558646757945843363818697856713661204200802964147986890672033108076244272363163568243524440966591208333486297701843131907825360303613934091979993563048704905403522382667259846136368411669866705706942126102017371443665127236123622853802732564662236266810913820117377956251466932961771715956062252612870036776855537612063575333493445129401438692847465998582473809813791036862107406227458748169520165070330088406976949976046047444045932400121212902430023374511886552538320615398570042643787675344842020804645618057155920409114487052050625223338305214824600877075981267380856292705613995688025627531075537471072114395958049692382317461583935606418004399117296853685796727743792889299818881136941379579415601088920972050301033011783483334428278966484203508337855215444761060222169311247639063354429228248404657742825376077940234931281126509668660857584621679089458645020233333305887267456515056104056236407907497350417223467834108252694615226780979031481904745151720859610444204270197855953818803741699997995918115327551222865885839376173139283754390800450733689863562722090097548061400767283462939698981152309868155354781793489135326908731923828778764290537890081504670772333600086929852153239823211714391348343510667087192762951018591736447863640279319914855171576933008123610081176901932645073143660785191808387151030218317331378848588794813563907437906898084218658735042809017796121615135690725144613274812314036417122832557255178737034608142572557116070369081129769343363600844628095336982552857322336879195736783617761539478573773097358815588067505406227422473990019407142568068179925348704610779983181152575112410438107237634937815867270606226724168297341961708281383140403091752078826405091178637089775289166557295728834478042037027145251285357512756076715687177584869240907599979801533607770703941644949837956518994377020331968132189760245901825166458103631027118474048964035056585014850566473240786959541661350039775295280521721138596179602971107976564613099731991056536941692671562124059353496395559114057326006887774883185332874899537109810662035017837688199375239455757442183549624316409006748171264376398915725276310776910091631921431706554459122225140564603152421400244344262294985613507478186937343353562204507806346523470711979691724415220466441261947921974117691478795605945204874753001579296769068244553366864140344126558943615374541072608722139827748342520998182486041536529480468111354982172595403037326666752304867217932557088821063917621429645052126053633188083009286991768563159024811007881976641088174328657964217528216656910309641998328779438124886281228268264513373975670083208218290349703179482384216416049353304657245996954008468462391404253466144346881639009186295769347564294033308406538610071931537217008333010985259199728496387061265533348135267572497189075060570846276842929409691814558710548463087255554745315913460436311632749825925770492648682888558784690897824034288981174856623022168737026477301812446508600050748954769345632181082948499826205010708251551185429649751526085243814631587369891734340838726475876858852124491917943035946069998990154996668298017537451543925469428421124742842093735413650559801770523068048954651956659536594209338548392042535813885548883738204744348302214398264818222995868781077598581384720253236568220522820477512317742321324081307515058857101324895837412278140044533019897171242172372078256823631521084295545982239780900110319051019566296467303430732597601120722809876104807214912425982004957554395025605732836666768316817241837390272070201915042887189263275871010997324834240433677875746401909908428998416853653466860161673944630841310121299615537957712900537814164105755756771511288325695194031316543724694727111084080063196003782726331092606659869067172035213358750913576144198425691319938857817439845144159827663572684110749164274348737748174502651779354117415694896550679479232214538117900241360765657790446974959747948423222517479380673082374501701119898268822820838187896341646446183542574823243472783758727437509391969632532061410938193606249717335517688985381938788322220892647576058579054491181335134453218252839247510495786098076588617774884272228573216776021023129072462872198395351971655280859276851777704312385876943216194934249769911043604058855555216605389461713630233622321779250340611444739341356748656545275041663570045461961389240767273138807807556548886019553743690552739230102292047909869961858005879433389790585527095446547542795245739152316656356961140535852685603463390146993917112292037215954280525188266086392387724996049126106850161020153404094725499085335208559977293914176007412305349758294194381388184844740661889026901264656113134952572572297876548165077054046503709003063766214208487724310835859666303060442548600991707744726692893914623908364580009387446709664554564772884978589653555911843200177673365021979871979817861295778352922323679135266119417683832416670519786464910941007069394708541733469024886808311451752378379092049689184386562579756766649192386851779745708563816197891793140919388502546950721510160414287543474359284185527987104968270364361584737702075672882090623710614720418795878076498488446390498560402384152113629653912192242606867910172815514310473484630228119224894792511717135013126877749223957657925980070442179411067161426918509703219325554282074328823436361800313116014427680433829022629581519110533422705517650039560392047454355996789517899120529311989342669539289256493804193571628543051256673410322756995402747503776834312093127181278922973594338385328202048382136872415913407391585917781255359136159059856099026839649827795193373496605028877924757729030834292173816689135085121798830166848904689785435158862512719547882254736889157420477765082184734256043212094757089813748938497001444202963368030524507308469092910492550712115024527737421496543624041746889662060446759695278133271532008033465959103005875832065039098753104362334775290601242154692133263035411797352998609872609225447528617438807209947171324924998297731763311126524013842759349593710078490858647658607662351080401581864712337212193002810543219770759068859904484987257284681024899734820061913695922348250981616343939553785157355541142202880381019536430323090811790907223541661968461395424031342571916273097248662672384741969699529050139081597035701392013243491651331820669872122957085538039454022312939672277119607942179198822221785413809351587148193946093082496975721078851436046296016178900228401696363289559299948409282566952308224430854129609926096454766955393351242676885574695838269637519132956628002332028500122723210906264728980952182152171650775697302214826812685962157505513869945742097882391924857115849259078946933729466553095422848652124268871033641921496319086523040558878781722634873382529696435431254272357937171197937431092363434403448412545239414522029291792868211654375836146914309702447997110091347862524010138083986292503393978692520403652157457826702572435838915585550401840615902084569800834670016159914265082447556047221135094160953233399200526769531947260689528805681238225489734220261923224637300959474195275244869383198499469090412032620725090064633174594831250323065491525635248147540542838634806695931620040868382076227787123208783175607764962690270128348049677499936750145198802302822644191899122379404645890997672210874360211092934264495486275067154467075728990925346292162689322080905991175376420345801620685067520340190916106453470483512293120609306751340628606025528792204907584580780310597372408701704505506958735263025821859926339019874871216370986753081367630246934499454264706953460484808314767239053933305366113802256931225171311491965963443023765313721493746293286313438487286961095610789081375223176168116264863823850941265962796433692897131122159026945423509749468525863660680175936213478844175398300699079479691436327594075060674236162583440195664733703623988770598878101913608253795025330311958975118908109266094468243866123277186580033483731110464981310620742221712943936171443104324786591496025108491138668825790750024403802902265094482441904890505058518087398065119329268983446260791213317165896105449019039066197982149623227114975255861202711356840079369723939740014364801741597688457077507418824012780041615699810632378267061006510259716226375360366904865853478687224041012831727877339481202342725509799646815527860712517066739130092822025207248739622859603194157163678620813321916019020984118075003587774324844392284006523149502267978553091879487492960484174239569170203791150995704093372978182543774090675975449532228115008260718731385451707941848715013493086843176741098022227963836199321057938352440919582987866779416284571797040852985902078670299168472000863532674777710591590447850984472127689798038829833132936912994220775211205935773945247083884603659317226877881284535455196526824825211956876864997071862612367315067242071134065616041714636850362263024782046857307223778562670315136891851568843642641191318013744239794454585714083648106524888341566433307826171225098217000192199330956465630410122904591138556636750264116412458805048895039647939776889857429547090552672496686279513838081858741507656736282633915857634360103236309348015326178093864966389686311089587665816897420000336647435943064906310016178120903219477944386040606137961906291784891794373182470219906323487302345655226464730596610565492044202771192269026445851430620126586988374678057966735703598134089571578121359780419892707085314763641797791002185161112882784531768244949702260985481280587084745919973040410853593971662575660533884383547093804009074175969311031002232471450170578284548955903836191844645590328936214561752686007643411563270740365010040643501163385183120778767087906847209271051051563184187109748409209848574627581835419987783372485667969053621108978175744043621223871720846938503444531250086465592026783702833437957320033156091727063804200821916806277114958419740679228095637318362266371839039683675884699786823047696121663275565064532593942305474611908220988380927003374941375179902411694422646426305977485777706259305180760270065195718013754360214416597405867427553210893955642457936753983394579565381269689821458158659439435542002986763881903227913128551320633512382100089874934815833425856975754142678039686519806713264610867035195346882766881829893410155877287525355799244369869971438238817867511832353383254468358916523179420459589222019437378745082528857471238740481243778558685835210695639417298919222430808754019885936568407110838413606654877482021144243751305202289975423827909977107614272065997497985912590921915788733077696123292668035876997478152792732650372503396894293838543751551052702758644227037420126017127151042783066806827832860277983396245998984640025173856066008534203878862493712471586627787144749774937077570701142962173888159392503487299128544632456217361621565051762429019132216400857010353416169066126760586272427679287207848422186366544827292734203065819880760925503213742738246093230065001981626015438074883656764355795892499580994290241392384648435865084106145859400625144055676699153644121727263971731056590671500326445206605769092415350874671288837608087580012438342015381038754501772899587403686296010446519120839398197914895623266383719476530035183386670066141787639895229109328271823282912837301362804824131162131870334135339491503000208105737436826630741040951431102821337444721744165911982863443718341135018308573738828515663437393379575653381512642337914094715664912581141687473465499785332195119858102033815562722767608122153688205915214430368268132410133012280184616245572746370074688854864181307827308984802339812317132680087376154709212228341450383833234578640014461426389885951275701055238720372533866367124862620528013273860566487812426016515687103676354624525757429374294455226635724453174368754157593176202196272508357364177165535115445348867767077506465397749211827988867592546738958891726370836964485039487203776070496972913632715497008149187029193305913551690818266482406159611998843970964584431513495468167775823000144176034595539618700922669635749888899718712025629139347049992350258804670565031869497258973632545789596504482698389845486583500734175749001935906493980320775609149535040611945200290364602116584229297013486363217959061899426116239150929482830385702472945020886746978260692098270160404262416657023067625757215238137856819113308103153940029327464598170239770667492069536684272715509019900264160636733443934790965186415853084726463992325839349116367886015283675981320869795286894563207122767004449651188109948995617962292863679902363850870404319779991051997340980977809672039231214751417605130206579537144653101156699215251948064954861552575589907082862977293289877290041586375647748207965517630439006763377422033815665172325553322117271159350218285523312186256899365584913114722815436070569543491853992113695252473163106439956742379638877994843957448654239108664445378445680776495532673896032599873070287197497261421301334504846166866794261400909057103399351713910143123085974705267720588310840067751871419639540869670619431549635573426917333218852474148302773062491835744341376131801781261123132798711991910084919018813208143554475425320457884273535884958437798953814536109762878877018370637137668409931014907028283325324457923770534427983894961586878816197412432669832393300861504374454951612202442127153308916233692072141843010686681371141181317688408101275376188033768645229291139616060514280165460257760050077133744721739002687790886647701050314283856389692142745582735698954700540734788754108226135489023103114229384743570721088906506594677318824185361527228653248402929408106770033300740659178919582515074821334804520395317618493706534324014359739604328703806486501817047420180281029949468088648776871455719479108151355840930834771307060698283311731669440344499953376204615938675053108938240336990949356128165726326739198398653256352086660628505017850293713300547169488918774167957831535100971612925063369427349470853783555910550142633413064606557194193106159693604310320351693202793549147942688945433292485756870784147949189700324757256763615111495009008414363361953053515851702378513043706953990884900982830902634298647992572156781349604938533138304187020876473745307155094235149590048347669150486250806972859622071080053028699633871129113129545357383346274412060089155684880597366534412448076004857774877366449954200655957055134994552155795153589164999905254635723094943438400820221240777407095288873215652084080751204626431974076170678303207823401791033062031187305426083119301678587124171327815411560667099816787450513463168259127393817181021922723032860250755190016034142725744920808684715344303467459071127892610456747587144568164288754696347696667380581390224365743942125793994061270398344520822210535473803976375733925184656918050043531262230106828114150607078070095795448695241643431890208410734695460714447960208249989010784030970431271103696530110749633136529033073137966915840556959481264362386880146973969670525027207373885148662025954440904272190346620190635210658723323836138455495183291776553966690391685912393783917448983541794253686926667415540346379804729782587091217316672205619360577896640550896866766662326461884761491480593150705189986206934950128094573179960812879684623558197581631614683919952255864527628597148668737772205952500547985773316742041069832884296300605456575523221027787885343047563017963982498804692482162451573519484216614021526098770358664462204120275388450621699613510239617713856200143682814369062363412034383814119132023844047847036749606763189410480011110511184876357421617119303755725811463954936576727908050310525553597733201076989346559500568602075736751369516268558342873954378057102963847412058581851073879627318440028388906817966442412356563670707612642645737852568375635376145725174914488703586172021885708239462867664082859542696109653927320874083979756955130847657646669982005873483383028038978837038325624200943280644270268172074352039207053646918016493471455706646279708019970234014138197374698240635544073544104445278116936846815106641631616302927806310346692174218260946087763229494650237222615214276497964106516540486992415553454401819781499091409205031414448813687637064852974306221802614290719261703862312424860520620218255345753150891231172258964288340255572406893263014637332098734744973440857611372700594680341394633726679854580168144672781083933025507972552942508742374894077440776510310909308612671063132939932179881595042322843562789166986526729931891116195294456081031632301964954350424241534241311854798496457428623212468007584913431057233192738951744816634381916618161652688900438130749040058439602897807021625677249083016385971866107544659908350536607653414976960039138267925184234140405526359472017468514077505137826564070887750663868155383629368493779836888632902745956395551370889326768134204695625417587940587305514769786340514322926871778112725385666885491289673777725320441237270489932151416908695182926452340231645744983676684976261710978375880588611819630864855127915728533044255742171746970783765914190244453938185519379928354598809064136549763481937829227204519810319241735637579158009838916078253838298957842706334625390496881501997052559730989154686043022550936450080338604434676050894033573654082006889444504183871909243865392294200517078772457438535669819127658441055602911251321960846342108162926683354918008182176191217405502489686754817387506863408881291908690816384122798181069007105010746783436804111552500011309380859877196193289037408429425738796200940910171160208310425935437889599893327117312022656126662016245563195516634973073939174675080740437170214848111513592093453192507410510090487950949632506908468577260951786381255042455550627940943116134673183384213507633403631236509670567639616985775556982656223226880893506192874458886638006490121600755995856555650760299270041648007718828956362207442834262993917994082408255133188402871064645062061335789950245363206832004452610443788385701986011721182256014954796918417359189589037707208297983498835910076797192559939449049229693026595008205794431414587106803550942300050611911490527851865883748890192604795551893325955331066746950581595274283376952473424244911945811789107454667971899872395715020640452492130932061783451305870665294177333339571490719399128631738688067269380829798067238829845902424708919802989305399979183067331894864099281115652965961911352532880688569016576474577871619579178711212902485686803627077181155532662837348994424464658407043226750805205790675511919862668221797189824858821420926621860271165794577135401359474648382093244000731686332515446474860918582950237205841725235003356660094213670894551158260747884576955414623413232275640944139720156559453026356832692409489544503167800786108844291401674251133835398827116057363540076489488860124516033000569380948940873997080360780150151412598013921552243338171058306130355441363690473114877722967164294959538188500383840592529990549654343682283718385319799226193119329775679735486405392937298181711469780664095365229779787414107618763315941047731185671160242521872112474026764382986267113462321700107030160013542381529061637825824917169047326948053499015650813723879162753224629257618482363563475128580197175115437836589175624312230000467860339063496310795188747095044838514728222903835247387031247019330245193462934562716805852417048396902346680805985018403696873455472440119717272469641405574582906792662670291766600135766165308674788948150596246899097867840023972752872237548041920848076298783480974935734976386065902136822658654008795894085754050294188789856215626148692401638643365520293307643781838555294670649238355242729904391506464703661892539920496620293434792526342336998565312152109788469795049326687559928556942430776089670951820517800374620386199828800391260455159119272287034711346856655684815088214005806886531223885098438821084723911349852502319948691797805507092083040477553358765349072666892994623576661724449346580711973601296231136204974684520812033252325086156679688755491219714633664311112137715934099179856626045602506587590714982765505571334190950073861251340942375060563767870067276204781917559047754216910032479849087491921247907595792790529100104686522091105211128648805296051692951078931327390721401523605385592079869895919707288514383355253024303505269181755355214970944028400008776354606700904839970378430998474592779484149341859128608507534921289954566378397935124524134003309754305080537595440934579796679691321654516825792597273277588215568603109833933831300514791870738822547813988604555046773311995410236964419703613375504369847520073372745207046230201516326247493039529652848132744792326966087107102549094731032855073335175182719469983828153944624988696473872182209180178589760271372717554282475384490593678323324234704339961977278841826695170590975431865107323786999202101923183873222810752721611156500798556400073320946851115592040967235825898139315969721998481307213791223128342466233640283677740466536757414380166494767889703706610765332648972819607757567985713245713399400220317699010884757412668325511700985783523188247697786114817088431764475964647551499067181773540784913109735251133573067741011686228465609656135013354005701536756551652381094805858036321188959617599777940405455318757219649100704089502019376546306556177472786202416300251236200487090173786564051642143679256071353388880680443582005533764660626894656901149471499719237492540418479189075123395911059611662066864688321415286441925134036762561422682070693400290490400526004193741233564730090320484768284844325548580207101204835052463969009136002692795828398374372842537950901218290665712068133783990297602562078478325225507261776064930379637307193645184468612317262068034340503364312159308198781508515396583460875234664936369351335077638516137722660215212086026984861678881770431187836774085223170830988860327585431218528577665522327529256686810719123822670682436359414708121335366864270912488896588768481027032314680329555247363455963510491177623866296797224117092365721836894371683615480897100012145379772647780363220335320921199790133192465125219383382073290191918538526554262306343485181478675371996220502054124724987187614061078033497181672830504196584912901726391980829335696409694047433127184305258288096212473472127803909685209655445717193107788911008891500346706611062564405472807509274619376069763471687605903794826482472398126009158771088777204389890794832582234371153035782434464398020813463083373258728293454319258261678322161284593312303207364098761027886753810515612190748636307021040239892420067390779024822378995952567099998871504365655586402200057835594812764519309697999863755709912247725982267566997022017991317122838586729103972847320890215619140025618052062996908403606881114704099501432591244043966405451600768623197562944337417451376475420842349737964994591890250575449220614388815597334180184501714262409275946820707076918151839392000829142106657548671368221167506536188100571433379669873033993619585546881037290403387733887865439299338292163629927092871248300760646529151912583196258663800780117142849473589797672795603391370833349528617887217263477542711601030049160104858095537524828715801020140637064041526201475107763192009212769187943004339737508007688104807421361936726922152433739511264405831529652510777688143728064594976763279786213092807572996292754979474600518255956621387168224554414246130286628911297941758573295830240972174860469699092636319796715249206824625007852453478098946942303463359369200662442472281871847550599397732261882871511231650335145773560611589152958107200783744497817487586159557876018994302287451525864508366329263672619989288770413636172884155319129654630834226541083494878001499771626652713746964074620324279452182142321394183467661763793189073984846048596304586047578220767463810907073083861577895815505879600304479305917951544877594892377579456414035869597071596958175307221473824079213513771035940817986577482307036739070150394782215052608842375923025137019302757940362960580069630816606691909308135764726030898507028264954719990627043450807648543998424976024193840707253163325436549596652636225427329313033338150833454116457123991602513247918029433144302262912883579013387357404890595353608485272704477322803582710284747061032855347507122118842487839156376019135757990812587931121912005704906192643428652772166236267623091715938856818758520704098617765500464318785562665264494327951305238172970152542684704389683860746706277737499382467295807196186582110439581192990252942393770797932242004216254444936354743025410590496582020427985101718295056775651456344900863537616398951144991496796567063461728470037719250062518620724409432198693878632125660847427310635761741960118824963362113030484282153856846948678628396582733448277708396836236874160841206912080048938989529082249166515823957975425748563360006505446330325590453826636950263662702732249023849761872489092937631108331011544817744076123935950123219057455863592807260517468491250485446133044631929730447562923125451727805458581729162513254452338778814497678516035258359163729584769164525724046680422588805728448377852474574642450031353824704704760366162416381938073274023148630243752972061625644970810770541084402605609773747093981046618687949734383234929853828861263435081590664399617607229500626095765066606748467513691946603562597776190816682216905173432180634713166225044236982012230274044004104455830947541854730101552564059788109732579425417654839872842118687373883387273136393541617280158672143735609243661018979820034099511475746202582408811054222081815069170956798010642588969461818934396917662406418363387780647737443629904490976514049634652702253445605043128171005191818546564011196759676141183642227375763189482854733012443588235606159293724692142038653375390052452208909640001723708574982820212558879989980653469607977340802675716590259987566808898587193970360076427196201813986336131247823010199699459764162129085082115089564643953337047965414695774621015528877888347829270847147381665138306613960857413384993792301623677506774049426410487148505603005381326339391975802352677773134142084857942265252732523467084862064169422871563477657340437814041789800414636632103988392265060233417397902842407623219430232364646211765200216828018348065571860947054321118952340403970566014151816277868843358163882281608513073635328486942154673565672070037635188458829665009884312994646621075380176959141937430509841836532533961631363141791126791302700258332706182161934677886688520692092171250035130945060540149566029222549847369257932728496490329110124366250557365372837967327593241353335026193790630457825826962754550634773887445440006710163411745148824987187516753204168347450260113403371693578679217501972970138517758812544122592346316011968209329134762237334701536156244845894708684383252687128138677638514356865578582737180317422288068316317700851338873038581970817726886167525426225576841214132679496952597136130271790364195094686156992138035654192499872205769284848118399455292393519517244716142678744786155079734183156091070288822397423820899336741214523986761019092288921032764313386068924813496356419093680568547352726205731143475908946181318964895353818320667417187235893099471291562186343248057566343125569626095206972660142713920691673580763433682002359549414105638391001884687299704008458854210983037177150449352266709629127355234893252726509985685208864418719811963818566169431288142341140161804794918403987939916686722007661787794270194407650383055451311904032475904958058769473727696862817067362578384704639925358433543066429903306477682784464391783441921359851513801793825064036274801469101538755328822462377412383638992995812574924816207404267075581691591466244995126668297213058996443418251512570382869109999842366628660385511483654148974650418660989288739255873497055525886774046012366655020017574564270390223389792532909012517389803237357470404213394611771410236086800240367788803520679583694673085740549104028780308154065504035833948724535624065052903717203053880360011532944267048569702741610701894674415663798883620927165034135752942356338998639640484659619657852057371285753436838921506808116305491157809640544035119888752452177011962763113248188962022613872026509576472498779092137125667378734083718352971498353922475592679218211151796611758126586853625257889675966368449192546435434930909045118941834820113453935209939593821137698860873645582153744269761715804556016555905020574235639720342634562880158507222709396988960739814033172458989817038632917903619482671079380721869584241525672786113552689644342593825659233312193686054104254191681657876098416190091108236952947681134735787263984352289500099887282567546458247538430163882791305186670767299999366835550899983119313832034258644320857577112615502572186284415687657604981459780124697473698399945116894475846720638144964262427162316299176795354219903142451582840136254673430931336041975386168213126688175840026508528833572070918872651648693825779752457255781005114718029277431393094711820591095314003920332889205288880086820368793085965179178083366998190154869299938185210128891444893794434953287189082911301347311151965598821143839581621364715256435127370038996240624202982252591199991958984054769115967819912681800390040917275336105453838760517877998916252163092659923369675026249038001235121238869556342802151940428483151768405552804755592286592298900287669528745326272189310774751510312322111397009920056864623902796914601740153016752690612723363161213789551954885074758361887191287382555410607029863807363149737217138528490110090647057319822064377124533436359528595891711389087498961431561511696808658956681667339546249858443520200750148236620655603029019069707742042082970621608941711861558709970968975120478954227485166678883491948329004738754211534722850289317929433494327275796514332855320866620877172978932753577748039786255611971514519070338571416959581493070189414388260458786054115700728390877928592641357216050087806575413164490648320885387318325364093941907112871539448115988415424452069465911804649681868551047141136389366800084599790717999665519151130224591926961860311490048800124939131564260303860872921572562465908315096823040777110525283390554458735376223634335675122265158340342492001107022187686479040187290887121509845615273359184234668758120824335228610000598646658694536312361994321686353068085965563870268672474072437924465720084734274252476328009104979954266995618568736030981384466727771625661727714363556963556346647917775262806054373393721449660100669026151382598600883568490098559859409960600827705836716147391766870418595639941686992732092947042774679585577584897462457171051618323472856055361767937666671025642575804164292947956273136729338631571923633175016576800604292216723164139233024320099970273527829188998172919048829080008896214888416864052256306123808966709498245084889073508494622212932887148858734615816911828298647378732438014808694409025975760057002145994782520663453538720009041798989943835491844640449312116685573994262873963707586294108520467770625851529622252924206141812228879653429082191645679641049559529396389801184311449231670514751064798792375426028773217245467282689304174596947661329758278887465964399382460114743424378547310985603405601996272561228729205944259737694923549976821074561904302172514056655890939843619574736893974202704133913537969802572347156050045134442830162860622757327757430118829660159045665371108133043552398474282547292459603126467740986998385521092415152181210961583878577181049974617672845235853552750122560183220521140133520418560672901615546061836882830440188603920119512879331884450946726012938687599609691197255440151955577434479080245439759335467060071294876486431703831628662264329205394387814645659911083456327977500522541233278425576890253904702218645652850538942300469662686819771644201723404458031025532482833665180481847067806099332788450853659948951602467742140282368665942501984262257353015723463685474120236591932784708793373297958928550989506188270607736101440498780461191763378766048704441611096007168488333062166076651348950582404479373472763419944778651865795804706447628980698085856478249024651367648542671767924547299710232352000103955732202061872710858033852884864684615330351027463382793676249764325593080826091135203527849942418249912209643498841684528853088321117971244672730671634606846993708113051606176594126808313248337766002086487310008737109523913010987395118742326367075360436872788909111887163510875892420355758678892483650908525582773814238798079558129079886691609719360164758144014244768365611077057431533500816772419922722988837406796015047606874085730170915649253125498017029764203481902569804212836324322209860845798965070856639731008294649244147363790271997188985698334937052277903345349571435457588303452944212419521264882117928845044536057088429480715795017538536475718403519002483466844225833461407086494258114244579871239431207260726400219566266900883188726843580286482563646133946921408565891074827663331132844462912964397598863179411454452049982688466024843492880897007164748904892560174801328631922186996597032389704817089063000326104604344544513033965306494954665180583321343583139229463339309954263303943242154904941338715182150026119349104398920574014457687432382791781043879585848592876752537565355964311690068117868234394368223769561938986556963809790376310164654889639664185002914626427793803278322614880103452556958823245853317401291239708012045284816685056527631422902586793079502804438489717634639728999635079244581564225454335925231551747435557015500058149298502406124461102701840502409647297468455493162980487262877561457633706686395242526176351849532327130326778923560965466627988839077368817534713204210088699248604251975240397976687188416182491016453376649025642669238863996304381402588555447648849333584118211277482778549737227817714211299712255594588011052659826223936363884747171235255833948384001352152831245643022714903095893456894222874467436140150943724384965581459683209341578873786076375362383435412346332231622167873719182241546934576569308611620782401882330066836670306724512055833788393658852352318139734762571677964228701450141952844950852352386750419325010903358367478049427880581661577304914480537830294712566325583767230021494760232865908823990094249274418496816042257248152126251190785401084512731176102357860649435847618518894007236515331844939830830546180438702815424932404135898147875991589249952563514026807905662947575159529122039818718178203540153330945412529557066738815872481941172866872900632609505177593617373503981289160823143762725480127459594192415881265097477123370987732086277864131332595429606373425499276748264660564360087805661218544069649790690839538106970038309552284685645031812893680673992310149202811776720425895660830449235062707135255418594757205304831956194971303794338810442089572299168253359927154892269803215621443188564543974765627477387016924801795731885493565354258088448486494270556574909307425838775553895096574808976263115127977812150560612340720482894461324559629212868897346214669868043536415160135959485089000235738333432281577757954913324085516148271182389639864209015216922381992721076096463853282784893748753699780605769878088583363361914145818599889323495773008413953078362032454894629507668293629698357581074211469946323174299439139485529112242414109768216146194798730027437772432559019953311671406648840917034437115369367527490047973269146796396017145010714351481089066167525433283997497015039877558147995441115514818151335877957808256811206243659323384417080269113187475132912381649496405371737485921528575698622035560164200751612286320704079793943116083200164003073270094956149895493853764847155659418534478198129846112554065833606165407197174911871980720848420724660503166879346873707584527103921369327746983056184078518399462566722284643754993494709544586526999041977984550410755996319239050948443914285975910981106299387406470565069493813513689584665387911410266604364849645843223715990556891530508854176866971116756775961472895688314310490023037792055441667902899849052728975984413022821296315160583093099693520220220473719010835049811714097562342492909526978278850955636249313110257551612813806109895769088855147703689545185117689294281812319353705392110901303483458621303366231769256656551412945357584555832918063622422842414947399984738330560126580605045349821385767733029212105992848823169445120231989597881662975594739937293478128010001562359680604691007303732567547559623780493465863441758121932907408061908183151960205647753110366713155485050613652360773165953285632109404294426323316861126629206573496456581814302360303742227790704453153557050910900874916254217860077623589836772851679323925873365420771039962439567555688232099075099363911048292059327492970574654176483447552712535808144135649763793526302089520410666334537225093438567338605193303219416047889474874767540321591586705557926191059205950226584296336898893444097942811781736106291374172656525920105529056694262971886336267077318239282061553789632670218907052876756974584986378163517472140252935790775402179470210561721450251069135466132093652566079916843216409943800190161674807930410209828218755322499002875831889013971030936340275193740252253500900274069864832623583965829623780139196933588697416961494503238612327684693656437116308125665263791510816854844163384303526569887553391643653749142822872208663712759999239002103066354217890380037119069754169111122687212271718884935537961657464764709425222455413712957385672797303142670470028740150229375923460044952070857207260414032696242598935028036963994320246353135060703972515333271035601604632075794550473264166693046433806583872282716555206069791179400268957780932632660265330108184968808591626435857764353753543701162567519079665236507521564627526757619737822282483613241075594227717978846182967960770153249891155015985387555135922430907936095344514305941730894007061852366949093710124953028571818585358021091195956754498066286279233850245014922451177615021915734141353330964857432153976073244371355638821197319441775866698176520597489631881033500712948393878640400130587914172449721471520810982674491985290812556577291433512761840993122843994727697152944997582768903976077643359120772698833557431462731030761783099282848165913183507068690017783675335275091834771362391275220973106377546199131462499297941069799984719626836023511773892508787654117853364685622134211269318766998406367045288668174272256126644877735723159006183738084156661180811000947440297997247405860129931688936351267197489062217248642564323744240483409356525416855818891081351224581839311116159283552232233609593683684081721987395964297027268456751227147542880450465733595542276364115192069718548480428348685859868211140270637951255301238052743169284872970759881905871162218527741657172322479064535328397161634990379539880391457279324009778929954139116993673162422485132235637338143209867966691602170801891596694910202201095285406727952511671291322433435038375229901919422292654449949092957729153869466174636784916127189396688225042649265873022297336616565062482108059328046352929292768833299608296544661717380193159239889392229648019920870030177205167387544614992150208499788540293945640260672480048674805501569061508392073630910336033170093272016195453547089343459710157653096160714355579356289556404214902890731680887631420690454488616419729887528782550958398063158166542224622274373054301188831790339805171160750165708724095701539664640089459173278666917064068239416331772794318243420360323053997773214065529762859053432246344148837329418200555363707231787125660504388316610040187673024556222659466183272996032996383608479156712375812633903193375961054695016280198011816984423996012332944258598009535008753617881376851889244417025160674760064936814491879813338192091052863577195498157827566898598674009742430846233414364547015611899930338502375222965880698722268201272934594528759559991711907002661756597066928120517243604000255364721645132794076477967458507247647198667896554239652366018731887018393281449622836420427106247167158440367058556306607312616405125100610037912920837528185638047225631531265784900967582874320040010424075479547080900493856478702315956611613976372860071962834891663133565810008393871013573484344690063015479052079407500640401256086659303165128887513817562865894916909863797346419538595672736300366382112130992262282122386975407217356405040050319884995353063776694761346849788907644798978203964490568656498499343037176785725984572911560547518732156452378402821653978582019373247906473776232796620193535419690596117122057146715937342137887335718797935840502295946419134216284674892135065510786916341366620793647027134717706513239530798374550304953961894204489728908054001439909448284473306941262701879178459868993531466986724806547184047100839340494544750962253926055135472788869145657207597080611303357438618591910564874171364903844800809462768037484470695410723972837802120676680559384976213247111104183946321725912221969785378803586660821944074116864665105579125785801167068309735749813001994943777913770086732673110881128114857042574792339792476711700237261472772008113066809846018383151511761318559633690645583396809063175558599634701523792440316711480251699547671747482584898503539200146662770176794056225016031646001252657548241975473160865162867034020446274228368954239015064086278108544360051471222188562357266198924460951670135151217759026125974741256067408508821338433040116623565051935361427399642128041928133678112877042262871115588550077814372744449804498673499347081862830806445401867445627851962745618855061766451573512171870515959454862253061443140856376181458349086150098654663732607468327700912843529033098591731518213270699721518727874269766582057148139414575019228194190639915190394476377894756764449470362605852397222217423062688982667645134413749392602719626385753809026933411649303467730971362067531841102241784190193270619355113116050486824554673604793835194297877999937736488974249585019428669873405637055362389527141761436802159651627353830846638135435804427110990725712584371197096265877350781681461571222815252391850818451239738372517261827874842800118022319734642308284560777072513644304865223524890381337546965852172770478623591999868332406749176557182089169270313014861633325222367789880732028469766741870729353601924312008717873597371330588529218965590210301222549153388300262952024970003566589857597429555685955623897172705537939434218668697568044482748261529761133968834464773872894334858887731791377913922097142301105263331269467201542833604527364658993128472449290645708949560931016435443771727956793256076817547828970284785113340625561992752846350030259706047356744735794881493552582517597394192706729721451548618014420773383902707132520067652650260859418456503951151853304602916410920105919433029077344807352753936720481699810298347840658530408223582929346839403198244956756078238909112807935524025361702790811698048673774084823956518591743042921303118993760313992448209240146688756294727421443410249429236227886674172482578323924220256485262437617241567264983465763524236820084254120240119910077262170520235475162333596478049408289447521578553448932295235033217873752066659774188933243055122449743036905861735366267086935538053689813397029787196200993960134025335129607063408811221047645557197161619315252702102912060922653236034727421627879770697557943149409977961616932451947327304857625695315217748656255462922937597232423885835326618593220670765610047848175836970721324603961592426128132987616381355872020798786692269445768530448786235391613248108522793088384679902949967746157906283677838738865114397307197448928504212304997089805250076785358984277610409983332328042097397380755897826291377300850884667359408710951893719918654958464525525136240895816662834932295948767405130485629511543651397866910399608215217732602296486837558240461058149215431251221992553065760690207355819998172762261579616364960351938319157143442715748460932461452923172173163128205777734164578647454161786885839497038647324206731077057101492645577144693820579735765006419151009002936389158900864172066931521918510059544756179792981138502270418649133964798036431590486385078700765911165084032578492022567715721744090194765807907546402804752354814095362263256061024720897446939877022663500987153041594638302654570983773979915150550259341625419637212507394600941641749883166955216964685615765502398863794430556369663035746148130930280435985626813410970847196957537977734684947747420075156145112394593937246385964155926401353414561698823168732758270917898822284815499364783139108517663903288281312063870353858047941978491290872852673510177459742416913447704680025707842949654052711013577455996860126141670222200579792465110459661241310535210827839428680401701398560694336140601055066669192055970273234079942448324004937606985793822237005188442031251986144887852432873892634833814625899313608515099545828709783310640138257930186376196881282013251458307619813635191945729890777239816842265397295177213916196224274179763813454771245463345795211209014935233780542442426154750092715050459233813143681909248303437064742719731580920486408648719511817448706232265778078341589249938684598686495977104030386307762600796047302879906126575645454669909350082192509350001689208518319908860279612829689353041861268968493014579109061695704313699047991112694447073070333883541358876319075972749039999491535534564590404823551075835929844263939816064468460718962530289359486982786455871672813922159684510005613539201972640882290123342793991723093499576194103256468430067295456479733411811394665591304594420565222750202069405195940309544494679369765384000877515197176362906681674570184068400098323063949259746858046687221875081276606136895168568384408480726785915756983531424085003763836596519122068123253460038438731382104710529700884471182838498275514160463883380798304549064304597603325244291798082300656278365034720023060557335961173808302661293388428114714686314919475867965247694878983900313281916421354449047519330380995073887914573694030838348262200833535851285318636892202652882758132111569910892298737595006495199622544712674834591418461160946739715451122961826882430861966538616709903799773224278801718337338421820362588007575986678252641302863610286245889364151675388735684413580110002312068013147067204616017726113203563373755708203250978303024348180599016467759819778034166565558445742202999893703762906651347248807775747209897248296586019999018195810647011257363267574153461178734236425985554088528698901879481422283665996612662032985468087271908024955510291905324839457690971971643898715024861572544006095457786894561749100161284258773922199050609639599127991124699690876163219794704125084017354145310720321492085493050992049559979288178408924200534502319374180479230060941398289721212174470997854899102157313985039173909379959805710634726758268500545203736673853503485892861023552647398137780039157158112877436594855235927668250344032596433576847514160126514782036336828635442473601047255023283984410720414360787487449577597011894402066535635218887895706078461491230864431892537848399185438917766517442563978183686840332551525005750061027241248114864437321348711008112575909436554350524004299083411928047113969251143937519415562542384011478261606516804802853277625952935432202888904397707143937518929559641488067152200273932869398421655026412397973184603752940640141566140349941505200490468796218638076070030336195612674824160983849240009717054061100928535166410662010278407325755892789756596893431133428099364416718870850097786735653909110781706969053948630284115448858209669159762162174239240792287924103017357904905813807502526445287369741761877491338688736981835652686234818190420851709857160065881689456118239097206839835168497715107734419508322744051361666367467587426907602772163533775378333073306978846697520331956989484620421326734787977883172405434332125069015854522620358131471694961228527156801461766743359287979958598597016637660024229099955868258128546947772203759080654015558510219000918203452061374362129144195576221428664328744219479039441951518573418583250669598246428220535888786557036119340374362585844098434775106294532136613793610888190687892101425394892369794133695680269319072501856063991646191198603203698056311928459301771312328780647183295062201497050461136293381094545903637190171371244383571338516162850136972554368977728743749493563885415002952889777406368947015343442161328469608787787894674059506730433452384857211899587582818632716872096683839310009975719619273302232579429633942794433255403056820679848244976982426908045336429287592898074059980757707876470960193046014912729344739614397181611379634001764370562649032311834424355462759518403478786102967336963389726014914975254651890199217991143093872447398412338043573359048734130788191055586892461809367058745069371830155617645730541208096549962976101842157611913119894070188643150602881234566837087753860667540231679133244311238732332391884840356043853347248698332402880417860257957524924814305106026669114392131069399025439367152489882806993025789023573247723573714316331667865887229113061418910643827961705932710811009202854229357479432481545563895536987822469136376736520895654858830223360533051104756390258097214263488939463167473783483032176190454697536295267860260954977881493542175083885195791112340168733870019682362777207989656070783364100194992350640040907115736746187450926430889838692230490160749158386206029242203085877780019296708110892508042850126289106759104646668487022483720474683233616641847454482450997876709266399616314037474935561798239483914368646645710466590492436423623476245734256730653090132313904693537386655054897884786034673253507964963761678805182397872058862144337856951259908207141854794971325446045737363871623110153485414923620240282962172311880716189978639676325177068808972044262073520470461726880482558297710693199098401728125590182669929331045640492560846756463453961307749784794473190193361980698763019483667512976101736761778301871432155583861711452019622597787039855935523219265618213198586008941906124419433974058860506819295418448889507288876335325416349219378514552895776457556720340480423891023073682192101747826359916382068006494310488585660435320103032619938116923860831031252070186316183194413136849446760978538841038166940271282142235340173672449681391025729012120936048643705330107686163610253603866449146710954378890868556156260023252398478088123306372162762846285788541011997764379067073038645903497630567207669271090230837173734019738819481462164762520335520113074242126502680159702443208974759082541162804972197806318796970967031192726491996247532800519620500564493553709530137799663101837034750226908036359129485649593482300747214795398557747383822557886808000819787579384609578575751501711644607287750917628790986660376014547002647604639761435281341772463249993124457859465634350541984131306298934019560203688756671529744056891527812643683220991112420982118588734831009230759377107855863746585817997080123865291327775313468690743213701301707606628040301208344079829228026490239515913796695250296853838910708084463020884180898172710949584721945153082917541950977455024805621015626583696183128498038357769969532488377075627086303819231095837259064575576907868668990490996908338256501658393674885804251674951689865857832395863742776227479144430286727137012940917865407593978065320689507582786746270786697466943131769275709289985330855784850914492485932362991523724810096717443370776715351106790995478423970513574497529199034694131088793327545312487547217644097030750823792120897705306168293832294136784996333906538562771194243123932454051482411853680717014392129972234986332331809934032038853751340020057781367131025250684388070656889466491698101388697821272755123567817990174379183843168232416543971381516368587257578147823883679521870137221470476685473468310636716232039166662226943279985643726803651215345842714567873387033676532370713647680351531603498734889521427370178125131003035847887372052088093510261839352750755310571788467560959428812890795384125536710676324817278618721240549079486376821753146313001214898708579082281679993882526139954216692834823283692686957910867256570207744917359697062069253376323807538040343296204824574067579837280486293378369977780989606980496273406111759913134814382907449948776074836550704069864580517685423795989019593831133495404581677370568483511249961665264480055425819541324783758193481436363760031406812734938574037975539714011667827654521927843372751239368328076526983017368498446357094733505193106768954677248970383876027047850416373573049817313864568337142562433858434302630427616107902647081088793083719337561143495049773527823447540182331734262790524050440893094183286107527686737519139901031155696777944000331134452357887829444609884650738160431196246959786673114759743963808268773621961714346026788952187394367496419749399329721582050474263923187558726314537787100846854806023940737065388792186180437312478448516690126984289101221274149157532708187133289131579769946471232184848004953608622636338229297354116866358584903407129395027942501446089506950330929201802195068573944306601799278532506868486941334825887908163899879714537739657169735149592896273060344251893718690063382734876517255606494703986226354259849795118264313038152338559391437928173760649830755299382996758762345282849888672728240682874014937864455544248795375364891201688601778707877968140315818150418436982288030197747876244416796423056613863246412784954577470690598401915880526425704547758148405597749575257004180809525075625715320336373066515439458212017515775034724308037070322718192806145730640276452349030188517221560658909797395827077785542636266685846099748365339499189420616647287059717010048025677663325516420637379868435570104950579414335739717142794871488653561672422209577405428542419460566217961747047152205539521793702601613610965177781170557549575390718525088873778133990828760672387933330833982892173628050594389055206829032491073554025481817008148086437175394856522766065085103943764405958410450466955605265164281923249724368137783884822943760352373128425875369315746015265478842259018200853689594518302657912965741751315132816428004142618769025955823689286524187554380051721009158649680747809441339384065975092045834621351015190349237419282785914087390919296666809319713225839120709768976170038871249950732914854546247499328202563634785961275874903842935309464573613601392977846723895427609963840921463422101449771611054397308604686144173115288356811449346080676676372860062635503601544745840879777221053343938714893366214106082744108248603727382712379497541914284381955333417525187850946291005802479713603206127338115714917951373858586095132650653427571389569958205930985224991423568935214938020145838772836707496721360540618836555032756867317899326110307958340926651548563522087118931174859121176917753326033310532015252022073000245993239338831166667731212835657512411467401041451889880192138469004440301263901176614206466695619738530409217163623118536117167298263118640621936714535687011777870542267771615869826384252972131737235675997742250336487041512089078805240485458252968772107056837352531045023782380671062616006759155373120814262150700413398449668276822594735801067799339961165421730852308038077602713689857357001593974758333599425448481616894031564090995329784791726299236490248638204826719436120032878545403863490174526678579067441116265580762436772065774464847682459147034661242937554912942010359489932835942573444919188951365633153689031781439386426696747339495985766400126331825473352917713307085204166882945098516754239799748021367067135853372283481955649755236845074005019635367472366657011941050213243449568312609639164438615956592632102567890377171476175151859631295361439976626976042543585427858923336951870702950731291569361489914175100058436557067483150591126208655348647371139235330384572676694484350101555201948230392546290089484211431601624507754682582227705002115118080159975712321541738250003705428377727335046252883215968891481513284307003905603954802057660434241669910260353995749700805070288143873757981689749244614265482475282660291644365279893714146328369461282275261924465155979008102066513650162507158055676087032942006774875957261401808604184895808780574213245126113570096325919207442551624926550666592650623236796785583049896513051924920028506117773473026259402994386828669326032530023160779435637627356284362651785264629759602175767301312748881478826056941114649981084466158575838122144287716175983713979293510116006056128121898052509396128619686823727761186450056270040228650100018852790988727517090841762395284973316026162623641903930698210704123580276005185382851492424467515682739271738441915387420097765655104228695622940918115322755203581299988254603777536572439985966560115703714077809130926825397231547963048798618611747007304344297239387704182649673147553214094273464425629095691975720832653670223368916896505506116854946868430296251013816070115898227445841134870760173233813765025883587461925892462972865236361223292206873252858535257526900786305461440922223676181205952022922617947037688424275765853135999769957000817518130763985679383695226135892040638882519606627906110044859846357983855150491621598785788364867214603460904042458145022119021674546304271185072598777133826673516349877042859513743515347769297961706159538790119396008997381561991366071500235585698874729112510951360014481823782043878905706318554375596646486707009582569819510146170100742600138230144455643211915884691035580418960586580072981525831216907454421427219740750935949498788159677724628932478281756584672114995956100769121586867469966871130254052640744400715064464783611113480141177101572017274693574025257317030532953602689378393687270691913503606060550602097557860793675009846778162728929082192581987113599249858010370631370472874805648954428496761754409786710968428850466986572831479038907021935939804576403141063652236547455060620826072065784038650638883433408515233838007172935011352701405917248187485140511393595048227728827728935733193988681741281019516683864077983060219252587912638262954906006800256493658216582912749721306469182994524530885621613233186447571646201550141506361809120812063459657119779773927046422966552014917526642848658047142630951876478374477594693078250752151333589140572471815823168946779461873884016956927445848191042478264340226919723146182544363120523774384183044078710397488333260389512915587296549132838881845091155214697219448140628746078171276698821902485627729600223552727542999395834955069858622885415182100786078861533719887972890054639666058269720715456440080576343043933822702239125052266540727051082017669949998242596773043299053937196314283592849578859976477675579813255012196448097106993186526324639196185880035753443948109287216720907091135272398128218718601661770835891688223756657937266995758183505943945188621405217439117175972240859292025399573093200787112541398856897601651872772453651258350464349213159726470992801094908917534698108805582490940810438793905136587881297251187477754766390748101469819995004529218259117086986594191435574612620706814555638121918776751780126068255670421517648845568038381844749130329521965032530250655218828222993464901686104806589472938235134123486483687896361735028361976207563790376742496167307879634800436267062014006759839355212749026582930121442715038768770982864657323857340727193813287206523815251883396043791277739933906495450098842586756698015440624524037343662829430592576957463681133145335046049452953831539136293761636725527418705492523692555270501507290853651130490384447384744451400577466781845306543230163323294110838384835052886533226195753979618869531615436054223828141015860153472892658903213523120513424105666403213221659959332843593528975454502715172560793663884355866879659001835420855710135806562431374314863412265470581618815255119342870786521265938054192461129668605524407400508115845162694440625951928726430321458244385556111004478454166041214272261902233781041252741993849214427548390440401809248719079568369371553099808433746900472511365133205434635969337108856953223016725534307293379719919358756480335639175083918391553084814769522551566166577484186575143939905543761935634021495470061262641438162506878617258774487637010359812274067785491034328908197601845409314439260366629776618736974639280877538320054586481138413451988656141174714228286896338319630432176152555967628832208798283202609946146713014272533563267628283885551828069648296436428747418550330119949720197903874404084239856363832591904013565217611706119971599680764868821166603939827691497821067136245711092837103572063605059979297055781330454608777202122150017313688652644465734938452246122019130308817987869319213537741059437812654531887508762963167930924306909231975649526998201493001195357459410605677006460052652018331277739253660005254293918957178772404880873443506999757764625031179904037808573826204674802386736271110187664836107862172767008191018830909597253769760557621799139834307165431064214317500512698501701187631338598505512141510539844860365400800261823845046861650107174804342725867582947963672339752439015917480857142444352654085880319511512763176535016214199610952971546267178889840849460057853789203233328206066863976632230907089991600727431931538309103585897315210068282752319489913964676371088871898913583415691859406829254401874043309562477917535960627483038246541818963824388821159908652243122381026622200029022426478557405433550313900011384678025729232608250038571412848207532604606947393632731688828154105625656826264170008950209170021739404464567244541251489460663944527784915686593359695410856186467061801802035380454020238786422856472975169448644895808651344397548006783467597556674275344228804628097100727411464320732801871450831115089701979659335458790536775271870910309099936810394762670485200399949554016265327615516916946228196653369545288553068118488946189172446210909677485009866469751656192451833024369212358340980382009994827250896134940402208389085275326462149280217256949013609128083013954324447257635357927022493144212754931698445320608637013912600395039495838610533378436697747380876484201418394013828927790449176263055291853498543779853608941756057205162444037741256275540714571926051337501883863163221411755350030537201200926255632522540361364242757883604298687084710458631923502239900234910630337863036616828049935504757370219313143662195398976566854784354828842071994477386708389714325254963599883740679309484556593180861714539097357697797406564928085107317888976292192267927173541868223993859086479618996739229067797834706456149197656681219336195429680594509935072444024890074560635131999891175038365483732495201683873850861153661061537975397995650317049956615790283323074851791975415218410903298029764313426027947940574533870852964007279077930572543943599165201773125251639007818066202667142565276756179092828130418241040386510936662481709564452922097360012745293742751784714211204945345419434123684784844946158633394193720371154548745408483660050004643865954898272926911152805512122558224267988406335793539601857527532764724790614523090313118545548492262668770412262189209566107794093487581297937957381862836615039139503826690903013198422775514232786652788739486304195451024983099206668581390494176318570310868924311712585886842181260528877116130469876421023587427425787739828713905753413372830193771331824276639417701220370828713107896785417736641074484197588912204637743719722526626302333286111871035153459709060946326696618593067739459777417630073687518776023778320895216452947235694978208215595759864951042466383737469312112528969783915810533075531784804236183271229605310884252593530138970281180750314832374721295920359243726801712290453781497621876500314367365083059328259796490537365517241150093519815769790652153246168604827203294586872197784356575969550188332329362447048144290477914912030716734888363160228176949714507223587607384441070951577277751433841338960342399890152562346153779210978953209533539218673025890854447625629810855726946360145212916159400997879760126247552136513125545175648885846207690238251105150752377902459195499345583035806149571624303687355285481762442455011395027682502558348118894633821051889578246993012224040229485459112636028644721180854525219425691363390450322245800493376855079539664742880849693602664481656439047181477742616361872450478599016924582665364490260724068957082081294434077042823081059522070108039005408973061202480739946043530627269294928461974451148336963634241588618849816713109731246276954322407747234879816939425671157015774805509911238219053373234378871539463353452613565669799274937169266554691209604811257820639759583179570612434323774801740454403814830054658003835080497392916146534691694674564452095920969207290170729546005132073286365888298522039941874436295013391482710669499706275053104578722234749612946892184639743628273223535077710447242647602118957433713005097843149993636594350113466670887862874608813599866397823856228466438186704327420197416839236398468124231806867027443747733835567466535710569239036171361869092769662516825484098089310482049424829102766480974769506301271045390381782284596469087747368884424094205908742412566651966960679320271334397251678596867477193120010759358471766720690918575401818380194030174781061985111363843546525151407987291903426310505016033814814107727668882045292880136418991444459219013229201446805667645574316408206381237785546354171243492248096594150055312630466006436929117348900299531352967501527977933550148641919856707212827230622443556840303236547673366458041058482305942927952728977743961934090297658999836749714384973729185122088189564594150100014138641400259120252258742680662150646248294663764353908542239801853506298307887073071733369883282440463548185950804914344980153723812845176734522183499459993297223553953149038560842158499655820259138998456702236574660003373907259896983462361718957319121578842403316029702591923917291413960092067572092618567788579772780425149377679601582830936462476755480833592047861063693479043412669034628390346784525888447137459292034884408241110299174328468625890609083543423176459131781711937189293109541712703586640783911444428707355223720459523978211261344029805024239102347987991707245068438836279724085026341103348619702239023724478814270291716925177936701119476796610800279262563552724740699662045759940967548396076884415714313008847156200550699725717591554755835410806914534163439884332904106274317014664660257363621604014182808013829683994061050657186567523899903653147417881537096577705614747771413451368208758755273810376311286407943536194486883494713921414028202094971515650882831397150050630422646453632790030856652790794959988662008386845235139877096689062588392731680044067046007369698595091678772073850195795221061578817677962008279733397578601338566990238749001266083451737163581980659782901525855292414882252726534317377304630023931856047008422887404027856830618248538755372766857915103204110370035800287559481602653854134167212214390915034297632664187093507179945299071813100085253122594395672692071037395821715625004033051248784387409949930609815472365131594933141277139409546060476510767386999889187299212926869371004192544371607693343993423841593980040320919491624038080202988879559364397391207775813796929830738250455670008358567591082811450400515882513798556577558919475442763635348775671796275768072642156102721953730708777556427639936106546126486433450993948559290235537178213787594618204468354151265619149903660522046242583508446644950606909345264742209700130040637892416069543191702836288688841276856433560296946970312783383710975988551504001080891013036604986237125399204246612791430636647022769118909015634720760627596556629865430261536572324023006040437421896265051139911525133954865567069410205908668550724417990189266184749689647290653638834045338285640931484470613925687070922521533707475384593454370289805620049706481190876544773245564166200345230472798948473080469661208896099886309197541143920204794049285695466002510932264627463966702687877996762394524242466959604923526520756411759432866789193855721648044033180035045963370840866876959779684974972446063605489426985080512912277573045183462643924160224919429639061955045145448591194287460013099243671097148683870322900597694068262017768371981998994796710870428191629886754223000301298358442613561717163122823501560122298145356422947285738558134096990790325180068643186180059336730192224719526975229004927428485553847537086286612729591215666146208261481228509881598050574143749496971282326843746951336302712022477380729581662974765938219183149226090819582358121999496584639937749514921342720274327792048666825549451658381796824096692366314856260891201811789208388561038648475586149337611660963354766868145724555354834171424463564065307717561869766981733446959140515993535418139996440417030447902122554588968697075040635606273234505794750513594445995271809336992994809841200328685690415622895142678479307613636523202133027050980333888394518701760742395344954820834871653636099379573031935466085481077156608050508098645981725532441458255448523735944475303588115374540394390544786532850025149415976532621024231606129924107704017714254036537610598616002185314346653405226241495505694413853203445359918990470702982035552772704263799177135301379236122077694991429404046560700363088825345985562824598276549748696636130493136535589640081083740798654803883768470491515164356830325611198278221287673240964280815421106825776876027242163267626163933328356796243123118406578263171725259289297120028176330863760916747011746181284575188028081644016417768621028250247717992493789110401594277651209961003008749399196540941537988910329722681672353161867954909792769471350516445880764470575233354028349227495231500683060880304617982867687332063010368665129224943464787668791543571776785822114677322589911520549850340265579039186105466273160533766571525080646425058133835406227754433835106848322019724853689755622306289483438394546384508690166174499470200469192134723576190548088683849013134351119965904612234085218416970675719282018448676844038483878674630588361192007743263996784460835490107505439000018105043654317138685525078271888091602848208956122810396313174320520350133749822488516363462811924888228273710686381671245227296841724845155484275998500117278391991147599197187623533880262468307202357636260380825817750866171145454247349832708831122699675796713719652892861152830950343557726266522300862975351297364715821541015189682014280056465040970817162213169365461762661106415521428996491816595526908241574343719333883907802856813242880521687226317077315192903887990041555696050647627505987613455907583299356359947907741270474317015494972040616360695238594713397034663983946274621412135247834486457547580149137103041878175598439093641544609000721711509238774629935164818221252031541771621141181992366040499435468622823484199377074364014405529854812371457439800283052043987368976552155351610142109767245526746373952198280365325811297854647960504880294453656302034393544187300458121763033589157072461327622756505366633409610696035046404765558184137861185262038743927421336608271342810357192673534295738938125800694175993931616973987898366060774713886665025281283647775363852418037779803140036200861209726200804457792329603670032016009725386599066112414995657306127117120760831130102075417854980173521838977125918380973289947821085259270198598811986100036611098152547103879569398063250831206392726900227687912187390913732133420822178138981876848145203669196709475340955710079760046080034242883931980801076481550903962087288122243927900227480544646405254383413432146561883931313272986849592820855030037947377735545317734224364950719746162742699789046124003942804099156617689020438934428350701123403354723777763239710783218757570463887567544160289895346420742319249444444236515690644273817010603844299120985723941110936582098894085718655731961572152652673160003107509799150205762448577216322541216495477569933751752753507573389621507886421848212849027642928425546872947679819725320742990341915881998367230999282901557938231460623824263673168422344573169910213155494416396087233045904367690654199960363542460137508648927570713478961365045884113938562770537960239764464279435797160303438755444848279319196976635163335876663548639572654772294460554210091291931468402079398262252648288821486766746322524893262772419989304493855287757103524316158286012090229724817532339849787311422785352290542217654477763114704516664277961540874938467147092303860134136431913036752193719778029828584566893016219388505472813705093661117560547630641480455785405524803477526881161419540375472301950708105768396973917803594425062037076642710159663370039094079685440089475900383612604098231558099041862007466353427308774217806830895286236501054210916323589608368947942674952641717378257795188562475139201572922859625101924497186948021215765967026164606679235784602376540200263379192138962169123857186869395725835645722274486950278892444702930196449118841281279957903564309075169910444980734197460613789754126737262781666011678344955106838111833812773692094219945412179647812696145736502859900272191245879844769846827995953152220120756033757046003415320331160409655956979469067268450956025672289030726696626059783231529636711197487871150451175104441482232196039807497294924665945084039053996460824821650619994878281669244829880480594304459979849895811624782472664501801391165851378977815905251303053270107967541751781736457695279921138854006249462089892592774601768415035761880583386900931730364047939751102515321781907438972398046203257266062524236322969175774774961794402577434193270532802212553086636475778031941116270266585863757158622810738788752625034110141277782266951236798957727726169418220162151259943206434976654812979434260395598391634473757935657969964393960766992783094961478143015474194769905312663942748315558115162895633303755991022149077463682277313781296784099495907005256232827348045705914952492984253724609183404085690333603262371411534447468927737299297472547645380125692894197770472609462246696718125279112008221287058820530824798991584422356021451563744103204381387298454064813467006269271896075707101071219227641392406158773831573704717275334525458935948180663445041385669028895087059939551019610977144250020506741231287197035200758740754841821730686513012085234522345712470185547645901062933373464579604519126138293412772441609469991285409584286724930969316882972654251851922090904679654640948234308384328348277918883427321418541192990721604181711986962668737273848527376394216208632966706463408360295836331361057558214020447886580785477146623655344653790382659050428505390211741467217676613171726047349549098201490730267723773193569994431783454168850528262071961645953103609282933877404039433493763444376369314356562971055972635342477138381303943740629823005399829325903353266834467010630146457319254509037082537433802140093213090157001444496222295504293430415154023854635844590999213341604807349532009610448622978174964451868242555595577542612229870716253265549414569110884812692446386286635208570838657272317672956484037194719698097290070247974483008193396178896925521303255682804157316462471426140402614703590304482186638310052150128986229578086667891948869534010173752520840382395486554337836366962355560991126622574085753354392081319978706028792335282727719668839505492604891341523596648284302216798407053868866735578437478982722607652324311234557930038208317522665101085189941352910690301144326509542467629276239486094369341137279526337338441125467779550374233093854628047635822971507060419441984830446295247845814983787220524880797716425876604558751142658032492409644712970807995952801672705444296516056609762449161908971493435382064213588559683168101723324205975414484819719363294741502965500765459011698309425272718104882475993300533790931950277673241531484144690554595953462211984680560346927911080596622755759491199551136614615269665911478169741504340303199628640591972614684045347369628224189744674917284551669652110984695125808217080714643003035261136989284975942763360604746749564008786604124484012976607506016355750545313450263100858549206820086144503443622646043506266562098600784690017274665300127708150428839514968155066078508583350531740947305231636469779191851639564294303519382643551016878665296570700100451412798568602362385714074828206732278101394241517142537898815677089579965703647935900280249312945148589614214934304336988156573934492160523776325565002451877802286317543853952781737164623527746442962371071603696210774688329957154137466576363604597645089939559689621591330055554648845641581202200062184702446434884363053846754312512715447860724863847898266514277590138327582850806293765577994150497842956247653980034297563681691507927479335508366514520500988325479609975970625671198993456377186635005951443823999754107239551556700644453837920219567103037675307712100368811778324038030443150247017541033898957306957144949130996208548334205533997841215308103337982802833533882996959494772550149630051743696633808937600312464959368245886101331146541332139241322242785597307685088506768042577794491863642445568879641290776392963104180917722577515753818373435913633473036379413845649661085856416027890417394164669349728562495988561601644868724865161737770849507368461569644683617654567017362691953144205278186074108860066112070613399622501637900074208394242500214082268975305355921775508918533212786549590806937575577089623224799903258146528646093668832557514507046170975389822778987653737788812639499348202171332689657356520888857587196739078183398095935231811616286949263579508168030524548207198003166358947797699736824823878660846596161173715072097924701015847628806178217533351102640092267837916370081001982538081469260568570097890664002680549171985611631388587592385802507023173971406088549061778400280207797766112058918586930171022109164787515485978757493202094411016004575574642266111503938879946450176936829227861744983805687966220839123283874749666993834147107752827653899878168363051692635618805081805035283610085288937065112174135170944642010887855269863692201602047341793628937157538508210636562192603965556558816850565847049075441322782394787355810835743394067705245850560785435162254400127815315240278387912577154957979561394351211512118122094882798109865422929552097777373121848266197193929117432348618766813817268444318753634420485156437761453924808599461769258424220076678012161647375451010727869718509536568582792804362705708935184532524656910356218705551827454154462944212056161809440073929127714182892216041263821736744339525030594026233218729924219618843414855442175160509041864000284527987611852753923250312747652759881998310073588063855684906250749793053905940944750986764646755491322210510373712483223355877508971139659975892136762780721297902881821220251138544876228795274287783947839541484989141658431556345385005751622578307911564349760772607900218171618143284248305195768938083469291725175839788997046654808454176477854185463866845161468045408206093077325569927858701201732503302064447481876757672817658726099292692930416942425650305284006455867568007366967574793063631750104366002181028939927965097503413040941037576244260474148883045245366421174450168005987588490476457163496429703583965926480861987258268114078642664676731801982676706180504469186422280598192681663358121460071707036692699257440136174252090180030407488761942181233491954126387929447482506023792542544134275832451157516791288558608134620557193355331370023921452791351715077113337350100248534310915486234807968360826879164800187710233115651665722399503432969721328268232073904969334537646957496418383705158166020578595178028322136944122695434573662709374780771779258528490019803215490535504841561022327757499121874779779138053010844078375385302788538425680119211426113327310001273673674004279234378793530349981738041420433335661053945761367441954902721967470001368865488065699748877008348768307578165621879397368679808606218775186841330127241015212490062089839075321839798485111315826567252527045654334698565778450056535431734396399453583279177847166520869144642813667560130573410173480706023885517833687336414059998341844530063577936153941510145826681838009163356238515084375345400635731127035164576846291302077326214157871418543835783197800804704113897255537453340419061367814375300190827145422828076584791586496280746016217116055229417256334195952620285246699966800582794895918201139272369112451723427038459734525656704151400461919929210024801833055323340881200523196497084639289839257867703795252971965324936251643213072431468848005058203326055155889091689904866256418683542769425870513826730218698414881712098609806292668114919980477462938486279225890717990941319383978603433861682573304955844279130013112182135331478266818499214463171751435870036812699858584689549658755658103120895249194276535352299364603399027558154947879291304331417503950498876653688556849191537002613149119273787178485577470377352811836121243573280976557244747067200186707449614593208726377976937602489353415456743294665315760433832833499777591484978047993988179882679520039183747963742372252801150214550739759893323003910318885064878000935430100183245957873771079371705149568586027175781803448392470193629249522740785428092364011556331415191262901974691926904479199682188940609995696248686964820277936646761019259545495063271288036533352321940521333354411787770662258949991766284766433177030936999822256181148107237939177587847696344524689131429227460316700804368670499868859490664246937669194362105062563836647371141876788151374989295560973183208863381611075695846241107393732258466725123281209924164483391080962998151893383932650617051993210883701855553812898073314777241393182993680052367552728534069082800574205203915186262111592956110877561915771104120376974545388434448498272447727661816153579475477434822387045760378585970764787570517965377022096666068369668399673939666524899121821888386947265178084782389848497836102030517386193689609288153925912838070988713886572976262738179555682518474292432107405851137214395053356059847038996729849565790923649877150453120223112284061739358143704014433803615607303624750098300986662101075989964474436679904109046241912808849307976709807129491567017060593571841924073068258223665616987925741093329253831573033042681768646685333110789057094289311500566105174529478437762901336270544414784573664859128178640845937649110476552106716964986873857464966765824054377680669918982825842591565750715237184219898328675055885057868943110557396834185519828279783277355820708106207346525540681994430546069918043037728542172012917772019934366497148068360598164682382262944806637864098506132027511423210299854133210381477635088365095057809690283139081256809786750185013224310974634312576924709911212805852049684485236023737790813158202663304787331651710294325050218307382415889544446864102842854710581239128282441626170195515165623502928984920642548632279156976752593192672775580981814771949799004353008795756558599216705430363665043523237347593568672752891612873127531399781212790604993634573109700533558346398965901910623522511337302523678301279934843175156208841218525214138629214992638133712533590681868278053669613378973052955877392128298062339058368856397442546722479915771642080980648960424684920241573283971381014420642302041236569085893247968993894288259406826336727433843108992311809360740053553421272308535173748524932651859352392051594098040093915385368035935673710808610604940410797767845437086490707300233423550206701868829816692245211077529346096356481731941957179158601596724588927719656512364535224977654717423241791272185701721722308106314820333084609747555213556712906800552613554703519187626403896219624079811013801758870963005545033195454510740140625297164251507247497336398005643854237337803245689920760830083291779223268778377357727862830645748302889071849196466826240710267108861893373571067166884040498815794879617206999718285819408797497859734105075217935113786609884156501964863443626061169265222947572851797454856260675234042717268617413052877148845163185663470052816215708226772717014285583803121824859983281949658286927092787042540933549100773023393766837933493096610369737251999276388175748114264929994728715987889507171392784964147125342333059415424501659593614639717768964602325609704567032446782962399920038790694624118300969568691206211347879714204826786642862704840553449524612782045482833497068196738655286843629434730980371954536865487693197349163018500893478682832844261878501479259533161922941923103553178500631772741970719676423802017059029655037087909334404564626206186269015420288418579581154928191445197458232200713738704267238025658967616028057139793727321581907854192663557096876300171824079262740832615221279478019886164627260977380165400596068966163458060591613675756846473521997909642106953109212772812173128205693424249839967386356808825417685742774595527156324363252662801196943178555661713946908728654277992877388803879866894959316558047388688651480191919079130144063010885907061221871848382412446513701267025961798863395456233955633263108266204079054101256431370956784724178726615083044550954554568504953485940314890972210010686598778830460003723141639384933207199357790867716159884337124404623419171205288228021423557502187624219688259340311669795391708627917785024811687104919429647481559162439770589418239579512786320827698457004738825875455114566327787826189291976252952363812194866542040239675087864150647551516349422010817580995538037132739389383264004567400656609471985232540809136057396315297890153573594386984990956341555427717176415585207322182491754598098659168998702896085882036840503826106515176015235688621840594667826011354141563357882918139592455765133547996754744045278389175259212892806976222393137516410805031338853968361937730651018768788923782939057447765801524205588002960051200031768594780375592926053460294074895485871166254743755463588796453184299515106895983989402409593459637773778069137884432166401698008870906653934428925399698646555870217346994154140971504271196401235980994812874013583502392724881313860208795069672936060149089905980686793948965237292574588175220035284356029498199046921474122817841898914253646837491537884118060384152084843907296362111817147635747942125388137600663981827234956502080452892706411558765467845637177606916198217354001966760195896355439615806063447130829744436492991928670987359690893739093513808420816643697165429433834682209600217744832974261419365580370157555201740601370475062154661776868181803916216506043520037091208865849469164097196359581440560514207642438493102912940514500880990233402463086604475218149245916545578669079137454353891463758875191640121191189845549611873361625535548568224284366523457745858042620123100786608687603106612648575111188306157820127342041862904578559106006295709823803597634796822349888100092921738472425486304139301447627202238916693238829667654695618249716952562477775504490523325116473314861961919455560383122312315134021439434114174803696990263631316541199835767828679249482247997972257920397992810604615660133175682125359125547599143924057609135361369168763091702375572264653371144166776739650973023918048593153134151653122251885464124759751125363810690242027714893492020911907805347725441650474046597877042424311036496257237326691856539403670933831190979341828671950891640999926928343841574711702792359352096436012369903273132965755530159643223711278512192088973637904967790294423138976763908645532549886090553620078532208327845377945486292108032993967080016934780847947249962976073756560245356533807582521667248109024772705931263191548817476205812093566629668623967564909269712881835823385579441027926771706326958936804280355195633372117229161936700246029265174504789675857157935805172780485794344016069951224172280633063599038488575051310519695177863229447515419566837407920655497353860534092709215621864210741569783019203160827788807150950596378279368531153736226692812719667377396806141557511501646267349271459760116491748152417809240556484065239234865903598898055093361962934174192655252099948728552197073991151745049098985623106165718005250930822772648366700820200664907610885504198804667231459471206602181977584430072916999207850359588975244318603606536823709235953684046140341874291020382655084929303232528279092016483704888382989045601022457210438576983800796623719963167549579433839160162622533780610828919772452714501063503381642827562701196681489052013049165883423908817610123429091099316887026420369416679992050370115597459659448791547506817735509814301263389323821843690478835100046670531565645014605564019996003836427366590332881001188268506336240110106453560061442433809084034366220078853899818230522173198786761322213076245379024042463927492401175074153604966040128055665409835440946539430735452945935560146424249142665946467077844980292890380925827013329737451009960459080848445743335107756156127504729275587754736844410059287410288194715172807676104215528368175386582929305457048159768984022238094557333105159914473022433005567487486724342513144952326363774478298190380624398892334403119224447001084025180154803811562181672502710871341609054747377326005621941621988158942805806573817566318779670192885927946470946609667205511276834733146679907792344350125814423521833283491532692872510054439439031175820463114739886159300346757604203617639556637708968834552772950498082763575825673185916494085721169213273162380923297097940663747647988611345162908318151569958728487700202968594379258760175006533475103283534589139480435128596445925562730357980432349197113656601995856581906598148762085036834240257792810964625222587182025329412936905835162388122601197240503890351985873191501952834339896587341192621294299687436256567116968127907553751603024052787150158675873413150387929536740259561437471794429814883849416347351365257169288476225057626580142004208548787013330302792876637071739781730560842812254730448177646113228451420820006833161231222326728369155861440567462010898408657522804345529504253695228832600021160638324621628630671058412614115678612585175315939299493570271326353980144814631630007760959080046833488622832751732243075509271593501222673177261107729236545095893800772003720289304360334271105094408894196539703841908262954733522603279003884494321493125231400779627047922803248882871332994408309728299694793132322255539935700918689198422804234520097814756311337615636841276796618820344259867817509905845074828799312657763812857697675982044501554856699058159066501009433071956852492031155871121942006143575501243744282213988053050360991698650784646115430241308498150773683708760493292209537259599660180152673325094781190230836488754887767895537396212501491677209471674093698357287210872910168260176102143955674156583837221022914671402242509489147581594082545975199385709120525098242141539122520890961658486275313627156534595461411205835787824180140108494401529675975312345892924041145693246240852207338597817447746089867157332798393338644392742346758460302369804455867315202705499145652581148656661653850530507411325164035800989624087212430429023953169378781442869691527326922775462904446846183198511634271925157260688000065362004809570782171228046131145712667830880475293300716295048054490807228929661345047296642030429631791837328353363840402578640398812328260564711259166549099698521527859374838069157716678883257882839782474790126081468166960869846127087704045204410623393794731174315869354441393011608881867727366859488388149769618990441044290774257153918558663952588598429396588934104882441684127379390470777544753021371914727899258073227949462873900442348534999504255464019815937960978093691792815733901048123216663203398041880872552919545351210434488218837586872328423129662570038328458950924562131499791452542935126888007507470685863114558220328472090428433641349017268676241914406049799383970953860146077606233340906518560287361536319032048086326804596958944356968518718264599376566137222408581913084624453606167468901696050580019127911078326161709026342413723684220397128152266923154243440045800506301761837207088879884607666969166597121654106536379253796662297732316603294832189019591697700400020717850568595248534936768598285818057814777788508117316884707803895653065568546259849452559374196286447113241122203153857496037698017666824601436299370443634836735432442794720657314750866564352477037754692167077042402582324115693541647726479140771846617243013523251670821430714601658464290956666575514838806822248321783241328833217685908261729579165917112725834329591521459994411367353740811729037592984985721480796488050683358566502485784932822217168905881020232216846486710285420143617344058901289514708602173729623147530627268118976016975614294950074896666795929445201211988132815853107650293620283593366743048069063237931700682993008252014576917788946321096748366676707231246077069708378863241908754041620370143451912589975488364144528621550529189677259425928247766353388246356657140591967219410646156690341869578748356989776200141821366673559403633122272299038237759825443663800815022073435727535964350327770308340707556242865083424717385084129404991605601244183809847634112596504877118684587768842744514213263854041352730856369113732255775657375021501133590464411311341314821530312412942246145178579062457308463877707788945525943295537262633769208042648112857999745659505872751226123864357485628951413175821625698942695508202847019369615725673049295917892639891717498869841833328433569462915413946031768151563416470708370714449196729466119377983278023282257312949604296849244383083496289012301431501675816883413493616730947699797313003842076777213904681598235225347141384663104702030034466076728283621386037898056323174113635629872724814416241879284862824678340749249311786934246479256099244251030778613069266805679822698635711219934193636504756313221237216329731338471322425775069890829778467609680579912568047483119765673330941585152213400042820378125021324688706746509086768476978937935352898529165528942308515308324381660835324311844763598961590494337066609214127719857201228882357968031112928791964441280954728070017937810793731193897986089865282480312238604959313469312555507527276778351965918764573490585223900246700015446056949625165313743303753898770838446742606781683142760428365724949080940752245036506664375081730838799860749860823861986823798480838597756960014643209253377280365564887912306483315858176346898680192183452828616979278720989556318450740166498472126314682919352008451557536449935778189336634467632747016038346159019257664408958416790456068754651124882190778196793394174250511635671812909860043098434611648942578962605980088661301386473033914546981349289170511241387344899950516324688423251015791477600812029627623332004576552527919990098466240051110879190898635607883319136223794408263825610108528160388630821424090601771254012327730781416036382940383303306664330737606180869384317977251411670889329818381668646925738318001910219966508232367489269895818844360463069751686857503829163135740059154139740900566556670396108742477706322163628535990366242131265326165994320552656016464221582775128616368964928444928461838430021904176157738254132226703881397325028848666896073324676960265893575768418742630131336823023413626372289455615097996929083565356129362341909717119756231816440667758672703961922405421484435840396981823392905923006133599779754271294458837041007654443643122688626509825468300173695206823533824231824106850235485142363188210569261643743730419502596523325253601954195336261604223952414582178504330205663550738978772234142811507563074815665515162134413585588468778832379314023451253441869091303962349983076748137049630564697298197595810440720674364445795076122991206885593573594184929471922994653894583080571024017569176782627380382456257085352584511896261408009466060089502759138566684291318983753358371415297045188344819528048370853349182110226735125429096781757073202570150295209570463813416865363130811900125439224987356843637267706295991847983501696068536353818097267913260755242293395275605052062473906161590504913423451663579486692911253114360209077754510142980202426485868380061840289777906010987794913944956719770817704547520873425025511482174049796088572066781395949481958221778961049068048582460109601185209576765928423834287591530274876493730587819313694178497373388849555088748823514371422370032954691559162526964505405032598336616251044286135573436885681627112587324087918607890282597510812984233158404969787677681756282329202271916307013036701332285507960691468960792361724483730843037496803186275367045924471014677533406724883458022615807025988932604911390170041162788482239050345117867307323288399599934045993311420080011806645555859961079130411461908285779913551650921612501210573813686075748958321624491410449945198792632691171180021306621602657488378476664486338770870858869306275191578322834315738908032477660235082571405971241633495047367989133420354964214610402686391651296406640132068462497817526478849703350931897880187037044795379950265724864950233092741172231602439698529591647815181318106338300290655330884339158146761862168789692269195033881899289896005995574698567206340821018109713013052712399051522794070507918381875286696091968588699022674888423395821165886715294957759963402746519533824339866522063100559638451018044479019452086036233948285636728925616394437112136275510757332746366370432496335419973329067900239479769704441516305198724461168247977025656560756842968910149390122555204840990233698918264028217340578579699294439644049851592746977081124978696854750277989530671779267308966143485621141521405676348678558589898277127703364514209630088276075665373638002860876804669848472123225942632709742189565630093088816753928479554471013770187166065054311470568466932537615028706071999619097794665430019335932691208370105039784742710613735092870260210295344341774915348010044573828417001728073089540113053989910344056695993282497739274039942016740803255569647754789560438974989146433758280007641330388798542851939596861145152045647968871989093216281478509953952545571070665374595307593420070857135584509167030552996037122708595393785137154888854429248310570781319259596025196087940431386609464584984879625340904378729419232002610813259389855368041432116781595535511117684952539770127648835650021265649373046904385750890834559435676039952060520398031760091880231545587306460117369656128617179241255046151877604093072937194737767892484588575851057115994814841719822680236066527216667949918782875207519664178904091021001211531092526003836288256673281679982883464009204779671429003248809799722193345307076080243484142770970212025334186824148799831926115492449110160309388868207521170073686198333766771956702125459024335356080537920600772512247331637713157646173486907492775932477384551571596155702620505441272922267687381443161962085742808175874444840119642230149219964834441111768806116051097186460024409507753841637498857241790182390386849145820138876198127165182394278160380508565943964468565792906377030413820820448833596199828085673339530165026949523892709196296473338096844192829606359878374163054949936472660871203534374154534558947222538239660243970320871567880507787266821483548866048610267318139685992418950933063431326109178998124085724843516150306750209483776464631301469507954640121590436788376618776373322493346352295341444407205609561374524363483490511150081987978424417490766369567083377859405441699310950750963814554841900181790920442721923513836538931733608092580182058992517417950431885363751110064216795882215524127508475173115772692499037636893190456303175089269852263353799351076573458709876940157593719214564132273782010284004085003606312734284714321790127012999608715636096886202994576765084317597152215123669895252665643864140997874892434422858336654259644694017594064461442047292649693336316365994991344559928591716698707224695640101601611872505144758510902175616028265310619213897059093692090804127976581181735669049489924856073454013502983117401887407721013421884277785907671985282169864776272460028715329750158368506173548038843611393552854538714138838366364155077252920884886271689230279455023894311384576608281869071740191453392147068849154823519402722367093346475216025413556820465663477836807154906954799950814586883720824689630776458756787159974118604573722258504479489047248452649742384704448087672001600805470881078115636292720865955514806501978035837911622410081033366331249228607248655697197615962317632104171315777898218325297550223813030673961676265045030140047709077327317985215673163197509946964537807137172640092062297548265701671397362440952274387352297485512262833410655072217063759172956422827698737008283978387136396891145412255248578342261969950703064115081110224128114332574970775650533274899641473066714212769600405101183320113181686400061665838402829661007080946994547005212124759106823845405165417263031937516766899851131971475153676810417380131741268771773828428672460191571096249318802316221628970921373640382773763263403436285843529418180612383399271087948557978291182389638230480120361419141676683075307778114756587997902768390069247448895669747981901927063105450157098092252043124416100624727959832129904199962722023076489532874630442048743744056944914860681230200748901922623257715896306055729514587700294465647358265236456338160610863611587185166823018191778552976563786935263704484065660349995456832779107057392483647668473502785057386703011742904298075092447554899403852882294855258866073778454193853916234436121469625821049873756479026344705860487936092875790848069100114607599642452154827375142519672359563778483598084170546874034249035847914473839108220930294565958796823970192357173075438912889352543553073527890944026425673069545220012057358579909826573081298811966838571597277664929489233417881532765997734974962314736704775585071346092039223326320384450537355618275493916391910623476749915429087110602742422729182491114375652825550231811333425723267292313660488953983719859731574269189876775253479011534550792874138420368721204384095550856173113146249712142288422238391059561636703168410661935878753608895649665830339203801492905369384698053856366498648371446794264194823374284073850207445492499956155681953429856178951229431805579618406650702732620661744624249468405845131656166989184914595239448038933309187493625550454149008482474398666862596786390927228944743378504344567515313500090326283861536265135340620309381937142985968920481752580535932345070149340316822646786334874253634393018779052654492235329991277922048413354405398618838466379841028222260760295226282338403985917255255420420920909104690558387229880481396533539542748164026571024092887138312712909758213250352126310984161218518033109084210825125095493310387102339024448990105507792775514733314318602720850408923404691811065640314728205488350672565071032620775234881298769440981809923547069080799579575807752727082257899762836471561060547586743499261694502159629107804362977185036798645585164029076377132820558467307681909461001201225794156736703498037604932721259336973904917638541466003366072963382632353252135090968479548884936083694901929974989415016099241876490516199357096656458034535638028446895340175096651630343111430126306395744873782745780585700121587732665309982344102775731516348991250081147482083571432359510589932661696250080031682261378477180101407719738101669720797670196482658102064588894961915725979695397614908720432166842167399275851106610161925439683392388014401251331422190006749795542784078994999495764827370406072483763770615502308327311186945683053372586399258309348107009346639760838994904422181812683401993641976751799447808455867300616074653967060496163864634176607815694859552930408595645914837950958945524591734291519318072442577153662016413365045894148263988103436686550042525485111811146877952596589080548498426168056161360661961479259775631179246596990339126323567755945319505535098237111679098953210242634799403845930644402261852292580253306199424011398628292410670049842094806882177309074420823433796323808509081312779214156479776643730239947228881660339210222695651950773063000027785569576594498759612175570896602703484566482545861865160130046110533567508367798483631333338413171331413099064600642585060599829775318210711923703950198061374221097600952479954346396052096605836106260395235498784110791109244227385821147039455821793325025270170825843549320758049610278570100802969985227088506870207871113699491645998485341765653279455763590267912516384800816128272760443752871742555042854692943238070945996122083179477963282318617493609282917219205805776426833581195156936544896849105788543416412463639056338957567214010171182887076776898409490886249303371475865463386788971260033027383671570210145132456323248940584429478061764117145853106937315775433051003090649140028002003186497816420796140774424332240231869052079164095419647743230352160336019926119429317880447029073292148107810646137639862835252162759689467921582166980428529812411314755631379744758117574251370832630387341345886850273312507261067632483004529249666178632152300520398608835019658581028871618964806147939183674646683991877722968691890550584200426220631887352000089441076825217069662551832465466563073121246952574329276804169084594224221425666586327933211196404250610068510807977525608115481027392913937474565801241681887252444361015565642558049695942027431593316663805244667549812958856289159156719020899269322414891577888796203409739436392234649809655778216471103817609077166557979688367447030745175936735215143335144274270149897457748111434311057857685468242434786293685915658597453801705582815305615985399023093188514528334071004510407514597320236155030904366397658200675342758576920308803444261203341194356123100759848134778881004452460576360001276687527221250893709025117446478237215669871181800255879991422832079132955934512781753551326479518775187417009712160649989382997377826594631582118239984479572459864309814425132983893330330834334461704545102501578893072481406570178348922743730297829541740298291504520298118527252684115653551430686665626375293599107407549692926472886681700675313740863493345882473760159976910028743165309158341455160037882063905083269911569481620591160925761234057760639965658000224869382141266794004830101446963200995393917181299543279578155066125452222683815939302032652130067998423318934642534666816338328941774841788079840592067502221301551502739014573836913409598076689379655854140861692611721308155257655168209439274673715147969363732520909783669199017033255254524432549501074180124238789251575472822779989461331311690849307311646870165999622624381416927742381674736503089986866979775156753432709604081074897895939597742828773034001904050396758308831309758858284615596506904100318179442535919123909940862474073635228855363287683469551095012600589051603811256956904540049934939239628627315177132030709887751547601166548143608813123057476062821575550274418236289876602840052755735134871093527243581085837309225979491473417989737031115289280735395354093690595403007750432171762657293074219923456711546596567499035353606725327094592350867783775889179587278188003307520074930399169976781072035266396526564330814951506201811667070478558183738948835021393705174321967025276997956780098404323537078501169445462291797482031643534195100244131509899999195552891430675740026520099975605395407136527959195992239372852228478545749276337552902161971162160579703194890963386512869980947584752521769146245438197874160663987278761486822947705335376838451644471335440196036588517017258961410009115790649882297427586448888235389727383773281043640208361471866278784879949615986318729358159037869658816143260739452439509518464418906477018985636909935756058310030623683025079077993653994037465457923278867428721018614796860284822323929511432697133012439786519730777079470439185516756663397623625824259378918817799536346366283340789509606127762672905289404273128187827113032214415911162768262536649564553258288280216672816254189050200436547782599418124096996591755690376568048229053906634470879747471007074450629600125726570903741077082820931919777150783889749488431696776381427946405105687951725951248271551037464076555987462567234869923173001859141080008332218720906097929306654144470367345810782088176365241783500632090699686986275156809463339825569432404582480983280063167019041417141973740775070872115689506344086407773259617507728663744397551627168198659503799859519440796841335965990788712764159858252266669560477444395446979146499735365675506924138002358175008035448114319239764597526987733223055430005398883834001091643053575402429751408475863979048676631931873549422301754323584200968237647236990814607439036715475641105975594449522875250709059042280237440487113705062978702941184628544032406979526698856457915672904845237719936209316971013991606832023487583094403998707126401835901027170302256110130148183922252165825618405988909435072624874265347619942640206480953246062402947814660758861302149195165592388320061816261605647696436119169641363683019473296118661209603253119472795749441281736893767089729304082719628301023802405709148094346011332196545875060997603714245228606471457877958545938721824693215641699227415586812543069506180463988809021322564192467346927031030981797225970422281085679393394668708969708279144619336174969396476180635582043562051093008401500247742185099025056613222405431584429948925192668005590925905072884887596259568010714820658759138289191345449043549401255842911113671917003022774555947234139995574194752560717800129455696824451460455896374901747191329432058568465191338565233344705142180370361157110886308914446825471807745967170313982948799917021586361155309598429427303379719762812117282214981220901830789541786926534449418494057763922708632777061455893067488514164999251531121675770348471795631114060915552611983145506455385894325099997676407709528388002044815401581472828578311776665880236426694134795113152562163494759003399498680697034821722744587619562985324798211325617520594159567628728784413877564468704262080099542655101184830265382738587097498815358760382958471404234462913617051036528993501013831986200615371334586202869076437494874909722274780246876466641638622794386585649134913488615752290888100808010334120401540287046440355962377721564359351214906592542417856714530670803415337244629982221195963994754528102528110555178597345224627420305165243290420821040095832465260546822308888362662964740421335021107380742514958905390158262411599324981930061732693159128899104556683659721304585298033435044822298384353847792921461689782868019511633005924497106143625036530372912410706891804912876619284364573068328119429794073683313567687528948513455755775973256378222984393168803876518630267967396898333486151052467128519491670754510153417112496966314555248306952713503534693694513511282450169877751537154459818104059216494971911981267295223320152980168465263690342331698828492048279608814603103683892620219942008194087457770301878429050482869571377291492046140326917080294301092297731277623589084237404681253128007956581201004424950012464084069309221336796674464570382772993471544871136839873439058933680593029606481259830061835120941812072165384506799867331427961985357943951736595504534245396301015820093848585210104652792328440712508341397345778585334508962691277424665234229060868251270506587336793970648076755134980768353422053129408273547790854739136058167781520691267457991647630030812664575091675018086438181002401380494643678907479502977921704354692759434355363742311363244273105736601515425668017678214332926201652332959448104093308349077493131841252467942290909633784733103457462392520418826549612278816527043493358090523106799058137297317322898452685816462951838256730175504071204297998655630921752829416726811762948040529291239463276573060708143240947096788254395444595342428498623390958811691760987314042787125519919961894827824846069594177822579186252413569967885463991908065224710181783049729692571158066249515790042969581898266474913974012731337971279386498280433320743669591923371392293681380705120379918913313150020552522215429378277498391190335718187950470692836454088107519249068131477037159484152094559039653760853003162086838989383533092881548680276670483815920688137022852822798480370707691800550549343517167158695672045983960474128210334415422690504052425758974667154270456262210909650373727075808547217878510156509286069574975775841959229533008149239884867099848321394382223555523444268956574725776017047045285791849515085215887870020214646979711552574355213170091906473587240430935591229028729886181573224058474889442911061789123708583166175474939177784911127157884483902847364394804673727947354610310741514624450960142170566079610063485139342722796109780357030109459258452032748506817379084660828212947489752907801082913072906371794527566376468281314535870487784246002529968325430847209188799013655031437073431979307744516885716058087712967078163895240519494726462868391002379273518514064626112662885280352608544888378083728384059086896407097728231594826104454619016861135586667589380489442731751856497678069348430969151009632973498394987889034176034078820030880383380981307880737455082374826891395576885219267727733072498839101893869608183068339661635097978866350640469633979177601704740228306986214886598760152792841161666203565676482109172206635283108265979896059532755631592854839537781046619286037606041803850536485710631643136055455719459898103608150552729048681313226835799207409509252687639117774804577779139645937661763620303927486378478518667737193087377304241106947662578354011480617637014340860383326342920213099862317419694209740260468896899688761593098288200507475713456965611929151685912757098667822218547581727406337810867609293346720542931130248836341752689295097083640371369295356091892204954399511717776741690239167572533302685130960439464138223230996578037528902592256707345291728541727796575441373596896520397014482340501300871872356353440414246630679498801413720080861654943459612366310167992881930414266339221654907993980399336830079233918301250784129359843805683212131898148810230606716502713438342729138477582938690652629962096862936707182655966322925547790387295243997731542883933594966625639721372826795422181823524946696802775299202429075799693222647870834764711435680704919210082468361319019855148846591899315709750402813401924244653476539287242155633618038424702298263062808119854882238753545708059660987160277673452230802665567489956750113410070625319929233978600430718437914377965593606794744958340452376097175490971830749458675252600373018327531002473258577384361332598442695394270121546456574096062990816691645713809232017939609748312025637385419407807795050655895078565649415232356914010537971879114307975539813401281471711291250838417716055323272359330064169424109205795652830191637146886259527890257735663205361459363997615528823392303630387678194692445432254938824918806049448179070064024387062057296130335804026899210521844236628651402755895018584519332110010019902256172872390887559045683068998872504425280762845472747007438976441206107818320906811965906651156346364059544471020286435014372835487986754565513462394100384682380841670833824483496218299321282983352180567989616810662772836454663206566056459377482451662919634214240211316486049122871279246190484057307260523071027936153666649860876838422598778172013746265199598297537671982164384589024706271417957667697391316631978428705564324841723882431887736768913766630216318397363678895469516388087351900340027355029188342118636293135399543786702070444281259301276971141285603637880254807407344886201613385012741127921538256525501741662854460588879177544034641495938287260478568023487944977291286838026445923435014583211075751216432386690703600216083649897005729499222151337824079957745355393178418920469365703715083722931127008011259712816368050983162127182878337250291613075762917594658285067478738255534301202178326269776760303927487914734456710032725290703246064486042305640850203000591875461048234908602597644101074248992911923989826243458511549522411290275855658823246504689183882449541819397516146655258581277214229949524533446502403399513514794557155231105253121760718325803825590512317201231422411337901262799167326945212343942602637201025373381960903282273229512638702697666078138992661173071114311446788311119727561514905707259309380328353964048733165247256719646440274380539967249582621615877782208193908637509756693383841432216764001478479759553225070883341616559960527459973399054165087030896526168689024497981594476214314805452041827149941790925993128382369426969967866019542944680290039608611068762910266998215295754689759803754786337611261598917322821028427318343040690137281802238052350376119492366806982780992046063035949532331649819510257445968297168297065948652421388742956453195980161246218884041209277504142174536819877188877726034888961488503438250499630185140140927813954992110748170342688702780937698031099252178514885091804630336623546149960675279187781759021802951780162287851850076009841266588982039478767996134435954851171456899642030224915934000134781661897877614797653646100718348374856259773801425899658904461271552990176385691384065725913405283822161561701125707398262551238163830126489232669447476448468835416791342990134804485077652594524731760710418142902696526913233687418825561017582375851872037563930198399263286329555925392337862045260825161146244152061399444118835363902920317712980465238477724616260219345468364943882732825615612869391985625676141889222947862881688945575320926354348804821381045396775044979945399794336498343242861567807165612420303680906374704360652774616089058736956103730445697270450876685540776367078569170490947875728244429718971641472497765669169984491918480858537320246435310549947982162553025962175014014822750411645985564711498750880360085048553737189890649273912515382793723754585009857607970666416723595730418687452966183565488287046546188157798080956349873348039425592108015628702111902823322700065285488000294494410483210147020060211678026814502422040999140468877031759858997813508079810351522604042797963794360208347744727317911347140658197356131453993903313043985260949742859371615801926526945177479782792620902440458768808346398567168820122540858807019826376771814260224628839529992919645586138641151851600302144663434687549051226600054293613699252910587811351115360449980553051245021634758656624956242528862819187597819848589491123914093026098868059752866826725656309020839507725901001782697088986549703040307404162093900576813377873116238094841474515272096021947002051706889298763048735590024956503491902223836202141816566597413281879050466785804822755350377053619521104892801201809655106447739965836486770104831884128733186563339117672369474569067840414287837670646845783733106024453004400087173679001234678362065642178815871983857264564152841633406947481786096892951033976816172538445707736706208024629970874348914562728943659352182439522082628095522869565536636347520388773494153947966937347756031650265831147135912801267855298857760546138178072006909466213505902546621539497378396932025962218532932982057664314054357500323676507590972138675061676870090624206318802722282847878570714264709558314521935076690152590157003708259477143195478221159731906953905443682585835488420526661863735175505640059189127225393541555729454054084526167557670902814298383846073225570873147268268645349348077600576360161279690400179865254744436545413030353201489372616006964309128387813114451658511255192332867456744824256599895799460136880923434100528357098458680888981291298177519776773619574554123363901996910577729928487473300279217322521279691302859429512813937235805158782649183178024350308063396596579868312176255701679579797655077403559647106182531913449444528388803816585413509941089975590095496636715100113924582345835129031381949440905662408833209087291977981978836518073314525930491489498958901457942360172699566599663641659368723643680488342159151478099704233782176329719549075634363440788546253979179873941230939087770592858663769657801671800908238163668143007022033141026220401440586257465493424759881062287505547445287493339318994694028889659572013769806071231607494065914155032558510038996017715125895656128619659465174113136450683881534745721131290931632734142956210062354738407698731720990289616158772300596145531412372536611551951212284650373134354390242577847814921545211565639461053803968509240733768475590903904198337990427949377150559838412394305685324358681838811991707910871647013736771222162174777385057634784752819629919137426609903567835192870695040539731515671475755929218810103212004651664286181555048603624131788705821029844254635393776508045700993857942784919948528988305293565500165300878499435703237432355475621153170777893792623748280548843063769676115343431576372240856166466464060882836292097081123252558469896583481742393709680324350826410428805090020930102489812219450257142992586326597392010078942307421007107657463278465052206747303447608736152234890978400167666013241799410208157781704319441298663760514445012617667349089206851618658136096907526808059454945892692622332642018395418228558974589375855478426178468953191803823121628659705656546801634809414929252128136493349264136724768923564169280015280251315440344823498956345126161035318518878705726218506523100047073414156195048625973047476736306751891403075942981748933369641204044361930108054784559817277505027835793590966304097958169510016593311403410637598473816143393251294620945099756272569489506658401759657772838397943473968321431861514773338261031735102226072270748316843660265720590755588223891839191042675836486346424086736353754982886910384149990742633164987686912386207924527394390648277254334191092015480776559791692127962435179476573041036549253952317347914743085444051730609229205631322191499282541910226948944099763764712648639408048692174897372874472216296077868620746461371744154580228437248570379994447938581695996129378582967011706680037443791122780989567034875885038260869614671559762904630894254042546868874497596116269740712342013750676477654976396046456611482824447507327678427696545598865793957686656052249501027128606748431433572862857537282923665584333372168960435464813832946243711083642494845228438855099388637227663763306879726710038759046018649759589834829420147870254691708743518919581306052801138285229935900674810739102673060032468724626804760043305235814748301279873976965844061847196007350856039024642752670056616445868378107216642133280181672783689605278684038879250493657636666646318595986176484995329100850345825807454316031066403167228735430365168698581715948032099821996181381408239474892731526982448523726495241160326220777354351650077080002693879862531269934068450033302581593961305699447298486231448936142970125649802448564317513524166281091575323772181735515048254286316285191491508352395563599754281348385432415872221892452193918247614082714941175276925613831700392525558105968088236335360661918501143577452591012760986378646678082375442087679391986621670690137313944243347409101417122778268171755615605171918780182732297549138131420774315776448736235987707868449005446971545656774955556048419292914616050474535620332118699961129773667247952295428828084845078190526924195124519394976683632974196522221997034146102388502342380308359826368415952345141897093914872786044886448200325848342630325141350910739817287950282032256377037860980315261736081429854218400064959560478383409348247541471230732571461673130622189709177775881448051509321973382924183408080739544643888412713859537663823068802992167063537440310777830137610166716984696393546316219234525690270372521395668845146816276045309684950126616809424209365419394591995478156138999085122966907892768903512001292537282934192364696819165742927732885913743099228164415352193548769538913630799557058219261035200626067634011095623081905215165631223625157422754208100466909429790521952080389805165811760022412727221694524745952136748508949180664826163924660769988275098668947337020932183653887980648280324725773871009292494771823955109673367703641312106939957414826607753789235715961352814316277276866122894348672462138660989509278012861883047032213592563401723454087629736676190806756427067292156640052860682628263917336830095082088626566096819693000374194127097756022093672512729671318837385624271020952858378174063419048494912358491203316352035723565225423978320326285323136593968098556580603245364790665611558619339609409516841327034928163908852285780991676403521506894508635860216937879032604701009928566817835757083557210978310882908607652687608541751733078207573376061224556873322444717028602372213907781503051580325754444413464360956355243156132314084237174158112031353343068454411456059098815714474788215798957688951750194329166885578491963479199889830445259824540372772178214380218829073349325149052286679921592211348652776828822248684501820528666901839679443703641819024438292239692324442210313697940568554647168307509301977946148145798437660130009487720176838235982782034271710840187063634359391596760103973397405456606549948709742524320141980291186594838285944958315787635732946534811259468082171180832991432929755139462241629737296329613772376397153698495894446880984662001284946466030644406499210127825994472153465832161184525847248138269820035615089021681033660240334935126126963041647177936404053138529515263988895469747895897686721228945807904655334862610582507258838659154980605327859263925790289969725107703920120949570390022380088002956023873579811848804591276231831363343411314588777177628097505720427988120438189346930708538400066359723081818156329771217942869244744277127968319794180632480569147052622596869538192597502383211471999595124796967276758356788225891290224885861732841025760267901813134714456289720861778217351157800628430853276173019260139248314971771562673891287125876184296207346212577594074077802466363176856803718478685315808384110373206175646148588994715712165310220130545583117658759751010708115354499029275001685922494860525435469755833292386418233124339774731576447575347673578664753677126322878053528919332489243907576313388095501656265123989964404958117326196639343197827407899353800053524380251990702853566405990060493781204047208375868654632356672683605507681591491269641271306727474522102719793804651355132021389364263416693212647477505211715287059007834862832213429920828163035840171361913293794165509995538804620176321665251917890726197953422536494490476114467914160331664602374549558698995610789774850077206929650113408624641013085553996410565575666359859254747543149971822193474618670134405473540184028326680588568383480681854138982282660926388681054642149257046491497447300959864491335904845547956814417811469052910886365803811036825741645032110351987625789128437387803087593038290599952223865585700229208663137703799579434979840793205868817755406025111544728359675700345827446637748902943708036824568813239113248150286524728038900930670291374020866869180482304895208488395650298814044755251106136626359167533772874542378852083411554889523269156190785245262490176579856760984671134078255785790764834203109325763936676054957250669510911770319611903666972494889706444907756561754631403784867683244941255310040869797072780156968431906362017094014988682400359811146239221540289833945826890942998374568437834134709494945778016845535684909118249814592636453757924783711175255937035198180243344034102680176488946183320115011733299048417055073486842029179735824786267367677387875738384777221089307568215889495108844121465500687965683160984403002099353947508445637033249691110786127948988088375535794532353399007921648958723485559082322856132118639343014756967242979911791480308750192548156579182628185461505006049558588995793289285659108600466934812963357117022403446968387291932474017950293661256278695956378551733940714122995315953267341409120348162662994368255541470092798291919168652643392307312907853417725781762558315731680604298933188592614331492927885586387659291829655806910998444993020085716596365263799837575843884923003806922164928573551741180685049948199868717276000842108330488189500618619833615635238417753767235570745109952803920873663738752398963919085145290671309360051292286338189295989667475927387587970115697652604038774726343843942151792256083645822655716934388744847964352710348487002425955322725183168300428917710836893982258183590604440865479825279983746507258455479423188418519747509900866991269689375129643074358130575080776361300699532180225662666330913342417649607441200165571866898081136661536777328868846109275019161926174768911616167141074390005027012822321630477806799021280794293675364751046038497482829606000830369632466000573602491808167504541877629904993806819567027761514728802477038009308520713042386483513698102914658080605342874674100942763919064797179858869599104660077111622790639788031627319302482398193765968376384189415268550877528005469071855514402938519082650867963834390288918010910679454505525942552287205468952123915745248353137717374413905436120462795874569036468429759164502643314087280027298809865723338345735060694313698387061535878157645237186473093021896002169539478235622474057819179099804358171239478883325965754413766560751140884536767726178180008358327749437531377422926576762735993250926723998215714337951341332569283374029530923461873123080102690909914161500335260157168388854283546813298350649954508545170059289351111549976991158151228199214282254172282412941885777385997465349081441172667381485333622442041900647894999201008373836617842900906314856795034054271217820525463915078631494428968108574022095983972584436912602940073409683775253612774123507463509897509519744934494253576095816470112121525274494675983812670851361428310907933023278401698737965407475400573756014278677609673715623041602977435323703963224010903191233931349561096432346512876491395795165599196408296635699187201282061465135052360857031487468566545205072937405497820059815467919663951200022317654346339184767795497480965803288559020827466637387916808150308679410152896303488148953314624523891187637813514178359288435691754230642492325199422004609373593268324765892133682081569802030473271722383500379099896551951662390944244782596816627971614868979734512575925806660755047719302143684089441721116306157036024927600603568583529159828999430622691494108395446248256621869619822637551903374988895989608210928633393708066696530366597701503815770873411301874189015317774529429316198406297267082057097583946350519817709364722688038272825767235825868710274996897046729159653324416253151083175733131443657594151679411714553837204391467622122091340170478466856425875226780858193157392005491083046510027234254615126558017381500636415352608686648540196599978428619375900650835857873494791463708392768638184072087878529975094837284701034928402723657970887806942670112256552810628557157560279065361599181573630240702935474790047441639686298055702602440918335026480176620135980771159019138618122481442982764411429565959646921902296354563917066815932493657309572917754542013653249366394040063428832525710885144943426221671276465262604093604704527871067159450776982026666105134266300489305372222709807536606584651482968465097361807366356833877706395064521534524515906796221166222842682752240355031908976356839597137526959236669738207882799587066882919510513853581012443368624408952650222912108321593007797077015030558552421951625338864804034629097779375362228395291811302987949401798377479283497905877321986014714671598963632960251512552343293482123251553894775098929077997119423292041307261284489063126348738582765526051203421874262116911476133441775662064705228494384338818612898207142670736357119799994888302209718423308941387304578760231961685832328461386997520966933349326466365601555722737264134326794980224086081386512974030366797508984824662192673886534689372433307541560750157616941578458017295943446896223567213276365570178816215140751278854566478480766987249590649494495538922034925943702649052927506595113676007303091742007211109015950819521611061543692254142171161345769252549976950030521055512081638809185067093637057591895062737297368111127327446359568022979901429021767503407124516368827345369861450097417072502684433037120361480737137969559003801942181889960454383515905853831212237686098583967890156784460799991118222032283445794350042228642050614804830139326541892155716144790901348622279324091687127084209912562653618217983176369338189768910488125890942266350264210126865852095386840388281681471095510522494063967718634903541118900645142705733993120470797698806278437727349491269964568162965209696100294973916242234800860234449057160194370123843299315741752059092201897113806569242688930004737705814208484957384219266767355606710306973071664296555044228874565869096393159505026797817770732815895719247538416179141820686921125022629175538866395416399671989707761273742342924873265289411112730149135181671572011333084506435676505349141044062915789360069436989017620256451080767040236686246343613978419877523960760419813744085058369625257709667418044613943705027383999042991940869433307761115968837854791561116610259717430684422134154554443303844354449353511930645179313267566209045258433811927062366144810421992771342920547672942992059786443721845627111531253141159244650764426711313295158787737519483222500287100062798014437682205876340634144114023553235805786460274165582648732950171117527366171364782086886603799994989313849434998469501280199074103306348254701555951613504708828560350074209714860472096494898942051925729734589168204967549395054053594072650900798810791628470574095560397928293812758224251992483198105350340653725804138480214225232562035945999131451062559021416682404782160655520980671310645907629935978197702534645169433953485517644054530797308983073757486407603950371235490525531121312215595382172157949751525952593885851646317776868731053397815575676247772611005745610454306338284217233485732503824344419442458080515200532145431908225238763997406677200083585047961697586605389647274111782687092880520886109312531768230929611742324748721350058133828572444052059020146312397093789423784563181392181934093476514201531868259151163273178362296689599600005629038074225962814329560740309863080075752945288832413714510669502905377291017839573324548770654306309386878037752710175650566560217712155873547696653421529382956425699387194594203673609814082634703748708258137314829234472012829276175432719023206425735151771404322917095511122592718002953917693385939891343145459558632462204869136649677039717736419012444759684531949491286703954675557895153197666013297298975961212774220225698846993679380254733828015508351766716916577013924996707075929257556346682564794234567693980962542152145176331126299320129961323949953720448165934687757762071637036078583541480930348537955567779162458774600632842114090758021692264677770477329501827738534236382303701676638609852544470449439074754421097992183910675443298230325763985246261986534375372784579275546763700364331254405810769425386936258986543168078803386723048298962927881563066800116537337167749536954248991893289456977514791062037985091250887018954532478727894023932430354146127089271777322563663802673414550849000038924738102316829621714812948453726399050856107463213362169888321876476521372159344167252030125277863125452061720474551123058929977136844694777226144372004639491207295941002504641422780076292307974482420964634171957778729645273021998853475336068156826807196261153072251923669340057848599673582342371368175862270483735063571270895998770020873198558827481709618600216657535793202388842554150027553866273752646665122483414058853363063770166059911707711719761672852970536118370871826733145825721694204436224921994783404776717160378367300972314922519173177010143523859954526434542741301482945220551963679067192695869945270098975524274751499199697166635945357527663167489416982450661469391320545818652637414074326170639699299773574735401504563549794812985598556813409096499215930380908008979638357859514740670445420352026002655687930745169002866486053923151062607959698548399466190153794317105940549110068387499410462874192411611663820053578136787345237696861131499012892189861270978712084469682253175877673774172006155970101084117397205372325983281523293351343696567935312094035268607974976912416466043594796329389707014360416669271343309661527654575908130377741542657804177678645807371512522265198870074944008286706905528621809465692713978484520931118607698137809269399668569295572930887559783190627062676210999605594176713927566968437765258853298794300429175372534267712222757662714674787541911447986085832698827114686018810353971198445915440735053161250474964695886930513071508772585567769845761498860135099490969874869671098005657682929545983129720822965935028893991467292095109558548249762166246643364914400484954721353825092481116604973018002169873520823652243679886679139526074152099394341274452653362873370349752864698094278649163324707811534567281310937111096773075114836740487823022178870422011648829636601896740323024633501819073029385666435740321878431505496014694808511845962208711556306585535402163643149381411994250914344047707395031174686012862445669189167071208328511894797319886551316444657291923314792561254503142136602012229676007916145285355650783862794834244120111838172537090100418577136278309325185072143112534365928986566796825781811399775299023926812871262142854885670163195672874506153825401558561956699780130131096898811457798965852229722762809167943908660935367539373113545473040973435351187265672936007071736879499200135263560296157668345982980850281384466287116164596646755421208294094201441950529045260512066563238725256641909454931484543646925418371366519391005703968282869402131337499906933430336498923107971374480638370299120601853208327913182728835576937982273945757922052473857572676332393114815214442336448226203804568096896372637278777564811841177851819174371783236110406505399411027602113504809553270713223134206065345853435328708560155093152051885986599251043191219514339659496017903374879419856749327115746106453635653514476649508822142812791210142803017245919590398434958225813575639173541421825624376084224023107466561417191255662190390201429828473418373604297331413321107488403945816154329936811594568263705938952059465352915806514083277840987349647131027539930898044498319304623845911286098334262264687842429396907048968208752663383179594928395696392459122273028962559512042424544878783880286417778110494800806231596041169597589897826310519513527725010141209239453825042620512226934117490085805154159078333387065827312334347271458365854066021835080588157029814875213935568428661173111063625249695535518236075934721360883514436793274007921967804212363498942139577461895193947042569040047473378930025826723935622956695621540330608094931538062356152382503343241621591040693718346612083623077627439467700055199225658274080097469222947493122438725565781359861207255546451530333734805023158511986555083097594625499757006390813606015139788853825163792856928997393247368125974553286256613377733355700030581973568092174196830252993151175753710100802816328088361711659653339911038347504534265003681867466094249443163351281839538839704406961912982937588079819438621936289820954019483125203542077341643557515985858013652578130018393567194102364755769600846137270272700942854846498508524938746422396786320462764654949450599028465441660879085999634318001241037085020429257191818753170374559572969034907085939064489871645763606850788341773975781602978552630422688297016469504932802416412672088593785030000765723754876167175465771600024309398228585186952831045945019040905424579645073818198051839430595421462808718684938515826147934675446539910708792333970784190485097803893883754568504915801098919337481409949466772752476333791314740591597776041151515895754926187563555956455916719769727479842114544470139277650063569391112936432381890316071723508715095524488143882263545917055700098152079533532890387733323105598626471185194877859565296528683323716927917876861574138230360698946551519449860373851819167291633448321468652074565843775677156210114016656991755829816954919556094489101131676577852742034292979518013182947823350474898347679209704093532008351399259805680770887630934652754571663751960817873792261334947988644982798390485518901437363454936603180524844679097345807360300941566125056825455723402536492113835941704979426829907586248033421771603578663330833068872018357107053128701665154369660451186125211970755263755615258678812574252275169228886031347692334471986142628360487230655301029044088599505878685167128428682903920689040041661195292187481596583531272980096022652172575338789708412587727639049815778231492261975395446684933807454484289074079279594431881792384730261663777427533252203404764930951942104747796316699591888452342582389574819082723147976228718743144046695148199834022702269014850307780784036129151755669600778844456712602119824254950346320990426814270358410270530525245029602373470228609616390032478621340938776149523357595396806481866754931858469073690531159441887759124941460679453588646242512846915349370312972740610837364791644399072767666054427746826777717013680087281148929146408697986434242122103342967461997705240437802555143668233638298235750960514728915578247400286130069291456907303892157884931545685833032401468016387603785472325881771534253953105462424513696848075074707421497339850571278754331344002776915439396097107196688106708383057993534525411373180074827153985076474893926103217628930478495058464860520292191663223321599486601404955158974678283067361079148795357494172666139008071151983783730192445504458261938195896646789387325063630999873076144058947175466194642746382435343444412557263862410799366946647625099621020456614966178745217942588860672674288343094100799402683466363386489164283088138392164657641322509074629947380263527331154549791832065213371590782132200270746534405350656886085266675287292014774603554461165717870046168745153619390869321548153882734386014593047057550647622717867189479172872852539485599819365597410990567730048545654942982404821435456959471460658077851030049306546393050819560298670005656131783640489486362800092166920268870768172670441335373655643017468381015586528908980497350578255705757569115658754242769070795979053875154823506162653168284510036264324289502129255953094160736597123240741771833516560919524462791953837408367741132003213828287432215672936132475949120435195062353460752477843759170620349191603778524549144978449980383554756098092071860604722434239479645300615846446782447936277231893819691566843319395514920350396444210609097732567315241842269717466945807312189862204523971202264450805003567758573926945594857866499044993609555217607088069245994168311931085224274354719876063812771961417799513582262767702962362816416129248656610758639834548783550006273170201642340768416917588567843399459725213028578790463315000870281866993993764169748509679254387518515997346861957738074857513464322155844867043103600177893657045525945387854531827802950584956342721225834662302797253084619745040712562154925845885325286538262555363837897160465417628127636034362896132482989810821856493482480342987351037134369325894914391146497580916120989498761151765116970849077916894709972833926780227875503299068121440575731676435891833666434853386560866819115213002990149150596256682228496056515737239392923623735649204403535614752023389680984458122510158244671681308305481974766048254110103922019388648052311771904942481117015386596131175962458784433783303522649131106520235616883028648095226641465631369956933149197227326781164132912168282083561371872476763441587986032796386604723324976215577417131667606903933549636860558768182487881881242745319035232366618060443201539508391727098941090355803400506865961507334982625389228440929819392621690134569318680814583396092039473909685215607409967603845465925259997622143684105842148838811817587690860022633343916430638273702571562058339642154961302389999041537592729335403187476756279599286619600794265700482677955896601170508681539271747454668752095966680692252697774132017871596328267956749928815711546937732368710338168586812058949091876688630336169606426953933371875301733612132587987256171662657791547069748255767920116763040161980591525822017000236503409063828858539021892320557170734527262548789156536338736091160938264302578098680069098728360536060725502561267278589518101943190315861856587857244461232198064429973362670460543929133651292215405568218790475945759464660875819406911934394839151877346426153135135681121794072313332895915470527865632113977674968077229086770283616944781305677387214595761003283898228742313770356666354108371175630398353576651428221751980815065459412074955021467637180687817511573312359980073278418643644548375998709637961498716961379908180080059278875560642212787982980669558876129400206968487965278206569726570512479729369572702765491594285310196671351664511729681225877423181616560501703763795266397046070071224786743347185799757890241550710138286583473801129462677908888932984835786423130519248716550132006106550345269820028585465135149916814359926656862016995132222449120527983985426041726028505190758796046798587832661133712510423178389813277739630003758377547082854159891012506611517270771326288857517671480034821660323032080552789491354354784633857671160796196606660174764517284131924973485865119084730724974425155763222620485654477855473826251400637548917327333090509210417014713802839154020877036125805481692919706795003505512404172614307579362843752605552883689258922502227328553473797986664372463473632128815416132342781717583902672706581184565065718038504000073187296182097949612403218880278550318010908900650710357608488248202342619093355671861110134566512201966025666320074124127333210536313898613528718065928399412972434005590971420442940794933650490678426231109930700738976438591769283386147589239417499928451452762355753957433811483189931851770161026679116576037159666595632639316640559459180176973474921399712400502013922221405717587721442475973278732912018561831551853159922455236416224947422748446699746897313070015421351011131771761115045192618088613691901386523418361687547492653050902112432663907756827215140540493322708583698115841303368103774328159009411761845992188397680886318509731426494974462680595595363201973549325178527522843167679925731997055076873521254602422826134477011544910129623527478565231459980614048744634665150180263781363814912397231041812760492237183115640533088992451599762122301245956588992476547500180916483389292990827818397519953075244628554498169868675203355536782326032584432898814923576276672674713695088112356987372228302758468044866406634226576862288763976091714828533485566464877850281666603620439403870242891968357198476987552369240233888223842859429702177054786322005562007282646875788237434318797081956213643307899051067777904241119732431978107223066088185555395563206976869458272999714734423301986921253878913295341976297553358325174692079292327330500412642830670671502838331404459211422313083955177519678832252356119520940826566093256357097104756596235116348794268347558753724686583912185637063117531662293194276426394765671329288876496921195953170528201890304110323573673491981970935899483381446156731359178831299848550728161568018044798820488274769767769910619299165495615382767420109743286997602521094361381861198585366296378575576997999981466815445497455717989437067095428119845624400219452736435652033886208865387877114649943943137926714686565254635810019779482802249918270702040917192405135822744777140264390142522754204106770322952609154726323680790663320307886046406425435483750522697382806715190996853368762404828783102449791125511588174864915988230226523283339236575810647288321684654352752908070242419445452333724771368358836056450028972292294765223549812948733786311839651843223317487450506629623557124659358889556417118050965591388375236222938347138737039212347827470088220657748441587907893933020548737307146321613289644820645249293368239573851638252311171353193739858995906176798318971305491457563908443007566403418444180952611178361711809715973480913604220385001789109710265253723022893640239128972385291852566472923605081490349051909201253133307449699674817512382692953071361141265723668396193116366945827709677475572219683214931265229439998179917957826795216815607887569478463450418657172838646349129364473805227317405267764427281728414450480237437145977031868769656704714587369525282760508190799886388059115674270611882950565709785331507676676091190579344449771544631177468489528593056769648872732320136839014017842751919426170447682211998906050709700752647035294386897871712338104423164032264114422825957828527440821615431575470166886626823643672249800095366733411880863082002069316388299793801983682217109270378388117230420728495317565432585952019216849618344587273676712117674569791868328372904346064038486160993496638065749214914419276127363358966532984224799029583545879353246931953878611283013367577870771856915466801332328500298912952810795780959442570046933158600144422661194323136643007026629306917096706663604583861585867394850812345155043836531537018617420749769098064846791846924525526008380355353440448269199603393954969276256159130142580235871362557908777253069645588995043162544941041975010779855451961677358072544910477007715607620539615101516672861937936440890041759109416488222772835733994179621473906717043267654909677398497806241304883849404213878258356093241565565424550744451724881729528859453509138738800914077045985996884689632067475618883312622252115918840749367807158609124733566609758322989647204261905322229474073152570744664843413135066139607623903696828947075833811765313687822787210463651501223166652212392959910359442407987186656458019409029072726098829532389103401781180919166826575454509955570130440953125844278732488806052483615248705671547126582709419115419048466507725926082503498229412913118341246066404005496295057427082022188852140156752108900592476004129022316230367745559871038644013832915823967106685783047091603481059268971119296132064281084191003191603583729384321172257704307787091628431299787620266654180188285043263730375764924632810558728731261797559972671502997764156280777086808372276785393069021580378402332649624128628952327906688946289634521610804889005476615158929996203583572236489443035578600376497930980919233530639976582594340000611197185673346199100097940712571533787922306591208533050289437850939447510385999725205628511363031627405721242214747156909547154231941215394901416784168622907435678003536525656996300951966485195688941567035352666711619533991550477586236396765438199221780692468606624466635416154478966652938034491404566326759959963544963999212779905779711313025016169774602643535240652079874452056612802849901686679371746800129147208389162298684940270410703797246784447022907425490724339358143384575416769208356055152390919990742169060759299164796799131447279996556603601140000506826726386976051615151573737213086950641994952245592819665711862609997629760867590522232654831262913028177694576737481952172576932700777410819202532741907162838640389842586758095165847861589516763489527054653244507035539868315955143990105704528790618266765652740610064031095175006650365664170987136036049948481605587027027831490256815677832203281556097651824686107187424226039911064234996582613654738246204557515131784698666818657556876462634145997942152126423693949996752448753561333749944365428256386746691722679563872092543609162592785118806139021741143252654226840221509831068878592768901000079818176497955965259120035229403047262516887215918422770689213424791066829046994277476165611903884803777825042179643147599694788053472586413105105046992410907237087531391923010993551554364712804540571517628108291794679411306348043473027657356553916486562215462467633492021448801231687550541364913472317408141104473540457918879768827747890517017433819924023642553026530150726738732141837089132126328458351128137971660841585220408894073333513101920424347787861115252611552558017460074348895760075029422355866457854857867372191925791031517052110116384333269755346072255558119423256800502043008302501989718206851195490957856748314883915237639957127840901837748202638269231113354446080305160179646193746963847499548747974657529953029150014573688257159590746841435439826474897495293724941572209375944530100929417322630635935757740169378083534369156781555305325364538683006635768844635193153777264835161770994636025206734237933306543974460110907581940601615999736748096609647449916217974548003036400411105774404151630838342805777714068339015863271319925740851723860277380185820123946602290546441501022522737948667091956498270692534349894827606835769697249158443653968514166827433220731983183790811248977061310122925216704528491183638840609618961511931157766108937308639957826345143032869914013902249869297567799273189416595851100389707478957015171337127244666038698674185490782075079021502417269835273896283241949125304365578663013171669948999362306980904584637441523702472678253334783238299002622546724819788871668776866577674331323393064363061907538831076567451892118413601817634501006372161527846063149905400126722166670493600698037000739693264087693599822262955266370605885568330997571145988400079037150207562986968222924686978278878099315735795651001832037602180602100827588766455934216963641378108516992190417283954170535663226108815181085254482794542588504349415235937767981555634849481874912671026933158055366988471109479331573752119731719554658175340779942342066563484127860371333755387876411827901824624765158512240807467852140651089261344010345054558808213493235069447932306599310237196596804662060563888450410628710453894698113810611758357583009079913996421937070205023045489814161386837015745893528065353925769328605325475100453279458409486262298659077374035696664929016049848494477412956679955832037004180659883175218358619249893356176405584196880681502948739472245557459852063392757283127682898804097469425900493279045364345205547353717968525098838817367988725848434578612938047696612670093145057913549960149221328242768583076832556425957802700794234962256281908043633330652286339894529459602358373101101656353710848837797800097406432708550871457475070001215823424219061423050607355733203051094070072616130886652261533354630809393074856528599646966814173872766211681732755565288603315660530936147590769107956229587092384091482118183028008590834511172864232744313123477473060589810520465965012182245155337142604965455411425490299524243220229107473497879363716412752010447391612313057208498041350914914590670650003833032565524933782833792712321470346328997001739483291883017394162208946259627124090124531431850616332470997686942269766358449640927301359842179800238844983577104016049963982729977318315283949367296990657809517459985450346941991475177079355048583387485652184067427685679213384836072529230700306320809208698210673591909299106579056398439015658263520273809769592862711792078033576981049959034032230146523701486319811646905034630889118427425518377737689770335190919762079154106074559078998488624455708835527387821243468027009609129819121804572934436538149756203931113283341198046125610595400026236652645032006411119426806396104795131301019228241427588567966889513969842569349320041281246728232975632781934769571958474005930263605609525241162128189841129368762837293258730578832203947535150067763966966522572136373236129801733511457535410356210482764148280566834494391397847301116432904862019181175462577104192021190712922440152586061504311587566594261892861365072393302830426338214254208432522866547064413557874567237493530498243362750888198410659366636281079596429413644289414018822282379782821712263580729979622326590856608368384947727013991422721867578457554664362782240248593829653542761729205591266902651227925495710899087654195639286711674227451507481841052162994757085518469279195871775860789897680585226175563234351888387499851771712944909980975213889891011161078066260310671304735753508373532782745402439872813373296576691307274142646294885169681457548590320759272168332964822831365975850932728691297534162763790449830988542996295568998934461193962078684670003875571850282107796225158287442702978223273344742837882531320070312867429683476604289933012500012092761936446973759497542191982567640449615709135505050968170937893717450314719733606363069937535589990403179968761468784141123219664177184467393962891101770268381606980443296559131853308567698435014603786260187062117939641928647092556671842927402519006894609898277799709243784253875846913849191052063611020545409118215794008034230789864331142624915274691866665489087409644772082445290537457994698072580169629425675543692714431567969989777424058667619211792962929167227854473260579725738021598625635047626780041098183999566043427511168468096713941396272880047025216927343721974921102654277683826591892627950781803082071598657297023948059261332375771349465656520371338948157445353535348786698774348744999133128407522347652754386610184927968882026732435258625650099226404087834912199261030323330309838991900315120555402964375874252217462510680009987325248550693484019548681770926867295468650893596984397306997130961291988877911242073346667757387549792306540094584019091084764019043436563998030480908028343346362102931881958141175975885310206900333213810714510919253461721119333667136333389743943238391963984938143570816307864097110432200045008302020588492485312255843331252940193672002129923800324796598742033999678789077849898281040854539363945456871899684772224404434604112388406394293992726865480795963581798676956181707709196894242726352548617093795360706047190255463444607844422810832722895977121556081109123939310368417676082478319499669828307568810842377702732690927980861268453358916190251992395036131343097578642434836483141964702572589451994679606337134612148329411330225797554387887074034058734941167878108663676001411114817181368174320323592341176648118511206755586456049234554579665610099872338709036310966989880960496917839872020809157964746862649207527522645488372051128468090113047240233779336045415437903891121866442328834389075549848224191473367528116448838046213954955473669484787819428642081849531824609966225604429318554345624988728785836899080736702737938281958746617421058169428771473808354732731565236371365372232553651728999765282355072835533620575079500433920945913515570716332906134690965353896978294308245370823196380471870666101627483766390445202885242343422740923172053254644499977799948304168972038924435120387161462895436640178280358677097294141176497287040399921878483143848591961869165952615069395195417933247951904110933872059294898283812152053009611671455407735632323937664111778202396793214852356007497589123551177912385065274272662566050212872593324296894613475512084528346937389729646672044311400801133576404892911393974125420316563429538272286101926334765168774336488078499974670578007792545895891420519676361234517612189281751008229719696656974522420336200571511127543090320142937451101789895453639509941929206232016890783295687611603217311241538475585414494251368517883318425973523125789572469651709299273432124075596636775642520068863719705747960386859117097403195644892655489669834268279237289559825863136319609300691771125998351269743385259504092183592968369481742877025693724626861359037394100015025317705742172251448539355168415763500539001964689678343889789362291890873684427109836514641194680848025927557318925654848821778058587515630111604047630448368461955009916710165136574156809951051817306662253983766608306863052235896083339526072470563088498213349405892686909701012241915032207783557227737359813802499225631587622360346221508381137896505071867124211420469843111031173486949791567744690322126421202204877562105757675370514792977682333047236244151675327855209288090250338445145839704199240720669602820117412694666144116571396379293116595840876381052539399978853732981131657118840675288732628643711812482569476196874012479750678731344922863811475781484647466253694026315229859068816134128154856205248243727527839255361649768104164670524509094265044337040427752586137901405056419889949148069963707590222902024541402234978480379550167077070781547052089176391474431435479811036320331135729117942892276238132916963291683961620278130094464026209598171876958980044339681995550255517724002879820134917616932170143472809244975786786940680278924851380552205313940119572665182020512171520226655040589573364656463078015987784755429210057751830767662281799918863837409657881583940031709870254217334996869238223232058352857973049589210268100459174993344334253511691444292312034068588369617947262826843625442110572576848148001284327095426498371110183115426041989100930806263543050492812353772015747856992383025686418133713472092482669794753386258171461528204749765555962198815973832777427635076830212725163699345645526949203676726014296684178047938009733517134223185744909637842140757297359681226548124794325190175345815964833911108503935628070368108369834138265680531371945816030585207983904516079133857365338327860810798863446953031922640987143014381028901029048364859412703412348857796683659293673334978924737298788685210960970900211104517302385592126522855549000392776642891468110927966010926724777409916971751494149017973867005891305606710826151528614593442751091713913061500426141333383993778058795018397828391390074648642475806960532788585397328999930629703076342913222037425529756318240425552488407199866115286878674359983311588784493607588196026310680654072504762775987998772694308457076417575793966610650858378964753253028853105424101757074447860239166751155441528088454516629401980818801967027125354741016992238821935730714802024756302721371633010091043051334211060132926625724000703009573048217531773578186233735304766618685748599212394811729608202372290238038204901471615466954659286486161215985156600043553581052367570397779210597845468972606749394707047120932577044376909386438992858217350332788111164297729536004941334037647682902471092052561593193354552473607311507703527567311926244818843058877223697353583616513752938466473894422909603181605247255463937434596617216806927733272738745931663016256737605046806045636840903592127347077727247792856268117377615190925172623900790378824863788031210196062123000165166652090075644383116304906180880912773329686246934803280713175996873298308737612293670673913586890762322164758307044515127013052798913369035523922090074249372135412331727554409211739376593239165042349332759100865585748763792990714247193673325635242968761895102696306211010589676687225391299025317080240409898055701893668884092904234700422729787052643751892869983734174544448563264943844751486835174788124665213693554898601460748775678410696833017579332698827129623647393242641314433439264584336964569253494942800762258685015097192602151566604394917009851298895566740317565572733444139451034434987028996614692761638507995673153317882194183812364458922184703581716696435237244525488683601266357713362533793816006823093179052144820503657425979536067800271571214225332571235951796442088782808185733846477786104348013660417332586213663634193084217914882422151678462343356065154818245107185133745095771382535246097689300446235437403826167335795319488157848164829768009591187938551159956151708655988089589431226607729481202435638683070464050844725354158327557740505179873003880101235335677365844361423723376577286563453718843352443095089475572043999579377285867112772605946689396058006576504098734449851144489214068019052883340580038286427836678623072056587053162363764475369984579306569186115853601833591985723694374300831499882199177153960934749645606523241629126181954453438605967893002021626561802949451795979167787354392319006040303165875456906628342562143801554633556459706651142811174758723815275851332827839221309421516575101029179810955645094748881351891343504517730438615644276852191048556120876458073850739204979683312701705699218965386292972005451402008661608781645546691510097732132336122866732149723496981966067660873672691341544479261214704914127408463738538904019522773232901240707865986529837560125349914834520111503473687656172911214435763476946535249774334140686829787019580242076587851335090133649688061779144497784407295999043524315537740766319003811310638680433256595894147298777549999801603469353254816319223979140261941707343849926645006666811994306395570596753348026024433588255165846009853512009782463322200018695685381231930166549186700758418474187247088316456126637482918076161154516205797164179321765875866978491475838482560118365258390854511768083455099307300605141971860415394431200645668406633727130447654374949215027910080383473150320975103258120074771823971481710938384155135846715581366983994906635285353764370565396648685759580887665848856355236125044450989334195800041389308546259732038514420479987205643657763913814901897552001834990831521071496041744887325462940148401566184785768282871783542255776329686101638675202581860924962233591682889748699297210009812031912325562742914081909514373848684412685122630634080835427506304458762750079722267277330197096454408687520571835357705886297993058890315925159470059325732213177418743817813210985402615013110663057578882586527476675945505789340859852956860977803199893357815420739868765089701888083388685489411218425383921008799199154745088330927348980650855482346342767575700126882107360851460008521816446557780895045102781254267537417485126718332479822748081825246258337212819582470519783705295891860640127700305101871209804166711280363890054790979426238579543231393007509039232661565722711497392962507486112892194352105685944047203073547492952871527725343679444421507486921803652076731690829839438231185611231887813466981376087471148602773925171204708460432823517659064302771831211115618600658385181664416318217195177457059938002050066712244954282079477500244067364942009970752453524459910731679901662528166610413211549747583371723334587518767293667667334694079264378960181251978737361094564385200144049099693624097796950459979356534020637255848435039650946239212363999706504258043267092538101891642189886439042706650827153455846283139333624621834006940502360825149420339607686625439126667132495397818297151707200781554131170697729919942822139906499457874871781777358625954451860528586978244102066748207274931181331464437570345005608856502530821888910057636567316989698692250398764824893273897017777799755695954499623967958329553638816057036021426709077139361640090258785278262143147135111885346869893427299348266824004399684856865052028878803877032534620227893052572483284503022527149997636172217646736288244894813180017194465957383400774620814096068932310554815372758976199770806601074325941854665055810126610497817025748264654604382903600137532443827214566468731490570800428439555143616655853969637014603464318263582881841263865132142100680156965723507850904465359920541792395098513309978051129699341577009571110905035915126155914525618382505933498840968972439076669487885632466539260600134097736938650407641313493123110366690886973640722878035194840255171242595633589768692987868072816312246681534342763003540734707247712335315013061269499695626275180106084580782369898537015191716509507583360034646981578909074100754289525205157041750155255719586225806875404517177703519495556979402652011352045657288741135228522239245626739164022642913351381019778364481015615256875648313715959756508018366621262670049960703634227125501062433336115184690781378182383608127993482985466165011485474882035440077296244091805062805699091822864912496529129038452130605410273210292640142892783744841446907626754682561916166424391490739030352640286720483898737448842247367447331031385995257328843475081569880331227420609792985401731722740423935622843265186586577923230328278549565550629128299344367420339452917152902261899725349100239506716710916155789041759139553917316852148234695325405295084343578094851110888994994729306526546279487117548307432113849066845221090689367629331372079267680226810623460965991902822932236925140851127403399353549940309740983292358174808513935262334001946880033737526769612975017866516057652107248437479797253548677199424801853249197627422538729076151647381135586470517972223914658401459570593176284401386359443739602059652992992636899362793199553197294962155744745075859020429225611281898275734590318352393525037395607437590622897013131682238123868491815606372556058056623295209353450893739821463930093622518185539173525103669596440205044862662807157458697915288188446390022438739029092768212823116396521717507738079104434004776916242226077864588344304316149165040347323289825085785629348338040573000152895735387181563209707168565665574318224102550072824375611775360532447125505637228755993828760506494174944063954909278854745903635836263533032795879398057243995510931067534419935204551087811109978645545941914968111917705172310802932337417813066131831010853878271469693022182643540606766025217010703620842853033361293959814959115056732739487779382420136921507834305854583479588901292771292181283317892531991198248757836442317031591354528271204840308440464725418347786889739100703453345154229137237231981949278964132372251191310138906837698625620313185222242726659581382581124159918985687245009874820914755658154551625805407910165885788195855492462612236702543349602835416762049187522169062191780282155215280695284473782644164594927612441786203070787743760977872751484056746810784530118576173264263604219305431049012479381006782296688652782729188780526318087364319562741068041207193953012195135456213973479701768816372396859564765304864669242003370333132150907331020804404657861318115905417411876214978919779480691138411698270934788855333011162862700546152738540120938794908111401204460377263033296348015807147999971860457939439144318328505333226438710251356684609901258484605485413964429035357150092683460055091844645546615469470038885813304075216937734813930762898035645587684977048160599059571997735308761158004700094293844711045217402571253768958456884441716852304755397438544357780191117473731519780592300905295815047841130611474232355199267300063304417458071050038678257834176457835950005661795737510364604157194484465766181753665487106147213014322827372155740761299981965850034328548171441088798503623091870380370095062499791288446596758627218323843833357951898977229985704886394956245272888226758488724898141807268679066668450352804286045293311238902582129013436938374636699597124849698681910974258945094206667335197350128846639123097446611330045644950275122823372924527050188742442668977542059534573921325534631467728206272025806225814140831740161566379330770651556655413880496482430863747129017802012344811653413921380701871240242792037849506344322453938491584645956081673021470386551763585392371882656520992375277363050405390228931462177844406120523887991347187691721877266160051612023076272902858882760879585845902234234415149069657890888293720697328059754956921707514854126729500101465000190650829646947249906235787696265802869655920596253559015075601782512794727469417349084753368313047366123283901458205943900479746004173140652157030158394050780865239659348649444744393787014835330245809184786544733328226048894734280442873141557900874425585238725786815992006791254397088887806510670623566826163903255651423344629385401652239115478463525823849328296056724126804474215491783872801342272747760176998556403346681085405772199702910072773901933520972003131823434114690652032765544370205984415439676115731507053242607705623841775974852603635870487499606171963495868045621976900778928361713438712992080022515873391363533829970189019265110041799771025294065928320064538349286959093128136412671030575209066597173293592387939275994395088545690274554814185377695929065718645159761270462574523247815677726559836884368646079857991131780987139391741116582715481148871658859517970453862236708691854944584107065715661128811102471467358952484108611966939952446592449274547378658685686599809303783584719751374039107909949459277839395551273201956444794660752137121979083800012157947559391442567029158356791039798799904330587140039585176693335268392566733280498775477643758800853113931963388923339944233844891239541277913648687832671948113709874175821527905165790187409879053627546142834731168979788701508631069893085062680839018004536959745451370031082374459674641732957010396774245180152016787336968486667221515893493145276364549724236270190616474466328725309083677897478011287991676314812645761545909124202528771237283450694945489279560299228064379499175554987132486133444040972801505456137095675580404791897118939625818345462718652051137965747939012414866142828454296224479690638482193852299469845152652827860812688321574293555779170066460367361528565345433508582167746578346329196499339954252867991053980004348777956981792502605170053473978196135262201540521489556431829051280519843430300575291097516484097189694407984624554623229883666303537566690400144216222782587646688016945489656766491697760430079089943856983505485174416643225186993471539437714696426784836856874274507929039239400641981780962793942726213544450730405050380340617210129326828671296541054573597281515595351263130181061358407933261964718353364772633546068223005975968691822937126607122901385773783420522735538228446085687891504265473593578939703252508656899536304393143311402209139074195450486377708158494933207128028363106750807468292118081414133262281747718156114148912789194033524293817262798155981807875801794008776605787375712524430713533996746944336868148441452267842721188541242113446047065961145053537097212674296911617154352976981763492762297687015065920878505115961461507659756706618195121582763078774576899512858603571109900455126587756021254925937780531843148487714609357342141993058362588571312579351578439033877111889458288008899575575589962809265680856962066234618341133507438934605010306204872314308069896594543920248198228455438743404044183243095759667021029853835595571737832638527089493148766951775247948785212576158160962866724872507073360275095056056953425519157446510020035480431567970473993283562938420289656708929248415671479580235722263542149105205515253911139803597406551653625576299791781698482723397844312151405236098696194138107643755167240212059256074951419634529158982065724103400751690514740536751472713811529252758453236253577791313038879188138847313559421737531289533657116646641942801141992393569645470612550075509281196167476374914525781173763484963159782209120912415358284062128765843903859002793722858091091949474686687922584810117944752501915710367121781228125794741646545212696231225528657037672209803021465446718258138330622356199690036728131619461872028924678773934618158405982014010437372055695849098102099044567126594397266691657195288971927256885679476482717086225587443315730269537056165536252547868150288498095548336281586715317772627667391776940374230889447728126488469781553985690928462479104917958188924402261738932456077827680386375538334136944168585509251791037480421664721056128496562327201398964762878272819723884887190514270005914890810160952962720970943213386500566608442701667257613116921987350759046368817671820736395301132896403830794035761345570960177680863587197521007223901585769734601052773928407597514331400548028802815368441162762052342165333834262239957413730749091074554535787854369281029488377049153897153417544859874431414761876683173133091093586970447483683290964917179577468159643628848602117522384511708045072724896064296933672246108753905088949686963673990517055324600728346891444814896422545685736416730822661573971015669115109870479923187847707285193687175086101345378853209241941889812285258919700210611816942206917811335477849920152600076803815208004651646799481354202252909202754448298147503377811856379702355595271366012761512282150106157623568393968857682007455704127022905855726518974937158689029728034091014729881807425538425098535353903613929591281847026179014753575286150723237831108129165944779189477300494999342511943998580284428411594055106739758108762532184565890190842595470850126964235072521901461957614307757915564622448095937696727076145791541605932479633391819031540393015097507540299823631501646515127060041855723837509543531197749222591041570187195239056064730312857520050203893673210415924419874806409538130408792104731625798162187272699893484504145701028613402685606369577778494087183117600800953232143942304202295304343299800128522039948188041985791896140229839368645908312465611329135017346686776115167096492476973673555629246254446393191163575641911614865698556913464855014636985575307848000463696541122151507055928153438951796817671554275255280441853441955677273313063291281021938610817377764568119379097443986976908851424146045608974965799407978037932435228492841319301182806380820048890342170700630468299589910397179378213297690408041031700825477288959584388690578826110069886148524097878136694586298257055067616202508552682261706378161668482635004799264652314030687491587638288116395475503037754242699329991639104926931607541102304523100498087304335420434128021713462836944854747377895836120667701464172923430594023876487013378290165021823299035501086562480302592011945512373088041793105414052884091163575002318743574974136469767003718609636815820466924928891663580093937577838242071631859165885074328379771039637257934359290924895756976714172626760220998842864878309783569845860981251551234046437185660984378178261648521630213063331217913409961136615779980874792058406421210931598016785835437784550482056927084369464736248897335532877049973802704298811964840858154479491619573753160558468910966183192587481327763460972879484220478519336135502772644402396564389062880124436141729155176454045083773408031013476942438736062155936536153778768062965080572582894879560295743297693524902179326425222618393384256525598469879545933096801250945523772827207966935401490190867041915578958622513472039544706538511487639543900400797441422078827155590303750374525900203993368121069386870392832423970522446401775585347634587560700510164857328648627653739034409586266048075245487829680275287495411920401309434370641264217154159612449168071840156374683060405781313203421132360903591696799593445409112300739843201837609009146112632583202597356661113892620921134642162552378158097048437780679115101255557166483603563080341600559221683354383186009797503952698362853234228799704963243241270407791583232145624448009951291749138109142549171631231989620957814524703019926187364680982357367333020682305150307088104004976911134855277217264717938675780002891382116831361882161074464130062181460512083683947591815099815579979223416688622596664039090537564601587564605073944500181007641943296972377842352472590709296186099368334862801429421221869336617071644477020195254086577998392300989882311380753009445953793493160770369043199331783314318017798626749449492176006493592263173436805165169173312139770645424031984458762021828115139002921728906577561405854727417895024200335107362759202335720836974347425858605911973056308014040729073111955609457919700991323742069450707492346065892662892051667273509620651593285135074523084249739761697823569077397515469045200700497612040409436173400812778907449212522195814550103505705867759434124263749650394719289821247512547079626550160601005996724362265986851931117354283046870783945008032590643327038821510319541268106972816100507090288104252109404860317651449642192314271303865925824875041827519823609333141078000363732522704269261805508507905108442288878621532870833538486781718016055795763940420397458268201351411022176631918862374675291172962853941455710649225188960331619210789949620996079365615935449544719170190750245891491228584402509451936332606633056036825723175875867802439100236508855315811230972638138965167990226492732459357083400970117146133587019102097985860353495816647834134220566364280188152240719208261725466095211906812203741013851904632820085716516352514194618519826340557149177521358745153969383785393541666112788277374706397131402788806715461623225664432922952718513531658096963329956962277691300139670182649578514687317054676446380385241325218532956377731680575891018783152121333559025503152472361315936238003323473081747845191427021098922104701942613539585117947503204476229393702997442648798861394302075344935499217310866781681434823030217425294108584208552410025036626320960618664322573992219763703365609357737494618697305208791834470106440724340191201874677470516363462237138035016249041642669043328665462909017704424968703771654695400364018132187123345427857419664657067680569713756620879443202435676510067736410352745816421328428118442620001096784002801804769653521998047061589248038715341221560567324682013987529260354591917438141504164095884520514895165141296676971740901177712303570313210174604395466570926154789248113292778527161762370778885835494537339812369908429229460257347818759680624171104565991728315018866061160400557932468768617044245604931858851860540091412543614480198593578001462781795101846762655317344234211692253264861470549701753880934716699340293448925831600292919837569716790226713574313374478018321910770408059658748856543354355050051155444854561578805165095896928605996641646608441583365726977535035470884804903428037060108000954887291936872491139583484708969258915011827634679243280723140679553265311584754852406683469404330962299387463953533713986055880964528733731808748775756968237095846595798765592402621299555291585125660725572098772800092395294467388745418006164096452022625322797984231595487257517120030201766482388441064230598309604066647085387170164360245011798356382756211745877462150765618377334199358614860375515361904062536991154605484895009862161861225859040579581406139379764059583099181082759483772309795349428997347203772344632021450161618432044337546906848095326026510388308267582577666822668904051965402593314471381971059546374850075746617011482443622910116261165536275043687696498707267160084930466237568339768885666199582976394434643087092424185406624408938569101317626574592129453665545235827656589932076754296746663086191212427291743127954060062374970014015940635456662330682179747890010096048577561149563261923568004167020717497367918887845083689804573601121759513097140765725184340382228202757270724486141985546335026531030466825389060454203060716414792327025563087458715853387136130906417097614842910843999613438022593136916943139917453877132004127975214929646886927455376589344918811958757669918119645622557491559370471465066975842718944569629399145564568881031105259949420781608703503171771550584686645632626231037430679320483370707587919758759613830544683175959515501625482397727648676658443700206959165397279218944595017129249097172175119750322006829884583771610207580948094694118426203279666666559736764955355311359057304060021215193154993380606997113294682457769585996598758509785526683956112397576381984035340180940360872946963735731588967210877304398504425065754696377836198484508613619580850332699865988431017473575124920335567983737623800203023599197261263046307659811650650261240335501825107421134366415093142359865720026304181237772942158996600455816059710082232964468621412215499869739208242749733226731909130609720011643958380360145691584878421775561013880452588727726394640503335856567686123892687180814885766412649228236175704413472138010760656109168320263810755448845672817221495463110438110003973094510047429660287025848814333559719073137099584179841591756788257768437281468412597441300806230177605611101532601857862815658744035730979433072743774386823897376842574825593331453732149657353767368446517060083995245079067042878984424674961059412493283893959565629254770151744574434412206086060346856302233791081411534887098715177901494466802258695414539293163173625462194962168558532993867974612759114323540366447241687378571589713533176915644504143152103265604551573314622146138500045303844204569156087690193970677093072148855778492697164903728501934548108497393524557746684720486424513157033625332395472349831638960565632510075413226528565662960385493684958474221276794981180146806092654293327529555051146429079916954090945545128140599512867896380759647049895252026829875086917630394542040855132896899687758648524271527140115600542020722910521338738212974579202044750348180521764282364278994654430865412082996298885808519876684717225106582560074859528018104774892462076762254857348086211694633365363849765957393438134958291291333915661311986065453345119249167461973251289131389338367690485882094822472210503679776106155223209640143024333030303388295596549784057099779761400779803719464559801650662428972505131518120650563485440754198254503657395833272721484884598664852203213315357766275392721439002146678255715793906782712537237627538250921861164917432198043431746763237300202624523887837179824694408554542526386972346162792509729239965541660796121167284764907016630898781354498771735318518010411484513696964771428041427266141237005333927868686762984399214525777150985214354284007847430855667586454097529568919853949625792885244946852369603466241635258211618820563441998429783936301883891143360427340590216238679559287428616184262301579897892289056379456951402073879344160116322446239459310566499098824453508699770359978468817381815036874765497269728951150998288627831941616869391572426207557217861569389168371291582686870976558859937971141383575657757818317988897726509698079765059427574182371056555936378469571941307263611429712744899427234815362905490059939241167007724025404172776591846403042863654493762007381284595470914012056027189183255711122467520600219339742742231588951292630178044810497118227828722103703404706908305096648068133768656347478974684962337168979383217407636529038708617801885731063719138194571862042957306159631484700894908721881322634901610468984983756089646340455679585430395891594296002325568386514507311724875482368106897016094456332094365648449920278687428136515017779309814578269999054500816859419816295377494233998346390949111177994129062665310338342988362456830610456168221271624956779355218218738966608183368046024484416008071774748588847004481144226416081321967790283401288449012768589372127041085086917228163929138030020391019350617047375575634323694589626543691465195196218415874642185317499422108723660401017170102727763883938182240580617343764633123179435004753410998608046651174555841069502900264348956464848377921233599748125088946655683072786819558567354989129900294958867145405846594129598394695693533406253583484705348312087245441915034873629993410376485622884856712693956097664526306078832753046035241386662249863899771600693298470289472891962425740224073325026227370905847023234374789005742757754646897577557557098875122177189890501487620330331302932636247056160118238194423146308933500765516522719465961747598561651852411156292993585061025428265237241465854272902211386554481114840810722583656818841978452606298293171226826980068737823916315893211859312560035989394761895320739825791495817877543663655191477054018753268271705875200754840908402374681303028695845618929961887466470645247988185249061961333953934255329534131516623864984396871939491187082054787924369582359809812265344738533162865743811479561522405065368162681462811919313902248077990016304194886105456948632888159404735058234231883017470425041269125212154929156261984926316748753727447628010956255203971480771724017780562284533534979260221552686845791679508525706817567997065587312955005959812734298838365951446545240402621863045952276551125786176814566633930032099921481179263413044688760783409924285149392888582607928057992126267976807762074860286010142925330603345785934118784089171068372770989789887936086583499843628984431880415852988260699850659866333875670121916683148021568826406562468639139515990298260366817907592767662257238841020071098218173971581231628262611381119203118437737458472626296732970092333348840589264215696444572862373604672433335905904027521899269394736896554576391448064349973988081831329840271394403344624112642711414187752512636755002919348041093027092301514864287129726449456288606453950013308016320632574283259851296522437384156966717131459584870333195927433021824624861179278632987596530988130077378670221832033465024447656267103924792029930272581969179350581805849838125685068009745579130588679985919250625412798503440338444737916521795626088436022937911142503296584296753356042661544713934304896831351452599353456504254092582230541179780960693006967731413147307796518265071499867499864275412211816077074279915087836783913746798627736421581437421807002420855892120861867591803017172734542455400223212538111530181604688013881834240353419323202238985540852712204219222126860614607531111391054288197916137559733601762942966623996788406117279273490269949833928862180957953036220165547369410766102915279825308331123618878241861996665832394565429627391484583529485674189927930341572876202708957671114279938275373963715960795741736378951841993476259271362930563148945454466169587704563562905627635105933051665397015263460886403874176327252904451589725822062448081807810466711331558617858580833294703518929681598921729504457725495462542775369669491077151707368922403962144882488380505533804934656073565969777896019873474003638538530239085662464891467759051624479240868602884646227489711480710055930394189399836866857237495479202188034802354106776216269541159997818164276697794517496484209644360342330811851300785877444738311915621556863974784102295134032410195727816175053113320581740946193645308083825705832807454666172614626050323494800801672406587730267963174817959675804335408865479005055475635120358025590353199216405740653605461070527136964378167019169270403158939889600976590679438622537127363724328928459741483576058791003666172442639789368711623186500392570339010081567356438684997056266664749283399477077194709557027774117957353616052946135047270801188784596149349266474829213387611486682418740028130072141522864699472904927838892258441381167935812850858385506262506970518969127001177886880579015909111730850137114318468631309478717051454185839939724383102823503021084489422716372816836550841648935362494389324847089639975299362130305537524087544973052613712442468172508262843952470200623957763464295560727247586733780423511273681834543677517920634057363941112950800070332733719299991537356694088819144589556223696563412917106916747508760767330785697353348210604065660472893648983195705687057046695253409386552915023432736012211343613870508375532033413756024279407973530993391049391081255931634892420282162015945689570037319912819435396537159971700031873946339282827907905462675935086799487123335676489126145165130082447743432623078687819528928901976083331876828801586253544745339178614136297996102833503315012606101110197384550018039007057088501591667561293327766622620115147447237567501419246768647453553953327757435592323195613373778201542408875051019171087362398896687963960775405358736522922854746852972212160995224231800689108780191139890643670048807479144804241312231139849381749938974005862434081963955795298709229707975679558774840266546811130032895881035550603829663593119480466458584958254487204431164181871216760302515665500153679779107178809578419549711637636666283123457066772209476724939416167994578861448868558398275266759263768142674327479931225157445786636171575312302030922674002030019847085790638113169053495836410180834879624258395749791363765861681183756206745195690397924253878049360354002009493142546207630768108760202164711490932979581237807561721581953481562959965567689869979973795396301169252547153769166914028082083887176939981376225764998001822382245605462582258172122414860775570018793379716791110612720246455909483716718866644736069540069634655568980930413639333907525988922713330248119509800287684672137131877462178249949577052750785400980074625431439767949510332340081453597525134052801243358587415208493825175990833138438559103461352965151309536259322311604484055649614582473453347409639623165852957497845694966448013275462760763566682358462921162891751838486585944363469962286586942240205791414960017413095207930018872554577308976462010917816849322893972291069859070202673317543257726050161003459139194021130101158914262975065508229913694066578248481098480230523402791842461054507362865009616819062469749102668676061529392696468692077929629227512641169710933766102503937117628391201626819814643643564210618596224702758274025022262571742368668777180726059611913147779706543764201294432910197138162142445433419350882519092533965108907268517596283572629505140026534117923166468970433837966823886471622699026592383420551230389028099237355345815787689181116081333134846898882159159206018206417990835972164859747355502235120883840294261096003565883728469669217346852717472361108552377987863406775027668171589432986523589109675340087648626238655905951386565220649169299578773516034118650878530306630538931796644442642460287176389837776733701804618212052789430922252304432633778162487695743824155431946011934738941433349916469141990890356346233742357147908319784657571980003748470320214105013814030794748942967765640504297030558985952329032223267437946512429483804068969939189372676800482077156631289938897625166194880405221524683536457555298411628953111210369195582155246883136951339970446261811951818875158493423890029313333911167471217346043626542674378795367556785912470190905974162255148088932212380828302309313940814879370142973709607598105314705239181127225141744658917391956347282676158229266302044921306425142869393332646764705897726101559810005858060431038959645408904209778258768643409492533707338053687655926795913469694788070687379755292689290514122786819193182591261981821135232363862441625428410241770553414775631575342059011894969101365809820616659178303177146927504874746316216597049709266987238144019076227039821558795231414002301797896044369903002446909534368304883098941925815112036271363219453295384756540114333458478839530841839058468989859179103362723936314392151001623266337444449289555868635713503270088687738061689875336943547455224355246085323965583926806874503856992333892888330555092770026991950395222734487111418743592548064134259502415880019895768102855032462100875908541031393742858429262630531739687881574896191757232476122972182888124280733003099382934260063991861545336635921574611496651939152391272689873384815323086854102071033745895033843666729495925892032992612085984002876137682674248391342358219926869834849658982130413918108320769500437865296038050892372159920352040800074153232038471695818257620260421959158812376289505747150158632530733729501346171097571565528721719812179037666992021995820508261790700005214656102837638517370445555317140198255256156726567325334367429136286019552019817452938421362199766386035463950030512981908952855923821248725137493933341783519110675442243221526209708007230938728619764186306666436282953226672900604349510645653020098558981977037207213826545214113321159019237950407615745859027523533084041315627740120468603643382377047115058682999511285182407101040560333503287349287109594139830816823203134649482146335191829911082749230180212629368976238105740061007570489526322020262963228966307629859027041101873483934479982853104651097864806063938670815414784808456227628277799897511106688177992284899106804638768470740687993266224265790886285411560690140434381789997984146945957116935873696358784817031531256769774450151894089805746494690648543301098143618577342523799117486377903179938602545749427184670945291620017883127801533596919382840867363143832399497423872886820162512021804131773952581597585418454252049189132376567491694026520966359527584634428102169769713881699197782929031135410460583073428382581439164955637374252120910627011940319467924462785067187966392535869463478958872814809470173125471884266239882162448075514276684604856472823977027061830415390764465115756677385397517100924210458655520620067213681795256673359875548528587381713597584530467986371326780484339380507809528037518309126680972035122391138808953404019111811807250367545577690926277016665982506277125598953118413470354442743561070370733604521902228586983450842091031011287301108296879210351209891264088858677423679869853866969183530422393702720471090847960462824372965992993246344268311905817752308285800697799230363285819161759167103233891477636888103853541503254076039360879074809382195742016566348588221251192777982211595372282051629688900319674836675344321180124251739898361170725302207718879184656297687527070206566240525454893861283222052070710445931829712047046951990499708280538836048835174909657837190460937728501518529665508471397730014104013403068572028424908037140141951124804562584897804868338917603897078609836950700943848841482643605760216599764073213689020751474950594747417750181455635851507255365126957964390204755417923554530805049253815647030517875659419968031171414878369961013961731109759019010914246216028809041590591089493638650588410818971043196249696734859041865603551552466158917320170254167829451697819894703520810749633660630431299312222730034777781869087115585896345953900060181101334461760576808178366221586437342123469635629950093726126241046867531697202196762471122204941547732098189077888816796961706866998731715316366716186041455652366576708236559968225790139897596619101933764213862754425304494993356469012723261909687015567082463249536548099565949545790432685515368234179038444527906732529373401164115314765493879476300352085040223953853388092519723018399189914581951332930701163373299189932023771176953265974210063674967740004669899340453457618202138369650768556999261895199796102435472303791099961489735513534587108945169092155020084926172455205761718211854873517984436469859321063278353284534849692899386395734157521957649410940167520071283462782863481565832085524889323094893585858458073796229989069489065345690969822060338873864240288513880883079527272067259401708027566084958819403704817168605797597915093960013517482260109257212533360048453278980050116679177073645904731635577303767659709868072463471336776339960645562811790926221636912598077170693358798309811612434688080118110740141351679565661130959942847846307823349324876079575978359081907381291197135668471950523096941766900842469538839159553954241915212192053772901800827249951088057168598486573905337767292049896891250550808379353458959821041324283037239258535162711524798331217759779101827630843753960813229287887985909199376610395960533945979269423587450952661523867765121031681911854968215664838735514325851188008358078839502361218374104380813991131890276623782736041945484176199889596066584303277436997773975532593467999543761469509556534572061087439387624414372871149157490308439531599985744385182902080066761889371226646815156721275744261932658513403682692058034534746486423902317716530268839214225400937538869555639626284489540367019478055730247303450845976385822283864361752890810214365822125107699881357863517125630369555893535845065682743095915115810887457330125745920746833779459397336182661360753274959137158484781739334983146035013325352549153646031773323192271756525014200381781262511653669362711774443062113891382788185162609254075251053293829046055428215369407708107646533704664274403030195786642145585757059369620044879362910919974123918585293016855141881589696084761418533582419834688146698435901410692921509878308298569788390334756887481545953250178087913938044651734936783264419950314604475548462106620817335157127207023681656316688620285084742287860423851570282620177352946625423765489003671918071328599243471517802734528817684899072481797512708589167972497642870807619805685772128859823344317970329889227911950137468694649235586135090665509265467828409465766939993476317254257056132934842048729437202729956704438007146946843398091427692108192175292562510321210927027353198450615905382668336415956683281377377178934812276301649634534710776519013235516153641712897506420318332070645240444553394433584013738636875677035930384757197095705309115923116880106905041823076435707282842194316255454129168274785803321549976103441962766361635343743943395529047688830009420689665170113617926396841345700011453080234081140145525574974760095593046055657203281841377289753424040455169106140597263849747769492216238826460300501471264857386637399480974812989234617070094800463501913519019040681378031008152883337943946787626717132079630090739938839954358698213834715028279922696273404012333248022069811978306931825384185841328742029203396335155623232588802646200139106701031440683919955172165635799656356514925198439305103794241068053060676567077667822831567757182707230022214297464662442694461203000533733564993772279694950741089828734482662776990496314854525905864935091736926917985286645925063377624824314853710027352112828308945044709959940168528612788646891185265305676000549442284502054942727083451048752253824369762316129620871522553683494249680731419860263399417599497536549762415394290895920691651722004717698234054543468696352284496210470926673910091692632528170847281174406427755337286610555136725234434254773197086017773632797955395522013547882948423983785739046536507020887007920361380301048851252559882275175888471899960361816073216776420340536858442384963267723534571538055914303883773935056342132877952020728468151851936256757568727337272670433830060330364025519146400996592344924285639236226376650447699369537174755511109525198090325526886731832468648736228797712352441098856481833186232945391796108184993032633853742038501890845122682424132433247506338552148149447895277918184416545470698217540208043797565333589743177665002520516250511703280396269107934770484400564402550400683608455986931769585078168113716549548483088225633420621782991910539997163562835725775212863176446485926715183884466755831155364043169421614908379087952652443632847203671811756100376257806208885764025828150629480647557497127727387084548904721103773264546894179803105281341074665197996075989754867109821075597578321587188377110726633557308093379013483053288341113309536964664381891640862091260942227373608736421776270192275471279723174841567007922958798381507755053990379819268602244425255067634397377717696965664479400803562791371157942554272120224895040679314554128894944444569329821552685031313356834483968425146838412313749270186160407211627830351515364481209220928995370427559558602423844823189354381714362186301739239125011208521676307021317195272385336480106341164227883358853409592898147137917750704716771336335681204625567624005259646252275711744773240932246708687740346742476965175834815669822553865176394809455161293876393351255394108380673070148862416723749426544682881292412880427880342808596100751670397824550004698142080757764926847704100007590863169959207812681529873450774906811438150585872804616692883020032259796797209371936529992925876162016935963905631384044263984750605701828855005941868680805357017751650588936755941350576198833212080356796451500539720111100825907448428654292349423402067288852987006506446303710337841647842673171539915905608582587145495600873432210597276715370400594711701065287182392688521769314703741372078658063315471068882817323090741599576221371263735889655734166127163699862977507359696653208360342807609287641687974549441542675559885848520601858917935056614755678779879098062129406464393693970447239804129697706218825642068971187735560752518643766424171037125910050386620724361502958837949876473635476940244935063858017224089513896105559817849435686100111793412612622986807238249886275580536237378968088090436647736026410578379908703327340966844486030701651239478227894769979826843112508850653092147458596384819067207956543832988205476022267685919172802384722917713712987110394926146907867696374495857075092798131164765475025857807654749524341216309080334112807723294259580719872414388024966748778604552777292368056332721560430484104790835839378489482489896242777779574504109514004083624714712846186866182923133210049332138627322276107339668230563557541898244984155534468363985492714973910964515375304720033619480736385177038392482181445720904192907260412177358208085387812309258417356810759324437876937172584344725106480242565977812699151000125556726453271278742674306214536198962503218261621306064263893494918811271013064399481950368411589989867697111153905045491353735818166649691788262098076731224641007547683793904401480297798582328687073107245626485612951821075291500384125287597306177953983833933273453127652282121417430361872057718460062894494644253543589403278374789223921402114598080685300286970421334004778763039315020155490926342599922908645435891886451864109239358712305343461807086516652376701802660894264616037321031570471386997912890419155941616573458819033395812847533064930328309842816243487160810681925132943311650750597871280673934588231127965056035743145343987061274000440460066884745138330812156320032662899461826482356204482421505488910459509000052572020831095815071267085227921497559328267924881740498107564368917548349773961204949974116298677540752144263046233226629927802172437226543349375685862088383512337909804245903915299337363625043740637899709262317397516066637840537774506239347528896418493188029322644136815354773663594451501323780830830020193460726305343445250119202393264177668166375332828517922929269588835354071709097982395920274633952213668966202909958268604694812174898011387410713029957781996392890122862418166103440032866957694050278883835565103630500150144402362277464532099392372880593890720529811225036373687171783479324678016420494709514365821889328914616857008008941831600516228109632182699181848474460099806072737722615073742775616746257410103271114909845133870935756938862472026340713646379208616370422452011766286703249748775702890835200146035242493672184859020082502966321993106313630302106592215181539156509580998908751359865488096691617635400656245423091770561544180197518580995313327021351071535932701298533943129164266831118150469115885192398521399113384738075447285920189620196763062102082214886743578502121428258529468650053614513972190118221791670247990767982033713154209539024506318369247871782443072255794739192572759293858545177545932493348361351651929604341489202918292582773647732457532034866456897196212979796248043933552335051185033211374960139270538613152225373424216531943183258893228231694596394688018436976459237713973207482983015582474480274282957235418270380137124211829761777868576533690691020844274241519263395285826277143420692543294079152609344253431945327252945580650805441337887197429486641754894080790125780864326853126801453478525108417801828488420457267031974902548091436542287576415041571493882162571187478348675837567656111071207873644013747452216244034396709666604891189424257567607856657030951955281742534453320633318799313838730018847693597581486873863076547353332958864209197337244670706577573433330643704413753131549556061108200739960489594077288766980762781004040476520421246473512318991004875503484447605509998260931285699365706378727473797809947262253700609213411257686560354548676333002570808232999371186848082030136805398770312573701892298199123933878892237121627820723251098992293392021222340330708801452052009375203429969913144418548852926720014105957025577864302242234201594841673159003991937400818730115615197902318745884352292962743930754996479071054846461887325744915005415592535807172971585341651170997455216711890146081150353278301069843761133784593892033001895581912765094287809616719873139505510884904772831876829869260634053636312653960597131863376521537258520198547867602527252774765623482530019417225072567821999276702263170079970369388287858777573138111045064861137740568147278056079422741274360742611998499951226830946342305346558298482071264894381018326572718799168862905952361483231069548542801534997189947924949489520724662635897613078164044641899106039545605406318992475362189364266436274450342915189801558650427855905701296746328682514896942361480328651272361535446019175944807429170404740626721899200335974937373319416560136556802120399888295274660546992553244498398136915554940463559380701232163568051328306033338209863774201146252136006744589732659180953192848500730460777691021959371571928467025236213909239686820366933743959360954204932079994483483670705572449364654116911384530259714108701192195345788424260016073952794806729799559688071466912339391228854485776878673190164965405239460798169945135455615364101092515888065358348874386767795393681800755598470970665067372624202379144795763459698117950194431483305153149724570167953916821661906127896948627569064031491871177893643526513574791037486163767442117944988903478588755008115229620938987740675979787686973515100849014444548674483326203121753098621872775567482146582982551603055022670457033896479348030192875117169918661021426644393254408552114893107075031660105361088737930926303234865955147966947671636358584669582308494405202747990607975694243535165968969638089414279244562296843085761582552497829247298271332976534084910798645954371360261593882821555059903127903889175585860323888947096093376014023394483370462690685371310877915919947775531021434882338949507699701296410005878672398843428319042657434493225825137391610823441681829595184826360595581837965713704469944234568749925251515379310849350391988051828571346121695783255166233499227070278966511701368323977524379852281353962832518522461703249295729660370200642515673650179006937157035458441897478452253146308291954705266497189716257239233591751508866393677901433275754366347533966838493832759290309270403418192939162562060775697127217532560080236608177924634432431599244944757060010398061640210413383221060609964938101061647509121958649119547765412123266224085652816932561451660971649322220614401000208640462986421724168749142543276461948873193309720154429295802857159691267752636661417040186703328670057294279595015146779750508111454976154126697155211177448020327446884674261411066117952548351644466452036110164501334237399868413763739894868103418269110872295282576687641586964702404520387826812669332514572519796457929621245951408344171536450090037910657782478833389710989534981102320891616357573145775725233878480992381560380107028343980025514839520542916082303029840048589133734588688222732717384331723353325138012091259645442063742382384418836186819180611529587659235100835996050599492446021694915972784693548953887188442093130349009485345933160002409546135422245235178699303611385919297895391041672205455874456047573324241143999970387329697391510746532352733144992323133426460757676292196713982934890638740113907032579428456213514024060575334410369390860979725254976409300609934831754299764514278535087396370214878748279366681297879352478239607733423763389049988679051397864838677576199182038975937574640774304037680434089843642353916242042344847969564794652131598820627990986715574590177178463811940737296796017923421798715479325080358898039757053922909712935015245091747347616172668560348660668251400090581639688417905194794796129349354755611032907263440195028132817218389454925475580510692740871842968561213743086363322020844240671579882260010997814773072923975362767957882227503067717780400605289399938349779694800578403248140693539411093637825516573826640870704900200746222691292700459392147300668733215673222623473459185338294859017262272922925312096920700203352171934654754596372823013019644557784468762176581696048155539242176251756873665647500975539493203707371574600045202191463554311367713639190559246096164920414485478255624238196112994675643058897983852902775818554855669671828253596357854465013008778392103722199163468297862557263968145100365889047111332593840321818520723042149847689336429525057904764544204668585685123913371617894567548805994497717692870328349906006022392407555109504496994428797569897811344564022666593117460289631767342516304427252743043233253586302934110050828968139502015056117522852084825204765211781426236470997299623529094493697610481459734299257034401436046082184847040363144054614487134898128108113329182729363751508291283457456475531041947577984424144506845153469564345469130129338970179298100908377849520437988097228347362777836444525525761656481153448140966736934556095553214747986390599832071542251856878826515511711761123999381546981546343120393526977779897977497978100188845614905919399127596191147831210492119429365629277090422834577284357693611847339687351066179314542994696672182699082741280128609848348221875766961630829668111736815515692621167360871987628854661475716346405245686582415700148193337855213324038013320537941945735343866242727985458396820775348994831211126846678831772126665378278646513533467394355046105951271925082987118944271361540987392136290272091193449697324665750879913041474535168429818354119839781574558537601983165999699137179312211582001957631428080009796853461268756741951127568773535059585004303620985159805764417841923046293852517827669390243926445218219694857930151097175072521185257326086036213962834086528917863788977687834997176953786059343231798417591038856131369251450757368225195887226389845563344123379539662576297548766632245771127079416268068292938377564917584086638769608474434312162604963435333218267119340605845217826124651600745864559019156156320753504959684893107178743059271492901420108685606624779973906677858091968243491831096224473436032733334361876725052459940506369987343532230781483548392192942762066057833072840813935545700771897754524711042960957706320960887073484552413911163503705458269518900492591654312869245154614066256095845709997886193074924295174765308442659077064766471087002819125992943238407526251339012843983046486791922836424850408989005928371199247161573846474900438782470453378817306664060855926805830507473670127875280885062294638847337912580224325222956893664237029470581517610106704988794718071905949272235171130453139228988951466073417661926708255813687241439681865357826726779837838681986470014066266048872351563446462007771660698862708239930746228045210992623025842372785158490557730718946333514220179294377820830660145698179600231491309251835423926631482891424979414038432759798804925530187346142600018433102352236005497865687658936462807378088663700973006313721275216091297814190994435084230049319628449529347720881859972833101763458226651781294832351463717776493590030986049868241732244738443052112106753363008783804562342652279742420966331222123245979525565892960974063381163417442811066806568550122143186806152737289430848743103210731544937752467265287768855362575895687154585391857778703087150760419472808982991713360128744911770683047648685202052428019795840193595806290731013223624223715002445236742261323609437181539775520216924389159431563375125805004393115020229656934623328329923495590119742002146425604704804394213952682789061256286655499424318280113976744677747446243593596964391912971407255457676156241289588544500746164867167761192219762696349205299633824244401918949899270069970952920931473186516026209316741465539749615776562130429249777804058151250135676921162181628062006181456341129564750919038638022578131323431999635575731176922360293804892239442922116973302927907652625571548475030309386525678267048215147331333161097429100244139408301977530763992694738857590241178631030521498359217934594063650639712430697577386223009695993034592723609416152020930216857071050041961293188835789810187919105701771864724198469226903908225150413721066317971129237888154193848181658970460898529246215231317897507180074946782255453983222963998510775199362101732584490023102933968744494067917323843391534868140742469062974501819902681343404974603996837567453104377367047986231464066209237814101733828606918840286827904381334520953681480328066454191723318447663399761331140578352920791066899142345079313362209457939921575584415663438793441010861436954380144526645981775456004426471216506852931178603776856540917624595853413812010754964344393081227209675074677674668220503937193428934998059387940792059704273100393163462307802184223807938409999355618390887467510639433176756322380164652041321680204913584315070804507555447489324846101683428388765785730620101912852048437979426793388530626985208810607418932970907761873105856969478268596082442987495312332500333623879407460335871121122172531795315464264326358557013829882144486587976275554471859721343523207381609751288197294219702844999826765477488670567377399309224873844475640201290259740190312047715190522041588285317806576824298931044751451950258952336324836113376923555161270505452913776884244232809375081928436823045221599821997485593556345475127462672068752923625173188355181510874097591769669193832965659619509847945509290138465808287226247800268645562823415179645612963571819673853275915885057724924481181639651281942498357587510171666088467113679041493543192792186966364958165237812488890083976549094916557362491495098181257923016429732205963150276167114666557726621000230269571401163444943091236352052816686573845579730296475287877263026780271704373450311315698477078104481992405775558574655874639226797342562309273148221403772654001113827413555508807309773144838408905422593703031875375016883397270831410284405475762926020315556567770514944641935996412489085191490546759539429682381324780465796175564904568474942669449143227513807789717851662308695798857372361854499666170361640356768437331098230723611562974594937704145627222214455140350504264079576797536040969354309967384510841608273428908491288340145681438214288361119746742757014910474051738816977656104663581213203091870938895944340878665408002454559180088096890637279785365500766428424061051596904605519746672986429220642378643736058172532842798220152246904205461315474716182310696723957981574282254993260353638327438746759869252601581750105426926070450165033652134677377654935775942279385090464739660197032423806707570366782275634176528247213464712352356761667581365689005262637509270043334574946825890970893956319735455403817931548416901521018237276754879986568585603032249563572240602171005607276825009713284441822563375872260618338993521689140395450384162631271344157433021165663061515629683911376834344180865661244500951015489455594433340747266642188901459217392520194383902384967177595993128561908530149588198093035233712735880393207900033934920386659861981167496507716845583560468515631837781795125004383691906826323240403387316808751352958864059386473519267935554842149372388280272729382719509263373799479431356827601341212044560571764083446241858905560724980099142996419546601048982429949250266109627554473930013030754265563057920259114996072607461243471364603444356294083240276598241179996012803276264319384649791964189064813129606801957859990273234406794966687340668639397425436791233465020427763423279670649754545806571498786950152924095050948811883463627629554890019182512905871220057898384225571939816812562561122419053023780197507124132600096452224178728014876205914586229092242268078077664499707074772897389923170204428131872056446913580529410835152931926426788941043193173298614910896239318578099519514114864803358850063197905266424160887505170466562567718273852115534773143134369561516722083268682778436845122848412978506390785806566379889642000066800159502388376100264679180514166712765107623485377828025361095879895626680833892703123731769239264206896237868735338212978872359031101366285362415512149504876427670757878453144061984502090761789627304102008085475702509822426165765134862818882375178318973117598077875224486778370137116923264485957812882711193801765741893443835717393096398232007158053525240222115518175272828099311724047348424938748409069909818424453887529958940007879515070476313382956753334980413632330372585752020942916573505312022586743920184048901889383225459837324106985938480982294296197200177954035530526005517747119353620564305883864558126734748329893262338780645848803366251964109630990886266554156112977803230482784095618593652546793620722823306788888788012184726689166177504097439410584035456382078201904653260736408200244673091140020355470934973347174977180044203972455312171252526595556612829700328696978035134491143992345004312923184422683578368012301687974074640503466956506282755951630114854578258525973156535453791804688790146818071308368744889861717366577256469297802298738578032412634627119903263491344758407718946792433613728362427701569561070086303201629739573504587367937620173876241918803379774102377362577543069328192436820968732377571641708265084239689771215134047754063460240296314203588275213529125218605108102343795447103566804754405452731116828434644302251166942352846510916201273502848766501974916415558691601907528819902841986747200438827360635962206287416138941739705681254505369624674329100360590169966677567132923126489058034977352514442468200142882525555705083429707873554955850613695317999002177525939234020718330713902740539272996375429238497814313747348505819849482645891795970867806083566193696782074349743738427116826692363247358571629317559888972419211731972834258848324605649105293382607784871993263513823476935914767612088837363940621266262105034893494319544500138005902248808910617908052642306448136621360343281360392750049553818169987945743177653733365277330918033469466408742719534859869618164463601775845989127239012068124714361180384251786422331715769444024660106080551520603110878289969978310502317815320125397855290666336754118360573059261571371752784953756508341150392208878303110755877019320393742214544994721948185510844893130184807471577553419897810406739654400481407253857800842928578260361332299491208105639338094506870742248106230584898826107952983332282541085074080608718291026811394514383521698746803736373198990077347755863293779645467572032540013742871422022607633682983965693265223026557163444671702346827941210346401195297173793655403378506483312409759749588813754982815406142836718157509985134244979255860139237681335723520355531549047905864373640379549579732930514059238860177899282090573233254374705701099674975920554003915272577464558048957720855597712317995395262808463425924586550947129480197449975277600122777797278059699658086128226210141157824494393701301133517256966431286722212238601472366045712778469594401081109174258440968156297560198683498467601576048754990835032592957704105085223014906137212528965211837911473050594608191509611006686073511647576486600980011683710704497049765148515426891370766449439070663720374842399640669062441820266366338102727613082102789928739267469594626926974915500094673398168277548184682081425033901580487157601254989606105856695318380847598794406356543946843709199874402972495250040211210990355857521436371801054149960743211878575993877122698746156166351137722509135447715911737592967460309863838443059406256929855920265464334259519632324095229880536359303745146830697309733238209803890823600684423515444344501992775894525908608949370548167784694274119352254727014292130563546871099678173937841074115796533659922347351435090777718077668367563140153480983426349066870812744206224950124871535580846876817080791848478077407291268400913172839648770952772524626133841105070388085122549996281613280552555301631403421027371762943910794365098891222796501607537572925145013974507529797312807649242965923477044949056561179049258339259632891217215740765934045009117972129573931790910219450657455801878879936957918470075725715927942321659568800214845290904648042357987344113393807335450071588145392175943144012823100239574039713506827782795786583501241060034283079272424672380134298258016794489446864257949809842106266069460174612385091799537535813061817745331500744305724658202439020422073921235515168749679510998618291721107948316001329555064119926226043736306988108005370899957517449287992423814130698863929534573222916217124352126737812780574659448088716126987253576537975602800478136202876709428126001102828862865335970320957989286919451820325270967156021512850164095896052171960692878920921298715633374227786073944551203926015647673584466561374180429001041767938157832884043631451752050266251062936805810777278733535637087583522256040956066929648604601464955122799101104678091689010869718714341955343492824860706993582326360993303356777844630304341427384438617767485916112083286806890374779071678045801896773435207012118205338576840007377157841318071931064989112943003971945219878248398345676760442916694257352774201785697086423892122180542284593924079210450675445909849659426049962060051911705177280249194329504919573223484894890964009440279544784606941139334625463402200146267176414492397744843055997720417738483122626212495407645496053224161594367342204905544795154760064665735356379785503343429174555137327258026889709892982305779983372137046083956830044317437271781887322179873455101754959607998525325539354216068744662345251079088359272143314107032679543994607580653249294560076359605885586129697936780460078116998717251828442365997527620372822148467393788956356070409472558396877268846872805509909393635531505075598699106585237674900137222856903654446056229758942844662065172948008087685143974140914781918781528602472548410492142927470369349881813706519958673109113055051331519018069319783033566410244315048023046672764878340836222122518741400667621733502728668379690355956409137033775166468059266258183759952462393803506634903081442020875430475426566690461362337864756408250404195810344956914814075604385488988952854195164073719925981645101475192293533757609137852683666163217559779788424487540968802617124141374883121264321657778492596822435753657264288021620291268270636192807675327080299592420335328326480381353071667312313479002866718882620519957207936066425758183433209546081065683476434694050314251957664249992497569341473481750003065177019494620911483053881892602335306533805877690644386472844644284614063289800630189031218625410296441521768817467381642626645370595431981990763276493913550687421979216570577012981122651178356463344582323441879906979441762853310934466114841813235150602488618633883121077395983864868999221747884699795803190160776910022840123836498436182974135376533041059305377400149840267139174616720503917740921033159107853386442724659461478504878462215157870179292969044665223762120041027862347393039543671753602690290033433467854322105289574796718750854512492651212491920214643930659674376823157687493055300720217384797229658540043049335773119091273257698033480653200682400377721921901521822432066977171229894295800848183182936005472235860076651334182815653211654653897413110525311147121093732138675712465243004799751962925110183237466201364378274739535655732243930283835612656391396772451087495226819197504605050886858659532432678225335619105073981100095123772476940036572444561715722337380245984829962347850151528641597383941415582091271319188449861630983885077069264585293004017934017162892469307156833901519035198246515668319551906458131287693044814010940969415518848059337309469482070081767741485198146327292048884780193424567371265571669970813504315709192105683916706349909275978505643008395152614380146824454122084954032959940863796928624777472224912015391066054291298005413088610343641180647590995771211812112000992148785295174525421954140469107498059990097902016746913485414374842156402579631276620613084652669208465774074944937302534860049818037697664194604569119618320721886916504696549068931455146291045741428552607681555162487619832087223977591004055545038289732623302166019292795692722304084472587616866045589006879913457387193950355099960975899770740249908330980221711176727397677010341438161139909976454301505413456705043726856106582569342739331946312720691703663876301933964290569453872896556268951275897197278588781956561120014637554611966329356959726931959666472428105859104147845921546474332171746877998928182185824837827881143594335100486879016183890165963820380023374018161293680767828788412856415085416478053970694267118618271611405117823387541620667184808857915144941602392624806280635609477840766096528752201665201723986144777846116826787056828368957387769737563731420002265012824767905813563601602714832739663882219699498918332253007639929540856045572683059351462720193826168114923298654275733422651751493716040184353207902041796240956686268926850576123229281705938648915492588362414203289625597441047262019339829302158546754998504474928963509018733897293998056145536761356756665387372614560562161636512003539902269713401108973140033434913162824883336888774149001718906585305954353325605515271388331440164222673927730289953022762818575962004835359380988212973296641943976051127441273635397367618828043314289489314028292592557561613179853575162696661614774957724895292740361908131058742975863542131691116637523970436745391698071719404962653276461248113626315304589940721528200156319538364538419678625472389839594798578818238820829873652408296468278922400013877386203561514157413440548446940963727504667851650210212652990055705347682630337435661619599355046149706572220573379669074395364664116624740109708594256762270296170318638137322845528765607087639941099620953395754722243958674497821602221399268973655531535519871257757950290545907072497736473425351935756819706994236488252564317808814556915089144030673696313433765335487880246266837878492009752799175773394887817936890352617790079143920715039564563293376052387163707051462012344697635359192016150838924450031126094700889249155279021254066483440550425162163756659473604516823797830893720796818427460118318534800962830047908584842653379695323913245456067497449355568787084904931697072611505501309644093034429670850403497144881478846252904968337376535711788923655339767634615064166108000763321709544895856150093520626209058873901895770392181271272196997708696627865146455622885576390824434931282874268718890840083263585760074502216223328620007922117465687260443655861869351060739870903005127755971625085835215275529489217299799428178905340073058319078806858559458990842039133847098514346541888100851917966282984967090202713727847673562831920021085991554816469077792864414668448435345190416731130102840481579169567039040782212742864351026631929622638537238712577312491735175595511476008785135739732861070216160786062227144470684309957781737594264646287326117802778694344927782986080046658300529553546791055373733242186437253346096243322102206187294961271507219014722483829422572815762813279829478532556364415672977100922904946730103231656399043993943404718806671884463559584199217908919902497406416469359263882361735054766652979474532991988782339625974362736829965893607627040455670043131266064560843624058436518528828069071792164273209373906666898424915450183142756319166668024399781553228968799582940338887346283363741676283687327368418177574308114694421538846231979125019160392212443060046322860398825794013664755438513078649109530696800760616739369685746176608752038920288370990062425431687596574829698216401072430067627178660090285231181511304831645580594676739528778187682208126208571414201710078576576995346443693633672518521554278916804982954972244020896202316619329376993809933231949650539866080097562221905440572220758611499126563789743734059006323925716185956545797958460618139400014018222260286371266033273714925495778333473094092694410905077827102308165860951375080470910054447732687512789128178373898068887758946488448883536397808802322487120184520527003616385115596224351055247138883421115405841828836086793390073159358335147030386424288663938083738417556143936510930394435296564358785058791095603953707557814972459284791760361532550692717150750582774929011138734602752393651612693428635823495281962668713995376546566973575502707980112660225224647975946558052460143020138347431987936244922113946010558318917099788611444187080162787142020838473566396763555127112277154399687041397608943687738870101001204882785442960784833363526160175177523296104281823395873238550181831505826656631091244199711193316539739099135368230953095224443959831004650868278231057620950647167476110718563255057245903605177320933589593129013515532066727262117599276876613268472968604288104542206227953685937491838897473738571565237472665388552039569718258110660077729431270016370244242670157393546929976001792203550284239484644033061099344031730871549142283276773698115933357946266015882670213726737008572763958873287975996050802923496606059024451139542166023653763322064479991678905840866146548397472442206318737599796703370689871070195391721784942949393324306776694546806723093019388531936749078473193351375610044421467419824973488166277539023061372657604023545081026044173087673059001719849812715958985584425999688097166686324937432070969775713574202365698676890554693588378011109765657669278164282172153037634224433810447157832946708148182254457069780531077897815062285968161621699941975495923108672107265963708693427938747799294730916925282372159449408534895324154101905153852307743558481611891309301369536092579917364900543373420107293751227781601223416725094942993467700202102333062380965553598153707469282136381128594728231093048850213540290026293186044883609724400611662412226274485504201836519473702440665166773593762760498484674630803290432273026253882276177039020851358728121694492200475419243528226223020113512704635495416571219719683499113628705411752230902449125682369532757566824698034928378778172135925292141557977071784055797376073750229389257590276013781185010046733372263087999094605792353530912590631843413220879364700566050842150132391829521224747995327605384752781245872054496687987856043918460108808409512231502146480416390766735878365291046303931933209520540113238199165884589296046669495532142681137653383934128630121291001050000658909764574723760354863008000833962871145528375422069959738781667634072188506972353443781362492486207697685576504593999578385500028085820711980805537436587752598929131205381184565012943933915601525657965391174522558751740060270559444790125791440395226996962052392324797234794649020170729875672061393157357969887571142063790733799641434343453987947598203891570882313631221123517561583395432137213146139655130991181979895463776294834773738502794647539060072365044736385608172246988900652330359510369960448601627927545409670285668662026638839031667339718207658114913604559220609758759186369320462015364799546054435422162936339672983860615298608371936015467757875861809659165537882506058618072087764377741381606228481670150101975465902267546033890234336008990652907370371276428721680751624016550847319375580726625506067289943654762337685867246240666182786865678498470064128770664830560048717158361785640152430850749776498153719187878357263043046547733368884660416875039775236245423347426759810542912879145515505240481576172124507744212434976781845118401034333412187378077040466517338794796357299629404075256744864012547507928849934563067073148136171973216221589136651471121959489759003647132629971306520522951065603098967090095222468705348875800788926035439212979347984160847089308099725554395679945693683356229540159898661187023395030900093857351688716225665043607335689357007499988901235236120708477895833792416143223922537667252681475986100292339040840944288073582852236085315043290840462979597611996583578458441769658096952871815696863720147733973051809406957035316398148092976325958426424398245452073544904345240810948785607752620386593701703769877431254624444272516705832311754625428484202367491849608125426946854071930939072683534349556389108900928955677949318198945729847200593906872308861924480796016779194728533709908406840505528315112459902334997934281839486399621583534927652620554815083744788309500562200746005338389814717733850642710270076423588737394081468118282290979031034449291022470031685613219591918930811742372245744480233062549664340102032946256576578789189611345258752369564739586705309040653006483574507318502679536439858052396995001268128145590629917871976599494916822519759008088909510888070423265008266441900172766511563252068835598852028912218860799092779418863032220782839296447907841372445585082054418832896467368855607825494599374334579020684361070490453516728509161872950410031287102393921407592480226705179241068381394004430260834452307821487430619386178116763556982301080922182529722868953926542299417246407332062142387174941430752623388062377037441166038849171547157323814325602152243411277053521128452396988264247080158959176807145228006600003474899251971889397462500703737158568400939617656150285088780410042198932172804777510018775994557576901065211840060032713725555969243205739210843325551333392927476982088887616428813333260170328613241968834328023105854518318457935897771866446886340471672358633320567475408036281233949546835767242914569673697018739963123338952159495315938896644680669956906888830165270704888952365394856325989168309079865469888615184303807858676316827607256816941538381807725576979980806011810068883177896178428301475394199281348481936040480763064219987853731708695424537304516972340191061142406214455382631209183004790512498880323859590755836337726419805540782141288865087798833939267683414080450457202684236985291093010947526205455468404239658604069299844009054200923585672864532135584148484232346459308514863881796632628066558349591250617868986951050170329233728161362357394718970200955280113439978067575474098698701554814410839752232851006148951261429862819686287396294426121622142975913952171452676669868802905478880010227057693372697287415412994361329290363280355631022630701751568449636642765465216562166830006351413353966643880232810151024238742642755070643564262630425917251548261224222188670694671608607249297053264295515141003140139394518740496838069055153335627194605877395681527461256738768451246361341420036637301727679646794821025634196347194093483722527424050879883247194771377547041326357402082534484123196570892470990675601937922846712527450418458739018082354147975790571261001447941257620828999524855973029512654676416817143319691613792391072460514778207684296110245559185896556251559900252561675024275731057996398434097818347825815592229767308722176449954481843003139639949103953364208887879467274126986108056606925228988794205207767977242360769703208674520449301169571526247482106967328078684205957056121133417641331491157853876262341499958470129328221530958140932849512631022469541060470028318220276861473904443598782771801036818272830514078244736770179506724065928162319526827730246916510654811839550115258140322513620382966092969903789711798390982655773014597849550093794170026414218390353317266405186140952053598946226676248396068340197729237272479016263013289949905140488237898653030946294593484015701449110829965635669536456691121355813148691681098011014478698548265236906258571356171668979144407265756078686648815945889805559590070395645172918720228057092500454222607325657831816218609485775896876478937596855602999236118252911535584951338153647803828348547822132846114323849700383992897601148529688617070552673820636359750976174138911527011740430442242692180813408673889636464806589287811422877628524238391565452478078199681345779626015928603834262915541479303656127115945215610540783885731298793648052420654795566789218311075724019757510643148055185955621629876410728008772313759134645734511760331587368315217297702190494771028037351700856043747532693680719696674982825819736570688354224508128980977238393988671735729363418129643832181686547789533545807326030947450041876262988523433444141394210994982119905079628033187970248230746248975489304385269310747235256070013492505485913562434361453503286794867579694791222531459452982379953215823546817983897745072678435860695306953146216248747521343891477192495208110772928639946644855031909508516253555621067072096466824571032790546090155833348498234439546545253118515410594425322701855875105738952696667090771312378075423678970674407120109401587965333797837296546013092492633112028129947442670981819854008016348959506402597078580837156131493399229804162625071667552552979383179244117733706738737092946495595572727294145646066422073619105156298869276215917155628091112473162982136293745419291733791760828898625105603017795490979682649805539738412847806975676274363438559437807570060582273836054969805285985317758177281098657385573956299555850262617995071886107349898454882686194226433304878221159201837274586451840041638089169333581028034454329196294423616175040667262146855390652783018067638465322050528070804347767682241312763477078419483161811994278383517720301758891675786228677744520334974223235952831196511962965776224201513165214995350414316133912601676233076301320961271111829756954713046440259464396887253470611781351871039285373125786505488319914707500203541103100250916696464776960552695621310183089541112324239857222256527346456708696599105844578474825578871937559771993927858437323823380059583193584151187513927532602096105185678483433491936219630034152895929693047839849876028623755825362593819976687564493564077724524887829726697161906628409444167955701699495625070833282104439667464199345197280069581302934904468978903997122495131051466292281326873617580838469052554503862651828401199339326650835277594077418668934565273881820092176335692144581307117069222756318444099957810881533676824259822944274222228673389989687619395875396101199145348651333656838485800528363884424576869138936207210195698313648568576395967672233482846642661047338047556578003756243919316409309378549303348717699194145099350264475287366093437329686407215982533467741944697867944709479745290391972075924986970433954561015680926679613643509220080142647548712705430628241447519012260600773306537611602743340710014029143009625537874489661781130913696208043065873131299451183783610210362281932061075471589336226697313578417579619245380178169943421916967921634096801248647135375838152260481054024276476088008973287699211170301980611817856473236537294061445122950369483138837692307669098594569204724756380059758449391578652663516050147703338603009882195557146142007562623445687266633983403540767072663296779359890758091691322255360372170344655665745975848076063665190602144053432291732673792633584399078657747192378900179531657616102457232397489656069161204322938572240648185761171174447309031034227417637262422194587260668751693580678698209822747648478084862723287352463280475116560348914148719112243557791743725042327999798520606914769119184965895185540957294688943112465985053517563639756143519596969324637396051482713967368840090085659407034548490632194225859350227147463175905805490500694639377613822147087501694327833576979974041794889633221138291237981490195207024207259842315432990900713739930077973782982983199085261831515031055209540574356467543022510400978574243266944762626287663342394051161606816358791645405146784481614284796283405588942846060176856861663092610483267389647296799894343980209163619653895649617755888785385065673596289728396523047026882317726646746720514076084901252143538051948051930461767864056979420852591503446063845215080008673102445738385491465908662564438119650769779258937349877275876882589966558036127379614100060152994814792991557312700594536595489912339198095257246395611975835967583130857088638451522709716469558275767386056953567136820781736477115003138261509676368508310601396365860126463122158956875769205892556728990970385767517077772243142696614754598114700377944629717358003947301266189005391762298401380564806369165708989603672735464351700504255157458071341436457086088336388748006222524084299609345377486568779008867109058418445335661175831173910672208459114260200871082874667804456001806328712686686365378856735132518926538551669056191528311849969875660115732792385519261424127795864726750554578452902766672026841725106710836408037855443039702991536710129669106441640271063146858046104732252907300994015007405480722207062483620672479813613766868643449257692871925710021369768421349489527676742090562732901734624441631080638042940839242405276011304822737041872132820633368157491669066112675820938053922540297218046867381954082231758437434590705279238128217191120883468153124616823557145877205052476164722252916628392598812083093847282592485070257746300731117549167646616361756000443054337918756769165947591662014409117087305595071371036040091552597939564943537200418383084217416137223950498346498484503702394057299973033604423760197734289991844425645911597287719470531345887432302461028737221426612974385271135474017024087791037696987566343759273614775391917198528096125951813041372332711554177968602685634752260833649605792810010862311970315005995753544073578384573666473088225925853169329571256056537055332612746556720299587074709528221719877369157709555643207429416896380621200986236373606212431542443085411712433820249119746567843575396336569073550031422333610559697827756045157754962940676033689807007572876460000315684221669424744563322962181847098761918346887035989880514906611418853310450066452820450925945230797664403961421261720610180021957926646510560056113392818772298094233779193410280094283312859740262008274527958312439704186476944144177517312684083497014500806526816631934141476713512926574900019176052951815046048940603787244680312014065517536207773530824571592926212821730277970685061143040131584003407834727140727517258537171336488946708202858000603175676557245411545992849984936071046076498257151588740379095823251529282994955389428977438977420591815956584668584171862635366407197680685512754571704730010830463696310944627947536426611584256710575396269323935592015792131076540026325851350103357473449001110736431077457310287685826073525599983638503690441846482566692129272579706860171158997238783246697559579727675329608043308559866383570566467555207468666976063492782323074548090444471949729773864722206036524707440996606855507099308090884461517117160394572838809154372634161728113071871326341372589369434013298195928001800480913488255681082697398214849628045754219422408958015318354153451957449755205359469593062140373534808851540803912409976689068426701127710498676283951560645506025226975797042684568623102177658609126946733836705210795135005208024547876175867861547568027787948472226700871475557792396722072152104169390717648044529749576128333185176200050657202672891507872928310171880641256090850721879040698075831961273725510643092876133527770715221487307014450403386345941858996584900371692005662818992131046381171845895464063790007814533640601207832360936583492128826914709990539770922289845387685689620538887297227120144268583301227181850930723370985502014051568101628082219949798299572254639648048195267426520256578440211908279108573439054805223908122301185822879521400591522015373598667411684287968311124445434946212979818937146215466689932741763645123100878359054045743370911202861910066888710999391427434682407800227458212307380647431650278187293606934195410521526589993166823699831889594037781225184717329505573896427764056442011204146876491188712645528512535896390939218429008490811495315956815939559703110263564047116859849117409734356825475296061461223827552980761443957447121614173487924559933075915112880883033946147202930017764630916099210662011393122884967167650142125723428685303693711329054780727296035897844719192004856298854300736594860561511168285809342411512577190294497064415710975181900605567271470993887714371539125868773524271652525481889975660767728849588480013760697002909996432343139596992807736691233801862002774831678515107939020860224209118846522820839811163878550078966428486926205391633422901145720500778496779668601587443165851224382919049458257165998322099240716356196421245716811881010158706927780085237553591714889936986914338557731318281771681839101898531009979154482090415230043287937132412020740706155357408712415671915893816443997668128000943979733720147807009012816540668142927109129625124919687749272887938821154423499610907474552348941510092836352955195800683444244667210061835151495418039918268105683426955696312260035292988814557808971338043501953219942027787466923442870158377561354550157233292825651080507041080283934364147677356129799991802645988780094505251217010827900221939762774815515920385880951070381423430482022845062337051712675619753712373815835519800744200403255214359398356735030575111890359188465288066183436298147228001216414328777902561128315731333026065512329853700908568172830946995958707947845653222440548211543007515113207161559088756244707743653882098481035697667791210930036599985780468667525324837737882938479534661552007034977903485512154931426039656583489742046369658559579481611697802411976535943862227758658907638671193495987211805489665136390059129896611285297474883077468998285989710417864210596131906231238578590872438789655589899362357242403295774282994402547299079059228964079131109203653440773082519427709477683864115470147885106443610938954055244161073073255456912003216342586215872286988289134960476814531253205803502938389551229320850249484567501131156287618165930202572064124135071681640712114289484125429262577465487976646830020170667577397971409756667277076047857444665358807577440664569849638337714278645292169501044982397084440809720143011518259546129938521381260363696064797677437185130712717064652221630040159675093849257548053946813642266520337456025796149958096006223691961494842147654038483454009777962539483697281001756043532597256970316675976074883100667407849735308879624719596360746554495768742953524630548901749900531454496816397734195521614871732760241638509281517995792332871864456522494725638183746665043438201418030570408487056156590736376465883325495869589354501581620674616735167274852730464398729351729214004669055077494158835845621766783183057782220246607549847178416642608320556525654394863221282184031289035802339859040156890255385107161567585776329123567446251560855732028907930431939854679208141329735920631282078608321280030602179493959536475832355370563675631656764311042186131087979337493018038303087110462458099340314291051685366412489640527394248059620969559288092698303839833698815186257363922674298669811417769253631329899764218424404719280588872505018247331327473860483860346809655145550697686523736121314894834117877488398932951220423522032144101390336943286510077954141107602050233423886238393734128811655211322514426115649405512149046691907206613767834320203946527770555975748004998481582956705314352090033925243049387234997783150300807203662263101039908093838116089710624780841914101257593640529170293210213406359424284501787569655705395508782671806202202755932932239840175496507691877740277982715076371238713865423093865166467006818488227867508142180647662709271243492177352277939142957504945711334759327581886659879067535852282769032093182827790407087913205964151889266647421675372512641260783911415916223918062790221415017481421348500126004798856432368808110855888827694597237346764073914158528371709920668836651231195449374864871831196793325070227126199935308568530599401352831386639037050753360146254212338149870473362643846421499276231451425261650234137613012708558281217634345512790979724673928393309894408082467540765659772634845374467544730095770729209828557708693093649808627389524436037635086045572932815193454661388391331056259600086534262267599458731390896606148925775423665081553066285881476871088198251696833424375962537545649411549026893882405068394166560483544743871757114070581954187929200711411321413710351677084931516714173372994942185018747313486409389222434320648691895088762755785242586117491808484153770215490802984806568351810127579741510438783909073270771147002046743104647670829502754353874230300238207482284230578413805377614807092629821782657064381208670507106642441418860768928010272388066363914468035131729214643526791394631239429931961977525025401750902706949230513587401564338183723108224717703053246801341220721430682242609819885567067531000106951547273184736669622950539739867849873217987813380231536399019082339394225406824087605543093846838464030988164542572432591313962734261989374444422493668529035902233130878464336742506533050640890539426022035912673608777186339171646282275796158969508049681953359378559882364854247303283782146406907762474051412252387920426941896731223264480495509080383422331090350665077439250064836446358977831736939663479795847515926058554157229994884315812278786666755752261309053515008124718704860796190412673785686084802785723369648097941903373025252150513203523484699522796770680905569089456442312766116472346798825391572697190038534482541022459056332192837776248894374681339703546207187184875054837191204967608164262013421284419282228836753207178420727383396045276529643087115663062450269833281320954953315701591269347948351769373324997868032120245628329435431708400955772702297332656949200219995317317653337250033049704373214989556241111147773176354539748706624029413398433827331052823548315100065369896149739869050305240974964871414964331614029560042880494176599620906382842216753886098326139735047286197422834775447368634916042825327729248133540949504594012493082692903317280758670721717355688323167581679957098459831341645896673671344002859027703069480892069092761707442403743212294153015885826905071120354840308232664848242436005737734629064141523112852306858848544259018481233420127110808108113336673496388023733593726888156362450190537524952791453913166014490963021106970624412562887425122443108629745473319440896686249841471835693658675044268411893916927776668796167339507128559400200435412904905653644063110026581781800140825635337818592897351025574312893641652838788542975411889484409841968617485677971929992665549027915809243812734525535729566046975918938164461934305801070565285063006758910157892425280375515795448212719716910534133114281549497975395040667526679042792047542675178476117095719588666822819115179783709704369667558521157979306566001431286691236759744265327427961159680971451714524605863160994881740024372190260919696519580378544622923015259424989884715576785953966010975902143157918673693852086436313722662254485177637539414228176918029139257463604666036394674979003757386336027331395414180965698730857576049641553397778352186182517756433030689927704656266027530272423646594767040320701765341805398515893065694062378724499928019248370999429608409430173134312889001687395207396934475436502714854148644007290767613001406800642201945073402247031794274304110489155852467288048230317217716192539270807122393206840897365769026242284071420277993253031172628304829102091054332959850055364574298901407864707963106753153900923085629476151210027485737807706286572994494211034218534133052659165509379498830147438016863224662878531951278330807971564157732491144468663743400485479274806794447342104935486260122071946826697545216611369027683075260445425102353033097382586219213368886033647918475888483615942107446239817355159937192971766287342063570347107798114773154423071418738546231276517190198721205737724975970332475582996517112071799891015728476422620939545546242921998181236845237764175436697261247063012464792163003197213773872001036553535162233911448840449331094264452950836256059081344497944371488160077513180319431203545376028365579565547745704445860862537299053707862772273086641176271686032760395576902341162789688729855291878380101264944885174117741518901505593063273643346512267133176528814823722508518407496213080041380875228736758181363693176068189052225291460217250704424223073770629197491429772857493452668002566266577486427223067071195509081790510996760818041854871326487405586183096158255195227725413546759177167210926252519176795130903321504585078955907437849656323984600664134410063262774014771916382477590707840421191090840561633703840812162576546792797153380336697310354156419600475071319005401700479193268032495897733054598127289251755224230192037443202417933924638168185459914278293017237468806088531913324578575926641373397889016081345937281434445872752557346273759661023409882291625039782353436708429840917720357900515160517230294863021152528171445885006641694224141936222269958831213014679045438091206185030235856741650496476218485241007997429697581604255584105550908794572044262574164053036785826221171537950542768679142314853271041220122956275769021120985577712278502278514545747315253427717059542010813409679682799287030201388881971198613794272138411098788142328618484136162074780063436283463827799420239558045558286686596649203492910565669655406918336894308815761289336402995387971794024853827451076838267499457651063083105101212835575056978499497976477951421137006231001402447817319607548032609674090701057844875163663613488210760609486958661427476239571562888944655629876732907725692982025148426124505789688253762801204709957999718113004517562265450642073129104552237840233766881730419729093570299818686061124035781979663441328149584538689438543722876349479129753334264530534511662484409014313935792896902144776200570919719498099430493759567640872228885880538868351317780184719460273662176476367336627850899325748922633500536353215130776768788936114843042578271467750016800799116600213142353100969200709686285756485193192546896492353001687827326480864118889936726347648211066537128082953664189894438925924378555661630580174339766554588363197136814470539187401336350848937702495331696067939163472642586808548924182640713299587880912568729794987681657240740629440355935085578633028428431366939530329599129522869374821387343662281590860108323574260228735752454303529986517092843201413497989327284050665694022616344041499489007690504992952829273817439879533671466958582977021380432214611011963030217129628039316149646976753543576379704407621634550057110634995931984811757606385388340990655815993902035287954201083125186087754820957823542763672879928808960564580089696172598030745972740398182689386731958901386291458752833830733416802323673763420012353832370649806944024832385384691754311967109522811727811143301828708668333427904463196889295363866705220461475323995401125531386091338550049974556206973921465399460361314408678526566921270178362663765224070717960445646959501763131114232782867055225437858250323370908522684379859678376728488204339939893582625565413406419795863863001083612826105611865758610865728893272439172762354465152443953858457115449035542043291307193812352664228265090690227296243640241556548084605786445325212388024680615081150254672309488621559163416143531676825095342984857740336499811290941677256492636527936663854357727104945945945430287501681127076758858411521177482217419245760357581635718231114916924927989055574680990463819237706300374855727391545066916740246881400521748043395839435024162382324890451611599210305755034443995822488383444571596989173329724659477300001742945345278747484014072271572123723786300711331789524296143874164759321054553555134497383348733895544797109969536947824102846060129224120834855163134975995541418164192192836684527114599982229118702811133849216007539186953437373666884161479161714200638346230524610183640105756361217755426873263997852749022037615312636100642349439123179930819092113363272623966405826236435994473906888088975480357443396952423782071872881091456917289237023194833010129377383610854439681458118626340432115670763493892929396119832894589756193458585655304611296857334682688041770493397726573022062488148746689326809293969407877683612181571984191704429841230401972014812699081874728334927003857321425147175113965125575540513080033663436217239853544008234104478476518281462550419653363986187330581386357896628613614149680695669564640038026791747210167372066160302775368471817893142492426366463569112702294124102616646763455264980818686090991080406594899315541178748466672855377343577775351715373594279001550403484672419438369732492251978174285956063982503775774501974596789744843179884517873157802118043974005634961673514506730568323350038733065911116827487599373500612814790567431116773033409900037259839442228710283782418368849028762223236881329435104167831395011124096610432640679217372494361533765113939632042404156881638553438193914564254708115262317113260403814612893410997035595721285939827269380463961500460615262009800093082557871176842159898493470802292565500103630835872167564851852769837515131324051970390258598069159453233167919241191944398455417620654524336656498270210046071771276862877351628890549355189425241907743273994533140362224836808257855769784933620441833153144963512786683763076401289234774940000250504006972045459892903616031801130267837024706467274586667891288121727707185198647780839607563921690525746782642038521257155097326483509502376037083665580936502951805415572884479932626765911920395343684720810436345554349382710232113782493087793450062591119429024597005755698363973746866050284255688366776797672877381191466702237201082611216869233131039006783907101685115767194474793952973083971699124990370419484851338275740753424283276079283926129834396758559617988955595388121411221285558743403192401729895491840999252064744649275913316087270578920586791525295379202802578342629855827205895595636812882836540629758758842305798419211634838081461716534409411823584073378281189856570368382900075164929109195197628168594172903275225108135060961465442557320110209043077699943350937762739364379972964377754844142095893983305960581137845956905616270034709625681091802835872501706384499311717052144258123727945277983353187754161525124361527077901794004538796352879281625410276723504371055317203216288497790187826582433179814866245850875150143691489135083507832019967308429973489228494165710830944712785078411129063023315618138403331321519908736353206078282593669039827893727922992262172357396283973940252698119011624016882450370937842790126825414698557097533775897118334207727226800864211139801128733812928000613216818216587471107696284542145273301600511362726522626279940125756891871497546244823691833137633051704825774386844661363029487349039656397141620455187389550913381242810769064661837155152623245928215183233966568585591826901230450121814565147832408305161117369732926059472353449072883160354024011068278618690103186502035697151195526220095908233513459833302629791161850200132939594020794718038272853792001527467419019741065968917350766482605218405262175782163766859141502030160979633734722017288125367399316496874264585605470329307842712078301582320157442404556300885781766016483625824373676905340242472100941513580683136034402011893922014338655091516057187081751435408454142388458897945764850158277742533080633892418128229717815681986840367806763346298596495305430161916750808248480637559230069408413693324786114349145191188294717571134337942647486410169999977696005225936741827867377128829774469414004615249945029408901749045828162761501207894224086840644766736527903536516032041108936680975710801411321633611203851258526352032691316425557122245144634840781756044054814191532156239444891836663194374809453862245255908684535129230231883566391777279790529993034295435120138859143866093232647988392075130141923366954352189595970392033034310818862123320546578670724350877423571456036241960940128327701572286647238235341783531312021552070323074086748231098601509793304022979409837002242894910247900236699029460763434121313201518073709639486448284886553755722911098788784003718537296799715350446312039613811291345953437785938126789039368446654585595166318489917629090369015871762651079902092112648402934188138070823868240864099379542963397193449958087671088941386506348465043505889983136214712433122617957363525310263480546263157351630909493501898815592323911598840156521021432480255125887264073981539492005046008748110981121363333513933635172592036985020288423427769181651598411505631878308583773594575916734163151479993956220834925093169668822788577372564125067406412457265623136671524025544325700814389329519331831772445435282210716821404761975275902167979682300091967965195503559390650952460116100878460777235386021156233248138481227392614058250324543869588690468407206937154073102933884399102230275719840338280334163382856925430690241607173076985469065702536795814588728474744278450616390897785681617233107827641325202482213979967947268745882970685514139795224305449358717881207510483469362576310906918064116599779738021831991836185097755770078551881596819936689045782468780919594241009251948321328404241506402999834200141505956117560121282360880363061884117926378899849703460657936080503662692639343233687300826778015490852692753191042876172194958057690447054624035771751391580407317942040892880757686505500303848676972279654110467182959626250359279694737887133063243556802479105196956732789597424249859815003246154584858388087720949254999639929110298655698637090058618780236339838151831019746396123225634104706346322257304499481803271629359576844076890673651170407004781777787105542677780178992952378529901596672046865485876630552005195460025980977404061695838886198577009826317257483319861530125138523464353438868850585618114919968860497367098504969924691186771257664733044068700036319232512836829775416249375597236552946994855948709379956038864150839075328523943710236239588245551094173510089600179603332907475529431766210477993574321826327294016322919849858623646100811105567331097582621483804165683638812900124206380310092102134782281047877444582357449358360800695312540373880660396244354274566188425285926989596142446457461402598520765018890890849912294871637987300147330577958188505525750900763261157622988233630572505655545134701830273006169471023514740562081234377662953571357605281606376308084765402928267574910644028346090984460921672563481768724241124507195325578967179052951847550311667328598125884750499302078788749384397370417075435123087264706795751083274205233102803634146765837774924757304396626191460452610827732336254563247875797558921186505542307698128131433064139824221733394789477231442534810003655592151071914188883971277644180543545780876528300567318459752246532825017264456890924636848253548845617167211947697157559786558449149520393887383541958585256792167588767739111148165613783648821154686109550072128148772008940799830690140321869533563721375875326797852229675865998694868724007136401143840565440320866112709201035112099587199408644105498923281328537589152477950095257750867866287221517157138104691923010849456210434849077858331254004589823272614786539838902332645932267753728722414321532523199811932584794779262666782706382154613374246594575578020409806597912933321600986194037669438302864075751562367345606823593254671990407989100989945515894593459311158369584052819708434281069191126221757367315718202861635405092526554951323403657209843650994781679635655031690160939225985279783708841566309931489590154397201533129415223629036230504681325630511068444523284804544686687273235149172670844285767764524170509336045055668538730752471673521992642342871226373885457385400104868845868176187362728275625580193599392554388411267433475973723968577325104991141431068190340080296334164848080357857012805279805760959951638605946521700069673845984184610973945701503637171928520972940204934449639835931229759010921721012340027765153346048978439951029387997621190809366211422452610737315443306314907034545255726754814544529507113199806463547319222876919962307175278998690617910577854519926094381896860480489019527156697530592148185722453406153940979152508226644520446641276877577070123834258887489094809119057310002029950288612555618145607410191398169506273363678699041476578078768530633510396703878516038968544493130726410598101794922729222592787559863073066388089531779344260860318237912786753830880458667954457693325198412089795744521020777883174789451756349725062409727392379302213691581265866236088061863773952783565692890426024319320847153804062657511475411603666774135333100918568901311658147955811060304605944703094370185565909332820549051148908288674008804360592985035496565187727371686129837363021645316781446986341051472810260545102819147154316678795934156098241919272389154914239852945729294226237374223563468167248677430262547540329485853692327438328142221630763009545359432150260775342427778201068809579254558162457172236160645692535829167543731559896515575110190284392561610726150730367610471151967303142450659296570739557905257195296837365073444182777903918157472249624834556735274067886273951913973165442736972858713789510532593359187569054372100850489971114803698803327698442316428721815132428291842221794222660545822548857811453607149272088161109527292276095122497248861354705136413190246726896239857407700302005030394135797658812728783611110094671388340787324726247368419964913768659504066291333320103487413751137719810050669151210264314213107213713880319762697489528795188874418908956198343132913699850146964360169082880898147864793932850406643288477843602287283386063561221177676849488565673759502521324744097526899727257220745040984406502376656772378532825534550074018956523375797365152251926390118593320684900692598457641527362777088990943163318449953711544619971815685857691286505333111814760870079109834739263529763707460907944339585364598417587653347233452531161797249695883179389160523592333426903236910550674007220796027100997456880620168067926369227824153002665098747227785533343233360711712052185634943370375045172465133258096916813003284902394824448593923547397719931212432658547464348483910598525383081132438168713551254969745871126876530657290556878264831756591818526075881901446287642329369290009784788651025427671417122313796305191820930972302399191872362922787705827624436151117880332714414593132786960329232797663527470234560764665923504944962452453561032369864264188181756978491780949920837970181992052566641279947323500722133172592943778495874743712826194254220447367689150455294045234055828956606501481713362626247999646152812308004750736782923149854369022971742700604162570803583345882879746662584007270291902041598642155882367343241708258370443353308522431759429071127752727493244120954212652537255484622195534085917393938268994231443543311006348242769695444424146248163869902414692261482469112221127638312478403232766797454784183817302401682962716295187171971237547153895019270447532784187853210350654199107371353720161313673856983811799178859639662278906859539529842915116009219418958692691706147466709321487517469539312511299293545501494692101422818111460518344000874914965013309961021997472518897125941801361428181104532604847545266314283241621724813216429268859844410670766053466897079555298758729006856803362715151444323439471944884490417174704265484751314599693836874344292948154035456834131431594826078058045262816720235582015658807258759094682487689700040246935100249427201711541785508979098267408670954322947486049618389826417838963426359381459230552959458733176382738474212776858014932978528901394307697872768889341814390110168414356007591967120189046029404049583721672309152472331550481369727161208398010752738131847193966482367675750066805031256059790234373040534284903692563680461139474958367979218375072618165800241103474682725986361505723084153549002869770786232615461585907466998983990622578703204759473204549798077644364885578238374493109198121198442190661113147323861671724141026791950775680694435614894728294139813467789122228931931017074203031883040388035078760340295493913944607396914442011516744536111273876282554189767665284078590944830239069592600802676771049157031591729152787457783176957475448602776002312249251569342426240329952200520889492791429224099161783647867622337657245038366689106183153142425698822837735753554990138996205373658009579792136841562353844288816731023883259063243188515203796382608078763281659673607271055427556787783713089250676380928488028798946399481297530222284207195727494150343924518236813857943529226055813146861254607118058104534409356523502850903624114711299710171234206425083241693859825892411946104024072789548595786678724879658241792526383819216131123729250328934947204517648325356257390656450244243284401113880091497089089485791183870431746566214141229585020971281894512026031450185917397043937423374922365345194002990784827831448190662757284918978219077947574118212050036814805144889671770783272177390169453428233538901993833866618623163309739814186383509573612514368781862355121076607150194027136359842448470143200820070538595195032764593221621166292236074846291652846573832893184762910812208983869544858889984829376092855599447832890921559267704982908656372021966005503436190347804820298550036258293226409052749952993463347032438524570525253448988118626993726657571723924187541300931799513467662888947991058866579772316961573185653820055258798019003835683623807373107538736414790862813729571480132188998071300735808628139551178185218783254320437320147608256936921647124088361447161786498748895756019748877688062196106433676454473834371311602774701808909007710559198471437925820047340386172623426193971027358451417385928738592674133407022128581020477658894552545766592362813020429927305054520227847012626437337002373880437572858981973802849788933219852089800534219947767549808608946805395497469304910608846622142304900373679103051258740269896613667146828645042227813646221458747891385897937194925023492194672354897782470911833215530403216810409332946348554388697391111201449952711226053890381843640411748443259751738297616414429643954279703211297955398224721333574118132202687164040264593581562943106424360993741724262944127776455574151506321629018061177530696471558654982510682893858400119555835308997301957176698176679169367957846665359447281884009045095693568282080113274980659380028053531982631821421990745834970330017915731758673111566326695085388106278216830459693186803521265275419813165129013712113613510214190882763104882722342493142367317407576191115104513110584220684851675862863145451584312748557345341871180057559958677326895719868371020398753025528532163657524376651442847784557818448343258417609631840331722972275731424328156758037173837613352463520744967191656612413866476331967415054827993364026691614540381002965764850062994665071796147573008011266408547011022992094744124921805618690547582362292279277568361087765813754381676436838033137567230206667125722769720103452728668286863614387458670378416609469009292758368172388747871145261706753300176175773176980366249682938646563445717995075741316929746873170868273528407212157712346002108883547845463647518085380673271171799557994038563713261520902792608710460500379682045477654717289589342568408518622726555719221795100338968220490364170263569095692257326144327585075197678436682743206116104672868525794536716180889116624202908042769560733420221104818996927070544311852108425485632621814699073656996413255089583048060417749137520769278379566397408503330652778963300811884477797728342687025400771376438452893886730601000029089657263685638789517365619641899923652763133721647362988927642508792596013824386191591019138556300847764200281372526514193832842041750781193620956402456210419350698317178082185794680890543031436747456733593185610099854634561729364358191515225054999562261955115974234107088286540310548831130617617210975987692023828940281150210148703170276483713745188143603477789619166197926294876608703683240443069260320775074288301714317228671951503957549558929828608976842795568490025649035926090784750110079328043150731146772176439652933311044068678223306337693582821656405506808202990147320993245409833766123867545999140617335169217911763028146608251297649589012245715422174266107736715531702359597173640583862919245421983145875281008896384239724027237726457896739963762951281707669497887454237947693907709622122369633523419503344860080720021817769316925835365374504710242408165900488537738181878270692950364015179786054100832011499197358871906303058032506620505438060203062414879226363413086458140678061246566886882622431227585821741972624567171700161217545050769775193359097705213212295897631532804261944800284265035276198245589951159087448061423338889267780774474549394776554610500327140630819167626119235084148897886449960195720555076084183271051096234621759775537324577620437871105914968832624312596219904082553204780583308032772439953213803398272011947654118363492588187939470234864880864790208799738244651505851775386266512969744902928541264125327462350031506082629264975617765466262736108376952798025166575087835744413402228943405505175776264281410219267269158154820122111476168210070206299090012549384170058559770567423970179657694134775565707642820449373069789721684252244944240575901039285947607105429499656035443517208033923832191702254665383146140931220528634756154938964585264046032808380612316956062475888541231858296063805485058729152752655722789996870994146712371532000395557933299266020604595609587292104229517568690392197100609511660776884572507034841804998039263347606095417452449996120078558742434689194460068293080102784068030583565545155015414613948047746232126355070246011213188844990300380420765547031699232999882270952163505390686870349762422768478721636104179006488400759896631273489595209778602394132347607121738884204393831100161739043889646979379523932381516596771961953567139269841953767539986933839186527402313435720219256468753878559986226945011957462619807590726643367462088823651777056301684076701475837135801905294131381667541183998256843025741316239082357125159596524754506150460404852155645764245448328588148122693751425776228306296697546978220658337631716718996505640842527505549387821689364906805618696229400686166867940470816251136177142917499509373019102496604514698258556688298310476887144269481741830722185512404022875760881528212848696765319099757634889091150190137608750327735061455099361757720255776438468849915393125898301924654401449578784148255935028667814760346342056219665620941405474514771677435844307476301140375341188159995216250903638907493907606572801446755301831108811841331983908516675402344530712988714988364749065506619959587473295751654855344322056378426994421343889546226117171500476940619056874790623016057420051859874358486740613711473713042493545850404523497319703208336532768119934588260139489932524831583290351574578712674266674603665939810984401322887978139380972714128529866296733542657718458323792524417464718443223483868075909364316509892577914883339186289395727516630766702833655242074329473048040232554166829663301832762695499490125456122965737535573895937096763533017358088141435521547131102950564928966331421070621414180673080065845216951402987469419383219749117626332302868374403501224307136608088431508239657959476898650900418424615414416151125318893682702498964568656166549592319661454780346924840100893299927482955101429934440596234411174333219451559327674362162732828210453386957992379841671981235326376769329051735657066588642295672636529258787277859687296817834371015357173477759332056050322370563099209728705715374443425524886698391955622447173895197738862603327978506080739495168895993260094522516073847076361333705975138187755789030620172775238239328183298429393539631516632530520145780871599959875046345922918708794542002921840752207543067954899115300426217083355724536217549503760186240694997704467244374913339845743551450349054045716705059698279150052073001860386512442184944004327118409780041131411891642516001959218476402889638162911450459765056513643971363887321788780589473878513417903162187311962274308648557460613883332954499248372429816153541394626211965663081852670667096627080559667884694986500735276189879489310933748911384103519172546922886665824302166916467854904514102972283352564723328898427431394841994638412539001848815286556141795951097044932034323605991905350321582513427019804581489785357408538606836522149523714005303167127256613904259029692602813625522189564065882808651211706920461272688658774555883187529868105735158305099551677520330371428324727073621850781664154537415034469954610293873652967063334743908829558382385985342244924355290779907323693780454303373366972212712356733121884572450247954078917663055075642425478693660949282923709055139748425923832809794811626854284151313119000486624031031424190397069985832686731994314406087217721743004439606886586318748867560059481652985335831596181362704091420510398520294955589959136983727960783191036046713899308956606960853944125715664806369107860924680032666190403133011556388519616447247078684189132915010236369480139438525292083781085570665180442322563826166055200456999212233873442326271821174911468566756075498424818391132641847540495064888576425875411153300393572291826669919876476891004048344944933474546076655144300777581436913042507079616693799518404444983447984089718270523846542926795912460875476670875911233484690154697800356908518736926899057708676200292547040130151486621792663483770908961280783793771112680671690702805543543198783325940192540390367145328390735622820702877271805682566980593700472408750541347610105381787278114802497826798123503944364286088479149624143027907611629341049895171750251657849857849104428820619854983099786928735505770228589475064423033632207594626085965210162039388637201082750923472818127361622501843678198969995679794815846136229423978111627668450931334983088518499154417201630811380679380598929801530200383498952799577544295596161959184341056817325116299662679183446423917451910999310116016268336001564476577599015834053120110156637801817623912257981409723319386579341057383474739112743554900248966784783345047842568187863720435367875356708192720431512306627854904227892451451521599555936244217816107978781202019007530474385672254087544581334412119210609346987451580285983736743200036301589864637595512971116897149838418164017152448257393742726956659112945894596901064583325540720551787809498576407737000621805806285013631661711096225332160213727805375345246594475846569431634168578994895972200494074361447082917703633307520994617603908433982802661143080127446250590732396984795880975049840918532088688734363518480645376801682774376719936484794079127320274019343110194049374614805640775018663965012797609180737867655187841703422715059951137296040195234523603343260924425270422317044430459462982918359083582613019258683605008696845313049912687211196645422156468704509534731081425107403241233240805659646519450312676464372297978272735299898050863847207062750127467197968985527011780646107277737714338372605985466115847231425873523961014102106737688509788113661585283844677093619429937074641610581780782590713708304516710873647211543950088655184942935737550957166915128542450986834166753614400855872192463485626858599527929352268451365017966831173093905863376036044918482564894310119116612614018979295007421270723075730427212013197907527622009592704366096473010007438090869292770983496509929410359703641170860359236025726914739540292488586843490231241919267564673939426252464889862654020056302478138892068098426653208682041968856364461779237604591008677031849130961019477987768042325661482374923334641069173924425719249127128053603484324767733693990104831779034218014725586019329768741339008827141335927518139179390256380596691604104990824802710102940898714890084284926797563540998110986424906628650252647913358007272197930011186979327116429778964689026980985401978197599734444580374660624265465904772515135407472578846785629191309358512885195270092377608367696868640857768099942584921056336801818495620101152619999103199181609086147829672441880711715693603189350109634841943207208912062297172985087509452287312904810712128801325128438704996164267328926846271282188024580734878729393523629690807234292082686317812084003698168287325394046803995615330198371151231748321161966280484700005270851399799601054517867749899964527210711714092188477754756599249379788611016572627470782181398072272341530074838657956875166452039338074824111409385473104477373642107783817099924345293204807118202910563876164939005304742268683460094021297614237867633495286308116285675158737422961989745076190278011758618728091786139489850875049541822388172318121278033833554997974296055054964293737845246102646823191741315417916412086136713169771080568913970480000490355723046820100113444414033441853786919594321874555147201345241541732924897337706814282511265925296163345533696497153575457658147505213074693567723112174539731418613877667422654365686381227138320879348460215782483930122494365213271897710799552530340781632134086495061406488131143021121402352535955389373339974721795952421519330137795092776675661836581980982921637788330788224134420211026126043924501731143181603500407999093880323720495728482838644723486266458785140791691532736408864291628250726592902045717172130822389165858406934563719668953693328985467436409875148983089301786007436509891470055223026838096307374377976559706714524562580205177084029277444778878005998846877286608811438625421399096465277153282369765925971654748552736860333121513021407339933259533906801715208969438246797290340408310039600358856480909680413485273950955546870042027399063386931183803081479122421381607622044775842826191349830954216516757900401498840174470263761453325533391298854063488550816973554284558856330519879749467580664316330292823576098894222033516273099832517119916075637187766017826899785831474054211821251263709060194978914788067719908803684043256015325156734611196142931694602033312460435704569267808448406406211973587625203476148193548273563692305389924587774724230277006928534718209742421454951236933960290445269547638397238372934774469784490172493661090271002911902698893795948566775275290780999148816449500200579589087392130150121627822176129508952257734511355352276245330504274816204522501021202619988547989902459160040246467089523098960054296284251202566332362026383245704714224111657500736655845465279052276040713254196872196964662270737205217467390159283129706235724776552739075064573146065541708940842206754750267540178904669067772452927610543461140157722358406811465837742544125629834514902171716404470318843990235844419966775755651405689766179594636889811203337748834517984579974952920401036020816285048351304037812397244460561114713772998379374438039528866977991932890452781461432533488196348501557835966130689309786424980744973329532168330078646330877393851447706414826029641609610087081611233394535735011957522021859658523472018865191789210472279881011533662695996382279566763347725593759456912666080419394492770119208208090136261217026947395663433833356470403067419829012904009773541944857077337528984325602719373088963762526625446738757638777778333075753271410658812083647112904194836966458228597621436068558187860109444033571702921080796466838417856299958355523632762708503288974825495842492201408038969648887125691319833042937616669680305424373290238546030075732350677874460449501738995979416394867144584041968106745420162672575171135551761695468187717497806799695024569681650287969987622611970167586580630465920513589448128338184475187107100039887261554794210632521401224695182103585632641125614315668298035652855993360059301734247185559063921139824205405595595191591482326590114520122448177953780999133143067648929109749376797979254953167306524791304407970313147195250361665737318095887461897014058236518978285546465416411338145587369350724473884887021207711255375825339235725646737482095231942124716356652990425327930583791176480447651623182911446716596154770149725752108991186811399382370000028183743998046092253907621761478110911202507200575026196088703119269336418176325253687304731418413253470918525461293468085775304245053823384872041647994581404294399759993157930757246737631507420664400236640871111881009729482091625408095390174102090452231751986727047697380790802177392214976190447144525156699659204033963812171270981784714744721224385491683713302058400806855936698512239073377081952615578233060481888546198484861083428943225415545950006926823834811097594052060391745873310688491345733180108375694436566921242396440365233090961789902056938238124208114414136787819448801031520226990514567274974492052037752251953971524025230808528011039122617248668559283225297556843016758419771347427480401625077310513280044562996371535819019713826627343977608360651128315221150241209665042223282952429944106493864593344648082705908179567203270965175774838012027260444098814031107445275782405147631327053270361608372048713616534566043022095408812955160138599350086342102504000810513043069934386600697817008731853685511245489258685557540033714030439310726250437169765411456661074170275218109513960223890550709521895699116186992526747783857235224531088372983183922849169515749121954058541502790500335125576476898159609935380894800133314256618722340683511203131325975967358498914071332749703592282379853031655514015496142360902400562369086017506386886269834793299564850926165887737406195881768930488960963033013840648124999560456791172551232814087739443941134551740466690255346759375188699944059394694719474911164293101819306832406407623620362145985749341260035863964076582298134271464010905264203044510572049001554716826151069313988203358231676788558522853392185301805989907328616825395357285624934234617518701376157270450078730304696363863231968089734775079200833904514362663990525600292891220534119073272842258067931794074396007725193692853773840543872680160153064807973311288536349737309623595496604968528849972716622889187682384065129714123413553734237952770057983801677339297733903938585553233338547799493669992477482200012427238002769181835871949899811424658041550270689624727320450701698849773607015591310548102196533321957653517290760274072264561770632655265981041963965688226973070520253361296178433102016123669467501700550003694768003452986114045938829632101929857811218629793960199850009394872272358001316552807936177475512901315242001087644667956770516626238512650045340059724940930699800872919463172028148935796669693250576945744895343642513241573660552736854008500669327665005429886276767317721390403801897579802441133577443098330124834028425478759664715811008758097974803081739797737160181448736783981033529348147157788976511889081910028365856806582557855890270255483094280622066136508855822442369162402918403081087774875700613175610585497471179373275655420519144447617165230237156783541270026729808838502148832280989521278548321264469687287359133741878995978167940343509657129920798169693089027537486993517159959630582042363060329008743803715507196337934549478113794830590893145489907773827805126326341161216680885929295897410452204743448080595886738614380045697365253846199706639667862838304295442522744487013112288092613616611793939645170325629057899690409143423287218532997717192603657071885721709401887403585008011614559949029342759698362097340562344100319872144640656439456523302983754266017984679789891547589768609298166524636592393740295094569771898174770438280287464882881116616089388230785191723651708959754333144984722746468267789562671604681778542238095448359635294330981496152162345159478390741271895856868330227666381682217670109755075239419090829708948790008569672606736395246293519364021157455165554799487249740050493509489038270208036066350885351236549515952472850482194654626375629430724984686572165066893201380243615945304137942433425713852167085468854284300906037848570204532171752092781207408000369812023270683164460171937419043090686949605347250729858254904084345122450934849027133500827989996580256172759702479103498885371328575781801606667843812049138395641560506073178365562690229462402259050533785872085485685876204239113478383279526801912650901347195360209337569526423532791782218480975098800722530289111088473457026562500792234399783116851217862888074529638789392463190592240734496793629776444134826757181176641997396619900448311060274321634509716735846391391028989826082061496165404710553715898554032192921774234854819674928494568207042216781050984760643230650707230692991719564345171697178428471773843194554289860819034447908778090458512827668988033388712240044478323527039253449573752036118577786108599211376774517425485305288920822993838022423499358477206450478771746251637140387055620751158365491466990880268616164184345352668485872085037125313426241277074179507078309229233785805063020220395488775322120827428594950333978785911404008478175542311102348175214235517445221106570186320893993263806004537621633804467952077815775962695934543005849185847607534391999060824748676502258287648897649990347562004657197669135340018621883119815868016865828029072691916652422357622378931296625542971307465833998366544815626159456560051399563932662766779048587175701459350553311494426439827012294622393673559183848911456872520012992568126232027091967517336553245596945483949526995144221855470274575719136799356742451690115454358100504008792362097900543326666820487984243631077975199471894054100478849701742442117914793624711285783474235947637443226877520286275589264643525119168096790121451858873289221880608857295161300880012738564431465035189920112340033382361758482366661421542978772426087852353418156797079577940816603194201793308570461626387607405512354288756733300241559675718871390754227217071148047429106346086918513922744425267282876316149558313496879191387943605283517469344485426369791304566781386660687130808587291185960528011812354004473665428330038075497377906013954581661764532154226102433570781352401529761264745095054150134699481508245236899003606572782917984516481106168997287960843773182635457261140242664779024573628726775362020393616306238096518928450435725127601273147047774200097922692692639626703388030299310033642822022092886849429028183177037117059160784759350988725164981887104831418131910866210845677763968881660015336349443822613800179779281304902127620620553962700421407945541474285872354289777062746291827090413075614549334220585723899477969200651261622017865857266075445279962347470051166733789574191575579640996459605211924446641210036444463163279272542740738376783495439747608618974653614876695436962239961442910001066778707697489947809625132745344011485608139344517140287742468466348443458649677836490649695630206984175448374307800548302460397552881871959832458753950209188320326022371390988492652430628712724769424914760877088862448883271885412916861571229260576082871872236437746446862851781969070317913475657318058438330986991405130386938432490097001394666466429326759661258150156738542522778833867879998511881350608124098275374688405245696659593035380060190434108668072626020276536994698269676014222577965189733006175652663528080664385591360321365082872210747188020371378631920249568369645533000878702926053166867958766162957590692655226877613353243679116057238902937828008664140174191838161630933688494282991919153659608579390722209986265309647786285324103620923629586827337672949874856005188670965239594251758224419074049690132201230422737071816491475455443634558178745301305933307103214419714450247464643628658514187284677767438137857041567157892889771111048993589309215088736396929461961132326520190512367860217256737151819173180154301845069861268142229336874119112483208978939961453076723360585345397770764397574724991949238325876754393833344839618796859166079814332614586769287546008051953726045164002561921719638756834298193943522220255596636586186824314635070539478750923750463869787114430796510643827173183786577733310109444754119547340381181930570074504158020086215969763246919680806115047192068395035847441555789543150657374033025803161445253511548903300615821007530132740873128363655719043295657923755187823384867566270405797154542531515526940018673381867912873680944937229849168775115053325391319685401893733167394266425726336869474151906474227004067363726843407234447370445385162156927126864888277301834054241771745952023279778700206072151041835633642891427234376416017772763482072905275176111522683807962498105019796891155123117667634906894648044234519026850653893639199784400188092914840763883260468882830137560224743298870615363416630064761258092866580786275735409047370388853567394681227553305683113608409763296670014643054791713001164638126365915925321011963222098089890469449450772366800137385658586213538015139851495833013810850566018618359748393139122300388447290951007055831280817917120632918314411791061393650657422751585695509812318233929143048279643513474618486672712961948078858576914113139179963417655795937678531917181904308491824382849674350958269590785853159871100315302939323895561334328588734088716487859516403102551213481433520721188626435863726135396175455674828942511809760412991512578691123841473150255079069351140033910708584398332746733228093933370275914703459946438283665504809257420810391689236166569576820178009225420093965241064663684912819267427443783411567610512789282665635159640738787089746711771035094909951491236987356042805341372530315550124338209663907679366010800815430819225771052644869557328698969467644691913756465295021675095078358495133714867329874640890171357420762085319218222844329509757365684438561664687710521145927309668403028441247785392976772635738948803317999363123244384819212302812482376191931153633557449924449442791244657409479898856429085990961693639409219329880892686202134388703919511562774633277760905595540985953434451906895944139085258290011828024422069582788810724371271134349341295783255583356901681157293496779445683976529180080471161295586757264462050328002569673446583342646411030753702802549797911429216966310025417817581856973632447525296157511333035962778039486847430311662184387885616898372406841856573348984996623298658357250162197369451457529097699920713496191885930846962593778662660074671107475689268376487728458146434258798967349007086765053879639764083314761128491283518334562911335216069646394326677343189193365685246249814932663535761776354973684319266364837983930600766741753681171756777679255310345367021751408050361707405176698950507272595212888799276961377058744412366257079360954550555379651848927568115544362523031858316105585530864873117501033432440536427107603795385802368710175550926226686070485323674534844478720971936042423895794791985825430291336375183033723079012964730922657063521453922186756769049959813605809100907491928764454363680323991205310067487695364268614902117529955447481078617774551786645315411091751978997173335048558670401075703696129037308646788359838075518198450955910167736994246865633479392829750573399624150191084733596314123199386959725461954789801461557072241958158351714532634599529588693329796064023816759278789215923276765005479263679752423939523176071719152188385156379654582409337273222050882026329004220091691906093631134997973535348431001587765064754161663854761059806721346342931566993729314721234588792804427836553044517941519697217867753237640186036354795843303497966330781775349729939206708715419350476852096822690620277116704505071440353617591573445086613641417104127017698764154999658537042621224296307751734041874243722802419543948580579722436769008952147386219972117695927537191486640680506377502966341509880618111320041825438281660948005428002783420998926401076682234287382092537287341290647029318153451403151495860764126378314899749448657931799424680687620788041720385232124679751075744194377234027516549721543310035909887918908585091051029679641620346204037799571860795816079153174797733069136226739974394001943434117476017245648616447566631508332467522848729990109876624189650707356737244371674949968036500442934344976519640940517372228785321530387971746368561872992752608330234124094105019098664330545503204158181908591008093353659786809837313013176891996525043542770122476487583707511697752997681313064710991638525514328472730999842181805336299160021472262929012945560084144689503816771935124553723658975216926827867639146072802730349426599223324238973905871000214957903275350096300445672704063667601845996503186705298821900900685396518342953959408745500825412246947762396214985324170880028795283786582404628111759421628829388305462811174008806651019007835527927503182663193219142291482606836194494617693232024326105062997626448036999323086718300112438203167143773009429296665921800002592268123074111772227510729287472799916993569076663164195229484190276266176549660543204026841615771503903838223542085055521045421854601969848762073695652520974585773053573133802829018184202024817210254374553779222968083103484272335861237618932496700878098701423889004293197591889947288378200953125132755126294438298369010148822765734428622054889801960042617272469945172819413510962701774630437068307847660930524984297552830448226812660902577234412696159719470864313993643047766197017276986395081825157026519442067829420478232159137164953478286872490201541842273773637950713328671226181561860611140963341485733869394256315593930136110833554277226706670090776886179237879276321552801429605035892830027655770794521143511128766837293039469409537652544024146941187302731703835132482175488985419095011340017046909513278714585225378771375890799073302713906285618195847670967820086669562900817878728965684324361378435592117602704443637394340698694154263898093536175263868720138791758111583714764914939704149559060021178900608883933275996991719686135592849399944682438058826913589836976330707748063417221465783726470223301802215860162566093861901420328814945616446969227169878328310370222990650783988842340536255911756794565577447764070116840861515182416102925388241581039777432810984965603216557075051006563618632661968168447432430552716978868000571545146281248300012525391171507516574733862345675503213311788286443667421197421170106389052720384532738688842050841818842957188022786880263809323425417995617439231162266414048763515726786767861900496343269572115152912146251594472905036650878986828594184199435088133269795110358734487653985783987454195569835678813154862046942525653848427922081137329839700660894019690430354662991338886195734570366601198590821298086348301616874219531182179940111502143215886376364969144685553862735011249999934615455350817153512244267666770278564986001878702649641391125074377962255504709862290157835465197251419570038028874020092818195790248185129175279819585546863119776357952809557647855888066646952960315755213606533823095584265249216856342218455182162010395114988206200707489649015428234821359579380577381787658593307499664641875626859371819842790606388719285317763412959969133529891874549189731360912926030479409736359278185327668721271379961694706480817215273810126903797065559663162663279839312423078520807404901995761392721468054510997714363152832989559012822458901031114903079962348972082839299423618808685967867243950404213886349245937557580113254972258336911517755635833737356362126894302961242969167721502748357668292743824128390895137089842392005650912120541460352126178578850230262772618547374616925601135866118411312307957860481919721989831438219993993980613654057073236761557897107750293464806816872795413101078478486803372627507156076457387404777424820218262543413817415115427548559659571699674353803992839786952415349021443064518108797919888983414672380797704334640055156035705601864511108066862545650092150841529562064908490641921824194055942984021060093981086814945689349542335051557171555720200575562725256356249992652527739194833310484510226504370451354751975748580197393485089633901742175573698190540381525591504052584164578403880834221418408441899621424868873299732549738597044819477508098357312046280890648760025773058543483404559031889058071958096722497035240822316370696768717113885166816891604088052274490648091256017004072737818500376135654490798999393371448237444578120346312876538998966637734247210913191270209119959390337865824975702491154364035080405398954467908679429811215000595416479299681282081293278828495367010101184253169213735961462687580358411677794394323921467996408832591375213778258626309916980858246547919263157714791989319633621798708091725256142808561765997710528759009444793863814558210689571512954864947906265728418511633345036155061465998261526933031015894326395692817797190894222818404062297203975640607794568808735598759305859926067082629441359493687108419999724730680850154837790959763377828814473187292007823410817916330135450139998123643653004515771359497798447714918493145981376143670144070045228940867710532164171815969367131978322218843132774016764658300444345947936630223722514721586255202549500893495924800619463081268557760922282700670512958117675436748414462971224927801711613171170353540665783297211404504310801199165449805043704566822637398081363698143122623980561831457742520564507653817519572486401035443218710712594760114237709227304089206499205425655167850713098807323715499935206608718015100866651495264098794315311697249461209433111556551696571759959296187068506526561591134917711356351032552545420683855074799634415146453696599411194877472804306928451847232714597160857551076064251531718828005579581742550990534238481829482671526552102362800173772852123091221902140916255108046267417743437594598365423524386705540531674827586927377817363160388884835470537165431815163279492446141516464461444405194650703740554633073763916184595121781091021845631315192122759124788090566571362765918727722983340208104601811060076186083730656498688764373693885949210096646011447958292294135189520646413583309168619153993743618168896621200286473008662833851754984747379117505663425647171878006303750788078906542721762465481843160708239703511583281996264327392630532536574492438547109413386571009615055481701334616969473548579159522930066680888599473797071144646129261713933781585786096851646515104889623888286546560533974649512530169341758273555457459585646610216548135155413744263342809899989612144905410562693892881012770942477494580402983951571876991053161798350796387308289077490806926984635348079074087316528963143641092481501748446334817988620672957063687083437262553122402095314252202501251664215916468420364319141762397204352472645533648197321152840244724906137591546819737558050625348424981108659121548233823954079326108827597735149937027559335944147187645400171810561678418300841081899934707108774232645027431937192343937598626780029335983728492383793063002874029729122783940903552952155881676946724460206299078207829452471079642592839794061841630525101839747565832501416549708092452654671083917805688636078876663665674012426482709303134941188924972588581533540683914184588080577519098710925967736525826264747671110361694706552652111719082668633811217282803678443950006622965593605555412659102452646362370419655864033964257573719152507444561169769704887184819626051240831772291546989547334494174113399686056558038216321469063362515897145346598906839337960079743077506686606298681079597060824813320114443541903424151094831558099797453609299417742410936584316392045492246934470470502449528292014019483331568185951760267415066243019207267834671226352788858363088075974187778034557921497733946721743142364520679438803452534387184327230454560121540699828064263944484973192924817351948791045406934070449727087515679402017750601070753035652001583970766992022810334327381097351646336622070637032592547170491076995846076394092376422919936435563557785651460248648142673023477680243017950578084064122858239453210571661980142674822519858597507018600282472426089476854151406772421757511465413709468296476100326498438890465050770999069721576847478845320752720148316085954319178345248725560533750132549459225196700609789897386421821610640025784976740235344660649904800641099338838998463691842371555750684087268711635772966671853016800113635193149531485443376888519733401941259960238134628477760716847562300449667555115486489732843279325356739268633551938648838602465132838878257272807090922613794644264616876556122451175021200084284318889983966440896683348182744807589888709846370286245714485578505479127770800593338674873210247904328800715417246534826076974125899024277284865634350913267444993975142621994119880965771599023113160306746878133040391046621208577815090427621779427493546265475088742102275646896715085810187866107850383205985629711217415084309559853153413092917698728873255072310916742706951585065991650597379797803793597284527470628677244658075505613774262664291329221405857925628642629065845282379639497092072413751575557446488295722595128211489160695360815008801714504678326436324024676618782750163256433403877318200768145701449006047304650925709177605387644737176334870072127589533384026625168836139884530083411271307283721692830548401573570948535361761575986805089790115948701667953915932725795874110927846920230527939398941956433879156902709174834987568139508687257158438139063413665873786711583781847411699833429937637827329427031173964367571625047352606712034507197509139288683687559172155857458791685212594368272801437704058779219937194246717509329413530171111255324382098844364834806054237762855147358764448935356567739638211596160113086901113388405111277136535221484229140109335274135643281590903196067831758246905802794075788493865774552220794176220989148403551714613266856442931190873986896878138244236504311603059137829892397484527920342410725507877280795324823957618844739342593462461549740690607521541082976414526172771630749450975161385405040050145136318947806996538023138277556183125188641341336359157458774508104844314077157000057548965070127427827112332741174815877638208866516275774242108376338918812313321699429289563625012009825746100357005877059353404689280116986063525691743671399037643763889243178414031742633895474834418293142270344867319004765145450751894814302139074212654243723671390162568779830052924979924645909093361499994224456165999373483341477361358429676691427822493395860852774836840067839262702478179932334781894073339678059929025677592581752874266013551616253674652669818405928825816604431398208321886549639621692336920788851853555606015198068158947023837607423450345009777220047072174051276374258425237871780950517482005604631516608170682448450428653797632444809633407943087580319360012037824618541372397032054703638903582303520438407966751121925387689178031952011949724325908223590288157876253058444772095446482504624066116660439210120591390366800181862206154342438619156589294053790736743522198088290991913725636428081584124523024545732961973177207885173147083855518983229561972488578352756107173661796522874513384138876117064319675568410644611426932585908692458062756288831094004543617695312308587667893757047129318865700048536432710352333704100357608783423348710402374347770550872609818676806705490412830821410476857505210986174541346260579061234941963224036406379189043588285640371615023889099382905373165941649618900513680982588968127472225219658414942187357266877839914524384227536892957179419975143709318565879153897623316604204873474513971493920191411809461281214174141985076914793661760980197337342431429767154922594164187564654590100046327393239669494771310632257038662491385141649047878823363141977660066088028348367138660854911863481822339402740825587266563192742384572060706819642406874320424907228352967524673329497226704065573826002732979633941023225542724653609070925632332450228022223472415208766165346642274247719629812067477362405629385284448367481265313426157341565317112821951796435435137241367355312357219665194586863445521142301590429244903999692586759884779357161632192161469105178692306256923653143127725283711290214768920686014417534467916726858879630101551869540713339585078162205744803131496277025693255151248067563072508977506602749073558734013541308941565071169645958959082422100103974210147931611698014760407407145984041424869510155067033038243624126153916048285787058625235636666985699340705125339945073473423172531010269076908634449925595745228001922945286726359802274565004102089865849571293539921668149842803135884817102515293760910685653379813381617760881533682986227254290658361911732051625324497454452354772764085369000172648254748891101661943285941966567242925751523190736573964269486824007127731017382305706414544492874324449521899301764449380654772821421941390002658029121977974498049427052770121736989900753621063596675198790026137550074749139195267241405640316346381872654710538462644278297553890984396063864627472356832337396975871030738447628728566916590802672621443622807938031839050782624016547207212601104700557908162045188045515844742373993448936409042425290589042853641889407351718779111246361653124216560969610344580439137837683632877993262425442742401116208928894267452803471578452637396721967236557291995531363650074785461211478202605733511985747950944314174829017412192934291285786056973641001275418793172709470915066956939853839820577570341402695779447888299685066461068906633345917139940537834588958755727531021693736265082901725332216262727276056333715837348064919623776115724196886295023476925572617662651795365703510388993735233793929732575530149592142981544275843988943614590985937604168877262948372412255461808307300766471382789846258773985745796915536997260738732997690063005460716727629486192812472598232059464142434197429773432588676902247521789750660003467350128287609012604910096490773906710263451221332502259373139496606266471512602853509406030230457413556632477575669228822228009790222194285318237973795463615923382970269774726613941128648059997218022869533304239687929472264933638256283035286751143411934586435601829034213695860160665735268269992744982570096448099961995715482748819470102637149699723842788557363844724749908423028344424181877288102934157045104214521263717300587553013724353402241154040024444033027840608983136543812973713285982382625090800078728139140267823604704766769609843724791910259146977134386658520899006151467328791788328004013958799660105646818911538216429451850606563322589744654462100149520691270020788023872638194502325078791499429506374475704795170430998128382031391256886188959165056498212091753854203459212504222819028862612725524344479630584736765886098699417328202419858519762380466228116533208410882954195186121240582637145418094876417066709081818645193330398579217930527685864595482902473032068571854843288502074207373111072924306670844513119775360277525954121952519005750080304695707837227517981047436904777741641612184276567106082606542366728208967082757800138953235546792957608110671902691381684375163427207578759966838855299779955363377071736700788392420504391499855643579377373229305090968096709014472472325619194974613814692865907489454581938490844761188006652760242304317196725626527002636212187632784483099349536902896773011016930376493314484609239542411986486635227536551720891665503407179739049341145424044704512236212008396597989047974085544676262603586561188521252707822445444412912462874794069623765616580042115717890648678438556399200019891111384535775664344440959533558234405765890699335973886896095367445094511698393235982181602190003374504892566816657177159119283397938185577386803693574816786303441026462055550224177315078044031750266323794244811463673838388241468150883372440096847081053455742327816483241262417878873323723430370258652928958861042903734897104733172888316508845046829424007469154249759474162880371090687781615377161032373892797311063195142230731541872255397967609884289492265756380616280122280233525992822437454267648813064686865225251122264877265717652178437771870061886480683000079314143673817051989613996172216456435525692365203931591180089886678044813702388852223772499245666808399233302252732516472526789847725098697582716345357662707869523407003665294280664304733141922677543252062073703696745991070163049266493470015243181127612028533929797318501118701540518572619468539513900559481894442476178912682535737174388069909433077729143203885879198341733860344382711393464013169047071331281286253704012158886703178340446712904094152403632656842142490083917231043497867518110118639377330984792064112971530182679328666376335476832003984720261858673157663031356769033779004362840659817943132920937263714232697347265256116221519932166623437057331672223998232590963704051473428458839712826602401500829507868173758978261920618570346132888935253206532548841362710157765468362768497772852295274534215459368144277043592101440945841004112337716275647553938005495675183686998272251482784603180915783546837785890478182135268958194094250004009794497002410749735216660063096659739641784757560746702404317994091696663174940828743807714979188323423585256627493249682908310952963851868812061615039148595756686455802399158557182994383428151219074683584550153219875588069339970674880854117602760118473290824005885997285585991663813067917690930625322468162863488863133912099269265670831353722509407010576006563072867627180257257458534557002000179452398618965530637592335692367080335648838295740919136380166700424750974856787978221257715830570390488061937541423122074905640981502139317597642309403489326112577937653769770772897515366839101082246975621648579113041217504819799452777320112769275958444165705169833636872516450257852103850797857833181141410882437199123486656439324768096860500833613809250688842976266618168547607558568701571547922525256078984523498526535484879743909321272454571638601462139239447367763724148731066372654631464799202620300767414752157879010725868832519579304536514417404138221211362053841276669270351263146096993567512048362629697183583314776862568407965546473404978915614850437342564903726114425961047549479365797124254675077811492629962237474240960151703462673630309194023167525924863234015026758750222469753323208402524158683737949160287249217863122496979922566408762355689549995401542577000060112658287169903040423713239834653201886372712360012753175309214112788800861159553715560189482040956221601515635858191400828914937144818232794542541602834017275790562110924527797196304163030290803870733798726227359796201514788499562358680672147243505615904972131980473251086909459373254053524393488126460701210016330504788164628493039119397999415826174748593289703023262085085700415050992536077145334119694151691987285764053281964163124575203684970216186544631271883601226530325129082775626055295830347028987253653825229818580596196633905377629545735302529558514445581041761739170490715335354676703964670989210932538270893221804802680086262092658083223487540147382059370600333279905292340915982178690549300267184112573192314388838403433703935702386039186918083888100359389671605507462587054739514176295853985904204455817359085267058464664625438308966687832498987741609734568362976417495942349556601728305754105661070128921805328398167420363115310517796888033301974566192513548438049390669767471667940222218759059065842984841957418233516073802270124648891064591493932250739967445679342189791738082224228333556484476251316584696838377810243905425383295640295382215791554753905955232408421886443086348117181882539659988677388171587725335943148053152674517551392427706207254083010565608475179077645053876583418382777713780254875575662710835324186111310933301356852314449993641366234385010784705528167944829632803039035475647513403248897114752535884305577250024458439416270137222167103592281760927187263985174861442816135023513727889691640577239479049761821742069305265535709689615162383995462649217743688226367393830125897082345127678438628135497714119699318718302503962731237597642854944618402063630151964824061450825677890717802927593920845692809165870344575610955831420941621117120501872766749406964533408359074471450039014444693034661526368418922068420123447995643511050864330981642085765725512513029720147979749657175290836423134289545052196936441233435782765153919375159015719591373855993134957036407853227702251817331049009662090894924468331576608171166916110273119085851035039202799640215033896046296650946595506773305139455318622647483434675620570443489225517937240597814750254795557846987548847401857439487996134686539265879968510981879151316548792725701422516276232319499179017548027897356119950026675526842308002720284545742089060932933303189987192790414684765505256918757348558927649400236472865465171148081254881478825749570895811960313979882632902445933856546178103268169297692750287505570051606844488432282410126479477645974957413187339684873583898716595559570035145396861111593425373932540888516668182403751265204639360155805589501517092232761224686704582670900043872408679233033649372763647486842354816935740203872653502858338921872802928654382774780171854416176021540885528165234109640058332273308727473098035528914695842581464218510226554028011029610862910988296813170955583923857936492148728831098130981490890806996717643705283710502903662592699054138538978660428347742904933039730856490543028140071080392250909919984043083599928467769097724202842658007771927539590337628128197732919282995612736606431598149055015521547001461471944731008990364376021843304960773486607233399769747205964382634002537994794895437688637190250562274506559133740009635870828681878227932800699765209968215616588158844125038232346652623199385328913240915279206143797879833692848910200428615630883717428849929937917889398378027988746429918065308826356614289622013362953879383022339731949045975925664538273515668796369324840536314669523003639064638717382043853049102999029047550291310679588271204357547039971024437629985346701300251265327473948089446544944746618453061989453738283581065984585372688460809132650691472385401735309700386911747389862268920624856651168454811203269267556927972195810536404328876336016172133516023934209304304907189229618654731382747604522376166759524697662443751982229115760299259322184857086660616791615786675133477684081793576907446853678842401075980761215325214313921684234754527953560383902340387418941183424918688101656557599830955314394469176923928080665660711069475146775879911614492367310073544948030504488182367140808984366011174873019224534061281390028125064550535825266343012186378619218554471275763493848966917400324293546819813510367839705662523088112377595007906220529084795874591785379298618462937543506384574950288875117733488116514777752429406642727703372103704511180804952325144642647970481204530212210478173300302871654203638311119085599103170558153489597342676244975041644452506212393798196310846411153363672813026622410521880284896450582646614315775656733973819359196175688267047085478875902863310582575878780801818354124408391601598974334592786690908831303934584416270881880076874853118715128188071263130715699208293583938756831222541464773894570015806847387728755816253006726721998701352175003068856585056127775677365638235818721963967928962209249869096535512730593446169776659356324537925450717878412113099128059494003553834941970561459235788740129618724046303727324175883381406519219307014274252563263929587096894209228655705631419844166377019075635973480506245857282673889528721404871465583292253124901007637496042743204480255371640268914636196774488070805968088776831041243460369326286656961546877801837500419665845221870839946425920631019382258724186997468569596355332880301628573275740182024797457972443115016375431689953219791777474761873490872501935134526962541449966021959072994364165560023597482342511849365020260967962913862807493214643996538332509427553994568873406515991922723903783893197379121726158236989590358861529114929216701057483324732651458211949544251727772053672629395797685656187703979590789295343208747062462287626245320197727119658414766841423617834132418015221069448125325427294617207587120048662717118462034726225282019013741439068290955586088741548671518989704348193901310584505424144969774668716308746670138753064824294479535604525165139932881286164076574726655769809375869535678357722101907254104662274856015543549959978730098489633903614618119432636121428323200390907681337926231198344325515513901527766670874874647734989813018394147875219132691893488458030711427721766606915813543625282888131124157325939930042687754437201401768144885135468959664572664303626855176689356366706372668968475865554315604688178277552783427024706045251480236013295384010457150185472809389045344646828063531826744365008030212409614769168937550550292432701186474923222570711611260878437180644033451383597794770566997445144032153823705926153464149501486697209057585556153986264475407586149926301911680894140397316177286621722140840163039069495198094842876930895051935888857339352276983750161622324284928544327108772576689254961732535090837648760336804080922963111472169264670026497984094741346713139692627858195708554797460840059460142317718963772452527365990021064739482800110841688841626189111086223053114096525406414799806921145795071386300222501843306497844147432851695424568696420631901307389942649597089282213668407861381797283471353477975974656134737559472607752870273718055179973110859888185380566469583209388739468948597223425245622429795429810341174029615526657938374279535330485070853341400670655425724534268472941838196361179151958465991039376780498428759190519337901471685101095967320591932173709486297737666971440611566128616514951577224202755515370155707614752173416553034168307630737719709745788173306204166515842853519752470414093160448724594128914543367119930011259021410093401617238821199263364203369338470556465404127105044001516017902777121839803287447604580633859530958353252606251427795598284976604688347302526139278816342800618862583390411182653956175221937075981096736865096986652125508515112655643913052036479723816855727595538018796341660148313526717401033477394564115673696204869310374596148024859400982634632101629986753228395389638674018646296371702687192854393726512984540075628337101063954269578085105738135276341170518526143822959342100436277421520874775564271424221935365176616673271819263412191704097963707735390561948309553143400045238892799304571407231384684315712034584759848833722218796787124007174029100279986070578018917908791323110107464018697267650188353644422142248402766052182490845255765565512644897870601113174524683204068624832798730599355635633679398903823880686243927657293509488354418065301931366621835903753737190004938618422359583761231093519038483708041422409627785050474756460047732065599926695293123536956782146710436955963300115096254608885139973927279148991302438659442283122253491190362253752864500228310225515077503388750127925122737844488601507625542604488792794132135638364116451798914988828902568928048826010168085396326411265123804024159874162427895447618410434282386418790689979204179478293551034403172301671213412351690285427363957875204571097651624084848578673727136273819429977273810052406949966030512116796306702640759863081057460590637809835708750263151552650521941703539239772494241512189395959215948165947872296382378730921118803053953662550777221353360912115075120144097832312573376633878772077807124724291914518689142951539318949072838479256372111105557662962278274419283865419942729335604061912852132360554916093796626771081381339246626548448770366013831057232230599511222251712536304485873066127672220075697555976695882149674927828130501343482683234638739063745191976981953981439851668932214835703136682718317872161844433389637373774054885168711536964924783004728797970444700759763588169424169279811091308791866140141064245536375157193213286904762510415080799781088645272390660977075152846088596983541023086087498059281969851231205066961661382737642338920128762599607029508171685204845773152040138975437928259591861095407868113120254149191999162911564835279750425656178364207040500177616146768415070804352835682403554335927457270968859969951923594878209436408305495220132133224675585261495700042262471870105173643554293219722121006439476386607152593466771535877448552486860473314667491675434943914024445041259278601685522486021040400303722497936785753670716618452890631211686979612192547502474643886966868233209383901880975480288797501575089866429606851024240355466717252244440975587180978308080918746352217774330843800903299419801606934990145448118732181691267361633064055682166694582334259973464985076908980593011924163410027913642666064426977116569489152152190976984720216504007791126760596188367063631254560777938397635336906314532388820265164851745645147702844658781957718438279369494533787683353945967452182266124369648074261471516124401310897210358716738816818347342042250708495976546431242709561022706875401205980768512270236637490260535815747049321868253395785421873833382521660449414544126396658215742894960613347409134029948118864388499137205056798497626540197075861227482427104437727857945561834638408618856682034988345699668510098418005930389212293735264324717055864340623496918429253940725620544365287886322101074138562455684667742010951064539632079030195245873171746258494911601913502248111892608803701857673774218574455387575994560693301618338835171655589933573252678693451433062151542550433192993967091234358571707819410413236854613879526848007167811824689304724002776256543783981356660618006151981161471360235354741221424666976193007173599920518879915339585469305027028355633361008296080399942705014438966233063888572267214043685409353585595651554183149948972856875895796946790047248863231833720281796890445045392355498284570004840200195769506706768664356136740328913647495695285093757343242968377130945316036213983040467783584884948976986507183355611389551019094676550857773153892933802739543023390735752976971999896513999215176103521856519399097613696790786316444950129030566678862173317732924486673246623254632062077403093504283684172858636414921033898191891548119203894205503812853050607001372391477410179450207596622471210510943225721160612636836263612629506602350431177837462873017605037376784334880288452569910267411607701294633572108754419075590256265947306162988677268198775750963982206330736960475138840578641123901200776517173559518898734970874000674463397438623030393339428386022429243999010657332579487544216212248710072623169004722750850265846623097858751937935167322272561409345306264761331570721652773950828113278853159826621401280428460214522474046715952662559284362752578276354813524134370460301932352131316781378326584922259328022477207319098486648528268230878094109963476110929392046801218543010402874633919937003241210450654218042878892338821238428706022843330793581760587579595737470610931294416383825416551985032359023446575068216627268726568715090664200395110452959665140973616068716880395137790004935517870896887438948092170918565307641462001571824961558008162646241581934210491922554044443632805995799924357621533899467350182152757705707214421096553802174921180091347581294140485319917126254920451348797614652455422880154695758937066640544871134605661655075929955827861781670564587514717604214998389347491732778952723176713479415082569468570629907274340312317514611295348842099674354220860232307398166965512643629483718517342493175116470442589252525928888236412064476352616095156878952509828874602805056399882032725847993387499477010912576248316335529815694936455744862755724485051880455260913992029042527279682775141399639501117961849219188307402613860093648820950925746394871259601839970731990395866828963626594059507438598059836344958675267392881896556031360226576423106607979752692888381464853808666188314219212817182686773874979835205906853300181521906589043711410284121836224244391272217713604967772904153613079937223822754307111699417505036479446833427307934096535839467976836504898960041018434261072038109605378101978285840784035239305558452022580836937230020991522011608443166652559148369365220992835301642661290494867629788245616983280686807898040673368221816851538115586584961059222450975160698407128498607661682706345839010887478847438911470634994032469865438364961257419641448743040731011785578291986367078192898133106475087671188520748354491678088714954592064855218589184801217061438141045762971278597353716645499362424336884211889956616848189665295152991854511263031032618495523596744807209871061241267928831266482988814635541679135094945872357994820888854420330836614802373160046684293676919740559850740413952064777362114132320812939196990284485413174041727392140276254180277606561445893332223110940945129644154589923384648212467258629440444369804242585948327724615964034797872450199241332400477952953274538420891407079615681932574256790640053274492295796107071584006106622804682051721886401142605520666480380813091504564727320058649668175511804374667813627950192605469131963717244585661681232131324144798147880002586762710923383150741198503528421843450258613124408728083335334172901203176804329562361943080906521638125732062991636164620682982822787332319076880921428108026818663255868967824478296337218740222861058536960573398275917854648493011772805710413790777816744207201738089008969312800017344288320852214844806429307575186558357194762748734718108092447581621544060767454436487834870526544823330666685037668014880966362412886481429289663361923275187857475500507383670866833519356294202092973206477805015130192607773550993204550727295856695704124260137864269700474479791548398481367331081148800147970757281032356886301070882693681915049963918767293531092672723809827431072586714394509464640670090292503254677646250072331210568515810126163830055886657866164560782767216992511945327559950092358942012081849375794428525313084154446753275397902863731773784102590850608650191590216973374058520697663644884787340968877678681495168259375366283070952096639096855095770326974381609929415728492190122960066676372940665449174359939031296481895056070034229950316826935048439392820628205034065581559009786584605851605772741224002524184868052653865791807120347812094708639009275777965094284106151790167139334211002127199069917650902520894361036516758366258062016603813974169998632072667970178793674791696084441086470412044856080021845952424914509581114944051443168521436548087724229436287812999772943601897062756116058045108892998776335419688975957864605089395339882445759943096597588457063178314889720888012852477596532729837999963602022215998266265316439776550962866363176810303700003829215637044589657968944085132918519206327115576007415104493510101259852508864761326955845137172687338816820961112746170009539301356364445957039864898025774670927202041097203739217382186090391212075649353545206905511626355165868473221485586727975668231804526917901548787915247902762336261019929337416908358923638480091143126844491085309660588850086245505568778909202839787232080902619763286072557439568984232417836026265332555952257745976597655804100295721540417721169926086232237222844290917016591984981392635320956023953510491540852115664368067863329955083035238062439171561238589017040411943950858079464624198990779471313115334673831722948045870742150782121811969148703146191429570804708761148949909880790948328130420241032196938442657463335441579900544441752814406268960616115486633414054601597166106594520407919369621336043672100412372522316857004163492768010496088807242784209361058219195710135798868389015006028853709129410067684558291168877982428319818952734523542146349087403648555045952442517732898206146793666149309274021460864960950498084444497198320587622540942569955290295689585772024043732602340801757719340307882391914813451116340454339162092518369210132965392135992483127522401041330549038799927871508308182911500931254348087094855732627840058784023572325227723454385545932967663715288042362431922524972636325500471796665407053542134594946809670663956980053622077778641782656847519981531558255820185456302156702527910124636551404366506169943273534122425779951029818883609519733272408982013923481973970310913136592476148264308762357313912591049414320876131777905814203910032440542666471381402793090561113508069709786125519791038465251257638483032280814765971592406076358496818146507779436706036246282975061918639134248147020507352039191535710288632018918532611160353814634810196392180402100366678515635966418069858148968487769478235875513338059029581012643365516401464799731334415861064039981463439217410212684089516982005174714384593570738135037686481594373921217784775183216840173908194046379396831192459483760936538511954754841007849112329791467717239196156648576640632412473339645711071482634520085384512825842287005239934142659006839652671727792341195997491798978902804559924729142843547653645049991755269635125096144539328359346562520140934501456188811599885578142333507380825532791630593362959424394990962862032482015364968887291497667581995601792419481720831554299088714724364451239709667312216038888834706149890735501676417008299298064174305995884783899564621952286563824069701756592621918637055096007970001655554313608594759093336093385707677491292767190962411236360555631702396922450464571388384709262405530651390244669852205496858714949455603642721309813451455174876097220611042193765212860913142889583564742061033831805119203084026392122834378778226606481279603943395302699600689245993580364159145638041240486495466320539364737443536942555385146178084544348670036555308236978872988976749544990034628308758210934336479975610367568117395763857118784531031156409853697585418932890569504453472814573130725277471035652395958533766943852429652007009497144023582189150524862569189130118469346159309513387207714480213342608126206039307962183892822993179829423877456980999051983807767276062829703965523068765988354219460417205168249225907422686591909162611802765784536050823897839526489831364146515139938874065014246124122586036123295231407090216846125612829168014866948744792183111191616234813268869744550748109311178839484970009986893747512438423886400593914706451955818607177193701876871725424159648533467384993167229578436685974130693933956489286104647712891277527248823271092631849588900270453735328338750745267254114753816674865528390169555969539497163992346920863601388213886496019814738797637854374676980993211820085155015429880974523397518912529330191357341237918489194669439087532492143471940081892319731526964793015734847102562535005085671410295501972728321119446405980608876033414863521435989869058602886356019578430868425534330475530841594860944648830946499725889166320983995885251047757021207553616944062304456441029904665598230659645630016611230864119716313937094897245050931795895216915807665760040789999271964060822159276174894940274090599710991149757578513853332957621928352491259722463779967386017995692064285546323809719429358258355844407289569634995997127046679752832093901097521738269884278465877873665154461841968608895320733761997003816251683983092651645849879034483291454095894435663337808335681848221951101069396666982264778554159363252768420504523531687183118404824195796963207855529092677021933142234873475481735978976243154561590014198557257502928302962272023682804057558934836082728558911460130924176795048290781609938889786704621453223934638131573897854178677239681903780512437602860373034056133806510114960812767242808015530014177322366151676758152725973767509043042418990836668592102143546553726948638744765665063763750989180864603851458122218730881465873118263386118606827184271008828631339667555216813823896172303238616839973056263907162556713293176685410181667789226794812077915384748580659774698842492591909119822709157698075312653918061202896439416773088638048132394877845545601358664227044877590324745507802906562398603193140771412352573693089249938598641190895294922244200865239919731887171686650975989623639882857939173465415264259346980878986430368679896354495936501420075443085698535979953908829864633363926355030966504622003775259510235858510975170867281361718171241457233120840939368104333961024559859286488066730142829489655771356849809959597355724240383610098046914242670634601382013176172303692286492458147708449899060459618247947228439732988988518707684083510481206161099169210669622366663557065689362166809337240536488065035807136212480550083536768483747932209837472917625388124581977445994237250542130294534068664579923931043733438951339827466352663394802128194969290901877078668104109226890346366570531974905314390768578118836532419919131383399279216062605261113809435315424019598150307477723969545244154566948667180113654694359906324132027370318018494967086170177413374609799296214913739429511765377523808963650263079574518246472068765154550727992537168140523498181975455213995553456161102096016496973682012392037608564604681842517567916027506462381474645306157716352291478939843131193775524119098437277436757960155330843324679899273458731708707282748434648541222665509029851723050409837357969592740960433613862550454566702280948061784563348193919197665106382907274256730961076611931251066079180613478408806591511943711529147392006022794234899747660990531055506786572642641420874478475231913589615248985565355278524619319829880183734276687870837438036055112110033223826378192808978807042812249377281618466158032941054172053371120985788323355783494384477382225002877570556223605320348819013782823697903329775740341591180335083301908085422952292181110808486806487190817037796801037906692872281692677468497540732948829443636818322057900694869329831181672953117459490244393437340888165028770291534519366536420086085381262137706168355166065052367063921939427498414895212484207008442880705865905123633116250161531950828112960947245551864129920883090869088336920698349968757178333569638344128708367474199327041455668005950578288905158286717346918998081033518276185520501050065541826402772262435518600966840006283709362081948341155547055609510057236421017638645844102212742677890779980789948502886862104731091529226865998070937270963793993648293774774373679712361658580559230372819585330161066940242298107783039151295632091308641548018986199060859724864571396129044697648101699478238317125362315127675588623139438392793775230244442869796987226605731658503453949149555154199981381659880651534342317535957398947200480157307979889736776557706122297159962460539993400935278725507668020493716503733074042755785124455029900276396860472805884690106205287456107625876176777890790199812370126477430047202073376919530100992285680224982031481445401140866537489161491977471922888437058186056645649923106784220141696580232078943915408519213268115170376819259893578443528451148424197949576339444356538374165352076357088678362325136637697724337629229359217589292217376294565013957074563251663593737462105088935929512613299158230316008830791727630423642214459144837258450099074047735181392381185138252475858412757104909513597435964866922450756061141937235558049271552944901351211252155852884011749712841984848057823575086317448877367949242114349651533961848275408769346197932088495699848266791006622657299681853420051895274954177453421137873228101768385421557091801436859700013017851211474501424574325458149598533508471097866764461838909159560602434176607258885147829248854826939973833594250326107527825422025725018960538190006406350983758336990618938787633538057057335062047250674441417787418007212814226853381219379941074551763929367943938020787014903424494332035163417509724836902610473674868838637770235071675992379760408875386853571259514645578011867832154782427639082245595868933789180168307380125208189652060439787138127242582844587087434232446301899277219455474906618521537169053650333875092437761866916525083731380210560605128786652227921716024367964199256132592168777475890288465360138768427056133790203188539691038330957241828109791039345456101567610302071266346780286314912458808471463061082199365099397297378787048315220877458917649117294623170476352688257372603153630467133786074774724617087990358487435958907603070136814900577369637359181090147077901727849475243456886453591521576045192935223734509839618817565537037976577991457526053061006568586523442276581557504966260035629927875405627114554184352089326368594974834873559909814850419343552146236435594716276463945818986390597380442892208605738084471558502593471206102807249211636500341095971805952094770228238343822265903047485323744566969639276715528229275385823526505316939029678935349351587346971679385603992861243612615575350391820457513001146685997415017890939537474883700939761115835197439437757148349892569657210748533241247994246385586730749578742745513857982409089693280338811888509306168076752706397805315339977276759112601140839434059676895008330449945885834669947242241771079870065755573577490608158680243797012614303494190849286101908613147320812371777105184244861078608140856231908721478141159354589080847951853633395828894761600955198382116676276062021598822889499396036680808301031908780845564510486215393824246727990531092314348580524471203880761768548228750160831019113091317161941736175141943182829423008782879648774579516274074367121121823331065655215746960174607423406474072901381915929199775572004298259559253805856849001631111558549724122966564158457852504102356693756338121285386960006765506164058613280503910620840679792389030479672420668948251325821202799964558178707075380798176432457386406726042070551560906432383076344004606580345221689942288790314905718117298062945469241480774205991732059036764477856355468837141116598251944428828044301430553751860859611391449784427976089131060281786842820626391901285634319517306943279266219082964528254377550500724603292293617134558669883752820506490495190081737348997988307048569543183382625416020090763504994122121898143421236917121825023006731411291601888215451167015170263414382948678871975825019706541561089051813665590958407890810635462932736129728661629766072181150058717621607655066660270420585339278677505151312242045188137331315947961464933988692036501697831840510708225579369793338566011888311559885954069386158801302297056275749255534854705450682356595881358238180838999501563396219420199064432595632370505185221369760218204833007500373181162241604533108775619371943203486522249748954000757614298487351272744031485735388112416723616989177741472249114092184104233453368096085334763439213821826812684417384588710909163992052631777047061173015177047632043666717369459054439503651914829022845699713798381442084094616547447253489372426046829397574630027629443309514674003186214524559569481075072081740233654955000626001555301978010342073573374543700461298907219222589340072408224919064052589815816869571344933091433483990154736495091168495751820598759738465758152014011460028251451296192317956509876431543773096489444536010808820504292067780152519750806014711183953162349993610729966787180868628784565857547014678747382337931962581585957626991698717021613247452043906232546505573524250802534528139953641567469392405653762298855649177646488355537550338309373685667151255944638874442056822099912996528942774875686683542676639676478895378774536342767476676561210560062484744683598062706262477748482277282069124878486618052681968767752062064250585328276697064109567453651049678141939369401526245619161226048298041532115468320255927827382412119471854044851605066490735104262090271851484624305292186731673884754070271880596069500148145654801808662996417537429610209401034018817425504874824391655536545436516645793063986430236897621368426860323425471473829524824854901634210505775815236287783774376495820402488606923826302316450165235300963029159483779321435266562246285724414228746916909896000628736224315162706636857533241155497384429687697666741684015608416075451309008406529451199457665935631538161517554369284622495191496303013602768262672297903731751450104916065901869840016855494017166835689012245168260521109947294399501989779827060964769162012618004583152684815258412765809612992432350372333652764669581266330431289340709868572511639101550877290490870475158764509879449299387558185719031867420220518093563644350560992583443637905891628151187239247963559183761041210617584150791966181596168013382350688191301388307253649108014705847472580084517404765248773729344425904158030292901406123522549484484895087454990584397834887811116423792885083962810860672656032943176677944447752647351006355405283746586500711534704231187199460257270227091933479766022516508572759254618101986416096136304383737315960973902771729980891368383657010741201100907316455861470221709002876681767087319564221671817161278265315287302050963326805811708040206129470122139862029202372654272576155950563473205841553503579984777892452390647679229504206837879387177775042886768202905931873527444045718305150512471150418644827232647256916889545644431326251464438227210768694314123571142192004736065335424487641285439137517910543822954262190122184107278634149451121415123434008348547471161756818369481314958338303970395105609007760756742852497456464112211081913216641085742229495990348344480662119501403950938103648975019103679177911721672930865241850331697342652824609203252297860280941168675859367747203331978931354515070984906040447489468495260860478195465779899743877762595315423291184411472809765467837531126764596462726087289646532369584513943181423514363441052928565711227456002615498501003433779223306345719263271233200496191754762463145098257459179272433519778319192354732075576410924634606430490870344641182378998607677289662721950491480269094149694026849501754460220827397441533321143515426885786419651402234575184805017417761367170060309976971460114457098351487235438484786196072963651659235088012877119412114364474137322734076398234217402872748225418182960677213035093167086773015142515030965176880068568936114764021895794599671490208339599269215594053059546661588017134880720215606079963143655991532476138444545318912201491794941270718091602097235637108807472748731849809771347470389971713138442882759021724655236455740313607061768462911947406161507801508607223090266794909773891273752406795256431201249079502261745824988213047327737575038427211477046440787190800860355339937802778150254584371149357791513746753958328548401077287921065817919556995725832001691486421662070539241282228155302022154697668275397160910172581706845878814530516441087849419203852908359018313181269040930858953836678561968428985358393440074548744766142694873664739380929633388404170841644217928796437679452462331118794177889213607517516090976655530250045493402820315081445285864766902087479873659377229125026365908526366707054056118226001840793942887752587649273049282304651678452953226375982868955480462198924549853265376701290440080163597305850589576979062147164288455019476095690144049288033109959359826204990933068636940566733830653883232298230354300966087725784440324619557377657402837062259964538902652048983515484244073176079934279109500294003356778539017804378024804756390281116101584933690472386843829307409803622296399736822167375175315040245234458038955107391720899842883041144334460511189910616913667034613293567542796428286265421387811553093492014583375470042439361959999211307187186958348113852039181556593079734358274087944458572735507558423743239179238085556690700301466472549676745845750802973761966234198920903219111221889867505949486525329221071766781101357200175743685241482498802900847626632228361240541528406345054148472839224303771794137721397922399123245524377323824125301065897472818476627251954696717561283079278530543014854477093964954673439447847704607580319015777783037311471395712056278968938680764448588125979605754633620813556818610447621886007237279215034942992286742164365139792701934818991267281544204122426352316913545755079866411070674150131519067445045931574059506341268160204567028398478972932267115639031685187013288264941092046040394571380462855311791604067407562294747344083356693342369601330939010801091793445116107956061573454406346282522330475282607864997301519250457640821388653692986776808099066947150813220274304109780257673541286994979476379680093019673677370443031260237464075205070530088478119483055554128165223539575448869554059630208222572542868676875189230120084555431054813434005040990029412666404224841474997391406648894291732907937652546492156653775592008682841917737914207134740243850195791612228509529713186492685473003679938743230665854528280326713556153496356840358512485308932679343780095057263901727456043613269273302196063217768003695899546929934858784485545194220291431128975639673473456663750981730961191367024948700623841896752316588402539176464315310267884441498415810303075294106758256822564468701603481086332189265826657253146927314460798756345498539097181854627714332114255918194601294358809483140741550637070733922095265465323865340905593672912596454196550270336189428701975958696503891917307287416158187588577020242584773901069768459853128977442126064384518914302254363543185509799527942883071761362515836230503166103995395906560558840210018965278624254133301816554090688076158666388227437108309549246613190245986870755887981072614314608006981649636348905652752369589616833476878921359130927965772481232169310983350306787359920610581957721693903626760087560430981914929987922434031321064454878861343505870461090222275421997127804401660843155688216678781099438536570047589587099787221774096959753386655892366481556972559467228224109209057691762360182093295527827974779328623784267841815948245754874559592137350514527275176454206967065861605568271666128440947741758839025759206048265928144622495498483227807293999173080476172777239446359084657166337246523205847751396257012508875660416728275379978764345659967164858987726931252228802161380785482087464402653232678041411835336794466591234822433528648223804783291492202247101132915701160452738789601452438864652726610826307686732271654132068572552574828970889152402222033634280327457888438391849677805346832330956619772616670858142159179825440943198419890065302835492073963334062335052040082442533310201835064984810931034034614843197711192039561141293011312613786132521185915005899143599978790627207698885471320743554485659496984437709502878879429506946433610703172750558347761166876709268933146692758694088781441289226068706913405915698362428455138770709395056712418332643805298312563816292163283565686733713938769215870270433050675248274654839070651910735574760507385587922914222692450215037283206338049252217416917515175064846078563552021014556680068932643819567375134984694836889090112119872608660170735230763997866186787118049117997718089366717460151193366985184018661068487766352784289532466373944499356147073042529386654596752559687418395356915330339930825007000667039023185798564766091481775740046490500199128056810359338654319604801173443212567032668512735260474751501421771164745741684781888404390874393514712539616259545705343289627413472308102201064162732904976476472240205905423324596489923839617810579327973709602665897442007179724345201172505162626659385958410693623347386446807779923467188306709941816876542604984159791760113960648849836851675663390254384869759281908595857427915808833236683226002887076828858647504243490159895194061736026314548112659086680458770341623866928048621311574311295996322865402884382163076353404388924949604574280497484307607674146178669498059290045456976333226099634684791130854659659892404460910381385841268817976344738889039667508015814734291776921185226326385118212122202237824695670800959386195234813229629102615674864826755027577906623505159112520707664081579099819165144877861760873135245621803596472362866410169271672339894922505485015348147712400557718125653525046912933442153628385141333306413402405894884802045971154399340548863406444482053771155904428434584608811109915014379744464029383854988585178833004437216345476746976750272372108572552206847558411452934685176871332720164506884889753227958543948238025628450066791008077384630523117374126968226629544549335429663381156870632483856043484495768143917852535588438644762490451743597835725794693186271259405294597354639316751465406231774531732490832411884165174913531915247334626223425447161331947095343117095106425545351166880932383939539268089902509707759038607188226790004904147643126736378212668483511651397711453577490553228420416696755442125349988608838914859039326879779403213183706780619525805901167307382831646346499749531852490672236223501387378006963700561384300836649178206584849103906386889004730363588757680875732239789193526195495432076367636936559457434233892699360188064387424085000199237957850601355743006505029486033629782189828314575646449695468495721746837785753862142428295747951796945321026294372061396823640381516409163720428774980958216180885984800495228588696444329939680424610205014422069182734417863630953947874206263509875365982421248569503911927164854214800208181576029893318887343538665876018073284600883386862164878596777826475091173632913168344435380981819129501525609159768271438792986762973758323138402251205898195163742722068899979111337692679881570688025955029943112941441032779809251785820686681170021620964871341424151552115139999653888769088192429844457562292095341458332332784196837836383574329997346319900993113127037975672959735739415772742086203056245106948209104814470803095122641120529863428283531655109331717806513890532022294559351395267134726553243433328286830585264833629901749183762943433050949586157167073636310684437651279054594847410020281450331640159570810549648146597363748495456079795785250129738219422974978217610557729952686826008177749962781880171130732273093221059695105396505721829867843781967042434617492610767483958418238425405465609048712789982119119085722893458961185763740123284962509180190598010244409339669649945705641196245945633830890097080570196641581562909879911152825307629086428641472232728763109582518171743548622773134792279130600978046618062732433333785570109126968189675585460105574397832187482863950601237797781162626591320174167062114821248361040079713727594458974042629631548757099721368382825853939704233793197901832302420204126102134982929109744908756380369505283931044480163668334219678108096037509217721576637260681862732970979384749806685964001648693078652839742964183508500915293486981838907504217070416985951002347450717271766235135699786037852099347826149129160717722866900376868739833175627368794243415778511204896590160480164659443585460918041722421143314447448730849669933062741842747243098712832877596579549905801609085661561966228383978287379236105656204992434231281874064995631880147782205844819373849384843737380066787613526526805840858777481006466161719200256827650609361791757875574145467442775118278275774233891667124365992622443977990928377774876481882249808197323817880438286992326198069057781243603856069553507597536786405504311510022535206302358108467176085518342558393820656032030528392071079617673467833855973403512824349047452733415394973619298626916573989612677799170414581471512717455879230447481917026793367863037403668902294695849560030554556815044841616259615645459328750340547196782722388511893613110896447941609203250700451323335326799441120672975990946178514632235815317509175507742868079561603992208424830509276366314787142042067622399227297243992639061076700458092012736544923960302063905466737254905776194962622789682992282012128577246665810189455436026771096989329357250398651684767321869155946947141766310776379028636731595920126218511991345245417945206149835879402512578391634249131897412775990257656497524001009698700288458328384293493072038849868612445828964433475430202663310786812105588890662463660891493496355208470917146169395251321399190634796784491594255754161729966883779179211564179093813744809535511391619234049455332851174342699600320502216118265955964371144233788482609465705832776188000980138809831222016554565812200393469402727603705803430433606696969203603908617614267608468761336011873869525804569921621651946502596162669978681547765526110416667147523109967075048220063405256225243939089598005776485612309588208138982975568156668684734577159240479669986720495426292510012054997931909664096127752736112862603675799683651239726151616312164840037513643088240403570233118156679784548364556526257567034774916226547941224472725361900848739252083771932245473269066121235489682205191449746328766882931034190338001554184619980135126924339024250132674527835193990206613848787612695249547888656103669071841033834774388375750689790555492775740592203076340629398032818765600420615678838125334675302845677486991163262979077113588826386001568706295848515687176151769686511831982444558904829385221235379615668190695813208099426729496549623097229517296148161694674282960596320234738204011921639364343817631662964562406157235852849890034227119283264850705966345111643894832153414041980079208824142151816799991062535045522079271396872807782000365326657060244489772794647265427602491716747615698619863719659212882677901367350555034878818180420885015810000686506454454938840859356251777824468629180434331921176648423726672563357510085356905284332331307279241415478814728419580983049869109415568159401260593897263150748471448546066465208778331397246666113207899634650816700158757015699043770884043535422441858476514073091970625617658821123088978757832099665215602677429702488385870262762132247825986352537843828715016022305060816869027781794857508354679520228390714598734372790075919601716922011507645266456693389956524407760545479800632557095303149441580666532764629526056784549867258745794567846377641283245335294881414104512181537793421372535709890436069859932166224812170391193508356925658061545853205594882651116459449676307828006832616670364643404925688239214714520714492694892408709477350961205340302963592548404589513632787935336319879426403138279387638859891183947771386239306654800535681074325868352439034058939136384355569297486583385586741319341640092410241368342847648432060010834532428683269126903333665395202119984087721873578798447851508555189567403789382383332356190081016916503362976499093620569398351403597840915906999565879603725002582561341813674794421797538291302854290936308367744047168671361686564519037414362855107836933156838187992354740271033358620537410622830244711846694912148759481315388625933607922387215466572797950909391867572583966123821596996571140954797159158547778730741606013882142586176999777978778217996329848054322976118180137451050542349725168880841838798063988108785551024736486699235924848294282767771516177624329524751114491935607224728834407787276008446425940434494771346171674302165988050465571331909186950746729479944743106747732715520921161778877591006503022087818486161188234321114600257560096379866726310320415217460627361819181261279509548673812905566880822687740324146827786047428712983012435967523457138959850182625764009391138213662658913549780427260377729674969439293987670295970489648670248221223521192838329778355870572621831113304634662915312425679932280121982624503052690649201837875726689415618110692684698485057941443648471517988402209068826476367790465172318937716976450147870520276953526955904590820253054791712209792490284298367423061688521136030810864055041884312845976259652622554964199890057988275099457543557694300532212199237665270470016307563359312978781620943077098975599197230146559677582513886279444619421153292371775344626431704162521850098666256334621671082036839252759870506268573232460544644370297601039047683939610035796458915914834019088243050443800070600051701858665584555241055339158551677044726306877800412782867198747702366873672183687039675101847881185104469479870479421264723358105004936024382173665258069594393655148589166481526646045805346136787537102554477924754222972824268935860953503478043794654696250425608558068645269132080840593424792501026935440432192329055473782219035115922430975486541877218469391665488709067782167775699023943292862235197331046073572862348326099383937088088684518372370703557727683688728371449006495303555890683833969075641080639518331636283500258188221349425440466986479138271265162636021249468557246056002457117128369301333414150070614687785637469946417212302193508593293015777321480711504330258618385120030920672038376589868612413188259945556500934363921616819307793153702526084347924915660573173497763349497899379505815135677445567358102839611445965566954864390733310247959714076162757509013784661871549880088161706869851611043182089016902471574644636656168851762345553138152520798966124333749871579459641385284721536592662017391350267202543245027038331605874037997353082562410104787077002350542613274165223225262360350490355807394122609653831586842573055313722054207233427905161737326196966487912919710691372518692296017774900933946587802692933960488142309414238918976444673888228621970339055039748881604708708971861221167269572771410340996707002274899910263720544002797375155356433125769290247145721466226193041177976162567136024421560513999799862365379291981893411293392509617886968754076389557933706889134850445851793837092695008909464590875068414824787656585452103686826694867010346721478320485883854702801095120159637168220239148934781621437253014952842286006063507779480539110700583698128334262163399090412477101175378619440696591101810516906812359552211383526158253898525647558956369536132767438570432649358719880338752674143826010581976713451061971731723736360772974733475240796035744016857508229472479483040377980887035267128524699244263077787464975484338700730892132995409393811453257706076245718322273144295750313351093607610505742326722587643703674728439939743838593780977812928058500677367571519821830655992679888045176065144457777148018797688184004516812823893573009937048333873964042189679086539780717533106373664628305028218369222972224369119161896853190022435764410970927704969692756438218184743469465285850193288630116160331912342494586050742887911129839510418834501440069573709912940085124728025722703466057949895417439715445045128049246922444732024233801398931451042644964227326176313252653909287200690945365980285812861446778190076094409453214625801446590387696596890347169384604878571437959103992468658505861647090963095985775465660104730674510952202223687779368139582595596235579001487152501224510296406412020350010123983886779075751652726038505587907047316016081519487711389038506401430113123093985098733340850968961144637232110648970246905551221479296333251900895807354509402413819470446498666567306794701914371882713666756725191245999398836115147018466121894273964158787136256755499763886212510621126940538641488030359653555919904614107069714676506763316032648476976706305700335619995271091857976653850332930820469692108129492152200615197019257983553114289191028145137043104272814449058465297607307683363758549115796353229906036576157074452040444809385326311550031855187703900221655098387188146422710270425915987572701584806749132669539295022050023531025422549064759574018011970094924329724147951111031331262377638747063155968266390079936067725466879067707989583994230849604292546575259637397919199157467410294836204471920877112407158744585778923352993935387520668909161171570922013748961307420991567566121057760147400604968316758395109938604190307463662272291473361850999814052027309282632401916232872749395646783639749359643668197303526810525667502135029894918780013588066509685991828445247362483109165214218265689869572404146961330488128300161611716864046196958314700136710829831462141222109297228493176099253057550365392379461747051435631653816893922198276277736150868898796809477519923709227155642175325354871830298487675199228436280958330135735284908241596809168072471431734132758366230429391862638941142733947052820890552714221754350154028112529666913396673869770200162738697013151542343325113808975473967617554042442329570921845327774949350839245662640601064421279417612644014485130177982040895823277319973019072242873919870829519574889377570233063108619673147551969989807484248710359994172574342255877487032911225979010474836532678128919226705534434776204976684663936526269429211423559998009920629746905163562887646119268384090699487862968774859220211952982958246327167850005318446916287341713487941625996967443309746935544694581205281768420248406917421775832492736558454297445780097176903329133600724619690650688206754828239845673776440835776657282664870704635438003619111706733956131237908305237830497796178799646549313045690772703467785378149838270451049951034459790145304637482253943478982651557450406108245993857535463351834497630596054710098508829786454468411319134463716666012537814992084229314607068703941602508350502470499681264551899469194101807279060271162415157247283257452117087950070603296707289854815104930397761885682818102213811676512215014616788836670663899429400635924693650105607229903398390067354069583050853955017399605456729518474067219800609054226397585799510945999755095194075080079965840285484166423412873934118078746721914344159595849801955256700437216766854815978799496043910765108261010893241297453067513128611695949196896935678052001826475673801324947361829666571426205091157615747798502905563937399078018325712083960849943600661159938617832494770977049058110829288770804483649084525124713837541732359447454131113662828035433178168292037418313259915262184829351953037992345111214664267045161745576612941612074347438159815445195676659329362984566861965797386451788347881567969710220867808044524062994646946765514587289634276801814282826006954180455050657028100997543201250188704982969454874965456534911601017371026334636719265399823317853911233524429774144848707564032603898627982633066662887514790402938597564312872426328809694653923391329621232916735699031775382883004396499275663991817472375914570100171210075247240891529616561236114574081939055827693059030277688287639222497675022010012961321709513849859422445994912716029021044003503715483544153984255879272262076851839167804394216410164701495236818441155653532134021235477384968516386478542448290772613916004340418565292225308882754321823682600527103322261603923716209363971243984877859550884537746462952974390169402695292489155104165695871150358368961083236199219119645579657621611678583937351055867850345665444641694608860803933278296075884623469344233709609484603208903826035233700255830119814798078974704846306511406789128359384398278253093797405935281666603219736521608022904682202271956006336224761951465635513676658370128379989860041866713361031252871114520691354703107824537029265105565189991038319868538437269892883473416251510764641955935514878834710942524163970820848758525505316062774728054474119732626235661713418477403950217295448255820739117121161877980575128028701175304855331305020833690005245137319565061258163960212882778196317622552263949117465096378448237073150658067380740700413670990692255122997460838501290718663911338949317372098516262699576247737502001454784345146366339173436856518983518450930523129311513734961048056295400670831486855160521543508456141508199612844895947279252865031760239084540507000668107911294268840932039990468205720096306398165624548864888147790292353979906954862976695083583930691122640088448186285151780216180333296063378928882004896675489081074688770217990221381941499198487607109679545229690314849729889073719094640582347307973882517726797753522947128085791093998116203140087036565237825657032416659641195673572128905954486015945129772306082954397001978889374456799044982074690089837089120601440019736707195080869605198009516933165777044061632275128357802672584571323384490588667522605260908657932139720969535918479746554207944179747569253962434791915132376423260346760588408780117211845660930437853537193293054134355305299270093597703605333347316190571144982188622436709485783073442670459720542420713068549660404467611118090781068820657036905578749250317913364765023958689161719580771720815340251887764816018111146767169592261483054686632427105205890194951447060660905476479832630135333086421765913924401142779803932207037232813992289727721846051774396808099342406675041938380521528559078667412847670016548043594920353317869403236701019567670503739264095019605457249041878932433619186326890529507926008449579755298808385410955545618110348759820908696285651132441401405768787035015235078490765698749062693427141472904099599265550091410086468211786793994783626643869883803029463145906200411091457016352209690128889795454795267810349902940718922253547749203120777165647159355727301854906604588945382828436585590962289258572059767903615702738960534698842601202138018837931839320778830959888000002435060125270659142403232118547607695115896099419101972551899711381476272057556303186708053742857683939614746737339205763909718972082176364727193267164143599994403298991144106899084923140338410255958617757751078358543763831199014361671156293698187686721717643524443585773413435733485278691069503305499616281834014455948217581014932621586838614292814504773947680232639578442777475686278157363164448225343363219799649489732417506627409745063364126935486026706563111790452716540899920717742658207405648781342178243062829717093610687178567653434341150871392909201428088861632610742457339697145685189570593792368056150906846420635031509536213637840824992478261860935087884227137330612113654526864172762028922732014128000306537878431913378755199690435360026896795770266259935779276921946478171748348196641285120488819289692063379928305008336004059163259279223022296230478922386226438183815780187452611595136104150060270785249352973464601215110857619173746336623900860423579077741697641564172524388021645856420885978157330608918814940817442086336562380940978765473002719326448916318478158523750279663313164290768805106911943976144905383339663153022647794437498961376237058133668713456083649271680993580378404177867356160109528503144713687158380810328006111295068811334789216950777231416672233039894111845291564012617387398712129027507701282173855435876968047225374478074484723022285021783738489251709142193181047613529906305782967532841455117846156255211302032520808773855127108142869703726141978244955189572079301590938614350592721143129339781316461819567453859031541237400175288260312781961890269316005061555911415282942014022287712504855966789272894196948511714735490061460206412575607373905868135652604408177029077731926944038681480710784483616060527601197792851603039013700657298388874992285572720366784598056822801429259058729423520321383980992586346528223114716721213889326155094955382276003310851514364200008805165258457834753089938370228631486815399938697252797083180410112697683526848500354855596621364011548602009468136939825448856202046299388104248793798921934691051416660765483515005315592480224789115241589736369275859968794741856353876761836182977924311643137230130050891387839785237535080652263629550776108564800958987249921059878278184132117887304722672877457209844112095758805248359138298232837261800436924131826881686268226576785015063523255093189585095360888656035332619601672803103553110131329812108481328333067443118799158488577040728758013646425997208578855272801135488391168597316629360206469594527474026045589492591167167610933456051336039330385629681143293644850927929711765025276071568436246831899059275086697447846329579504295510152251862505995194533993314575879457206294086114835663722657102034294618096021838219302427297186786333975476023645251095865939268781065079341541690815663954887445819388464652103637278760293716383765432780465413147716569027182237957371773134576294504709536203506448848231106241661844982037767200684411659138134801894789239874807876403185404186437164373084912732763510453456967131001837015335483150309938744928326610795079742982256551211740598804897788749545577448914647388242985120352525064766664929086805787979448310384912894233888037277822922209172602114301272344041569836817861639642690067653339963298348993110605784625774258009386246550001745024265612674042058098749845380550016305994767393077412809181725302612332637176576969144727872734399455239467893203493013505494464821234233316696305026635022431590892495074331673278636224480167083009743524073623717782311683463506628593961361449336672360104150044745704320051936537349198824776015336513180909316954647013418749987092126355673704462290739102361334235408010199700745116110757813232998535040604592217586611645191650135619726836071492218836978935750095856205101524850405615054613168725221269694098249727427026866164631682526420289518465606624515676146265800722452842516256591972032457250520371149115247020159941235765747327875244565801039271042426970885297153378948047435964035251227658933827347157804474278220808033624809388320749099502599617041637719962745743974162503002815288875107977317031566877504261092314471107930899160280975836545244809353409896218182465273167715456363586295009530900289568909001694303657910824897791437378976338597118618840633695039038270580193830107912222484854728909924070281063179952293219144766124216560769381386334905232080931015085086901358548131830033678559453378253451432848984018874032834866436552658674589797861042174937686727865064579687702324299122641122616741961534526760486573310534893149526463798997922689442621038940113717954021422099366749939247033286907993174410685435959199852713110389323882090681572235451636748420073813416576833353204028082416609139676259254362050294883606211939606872044923890660965726349831405760453524685022943566915656301426568162172626596983793478352822109680102339660427766500029165730303290998908259246612115829031259550269484356712499848652701356808759409225157961947304758933748010608786406362701218222066361285895782024113704405947338615995895121281954828726276494869127133092625047901142430823236057133402463586963909003131007517564306851689366385576951236969565531299421195211288739616555141810220248741261183991005516311432105764331375555332711927437630172489611134082299336657676028200463962962150236234339446730136263468243045916052196459113332069493411840924151710659726802722156967973234769877715169021003245271995791607318048370537683234066462701101007923113486373300315630875699376694742615377760597999800166261965966380245028203646463942051492179125394539021108526085152294625385303858033453545203627181094245885615403754281676073077671428966012207979148934427211688435319327216352553986998767945636392764802274408066973377539566869798839210893644026408235233273549330890154873546808270210918660096718013499682866834956196355888548790585842897839080974759276080712772891579176419753157189662011075595575053888417791103132714325122371879196079628893112369177488557350747962682982856555186511051027406712321468926271888109009885698655698765615090080446873991784205919224659477907172575576751566042191764949629320823662077104229518588561979028126752598976698743051421616911664020051228410825848553357736465597814884828806346781299051507022762698081161993163692943175116356312185802402673161992603302221494686444903288162858152476164346817328781038690442599054287393466785266072849622607284046445754439609633890029820282801969087865845933842009226742673642606834678398964611662095286322519473667841216929531041697485450490002134959089545883643317080267661274764780965505125782111610270158238968472984297188840708389689030869658781537417633458714458768878492905332831056281219809400436638210653485392173760668189634124004833729971193112884952328881432131698647427045181029502253987301224750711530031324363612207020412373293250372944828871118255558838882097614739177350085461745450410755327620837155015349071078675082312055604416715191748657815391920535591759093404424670024871064848211451949458498456924357855035778944527195686827734105117820120830269753222918083934267829035923013123067240635733130439294727958675930227046340803320021769531001748819584910190867342508365479192252464130632373302428296811871440654850387030795506099896245109998479703654109881894364868097103832448298923181011559625890349874025624429227713163960811139956755570220384838475579670680033541568396715501654369125658101383463998817221834667918416249831628209882070887433377934313666852352311326763009118036123402690162142954527082998647993351374830019225502043700295429108377158914549144358976452315970326032513345664345772578851603578693687904592860086658728789569354008652511392030641874683531713555890486525203498366696185011347272976356218709647028885730484428999076832689176959310106733913720936942354348806170783477279347934838447974330944953947047248516515277971427577957258913153616624082605591441819577764984175644266857676248810874724340203190922257560620447684954051768788724780728572047833806200456864106862689020645074634499615278286327169411170826238696206312895695523960075343031724450517813713791462148753759624398032016409249052736838760301871697808199021579284459214332375583425096249486757920241294515916813790856487558076547307124142951641136517538084474896481063230080952972683645591093279110707999702270169888033118559426727654210625548942677668107332983712747489000650628767575138157492461511685528713839881642192569558261775948606318368468596524331661404719139260541027841959330518252477791549833601449213111038955471858712153303052266290486355050742295712123442785634707520094902431747723520037373377670771621374839192327742996530670616082615518220571017846713337621807284068352357297636512704363952360814000675630846039846245009070759979873981368150823521520250268013309279480353714060974627887351235216324898206038098318972985155436721175474471539246079165144031789497384069087071083844258471667054439790209905702945113582724597048334053313371323687079884170720748014779276832597751039484450430051775118200466000061439860469527316777165586032564358186937266504110009247656552409566877710881496728575226104397854013242122885255110004025955090452778630250124325176448151914978255828536642038557147849149957024660072699964905628567244857920239447867413220946460881072397954198736080462372441266712025790645355680447171663761190369774487386310806845347165484347833185040508135975504684934985472077112065407334263558772693431109298061944641924879075443283690907019450705934692240101666276489212377149998735056556150398759148645505658065967127983647901526857088982799004458171768837943444882725879196519960997721804859029515234472208348800425291202026046083950255873798016103388151594902748737239003402050542292318927950896563084578438058223261520445169797089962319749756714092490678782601579625784180128202070246005057920549661084450379103244510498988542511163637400128943384558478395201712712634915314847030024090494513486467727059663319009529401175780713151657671265423696148510380730451242511316753332975798584392743923061382453601706053012448132301929331199422649295732851573759425984818513828780737779421356977402310807513278018364984604209171034258371209271203278592239508460650789245955376701742644101292847569720788944583736500543262896359168195260219701295097120459951079682895323490757270977179851451895850705512088950749622064556735243376016865545814076678313159952695201360202773557627862245103267372955910443207277348989679248737241811775256905444966201826605066506245138619810569243184425704685832083746053777956984805243207383353574449451207768037258100237287078236844685053792463626803783471059687695712153031819219829395996137852638115589123435026783552518686884848481350770154301369954210185782646167758473302400143282996138880863406763362850995824468194883640410661865270475105454411017799863658163400339422429958948503224916279135048732747272422914067479588004327958056913738210528873057439104144482730568798246501512774942887886317952529776161749320713867005794474167671656870040701785266308819695131388766863293444537510285838285310309786619972732347973640150820135147897825066735902163921750625822820412038399811496111281057358802353392553807329565720069723946627238153831541188046943080605891501882461181909462645339592821628040513072208694980214969919573872885909947479544753940640453282125921190175478851145612044951278565187020404992816918475029691078842573076593602704709860003991542246513255610015028827680329261403730334104579911023456267066390921871130606723409398904923071007164612277166515197040233994805930171308862904791808041949964220982529792132756710766043342532530626693933604641863153490184263167414429467002778384803488842434987879917652744206723642573368741068531413540392977478551578642730765326097811760579704680173516276019116554804149121039587252445080287967364466624046869066794856148675543867971197886612228903500242676505727406012841707875630461960484930173856685809453629445182572742393874462675415039684671765279738277040436200996360955789744487835949018272300338617277195919147129848217975827491888442071633240001439162526399838191951569392529459071285002949706127311672285352752396267679759146675749068171679220439957229362746754043923142811470221395469354662446415810324599112736865199049221918485356621447942857566084158809453166690474477349891574727737781546880550890613138631344891269694020476648278029396795449957090095965875531026022624417661052457057916279177829797079764771868779629284431130210773893267692602510124684160553679165021852825915281278188327068785705205430129592189219753155123292538371070039535997734164192589159742279564040750983537425222411008021504932948145583629133830268613807230810955055061259047488434168104857617967093523581901276558390221187797755681708901292250707269349156734648686178721013238987824410893901807371521680823291691195266789144367399796606415289689603274500570830101069866332218409935103861609425792841511140551831726680020490027556452054023702074564689383262507960030260123722480478703972140058991693524448807488489018188665804058321577171614660434752187646273734858518341372175746220765529977353345920927707262085339124239854062492152766805775480793199008219635414078440672173474506371982878152358657281678523367894813404486700532852988495093235318178562737301443535573299569059461348149337082341149744541377526267013179965745655715872226618755653412301242413537038426368138458699449174630847549198702252997031970846725644356218035450644562252741038988066927828284456552546024295142180795835355654446279213137826489856634541065643040019972750938057029334901042340077887040134945660505662241133277991092572115763984261963884994028727205535886187384804696796623064971278518327803553650952627033315056711658170412543651477317068968821328194518165188461950762534314144145426431763709187794443625532882187046092395106408157109462627546686252817039931735072634844285617018609917260032318464058881905996070683522778056907049690777341608003999826626656084814672593284389706573875627029528596543641584004675571577191657804184847257320273441954788491858243240412514088048695176363404750497271051012786735536914573092378550288442014354268526047813876257177580025054437660588309326601559881728774323925939941037603463874918140069318424358416548638896203746842767619005384416648991978771927834915551741915489607585740637057736730992755130154355160054700363107097406988348242894534343620245170890101608780548998495248974989129775501634378998932833402756149852620832994884967359931215642630989812867009296950628981908651432950757038448698711699508325037119278360075853833979829179301856304165077509902049823407396127633015483211136598798287881754559002124934361038460276884636021440772620111988492380539515985319984453042638129712395753309492577013074275210992595336543305479417933858887805123495658121563719859338185774354844325685960159418872992665326259828982293174153168164654955946319648207691431717690673932912132441082950605399231453527913140267194787042278196048692006186107439237284915445689604355959673529456558677372506514159399557193849284164088198222501155682720630225646526652014345166983476227996462972023467015915429686028069046740443595127854022063724096928458600478235308025090302007889359911246070531587542452716333728829677679613937776269359933760952662308872979579902204350364530564782515109006966326504095328601214197472380665142975129435838666220032815496124061068573251269869015666625532231516988258309147936738925828875488158426445871446762056768211994195518201523776746299691529198954170290302895883215609855110979256707132789957189393988766714841388590414926306781960578899662026380473930375677698090190794045337909321931050597730314003246613359408761669676093561522779308463913932586610771368028497031234992419407204682440594064223853132476331496152167468161627143670496599327029207661338252937073400252250154781341627792806034217548385651109844757860510356364332455850764183478342531182531737121378817160753844716208103171278482337575025139145659207673578258080875441812336275282409361351121720626540994351773511925567595094894248049794562183808885020172141255491261089339356447438103108679653268651079618624253430049037489616895269752888791240150788315987579814049798459357024203880562480742159636398240218509144854268644177033178361146711751709913321394491796852516505734818378285678418934605170920196897645824577405105104431555073415997213666130660579962029950180460191311023858038189705205742085295159046834940788361426356646325007785846408621637151981538242812344310821635707499134949411079881173114536506569605095168749898601394817071406237655884482137283711261707800915171490030310664340631876548749293574263477727934898464705387709882629727579944502970416256421093923342893009447750674176353658738127927884845235354798364163861372023148328316838601478426142838858477745659593150817184409491742234394044184165498021620752125712853174801281592060632800493264895391471052822280746197201692667121871363495532875710360194362541308899105999578641478130471370191160270575462836096405968902534212032048970702287710346774707476663877086834105560408881852390071954107655550277719402653237696787612335306733139806516678944318291030268065069635231681872805789792131371963627609752005124344286465776707301256028513025448102072159688546645291181382063133105338672646833058456689270732884690802747892245666330007074376154055491157431600627003207581144276786142962970126867031031261527204553731455550880500818183968273483676283110347051774910736970276523876435155667941863044693098920687363473000284950184263576201625666394226319143377616273330233011772959359245492269004081871300315103132971905184819011472305993016203416360876313343442098244996443122361291222079393438730964720017439410485863021856201389672907476766709919695988761257669509556395857867376081204158466758562853445122764685326332230402650748038668649546663431417194107648727466962891385682736612792352307971509326251470744828417644949822753984096364654504207563614033307194920736601774210884249393119223497298735801938596175078231707666288376052012483169197686470762013901939474007836005349919149261864613397175552575879001119808498024692762239899614675876336259266530613820049246538610588795251084046827933343706311501597449719127032825498297775563084350472757586082191663349445109504285626737860439814457039113105786238183779973449749675320455247375644361464161179801348269760565857964129485110118113015027597789625681466651809901175500142463357679783555116880098601135267476630931653154693463768649014042750205650994076334368860155695564127249337937248874021450874807105339859103000545036305914166223096889165653978665039816822510151880110829987387971580837684560637991789885358632774247220718101649479994550555553571457986262898653169147682611695375123340405018507272237956018723538830089534907305670970311998895520741390941543595870406365632303963266116808427971668854216563225823098204082957779868577987962926285276332690452296775990738677324241688633768215776140259599737679003548642153850275900556857507810094092358727327006405471903049921403189234410333607191685888312103945970945244044068545860347015385382382044193512971231657293027278900467837623127420030384042536374484427316197672346720807160824481225967052721043200134801313958037873049321281239686185801816630656149172154557480424930063058800237924508242605093718441928904798119526189940882287319237167646019952793363074336591613059987901949698014321452889756784483352576150944735052767626663436776802447304961956064467672650386150491593917621586171512742285482188554946121742420027456336554515606615321646620192568151599168130562972737829526814003865409964663871117422233191558838599294224922255064720660965922765592021716896094858616452712828269235714072507437018764111127111467236371351144728805965688831860252314498448073381020342124920702978092304252891758737957245353743562450616163651709940040317615109320916571551423039200506149305699231810309159492781569398315077913721864628785039857537497797414069243208574378143198589609034315797134624161821858158113463292933043014170306582154344868864633669058964998569270550014907082359135095381216400749353056443907719392969190100455943641809279978251493320470053000079004692651857759756549123814950882456826916533475913152193795779666531349569595459142448838445067489410755388843909794919958760236863824790617742925324545309521220452649120842529137047717032756118309221627621315027538487679923430085432088862476476621942665516012130068412173813889298075884026834080738819239288911323567280755217270821662781217152112343336540592679481495933920014702306114657095018947797484835092309396437172710409980831939925057408376458519712747582270577334742739350003557437990639620859869416549116045699617127969553551639260879264923121856585571714464914017083771267214520842615141990220775530058442148770715432461787355931139817814116331615861641883461282400356201080042435363552825783496666983237914827950608677012191719084706318697639348367968291460971788061871322433772070105012414110473408095431169287660216983934447749203488933086147711582823474993553332759367836360817972837929029301047705391672359801898722874276808762269919283579421805987448127778812446735300069426172961557551001560322560200227641056791527009491072548823592472706765188591369716570861035258851815556273992803697774085189412993413290703301033243441014455947169709335979166483774185604171665230612231119503046961141280511518697619348302586547281891656550603291426478581427932271375926369810260665408957691475462721518872656398174321015496969589347239552636013452627357222738627964852113967577808711389036040095248339821943691526630297133393018066247122339987764408477966144178763903783254023114020437313476161270149623503968761120442191279158102529415013989255318021921065512909629262978709586650787095164144988813428020858572732278175670403381584318622001164993490934372519548451350008381191696597380473377282246639847745790559401255836242871606641466775815361979040678055542486102373560879361412214592926612641795757097726416137952784707919275815321027969418988431863106837259066753695758573822225844702552033596692083186906757351359524405662621235150088885776574306718237679889224729103923755177246654095570869404638678054071090679488355378579223610549856687054534963169955527090824925285449590049205372921321741161910799512476921852235403978486593787203690502687193977343925925203282450748540842566818553354152636944559065172241374215906236728267135608883419906881525181967804854343008163326582709021640552725147929146583957809622493308693574740155552607829530278412758561526921354394636963250290720754358237161557251483155706553701455286858535998575229139963530352540214421808640464156750292093723149731315842225617944326453514950730078440178625842380675991885883125977790575716137464337198923226967871980750521413596832558603091291858937340421542024617322372272243270866184050563047167073415586853416599626289902273645773908902501073226005470285257120503685405018167554531638421086739461357724916458114572126584022386001302248784663384483372260024411001407375261492033135615213242706444345099153157438272262369347851600172544773749324062162904172190253025357442030944179357836426437987897074864075460404769338515798913773682833294622854351879974351591715589816237100276455988064716299117534117448896568858007780928070253931403210333718056764703389456937203620836071417794645652861882680976247791395348176975816882560929016872896897843770472952557961944553097165446722767022242075871155962307279491926648206936817878457119380458637375713848841647746308008060493157685811674197921315448622807587224784947579961406113551619047805832936563934965220018430404331018697902618075491702758515751816051332358944097630080586396037412112801704129775420126503401511367588777100573528372299625443386770192299981709609535584581613111871720058873572545603118444390183600889918680343486156624905126722197570668011530841132293076405266985246732349722481617803549071233723838439032928666088776721160428216281404844357839194664273750661243045154404171244243287957904359865151556527925901379985284384594934416214667462467330228624809610387491077246102342668544226683951712073757084712476898932250690630169925219280408243122049977293310772378101892913344390676255770598717205728981260024281847278587264948933046794252592108078275636256949161865946362086007828670171482955617607461028600479040807750480577066822464914957118720065788556998444082503235635374859209483780370458720041560862763775272293704426235274582671886918202385212425250144961019708044942400903373764307767271053415217788561072180315510723012971600279350501459666408804470807741742124628590615581414041414006668150849249704494999484203647761760983062292534203926625304124152319823647293746931127565093704227698646150228831258622106504670557217876008406216669441395155081348120302207468286786468784846338942802294063955922338236164442529534849349967907538486181237647776947371452384487188263460663075176092408192311043512768094121065880993668432935339540094719018755293135783835212820240351337055565353657484493050992022660720903769368548308615910788171590418551955106094921175265075118147254680581194111813533167405302467326615259052982108279812365870272284887543712571063923442819511174975095516452410425058761663536458587726503335960056834241396748997949787066977494115877492735659427221057021266963666985763555843056944454367610151526128846279102670227307817941690966906578511868588969844638974494367280756339974064150659221765220724142746900571444754818058098942136502818425633122615126160648872783985468011712122765106385006351549335634367842037306123059855875798189912951386901202266220168482432190538216427015815229050373165190988167828813373192477258641195110549241963987987924685486029071845051126368380607830436920127752536457943767060824912156111317875432343202439978657904420530153080812674333698789261256396728292725198951183236137895832678124680828819266269748646952416392819068970790746988017229276473756885335518826240472329676604149961697144604211270374902769587266365691702689965241654353116093381330191689527581867646184891201595032792612788911253784873074714004300203988039952548251214549329712572959104806826991845018767977058076809295906938022303289548929648640829517521322648202537277163768484287451858979745178367881208714364596842314356108365653716787021567400278001278115223288376672500823799613108977024443585366688290444752122666401787359669839261308523823222196099703368659509353728133751367118598643039704888276525571004660818301759917006981943365637388282226330649314636088422385413506932293225175405672946050952095124094098068894748468207622859392261535996851362544860504142200226427266662858691136070633503406428692328870105614554148405383696364328072785609566746344578770639001990163872883267461434606361357713169185568887804448725018255471596699568623598142880635513514479882469137886097831693480307842960526896172017889810128490745940712069281281735261620251635048960638643599406021640653142463650374350834324634921790211394530837677651046538048941511511575679359849667948860685680257543627107026703642636038206003430299867228155951824861390822785678707010383943590427285981565312416253194034898304467500676675252839593430081291960142175260018532194854758321446079921466217541341035859514798914560680110675407009299702852952562455033601660253008187681806058918987905564708832968119316042472630302074105301972631769021182165248050262150242579586100684483666548498599149022098160604484906499554852470615923172183453502671689300306124769492489391638007652144697423414296769112825170521358019050019638417741279641706810592136967956124285919711163886950568416149164983757944720826439001060807271753125815377864808341344934097730859509236457310020365349369766402032169877821582249265093374200156012357970912642378282502034493692618285396455854207912331341279220115614771014195739882150220015119061154770828771143045379840700548949975863476060775218284606423271833502970563694524748460828491878228430754415282538615736021015065776485097015710258679186124562771755566584885508108989517444159954518676025718900960925417653586644097946175861927034387185653099252987969688545968467030482664248565769843816395445883274885949544371718757950397551961010683057765692369462488040513695400698003202949105297856471450394867132243965216658136439707173646820033748054345829972344754289060671292682292266517340558021927928705697106548820028282341325458224798280446938040154305510058402799810252609502563911159384406519113956091161355953840220546500705707546032696502230599577322389906505198970695143603241102683119304211933551252377207636121083708425544641659336269418001959230804450621256672051595130414452375798285780412380403702804163642415129260789351552545729538551159639083742979635982339062828970214681735783093026719523668372363333597642310213680722420100802758888007993246641547667242351938834112502939837039273766886904559058643566148180293558051331019345223222872644639281725234905713726099569760801705071001628517341773511914929704278324232166640421550662364841837434813379165543489028017177556558489248607114014992613772619117515789413043859996385800176471861278621083956428504237898222368041558405044925395822246964622877772857188105924419990099255723085584636699941717534861245629280306366226817970313768895736495924533058738762960638575974767230798381171290082500785297578606420767716962684856436923249686228534527774593426360531863527616791056834507002192272953778744877101198935750978703681908581738154080001087548132901892245941211775155350799158294840485550278599008279054257727059004802222041860043554741583787461756028272195333279797511939655121710039641462688893645820433874585868841561141126866916846994142592894614307318844947873473759956386174390112514321959799900128962397353177283936105049890483321407888987155481563444593997247868178565751483762931168615786758181411121071211400024190704115376458791715741126038266129415725679193901861236598693368724187160005438607866721681397331063706628460471991345266009254753907757113873611557717042800322724780930928590502092585793610123768090444171252141961471412364847253600690617490490936947991560997935755024504296965457384099705177830760275164412937610229627309298279352874380763033114827033408722598281540938093249995320605509558415020195143157791197790183948356545729589371029076008883130216378952646863743682536639075638586743182297778364184133724877726444780485558004936975992178006594562145056269277482188511257588126746079667838490241513039230169688255332534500300239326635658089156074948052118248308407540795700642044461446043252826124905280365431399581563663504273910721730959209126002642335282341385506056377043714801346787653246629252390869144802091526333598172192687534143860418437065750266369289497383991918184204024787082760800671329482579653560466131164998115233768257556106369491644498099177775809175324304427177067869485534946523483381630386896048127109644324855997991997276259604204431241870560413605188466042363227626739033376445730091311586195956561670013919598358325016207809390722874025019198230651366543699343689874339887245232506214345181085948843407234814442506579827910348665275062845707350017199868546844764784478372815245606859715371664428099648821880338065705527462180841724492388254975018906338221730684429656572345445658261695192186095582662429247556253973045101010892781695939642160108022051137324918464999717991419026302748656014034011851211223866997041862394081195818130894147955803215350034002247217491558982536430739220532719038933139240070074879867619741721713952366827720988261770148600312855238394278188316259183534146472529183368840377308710367391725921477260651105728786599793010614404120483141922841020548154467732525151868325548054661035256663946883695377437908159178377909141303763040620234014023069989029337980321402159938609319191753566129263457503653602547847317582554881591068722617568731453800681642155067919470258276302783617352802494769110995980072452921496596844367094943058272130961840253209328577007283629558447359442336005328088764776382656352850889411611356597022515532261589774419798888311146015222334191796581586533617682114610774605867377847744895946517829011431892897956675291404393013966717408941805124682719829666870360758995755447485888128128264546837168250859203228138793657190151992587652115391042781319490562821354661841814336198008984047102046184678135739894601766151178778727842974597389246122874674636750872560626249265935326229688479626879330514400557756966968594082068048915061527728185758261697286538458336543124506990993017009118002397308373241395034413775448673299881860487747059839694451024265761988463806933703826974995048397662228229291936437200646937610793742419841509512875168614664531029167309371834508293552452993833941318013698955330641607953530329243163179490418019812218636653195995635147418788655963562925865710457583973831119086337457610142150795804571201201207205034564524218632504455324070278955531678440178173139521753657599454717098470541472200980642963014564796594516838090864013113625640197952193883084190630461320347068352935727538867990082128669973450722796027913532984563382162025307362091989085580943569480017848228232326394436896792610251579449208574220275668686954352830239096874872868012385190267740680779694274920516292433045409946070227048689229788900954523293000335283455261443060995468575735389634432334763882655026304669785480793147415235667442953138058979606974464816024696762136761300844007080622697540439858115990808263295306522860560900278839395457169280635558821950856201343242637660950994749788125199324766368929390015154522521943103108546423842206507324674190255090208336361101946941643914263080115089894046761029434154975115071835654631489838989604959456865741303340340697938903580639353001973371484826214007852625016466724321090018952061119626256134328490257902075884176526063620183793141604428781126086426049643640788392403193834053812101529034739890228982283856863359797171014539170687898645040930352476659544878127545050717385864815095763378395704468236189665863585753065680897896798620019298947647899120127021546340328200789166180902599717507595087237280834872652030463165613561412710582113465040721853017078091662318905570254532303171356821259453137685734181099412648822536636659445515395805363154314874445789054244491046416959322513267632207538552034268654423529790745956853073593922182434759752794774936825249657949576485611973889532410932926819138284113566655447622692769082221742734685063277605572888904815019952325996173490664708411305574968836052042556165076312686902472914625211192625728128868756870880455357999088707819718962220387719108885889192392394454363577512469226616595472773486773365064854909977438729413819554089941658701984494947461260077157589203152793515027513194980519322754303277178473230929730706155546796660304988500294320821874627008406672010938480208191377345294415861855839864862180443257729196984776376743010872418850001892560991381329334595965284684193706719806848533229829269823301244969235713279349971549067099280438691729539531168495013012134840609236892276958910914262065935877078128002873397095378296756179736792440269123109768587392127554577033725254643294240980635174680985409175053256012750122398087935735864074830949602655254806503119413216294727423731339578552448006709332889378350263436867531572128540558428552683676162538911401406196782489323630988339824472565763917318141859381365935180842143501322828260439673701481613631860820088172764973318991941140033456270793425692041967318259623680777341660841438872040482523686715806407719121868351943706851516126486809168498255572732943446039848794662375303108169708234539967781246551268922706701229336226218696455044823532820231582555163991930347752559712739346345220771977226595492505355696414845806871918597974767009798841519178723189885959263127858690227112614720153681476070389418166599947956961143382534142664344095176703748480671781979190674305174616573657135122743706410244779951096874158998223297969374192408501985177153948219663081540594713991142929805297070204772660183543067764539210750182701471068961093298251260911109523320078312510537458295105983203866765462112389869637022363841610743011234166353946498079977282641663167681344115220088667546439729045430786099034003846679922251983487107171269646707787739540135909783225871840811227621173787955426953470883993024091780255831628439631328537035514430229803534587874741928312778055426459710282026412584999235152561433106686119815892457179382349439452110423477488944544761950519395796663722921504454956823759070211321968342470438933691615337110584790038601356986142694821186343991507071259448802041677133990474404191060791113260965210351011922665582308041383412205023699025261417839074165850614123227933097223224461210083899661088841431385705834405354778055153247840293340438497580945349646575007106581965872694967998032141941977181424620982808931849149383837646020816926711948489899741952312385180133688641682068268760950202112154262172553672865275137304135751267865932754433725772152074611102270099322884725870755366831682055847128225190777954723875731603557033556510655146459235793068533564946152804672237646772272544836979590222575630157106461456369857582957888467560469836449758573831987141436510756582733556392519918756802090220547656268872691709309782155073446485794123135822484755471151806244811332586565832975980477774353562507799928793710485042563209717153742443803469610807913596736415213484402347404568606888963858814432291491528450974909068093456620314622864299237906697168195812528554329395256347206828494897065707447439411862456397387534653343318262532756073744810879923445600328142624512776054996193759263947635262010892663754971940378963620347541544249885370948352427297565168190628444633925599772466475611862203841578952153370700537696148169819416289668790404585093537983696204570910152156380650643062919761925840487383506013049281787391120098982656678616916335084076165335564058887708238174467913104147588468417443468618792146022353802219799740179104548746793056445611895394886621375787194836864280486130910967071009105359803932013218052535742689168402541058039740128572193636293088774624294475756004426057372282345971947176676040164914668759044921131524325502089216343851662038759786306483394417871216286842945764343658181082979357582886617229871839005705026581366246659673758372685310561091091561396432401631242795466319028531824099831253920154845961461531288172364218802942056683107137228807705062643435000119724903364014384842569473759769417416840477617545135691028806589335961569749953523770954311392406948684899576203419395102989182494722753347628277599503353430235263194829646533078668093652393205225242010479837956885837946789496483642550540139937962875825907015458627764810944656760649464157170940705147030037607246189805737301107320816985974534274505576816391719342487516412414569900381278861336298228666206575175761547037911134253199473394402881101250982394085603553419725168230857319684392494950209470840399605862766792797191637814856047402395072205564056139607251320825243034904467174262716513566289799255406997392237927874717752251236937738552793270504592575637439769751722966170005898061458198285733614100422940896396672238519716989085557768901312855228310667007453576908925168814679222525132782697606576712149817110687231137893548472621861735525164220572836492422081747297715706829862527443288967653701972260892766102624219769972710429013670749051781128317740808934575450409097671056894268096689594551669524258650213139147674721053615328297525482504625815359167092814982678627642010350912380346269231017766565670952474540163265377331449724644770082636251836089506342585656645181649813649113179954600016697926189259346079445331054592447653406469190185081961790487958255262582397266485120621154579996729663068075368637944578896039873633069675096704392755429490254637138117652129167828595480083987686880289922678599518021100757025460355900457152725673766879728676907882550309373574475223933159850511318411923985445460501997113564755753219069436690949893759780597600229714238090127086463607886269746059572420045837378281452359816666550082745854987384637259251205098484151134765393602048951125686534526060673830510919730844232131630632962828035376531520051854542923999802623093498177305034228476759251676018359042146130074528416392206313773744761249162363593358370708148115156344223356312789568913043632710515535795729407776060738584239983177392261847005810637875861049388290127282143022368515296300560243215161326267248462640999422897364276445868168711102338369426484135692415648587445213465595810582128601661434568394186677745967394188311067657474059390416682692164300971372103953743453565217644441789152946152750069001179303938663104569133219217814501443200204884433084429282016939220641800050081686087318742424333488145542433512822977963789515625098248595761042596359431190233264999949047825142814712321133955051112051663435507646611010742474368952970320856219213661686844058347420510580164129327189278530376332942227005781507099980786974494857597514485535775795202139630950810442588802446284130904735334591076424768391666871778892784549183820367957203636453655583063833966414851877769219484022663310150876975001749873709957121934567043575956199469163822842938177462336647095770135964297912550216079608885573035723522867607923653221637902113958330370362233839161261082860411434127133286573710698597963873101424700991928207236649580499276028562592634788489571659475432902343486489677140027158124403434867485680170002126812563323767484573307332975844358060464765252329501366747744340539476834246433958041041970605618503324941094470994779176901912831305517706892208790308376512094582752505432132594469925171042940236225603715323437675825946381775405312852270050829929242144446205914192027959847537404814472406501760625430753804671798596810115373812292813520618359553310436054088354900197814498289578364989672207167147071527199691730241089613276885351764944972310805946738959616984599243261568470775804176808341757711005828442499490635770465270096102263297899073566043754539517412732768495681784234715991950879389573841464665001373634595686352745941671768973486785017097125405652514992463020029225377623476866071961459755155555426338503127773900410995592862967740916582517285185978165196160587256061845528719268455057272556329146291410750805518186253732579158256340815892294079650452804343273516282287130386953531147554861524770092863308154800087524729399004657203885443103890590313667612373220834142423964978984331146615275248554182058870598157848653089717753722107792550456726476332989045901934857769937303181503072856272426603609122479667499093064691126374069982621876839552382179992043720378187866089842172777773680815073832272787169817007052900152762474180285843962751794203959959742626665721292879275569850051609315015862734281183476581400890388840004869612356401461857595909553955107385306888453633705140804695168133972925550277071678750756071382999589618908414116959942078185518580101904841169158709817546695571111146796698888933215918146923129925124590187715108365907540529094717721139864237852760951624225901586050748668612025745554654608141880937785457850916551987543196818885424289516368588104282687853869660631720103426671847635204130371553018218414160322597899505860581424138193543083753216526730472854474389098832871518905133048609426088213334672560989365495628889300046378022820060087114242867547350044430790393621990214210626176127686519760801075118893584020447459339585982753663489613535697341262480876147406650284620961749089284237931090195920932574310641864412733259507400483496642445742492201660736254935397724626615132056111503724292360232192064095357684273491962283105805162105620996265374940004745682406767353143093650633037684525295153227081842364960603397203730133938454316975697476330112063908026613331570782010432590246477449359724563893947403968697157502026501489050372522525473500893885408057080249065135964424731501689079916259023053948820158404406726379720102292283361988685254256034368982317847283419796194122737147599773606512290157672302911955390333311434852771403224758093103152671241814779353633235118068971383289245070956000574291783873877917516563697977997981936992588677720304255556289984771378530802747397040171876472798165545170596454374080576495286193563360754131315514349630373250494226307797466435034523172033354110491979920785117866465589468231322994463411889456006187461537764914729411005863474780629953990585888735459298721198094499193905648648271200615452801457968890814148182709854900758645249982142635670945989445012819089705918572030369982242208258060146136327288427976553735635239172026288132482502012871055239612647422282276117632158819081339333071560237044105232640187595473692968144646972916134043239151224575386739302090409615057441903211137847763991424529135098069096834881213536640097251581871766819737600868342234879808014453489241873161131679158674024868884760153327409272292883914899381363837423648391715041158052967638418209925837473563559505725484856468731248685055653684801146532589024288441620342461652375074122695179119023488564272693743835945969764916870133365216846917556414911540039242907868566950376205223572730776844702897371479352468466776692237028144209747698237508622152005629749138462813441953498999044037155789260451140915593279763937928975666870529372723070507151532208405871557114398383518890852751729526948614357851303644639422406416889919332354167604897977302482911206079193131968149756496050453972929404964958799328958479975663947780303717076440489898463622820345942974113802309374343446001618039015389857231399062228119147865909311274133229692991384626335444988984798422929123909843353885338083208861448044703690525889083477640731653731889685469399098982998111141122164870017042418255807533588993568372808088161840456805793096319331471204115637746144664287476782258412705640895712187181599569754883618742665746623390751742085142636080016820254451428185054347924588468604538087251940873031947820742766151601382406492715335594575183270156722645933928893965071155854047070093149155129375315335690460266144457377780907637670937326913905077691287398170360114169279591465804567961802563326095296945098361324380196407713553911976550507018083389202690206807175252299802062127224360244950372379761732597274771605321061596730645330322701251446838654955898647671868830408058538816239782981759414670514761035496891049055726521147241911525349517210576704759267185335501283017832563887225365036289810628702240650402767557622615803223442248092846179676896208852574084675587476416010953679484427057915879760700282054486402046842079789961884700076361218273584710012032774900654003488645575081915600640967024028194807937849413553119456764730985930699817332434612467116558212294053373852579361713024095014048822790560385137103304606562472413443536603981773202260160490006833706783103446469813278404473929787014778043245783426946963912357536479430827291251767348950466529017253127530763405773371558901520689215415403419041375717634966348995674427177612916283421566828537695299143064772823362660029394965762237952232705368844252573060593024128465108157101699230765465053156814007277353893315302752920815416247898021256156413990808537483643856657604249509944433664955289571595982551696534761673709323648398942448254057108010650521945985124734576888222715495346113002284874250722563709565098817999020139547492459987040592921978763292554753475176881628454758287205183281341534398512580358319101932976737784583452758288964946466235528508746459336269570746003152680309580997358538294179171495692701379441709676915384089984679067749125734030067199401070667917514283418853289745800527584059017055928275998621637437747602209704143219803686860643306369947752666064285859450495999376866369069958718178360009663342124139354727238698480594032543506194597353769968332407692148053860832688978174406579865396092200992235583814927695770308622227461132799417172564615302907311165041216026536973445764575975942285709180212445451932988240027182006998170703098761166979276343383249870077306828525994328008934055916113548674423709650127173777245295842118316928136497713770749623136120489575559927117179780480721133590071152537621619553824875787826588937153180129120685652357303427252141484554517811824672130654274437872374350473897177907459069013247548189785458871602545391329256663063917125269732256647124728795654154757424951869541490263912252163754928742800495220176258060787435435468890905669204748088298255786724515692201942037160668844400119591507691373524898842396931975228564933675366858927033980731908533288000844955572884678898555123836322928654064570633527409515885808462877885799711485886923065164189621292720030460774217195800605590678977237301184644510734473001737780131385361365582537734246561839756687186003292165978370474421285112510963426962164871366758747532305844693527191203030878509519505143299699000573476184420241322058177155741986807050297632259498171210157571036817365800962763725030458940020683331365108858293130309997312427480197359872540713253885779886801401811181170255947848868426896922410468028957219058677242647490655021767696286669145892938426044136761748516142331303564297745528798672214510269408917318253725859115652531262860379609822561683635964335215381834158806550337348123526519744426765789625837962600431521026447215402062387321957257876570548262996640682017822751614652546239643224828872718089932951249833783224633237597364619044384241527667931483044423029026472147160438688501943243698845655538138758127000587377823810782201911436135915506264300560080891773319828580386512123297815305700537509407197966091655192993990809689656049819921972778704695121770543211737839091398213971820503705382514915203007388022138239619792491465328455921027683741334226441692081807450462665852911146617536257769719760288707956646621862708675247814164899176284151435289836592266918834301616740918517995796645155247171536722801843890273611288310281223905650110376615814859039756426563522523315273483373115948717170162747195031870545311513123830548220083070503070457315320646098114787835522822910832544334876443895805445021417091353804751908890091580882152245810046231168670167167746882861325392587464412486369667246573088069219952455844094725705797072885436152957649897295943484465521840995935143674263903580486296420651794812720930108949705931030268209318877889331628610870825095526151010807500982476833226862958249663999434129503517874371258749623752959262919373270822503401783934258099223226933516454113298634774737092064254920607966627403199529626213679386561813538961582015731844445866812986056018973495520254663430613299403130748994633789562756058258424653523569952680182704955114782656628596144186064979731050757224170753240978059521075730393531419439263840372702130615805845493402300711305972454658180980347071123088350615461417071511767837200875227655196810714216629171766901191511278649805963312172842093263971303076705574185768052146614568362067237843410745291989456993509168068722544129044323677523195213688671809573449219533115036685539278518255693742451954216459333406897368763250855605637443017072660251247103860219176740192533041688833699940847825595261463760641908870814679777076694854941170290740273524701455771765684250223817349135440687379439295225768786694889394579824706430545714738395157124482679274651062314887661880137393843489631061187199841936182449755228715553622724949702487649671903747152692045186315215687600037117864441264133201841525029685790967522297476716053069498283243012157185660142000983968740453137136563890362048996963387583417224338758675459391597027964887402630719317224205235700783484556333756976740538086055498795649629268549490378552941760663881006068764890470593737930116521231999299032316466200863000995492931631894072301505717744387300555813049486423731048812612284519586770514824575910929782803716365322852581751459648386337822256395397694843728866166742958434833187345393928820176370214475718620078613462741974331516705490956377178273640678803668904555142925842185949102959129635015025022672280794095840767198069375825941090270330038255355651778141671333721988923811295285373811911216559052056812294598179498573867455428308521593486544102546783505319238468317094161344030225511965238989301034297417435009389760468582756350678407373557000869791098173464177251035647855244691087698890543816044161625476736503120044135555767795668254282040973106979712957641272251044544848742863743433413449125022053583807955708115391300214568462121478802266550472222022757170939849365075104596766170381184194040015332522601027098011120936171355493337357631685534795609370907262900150924400683316114554279778468206905139181760682030040967420745539598052652732427641621116217608863864704238804685939403046271004796460455412689032604296219877176999099001641805987869173815472145433476726665440127808432710499663977727739050586175897692537188521987351649263531704882076783703852959790942326460097820982447315081127266205753673037991114776642863857818398892308426308840254125560136845312414210730088291650758968125239604770646438153166382156947316818112493754460804745040982230327957620167654403946154510187945426248844393009480030799337486777856203289916904314411101731476926078203436056115200851442517433826272995360868997567621609663978290394379149765482003011992746218674000620538874894159652802315639765468162873675675779554196043970804023788978191289055219796054599673055130969649394206344025026016322622132264736513236639752827220232637642135369715136488482894854098592497312434582998647986276916791794440444528505398679390926310744590450177293752011379561653383795922089232889963551117363451141970410445818132131989250547027094566622615819769566517857017868651367408806380066951489591483281875878564886183290124252066886798318523749572362890325012123346200182466723501903787966839234779807883201924071098655493601622206940814040825113441727781479943979362976807023882566957471100356720282369648849364331426089009438407995974946831825422055403697596571231573026442752515787349881134983760043723525815428867547941530016522263281986510901048595743909419933173466689203326077089883114658608215608689985418948597896255328433630266617612346210651821664209180889198492551272819654707747553291375967947447034030665312399309534172661112118302439410407107047817452623886498908603451944232807358283724808033009263056498897458379496694392802387469311752717825120555368200170659474905045686706343448896326751227227169356796293541105056284057395137820979020964581600301031962990751934253636951601743253027443470595898936575173656743269947795405124730259263460028202139904524552324330071741348482301546261004505212250037614706275832669364831284261872098824348682504839105773119214488987050717443847230417362657246865036088672086521787411121563328059713459663754761784182356321656338957943537122620494369220375711983292984635152446048183449633612807318018835441877507473722761119128473516503093875092094078399918737598953349169647088184862701287116613494000234983561833498297427169165317751716205467800959623386239736624131302504202862502074395882804095690352389093098192976246232969477187867156373789114913109134127912452530382444577467580590526320090166136874497088286812844406842327202891079413741686494286644962271897695186801353589373434736485443682664179914508303422018182072169144336461968689525373665893073585950919311697352680152547202522213071835527497952508862596093528640676300911958571305617915726899944367379877554792770626121338972085024199980268623192083222086622397132202254538379966495728756947092614359960195264722860005463649607510344314645683876949135991122873448569569478006539580168111500977288647218085904339842570280188087859815491067254147607823210210361113775992047246846116798045959445296944352009714800426902273905986130024431237493561661707198404684751874807549234931511412249145538816915782223901241105303008904330145982804116050630461738601081756527728431529939087676722831348868458919063454410991973221951822919386813414084819162661294070549805659409413672701378064450339553159724683915050828789028328525552067626540610182268634507231606586082873158853853964148657248269940602369338089040523235805220631858719262775403675984972055643060075640183516600889830787342369046764077249312331241395254451715633718847098372227902099778676165463443151987411702706228060479266017022996450175905641472284271258177056228842181985858080403522487122298954462079429105939385569305141561868308743369080951241041499261743949928348201844307592559563255863311822932866678957986712443804026441413977340059657448921252459715042750045184995466341943589405443857035874642959350424980828528920818725732774396084449508028552751053795408417849896365550695285505008232454514693946913601971734541385813335600263800812671969927054009117907740765885997173141749868353026988501370094046567669400441851427654697254119845444842308935746126204737772565701470078392235383235037144906843348511937682067147749791969054358130767357469530129853182165365734783209429175450267721554595278863282953664020294673151197075170347910882190777880334370012837746370979353112657329998290140345155098479206895099522257957907403938707902714253391240976411100942558344662670644669231659474436014561047067188588462882668060422253273584894437464933930623239035761709759087628668867281131943003461571564349934954204602380936337679179288670720480220309961241428493487092871223772702950238381428002544482650128273287199679420414803670943591445388980622345888850243860597139719474132837430117162965759789040983329584988756199513194045726977428449251455240587617995454872844419962166117074265096797993011912120387984720999942333764860795281311333524806761725571568281152763995336154718531846489463483476905422359248059127491908175177512501812367547167676508836193283308053279719548681850287756486926115355647763070661573745408855193806155753703713853920090364578022289977247945400475887031771730276254894391425864481854957992510143166689572101598356067804823854009999653296339643521258322000712168568858995341920640266746785380908112819091578825786663144058936569656464970621252852802661539587912273020977604666158130421205155968714220404121568155268384885489929607192910882935296936299466916108247536093676954735659068035592764401776468668906377354607054523097303837102911221848139369692466628872196559324786477714872221315298899031867119596769776100902499323806545181477899562535061208953005744698770373851303477856484282401139936063643367105415524113564735341820288564697784821065703974759747074570226624097948799659236630795176322096004523186688502197763346925156593817085018807899670978939266006733343483645917718481226366933338782827356115065569701316543426033151997403461675041387210925157873432976943819550441934153429936458534902331177560888644603602869751022521584594219540607374319337393229028622601510123061124781096565109300269735210969756053963348443315114429375370058175275651056893965642395018817974003189708278548254352878210040311132123598537227340485794397696822487639846424683866897844461763739225602399355992045335269602624505025043593219250847470324335420538300927497337589863037989714023834871176881244038042670916443228216919291246256124389110665323110795172705562969549629191980478845909492547567224517543212493637420376082672378785327665995881784609293921500932918623513806175720306723285476766701867042812984808021157929684314854583567697657385255653784423866064808097773429968582272143556638557829052194091086769083053579063747769719716756441508156853797580914535517517964169881085654414412546087463177283742130766320952720496836194684019187281386031850653693227724758476705003819818330542603847030414397509973094933407373010582389346248244211653597175323723494219310475028705992397449806858603854898201097036115864113257704393123275469346900680944830902001141291531358645795109139548128041252723875751339411492657945059564798394907557902132964368279247871556400296108818841475974254818440366394371216676035599987853188484170586190636097958315249777261617023434425863333726760778001915210651599540360206042869135281747538733814942352647419445344674343902191356265631052948244254897003267495710819104852117946041686574733071936046642534115034941382688463917953849354401842936529299678936056338079655570813675204591335006382409866012555242314141964575710861960038618958909292633302001020772439373603981837312499604588801769421591746833457062902403109774229667279763284418704777949954538318512410658426597745837242592876345047502577441545116421879061601677892342993970947085926163131115897872428835385538355578380270432132108952055295109354875578646116187671303429517945390073314411539680880614586840427778787168758490360634443102024132624331642959894711874928995312160191897038075368225860576762634014171363019771176110034092087289728188718010631058367167399740933522078640223611882755473097062197333637727595310808607386905232486820248539156124626360309462159919002140480064584749099206950644662852952786478570339720398267374130649303501008907323398796524658953224593570248396552869141729049823963010662234401563637483405614425364375646920667738890836221997317866331316808961130356103327560345247609910254167835627249074813075745875289723533530185956280764048141269854542202999440956745725327652847063001116959729623927034532730687115999704700275123024821533862565536537845003541956644268805571537171344712507176446998441978656194040461155423933029748677745563154966233583875509390966674501179179541374124386123679599480579035198026548105320099487442198980430953739017004125505217748483379897089961772801222498946655911972092883306347998962779451558782625918647675282865135591815223989463964246768465178919983109743000208343822097302251440354420689697424756174398633550911025621477548754528978598616819045074937705421383662805785677729593493427563746434877938269254831283736385637991765326689740160732829337949315399207604868836728223578779260853966604944140307274003075307538568375560050683252142998612711327720636722208663631229415624743534174148671429359557973304144824539887172827429414987608992128678610834972176824208087499325395526586906000367029205790235646729009502525983506329965302738422837957814067990082019031928857328124109924889581498300825191970213582912974283335848866369507479171396031720477274802082669640133771701190268772702052005687983332043423327054657333659531735955743859078754241284405975804809363294291878569638659540418309475262051203134726413791833453145649682886026611180282631006930672244975748357786958064062785298352932976726668458184195938063235101141193302310069728101268754280590733201233751687741126704835892120107933814489708464010935976623392215803422627882295235918896640829758809012844381922393629605510941370171802650901232673376765197998374736397042881466003448336697572163833644542838423094673205296321545879121075167499689585617979646776868516276072079817037278202471312594573326902690788366043830148956107560825068358775364706485197825048253571895033050426116106967014360854680753976198208321526047988410752943616209020196706688165153785699415743498123017969298628104993574926087468443089332171836327284144776930750075191878517215850464644593812300095270752725236251409259840583793386452294620494597634278115424359011439227179479697262985000964897582619942031207534064818273128955625115410840034946451629719037277512112077296126752449218126395980558527170661611930101539768893029779492684087290551737468477529381312962997594424113790784451641484118918828500647103240488958993707392694680552909554108560841281935009525409687416770188723769713015570843312927161601691081286330872142067904609064972451004575015033027626671797597984098932331510734883776789049400386201191324870413685642650523152486928984651913655334001242468416482818033583684420491159460531682967394960006244074284270162943743162194053264987645200122949654151722649500291348890233003504668038220460035237595553581486709002402265217432848529495243755936137995761805165518131706761510023975568122579143475294369216135232405515184986567145698227432434606837791413223610249777479465038585727384691207930191322890779526569447023193396877053090965006833989859191189408768641253824694454253872411928708881375293268104022471665772253264700795979860035151070749975475417948239512309592903110385806447781611224595883901485827793824038476811409396072878692625780811224246199389620402999572693663767847941573982365730225266065497686363164747710522118990814424690419450671011562026371468944635588901264927010120801032224888588186708219558965551100915065616397169539355331115786143117745858441202971681765654039093715253262889144438699855736515191494924695117590350608167768701940051938767151725468692479012967911193509016951287395156463397096089529170084912698016650149039825373040158498412999094730317561187629648303548413051899687287744515758955391718578461989256565221353853672255139619019893933233865774522185814283230137335997299582024489080597199661695427308951628444433786221366646102827165858611265110846949075645642626460448831262489773283891393581398845059516355909803318118860657688510615998581132598731001225137246316584860567422724832044929991630409239838159397838427906274554879433567575993724297087116346781678572330956077870630473211960541606806066227586788052657482059502201074972316724982194602502125617023055527640174903700606804543572117803563051286132721762653894093466248645753466701871014285341992007183635710427641458398411362729314452140098575725746789028575631111346509009981533930354880263118842653538902475943172066753828872862690238106237980502084222468646677494505834682640599262059797942320057591417160010377676723470500438588562162170752719378373549178058541373060965696763944793006840275565703635926499391289802257728604394902825443137496617972467346160971672322456786428694141717688632051630991749889273063289041790259545037501840044844313419800822127075102835202119087021453516280079395370485253705524363563280336728152872018249449252096641016541102373744182513731983101720742802143675204729958287407131353497287211799476028356659304223241816718051538265417734521342218194865355676552424745249294589257876854769658243605435586337887636719692137485883624755718202619123022810839930809167031765973754269184182079283994276095773668968267095467540295449258634655102744240102299622462897969538136415106539295076337700799796645441928921563746778035519923762349490287866391702784558506629959576566014951890589191166339818112833925111649204601602435213266240378827951348927911924733062780731661496022008894714554944726049435103723935109163313166875996291039651521924718363332377394009345984495491153690119162305544154959217674985523006098986036078671464769089450084176960089581428926248392803082351803214901720711475547255865231552130263445135834215084058825796144076294103479231557343973378140452355527802123063952410478020179737914882449063692035102653870272784918024603168479512908437285378395359934089202873543551470643868976481978101667399104648502065572368386863010400308555208315241968178623206822708727546015283554197049393517174016147387188971492737410919299244710310531289046802862211051753220116253887623576227760925145417444743030566402556187924628319032731263096361615186029985544747149055114099526424843734177588352266294843649391094988807515976278946512728535779922136466257705480469598430148691571088876887934328727679318083243424678176360879558896285102278148515640634448381979413146205130398814636623522190268631515044835172342573610257205787099289669160307268407436536085349072920443572329591407826802725294355801538320355801264136951621666339888006674912531035297032513353295868855434433073311418662746061373776173567594482551853237994312559987026449707545167811967782985478141174145274374447274078098544121703381511955128697024998240231938809562331562583437269815126202664875108757871432194330534168358750672952057208763093014337966459885524916193214431429135076525239966920291937011461582977059206175821867021251706561218253735417594629327035233055053310885181507454047764544593881697541056900987013261962413889688104537520497661140862328932162680117847021270302460358669179458038781676995063917629085252169548408039065251172040185990286536054552925504327108829543418151336654505704200930026730681255469179195969017732103374279470947312131490689255981281428428085443774619306186967621740047776253441985894177463167983735879490153762314007378736694237667686298040848021184429666058012052182086485796260352403109526465453602999286522582710004813688182643550244328175729728401524896268079265764504211504861398915852242364944962941278686301737112075901883312761477040312624852362893002950247586521417510097687766395757960181661715405447631368550698238697864089772663005429506735513669473967854257441936707531764479739902663366693594639557504270272007031877957664555702200134676835163544333746451428042885098162664119802180721837980021214935396720873783209308748255382983842327817426026423862448626625829795054062969212155249803839691798182780623342088901504816494136260614030287826507997100729220765532923818063528366445782705338181759319844437014886800490275401120895521534203880685412430955657270964305667553853839032714781742026953200775142955669297041863624927568869190698714918783291104117330551743878354749231166299227860459869456583960857647752396343463000538876264379578041061913103227289485718676202812524483354564046369045398098463888556571067423200777927793933263548007745933925679432102029888030697704648547787554507468139362480244202287937271092105412409910825086280175891804537855945661847574912282972872114382129272006997292765208554061104805510200283623657340438752669897231490229895166814981125745452247258514248448549689691540772431785905881258316300570830059704865086559284441781895360575288406659533142492891000094323861386480140174045376493390278215031922987606921778239863609602876853792605473074486516074747747895964725222783923387834416956194538468153972292142289941037252083660976986872875775108489268574040620329319331679707462486314305842487750605574225777368872716304779440809709703462288000357234982703690005348597163648839470813088715327338530054731900050342581228060872119790769728442323690574492581918677209064027563425329340820802277881638848488906519049896764707655228981034531045586193065267001184673926670604119364483396916483865945656024653811972197469967233582046211806209756685708614606423312489908401413713513970794897150746265052621170312910060019164830054080300445964981150980909513969358368579377124180879166231459202759282798125175463867105526353360658112726121267211941612850290279456432490444971860432991680631771006156916112535247050604057134382604977970021637471621837628702846008362945407101996338707359070891723228217068299548740098947979916045046086761353883597069711578682702470666547356144822902186786896428864879596549589292860687935714684446905675025438895770503118678212790640384362550342703411302390711643988775462158837508560748056421167831804359433666837162935320411958670649255072579643806775297727951457544025438230999928307190797434950220653361702306389067657866803235937621245915712556857719490212220013726035731589483354351432770656656717218965520398568558155881624928253788198357531525894160134945816647193279787831881939990743228011628641143879746002447505398578777666028172856341200934827764304090589177930402353565528666662186009045869978236658939768057692051229363401741555614422828870832752511835475448981429960014869633540066596715110052552685782614054281011777390684663841405342447194654809339036373834403268675966740658913014035240545130081570781710299007969175838446759499386274906868308734407722886373047514984362556233474761810140993604606514505330138018582430593691683702076480879298569750409290085913593255488776283984801105215767125160845563293526992584743462404917552726858029943756196970438001228027023530436296814832610944193231192633478231736326487203855610273341774207795178804601316918272094208577190853463561209512017637569021469376610794608031943441463169302536837262147299836998946746198345193970385178536817966382450398579087885356468733173621098999976104643610977966792403348765300315186288839109546218334875672648286498400121485564307980149432976720676804871382540753349312945674251108019916346509694804044187755713212197633703084090866930369247428536971908902598224241055424251875702016184252802170168414387093669685846495940320343828127705130447144329143878974335844376374845364441279879748944793927272610237358601127009731806926557421890584924924611910200295860703615471804201254272934360057656951821062438721162007340444740184655610154057011645209866564964806351819124575831166337397419656723033369443173310057079040892492120468154675115887500945697840562538446941316278218273551482230968110472736438122239469557283235373268061507344715992472766394970577812241842760070979548541283170940513734628815571108532915394712538673028877191083936577688398533843135795549341686623616993485998522943361984950247902615327990614501130581095416931727135801250609406285317126499807117122607708458968350000604622391082166225562302162141837952121845152838116877169357329025383549624189220690966057990265314177182932562386282957233947952108376018969018494173567005408254512673586661592397777194792384115062204481647651888592030356716426657157387298043370678097270771687653435502296212360179628340274669134314081695121195148311511221921929375023615663575907511908091861930569570327861025826746661620219980888399068200732667390661606482358357191246690971741735803591232651907959446646097945827779524877415164081835651937731692176562123994267762192468926095462168678116470461829330046713118116020096914321200479390796685048218034434509101209504845972436438239562683065250099344102084420448318432328531281898414601479410220518754617157877252739642581337632710204636036591663379578182130428459383934077742078671334144447887294527998774739681627329631172957522290167397133557049744509334816079525013843367532559196145071184651368147099343177180216946551978198672028356484971790419288230677120576302282564566199028793284210881961250766767366015186305547605594546129812247497107966079824355529851893172877997077562948538403273589077869367558512149341748121131515521025743352719769862130645459635821520904864193198715791960877752979218624380735329194427520550396327585667413229795990166437806760396468515653899196842691550784504683743835500443320273776756064460106071716454253875850483862749257500473112970506512553530068551540297237049570825965136247629087105567100246256086316084449247970471990935978103337679543191861609801766236190848492659375407457776758356521187399277697547939808393438239952257339100269403344199136972700439763319153044732566164129898772574103966652900448175018113333510701052886652619754910015729966368668364062457828354465843765857721647872442017260901082786166014699580973404512536814569890239568778948241474805346034886190065740497217016380965670344010176704669895226963295603441495110316715782551246919429609985162728297942475925333825572104311213042702740870901588970034351275633054035039318546856813838904320206991818016163957799450172692201566831708740270671981671789056650831078771172892049308890995228746438602805453396564739243696307188135859153373348469041462401529506163278738860481885788312344487347116841499955433272606464734798302705956951293669645937138301756125209275993569288392119697840167797855214807263508326854551147315399712747833191910649543297641244276189196526389641865151918973302241400291741984699630504161481832867615387360907403696464488982522846142113550137297485507361472327485600272843568142076563253752621566685964182479666619077846316063564072623141298872234368818767961311796369026591886432863540647512897790533123712133733365116627848536289064850852418034767552732288610659925376030692523103653276956558811498210057812215490259512506315220014971537839798050496231154593391495025624396695792071222676012979241904382766864841680400315586721326615406280819633918025751537762938851750108471473838761338224882060196713775703448985782520768130187477118094079865927532120266101004825949295077875747936383355563411180843348281754393117043373400126432114600083602387487462002981213828057981695001696216148249127440832497146037957986352005795342841486564860177774978311986704230904905555552702473863887436132911750979128561687430792855698500097196396112131296956304731518816109180699213019275496161200874182136467254225458766248554155422897640213128762061995302503506397493260096753731200079984287367331536155349169222424989346396844748019968344041518720653222454721919735477854015902163170639792839991139246097587309024959212077160368648359204759676963114293678474485946413438153121123506960791261517263374086744795210637363816481996781975762911379316027293843967196856629659827605458255745525768653103846664681725648975976665997456685824086709942177883617193587846790039708646495741663477982843522658535452978922223114954798323273134981932209437670000413252857861485460556042651940439970302290834781154614318400117468978942633139453210053637388613928798987355084599388081690761854534523417767848674343158745926504057440812214685138987480908884599128683437667790838546827314622781329250425282751228802395884847015380419564762993935672331534481143523752022688232751178034329140912083227486923775138561506461719828117092575497619697839926465484610242095276049118612030748686425627463254565342855935226537759774404458482253202815676972347391007410286089891105062041788318321827456401511208835965935191437021468790382158149068046772749975965803768943421983871674574884756907196181296963812838880856438216833164358448865695388850167526327945077063372679058337833216868695692872389887671711243008504763115853851304211347338442708731198656926740089769230647914148553103729498455070508258779087177070604831936338251545926877156368284708812915676336401316684973485224037678562733961861530115577682371653133986369075534841665016637581794973741755592455670774811445142456330022559892810990528023098516278100486617299718669694983733766412390770799129661733710894989427284657445296466058948506483566837927941225142961122428113796912870891950182843808640234610043238790822655890315692427191146165296014923035828870408733476298045847952490500341103401453086796339739618899416113869289906487205686007580242334828536145471567487707679005618199502596122281783681599810113015720413889402221999947848553655360741823201557844656432791736537934631867566436859206360541758508853619302198202177820317827000020294740841867945292264777664778584927045982856702268411177406519899875828487321184644203496281049338044866192358803022732886832326212733392081182241299359148986735831041766051120249540895641153620864345760703805510480733880784348338352834797146465742163589631381027046798894649840906311135868097892521120388112993564743111626040545318689512404511849657961388673941371122670849582043927503434684994710364347385541074787820759243380944671947094003044318791714452578835675162335880387546530415012081055972076373845259239684955133352124400586207235011573717919582102699934620180632929850696328230459301496459009630193260022374412792404283692235067454627359954974093814074512718629177526180736773250183707126593310326508698774961023910728748763984173595715264671301394592468746662684633632786576328529837949253996814892985044296408097297718985107341326963160122131439604637313402111668451800924576005849496165231428699286347202633082027848884130936100554517419567653484726068972528086917543153870732895924807673007671164065921489563614704295797165360582811882063011545824186799213891933372602139775321689368571894562568402604415403574410852875684980358123596138114035501769794908828600445414842759858461591185466752068088889468474965359655366657661709549054185865215350192663556905583415717176610446002907099572258987046690599282698635370946978253187738092638823953103003796527668855953196713037390631986187004833055261151473600243719595344524771073129899587274794576069681697913110795729656442680162890808943606256492427065949390068138471579941191462904305991988803448754592174859160310834588986914714132807692972526110404354579919066861717652128096480335336248012890022992176506229144537380282559595496428049334731737755464649758044038701088723468763114797048834800319759270598332971322508015002519266674928159592981979142342201664003339578543597176127185901256154543176875255956929355936851367021408093607623455828454322725893593046187071571702618069561298624798603532555618492187219007103281783715913058809129874161720707707619635887420716467917427441533627289233670811545641560284991825616908671426987915842526167406347958981780644128088636467976048981214840813922978689860422152993024858084096777605783087282931429998677193343170249760156657896109159762026655175145816477215166600828517601377414603604908547726565698528140814653426996748461234032185433522396674743633655786167201987310489928852073218933055461442261240630820412250344473069242011335628524918416784839469687249519757433483266630968929345842120140321212480130151772834556277611678153888219586129485081918295467017600550461526204705162299989044921196883816748838666827622644709562740137328448494627698179914861907405002585097985448509699359472716569518866776300181991958082020725993244538646653086648848937196945924109501405065195305247224577338841357618553286945819336068042435579201013395824988388681314620036418639446982523204863385129029946878585511992239219816817625742625237721703213755211802068238307228826794449313069289296609309067285715542635831574294813558974591359131058705815119527413649880092622875523975443482611301964825144687624745362492881711851744509316146578201401094654215590631972747941511272234819588546281638456986795178881910260942373975473557346296784960918865866819110996011196290175287775538543759569488309938318325206049568636097019116770065419570146788519139198804172870469740129281445376212010146839755814780199689170382131876754883644595056340212944418742977762684457580751025144228733988464255308733965343035083317075159238661416777509452020931118150711251052832662157420289763852445426953642973125259419191257593438410443593307531580292810847824099682421375231473266867755432665593122564945994709024573119944335014436786641937993971449214668453769877863931056665442079340299489697223921746466663342412372300542865203223839930916635394704643159398512391346042246614242516021012385085500786850295543584010121729858110863826215657064121197543337184398660168252670926466555722166783399873362705097636228667194765818775580527240211996002965621313206468196321500486693748993242343939255066214328757478152894965891495711399176391659109213799563225516816317463835680260476458455947736077485853872594563637645927811358192215926805566288467975962863921818176187219317510583419644051063185285158299804055738518030101553703831351748983651714411091736730834093175336660145113578992132864098002448501885060798038243722581838822748796882126484281278207626117557607060098548550889796804219011652868547776810692704600966588021199030618290932470054982911619518526497490599503429780634704211268823647667430109076720739283207350136785024332343865006467034632023209915631192215811282444139702470673018238677875380709941892523908437429706632070538156655725099703108253138237704430758319638205424765973456499056058251696516778089374072673922377812058019639462647043956275974619943163426772564466941894024026285188757425721058778703556203721174836913219256107235396192854966473168816218806450763777005298184408211881824041464187587608212234957973841357981811685040891343159389077514288050975982915667888797337904978921031910218043969055159248993232545350928112530983312170197389904197816911691498233402024116834870257640309856115807013187787617556683423868312825213915364628383438379807294790921303544517676499706534778854949714384467950756040747460099596899589681747857130346925997015292179041833517085625222258573317261686779732262872007076819347900456616972982704459513787016009759156009495154940827968879287749983849069274366025696455591120311780801731291452056658655724044902129102456342239298889921451856040427083517025936642224606254417257550960102241015016516980649411823306617296229589877073127566483927499908303178373257654383513660957558630063188601424012134215193216413300221010537154322566086415460964745538978252222792410869812223897511998274432020634716367782514175846414328385525563130274912665685831678471404271976600389979292034746508679004264896774459191847486127324556107837172819766363399968183074339042984632974543422162105437652932016450935832816782297236753861202230723937327967145215245352083307180593498169116069068564594005396211846286984064877507840853474542413991748099905715508870240016522501421171148222628646235013611384303933433847155874578427012241276893387378940111580018232643060936037425185069024274461440171300359815322279836403504931248653467145393279190718878753792003739328419045681891603624549336847202119544714456150110302247664119470499553980590369897290930051327505711725131769867544526470264482810621670043677049951638964873799617484249448665224203906747005138795419094228187938865449840619363301529465284788340220400143862702380398238441803151468571228747326324436370626973091191974291101260941469671077533045311975189363105473994247267924606685966631272277923445186018422505016997870526267837120801504141234429322602445666603551060218839923639033008724660119301386016597600373745031880710124160644816137847059758129941444114828431137238617632377968304608137417952157922075688377163372178476222242363645980695037994803138518076778221514083163460518572601946725778346435422759084621751434674912724010952462430991962093532954324011600012267486978312803560121386147549165488803956722744258570602858366754702084352845904553893724849826620084625349031884543693761092644308502037024799863575828143670094134372245223365120118214972253662412512020801766604838483953495688354092321107576763731294835904095784768483570693388882065273621583806037418334177426649901263635117460561582898048789730459676667939945932591965219634809923123593077279766626734452063275349907361915718006598854643042542230047824370667275083864301245125630768786746755766914972932813932206309607072039712066884613574961322161434407709180146619986757482434338559133535859554571798016681227128295082718124174872594238733983487232708977976955543544935039736761911955653450447285486909140334065555532568438499474068743183974341899206848808170774259141439702768817147450783973970910701154190906007362175185153481442073574010122812726730096778056145330159677015128354828056160278502350993665328276033246901436413972318890645614668338416403773370362306767995400112432860246014319062406092974084587278102542373324946158054170786854843984241848505729828556418683331493232428849391830651866870438228327142179251553441926928687775998248876500423747761900143093619031294316939187292240792993976803480892359485868118924966440213613926673390949327061280304451401237920371016679654487649789472039471179926217596159647898638339178506999248100837435538814510770275188693498452689598205778311853932171159473261503270965811025574269346919741819516900441865085352076766140338856896955885254396731472155976585293031802382339302268898698221264405974983531669398804565668684187353886378986680859420851544552622438205194868989462667812302792930299230105918243664336077362124476031225659454001654341469169977701007916293673714223174264564137754436806034623029587233063900802808501718621413913165624324624023542134802294862224696744704467010942403163423349520983489477233782056664765131820378036064072477012056051408562507287508370465903581488252805645453238610385795536804971625468842367900031209964111966842056681299051783098962432621752353964205922865608757757730000005535415660316724758695001831773909825283719423600099729175373296904455586350195019791213643026996270038793663226004845340532878261477816082705257518208528059164741401886159294995325561794109549541152489453024313412744424500833323838481380889445695470411904035776721424205766397510790285074166171358078926455236227186043506010053203107190201984942392466200169180376278464015619347990442423624289234252209786393811256036318561491495770508533686771460128753183445910174170376733633319668895260636446643338156417365588133349861116578002218736891282934995245409880623704490380195530467801249770414928798833021021889382595829613573759590225731861247373961177830072708334681101603811938067075857067551148090080803782845959233716255153270662670568739019475857597394757874264929700611713570982973180728220311556692055231644069890686201813914700472437059844232861390513511225331908317123803463451053682700730459621869778686959122349538693281052599385993533211427577750849856636467834003274442183096367491315233494113004306198774175158353330977991502070789763131417254661673063323412497089686961772156813162586776280376872800901457491720638645559675846476355874951948502681505551500012278676805396420171934578738516995520121767031518145324232736631265885993670784485648955057303594107608730660385239254710284070824993882772001949846807618073555575738279299992821677783878133190067278997715258906617691063016220737167278257290502540360015296819027047284361761989318080727962536321625796388046959095028374551846565974333327975882025851717844480927747842699453112772017849231723253213101299802795136340903094255813370350203166417678697708237092689670136193983390737310112328723775309190736665157699262661543054074511963957130834564528235642413193469325363987741928360946801844187799680337422035724856444902665106120554691049619474187217097943063009920536454406462613308305855330832066094482583413627870442908160203871888935256414982881106544497871522555702428552958538874623854440196903071474213043195465966379603593106862781672956726132762273185049170184162046866508452654680419087555305497792676671022821388761801656233433969051362903702281005357473476301839063450627317352796062535182051817380434787397605448114720776994596801797927601872949772566337219157210100506130102597664530186268040707528886763956101197857178156053141489689288226323877119678905022348032792653082318689679486231123196659159788188845654163407056403140086252122383068945127979433867172906187405398177012369387866440291377065324731805838486249508343512639937161892452029464139069885629203443389467807397947886142564222992511444593003813546881591505972058331497795079015416295659031192916943966552467218736594741234435504981774274397932745787788993578645283780904624175528010411710994894374428463864113405737300055620201736359710607716184257972836973997983831277890149525701743291467348859613347151673801831574749361653689087359942449010094497280698361962999532092084670987418399064464694096187432608432324247695249187105221184805536508070427767776785325535996087232498796662949815448250528216153257467565330365782528437895480358679341414250885315769706450096446648253419000521942488094739754877516520537102315948326182324643758750416003678333669578605503766302869522952781119945740077315944765216165420173345239848829321325428626778603121716961885756925594401620065686848568199667511710416233254697993870786426957725722876530452226061293155641478042703102596025777220458686427757495767357634116253699883555648535495019067907749562897480178216923304830474262410270241294645386669655903828140482003291377784949921338418285359815787576605433373657894527029751727541818909368594534138452504373703924974737577402564323668826332008826079850357356201860300502848763638168793433047398379692245566363570334744196360984229221604286229397254301168692801662710050019065177577927269472682133350263918932231389691541150589425231244726420937695274199076759628429404933198272610200479986566072922562681537475239444636822080069406669526259580584260242575206142169693356976824467981607241781524504779574091012753262881484801140088955151440722579491699083589577001833443610054781167299924571504474303441892961336923594776928610427733753674261105366338686219955093836564097629443168236686870542605300238905351658497857748572234923631513706791656229027353491287756502121722284810942367712123014040792130439757379083251894185712672113777263347753316840329954770412551882769094776275640573290168234270960596125184759407059256273217840865317943001175035571292718774080366810689626578756335977077902320655203925278387337843762839451548757927641310117992799728877501889111557520655814533630967049004933031213056085509244435019944398709208991647899072523154662875949755623816726429350531808357058652650634692477869062540315189515411025182457432465376159163269930160081196821297954227665932756226360927060994384056454215652061073526479744709054628016217939070791997912734600324854811382829150118129412426952697870679923328612538481409500051921728587892856866493268163132553206593242369898772028550501929906547962792101636015765139230037121726513112597693825238454210519028601430375392589812940962782219545067943319485223883967970245644054681120928285192823695219463885256678536535773083783678453500771765328672073583167592019654584619784206281618614269300392276998294978653599039043386116516925296579798191700778690925380088445699656895282930476261223900218365043197761667580227050711450297665380379732187523757773275497972466200878935383334787790207751698900481598103567030950422587627885502327220495633512863725595216271334023180859108660826723329125565106484224133892092501674851576980103131371743905005168625001104357235578648207434647970718992332509442006344467570914702375012184282047564786217078389901871366672158164515586565842017898006366697941097490823606371131818951540749377670106744832540423223463473026820133304429411135561947052870092848927945759624380382261699395498395267358698432599719433458084041888715352029780337768319446300282661574465985619273966325796834579385040932536175533216262423615592134189329748894757025238756544627023411033756170971200437854440305347961592819748251879353984168888707148459065916331423654475120529912283325103739423636681677239092261835097908767796959023991641148686388854193292918468878748582135835877938304996643527400992603010727601021192967768464203874107890912099170476838596760369204053070693835448265708617016076018746387921541924444191791852610344948521626505657789896634625418394225300564560730594561750190249038748750665089063473540255754325639641438609849145390686504970391871871819417881044123345936099142353890562957505944777886768915654445389059900666821752549118184989829463858167555785014800898766954276768946710027747482103727925062683016199892557511034955389168387890064800485108455443494510763607237429380588182965006932265437981837066763359663569254051093513149163938443666409926143262806499849492461089624708248430436689116333057536651922950581963851584754771592675663856595047978575595757514158419899500535387855812061371186139140439805283725576613843426410754662840273238660174354970287220727667214650520758907081760145382852005156748651351716395360479253648834487304255612208627512550173015177476660104014911000285257792296770910411824880230106254650302080092859754070524380565596146712085779089705228002972793536741689920093533905948824207390488958426231587258326098992151472216632960634417860785904483104550760590638845601560271902333066544004968205834566946080326237193479532285483585971908960128429176571833963988994707906255210294395353287257962524896164375794424872419891765728977348695778341191729078623934328854710273000483995165968733192567985918902593295938544866034910573894086986010994737057551422137529902515272049381072160279986909763899152108326236204792355857090120053771066835205250146473505176883806324095389876021305623561745786484711111325709581580628952408727056415032893915517162239512961395929701898142970839677359778909470469387256949797542790157695850271475296380132205886522128330994632652510590920083354993258680467290732466776596657311533244215839023895101931061249596637331663331685878531444273291531090164396521581808994739606904410200207030011396295330303943885257329797949515320534681305305325822170008928697815917546066137404761309898356874228262806863699820957100972004969345368053766258874388777062005712256107464153945868214905659581550113276513170650970406275161703287153959121330120000335520335513641702971263908429847096444096296050042240042584143001738688531661211687481241945138012500265657148947892174761910446598361682841752681647650404681538654776753876314040474948582103658488013617959946834006906465031451172835988233182919114898578703769721352573743015182399571784803227945928325755869692761098795569110088777861200508434956392146523137567149079479058134611491746956991822502375462833660646247032350926673857115943456918623468067680250994786918185313362791436093389019462553810697136818220696979269772445608619707893547262402083360048023022983682420542963222189887224295200372085283333564714242167176434282012181155723404727934594370402473470929658380589225919314712946818574982292897986247635692909394694528818262702900061081035030387999862108169818057028107460931276788009921329859195223324024674995924663271109891980693238330621667021848622030815217958034326328068851915666342365780997878289426752754897987896369187893763320129393091730200284270728719604288611370655529318980746080558164309568278924606033557332148378556896592442259313466161181061844780034819987850765342265008779283477526898401551625122503209768784253494784152752156018055446784122533538240541284960722777102150409190931303465536768533390885525627635183942235238536630650638009822126435060404873265819580375592923091644896667664103191483321347954566224431235457475297735487176853999169412132503868792603804098504282371139941151710322817101865579603630739656388711972861855255630477077341781421732097766123595469939280755020348975468166456653508211520758813532243889897350187081656249136866883681971330919599901361468320522948833416012534575970997280360255848269150420244670463267026675802574711137110404619158611425523412344238471384906914393428669477774211307319204028800596642640415308289198567259864225134686118100481148691926214823180672589509665981944746180953070688292415400476456879189123786697443095626271537450223368540696869124398002181937861584048203631638178784944955263532110909970135421817132621656927152401339505960713000764315969880231544285365647075155912407845655522810862373772577936583808982635670846929824388067611930510197586131367209923621851102906449860660106611771057724073039561912751431592949329083134759845311551636764341460278732782059888527631215715449725293307328567561341583925177959618860294966067567919669095524976887148688351753776210687631034479032617033046471624256483092896899501410310131881844300618835991372830516647318513773398060168458988697107779205187247566725016541107198859374805044751427984985303707962445956724864124661159721398231046867781945115317703177588643501734822187592733045332569506692335193749190312740984524099079103292252251522840860329737150503496961031484411644086100471347631529055519510489681626752104878640084625164750896774704000174652265439616434703054963556547122572246063319690415126080403411109300619869936078404567820168781344937267990818877856116890755730348337226755233997789880050392838945995072230063776864754348201130598177704603095726516331181078179164644720588056972300852903180581205664058859173003632445232054205539200437230303221905414073340016056863043686643510531036978437272368452270490390693148758852248901729829887615252023325922005248245735463899563406750665179116895308850278469924185453914662091228038508111561761689332089166123523537496220327921782247527218437645954789897787360678887559125113082941787340185741358628355202644693863091497962530869036083068630782299253049237454913646430495633235317149742110821579762269159792249478988859294767263944456357105640147794049893987437907126437002839051239053682593400932124578508533351657181717381890809986715371878126060598767809963531915370705910765661683781360006267109206990623429372968856491724867260474806303367045404845646687659375840885997389649202060489795779705300048076475095227040691977371153125951069831155932925115458185592501928079196877680404446710062151965037703386085154903905200962213440837832939583450891909380071881967100558638626540916909906808948184801970761695980694391238504881870972509884789486239870141654387969729764798992627180607189635340380629894620230727907237373577383873005425690364121926023652602949293313390080840436327687988539723270736108649835010626107275619723690734048180016693907976033267673055213563303626758135721763205060963145675570191943197860200546921151128459281407970602799068441455784087267494172836153470800944484478787572508790355735991401653497483612426713506650819793546290392459726752626133085095657990079157714506250782935263141022039510305450143546168252133117034861500877504709945391262648038796705712102384089378474743167054424398634692661813580017047993731628675540838518324703697434083915048017470943620081454929458288049411550742995862364093701427399377691274233166500383828052728464195541295151970496489402098399384152094103086183526840474660836480921391375272093132102591277492975399371264658268966822930312464187948288468160346129656809553967589065858969791073442255270844035417551986202712220041590003579232905494463873438975915603633692105201359872806471590722889861776893855830086846437976238410955995265684184679941388442679008174505270746143750261357989127840390562463989175010310815687262570033945368213851360542789244093601495005110519529229300455580210444760842616749012769367963465735375730482699884763675716549598232109274383268551458763866301877557604411272695782751750090808576521074301179825507021701455605082922172404331599436594455760269566840723533852788538006758099787859183228384679771285161385207922764257402164646787585619108204326429262633085440872362823530221855532958251756596003946590261035420546112162485863668828624107787411573202916170362608714620389630337276121215473887030946519902818046885546581200915255055281415343520926586145638307047610871196610150016173222462162033834669766753243178673158214408015370903941438663722036193346233079829958102613350744506644818937956851173352923958356903690750079789799148682214856664385726681291517828569736271722609496037480067463261669255317293408195474669962609401501120278180673705355745156392075403434634650518386309388508651600986863685051521960282071552721467136797263012120722519566584596363542650363173585393240757599046431975673395287367358948318422154958747988249591223665465915997905776322902604868245302531852974363243201680633117572521395224778471841973886052964142540314793329039472656203658948206511217441975413110982952140677045297873499245870904695021181186894105539149783940716556891208010345293353719559121096722393173232349911918995051363964793200380633135067026133952810500166194160454743199875421963791975530019623519017481361651988561886976190198265511645538785528686203477246993108835671494930853204506131225881846408673869111904933468765259666673009876659958930272353098753638759549181279986918712068766866223152636672486204983906756736275717125387717495496064429343654236384431292941186980555702368395334124588217833784131889252321488040881473422923261969003164425799115316037225394364683802578276907425453515524671382529211150158507496584769207014043890145471414516839053633433892540427322226268032894396842963870831391328308446313698307915698900179988279098530214967811428389513628154998686440147121630886084341872196890827642819608999780880966940191161034270216597501585947854542323113058005280905655768195069952505047627034031499764289445181124797932270264929901667113657686977626341575214638986352786485316974193677671567551642100939992524347119417220407649022101224476865694378994481078654616814423972168047974665270406218938709669973942621069465509948687422626491240432101824659890597120054300975799522458197424452913786759049873064463640469669309650440995601235518113366181227813513089852520922648623564116866760152029416575034983443762822268962463976912718148200897399975902652812932697310773935474102408111302537824954816386694693203894367272007044883223982623915048492132403384919501310810857248334616697666688192562275991956280029037238264234289789563622511993220558348931729893205378644161798004187125753150982337069527533095228483397618969931779749099071551474502520466945797665908448731935109494903470053766852547804649645466062441059939227755610483286678267210606514159254483237904767415585098764070753909890841739101510288311761350848242539020737455855697982316518194472481887461475040453031465331265821474304462660412939035502450610730586142324827695194613989031060075266755608064916694100531060525015162794103376158966826091606799276515418319860108015892011134141179190612938395205353507920037506400171036035065713320573009527916889303989873182617948077765851900953150986528531442317427402433736869681935107655794370166830913268720710425373519002539139774905562655257120397378960810229571384762720588100202326976995266629240388958215833842990125541855039647576728183000378593027540909046351750208376352938174176593801688475987350101971492275523581334430486506602865968460077127250527966320856163819240331943677717014990964364507266481477505461274129247696302009582789408290651247851983780642860949840864013592285438324153643944158535451000204299520536944356006067833683650110431831879668524634521987693147608918281405965955064262998797289890205519119625938273246691757851872324750605317470022568163289822469209131236371922448617159957790345252545024054177646098761517083609068790996806245722474730564681313707305359022527322357147715301354679416848214743075646668194364113865776631454704549510963445410128873200571457782309340334543899679423559367279149047624368350012886331475006595611617838061487549310230157374776080773132387965035378425319347596700248913516116076261095650594042177680524783291090318735449414873726573434674270924903652222989548600574270338139049847654615100079078048788733338589124891366757119704880418182361550138650719383648167847080107118334511337229077771748814199876605385883503307115795480615089824461078077420614051935719261386216462016859419489485346317483647167524080420304577907229420371595025818440211246376998304523808136881044490824560307300389287784152781136674472751657572341684501954450237457492299116128985973002390882118642614387733228376486244679396693948054748762431097511267421645597019245240668169828902835919871517467059590395703671103797096138002763328428974181746948885272675057777843544297118419422314706285939755432304249606911552397604093722042978270994563993887049165733155476031147394615669424013617855561941245788102176271882805048980614762567139708555994876200043461528674048365219882502591701793749447804325460229998866062260584972637660769543440115267937047862152367062014721772805781140023355167767118217856225179948120447411454175784608089931180745590891620025295268410343054739625195071238026075089442566411788267489553377670119359425263937945029792759507433935112386562332711409483344377071151763864396466856484580541946466430672035084323096984116237396718885742492523816485819043115022530234392446180800334303838623553030653695506046827419738417081444400204517343822195884157542193019249276326722035418982307534815630789038922724607474840953809143169222875014599953237101676091172839574904145009061844822782858090652560879517828211168673447843862995909898606098032685319658465511925609912077389429624519290864053692248024799182891025142631112144865349751454529157880384910410372043215957368849005908001121704011784062872498185222138234262967548668821102080776912956954298232383408608651966944187955822570117815730247415613594379219960210119286095806211006476837612516783989699893895285352908587750029143543178644514765550111382248948446967911231531091821601555167363298064875846755444626820211326678405129312778894462172799828732853900343219628492876706955284399636313489847367983810667094388100014513780808438986595482139864787800182450871390125818975589971509337040194323608189685114198098375628606993743687684339115408977811123362949621253410420895453823446282114648432944705420938412939463040396690728596656303010030709322128039086712045437362720187432948822388280271207239660685062011457358070465760608846796736084164917956483569116755979688515675418590465428387515301354297013875901740030429818491086551927854516985726921403424377040603435729926854401558092120991603474075153148869527950536823829166810348755216330951862350651865538101073453939783712894908825000408145984046495323366156179048646866519548806822418194873388306265783243325788381606875130161726248937696573924814588302227840981950210741657118886342847723321827004641211276080372428561093479544168130080339494291143120151089493833651356044005461268674476511343829055834783643292451978890954160780731383706171945116004808139141483835304038524531571428018564793131562593779058831227802884054408435388224458548075811594318012205739646783351687885327160479842095352451387277809450717800147298886538495496507283516394954244993457131875789727984233739727385707607820408300609626292079564428896545029497800579474506592600116985953522011597454463670066039304077446942672300653060164044387796844968476616040288226680081703849550228760366790008695781054775207223728282891430140647928962546282340860903959761597229053519242008442799949089709681828365145438515866390189100049158187789849520111880485897138999911466050137814556367793003404635481668546087052242476052442553467377466430033449408123269260111713821833794012148228546847000287072778260055241611337507054876301646608885443455333948924904951793142114405350254147848347988825008324482081401874804771193701669314290536949620418504830469393399395305061872154633829014815443858513500795699391477933505827352276136060637189114208844503894981092178189111696765505446249084088705456778363847310720255906907029932674555702070003433097007746660126164258974346882562494763912854144955080099248213488925067284750342771384300304689071793475636606990686553189755433500169463970311230430483888434767845699518310775010272063576883400691907987859564726022185647582403970369537192592705874101250837184064523672508691133343098220514850922866946970231938772983893746133231470620224766533637322969298689496327640213187708851209778771696125429658818849074101473485434885106973255611815638307509914463525331252024439616976915051022742458210290505111179376283090816545992621987008704832765739166240081230976959472739096721078907217341829368236708542853398715665332180689297039451965271712255631861258856386414014538372738074389417122320531671939124135109109297879739243101396761113339185957497114471922443581643978752638399860270868310160266992399354024719186928939615533791429776716330489654984404144155462463111935895916707508261373209826639746699035729933145445051008664083905965947778927516996365634665872463429539076177946754762890554319581328726476468912914547694241543317754489369287042117659767436520152266900071180953397711850666864573969396635475749987702270865133485100520374002569248597419832418612683415054425204881116026973295984198386398585806061731170455302762717878948516134321279996982150791022455761269527974905098668599646174527222293250480437931742910472300027492149409331990094568897667805414058974941125150780839332200467363757013972437884370742047537333412385313357215259357673610785758009326676925619757233370122605889234327501526009864019985612046125412378101438201179495479308633189173327656602809198592984561270889258105015208793193547720157052480585103710303570840689177975270421268308823180857940714328824855125677331660902560211720160109131972932236611843084657747971593309640250534992224461386000350970169610502615552438987071613713843843877181389517365041331605569031068148165016802436024734185187051239043538713848134013223422174153225569511372653209300286408131853175016979528187942494620393027691223548050641558771589783789820244331829455077942295205075131793861331431622444282560420318334397574586442075181911823589582698496978174401303343389659626646271018098100331938193275996929228564004187453377934294885872966051425084754215109747581000427597483917411712727109880031743063754843450547400330600385904202276866993079195982052840793777009992826741157323343503466777506170193632606491160491977431110887712373126646581748583090785798348819744983304284302896723972780674421861702941729127169110435474430755571422831519994896051382002959035640365655810972265024812064357767453294314779616977448290239335487717902594139670456051276686525204743561565955944179337970937102691420485929454552319560922733940590413602711208870324573428129906494888049578856578690763935933751156226462317794067455145302061677733505234447478859328685407664204111041223287862571163047766266055695269393231619229534992690023260547916450061867571232413027089396219730464623756207443471787419300679658448281526686268401312510347171264748925898371249230802769486079963715840639437149953328037175684401502629414826363014390094289066766514678415970622818996435225632666641365584658431924293757555560134103332746320014956579383678212611767695371445589503246981627297913377035765358910693927273186337846552507904100285103795021271044417298292450871546731669210164606616974642233765758377546091832602423367832679967257857201580904537541053355031192969823737000118165510838164823061646058475852503579108282345349053168091753640782819252478825412472114805708195554100814364375347982600055459009693088001712352644313719959188983636991402288580244456508946747500406488168652693267855658755324458571904725367020066975839346025262744650813428028573704067097496065888697271375070127572505604022534847095745946968227837792126904490877346866568622239524917251029255450735562325488948342634333681114741343163451186960452171292906766098033402921404282648553872753166419136712881492516613784708125832344179551049283621209378074082060975399516979738743873521067577336768629035898072071580460113734724843986513478555714233658677810075018805260665927211636433492214994672168082672887053978998196348487093627138292886441436656657655609876836274642185332960315285046327605478793420959259040995758057225082507721272859687583399953024107283225051096458844415009066541873194156097725099106665034937675282079615351947529410871094343275337815410070322964307321178916081768565127440323830283793916525937645807353176335409030164542055392352179338161053625341132820843198376122217120203615155375896261316009897291148893283754334870460293947118714124856020977188905665249177457677987702535165490092199581729697486415576546210147888655326311252004532034267473241319907907992539645149719968089861593321945805199903467456873271834224041132486116714522725355686206481455484627462045539565713798762318620268748678164433424822931754251893488982509857240287768220685050844948672482502873353632457461910357165828272061052344491345043747322241939985484498764501025047433169519100708815735540178748696073289048769232289231577773687059283000633256594171125132194893533460000178034603694188907609193975795382775227856827259317797833349957105133240626138712605175195665361267923754894067774163782167650034465958379425628106608636231787136737023309884209401081302910494819646132086573278565267551172220190924925883445227706169251941364748131988958160808691409063635836270815713350159611862149582098450011092220818311134303349275461620759224257566034447814980202784848626353359412414334512432174442902696762730106719606831881260499764307528439703759199521028629924791918805565644427993567409480404364262831775979153692247613198885073481135071049511655676642244779886673116362151631567596098932980313979634271920518100828555886536418634206939028062658485370201007059691409503055945004055776265546726843169286891459640927514086088373103718060787135361487881196419123005944015410310160509404547719307289495236614330647834295824337638708339804706932819295786163497130149766013322883084516499522103312760505726060166395697056824369781130693720885716388703481805003512399245720547554747391980694375618489706723760476675039671368181316485623470915300831483343683840376625561669571518936253714810258103748871288949953887602266495400163293009146905850128049007779453860131868565505621189421511676727573146182509274539276407392508528160876629956326729666762524747276753308169525338329717002323665442379440764069031751976027354184971262865143865728487135085006774009623440234515114984642509125413987985916398483780821548330147164694153891720913289578149636196606588755242753920949999621329159917445513643974584976673309219322756628931952212833155297943601291693962681168276822565791774011978589071533832874062981136818415469784526623563259604244875853780356257584742199758439843706150617017046434317144759080649613360902693512256838506929262402720095337935224984316463034095702736038196549255918442226343622971536669385656925777412238157010988172137729254619028823130751838181329832693271961579122479359952529258286323952487409203186713650748362001188823973770063332078092815318175408542695512992604821213878071366480612390596681184220421292747588742375129272832725747302747640802673462997243074531854054686001380422963000613272543471962187065848773765773348384440013936165718105142770290159345392713523740577228120138764461190295307398827884021397690584091035658172314085990929852414757491133189723127820167264682103838900108513281759870345158888137294802712716547866642779676776600658169388018774484921111610939153894207042876050726755148630432387420087937448871867751371784484005827741907794857220045425506158154076466135886306002381714559784008232940365398633590617647757622330408433079730283636022843700696747103359824955617326302802014726463001135789500207292869119906842982469115438179760404002436852838778575674222848640656814445649815353460612123927033349286110619005621959054212124058750990095797717973999337378028756933692575807514465329866681089558063418820665649464058917918277870184040776694685649704488806201169173727402510335014155020402891356612162837893790941073280335061740535727691408526103480266700321679072024938060979273505636068857170920402558575986934976128460571988905274785031323185187727013424007740197563168681070182421521758729526870482067727788139602117706941269432264837040645666338602596501177966624301348191513377861747602175971776007673815809191277642858114629099380471657833527972197174531370244634626370818961394485649245203369373126896186746654264752911611729319704858707309711854263662654287491042384972185986447972753582989623407648563015064799985128693127317365993525661070534640528594533358698506910239136956141329080594605825749220962579203429727478138592200795129065035039539434578169188213800781506629349493933090847384233806587575239189545326324408142717906645290468326637370202325771899717289504405170515909953806299163527354016200162664707013537228741371046259592618192998346142620705471218844457615773880325643241983326583788458913395142152936083317425451566135208587729384876602412483463833835282746531637332787193769290145628945752709148276433068015548666006758740008764630835027850502089203942255577884354232726488203816549210596804164727414707171128701384765558852245665690902349472862344138960500589014571882342388831315138758569369306081990925034999919367234243480527162362905761786834188422624802924283531496948132515115147461437029382608949585802649903819502308137391805620859582384661816132659325321406662420932024248847929278736480625492847111666439878497164058863020692645389592878548999632300012620819269006229347846693194045285058117571340098892096179766874139937626388988475078332110529227452071791960063994430237613048661484381834422096356327713849411605841872232417413811793576694833917557048749578949956073615289197848265731250283836397191446094925344151533815264626905607529965944681929851954310104052341969035291433465796398754124643747370557545718570647233191270154086903757124775272956862952090516492656747260279998135506291658983490806516997003925808710896775990326724792361062165109160059872225331011762462589560122941046624990914117592892118575348283350681678554799528272392605005966132034736163866113653985553423749266810809633762695959275476753024508246331456022446170416023470854824610124855596593496090013110989606748341699248025324403478533260694945955229866252471274363414790000110196998538761172416615124960983107229375666478738074102329849494533381722678575627815121728181535770906129308484718748216430838485514477339613964592538774153317819965529857329719284268143989716474426675633813796424730398125909399207097617821149711452489231220923498240677440733578595027836985985826802423437257197087307280552542983179278902622767651342584376290182310783630112125868097794219306432969508364791728290531012326159575791947074090538870767897910623731423580156383747212301374512600258380414652914693253814376965517795524979403262488007808002650012969350147845077700945775997697486566369326019952862945532093656788823717814212571754155967039380143512109735219229072257738025170679153493194316625901262116005673934765764175625404304002953448658137131486375488995756763173799080025095356242034659398722022789703738395163170243511650218519398669478775642066641093010727260791795364523362830229441821638401626253845035187220197048090383863671486362841183871885529007054474330653832933847018073115254176065895612717998737197334597190349797910825922650354665017988945502263569857833544816010770624305718736550698192064644359630797589015134207614863166226782607464761442762339118586050540354922878246486088564243563127541330388142472830542816377644448162346378312095391400613701917766572501340373057228891836684464723940841426615817734263396296207503701735555313366114733830653044978139917465800090992231401036730826114972892892512951790579482551557254504839727187687135097383735961395643774857626040047453916513582262397097507680952193989520450779727413186139228892952061358950217305723017163722808978201369113078448760985363171011955701305880361788236962366925017218387215079959856470342713751981516231041208228273150851157022131941905528240763077008826689702624973934222191774840435818246531948623530564271671745740662394625650404616211548448391698933826636808330373826021758897796647444628338841631199777005534236610207902939846250673838611296576025994593937686786656124539334723153584155627030426467008501357407396172624997936692212443840197881927121442920453531122220498073789339125929852883795399425863341566854696430651790806381268370388487779982216770188237358544928204005330570283852420069214972212789294704669748469916602200464550491277110949601541674835925946045589542072718700119787491452576215069685873661796145986842570664536424464172932141656122447792560542165590123093151521330697636098412028945137933587197871228862841265769693870073865664448793801815174493781756720509510321970930621848054746355642937952919928384072981743814291377460033013418778092923256451018261234070284685567114238519712615419351678846215424704252246130654457916023310895735307571298592978398028905944337791737547502765053240427327714060314650782176300101428533065232003759385620341037489856330254168377195371417500429054799394274406132110685135947380330301555971120523850187961835900567735400272581377370293800947731700581973352327944168608639003874980777434641638944957043241719316757213091601622889225706233374318731390563593653907755323017582265092191482552170353361972930106089661019494319746029614573309945204725892340956372075866801574630276743439935855239925154848302988150023596969052896220313442126535230740780711507365827007650918116058840560759209542791544351427608110990357902415923985153315162778582040914376755193172468076026432380374104324663593690646425821760536989874945357846586359537354008100547403557976368658116571464274534631844401607308688102586407715523868305110023708641024548165135961698732014032899190285199003582878207597315887832963012458981532639867149580697772891351329356299964497521982428114622982619327305238118573363175856651928608828652889703736826497297780263079448676766034749684967871378281661267551633985440553559683345086818487035625443128234112724113597300450180624279326042850949481761721783923268294117912707063018268029530795477902214414705774858930840588846893423752037882984107738178146907802677149672953463279386284474840721558233899116530788409639910728184805462133847327544102457836984136363870521532710445689094332508944798525749167044680466344837250264204936298417036109764125546787133136687546014322624494544103063780506871268802429186858217440297421192447609693723779986031980529062378445030895052418137289545157620765167264819041303034457071111195096984994393426746417446875744158013994444066559082150864514189029422611108458225231909128346152605765056516462808569908942111958533672758984171926531137962705451322470093876046753016207601810581668186089993489937775248069913930629599675842707368485629304088477707303204271736608694686827587027093550289696408164242755129357418709799562079110112055607735871049231124790486596312765918576092603762007072961330169994888298145832097843293409663167326812991039531581442993879807776048237918030697701612969927197284089376904984401517807005004187893352682972311020272237159769577797423349006096713134692393772313828982132810461722299983196435964903484411326334684199155597558358208687840857917208503448927249050609793186917820860555471893562622498330155190411977914337801675695195963123103907855584759221904341473475731913046010140232450041743741851064295214374511900310470141958246861226773963873553851714828159909397867333830538773646504621496385829896250551623351064810111045305874412478639168251038704962380696061535284924649837451077823013764538276793013845840000902472055213898298948975765683647718435685455771035167782534143595709451436368842763299107281168816398489616349131847062590471459523771967897670546355943713096181601984887285575934533695416145730666886748906677167536695160409368836337399803699368484215215292362580946122673697383585296932164056980095906804638105922907401216154673802072176929038623992655920313518360244473990128802036866858192987974424964583089465058192068482315759442156627412764151968055451293742252626414764353179122415976039396376338218709990770186523577820398360454896662966065926102771104296261145426774641359363705525062747342933228921920183577401984053352042315369551531516455473572534711958422771859261619116271818716572162486395464972161302666412569898408425218299748795281088372719817541600811023400026941961148884794630654892125192163144711338362634228159560553403908792336168575352386200303651729945533840137428315954222257321781578733324715620310390861516591549080227723243889900088419918041665504163268162631882520459304494616919500393131670141827801593061760786658005720060178606299811044676699072183228461926099877006746760885038820882838347871491224266301403628786143819689333503942614873860659456071090199566857938770986253420814837968153130595216577177298908293573146676342441583979555340899431700407203478777582569808873618045240513656897745912272122964271273303150438520900706276652353825410053830043117561245309711732969484516548993505796562376019489532991965470107977947222624211954270401057782704547528309625742751746981225804173720869091103641700213252270624768621463246318923377454120355005705909163063979709692671747067165270064622289891561493146869823753804545676201882558003316807932783359467703542122003170118934535745350905315702374227892222687498098268021245436890870818615717085637395973972355935220121494273045883219787776395934118063473522242068569536663974034942756224029613759639062931883900564922405492849905583982110267107621986064624013021388226407656652822686886847896664765644086175006935942419274615268497608255310458922939414140220576062571558817424453996966179746037763811690599724691516860887296458182688072239457127087900393890013302725976045843942834693340659245631127350665491583360780058615576096111662327244844496545231174840186833469578903616058327674693466103095538128949753345660469869525063199268136155818119929040048065788883846635131194023933000429569499652612886224434717085324433597849390334014955541223134846906389769685945776697725763172336089726056865227703143585474094303845513585350451000681237261838303580742120633971065838431060657132227523426975259719151563031724009008033111958871139695337171822586194785105059654410065793544776269270926133641428654799995776818569659034411696459142703952206950735994358646904618932349066095894267727024137127148462787614230647240801256397829569428381347776454166453681269772201669604523099531947895417833675060568634950373032665184298365477450424813346757926317755197967722329985060637929057805654300221476843855009466058644906754365198363792721738523300464003457437452987246294076841571434467825759666965704623799826850867846466385919484744262236490902649245503206878282842637951119884744704632776627536288837349404345679183093189963707669004866313676688354375033498876637397141867016740389652889276798240549209081419335828069168786608913047291855030162598574391981684272576457845465654398606272188054551799858380991462772150668540926651255782383774749625271607982415221186978744818720615430527760350242733669571785151367863862064226971408051352603394472921832418316905674337113999490344347046136615135310080655999113432102654647317649710139441847927649053302195906302113901547047592092479805096156185312416030915583492255560193892689165647224245193611457894587646145197389309834838479056852132590717964163260008225292455898738538804140706039269180183571965033084686327883291208100214196432647792647646533216087410582725163672330015836239727003137123284178223793454706258193474822791546396041965387965045383259905986003664713339288204952069599156970909237449675748170298742251754048620699632313533384366320350029865025586015194308342725073053627791027489078101032472885853151568461459778667456327499569606692046326323099497158421260788406537797545509314477453037937456028524138734315545031524154371784834561929951304427531816549520438615815581348177391545011437092400366698933494960291952413624352080788478191994035216205667951085437622938686058782148912995989213695616789633811728850773245009542551457000974548737306197526132677277926628980078901663670619984762668286887028464738518670554271207656674592267984486253203167675595930035903535271738160823195443422728255693690037453427190227937933395295405661850578050485508746560724866038713763462436918479915080704216848052914759868535005660219866925832908717825784134941855253675390197290887431278359192711913499177047734346947139581915059233138899279798229375300127383551463704391986383620299659449659281225591847485026971120149743688586568356942799806988395149947291355328854284098004852395577525928717314627712361469301126085539930832011329737300406746974342695803127902513101131959274112872818181849375569030339974391400375831145830890728497814247018491745214584367471004042589798316942484078917232227968242511089813043572734100227487838995005560766411519669693317431787504720562284121205937371641425237250691721559125695184089697194603148926478860485626879024334016121956975294425916509253532260545993201533660287758445277618378107212447256655965588633965015506643877876026436881389140275202231241631604550143541872472275005795712552590435073505413012463491012637287639420328662693472530862666055378442271415624129204171937002787326953723535865851886504176920198350681724435401527918369458174540528262778174378514601326424865038381342658543514157079248262254799841267103672015462420281370099507574403451279268423326826091634078683782543737084404686265663471987700583208818972042537909650600070849458044610843375545365646531833591405809506943141420884907028001594114257409761398379203978054943868928847206520714031105255287924572226485570000254581488839837387523382099805556663773839723408354607595687641862551276208694621623297088412146709711489668418702700457467926844029409640377642548151399929018390694518348534038299766380648811066560049023879434495194680815911039449637934708427206664486315335417400742202791723003909062282434497293982166932789348093080731191351520136984895256134055753957823069340517454941238441076987651702654009716164993570605498034313950350955847347093840704855405155760835767911338074386899554089493798398823161987899629826076554610579535968643067882370573471465412221231742423389528269445777262762080877417383592567147866588672707893896901051536739451991820562807332326366866716276409679126893666883183869650416363989117436691772551623350353374714522886519015102053733124528653542982539519300492816381265711701752888017943024106542028136513747270973202107851740948936820439644533393553800409575769196098359914087341234582004685328494441008372115081384854604975169877457723073983095399607330961994480034224272911462423752473812882246750869753981268209900934631526943187386324678677315874824947263027924125654088770902580347731092957872019634548608817891131053650390403318897595039574217021210847747247220794891757611194888777751813411864179371532067380365919185365528894365353872407816078861905472302710008121508319494118664051300022326834225916692732527882592745500842755480962070558971203931796019320742362295647763135115970423163526374484131602040711140535863882062516903517876835491442186600366542627095987945926745325732188456554843780075918115874761664452383616553932179740409383564928727928514620739741266114050708443117108153516843394041810483141380813083715901561621151093487507390051944216387057599029398800613155980174344127237547198484947311225553551432450838288075313897758677230502810940128562154521612552414506889026039279828338569563332383196606703959048820497067236257939704465973332809183427295516329668394996798226197447519295271318852720757161038802270474811860519206879669200436140156953617980417566657441496740007098300952490814740548491550832760602352965845841341884123355015388900622534504202033789249343070334571345050075639551964486491216575402702539620654409502895477626123647767620526317850740194365402850638754235390037361157701319353538140122993630882472576525503295403908378056545186104786508605552860781889143284718739278746519906949988642139190558915729965841087589165761310267960113920977582074246153720546590793181542379795367021548195828636943137496290768890376720677106879386995982089685504072174060893315545734450011362202201192785929837050703131616896119124777922059959788138421571925397205090267437775670957670556303014564874157159865234486790791047097543786393277409562877848659689730350354134886906225477523877679233822580142818511898504184289202938730358193534955665756674711652794713564659332634383863112794084898717836202150331844300402386409498475101963665744598312959790258446042057745357451430103269481112151693572534303511743601136549692673433467902205315586481804868810570063172255774253197185875421874772562488085366711588049733549714522066269726364649463672280436685288758737025677494123819538846952801755271816008766261394586214680729309830787150905624804193241254214427251949310601274192099871353327383811532842934380444986927453440084060013037128013146795214731844814664784248345414864511589832278099911450161599216894823212932768363598756343527872703066425521315032083046096312055953806008393554333591238683770255101412403201407792561752396924132821325789730485510901209142042099627187385888574232019545209412871919445889871242736858175407693738016809215280001980032456546542668177644944092114738607403815018028777294959918853045645810547995942257926517708981562096130837029971263064054693457406683176565305968741144431656078860337558616739182038766019844947293663657241212830713608059450682441055873277800880772092298033431170398044067960705111436275851586849981909518181035740345467808966716237472403535737248160744263982212291662621237818176787711045509203325460752731902934460340948218114354056626985176717924107412808298491291294446302028559566304805692012506042696580242172843367714614338964807092389722877622237606243547513188456272569052980947880575994318192385110751648738152609355968755729870644323382720980765943101785958548693377418765759833073879810443635243752688888712408452396617464766577243002529865291183417864920695472367266511163947324419969404816947433117244601307061692048079410564321693651982095867661925548930864371801392445041667551475224261700242080816630994410404747325992743354047709630443130488969607445048096487206248138593304991833750709048069331223730949392522407460385538719073409995860383662796711450103518476732144006087147399162455466724933668756794466564121298935753495579199768574112489743138809333029223593609237675484651253560787347668529849518174694769034512132808668854899680478531837745017221245220303652364036375148472389245082908190743413080590023587905169612830633173633103286138001348888083081531965902604587745958173510982806384857448961825136813286162168689092620207589208823489917411618549363317615258683468088082466902877488863121830773282207527911154135417628254722434642063169444281443288534915224550265696263055297155792470756687577309385656578101455220733270280112138139151037373633799426788697750952754685345784854269647787357370194475898405004886696466808932979040516318501639769566061048115749500871312083510035813340358127914172711321386893049397874041502084300800303547973089502195887843782347891710798493086598292820772163421679636153668409213217977602611306662775140305439289701760451498872709039149122263789377861608382583659427779127426376220954525046064813785061708191661797030733123925977707954266127512255774856663001314120348955970249770949658962281224086833626051149712732381921759149611783632410516474817233373359212595529378407532197394187029585080941743867327232823462506969895976391176137312434542360201901140897212290681894714586038976651614346721296158773759034179546741322518237433673149016017286168303434388011775868621992303606663133924520521466253494226890254609040441088071372885440121291041061259790634206406488800288202946412538097872464096211772473653429778766430566598154639664683637787568557624244879601939032662190473337611450656669978045833608712966712665163694528169581838460275547933828835413087390118852236621701731218339218058429829584939934438915000939723794053586008351697655030463397490973299841160142984527854760404242180900594980635488898802513013694581992742442550893264625678216787088313138306768614366873132102589642128546934863372418667483336202503654596246727712880509524502634937337388163879991933150951974207278932866708739688525052225967998849521596661924526580105320068240616746650486769930139066200762718913611650638990596213205664756667300029735814630208092497037058348919499901951653483600062328520077347236462811789576994128827039330307562730355465312026854084324180332615641931307750987573499296054629148437834212800049202020552222143651344554999584094458058384100146447285412811117887265983744958249019083138428425423520085734214250304914171026707234681683971889219701625391474097528487650346783206241077127113972536378804661379179612537603807149111787068526448928113716385532233312684382550496690792512911291511666826999297118222162778902024076675223808302675885121233699080944056488272284500766688890963494333113374110127006834853179046293641173834007384782277767175049042975365277207152842960286965884519425593718685124024154529661591049551602930795243752644377158773146840976357371905972745608724428590653205626301676393992222110476715281768012460278622058520497765729824095687770509055444424718409486970122336680605115175496094762441787866829795093281244834252388912001695569973720790039650814951515187407075568840563595172221477459512995543043992754880919193830631509820842362646728099208346726999501599010610853482421033540157515857037325928408041552718965526668787358613542736096053783488001360990819730190610028212986099201384447592214448292986577098257523428192804079313255884908717998766181231544184330352101231831174484076520754656937755195480863111263422097086917331910370330739870417123241415767978391072763481755776271647186452057970942623378223231762411827629127434629161814443115714314831656184388705096945084784296769181742453466920494837498682510763121407919342095290362264385646391590927672280892489997078355566387085294416480117262333455317617840055661621070875732117799865420714945145741730528164907859534524593892053608095884895649449375712683922065033549636009300364452067347596024820819531535387893114136357093730063445093500286473330156793390048791060856189210086065300713154053985395529428144505961669481321535742350843854066092157200583373230755964877658891585536022399987792132703646827870175960108694852481914291897579158912710054876949909375640516278449163561435883386128342875391615668260931434810083289623330932574308079653147719804380280023654505291746182268548742231855881257773800987488305821993032993168566549985320912750175971581279616568754361092454962865500606099160906643816723651090037833122597144138785344866801224934431920374493873922683261398400408223268194667353999625591390158887805957494612072187138255017253155761726505138814367553821149864481568176684471823368124646174076917281668244455684134956049879837911813849012747703105175938902351716070713721417172692071634699684634765057837785904893167669575571880967689986616349038732515830424578677389419464419566368543647082244963061337615225735431947564928210727373642745636315502994553039816367386475727293605859365980183004822346491093506915804309962381589840725677165408280426669235052845660532213321609706641293186079762359398082918877316451535915196171506931341964371670692340046583962268042492977647802248213838560446420690952395844450087403965680871425073771804022669242975292887362926498573713885607959529084919559621001733689827261249416182563759211123503916236312364875855311979021665212701427373679874263074159399142503189007337519313324208437183678414504306427107577963284947064763243619905224404788198073479956888347662593881825744783951286499776787123429960011890623522409361491021050364024466542872472063059808488093103969007004216613574280782609260096677046612339742583814825244106991077688121144918089596853112303155766802913475161479058029378740368350801361188063194504641409125744556016896210166693584384788854912066015093011686912338854097514462848479509498412615810660774580918789042223404122833262685556797423631412955306499573078360338968866081694423743666269562992912212309777937169446875832089292982672375715891307729278128093117644218763858570972193823012835755271943273371511087495267259939411032731287809875413834407488081732389745301190275631839835904662388746086349075599958437289264712319079051349525710564662686807329871652515711463837523494128523641093828347556638012598450995888322804413834774282814945459234017224425473172052319298621485631083332387793586342188996015147160505864464365088674432232539772322143200023530854963964836956508537968271836230493715923004101263672584400010470856293750485988067678274483722085189837325946913932925033077931845517888832693507628472887796971944179128774112446542468007250848537329961457100745374004105337512761429925785289187028900836413616774990199638456192353330290404045651121728763326334083569712134940878849012368870897789465563085829579255866191456738807354338899483499356613050678390734008991540169859368263284907903022512400782202292485230134156941212056435169562535839373542741527270493729163809998127751838190519603009499049442676161763763506251013517214070813785773690568495245467250222959285140179901433071434885104333234685150619945449225917917120008308278364111749488465901325784108680454940166227489816009401174291397823104156013722214852171821277976041371641510111746648209398790166647099478623185204105970317281759030961240259762939086087388238930859106209549436894273269127879173950063937906284830934261690552904980266063040044960033785906613392532404873797940583772364707974717206225085677196277165813379443198278871742895960813848195741352540821720449327573344469964896410163446114357459383702141802169497171779231788185660703941788559512323572770489729526586734499075403242654984217003331225313481794803321021387962662823139995568762017355554720042227736292660148276792477056760586206690502296146753135380054051010501495256514981527078609581919927798730544247727403682998912995000558454360559183688537562708458778057494287294518100391658581872446842302247508204312470455015260757301885031063215421174765219055551083181467467380854640773600087511441392268965329633236660863520895485399962239060673347226098031292153031730419322923790225606875717758501774218304641508015586131616332383071299495717053103308046396683845889893441835958554095834264282569283487275707870673595933799352731622835191615655859382894371978416717806585123441724652298325349468840445275125397330293458120951391650501431080979554473215525285296548201780728297881632246503453642742604162671410375833538121779763041990323002397029759238608024832595224448308238550825458540292569522718569189639478405189992901350830754891846656604186439232674420352546361918823572981320154806934451320084512321733421953554941782475014794678392577951655356194124363962786914646237179913810514797156900300589219181341722834862986592238767281488076494356466509182008679762268519177682347005265535633052495045910148689468194230814140819972807874258719449341813320152618021913032533892521330836297987857212519723519226089993383273633505276759494838953522391710259423712267989708797208921624819968066539573551603711173130496223999788647396578170861730735084903963873781088758222511030194065770476658179258197078670308480235226725546122477067015846975942180238814246823763344710668041736950732250217536086039521821176950956815424097792132680337608914449755843638981526022569492476098730033947017528353475911237448595382668049812630775840279169518506619093366116646726996789004031911972154897224452203224165090888241120152400796137083878607421641345042942819155938258362510034801750989041114877199368600141636388260289534256022638666773241866459901707526020456119888277106348524194120930395282100234982412013097968123406769857453252592634033942067588181179156526393497611200476314706589492082036883776322194946643499076815546422217541290571282629196161617739642985950878261224624280797753773969210918350732652972993698582350077202121443762866645954864056246297115149936468276581350956812160196492728817994153206711266623822959282127580611461600983438810503732415354201364279625989230115465882650496779615618353924744503859268743286642049816292701545744273093580701622734187583266379966142326489899249781937891326729615064473393796214334280506847077572936478034386093110868756911988575556324895340400395951593880007448924313360059815026111630778533330667962169714239836828170051000602748255369744171759254273392173143768582419115515351816335192550285535953642814309485768263431830018756643868672261722884408886116516674647893601355098689541518853744170676953642984590210273614917541624334977000158067742824131978348943269313125093450009066373894130185707340996711048016087100226232695405014110793046559051122632971693320616698518076182792074168136305331699793180063426334161096350689325565583404778929170101990999374885414637127950071727218615086056114996737436219044550653466193750509547127018937232610233547200210247365473682517965198597088146076695762803364201894440818382735359108447957900001534762466294779439927845496865278559078394300965881599744401428752062685735638671255862648698755385398879775914641233498184617120881253719676929245483031318452262899732558884157416052357574937333689937853913838912888788653551341236487979227225686372501508645625015581377109496008269540152399121010441298501720012751951786757319208231928490684772236782563571701752554068060654432844868752504555513856361547937576310486977362429250819067558965515741854666527336346800278494858175858912184921328895741380242015651296231401174375064315433036046980339915687705375179682505376819726073045013106898790756149557536096166177274745588953009893076778398387471541761667164294616165194057553342625942529073187134930472060636311030454495637237704034030587864400718235192770496500144615681421102432902996635862674512608748622948755277427192509391202764167061338336159041768267980119837656817789698621555398906391800828075583781025049790802363969446260342491959232144491697797177626992699207563967073671022432228878540706249139717392866897845885136723226608225210875799014500911176666271311742427467479248498963770063283492387270173315719618378474018303500933941580454713242881511232980787959288569407282731544413046654642912919546147368722621544143906905885154608815543712569451751460006663619904469316536025720654771433096036399018541851857002854398596422117480817753948478687291099483600836790683937103748547556210126582107537774889252884698722613201007563297349669108838074747025257852514218279039016445463677331837981677544756608777733130930546837355213108431669400978579643344520714486254101484340724652293664117976565504343116077346917928469582414242159374831860141104153534173499291998152756841146629712719509071889733187484396645422195241663578766670983564260339413805371964366173268934458887137418279134328036686985339547956637619744171843161339943805884839578160336089666537293928056656426371655286088683097183245013968215650445668114812460727420999552807307789270354636602265767137233471304367574926917315893460431172763318927913431800614637286488273012281283984130596679831602009884685217847075473479575807842890804089434187312550482063991585119138449083570876379681701121541612819829117554382322252296217929219480625779908854057945467251335816417071646762334721654812406607083000340223124290696886102687055063076449653829179940465180929249045999488947227744180460967152348837633445799640029729799601077642415800240828765662803291291113299803636849479816619299617488819188654380096694892974593182045746479178443795237368576494723227414926204478323298996012181846680592087302451574182656823495187874473116290183693247074595271091194694881801104979307138313615573643248765181981452582031409734786344465767222397325215225965922580155390776405683952306356130367005681568023657860660494714994689562340355834593635554189380341643988847507346108156648137801960747226603780787108624918350756936111469712948742823856596128299808662626217578522860783336626621993862378183154277772022021055705284772858673952569744767742200193840020914124032557899013265738155109737390976172902177692635206544296137889216834452014944071405146594081135849938254611660531489035060085444319923063216514764640202358091364709099704774978615074856336309395722627709847060235329801038219836804213417128856790590583653175463962041524581497080417338234104832636604545675059758515283882190972256211568289622369279137213281780281049224132161532322901927034973347593694218303111450331685544129542995494621458505905440762414991461881016636383198165920469537817854300296292783192833055533911485335991641494292199502875298303809337665436764762563684902275192060676833746479285065336336752951641899997377441361480537015839733869597514272242336395025320610733460177503477661095289885628070015296384416876850273071719385101797803185019239078912924016579704905647683659452494158505906378685566785359367824127157882464104386515000497834200298861200819671312732816021088457950827602991388221666056937594757801638519198852669997084746931037313810506925903779640761368686382238270469059739036711268893509833607074213545968239269986634219976528794388722819526928759799882006433200893889031800605972137912566514736849403600585079474030702599324402019335847637352405096187595536633181047184583261293434118260191931283062881302924330837495358641032225451856998666686828515254572728771935789064725077003537130879444633610179362704398639080635821036940197340912048880096437841130107886824492794231863716893709152565261584353163184501144130098409211085812465591905954412580811314088220040028050364401227886520891856027689080285155156361557508751251583200003968695565294068010014374270293378895162623439103407250194851992070945827192668063764993556046041992153521599376743069730853794777020142052698340721659590009909551849469165061073329049123308458328559691828154966573033058714055035734210045560084576234356487198888277565986654140792921530444877684395202759127055475380051766615835748236500944288521095170629570637588563628680303428103529084708954839952291396150365798045676619534341938848459850078632098597415282089843469564817905312379008289518059247986623223715908756407099478117804470221341245956385294082619039652452676204994618035733484988445061381230740859292945269167042164516285846447552605342488073226602138206664129562472213660273312689785008046175310135615182883345066941706394899795649704363083904583887200942149778544425536040433141368452578081130006614055500724566296951741720802647174026716294454193876196493759110234287419047044238746393339065875543426638160511881263870473435819069766514336014828887292830483981852080444889677147748195820229138363512291693244361161919876333162781087018909963631536959001050985486229777698678236981230158425886448906954203601767980224206388500325298162929990193899149633990447907268696466662399078299298861947473483399389853253098776585972379665248228481310455159654238555899920852555215782486937614457694254712099552353302280168750656365070492847251224834458463868027699668509931582234255094354038676451566832421812012024196674795800962395588241382517755726319233072730713545324979030779842924112636818733124033373540108794187460321420947221331523167225604914477676569792747262154594506212217643669971093946005665460740862424405499628513303779445807423310359703095074357336164389451775178772157547965766536727760458407103603387030588866305906188864385183422231949798035494949192568423644166568766665688123494428512181954141455960302763652165878575716029228891657215876286587524194338642316892626366357563239040837662179480112381509023903224121598821318975975222445796407624978022143595109277040467895169904762751247900787166983212689127435303455129932293361163795452025111544685514876419651410509536896401512551869062333325879053365510604444432077859542338165841493169531996283341583324213923459392234718074301041034806439221429933449522078013425302897208602688349028735703704500727723425406490377585418956829881438758071051546288151305344451111373646129193041679010134308537441243531075201900350847298757923379169881381352076229299867516238049879817343425954846887304776659091902544941460809743552581399555547097862153383786658319316757056101925205648335725985775011435990496690254542940204152169355609296337029765703161901086247961729900599363430113802582990245150755182436164193878927660850199686404932580782721368905560730701271375977528868531149189513086071540088501213542449703277757454142243575032445608748769208248005167835320933565225485596334655166414528163514382819151297909903083421956425575623238467732150031978208154793793449318545992115804069412820196853415568356593813345230430444220030700464402014158329238289937447771920414310649709772003099090159066474297640277772130996813623418971921471020904292946853457603442393614551392891275469344648382184152812014986611539585118512920994353242132370507830367785277557626922927537042517907393824507276757402151684622927317595601394314412958703086321430241237309426015421580763088697248191613529489015062038028617015033038422438436936058582459581042582204649623738207909449710662700876423361979395969949027930586250180604963323042622638632321785285136609697995766568015441176933442870308789551440829621298611018387097537038570571693605483084952211168622180602258436381052401528613405578160139227291311612424733181944843022925854805997851265562451157978334516345031579701098276921588983133188105260842538603098362319477823808246118438241846096732617909600915837705264678242292986381707014062868911516791016074702591168538169077703888972040733569746547248118813656319093175327381682667538880611313135894384523506437941223089708409990387298182510777580567437328987020980473086140882075604765283861359957585514383725971873680144163039426257045994573046502121517248085196214187830838644625766293908453805507317198542553113217187188626639716022201824280853573130517719247298601516542084604956605593421259385146295088680749597582292403519745004765590934713188001327677199348968154375347789898780387617282835240755349006992464457160657559335571534098913081666710293090334816631149594553982037527191821189952822150107819478871562830809780617690282441511644831015437160670081721134323045379464473239469606788249307768304251301706973327825600051632177489251299182670535629697065701377766664798997799552885125551734587539483021998427872695643001740095887113919121087067971998181308495869040061627793948093407274499223286953196080377266482070520137871655076909406231683100700278747153765815706694622968072341754737055725965977701306211486912469810473503661252422041342211359049036592328143850341852238733233870005156836826055761416616365163100000925992451801306525975542011167559026902514790550517841189977126697677432191239069388601583588372632654848981631460962829303799618062995290421306912955774960632755115674842942833286970747018078184152341168044878003057052525047794728189435475175098183168520266247908894031689814656094425505039331819401056158121821319584200814718739762110982832613140406740882973545576427581492075315285451900612464103933159336026120086132329070790291030585564646550314948908439862416358318836698730003156517301213005055497028170427307836424704021079247199634483379336575336501117345841092737816433375796780726003491661196119960350747372619643301371160366534672039063169302752125035267751924611396256382398424374855013158699561702541423212795822841594173686143872344554661972649116305761033813918141763743715766801166946642351321174773840186250751811601560814861548490419496968681179086911784742281590053467120171064690431318367863020801889889588768808761871542668331512661909531492183679655762318572722877190500773044829341383987211630247602056574932084954264180229615447273495687296146377640754103839521863572629627012290011401282651945521408668738260618003641696132512025284969734492761426582144938908269159275800549425591178964838505167445464425909354957363500976820287373785240874296321438505150513250384515267815171856448810994010314125948998980649107397565943190363168767515737380734175186026308815984449562156470834924286741222867321573034544514186157276728383030995537701856382736226812170556062596602084892919823512667115996610775428128554169472086089518720044863040585140197571786617312307006964464649219682823756645019156263077925916090731822701010118150795541237985020199332725667638620715485789482885352934179761638928208029027429334482369075463554291302952144950640271557409189968381617965867101555521135372690826953503526256659425411092500439840693287118109999477052612028381034237521967072470831648690419751463642253929883393981163502764730097680712861198823906975555434631277372921687233592220258642630368811868597338179458862832682969989165575033625883114961803365023914785366070024283328348133431977435558129972230292078989400841791528900777032981839180664469684026891073816928790892133553264886746017697792026888936309538967634177735055285814993731105763249748307365543681706737584409435500012831584860966081237824209433763136015739183020268286529980764774942252351099321772925976420290997423820438373207446064956159364595136233220347517883539442446092820121497024117951217150508394581049111082462033906863839324990104541033978480110227892148874945049565988197190789907621517251599809340243554060656385183257182401489802605552692162921532420174537810105889471515637090493502260467320618137735141917400452107668550993221710107133837573600976531543210590839334869090099921137204215812795100463900985717890879701780439847837785125055812691959695213766425188776088214632845262208202741057455966828861849148058492771231929047797241935683331813967646156971023228572544448857359095071827166326275609202450955132211683898882899739255476710338069459322098231916964323179128776747275039991932761909177729960356059252990441023026968211368928833724465698154428268722680916738671033433786271620626286388799325937053595142707201601612171136461851522590593529030173775781392088682035480828107522917391871297468424873979295174041113562295641632916415713814320792382569207158944376472009121144383681796272364682663410649100944952929310158362106272479457416001360396057786637473722850516576287470104969176492861706162516199688389766902019797452816291986909518653541265866774329414912522005803788554266682404061098278116483540528951060600281604682340858480431201327919604132487414352016743561630959071332750707321098026173808719754709058959890974167198508788810842037190683905926015038952995529846353628731264642918593206595344500356534559669474639336646083745801415948700106161492176058157491795670189018580836765098301440517240288136048207253045546405087175431760273585451808558875090217888571660932302856055369177389695387277368341771265984649876402712367009986101269568659408272124640817440932604491797851562147261702891838241568401312831833944412513546442305847764634612114935425859233297069150943876051729318969984311388637969088935494612506776136213271433791415298792365506297814269393121259145872163902001879128426959112869890417846485076094527598218304661030886669501076912821077793025756630551773186855644825808197328401964196848555052411545436840163162515788873833803099968263705992664864860635705236093744590947000961764838211793705012194168067380380560505496660570306416574568273028566188420766029432051314634029423625163250811835163946018344192885015774459909678592164926146315700844010981422681731365490216376362822415848605433624297259077039240691859617179127344216552039850322613887992337299040570154070864170026854275506696227360401059424139691781117069886489648763914722568782056785114503319786362978675751765586194883271300241467301432694058116677180289588610538377687756829741335701245260664310989109331566111255607859127196855200517971619548695653080098102753306847445650607590126151926681682608021396240961559584792490068146685693519664973017238210238093725720172895156890175100949205523891582131493044721712941690047213136485689661328609236162684131514240376248087982824814401677513834362175361040355612423228138766592201106402003043788720481822486749627532074176621244233598369187836257261106267212967307560401918449613419532423156081702733327975242160689018246253490343260056348538197977667498688188083258175573186206231483729622296168055145985940895194966377873466061150855835615324647729702707913509451076922371524339701831492966496368325882213030003568454913241842045286443394352654707435129311211741040975872745317464237172974351496737527900656496374615358254965171108759246050559301122716136487228336513144415363956553212383808175535165863398445297668202072695644605191653266139408368228395187939254764298011156463219798680739775671839021948472397107084969833206783708430569819351875143099418614077294455964879870709623018823210902386799603853872770567698037594045929063732364542449662226960302652542040003298610699124066807633655580691937282091880795213104859711731316154221184469254705559640937792348841320669927428586018949506039444375148773089710797994434423273727712681880878410262930031416100114408027527194476069392020436376879781092793775445976581714813818098179251612695109084947131705745506960413771484134285709639819490217528908321302077026213890299246231567050256030421991608709717068291362722865693279943172764693662473048291659991960940380205173507558864639612516102960048475008162617430928040353246375537756037949150762827827723392094044345645680709149763648264207193434750184560369883768263416061066359361464134487521823756256776646219965802893401549482743641632819314612899637172180302718928277706017608748319712903593892175109733927725687413968812222253861528609090705960833867185158427140303220223714493794707264114002621426181538994157148306350957796357036597392188370397268593802794377636842645394461005139811002243373700578555288466668087640877502154386499361988180855465006308018008498504487412088618368890380185905137634783962027493825176929622835657542077313998221253436998162904695991470532284132856783262823086647359116672000037921584285568449167555018821206115800050776017052329361037728094054666258775856707858312862075083756119324840152865876815749038623367592777112119875970288722931148578890410305570647005119566856836447273833923596438083851773724832143790298742272377530844142687191511748992643425631450534474065120213438709205184077457753859861997958595790018290167470650129674838786538027613492856390170167937861637385865698944324006163550022514967293834147136252890694139048907975141594926458532022476723804943541782588893236174078275110724303153370881562061038111261982501459690823156807046857116120162533866744282657625896244156230995039945455290349154190621919209300253385710486439660922992330557306622492452868626631743012205014215426714527506126468453947147451320406382150318723690493514683072158106088839473059245804933927869331636367808170041527502610386693047517160289600975195888916208706666453798245410226136070435525407561449731476462689564561961287692124605049184831073037738413000117569993516059654862890636586950480111150990628819674138176284821156093407916683682272180533888106955713101394999505575785910022623314302418802297307255484840393944805913372998283551381432922984584666088384266619901496582658738161014054929435320269720825728537337859198820270342729187918320976432678164273269855749548062520570938338704150486628498742191363870482950125004116849123575934689624253919126887576541902369198341151879635618381199003115689852298020774428146725657678890162814503227623370877125127612505916598721907446399828235596428872105145294827333674471098643979546707141299464721572440555765763244357850237482198306851500812871357713213758431005261171587850652031004943406270824063773990704907952392047654545963939984297662538724648235640636080363110026971229166228802890890357754461570725639426100523468123500055384348016852728278833823016917246858338747422001409521745406081616209019295716150539315955481860147266468484619560314894840258290132962575220609698791761536324668018424864006187053389974957198354269837548474358873022850088960943931405491719799131228097651112716499108930916834848513902257198640491789312394825996516692109017277636697176564342077058512138595771045610456579031895954206208739671580230223992750136184385959952854922875767009295737756800681658436743832169729185598533934263826325614997154580210515383381191402746634108959658475850175559158250136460094992555141974437843608134225868778283718476747874273320748828496537089719496798167357731422257311505445035806664487985569458541718482469766112919610691677565535362613281944767341560446875192124151177652852211733872898505746939257582604725580869857735991746232218264545860821660571030021691002363218127718721195954851162194613747003868800496855048200621716833906594138808127677147382917504022008748475730012450534097746023253299041984457761705758059126280866289583332879812827208332619432232422219587822041767073195833081487196968243206943616113881225934300199195621741052652427244910794360016814453936768850514589627602885015509449696433605856961969750158759299673512972059257137144894714470166019946900665451638250103555416890857376124837430363879542394647054775805807740368476172216037857295556023757609707348585743832479923846268941907693842325086842754953796562948045285428079170036488235583625199263856409872441970003329338861083344321790863830174249861077607654216580805280839973652505852943270370909655300498438436589679640892950625328935968062730222918999905119152050068882433598928797004473279994039380119684047474560545813376504347350743758835929347332950465045986201817458473836014455399467707054021259333814363850722929653558628084101123545341082243253250086965685401514557693262096884693853257100328933864001947629626757888132815931430027059683099872498384450526128359582584850712229356064960998203027191968429197722242437952500210479528160233881744665596118004554247296445457625933154482574839871587643787251301485519267074559148589261296484495440351044467192110860150062019736387491530733678263690092371236342496584099873261359261319299614412402434592138246127995586738025177749127887559119596071899841377212635346734988796348530747981949864008795121000178305446721945507780749727201392699410876775794572229948910199595181781350257918546274092398043711899666653667382028974473455744023001053760341905737025878177456513432296307411839451035241036243678475077617474374903363001975211552101746774174576912842848444421770480713317489449277153167406663533192606260141255557615511632325982394636745260022755851511884594035457989357153211352557153844432104661632803317395544711339260428624427299529097713607806438881304112102621956535217668144504585897570929516490289104592566281664624257169741726640230261377529170781206233366208748966400555327295752493805615337995198900365470583204810942015069959722183453265113732638292812281008954407379768182905254813587776444197207367240624672902869641655033530251512449143047354578810214854616065143902064920036385422561759274230861360607877322288212607273895447821845821582460865090020396725489340857935103531560709426497203312827431937451892073563852321851366468885704976368803387962755040901608299225853901967861946317423484140928712544334980137127605604776141831584608382205061495362028640248231674942630842559143722761297794110284536994764482772178619115022803698642061767706368568582247108067434942779212633946401642925223659023231298553337183555080355020744838363734866605771839656654784843382645719775509053191915520796452324038300844591964640995635601271027714742763199096278936533373301745301934630053101025141518163582831644201843067048108859353287713555777923430355137147949744282447900857375489126533984575364610646033917688022005100314407637508712791234553182085253312717578036428468181365220525681954249987329361130542129929436818831708560889893283057912840525093945052268592261363399978823013958336239475189632907226318505648383631481147320553331336033395914556853598184888162768561114990108667654184060326315496413627459742214579782468151105054172583560277882722036241440646309711099386212544984306009063234533139659748617453596712317850544046260026569332198475172569633892558063974031456583055862172676826839826218674176694735226354117055136963774281675281430986332498205216197812480446521918670656561381809199627755036985772699303174817119065758537273508860374026856856831084949169525184187916853226639140683611924950208151184151317431204270908427386637522569415066523052951046234731426810563105715763275133878229823094740834767705527195856560379324923536830050919870111634226012716599855865739309438320300039280767893468286554290842557521829899038654616744460396225802464674963696113349514257690461083729491387273602334066950525020367296505241217057736307900335352861107718924325917760208341226331668688963649556594648890397254860700969297004971593081856092134063847181697851581661514175742756313514543387123575610783507598668919201623993819704433138458429431835609955759363029376100412624862533359466214687703123945510800169887391945610222217480406222539900226830566187419298092728050561369105771365909710722805979568270307527402844088012788013067274860296908165744104570172931389626314812891157434456029204660795396417963560625525915729900318296107521266719658695578523931642689082830824420141978959899223085189487774498786476778773486519237343815047172598743486688520079020162081390191075293096970692353977993866711937783537696185916249189510308800078932112756379376466566111561017055915668343770506720034757075034563872616692106424921585529404469692545999830738645156222316490102044352920454561524035485477215768380887869974217167050650311144714491778467283326803667686887804836741602006325669397161668983055992115898906264255330970742217596019271817927105430317445886354954974423993621297159846385227530722543404743696864560557414719952677568062932852677634403525147533687464147934326093506769945440944722354111890979167934222333043241466815649024719656813815454933185600918104470631161283241742415765746763909989457598033361365414429885362273003299853737905734512601086917072673777841424229385453944655473562521893516361923494605800043864763520897219252608767787112246979654771775544166115327455477862355094844714850082459748776974172580439997025088041026017942816114699593893320658803205051751041143528231175093218549906267013154922876146073040973141788521065786017013286663159489368068511907638426328348820288861817696457843301958357426141147770742195319960333901358617712000927917075393108744272699555652410320508650723318908238383170861358839870159945262101076437089532606275766865716983940690462667183671330099314903857861494796126660844350796564507052946242665512266305796091594860474909166976911229009027772348714542311417969754857302626462271834072729107885289648521335810626105423387682992967301800742557779954074976030885906685383477901027702824765383756353540669060103422001961147270530405520164543103706404877466871416049618968205796842280996341092325843920431860232555295356076855538115467641959767893401700667899062617569465702345116715368866711527876294492365965830540775214247327797566395903686150501808528727356525150372257507590400763812669327825540812861105121388571191250292111980750526919283841132601756360724071121314313286408524919961607812187426805223685989970968852444591846774134611918694056227093160602757449321384875468853965456793240269056361723022444346902383761892251223946177470736924876603982623497113395487791762360124202240354830673146638771230088153437225666051388537885390070070015189742336884154083380793146175276847619605531818750814069816193539092953190482836754303893294255720607341214009659415709889784692281318438952230932820459626951570476974437382287816105750150636858920718472331027836876103310832915330090715119644252801115120715404625553319605774974812394932039851987890271483724126393684813266428335564831272852663571611596143182435553067957600951817367926242505054011661971669044783706461419590083221668853046319003849934195512974842122119194806563219837038362153952416881641711541936383757992137835996367729886526800688199707623083710786778447844081113698694040566233710756125555232858611837401057340184671781995251387835399232294845206459475772652689013798700561502154441921328681118693493291433974510112339000501291926555538714109730286593523039594953678805558482461961147072368441529604368259613188183032730118794536017727867618442153041880831042286268270612744656602539285609385514991548838660054798302785872661268033406598112018900657782276775019087002092758501536278646909297532579426635641676819955223487015408880734464897728980397291108342457885427779526135181164037147276953105452510737826322656708577627682760178582203454381642311696567905591733878479186777347971095998313908713702409931959085444291276799357119821477918153435056942990135420632031674240502458537302124901084255077117255082544037975167221791139642925903728151160685369946176070689979043485173095709745185149814046302488986866274127270782061603725780197279425025515735500487005509126343007233445160183486321579397193250599755306119817943602239720436474997921087206630032007107430426746658175691707140401956662868953077207749427980953644604841957215967717107642217636544762604394342774332819775590266658089230665505926114044808443823024821306258631347963848808538837177626232000981449587747062913783951516453559557330816690655599845183048188469548127428239140527003472528639918405696745908904168635979859116695223740134277284780838063513240147138925719020166286126723419790220731019117494641662489296583826106231105504822736244870806967413374653466074345999668794166783477183238784433627084454359593124501326039042313741584484790494036964373240999419136748614382826932648267300820540376080095699797175206584698865238131174164341174733796816978110734060394992187797349154975108555015042500016449031370411353681958516606856396957806019639412006004141652886622442937353517979720530116298141674950901051630451313365629673320206089994493036817122629839328085556833348607241453765072447532729142174113512692578607651905749597996165052672814089450261217629502742543904800182695253902668044894373729356496090237438154837263637129033506592531119420754541806473448969664384422319122908688827376396966888913051804810433237090473028840546809532305303831986598495904754143349613712741121096552872726496539041566829646159136969254454359183361554188720844399851065761865507654029946919624975266284886620851083444926852844842759355655291846367875058063720520177190158245256688469124202479608501411594391398042900019279553331125644866162807931484257207751401082930665720911178376289563265461672943517099811175685597378831720320117654760076142713222512894000098376559569411389985784006988206082054697846613274825880508440086007717598783628856054476533099321896805795009850213646491223754811597663099095305628860474147087560443091592147213666522743071289349859362522769736971217926019779294080557936309874458036626673972392748966235246038734030027781704695135447015919968306427167738934659144651884165481011932620224768218613754168565128628443441511142482420275717983540485693608978822337779224946461757978536245819623986250000090424995138174431964094488321711218556597658938943628622215496952406966947123392169319083997599519647395434269992265953847714732510083437450127395869230852733833815070157153362753928814375844662402655320287001179400416419968355386130113433668101871466125033022877816250026200742277238381838134731442556946823847351687412940654586833221204438324190707329768846392101519570751345074838607756573421284300838677935819671198874472886762912599311806690193021710317023310511431281659593203051315626479127445450585861070664991753049348773880802127475136496437625256996664157852195734647568742230672281129803804515762129908458338673249197695795818015358618479973644308693334937963571714010296503829247435496725194747514717269782298920988584705812910635425987891330712871120775645491083833568733139924547388861256166214748624537556520479124965627185389315345919405485559893550237005643266254788493092073099950334623441674811579688700337857250085953675315625272658135074049325053284088703106306965263420368555073767232976924009854313234316663287280013188935943578904658996511152124297085427065545865843089906783268585257393873118859049725263754850812877616082044231574699958665679503778211437848802029120424097530285610774945503930506616244614965651941371217980033057219982348488293126640027528195669308291588743643835312088489990326852749059946048453044858468060475880022593175555749427288497892087038314385835440703502775987393679105687754307362516317502418265819753577182617536398607863125390138688540448755981506035514416779646187156412657339077872875308452682323524064243135951709335698635384862664877085830301595677790779711394696186357985244534892805367864914811053169752926761607291711152992542135884351444924068206316329676125368279214949435065853371186467825451358261573941399380516325916330290760904018747789056932328626207349323923793737523872076056121197352378189987950131621438813794890235749858724268480011432001320755242036735712008760766020129147257242696121357974624323482018003508545205571278397653805047869950127194591708094408604067027206553069418985390083251540679098400524906397075719643105447986312315671765517346014749806509097387074364151061601217165994175963720858666886919097406871334867769515989510445946709756423928513475379938097221246756613363767540662411298291756886768861988290080991315266556386007370862664228694141720079386938026120473071517446820352819890547307738671163338456132482612485626314005023587364987505776432918661448152162052741987073068448480314847754338754965470681772809864398587351693756259241498860809326561271684539337319366706716758242572890008887296070095598543318196337290709208156294139089960986892320620243406390003954975721932289781909061867727390054294994987804606746996207045446783304008729398567851386843315345337816274387171937327098251392051880418255920806359613663789365024748803699131445316244728127227428648269751274310732865392721722447896741006615721527274567616891354762309100915509678297852239912967332716629264101816622091250822152508417811978377184176922956408444524696773416683822294894621903847743777214869791399633471173989835256419782228946167896563502820158837002406902666465082531326281342028217716726408643616453447632134437832311139907560294500281383143021165330444572362624398956664664893183642756655437416441877914959501470935491206508270774416350022341355869730571514124556724294780900087147571058408604904015099147575743498065718065185052398880006650644627650758222643113400273403810670825414836046171023338367208700853259705639181394182958276050068737790245954017232570587376474088655067471360400683565704626600113748976692614356198420070100062735285612274727436124455693619914011020792311936658263981411602143482427063069008302577112503244078275026396565285680221317866317668073064664266076892545291441839956759986583092910526386373951344446779303330716707528750674332203561585561295418801283144654162463806882067342689028927008879390394220432852195454852620510546188101310163107229968594884946588375586608556920141752077546512866086420981731412391845470977434046123551492176278323503761979817770532320500875135250883366533208633392476275151091931403226455928041809392441081412018654239107202166948699824130308405597086465532057857765639423424589421471877075941020488681908649463765811238284063070122398610989447279563618137197331907089370863234159375597115794590885381415881204418444110216194455352603506253340377205250032420850198763465748718955302685913674174896633214688627900037629988998081287338229380085819412955716011635373305506280841848202894527095563167470604477047897769003352534320510912706489046616833555564925827877228475057241852354261631266808286082023368099298061175688733325711430496064164472538426662183445021502872317628767943414352656134496610347683780084598203136948287183026631792016648490813181805947418933405287736367719577006696644603074291979786794656660404346841403289030012862055506057242231955117665451905208814066695130832740551028969966570399771556972018600010935283546443899279817661814504606680375748585028763608226990640795027193688076417571187844810835788825926955234057925298998895236544639373063777059311862991474821571135791558821920544133664894703661180782084111134579549291250166940247706333041873117422082485054728905482797760292840168131211449627249082107321033178390326259497963769309724886336763110359253592565671671858439355719791033017614120869304782392056088728019342528129189567329219396308680247077242202807981455902325175302831040031294522055132429603415324180482945456021187507145612797270184969367829325167401270341435089266861242696934353172452317748518946640434207911563777574136567449449426829636524561121671943459199940420843461661852192524500388305793348154210882303667577869405083020669081392551430587397449667647925338316372783725883761494349091974047282890043485785349902021640796184698734612045843905030018557533426522365096982506964627498334529111985296198798209753166910919105896631598906574204661381521423119493272607154825573878434249496677149307661196545875547164838445639794785456852608908250618449167426394195861938345754559433188945553598619864538879783160552173966785470355161940415962336386027535191587258512582418377284511878107829704595462226694027837932889124450685955205807288965550832347732286643905996857235853976019184068495363626485070265114094405872998890184329584617779179895249220704849390790147234757752573748428020769192622061735614323557748024923664696436997492122789840500503395931258971488843442265965728921412378425872539795631537546525038877692925959159022521015220127527004899645509219076577739069063371696213839918589196303456118991055862656962498549932437429904653077187933291410913887301035324385175798725894505500751599391961074999474955582550574051700294411437025578543934587446355484625891629044096736425140469249145805141449181570929141950839473293314373889162305038546175120512406396723439000435784886620754128148208848397306593123961995041012176539843770127864967662314824928976979552081296300780245573409094763086384203421426596845967721257367974880027198860505637915616362447453251662210480638286531209780921557802240997084503769825844785953366673533573185882627923385382367257718873676398921532878751871746160061562342450622818738367837730785924910318771139150297289472989751517465890317160029520972071569490233773218660039310712245029321085841301857994090365460362499340698323762151099278250786573663183055510906886183309980587051672191031724690093868129551773156203528385433005442643586709632618807281013024259397071839673691938996250804719476864870939682014033834665199791414628013892895787106660959619974851996380251546784610705323434611846732449208683058884248738943602046698186219848725963517016829386356101222488707824515061235054035231062239526983779816339848102800634726180158265418796233004218904508786197157472782093919240491542461088970447816233946279286582745979314428458317914110860799057664426234252320282505443880555142748412883442112513670392465012455214651492817367856352719441921859397330854474548344735932548292927292904176242945556352344312743095996404233854710637267800670525291762133142221734339906076426869377884207489447579340066790144335773376932480912117327296472596302581143425756353624939810947700401937089678583128895061712838404926204477103299558704752800293001929979156418044396337853291718789857578174309363620370731977677484555476221615372598893773547442091831347862772051797191994466750763423127815769989276501359894716974612442376993017635699929686555244239970069351877310377357935822979061062337181390200656758399839363185274792265871385748703958357805556839828522016694124185581056599446036717854700269076782363307918338475085856471434073862522724347477027725246547727341191974088640543251949044000954419032679225401369629930150230723961351777793901455307038233224321348225699420434909429798275322006894905071692935130977208542578253767883233752992203278937457117874294871798340164256704641282953764386765261485305295641081250078627178341768472173268152486563796064671116357383815270894896220916679772686779389075671161248893902795789861238344856144103335985908603715330953793874611251819061909653452731372668336998139748216845471236420496333306582182404692384814190692991231060319695524336700081296213237605893661127678810642405726797820010983915750528760173776308709176960308637384445785506320019673002464364069495653478255858012964353179891040996972115384026569128846728944295338949268684938209851504024149527020769572118123112747575989662980746914362293533508672377319365435076852788041711985436557102986870797764716794619804286403369878222889708901218112185336234429587915472488114289542525871662395045999324691682679371909608447881732046576795252702455750373130908889730884032496858167282067647021831996482755289935968785255750205006395574500099343815617948472596001233315367896206707034502214075291741840668327201019767538546036839531626879729645197357140985200788362889198302356503975422136389858052259835354351019406076815438919635451395022411108580932966797351895867711377997029099358064192142593692233379876171385341401610153201656316745800417327884651143549632424907320621723769807345541540232002973774790099470377907678383795320698231664809074722950580650495104756657442675984896974407778023388280509975513093105958552752981237112565385264339067509818226570823301018271837717176808677169247224266187855078895446871348597431414506651501073699505343298534254142922465395648609671988389385788504683114243284547057776387490865180553867121953696067732960234059523063168098645433540302643419304133806223659510647482953989958980264361673138666083578524082396592815060451291367161375917482708259386120876648797421700006230796543211578007161066628230346520376726680575537976470281574294605478269598509659889282897133919444365686845718289961995385863682725936540792763099462623139500290096746696770080480341854323147995987534256680584080347219460392070707846559120281881228122805704502609642368671278585635025459413411476186571568525620936979162527598315867236358409384916224255590023232355168955918805533288032292409990364764830757284884264457057556267631418198491331624170080221814318185669284093711265644967405915429581352019785190585649359313580782860895795501736148544275190744659782517826698832523041390867147856515785773899954156306247938095333578462173314510524186804624355806983733857538078250717525422157020654731701714957155154666579819271911737262524434165721154588681469452827404672724803045477114142529195204463441483139485424848970437285647748223232947081845963194557906022475264355912658560400643739816921376930756876077681589105536231555027787045607155338828790872720031208363203383197157315279220297580973293851717297281204256766547180192403442876326265794816896841348514651594845266544411470661546761709064680695891084492428743632020498206441006073409177852596704690101409652548540786979663034300435594345470471143016372972978589348776157416214845834669712743678240855383554052579891042222538269829106140422954736657646229888325624282261123841091019386884409817192906331161901478583203562348880179070850234713334104148513951715598749856594360719969706377389653752259745358645396678075673163657562370953708658758326259538255123204931828217766903532319269408832585426386791550942877407159053657306811228496657488637275500091087815526573269642408171211595834068744523643011999517151940474638692939310022228136420231917816110631139975315727686833580324374384501529364983673604056722910194415629559842439043181762247666974600491363888296751607097127398737478453439270013290423486256562133677929129367409365442719259684925427022946833979709324303572525314629170734705745076430571222228128097885268476083449778478500503399318774628008479723047190099968499122659479648552922063564325701408112379609730059727713913056707041276089936838961976970864497387144609322517440284671533148575500513115613081602156464968205749641401354739760326439991004809283945469521571427251618681340699508294510377511961657037437217345102173847333377852882505931191681745971745071119659782168824674160736545769241603913697002344990727652366808722798386965331632671988278327550399106557478768040895225479933066184593417739933088002179328733367507449799920407960010108775837248202138727431769446937731982138045590434432345972037669170321258290629458869099327093478081353465041074291745187811347581438310841776132298774251719007914485017837450085746117588716865155157612536676352775238007055933572474253489372575166363536150427155909246206282857773861508358610286872705731605884597605330111723861340862887261041012028747380332407740237145546557651230986190009063203956654811841326087838690822316987008945919992251304538503921248982945317477038991102009799400254662380916857483189042197799566772155209109255848260880731808163634293424414653194615066298108675064585059204803474733633869001085041752810205630627328829139014725915049575697649293200655429061154203350132471693077932425195459636367481717533327383708538559042885753330945971735396486355465017649986450401618395866837730210554278763940547856068034868846924715381432612631586327118891535866603594839278469697226089425100460797901944068206974717253798813983676919714536371125001819743301778460692146211687197917793864414706944394978738128331850775815428358921359200785938546953909779550157119777190216854919478909528459627632884615684542415005167372553814841080128436883660348113878427929505621217693893954295367845214385505536008981543440205861953539797281884225373662109511137509024913259479997790876139154691857622873700764001582355958330661482782151095956305088269350583643727368342821379869200978611698041997467986683419147516218779288969175921566916544650645566637731667974857212620979051513361584776987040154852496795347530530054961785432646491864735858171187624367931175568862551005275938358776516618468697463788985352412999042311958986042191983414034534420169279368207108261628208017213798937699345942292959489344698647261488781935184834831606469368468793664509646624680511912607165640560437994708831416098577268217976202756461271131656546447367938805647479639925926873804583109368309687358297455882000692264153897713307475847147742411534081199825678541640064456539831693528854500435396243259770429239868467324199528654576269911080399180910072298333717906160636100976780303574027185662365048688288530736375227566146678325611157884720851000952538129303982745201483135827799380489828281156971641496906256241146154000301573888238211677342315558239672150688049756190664605320166618636043091713984341472110611410888036698412085444566192027681946174481154975655954024933468605875376023369246485314104585579734937134813854786569540004450950328243835408089818602320314809450587896858625006037790585350032538057462772638338138919734662828807117583987192840687100621534764205732718861169266437008234419636109038860755155082295738110095786342492937293197536128300974085683248945492145146345643727699860461552679086528510433231101619845015846577377960188539433331046764946143808893824661002979708598916225448927739945250001255310460721642477019571065492916151849465914274670081319919906862141762473868100843761239265982194835811869172227409916886394605710962698970918251688948891683453057774286522000660839862769957813349497407257693774600466713026879164052560820536208951164642155880083475539765893614098109816883098455442638195087507278474602542432197962006125791500559776916512049546174432021867697855652948943743131859789095370285519080426598348212401830837234723427503480930707223999745038789575677755836739651833780019802312419003831939677678072648543099299692562938890741180452043144955475225445335441341261613959695856902674523522389611687023324762249729432451931715376743186120759391349168554532229723708303581477006843985143383615495601862224468745857532127938449008736017016179181111767728526048433342570674315202848173205937494845719429586267960351572634755361402038143891030328691898993358427184188375229770407048616808755800653970917205175735398196572295832137219259371951596837440506962502329738796217560483370141919924399446596738477012235481571457489400565817736392845360056541396982216278996216959295364741441205796738488918467720589653102987053099006924967424907822245222370902331387559490070155415545457713515776786012673046381992083373554349973016852606919188426187029665354188733163294511900440214692030777067179503584724408623428690427905825814564213925412301284292907494243505572803918142421230521089434597941439638130759634013482490142698954674926519526422457963185094208688196330016407936807198404069676774661553879975192858205495612267746782024635843364023909635195798205815337091439920859862892819903670126527285353816061915024306432779601708204456017912080949033141811770731344901793645914768622483000455463525851881660881799361729158558902782436001826028105701318512130218164260122129823830542452035198655787973585792358375907980848854661989276559678715903153801984593218898639916680659458223287550245407897609219959935713863937439104389915202724877695405738468194919987132473754109149517919076508368867631851722671116978026458202322806282188610518244690784567714778607884370698845586218610020144113657524764747998708366391088703424046059615426787402421948064324130892479462523392259529281665743862414759416654528852087992912715772464091397568501182416366991808010106794328546149930179371201190417009036162130166581560578086862762883147279301111630640013422555582356427691004534652547305789922997272955306586543984327858998080406791804319683090805308133785367681006572781962127128744221739418639440281527614066344052675249637158574346951817599121838507616618355268847414412551877756388578350776878768458682321532448390648097415418269260025221275259284006571443365242944759688252485274526585515270810410003871896449928144494479310976128884936745255719457026162857336483416481178920828551187887394864034179572793944192606769503076688851656194127122137594646851905671452749454400189869982612783740789559885023253292232054189509752759694615244793789828245702268374843604925781261398249480681478114549003924008757137639389351660947793531593566884969001515664395628440522703326933611369165872902458880578655361367517720244799388915436121539567665180494360397383938375077852990857484328200886324081789929243620781692943982164132841846804695866220719321690786349901833429839372166491260815482566359182726612288810285786145730395520207164236942282446132494170400275400361232035565373151158793667731243178859363646273324556907002744335111620684268135897413176970555353379525089910174208829480066887506948348085440385537028400157807966917983345739563871068142888475750004185382972100859005242778586821851362752649937275735004290706192638290664827952229744873960945868809573303830030922786134452285386130361159558695003213837521897589628218129983615316162636825835908846200449781652589579733484515334024563578187396114970762809584808563222341415205556062395174879824264053622638667140660314293628760363656746252147021824431993505677864761967184020577774183565261261436281142961104310041896122973329856881072935943785694763505381538820645397278368373856790905639417068728489230320858328440465119060291866143514358118661232714834984919686854732302391920161003205136637574908540478098543619100610662986419620549068497456151291959626447079087826441690472762471276963608179777184833014858700208315619237663681922053361204360692939660680253454283623524481274017648894841742456371442746808371403857048217404628274128108008817609096930780623378166776751142911894115882479203120152005159636322060863300408407960552348290271814821832339260821374324025173728510219307007423464583912301150129240267578638231263962815331885127816553109940226013874801489045526111348031172992655660677420543086027658430119418413747084612500069837029529506183595242670788940988318550522987594791122472813831222738583620388152306061291326143266921726523416670272072529903054747475868000281932473455366831879981130255969918860454593417941622422114663837583238919851483802131546314266854917829346263494666148372910922020164034156161136395757801067511685188992899805244606175527812651403227114517337310450213734295156683653512508123950663032617859906500340247442509369680535770955243121398986971295622552377362015188150013884010470927706188085086945854984715501028042405044829969898877473743728639039786153735790928041779528968610612734380635774862015166069852290203538157402719025252672445738709851311426391844173057054264524587352980445589462396560471595521449509020864262428871727506609626741775382836036579672395274041086442766801358977593407649025073897918244910723750831819922456079536997813195586451508254825701435818948007544960996224463411288517397620480496077634657511120365020483669609390343276212945712117424926941267466295859379995800459876674047976988980319879315335672294274093835704699556062854629312873263906585173459186827044431821379460465622422060563363368262832597868733437474756149366627253359998802435151446409486759931783428705346522750229885120040809878140303233150588911160201650135036458836013933417061849938681264625780684014245987218457730824330514664205363316535102660046286048456224743504460426879919631262467163707737044189102096715214684371328456725628475161863447386442860315375951758497997369614345953212854619756232319730258714576604733486086423592705899397171350981137820923434736966580869165911556198934810651573916259979311723727913365204845643962722816980635045802195572451879729485097426712778033906914973626738645084472301482239011571250070418002883788623088130292479747385321750512936430124594439583359711347801634212783951083183925008805539525974193496358679473332915496602336182645166479428383537312097285154531090201008282724133201521739037546042566624670551497112372673919214302974539727302095247255672843339395917630834785992117640905268071114732181588965433097730279569859900465087403465522036719655723892813934453927608348677863368438854666464289041238195381933621339370090810539567644455041258930829393485333537036446259633240839535813607069298189798558048173947415765534437547331162288375977942587170177583260607127544851203806120028897961823527565178484961866848982562458401224625691567974596907340759276645746813176167477544685191883895568611645617718810519236835664936794605137907102049377970900786389728702535127302408184685260696426397636597337096300817497363255796930476961034935007803629916772361815955369842380980548909751478009563792433072189447318893139818580909062253662108952979988333895043796970280194740450714662788692224815828769240882513860529816024214228583923877773257167700130092354379055458174748101175978820263319522875075032417613316723908802250633165065957457970564279767744832662670984767578812976209271443314739316706925013427220272406961480785720034667976472987424052781036536360866996142156991358304836690927776789771363925831317939790160909214304678093518533187151211015503682044434383675129910931551057718319190507359749676387266530893318416888410994219621231495878883685109089915532590007673613214449374849947608767153905045623244016601186368873090180305586995912563261767691329659779887778330451420969176685125327932439015981293622459274672268772013379796958110365627719036792675749738123635471423452565210577849648907062131890133328693362100730886412090154892991748920237415477742132566175863146082440789082776310280826407474112126915555068884670583928228018382965834264266704694586219999332062033379234325507887712473506730926599828698638272689604384492102245125082472892443534446735627023572527957627937253304941863605846635443234715316012197439581098058559713323186154008830326242791287760847181828569173231605064911975282476929261507361035627008971964060969673372036464192232511145831505275848683439572060616277453210448653671568581478018307529719460308733255425141195140888770090345460567589375393090835140147179738998091018806603650082387689976715026699961458234320211725384216979025541429153716430621535458438858150970877961737657214817116339251537845141092773331934509072717696423144564370265625612090872749178781846489693067194217687477201530038155005387312820441597241534523262891377019225021051174700394033523074506041213605048678634489753409640358084210375031973973017127069470036278903961233748848494553914668321487144761213321009697091060523407995786043848250517471458128366982968118818140862374641075152213332798409762469420724326176681198255355732659911904023290112091365443406106777245050902695724558288478457847896792253506691080985167277215441783388862240822721038304279242141032918482070409629493449658514961637032154984282506546578661367965979228783445288198189104724369333471534305643365323798876189722190768836774716663651348947075700941674195246924717785076868429923979755077646026758961110166161463508762017379192519982506982638712676690931316638722303690168564890810220001808795665368230043272614614042687813739330337110358200932372649422136837041809042302474253788766518186658239758775324346776861664272418775060169088819292376378049787508630225083858036300738117147650316590140850260909497808338034892508133332180454147309770608950407663839281843148571312278094680722739075234003948591215207474283527982288717594657678599676836084454469642993609361877163297902233053824346866373697278959424967840050847382205224421593223248677196302634556387009149876158676954879415400033167162534376691922709110257402831668803732041514171295578191010506832826712007959373221986498207495257715628070278979561213324072530290747008443070283936850690858011039934992489271769408859897156196033544117281362229037505065125589697593534368424725674414797210001307299891805584925345671065017605534538172802446489745295353562081850604878621005841176253478492166044217787531702940467795781933713072962332243048481013298297754193959626974978382347249499557482510751088415487690221821676030613844625095707932629513096195670438582951240905915811002599885362460387258237482125950097741697679146126289678766191282136939211709797950611380175220909000242875083816468923622283811012487819649890809874248437666788501954397978247023670921226433076238957638454793685054947383142090739874142562275610393322297958587602247450034212411517149459985499892830683941251758344837857073927901761298364031167569387534290420643928058679114163539636923094038184984260709981287647005177575031939426064270389527317351597343662188290661819056180047571375990864419783169688253341438800142498504520834210738356356502646024866443006320095164635365688272270925349456966912859255883920238589733618411592570852619694319764076592814714766078550629019117494566717312705291625718562430730166978357303426834761113852973382104124589112107259306675346827448514594068996880917839879827626910763321019764489582100252910859172967953560270770346775353240137067146246909585482581058254159719573728155697645508979949112087685650369952648872533820358904161177177482611196000717718892240691083581429303972814853786408255645159755658451034742143986079099330227384493928873136217478351742606762012684102030075293110735198971188465544202699031226948339950475301981058376031256550945537839976878962842048199544101141782712369448891640418304288031784663696686096968137270432700448468539392114699677555461679652267319325371217828078609674286417328807068961913200239330909246576829925640988083647027431577234797833282354545120279719996154039018888045069566073204183377716123824029667593527344415144806527811582805758621819805391900740604736834393744689013935694362290802819052336048973867923534091089858520879739870531618012398110852135049554654205497563736160594386247400980988269447695223322643785875423416173190773671017016657635315217153045894119074307781695165622965285054443947572047267637262427179732593374668319654654241385616565589686745827518548314317305448024972732407399342876644771900024586769976449976742769699739834776587949145581742962516121335652387077374159997061522206954399285193450171595633025649304184318447506546790920850082811696828891976015599196647052617053534560004211253983419948947728543003646779571745386477030887187247472993172397888913240441178575232543500765851177389086801101445841254369285988087452813223313856020322423052140510138689251044597952707593259453537592759105270493604829936120171409226482187674169661733376688142734986206852842883107589973013325655581216354770166100257501701066336908054868181442155177188951953468623417752548489001082905775842984393017969098913463601926064819738296161166017689887772975319677309070477609259749108672585810275650838585661839409827349087121517060224033257759342808114980745339214576874932226881412242246178259900065146865511743701035128328333891391881755222771825470971166987666569035676469521106108473268110748064500341771491064658769801483939372609117469475164136666735965157662881267685552343648987151211802813362299408420638841188099038099970772238910850429474603471218700890806376036022749694281837394675811475176773470677378494785096660045043306125913127103248788864088530613558698542928401673818914384579793846938715939293760285434123318950006133426151877477205557570318304110191738600654004459526399409324009077717033611392233752872558816263771615180242273765382119727344149658654585999790489068266154778404868136335855656210180787253433471881623102550950382149005275446668595435890101421497054780851804829085090529350283120339315758150658478939768675210134103202967875228095404793268267556336227420923431312772469156261379898848374105270504298978809917041880229634047836810300269593114907663565598353646960109711438761234155100802867585998420893635748343836071209049248050973885184356691809094712842300268792884418596577245127873346038747163463562282158045850598915051025987877333766904307329762313625122162230666597668272839110824889590669014506737190185502779215907535478458195424201847795184279396810453680146339827951072465472628523981692835636138248960870050184385354813771138006918513517373682699510981800218966166732501697731907517602158670036094346610898428306239617724730531926773967619087403221753463784727458105541756471236812311033675784258352262509366132896613727444324200214922662989695843670150278269931520353924799517182950096789139339096308104956626007523327128562662928612803398615148892983623269963041085020968984665224677957181541854523350516770037113049789640214308999281159748200284268420742121812918507284350449550422545018295515932441909923418931077132519601571111328812472271448382666863688484980418508828638619023289484023321820060410690778204163893926600710151020636588807130641447892598347237121270386260963198126140135987176831350681187165133989720625378208583603276692743854198798697140534418196562866232393077475567815930254319858372130542487468246361645436080657493968951927722131475871857280808760151203476471442872193454285434928492551605610375359646358820689012966005005961304785766239156553987766977570819063877281208475195132934247039835719768634413176352986446008445393204330099650511194784129969343063905201802258716752558966646379148688587044308597220525186156323834448344920374037595331811403382377204069809916749734855202941839476080637987008661116648010379857264625682370838014185792941843196421509157002972918364157132211508324935855330627335132018713352073348550524073311255584101944789030648427463421788700552686918269184691918700086513841827405276649482604987292751090146213677605538223460116566109649380093606179042752667388022732959985896433691404199660279495134171364175011397708278817057835821477049398966496340295744086291193736666132741658028898283234962520479336837187891816861215152811677188490655610400952491806874253450620569068208021993445563110393860843657064187892349872060596857391845345238860562143985420346965945395592916477532308619950568382409752838430203284733968102902973119209739477785956291535737852081361058719147121184290620303666444977243394220989544783628775049922107953607167241037560765292438208835186975997410646371255264129123938976791334022164887877867736162056329059803703085456042061367197150271614908005585254990614495619412511207984481189680581215775524544860979889235235893244622044594245156571201132137048650379162933400135414976167692553799014591802944643825934477071015892950345352653226928830444630470019710257794418091221581370182389576834038140614422799697931181704947776114515178583722407195075410808800139657050879130648514282486217301449636797593468912069080671265850933606486111751561305553776767454332804896231336369112647083009019143535462244419707541244236426855503632396195778059306205465819564229241934372267869870296304696114733755464724673341241646148917098418324207333545775680004965495775257426607074123960356114294567532406285243530160346886669485218717465854639042025961451915757259516043386678234523996502347556121885499355912301158506772177842768225625566548831438725200727610069504590021625342172794616944988538864255167589769970685468347080771730809675125987681441997734443816087322873720892254323743261278883460233141925481022814579415313329926316965107860986041661330807069030500037336924052465078209685341291718024181735717570518488857762421180375457755871471484384713799592290178979586161150734953501118712752561905160790951383230168940880097725352049543800624861200365891089952854900601197414571245521362855137503659325194221626372008319496797883019901399158811888879704059500421663931196186226489603446035894001860767274652891698469298388668360618489414200606302125553381954324683586902775236319937568887010206700463142689980868395801345802204853214519641868908950333917358200840264237061424792594099580883654538596473824196253549840454931718412750357171369907094983683537687569750307860660273830958298258028984854215928341531411417235488142636534792801414615507940414027560787612008703833928627982681291948501264750579803604293601051490591886652183555078479470438710214553500225794130702703201524406885138080450582219466606568129197677008393759112127240467896487966407984873694894519183130720354627064077234415146202242592348566196300091386869494836273539195508161576888400452125576564441186597067532964628918390168218156312004151499962898643463655664318146351908617753846312695771869501846462453737700319844960306287569745100179734340267049065182338681326044795691975582033894836979420409865334166717781006160452249113356988582203816892176654932219487301058965067979886130561856493616882572966913302701346897249390069986327165903256666013002303479337890849079657970336971135520777622097093885030436764779922152502963031076983116994383855321007774880229209019686091188574667416322901246905530497343416250970043093576290018663205112359682769652031361528986800134290687483980668736782116827658803960006456641876474492364169471099024599021845900129339663122235467083203050156485844671610758274736362529810758309648781160471368306781041636536772470425442537625315510194203601178065538207017965283486241088672626351839157220774668933022226971587997697245073369798505841261054706953816465150854544425756952886975092947198446096558553747999151491434260929966328404445841239074558072562242849595857143697976095280226641283284884653058390773372431998081190077594251893518912293475996905548251113760012478188960369654648939412507733919652863150351602961606765585679993098342457005192349482352816710314975981890195034310905275718615146930453930929651186177557706919215883416230230232010636726214029990253010089055793551205075639301665391760048547706932966662168152279867055454498375523683327860769818736493408999254467169562874899971075463669277916339382140091256917220025324878699287152076075892030931459473123230795363856900164258476991239124878393003738255314633685861524059617533664847216801530788852063164749675740893694388635722549891487379794575123043548532712451025103949631110325252816114126798886173511228472776789333512980313235931826569480101377950092319065985149986297053048678142456885636169697501575210489033073932191917126951845616430859971729433568138430236221699940129161652850466912047327239462629777527782337575554948907412060392410969208115699452572694598043035636681667087520271487369982759321124787585986056870474966581505861749316322266258209912871555189470453173975818911450089416896201818990025888690584201111728439773873252588199765697433598017512531281899128388928030614320237218306545290615862585314775476261906334691225599511299805214392552017436703810945352150634881447675583330121506955449456080487764948100437722977546862660167332781436400448274724183417453947133805114098485832480334480202560610939086192144339156400642857711841537796901680920445048350183709908959458667343106156913658668489804705063595021515663763360815490901934177083609674245377039309302743449377709772349301183003950636266286479240309426423611075000436483819816181835256066557128494087061569654778043577604379963736427719648657532341534030320997294569447485114591387724474944854669014653542076029724121804934605423873732930720739336218587883419229892984961750128125631267532860814115388844718001035601716727256848670264825685890155445356523992344374509149712863564923568291860494654085205347444780616888687483278779178559280842855801720758107936443613022476193502605238466231308561208872154051935934018180634956205488684260273095316396628457959419050362069550455470100623224493007458923265475399219225315199070156190436676746122640011526205232985846202297297543763632778651799429142794153381789628898054176639876807291577194981661775529340757262288463441824074749118482064726246133309245851472160441636033705042334612034030743131944944137169161528079637757412350396606780888910858438976356404836837458527651217382624743563370422905916443334747978123885124576642432834775312091686670600422111533159582147286655026315785289901704245054495796058620090879930111031902376191818674081922087499003266761068756882799246260134999590627134495598874014510400503600178198082596655690485099566290550951170220332253788222349970733607902801388219366747567559578672438241688584120346246406344981998018277667961698280873776848768783101221954704813483642132722511277932664448794963044609188166533762793139306132257606474674331561921618440003775703455685240376521701730912923903527222384784873844761485089598657263087182730314465843369256423746420578169605945776121099191693117120745214520129913169848344361256224263326035661434020404198303828858753946386025724870705009341706804971834293920028464035309827574892230348155903739995958650009539307887131795851301117616375104827660947536191162215983365825180534515120433254237227379075829069030578251905457727280171585941491412629948382608035458584918831369894467461257946226717840093753596694466903497798554022004513615448838264207164658486064623258395642189804814499969654674881416392648215661152495058310184055914873966208773414608722819019521289791166534660569281354410365473066200911274145095790540068234096066134771073742973297776114899783853407172764957913962678238498370607468412320411809649503083767957548195446214861944808369443535526297165923808284022419260834642196459237614023823958537609706211685053771720662694871449444413973689496347379756715545508023659627599427045268033075998143896111357764302212545457988045887747914347571194403899066874231531321325535764407655855789738145851005987870227413156813545055121133519405767438894244772370325690782119527514364814545169333200954885524149739663420038945054164841308026411823087820608713911846228190283454928624658102239336952250492708037038413169049011744524289594726302877694656940494146942416976143687943337330892529904583185701804356301603566772213794954126319330760303979811636742739643207578634753138063070046659169813973535583465417691619968142507251630657308131687475255929474713246939237258923364480054534984307472064721921840871362316244204629923074368513707834507394866012628280758940422634049704950780916514690265756916744839586032543994340203940779652568931056582094854134395462218892361367999982846646309125879046088731353814613858867806918736061189650875553081531536133228474993575241671869179856458348977041032022882755202082456785391985516641348693090213227407124909902214121841106732277652955646979630443295577332531367865645029693435505640402254267031983150913950496823154583004139817269767420351933344028060420264380332223471936354108786346308977859965729544286643137726920318175149116098142065756784268615523066036496656574720848340167344408594177700790229538908080520758919139650533837090132928363663887669651304819237083941488885748832707048777725628312514183397425618507975505040289066413767094035488719529425392547646567988632459460982477163049655252293363776557981811392422742653502262235736177732168563835172919346698480046762286430146835759778289476578565531121467003298396441098801403182921299761320807316558576385988447353396870152686935628258638445189433118182159386296768007336234550085160107776933620032984394781941578252852043176037231990187459781254527452381410396575280170132663868522767689387408142894457455560750617394003503617909211523911871002012100531166194249647369799721605079174719590439218737900802095939927783867854785548847006908517336681654920786629606952340014894668302727733657815597139230147161833509613732488486243602372490035046526169995971971482130168766664260064627660790456071832654009165029552557128668488232578037119302513842955628423115936155171443641824088830624366085850197474493957639390299313288097179463106912830732685900353293761975636262873112276401337077675898239475054777044388962983422427098055270666777904156796653037190580770051734777991948131890128749478559585075750649966006443989809041750215886760553777102204491190568309080692064928798376295846072909224841566808023127087940985102519386501101290887613261815968370623094469935458162112185325376793819317019981364536469915453818088452433327580714127024328988115058213026395994025487803554054384126721163542057156667256543427041705776099137073742402515825537952855719020521669828684991478996148225168573469914244112299877230856481972393295141048577531866749288081383782202781664923041301236321307402296809075547605135870400358865280062601760927245775488296466304741286144438436440951110516638819046955047388526433087672684602531591430285875894912450511317460428397120384251163460263668342697451246534889303000987485193263820228309769403932319941000926768694688307476303630579595703754378833527582604490429990368579054005865426155257659207902231217721304906900508082147817990105281889515155307214358104737169588912189043279639797550948201838964935863799426536525233334634495817684483042444207859556138406161053996487535821057801942320730308256523543664545319053138244600045463999293599304124499267638049153924136262254486301625706737463557018135615596205495384397104085399564542549582895944848294073936046011065904335331245350808172126342529729840228606000003872711639318406835360157835977073111277644871261997821677558279582818255594472209212318774675634453646337829800236911734683364810770678736827595301565853772427584030175419565915105053848347111095924584149048605927873431998819454807993345919028043650553342809736157887962008670838394225856131077186227187682093010409618675426154482064505909873441433796621841674754598331892071617074798695138882497656619903920086624394549163342751691345696411425952736535783835293681457578645237981830417868638096730444445960765838917778802829766635582002490993977164776123285697831353901279463760161067926702497438645461396342657723111463130252336060217084079661751868520465912067633544708671526204924398512732171200468029039041241247199863726694895574238258732166671199630761561695922015166719367553354205371772532058268084571170184995570390616089969841590862012251546177678184510839027312025069267850607745560815356591920911241400206222518346471028032130421000703776387351747186348504382734000011335942694882544468379319603189891034891125497337245860062219367399937810704609127116077012256648119977185759421471066716363531495709073517673997997120404353111495116665474316472906505524387843111614192811490899923085584083035676281949818678311343047147843379098318230585597683587741916462431237961467829972871994317115650950045625104404271227053630068763101902835372438692868716491107263301666888748708053179898117937917132223826252448091918789932466134666866176981391618067543177110229434203639281446757084100220455893375610998428301891302857511440931035189626424444645722594694970986894028923801596696899419588766315681209988725883144687527806439162473044872759050148907311586984488687673958452937731792096631832384945528731425197202775232371288869755200424334996309711051191800607719651267555231311862042909373407578517848920211294538979312106704811292418618739350554563067664796817494944491817528866480868014117232762921915233921433927232115862151972367230615274756471978270521076543509160142361205664970924439907763964027093949718225934956303913321233005329085886726282039973748483172605958257316269087292393806623602417419139750754263776901400431414201260646379335518970152118938756874041235081546125774911683591239853332380280198246875537487489733261136825337263241907283798474472001742104210764658104733180891668234164776098452958216357926100317623166590953840910713784843578716738458726196870303252664639461055916782413365748067272765673371413434706056547921110531407616020859868363767094606354119096242367379802208381421181358008958450710947037360612092096653206520231474985408016227232887142973881732408693931615356673480233008691466573059548172913523164559410590973259904478380766579190742413958503739783440918607951082732130694165780696688659665429098009846571723902643224893536755259793351434917731923261399775620017576397044082964519570702046594404029477047942072866728690205204975200840254476298288586344229110423231929350682412725478849372938939001391971853819773857564943543559519649256379202021019933575404561452872341535452263902647025457225840837074285627700912023197996143162512581250295504203481218277497190778473397326172603666083192701119588033824092132075448524742173446182732823606018390455567775670593258992800854385908898141428899211994676960839751901900284385540747862122377123729529665310572106683868946330199472967632800853891481303606860519716140902244959453528569074826391225172171837306345061572712494001105901171556730331550432123398552486391544451295971189699354321280299407665173564080865401487785253220088804555226353428789103738903484274768783002458871738988512048217351069988786126728578754271983900116195817705873477390006170047455281137193552493792440745861351675618320793725482962403425395436988131874257206020348551006572953052049798566807703867975391742244690284341801220185641689466050249999859584384462065035846675408571469889699273996826091339202687604027308035805369307424261370511354305467453058201377052188257072179284688252140674597933846236780706289625776442184217985448930674007781374516583111971615767484921911584367295449568831934234392617166739106778999455655940188443044061519625144357287170624906854992627476519778172176720551937440872780965557817374029750903740748295534365820448756852857778615049660329045010907568631298665319195528810839691581362204864557576705472494112618872115475351765133096872556417777008571992371416455623508692200192106102975939941964184409569954155540608949664929709685521573677209155524566448954679852159153742974512441352621517599083945965442021525339804812788094200283038531909395095768611629033565013533522142514633630679568329690817307671592290858840680750888255278199735999588340330390135360176823201906372220354657578955669065696402106115811580310535210620704426058672676541748161779014948070246500161172680136497499507039354361874536614807486623467098407608853105816008896745216425631622789539464010727978565080093131921406699287332150707074642513303835014196938718228406165375500812349240401335384861233641610455768862141804057841247945797729108228339483791647655260365237792439715154223156415000480270405757491536690721031512681500534158873582662167855684955118472924467493128340156957108726744477083393669801341446198243635131822413783500912501539549331312301685507703733614821949425905119802025857262331740649869850088567840397055903524986929625107370388352270387231581205207557568219138237989834201566462303065512572497592932509261398053505511049136035282901905272569152630082303309675721343109861030471442875118887809815246223382274824390037491819759757212386514508141437038975773541644207609367638875033078110761124510788292907530111665868306568145904718730052661847782717102466044896988057568192014949375609225341698445808486277382281292506594439067538458871967916083102210322272438064948530125382440417828723871947247058057544975124525599486158431747476053044861870885249555664125338461715615968176661810629602168748258821454036333121467261443818070394001694254635647545571300338286693526050331715415998328498091869579789160470875986874578836730517883257389983198555268204588824241697945986116087848925405666082863339014668490031259105345878597813270504625635149779095105322034200790739636755124284952022027538353152218699915500166374021725988659995617381891812296373511925468780375844445505759301296841740904085660973981101608753782703341191462218747730024458953858378124549239274296315808776225819732426549546565813642366342156394185594428458701667228581105508416955892694311309156468772582468745242941975391045806895266271521302569890428282321358692211844227986563206390922697595171793210497698118191117329771980251704566976604657622715779054542489628003167419418079017046899998757462114123750795522995992718970500136556634536504901746462430089189216412074556530419176804173415603247158271360012932593529144684875985720287008208811686937814082714745422704648950618815392200898512956089019434386210740467206941738056679680988584551497828143236950157362864133418836576630075981471672851088683512695300673556438346125980422725349145637936474064945795353404750921354442317595728026513099698809038833274491221651900523466090443919810771489572289706330578422486399796851169462865974831555550966702246079549920863017890360068486195115967613298285102791872183234656600705190624658082889388549337032404033225973562899688399716225288988152980044392212799027995217969621572303359891947267735038975083907106896163331716498963725690918591198610772235942856434740311831676938164991555147009647156294435744548260190488253018964853439173858123376820598013977853477928461579996038844212872527797118628288351920482236943528045086583244539172570052323825350068518312712648852752506961227578740725463779169367098445826198872777441063187908162393610067295996895744995446652815362816635895809729992813491283780961582118088255763999367008278843866597618764745785222189235719084820117026711818405164381851940425055834724891566523610613928015209680472849320186854342837515618555426726000058725666474896405861542582524635413251493661322041487033301515949188410839775089512021934011244544486340294710994773210921943387123637759709306902458502440285158896733949473573686346237869353868728628698749419930706704371766762949570831674551737514192298934269669936204041395944273584648345385073605210691282849981014523022184075282322269656433022454610789313753991157687232061553481272740019002814427887337927803851097154368669616024073577084194629916165470441212347572598172570607143456121411207741870750288968904279841851186954701864479212570329144817564117500399416018233108439185523083249858073242548325841167277448509680233165680089832060999089051628486904843228127413289015128105446221075289618236603078087817479377119170119853468218582743270095149948227645199290854121255978176537962031245228906122221929580492613754044038697603063052068646682367221682809054690058325743934961325917205811463666216094411016284191091653916581846027561881151317696279149995177658211952750640909054486709971099436547923922684436413325010839609911797503258695007292790214042359738176186588718236661814665923542837875361740173061513565428188510622982187876520680322616415957125257516158788131480969435314054218224932081518756077713183208548003114691109041890841194623982806512478636372216698297299627865539316867917904425323056144448821127436038486143411280546957386328734846170351659771560071343031325065905104733809809600821869919917875930969473980018694679300234450898521442812655220398239757108925841833071445038347996825186770205928520132971102606793962443748280156130271280845224641108208633497529514441195522216397562299597475004546951833103207276741320290306739377312881299963279879548428003833516684870595634044597595536335687036129396434823484342499342430939100734753750252118685112975798693527935783865193290042051629400158899141336728243793108909914633826321694001065971067730886276181140552622910918858662030539100708895578140532937042681961289351650454446352207017937209296272602645180576309907504331010238647342485828308165547973642193205617591728637981533255159106867196038580792565134309635437969118891393676292514458743412563983765153650035318318940510674897363294195878378487959199277689334793920239799786142035658633806970112195294527818947109892561015308984897123734939118589880055691319796832701560883959042632589023715426214246486873899685782820808616687982462203377716182802092896139853009521478752808128299011130818985774986841926377765327844238975428542803043175558001535012325614044241412913645543973438542144071598587774448711734679375828599127394339829801545268300517108855740629969792618809899995024046419669035960023968101106848822867768599069266433937035400853211155219454506776582893534925597169417368376881893675885042864815383280860597078957195045219995768470948872804074960612531022413515242525681631291920389159005995609479690705113765780725192996141208409996614904162013511547694300673984315947836562567476945504505897062801676941437467389814088556460486423610075807863910125570632937362237984605043068300603037615681015466399126507288531996717349988776153582622719227161149989075251174555149648278490856696588831296034224931813230439607143899581464567155066873609830438346095433403456858614416929400071208510615993970032723615093481169157629470977743868936752759014736710604514978261842972241473228403146535109528520174152262625031718874585065720363236593904320379944688771547979187703671227562198506524601887764681802428579893802096744957084900324377672246922057783469817697623466697034895483324859404187347597265384681789658843440171292407649720130414961241998438253419319350301100228484908353430934022816263193919490534518773375417471851139375446502735817823671859971366401481728219875994719436237472816934651032801163286887903079636973996471906623375331624257107180077027447405220221112460025556032912867580604334039028778619083762002548387355813353051859460556639882003019345346015338009444590139253120876064615479057241164853432734682802356622760056295694542542865740682392948371964658236334449433843392853194045135647512865797154240572595381143319515912862712368288140331675970798026981209738809324680160815083525746381183433285533991091953620277232990383283178220311466692248784572168389692831461209524058511419656810211344115892933437891558063514651686082003407446410770063200031405696268855421456842462910036668378043521230396557964808553041613365273817588218631801820308274364821450389057411415407229839526061356986736402820569583014334542108967431909917953147688822147148926661338411651230926229004033448016789986161865704864896497922818436200407539282504294960702576275814278913633437301252524005861413474059297365582410683033693185318627197327936625668457111547633839208265538561810329520688248375447783767017874615467879170104604646295284613581581577475108657426799203677659077856581274482070847361777129598247136289744923453767103007984270780613632631371046746115155442488325325614034587090234480463049492095803449496970763291271963851723771276511829831288123975516405210133397851143346520344621698534922561953032477737468259088512954741038872436771065834120332076827512746493199692243771671225880015650762013278918821689306089594186114327720346336904775290260090532706662743400147075743015398299856394554798343592199306784790375727433225991416894024419168620978055241852299514471555806236092289808888581435549255459766407912595174649278757805749693719250986530910089743709917109352125899407392519713628874968395743958046011287145859002068344331605412832789760213434477632759455109607181880656080389623432757799585901677050756441091458795651502899803713294442684975784163882968118731430988122557497904089109143730082512852822665878874664475060397939046715502572856067126531924131747551297960921756849635389722212589154693942290728290130354876011109032617412228751267217660075388933892948495049798571473778987183040194412770477704371131835078347719050537562682870773367445750264235547223047528258924193155326320110851695439011330399505389571382152335926803500556116909016302725123760849233881599714269000903862562816336936816915236717278664102614439230214294238013232563239334350000985885446301081580690381584253974547751004888903588237253983051040641679948980702012400053380885937673129890416902320173967871856172342378325468353869473251943393137862137254556662570465951712703497879509346088244099786069493706343321137116016560196664895225876258735666244616870008300149343890989032004936731238348200971505947167831642806302081615857362384785269686506129235384940859480760808857557854675050883548569937121251215724358978267375719410827357262782684268305371885252648991366895804843760658125246331200246426773379699252444701616900816238798384998804822422446156088024163456407310942348243329712233952997632564637042571402379781961178980158082136563827061109724076450858468291756716638560283123155847507534885681914962583990823319289803395120636901518165183632610373269694676110217988389068073061843661871754240537295850149553945675761538020785786870451894805709003997264941186391929959152425048276202711564389917263871954411827573794524353282892675033588689368715566922814816914575422137676760132292859769899048453212122067424861045109273037493726749021068917867394633683008350562978958122628643649261547983719713445945114720038726161735010863375131114806785206388698018809616471597076948332852344471347770062366044698500476068520656067435629029020979826763239016723146225175262042180115028814384654526045064526081167964329274329367281223248111465079022976125905023550419762497628413995908346789192024423744886971622797346267510756993607117382688942195601104893631910504712365549868260086179755587187448541369533609772480547485588762468920713901932437337316391277284874494737469354097285282269859900240295807967122654418726488145371842855432162001920318919325866275057064227460838249391547796786229979407966459235443804751004866522068777120948907177482082033893703228580039757754256904795000965095563189533856579795650843979985400065285671411243123544007441619029248846091864771140046810322945128520430826714813092978751296242912329557455805474431567901532079873073024045565910404101713088805779050822194188134026119117684221456367309733840685693775290077906990236135552245234543290003260228384241579271231886601624095499563311409594420806831861641168707025347445543189661657548699258401918751565397766859078541514014342129513186798103231769303562409772878836645765723173791637793679287209315884198809497023878990711947833088863309647311672691213558318839823009030437417106515063878720009347699430016353343543132778774289552040243957175705021759713326861077539923575765240669431113278362478787835812523302639386231223287129187808806990723805094808378996268001715142294603042460332154965369713462964279989865699412783072269177597325027316953602536934504897627443991837065565549282354766381939684919455328222010246790097817546988810698452578054822291645462913704174909681965940909805072788547128227630826103873742307239385667411154278663978994257234103535028341133493946510846961883891647703069330080355452711414052138932863284288567537000520724261893233930507989559222381328836167484888488549870880364620731268835659703042283658530389817817168067228679035491666706446798614411995096325418609521252440619133930866890062218632852338830059446655785494643752477652961428236645647933124466331218430622530910643947286987921755574791492506828335446366406436987340961973245818972616617800609607697347428414110905359557076152888703466298975183247521294448796185757712586257997431189683066018299174041769623727463439148448841664472496935178718813542028078413104613433212950297132010283904717133123255758993837332344886688067972817380542369032985304670545735349921807752838361904871738079943106764890987634181086390879749132477929345783106957742187309016218911771312780258244687147397311040797188910186065984529099366122640458331268139625935747885623936978829102772931862509233713895439741869435947926878293453044669268796675058584658692526461203945177485503583150685377358035896112116316508858119075873939133192060269699256485795516851566035001255521880958282875220727178283940237429525096822008494372674390648342656167354324010480163889640346498982728429904244543991325991591009188159412157974592096012834201708450513393593338367671765032743554858234464562122865404954638414080791364354117120645265039175408760136011187217802193613504094266918626123797217686039039138545917565667825454294085158349782749293116457977418962057031233658552344359737051274536320768069066422236257616582672267114394360346616492161793868120026883917852949399295001128181352544808514550729457224559773111164178741482183567870311420327030670753662073195039823960625461608864249827930409204125889340623715835889959488534805485282097466010179291938506711510413820958985441328563922827689053960364232554804495605490755714585833960960589899213039718716548304168617554623659227747645305582037317754469440022042564105335387280788121750980107372133521903413078774236662913754592774747458715842216792589940483348582256259298505720381355277497643141246784656355675685915202075262558357246393654063165995760066031554299754143072480411470763221614561153450433181592849593233644690705559826606148434651491817275875364598978345464697421413559369553809216550018357675100997327895226578076677109806469990482224654861663798053722266731696449822850316681095448317482898148261938376125034696816589917775372126869835364869350368536777633433159804635174946046522276700774311908810412828092825082208593743674603415361018207111087442949382055802439048496826070136734523928785087560470195889815142172198191841490999596547988124244698117525408971865477498181963520973246329753252267800814332935749692056733948265880166654462776339221191169505233966694123730230820457684881762066869080833163049132882239776809804701651625300460737867251313828372249955201932309805690826753022911883942240608530573260036587940102171044571533711153176972671629490198670486974774250695856850001994549984803384676360133228963166493937229424821737507420517062920228926016411665842677247129101657978710135244356151043716753212798586447697205367964034696054927215275612978658510732085711675686104149615023605546399054455781090122470079264390290771433203083485867086351675865615929792196133952046251514951495674775188555789735044844973899020682248495389087612094942420378765944187279523535704690922093456237142564101454584457359724224746004697921901387037783188378876256945108168246715938475598969755355482193196048949583989548969131288298090884157458627462330026674124375546311548629888646116324563351642841586208392338896424741263116252993362754566502346067216937416720006330377459325677176875516914988407680084918441003251704084583719321209196482513639635325110025243988530323152816942138162382071421697717396969213676057029463513663194642326551146959311539631289473770726939035256608482031875685977655094272681609789522033669785362786642734685923709629082055137475729496469495558829563831297760155954964434631607284389440417097025135874902816038052256583970880038597961316444788561180552430777427360332547765178985736601832699289688829353167438407695245703785100645837694372270298315470595026423273913301002048915498653569395103028372521052946184979213515382510081783347986596442681416739852113946783991569231225308394606031710455968206315371673608821605403646842514844769259938007388821914269600543540737042572049752327534980433962475952091903904290673431064963402907091634486199325473723697540311863653891952204186042672129547865848049513715847127175337220019133888465301962357046036000749647684989706380861597933314852970396822929119377286805950380256196172940809741118470870118813523834000092712592468396237542265385694301954892538425703103682391075848750007391526599736105259766761449725243175077225355039181550844380822421785634954633706814126851051432510970068299951978681793592287124535992358686756703855464009890220874700406723002828217613518077720181278398759143437931940197625542644386573776428934888181784774845298378026442644186904440391929828082769054311818909112986009610196772085727463376987614887904532447762540109487811666847612750766633345431099863197729594235634581288340640733636207375227109195250699220403544030324826795790121687800963561962103390030140575201738960887786681082198372161800275310313361602656943248461555407710442987215443718606598774060283522085632119029858095934940400853730620678783871886116166849533306753733564928024756004930549472103590710104790541429065849509596343816887132153205198430085882717377695235505306720850862065744371315273015757977118437301711108538753525862574161648879118123613712516095490360953347603488332724784177309068820660993797939694514606146623395382362151935581593200324628223090391563185466642192519686511962209352657807181650418342787517027910779793125072330310883866906837889793114448302569245008424368607347939381238238047332812111975584904407182254732605292650103370226889371103846815528439247485480773774425611649006930382253230482805181789509294758689157073166867121013589676256045584866176198338829957855589246923292224980419870387499060972136353356751677649825576952770773738111737159180492935121887250307141871054873197239754109531899043965663145793149188771206863827153717190826769505331664453034618893410150782400767412258664613375067538021749351676722164110748037294643267677034587775622830721269023578621723515667780800360694543869856943955629353168206441717811347876142147033248542123282890815777116692911446329481844329980430209523474230733551552014202565613981815530070510944864874478683962579349620135257093446786520101831286930852031802035759968730008337407692269381878946482342983984818744154940331275788060014577682448418602104597158873334697995296299100207724262967727705749535079321494115721436291104412549092022257974104157401951396624811127390044798771298563860479693050920959517775585721858369495230600080300418393977623670752955263427496728863070460508608858168620580486810269869255164484223705846448343645920247116301071899051986755024695969326292699863377525664279767515993758081773421875531618778757266894337573698144316467279828811900084067494813580567993087591164768151380342560715134209447454637552431174300944292771658081094350523175779667933751989963630234024702176216086069801194958314351300567888955817592338241917676744662326539363538707920767903168984157536526500596678938069155029562706400052757207900989902830607543445154892926324130987625487433379293118811776956008846067819096217790235239808102890500034447963413635090074904123886280345223390686223815480302216581441899213250918478957429148031366701636984554560571716193981460884966394110365887292695703375540911067222668185324497122699258031885734109791497740050453478208144122304146475165541532380516224698704266572300804083755092980206185287938792041009688065185419710499409341932602134066518793973394408010663104025654856418350488986760484996106599705820453332155872986674434745878723314117639775964913200154847144167220733825432060379045315848710594145423034077524665367335368913993198635498138791566873665430218863878190779022655983017232823980195307672908071120591131619114076496573453351841205760736245122913123008044092289876470137187095229780419808985505512462783507061542661691483232505721437314823013435173075172502397615488119562615477216851302414793463886119362656724784872163017265084596175012232562449152800426118012840744590953627473507072469387022051941763182312388387196595004856532571362195442898409435483696083989303996575640079720959243361613739279447778316482067010863129275551636282484001243570354822198585307869331224747704822976363550713577145409451629142554298671924734910720908928414708493012180608767877554972408177472443113335735942297589398140672723452142125447555143273657207138916578774196384129101528371532000404655141878109578353481700529309557628663622461718483340556422761921441020025031730005865357786672969493201419478835543474185836484868153437963610567842954881242788863853321872911911761336850834755044824737368635213328065838302276618112422160211597002815846333223465760048338387173312062687692106659181104970002512129741959053542501982246071002946410317164612497015827621978604283436553701209294239031458313421589215643705923721331298498474597491712991169782201699788676109678394718150380212229208878691491194388161599410011478881423949063567763744287986898523441288019931829450503731221811867553312186047556454443596523959622376981645334057954093742576317820906889269855767812578885158902819667191455933765238534065489647317435297696298175973775799179234857987452672790102280766407895440341684393113712175164317988523854772982727294328523849100443085537907472875913491630325114416857429609744024172357549777029186752695722294181493508441747000477388927854570237771124335843434349751251235604199464140348624338590350474288822249348986658087908439363200201924896787344926649055967672092610208350629276151359583568915911779493054886359678041021216266783202989691396688409964183727707459132948363270876259552174002397002989697976848621934794661211068533185613831311598885422300546207595692503726644450936521529742177148839514675542682028655549720786917529631144290013131975754323901528676392996490323290813946407531834238006102641830420809998340748819644531452024384589351467998212364113342839509897401765032576390716379653846618450909147091039367444797522688350580864399421424673547959550931893945363959294646065584766706140626608944874656854998203905890027464799680426560467132391896036451130023544957908864432696408703354081231457939205123743979249742741070993215517338853516117219905299358521248174568911630022036179137184436393685999304761058182045150307154538002982239318280985013751209826783046102683700567434734588523690643584082983834465070441481542735070510440370783249823533418159968708575744339315134398465704658115082208636025470264424414132270430189292929397120707117918228149338067050594809434034642782225658113658675565481891071006135110929922761809303683624918664969193812185009780642184660789072874603611382880012119422150958797502494646442934586185599020591658981895919384008365178542045069274404574843486086396723615676727572131272397401333474302487817914420605325828710307212230767104280138276396622952812222129409414428778429443520002145343720795597918198936474469749471881017253746201384351063104336524026273421020251878235540657562789512570243387468006136284901983182462933242062930683205486326460440985068708337897569715347467099063546348561552344021184205292475719623800903176005784295789826916955758520328437748553538921119482478450565844678061038624032651228486245573105706212927620424783377686530146654544491581797530549238282460130901720604819641454665779621935657770021872265155117680201251302523280028455677670564020009312502398629473372045739229469258371197550443921344966536958898502952691622313846782571304061350439426352943483255021269055164627941129551471556391332855833226278870278752763079819195525122108146664141838462876614654915562268490216961197177642872585150723731404002090407030274417716315116069737682653734632681562557415037019655967338959744324020475909580462345857456495981525182091388794665180614927453785248785305044730942214825315735398610285257626028338653403398060551533691240906286400076429310318929613318301839364759549839526905024908608990914684504391252394502748340984977206024098868812869462817887176474695523468093286243509506390879819134478567790231057004416742583923905252055278682619125530373943197649547101976048837407302829186789855483177220408430803662329064735457797232183195648854112770753897865267885693308007612026376274628427564582113523600020314079056394688596872920990202369159616992890984808477548449144982389115125280286300880919925896938704646700588467857350473086879019221671109520260481702545037064927108112586410057531642666913304347837129771175137284749997845417217527395047735383691176421781712984760760997101174324733366551396651339768093644108863408947649162190166421227767226361616400229090251396287558828122551720816686904638067769758658152848369268812115762487736222697857528645556429820665034723271064362193961392508141197188231994255260879641969239588277281066343108817302862525976881765420880433312488447060726059866263782451423023727928506277034515382118892965835552479546849275055113941788133773907643573074841273538672491253099977358787872784614496752268974226099331611256648115462561198331874063918523222787139867932227348810827395043233208879085847957703619153337738113019777454529384208582321806775226687854912770565397552057570773718683070969725848181030643752236571687065309486643353577623794544529059051121683783397392739219566289849589557890775948178555841852161218361544021917732541506963783775311407813459153038741505432610440757864300348538887215941372072040154296517584835584991704391249915948831904567881680517864481743372980264652067871556657978576707652874752081806884067114908564909437240849091798078939531438777294520473256274271237091204799225561641693802089321619894002254918245312978163217751156320185801471269637224230585504234513694343036691129066058704606541492654782083403528901522494406604644228900715807803225873999605149040938556226285630630490634506690117273377205787235269664810595062088850850509068583051459399412293780700704553347511169151828551858651196044073581453124094193535801184590893781050269471792270382248039676603918610031009470403272341739682032082388763108929675799278551221156509447925503339139546053514383983379450556781532078351542956677521491631636047328374369000285616478697821445941251312790473393687622663440970668891395791033261761234779986423051478745504721152697856004842374879323202303167299446390862170854653917138547294268091919806823062941952218938681609477958944181405829509809508379028158197748249362543497639364322069617542930196183224616465555110881958514086857713808031024944065458064767918284921716515227365298162125373063682470286743423026071258405625810135067152728694725429679183577512873899587626883892326351235956826973486196133344087021055636826686655588260940622999820408337850724486210726883631882930289300756381719853604856496503136208851386007360038157518137323736008875779378212192479868689673471047365025309071152545626517491950771019960332866023726528499668190523005702401364417874708653648573565819205612826484024625949399079957020003258355844415313024877170376298820596309230782568191962630631253273313157069946579890505586203753361841724021230816118214828755844446217600611266991692891264728031220549185805902456660752743889252313827448571939132344570145438477307136552115523020502174047075248782925535394235804481439265489740046430835694366479574072156480935857324840804114419847494570765976966120883161798298773764690411921761913356272073221766434687910129438830280016410980261375381811030594738845489877718915459069161849930809078438395585631289192275577716641874017063373347353944637352047197223382287823129009968498879824030360157305720471031816186881931890557214174734061529280249071912837371581080228722976431571359342362795041322468252702622704803608986956006265285387580011719621668519448362358708077969082318119697271677296703908205081802142457922856609061010761578380207057535375129212362093371189143511655355442997316290201336192611288593593927968600135882554751733259331042917856975231060512910341432855928600043824396439725263894009467170497569533674501020775656438107748853560887821144440388899936294345610488425993655858740552207154515548424926720135808095761754035424989988280897396768632602484873315552866115765346466704928403010858278590131953120548347079043773368732698208071026453304303610674929958657636483576512470561828660049020639813522435532921306894357585048037319488480849890495550243450554084043642994635592841495050214244839630476277208618770927478739086256262710312320405643327121899588350688331786752190590982337447485114717982205670300765323530835620986049200223627319576909784446667061665494570379155161624206865233877685469820233609233885107794914324192247349641712020967961816361751019858597910655446638307519821513383654856566664058246723442497425216019989681946609420330074559231255114228559560382716406173935437950315552077871937635471717494441732674165458095132202017325343708182817575960869872881657161935686381331061773107206829593943407376855128311023399394095442729447578981174039091304815208535762066053657473953302185321766738364015198838555379225925062992252024478682779337338309284320866754386773529277579104068089418394095438589975936673425052053500246798453513574518238510043668384805152294915414175043955012834595333211868581989345586480904250183509935659287505365109903022478663200833404160659043190625637532108356018291475881887670532112472960779706598915069833581859447287394699091875391348387721394458601983566098563274131684437243015539051832955343875475479173258117037859213971985543897142927073977559382204508121530271108327287479435384796604933057675332593819932992991696150638498454533263557190125446299228199811548313993594418370491618471837231376498504310631873414737585114740863979780046942096054958237340537952702868444869583015037859228258498243040729418221157263626531065049341701082742822100978903772107735025425904282062605187435514804262449176333196023880135257244223639435629101877458488711915358356865219399673810973549074365287763046334377222481357263376107160248345073775356378363224499992139784340374030466137304764246452545250625394978143113427569151990925453111441120853661041402580835797500514990522733252952478593203857571848846222567221341199047799421432754672282372586185954162028115356670404783643762924131257227488234985297644628614675950643694094489335032994090904267512399855875156650150073349016889340918170771884458042205657240282950703078347236623551944034803360415934499425283252849973340551429178747506286088688898133907267814003892270535698711130692188657358560027458138607987858939852368534374653865840873555222673967447632823252838204907802439304128893361794844520349747818540008701692325519852172616597112829255158339680229391491826134726345582810174273159880951834970187219014574979425914895275029158689561605122774086837857541548552293859570959482793725923569484993637780430894973526580697512373092762805296058925230685593689559534610167377904485276464087197094335429692645514511360720698601751080636334259829412781248505779028739918539686101396240971104050035062179904904575069333978895024601036765648543381014506284183362177043388380613873773990763497303945283626036140963566970472105806912450951782062952048965260021177401361175051959996441239521174837160267751570663281036145043999475196487481100616334834456394515373147939318667275312337018840109673480371196820792800282199988091730909168058225214771616423928981000510446128388829510151600007775941369732677458681618718965238455251267203620982979545490810559337257511050693564775506182463109654353460933921689513068173999609225161659999501122128260354590304333288302846569315972331603055674298418425508887424916802317085844287624752028473370854933846839359465662138096328985753027915200307872015423766188139384103653772424389013977535584484502497542716022452947981207767926912777521841212025662584685739747706445694110340784310952939131356814877494277820058417759458140200928566126129542909024322953509921400853635850337088870718197833874827989008989194691914615585812950585517639142021177532512094844351681146326941697369834936884552562304192732337897919717249960838818473354944258820326186835500042224215827983757447640517593473803532526848710846355305801964942635306907763928487482886743299217375986024203814529901783282680432778485874951470020130875788399855916703331210069799922576138236629037946360060859964331544767882785496130765671780548277656650928955037397492365337358171093253929849750123198662692317988515651135306762994970342902801092244944745149925065619791798090735746257915336784573326328709383435519534651864344011686860341886969362160542802232927910027655911042490257101738939308593002530643431652143797870916975883655130084652213705130750310993449386938318779006219271960194406603690488209780471071570202982648429804303125491757746296967419592144071567322027938711702689886036243761963974583741390704840247700629186426107911725618093408033648068398178799913989383462458272995584484857429182281595390775089343782905124739584644802078403078499270338505512539498956851447103692196407006976220197422763120782835236620547890894690560881877488252235971105737683009716892936784080690751993373378164877033879751107872840508035434607353139929075377642767907582035850919062007578567462180347737097190599049324839421825388125493914402366381144881973059913645217751896698217225861135420745796074645625434353978127960713596913280406918810318990246713059849406043991578109602740438680605883730582698543942106916592847616851126466485928454612215067351117459216625870049920479473559482822687010699833050390758696282736912627866375918089286937599247412141693496149142554405070550065195619109794283882780446409729811736694352117006941860169531827039237928891202992350852546223255172095282995214714043505626194410681266955042897317712607720548132932186119583704083211131749281384514318127388110534438655068561901851586926027688630350562976324283265093764273885489557499644100451407173483277142023369823333583168344406615934647022970199687951490782871524865930934986933209332166482110629716084374434626856977031497957566946974635189483517888356879924942882689347805294873174691562547975848339173776153100901670562471305109816804721022125037768771729889003812973621492149859987721277249154409302063755359867490762935799861573946583855704017993486725985522088834045821202616739880033100161738211922749633214700315193126030127180126353827594556394614638489569272072411629753220645518006181216295767678986500447101295634235442395040582323465756087708523973041301920695336548210616097976797740564930379102842330054805154854128039262398363928706038290835175795888860780678329619735402047555326115683224220061993806849112724901669912109461664253836475186909953539327697779425823599090595726098586799251416362752739009591265401735481294832454860594453832184348975592369239230756488025810115637326956617906473309196637268760391935945528138129491508473523165337426727728762532063687564216422789317383114924732659768008791678872525051332646225795988096170260452607645084024508790311650363139341390449385766912694812419038272631288274350010091863919528965072414499433485377697535906796031215392226746830956089071696750877316646199791446755511924520459483793989492192419621311546703461425367110735066154882299477012500758779345438328066154422749779057004292275565122659648311046484267764832181724346869693346972041196606078223271667302858345546851683233463052275586902001518094852258840189194476064786270900455805896516583356728140341383067347938096305589238747189064919956369376796232946033594143613632966284411917861337744114860168486460511239478891128655310442917932461162381439279630787655039871062360652773805988503979952838544069838791620300437209592149961602038869577799384304892197607784315198460318961103875746284000785900907793896548859997110414695243701614239415593153139621443050293230041241717381240701245904917828320124976335361101889549172618710665816220087654446567308564004162349391559571948218642477159071913898590810149399890715092264001876856478663661356880654552383528731308954524921566230885400967087736893359099765028813135132235330169981130564821908217528775396094004816803363595728552190211120595600572710793617921697320804287309823369968223684074516326224047923827098553233178290741760103209966814680612091164389364300689496129123501153383896343035457481632333290601681698715844586584766010165023326506555378331228215076605538434030869275258885452513594282451159961321417619808673874146299583241049045455864483242815699465972941505476043989497530446196987724158711776398282095287231225309540243866457676693562865605443759437307145381333743893215686382211317417101252538115927625122535797528493578968933450880274556567957398952316156160641654865699689338169997254369783437455207922699924721624487772453479540919201815750874314811881514192472617576998758642728269158542317692066475544875104056373740491643892842474387453325772102729592502568559409109751561479952335247036036696441644355771842575284473468593204052365284416039279394595265816472111246453385816608381915713531931488791602536229923342624266898364880567764804315398778425122374775268834006592688729803476834320845248496268210827388558064170045689609138922213270168718956922555740298686426026682705162555693164220786550020714822893877052660542615961909278626206845347009053663396615783105653132842804471706892424408786003866576203181745818708685825702592409499056148375189258952861775527505321919055787523885175496947036273160806960842064240652975685560637939527730091178894259078469356574285919115152771888653168339836266818005678818252743431346627852868642922114697967411763752471694559472812107107887384873793169999115785292820789207182912343795470863363296577822462094083719576864036565610040538523989343778072336632283331757400654127011657196276195200514220837583862705326074284026936682251009572550785450917559453114799100669979380766934452644933967173175809595754526577173055420542272487606300304905712946076579371085325602754788424338992408583476338628226461726983516131847086928241401327489013473930454208311713251560685181806052770000294116812871328041591323880340902290249344226865534838501230212640328843144549956191117182300993833079614466819721982406635513112648524722990660013338127512479143913254680216908539481325508239050397050941976799114311242350123240474739490145334135443990097864453499972729503929072398219719739935466555978108805419616002097348334823570455692325889049243846585402848491458303294470561710268752027720981100329394807050805042330744243856528508032014750816891307790710002397927048706515871543286021432021524405065581945052230334955573710628750683269844940138238003716138493495243555119158894840557103030628058152785798811512995893917189965708826811773224451444969159678012649207277178139137948040136847393113187278222616901153891571826505078566796013398183686115784568455789051475370777506294474421491147784629442948882342799173410535503735538592805671186651788061492691804214632185995001027717434952993184654407347498960693203492761142692570014359108674177512760047534951477548177540264818234282812864122328295509093146280057122992979070556710895248209166457126553663855410667925429225945243688388776957020036925595698055859209480365487883939394165124073389706673070821368185942957379595629633095862415381847499776473328620795368730245873327968741469889817842612920467388729448420537117141401030473986778678011577258267010335221314298266890322880500680312351538041273454001171554511446011339032151102547115334899300801414613926010532849029546297359704175449150811483448971097986586894660047671639936256285977383046806162280442462163562607981559782079928649154471351482740674346377330793679998795195607618452001750177153492341086733976566716887081513703462269463693688929893090503385657705512135473029152780961057145357118679433997560412213939504512721646791573062404178081342961482408396127667900599167893257841663482057588942615244005241182278290577784972145996162494450179846956244771061861233871872443774198775235649275428102747897576243332869248792484448042908822778534773548535842408769065170762418869773157435667202833348574341009383399614812287544412840854283439531176096494257511700523776815228245710082150195837942115394463057310900066952159948563692883950868845105401913876773768991375372185938926551157315645793229361530803365972593680986814520592993920876492895987179174980880645284249020444913622948779962435763497263613918170702966862583092984993916364752880468953829235088736605367264442170761311893551640176296573862468323867851091694827982219761649777271372555400273182983705834494376144122215564601573018495135332256707578056997606465717045255438008941168177827045402397671833370039057119822484046419777315883123215746071057869615141552491700293951409996263709204951424948622546086119019225875957941713076959854990335549690996580517003608150774783552480148772499956281831139306625722431602798321450977606862847515651575244583081956213002622898243227385360003594626234294383878159917600774515424950100939839323853059964826155265392157664132078146916377922769275548956446017963353613692426050065320926079869809431557202603625934080832840527444453060944524312762813379098284175107905821141648554723207265371789815754062589137988910338373683118120149975228398516974025841009481530682549877560851902075232506338338849199980063159038761765210680659701909402550363652575117852159274432449138525951472362856443985167027667692422262101841998294563471999440152768288316085080346795678832060249901831266596956927810822693422092072212649588371563469729159904685777133998946339399872247825069222490028633012792750548844816227228927565940508366549839296972257315323150677418610483653040086116138067225434309552967703415019808180130024600064945486342469806910134187456054614521715580634327690375176737673383687117077744102222330596986720403889477721881775353082351156261793617951560737456115946596518831634562063698382724106180167259504947625628117855417616091514577956280795862577915093809179950934004593424743180804569439101450087910741564910591022966666359233419347175035878849291543089933977861485562341744188933610151605659664738161582887676423753193899642509976404204162590741949635251967856675614021011376150755926293584610429673049189956087707957306882609452554204195284955050745793196608939415541349959346560700765915445511569469461379661266129988376465232669237669802303368662660962074487802263115476729108046595114268017570100928587772392306296547804921562895374029576995090590873970647581772657280719706265418167148564990589822870989238288779430859775265040813724174582211681455846562454983853073376884959141682652405696798968906365644046378943170958987779127086509241012370022627500193323136761792860043227033521008107442622102372282239511255753134704062798868076375776869083510617969342855411124775467930739660257986554991117507977281090383315787180551647949026063644417960395732998890723954280940613508288223419564306460770046530273582455164618228944788981110675891155284050626515141894853248720784500789716654984426868729975042698688165605582443867710398988121216129505805379132014017740564072092038759297328411491569800991123314552035547188807908782367344043680265272218963370588145233844882050281252294449351742435330160042955924437892654984699740183822290281208055339589693917728701120135059151466271377469990490669750373501426004141326569832679839341000308542319735352936484956640247617915963774369289619480627485003811025114301943223726558218577928684441156731920713050045301628512634655628761133263275582223625290793216004866584678742983351526419117525259207296078507193728418144430797437992573954322352856269253014831240702907896243452226326407922347858162797593777069131639910693623074842063150604687673951657279107208323211728824857477347704266658803082226367891087886589203620462534976178082305668458548811034648827561058829646693963971351655842415426529127258353854860363808148852149782017570874894290768091063767421735086842549516421004174683741546980703851358341496319941908383715032357659615682702941543558905495851434981991052429067119395862416502829227316557708523594067082960387487057660737085410357038477145452721634036523932902343540894089891518279835206563298823187411593026762462900401137869443715369802941826029105583164976533566459169406644302797796933401740585798686071109394583841805086765549379147394241009433030862458149311032543785345570543532138724635541667247878841212900873223673049625148168063102955983734621160197278714677823124650950037195040189490641622298956536094903061536388367225879956529349560299494243939916775756333413236600241967317913794064596058593630522471239993783509554485702582320847927979110582277802750015001968793962189769121163918687357594626517410847172556400653902646957493830578708512723000049331230252661131709334966890735316661387914707420060855395359354540769275944316456365093850202431167518054386989401016379541689564495836572904134745973409828378265752125001517302300559516426602353860632569084303909890842992761282876855202114841354957226413484559549790013248984255258746469892455999982214719093507807953224023515683306766672284422380463137015295241695073754391279997153479656309207245064392079160329492824604174178238056096350957841214337658428818843683529143651256967497657740649875268587305555106325835104653959344114965554828300160530839892871319039939666048197760969379957448698921308642293066233639357112423450219638835433889873186272443071315768573636991508252512761783664108627503900451199738287162698486334040514368468957796356144977444277794768298863854163513096892537796152681192766387057414856984461935855017677071293806211874775395093527109302944925659392913003806886249374521235873756636691856267722489621949491145201139504932394833592149997149000673422870583893874117455374921171490103227279414104802239031118290857272009826216005466001031739747046124470078522155028295492096647086979794797515531979995192561530882930344438544391787918976445628469237117165934995306474939277924295760818236537270496776443595613103698537211616161610220329518466724413331144844882732730854639674195008467741524661363458186060031834441850775440448170437787130504021939740939297893135412969731164438324502692441654179451720354320041988348325901833849466137671938220982341915756115704572602550186312912866331375155772252788153954315702172877324259449693435692393379389192871831203442654904901740459703552781740315640086717520474939764173605025119255415814805115463169818552592857653071693685043884414068286441278279827049059735156262494202499326968149922032143659586630729577952991076579174368978399681700556636543109296956391680035454531015388303905779786139510178998616389680635429149783577692302721458199352370003174120936576093442432442344988922225802575141216191809260414521014578159991203329375873617714488486219689332494338993163592176438832647317452286889673970663876173390603805234040833970413020286588467908676050397896598538471663593595953619999352597189869640755844337848175408812116102583784557801680637362252773783908992375724906977347178559356088111413620109614154092056375237920973534061237542391835527065802580769342301323226756344722841509109611767200410420382453485999808809945288529108072712675957984591840090510626065846321288825866238276160543675865814258384669371381888991854013244497165345211243871141584097182187893689007360858983616902052948354901783862087478131148401968720061834125639340940048858844623977725420584235869358476341477893268856370246299114001120659477639089966156609894598142785330155180067619156087064845473203342082028885958587092603170653391202060292368475866828088629676945159842601877665672965433566609667800995174240345004094418624880720199150852136686505381236250028339632070940971985710230967716596694479781542394113008111372713012974529082840052721040266042515732683342643548751169853579269021888865089289931111629223386675679959032421974715101405025447799583792362627736058598731048881174203720468597602761060724744236626176055403168661834513033624408079058204248517961615620540183513510940523011545799739706625492356267756148379727802974630030373024025894218581658180569690992269408902066931590886936533675545231812937799499786619996458808141848034825307804090778872915881920249280440641483353205643125726195177795520143400754107149394187760046223242722545382003097695810047652888167361070288259310397188540023118597319461866370604154343467931142583511784141997982632566534221722098172672301880009559446711449097311462426684137258243679266928677015511095778308214549589705340100461299902794267959816142973107340652818650421156014348710132297068534110442310448919435074619342245050355012225461669994817414871183497421225362517887888425322882343528710000713199445348597211817784880620153293918026681951402941444286360421800232881218947118940900731220551908215324044873940144021358075813386945608394765193406205748309227874725885399863741264472026547972641907795116173796618191594746188458405859818154311624063807677393142667489146359825406581275880360014848325553481848731596329917085495021993923382634443744342359621468920446678420532271942776435034910571418909344670715727637060090298681387629191157056165262954502433569101181560086729361576918180103219531291853222201147704886804012629317483701437123143047717594374352732726148581447881634116819655716831744957003441081954425948470975065341028981915803347817452522682822285873440405518220147344842089369069113435542100492948596559296254736898513400600726826741800933688701420797964951577311560885846964459095274599669148066474902764339049322070795886370816833014061589206575713146113303305165520265272505343253975895427813463116678021899155719683983767267533929222268079331713861288374050994185860486684948122346036190456347353254949908043960169601869702362700513073995196356650192777598433032555512708706898178763209821838356091400928805742160666855801618528843838686767270512687175561703065055640437609146055412823611091137779420156080808869990411856974790523125069423523059033718695609747640790966075171697069136877884161602837818721528290459568177588082527417019761226648830006410043877327791851477448497678673818520166306609521518398102809226201169974913678875825596061506384470186136901782737446713211487592498363515793859845142367777603204234345869087800828198866754629777724109560582592053593356922505067945082228625861269120940262696785622493583421071532236263323860505745657204719371076786489258401681270492894411903831014394281764524290413315302448882775299965340197768535103266926426697579145928128706035474115433108670284851648573330503273909692778472900317770235627951563417693258234430401362882549964196958178344739967789542037020981706404506720394070773465949341679661233759236983000414200481322790674124391918459385162664131878440385956926843739654984130922321292833309114341676496499966343197981104347107130765356079100217830951911301046904945492606495645092962617061191056395148014490117072032553769928755168008737298513602320695937512443237074990011453901141232336285692766558005817458383842412567747029845897202404990809197971671289319035302172660106744859413990339619203522025011144808899662467704946410525224802090776710270808911018827900073082745766366747377053860496509132483061798777983306375459167131913761139632562404169948462665744707631448592683883190646415354091986816241306811356811669920461283377679479427441104840886241957989844181352430664079388289498256354222348384505222063453638191186337930897939276179862865580529471232597865506198953131746237005484998730086700248278619761038615257546238923353982877790570572762850389053072320072872888525237200648427416826969434350027604213705511678793298228222188495482383877550572398849229673262478975030773749525249737404454618428993718162953784491334448895061364264112263857955459978607663303685820072266126786789407649635650417232083088562540903456533908912575977115409034898300484193736926130407424271848599198530923976355782042875984774094486827067151118314492697766324605182867154399268420842609950617424121139990286958563203557195093783888396121715846043116287271200209926338742517608807127026938352050069740304653694866358634451947471061306240178147272675107522251565790117897932887303591588550046890034983984142467212886934205315479713533217279347869673688653930297495073010933403875771041365324806537820301182500486893501348523800686645222332889112813728869096958582876293760342855845744486805319409461127128073072277048366920388545756062523979346999520664354462960963164589477671235043552036427816619163616585708932809596521233430796415211675599604797455881443254223186524448323235369912419279601444785242297619159907624671139530599056541485375969468283266353316473444733174888477945630853507231592298118390156004122567947766671741034414247374779104780898856373202918822227565434643379554727059190333113787984231284717075910765307069023484927004663931328782364993681718547324228248020401794796252017637684339847319570968407435914897018374629995345530885596723417272237415426548693540194883629006100982980826044916975554077520836887214315496546936289568237808632646025859380344890739511061064528675872563721369862030326786271107355248325201993733475485140618035761230900947588284099546812317604232370416654478390702862767929045937282981530957184584338778043095004817048453773858938626392286317152019042419166774532724927154655200104022325914140239126787226770312689530744008674564837777609095887606544534755066379332613497550679529146380141622600350270662324425286447180888265266710587296437304599977441530255044585500828653379471291275550802208210544263610186279386048287092324150367199151529102216781313963845749632869882981759525575443653335185756542741396958184924077560063878115999238983737069752640380271061015583631403466476210903138531166960075450835666418308763296479025891894743193402676890618554608113328214658099498410724912704151845317825830872426270212223738370080882720684535523539316300529310738011024614347426871811677545566855402457890598518386692971143403465561233253866604477578492062146286749990706462669196877794464419449299246754672477662616880295496042174109532376199157626180972029901749204950210536749611216862468314753282762334250763157972710107173022173706246861531785084273370945652506062507865018654095873281269998413759612076794259924544912411617779166585936473533567286775983970542545704221443236260061811978235533407991246500826009640786814556937013703919428568781984578921712638552975124761115421506283460924010863724240199036807846113675455971502911995573064282496040927378659388503818428172123114189921708567916677158977511796785439290178140460797261512364528333064018381822217021174660051465885441672723770165755136756142392812049011203983306303679537951769245056265493467533415877025779897449962358651645705911189034884915895050259586310433561406806563471236967905774043854658998809500160447753125769517567744614754503397742736180218770415118029042293155509435176742769308471955100152911434725506815585621126286725991072978360445012258790755172194945454752198400414119492385963776843781672521981649779685984662075168711825186607938191175670095328924388221191970544597276595603876382030249003493913486836391962466162922965381671478427652613653083851562354204486612219448215377065322849015422447601033832292575662859563520738924325926919617497675981880302235311226391997948108736942801043230726544666118635271394678802740758038518827760464135597443141897015624640711622623979980406919604234376448472240385759644551006456287180975509275400804076889008189873346404587710286887277978530659344664230318338266521531858444546052269519412074447192510637440744927649280251664914636820291832476797689509826632934787877315756610406964989684539194818030872023893933072986641038509362487443642251683267145763121664406833858268771971043408339015407562445202318288367056452711248163142006934805257016951860151548770995303482033797261741609395576963574499388454351046180654901524738676403018559342638812435823224703328178270050956874310805211736441976849926661857619543556416275095348000185927997012192596094122659992504739406459410720264043144146870846441697870063551070323353788187336642459911470678273960074047586495474626065641726493268871710962743436081273548376914729821236250595592648999651931663874281411659806488995329104456999692142634794569090583620506599563349496227145902813600285824874930265953142971244360619187537591846484848066328831260373855659020695576506060734695259915022665147824534552040524068374992701466488592574595146820892925114957669966687518751716732010103471755333728062556554461360509371965500543007231070645198942338981503561359336995765241133828626077736924820936628682855148525772091203357093634304216549743179128753425070764177927929620079260271201222888450254779329593796873602702015128029325750759282367355683223904893746410586471632366568684814633829024164101896400791906648811388271850599700894441228562050675121742589061282327631240832292401153484878798088733064017703071631360816418097786250072365634026438294746880235709953389396981399817303605208670363177181312571674321400438263102290283802579692473892029816354021561634347622300735763379572681806021994851018019991796633008158458927438615383950741686002539805123300981116765746414119832657363582250683157986610946103171005703950475714799707730147617413500385186517238511973372738928589336727722306095557180663876326782573833977759001934737303644375348843431672664317587402731564502406344286003677182002997498631468786380429440684194473084283934320056644572373289940900843203598790453609892558203343385007341029429739763067672672266984673576850624472565026940806331786244775594362616952219048814786245123890115759219749624796037444501518957277744302419715282521963967690170758029154017350463116670627007371599176837446831026666695389521426813257683281093814424824144837638498547840869750720441607173063584935268174335809300609475134585730969308972700847238745235247666535732081116530477414911053994059426402088220082766582252265197379510356119469209647052571697378065698518102357481317780648529655527914281013038863500231885256503624226743344451091070887070559248340787580083655960858863514520057567182292902956074154873320229360465163460759032813743184829488345036577592367970794122226715202893680355277835218582376023098256811603591923547311988002336721568748837296569376046961521012410067023186993744887557225398295676055122571804469809608988320704088039534703732647127557575169847001661438123558174060762442314235063447197064405194020978189341337709026181539990537037609753538375949932643460478546858432083781830147261671831408559481934293534047574690208582755051485163623167916358339500196601056366638869882766691983059018747502369430909726053542763956774388671056659981532849232695806642295244721326119284295556760796127662726189072366759239504779595521950728197641104623579544133476538970186281092716350250536804272840508077778204855792081008684686613913619006529721177480442221858189058287592606935273777776565485922979320623153270514505900049911932227682329887965698190440335450429603839721048211527171181435693806405914313589554749075565485472703548752178064912128846321750996933871219351568563185941161694978969343432983689114382591722757709522301512997357516261031721988071468673952537470901589393074011483819431186253649702189602318059939449875383255137592603429178298139144218142457885652546224325252186849135365426569721284688827834798543266619616029535244650913054706495788578885152007955598241017839871563421897820643781767147125692092149845060499235098166396133676188298233668833023958601883586759579243190355754541773785495210105819253207223691778190094004432141279479416310511827675293135364606647041811738443734613992002097068695605734006256160064821374405563164642988441545709560186879673018215717294933172661291542159397595740857882293314832423702968134559467110355396178880146550163522368284198671937509955822882912922475999616151862018043774205968949855407075098914534710060633155096728709393250255464650675264746268997830064691006657926174723930327871295474891558693025918996949358601520901642764147944050021504678021869975371676473644904778535547388546772129852080967841048782026642354664840132402706864961948154646642543951507872578121963972879933027859995818805408213507166579580770391151766958173685264065057533056462474429351178398276286067802017975641356422875256728958082266360463582298375814619149749580744252380919848812732187113925008035399013097591257895010809931327006413319461795624869641576905102348934663027965608837006344350067726041119582340538424565499152040027862565377584676350182770593700466004129026897478107641284928441001741976807071285152158136351282202104123592989946116506352345235835739488272646723412502399502714773977868277205121068892673732681027379111332887530211713676459010073607856999162613166311507692404949240670587335882040445975045175908482110046395037192685448514247461980616002561680622641840551300363736420282900848491634702026999464407465396438989514041063888573695254007624168475156336473396693008053818705435261723045293870387324025487625872880712710959081115852421767371107018335919930450518071062963528121897941580030625264551643290948212549356747759669116792664587243460795571698535044567948331187531609212328838567334926239822210381251025175172475490092981383550156589004904040502557696819330897705484061770559493629672182365162074338596070082312285422807165704937397276413117427781040654107040528645064071170963620170453519839688187946471276699099031227615326691652847304655768491715583822855624124007464195305975576504253505179237649959009048948342760373314834304015272543087195225289981118695914015898163312179319583763993732546213571467267994346780320525902513416677698151742685213675044598021591959782521762376300567657385509867571769334384434901695441761943993641697594761320758194227076262617309033606305078664166842362699213620218142921030194071684768036012754534788136148626433096831688938663989562059302369224187422245380054169294818012977720298928515904545542048538766868963460740828612910571943704804490958024075362500571674429691981049722839374393887267106709662355458677850164636718747666665677976550020399968557164869995777602697271344146907797865067370273130783016901257559258250451418051554204757026275277218772399687892369524688938867252850404696034520912428454762955747644552035039956561994557606422670143079799520372707038460277204933978689605676098656883241087982105639104901381413775703966168531180045397597341271979125127368115795676451271162619588553195295307760470666476452905493023771522746907682453058744612334894334106485651400860739851224854987220230877173745560533997890141579780213624341969512963428824526861102500692117383661311943507001164587841362482884809832090115667820541358945213405573421477254207028951441225051009652586593170726122715097010262387410707267942755853093311935838601859618463312424197411230304465219371408206832693799286913875406142378313357125286355964085335193440631006656702881778421307980143654237158732249865020829786631274235308356173822891496057547248544111830489448373813428096797171906050370487823502479704139661841582807562074553653339975670616567116120632066919247143233156060234174143884621892672857553019105815657042596295529451458462387341074245487094723681012977474179000806962135983080533629188155532079104298196104521043244924819341908082742378476535473583068435844818746846226649903467842788311561255038724827310980618935240483705744249043712968575582223606625766361190762800703262250737667381266431144873368363595174802340618671874257140855137172241526638622170362568419823380435556063219006308127170041918490893730219406989891312101241464426620296904112607551275388738067081456550074840026911970164208644012954033277938598861879965921936567176823346850245791227253292302156876140861760750084303484761661013052628524978329143601489902300986291424041586974036672571852385061978909784329378883903228958527257740460405693090822630106755545957011531253580320934000226559861066124102700748064769401650394023544805023832054238672651342086520762753877330750009156995741696949464466823681671302875570756958258316029791520082950361838502716013089603836713736181098777070916384477036475733337265573623819259071286460672435978633819499955823718499208491462704412346488620607412098560196238147808892720725168771906466902506818956993706470781606772437347799910307908501710049255006103141308707658375102465067686743646025267048121585207149398655646160502420768150178876314733633197724560823385177716238688515791958640199697903508447659164074106755828295040702521144114896397576527560233978167981301056790050473482338918673170928377038214811246050801847347802470368413260136657875834251508199850627737294371933557036245076611919625935836683867707536767910661376483141704187531136940749331332834450381478826649952307472598970926463197372111933057733402872475502784868936081290508916641502223798315392942065209644781346142711947750713577510405172539448228948348353932962605525066391730760927660899075060930171810115453204194966165001117325536896538887059661684000231871429584092477469651317641772880614307239370883985504040962529434908299493814934750871203022219459579795447360436730397200245380176879631230254366271667396072210777740881637159354746946538922511559757292099001908049181218052994605242946790758738328447116977775404960665870039624943448761758217477477046405613613018189529313565858608705262349549859266832671416420865230880673920100411666213530694560946586869917560470819672423479051137079729808746853918484875690412260965124566462325335776410066303148993975005982421944896020333462275834716711233285359710553658928514228170807113345096269413524257569552663061638350131691549992837446486346180812254161076387941567438815989317574606589660368460326282555241933248840413098878189778828447521725868561296740032648453295340955873481803079817623570425898204881238427339005500283583686602258739994192265201716706108391781010157055998023657887149013527408800531419391619187655918253140634656971576145439481567252287813852383652660580963607368051201091798221861530616948099965592132383357271321374955836836958598385061860548880188346672103298913968112154290009676984187674414694423892285082892163554966685681558536302819911341526240017794571822988889913384034302127080724524389546598071597126188394342436502982594665653107726601756945844167976969771436320188909118103145329958164299374325784400400085745010498472309393466248576830169218730392886530863248931690244488336184398441905874698985932089426386199701397010047480058470422092376267847121553371654112900867940503130638514223162631823164756880544282575811859416427504079503910846834494020353958563337536372226392672349264474974062577820813143844155400717376254676016348561102263168597312821848790202150517573968839732799038798002180725424907316396489814050025705254722621910500786640235711858412682127362771477838802889096291014063111796917190581820729195464148627049374227458184915843222379730431839445753777971904157323360292033028866361654422383584249799874386192387011627007207933689284521861014263796938035127384288227871975955247590876502583505961665231375788793834979487168388812053171854227402575279580871308905705825585285697803177036143391086260136070222546205945215049035013841782360007708748819444476099358187792707203127547385355671074843726475840029602645766665391062817347237681144044105260229613862278854986957097824234806083693264007476613956557933036807606620531382714512441143108458457345791404819702400440513180238005616223100261928330262699216495139479941899218808300289329085420874406832454876981079109197607455482651776694534746955975347369883131527034916284067271685671977409163947510496029010488916138462086809875619709508456128803307133521354511185503037706343772415782432034303040267247947287715444249821839493904465928681888686917495510875497738682071500080877579246130376673400516679166148899604683676624400687436824035712110906689311312292039275023787766938351525835321422782775634481831940869799527030163589231188947683109097029797278901747136019341414270892439287047653086796716290712799210253305382397159739144286522629382959370859615347396891793503550433466085244226400313867840498512114656299488856796795419850489103318621647228595502192024411272208798000415669597336357924396984943184075833617345029900918988510595035817431624661495519075268369542413312713687778807733771733561462789064127175853484896217959218401939560056619240138474723903220108175021287850416245694110016634202818586953494874976616999486204519133815309619138657000647401423921066742299012776579915835252308326007651790352849411178483428477974956823765058387681228747009559413069412739028934765498456350393712932401074968138251362270663498722615173818228356525816884772565968806538394590422415359520117681829055236986455838248780818124142902804069101061815060113882897251351931467498618340042312181789512038001391603600676752104057613988856671701851993520692874375705389244851844103523836291670949178565732652586450716238644037273358895171477947180117211573632523349026651168514428264368889665790368363757730508112678071519380701771204411274690730496270243931048806453098653266695928961489370125576110897645617203340106146599447510177964343347877459397020042588486207149246422902056827489331439471454100936923411774995787000980301748224514771896758306813683455606005467576456439292800329340284861078368482418385418104903016072316824071016991240351543863450526713108182712199390964125763577716714333197631282435990576668146322204056637116485172455064161177903733323410558083353831650280405731961134207041088808173325353476579898208590747764448833257150015510892625460365050095681251894485410661444131017018773052155807759881378133674360413942218513925142751450977621586445645250814230056626277187834392711633871717460386706478144145713036015511287438160360483212816614448246687473412883067901545761196989273775264645958757697392009576595441827166185007894712857843682029777726127099640362306792497445108507639200431833850885758164246859469559912196203919808855680308520927070898574291405737959484498984294923186245727954281402110973320166876571533470126237149554513222527528255703876978593783013255241137578816440157274791335367618231777256108784508562398724932899961346122055085341518193720989649143907629997296116775038642416652382521631163626043159611045639878045290151177150041930014024910798982814393950766791179937281176958549877673087012638522075369289619608796689170661057615200303153456806170794224433981298957220779058725245368009449998038872651236926961413839541714453786988239124707240558174209107794038020393866836086895782892761311786874733636812664769862892272084709297078213740078919762312466527831956427857376115095541557042482023314060444540345594238325035950269524313185027038848605169026415442738939559752780608550198737686170276345868635132536569228611127177604187928437289003743386799258328489506200882500546438248545197321714761817768253951407729420749363723752453626970059019462652994247022306853561231276874903336886193767452646077326597564526013636943079637600273704051612628262763820259182893261287444986051377541949102121949497777059409676045640981669662487126907963595221056587711043209245907935001980152842973928972006803574221594726351995741329140476216983598355512456681628289791465922226587018667779264627124566780666971424807889411665665411263275847598068522086086599084576065576622295093983359398181634275076858085137558986748851464519644939424646060345218192403838951043043008035914684615626963508263529408376254339917134875657536977740371676906845341823046337578300599993957683483750316241635754640511500493700578808748948490397964579593280244370350217013563465563446006518552745623971141351574802384764067338474807709419548158701158259101643749136402962610470073564915987180240614835926417007443945005512444874499224017900523514336234728200033041011693422423987171507440956404920724019708894317839798518736166999743431447712112906269851114684349488210779623192674742244801146658851757762088063322845857090625286915511557219446528261458188399640808651085624085547457433872615666127049246730275427504635649455673090000590395509383029744294726167698757102554379450862034648857311889399895311660694458788842997390676596992844203528412496502336305051675996030647479019209909391660586122465558275879685347497258887141557150796033487889084398815133907130983443029243114542673024980762596563907083118227672625275235413862697481631266719211825262795085989345613492887333389423770017392658269125753957702261580318508198896876561157439950719838930606975818026487306424033849906243840068732114115544699757908135001422774429436299218777903669562061618855808428389265121922947817321693412123320896257681659691924777330081003921779967638844091929701282006244791866011131565528436120709876768045998066180421406848653331488345335526735257096771530244859733938531266057259682575856373720499703205950823139889908546805336446548603561830192601166000888161411311610014970233628084027751329172510436093137951027315352305381912886284787809975087035929356830354061473789557872982447356190397564671513178809750034327294544129365084727527746919181297158979518220428706627005988818872204964197697485831300741617095119446079014485983484096794436255191327622760074327081595378207002042897251255202034696109111929871563773081404034835603005655049830323137098725634762980120583700704986919151511546799256003125406299127409877635205083970019143067715855549592264000094890170893232354652977285554242003235458650286947044660083914024233645137241712510489099325335576350602092838714269315207532050241117679924501806990994383513103828807129914820511906751796948530006990587934694087697694229742876760294144923233606973675172575683191375626325454298290234002101841790150387494845383051045598787252471304832950871159816008703045419295133370025546822181338458871360666778076746234093703397598085564097157582598686226320698870461093241394710283500623635616115715452077029263838470874289493316643597528814071398667210862575863358856212150561973788583894052116333718699628105050897487775478487240835132620801997138742127718094247949936696293153438037672490220282127691647210058716423731286841544428863360408030673377443062807638374082155135277744308159685825831864351655194985958739310681526367595569179962635659235024610794334601660925001381316417056225823486163821674726976715231021517380099433160039926301975633265350957844631773963666783037866430644981108520624013331260659849409837302527262452249862733643954228220907426663198015611987438353611087636281078430298440087480213131836608349275060472868757018504760291205335388199383133676426538816114290038721442047813056320694566423006388532706946622274436883639802797189800103726836827844392504800393360616838153200611490776883706621389959768069200679246533293539066779749877538465987994841482922438039661229707955662493047894496298744469628354747627381493701683610754310862212498103632599716565429716160865780419798131250972040996165809892390270566126667352272206338817569866570503403298498003675510211547382701209987255119054287234689038908765429509466697859275657538121559296261308886330098223285376460032801160502304433097218111017043333061564428688697401980208887213953642582343293599640379446873446418759712957192102245174007367815999546003872924047734688527784101173013246281969657472804594706381725598799905209847634104452958778018720369398944061554526874486563013521151168885171970350958475458094960935422624493885891376706084045954614624760541063920886345088828084968116497833982219499119396753932219972765574296588638209294551224346444346840617101418907754832887748940004028450034278135999213539971280740355685444379874702110116659754473133213285394297971601429136184883846995886539330613804106715677230170719382747549920025044010352793389871095377379629855131466123328330043948256882385719851244282252445055102597374672221865599209818527586118118438636582674598913377711964592153178291293426918260475115227127707309323089765908013630322405933966677518553037446803969181601039177684418651383625558481739634412137084433595004589682309594487855816740081083445396721086481712426023053299159182403934838081769388012240041113708633243684979132807904438593167505277699778692266652244274423107360043421428507377812215359701843387971046060210013155415868486181271444308596034906741265765521584300852260449136074109002679871981746535127043288412817948218974147472531591335383901943534359406528623077623343278424214619763482808786080432723904786069509055398708239899253609137591852710948797322964013538251505200034687376182738424024312465154964573044493968440578185566114571205893539069887303378317238362414747380146965304272797201196857024779532081937454658947436762446260787509163391767224478273920673193706504057913366296484782442681525942868835698766697879376638405626896025771681808655831743032753293035117218358256108781107364938890183697122093038951160824304587489506825603902611224739432887141176084769192769640245705694476852177500766614269908973143695977469857919182509182035546590937416019891277612635472574938612601847263668685675865956931499561728863543877589668208530894989268639239780235288588552271593123081602418833524964569690103586318766324282764489106708707092168663825829328404879070446996229275662187118956043246747730737570945100132738478087369508044213387876011853663566826928535430056471305264054965558882639328949992868706719098322002221722901066847861760244054358015418392605180855060796905619086166606301786919415942059154424774720960821193773170621291546295093573214313731788595218669659197027444366122970886498202283147876036019779552753258947871250717705757673569625126960490698817413508736241476392035342640014199434655452575735873853843555497139366724932005811012411866898285642598921714351514231727652918802076624356249610148995447978392753238658399068684219695112317862509831529670300802139727807959962575447409602834941536848866427836798801057740036663711354894171311954022707743064489010035635381944459439590340231815739579647052614112122556609910355094548607287681352787306027084933181939111079072203633536434157814457932803185915940110733876192610385381029573251882230358745653275137831817817567038316155846941538574874046118563659884960768921063148825737463308636710537458750652432246122362469927775345954702539275222941152651855658580343230643874977133807353066321442679610788912066629213888273771321919464468001992387798637959753379460023533744212505690094178516703391684255428742800569358377540329235882859532597101809411010105286934272439901076228012436922857557237233740835127217960415250733291164382797411913247698852387686336597532897444954763460090722439726391988979200791465944439200606123754146887151814678374433151375680563669112431686718199990194938346779484988546829282773116860137918278565906430977563102616437103865373632298242515584344933609207632098215498352113568476385479469241444858707713323412081591055727669714868188008222387080484213477925986004244791481742256473055132947159699180067040478062655013157958386423858249027324781161607981510067530130711818832204872181719499487704330470152207031320171145115421850422951481098571040113451028304385614728929629131948252245953653694559904373735502562743831916669491260065353260763584444622640643463907837122397050853226858026873270762451930628358523875625028219000150992545597399966341814061206219891869189638855723507714692366212204114506257478481161371461400709022653636541550455544315478485337315632809094227413180916124639998516434231791914288584108818449308812966434681100627629031247049124204119661335886801697543615030523115938291650241236066391098504118374187870280417022839266046954726821206953810657129321949486101365542101228864582001466106630806826999795705004722317736232812020784458939211644133669480960806266664065896554241581062371296810577452403748414797014248190385592975421734691968087830936138026416585717767921341248062246157226707864374451761590159549914270096294283821211629232751459064840110594252662251758363721816575551071525245766967068932395603556477210165699579112076731832110528497749291442765284894154887310131712267964700996013170141292361354009731565713965490221721927350360846254970436294129248817978532094259732514578654455376152355577276559715862124853326472013154802725483087496466758920126230746191675652002755933004301945150369133584839050099058196653258395565453504081820068908784718486455807940357228851323589956322993155297198504397168818062312569163694006758458337364115444754363261516999475759409211751739091962819457784205200622445252537364183857300979284007882408017216759928230104740802891901577743720452696423836946765163263115696241475519757970293919481210485264360372632342109206481235871804584645452080687238279573577588635457781553395013850484181689140278544366517368394836977287422632466193272169484307787755137900689365315751920950402396147037231458390039517390777724618081517965508906442519216643691319929169781039185440782695596110676024529217425459182564602764027210775311261993593559248396954143823828834505277023185208831197984604491149531084577200452617611805853253410334139038836980830036973495027252167540978905029027114060115264298441579988710252119898218008392332165801762102308598827100225598951925891015557442600655673933849759415570759891829082196220513696832144335824027583272422107221341068640432034286950625769809451569847691255548397428183100103624031964048397930353527030705334120270908080819300844439236974630275415210348382273079110721557242808178590315487226263901110887202304222022392955651911820182021724968689203194613942857104735945425912043698941290801968562403972389582935413322585180698610279342837691679513957632618816300242782479010864187418073325133515072057186067268043621796709737619780705058511485539671556589789094576501569824398483796057468873381956495192314723124045600387177761975072870660266668406522812443803835757734094977408160188264183371583859776303759297849393545587524930332638535392161825574303916427676383237362356283673629648442345689362434489546140580575543583771233025371122427019425631974003411914863101900296032874191924916818042001630874500626529094436811533894259432068650489832628300712341454212080529140387451170545917309315170622965212009109210043355562408865381612049291279759611084895823598118500717622551190608093450666284676403145118525562041531456412256972359521977840458400579898869697528403932852931790648382817713568385449403139639647943778545501891613398716765932861010999526205768013869751596206865268523364731153745290762424171011903874506494854761914457426933577645253310901310668838484334119548154244210625693712183316954169694542500638732831600439001817252791508014667249497481743034222984265489801855689132189315875618393980656864413392413456788133905813191463503263061643246700982081543292189670797461918067381074840946666993099244105362055323957601834813954189113779868403924566567145682790456037857197111656942480007690409410817160541651861463358691685239182293170508391546705616323653061141588930061319455817218255946163277227606850339014808137269510215680282913199548076276556611210520777865435573921211742275836841841159517093090686061280916908789939120319669806175900409510203412604382290241253955284057593520164126032015357943290157603355366139349572804576376108278129845009381140423804320832670895786627132766898636794939825719162021256531585522126120686244371681646642926727534494845056028853568964525301700987141644526679367823068537761249901910912600711984584132713183405002756978167032638591480512990816030227564969707844819912360424633136362520764390152294237812405100701590303371055038475283094405288246436887992377889059259475061586813944628440178395871777677351516915811852173343093121194389466455463867171904882303201150220838608531243853597122297535605998824220980940113553908498808678590242149437942596513311245581127936717000815770176648330343943617334675146784025169258712615566357819806881544918787382481206602561534645793378130130530726355851504001893852962141435618655980780384503744743444940602280404427271397126184710986974912224791521529995998991534180251082438770462476896994159896440835793950519914182783509695082632581530271910105742008307568510276333782902720458444050671930972646446296140279228375635245728662357656669899854808921784617273268976320328806192218182690519559598284061659012059224011140327245375503149032765740947285558864062548055284266555387880380805671530666366161860787934166312254715917458031884674939463068837578954356663203947275923065713623457336829684853069296785579081754293363803163647749115498565529682957919522236055101299311222284106429820972728173067246003640616701086746050810081729393653743570067541040035235505549341936857755388915589572665450513503640161284856483840703310503238211897350709937801588319455885781151367479287563051307132756814642503893069606782351912036288930237224265337650114190770733623612916056834303524834825144196478932263476131790551807910339825253518544323221093746226730958250830040648455577145094706676839279130138786636987749078050800824110207733056868764366291173141074090429494640775046663091858670801416061357351649077827498661332783500240642906779923971171948025929723390817969978082135263469689743939777166049387084023305641436882146414768315884048738288923214512772705101213928360810466281742115215328945983459496890236912055696215741588532387887021823825828884727781707857017082706182424097767140910707900779696121282693114496900370911969656133853124108391901014261496093733347586376415412629820843826943230333026339369906858163566052514838832098058305585523394694388905892751113321934048361140947962925093993805626294602713532354366426178681577067254024138925520079877625458061858476018095458930929392150781267474387402110167064602945520977646520115926031559396920029600336117601468510491633882472755870425874101951662701843566686163140698367328773151709435188899963589431457070085676167359436869581668558372406564397135898929691348627468670025104158204035445687816705410181018028428399617673936245612711635720939332408607372764986274490188965591717326209242677311195580612921489441937747708749895596008540275019415635404079201543103919020200892805698085800348470517374892540959153912609320892448089223785825958864548802879949223786568966833478257578520537448071961023586287252716783410415990196253242645039696435845396479193819088487797691894953585668554064022610261323201435746701554272251757993232851591356281686407023566452246974888445007283895729499487088342181055151303601861179613759016465367120720967201102420865831079137134624097870046501919730341373238772149806158378958803697478691651651747497585097479770945985589514024832456522148026093569389400536016660780283241849511898340393172249912949502929256972386475557877079219253339790097349745658236120853165649436591003115222659874431890542616422759552793739751567012353233432787838690476131466657219792877422466653708477123407626742917399518263369368028080604192168273960134206954581152625467664766030770059458609279312778952369380367091994258008906169309565602878758355379494083056998110826278351596243698894671104830364471632414842367790122658916649251119026811932652600908446901288870546905746929838361179995185041830875362831534454485700284121466728879782245596400453956968491326734357286464753108024114470723018597907163577461063533733617706085164135041875087971036932841270977888731016792618805737546192727904998346337721281555334683338123295649729562541816361263826913392775082401372727971003451644583853038952275538427495522722246084564389840203671190861868379701138752964750627472537866002866697734615287859537491709533488606038952920725826106646261008673153689768400825217912003064025114486303980981695048422656841485511446601719723033455615498973282719898981975309940607304951314802705461521157625153766687097953304087002139737959525859550358732310429913759403065223718702705839991591812192861896067295414357491286929267517807188070658107212711103183124139792739838977316623809232086423001517416574465490847861208418538274024566680782406726403573201694415605477971249672990924819861877831847111140070242806761393280599144459067837547482825925753168807763752391407014225884153057623890583762746661283248027596010277758474469275357968987661172623798138540928260796853096275864203855845486813614017247633483711175045850052388048117239830983611189016953115462580527138074786332610863840568614289208457556049547600873771499735971448309263305109574308348558833220473888005102439622624250444289219220949958709734881884528279597967829995852913831369693336562726077952315259395820156600645467208411265512402501026049014396171792621355617387610443646238901288673034434750785517737075332344144328087218515265093691527396846254073091378544781762648267296064265201908027455298359088161393583999270043440165929926159916893207558660779109358823972966971927592895348478033171959352243660371299972360491934124547531737791031766389044298386358224516729989221487277119699988709554007239220867224047628016010899983950888749660189926889459429423999379246808265216737779040691717251723122898153816532347962477141689111985713066132185168867464665302168148135720902599450823841846663124380296873552515522057526114437327804481636172988552840120572097556597440220741796316453967672210337797927243408069946235477789072024100724148251193183572605164576095440501741977548513399539144301827946323273699992593110553678335293834745172562968808944455993290237246467569030226428069771173371653805747952873302052471678959561258523473300321914955185207564695490977344684616417208079607760999108813834210473908444761033373391227057292373232578587958316530542293958361021670047511280773968769757830938423967763480913078135761365816675773368855509932323249408849333925927019045251157320144483101790983752318192799486199690821907483484861051761154298969430855082672684020138636090499871562347088292221217829040465177248582250751607352251848153129090531238824988909889209770825618736924606535072252150808560363858831515189493656327260380517515428520585779890487728131192813432834902199544384079966379658275055353960233829751057889666458701934898865690738525103749997037850589931316396975486990411967183029380774039809789066657196614431312822946435994063255619499139141725846285566675713420945749801590617927618106121748700700627117588985406473646655245565663708033908610605385810291577163112261184233868781013709073444871132280650027043770733385769670891099534225477136782925082197194308160496495258306725439751389918244953319094983806674686939166356066220040900180092841434305412531334656604240717389490687307444296987783748790684900586706061406613666588836499685707868024717959976587818192411504314960786374130721663601962230436094770647300098871779331519258312166382428469209997054976690225513004629257010055900882895038357616587519841866380890943981040702551748147430592980127134256315822245915075019751689225409687468371896501421944698416445275662533792583505647376467442325459336475472494672866925692493579160701361291957743272221737328419967020141261602388834281701227651769219184531725676136196347246197300863645306127211895742258317584316260058565225983070989534042467531482625274988559515076845375356345271639491472157802123770632220395985420057179413914533808437770517833807165238939672123556058646226260507263620361724229152960308728166014125261707208881336476381852422879144819898627056713949277883991282755987533519087922241692350547984142078969843058861656791257106745117282917848520267529448617544920799574995653575227823519102404427240824102577960084048454084460845389868838338931458332212324792429093387363439455174281319363951731061339333245812322785099925492499335913905205036200276098246784225969629644033549928818465867016001385673081506359152947529644923660088928213775919455257562414267431207519380027594079525580597101218756712700579722753836925729717914112247143924388960444299877386741050116692139487642635770463170102062988483821767298875825994378944656721256329841187600252024101871069641187712680072830318412682944337722182408447980729656694670188892517155987386134659617361226021414846574294060887353814430423183244109609379292804284323003111350070866507556134457836149108654474639048291197620068119438729378298729216074971549389777086024278544779883229829796890671587209611419330516690170121571738866218954537262241994250551749045977671186366481754355482063321936147665528836638316159020512365913509212948039883957191713905554089999296321544858391596778707220855863698838619657552120237327426141105140482850537121702041883840638279896966202310533611428789879203351671632055335444648297119813490065936236856222583205890275497200510178987162696038910565860483919350285114312406844201175236911871112562592690380099007480825976628261596442837398921364361694237685643716853571625897719715549536432160957248808932587264688254909191469589155493425328799951908662643009735877007001606119348427394142924393948787061903859308906887745702319181007918720771210453319440236234989893908233530193994062930562848805500358935732036623143161168208277585078037207263914815219624519710686013805874594665653193575003624417895452626017609714589713695631141854872430466239943230724193494334428778981009312865738684608979149379934690011307051891974698672054359145563187062391333857375121942444989904160587860885481433284629879646329756899560371320238132714179805735944236949697303815242214342721602286946647680647613260724337358065775364011651515905214160920732718937631643288418851756241443276791033242359425990739932807527537358988588369262799570926262458457421028771646932804333414753774402891526268096420476641291123415447819513976247135436005268280280253794650024014726573860662367352606097490336941871129887176337692333733289409074707860627405373213217536750241347033978015563961098891039235828238359186407092104731664534669197439034468271431750718620549320415431580059727748247875286175891869927249575814357792018168729419449192400579707859424455306231162170042259100337728408234111146699244347749005909989541153717475973430864917011955015966576792871034034364235679140264980409407500651635875121037171517676408188526829512554130223189162800247260571857816660638368963415845810615954323469153997817180698153764575148904153613142719285907023397301574064279462350869753301451811912055860034350472691716207135273971911866739825244601655478419391303739575466402524539213460238402353271452223627527515272609700425404378199277275646198690252992763758016843369345434646475215312763916429034876992207202105128520080544003100175175486505455782277577857341839453423915159540467921781563126309636660032316544180907651483559645191276262684061211882818996984795902936292132444202146378804010947309917702378309247607329169544610102485171677928727225658603106870059686311458681330669140603379948731137818521988552660486009020937829082576376147050856164501557550938557237230171815385451660446684092185546960718713420187798187871849534053555127923027937091192652115263937437275210645233865078895064700562372384468354836773923550882003540629301214378527131083659515098011539195601925388553366143354718886335423417781713569199208956263461133092234486337917188012657995324704516185452130771032282201700082753159939923899039398050486165950387724914195739536766902169818631105913171621674712259613265252098388015248144240418781317621267100341349869672851576368435854105267007325855719588368331634948908230463948308914697764806191141244182932979879428251887277400646218115168090028920376162485824702339290122953985237769409699618791981135897684996675262337333569497346265156956258268778671626278051100056570832308966511279517528438263499534865774935353252977786813083848214782770790489217889517765645933923945439568510835571097808784281115182831864201657173189924599147898010917325875415355212983421109852146225347526004791026358649290030559096574213987663462409355578967943448181875860484242919462919165332106359267195854967901230195354027899720191349984176933783194151320061611490779233263233385600832245999602400253096888730056971079810944805864533604618672212476798085721247905560552184170620359841508889965163795879943424841496810136956322415565325095142892315581825713433843540538598458476984491670868166637487720208506475679921627037393929680661483375831965295841087688439545705046689958863052131558215454357072949023014106225959670174951220342306009325346187066199111082316968404490919350054618531574637469783050728236697603389270447016123799670687545481001918150580277630465158408296608668277899368259249283677280330312500042736759190452185824316555147536513609844914819894948870496132130309094926996966572704337862530305145568792699778492284712226798040537354547537581063814249759072386774527448588762437331589840238196457982418351743668409101108681073810207297214510637295495381162007686046337272118012568681310517314038641312730048387551096703215372212510455571775819131027667351852558772489106260215480003193769103111676939500917884717786687083483055281236748530645347143506412609193808380327844105333601397187990775671729267614621058590931277427377050283442135467302331940451336126141779371420376389705836112869821564939897824107970338590125781659202092228139767928124929490676350278627788371115258969943845213641509683695597219983786752642799200573015139859876693801230993704055794423151865698656767253462731858225274266799424847692144539472064734024877894467869882538303285088401767476794597452849135827134452694820997769229617482400932232265042906733447475266583452096222207700137284354323917133948803737017108464358562056069565312257858366467786252831341642549334574411313098244571387661990378953543312291081951991260037607005901551499169529326554897058526564872147314085380264294802072887773983092438849155670599283654076264878928634883890888741239742272160710923251932610492531933034478399888647372623460417797339783096191737902706821654225228776150186833535557626498011123121556021538760500515853795608897325115351970454670918257496699916915371158540320560583714580089096179490528966959600601760012293411443419207321617029186599769415450792273080790256586896882035024867521085002703682830733078131026275958499474435282928785494695212245638319636161453007325427822922034380756739064600862376544458144553707690266402373807855685395115719248904876739771508757880260602194096895636278618325062718974517799986158284121145416706484538893781798724267510655127972334116520798439868661289616547780990580946137146165418590011334311418942150876072870237353388448079768371152576689776202749021380521127343761958286159738750279365289340287008863865000094110053329982783527611121034184755718928484075173968105813158953615301696340970601236164873832843382136210818913066576103262881874758798931063411231062039050921602606968249003172536148097914178690985533060737848214299776085971875233043786360854153992978243623494438900759162196088902638519913636750907303512629533769842781751476612864163055712062357800904888933973987509868145383833198627029811911504775953271185783639040380592832300179947089154486869882137805801148757180057561105239046200460296917638128457297479240646440075228166745907804570877895990306444098928020905116147292675596251619915151658093137479632659726999344669170051124634705338478992202312680661628482917005629843379524235068654716155379395942856925867426836613481907766019686653077421644954459048585810340499341641091060713151924412055099007213770619081113062167381054275533629461315811799198004175694480086367890220263018465848063750060772073559065137253702676842002051343777941424278814378828556257968938386785876138457832984766465348228720997762898490859485288653897378170316935392054933866240357249684210564921583307941584969355857372176200555322500190811373575251525569464436615765636530007902262236568627192369092227099463646796903919066956723291167930332941526026252809426030455418357168912546697946659529854470050172231384527641281838203505837682161742410587880554672224487886121028718330158273838332068483800684482649481295713894303232895841909909501452459374313186406748962486959109713116848571672782971439790741824264939528602289940561118044362232388373883639232583754558886060587663372338634916389772356591698060273742847352401794492620845246436074324192610943905314085617104053155527825044114540326063030270952242622970228124186526123790885933064993034983515116254577622172439922247720138784367299094376759382272592218423504381346306919090189410590965304817614734617003820929857619132713390730819499167850821422327484369312760803694440008371593604195776171390192707917350930763061094271521697904770520721017155135970014021231630480260970681653384821784494018057146722921916633418639679084634124202691880086473298169944285714488553620110974034565294875814208500608156044789263385632830587644033849358481074475640336478121982136413219877601531282961570567861589648488282496752281342206652234693262795512030265043835213141761456237552152601345574871158035753353817845320008888272223205408104031316082012137635091079968492329918518427026572505794303614067710229538899498397132298701217497830522262169567843850201514929146425848562794465586982706592109022417289453647795176176956091607161338673231381926792924606488738437675554079301082727953543289836053699358247967332459456061947501125251072060816474760490606750448423238685238711353989945354338581025205158431606583919413440384086368103149623999743186168804241923377677512777836415560845123551532702712303958227052109555553707516448769811729216868796471537134078380066621097951605948144406237441466745092619558682365173495295783063711325357042753328854700644775481339811479006086779700020956916374041679864020800760615390325718912444425740586283944678601797901706398319569250203370187609901403737759511849175865668777368999808548585414649588608056731599987082638564068113258893940074683926477304911768452265666938718669405084419351158342703163948335001686546405036800410266167816957777133893555053710054476388984411916031572565569959110502733075656499651359561498668887345651423154124629249147427274661466034152969841598315439309205034067089051905570735106223062650882835504145778999180381870096016451251133592679350246815194630972848449316349995015884838398889879893982728422623860019368552705417624125208290443014112006000783868946828219580024446886048043639401664628557290713548521568365057071591926704117536707614753427745737985988729467205557141978187111044914770261126415857745894152938636220725552679233460479907409528813280250493066983125475570785132518613381507625457741329032944209427650872933117158564858037026709843349567864823042689738260066680604163643194283942175161901467007498053524054131080290322845050408127096368545377311933867201030107335673845259838332000509456628179325006274915307333969944278319331138521775034672976371843768916508084737118593672457730118864285035410580232314026097425634832493088361090197469985593460177160852837041782429789972072132120955873043730294637713659367048578450657573055442961479085696881641512390912879389413982558893100584780522573733886516291738766314620672168252077595042717206828051553984085934293196729283276305392488359274891513218532666246848247297041050655198776041211311972032185152126011083384447675654115880181411535329938354768044656467847082674302885277485309662978530617601010294077352001772519142636830019280607012903246159087520229346315015604115592787220270979352437650067382949744787958946786830405852637794953644843365575569330114305355440283781958837137241212137681253287792389912848297641850553405217934642724486066605916663904759562439269941523599186301829902618750643233371013653680492799370473550566469039688232442255523255817646905175489968391264981477733737099747759156406122199965938146670226933641630153490044089483430054164981604453526869393473006913555790624975827560781922679944149090714372443944899987724128476023295255713181547984122063805210807835935471699467524596181025091328909902263958754362230595872820732994763835340493565068118548419056241681935611681265931591819487615938511983868914511580779265452035421465150203604984990885095363367019210200819060159072690557440763484582885980151859761657723228988075680266319825895377487206936790657958815231235731810632628043743839503726716097612738577751225798333044557360523139162048722486951495249279860919065653231489776241762375655716983964050921156585447817193949150011367195538486321030579997041949695406183253797202589376855937361783202182376286885232346620105390355833271586613055573432974435071645019911300029295444309677089703819102518766094194118126073267366875288395930930130788526129970989300752910973184338173444669337148118459878384862468728405511765360473050142318527350506344817186196966401947653528880981659266463284691656645926468417931914270633914627090311450009439522466412923447223909204760523172304019529888050176126554081369992238308380328228162507143316475725541835263357392253723483738072973827547017839234922075315146576321859713269384453930855830638752759800075535735206908680898879282436266181423567837424055699634682541082578635938391763315223555012149583441440197258950643583995096624477089353111898983663250723098346678068485685950567297140666373298629438554375076208032253294442141427562292181275600661540729664411690970902802523642375732737159668268012763612232677084840025497597614846547534992070102403708272017485697472834285955188097881243362679175247125842553014423272833909179588142879811351148757623491014894498572639805173614576906258203459850917130135056047903315284756650870233277086570958976216879821792839150483850010265138959955844227906426261197782704808137477037291141616012670479545269055896170444302471269657934607968525882748284474816238452690691943258776520201030120328852653422941755380394308233735913383454123868010760252151104224733488863788656655431629603255139329587809772552406390457688129459036428743413372150433974623754471445902171826182762725966647513975348477524325342358685082375585065544849257919920762549667950963707852650636594340737829385436663104558698060457790363567255807600937883423216634102631909356375374290264855641989498723297957028869565572452622772396541529780422757079552741966939198591294369175165226786449130148946383681545654487592012240714895628432477838935769180731696802975243299374781710491978524404545883981717592726935445869361487222353130032025715031147143707912924484890229006042960647095094749455193664807953433816396870398783996105371631592107531017685565069925299963669021992249771571553548630177399488428254399454029348833444654279171573343260322577943763668688215079829599650941278161861830971847302171067158509918157225136110154130048260916978019756421008060892166884281411457206976841585248828727038865419074466370708150935643067667134740321897158845977457268843926638821625638286253161588784720182935414942372085704174185732085648178324604980248064650121185015618464935727046360029497645239231962545670020903282196023092819044151195378469646826653459999004083972115005091502270535224085024239982577501193506001894272154719609423087315559319837104429967864243135848986487908779536556823966711911731250198171274093658720169108486637650771277418885547511287668212186098908876865883045219761093272283130505307336588700438901206064461284569423511517148444697880001068306260270384008926887232374718524571794198019096455491918243377135520035851229921884808258525223148469547576175135425984121576966880101134623372295380517288132598563130697727268978344901917561372455417570696881996483926625572682947666888650719281619560717797996304100513750639640970979022026368614705605600476243066531265433211167691226453911232893758213689485028133855317169619529137033393417982915904185341032614088499467030457313303879895865850821977880821542228481513665494997518813716518938521607718768666642572060555678693663179194669456008332375208947950463288632505876769769436247474330343729770894882318881463621049952359386888257845882804917923705709574584572118222163260187358845785404787966863682102812713112018548899951611659718371380229797888276787679851836722052848077244448871714070583994764568270721765623603027995184818559695758725033344902230260288346775689272396555035659107665313184678380192945495601099685358116883751589233060082560067519224620285648613536397879497545807979868662583578606395264982937547630366062308919571517175891169168340358751588945821166806289161603657943275734249811323865287868544985776315338154798765193308023550230563312439083431476691623033772406247638074970415641617646771728786442095771355973343292223100770443855220464114529921439771139466354314038952285788316254491423001412247135382172467058931000425113573055384675846978839233933730256136802661316988448116150247874983007571291598707233007575968565575566590804400464083944047561902728670612153064410164603722607010627979955189859573374144700009370468268522347701049059219517517377015144045635376651958009166189148558360834523765127329445018973747251498493583318927036408809654106048751393664018146828397972475415218755502041932803247116906059417697970640332115200518423675989499325112472572010453613953424842185247504458036883169983662453030804725231551908188147467081553397179353511349984355081238251453134001750670871919093315307313189691971159390644222072451392624711002792270735888985693484941225785449972155626864932532874752087909331391168026975973516648082453536308761927000422828370842175575447819253481797242985407706922172593512617123325010789479348067269519824979773640837845713707846106057333236753143845088535964651718248538073669027806920177219199555759413538428926791745003365038535538573227303305590901664319468960122701554257323574058645442538943915405194855443335473023163909875937445691156963758202260602263894963835258095318017868754180534085335316435873619342424122648045826151486377081211207513645884930848042436458445784253040038553630095362100680324983926347149079109605104722040051658264981470772415626707297302798195877256368239283983330304456113295099653969503124527503010689544410947388946569217585225779658965954257061466677116331126714926831609123306394190786897041275359937109323987584442143760595730847970711637897046383754396950586858030591738347267054621334533210778233433878772476777718979135093173547256367624981850174224081044808249881308834185470940150286778410236324442725110416558365367808096901091040894443217263625343725955618878486640544555022607184909435200411475015510434784903735323406606912469285075598416183241433275514822704094491577778299565298481641080407040830808219691779671960373909350925383860875747265335841770547430348102998077641559483777546542466405892319136635393030038074671384007580666727004797906634314179871170903776852899577419807788928453120616935831317294321428739469801286930710982203350597451357146306694523779929920271271150134071970766951777055743109278899291077987433652621190445524523814311783755609922671584870696446427866086778444385085247288972449446477281522133859362752712650499007433192373686253863205216985838346865955572217718861045540669031130945884783828652996103547089420619622520382495056155185292039122236689871851948486437317721037527176641678886124191425306894112748011123047624448875727855720040872586289450146378762303949853730767767166333683695056175712084579473467979286229638553195279300431874766420147673023721636669082970156815141329441993742809165260208392722695794125562250599941116973185770179422060680193098348229790226320916546804939073822770482803445614556989812696929826823638373123249027986612310896187835748567229764522517191088293221690575579126891470736014128611893407567931916219252862764244339878886907087475281845860447829671596440489016057060726460343796023818870796904082173847185226895031068332487452781630496430142816515760139775956346239089344582517959532430502624609002386616065752294334308706406645539964850100268409094857075252159520722478929993413292962208100421760026074627955006308828589891936818169418563783404333131771565494437039910511966582966156321285441785019096994754391704434616931606412406643689942476651013644701241551059876885446372017850598673907935229730861464238537105981454478603840977938243174537545692086012864892391451948070394489880779100770645859186320025795918952076958559686423887761713568321584284585231273382713683550867412330115098550465642000404611021076386148028938109446111284873360473142037012180976175829725047260777597055432956552022846212052016397385925624784704793573899406080210299957121109020354769273252084705276378311036048100629406393841212670458244145143862550951058834306159197475467214663845716783923289580880283428102207889153662025536300765174097826352928886186011919333874361567436094075863216015833421747791233133079624676811008652203755725620320682889811929327420560417187588412846450354043097696520744582438199078268652859562507222046623630617846314117242626735062947964213242876885611816514762929883698657535876759825964065996469074264762102304115452743918684311115571539455080725025400448299228004169510262814086530470425358282339503364673335999174733832505249170278719443882846731338057401523505441118601241563897246977337660700730064632290220276134152421602503888826661241184353630897757608079567194893228805673602846776505638088710327606432709040438064281434186513983404582065494415148024555111392938907661217088565816121383477639902094447930213617766591843114367115757736487143487434007599312703462385619236766729254551186292219014850132143735796812658428105264591638543046370241159227513125233924010583279589434785651193530301174833799668706938161858095648419321046536905019114695907323386715751206562847981656791749570310079759294175700353719227691109456524475737008761389417803656725296682600665144223315206602507007837427068932254278318699017501798123974442772092660800573900516755935364278516664887730678666703306323056782063601357167834550176414918454165863947993279070273853388011373235008631097427741759071020088383610415522449795323309557066801505242597283611470140267429633084755617131441666607491335790200543270018280522905380284188589733605000104193570434085554835175689924140563730129049743066474104306828500443550418655441141714381331985997684953824909845123876160795304547416645304260556710170258517324992192125550557819329016955657264546368350897201774762638607396356219866351727651364176893555138937923915135092619391794699758090745442518683249572717271319865980114491503203955546799789004302724502493876073721187556435041965263115950739556430995557925862215715529227695337638939330988241059081291274899717874405787012250534977208286478838389644999465909512829254977318944905289393852558349888509744571793071270499029928666266346094002162952183197709227973661095209116297053084239988768451487893065152537199164117167709065605814079681217775031798093269782034301646302746043579708335226401976278174233446139876249573186656345615415971545681982057701429921642532226237666903272989726550053664375169475403862894341328618024996730117306354908723300533237087787052583227786718578919686106624399192969108280816865554039941731691878444020449167692716424532581582608199540309846598685100417761036032479888972434569320951761462257112604813314063689394738387072157167171150745965964627764132160624890047394430305111052840526517089204648297751770500314575105476124073647539112458943160885734418543271560010526014539971843325103532714766139216139419589178704199790984549346192518063470622842401283378044361935042790413154816088190280666709194919417393729939723348597652807776713651533593884976671328445728961893406823941129879888155611210427551979389628505014502174310505051550500894482766452656328902597160002705577664806691077713780150478920103848207968295068512616391331327943528148283055520660905768494406913880237079749114593369499625533028910577530698948105655920994194282738814832955662436340010643252683219312588330280948721306017415669600707445397524458372605214691935557077387140537241080863365856889922825089292068963204976001197544961181563949039813732108408661929033988288766012543003040255943288158544444296157676996078720198911740674750736380807116663100581207112443396231502007254155904851310147897626966753411744316457010747068205447974394294997390875652841018943114833776134467154629636799831718356274282199019120186944906763732189921656928306573644910590772575698641209021893098975824327775322886124745390696696264495699963055487802677291218364447156950104152875532453075408019140656920374888584356281572314284490963479907247969695038489749059840653664897829126866608682238116387313020603060497541701733608337071253296614511602826619381850571720895397636741135373440264293599247499584540385737504314432471788760505252122442889273664866426300553792784809826641164466996543528064019268467477076410120216504382040223527896097184163620079799720296337490423129663701011347636071265986431776702305433563189255373120937722385162436124319344158670608673277125985266262330829192951873609977447907489424752624203126619373115006279636273160808981182481638516907652157153103193283015793040301309149468668942749373713987883065271672749241579866372869464699965277152759050494267559001100768108697427191048679762770531546838080916326716910565617227335379270318318261434285308051588795858597741207707914916330328856934324703898104953097836360664798779949459366382000662997410923872082667284361505398039463020077043835727643139961578489612800105905033745862646876155400420198302137380836022543536073791336431674921614829286167939540166040054562659468343314168778210366543849498310139299968370141933191756646683549362456608505845222109315464280980909058752963449720984280691299023918624371077925551510199845102846492839574463029643729234878403871546671339423380157296947725700431969132110196157468839354808036582278319651914926169109598058209701862283292924212291296439954066178652864090447637926708467495459492107478120640446413580712061640091025251079632651506765646269663041449914678658828970985129828323411570209644482045937824700803746972023727941917506561090339555912186719395841961532660304814539445768997945842996626997270246257818014115946028955611815436206716174328270721557893994436786444061505657616912412262194232490629733168543612571322968288359426450614056520682835370579064636556275584824616577004495471798020391283997950153001767456447347773592581115461617898502218917133901482093298473766727995750397176117185285854801267897693409284301769227619109852691907584960102232164931513535222877964366718781463444787049805387102396851984646816270656056859424515282014674998348164760275586012214387425310595043562762015793175462852002075061104131266794367605936549091656555839569317933463854347645558407666348898568357819128186704474378471296523844773010134155083777812610405006977697401147835885885725142995818256802042152333246136559740001504269927026760240279963725327331648389911215008928549212495083341745324467310233231104401412934710482149316145488345570105512644558422683273901338714430185297162519588254800454981766291000510621603527057504449829914699223687536979717873513636318455744807310057415465480291683400856286121468401566580834375131370102571338345313481061024270670704761577829133494498978759345071122116935726660838443945271796488070639722882500890978080092596551653846958344337612585528014546912282534223628874567886703117275864001156488205157804233983754618768559872760174847657182403730457487670507342253912215531214757551216443068837708493698396744579063413652526206732444102600831731164648414001217618885851472600003667169372426319045477189854492139683004692905046646301144931041622649106084205555477561833561421751810921035025981514534179680984445047318727344015327563492783167330360154954092091815165513785386120548795721868006099403979969456330068172795160449652009906137919176375054897921054745812562446121680220178532240218020424620777476035118389475611747136823944558099931264712212579799137765171903456086995345288251958958445681476763679355643039285199484494271921415769722596979569773979817060216422429222016900979385400076157907024802692954813407390005539758780418821143748581325615849378949458416908305043646820602518071509507562152007653700442428038402526359090361510220270656725823975339624502337359229192661033294697003006789360058720150334385795933392090984263343049642263783701674298144862819853826973040126276416434629055091730912332146440455917096115956607478594649477228202679427191341213495400012179453295310026048690315065783447424903265107514384189784836848956131518309502694447875894977151892994920130053748715580017176913722160632158482661828515255951688929173955327944216808025572277887528096639541676789973610681944244283003164374462975775944259051740951909718527784729531423560033075268460359249559794808694499976877421050229535937612811710051975660656459111233561739709262026712932146927969061179870680490333196537983064162911275169946813970520624968296583005742723141111155405720364821869324626485664686844763203155209631491869609376171731610548256218824477757998274029157546911329606273461516229792333957412366565288776013232220732628316488347876709364224003737056791860183851434056553820660756299625361494556439836284795474555607739089138969636968315680417784341444617592124362289886083583776942696273621942026987248172530300598161645087930776742806965249001033555074479828572664965164319549134601599468451041240020782860564981916935315055084097599486793230861591097528866400374431648993093885881995312686495175530851863677236753913296661053738949747219614424535826814480155012088799026304209166053939345394489813448469369407247151627603460613249111297664840187291040723497442272103513736679037579587064867201931316029284617223748564354627631199978055849693801333674771249767856565199057688453253539765440418915430354222839438960864100388525875590614579296873083161648589095205464660353532049309676066158691756320000701735865965066907011376559215994118490549238313023533036729061087822918815034695271577357632440378747818238283015566114082597479475225170822042361914508162747042261416439288239949923582790464831272477370031487847404098604893262059072483208435825988933977087461335149829259781236442511823243323770243862047280677693463967579212366213977111891831269472666363143951436705128567941848004963817829046970027255773417910769566065103228755716461069615848944300597429375605992809023837093105875886974431144549359150069070533403175588561218212906188223659375182861773617673750693479012679182004110380539602080436156652162170626084450184230197400297583099591135966352215660824645941341445653640943666140763043123421429572988551006897019209677521223447781733406838330068948386252211939857995136223259487086163126292700172232893049421021001115655968397398141760556580488386230467871183706906957538697735909898179112787322472745199965745521757936102574888815187772428291046648367551396941610089534074783292779086622057244372144372399915139575027399802175746374418677507307142443565555330831511084282912351097945366788745515482803929941748751873364005165702567508476485197704143599156707918766560372649905263695787829065700695269988891782886999951035693495994417788600450325768758510042333485516006714401928583976134392514571623533525747596935180665936765458523408724253347316893784176713470905672025583547742025723202907956262248806358404273763046981296854287930469269728560997708963512409231007262008257762813931088208785590938026410597020057693497863765566987479535325576816272168428588100644966478758434778373415630352445832475565036817336887000975132378162530475371473452871855365348558024332297627252209102974711040851820416825200466321307041881534784698909375057937434510307404384379700250215445618473324506067950340398778207557641581549954224238381788220196561712464828593602276613631955843727222251177938002212811185204818249136076229953203458642481865075188925022841776553818481931910778043355164739348180633757719282730709037901437534979047003954071518671516634040865857396882566196732258163317100876771290288440583162976694587113829584988469067239963440175809263939751408032037129430933810616764408316068399811366139685663315877455003208859704944600797370474351779914230154584497178547443278930840728509871740570867449816769590403861956596297619467472631702692015727527653323413017170387171251034946506955766874614341107085371897250811670577257326052733334253897152341018853747911365627259496796522616359904054893825842403223613258449014838780378411587603063684832930720444550043607369529527543649804999600046666767057143361419630513964446593425309361150894307020942434992909464653076194799375620654299779018182757772839787837684200982556974407695770952589887573688228521782829051076205777940749906515903893257490365414084297569299019070746435837604148800945519563631735310633718242553525612679663331468140069538052498316929283345691170429966163059192772747984594574037178632662653950396944346286591734198917648285314694288430525434392009973052872446935849906386956104798071677010200412961570679272873226476015248454644828859757497828777924362679749490866660500058059061469055662635285232075364166581632751354305012267123744726781608412337846936938045121556846419076712618983963814556577553028459656375784085353017180057672192828941866089466308743875783719657645380704939816760631314687320341856898037952340152158992910560335142720340916574059860573393459797932831127468715043797752881446295161938389363322795714185360548418855639386077703911556097352878454972628165090378144570893432701971077864045293907216237972165657362249700408798175858268069667929776474188611500820123896573302935958970400344195885440784088723034634120725652878240585398440685098938344771566086391735962848932221231000629442397203402991828476104875580764442391573601542335892667515085123509988153126728217568992134894960364470057656016412524331728664217037157001077288618976040483044559844721442537251297915030234707195025123075387472483691446256175074275647082980283390871046927252981501436306233335299287335646043464578258382265770915197704595195597670081825161989064306898502005055993701053094427509845898344471770226082676653875593604493458803489974779857491179084094621147175502882693194915211167733339995026512865414114888516098001128850855039305150426125846625605937394394173525809703361080420210919997339865457664228058770064167107112225510833111092670799023039390898634831904634407108055330812405666751014915970664787824299300191689389058326067431780326808936332965926990807972745997012927645310249679133653406589119219841233130054295035385626731145749226681281030048919935501538875011123704838827880582061543596227191020680963567145183296316021882475647768969797049130318389692841430023866883907934394035622381141732930121885516359949562916016141027580026241724224216110354725040817327962445153652264225931704844012843681195027710912001766513721674407703541507262644059306987577855834608327035473435991177801987061223523368727234188790260996003878781708376457674299532447997809814755444148987943000008779079260369314365976959911742568919030086436401617654887680117001511929696870478241117426016328152906937491662593231245343554761463286755169808912669138627908473129796072742021446423808840199989512350437588958338629006655619790418790972623233836885042602216459868247106688322774043231482078829349261725475258112246085779447755357840920963652113636511487342955290214832291181100411025780865963349496425723274088814711184076473177807348107753916942381184513333560372113136051626589289846024236325833155086150839405206791486685403829657949081074391311541279920604419379923191191869225622292343219095474537940848193957247322940816618940110796178018778214093740018475342539462431770214027648835175040943709938062866213609397850853398468447189954717699966532230877306258247039174420387905461816812226142696118619308890611483276023123348809062590972957966933514510698307218454120405551369801886540848300892634961562158374202658575209600693453591758874961033255754648341053091021562302650956339367516728554675477964169694073529838286175340535715555212624013114070659987763217221773911201604186900627012762364978043353480649791664719556726471910565294231584701335568300032021807669767567698854106191233227949510121880112149895929580027521761032355390815364579931886844327039995985432950165288946783730993268576221880364012328339369681794455223552069907895715840830617524977425512264616432429830256486931794099893584396773538374083796684124265919969208495569471356968871389498279477488988655138489512559493045541795522105892470320224172104398235828545393126848222062136967665223382066662648067387899804934033823540148923189018118010180453828635580686351370898946935434927448339915897173484197240531213141878550667419547476415633560812714818468853728596590087322547251912511974023893067657894936789178075496401634959894249049137047897559347552148832975441784391766442037532002705181515020882081666790378680605497196401614657819499010852728745228740749540647432041445924452693169179369303778377756262836284290440465659717347626222226466477122677261351756415401806052012890698377056696809076208874293334929165941133707862373301801357755199933444019658097082369285305570682419639467169829585612926021687429531504749773636076401294716576454084703508766044070103442675877613239930672038675094679758796547502951203696309212026783792169679241322278802282643889251495420287788525116218559882589614350777340784088703084361854549708673677754466374945361379948415429073678221937210370645958587348313415509240724222079661936637437069302926330972907179378578274737266336872858941012357307693609209121835860639824840926781411967381812438041853597826791904828864098998911731620161765496267685675364733064491479743384047724911129531058016012189449875629671264783708692999448888231024992388788010073486152033553603211854685449416089445357309672052296590038989386534952442610709206022364005743327760863231318088087733200446842113009308382587911443953869326719954582988410143969027351055816628760264597048770803383830901068750236448980138779971117563003529172155680811017736112819201267129853975374459745041346538237498487002094950109465549262521650331761188205593031978003511190756125089892021669058245524463548788624108769790263066652166993740475451888619786599023386986973235300147804581687617347070374721668484111278503787324903322438057057296747136429920757460917385315275053083929799315983671147568036343953895605773316832749984068540264114783989450422243072282531087416478558007658491035961826031155453209371077063342411542839701056339613437042299041122087363895850670602810549987680343953380240869949872609472963970426094348216217725996136097474153202060348274382376920407021294772204355626653194690654292051527455743132502356844670773969952545766134276924172688645828135944053032011131000871175846976303132842877003891340715836384138340278150307398895536390279515382595153829770624624388214492843993967004995622031071041007645534348767705965367959178964600238476361559455850474687685644166418331165477265726803255155508867792608088832121861086824314845906168958521391994584090769355230192198298179394231984118803618179998217617639088723875145054012364257027256926989419210530167506179588697738227018627916911792889115060435742464307437552028347081681626786513418003742860838782610157995339717461378230206775151045451991936342805472926856796911197339964384031290270337284074521686048242675132497308542543898030575880811100423948219909940206079455094713364201168863967570688762527448715170202210349132369104585553612568643730880053547015882196117625580135208299893812885260311136051319322148390992828989472309020357903203138584016589875760939632285412540408141969185164073365492948535212752967466536018902421734421881197823832562424226991286681827581321456717700990520892981787550724750676888203340413979729621219885296569169155493091777403369273332770571130831151313421014420667046917978005364862185304323510135780982816048692925984607727477492180089825407112659278407391909177021374181464604967405777533807949237499844582263323593006297698287572031966605152110485736675341646770368489509385913388048524236337471974308382269191882988749701385639837470970468546516369330586955376238589808804513765188106377192898381397184864198734616221501578350936159334251493444081236916726535330949737716537690150651601540717992233558298807222365638450563745041658776786963069336293782905787474629055388296577798264351108961078236791296873555856960580496162638122775848768459251075527255503378475092897831770934727206110405312079447032739425431449967872326082077588840240006626157316327098362043868371430813444953656410522377383249973342569228906163887678585075083460225565236700363283643102462914805449659850814135616070739924790542826614427268068869065312326026602632475867182816949391833049175283120484014015110306165945741246169115755137681340900763110155735587226680701003043530960523904872799988821062648086260830555571990351236750448089044440221124153760864996169259195478966286306512924823027336606903730503681616704663456059260827810401850191633246035482606487041923613996935153946012498485760207181636639667835353479091849900307042226038097964421335826838730838823423875124521937921752340259143588634769343245908916140113024557328058329324309533375378097379136357933592607860997762815823611264634788665587883341659736453423562625832840646719462692862915702491913371850739861754821508742137228229917243763662537820976053488378478618713054812537739141982235202746344042045273775723624710401985671726928214345224644277445978097144587571897990271528152968424483686732007737634486625442449876850663447415881590170115588420347955942549125122470662841337198450776429468441631440174777119551424169843021901377191103546111438051778829021141937874717870303968877714156470020408011380318651112066300487456082261225618015365904948490271292435743442684864776140947645981808306473373564767541162635221231694280658089803345683661610367371619791353419777490637229423115834624256087270660738127060004606264674025561800259984530161880970925405560820695916311980208245765694218985807326588499019744243757730100860358207046547040129541678847017703675459919342988051593067404624397282730583897536602256937360098349092905174447053524353350816363651328814874557254230156652398460248685322071635705322298202572189427576699673352029357699579935830910673976827827413346653014915452862786501015629533410093115069182127576930874539620693787931711820055222453047050740292800709389929186617814294783740828524885422375701292152380272411723632668572436952990127292992024803574604584332582681400183788609277265304419653725480515200758457900534726263854422992444125734133982568250062441649922449609263314709530239481981952160869865257354724580314248632178134106647793823141151523725249924092741627071424652898793833651459237544965509544750327177177153135144646533088174209979890885479099264031155219538117867147609622267826399988045120108894852757090445153152490876602625395551010340830980620455429119967073826856137184136420479637771405496333207110242904490561264406960029314858695189318777106131916318987151697182829021720604973764644565633193395636433352616781377899790208837364152572865458961766173491851032631537618294340959588658362864777851568030117241576948934202705942190704679133352179941711939775110192539577567127611917301880978259202134043871601617210101485557562758276623317284384573451649237351771530767382858635535838701776167043013051972548283398556110495459723379591489850222790850383901978523969792427508461704596892859321960538488305987965802051138130932997927620316706155756927811243614676252653374706427841814621125504170511007523756438753931006139447493518490808723213419505620356938883764241553855301601125657714800212559777815555527550789852385207300072223338664846417518052713764540694773815528211334851549825935862239818619720561463173246365963063330166855801963202366538254142530849891194771541054164437672330850519609852901084661974245861709615018663733826674446861485779794697055556896442850829930287937867610363141663894338683114522072282692089387052538942266813775458823774167883296030262580972086523944740451418610555766664750002135330331586551997605961208891660197970046582255860443790871530814540319747188777877455285699354524845581068434954175718009828738988523372034345090474688206798020315957803633869015215582255082312360818856061330020590287268663668331339817211851860616694834573074737735952238577292555683313309270012669432015826098157147877599987714678100296779431981783411347975659573083993029152177560336606435756468077394911822695291027127574852541726491730481644822399807246251043130840579924622610815751773647976522660250094446648408256891129506701679045065598457098551196925722649953772612768396145903542200269034558523440707296959263163823371859894664224104776306828709943134443558386964141736384004129994560906057382945049676525755149147343512441699601938555728802299596266382015741991663896237277264334995615894449645858317129162429756008125154696907301795902575239020544662010955935815782282192379073529258678260037033756604956077742866028387994505506895001052763841707788605039787409411591014262713777371145045097066332178087705766592619803089982325347146771904863597894532271597476424843879237853389940754955472806232535277869423906820527963416092429808633540555491894457713075708696910164276089772687103590927612097648618276173669408257767723325324990304494066044161675040715590059828120410619398735963394445180718796740873503835207169169208937514948440648022668923539858728987099440844870215512574592431506314740429532577855419057673152105095989861069127442535792048519075450630483627674659718093363304264904988178957594686459935925106668467368065424034912505973531287340389055430753338207630991176216495745075387439130445626972946707591644928774793576035951830479280012120535002426730119048727400536429543412266103067170476496408820497480906027030036749964068003183457389261017387391115449265334413824276974730278444955188608698817373134260404432179551623004141283717062482916853043304401442467737723052248461282368582921135078457228907614212381200064521111777080460704612207999701163892074453064686511889751596701197792068030307505567625981461107602313802662681865434073908665428504307822658752520241976096047916102245752299763096046615001734387143143157849742903956654255239090801590068141312873761912019697678667241309555568369502633432306034710947904799546245430997745653315396789226260769622836661818534024467005088097927076802206583303214436712961466339986046526183639354118763690491593392182110258700368570312756243447441074752747296791962452164555148041579685768390159632396593771789074332627918495192334305423940174655389468848767499429113822789908651770482203419086398327586683244392912442648870407443396440596201994134685944138426325289179436176145171028570275620997692662136054425002307293843808248921978123500544173215794614407950251641652273785839608562476078504773992661092222656401041177211716607148112946786706879012974674105673434141693403700040759771724378581106023519988000633576218210256510069729115919893986920762664321724357341531740509209304051697209537116622498841460452619536437719062089166304697419669988849860074906049503450315713192716247719369994502708165080502241811983035810954789174924669486308107858638508157110964828019794310735387090501789756971636265976701954920985904248499178471021041369036517573513246150295601447073999606038879426192072413472846243433748012464577388058323940497817502600462945806139368793773235892360462360305107677302316710645366380017858631442238609583697185835278314425325684336851255296107920485288386978099446393922766463735334006114361467010615368041451410302406666405888212518072782481602750708239128484054951354988143505531247630529313692605159222653626931580391158066814335245811103255800024599614899419752179063237252065473217363050460246174412974426509462979313109991456111590148323497479577200967041318309111492358840613778083586724366867869257642569732539508383738342569690565770399016198390960381120832292318767374879813708518556907166762843061997502289804897266925097144759573698936958392693238151299445569095391313349786547805675905820660150313054116631085947452580315257643822188424992027574415934030728133531065955483436883387780108247004633817045438743293465687686455155935711132375631654451461644723024434487501539490392397037341991059421719552511710732002864162790982959101256692596878189748742210061732314613470005996723637222686265163552086305174404468182964127297137745203524189552253782586344221867205548471582401790214494442845984739569165175266796693340833637989258358750233410779932344186578839563437512911146400117553442478311429329535953120088036360748131267688027187727177423187008816081950261417229769356652585801789511908979990978487346729151106684317996181554851953221718316031791522884558780012953333708211638579184429689593518928767699230317166802506728830357557594461935293040398061463409571460447043647844939176019568990174765211101644700770930282396642256077073573111541370501269259817564602180726209017428765805188958138224265165424216167346564276132489750796814974091219935257472160566707616532114675949315648075823601267806692767944265281220813218765528408231484897580547033030349671979555681623839453779222656014651479954974378501677816492475423606054363017515056255907245927460760015041627299739079896085737933213585379573405151660503999908483132614056799156651496802259663357823823840685322956819829189633647886365639810754142264452341844057958288408264277301423659989105368198872871991769897944075451422304674838910412596150344698088706367725713276674550741192816261403771883185882682647624492313513351429192574661610219162803392362702654549225115961358253000277141342430464716589814742746751964033552990490130825866298124540704282905278623413752390995787455876987249871913755117503638503911893370398038942346336423427317485017485528214045945490048980781476521027024591883295086258297879071414508536844835928201209617827222049872828386152033756537190593832794801001358069361916687317629202644833352626819701280877098932330227951344537923633098637334574282952405398351690374198012298989374144599489176238901573209879587518285553536153679961706038617183200181313197372782433811639643043784107514491076864929704158452877156499025373106564789106403283739271631118762693219366860956193744546002801844963780236657773801245116889660087229318072647967849170059734712904717129872048127223318206507301479946488097073464223577813745921005370560548884218446254735810127695027965771075161248224891648517678176529226636040631124620469574372824140124080737309805812083402193680959167419337236510764510866263324130891523915199534183666830332867675980621404655496618347670380572963420065665002689578785563080876169742630233357802028141515313536003579616300347765469378936358059346133326712672978442795421816700388569530234135763792833346571324184491927400485474552791292282483965841567344889134666738951585502678963839884485280751955663278077340860091340145546568069007591544080354555095350168879911866700167107951694421175113069881131330053312252309010050679500646013071512910848951753635832476105813463169777639987924498769461706915216704666745059164271145912646329199196932174065923610253999785702213721156076167471996376962947756328746777564547936360059775808597777082819730764024212771325781190252986828265355979067447536891449230038401011896580347867551602335937281855065724274926402916032292745666265778672318117950621992246861677417180051398863927696065288230137223573514942600920647996037599954528943007751614326000007114952517086428351282758209790655830751905740833523625187630744461405826815491670218750187901545487468692671542187821352696768860969009684922392177482540058681187415704523345822504582406221023280016578411636477316523316411675313797320814861023639480410111350902846992877169757134237321647963051936595184320108842398903901763315995738791416231141864734833489376489832526677306868915324763082387985366512158617657746073648234830905773794538487221160325680474417661264700656941154772421986741948233816445838822244605609091181369258020697611643638509355720154200785279656294540156336988532887728920101108576138061096744503390708081839203297604575635975812140472154215800023943967856204142755252884877006398778011402366957898398415818075268258194988424559222397351541385727673730302642006601097222007983907069493320954487630708339776045807675650312047123232983118422756057931082271400012207424843378263989873659445626931146561102592693087631540814886526223765477095239347948246433017934986812057612138776803068514118557496842831876841965403863046135847918724909027928578847199590508658517717859164748851716403410837559524691282300768481934735001978259830615353958985040368969957009936205437031070614716155433085572335405124902171039694089523028941988366502488124152620967855335966947363963152261986854174779935499762212525922025646960651462136967644533978504406684087781701818191456816116930765496369310228058980510585054038085596197042125094459521958133292927466130412506116434439528085817580160434603242200813454867418586419308961809739203751034104122829762783932953007453115362478475760780735196753440507452561554626157074891429656311427624245237828945936175363468635617915151969478627043988178030710255989147602347793466113384877737846504297853826029761054149819213777819085443304723760541594735422746623730968884388041329747621702919522058682665525549815162813605130720847580444353323858832823383298339197368545578627577988772618112558720730686883661110669088493442813061004843291442423360764004586960300958497128999417685737140873968484367222558255727808045786655123299420013916661971246290607350891865563466305854672301987230539724952460276201021299107604876117633767664705373573106438850868024702343487020621636523314497578676722720958961063624876941685099279267997546858285088477750799700869260450496058141254235567226959499757979082853120483259494839559515837783434268996346441237310822434599937035555486938692831738930934593185387107427877901659036401453653099787646353553526626960492642469806355098499736542862890931118589324091684803779224654705479319448701825219082644565285410565555097239112577137647120391946652108034353854044926053245248993288267677966507763860053943311560132322138610430163251350845713793041390825658373854277497416364766581012925403631439465406248192999299318983725975454230240967279457834287521156078287560557530210414380656296273233605971108446107876991196743525038335515736821875605639825302624879324412060371113770104641169915530003367712072267613502080560536475684656028191076738054737043834411730451816528013688984409722230786840508396316503890346946012852935285278803008576626759259289533326593449757864868389797444308137679588060434044903969336280099492654242728586604403872953233076317430560715844333097944269579524547884198158271185179108201599668169015009461188959471784946189272948814782896879586983786144816295054491853908554494343665720480334571786539907617424090499491576208846210237326219107366621375009044425493169107245677400151731421365557867921426047772450964003207676726936264605637437440427557192475269444917011655895218966136593711172927041571414331301628214678589241271296558708278745140651239238421902749550816057468860626011492003364419766200431139353398434789826066722526494889214909891678577542000290603204905454983939441387762265795072625819364967626405080906821304168815432850170955890882989013757550152630512886200704974927924484278199844670962985472311334730038919718589547825303023440634418739773239042279910957529350273930344447051703366981750655719420668934743663578628618914881802295220264654677434944761082380362986329400916681163715916023144164580028463644287486421943681790857924486151211527858937843465025057140813042613002555823039245712204458305354858457619917577843869498349051552776045103281972315499899980475383200034256442087998274180535725038730909270345216406883187771059308733818774503555166535237781140126903102129252229722629978739581458553729701270582715232389838958808441771259300059949102176388637013400743209133933848313615606919588646123035613684499931542746042625361003007176737912478324901372548643847123141643579250417230289815694940398457648027904880740307476021378056972044862651473907919844888125104196643000730322346701765723910357624265305674308573760280511847251925220596270690090733553409422871936739733687820841549789154401956495344781518338846094148845666701053463706031387085425627248903404697225906911887178039000678070379063351324955159345093378459264463171913870277246692821789004183654298844382339632371390179314607636426988302854325089942551042592700088612068165448708373617669647191006498140245724601147597046214660422703503621167597173462169644872204617912626410540144542409462016637572186425836223966653514091404955458006704969947739473174260709593217755289323773138710605148133962148223817412495838759553864865457742689767727563754516034301163438211712543624970384872632518934544227982097361611241399583033004958851580704098087960230321161251013106999031260985627914739373762387330177649006084280008310027112179794177596207513436229861837232896861147493670645862187426353358461484640061854502831423340646161695732149139847791580377987499606020928573174051706154390500027621318287294044364161002453638224585061793925588930753625269883802439958900847079626002625710897889749697160809724963515851974333503660743938347930826588952502421937061174685881059643049858812102839588815637736357257810799424181005358255225466005864150206835155878772240615257678189438027009151431353377192132349727106598633931166752072070547839815427940240434192301626604617383886700265302154628512420560421113556976772870926377943707043834562245009725362273032564205054611556850237468091404271655994906729171999876376548321592122806943847882871763486097662366795271129955831004776198758773069617471429356187466534949544395907761133236208545675042889879633370201229922459478103833227313443828694960102742056713175349744740964013847822285384989388120713007409256021224110024320270437946621434896479523360414599227638614122492610235747378818869342701934509602670252438491022674129254794918890903756776726656530972164472741298028700583260364925379187305226816646541429491682244632388142186221824002908418924412523095806440988284250003228824264011907722090740344809269380584281894993441174285944401782838871682367934904698876288178069970794207838557211930457700798350172333899607500502968965300177876777240712411475725808947424084822515384095619975245771820443005316525170603878226769551875731293659185124340070590416977732795922268238293762420510926929974245854385604835188186637165520177142757959138436662122832410554846033332201241489576433844363496749401506340174733812550582487703726582006252992159488698249703916922535954117606256588599989689352828474939143345959136089502805418998731555482902340106598101631877561641227460058150920072347354929730195109595516607414099533284284037448289085666932741730187769770864804809836759245999170029814178717226877608996004399418398155677197409328873498360586824168120338991768699471205954501373197105850513476798500878068652771940701358166316242238238594845815700152120648640971640368379319372824929403612096545253270582328000739193328063043656662630738166481077456656160913964957593780957009133787444093864938843391740124207718721333976968333727614396846842160216850951279082521301790816458591079476617258197421544434804543051519473971353650190286083780056875946168785139884966770101004357622678477138032090824643712551935524470272975543433528120697751940757635223763840349010481014275956920360324609869340773768979767212341431550191447799249469698039693031630352132850653049670551070784533481986441761563170395063269007832701444090989449462980742004604770911320039953257114485535534162007083109523541652761068114004177637820232884090735487860291136728996740223434211190596415482751336740104348648669402238686552018607271345449393757813084918393096947903260014455741927097746533907791645301308088220062114850758727214961688988777438791640131422315517587624588670480182810368997977119777353803248827420227799772144021071603806561277180386454782668334365630957991674714233206226791580120325769715422133120685788087675071825063053823676555744992797573815058266677338579943856283535563138041026789504432342792749296466873974803554301482656273700352882601208763626050713869210958068720545571495905286185235415756878798292149114626480272632075564510628892195715948264373325794371590377833114328440514748528614052971839550914105416572456594591781867482660974791488285865737893602750668501564902519320770977874690318443068246084170236706686594630102000917406165808083105962979469207724288763136783355678557577412085750047718878996761247171140565449198320228243404923036242981582791887027944903280201860644094646327220316635383803210180260280023159065526053514900747854859118013271538921051441949867402816166828695936097494575282306014867121977013031667922719921133561871456468291331153721361230804860803280259840243167777879281684473620433924984334589311540190673712563786232605485540547143777399913738909177015049446200854751889365346045158437405963434199295493137965894538560425647643152406910342118926789597163460459037403638221965705701479929048671003586668384886878197136640436530926024571364370678835378673334517988978486083172783712911050195584954434396350117189896021255458222477733487585759800459065374949462196767704552348753115346206287205071835260467235931112926772316061585278531677400360239931810446040996847788719607102307905391938615969571909858670281395036449995391520502704498256460264764373122018475733833799883974169218324596809010126634213044136959327565672230371362048644421273243805689546915031359538250339743491524513483089257825166940887813288872397698568599037974868689357013952635002841950733102023799010769154276866264592532705470351468420380244743351163061090662568760259966697538280669628174405232350829912928272851034224866014247455387097295841314615783182098213605052999312045410471317861421940687318272718153747186665927517118981605742256605443955796935792738151857264590677985736514150885078650367534969931554069316974884515507794182027299648083464690768741937108964416249971103799579702816415168936333336040201422029755169793665270913837273363907813137564101166833608388560653931164087079076804993626202406800295345368983555516724552203268785617817531843158260121838482466588496544145560321710168367286860387807323455304893274791877266524099222183224415618705183744804083700721075764602130814774417129842325283164887122078262194762262298020675876542325195742129266067112354772887392165436319969074404311422461750502209834655535230865042699956104818269363921618360564584433537334850156205187170373257338062268092547537746972086769133727314002427588136676272839022608698842269985497416791466043321116341555595373072097187663416890296170943274473092091071447920144544178248221281791397891398319775490303912729387598475447878376512255950961432699387623740798186950177406758783835353189586904491566655696920275899192995863012059241323833896153113101530307074028523225492540963346814935100244276240915327950111535161889459817233232808920187357358744456704791597922859193576833677347919089815848362328286924657815855021266558834016467272987489798236259629330728229302974953979760788098533283106062919950590960469561960510239529720028514557711214472434057202452911547942567158096988111119594550490571186123382891312620124102106098239266448443439480957472001162014643590748573824410196060103550667277044778846129027814054116457758871203169383322665953843136774878130025310952093491873328068385696240059990676546680548585180878640224631564635670999834451552054336441405750786725296922297526211690159356959291420434636033636971032902096745392135209186267325302727404398252086821401068660549392689739857554609128421842220640316114179895961207569668771786668181531148116679308841680893294994082110334092536795184426554911361657681162268040946194472524293841943106056789754414344736386878380988111486784916205356477347143552280459748453940255724361242981553842799216340351251248574964379366547876023024504588019748832300226765022793202442214916137544465889032068155978949549075740374696257389049084257292936750412998382165943431005465937518843482342412596860210237972352114570003544188354694126498688408119073826974021577078150284677186510154817325589079236036110043864257269236233438995486037354809219482318864856764409945686521872558221738919590317978180043582622514726284833915559283665067131454921550421300124912734560476356311779091458285818172282952146934201774644584164294933452536874996129874388047848446244489871589667378925225198380061336314787604664131398266408866146469174143693197323220165704588876333359370475836560249565618546533827982532456813787690647765284671266459795115248548396390594226285800434716197371817948907008692197881560533674049838531899130183974804673720346785749741400637170224955743252384159648931897858918192867562890349805932499086053164650302556004876457407998680044911683549040553044224173551871991770290663237314344019606379775199008555989130320237352106173835999706999287416539313834311316233294129285710842915193573723532356573226690190708386107188078952819338541666685302736421975911928858292994220255054686384992710132966262522026715911438009753540486624244164603538690267306823680750909615784145426555211339165183271872208397790980971661527553706828383065837450818662291472255942695607851033576494861271810865548406743375208694984965235162918794996213698272207926089829936824947057938444367915294203799313809606759992552496038327248515965391997566684552213139401078851799728102613080435864862771234795834441120013696154287505570027890435057086774489831821200099615698145858218024279378374682279670532059038941452851116722577883675608722778492480482149810389453641484574476276254997792238382469265011859782187591497279368716604841982271148430606333589727713466987785963171976460616323039789674725921521147053809753552023619074466904601916048877867222670006952876399651044438132365686172917240938917432906563848511299432013054096187019967856818497943529008283170238072153960901504388668419595790263094086737411899149592718238990610064377647376686378379218480466416341186111687795945212725802078545566932419119645311676548341392715952056779016473109967067782318267188357502511245645288451840029214445830642332401194600349309315157901604579845497142289363562796003494682314824871113986123976441504579934933252226372061447696193334448861179394944830420776082020076444919148969016039222332609774462556444324074108238590454105332614722663981507717464441474920655882027490609363126446018274229699619265584131402068693009913883170322098085753939909381667580369493361769683076442389544866339696279396049388176136868774318415956383395988642530253532791297309530467273155545678198092766710168987812542980529179437689125038918166974389568585525998710177693897860866848696949260931089741154225014764117352803089416375998995401342189680377184880073130104221261679032869734112442578202481720576440941045030554304227673621901639953058232124517858325273936360920217191066164229017889402548432337845521047437893276617528022957424428899080356735580053320501487215359884774397248464057081899497189677498084816907830549578051174256697907665520510137756835793019104237199485860067186708812718357022606396878955292718313193155509261937305653883105203452472271481041425291188182116702037437372875102840520152107836182211791972765316632059909994312144892145413258047473891748847193309626776085296719856838003118503310501530516980641944919348991203476286425877410450262732183494455638933899917584928092474148262345061560027524148743352079745685442751207439978576788188773554228039550343842489113559148363311576887024356862737021844674485170222212746691485999787624398567778312528808124381221904537803901945315461186103577868262392015289960503157652101231987591261940306387602493296945264473491495774871957295889753578943799891156082237564063629602187604839741325876052356637262920971409090942904934411149741181103178651880234505242636843128677191046928906150077999868506411943854619540571036129705301856416488898352911383557630549471179970449013669131205015283320825911279389235586080847767428953886700087485764755881242093490641777074765265448211919648575530324489678431513255948547403483071475875706201495633855731879009585050933516976327315019439218739942138308697996226637304583540049649780818274090261219687214202687903310656801771117466329367589684461561404004803930702374914595806643908145083162254345136383668213833764634585181356038841899302647862721321102536492457516753905928014201108889354946350805426038431350191497571436090567321226085816684358583689930625870510141612977313506046332465770849711547541801110825250631719548193297014601297876072785455117412833720184637282725744773426259406894751260973081027726754618857209443506643741554608259308760561335468614759279553202906317956828358511846202610739815615348219240626406589899066839400776112458140645314295479298649328000717472652315465755396328712685021077556459085011606327343738904050184651351802177831909011925048781678578397453609481765324584461541888158711904090377916957288013691977453432883770224448596692359229947826039162895825244544235204049501733933403172781119220036432176228633616564423224970290822367254486791929615195729406066747524731112206173836703654548652927951412667328879530132131100686429524286445536115757767742105164186567655430973705602500426945629327051344244555468239616051289403275040558970393830273393382450872354668525263942393743059576567348855680455685560808954615844804964007254270809530762159980796860701889617686147151459665048038176102502049211790466533069248740213773266306292119203445638094494189060848797074644153420143441954523645083439690634366148980927111456469919743941742905032741675309498394247873172269700877361671559924389777535815670707477206143606560914244049769480789836543047634442189903823954656744685159138951578654733604188222294768234636833100134394664849269994856572676336248090987881699866859706083239424857635387353454110711457016808144742630163793104802275906701119768725779061875139333952913282310976647658264582098197969127736326101001325541091316278467927938663801568343475407975806553444413310066796475746156889812978162066888996939710517740436308568584123484275954973334123736416709119962128748680048616534605981662713705818972269588901967961319719668788909401661890607610736400079928352918998633630586192934331057481847182381677977296889828675699256752792237850051440143186959801223360777353430905169830234581592248103766399994730550586305619064236786521874789413602186170973345095161998531187501254685179214526313349238637934039397148342664229781364736356355748665745183404242095184854863344907298145802448346394879743374367045615275499601020777411176552733446876586870280840687064495045793911702342751853596549255111929857024505006045237304542460012345763202420767856803360157616982960234358884226229583701343447983038563118475901325134589818520058661040777492277663162109109690279814132554980381474069699586533533351140181768008478863024409624771884768828403321166801033990478963035924572962922147983784623340945726976672959722844504989029259405907826466288194383012416325698430122670909286116604334679354602571318966240192307668846016813502684188872009131540427132299724530810128182556165536452541458839897554739374942021988942056086158304488687619168902223791921657750570651327584768141608008192656591768233880020286756649151703962426696770657055455082740438478689488506969517683128842354003228508845508783077894555005301335553732870254076824309617970874010191521032172576049010195698328059973073462354205333119790172055831291168472422132551029316963846601556581825775819743489227681597220973860764409332180052005658206077637673171171422935155555404686645734039042349920718415217018089480755125659039404761806447995815177944145759889002565205522898759990073340917020268739445072591049969877538800403579490948788371970675749886675645104061174898912409068265719505644575095894623147222412437983421455256997138532491200069382185316951793308793074022675934418189074899094019857845984345669229498382683252076451708027439782768084101252342126432196572522361461251666792867444341138579594312332108807875588816518362672319319636036422720095731988354367567118411265248515412238689338064201237955355892424446598108796235351991777031486880555939637487171798014042009069794763377484713426475912055080811977257719494894607627451757944107982016770056117551033005270949376557280247766645211550769042283588045950277064135853871347021146746534475782433955718444026154208029539392295151727901015436857185432765762545838882385435103447996692821377286835175328029888408319179601458065022322764166753888116719929638248771454897197874204485603129962993090765822723110987756055810003730367913352780931309266514139010556578539202679199673682043254525040720193317723448530225768263331757411816570777543546519273748409341070251924854226020740030849587342599268501533793392223635374460427423794995695620570313347007620759636644807510793055697335722686470899408776992796772243495614218399581347839679618684757146623234012751120174731423246699810427799912817849685665114315031249980481059107385282392508414887560901192053742437666893527616945298302309137360818437380220986207327397911648877473761617936623983432671711482981954906329992969007264637261753500404060780114498286598719338519220316342448921679853615720422926216621166175997467882234857180656089802326693051586499103498849448643451187907728929785040918012558319697792768871347151887358278103720691193469827151746771654789925583632087049832157056287127090538276012873216795019045774324701459150496675587773882801443128149874559628607876471832635499306559503731964469348095080678958902162630192910640202591374947013062614522942180469416276105404473081682853303084358204076301405463583648230207726922151453102150942912357263171555205826063099798217120920615723119078954534045180402157936279855354670775546662605220655974098416866245395406971849023972630571271235568267237407954206031352093812903370919594039936717454949584750774272631470291988519678535365156337159651051575206887652747470166645856679783692000860952148101683161445405787029889027846978810346383068471995621616568137449608103244811433038033938411556293991182271535852747111004807303858249050364345324700727826735156914444393882867590561544787628634359238634431551132401571160441654226068598936394033461388737404179447238853051569384692821912325765204363979468128526076373012489147805571782948872315939597073686127740879748933256356678433790886690866097916836754731524689571311477593207912651983083504450854729675459278972203076882807685670397167965900836404762663890530943394095991399959043103979664444196317638089379052758713347445480902386436444737457779885565913155455858987001038980540812815333641859399496050469173111830835279314553988600602226615752259527990346735352114261352631364559658770844788323675088124345205397884181909660586733633539480361106495937038591094610716773954788605989814324011103404647485893178938183713130827009891312264876977823744487619805226789719061670936271483817603300428877034581999291139785403353890138996188240315505048913344701292945787613985185737145635900974470335226096096637759377118639907662342835024060453583221107209269259063844058188958195843171591306102361668174123237120591951464550844756707410485550525091371564445029825152196270472020646384127957801648836618154580601272292662371015094324851616959326013769625647691205407616237719796940083145704121153980131625373835267583195046538655880610512074861922730822495738666492611284691094306513842206625709186863927492747172039269128227717873790133718741408031348264892414344956450740720418468711678779273286937486639700012567601165497407232364618000707442094052653059787432027821991711874728653109734541036483634124333417678053251579643193919166134064840290955644641967460767592454410313045506272865251375447075134974013956949983882217358339543993584087513590489361683236928488624959748410508152398383755511390452251972774616788414333193413462146929238559318529656694465873777411976800071297238129843161393813004437301540517915624350700890085082512312142780471275558842935751013362039905102343394418343436845589978473312528479788432486815085966998925423478237624737945436839589478403791884389622283815811591687206290048241672234405512395212629603225467568089242197347890055439668415786779543599807323410257549466278563987001357273432685269933730790881278345939078968081738396871998883558977355943273044640250091949222525841885182570044022097106381193101206968782188124321199254427242819654551223050699329913584810147323241004493715459358852131165909675287156850630628573008561043073016176302896098069837186268742965747311672896046741804750759751184680066018745338946336185633813439809341743886510728520036466821820888397876170490508053152320370471861668266077731839990525592300105332814499786460540796108051571566019579446292834468331911232413645491066404670454096437429082318091754995446820324871209758095348664916929134777501911478083348957635484667197992230571259531773047977910220117294275071738804987699302866048972865166134992999328358323703005775186467507823438581463595425784565989989686749907403398202286347143583533294881704536853428629911545172781063995036286105461660633781965968057026006617971779904175813308505232514622135049640646013095161864906670505861073687768946527132694868418315995248295013943779840240263204618342693539180056785913158254516197826724940224390430746048061131165074772337106397723170836190206203610645541218897297109906812453567787273053424210374736078993546684262917330542246426423114151956907763101106172061587206563466601884991227120565976387955363651041139059293840896623987008397772752610736173450055920746851286115222786123213935954988488286510500225742144471295218812585509033757477174536758141246431166333270264890531669337392466879473568795429463448217842080990297186297792755401793316917768209424559295373775445746198214052153538085333337582200036100271011859388754721629951121677304192595214046298169400369262497171307539130761756780066357569655339583206132104539728368368012127365380705613497635019662109236610986247345827056429002674598863565836688829799843598341523746662946712705526459249093027005700509740670199397517446690509565734110287690300791170951711000798078719220698311062728682821295033335051734279098585914722387876523696470915696556922608277831465883826805691507694472725913496344616137467911133082889718871061179388689142368666197534032647915893974913406073452178824812327696750112228925783423741944966750949344760678059288591488748283846720670655947923960103491832221179102186459412388258826122048056837814953081479692863810343214737506071242251977703230815071157073039704670045843328957639687740245733589734206343866411693037436077008049093219616440482935733096461694892319255926045190866434399991292507753886920892153423160446200778347054913531117419458593956322320008795395999205090661713456981260567430991884999431869653990309597698030081225550974138237418396794463141620883106876033207573314411575776721307079128629519620768431342000836650429273439672005755199267797291759343451175402451059577222158428482884188447049737866362316453598544189614440220687552670983083506683668717591436091077488713349151643632492392026391125504328509885429352205227536122790957592278753857202331564346722091712879185849879058454115715819668454662939700872121953819915463960946159821273296329005776929953297737270322869669356583245433084747974598498480108500752901491550755121997288326905411826094504876126224579897158487310523572841021552476897708456539072412982807300660444201317152954143341822085201406325040337819050119756140185373192434100540303344958563701530851445900363028446287671852600321748378492759867173619491696524329645848538550371492958365922425324570883431868811998644381752148988565759464506564708885478066356544927450553622129917769436825157645765559789069066904453898079691172558520286845819652017498746696568397103056127720772234731454524423437739161887592406652211342819253846765396553683923779001135477422664990751395185941059688971428461288819574032659542314725191985672515846696448786076827301517388717517933960469416275988694523046869871441862341887913089839195140417764773284838358437860507316584177553898584867450972166391807501395126786832945113135124351571367508829579632536824681036272519206439268326852211598933194280272102614762445537008259400027643593035797319271704095864190604266327649655508357921430557929479504804687602227572466340149484217289016218213340961659368928938377141461147069325985594047824627603702222470369923548771849905209608137058163595920435951176485569227842479940543028192655605376967675846815164534842692722720558930669122388151385506386357386376486903451751271558470750045642210572392976852614823553372164845780571557948615087181959911401299334407027418093947908375009865300731726847352910866502215227489030900466613709307216509436700723294713010473855627474199867739396666619656412395926700972675511608042078519239592706179947200619082309823031284807546086817184172290276683802035591993881332537985900953196578416896982202310189356439914631232439530855728007793517492484926137248736421544619701399462926656630033497791364434598668042801606498784406580051525946874965272798320371775735562424840231461813688243596494582007562657519452186943322884031540314541572724872019654650089392793231753829291255648845921762499763498340924016505950455032773218220375479087505118038623320564913109306098675583939896039303862565587575265900261152826118484170549604765015876469483607376229314701626046181500907760248646848098893416683444638337613751678284405014391721208460236967720352881585085319155997272627679238763807836830870185898150853720211396372441888440362396735873574456831239070184329250454466339532139601042300090101627542848845995591604257542846969613706399469916576755529290342058356200470253820789187058965921361780988785502352610492472524318495942776690938306282779870275345854976916727092599772389622770391773665406281492593725399092869508777413808945884487856356945301052022379653524722463515748423565302694258301587740741464494842647914704521062699660269344533264648273284569306721610144739955119182834409106131131630045510655894516841728951341753571661571543874137567782190724795398464221827278993822757868963302205119056988764514775243586223854132616605504685249620100579535039996687369566214964894283446112432554030970590086815749490210628180714363786694120623653595610502027629085448478276192255030741478749557415445955259875479697934644519698298861670326201315180141088661297448553086366668838142183632697112287589907189830974590602226607251851417475763263145190373562624195395360967068105691286859331904229634609390015016781204335110908808438810076699878543459751654842967803827887863754695062414336768784395066680127152750763156788335925474769156557188811712277915259146370946390415396424357810663263869962225680476406419570638514452869383205490867151426414967677679535791653311456157940761677451022079386901742436320020011927290965247737925434646469877552269507692752812153340775029333817466439498721896712305555786987214114794830305147386907806393856618997476782773255127105205405988818247174764315968852734503484589391396659884460349859143057174876394716174081255856790337592551747208046085298389126206363695754558735393379905050217003142060742786949282377037469418620297632303278146502940000333523831506972435849955872287289902989368798560944153281344170252857571156685124849067214988182648955880714615097284571769787163712321299724861304201288479695746879598503125408979813645728166891393498277708954353529469264171360479816662699289603022497818062743775898832440529893546630989714117711711372687464874288825009677939077199696662331687717227288071510660113214096706135716936441985694875622091838219630133927602213248299217455360455181626856761339271700302022668448252083449111457472722971169868951736595348976413287808516641204638768248240000272119332787410528085841374498966531211309631400251956399365332149757646478439975325078809396369860159385267336989991089066614140388532565075184415378297918523632165119371249251865787967746251442059695622898456399044887170287449142390408517397426570421735861331503126497497634048520307485334454708335295822066886409286266618754352278321161963167507355517318310195870149897990439524060506544271999449487318224172110298497216694332209283781383524763292030753928823881378977329981432545721271337488413563974513585637944285760468386741931101667800622271761009864094975186523279658299380479700097057049983106180196659181436872876489906008761132810090689885580477299527554086948712913294321976784643889924503271203189742150838111127825178316262056738354378008253675547863529082029805614060564053414903749282940085315438835219383341482930857736368445269513328926352084977089888164342566429591002582044980094184015638373761395596215798330378146789452489405863388716303155504826361547720546306833231518138511359679616720339793009923531583991787140379790196927023038004630386982433722304917752791189376478747828368591955492208284003533482210168352367549122544415554854629219144957170167092110428304303238544452809956009150204981251945268588524943059016400298322543203677951832765745172456389095633490802335167714320152617038560257304794279533162646263761184559554867703895480609810248153787482829434249646737070366317736214526402592484347674920975116555217499511833183817663735217097629116187965273162506854591717337238347935967815819840037331714784806252979308501566871638703827701412127420926190613648505255352119571886944719366069088542444554886441789427704816047319568750323060302395458514770851434850305574942727633344784154300602995968473523824588325457502516996475394694336245475484330155846642803180992298181339667393551085218927437209973025327842802233923160587384088479397545749557636756611487412742073654795394421523281436909535358284578087096338376534450464473284221505745099962660686646883222496981139655083004921317320328492137622038259692917112633140171130711779314952938579687679822602636061083018809165027847313184953733581969719158285594063958201955245943814421636075863198410467931803119947446203538321922693057776280226129555270623465112672406955707692627056473822964507289976441317223444673605950907410164678245046716333482039724360753060543687540121837895782105010292662046151069197562029018840586726347992324451112461760113504909772100768314931271248014654292784654404471393069041769731482654668936108581502934029206959373042283088289442533001182426326905247585919595129775806183194326071328999953186161191405248492848594500080963851934645045096858370513912924399414499047646293932386651593132259640039486146292779713994199400426681952707667946014210119009102808157678393421817253018358604338071114478002444513649805879222633609114184693019371188071219023501612179246667114685929483496340547814330085719914564477428093074695798687955896593105326523531100446335775885957964580320859517051847329574265645840338556380674199706523229971705102852982688316735135093379533840914946625403411654634579078974858689901560046422626182684993494685629899705928383811840716813750710789704643151826187024878758452270632710529857429327723535230765079572123123740113873305103621130837926445438365186405561195561404106517378457968388204219513017824023062614340046601192673794427441206063491972354567309415863767820759751414836363557100205200866362507558366368073422998002096561849877642067074482868117100578979670725651468432252852871072025984522021193443797535886109166181467510581847668936394472539360628155935060899093192760061866703108770696998218044347378943586063547835118391856928136482565154896730921399072849476748412400898683404357298712539444273828955358643190862558763781268575164155568734043863384663935588284950331037066296772901031588589055865585491183089938873458994250026703819272279434405386760883859669443594843601835211941971636430484625295715421041192896479974879189048672435737230573451961048905637230288696794432396939074639674172435635631046941069170061261426821016319020354571148146624873634008908769423575419499572593450451271234926490409777306091742535262115872552898868259407173603540497157252807479364545947340871136630957728591676265242554525097645288656929296940074750175487680458194544200087461543375301446323337545694665859746739492813365292275141666272732398212638356574252426015814977693222387620137066412812709084005990464438397039929267280259765483569555875521125675030612754602359084518737029808695062951590841943364985881003065018905489590470450418771489306340300838419353656431419326716290548489553757501699229126800257546850168832677089572315755313630925607860334252397447249552499560560132305791328400329052357655472029113639841866022537013184847777261746414874681538989556619684923955001219762322023294923870155841954892084246474767954616928372853621701449243534256691393850066108167970141764803677194956939742362189078751216526713210949590932067920524215356124712149253272699320440444013642971014069097141228069312279319156656880655927223704363780185351662451505555433648164302638449850863397294392521378211276199391886621601803427145563145197181099012976715858525472004924929086042312563242919017683221243774466518555133148969934823126820387975266105880736850430405386268469591035141498656991639757951080352984283286779451310512389961725995430444758697741601348493585096384699668355259532711291041384739561858012264337682375170503507638440554098474347294299214114895565016825490350682630039998998817909843199133215669125245016993358448889431090464003799594530191701286609987252583625051974196640486385072650521617112833192270183532852417772304390665280935924047256735535303960023573075342055807118247686332747328020769845203857427059485028448004113633055242488951712676064012339174770284979039692784095035802066182763730686958672665436550516469549535951301476973652182152118705619298091692038650871065104502814187063052383709458229911296812833047425394477783026088791669988641029987314812047840312942402316965970696445652985827680562609970822689151046081180490601309017534692459447683672329560176545241275204642503383689248453157126744277900805464347608620850479130976704961285864233103434430117482519274920145414025042048694342681986481470257700010482710521088504136878993035620852481469253673834720305509533671852771760960108863388123864354765586073540544130919137762673393667617753754224194729887607540225834159185070751322501637643133660550542902143927955582750094794610365563224175682154278420912959938373939319621237541753417069544112858926648533486973744855424649476455624449134338048868712519678828200373435575209816697095546272267479405697732034962178251086546980484506515402065142830935099027782970027149334605780040517931872056828083411341336827322126294828982690291485184546980737995844808042851779640534310961211255212351077767646988021561699614842801020763305734370914748218284615710174718363172751010862614710990653400495696521014471786785044114864279792744498394589999362321992514353718542064792747061731019539063915845338702668467230052926102295242712635784060439224263498098582916083559135763426827747793547410330557021445087985830930268506745676577748409247393773471320749227330581859747855871981310406873613663183111465737107308554927336620710631860033795911715624169532685820421650631793016802304449816898581248260984039700782568587448332454427689996944741556969983053258002557463148796417725474945566353371024383118424824788884224232523813827838935728707957215315738084600051659096988044088268162074741362378319604714570818668357906108413115626459798164136000592070658262951315682383845643296000774878448076906605330649311721414051071246516128858983858757232473078925095017312039692584653920479044588699727144678561195910491739328431935730396572550324148905391807859633510661565729182988203783214227023047342983087592151791038055500850794600819742954414199779815782556938163772393893116005147268248174099043223219130286384950621009528804129646006260463682193758418742946699165963913100975637970961394881610165096210357374146732777348495845131813353478630282859088396485200559263802838636051727813831655924333295610018774525720018191534403494326910179024866983177139349307421168609893302555285453188155649590663462433993400505553644399493834647991761677488138694521941080705214012039276747037704080141968531886142163165599873427083467552939559934921386599903764154018426856128523847968798097023634629010658676638628842122774137320430103399383399816393736610368111515111020396869002783150681491126728151154781231019662248824427683623306376743440317464836966398586685947821025585672114036877551544638193750602294171439499502175735721009247431202777928364838900403351150359256769010328111453595928834725497613107557318437339979932793183476188723159397674384111781315257447567295340114863719585646948531646062692966584317874440244404981653624253947273564283333760948400297023394517961503404126610579638742174411395558560758382818331394691004627559352764382582954990054835364777123465042129852429908121516454110194835224755712244362261755933270790125951042908624346096991200421570748287081240016075838119091656541386563770390683243985935551164097500217903363310170718991638554903576536798954536182897061242536222379613557175578060242379091783248498523975404452240934558507918525281908262187606516380360888483903570300317018330728089841490583048587892345807756364861904894073868344434897342849146600169770783742761336764467959332272451330243535520848177079319325712093326147690213862624567688998923976228312389559963633901311781218006365089157018099951815542947349061749033741187349263973745913326796763088460090001461442911319356487949664179883590950861202574107841360075278630490805863014741240313151576042663146211461729147670951036415779358244552745759857755381254199544750730318101448035008433312746745783847805004492801974880056280922627624702705050882356154457072761443642847604053661808729845596904851571320781462449766963467814219819109683798340731335340179397641535901175446325500300483460419263827999001483388997266860563738401014189622039659318618652069373786793822121042321900285451232631007641966288612890544260817274250094252415532663094099266919616429656754694311877753492572038402302771933362534039357164838707874082343873331308983449799355572196174726359085763859223053577558658814436801912656379640879748651241056326117857170290363400677054386461552438270656202576696366624900182736884885416510272225292372430572273440013762944856969435592463976285915398886011757641104197276754141034930134329044261190037178463453427621391841827628695178799815754683493415536169920909771658530289293483992183970466738235633857966173232312467362388748950944073078696579493638294663279706590819352425392066823490020580555706274398052042426655451790493961191441791959286923721592659329072204776597153551865263525841771851936911726564239291591027290087813143146293463455172401209901134030380875843598266464252920974914517743328133070418336017691698358019930307811828217271928753302465660744948861106946184756210376607812395947670781102940375221059108536498637478629745865245609122632855330379384362303138863482118424994964888200811892395044483233995092076140145860897927842018792401995657062164365652913315960343024471658972865448938013780191559240127100025170675233300152219308192224192967044975026455916321639025766276708007828043287779895123256558357678381147859207459018028592650631699108787489981397439828011224243474130038209717497279589126960872465591556331654688165530645291067524509678732467374008853973019799006349579473614354774744325324253506320460073817993396472210394881850783281997600231071113287612748883238453180269802059213867279252922163875952514062744367712278256673731767475383269044704359712081943182089273503856137861440752259508813538637575252205897740082586120167660145688647036619990104658962168003687814617138157367455338531747189601453040171075174142124891686438108589694596736011048248292053760407711830924333347164700924572104031358364761885617065869842085135514537559262589280761590239578985667689828178836660814425568299495186096793897614660637846269355819744385029806197335929906326327806236917197884749081822224735595375534372448612093510881590895429684851668659790045547154414835538749399205399073383517564988545547449899003943429536513995954657419731489614270082864679583523121735431103528853343645697628016034260083998561335327147539942758759188380890549994416477337832839674485326375159309194610611123220013879818119066817777470933888175125453405043170277555699672880633829540431975572798643892973214004453079792057616854782282441263082382878866176348388003902777110329197788372024650628427186789484531238409976140380730577682217032903626649447040082102718053300632391450164514994422438238880614655527475035168488538461259515640946278177645366886329526479746346157358520158284073952598522586737637505449269166062369312231519222246041618797102695870068631288689295787359365667816445110416478130516624084853187110967833429602157775281126396240724699423486981700003885864575662168635012067235041756998508245261011768233578834208273777366447675477628160909112148509541938102776886736549312269808967949285205389036395271076575604601735649075324056490481437580194264126191505102702690127288203269542255222061998574923098588236259787279052300771297349877736759956319298408961978055694601600484779428339305751683581307237442775692667004574682161270236295815072969181716172478759075921806386503799995313909331114946112950886371251120778555305685364271766342339326010076897786723683422862540784239343826575989860756353242275317721819763530464096196873226662731256581128055974412270486898804489455974924816371303692283318048646156813968104112348836925308779288924490929836101073304969812103441579771872033592953603455428174159714860478831723368847693318311828719253765945068691580605369080940551269528961359882586829605323443086163527414406741971618440104879263462406854516664699800366281269172790295077525306931582430783751737098633608983057300377399255009836828334485133903924399580183475118198180047816782890538920129656738917059066551079723263057631796670374776975328619619774827805926039222907954399279228568211284427297250945532775734715758615644155194286069039293103377941050098047706119023068852229405984962731451850373350791974674971082185705868306686187303830012800323954082204346825985076083001038564276678263315261860262699340988320833977193160616070952858178661702192201093232614886918030322644866132692068699561240909407422469624022061567478688617529497177595552757746239233860547805825250902247830499388061795804128154621983403229874869749803370521874252631235951357471817784560483775380787573736941200699994730795930441356535680477544984304348609952719031190531251502208190571012284620566155437684336950301120165233086298885046113242290914436728171880660755254124011278470126337050016061386316403276583487085532651648700596262199079806641094111419962768779355946828150946169478080729191690794537550684974014939995280914626801614615207418050519231887857418008563375104788528293805618263124950283598221459891537956835222395302983691988139870073835041505639694575237008486037492737819779754582974834626380046541350314803832285019148193383307084341930343125637257892810253304020341505475336378588297453959571194797600370950321671915555164735333264125956816601703649695280063935519064055328186026054374183813454990834919905336999314890125374424210998770662982194053878283995796915607119963396086975979686785024256472305556206564844575209979979876333875396367325562619968964441028782204220067413976093641995565387545877094574036795710198474072446634515213222199824009623714108983346272474280516213124802895179448934978030075791721976915469416341266042944312015064804755730288323988592067610080686623690695070520644006273214836829750733477167938964434960330075529738792533694705789658051855667952911046637664103101037909961607451670043167951323543682399790179357554482884837532948685200477223951126120360006258173647333846023042396318983570247334097867426523978817499718224406553614342744100305659428094074694425595602908802479858691541001384957150996872106407213934949987077757653232072941771673040798365050718010402252174221857951511072237037678459527639578788737024022506967530732277312296067544122183287880623068215745024509585229094510183177262541741483978874360737160018687266917616383710620083357029259116035642895322485355817187451482745399677229938843491583233418550287584421066451379060165336924192017940712339318504122063879288884707689792163629542669488929577259544789850646530757913983390647307802938708888327216484313401101734780626048555959780173508143700954213746090287684942187484088927616184882935065490096452493922617536046347365105483367842299535666420723923464563507199630259914428622799453514632255756397128517129307423965136882440538353576310185940371622913212670120308241574916984433577758180914166824083839906721092196153040359424856610661293580514124805141197018281859069491645225846584632327662410743206062140661469524533865491786507054254367331266457586905984673918632358375523488655184413870472406293534097606595059411192440585286548171764002909955048608962428021192990287647244196808781216607507174862001342187748913108185799500600384576755053664526668053537276880710613309307270506852009011398791381741298892618644965002938398159444375154355345890583330244889689050538786277193370402179482918849088380093581594849138046276560682000217241842523915604743230422787800537974091062816353154235302872389833570708439530856209582290360223283783498986945533399351797542182416920289418433635440828111113818645832972019740935857754129358924827659696864274316696005772539744491569375940670519186450838663047865345111206233848720116841566982365534432827851372737649045170250621609848306714378897471617514786184449776679006648873329340940096644093668212111324864118676051937877907685274559758914618449580976800992384610688673284510968445699843365014054228113331879412473541307629012651302590902983709091261109309663867368304067876903494409069525111075702553175517926902710402044669002878022912797253265653676399010028440150061925312361358178837701380691281330739705690741348499967020238125439993882211890378875614960625165058648500391687950510013402756704644748252097779316778746126744214465967440895279381851539753590841880755658323536184347047024101297840914207202951935436666278858234497181017189508109131876216812568364825268335760172215888746992372535827666624990466832801074307030589381205827379758679377738561610228496811966010359744003699304524404821074791475319504295295867738590510718330351702118341172618699751024738686371450517239257732198390859163921709632591768688834123467632037242611200171159305969431036022629466378192174920293170421405611602570009467471164536068873103128359724587978569625735479317809365073743290832828616822818826337619610776128272404669194146192362194997107894930797990316122026397443340616343065219738826206415471955364333098926473501417408815454101660926538770694608856670322234788160063420631285364580421515929777112557593267098570187156000616928200169528030563669887303282662866279101133805645745329292000182071944063891192971313183587367486347915287891042386273466276537945669011302669499849428238942615530688378928924579995538519923870137259861957193903075095515104913374543226174437742556386091708239908042758040232997897147243759414777812024071674080981459817949374620593294793154686324914671070825130931117021373691397942811557578058668768161799814475284695517855295415085318212503747452450410191706967224163159441453961149182470011981267450297339288397008777787377311332134204072096947926826437928392999341780612134141939564067567858514231998293608269384023136347660335827916926754849402633587573586501205554034147309823107870276516342942868184771972515190813109190815484781964446605749044821256476638251712639651427336280177192428717531818774697381786440674793852336402878253376578064134450802477210531292816091087171951699297637029802135270008294264856303705474083936075933837961371281364964460201898831059635065688454894285770479915717645513441897423343799855135706770937288680896280182629768275964474546790505941882192986824759471244352756291509853887481854560968420382113230867127917170089138502767122249220214192066698629936898472414771347836869497185246640833136488241957827757327621786517026824456658696808074150135833148440841538682145085296876131860043522478056969280537123470343225765871383415183757559308088733584673710615470245657327243756450238282458423290074486638344643541361330145512766271890731357162253837378984301542889085353869671367679677856427685959989871124561406511250125134102459366195202531363318214498421421785588739555062493245890333257145382625684115689009019714912337764605822001897264298373138593346087076330729920534613850127375890920249265551619920598177022165651702276343186516640163766761964444394678658828522332835444917689989157083379288128566135057470940933076231963268682753027651508379035016438031255595437083678082414490727165169586425665398383749570219494055152743259328840428373839671672129503942711888298897342556802348687160852898286268123993270203879906381937171717394030180701268137805862657734642069342112260614226241094594609502502647039295824565501229394349272699422272411917580638355750716278822122328326870891801238951157700485046611408573012774813460419418754282534752515579363782082691243866644419972317036622367074845597574466389043439880549574713974389292804913307675334996279294990759102219484000327730584937570779901904775917809032234494730346424175308719162338067572434932595603312513174513091402525654459551984701927032341413830524608782063830894627074185157000225025491962345286693597915003765551458752577255253837785739948285315153701317274448364306477520444109026678259968529569370291258589881850860030986159721716415707133066253996392052285466315349396535243862545436506238595266014499529415074409623631422590438800256003201229011954522448849552838576900725548508744339854115330958439080667906955859779752075393761212938501569019665396798645035408905550434956332405919310805061257144981279068855506380188741062487296479960974659220367196764046516159801956360417667819472683323531981872851132658715811491453876812778181911891718721497286300859434171563892143227552370848633537699184565289351443345169366097852381084443068660373462095714503285717444054015051237063860776374701976438950420941343383619304104232063871674098422983440327882549948171168418926094511528633974989465475803676240976967654417317667100293910291994587093126635483866583193247572798876706137722694788598680166900304021845330646374792810600000865847639151808571258004011781951859338434562754915540830022474860348173359174896410784395731658627135989187762835568932923414603196942720786291865853223787438475820293594006480649252960415679249830843913830701647725561341087530904804624567951709957674376821483480008742647859295613107238202140253616539374232743885638796828958294158845509574788184213935489979670453406423958130433334258135738701349118018894388068189284971388091051516933834732177101961159676927899952611036592649895109006229033185249362167943623058871875684256561360933226956149482590544184520830733555457905310503528444943422496471314453748904545974938796666273684438534873549291346407326093462901531301897943503213087958412894341349924728163486054272409282361697585120494111205518065243021920939626637123590731600641143452741410807663118846468005942636763622727271724254180463333338014192365752945146686277955855128630746665720540871149666966801184126303561479794372421738703440071797930017941447113102638650053022011037755270937290763967319382912720878237765038787620240256315723903326699856003106344783906192013621815392150334483482496260254990084655115493969115264527449372297757561282087626402292162579342448207674896781184036868975755993246404028668221595812246943778830873962859014291110206436652697803408671353927400856628436143256821939340432624079599746982437656017663363970752016179356043508030492380544214322687621259071656970108151037383102075858202406971599586715023775834980619363904981748026646735754093430411651461181049746540397777132399408242427913013450748959874680806672291521627038944362686455650504219887201741047862969092146652822412642060284798972624292630346058086888312898967534818201584069694384313242070135011959330263652128994480536638458427672319299527890846594584249776273663377289112025483326047885635769870393165299819315534828453778793572956403810444548639467101668093270596043464781207578388654171638068696843755146871225659365726712233910520218681297834195375647193412623767580085883110216037448151522863891132875188794864558856672464421726046933733657024618720951474581646332691017552069049256225598981213224810777357222969295019287228153832891561775709567686676567609426709880347462750825574654971118597177903948178962424145809463177474733659337619506960796037274608687470667874464776632588013034109206945383206844847376224104079761764795142539672407070033484389004242017107018679196912253463762365784556983059770179213528222364478777857813659850129473489171080903005611743836749053736246646828278664066147380932900403487846288629826749309643688703107075824658712534782358966636591499937104586582112520368963337414896015569397840211973999840428568406553772624242880871467913990085150515254002770517587894338386625857132083136008581979198784557033388393773663856794176386127083162731184990316262796663612592065318711453167170840988492015334264826241052207865366902696603715571362074315927334047024110870549010411212887137866631287098177241564342390987508614649501066360510741020670894859074406664444094812684382957734695902328734804640011097499112531699747559037500812025706925972929721266136106836411611118369802166626933933012608969054479138302886387225080685018674235021570896121344919160861832834461623543306368308570487970586327403093381697545923921739324223137379176763279464032703195096130471353203257077233097781495930115976156503901540326953647740188741903901590578548351198217058127172889596709924833182806316371419066002742636954413841633779408130605147358843836265310000559650583218173485732058773110223180753772727077487150966588406382604828269188318536766644661544166417900152642579569168922362619595905378243730830109435339814520612198365196232419884143533626912679667103559210314754041917117690244563695771431416136129570642247741715479969117689175849451814679787393834802841674053521809197644225271774002777107863473760127263494327124146899429808144006417487475021859988369732932922614007405110512677574204337119610307887026810689951673937012583685541267788744357223666785195667912065703699848473209203145583302928692104609126993149545866462385593281540522402812943563651526579919588888679220318373961374791357121665793708064728694252754905776960085624034336490674607325587561805938595236037930760629373235672385655012942620372276700336247456220586560780422773244971268259216542109735120598916259784167384711439233453221537472327466154526186452617337372660325845457395970473172288214957407104639137655081895247879727542405590584423115941197792165675393918771449957980298769413809054887031137491120591377995180946548537252108467190733773012794155825666549270445882696802972352072790896077798317525906902100917473528500898020906369464099300914760711591231380940764313842284681652196326328129655140258848703651796562764325019132140344102314986514480733406207957851888904518055879018085120314346818210264121766018283939485765020774579835153430271757549124319247072575834946623852336779666855631624234085099440885658117860249999327056077598284929233845609993084263315877098993154353103132554722655547021850849933766309172027871119869867848441829377753303739107576835561684935393178924629491749711594500010186526815040980001233187745910691118516675218173973685251955042381827251333388846396374220311193289645634654357104066202594541769447943274278020714750461074029727067134630845441109122214228136009085649686284458364448728020092638838165661688743036205770095066635042593530593233966502497785854771319720773821936392934665875692685712393850351330927222382406558403469987085000022146164153614600714745688177490491820337014532321884545727647560580354523526517832650335510257417327608695034087660398078590141185172883809255480676468413256895638561575582564096336489633324277132817659089145073477759459943082220535580584775455868392567815357740101253097233733649373411996613176283885590018852551099701161891846791997141791927395316585725977675145251223901412658274569003992677872865742710498414186522074210951560681932633183454724840337399705412236945607417404550532624435963195983826684920894943493881961599441406058817770329401933509555052525070081660082696459750119427501537107455387256127764819331861561121388497581322360226508211941569303302044226138753790956339422113701352033875486583127268195348313017382708198639653161376150649105961510642457059973049795125671559066411009539156473444585236875081730294990661766826494078373594958677350171350133602579073204413033344960967368322338807824894025625690817169197772839265042215124808736997179238701325648396358196525243139879169614024341660451171855492749731729135361971821465168521206807688598444815254570851988999168872301454722772647010890138763559775259082543982843721397064947378275304987114311301854711762063544152230327526421479490158971577215599822480457839486228075407924851298481794915312033993217191949731343728461711288581733553431994471576507446633146331295550185239293963138910849095709690152855382877701959072436197039398112591205854192980451908778196012085082109782106181685245341585311975767396863441178536233060340297641831049221775388404006666660541077437428396843285519632180836437246962938709390466584006892341098136377184690492856354514631613278201081887877090077859934770639663319251903623670694145618044177201081551414250847669940598374979651487784042313915357458029824422883410352147027249019658557610849238367804972075283891276945741024264906434760675872619559429820277822936767146047676716316486500993935635995252545315477267594082158677577274953960006652902039384566828444132011764975648814788061869992469085338244621143548683348847689832512978830839329507044051827413937746509257427923622988520020684529036566285125341461853615154854462064770603934436940238930299289373268571142488514887089932592156948271235545027213338616045407600948517344997782885099307207233751398970140103047808851321717896214533987135845598340803492070928095067041670850039166940789148131678528535985845402861739502009272852833543365945257001547671486758882213247416967136371256844435341976917941496995129042995701942829245544917680554941419721863166927719701088722790595059027610908477849102780511232423828397555868220249751424760934010213095219285488231023743620662087573750698846193497835582320438642249695757859297234145031418913815090463634448439415397357688141591062089232000364103757015632763671417686751605894159654896723732805068647923064707002127061582547482286359962821935406315777403864582302537695610958228030747142940547777371784527951908739721006846355814358712734640472647766612293510531240587845180903227322671363861114404476357603653260522268709168424693766299837103398727662970290415045742366041804996776306442632047351701415112905910202886417845365460370651067411363963147067643794685436768060639088183536231283586705544679914304884733166511852990626101069141469568962611569328824603470677096709268398453337081216332176373068431792855115945637440407908266831719825544799535543742279902522268616823796112779789623440293270927681760577617705847709280080284780476797413753194631009681333563152642863844063684910812028955817307217803659332366798875764851505580817183953601603223727081097194918619086668206298165749311453411182900373199567594072388494986925475720579612057693452896202659178492404974299694547272867386181411131768903305758909149016628503944080104503824418719158721522194664662078459048051442863183348677712719379559382951499264003969377490626167626327257215484511949507894306548382152150404329601277336059759107701754664623152375564055769955901193595950174233328480743579292405080168566128101911744659178068135566132079446777589480016874011325072513925643220133012648046458825586766352521158905721860209473877701896506771644805858132080806635233984147598064170934996376438116089568542631588694339348129089458382232124384055914062217579108100856962942999631532464023407668130458460171126444154706508303984745900162216707616772028818326141914434297577218769098131695017811116969380349900975023628677053160147564220421142983485056680928876831200396466195939653997004611932963461093963147428345135685024646627733004502192754184638367961778646673715226901926438944377159485930862007010336358559286680426814048550611938411493638036939908484221979131821549845303562203616574703161918718413730142132465251292933886925309912955501559026766372480461290137728148946545061130162699102010964460642337458455836497860439719475199149531805239329597691398195056712394985787366495661757383394468952192371404198988822581588543471217612859687850969366029245637875149570005165350699007530752385818696923542411152259328476327488100203652509207051074721634052327158291706030776966189111660904922923495828001319027650209769865121496237098446073452297476678821404054965615961814242787967785851978776415488755326930449149244895848898020683916694447145430542746556741377883605993216684479038465441691741897137858210066736789281726012632666972352366880764102346804308282635635480413631644363253420453139832599278774467971267950398752155254738983082221649154194721987420801865564659004706709198183033315456681264700273053891488284604013578006040800676776346802837670398677225656314666416818351945544385276473574265504871062809025081526272910909611000842308437821266356331268004646499096158745594767819557652043551667994704913962871102350972414115802731869872060014061100219451193575439891356004572851242554682810882913871444774878818342986599152351273961147027010454037677912492161516664100490328575127734029426289551345188043509902298237394317347916120376993023920397439251293425351431146021183214972743327732642919746312345762440001472058092695069695644631624643401681240935003972337560144480400367900273207013367461720792626157705851176501906985366047755623002415149502960198443075129971487398751035537654838525628105660006833674609066921730269814173084785836939488719011767694252381156649634506945947197704511584209304401927176970062194037967039945403426946824805848727944087661070822754795692415152199481382378446245816515814648282702405874523291532193111826761729355781750590835213217767875216602740216056721921717100248734307430721124100960089333598145188073032572312892393456317708014202921044775967845345103571065235194270801563231374136772455996679803298750748551672579248738137816574787400793236831588007502379874878621784436095906938501521693689117308985333245105426162587122373207581853766868955609302475846348882064676844681370609954151222904573358024327297902266980363986998991721333536890287077486629246205675196828851549262828205765464444584114586192174465298776595726208927413270695863234258264793756560354624682267008865129675637094756034206708286108801669937605429667362134942690370786918557802261903873272682225375256882939977541874464805675434631478676231330048384848866841969410288342658489357166122120758391242241747224947447465316502296333800650165684773869791286954595068608613391745625396089053195505731337200674576119837528564249438540649879671461763846624305532538208366628886686350257515689934210089331733188168420575393126002498346418249965543491318190344688651042920771273535574374577512393041429670710484258226916843575174651088645037464491097101426400755327716653591739169683024805847596409618927471551094491766255589715019084557408520182133209602826102431318121688532169370865930786486765047035673661860156038882335338670933238889224686024332302874382793783292099365893326274468777640402631157093625112618936930543421278623257867504899426867348027517033218559175344427315098552556607022129049019853966045280527809536639674774177459182257013921139596082248404814451401839074122340662976440226031245592204605697304906992449782123891333238539270354355571494560935946270562826948894839952517211695552368198372966458465453352813911136373252338514611277155678092097977111043554844476121740900808922220901248986553549742468664733872431568334817572563079717535686756583573951898430182900556209793696439798854065807774217157424385036930287691904657749540332473723620672561740100323422547181371331660603654936194476106595079389121350188138629459161380751420263976611421901069527693768837186648464198870147578493077667271571167282325590417280302039207044266455617671734013251729772444214269145161426303421103011247228240539142792857895647202369569823118684694352978144934760763116541318965404111848038694925991935208164994260091110556008959268802721925632357104107914853146391772342354650634350634214347647520231286308108709343066654225667722986050905373871336603989781386687408973345765410957474827189887934004226684244393504069045750548275844203629632465015728059371180505546806151254094650704017412771004268850564100994150863753194211171858038490344002513172782472243912333528670544234663382726359319352966072341924998641730316847527069213715121945717211605326174802850051497289825729627295313576197683426001421591274973987562780486118631479626519797859687814544066483644988410094618746026584656932950625982654693354749146309516794514394068423117300496441923609292743232326099223255850058663030692466288580889012227467268265370600424685445197277877417199856974551839832045748857249765285026762257142958155674121030588323466604561610479063221439633538621205118712951869133166826812279702768737092906459441244972881255880274170976514116120482266716819161753552157965689717817463977695484827854447889859381462132760414028772664161788755036475543811565192117848379819947775151162018925362018640852300507829476441541930714098017027608039030954606595883766478629787540765081481815119587565334622414333325977440097915749719108515724561507124173897689896258979274951438260924004527384026496589317617469225107947774992776992001606367349367265197118996377148695353482782163902887349156252871628227852794231024710798510147576402436808511387425680001259201831307007786504426568866809978814585057625342174293913935548089451671267685151578093873141071967605639946744965972093693097323741645766802458743146941388646099929833504090445802963963375502233750220795665491405864661652976891599748927150679470504212968227884772738711152946200761521740270169230396559260269884367029734080980827906387437044059067303095488141145700882889131301843635038593161744793668580942559205517192438216913970820011329386946582584531100153244374047991028534138620391317228286746592264405876562481403896936819866459709166469812111526825561269291751145804213339620553353670133665947446876407992520750638275966547363269816346785944210608360091774526178716754575291480926155413870698715001357364822869049212930089499460786313158966174654800413571571067744372012131236679068519543912640118702998848935782664496704956031063962240052968668259113939371094314816725723302344476305715027921537176204938869182018683444006030106623538936619155163561764768588631155430130555610424431713560125232035731429124314931554496416270389568183906533438008370182634523065630638539024984189946256652769772673793009531151543522843345456546357636897407741120285058203468091668034642533024081925908579806744258826549853354452285384339813429089764856386667719332116836734400957501091286809334125220561051057465102131378990535452919920732542437297364682493547716001305469280039044898197734163118090533574610602892354524791915450697255869264205347557948900923257192463859568116627421662760328724749841817804687041152563766491624216963703175084902906124354444359270342207696924458013124458330998144935231629733331751627293777665702609727391595480651203160878412037913582749868032668389206750592477242293874957879704348070205817166662677658123507028846135985082635187070586499894394457563624992564607759110037020719880765597241763097253157576575605980271678146094271844331880548701354009283037518635144345612538332650068678282799032886620227814512534183639193921563403072084558536313996679402484800279238965657175643653446154983459169393985558245275178145235114146124404985071019530977002743226727061979080998219135050431441252106886791091256225707524070824435839903827951983786771132128797335103328499600871536309647485098351288878341727479932258507250456092701709097981020898276818666194754331801870907264828579603849500607698407118427510128402267478075910079204342359917237829839059618291914029549369770495025464200675820264170864151675111440635812353115080557156352330279187359067644312460160142687405122965442165895748193002989921237016421921233031119854435934999951580150454393654213884480706259938164910912374990481208813563612852709709447895201950440876452201397538587840779724064079174949287227005389351023854315166775854611749285755999845207066052724673990440323793345380079811305760512220002748678484075613682797272276999897533378362534622644418119250101800662518130569074344508346880005990857016262306729637293584992069709038472862807194450580426772667918119592657085288069673075139598136059701227436981040091045884571427837250114925966376762943066697203190639875440613674985987407853459904433798334052226001487772153438523615956357587240905730878168574760887856897750098590606598757051376073296224234220216117531297486456324521862805885380461701929757658177199342502452575289183062576239844050156111020473911666079754140991471835562062777450428959058663722709441786886965582812500738472777346871163265978188036240173246803393866763683957930349369491402425742287054598839237015171696261738647225277925257174265450624370632680872884598433368800902111284440799263576901155772412489849840489799005703598284718322893295222333250601751581588000935840849463393679285300676703410479904406227804698586539049550726031875094615251517339616561096634848912480401397025041365783587776531335435599187600316429156052416103670917280706672444848611247695600495192162313227040628715208638511636932542648749246353371071644071102870144084657312482006445493003236804334501493535378690464232155907752239158515080816555881311316463265302765015395635087926647936205141958127371069422699110642632355769586322907013355077334949594357278783409727733131221186375292459771549024965029099140617191606200091498453909063888919618937831330992487565943974795766242841612112212002854200909426655074865386384246344673411357328890959790153072439866503481841812137878312143811036923167004436448265977733364770547917585945279552074100576426949284348175856191934092577576683579202772552553016751020616781700834571775126349057391885426976712946924040121562678585138540790407868288275459461233182209888059898148902823926754599485878734723224742264296112174874591909802424765661632218231083297568584567974321245791731670901283684445170260533709641211632608991518980402934284586891051332363242355953840607595482984535878995838853467357678514687517543276493206849261997826282474979864012701322394502165763534015740864598112773101586720329821503847764850796007745185261570597229299410674081371860126359812437796202179101028252154469696286920650366749198413309071571647723421768741899431467622410561376658673087362335732504833939952810796975386367899039108508043803687343770183527336936015656582132143241483089062830528579547886582941651738533776729521960343577189256136659132415943615937471574500333350295656634154502893664989098728346769574093004168816217249633885111730812292229520130440269919443642695070873382589357054153089547467870740497168800946966240032493413498386489893767354802999276165715751776101445627157899635294701669631817237470020387333203637588684877514636747103762264082849353019902051585715156448322013041199139034465574020992218389022549095719893948496071475862706105045552442814192385690045619218028481635105634915664382177746608407345998174674273764485833596579582122805644878177776417209440167038106367790164944708819703500606321560148005677563477351205222430091189675995131587003380416717761060677967851853998839468054111939215223047724628587188372024775929454108310549639833637690418419975152547002630277788376555244079401884096204216900046461586661276424144700086998030259360334241710423689155176060467088635273353851800025092407637493202409077868535192433118479081966046270490309573942054498581720835504035915200894361944399733225735383300913722238531250706236693541151027442130839402324902767240212987013241384684608171055822575217629844259966491287217952648882763337732629661481349604833317746040740200221535978645507733622525398684160803279640383551894944352689188101430368053253736736900646794564772038769197048623584089014013888938856700180766596847048573121632526961832184561530063073266716403055369636605881001494840245351787520964724660061515542133097949966396542586178142286502359864925884713466988234814675066294871872767380274856900858355509040576489365328262898847165212510413387355317020323958420719064367527481751818244404592234956729899174699663789380173685526908894886281687231486087461599588972914015842977248205899783464867514220854676628435024704135108409076574248932227844815562688216050705856179532151877622038700169101229385296048137521323470389503459346709305013266463740079449276578570594655096134872872873837372831164788819518161102751676604875061479890680130840275384165776228662818976935950997058809220286240666756277842424191534867129079074077587870906674192798807138432028492574508171928887135469535432856364667630474663681527181595037015285775187322269787429384517203914298548970022514145604355985808421125319276403959767247644045254925569735076424854363366762519374313114373884544291255511719489879065594040484145041425370773196859697434969218098861702612096121218584280113161402092258529269667298333064761402195467704568786379880517448232948992256289403109079729940614727365659702400954131217055756512498838464655150116357944952284382256645323623585749458631797311471064914944856717380990509547283676743244220730601537942436945907929440418585719389780606824902001923975573941314272851885186089040885829678415825223853840185035827928981514889164418767300993877682749156448867451878834589369412159527455423018969162727815949845616913752365818123752740666765639166317815593398238851706271813673765916650397944602961954317460319587815777457035812463833760696393372992172144975705021232914798849238988037151933186896352381172645220591700614603520102385042556207674989598346575991782378350437246316816516297783507589224513253252522777995982736630985386127784987972967203784714212953244231682667539705266767351318431840298090342772082220708406152586290763315207921572344812318880909692728440905995578523920712800384447882120754389129047611592848878271904966038369225005941829670762762305669751123599813332207517126745933073420082812319031120359079691711410657661721361167058309246591830313100107724050246517046947936940532304475579061067465776708048356031874132121319317287272941077029255355378632700796870700180156792076704379378793816482804138903533298495302726128941904018196856593072402339031153321948692953384093480673719263661182273917878341579438142153425573942890602164570360835555494290948317351146935192550866160416949201749241146417178634576095718724104877295579099449563837231717717563095972551892087791443044839279462132708969821323989691471131800741930187779849840433111642679040698874317294614925477400804313152918880891651629657618346886128924757919007342993264869416083963854903108580156611737244975919968640389740808486570801229113980855765301507001160653244645331876659354953013066608486220900868111743803230834840507841609447935248123982769113691676720026723507036183339102262802875434549881678328753233617523423461922658188661257018256133646859981922228027972985275940550868362050878128429818575281218409079287367105069206386724531282542563818624839191024209724823777878286144403380249893256999618754710857905626292621692797334699868660729732777103862011329614851292661043391903296210506685726874917123907720678988221499131953866080916073177812273173306522516258747193552493903042016202888075358102288586554582171618529869403720827881951369639848766159830142652575178123551635848849907073904367190712374449762015283168391507844114137674758642808047274142038970433733953507774508186644007701669847255453997703491504701106732885631204486772033568043246273983590851199131832460033849661922438340484077072175232188203455219965244059066493692913547699207704871442000580173915858393979308358187354651463672676561655854952601669114783227472337249524436861413402124408301579755762564377388389400672441006456390961294945901973197935689401435179600155216542156303908405476515486292538482634157366185909371896584817133202440106766881412005837672660582205045845715249485070112113719834622991847046547590079562130741091899953890704115744382828984004086481458519746622410852694463184371534757593531554174170144016116368291003313829146512246063887053430468442323598423592684091486129671425864719717861125173980024492385601155052538968160823975975242742681942480408967480281687742215397287887416939379549627098519049177867517752210170186343084240294223068104018868093852307907630002058671870233557855806573404725434085069113757062324838806494532197404662482458893917709963093244708139292583618001855817845959808170431231504954048100943715541402654784860057065746745492099564511110434616938557926950557413337295348838281854351875470816926922617014502915357325482553839450337215980715965456033683131909240214515837294408765044484377440863724165696638761663517385731518727578642167938630321463351317595895347199135064859953790575640889927134464611137371283127916892284886510177551823927755766472272897651443464386976576089577843617054457376964005268482447837040998764812563305722792808732067210577662762584101964351325513328218122947686179586270386043204167453954939736493708997352015733975956269998924634686972426435868349595058593781208820672875727488811243886841122436121963962398793310486263946012005653276834411203151462022067126858947296063736629357451960485961928275172193952612568371594067829462115129148886813521600902285294525987689252230753350957243545137954645874751106135325326814564086292130098347568302301212115531442259612049484673319907001809047701306539908426565123035354072113733496664194927244953794763258555440242541555602614890269906437232655495599212420806796574810190430733280844975421223108525307686457770556147411867973972045016322242501410820687916416594572013367487308302161167582139285682962552834356269743987882439211318827067971983246431896618820249617966694168289925183066205110407176980485191927978777706242788697476156465783603210144285080829293055933600810004942977230917357014339506473276037697312793586180466223822815171118742403902613602776044646368569920591425112130215256622969611326719029426752117778386771665212103167607156134098176720007642299312460765506634278662935073261468627945738792348052605852128799345556593272089864248192253473994730766171515622558888404397560020529199325684807099469874891821400009707310714857023911008330472247063012885063259930971458941427780039789378618924125165577201830056508025926379837849387217771011593416014858387741208644151781382993178933800747273778644332946749919646060229141160380985171457604726203445270598899493084399304418148253732894957312650491230342790772912329571408562043185574006281604890348038809978620010452044095258104948434846121962857144589937822646986933410810652177222072557754525102375131317689924321044661074721566290084814234619613884931885161670491180370018810871062117685405194648061891492590137274858737066621603654955173744565478965921604399186892408962258888928713961109443228872388836685320059077784392276553401332974825059701319083295260596796118132462173833115511044577892628320857522087472738421496096773095148179753797840542650138203353288056892359896926512431312761355530686079820379539158757069029408856764187992682185292946860354353606557556276622638517923382442714938678864065921203676205452153026366447619452440884121250318189409732371431558135534580219921577747816303905143046921175533913527143800687607233657553937393811123116086714490833567459094385516836495231010223919193479905845892751873298527604771742528404673848064637014686204335657651042273759529169630386854905556812690661812770724406659763789821977386037214124945840720953968586557990129827014321930474669677973768302234533162824140842376879543981445285554593485396933764481438359915968005330334964672989629728185040841626088456418965313716532582597583910753940404672487225100854553843263626221772530316312536614135621774663135746632076387191058503447425379137294069415848959403061585809733957288029221509269665183182877241338399733764293497968149718448217121574062768759511917992905500351544446479641856353098165406097706992982475922519885270759803165801510507074030470248809641738411709978573469525690255685125663707865457192041932998323924807562780652140525598816647328449687618859812274493372358991305573774710375944973351375480539810461842094510368469073026699225311584977970405676214839051696860032419336669458246102834581993702856463644153053071391033266880929471522864990165347084192833641796569386251588107877879241089357844696235545174285204077275989921831507051944170404090970276047575743402203813302885776112296163614495024430174543741697880150892086371573424126000769615297098764128484155382962109711375961457525070771458001366123178197438779271172061005099849078945311347097974661978360364277717330773476367854257496471224164108722112501499257714281635153661834020797097788723631017383680539902763611352021939409831076643116549886496091349406045971353949220447840418906323452703821562876063121960246272497581949058471579220550969163795718574770663359431006823044825378313062776915148496735170294928358923672309430918005557648784817218335703407996937184576508016108019787599059290090863094000513042230089228518359738184210432394718317251316516681802818604284990588348614932070888968846987639538067651093078983340021793804654402412359282146811814070841789397883332570830595006899488290505493764223798256729173888328993859090627263052907583935181796881323345257141734450313940397723903529886089441248201371934224250227159080573524270255160988388381976672745550662577116366451269764110980475259378507312735183436670900623722292635600959376839018040287021149579472854988104243150854363297807810812032774192170952795452026703827074585104932836978612801892841204661803208396260513576613041088200644886640479552282503980333701246547118108356471662676356197378473832273173416205621818484812187758364274148201939650655969899696446224672965690367901819230636336475134031262219833983971294818981548936899680345003787358287408115525448509430040740952090870259132642620439336406262411451296517472268113022786359430571099142768584154648338008410651359975560952896752910916405025322667864965220316958369119905424877717492776996261352000295646090562835654168923587516887359828888028045225257905134461759962807852531789419353803732417929235653618353756708890381712666900341232995433531936509910231837584335427396878302007210118502059961470488236695023350225872989199028620910752191307028530180724195545673964688104861309194355538841427793449227596057775879736524141614235108603883232252424126897968659085161543149511409301038980757543143963546785782270683525813360184729295949466485110085757271797434392552442447504041336077839119580104131267429823248182038770469452855962860531446057507662784808363085709655448558993166425357331462591659667702454967268441755205512720498044770505372436727766250499680284601508400278200344731847709011235002212952559502954232665386640467251125316525692277335099263357760092392376596034827945208231761085435076484678451881644820851319136006796141915639034968583300802057759299165609292468495796742962891912326007820368892116652613157246506820781242240437577811324390318705090356190703629046509906969156265340417544702868217985306931928370942154699753802874766420844928089050084065171876414061279834151773747838349047863229522468988481560028304102649724734252102218916580974928558183284834553453267365810271945420461436535509493566459338553750492631856845726420931853956625227329870310108030399699734437045895363433018501644036983045147976528678801606563848965578878712409637999555700619819753629916553346198545336395211904085079361985022324448365719480827634196801248019849132943501999987910623431592215464549718432671899257271796576982694258501042267551443909569447457634790762002584222422413553416341839522828704933742284843750969697810918560466585285141234618853439935747187258507482739643901949230318405007692405930521410418747328742131024763714816771497694889522294826950268364631646883947585630017436198199045864344715446802192157347336650315058806475990565153938117440127715649753589595086838357156536259986649972060500884528601394698319878951995114713828892192587855559990979707881791769040223948882974235755961350151206492148406759842719591653053607698660085504602951064708070309284807505478968422188084200022803856947162482836555417943915012749678042129093090953916918964109773816311944983874805995528668530944078148304522703356610340369379820360321707614785627369262982758697597938811228158610757984453505266892066897313644907552350519260529045977628197417420442087388751251900103744067424938055442119727286656417011519226279614998503002785074286778928901257252482553218952173181302253611838844150950539941400023894753884180249711346223526008820181380672073139200490656617902708726993442878038711228081457115057164048363017169444650180429333696142640946462686305159351597293994884518424903755912647130880729213211224371448782171852996948185688379654671358480912567034586927077555257482085928227101887611394253082910272516804365998064311796157141971599721575000225419583417300039890935646155804106246788334583503243987470567496459402825314039052666781117053252219225139208524404716289111808768600514579931527888224366169466503427783491197244553833757064686383073256916410252212645817575029209865845845356770141326057591334346870953582603253109304675351075373001631478342276430273956142607975189839990619430485689473510916085174119588255820639469398562795394892564942298945544890626257613698830004626726912101079107632957744095645368611599724874770477671263613063427840477440982789906293732356400163058151500381027240235832918314956738191251349770034798388185161639854721106517108558771866426534235726065182232914613087134512584177024990498496714630434697115567901663312564621916485142742671143696735967054084749741224842816208985139405229952106216050802113702831491192715048307451549535832543321242912552708801639851961802243239267419691614637331788514410227890047182430300191317870657612534766673045267348993688227054010348011705470433087446763565566728013618226182136243265667720129556732334755577733453157876745123399802333858071560733192507464526680042558908991927224039285688529531131657329781150558801629243724749723508184825726692573417141058262749642847996258304412703098238429643146650377362031887731733094640257659367556202887206540941859401784145959138680109920604570945378339453888157900069438071682527330562536649235030097101330990796796646127570314969175896276675876873602621923817682814554526913507633018965487126553191211155957133918364844450974618256327682254798574339677956183850831712278393945548308796986425051201421072995213303572876590962756719591536405338234449349289658654540235421086466330594691821150080490079598849887708623228568941314261520246495060725931414323179496510298705052279029501911013803029883019464263255604501825503707550357675922287912049442605592759692030475854184179783063832916344396197420115866097676985495826094869579698537027849992350859017380482689042036925995770274006306789025904120012069796181760899568035010402970378505183477367838312044524207967093031938068317268550703605202737174719371651329709448796435983681389889708291078309640550401152876771699586201553519761099722003821612585580475110582782754103420395597813946758737837611143410039040604850476197848765698101517789884691343473002060431525050989593000242827217141942647265598712830472668020500977715061031145582604238982189129276624308044593769387202892764916156159382317416565757070188319160412286265068626973744988149221265948030851989675794671065505556529476308224561455740358001194563480984778101596957833565339303812595428075113994777230800122220116121146945938868365317383934470014545053801539036539850801624585484291891193942385889001568374471524607340464233710519365127983783490274008731994464331640517278075770141455508522071934615271255554553107836858451934845954418651973596062179017813453028442041564937538325578380660345846306314579681243811247411424940055623441025057550502194333308383910703068507771727843356002557025658888542396127617488872390751368806765309583925053966519244161264142952880353955532890163386415555088795920089741300294720997819311142537853845709967953788909321178930578210314069941016585668716603389354858522284782591144966428076985355595995277806002062667595294611481763816639022303643053378985061800943820664371169008004574484453913998313489579015348643672752850116061437243687868794384039826223560407807480763525798116647189052091905705602631608646076269518470857855251991165359875272585220134779505139265096999034590347711770237139659524868467264914397491548943215341551504186765189808411862917857793301084499786821948909356530868212953019431542109159792998940472811877411096318523995460900614401288496693010899803141357466679543240259556869055091107359800377119025017725577209635383004502859810872727608706667366956407594054565023614031575893488243403378822713029477548678635082677176231195635927923940876087075295968153886348684478037713734632509843248867207086262403020291397781128266698246850584184574499914679760498063813743234898120929333508692132220461562336508440066458410749380494549135602171015544092037100674542945315297492732222582781469886513924524430747615980341894596201213595532800824000123135699239391999546195362830044496126175761006824104909231321497739487621040871003210633365115729514932759569465756019313217891765679185512949213591958674063467490056879984793839959178461045813630621822471891342779445413903784494153119058378774923276143869405547514555571412988717751523041924388472441457548100186437564312517113517770575940494733860567440491140183435163206704045582403626274601511901997284182244801935320621856016274865409745469295754307172345203374356492329251669870271601203010165691333313875584375600438456134048414477182019595878254788733748502370609672757185347205009591422036703449916891442830266676305418487050698693948721544185701787372517872161016457401404118545863185617176158047432461757895255630399265676641811925436612531924986706001504458316204861827298088421136538051114351563916534138374728054395918284485034500103149444139791327005854916249232011276843089880729590083603177312568272518548061408385933130946715550512036095811608896899042116907527521887324697920021669993049537821776468385144105319362457300795972742040119700605575491504500201718350691721506647535004955960829889350559257709608174913336944279633348457198213554088718888244856735646136304332610471423491013716261181475088882455089898806496336069812290534315561183783144366306224647975843928355494708779646918900808508903595544089157174945969412556635371913583591204202612822150218693920297207075014850042803324453175454817966939708724243903633169270646223358154738181978421894428005065459700291658607297810475820704430110696895823598242183483748400546444754478493303483110487569875615726034959147528996693422261840256286581392358952995334626744803862230930650749939529718823272683077431954385489706410414390201588940480991872924658945684922091498614444689589237486045787572457655700543715646795439982016881968788512773668205670872080840739848319462139200153360952153604405071040997454304224499347215315369050159154848312151840789341444256611237350585936715944036896600268114694764042684424987841799186296509200982788535966997719599709973252314715681799295035491300497195092463200839793207588015200461920398075306622511005628699118327024955624985211148863708203433715496641318245033617935130185766568744039113075850885026713025588586189945065569907228282276566907972896303873488193561274641569338715768629777653532435893489142668078719646430375409894075942274302138087565853776431923598178210329112204445104079565147190809261139733063598220018721752868043616259053025169669920233645949751718112585689128846405270631942728003317511613514018225176497372770293150022438979171355503963267447812592467741411389248418241013750219090576684155186369436393662364377616504070074419497469529901659120269461650835935647272915817997605526838869937355268968191292848196379015803622624109730419563080372977080012923905351858781132976032714622309860110384417395286488280166632383501717547962333907708792202928839687534728227430664959026966216657833328787512314626708151182322198658545097600409293719335364745341489723295015089514618615861359191215261212594955497415753330701796103020014849853592036023981298350783942468141577161200348832267709875225929126294140968471146250138662194357243586858054866155608418800307278419004173912073593849761546172834039918945519770845520055809742374562887338535972886029932916473993469885959648318403557040950996963940854882314206995239188887653014303574396265686583710014301947813457462743542781218767775375968711854460030791994557069251572796741288057131546162768599044574590857979346409304694814198028496610568841162805365132932548257199980916731685963828546586448809271873831316887717553020694268232971883350891852285524173732608274310333601882791043413498603146168419707184088301808491791486534828191902353118446724611905054573221374783580612300240024799967964543057020512599350413915772199413712478215114032465175635038463743056564995959869497579690289284078707150891871217637987732067929053871266978515774787179165742297251332879855033654920889292207189802180632941099328176510093393585063391770157340709258752949702690526205610406462101316830269784617462847094583930429046927609818699107413711264681177548061278679298346561520658855702554971873403653638856490475596464849433355924649907812631657220737876485905163283986504804428017209577275647337693476417479011829118748746103226238629716566187176084212152535185221679343274554422481757166750191280001622840260141182889598059552355514890963121967557653720904071386643587941021521569263185825329932529930412711223491580586966379335013567108408474994113594352182853931582498983702819904885256993924599926674270586695993613975703743310314392594510397404460646044785269376012284804128069730637641910373763207080684649792698724430359407324583180587351311480293725791381725301852949883253400632511292998734813584865712770145502959007208042302066566723406381624027568640460036794781373852853692086766042079542212778494584347566024846001872041760548130616917665561790005934273260631339383523282840800426018846466690111903076570195905793793291596862651893493085750748476669898494184042292276925174500970152135983099435010654364397215036284715072494724862863933942419066778286279786167621479567655168867959083638224664977262057782491027230416268690331400892309509386575369221097017464234649537554458942766136167424124975375140175978627578361752282963006924715966212628527513500456976641171071482532993461257893256657948798228659217503604016220115205807695497845239308748941949591788324957579285237040457403329860333759718898216609605600453964972732554264278962614318726606130861431004111062950356902163875823301446376623844244797187481799930767426082294239601078459830291138561113811242238754775825100465679631638673074462977267042455725035606568575269832459310246860913478121776152981255514256043602900704755131425868454190618363689369793993839205943835155111541372718810657173859289386513425828827871273411663477124938962238817221225981534386676884074339356106584555275403231718410987928644737089909721253943416415865945254028315543587311430689220748350067245900084166415532455322518960448271022988466498346224287230571365705810066556461296534857323665230209798753145674765088885073794662873860617943271711951638349031972177862056915594792813453832516309660469516962832669181438541415503072454507197423134921145663090223457464800040899904216933970044976552276187372263143982311213069443313876354026003999024832947806227310208467559944111247190069801559153375295884061229334855737104584845667769573422235811627534223518373340537264247979181694127306500132298492496476284502957816669997468324417293230130631329933237528035638971048535464536923355967973891384290148723587454422267769502580130714206464404017166425070053318552760608862384368469512768030748469946887284429159424468301711322159352575859239418057343288831795137117863446653038183311706636530691452835101415402803270683616344439013258043381519055172211045597783184754960827460349652484188589267672427424824751553945264273998672896637838924724385733331981089468111606003965485794102768424542073958684742424067439497843613227176266033781349309284445153554311940465008878240150979669520252971890182088985582999946767858083029234430811852996566037095879583290150136873586804102049075676147260373219608559215084767139163207555228836516793820387354005409290466753261049343642310000336180056466178478347894745777152669110891022150617632380006895384092761350796463037623318258196806520795269312142000181269990723511724199121691844979845160650659098146889175153017184438081043886586931437182317248932001299368558566207381257589857006076026765786591974155096070566720587360140894140438044084178123309269961011327946998757563196150776276703590798039423104915780235592302077055902590657955599838865922636350174263989894091805548852135210301605915008064398980658124041444878858891351167735620926490220886762037656271966150191582382471778117726825204646189428604958798949748487617174520658298693454123570658033965022457362343101199943327728682209517702633901127347644501340334489888070976993901038439905860905330923575798241555864294275085202316127924440621863273468288253538248401286973286936235146845539535666569838501399647143964379062574598322579278766084921568178707092645347234687497156320159197075142346419924598198483221485456387751177820234031246112743607564537695226494641685320037508452113934892777411398919657338194206285872622446255628396971040778668794597310947042682550748582809947941827095796982469803504601920312626847846738703933505094553599146316833020509173294094311650774972372654659200152085946594075586613209835605318098880250589881119512332074973804502177307006377156584414180301182355986514103463767915260623702987459873327462828449611080748208210357666017249464318663058236325403096503507488596502941704864283957461628748997300017297685211461395207785666809197592735391051093284010069862755935430907410571790183771834661280957543752646999816304642817825166545073952160104238058764940286526759520745106019266852390285861372422678434494705929397463630115801462153896799981884561611676173813643950585530060652279659503279390250700696850750594436817144885325356246323616632704348722015497341060814445572592877982237214058303581352321102739363054794134436964406629739723752735350357431789850535260436641697646760708068880293028250451538512832723606980196016550072658785327694868797393512827720964734057625452358197966259214796720975772784544688532298936125935408268774017582517494815006027976064427948814634157430969862355382685424880299701196104493071884861642195094031175777934966158484971625839787978358138720982592495884877495893992223645346630986303602596608821917008495900870974806041476064448649079333227955430937826484442695653548266959132774202950381733804740768024783047350236830970018543003378912021873017910349915965431842101009621334869496207217469701241922810782883680133008153208432072423395811636444885795582805550561894748023590573208635489245830561839965632696645035492009102515129234084850363071729892315665281240010679645668967300742752919071659947183440778430800942029636805251543849846958776354192136290190133713423325943112338492642136319155443006165856925262107052962526096639327086452152263815426190673209670507569774269989904452367208851793933947029054040992062274723051372063462463221347404410594802913200253754359108021802765541604769097682336557486129149784313145220989034261649620431636871564182804934245816226444578463027574286233683125783695466881795857567915403453947355679702570800274509226036034804402020090288568301316694331521430886851089891878552706321691214367331139269618368919810124610763863856400752699113231545500935480117575247568402711804001915840227021838101248188220186793772652152177498034297135341383180166964765204138995955118792327083837655581052248758736573413440572782011718508232822097835741766561765961974905509254531407378221916282116979046910278065226956581461387741287803490694423967462248281178472338486382709289385933935465744872183452843406177267030906538888581880981749609085945016697276879500989131116562651748926532979609267068333886120704296411733183126541952991128255850442279732451704078713940210191168191897506713582474758516183610210997945338806956859252333237239214476128931069753095489782488435844086961638978147623505156577891069360874223434394934000476131204773669004281618333377673480648271449948335981905626224759256790346680641091818767269715277065632000352744879317754343232793270078261763977724058206313992955861575453372699034211769609190926323497434325595977441824940799997703117853635344766208040244645372262279749056225941848195737429771881723119030639518896646572982671676493199297974341039276338078045917087164500214539860604792295136618044118182586746765085368277203659250400429482288158836763333408612462737699177358583640522662388929177001242572494820212171303418555831288253450542153650117282720591077319085691857876553056719478376865510085589841496882228661161879540853719485349105771512977589087452889817636919299354348444927765122013375289181882019814297962354789698986923688882239300749618430051191186005085859243254695732545401684868597082776495037921593999301880023085950575935880853410324886018170657474882028233196593193493626911596111195106140961176434734499373328695660147642721982967758246743528417658548777441960169707057836353091820967585276352623862747962124106204021152015916969803809840807952088332018088803542878972745556233748271170439025792947032727029620283814320910365901116291005556675248065803363891429785332675312055397911978401472297900417194544903601884871196604538172897311144757950117567163287599342943345632419334636714033988911619066901719378071215042293207028745932571818481090650700787993872508451251372082568626777931364275097453424783302747374460924527750592392468657111899976748876824104583585714744866977901964789438818654457689454957461676806758593199379955206679189022463110079280146345726133719005855718051029176400576004613115094848659199515589152153459766389749191950180097590252194286620990892293872842843744547650918332195457327945947985617169077551823394274048209924458338240663514283517978306498368998877223073839519411055223065481191042999330363813180323572140690996006966272746412996568969812253409362232712857258557639569853983403496045294494183135804697036718211055611220971706309475730784018328402513898687370403866234225091525337786421263418018982540062405551077688072365874966059720960112625128782011649345802049775750547404188590937812781170671656373580043486988564861156617344436486542620014084336710230053423756758821185503975042804948318947299084749157240062921754293420851360359369234354265656865571037752316809087790794217081226580184442359893109675676283412425579495039914951004601071303693329756831929424583783397896854082894822197475818986383617852368964600920873660633382172194580307537194511480157900541324020481416844235413635003129418410911066629788535751899240572415521303556074031969693916490603657368464806990487752401286465750039901018456486224593298019839569741769868867123814196907387896980505699378304140139212637432020853472848379083219834761820640246651746503601502552112836627687513214573454076283164186647193933880339623453625024163104173347083409165101715452563675550822991458432083488484464466404528308145355576898481061096744834214801694820045097286029104332078915421119146456012381588698755447620026191300729623287962249080406016744773861362473035266142783341189691013956971676134860351016482458931750359656120744718977667214469696393303615985213124830804029039363978341476941893813035067466242192210667300956657746028023393078788097127270453365847533655474770979025773162293007284393471837544919729870478970899985274955029580812951812380558504444037986937100096110349584675968673765295038062847091858058003428171183331788366454189750149636805011606745105524171391718083304680584648544745242295887768846296109107150697831489413501588767782493528626265089646029007974635531122533971094585835144774711424200732508666308280691346151306052343147940897982268174043986941479284289085322571980139164145145357955220021377974337402586077377391873635140702153520483049057030929899300471810937407449177599179924765902916645903323028643591556192991278027161941569641685836971903890182749951015759660794324121895135142975190146290952823848334271851749335533095149744702643301520249391196853751271151032194388193764519489088841296194260417924871609644157821176285157046383824013632588236101965214742017699157033412351481655949647849091460982819914801980497623229747639986982883291202763003496012896472534926122408259123777989826636818087276998744834002616495330431700299667017251652602514699466472448217698582047003683073058896377504204105472658034068600599697464693655971014003353795213948557580188375568749442734351107417096348077787034526936572051822218183295823447756281985863778771218343957453535416017542016410040556158209480285701018022660637591443717564261132339900007336883263084447422566230619615415069001199534665100357480802825124124234019496335657619241565722055016300479740779803049883929553821165978911005146828576393024683596066811501144053162847578725574088419590379435126560347879241951673050718734523407287582329491228856497248212892492112395265664713361085922069089961858947151601952718969109339041612488304103674169629603292742421869118760510188389035968657270431692402165333017003092480653867713830826744834173050399385383726237170576809438624520379459089457393342318931339784516678270892099652614947456441429313969768441369059302741310659680134327901243223605043006294394632329999878267407843858573646747293799701058657407772073445896321697322324458279322080861804932969594039989134077757277342425335148602152717771745774297944705820345608097256201200573495829141280520324698980234852066034193842572949753914077492783018877407880877926795372215163516872971731548350983857764697390042482383981787939932609048072248086305417427773501536630210686336457369724612351442778221744571068791817635065701447927794077786775675402926613561912279959619111783343711005517742105741509872447202552449690452758917821051545560085696644074173419984296125660417016269664884456998481820715008422454509057148237011129644876006725111528700755294183448578022902896599277412761873813367472556102695755808184513239220431802460893703085966178641215698797543748953714158613853188686340443773383994724866867579013619186912546877616789560226894763384054593757767975633371343681668109547808576255880020152406626590133652274724200278090118297140284086648148679267601998135215972953366201272643600327524786257191744272130987036160941169025954073990601836856582676707632337003619510983137855843536172805465294907172616066524364911441498898867436903753478490403517531174799933247964146992712954226266580302307089626623894399538476816919749647846754226530795138420364821536574098464421910916881932421016758811021102286612439283508562702868319459582807787505518183865765485687513431577756438063320108212710622008329380280062058224289764352038118026059028360301207077018089977134723608064089512466819548961914070332546984315418672885712651525019721351953249592875468815918268423527627188370413375709403882634978416368688209831495849412639360040147450106686632633883642315000440741058150969670386970229505372809741208060129035045267939286015275898175855846792638801752077215754141009326814669507397826095594980061792288672299282757311453805185244232383732001382424238740675524808481266005345502460736997754310486658156762720476299127203733091637125461708624073763533853364744099935371656981130701300277989725678141480718222204791410464909991628373927040204842421444925925677438229626786151035165340812147436999793941835687494621133538295656744170098969839890225535545622832843784372283268411447044984066885094499886049019459072768227107405462476067676073486222142630303363867817479290437864703983218115658902236670109035027320973032798361303505813136449127865299283545557651799602368573719214325871028083307597881457860215201777862725045185047568358363019398219456036477153156015609942953481338014773064242926524897150864998165087183982584574318342813547574182515534614050719170937398850730274410514620839744760051603482348179066376626897114740291048591145184737573170274575008814065400698627343285760753756031291209758008738208336896778174897416277180387731755593767952941676479084593389128114647979177748921156507865280091550352649016087972122306311840980422191792087029175321752412600148014684393116585681818105807437056985913611385161995843514433103263843618424821275341448150954537453451878771201122383934646633559687133649512105054360140055366276332320640406683750439002527029829961505867318236313022352037951686000475628789705051498305515120775131435614132563521941793970701234157671723388851030321907653697162539848812156456247816894066155681420209825404674931929211296439212259640961950064075854898351112760123473748905659332861689287089390917910431645023578121635246559247781765632758810744297324896627235175314856527881041007750197661951189550916572711586946747513793591907394379443727393295247694971043472205080665849681289671466602838967445332814995571252747307754532130128148473003326586189143379292148503720473577475093601777672605241270924371643050765796799751438166692305361150182565618148232695350151134918388342678713273193769495112266818234671204633376881236495165188660691179621431542021118903610362667355671580381965500141567682250725551773605534942870473725954443674719830470527881873720812597421171032901648614251368987771433635791563636461601978281715031359265699619969747373269853228896401016739205506561887273240365881908146309281473865849091686293098845126015329341360126466771954559800670150775074694944287394722241192389056801514279918425764964265016845710866234452269269836575621823493654884261602707201832788959476585929173514753721559292928752124871821257410865919300737255728596257010339567039643466258610318375426068465685793058918404277326382790744151822577584739527311373418308652374110579415142020800848504964229625994533235655293998531435507325980563203912819447993770006798966948287852258242869922719716337122215229694955770761385666812954401400844698180448047744935064794689454383027329691966279377174772413191324919911240805920147771623770934488784819120804927110332936937659403386854317558370600047238635416792060448124185049751568554892190826852773702407171585070850540722709119495493066014708722937690813013726438675607690480671666171705115181509029934320111891693689431907206602416111600986734896264229128628786737530606721816300102751744577959749189194470999924088766438570136102522822589325655733026909504476263206215201901025955331860548308835761468747844737122671927002000656159008747229915764040859047589059603567252628223606135454529948394448018982126418418007827910612171214633075188766651633204988505222549503843356309665175330775879317137025757066087367936827726813101910533184116091695163620302231298571466417608975790656262549957817326247020585531285251289284406129093573496922158818020586571170642729367793955887144450007661752922584328498497199455997613837815203198588909175754786922977652153938439471339814512717283696413640068801683232139094407004607608052407243156079261544648272807198894252105066841854143972834023816039673897529821679838612546033018680915155963794364472145978949974721709072317938742242724838268921292129110643708678198324228537718841512457449410831374004778576985162847762566529062588196711877078619467590359573861179376340399200717961111349513248386118249658719462171943113983334841554804400618963590198310793203255481282049378013774518664835857576832070042929541036499649962576957576409712068060963269206003328850195366321249359370255498737619322821590221319009883909419624723373114471251956060401554071878185541483835157200738315479296197422695772038507629903437880478098779122509936756545097933117923363616440838915362155727675041116565036865678652871000714733475145948034981363415013837041787285012644964001392309092413341613086340510021878093744810193174524577315602177648732767548594726726678730182038048259342023604325747646215720833851040499814848776368088563136735586945949474788577916820998445780408101671446131528931877542554497191256698842904208571716386615070852033002935122164425932356985765208150552905729561478521038159006699791924025037393153671781732244490641059989059559976487935068611176035296796216817277335224890352710616669315252141116062067236932202305762813378657372806432227706036029238114694911763902876611404151856160831216373951789129138123766292814539499905569022974704314974633973829759086666950926240268661196897281254848275811360127685196820057499382375345918406783867545109223164422697642972105541306200022648953613280950778183362324230813918679102640379590659191843563919833671707280060082696319104862501920006612313269785870493780478761291272990767150902580509530759907746970119526356612019641671372598622363756808409548706341269885484122258448248405638262725564739152037895814835994403864047292091603750643678665486371013502453525015980730432093490338067035387114994619455475625147501808237044143164207363074496325381921925971551889751896618203253710529502806130711911496943640425619651055926815034762478358048736570515152579113815392639380561725378920366840008794794013539398039411716674640092323557585830411549304532918057980068305420397814100912925946023747494612245976203419234527569753217171318070610103852786927264601918344407074150203701509973888958723680547745731755208355527394739801008369762536962785112584139518600314852140487741964076750773421266815041604036623906443230693497598289279810060413641852500861693070775236345612461530667784525126207649615019863695152460423152219536129181585410425938019953869319880371649097741385841298069141491865506195437485595790217694893486957012776028601273267878761419141272669709517440994348698772468100091213510908027032346508673438609511401753163588904185891772491326673206612301897808092067548464242752126621695307771066306741212150618678939282324133557324574036526955449415434395716343107966311461905787907752198647918568594415857552958274151804544644551474919748271932959187116257154285330100848106553517356218396895824289498243010056276030793613174628694345747656583321457327423110894209004989445294167356549523748298235622117173737510303655242003572107712914506505014143232450832958623510422179925565682191123040220232572950110513365212444788413894776512178058300898978650758693207143144483558953414442658384583943541336395843222919681194375034878305915825100549980023960360018652738350036019738938456347982330963089114986714931262128860854983899216568867284800296512598268058702912991830786171998521681301866522695329901974594468787926211337652731874897807564888643603852991298157162886160248235069434683094251489701316635170768917676385061919514834443420120247623614913613071690308169609387392664494229628594178040156338622073680602883158558127241247585568761956841313506229101751857655090324598702735395401311730712204397873677194904613846584008465511052830245735455218248020514777174594427888663911253023846481374410349189000185329009276333807848597905518686008741531317947530222354925168416931045056794059989934126558993503990075473138721155394065393259742835173421255765208794977180691720500900578396359705398860806130499575551275313246072801693109722713564868154877086861829196687817141542421847207331736967109572686622662566812504726360963459302883803223560102841315480161713706819577643056378748225772375920046826201661253671642780444523402205880646916530214016650159784601966076018267187504933500376424788908793466669848808701782727758397124169702380721044371187179001099919547836474488962444801273538866521425962456102327968188862523833132752519378637526806137416693612790148753433565316462012967059980883542589812762995494313856701694695679146201170036247822237242193432103768088476415880057203438841100431970880539497974297666662626546298488142146731478383176700282442780898789442504993090456562386288183659595498285168296852375286191699007333261659781992319706512491837742323116767003765265372673971160419453029105043001686042308733225502058816249150393024650588878388163465799347900788985609639010498128834193962504300283666445933780086482079253986649819787553567521958612887642720529364241397497507777144113610983957780271067743656886112929921840808555769558163328480048664680901679182690512730530412112143750202124192195002033519212428650295407113572672536767561217430948533378296729356110506425347977508651255395261610593507132184269639508595116564611977631676483006625724592215353335391096767425376675737168804187338684156308108519907389746213651595395707701718806708963722078065124287309340932916819009615403422490747382169930009222473219637517667591830532210971432404240256459513844221054526183617438853344882467195896841292063025637163545462722487990899641702194996236206703308022165496616564781608510490001109558218844406350311814654405311633758173936045743606436773477693375216503209414928534228953251287560502991706043507305460795417070544604638447806021450302850017561185598143452534525705335463781018685877565959992206470169043714478408557590949970732903969648470242424308754822854649484871229570608647063561406841805622758252334765470179053150599446525908933762323481961286772819370293482154518743203430950254883952561828243814407709873688949221844754044625001481207785840251289976482024941025123594679514235522853130535240298592857922369427339234038219388935044594852281167431543831903975530279985700824447111849328526074176312899906306008971640590890961495465887337802820293775810088630834874761012978823263508966124401398523673865330288873663031723948484729204294828655718426387451741315408250864205132499879545683253522656276618663554851691420227561032597010364530399152272622755655910517943605457567924234851996722129802349325288893094153984920776782728356993387213620827047069794475456179915964099152498499208781891285569186711366158057809712273853336929507292765078032789140392602323607341586868997293365836056617054227607812227176259918560634803977541870799799178972303147695679607952791568059892645753814689720469950976262640439484520299184191021734678562079031603189581846875294671780437089495313288711017850629830869853403072555125239049801150548299453255238308310858735128302341942048966007508828852355871544070659472166504899998260326726043892776932973393635414874728962487747365051488949096620191619454064823671629919583353155450301417128554709891794586480613400389094613084034999388531153127788093036469590674063595026882505304715945923153754664418554561149794648342224135374461813216037259315213887929932323597478774970800284816587142941089745776037066795343597498895440058301797827886998513219391617270221444168563874525731840835645362612738160521315885832359303265095052849951759510396372996225708070210929725634792587948432097698319911379430251086057399155321063294457038615519753949254908371347233561086710419758835681878392673551787710907111442413157962041806170215832452316217779348021333534928917643700086157300537324062188982762015890673357743256413474484227868643991740556176884260281593773505913930134785974941440167271560959591992498953029589582404352069417721622850455637787080365611867999149456276966064008562401719222768085218662475478421722630562986384953101900446736049640016988590575037214281715887602981581783904069468451913279021044020394343968326163600336076360207308170710378201157538619172532566668096533035871713792252863189862672760341928230292938187966531211541243374250048564600988367350974238975452775422183767113546695708080351872013103928407404128122432921854214271495708527118817589768511798055508577255932134100039594202274327122760034694524157898515799733223514119430801835108611975537945228468585600225471243345098986870049470381312752600430847396570831942581441490227018526754029004256267636283187458913364547771534002191830003773946383692229757167921528225594349822102919036382872061299798252873768889564646451495652208843685348471667468773281118432911820543259543096461868136788753491267863286234068688799828369792440945766183332606209231797113810095589639729275576379119628714438237530907919427520691118015597139953756243701736618366545637715267757695348971719738978801124322655976120218183554926051178046391452123504633082126491610972132629048526580453657838401476437676790823854777351682995117174000599518047941425589279888027042110084928198560926792733520472969464999825721777754444635778994823307803120572769804099647996078649055216443200124421769642615912931525575100776077536946630201608239529104958769643923562953767315258341680782855970941067608177162916506497636116093836245081420956317878721722808249650588642869282838773042236337181243119859091323844217544475399470101051063172171355385417032554821708218513445527476020311778557524217113497529411126082149419971623075761179188770583540349950061045224334656234630364786632721040744091232822624448963206988528592684933305431027597377097759809363352680305650363535031989696305810067936565801480073424598503412297660010221249169781933070786760087497817011459160390165050947193185350975604465498630292182323006578986405374879840271797176482528486980457050527756802861617638319230774267565770491284335048073198761630953888661155488832000128902111707287464319305176001095346047560772396420638063957776762840386987803339104315273529222910483203293609510676519511191295118905529423015167987904373266165912152706913573309218433941025547059638480878016740054547485470534488864466621926676415583481786009297317335799062298196797901709206933977956597887921882322304492679012791706445894932095497424082008913763345416207580980291018518272757614642598483715347241071542986313055299100292869776095794060865640491960161638756689215441960784126244968618855184882654224621189805942453422135973800484927099595095049978033655283855624499390809885050963960592089356465687183294961593876764871598889793080098384067901249269669493155511615667579383523656863412211470567950883425390594583959056146136452559734554672119507651717997916269520496233738778225991020842822261233176413388947812114619707691187574485901203535618939199314697541936350362617747457143718725957298917433030472473213547605442383800548373158791425220199073901147487329289643763073227962687019877177796808755601539627471669455219764758783598604085209949779252934804319183376771806740485170709441626849334167240148959329109457694182034708819157078131074343779897655743589961444611176066359512492651091165670520530490764138434609635106583809194614260753123099867761750029868658758261870783237963072148454871102416933992709727808606065967881053265091535005602017354857361272623716847323087119392819384468167400243348308997546579446234037143891373355355352259489810629628765047756831329907737340269219249383098135930163241231492359516348063849745520753416186406612133431599762397139969642320098797766730561866262935608916760505353817369305281617093136463063021007871838804032131457511962654021284796149476592698361117856203173703583692947862767861788514704290659929863877304422525370781005387335368750243408325247247455063455310835192815157909872218754372010893662601300172586227879675583848211401513943374681509010861600513289808601803849560723596574847737923454552406608762661148074954090106697330428297697085873659566567303816799768976584297518474066406642390207451509815029142657985338430104480238298099796466612445887587330276240016784779750526157721080167634001889161216753170164938988162756562770263463513218474727629208147877656256919927710996984570070158051213213504911774204276032895442968517263903319912048984884225731840555902320550373504013416795729652375261691690107375779167400697717845260516046360716513840218782350093416119623736183885908006593105440444123732506127673641024428663447851501842685157089273222546615737529242653213513691338113375451568652434248678529306842108200969292963405662797118784428714727232576719995700744864612822416703485815564482981658263357036818399092926338338364395384359143309057465988295341988892132531947124217582643996078818157640661635729825349361728501151657477361669304524057589399409650220962197842075471159973273019314886850818741484018456618666715650029887064156181938937280929548702063789929163199534025971021481174567734724044816078410126301691015936847884691632577216887696883690187431659982326215208416459413761080894214560488505955055691404581043830478816175450828646017986553305411857565582592816186470416010928675404995736422539687850189823004815752760365328510820333141657158327375647539195168298434528715538371953789613723477511000047506615856405706487914973146431457939125951881196192435539926982922003998540205056665382356439082913386494648171248822186829230282323368039859374866380963900327003974622937922509756728038522748784222346990073519101345961499608699316096652761382233856725549364339342849321521359660726706517513147360775808391771754760613660771961988756912507517461326492930692787485082890581515041924645131475901694902596803423865849024414761877070326685216463761755688288408234108722707582490209904334552793083739498654847468599250643988056459549941385432030481367100559883234038729790139114401487117402822696069881561523525897172677917946470738541995499869449381466873071926448416333588246093728573838123707732538457164812746845519671519913458562177533791400423215794033572404686009680251413327371849943808264197088846118988230823352439497569927259866770569888433134066054497329856635663085789362518977733544434303882897685463974202600740283797730790482605077671963078431478061611283420264075724742556120262809267152367832800108171712716460134730365852844555981280714371747452253456930834335837633182712533657071993301366520980247456101896168359894903177426050329500881311009148701167258982210411091753485625733889041797999757395736939537733842324121132534796001752643821949323059051304497905935926962039678458516790615043402299049034363748281030746968477361463499795035826509122721699465500442744383150883175009651280701668302125922326670041790372390446128914610344293722155507691330941192406424513705852932072792073660711032726113779094607086426709909727621858444977173775640422754758040460376423687964436678747088649160618605719484551513202640282890404297948880049496541269737599447936812558545703695988543053986770155482667908539977852415491660023087443586512966265582651163803441632287435801760552978295032209713311239734415901048496354753569634419241770322032472701841382658917656663825640008733642883058340647256496647047404271383856435053727787977338473331287535523238509395075955672983696141630038862707163917574244106727806884082305637795288336700360978801168810606448297570413747018772936548110040699277312069007384373394674949667620565518713361074205746729521317756332261802289922434390926559937804002973520102477592357239378411811322582522550504495927037419567432986010512715738428817659674422457091209394255558313591151863066462887691904177746416116617630195566518044041836180033805229876870716100057688633284425453813958331345818723017851915161382363181886442438911940930116006580490920218466732854523428976648123268454713104664805325938394809254083340668638883733385806156546394861003582823308041779335595610749551418963643642842190758273075825726774502465400303529362541387174126255962974574403690522146203308816382287612358983945484714329178396146320352586910447096910388969552287989342525060802681716295713752149811315450959542397887429774372854382490316423917044162706302865476758709453535255495447952485135791600584973042546897305157066574109848615074965448184817449356879799012999359692115935352160727440889624930537101767530453433488297078966672797789299121578716513863265160985375768683106700739661340052360531675809539056819968669819221522896479590652393379864742500261556478500243650316542613692986842915522420164546309025532054595334040025143671322888930143309218444792587041793703667718321282630449836718296160870561119399055266514405228135195284918302788698867426328088952436025515300832003677608809245728232625525733834946595980413227384318494500525500876365761437749218005386239167181767778414098252494711470640063591302895048412855086226494124020156676495057263047936964020805998145122865470409245773001467528613408550136670711659037120022869864710759444800786638283384299291576766099558718777752042907993371420119665078665590142228385282071900468584712528587180864054159185658265105317651628513589942293809321621322393043776969748872117869165280273809744219471574016405330648586856824243707613131919937368321122133135900384574542228175349025462024981868969224103232736804698791115159895910540626490612119942044216205552091038907674379713433501041678970895303425356250384826672661697821548374788115251666880436966975001012735152747476092401953827780937884726180227337550858636269275254099396388012996988663753307057139864987725680704066950417532532205198211371607295896085966556760372981255800476512024367138585954481647896560679388487549710683545239056667255439976206103974405750121449337165413593208024205809960164433603458623292611963389887877873882669743245439728326717417722694188214827029693577020695195759999249409592693157387078753854459075694361528497609146854948276635326186617518676274116313716669900803993220525629563789033515531478533607613963438927774535053025469942420415385255161163677732118753708192394196063480736175124285117268973174791873159875084476947641298449582685390729534786743658215844272369248828381900874181874977859859249928479522606502089902266655775046643893743709088273757329574693264014187528331126707059485266149195204187283201857307565458629447894551333035138737209375451381266011157774992423959167593966132981059765357440141413323341993704453131744655277505195600158920405002307884295257527345777993371279840999465439230513696641925066514597154159412306710191043823739975728643281015184458711132060023246191140305702194117798584568361831033296220101406536372458562405296868800191078721773359721523962099154002723475208326863546212366452096765106222915905309383650041554651165396103064132008407784590340477243776216370969165312808052713647168724950058751230007624636248272268880478529567550101379162253837425608629764237852349458068102764638237330010597656278033369087520308188749853329817510871104699243688612314012596819039051175081632598763316603391082473555085383583190110439991719498183978588462505464459702992380360535166560096075837233192546009300082939233592929366313079229214908459530826961627134531058319948653704916356018640967421802946705634018873380631261390449474362141215381932016662391981592217565610024964766291879786525407338809977390667508602641309429980076785791449806115043867429998655802753442269443526655551105666597700502356570456370230076482901623250002118714612545069300861396185850407270749338365782180131407952751844410665974032584427332972111635542845214393136224201366707493881501156082553183966125150284157899801738784275408107153237147562568707864243093243034814292203769559128092854687212000377475185557417082035921799349024319717129816350030522340757127091977469856114218499947370303822479449481092743708437892691161510760098550664855679891635398080080456553729119918468785242509275519429227124570670765161350267281699418193556695171348603850060080526039414180296668553685788293664559245000191950115449274655255654683918607605754774076547935544495031267117862597799031358387852020187784694942499345745358064335346364311779034511868186584852609983289059730250362316651883988017063597958637208944557975626446913159760753446637278801826815857191994133941413198288982023447056970812589018126293195964004379736129136936109583373893302415874767604854936263345455357413896746133685351153527290524551955685166259007723535308228004210572487272785818317841426231218425789739842663922695649725355789651703137311285010214005842250304038761112036972624762048467060724755621438536318448546837693815462731722996529425680074834098980288866285610449585744470012370577141305567000523980671805108664531342952316418482106971591498809321131661185785841158107368632865175813865282605750950533004855860484603740522923298735821120027608069428891518587505385164618449948496619647363681494774328288907420652827337022497372959919401287057040359638259277119764952283811553665324937582622635073971456062744729698694756270824912515278033125365777742010739430860708936219567945939523587471316770322392561111463334349522579341368708331693981393474181254646036417717260793090731490625113299211432840879666991025222740357583713438826759638955559955781906429406873070391755598735867038170003806046414711258263779686281795026331910077420707743093146575520654045236776838198242061888894197360432107676171514250694620228588184006415895307248719664666076333312282635150149214781066258758715164562320356725088386192212941846254116330487127104090068242245555695964647220749160047650838614525143131084990624117352506145372839976919749396791901624194284408771305753779096230230845694560916040070319407184497498805935290091688601340286078401786979401214532771973692607748583783988072086430382188431263690195569508581284714903256718533799482869468902114428358192850995634169268916582251106067229208738505054440688483613383329351510237840719387549463310064398905140783563301095563667897035238814687962504775082623203899436187144753360355081111936417665734489195381522433421236257696387477551979884711559862942389673406868615506581160459841907577608403836290487339909408357279626331810651373234063237692255584136646806358923173078046815863581339053564951431042374375792864060507527360371949795180393200576779759410793172092213635688896864781872566811260924470837397262361619432168220576873739540154605488085396464043627358676022521857609926694130602808165980688474758510522831941448335894873845392997051245187960302449304543908815264030060909421770298643196706053467508354594226128415677909752784538438999403548207193373636188140273628544428047177105476938830333304457885387567940550530510811007098305427283240173883348182062912387771861213799733901589730986968761826276125508423709118929657389133164632050406397465755081915840532383747394274360904635182438184144607550573620122028446405316527275289939137913623475093587841469557156864684213551458714402237658760638641365968712332185480095720872193624908094058448908465422146175117916234492123838941129808395669012219611750186605240400850283238948135598830555081736989691216446672042672284833710847556705949679628768437028462370324189088331280222279988042730393704937064016782423557045319064489112261815797368292525149230499276201390516637426838473614298945373407715668747442635852385343592888514134384359075220726632696870864882775893472865513794628073583627222356416808660100967924176568143857113542487621236618413670455934147662633736759039962022437116218740585001021426687095842763231779916308869601074915994907343697495406407458337511631607389327794183396939219899017428489094025583066474696086641611377767043727846586342441768422533455780568807476312292358656295325241266659875595186841091387440026346892747995420030005439133308836627637212610231086504473602279791915962710698743207200749017650713743563031106722295185333075808902971511094196272728693379759264623191602692171447802716047575895368505322499243168687342803408772814483513445698381467980395329506513001748526023278172673925879979637755236152753471334911817725948091030278386734092114789632092470750969595482151119383863576469465495264084458055465577583133836517638994059212707882070163024166828950772728360419973698041732091826688809365905827216570601064795723112477232407667778022484938737975505656703132811480066397514893573171754206583457037259793665749148565409854229646231381126714014274842533810300661404645014980463631258743142650942397724933856658999428610354931243024168127136460064377645780119464335546598442244614821933164404299683337383709553375132002144132115087609147246812614214662343508168237999340735234200102595600143778973424829911553177474004847170701149869825076294667531333754048586788806984909378489243527155748538527802627118646986946720784871763222318768701922518376489599145872699582920389529676822660045509210637182558574324494594107292782532712828480310565138543784852868924534341861038240586011372494363078854383762884297872702049527995421326703931537426729485957065734687073016860189050444947224151044811011766110345292825404521603060618926770702715329995652061927857148023600961168753203546123320623598211517857246975539103599502900222734571808645896204290789427706055374687040480646968859196866341608563104091068578004542950704886603765627938067409918207671229437355585668757656720654456821627901964480390035765534094750496028325227900335753698817100669845991312532905501637956377019272699509307104641776003071662099259208327220259655459836880828028313340943504456013439415304700200702370299383979005429814929511253326242396861654642459494745288927079330312841885000722932506398714291120493701966431989045597982766940006389141862240292759029354951377108030912920598257183149860930211712905039865037859138023471079367463660443254164168535147998540977241196516051211108408191467414651959240804113252191849781404000981600201524690811290288491844207040705149370255206022317268189690271427584502584148473076099946806682039975104042318634602181405134883083323054149678939781235550460065640412314884521688914886769622203736860957412814570187445589089147748725922975940781830482560164693097357501968874900857849303137349064006089664111549327936984564596585603331328446027411911599255654274089757211324913615834132087238028529993227573849249128196128573949315011025700179181538785318490245955496844783917488812857143987965361599251627720057171558193989276905191268506460392646754439128133001689821446540388778273885732152449979248241066608214707046335497782223681191390488559066474966219673126146098472630904367971135278773123195474709520066151817248406018010588803107853792039246537690112045063392157117954683613568190474844477235687750255440442845295999067066832636437914180989928564626052702586537882158145911419394439202285863847144995788971663955092358773867896734551361065062394502457864118593198602285484903832447973133435871361178296737807312774497904245607738092144486756152611059047153913233965460264967961397312795557986622174752145566246806631412591509560910641540710039222552651216095733520729801345765426386846691288951147020884817036900801388537488303563584309263484570165520002482515048100013525329775298080655166670424613733616462165762766623565463971194762091009604355719063659848562334371197473998426205735440060105231850646216253513924602375354850118706506185946134947664568041319390106983748036692610102754984874508329198161120060535292518930157330995961729846647441606803927014049259746813107977879584867974898873038748802609042314681944903699171855253875549655674157140354602149043470252205057992275771896585691630473243336139283254769404685436692814227455440420675045115492764566336237461014595897638701390221709287895111810947314470116954615735009521008771398453233607997721978521084640829063514305050203119242090274224923144704122944005940802470343431916701894287510293296503874082363610540922425306363577201403197314195433928585195329054172831059827938909068896791225613603005487373737145297975967937716118174114568864184613211124103145184955795100188439291953491693090412859159396162087894285072698892245682960814276707559515062911791906309023635960202441065049396116875150863468501368281764128281011877504257013424732508785565006421406303787018013819999688498631039003572066372510035517523480391440168819282708798007124473007666078227526138128969973636179122638566621039808729179834799379856842762716658194799874339463348302419174084618767364367208356634440016308410783229878539363321880202881172713880196994890477608984900472724025137168486863802503819675477434478536306822782020461293735018355440520796046529876729561788997730900775354378468259352431602550866760585624833798272493780240169499312150210571615084822853297929749930528283902601317250054443493543413817206033772429028350360505658073560956625382179026484287248874896817710674816731570158112765385468695161761639296547215427572246455235023719889346280632976315993390207476687150656228721713292165440891439474574170004451214984085730740455543066278198655193878895490630431851436944988154908000914443735309513580984395686433260041092059772643183227054737511217711238952543941274792421519486753872589196524178997087985137291740820189779673522083894521907723129210984290332932674390639382789819649379069570842620765882606435879396949158103227894491677391945151466907945261266145656478898417901694281708727725099498919128166728929165611567784794859174398452723174641826867735444163577584781443023275821511326771825850556833321553918756372813277390269138414689996927859435458315680663774296874767118651469422584283581725518072342330596938674059029220336227223418108289224447248819882036906265736111677140796215294570520805541721805573557324975706376059370677537343761150592407170402790670906529899184284685012153784587882051348435925468168277162809623462538963363246216447538211373724562130667338733701203665317013591800390451499547608789350028361531576709918524243814071654277062048820598283418155390710731996007319013525694311891008054376249676976352827893853997436052548206996892288558396837994500556925906560887329163923472903379042564224228340614448976951187281293584876758777369111240867092847921201755294453189459973272912582767327684354132199309588998346534901895604752773752685914189491096934449766699068726228040788642561179984152601274902918570533844850396019257738068422455011302420794060192888606938325313806248047619640164700075774744743495875786147022678676809753576693138109175544096758170454678459165607796335049602597455872145343993538749689241021662718895791512073050702393092628972301758595527108910125478463010465544609661319203428708124443991614068991889756601829651040806028694770937819967231740243177980606093656235636694790102765588177197115692545118655466298957868377311597248587564992480865774822189728872567207324684508729064166345040742126213874437760967437951969480852793625544221263372424773981423689046743191549129452357721586307072247043862368245609359614331560127175574510039658217531326817065134484926784040603462798750866383798146583163760195437874309788370325289225337221797882816541014162120923394049188800001835721487399837482709416033437017647975602301860775707117143370930193863964728438150651160364917010774895788595161357289682111354443959588290524069488254056735168619787890666377319803704380113398551903556240111455546779991782490343863197488149832024853063800559890900832222787420301492673126043042650169099561361520763694315741476652362253950910826767941149045590580590892761726386066736488770741018551341070280906882969416988304195790243878644752002653592819662416277058492964611815514669131093099925952941425044539991090572581856728130142382688964539235435068532079915873089240489350482065028997327812209987748344615252459758629848017983270409099369030075207725402273365852439925385075249632032812139177618996454365771609490657707076254070306594858972371510534409808881133174295561128654266751473091458849178492406641647084613498664703154928123901976365974441095332942635068348113734878078932411724213281572331678798564242102580695318196664526928047420797076240607179333631925557394793789516893424887072599760178717737713347042341776688065918765356588964300000834240651301592850836428332746083097793812839681561595507158356282728999843130696798805368725434092410642284944654897972690678477700848530362230354141785454963830238474543384957918093414340438724608751467408796547008373257452757219620725728962943240680071940147750101605705854446083689335235535827923430803176838796620383601057997022189291689396894816858179978999127476061010841343166098009075442765917014070467104501705113494764043340243518095861412264851709948966189802064499460381515639731992081188672548619145643233669438793032146519340913231227161820560789881419027261824633680619751818119224564474926782571081883794046545333366330040712191895481606527937028635233776890089215007099332071286324826050240563561087046553446556296155199009918033506068830084606390232695308787264986944659508393678470974445865810510877781631872304436816508592596201034169098155565405748246698752178405361056432412216847567833035574538323003154049659481821410837039303820608508701320441957871150273991894260594357866329132347309054970180769062916549800585961785423843269303071081422769782230247825055565490447888008650398088364311245644256738537735286548109236741656780555516886359404982864612471519986701218889010692850841259500289298572438198393919185237823471129007271454557891758156025897693456396770875474741839175436920356142275072030220404736765696280913262149460369162725467192210254623126288424314718930140701185366255479257667154429567508330805752685936879834245317399673413003722685774225117947527381641516682192694542855916001613848462243034193975687989196729180407117053135409265705745547403980688505254751698494831085820288911371198117295985682986965585340152626301108357150610611389700791294885467219730786736471715891830094590200312550594621682803914440772643951499842492705602215309871916207295850776548426137254042635069700301838212907968793197151696033279911518647547890741586967383834349852388831697828612131037881450980293054276673514824405812531107307810346370325993172155336397709623767066532610523296997089182977230974074025090816327967627515526721831826820233039642923778701868218014136380283734799430859798041578434482485639823196447338600105349947613358573183605568369122560142390172607790043205964803794236149173960606232459297468715028879232391718476893946726214968510826193141003302299104212959285391897273009044062693833803146340735116330343404680017848413617301614816932360024803550583384859609074004220476179371830359212221836418307267200324785501576823711179607079781517546848684324003604518115420337312928413887398148912153156180325260219214936812290537766402124184962448811533382309547295968428860244537767239505157577768941667374382285626963332716890850028930696294709305221156679066917188908218328340615274009966769478687843722756709360204104444427812973810449855619375678178548083843374448050773489633974014291476783525526305730121858214139215127318827548710842935230101929232012238660246137423764503950142495989320267967379536169904233950665547365567219568305724982402571956254519103347684039712343351851643661222901414624498461893374949730506323906388460323423853140245250841604538725649222762371980946078713826386700365789675970679058511592521298884101709256740373303373770105738265358240531680416870958162214987327797881299983058692943929261620778578701664363808989134009008587501836482873184529938084249438136377185168037742462671822141528064359803131708614831963401027898372342180242483294656155937905219874663896074199588235558702386161841288582865493343677432617122605282215088981717697114706697746102547892838681966385141095335031604994684801332504205089297053202285909714747289063573467385638426765336269682135960150717753254376491973467904004632702996693170463158459992253333611107049329557945419729665683789050008811392335576770640206179898700256407826663614616598525239267477536729811222420635114668656181579618951280907691594048403587390357867330546780675301046237303325497319624748876536919292065234800838003507418019947496645104488823480959645512295663483811706830433198926546483228429206602073061746932955279550487293877321653833755801666955826300932403411959402144332744875469448070350935456572751101594383867699406764244128126183714778335102970291954821852993163250965553136288807430391143254825766141874880287717624602110856701805013594704897896268549815817664440815189092648244525982252536224750660740936648264547612869890179581982449091481315706208142506169437708862124391121882544845762864241212714815970789734587965228499808563242339696030888452701665222328465527521146305761456846531895163374820544450569436973636252027285048468198941026050328815821492104179469308306922926764534939778422976045600317018049797031736303100655312991744666396965445684365012604396230640286335010653655293730074799987010188646791464909625322100003446711269262516738202891638169485203273705030573449553139322600670672428875167677325409227659173129936077277614304163094885004261730428098916989186130362065508380108899698998047157713033195253463279627172380937008745350884402972796386214541621104768492572166759783497421352391761196075812748335903935389359720064349168311133569274143017169736265656981458875334242585459812993229282113074420374506210943327886696946604081180486292491962273771382239614302953623801134479932609407451446862703402212608709729276146106812897206987468970895078620133979993905949869365946486825341256178821934107084532419094726150458036601829506159260564017318136903951747072781903096235655702437838513759418217127344818043543376586500345330620095878419772677694451271042369148405950510692648326010357323173697298727548005251380654306226983848129028177793698457480059034475484101540362749697518620398418401307309648167972549855884405671403991454453288358946936904034160541021799076924479188996443283736613356073841426805765308007388523465458376922364725831421690726256661166369428912574529127194239365774687552638415524579409557381806654990014786823033767833928047066222786797474858996456987272740420711530981536337635652168133300430799634819855997253799079865253966590867776584622150220502472436229838672948309307141305713054762745896075050508324353549652794986759922013700488531172463682092511324046786427625760404835845538182339755119636183299852771174216605118626536858666729077456227586635791975389878580990706014598795508131412717667255584706218373546363565051970143810884608471866911827427238759846409021504907896607083482665731162576272796156725399365400841950357397710524236207810978870798783981603785024307173010889952341599238557400292153032818727017827165098795785558076853065033855261324267549901057212498315881934947938695367780790575920785977215530675832019239961155962423426389751926257383297715785435847339717604777493538528575201817062295169404480229766940020523787731983536261649598291673463092757455051518662993655533433915072806576045063092867990089644310261368585710723801181848957502028184574209388451899744224576029281711444755880194128446491418764259972803823614523160913266553412686524672967612472850354611792384672226313186568308864500596568072841903119343344822241150005332921893744626616594533712331296485355803950067865909392492741991528790817507594126647348656946997005064936090765953408812282652970566116181280146922711073641385067311873552539181999538162589681511845715917766077105729419183037054587282967244628131645433749758956868200938889295260059991792096227425259687844050144919971367957244691491017654943577462996811421773410925045282570633131328036716804580375601430881570555054457220009537674916340886762228523206676128411663192123077792254789644144506627663208010410475778400497325205500968615250320907687900763289576223282032397504201372302603239895802757968903825272190952281701068110079556740667185445062453045117391439482833491364485554311069813767311790357083210927668804439333933630594198279598701807810490787742180484043475798890817192768752862220442451588184587690161872075629153029240494308117048282824790230736746853770749828077801389018848068092441259191977984881956300738521214353791479052695154233708284823547232121620305062537017432075111562071743772577366931997974473950093255636028248382724452839433784523315502780833869457830890528431531527455086154956196235244674760894873750483035377862310516221987936358482419989252278010429940198569888952601837144908449404499073304358816458807412881134703340160791189715227589907175102088273854212096213795720847409741644134534624720729920151051339133473557920265892822382184810758868769956039838342081980221622338274177614217101013837219715837053698434208609066108246607678702086582770511894524261605028364958645040758911287595619499611921509774779666955270895865712338543018719794787266488320605713163171542233617067581071895342622705244802062040542796295302916216114292126121262935763640864615629677606211112964693377276317256070167540264324023591827149259089522291316720628698281215087605305629238291594457518686215470015076156924382016000931732632205307303621609384851921624005146011416467258052189550918952005517493717060183861217124864608617252651804940140937993111559722616520442224434286132289707747866746741108200384102140189930225519969357021896570979820365871398657608735393676409323301387490087727845350388222790497916007316990803886283862020773221472267415382638838850952754624447814549738377228438013737770083089170581112108068042894630737139576215890129958999260070192864423894389418426952969407654210559831427086074999972141048561523928050162565044562628366300146068095403697068547760020537918241523999382508905967460529278600293261911963972284250463570308956290950454604354108072723188845068727712820790504476507140836589176750380438993144127653416512702634954559430835470612343523852869531109430942489027263742509749860664075801160595789427378276845694090991414569690823526860581857996672881614361665317090071194770413806555035750654302231963331295884159956389116863687784912469335626051474523828179747246094056764471946074474699575995526157862386343763022449093898284182274433329456861624762048310638501262559955132092825311295590906228927358168696621008912945517570220223717221799297436701866706595748856684755789984691792156420908119091434241941399424993676647200599068843396710086879359052383561278010112527341727782058635260049909945051150835052059347722662234098098278141781206795865315355099251380248496785867911062414568977839477213198711270773343299497409699578291906840851780008556217812748030448135607375769662045172258931947189773341537624815152015142857523003822423980967858006054844932112551350849402658596701091301178966324922013681369744499049685225077820135132202768419008991626128359482725472334604835479479226507501952604398621994019854820373144989975282997428098089324885513917262388936697602472116582178633201662512387279910423565127313353856570262935990761000478902435592608048194760116776507873219964985740052788998323572654976171674659079123316389115487017503709637015518705448011427046621810972450995214752359202793777423235214273240471682911777000342896214951151949759302790412029041514458127955005271853023969269961270118342395383916599351022560479094455149908940695592948588719331652201877056574780194014418716512856588346473925394397924159208871420613025212287450538754857752401277452601244180518336643273712924078276473005129687166900124593146298710070355621735235017904142630721459004042810174527320530592369759676655970335920644228487120139352260761498199869034462185978612491930019686814151919527852557589884806713095136604576468651221011887402624007586938951312633060746429222093399107022245013437439197218823663620864762720779956136288624005097407686081556323034673753889319896857907338670476730685576564770055738252431886354477708749457504574195073625910954740741131209616599358513789255451516254348515420168850754758799526338589847117032229212025970382694347536408171761642798140813049463012208328067035002333440602106489114511945598135083530448187360216419430067858364220477599450630202190623391032522909144973721263770692619621859841945496136743052488856579992251630686376797215344797512274246190984170996151197686607194963309012002450758714063932783521339479486704174165123886727811701610413478901896579872424218713315912464689544069698875157850649727628076503457202274937471918562141517676633524368059777347436094567405225313997018254009490162224815428453793471729276489936431857033760845101059418589862442810776925821965422337332422585255148433308377236854844424678174491194322393678049978076629575009083878661962935471477867238315411313472101635209841678846727902393288634569599976360760103489223207532808931803758760524722184226146540756579170727732268806713424701470450407052782201518257418414317071401005664384573603040059652745123398269705265436488744558116118233242053470457181867311533712110854367659664288908754031548176428211759829008370248896617222325960169628582818839622236716347015474524037366167833457906848899889712792204613861590010825062905142002143658339048606443493052619053477892124324874897173726590058755533407370714180033185483661864482285721136008686629810890667664229697220411679872446332931361431692249545284359826800203330473631826327220841782908730680493557266274277436978483257578367550266738140311961552757955866451159174548040438406301413947780425404622178559862789411062760414068557298766555366361308520525799788648210404282763027731647052013763184780455213461739792081046698789387690339668411305925751677079324976008540337672396094148856277976842630128616061186798999670477136090056899537581476300806800283136626475944276126547380850948282452880128653374196036262501215793737591025163061921813397117793390257174592949975897093986039299013384170134899841357578702721252385268283399005996280609920160981197160814407869758369275439946180510638202465279545944277204814955867684576124210601154892579209584474558707042283414715367663654093115339050079118247364523400160899375756383414956875574627586558922058434405404066707295882789589333467449697119247513564790440368545610298322678576713975956536519208622663575123657003408479496108373903518326745060907219239301732074636431622261658586871224050426680328970933873742563844650949828319543389296103740746652526987175151655629152991904218583840065968598528125984946160810485261648747352682846925553529013719017554272538417443009838006986034733011506077157549474812702569168684067813695621697122181850737980590149372209374123535369510158001149408587748389623231077306238799507558568748786727070867914866048930231685898559535122364647298372206967391781057099193303063112569537747097783504806111397083157821600449922171000401694998093445452168386521765915580153314173202650122459776639017076786805798292578621977347077041571707195657228570480648209165238448136790643784564909004296949302698736271354704231010617185887500297185494914083269165825056165278074253234520854128310620959438802978351184514499473311041707758784367457965094783902739084355979711724971037851274122381854941278785461862680771380865663074880310768037825617122975759011459953151763780063530665599947843205147312907297669094113470592165594532898296724056138501244916722250331853188096177441435298911125198500297658460816847694614388938765840880280858907561498985860726713874833201186281996229162612831821030392502478729294951033123571456700317924541260191217923303991275846417051542827687527793047027024386964300314691812918837397259960873592542472081717054978530249247037225456364725963872430426187505018969031287953702146799223340066152471705781175525454879195399157620366003553988425653022303133156693439143197410292679741877688707045107181140053858805582332617048700777847138389777776788944654951861906337636365773585790558153094486709058584517106927617895890697682470590528581117777214049020035645681148048633118642218884674389062845174552057388582641366787689509444807430525463081980305766917256285520837462368120531832978705917385118469117329354194926780012440380250646384166826410208005513442278374322082527287454260307823355092421423497061543622888396167737000493162286652598933185591955676774730772439207932983704518182966096119476025999173811384516778006641714013915815783272464013530182023358132026889600449529843981569021570502022507436129240518923944188926472623372113520934617836279860980158583888278240915788461645953500635115874109484695320434977284746845550641161896330709580103288934263972882066757928341874840467276995292149566810731454368663369577903523618603784281977661528783635468955277093723945688566759807621933182436528810782340839539429691118695808058634629419082409295006831301259792190747989621620955157474837001269186247690894503600117499173446364566563023013229502012759070482361687292105472098794763430052708432295704464675007492878349381432913850619289851108636665606356598390426836700595067122820709781919294126441072131196811707075116841544507494110038163734101545768614492667314356351155955740248081698092009940391118340573497670864680141381754420330358812091182254597593253315037039017180721916496541346508148841278362646985091271956408287472787628749260563541704192119237926070688905433786643736172328144333042371801840657939799605985258553589940145717795615417212136460358783566464170978903855900822136687219048106986959144144642720038374508910321064937027857487939583518184110726386999840902746471464123615227818774181909062794402732079276646830762313198918075400336300303189422279348546921066548974741925105807218566927995584566646215068648899677595026560834775759356602153157051570848270498490304131218858699684540882063755608519207441574838948642026361768973993514554067509843676196385570862485915984259814109736115750090156542127967945385997414525791780732861998363638363304019606598489069606547190252270575059175612431683970857596772447900108259185289974942741688202519562747137767906922329997202481362138223386420350397904128846297531805198738939970938370763321493137387194692795637586190964934234280392340983764254945947790594483312970530122180156894395512264075056802854676943419946144748974396571507794317278491533391980106904626856492461531987409158452932288614215274892355399584917374730637073832432417103588474279261161391223667401239925098198792843081892768564758009745575556157967642281591848027376178004010691561407883555469362640439781754251321857333282587103285353022199605668935684799678664749958768753146673037838858126656149455435993974999939914975313468344146787020048407671733630853768473460564928960854278744978722742384042099970212598289783842051702836230157504927044976000767679182649920143905497195759288204805898037552471174807898605940070677662578147050638890937597285041944971860239355253171257974771181013314607828022163548566868808065072357515985650687337243544309985325096867234449941842841163793491562781120814964549462899888500350940989763764669532058719589629186708622778901725010505909728681616403743125121714943281410588855782490849691861094732952514375231697730198179740521167458226658787582487355625360857491944870284195154067219485300092336260357221673560082393617476980719510150045843233809611385217604920622372469317228861422612562015299309680909281823375295674973244032325532648241688882074299857032441313971945379359787926399677906371616580138904198328049619646364554349112772677856517373337084400210363437260673015901707947918169523418345964109007175789813944883764078413863614669530673338925016294429825457545443814350379669518760476532788639342638233796747747782977615895074311905252234633854030587733569794808938363745546338878762206961990663580369471295899589043133523550014559259947475337145110558133291212679655134751242929561890814107795719605135896329851094417989680181672747669619668679510785928423610602674833187806715385478794753992273881199550718489798212385976089262239430085473535200711867403351800510835887638650640732822298124970972862352418883013592136675313270808692672195689647330921721992821823215922506635086874028483167844342993091396413199200990612464840231121981504731909678054563074980223930158108056877683310849418031279101052970987783939750569880423896648113147363145548148735813675027975291502123153715435527026324964225605832244931779808446377423551396772931416755592148089971914850603448893547223012384730708966828916474870394912292025059106219009970167460694458612987982676843993304333398039703139956083249298645327957649443274997965064862255899448564309795330692769663968678923957506635796741085235335192236591972279494620910921530909740010424473762272249893901011754475415170819979260470511123319123247848852566583054146531536481140312198100254240541180968752534479742062232853629634504815461753322237377931185221099209415271650488287757603757482846865782197222506054306798112295314551591710455091164236769059732069605425507334299453095247307840096596232341845140824376318430839436037488759847126992892594633547368457177838576314224369430517597554533829880235675223994975395400790300202913571040267820097979899648338376247398529105394167994624247772576438108840934697322341780699697928045675040970035156811687200407072963453763064230748982878660174199770396543103497604841995891701150212754395643608955522289754820972797865011959952371877795668185387051564438045381471123108541381252872360302754603292132073375953868178520493469117840675173349713450015562242235139829769725786703931608894787438936002856490967231666166042846595684630844012493055876146759296186204605468784610597525269241692968991250837191084101756228083253771463835543931844073210977990610477554026475790723431326531577112191405667214223948869919173871765230559490517900810525195465440651978903639676172051043174967413220181578542597618197974714638148728960408286627367206863701644465479119867066910859254621737240848325578471707826193248894841252896007539542644501601764788782105512228398454387615695808832174166740232947011078898529962060453511241378359608757179670630716589584921139308751737224687409463484198551239895227030142500330043819244045059254838516485508445885471054536219917506908587373248539800403163424848570958284428975603530896117085692118675293877534591777866876321724532815230947070307998064099467011121913903820999760911125264642943889495182399856034596295331356405978498564134254661888176866191980456997240517321767484518345496769865194431861739964680491726974719265188530728171657351863870169623766641708932531966309632271929648176985004402932687185293198201730397986182694748588587473693620726663562972805110699118191644707735874055533384793001202471263941590336836205433396061048602913036148978957128575650800679355460856645442274825102156980945398772647651205151340405536922078827681061059796380369426990168367002147877261600149035709725778375926677309553719637740055579462047401651350681669331393522340273465935763202629370707419960238255531026296600658423705278863120493487014918369017939448408349008617693345624303427428541856957697164646793107880446252049253894844856031780620830171638555215401390242588946461253520924463841527802582998975096964564687658983621880769223280197376519721351338738902874154748971208364468901404493773330293414703616355153247703947241880756858144394893457579339462208717330299515284870003860681619709848724471002797302764127243104249329773408253582322972856032794642384107712769185844486533617195784166473258236021378615399902133720665070371060457794319364963210536094742722827691357014277117274263749359572554964599986545341518844634374618764867170628846700773056283179507603391949187920822954661903693739123309542321647636185092867680687455625192827032637638810349641505220127663858513883013377931159202917750476031556598710536744443026495510019258962506765036064035961251636541303171781576969938130766544542004290098923460044603442825159813671287059436168075510860768661610502523452213078083886457648502343066456976321928677160414452582526051656827212145100056035641508723996296602396623156266181989722208418404401562309078209498979443094218816816353732505004009598018481669945568246436592270439063800200608498938780935807139483716135409836252179599280989560499579921011901869631154245446040616768305071546623636860273105588844537375685178672408495297194067802923758419899832153931682700273894358781411606990220313438957525981994975934997674611564280860206213526928011973450093891496294467810970906635649239594410575003831354002492485059953590897482420710440583514414944481160659719742630083208123947108345361449877553837631299669967046046001286925872507182523180475130170603150474248443076548762873051662841355240450813386210593282164962381183258862924911714520857890042623432928930318724330189166680912007711067699979361260322527966488989511409499300699660214660960149205042648481546568407502055009143457352425671436682770235778611037204171223153509661944763932637529876834772153976535968444973649086579974330600897129402415207145266791018780914810780578130210923281811730925144395485619778190055026498921050758489656559616285759819322609239927817312645289328947033948508411982954988609799303821012267629774320417143105658219541650307858281499074414342534481192825951262094963008494552013827069911980160115140949461658230362334449098109766761063795239178449109999232607284135352491386836754645834136592634996776531657940109430001414922390277793539882268621172035745194043482537855889728648594891173429782709891553205610394913972415666853329634387495287667599547214260956318226727218465369532036877554734409117237770013270966911428406930665614690169376364346233213288912199182870649760014796976588444413263910393646703207622568804955953284309942646879372085504281962750028995574666560233944993895132190329483825137239171977003375828932633065150813637409561333158695608283648894398552779101596821258561043787498267863784572958195260563551642642843113912504230882349011731477829004017347056369912288233956165466570732070354900144395707276399007696817275285097791203068522240998496690889864766686853004089613962828274296440194282389807043408597308817334869649384959312586589787769774584995101552876984593065202259424967538027362081788236899035405123536865624800998762517522255271050000470830155858572102382036548903840982732516181540562161677788210161748020916752334501503971530641429078595871173383163361415213749805057742607038988364983449116093133446557073794908124560258743423451556331688811493390217951907749286453497420577452116997670099002662231155162945428092131541391184501441951478418786651799279298946002089645077695413104500670709016866716747442527052886995220317089183805213494708281567948159704863733118781271959728207566896531829015337793224123614865449383003405853981387338772905788668715909063109854715042267697610224652980259437234094723583742680130508834443286216656733060333374437544363504442772529084178655844753001151064878698384575811913620090703257581147209330633052063381183360672687919762235924755829480243846355392138054812099490193577118292221006853217693500525245544518454620247294727069334238394667493712199771862591872965999977120221227021221535861162233098552833767983635954205570080182871758615730775506617994924256018996719122013764796849354629049016149984739212767365257867444418854525892790896619331826941611505802983597680173309325233663759789553765900258562978995428836866482020214115533880190216932710655283411088216657927067960125618889119195280681683685189947382349768186948166118262025930028509046672473671551454560671458728016332522384209847896328673188028166447845385306526066450772408654227626323141363877564902442942390941106098578054302205062763272678099267991814776008575419219345058573003814438623655073130775785760999432126141160088711424346141566415748588737106797742683098734564738088817806281234460140390253128363940087672896254434509848319048913677616045098474230712932367800646028603738165141464136449580040255227056238718108371503213957444332703805308684233805797946228625480711133734047568880945734126673591824105308794366825616438039477237684051229247337919944433043234299488401790839086487749267633214224692021083562343813554285676826775741623700114190869475457349732372275048319707222146397483323579524176022606747516284916178871389092430587343918920037457842004292013778372936809030144331813632859502532635363428501159672413805988416351027422590085912842652089606660085165583292222055727412849927212473398369343763381021238176207850521515813908170983931698304255783187303585285673983251506944463060369277677710123377756148743515623083982084229653125644481765110134561841598694821889889304437102621552013684317321916420595349703556924232614483008426483264598446753852677885003971485037227484584275529168058965614477140990847920272194432267308490118182768674746973645848376474748493410068862003555667748580626951024874952638447272306434750538243094348153682698292900845721367521988949907916819875547703526030073930836462024435897982892216382349736856560766719661717359317049094391679802416534225537433832692870042654838250982018552897443321024822370728725846183143953467076333265885497185953727428814551417062331889682676001331811448334555171087710890442880701454421546440686414813262420455565252402142715051281184702018725736162771621301220626754299903485027688333264074618916091670263554019646571061918014199841182034410034620376803041756716443612864158264161226116162172584939905870447557170790372713172977859811081629144126945286705184847572717012631628414544856678314408511500302853416660178166665035893752685656700687796375009165211830701596352898765723130646341964299177172735049388938748010996829575561313504644809364536828403532454158701970836433294001969953670154412013982067866539658935658042716995462342664391209938811420066676943681724079223714956238681674355294909777219675578757214350264924067059159359131580746592235222845645992313306106637318290920952337341614503005522097615190605665598024484233878837913927231263180101137441239335309230408355552936366389124659711394369430072647853421235721280190249261873914362490907069048314362500724764764959776102899020504063744901086150006163459955197822826653903488815269732654578900965916364887700738086945107694380643621181027158260330809185472243511612822628397503081802401618609725938283998193544969862457633674160922586395592436935247020276126453698493007426959761470361246918136913810648039292150591570679199164690151421680872646075583844936340504272213749502291957798079485635351620896930507420149434794440451732098079361138303254403843165677249680371665998108780636100578300998125672004449276031385238811248270526820520883448449141977394920301510404653973631454292833358807156483168810820198872963974165554974155790188778162769725787685339099289249386083950834410923009850725931799585672193963393462196159545852169616744210659787315384041665569280903572690505918890029621731607381631031983204267160335984094002177522466612104741813041197128994439270781638530838609761523911759445763486109035097237188926424371732460955186756062118631852372658727993616843636124906509682454848745135403124280305654038292942746917408205696122771754107669122411775402415429202389219996390649580857576130715685359560385743450883909839697422234251508118565916753097157756295240130089099517648316172405980037488854245882017456440778008